From 7251ae2a967cf64cd8a1173ca438db6fe8daee53 Mon Sep 17 00:00:00 2001 From: Greg Harmon Date: Wed, 15 Nov 2017 16:41:32 -0800 Subject: [PATCH] Update dependencies via glide update --strip-vendor I also had to clear my glide cache (~/.glide/cache) because I hit https://github.com/Masterminds/glide/issues/592 . Do this to pick up Nikhil's change in ingress-gce to stop showing testing flags in kubemci -h (https://github.com/kubernetes/ingress-gce/pull/69) Testing: Since this picks up a fair amount of new ingress-gce/ code (like NEGs support), I ran demo.sh and saw that the ingress works. --- glide.lock | 66 +- vendor/github.com/gogo/protobuf/.travis.yml | 12 +- vendor/github.com/gogo/protobuf/AUTHORS | 1 + vendor/github.com/gogo/protobuf/CONTRIBUTORS | 4 + vendor/github.com/gogo/protobuf/Makefile | 14 +- vendor/github.com/gogo/protobuf/README | 4 +- vendor/github.com/gogo/protobuf/Readme.md | 19 +- .../conformance_proto/conformance.pb.go | 3 +- vendor/github.com/gogo/protobuf/extensions.md | 7 +- .../gogo/protobuf/gogoproto/Makefile | 2 +- .../gogo/protobuf/gogoproto/gogo.pb.go | 158 +- .../gogo/protobuf/gogoproto/gogo.proto | 1 + .../gogo/protobuf/install-protobuf.sh | 15 +- vendor/github.com/gogo/protobuf/io/uint32.go | 66 +- .../gogo/protobuf/io/uint32_test.go | 38 + .../github.com/gogo/protobuf/jsonpb/jsonpb.go | 385 +- .../gogo/protobuf/jsonpb/jsonpb_test.go | 340 +- .../jsonpb_test_proto/more_test_objects.pb.go | 123 +- .../jsonpb_test_proto/more_test_objects.proto | 12 + .../jsonpb_test_proto/test_objects.pb.go | 243 +- .../jsonpb_test_proto/test_objects.proto | 13 + .../gogo/protobuf/plugin/compare/compare.go | 2 +- .../gogo/protobuf/plugin/equal/equal.go | 2 +- .../gogo/protobuf/plugin/gostring/gostring.go | 45 +- .../protobuf/plugin/gostring/gostringtest.go | 2 +- .../protobuf/plugin/marshalto/marshalto.go | 464 +- .../gogo/protobuf/plugin/populate/populate.go | 2 +- .../gogo/protobuf/plugin/size/size.go | 2 +- .../gogo/protobuf/plugin/testgen/testgen.go | 19 - .../protobuf/plugin/unmarshal/unmarshal.go | 506 +- .../gogo/protobuf/proto/decode_test.go | 2 + .../github.com/gogo/protobuf/proto/encode.go | 4 +- .../gogo/protobuf/proto/encode_test.go | 2 + vendor/github.com/gogo/protobuf/proto/lib.go | 1 - .../gogo/protobuf/proto/properties.go | 3 + .../protobuf/proto/proto3_proto/proto3.pb.go | 3 +- .../gogo/protobuf/proto/testdata/test.pb.go | 3 +- vendor/github.com/gogo/protobuf/proto/text.go | 23 +- .../gogo/protobuf/proto/text_parser.go | 2 +- .../gogo/protobuf/proto/text_test.go | 8 +- .../gogo/protobuf/protobuf/Makefile | 9 +- .../protobuf/google/protobuf/any.proto | 10 + .../google/protobuf/compiler/plugin.proto | 4 + .../protobuf/google/protobuf/descriptor.proto | 60 +- .../protobuf/google/protobuf/duration.proto | 15 +- .../protobuf/google/protobuf/timestamp.proto | 25 + .../gogo/protobuf/protoc-gen-combo/combo.go | 18 - .../descriptor/descriptor.pb.go | 514 +- .../descriptor/descriptor_gostring.gen.go | 81 +- .../protoc-gen-gogo/generator/generator.go | 81 +- .../protoc-gen-gogo/generator/name_test.go | 29 + .../protobuf/protoc-gen-gogo/grpc/grpc.go | 11 +- .../protoc-gen-gogo/plugin/plugin.pb.go | 6 +- .../protoc-gen-gogo/testdata/Makefile | 7 +- .../testdata/my_test/test.pb.go | 5 +- vendor/github.com/gogo/protobuf/test/Makefile | 6 - .../test/asymetric-issue125/asym.pb.go | 21 +- .../test/asymetric-issue125/asympb_test.go | 52 +- .../test/casttype/combos/both/casttype.pb.go | 1117 +- .../casttype/combos/both/casttypepb_test.go | 144 +- .../casttype/combos/marshaler/casttype.pb.go | 611 +- .../combos/marshaler/casttypepb_test.go | 144 +- .../casttype/combos/neither/casttype.pb.go | 579 +- .../combos/neither/casttypepb_test.go | 136 +- .../combos/unmarshaler/casttype.pb.go | 1086 +- .../combos/unmarshaler/casttypepb_test.go | 136 +- .../casttype/combos/unsafeboth/casttype.pb.go | 2569 - .../casttype/combos/unsafeboth/casttype.proto | 80 - .../combos/unsafeboth/casttypepb_test.go | 538 - .../combos/unsafemarshaler/casttype.pb.go | 1609 - .../combos/unsafemarshaler/casttype.proto | 80 - .../combos/unsafemarshaler/casttypepb_test.go | 538 - .../combos/unsafeunmarshaler/casttype.pb.go | 2353 - .../combos/unsafeunmarshaler/casttype.proto | 80 - .../unsafeunmarshaler/casttypepb_test.go | 474 - .../protobuf/test/castvalue/castvalue.pb.go | 527 +- .../test/castvalue/castvaluepb_test.go | 136 +- .../castvalue/combos/both/castvalue.pb.go | 796 +- .../castvalue/combos/both/castvaluepb_test.go | 144 +- .../combos/marshaler/castvalue.pb.go | 546 +- .../combos/marshaler/castvaluepb_test.go | 144 +- .../combos/unmarshaler/castvalue.pb.go | 778 +- .../combos/unmarshaler/castvaluepb_test.go | 136 +- .../combos/unsafeboth/castvalue.pb.go | 1441 - .../combos/unsafeboth/castvaluepb_test.go | 538 - .../combos/unsafemarshaler/castvalue.pb.go | 991 - .../unsafemarshaler/castvaluepb_test.go | 538 - .../combos/unsafeunmarshaler/castvalue.pb.go | 1315 - .../unsafeunmarshaler/castvaluepb_test.go | 474 - .../protobuf/test/combos/both/thetest.pb.go | 3265 +- .../test/combos/both/thetestpb_test.go | 4910 +- .../test/combos/marshaler/thetest.pb.go | 2466 +- .../test/combos/marshaler/thetestpb_test.go | 4910 +- .../test/combos/unmarshaler/thetest.pb.go | 2629 +- .../test/combos/unmarshaler/thetestpb_test.go | 4638 +- .../test/combos/unsafeboth/bug_test.go | 252 - .../gogo/protobuf/test/combos/unsafeboth/t.go | 77 - .../test/combos/unsafeboth/thetest.pb.go | 43579 ---------------- .../test/combos/unsafeboth/thetest.proto | 649 - .../test/combos/unsafeboth/thetestpb_test.go | 19040 ------- .../protobuf/test/combos/unsafeboth/uuid.go | 133 - .../test/combos/unsafemarshaler/bug_test.go | 252 - .../protobuf/test/combos/unsafemarshaler/t.go | 77 - .../test/combos/unsafemarshaler/thetest.pb.go | 29896 ----------- .../test/combos/unsafemarshaler/thetest.proto | 649 - .../combos/unsafemarshaler/thetestpb_test.go | 19040 ------- .../test/combos/unsafemarshaler/uuid.go | 133 - .../test/combos/unsafeunmarshaler/bug_test.go | 252 - .../test/combos/unsafeunmarshaler/t.go | 73 - .../combos/unsafeunmarshaler/thetest.pb.go | 39590 -------------- .../combos/unsafeunmarshaler/thetest.proto | 649 - .../unsafeunmarshaler/thetestpb_test.go | 16864 ------ .../test/combos/unsafeunmarshaler/uuid.go | 133 - .../test/custombytesnonstruct/proto.pb.go | 3 +- .../gogo/protobuf/test/data/data.pb.go | 21 +- .../gogo/protobuf/test/data/datapb_test.go | 76 +- .../protobuf/test/empty-issue70/empty.pb.go | 3 +- .../test/enumcustomname/enumcustomname.pb.go | 3 +- .../protobuf/test/enumdecl/enumdecl.pb.go | 21 +- .../protobuf/test/enumdecl/enumdeclpb_test.go | 64 +- .../test/enumdecl_all/enumdeclall.pb.go | 21 +- .../test/enumdecl_all/enumdeclallpb_test.go | 64 +- .../protobuf/test/enumprefix/enumprefix.pb.go | 3 +- .../test/enumstringer/enumstringer.pb.go | 3 +- .../test/enumstringer/enumstringerpb_test.go | 136 +- .../gogo/protobuf/test/example/Makefile | 2 +- .../gogo/protobuf/test/example/example.pb.go | 541 +- .../protobuf/test/example/examplepb_test.go | 464 +- .../protobuf/test/filedotname/file.dot.pb.go | 493 +- .../test/filedotname/file.dotpb_test.go | 74 +- .../gogo/protobuf/test/fuzztests/fuzz.pb.go | 271 +- .../gogo/protobuf/test/group/group.pb.go | 497 +- .../gogo/protobuf/test/group/grouppb_test.go | 172 +- .../protobuf/test/importdedup/proto.pb.go | 3 +- .../test/importdedup/subpkg/subproto.pb.go | 3 +- .../protobuf/test/importduplicate/Makefile | 40 + .../importduplicate/importduplicate.pb.go | 264 + .../importduplicate/importduplicate.proto | 45 + .../importduplicate_test.go} | 9 +- .../importduplicate/importduplicatepb_test.go | 123 + .../test/importduplicate/proto/proto.pb.go | 180 + .../proto/proto.proto} | 16 +- .../importduplicate/proto/protopb_test.go | 121 + .../importduplicate/sortkeys/sortable.pb.go | 181 + .../sortkeys/sortable.proto} | 16 +- .../sortkeys/sortablepb_test.go | 121 + .../indeximport-issue72/index/index.pb.go | 21 +- .../indeximport-issue72/index/indexpb_test.go | 46 +- .../indeximport-issue72/indeximport.pb.go | 21 +- .../indeximport-issue72/indeximportpb_test.go | 46 +- .../gogo/protobuf/test/int64support/Makefile | 30 + .../protobuf/test/int64support/object.pb.go | 495 + .../protobuf/test/int64support/object.proto | 24 + .../protobuf/test/int64support/object_js.go | 63 + .../test/int64support/object_js_test.go | 47 + .../test/int64support/objectpb_test.go | 261 + .../protobuf/test/issue260/issue260.pb.go | 33 +- .../protobuf/test/issue260/issue260pb_test.go | 176 +- .../gogo/protobuf/test/issue260/models.go | 23 +- .../protobuf/test/issue261/issue261.pb.go | 161 +- .../protobuf/test/issue262/timefail.pb.go | 31 +- .../gogo/protobuf/test/issue312/Makefile | 4 + .../protobuf/test/issue312/events/Makefile | 4 + .../test/issue312/events/events.pb.go | 219 + .../test/issue312/events/events.proto | 17 + .../test/issue312/events/eventspb_test.go | 122 + .../protobuf/test/issue312/issue312.pb.go | 85 + .../protobuf/test/issue312/issue312.proto | 17 + .../gogo/protobuf/test/issue322/Makefile | 3 + .../protobuf/test/issue322/issue322.pb.go | 592 + .../protobuf/test/issue322/issue322.proto | 15 + .../protobuf/test/issue322/issue322pb_test.go | 167 + .../gogo/protobuf/test/issue330/Makefile | 3 + .../protobuf/test/issue330/issue330.pb.go | 404 + .../protobuf/test/issue330/issue330.proto | 17 + .../protobuf/test/issue330/issue330pb_test.go | 207 + .../gogo/protobuf/test/issue330/type.go | 17 + .../gogo/protobuf/test/issue34/proto.pb.go | 3 +- .../protobuf/test/issue42order/issue42.pb.go | 47 +- .../gogo/protobuf/test/issue8/proto.pb.go | 6 +- .../gogo/protobuf/test/issue8/protopb_test.go | 34 +- .../test/jsonpb-gogo/jsonpb_gogo_test.go | 36 + .../gogo/protobuf/test/mapdefaults/Makefile | 33 + .../test/mapdefaults/combos/both/map.pb.go | 1453 + .../test/mapdefaults/combos/both/map.proto | 70 + .../test/mapdefaults/combos/both/map_test.go | 180 + .../mapdefaults/combos/both/mappb_test.go | 564 + .../mapdefaults/combos/marshaler/map.pb.go | 961 + .../combos/marshaler/map.proto} | 30 +- .../mapdefaults/combos/marshaler/map_test.go | 180 + .../combos/marshaler/mappb_test.go | 564 + .../test/mapdefaults/combos/neither/map.pb.go | 851 + .../combos/neither/map.proto} | 26 +- .../mapdefaults/combos/neither/map_test.go | 180 + .../mapdefaults/combos/neither/mappb_test.go | 480 + .../mapdefaults/combos/unmarshaler/map.pb.go | 1343 + .../combos/unmarshaler/map.proto} | 40 +- .../combos/unmarshaler/map_test.go | 180 + .../combos/unmarshaler/mappb_test.go | 480 + .../gogo/protobuf/test/mapdefaults/map.pb.go | 414 + .../castvalue.proto => mapdefaults/map.proto} | 26 +- .../protobuf/test/mapdefaults/map_test.go.in | 180 + .../mapsproto2/combos/both/mapsproto2.pb.go | 5050 +- .../combos/both/mapsproto2pb_test.go | 276 +- .../combos/marshaler/mapsproto2.pb.go | 905 +- .../combos/marshaler/mapsproto2pb_test.go | 276 +- .../combos/neither/mapsproto2.pb.go | 789 +- .../combos/neither/mapsproto2pb_test.go | 260 +- .../combos/unmarshaler/mapsproto2.pb.go | 5230 +- .../combos/unmarshaler/mapsproto2pb_test.go | 260 +- .../combos/unsafeboth/mapsproto2.pb.go | 8706 --- .../combos/unsafeboth/mapsproto2.proto | 124 - .../combos/unsafeboth/mapsproto2_test.go | 104 - .../combos/unsafeboth/mapsproto2pb_test.go | 1040 - .../combos/unsafemarshaler/mapsproto2.pb.go | 4506 -- .../combos/unsafemarshaler/mapsproto2.proto | 124 - .../combos/unsafemarshaler/mapsproto2_test.go | 104 - .../unsafemarshaler/mapsproto2pb_test.go | 1040 - .../combos/unsafeunmarshaler/mapsproto2.pb.go | 7810 --- .../combos/unsafeunmarshaler/mapsproto2.proto | 124 - .../unsafeunmarshaler/mapsproto2_test.go | 104 - .../unsafeunmarshaler/mapsproto2pb_test.go | 912 - .../gogo/protobuf/test/mixbench/.gitignore | 1 + .../gogo/protobuf/test/mixbench/marshal.txt | 120 +- .../gogo/protobuf/test/mixbench/marshaler.txt | 120 +- .../gogo/protobuf/test/mixbench/mixbench.go | 96 +- .../protobuf/test/mixbench/oldmarshaler.txt | 73 + .../protobuf/test/mixbench/oldunmarshaler.txt | 73 + .../gogo/protobuf/test/mixbench/unmarshal.txt | 120 +- .../protobuf/test/mixbench/unmarshaler.txt | 120 +- .../test/mixbench/unsafe_marshaler.txt | 120 +- .../test/mixbench/unsafe_unmarshaler.txt | 120 +- .../gogo/protobuf/test/moredefaults/md.pb.go | 3 +- .../protobuf/test/moredefaults/mdpb_test.go | 60 +- .../protobuf/test/nopackage/nopackage.pb.go | 141 +- .../protobuf/test/oneof/combos/both/one.pb.go | 643 +- .../test/oneof/combos/both/onepb_test.go | 220 +- .../test/oneof/combos/marshaler/one.pb.go | 587 +- .../test/oneof/combos/marshaler/onepb_test.go | 220 +- .../test/oneof/combos/neither/one.pb.go | 543 +- .../test/oneof/combos/neither/onepb_test.go | 204 +- .../test/oneof/combos/unmarshaler/one.pb.go | 600 +- .../oneof/combos/unmarshaler/onepb_test.go | 204 +- .../test/oneof/combos/unsafeboth/one.pb.go | 5633 -- .../test/oneof/combos/unsafeboth/one.proto | 103 - .../oneof/combos/unsafeboth/onepb_test.go | 792 - .../oneof/combos/unsafemarshaler/one.pb.go | 4758 -- .../oneof/combos/unsafemarshaler/one.proto | 103 - .../combos/unsafemarshaler/onepb_test.go | 792 - .../oneof/combos/unsafeunmarshaler/one.pb.go | 5244 -- .../oneof/combos/unsafeunmarshaler/one.proto | 103 - .../combos/unsafeunmarshaler/onepb_test.go | 664 - .../test/oneof3/combos/both/one.pb.go | 597 +- .../test/oneof3/combos/both/onepb_test.go | 116 +- .../test/oneof3/combos/marshaler/one.pb.go | 555 +- .../oneof3/combos/marshaler/onepb_test.go | 116 +- .../test/oneof3/combos/neither/one.pb.go | 517 +- .../test/oneof3/combos/neither/onepb_test.go | 108 +- .../test/oneof3/combos/unmarshaler/one.pb.go | 560 +- .../oneof3/combos/unmarshaler/onepb_test.go | 108 +- .../test/oneof3/combos/unsafeboth/one.pb.go | 3395 -- .../test/oneof3/combos/unsafeboth/one.proto | 82 - .../oneof3/combos/unsafeboth/onepb_test.go | 414 - .../oneof3/combos/unsafemarshaler/one.pb.go | 2860 - .../combos/unsafemarshaler/onepb_test.go | 414 - .../oneof3/combos/unsafeunmarshaler/one.pb.go | 3181 -- .../oneof3/combos/unsafeunmarshaler/one.proto | 82 - .../combos/unsafeunmarshaler/onepb_test.go | 350 - .../protobuf/test/oneofembed/oneofembed.pb.go | 3 +- .../test/oneofembed/oneofembedpb_test.go | 60 +- .../gogo/protobuf/test/packed/packed.pb.go | 605 +- .../test/proto3extension/proto3ext.pb.go | 3 +- .../protobuf/test/protosize/protosize.pb.go | 21 +- .../test/protosize/protosizepb_test.go | 46 +- .../test/required/requiredexample.pb.go | 237 +- .../gogo/protobuf/test/sizerconflict/doc.go | 1 + .../test/sizeunderscore/sizeunderscore.pb.go | 21 +- .../sizeunderscore/sizeunderscorepb_test.go | 46 +- .../gogo/protobuf/test/stdtypes/Makefile | 2 + .../test/stdtypes/concurrency_test.go | 31 + .../protobuf/test/stdtypes/stdtypes.pb.go | 71 +- .../protobuf/test/stdtypes/stdtypespb_test.go | 244 +- .../gogo/protobuf/test/tags/tags.pb.go | 3 +- .../theproto3/combos/both/theproto3.pb.go | 5770 +- .../theproto3/combos/both/theproto3pb_test.go | 672 +- .../combos/marshaler/theproto3.pb.go | 1370 +- .../combos/marshaler/theproto3pb_test.go | 672 +- .../theproto3/combos/neither/theproto3.pb.go | 1251 +- .../combos/neither/theproto3pb_test.go | 632 +- .../combos/unmarshaler/theproto3.pb.go | 5680 +- .../combos/unmarshaler/theproto3pb_test.go | 632 +- .../combos/unsafeboth/proto3_test.go | 159 - .../combos/unsafeboth/theproto3.pb.go | 11169 ---- .../combos/unsafeboth/theproto3.proto | 168 - .../combos/unsafeboth/theproto3pb_test.go | 2546 - .../combos/unsafemarshaler/proto3_test.go | 159 - .../combos/unsafemarshaler/theproto3.pb.go | 6073 --- .../combos/unsafemarshaler/theproto3.proto | 168 - .../unsafemarshaler/theproto3pb_test.go | 2546 - .../combos/unsafeunmarshaler/proto3_test.go | 159 - .../combos/unsafeunmarshaler/theproto3.pb.go | 10029 ---- .../combos/unsafeunmarshaler/theproto3.proto | 168 - .../unsafeunmarshaler/theproto3pb_test.go | 2226 - .../gogo/protobuf/test/thetest.pb.go | 1837 +- .../gogo/protobuf/test/thetestpb_test.go | 4638 +- .../gogo/protobuf/test/typedecl/models.go | 22 + .../protobuf/test/typedecl/typedecl.pb.go | 21 +- .../protobuf/test/typedecl/typedeclpb_test.go | 176 +- .../gogo/protobuf/test/typedecl_all/models.go | 22 + .../test/typedecl_all/typedeclall.pb.go | 21 +- .../test/typedecl_all/typedeclallpb_test.go | 176 +- .../protobuf/test/typedeclimport/Makefile | 4 + .../protobuf/test/typedeclimport/models.go | 7 + .../test/typedeclimport/subpkg/subpkg.pb.go | 383 + .../test/typedeclimport/subpkg/subpkg.proto | 15 + .../test/typedeclimport/typedeclimport.pb.go | 384 + .../test/typedeclimport/typedeclimport.proto | 18 + .../typedeclimport/typedeclimport_test.go | 7 + .../test/types/combos/both/types.pb.go | 1159 +- .../test/types/combos/both/typespb_test.go | 530 +- .../test/types/combos/marshaler/types.pb.go | 143 +- .../types/combos/marshaler/typespb_test.go | 530 +- .../test/types/combos/neither/types.pb.go | 61 +- .../test/types/combos/neither/typespb_test.go | 494 +- .../test/types/combos/unmarshaler/types.pb.go | 1077 +- .../types/combos/unmarshaler/typespb_test.go | 494 +- .../test/types/combos/unsafeboth/types.pb.go | 5910 --- .../test/types/combos/unsafeboth/types.proto | 131 - .../types/combos/unsafeboth/types_test.go | 242 - .../types/combos/unsafeboth/typespb_test.go | 2107 - .../types/combos/unsafemarshaler/types.pb.go | 3476 -- .../types/combos/unsafemarshaler/types.proto | 131 - .../combos/unsafemarshaler/types_test.go | 242 - .../combos/unsafemarshaler/typespb_test.go | 2107 - .../combos/unsafeunmarshaler/types.pb.go | 5164 -- .../combos/unsafeunmarshaler/types.proto | 131 - .../combos/unsafeunmarshaler/types_test.go | 242 - .../combos/unsafeunmarshaler/typespb_test.go | 1819 - .../test/unmarshalmerge/unmarshalmerge.pb.go | 354 +- .../unmarshalmerge/unmarshalmergepb_test.go | 216 +- .../test/unrecognized/unrecognized.pb.go | 703 +- .../test/unrecognized/unrecognizedpb_test.go | 560 +- .../unrecognizedgroup/unrecognizedgroup.pb.go | 563 +- .../unrecognizedgrouppb_test.go | 236 +- vendor/github.com/gogo/protobuf/types/any.go | 3 + .../github.com/gogo/protobuf/types/any.pb.go | 31 +- .../gogo/protobuf/types/duration.pb.go | 36 +- .../gogo/protobuf/types/duration_test.go | 38 +- .../gogo/protobuf/types/empty.pb.go | 21 +- .../gogo/protobuf/types/field_mask.pb.go | 21 +- .../gogo/protobuf/types/struct.pb.go | 187 +- .../gogo/protobuf/types/timestamp.go | 9 + .../gogo/protobuf/types/timestamp.pb.go | 46 +- .../gogo/protobuf/types/timestamp_test.go | 41 +- .../gogo/protobuf/types/wrappers.pb.go | 43 +- .../github.com/gogo/protobuf/vanity/field.go | 7 + .../vanity/test/fast/gogovanity.pb.go | 21 +- .../protobuf/vanity/test/fast/proto3.pb.go | 21 +- .../protobuf/vanity/test/fast/vanity.pb.go | 27 +- .../vanity/test/faster/gogovanity.pb.go | 21 +- .../protobuf/vanity/test/faster/proto3.pb.go | 21 +- .../protobuf/vanity/test/faster/vanity.pb.go | 24 +- .../vanity/test/slick/gogovanity.pb.go | 21 +- .../protobuf/vanity/test/slick/proto3.pb.go | 21 +- .../protobuf/vanity/test/slick/vanity.pb.go | 24 +- .../imdario/mergo/CODE_OF_CONDUCT.md | 46 + vendor/github.com/imdario/mergo/README.md | 99 +- .../github.com/imdario/mergo/issue17_test.go | 25 + .../github.com/imdario/mergo/issue23_test.go | 27 + .../github.com/imdario/mergo/issue38_test.go | 59 + vendor/github.com/imdario/mergo/map.go | 44 +- vendor/github.com/imdario/mergo/merge.go | 110 +- vendor/github.com/imdario/mergo/mergo.go | 2 +- vendor/github.com/imdario/mergo/mergo_test.go | 440 +- .../imdario/mergo/testdata/license.yml | 1 + .../imdario/mergo/testdata/thing.yml | 1 + vendor/github.com/spf13/cobra/.travis.yml | 4 +- vendor/github.com/spf13/cobra/README.md | 821 +- vendor/github.com/spf13/cobra/args.go | 89 + vendor/github.com/spf13/cobra/args_test.go | 241 + .../spf13/cobra/bash_completions.go | 38 +- .../spf13/cobra/bash_completions_test.go | 236 +- vendor/github.com/spf13/cobra/cobra.go | 9 + vendor/github.com/spf13/cobra/cobra/README.md | 94 + .../github.com/spf13/cobra/cobra/cmd/add.go | 4 +- .../spf13/cobra/cobra/cmd/add_test.go | 15 +- .../spf13/cobra/cobra/cmd/golden_test.go | 4 +- .../spf13/cobra/cobra/cmd/helpers.go | 23 +- .../spf13/cobra/cobra/cmd/init_test.go | 11 +- .../spf13/cobra/cobra/cmd/license_agpl.go | 3 +- .../spf13/cobra/cobra/cmd/license_apache_2.go | 3 +- .../cobra/cobra/cmd/license_bsd_clause_2.go | 3 +- .../cobra/cobra/cmd/license_bsd_clause_3.go | 3 +- .../spf13/cobra/cobra/cmd/license_gpl_2.go | 27 +- .../spf13/cobra/cobra/cmd/license_gpl_3.go | 3 +- .../spf13/cobra/cobra/cmd/license_lgpl.go | 3 +- .../spf13/cobra/cobra/cmd/license_mit.go | 2 +- .../spf13/cobra/cobra/cmd/licenses.go | 8 +- .../github.com/spf13/cobra/cobra/cmd/root.go | 4 +- .../cobra/cobra/cmd/testdata/main.go.golden | 1 + .../cobra/cobra/cmd/testdata/root.go.golden | 1 + .../cobra/cobra/cmd/testdata/test.go.golden | 1 + vendor/github.com/spf13/cobra/cobra_test.go | 1157 +- vendor/github.com/spf13/cobra/command.go | 235 +- vendor/github.com/spf13/cobra/command_test.go | 1473 +- vendor/github.com/spf13/cobra/doc/cmd_test.go | 157 +- .../spf13/cobra/doc/man_docs_test.go | 147 +- .../spf13/cobra/doc/md_docs_test.go | 96 +- .../github.com/spf13/cobra/doc/rest_docs.go | 185 + .../github.com/spf13/cobra/doc/rest_docs.md | 114 + .../spf13/cobra/doc/rest_docs_test.go | 76 + .../spf13/cobra/doc/yaml_docs_test.go | 89 +- .../github.com/spf13/cobra/zsh_completions.go | 126 + .../spf13/cobra/zsh_completions_test.go | 89 + vendor/github.com/spf13/pflag/count.go | 12 +- vendor/github.com/spf13/pflag/count_test.go | 6 +- vendor/github.com/spf13/pflag/flag.go | 57 +- vendor/github.com/spf13/pflag/flag_test.go | 83 +- vendor/github.com/spf13/pflag/int16.go | 88 + .../google.golang.org/appengine/.travis.yml | 7 +- vendor/k8s.io/api/Godeps/Godeps.json | 42 +- .../v1alpha1/generated.pb.go | 149 +- .../v1alpha1/generated.proto | 3 + .../admissionregistration/v1alpha1/types.go | 6 +- .../v1alpha1/types_swagger_doc_generated.go | 1 + .../api/authorization/v1/generated.proto | 3 +- vendor/k8s.io/api/authorization/v1/types.go | 3 +- .../v1/types_swagger_doc_generated.go | 2 +- .../api/authorization/v1beta1/generated.proto | 3 +- .../k8s.io/api/authorization/v1beta1/types.go | 3 +- .../v1beta1/types_swagger_doc_generated.go | 2 +- vendor/k8s.io/api/batch/v1/generated.proto | 2 +- vendor/k8s.io/api/batch/v1/types.go | 2 +- .../batch/v1/types_swagger_doc_generated.go | 2 +- vendor/k8s.io/api/core/v1/generated.pb.go | 2911 +- vendor/k8s.io/api/core/v1/generated.proto | 121 +- vendor/k8s.io/api/core/v1/types.go | 105 +- .../core/v1/types_swagger_doc_generated.go | 56 +- .../api/core/v1/zz_generated.deepcopy.go | 67 +- .../api/extensions/v1beta1/generated.proto | 2 +- vendor/k8s.io/api/extensions/v1beta1/types.go | 2 +- .../v1beta1/types_swagger_doc_generated.go | 2 +- vendor/k8s.io/api/rbac/v1/generated.pb.go | 96 +- .../k8s.io/api/rbac/v1beta1/generated.proto | 3 +- vendor/k8s.io/api/rbac/v1beta1/types.go | 3 +- .../v1beta1/types_swagger_doc_generated.go | 2 +- .../Godeps/Godeps.json | 544 +- .../pkg/apis/apiextensions/helpers.go | 7 + .../apiextensions/internalversion/BUILD | 1 - .../customresourcedefinition.go | 4 +- .../listers/apiextensions/v1beta1/BUILD | 1 - .../v1beta1/customresourcedefinition.go | 4 +- .../pkg/controller/status/BUILD | 1 - .../controller/status/naming_controller.go | 19 +- .../pkg/registry/customresource/strategy.go | 4 +- vendor/k8s.io/apimachinery/Godeps/Godeps.json | 2 +- .../pkg/api/resource/quantity_test.go | 6 +- .../pkg/apis/meta/fuzzer/fuzzer.go | 127 + .../apimachinery/pkg/apis/meta/v1/BUILD | 10 + .../pkg/apis/meta/v1/conversion.go | 1 - .../pkg/apis/meta/v1/conversion_test.go | 49 + .../apimachinery/pkg/apis/meta/v1/time.go | 8 +- .../pkg/apis/meta/v1/time_test.go | 24 + .../apimachinery/pkg/labels/selector.go | 2 +- .../pkg/util/httpstream/spdy/roundtripper.go | 2 +- .../apimachinery/pkg/util/proxy/transport.go | 32 +- .../pkg/util/proxy/transport_test.go | 15 + .../apimachinery/pkg/util/runtime/runtime.go | 4 +- .../pkg/util/strategicpatch/patch.go | 14 +- vendor/k8s.io/apiserver/Godeps/Godeps.json | 454 +- vendor/k8s.io/apiserver/pkg/admission/BUILD | 1 + .../pkg/admission/initializer/initializer.go | 22 +- .../admission/initializer/initializer_test.go | 22 +- .../pkg/admission/initializer/interfaces.go | 7 - .../namespace/lifecycle/admission_test.go | 2 +- .../admission/plugin/webhook}/webhook/BUILD | 21 +- .../plugin/webhook}/webhook/admission.go | 139 +- .../plugin/webhook}/webhook/admission_test.go | 143 +- .../webhook}/webhook/admissionreview.go | 0 .../plugin/webhook/webhook/authentication.go | 149 + .../webhook/webhook/authentication_test.go | 130 + .../plugin/webhook/webhook/certs_test.go | 216 + .../plugin/webhook/webhook/config.go | 22 + .../admission/plugin/webhook}/webhook/doc.go | 0 .../plugin/webhook}/webhook/gencerts.sh | 2 + .../plugin/webhook}/webhook/rules.go | 0 .../plugin/webhook}/webhook/rules_test.go | 0 .../webhook}/webhook/serviceresolver.go | 11 +- .../webhook}/webhook/serviceresolver_test.go | 8 +- .../pkg/apis/apiserver/v1alpha1/BUILD | 1 + .../pkg/apis/apiserver/v1alpha1/conversion.go | 88 + .../apiserver/pkg/endpoints/handlers/BUILD | 4 + .../pkg/endpoints/handlers/create.go | 162 + .../pkg/endpoints/handlers/delete.go | 264 + .../apiserver/pkg/endpoints/handlers/get.go | 278 + .../apiserver/pkg/endpoints/handlers/patch.go | 332 +- .../apiserver/pkg/endpoints/handlers/rest.go | 1020 - .../pkg/endpoints/handlers/update.go | 128 + vendor/k8s.io/apiserver/pkg/server/BUILD | 2 + vendor/k8s.io/apiserver/pkg/server/config.go | 9 +- .../apiserver/pkg/server/genericapiserver.go | 43 +- vendor/k8s.io/apiserver/pkg/server/handler.go | 2 +- vendor/k8s.io/apiserver/pkg/server/hooks.go | 72 +- .../k8s.io/apiserver/pkg/server/options/BUILD | 1 + .../apiserver/pkg/server/options/admission.go | 13 +- vendor/k8s.io/apiserver/pkg/server/plugins.go | 2 + .../value/encrypt/secretbox/secretbox.go | 2 +- .../pkg/util/feature/feature_gate.go | 2 +- .../k8s.io/apiserver/pkg/util/webhook/BUILD | 1 + .../apiserver/pkg/util/webhook/webhook.go | 8 +- vendor/k8s.io/client-go/CHANGELOG.md | 81 +- vendor/k8s.io/client-go/Godeps/Godeps.json | 186 +- vendor/k8s.io/client-go/INSTALL.md | 52 +- vendor/k8s.io/client-go/README.md | 51 +- .../client-go/discovery/fake/discovery.go | 39 +- .../k8s.io/client-go/dynamic/client_pool.go | 2 +- .../create-update-delete-deployment/BUILD | 3 +- .../create-update-delete-deployment/README.md | 24 +- .../create-update-delete-deployment/main.go | 80 +- .../admissionregistration/v1alpha1/BUILD | 1 - .../externaladmissionhookconfiguration.go | 4 +- .../v1alpha1/initializerconfiguration.go | 4 +- .../client-go/listers/authentication/v1/BUILD | 1 - .../listers/authentication/v1/tokenreview.go | 4 +- .../listers/authentication/v1beta1/BUILD | 1 - .../authentication/v1beta1/tokenreview.go | 4 +- .../client-go/listers/authorization/v1/BUILD | 1 - .../v1/selfsubjectaccessreview.go | 4 +- .../v1/selfsubjectrulesreview.go | 4 +- .../authorization/v1/subjectaccessreview.go | 4 +- .../listers/authorization/v1beta1/BUILD | 1 - .../v1beta1/selfsubjectaccessreview.go | 4 +- .../v1beta1/selfsubjectrulesreview.go | 4 +- .../v1beta1/subjectaccessreview.go | 4 +- .../listers/certificates/v1beta1/BUILD | 1 - .../v1beta1/certificatesigningrequest.go | 4 +- vendor/k8s.io/client-go/listers/core/v1/BUILD | 1 - .../listers/core/v1/componentstatus.go | 4 +- .../client-go/listers/core/v1/namespace.go | 4 +- .../k8s.io/client-go/listers/core/v1/node.go | 4 +- .../listers/core/v1/persistentvolume.go | 4 +- .../extensions/v1beta1/podsecuritypolicy.go | 4 +- .../extensions/v1beta1/thirdpartyresource.go | 4 +- .../listers/imagepolicy/v1alpha1/BUILD | 1 - .../imagepolicy/v1alpha1/imagereview.go | 4 +- vendor/k8s.io/client-go/listers/rbac/v1/BUILD | 1 - .../client-go/listers/rbac/v1/clusterrole.go | 4 +- .../listers/rbac/v1/clusterrolebinding.go | 4 +- .../client-go/listers/rbac/v1alpha1/BUILD | 1 - .../listers/rbac/v1alpha1/clusterrole.go | 4 +- .../rbac/v1alpha1/clusterrolebinding.go | 4 +- .../client-go/listers/rbac/v1beta1/BUILD | 1 - .../listers/rbac/v1beta1/clusterrole.go | 4 +- .../rbac/v1beta1/clusterrolebinding.go | 4 +- .../listers/scheduling/v1alpha1/BUILD | 1 - .../scheduling/v1alpha1/priorityclass.go | 4 +- .../k8s.io/client-go/listers/storage/v1/BUILD | 1 - .../listers/storage/v1/storageclass.go | 4 +- .../client-go/listers/storage/v1beta1/BUILD | 1 - .../listers/storage/v1beta1/storageclass.go | 4 +- vendor/k8s.io/client-go/rest/config.go | 40 + vendor/k8s.io/client-go/rest/config_test.go | 100 + vendor/k8s.io/client-go/rest/fake/BUILD | 1 - vendor/k8s.io/client-go/rest/fake/fake.go | 16 +- vendor/k8s.io/client-go/rest/url_utils.go | 11 +- vendor/k8s.io/client-go/scale/BUILD | 73 + vendor/k8s.io/client-go/scale/client.go | 197 + vendor/k8s.io/client-go/scale/client_test.go | 246 + vendor/k8s.io/client-go/scale/doc.go | 21 + vendor/k8s.io/client-go/scale/fake/BUILD | 28 + vendor/k8s.io/client-go/scale/fake/client.go | 67 + .../scale/interfaces.go} | 31 +- .../scale/roundtrip_test.go} | 26 +- vendor/k8s.io/client-go/scale/scheme/BUILD | 39 + .../scale/scheme/autoscalingv1/BUILD | 35 + .../scale/scheme/autoscalingv1/conversion.go | 69 + .../scale/scheme/autoscalingv1/doc.go | 20 + .../scale/scheme/autoscalingv1/register.go | 45 + .../autoscalingv1/zz_generated.conversion.go | 109 + vendor/k8s.io/client-go/scale/scheme/doc.go | 22 + .../scale/scheme/extensionsint/BUILD | 31 + .../scale/scheme/extensionsint/doc.go | 22 + .../scale/scheme/extensionsint/register.go | 53 + .../scale/scheme/extensionsv1beta1/BUILD | 35 + .../scheme/extensionsv1beta1/conversion.go | 87 + .../scale/scheme/extensionsv1beta1/doc.go | 20 + .../scheme/extensionsv1beta1/register.go | 45 + .../zz_generated.conversion.go | 110 + .../scale/scheme}/register.go | 9 +- vendor/k8s.io/client-go/scale/scheme/types.go | 60 + .../scale/scheme/zz_generated.deepcopy.go | 123 + vendor/k8s.io/client-go/scale/util.go | 159 + vendor/k8s.io/client-go/tools/cache/fifo.go | 2 +- .../k8s.io/client-go/tools/cache/listwatch.go | 10 +- vendor/k8s.io/client-go/util/cert/io.go | 10 +- .../k8s.io/client-go/util/certificate/BUILD | 14 +- .../util/certificate/certificate_manager.go | 173 +- .../certificate/certificate_manager_test.go | 191 +- .../util/certificate}/csr/BUILD | 6 +- .../util/certificate}/csr/csr.go | 84 +- .../util/certificate}/csr/csr_test.go | 0 vendor/k8s.io/ingress-gce/OWNERS | 2 +- vendor/k8s.io/ingress-gce/cmd/glbc/main.go | 28 +- .../pkg/annotations/annotations.go | 14 + .../ingress-gce/pkg/backends/backends.go | 126 +- .../ingress-gce/pkg/backends/backends_test.go | 151 +- .../k8s.io/ingress-gce/pkg/backends/fakes.go | 30 + .../ingress-gce/pkg/backends/interfaces.go | 9 + .../pkg/controller/cluster_manager.go | 30 +- .../ingress-gce/pkg/controller/controller.go | 56 +- .../pkg/controller/controller_test.go | 33 +- .../ingress-gce/pkg/controller/fakes.go | 5 +- .../ingress-gce/pkg/controller/utils.go | 83 +- .../ingress-gce/pkg/controller/utils_test.go | 104 +- .../ingress-gce/pkg/firewalls/firewalls.go | 6 +- .../pkg/firewalls/firewalls_test.go | 8 +- .../ingress-gce/pkg/healthchecks/fakes.go | 36 +- .../pkg/healthchecks/healthchecks.go | 221 +- .../pkg/healthchecks/healthchecks_test.go | 80 +- .../pkg/healthchecks/interfaces.go | 8 +- .../ingress-gce/pkg/instances/instances.go | 8 +- .../pkg/instances/instances_test.go | 3 +- .../k8s.io/ingress-gce/pkg/instances/utils.go | 2 +- .../ingress-gce/pkg/loadbalancers/fakes.go | 41 +- .../pkg/loadbalancers/loadbalancers.go | 46 +- .../pkg/loadbalancers/loadbalancers_test.go | 42 +- .../pkg/networkendpointgroup/controller.go | 368 + .../networkendpointgroup/controller_test.go | 301 + .../pkg/networkendpointgroup/fakes.go | 195 + .../pkg/networkendpointgroup/interfaces.go | 76 + .../pkg/networkendpointgroup/manager.go | 264 + .../pkg/networkendpointgroup/manager_test.go | 195 + .../pkg/networkendpointgroup/syncer.go | 526 + .../pkg/networkendpointgroup/syncer_test.go | 439 + .../pkg/{controller => tls}/tls.go | 40 +- vendor/k8s.io/ingress-gce/pkg/utils/namer.go | 360 + .../ingress-gce/pkg/utils/namer_test.go | 234 + vendor/k8s.io/ingress-gce/pkg/utils/utils.go | 249 +- .../ingress-gce/pkg/utils/utils_test.go | 97 + vendor/k8s.io/kube-openapi/Godeps/Godeps.json | 234 + .../k8s.io/kube-openapi/pkg/common/common.go | 47 +- .../kube-openapi/pkg/generators/openapi.go | 21 +- .../k8s.io/kube-openapi/pkg/util/proto/doc.go | 19 + .../pkg/util/proto}/document.go | 107 +- .../kube-openapi/pkg/util/proto/openapi.go | 251 + .../pkg/util/proto/openapi_suite_test.go | 49 + .../pkg/util/proto/openapi_test.go | 207 + .../pkg/util/proto/testing/openapi.go | 62 + .../pkg/util/proto/testing/swagger.json | 6375 +++ vendor/k8s.io/kubernetes/.gitattributes | 13 +- .../kubernetes/.github/ISSUE_TEMPLATE.md | 2 +- .../.github/PULL_REQUEST_TEMPLATE.md | 11 +- vendor/k8s.io/kubernetes/CHANGELOG-1.4.md | 4 +- vendor/k8s.io/kubernetes/CHANGELOG-1.6.md | 200 +- vendor/k8s.io/kubernetes/CHANGELOG-1.7.md | 267 +- vendor/k8s.io/kubernetes/CHANGELOG-1.8.md | 231 +- vendor/k8s.io/kubernetes/CHANGELOG-1.9.md | 275 +- vendor/k8s.io/kubernetes/Godeps/Godeps.json | 653 +- vendor/k8s.io/kubernetes/Godeps/LICENSES | 2970 +- vendor/k8s.io/kubernetes/OWNERS_ALIASES | 46 +- vendor/k8s.io/kubernetes/api/OWNERS | 44 +- .../kubernetes/api/openapi-spec/README.md | 6 +- .../kubernetes/api/openapi-spec/swagger.json | 39272 ++++++++------ ...admissionregistration.k8s.io_v1alpha1.json | 1279 +- .../kubernetes/api/swagger-spec/apps_v1.json | 9395 +++- .../api/swagger-spec/apps_v1beta1.json | 62 +- .../api/swagger-spec/apps_v1beta2.json | 103 +- .../authentication.k8s.io_v1.json | 2 +- .../authentication.k8s.io_v1beta1.json | 2 +- .../swagger-spec/authorization.k8s.io_v1.json | 10 +- .../authorization.k8s.io_v1beta1.json | 10 +- .../api/swagger-spec/autoscaling_v1.json | 6 +- .../api/swagger-spec/autoscaling_v2beta1.json | 6 +- .../kubernetes/api/swagger-spec/batch_v1.json | 23 +- .../api/swagger-spec/batch_v1beta1.json | 25 +- .../api/swagger-spec/batch_v2alpha1.json | 25 +- .../certificates.k8s.io_v1beta1.json | 6 +- .../api/swagger-spec/extensions_v1beta1.json | 72 +- .../swagger-spec/networking.k8s.io_v1.json | 6 +- .../api/swagger-spec/policy_v1beta1.json | 6 +- .../rbac.authorization.k8s.io_v1.json | 71 +- .../rbac.authorization.k8s.io_v1alpha1.json | 71 +- .../rbac.authorization.k8s.io_v1beta1.json | 73 +- .../api/swagger-spec/resourceListing.json | 4 + .../scheduling.k8s.io_v1alpha1.json | 6 +- .../settings.k8s.io_v1alpha1.json | 12 +- .../api/swagger-spec/storage.k8s.io_v1.json | 14 +- .../storage.k8s.io_v1alpha1.json} | 317 +- .../swagger-spec/storage.k8s.io_v1beta1.json | 14 +- .../kubernetes/api/swagger-spec/v1.json | 209 +- vendor/k8s.io/kubernetes/build/BUILD | 7 +- .../build/build-image/cross/Dockerfile | 2 +- .../build/build-image/cross/VERSION | 2 +- vendor/k8s.io/kubernetes/build/common.sh | 4 +- .../build/debian-base/Dockerfile.build | 3 +- .../kubernetes/build/debian-base/Makefile | 12 +- .../build/debian-hyperkube-base/Dockerfile | 19 +- .../build/debian-hyperkube-base/Makefile | 4 +- .../kubernetes/build/debian-iptables/Makefile | 4 +- vendor/k8s.io/kubernetes/build/debs/BUILD | 2 +- vendor/k8s.io/kubernetes/build/lib/release.sh | 12 +- vendor/k8s.io/kubernetes/build/openapi.bzl | 9 + .../kubernetes/build/release-tars/BUILD | 15 +- vendor/k8s.io/kubernetes/build/root/.bazelrc | 11 - .../k8s.io/kubernetes/build/root/BUILD.root | 1 - vendor/k8s.io/kubernetes/build/root/Makefile | 16 - .../build/root/Makefile.generated_files | 2 + vendor/k8s.io/kubernetes/build/root/WORKSPACE | 22 +- .../k8s.io/kubernetes/build/visible_to/BUILD | 52 +- .../kubernetes/build/visible_to/README.md | 8 +- vendor/k8s.io/kubernetes/cluster/BUILD | 1 + .../kubernetes/cluster/addons/README.md | 4 +- .../cluster/addons/addon-manager/Makefile | 2 +- .../cluster/addons/addon-manager/README.md | 11 +- .../addons/addon-manager/kube-addons.sh | 35 +- .../calico-clusterrole.yaml | 2 +- .../calico-clusterrolebinding.yaml | 2 +- .../calico-cpva-clusterrole.yaml | 2 +- .../calico-cpva-clusterrolebinding.yaml | 2 +- .../calico-node-daemonset.yaml | 7 +- .../calico-node-psp-binding.yaml | 16 + .../typha-deployment.yaml | 2 +- ...pha-horizontal-autoscaler-clusterrole.yaml | 11 + ...izontal-autoscaler-clusterrolebinding.yaml | 15 + ...ypha-horizontal-autoscaler-deployment.yaml | 1 + .../typha-horizontal-autoscaler-role.yaml | 15 + ...pha-horizontal-autoscaler-rolebinding.yaml | 16 + ...-horizontal-autoscaler-serviceaccount.yaml | 8 + .../google/heapster-controller.yaml | 21 - .../heapster-controller-combined.yaml | 21 - .../stackdriver/heapster-controller.yaml | 19 +- .../device-plugins/nvidia-gpu/daemonset.yaml | 45 + .../cluster/addons/dns/kube-dns.yaml.base | 21 +- .../cluster/addons/dns/kube-dns.yaml.in | 21 +- .../cluster/addons/dns/kube-dns.yaml.sed | 21 +- .../etcd-empty-dir-cleanup.yaml | 11 + .../etcd-empty-dir-cleanup-psp-binding.yaml | 16 + .../etcd-empty-dir-cleanup-psp-role.yaml | 17 + .../etcd-empty-dir-cleanup-psp.yaml | 31 + .../fluentd-elasticsearch/es-image/BUILD | 2 +- .../elasticsearch_logging_discovery.go | 11 +- .../fluentd-es-configmap.yaml | 17 +- .../fluentd-elasticsearch/fluentd-es-ds.yaml | 10 +- .../fluentd-es-image/Gemfile | 1 + .../fluentd-es-image/Makefile | 2 +- .../podsecuritypolicies/es-psp-binding.yaml | 16 + .../addons/fluentd-gcp/event-exporter.yaml | 19 +- .../fluentd-gcp/fluentd-gcp-configmap.yaml | 19 +- .../addons/fluentd-gcp/fluentd-gcp-ds.yaml | 44 +- .../event-exporter-psp-binding.yaml | 16 + .../event-exporter-psp-role.yaml | 17 + .../event-exporter-psp.yaml | 38 + .../fluentd-gcp-psp-binding.yaml | 16 + .../fluentd-gcp-psp-role.yaml | 17 + .../podsecuritypolicies/fluentd-gcp-psp.yaml | 38 + .../addons/ip-masq-agent/ip-masq-agent.yaml | 11 + .../ip-masq-agent-psp-binding.yaml | 16 + .../addons/kube-proxy/kube-proxy-ds.yaml | 6 + .../gce/metadata-proxy-configmap.yaml | 88 - .../metadata-proxy/gce/metadata-proxy.yaml | 47 +- .../metadata-proxy-psp-binding.yaml | 16 + .../metrics-server-deployment.yaml | 2 +- .../podsecuritypolicies/npd-psp-binding.yaml | 16 + .../podsecuritypolicies/privileged.yaml | 32 - ...e-apiserver-kubelet-api-admin-binding.yaml | 0 .../kubelet-api-admin-role.yaml | 0 .../kubelet-certificate-management.yaml | 0 .../kubelet-binding.yaml | 17 + .../kubelet-binding.yaml | 0 .../addons/storage-class/aws/default.yaml | 2 +- .../addons/storage-class/azure/default.yaml | 2 +- .../addons/storage-class/gce/default.yaml | 2 +- .../addons/storage-class/local/default.yaml | 2 +- .../storage-class/openstack/default.yaml | 2 +- .../addons/storage-class/vsphere/default.yaml | 2 +- .../kubernetes/cluster/centos/config-build.sh | 5 +- .../centos/master/scripts/apiserver.sh | 2 +- .../cluster/centos/node/scripts/flannel.sh | 2 +- vendor/k8s.io/kubernetes/cluster/common.sh | 142 +- vendor/k8s.io/kubernetes/cluster/gce/BUILD | 1 + .../kubernetes/cluster/gce/addons/BUILD | 38 + .../kubernetes/cluster/gce/addons/README.md | 7 + .../kube-proxy-binding.yaml | 15 + .../kube-system-binding.yaml | 17 + .../podsecuritypolicies/node-binding.yaml | 24 + .../persistent-volume-binder-binding.yaml | 18 + .../persistent-volume-binder-role.yaml | 20 + .../persistent-volume-binder.yaml | 29 + .../podsecuritypolicies/privileged-role.yaml | 16 + .../podsecuritypolicies/privileged.yaml | 33 + .../unprivileged-addon-role.yaml | 17 + .../unprivileged-addon.yaml | 38 + .../kubernetes/cluster/gce/config-common.sh | 8 +- .../kubernetes/cluster/gce/config-default.sh | 70 +- .../kubernetes/cluster/gce/config-test.sh | 56 +- .../kubernetes/cluster/gce/configure-vm.sh | 16 +- .../gce/container-linux/configure-helper.sh | 46 +- .../cluster/gce/gci/configure-helper.sh | 146 +- .../kubernetes/cluster/gce/gci/configure.sh | 23 +- .../cluster/gce/gci/health-monitor.sh | 2 +- .../cluster/gce/gci/master-helper.sh | 1 + .../cluster/gce/gci/mounter/.gitignore | 1 + .../cluster/gce/gci/mounter/mounter | Bin 2144449 -> 0 bytes .../kubernetes/cluster/gce/gci/node-helper.sh | 3 +- .../k8s.io/kubernetes/cluster/gce/upgrade.sh | 47 - vendor/k8s.io/kubernetes/cluster/gce/util.sh | 47 +- .../kubernetes/cluster/images/hyperkube/BUILD | 4 - .../cluster/images/hyperkube/Dockerfile | 7 +- .../cluster/images/hyperkube/Makefile | 2 +- .../kubernetes/cluster/juju/bundles/README.md | 6 +- .../layers/kubeapi-load-balancer/config.yaml | 6 + .../reactive/load_balancer.py | 29 +- .../kubernetes-e2e/reactive/kubernetes_e2e.py | 34 +- .../juju/layers/kubernetes-master/README.md | 4 + .../juju/layers/kubernetes-master/config.yaml | 30 + .../lib/charms/kubernetes/flagmanager.py | 149 - .../reactive/kubernetes_master.py | 384 +- .../templates/rbd-persistent-volume.yaml | 3 +- .../layers/kubernetes-worker/actions/microbot | 2 +- .../layers/kubernetes-worker/actions/pause | 4 +- .../layers/kubernetes-worker/actions/registry | 2 +- .../layers/kubernetes-worker/actions/resume | 2 +- .../juju/layers/kubernetes-worker/config.yaml | 18 + .../lib/charms/kubernetes/flagmanager.py | 149 - .../reactive/kubernetes_worker.py | 183 +- .../templates/default-http-backend.yaml | 9 +- .../ingress-replication-controller.yaml | 125 + vendor/k8s.io/kubernetes/cluster/kube-util.sh | 66 +- .../kubernetes-anywhere/util.sh} | 11 +- .../cluster/libvirt-coreos/README.md | 2 +- .../kubernetes/cluster/log-dump/log-dump.sh | 10 +- .../log-dump/logexporter-daemonset.yaml | 5 +- .../cluster/photon-controller/util.sh | 2 +- .../cluster-autoscaler.manifest | 2 +- .../e2e-image-puller.manifest | 51 +- .../saltbase/salt/kube-addons/init.sls | 11 + .../salt/kube-proxy/kube-proxy.manifest | 6 + .../cluster/saltbase/salt/kubelet/default | 5 +- .../cluster/update-storage-objects.sh | 1 + .../k8s.io/kubernetes/cluster/vagrant/util.sh | 2 - .../cmd/cloud-controller-manager/BUILD | 2 - .../cmd/cloud-controller-manager/app/BUILD | 3 +- .../app/controllermanager.go | 42 +- .../app/options/options.go | 2 +- .../controller-manager.go | 21 +- .../k8s.io/kubernetes/cmd/genkubedocs/BUILD | 1 + .../cmd/genkubedocs/gen_kube_docs.go | 5 + vendor/k8s.io/kubernetes/cmd/genman/BUILD | 1 + .../kubernetes/cmd/genman/gen_kube_man.go | 8 + .../kubernetes/cmd/genutils/genutils.go | 4 +- .../cmd/gke-certificates-controller/app/BUILD | 2 +- .../app/gke_certificates_controller.go | 9 +- .../app/gke_signer.go | 6 +- vendor/k8s.io/kubernetes/cmd/hyperkube/BUILD | 10 +- ...manager.go => cloud-controller-manager.go} | 17 +- .../cmd/hyperkube/federation-apiserver.go | 39 - .../kubernetes/cmd/hyperkube/hyperkube.go | 36 +- .../cmd/hyperkube/hyperkube_test.go | 17 + .../cmd/hyperkube/kube-scheduler.go | 28 +- .../kubernetes/cmd/hyperkube/kubelet.go | 3 + .../k8s.io/kubernetes/cmd/hyperkube/main.go | 5 +- .../kubernetes/cmd/importverifier/BUILD | 1 + .../cmd/importverifier/importverifier.go | 24 +- .../kubernetes/cmd/kube-apiserver/app/BUILD | 6 +- .../cmd/kube-apiserver/app/aggregator.go | 4 +- .../cmd/kube-apiserver/app/options/BUILD | 8 +- .../cmd/kube-apiserver/app/options/options.go | 16 +- .../app/options/options_test.go | 13 +- .../cmd/kube-apiserver/app/options/plugins.go | 2 - .../cmd/kube-apiserver/app/server.go | 744 +- .../cmd/kube-apiserver/app/testing/BUILD | 2 +- .../kube-apiserver/app/testing/server_test.go | 2 +- .../kube-apiserver/app/testing/testserver.go | 11 +- .../cmd/kube-controller-manager/BUILD | 1 - .../cmd/kube-controller-manager/app/BUILD | 8 +- .../app/autoscaling.go | 30 +- .../cmd/kube-controller-manager/app/batch.go | 10 +- .../kube-controller-manager/app/bootstrap.go | 22 +- .../app/certificates.go | 8 +- .../app/controllermanager.go | 10 +- .../cmd/kube-controller-manager/app/core.go | 94 +- .../kube-controller-manager/app/extensions.go | 18 +- .../app/import_known_versions.go | 8 +- .../app/options/options.go | 4 +- .../kube-controller-manager/app/plugins.go | 1 + .../cmd/kube-controller-manager/app/rbac.go | 33 + .../controller-manager.go | 5 - .../kubernetes/cmd/kube-proxy/app/BUILD | 23 +- .../kubernetes/cmd/kube-proxy/app/server.go | 124 +- .../cmd/kube-proxy/app/server_others.go | 25 +- .../cmd/kube-proxy/app/server_test.go | 91 +- .../cmd/kube-proxy/app/server_windows.go | 6 +- .../cmd/kube-proxy/app/validation_test.go | 403 - .../k8s.io/kubernetes/cmd/kube-proxy/proxy.go | 2 + .../cmd/kubeadm/app/apis/kubeadm/BUILD | 1 - .../cmd/kubeadm/app/apis/kubeadm/doc.go | 2 +- .../cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD | 1 + .../kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go | 10 + .../kubeadm/app/apis/kubeadm/install/BUILD | 2 +- .../app/apis/kubeadm/install/install.go | 4 +- .../cmd/kubeadm/app/apis/kubeadm/types.go | 30 +- .../kubeadm/app/apis/kubeadm/v1alpha1/BUILD | 8 +- .../app/apis/kubeadm/v1alpha1/defaults.go | 44 +- .../apis/kubeadm/v1alpha1/defaults_unix.go} | 13 +- .../kubeadm/v1alpha1/defaults_windows.go} | 10 +- .../app/apis/kubeadm/v1alpha1/types.go | 32 +- .../v1alpha1/zz_generated.conversion.go | 67 +- .../kubeadm/v1alpha1/zz_generated.deepcopy.go | 101 +- .../kubeadm/app/apis/kubeadm/validation/BUILD | 2 +- .../app/apis/kubeadm/validation/validation.go | 2 +- .../app/apis/kubeadm/zz_generated.deepcopy.go | 106 +- .../kubernetes/cmd/kubeadm/app/cmd/BUILD | 8 +- .../kubernetes/cmd/kubeadm/app/cmd/cmd.go | 10 +- .../cmd/kubeadm/app/cmd/completion.go | 2 +- .../kubernetes/cmd/kubeadm/app/cmd/config.go | 20 +- .../kubernetes/cmd/kubeadm/app/cmd/init.go | 114 +- .../kubernetes/cmd/kubeadm/app/cmd/join.go | 49 +- .../cmd/kubeadm/app/cmd/phases/BUILD | 4 +- .../cmd/kubeadm/app/cmd/phases/addons.go | 16 +- .../kubeadm/app/cmd/phases/bootstraptoken.go | 39 +- .../cmd/kubeadm/app/cmd/phases/certs.go | 18 +- .../kubeadm/app/cmd/phases/controlplane.go | 49 +- .../app/cmd/phases/controlplane_test.go | 2 + .../cmd/kubeadm/app/cmd/phases/etcd.go | 4 +- .../cmd/kubeadm/app/cmd/phases/kubeconfig.go | 11 +- .../kubeadm/app/cmd/phases/kubeconfig_test.go | 8 + .../cmd/kubeadm/app/cmd/phases/markmaster.go | 2 +- .../cmd/kubeadm/app/cmd/phases/preflight.go | 11 +- .../cmd/kubeadm/app/cmd/phases/selfhosting.go | 10 +- .../kubeadm/app/cmd/phases/uploadconfig.go | 4 +- .../kubernetes/cmd/kubeadm/app/cmd/reset.go | 77 +- .../cmd/kubeadm/app/cmd/reset_test.go | 130 + .../kubernetes/cmd/kubeadm/app/cmd/token.go | 52 +- .../cmd/kubeadm/app/cmd/upgrade/BUILD | 2 +- .../cmd/kubeadm/app/cmd/upgrade/apply.go | 24 +- .../cmd/kubeadm/app/cmd/upgrade/common.go | 4 +- .../kubeadm/app/cmd/upgrade/common_test.go | 43 +- .../cmd/kubeadm/app/cmd/upgrade/plan.go | 6 +- .../cmd/kubeadm/app/cmd/upgrade/plan_test.go | 20 +- .../cmd/kubeadm/app/cmd/upgrade/upgrade.go | 8 +- .../cmd/kubeadm/app/cmd/util/cmdutil.go | 10 +- .../cmd/kubeadm/app/constants/BUILD | 1 - .../cmd/kubeadm/app/constants/constants.go | 15 +- .../cmd/kubeadm/app/discovery/discovery.go | 2 +- .../kubernetes/cmd/kubeadm/app/features/BUILD | 5 +- .../cmd/kubeadm/app/features/features.go | 62 +- .../cmd/kubeadm/app/features/features_test.go | 49 +- .../cmd/kubeadm/app/phases/addons/dns/BUILD | 7 +- .../cmd/kubeadm/app/phases/addons/dns/dns.go | 161 +- .../kubeadm/app/phases/addons/dns/dns_test.go | 31 +- .../app/phases/addons/dns/manifests.go | 143 +- .../kubeadm/app/phases/addons/dns/versions.go | 53 +- .../app/phases/addons/dns/versions_test.go | 60 +- .../cmd/kubeadm/app/phases/addons/proxy/BUILD | 5 +- .../app/phases/addons/proxy/manifests.go | 7 + .../kubeadm/app/phases/addons/proxy/proxy.go | 27 +- .../app/phases/addons/proxy/proxy_test.go | 5 +- .../phases/bootstraptoken/clusterinfo/BUILD | 2 +- .../clusterinfo/clusterinfo_test.go | 2 +- .../app/phases/bootstraptoken/node/BUILD | 1 - .../bootstraptoken/node/tlsbootstrap.go | 46 +- .../kubeadm/app/phases/certs/certs_test.go | 9 + .../app/phases/certs/pkiutil/pki_helpers.go | 6 +- .../cmd/kubeadm/app/phases/controlplane/BUILD | 4 + .../app/phases/controlplane/manifests.go | 27 +- .../app/phases/controlplane/manifests_test.go | 112 +- .../app/phases/controlplane/volumes.go | 78 +- .../app/phases/controlplane/volumes_test.go | 561 +- .../cmd/kubeadm/app/phases/etcd/BUILD | 5 +- .../cmd/kubeadm/app/phases/etcd/local.go | 7 +- .../cmd/kubeadm/app/phases/etcd/spec/BUILD | 32 + .../kubeadm/app/phases/etcd/spec}/doc.go | 3 +- .../cmd/kubeadm/app/phases/etcd/spec/spec.go | 205 + .../phases/etcd/spec/zz_generated.deepcopy.go | 267 + .../cmd/kubeadm/app/phases/selfhosting/BUILD | 4 +- .../app/phases/selfhosting/selfhosting.go | 25 +- .../phases/selfhosting/selfhosting_test.go | 12 +- .../cmd/kubeadm/app/phases/upgrade/BUILD | 4 +- .../cmd/kubeadm/app/phases/upgrade/compute.go | 72 +- .../app/phases/upgrade/compute_test.go | 2 +- .../app/phases/upgrade/configuration.go | 12 +- .../kubeadm/app/phases/upgrade/postupgrade.go | 9 +- .../kubeadm/app/phases/upgrade/staticpods.go | 4 +- .../app/phases/upgrade/staticpods_test.go | 6 +- .../app/phases/upgrade/versiongetter.go | 4 +- .../cmd/kubeadm/app/phases/uploadconfig/BUILD | 4 +- .../app/phases/uploadconfig/uploadconfig.go | 4 +- .../phases/uploadconfig/uploadconfig_test.go | 8 +- .../cmd/kubeadm/app/preflight/BUILD | 16 +- .../cmd/kubeadm/app/preflight/checks.go | 248 +- .../cmd/kubeadm/app/preflight/checks_test.go | 190 +- .../kubeadm/app/preflight/checks_unix.go} | 21 +- .../kubeadm/app/preflight/checks_windows.go | 44 + .../app/util/apiclient/clientbacked_dryrun.go | 6 + .../cmd/kubeadm/app/util/config/BUILD | 2 +- .../kubeadm/app/util/config/masterconfig.go | 8 +- .../cmd/kubeadm/app/util/staticpod/BUILD | 3 + .../cmd/kubeadm/app/util/staticpod/utils.go | 104 +- .../kubeadm/app/util/staticpod/utils_test.go | 215 +- .../k8s.io/kubernetes/cmd/kubeadm/kubeadm.go | 2 + .../k8s.io/kubernetes/cmd/kubectl/kubectl.go | 2 + .../k8s.io/kubernetes/cmd/kubelet/app/BUILD | 3 +- .../kubernetes/cmd/kubelet/app/options/BUILD | 1 + .../kubelet/app/options/container_runtime.go | 2 + .../cmd/kubelet/app/options/options.go | 22 +- .../kubernetes/cmd/kubelet/app/plugins.go | 15 +- .../kubernetes/cmd/kubelet/app/server.go | 63 +- vendor/k8s.io/kubernetes/cmd/kubemark/BUILD | 3 +- .../kubernetes/cmd/kubemark/hollow-node.go | 22 +- vendor/k8s.io/kubernetes/docs/.generated_docs | 131 +- .../{federation-apiserver.md => kubeadm.md} | 0 .../kubernetes/docs/admin/kubeadm_alpha.md | 3 + .../docs/admin/kubeadm_alpha_phase.md | 3 + .../docs/admin/kubeadm_alpha_phase_addon.md | 3 + .../admin/kubeadm_alpha_phase_addon_all.md | 3 + .../kubeadm_alpha_phase_addon_kube-dns.md | 3 + .../kubeadm_alpha_phase_addon_kube-proxy.md | 3 + .../kubeadm_alpha_phase_bootstrap-token.md | 3 + ...lpha_phase_bootstrap-token_cluster-info.md | 3 + ...ubeadm_alpha_phase_bootstrap-token_node.md | 3 + ...bootstrap-token_node_allow-auto-approve.md | 3 + ...se_bootstrap-token_node_allow-post-csrs.md | 3 + .../docs/admin/kubeadm_alpha_phase_certs.md | 3 + .../admin/kubeadm_alpha_phase_certs_all.md | 3 + ...ha_phase_certs_apiserver-kubelet-client.md | 3 + .../kubeadm_alpha_phase_certs_apiserver.md | 3 + .../admin/kubeadm_alpha_phase_certs_ca.md | 3 + ...ubeadm_alpha_phase_certs_front-proxy-ca.md | 3 + ...dm_alpha_phase_certs_front-proxy-client.md | 3 + .../admin/kubeadm_alpha_phase_certs_sa.md | 3 + .../admin/kubeadm_alpha_phase_controlplane.md | 3 + .../kubeadm_alpha_phase_controlplane_all.md | 3 + ...eadm_alpha_phase_controlplane_apiserver.md | 3 + ...a_phase_controlplane_controller-manager.md | 3 + ...eadm_alpha_phase_controlplane_scheduler.md | 3 + .../docs/admin/kubeadm_alpha_phase_etcd.md | 3 + .../admin/kubeadm_alpha_phase_etcd_local.md | 3 + .../admin/kubeadm_alpha_phase_kubeconfig.md | 3 + .../kubeadm_alpha_phase_kubeconfig_admin.md | 3 + .../kubeadm_alpha_phase_kubeconfig_all.md | 3 + ...pha_phase_kubeconfig_controller-manager.md | 3 + .../kubeadm_alpha_phase_kubeconfig_kubelet.md | 3 + ...ubeadm_alpha_phase_kubeconfig_scheduler.md | 3 + .../kubeadm_alpha_phase_kubeconfig_user.md | 3 + .../admin/kubeadm_alpha_phase_mark-master.md | 3 + .../admin/kubeadm_alpha_phase_preflight.md | 3 + .../kubeadm_alpha_phase_preflight_master.md | 3 + .../kubeadm_alpha_phase_preflight_node.md | 3 + .../admin/kubeadm_alpha_phase_selfhosting.md | 3 + ...ase_selfhosting_convert-from-staticpods.md | 3 + .../kubeadm_alpha_phase_upload-config.md | 3 + .../docs/admin/kubeadm_completion.md | 3 + .../kubernetes/docs/admin/kubeadm_config.md | 3 + .../docs/admin/kubeadm_config_upload.md | 3 + .../admin/kubeadm_config_upload_from-file.md | 3 + .../admin/kubeadm_config_upload_from-flags.md | 3 + .../docs/admin/kubeadm_config_view.md | 3 + .../kubernetes/docs/admin/kubeadm_init.md | 3 + .../kubernetes/docs/admin/kubeadm_join.md | 3 + .../kubernetes/docs/admin/kubeadm_reset.md | 3 + .../kubernetes/docs/admin/kubeadm_token.md | 3 + .../docs/admin/kubeadm_token_create.md | 3 + .../docs/admin/kubeadm_token_delete.md | 3 + .../docs/admin/kubeadm_token_generate.md | 3 + .../docs/admin/kubeadm_token_list.md | 3 + .../kubernetes/docs/admin/kubeadm_upgrade.md | 3 + .../docs/admin/kubeadm_upgrade_apply.md | 3 + .../docs/admin/kubeadm_upgrade_plan.md | 3 + .../kubernetes/docs/admin/kubeadm_version.md | 3 + .../kubernetes/docs/api-reference/OWNERS | 4 + .../v1alpha1/definitions.html | 518 +- .../v1alpha1/operations.html | 1758 +- .../api-reference/apps/v1/definitions.html | 2086 +- .../api-reference/apps/v1/operations.html | 9746 +++- .../apps/v1beta1/definitions.html | 87 +- .../apps/v1beta1/operations.html | 6 +- .../apps/v1beta2/definitions.html | 156 +- .../apps/v1beta2/operations.html | 10 +- .../authentication.k8s.io/v1/definitions.html | 2 +- .../v1beta1/definitions.html | 2 +- .../authorization.k8s.io/v1/definitions.html | 14 +- .../v1beta1/definitions.html | 14 +- .../autoscaling/v1/definitions.html | 4 +- .../autoscaling/v1/operations.html | 2 +- .../autoscaling/v2beta1/definitions.html | 4 +- .../autoscaling/v2beta1/operations.html | 2 +- .../api-reference/batch/v1/definitions.html | 20 +- .../api-reference/batch/v1/operations.html | 2 +- .../batch/v1beta1/definitions.html | 22 +- .../batch/v1beta1/operations.html | 2 +- .../batch/v2alpha1/definitions.html | 22 +- .../batch/v2alpha1/operations.html | 2 +- .../v1beta1/definitions.html | 4 +- .../v1beta1/operations.html | 2 +- .../extensions/v1beta1/definitions.html | 91 +- .../extensions/v1beta1/operations.html | 12 +- .../networking.k8s.io/v1/definitions.html | 4 +- .../networking.k8s.io/v1/operations.html | 2 +- .../policy/v1beta1/definitions.html | 4 +- .../policy/v1beta1/operations.html | 2 +- .../v1/definitions.html | 790 +- .../v1/operations.html | 8 +- .../v1alpha1/definitions.html | 134 +- .../v1alpha1/operations.html | 8 +- .../v1beta1/definitions.html | 1004 +- .../v1beta1/operations.html | 8 +- .../v1alpha1/definitions.html | 4 +- .../v1alpha1/operations.html | 2 +- .../settings.k8s.io/v1alpha1/definitions.html | 10 +- .../settings.k8s.io/v1alpha1/operations.html | 2 +- .../storage.k8s.io/v1/definitions.html | 15 +- .../storage.k8s.io/v1/operations.html | 2 +- .../storage.k8s.io/v1alpha1}/definitions.html | 466 +- .../storage.k8s.io/v1alpha1}/operations.html | 232 +- .../storage.k8s.io/v1beta1/definitions.html | 15 +- .../storage.k8s.io/v1beta1/operations.html | 2 +- .../docs/api-reference/v1/definitions.html | 296 +- .../docs/api-reference/v1/operations.html | 28 +- .../man/man1/kubeadm-alpha-phase-addon-all.1 | 3 + .../man1/kubeadm-alpha-phase-addon-kube-dns.1 | 3 + .../kubeadm-alpha-phase-addon-kube-proxy.1 | 3 + .../docs/man/man1/kubeadm-alpha-phase-addon.1 | 3 + ...alpha-phase-bootstrap-token-cluster-info.1 | 3 + ...-bootstrap-token-node-allow-auto-approve.1 | 3 + ...ase-bootstrap-token-node-allow-post-csrs.1 | 3 + ...kubeadm-alpha-phase-bootstrap-token-node.1 | 3 + .../kubeadm-alpha-phase-bootstrap-token.1 | 3 + .../man/man1/kubeadm-alpha-phase-certs-all.1 | 3 + ...pha-phase-certs-apiserver-kubelet-client.1 | 3 + .../kubeadm-alpha-phase-certs-apiserver.1 | 3 + .../man/man1/kubeadm-alpha-phase-certs-ca.1 | 3 + ...kubeadm-alpha-phase-certs-front-proxy-ca.1 | 3 + ...adm-alpha-phase-certs-front-proxy-client.1 | 3 + .../man/man1/kubeadm-alpha-phase-certs-sa.1 | 3 + .../docs/man/man1/kubeadm-alpha-phase-certs.1 | 3 + .../kubeadm-alpha-phase-controlplane-all.1 | 3 + ...beadm-alpha-phase-controlplane-apiserver.1 | 3 + ...ha-phase-controlplane-controller-manager.1 | 3 + ...beadm-alpha-phase-controlplane-scheduler.1 | 3 + .../man1/kubeadm-alpha-phase-controlplane.1 | 3 + .../man/man1/kubeadm-alpha-phase-etcd-local.1 | 3 + .../docs/man/man1/kubeadm-alpha-phase-etcd.1 | 3 + .../kubeadm-alpha-phase-kubeconfig-admin.1 | 3 + .../man1/kubeadm-alpha-phase-kubeconfig-all.1 | 3 + ...lpha-phase-kubeconfig-controller-manager.1 | 3 + .../kubeadm-alpha-phase-kubeconfig-kubelet.1 | 3 + ...kubeadm-alpha-phase-kubeconfig-scheduler.1 | 3 + .../kubeadm-alpha-phase-kubeconfig-user.1 | 3 + .../man/man1/kubeadm-alpha-phase-kubeconfig.1 | 3 + .../man1/kubeadm-alpha-phase-mark-master.1 | 3 + .../kubeadm-alpha-phase-preflight-master.1 | 3 + .../man1/kubeadm-alpha-phase-preflight-node.1 | 3 + .../man/man1/kubeadm-alpha-phase-preflight.1 | 3 + ...hase-selfhosting-convert-from-staticpods.1 | 3 + .../man1/kubeadm-alpha-phase-selfhosting.1 | 3 + .../man1/kubeadm-alpha-phase-upload-config.1 | 3 + .../docs/man/man1/kubeadm-alpha-phase.1 | 3 + .../kubernetes/docs/man/man1/kubeadm-alpha.1 | 3 + .../docs/man/man1/kubeadm-completion.1 | 3 + .../man1/kubeadm-config-upload-from-file.1 | 3 + .../man1/kubeadm-config-upload-from-flags.1 | 3 + .../docs/man/man1/kubeadm-config-upload.1 | 3 + .../docs/man/man1/kubeadm-config-view.1 | 3 + .../kubernetes/docs/man/man1/kubeadm-config.1 | 3 + .../kubernetes/docs/man/man1/kubeadm-init.1 | 3 + .../kubernetes/docs/man/man1/kubeadm-join.1 | 3 + .../kubernetes/docs/man/man1/kubeadm-reset.1 | 3 + .../docs/man/man1/kubeadm-token-create.1 | 3 + .../docs/man/man1/kubeadm-token-delete.1 | 3 + .../docs/man/man1/kubeadm-token-generate.1 | 3 + .../docs/man/man1/kubeadm-token-list.1 | 3 + .../kubernetes/docs/man/man1/kubeadm-token.1 | 3 + .../docs/man/man1/kubeadm-upgrade-apply.1 | 3 + .../docs/man/man1/kubeadm-upgrade-plan.1 | 3 + .../docs/man/man1/kubeadm-upgrade.1 | 3 + .../docs/man/man1/kubeadm-version.1 | 3 + .../k8s.io/kubernetes/docs/man/man1/kubeadm.1 | 3 + .../docs/man/man1/kubectl-alpha-diff.1 | 3 + .../man/man1/kubectl-create-priorityclass.1 | 3 + .../docs/user-guide/kubectl/kubectl_alpha.md | 3 + .../user-guide/kubectl/kubectl_alpha_diff.md | 3 + .../kubectl/kubectl_create_priorityclass.md | 3 + vendor/k8s.io/kubernetes/examples/BUILD | 4 +- vendor/k8s.io/kubernetes/examples/OWNERS | 1 + .../cockroachdb/cockroachdb-statefulset.yaml | 2 - .../kubernetes/examples/examples_test.go | 4 +- .../kubernetes/examples/https-nginx/BUILD | 5 +- .../examples/https-nginx/make_secret.go | 7 +- .../podsecuritypolicy/rbac/bindings.yaml | 10 +- .../podsecuritypolicy/rbac/policies.yaml | 10 +- .../podsecuritypolicy/rbac/roles.yaml | 10 +- .../examples/sharing-clusters/BUILD | 3 +- .../examples/sharing-clusters/make_secret.go | 5 +- .../cassandra/cassandra-statefulset.yaml | 5 +- .../minio/minio-distributed-statefulset.yaml | 7 +- .../minio/minio-standalone-deployment.yaml | 5 +- .../storage/minio/minio-standalone-pvc.yaml | 2 - .../nfs/provisioner/nfs-server-gce-pv.yaml | 2 - .../portworx/portworx-volume-pvcsc.yaml | 3 +- .../portworx/portworx-volume-sc-high.yaml | 2 +- .../examples/volumes/scaleio/sc-pvc.yaml | 3 +- .../examples/volumes/scaleio/sc.yaml | 2 +- .../volumes/vsphere/simple-statefulset.yaml | 3 +- .../volumes/vsphere/simple-storageclass.yaml | 2 +- .../volumes/vsphere/vsphere-volume-pvcsc.yaml | 3 +- .../vsphere/vsphere-volume-sc-fast.yaml | 2 +- ...me-sc-vsancapabilities-with-datastore.yaml | 2 +- .../vsphere-volume-sc-vsancapabilities.yaml | 2 +- .../vsphere-volume-sc-with-datastore.yaml | 2 +- vendor/k8s.io/kubernetes/federation/BUILD | 44 - vendor/k8s.io/kubernetes/federation/Makefile | 70 - vendor/k8s.io/kubernetes/federation/OWNERS | 17 - vendor/k8s.io/kubernetes/federation/README.md | 67 - .../federation/apis/core/register.go | 102 - .../federation/apis/core/v1/conversion.go | 70 - .../kubernetes/federation/apis/core/v1/doc.go | 23 - .../federation/apis/federation/annotations.go | 29 - .../apis/federation/install/install_test.go | 119 - .../federation/apis/federation/types.go | 178 - .../apis/federation/v1beta1/generated.proto | 150 - .../apis/federation/v1beta1/types.go | 161 - .../v1beta1/types_swagger_doc_generated.go | 106 - .../v1beta1/zz_generated.conversion.go | 205 - .../v1beta1/zz_generated.deepcopy.go | 245 - .../apis/federation/validation/validation.go | 64 - .../federation/validation/validation_test.go | 330 - .../apis/federation/zz_generated.deepcopy.go | 331 - .../federation/apis/openapi-spec/swagger.json | 15312 ------ .../federation/apis/swagger-spec/api.json | 87 - .../federation/apis/swagger-spec/apis.json | 138 - .../apis/swagger-spec/extensions.json | 114 - .../apis/swagger-spec/extensions_v1beta1.json | 8283 --- .../apis/swagger-spec/federation.json | 114 - .../federation/apis/swagger-spec/logs.json | 46 - .../apis/swagger-spec/resourceListing.json | 46 - .../federation/apis/swagger-spec/v1.json | 5841 --- .../federation/apis/swagger-spec/version.json | 76 - .../kubernetes/federation/client/cache/BUILD | 29 - .../federation/client/cache/cluster_cache.go | 35 - .../federation_clientset/BUILD | 50 - .../federation_clientset/clientset.go | 186 - .../federation_clientset/fake/BUILD | 55 - .../fake/clientset_generated.go | 119 - .../import_known_versions.go | 25 - .../typed/autoscaling/v1/BUILD | 42 - .../v1/fake/fake_horizontalpodautoscaler.go | 138 - .../autoscaling/v1/horizontalpodautoscaler.go | 172 - .../typed/batch/v1/fake/fake_job.go | 138 - .../typed/batch/v1/job.go | 172 - .../typed/core/v1/configmap.go | 155 - .../typed/core/v1/event.go | 155 - .../typed/core/v1/fake/BUILD | 45 - .../typed/core/v1/fake/fake_configmap.go | 126 - .../typed/core/v1/fake/fake_event.go | 126 - .../typed/core/v1/fake/fake_namespace.go | 129 - .../core/v1/fake/fake_namespace_expansion.go | 37 - .../typed/core/v1/fake/fake_secret.go | 126 - .../typed/core/v1/fake/fake_service.go | 138 - .../typed/core/v1/namespace.go | 161 - .../typed/core/v1/namespace_expansion.go | 31 - .../typed/core/v1/secret.go | 155 - .../typed/core/v1/service.go | 172 - .../typed/extensions/v1beta1/BUILD | 46 - .../typed/extensions/v1beta1/daemonset.go | 172 - .../v1beta1/deployment_expansion.go | 29 - .../extensions/v1beta1/extensions_client.go | 103 - .../typed/extensions/v1beta1/fake/BUILD | 44 - .../extensions/v1beta1/fake/fake_daemonset.go | 138 - .../v1beta1/fake/fake_deployment_expansion.go | 33 - .../v1beta1/fake/fake_extensions_client.go | 50 - .../extensions/v1beta1/fake/fake_ingress.go | 138 - .../typed/extensions/v1beta1/ingress.go | 172 - .../typed/federation/v1beta1/cluster.go | 161 - .../federation/v1beta1/fake/fake_cluster.go | 129 - .../kubernetes/federation/cluster/BUILD | 14 - .../kubernetes/federation/cluster/common.sh | 118 - .../federation/cluster/federation-down.sh | 75 - .../federation/cluster/federation-up.sh | 138 - .../kubernetes/federation/cluster/log-dump.sh | 89 - .../kubernetes/federation/cluster/upgrade.sh | 43 - .../federation/cmd/federation-apiserver/BUILD | 44 - .../cmd/federation-apiserver/OWNERS | 10 - .../cmd/federation-apiserver/apiserver.go | 53 - .../cmd/federation-apiserver/app/BUILD | 104 - .../federation-apiserver/app/autoscaling.go | 61 - .../cmd/federation-apiserver/app/batch.go | 61 - .../cmd/federation-apiserver/app/core.go | 104 - .../federation-apiserver/app/extensions.go | 91 - .../federation-apiserver/app/federation.go | 63 - .../cmd/federation-apiserver/app/install.go | 55 - .../federation-apiserver/app/options/BUILD | 35 - .../app/options/options.go | 94 - .../app/options/validation.go | 58 - .../cmd/federation-apiserver/app/plugins.go | 40 - .../cmd/federation-apiserver/app/server.go | 486 - .../cmd/federation-controller-manager/BUILD | 46 - .../cmd/federation-controller-manager/OWNERS | 8 - .../federation-controller-manager/app/BUILD | 82 - .../app/controllermanager.go | 318 - .../app/controllermanager_test.go | 88 - .../app/options/BUILD | 33 - .../app/options/options.go | 152 - .../app/plugins.go | 27 - .../controller-manager.go | 52 - .../federation/cmd/genfeddocs/BUILD | 41 - .../federation/cmd/genfeddocs/gen_fed_docs.go | 71 - .../kubernetes/federation/cmd/kubefed/BUILD | 36 - .../federation/cmd/kubefed/app/BUILD | 33 - .../federation/cmd/kubefed/app/kubefed.go | 47 - .../federation/cmd/kubefed/kubefed.go | 30 - .../federation/deploy/config.json.sample | 83 - .../kubernetes/federation/deploy/deploy.sh | 145 - .../kubernetes/federation/develop/BUILD | 14 - .../kubernetes/federation/develop/develop.sh | 196 - .../kubernetes/federation/develop/kubefed.sh | 48 - .../federation/docs/api-reference/README.md | 12 - .../extensions/v1beta1/definitions.html | 7374 --- .../extensions/v1beta1/operations.html | 9927 ---- .../docs/api-reference/v1/definitions.html | 2448 - .../docs/api-reference/v1/operations.html | 9524 ---- .../federation/pkg/dnsprovider/BUILD | 49 - .../federation/pkg/dnsprovider/dns.go | 114 - .../federation/pkg/dnsprovider/dns_test.go | 96 - .../federation/pkg/dnsprovider/doc.go | 21 - .../federation/pkg/dnsprovider/plugins.go | 109 - .../dnsprovider/providers/aws/route53/BUILD | 63 - .../providers/aws/route53/interface.go | 39 - .../providers/aws/route53/route53.go | 72 - .../providers/aws/route53/route53_test.go | 295 - .../providers/aws/route53/rrchangeset.go | 134 - .../providers/aws/route53/rrset.go | 63 - .../providers/aws/route53/rrsets.go | 106 - .../providers/aws/route53/stubs/BUILD | 29 - .../providers/aws/route53/stubs/route53api.go | 133 - .../dnsprovider/providers/aws/route53/zone.go | 56 - .../providers/aws/route53/zones.go | 73 - .../pkg/dnsprovider/providers/coredns/BUILD | 62 - .../dnsprovider/providers/coredns/coredns.go | 144 - .../providers/coredns/coredns_test.go | 270 - .../providers/coredns/interface.go | 41 - .../providers/coredns/rrchangeset.go | 148 - .../dnsprovider/providers/coredns/rrset.go | 49 - .../dnsprovider/providers/coredns/rrsets.go | 114 - .../dnsprovider/providers/coredns/stubs/BUILD | 29 - .../providers/coredns/stubs/corednsapi.go | 85 - .../pkg/dnsprovider/providers/coredns/zone.go | 42 - .../dnsprovider/providers/coredns/zones.go | 49 - .../providers/google/clouddns/BUILD | 64 - .../providers/google/clouddns/clouddns.go | 116 - .../google/clouddns/clouddns_test.go | 273 - .../providers/google/clouddns/interface.go | 43 - .../providers/google/clouddns/internal/BUILD | 53 - .../google/clouddns/internal/change.go | 43 - .../clouddns/internal/changes_create_call.go | 34 - .../clouddns/internal/changes_service.go | 43 - .../google/clouddns/internal/clouddns.go | 35 - .../google/clouddns/internal/interfaces/BUILD | 29 - .../internal/interfaces/interfaces.go | 212 - .../google/clouddns/internal/managed_zone.go | 39 - .../internal/managed_zone_create_call.go | 33 - .../internal/managed_zones_delete_call.go | 32 - .../internal/managed_zones_get_call.go | 33 - .../internal/managed_zones_list_call.go | 38 - .../internal/managed_zones_list_response.go | 35 - .../internal/managed_zones_service.go | 51 - .../google/clouddns/internal/rrset.go | 32 - .../clouddns/internal/rrsets_list_call.go | 53 - .../clouddns/internal/rrsets_list_response.go | 38 - .../clouddns/internal/rrsets_service.go | 43 - .../google/clouddns/internal/service.go | 49 - .../google/clouddns/internal/stubs/BUILD | 48 - .../google/clouddns/internal/stubs/change.go | 36 - .../internal/stubs/changes_create_call.go | 67 - .../internal/stubs/changes_service.go | 34 - .../clouddns/internal/stubs/clouddns.go | 33 - .../clouddns/internal/stubs/managed_zone.go | 41 - .../stubs/managed_zone_create_call.go | 52 - .../stubs/managed_zones_delete_call.go | 53 - .../internal/stubs/managed_zones_get_call.go | 42 - .../internal/stubs/managed_zones_list_call.go | 59 - .../stubs/managed_zones_list_response.go | 28 - .../internal/stubs/managed_zones_service.go | 46 - .../google/clouddns/internal/stubs/rrset.go | 34 - .../internal/stubs/rrsets_list_call.go | 52 - .../internal/stubs/rrsets_list_response.go | 30 - .../clouddns/internal/stubs/rrsets_service.go | 83 - .../google/clouddns/internal/stubs/service.go | 54 - .../providers/google/clouddns/rrchangeset.go | 124 - .../providers/google/clouddns/rrset.go | 53 - .../providers/google/clouddns/rrsets.go | 94 - .../providers/google/clouddns/zone.go | 48 - .../providers/google/clouddns/zones.go | 68 - .../federation/pkg/dnsprovider/rrstype/BUILD | 25 - .../pkg/dnsprovider/rrstype/rrstype.go | 28 - .../federation/pkg/dnsprovider/tests/BUILD | 29 - .../pkg/dnsprovider/tests/commontests.go | 194 - .../federation/pkg/federatedtypes/BUILD | 88 - .../federation/pkg/federatedtypes/adapter.go | 79 - .../pkg/federatedtypes/configmap.go | 150 - .../pkg/federatedtypes/crudtester/BUILD | 33 - .../federatedtypes/crudtester/crudtester.go | 247 - .../pkg/federatedtypes/daemonset.go | 167 - .../pkg/federatedtypes/deployment.go | 189 - .../federation/pkg/federatedtypes/hpa.go | 1015 - .../federation/pkg/federatedtypes/hpa_test.go | 264 - .../pkg/federatedtypes/namespace.go | 215 - .../pkg/federatedtypes/qualifiedname.go | 41 - .../federation/pkg/federatedtypes/registry.go | 59 - .../pkg/federatedtypes/replicaset.go | 189 - .../pkg/federatedtypes/scheduling.go | 356 - .../pkg/federatedtypes/scheduling_test.go | 163 - .../federation/pkg/federatedtypes/secret.go | 152 - .../pkg/federation-controller/BUILD | 33 - .../pkg/federation-controller/OWNERS | 8 - .../pkg/federation-controller/cluster/BUILD | 67 - .../cluster/cluster_client.go | 170 - .../cluster/clustercontroller.go | 209 - .../cluster/clustercontroller_test.go | 173 - .../pkg/federation-controller/cluster/doc.go | 18 - .../pkg/federation-controller/ingress/BUILD | 76 - .../ingress/ingress_controller.go | 889 - .../ingress/ingress_controller_test.go | 397 - .../pkg/federation-controller/job/BUILD | 78 - .../job/jobcontroller.go | 561 - .../job/jobcontroller_test.go | 282 - .../pkg/federation-controller/service/BUILD | 86 - .../federation-controller/service/dns/BUILD | 62 - .../federation-controller/service/dns/dns.go | 549 - .../service/dns/dns_test.go | 251 - .../service/ingress/BUILD | 29 - .../service/ingress/ingress.go | 136 - .../service/servicecontroller.go | 726 - .../service/servicecontroller_test.go | 383 - .../pkg/federation-controller/sync/BUILD | 68 - .../federation-controller/sync/controller.go | 597 - .../sync/controller_test.go | 231 - .../pkg/federation-controller/util/BUILD | 100 - .../pkg/federation-controller/util/backoff.go | 36 - .../util/cluster_util.go | 148 - .../util/clusterselector/BUILD | 42 - .../util/clusterselector/clusterselector.go | 86 - .../clusterselector/clusterselector_test.go | 98 - .../federation-controller/util/configmap.go | 31 - .../util/delaying_deliverer.go | 183 - .../util/delaying_deliverer_test.go | 63 - .../util/deletionhelper/BUILD | 33 - .../util/deletionhelper/deletion_helper.go | 210 - .../federation-controller/util/deployment.go | 75 - .../util/deployment_test.go | 70 - .../util/eventsink/BUILD | 52 - .../util/eventsink/eventsink.go | 111 - .../util/eventsink/eventsink_test.go | 71 - .../util/federated_informer.go | 524 - .../util/federated_informer_test.go | 150 - .../util/federated_updater.go | 157 - .../util/federated_updater_test.go | 157 - .../util/finalizers/BUILD | 45 - .../util/finalizers/finalizers.go | 66 - .../util/finalizers/finalizers_test.go | 171 - .../federation-controller/util/handlers.go | 112 - .../util/handlers_test.go | 100 - .../pkg/federation-controller/util/hpa/hpa.go | 75 - .../util/hpa/hpa_test.go | 115 - .../pkg/federation-controller/util/meta.go | 85 - .../federation-controller/util/meta_test.go | 117 - .../federation-controller/util/planner/BUILD | 38 - .../util/planner/planner.go | 238 - .../util/planner/planner_test.go | 348 - .../util/podanalyzer/BUILD | 40 - .../util/podanalyzer/pod_helper.go | 63 - .../util/podanalyzer/pod_helper_test.go | 98 - .../util/replicapreferences/BUILD | 45 - .../util/replicapreferences/preferences.go | 55 - .../replicapreferences/preferences_test.go | 92 - .../pkg/federation-controller/util/secret.go | 32 - .../pkg/federation-controller/util/test/BUILD | 39 - .../util/test/test_helper.go | 445 - .../kubernetes/federation/pkg/kubefed/BUILD | 98 - .../federation/pkg/kubefed/init/BUILD | 85 - .../federation/pkg/kubefed/init/init.go | 1213 - .../federation/pkg/kubefed/init/init_test.go | 1605 - .../kubernetes/federation/pkg/kubefed/join.go | 700 - .../federation/pkg/kubefed/join_test.go | 617 - .../federation/pkg/kubefed/kubefed.go | 91 - .../federation/pkg/kubefed/testing/BUILD | 35 - .../federation/pkg/kubefed/testing/testing.go | 187 - .../federation/pkg/kubefed/unjoin.go | 333 - .../federation/pkg/kubefed/unjoin_test.go | 307 - .../federation/pkg/kubefed/util/BUILD | 47 - .../federation/pkg/kubefed/util/util.go | 347 - .../pkg/admission/schedulingpolicy/BUILD | 68 - .../admission/schedulingpolicy/admission.go | 213 - .../schedulingpolicy/admission_test.go | 474 - .../admission/schedulingpolicy/merge_test.go | 66 - .../pkg/admission/schedulingpolicy/query.go | 145 - .../federation/registry/cluster/BUILD | 66 - .../federation/registry/cluster/etcd/etcd.go | 68 - .../registry/cluster/etcd/etcd_test.go | 146 - .../federation/registry/cluster/registry.go | 82 - .../federation/registry/cluster/strategy.go | 121 - .../registry/cluster/strategy_test.go | 167 - .../kubernetes/federation/test/e2e/BUILD | 71 - .../kubernetes/federation/test/e2e/OWNERS | 16 - .../kubernetes/federation/test/e2e/README.md | 1 - .../federation/test/e2e/apiserver.go | 122 - .../kubernetes/federation/test/e2e/authn.go | 207 - .../kubernetes/federation/test/e2e/crud.go | 55 - .../kubernetes/federation/test/e2e/event.go | 99 - .../federation/test/e2e/framework/BUILD | 51 - .../federation/test/e2e/framework/cluster.go | 240 - .../test/e2e/framework/crudtester.go | 44 - .../test/e2e/framework/framework.go | 256 - .../federation/test/e2e/framework/util.go | 150 - .../kubernetes/federation/test/e2e/ingress.go | 638 - .../kubernetes/federation/test/e2e/job.go | 291 - .../federation/test/e2e/namespace.go | 236 - .../federation/test/e2e/replicaset.go | 461 - .../kubernetes/federation/test/e2e/service.go | 371 - .../kubernetes/federation/test/e2e/upgrade.go | 139 - .../federation/test/e2e/upgrades/simple.go | 72 - .../federation/test/e2e/upgrades/upgrade.go | 56 - .../kubernetes/federation/test/e2e/util.go | 513 - .../federation/test/integration/BUILD | 50 - .../federation/test/integration/OWNERS | 16 - .../federation/test/integration/api_test.go | 417 - .../federation/test/integration/crud_test.go | 114 - .../test/integration/framework/BUILD | 49 - .../test/integration/framework/api.go | 133 - .../test/integration/framework/controller.go | 43 - .../test/integration/framework/crudtester.go | 47 - .../test/integration/framework/federation.go | 141 - .../k8s.io/kubernetes/hack/.golint_failures | 119 +- .../kubernetes/hack/e2e-internal/e2e-down.sh | 14 +- .../hack/e2e-internal/e2e-status.sh | 17 +- .../kubernetes/hack/e2e-internal/e2e-up.sh | 14 +- .../k8s.io/kubernetes/hack/generate-docs.sh | 1 - vendor/k8s.io/kubernetes/hack/ginkgo-e2e.sh | 2 +- .../kubernetes/hack/import-restrictions.yaml | 84 + .../k8s.io/kubernetes/hack/jenkins/build.sh | 5 +- .../hack/jenkins/test-dockerized.sh | 1 - .../k8s.io/kubernetes/hack/lib/.gitattributes | 1 + vendor/k8s.io/kubernetes/hack/lib/golang.sh | 24 +- vendor/k8s.io/kubernetes/hack/lib/init.sh | 1 + vendor/k8s.io/kubernetes/hack/lib/swagger.sh | 11 +- vendor/k8s.io/kubernetes/hack/lib/util.sh | 101 +- vendor/k8s.io/kubernetes/hack/lib/version.sh | 13 + .../kubernetes/hack/local-up-cluster.sh | 15 +- .../k8s.io/kubernetes/hack/make-rules/BUILD | 9 - .../hack/make-rules/helpers/cache_go_dirs.sh | 2 +- .../kubernetes/hack/make-rules/make-help.sh | 17 - .../hack/make-rules/test-cmd-util.sh | 153 +- .../hack/make-rules/test-federation-cmd.sh | 91 - .../hack/make-rules/test-integration.sh | 3 - .../k8s.io/kubernetes/hack/make-rules/test.sh | 5 +- .../kubernetes/hack/make-rules/verify.sh | 2 +- .../hack/staging-import-restrictions.json | 92 - .../testdata/deployment-label-change1.yaml} | 8 +- .../testdata/deployment-label-change2.yaml} | 8 +- .../hack/testdata/pod-with-large-name.yaml | 2 +- vendor/k8s.io/kubernetes/hack/update-all.sh | 4 - vendor/k8s.io/kubernetes/hack/update-bazel.sh | 13 +- .../k8s.io/kubernetes/hack/update-codegen.sh | 23 +- .../update-federation-api-reference-docs.sh | 50 - ...pdate-federation-generated-swagger-docs.sh | 43 - .../hack/update-federation-openapi-spec.sh | 74 - .../hack/update-federation-swagger-spec.sh | 83 - ...date-generated-device-plugin-dockerized.sh | 3 +- .../kubernetes/hack/update-generated-docs.sh | 1 - .../update-generated-protobuf-dockerized.sh | 3 +- .../hack/update-generated-swagger-docs.sh | 7 +- .../hack/verify-api-reference-docs.sh | 2 +- .../k8s.io/kubernetes/hack/verify-codegen.sh | 1 + .../kubernetes/hack/verify-description.sh | 5 +- .../verify-federation-api-reference-docs.sh | 48 - ...erify-federation-generated-swagger-docs.sh | 66 - .../hack/verify-federation-openapi-spec.sh | 47 - .../hack/verify-federation-swagger-spec.sh | 51 - .../hack/verify-generated-device-plugin.sh | 2 +- .../kubernetes/hack/verify-generated-docs.sh | 1 - ...y-staging-imports.sh => verify-imports.sh} | 2 +- .../kubernetes/hack/verify-staging-godeps.sh | 2 +- vendor/k8s.io/kubernetes/pkg/BUILD | 20 +- vendor/k8s.io/kubernetes/pkg/api/OWNERS | 44 +- .../k8s.io/kubernetes/pkg/api/endpoints/BUILD | 4 +- .../kubernetes/pkg/api/endpoints/util.go | 2 +- .../kubernetes/pkg/api/endpoints/util_test.go | 2 +- vendor/k8s.io/kubernetes/pkg/api/events/BUILD | 4 +- .../pkg/api/events/sorted_event_list.go | 2 +- .../pkg/api/events/sorted_event_list_test.go | 2 +- .../install => pkg/api/legacyscheme}/BUILD | 17 +- .../kubernetes/pkg/api/legacyscheme/scheme.go | 46 + .../kubernetes/pkg/api/persistentvolume/BUILD | 4 +- .../pkg/api/persistentvolume/util.go | 24 +- .../pkg/api/persistentvolume/util_test.go | 26 +- vendor/k8s.io/kubernetes/pkg/api/pod/BUILD | 4 +- vendor/k8s.io/kubernetes/pkg/api/pod/util.go | 2 +- .../kubernetes/pkg/api/pod/util_test.go | 105 +- vendor/k8s.io/kubernetes/pkg/api/ref/BUILD | 5 +- vendor/k8s.io/kubernetes/pkg/api/ref/ref.go | 2 +- .../k8s.io/kubernetes/pkg/api/ref/ref_test.go | 9 +- .../k8s.io/kubernetes/pkg/api/resource/BUILD | 4 +- .../kubernetes/pkg/api/resource/helpers.go | 2 +- .../pkg/api/resource/helpers_test.go | 2 +- .../k8s.io/kubernetes/pkg/api/service/BUILD | 4 +- .../k8s.io/kubernetes/pkg/api/service/util.go | 5 +- .../kubernetes/pkg/api/service/util_test.go | 2 +- .../k8s.io/kubernetes/pkg/api/testapi/BUILD | 7 +- .../kubernetes/pkg/api/testapi/testapi.go | 158 +- .../pkg/api/testapi/testapi_test.go | 30 + .../k8s.io/kubernetes/pkg/api/testing/BUILD | 15 +- .../testing/backward_compatibility_test.go | 6 +- .../kubernetes/pkg/api/testing/compat/BUILD | 2 +- .../testing/compat/compatibility_tester.go | 4 +- .../kubernetes/pkg/api/testing/conversion.go | 6 +- .../pkg/api/testing/conversion_test.go | 17 +- .../kubernetes/pkg/api/testing/copy_test.go | 19 +- .../pkg/api/testing/deep_copy_test.go | 2 +- .../pkg/api/testing/defaulting_test.go | 98 +- .../kubernetes/pkg/api/testing/fuzzer.go | 4 +- .../kubernetes/pkg/api/testing/meta_test.go | 6 +- .../kubernetes/pkg/api/testing/pod_specs.go | 2 +- .../api/testing/serialization_proto_test.go | 21 +- .../pkg/api/testing/serialization_test.go | 54 +- .../pkg/api/testing/unstructured_test.go | 51 +- .../kubernetes/pkg/api/v1/resource/helpers.go | 2 +- .../pkg/api/v1/zz_generated.conversion.go | 5354 -- vendor/k8s.io/kubernetes/pkg/apis/abac/BUILD | 1 - .../pkg/apis/abac/v0/conversion_test.go | 24 +- .../k8s.io/kubernetes/pkg/apis/abac/v0/doc.go | 2 +- .../kubernetes/pkg/apis/abac/v0/register.go | 6 +- .../pkg/apis/abac/v0/zz_generated.deepcopy.go | 19 - .../pkg/apis/abac/v1beta1/conversion_test.go | 16 +- .../kubernetes/pkg/apis/abac/v1beta1/doc.go | 2 +- .../pkg/apis/abac/v1beta1/register.go | 6 +- .../abac/v1beta1/zz_generated.deepcopy.go | 23 - .../pkg/apis/abac/zz_generated.deepcopy.go | 18 - .../kubernetes/pkg/apis/admission/BUILD | 1 - .../kubernetes/pkg/apis/admission/doc.go | 2 +- .../pkg/apis/admission/install/BUILD | 2 +- .../pkg/apis/admission/install/install.go | 4 +- .../apis/admission/zz_generated.deepcopy.go | 27 - .../pkg/apis/admissionregistration/BUILD | 1 - .../pkg/apis/admissionregistration/doc.go | 4 +- .../admissionregistration/fuzzer/fuzzer.go | 2 +- .../apis/admissionregistration/install/BUILD | 2 +- .../admissionregistration/install/install.go | 6 +- .../apis/admissionregistration/register.go | 6 +- .../pkg/apis/admissionregistration/types.go | 166 +- .../apis/admissionregistration/v1alpha1/BUILD | 1 + .../v1alpha1/defaults.go | 7 +- .../admissionregistration/v1alpha1/doc.go | 2 +- .../v1alpha1/zz_generated.conversion.go | 267 +- .../v1alpha1/zz_generated.defaults.go | 40 +- .../admissionregistration/validation/BUILD | 1 + .../validation/validation.go | 127 +- .../validation/validation_test.go | 373 +- .../zz_generated.deepcopy.go | 335 +- vendor/k8s.io/kubernetes/pkg/apis/apps/BUILD | 4 +- vendor/k8s.io/kubernetes/pkg/apis/apps/doc.go | 2 +- .../kubernetes/pkg/apis/apps/install/BUILD | 2 +- .../pkg/apis/apps/install/install.go | 4 +- .../kubernetes/pkg/apis/apps/register.go | 5 +- .../k8s.io/kubernetes/pkg/apis/apps/types.go | 27 +- .../k8s.io/kubernetes/pkg/apis/apps/v1/BUILD | 12 +- .../kubernetes/pkg/apis/apps/v1/conversion.go | 346 +- .../pkg/apis/apps/v1/conversion_test.go | 548 +- .../kubernetes/pkg/apis/apps/v1/defaults.go | 78 + .../pkg/apis/apps/v1/defaults_test.go | 388 +- .../apis/apps/v1/zz_generated.conversion.go | 730 +- .../pkg/apis/apps/v1/zz_generated.defaults.go | 517 +- .../kubernetes/pkg/apis/apps/v1beta1/BUILD | 11 +- .../pkg/apis/apps/v1beta1/conversion.go | 61 +- .../pkg/apis/apps/v1beta1/defaults_test.go | 11 +- .../kubernetes/pkg/apis/apps/v1beta1/doc.go | 1 + .../apps/v1beta1/zz_generated.conversion.go | 109 +- .../apps/v1beta1/zz_generated.defaults.go | 2 +- .../kubernetes/pkg/apis/apps/v1beta2/BUILD | 12 +- .../pkg/apis/apps/v1beta2/conversion.go | 77 +- .../pkg/apis/apps/v1beta2/conversion_test.go | 66 +- .../pkg/apis/apps/v1beta2/defaults_test.go | 11 +- .../kubernetes/pkg/apis/apps/v1beta2/doc.go | 1 + .../apps/v1beta2/zz_generated.conversion.go | 193 +- .../apps/v1beta2/zz_generated.defaults.go | 2 +- .../kubernetes/pkg/apis/apps/validation/BUILD | 6 +- .../pkg/apis/apps/validation/validation.go | 4 +- .../apis/apps/validation/validation_test.go | 2 +- .../pkg/apis/apps/zz_generated.deepcopy.go | 75 +- .../kubernetes/pkg/apis/authentication/BUILD | 1 - .../kubernetes/pkg/apis/authentication/doc.go | 2 +- .../pkg/apis/authentication/install/BUILD | 2 +- .../apis/authentication/install/install.go | 4 +- .../authentication/zz_generated.deepcopy.go | 31 - .../kubernetes/pkg/apis/authorization/BUILD | 1 - .../kubernetes/pkg/apis/authorization/doc.go | 2 +- .../pkg/apis/authorization/install/BUILD | 2 +- .../pkg/apis/authorization/install/install.go | 4 +- .../pkg/apis/authorization/types.go | 10 +- .../v1/zz_generated.conversion.go | 2 + .../v1beta1/zz_generated.conversion.go | 2 + .../authorization/zz_generated.deepcopy.go | 67 - .../kubernetes/pkg/apis/autoscaling/BUILD | 3 +- .../kubernetes/pkg/apis/autoscaling/doc.go | 2 +- .../pkg/apis/autoscaling/fuzzer/BUILD | 3 +- .../pkg/apis/autoscaling/fuzzer/fuzzer.go | 13 +- .../pkg/apis/autoscaling/install/BUILD | 2 +- .../pkg/apis/autoscaling/install/install.go | 4 +- .../pkg/apis/autoscaling/register.go | 2 +- .../kubernetes/pkg/apis/autoscaling/types.go | 2 +- .../kubernetes/pkg/apis/autoscaling/v1/BUILD | 6 +- .../pkg/apis/autoscaling/v1/conversion.go | 2 +- .../pkg/apis/autoscaling/v1/defaults_test.go | 10 +- .../autoscaling/v1/zz_generated.conversion.go | 6 +- .../pkg/apis/autoscaling/v2beta1/BUILD | 6 +- .../apis/autoscaling/v2beta1/defaults_test.go | 10 +- .../v2beta1/zz_generated.conversion.go | 6 +- .../pkg/apis/autoscaling/validation/BUILD | 4 +- .../apis/autoscaling/validation/validation.go | 2 +- .../autoscaling/validation/validation_test.go | 2 +- .../apis/autoscaling/zz_generated.deepcopy.go | 83 - vendor/k8s.io/kubernetes/pkg/apis/batch/BUILD | 3 +- .../k8s.io/kubernetes/pkg/apis/batch/doc.go | 2 +- .../kubernetes/pkg/apis/batch/install/BUILD | 2 +- .../pkg/apis/batch/install/install.go | 4 +- .../kubernetes/pkg/apis/batch/register.go | 2 +- .../k8s.io/kubernetes/pkg/apis/batch/types.go | 7 +- .../k8s.io/kubernetes/pkg/apis/batch/v1/BUILD | 8 +- .../pkg/apis/batch/v1/conversion.go | 6 +- .../pkg/apis/batch/v1/defaults_test.go | 10 +- .../apis/batch/v1/zz_generated.conversion.go | 10 +- .../apis/batch/v1/zz_generated.defaults.go | 72 +- .../kubernetes/pkg/apis/batch/v1beta1/BUILD | 8 +- .../pkg/apis/batch/v1beta1/defaults_test.go | 10 +- .../batch/v1beta1/zz_generated.conversion.go | 4 +- .../batch/v1beta1/zz_generated.defaults.go | 2 +- .../kubernetes/pkg/apis/batch/v2alpha1/BUILD | 8 +- .../pkg/apis/batch/v2alpha1/defaults_test.go | 10 +- .../batch/v2alpha1/zz_generated.conversion.go | 4 +- .../batch/v2alpha1/zz_generated.defaults.go | 2 +- .../pkg/apis/batch/validation/BUILD | 6 +- .../pkg/apis/batch/validation/validation.go | 4 +- .../apis/batch/validation/validation_test.go | 2 +- .../pkg/apis/batch/zz_generated.deepcopy.go | 63 +- .../kubernetes/pkg/apis/certificates/BUILD | 1 - .../kubernetes/pkg/apis/certificates/doc.go | 2 +- .../pkg/apis/certificates/install/BUILD | 2 +- .../pkg/apis/certificates/install/install.go | 4 +- .../pkg/apis/certificates/register.go | 2 +- .../pkg/apis/certificates/validation/BUILD | 2 +- .../certificates/validation/validation.go | 2 +- .../certificates/zz_generated.deepcopy.go | 35 - .../kubernetes/pkg/apis/componentconfig/BUILD | 1 - .../pkg/apis/componentconfig/doc.go | 2 +- .../pkg/apis/componentconfig/helpers.go | 16 - .../pkg/apis/componentconfig/install/BUILD | 2 +- .../apis/componentconfig/install/install.go | 4 +- .../pkg/apis/componentconfig/register.go | 1 - .../pkg/apis/componentconfig/types.go | 213 +- .../pkg/apis/componentconfig/v1alpha1/BUILD | 3 +- .../apis/componentconfig/v1alpha1/defaults.go | 153 +- .../pkg/apis/componentconfig/v1alpha1/doc.go | 2 +- .../apis/componentconfig/v1alpha1/register.go | 1 - .../apis/componentconfig/v1alpha1/types.go | 237 +- .../v1alpha1/zz_generated.conversion.go | 306 +- .../v1alpha1/zz_generated.deepcopy.go | 189 +- .../v1alpha1/zz_generated.defaults.go | 7 +- .../componentconfig/zz_generated.deepcopy.go | 232 +- .../kubernetes/pkg/{api => apis/core}/BUILD | 28 +- .../{api => kubernetes/pkg/apis}/core/OWNERS | 2 + .../core}/annotation_key_constants.go | 8 +- .../kubernetes/pkg/{api => apis/core}/doc.go | 4 +- .../pkg/{api => apis/core}/field_constants.go | 2 +- .../pkg/{api => apis/core}/fuzzer/BUILD | 4 +- .../pkg/{api => apis/core}/fuzzer/fuzzer.go | 238 +- .../pkg/{api => apis/core}/helper/BUILD | 10 +- .../pkg/{api => apis/core}/helper/helpers.go | 324 +- .../{api => apis/core}/helper/helpers_test.go | 152 +- .../pkg/{api => apis/core}/helper/qos/BUILD | 6 +- .../pkg/{api => apis/core}/helper/qos/qos.go | 22 +- .../pkg/{api => apis/core}/install/BUILD | 12 +- .../pkg/{api => apis/core}/install/OWNERS | 0 .../pkg/{api => apis/core}/install/install.go | 14 +- .../core}/install/install_test.go | 27 +- .../kubernetes/pkg/{api => apis/core}/json.go | 2 +- .../pkg/{api => apis/core}/objectreference.go | 2 +- .../pkg/{api => apis/core}/register.go | 27 +- .../pkg/{api => apis/core}/resource.go | 2 +- .../pkg/{api => apis/core}/taint.go | 2 +- .../pkg/{api => apis/core}/taint_test.go | 2 +- .../pkg/{api => apis/core}/toleration.go | 2 +- .../pkg/{api => apis/core}/types.go | 91 +- .../pkg/{api => apis/core}/v1/BUILD | 34 +- .../api/core => pkg/apis/core/v1}/OWNERS | 17 +- .../pkg/{api => apis/core}/v1/conversion.go | 160 +- .../{api => apis/core}/v1/conversion_test.go | 169 +- .../pkg/{api => apis/core}/v1/defaults.go | 23 +- .../{api => apis/core}/v1/defaults_test.go | 10 +- .../pkg/{api => apis/core}/v1/doc.go | 8 +- .../pkg/{api => apis/core}/v1/helper/BUILD | 9 +- .../{api => apis/core}/v1/helper/helpers.go | 2 +- .../core}/v1/helper/helpers_test.go | 125 + .../{api => apis/core}/v1/helper/qos/BUILD | 12 +- .../{api => apis/core}/v1/helper/qos/qos.go | 2 +- .../core}/v1/helper/qos/qos_test.go | 14 +- .../pkg/{api => apis/core}/v1/register.go | 0 .../{api => apis/core}/v1/validation/BUILD | 8 +- .../core}/v1/validation/validation.go | 4 +- .../core}/v1/validation/validation_test.go | 0 .../apis/core/v1/zz_generated.conversion.go | 5430 ++ .../core}/v1/zz_generated.defaults.go | 4 +- .../pkg/{api => apis/core}/validation/BUILD | 18 +- .../pkg/{api => apis/core}/validation/OWNERS | 0 .../pkg/{api => apis/core}/validation/doc.go | 2 +- .../{api => apis/core}/validation/events.go | 7 +- .../core}/validation/events_test.go | 60 +- .../core}/validation/validation.go | 768 +- .../core}/validation/validation_test.go | 5601 +- .../core}/zz_generated.deepcopy.go | 788 +- .../kubernetes/pkg/apis/extensions/BUILD | 4 +- .../kubernetes/pkg/apis/extensions/doc.go | 2 +- .../pkg/apis/extensions/fuzzer/BUILD | 1 - .../pkg/apis/extensions/fuzzer/fuzzer.go | 43 +- .../pkg/apis/extensions/install/BUILD | 2 +- .../pkg/apis/extensions/install/install.go | 6 +- .../pkg/apis/extensions/register.go | 9 +- .../kubernetes/pkg/apis/extensions/types.go | 145 +- .../pkg/apis/extensions/v1beta1/BUILD | 11 +- .../pkg/apis/extensions/v1beta1/conversion.go | 81 +- .../apis/extensions/v1beta1/defaults_test.go | 11 +- .../pkg/apis/extensions/v1beta1/doc.go | 1 + .../v1beta1/zz_generated.conversion.go | 313 +- .../v1beta1/zz_generated.defaults.go | 2 +- .../pkg/apis/extensions/validation/BUILD | 6 +- .../apis/extensions/validation/validation.go | 21 +- .../extensions/validation/validation_test.go | 75 +- .../apis/extensions/zz_generated.deepcopy.go | 483 +- .../kubernetes/pkg/apis/imagepolicy/BUILD | 1 - .../kubernetes/pkg/apis/imagepolicy/doc.go | 2 +- .../pkg/apis/imagepolicy/install/BUILD | 2 +- .../pkg/apis/imagepolicy/install/install.go | 4 +- .../apis/imagepolicy/zz_generated.deepcopy.go | 31 - .../k8s.io/kubernetes/pkg/apis/meta/v1/BUILD | 30 - .../kubernetes/pkg/apis/meta/v1/time.go | 180 - .../kubernetes/pkg/apis/networking/BUILD | 3 +- .../kubernetes/pkg/apis/networking/doc.go | 2 +- .../pkg/apis/networking/install/BUILD | 2 +- .../pkg/apis/networking/install/install.go | 4 +- .../kubernetes/pkg/apis/networking/types.go | 2 +- .../kubernetes/pkg/apis/networking/v1/BUILD | 6 +- .../pkg/apis/networking/v1/defaults_test.go | 10 +- .../networking/v1/zz_generated.conversion.go | 4 +- .../pkg/apis/networking/validation/BUILD | 6 +- .../apis/networking/validation/validation.go | 19 +- .../networking/validation/validation_test.go | 112 +- .../apis/networking/zz_generated.deepcopy.go | 51 +- .../k8s.io/kubernetes/pkg/apis/policy/BUILD | 1 - .../k8s.io/kubernetes/pkg/apis/policy/doc.go | 2 +- .../kubernetes/pkg/apis/policy/install/BUILD | 2 +- .../pkg/apis/policy/install/install.go | 4 +- .../kubernetes/pkg/apis/policy/register.go | 2 +- .../kubernetes/pkg/apis/policy/v1alpha1/BUILD | 1 - .../pkg/apis/policy/v1alpha1/doc.go | 2 +- .../pkg/apis/policy/v1alpha1/register.go | 2 +- .../policy/v1alpha1/zz_generated.deepcopy.go | 35 - .../pkg/apis/policy/validation/BUILD | 2 +- .../pkg/apis/policy/validation/validation.go | 2 +- .../pkg/apis/policy/zz_generated.deepcopy.go | 35 - vendor/k8s.io/kubernetes/pkg/apis/rbac/BUILD | 3 +- vendor/k8s.io/kubernetes/pkg/apis/rbac/doc.go | 2 +- .../kubernetes/pkg/apis/rbac/helpers.go | 19 +- .../kubernetes/pkg/apis/rbac/helpers_test.go | 113 +- .../kubernetes/pkg/apis/rbac/install/BUILD | 2 +- .../pkg/apis/rbac/install/install.go | 4 +- .../kubernetes/pkg/apis/rbac/register.go | 2 +- .../k8s.io/kubernetes/pkg/apis/rbac/types.go | 15 +- .../apis/rbac/v1/zz_generated.conversion.go | 25 + .../kubernetes/pkg/apis/rbac/v1alpha1/BUILD | 2 +- .../pkg/apis/rbac/v1alpha1/conversion_test.go | 4 +- .../rbac/v1alpha1/zz_generated.conversion.go | 25 + .../rbac/v1beta1/zz_generated.conversion.go | 25 + .../kubernetes/pkg/apis/rbac/validation/BUILD | 4 +- .../pkg/apis/rbac/validation/validation.go | 20 +- .../pkg/apis/rbac/zz_generated.deepcopy.go | 88 +- .../kubernetes/pkg/apis/scheduling/BUILD | 1 - .../kubernetes/pkg/apis/scheduling/doc.go | 2 +- .../pkg/apis/scheduling/install/BUILD | 2 +- .../pkg/apis/scheduling/install/install.go | 4 +- .../pkg/apis/scheduling/validation/BUILD | 2 +- .../apis/scheduling/validation/validation.go | 2 +- .../apis/scheduling/zz_generated.deepcopy.go | 23 - .../k8s.io/kubernetes/pkg/apis/settings/BUILD | 3 +- .../kubernetes/pkg/apis/settings/doc.go | 2 +- .../pkg/apis/settings/install/BUILD | 2 +- .../pkg/apis/settings/install/install.go | 4 +- .../kubernetes/pkg/apis/settings/register.go | 2 +- .../kubernetes/pkg/apis/settings/types.go | 2 +- .../pkg/apis/settings/v1alpha1/BUILD | 4 +- .../v1alpha1/zz_generated.conversion.go | 10 +- .../v1alpha1/zz_generated.defaults.go | 2 +- .../pkg/apis/settings/validation/BUILD | 4 +- .../apis/settings/validation/validation.go | 2 +- .../settings/validation/validation_test.go | 2 +- .../apis/settings/zz_generated.deepcopy.go | 37 +- .../k8s.io/kubernetes/pkg/apis/storage/BUILD | 4 +- .../k8s.io/kubernetes/pkg/apis/storage/doc.go | 2 +- .../kubernetes/pkg/apis/storage/fuzzer/BUILD | 2 +- .../pkg/apis/storage/fuzzer/fuzzer.go | 2 +- .../kubernetes/pkg/apis/storage/install/BUILD | 3 +- .../pkg/apis/storage/install/install.go | 19 +- .../kubernetes/pkg/apis/storage/register.go | 2 + .../kubernetes/pkg/apis/storage/types.go | 131 +- .../kubernetes/pkg/apis/storage/util/BUILD | 24 +- .../kubernetes/pkg/apis/storage/util/util.go | 30 + .../pkg/apis/storage/util/util_test.go | 52 + .../kubernetes/pkg/apis/storage/v1/BUILD | 18 +- .../pkg/apis/storage/v1/defaults.go | 7 + .../pkg/apis/storage/v1/defaults_test.go | 81 + .../pkg/apis/storage/v1/util/helpers.go | 4 +- .../storage/v1/zz_generated.conversion.go | 6 +- .../pkg/apis/storage/v1alpha1/BUILD | 34 + .../pkg/apis/storage/v1alpha1/doc.go | 22 + .../pkg/apis/storage/v1alpha1/register.go | 38 + .../v1alpha1/zz_generated.conversion.go | 202 + .../storage/v1alpha1/zz_generated.defaults.go | 32 + .../kubernetes/pkg/apis/storage/v1beta1/BUILD | 18 +- .../pkg/apis/storage/v1beta1/defaults.go | 7 + .../pkg/apis/storage/v1beta1/defaults_test.go | 81 + .../v1beta1/zz_generated.conversion.go | 6 +- .../pkg/apis/storage/validation/BUILD | 7 +- .../pkg/apis/storage/validation/validation.go | 128 +- .../storage/validation/validation_test.go | 427 +- .../pkg/apis/storage/zz_generated.deepcopy.go | 199 +- .../pkg/auth/authorizer/abac/abac.go | 28 +- .../pkg/auth/authorizer/abac/abac_test.go | 166 +- .../pkg/auth/nodeidentifier/interfaces.go | 2 +- .../internalclientset/fake/BUILD | 2 +- .../internalclientset/fake/register.go | 2 +- .../internalclientset/scheme/BUILD | 2 +- .../internalclientset/scheme/register.go | 2 +- .../internalversion/BUILD | 3 +- .../admissionregistration_client.go | 15 +- .../externaladmissionhookconfiguration.go | 145 - .../internalversion/fake/BUILD | 3 +- .../fake/fake_admissionregistration_client.go | 12 +- ...fake_externaladmissionhookconfiguration.go | 118 - .../fake/fake_mutatingwebhookconfiguration.go | 118 + .../fake_validatingwebhookconfiguration.go | 118 + .../internalversion/generated_expansion.go | 6 +- .../mutatingwebhookconfiguration.go | 145 + .../validatingwebhookconfiguration.go | 145 + .../typed/apps/internalversion/BUILD | 2 +- .../typed/apps/internalversion/fake/BUILD | 2 +- .../internalversion/fake/fake_statefulset.go | 14 +- .../typed/apps/internalversion/statefulset.go | 16 +- .../typed/core/internalversion/BUILD | 7 +- .../core/internalversion/componentstatus.go | 32 +- .../typed/core/internalversion/configmap.go | 32 +- .../typed/core/internalversion/endpoints.go | 32 +- .../typed/core/internalversion/event.go | 32 +- .../core/internalversion/event_expansion.go | 12 +- .../typed/core/internalversion/fake/BUILD | 4 +- .../fake/fake_componentstatus.go | 38 +- .../internalversion/fake/fake_configmap.go | 38 +- .../internalversion/fake/fake_endpoints.go | 38 +- .../core/internalversion/fake/fake_event.go | 38 +- .../fake/fake_event_expansion.go | 2 +- .../internalversion/fake/fake_limitrange.go | 38 +- .../internalversion/fake/fake_namespace.go | 44 +- .../fake/fake_namespace_expansion.go | 2 +- .../core/internalversion/fake/fake_node.go | 44 +- .../fake/fake_node_expansion.go | 2 +- .../fake/fake_persistentvolume.go | 44 +- .../fake/fake_persistentvolumeclaim.go | 44 +- .../core/internalversion/fake/fake_pod.go | 44 +- .../fake/fake_pod_expansion.go | 2 +- .../internalversion/fake/fake_podtemplate.go | 38 +- .../fake/fake_replicationcontroller.go | 58 +- .../fake/fake_resourcequota.go | 44 +- .../core/internalversion/fake/fake_secret.go | 38 +- .../core/internalversion/fake/fake_service.go | 44 +- .../fake/fake_serviceaccount.go | 38 +- .../typed/core/internalversion/limitrange.go | 32 +- .../typed/core/internalversion/namespace.go | 38 +- .../internalversion/namespace_expansion.go | 4 +- .../typed/core/internalversion/node.go | 38 +- .../core/internalversion/node_expansion.go | 2 +- .../core/internalversion/persistentvolume.go | 38 +- .../internalversion/persistentvolumeclaim.go | 38 +- .../typed/core/internalversion/pod.go | 38 +- .../core/internalversion/pod_expansion.go | 5 +- .../typed/core/internalversion/podtemplate.go | 32 +- .../internalversion/replicationcontroller.go | 54 +- .../core/internalversion/resourcequota.go | 38 +- .../typed/core/internalversion/secret.go | 32 +- .../typed/core/internalversion/service.go | 38 +- .../core/internalversion/serviceaccount.go | 32 +- .../typed/extensions/internalversion/BUILD | 6 +- .../extensions/internalversion/deployment.go | 15 +- .../internalversion/extensions_client.go | 10 - .../extensions/internalversion/fake/BUILD | 4 +- .../internalversion/fake/fake_deployment.go | 13 +- .../fake/fake_extensions_client.go | 8 - .../internalversion/fake/fake_replicaset.go | 13 +- .../fake/fake_scale_expansion.go | 47 - .../fake/fake_thirdpartyresource.go | 118 - .../internalversion/generated_expansion.go | 2 - .../extensions/internalversion/replicaset.go | 15 +- .../internalversion/scale_expansion.go | 65 - .../internalversion/thirdpartyresource.go | 145 - .../typed/storage/internalversion/BUILD | 1 + .../typed/storage/internalversion/fake/BUILD | 1 + .../fake/fake_storage_client.go | 4 + .../fake/fake_volumeattachment.go | 129 + .../internalversion/generated_expansion.go | 2 + .../storage/internalversion/storage_client.go | 5 + .../internalversion/volumeattachment.go | 161 + .../informers_generated/internalversion/BUILD | 3 +- .../admissionregistration/interface.go | 10 +- .../internalversion/BUILD | 3 +- .../externaladmissionhookconfiguration.go | 73 - .../initializerconfiguration.go | 22 +- .../internalversion/interface.go | 31 +- .../mutatingwebhookconfiguration.go | 87 + .../validatingwebhookconfiguration.go | 87 + .../internalversion/apps/interface.go | 10 +- .../internalversion/controllerrevision.go | 23 +- .../apps/internalversion/interface.go | 12 +- .../apps/internalversion/statefulset.go | 23 +- .../internalversion/autoscaling/interface.go | 10 +- .../horizontalpodautoscaler.go | 23 +- .../autoscaling/internalversion/interface.go | 10 +- .../internalversion/batch/interface.go | 10 +- .../batch/internalversion/cronjob.go | 23 +- .../batch/internalversion/interface.go | 12 +- .../batch/internalversion/job.go | 23 +- .../internalversion/certificates/interface.go | 10 +- .../certificatesigningrequest.go | 22 +- .../certificates/internalversion/interface.go | 10 +- .../internalversion/core/interface.go | 10 +- .../core/internalversion/BUILD | 2 +- .../core/internalversion/componentstatus.go | 26 +- .../core/internalversion/configmap.go | 27 +- .../core/internalversion/endpoints.go | 27 +- .../core/internalversion/event.go | 27 +- .../core/internalversion/interface.go | 40 +- .../core/internalversion/limitrange.go | 27 +- .../core/internalversion/namespace.go | 26 +- .../core/internalversion/node.go | 26 +- .../core/internalversion/persistentvolume.go | 26 +- .../internalversion/persistentvolumeclaim.go | 27 +- .../core/internalversion/pod.go | 27 +- .../core/internalversion/podtemplate.go | 27 +- .../internalversion/replicationcontroller.go | 27 +- .../core/internalversion/resourcequota.go | 27 +- .../core/internalversion/secret.go | 27 +- .../core/internalversion/service.go | 27 +- .../core/internalversion/serviceaccount.go | 27 +- .../internalversion/extensions/interface.go | 10 +- .../extensions/internalversion/BUILD | 1 - .../extensions/internalversion/daemonset.go | 23 +- .../extensions/internalversion/deployment.go | 23 +- .../extensions/internalversion/ingress.go | 23 +- .../extensions/internalversion/interface.go | 25 +- .../internalversion/podsecuritypolicy.go | 22 +- .../extensions/internalversion/replicaset.go | 23 +- .../internalversion/thirdpartyresource.go | 73 - .../internalversion/factory.go | 44 +- .../internalversion/generic.go | 70 +- .../internalversion/internalinterfaces/BUILD | 1 + .../internalinterfaces/factory_interfaces.go | 3 + .../internalversion/networking/interface.go | 10 +- .../networking/internalversion/interface.go | 10 +- .../internalversion/networkpolicy.go | 23 +- .../internalversion/policy/interface.go | 10 +- .../policy/internalversion/interface.go | 10 +- .../internalversion/poddisruptionbudget.go | 23 +- .../internalversion/rbac/interface.go | 10 +- .../rbac/internalversion/clusterrole.go | 22 +- .../internalversion/clusterrolebinding.go | 22 +- .../rbac/internalversion/interface.go | 16 +- .../rbac/internalversion/role.go | 23 +- .../rbac/internalversion/rolebinding.go | 23 +- .../internalversion/scheduling/interface.go | 10 +- .../scheduling/internalversion/interface.go | 10 +- .../internalversion/priorityclass.go | 22 +- .../internalversion/settings/interface.go | 10 +- .../settings/internalversion/interface.go | 10 +- .../settings/internalversion/podpreset.go | 23 +- .../internalversion/storage/interface.go | 10 +- .../storage/internalversion/BUILD | 1 + .../storage/internalversion/interface.go | 17 +- .../storage/internalversion/storageclass.go | 22 +- .../internalversion/volumeattachment.go | 87 + .../internalversion/BUILD | 4 +- .../internalversion/expansion_generated.go | 12 +- .../externaladmissionhookconfiguration.go | 67 - .../initializerconfiguration.go | 4 +- .../mutatingwebhookconfiguration.go | 65 + .../validatingwebhookconfiguration.go | 65 + .../listers/apis/admissionregistration/BUILD | 31 + .../expansion_generated.go | 27 + .../initializerconfiguration.go | 65 + .../client/listers/apps/internalversion/BUILD | 2 +- .../internalversion/statefulset_expansion.go | 2 +- .../authentication/internalversion/BUILD | 1 - .../internalversion/tokenreview.go | 4 +- .../authorization/internalversion/BUILD | 1 - .../selfsubjectaccessreview.go | 4 +- .../internalversion/selfsubjectrulesreview.go | 4 +- .../internalversion/subjectaccessreview.go | 4 +- .../listers/batch/internalversion/BUILD | 4 +- .../batch/internalversion/job_expansion.go | 2 +- .../listers/batch/internalversion/job_test.go | 2 +- .../certificates/internalversion/BUILD | 1 - .../certificatesigningrequest.go | 4 +- .../client/listers/core/internalversion/BUILD | 3 +- .../core/internalversion/componentstatus.go | 20 +- .../listers/core/internalversion/configmap.go | 22 +- .../listers/core/internalversion/endpoints.go | 22 +- .../listers/core/internalversion/event.go | 22 +- .../core/internalversion/limitrange.go | 22 +- .../listers/core/internalversion/namespace.go | 20 +- .../listers/core/internalversion/node.go | 20 +- .../core/internalversion/node_expansion.go | 2 +- .../core/internalversion/persistentvolume.go | 20 +- .../internalversion/persistentvolumeclaim.go | 22 +- .../listers/core/internalversion/pod.go | 22 +- .../core/internalversion/podtemplate.go | 22 +- .../internalversion/replicationcontroller.go | 22 +- .../replicationcontroller_expansion.go | 2 +- .../core/internalversion/resourcequota.go | 22 +- .../listers/core/internalversion/secret.go | 22 +- .../listers/core/internalversion/service.go | 22 +- .../core/internalversion/service_expansion.go | 2 +- .../core/internalversion/serviceaccount.go | 22 +- .../listers/extensions/internalversion/BUILD | 6 +- .../internalversion/daemonset_expansion.go | 2 +- .../daemonset_expansion_test.go | 2 +- .../internalversion/expansion_generated.go | 12 - .../internalversion/podsecuritypolicy.go | 4 +- .../internalversion/replicaset_expansion.go | 2 +- .../extensions/internalversion/scale.go | 94 - .../internalversion/thirdpartyresource.go | 67 - .../listers/imagepolicy/internalversion/BUILD | 1 - .../internalversion/imagereview.go | 4 +- .../listers/policy/internalversion/BUILD | 2 +- .../poddisruptionbudget_expansion.go | 2 +- .../client/listers/rbac/internalversion/BUILD | 1 - .../rbac/internalversion/clusterrole.go | 4 +- .../internalversion/clusterrolebinding.go | 4 +- .../listers/scheduling/internalversion/BUILD | 1 - .../internalversion/priorityclass.go | 4 +- .../listers/storage/internalversion/BUILD | 2 +- .../internalversion/expansion_generated.go | 4 + .../storage/internalversion/storageclass.go | 4 +- .../internalversion/volumeattachment.go | 65 + .../k8s.io/kubernetes/pkg/client/tests/BUILD | 5 +- .../pkg/client/tests/fake_client_test.go | 4 +- .../pkg/client/tests/listwatch_test.go | 10 +- .../pkg/client/tests/remotecommand_test.go | 2 +- .../kubernetes/pkg/client/unversioned/BUILD | 6 +- .../pkg/client/unversioned/conditions.go | 2 +- .../pkg/client/unversioned/helper.go | 8 +- .../pkg/client/unversioned/helper_test.go | 7 +- .../unversioned/testclient/simple/BUILD | 3 +- .../testclient/simple/simple_testclient.go | 9 +- .../pkg/cloudprovider/providers/aws/aws.go | 77 +- .../cloudprovider/providers/azure/azure.go | 6 +- .../providers/azure/azure_instances.go | 15 +- .../providers/azure/azure_loadbalancer.go | 125 +- .../providers/azure/azure_test.go | 10 +- .../pkg/cloudprovider/providers/gce/BUILD | 5 +- .../pkg/cloudprovider/providers/gce/gce.go | 44 +- .../providers/gce/gce_clusterid.go | 4 +- .../providers/gce/gce_instances.go | 40 +- .../gce/gce_loadbalancer_external.go | 103 +- .../pkg/cloudprovider/providers/gce/kms.go | 167 - .../cloudprovider/providers/openstack/BUILD | 6 +- .../providers/openstack/metadata.go | 19 +- .../providers/openstack/openstack.go | 65 +- .../providers/openstack/openstack_client.go | 16 +- .../openstack/openstack_instances.go | 20 +- .../openstack/openstack_loadbalancer.go | 554 +- .../providers/openstack/openstack_test.go | 9 +- .../providers/openstack/openstack_volumes.go | 65 +- .../pkg/cloudprovider/providers/photon/BUILD | 2 +- .../cloudprovider/providers/photon/photon.go | 2 +- .../pkg/cloudprovider/providers/vsphere/BUILD | 2 +- .../providers/vsphere/vsphere.go | 35 +- vendor/k8s.io/kubernetes/pkg/controller/BUILD | 14 +- .../kubernetes/pkg/controller/bootstrap/BUILD | 6 +- .../controller/bootstrap/bootstrapsigner.go | 22 +- .../bootstrap/bootstrapsigner_test.go | 35 +- .../pkg/controller/bootstrap/common_test.go | 2 +- .../pkg/controller/bootstrap/tokencleaner.go | 18 +- .../controller/bootstrap/tokencleaner_test.go | 25 +- .../certificates/approver/sarapprove.go | 4 +- .../certificates/certificate_controller.go | 7 +- .../certificate_controller_test.go | 5 +- .../certificates/signer/cfssl_signer.go | 4 +- .../pkg/controller/client_builder.go | 22 +- .../pkg/controller/cloud/node_controller.go | 9 + .../controller/cloud/node_controller_test.go | 71 +- .../pkg/controller/cloud/pvlcontroller.go | 2 +- .../controller/clusterroleaggregation/BUILD | 57 + .../clusterroleaggregation_controller.go | 213 + .../clusterroleaggregation_controller_test.go | 182 + .../pkg/controller/controller_utils.go | 50 +- .../pkg/controller/controller_utils_test.go | 14 +- .../kubernetes/pkg/controller/cronjob/BUILD | 4 +- .../controller/cronjob/cronjob_controller.go | 19 +- .../cronjob/cronjob_controller_test.go | 2 +- .../pkg/controller/cronjob/utils.go | 13 +- .../pkg/controller/cronjob/utils_test.go | 14 +- .../kubernetes/pkg/controller/daemon/BUILD | 5 +- .../kubernetes/pkg/controller/daemon/OWNERS | 1 + .../controller/daemon/daemon_controller.go | 38 +- .../daemon/daemon_controller_test.go | 315 +- .../pkg/controller/daemon/update.go | 2 +- .../pkg/controller/daemon/update_test.go | 45 +- .../pkg/controller/daemon/util/BUILD | 2 +- .../controller/daemon/util/daemonset_util.go | 2 +- .../pkg/controller/deployment/BUILD | 4 +- .../deployment/deployment_controller.go | 14 +- .../deployment/deployment_controller_test.go | 97 +- .../pkg/controller/deployment/progress.go | 2 +- .../controller/deployment/progress_test.go | 178 + .../controller/deployment/recreate_test.go | 5 +- .../pkg/controller/deployment/rollback.go | 4 +- .../pkg/controller/deployment/sync.go | 24 +- .../pkg/controller/deployment/sync_test.go | 5 +- .../deployment/util/deployment_util.go | 2 +- .../pkg/controller/disruption/BUILD | 4 +- .../pkg/controller/disruption/disruption.go | 4 +- .../controller/disruption/disruption_test.go | 18 +- .../kubernetes/pkg/controller/endpoint/BUILD | 5 +- .../endpoint/endpoints_controller.go | 18 +- .../endpoint/endpoints_controller_test.go | 16 +- .../pkg/controller/garbagecollector/BUILD | 5 +- .../garbagecollector/garbagecollector.go | 40 +- .../garbagecollector/garbagecollector_test.go | 122 +- .../garbagecollector/metaonly/BUILD | 5 +- .../garbagecollector/metaonly/metaonly.go | 6 +- .../metaonly/metaonly_test.go | 2 +- .../metaonly/zz_generated.deepcopy.go | 18 - .../kubernetes/pkg/controller/job/BUILD | 4 +- .../pkg/controller/job/job_controller.go | 2 +- .../pkg/controller/job/job_controller_test.go | 40 +- .../pkg/controller/namespace/deletion/BUILD | 3 +- .../namespaced_resources_deleter_test.go | 5 +- .../namespace/namespace_controller.go | 6 +- .../kubernetes/pkg/controller/node/BUILD | 1 - .../kubernetes/pkg/controller/node/OWNERS | 1 + .../pkg/controller/node/ipam/adapter.go | 6 +- .../controller/node/ipam/cidr_allocator.go | 2 +- .../controller/node/ipam/cidrset/cidr_set.go | 15 +- .../node/ipam/cidrset/cidr_set_test.go | 45 +- .../node/ipam/cloud_cidr_allocator.go | 6 +- .../pkg/controller/node/ipam/controller.go | 7 +- .../controller/node/ipam/controller_test.go | 5 +- .../controller/node/ipam/range_allocator.go | 12 +- .../controller/node/ipam/sync/sync_test.go | 9 +- .../pkg/controller/node/node_controller.go | 16 +- .../pkg/controller/node/scheduler/BUILD | 4 +- .../node/scheduler/taint_controller.go | 12 +- .../kubernetes/pkg/controller/node/util/BUILD | 3 +- .../controller/node/util/controller_utils.go | 30 +- .../pkg/controller/podautoscaler/BUILD | 12 +- .../controller/podautoscaler/horizontal.go | 89 +- .../podautoscaler/horizontal_test.go | 281 +- .../podautoscaler/legacy_horizontal_test.go | 200 +- .../controller/podautoscaler/metrics/BUILD | 2 +- .../metrics/legacy_metrics_client.go | 4 +- .../metrics/rest_metrics_client_test.go | 10 +- .../podautoscaler/metrics/utilization.go | 2 +- .../podautoscaler/replica_calculator_test.go | 9 +- .../pkg/controller/podgc/gc_controller.go | 8 +- .../pkg/controller/replicaset/BUILD | 8 +- .../pkg/controller/replicaset/OWNERS | 2 + .../pkg/controller/replicaset/replica_set.go | 305 +- .../controller/replicaset/replica_set_test.go | 272 +- .../replicaset/replica_set_utils.go | 2 +- .../replicaset/replica_set_utils_test.go | 246 + .../pkg/controller/replication/BUILD | 46 +- .../pkg/controller/replication/OWNERS | 2 + .../pkg/controller/replication/conversion.go | 372 + .../replication/replication_controller.go | 645 +- .../replication_controller_test.go | 1719 - .../replication_controller_utils.go | 113 - .../replication_controller_utils_test.go | 184 + .../pkg/controller/resourcequota/BUILD | 21 +- .../resourcequota/replenishment_controller.go | 233 - .../replenishment_controller_test.go | 160 - .../resource_quota_controller.go | 189 +- .../resource_quota_controller_test.go | 565 +- .../resourcequota/resource_quota_monitor.go | 341 + .../pkg/controller/route/route_controller.go | 13 +- .../kubernetes/pkg/controller/service/BUILD | 4 +- .../kubernetes/pkg/controller/service/OWNERS | 5 + .../controller/service/service_controller.go | 46 +- .../pkg/controller/serviceaccount/BUILD | 4 +- .../serviceaccounts_controller.go | 12 +- .../serviceaccounts_controller_test.go | 5 +- .../controller/serviceaccount/tokengetter.go | 10 +- .../serviceaccount/tokens_controller.go | 26 +- .../serviceaccount/tokens_controller_test.go | 7 +- .../pkg/controller/statefulset/BUILD | 2 +- .../statefulset/stateful_pod_control.go | 8 +- .../statefulset/stateful_pod_control_test.go | 2 +- .../controller/statefulset/stateful_set.go | 4 +- .../kubernetes/pkg/controller/testutil/BUILD | 3 +- .../pkg/controller/testutil/test_utils.go | 5 +- .../pkg/controller/ttl/ttl_controller.go | 2 +- .../kubernetes/pkg/controller/volume/OWNERS | 4 +- .../attachdetach/attach_detach_controller.go | 2 +- .../attach_detach_controller_test.go | 4 +- .../cache/actual_state_of_world.go | 3 +- .../statusupdater/node_status_updater.go | 4 +- .../controller/volume/persistentvolume/BUILD | 4 +- .../volume/persistentvolume/index.go | 2 +- .../volume/persistentvolume/provision_test.go | 2 +- .../volume/persistentvolume/pv_controller.go | 22 +- .../persistentvolume/pv_controller_base.go | 13 +- .../kubernetes/pkg/features/kube_features.go | 23 +- .../kubernetes/pkg/generated/bindata.go | 28 +- .../kubernetes/pkg/generated/openapi/BUILD | 7 +- .../kubernetes/pkg/generated/openapi/def.bzl | 12 +- .../k8s.io/kubernetes/pkg/kubeapiserver/BUILD | 6 +- .../pkg/kubeapiserver/admission/BUILD | 6 +- .../pkg/kubeapiserver/admission/init_test.go | 9 +- .../kubeapiserver/admission/initializer.go | 83 +- .../default_storage_factory_builder.go | 14 +- .../default_storage_factory_builder_test.go | 8 +- .../pkg/kubeapiserver/options/BUILD | 2 +- .../kubeapiserver/options/cloudprovider.go | 2 + .../kubeapiserver/options/storage_versions.go | 6 +- .../kubeapiserver/server/insecure_handler.go | 12 +- .../pkg/kubectl/.import-restrictions | 149 + vendor/k8s.io/kubernetes/pkg/kubectl/BUILD | 30 +- vendor/k8s.io/kubernetes/pkg/kubectl/apply.go | 2 +- .../kubernetes/pkg/kubectl/apply/element.go | 8 +- .../kubernetes/pkg/kubectl/apply/parse/BUILD | 1 + .../pkg/kubectl/apply/parse/factory.go | 33 +- .../pkg/kubectl/apply/parse/item.go | 18 +- .../pkg/kubectl/apply/parse/list_element.go | 19 +- .../pkg/kubectl/apply/parse/map_element.go | 12 +- .../pkg/kubectl/apply/parse/openapi.go | 108 +- .../kubectl/apply/parse/primitive_element.go | 5 +- .../pkg/kubectl/apply/parse/type_element.go | 10 +- .../pkg/kubectl/apply/parse/util.go | 19 +- .../pkg/kubectl/apply/parse/visitor.go | 2 +- .../pkg/kubectl/apply/strategy/BUILD | 1 + .../apply/strategy/merge_map_list_test.go | 13 +- .../kubectl/apply/strategy/merge_visitor.go | 31 +- .../apply/strategy/replace_map_test.go | 9 +- .../apply/strategy/retain_keys_test.go | 195 + .../apply/strategy/retain_keys_visitor.go | 60 +- .../apply/strategy/strategic_visitor.go | 33 +- .../pkg/kubectl/apply/strategy/utils_test.go | 14 +- .../kubernetes/pkg/kubectl/apply/visitor.go | 15 +- .../k8s.io/kubernetes/pkg/kubectl/cluster.go | 159 - .../kubernetes/pkg/kubectl/cluster_test.go | 239 - .../k8s.io/kubernetes/pkg/kubectl/cmd/BUILD | 41 +- .../kubernetes/pkg/kubectl/cmd/alpha.go | 1 + .../kubernetes/pkg/kubectl/cmd/annotate.go | 50 +- .../pkg/kubectl/cmd/annotate_test.go | 26 +- .../kubernetes/pkg/kubectl/cmd/apply.go | 46 +- .../pkg/kubectl/cmd/apply_set_last_applied.go | 14 +- .../kubernetes/pkg/kubectl/cmd/apply_test.go | 119 +- .../kubectl/cmd/apply_view_last_applied.go | 10 +- .../kubernetes/pkg/kubectl/cmd/attach.go | 5 +- .../kubernetes/pkg/kubectl/cmd/attach_test.go | 17 +- .../kubernetes/pkg/kubectl/cmd/auth/BUILD | 2 +- .../pkg/kubectl/cmd/auth/cani_test.go | 6 +- .../pkg/kubectl/cmd/auth/reconcile.go | 50 +- .../kubernetes/pkg/kubectl/cmd/autoscale.go | 2 +- .../kubernetes/pkg/kubectl/cmd/clusterinfo.go | 8 +- .../pkg/kubectl/cmd/clusterinfo_dump.go | 2 +- .../k8s.io/kubernetes/pkg/kubectl/cmd/cmd.go | 69 +- .../kubernetes/pkg/kubectl/cmd/cmd_test.go | 69 +- .../pkg/kubectl/cmd/config/get_contexts.go | 2 + .../kubectl/cmd/config/get_contexts_test.go | 21 + .../pkg/kubectl/cmd/config/rename_context.go | 6 +- .../kubectl/cmd/config/rename_context_test.go | 2 +- .../kubernetes/pkg/kubectl/cmd/convert.go | 29 +- .../pkg/kubectl/cmd/convert_test.go | 127 + .../k8s.io/kubernetes/pkg/kubectl/cmd/cp.go | 16 +- .../kubernetes/pkg/kubectl/cmd/cp_test.go | 54 +- .../kubernetes/pkg/kubectl/cmd/create.go | 78 +- .../pkg/kubectl/cmd/create_clusterrole.go | 4 +- .../kubectl/cmd/create_clusterrole_test.go | 2 +- .../cmd/create_clusterrolebinding_test.go | 3 - .../pkg/kubectl/cmd/create_configmap_test.go | 7 +- .../pkg/kubectl/cmd/create_deployment_test.go | 3 - .../pkg/kubectl/cmd/create_namespace_test.go | 7 +- .../pkg/kubectl/cmd/create_pdb_test.go | 4 +- .../pkg/kubectl/cmd/create_priorityclass.go | 90 + .../kubectl/cmd/create_priorityclass_test.go | 59 + .../pkg/kubectl/cmd/create_quota_test.go | 7 +- .../kubernetes/pkg/kubectl/cmd/create_role.go | 20 +- .../pkg/kubectl/cmd/create_role_test.go | 2 +- .../kubectl/cmd/create_rolebinding_test.go | 10 +- .../pkg/kubectl/cmd/create_secret.go | 1 + .../pkg/kubectl/cmd/create_secret_test.go | 11 +- .../pkg/kubectl/cmd/create_service.go | 32 +- .../pkg/kubectl/cmd/create_service_test.go | 15 +- .../kubectl/cmd/create_serviceaccount_test.go | 7 +- .../kubernetes/pkg/kubectl/cmd/create_test.go | 11 +- .../kubernetes/pkg/kubectl/cmd/delete.go | 7 +- .../kubernetes/pkg/kubectl/cmd/delete_test.go | 23 +- .../kubernetes/pkg/kubectl/cmd/describe.go | 33 +- .../pkg/kubectl/cmd/describe_test.go | 7 - .../k8s.io/kubernetes/pkg/kubectl/cmd/diff.go | 453 + .../kubernetes/pkg/kubectl/cmd/diff_test.go | 285 + .../kubernetes/pkg/kubectl/cmd/drain.go | 81 +- .../kubernetes/pkg/kubectl/cmd/drain_test.go | 155 +- .../kubernetes/pkg/kubectl/cmd/edit_test.go | 2 - .../k8s.io/kubernetes/pkg/kubectl/cmd/exec.go | 5 +- .../kubernetes/pkg/kubectl/cmd/exec_test.go | 6 +- .../kubernetes/pkg/kubectl/cmd/explain.go | 20 +- .../kubernetes/pkg/kubectl/cmd/expose.go | 2 +- .../kubernetes/pkg/kubectl/cmd/expose_test.go | 11 +- .../k8s.io/kubernetes/pkg/kubectl/cmd/get.go | 638 - .../kubernetes/pkg/kubectl/cmd/label.go | 38 +- .../kubernetes/pkg/kubectl/cmd/label_test.go | 14 +- .../k8s.io/kubernetes/pkg/kubectl/cmd/logs.go | 6 +- .../kubernetes/pkg/kubectl/cmd/logs_test.go | 7 +- .../kubernetes/pkg/kubectl/cmd/patch.go | 16 +- .../kubernetes/pkg/kubectl/cmd/patch_test.go | 5 - .../kubernetes/pkg/kubectl/cmd/plugin.go | 12 + .../kubernetes/pkg/kubectl/cmd/portforward.go | 2 +- .../pkg/kubectl/cmd/portforward_test.go | 7 +- .../kubernetes/pkg/kubectl/cmd/replace.go | 13 +- .../pkg/kubectl/cmd/replace_test.go | 6 +- .../kubernetes/pkg/kubectl/cmd/resource/BUILD | 78 + .../pkg/kubectl/cmd/resource/get.go | 698 + .../kubectl/cmd/{ => resource}/get_test.go | 251 +- .../pkg/kubectl/cmd/rollingupdate.go | 9 +- .../k8s.io/kubernetes/pkg/kubectl/cmd/run.go | 2 +- .../kubernetes/pkg/kubectl/cmd/run_test.go | 17 +- .../kubernetes/pkg/kubectl/cmd/scale.go | 2 +- .../kubernetes/pkg/kubectl/cmd/set/BUILD | 16 +- .../kubernetes/pkg/kubectl/cmd/set/helper.go | 35 +- .../kubernetes/pkg/kubectl/cmd/set/set_env.go | 87 +- .../pkg/kubectl/cmd/set/set_env_test.go | 416 +- .../pkg/kubectl/cmd/set/set_image.go | 35 +- .../pkg/kubectl/cmd/set/set_image_test.go | 416 +- .../pkg/kubectl/cmd/set/set_resources.go | 47 +- .../pkg/kubectl/cmd/set/set_resources_test.go | 427 +- .../pkg/kubectl/cmd/set/set_selector.go | 30 +- .../pkg/kubectl/cmd/set/set_selector_test.go | 31 +- .../pkg/kubectl/cmd/set/set_serviceaccount.go | 32 +- .../cmd/set/set_serviceaccount_test.go | 256 +- .../pkg/kubectl/cmd/set/set_subject.go | 23 +- .../kubernetes/pkg/kubectl/cmd/taint.go | 5 +- .../kubernetes/pkg/kubectl/cmd/taint_test.go | 2 - .../kubernetes/pkg/kubectl/cmd/testing/BUILD | 7 +- .../pkg/kubectl/cmd/testing/fake.go | 84 +- .../cmd/testing/zz_generated.deepcopy.go | 34 - .../kubernetes/pkg/kubectl/cmd/top_node.go | 12 +- .../pkg/kubectl/cmd/top_node_test.go | 8 +- .../kubernetes/pkg/kubectl/cmd/top_pod.go | 10 +- .../pkg/kubectl/cmd/top_pod_test.go | 3 - .../kubernetes/pkg/kubectl/cmd/top_test.go | 27 +- .../kubernetes/pkg/kubectl/cmd/util/BUILD | 16 +- .../pkg/kubectl/cmd/util/cached_discovery.go | 8 +- .../pkg/kubectl/cmd/util/clientcache.go | 57 +- .../pkg/kubectl/cmd/util/editor/BUILD | 3 +- .../kubectl/cmd/util/editor/editoptions.go | 11 +- .../kubernetes/pkg/kubectl/cmd/util/env/BUILD | 16 +- .../pkg/kubectl/cmd/util/env/doc.go | 18 + .../pkg/kubectl/cmd/util/env/env_parse.go | 30 +- .../kubectl/cmd/util/env/env_parse_test.go | 96 + .../pkg/kubectl/cmd/util/env/env_resolve.go | 34 +- .../pkg/kubectl/cmd/util/factory.go | 25 +- .../pkg/kubectl/cmd/util/factory_builder.go | 42 +- .../kubectl/cmd/util/factory_client_access.go | 74 +- .../cmd/util/factory_object_mapping.go | 41 +- .../cmd/util/factory_object_mapping_test.go | 2 +- .../pkg/kubectl/cmd/util/factory_test.go | 5 +- .../pkg/kubectl/cmd/util/helpers.go | 15 +- .../pkg/kubectl/cmd/util/helpers_test.go | 13 +- .../pkg/kubectl/cmd/util/openapi/BUILD | 4 +- .../pkg/kubectl/cmd/util/openapi/OWNERS | 4 + .../pkg/kubectl/cmd/util/openapi/openapi.go | 276 +- .../kubectl/cmd/util/openapi/openapi_test.go | 143 +- .../kubectl/cmd/util/openapi/testing/BUILD | 1 + .../cmd/util/openapi/testing/openapi.go | 3 +- .../kubectl/cmd/util/openapi/validation/BUILD | 14 +- .../cmd/util/openapi/validation/errors.go | 79 - .../cmd/util/openapi/validation/types.go | 289 - .../cmd/util/openapi/validation/validation.go | 67 +- .../validation/validation_suite_test.go | 2 +- .../openapi/validation/validation_test.go | 67 +- .../pkg/kubectl/cmd/util/printing.go | 70 +- .../kubectl/cmd/util/shortcut_restmapper.go | 30 +- .../kubernetes/pkg/kubectl/configmap.go | 14 +- .../kubernetes/pkg/kubectl/configmap_test.go | 36 +- .../k8s.io/kubernetes/pkg/kubectl/delete.go | 2 +- .../kubernetes/pkg/kubectl/delete_test.go | 2 +- .../kubernetes/pkg/kubectl/explain/BUILD | 2 +- .../kubernetes/pkg/kubectl/explain/OWNERS | 4 + .../kubernetes/pkg/kubectl/explain/explain.go | 6 +- .../pkg/kubectl/explain/field_lookup.go | 18 +- .../pkg/kubectl/explain/field_lookup_test.go | 6 +- .../pkg/kubectl/explain/fields_printer.go | 18 +- .../pkg/kubectl/explain/model_printer.go | 20 +- .../explain/recursive_fields_printer.go | 18 +- .../pkg/kubectl/explain/typename.go | 16 +- .../k8s.io/kubernetes/pkg/kubectl/history.go | 222 +- .../kubernetes/pkg/kubectl/history_test.go | 46 + .../kubernetes/pkg/kubectl/metricsutil/BUILD | 7 +- .../pkg/kubectl/metricsutil/metrics_client.go | 10 +- .../kubectl/metricsutil/metrics_printer.go | 37 +- .../kubernetes/pkg/kubectl/namespace.go | 4 +- .../kubernetes/pkg/kubectl/namespace_test.go | 10 +- vendor/k8s.io/kubernetes/pkg/kubectl/pdb.go | 15 +- .../k8s.io/kubernetes/pkg/kubectl/pdb_test.go | 130 + .../kubectl/plugins/examples/aging/aging.rb | 3 +- .../plugins/examples/aging/plugin.yaml | 3 - .../kubernetes/pkg/kubectl/priorityclass.go | 85 + .../pkg/kubectl/priorityclass_test.go | 90 + vendor/k8s.io/kubernetes/pkg/kubectl/quota.go | 12 +- .../kubernetes/pkg/kubectl/quota_test.go | 28 +- .../kubernetes/pkg/kubectl/resource/BUILD | 9 +- .../pkg/kubectl/resource/builder.go | 102 +- .../pkg/kubectl/resource/builder_test.go | 321 +- .../pkg/kubectl/resource/categories.go | 7 - .../kubernetes/pkg/kubectl/resource/helper.go | 19 +- .../pkg/kubectl/resource/helper_test.go | 173 +- .../kubernetes/pkg/kubectl/resource/result.go | 25 +- .../pkg/kubectl/resource/selector.go | 91 +- .../pkg/kubectl/resource/visitor.go | 2 +- .../kubernetes/pkg/kubectl/resource_filter.go | 7 +- .../pkg/kubectl/resource_filter_test.go | 2 +- .../kubernetes/pkg/kubectl/rolebinding.go | 28 +- .../pkg/kubectl/rolebinding_test.go | 2 +- .../k8s.io/kubernetes/pkg/kubectl/rollback.go | 101 +- .../kubernetes/pkg/kubectl/rolling_updater.go | 6 +- .../pkg/kubectl/rolling_updater_test.go | 11 +- .../kubernetes/pkg/kubectl/rollout_status.go | 42 +- .../pkg/kubectl/rollout_status_test.go | 20 +- vendor/k8s.io/kubernetes/pkg/kubectl/run.go | 45 - vendor/k8s.io/kubernetes/pkg/kubectl/scale.go | 2 +- .../kubernetes/pkg/kubectl/scale_test.go | 2 +- .../kubernetes/pkg/kubectl/scheme/BUILD | 62 + .../kubernetes/pkg/kubectl/scheme/install.go | 304 + .../kubernetes/pkg/kubectl/scheme/scheme.go | 43 + .../k8s.io/kubernetes/pkg/kubectl/secret.go | 16 +- .../pkg/kubectl/secret_for_docker_registry.go | 12 +- .../secret_for_docker_registry_test.go | 28 +- .../kubernetes/pkg/kubectl/secret_for_tls.go | 10 +- .../pkg/kubectl/secret_for_tls_test.go | 40 +- .../kubernetes/pkg/kubectl/secret_test.go | 36 +- .../k8s.io/kubernetes/pkg/kubectl/service.go | 30 +- .../kubernetes/pkg/kubectl/service_basic.go | 41 +- .../pkg/kubectl/service_basic_test.go | 60 +- .../kubernetes/pkg/kubectl/service_test.go | 152 +- .../kubernetes/pkg/kubectl/serviceaccount.go | 4 +- .../pkg/kubectl/serviceaccount_test.go | 10 +- .../pkg/kubectl/sorting_printer_test.go | 6 +- .../kubernetes/pkg/kubectl/testing/BUILD | 1 - .../kubectl/testing/zz_generated.deepcopy.go | 14 - .../kubernetes/pkg/kubectl/util/hash/BUILD | 4 +- .../kubernetes/pkg/kubectl/util/hash/hash.go | 10 +- .../pkg/kubectl/util/hash/hash_test.go | 38 +- vendor/k8s.io/kubernetes/pkg/kubelet/BUILD | 22 +- .../k8s.io/kubernetes/pkg/kubelet/apis/BUILD | 2 +- .../apis/cri/testing/fake_runtime_service.go | 8 +- .../apis/cri/v1alpha1/runtime/api.pb.go | 1630 +- .../apis/cri/v1alpha1/runtime/api.proto | 31 +- .../deviceplugin/{v1alpha1 => v1alpha}/BUILD | 2 +- .../{v1alpha1 => v1alpha}/api.pb.go | 312 +- .../{v1alpha1 => v1alpha}/api.proto | 20 +- .../{v1alpha1 => v1alpha}/constants.go | 4 +- .../pkg/kubelet/apis/kubeletconfig/BUILD | 16 +- .../pkg/kubelet/apis/kubeletconfig/doc.go | 2 +- .../pkg/kubelet/apis/kubeletconfig/helpers.go | 34 + .../apis/kubeletconfig/helpers_test.go | 241 + .../pkg/kubelet/apis/kubeletconfig/types.go | 13 +- .../kubelet/apis/kubeletconfig/v1alpha1/BUILD | 2 +- .../apis/kubeletconfig/v1alpha1/defaults.go | 6 +- .../apis/kubeletconfig/v1alpha1/doc.go | 2 +- .../apis/kubeletconfig/v1alpha1/types.go | 10 +- .../v1alpha1/zz_generated.conversion.go | 14 +- .../v1alpha1/zz_generated.deepcopy.go | 55 +- .../validation/validation_test.go | 8 +- .../kubeletconfig/zz_generated.deepcopy.go | 59 +- .../kubernetes/pkg/kubelet/cadvisor/BUILD | 2 +- .../kubernetes/pkg/kubelet/cadvisor/util.go | 2 +- .../pkg/kubelet/certificate/bootstrap/BUILD | 4 +- .../certificate/bootstrap/bootstrap.go | 91 +- .../pkg/kubelet/certificate/kubelet.go | 4 +- .../pkg/kubelet/certificate/transport.go | 13 +- .../pkg/kubelet/certificate/transport_test.go | 7 +- vendor/k8s.io/kubernetes/pkg/kubelet/cm/BUILD | 25 +- .../pkg/kubelet/cm/container_manager.go | 11 +- .../pkg/kubelet/cm/container_manager_linux.go | 92 +- .../pkg/kubelet/cm/container_manager_stub.go | 8 +- .../cm/container_manager_unsupported.go | 8 +- .../cm/container_manager_unsupported_test.go | 25 +- .../pkg/kubelet/cm/cpumanager/BUILD | 2 +- .../pkg/kubelet/cm/cpumanager/cpu_manager.go | 2 +- .../kubelet/cm/cpumanager/cpu_manager_test.go | 31 +- .../kubelet/cm/cpumanager/policy_none_test.go | 5 +- .../kubelet/cm/cpumanager/policy_static.go | 2 +- .../cm/cpumanager/policy_static_test.go | 47 +- .../pkg/kubelet/cm/cpumanager/state/BUILD | 11 +- .../pkg/kubelet/cm/cpumanager/state/state.go | 15 + .../kubelet/cm/cpumanager/state/state_file.go | 195 + .../cm/cpumanager/state/state_file_test.go | 446 + .../kubelet/cm/cpumanager/state/state_mem.go | 27 +- .../pkg/kubelet/cm/device_plugin_handler.go | 294 - .../kubelet/cm/device_plugin_handler_stub.go | 42 - .../kubelet/cm/device_plugin_handler_test.go | 285 - .../pkg/kubelet/cm/deviceplugin/BUILD | 70 + .../pkg/kubelet/{ => cm}/deviceplugin/OWNERS | 5 +- .../cm/deviceplugin/device_plugin_handler.go | 365 + .../device_plugin_handler_stub.go | 52 + .../device_plugin_handler_test.go | 414 + .../deviceplugin/device_plugin_stub.go | 2 +- .../kubelet/{ => cm}/deviceplugin/endpoint.go | 69 +- .../{ => cm}/deviceplugin/endpoint_test.go | 20 +- .../kubelet/{ => cm}/deviceplugin/manager.go | 46 +- .../{ => cm}/deviceplugin/manager_test.go | 10 +- .../kubelet/cm/deviceplugin/pod_devices.go | 228 + .../kubelet/{ => cm}/deviceplugin/types.go | 21 +- .../pkg/kubelet/cm/helpers_linux.go | 4 +- .../kubelet/cm/pod_container_manager_linux.go | 2 +- .../kubelet/cm/qos_container_manager_linux.go | 2 +- .../kubernetes/pkg/kubelet/config/BUILD | 19 +- .../pkg/kubelet/config/apiserver.go | 4 +- .../kubernetes/pkg/kubelet/config/common.go | 28 +- .../pkg/kubelet/config/common_test.go | 15 +- .../kubernetes/pkg/kubelet/config/config.go | 37 +- .../pkg/kubelet/config/config_test.go | 4 +- .../kubernetes/pkg/kubelet/config/defaults.go | 9 +- .../kubernetes/pkg/kubelet/config/file.go | 2 +- .../pkg/kubelet/config/file_linux_test.go | 10 +- .../kubernetes/pkg/kubelet/config/flags.go | 18 +- .../kubernetes/pkg/kubelet/config/http.go | 2 +- .../pkg/kubelet/config/http_test.go | 19 +- .../kubelet/configmap/configmap_manager.go | 9 +- .../configmap/configmap_manager_test.go | 38 +- .../kubernetes/pkg/kubelet/container/BUILD | 6 +- .../pkg/kubelet/container/helpers.go | 6 +- .../kubernetes/pkg/kubelet/container/ref.go | 4 +- .../pkg/kubelet/container/ref_test.go | 18 +- .../pkg/kubelet/container/runtime.go | 4 - .../container/testing/fake_runtime_helper.go | 8 +- .../kubernetes/pkg/kubelet/deviceplugin/BUILD | 55 - .../pkg/kubelet/deviceplugin/utils.go | 61 - .../pkg/kubelet/deviceplugin/utils_test.go | 53 - .../kubernetes/pkg/kubelet/dockershim/BUILD | 9 +- .../kubelet/dockershim/checkpoint_store.go | 156 - .../dockershim/cm/container_manager_linux.go | 2 +- .../kubelet/dockershim/docker_checkpoint.go | 17 +- .../kubelet/dockershim/docker_container.go | 2 +- .../pkg/kubelet/dockershim/docker_image.go | 6 +- .../pkg/kubelet/dockershim/docker_sandbox.go | 25 +- .../pkg/kubelet/dockershim/docker_service.go | 91 +- .../pkg/kubelet/dockershim/errors/BUILD | 25 - .../pkg/kubelet/dockershim/helpers.go | 8 - .../pkg/kubelet/dockershim/helpers_linux.go | 8 + .../kubelet/dockershim/helpers_unsupported.go | 6 + .../pkg/kubelet/dockershim/helpers_windows.go | 42 +- .../kubelet/dockershim/libdocker/client.go | 18 +- .../pkg/kubelet/dockershim/testing/BUILD | 1 - .../pkg/kubelet/dockershim/testing/util.go | 5 +- .../kubernetes/pkg/kubelet/envvars/BUILD | 2 +- .../kubernetes/pkg/kubelet/envvars/envvars.go | 2 +- .../kubernetes/pkg/kubelet/eviction/BUILD | 4 +- .../pkg/kubelet/eviction/eviction_manager.go | 2 +- .../kubelet/eviction/eviction_manager_test.go | 2 +- .../pkg/kubelet/eviction/helpers_test.go | 2 +- .../kubernetes/pkg/kubelet/gpu/nvidia/BUILD | 2 + .../kubelet/gpu/nvidia/nvidia_gpu_manager.go | 7 +- .../gpu/nvidia/nvidia_gpu_manager_test.go | 6 +- .../k8s.io/kubernetes/pkg/kubelet/kubelet.go | 187 +- .../kubernetes/pkg/kubelet/kubelet_getters.go | 2 +- .../kubernetes/pkg/kubelet/kubelet_network.go | 197 +- .../pkg/kubelet/kubelet_network_test.go | 282 +- .../pkg/kubelet/kubelet_node_status.go | 62 +- .../pkg/kubelet/kubelet_node_status_test.go | 33 +- .../kubernetes/pkg/kubelet/kubelet_pods.go | 47 +- .../pkg/kubelet/kubelet_pods_test.go | 103 +- .../kubernetes/pkg/kubelet/kubelet_test.go | 113 +- .../kubelet/kubeletconfig/checkpoint/BUILD | 2 +- .../kubeletconfig/checkpoint/checkpoint.go | 6 +- .../kubeletconfig/checkpoint/download.go | 6 +- .../kubeletconfig/checkpoint/store/fsstore.go | 10 +- .../kubelet/kubeletconfig/configfiles/BUILD | 1 - .../kubeletconfig/configfiles/configfiles.go | 20 +- .../configfiles/configfiles_test.go | 226 +- .../pkg/kubelet/kubeletconfig/controller.go | 5 +- .../pkg/kubelet/kubeletconfig/status/BUILD | 3 +- .../kubelet/kubeletconfig/status/status.go | 9 +- .../kubelet/kubeletconfig/util/codec/BUILD | 4 +- .../kubelet/kubeletconfig/util/codec/codec.go | 12 +- .../kubelet/kubeletconfig/util/files/files.go | 10 +- .../pkg/kubelet/kubeletconfig/watch.go | 4 +- .../kubernetes/pkg/kubelet/kuberuntime/BUILD | 13 +- .../pkg/kubelet/kuberuntime/helpers.go | 2 +- .../kuberuntime/instrumented_services_test.go | 36 +- .../kuberuntime/kuberuntime_container.go | 14 +- .../kuberuntime/kuberuntime_container_test.go | 2 +- .../kubelet/kuberuntime/kuberuntime_logs.go | 348 +- .../kuberuntime/kuberuntime_manager.go | 24 +- .../kuberuntime/kuberuntime_sandbox.go | 4 +- .../pkg/kubelet/kuberuntime/logs/BUILD | 43 + .../pkg/kubelet/kuberuntime/logs/logs.go | 375 + .../logs_test.go} | 22 +- .../pkg/kubelet/lifecycle/predicate.go | 20 +- .../kubernetes/pkg/kubelet/mountpod/BUILD | 45 + .../pkg/kubelet/mountpod/mount_pod.go | 120 + .../pkg/kubelet/mountpod/mount_pod_test.go | 160 + .../kubernetes/pkg/kubelet/network/cni/BUILD | 17 +- .../kubernetes/pkg/kubelet/network/cni/cni.go | 60 +- .../pkg/kubelet/network/cni/cni_others.go | 80 + .../pkg/kubelet/network/cni/cni_windows.go | 61 + .../pkg/kubelet/network/hostport/BUILD | 2 + .../kubelet/network/hostport/fake_iptables.go | 24 +- .../network/hostport/fake_iptables_test.go | 56 + .../network/hostport/hostport_manager.go | 13 + .../network/hostport/hostport_manager_test.go | 115 +- .../network/hostport/hostport_syncer.go | 3 +- .../network/hostport/hostport_syncer_test.go | 87 + .../kubelet/network/kubenet/kubenet_linux.go | 88 +- .../network/kubenet/kubenet_linux_test.go | 31 - .../kubernetes/pkg/kubelet/network/plugins.go | 12 +- .../pkg/kubelet/network/testing/BUILD | 2 + .../kubelet/network/testing/plugins_test.go | 31 + .../k8s.io/kubernetes/pkg/kubelet/networks.go | 95 - .../kubernetes/pkg/kubelet/networks_test.go | 91 - .../kubernetes/pkg/kubelet/pleg/generic.go | 5 +- .../pkg/kubelet/pod/mirror_client.go | 4 +- .../kubernetes/pkg/kubelet/preemption/BUILD | 4 +- .../pkg/kubelet/preemption/preemption.go | 2 +- .../pkg/kubelet/preemption/preemption_test.go | 2 +- .../k8s.io/kubernetes/pkg/kubelet/qos/BUILD | 2 +- .../kubernetes/pkg/kubelet/qos/policy.go | 2 +- .../kubernetes/pkg/kubelet/remote/BUILD | 20 +- .../kubernetes/pkg/kubelet/remote/fake/BUILD | 46 + .../remote/fake/doc.go} | 8 +- .../pkg/kubelet/remote/fake/endpoint.go | 28 + .../kubelet/remote/fake/endpoint_windows.go | 40 + .../kubelet/remote/fake/fake_image_service.go | 80 + .../pkg/kubelet/remote/fake/fake_runtime.go | 285 + .../pkg/kubelet/remote/remote_runtime_test.go | 69 + .../k8s.io/kubernetes/pkg/kubelet/rkt/rkt.go | 4 +- .../kubernetes/pkg/kubelet/rkt/rkt_test.go | 7 +- .../pkg/kubelet/secret/secret_manager.go | 9 +- .../pkg/kubelet/secret/secret_manager_test.go | 45 +- .../kubernetes/pkg/kubelet/server/BUILD | 9 +- .../pkg/kubelet/server/portforward/BUILD | 4 +- .../kubelet/server/portforward/httpstream.go | 2 +- .../server/portforward/httpstream_test.go | 2 +- .../kubelet/server/portforward/websocket.go | 2 +- .../pkg/kubelet/server/remotecommand/BUILD | 2 +- .../server/remotecommand/httpstream.go | 2 +- .../kubernetes/pkg/kubelet/server/server.go | 29 +- .../pkg/kubelet/server/server_test.go | 90 +- .../pkg/kubelet/server/streaming/BUILD | 2 +- .../pkg/kubelet/server/streaming/server.go | 4 +- .../kubelet/server/streaming/server_test.go | 2 +- .../k8s.io/kubernetes/pkg/kubelet/stats/BUILD | 1 + .../pkg/kubelet/stats/cri_stats_provider.go | 13 +- .../kubelet/stats/cri_stats_provider_test.go | 4 +- .../kubernetes/pkg/kubelet/status/BUILD | 2 +- .../pkg/kubelet/status/status_manager.go | 43 +- .../pkg/kubelet/status/status_manager_test.go | 2 +- .../kubernetes/pkg/kubelet/sysctl/BUILD | 4 +- .../kubernetes/pkg/kubelet/sysctl/runtime.go | 2 +- .../pkg/kubelet/sysctl/whitelist.go | 4 +- .../k8s.io/kubernetes/pkg/kubelet/types/BUILD | 2 +- .../pkg/kubelet/types/pod_update.go | 2 +- .../k8s.io/kubernetes/pkg/kubelet/util/BUILD | 9 +- .../kubernetes/pkg/kubelet/util/store/BUILD | 42 + .../util/store}/doc.go | 3 +- .../pkg/kubelet/util/store/filestore.go | 167 + .../store/filestore_test.go} | 90 +- .../pkg/kubelet/util/store/store.go | 64 + .../kubelet/util/store/store_test.go} | 58 +- .../kubernetes/pkg/kubelet/util/util_unix.go | 2 +- .../pkg/kubelet/util/util_unsupported.go | 2 +- .../kubernetes/pkg/kubelet/volume_host.go | 77 +- .../pkg/kubelet/volumemanager/OWNERS | 2 + .../desired_state_of_world_populator.go | 4 +- .../volumemanager/reconciler/reconciler.go | 2 +- .../volumemanager/volume_manager_test.go | 4 +- vendor/k8s.io/kubernetes/pkg/kubemark/BUILD | 4 +- .../kubernetes/pkg/kubemark/hollow_kubelet.go | 31 +- .../kubernetes/pkg/kubemark/hollow_proxy.go | 2 +- vendor/k8s.io/kubernetes/pkg/master/BUILD | 8 +- .../kubernetes/pkg/master/client_ca_hook.go | 2 +- .../pkg/master/client_ca_hook_test.go | 2 +- .../kubernetes/pkg/master/controller.go | 15 +- .../kubernetes/pkg/master/controller_test.go | 2 +- .../pkg/master/import_known_versions.go | 7 +- .../pkg/master/import_known_versions_test.go | 11 +- vendor/k8s.io/kubernetes/pkg/master/master.go | 15 +- .../pkg/master/master_openapi_test.go | 4 +- .../kubernetes/pkg/master/master_test.go | 17 +- .../kubernetes/pkg/master/reconcilers/BUILD | 6 +- .../pkg/master/reconcilers/lease.go | 57 +- .../pkg/master/reconcilers/lease_test.go | 104 +- .../pkg/master/reconcilers/mastercount.go | 47 +- .../kubernetes/pkg/master/reconcilers/none.go | 8 +- .../pkg/master/reconcilers/reconcilers.go | 4 +- vendor/k8s.io/kubernetes/pkg/printers/BUILD | 16 +- .../pkg/printers/customcolumn_test.go | 9 +- .../kubernetes/pkg/printers/humanreadable.go | 12 +- .../pkg/printers/humanreadable_test.go | 138 + .../pkg/printers/internalversion/BUILD | 17 +- .../pkg/printers/internalversion/describe.go | 292 +- .../printers/internalversion/describe_test.go | 430 +- .../pkg/printers/internalversion/printers.go | 90 +- .../printers/internalversion/printers_test.go | 220 +- .../sorted_resource_name_list_test.go | 3 +- vendor/k8s.io/kubernetes/pkg/proxy/BUILD | 2 + vendor/k8s.io/kubernetes/pkg/proxy/OWNERS | 1 + .../proxy/apis/kubeproxyconfig}/BUILD | 18 +- .../pkg/proxy/apis/kubeproxyconfig/OWNERS | 4 + .../pkg/proxy/apis/kubeproxyconfig/doc.go | 19 + .../proxy/apis/kubeproxyconfig/register.go | 51 + .../proxy/apis/kubeproxyconfig/scheme/BUILD | 30 + .../apis/kubeproxyconfig/scheme/scheme.go | 45 + .../pkg/proxy/apis/kubeproxyconfig/types.go | 254 + .../apis/kubeproxyconfig/v1alpha1}/BUILD | 19 +- .../apis/kubeproxyconfig/v1alpha1/defaults.go | 119 + .../apis/kubeproxyconfig/v1alpha1}/doc.go | 9 +- .../kubeproxyconfig/v1alpha1}/register.go | 13 +- .../apis/kubeproxyconfig/v1alpha1/types.go | 161 + .../v1alpha1/zz_generated.conversion.go | 224 + .../v1alpha1/zz_generated.deepcopy.go | 189 + .../v1alpha1/zz_generated.defaults.go | 37 + .../apis/kubeproxyconfig}/validation/BUILD | 33 +- .../kubeproxyconfig/validation}/validation.go | 92 +- .../validation/validation_test.go | 648 + .../kubeproxyconfig/zz_generated.deepcopy.go | 189 + .../k8s.io/kubernetes/pkg/proxy/config/BUILD | 4 +- .../kubernetes/pkg/proxy/config/api_test.go | 2 +- .../kubernetes/pkg/proxy/config/config.go | 2 +- .../pkg/proxy/config/config_test.go | 2 +- .../kubernetes/pkg/proxy/healthcheck/BUILD | 2 +- .../pkg/proxy/healthcheck/healthcheck.go | 2 +- .../kubernetes/pkg/proxy/iptables/BUILD | 9 +- .../kubernetes/pkg/proxy/iptables/proxier.go | 144 +- .../pkg/proxy/iptables/proxier_test.go | 33 +- vendor/k8s.io/kubernetes/pkg/proxy/ipvs/BUILD | 11 +- .../kubernetes/pkg/proxy/ipvs/README.md | 51 +- .../kubernetes/pkg/proxy/ipvs/netlink.go | 4 + .../pkg/proxy/ipvs/netlink_linux.go | 26 + .../pkg/proxy/ipvs/netlink_unsupported.go | 10 + .../kubernetes/pkg/proxy/ipvs/proxier.go | 98 +- .../kubernetes/pkg/proxy/ipvs/proxier_test.go | 82 +- .../kubernetes/pkg/proxy/ipvs/testing/BUILD | 7 +- .../kubernetes/pkg/proxy/ipvs/testing/fake.go | 12 +- .../k8s.io/kubernetes/pkg/proxy/metrics/BUILD | 23 + .../proxy/{iptables => metrics}/metrics.go | 8 +- .../kubernetes/pkg/proxy/userspace/BUILD | 6 +- .../pkg/proxy/userspace/loadbalancer.go | 5 +- .../kubernetes/pkg/proxy/userspace/proxier.go | 8 +- .../pkg/proxy/userspace/proxier_test.go | 2 +- .../pkg/proxy/userspace/proxysocket.go | 2 +- .../pkg/proxy/userspace/roundrobin.go | 2 +- .../pkg/proxy/userspace/roundrobin_test.go | 2 +- vendor/k8s.io/kubernetes/pkg/proxy/util/BUILD | 6 +- .../kubernetes/pkg/proxy/util/conntrack.go | 12 +- .../pkg/proxy/util/conntrack_test.go | 101 +- .../kubernetes/pkg/proxy/util/endpoints.go | 9 +- .../pkg/proxy/util/endpoints_test.go | 1 + .../k8s.io/kubernetes/pkg/proxy/util/utils.go | 4 +- .../kubernetes/pkg/proxy/util/utils_test.go | 2 +- .../kubernetes/pkg/proxy/winkernel/BUILD | 6 +- .../kubernetes/pkg/proxy/winkernel/OWNERS | 3 + .../kubernetes/pkg/proxy/winkernel/proxier.go | 119 +- .../pkg/proxy/winkernel/proxier_test.go | 6 +- .../kubernetes/pkg/proxy/winuserspace/BUILD | 6 +- .../pkg/proxy/winuserspace/loadbalancer.go | 5 +- .../pkg/proxy/winuserspace/proxier.go | 4 +- .../pkg/proxy/winuserspace/proxier_test.go | 2 +- .../pkg/proxy/winuserspace/proxysocket.go | 2 +- .../pkg/proxy/winuserspace/roundrobin.go | 2 +- .../pkg/proxy/winuserspace/roundrobin_test.go | 2 +- vendor/k8s.io/kubernetes/pkg/quota/BUILD | 5 +- .../kubernetes/pkg/quota/evaluator/core/BUILD | 22 +- .../pkg/quota/evaluator/core/configmap.go | 61 - .../core/persistent_volume_claims.go | 99 +- .../core/persistent_volume_claims_test.go | 184 +- .../pkg/quota/evaluator/core/pods.go | 111 +- .../pkg/quota/evaluator/core/pods_test.go | 23 +- .../pkg/quota/evaluator/core/registry.go | 45 +- .../evaluator/core/replication_controllers.go | 61 - .../quota/evaluator/core/resource_quotas.go | 61 - .../pkg/quota/evaluator/core/secrets.go | 61 - .../pkg/quota/evaluator/core/services.go | 77 +- .../pkg/quota/evaluator/core/services_test.go | 37 +- .../k8s.io/kubernetes/pkg/quota/generic/BUILD | 5 +- .../pkg/quota/generic/configuration.go | 44 + .../kubernetes/pkg/quota/generic/evaluator.go | 123 +- .../kubernetes/pkg/quota/generic/registry.go | 63 +- .../k8s.io/kubernetes/pkg/quota/install/BUILD | 4 +- .../kubernetes/pkg/quota/install/registry.go | 41 +- .../k8s.io/kubernetes/pkg/quota/interfaces.go | 47 +- .../k8s.io/kubernetes/pkg/quota/resources.go | 4 +- .../kubernetes/pkg/quota/resources_test.go | 2 +- vendor/k8s.io/kubernetes/pkg/registry/BUILD | 4 +- .../strategy.go | 90 - .../initializerconfiguration/BUILD | 2 +- .../initializerconfiguration/strategy.go | 4 +- .../BUILD | 6 +- .../mutatingwebhookconfiguration/doc.go | 17 + .../storage/BUILD | 4 +- .../storage/storage.go | 16 +- .../mutatingwebhookconfiguration/strategy.go | 90 + .../registry/admissionregistration/rest/BUILD | 5 +- .../rest/storage_apiserver.go | 17 +- .../validatingwebhookconfiguration/BUILD | 40 + .../validatingwebhookconfiguration/doc.go | 17 + .../storage}/BUILD | 15 +- .../storage/storage.go | 51 + .../strategy.go | 90 + .../registry/apps/controllerrevision/BUILD | 4 +- .../apps/controllerrevision/storage/BUILD | 2 +- .../storage/storage_test.go | 2 +- .../apps/controllerrevision/strategy.go | 4 +- .../apps/controllerrevision/strategy_test.go | 2 +- .../kubernetes/pkg/registry/apps/rest/BUILD | 2 +- .../pkg/registry/apps/rest/storage_apps.go | 26 +- .../pkg/registry/apps/statefulset/BUILD | 4 +- .../pkg/registry/apps/statefulset/registry.go | 12 +- .../registry/apps/statefulset/storage/BUILD | 10 +- .../apps/statefulset/storage/storage.go | 45 +- .../apps/statefulset/storage/storage_test.go | 32 +- .../pkg/registry/apps/statefulset/strategy.go | 4 +- .../apps/statefulset/strategy_test.go | 2 +- .../pkg/registry/authentication/rest/BUILD | 2 +- .../rest/storage_authentication.go | 4 +- .../registry/authentication/tokenreview/BUILD | 1 + .../authentication/tokenreview/storage.go | 3 +- .../localsubjectaccessreview/BUILD | 1 + .../localsubjectaccessreview/rest.go | 8 +- .../pkg/registry/authorization/rest/BUILD | 2 +- .../rest/storage_authorization.go | 4 +- .../selfsubjectaccessreview/BUILD | 1 + .../selfsubjectaccessreview/rest.go | 8 +- .../selfsubjectrulesreview/BUILD | 1 + .../selfsubjectrulesreview/rest.go | 3 +- .../authorization/subjectaccessreview/BUILD | 2 + .../authorization/subjectaccessreview/rest.go | 8 +- .../subjectaccessreview/rest_test.go | 71 +- .../autoscaling/horizontalpodautoscaler/BUILD | 2 +- .../horizontalpodautoscaler/storage/BUILD | 2 +- .../storage/storage.go | 4 +- .../storage/storage_test.go | 2 +- .../horizontalpodautoscaler/strategy.go | 4 +- .../pkg/registry/autoscaling/rest/BUILD | 2 +- .../autoscaling/rest/storage_autoscaling.go | 4 +- .../pkg/registry/batch/cronjob/BUILD | 4 +- .../pkg/registry/batch/cronjob/storage/BUILD | 2 +- .../registry/batch/cronjob/storage/storage.go | 4 +- .../batch/cronjob/storage/storage_test.go | 2 +- .../pkg/registry/batch/cronjob/strategy.go | 4 +- .../registry/batch/cronjob/strategy_test.go | 2 +- .../kubernetes/pkg/registry/batch/job/BUILD | 4 +- .../pkg/registry/batch/job/storage/BUILD | 2 +- .../pkg/registry/batch/job/storage/storage.go | 4 +- .../batch/job/storage/storage_test.go | 2 +- .../pkg/registry/batch/job/strategy.go | 4 +- .../pkg/registry/batch/job/strategy_test.go | 2 +- .../kubernetes/pkg/registry/batch/rest/BUILD | 2 +- .../pkg/registry/batch/rest/storage_batch.go | 4 +- .../registry/certificates/certificates/BUILD | 2 +- .../certificates/certificates/registry.go | 12 +- .../certificates/storage/storage.go | 8 +- .../certificates/certificates/strategy.go | 4 +- .../pkg/registry/certificates/rest/BUILD | 2 +- .../certificates/rest/storage_certificates.go | 4 +- .../pkg/registry/core/componentstatus/BUILD | 4 +- .../pkg/registry/core/componentstatus/rest.go | 2 +- .../core/componentstatus/rest_test.go | 2 +- .../pkg/registry/core/configmap/BUILD | 7 +- .../pkg/registry/core/configmap/registry.go | 14 +- .../pkg/registry/core/configmap/storage/BUILD | 4 +- .../core/configmap/storage/storage.go | 2 +- .../core/configmap/storage/storage_test.go | 2 +- .../pkg/registry/core/configmap/strategy.go | 7 +- .../registry/core/configmap/strategy_test.go | 2 +- .../pkg/registry/core/endpoint/BUILD | 5 +- .../pkg/registry/core/endpoint/registry.go | 8 +- .../pkg/registry/core/endpoint/storage/BUILD | 4 +- .../registry/core/endpoint/storage/storage.go | 2 +- .../core/endpoint/storage/storage_test.go | 2 +- .../pkg/registry/core/endpoint/strategy.go | 7 +- .../kubernetes/pkg/registry/core/event/BUILD | 8 +- .../pkg/registry/core/event/storage/BUILD | 4 +- .../registry/core/event/storage/storage.go | 2 +- .../core/event/storage/storage_test.go | 2 +- .../pkg/registry/core/event/strategy.go | 7 +- .../pkg/registry/core/event/strategy_test.go | 9 +- .../pkg/registry/core/limitrange/BUILD | 5 +- .../registry/core/limitrange/storage/BUILD | 4 +- .../core/limitrange/storage/storage.go | 2 +- .../core/limitrange/storage/storage_test.go | 2 +- .../pkg/registry/core/limitrange/strategy.go | 7 +- .../pkg/registry/core/namespace/BUILD | 8 +- .../pkg/registry/core/namespace/registry.go | 14 +- .../pkg/registry/core/namespace/storage/BUILD | 5 +- .../core/namespace/storage/storage.go | 18 +- .../core/namespace/storage/storage_test.go | 5 +- .../pkg/registry/core/namespace/strategy.go | 7 +- .../registry/core/namespace/strategy_test.go | 5 +- .../kubernetes/pkg/registry/core/node/BUILD | 8 +- .../pkg/registry/core/node/registry.go | 14 +- .../pkg/registry/core/node/rest/BUILD | 2 +- .../pkg/registry/core/node/rest/proxy.go | 2 +- .../pkg/registry/core/node/storage/BUILD | 6 +- .../pkg/registry/core/node/storage/storage.go | 10 +- .../core/node/storage/storage_test.go | 2 +- .../pkg/registry/core/node/strategy.go | 7 +- .../pkg/registry/core/node/strategy_test.go | 5 +- .../pkg/registry/core/persistentvolume/BUILD | 8 +- .../core/persistentvolume/storage/BUILD | 4 +- .../core/persistentvolume/storage/storage.go | 6 +- .../persistentvolume/storage/storage_test.go | 4 +- .../core/persistentvolume/strategy.go | 7 +- .../core/persistentvolume/strategy_test.go | 5 +- .../registry/core/persistentvolumeclaim/BUILD | 8 +- .../core/persistentvolumeclaim/storage/BUILD | 4 +- .../persistentvolumeclaim/storage/storage.go | 6 +- .../storage/storage_test.go | 4 +- .../core/persistentvolumeclaim/strategy.go | 7 +- .../persistentvolumeclaim/strategy_test.go | 5 +- .../kubernetes/pkg/registry/core/pod/BUILD | 10 +- .../pkg/registry/core/pod/rest/BUILD | 6 +- .../pkg/registry/core/pod/rest/log.go | 4 +- .../pkg/registry/core/pod/rest/log_test.go | 2 +- .../registry/core/pod/rest/subresources.go | 2 +- .../pkg/registry/core/pod/storage/BUILD | 7 +- .../pkg/registry/core/pod/storage/eviction.go | 11 +- .../pkg/registry/core/pod/storage/storage.go | 10 +- .../registry/core/pod/storage/storage_test.go | 48 +- .../pkg/registry/core/pod/strategy.go | 9 +- .../pkg/registry/core/pod/strategy_test.go | 5 +- .../pkg/registry/core/podtemplate/BUILD | 5 +- .../registry/core/podtemplate/storage/BUILD | 4 +- .../core/podtemplate/storage/storage.go | 2 +- .../core/podtemplate/storage/storage_test.go | 2 +- .../pkg/registry/core/podtemplate/strategy.go | 7 +- .../pkg/registry/core/rangeallocation/BUILD | 2 +- .../registry/core/rangeallocation/registry.go | 2 +- .../registry/core/replicationcontroller/BUILD | 10 +- .../core/replicationcontroller/registry.go | 14 +- .../core/replicationcontroller/storage/BUILD | 6 +- .../replicationcontroller/storage/storage.go | 22 +- .../storage/storage_test.go | 12 +- .../core/replicationcontroller/strategy.go | 9 +- .../replicationcontroller/strategy_test.go | 5 +- .../pkg/registry/core/resourcequota/BUILD | 7 +- .../registry/core/resourcequota/storage/BUILD | 4 +- .../core/resourcequota/storage/storage.go | 6 +- .../resourcequota/storage/storage_test.go | 6 +- .../registry/core/resourcequota/strategy.go | 7 +- .../core/resourcequota/strategy_test.go | 2 +- .../kubernetes/pkg/registry/core/rest/BUILD | 3 +- .../pkg/registry/core/rest/storage_core.go | 23 +- .../kubernetes/pkg/registry/core/secret/BUILD | 8 +- .../pkg/registry/core/secret/registry.go | 14 +- .../pkg/registry/core/secret/storage/BUILD | 4 +- .../registry/core/secret/storage/storage.go | 2 +- .../core/secret/storage/storage_test.go | 2 +- .../pkg/registry/core/secret/strategy.go | 7 +- .../pkg/registry/core/secret/strategy_test.go | 5 +- .../pkg/registry/core/service/BUILD | 11 +- .../core/service/allocator/storage/BUILD | 5 +- .../core/service/allocator/storage/storage.go | 11 +- .../service/allocator/storage/storage_test.go | 2 +- .../registry/core/service/ipallocator/BUILD | 4 +- .../core/service/ipallocator/allocator.go | 5 +- .../service/ipallocator/allocator_test.go | 2 +- .../core/service/ipallocator/controller/BUILD | 6 +- .../service/ipallocator/controller/repair.go | 4 +- .../ipallocator/controller/repair_test.go | 2 +- .../core/service/ipallocator/storage/BUILD | 2 +- .../ipallocator/storage/storage_test.go | 2 +- .../registry/core/service/portallocator/BUILD | 4 +- .../core/service/portallocator/allocator.go | 2 +- .../service/portallocator/allocator_test.go | 2 +- .../service/portallocator/controller/BUILD | 4 +- .../portallocator/controller/repair.go | 2 +- .../portallocator/controller/repair_test.go | 2 +- .../pkg/registry/core/service/proxy.go | 2 +- .../pkg/registry/core/service/registry.go | 14 +- .../pkg/registry/core/service/rest.go | 71 +- .../pkg/registry/core/service/rest_test.go | 158 +- .../pkg/registry/core/service/storage/BUILD | 4 +- .../registry/core/service/storage/storage.go | 6 +- .../core/service/storage/storage_test.go | 2 +- .../pkg/registry/core/service/strategy.go | 7 +- .../registry/core/service/strategy_test.go | 2 +- .../pkg/registry/core/serviceaccount/BUILD | 5 +- .../registry/core/serviceaccount/registry.go | 14 +- .../core/serviceaccount/storage/BUILD | 4 +- .../core/serviceaccount/storage/storage.go | 2 +- .../serviceaccount/storage/storage_test.go | 2 +- .../registry/core/serviceaccount/strategy.go | 7 +- .../extensions/controller/storage/BUILD | 10 +- .../extensions/controller/storage/storage.go | 28 +- .../controller/storage/storage_test.go | 24 +- .../pkg/registry/extensions/daemonset/BUILD | 5 +- .../extensions/daemonset/storage/BUILD | 2 +- .../extensions/daemonset/storage/storage.go | 4 +- .../daemonset/storage/storage_test.go | 2 +- .../registry/extensions/daemonset/strategy.go | 13 +- .../extensions/daemonset/strategy_test.go | 22 +- .../pkg/registry/extensions/deployment/BUILD | 5 +- .../extensions/deployment/registry.go | 12 +- .../extensions/deployment/storage/BUILD | 9 +- .../extensions/deployment/storage/storage.go | 49 +- .../deployment/storage/storage_test.go | 35 +- .../extensions/deployment/strategy.go | 15 +- .../extensions/deployment/strategy_test.go | 2 +- .../pkg/registry/extensions/ingress/BUILD | 4 +- .../registry/extensions/ingress/storage/BUILD | 2 +- .../extensions/ingress/storage/storage.go | 4 +- .../ingress/storage/storage_test.go | 2 +- .../registry/extensions/ingress/strategy.go | 4 +- .../extensions/ingress/strategy_test.go | 2 +- .../extensions/podsecuritypolicy/BUILD | 2 +- .../extensions/podsecuritypolicy/strategy.go | 4 +- .../pkg/registry/extensions/replicaset/BUILD | 5 +- .../extensions/replicaset/registry.go | 12 +- .../extensions/replicaset/storage/BUILD | 10 +- .../extensions/replicaset/storage/storage.go | 49 +- .../replicaset/storage/storage_test.go | 36 +- .../extensions/replicaset/strategy.go | 9 +- .../extensions/replicaset/strategy_test.go | 2 +- .../pkg/registry/extensions/rest/BUILD | 2 +- .../extensions/rest/storage_extensions.go | 4 +- .../registry/networking/networkpolicy/BUILD | 2 +- .../networking/networkpolicy/registry.go | 12 +- .../networking/networkpolicy/storage/BUILD | 2 +- .../networkpolicy/storage/storage_test.go | 2 +- .../networking/networkpolicy/strategy.go | 4 +- .../pkg/registry/networking/rest/BUILD | 2 +- .../networking/rest/storage_settings.go | 4 +- .../registry/policy/poddisruptionbudget/BUILD | 2 +- .../poddisruptionbudget/storage/storage.go | 4 +- .../storage/storage_test.go | 4 +- .../policy/poddisruptionbudget/strategy.go | 4 +- .../kubernetes/pkg/registry/policy/rest/BUILD | 2 +- .../registry/policy/rest/storage_policy.go | 4 +- .../k8s.io/kubernetes/pkg/registry/rbac/BUILD | 4 +- .../pkg/registry/rbac/clusterrole/BUILD | 2 +- .../rbac/clusterrole/policybased/BUILD | 2 +- .../rbac/clusterrole/policybased/storage.go | 46 +- .../pkg/registry/rbac/clusterrole/registry.go | 12 +- .../pkg/registry/rbac/clusterrole/strategy.go | 4 +- .../registry/rbac/clusterrolebinding/BUILD | 2 +- .../rbac/clusterrolebinding/policybased/BUILD | 2 +- .../clusterrolebinding/policybased/storage.go | 16 +- .../rbac/clusterrolebinding/registry.go | 12 +- .../rbac/clusterrolebinding/strategy.go | 4 +- .../pkg/registry/rbac/escalation_check.go | 4 +- .../pkg/registry/rbac/helpers_test.go | 4 +- .../pkg/registry/rbac/reconciliation/BUILD | 7 +- .../reconciliation/clusterrole_interfaces.go | 8 + .../rbac/reconciliation/reconcile_role.go | 74 +- .../reconciliation/reconcile_role_test.go | 103 +- .../reconcile_rolebindings_test.go | 2 +- .../rbac/reconciliation/role_interfaces.go | 9 +- .../reconciliation/rolebinding_interfaces.go | 2 +- .../reconciliation/zz_generated.deepcopy.go | 26 - .../kubernetes/pkg/registry/rbac/rest/BUILD | 3 +- .../pkg/registry/rbac/rest/storage_rbac.go | 52 +- .../kubernetes/pkg/registry/rbac/role/BUILD | 2 +- .../pkg/registry/rbac/role/policybased/BUILD | 2 +- .../registry/rbac/role/policybased/storage.go | 14 +- .../pkg/registry/rbac/role/registry.go | 13 +- .../pkg/registry/rbac/role/strategy.go | 4 +- .../pkg/registry/rbac/rolebinding/BUILD | 2 +- .../rbac/rolebinding/policybased/BUILD | 2 +- .../rbac/rolebinding/policybased/storage.go | 16 +- .../pkg/registry/rbac/rolebinding/registry.go | 12 +- .../pkg/registry/rbac/rolebinding/strategy.go | 4 +- .../rbac/validation/policy_comparator.go | 27 +- .../rbac/validation/policy_comparator_test.go | 14 + .../pkg/registry/registrytest/BUILD | 3 +- .../pkg/registry/registrytest/endpoint.go | 5 +- .../pkg/registry/registrytest/etcd.go | 13 +- .../pkg/registry/registrytest/node.go | 2 +- .../pkg/registry/registrytest/service.go | 7 +- .../registry/scheduling/priorityclass/BUILD | 2 +- .../scheduling/priorityclass/registry.go | 12 +- .../scheduling/priorityclass/strategy.go | 4 +- .../pkg/registry/scheduling/rest/BUILD | 2 +- .../scheduling/rest/storage_scheduling.go | 4 +- .../pkg/registry/settings/podpreset/BUILD | 2 +- .../registry/settings/podpreset/registry.go | 12 +- .../registry/settings/podpreset/storage/BUILD | 2 +- .../podpreset/storage/storage_test.go | 2 +- .../registry/settings/podpreset/strategy.go | 4 +- .../pkg/registry/settings/rest/BUILD | 2 +- .../settings/rest/storage_settings.go | 4 +- .../pkg/registry/storage/rest/BUILD | 4 +- .../registry/storage/rest/storage_storage.go | 23 +- .../pkg/registry/storage/storageclass/BUILD | 5 +- .../storage/storageclass/storage/BUILD | 2 +- .../storageclass/storage/storage_test.go | 2 +- .../registry/storage/storageclass/strategy.go | 9 +- .../storage/storageclass/strategy_test.go | 9 +- .../registry/storage/volumeattachment/BUILD | 49 + .../registry/storage/volumeattachment/doc.go | 19 + .../storage/volumeattachment/storage}/BUILD | 29 +- .../volumeattachment/storage/storage.go | 50 + .../volumeattachment/storage/storage_test.go | 190 + .../storage/volumeattachment/strategy.go | 73 + .../storage/volumeattachment/strategy_test.go | 77 + .../pkg/security/podsecuritypolicy/BUILD | 6 +- .../security/podsecuritypolicy/apparmor/BUILD | 4 +- .../podsecuritypolicy/apparmor/strategy.go | 2 +- .../apparmor/strategy_test.go | 2 +- .../podsecuritypolicy/capabilities/BUILD | 4 +- .../capabilities/mustrunas.go | 2 +- .../capabilities/mustrunas_test.go | 6 +- .../podsecuritypolicy/capabilities/types.go | 2 +- .../pkg/security/podsecuritypolicy/factory.go | 2 +- .../security/podsecuritypolicy/group/BUILD | 4 +- .../podsecuritypolicy/group/mustrunas.go | 2 +- .../podsecuritypolicy/group/mustrunas_test.go | 5 +- .../podsecuritypolicy/group/runasany.go | 2 +- .../security/podsecuritypolicy/group/types.go | 2 +- .../security/podsecuritypolicy/provider.go | 6 +- .../podsecuritypolicy/provider_test.go | 8 +- .../security/podsecuritypolicy/seccomp/BUILD | 4 +- .../podsecuritypolicy/seccomp/strategy.go | 2 +- .../seccomp/strategy_test.go | 2 +- .../security/podsecuritypolicy/selinux/BUILD | 4 +- .../podsecuritypolicy/selinux/mustrunas.go | 2 +- .../selinux/mustrunas_test.go | 5 +- .../podsecuritypolicy/selinux/runasany.go | 2 +- .../selinux/runasany_test.go | 5 +- .../podsecuritypolicy/selinux/types.go | 2 +- .../security/podsecuritypolicy/sysctl/BUILD | 8 +- .../sysctl/mustmatchpatterns.go | 4 +- .../sysctl/mustmatchpatterns_test.go | 5 +- .../podsecuritypolicy/sysctl/types.go | 2 +- .../pkg/security/podsecuritypolicy/types.go | 2 +- .../pkg/security/podsecuritypolicy/user/BUILD | 4 +- .../podsecuritypolicy/user/mustrunas.go | 2 +- .../podsecuritypolicy/user/mustrunas_test.go | 5 +- .../podsecuritypolicy/user/nonroot.go | 2 +- .../podsecuritypolicy/user/nonroot_test.go | 5 +- .../podsecuritypolicy/user/runasany.go | 2 +- .../security/podsecuritypolicy/user/types.go | 2 +- .../pkg/security/podsecuritypolicy/util/BUILD | 4 +- .../security/podsecuritypolicy/util/util.go | 2 +- .../podsecuritypolicy/util/util_test.go | 5 +- .../kubernetes/pkg/securitycontext/BUILD | 4 +- .../pkg/securitycontext/accessors.go | 2 +- .../pkg/securitycontext/accessors_test.go | 2 +- .../kubernetes/pkg/securitycontext/fake.go | 2 +- .../kubernetes/pkg/securitycontext/util.go | 2 +- .../kubernetes/pkg/serviceaccount/BUILD | 2 +- .../kubernetes/pkg/serviceaccount/util.go | 2 +- .../kubernetes/pkg/util/bandwidth/BUILD | 2 +- .../pkg/util/bandwidth/utils_test.go | 2 +- .../kubernetes/pkg/util/dbus/fake_dbus.go | 6 + vendor/k8s.io/kubernetes/pkg/util/file/BUILD | 12 + .../kubernetes/pkg/util/file/file_test.go | 149 + .../pkg/util/initsystem/initsystem.go | 57 +- .../kubernetes/pkg/util/iptables/iptables.go | 24 +- .../pkg/util/iptables/iptables_test.go | 26 +- .../pkg/util/iptables/testing/fake.go | 3 +- .../pkg/util/keymutex/keymutex_test.go | 18 - .../kubernetes/pkg/util/metrics/util.go | 44 +- .../kubernetes/pkg/util/metrics/util_test.go | 29 + vendor/k8s.io/kubernetes/pkg/util/mount/BUILD | 3 + .../kubernetes/pkg/util/mount/exec_mount.go | 140 + .../pkg/util/mount/exec_mount_test.go | 153 + .../pkg/util/mount/exec_mount_unsupported.go | 87 + .../k8s.io/kubernetes/pkg/util/mount/fake.go | 6 + .../k8s.io/kubernetes/pkg/util/mount/mount.go | 68 - .../kubernetes/pkg/util/mount/mount_linux.go | 65 + .../pkg/util/mount/mount_unsupported.go | 12 +- .../pkg/util/mount/mount_windows.go | 87 +- .../pkg/util/mount/mount_windows_test.go | 75 +- .../util/mount/safe_format_and_mount_test.go | 9 +- vendor/k8s.io/kubernetes/pkg/util/netsh/BUILD | 14 + .../k8s.io/kubernetes/pkg/util/netsh/netsh.go | 14 +- .../kubernetes/pkg/util/netsh/netsh_test.go | 467 + vendor/k8s.io/kubernetes/pkg/util/node/BUILD | 2 +- .../k8s.io/kubernetes/pkg/util/node/node.go | 4 +- .../util/reflector/prometheus/prometheus.go | 15 +- .../k8s.io/kubernetes/pkg/util/taints/BUILD | 6 +- .../kubernetes/pkg/util/taints/taints.go | 27 +- .../kubernetes/pkg/util/taints/taints_test.go | 576 +- .../kubernetes/pkg/util/tolerations/BUILD | 4 +- .../pkg/util/tolerations/tolerations.go | 2 +- .../pkg/util/tolerations/tolerations_test.go | 3 +- vendor/k8s.io/kubernetes/pkg/version/base.go | 8 +- vendor/k8s.io/kubernetes/pkg/volume/BUILD | 2 +- vendor/k8s.io/kubernetes/pkg/volume/OWNERS | 8 +- .../kubernetes/pkg/volume/aws_ebs/attacher.go | 4 +- .../pkg/volume/aws_ebs/aws_ebs_test.go | 15 +- .../kubernetes/pkg/volume/azure_dd/BUILD | 2 +- .../kubernetes/pkg/volume/azure_dd/OWNERS | 5 - .../pkg/volume/azure_dd/azure_common.go | 5 +- .../pkg/volume/azure_dd/azure_common_linux.go | 18 +- .../pkg/volume/azure_dd/azure_mounter.go | 16 +- .../kubernetes/pkg/volume/azure_file/OWNERS | 5 - .../pkg/volume/azure_file/azure_file_test.go | 13 +- .../kubernetes/pkg/volume/cephfs/OWNERS | 6 - .../pkg/volume/cephfs/cephfs_test.go | 2 +- .../kubernetes/pkg/volume/cinder/OWNERS | 6 - .../kubernetes/pkg/volume/cinder/attacher.go | 4 +- .../pkg/volume/cinder/cinder_test.go | 2 +- .../pkg/volume/cinder/cinder_util.go | 2 +- .../kubernetes/pkg/volume/configmap/OWNERS | 6 - .../pkg/volume/configmap/configmap_test.go | 2 +- .../kubernetes/pkg/volume/downwardapi/OWNERS | 6 - .../volume/downwardapi/downwardapi_test.go | 2 +- .../kubernetes/pkg/volume/empty_dir/BUILD | 2 +- .../kubernetes/pkg/volume/empty_dir/OWNERS | 6 - .../pkg/volume/empty_dir/empty_dir.go | 6 +- .../pkg/volume/empty_dir/empty_dir_test.go | 4 +- vendor/k8s.io/kubernetes/pkg/volume/fc/OWNERS | 6 - .../kubernetes/pkg/volume/fc/attacher.go | 2 +- .../kubernetes/pkg/volume/fc/fc_test.go | 13 +- .../kubernetes/pkg/volume/flexvolume/OWNERS | 6 - .../volume/flexvolume/detacher-defaults.go | 4 +- .../pkg/volume/flexvolume/detacher.go | 6 +- .../pkg/volume/flexvolume/flexvolume_test.go | 11 +- .../kubernetes/pkg/volume/flocker/OWNERS | 6 - .../kubernetes/pkg/volume/gce_pd/OWNERS | 8 +- .../kubernetes/pkg/volume/gce_pd/attacher.go | 4 +- .../pkg/volume/gce_pd/gce_pd_test.go | 13 +- .../kubernetes/pkg/volume/git_repo/OWNERS | 6 - .../pkg/volume/git_repo/git_repo_test.go | 2 +- .../kubernetes/pkg/volume/glusterfs/BUILD | 2 +- .../kubernetes/pkg/volume/glusterfs/OWNERS | 6 - .../pkg/volume/glusterfs/glusterfs.go | 14 +- .../pkg/volume/glusterfs/glusterfs_test.go | 13 +- .../kubernetes/pkg/volume/host_path/OWNERS | 6 - .../k8s.io/kubernetes/pkg/volume/iscsi/OWNERS | 6 - .../kubernetes/pkg/volume/iscsi/attacher.go | 2 +- .../kubernetes/pkg/volume/iscsi/iscsi_test.go | 13 +- .../k8s.io/kubernetes/pkg/volume/local/OWNERS | 6 - .../kubernetes/pkg/volume/local/local_test.go | 17 +- .../k8s.io/kubernetes/pkg/volume/nfs/OWNERS | 6 - .../kubernetes/pkg/volume/nfs/nfs_test.go | 22 +- .../pkg/volume/photon_pd/attacher.go | 4 +- .../pkg/volume/photon_pd/photon_pd_test.go | 15 +- .../k8s.io/kubernetes/pkg/volume/plugins.go | 2 +- .../kubernetes/pkg/volume/portworx/BUILD | 2 +- .../pkg/volume/portworx/portworx_test.go | 15 +- .../pkg/volume/portworx/portworx_util.go | 2 +- .../pkg/volume/projected/projected_test.go | 2 +- .../kubernetes/pkg/volume/quobyte/OWNERS | 6 - .../pkg/volume/quobyte/quobyte_test.go | 11 +- vendor/k8s.io/kubernetes/pkg/volume/rbd/BUILD | 4 +- .../k8s.io/kubernetes/pkg/volume/rbd/OWNERS | 6 - .../kubernetes/pkg/volume/rbd/attacher.go | 225 + .../kubernetes/pkg/volume/rbd/disk_manager.go | 53 +- .../k8s.io/kubernetes/pkg/volume/rbd/rbd.go | 342 +- .../kubernetes/pkg/volume/rbd/rbd_test.go | 367 +- .../kubernetes/pkg/volume/rbd/rbd_util.go | 270 +- .../kubernetes/pkg/volume/scaleio/BUILD | 1 + .../pkg/volume/scaleio/sio_client.go | 40 +- .../pkg/volume/scaleio/sio_mgr_test.go | 2 +- .../pkg/volume/scaleio/sio_plugin.go | 87 +- .../kubernetes/pkg/volume/scaleio/sio_util.go | 125 +- .../pkg/volume/scaleio/sio_util_test.go | 20 +- .../pkg/volume/scaleio/sio_volume.go | 79 +- .../pkg/volume/scaleio/sio_volume_test.go | 126 +- .../kubernetes/pkg/volume/secret/OWNERS | 6 - .../pkg/volume/secret/secret_test.go | 2 +- .../pkg/volume/storageos/storageos_test.go | 13 +- .../kubernetes/pkg/volume/testing/OWNERS | 6 - .../kubernetes/pkg/volume/testing/testing.go | 15 +- vendor/k8s.io/kubernetes/pkg/volume/util.go | 64 +- .../k8s.io/kubernetes/pkg/volume/util/BUILD | 8 +- .../k8s.io/kubernetes/pkg/volume/util/OWNERS | 4 - .../kubernetes/pkg/volume/util/metrics.go | 5 +- .../operationexecutor/operation_generator.go | 4 +- .../k8s.io/kubernetes/pkg/volume/util/util.go | 10 +- .../kubernetes/pkg/volume/util/util_test.go | 4 +- .../k8s.io/kubernetes/pkg/volume/util_test.go | 33 +- .../kubernetes/pkg/volume/validation/BUILD | 4 +- .../pkg/volume/validation/pv_validation.go | 2 +- .../volume/validation/pv_validation_test.go | 2 +- vendor/k8s.io/kubernetes/pkg/volume/volume.go | 6 +- .../pkg/volume/vsphere_volume/OWNERS | 5 - .../pkg/volume/vsphere_volume/attacher.go | 4 +- .../vsphere_volume/vsphere_volume_test.go | 2 +- .../vsphere_volume/vsphere_volume_util.go | 2 +- vendor/k8s.io/kubernetes/plugin/BUILD | 1 - .../plugin/cmd/kube-scheduler/BUILD | 5 +- .../plugin/cmd/kube-scheduler/app/BUILD | 32 +- .../cmd/kube-scheduler/app/configurator.go | 193 - .../cmd/kube-scheduler/app/options/BUILD | 51 - .../cmd/kube-scheduler/app/options/options.go | 96 - .../app/options/options_test.go | 103 - .../plugin/cmd/kube-scheduler/app/server.go | 691 +- .../plugin/cmd/kube-scheduler/scheduler.go | 32 +- .../kubernetes/plugin/pkg/admission/OWNERS | 2 + .../plugin/pkg/admission/admit/BUILD | 2 +- .../plugin/pkg/admission/admit/admission.go | 23 +- .../pkg/admission/admit/admission_test.go | 2 +- .../pkg/admission/alwayspullimages/BUILD | 5 +- .../admission/alwayspullimages/admission.go | 61 +- .../alwayspullimages/admission_test.go | 36 +- .../plugin/pkg/admission/antiaffinity/BUILD | 4 +- .../pkg/admission/antiaffinity/admission.go | 16 +- .../admission/antiaffinity/admission_test.go | 8 +- .../admission/defaulttolerationseconds/BUILD | 8 +- .../defaulttolerationseconds/admission.go | 17 +- .../admission_test.go | 4 +- .../plugin/pkg/admission/deny/BUILD | 2 +- .../plugin/pkg/admission/deny/admission.go | 23 +- .../pkg/admission/deny/admission_test.go | 2 +- .../plugin/pkg/admission/eventratelimit/BUILD | 4 +- .../pkg/admission/eventratelimit/admission.go | 16 +- .../eventratelimit/admission_test.go | 4 +- .../eventratelimit/apis/eventratelimit/BUILD | 1 - .../eventratelimit/apis/eventratelimit/doc.go | 2 +- .../apis/eventratelimit/v1alpha1/doc.go | 2 +- .../v1alpha1/zz_generated.deepcopy.go | 23 - .../eventratelimit/zz_generated.deepcopy.go | 23 - .../admission/eventratelimit/limitenforcer.go | 2 +- .../plugin/pkg/admission/exec/BUILD | 4 +- .../plugin/pkg/admission/exec/admission.go | 27 +- .../pkg/admission/exec/admission_test.go | 24 +- .../kubernetes/plugin/pkg/admission/gc/BUILD | 3 +- .../plugin/pkg/admission/gc/gc_admission.go | 14 +- .../pkg/admission/gc/gc_admission_test.go | 36 +- .../plugin/pkg/admission/imagepolicy/BUILD | 5 +- .../pkg/admission/imagepolicy/admission.go | 38 +- .../admission/imagepolicy/admission_test.go | 23 +- .../pkg/admission/imagepolicy/config.go | 2 +- .../pkg/admission/imagepolicy/config_test.go | 28 + .../pkg/admission/initialresources/BUILD | 4 +- .../admission/initialresources/admission.go | 21 +- .../initialresources/admission_test.go | 8 +- .../admission/initialresources/data_source.go | 3 +- .../pkg/admission/initialresources/gcm.go | 3 +- .../admission/initialresources/gcm_test.go | 2 +- .../admission/initialresources/hawkular.go | 2 +- .../initialresources/hawkular_test.go | 3 +- .../admission/initialresources/influxdb.go | 2 +- .../initialresources/influxdb_test.go | 2 +- .../plugin/pkg/admission/limitranger/BUILD | 4 +- .../pkg/admission/limitranger/admission.go | 110 +- .../admission/limitranger/admission_test.go | 54 +- .../pkg/admission/limitranger/interfaces.go | 8 +- .../admission/namespace/autoprovision/BUILD | 4 +- .../namespace/autoprovision/admission.go | 27 +- .../namespace/autoprovision/admission_test.go | 16 +- .../pkg/admission/namespace/exists/BUILD | 4 +- .../admission/namespace/exists/admission.go | 27 +- .../namespace/exists/admission_test.go | 12 +- .../pkg/admission/noderestriction/BUILD | 4 +- .../admission/noderestriction/admission.go | 4 +- .../noderestriction/admission_test.go | 2 +- .../admission/persistentvolume/label/BUILD | 4 +- .../persistentvolume/label/admission.go | 3 +- .../persistentvolume/label/admission_test.go | 4 +- .../admission/persistentvolume/resize/BUILD | 6 +- .../persistentvolume/resize/admission.go | 11 +- .../persistentvolume/resize/admission_test.go | 6 +- .../pkg/admission/podnodeselector/BUILD | 4 +- .../admission/podnodeselector/admission.go | 114 +- .../podnodeselector/admission_test.go | 18 +- .../plugin/pkg/admission/podpreset/BUILD | 5 +- .../pkg/admission/podpreset/admission.go | 8 +- .../pkg/admission/podpreset/admission_test.go | 4 +- .../admission/podtolerationrestriction/BUILD | 8 +- .../podtolerationrestriction/admission.go | 165 +- .../admission_test.go | 37 +- .../apis/podtolerationrestriction/BUILD | 3 +- .../apis/podtolerationrestriction/doc.go | 2 +- .../apis/podtolerationrestriction/types.go | 2 +- .../podtolerationrestriction/v1alpha1/BUILD | 2 +- .../podtolerationrestriction/v1alpha1/doc.go | 2 +- .../v1alpha1/zz_generated.conversion.go | 6 +- .../v1alpha1/zz_generated.deepcopy.go | 19 - .../podtolerationrestriction/validation/BUILD | 4 +- .../validation/validation.go | 2 +- .../validation/validation_test.go | 5 +- .../zz_generated.deepcopy.go | 25 +- .../plugin/pkg/admission/priority/BUILD | 4 +- .../pkg/admission/priority/admission.go | 66 +- .../pkg/admission/priority/admission_test.go | 22 +- .../plugin/pkg/admission/resourcequota/BUILD | 8 +- .../pkg/admission/resourcequota/admission.go | 53 +- .../admission/resourcequota/admission_test.go | 170 +- .../resourcequota/apis/resourcequota/BUILD | 1 - .../resourcequota/apis/resourcequota/doc.go | 2 +- .../apis/resourcequota/v1alpha1/doc.go | 2 +- .../v1alpha1/zz_generated.deepcopy.go | 23 - .../resourcequota/zz_generated.deepcopy.go | 23 - .../pkg/admission/resourcequota/controller.go | 36 +- .../resourcequota/resource_access.go | 2 +- .../security/podsecuritypolicy/BUILD | 7 +- .../security/podsecuritypolicy/admission.go | 152 +- .../podsecuritypolicy/admission_test.go | 1103 +- .../admission/securitycontext/scdeny/BUILD | 4 +- .../securitycontext/scdeny/admission.go | 15 +- .../securitycontext/scdeny/admission_test.go | 8 +- .../plugin/pkg/admission/serviceaccount/BUILD | 4 +- .../pkg/admission/serviceaccount/admission.go | 101 +- .../serviceaccount/admission_test.go | 13 +- .../admission/storageclass/setdefault/BUILD | 6 +- .../storageclass/setdefault/admission.go | 9 +- .../storageclass/setdefault/admission_test.go | 2 +- .../pkg/admission/webhook/certs_test.go | 215 - .../auth/authenticator/token/bootstrap/BUILD | 4 +- .../token/bootstrap/bootstrap.go | 2 +- .../token/bootstrap/bootstrap_test.go | 2 +- .../plugin/pkg/auth/authorizer/node/BUILD | 4 +- .../plugin/pkg/auth/authorizer/node/graph.go | 2 +- .../auth/authorizer/node/graph_populator.go | 2 +- .../auth/authorizer/node/node_authorizer.go | 29 +- .../authorizer/node/node_authorizer_test.go | 62 +- .../authorizer/rbac/bootstrappolicy/BUILD | 5 +- .../rbac/bootstrappolicy/controller_policy.go | 25 +- .../bootstrappolicy/controller_policy_test.go | 1 + .../authorizer/rbac/bootstrappolicy/policy.go | 56 +- .../rbac/bootstrappolicy/policy_test.go | 20 +- .../testdata/cluster-roles.yaml | 288 +- .../testdata/controller-role-bindings.yaml | 17 + .../testdata/controller-roles.yaml | 46 +- .../plugin/pkg/auth/authorizer/rbac/rbac.go | 12 +- .../pkg/auth/authorizer/rbac/rbac_test.go | 12 +- .../kubernetes/plugin/pkg/scheduler/BUILD | 3 +- .../pkg/scheduler/algorithm/predicates/BUILD | 7 +- .../algorithm/predicates/metadata.go | 4 +- .../algorithm/predicates/metadata_test.go | 2 +- .../algorithm/predicates/predicates.go | 126 +- .../algorithm/predicates/predicates_test.go | 175 +- .../scheduler/algorithm/predicates/utils.go | 69 + .../algorithm/predicates/utils_test.go | 193 + .../pkg/scheduler/algorithm/priorities/BUILD | 2 +- .../algorithm/priorities/image_locality.go | 42 +- .../algorithm/priorities/interpod_affinity.go | 4 +- .../priorities/interpod_affinity_test.go | 2 +- .../algorithm/priorities/metadata_test.go | 27 + .../algorithm/priorities/node_affinity.go | 2 +- .../priorities/node_prefer_avoid_pods.go | 2 +- .../priorities/selector_spreading.go | 5 +- .../priorities/selector_spreading_test.go | 17 + .../algorithm/priorities/taint_toleration.go | 2 +- .../algorithmprovider/defaults/BUILD | 5 +- .../defaults/compatibility_test.go | 7 +- .../algorithmprovider/defaults/defaults.go | 56 +- .../defaults/defaults_test.go | 41 - .../kubernetes/plugin/pkg/scheduler/api/BUILD | 1 - .../plugin/pkg/scheduler/api/doc.go | 2 +- .../plugin/pkg/scheduler/api/latest/latest.go | 6 +- .../plugin/pkg/scheduler/api/types.go | 16 +- .../plugin/pkg/scheduler/api/v1/BUILD | 1 - .../plugin/pkg/scheduler/api/v1/doc.go | 2 +- .../plugin/pkg/scheduler/api/v1/register.go | 4 +- .../plugin/pkg/scheduler/api/v1/types.go | 14 +- .../scheduler/api/v1/zz_generated.deepcopy.go | 75 - .../scheduler/api/validation/validation.go | 2 +- .../api/validation/validation_test.go | 12 +- .../scheduler/api/zz_generated.deepcopy.go | 75 - .../plugin/pkg/scheduler/core/BUILD | 2 + .../pkg/scheduler/core/generic_scheduler.go | 1 - .../pkg/scheduler/core/scheduling_queue.go | 61 + .../plugin/pkg/scheduler/factory/BUILD | 9 +- .../plugin/pkg/scheduler/factory/factory.go | 163 +- .../pkg/scheduler/factory/factory_test.go | 210 +- .../plugin/pkg/scheduler/factory/plugins.go | 52 +- .../plugin/pkg/scheduler/scheduler.go | 20 +- .../plugin/pkg/scheduler/scheduler_test.go | 12 +- .../plugin/pkg/scheduler/schedulercache/BUILD | 7 +- .../pkg/scheduler/schedulercache/cache.go | 70 + .../scheduler/schedulercache/cache_test.go | 256 +- .../pkg/scheduler/schedulercache/interface.go | 20 + .../pkg/scheduler/schedulercache/node_info.go | 36 +- .../plugin/pkg/scheduler/testing/BUILD | 1 + .../pkg/scheduler/testing/fake_cache.go | 25 +- .../plugin/pkg/scheduler/testutil.go | 6 +- .../plugin/pkg/scheduler/util/BUILD | 5 +- .../plugin/pkg/scheduler/util/testutil.go | 21 +- .../plugin/pkg/scheduler/util/utils.go | 22 +- vendor/k8s.io/kubernetes/staging/BUILD | 6 + vendor/k8s.io/kubernetes/staging/README.md | 3 +- .../staging/src/k8s.io/api/Godeps/Godeps.json | 4 +- .../kubernetes/staging/src/k8s.io/api/LICENSE | 202 + .../staging/src/k8s.io/api/README.md | 1 + .../src/k8s.io/api/admission/v1alpha1/BUILD | 1 - .../src/k8s.io/api/admission/v1alpha1/doc.go | 2 +- .../k8s.io/api/admission/v1alpha1/register.go | 2 +- .../v1alpha1/zz_generated.deepcopy.go | 27 - .../api/admissionregistration/v1alpha1/BUILD | 1 - .../api/admissionregistration/v1alpha1/doc.go | 4 +- .../v1alpha1/generated.pb.go | 1487 +- .../v1alpha1/generated.proto | 241 +- .../v1alpha1/register.go | 6 +- .../admissionregistration/v1alpha1/types.go | 168 +- .../v1alpha1/types_swagger_doc_generated.go | 111 +- .../v1alpha1/zz_generated.deepcopy.go | 335 +- .../staging/src/k8s.io/api/apps/v1/BUILD | 1 - .../staging/src/k8s.io/api/apps/v1/doc.go | 2 +- .../src/k8s.io/api/apps/v1/generated.pb.go | 6165 ++- .../src/k8s.io/api/apps/v1/generated.proto | 523 +- .../src/k8s.io/api/apps/v1/register.go | 10 +- .../staging/src/k8s.io/api/apps/v1/types.go | 623 +- .../apps/v1/types_swagger_doc_generated.go | 267 +- .../api/apps/v1/zz_generated.deepcopy.go | 714 +- .../staging/src/k8s.io/api/apps/v1beta1/BUILD | 1 - .../src/k8s.io/api/apps/v1beta1/doc.go | 2 +- .../k8s.io/api/apps/v1beta1/generated.pb.go | 585 +- .../k8s.io/api/apps/v1beta1/generated.proto | 27 + .../src/k8s.io/api/apps/v1beta1/register.go | 2 +- .../src/k8s.io/api/apps/v1beta1/types.go | 25 + .../v1beta1/types_swagger_doc_generated.go | 14 + .../api/apps/v1beta1/zz_generated.deepcopy.go | 119 +- .../staging/src/k8s.io/api/apps/v1beta2/BUILD | 1 - .../src/k8s.io/api/apps/v1beta2/doc.go | 2 +- .../k8s.io/api/apps/v1beta2/generated.pb.go | 1124 +- .../k8s.io/api/apps/v1beta2/generated.proto | 54 + .../src/k8s.io/api/apps/v1beta2/register.go | 2 +- .../src/k8s.io/api/apps/v1beta2/types.go | 52 + .../v1beta2/types_swagger_doc_generated.go | 28 + .../api/apps/v1beta2/zz_generated.deepcopy.go | 179 +- .../src/k8s.io/api/authentication/v1/BUILD | 1 - .../src/k8s.io/api/authentication/v1/doc.go | 2 +- .../k8s.io/api/authentication/v1/register.go | 2 +- .../v1/zz_generated.deepcopy.go | 31 - .../k8s.io/api/authentication/v1beta1/BUILD | 1 - .../k8s.io/api/authentication/v1beta1/doc.go | 2 +- .../api/authentication/v1beta1/register.go | 2 +- .../v1beta1/zz_generated.deepcopy.go | 31 - .../src/k8s.io/api/authorization/v1/BUILD | 1 - .../src/k8s.io/api/authorization/v1/doc.go | 2 +- .../api/authorization/v1/generated.pb.go | 172 +- .../api/authorization/v1/generated.proto | 12 +- .../k8s.io/api/authorization/v1/register.go | 2 +- .../src/k8s.io/api/authorization/v1/types.go | 11 +- .../v1/types_swagger_doc_generated.go | 5 +- .../authorization/v1/zz_generated.deepcopy.go | 67 - .../k8s.io/api/authorization/v1beta1/BUILD | 1 - .../k8s.io/api/authorization/v1beta1/doc.go | 2 +- .../api/authorization/v1beta1/generated.pb.go | 177 +- .../api/authorization/v1beta1/generated.proto | 12 +- .../api/authorization/v1beta1/register.go | 2 +- .../k8s.io/api/authorization/v1beta1/types.go | 11 +- .../v1beta1/types_swagger_doc_generated.go | 5 +- .../v1beta1/zz_generated.deepcopy.go | 67 - .../src/k8s.io/api/autoscaling/v1/BUILD | 1 - .../src/k8s.io/api/autoscaling/v1/doc.go | 2 +- .../src/k8s.io/api/autoscaling/v1/register.go | 2 +- .../autoscaling/v1/zz_generated.deepcopy.go | 83 - .../src/k8s.io/api/autoscaling/v2beta1/BUILD | 1 - .../src/k8s.io/api/autoscaling/v2beta1/doc.go | 2 +- .../api/autoscaling/v2beta1/register.go | 2 +- .../v2beta1/zz_generated.deepcopy.go | 71 - .../staging/src/k8s.io/api/batch/v1/BUILD | 1 - .../staging/src/k8s.io/api/batch/v1/doc.go | 2 +- .../src/k8s.io/api/batch/v1/generated.proto | 2 +- .../src/k8s.io/api/batch/v1/register.go | 2 +- .../staging/src/k8s.io/api/batch/v1/types.go | 2 +- .../batch/v1/types_swagger_doc_generated.go | 2 +- .../api/batch/v1/zz_generated.deepcopy.go | 35 - .../src/k8s.io/api/batch/v1beta1/BUILD | 1 - .../src/k8s.io/api/batch/v1beta1/doc.go | 2 +- .../k8s.io/api/batch/v1beta1/generated.proto | 5 +- .../src/k8s.io/api/batch/v1beta1/register.go | 2 +- .../src/k8s.io/api/batch/v1beta1/types.go | 5 +- .../v1beta1/types_swagger_doc_generated.go | 2 +- .../batch/v1beta1/zz_generated.deepcopy.go | 39 - .../src/k8s.io/api/batch/v2alpha1/BUILD | 1 - .../src/k8s.io/api/batch/v2alpha1/doc.go | 2 +- .../k8s.io/api/batch/v2alpha1/generated.proto | 5 +- .../src/k8s.io/api/batch/v2alpha1/register.go | 2 +- .../src/k8s.io/api/batch/v2alpha1/types.go | 5 +- .../v2alpha1/types_swagger_doc_generated.go | 2 +- .../batch/v2alpha1/zz_generated.deepcopy.go | 39 - .../src/k8s.io/api/certificates/v1beta1/BUILD | 1 - .../k8s.io/api/certificates/v1beta1/doc.go | 2 +- .../api/certificates/v1beta1/register.go | 2 +- .../v1beta1/zz_generated.deepcopy.go | 35 - .../staging/src/k8s.io/api/core/v1/BUILD | 1 - .../api/core/v1/annotation_key_constants.go | 6 - .../staging/src/k8s.io/api/core/v1/doc.go | 2 +- .../src/k8s.io/api/core/v1/generated.pb.go | 2911 +- .../src/k8s.io/api/core/v1/generated.proto | 130 +- .../src/k8s.io/api/core/v1/register.go | 2 +- .../staging/src/k8s.io/api/core/v1/types.go | 120 +- .../core/v1/types_swagger_doc_generated.go | 60 +- .../api/core/v1/zz_generated.deepcopy.go | 786 +- .../src/k8s.io/api/extensions/v1beta1/BUILD | 1 - .../src/k8s.io/api/extensions/v1beta1/doc.go | 2 +- .../api/extensions/v1beta1/generated.pb.go | 2083 +- .../api/extensions/v1beta1/generated.proto | 89 +- .../k8s.io/api/extensions/v1beta1/register.go | 6 +- .../k8s.io/api/extensions/v1beta1/types.go | 105 +- .../v1beta1/types_swagger_doc_generated.go | 68 +- .../v1beta1/zz_generated.deepcopy.go | 431 +- .../src/k8s.io/api/imagepolicy/v1alpha1/BUILD | 1 - .../k8s.io/api/imagepolicy/v1alpha1/doc.go | 2 +- .../api/imagepolicy/v1alpha1/register.go | 2 +- .../v1alpha1/zz_generated.deepcopy.go | 31 - .../src/k8s.io/api/networking/v1/BUILD | 1 - .../src/k8s.io/api/networking/v1/doc.go | 2 +- .../src/k8s.io/api/networking/v1/register.go | 2 +- .../networking/v1/zz_generated.deepcopy.go | 47 - .../src/k8s.io/api/policy/v1beta1/BUILD | 1 - .../src/k8s.io/api/policy/v1beta1/doc.go | 2 +- .../src/k8s.io/api/policy/v1beta1/register.go | 2 +- .../policy/v1beta1/zz_generated.deepcopy.go | 35 - .../staging/src/k8s.io/api/rbac/v1/BUILD | 1 - .../staging/src/k8s.io/api/rbac/v1/doc.go | 2 +- .../src/k8s.io/api/rbac/v1/generated.pb.go | 348 +- .../src/k8s.io/api/rbac/v1/generated.proto | 15 + .../src/k8s.io/api/rbac/v1/register.go | 2 +- .../staging/src/k8s.io/api/rbac/v1/types.go | 14 + .../rbac/v1/types_swagger_doc_generated.go | 16 +- .../api/rbac/v1/zz_generated.deepcopy.go | 88 +- .../src/k8s.io/api/rbac/v1alpha1/BUILD | 1 - .../src/k8s.io/api/rbac/v1alpha1/doc.go | 2 +- .../k8s.io/api/rbac/v1alpha1/generated.pb.go | 350 +- .../k8s.io/api/rbac/v1alpha1/generated.proto | 14 + .../src/k8s.io/api/rbac/v1alpha1/register.go | 2 +- .../src/k8s.io/api/rbac/v1alpha1/types.go | 14 + .../v1alpha1/types_swagger_doc_generated.go | 16 +- .../rbac/v1alpha1/zz_generated.deepcopy.go | 88 +- .../staging/src/k8s.io/api/rbac/v1beta1/BUILD | 1 - .../src/k8s.io/api/rbac/v1beta1/doc.go | 2 +- .../k8s.io/api/rbac/v1beta1/generated.pb.go | 349 +- .../k8s.io/api/rbac/v1beta1/generated.proto | 18 +- .../src/k8s.io/api/rbac/v1beta1/register.go | 2 +- .../src/k8s.io/api/rbac/v1beta1/types.go | 16 +- .../v1beta1/types_swagger_doc_generated.go | 18 +- .../api/rbac/v1beta1/zz_generated.deepcopy.go | 88 +- .../src/k8s.io/api/scheduling/v1alpha1/BUILD | 1 - .../src/k8s.io/api/scheduling/v1alpha1/doc.go | 2 +- .../api/scheduling/v1alpha1/register.go | 2 +- .../v1alpha1/zz_generated.deepcopy.go | 23 - .../src/k8s.io/api/settings/v1alpha1/BUILD | 1 - .../src/k8s.io/api/settings/v1alpha1/doc.go | 2 +- .../k8s.io/api/settings/v1alpha1/register.go | 2 +- .../v1alpha1/zz_generated.deepcopy.go | 27 - .../staging/src/k8s.io/api/storage/v1/BUILD | 1 - .../staging/src/k8s.io/api/storage/v1/doc.go | 2 +- .../src/k8s.io/api/storage/v1/generated.pb.go | 120 +- .../src/k8s.io/api/storage/v1/generated.proto | 7 + .../src/k8s.io/api/storage/v1/register.go | 2 +- .../src/k8s.io/api/storage/v1/types.go | 22 + .../storage/v1/types_swagger_doc_generated.go | 1 + .../api/storage/v1/zz_generated.deepcopy.go | 32 +- .../src/k8s.io/api/storage/v1alpha1/BUILD | 42 + .../src/k8s.io/api/storage/v1alpha1/doc.go | 20 + .../api/storage/v1alpha1}/generated.pb.go | 1023 +- .../api/storage/v1alpha1/generated.proto | 128 + .../v1 => api/storage/v1alpha1}/register.go | 29 +- .../src/k8s.io/api/storage/v1alpha1/types.go | 126 + .../v1alpha1/types_swagger_doc_generated.go | 93 + .../storage/v1alpha1/zz_generated.deepcopy.go | 188 + .../src/k8s.io/api/storage/v1beta1/BUILD | 1 - .../src/k8s.io/api/storage/v1beta1/doc.go | 2 +- .../api/storage/v1beta1/generated.pb.go | 119 +- .../api/storage/v1beta1/generated.proto | 7 + .../k8s.io/api/storage/v1beta1/register.go | 2 +- .../src/k8s.io/api/storage/v1beta1/types.go | 22 + .../v1beta1/types_swagger_doc_generated.go | 1 + .../storage/v1beta1/zz_generated.deepcopy.go | 32 +- .../Godeps/Godeps.json | 94 +- .../k8s.io/apiextensions-apiserver/LICENSE | 202 + .../k8s.io/apiextensions-apiserver/README.md | 20 + .../examples/client-go/BUILD | 38 +- .../examples/client-go/README.md | 35 +- .../examples/client-go/apis/cr/v1/BUILD | 53 - .../client-go/apis/cr/v1/roundtrip_test.go | 66 - .../examples/client-go/client/BUILD | 40 - .../examples/client-go/client/client.go | 45 - .../examples/client-go/client/cr.go | 103 - .../client-go/controller/controller.go | 120 - .../examples/client-go/hack/update-codegen.sh | 34 + .../examples/client-go/hack/verify-codegen.sh | 48 + .../examples/client-go/main.go | 123 - .../examples/client-go/pkg/apis/cr/BUILD | 25 + .../client-go/pkg/apis/cr/register.go | 21 + .../examples/client-go/pkg/apis/cr}/v1/BUILD | 10 +- .../examples/client-go/pkg/apis/cr/v1/doc.go | 21 + .../client-go/pkg/apis/cr/v1/register.go | 51 + .../client-go/{ => pkg}/apis/cr/v1/types.go | 18 +- .../apis/cr/v1/zz_generated.deepcopy.go | 26 - .../pkg/client/clientset/versioned/BUILD | 37 + .../client/clientset/versioned/clientset.go | 98 + .../pkg/client/clientset/versioned}/doc.go | 2 +- .../pkg/client/clientset/versioned/fake/BUILD | 40 + .../versioned/fake/clientset_generated.go | 71 + .../client/clientset/versioned}/fake/doc.go | 0 .../clientset/versioned}/fake/register.go | 12 +- .../client/clientset/versioned}/scheme/BUILD | 17 +- .../client/clientset/versioned}/scheme/doc.go | 0 .../clientset/versioned}/scheme/register.go | 12 +- .../clientset/versioned/typed/cr}/v1/BUILD | 26 +- .../versioned/typed/cr/v1/cr_client.go} | 34 +- .../clientset/versioned/typed/cr}/v1/doc.go | 0 .../versioned/typed/cr/v1/example.go | 155 + .../versioned/typed/cr}/v1/fake/BUILD | 19 +- .../versioned/typed/cr}/v1/fake/doc.go | 0 .../typed/cr/v1/fake/fake_cr_client.go} | 10 +- .../typed/cr/v1/fake/fake_example.go | 126 + .../typed/cr}/v1/generated_expansion.go | 2 +- .../client/informers/externalversions/BUILD | 38 + .../informers/externalversions/cr/BUILD | 29 + .../externalversions/cr/interface.go | 44 + .../informers/externalversions/cr/v1/BUILD | 35 + .../externalversions/cr/v1/example.go | 73 + .../externalversions/cr/v1/interface.go | 43 + .../informers/externalversions/factory.go | 118 + .../informers/externalversions/generic.go | 61 + .../internalinterfaces}/BUILD | 18 +- .../internalinterfaces/factory_interfaces.go | 34 + .../client-go/pkg/client/listers/cr/v1/BUILD | 31 + .../pkg/client/listers/cr/v1/example.go | 94 + .../listers/cr/v1/expansion_generated.go | 27 + .../pkg/apis/apiextensions/BUILD | 1 - .../pkg/apis/apiextensions/doc.go | 2 +- .../pkg/apis/apiextensions/helpers.go | 7 + .../pkg/apis/apiextensions/register.go | 2 +- .../pkg/apis/apiextensions/v1beta1/doc.go | 2 +- .../apis/apiextensions/v1beta1/register.go | 2 +- .../v1beta1/zz_generated.deepcopy.go | 67 - .../apiextensions/zz_generated.deepcopy.go | 63 - .../pkg/apiserver/customresource_handler.go | 1 - .../client/informers/externalversions/BUILD | 1 + .../apiextensions/interface.go | 10 +- .../v1beta1/customresourcedefinition.go | 22 +- .../apiextensions/v1beta1/interface.go | 10 +- .../informers/externalversions/factory.go | 20 +- .../informers/externalversions/generic.go | 2 +- .../externalversions/internalinterfaces/BUILD | 1 + .../internalinterfaces/factory_interfaces.go | 3 + .../client/informers/internalversion/BUILD | 1 + .../apiextensions/interface.go | 10 +- .../customresourcedefinition.go | 22 +- .../internalversion/interface.go | 10 +- .../informers/internalversion/factory.go | 20 +- .../informers/internalversion/generic.go | 2 +- .../internalversion/internalinterfaces/BUILD | 1 + .../internalinterfaces/factory_interfaces.go | 3 + .../apiextensions/internalversion/BUILD | 1 - .../customresourcedefinition.go | 4 +- .../listers/apiextensions/v1beta1/BUILD | 1 - .../v1beta1/customresourcedefinition.go | 4 +- .../pkg/controller/status/BUILD | 1 - .../controller/status/naming_controller.go | 19 +- .../pkg/registry/customresource/strategy.go | 4 +- .../registry/customresourcedefinition/etcd.go | 4 +- .../test/integration/BUILD | 6 +- .../test/integration/basic_test.go | 64 + .../test/integration/client-go_test.go | 96 - .../test/integration/testserver/resources.go | 12 +- .../k8s.io/apimachinery/Godeps/Godeps.json | 6 +- .../staging/src/k8s.io/apimachinery/LICENSE | 202 + .../staging/src/k8s.io/apimachinery/README.md | 29 + .../apimachinery/pkg/api/errors/errors.go | 33 +- .../pkg/api/errors/errors_test.go | 4 +- .../apimachinery/pkg/api/meta/interfaces.go | 3 + .../k8s.io/apimachinery/pkg/api/meta/meta.go | 17 + .../apimachinery/pkg/api/resource/BUILD | 1 - .../pkg/api/resource/zz_generated.deepcopy.go | 17 - .../pkg/apimachinery/registered/registered.go | 2 +- .../apimachinery/pkg/apimachinery/types.go | 2 +- .../pkg/apis/meta/fuzzer/fuzzer.go | 127 + .../internalversion/zz_generated.deepcopy.go | 18 - .../apimachinery/pkg/apis/meta/v1/BUILD | 10 + .../pkg/apis/meta/v1/conversion.go | 1 - .../pkg/apis/meta/v1/conversion_test.go | 49 + .../pkg/apis/meta/v1/generated.proto | 23 +- .../apimachinery/pkg/apis/meta/v1/register.go | 2 - .../apimachinery/pkg/apis/meta/v1/time.go | 8 +- .../pkg/apis/meta/v1/time_test.go | 24 + .../apimachinery/pkg/apis/meta/v1/types.go | 23 +- .../meta/v1/types_swagger_doc_generated.go | 4 +- .../pkg/apis/meta/v1/unstructured/BUILD | 15 +- .../pkg/apis/meta/v1/unstructured/helpers.go | 470 + .../apis/meta/v1/unstructured/helpers_test.go | 60 + .../apis/meta/v1/unstructured/unstructured.go | 573 +- .../meta/v1/unstructured/unstructured_list.go | 165 + ...ured_test.go => unstructured_list_test.go} | 65 +- .../v1/unstructured/zz_generated.deepcopy.go | 18 - .../pkg/apis/meta/v1/zz_generated.deepcopy.go | 154 - .../meta/v1alpha1/zz_generated.deepcopy.go | 38 - .../apimachinery/pkg/apis/testapigroup/BUILD | 1 - .../apimachinery/pkg/apis/testapigroup/doc.go | 2 +- .../pkg/apis/testapigroup/register.go | 2 +- .../pkg/apis/testapigroup/v1/doc.go | 2 +- .../pkg/apis/testapigroup/v1/register.go | 2 +- .../testapigroup/v1/zz_generated.deepcopy.go | 35 - .../testapigroup/zz_generated.deepcopy.go | 35 - .../k8s.io/apimachinery/pkg/conversion/BUILD | 2 - .../apimachinery/pkg/conversion/cloner.go | 249 - .../pkg/conversion/deep_copy_test.go | 161 - .../pkg/conversion/unstructured/converter.go | 10 +- .../src/k8s.io/apimachinery/pkg/labels/BUILD | 1 - .../apimachinery/pkg/labels/selector.go | 2 +- .../pkg/labels/zz_generated.deepcopy.go | 17 - .../k8s.io/apimachinery/pkg/runtime/error.go | 4 +- .../k8s.io/apimachinery/pkg/runtime/scheme.go | 36 +- .../pkg/runtime/serializer/testing/BUILD | 1 - .../testing/zz_generated.deepcopy.go | 30 - .../apimachinery/pkg/runtime/testing/BUILD | 1 - .../runtime/testing/zz_generated.deepcopy.go | 94 - .../pkg/runtime/zz_generated.deepcopy.go | 25 - .../src/k8s.io/apimachinery/pkg/test/BUILD | 1 - ...pis_meta_v1_unstructed_unstructure_test.go | 15 +- .../pkg/test/zz_generated.deepcopy.go | 18 - .../pkg/util/httpstream/spdy/roundtripper.go | 2 +- .../pkg/util/mergepatch/errors.go | 1 + .../k8s.io/apimachinery/pkg/util/net/http.go | 12 +- .../apimachinery/pkg/util/net/http_test.go | 24 + .../apimachinery/pkg/util/proxy/transport.go | 32 +- .../pkg/util/proxy/transport_test.go | 15 + .../apimachinery/pkg/util/runtime/runtime.go | 4 +- .../pkg/util/strategicpatch/BUILD | 1 + .../pkg/util/strategicpatch/patch.go | 32 +- .../apimachinery/pkg/util/waitgroup/BUILD | 32 + .../apimachinery/pkg/util/waitgroup/doc.go | 19 + .../pkg/util/waitgroup/waitgroup.go | 57 + .../pkg/util/waitgroup/waitgroup_test.go | 60 + .../src/k8s.io/apimachinery/pkg/watch/BUILD | 1 - .../pkg/watch/zz_generated.deepcopy.go | 17 - .../src/k8s.io/apiserver/Godeps/Godeps.json | 72 +- .../staging/src/k8s.io/apiserver/LICENSE | 202 + .../staging/src/k8s.io/apiserver/README.md | 30 + .../src/k8s.io/apiserver/pkg/admission/BUILD | 17 + .../k8s.io/apiserver/pkg/admission/chain.go | 67 +- .../apiserver/pkg/admission/chain_test.go | 156 +- .../pkg/admission/configuration/BUILD | 6 +- .../configuration/configuration_manager.go | 1 + .../configuration_manager_test.go | 1 + .../external_admission_hook_manager.go | 83 - .../configuration/mutating_webhook_manager.go | 101 + .../mutating_webhook_manager_test.go | 40 + .../validating_webhook_manager.go | 84 + ....go => validating_webhook_manager_test.go} | 10 +- .../k8s.io/apiserver/pkg/admission/handler.go | 8 +- .../apiserver/pkg/admission/handler_test.go | 57 + .../pkg/admission/initializer/initializer.go | 26 +- .../admission/initializer/initializer_test.go | 48 +- .../pkg/admission/initializer/interfaces.go | 15 +- .../apiserver/pkg/admission/interfaces.go | 26 +- .../k8s.io/apiserver/pkg/admission/metrics.go | 151 + .../apiserver/pkg/admission/metrics_test.go | 84 + .../plugin/initialization/initialization.go | 13 +- .../initialization/initialization_test.go | 6 +- .../plugin/namespace/lifecycle/admission.go | 29 +- .../namespace/lifecycle/admission_test.go | 11 +- .../pkg/admission/plugin/webhook/config/BUILD | 54 + .../plugin/webhook/config/authentication.go | 156 + .../webhook/config/authentication_test.go | 130 + .../admission/plugin/webhook/config/client.go | 175 + .../plugin/webhook/config/kubeconfig.go | 45 + .../plugin/webhook/config/serviceresolver.go | 45 + .../webhook/config/serviceresolver_test.go | 58 + .../admission/plugin/webhook/errors}/BUILD | 23 +- .../admission/plugin/webhook/errors/doc.go | 18 + .../admission/plugin/webhook/errors/errors.go | 34 + .../plugin/webhook/errors/statuserror.go | 47 + .../plugin/webhook/errors/statuserror_test.go | 73 + .../admission/plugin/webhook/namespace/BUILD | 52 + .../admission/plugin/webhook/namespace/doc.go | 20 + .../plugin/webhook/namespace/matcher.go | 117 + .../plugin/webhook/namespace/matcher_test.go | 129 + .../admission/plugin/webhook/request/BUILD | 32 + .../plugin/webhook/request/admissionreview.go | 69 + .../admission/plugin/webhook/request/doc.go | 18 + .../pkg/admission/plugin/webhook/rules/BUILD | 38 + .../admission/plugin/webhook/rules/rules.go | 95 + .../plugin/webhook/rules/rules_test.go | 300 + .../admission/plugin/webhook/validating/BUILD | 70 + .../plugin/webhook/validating/admission.go | 316 + .../webhook/validating/admission_test.go | 648 + .../plugin/webhook/validating/certs_test.go | 216 + .../plugin/webhook/validating/doc.go | 18 + .../plugin/webhook/validating/gencerts.sh | 109 + .../admission/plugin/webhook/versioned/BUILD | 47 + .../plugin/webhook/versioned/attributes.go | 42 + .../plugin/webhook/versioned/conversion.go | 55 + .../webhook/versioned/conversion_test.go | 132 + .../admission/plugin/webhook/versioned/doc.go | 19 + .../k8s.io/apiserver/pkg/admission/plugins.go | 33 +- .../apiserver/pkg/admission/testutil_test.go | 166 + .../k8s.io/apiserver/pkg/apis/apiserver/BUILD | 1 - .../apiserver/pkg/apis/apiserver/doc.go | 2 +- .../apiserver/pkg/apis/apiserver/register.go | 2 +- .../pkg/apis/apiserver/v1alpha1/BUILD | 1 + .../pkg/apis/apiserver/v1alpha1/conversion.go | 88 + .../pkg/apis/apiserver/v1alpha1/doc.go | 2 +- .../pkg/apis/apiserver/v1alpha1/register.go | 2 +- .../v1alpha1/zz_generated.deepcopy.go | 23 - .../apis/apiserver/zz_generated.deepcopy.go | 23 - .../src/k8s.io/apiserver/pkg/apis/audit/BUILD | 1 - .../apiserver/pkg/apis/audit/register.go | 1 - .../apiserver/pkg/apis/audit/v1alpha1/doc.go | 2 +- .../audit/v1alpha1/zz_generated.deepcopy.go | 43 - .../apiserver/pkg/apis/audit/v1beta1/doc.go | 2 +- .../audit/v1beta1/zz_generated.deepcopy.go | 43 - .../pkg/apis/audit/zz_generated.deepcopy.go | 42 - .../k8s.io/apiserver/pkg/apis/example/BUILD | 1 - .../k8s.io/apiserver/pkg/apis/example/doc.go | 2 +- .../pkg/apis/example/install/install.go | 2 +- .../apiserver/pkg/apis/example/register.go | 3 +- .../apiserver/pkg/apis/example/types.go | 32 + .../apiserver/pkg/apis/example/v1/doc.go | 2 +- .../apiserver/pkg/apis/example/v1/register.go | 2 +- .../apis/example/v1/zz_generated.deepcopy.go | 35 - .../pkg/apis/example/zz_generated.deepcopy.go | 96 +- .../k8s.io/apiserver/pkg/apis/example2/BUILD | 38 + .../k8s.io/apiserver/pkg/apis/example2/doc.go | 24 + .../pkg/apis/example2}/install/BUILD | 21 +- .../pkg/apis/example2}/install/install.go | 27 +- .../apis/example2/install/roundtrip_test.go | 28 + .../apiserver/pkg/apis/example2/register.go | 52 + .../apiserver/pkg/apis/example2/v1}/BUILD | 7 +- .../pkg/apis/example2/v1/conversion.go | 51 + .../pkg/apis/example2/v1}/defaults.go | 7 +- .../apiserver/pkg/apis/example2/v1/doc.go | 24 + .../pkg/apis/example2/v1/generated.pb.go | 682 + .../pkg/apis/example2/v1/generated.proto | 71 + .../pkg/apis/example2}/v1/register.go | 33 +- .../apiserver/pkg/apis/example2/v1/types.go | 64 + .../v1/types_swagger_doc_generated.go | 17 + .../example2/v1/zz_generated.conversion.go | 111 + .../apis/example2/v1/zz_generated.deepcopy.go | 95 + .../example2/v1}/zz_generated.defaults.go | 2 +- .../apis/example2/zz_generated.deepcopy.go | 21 + .../k8s.io/apiserver/pkg/audit/policy/BUILD | 2 +- .../apiserver/pkg/audit/policy/reader.go | 27 +- .../apiserver/pkg/audit/policy/reader_test.go | 27 + .../authorization/authorizer/interfaces.go | 18 +- .../pkg/authorization/authorizerfactory/BUILD | 2 +- .../authorizerfactory/builtin.go | 29 +- .../{authz_test.go => builtin_test.go} | 12 +- .../pkg/authorization/union/union.go | 22 +- .../pkg/authorization/union/union_test.go | 79 +- .../apiserver/pkg/endpoints/apiserver_test.go | 235 +- .../pkg/endpoints/filters/authorization.go | 2 +- .../pkg/endpoints/filters/impersonation.go | 4 +- .../endpoints/filters/impersonation_test.go | 24 +- .../apiserver/pkg/endpoints/groupversion.go | 6 - .../apiserver/pkg/endpoints/handlers/BUILD | 5 + .../pkg/endpoints/handlers/create.go | 168 + .../pkg/endpoints/handlers/delete.go | 282 + .../apiserver/pkg/endpoints/handlers/get.go | 278 + .../apiserver/pkg/endpoints/handlers/patch.go | 358 +- .../apiserver/pkg/endpoints/handlers/rest.go | 1039 +- .../pkg/endpoints/handlers/rest_test.go | 191 +- .../pkg/endpoints/handlers/update.go | 135 + .../apiserver/pkg/endpoints/installer.go | 13 +- .../pkg/endpoints/openapi/testing/BUILD | 1 - .../openapi/testing/zz_generated.deepcopy.go | 14 - .../apiserver/pkg/endpoints/testing/BUILD | 1 - .../testing/zz_generated.deepcopy.go | 30 - .../generic/registry/storage_factory.go | 49 + .../pkg/registry/generic/registry/store.go | 29 +- .../registry/generic/registry/store_test.go | 120 +- .../k8s.io/apiserver/pkg/registry/rest/BUILD | 2 +- .../apiserver/pkg/registry/rest/create.go | 26 + .../apiserver/pkg/registry/rest/rest.go | 30 +- .../pkg/registry/rest/resttest/resttest.go | 56 +- .../apiserver/pkg/registry/rest/update.go | 26 + .../registry/rest/zz_generated.deepcopy.go | 14 - .../src/k8s.io/apiserver/pkg/server/BUILD | 5 + .../src/k8s.io/apiserver/pkg/server/config.go | 17 +- .../k8s.io/apiserver/pkg/server/filters/BUILD | 2 + .../pkg/server/filters/maxinflight.go | 3 +- .../apiserver/pkg/server/filters/waitgroup.go | 53 + .../apiserver/pkg/server/genericapiserver.go | 70 +- .../pkg/server/genericapiserver_test.go | 88 +- .../k8s.io/apiserver/pkg/server/handler.go | 2 +- .../apiserver/pkg/server/healthz/healthz.go | 3 +- .../src/k8s.io/apiserver/pkg/server/hooks.go | 72 +- .../k8s.io/apiserver/pkg/server/options/BUILD | 1 + .../apiserver/pkg/server/options/admission.go | 16 +- .../k8s.io/apiserver/pkg/server/plugins.go | 2 + .../src/k8s.io/apiserver/pkg/server/serve.go | 11 +- .../k8s.io/apiserver/pkg/storage/cacher.go | 8 + .../apiserver/pkg/storage/etcd/testing/BUILD | 1 - .../pkg/storage/etcd/testing/utils.go | 3 +- .../apiserver/pkg/storage/etcd3/store.go | 7 +- .../apiserver/pkg/storage/testing/BUILD | 1 - .../storage/testing/zz_generated.deepcopy.go | 14 - .../pkg/storage/tests/cacher_test.go | 2 +- .../value/encrypt/secretbox/secretbox.go | 2 +- .../src/k8s.io/apiserver/pkg/util/flag/BUILD | 2 + .../colon_separated_multimap_string_string.go | 80 + ...n_separated_multimap_string_string_test.go | 126 + .../k8s.io/apiserver/pkg/util/webhook/BUILD | 1 + .../apiserver/pkg/util/webhook/webhook.go | 8 +- .../plugin/pkg/authorizer/webhook/webhook.go | 23 +- .../pkg/authorizer/webhook/webhook_test.go | 14 +- .../src/k8s.io/client-go/Godeps/Godeps.json | 60 +- .../client-go/discovery/fake/discovery.go | 39 +- .../discovery/helper_blackbox_test.go | 5 +- .../k8s.io/client-go/dynamic/client_pool.go | 2 +- .../create-update-delete-deployment/BUILD | 3 +- .../create-update-delete-deployment/README.md | 24 +- .../create-update-delete-deployment/main.go | 80 +- .../src/k8s.io/client-go/informers/BUILD | 2 + .../admissionregistration/interface.go | 10 +- .../admissionregistration/v1alpha1/BUILD | 3 +- .../externaladmissionhookconfiguration.go | 73 - .../v1alpha1/initializerconfiguration.go | 22 +- .../v1alpha1/interface.go | 31 +- .../v1alpha1/mutatingwebhookconfiguration.go | 87 + .../validatingwebhookconfiguration.go | 87 + .../client-go/informers/apps/interface.go | 14 +- .../k8s.io/client-go/informers/apps/v1/BUILD | 4 + .../informers/apps/v1/controllerrevision.go | 88 + .../client-go/informers/apps/v1/daemonset.go | 23 +- .../client-go/informers/apps/v1/deployment.go | 88 + .../client-go/informers/apps/v1/interface.go | 38 +- .../client-go/informers/apps/v1/replicaset.go | 88 + .../informers/apps/v1/statefulset.go | 88 + .../apps/v1beta1/controllerrevision.go | 23 +- .../informers/apps/v1beta1/deployment.go | 23 +- .../informers/apps/v1beta1/interface.go | 14 +- .../informers/apps/v1beta1/statefulset.go | 23 +- .../apps/v1beta2/controllerrevision.go | 23 +- .../informers/apps/v1beta2/daemonset.go | 23 +- .../informers/apps/v1beta2/deployment.go | 23 +- .../informers/apps/v1beta2/interface.go | 18 +- .../informers/apps/v1beta2/replicaset.go | 23 +- .../informers/apps/v1beta2/statefulset.go | 23 +- .../informers/autoscaling/interface.go | 12 +- .../autoscaling/v1/horizontalpodautoscaler.go | 23 +- .../informers/autoscaling/v1/interface.go | 10 +- .../v2beta1/horizontalpodautoscaler.go | 23 +- .../autoscaling/v2beta1/interface.go | 10 +- .../client-go/informers/batch/interface.go | 14 +- .../client-go/informers/batch/v1/interface.go | 10 +- .../client-go/informers/batch/v1/job.go | 23 +- .../informers/batch/v1beta1/cronjob.go | 23 +- .../informers/batch/v1beta1/interface.go | 10 +- .../informers/batch/v2alpha1/cronjob.go | 23 +- .../informers/batch/v2alpha1/interface.go | 10 +- .../informers/certificates/interface.go | 10 +- .../v1beta1/certificatesigningrequest.go | 22 +- .../certificates/v1beta1/interface.go | 10 +- .../client-go/informers/core/interface.go | 10 +- .../informers/core/v1/componentstatus.go | 22 +- .../client-go/informers/core/v1/configmap.go | 23 +- .../client-go/informers/core/v1/endpoints.go | 23 +- .../client-go/informers/core/v1/event.go | 23 +- .../client-go/informers/core/v1/interface.go | 40 +- .../client-go/informers/core/v1/limitrange.go | 23 +- .../client-go/informers/core/v1/namespace.go | 22 +- .../client-go/informers/core/v1/node.go | 22 +- .../informers/core/v1/persistentvolume.go | 22 +- .../core/v1/persistentvolumeclaim.go | 23 +- .../k8s.io/client-go/informers/core/v1/pod.go | 23 +- .../informers/core/v1/podtemplate.go | 23 +- .../core/v1/replicationcontroller.go | 23 +- .../informers/core/v1/resourcequota.go | 23 +- .../client-go/informers/core/v1/secret.go | 23 +- .../client-go/informers/core/v1/service.go | 23 +- .../informers/core/v1/serviceaccount.go | 23 +- .../informers/extensions/interface.go | 10 +- .../informers/extensions/v1beta1/BUILD | 1 - .../informers/extensions/v1beta1/daemonset.go | 23 +- .../extensions/v1beta1/deployment.go | 23 +- .../informers/extensions/v1beta1/ingress.go | 23 +- .../informers/extensions/v1beta1/interface.go | 25 +- .../extensions/v1beta1/podsecuritypolicy.go | 22 +- .../extensions/v1beta1/replicaset.go | 23 +- .../extensions/v1beta1/thirdpartyresource.go | 73 - .../src/k8s.io/client-go/informers/factory.go | 44 +- .../src/k8s.io/client-go/informers/generic.go | 67 +- .../informers/internalinterfaces/BUILD | 1 + .../internalinterfaces/factory_interfaces.go | 3 + .../informers/networking/interface.go | 10 +- .../informers/networking/v1/interface.go | 10 +- .../informers/networking/v1/networkpolicy.go | 23 +- .../client-go/informers/policy/interface.go | 10 +- .../informers/policy/v1beta1/interface.go | 10 +- .../policy/v1beta1/poddisruptionbudget.go | 23 +- .../client-go/informers/rbac/interface.go | 14 +- .../informers/rbac/v1/clusterrole.go | 22 +- .../informers/rbac/v1/clusterrolebinding.go | 22 +- .../client-go/informers/rbac/v1/interface.go | 16 +- .../client-go/informers/rbac/v1/role.go | 23 +- .../informers/rbac/v1/rolebinding.go | 23 +- .../informers/rbac/v1alpha1/clusterrole.go | 22 +- .../rbac/v1alpha1/clusterrolebinding.go | 22 +- .../informers/rbac/v1alpha1/interface.go | 16 +- .../client-go/informers/rbac/v1alpha1/role.go | 23 +- .../informers/rbac/v1alpha1/rolebinding.go | 23 +- .../informers/rbac/v1beta1/clusterrole.go | 22 +- .../rbac/v1beta1/clusterrolebinding.go | 22 +- .../informers/rbac/v1beta1/interface.go | 16 +- .../client-go/informers/rbac/v1beta1/role.go | 23 +- .../informers/rbac/v1beta1/rolebinding.go | 23 +- .../informers/scheduling/interface.go | 10 +- .../scheduling/v1alpha1/interface.go | 10 +- .../scheduling/v1alpha1/priorityclass.go | 22 +- .../client-go/informers/settings/interface.go | 10 +- .../informers/settings/v1alpha1/interface.go | 10 +- .../informers/settings/v1alpha1/podpreset.go | 23 +- .../k8s.io/client-go/informers/storage/BUILD | 2 + .../client-go/informers/storage/interface.go | 20 +- .../informers/storage/v1/interface.go | 10 +- .../informers/storage/v1/storageclass.go | 22 +- .../informers/storage/v1alpha1/BUILD | 35 + .../informers/storage/v1alpha1/interface.go | 45 + .../storage/v1alpha1/volumeattachment.go | 87 + .../informers/storage/v1beta1/interface.go | 10 +- .../informers/storage/v1beta1/storageclass.go | 22 +- .../src/k8s.io/client-go/kubernetes/BUILD | 2 + .../k8s.io/client-go/kubernetes/clientset.go | 14 + .../k8s.io/client-go/kubernetes/fake/BUILD | 3 + .../kubernetes/fake/clientset_generated.go | 7 + .../client-go/kubernetes/fake/register.go | 2 + .../k8s.io/client-go/kubernetes/scheme/BUILD | 1 + .../client-go/kubernetes/scheme/register.go | 2 + .../admissionregistration/v1alpha1/BUILD | 3 +- .../v1alpha1/admissionregistration_client.go | 15 +- .../externaladmissionhookconfiguration.go | 145 - .../admissionregistration/v1alpha1/fake/BUILD | 3 +- .../fake/fake_admissionregistration_client.go | 12 +- ...fake_externaladmissionhookconfiguration.go | 118 - .../fake/fake_mutatingwebhookconfiguration.go | 118 + .../fake_validatingwebhookconfiguration.go | 118 + .../v1alpha1/generated_expansion.go | 6 +- .../v1alpha1/mutatingwebhookconfiguration.go | 145 + .../validatingwebhookconfiguration.go | 145 + .../client-go/kubernetes/typed/apps/v1/BUILD | 4 + .../kubernetes/typed/apps/v1/apps_client.go | 20 + .../typed/apps/v1/controllerrevision.go | 155 + .../kubernetes/typed/apps/v1}/deployment.go | 89 +- .../kubernetes/typed/apps/v1/fake/BUILD | 4 + .../typed/apps/v1/fake/fake_apps_client.go | 16 + .../apps/v1/fake/fake_controllerrevision.go | 126 + .../typed/apps/v1}/fake/fake_deployment.go | 72 +- .../typed/apps/v1}/fake/fake_replicaset.go | 72 +- .../typed/apps/v1/fake/fake_statefulset.go | 138 + .../typed/apps/v1/generated_expansion.go | 8 + .../kubernetes/typed/apps/v1}/replicaset.go | 89 +- .../kubernetes/typed/apps/v1/statefulset.go | 172 + .../kubernetes/typed/extensions/v1beta1/BUILD | 1 - .../extensions/v1beta1/extensions_client.go | 5 - .../typed/extensions/v1beta1/fake/BUILD | 1 - .../v1beta1/fake/fake_extensions_client.go | 4 - .../v1beta1/fake/fake_thirdpartyresource.go | 118 - .../extensions/v1beta1/generated_expansion.go | 2 - .../extensions/v1beta1/thirdpartyresource.go | 145 - .../kubernetes/typed/storage/v1alpha1}/BUILD | 21 +- .../kubernetes/typed/storage/v1alpha1}/doc.go | 2 +- .../typed/storage/v1alpha1}/fake/BUILD | 19 +- .../typed/storage/v1alpha1}/fake/doc.go | 0 .../v1alpha1/fake/fake_storage_client.go} | 10 +- .../v1alpha1/fake/fake_volumeattachment.go | 129 + .../storage/v1alpha1/generated_expansion.go | 19 + .../typed/storage/v1alpha1/storage_client.go} | 38 +- .../storage/v1alpha1/volumeattachment.go | 161 + .../admissionregistration/v1alpha1/BUILD | 4 +- .../v1alpha1/expansion_generated.go | 12 +- .../externaladmissionhookconfiguration.go | 67 - .../v1alpha1/initializerconfiguration.go | 4 +- .../v1alpha1/mutatingwebhookconfiguration.go | 65 + .../validatingwebhookconfiguration.go | 65 + .../k8s.io/client-go/listers/apps/v1/BUILD | 4 + .../listers/apps/v1/controllerrevision.go | 94 + .../client-go/listers/apps/v1/deployment.go | 94 + .../listers/apps/v1/expansion_generated.go | 32 + .../client-go/listers/apps/v1/replicaset.go | 94 + .../client-go/listers/apps/v1/statefulset.go | 94 + .../client-go/listers/authentication/v1/BUILD | 1 - .../listers/authentication/v1/tokenreview.go | 4 +- .../listers/authentication/v1beta1/BUILD | 1 - .../authentication/v1beta1/tokenreview.go | 4 +- .../client-go/listers/authorization/v1/BUILD | 1 - .../v1/selfsubjectaccessreview.go | 4 +- .../v1/selfsubjectrulesreview.go | 4 +- .../authorization/v1/subjectaccessreview.go | 4 +- .../listers/authorization/v1beta1/BUILD | 1 - .../v1beta1/selfsubjectaccessreview.go | 4 +- .../v1beta1/selfsubjectrulesreview.go | 4 +- .../v1beta1/subjectaccessreview.go | 4 +- .../listers/certificates/v1beta1/BUILD | 1 - .../v1beta1/certificatesigningrequest.go | 4 +- .../k8s.io/client-go/listers/core/v1/BUILD | 1 - .../listers/core/v1/componentstatus.go | 4 +- .../client-go/listers/core/v1/namespace.go | 4 +- .../k8s.io/client-go/listers/core/v1/node.go | 4 +- .../listers/core/v1/persistentvolume.go | 4 +- .../listers/extensions/v1beta1/BUILD | 1 - .../extensions/v1beta1/expansion_generated.go | 4 - .../extensions/v1beta1/podsecuritypolicy.go | 4 +- .../extensions/v1beta1/thirdpartyresource.go | 67 - .../listers/imagepolicy/v1alpha1/BUILD | 1 - .../imagepolicy/v1alpha1/imagereview.go | 4 +- .../k8s.io/client-go/listers/rbac/v1/BUILD | 1 - .../client-go/listers/rbac/v1/clusterrole.go | 4 +- .../listers/rbac/v1/clusterrolebinding.go | 4 +- .../client-go/listers/rbac/v1alpha1/BUILD | 1 - .../listers/rbac/v1alpha1/clusterrole.go | 4 +- .../rbac/v1alpha1/clusterrolebinding.go | 4 +- .../client-go/listers/rbac/v1beta1/BUILD | 1 - .../listers/rbac/v1beta1/clusterrole.go | 4 +- .../rbac/v1beta1/clusterrolebinding.go | 4 +- .../listers/scheduling/v1alpha1/BUILD | 1 - .../scheduling/v1alpha1/priorityclass.go | 4 +- .../k8s.io/client-go/listers/storage/v1/BUILD | 1 - .../listers/storage/v1/storageclass.go | 4 +- .../client-go/listers/storage/v1alpha1/BUILD | 31 + .../storage/v1alpha1/expansion_generated.go | 23 + .../storage/v1alpha1/volumeattachment.go | 65 + .../client-go/listers/storage/v1beta1/BUILD | 1 - .../listers/storage/v1beta1/storageclass.go | 4 +- .../src/k8s.io/client-go/pkg/version/base.go | 8 +- .../staging/src/k8s.io/client-go/rest/BUILD | 2 +- .../src/k8s.io/client-go/rest/config.go | 40 + .../src/k8s.io/client-go/rest/config_test.go | 100 + .../src/k8s.io/client-go/rest/fake/BUILD | 1 - .../src/k8s.io/client-go/rest/fake/fake.go | 16 +- .../src/k8s.io/client-go/rest/request.go | 2 + .../src/k8s.io/client-go/rest/request_test.go | 71 + .../src/k8s.io/client-go/rest/url_utils.go | 11 +- .../client-go/rest/zz_generated.deepcopy.go | 17 - .../staging/src/k8s.io/client-go/scale/BUILD | 77 + .../src/k8s.io/client-go/scale/client.go | 197 + .../src/k8s.io/client-go/scale/client_test.go | 283 + .../staging/src/k8s.io/client-go/scale/doc.go | 21 + .../src/k8s.io/client-go/scale/fake/BUILD | 28 + .../src/k8s.io/client-go/scale/fake/client.go | 67 + .../src/k8s.io/client-go/scale/interfaces.go | 39 + .../k8s.io/client-go/scale/roundtrip_test.go | 34 + .../src/k8s.io/client-go/scale/scheme/BUILD | 41 + .../client-go/scale/scheme/appsint/BUILD | 31 + .../client-go/scale/scheme/appsint/doc.go | 22 + .../scale/scheme/appsint/register.go | 53 + .../client-go/scale/scheme/appsv1beta1/BUILD | 35 + .../scale/scheme/appsv1beta1/conversion.go | 87 + .../client-go/scale/scheme/appsv1beta1/doc.go | 20 + .../scale/scheme/appsv1beta1/register.go | 45 + .../appsv1beta1/zz_generated.conversion.go | 110 + .../client-go/scale/scheme/appsv1beta2/BUILD | 35 + .../scale/scheme/appsv1beta2/conversion.go | 87 + .../client-go/scale/scheme/appsv1beta2/doc.go | 20 + .../scale/scheme/appsv1beta2/register.go | 45 + .../appsv1beta2/zz_generated.conversion.go | 110 + .../scale/scheme/autoscalingv1/BUILD | 35 + .../scale/scheme/autoscalingv1/conversion.go | 69 + .../scale/scheme/autoscalingv1/doc.go | 20 + .../scale/scheme/autoscalingv1/register.go | 45 + .../autoscalingv1/zz_generated.conversion.go | 109 + .../src/k8s.io/client-go/scale/scheme/doc.go | 22 + .../scale/scheme/extensionsint/BUILD | 31 + .../scale/scheme/extensionsint/doc.go | 22 + .../scale/scheme/extensionsint/register.go | 53 + .../scale/scheme/extensionsv1beta1/BUILD | 35 + .../scheme/extensionsv1beta1/conversion.go | 87 + .../scale/scheme/extensionsv1beta1/doc.go | 20 + .../scheme/extensionsv1beta1/register.go | 45 + .../zz_generated.conversion.go | 110 + .../k8s.io/client-go/scale/scheme/register.go | 52 + .../k8s.io/client-go/scale/scheme/types.go | 60 + .../scale/scheme/zz_generated.deepcopy.go | 96 + .../src/k8s.io/client-go/scale/util.go | 167 + .../src/k8s.io/client-go/tools/cache/fifo.go | 2 +- .../k8s.io/client-go/tools/cache/listwatch.go | 10 +- .../k8s.io/client-go/tools/cache/reflector.go | 13 +- .../client-go/tools/clientcmd/api/BUILD | 1 - .../client-go/tools/clientcmd/api/doc.go | 2 +- .../client-go/tools/clientcmd/api/v1/doc.go | 2 +- .../clientcmd/api/v1/zz_generated.deepcopy.go | 55 - .../clientcmd/api/zz_generated.deepcopy.go | 39 - .../src/k8s.io/client-go/util/cert/io.go | 10 +- .../k8s.io/client-go/util/certificate/BUILD | 14 +- .../util/certificate/certificate_manager.go | 177 +- .../certificate/certificate_manager_test.go | 191 +- .../util/certificate/certificate_store.go | 7 + .../client-go/util/certificate/csr/BUILD | 54 + .../client-go/util/certificate/csr/csr.go | 261 + .../util/certificate/csr/csr_test.go | 135 + .../k8s.io/code-generator/Godeps/Godeps.json | 26 +- .../staging/src/k8s.io/code-generator/LICENSE | 202 + .../src/k8s.io/code-generator/README.md | 20 + .../_examples/apiserver/apis/example/doc.go | 2 +- .../apiserver/apis/example/register.go | 4 +- .../apiserver/apis/example/v1/doc.go | 2 +- .../apiserver/apis/example/v1/register.go | 2 +- .../apis/example/v1/zz_generated.deepcopy.go | 27 - .../apis/example/zz_generated.deepcopy.go | 27 - .../_examples/apiserver/apis/example2}/doc.go | 7 +- .../apis/example2}/install/install.go | 29 +- .../apiserver/apis/example2/register.go | 45 + .../apiserver/apis/example2/types.go | 44 + .../apiserver/apis/example2/v1/doc.go} | 13 +- .../apiserver/apis/example2/v1/register.go | 59 + .../apiserver/apis/example2/v1/types.go | 47 + .../example2/v1/zz_generated.conversion.go | 113 + .../apis/example2/v1/zz_generated.deepcopy.go | 103 + .../example2/v1/zz_generated.defaults.go} | 13 +- .../apis/example2/zz_generated.deepcopy.go | 103 + .../clientset/internalversion/clientset.go | 16 +- .../fake/clientset_generated.go | 7 + .../internalversion/fake/register.go | 2 + .../internalversion/scheme/register.go | 2 + .../typed/example2/internalversion/doc.go | 18 + .../internalversion/example2_client.go | 99 + .../example2/internalversion}/fake/doc.go | 0 .../fake/fake_example2_client.go} | 10 +- .../internalversion/fake/fake_testtype.go | 138 + .../internalversion/generated_expansion.go | 19 + .../example2/internalversion/testtype.go | 172 + .../clientset/versioned/clientset.go | 24 +- .../versioned/fake/clientset_generated.go | 12 + .../clientset/versioned/fake/register.go | 2 + .../clientset/versioned/scheme/register.go | 2 + .../versioned/typed/example2}/v1/doc.go | 0 .../typed/example2/v1/example2_client.go} | 56 +- .../versioned/typed/example2/v1}/fake/doc.go | 0 .../example2/v1/fake/fake_example2_client.go} | 26 +- .../typed/example2/v1/fake/fake_testtype.go | 138 + .../typed/example2}/v1/generated_expansion.go | 2 +- .../versioned/typed/example2/v1/testtype.go | 172 + .../externalversions/example/interface.go | 10 +- .../externalversions/example/v1/interface.go | 10 +- .../externalversions/example/v1/testtype.go | 23 +- .../externalversions/example2/interface.go | 46 + .../externalversions/example2/v1/interface.go | 45 + .../externalversions/example2/v1/testtype.go | 88 + .../informers/externalversions/factory.go | 26 +- .../informers/externalversions/generic.go | 7 +- .../internalinterfaces/factory_interfaces.go | 3 + .../internalversion/example/interface.go | 10 +- .../example/internalversion/interface.go | 10 +- .../example/internalversion/testtype.go | 23 +- .../internalversion/example2/interface.go | 46 + .../example2/internalversion/interface.go | 45 + .../example2/internalversion/testtype.go | 88 + .../informers/internalversion/factory.go | 26 +- .../informers/internalversion/generic.go | 7 +- .../internalinterfaces/factory_interfaces.go | 3 + .../internalversion/expansion_generated.go | 27 + .../example2/internalversion/testtype.go | 94 + .../example2/v1/expansion_generated.go | 27 + .../apiserver/listers/example2/v1/testtype.go | 94 + .../_examples/crd/apis/example/v1/doc.go | 2 +- .../_examples/crd/apis/example/v1/register.go | 2 +- .../apis/example/v1/zz_generated.deepcopy.go | 27 - .../_examples/crd/apis/example2/v1}/doc.go | 7 +- .../crd/apis/example2/v1/register.go | 59 + .../_examples/crd/apis/example2/v1/types.go | 47 + .../apis/example2/v1/zz_generated.deepcopy.go | 103 + .../crd/clientset/versioned/clientset.go | 24 +- .../versioned/fake/clientset_generated.go | 12 + .../crd/clientset/versioned/fake/register.go | 2 + .../clientset/versioned/scheme/register.go | 2 + .../versioned/typed/example2}/v1/doc.go | 0 .../typed/example2/v1/example2_client.go} | 34 +- .../versioned/typed/example2/v1}/fake/doc.go | 0 .../example2/v1/fake/fake_example2_client.go | 38 + .../typed/example2/v1/fake/fake_testtype.go | 138 + .../typed/example2/v1}/generated_expansion.go | 4 +- .../versioned/typed/example2/v1/testtype.go | 172 + .../externalversions/example/interface.go | 10 +- .../externalversions/example/v1/interface.go | 10 +- .../externalversions/example/v1/testtype.go | 23 +- .../externalversions/example2/interface.go | 46 + .../externalversions/example2/v1/interface.go | 45 + .../externalversions/example2/v1/testtype.go | 88 + .../crd/informers/externalversions/factory.go | 26 +- .../crd/informers/externalversions/generic.go | 7 +- .../internalinterfaces/factory_interfaces.go | 3 + .../example2/v1/expansion_generated.go | 27 + .../crd/listers/example2/v1/testtype.go | 94 + .../cmd/client-gen/args/args.go | 20 +- .../cmd/client-gen/args/gvpackages.go | 7 +- .../cmd/client-gen/args/gvpackages_test.go | 14 +- .../client-gen/generators/client_generator.go | 46 +- .../generators/fake/fake_client_generator.go | 14 +- .../fake/generator_fake_for_clientset.go | 38 +- .../fake/generator_fake_for_group.go | 16 +- .../fake/generator_fake_for_type.go | 10 +- .../generators/generator_for_clientset.go | 32 +- .../generators/generator_for_group.go | 39 +- .../generators/generator_for_type.go | 8 +- .../generators/scheme/generator_for_scheme.go | 14 +- .../cmd/client-gen/types/helpers.go | 23 +- .../cmd/client-gen/types/types.go | 18 +- .../conversion-gen/generators/conversion.go | 21 +- .../code-generator/cmd/conversion-gen/main.go | 17 +- .../code-generator/cmd/deepcopy-gen/main.go | 5 - .../code-generator/cmd/go-to-protobuf/main.go | 4 +- .../cmd/informer-gen/generators/factory.go | 58 +- .../generators/factoryinterface.go | 3 + .../cmd/informer-gen/generators/generic.go | 23 +- .../informer-gen/generators/groupinterface.go | 11 +- .../cmd/informer-gen/generators/informer.go | 32 +- .../cmd/informer-gen/generators/packages.go | 66 +- .../cmd/informer-gen/generators/types.go | 4 +- .../generators/versioninterface.go | 30 +- .../cmd/lister-gen/generators/lister.go | 8 +- .../generate-internal-groups.sh | 2 +- .../code-generator/hack/update-codegen.sh | 4 +- .../code-generator/hack/verify-codegen.sh | 4 + .../k8s.io/kube-aggregator/Godeps/Godeps.json | 80 +- .../src/k8s.io/kube-aggregator/LICENSE | 202 + .../src/k8s.io/kube-aggregator/README.md | 27 + .../pkg/apis/apiregistration/BUILD | 1 - .../pkg/apis/apiregistration/doc.go | 2 +- .../pkg/apis/apiregistration/register.go | 2 +- .../pkg/apis/apiregistration/v1beta1/doc.go | 2 +- .../apis/apiregistration/v1beta1/register.go | 2 +- .../v1beta1/zz_generated.deepcopy.go | 39 - .../apiregistration/zz_generated.deepcopy.go | 39 - .../pkg/apiserver/apiserver.go | 5 +- .../client/informers/externalversions/BUILD | 1 + .../apiregistration/interface.go | 10 +- .../apiregistration/v1beta1/apiservice.go | 22 +- .../apiregistration/v1beta1/interface.go | 10 +- .../informers/externalversions/factory.go | 20 +- .../informers/externalversions/generic.go | 2 +- .../externalversions/internalinterfaces/BUILD | 1 + .../internalinterfaces/factory_interfaces.go | 3 + .../client/informers/internalversion/BUILD | 1 + .../apiregistration/interface.go | 10 +- .../internalversion/apiservice.go | 22 +- .../internalversion/interface.go | 10 +- .../informers/internalversion/factory.go | 20 +- .../informers/internalversion/generic.go | 2 +- .../internalversion/internalinterfaces/BUILD | 1 + .../internalinterfaces/factory_interfaces.go | 3 + .../apiregistration/internalversion/BUILD | 1 - .../internalversion/apiservice.go | 4 +- .../listers/apiregistration/v1beta1/BUILD | 1 - .../apiregistration/v1beta1/apiservice.go | 4 +- .../status/available_controller.go | 90 +- .../pkg/registry/apiservice/etcd/etcd.go | 4 +- .../src/k8s.io/metrics/Godeps/Godeps.json | 18 +- .../staging/src/k8s.io/metrics/README.md | 71 + .../metrics/pkg/apis/custom_metrics/BUILD | 1 - .../metrics/pkg/apis/custom_metrics/doc.go | 2 +- .../pkg/apis/custom_metrics/v1beta1/doc.go | 2 +- .../v1beta1/zz_generated.deepcopy.go | 23 - .../custom_metrics/zz_generated.deepcopy.go | 27 - .../src/k8s.io/metrics/pkg/apis/metrics/BUILD | 1 - .../k8s.io/metrics/pkg/apis/metrics/doc.go | 2 +- .../metrics/pkg/apis/metrics/v1alpha1/doc.go | 2 +- .../metrics/v1alpha1/zz_generated.deepcopy.go | 35 - .../metrics/pkg/apis/metrics/v1beta1/doc.go | 2 +- .../metrics/v1beta1/zz_generated.deepcopy.go | 35 - .../pkg/apis/metrics/zz_generated.deepcopy.go | 35 - .../sample-apiserver/Godeps/Godeps.json | 78 +- .../src/k8s.io/sample-apiserver/LICENSE | 202 + .../src/k8s.io/sample-apiserver/README.md | 19 + .../docs/minikube-walkthrough.md | 106 + .../admission/plugin/banflunder/admission.go | 16 +- .../plugin/banflunder/admission_test.go | 2 +- .../admission/wardleinitializer/interfaces.go | 2 +- .../wardleinitializer_test.go | 2 +- .../sample-apiserver/pkg/apis/wardle/BUILD | 1 - .../sample-apiserver/pkg/apis/wardle/doc.go | 2 +- .../pkg/apis/wardle/register.go | 2 +- .../pkg/apis/wardle/v1alpha1/doc.go | 2 +- .../pkg/apis/wardle/v1alpha1/register.go | 2 +- .../wardle/v1alpha1/zz_generated.deepcopy.go | 39 - .../pkg/apis/wardle/zz_generated.deepcopy.go | 39 - .../client/informers/externalversions/BUILD | 1 + .../informers/externalversions/factory.go | 20 +- .../informers/externalversions/generic.go | 2 +- .../externalversions/internalinterfaces/BUILD | 1 + .../internalinterfaces/factory_interfaces.go | 3 + .../externalversions/wardle/interface.go | 10 +- .../wardle/v1alpha1/fischer.go | 22 +- .../wardle/v1alpha1/flunder.go | 23 +- .../wardle/v1alpha1/interface.go | 12 +- .../client/informers/internalversion/BUILD | 1 + .../informers/internalversion/factory.go | 20 +- .../informers/internalversion/generic.go | 2 +- .../internalversion/internalinterfaces/BUILD | 1 + .../internalinterfaces/factory_interfaces.go | 3 + .../internalversion/wardle/interface.go | 10 +- .../wardle/internalversion/fischer.go | 22 +- .../wardle/internalversion/flunder.go | 23 +- .../wardle/internalversion/interface.go | 12 +- .../listers/wardle/internalversion/BUILD | 1 - .../listers/wardle/internalversion/fischer.go | 4 +- .../pkg/client/listers/wardle/v1alpha1/BUILD | 1 - .../client/listers/wardle/v1alpha1/fischer.go | 4 +- .../sample-apiserver/pkg/cmd/server/start.go | 2 +- .../src/k8s.io/sample-controller/BUILD | 64 + .../sample-controller/Godeps/Godeps.json | 962 + .../k8s.io/sample-controller/Godeps/Readme | 5 + .../src/k8s.io/sample-controller/LICENSE | 202 + .../src/k8s.io/sample-controller/OWNERS | 9 + .../src/k8s.io/sample-controller/README.md | 92 + .../artifacts/examples/crd.yaml | 11 + .../artifacts/examples/example-foo.yaml | 7 + .../k8s.io/sample-controller/controller.go | 431 + .../hack/custom-boilerplate.go.txt | 16 + .../sample-controller/hack/update-codegen.sh | 34 + .../sample-controller/hack/verify-codegen.sh | 48 + .../src/k8s.io/sample-controller/main.go | 77 + .../pkg/apis/samplecontroller/BUILD | 25 + .../pkg/apis/samplecontroller/register.go | 21 + .../pkg/apis/samplecontroller/v1alpha1/BUILD | 33 + .../pkg/apis/samplecontroller/v1alpha1/doc.go | 21 + .../samplecontroller/v1alpha1/register.go | 51 + .../apis/samplecontroller/v1alpha1/types.go | 55 + .../v1alpha1/zz_generated.deepcopy.go | 129 + .../pkg/client/clientset/versioned/BUILD | 37 + .../client/clientset/versioned/clientset.go | 98 + .../pkg/client/clientset/versioned/doc.go | 18 + .../pkg/client/clientset/versioned/fake/BUILD | 40 + .../versioned/fake/clientset_generated.go | 71 + .../client/clientset/versioned/fake/doc.go | 18 + .../clientset/versioned/fake/register.go | 53 + .../client/clientset/versioned/scheme/BUILD | 32 + .../client/clientset/versioned/scheme/doc.go | 18 + .../clientset/versioned/scheme/register.go | 53 + .../typed/samplecontroller/v1alpha1}/BUILD | 21 +- .../typed/samplecontroller/v1alpha1}/doc.go | 2 +- .../samplecontroller/v1alpha1}/fake/BUILD | 19 +- .../samplecontroller/v1alpha1/fake/doc.go | 18 + .../v1alpha1/fake/fake_foo.go | 126 + .../fake/fake_samplecontroller_client.go | 38 + .../typed/samplecontroller/v1alpha1/foo.go | 155 + .../v1alpha1/generated_expansion.go | 19 + .../v1alpha1/samplecontroller_client.go | 88 + .../client/informers/externalversions/BUILD | 39 + .../informers/externalversions/factory.go | 130 + .../informers/externalversions/generic.go | 61 + .../externalversions/internalinterfaces/BUILD | 28 + .../internalinterfaces/factory_interfaces.go | 37 + .../externalversions/samplecontroller/BUILD | 29 + .../samplecontroller/interface.go | 46 + .../samplecontroller/v1alpha1/BUILD | 35 + .../samplecontroller/v1alpha1/foo.go | 88 + .../samplecontroller/v1alpha1/interface.go | 45 + .../listers/samplecontroller/v1alpha1/BUILD | 31 + .../v1alpha1/expansion_generated.go | 27 + .../listers/samplecontroller/v1alpha1/foo.go | 94 + .../sample-controller/pkg/signals/BUILD | 30 + .../sample-controller/pkg/signals/signal.go | 43 + .../pkg/signals/signal_posix.go} | 13 +- .../pkg/signals/signal_windows.go | 23 + vendor/k8s.io/kubernetes/test/BUILD | 1 + vendor/k8s.io/kubernetes/test/OWNERS | 4 + .../k8s.io/kubernetes/test/conformance/BUILD | 47 + .../k8s.io/kubernetes/test/conformance/OWNERS | 7 + .../kubernetes/test/conformance/README.md | 15 + .../conformance/conformance_test.sh} | 29 +- .../test/conformance/testdata/OWNERS | 11 + .../test/conformance/testdata/conformance.txt | 150 + .../kubernetes/test/conformance/walk.go | 166 + vendor/k8s.io/kubernetes/test/e2e/BUILD | 21 - .../kubernetes/test/e2e/apimachinery/BUILD | 6 +- .../test/e2e/apimachinery/aggregator.go | 134 +- .../kubernetes/test/e2e/apimachinery/certs.go | 90 + .../test/e2e/apimachinery/chunking.go | 2 +- .../custom_resource_definition.go | 7 +- .../test/e2e/apimachinery/etcd_failure.go | 2 +- .../e2e/apimachinery/garbage_collector.go | 80 +- .../e2e/apimachinery/generated_clientset.go | 4 +- .../test/e2e/apimachinery/initializers.go | 36 +- .../test/e2e/apimachinery/namespace.go | 24 +- .../test/e2e/apimachinery/table_conversion.go | 8 +- .../test/e2e/apimachinery/webhook.go | 689 + vendor/k8s.io/kubernetes/test/e2e/apps/BUILD | 7 +- .../kubernetes/test/e2e/apps/cronjob.go | 27 +- .../test/e2e/apps/daemon_restart.go | 6 +- .../kubernetes/test/e2e/apps/daemon_set.go | 126 +- .../kubernetes/test/e2e/apps/deployment.go | 414 +- .../test/e2e/{ => apps}/network_partition.go | 45 +- vendor/k8s.io/kubernetes/test/e2e/apps/rc.go | 28 +- .../kubernetes/test/e2e/apps/replica_set.go | 26 +- .../kubernetes/test/e2e/apps/statefulset.go | 14 +- vendor/k8s.io/kubernetes/test/e2e/auth/BUILD | 11 +- .../k8s.io/kubernetes/test/e2e/auth/audit.go | 30 +- .../test/e2e/auth/metadata_concealment.go | 63 + .../test/e2e/auth/pod_security_policy.go | 316 + .../test/e2e/auth/service_accounts.go | 68 +- .../kubernetes/test/e2e/autoscaling/BUILD | 4 +- .../cluster_autoscaler_scalability.go | 6 +- .../autoscaling/cluster_size_autoscaling.go | 540 +- .../autoscaling/custom_metrics_autoscaling.go | 4 +- .../test/e2e/autoscaling/dns_autoscaling.go | 12 +- .../autoscaling/horizontal_pod_autoscaling.go | 7 +- .../k8s.io/kubernetes/test/e2e/common/BUILD | 5 +- .../kubernetes/test/e2e/common/apparmor.go | 8 +- .../test/e2e/common/autoscaling_utils.go | 64 +- .../kubernetes/test/e2e/common/configmap.go | 18 +- .../test/e2e/common/configmap_volume.go | 83 +- .../test/e2e/common/container_probe.go | 56 +- .../test/e2e/common/docker_containers.go | 34 +- .../test/e2e/common/downward_api.go | 185 +- .../test/e2e/common/downwardapi_volume.go | 79 +- .../kubernetes/test/e2e/common/empty_dir.go | 126 +- .../kubernetes/test/e2e/common/events.go | 8 +- .../kubernetes/test/e2e/common/expansion.go | 23 +- .../kubernetes/test/e2e/common/host_path.go | 20 +- .../test/e2e/common/kubelet_etc_hosts.go | 7 +- .../kubernetes/test/e2e/common/networking.go | 28 +- .../k8s.io/kubernetes/test/e2e/common/pods.go | 41 +- .../kubernetes/test/e2e/common/projected.go | 258 +- .../kubernetes/test/e2e/common/secrets.go | 18 +- .../test/e2e/common/secrets_volume.go | 66 +- .../kubernetes/test/e2e/common/sysctl.go | 4 +- .../k8s.io/kubernetes/test/e2e/common/util.go | 17 +- .../kubernetes/test/e2e/common/volumes.go | 22 +- vendor/k8s.io/kubernetes/test/e2e/e2e.go | 20 +- vendor/k8s.io/kubernetes/test/e2e/examples.go | 19 +- .../kubernetes/test/e2e/framework/BUILD | 15 +- .../test/e2e/framework/authorizer_util.go | 47 +- .../test/e2e/framework/deployment_util.go | 230 +- .../test/e2e/framework/exec_util.go | 6 +- .../test/e2e/framework/federation_util.go | 33 - .../test/e2e/framework/firewall_util.go | 2 +- .../test/e2e/framework/framework.go | 35 +- .../test/e2e/framework/ingress_utils.go | 182 +- .../test/e2e/framework/jobs_util.go | 16 +- .../test/e2e/framework/kubelet_stats.go | 66 +- .../test/e2e/framework/metrics/BUILD | 2 +- .../framework/metrics/api_server_metrics.go | 2 +- .../e2e/framework/metrics/kubelet_metrics.go | 2 +- .../e2e/framework/metrics/metrics_grabber.go | 10 +- .../test/e2e/framework/metrics_util.go | 38 +- .../test/e2e/framework/networking_utils.go | 73 +- .../test/e2e/framework/nodes_util.go | 5 +- .../kubernetes/test/e2e/framework/pods.go | 8 +- .../kubernetes/test/e2e/framework/psp_util.go | 143 + .../kubernetes/test/e2e/framework/pv_util.go | 17 +- .../kubernetes/test/e2e/framework/rc_util.go | 14 +- .../e2e/framework/resource_usage_gatherer.go | 111 +- .../kubernetes/test/e2e/framework/rs_util.go | 4 +- .../test/e2e/framework/service_util.go | 66 +- .../kubernetes/test/e2e/framework/size.go | 40 +- .../test/e2e/framework/statefulset_utils.go | 15 +- .../test/e2e/framework/test_context.go | 75 +- .../kubernetes/test/e2e/framework/timer/BUILD | 34 + .../test/e2e/framework/timer/timer.go | 126 + .../test/e2e/framework/timer/timer_test.go | 92 + .../kubernetes/test/e2e/framework/util.go | 379 +- .../test/e2e/framework/volume_util.go | 2 + .../test/e2e/instrumentation/logging/BUILD | 1 - .../logging/elasticsearch/BUILD | 2 +- .../logging/elasticsearch/utils.go | 2 +- .../instrumentation/logging/generic_soak.go | 3 +- .../e2e/instrumentation/logging/utils/BUILD | 2 +- .../logging/utils/logging_agent.go | 4 +- .../test/e2e/instrumentation/monitoring/BUILD | 1 + .../instrumentation/monitoring/cadvisor.go | 4 +- .../monitoring/custom_metrics_deployments.go | 20 + .../monitoring/custom_metrics_stackdriver.go | 35 +- .../instrumentation/monitoring/influxdb.go | 62 +- .../monitoring/metrics_grabber.go | 4 +- .../k8s.io/kubernetes/test/e2e/kubectl/BUILD | 1 - .../kubernetes/test/e2e/kubectl/kubectl.go | 185 +- .../test/e2e/kubectl/portforward.go | 29 +- .../kubernetes/test/e2e/lifecycle/BUILD | 2 +- .../test/e2e/lifecycle/addon_update.go | 4 +- .../kubernetes/test/e2e/lifecycle/reboot.go | 6 +- .../test/e2e/lifecycle/resize_nodes.go | 4 +- .../kubernetes/test/e2e/lifecycle/restart.go | 4 +- .../k8s.io/kubernetes/test/e2e/limit_range.go | 165 - .../k8s.io/kubernetes/test/e2e/manifest/BUILD | 2 +- .../kubernetes/test/e2e/manifest/manifest.go | 12 +- .../test/e2e/multicluster/ubernetes_lite.go | 10 +- .../k8s.io/kubernetes/test/e2e/network/BUILD | 5 +- .../k8s.io/kubernetes/test/e2e/network/dns.go | 67 +- .../kubernetes/test/e2e/network/dns_common.go | 22 +- .../test/e2e/network/dns_configmap.go | 4 +- .../e2e/{ => network}/example_cluster_dns.go | 24 +- .../kubernetes/test/e2e/network/ingress.go | 213 +- .../test/e2e/network/network_policy.go | 102 +- .../kubernetes/test/e2e/network/networking.go | 60 +- .../kubernetes/test/e2e/network/proxy.go | 44 +- .../kubernetes/test/e2e/network/service.go | 95 +- .../test/e2e/network/service_latency.go | 20 +- .../test/e2e/network/serviceloadbalancers.go | 12 +- .../kubernetes/test/e2e/network/util_iperf.go | 1 + vendor/k8s.io/kubernetes/test/e2e/node/BUILD | 9 + .../kubernetes/test/e2e/{ => node}/events.go | 12 +- .../kubernetes/test/e2e/node/kubelet.go | 3 +- .../kubernetes/test/e2e/{ => node}/pod_gc.go | 13 +- .../kubernetes/test/e2e/{ => node}/pods.go | 8 +- .../test/e2e/{ => node}/pre_stop.go | 57 +- .../test/e2e/node/security_context.go | 7 +- .../kubernetes/test/e2e/{ => node}/ssh.go | 4 +- .../kubernetes/test/e2e/scalability/BUILD | 4 +- .../test/e2e/scalability/density.go | 129 +- .../kubernetes/test/e2e/scalability/empty.go | 2 +- .../kubernetes/test/e2e/scalability/load.go | 87 +- .../kubernetes/test/e2e/scheduling/BUILD | 11 +- .../equivalence_cache_predicates.go | 2 +- .../test/e2e/scheduling/limit_range.go | 300 + .../test/e2e/scheduling/nvidia-gpus.go | 44 +- .../test/e2e/scheduling/opaque_resource.go | 2 +- .../test/e2e/scheduling/predicates.go | 92 +- .../test/e2e/scheduling/rescheduler.go | 2 +- .../e2e/{ => scheduling}/resource_quota.go | 224 +- .../test/e2e/servicecatalog/podpreset.go | 8 +- .../k8s.io/kubernetes/test/e2e/storage/BUILD | 10 +- .../k8s.io/kubernetes/test/e2e/storage/OWNERS | 2 + .../test/e2e/storage/empty_dir_wrapper.go | 20 +- .../kubernetes/test/e2e/storage/flexvolume.go | 14 +- .../k8s.io/kubernetes/test/e2e/storage/pd.go | 873 +- .../storage/persistent_volumes-disruptive.go | 6 +- .../e2e/storage/persistent_volumes-local.go | 20 +- .../test/e2e/storage/persistent_volumes.go | 5 +- .../test/e2e/storage/pv_reclaimpolicy.go | 57 + .../test/e2e/storage/volume_metrics.go | 80 +- .../test/e2e/storage/volume_provisioning.go | 5 +- .../kubernetes/test/e2e/storage/volumes.go | 92 +- .../test/e2e/storage/vsphere_scale.go | 247 + .../test/e2e/storage/vsphere_statefulsets.go | 156 + .../test/e2e/storage/vsphere_stress.go | 185 + .../test/e2e/storage/vsphere_utils.go | 108 +- .../test/e2e/storage/vsphere_volume_fstype.go | 4 +- .../storage/vsphere_volume_master_restart.go | 146 + .../storage/vsphere_volume_node_poweroff.go | 197 + .../e2e/storage/vsphere_volume_ops_storm.go | 2 +- .../test/e2e/storage/vsphere_volume_perf.go | 255 + .../e2e/storage/vsphere_volume_vsan_policy.go | 2 +- .../testing-manifests/ingress/neg/ing.yaml} | 7 +- .../e2e/testing-manifests/ingress/neg/rc.yaml | 17 + .../testing-manifests/ingress/neg/svc.yaml | 15 + .../statefulset/cockroachdb/statefulset.yaml | 2 - .../statefulset/etcd/statefulset.yaml | 3 - .../statefulset/mysql-galera/statefulset.yaml | 2 - .../statefulset/nginx/service.yaml | 13 + .../statefulset/nginx/statefulset.yaml | 34 + .../statefulset/redis/statefulset.yaml | 2 - .../statefulset/zookeeper/statefulset.yaml | 2 - .../kubernetes/test/e2e/ui/dashboard.go | 4 +- .../k8s.io/kubernetes/test/e2e/upgrades/BUILD | 2 +- .../kubernetes/test/e2e/upgrades/apparmor.go | 2 +- .../test/e2e/upgrades/apps/daemonsets.go | 2 +- .../test/e2e/upgrades/apps/deployments.go | 178 +- .../test/e2e/upgrades/configmaps.go | 4 +- .../kubernetes/test/e2e/upgrades/ingress.go | 2 +- .../test/e2e/upgrades/kube_proxy_migration.go | 2 +- .../kubernetes/test/e2e/upgrades/secrets.go | 4 +- .../upgrades/storage/persistent_volumes.go | 2 +- .../kubernetes/test/e2e/upgrades/sysctl.go | 9 +- vendor/k8s.io/kubernetes/test/e2e_node/BUILD | 2 +- .../test/e2e_node/benchmark_util.go | 2 +- .../kubernetes/test/e2e_node/builder/build.go | 1 + .../test/e2e_node/critical_pod_test.go | 6 +- .../kubernetes/test/e2e_node/density_test.go | 8 +- .../kubernetes/test/e2e_node/docker_test.go | 6 +- .../kubernetes/test/e2e_node/docker_util.go | 2 +- .../test/e2e_node/garbage_collector_test.go | 10 +- .../k8s.io/kubernetes/test/e2e_node/gpus.go | 6 +- .../kubernetes/test/e2e_node/image_list.go | 7 +- .../kubernetes/test/e2e_node/jenkins/OWNERS | 6 + .../test/e2e_node/jenkins/README.md | 20 + .../cos-init-disable-live-restore.yaml | 23 + .../e2e_node/jenkins/cos-init-docker.yaml | 2 +- .../jenkins/cos-init-live-restore.yaml | 2 +- .../test/e2e_node/jenkins/gci-init-gpu.yaml | 2 +- .../test/e2e_node/jenkins/gci-init.yaml | 2 +- .../e2e_node/jenkins/ubuntu-init-docker.yaml | 2 +- .../test/e2e_node/memory_eviction_test.go | 10 +- .../test/e2e_node/mirror_pod_test.go | 18 +- .../e2e_node/node_container_manager_test.go | 2 +- .../e2e_node/node_problem_detector_linux.go | 16 +- .../e2e_node/pods_container_manager_test.go | 4 +- .../test/e2e_node/remote/node_e2e.go | 52 +- .../kubernetes/test/e2e_node/remote/utils.go | 2 +- .../test/e2e_node/resource_collector.go | 2 +- .../test/e2e_node/runtime_conformance_test.go | 32 +- .../test/e2e_node/security_context_test.go | 2 +- .../kubernetes/test/e2e_node/services/BUILD | 2 +- .../test/e2e_node/services/kubelet.go | 6 +- .../e2e_node/services/namespace_controller.go | 4 +- .../kubernetes/test/e2e_node/summary_test.go | 1 - .../kubernetes/test/e2e_node/system/BUILD | 9 +- .../test/e2e_node/system/docker_validator.go | 2 +- .../test/e2e_node/system/kernel_validator.go | 10 +- .../system/kernel_validator_helper.go | 23 + .../kubernetes/test/e2e_node/system/types.go | 42 - .../test/e2e_node/system/types_unix.go | 83 + .../test/e2e_node/system/types_windows.go | 60 + .../k8s.io/kubernetes/test/e2e_node/util.go | 5 +- .../coreos/cloud-configs/master.yaml | 142 - .../coreos/cloud-configs/node.yaml | 93 - .../user-guide/configmap/command-pod.yaml | 21 - .../user-guide/configmap/env-pod.yaml | 21 - .../user-guide/configmap/redis/redis-pod.yaml | 30 - .../user-guide/configmap/volume-pod.yaml | 20 - .../downward-api/volume/dapi-volume.yaml | 30 - .../environment-guide/backend-rc.yaml | 30 - .../environment-guide/backend-srv.yaml | 13 - .../user-guide/environment-guide/show-rc.yaml | 32 - .../environment-guide/show-srv.yaml | 15 - .../hpa-php-apache.yaml | 14 - .../logging-demo/synthetic_0_25lps.yaml | 30 - .../logging-demo/synthetic_10lps.yaml | 30 - .../user-guide/node-selection/pod.yaml | 13 - .../simpletest/namespace.json | 10 - .../persistent-volumes/simpletest/pod.yaml | 20 - .../simpletest/service.json | 19 - .../fixtures/doc-yaml/user-guide/pod.yaml | 12 - .../user-guide/replicaset/frontend.yaml | 42 - .../walkthrough/pod-nginx-with-label.yaml | 12 - .../user-guide/walkthrough/pod-nginx.yaml | 10 - .../user-guide/walkthrough/pod-redis.yaml | 14 - .../pod-with-http-healthcheck.yaml | 20 - .../walkthrough/replication-controller.yaml | 24 - .../user-guide/walkthrough/service.yaml | 16 - .../pkg/kubectl/cmd/apply/rc-args.yaml | 20 + .../cmd/apply/rc-lastapplied-args.yaml | 23 + .../kubectl/cmd/convert/appsdeployment.yaml | 13 + .../cmd/convert/extensionsdeployment.yaml | 13 + .../pkg/kubectl/cmd/convert/v1HPA.yaml | 12 + .../pkg/kubectl/cmd/convert/v2beta1HPA.yaml | 16 + .../kubectl/cmd/set/multi-resource-yaml.yaml | 33 + vendor/k8s.io/kubernetes/test/images/BUILD | 1 + vendor/k8s.io/kubernetes/test/images/Makefile | 2 +- .../test/images/pets/peer-finder/BASEIMAGE | 8 +- .../test/images/pets/peer-finder/VERSION | 2 +- .../images/pets/peer-finder/peer-finder.go | 21 +- .../images/pets/redis-installer/BASEIMAGE | 8 +- .../test/images/pets/redis-installer/VERSION | 2 +- .../images/pets/zookeeper-installer/BASEIMAGE | 8 +- .../images/pets/zookeeper-installer/VERSION | 2 +- .../test/images/resource-consumer/BASEIMAGE | 8 +- .../test/images/resource-consumer/VERSION | 2 +- .../test/images/serve-hostname/VERSION | 2 +- .../images/serve-hostname/serve_hostname.go | 12 +- .../kubernetes/test/images/webhook/BUILD | 44 + .../images/webhook/Dockerfile} | 16 +- .../kubernetes/test/images/webhook/Makefile | 20 + .../kubernetes/test/images/webhook/README.md | 51 + .../kubernetes/test/images/webhook/config.go | 51 + .../kubernetes/test/images/webhook/main.go | 216 + .../kubernetes/test/images/webhook/scheme.go | 36 + .../k8s.io/kubernetes/test/integration/BUILD | 2 + .../test/integration/apiserver/BUILD | 2 +- .../integration/apiserver/apiserver_test.go | 2 +- .../test/integration/apiserver/patch_test.go | 4 +- .../kubernetes/test/integration/auth/BUILD | 3 +- .../integration/auth/accessreview_test.go | 8 +- .../test/integration/auth/auth_test.go | 24 +- .../integration/auth/bootstraptoken_test.go | 2 +- .../test/integration/auth/node_test.go | 7 +- .../test/integration/auth/rbac_test.go | 5 +- .../kubernetes/test/integration/client/BUILD | 2 +- .../test/integration/client/client_test.go | 24 +- .../integration/configmap/configmap_test.go | 6 +- .../test/integration/daemonset/BUILD | 48 + .../test/integration/daemonset/OWNERS | 9 + .../integration/daemonset/daemonset_test.go | 395 + .../integration/daemonset}/main_test.go | 2 +- .../defaulttolerationseconds/BUILD | 2 +- .../defaulttolerationseconds_test.go | 2 +- .../test/integration/deployment/BUILD | 2 + .../integration/deployment/deployment_test.go | 511 +- .../test/integration/deployment/util.go | 217 +- .../kubernetes/test/integration/etcd/BUILD | 3 +- .../etcd/etcd_storage_path_test.go | 54 +- .../integration/evictions/evictions_test.go | 8 +- .../test/integration/framework/BUILD | 3 +- .../integration/framework/master_utils.go | 23 +- .../test/integration/framework/perf_utils.go | 4 +- .../garbage_collector_test.go | 47 +- .../kubernetes/test/integration/master/BUILD | 2 +- .../test/integration/master/master_test.go | 8 +- .../kubernetes/test/integration/quota/BUILD | 4 +- .../test/integration/quota/quota_test.go | 79 +- .../integration/replicaset/replicaset_test.go | 26 +- .../integration/replicationcontroller/BUILD | 7 +- .../replicationcontroller_test.go | 851 +- .../kubernetes/test/integration/scale/BUILD | 37 + .../test/integration/scale/scale_test.go | 236 + .../test/integration/scheduler/BUILD | 10 +- .../integration/scheduler/extender_test.go | 5 +- .../integration/scheduler/predicates_test.go | 27 +- .../integration/scheduler/scheduler_test.go | 246 +- .../test/integration/scheduler/taint_test.go | 1 + .../test/integration/scheduler/util.go | 16 +- .../test/integration/scheduler_perf/BUILD | 2 +- .../scheduler_perf/scheduler_test.go | 4 +- .../test/integration/scheduler_perf/util.go | 5 +- .../test/integration/secrets/secrets_test.go | 8 +- .../test/integration/serviceaccount/BUILD | 1 + .../serviceaccount/service_account_test.go | 65 +- .../storageclasses/storage_classes_test.go | 4 +- .../kubernetes/test/integration/utils.go | 2 +- .../kubernetes/test/integration/volume/BUILD | 2 +- .../volume/persistent_volumes_test.go | 8 +- .../test/kubemark/pre-existing/README.md | 2 +- .../kubernetes/test/soak/cauldron/BUILD | 2 +- .../kubernetes/test/soak/cauldron/cauldron.go | 2 +- .../test/soak/serve_hostnames/BUILD | 2 +- .../soak/serve_hostnames/serve_hostnames.go | 4 +- vendor/k8s.io/kubernetes/test/test_owners.csv | 69 - .../k8s.io/kubernetes/test/test_owners.json | 184 +- vendor/k8s.io/kubernetes/test/utils/BUILD | 2 +- .../kubernetes/test/utils/density_utils.go | 8 +- .../kubernetes/test/utils/deployment.go | 246 +- .../kubernetes/test/utils/image/manifest.go | 20 +- .../k8s.io/kubernetes/test/utils/pod_store.go | 4 +- .../k8s.io/kubernetes/test/utils/runners.go | 81 +- .../third_party/forked/golang/expansion/BUILD | 2 +- .../forked/golang/expansion/expand_test.go | 3 +- .../forked/gonum/graph/traverse/traverse.go | 4 +- .../gonum/graph/traverse/visit_depth_first.go | 2 +- .../kubectl/de_DE/LC_MESSAGES/k8s.po | 4 +- .../kubectl/default/LC_MESSAGES/k8s.po | 8 +- .../kubectl/en_US/LC_MESSAGES/k8s.po | 8 +- .../kubectl/it_IT/LC_MESSAGES/k8s.po | 4 +- .../translations/kubectl/template.pot | 4 +- 5017 files changed, 250686 insertions(+), 533837 deletions(-) create mode 100644 vendor/github.com/gogo/protobuf/io/uint32_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttypepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttypepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttypepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvaluepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvaluepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvaluepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeboth/bug_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeboth/t.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetestpb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeboth/uuid.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/bug_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/t.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetestpb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/uuid.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/bug_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/t.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetestpb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/uuid.go create mode 100644 vendor/github.com/gogo/protobuf/test/importduplicate/Makefile create mode 100644 vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.pb.go create mode 100644 vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.proto rename vendor/github.com/gogo/protobuf/test/{castvalue/combos/unsafeboth/mytypes.go => importduplicate/importduplicate_test.go} (89%) create mode 100644 vendor/github.com/gogo/protobuf/test/importduplicate/importduplicatepb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.pb.go rename vendor/github.com/gogo/protobuf/test/{castvalue/combos/unsafeunmarshaler/mytypes.go => importduplicate/proto/proto.proto} (80%) create mode 100644 vendor/github.com/gogo/protobuf/test/importduplicate/proto/protopb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.pb.go rename vendor/github.com/gogo/protobuf/test/{castvalue/combos/unsafemarshaler/mytypes.go => importduplicate/sortkeys/sortable.proto} (80%) create mode 100644 vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortablepb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/int64support/Makefile create mode 100644 vendor/github.com/gogo/protobuf/test/int64support/object.pb.go create mode 100644 vendor/github.com/gogo/protobuf/test/int64support/object.proto create mode 100644 vendor/github.com/gogo/protobuf/test/int64support/object_js.go create mode 100644 vendor/github.com/gogo/protobuf/test/int64support/object_js_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/int64support/objectpb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/issue312/Makefile create mode 100644 vendor/github.com/gogo/protobuf/test/issue312/events/Makefile create mode 100644 vendor/github.com/gogo/protobuf/test/issue312/events/events.pb.go create mode 100644 vendor/github.com/gogo/protobuf/test/issue312/events/events.proto create mode 100644 vendor/github.com/gogo/protobuf/test/issue312/events/eventspb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/issue312/issue312.pb.go create mode 100644 vendor/github.com/gogo/protobuf/test/issue312/issue312.proto create mode 100644 vendor/github.com/gogo/protobuf/test/issue322/Makefile create mode 100644 vendor/github.com/gogo/protobuf/test/issue322/issue322.pb.go create mode 100644 vendor/github.com/gogo/protobuf/test/issue322/issue322.proto create mode 100644 vendor/github.com/gogo/protobuf/test/issue322/issue322pb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/issue330/Makefile create mode 100644 vendor/github.com/gogo/protobuf/test/issue330/issue330.pb.go create mode 100644 vendor/github.com/gogo/protobuf/test/issue330/issue330.proto create mode 100644 vendor/github.com/gogo/protobuf/test/issue330/issue330pb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/issue330/type.go create mode 100644 vendor/github.com/gogo/protobuf/test/jsonpb-gogo/jsonpb_gogo_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/Makefile create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.pb.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.proto create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/mappb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.pb.go rename vendor/github.com/gogo/protobuf/test/{castvalue/combos/unsafeboth/castvalue.proto => mapdefaults/combos/marshaler/map.proto} (78%) create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/mappb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.pb.go rename vendor/github.com/gogo/protobuf/test/{castvalue/combos/unsafemarshaler/castvalue.proto => mapdefaults/combos/neither/map.proto} (81%) create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/mappb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.pb.go rename vendor/github.com/gogo/protobuf/test/{oneof3/combos/unsafemarshaler/one.proto => mapdefaults/combos/unmarshaler/map.proto} (77%) create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/mappb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/map.pb.go rename vendor/github.com/gogo/protobuf/test/{castvalue/combos/unsafeunmarshaler/castvalue.proto => mapdefaults/map.proto} (81%) create mode 100644 vendor/github.com/gogo/protobuf/test/mapdefaults/map_test.go.in delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2pb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2pb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2pb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/mixbench/.gitignore create mode 100644 vendor/github.com/gogo/protobuf/test/mixbench/oldmarshaler.txt create mode 100644 vendor/github.com/gogo/protobuf/test/mixbench/oldunmarshaler.txt delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/onepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/onepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/onepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/onepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/onepb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/onepb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/sizerconflict/doc.go create mode 100644 vendor/github.com/gogo/protobuf/test/stdtypes/concurrency_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/proto3_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3pb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/proto3_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3pb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/proto3_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3pb_test.go create mode 100644 vendor/github.com/gogo/protobuf/test/typedeclimport/Makefile create mode 100644 vendor/github.com/gogo/protobuf/test/typedeclimport/models.go create mode 100644 vendor/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.pb.go create mode 100644 vendor/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.proto create mode 100644 vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.pb.go create mode 100644 vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.proto create mode 100644 vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/typespb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/typespb_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.pb.go delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.proto delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types_test.go delete mode 100644 vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/typespb_test.go create mode 100644 vendor/github.com/imdario/mergo/CODE_OF_CONDUCT.md create mode 100644 vendor/github.com/imdario/mergo/issue17_test.go create mode 100644 vendor/github.com/imdario/mergo/issue23_test.go create mode 100644 vendor/github.com/imdario/mergo/issue38_test.go create mode 100644 vendor/github.com/spf13/cobra/args.go create mode 100644 vendor/github.com/spf13/cobra/args_test.go create mode 100644 vendor/github.com/spf13/cobra/cobra/README.md create mode 100644 vendor/github.com/spf13/cobra/doc/rest_docs.go create mode 100644 vendor/github.com/spf13/cobra/doc/rest_docs.md create mode 100644 vendor/github.com/spf13/cobra/doc/rest_docs_test.go create mode 100644 vendor/github.com/spf13/cobra/zsh_completions.go create mode 100644 vendor/github.com/spf13/cobra/zsh_completions_test.go create mode 100644 vendor/github.com/spf13/pflag/int16.go create mode 100644 vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion_test.go rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/BUILD (73%) rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/admission.go (70%) rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/admission_test.go (64%) rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/admissionreview.go (100%) create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/authentication.go create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/authentication_test.go create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/certs_test.go create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/config.go rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/doc.go (100%) rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/gencerts.sh (98%) rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/rules.go (100%) rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/rules_test.go (100%) rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/serviceresolver.go (79%) rename vendor/k8s.io/{kubernetes/plugin/pkg/admission => apiserver/pkg/admission/plugin/webhook}/webhook/serviceresolver_test.go (88%) create mode 100644 vendor/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/conversion.go create mode 100644 vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go create mode 100644 vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go create mode 100644 vendor/k8s.io/apiserver/pkg/endpoints/handlers/get.go create mode 100644 vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go create mode 100644 vendor/k8s.io/client-go/scale/BUILD create mode 100644 vendor/k8s.io/client-go/scale/client.go create mode 100644 vendor/k8s.io/client-go/scale/client_test.go create mode 100644 vendor/k8s.io/client-go/scale/doc.go create mode 100644 vendor/k8s.io/client-go/scale/fake/BUILD create mode 100644 vendor/k8s.io/client-go/scale/fake/client.go rename vendor/k8s.io/{kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/scale.go => client-go/scale/interfaces.go} (53%) rename vendor/k8s.io/{kubernetes/federation/test/integration/framework/util.go => client-go/scale/roundtrip_test.go} (58%) create mode 100644 vendor/k8s.io/client-go/scale/scheme/BUILD create mode 100644 vendor/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD create mode 100644 vendor/k8s.io/client-go/scale/scheme/autoscalingv1/conversion.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/autoscalingv1/register.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/doc.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/extensionsint/BUILD create mode 100644 vendor/k8s.io/client-go/scale/scheme/extensionsint/doc.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/extensionsint/register.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD create mode 100644 vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/conversion.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/register.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go rename vendor/k8s.io/{kubernetes/federation/apis/federation => client-go/scale/scheme}/register.go (90%) create mode 100644 vendor/k8s.io/client-go/scale/scheme/types.go create mode 100644 vendor/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go create mode 100644 vendor/k8s.io/client-go/scale/util.go rename vendor/k8s.io/{kubernetes/pkg/kubelet/util => client-go/util/certificate}/csr/BUILD (90%) rename vendor/k8s.io/{kubernetes/pkg/kubelet/util => client-go/util/certificate}/csr/csr.go (71%) rename vendor/k8s.io/{kubernetes/pkg/kubelet/util => client-go/util/certificate}/csr/csr_test.go (100%) create mode 100644 vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/controller.go create mode 100644 vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/controller_test.go create mode 100644 vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/fakes.go create mode 100644 vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/interfaces.go create mode 100644 vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/manager.go create mode 100644 vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/manager_test.go create mode 100644 vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/syncer.go create mode 100644 vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/syncer_test.go rename vendor/k8s.io/ingress-gce/pkg/{controller => tls}/tls.go (64%) create mode 100644 vendor/k8s.io/ingress-gce/pkg/utils/namer.go create mode 100644 vendor/k8s.io/ingress-gce/pkg/utils/namer_test.go create mode 100644 vendor/k8s.io/ingress-gce/pkg/utils/utils_test.go create mode 100644 vendor/k8s.io/kube-openapi/pkg/util/proto/doc.go rename vendor/k8s.io/{kubernetes/pkg/kubectl/cmd/util/openapi => kube-openapi/pkg/util/proto}/document.go (73%) create mode 100644 vendor/k8s.io/kube-openapi/pkg/util/proto/openapi.go create mode 100644 vendor/k8s.io/kube-openapi/pkg/util/proto/openapi_suite_test.go create mode 100644 vendor/k8s.io/kube-openapi/pkg/util/proto/openapi_test.go create mode 100644 vendor/k8s.io/kube-openapi/pkg/util/proto/testing/openapi.go create mode 100644 vendor/k8s.io/kube-openapi/pkg/util/proto/testing/swagger.json rename vendor/k8s.io/kubernetes/{federation/apis/swagger-spec/federation_v1beta1.json => api/swagger-spec/storage.k8s.io_v1alpha1.json} (86%) create mode 100644 vendor/k8s.io/kubernetes/build/openapi.bzl create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/podsecuritypolicies/calico-node-psp-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrole.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrolebinding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-role.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-rolebinding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-serviceaccount.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp-role.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/podsecuritypolicies/es-psp-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-role.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-role.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/ip-masq-agent/podsecuritypolicies/ip-masq-agent-psp-binding.yaml delete mode 100644 vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy-configmap.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/podsecuritypolicies/metadata-proxy-psp-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/node-problem-detector/podsecuritypolicies/npd-psp-binding.yaml delete mode 100644 vendor/k8s.io/kubernetes/cluster/addons/podsecuritypolicies/privileged.yaml rename vendor/k8s.io/kubernetes/cluster/addons/rbac/{ => kubelet-api-auth}/kube-apiserver-kubelet-api-admin-binding.yaml (100%) rename vendor/k8s.io/kubernetes/cluster/addons/rbac/{ => kubelet-api-auth}/kubelet-api-admin-role.yaml (100%) rename vendor/k8s.io/kubernetes/cluster/addons/rbac/{ => kubelet-cert-rotation}/kubelet-certificate-management.yaml (100%) create mode 100644 vendor/k8s.io/kubernetes/cluster/addons/rbac/legacy-kubelet-user-disable/kubelet-binding.yaml rename vendor/k8s.io/kubernetes/cluster/addons/rbac/{ => legacy-kubelet-user}/kubelet-binding.yaml (100%) create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/BUILD create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/README.md create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/kube-proxy-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/kube-system-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/node-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-binding.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-role.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/privileged-role.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/privileged.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon-role.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon.yaml create mode 100644 vendor/k8s.io/kubernetes/cluster/gce/gci/mounter/.gitignore delete mode 100755 vendor/k8s.io/kubernetes/cluster/gce/gci/mounter/mounter delete mode 100644 vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/lib/charms/kubernetes/flagmanager.py delete mode 100644 vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/lib/charms/kubernetes/flagmanager.py rename vendor/k8s.io/kubernetes/{hack/jenkins/build-federation.sh => cluster/kubernetes-anywhere/util.sh} (76%) rename vendor/k8s.io/kubernetes/cmd/hyperkube/{federation-controller-manager.go => cloud-controller-manager.go} (59%) delete mode 100644 vendor/k8s.io/kubernetes/cmd/hyperkube/federation-apiserver.go create mode 100644 vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/rbac.go delete mode 100644 vendor/k8s.io/kubernetes/cmd/kube-proxy/app/validation_test.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/core/v1/generated_expansion.go => cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults_unix.go} (77%) rename vendor/k8s.io/kubernetes/{pkg/kubelet/dockershim/errors/errors.go => cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults_windows.go} (77%) create mode 100644 vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/BUILD rename vendor/k8s.io/kubernetes/{staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1 => cmd/kubeadm/app/phases/etcd/spec}/doc.go (97%) create mode 100644 vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/spec.go create mode 100644 vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/zz_generated.deepcopy.go rename vendor/k8s.io/kubernetes/{plugin/cmd/kube-scheduler/app/configurator_test.go => cmd/kubeadm/app/preflight/checks_unix.go} (65%) create mode 100644 vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_windows.go rename vendor/k8s.io/kubernetes/docs/admin/{federation-apiserver.md => kubeadm.md} (100%) create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_all.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_kube-dns.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_kube-proxy.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_cluster-info.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-auto-approve.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-post-csrs.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_all.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_apiserver-kubelet-client.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_apiserver.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_ca.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_front-proxy-ca.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_front-proxy-client.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_sa.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_all.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_apiserver.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_controller-manager.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_scheduler.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_etcd.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_etcd_local.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_admin.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_all.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_controller-manager.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_kubelet.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_scheduler.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_user.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_mark-master.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight_master.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight_node.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_selfhosting.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_upload-config.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_completion.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_config.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload_from-file.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload_from-flags.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_view.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_init.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_join.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_reset.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_token.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_create.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_delete.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_generate.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_list.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade_apply.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade_plan.md create mode 100644 vendor/k8s.io/kubernetes/docs/admin/kubeadm_version.md create mode 100644 vendor/k8s.io/kubernetes/docs/api-reference/OWNERS rename vendor/k8s.io/kubernetes/{federation/docs/api-reference/federation/v1beta1 => docs/api-reference/storage.k8s.io/v1alpha1}/definitions.html (93%) rename vendor/k8s.io/kubernetes/{federation/docs/api-reference/federation/v1beta1 => docs/api-reference/storage.k8s.io/v1alpha1}/operations.html (93%) create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-all.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-kube-dns.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-kube-proxy.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-cluster-info.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-auto-approve.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-post-csrs.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-all.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-apiserver-kubelet-client.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-apiserver.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-ca.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-ca.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-client.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-sa.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-all.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-apiserver.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-controller-manager.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-scheduler.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-etcd-local.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-etcd.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-admin.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-all.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-controller-manager.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-kubelet.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-scheduler.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-user.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-mark-master.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight-master.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight-node.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-selfhosting-convert-from-staticpods.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-selfhosting.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-upload-config.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-completion.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload-from-file.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload-from-flags.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-view.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-init.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-join.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-reset.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-create.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-delete.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-generate.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-list.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade-apply.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade-plan.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-version.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubeadm.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubectl-alpha-diff.1 create mode 100644 vendor/k8s.io/kubernetes/docs/man/man1/kubectl-create-priorityclass.1 create mode 100644 vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_alpha.md create mode 100644 vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_alpha_diff.md create mode 100644 vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_create_priorityclass.md delete mode 100644 vendor/k8s.io/kubernetes/federation/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/Makefile delete mode 100644 vendor/k8s.io/kubernetes/federation/OWNERS delete mode 100644 vendor/k8s.io/kubernetes/federation/README.md delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/core/register.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/core/v1/conversion.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/core/v1/doc.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/annotations.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/install/install_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/types.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.proto delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/types.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/types_swagger_doc_generated.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.conversion.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.deepcopy.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/validation/validation.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/validation/validation_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/federation/zz_generated.deepcopy.go delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/openapi-spec/swagger.json delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/swagger-spec/api.json delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/swagger-spec/apis.json delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/swagger-spec/extensions.json delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/swagger-spec/extensions_v1beta1.json delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/swagger-spec/federation.json delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/swagger-spec/logs.json delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/swagger-spec/resourceListing.json delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/swagger-spec/v1.json delete mode 100644 vendor/k8s.io/kubernetes/federation/apis/swagger-spec/version.json delete mode 100644 vendor/k8s.io/kubernetes/federation/client/cache/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/client/cache/cluster_cache.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/clientset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/import_known_versions.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/horizontalpodautoscaler.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/fake_job.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/job.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/configmap.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/event.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_configmap.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_event.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_namespace.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_namespace_expansion.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_secret.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/namespace.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/namespace_expansion.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/secret.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/daemonset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/deployment_expansion.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/extensions_client.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_daemonset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_deployment_expansion.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_extensions_client.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_ingress.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/ingress.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/cluster.go delete mode 100644 vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/fake_cluster.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cluster/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cluster/common.sh delete mode 100755 vendor/k8s.io/kubernetes/federation/cluster/federation-down.sh delete mode 100755 vendor/k8s.io/kubernetes/federation/cluster/federation-up.sh delete mode 100755 vendor/k8s.io/kubernetes/federation/cluster/log-dump.sh delete mode 100755 vendor/k8s.io/kubernetes/federation/cluster/upgrade.sh delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/OWNERS delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/apiserver.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/autoscaling.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/batch.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/core.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/extensions.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/federation.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/install.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/options.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/validation.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/plugins.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/server.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/OWNERS delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/controllermanager.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/controllermanager_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options/options.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/plugins.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/controller-manager.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/genfeddocs/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/genfeddocs/gen_fed_docs.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/kubefed/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/kubefed/app/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/kubefed/app/kubefed.go delete mode 100644 vendor/k8s.io/kubernetes/federation/cmd/kubefed/kubefed.go delete mode 100644 vendor/k8s.io/kubernetes/federation/deploy/config.json.sample delete mode 100755 vendor/k8s.io/kubernetes/federation/deploy/deploy.sh delete mode 100644 vendor/k8s.io/kubernetes/federation/develop/BUILD delete mode 100755 vendor/k8s.io/kubernetes/federation/develop/develop.sh delete mode 100755 vendor/k8s.io/kubernetes/federation/develop/kubefed.sh delete mode 100644 vendor/k8s.io/kubernetes/federation/docs/api-reference/README.md delete mode 100755 vendor/k8s.io/kubernetes/federation/docs/api-reference/extensions/v1beta1/definitions.html delete mode 100755 vendor/k8s.io/kubernetes/federation/docs/api-reference/extensions/v1beta1/operations.html delete mode 100755 vendor/k8s.io/kubernetes/federation/docs/api-reference/v1/definitions.html delete mode 100755 vendor/k8s.io/kubernetes/federation/docs/api-reference/v1/operations.html delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/dns.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/dns_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/doc.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/plugins.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/interface.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/route53.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/route53_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrchangeset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrsets.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/zone.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/zones.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/coredns.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/coredns_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/interface.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrchangeset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrsets.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs/corednsapi.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/zone.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/zones.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/clouddns.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/clouddns_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/interface.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/change.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/changes_create_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/changes_service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/clouddns.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/interfaces.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zone.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zone_create_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_delete_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_get_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_list_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_list_response.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_list_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_list_response.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/change.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/changes_create_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/changes_service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/clouddns.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zone.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zone_create_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_delete_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_get_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_list_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_list_response.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_list_call.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_list_response.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrchangeset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrsets.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/zone.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/zones.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype/rrstype.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/tests/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/tests/commontests.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/adapter.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/configmap.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester/crudtester.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/daemonset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/deployment.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/hpa.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/hpa_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/namespace.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/qualifiedname.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/registry.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/replicaset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/scheduling.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/scheduling_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/secret.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/OWNERS delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/cluster_client.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/clustercontroller.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/clustercontroller_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/doc.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/ingress_controller.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/ingress_controller_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/jobcontroller.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/jobcontroller_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/dns.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/dns_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress/ingress.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/servicecontroller.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/servicecontroller_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/controller.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/controller_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/backoff.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/cluster_util.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/clusterselector.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/clusterselector_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/configmap.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/delaying_deliverer.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/delaying_deliverer_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper/deletion_helper.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deployment.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deployment_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/eventsink.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/eventsink_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_informer.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_informer_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_updater.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_updater_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/finalizers.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/finalizers_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/handlers.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/handlers_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/hpa.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/hpa_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/meta.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/meta_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/planner.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/planner_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/pod_helper.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/pod_helper_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/preferences.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/preferences_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/secret.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/test/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/test/test_helper.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/init.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/init_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/join.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/join_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/kubefed.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/testing/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/testing/testing.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/unjoin.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/unjoin_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/util/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/pkg/kubefed/util/util.go delete mode 100644 vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/admission.go delete mode 100644 vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/admission_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/merge_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/query.go delete mode 100644 vendor/k8s.io/kubernetes/federation/registry/cluster/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/etcd.go delete mode 100644 vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/etcd_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/registry/cluster/registry.go delete mode 100644 vendor/k8s.io/kubernetes/federation/registry/cluster/strategy.go delete mode 100644 vendor/k8s.io/kubernetes/federation/registry/cluster/strategy_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/OWNERS delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/README.md delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/apiserver.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/authn.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/crud.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/event.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/framework/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/framework/cluster.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/framework/crudtester.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/framework/framework.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/framework/util.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/ingress.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/job.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/namespace.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/replicaset.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/service.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/upgrade.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/simple.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/upgrade.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/e2e/util.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/integration/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/test/integration/OWNERS delete mode 100644 vendor/k8s.io/kubernetes/federation/test/integration/api_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/integration/crud_test.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/integration/framework/BUILD delete mode 100644 vendor/k8s.io/kubernetes/federation/test/integration/framework/api.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/integration/framework/controller.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/integration/framework/crudtester.go delete mode 100644 vendor/k8s.io/kubernetes/federation/test/integration/framework/federation.go create mode 100644 vendor/k8s.io/kubernetes/hack/import-restrictions.yaml create mode 100644 vendor/k8s.io/kubernetes/hack/lib/.gitattributes delete mode 100755 vendor/k8s.io/kubernetes/hack/make-rules/test-federation-cmd.sh delete mode 100644 vendor/k8s.io/kubernetes/hack/staging-import-restrictions.json rename vendor/k8s.io/kubernetes/{test/fixtures/doc-yaml/user-guide/new-nginx-deployment.yaml => hack/testdata/deployment-label-change1.yaml} (64%) rename vendor/k8s.io/kubernetes/{test/fixtures/doc-yaml/user-guide/nginx-deployment.yaml => hack/testdata/deployment-label-change2.yaml} (64%) delete mode 100755 vendor/k8s.io/kubernetes/hack/update-federation-api-reference-docs.sh delete mode 100755 vendor/k8s.io/kubernetes/hack/update-federation-generated-swagger-docs.sh delete mode 100755 vendor/k8s.io/kubernetes/hack/update-federation-openapi-spec.sh delete mode 100755 vendor/k8s.io/kubernetes/hack/update-federation-swagger-spec.sh delete mode 100755 vendor/k8s.io/kubernetes/hack/verify-federation-api-reference-docs.sh delete mode 100755 vendor/k8s.io/kubernetes/hack/verify-federation-generated-swagger-docs.sh delete mode 100755 vendor/k8s.io/kubernetes/hack/verify-federation-openapi-spec.sh delete mode 100755 vendor/k8s.io/kubernetes/hack/verify-federation-swagger-spec.sh rename vendor/k8s.io/kubernetes/hack/{verify-staging-imports.sh => verify-imports.sh} (93%) rename vendor/k8s.io/kubernetes/{federation/apis/core/install => pkg/api/legacyscheme}/BUILD (57%) create mode 100644 vendor/k8s.io/kubernetes/pkg/api/legacyscheme/scheme.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/api/v1/zz_generated.conversion.go rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/BUILD (60%) rename vendor/k8s.io/{api => kubernetes/pkg/apis}/core/OWNERS (90%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/annotation_key_constants.go (94%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/doc.go (91%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/field_constants.go (99%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/fuzzer/BUILD (90%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/fuzzer/fuzzer.go (58%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/helper/BUILD (83%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/helper/helpers.go (59%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/helper/helpers_test.go (72%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/helper/qos/BUILD (78%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/helper/qos/qos.go (82%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/install/BUILD (76%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/install/OWNERS (100%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/install/install.go (85%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/install/install_test.go (69%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/json.go (98%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/objectreference.go (98%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/register.go (67%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/resource.go (99%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/taint.go (98%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/taint_test.go (99%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/toleration.go (98%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/types.go (97%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/BUILD (69%) rename vendor/k8s.io/kubernetes/{staging/src/k8s.io/api/core => pkg/apis/core/v1}/OWNERS (76%) mode change 100644 => 100755 rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/conversion.go (69%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/conversion_test.go (53%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/defaults.go (96%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/defaults_test.go (99%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/doc.go (71%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/helper/BUILD (80%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/helper/helpers.go (99%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/helper/helpers_test.go (86%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/helper/qos/BUILD (74%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/helper/qos/qos.go (98%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/helper/qos/qos_test.go (94%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/register.go (100%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/validation/BUILD (83%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/validation/validation.go (98%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/validation/validation_test.go (100%) create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/v1/zz_generated.defaults.go (99%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/validation/BUILD (84%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/validation/OWNERS (100%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/validation/doc.go (90%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/validation/events.go (94%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/validation/events_test.go (81%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/validation/validation.go (84%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/validation/validation_test.go (60%) rename vendor/k8s.io/kubernetes/pkg/{api => apis/core}/zz_generated.deepcopy.go (77%) delete mode 100644 vendor/k8s.io/kubernetes/pkg/apis/meta/v1/BUILD delete mode 100644 vendor/k8s.io/kubernetes/pkg/apis/meta/v1/time.go create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/storage/util/util.go create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/storage/util/util_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/storage/v1/defaults_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/doc.go create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/register.go create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/zz_generated.conversion.go create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/zz_generated.defaults.go create mode 100644 vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/defaults_test.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/externaladmissionhookconfiguration.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_externaladmissionhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_mutatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_validatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/mutatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/validatingwebhookconfiguration.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_scale_expansion.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_thirdpartyresource.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/scale_expansion.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/thirdpartyresource.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/fake_volumeattachment.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/volumeattachment.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/externaladmissionhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/mutatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/validatingwebhookconfiguration.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/thirdpartyresource.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/volumeattachment.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/externaladmissionhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/mutatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/validatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/expansion_generated.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/initializerconfiguration.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/scale.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/thirdpartyresource.go create mode 100644 vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/volumeattachment.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/kms.go create mode 100644 vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/clusterroleaggregation_controller.go create mode 100644 vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/clusterroleaggregation_controller_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_utils_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/controller/replication/conversion.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_utils_test.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/controller/resourcequota/replenishment_controller.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/controller/resourcequota/replenishment_controller_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_monitor.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/.import-restrictions create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/retain_keys_test.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cluster.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cluster_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/convert_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_priorityclass.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_priorityclass_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff_test.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/get.go rename vendor/k8s.io/kubernetes/pkg/kubectl/cmd/{ => resource}/get_test.go (83%) create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/doc.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_parse_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/OWNERS delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/errors.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/types.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/explain/OWNERS create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/history_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/pdb_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/priorityclass.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/priorityclass_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/scheme/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/scheme/install.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubectl/scheme/scheme.go rename vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/{v1alpha1 => v1alpha}/BUILD (98%) rename vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/{v1alpha1 => v1alpha}/api.pb.go (85%) rename vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/{v1alpha1 => v1alpha}/api.proto (91%) rename vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/{v1alpha1 => v1alpha}/constants.go (93%) create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/helpers.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/helpers_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_file.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_file_test.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler_stub.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/BUILD rename vendor/k8s.io/kubernetes/pkg/kubelet/{ => cm}/deviceplugin/OWNERS (84%) create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler_stub.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler_test.go rename vendor/k8s.io/kubernetes/pkg/kubelet/{ => cm}/deviceplugin/device_plugin_stub.go (99%) rename vendor/k8s.io/kubernetes/pkg/kubelet/{ => cm}/deviceplugin/endpoint.go (80%) rename vendor/k8s.io/kubernetes/pkg/kubelet/{ => cm}/deviceplugin/endpoint_test.go (90%) rename vendor/k8s.io/kubernetes/pkg/kubelet/{ => cm}/deviceplugin/manager.go (81%) rename vendor/k8s.io/kubernetes/pkg/kubelet/{ => cm}/deviceplugin/manager_test.go (92%) create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/pod_devices.go rename vendor/k8s.io/kubernetes/pkg/kubelet/{ => cm}/deviceplugin/types.go (82%) delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/BUILD delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/utils.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/utils_test.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/checkpoint_store.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/errors/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/logs.go rename vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/{kuberuntime_logs_test.go => logs/logs_test.go} (91%) create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/mount_pod.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/mount_pod_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni_others.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni_windows.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/fake_iptables_test.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/networks.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/networks_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/BUILD rename vendor/k8s.io/kubernetes/pkg/{client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_scale.go => kubelet/remote/fake/doc.go} (82%) create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/endpoint.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/endpoint_windows.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/fake_image_service.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/fake_runtime.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/remote/remote_runtime_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/util/store/BUILD rename vendor/k8s.io/kubernetes/pkg/{registry/admissionregistration/externaladmissionhookconfiguration => kubelet/util/store}/doc.go (79%) create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/util/store/filestore.go rename vendor/k8s.io/kubernetes/pkg/kubelet/{dockershim/checkpoint_store_test.go => util/store/filestore_test.go} (57%) create mode 100644 vendor/k8s.io/kubernetes/pkg/kubelet/util/store/store.go rename vendor/k8s.io/kubernetes/{federation/plugin/pkg/admission/schedulingpolicy/merge.go => pkg/kubelet/util/store/store_test.go} (51%) create mode 100644 vendor/k8s.io/kubernetes/pkg/printers/humanreadable_test.go rename vendor/k8s.io/kubernetes/{federation/apis/core => pkg/proxy/apis/kubeproxyconfig}/BUILD (57%) create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/OWNERS create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/doc.go create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/register.go create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme/scheme.go create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/types.go rename vendor/k8s.io/kubernetes/{federation/apis/federation => pkg/proxy/apis/kubeproxyconfig/v1alpha1}/BUILD (66%) create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/defaults.go rename vendor/k8s.io/kubernetes/{federation/apis/federation/v1beta1 => pkg/proxy/apis/kubeproxyconfig/v1alpha1}/doc.go (72%) rename vendor/k8s.io/kubernetes/{federation/apis/federation/v1beta1 => pkg/proxy/apis/kubeproxyconfig/v1alpha1}/register.go (86%) create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.conversion.go create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.deepcopy.go create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.defaults.go rename vendor/k8s.io/kubernetes/{federation/apis/federation => pkg/proxy/apis/kubeproxyconfig}/validation/BUILD (64%) rename vendor/k8s.io/kubernetes/{cmd/kube-proxy/app => pkg/proxy/apis/kubeproxyconfig/validation}/validation.go (62%) create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/validation_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/zz_generated.deepcopy.go create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/metrics/BUILD rename vendor/k8s.io/kubernetes/pkg/proxy/{iptables => metrics}/metrics.go (80%) create mode 100644 vendor/k8s.io/kubernetes/pkg/proxy/winkernel/OWNERS delete mode 100644 vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/configmap.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/replication_controllers.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/resource_quotas.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/secrets.go create mode 100644 vendor/k8s.io/kubernetes/pkg/quota/generic/configuration.go delete mode 100644 vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/strategy.go rename vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/{externaladmissionhookconfiguration => mutatingwebhookconfiguration}/BUILD (84%) create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/doc.go rename vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/{externaladmissionhookconfiguration => mutatingwebhookconfiguration}/storage/BUILD (83%) rename vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/{externaladmissionhookconfiguration => mutatingwebhookconfiguration}/storage/storage.go (72%) create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/strategy.go create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/doc.go rename vendor/k8s.io/kubernetes/{federation/test/e2e/upgrades => pkg/registry/admissionregistration/validatingwebhookconfiguration/storage}/BUILD (51%) create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/storage/storage.go create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/strategy.go create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/BUILD create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/doc.go rename vendor/k8s.io/kubernetes/{federation/registry/cluster/etcd => pkg/registry/storage/volumeattachment/storage}/BUILD (61%) create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/storage.go create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/storage_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/strategy.go create mode 100644 vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/strategy_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/util/file/file_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount.go create mode 100644 vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount_unsupported.go create mode 100644 vendor/k8s.io/kubernetes/pkg/util/netsh/netsh_test.go create mode 100644 vendor/k8s.io/kubernetes/pkg/volume/rbd/attacher.go delete mode 100644 vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/configurator.go delete mode 100644 vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/BUILD delete mode 100644 vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/options.go delete mode 100644 vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/options_test.go delete mode 100644 vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/certs_test.go create mode 100644 vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/scheduling_queue.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/api/LICENSE create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/api/README.md create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/doc.go rename vendor/k8s.io/kubernetes/{federation/apis/federation/v1beta1 => staging/src/k8s.io/api/storage/v1alpha1}/generated.pb.go (50%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/generated.proto rename vendor/k8s.io/kubernetes/staging/src/k8s.io/{apiextensions-apiserver/examples/client-go/apis/cr/v1 => api/storage/v1alpha1}/register.go (74%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/types.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/LICENSE create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/README.md delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/roundtrip_test.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/client.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/cr.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/controller.go create mode 100755 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/update-codegen.sh create mode 100755 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/verify-codegen.sh delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/main.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/register.go rename vendor/k8s.io/kubernetes/{federation/apis/core => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr}/v1/BUILD (73%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/register.go rename vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/{ => pkg}/apis/cr/v1/types.go (78%) rename vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/{ => pkg}/apis/cr/v1/zz_generated.deepcopy.go (74%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/clientset.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned}/doc.go (95%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/clientset_generated.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned}/fake/doc.go (100%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned}/fake/register.go (80%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned}/scheme/BUILD (55%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned}/scheme/doc.go (100%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned}/scheme/register.go (80%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/core => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr}/v1/BUILD (53%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/batch/v1/batch_client.go => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/cr_client.go} (63%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/autoscaling => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr}/v1/doc.go (100%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/example.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/autoscaling => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr}/v1/fake/BUILD (60%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/autoscaling => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr}/v1/fake/doc.go (100%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/fake_batch_client.go => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/fake_cr_client.go} (75%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/fake_example.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/batch => staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr}/v1/generated_expansion.go (94%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/example.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/factory.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/generic.go rename vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/{controller => pkg/client/informers/externalversions/internalinterfaces}/BUILD (59%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/example.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/expansion_generated.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/client-go_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/LICENSE create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/README.md create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go rename vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/{unstructured_test.go => unstructured_list_test.go} (55%) delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/cloner.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/deep_copy_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/waitgroup.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/waitgroup_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/LICENSE create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/README.md delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/external_admission_hook_manager.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go rename vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/{external_admission_hook_manager_test.go => validating_webhook_manager_test.go} (72%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/handler_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/metrics.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/metrics_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/authentication.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/authentication_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/client.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/kubeconfig.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/serviceresolver.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/serviceresolver_test.go rename vendor/k8s.io/kubernetes/{federation/pkg/federation-controller/util/hpa => staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors}/BUILD (50%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/errors.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/matcher.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/matcher_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/admissionreview.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/admission.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/admission_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/certs_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/doc.go create mode 100755 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/gencerts.sh create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/attributes.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/conversion_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/testutil_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/doc.go rename vendor/k8s.io/kubernetes/{federation/apis/federation => staging/src/k8s.io/apiserver/pkg/apis/example2}/install/BUILD (50%) rename vendor/k8s.io/kubernetes/{federation/apis/federation => staging/src/k8s.io/apiserver/pkg/apis/example2}/install/install.go (65%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/roundtrip_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/register.go rename vendor/k8s.io/kubernetes/{federation/apis/federation/v1beta1 => staging/src/k8s.io/apiserver/pkg/apis/example2/v1}/BUILD (83%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/conversion.go rename vendor/k8s.io/kubernetes/{federation/apis/federation/v1beta1 => staging/src/k8s.io/apiserver/pkg/apis/example2/v1}/defaults.go (86%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/generated.pb.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/generated.proto rename vendor/k8s.io/kubernetes/{federation/apis/core => staging/src/k8s.io/apiserver/pkg/apis/example2}/v1/register.go (75%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/types.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/types_swagger_doc_generated.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.deepcopy.go rename vendor/k8s.io/kubernetes/{federation/apis/federation/v1beta1 => staging/src/k8s.io/apiserver/pkg/apis/example2/v1}/zz_generated.defaults.go (98%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/zz_generated.deepcopy.go rename vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/{authz_test.go => builtin_test.go} (74%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/delete.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/get.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/waitgroup.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string_test.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/validatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/controllerrevision.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/deployment.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/replicaset.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/statefulset.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/thirdpartyresource.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/volumeattachment.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_externaladmissionhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_mutatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_validatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/validatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1 => staging/src/k8s.io/client-go/kubernetes/typed/apps/v1}/deployment.go (56%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1 => staging/src/k8s.io/client-go/kubernetes/typed/apps/v1}/fake/fake_deployment.go (60%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1 => staging/src/k8s.io/client-go/kubernetes/typed/apps/v1}/fake/fake_replicaset.go (60%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1 => staging/src/k8s.io/client-go/kubernetes/typed/apps/v1}/replicaset.go (56%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_thirdpartyresource.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/thirdpartyresource.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/batch/v1 => staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1}/BUILD (58%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1 => staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1}/doc.go (97%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/batch/v1 => staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1}/fake/BUILD (64%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/batch/v1 => staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1}/fake/doc.go (100%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/fake_federation_client.go => staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go} (73%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/generated_expansion.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/federation_client.go => staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go} (58%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/validatingwebhookconfiguration.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/controllerrevision.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/deployment.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/replicaset.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/statefulset.go delete mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/thirdpartyresource.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/expansion_generated.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/volumeattachment.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/client.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/client_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/fake/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/fake/client.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/interfaces.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/roundtrip_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/types.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/util.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/csr.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/csr_test.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/LICENSE create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/README.md rename vendor/k8s.io/kubernetes/{federation/pkg/federation-controller => staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2}/doc.go (73%) rename vendor/k8s.io/kubernetes/{federation/apis/core => staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2}/install/install.go (63%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/types.go rename vendor/k8s.io/kubernetes/{federation/apis/core/v1/defaults.go => staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/doc.go} (74%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/types.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.conversion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.deepcopy.go rename vendor/k8s.io/kubernetes/{federation/apis/core/v1/zz_generated.conversion.go => staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.defaults.go} (69%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/zz_generated.deepcopy.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/example2_client.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/core/v1 => staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion}/fake/doc.go (100%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/fake_autoscaling_client.go => staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_example2_client.go} (70%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_testtype.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/generated_expansion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/testtype.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/batch => staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2}/v1/doc.go (100%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/core/v1/core_client.go => staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/example2_client.go} (53%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1 => staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1}/fake/doc.go (100%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_core_client.go => staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_example2_client.go} (54%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_testtype.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/autoscaling => staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2}/v1/generated_expansion.go (92%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/testtype.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/v1/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/v1/testtype.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/internalversion/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/internalversion/testtype.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/internalversion/expansion_generated.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/internalversion/testtype.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/v1/expansion_generated.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/v1/testtype.go rename vendor/k8s.io/kubernetes/{federation/apis/federation => staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1}/doc.go (82%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/types.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/zz_generated.deepcopy.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/core => staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2}/v1/doc.go (100%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/autoscaling_client.go => staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/example2_client.go} (60%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1 => staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1}/fake/doc.go (100%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_example2_client.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_testtype.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1 => staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1}/generated_expansion.go (91%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/testtype.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/v1/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/v1/testtype.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/listers/example2/v1/expansion_generated.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/listers/example2/v1/testtype.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/LICENSE create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/README.md create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/README.md create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/LICENSE create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/README.md create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/docs/minikube-walkthrough.md create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Godeps.json create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Readme create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/LICENSE create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/OWNERS create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/README.md create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/artifacts/examples/crd.yaml create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/artifacts/examples/example-foo.yaml create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/controller.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/custom-boilerplate.go.txt create mode 100755 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/update-codegen.sh create mode 100755 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/verify-codegen.sh create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/main.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/types.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/zz_generated.deepcopy.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/clientset.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/clientset_generated.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/register.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/register.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1 => staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1}/BUILD (54%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1 => staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1}/doc.go (97%) rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1 => staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1}/fake/BUILD (60%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/doc.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/fake_foo.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/fake_samplecontroller_client.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/foo.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/generated_expansion.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/samplecontroller_client.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/factory.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/generic.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/foo.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/interface.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/expansion_generated.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/foo.go create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/BUILD create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal.go rename vendor/k8s.io/kubernetes/{federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/generated_expansion.go => staging/src/k8s.io/sample-controller/pkg/signals/signal_posix.go} (81%) create mode 100644 vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal_windows.go create mode 100644 vendor/k8s.io/kubernetes/test/conformance/BUILD create mode 100644 vendor/k8s.io/kubernetes/test/conformance/OWNERS create mode 100644 vendor/k8s.io/kubernetes/test/conformance/README.md rename vendor/k8s.io/kubernetes/{hack/federated-ginkgo-e2e.sh => test/conformance/conformance_test.sh} (50%) create mode 100644 vendor/k8s.io/kubernetes/test/conformance/testdata/OWNERS create mode 100755 vendor/k8s.io/kubernetes/test/conformance/testdata/conformance.txt create mode 100644 vendor/k8s.io/kubernetes/test/conformance/walk.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/apimachinery/certs.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/apimachinery/webhook.go rename vendor/k8s.io/kubernetes/test/e2e/{ => apps}/network_partition.go (94%) create mode 100644 vendor/k8s.io/kubernetes/test/e2e/auth/metadata_concealment.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/auth/pod_security_policy.go delete mode 100644 vendor/k8s.io/kubernetes/test/e2e/framework/federation_util.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/framework/psp_util.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/framework/timer/BUILD create mode 100644 vendor/k8s.io/kubernetes/test/e2e/framework/timer/timer.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/framework/timer/timer_test.go delete mode 100644 vendor/k8s.io/kubernetes/test/e2e/limit_range.go rename vendor/k8s.io/kubernetes/test/e2e/{ => network}/example_cluster_dns.go (89%) rename vendor/k8s.io/kubernetes/test/e2e/{ => node}/events.go (90%) rename vendor/k8s.io/kubernetes/test/e2e/{ => node}/pod_gc.go (85%) rename vendor/k8s.io/kubernetes/test/e2e/{ => node}/pods.go (97%) rename vendor/k8s.io/kubernetes/test/e2e/{ => node}/pre_stop.go (77%) rename vendor/k8s.io/kubernetes/test/e2e/{ => node}/ssh.go (98%) create mode 100644 vendor/k8s.io/kubernetes/test/e2e/scheduling/limit_range.go rename vendor/k8s.io/kubernetes/test/e2e/{ => scheduling}/resource_quota.go (79%) create mode 100644 vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_scale.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_statefulsets.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_stress.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_master_restart.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_node_poweroff.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_perf.go rename vendor/k8s.io/kubernetes/test/{fixtures/doc-yaml/user-guide/ingress.yaml => e2e/testing-manifests/ingress/neg/ing.yaml} (51%) create mode 100644 vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/rc.yaml create mode 100644 vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/svc.yaml create mode 100644 vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/nginx/service.yaml create mode 100644 vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/nginx/statefulset.yaml create mode 100644 vendor/k8s.io/kubernetes/test/e2e_node/jenkins/OWNERS create mode 100644 vendor/k8s.io/kubernetes/test/e2e_node/jenkins/README.md create mode 100644 vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-disable-live-restore.yaml create mode 100644 vendor/k8s.io/kubernetes/test/e2e_node/system/kernel_validator_helper.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e_node/system/types_unix.go create mode 100644 vendor/k8s.io/kubernetes/test/e2e_node/system/types_windows.go delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/getting-started-guides/coreos/cloud-configs/master.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/getting-started-guides/coreos/cloud-configs/node.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/command-pod.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/env-pod.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/redis/redis-pod.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/volume-pod.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/downward-api/volume/dapi-volume.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/backend-rc.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/backend-srv.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/show-rc.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/show-srv.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/logging-demo/synthetic_0_25lps.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/logging-demo/synthetic_10lps.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/node-selection/pod.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/namespace.json delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/pod.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/service.json delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/pod.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/replicaset/frontend.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-nginx-with-label.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-nginx.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-redis.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-with-http-healthcheck.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/replication-controller.yaml delete mode 100644 vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/service.yaml create mode 100644 vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/apply/rc-args.yaml create mode 100644 vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied-args.yaml create mode 100644 vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/appsdeployment.yaml create mode 100644 vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/extensionsdeployment.yaml create mode 100644 vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/v1HPA.yaml create mode 100644 vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/v2beta1HPA.yaml create mode 100644 vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml create mode 100644 vendor/k8s.io/kubernetes/test/images/webhook/BUILD rename vendor/k8s.io/kubernetes/{federation/develop/push-federation-images.sh => test/images/webhook/Dockerfile} (65%) mode change 100755 => 100644 create mode 100644 vendor/k8s.io/kubernetes/test/images/webhook/Makefile create mode 100644 vendor/k8s.io/kubernetes/test/images/webhook/README.md create mode 100644 vendor/k8s.io/kubernetes/test/images/webhook/config.go create mode 100644 vendor/k8s.io/kubernetes/test/images/webhook/main.go create mode 100644 vendor/k8s.io/kubernetes/test/images/webhook/scheme.go create mode 100644 vendor/k8s.io/kubernetes/test/integration/daemonset/BUILD create mode 100755 vendor/k8s.io/kubernetes/test/integration/daemonset/OWNERS create mode 100644 vendor/k8s.io/kubernetes/test/integration/daemonset/daemonset_test.go rename vendor/k8s.io/kubernetes/{federation/test/integration => test/integration/daemonset}/main_test.go (97%) create mode 100644 vendor/k8s.io/kubernetes/test/integration/scale/BUILD create mode 100644 vendor/k8s.io/kubernetes/test/integration/scale/scale_test.go diff --git a/glide.lock b/glide.lock index ec3ba192f..3e94107a6 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ hash: 7845ab3f3640d4a97f6291b96c52cfb67ba5dd895263c08108f4c6f09335d62f -updated: 2017-10-25T23:10:58.198078773-07:00 +updated: 2017-11-15T15:56:11.467086867-08:00 imports: - name: cloud.google.com/go version: 3b1ae45394a234c385be014e9a488f2bb6eef821 @@ -36,7 +36,7 @@ imports: - name: github.com/go-openapi/swag version: f3f9494671f93fcff853e3c6e9e948b3eb71e590 - name: github.com/gogo/protobuf - version: c0656edd0d9eab7c66d1eb0c568f9039345796f7 + version: 616a82ed12d78d24d4839363e8f3c5d3f20627cf subpackages: - proto - sortkeys @@ -79,7 +79,7 @@ imports: - name: github.com/howeyc/gopass version: bf9dde6d0d2c004a008c27aaee91170c786f6db8 - name: github.com/imdario/mergo - version: 6633656539c1639d9d78127b7d47c622b5d7b6dc + version: 7fe0c75c13abdee74b09fcacef5ea1c6bba6a874 - name: github.com/inconshreveable/mousetrap version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 - name: github.com/json-iterator/go @@ -124,25 +124,36 @@ imports: - name: github.com/PuerkitoBio/urlesc version: 5bd2802263f21d8788851d5305584c82a5c75d7e - name: github.com/spf13/cobra - version: 715f41bd7a70b5111f898b71ab484da52ee6266d + version: 2da4a54c5ceefcee7ca5dd0eea1e18a3b6366489 - name: github.com/spf13/pflag - version: e57e3eeb33f795204c1ca35f56c44f83227c6e66 + version: 4c012f6dcd9546820e378d0bdda4d8fc772cdfea - name: golang.org/x/crypto version: 81e90905daefcd6fd217b62423c0908922eadb30 subpackages: + - bcrypt + - blowfish + - curve25519 + - ed25519 + - ed25519/internal/edwards25519 - nacl/secretbox + - pkcs12 + - pkcs12/internal/rc2 - poly1305 - salsa20/salsa + - ssh - ssh/terminal - name: golang.org/x/net version: 1c05540f6879653db88113bc4a2b70aec4bd491f subpackages: - context - context/ctxhttp + - html + - html/atom - http2 - http2/hpack - idna - lex/httplex + - websocket - name: golang.org/x/oauth2 version: a6bd8cefa1811bd24b86f8902872e4e8225f74c4 subpackages: @@ -172,7 +183,6 @@ imports: - name: google.golang.org/api version: 654f863362977d69086620b5f72f13e911da2410 subpackages: - - cloudkms/v1 - compute/v0.alpha - compute/v0.beta - compute/v1 @@ -181,7 +191,7 @@ imports: - googleapi - googleapi/internal/uritemplates - name: google.golang.org/appengine - version: a2e0dc829727a4f957a7428b1f322805cfc1f362 + version: 9d8544a6b2c7df9cff240fcf92d7b2f59bc13416 subpackages: - internal - internal/app_identity @@ -205,7 +215,7 @@ imports: - name: gopkg.in/yaml.v2 version: 53feefa2559fb8dfa8d81baad31be332c97d6c77 - name: k8s.io/api - version: 409c3b2393cd3359f275bd8b883b4d9c5aec41f6 + version: 218912509d74a117d05a718bb926d0948e531c20 subpackages: - admissionregistration/v1alpha1 - apps/v1 @@ -233,11 +243,11 @@ imports: - storage/v1 - storage/v1beta1 - name: k8s.io/apiextensions-apiserver - version: 83f1a7e2b8384c17fb102b6616e08825ad12992d + version: 51a1910459f074162eb4e25233e461fe91e99405 subpackages: - pkg/features - name: k8s.io/apimachinery - version: e9a29eff7d472df0f7da9ead5ab59b74e74a07ec + version: 18a564baac720819100827c16fdebcadb05b2d0d subpackages: - pkg/api/equality - pkg/api/errors @@ -288,21 +298,15 @@ imports: - third_party/forked/golang/json - third_party/forked/golang/reflect - name: k8s.io/apiserver - version: d299c880c4e33854f8c45bdd7ab599fb54cbe575 + version: 7001bc4df8883d4a0ec84cd4b2117655a0009b6c subpackages: - pkg/authentication/authenticator - pkg/authentication/serviceaccount - pkg/authentication/user - pkg/features - - pkg/server/options/encryptionconfig - - pkg/storage/value - - pkg/storage/value/encrypt/aes - - pkg/storage/value/encrypt/envelope - - pkg/storage/value/encrypt/identity - - pkg/storage/value/encrypt/secretbox - pkg/util/feature - name: k8s.io/client-go - version: 076e344c86e52f088b78615f815b245f6d613537 + version: 72e1c2a1ef30b3f8da039e92d4a6a1f079f374e8 subpackages: - discovery - discovery/fake @@ -360,9 +364,11 @@ imports: - kubernetes/typed/storage/v1beta1 - kubernetes/typed/storage/v1beta1/fake - pkg/version + - plugin/pkg/client/auth/gcp - rest - rest/watch - testing + - third_party/forked/golang/template - tools/auth - tools/cache - tools/clientcmd @@ -379,32 +385,37 @@ imports: - util/flowcontrol - util/homedir - util/integer + - util/jsonpath - util/retry - name: k8s.io/ingress-gce - version: 6cad689da446bfc6367df62ceb340b606e91753e + version: 6dcd1bf359213b975b621de07e4f9000a82724d6 subpackages: + - pkg/annotations - pkg/backends + - pkg/firewalls - pkg/healthchecks - pkg/instances - pkg/loadbalancers - pkg/storage - pkg/utils - name: k8s.io/kube-openapi - version: 868f2f29720b192240e18284659231b440f9cda5 + version: 61b46af70dfed79c6d24530cd23b41440a7f22a5 subpackages: - pkg/common - name: k8s.io/kubernetes - version: 7d59b2d3384379a4a7e2f6ba69fde11b9d74bfef + version: 5f43fc8c8d82e059ed764b1b3faee580e555358f subpackages: - - pkg/api - - pkg/api/helper - - pkg/api/install + - pkg/api/legacyscheme - pkg/api/service - - pkg/api/v1 - - pkg/api/v1/helper - pkg/api/v1/pod - pkg/api/v1/service - - pkg/api/validation + - pkg/apis/autoscaling + - pkg/apis/core + - pkg/apis/core/helper + - pkg/apis/core/install + - pkg/apis/core/v1 + - pkg/apis/core/v1/helper + - pkg/apis/core/validation - pkg/apis/extensions - pkg/apis/networking - pkg/capabilities @@ -427,6 +438,7 @@ imports: - pkg/util/pointer - pkg/util/taints - pkg/util/version + - pkg/version - pkg/volume - pkg/volume/util - name: k8s.io/utils diff --git a/vendor/github.com/gogo/protobuf/.travis.yml b/vendor/github.com/gogo/protobuf/.travis.yml index 5ac9a939e..7f69fba09 100644 --- a/vendor/github.com/gogo/protobuf/.travis.yml +++ b/vendor/github.com/gogo/protobuf/.travis.yml @@ -1,7 +1,7 @@ env: - PROTOBUF_VERSION=2.6.1 - PROTOBUF_VERSION=3.0.2 - - PROTOBUF_VERSION=3.2.0 + - PROTOBUF_VERSION=3.4.0 before_install: - ./install-protobuf.sh @@ -10,15 +10,11 @@ before_install: script: - PATH=/home/travis/bin:$PATH make buildserverall - echo $TRAVIS_GO_VERSION - - if [ "$TRAVIS_GO_VERSION" == 1.8 ] && [[ "$PROTOBUF_VERSION" == 3.2.0 ]]; then ! git status --porcelain | read || (git status; git diff; exit 1); fi + - if [ "$TRAVIS_GO_VERSION" == 1.9 ] && [[ "$PROTOBUF_VERSION" == 3.4.0 ]]; then ! git status --porcelain | read || (git status; git diff; exit 1); fi language: go go: - - 1.6.3 - - 1.7.1 - - 1.8 + - 1.8.3 + - 1.9 -matrix: - allow_failures: - - go: 1.6.3 diff --git a/vendor/github.com/gogo/protobuf/AUTHORS b/vendor/github.com/gogo/protobuf/AUTHORS index 2eaf4d53a..3d97fc7a2 100644 --- a/vendor/github.com/gogo/protobuf/AUTHORS +++ b/vendor/github.com/gogo/protobuf/AUTHORS @@ -10,5 +10,6 @@ # Please keep the list sorted. +Sendgrid, Inc Vastech SA (PTY) LTD Walter Schulze diff --git a/vendor/github.com/gogo/protobuf/CONTRIBUTORS b/vendor/github.com/gogo/protobuf/CONTRIBUTORS index 84a85b1e8..b1abc4d30 100644 --- a/vendor/github.com/gogo/protobuf/CONTRIBUTORS +++ b/vendor/github.com/gogo/protobuf/CONTRIBUTORS @@ -1,4 +1,5 @@ Anton Povarov +Brian Goff Clayton Coleman Denis Smirnov DongYun Kang @@ -10,9 +11,12 @@ John Shahid John Tuley Laurent Patrick Lee +Roger Johansson +Sam Nguyen Sergio Arbeo Stephen J Day Tamir Duberstein Todd Eisenberger Tormod Erevik Lea +Vyacheslav Kim Walter Schulze diff --git a/vendor/github.com/gogo/protobuf/Makefile b/vendor/github.com/gogo/protobuf/Makefile index 0dcb4ab71..1d9ad1f56 100644 --- a/vendor/github.com/gogo/protobuf/Makefile +++ b/vendor/github.com/gogo/protobuf/Makefile @@ -83,10 +83,12 @@ regenerate: make -C test/oneof regenerate make -C test/oneof3 regenerate make -C test/theproto3 regenerate + make -C test/mapdefaults regenerate make -C test/mapsproto2 regenerate make -C test/issue42order regenerate make -C proto generate-test-pbs make -C test/importdedup regenerate + make -C test/importduplicate regenerate make -C test/custombytesnonstruct regenerate make -C test/required regenerate make -C test/casttype regenerate @@ -109,14 +111,19 @@ regenerate: make -C test/issue260 regenerate make -C test/issue261 regenerate make -C test/issue262 regenerate + make -C test/issue312 regenerate make -C test/enumdecl regenerate make -C test/typedecl_all regenerate make -C test/enumdecl_all regenerate + make -C test/int64support regenerate + make -C test/issue322 regenerate + make -C test/issue330 regenerate make gofmt tests: go build ./test/enumprefix go test ./... + (cd test/stdtypes && make test) vet: go vet ./... @@ -138,15 +145,16 @@ testall: make tests bench: + go get golang.org/x/tools/cmd/benchcmp (cd test/mixbench && go build .) - (cd test/mixbench && ./mixbench) + ./test/mixbench/mixbench contributors: git log --format='%aN <%aE>' | sort -fu > CONTRIBUTORS js: -ifeq (go1.8, $(findstring go1.8, $(GO_VERSION))) - go get github.com/gopherjs/gopherjs +ifeq (go1.9, $(findstring go1.9, $(GO_VERSION))) + go get -u github.com/gopherjs/gopherjs gopherjs build github.com/gogo/protobuf/protoc-gen-gogo endif diff --git a/vendor/github.com/gogo/protobuf/README b/vendor/github.com/gogo/protobuf/README index 0ad513633..035426df5 100644 --- a/vendor/github.com/gogo/protobuf/README +++ b/vendor/github.com/gogo/protobuf/README @@ -25,7 +25,7 @@ To use this software, you must: for details or, if you are using gccgo, follow the instructions at https://golang.org/doc/install/gccgo - Grab the code from the repository and install the proto package. - The simplest way is to run `go get -u github.com/golang/protobuf/{proto,protoc-gen-go}`. + The simplest way is to run `go get -u github.com/golang/protobuf/protoc-gen-go`. The compiler plugin, protoc-gen-go, will be installed in $GOBIN, defaulting to $GOPATH/bin. It must be in your $PATH for the protocol compiler, protoc, to find it. @@ -118,12 +118,12 @@ for a protocol buffer variable v: When the .proto file specifies `syntax="proto3"`, there are some differences: - Non-repeated fields of non-message type are values instead of pointers. - - Getters are only generated for message and oneof fields. - Enum types do not get an Enum method. Consider file test.proto, containing ```proto + syntax = "proto2"; package example; enum FOO { X = 17; }; diff --git a/vendor/github.com/gogo/protobuf/Readme.md b/vendor/github.com/gogo/protobuf/Readme.md index e97bb1ba3..613a98f64 100644 --- a/vendor/github.com/gogo/protobuf/Readme.md +++ b/vendor/github.com/gogo/protobuf/Readme.md @@ -38,14 +38,19 @@ These projects use gogoprotobuf: - docker swarmkit - sample proto file - nats.io - go-nats-streaming - tidb - Communication between tidb and tikv - - protoactor-go - vanity command that also generates actors from service definitions - -Please lets us know if you are using gogoprotobuf by posting on our GoogleGroup. + - protoactor-go - vanity command that also generates actors from service definitions + - containerd - vanity command with custom field names that conforms to the golang convention. + - nakama + - proteus + - carbonzipper stack + - SendGrid + +Please let us know if you are using gogoprotobuf by posting on our GoogleGroup. ### Mentioned - Cloudflare - go serialization talk - Albert Strasheim - - gophercon + - GopherCon 2014 Writing High Performance Databases in Go by Ben Johnson - alecthomas' go serialization benchmarks ## Getting Started @@ -59,10 +64,10 @@ After that you can choose: ### Installation -To install it, you must first have Go (at least version 1.6.3) installed (see [http://golang.org/doc/install](http://golang.org/doc/install)). Go 1.7.1 and 1.8 are continuously tested. +To install it, you must first have Go (at least version 1.6.3) installed (see [http://golang.org/doc/install](http://golang.org/doc/install)). Go 1.8.3 and 1.9 are continuously tested. Next, install the standard protocol buffer implementation from [https://github.com/google/protobuf](https://github.com/google/protobuf). -Most versions from 2.3.1 should not give any problems, but 2.6.1, 3.0.2 and 3.2.0 are continuously tested. +Most versions from 2.3.1 should not give any problems, but 2.6.1, 3.0.2 and 3.4.0 are continuously tested. ### Speed @@ -93,7 +98,7 @@ Installing any of these binaries is easy. Simply run: go get github.com/gogo/protobuf/{binary} go get github.com/gogo/protobuf/gogoproto -These binaries allow you to using gogoprotobuf [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md). +These binaries allow you to use gogoprotobuf [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md). ### Most Speed and most customization diff --git a/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.pb.go b/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.pb.go index 59b429b5d..49c6fb329 100644 --- a/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.pb.go +++ b/vendor/github.com/gogo/protobuf/_conformance/conformance_proto/conformance.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: conformance_proto/conformance.proto -// DO NOT EDIT! /* Package conformance is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/extensions.md b/vendor/github.com/gogo/protobuf/extensions.md index 891359ac7..35dfee16f 100644 --- a/vendor/github.com/gogo/protobuf/extensions.md +++ b/vendor/github.com/gogo/protobuf/extensions.md @@ -20,8 +20,8 @@ See [BenchComparison](https://github.com/gogo/protobuf/blob/master/bench.md) for sizerMessageboolif true, a Size method is generated for the specific messagefalse unmarshaler Message bool if true, an Unmarshal method is generated for the specific message false protosizerMessageboolif true, a ProtoSize method is generated for the specific messagefalse - unsafe_marshaler Message bool if true, a Marshal and MarshalTo method is generated for the specific message. The generated code uses the unsafe package and is not compatible with big endian CPUs. false -unsafe_unmarshaler Message bool if true, an Unmarshal method is generated for the specific message. The generated code uses the unsafe package and is not compatible with big endian CPUs. false + unsafe_marshaler (deprecated) Message bool if true, a Marshal and MarshalTo method is generated. false +unsafe_unmarshaler (deprecated) Message bool if true, an Unmarshal method is generated. false stable_marshaler Message bool if true, a Marshal and MarshalTo method is generated for the specific message, but unlike marshaler the output is guaranteed to be deterministic, at the sacrifice of some speed false typedecl (beta) Message bool if false, type declaration of the message is excluded from the generated output. Requires the marshaler and unmarshaler to be generated. true @@ -69,6 +69,7 @@ The enumprefix, getters and stringer extensions can be used to remove some of th goproto_enum_stringer (experimental) Enum bool if false, the enum is generated without the default string method, this is useful for rather using enum_stringer true goproto_extensions_map (beta) Message bool if false, the extensions field is generated as type []byte instead of type map[int32]proto.Extension true goproto_unrecognized (beta) Message bool if false, XXX_unrecognized field is not generated. This is useful to reduce GC pressure at the cost of losing information about unrecognized fields. true + goproto_registration (beta) File bool if true, the generated files will register all messages and types against both gogo/protobuf and golang/protobuf. This is necessary when using third-party packages which read registrations from golang/protobuf (such as the grpc-gateway). false # Less Typing @@ -80,7 +81,7 @@ Helper methods, functions and interfaces can be generated by triggering certain - + diff --git a/vendor/github.com/gogo/protobuf/gogoproto/Makefile b/vendor/github.com/gogo/protobuf/gogoproto/Makefile index 02f9c62c2..0b4659b73 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/Makefile +++ b/vendor/github.com/gogo/protobuf/gogoproto/Makefile @@ -28,7 +28,7 @@ regenerate: go install github.com/gogo/protobuf/protoc-gen-gogo - protoc --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. --proto_path=../../../../:../protobuf/:. *.proto + protoc --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:../../../../ --proto_path=../../../../:../protobuf/:. *.proto restore: cp gogo.pb.golden gogo.pb.go diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go index 9506b6fb2..5765acb15 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go +++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: gogo.proto -// DO NOT EDIT! /* Package gogoproto is a generated protocol buffer package. @@ -724,81 +723,82 @@ func init() { func init() { proto.RegisterFile("gogo.proto", fileDescriptorGogo) } var fileDescriptorGogo = []byte{ - // 1201 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x98, 0xcb, 0x6f, 0x1c, 0x45, - 0x13, 0xc0, 0xf5, 0xe9, 0x73, 0x64, 0x6f, 0xf9, 0x85, 0xd7, 0xc6, 0x84, 0x08, 0x44, 0x72, 0xe3, - 0xe4, 0x9c, 0x22, 0x94, 0xb6, 0x22, 0xcb, 0xb1, 0x1c, 0x2b, 0x11, 0x06, 0x63, 0xe2, 0x00, 0xe2, - 0xb0, 0x9a, 0xdd, 0x6d, 0x4f, 0x06, 0x66, 0xa6, 0x87, 0x99, 0x9e, 0x28, 0xce, 0x0d, 0x85, 0x87, - 0x10, 0xe2, 0x8d, 0x04, 0x09, 0x49, 0x80, 0x03, 0xef, 0x67, 0x78, 0x1f, 0xb9, 0xf0, 0xb8, 0xf2, - 0x3f, 0x70, 0x01, 0xcc, 0xdb, 0x37, 0x5f, 0x50, 0xcd, 0x56, 0xcd, 0xf6, 0xac, 0x57, 0xea, 0xde, - 0xdb, 0xec, 0xba, 0x7f, 0xbf, 0xad, 0xa9, 0x9a, 0xae, 0xea, 0x31, 0x80, 0xaf, 0x7c, 0x35, 0x97, - 0xa4, 0x4a, 0xab, 0x7a, 0x0d, 0xaf, 0x8b, 0xcb, 0x03, 0x07, 0x7d, 0xa5, 0xfc, 0x50, 0x1e, 0x2e, - 0x3e, 0x35, 0xf3, 0xcd, 0xc3, 0x6d, 0x99, 0xb5, 0xd2, 0x20, 0xd1, 0x2a, 0xed, 0x2c, 0x16, 0x77, - 0xc1, 0x34, 0x2d, 0x6e, 0xc8, 0x38, 0x8f, 0x1a, 0x49, 0x2a, 0x37, 0x83, 0xf3, 0xf5, 0x5b, 0xe6, - 0x3a, 0xe4, 0x1c, 0x93, 0x73, 0xcb, 0x71, 0x1e, 0xdd, 0x9d, 0xe8, 0x40, 0xc5, 0xd9, 0xfe, 0xeb, - 0x3f, 0xff, 0xff, 0xe0, 0xff, 0x6e, 0x1f, 0x59, 0x9f, 0x22, 0x14, 0xff, 0xb6, 0x56, 0x80, 0x62, - 0x1d, 0x6e, 0xac, 0xf8, 0x32, 0x9d, 0x06, 0xb1, 0x2f, 0x53, 0x8b, 0xf1, 0x3b, 0x32, 0x4e, 0x1b, - 0xc6, 0x7b, 0x09, 0x15, 0x4b, 0x30, 0x3e, 0x88, 0xeb, 0x7b, 0x72, 0x8d, 0x49, 0x53, 0xb2, 0x02, - 0x93, 0x85, 0xa4, 0x95, 0x67, 0x5a, 0x45, 0xb1, 0x17, 0x49, 0x8b, 0xe6, 0x87, 0x42, 0x53, 0x5b, - 0x9f, 0x40, 0x6c, 0xa9, 0xa4, 0x84, 0x80, 0x11, 0xfc, 0xa6, 0x2d, 0x5b, 0xa1, 0xc5, 0xf0, 0x23, - 0x05, 0x52, 0xae, 0x17, 0x67, 0x60, 0x06, 0xaf, 0xcf, 0x79, 0x61, 0x2e, 0xcd, 0x48, 0x0e, 0xf5, - 0xf5, 0x9c, 0xc1, 0x65, 0x2c, 0xfb, 0xe9, 0xe2, 0x50, 0x11, 0xce, 0x74, 0x29, 0x30, 0x62, 0x32, - 0xaa, 0xe8, 0x4b, 0xad, 0x65, 0x9a, 0x35, 0xbc, 0xb0, 0x5f, 0x78, 0x27, 0x82, 0xb0, 0x34, 0x5e, - 0xda, 0xae, 0x56, 0x71, 0xa5, 0x43, 0x2e, 0x86, 0xa1, 0xd8, 0x80, 0x9b, 0xfa, 0x3c, 0x15, 0x0e, - 0xce, 0xcb, 0xe4, 0x9c, 0xd9, 0xf3, 0x64, 0xa0, 0x76, 0x0d, 0xf8, 0xfb, 0xb2, 0x96, 0x0e, 0xce, - 0xd7, 0xc8, 0x59, 0x27, 0x96, 0x4b, 0x8a, 0xc6, 0x53, 0x30, 0x75, 0x4e, 0xa6, 0x4d, 0x95, 0xc9, - 0x86, 0x7c, 0x24, 0xf7, 0x42, 0x07, 0xdd, 0x15, 0xd2, 0x4d, 0x12, 0xb8, 0x8c, 0x1c, 0xba, 0x8e, - 0xc2, 0xc8, 0xa6, 0xd7, 0x92, 0x0e, 0x8a, 0xab, 0xa4, 0x18, 0xc6, 0xf5, 0x88, 0x2e, 0xc2, 0x98, - 0xaf, 0x3a, 0xb7, 0xe4, 0x80, 0x5f, 0x23, 0x7c, 0x94, 0x19, 0x52, 0x24, 0x2a, 0xc9, 0x43, 0x4f, - 0xbb, 0x44, 0xf0, 0x3a, 0x2b, 0x98, 0x21, 0xc5, 0x00, 0x69, 0x7d, 0x83, 0x15, 0x99, 0x91, 0xcf, - 0x05, 0x18, 0x55, 0x71, 0xb8, 0xa5, 0x62, 0x97, 0x20, 0xde, 0x24, 0x03, 0x10, 0x82, 0x82, 0x79, - 0xa8, 0xb9, 0x16, 0xe2, 0xad, 0x6d, 0xde, 0x1e, 0x5c, 0x81, 0x15, 0x98, 0xe4, 0x06, 0x15, 0xa8, - 0xd8, 0x41, 0xf1, 0x36, 0x29, 0x26, 0x0c, 0x8c, 0x6e, 0x43, 0xcb, 0x4c, 0xfb, 0xd2, 0x45, 0xf2, - 0x0e, 0xdf, 0x06, 0x21, 0x94, 0xca, 0xa6, 0x8c, 0x5b, 0x67, 0xdd, 0x0c, 0xef, 0x72, 0x2a, 0x99, - 0x41, 0xc5, 0x12, 0x8c, 0x47, 0x5e, 0x9a, 0x9d, 0xf5, 0x42, 0xa7, 0x72, 0xbc, 0x47, 0x8e, 0xb1, - 0x12, 0xa2, 0x8c, 0xe4, 0xf1, 0x20, 0x9a, 0xf7, 0x39, 0x23, 0x06, 0x46, 0x5b, 0x2f, 0xd3, 0x5e, - 0x33, 0x94, 0x8d, 0x41, 0x6c, 0x1f, 0xf0, 0xd6, 0xeb, 0xb0, 0xab, 0xa6, 0x71, 0x1e, 0x6a, 0x59, - 0x70, 0xc1, 0x49, 0xf3, 0x21, 0x57, 0xba, 0x00, 0x10, 0x7e, 0x00, 0x6e, 0xee, 0x3b, 0x26, 0x1c, - 0x64, 0x1f, 0x91, 0x6c, 0xb6, 0xcf, 0xa8, 0xa0, 0x96, 0x30, 0xa8, 0xf2, 0x63, 0x6e, 0x09, 0xb2, - 0xc7, 0xb5, 0x06, 0x33, 0x79, 0x9c, 0x79, 0x9b, 0x83, 0x65, 0xed, 0x13, 0xce, 0x5a, 0x87, 0xad, - 0x64, 0xed, 0x34, 0xcc, 0x92, 0x71, 0xb0, 0xba, 0x7e, 0xca, 0x8d, 0xb5, 0x43, 0x6f, 0x54, 0xab, - 0xfb, 0x20, 0x1c, 0x28, 0xd3, 0x79, 0x5e, 0xcb, 0x38, 0x43, 0xa6, 0x11, 0x79, 0x89, 0x83, 0xf9, - 0x3a, 0x99, 0xb9, 0xe3, 0x2f, 0x97, 0x82, 0x55, 0x2f, 0x41, 0xf9, 0xfd, 0xb0, 0x9f, 0xe5, 0x79, - 0x9c, 0xca, 0x96, 0xf2, 0xe3, 0xe0, 0x82, 0x6c, 0x3b, 0xa8, 0x3f, 0xeb, 0x29, 0xd5, 0x86, 0x81, - 0xa3, 0xf9, 0x24, 0xdc, 0x50, 0x9e, 0x55, 0x1a, 0x41, 0x94, 0xa8, 0x54, 0x5b, 0x8c, 0x9f, 0x73, - 0xa5, 0x4a, 0xee, 0x64, 0x81, 0x89, 0x65, 0x98, 0x28, 0x3e, 0xba, 0x3e, 0x92, 0x5f, 0x90, 0x68, - 0xbc, 0x4b, 0x51, 0xe3, 0x68, 0xa9, 0x28, 0xf1, 0x52, 0x97, 0xfe, 0xf7, 0x25, 0x37, 0x0e, 0x42, - 0xa8, 0x71, 0xe8, 0xad, 0x44, 0xe2, 0xb4, 0x77, 0x30, 0x7c, 0xc5, 0x8d, 0x83, 0x19, 0x52, 0xf0, - 0x81, 0xc1, 0x41, 0xf1, 0x35, 0x2b, 0x98, 0x41, 0xc5, 0x3d, 0xdd, 0x41, 0x9b, 0x4a, 0x3f, 0xc8, - 0x74, 0xea, 0xe1, 0x6a, 0x8b, 0xea, 0x9b, 0xed, 0xea, 0x21, 0x6c, 0xdd, 0x40, 0xc5, 0x29, 0x98, - 0xec, 0x39, 0x62, 0xd4, 0x6f, 0xdb, 0x63, 0x5b, 0x95, 0x59, 0xe6, 0xf9, 0xa5, 0xf0, 0xd1, 0x1d, - 0x6a, 0x46, 0xd5, 0x13, 0x86, 0xb8, 0x13, 0xeb, 0x5e, 0x3d, 0x07, 0xd8, 0x65, 0x17, 0x77, 0xca, - 0xd2, 0x57, 0x8e, 0x01, 0xe2, 0x04, 0x8c, 0x57, 0xce, 0x00, 0x76, 0xd5, 0x63, 0xa4, 0x1a, 0x33, - 0x8f, 0x00, 0xe2, 0x08, 0x0c, 0xe1, 0x3c, 0xb7, 0xe3, 0x8f, 0x13, 0x5e, 0x2c, 0x17, 0xc7, 0x60, - 0x84, 0xe7, 0xb8, 0x1d, 0x7d, 0x82, 0xd0, 0x12, 0x41, 0x9c, 0x67, 0xb8, 0x1d, 0x7f, 0x92, 0x71, - 0x46, 0x10, 0x77, 0x4f, 0xe1, 0xb7, 0x4f, 0x0f, 0x51, 0x1f, 0xe6, 0xdc, 0xcd, 0xc3, 0x30, 0x0d, - 0x6f, 0x3b, 0xfd, 0x14, 0xfd, 0x38, 0x13, 0xe2, 0x0e, 0xd8, 0xe7, 0x98, 0xf0, 0x67, 0x08, 0xed, - 0xac, 0x17, 0x4b, 0x30, 0x6a, 0x0c, 0x6c, 0x3b, 0xfe, 0x2c, 0xe1, 0x26, 0x85, 0xa1, 0xd3, 0xc0, - 0xb6, 0x0b, 0x9e, 0xe3, 0xd0, 0x89, 0xc0, 0xb4, 0xf1, 0xac, 0xb6, 0xd3, 0xcf, 0x73, 0xd6, 0x19, - 0x11, 0x0b, 0x50, 0x2b, 0xfb, 0xaf, 0x9d, 0x7f, 0x81, 0xf8, 0x2e, 0x83, 0x19, 0x30, 0xfa, 0xbf, - 0x5d, 0xf1, 0x22, 0x67, 0xc0, 0xa0, 0x70, 0x1b, 0xf5, 0xce, 0x74, 0xbb, 0xe9, 0x25, 0xde, 0x46, - 0x3d, 0x23, 0x1d, 0xab, 0x59, 0xb4, 0x41, 0xbb, 0xe2, 0x65, 0xae, 0x66, 0xb1, 0x1e, 0xc3, 0xe8, - 0x1d, 0x92, 0x76, 0xc7, 0x2b, 0x1c, 0x46, 0xcf, 0x8c, 0x14, 0x6b, 0x50, 0xdf, 0x3b, 0x20, 0xed, - 0xbe, 0x57, 0xc9, 0x37, 0xb5, 0x67, 0x3e, 0x8a, 0xfb, 0x60, 0xb6, 0xff, 0x70, 0xb4, 0x5b, 0x2f, - 0xed, 0xf4, 0xbc, 0xce, 0x98, 0xb3, 0x51, 0x9c, 0xee, 0x76, 0x59, 0x73, 0x30, 0xda, 0xb5, 0x97, - 0x77, 0xaa, 0x8d, 0xd6, 0x9c, 0x8b, 0x62, 0x11, 0xa0, 0x3b, 0x93, 0xec, 0xae, 0x2b, 0xe4, 0x32, - 0x20, 0xdc, 0x1a, 0x34, 0x92, 0xec, 0xfc, 0x55, 0xde, 0x1a, 0x44, 0xe0, 0xd6, 0xe0, 0x69, 0x64, - 0xa7, 0xaf, 0xf1, 0xd6, 0x60, 0x44, 0xcc, 0xc3, 0x48, 0x9c, 0x87, 0x21, 0x3e, 0x5b, 0xf5, 0x5b, - 0xfb, 0x8c, 0x1b, 0x19, 0xb6, 0x19, 0xfe, 0x65, 0x97, 0x60, 0x06, 0xc4, 0x11, 0xd8, 0x27, 0xa3, - 0xa6, 0x6c, 0xdb, 0xc8, 0x5f, 0x77, 0xb9, 0x9f, 0xe0, 0x6a, 0xb1, 0x00, 0xd0, 0x79, 0x99, 0xc6, - 0x28, 0x6c, 0xec, 0x6f, 0xbb, 0x9d, 0xf7, 0x7a, 0x03, 0xe9, 0x0a, 0x8a, 0xb7, 0x71, 0x8b, 0x60, - 0xbb, 0x2a, 0x28, 0x5e, 0xc0, 0x8f, 0xc2, 0xf0, 0x43, 0x99, 0x8a, 0xb5, 0xe7, 0xdb, 0xe8, 0xdf, - 0x89, 0xe6, 0xf5, 0x98, 0xb0, 0x48, 0xa5, 0x52, 0x7b, 0x7e, 0x66, 0x63, 0xff, 0x20, 0xb6, 0x04, - 0x10, 0x6e, 0x79, 0x99, 0x76, 0xb9, 0xef, 0x3f, 0x19, 0x66, 0x00, 0x83, 0xc6, 0xeb, 0x87, 0xe5, - 0x96, 0x8d, 0xfd, 0x8b, 0x83, 0xa6, 0xf5, 0xe2, 0x18, 0xd4, 0xf0, 0xb2, 0xf8, 0x3f, 0x84, 0x0d, - 0xfe, 0x9b, 0xe0, 0x2e, 0x81, 0xbf, 0x9c, 0xe9, 0xb6, 0x0e, 0xec, 0xc9, 0xfe, 0x87, 0x2a, 0xcd, - 0xeb, 0xc5, 0x22, 0x8c, 0x66, 0xba, 0xdd, 0xce, 0xe9, 0x44, 0x63, 0xc1, 0xff, 0xdd, 0x2d, 0x5f, - 0x72, 0x4b, 0xe6, 0xf8, 0x21, 0x98, 0x6e, 0xa9, 0xa8, 0x17, 0x3c, 0x0e, 0x2b, 0x6a, 0x45, 0xad, - 0x15, 0xbb, 0xe8, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x9c, 0xec, 0xd8, 0x50, 0x13, 0x00, - 0x00, + // 1220 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x98, 0x4b, 0x6f, 0x1c, 0x45, + 0x10, 0x80, 0x85, 0x48, 0x14, 0x6f, 0xd9, 0x8e, 0xf1, 0xda, 0x98, 0x10, 0x81, 0x08, 0x9c, 0x38, + 0xd9, 0xa7, 0x08, 0xa5, 0xad, 0xc8, 0x72, 0x2c, 0xc7, 0x4a, 0x84, 0xc1, 0x98, 0x38, 0xbc, 0x0e, + 0xab, 0xd9, 0xdd, 0xf6, 0x78, 0x60, 0x66, 0x7a, 0x98, 0xe9, 0x89, 0xe2, 0xdc, 0x50, 0x78, 0x08, + 0x21, 0xde, 0x48, 0x90, 0x90, 0x04, 0x38, 0xf0, 0x7e, 0x86, 0xf7, 0x91, 0x0b, 0x8f, 0x2b, 0xff, + 0x81, 0x0b, 0x60, 0xde, 0xbe, 0xf9, 0x82, 0x6a, 0xb6, 0x6a, 0xb6, 0x67, 0xbd, 0x52, 0xf7, 0xde, + 0xc6, 0xeb, 0xfe, 0xbe, 0xad, 0xa9, 0x9a, 0xae, 0xea, 0x59, 0x00, 0x5f, 0xf9, 0x6a, 0x3a, 0x49, + 0x95, 0x56, 0xf5, 0x1a, 0x5e, 0x17, 0x97, 0x07, 0x0f, 0xf9, 0x4a, 0xf9, 0xa1, 0x9c, 0x29, 0xfe, + 0x6a, 0xe6, 0xeb, 0x33, 0x6d, 0x99, 0xb5, 0xd2, 0x20, 0xd1, 0x2a, 0xed, 0x2c, 0x16, 0x77, 0xc1, + 0x04, 0x2d, 0x6e, 0xc8, 0x38, 0x8f, 0x1a, 0x49, 0x2a, 0xd7, 0x83, 0xb3, 0xf5, 0x9b, 0xa6, 0x3b, + 0xe4, 0x34, 0x93, 0xd3, 0x8b, 0x71, 0x1e, 0xdd, 0x9d, 0xe8, 0x40, 0xc5, 0xd9, 0x81, 0xab, 0xbf, + 0x5c, 0x7b, 0xe8, 0x9a, 0xdb, 0x87, 0x56, 0xc7, 0x09, 0xc5, 0xff, 0xad, 0x14, 0xa0, 0x58, 0x85, + 0xeb, 0x2b, 0xbe, 0x4c, 0xa7, 0x41, 0xec, 0xcb, 0xd4, 0x62, 0xfc, 0x9e, 0x8c, 0x13, 0x86, 0xf1, + 0x5e, 0x42, 0xc5, 0x02, 0x8c, 0x0e, 0xe2, 0xfa, 0x81, 0x5c, 0x23, 0xd2, 0x94, 0x2c, 0xc1, 0x58, + 0x21, 0x69, 0xe5, 0x99, 0x56, 0x51, 0xec, 0x45, 0xd2, 0xa2, 0xf9, 0xb1, 0xd0, 0xd4, 0x56, 0xf7, + 0x23, 0xb6, 0x50, 0x52, 0x42, 0xc0, 0x10, 0x7e, 0xd2, 0x96, 0xad, 0xd0, 0x62, 0xf8, 0x89, 0x02, + 0x29, 0xd7, 0x8b, 0xd3, 0x30, 0x89, 0xd7, 0x67, 0xbc, 0x30, 0x97, 0x66, 0x24, 0xb7, 0xf6, 0xf5, + 0x9c, 0xc6, 0x65, 0x2c, 0xfb, 0xf9, 0xfc, 0x9e, 0x22, 0x9c, 0x89, 0x52, 0x60, 0xc4, 0x64, 0x54, + 0xd1, 0x97, 0x5a, 0xcb, 0x34, 0x6b, 0x78, 0x61, 0xbf, 0xf0, 0x8e, 0x07, 0x61, 0x69, 0xbc, 0xb0, + 0x55, 0xad, 0xe2, 0x52, 0x87, 0x9c, 0x0f, 0x43, 0xb1, 0x06, 0x37, 0xf4, 0x79, 0x2a, 0x1c, 0x9c, + 0x17, 0xc9, 0x39, 0xb9, 0xeb, 0xc9, 0x40, 0xed, 0x0a, 0xf0, 0xe7, 0x65, 0x2d, 0x1d, 0x9c, 0xaf, + 0x93, 0xb3, 0x4e, 0x2c, 0x97, 0x14, 0x8d, 0x27, 0x61, 0xfc, 0x8c, 0x4c, 0x9b, 0x2a, 0x93, 0x0d, + 0xf9, 0x68, 0xee, 0x85, 0x0e, 0xba, 0x4b, 0xa4, 0x1b, 0x23, 0x70, 0x11, 0x39, 0x74, 0x1d, 0x81, + 0xa1, 0x75, 0xaf, 0x25, 0x1d, 0x14, 0x97, 0x49, 0xb1, 0x0f, 0xd7, 0x23, 0x3a, 0x0f, 0x23, 0xbe, + 0xea, 0xdc, 0x92, 0x03, 0x7e, 0x85, 0xf0, 0x61, 0x66, 0x48, 0x91, 0xa8, 0x24, 0x0f, 0x3d, 0xed, + 0x12, 0xc1, 0x1b, 0xac, 0x60, 0x86, 0x14, 0x03, 0xa4, 0xf5, 0x4d, 0x56, 0x64, 0x46, 0x3e, 0xe7, + 0x60, 0x58, 0xc5, 0xe1, 0xa6, 0x8a, 0x5d, 0x82, 0x78, 0x8b, 0x0c, 0x40, 0x08, 0x0a, 0x66, 0xa1, + 0xe6, 0x5a, 0x88, 0xb7, 0xb7, 0x78, 0x7b, 0x70, 0x05, 0x96, 0x60, 0x8c, 0x1b, 0x54, 0xa0, 0x62, + 0x07, 0xc5, 0x3b, 0xa4, 0xd8, 0x6f, 0x60, 0x74, 0x1b, 0x5a, 0x66, 0xda, 0x97, 0x2e, 0x92, 0x77, + 0xf9, 0x36, 0x08, 0xa1, 0x54, 0x36, 0x65, 0xdc, 0xda, 0x70, 0x33, 0xbc, 0xc7, 0xa9, 0x64, 0x06, + 0x15, 0x0b, 0x30, 0x1a, 0x79, 0x69, 0xb6, 0xe1, 0x85, 0x4e, 0xe5, 0x78, 0x9f, 0x1c, 0x23, 0x25, + 0x44, 0x19, 0xc9, 0xe3, 0x41, 0x34, 0x1f, 0x70, 0x46, 0x0c, 0x8c, 0xb6, 0x5e, 0xa6, 0xbd, 0x66, + 0x28, 0x1b, 0x83, 0xd8, 0x3e, 0xe4, 0xad, 0xd7, 0x61, 0x97, 0x4d, 0xe3, 0x2c, 0xd4, 0xb2, 0xe0, + 0x9c, 0x93, 0xe6, 0x23, 0xae, 0x74, 0x01, 0x20, 0xfc, 0x00, 0xdc, 0xd8, 0x77, 0x4c, 0x38, 0xc8, + 0x3e, 0x26, 0xd9, 0x54, 0x9f, 0x51, 0x41, 0x2d, 0x61, 0x50, 0xe5, 0x27, 0xdc, 0x12, 0x64, 0x8f, + 0x6b, 0x05, 0x26, 0xf3, 0x38, 0xf3, 0xd6, 0x07, 0xcb, 0xda, 0xa7, 0x9c, 0xb5, 0x0e, 0x5b, 0xc9, + 0xda, 0x29, 0x98, 0x22, 0xe3, 0x60, 0x75, 0xfd, 0x8c, 0x1b, 0x6b, 0x87, 0x5e, 0xab, 0x56, 0xf7, + 0x21, 0x38, 0x58, 0xa6, 0xf3, 0xac, 0x96, 0x71, 0x86, 0x4c, 0x23, 0xf2, 0x12, 0x07, 0xf3, 0x55, + 0x32, 0x73, 0xc7, 0x5f, 0x2c, 0x05, 0xcb, 0x5e, 0x82, 0xf2, 0xfb, 0xe1, 0x00, 0xcb, 0xf3, 0x38, + 0x95, 0x2d, 0xe5, 0xc7, 0xc1, 0x39, 0xd9, 0x76, 0x50, 0x7f, 0xde, 0x53, 0xaa, 0x35, 0x03, 0x47, + 0xf3, 0x09, 0xb8, 0xae, 0x3c, 0xab, 0x34, 0x82, 0x28, 0x51, 0xa9, 0xb6, 0x18, 0xbf, 0xe0, 0x4a, + 0x95, 0xdc, 0x89, 0x02, 0x13, 0x8b, 0xb0, 0xbf, 0xf8, 0xd3, 0xf5, 0x91, 0xfc, 0x92, 0x44, 0xa3, + 0x5d, 0x8a, 0x1a, 0x47, 0x4b, 0x45, 0x89, 0x97, 0xba, 0xf4, 0xbf, 0xaf, 0xb8, 0x71, 0x10, 0x42, + 0x8d, 0x43, 0x6f, 0x26, 0x12, 0xa7, 0xbd, 0x83, 0xe1, 0x6b, 0x6e, 0x1c, 0xcc, 0x90, 0x82, 0x0f, + 0x0c, 0x0e, 0x8a, 0x6f, 0x58, 0xc1, 0x0c, 0x2a, 0xee, 0xe9, 0x0e, 0xda, 0x54, 0xfa, 0x41, 0xa6, + 0x53, 0x0f, 0x57, 0x5b, 0x54, 0xdf, 0x6e, 0x55, 0x0f, 0x61, 0xab, 0x06, 0x2a, 0x4e, 0xc2, 0x58, + 0xcf, 0x11, 0xa3, 0x7e, 0xcb, 0x2e, 0xdb, 0xb2, 0xcc, 0x32, 0xcf, 0x2f, 0x85, 0x8f, 0x6d, 0x53, + 0x33, 0xaa, 0x9e, 0x30, 0xc4, 0x9d, 0x58, 0xf7, 0xea, 0x39, 0xc0, 0x2e, 0x3b, 0xbf, 0x5d, 0x96, + 0xbe, 0x72, 0x0c, 0x10, 0xc7, 0x61, 0xb4, 0x72, 0x06, 0xb0, 0xab, 0x1e, 0x27, 0xd5, 0x88, 0x79, + 0x04, 0x10, 0x87, 0x61, 0x0f, 0xce, 0x73, 0x3b, 0xfe, 0x04, 0xe1, 0xc5, 0x72, 0x71, 0x14, 0x86, + 0x78, 0x8e, 0xdb, 0xd1, 0x27, 0x09, 0x2d, 0x11, 0xc4, 0x79, 0x86, 0xdb, 0xf1, 0xa7, 0x18, 0x67, + 0x04, 0x71, 0xf7, 0x14, 0x7e, 0xf7, 0xcc, 0x1e, 0xea, 0xc3, 0x9c, 0xbb, 0x59, 0xd8, 0x47, 0xc3, + 0xdb, 0x4e, 0x3f, 0x4d, 0x5f, 0xce, 0x84, 0xb8, 0x03, 0xf6, 0x3a, 0x26, 0xfc, 0x59, 0x42, 0x3b, + 0xeb, 0xc5, 0x02, 0x0c, 0x1b, 0x03, 0xdb, 0x8e, 0x3f, 0x47, 0xb8, 0x49, 0x61, 0xe8, 0x34, 0xb0, + 0xed, 0x82, 0xe7, 0x39, 0x74, 0x22, 0x30, 0x6d, 0x3c, 0xab, 0xed, 0xf4, 0x0b, 0x9c, 0x75, 0x46, + 0xc4, 0x1c, 0xd4, 0xca, 0xfe, 0x6b, 0xe7, 0x5f, 0x24, 0xbe, 0xcb, 0x60, 0x06, 0x8c, 0xfe, 0x6f, + 0x57, 0xbc, 0xc4, 0x19, 0x30, 0x28, 0xdc, 0x46, 0xbd, 0x33, 0xdd, 0x6e, 0x7a, 0x99, 0xb7, 0x51, + 0xcf, 0x48, 0xc7, 0x6a, 0x16, 0x6d, 0xd0, 0xae, 0x78, 0x85, 0xab, 0x59, 0xac, 0xc7, 0x30, 0x7a, + 0x87, 0xa4, 0xdd, 0xf1, 0x2a, 0x87, 0xd1, 0x33, 0x23, 0xc5, 0x0a, 0xd4, 0x77, 0x0f, 0x48, 0xbb, + 0xef, 0x35, 0xf2, 0x8d, 0xef, 0x9a, 0x8f, 0xe2, 0x3e, 0x98, 0xea, 0x3f, 0x1c, 0xed, 0xd6, 0x0b, + 0xdb, 0x3d, 0xaf, 0x33, 0xe6, 0x6c, 0x14, 0xa7, 0xba, 0x5d, 0xd6, 0x1c, 0x8c, 0x76, 0xed, 0xc5, + 0xed, 0x6a, 0xa3, 0x35, 0xe7, 0xa2, 0x98, 0x07, 0xe8, 0xce, 0x24, 0xbb, 0xeb, 0x12, 0xb9, 0x0c, + 0x08, 0xb7, 0x06, 0x8d, 0x24, 0x3b, 0x7f, 0x99, 0xb7, 0x06, 0x11, 0xb8, 0x35, 0x78, 0x1a, 0xd9, + 0xe9, 0x2b, 0xbc, 0x35, 0x18, 0x11, 0xb3, 0x30, 0x14, 0xe7, 0x61, 0x88, 0xcf, 0x56, 0xfd, 0xe6, + 0x3e, 0xe3, 0x46, 0x86, 0x6d, 0x86, 0x7f, 0xdd, 0x21, 0x98, 0x01, 0x71, 0x18, 0xf6, 0xca, 0xa8, + 0x29, 0xdb, 0x36, 0xf2, 0xb7, 0x1d, 0xee, 0x27, 0xb8, 0x5a, 0xcc, 0x01, 0x74, 0x5e, 0xa6, 0x31, + 0x0a, 0x1b, 0xfb, 0xfb, 0x4e, 0xe7, 0xbd, 0xde, 0x40, 0xba, 0x82, 0xe2, 0x6d, 0xdc, 0x22, 0xd8, + 0xaa, 0x0a, 0x8a, 0x17, 0xf0, 0x23, 0xb0, 0xef, 0xe1, 0x4c, 0xc5, 0xda, 0xf3, 0x6d, 0xf4, 0x1f, + 0x44, 0xf3, 0x7a, 0x4c, 0x58, 0xa4, 0x52, 0xa9, 0x3d, 0x3f, 0xb3, 0xb1, 0x7f, 0x12, 0x5b, 0x02, + 0x08, 0xb7, 0xbc, 0x4c, 0xbb, 0xdc, 0xf7, 0x5f, 0x0c, 0x33, 0x80, 0x41, 0xe3, 0xf5, 0x23, 0x72, + 0xd3, 0xc6, 0xfe, 0xcd, 0x41, 0xd3, 0x7a, 0x71, 0x14, 0x6a, 0x78, 0x59, 0xfc, 0x0e, 0x61, 0x83, + 0xff, 0x21, 0xb8, 0x4b, 0xe0, 0x37, 0x67, 0xba, 0xad, 0x03, 0x7b, 0xb2, 0xff, 0xa5, 0x4a, 0xf3, + 0x7a, 0x31, 0x0f, 0xc3, 0x99, 0x6e, 0xb7, 0x73, 0x3a, 0xd1, 0x58, 0xf0, 0xff, 0x76, 0xca, 0x97, + 0xdc, 0x92, 0x39, 0xb6, 0x08, 0x13, 0x2d, 0x15, 0xf5, 0x82, 0xc7, 0x60, 0x49, 0x2d, 0xa9, 0x95, + 0x62, 0x17, 0x3d, 0x78, 0x9b, 0x1f, 0xe8, 0x8d, 0xbc, 0x39, 0xdd, 0x52, 0xd1, 0x0c, 0x1e, 0x35, + 0xbb, 0xbf, 0xa0, 0x95, 0x07, 0xcf, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xed, 0x5f, 0x6c, 0x20, + 0x74, 0x13, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto b/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto index fbca44cd4..7f0997935 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto +++ b/vendor/github.com/gogo/protobuf/gogoproto/gogo.proto @@ -33,6 +33,7 @@ import "google/protobuf/descriptor.proto"; option java_package = "com.google.protobuf"; option java_outer_classname = "GoGoProtos"; +option go_package = "github.com/gogo/protobuf/gogoproto"; extend google.protobuf.EnumOptions { optional bool goproto_enum_prefix = 62001; diff --git a/vendor/github.com/gogo/protobuf/install-protobuf.sh b/vendor/github.com/gogo/protobuf/install-protobuf.sh index 10c9320ea..fc40642e4 100755 --- a/vendor/github.com/gogo/protobuf/install-protobuf.sh +++ b/vendor/github.com/gogo/protobuf/install-protobuf.sh @@ -7,23 +7,26 @@ die() { exit 1 } +cd /home/travis + case "$PROTOBUF_VERSION" in 2*) basename=protobuf-$PROTOBUF_VERSION + wget https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/$basename.tar.gz + tar xzf $basename.tar.gz + cd protobuf-$PROTOBUF_VERSION + ./configure --prefix=/home/travis && make -j2 && make install ;; 3*) - basename=protobuf-cpp-$PROTOBUF_VERSION + basename=protoc-$PROTOBUF_VERSION-linux-x86_64 + wget https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/$basename.zip + unzip $basename.zip ;; *) die "unknown protobuf version: $PROTOBUF_VERSION" ;; esac -cd /home/travis -wget https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/$basename.tar.gz -tar xzf $basename.tar.gz -cd protobuf-$PROTOBUF_VERSION -./configure --prefix=/home/travis && make -j2 && make install diff --git a/vendor/github.com/gogo/protobuf/io/uint32.go b/vendor/github.com/gogo/protobuf/io/uint32.go index c3dad1ae7..fc43857dd 100644 --- a/vendor/github.com/gogo/protobuf/io/uint32.go +++ b/vendor/github.com/gogo/protobuf/io/uint32.go @@ -30,56 +30,68 @@ package io import ( "encoding/binary" - "github.com/gogo/protobuf/proto" "io" + + "github.com/gogo/protobuf/proto" ) +const uint32BinaryLen = 4 + func NewUint32DelimitedWriter(w io.Writer, byteOrder binary.ByteOrder) WriteCloser { - return &uint32Writer{w, byteOrder, nil} + return &uint32Writer{w, byteOrder, nil, make([]byte, uint32BinaryLen)} } func NewSizeUint32DelimitedWriter(w io.Writer, byteOrder binary.ByteOrder, size int) WriteCloser { - return &uint32Writer{w, byteOrder, make([]byte, size)} + return &uint32Writer{w, byteOrder, make([]byte, size), make([]byte, uint32BinaryLen)} } type uint32Writer struct { w io.Writer byteOrder binary.ByteOrder buffer []byte + lenBuf []byte } -func (this *uint32Writer) WriteMsg(msg proto.Message) (err error) { - var data []byte - if m, ok := msg.(marshaler); ok { - n, ok := getSize(m) - if !ok { - data, err = proto.Marshal(msg) - if err != nil { - return err - } - } - if n >= len(this.buffer) { - this.buffer = make([]byte, n) - } - _, err = m.MarshalTo(this.buffer) - if err != nil { - return err - } - data = this.buffer[:n] - } else { - data, err = proto.Marshal(msg) - if err != nil { - return err - } +func (this *uint32Writer) writeFallback(msg proto.Message) error { + data, err := proto.Marshal(msg) + if err != nil { + return err } + length := uint32(len(data)) - if err = binary.Write(this.w, this.byteOrder, &length); err != nil { + this.byteOrder.PutUint32(this.lenBuf, length) + if _, err = this.w.Write(this.lenBuf); err != nil { return err } _, err = this.w.Write(data) return err } +func (this *uint32Writer) WriteMsg(msg proto.Message) error { + m, ok := msg.(marshaler) + if !ok { + return this.writeFallback(msg) + } + + n, ok := getSize(m) + if !ok { + return this.writeFallback(msg) + } + + size := n + uint32BinaryLen + if size > len(this.buffer) { + this.buffer = make([]byte, size) + } + + this.byteOrder.PutUint32(this.buffer, uint32(n)) + if _, err := m.MarshalTo(this.buffer[uint32BinaryLen:]); err != nil { + return err + } + + _, err := this.w.Write(this.buffer[:size]) + return err +} + func (this *uint32Writer) Close() error { if closer, ok := this.w.(io.Closer); ok { return closer.Close() diff --git a/vendor/github.com/gogo/protobuf/io/uint32_test.go b/vendor/github.com/gogo/protobuf/io/uint32_test.go new file mode 100644 index 000000000..d837e4a93 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/io/uint32_test.go @@ -0,0 +1,38 @@ +package io_test + +import ( + "encoding/binary" + "io/ioutil" + "math/rand" + "testing" + "time" + + "github.com/gogo/protobuf/test" + example "github.com/gogo/protobuf/test/example" + + "github.com/gogo/protobuf/io" +) + +func BenchmarkUint32DelimWriterMarshaller(b *testing.B) { + w := io.NewUint32DelimitedWriter(ioutil.Discard, binary.BigEndian) + r := rand.New(rand.NewSource(time.Now().UnixNano())) + msg := example.NewPopulatedA(r, true) + + for i := 0; i < b.N; i++ { + if err := w.WriteMsg(msg); err != nil { + b.Fatal(err) + } + } +} + +func BenchmarkUint32DelimWriterFallback(b *testing.B) { + w := io.NewUint32DelimitedWriter(ioutil.Discard, binary.BigEndian) + r := rand.New(rand.NewSource(time.Now().UnixNano())) + msg := test.NewPopulatedNinOptNative(r, true) + + for i := 0; i < b.N; i++ { + if err := w.WriteMsg(msg); err != nil { + b.Fatal(err) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb.go index 6e268e9a1..57a3a9147 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb.go +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb.go @@ -44,6 +44,7 @@ import ( "errors" "fmt" "io" + "math" "reflect" "sort" "strconv" @@ -71,6 +72,47 @@ type Marshaler struct { // Whether to use the original (.proto) name for fields. OrigName bool + + // A custom URL resolver to use when marshaling Any messages to JSON. + // If unset, the default resolution strategy is to extract the + // fully-qualified type name from the type URL and pass that to + // proto.MessageType(string). + AnyResolver AnyResolver +} + +// AnyResolver takes a type URL, present in an Any message, and resolves it into +// an instance of the associated message. +type AnyResolver interface { + Resolve(typeUrl string) (proto.Message, error) +} + +func defaultResolveAny(typeUrl string) (proto.Message, error) { + // Only the part of typeUrl after the last slash is relevant. + mname := typeUrl + if slash := strings.LastIndex(mname, "/"); slash >= 0 { + mname = mname[slash+1:] + } + mt := proto.MessageType(mname) + if mt == nil { + return nil, fmt.Errorf("unknown message type %q", mname) + } + return reflect.New(mt.Elem()).Interface().(proto.Message), nil +} + +// JSONPBMarshaler is implemented by protobuf messages that customize the +// way they are marshaled to JSON. Messages that implement this should +// also implement JSONPBUnmarshaler so that the custom format can be +// parsed. +type JSONPBMarshaler interface { + MarshalJSONPB(*Marshaler) ([]byte, error) +} + +// JSONPBUnmarshaler is implemented by protobuf messages that customize +// the way they are unmarshaled from JSON. Messages that implement this +// should also implement JSONPBMarshaler so that the custom format can be +// produced. +type JSONPBUnmarshaler interface { + UnmarshalJSONPB(*Unmarshaler, []byte) error } // Marshal marshals a protocol buffer into JSON. @@ -90,6 +132,12 @@ func (m *Marshaler) MarshalToString(pb proto.Message) (string, error) { type int32Slice []int32 +var nonFinite = map[string]float64{ + `"NaN"`: math.NaN(), + `"Infinity"`: math.Inf(1), + `"-Infinity"`: math.Inf(-1), +} + // For sorting extensions ids to ensure stable output. func (s int32Slice) Len() int { return len(s) } func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } @@ -101,6 +149,31 @@ type isWkt interface { // marshalObject writes a struct to the Writer. func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent, typeURL string) error { + if jsm, ok := v.(JSONPBMarshaler); ok { + b, err := jsm.MarshalJSONPB(m) + if err != nil { + return err + } + if typeURL != "" { + // we are marshaling this object to an Any type + var js map[string]*json.RawMessage + if err = json.Unmarshal(b, &js); err != nil { + return fmt.Errorf("type %T produced invalid JSON: %v", v, err) + } + turl, err := json.Marshal(typeURL) + if err != nil { + return fmt.Errorf("failed to marshal type URL %q to JSON: %v", typeURL, err) + } + js["@type"] = (*json.RawMessage)(&turl) + if b, err = json.Marshal(js); err != nil { + return err + } + } + + out.write(string(b)) + return out.err + } + s := reflect.ValueOf(v).Elem() // Handle well-known types. @@ -127,8 +200,8 @@ func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent, typeU out.write(x) out.write(`s"`) return out.err - case "Struct": - // Let marshalValue handle the `fields` map. + case "Struct", "ListValue": + // Let marshalValue handle the `Struct.fields` map or the `ListValue.values` slice. // TODO: pass the correct Properties if needed. return m.marshalValue(out, &proto.Properties{}, s.Field(0), indent) case "Timestamp": @@ -179,9 +252,14 @@ func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent, typeU continue } + //this is not a protobuf field + if valueField.Tag.Get("protobuf") == "" && valueField.Tag.Get("protobuf_oneof") == "" { + continue + } + // IsNil will panic on most value kinds. switch value.Kind() { - case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: + case reflect.Chan, reflect.Func, reflect.Interface: if value.IsNil() { continue } @@ -209,6 +287,10 @@ func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent, typeU if value.Len() == 0 { continue } + case reflect.Map, reflect.Ptr, reflect.Slice: + if value.IsNil() { + continue + } } } @@ -307,16 +389,17 @@ func (m *Marshaler) marshalAny(out *errWriter, any proto.Message, indent string) turl := v.Field(0).String() val := v.Field(1).Bytes() - // Only the part of type_url after the last slash is relevant. - mname := turl - if slash := strings.LastIndex(mname, "/"); slash >= 0 { - mname = mname[slash+1:] + var msg proto.Message + var err error + if m.AnyResolver != nil { + msg, err = m.AnyResolver.Resolve(turl) + } else { + msg, err = defaultResolveAny(turl) } - mt := proto.MessageType(mname) - if mt == nil { - return fmt.Errorf("unknown message type %q", mname) + if err != nil { + return err } - msg := reflect.New(mt.Elem()).Interface().(proto.Message) + if err := proto.Unmarshal(val, msg); err != nil { return err } @@ -391,6 +474,12 @@ func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v refle v = reflect.Indirect(v) + // Handle nil pointer + if v.Kind() == reflect.Invalid { + out.write("null") + return out.err + } + // Handle repeated elements. if v.Kind() == reflect.Slice && v.Type().Elem().Kind() != reflect.Uint8 { out.write("[") @@ -571,6 +660,24 @@ func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v refle return out.err } + // Handle non-finite floats, e.g. NaN, Infinity and -Infinity. + if v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 { + f := v.Float() + var sval string + switch { + case math.IsInf(f, 1): + sval = `"Infinity"` + case math.IsInf(f, -1): + sval = `"-Infinity"` + case math.IsNaN(f): + sval = `"NaN"` + } + if sval != "" { + out.write(sval) + return out.err + } + } + // Default handling defers to the encoding/json library. b, err := json.Marshal(v.Interface()) if err != nil { @@ -593,6 +700,12 @@ type Unmarshaler struct { // Whether to allow messages to contain unknown fields, as opposed to // failing to unmarshal. AllowUnknownFields bool + + // A custom URL resolver to use when unmarshaling Any messages from JSON. + // If unset, the default resolution strategy is to extract the + // fully-qualified type name from the type URL and pass that to + // proto.MessageType(string). + AnyResolver AnyResolver } // UnmarshalNext unmarshals the next protocol buffer from a JSON object stream. @@ -642,38 +755,97 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe // Allocate memory for pointer fields. if targetType.Kind() == reflect.Ptr { + // If input value is "null" and target is a pointer type, then the field should be treated as not set + // UNLESS the target is structpb.Value, in which case it should be set to structpb.NullValue. + _, isJSONPBUnmarshaler := target.Interface().(JSONPBUnmarshaler) + if string(inputValue) == "null" && targetType != reflect.TypeOf(&types.Value{}) && !isJSONPBUnmarshaler { + return nil + } target.Set(reflect.New(targetType.Elem())) + return u.unmarshalValue(target.Elem(), inputValue, prop) } - // Handle well-known types. - if wkt, ok := target.Addr().Interface().(isWkt); ok { - switch wkt.XXX_WellKnownType() { + if jsu, ok := target.Addr().Interface().(JSONPBUnmarshaler); ok { + return jsu.UnmarshalJSONPB(u, []byte(inputValue)) + } + + // Handle well-known types that are not pointers. + if w, ok := target.Addr().Interface().(isWkt); ok { + switch w.XXX_WellKnownType() { case "DoubleValue", "FloatValue", "Int64Value", "UInt64Value", "Int32Value", "UInt32Value", "BoolValue", "StringValue", "BytesValue": - // "Wrappers use the same representation in JSON - // as the wrapped primitive type, except that null is allowed." - // encoding/json will turn JSON `null` into Go `nil`, - // so we don't have to do any extra work. return u.unmarshalValue(target.Field(0), inputValue, prop) case "Any": - return fmt.Errorf("unmarshaling Any not supported yet") - case "Duration": - ivStr := string(inputValue) - if ivStr == "null" { - target.Field(0).SetInt(0) - target.Field(1).SetInt(0) - return nil + // Use json.RawMessage pointer type instead of value to support pre-1.8 version. + // 1.8 changed RawMessage.MarshalJSON from pointer type to value type, see + // https://github.com/golang/go/issues/14493 + var jsonFields map[string]*json.RawMessage + if err := json.Unmarshal(inputValue, &jsonFields); err != nil { + return err + } + + val, ok := jsonFields["@type"] + if !ok || val == nil { + return errors.New("Any JSON doesn't have '@type'") + } + + var turl string + if err := json.Unmarshal([]byte(*val), &turl); err != nil { + return fmt.Errorf("can't unmarshal Any's '@type': %q", *val) + } + target.Field(0).SetString(turl) + + var m proto.Message + var err error + if u.AnyResolver != nil { + m, err = u.AnyResolver.Resolve(turl) + } else { + m, err = defaultResolveAny(turl) + } + if err != nil { + return err + } + + if _, ok := m.(isWkt); ok { + val, ok := jsonFields["value"] + if !ok { + return errors.New("Any JSON doesn't have 'value'") + } + + if err = u.unmarshalValue(reflect.ValueOf(m).Elem(), *val, nil); err != nil { + return fmt.Errorf("can't unmarshal Any nested proto %T: %v", m, err) + } + } else { + delete(jsonFields, "@type") + nestedProto, uerr := json.Marshal(jsonFields) + if uerr != nil { + return fmt.Errorf("can't generate JSON for Any's nested proto to be unmarshaled: %v", uerr) + } + + if err = u.unmarshalValue(reflect.ValueOf(m).Elem(), nestedProto, nil); err != nil { + return fmt.Errorf("can't unmarshal Any nested proto %T: %v", m, err) + } + } + + b, err := proto.Marshal(m) + if err != nil { + return fmt.Errorf("can't marshal proto %T into Any.Value: %v", m, err) } + target.Field(1).SetBytes(b) - unq, err := strconv.Unquote(ivStr) + return nil + case "Duration": + unq, err := strconv.Unquote(string(inputValue)) if err != nil { return err } + d, err := time.ParseDuration(unq) if err != nil { return fmt.Errorf("bad Duration: %v", err) } + ns := d.Nanoseconds() s := ns / 1e9 ns %= 1e9 @@ -681,24 +853,68 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe target.Field(1).SetInt(ns) return nil case "Timestamp": - ivStr := string(inputValue) - if ivStr == "null" { - target.Field(0).SetInt(0) - target.Field(1).SetInt(0) - return nil - } - - unq, err := strconv.Unquote(ivStr) + unq, err := strconv.Unquote(string(inputValue)) if err != nil { return err } + t, err := time.Parse(time.RFC3339Nano, unq) if err != nil { return fmt.Errorf("bad Timestamp: %v", err) } - target.Field(0).SetInt(int64(t.Unix())) + + target.Field(0).SetInt(t.Unix()) target.Field(1).SetInt(int64(t.Nanosecond())) return nil + case "Struct": + var m map[string]json.RawMessage + if err := json.Unmarshal(inputValue, &m); err != nil { + return fmt.Errorf("bad StructValue: %v", err) + } + target.Field(0).Set(reflect.ValueOf(map[string]*types.Value{})) + for k, jv := range m { + pv := &types.Value{} + if err := u.unmarshalValue(reflect.ValueOf(pv).Elem(), jv, prop); err != nil { + return fmt.Errorf("bad value in StructValue for key %q: %v", k, err) + } + target.Field(0).SetMapIndex(reflect.ValueOf(k), reflect.ValueOf(pv)) + } + return nil + case "ListValue": + var s []json.RawMessage + if err := json.Unmarshal(inputValue, &s); err != nil { + return fmt.Errorf("bad ListValue: %v", err) + } + + target.Field(0).Set(reflect.ValueOf(make([]*types.Value, len(s), len(s)))) + for i, sv := range s { + if err := u.unmarshalValue(target.Field(0).Index(i), sv, prop); err != nil { + return err + } + } + return nil + case "Value": + ivStr := string(inputValue) + if ivStr == "null" { + target.Field(0).Set(reflect.ValueOf(&types.Value_NullValue{})) + } else if v, err := strconv.ParseFloat(ivStr, 0); err == nil { + target.Field(0).Set(reflect.ValueOf(&types.Value_NumberValue{NumberValue: v})) + } else if v, err := strconv.Unquote(ivStr); err == nil { + target.Field(0).Set(reflect.ValueOf(&types.Value_StringValue{StringValue: v})) + } else if v, err := strconv.ParseBool(ivStr); err == nil { + target.Field(0).Set(reflect.ValueOf(&types.Value_BoolValue{BoolValue: v})) + } else if err := json.Unmarshal(inputValue, &[]json.RawMessage{}); err == nil { + lv := &types.ListValue{} + target.Field(0).Set(reflect.ValueOf(&types.Value_ListValue{ListValue: lv})) + return u.unmarshalValue(reflect.ValueOf(lv).Elem(), inputValue, prop) + } else if err := json.Unmarshal(inputValue, &map[string]json.RawMessage{}); err == nil { + sv := &types.Struct{} + target.Field(0).Set(reflect.ValueOf(&types.Value_StructValue{StructValue: sv})) + return u.unmarshalValue(reflect.ValueOf(sv).Elem(), inputValue, prop) + } else { + return fmt.Errorf("unrecognized type for Value %q", ivStr) + } + return nil } } @@ -751,7 +967,7 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe // Handle nested messages. if targetType.Kind() == reflect.Struct { - if target.CanAddr() { + if prop != nil && len(prop.CustomType) > 0 && target.CanAddr() { if m, ok := target.Addr().Interface().(interface { UnmarshalJSON([]byte) error }); ok { @@ -815,6 +1031,26 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe } } } + // Handle proto2 extensions. + if len(jsonFields) > 0 { + if ep, ok := target.Addr().Interface().(proto.Message); ok { + for _, ext := range proto.RegisteredExtensions(ep) { + name := fmt.Sprintf("[%s]", ext.Name) + raw, ok := jsonFields[name] + if !ok { + continue + } + delete(jsonFields, name) + nv := reflect.New(reflect.TypeOf(ext.ExtensionType).Elem()) + if err := u.unmarshalValue(nv.Elem(), raw, nil); err != nil { + return err + } + if err := proto.SetExtension(ep, ext, nv.Interface()); err != nil { + return err + } + } + } + } if !u.AllowUnknownFields && len(jsonFields) > 0 { // Pick any field to be the scapegoat. var f string @@ -858,11 +1094,13 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe if err := json.Unmarshal(inputValue, &slc); err != nil { return err } - len := len(slc) - target.Set(reflect.MakeSlice(targetType, len, len)) - for i := 0; i < len; i++ { - if err := u.unmarshalValue(target.Index(i), slc[i], prop); err != nil { - return err + if slc != nil { + l := len(slc) + target.Set(reflect.MakeSlice(targetType, l, l)) + for i := 0; i < l; i++ { + if err := u.unmarshalValue(target.Index(i), slc[i], prop); err != nil { + return err + } } } return nil @@ -874,37 +1112,39 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe if err := json.Unmarshal(inputValue, &mp); err != nil { return err } - target.Set(reflect.MakeMap(targetType)) - var keyprop, valprop *proto.Properties - if prop != nil { - // These could still be nil if the protobuf metadata is broken somehow. - // TODO: This won't work because the fields are unexported. - // We should probably just reparse them. - //keyprop, valprop = prop.mkeyprop, prop.mvalprop - } - for ks, raw := range mp { - // Unmarshal map key. The core json library already decoded the key into a - // string, so we handle that specially. Other types were quoted post-serialization. - var k reflect.Value - if targetType.Key().Kind() == reflect.String { - k = reflect.ValueOf(ks) - } else { - k = reflect.New(targetType.Key()).Elem() - if err := u.unmarshalValue(k, json.RawMessage(ks), keyprop); err != nil { - return err - } + if mp != nil { + target.Set(reflect.MakeMap(targetType)) + var keyprop, valprop *proto.Properties + if prop != nil { + // These could still be nil if the protobuf metadata is broken somehow. + // TODO: This won't work because the fields are unexported. + // We should probably just reparse them. + //keyprop, valprop = prop.mkeyprop, prop.mvalprop } + for ks, raw := range mp { + // Unmarshal map key. The core json library already decoded the key into a + // string, so we handle that specially. Other types were quoted post-serialization. + var k reflect.Value + if targetType.Key().Kind() == reflect.String { + k = reflect.ValueOf(ks) + } else { + k = reflect.New(targetType.Key()).Elem() + if err := u.unmarshalValue(k, json.RawMessage(ks), keyprop); err != nil { + return err + } + } - if !k.Type().AssignableTo(targetType.Key()) { - k = k.Convert(targetType.Key()) - } + if !k.Type().AssignableTo(targetType.Key()) { + k = k.Convert(targetType.Key()) + } - // Unmarshal map value. - v := reflect.New(targetType.Elem()).Elem() - if err := u.unmarshalValue(v, raw, valprop); err != nil { - return err + // Unmarshal map value. + v := reflect.New(targetType.Elem()).Elem() + if err := u.unmarshalValue(v, raw, valprop); err != nil { + return err + } + target.SetMapIndex(k, v) } - target.SetMapIndex(k, v) } return nil } @@ -916,6 +1156,15 @@ func (u *Unmarshaler) unmarshalValue(target reflect.Value, inputValue json.RawMe inputValue = inputValue[1 : len(inputValue)-1] } + // Non-finite numbers can be encoded as strings. + isFloat := targetType.Kind() == reflect.Float32 || targetType.Kind() == reflect.Float64 + if isFloat { + if num, ok := nonFinite[string(inputValue)]; ok { + target.SetFloat(num) + return nil + } + } + // Use the encoding/json for parsing other value types. return json.Unmarshal(inputValue, target.Addr().Interface()) } diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test.go index 5c859a144..8d585f2ed 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test.go +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test.go @@ -35,6 +35,7 @@ import ( "bytes" "encoding/json" "io" + "math" "reflect" "strings" "testing" @@ -305,6 +306,23 @@ var ( "value": "1.212s" } }` + + nonFinites = &pb.NonFinites{ + FNan: proto.Float32(float32(math.NaN())), + FPinf: proto.Float32(float32(math.Inf(1))), + FNinf: proto.Float32(float32(math.Inf(-1))), + DNan: proto.Float64(float64(math.NaN())), + DPinf: proto.Float64(float64(math.Inf(1))), + DNinf: proto.Float64(float64(math.Inf(-1))), + } + nonFinitesJSON = `{` + + `"fNan":"NaN",` + + `"fPinf":"Infinity",` + + `"fNinf":"-Infinity",` + + `"dNan":"NaN",` + + `"dPinf":"Infinity",` + + `"dNinf":"-Infinity"` + + `}` ) func init() { @@ -324,6 +342,7 @@ var marshalingTests = []struct { }{ {"simple flat object", marshaler, simpleObject, simpleObjectJSON}, {"simple pretty object", marshalerAllOptions, simpleObject, simpleObjectPrettyJSON}, + {"non-finite floats fields object", marshaler, nonFinites, nonFinitesJSON}, {"repeated fields flat object", marshaler, repeatsObject, repeatsObjectJSON}, {"repeated fields pretty object", marshalerAllOptions, repeatsObject, repeatsObjectPrettyJSON}, {"nested message/enum flat object", marshaler, complexObject, complexObjectJSON}, @@ -348,6 +367,9 @@ var marshalingTests = []struct { `{"rFunny":[1,2]}`}, {"empty value", marshaler, &pb.Simple3{}, `{}`}, {"empty value emitted", Marshaler{EmitDefaults: true}, &pb.Simple3{}, `{"dub":0}`}, + {"empty repeated emitted", Marshaler{EmitDefaults: true}, &pb.SimpleSlice3{}, `{"slices":[]}`}, + {"empty map emitted", Marshaler{EmitDefaults: true}, &pb.SimpleMap3{}, `{"stringy":{}}`}, + {"nested struct null", Marshaler{EmitDefaults: true}, &pb.SimpleNull3{}, `{"simple":null}`}, {"map", marshaler, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}, `{"nummy":{"1":2,"3":4}}`}, {"map", marshalerAllOptions, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}, nummyPrettyJSON}, {"map", marshaler, @@ -388,7 +410,32 @@ var marshalingTests = []struct { "two": {Kind: &types.Value_NullValue{NullValue: types.NULL_VALUE}}, }, }}, `{"st":{"one":"loneliest number","two":null}}`}, + {"empty ListValue", marshaler, &pb.KnownTypes{Lv: &types.ListValue{}}, `{"lv":[]}`}, + {"basic ListValue", marshaler, &pb.KnownTypes{Lv: &types.ListValue{Values: []*types.Value{ + {Kind: &types.Value_StringValue{StringValue: "x"}}, + {Kind: &types.Value_NullValue{}}, + {Kind: &types.Value_NumberValue{NumberValue: 3}}, + {Kind: &types.Value_BoolValue{BoolValue: true}}, + }}}, `{"lv":["x",null,3,true]}`}, {"Timestamp", marshaler, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: 14e8, Nanos: 21e6}}, `{"ts":"2014-05-13T16:53:20.021Z"}`}, + {"number Value", marshaler, &pb.KnownTypes{Val: &types.Value{Kind: &types.Value_NumberValue{NumberValue: 1}}}, `{"val":1}`}, + {"null Value", marshaler, &pb.KnownTypes{Val: &types.Value{Kind: &types.Value_NullValue{NullValue: types.NULL_VALUE}}}, `{"val":null}`}, + {"string number value", marshaler, &pb.KnownTypes{Val: &types.Value{Kind: &types.Value_StringValue{StringValue: "9223372036854775807"}}}, `{"val":"9223372036854775807"}`}, + {"list of lists Value", marshaler, &pb.KnownTypes{Val: &types.Value{ + Kind: &types.Value_ListValue{ListValue: &types.ListValue{ + Values: []*types.Value{ + {Kind: &types.Value_StringValue{StringValue: "x"}}, + {Kind: &types.Value_ListValue{ListValue: &types.ListValue{ + Values: []*types.Value{ + {Kind: &types.Value_ListValue{ListValue: &types.ListValue{ + Values: []*types.Value{{Kind: &types.Value_StringValue{StringValue: "y"}}}, + }}}, + {Kind: &types.Value_StringValue{StringValue: "z"}}, + }, + }}}, + }, + }}, + }}, `{"val":["x",[["y"],"z"]]}`}, {"DoubleValue", marshaler, &pb.KnownTypes{Dbl: &types.DoubleValue{Value: 1.2}}, `{"dbl":1.2}`}, {"FloatValue", marshaler, &pb.KnownTypes{Flt: &types.FloatValue{Value: 1.2}}, `{"flt":1.2}`}, {"Int64Value", marshaler, &pb.KnownTypes{I64: &types.Int64Value{Value: -3}}, `{"i64":"-3"}`}, @@ -411,6 +458,36 @@ func TestMarshaling(t *testing.T) { } } +func TestMarshalJSONPBMarshaler(t *testing.T) { + rawJson := `{ "foo": "bar", "baz": [0, 1, 2, 3] }` + msg := dynamicMessage{rawJson: rawJson} + str, err := new(Marshaler).MarshalToString(&msg) + if err != nil { + t.Errorf("an unexpected error occurred when marshalling JSONPBMarshaler: %v", err) + } + if str != rawJson { + t.Errorf("marshalling JSON produced incorrect output: got %s, wanted %s", str, rawJson) + } +} + +func TestMarshalAnyJSONPBMarshaler(t *testing.T) { + msg := dynamicMessage{rawJson: `{ "foo": "bar", "baz": [0, 1, 2, 3] }`} + a, err := types.MarshalAny(&msg) + if err != nil { + t.Errorf("an unexpected error occurred when marshalling to Any: %v", err) + } + str, err := new(Marshaler).MarshalToString(a) + if err != nil { + t.Errorf("an unexpected error occurred when marshalling Any to JSON: %v", err) + } + // after custom marshaling, it's round-tripped through JSON decoding/encoding already, + // so the keys are sorted, whitespace is compacted, and "@type" key has been added + expected := `{"@type":"type.googleapis.com/` + dynamicMessageName + `","baz":[0,1,2,3],"foo":"bar"}` + if str != expected { + t.Errorf("marshalling JSON produced incorrect output: got %s, wanted %s", str, expected) + } +} + var unmarshalingTests = []struct { desc string unmarshaler Unmarshaler @@ -449,9 +526,17 @@ var unmarshalingTests = []struct { }}}, {"unquoted int64 object", Unmarshaler{}, `{"oInt64":-314}`, &pb.Simple{OInt64: proto.Int64(-314)}}, {"unquoted uint64 object", Unmarshaler{}, `{"oUint64":123}`, &pb.Simple{OUint64: proto.Uint64(123)}}, + {"NaN", Unmarshaler{}, `{"oDouble":"NaN"}`, &pb.Simple{ODouble: proto.Float64(math.NaN())}}, + {"Inf", Unmarshaler{}, `{"oFloat":"Infinity"}`, &pb.Simple{OFloat: proto.Float32(float32(math.Inf(1)))}}, + {"-Inf", Unmarshaler{}, `{"oDouble":"-Infinity"}`, &pb.Simple{ODouble: proto.Float64(math.Inf(-1))}}, {"map", Unmarshaler{}, `{"nummy":{"1":2,"3":4}}`, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}}, {"map", Unmarshaler{}, `{"strry":{"\"one\"":"two","three":"four"}}`, &pb.Mappy{Strry: map[string]string{`"one"`: "two", "three": "four"}}}, {"map", Unmarshaler{}, `{"objjy":{"1":{"dub":1}}}`, &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: {Dub: 1}}}}, + {"proto2 extension", Unmarshaler{}, realNumberJSON, realNumber}, + // TODO does not work with go version 1.7, but works with go version 1.8 {"Any with message", Unmarshaler{}, anySimpleJSON, anySimple}, + // TODO does not work with go version 1.7, but works with go version 1.8 {"Any with message and indent", Unmarshaler{}, anySimplePrettyJSON, anySimple}, + {"Any with WKT", Unmarshaler{}, anyWellKnownJSON, anyWellKnown}, + {"Any with WKT and indent", Unmarshaler{}, anyWellKnownPrettyJSON, anyWellKnown}, // TODO: This is broken. //{"map", Unmarshaler{}, `{"enumy":{"XIV":"ROMAN"}`, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}}, {"map", Unmarshaler{}, `{"enumy":{"XIV":2}}`, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}}, @@ -463,11 +548,56 @@ var unmarshalingTests = []struct { {"orig_name input", Unmarshaler{}, `{"o_bool":true}`, &pb.Simple{OBool: proto.Bool(true)}}, {"camelName input", Unmarshaler{}, `{"oBool":true}`, &pb.Simple{OBool: proto.Bool(true)}}, {"Duration", Unmarshaler{}, `{"dur":"3.000s"}`, &pb.KnownTypes{Dur: &types.Duration{Seconds: 3}}}, - {"null Duration", Unmarshaler{}, `{"dur":null}`, &pb.KnownTypes{Dur: &types.Duration{Seconds: 0}}}, + {"null Duration", Unmarshaler{}, `{"dur":null}`, &pb.KnownTypes{Dur: nil}}, {"Timestamp", Unmarshaler{}, `{"ts":"2014-05-13T16:53:20.021Z"}`, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: 14e8, Nanos: 21e6}}}, {"PreEpochTimestamp", Unmarshaler{}, `{"ts":"1969-12-31T23:59:58.999999995Z"}`, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: -2, Nanos: 999999995}}}, {"ZeroTimeTimestamp", Unmarshaler{}, `{"ts":"0001-01-01T00:00:00Z"}`, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: -62135596800, Nanos: 0}}}, - {"null Timestamp", Unmarshaler{}, `{"ts":null}`, &pb.KnownTypes{Ts: &types.Timestamp{Seconds: 0, Nanos: 0}}}, + {"null Timestamp", Unmarshaler{}, `{"ts":null}`, &pb.KnownTypes{Ts: nil}}, + {"null Struct", Unmarshaler{}, `{"st": null}`, &pb.KnownTypes{St: nil}}, + {"empty Struct", Unmarshaler{}, `{"st": {}}`, &pb.KnownTypes{St: &types.Struct{}}}, + {"basic Struct", Unmarshaler{}, `{"st": {"a": "x", "b": null, "c": 3, "d": true}}`, &pb.KnownTypes{St: &types.Struct{Fields: map[string]*types.Value{ + "a": {Kind: &types.Value_StringValue{StringValue: "x"}}, + "b": {Kind: &types.Value_NullValue{}}, + "c": {Kind: &types.Value_NumberValue{NumberValue: 3}}, + "d": {Kind: &types.Value_BoolValue{BoolValue: true}}, + }}}}, + {"nested Struct", Unmarshaler{}, `{"st": {"a": {"b": 1, "c": [{"d": true}, "f"]}}}`, &pb.KnownTypes{St: &types.Struct{Fields: map[string]*types.Value{ + "a": {Kind: &types.Value_StructValue{StructValue: &types.Struct{Fields: map[string]*types.Value{ + "b": {Kind: &types.Value_NumberValue{NumberValue: 1}}, + "c": {Kind: &types.Value_ListValue{ListValue: &types.ListValue{Values: []*types.Value{ + {Kind: &types.Value_StructValue{StructValue: &types.Struct{Fields: map[string]*types.Value{"d": {Kind: &types.Value_BoolValue{BoolValue: true}}}}}}, + {Kind: &types.Value_StringValue{StringValue: "f"}}, + }}}}, + }}}}, + }}}}, + {"null ListValue", Unmarshaler{}, `{"lv": null}`, &pb.KnownTypes{Lv: nil}}, + {"empty ListValue", Unmarshaler{}, `{"lv": []}`, &pb.KnownTypes{Lv: &types.ListValue{}}}, + {"basic ListValue", Unmarshaler{}, `{"lv": ["x", null, 3, true]}`, &pb.KnownTypes{Lv: &types.ListValue{Values: []*types.Value{ + {Kind: &types.Value_StringValue{StringValue: "x"}}, + {Kind: &types.Value_NullValue{}}, + {Kind: &types.Value_NumberValue{NumberValue: 3}}, + {Kind: &types.Value_BoolValue{BoolValue: true}}, + }}}}, + {"number Value", Unmarshaler{}, `{"val":1}`, &pb.KnownTypes{Val: &types.Value{Kind: &types.Value_NumberValue{NumberValue: 1}}}}, + {"null Value", Unmarshaler{}, `{"val":null}`, &pb.KnownTypes{Val: &types.Value{Kind: &types.Value_NullValue{NullValue: types.NULL_VALUE}}}}, + {"bool Value", Unmarshaler{}, `{"val":true}`, &pb.KnownTypes{Val: &types.Value{Kind: &types.Value_BoolValue{BoolValue: true}}}}, + {"string Value", Unmarshaler{}, `{"val":"x"}`, &pb.KnownTypes{Val: &types.Value{Kind: &types.Value_StringValue{StringValue: "x"}}}}, + {"string number value", Unmarshaler{}, `{"val":"9223372036854775807"}`, &pb.KnownTypes{Val: &types.Value{Kind: &types.Value_StringValue{StringValue: "9223372036854775807"}}}}, + {"list of lists Value", Unmarshaler{}, `{"val":["x", [["y"], "z"]]}`, &pb.KnownTypes{Val: &types.Value{ + Kind: &types.Value_ListValue{ListValue: &types.ListValue{ + Values: []*types.Value{ + {Kind: &types.Value_StringValue{StringValue: "x"}}, + {Kind: &types.Value_ListValue{ListValue: &types.ListValue{ + Values: []*types.Value{ + {Kind: &types.Value_ListValue{ListValue: &types.ListValue{ + Values: []*types.Value{{Kind: &types.Value_StringValue{StringValue: "y"}}}, + }}}, + {Kind: &types.Value_StringValue{StringValue: "z"}}, + }, + }}}, + }, + }}}}}, + {"DoubleValue", Unmarshaler{}, `{"dbl":1.2}`, &pb.KnownTypes{Dbl: &types.DoubleValue{Value: 1.2}}}, {"FloatValue", Unmarshaler{}, `{"flt":1.2}`, &pb.KnownTypes{Flt: &types.FloatValue{Value: 1.2}}}, {"Int64Value", Unmarshaler{}, `{"i64":"-3"}`, &pb.KnownTypes{I64: &types.Int64Value{Value: -3}}}, @@ -477,8 +607,16 @@ var unmarshalingTests = []struct { {"BoolValue", Unmarshaler{}, `{"bool":true}`, &pb.KnownTypes{Bool: &types.BoolValue{Value: true}}}, {"StringValue", Unmarshaler{}, `{"str":"plush"}`, &pb.KnownTypes{Str: &types.StringValue{Value: "plush"}}}, {"BytesValue", Unmarshaler{}, `{"bytes":"d293"}`, &pb.KnownTypes{Bytes: &types.BytesValue{Value: []byte("wow")}}}, - // `null` is also a permissible value. Let's just test one. - {"null DoubleValue", Unmarshaler{}, `{"dbl":null}`, &pb.KnownTypes{Dbl: &types.DoubleValue{}}}, + // Ensure that `null` as a value ends up with a nil pointer instead of a [type]Value struct. + {"null DoubleValue", Unmarshaler{}, `{"dbl":null}`, &pb.KnownTypes{Dbl: nil}}, + {"null FloatValue", Unmarshaler{}, `{"flt":null}`, &pb.KnownTypes{Flt: nil}}, + {"null Int64Value", Unmarshaler{}, `{"i64":null}`, &pb.KnownTypes{I64: nil}}, + {"null UInt64Value", Unmarshaler{}, `{"u64":null}`, &pb.KnownTypes{U64: nil}}, + {"null Int32Value", Unmarshaler{}, `{"i32":null}`, &pb.KnownTypes{I32: nil}}, + {"null UInt32Value", Unmarshaler{}, `{"u32":null}`, &pb.KnownTypes{U32: nil}}, + {"null BoolValue", Unmarshaler{}, `{"bool":null}`, &pb.KnownTypes{Bool: nil}}, + {"null StringValue", Unmarshaler{}, `{"str":null}`, &pb.KnownTypes{Str: nil}}, + {"null BytesValue", Unmarshaler{}, `{"bytes":null}`, &pb.KnownTypes{Bytes: nil}}, } func TestUnmarshaling(t *testing.T) { @@ -501,6 +639,26 @@ func TestUnmarshaling(t *testing.T) { } } +func TestUnmarshalNullArray(t *testing.T) { + var repeats pb.Repeats + if err := UnmarshalString(`{"rBool":null}`, &repeats); err != nil { + t.Fatal(err) + } + if !reflect.DeepEqual(repeats, pb.Repeats{}) { + t.Errorf("got non-nil fields in [%#v]", repeats) + } +} + +func TestUnmarshalNullObject(t *testing.T) { + var maps pb.Maps + if err := UnmarshalString(`{"mInt64Str":null}`, &maps); err != nil { + t.Fatal(err) + } + if !reflect.DeepEqual(maps, pb.Maps{}) { + t.Errorf("got non-nil fields in [%#v]", maps) + } +} + func TestUnmarshalNext(t *testing.T) { // We only need to check against a few, not all of them. tests := unmarshalingTests[:5] @@ -556,3 +714,177 @@ func TestUnmarshalingBadInput(t *testing.T) { } } } + +type funcResolver func(turl string) (proto.Message, error) + +func (fn funcResolver) Resolve(turl string) (proto.Message, error) { + return fn(turl) +} + +func TestAnyWithCustomResolver(t *testing.T) { + var resolvedTypeUrls []string + resolver := funcResolver(func(turl string) (proto.Message, error) { + resolvedTypeUrls = append(resolvedTypeUrls, turl) + return new(pb.Simple), nil + }) + msg := &pb.Simple{ + OBytes: []byte{1, 2, 3, 4}, + OBool: proto.Bool(true), + OString: proto.String("foobar"), + OInt64: proto.Int64(1020304), + } + msgBytes, err := proto.Marshal(msg) + if err != nil { + t.Errorf("an unexpected error occurred when marshaling message: %v", err) + } + // make an Any with a type URL that won't resolve w/out custom resolver + any := &types.Any{ + TypeUrl: "https://foobar.com/some.random.MessageKind", + Value: msgBytes, + } + + m := Marshaler{AnyResolver: resolver} + js, err := m.MarshalToString(any) + if err != nil { + t.Errorf("an unexpected error occurred when marshaling any to JSON: %v", err) + } + if len(resolvedTypeUrls) != 1 { + t.Errorf("custom resolver was not invoked during marshaling") + } else if resolvedTypeUrls[0] != "https://foobar.com/some.random.MessageKind" { + t.Errorf("custom resolver was invoked with wrong URL: got %q, wanted %q", resolvedTypeUrls[0], "https://foobar.com/some.random.MessageKind") + } + wanted := `{"@type":"https://foobar.com/some.random.MessageKind","oBool":true,"oInt64":"1020304","oString":"foobar","oBytes":"AQIDBA=="}` + if js != wanted { + t.Errorf("marshalling JSON produced incorrect output: got %s, wanted %s", js, wanted) + } + + u := Unmarshaler{AnyResolver: resolver} + roundTrip := &types.Any{} + err = u.Unmarshal(bytes.NewReader([]byte(js)), roundTrip) + if err != nil { + t.Errorf("an unexpected error occurred when unmarshaling any from JSON: %v", err) + } + if len(resolvedTypeUrls) != 2 { + t.Errorf("custom resolver was not invoked during marshaling") + } else if resolvedTypeUrls[1] != "https://foobar.com/some.random.MessageKind" { + t.Errorf("custom resolver was invoked with wrong URL: got %q, wanted %q", resolvedTypeUrls[1], "https://foobar.com/some.random.MessageKind") + } + if !proto.Equal(any, roundTrip) { + t.Errorf("message contents not set correctly after unmarshalling JSON: got %s, wanted %s", roundTrip, any) + } +} + +func TestUnmarshalJSONPBUnmarshaler(t *testing.T) { + rawJson := `{ "foo": "bar", "baz": [0, 1, 2, 3] }` + var msg dynamicMessage + if err := Unmarshal(strings.NewReader(rawJson), &msg); err != nil { + t.Errorf("an unexpected error occurred when parsing into JSONPBUnmarshaler: %v", err) + } + if msg.rawJson != rawJson { + t.Errorf("message contents not set correctly after unmarshalling JSON: got %s, wanted %s", msg.rawJson, rawJson) + } +} + +func TestUnmarshalNullWithJSONPBUnmarshaler(t *testing.T) { + rawJson := `{"stringField":null}` + var ptrFieldMsg ptrFieldMessage + if err := Unmarshal(strings.NewReader(rawJson), &ptrFieldMsg); err != nil { + t.Errorf("unmarshal error: %v", err) + } + + want := ptrFieldMessage{StringField: &stringField{IsSet: true, StringValue: "null"}} + if !proto.Equal(&ptrFieldMsg, &want) { + t.Errorf("unmarshal result StringField: got %v, want %v", ptrFieldMsg, want) + } +} + +func TestUnmarshalAnyJSONPBUnmarshaler(t *testing.T) { + rawJson := `{ "@type": "blah.com/` + dynamicMessageName + `", "foo": "bar", "baz": [0, 1, 2, 3] }` + var got types.Any + if err := Unmarshal(strings.NewReader(rawJson), &got); err != nil { + t.Errorf("an unexpected error occurred when parsing into JSONPBUnmarshaler: %v", err) + } + + dm := &dynamicMessage{rawJson: `{"baz":[0,1,2,3],"foo":"bar"}`} + var want types.Any + if b, err := proto.Marshal(dm); err != nil { + t.Errorf("an unexpected error occurred when marshaling message: %v", err) + } else { + want.TypeUrl = "blah.com/" + dynamicMessageName + want.Value = b + } + + if !proto.Equal(&got, &want) { + t.Errorf("message contents not set correctly after unmarshalling JSON: got %s, wanted %s", got, want) + } +} + +const ( + dynamicMessageName = "google.protobuf.jsonpb.testing.dynamicMessage" +) + +func init() { + // we register the custom type below so that we can use it in Any types + proto.RegisterType((*dynamicMessage)(nil), dynamicMessageName) +} + +type ptrFieldMessage struct { + StringField *stringField `protobuf:"bytes,1,opt,name=stringField"` +} + +func (m *ptrFieldMessage) Reset() { +} + +func (m *ptrFieldMessage) String() string { + return m.StringField.StringValue +} + +func (m *ptrFieldMessage) ProtoMessage() { +} + +type stringField struct { + IsSet bool `protobuf:"varint,1,opt,name=isSet"` + StringValue string `protobuf:"bytes,2,opt,name=stringValue"` +} + +func (s *stringField) Reset() { +} + +func (s *stringField) String() string { + return s.StringValue +} + +func (s *stringField) ProtoMessage() { +} + +func (s *stringField) UnmarshalJSONPB(jum *Unmarshaler, js []byte) error { + s.IsSet = true + s.StringValue = string(js) + return nil +} + +// dynamicMessage implements protobuf.Message but is not a normal generated message type. +// It provides implementations of JSONPBMarshaler and JSONPBUnmarshaler for JSON support. +type dynamicMessage struct { + rawJson string `protobuf:"bytes,1,opt,name=rawJson"` +} + +func (m *dynamicMessage) Reset() { + m.rawJson = "{}" +} + +func (m *dynamicMessage) String() string { + return m.rawJson +} + +func (m *dynamicMessage) ProtoMessage() { +} + +func (m *dynamicMessage) MarshalJSONPB(jm *Marshaler) ([]byte, error) { + return []byte(m.rawJson), nil +} + +func (m *dynamicMessage) UnmarshalJSONPB(jum *Unmarshaler, js []byte) error { + m.rawJson = string(js) + return nil +} diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go index edcc4ed09..0382587b6 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: more_test_objects.proto -// DO NOT EDIT! /* Package jsonpb is a generated protocol buffer package. @@ -11,8 +10,12 @@ It is generated from these files: It has these top-level messages: Simple3 + SimpleSlice3 + SimpleMap3 + SimpleNull3 Mappy Simple + NonFinites Repeats Widget Maps @@ -78,6 +81,54 @@ func (m *Simple3) GetDub() float64 { return 0 } +type SimpleSlice3 struct { + Slices []string `protobuf:"bytes,1,rep,name=slices" json:"slices,omitempty"` +} + +func (m *SimpleSlice3) Reset() { *m = SimpleSlice3{} } +func (m *SimpleSlice3) String() string { return proto.CompactTextString(m) } +func (*SimpleSlice3) ProtoMessage() {} +func (*SimpleSlice3) Descriptor() ([]byte, []int) { return fileDescriptorMoreTestObjects, []int{1} } + +func (m *SimpleSlice3) GetSlices() []string { + if m != nil { + return m.Slices + } + return nil +} + +type SimpleMap3 struct { + Stringy map[string]string `protobuf:"bytes,1,rep,name=stringy" json:"stringy,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *SimpleMap3) Reset() { *m = SimpleMap3{} } +func (m *SimpleMap3) String() string { return proto.CompactTextString(m) } +func (*SimpleMap3) ProtoMessage() {} +func (*SimpleMap3) Descriptor() ([]byte, []int) { return fileDescriptorMoreTestObjects, []int{2} } + +func (m *SimpleMap3) GetStringy() map[string]string { + if m != nil { + return m.Stringy + } + return nil +} + +type SimpleNull3 struct { + Simple *Simple3 `protobuf:"bytes,1,opt,name=simple" json:"simple,omitempty"` +} + +func (m *SimpleNull3) Reset() { *m = SimpleNull3{} } +func (m *SimpleNull3) String() string { return proto.CompactTextString(m) } +func (*SimpleNull3) ProtoMessage() {} +func (*SimpleNull3) Descriptor() ([]byte, []int) { return fileDescriptorMoreTestObjects, []int{3} } + +func (m *SimpleNull3) GetSimple() *Simple3 { + if m != nil { + return m.Simple + } + return nil +} + type Mappy struct { Nummy map[int64]int32 `protobuf:"bytes,1,rep,name=nummy" json:"nummy,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` Strry map[string]string `protobuf:"bytes,2,rep,name=strry" json:"strry,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` @@ -94,7 +145,7 @@ type Mappy struct { func (m *Mappy) Reset() { *m = Mappy{} } func (m *Mappy) String() string { return proto.CompactTextString(m) } func (*Mappy) ProtoMessage() {} -func (*Mappy) Descriptor() ([]byte, []int) { return fileDescriptorMoreTestObjects, []int{1} } +func (*Mappy) Descriptor() ([]byte, []int) { return fileDescriptorMoreTestObjects, []int{4} } func (m *Mappy) GetNummy() map[int64]int32 { if m != nil { @@ -168,6 +219,9 @@ func (m *Mappy) GetU64Booly() map[uint64]bool { func init() { proto.RegisterType((*Simple3)(nil), "jsonpb.Simple3") + proto.RegisterType((*SimpleSlice3)(nil), "jsonpb.SimpleSlice3") + proto.RegisterType((*SimpleMap3)(nil), "jsonpb.SimpleMap3") + proto.RegisterType((*SimpleNull3)(nil), "jsonpb.SimpleNull3") proto.RegisterType((*Mappy)(nil), "jsonpb.Mappy") proto.RegisterEnum("jsonpb.Numeral", Numeral_name, Numeral_value) } @@ -175,33 +229,38 @@ func init() { func init() { proto.RegisterFile("more_test_objects.proto", fileDescriptorMoreTestObjects) } var fileDescriptorMoreTestObjects = []byte{ - // 444 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xc1, 0x6b, 0xdb, 0x30, - 0x14, 0x87, 0xe7, 0xa4, 0x4e, 0xec, 0x17, 0xba, 0x19, 0x31, 0x98, 0x58, 0x2f, 0xa1, 0x30, 0x08, - 0x83, 0xf9, 0x90, 0x8c, 0xad, 0x6c, 0xa7, 0x74, 0xf4, 0x50, 0x46, 0x1d, 0x70, 0x09, 0x3b, 0x96, - 0x78, 0x13, 0x65, 0x9e, 0x6d, 0x19, 0xdb, 0x1a, 0xe8, 0x8f, 0x1f, 0x8c, 0x27, 0xcb, 0xb5, 0x6c, - 0x14, 0xd2, 0x9b, 0xcc, 0xef, 0xfb, 0xf2, 0x9e, 0xf4, 0x1e, 0x81, 0x37, 0x39, 0xaf, 0xd8, 0x43, - 0xc3, 0xea, 0xe6, 0x81, 0x27, 0x29, 0xfb, 0xd9, 0xd4, 0x61, 0x59, 0xf1, 0x86, 0x93, 0x59, 0x5a, - 0xf3, 0xa2, 0x4c, 0x2e, 0x2f, 0x60, 0x7e, 0xff, 0x3b, 0x2f, 0x33, 0xb6, 0x21, 0x01, 0x4c, 0x7f, - 0x89, 0x84, 0x3a, 0x4b, 0x67, 0xe5, 0xc4, 0x78, 0xbc, 0xfc, 0xe7, 0x81, 0x7b, 0x77, 0x28, 0x4b, - 0x49, 0x42, 0x70, 0x0b, 0x91, 0xe7, 0x92, 0x3a, 0xcb, 0xe9, 0x6a, 0xb1, 0xa6, 0x61, 0xab, 0x87, - 0x2a, 0x0d, 0x23, 0x8c, 0x6e, 0x8a, 0xa6, 0x92, 0x71, 0x8b, 0x21, 0x5f, 0x37, 0x55, 0x25, 0xe9, - 0xc4, 0xc6, 0xdf, 0x63, 0xa4, 0x79, 0x85, 0x21, 0xcf, 0x93, 0x34, 0x95, 0x74, 0x6a, 0xe3, 0x77, - 0x18, 0x69, 0x5e, 0x61, 0xc8, 0x27, 0xe2, 0xf1, 0x51, 0xd2, 0x33, 0x1b, 0x7f, 0x8d, 0x91, 0xe6, - 0x15, 0xa6, 0x78, 0xce, 0x33, 0x49, 0x5d, 0x2b, 0x8f, 0x51, 0xc7, 0xe3, 0x19, 0x79, 0x56, 0x88, - 0x5c, 0xd2, 0x99, 0x8d, 0xbf, 0xc1, 0x48, 0xf3, 0x0a, 0x23, 0x9f, 0xc1, 0xab, 0x37, 0xeb, 0xb6, - 0xc4, 0x5c, 0x29, 0x17, 0xa3, 0x2b, 0xeb, 0xb4, 0xb5, 0x9e, 0x60, 0x25, 0x7e, 0xfa, 0xd8, 0x8a, - 0x9e, 0x55, 0xd4, 0x69, 0x27, 0xea, 0x4f, 0x14, 0x45, 0x57, 0xd1, 0xb7, 0x89, 0xfb, 0x61, 0x45, - 0x61, 0x54, 0x14, 0x5d, 0x45, 0xb0, 0x8a, 0xc3, 0x8a, 0x1d, 0xfc, 0xf6, 0x0a, 0xa0, 0x1f, 0x34, - 0x6e, 0xcb, 0x1f, 0x26, 0xd5, 0xb6, 0x4c, 0x63, 0x3c, 0x92, 0xd7, 0xe0, 0xfe, 0x3d, 0x64, 0x82, - 0xd1, 0xc9, 0xd2, 0x59, 0xb9, 0x71, 0xfb, 0xf1, 0x65, 0x72, 0xe5, 0xa0, 0xd9, 0x8f, 0xdc, 0x34, - 0x7d, 0x8b, 0xe9, 0x9b, 0xe6, 0x2d, 0x40, 0x3f, 0x7c, 0xd3, 0x74, 0x5b, 0xf3, 0x9d, 0x69, 0x2e, - 0xd6, 0xaf, 0xba, 0x9b, 0xe8, 0x9d, 0x1e, 0x35, 0xd1, 0xef, 0xc5, 0xa9, 0xf6, 0xfd, 0xb1, 0xf9, - 0xf4, 0x20, 0xa6, 0xe9, 0x59, 0x4c, 0x6f, 0xd4, 0x7e, 0xbf, 0x2b, 0x96, 0x8b, 0x0f, 0xda, 0x7f, - 0xd9, 0xb7, 0x1f, 0x89, 0x9c, 0x55, 0x87, 0xcc, 0xfc, 0xa9, 0xaf, 0x70, 0x3e, 0xd8, 0x21, 0xcb, - 0x63, 0x1c, 0xef, 0x03, 0x65, 0x73, 0xaa, 0xa7, 0xae, 0x3f, 0x96, 0xf7, 0xc7, 0x2a, 0x9f, 0x3f, - 0x47, 0x3e, 0x56, 0xf9, 0xec, 0x84, 0xfc, 0xfe, 0x03, 0xcc, 0xf5, 0x4b, 0x90, 0x05, 0xcc, 0xf7, - 0xd1, 0xf7, 0x68, 0xf7, 0x23, 0x0a, 0x5e, 0x10, 0x80, 0xd9, 0x36, 0xde, 0x5e, 0xdf, 0x7e, 0x0b, - 0x1c, 0xe2, 0x83, 0x1b, 0xef, 0xee, 0xb6, 0x51, 0x30, 0x49, 0x66, 0xea, 0xaf, 0x6d, 0xf3, 0x3f, - 0x00, 0x00, 0xff, 0xff, 0xa2, 0x4b, 0xe1, 0x77, 0xf5, 0x04, 0x00, 0x00, + // 526 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xdd, 0x6b, 0xdb, 0x3c, + 0x14, 0x87, 0x5f, 0x27, 0xf5, 0xd7, 0x49, 0xfb, 0x2e, 0x88, 0xb1, 0x99, 0xf4, 0x62, 0xc5, 0xb0, + 0xad, 0x0c, 0xe6, 0x8b, 0x78, 0x74, 0x5d, 0x77, 0x95, 0x8e, 0x5e, 0x94, 0x11, 0x07, 0x1c, 0xc2, + 0x2e, 0x4b, 0xdc, 0x99, 0x90, 0xcc, 0x5f, 0xd8, 0xd6, 0xc0, 0xd7, 0xfb, 0xbb, 0x07, 0xe3, 0x48, + 0x72, 0x2d, 0x07, 0x85, 0x6c, 0x77, 0x52, 0x7e, 0xcf, 0xe3, 0x73, 0x24, 0x1d, 0x02, 0x2f, 0xd3, + 0xbc, 0x8c, 0x1f, 0xea, 0xb8, 0xaa, 0x1f, 0xf2, 0x68, 0x17, 0x3f, 0xd6, 0x95, 0x57, 0x94, 0x79, + 0x9d, 0x13, 0x63, 0x57, 0xe5, 0x59, 0x11, 0xb9, 0xe7, 0x60, 0x2e, 0xb7, 0x69, 0x91, 0xc4, 0x3e, + 0x19, 0xc3, 0xf0, 0x3b, 0x8d, 0x1c, 0xed, 0x42, 0xbb, 0xd4, 0x42, 0x5c, 0xba, 0x6f, 0xe0, 0x94, + 0x87, 0xcb, 0x64, 0xfb, 0x18, 0xfb, 0xe4, 0x05, 0x18, 0x15, 0xae, 0x2a, 0x47, 0xbb, 0x18, 0x5e, + 0xda, 0xa1, 0xd8, 0xb9, 0xbf, 0x34, 0x00, 0x0e, 0xce, 0xd7, 0x85, 0x4f, 0x3e, 0x81, 0x59, 0xd5, + 0xe5, 0x36, 0xdb, 0x34, 0x8c, 0x1b, 0x4d, 0x5f, 0x79, 0xbc, 0x9a, 0xd7, 0x41, 0xde, 0x92, 0x13, + 0x77, 0x59, 0x5d, 0x36, 0x61, 0xcb, 0x4f, 0x6e, 0xe0, 0x54, 0x0e, 0xb0, 0xa7, 0x1f, 0x71, 0xc3, + 0x7a, 0xb2, 0x43, 0x5c, 0x92, 0xe7, 0xa0, 0xff, 0x5c, 0x27, 0x34, 0x76, 0x06, 0xec, 0x37, 0xbe, + 0xb9, 0x19, 0x5c, 0x6b, 0xee, 0x15, 0x8c, 0xf8, 0xf7, 0x03, 0x9a, 0x24, 0x3e, 0x79, 0x0b, 0x46, + 0xc5, 0xb6, 0xcc, 0x1e, 0x4d, 0x9f, 0xf5, 0x9b, 0xf0, 0x43, 0x11, 0xbb, 0xbf, 0x2d, 0xd0, 0xe7, + 0xeb, 0xa2, 0x68, 0x88, 0x07, 0x7a, 0x46, 0xd3, 0xb4, 0x6d, 0xdb, 0x69, 0x0d, 0x96, 0x7a, 0x01, + 0x46, 0xbc, 0x5f, 0x8e, 0x21, 0x5f, 0xd5, 0x65, 0xd9, 0x38, 0x03, 0x15, 0xbf, 0xc4, 0x48, 0xf0, + 0x0c, 0x43, 0x3e, 0x8f, 0x76, 0xbb, 0xc6, 0x19, 0xaa, 0xf8, 0x05, 0x46, 0x82, 0x67, 0x18, 0xf2, + 0x11, 0xdd, 0x6c, 0x1a, 0xe7, 0x44, 0xc5, 0xdf, 0x62, 0x24, 0x78, 0x86, 0x31, 0x3e, 0xcf, 0x93, + 0xc6, 0xd1, 0x95, 0x3c, 0x46, 0x2d, 0x8f, 0x6b, 0xe4, 0xe3, 0x8c, 0xa6, 0x8d, 0x63, 0xa8, 0xf8, + 0x3b, 0x8c, 0x04, 0xcf, 0x30, 0xf2, 0x11, 0xac, 0xca, 0x9f, 0xf2, 0x12, 0x26, 0x53, 0xce, 0xf7, + 0x8e, 0x2c, 0x52, 0x6e, 0x3d, 0xc1, 0x4c, 0xbc, 0xfa, 0xc0, 0x45, 0x4b, 0x29, 0x8a, 0xb4, 0x15, + 0xc5, 0x16, 0x45, 0xda, 0x56, 0xb4, 0x55, 0xe2, 0xaa, 0x5f, 0x91, 0x4a, 0x15, 0x69, 0x5b, 0x11, + 0x94, 0x62, 0xbf, 0x62, 0x0b, 0x4f, 0xae, 0x01, 0xba, 0x87, 0x96, 0xe7, 0x6f, 0xa8, 0x98, 0x3f, + 0x5d, 0x9a, 0x3f, 0x34, 0xbb, 0x27, 0xff, 0x97, 0xc9, 0x9d, 0xdc, 0x03, 0x74, 0x8f, 0x2f, 0x9b, + 0x3a, 0x37, 0x5f, 0xcb, 0xa6, 0x62, 0x92, 0xfb, 0x4d, 0x74, 0x73, 0x71, 0xac, 0x7d, 0x7b, 0xdf, + 0x7c, 0xba, 0x10, 0xd9, 0xb4, 0x14, 0xa6, 0xb5, 0xd7, 0x7e, 0x37, 0x2b, 0x8a, 0x83, 0xf7, 0xda, + 0xff, 0xbf, 0x6b, 0x3f, 0xa0, 0x69, 0x5c, 0xae, 0x13, 0xf9, 0x53, 0x9f, 0xe1, 0xac, 0x37, 0x43, + 0x8a, 0xcb, 0x38, 0xdc, 0x07, 0xca, 0xf2, 0xab, 0x1e, 0x3b, 0xfe, 0xbe, 0xbc, 0x3a, 0x54, 0xf9, + 0xec, 0x6f, 0xe4, 0x43, 0x95, 0x4f, 0x8e, 0xc8, 0xef, 0xde, 0x83, 0x29, 0x6e, 0x82, 0x8c, 0xc0, + 0x5c, 0x05, 0x5f, 0x83, 0xc5, 0xb7, 0x60, 0xfc, 0x1f, 0x01, 0x30, 0x66, 0xe1, 0xec, 0xf6, 0xfe, + 0xcb, 0x58, 0x23, 0x36, 0xe8, 0xe1, 0x62, 0x3e, 0x0b, 0xc6, 0x83, 0xc8, 0x60, 0x7f, 0xe0, 0xfe, + 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdc, 0x84, 0x34, 0xaf, 0xdb, 0x05, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto index 43b440e2d..d254fa5fa 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/more_test_objects.proto @@ -37,6 +37,18 @@ message Simple3 { double dub = 1; } +message SimpleSlice3 { + repeated string slices = 1; +} + +message SimpleMap3 { + map stringy = 1; +} + +message SimpleNull3 { + Simple3 simple = 1; +} + enum Numeral { UNKNOWN = 0; ARABIC = 1; diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go index 75e633196..9ff8b2c65 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: test_objects.proto -// DO NOT EDIT! package jsonpb @@ -13,7 +12,7 @@ import google_protobuf2 "github.com/gogo/protobuf/types" import google_protobuf3 "github.com/gogo/protobuf/types" import google_protobuf4 "github.com/gogo/protobuf/types" -// skipping weak import gogoproto "gogoproto" +// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -55,7 +54,7 @@ func (x *Widget_Color) UnmarshalJSON(data []byte) error { *x = Widget_Color(value) return nil } -func (Widget_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{2, 0} } +func (Widget_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{3, 0} } // Test message for holding primitive types. type Simple struct { @@ -163,6 +162,64 @@ func (m *Simple) GetOCastBytes() Bytes { return nil } +// Test message for holding special non-finites primitives. +type NonFinites struct { + FNan *float32 `protobuf:"fixed32,1,opt,name=f_nan,json=fNan" json:"f_nan,omitempty"` + FPinf *float32 `protobuf:"fixed32,2,opt,name=f_pinf,json=fPinf" json:"f_pinf,omitempty"` + FNinf *float32 `protobuf:"fixed32,3,opt,name=f_ninf,json=fNinf" json:"f_ninf,omitempty"` + DNan *float64 `protobuf:"fixed64,4,opt,name=d_nan,json=dNan" json:"d_nan,omitempty"` + DPinf *float64 `protobuf:"fixed64,5,opt,name=d_pinf,json=dPinf" json:"d_pinf,omitempty"` + DNinf *float64 `protobuf:"fixed64,6,opt,name=d_ninf,json=dNinf" json:"d_ninf,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *NonFinites) Reset() { *m = NonFinites{} } +func (m *NonFinites) String() string { return proto.CompactTextString(m) } +func (*NonFinites) ProtoMessage() {} +func (*NonFinites) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{1} } + +func (m *NonFinites) GetFNan() float32 { + if m != nil && m.FNan != nil { + return *m.FNan + } + return 0 +} + +func (m *NonFinites) GetFPinf() float32 { + if m != nil && m.FPinf != nil { + return *m.FPinf + } + return 0 +} + +func (m *NonFinites) GetFNinf() float32 { + if m != nil && m.FNinf != nil { + return *m.FNinf + } + return 0 +} + +func (m *NonFinites) GetDNan() float64 { + if m != nil && m.DNan != nil { + return *m.DNan + } + return 0 +} + +func (m *NonFinites) GetDPinf() float64 { + if m != nil && m.DPinf != nil { + return *m.DPinf + } + return 0 +} + +func (m *NonFinites) GetDNinf() float64 { + if m != nil && m.DNinf != nil { + return *m.DNinf + } + return 0 +} + // Test message for holding repeated primitives. type Repeats struct { RBool []bool `protobuf:"varint,1,rep,name=r_bool,json=rBool" json:"r_bool,omitempty"` @@ -182,7 +239,7 @@ type Repeats struct { func (m *Repeats) Reset() { *m = Repeats{} } func (m *Repeats) String() string { return proto.CompactTextString(m) } func (*Repeats) ProtoMessage() {} -func (*Repeats) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{1} } +func (*Repeats) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{2} } func (m *Repeats) GetRBool() []bool { if m != nil { @@ -275,7 +332,7 @@ type Widget struct { func (m *Widget) Reset() { *m = Widget{} } func (m *Widget) String() string { return proto.CompactTextString(m) } func (*Widget) ProtoMessage() {} -func (*Widget) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{2} } +func (*Widget) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{3} } func (m *Widget) GetColor() Widget_Color { if m != nil && m.Color != nil { @@ -328,7 +385,7 @@ type Maps struct { func (m *Maps) Reset() { *m = Maps{} } func (m *Maps) String() string { return proto.CompactTextString(m) } func (*Maps) ProtoMessage() {} -func (*Maps) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{3} } +func (*Maps) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{4} } func (m *Maps) GetMInt64Str() map[int64]string { if m != nil { @@ -357,7 +414,7 @@ type MsgWithOneof struct { func (m *MsgWithOneof) Reset() { *m = MsgWithOneof{} } func (m *MsgWithOneof) String() string { return proto.CompactTextString(m) } func (*MsgWithOneof) ProtoMessage() {} -func (*MsgWithOneof) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{4} } +func (*MsgWithOneof) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{5} } type isMsgWithOneof_Union interface { isMsgWithOneof_Union() @@ -520,7 +577,7 @@ type Real struct { func (m *Real) Reset() { *m = Real{} } func (m *Real) String() string { return proto.CompactTextString(m) } func (*Real) ProtoMessage() {} -func (*Real) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{5} } +func (*Real) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{6} } var extRange_Real = []proto.ExtensionRange{ {Start: 100, End: 536870911}, @@ -546,7 +603,7 @@ type Complex struct { func (m *Complex) Reset() { *m = Complex{} } func (m *Complex) String() string { return proto.CompactTextString(m) } func (*Complex) ProtoMessage() {} -func (*Complex) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{6} } +func (*Complex) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{7} } var extRange_Complex = []proto.ExtensionRange{ {Start: 100, End: 536870911}, @@ -577,6 +634,8 @@ type KnownTypes struct { Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` St *google_protobuf2.Struct `protobuf:"bytes,12,opt,name=st" json:"st,omitempty"` Ts *google_protobuf3.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` + Lv *google_protobuf2.ListValue `protobuf:"bytes,15,opt,name=lv" json:"lv,omitempty"` + Val *google_protobuf2.Value `protobuf:"bytes,16,opt,name=val" json:"val,omitempty"` Dbl *google_protobuf4.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` Flt *google_protobuf4.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` I64 *google_protobuf4.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` @@ -592,7 +651,7 @@ type KnownTypes struct { func (m *KnownTypes) Reset() { *m = KnownTypes{} } func (m *KnownTypes) String() string { return proto.CompactTextString(m) } func (*KnownTypes) ProtoMessage() {} -func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{7} } +func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTestObjects, []int{8} } func (m *KnownTypes) GetAn() *google_protobuf.Any { if m != nil { @@ -622,6 +681,20 @@ func (m *KnownTypes) GetTs() *google_protobuf3.Timestamp { return nil } +func (m *KnownTypes) GetLv() *google_protobuf2.ListValue { + if m != nil { + return m.Lv + } + return nil +} + +func (m *KnownTypes) GetVal() *google_protobuf2.Value { + if m != nil { + return m.Val + } + return nil +} + func (m *KnownTypes) GetDbl() *google_protobuf4.DoubleValue { if m != nil { return m.Dbl @@ -696,6 +769,7 @@ var E_Name = &proto.ExtensionDesc{ func init() { proto.RegisterType((*Simple)(nil), "jsonpb.Simple") + proto.RegisterType((*NonFinites)(nil), "jsonpb.NonFinites") proto.RegisterType((*Repeats)(nil), "jsonpb.Repeats") proto.RegisterType((*Widget)(nil), "jsonpb.Widget") proto.RegisterType((*Maps)(nil), "jsonpb.Maps") @@ -711,74 +785,81 @@ func init() { func init() { proto.RegisterFile("test_objects.proto", fileDescriptorTestObjects) } var fileDescriptorTestObjects = []byte{ - // 1098 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x95, 0xdd, 0x72, 0xdb, 0x44, - 0x14, 0xc7, 0x2b, 0xc9, 0xf2, 0xc7, 0xda, 0x0d, 0x66, 0x27, 0xa5, 0x8a, 0x09, 0x54, 0x63, 0x4a, - 0x11, 0x2d, 0x75, 0x06, 0xc5, 0xe3, 0x61, 0x0a, 0x37, 0xf9, 0x30, 0x94, 0x81, 0x94, 0x99, 0x4d, - 0x43, 0xb9, 0xf3, 0xc8, 0xf1, 0xc6, 0x55, 0x91, 0xb5, 0x9e, 0xdd, 0x15, 0xa9, 0x07, 0x2e, 0x72, - 0xcd, 0x35, 0xcf, 0xc0, 0x23, 0xf0, 0x20, 0x3c, 0x00, 0x57, 0x3c, 0x05, 0x57, 0xcc, 0x39, 0x2b, - 0x59, 0x89, 0x1d, 0x5f, 0x59, 0xbb, 0xe7, 0x7f, 0xfe, 0x5e, 0xfd, 0xf6, 0xe8, 0x1c, 0x42, 0x35, - 0x57, 0x7a, 0x24, 0xc6, 0x6f, 0xf8, 0xb9, 0x56, 0xbd, 0xb9, 0x14, 0x5a, 0xd0, 0xea, 0x1b, 0x25, - 0xd2, 0xf9, 0xb8, 0xb3, 0x33, 0x15, 0x62, 0x9a, 0xf0, 0x3d, 0xdc, 0x1d, 0x67, 0x17, 0x7b, 0x51, - 0xba, 0x30, 0x92, 0xce, 0x87, 0xab, 0xa1, 0x49, 0x26, 0x23, 0x1d, 0x8b, 0x34, 0x8f, 0xef, 0xae, - 0xc6, 0x95, 0x96, 0xd9, 0xb9, 0xce, 0xa3, 0x0f, 0x56, 0xa3, 0x3a, 0x9e, 0x71, 0xa5, 0xa3, 0xd9, - 0x7c, 0x93, 0xfd, 0xa5, 0x8c, 0xe6, 0x73, 0x2e, 0xf3, 0x13, 0x76, 0xb6, 0xa7, 0x62, 0x2a, 0xf0, - 0x71, 0x0f, 0x9e, 0xcc, 0x6e, 0xf7, 0x6f, 0x9b, 0x54, 0x4f, 0xe3, 0xd9, 0x3c, 0xe1, 0xf4, 0x1e, - 0xa9, 0x8a, 0xd1, 0x58, 0x88, 0xc4, 0xb3, 0x7c, 0x2b, 0xa8, 0x33, 0x57, 0x1c, 0x0a, 0x91, 0xd0, - 0xfb, 0xa4, 0x26, 0x46, 0x71, 0xaa, 0xf7, 0x43, 0xcf, 0xf6, 0xad, 0xc0, 0x65, 0x55, 0xf1, 0x2d, - 0xac, 0x96, 0x81, 0x41, 0xdf, 0x73, 0x7c, 0x2b, 0x70, 0x4c, 0x60, 0xd0, 0xa7, 0x3b, 0xa4, 0x2e, - 0x46, 0x99, 0x49, 0xa9, 0xf8, 0x56, 0x70, 0x97, 0xd5, 0xc4, 0x19, 0x2e, 0xcb, 0xd0, 0xa0, 0xef, - 0xb9, 0xbe, 0x15, 0x54, 0xf2, 0x50, 0x91, 0xa5, 0x4c, 0x56, 0xd5, 0xb7, 0x82, 0x77, 0x59, 0x4d, - 0x9c, 0x5e, 0xcb, 0x52, 0x26, 0xab, 0xe6, 0x5b, 0x01, 0xcd, 0x43, 0x83, 0xbe, 0x39, 0xc4, 0x45, - 0x22, 0x22, 0xed, 0xd5, 0x7d, 0x2b, 0xb0, 0x59, 0x55, 0x7c, 0x0d, 0x2b, 0x93, 0x33, 0x11, 0xd9, - 0x38, 0xe1, 0x5e, 0xc3, 0xb7, 0x02, 0x8b, 0xd5, 0xc4, 0x31, 0x2e, 0x73, 0x3b, 0x2d, 0xe3, 0x74, - 0xea, 0x11, 0xdf, 0x0a, 0x1a, 0x60, 0x87, 0x4b, 0x63, 0x37, 0x5e, 0x68, 0xae, 0xbc, 0xa6, 0x6f, - 0x05, 0x2d, 0x56, 0x15, 0x87, 0xb0, 0xa2, 0x4f, 0x48, 0x4b, 0x8c, 0xce, 0x23, 0xa5, 0xf3, 0x68, - 0x0b, 0xa2, 0x87, 0x8d, 0xff, 0xfe, 0x79, 0xe0, 0xa2, 0x80, 0x11, 0x71, 0x14, 0x29, 0x8d, 0xcf, - 0xdd, 0x3f, 0x6d, 0x52, 0x63, 0x7c, 0xce, 0x23, 0xad, 0x80, 0xaa, 0x2c, 0xa8, 0x3a, 0x40, 0x55, - 0x16, 0x54, 0xe5, 0x92, 0xaa, 0x03, 0x54, 0xe5, 0x92, 0xaa, 0x5c, 0x52, 0x75, 0x80, 0xaa, 0x5c, - 0x52, 0x95, 0x25, 0x55, 0x07, 0xa8, 0xca, 0x92, 0xaa, 0x2c, 0xa9, 0x3a, 0x40, 0x55, 0x96, 0x54, - 0x65, 0x49, 0xd5, 0x01, 0xaa, 0xf2, 0xf4, 0x5a, 0xd6, 0x92, 0xaa, 0x03, 0x54, 0x65, 0x49, 0x55, - 0x2e, 0xa9, 0x3a, 0x40, 0x55, 0x2e, 0xa9, 0xca, 0x92, 0xaa, 0x03, 0x54, 0x65, 0x49, 0x55, 0x96, - 0x54, 0x1d, 0xa0, 0x2a, 0x4b, 0xaa, 0x72, 0x49, 0xd5, 0x01, 0xaa, 0xd2, 0x80, 0xfa, 0xcb, 0x26, - 0xd5, 0x57, 0xf1, 0x64, 0xca, 0x35, 0x7d, 0x4c, 0xdc, 0x73, 0x91, 0x08, 0x89, 0xc5, 0xb7, 0x15, - 0x6e, 0xf7, 0xcc, 0x07, 0xd5, 0x33, 0xe1, 0xde, 0x11, 0xc4, 0x98, 0x91, 0xd0, 0xa7, 0xe0, 0x67, - 0xd4, 0x00, 0x6f, 0x93, 0xba, 0x2a, 0xf1, 0x97, 0x3e, 0x22, 0x55, 0x85, 0x25, 0x8e, 0xb7, 0xdd, - 0x0c, 0xb7, 0x0a, 0xb5, 0x29, 0x7c, 0x96, 0x47, 0xe9, 0xa7, 0x06, 0x08, 0x2a, 0xe1, 0x9c, 0xeb, - 0x4a, 0x00, 0x94, 0x4b, 0x6b, 0xd2, 0x5c, 0xb0, 0xb7, 0x8d, 0x9e, 0xef, 0x14, 0xca, 0xfc, 0xde, - 0x59, 0x11, 0xa7, 0x9f, 0x91, 0x86, 0x1c, 0x15, 0xe2, 0x7b, 0x68, 0xbb, 0x26, 0xae, 0xcb, 0xfc, - 0xa9, 0xfb, 0x31, 0x71, 0xcd, 0xa1, 0x6b, 0xc4, 0x61, 0xc3, 0xe3, 0xf6, 0x1d, 0xda, 0x20, 0xee, - 0x37, 0x6c, 0x38, 0x7c, 0xd1, 0xb6, 0x68, 0x9d, 0x54, 0x0e, 0xbf, 0x3f, 0x1b, 0xb6, 0xed, 0xee, - 0x1f, 0x36, 0xa9, 0x9c, 0x44, 0x73, 0x45, 0xbf, 0x24, 0xcd, 0x99, 0x29, 0x17, 0x60, 0x8f, 0x35, - 0xd6, 0x0c, 0xdf, 0x2f, 0xfc, 0x41, 0xd2, 0x3b, 0xc1, 0xfa, 0x39, 0xd5, 0x72, 0x98, 0x6a, 0xb9, - 0x60, 0x8d, 0x59, 0xb1, 0xa6, 0x07, 0xe4, 0xee, 0x0c, 0x6b, 0xb3, 0x78, 0x6b, 0x1b, 0xd3, 0x3f, - 0xb8, 0x99, 0x0e, 0xf5, 0x6a, 0x5e, 0xdb, 0x18, 0x34, 0x67, 0xe5, 0x4e, 0xe7, 0x2b, 0xb2, 0x75, - 0xd3, 0x9f, 0xb6, 0x89, 0xf3, 0x33, 0x5f, 0xe0, 0x35, 0x3a, 0x0c, 0x1e, 0xe9, 0x36, 0x71, 0x7f, - 0x89, 0x92, 0x8c, 0x63, 0xff, 0x68, 0x30, 0xb3, 0x78, 0x66, 0x7f, 0x61, 0x75, 0x5e, 0x90, 0xf6, - 0xaa, 0xfd, 0xf5, 0xfc, 0xba, 0xc9, 0x7f, 0x78, 0x3d, 0x7f, 0xfd, 0x52, 0x4a, 0xbf, 0xee, 0xef, - 0x16, 0x69, 0x9d, 0xa8, 0xe9, 0xab, 0x58, 0xbf, 0xfe, 0x21, 0xe5, 0xe2, 0x82, 0xbe, 0x47, 0x5c, - 0x1d, 0xeb, 0x84, 0xa3, 0x5d, 0xe3, 0xf9, 0x1d, 0x66, 0x96, 0xd4, 0x23, 0x55, 0x15, 0x25, 0x91, - 0x5c, 0xa0, 0xa7, 0xf3, 0xfc, 0x0e, 0xcb, 0xd7, 0xb4, 0x43, 0x6a, 0x47, 0x22, 0x83, 0x93, 0x60, - 0x57, 0x83, 0x9c, 0x62, 0x83, 0x7e, 0x44, 0x5a, 0xaf, 0xc5, 0x8c, 0x8f, 0xa2, 0xc9, 0x44, 0x72, - 0xa5, 0xb0, 0xb9, 0x81, 0xa0, 0x09, 0xbb, 0x07, 0x66, 0xf3, 0xb0, 0x46, 0xdc, 0x2c, 0x8d, 0x45, - 0xda, 0x7d, 0x44, 0x2a, 0x8c, 0x47, 0x49, 0xf9, 0xfa, 0x16, 0xb6, 0x21, 0xb3, 0x78, 0x5c, 0xaf, - 0x4f, 0xda, 0x57, 0x57, 0x57, 0x57, 0x76, 0xf7, 0x12, 0xfe, 0x11, 0xde, 0xe4, 0x2d, 0xdd, 0x25, - 0x8d, 0x78, 0x16, 0x4d, 0xe3, 0x14, 0x4e, 0x66, 0xe4, 0xe5, 0x46, 0x99, 0x12, 0x1e, 0x93, 0x2d, - 0xc9, 0xa3, 0x64, 0xc4, 0xdf, 0x6a, 0x9e, 0xaa, 0x58, 0xa4, 0xb4, 0x55, 0x96, 0x54, 0x94, 0x78, - 0xbf, 0xde, 0xac, 0xc9, 0xdc, 0x9e, 0xdd, 0x85, 0xa4, 0x61, 0x91, 0xd3, 0xfd, 0xb7, 0x42, 0xc8, - 0x77, 0xa9, 0xb8, 0x4c, 0x5f, 0x2e, 0xe6, 0x5c, 0xd1, 0x87, 0xc4, 0x8e, 0x52, 0x6f, 0x0b, 0x53, - 0xb7, 0x7b, 0x66, 0x9a, 0xf4, 0x8a, 0x69, 0xd2, 0x3b, 0x48, 0x17, 0xcc, 0x8e, 0x52, 0xfa, 0x84, - 0x38, 0x93, 0xcc, 0x7c, 0xa5, 0xcd, 0x70, 0x67, 0x4d, 0x76, 0x9c, 0xcf, 0x34, 0x06, 0x2a, 0xfa, - 0x09, 0xb1, 0x95, 0xc6, 0x5e, 0xd9, 0x0c, 0xef, 0xaf, 0x69, 0x4f, 0x71, 0xbe, 0x31, 0x5b, 0xc1, - 0xd7, 0x6f, 0x6b, 0x95, 0xdf, 0x6f, 0x67, 0x4d, 0xf8, 0xb2, 0x18, 0x75, 0xcc, 0xd6, 0x8a, 0xf6, - 0x88, 0x33, 0x19, 0x27, 0x78, 0x3b, 0xcd, 0x70, 0x77, 0xfd, 0x04, 0xd8, 0x8e, 0x7e, 0x04, 0xc8, - 0x0c, 0x84, 0xf4, 0x29, 0x71, 0x2e, 0x12, 0x8d, 0x97, 0x05, 0x9f, 0xc6, 0xaa, 0x1e, 0x1b, 0x5b, - 0x2e, 0xbf, 0x48, 0x34, 0xc8, 0xe3, 0x7c, 0x3a, 0xdd, 0x26, 0xc7, 0x62, 0xcf, 0xe5, 0xf1, 0xa0, - 0x0f, 0xa7, 0xc9, 0x06, 0x7d, 0x9c, 0x58, 0xb7, 0x9d, 0xe6, 0xec, 0xba, 0x3e, 0x1b, 0xf4, 0xd1, - 0x7e, 0x3f, 0xc4, 0x31, 0xb6, 0xc1, 0x7e, 0x3f, 0x2c, 0xec, 0xf7, 0x43, 0xb4, 0xdf, 0x0f, 0x71, - 0xb6, 0x6d, 0xb2, 0x5f, 0xea, 0x33, 0xd4, 0x57, 0x70, 0xd8, 0x34, 0x36, 0xa0, 0x84, 0xaf, 0xcd, - 0xc8, 0x51, 0x07, 0xfe, 0xd0, 0x37, 0xc8, 0x06, 0x7f, 0xd3, 0xc0, 0x73, 0x7f, 0xa5, 0x25, 0xfd, - 0x9c, 0xb8, 0xe5, 0x78, 0xbc, 0xed, 0x05, 0xb0, 0xb1, 0x9b, 0x04, 0xa3, 0x7c, 0xe6, 0x93, 0x4a, - 0x1a, 0xcd, 0xf8, 0x4a, 0x89, 0xfe, 0x86, 0xbd, 0x00, 0x23, 0x3f, 0xb9, 0xff, 0x07, 0x00, 0x00, - 0xff, 0xff, 0x17, 0x38, 0x3a, 0x54, 0x53, 0x09, 0x00, 0x00, + // 1206 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x56, 0xcf, 0x72, 0x13, 0xc7, + 0x13, 0x66, 0x77, 0xb5, 0xfa, 0xd3, 0x32, 0x46, 0xbf, 0xc1, 0xc0, 0xa2, 0x1f, 0x09, 0x2a, 0x85, + 0x10, 0x05, 0x82, 0xa8, 0xc8, 0x2a, 0x55, 0x8a, 0xe4, 0x82, 0xb1, 0x09, 0xa9, 0x80, 0x93, 0x1a, + 0x43, 0xc8, 0x4d, 0xb5, 0xf2, 0xae, 0xc4, 0x92, 0xd5, 0x8c, 0x6a, 0x66, 0xd6, 0xa0, 0x4a, 0x0e, + 0x3e, 0xe7, 0x98, 0xca, 0x33, 0xe4, 0x11, 0x72, 0xc8, 0x63, 0xe4, 0x01, 0xf2, 0x20, 0x39, 0xa5, + 0xba, 0x67, 0x57, 0x6b, 0x2c, 0x74, 0xf2, 0x76, 0xf7, 0xf7, 0x7d, 0x9e, 0x99, 0xaf, 0x67, 0x5a, + 0xc0, 0x4c, 0xac, 0xcd, 0x58, 0x4e, 0x5e, 0xc7, 0xc7, 0x46, 0xf7, 0x17, 0x4a, 0x1a, 0xc9, 0xaa, + 0xaf, 0xb5, 0x14, 0x8b, 0x49, 0xfb, 0xfa, 0x4c, 0xca, 0x59, 0x1a, 0xdf, 0xa7, 0xec, 0x24, 0x9b, + 0xde, 0x0f, 0xc5, 0xd2, 0x42, 0xda, 0x1f, 0x9e, 0x2f, 0x45, 0x99, 0x0a, 0x4d, 0x22, 0x45, 0x5e, + 0xbf, 0x71, 0xbe, 0xae, 0x8d, 0xca, 0x8e, 0x4d, 0x5e, 0xbd, 0x79, 0xbe, 0x6a, 0x92, 0x79, 0xac, + 0x4d, 0x38, 0x5f, 0x6c, 0x92, 0x7f, 0xa3, 0xc2, 0xc5, 0x22, 0x56, 0xf9, 0x0a, 0xdb, 0x3b, 0x33, + 0x39, 0x93, 0xf4, 0x79, 0x1f, 0xbf, 0x6c, 0xb6, 0xfb, 0xb7, 0x0b, 0xd5, 0xa3, 0x64, 0xbe, 0x48, + 0x63, 0x76, 0x05, 0xaa, 0x72, 0x3c, 0x91, 0x32, 0x0d, 0x9c, 0x8e, 0xd3, 0xab, 0x73, 0x5f, 0xee, + 0x49, 0x99, 0xb2, 0x6b, 0x50, 0x93, 0xe3, 0x44, 0x98, 0xdd, 0x41, 0xe0, 0x76, 0x9c, 0x9e, 0xcf, + 0xab, 0xf2, 0x1b, 0x8c, 0x56, 0x85, 0xd1, 0x30, 0xf0, 0x3a, 0x4e, 0xcf, 0xb3, 0x85, 0xd1, 0x90, + 0x5d, 0x87, 0xba, 0x1c, 0x67, 0x96, 0x52, 0xe9, 0x38, 0xbd, 0x8b, 0xbc, 0x26, 0x5f, 0x50, 0x58, + 0x96, 0x46, 0xc3, 0xc0, 0xef, 0x38, 0xbd, 0x4a, 0x5e, 0x2a, 0x58, 0xda, 0xb2, 0xaa, 0x1d, 0xa7, + 0xf7, 0x3f, 0x5e, 0x93, 0x47, 0x67, 0x58, 0xda, 0xb2, 0x6a, 0x1d, 0xa7, 0xc7, 0xf2, 0xd2, 0x68, + 0x68, 0x17, 0x31, 0x4d, 0x65, 0x68, 0x82, 0x7a, 0xc7, 0xe9, 0xb9, 0xbc, 0x2a, 0x1f, 0x63, 0x64, + 0x39, 0x91, 0xcc, 0x26, 0x69, 0x1c, 0x34, 0x3a, 0x4e, 0xcf, 0xe1, 0x35, 0xb9, 0x4f, 0x61, 0x2e, + 0x67, 0x54, 0x22, 0x66, 0x01, 0x74, 0x9c, 0x5e, 0x03, 0xe5, 0x28, 0xb4, 0x72, 0x93, 0xa5, 0x89, + 0x75, 0xd0, 0xec, 0x38, 0xbd, 0x2d, 0x5e, 0x95, 0x7b, 0x18, 0xb1, 0xbb, 0xb0, 0x25, 0xc7, 0xc7, + 0xa1, 0x36, 0x79, 0x75, 0x0b, 0xab, 0x7b, 0x8d, 0x7f, 0xff, 0xb9, 0xe9, 0x13, 0x80, 0x83, 0x7c, + 0x14, 0x6a, 0x43, 0xdf, 0xdd, 0xdf, 0x1c, 0x80, 0x43, 0x29, 0x1e, 0x27, 0x22, 0x41, 0xee, 0x65, + 0xf0, 0xa7, 0x63, 0x11, 0x0a, 0x3a, 0x57, 0x97, 0x57, 0xa6, 0x87, 0xa1, 0xc0, 0xd3, 0x9e, 0x8e, + 0x17, 0x89, 0x98, 0xd2, 0xa9, 0xba, 0xdc, 0x9f, 0x7e, 0x9f, 0x88, 0xa9, 0x4d, 0x0b, 0x4c, 0x7b, + 0x79, 0xfa, 0x10, 0xd3, 0x97, 0xc1, 0x8f, 0x48, 0xa2, 0x42, 0x5b, 0xa9, 0x44, 0xb9, 0x44, 0x64, + 0x25, 0x7c, 0xca, 0xfa, 0x51, 0x21, 0x11, 0x59, 0x89, 0x6a, 0x9e, 0x46, 0x89, 0xee, 0x1f, 0x2e, + 0xd4, 0x78, 0xbc, 0x88, 0x43, 0xa3, 0x11, 0xa2, 0x0a, 0xab, 0x3d, 0xb4, 0x5a, 0x15, 0x56, 0xab, + 0x95, 0xd5, 0x1e, 0x5a, 0xad, 0x56, 0x56, 0xab, 0x95, 0xd5, 0x1e, 0x5a, 0xad, 0x56, 0x56, 0xab, + 0xd2, 0x6a, 0x0f, 0xad, 0x56, 0xa5, 0xd5, 0xaa, 0xb4, 0xda, 0x43, 0xab, 0x55, 0x69, 0xb5, 0x2a, + 0xad, 0xf6, 0xd0, 0x6a, 0x75, 0x74, 0x86, 0xb5, 0xb2, 0xda, 0x43, 0xab, 0x55, 0x69, 0xb5, 0x5a, + 0x59, 0xed, 0xa1, 0xd5, 0x6a, 0x65, 0xb5, 0x2a, 0xad, 0xf6, 0xd0, 0x6a, 0x55, 0x5a, 0xad, 0x4a, + 0xab, 0x3d, 0xb4, 0x5a, 0x95, 0x56, 0xab, 0x95, 0xd5, 0x1e, 0x5a, 0xad, 0xac, 0x7b, 0x7f, 0xba, + 0x50, 0x7d, 0x99, 0x44, 0xb3, 0xd8, 0xb0, 0x3b, 0xe0, 0x1f, 0xcb, 0x54, 0x2a, 0x72, 0x6e, 0x7b, + 0xb0, 0xd3, 0xb7, 0xb7, 0xbc, 0x6f, 0xcb, 0xfd, 0x47, 0x58, 0xe3, 0x16, 0xc2, 0xee, 0xa1, 0x9e, + 0x45, 0xe3, 0xe1, 0x6d, 0x42, 0x57, 0x15, 0xfd, 0x65, 0xb7, 0xa1, 0xaa, 0xe9, 0xde, 0x51, 0x0b, + 0x36, 0x07, 0xdb, 0x05, 0xda, 0xde, 0x46, 0x9e, 0x57, 0xd9, 0xa7, 0xf6, 0x40, 0x08, 0x89, 0xeb, + 0x5c, 0x47, 0xe2, 0x01, 0xe5, 0xd0, 0x9a, 0xb2, 0x06, 0x07, 0x3b, 0xa4, 0x79, 0xa9, 0x40, 0xe6, + 0xbe, 0xf3, 0xa2, 0xce, 0x3e, 0x83, 0x86, 0x1a, 0x17, 0xe0, 0x2b, 0x24, 0xbb, 0x06, 0xae, 0xab, + 0xfc, 0xab, 0xfb, 0x31, 0xf8, 0x76, 0xd1, 0x35, 0xf0, 0xf8, 0xc1, 0x7e, 0xeb, 0x02, 0x6b, 0x80, + 0xff, 0x35, 0x3f, 0x38, 0x38, 0x6c, 0x39, 0xac, 0x0e, 0x95, 0xbd, 0xa7, 0x2f, 0x0e, 0x5a, 0x6e, + 0xf7, 0x77, 0x17, 0x2a, 0xcf, 0xc2, 0x85, 0x66, 0x5f, 0x42, 0x73, 0x6e, 0xdb, 0x05, 0xcf, 0x9e, + 0x7a, 0xac, 0x39, 0xf8, 0x7f, 0xa1, 0x8f, 0x90, 0xfe, 0x33, 0xea, 0x9f, 0x23, 0xa3, 0x0e, 0x84, + 0x51, 0x4b, 0xde, 0x98, 0x17, 0x31, 0x7b, 0x08, 0x17, 0xe7, 0xd4, 0x9b, 0xc5, 0xae, 0x5d, 0xa2, + 0x7f, 0xf0, 0x2e, 0x1d, 0xfb, 0xd5, 0x6e, 0xdb, 0x0a, 0x34, 0xe7, 0x65, 0xa6, 0xfd, 0x15, 0x6c, + 0xbf, 0xab, 0xcf, 0x5a, 0xe0, 0xfd, 0x14, 0x2f, 0xc9, 0x46, 0x8f, 0xe3, 0x27, 0xdb, 0x01, 0xff, + 0x24, 0x4c, 0xb3, 0x98, 0xae, 0x5f, 0x83, 0xdb, 0xe0, 0x81, 0xfb, 0x85, 0xd3, 0x3e, 0x84, 0xd6, + 0x79, 0xf9, 0xb3, 0xfc, 0xba, 0xe5, 0xdf, 0x3a, 0xcb, 0x5f, 0x37, 0xa5, 0xd4, 0xeb, 0xfe, 0xea, + 0xc0, 0xd6, 0x33, 0x3d, 0x7b, 0x99, 0x98, 0x57, 0xdf, 0x89, 0x58, 0x4e, 0xd9, 0x55, 0xf0, 0x4d, + 0x62, 0xd2, 0x98, 0xe4, 0x1a, 0x4f, 0x2e, 0x70, 0x1b, 0xb2, 0x00, 0xaa, 0x3a, 0x4c, 0x43, 0xb5, + 0x24, 0x4d, 0xef, 0xc9, 0x05, 0x9e, 0xc7, 0xac, 0x0d, 0xb5, 0x47, 0x32, 0xc3, 0x95, 0xd0, 0xb3, + 0x80, 0x9c, 0x22, 0xc1, 0x3e, 0x82, 0xad, 0x57, 0x72, 0x1e, 0x8f, 0xc3, 0x28, 0x52, 0xb1, 0xd6, + 0xf4, 0x42, 0x20, 0xa0, 0x89, 0xd9, 0x87, 0x36, 0xb9, 0x57, 0x03, 0x3f, 0x13, 0x89, 0x14, 0xdd, + 0xdb, 0x50, 0xe1, 0x71, 0x98, 0x96, 0xdb, 0x77, 0xec, 0x1b, 0x41, 0xc1, 0x9d, 0x7a, 0x3d, 0x6a, + 0x9d, 0x9e, 0x9e, 0x9e, 0xba, 0xdd, 0x37, 0xf8, 0x1f, 0x71, 0x27, 0x6f, 0xd9, 0x0d, 0x68, 0x24, + 0xf3, 0x70, 0x96, 0x08, 0x5c, 0x99, 0x85, 0x97, 0x89, 0x92, 0x32, 0xd8, 0x87, 0x6d, 0x15, 0x87, + 0xe9, 0x38, 0x7e, 0x6b, 0x62, 0xa1, 0x13, 0x29, 0xd8, 0x56, 0xd9, 0x52, 0x61, 0x1a, 0xfc, 0xfc, + 0x6e, 0x4f, 0xe6, 0xf2, 0xfc, 0x22, 0x92, 0x0e, 0x0a, 0x4e, 0xf7, 0x2f, 0x1f, 0xe0, 0x5b, 0x21, + 0xdf, 0x88, 0xe7, 0xcb, 0x45, 0xac, 0xd9, 0x2d, 0x70, 0x43, 0x11, 0x6c, 0x13, 0x75, 0xa7, 0x6f, + 0x47, 0x5c, 0xbf, 0x18, 0x71, 0xfd, 0x87, 0x62, 0xc9, 0xdd, 0x50, 0xb0, 0xbb, 0xe0, 0x45, 0x99, + 0xbd, 0xa5, 0xcd, 0xc1, 0xf5, 0x35, 0xd8, 0x7e, 0x3e, 0x68, 0x39, 0xa2, 0xd8, 0x27, 0xe0, 0x6a, + 0x43, 0x0f, 0x78, 0x73, 0x70, 0x6d, 0x0d, 0x7b, 0x44, 0x43, 0x97, 0xbb, 0x1a, 0x6f, 0xbf, 0x6b, + 0x74, 0xee, 0x6f, 0x7b, 0x0d, 0xf8, 0xbc, 0x98, 0xbf, 0xdc, 0x35, 0x1a, 0xb1, 0xe9, 0x49, 0x70, + 0x69, 0x03, 0xf6, 0x69, 0xa2, 0xcd, 0x0f, 0x78, 0xc2, 0xdc, 0x4d, 0x4f, 0x58, 0x0f, 0xbc, 0x93, + 0x30, 0x0d, 0x5a, 0x04, 0xbe, 0xba, 0x06, 0xb6, 0x40, 0x84, 0xb0, 0x3e, 0x78, 0xd1, 0x24, 0x25, + 0xcf, 0x9b, 0x83, 0x1b, 0xeb, 0xfb, 0xa2, 0x47, 0x2e, 0xc7, 0x47, 0x93, 0x94, 0xdd, 0x03, 0x6f, + 0x9a, 0x1a, 0x6a, 0x01, 0xbc, 0x70, 0xe7, 0xf1, 0xf4, 0x5c, 0xe6, 0xf0, 0x69, 0x6a, 0x10, 0x9e, + 0xe4, 0x83, 0xf8, 0x7d, 0x70, 0xba, 0x42, 0x39, 0x3c, 0x19, 0x0d, 0x71, 0x35, 0xd9, 0x68, 0x48, + 0x53, 0xe5, 0x7d, 0xab, 0x79, 0x71, 0x16, 0x9f, 0x8d, 0x86, 0x24, 0xbf, 0x3b, 0xa0, 0x89, 0xbd, + 0x41, 0x7e, 0x77, 0x50, 0xc8, 0xef, 0x0e, 0x48, 0x7e, 0x77, 0x40, 0x63, 0x7c, 0x93, 0xfc, 0x0a, + 0x9f, 0x11, 0xbe, 0x42, 0x23, 0xac, 0xb1, 0xe1, 0xd0, 0xf1, 0x0e, 0x5b, 0x38, 0xe1, 0x50, 0x1f, + 0x5f, 0x23, 0xd8, 0xa0, 0x6f, 0xc7, 0x42, 0xae, 0xaf, 0x8d, 0x62, 0x9f, 0x83, 0x5f, 0xfe, 0x12, + 0x78, 0xdf, 0x06, 0x68, 0x5c, 0x58, 0x82, 0x45, 0x3e, 0xe8, 0x40, 0x45, 0x84, 0xf3, 0xf8, 0x5c, + 0xe3, 0xff, 0x42, 0x2f, 0x0c, 0x55, 0x7e, 0xf4, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x9a, 0xa6, + 0x21, 0x68, 0x3e, 0x0a, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto index 18d2adda3..a7bdac63c 100644 --- a/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto +++ b/vendor/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto/test_objects.proto @@ -57,6 +57,17 @@ message Simple { optional bytes o_cast_bytes = 12 [(gogoproto.casttype) = "Bytes"]; } +// Test message for holding special non-finites primitives. +message NonFinites { + optional float f_nan = 1; + optional float f_pinf = 2; + optional float f_ninf = 3; + optional double d_nan = 4; + optional double d_pinf = 5; + optional double d_ninf = 6; +} + + // Test message for holding repeated primitives. message Repeats { repeated bool r_bool = 1; @@ -125,6 +136,8 @@ message KnownTypes { optional google.protobuf.Duration dur = 1; optional google.protobuf.Struct st = 12; optional google.protobuf.Timestamp ts = 2; + optional google.protobuf.ListValue lv = 15; + optional google.protobuf.Value val = 16; optional google.protobuf.DoubleValue dbl = 3; optional google.protobuf.FloatValue flt = 4; diff --git a/vendor/github.com/gogo/protobuf/plugin/compare/compare.go b/vendor/github.com/gogo/protobuf/plugin/compare/compare.go index 75c0399af..97d0a4a9a 100644 --- a/vendor/github.com/gogo/protobuf/plugin/compare/compare.go +++ b/vendor/github.com/gogo/protobuf/plugin/compare/compare.go @@ -512,7 +512,7 @@ func (p *plugin) generateMessage(file *generator.FileDescriptor, message *genera p.In() p.generateMsgNullAndTypeCheck(ccTypeName) - vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(field) + vanity.TurnOffNullableForNativeTypes(field) p.generateField(file, message, field) p.P(`return 0`) diff --git a/vendor/github.com/gogo/protobuf/plugin/equal/equal.go b/vendor/github.com/gogo/protobuf/plugin/equal/equal.go index 6a422635d..9d937e42f 100644 --- a/vendor/github.com/gogo/protobuf/plugin/equal/equal.go +++ b/vendor/github.com/gogo/protobuf/plugin/equal/equal.go @@ -627,7 +627,7 @@ func (p *plugin) generateMessage(file *generator.FileDescriptor, message *genera p.In() p.generateMsgNullAndTypeCheck(ccTypeName, verbose) - vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(field) + vanity.TurnOffNullableForNativeTypes(field) p.generateField(file, message, field, verbose) if verbose { diff --git a/vendor/github.com/gogo/protobuf/plugin/gostring/gostring.go b/vendor/github.com/gogo/protobuf/plugin/gostring/gostring.go index 024c9f0aa..2b439469f 100644 --- a/vendor/github.com/gogo/protobuf/plugin/gostring/gostring.go +++ b/vendor/github.com/gogo/protobuf/plugin/gostring/gostring.go @@ -98,11 +98,12 @@ package gostring import ( "fmt" - "github.com/gogo/protobuf/gogoproto" - "github.com/gogo/protobuf/protoc-gen-gogo/generator" "os" "strconv" "strings" + + "github.com/gogo/protobuf/gogoproto" + "github.com/gogo/protobuf/protoc-gen-gogo/generator" ) type gostring struct { @@ -229,8 +230,22 @@ func (p *gostring) Generate(file *generator.FileDescriptor) { p.P(`if this.`, fieldname, ` != nil {`) p.In() } - if nullable || repeated { + if nullable { p.P(`s = append(s, "`, fieldname, `: " + `, fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `) + ",\n")`) + } else if repeated { + if nullable { + p.P(`s = append(s, "`, fieldname, `: " + `, fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `) + ",\n")`) + } else { + goTyp, _ := p.GoType(message, field) + goTyp = strings.Replace(goTyp, "[]", "", 1) + p.P("vs := make([]*", goTyp, ", len(this.", fieldname, "))") + p.P("for i := range vs {") + p.In() + p.P("vs[i] = &this.", fieldname, "[i]") + p.Out() + p.P("}") + p.P(`s = append(s, "`, fieldname, `: " + `, fmtPkg.Use(), `.Sprintf("%#v", vs) + ",\n")`) + } } else { p.P(`s = append(s, "`, fieldname, `: " + `, stringsPkg.Use(), `.Replace(this.`, fieldname, `.GoString()`, ",`&`,``,1)", ` + ",\n")`) } @@ -246,7 +261,7 @@ func (p *gostring) Generate(file *generator.FileDescriptor) { if field.IsEnum() { if nullable && !repeated && !proto3 { goTyp, _ := p.GoType(message, field) - p.P(`s = append(s, "`, fieldname, `: " + valueToGoString`, p.localName, `(this.`, fieldname, `,"`, packageName, ".", generator.GoTypeToName(goTyp), `"`, `) + ",\n")`) + p.P(`s = append(s, "`, fieldname, `: " + valueToGoString`, p.localName, `(this.`, fieldname, `,"`, generator.GoTypeToName(goTyp), `"`, `) + ",\n")`) } else { p.P(`s = append(s, "`, fieldname, `: " + `, fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `) + ",\n")`) } @@ -285,7 +300,6 @@ func (p *gostring) Generate(file *generator.FileDescriptor) { } p.P(`s = append(s, "}")`) - //outStr += strings.Join([]string{" + `}`", `}`, `,", "`, ")"}, "") p.P(`return `, stringsPkg.Use(), `.Join(s, "")`) p.Out() p.P(`}`) @@ -304,20 +318,15 @@ func (p *gostring) Generate(file *generator.FileDescriptor) { p.P(`return "nil"`) p.Out() p.P(`}`) - outFlds := []string{} fieldname := p.GetOneOfFieldName(message, field) - if field.IsMessage() || p.IsGroup(field) { - tmp := strings.Join([]string{"`", fieldname, ":` + "}, "") - tmp += strings.Join([]string{fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `)`}, "") - outFlds = append(outFlds, tmp) - } else { - tmp := strings.Join([]string{"`", fieldname, ":` + "}, "") - tmp += strings.Join([]string{fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, ")"}, "") - outFlds = append(outFlds, tmp) - } - outStr := strings.Join([]string{"s := ", stringsPkg.Use(), ".Join([]string{`&", packageName, ".", ccTypeName, "{` + \n"}, "") - outStr += strings.Join(outFlds, ",\n") - outStr += strings.Join([]string{" + `}`", `}`, `,", "`, ")"}, "") + outStr := strings.Join([]string{ + "s := ", + stringsPkg.Use(), ".Join([]string{`&", packageName, ".", ccTypeName, "{` + \n", + "`", fieldname, ":` + ", fmtPkg.Use(), `.Sprintf("%#v", this.`, fieldname, `)`, + " + `}`", + `}`, + `,", "`, + `)`}, "") p.P(outStr) p.P(`return s`) p.Out() diff --git a/vendor/github.com/gogo/protobuf/plugin/gostring/gostringtest.go b/vendor/github.com/gogo/protobuf/plugin/gostring/gostringtest.go index c7e6c1698..c790e5908 100644 --- a/vendor/github.com/gogo/protobuf/plugin/gostring/gostringtest.go +++ b/vendor/github.com/gogo/protobuf/plugin/gostring/gostringtest.go @@ -74,7 +74,7 @@ func (p *test) Generate(imports generator.PluginImports, file *generator.FileDes p.P(`_, err := `, parserPkg.Use(), `.ParseExpr(s1)`) p.P(`if err != nil {`) p.In() - p.P(`panic(err)`) + p.P(`t.Fatal(err)`) p.Out() p.P(`}`) p.Out() diff --git a/vendor/github.com/gogo/protobuf/plugin/marshalto/marshalto.go b/vendor/github.com/gogo/protobuf/plugin/marshalto/marshalto.go index b2631e673..24110cb44 100644 --- a/vendor/github.com/gogo/protobuf/plugin/marshalto/marshalto.go +++ b/vendor/github.com/gogo/protobuf/plugin/marshalto/marshalto.go @@ -172,28 +172,20 @@ type marshalto struct { *generator.Generator generator.PluginImports atleastOne bool - unsafePkg generator.Single errorsPkg generator.Single protoPkg generator.Single sortKeysPkg generator.Single mathPkg generator.Single typesPkg generator.Single + binaryPkg generator.Single localName string - unsafe bool } func NewMarshal() *marshalto { return &marshalto{} } -func NewUnsafeMarshal() *marshalto { - return &marshalto{unsafe: true} -} - func (p *marshalto) Name() string { - if p.unsafe { - return "unsafemarshaler" - } return "marshalto" } @@ -202,11 +194,13 @@ func (p *marshalto) Init(g *generator.Generator) { } func (p *marshalto) callFixed64(varName ...string) { - p.P(`i = encodeFixed64`, p.localName, `(dAtA, i, uint64(`, strings.Join(varName, ""), `))`) + p.P(p.binaryPkg.Use(), `.LittleEndian.PutUint64(dAtA[i:], uint64(`, strings.Join(varName, ""), `))`) + p.P(`i += 8`) } func (p *marshalto) callFixed32(varName ...string) { - p.P(`i = encodeFixed32`, p.localName, `(dAtA, i, uint32(`, strings.Join(varName, ""), `))`) + p.P(p.binaryPkg.Use(), `.LittleEndian.PutUint32(dAtA[i:], uint32(`, strings.Join(varName, ""), `))`) + p.P(`i += 4`) } func (p *marshalto) callVarint(varName ...string) { @@ -225,46 +219,6 @@ func (p *marshalto) encodeVarint(varName string) { p.P(`i++`) } -func (p *marshalto) encodeFixed64(varName string) { - p.P(`dAtA[i] = uint8(`, varName, `)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 8)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 16)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 24)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 32)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 40)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 48)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 56)`) - p.P(`i++`) -} - -func (p *marshalto) unsafeFixed64(varName string, someType string) { - p.P(`*(*`, someType, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[i])) = `, varName) - p.P(`i+=8`) -} - -func (p *marshalto) encodeFixed32(varName string) { - p.P(`dAtA[i] = uint8(`, varName, `)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 8)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 16)`) - p.P(`i++`) - p.P(`dAtA[i] = uint8(`, varName, ` >> 24)`) - p.P(`i++`) -} - -func (p *marshalto) unsafeFixed32(varName string, someType string) { - p.P(`*(*`, someType, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[i])) = `, varName) - p.P(`i+=4`) -} - func (p *marshalto) encodeKey(fieldNumber int32, wireType int) { x := uint32(fieldNumber)<<3 | uint32(wireType) i := 0 @@ -428,132 +382,68 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi } switch *field.Type { case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - if !p.unsafe || gogoproto.IsCastType(field) { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 8`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float64bits(float64(num))`) - p.encodeFixed64("f" + numGen.Current()) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float64bits(float64(num))`) - p.encodeFixed64("f" + numGen.Current()) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callFixed64(p.mathPkg.Use(), `.Float64bits(float64(m.`+fieldname, `))`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callFixed64(p.mathPkg.Use(), `.Float64bits(float64(m.`+fieldname, `))`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callFixed64(p.mathPkg.Use(), `.Float64bits(float64(*m.`+fieldname, `))`) - } + if packed { + p.encodeKey(fieldNumber, wireType) + p.callVarint(`len(m.`, fieldname, `) * 8`) + p.P(`for _, num := range m.`, fieldname, ` {`) + p.In() + p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float64bits(float64(num))`) + p.callFixed64("f" + numGen.Current()) + p.Out() + p.P(`}`) + } else if repeated { + p.P(`for _, num := range m.`, fieldname, ` {`) + p.In() + p.encodeKey(fieldNumber, wireType) + p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float64bits(float64(num))`) + p.callFixed64("f" + numGen.Current()) + p.Out() + p.P(`}`) + } else if proto3 { + p.P(`if m.`, fieldname, ` != 0 {`) + p.In() + p.encodeKey(fieldNumber, wireType) + p.callFixed64(p.mathPkg.Use(), `.Float64bits(float64(m.`+fieldname, `))`) + p.Out() + p.P(`}`) + } else if !nullable { + p.encodeKey(fieldNumber, wireType) + p.callFixed64(p.mathPkg.Use(), `.Float64bits(float64(m.`+fieldname, `))`) } else { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 8`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.unsafeFixed64("num", "float64") - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("num", "float64") - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64(`m.`+fieldname, "float64") - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64(`m.`+fieldname, "float64") - } else { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64(`*m.`+fieldname, `float64`) - } + p.encodeKey(fieldNumber, wireType) + p.callFixed64(p.mathPkg.Use(), `.Float64bits(float64(*m.`+fieldname, `))`) } case descriptor.FieldDescriptorProto_TYPE_FLOAT: - if !p.unsafe || gogoproto.IsCastType(field) { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 4`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float32bits(float32(num))`) - p.encodeFixed32("f" + numGen.Current()) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float32bits(float32(num))`) - p.encodeFixed32("f" + numGen.Current()) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callFixed32(p.mathPkg.Use(), `.Float32bits(float32(m.`+fieldname, `))`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callFixed32(p.mathPkg.Use(), `.Float32bits(float32(m.`+fieldname, `))`) - } else { - p.encodeKey(fieldNumber, wireType) - p.callFixed32(p.mathPkg.Use(), `.Float32bits(float32(*m.`+fieldname, `))`) - } + if packed { + p.encodeKey(fieldNumber, wireType) + p.callVarint(`len(m.`, fieldname, `) * 4`) + p.P(`for _, num := range m.`, fieldname, ` {`) + p.In() + p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float32bits(float32(num))`) + p.callFixed32("f" + numGen.Current()) + p.Out() + p.P(`}`) + } else if repeated { + p.P(`for _, num := range m.`, fieldname, ` {`) + p.In() + p.encodeKey(fieldNumber, wireType) + p.P(`f`, numGen.Next(), ` := `, p.mathPkg.Use(), `.Float32bits(float32(num))`) + p.callFixed32("f" + numGen.Current()) + p.Out() + p.P(`}`) + } else if proto3 { + p.P(`if m.`, fieldname, ` != 0 {`) + p.In() + p.encodeKey(fieldNumber, wireType) + p.callFixed32(p.mathPkg.Use(), `.Float32bits(float32(m.`+fieldname, `))`) + p.Out() + p.P(`}`) + } else if !nullable { + p.encodeKey(fieldNumber, wireType) + p.callFixed32(p.mathPkg.Use(), `.Float32bits(float32(m.`+fieldname, `))`) } else { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 4`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.unsafeFixed32("num", "float32") - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("num", "float32") - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32(`m.`+fieldname, `float32`) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32(`m.`+fieldname, `float32`) - } else { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32(`*m.`+fieldname, "float32") - } + p.encodeKey(fieldNumber, wireType) + p.callFixed32(p.mathPkg.Use(), `.Float32bits(float32(*m.`+fieldname, `))`) } case descriptor.FieldDescriptorProto_TYPE_INT64, descriptor.FieldDescriptorProto_TYPE_UINT64, @@ -610,137 +500,65 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi } case descriptor.FieldDescriptorProto_TYPE_FIXED64, descriptor.FieldDescriptorProto_TYPE_SFIXED64: - if !p.unsafe { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 8`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeFixed64("num") - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.encodeFixed64("num") - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callFixed64("m." + fieldname) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callFixed64("m." + fieldname) - } else { - p.encodeKey(fieldNumber, wireType) - p.callFixed64("*m." + fieldname) - } + if packed { + p.encodeKey(fieldNumber, wireType) + p.callVarint(`len(m.`, fieldname, `) * 8`) + p.P(`for _, num := range m.`, fieldname, ` {`) + p.In() + p.callFixed64("num") + p.Out() + p.P(`}`) + } else if repeated { + p.P(`for _, num := range m.`, fieldname, ` {`) + p.In() + p.encodeKey(fieldNumber, wireType) + p.callFixed64("num") + p.Out() + p.P(`}`) + } else if proto3 { + p.P(`if m.`, fieldname, ` != 0 {`) + p.In() + p.encodeKey(fieldNumber, wireType) + p.callFixed64("m." + fieldname) + p.Out() + p.P(`}`) + } else if !nullable { + p.encodeKey(fieldNumber, wireType) + p.callFixed64("m." + fieldname) } else { - typeName := "int64" - if *field.Type == descriptor.FieldDescriptorProto_TYPE_FIXED64 { - typeName = "uint64" - } - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 8`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.unsafeFixed64("num", typeName) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("num", typeName) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("m."+fieldname, typeName) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("m."+fieldname, typeName) - } else { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed64("*m."+fieldname, typeName) - } + p.encodeKey(fieldNumber, wireType) + p.callFixed64("*m." + fieldname) } case descriptor.FieldDescriptorProto_TYPE_FIXED32, descriptor.FieldDescriptorProto_TYPE_SFIXED32: - if !p.unsafe { - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 4`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeFixed32("num") - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.encodeFixed32("num") - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.callFixed32("m." + fieldname) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.callFixed32("m." + fieldname) - } else { - p.encodeKey(fieldNumber, wireType) - p.callFixed32("*m." + fieldname) - } + if packed { + p.encodeKey(fieldNumber, wireType) + p.callVarint(`len(m.`, fieldname, `) * 4`) + p.P(`for _, num := range m.`, fieldname, ` {`) + p.In() + p.callFixed32("num") + p.Out() + p.P(`}`) + } else if repeated { + p.P(`for _, num := range m.`, fieldname, ` {`) + p.In() + p.encodeKey(fieldNumber, wireType) + p.callFixed32("num") + p.Out() + p.P(`}`) + } else if proto3 { + p.P(`if m.`, fieldname, ` != 0 {`) + p.In() + p.encodeKey(fieldNumber, wireType) + p.callFixed32("m." + fieldname) + p.Out() + p.P(`}`) + } else if !nullable { + p.encodeKey(fieldNumber, wireType) + p.callFixed32("m." + fieldname) } else { - typeName := "int32" - if *field.Type == descriptor.FieldDescriptorProto_TYPE_FIXED32 { - typeName = "uint32" - } - if packed { - p.encodeKey(fieldNumber, wireType) - p.callVarint(`len(m.`, fieldname, `) * 4`) - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.unsafeFixed32("num", typeName) - p.Out() - p.P(`}`) - } else if repeated { - p.P(`for _, num := range m.`, fieldname, ` {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("num", typeName) - p.Out() - p.P(`}`) - } else if proto3 { - p.P(`if m.`, fieldname, ` != 0 {`) - p.In() - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("m."+fieldname, typeName) - p.Out() - p.P(`}`) - } else if !nullable { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("m."+fieldname, typeName) - } else { - p.encodeKey(fieldNumber, wireType) - p.unsafeFixed32("*m."+fieldname, typeName) - } + p.encodeKey(fieldNumber, wireType) + p.callFixed32("*m." + fieldname) } case descriptor.FieldDescriptorProto_TYPE_BOOL: if packed { @@ -1240,6 +1058,7 @@ func (p *marshalto) generateField(proto3 bool, numGen NumGen, file *generator.Fi func (p *marshalto) Generate(file *generator.FileDescriptor) { numGen := NewNumGen() p.PluginImports = generator.NewPluginImports(p.Generator) + p.atleastOne = false p.localName = generator.FileName(file) @@ -1249,8 +1068,8 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { p.protoPkg = p.NewImport("github.com/golang/protobuf/proto") } - p.unsafePkg = p.NewImport("unsafe") p.errorsPkg = p.NewImport("errors") + p.binaryPkg = p.NewImport("encoding/binary") p.typesPkg = p.NewImport("github.com/gogo/protobuf/types") for _, message := range file.Messages() { @@ -1258,21 +1077,9 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { continue } ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if p.unsafe { - if !gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.IsMarshaler(file.FileDescriptorProto, message.DescriptorProto) { - panic(fmt.Sprintf("unsafe_marshaler and marshalto enabled for %v", ccTypeName)) - } - } - if !p.unsafe { - if !gogoproto.IsMarshaler(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) { - panic(fmt.Sprintf("unsafe_marshaler and marshalto enabled for %v", ccTypeName)) - } + if !gogoproto.IsMarshaler(file.FileDescriptorProto, message.DescriptorProto) && + !gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) { + continue } p.atleastOne = true @@ -1367,7 +1174,7 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { p.P(`func (m *`, ccTypeName, `) MarshalTo(dAtA []byte) (int, error) {`) p.In() p.P(`i := 0`) - vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(field) + vanity.TurnOffNullableForNativeTypes(field) p.generateField(false, numGen, file, message, field) p.P(`return i, nil`) p.Out() @@ -1376,30 +1183,6 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { } if p.atleastOne { - p.P(`func encodeFixed64`, p.localName, `(dAtA []byte, offset int, v uint64) int {`) - p.In() - p.P(`dAtA[offset] = uint8(v)`) - p.P(`dAtA[offset+1] = uint8(v >> 8)`) - p.P(`dAtA[offset+2] = uint8(v >> 16)`) - p.P(`dAtA[offset+3] = uint8(v >> 24)`) - p.P(`dAtA[offset+4] = uint8(v >> 32)`) - p.P(`dAtA[offset+5] = uint8(v >> 40)`) - p.P(`dAtA[offset+6] = uint8(v >> 48)`) - p.P(`dAtA[offset+7] = uint8(v >> 56)`) - p.P(`return offset+8`) - p.Out() - p.P(`}`) - - p.P(`func encodeFixed32`, p.localName, `(dAtA []byte, offset int, v uint32) int {`) - p.In() - p.P(`dAtA[offset] = uint8(v)`) - p.P(`dAtA[offset+1] = uint8(v >> 8)`) - p.P(`dAtA[offset+2] = uint8(v >> 16)`) - p.P(`dAtA[offset+3] = uint8(v >> 24)`) - p.P(`return offset+4`) - p.Out() - p.P(`}`) - p.P(`func encodeVarint`, p.localName, `(dAtA []byte, offset int, v uint64) int {`) p.In() p.P(`for v >= 1<<7 {`) @@ -1419,5 +1202,4 @@ func (p *marshalto) Generate(file *generator.FileDescriptor) { func init() { generator.RegisterPlugin(NewMarshal()) - generator.RegisterPlugin(NewUnsafeMarshal()) } diff --git a/vendor/github.com/gogo/protobuf/plugin/populate/populate.go b/vendor/github.com/gogo/protobuf/plugin/populate/populate.go index 16aee3248..30e5a69e2 100644 --- a/vendor/github.com/gogo/protobuf/plugin/populate/populate.go +++ b/vendor/github.com/gogo/protobuf/plugin/populate/populate.go @@ -667,7 +667,7 @@ func (p *plugin) Generate(file *generator.FileDescriptor) { p.P(`func NewPopulated`, ccTypeName, `(r randy`, p.localName, `, easy bool) *`, ccTypeName, ` {`) p.In() p.P(`this := &`, ccTypeName, `{}`) - vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(f) + vanity.TurnOffNullableForNativeTypes(f) p.GenerateField(file, message, f) p.P(`return this`) p.Out() diff --git a/vendor/github.com/gogo/protobuf/plugin/size/size.go b/vendor/github.com/gogo/protobuf/plugin/size/size.go index 014831b12..79cd403be 100644 --- a/vendor/github.com/gogo/protobuf/plugin/size/size.go +++ b/vendor/github.com/gogo/protobuf/plugin/size/size.go @@ -652,7 +652,7 @@ func (p *size) Generate(file *generator.FileDescriptor) { p.In() p.P(`var l int`) p.P(`_ = l`) - vanity.TurnOffNullableForNativeTypesWithoutDefaultsOnly(f) + vanity.TurnOffNullableForNativeTypes(f) p.generateField(false, file, message, f, sizeName) p.P(`return n`) p.Out() diff --git a/vendor/github.com/gogo/protobuf/plugin/testgen/testgen.go b/vendor/github.com/gogo/protobuf/plugin/testgen/testgen.go index a9364f99a..e0a9287e5 100644 --- a/vendor/github.com/gogo/protobuf/plugin/testgen/testgen.go +++ b/vendor/github.com/gogo/protobuf/plugin/testgen/testgen.go @@ -270,7 +270,6 @@ func (p *testProto) Generate(imports generator.PluginImports, file *generator.Fi testingPkg := imports.NewImport("testing") randPkg := imports.NewImport("math/rand") timePkg := imports.NewImport("time") - unsafePkg := imports.NewImport("unsafe") protoPkg := imports.NewImport("github.com/gogo/protobuf/proto") if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { protoPkg = imports.NewImport("github.com/golang/protobuf/proto") @@ -280,21 +279,11 @@ func (p *testProto) Generate(imports generator.PluginImports, file *generator.Fi if message.DescriptorProto.GetOptions().GetMapEntry() { continue } - hasUnsafe := gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) || - gogoproto.IsUnsafeUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) if gogoproto.HasTestGen(file.FileDescriptorProto, message.DescriptorProto) { used = true p.P(`func Test`, ccTypeName, `Proto(t *`, testingPkg.Use(), `.T) {`) p.In() - if hasUnsafe { - p.P(`var bigendian uint32 = 0x01020304`) - p.P(`if *(*byte)(`, unsafePkg.Use(), `.Pointer(&bigendian)) == 1 {`) - p.In() - p.P(`t.Skip("unsafe does not work on big endian architectures")`) - p.Out() - p.P(`}`) - } p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) @@ -351,14 +340,6 @@ func (p *testProto) Generate(imports generator.PluginImports, file *generator.Fi if gogoproto.IsMarshaler(file.FileDescriptorProto, message.DescriptorProto) || gogoproto.IsUnsafeMarshaler(file.FileDescriptorProto, message.DescriptorProto) { p.P(`func Test`, ccTypeName, `MarshalTo(t *`, testingPkg.Use(), `.T) {`) p.In() - if hasUnsafe { - p.P(`var bigendian uint32 = 0x01020304`) - p.P(`if *(*byte)(`, unsafePkg.Use(), `.Pointer(&bigendian)) == 1 {`) - p.In() - p.P(`t.Skip("unsafe does not work on big endian architectures")`) - p.Out() - p.P(`}`) - } p.P(`seed := `, timePkg.Use(), `.Now().UnixNano()`) p.P(`popr := `, randPkg.Use(), `.New(`, randPkg.Use(), `.NewSource(seed))`) p.P(`p := NewPopulated`, ccTypeName, `(popr, false)`) diff --git a/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go b/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go index 6b67914b0..b5d9613df 100644 --- a/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go +++ b/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go @@ -187,13 +187,12 @@ import ( type unmarshal struct { *generator.Generator - unsafe bool generator.PluginImports atleastOne bool ioPkg generator.Single mathPkg generator.Single - unsafePkg generator.Single typesPkg generator.Single + binaryPkg generator.Single localName string } @@ -201,14 +200,7 @@ func NewUnmarshal() *unmarshal { return &unmarshal{} } -func NewUnsafeUnmarshal() *unmarshal { - return &unmarshal{unsafe: true} -} - func (p *unmarshal) Name() string { - if p.unsafe { - return "unsafeunmarshaler" - } return "unmarshal" } @@ -247,20 +239,7 @@ func (p *unmarshal) decodeFixed32(varName string, typeName string) { p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) p.Out() p.P(`}`) - p.P(`iNdEx += 4`) - p.P(varName, ` = `, typeName, `(dAtA[iNdEx-4])`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-3]) << 8`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-2]) << 16`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-1]) << 24`) -} - -func (p *unmarshal) unsafeFixed32(varName string, typeName string) { - p.P(`if iNdEx + 4 > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[iNdEx]))`) + p.P(varName, ` = `, typeName, `(`, p.binaryPkg.Use(), `.LittleEndian.Uint32(dAtA[iNdEx:]))`) p.P(`iNdEx += 4`) } @@ -270,25 +249,71 @@ func (p *unmarshal) decodeFixed64(varName string, typeName string) { p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) p.Out() p.P(`}`) + p.P(varName, ` = `, typeName, `(`, p.binaryPkg.Use(), `.LittleEndian.Uint64(dAtA[iNdEx:]))`) p.P(`iNdEx += 8`) - p.P(varName, ` = `, typeName, `(dAtA[iNdEx-8])`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-7]) << 8`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-6]) << 16`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-5]) << 24`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-4]) << 32`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-3]) << 40`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-2]) << 48`) - p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-1]) << 56`) } -func (p *unmarshal) unsafeFixed64(varName string, typeName string) { - p.P(`if iNdEx + 8 > l {`) - p.In() - p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) - p.Out() - p.P(`}`) - p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[iNdEx]))`) - p.P(`iNdEx += 8`) +func (p *unmarshal) declareMapField(varName string, nullable bool, customType bool, field *descriptor.FieldDescriptorProto) { + switch field.GetType() { + case descriptor.FieldDescriptorProto_TYPE_DOUBLE: + p.P(`var `, varName, ` float64`) + case descriptor.FieldDescriptorProto_TYPE_FLOAT: + p.P(`var `, varName, ` float32`) + case descriptor.FieldDescriptorProto_TYPE_INT64: + p.P(`var `, varName, ` int64`) + case descriptor.FieldDescriptorProto_TYPE_UINT64: + p.P(`var `, varName, ` uint64`) + case descriptor.FieldDescriptorProto_TYPE_INT32: + p.P(`var `, varName, ` int32`) + case descriptor.FieldDescriptorProto_TYPE_FIXED64: + p.P(`var `, varName, ` uint64`) + case descriptor.FieldDescriptorProto_TYPE_FIXED32: + p.P(`var `, varName, ` uint32`) + case descriptor.FieldDescriptorProto_TYPE_BOOL: + p.P(`var `, varName, ` bool`) + case descriptor.FieldDescriptorProto_TYPE_STRING: + cast, _ := p.GoType(nil, field) + cast = strings.Replace(cast, "*", "", 1) + p.P(`var `, varName, ` `, cast) + case descriptor.FieldDescriptorProto_TYPE_MESSAGE: + if gogoproto.IsStdTime(field) { + p.P(varName, ` := new(time.Time)`) + } else if gogoproto.IsStdDuration(field) { + p.P(varName, ` := new(time.Duration)`) + } else { + desc := p.ObjectNamed(field.GetTypeName()) + msgname := p.TypeName(desc) + if nullable { + p.P(`var `, varName, ` *`, msgname) + } else { + p.P(varName, ` := &`, msgname, `{}`) + } + } + case descriptor.FieldDescriptorProto_TYPE_BYTES: + if customType { + _, ctyp, err := generator.GetCustomType(field) + if err != nil { + panic(err) + } + p.P(`var `, varName, `1 `, ctyp) + p.P(`var `, varName, ` = &`, varName, `1`) + } else { + p.P(varName, ` := []byte{}`) + } + case descriptor.FieldDescriptorProto_TYPE_UINT32: + p.P(`var `, varName, ` uint32`) + case descriptor.FieldDescriptorProto_TYPE_ENUM: + typName := p.TypeName(p.ObjectNamed(field.GetTypeName())) + p.P(`var `, varName, ` `, typName) + case descriptor.FieldDescriptorProto_TYPE_SFIXED32: + p.P(`var `, varName, ` int32`) + case descriptor.FieldDescriptorProto_TYPE_SFIXED64: + p.P(`var `, varName, ` int64`) + case descriptor.FieldDescriptorProto_TYPE_SINT32: + p.P(`var `, varName, ` int32`) + case descriptor.FieldDescriptorProto_TYPE_SINT64: + p.P(`var `, varName, ` int64`) + } } func (p *unmarshal) mapField(varName string, customType bool, field *descriptor.FieldDescriptorProto) { @@ -296,30 +321,25 @@ func (p *unmarshal) mapField(varName string, customType bool, field *descriptor. case descriptor.FieldDescriptorProto_TYPE_DOUBLE: p.P(`var `, varName, `temp uint64`) p.decodeFixed64(varName+"temp", "uint64") - p.P(varName, ` := `, p.mathPkg.Use(), `.Float64frombits(`, varName, `temp)`) + p.P(varName, ` = `, p.mathPkg.Use(), `.Float64frombits(`, varName, `temp)`) case descriptor.FieldDescriptorProto_TYPE_FLOAT: p.P(`var `, varName, `temp uint32`) p.decodeFixed32(varName+"temp", "uint32") - p.P(varName, ` := `, p.mathPkg.Use(), `.Float32frombits(`, varName, `temp)`) + p.P(varName, ` = `, p.mathPkg.Use(), `.Float32frombits(`, varName, `temp)`) case descriptor.FieldDescriptorProto_TYPE_INT64: - p.P(`var `, varName, ` int64`) p.decodeVarint(varName, "int64") case descriptor.FieldDescriptorProto_TYPE_UINT64: - p.P(`var `, varName, ` uint64`) p.decodeVarint(varName, "uint64") case descriptor.FieldDescriptorProto_TYPE_INT32: - p.P(`var `, varName, ` int32`) p.decodeVarint(varName, "int32") case descriptor.FieldDescriptorProto_TYPE_FIXED64: - p.P(`var `, varName, ` uint64`) p.decodeFixed64(varName, "uint64") case descriptor.FieldDescriptorProto_TYPE_FIXED32: - p.P(`var `, varName, ` uint32`) p.decodeFixed32(varName, "uint32") case descriptor.FieldDescriptorProto_TYPE_BOOL: p.P(`var `, varName, `temp int`) p.decodeVarint(varName+"temp", "int") - p.P(varName, ` := bool(`, varName, `temp != 0)`) + p.P(varName, ` = bool(`, varName, `temp != 0)`) case descriptor.FieldDescriptorProto_TYPE_STRING: p.P(`var stringLen`, varName, ` uint64`) p.decodeVarint("stringLen"+varName, "uint64") @@ -337,7 +357,7 @@ func (p *unmarshal) mapField(varName string, customType bool, field *descriptor. p.P(`}`) cast, _ := p.GoType(nil, field) cast = strings.Replace(cast, "*", "", 1) - p.P(varName, ` := `, cast, `(dAtA[iNdEx:postStringIndex`, varName, `])`) + p.P(varName, ` = `, cast, `(dAtA[iNdEx:postStringIndex`, varName, `])`) p.P(`iNdEx = postStringIndex`, varName) case descriptor.FieldDescriptorProto_TYPE_MESSAGE: p.P(`var mapmsglen int`) @@ -358,17 +378,15 @@ func (p *unmarshal) mapField(varName string, customType bool, field *descriptor. p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) p.Out() p.P(`}`) - desc := p.ObjectNamed(field.GetTypeName()) - msgname := p.TypeName(desc) buf := `dAtA[iNdEx:postmsgIndex]` if gogoproto.IsStdTime(field) { - p.P(varName, ` := new(time.Time)`) p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(`, varName, `, `, buf, `); err != nil {`) } else if gogoproto.IsStdDuration(field) { - p.P(varName, ` := new(time.Duration)`) p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(`, varName, `, `, buf, `); err != nil {`) } else { - p.P(varName, ` := &`, msgname, `{}`) + desc := p.ObjectNamed(field.GetTypeName()) + msgname := p.TypeName(desc) + p.P(varName, ` = &`, msgname, `{}`) p.P(`if err := `, varName, `.Unmarshal(`, buf, `); err != nil {`) } p.In() @@ -392,45 +410,35 @@ func (p *unmarshal) mapField(varName string, customType bool, field *descriptor. p.Out() p.P(`}`) if customType { - _, ctyp, err := generator.GetCustomType(field) - if err != nil { - panic(err) - } - p.P(`var `, varName, `1 `, ctyp) - p.P(`var `, varName, ` = &`, varName, `1`) p.P(`if err := `, varName, `.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil {`) p.In() p.P(`return err`) p.Out() p.P(`}`) } else { - p.P(varName, ` := make([]byte, mapbyteLen)`) + p.P(varName, ` = make([]byte, mapbyteLen)`) p.P(`copy(`, varName, `, dAtA[iNdEx:postbytesIndex])`) } p.P(`iNdEx = postbytesIndex`) case descriptor.FieldDescriptorProto_TYPE_UINT32: - p.P(`var `, varName, ` uint32`) p.decodeVarint(varName, "uint32") case descriptor.FieldDescriptorProto_TYPE_ENUM: typName := p.TypeName(p.ObjectNamed(field.GetTypeName())) - p.P(`var `, varName, ` `, typName) p.decodeVarint(varName, typName) case descriptor.FieldDescriptorProto_TYPE_SFIXED32: - p.P(`var `, varName, ` int32`) p.decodeFixed32(varName, "int32") case descriptor.FieldDescriptorProto_TYPE_SFIXED64: - p.P(`var `, varName, ` int64`) p.decodeFixed64(varName, "int64") case descriptor.FieldDescriptorProto_TYPE_SINT32: p.P(`var `, varName, `temp int32`) p.decodeVarint(varName+"temp", "int32") p.P(varName, `temp = int32((uint32(`, varName, `temp) >> 1) ^ uint32(((`, varName, `temp&1)<<31)>>31))`) - p.P(varName, ` := int32(`, varName, `temp)`) + p.P(varName, ` = int32(`, varName, `temp)`) case descriptor.FieldDescriptorProto_TYPE_SINT64: p.P(`var `, varName, `temp uint64`) p.decodeVarint(varName+"temp", "uint64") p.P(varName, `temp = (`, varName, `temp >> 1) ^ uint64((int64(`, varName, `temp&1)<<63)>>63)`) - p.P(varName, ` := int64(`, varName, `temp)`) + p.P(varName, ` = int64(`, varName, `temp)`) } } @@ -452,68 +460,32 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip oneof := field.OneofIndex != nil switch *field.Type { case descriptor.FieldDescriptorProto_TYPE_DOUBLE: - if !p.unsafe || gogoproto.IsCastType(field) { - p.P(`var v uint64`) - p.decodeFixed64("v", "uint64") - if oneof { - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))}`) - } else if repeated { - p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))`) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v2)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = `, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))`) - } else { - p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))`) - p.P(`m.`, fieldname, ` = &v2`) - } + p.P(`var v uint64`) + p.decodeFixed64("v", "uint64") + if oneof { + p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))}`) + } else if repeated { + p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))`) + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v2)`) + } else if proto3 || !nullable { + p.P(`m.`, fieldname, ` = `, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))`) } else { - if oneof { - p.P(`var v float64`) - p.unsafeFixed64("v", "float64") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v float64`) - p.unsafeFixed64("v", "float64") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed64(`m.`+fieldname, "float64") - } else { - p.P(`var v float64`) - p.unsafeFixed64("v", "float64") - p.P(`m.`, fieldname, ` = &v`) - } + p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float64frombits(v))`) + p.P(`m.`, fieldname, ` = &v2`) } case descriptor.FieldDescriptorProto_TYPE_FLOAT: - if !p.unsafe || gogoproto.IsCastType(field) { - p.P(`var v uint32`) - p.decodeFixed32("v", "uint32") - if oneof { - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))}`) - } else if repeated { - p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))`) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v2)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = `, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))`) - } else { - p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))`) - p.P(`m.`, fieldname, ` = &v2`) - } + p.P(`var v uint32`) + p.decodeFixed32("v", "uint32") + if oneof { + p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))}`) + } else if repeated { + p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))`) + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v2)`) + } else if proto3 || !nullable { + p.P(`m.`, fieldname, ` = `, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))`) } else { - if oneof { - p.P(`var v float32`) - p.unsafeFixed32("v", "float32") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v float32`) - p.unsafeFixed32("v", "float32") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed32("m."+fieldname, "float32") - } else { - p.P(`var v float32`) - p.unsafeFixed32("v", "float32") - p.P(`m.`, fieldname, ` = &v`) - } + p.P(`v2 := `, typ, "(", p.mathPkg.Use(), `.Float32frombits(v))`) + p.P(`m.`, fieldname, ` = &v2`) } case descriptor.FieldDescriptorProto_TYPE_INT64: if oneof { @@ -567,74 +539,38 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip p.P(`m.`, fieldname, ` = &v`) } case descriptor.FieldDescriptorProto_TYPE_FIXED64: - if !p.unsafe || gogoproto.IsCastType(field) { - if oneof { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeFixed64("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } + if oneof { + p.P(`var v `, typ) + p.decodeFixed64("v", typ) + p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) + } else if repeated { + p.P(`var v `, typ) + p.decodeFixed64("v", typ) + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) + } else if proto3 || !nullable { + p.P(`m.`, fieldname, ` = 0`) + p.decodeFixed64("m."+fieldname, typ) } else { - if oneof { - p.P(`var v uint64`) - p.unsafeFixed64("v", "uint64") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v uint64`) - p.unsafeFixed64("v", "uint64") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed64("m."+fieldname, "uint64") - } else { - p.P(`var v uint64`) - p.unsafeFixed64("v", "uint64") - p.P(`m.`, fieldname, ` = &v`) - } + p.P(`var v `, typ) + p.decodeFixed64("v", typ) + p.P(`m.`, fieldname, ` = &v`) } case descriptor.FieldDescriptorProto_TYPE_FIXED32: - if !p.unsafe || gogoproto.IsCastType(field) { - if oneof { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeFixed32("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } + if oneof { + p.P(`var v `, typ) + p.decodeFixed32("v", typ) + p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) + } else if repeated { + p.P(`var v `, typ) + p.decodeFixed32("v", typ) + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) + } else if proto3 || !nullable { + p.P(`m.`, fieldname, ` = 0`) + p.decodeFixed32("m."+fieldname, typ) } else { - if oneof { - p.P(`var v uint32`) - p.unsafeFixed32("v", "uint32") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v uint32`) - p.unsafeFixed32("v", "uint32") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed32("m."+fieldname, "uint32") - } else { - p.P(`var v uint32`) - p.unsafeFixed32("v", "uint32") - p.P(`m.`, fieldname, ` = &v`) - } + p.P(`var v `, typ) + p.decodeFixed32("v", typ) + p.P(`m.`, fieldname, ` = &v`) } case descriptor.FieldDescriptorProto_TYPE_BOOL: p.P(`var v int`) @@ -747,20 +683,63 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip valuegoTyp = valuegoAliasTyp } - p.P(`var keykey uint64`) - p.decodeVarint("keykey", "uint64") - p.mapField("mapkey", false, m.KeyAliasField) p.P(`if m.`, fieldname, ` == nil {`) p.In() p.P(`m.`, fieldname, ` = make(`, m.GoType, `)`) p.Out() p.P(`}`) + + p.declareMapField("mapkey", false, false, m.KeyAliasField) + p.declareMapField("mapvalue", nullable, gogoproto.IsCustomType(field), m.ValueAliasField) + p.P(`for iNdEx < postIndex {`) + p.In() + + p.P(`entryPreIndex := iNdEx`) + p.P(`var wire uint64`) + p.decodeVarint("wire", "uint64") + p.P(`fieldNum := int32(wire >> 3)`) + + p.P(`if fieldNum == 1 {`) + p.In() + p.mapField("mapkey", false, m.KeyAliasField) + p.Out() + p.P(`} else if fieldNum == 2 {`) + p.In() + p.mapField("mapvalue", gogoproto.IsCustomType(field), m.ValueAliasField) + p.Out() + p.P(`} else {`) + p.In() + p.P(`iNdEx = entryPreIndex`) + p.P(`skippy, err := skip`, p.localName, `(dAtA[iNdEx:])`) + p.P(`if err != nil {`) + p.In() + p.P(`return err`) + p.Out() + p.P(`}`) + p.P(`if skippy < 0 {`) + p.In() + p.P(`return ErrInvalidLength`, p.localName) + p.Out() + p.P(`}`) + p.P(`if (iNdEx + skippy) > postIndex {`) + p.In() + p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`) + p.Out() + p.P(`}`) + p.P(`iNdEx += skippy`) + p.Out() + p.P(`}`) + + p.Out() + p.P(`}`) + s := `m.` + fieldname if keygoTyp == keygoAliasTyp { s += `[mapkey]` } else { s += `[` + keygoAliasTyp + `(mapkey)]` } + v := `mapvalue` if (m.ValueField.IsMessage() || gogoproto.IsCustomType(field)) && !nullable { v = `*` + v @@ -768,35 +747,8 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip if valuegoTyp != valuegoAliasTyp { v = `((` + valuegoAliasTyp + `)(` + v + `))` } - p.P(`if iNdEx < postIndex {`) - p.In() - p.P(`var valuekey uint64`) - p.decodeVarint("valuekey", "uint64") - p.mapField("mapvalue", gogoproto.IsCustomType(field), m.ValueAliasField) + p.P(s, ` = `, v) - p.Out() - p.P(`} else {`) - p.In() - if gogoproto.IsStdTime(field) { - p.P(`var mapvalue = new(time.Time)`) - if nullable { - p.P(s, ` = mapvalue`) - } else { - p.P(s, ` = *mapvalue`) - } - } else if gogoproto.IsStdDuration(field) { - p.P(`var mapvalue = new(time.Duration)`) - if nullable { - p.P(s, ` = mapvalue`) - } else { - p.P(s, ` = *mapvalue`) - } - } else { - p.P(`var mapvalue `, valuegoAliasTyp) - p.P(s, ` = mapvalue`) - } - p.Out() - p.P(`}`) } else if repeated { if gogoproto.IsStdTime(field) { if nullable { @@ -984,74 +936,38 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip p.P(`m.`, fieldname, ` = &v`) } case descriptor.FieldDescriptorProto_TYPE_SFIXED32: - if !p.unsafe || gogoproto.IsCastType(field) { - if oneof { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeFixed32("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeFixed32("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } + if oneof { + p.P(`var v `, typ) + p.decodeFixed32("v", typ) + p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) + } else if repeated { + p.P(`var v `, typ) + p.decodeFixed32("v", typ) + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) + } else if proto3 || !nullable { + p.P(`m.`, fieldname, ` = 0`) + p.decodeFixed32("m."+fieldname, typ) } else { - if oneof { - p.P(`var v int32`) - p.unsafeFixed32("v", "int32") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v int32`) - p.unsafeFixed32("v", "int32") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed32("m."+fieldname, "int32") - } else { - p.P(`var v int32`) - p.unsafeFixed32("v", "int32") - p.P(`m.`, fieldname, ` = &v`) - } + p.P(`var v `, typ) + p.decodeFixed32("v", typ) + p.P(`m.`, fieldname, ` = &v`) } case descriptor.FieldDescriptorProto_TYPE_SFIXED64: - if !p.unsafe || gogoproto.IsCastType(field) { - if oneof { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.P(`m.`, fieldname, ` = 0`) - p.decodeFixed64("m."+fieldname, typ) - } else { - p.P(`var v `, typ) - p.decodeFixed64("v", typ) - p.P(`m.`, fieldname, ` = &v`) - } + if oneof { + p.P(`var v `, typ) + p.decodeFixed64("v", typ) + p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) + } else if repeated { + p.P(`var v `, typ) + p.decodeFixed64("v", typ) + p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) + } else if proto3 || !nullable { + p.P(`m.`, fieldname, ` = 0`) + p.decodeFixed64("m."+fieldname, typ) } else { - if oneof { - p.P(`var v int64`) - p.unsafeFixed64("v", "int64") - p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`) - } else if repeated { - p.P(`var v int64`) - p.unsafeFixed64("v", "int64") - p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`) - } else if proto3 || !nullable { - p.unsafeFixed64("m."+fieldname, "int64") - } else { - p.P(`var v int64`) - p.unsafeFixed64("v", "int64") - p.P(`m.`, fieldname, ` = &v`) - } + p.P(`var v `, typ) + p.decodeFixed64("v", typ) + p.P(`m.`, fieldname, ` = &v`) } case descriptor.FieldDescriptorProto_TYPE_SINT32: p.P(`var v `, typ) @@ -1090,14 +1006,11 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { p.PluginImports = generator.NewPluginImports(p.Generator) p.atleastOne = false p.localName = generator.FileName(file) - if p.unsafe { - p.localName += "Unsafe" - } p.ioPkg = p.NewImport("io") p.mathPkg = p.NewImport("math") - p.unsafePkg = p.NewImport("unsafe") p.typesPkg = p.NewImport("github.com/gogo/protobuf/types") + p.binaryPkg = p.NewImport("encoding/binary") fmtPkg := p.NewImport("fmt") protoPkg := p.NewImport("github.com/gogo/protobuf/proto") if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) { @@ -1106,21 +1019,9 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { for _, message := range file.Messages() { ccTypeName := generator.CamelCaseSlice(message.TypeName()) - if p.unsafe { - if !gogoproto.IsUnsafeUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.IsUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) { - panic(fmt.Sprintf("unsafe_unmarshaler and unmarshaler enabled for %v", ccTypeName)) - } - } - if !p.unsafe { - if !gogoproto.IsUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) { - continue - } - if gogoproto.IsUnsafeUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) { - panic(fmt.Sprintf("unsafe_unmarshaler and unmarshaler enabled for %v", ccTypeName)) - } + if !gogoproto.IsUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) && + !gogoproto.IsUnsafeUnmarshaler(file.FileDescriptorProto, message.DescriptorProto) { + continue } if message.DescriptorProto.GetOptions().GetMapEntry() { continue @@ -1445,5 +1346,4 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { func init() { generator.RegisterPlugin(NewUnmarshal()) - generator.RegisterPlugin(NewUnsafeUnmarshal()) } diff --git a/vendor/github.com/gogo/protobuf/proto/decode_test.go b/vendor/github.com/gogo/protobuf/proto/decode_test.go index 0cfae71ec..64d4decd9 100644 --- a/vendor/github.com/gogo/protobuf/proto/decode_test.go +++ b/vendor/github.com/gogo/protobuf/proto/decode_test.go @@ -29,6 +29,8 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +build go1.7 + package proto_test import ( diff --git a/vendor/github.com/gogo/protobuf/proto/encode.go b/vendor/github.com/gogo/protobuf/proto/encode.go index 2b30f8462..8b84d1b22 100644 --- a/vendor/github.com/gogo/protobuf/proto/encode.go +++ b/vendor/github.com/gogo/protobuf/proto/encode.go @@ -174,11 +174,11 @@ func sizeFixed32(x uint64) int { // This is the format used for the sint64 protocol buffer type. func (p *Buffer) EncodeZigzag64(x uint64) error { // use signed number to get arithmetic right shift. - return p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return p.EncodeVarint((x << 1) ^ uint64((int64(x) >> 63))) } func sizeZigzag64(x uint64) int { - return sizeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return sizeVarint((x << 1) ^ uint64((int64(x) >> 63))) } // EncodeZigzag32 writes a zigzag-encoded 32-bit integer diff --git a/vendor/github.com/gogo/protobuf/proto/encode_test.go b/vendor/github.com/gogo/protobuf/proto/encode_test.go index bc7e18ab5..2176b894d 100644 --- a/vendor/github.com/gogo/protobuf/proto/encode_test.go +++ b/vendor/github.com/gogo/protobuf/proto/encode_test.go @@ -29,6 +29,8 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +build go1.7 + package proto_test import ( diff --git a/vendor/github.com/gogo/protobuf/proto/lib.go b/vendor/github.com/gogo/protobuf/proto/lib.go index 7580bb45c..c98d73da4 100644 --- a/vendor/github.com/gogo/protobuf/proto/lib.go +++ b/vendor/github.com/gogo/protobuf/proto/lib.go @@ -73,7 +73,6 @@ for a protocol buffer variable v: When the .proto file specifies `syntax="proto3"`, there are some differences: - Non-repeated fields of non-message type are values instead of pointers. - - Getters are only generated for message and oneof fields. - Enum types do not get an Enum method. The simplest way to describe this is to see an example. diff --git a/vendor/github.com/gogo/protobuf/proto/properties.go b/vendor/github.com/gogo/protobuf/proto/properties.go index 44b332052..2a69e8862 100644 --- a/vendor/github.com/gogo/protobuf/proto/properties.go +++ b/vendor/github.com/gogo/protobuf/proto/properties.go @@ -193,6 +193,7 @@ type Properties struct { Default string // default value HasDefault bool // whether an explicit default was provided CustomType string + CastType string StdTime bool StdDuration bool @@ -341,6 +342,8 @@ func (p *Properties) Parse(s string) { p.OrigName = strings.Split(f, "=")[1] case strings.HasPrefix(f, "customtype="): p.CustomType = strings.Split(f, "=")[1] + case strings.HasPrefix(f, "casttype="): + p.CastType = strings.Split(f, "=")[1] case f == "stdtime": p.StdTime = true case f == "stdduration": diff --git a/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go b/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go index 6630a0ab3..5c6aff77d 100644 --- a/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go +++ b/vendor/github.com/gogo/protobuf/proto/proto3_proto/proto3.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto3_proto/proto3.proto -// DO NOT EDIT! /* Package proto3_proto is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/proto/testdata/test.pb.go b/vendor/github.com/gogo/protobuf/proto/testdata/test.pb.go index 01f3ad678..1a9a99376 100644 --- a/vendor/github.com/gogo/protobuf/proto/testdata/test.pb.go +++ b/vendor/github.com/gogo/protobuf/proto/testdata/test.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: test.proto -// DO NOT EDIT! /* Package testdata is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/proto/text.go b/vendor/github.com/gogo/protobuf/proto/text.go index d63732fcb..f609d1d45 100644 --- a/vendor/github.com/gogo/protobuf/proto/text.go +++ b/vendor/github.com/gogo/protobuf/proto/text.go @@ -522,6 +522,17 @@ func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Propert } return nil } + } else if len(props.CastType) > 0 { + if _, ok := v.Interface().(interface { + String() string + }); ok { + switch v.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + _, err := fmt.Fprintf(w, "%d", v.Interface()) + return err + } + } } else if props.StdTime { t, ok := v.Interface().(time.Time) if !ok { @@ -531,9 +542,9 @@ func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Propert if err != nil { return err } - props.StdTime = false - err = tm.writeAny(w, reflect.ValueOf(tproto), props) - props.StdTime = true + propsCopy := *props // Make a copy so that this is goroutine-safe + propsCopy.StdTime = false + err = tm.writeAny(w, reflect.ValueOf(tproto), &propsCopy) return err } else if props.StdDuration { d, ok := v.Interface().(time.Duration) @@ -541,9 +552,9 @@ func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Propert return fmt.Errorf("stdtime is not time.Duration, but %T", v.Interface()) } dproto := durationProto(d) - props.StdDuration = false - err := tm.writeAny(w, reflect.ValueOf(dproto), props) - props.StdDuration = true + propsCopy := *props // Make a copy so that this is goroutine-safe + propsCopy.StdDuration = false + err := tm.writeAny(w, reflect.ValueOf(dproto), &propsCopy) return err } } diff --git a/vendor/github.com/gogo/protobuf/proto/text_parser.go b/vendor/github.com/gogo/protobuf/proto/text_parser.go index 9db12e960..f1276729a 100644 --- a/vendor/github.com/gogo/protobuf/proto/text_parser.go +++ b/vendor/github.com/gogo/protobuf/proto/text_parser.go @@ -983,7 +983,7 @@ func (p *textParser) readAny(v reflect.Value, props *Properties) error { return p.readStruct(fv, terminator) case reflect.Uint32: if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { - fv.SetUint(uint64(x)) + fv.SetUint(x) return nil } case reflect.Uint64: diff --git a/vendor/github.com/gogo/protobuf/proto/text_test.go b/vendor/github.com/gogo/protobuf/proto/text_test.go index 652404842..27df6cb9b 100644 --- a/vendor/github.com/gogo/protobuf/proto/text_test.go +++ b/vendor/github.com/gogo/protobuf/proto/text_test.go @@ -339,13 +339,13 @@ func TestStringEscaping(t *testing.T) { } // Check round-trip. - pb := new(pb.Strings) - if err := proto.UnmarshalText(s, pb); err != nil { + pbStrings := new(pb.Strings) + if err := proto.UnmarshalText(s, pbStrings); err != nil { t.Errorf("#%d: UnmarshalText: %v", i, err) continue } - if !proto.Equal(pb, tc.in) { - t.Errorf("#%d: Round-trip failed:\nstart: %v\n end: %v", i, tc.in, pb) + if !proto.Equal(pbStrings, tc.in) { + t.Errorf("#%d: Round-trip failed:\nstart: %v\n end: %v", i, tc.in, pbStrings) } } } diff --git a/vendor/github.com/gogo/protobuf/protobuf/Makefile b/vendor/github.com/gogo/protobuf/protobuf/Makefile index 86b33c45b..6bc7e3ad4 100644 --- a/vendor/github.com/gogo/protobuf/protobuf/Makefile +++ b/vendor/github.com/gogo/protobuf/protobuf/Makefile @@ -8,9 +8,14 @@ update: # The descriptor.proto is only compatible with proto3 just because of the reserved keyword. # We remove it to stay compatible with previous versions of protoc before proto3 gogoreplace 'reserved 38;' '//reserved 38;' ./google/protobuf/descriptor.proto + gogoreplace 'reserved 8;' '//reserved 8;' ./google/protobuf/descriptor.proto + gogoreplace 'reserved 9;' '//reserved 9;' ./google/protobuf/descriptor.proto + gogoreplace 'reserved 4;' '//reserved 4;' ./google/protobuf/descriptor.proto + gogoreplace 'reserved 5;' '//reserved 5;' ./google/protobuf/descriptor.proto + gogoreplace 'option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor";' 'option go_package = "descriptor";' ./google/protobuf/descriptor.proto (cd ./google/protobuf/compiler && rm plugin.proto; wget ${URL}/compiler/plugin.proto) - + gogoreplace 'option go_package = "github.com/golang/protobuf/protoc-gen-go/plugin;plugin_go";' 'option go_package = "plugin_go";' ./google/protobuf/compiler/plugin.proto (cd ./google/protobuf && rm any.proto; wget ${URL}/any.proto) gogoreplace 'go_package = "github.com/golang/protobuf/ptypes/any";' 'go_package = "types";' ./google/protobuf/any.proto @@ -25,6 +30,6 @@ update: (cd ./google/protobuf && rm wrappers.proto; wget ${URL}/wrappers.proto) gogoreplace 'go_package = "github.com/golang/protobuf/ptypes/wrappers";' 'go_package = "types";' ./google/protobuf/wrappers.proto (cd ./google/protobuf && rm field_mask.proto; wget ${URL}/field_mask.proto) - gogoreplace 'option csharp_namespace = "Google.Protobuf.WellKnownTypes";' 'option csharp_namespace = "Google.Protobuf.WellKnownTypes"; option go_package = "types";' ./google/protobuf/field_mask.proto + gogoreplace 'option go_package = "google.golang.org/genproto/protobuf/field_mask;field_mask";' 'option go_package = "types";' ./google/protobuf/field_mask.proto diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto index 7eaf2291d..d9519f5cf 100644 --- a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/any.proto @@ -74,6 +74,16 @@ option objc_class_prefix = "GPB"; // any.Unpack(foo) // ... // +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := ptypes.MarshalAny(foo) +// ... +// foo := &pb.Foo{} +// if err := ptypes.UnmarshalAny(any, foo); err != nil { +// ... +// } +// // The pack methods provided by protobuf library will by default use // 'type.googleapis.com/full.type.name' as the type URL and the unpack // methods only use the fully qualified type name after the last '/' diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto index 6e4da2c19..e85c852fc 100644 --- a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/compiler/plugin.proto @@ -84,10 +84,14 @@ message CodeGeneratorRequest { // the entire set into memory at once. However, as of this writing, this // is not similarly optimized on protoc's end -- it will store all fields in // memory at once before sending them to the plugin. + // + // Type names of fields and extensions in the FileDescriptorProto are always + // fully qualified. repeated FileDescriptorProto proto_file = 15; // The version number of protocol compiler. optional Version compiler_version = 3; + } // The plugin writes an encoded CodeGeneratorResponse to stdout. diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto index 2cc496b57..411cd9de2 100644 --- a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/descriptor.proto @@ -45,6 +45,7 @@ option java_package = "com.google.protobuf"; option java_outer_classname = "DescriptorProtos"; option csharp_namespace = "Google.Protobuf.Reflection"; option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; // descriptor.proto must be optimized for speed because reflection-based // algorithms don't work during bootstrapping. @@ -101,6 +102,8 @@ message DescriptorProto { message ExtensionRange { optional int32 start = 1; optional int32 end = 2; + + optional ExtensionRangeOptions options = 3; } repeated ExtensionRange extension_range = 5; @@ -121,6 +124,14 @@ message DescriptorProto { repeated string reserved_name = 10; } +message ExtensionRangeOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + // Describes a field within a message. message FieldDescriptorProto { enum Type { @@ -215,6 +226,26 @@ message EnumDescriptorProto { repeated EnumValueDescriptorProto value = 2; optional EnumOptions options = 3; + + // Range of reserved numeric values. Reserved values may not be used by + // entries in the same enum. Reserved ranges may not overlap. + // + // Note that this is distinct from DescriptorProto.ReservedRange in that it + // is inclusive such that it can appropriately represent the entire int32 + // domain. + message EnumReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Inclusive. + } + + // Range of reserved numeric values. Reserved numeric values may not be used + // by enum values in the same enum declaration. Reserved ranges may not + // overlap. + repeated EnumReservedRange reserved_range = 4; + + // Reserved enum value names, which may not be reused. A given name may only + // be reserved once. + repeated string reserved_name = 5; } // Describes a value within an enum. @@ -351,6 +382,7 @@ message FileOptions { optional bool cc_generic_services = 16 [default=false]; optional bool java_generic_services = 17 [default=false]; optional bool py_generic_services = 18 [default=false]; + optional bool php_generic_services = 42 [default=false]; // Is this file deprecated? // Depending on the target platform, this can emit Deprecated annotations @@ -376,6 +408,15 @@ message FileOptions { // to prefix the types/symbols defined. optional string swift_prefix = 39; + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + optional string php_class_prefix = 40; + + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + optional string php_namespace = 41; + // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -441,7 +482,7 @@ message MessageOptions { optional bool map_entry = 7; //reserved 8; // javalite_serializable - + //reserved 9; // javanano_as_lite // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -473,13 +514,15 @@ message FieldOptions { // The jstype option determines the JavaScript type used for values of the // field. The option is permitted only for 64 bit integral and fixed types - // (int64, uint64, sint64, fixed64, sfixed64). By default these types are - // represented as JavaScript strings. This avoids loss of precision that can - // happen when a large value is converted to a floating point JavaScript - // numbers. Specifying JS_NUMBER for the jstype causes the generated - // JavaScript code to use the JavaScript "number" type instead of strings. - // This option is an enum to permit additional types to be added, - // e.g. goog.math.Integer. + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. optional JSType jstype = 6 [default = JS_NORMAL]; enum JSType { // Use the default type. @@ -561,6 +604,7 @@ message EnumOptions { // is a formalization for deprecating enums. optional bool deprecated = 3 [default=false]; + //reserved 5; // javanano_as_lite // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto index 318922b79..8bbaa8b62 100644 --- a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/duration.proto @@ -47,6 +47,8 @@ option objc_class_prefix = "GPB"; // two Timestamp values is a Duration and it can be added or subtracted // from a Timestamp. Range is approximately +-10,000 years. // +// # Examples +// // Example 1: Compute Duration from two Timestamps in pseudo code. // // Timestamp start = ...; @@ -87,11 +89,22 @@ option objc_class_prefix = "GPB"; // duration = Duration() // duration.FromTimedelta(td) // +// # JSON Mapping +// +// In JSON format, the Duration type is encoded as a string rather than an +// object, where the string ends in the suffix "s" (indicating seconds) and +// is preceded by the number of seconds, with nanoseconds expressed as +// fractional seconds. For example, 3 seconds with 0 nanoseconds should be +// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should +// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 +// microsecond should be expressed in JSON format as "3.000001s". +// // message Duration { // Signed seconds of the span of time. Must be from -315,576,000,000 - // to +315,576,000,000 inclusive. + // to +315,576,000,000 inclusive. Note: these bounds are computed from: + // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years int64 seconds = 1; // Signed fractions of a second at nanosecond resolution of the span diff --git a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto index c544c83ee..4ba0b97b2 100644 --- a/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto +++ b/vendor/github.com/gogo/protobuf/protobuf/google/protobuf/timestamp.proto @@ -52,6 +52,8 @@ option objc_class_prefix = "GPB"; // and from RFC 3339 date strings. // See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). // +// # Examples +// // Example 1: Compute Timestamp from POSIX `time()`. // // Timestamp timestamp; @@ -92,6 +94,29 @@ option objc_class_prefix = "GPB"; // timestamp = Timestamp() // timestamp.GetCurrentTime() // +// # JSON Mapping +// +// In JSON format, the Timestamp type is encoded as a string in the +// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the +// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" +// where {year} is always expressed using four digits while {month}, {day}, +// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional +// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), +// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone +// is required, though only UTC (as indicated by "Z") is presently supported. +// +// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past +// 01:30 UTC on January 15, 2017. +// +// In JavaScript, one can convert a Date object to this format using the +// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// method. In Python, a standard `datetime.datetime` object can be converted +// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) +// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one +// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) +// to obtain a formatter capable of generating timestamps in this format. +// // message Timestamp { diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-combo/combo.go b/vendor/github.com/gogo/protobuf/protoc-gen-combo/combo.go index eebcc1cf4..aa0067ece 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-combo/combo.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-combo/combo.go @@ -179,22 +179,4 @@ func main() { "option (gogoproto.unsafe_unmarshaler_all) = false;", "option (gogoproto.unsafe_marshaler_all) = false;", }) - m.Gen("./combos/unsafemarshaler/", []string{ - "option (gogoproto.unmarshaler_all) = false;", - "option (gogoproto.marshaler_all) = false;", - "option (gogoproto.unsafe_unmarshaler_all) = false;", - "option (gogoproto.unsafe_marshaler_all) = true;", - }) - m.Gen("./combos/unsafeunmarshaler/", []string{ - "option (gogoproto.unmarshaler_all) = false;", - "option (gogoproto.marshaler_all) = false;", - "option (gogoproto.unsafe_unmarshaler_all) = true;", - "option (gogoproto.unsafe_marshaler_all) = false;", - }) - m.Gen("./combos/unsafeboth/", []string{ - "option (gogoproto.unmarshaler_all) = false;", - "option (gogoproto.marshaler_all) = false;", - "option (gogoproto.unsafe_unmarshaler_all) = true;", - "option (gogoproto.unsafe_marshaler_all) = true;", - }) } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go index e2703901b..4174cbd9f 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: descriptor.proto -// DO NOT EDIT! /* Package descriptor is a generated protocol buffer package. @@ -12,6 +11,7 @@ It has these top-level messages: FileDescriptorSet FileDescriptorProto DescriptorProto + ExtensionRangeOptions FieldDescriptorProto OneofDescriptorProto EnumDescriptorProto @@ -139,7 +139,7 @@ func (x *FieldDescriptorProto_Type) UnmarshalJSON(data []byte) error { return nil } func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{3, 0} + return fileDescriptorDescriptor, []int{4, 0} } type FieldDescriptorProto_Label int32 @@ -179,7 +179,7 @@ func (x *FieldDescriptorProto_Label) UnmarshalJSON(data []byte) error { return nil } func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{3, 1} + return fileDescriptorDescriptor, []int{4, 1} } // Generated classes can be optimized for speed or code size. @@ -220,7 +220,7 @@ func (x *FileOptions_OptimizeMode) UnmarshalJSON(data []byte) error { return nil } func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{9, 0} + return fileDescriptorDescriptor, []int{10, 0} } type FieldOptions_CType int32 @@ -260,7 +260,7 @@ func (x *FieldOptions_CType) UnmarshalJSON(data []byte) error { return nil } func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{11, 0} + return fileDescriptorDescriptor, []int{12, 0} } type FieldOptions_JSType int32 @@ -302,7 +302,7 @@ func (x *FieldOptions_JSType) UnmarshalJSON(data []byte) error { return nil } func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{11, 1} + return fileDescriptorDescriptor, []int{12, 1} } // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, @@ -344,7 +344,7 @@ func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error { return nil } func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{16, 0} + return fileDescriptorDescriptor, []int{17, 0} } // The protocol compiler can output a FileDescriptorSet containing the .proto @@ -576,9 +576,10 @@ func (m *DescriptorProto) GetReservedName() []string { } type DescriptorProto_ExtensionRange struct { - Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` - End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` - XXX_unrecognized []byte `json:"-"` + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + Options *ExtensionRangeOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + XXX_unrecognized []byte `json:"-"` } func (m *DescriptorProto_ExtensionRange) Reset() { *m = DescriptorProto_ExtensionRange{} } @@ -602,6 +603,13 @@ func (m *DescriptorProto_ExtensionRange) GetEnd() int32 { return 0 } +func (m *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions { + if m != nil { + return m.Options + } + return nil +} + // Range of reserved tag numbers. Reserved tag numbers may not be used by // fields or extension ranges in the same message. Reserved ranges may // not overlap. @@ -632,6 +640,33 @@ func (m *DescriptorProto_ReservedRange) GetEnd() int32 { return 0 } +type ExtensionRangeOptions struct { + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *ExtensionRangeOptions) Reset() { *m = ExtensionRangeOptions{} } +func (m *ExtensionRangeOptions) String() string { return proto.CompactTextString(m) } +func (*ExtensionRangeOptions) ProtoMessage() {} +func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{3} } + +var extRange_ExtensionRangeOptions = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*ExtensionRangeOptions) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_ExtensionRangeOptions +} + +func (m *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption { + if m != nil { + return m.UninterpretedOption + } + return nil +} + // Describes a field within a message. type FieldDescriptorProto struct { Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` @@ -670,7 +705,7 @@ type FieldDescriptorProto struct { func (m *FieldDescriptorProto) Reset() { *m = FieldDescriptorProto{} } func (m *FieldDescriptorProto) String() string { return proto.CompactTextString(m) } func (*FieldDescriptorProto) ProtoMessage() {} -func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{3} } +func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{4} } func (m *FieldDescriptorProto) GetName() string { if m != nil && m.Name != nil { @@ -752,7 +787,7 @@ type OneofDescriptorProto struct { func (m *OneofDescriptorProto) Reset() { *m = OneofDescriptorProto{} } func (m *OneofDescriptorProto) String() string { return proto.CompactTextString(m) } func (*OneofDescriptorProto) ProtoMessage() {} -func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{4} } +func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{5} } func (m *OneofDescriptorProto) GetName() string { if m != nil && m.Name != nil { @@ -770,16 +805,23 @@ func (m *OneofDescriptorProto) GetOptions() *OneofOptions { // Describes an enum type. type EnumDescriptorProto struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` - Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` - Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` - XXX_unrecognized []byte `json:"-"` + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` + Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + // Range of reserved numeric values. Reserved numeric values may not be used + // by enum values in the same enum declaration. Reserved ranges may not + // overlap. + ReservedRange []*EnumDescriptorProto_EnumReservedRange `protobuf:"bytes,4,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` + // Reserved enum value names, which may not be reused. A given name may only + // be reserved once. + ReservedName []string `protobuf:"bytes,5,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` + XXX_unrecognized []byte `json:"-"` } func (m *EnumDescriptorProto) Reset() { *m = EnumDescriptorProto{} } func (m *EnumDescriptorProto) String() string { return proto.CompactTextString(m) } func (*EnumDescriptorProto) ProtoMessage() {} -func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{5} } +func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{6} } func (m *EnumDescriptorProto) GetName() string { if m != nil && m.Name != nil { @@ -802,6 +844,53 @@ func (m *EnumDescriptorProto) GetOptions() *EnumOptions { return nil } +func (m *EnumDescriptorProto) GetReservedRange() []*EnumDescriptorProto_EnumReservedRange { + if m != nil { + return m.ReservedRange + } + return nil +} + +func (m *EnumDescriptorProto) GetReservedName() []string { + if m != nil { + return m.ReservedName + } + return nil +} + +// Range of reserved numeric values. Reserved values may not be used by +// entries in the same enum. Reserved ranges may not overlap. +// +// Note that this is distinct from DescriptorProto.ReservedRange in that it +// is inclusive such that it can appropriately represent the entire int32 +// domain. +type EnumDescriptorProto_EnumReservedRange struct { + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *EnumDescriptorProto_EnumReservedRange) Reset() { *m = EnumDescriptorProto_EnumReservedRange{} } +func (m *EnumDescriptorProto_EnumReservedRange) String() string { return proto.CompactTextString(m) } +func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} +func (*EnumDescriptorProto_EnumReservedRange) Descriptor() ([]byte, []int) { + return fileDescriptorDescriptor, []int{6, 0} +} + +func (m *EnumDescriptorProto_EnumReservedRange) GetStart() int32 { + if m != nil && m.Start != nil { + return *m.Start + } + return 0 +} + +func (m *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + // Describes a value within an enum. type EnumValueDescriptorProto struct { Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` @@ -814,7 +903,7 @@ func (m *EnumValueDescriptorProto) Reset() { *m = EnumValueDescriptorPro func (m *EnumValueDescriptorProto) String() string { return proto.CompactTextString(m) } func (*EnumValueDescriptorProto) ProtoMessage() {} func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{6} + return fileDescriptorDescriptor, []int{7} } func (m *EnumValueDescriptorProto) GetName() string { @@ -849,7 +938,7 @@ type ServiceDescriptorProto struct { func (m *ServiceDescriptorProto) Reset() { *m = ServiceDescriptorProto{} } func (m *ServiceDescriptorProto) String() string { return proto.CompactTextString(m) } func (*ServiceDescriptorProto) ProtoMessage() {} -func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{7} } +func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{8} } func (m *ServiceDescriptorProto) GetName() string { if m != nil && m.Name != nil { @@ -890,7 +979,7 @@ type MethodDescriptorProto struct { func (m *MethodDescriptorProto) Reset() { *m = MethodDescriptorProto{} } func (m *MethodDescriptorProto) String() string { return proto.CompactTextString(m) } func (*MethodDescriptorProto) ProtoMessage() {} -func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{8} } +func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{9} } const Default_MethodDescriptorProto_ClientStreaming bool = false const Default_MethodDescriptorProto_ServerStreaming bool = false @@ -985,6 +1074,7 @@ type FileOptions struct { CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` + PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` // Is this file deprecated? // Depending on the target platform, this can emit Deprecated annotations // for everything in the file, or it will be completely ignored; in the very @@ -1003,6 +1093,13 @@ type FileOptions struct { // defined. When this options is provided, they will use this value instead // to prefix the types/symbols defined. SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"` + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + PhpClassPrefix *string `protobuf:"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix" json:"php_class_prefix,omitempty"` + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` proto.XXX_InternalExtensions `json:"-"` @@ -1012,7 +1109,7 @@ type FileOptions struct { func (m *FileOptions) Reset() { *m = FileOptions{} } func (m *FileOptions) String() string { return proto.CompactTextString(m) } func (*FileOptions) ProtoMessage() {} -func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{9} } +func (*FileOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{10} } var extRange_FileOptions = []proto.ExtensionRange{ {Start: 1000, End: 536870911}, @@ -1028,6 +1125,7 @@ const Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPE const Default_FileOptions_CcGenericServices bool = false const Default_FileOptions_JavaGenericServices bool = false const Default_FileOptions_PyGenericServices bool = false +const Default_FileOptions_PhpGenericServices bool = false const Default_FileOptions_Deprecated bool = false const Default_FileOptions_CcEnableArenas bool = false @@ -1101,6 +1199,13 @@ func (m *FileOptions) GetPyGenericServices() bool { return Default_FileOptions_PyGenericServices } +func (m *FileOptions) GetPhpGenericServices() bool { + if m != nil && m.PhpGenericServices != nil { + return *m.PhpGenericServices + } + return Default_FileOptions_PhpGenericServices +} + func (m *FileOptions) GetDeprecated() bool { if m != nil && m.Deprecated != nil { return *m.Deprecated @@ -1136,6 +1241,20 @@ func (m *FileOptions) GetSwiftPrefix() string { return "" } +func (m *FileOptions) GetPhpClassPrefix() string { + if m != nil && m.PhpClassPrefix != nil { + return *m.PhpClassPrefix + } + return "" +} + +func (m *FileOptions) GetPhpNamespace() string { + if m != nil && m.PhpNamespace != nil { + return *m.PhpNamespace + } + return "" +} + func (m *FileOptions) GetUninterpretedOption() []*UninterpretedOption { if m != nil { return m.UninterpretedOption @@ -1203,7 +1322,7 @@ type MessageOptions struct { func (m *MessageOptions) Reset() { *m = MessageOptions{} } func (m *MessageOptions) String() string { return proto.CompactTextString(m) } func (*MessageOptions) ProtoMessage() {} -func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{10} } +func (*MessageOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{11} } var extRange_MessageOptions = []proto.ExtensionRange{ {Start: 1000, End: 536870911}, @@ -1266,13 +1385,15 @@ type FieldOptions struct { Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` // The jstype option determines the JavaScript type used for values of the // field. The option is permitted only for 64 bit integral and fixed types - // (int64, uint64, sint64, fixed64, sfixed64). By default these types are - // represented as JavaScript strings. This avoids loss of precision that can - // happen when a large value is converted to a floating point JavaScript - // numbers. Specifying JS_NUMBER for the jstype causes the generated - // JavaScript code to use the JavaScript "number" type instead of strings. - // This option is an enum to permit additional types to be added, - // e.g. goog.math.Integer. + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"` // Should this field be parsed lazily? Lazy applies only to message-type // fields. It means that when the outer message is initially parsed, the @@ -1319,7 +1440,7 @@ type FieldOptions struct { func (m *FieldOptions) Reset() { *m = FieldOptions{} } func (m *FieldOptions) String() string { return proto.CompactTextString(m) } func (*FieldOptions) ProtoMessage() {} -func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{11} } +func (*FieldOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{12} } var extRange_FieldOptions = []proto.ExtensionRange{ {Start: 1000, End: 536870911}, @@ -1394,7 +1515,7 @@ type OneofOptions struct { func (m *OneofOptions) Reset() { *m = OneofOptions{} } func (m *OneofOptions) String() string { return proto.CompactTextString(m) } func (*OneofOptions) ProtoMessage() {} -func (*OneofOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{12} } +func (*OneofOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{13} } var extRange_OneofOptions = []proto.ExtensionRange{ {Start: 1000, End: 536870911}, @@ -1429,7 +1550,7 @@ type EnumOptions struct { func (m *EnumOptions) Reset() { *m = EnumOptions{} } func (m *EnumOptions) String() string { return proto.CompactTextString(m) } func (*EnumOptions) ProtoMessage() {} -func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{13} } +func (*EnumOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{14} } var extRange_EnumOptions = []proto.ExtensionRange{ {Start: 1000, End: 536870911}, @@ -1477,7 +1598,7 @@ type EnumValueOptions struct { func (m *EnumValueOptions) Reset() { *m = EnumValueOptions{} } func (m *EnumValueOptions) String() string { return proto.CompactTextString(m) } func (*EnumValueOptions) ProtoMessage() {} -func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{14} } +func (*EnumValueOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{15} } var extRange_EnumValueOptions = []proto.ExtensionRange{ {Start: 1000, End: 536870911}, @@ -1518,7 +1639,7 @@ type ServiceOptions struct { func (m *ServiceOptions) Reset() { *m = ServiceOptions{} } func (m *ServiceOptions) String() string { return proto.CompactTextString(m) } func (*ServiceOptions) ProtoMessage() {} -func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{15} } +func (*ServiceOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{16} } var extRange_ServiceOptions = []proto.ExtensionRange{ {Start: 1000, End: 536870911}, @@ -1560,7 +1681,7 @@ type MethodOptions struct { func (m *MethodOptions) Reset() { *m = MethodOptions{} } func (m *MethodOptions) String() string { return proto.CompactTextString(m) } func (*MethodOptions) ProtoMessage() {} -func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{16} } +func (*MethodOptions) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{17} } var extRange_MethodOptions = []proto.ExtensionRange{ {Start: 1000, End: 536870911}, @@ -1616,7 +1737,7 @@ type UninterpretedOption struct { func (m *UninterpretedOption) Reset() { *m = UninterpretedOption{} } func (m *UninterpretedOption) String() string { return proto.CompactTextString(m) } func (*UninterpretedOption) ProtoMessage() {} -func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{17} } +func (*UninterpretedOption) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{18} } func (m *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { if m != nil { @@ -1682,7 +1803,7 @@ func (m *UninterpretedOption_NamePart) Reset() { *m = UninterpretedOptio func (m *UninterpretedOption_NamePart) String() string { return proto.CompactTextString(m) } func (*UninterpretedOption_NamePart) ProtoMessage() {} func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{17, 0} + return fileDescriptorDescriptor, []int{18, 0} } func (m *UninterpretedOption_NamePart) GetNamePart() string { @@ -1752,7 +1873,7 @@ type SourceCodeInfo struct { func (m *SourceCodeInfo) Reset() { *m = SourceCodeInfo{} } func (m *SourceCodeInfo) String() string { return proto.CompactTextString(m) } func (*SourceCodeInfo) ProtoMessage() {} -func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{18} } +func (*SourceCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{19} } func (m *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { if m != nil { @@ -1849,7 +1970,7 @@ func (m *SourceCodeInfo_Location) Reset() { *m = SourceCodeInfo_Location func (m *SourceCodeInfo_Location) String() string { return proto.CompactTextString(m) } func (*SourceCodeInfo_Location) ProtoMessage() {} func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{18, 0} + return fileDescriptorDescriptor, []int{19, 0} } func (m *SourceCodeInfo_Location) GetPath() []int32 { @@ -1900,7 +2021,7 @@ type GeneratedCodeInfo struct { func (m *GeneratedCodeInfo) Reset() { *m = GeneratedCodeInfo{} } func (m *GeneratedCodeInfo) String() string { return proto.CompactTextString(m) } func (*GeneratedCodeInfo) ProtoMessage() {} -func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{19} } +func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { return fileDescriptorDescriptor, []int{20} } func (m *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { if m != nil { @@ -1929,7 +2050,7 @@ func (m *GeneratedCodeInfo_Annotation) Reset() { *m = GeneratedCodeInfo_ func (m *GeneratedCodeInfo_Annotation) String() string { return proto.CompactTextString(m) } func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { - return fileDescriptorDescriptor, []int{19, 0} + return fileDescriptorDescriptor, []int{20, 0} } func (m *GeneratedCodeInfo_Annotation) GetPath() []int32 { @@ -1966,9 +2087,11 @@ func init() { proto.RegisterType((*DescriptorProto)(nil), "google.protobuf.DescriptorProto") proto.RegisterType((*DescriptorProto_ExtensionRange)(nil), "google.protobuf.DescriptorProto.ExtensionRange") proto.RegisterType((*DescriptorProto_ReservedRange)(nil), "google.protobuf.DescriptorProto.ReservedRange") + proto.RegisterType((*ExtensionRangeOptions)(nil), "google.protobuf.ExtensionRangeOptions") proto.RegisterType((*FieldDescriptorProto)(nil), "google.protobuf.FieldDescriptorProto") proto.RegisterType((*OneofDescriptorProto)(nil), "google.protobuf.OneofDescriptorProto") proto.RegisterType((*EnumDescriptorProto)(nil), "google.protobuf.EnumDescriptorProto") + proto.RegisterType((*EnumDescriptorProto_EnumReservedRange)(nil), "google.protobuf.EnumDescriptorProto.EnumReservedRange") proto.RegisterType((*EnumValueDescriptorProto)(nil), "google.protobuf.EnumValueDescriptorProto") proto.RegisterType((*ServiceDescriptorProto)(nil), "google.protobuf.ServiceDescriptorProto") proto.RegisterType((*MethodDescriptorProto)(nil), "google.protobuf.MethodDescriptorProto") @@ -1997,154 +2120,161 @@ func init() { func init() { proto.RegisterFile("descriptor.proto", fileDescriptorDescriptor) } var fileDescriptorDescriptor = []byte{ - // 2379 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x73, 0xdb, 0xc6, - 0x15, 0x37, 0xc1, 0x0f, 0x91, 0x8f, 0x14, 0xb5, 0x5a, 0x29, 0x36, 0x2c, 0xc7, 0xb1, 0xcc, 0xd8, - 0xb5, 0x6c, 0xb7, 0x74, 0x46, 0xfe, 0x88, 0xa3, 0x74, 0xd2, 0xa1, 0x48, 0x58, 0xa1, 0x4b, 0x91, - 0x2c, 0x48, 0x35, 0x76, 0x2e, 0x98, 0x15, 0xb0, 0xa4, 0x60, 0x83, 0x00, 0x02, 0x80, 0xb6, 0x95, - 0x93, 0x67, 0x7a, 0xea, 0x7f, 0xd0, 0xe9, 0x74, 0x7a, 0xc8, 0x25, 0x33, 0xed, 0xbd, 0x87, 0xde, - 0x7b, 0xed, 0x4c, 0xef, 0x3d, 0xf4, 0xd0, 0x99, 0xf6, 0x3f, 0xe8, 0xb5, 0xb3, 0xbb, 0x00, 0x08, - 0x7e, 0xd9, 0x4a, 0x66, 0x9c, 0x9c, 0xa4, 0xfd, 0xbd, 0xdf, 0x7b, 0x78, 0xfb, 0xf6, 0x87, 0xdd, - 0x87, 0x25, 0x20, 0x83, 0xfa, 0xba, 0x67, 0xba, 0x81, 0xe3, 0x55, 0x5d, 0xcf, 0x09, 0x1c, 0xbc, - 0x36, 0x74, 0x9c, 0xa1, 0x45, 0xc5, 0xe8, 0x78, 0x3c, 0xa8, 0x1c, 0xc2, 0xfa, 0x23, 0xd3, 0xa2, - 0x8d, 0x98, 0xd8, 0xa3, 0x01, 0x7e, 0x08, 0x99, 0x81, 0x69, 0x51, 0x39, 0xb5, 0x9d, 0xde, 0x29, - 0xee, 0x5e, 0xab, 0xce, 0x38, 0x55, 0xa7, 0x3d, 0xba, 0x0c, 0x56, 0xb9, 0x47, 0xe5, 0xdf, 0x19, - 0xd8, 0x58, 0x60, 0xc5, 0x18, 0x32, 0x36, 0x19, 0xb1, 0x88, 0xa9, 0x9d, 0x82, 0xca, 0xff, 0xc7, - 0x32, 0xac, 0xb8, 0x44, 0x7f, 0x4e, 0x86, 0x54, 0x96, 0x38, 0x1c, 0x0d, 0xf1, 0x07, 0x00, 0x06, - 0x75, 0xa9, 0x6d, 0x50, 0x5b, 0x3f, 0x95, 0xd3, 0xdb, 0xe9, 0x9d, 0x82, 0x9a, 0x40, 0xf0, 0x6d, - 0x58, 0x77, 0xc7, 0xc7, 0x96, 0xa9, 0x6b, 0x09, 0x1a, 0x6c, 0xa7, 0x77, 0xb2, 0x2a, 0x12, 0x86, - 0xc6, 0x84, 0x7c, 0x03, 0xd6, 0x5e, 0x52, 0xf2, 0x3c, 0x49, 0x2d, 0x72, 0x6a, 0x99, 0xc1, 0x09, - 0x62, 0x1d, 0x4a, 0x23, 0xea, 0xfb, 0x64, 0x48, 0xb5, 0xe0, 0xd4, 0xa5, 0x72, 0x86, 0xcf, 0x7e, - 0x7b, 0x6e, 0xf6, 0xb3, 0x33, 0x2f, 0x86, 0x5e, 0xfd, 0x53, 0x97, 0xe2, 0x1a, 0x14, 0xa8, 0x3d, - 0x1e, 0x89, 0x08, 0xd9, 0x25, 0xf5, 0x53, 0xec, 0xf1, 0x68, 0x36, 0x4a, 0x9e, 0xb9, 0x85, 0x21, - 0x56, 0x7c, 0xea, 0xbd, 0x30, 0x75, 0x2a, 0xe7, 0x78, 0x80, 0x1b, 0x73, 0x01, 0x7a, 0xc2, 0x3e, - 0x1b, 0x23, 0xf2, 0xc3, 0x75, 0x28, 0xd0, 0x57, 0x01, 0xb5, 0x7d, 0xd3, 0xb1, 0xe5, 0x15, 0x1e, - 0xe4, 0xfa, 0x82, 0x55, 0xa4, 0x96, 0x31, 0x1b, 0x62, 0xe2, 0x87, 0x1f, 0xc0, 0x8a, 0xe3, 0x06, - 0xa6, 0x63, 0xfb, 0x72, 0x7e, 0x3b, 0xb5, 0x53, 0xdc, 0x7d, 0x7f, 0xa1, 0x10, 0x3a, 0x82, 0xa3, - 0x46, 0x64, 0xdc, 0x04, 0xe4, 0x3b, 0x63, 0x4f, 0xa7, 0x9a, 0xee, 0x18, 0x54, 0x33, 0xed, 0x81, - 0x23, 0x17, 0x78, 0x80, 0x2b, 0xf3, 0x13, 0xe1, 0xc4, 0xba, 0x63, 0xd0, 0xa6, 0x3d, 0x70, 0xd4, - 0xb2, 0x3f, 0x35, 0xc6, 0xe7, 0x21, 0xe7, 0x9f, 0xda, 0x01, 0x79, 0x25, 0x97, 0xb8, 0x42, 0xc2, - 0x51, 0xe5, 0x7f, 0x59, 0x58, 0x3b, 0x8b, 0xc4, 0x3e, 0x85, 0xec, 0x80, 0xcd, 0x52, 0x96, 0xbe, - 0x4b, 0x0d, 0x84, 0xcf, 0x74, 0x11, 0x73, 0xdf, 0xb3, 0x88, 0x35, 0x28, 0xda, 0xd4, 0x0f, 0xa8, - 0x21, 0x14, 0x91, 0x3e, 0xa3, 0xa6, 0x40, 0x38, 0xcd, 0x4b, 0x2a, 0xf3, 0xbd, 0x24, 0xf5, 0x04, - 0xd6, 0xe2, 0x94, 0x34, 0x8f, 0xd8, 0xc3, 0x48, 0x9b, 0x77, 0xde, 0x96, 0x49, 0x55, 0x89, 0xfc, - 0x54, 0xe6, 0xa6, 0x96, 0xe9, 0xd4, 0x18, 0x37, 0x00, 0x1c, 0x9b, 0x3a, 0x03, 0xcd, 0xa0, 0xba, - 0x25, 0xe7, 0x97, 0x54, 0xa9, 0xc3, 0x28, 0x73, 0x55, 0x72, 0x04, 0xaa, 0x5b, 0xf8, 0x93, 0x89, - 0xd4, 0x56, 0x96, 0x28, 0xe5, 0x50, 0xbc, 0x64, 0x73, 0x6a, 0x3b, 0x82, 0xb2, 0x47, 0x99, 0xee, - 0xa9, 0x11, 0xce, 0xac, 0xc0, 0x93, 0xa8, 0xbe, 0x75, 0x66, 0x6a, 0xe8, 0x26, 0x26, 0xb6, 0xea, - 0x25, 0x87, 0xf8, 0x43, 0x88, 0x01, 0x8d, 0xcb, 0x0a, 0xf8, 0x2e, 0x54, 0x8a, 0xc0, 0x36, 0x19, - 0xd1, 0xad, 0x87, 0x50, 0x9e, 0x2e, 0x0f, 0xde, 0x84, 0xac, 0x1f, 0x10, 0x2f, 0xe0, 0x2a, 0xcc, - 0xaa, 0x62, 0x80, 0x11, 0xa4, 0xa9, 0x6d, 0xf0, 0x5d, 0x2e, 0xab, 0xb2, 0x7f, 0xb7, 0x3e, 0x86, - 0xd5, 0xa9, 0xc7, 0x9f, 0xd5, 0xb1, 0xf2, 0xbb, 0x1c, 0x6c, 0x2e, 0xd2, 0xdc, 0x42, 0xf9, 0x9f, - 0x87, 0x9c, 0x3d, 0x1e, 0x1d, 0x53, 0x4f, 0x4e, 0xf3, 0x08, 0xe1, 0x08, 0xd7, 0x20, 0x6b, 0x91, - 0x63, 0x6a, 0xc9, 0x99, 0xed, 0xd4, 0x4e, 0x79, 0xf7, 0xf6, 0x99, 0x54, 0x5d, 0x6d, 0x31, 0x17, - 0x55, 0x78, 0xe2, 0xcf, 0x20, 0x13, 0x6e, 0x71, 0x2c, 0xc2, 0xad, 0xb3, 0x45, 0x60, 0x5a, 0x54, - 0xb9, 0x1f, 0xbe, 0x04, 0x05, 0xf6, 0x57, 0xd4, 0x36, 0xc7, 0x73, 0xce, 0x33, 0x80, 0xd5, 0x15, - 0x6f, 0x41, 0x9e, 0xcb, 0xcc, 0xa0, 0xd1, 0xd1, 0x10, 0x8f, 0xd9, 0xc2, 0x18, 0x74, 0x40, 0xc6, - 0x56, 0xa0, 0xbd, 0x20, 0xd6, 0x98, 0x72, 0xc1, 0x14, 0xd4, 0x52, 0x08, 0xfe, 0x9a, 0x61, 0xf8, - 0x0a, 0x14, 0x85, 0x2a, 0x4d, 0xdb, 0xa0, 0xaf, 0xf8, 0xee, 0x93, 0x55, 0x85, 0x50, 0x9b, 0x0c, - 0x61, 0x8f, 0x7f, 0xe6, 0x3b, 0x76, 0xb4, 0xb4, 0xfc, 0x11, 0x0c, 0xe0, 0x8f, 0xff, 0x78, 0x76, - 0xe3, 0xbb, 0xbc, 0x78, 0x7a, 0xb3, 0x5a, 0xac, 0xfc, 0x45, 0x82, 0x0c, 0x7f, 0xdf, 0xd6, 0xa0, - 0xd8, 0x7f, 0xda, 0x55, 0xb4, 0x46, 0xe7, 0x68, 0xbf, 0xa5, 0xa0, 0x14, 0x2e, 0x03, 0x70, 0xe0, - 0x51, 0xab, 0x53, 0xeb, 0x23, 0x29, 0x1e, 0x37, 0xdb, 0xfd, 0x07, 0xf7, 0x50, 0x3a, 0x76, 0x38, - 0x12, 0x40, 0x26, 0x49, 0xb8, 0xbb, 0x8b, 0xb2, 0x18, 0x41, 0x49, 0x04, 0x68, 0x3e, 0x51, 0x1a, - 0x0f, 0xee, 0xa1, 0xdc, 0x34, 0x72, 0x77, 0x17, 0xad, 0xe0, 0x55, 0x28, 0x70, 0x64, 0xbf, 0xd3, - 0x69, 0xa1, 0x7c, 0x1c, 0xb3, 0xd7, 0x57, 0x9b, 0xed, 0x03, 0x54, 0x88, 0x63, 0x1e, 0xa8, 0x9d, - 0xa3, 0x2e, 0x82, 0x38, 0xc2, 0xa1, 0xd2, 0xeb, 0xd5, 0x0e, 0x14, 0x54, 0x8c, 0x19, 0xfb, 0x4f, - 0xfb, 0x4a, 0x0f, 0x95, 0xa6, 0xd2, 0xba, 0xbb, 0x8b, 0x56, 0xe3, 0x47, 0x28, 0xed, 0xa3, 0x43, - 0x54, 0xc6, 0xeb, 0xb0, 0x2a, 0x1e, 0x11, 0x25, 0xb1, 0x36, 0x03, 0x3d, 0xb8, 0x87, 0xd0, 0x24, - 0x11, 0x11, 0x65, 0x7d, 0x0a, 0x78, 0x70, 0x0f, 0xe1, 0x4a, 0x1d, 0xb2, 0x5c, 0x5d, 0x18, 0x43, - 0xb9, 0x55, 0xdb, 0x57, 0x5a, 0x5a, 0xa7, 0xdb, 0x6f, 0x76, 0xda, 0xb5, 0x16, 0x4a, 0x4d, 0x30, - 0x55, 0xf9, 0xd5, 0x51, 0x53, 0x55, 0x1a, 0x48, 0x4a, 0x62, 0x5d, 0xa5, 0xd6, 0x57, 0x1a, 0x28, - 0x5d, 0xd1, 0x61, 0x73, 0xd1, 0x3e, 0xb3, 0xf0, 0xcd, 0x48, 0x2c, 0xb1, 0xb4, 0x64, 0x89, 0x79, - 0xac, 0xb9, 0x25, 0xfe, 0x26, 0x05, 0x1b, 0x0b, 0xf6, 0xda, 0x85, 0x0f, 0xf9, 0x05, 0x64, 0x85, - 0x44, 0xc5, 0xe9, 0x73, 0x73, 0xe1, 0xa6, 0xcd, 0x05, 0x3b, 0x77, 0x02, 0x71, 0xbf, 0xe4, 0x09, - 0x9c, 0x5e, 0x72, 0x02, 0xb3, 0x10, 0x73, 0x49, 0xfe, 0x26, 0x05, 0xf2, 0xb2, 0xd8, 0x6f, 0xd9, - 0x28, 0xa4, 0xa9, 0x8d, 0xe2, 0xd3, 0xd9, 0x04, 0xae, 0x2e, 0x9f, 0xc3, 0x5c, 0x16, 0xdf, 0xa6, - 0xe0, 0xfc, 0xe2, 0x46, 0x65, 0x61, 0x0e, 0x9f, 0x41, 0x6e, 0x44, 0x83, 0x13, 0x27, 0x3a, 0xac, - 0x7f, 0xb2, 0xe0, 0x08, 0x60, 0xe6, 0xd9, 0x5a, 0x85, 0x5e, 0xc9, 0x33, 0x24, 0xbd, 0xac, 0xdb, - 0x10, 0xd9, 0xcc, 0x65, 0xfa, 0x5b, 0x09, 0xde, 0x5b, 0x18, 0x7c, 0x61, 0xa2, 0x97, 0x01, 0x4c, - 0xdb, 0x1d, 0x07, 0xe2, 0x40, 0x16, 0xfb, 0x53, 0x81, 0x23, 0xfc, 0xdd, 0x67, 0x7b, 0xcf, 0x38, - 0x88, 0xed, 0x69, 0x6e, 0x07, 0x01, 0x71, 0xc2, 0xc3, 0x49, 0xa2, 0x19, 0x9e, 0xe8, 0x07, 0x4b, - 0x66, 0x3a, 0x77, 0xd6, 0x7d, 0x04, 0x48, 0xb7, 0x4c, 0x6a, 0x07, 0x9a, 0x1f, 0x78, 0x94, 0x8c, - 0x4c, 0x7b, 0xc8, 0x37, 0xe0, 0xfc, 0x5e, 0x76, 0x40, 0x2c, 0x9f, 0xaa, 0x6b, 0xc2, 0xdc, 0x8b, - 0xac, 0xcc, 0x83, 0x9f, 0x32, 0x5e, 0xc2, 0x23, 0x37, 0xe5, 0x21, 0xcc, 0xb1, 0x47, 0xe5, 0xcf, - 0x2b, 0x50, 0x4c, 0xb4, 0x75, 0xf8, 0x2a, 0x94, 0x9e, 0x91, 0x17, 0x44, 0x8b, 0x5a, 0x75, 0x51, - 0x89, 0x22, 0xc3, 0xba, 0x61, 0xbb, 0xfe, 0x11, 0x6c, 0x72, 0x8a, 0x33, 0x0e, 0xa8, 0xa7, 0xe9, - 0x16, 0xf1, 0x7d, 0x5e, 0xb4, 0x3c, 0xa7, 0x62, 0x66, 0xeb, 0x30, 0x53, 0x3d, 0xb2, 0xe0, 0xfb, - 0xb0, 0xc1, 0x3d, 0x46, 0x63, 0x2b, 0x30, 0x5d, 0x8b, 0x6a, 0xec, 0xe3, 0xc1, 0xe7, 0x1b, 0x71, - 0x9c, 0xd9, 0x3a, 0x63, 0x1c, 0x86, 0x04, 0x96, 0x91, 0x8f, 0x1b, 0x70, 0x99, 0xbb, 0x0d, 0xa9, - 0x4d, 0x3d, 0x12, 0x50, 0x8d, 0x7e, 0x35, 0x26, 0x96, 0xaf, 0x11, 0xdb, 0xd0, 0x4e, 0x88, 0x7f, - 0x22, 0x6f, 0xb2, 0x00, 0xfb, 0x92, 0x9c, 0x52, 0x2f, 0x32, 0xe2, 0x41, 0xc8, 0x53, 0x38, 0xad, - 0x66, 0x1b, 0x9f, 0x13, 0xff, 0x04, 0xef, 0xc1, 0x79, 0x1e, 0xc5, 0x0f, 0x3c, 0xd3, 0x1e, 0x6a, - 0xfa, 0x09, 0xd5, 0x9f, 0x6b, 0xe3, 0x60, 0xf0, 0x50, 0xbe, 0x94, 0x7c, 0x3e, 0xcf, 0xb0, 0xc7, - 0x39, 0x75, 0x46, 0x39, 0x0a, 0x06, 0x0f, 0x71, 0x0f, 0x4a, 0x6c, 0x31, 0x46, 0xe6, 0xd7, 0x54, - 0x1b, 0x38, 0x1e, 0x3f, 0x59, 0xca, 0x0b, 0xde, 0xec, 0x44, 0x05, 0xab, 0x9d, 0xd0, 0xe1, 0xd0, - 0x31, 0xe8, 0x5e, 0xb6, 0xd7, 0x55, 0x94, 0x86, 0x5a, 0x8c, 0xa2, 0x3c, 0x72, 0x3c, 0x26, 0xa8, - 0xa1, 0x13, 0x17, 0xb8, 0x28, 0x04, 0x35, 0x74, 0xa2, 0xf2, 0xde, 0x87, 0x0d, 0x5d, 0x17, 0x73, - 0x36, 0x75, 0x2d, 0x6c, 0xf1, 0x7d, 0x19, 0x4d, 0x15, 0x4b, 0xd7, 0x0f, 0x04, 0x21, 0xd4, 0xb8, - 0x8f, 0x3f, 0x81, 0xf7, 0x26, 0xc5, 0x4a, 0x3a, 0xae, 0xcf, 0xcd, 0x72, 0xd6, 0xf5, 0x3e, 0x6c, - 0xb8, 0xa7, 0xf3, 0x8e, 0x78, 0xea, 0x89, 0xee, 0xe9, 0xac, 0xdb, 0x75, 0xfe, 0xd9, 0xe6, 0x51, - 0x9d, 0x04, 0xd4, 0x90, 0x2f, 0x24, 0xd9, 0x09, 0x03, 0xbe, 0x03, 0x48, 0xd7, 0x35, 0x6a, 0x93, - 0x63, 0x8b, 0x6a, 0xc4, 0xa3, 0x36, 0xf1, 0xe5, 0x2b, 0x49, 0x72, 0x59, 0xd7, 0x15, 0x6e, 0xad, - 0x71, 0x23, 0xbe, 0x05, 0xeb, 0xce, 0xf1, 0x33, 0x5d, 0x28, 0x4b, 0x73, 0x3d, 0x3a, 0x30, 0x5f, - 0xc9, 0xd7, 0x78, 0x99, 0xd6, 0x98, 0x81, 0xeb, 0xaa, 0xcb, 0x61, 0x7c, 0x13, 0x90, 0xee, 0x9f, - 0x10, 0xcf, 0xe5, 0x47, 0xbb, 0xef, 0x12, 0x9d, 0xca, 0xd7, 0x05, 0x55, 0xe0, 0xed, 0x08, 0x66, - 0xca, 0xf6, 0x5f, 0x9a, 0x83, 0x20, 0x8a, 0x78, 0x43, 0x28, 0x9b, 0x63, 0x61, 0xb4, 0x27, 0xb0, - 0x39, 0xb6, 0x4d, 0x3b, 0xa0, 0x9e, 0xeb, 0x51, 0xd6, 0xc4, 0x8b, 0x37, 0x51, 0xfe, 0xcf, 0xca, - 0x92, 0x36, 0xfc, 0x28, 0xc9, 0x16, 0x02, 0x50, 0x37, 0xc6, 0xf3, 0x60, 0x65, 0x0f, 0x4a, 0x49, - 0x5d, 0xe0, 0x02, 0x08, 0x65, 0xa0, 0x14, 0x3b, 0x63, 0xeb, 0x9d, 0x06, 0x3b, 0x1d, 0xbf, 0x54, - 0x90, 0xc4, 0x4e, 0xe9, 0x56, 0xb3, 0xaf, 0x68, 0xea, 0x51, 0xbb, 0xdf, 0x3c, 0x54, 0x50, 0xfa, - 0x56, 0x21, 0xff, 0xdf, 0x15, 0xf4, 0xfa, 0xf5, 0xeb, 0xd7, 0x52, 0xe5, 0x6f, 0x12, 0x94, 0xa7, - 0x3b, 0x63, 0xfc, 0x73, 0xb8, 0x10, 0x7d, 0xc6, 0xfa, 0x34, 0xd0, 0x5e, 0x9a, 0x1e, 0x97, 0xea, - 0x88, 0x88, 0xde, 0x32, 0xae, 0xf2, 0x66, 0xc8, 0xea, 0xd1, 0xe0, 0x0b, 0xd3, 0x63, 0x42, 0x1c, - 0x91, 0x00, 0xb7, 0xe0, 0x8a, 0xed, 0x68, 0x7e, 0x40, 0x6c, 0x83, 0x78, 0x86, 0x36, 0xb9, 0x40, - 0xd0, 0x88, 0xae, 0x53, 0xdf, 0x77, 0xc4, 0x11, 0x11, 0x47, 0x79, 0xdf, 0x76, 0x7a, 0x21, 0x79, - 0xb2, 0x77, 0xd6, 0x42, 0xea, 0x8c, 0x22, 0xd2, 0xcb, 0x14, 0x71, 0x09, 0x0a, 0x23, 0xe2, 0x6a, - 0xd4, 0x0e, 0xbc, 0x53, 0xde, 0xcf, 0xe5, 0xd5, 0xfc, 0x88, 0xb8, 0x0a, 0x1b, 0xbf, 0xbb, 0x35, - 0x48, 0xd6, 0xf1, 0x9f, 0x69, 0x28, 0x25, 0x7b, 0x3a, 0xd6, 0x22, 0xeb, 0x7c, 0xff, 0x4e, 0xf1, - 0x37, 0xfc, 0xc3, 0x37, 0x76, 0x80, 0xd5, 0x3a, 0xdb, 0xd8, 0xf7, 0x72, 0xa2, 0xd3, 0x52, 0x85, - 0x27, 0x3b, 0x54, 0xd9, 0x3b, 0x4d, 0x45, 0xff, 0x9e, 0x57, 0xc3, 0x11, 0x3e, 0x80, 0xdc, 0x33, - 0x9f, 0xc7, 0xce, 0xf1, 0xd8, 0xd7, 0xde, 0x1c, 0xfb, 0x71, 0x8f, 0x07, 0x2f, 0x3c, 0xee, 0x69, - 0xed, 0x8e, 0x7a, 0x58, 0x6b, 0xa9, 0xa1, 0x3b, 0xbe, 0x08, 0x19, 0x8b, 0x7c, 0x7d, 0x3a, 0x7d, - 0x04, 0x70, 0xe8, 0xac, 0x85, 0xbf, 0x08, 0x99, 0x97, 0x94, 0x3c, 0x9f, 0xde, 0x78, 0x39, 0xf4, - 0x0e, 0xa5, 0x7f, 0x07, 0xb2, 0xbc, 0x5e, 0x18, 0x20, 0xac, 0x18, 0x3a, 0x87, 0xf3, 0x90, 0xa9, - 0x77, 0x54, 0x26, 0x7f, 0x04, 0x25, 0x81, 0x6a, 0xdd, 0xa6, 0x52, 0x57, 0x90, 0x54, 0xb9, 0x0f, - 0x39, 0x51, 0x04, 0xf6, 0x6a, 0xc4, 0x65, 0x40, 0xe7, 0xc2, 0x61, 0x18, 0x23, 0x15, 0x59, 0x8f, - 0x0e, 0xf7, 0x15, 0x15, 0x49, 0xc9, 0xe5, 0xf5, 0xa1, 0x94, 0x6c, 0xe7, 0x7e, 0x18, 0x4d, 0xfd, - 0x35, 0x05, 0xc5, 0x44, 0x7b, 0xc6, 0x1a, 0x03, 0x62, 0x59, 0xce, 0x4b, 0x8d, 0x58, 0x26, 0xf1, - 0x43, 0x51, 0x00, 0x87, 0x6a, 0x0c, 0x39, 0xeb, 0xa2, 0xfd, 0x20, 0xc9, 0xff, 0x31, 0x05, 0x68, - 0xb6, 0xb5, 0x9b, 0x49, 0x30, 0xf5, 0xa3, 0x26, 0xf8, 0x87, 0x14, 0x94, 0xa7, 0xfb, 0xb9, 0x99, - 0xf4, 0xae, 0xfe, 0xa8, 0xe9, 0xfd, 0x4b, 0x82, 0xd5, 0xa9, 0x2e, 0xee, 0xac, 0xd9, 0x7d, 0x05, - 0xeb, 0xa6, 0x41, 0x47, 0xae, 0x13, 0x50, 0x5b, 0x3f, 0xd5, 0x2c, 0xfa, 0x82, 0x5a, 0x72, 0x85, - 0x6f, 0x14, 0x77, 0xde, 0xdc, 0x27, 0x56, 0x9b, 0x13, 0xbf, 0x16, 0x73, 0xdb, 0xdb, 0x68, 0x36, - 0x94, 0xc3, 0x6e, 0xa7, 0xaf, 0xb4, 0xeb, 0x4f, 0xb5, 0xa3, 0xf6, 0x2f, 0xdb, 0x9d, 0x2f, 0xda, - 0x2a, 0x32, 0x67, 0x68, 0xef, 0xf0, 0x55, 0xef, 0x02, 0x9a, 0x4d, 0x0a, 0x5f, 0x80, 0x45, 0x69, - 0xa1, 0x73, 0x78, 0x03, 0xd6, 0xda, 0x1d, 0xad, 0xd7, 0x6c, 0x28, 0x9a, 0xf2, 0xe8, 0x91, 0x52, - 0xef, 0xf7, 0xc4, 0x87, 0x73, 0xcc, 0xee, 0x4f, 0xbf, 0xd4, 0xbf, 0x4f, 0xc3, 0xc6, 0x82, 0x4c, - 0x70, 0x2d, 0xec, 0xd9, 0xc5, 0x67, 0xc4, 0xcf, 0xce, 0x92, 0x7d, 0x95, 0x75, 0x05, 0x5d, 0xe2, - 0x05, 0x61, 0x8b, 0x7f, 0x13, 0x58, 0x95, 0xec, 0xc0, 0x1c, 0x98, 0xd4, 0x0b, 0xef, 0x19, 0x44, - 0x23, 0xbf, 0x36, 0xc1, 0xc5, 0x55, 0xc3, 0x4f, 0x01, 0xbb, 0x8e, 0x6f, 0x06, 0xe6, 0x0b, 0xaa, - 0x99, 0x76, 0x74, 0x29, 0xc1, 0x1a, 0xfb, 0x8c, 0x8a, 0x22, 0x4b, 0xd3, 0x0e, 0x62, 0xb6, 0x4d, - 0x87, 0x64, 0x86, 0xcd, 0x36, 0xf0, 0xb4, 0x8a, 0x22, 0x4b, 0xcc, 0xbe, 0x0a, 0x25, 0xc3, 0x19, - 0xb3, 0x36, 0x49, 0xf0, 0xd8, 0x79, 0x91, 0x52, 0x8b, 0x02, 0x8b, 0x29, 0x61, 0x1f, 0x3b, 0xb9, - 0x0d, 0x29, 0xa9, 0x45, 0x81, 0x09, 0xca, 0x0d, 0x58, 0x23, 0xc3, 0xa1, 0xc7, 0x82, 0x47, 0x81, - 0x44, 0x67, 0x5e, 0x8e, 0x61, 0x4e, 0xdc, 0x7a, 0x0c, 0xf9, 0xa8, 0x0e, 0xec, 0x48, 0x66, 0x95, - 0xd0, 0x5c, 0x71, 0x27, 0x25, 0xed, 0x14, 0xd4, 0xbc, 0x1d, 0x19, 0xaf, 0x42, 0xc9, 0xf4, 0xb5, - 0xc9, 0xe5, 0xa8, 0xb4, 0x2d, 0xed, 0xe4, 0xd5, 0xa2, 0xe9, 0xc7, 0xb7, 0x61, 0x95, 0x6f, 0x25, - 0x28, 0x4f, 0x5f, 0xee, 0xe2, 0x06, 0xe4, 0x2d, 0x47, 0x27, 0x5c, 0x5a, 0xe2, 0x97, 0x85, 0x9d, - 0xb7, 0xdc, 0x07, 0x57, 0x5b, 0x21, 0x5f, 0x8d, 0x3d, 0xb7, 0xfe, 0x9e, 0x82, 0x7c, 0x04, 0xe3, - 0xf3, 0x90, 0x71, 0x49, 0x70, 0xc2, 0xc3, 0x65, 0xf7, 0x25, 0x94, 0x52, 0xf9, 0x98, 0xe1, 0xbe, - 0x4b, 0x6c, 0x2e, 0x81, 0x10, 0x67, 0x63, 0xb6, 0xae, 0x16, 0x25, 0x06, 0x6f, 0xfb, 0x9d, 0xd1, - 0x88, 0xda, 0x81, 0x1f, 0xad, 0x6b, 0x88, 0xd7, 0x43, 0x18, 0xdf, 0x86, 0xf5, 0xc0, 0x23, 0xa6, - 0x35, 0xc5, 0xcd, 0x70, 0x2e, 0x8a, 0x0c, 0x31, 0x79, 0x0f, 0x2e, 0x46, 0x71, 0x0d, 0x1a, 0x10, - 0xfd, 0x84, 0x1a, 0x13, 0xa7, 0x1c, 0xbf, 0x39, 0xbc, 0x10, 0x12, 0x1a, 0xa1, 0x3d, 0xf2, 0xad, - 0xfc, 0x23, 0x05, 0xeb, 0xd1, 0x87, 0x8a, 0x11, 0x17, 0xeb, 0x10, 0x80, 0xd8, 0xb6, 0x13, 0x24, - 0xcb, 0x35, 0x2f, 0xe5, 0x39, 0xbf, 0x6a, 0x2d, 0x76, 0x52, 0x13, 0x01, 0xb6, 0x46, 0x00, 0x13, - 0xcb, 0xd2, 0xb2, 0x5d, 0x81, 0x62, 0x78, 0x73, 0xcf, 0x7f, 0xfe, 0x11, 0x9f, 0xb6, 0x20, 0x20, - 0xf6, 0x45, 0x83, 0x37, 0x21, 0x7b, 0x4c, 0x87, 0xa6, 0x1d, 0xde, 0x27, 0x8a, 0x41, 0x74, 0x4b, - 0x99, 0x89, 0x6f, 0x29, 0xf7, 0x9f, 0xc0, 0x86, 0xee, 0x8c, 0x66, 0xd3, 0xdd, 0x47, 0x33, 0x9f, - 0xd7, 0xfe, 0xe7, 0xa9, 0x2f, 0x61, 0xd2, 0x62, 0x7e, 0x23, 0xa5, 0x0f, 0xba, 0xfb, 0x7f, 0x92, - 0xb6, 0x0e, 0x84, 0x5f, 0x37, 0x9a, 0xa6, 0x4a, 0x07, 0x16, 0xd5, 0x59, 0xea, 0xff, 0x0f, 0x00, - 0x00, 0xff, 0xff, 0xa0, 0xbf, 0x63, 0x15, 0xd3, 0x1a, 0x00, 0x00, + // 2487 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0xdb, 0xc8, + 0x15, 0x5f, 0x7d, 0x5a, 0x7a, 0x92, 0xe5, 0xf1, 0xd8, 0x9b, 0x30, 0xde, 0x8f, 0x38, 0xda, 0x8f, + 0x38, 0x49, 0xab, 0x2c, 0x9c, 0xc4, 0xc9, 0x3a, 0xc5, 0xb6, 0xb2, 0xc4, 0x78, 0x95, 0xca, 0x92, + 0x4a, 0xc9, 0xdd, 0x64, 0x8b, 0x82, 0x18, 0x93, 0x23, 0x89, 0x09, 0x45, 0x72, 0x49, 0x2a, 0x89, + 0x83, 0x1e, 0x02, 0xf4, 0xd4, 0xff, 0xa0, 0x28, 0x8a, 0x1e, 0x7a, 0x59, 0xa0, 0xd7, 0x02, 0x05, + 0xda, 0x7b, 0xaf, 0x05, 0x7a, 0xef, 0xa1, 0x40, 0x0b, 0xb4, 0x7f, 0x42, 0x8f, 0xc5, 0xcc, 0x90, + 0x14, 0xf5, 0x95, 0x78, 0x17, 0x48, 0xf6, 0x64, 0xcf, 0xef, 0xfd, 0xde, 0xe3, 0x9b, 0x37, 0x6f, + 0xde, 0xbc, 0x19, 0x01, 0xd2, 0xa9, 0xa7, 0xb9, 0x86, 0xe3, 0xdb, 0x6e, 0xc5, 0x71, 0x6d, 0xdf, + 0xc6, 0x6b, 0x03, 0xdb, 0x1e, 0x98, 0x54, 0x8c, 0x4e, 0xc6, 0xfd, 0xf2, 0x11, 0xac, 0xdf, 0x33, + 0x4c, 0x5a, 0x8f, 0x88, 0x5d, 0xea, 0xe3, 0x3b, 0x90, 0xee, 0x1b, 0x26, 0x95, 0x12, 0xdb, 0xa9, + 0x9d, 0xc2, 0xee, 0x87, 0x95, 0x19, 0xa5, 0xca, 0xb4, 0x46, 0x87, 0xc1, 0x0a, 0xd7, 0x28, 0xff, + 0x3b, 0x0d, 0x1b, 0x0b, 0xa4, 0x18, 0x43, 0xda, 0x22, 0x23, 0x66, 0x31, 0xb1, 0x93, 0x57, 0xf8, + 0xff, 0x58, 0x82, 0x15, 0x87, 0x68, 0x8f, 0xc9, 0x80, 0x4a, 0x49, 0x0e, 0x87, 0x43, 0xfc, 0x3e, + 0x80, 0x4e, 0x1d, 0x6a, 0xe9, 0xd4, 0xd2, 0x4e, 0xa5, 0xd4, 0x76, 0x6a, 0x27, 0xaf, 0xc4, 0x10, + 0x7c, 0x0d, 0xd6, 0x9d, 0xf1, 0x89, 0x69, 0x68, 0x6a, 0x8c, 0x06, 0xdb, 0xa9, 0x9d, 0x8c, 0x82, + 0x84, 0xa0, 0x3e, 0x21, 0x5f, 0x86, 0xb5, 0xa7, 0x94, 0x3c, 0x8e, 0x53, 0x0b, 0x9c, 0x5a, 0x62, + 0x70, 0x8c, 0x58, 0x83, 0xe2, 0x88, 0x7a, 0x1e, 0x19, 0x50, 0xd5, 0x3f, 0x75, 0xa8, 0x94, 0xe6, + 0xb3, 0xdf, 0x9e, 0x9b, 0xfd, 0xec, 0xcc, 0x0b, 0x81, 0x56, 0xef, 0xd4, 0xa1, 0xb8, 0x0a, 0x79, + 0x6a, 0x8d, 0x47, 0xc2, 0x42, 0x66, 0x49, 0xfc, 0x64, 0x6b, 0x3c, 0x9a, 0xb5, 0x92, 0x63, 0x6a, + 0x81, 0x89, 0x15, 0x8f, 0xba, 0x4f, 0x0c, 0x8d, 0x4a, 0x59, 0x6e, 0xe0, 0xf2, 0x9c, 0x81, 0xae, + 0x90, 0xcf, 0xda, 0x08, 0xf5, 0x70, 0x0d, 0xf2, 0xf4, 0x99, 0x4f, 0x2d, 0xcf, 0xb0, 0x2d, 0x69, + 0x85, 0x1b, 0xf9, 0x68, 0xc1, 0x2a, 0x52, 0x53, 0x9f, 0x35, 0x31, 0xd1, 0xc3, 0x7b, 0xb0, 0x62, + 0x3b, 0xbe, 0x61, 0x5b, 0x9e, 0x94, 0xdb, 0x4e, 0xec, 0x14, 0x76, 0xdf, 0x5d, 0x98, 0x08, 0x6d, + 0xc1, 0x51, 0x42, 0x32, 0x6e, 0x00, 0xf2, 0xec, 0xb1, 0xab, 0x51, 0x55, 0xb3, 0x75, 0xaa, 0x1a, + 0x56, 0xdf, 0x96, 0xf2, 0xdc, 0xc0, 0xc5, 0xf9, 0x89, 0x70, 0x62, 0xcd, 0xd6, 0x69, 0xc3, 0xea, + 0xdb, 0x4a, 0xc9, 0x9b, 0x1a, 0xe3, 0x73, 0x90, 0xf5, 0x4e, 0x2d, 0x9f, 0x3c, 0x93, 0x8a, 0x3c, + 0x43, 0x82, 0x51, 0xf9, 0xcf, 0x59, 0x58, 0x3b, 0x4b, 0x8a, 0xdd, 0x85, 0x4c, 0x9f, 0xcd, 0x52, + 0x4a, 0x7e, 0x93, 0x18, 0x08, 0x9d, 0xe9, 0x20, 0x66, 0xbf, 0x65, 0x10, 0xab, 0x50, 0xb0, 0xa8, + 0xe7, 0x53, 0x5d, 0x64, 0x44, 0xea, 0x8c, 0x39, 0x05, 0x42, 0x69, 0x3e, 0xa5, 0xd2, 0xdf, 0x2a, + 0xa5, 0x1e, 0xc0, 0x5a, 0xe4, 0x92, 0xea, 0x12, 0x6b, 0x10, 0xe6, 0xe6, 0xf5, 0x57, 0x79, 0x52, + 0x91, 0x43, 0x3d, 0x85, 0xa9, 0x29, 0x25, 0x3a, 0x35, 0xc6, 0x75, 0x00, 0xdb, 0xa2, 0x76, 0x5f, + 0xd5, 0xa9, 0x66, 0x4a, 0xb9, 0x25, 0x51, 0x6a, 0x33, 0xca, 0x5c, 0x94, 0x6c, 0x81, 0x6a, 0x26, + 0xfe, 0x74, 0x92, 0x6a, 0x2b, 0x4b, 0x32, 0xe5, 0x48, 0x6c, 0xb2, 0xb9, 0x6c, 0x3b, 0x86, 0x92, + 0x4b, 0x59, 0xde, 0x53, 0x3d, 0x98, 0x59, 0x9e, 0x3b, 0x51, 0x79, 0xe5, 0xcc, 0x94, 0x40, 0x4d, + 0x4c, 0x6c, 0xd5, 0x8d, 0x0f, 0xf1, 0x07, 0x10, 0x01, 0x2a, 0x4f, 0x2b, 0xe0, 0x55, 0xa8, 0x18, + 0x82, 0x2d, 0x32, 0xa2, 0x5b, 0xcf, 0xa1, 0x34, 0x1d, 0x1e, 0xbc, 0x09, 0x19, 0xcf, 0x27, 0xae, + 0xcf, 0xb3, 0x30, 0xa3, 0x88, 0x01, 0x46, 0x90, 0xa2, 0x96, 0xce, 0xab, 0x5c, 0x46, 0x61, 0xff, + 0xe2, 0x1f, 0x4d, 0x26, 0x9c, 0xe2, 0x13, 0xfe, 0x78, 0x7e, 0x45, 0xa7, 0x2c, 0xcf, 0xce, 0x7b, + 0xeb, 0x36, 0xac, 0x4e, 0x4d, 0xe0, 0xac, 0x9f, 0x2e, 0xff, 0x02, 0xde, 0x5e, 0x68, 0x1a, 0x3f, + 0x80, 0xcd, 0xb1, 0x65, 0x58, 0x3e, 0x75, 0x1d, 0x97, 0xb2, 0x8c, 0x15, 0x9f, 0x92, 0xfe, 0xb3, + 0xb2, 0x24, 0xe7, 0x8e, 0xe3, 0x6c, 0x61, 0x45, 0xd9, 0x18, 0xcf, 0x83, 0x57, 0xf3, 0xb9, 0xff, + 0xae, 0xa0, 0x17, 0x2f, 0x5e, 0xbc, 0x48, 0x96, 0x7f, 0x9d, 0x85, 0xcd, 0x45, 0x7b, 0x66, 0xe1, + 0xf6, 0x3d, 0x07, 0x59, 0x6b, 0x3c, 0x3a, 0xa1, 0x2e, 0x0f, 0x52, 0x46, 0x09, 0x46, 0xb8, 0x0a, + 0x19, 0x93, 0x9c, 0x50, 0x53, 0x4a, 0x6f, 0x27, 0x76, 0x4a, 0xbb, 0xd7, 0xce, 0xb4, 0x2b, 0x2b, + 0x4d, 0xa6, 0xa2, 0x08, 0x4d, 0xfc, 0x19, 0xa4, 0x83, 0x12, 0xcd, 0x2c, 0x5c, 0x3d, 0x9b, 0x05, + 0xb6, 0x97, 0x14, 0xae, 0x87, 0xdf, 0x81, 0x3c, 0xfb, 0x2b, 0x72, 0x23, 0xcb, 0x7d, 0xce, 0x31, + 0x80, 0xe5, 0x05, 0xde, 0x82, 0x1c, 0xdf, 0x26, 0x3a, 0x0d, 0x8f, 0xb6, 0x68, 0xcc, 0x12, 0x4b, + 0xa7, 0x7d, 0x32, 0x36, 0x7d, 0xf5, 0x09, 0x31, 0xc7, 0x94, 0x27, 0x7c, 0x5e, 0x29, 0x06, 0xe0, + 0x4f, 0x19, 0x86, 0x2f, 0x42, 0x41, 0xec, 0x2a, 0xc3, 0xd2, 0xe9, 0x33, 0x5e, 0x3d, 0x33, 0x8a, + 0xd8, 0x68, 0x0d, 0x86, 0xb0, 0xcf, 0x3f, 0xf2, 0x6c, 0x2b, 0x4c, 0x4d, 0xfe, 0x09, 0x06, 0xf0, + 0xcf, 0xdf, 0x9e, 0x2d, 0xdc, 0xef, 0x2d, 0x9e, 0xde, 0x6c, 0x4e, 0x95, 0xff, 0x94, 0x84, 0x34, + 0xaf, 0x17, 0x6b, 0x50, 0xe8, 0x3d, 0xec, 0xc8, 0x6a, 0xbd, 0x7d, 0x7c, 0xd0, 0x94, 0x51, 0x02, + 0x97, 0x00, 0x38, 0x70, 0xaf, 0xd9, 0xae, 0xf6, 0x50, 0x32, 0x1a, 0x37, 0x5a, 0xbd, 0xbd, 0x9b, + 0x28, 0x15, 0x29, 0x1c, 0x0b, 0x20, 0x1d, 0x27, 0xdc, 0xd8, 0x45, 0x19, 0x8c, 0xa0, 0x28, 0x0c, + 0x34, 0x1e, 0xc8, 0xf5, 0xbd, 0x9b, 0x28, 0x3b, 0x8d, 0xdc, 0xd8, 0x45, 0x2b, 0x78, 0x15, 0xf2, + 0x1c, 0x39, 0x68, 0xb7, 0x9b, 0x28, 0x17, 0xd9, 0xec, 0xf6, 0x94, 0x46, 0xeb, 0x10, 0xe5, 0x23, + 0x9b, 0x87, 0x4a, 0xfb, 0xb8, 0x83, 0x20, 0xb2, 0x70, 0x24, 0x77, 0xbb, 0xd5, 0x43, 0x19, 0x15, + 0x22, 0xc6, 0xc1, 0xc3, 0x9e, 0xdc, 0x45, 0xc5, 0x29, 0xb7, 0x6e, 0xec, 0xa2, 0xd5, 0xe8, 0x13, + 0x72, 0xeb, 0xf8, 0x08, 0x95, 0xf0, 0x3a, 0xac, 0x8a, 0x4f, 0x84, 0x4e, 0xac, 0xcd, 0x40, 0x7b, + 0x37, 0x11, 0x9a, 0x38, 0x22, 0xac, 0xac, 0x4f, 0x01, 0x7b, 0x37, 0x11, 0x2e, 0xd7, 0x20, 0xc3, + 0xb3, 0x0b, 0x63, 0x28, 0x35, 0xab, 0x07, 0x72, 0x53, 0x6d, 0x77, 0x7a, 0x8d, 0x76, 0xab, 0xda, + 0x44, 0x89, 0x09, 0xa6, 0xc8, 0x3f, 0x39, 0x6e, 0x28, 0x72, 0x1d, 0x25, 0xe3, 0x58, 0x47, 0xae, + 0xf6, 0xe4, 0x3a, 0x4a, 0x95, 0x35, 0xd8, 0x5c, 0x54, 0x27, 0x17, 0xee, 0x8c, 0xd8, 0x12, 0x27, + 0x97, 0x2c, 0x31, 0xb7, 0x35, 0xb7, 0xc4, 0xff, 0x4a, 0xc2, 0xc6, 0x82, 0xb3, 0x62, 0xe1, 0x47, + 0x7e, 0x08, 0x19, 0x91, 0xa2, 0xe2, 0xf4, 0xbc, 0xb2, 0xf0, 0xd0, 0xe1, 0x09, 0x3b, 0x77, 0x82, + 0x72, 0xbd, 0x78, 0x07, 0x91, 0x5a, 0xd2, 0x41, 0x30, 0x13, 0x73, 0x35, 0xfd, 0xe7, 0x73, 0x35, + 0x5d, 0x1c, 0x7b, 0x7b, 0x67, 0x39, 0xf6, 0x38, 0xf6, 0xcd, 0x6a, 0x7b, 0x66, 0x41, 0x6d, 0xbf, + 0x0b, 0xeb, 0x73, 0x86, 0xce, 0x5c, 0x63, 0x7f, 0x99, 0x00, 0x69, 0x59, 0x70, 0x5e, 0x51, 0xe9, + 0x92, 0x53, 0x95, 0xee, 0xee, 0x6c, 0x04, 0x2f, 0x2d, 0x5f, 0x84, 0xb9, 0xb5, 0xfe, 0x3a, 0x01, + 0xe7, 0x16, 0x77, 0x8a, 0x0b, 0x7d, 0xf8, 0x0c, 0xb2, 0x23, 0xea, 0x0f, 0xed, 0xb0, 0x5b, 0xfa, + 0x78, 0xc1, 0x19, 0xcc, 0xc4, 0xb3, 0x8b, 0x1d, 0x68, 0xc5, 0x0f, 0xf1, 0xd4, 0xb2, 0x76, 0x4f, + 0x78, 0x33, 0xe7, 0xe9, 0xaf, 0x92, 0xf0, 0xf6, 0x42, 0xe3, 0x0b, 0x1d, 0x7d, 0x0f, 0xc0, 0xb0, + 0x9c, 0xb1, 0x2f, 0x3a, 0x22, 0x51, 0x60, 0xf3, 0x1c, 0xe1, 0xc5, 0x8b, 0x15, 0xcf, 0xb1, 0x1f, + 0xc9, 0x53, 0x5c, 0x0e, 0x02, 0xe2, 0x84, 0x3b, 0x13, 0x47, 0xd3, 0xdc, 0xd1, 0xf7, 0x97, 0xcc, + 0x74, 0x2e, 0x31, 0x3f, 0x01, 0xa4, 0x99, 0x06, 0xb5, 0x7c, 0xd5, 0xf3, 0x5d, 0x4a, 0x46, 0x86, + 0x35, 0xe0, 0x27, 0x48, 0x6e, 0x3f, 0xd3, 0x27, 0xa6, 0x47, 0x95, 0x35, 0x21, 0xee, 0x86, 0x52, + 0xa6, 0xc1, 0x13, 0xc8, 0x8d, 0x69, 0x64, 0xa7, 0x34, 0x84, 0x38, 0xd2, 0x28, 0xff, 0x31, 0x07, + 0x85, 0x58, 0x5f, 0x8d, 0x2f, 0x41, 0xf1, 0x11, 0x79, 0x42, 0xd4, 0xf0, 0xae, 0x24, 0x22, 0x51, + 0x60, 0x58, 0x27, 0xb8, 0x2f, 0x7d, 0x02, 0x9b, 0x9c, 0x62, 0x8f, 0x7d, 0xea, 0xaa, 0x9a, 0x49, + 0x3c, 0x8f, 0x07, 0x2d, 0xc7, 0xa9, 0x98, 0xc9, 0xda, 0x4c, 0x54, 0x0b, 0x25, 0xf8, 0x16, 0x6c, + 0x70, 0x8d, 0xd1, 0xd8, 0xf4, 0x0d, 0xc7, 0xa4, 0x2a, 0xbb, 0xbd, 0x79, 0xfc, 0x24, 0x89, 0x3c, + 0x5b, 0x67, 0x8c, 0xa3, 0x80, 0xc0, 0x3c, 0xf2, 0x70, 0x1d, 0xde, 0xe3, 0x6a, 0x03, 0x6a, 0x51, + 0x97, 0xf8, 0x54, 0xa5, 0x5f, 0x8d, 0x89, 0xe9, 0xa9, 0xc4, 0xd2, 0xd5, 0x21, 0xf1, 0x86, 0xd2, + 0x26, 0x33, 0x70, 0x90, 0x94, 0x12, 0xca, 0x05, 0x46, 0x3c, 0x0c, 0x78, 0x32, 0xa7, 0x55, 0x2d, + 0xfd, 0x73, 0xe2, 0x0d, 0xf1, 0x3e, 0x9c, 0xe3, 0x56, 0x3c, 0xdf, 0x35, 0xac, 0x81, 0xaa, 0x0d, + 0xa9, 0xf6, 0x58, 0x1d, 0xfb, 0xfd, 0x3b, 0xd2, 0x3b, 0xf1, 0xef, 0x73, 0x0f, 0xbb, 0x9c, 0x53, + 0x63, 0x94, 0x63, 0xbf, 0x7f, 0x07, 0x77, 0xa1, 0xc8, 0x16, 0x63, 0x64, 0x3c, 0xa7, 0x6a, 0xdf, + 0x76, 0xf9, 0xd1, 0x58, 0x5a, 0x50, 0x9a, 0x62, 0x11, 0xac, 0xb4, 0x03, 0x85, 0x23, 0x5b, 0xa7, + 0xfb, 0x99, 0x6e, 0x47, 0x96, 0xeb, 0x4a, 0x21, 0xb4, 0x72, 0xcf, 0x76, 0x59, 0x42, 0x0d, 0xec, + 0x28, 0xc0, 0x05, 0x91, 0x50, 0x03, 0x3b, 0x0c, 0xef, 0x2d, 0xd8, 0xd0, 0x34, 0x31, 0x67, 0x43, + 0x53, 0x83, 0x3b, 0x96, 0x27, 0xa1, 0xa9, 0x60, 0x69, 0xda, 0xa1, 0x20, 0x04, 0x39, 0xee, 0xe1, + 0x4f, 0xe1, 0xed, 0x49, 0xb0, 0xe2, 0x8a, 0xeb, 0x73, 0xb3, 0x9c, 0x55, 0xbd, 0x05, 0x1b, 0xce, + 0xe9, 0xbc, 0x22, 0x9e, 0xfa, 0xa2, 0x73, 0x3a, 0xab, 0x76, 0x1b, 0x36, 0x9d, 0xa1, 0x33, 0xaf, + 0x77, 0x35, 0xae, 0x87, 0x9d, 0xa1, 0x33, 0xab, 0xf8, 0x11, 0xbf, 0x70, 0xbb, 0x54, 0x23, 0x3e, + 0xd5, 0xa5, 0xf3, 0x71, 0x7a, 0x4c, 0x80, 0xaf, 0x03, 0xd2, 0x34, 0x95, 0x5a, 0xe4, 0xc4, 0xa4, + 0x2a, 0x71, 0xa9, 0x45, 0x3c, 0xe9, 0x62, 0x9c, 0x5c, 0xd2, 0x34, 0x99, 0x4b, 0xab, 0x5c, 0x88, + 0xaf, 0xc2, 0xba, 0x7d, 0xf2, 0x48, 0x13, 0x29, 0xa9, 0x3a, 0x2e, 0xed, 0x1b, 0xcf, 0xa4, 0x0f, + 0x79, 0x7c, 0xd7, 0x98, 0x80, 0x27, 0x64, 0x87, 0xc3, 0xf8, 0x0a, 0x20, 0xcd, 0x1b, 0x12, 0xd7, + 0xe1, 0x35, 0xd9, 0x73, 0x88, 0x46, 0xa5, 0x8f, 0x04, 0x55, 0xe0, 0xad, 0x10, 0x66, 0x5b, 0xc2, + 0x7b, 0x6a, 0xf4, 0xfd, 0xd0, 0xe2, 0x65, 0xb1, 0x25, 0x38, 0x16, 0x58, 0xdb, 0x01, 0xc4, 0x42, + 0x31, 0xf5, 0xe1, 0x1d, 0x4e, 0x2b, 0x39, 0x43, 0x27, 0xfe, 0xdd, 0x0f, 0x60, 0x95, 0x31, 0x27, + 0x1f, 0xbd, 0x22, 0x1a, 0x32, 0x67, 0x18, 0xfb, 0xe2, 0x6b, 0xeb, 0x8d, 0xcb, 0xfb, 0x50, 0x8c, + 0xe7, 0x27, 0xce, 0x83, 0xc8, 0x50, 0x94, 0x60, 0xcd, 0x4a, 0xad, 0x5d, 0x67, 0x6d, 0xc6, 0x97, + 0x32, 0x4a, 0xb2, 0x76, 0xa7, 0xd9, 0xe8, 0xc9, 0xaa, 0x72, 0xdc, 0xea, 0x35, 0x8e, 0x64, 0x94, + 0x8a, 0xf7, 0xd5, 0x7f, 0x4d, 0x42, 0x69, 0xfa, 0x8a, 0x84, 0x7f, 0x00, 0xe7, 0xc3, 0xf7, 0x0c, + 0x8f, 0xfa, 0xea, 0x53, 0xc3, 0xe5, 0x5b, 0x66, 0x44, 0xc4, 0xf1, 0x15, 0x2d, 0xda, 0x66, 0xc0, + 0xea, 0x52, 0xff, 0x0b, 0xc3, 0x65, 0x1b, 0x62, 0x44, 0x7c, 0xdc, 0x84, 0x8b, 0x96, 0xad, 0x7a, + 0x3e, 0xb1, 0x74, 0xe2, 0xea, 0xea, 0xe4, 0x25, 0x49, 0x25, 0x9a, 0x46, 0x3d, 0xcf, 0x16, 0x47, + 0x55, 0x64, 0xe5, 0x5d, 0xcb, 0xee, 0x06, 0xe4, 0x49, 0x0d, 0xaf, 0x06, 0xd4, 0x99, 0x04, 0x4b, + 0x2d, 0x4b, 0xb0, 0x77, 0x20, 0x3f, 0x22, 0x8e, 0x4a, 0x2d, 0xdf, 0x3d, 0xe5, 0x8d, 0x71, 0x4e, + 0xc9, 0x8d, 0x88, 0x23, 0xb3, 0xf1, 0x9b, 0xb9, 0x9f, 0xfc, 0x23, 0x05, 0xc5, 0x78, 0x73, 0xcc, + 0xee, 0x1a, 0x1a, 0x3f, 0x47, 0x12, 0xbc, 0xd2, 0x7c, 0xf0, 0xd2, 0x56, 0xba, 0x52, 0x63, 0x07, + 0xcc, 0x7e, 0x56, 0xb4, 0xac, 0x8a, 0xd0, 0x64, 0x87, 0x3b, 0xab, 0x2d, 0x54, 0xb4, 0x08, 0x39, + 0x25, 0x18, 0xe1, 0x43, 0xc8, 0x3e, 0xf2, 0xb8, 0xed, 0x2c, 0xb7, 0xfd, 0xe1, 0xcb, 0x6d, 0xdf, + 0xef, 0x72, 0xe3, 0xf9, 0xfb, 0x5d, 0xb5, 0xd5, 0x56, 0x8e, 0xaa, 0x4d, 0x25, 0x50, 0xc7, 0x17, + 0x20, 0x6d, 0x92, 0xe7, 0xa7, 0xd3, 0x47, 0x11, 0x87, 0xce, 0x1a, 0xf8, 0x0b, 0x90, 0x7e, 0x4a, + 0xc9, 0xe3, 0xe9, 0x03, 0x80, 0x43, 0xaf, 0x31, 0xf5, 0xaf, 0x43, 0x86, 0xc7, 0x0b, 0x03, 0x04, + 0x11, 0x43, 0x6f, 0xe1, 0x1c, 0xa4, 0x6b, 0x6d, 0x85, 0xa5, 0x3f, 0x82, 0xa2, 0x40, 0xd5, 0x4e, + 0x43, 0xae, 0xc9, 0x28, 0x59, 0xbe, 0x05, 0x59, 0x11, 0x04, 0xb6, 0x35, 0xa2, 0x30, 0xa0, 0xb7, + 0x82, 0x61, 0x60, 0x23, 0x11, 0x4a, 0x8f, 0x8f, 0x0e, 0x64, 0x05, 0x25, 0xe3, 0xcb, 0xeb, 0x41, + 0x31, 0xde, 0x17, 0xbf, 0x99, 0x9c, 0xfa, 0x4b, 0x02, 0x0a, 0xb1, 0x3e, 0x97, 0x35, 0x28, 0xc4, + 0x34, 0xed, 0xa7, 0x2a, 0x31, 0x0d, 0xe2, 0x05, 0x49, 0x01, 0x1c, 0xaa, 0x32, 0xe4, 0xac, 0x8b, + 0xf6, 0x46, 0x9c, 0xff, 0x5d, 0x02, 0xd0, 0x6c, 0x8b, 0x39, 0xe3, 0x60, 0xe2, 0x3b, 0x75, 0xf0, + 0xb7, 0x09, 0x28, 0x4d, 0xf7, 0x95, 0x33, 0xee, 0x5d, 0xfa, 0x4e, 0xdd, 0xfb, 0x67, 0x12, 0x56, + 0xa7, 0xba, 0xc9, 0xb3, 0x7a, 0xf7, 0x15, 0xac, 0x1b, 0x3a, 0x1d, 0x39, 0xb6, 0x4f, 0x2d, 0xed, + 0x54, 0x35, 0xe9, 0x13, 0x6a, 0x4a, 0x65, 0x5e, 0x28, 0xae, 0xbf, 0xbc, 0x5f, 0xad, 0x34, 0x26, + 0x7a, 0x4d, 0xa6, 0xb6, 0xbf, 0xd1, 0xa8, 0xcb, 0x47, 0x9d, 0x76, 0x4f, 0x6e, 0xd5, 0x1e, 0xaa, + 0xc7, 0xad, 0x1f, 0xb7, 0xda, 0x5f, 0xb4, 0x14, 0x64, 0xcc, 0xd0, 0x5e, 0xe3, 0x56, 0xef, 0x00, + 0x9a, 0x75, 0x0a, 0x9f, 0x87, 0x45, 0x6e, 0xa1, 0xb7, 0xf0, 0x06, 0xac, 0xb5, 0xda, 0x6a, 0xb7, + 0x51, 0x97, 0x55, 0xf9, 0xde, 0x3d, 0xb9, 0xd6, 0xeb, 0x8a, 0x17, 0x88, 0x88, 0xdd, 0x9b, 0xde, + 0xd4, 0xbf, 0x49, 0xc1, 0xc6, 0x02, 0x4f, 0x70, 0x35, 0xb8, 0x3b, 0x88, 0xeb, 0xcc, 0xf7, 0xcf, + 0xe2, 0x7d, 0x85, 0x1d, 0xf9, 0x1d, 0xe2, 0xfa, 0xc1, 0x55, 0xe3, 0x0a, 0xb0, 0x28, 0x59, 0xbe, + 0xd1, 0x37, 0xa8, 0x1b, 0x3c, 0xd8, 0x88, 0x0b, 0xc5, 0xda, 0x04, 0x17, 0x6f, 0x36, 0xdf, 0x03, + 0xec, 0xd8, 0x9e, 0xe1, 0x1b, 0x4f, 0xa8, 0x6a, 0x58, 0xe1, 0xeb, 0x0e, 0xbb, 0x60, 0xa4, 0x15, + 0x14, 0x4a, 0x1a, 0x96, 0x1f, 0xb1, 0x2d, 0x3a, 0x20, 0x33, 0x6c, 0x56, 0xc0, 0x53, 0x0a, 0x0a, + 0x25, 0x11, 0xfb, 0x12, 0x14, 0x75, 0x7b, 0xcc, 0xba, 0x2e, 0xc1, 0x63, 0xe7, 0x45, 0x42, 0x29, + 0x08, 0x2c, 0xa2, 0x04, 0xfd, 0xf4, 0xe4, 0x59, 0xa9, 0xa8, 0x14, 0x04, 0x26, 0x28, 0x97, 0x61, + 0x8d, 0x0c, 0x06, 0x2e, 0x33, 0x1e, 0x1a, 0x12, 0x37, 0x84, 0x52, 0x04, 0x73, 0xe2, 0xd6, 0x7d, + 0xc8, 0x85, 0x71, 0x60, 0x47, 0x32, 0x8b, 0x84, 0xea, 0x88, 0x6b, 0x6f, 0x72, 0x27, 0xaf, 0xe4, + 0xac, 0x50, 0x78, 0x09, 0x8a, 0x86, 0xa7, 0x4e, 0x5e, 0xc9, 0x93, 0xdb, 0xc9, 0x9d, 0x9c, 0x52, + 0x30, 0xbc, 0xe8, 0x85, 0xb1, 0xfc, 0x75, 0x12, 0x4a, 0xd3, 0xaf, 0xfc, 0xb8, 0x0e, 0x39, 0xd3, + 0xd6, 0x08, 0x4f, 0x2d, 0xf1, 0x13, 0xd3, 0xce, 0x2b, 0x7e, 0x18, 0xa8, 0x34, 0x03, 0xbe, 0x12, + 0x69, 0x6e, 0xfd, 0x2d, 0x01, 0xb9, 0x10, 0xc6, 0xe7, 0x20, 0xed, 0x10, 0x7f, 0xc8, 0xcd, 0x65, + 0x0e, 0x92, 0x28, 0xa1, 0xf0, 0x31, 0xc3, 0x3d, 0x87, 0x58, 0x3c, 0x05, 0x02, 0x9c, 0x8d, 0xd9, + 0xba, 0x9a, 0x94, 0xe8, 0xfc, 0xfa, 0x61, 0x8f, 0x46, 0xd4, 0xf2, 0xbd, 0x70, 0x5d, 0x03, 0xbc, + 0x16, 0xc0, 0xf8, 0x1a, 0xac, 0xfb, 0x2e, 0x31, 0xcc, 0x29, 0x6e, 0x9a, 0x73, 0x51, 0x28, 0x88, + 0xc8, 0xfb, 0x70, 0x21, 0xb4, 0xab, 0x53, 0x9f, 0x68, 0x43, 0xaa, 0x4f, 0x94, 0xb2, 0xfc, 0x99, + 0xe1, 0x7c, 0x40, 0xa8, 0x07, 0xf2, 0x50, 0xb7, 0xfc, 0xf7, 0x04, 0xac, 0x87, 0x17, 0x26, 0x3d, + 0x0a, 0xd6, 0x11, 0x00, 0xb1, 0x2c, 0xdb, 0x8f, 0x87, 0x6b, 0x3e, 0x95, 0xe7, 0xf4, 0x2a, 0xd5, + 0x48, 0x49, 0x89, 0x19, 0xd8, 0x1a, 0x01, 0x4c, 0x24, 0x4b, 0xc3, 0x76, 0x11, 0x0a, 0xc1, 0x4f, + 0x38, 0xfc, 0x77, 0x40, 0x71, 0xc5, 0x06, 0x01, 0xb1, 0x9b, 0x15, 0xde, 0x84, 0xcc, 0x09, 0x1d, + 0x18, 0x56, 0xf0, 0x30, 0x2b, 0x06, 0xe1, 0x43, 0x48, 0x3a, 0x7a, 0x08, 0x39, 0xf8, 0x19, 0x6c, + 0x68, 0xf6, 0x68, 0xd6, 0xdd, 0x03, 0x34, 0x73, 0xcd, 0xf7, 0x3e, 0x4f, 0x7c, 0x09, 0x93, 0x16, + 0xf3, 0x7f, 0x89, 0xc4, 0xef, 0x93, 0xa9, 0xc3, 0xce, 0xc1, 0x1f, 0x92, 0x5b, 0x87, 0x42, 0xb5, + 0x13, 0xce, 0x54, 0xa1, 0x7d, 0x93, 0x6a, 0xcc, 0xfb, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xa3, + 0x58, 0x22, 0x30, 0xdf, 0x1c, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go index bac9913e0..3b95a7757 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor_gostring.gen.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: descriptor.proto -// DO NOT EDIT! /* Package descriptor is a generated protocol buffer package. @@ -12,6 +11,7 @@ It has these top-level messages: FileDescriptorSet FileDescriptorProto DescriptorProto + ExtensionRangeOptions FieldDescriptorProto OneofDescriptorProto EnumDescriptorProto @@ -34,11 +34,10 @@ package descriptor import fmt "fmt" import strings "strings" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import proto "github.com/gogo/protobuf/proto" import sort "sort" import strconv "strconv" import reflect "reflect" -import proto "github.com/gogo/protobuf/proto" import math "math" // Reference imports to suppress errors if they are not otherwise used. @@ -155,7 +154,7 @@ func (this *DescriptorProto_ExtensionRange) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 6) + s := make([]string, 0, 7) s = append(s, "&descriptor.DescriptorProto_ExtensionRange{") if this.Start != nil { s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n") @@ -163,6 +162,9 @@ func (this *DescriptorProto_ExtensionRange) GoString() string { if this.End != nil { s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n") } + if this.Options != nil { + s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -187,6 +189,22 @@ func (this *DescriptorProto_ReservedRange) GoString() string { s = append(s, "}") return strings.Join(s, "") } +func (this *ExtensionRangeOptions) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&descriptor.ExtensionRangeOptions{") + if this.UninterpretedOption != nil { + s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") + } + s = append(s, "XXX_InternalExtensions: "+extensionToGoStringDescriptor(this)+",\n") + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} func (this *FieldDescriptorProto) GoString() string { if this == nil { return "nil" @@ -200,10 +218,10 @@ func (this *FieldDescriptorProto) GoString() string { s = append(s, "Number: "+valueToGoStringDescriptor(this.Number, "int32")+",\n") } if this.Label != nil { - s = append(s, "Label: "+valueToGoStringDescriptor(this.Label, "descriptor.FieldDescriptorProto_Label")+",\n") + s = append(s, "Label: "+valueToGoStringDescriptor(this.Label, "FieldDescriptorProto_Label")+",\n") } if this.Type != nil { - s = append(s, "Type: "+valueToGoStringDescriptor(this.Type, "descriptor.FieldDescriptorProto_Type")+",\n") + s = append(s, "Type: "+valueToGoStringDescriptor(this.Type, "FieldDescriptorProto_Type")+",\n") } if this.TypeName != nil { s = append(s, "TypeName: "+valueToGoStringDescriptor(this.TypeName, "string")+",\n") @@ -251,7 +269,7 @@ func (this *EnumDescriptorProto) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 7) + s := make([]string, 0, 9) s = append(s, "&descriptor.EnumDescriptorProto{") if this.Name != nil { s = append(s, "Name: "+valueToGoStringDescriptor(this.Name, "string")+",\n") @@ -262,6 +280,30 @@ func (this *EnumDescriptorProto) GoString() string { if this.Options != nil { s = append(s, "Options: "+fmt.Sprintf("%#v", this.Options)+",\n") } + if this.ReservedRange != nil { + s = append(s, "ReservedRange: "+fmt.Sprintf("%#v", this.ReservedRange)+",\n") + } + if this.ReservedName != nil { + s = append(s, "ReservedName: "+fmt.Sprintf("%#v", this.ReservedName)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *EnumDescriptorProto_EnumReservedRange) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 6) + s = append(s, "&descriptor.EnumDescriptorProto_EnumReservedRange{") + if this.Start != nil { + s = append(s, "Start: "+valueToGoStringDescriptor(this.Start, "int32")+",\n") + } + if this.End != nil { + s = append(s, "End: "+valueToGoStringDescriptor(this.End, "int32")+",\n") + } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") } @@ -344,7 +386,7 @@ func (this *FileOptions) GoString() string { if this == nil { return "nil" } - s := make([]string, 0, 20) + s := make([]string, 0, 23) s = append(s, "&descriptor.FileOptions{") if this.JavaPackage != nil { s = append(s, "JavaPackage: "+valueToGoStringDescriptor(this.JavaPackage, "string")+",\n") @@ -362,7 +404,7 @@ func (this *FileOptions) GoString() string { s = append(s, "JavaStringCheckUtf8: "+valueToGoStringDescriptor(this.JavaStringCheckUtf8, "bool")+",\n") } if this.OptimizeFor != nil { - s = append(s, "OptimizeFor: "+valueToGoStringDescriptor(this.OptimizeFor, "descriptor.FileOptions_OptimizeMode")+",\n") + s = append(s, "OptimizeFor: "+valueToGoStringDescriptor(this.OptimizeFor, "FileOptions_OptimizeMode")+",\n") } if this.GoPackage != nil { s = append(s, "GoPackage: "+valueToGoStringDescriptor(this.GoPackage, "string")+",\n") @@ -376,6 +418,9 @@ func (this *FileOptions) GoString() string { if this.PyGenericServices != nil { s = append(s, "PyGenericServices: "+valueToGoStringDescriptor(this.PyGenericServices, "bool")+",\n") } + if this.PhpGenericServices != nil { + s = append(s, "PhpGenericServices: "+valueToGoStringDescriptor(this.PhpGenericServices, "bool")+",\n") + } if this.Deprecated != nil { s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") } @@ -391,6 +436,12 @@ func (this *FileOptions) GoString() string { if this.SwiftPrefix != nil { s = append(s, "SwiftPrefix: "+valueToGoStringDescriptor(this.SwiftPrefix, "string")+",\n") } + if this.PhpClassPrefix != nil { + s = append(s, "PhpClassPrefix: "+valueToGoStringDescriptor(this.PhpClassPrefix, "string")+",\n") + } + if this.PhpNamespace != nil { + s = append(s, "PhpNamespace: "+valueToGoStringDescriptor(this.PhpNamespace, "string")+",\n") + } if this.UninterpretedOption != nil { s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") } @@ -436,13 +487,13 @@ func (this *FieldOptions) GoString() string { s := make([]string, 0, 11) s = append(s, "&descriptor.FieldOptions{") if this.Ctype != nil { - s = append(s, "Ctype: "+valueToGoStringDescriptor(this.Ctype, "descriptor.FieldOptions_CType")+",\n") + s = append(s, "Ctype: "+valueToGoStringDescriptor(this.Ctype, "FieldOptions_CType")+",\n") } if this.Packed != nil { s = append(s, "Packed: "+valueToGoStringDescriptor(this.Packed, "bool")+",\n") } if this.Jstype != nil { - s = append(s, "Jstype: "+valueToGoStringDescriptor(this.Jstype, "descriptor.FieldOptions_JSType")+",\n") + s = append(s, "Jstype: "+valueToGoStringDescriptor(this.Jstype, "FieldOptions_JSType")+",\n") } if this.Lazy != nil { s = append(s, "Lazy: "+valueToGoStringDescriptor(this.Lazy, "bool")+",\n") @@ -549,7 +600,7 @@ func (this *MethodOptions) GoString() string { s = append(s, "Deprecated: "+valueToGoStringDescriptor(this.Deprecated, "bool")+",\n") } if this.IdempotencyLevel != nil { - s = append(s, "IdempotencyLevel: "+valueToGoStringDescriptor(this.IdempotencyLevel, "descriptor.MethodOptions_IdempotencyLevel")+",\n") + s = append(s, "IdempotencyLevel: "+valueToGoStringDescriptor(this.IdempotencyLevel, "MethodOptions_IdempotencyLevel")+",\n") } if this.UninterpretedOption != nil { s = append(s, "UninterpretedOption: "+fmt.Sprintf("%#v", this.UninterpretedOption)+",\n") @@ -701,8 +752,8 @@ func valueToGoStringDescriptor(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringDescriptor(m github_com_gogo_protobuf_proto.Message) string { - e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) +func extensionToGoStringDescriptor(m proto.Message) string { + e := proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go index a40dda233..519e22d09 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/generator.go @@ -715,6 +715,12 @@ var pkgNamesInUse = make(map[string][]*FileDescriptor) // Pkg is the candidate name. If f is nil, it's a builtin package like "proto" and // has no file descriptor. func RegisterUniquePackageName(pkg string, f *FileDescriptor) string { + if f == nil { + // For builtin and standard lib packages, try to use only + // the last component of the package path. + pkg = pkg[strings.LastIndex(pkg, "/")+1:] + } + // Convert dots to underscores before finding a unique alias. pkg = strings.Map(badToUnderscore, pkg) @@ -1321,9 +1327,8 @@ func (g *Generator) generate(file *FileDescriptor) { // Generate the header, including package definition func (g *Generator) generateHeader() { - g.P("// Code generated by protoc-gen-gogo.") + g.P("// Code generated by protoc-gen-gogo. DO NOT EDIT.") g.P("// source: ", *g.file.Name) - g.P("// DO NOT EDIT!") g.P() name := g.file.PackageName() @@ -2211,6 +2216,15 @@ func (g *Generator) generateMessage(message *Descriptor) { } g.Out() g.P("}") + } else { + // Even if the type does not need to be generated, we need to iterate + // over all its fields to be able to mark as used any imported types + // used by those fields. + for _, field := range message.Field { + if !gogoproto.IsStdTime(field) && !gogoproto.IsStdDuration(field) { + g.RecordTypeUse(field.GetTypeName()) + } + } } // Update g.Buffer to list valid oneof types. @@ -2329,7 +2343,7 @@ func (g *Generator) generateMessage(message *Descriptor) { case typename == "string": def = strconv.Quote(def) case typename == "[]byte": - def = "[]byte(" + strconv.Quote(def) + ")" + def = "[]byte(" + strconv.Quote(unescape(def)) + ")" kind = "var " case def == "inf", def == "-inf", def == "nan": // These names are known to, and defined by, the protocol language. @@ -3047,6 +3061,67 @@ func (g *Generator) generateMessage(message *Descriptor) { } } +var escapeChars = [256]byte{ + 'a': '\a', 'b': '\b', 'f': '\f', 'n': '\n', 'r': '\r', 't': '\t', 'v': '\v', '\\': '\\', '"': '"', '\'': '\'', '?': '?', +} + +// unescape reverses the "C" escaping that protoc does for default values of bytes fields. +// It is best effort in that it effectively ignores malformed input. Seemingly invalid escape +// sequences are conveyed, unmodified, into the decoded result. +func unescape(s string) string { + // NB: Sadly, we can't use strconv.Unquote because protoc will escape both + // single and double quotes, but strconv.Unquote only allows one or the + // other (based on actual surrounding quotes of its input argument). + + var out []byte + for len(s) > 0 { + // regular character, or too short to be valid escape + if s[0] != '\\' || len(s) < 2 { + out = append(out, s[0]) + s = s[1:] + } else if c := escapeChars[s[1]]; c != 0 { + // escape sequence + out = append(out, c) + s = s[2:] + } else if s[1] == 'x' || s[1] == 'X' { + // hex escape, e.g. "\x80 + if len(s) < 4 { + // too short to be valid + out = append(out, s[:2]...) + s = s[2:] + continue + } + v, err := strconv.ParseUint(s[2:4], 16, 8) + if err != nil { + out = append(out, s[:4]...) + } else { + out = append(out, byte(v)) + } + s = s[4:] + } else if '0' <= s[1] && s[1] <= '7' { + // octal escape, can vary from 1 to 3 octal digits; e.g., "\0" "\40" or "\164" + // so consume up to 2 more bytes or up to end-of-string + n := len(s[1:]) - len(strings.TrimLeft(s[1:], "01234567")) + if n > 3 { + n = 3 + } + v, err := strconv.ParseUint(s[1:1+n], 8, 8) + if err != nil { + out = append(out, s[:1+n]...) + } else { + out = append(out, byte(v)) + } + s = s[1+n:] + } else { + // bad escape, just propagate the slash as-is + out = append(out, s[0]) + s = s[1:] + } + } + + return string(out) +} + func (g *Generator) generateExtension(ext *ExtensionDescriptor) { ccTypeName := ext.DescName() diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/name_test.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/name_test.go index fde3b046c..b3b60a3c6 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/name_test.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/name_test.go @@ -83,3 +83,32 @@ func TestGoPackageOption(t *testing.T) { } } } + +func TestUnescape(t *testing.T) { + tests := []struct { + in string + out string + }{ + // successful cases, including all kinds of escapes + {"", ""}, + {"foo bar baz frob nitz", "foo bar baz frob nitz"}, + {`\000\001\002\003\004\005\006\007`, string([]byte{0, 1, 2, 3, 4, 5, 6, 7})}, + {`\a\b\f\n\r\t\v\\\?\'\"`, string([]byte{'\a', '\b', '\f', '\n', '\r', '\t', '\v', '\\', '?', '\'', '"'})}, + {`\x10\x20\x30\x40\x50\x60\x70\x80`, string([]byte{16, 32, 48, 64, 80, 96, 112, 128})}, + // variable length octal escapes + {`\0\018\222\377\3\04\005\6\07`, string([]byte{0, 1, '8', 0222, 255, 3, 4, 5, 6, 7})}, + // malformed escape sequences left as is + {"foo \\g bar", "foo \\g bar"}, + {"foo \\xg0 bar", "foo \\xg0 bar"}, + {"\\", "\\"}, + {"\\x", "\\x"}, + {"\\xf", "\\xf"}, + {"\\777", "\\777"}, // overflows byte + } + for _, tc := range tests { + s := unescape(tc.in) + if s != tc.out { + t.Errorf("doUnescape(%q) = %q; should have been %q", tc.in, s, tc.out) + } + } +} diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go index 359001b47..06abe9b6a 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/grpc.go @@ -36,7 +36,6 @@ package grpc import ( "fmt" - "path" "strconv" "strings" @@ -129,11 +128,11 @@ func (g *grpc) GenerateImports(file *generator.FileDescriptor) { if len(file.FileDescriptorProto.Service) == 0 { return } - g.P("import (") - g.P(contextPkg, " ", strconv.Quote(path.Join(g.gen.ImportPrefix, contextPkgPath))) - g.P(grpcPkg, " ", strconv.Quote(path.Join(g.gen.ImportPrefix, grpcPkgPath))) - g.P(")") - g.P() + imports := generator.NewPluginImports(g.gen) + for _, i := range []string{contextPkgPath, grpcPkgPath} { + imports.NewImport(i).Use() + } + imports.GenerateImports(file) } // reservedClientName records whether a client name is reserved on the client side. diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go index 0f9f059ca..c673d5035 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/plugin.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: plugin.proto -// DO NOT EDIT! /* Package plugin_go is a generated protocol buffer package. @@ -94,6 +93,9 @@ type CodeGeneratorRequest struct { // the entire set into memory at once. However, as of this writing, this // is not similarly optimized on protoc's end -- it will store all fields in // memory at once before sending them to the plugin. + // + // Type names of fields and extensions in the FileDescriptorProto are always + // fully qualified. ProtoFile []*google_protobuf.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file,json=protoFile" json:"proto_file,omitempty"` // The version number of protocol compiler. CompilerVersion *Version `protobuf:"bytes,3,opt,name=compiler_version,json=compilerVersion" json:"compiler_version,omitempty"` diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile index 4882f1946..ce21a1861 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/Makefile @@ -38,12 +38,9 @@ test: regenerate testbuild # ./extension_test # @echo PASS -my_test/test.pb.go: my_test/test.proto - protoc --gogo_out=Mmulti/multi1.proto=github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi:. $< - -regenerate: my_test/test.pb.go +regenerate: go install github.com/gogo/protobuf/protoc-min-version - protoc-min-version --version="3.0.0" --gogo_out=. ./my_test/test.proto + protoc-min-version --version="3.0.0" --gogo_out=Mmulti/multi1.proto=github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi:. ./my_test/test.proto nuke: clean diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go index 6605ccfc1..a266a709f 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/testdata/my_test/test.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: my_test/test.proto -// DO NOT EDIT! /* Package my_test is a generated protocol buffer package. @@ -24,7 +23,7 @@ package my_test import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import _ "multi" +import _ "github.com/gogo/protobuf/protoc-gen-gogo/testdata/multi" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal diff --git a/vendor/github.com/gogo/protobuf/test/Makefile b/vendor/github.com/gogo/protobuf/test/Makefile index 0a658282f..e3002d180 100644 --- a/vendor/github.com/gogo/protobuf/test/Makefile +++ b/vendor/github.com/gogo/protobuf/test/Makefile @@ -34,12 +34,6 @@ regenerate: cp uuid.go ./combos/both/ cp uuid.go ./combos/marshaler/ cp uuid.go ./combos/unmarshaler/ - cp uuid.go ./combos/unsafeboth/ - cp uuid.go ./combos/unsafemarshaler/ - cp uuid.go ./combos/unsafeunmarshaler/ cp bug_test.go ./combos/both/ cp bug_test.go ./combos/marshaler/ cp bug_test.go ./combos/unmarshaler/ - cp bug_test.go ./combos/unsafeboth/ - cp bug_test.go ./combos/unsafemarshaler/ - cp bug_test.go ./combos/unsafeunmarshaler/ diff --git a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go index b28b78478..ca628dec0 100644 --- a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go +++ b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asym.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: asym.proto -// DO NOT EDIT! /* Package asym is a generated protocol buffer package. @@ -226,24 +225,6 @@ func (m *M) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Asym(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 encodeFixed32Asym(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 encodeVarintAsym(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asympb_test.go b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asympb_test.go index ac89f9d7b..8d968b941 100644 --- a/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asympb_test.go +++ b/vendor/github.com/gogo/protobuf/test/asymetric-issue125/asympb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: asym.proto -// DO NOT EDIT! /* Package asym is a generated protocol buffer package. @@ -15,11 +14,10 @@ It has these top-level messages: package asym import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -31,14 +29,14 @@ var _ = math.Inf func TestMProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -59,13 +57,13 @@ func TestMProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -77,7 +75,7 @@ func TestMMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -93,15 +91,15 @@ func TestMMarshalTo(t *testing.T) { func TestMJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &M{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -114,11 +112,11 @@ func TestMJSON(t *testing.T) { } func TestMProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &M{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -131,11 +129,11 @@ func TestMProtoText(t *testing.T) { func TestMProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &M{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -147,14 +145,14 @@ func TestMProtoCompactText(t *testing.T) { } func TestMVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedM(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -163,10 +161,10 @@ func TestMVerboseEqual(t *testing.T) { } func TestMSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -177,7 +175,7 @@ func TestMSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go index 3d8443de8..dd233b33b 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttype.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/casttype.proto -// DO NOT EDIT! /* Package casttype is a generated protocol buffer package. @@ -21,15 +20,16 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +import binary "encoding/binary" import io "io" @@ -81,285 +81,292 @@ func init() { proto.RegisterType((*Castaway)(nil), "casttype.Castaway") proto.RegisterType((*Wilson)(nil), "casttype.Wilson") } -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Castaway) Description() (desc *descriptor.FileDescriptorSet) { return CasttypeDescription() } -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Wilson) Description() (desc *descriptor.FileDescriptorSet) { return CasttypeDescription() } -func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func CasttypeDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4124 bytes of a gzipped FileDescriptorSet + // 4234 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0x4b, 0x10, 0x1d, 0x83, 0x14, 0xfd, - 0x47, 0xdb, 0x09, 0xe5, 0xd1, 0x9f, 0x65, 0x28, 0xb1, 0x07, 0x20, 0x21, 0x06, 0x2a, 0x41, 0x20, - 0x4b, 0x32, 0x92, 0xdc, 0xce, 0xec, 0x2c, 0x17, 0x97, 0xe0, 0x4a, 0x8b, 0x5d, 0x64, 0x77, 0x21, - 0x19, 0x7e, 0x52, 0xe3, 0xb6, 0x99, 0xb4, 0xd3, 0xff, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0xcd, 0x4c, - 0xeb, 0x34, 0x69, 0x9b, 0xa4, 0x6d, 0xd2, 0x4c, 0x9f, 0xf2, 0x92, 0xd6, 0x4f, 0x9d, 0xe4, 0xad, - 0x0f, 0x1d, 0xd9, 0x62, 0x3c, 0x53, 0xa7, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xf2, 0x4b, 0xe7, - 0xfe, 0x2d, 0x16, 0x3f, 0xe4, 0x82, 0xca, 0x38, 0x79, 0x22, 0xf6, 0xdc, 0xf3, 0x7d, 0x7b, 0xee, - 0xb9, 0xe7, 0x9e, 0x73, 0xf6, 0xee, 0x12, 0x7e, 0x78, 0x0e, 0x16, 0x1a, 0xb6, 0xdd, 0x30, 0xf1, - 0xa9, 0x96, 0x63, 0x7b, 0xf6, 0x4e, 0x7b, 0xf7, 0x54, 0x1d, 0xbb, 0xba, 0x63, 0xb4, 0x3c, 0xdb, - 0x59, 0xa6, 0x32, 0x34, 0xc5, 0x34, 0x96, 0x85, 0xc6, 0x62, 0x05, 0xa6, 0x2f, 0x19, 0x26, 0x5e, - 0xf5, 0x15, 0x37, 0xb1, 0x87, 0x2e, 0x40, 0x6c, 0xd7, 0x30, 0x71, 0x56, 0x5a, 0x88, 0x2e, 0xa5, - 0x4e, 0x3f, 0xb2, 0xdc, 0x07, 0x5a, 0xee, 0x45, 0xd4, 0x88, 0x58, 0xa1, 0x88, 0xc5, 0xb7, 0x63, - 0x30, 0x33, 0x64, 0x14, 0x21, 0x88, 0x59, 0x5a, 0x93, 0x30, 0x4a, 0x4b, 0x49, 0x85, 0xfe, 0x46, - 0x59, 0x98, 0x68, 0x69, 0xfa, 0x0d, 0xad, 0x81, 0xb3, 0x11, 0x2a, 0x16, 0x97, 0x28, 0x07, 0x50, - 0xc7, 0x2d, 0x6c, 0xd5, 0xb1, 0xa5, 0x77, 0xb2, 0xd1, 0x85, 0xe8, 0x52, 0x52, 0x09, 0x48, 0xd0, - 0x53, 0x30, 0xdd, 0x6a, 0xef, 0x98, 0x86, 0xae, 0x06, 0xd4, 0x60, 0x21, 0xba, 0x14, 0x57, 0x64, - 0x36, 0xb0, 0xda, 0x55, 0x7e, 0x1c, 0xa6, 0x6e, 0x61, 0xed, 0x46, 0x50, 0x35, 0x45, 0x55, 0x33, - 0x44, 0x1c, 0x50, 0x5c, 0x81, 0x74, 0x13, 0xbb, 0xae, 0xd6, 0xc0, 0xaa, 0xd7, 0x69, 0xe1, 0x6c, - 0x8c, 0xce, 0x7e, 0x61, 0x60, 0xf6, 0xfd, 0x33, 0x4f, 0x71, 0xd4, 0x56, 0xa7, 0x85, 0x51, 0x01, - 0x92, 0xd8, 0x6a, 0x37, 0x19, 0x43, 0xfc, 0x00, 0xff, 0x95, 0xac, 0x76, 0xb3, 0x9f, 0x25, 0x41, - 0x60, 0x9c, 0x62, 0xc2, 0xc5, 0xce, 0x4d, 0x43, 0xc7, 0xd9, 0x71, 0x4a, 0xf0, 0xf8, 0x00, 0xc1, - 0x26, 0x1b, 0xef, 0xe7, 0x10, 0x38, 0xb4, 0x02, 0x49, 0xfc, 0xa2, 0x87, 0x2d, 0xd7, 0xb0, 0xad, - 0xec, 0x04, 0x25, 0x79, 0x74, 0xc8, 0x2a, 0x62, 0xb3, 0xde, 0x4f, 0xd1, 0xc5, 0xa1, 0xf3, 0x30, - 0x61, 0xb7, 0x3c, 0xc3, 0xb6, 0xdc, 0x6c, 0x62, 0x41, 0x5a, 0x4a, 0x9d, 0xfe, 0xc8, 0xd0, 0x40, - 0xa8, 0x32, 0x1d, 0x45, 0x28, 0xa3, 0x32, 0xc8, 0xae, 0xdd, 0x76, 0x74, 0xac, 0xea, 0x76, 0x1d, - 0xab, 0x86, 0xb5, 0x6b, 0x67, 0x93, 0x94, 0x60, 0x7e, 0x70, 0x22, 0x54, 0x71, 0xc5, 0xae, 0xe3, - 0xb2, 0xb5, 0x6b, 0x2b, 0x19, 0xb7, 0xe7, 0x1a, 0x1d, 0x83, 0x71, 0xb7, 0x63, 0x79, 0xda, 0x8b, - 0xd9, 0x34, 0x8d, 0x10, 0x7e, 0xb5, 0xf8, 0x7f, 0x71, 0x98, 0x1a, 0x25, 0xc4, 0x2e, 0x42, 0x7c, - 0x97, 0xcc, 0x32, 0x1b, 0x39, 0x8a, 0x0f, 0x18, 0xa6, 0xd7, 0x89, 0xe3, 0xf7, 0xe9, 0xc4, 0x02, - 0xa4, 0x2c, 0xec, 0x7a, 0xb8, 0xce, 0x22, 0x22, 0x3a, 0x62, 0x4c, 0x01, 0x03, 0x0d, 0x86, 0x54, - 0xec, 0xbe, 0x42, 0xea, 0x2a, 0x4c, 0xf9, 0x26, 0xa9, 0x8e, 0x66, 0x35, 0x44, 0x6c, 0x9e, 0x0a, - 0xb3, 0x64, 0xb9, 0x24, 0x70, 0x0a, 0x81, 0x29, 0x19, 0xdc, 0x73, 0x8d, 0x56, 0x01, 0x6c, 0x0b, - 0xdb, 0xbb, 0x6a, 0x1d, 0xeb, 0x66, 0x36, 0x71, 0x80, 0x97, 0xaa, 0x44, 0x65, 0xc0, 0x4b, 0x36, - 0x93, 0xea, 0x26, 0x7a, 0xb6, 0x1b, 0x6a, 0x13, 0x07, 0x44, 0x4a, 0x85, 0x6d, 0xb2, 0x81, 0x68, - 0xdb, 0x86, 0x8c, 0x83, 0x49, 0xdc, 0xe3, 0x3a, 0x9f, 0x59, 0x92, 0x1a, 0xb1, 0x1c, 0x3a, 0x33, - 0x85, 0xc3, 0xd8, 0xc4, 0x26, 0x9d, 0xe0, 0x25, 0x7a, 0x18, 0x7c, 0x81, 0x4a, 0xc3, 0x0a, 0x68, - 0x16, 0x4a, 0x0b, 0xe1, 0x86, 0xd6, 0xc4, 0x73, 0x17, 0x20, 0xd3, 0xeb, 0x1e, 0x34, 0x0b, 0x71, - 0xd7, 0xd3, 0x1c, 0x8f, 0x46, 0x61, 0x5c, 0x61, 0x17, 0x48, 0x86, 0x28, 0xb6, 0xea, 0x34, 0xcb, - 0xc5, 0x15, 0xf2, 0x73, 0xee, 0x19, 0x98, 0xec, 0xb9, 0xfd, 0xa8, 0xc0, 0xc5, 0x2f, 0x8c, 0xc3, - 0xec, 0xb0, 0x98, 0x1b, 0x1a, 0xfe, 0xc7, 0x60, 0xdc, 0x6a, 0x37, 0x77, 0xb0, 0x93, 0x8d, 0x52, - 0x06, 0x7e, 0x85, 0x0a, 0x10, 0x37, 0xb5, 0x1d, 0x6c, 0x66, 0x63, 0x0b, 0xd2, 0x52, 0xe6, 0xf4, - 0x53, 0x23, 0x45, 0xf5, 0xf2, 0x3a, 0x81, 0x28, 0x0c, 0x89, 0x9e, 0x83, 0x18, 0x4f, 0x71, 0x84, - 0xe1, 0xc9, 0xd1, 0x18, 0x48, 0x2c, 0x2a, 0x14, 0x87, 0x1e, 0x84, 0x24, 0xf9, 0xcb, 0x7c, 0x3b, - 0x4e, 0x6d, 0x4e, 0x10, 0x01, 0xf1, 0x2b, 0x9a, 0x83, 0x04, 0x0d, 0xb3, 0x3a, 0x16, 0xa5, 0xc1, - 0xbf, 0x26, 0x0b, 0x53, 0xc7, 0xbb, 0x5a, 0xdb, 0xf4, 0xd4, 0x9b, 0x9a, 0xd9, 0xc6, 0x34, 0x60, - 0x92, 0x4a, 0x9a, 0x0b, 0x3f, 0x4d, 0x64, 0x68, 0x1e, 0x52, 0x2c, 0x2a, 0x0d, 0xab, 0x8e, 0x5f, - 0xa4, 0xd9, 0x27, 0xae, 0xb0, 0x40, 0x2d, 0x13, 0x09, 0xb9, 0xfd, 0x75, 0xd7, 0xb6, 0xc4, 0xd2, - 0xd2, 0x5b, 0x10, 0x01, 0xbd, 0xfd, 0x33, 0xfd, 0x89, 0xef, 0xa1, 0xe1, 0xd3, 0xeb, 0x8f, 0xc5, - 0xc5, 0x6f, 0x47, 0x20, 0x46, 0xf7, 0xdb, 0x14, 0xa4, 0xb6, 0xae, 0xd5, 0x4a, 0xea, 0x6a, 0x75, - 0xbb, 0xb8, 0x5e, 0x92, 0x25, 0x94, 0x01, 0xa0, 0x82, 0x4b, 0xeb, 0xd5, 0xc2, 0x96, 0x1c, 0xf1, - 0xaf, 0xcb, 0x1b, 0x5b, 0xe7, 0xcf, 0xca, 0x51, 0x1f, 0xb0, 0xcd, 0x04, 0xb1, 0xa0, 0xc2, 0x99, - 0xd3, 0x72, 0x1c, 0xc9, 0x90, 0x66, 0x04, 0xe5, 0xab, 0xa5, 0xd5, 0xf3, 0x67, 0xe5, 0xf1, 0x5e, - 0xc9, 0x99, 0xd3, 0xf2, 0x04, 0x9a, 0x84, 0x24, 0x95, 0x14, 0xab, 0xd5, 0x75, 0x39, 0xe1, 0x73, - 0x6e, 0x6e, 0x29, 0xe5, 0x8d, 0x35, 0x39, 0xe9, 0x73, 0xae, 0x29, 0xd5, 0xed, 0x9a, 0x0c, 0x3e, - 0x43, 0xa5, 0xb4, 0xb9, 0x59, 0x58, 0x2b, 0xc9, 0x29, 0x5f, 0xa3, 0x78, 0x6d, 0xab, 0xb4, 0x29, - 0xa7, 0x7b, 0xcc, 0x3a, 0x73, 0x5a, 0x9e, 0xf4, 0x6f, 0x51, 0xda, 0xd8, 0xae, 0xc8, 0x19, 0x34, - 0x0d, 0x93, 0xec, 0x16, 0xc2, 0x88, 0xa9, 0x3e, 0xd1, 0xf9, 0xb3, 0xb2, 0xdc, 0x35, 0x84, 0xb1, - 0x4c, 0xf7, 0x08, 0xce, 0x9f, 0x95, 0xd1, 0xe2, 0x0a, 0xc4, 0x69, 0x74, 0x21, 0x04, 0x99, 0xf5, - 0x42, 0xb1, 0xb4, 0xae, 0x56, 0x6b, 0x5b, 0xe5, 0xea, 0x46, 0x61, 0x5d, 0x96, 0xba, 0x32, 0xa5, - 0xf4, 0xa9, 0xed, 0xb2, 0x52, 0x5a, 0x95, 0x23, 0x41, 0x59, 0xad, 0x54, 0xd8, 0x2a, 0xad, 0xca, - 0xd1, 0x45, 0x1d, 0x66, 0x87, 0xe5, 0x99, 0xa1, 0x3b, 0x23, 0xb0, 0xc4, 0x91, 0x03, 0x96, 0x98, - 0x72, 0x0d, 0x2c, 0xf1, 0x97, 0x25, 0x98, 0x19, 0x92, 0x6b, 0x87, 0xde, 0xe4, 0x79, 0x88, 0xb3, - 0x10, 0x65, 0xd5, 0xe7, 0x89, 0xa1, 0x49, 0x9b, 0x06, 0xec, 0x40, 0x05, 0xa2, 0xb8, 0x60, 0x05, - 0x8e, 0x1e, 0x50, 0x81, 0x09, 0xc5, 0x80, 0x91, 0x2f, 0x4b, 0x90, 0x3d, 0x88, 0x3b, 0x24, 0x51, - 0x44, 0x7a, 0x12, 0xc5, 0xc5, 0x7e, 0x03, 0x4e, 0x1e, 0x3c, 0x87, 0x01, 0x2b, 0x5e, 0x97, 0xe0, - 0xd8, 0xf0, 0x46, 0x65, 0xa8, 0x0d, 0xcf, 0xc1, 0x78, 0x13, 0x7b, 0x7b, 0xb6, 0x28, 0xd6, 0x8f, - 0x0d, 0x29, 0x01, 0x64, 0xb8, 0xdf, 0x57, 0x1c, 0x15, 0xac, 0x21, 0xd1, 0x83, 0xba, 0x0d, 0x66, - 0xcd, 0x80, 0xa5, 0x9f, 0x8f, 0xc0, 0x03, 0x43, 0xc9, 0x87, 0x1a, 0xfa, 0x10, 0x80, 0x61, 0xb5, - 0xda, 0x1e, 0x2b, 0xc8, 0x2c, 0x3f, 0x25, 0xa9, 0x84, 0xee, 0x7d, 0x92, 0x7b, 0xda, 0x9e, 0x3f, - 0x1e, 0xa5, 0xe3, 0xc0, 0x44, 0x54, 0xe1, 0x42, 0xd7, 0xd0, 0x18, 0x35, 0x34, 0x77, 0xc0, 0x4c, - 0x07, 0x6a, 0xdd, 0xd3, 0x20, 0xeb, 0xa6, 0x81, 0x2d, 0x4f, 0x75, 0x3d, 0x07, 0x6b, 0x4d, 0xc3, - 0x6a, 0xd0, 0x04, 0x9c, 0xc8, 0xc7, 0x77, 0x35, 0xd3, 0xc5, 0xca, 0x14, 0x1b, 0xde, 0x14, 0xa3, - 0x04, 0x41, 0xab, 0x8c, 0x13, 0x40, 0x8c, 0xf7, 0x20, 0xd8, 0xb0, 0x8f, 0x58, 0xfc, 0xda, 0x04, - 0xa4, 0x02, 0x6d, 0x1d, 0x3a, 0x09, 0xe9, 0xeb, 0xda, 0x4d, 0x4d, 0x15, 0xad, 0x3a, 0xf3, 0x44, - 0x8a, 0xc8, 0x6a, 0xbc, 0x5d, 0x7f, 0x1a, 0x66, 0xa9, 0x8a, 0xdd, 0xf6, 0xb0, 0xa3, 0xea, 0xa6, - 0xe6, 0xba, 0xd4, 0x69, 0x09, 0xaa, 0x8a, 0xc8, 0x58, 0x95, 0x0c, 0xad, 0x88, 0x11, 0x74, 0x0e, - 0x66, 0x28, 0xa2, 0xd9, 0x36, 0x3d, 0xa3, 0x65, 0x62, 0x95, 0x3c, 0x3c, 0xb8, 0x34, 0x11, 0xfb, - 0x96, 0x4d, 0x13, 0x8d, 0x0a, 0x57, 0x20, 0x16, 0xb9, 0x68, 0x15, 0x1e, 0xa2, 0xb0, 0x06, 0xb6, - 0xb0, 0xa3, 0x79, 0x58, 0xc5, 0x9f, 0x69, 0x6b, 0xa6, 0xab, 0x6a, 0x56, 0x5d, 0xdd, 0xd3, 0xdc, - 0xbd, 0xec, 0x2c, 0x21, 0x28, 0x46, 0xb2, 0x92, 0x72, 0x82, 0x28, 0xae, 0x71, 0xbd, 0x12, 0x55, - 0x2b, 0x58, 0xf5, 0x4f, 0x6a, 0xee, 0x1e, 0xca, 0xc3, 0x31, 0xca, 0xe2, 0x7a, 0x8e, 0x61, 0x35, - 0x54, 0x7d, 0x0f, 0xeb, 0x37, 0xd4, 0xb6, 0xb7, 0x7b, 0x21, 0xfb, 0x60, 0xf0, 0xfe, 0xd4, 0xc2, - 0x4d, 0xaa, 0xb3, 0x42, 0x54, 0xb6, 0xbd, 0xdd, 0x0b, 0x68, 0x13, 0xd2, 0x64, 0x31, 0x9a, 0xc6, - 0x4b, 0x58, 0xdd, 0xb5, 0x1d, 0x5a, 0x59, 0x32, 0x43, 0x76, 0x76, 0xc0, 0x83, 0xcb, 0x55, 0x0e, - 0xa8, 0xd8, 0x75, 0x9c, 0x8f, 0x6f, 0xd6, 0x4a, 0xa5, 0x55, 0x25, 0x25, 0x58, 0x2e, 0xd9, 0x0e, - 0x09, 0xa8, 0x86, 0xed, 0x3b, 0x38, 0xc5, 0x02, 0xaa, 0x61, 0x0b, 0xf7, 0x9e, 0x83, 0x19, 0x5d, - 0x67, 0x73, 0x36, 0x74, 0x95, 0xb7, 0xf8, 0x6e, 0x56, 0xee, 0x71, 0x96, 0xae, 0xaf, 0x31, 0x05, - 0x1e, 0xe3, 0x2e, 0x7a, 0x16, 0x1e, 0xe8, 0x3a, 0x2b, 0x08, 0x9c, 0x1e, 0x98, 0x65, 0x3f, 0xf4, - 0x1c, 0xcc, 0xb4, 0x3a, 0x83, 0x40, 0xd4, 0x73, 0xc7, 0x56, 0xa7, 0x1f, 0xf6, 0x28, 0x7d, 0x6c, - 0x73, 0xb0, 0xae, 0x79, 0xb8, 0x9e, 0x3d, 0x1e, 0xd4, 0x0e, 0x0c, 0xa0, 0x53, 0x20, 0xeb, 0xba, - 0x8a, 0x2d, 0x6d, 0xc7, 0xc4, 0xaa, 0xe6, 0x60, 0x4b, 0x73, 0xb3, 0xf3, 0x41, 0xe5, 0x8c, 0xae, - 0x97, 0xe8, 0x68, 0x81, 0x0e, 0xa2, 0x27, 0x61, 0xda, 0xde, 0xb9, 0xae, 0xb3, 0xc8, 0x52, 0x5b, - 0x0e, 0xde, 0x35, 0x5e, 0xcc, 0x3e, 0x42, 0xdd, 0x34, 0x45, 0x06, 0x68, 0x5c, 0xd5, 0xa8, 0x18, - 0x3d, 0x01, 0xb2, 0xee, 0xee, 0x69, 0x4e, 0x8b, 0x96, 0x76, 0xb7, 0xa5, 0xe9, 0x38, 0xfb, 0x28, - 0x53, 0x65, 0xf2, 0x0d, 0x21, 0x26, 0x91, 0xed, 0xde, 0x32, 0x76, 0x3d, 0xc1, 0xf8, 0x38, 0x8b, - 0x6c, 0x2a, 0xe3, 0x6c, 0x57, 0x61, 0xb6, 0x6d, 0x19, 0x96, 0x87, 0x9d, 0x96, 0x83, 0x49, 0x13, - 0xcf, 0x76, 0x62, 0xf6, 0xdf, 0x26, 0x0e, 0x68, 0xc3, 0xb7, 0x83, 0xda, 0x2c, 0x00, 0x94, 0x99, - 0xf6, 0xa0, 0x70, 0x31, 0x0f, 0xe9, 0x60, 0x5c, 0xa0, 0x24, 0xb0, 0xc8, 0x90, 0x25, 0x52, 0x63, - 0x57, 0xaa, 0xab, 0xa4, 0x3a, 0xbe, 0x50, 0x92, 0x23, 0xa4, 0x4a, 0xaf, 0x97, 0xb7, 0x4a, 0xaa, - 0xb2, 0xbd, 0xb1, 0x55, 0xae, 0x94, 0xe4, 0xe8, 0x93, 0xc9, 0xc4, 0x3b, 0x13, 0xf2, 0xed, 0xdb, - 0xb7, 0x6f, 0x47, 0x16, 0xbf, 0x17, 0x81, 0x4c, 0x6f, 0x67, 0x8c, 0x3e, 0x0e, 0xc7, 0xc5, 0x63, - 0xac, 0x8b, 0x3d, 0xf5, 0x96, 0xe1, 0xd0, 0x50, 0x6d, 0x6a, 0xac, 0xb7, 0xf4, 0xbd, 0x3c, 0xcb, - 0xb5, 0x36, 0xb1, 0x77, 0xc5, 0x70, 0x48, 0x20, 0x36, 0x35, 0x0f, 0xad, 0xc3, 0xbc, 0x65, 0xab, - 0xae, 0xa7, 0x59, 0x75, 0xcd, 0xa9, 0xab, 0xdd, 0x03, 0x04, 0x55, 0xd3, 0x75, 0xec, 0xba, 0x36, - 0x2b, 0x11, 0x3e, 0xcb, 0x47, 0x2c, 0x7b, 0x93, 0x2b, 0x77, 0x73, 0x67, 0x81, 0xab, 0xf6, 0x45, - 0x44, 0xf4, 0xa0, 0x88, 0x78, 0x10, 0x92, 0x4d, 0xad, 0xa5, 0x62, 0xcb, 0x73, 0x3a, 0xb4, 0x9f, - 0x4b, 0x28, 0x89, 0xa6, 0xd6, 0x2a, 0x91, 0xeb, 0x0f, 0x6f, 0x0d, 0x82, 0x7e, 0xfc, 0xd7, 0x28, - 0xa4, 0x83, 0x3d, 0x1d, 0x69, 0x91, 0x75, 0x9a, 0xbf, 0x25, 0xba, 0xc3, 0x1f, 0x3e, 0xb4, 0x03, - 0x5c, 0x5e, 0x21, 0x89, 0x3d, 0x3f, 0xce, 0x3a, 0x2d, 0x85, 0x21, 0x49, 0x51, 0x25, 0x7b, 0x1a, - 0xb3, 0xfe, 0x3d, 0xa1, 0xf0, 0x2b, 0xb4, 0x06, 0xe3, 0xd7, 0x5d, 0xca, 0x3d, 0x4e, 0xb9, 0x1f, - 0x39, 0x9c, 0xfb, 0xf2, 0x26, 0x25, 0x4f, 0x5e, 0xde, 0x54, 0x37, 0xaa, 0x4a, 0xa5, 0xb0, 0xae, - 0x70, 0x38, 0x3a, 0x01, 0x31, 0x53, 0x7b, 0xa9, 0xd3, 0x5b, 0x02, 0xa8, 0x68, 0x54, 0xc7, 0x9f, - 0x80, 0xd8, 0x2d, 0xac, 0xdd, 0xe8, 0x4d, 0xbc, 0x54, 0xf4, 0x21, 0x86, 0xfe, 0x29, 0x88, 0x53, - 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x0c, 0x25, 0x20, 0xb6, 0x52, 0x55, 0x48, 0xf8, 0xcb, 0x90, - 0x66, 0x52, 0xb5, 0x56, 0x2e, 0xad, 0x94, 0xe4, 0xc8, 0xe2, 0x39, 0x18, 0x67, 0x4e, 0x20, 0x5b, - 0xc3, 0x77, 0x83, 0x3c, 0xc6, 0x2f, 0x39, 0x87, 0x24, 0x46, 0xb7, 0x2b, 0xc5, 0x92, 0x22, 0x47, - 0x82, 0xcb, 0xeb, 0x42, 0x3a, 0xd8, 0xce, 0xfd, 0x6c, 0x62, 0xea, 0x1f, 0x24, 0x48, 0x05, 0xda, - 0x33, 0xd2, 0x18, 0x68, 0xa6, 0x69, 0xdf, 0x52, 0x35, 0xd3, 0xd0, 0x5c, 0x1e, 0x14, 0x40, 0x45, - 0x05, 0x22, 0x19, 0x75, 0xd1, 0x7e, 0x26, 0xc6, 0xbf, 0x26, 0x81, 0xdc, 0xdf, 0xda, 0xf5, 0x19, - 0x28, 0xfd, 0x5c, 0x0d, 0x7c, 0x55, 0x82, 0x4c, 0x6f, 0x3f, 0xd7, 0x67, 0xde, 0xc9, 0x9f, 0xab, - 0x79, 0x6f, 0x45, 0x60, 0xb2, 0xa7, 0x8b, 0x1b, 0xd5, 0xba, 0xcf, 0xc0, 0xb4, 0x51, 0xc7, 0xcd, - 0x96, 0xed, 0x61, 0x4b, 0xef, 0xa8, 0x26, 0xbe, 0x89, 0xcd, 0xec, 0x22, 0x4d, 0x14, 0xa7, 0x0e, - 0xef, 0x13, 0x97, 0xcb, 0x5d, 0xdc, 0x3a, 0x81, 0xe5, 0x67, 0xca, 0xab, 0xa5, 0x4a, 0xad, 0xba, - 0x55, 0xda, 0x58, 0xb9, 0xa6, 0x6e, 0x6f, 0xfc, 0xc2, 0x46, 0xf5, 0xca, 0x86, 0x22, 0x1b, 0x7d, - 0x6a, 0x1f, 0xe2, 0x56, 0xaf, 0x81, 0xdc, 0x6f, 0x14, 0x3a, 0x0e, 0xc3, 0xcc, 0x92, 0xc7, 0xd0, - 0x0c, 0x4c, 0x6d, 0x54, 0xd5, 0xcd, 0xf2, 0x6a, 0x49, 0x2d, 0x5d, 0xba, 0x54, 0x5a, 0xd9, 0xda, - 0x64, 0x0f, 0xce, 0xbe, 0xf6, 0x56, 0xef, 0xa6, 0x7e, 0x25, 0x0a, 0x33, 0x43, 0x2c, 0x41, 0x05, - 0xde, 0xb3, 0xb3, 0xc7, 0x88, 0x8f, 0x8d, 0x62, 0xfd, 0x32, 0xe9, 0x0a, 0x6a, 0x9a, 0xe3, 0xf1, - 0x16, 0xff, 0x09, 0x20, 0x5e, 0xb2, 0x3c, 0x63, 0xd7, 0xc0, 0x0e, 0x3f, 0x67, 0x60, 0x8d, 0xfc, - 0x54, 0x57, 0xce, 0x8e, 0x1a, 0x3e, 0x0a, 0xa8, 0x65, 0xbb, 0x86, 0x67, 0xdc, 0xc4, 0xaa, 0x61, - 0x89, 0x43, 0x09, 0xd2, 0xd8, 0xc7, 0x14, 0x59, 0x8c, 0x94, 0x2d, 0xcf, 0xd7, 0xb6, 0x70, 0x43, - 0xeb, 0xd3, 0x26, 0x09, 0x3c, 0xaa, 0xc8, 0x62, 0xc4, 0xd7, 0x3e, 0x09, 0xe9, 0xba, 0xdd, 0x26, - 0x6d, 0x12, 0xd3, 0x23, 0xf5, 0x42, 0x52, 0x52, 0x4c, 0xe6, 0xab, 0xf0, 0x3e, 0xb6, 0x7b, 0x1a, - 0x92, 0x56, 0x52, 0x4c, 0xc6, 0x54, 0x1e, 0x87, 0x29, 0xad, 0xd1, 0x70, 0x08, 0xb9, 0x20, 0x62, - 0x9d, 0x79, 0xc6, 0x17, 0x53, 0xc5, 0xb9, 0xcb, 0x90, 0x10, 0x7e, 0x20, 0x25, 0x99, 0x78, 0x42, - 0x6d, 0xb1, 0x33, 0xa9, 0xc8, 0x52, 0x52, 0x49, 0x58, 0x62, 0xf0, 0x24, 0xa4, 0x0d, 0x57, 0xed, - 0x1e, 0x8e, 0x46, 0x16, 0x22, 0x4b, 0x09, 0x25, 0x65, 0xb8, 0xfe, 0x69, 0xd8, 0xe2, 0xeb, 0x11, - 0xc8, 0xf4, 0x1e, 0xee, 0xa2, 0x55, 0x48, 0x98, 0xb6, 0xae, 0xd1, 0xd0, 0x62, 0x6f, 0x16, 0x96, - 0x42, 0xce, 0x83, 0x97, 0xd7, 0xb9, 0xbe, 0xe2, 0x23, 0xe7, 0xfe, 0x59, 0x82, 0x84, 0x10, 0xa3, - 0x63, 0x10, 0x6b, 0x69, 0xde, 0x1e, 0xa5, 0x8b, 0x17, 0x23, 0xb2, 0xa4, 0xd0, 0x6b, 0x22, 0x77, - 0x5b, 0x9a, 0x45, 0x43, 0x80, 0xcb, 0xc9, 0x35, 0x59, 0x57, 0x13, 0x6b, 0x75, 0xda, 0xf6, 0xdb, - 0xcd, 0x26, 0xb6, 0x3c, 0x57, 0xac, 0x2b, 0x97, 0xaf, 0x70, 0x31, 0x7a, 0x0a, 0xa6, 0x3d, 0x47, - 0x33, 0xcc, 0x1e, 0xdd, 0x18, 0xd5, 0x95, 0xc5, 0x80, 0xaf, 0x9c, 0x87, 0x13, 0x82, 0xb7, 0x8e, - 0x3d, 0x4d, 0xdf, 0xc3, 0xf5, 0x2e, 0x68, 0x9c, 0x9e, 0x1c, 0x1e, 0xe7, 0x0a, 0xab, 0x7c, 0x5c, - 0x60, 0x17, 0x7f, 0x20, 0xc1, 0xb4, 0x78, 0x50, 0xa9, 0xfb, 0xce, 0xaa, 0x00, 0x68, 0x96, 0x65, - 0x7b, 0x41, 0x77, 0x0d, 0x86, 0xf2, 0x00, 0x6e, 0xb9, 0xe0, 0x83, 0x94, 0x00, 0xc1, 0x5c, 0x13, - 0xa0, 0x3b, 0x72, 0xa0, 0xdb, 0xe6, 0x21, 0xc5, 0x4f, 0xee, 0xe9, 0xeb, 0x1f, 0xf6, 0x68, 0x0b, - 0x4c, 0x44, 0x9e, 0x68, 0xd0, 0x2c, 0xc4, 0x77, 0x70, 0xc3, 0xb0, 0xf8, 0x79, 0x22, 0xbb, 0x10, - 0xa7, 0x94, 0x31, 0xff, 0x94, 0xb2, 0x78, 0x15, 0x66, 0x74, 0xbb, 0xd9, 0x6f, 0x6e, 0x51, 0xee, - 0x7b, 0xbc, 0x76, 0x3f, 0x29, 0xbd, 0x00, 0xdd, 0x16, 0xf3, 0xcb, 0x91, 0xe8, 0x5a, 0xad, 0xf8, - 0xd5, 0xc8, 0xdc, 0x1a, 0xc3, 0xd5, 0xc4, 0x34, 0x15, 0xbc, 0x6b, 0x62, 0x9d, 0x98, 0x0e, 0x3f, - 0x7e, 0x0c, 0x3e, 0xd6, 0x30, 0xbc, 0xbd, 0xf6, 0xce, 0xb2, 0x6e, 0x37, 0x4f, 0x35, 0xec, 0x86, - 0xdd, 0x7d, 0xdd, 0x45, 0xae, 0xe8, 0x05, 0xfd, 0xc5, 0x5f, 0x79, 0x25, 0x7d, 0xe9, 0x5c, 0xe8, - 0xfb, 0xb1, 0xfc, 0x06, 0xcc, 0x70, 0x65, 0x95, 0x9e, 0xb9, 0xb3, 0x47, 0x03, 0x74, 0xe8, 0xb9, - 0x4b, 0xf6, 0x9b, 0x6f, 0xd3, 0x5a, 0xad, 0x4c, 0x73, 0x28, 0x19, 0x63, 0x0f, 0x10, 0x79, 0x05, - 0x1e, 0xe8, 0xe1, 0x63, 0xfb, 0x12, 0x3b, 0x21, 0x8c, 0xdf, 0xe3, 0x8c, 0x33, 0x01, 0xc6, 0x4d, - 0x0e, 0xcd, 0xaf, 0xc0, 0xe4, 0x51, 0xb8, 0xfe, 0x91, 0x73, 0xa5, 0x71, 0x90, 0x64, 0x0d, 0xa6, - 0x28, 0x89, 0xde, 0x76, 0x3d, 0xbb, 0x49, 0x93, 0xde, 0xe1, 0x34, 0xff, 0xf4, 0x36, 0xdb, 0x28, - 0x19, 0x02, 0x5b, 0xf1, 0x51, 0xf9, 0x3c, 0xd0, 0xd7, 0x0c, 0x75, 0xac, 0x9b, 0x21, 0x0c, 0x6f, - 0x70, 0x43, 0x7c, 0xfd, 0xfc, 0xa7, 0x61, 0x96, 0xfc, 0xa6, 0x39, 0x29, 0x68, 0x49, 0xf8, 0x29, - 0x53, 0xf6, 0x07, 0x2f, 0xb3, 0xbd, 0x38, 0xe3, 0x13, 0x04, 0x6c, 0x0a, 0xac, 0x62, 0x03, 0x7b, - 0x1e, 0x76, 0x5c, 0x55, 0x33, 0x87, 0x99, 0x17, 0x78, 0x4c, 0xcf, 0x7e, 0xf1, 0xdd, 0xde, 0x55, - 0x5c, 0x63, 0xc8, 0x82, 0x69, 0xe6, 0xb7, 0xe1, 0xf8, 0x90, 0xa8, 0x18, 0x81, 0xf3, 0x15, 0xce, - 0x39, 0x3b, 0x10, 0x19, 0x84, 0xb6, 0x06, 0x42, 0xee, 0xaf, 0xe5, 0x08, 0x9c, 0x7f, 0xc4, 0x39, - 0x11, 0xc7, 0x8a, 0x25, 0x25, 0x8c, 0x97, 0x61, 0xfa, 0x26, 0x76, 0x76, 0x6c, 0x97, 0x1f, 0x8d, - 0x8c, 0x40, 0xf7, 0x2a, 0xa7, 0x9b, 0xe2, 0x40, 0x7a, 0x56, 0x42, 0xb8, 0x9e, 0x85, 0xc4, 0xae, - 0xa6, 0xe3, 0x11, 0x28, 0xbe, 0xc4, 0x29, 0x26, 0x88, 0x3e, 0x81, 0x16, 0x20, 0xdd, 0xb0, 0x79, - 0x59, 0x0a, 0x87, 0xbf, 0xc6, 0xe1, 0x29, 0x81, 0xe1, 0x14, 0x2d, 0xbb, 0xd5, 0x36, 0x49, 0xcd, - 0x0a, 0xa7, 0xf8, 0x63, 0x41, 0x21, 0x30, 0x9c, 0xe2, 0x08, 0x6e, 0xfd, 0x13, 0x41, 0xe1, 0x06, - 0xfc, 0xf9, 0x3c, 0xa4, 0x6c, 0xcb, 0xec, 0xd8, 0xd6, 0x28, 0x46, 0xfc, 0x29, 0x67, 0x00, 0x0e, - 0x21, 0x04, 0x17, 0x21, 0x39, 0xea, 0x42, 0xfc, 0xd9, 0xbb, 0x62, 0x7b, 0x88, 0x15, 0x58, 0x83, - 0x29, 0x91, 0xa0, 0x0c, 0xdb, 0x1a, 0x81, 0xe2, 0xcf, 0x39, 0x45, 0x26, 0x00, 0xe3, 0xd3, 0xf0, - 0xb0, 0xeb, 0x35, 0xf0, 0x28, 0x24, 0xaf, 0x8b, 0x69, 0x70, 0x08, 0x77, 0xe5, 0x0e, 0xb6, 0xf4, - 0xbd, 0xd1, 0x18, 0xbe, 0x22, 0x5c, 0x29, 0x30, 0x84, 0x62, 0x05, 0x26, 0x9b, 0x9a, 0xe3, 0xee, - 0x69, 0xe6, 0x48, 0xcb, 0xf1, 0x17, 0x9c, 0x23, 0xed, 0x83, 0xb8, 0x47, 0xda, 0xd6, 0x51, 0x68, - 0xbe, 0x2a, 0x3c, 0x12, 0x80, 0xf1, 0xad, 0xe7, 0x7a, 0xf4, 0x00, 0xea, 0x28, 0x6c, 0x5f, 0x13, - 0x5b, 0x8f, 0x61, 0x2b, 0x41, 0xc6, 0x8b, 0x90, 0x74, 0x8d, 0x97, 0x46, 0xa2, 0xf9, 0x4b, 0xb1, - 0xd2, 0x14, 0x40, 0xc0, 0xd7, 0xe0, 0xc4, 0xd0, 0x32, 0x31, 0x02, 0xd9, 0x5f, 0x71, 0xb2, 0x63, - 0x43, 0x4a, 0x05, 0x4f, 0x09, 0x47, 0xa5, 0xfc, 0x6b, 0x91, 0x12, 0x70, 0x1f, 0x57, 0x8d, 0x3c, - 0x28, 0xb8, 0xda, 0xee, 0xd1, 0xbc, 0xf6, 0x75, 0xe1, 0x35, 0x86, 0xed, 0xf1, 0xda, 0x16, 0x1c, - 0xe3, 0x8c, 0x47, 0x5b, 0xd7, 0x6f, 0x88, 0xc4, 0xca, 0xd0, 0xdb, 0xbd, 0xab, 0xfb, 0x8b, 0x30, - 0xe7, 0xbb, 0x53, 0x74, 0xa4, 0xae, 0xda, 0xd4, 0x5a, 0x23, 0x30, 0x7f, 0x93, 0x33, 0x8b, 0x8c, - 0xef, 0xb7, 0xb4, 0x6e, 0x45, 0x6b, 0x11, 0xf2, 0xab, 0x90, 0x15, 0xe4, 0x6d, 0xcb, 0xc1, 0xba, - 0xdd, 0xb0, 0x8c, 0x97, 0x70, 0x7d, 0x04, 0xea, 0xbf, 0xe9, 0x5b, 0xaa, 0xed, 0x00, 0x9c, 0x30, - 0x97, 0x41, 0xf6, 0x7b, 0x15, 0xd5, 0x68, 0xb6, 0x6c, 0xc7, 0x0b, 0x61, 0xfc, 0x5b, 0xb1, 0x52, - 0x3e, 0xae, 0x4c, 0x61, 0xf9, 0x12, 0x64, 0xe8, 0xe5, 0xa8, 0x21, 0xf9, 0x77, 0x9c, 0x68, 0xb2, - 0x8b, 0xe2, 0x89, 0x43, 0xb7, 0x9b, 0x2d, 0xcd, 0x19, 0x25, 0xff, 0x7d, 0x4b, 0x24, 0x0e, 0x0e, - 0xe1, 0x89, 0xc3, 0xeb, 0xb4, 0x30, 0xa9, 0xf6, 0x23, 0x30, 0x7c, 0x5b, 0x24, 0x0e, 0x81, 0xe1, - 0x14, 0xa2, 0x61, 0x18, 0x81, 0xe2, 0xef, 0x05, 0x85, 0xc0, 0x10, 0x8a, 0x4f, 0x75, 0x0b, 0xad, - 0x83, 0x1b, 0x86, 0xeb, 0x39, 0xac, 0x0f, 0x3e, 0x9c, 0xea, 0x3b, 0xef, 0xf6, 0x36, 0x61, 0x4a, - 0x00, 0x9a, 0xbf, 0x0c, 0x53, 0x7d, 0x2d, 0x06, 0x0a, 0xfb, 0x66, 0x21, 0xfb, 0xcb, 0xef, 0xf3, - 0x64, 0xd4, 0xdb, 0x61, 0xe4, 0xd7, 0xc9, 0xba, 0xf7, 0xf6, 0x01, 0xe1, 0x64, 0x2f, 0xbf, 0xef, - 0x2f, 0x7d, 0x4f, 0x1b, 0x90, 0xbf, 0x04, 0x93, 0x3d, 0x3d, 0x40, 0x38, 0xd5, 0xaf, 0x70, 0xaa, - 0x74, 0xb0, 0x05, 0xc8, 0x9f, 0x83, 0x18, 0xa9, 0xe7, 0xe1, 0xf0, 0x5f, 0xe5, 0x70, 0xaa, 0x9e, - 0xff, 0x04, 0x24, 0x44, 0x1d, 0x0f, 0x87, 0xfe, 0x1a, 0x87, 0xfa, 0x10, 0x02, 0x17, 0x35, 0x3c, - 0x1c, 0xfe, 0x39, 0x01, 0x17, 0x10, 0x02, 0x1f, 0xdd, 0x85, 0xdf, 0xfd, 0x8d, 0x18, 0xcf, 0xc3, - 0xc2, 0x77, 0x17, 0x61, 0x82, 0x17, 0xef, 0x70, 0xf4, 0xe7, 0xf9, 0xcd, 0x05, 0x22, 0xff, 0x0c, - 0xc4, 0x47, 0x74, 0xf8, 0x6f, 0x72, 0x28, 0xd3, 0xcf, 0xaf, 0x40, 0x2a, 0x50, 0xb0, 0xc3, 0xe1, - 0xbf, 0xc5, 0xe1, 0x41, 0x14, 0x31, 0x9d, 0x17, 0xec, 0x70, 0x82, 0xdf, 0x16, 0xa6, 0x73, 0x04, - 0x71, 0x9b, 0xa8, 0xd5, 0xe1, 0xe8, 0xdf, 0x11, 0x5e, 0x17, 0x90, 0xfc, 0xf3, 0x90, 0xf4, 0xf3, - 0x6f, 0x38, 0xfe, 0x77, 0x39, 0xbe, 0x8b, 0x21, 0x1e, 0x08, 0xe4, 0xff, 0x70, 0x8a, 0xdf, 0x13, - 0x1e, 0x08, 0xa0, 0xc8, 0x36, 0xea, 0xaf, 0xe9, 0xe1, 0x4c, 0xbf, 0x2f, 0xb6, 0x51, 0x5f, 0x49, - 0x27, 0xab, 0x49, 0xd3, 0x60, 0x38, 0xc5, 0x1f, 0x88, 0xd5, 0xa4, 0xfa, 0xc4, 0x8c, 0xfe, 0x22, - 0x19, 0xce, 0xf1, 0x87, 0xc2, 0x8c, 0xbe, 0x1a, 0x99, 0xaf, 0x01, 0x1a, 0x2c, 0x90, 0xe1, 0x7c, - 0x5f, 0xe0, 0x7c, 0xd3, 0x03, 0xf5, 0x31, 0x7f, 0x05, 0x8e, 0x0d, 0x2f, 0x8e, 0xe1, 0xac, 0x5f, - 0x7c, 0xbf, 0xef, 0x71, 0x26, 0x58, 0x1b, 0xf3, 0x5b, 0xdd, 0x2c, 0x1b, 0x2c, 0x8c, 0xe1, 0xb4, - 0xaf, 0xbc, 0xdf, 0x9b, 0x68, 0x83, 0x75, 0x31, 0x5f, 0x00, 0xe8, 0xd6, 0xa4, 0x70, 0xae, 0x57, - 0x39, 0x57, 0x00, 0x44, 0xb6, 0x06, 0x2f, 0x49, 0xe1, 0xf8, 0x2f, 0x89, 0xad, 0xc1, 0x11, 0x64, - 0x6b, 0x88, 0x6a, 0x14, 0x8e, 0x7e, 0x4d, 0x6c, 0x0d, 0x01, 0xc9, 0x5f, 0x84, 0x84, 0xd5, 0x36, - 0x4d, 0x12, 0x5b, 0xe8, 0xf0, 0xcf, 0x88, 0xb2, 0x3f, 0xfa, 0x80, 0x83, 0x05, 0x20, 0x7f, 0x0e, - 0xe2, 0xb8, 0xb9, 0x83, 0xeb, 0x61, 0xc8, 0x7f, 0xff, 0x40, 0xe4, 0x13, 0xa2, 0x9d, 0x7f, 0x1e, - 0x80, 0x3d, 0x4c, 0xd3, 0xb7, 0x44, 0x21, 0xd8, 0xff, 0xf8, 0x80, 0x7f, 0xa1, 0xd0, 0x85, 0x74, - 0x09, 0xd8, 0xf7, 0x0e, 0x87, 0x13, 0xbc, 0xdb, 0x4b, 0x40, 0x1f, 0xc0, 0x9f, 0x85, 0x89, 0xeb, - 0xae, 0x6d, 0x79, 0x5a, 0x23, 0x0c, 0xfd, 0x9f, 0x1c, 0x2d, 0xf4, 0x89, 0xc3, 0x9a, 0xb6, 0x83, - 0x3d, 0xad, 0xe1, 0x86, 0x61, 0xff, 0x8b, 0x63, 0x7d, 0x00, 0x01, 0xeb, 0x9a, 0xeb, 0x8d, 0x32, - 0xef, 0xff, 0x16, 0x60, 0x01, 0x20, 0x46, 0x93, 0xdf, 0x37, 0x70, 0x27, 0x0c, 0xfb, 0x9e, 0x30, - 0x9a, 0xeb, 0xe7, 0x3f, 0x01, 0x49, 0xf2, 0x93, 0x7d, 0xb5, 0x13, 0x02, 0xfe, 0x1f, 0x0e, 0xee, - 0x22, 0xc8, 0x9d, 0x5d, 0xaf, 0xee, 0x19, 0xe1, 0xce, 0xfe, 0x5f, 0xbe, 0xd2, 0x42, 0x3f, 0x5f, - 0x80, 0x94, 0xeb, 0xd5, 0xeb, 0x6d, 0xde, 0xd1, 0x84, 0xc0, 0x7f, 0xfc, 0x81, 0xff, 0x90, 0xeb, - 0x63, 0x8a, 0x27, 0x87, 0x1f, 0xd6, 0xc1, 0x9a, 0xbd, 0x66, 0xb3, 0x63, 0x3a, 0xf8, 0xfa, 0x14, - 0xcc, 0xe9, 0x76, 0x73, 0xc7, 0x76, 0x4f, 0xed, 0xd8, 0xde, 0xde, 0x29, 0xe1, 0x33, 0x7e, 0xc4, - 0xe6, 0xfb, 0x70, 0xee, 0x68, 0x67, 0x73, 0x8b, 0x3f, 0x9a, 0x84, 0xc4, 0x8a, 0xe6, 0x7a, 0xda, - 0x2d, 0xad, 0x83, 0x1e, 0x85, 0x44, 0xd9, 0xf2, 0xce, 0x9c, 0xae, 0x79, 0x0e, 0x7d, 0xb7, 0x14, - 0x2d, 0x26, 0xef, 0xdd, 0x99, 0x8f, 0x1b, 0x44, 0xa6, 0xf8, 0x43, 0xe8, 0x61, 0x88, 0xd3, 0xdf, - 0xf4, 0x78, 0x32, 0x5a, 0x9c, 0x7c, 0xe3, 0xce, 0xfc, 0x58, 0x57, 0x8f, 0x8d, 0xa1, 0x6b, 0x90, - 0xaa, 0x74, 0xb6, 0x0d, 0xcb, 0x3b, 0x7f, 0x96, 0xd0, 0x91, 0x59, 0xc7, 0x8a, 0xcf, 0xdc, 0xbb, - 0x33, 0x7f, 0xe6, 0x40, 0x03, 0x49, 0x2d, 0xec, 0x4e, 0x4c, 0xa0, 0xe9, 0x27, 0x8b, 0x41, 0x2e, - 0x74, 0x05, 0x12, 0xe2, 0x92, 0x1d, 0xf3, 0x17, 0x2f, 0x72, 0x13, 0xee, 0x8b, 0xdb, 0x27, 0x43, - 0xbf, 0x04, 0xe9, 0x4a, 0xe7, 0x92, 0x69, 0x6b, 0xdc, 0x07, 0xf1, 0x05, 0x69, 0x29, 0x52, 0xbc, - 0x70, 0xef, 0xce, 0xfc, 0xd9, 0x91, 0x89, 0x39, 0x9c, 0x32, 0xf7, 0xb0, 0xa1, 0x17, 0x20, 0xe9, - 0x5f, 0xd3, 0x17, 0x09, 0x91, 0xe2, 0xc7, 0xb9, 0xdd, 0xf7, 0x47, 0xdf, 0xa5, 0x0b, 0x58, 0xce, - 0xdc, 0x3d, 0xb1, 0x20, 0x2d, 0x49, 0xf7, 0x63, 0x39, 0xf7, 0x49, 0x0f, 0x5b, 0xc0, 0xf2, 0xf3, - 0x67, 0xe9, 0x9b, 0x0b, 0xe9, 0x7e, 0x2d, 0xe7, 0xf4, 0x5d, 0x3a, 0x74, 0x19, 0x26, 0x2a, 0x9d, - 0x62, 0xc7, 0xc3, 0x2e, 0xfd, 0x94, 0x27, 0x5d, 0x7c, 0xfa, 0xde, 0x9d, 0xf9, 0x8f, 0x8e, 0xc8, - 0x4a, 0x71, 0x8a, 0x20, 0x40, 0x0b, 0x90, 0xda, 0xb0, 0x9d, 0xa6, 0x66, 0x32, 0x3e, 0x60, 0x6f, - 0x62, 0x02, 0x22, 0xb4, 0x4d, 0x66, 0xc2, 0x56, 0xdb, 0xa5, 0xff, 0x84, 0xf0, 0x53, 0xc4, 0x64, - 0x97, 0x09, 0x19, 0x10, 0xaf, 0x74, 0x2a, 0x5a, 0x2b, 0x9b, 0xa6, 0xaf, 0x09, 0x1e, 0x5a, 0xf6, - 0x11, 0x62, 0x6f, 0x2d, 0xd3, 0x71, 0xfa, 0x3d, 0x45, 0xf1, 0xec, 0xbd, 0x3b, 0xf3, 0x4f, 0x8f, - 0x7c, 0xc7, 0x8a, 0xd6, 0xa2, 0xb7, 0x63, 0x77, 0x40, 0xdf, 0x92, 0xc8, 0xc6, 0x62, 0x47, 0xad, - 0xe4, 0x8e, 0x93, 0xf4, 0x8e, 0x0f, 0x0f, 0xbd, 0xa3, 0xaf, 0xc5, 0xee, 0x6b, 0x7d, 0xf6, 0xcd, - 0x23, 0xcc, 0x94, 0x3d, 0xce, 0x90, 0x5b, 0xff, 0xfa, 0x9b, 0xf7, 0xbd, 0x69, 0x7d, 0x0b, 0xd0, - 0xcb, 0x12, 0x4c, 0x56, 0x3a, 0x1b, 0xbc, 0xb0, 0x12, 0xcb, 0x33, 0xfc, 0x53, 0xf5, 0x61, 0x96, - 0x07, 0xf4, 0x98, 0xed, 0xe7, 0x3f, 0xfb, 0xe6, 0xfc, 0xe9, 0x91, 0x8d, 0xa0, 0x29, 0x88, 0xda, - 0xd0, 0x7b, 0x4f, 0xf4, 0x39, 0x6a, 0x45, 0x89, 0x14, 0xe9, 0x3a, 0xae, 0x13, 0x2b, 0xa6, 0x0e, - 0xb1, 0x22, 0xa0, 0xc7, 0xac, 0xc8, 0x93, 0xa8, 0xbf, 0x7f, 0x4b, 0x02, 0x7c, 0xa8, 0x0a, 0xe3, - 0xcc, 0xc3, 0xf4, 0x33, 0xb2, 0xe4, 0x11, 0xc3, 0xb0, 0xbb, 0x38, 0x0a, 0xa7, 0x99, 0xbb, 0x00, - 0xd0, 0x8d, 0x31, 0x24, 0x43, 0xf4, 0x06, 0xee, 0xf0, 0x6f, 0x05, 0xc9, 0x4f, 0x34, 0xdb, 0xfd, - 0x16, 0x56, 0x5a, 0x8a, 0xf1, 0x0f, 0x5c, 0xf3, 0x91, 0x0b, 0xd2, 0xdc, 0x73, 0x20, 0xf7, 0xc7, - 0xca, 0x91, 0xf0, 0x0a, 0xa0, 0xc1, 0x15, 0x0b, 0x32, 0xc4, 0x19, 0xc3, 0x63, 0x41, 0x86, 0xd4, - 0x69, 0xb9, 0xeb, 0xf3, 0x2b, 0x86, 0xe9, 0xda, 0xd6, 0x00, 0x67, 0xbf, 0xff, 0x7f, 0x3a, 0xce, - 0xc5, 0x1c, 0x8c, 0x33, 0x21, 0x99, 0x4b, 0x99, 0x96, 0x0f, 0x5a, 0xe5, 0x14, 0x76, 0x51, 0x5c, - 0x7f, 0xe3, 0x6e, 0x6e, 0xec, 0xfb, 0x77, 0x73, 0x63, 0xff, 0x72, 0x37, 0x37, 0xf6, 0xd6, 0xdd, - 0x9c, 0xf4, 0xce, 0xdd, 0x9c, 0xf4, 0xde, 0xdd, 0x9c, 0xf4, 0x93, 0xbb, 0x39, 0xe9, 0xf6, 0x7e, - 0x4e, 0xfa, 0xca, 0x7e, 0x4e, 0xfa, 0xc6, 0x7e, 0x4e, 0xfa, 0xce, 0x7e, 0x4e, 0xfa, 0xee, 0x7e, - 0x4e, 0x7a, 0x63, 0x3f, 0x27, 0x7d, 0x7f, 0x3f, 0x27, 0xbd, 0xb5, 0x9f, 0x93, 0xde, 0xd9, 0xcf, - 0x8d, 0xbd, 0xb7, 0x9f, 0x93, 0x7e, 0xb2, 0x9f, 0x1b, 0xbb, 0xfd, 0xc3, 0xdc, 0xd8, 0xff, 0x07, - 0x00, 0x00, 0xff, 0xff, 0x7c, 0x9f, 0xb9, 0x37, 0x0e, 0x36, 0x00, 0x00, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0x4b, 0x10, 0x1d, 0x83, 0x14, 0x65, + 0x5b, 0xb4, 0x9d, 0x50, 0x1e, 0xfd, 0x0b, 0x4a, 0xec, 0x12, 0x24, 0xc4, 0x40, 0x25, 0x48, 0x66, + 0x49, 0x46, 0x96, 0xd3, 0xce, 0xce, 0x72, 0x71, 0x09, 0xae, 0xb4, 0xd8, 0xdd, 0xec, 0x2e, 0x24, + 0x43, 0xd3, 0x07, 0x35, 0x6e, 0x9b, 0x49, 0x3b, 0xfd, 0xef, 0x4c, 0x12, 0xd7, 0x71, 0x7f, 0x66, + 0x5a, 0xa7, 0xe9, 0x4f, 0x92, 0xa6, 0x49, 0xd3, 0x3e, 0xe5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, + 0x1f, 0x3a, 0xb2, 0xc5, 0x78, 0xa6, 0x4e, 0xeb, 0x36, 0x6e, 0xeb, 0x07, 0x8f, 0xfc, 0xd2, 0xb9, + 0x7f, 0x8b, 0xc5, 0x0f, 0xb5, 0xa0, 0x32, 0x76, 0x9e, 0x88, 0x3d, 0xf7, 0x7c, 0xdf, 0x3d, 0xf7, + 0xdc, 0x73, 0xcf, 0xb9, 0xf7, 0xee, 0x12, 0x7e, 0x72, 0x01, 0x66, 0xea, 0xb6, 0x5d, 0x37, 0xf1, + 0x09, 0xc7, 0xb5, 0x7d, 0x7b, 0xbb, 0xb9, 0x73, 0xa2, 0x86, 0x3d, 0xdd, 0x35, 0x1c, 0xdf, 0x76, + 0xe7, 0xa9, 0x0c, 0x8d, 0x31, 0x8d, 0x79, 0xa1, 0x31, 0x5b, 0x85, 0xf1, 0x4b, 0x86, 0x89, 0x97, + 0x02, 0xc5, 0x0d, 0xec, 0xa3, 0xf3, 0x90, 0xd8, 0x31, 0x4c, 0x9c, 0x97, 0x66, 0xe2, 0x73, 0x99, + 0x93, 0x8f, 0xce, 0x77, 0x81, 0xe6, 0x3b, 0x11, 0xeb, 0x44, 0xac, 0x50, 0xc4, 0xec, 0x9b, 0x09, + 0x98, 0xe8, 0xd3, 0x8a, 0x10, 0x24, 0x2c, 0xad, 0x41, 0x18, 0xa5, 0xb9, 0xb4, 0x42, 0x7f, 0xa3, + 0x3c, 0x8c, 0x38, 0x9a, 0x7e, 0x5d, 0xab, 0xe3, 0x7c, 0x8c, 0x8a, 0xc5, 0x23, 0x2a, 0x00, 0xd4, + 0xb0, 0x83, 0xad, 0x1a, 0xb6, 0xf4, 0x56, 0x3e, 0x3e, 0x13, 0x9f, 0x4b, 0x2b, 0x21, 0x09, 0x7a, + 0x0a, 0xc6, 0x9d, 0xe6, 0xb6, 0x69, 0xe8, 0x6a, 0x48, 0x0d, 0x66, 0xe2, 0x73, 0x49, 0x45, 0x66, + 0x0d, 0x4b, 0x6d, 0xe5, 0xe3, 0x30, 0x76, 0x13, 0x6b, 0xd7, 0xc3, 0xaa, 0x19, 0xaa, 0x9a, 0x23, + 0xe2, 0x90, 0xe2, 0x22, 0x64, 0x1b, 0xd8, 0xf3, 0xb4, 0x3a, 0x56, 0xfd, 0x96, 0x83, 0xf3, 0x09, + 0x3a, 0xfa, 0x99, 0x9e, 0xd1, 0x77, 0x8f, 0x3c, 0xc3, 0x51, 0x9b, 0x2d, 0x07, 0xa3, 0x05, 0x48, + 0x63, 0xab, 0xd9, 0x60, 0x0c, 0xc9, 0x7d, 0xfc, 0x57, 0xb6, 0x9a, 0x8d, 0x6e, 0x96, 0x14, 0x81, + 0x71, 0x8a, 0x11, 0x0f, 0xbb, 0x37, 0x0c, 0x1d, 0xe7, 0x87, 0x29, 0xc1, 0xf1, 0x1e, 0x82, 0x0d, + 0xd6, 0xde, 0xcd, 0x21, 0x70, 0x68, 0x11, 0xd2, 0xf8, 0x05, 0x1f, 0x5b, 0x9e, 0x61, 0x5b, 0xf9, + 0x11, 0x4a, 0xf2, 0x58, 0x9f, 0x59, 0xc4, 0x66, 0xad, 0x9b, 0xa2, 0x8d, 0x43, 0x67, 0x61, 0xc4, + 0x76, 0x7c, 0xc3, 0xb6, 0xbc, 0x7c, 0x6a, 0x46, 0x9a, 0xcb, 0x9c, 0xfc, 0x48, 0xdf, 0x40, 0x58, + 0x63, 0x3a, 0x8a, 0x50, 0x46, 0x15, 0x90, 0x3d, 0xbb, 0xe9, 0xea, 0x58, 0xd5, 0xed, 0x1a, 0x56, + 0x0d, 0x6b, 0xc7, 0xce, 0xa7, 0x29, 0xc1, 0x74, 0xef, 0x40, 0xa8, 0xe2, 0xa2, 0x5d, 0xc3, 0x15, + 0x6b, 0xc7, 0x56, 0x72, 0x5e, 0xc7, 0x33, 0x3a, 0x04, 0xc3, 0x5e, 0xcb, 0xf2, 0xb5, 0x17, 0xf2, + 0x59, 0x1a, 0x21, 0xfc, 0x69, 0xf6, 0x1f, 0x86, 0x61, 0x6c, 0x90, 0x10, 0xbb, 0x08, 0xc9, 0x1d, + 0x32, 0xca, 0x7c, 0xec, 0x20, 0x3e, 0x60, 0x98, 0x4e, 0x27, 0x0e, 0x3f, 0xa0, 0x13, 0x17, 0x20, + 0x63, 0x61, 0xcf, 0xc7, 0x35, 0x16, 0x11, 0xf1, 0x01, 0x63, 0x0a, 0x18, 0xa8, 0x37, 0xa4, 0x12, + 0x0f, 0x14, 0x52, 0xcf, 0xc1, 0x58, 0x60, 0x92, 0xea, 0x6a, 0x56, 0x5d, 0xc4, 0xe6, 0x89, 0x28, + 0x4b, 0xe6, 0xcb, 0x02, 0xa7, 0x10, 0x98, 0x92, 0xc3, 0x1d, 0xcf, 0x68, 0x09, 0xc0, 0xb6, 0xb0, + 0xbd, 0xa3, 0xd6, 0xb0, 0x6e, 0xe6, 0x53, 0xfb, 0x78, 0x69, 0x8d, 0xa8, 0xf4, 0x78, 0xc9, 0x66, + 0x52, 0xdd, 0x44, 0x17, 0xda, 0xa1, 0x36, 0xb2, 0x4f, 0xa4, 0x54, 0xd9, 0x22, 0xeb, 0x89, 0xb6, + 0x2d, 0xc8, 0xb9, 0x98, 0xc4, 0x3d, 0xae, 0xf1, 0x91, 0xa5, 0xa9, 0x11, 0xf3, 0x91, 0x23, 0x53, + 0x38, 0x8c, 0x0d, 0x6c, 0xd4, 0x0d, 0x3f, 0xa2, 0x63, 0x10, 0x08, 0x54, 0x1a, 0x56, 0x40, 0xb3, + 0x50, 0x56, 0x08, 0x57, 0xb5, 0x06, 0x9e, 0xba, 0x05, 0xb9, 0x4e, 0xf7, 0xa0, 0x49, 0x48, 0x7a, + 0xbe, 0xe6, 0xfa, 0x34, 0x0a, 0x93, 0x0a, 0x7b, 0x40, 0x32, 0xc4, 0xb1, 0x55, 0xa3, 0x59, 0x2e, + 0xa9, 0x90, 0x9f, 0xe8, 0xe7, 0xda, 0x03, 0x8e, 0xd3, 0x01, 0x3f, 0xde, 0x3b, 0xa3, 0x1d, 0xcc, + 0xdd, 0xe3, 0x9e, 0x3a, 0x07, 0xa3, 0x1d, 0x03, 0x18, 0xb4, 0xeb, 0xd9, 0x5f, 0x82, 0x87, 0xfa, + 0x52, 0xa3, 0xe7, 0x60, 0xb2, 0x69, 0x19, 0x96, 0x8f, 0x5d, 0xc7, 0xc5, 0x24, 0x62, 0x59, 0x57, + 0xf9, 0x7f, 0x1f, 0xd9, 0x27, 0xe6, 0xb6, 0xc2, 0xda, 0x8c, 0x45, 0x99, 0x68, 0xf6, 0x0a, 0x9f, + 0x4c, 0xa7, 0xde, 0x1a, 0x91, 0x6f, 0xdf, 0xbe, 0x7d, 0x3b, 0x36, 0xfb, 0xa5, 0x61, 0x98, 0xec, + 0xb7, 0x66, 0xfa, 0x2e, 0xdf, 0x43, 0x30, 0x6c, 0x35, 0x1b, 0xdb, 0xd8, 0xa5, 0x4e, 0x4a, 0x2a, + 0xfc, 0x09, 0x2d, 0x40, 0xd2, 0xd4, 0xb6, 0xb1, 0x99, 0x4f, 0xcc, 0x48, 0x73, 0xb9, 0x93, 0x4f, + 0x0d, 0xb4, 0x2a, 0xe7, 0x57, 0x08, 0x44, 0x61, 0x48, 0xf4, 0x0c, 0x24, 0x78, 0x8a, 0x26, 0x0c, + 0x4f, 0x0e, 0xc6, 0x40, 0xd6, 0x92, 0x42, 0x71, 0xe8, 0x61, 0x48, 0x93, 0xbf, 0x2c, 0x36, 0x86, + 0xa9, 0xcd, 0x29, 0x22, 0x20, 0x71, 0x81, 0xa6, 0x20, 0x45, 0x97, 0x49, 0x0d, 0x8b, 0xd2, 0x16, + 0x3c, 0x93, 0xc0, 0xaa, 0xe1, 0x1d, 0xad, 0x69, 0xfa, 0xea, 0x0d, 0xcd, 0x6c, 0x62, 0x1a, 0xf0, + 0x69, 0x25, 0xcb, 0x85, 0x9f, 0x26, 0x32, 0x34, 0x0d, 0x19, 0xb6, 0xaa, 0x0c, 0xab, 0x86, 0x5f, + 0xa0, 0xd9, 0x33, 0xa9, 0xb0, 0x85, 0x56, 0x21, 0x12, 0xd2, 0xfd, 0x35, 0xcf, 0xb6, 0x44, 0x68, + 0xd2, 0x2e, 0x88, 0x80, 0x76, 0x7f, 0xae, 0x3b, 0x71, 0x3f, 0xd2, 0x7f, 0x78, 0xdd, 0x31, 0x35, + 0xfb, 0x9d, 0x18, 0x24, 0x68, 0xbe, 0x18, 0x83, 0xcc, 0xe6, 0xd5, 0xf5, 0xb2, 0xba, 0xb4, 0xb6, + 0x55, 0x5a, 0x29, 0xcb, 0x12, 0xca, 0x01, 0x50, 0xc1, 0xa5, 0x95, 0xb5, 0x85, 0x4d, 0x39, 0x16, + 0x3c, 0x57, 0x56, 0x37, 0xcf, 0x9e, 0x96, 0xe3, 0x01, 0x60, 0x8b, 0x09, 0x12, 0x61, 0x85, 0x53, + 0x27, 0xe5, 0x24, 0x92, 0x21, 0xcb, 0x08, 0x2a, 0xcf, 0x95, 0x97, 0xce, 0x9e, 0x96, 0x87, 0x3b, + 0x25, 0xa7, 0x4e, 0xca, 0x23, 0x68, 0x14, 0xd2, 0x54, 0x52, 0x5a, 0x5b, 0x5b, 0x91, 0x53, 0x01, + 0xe7, 0xc6, 0xa6, 0x52, 0x59, 0x5d, 0x96, 0xd3, 0x01, 0xe7, 0xb2, 0xb2, 0xb6, 0xb5, 0x2e, 0x43, + 0xc0, 0x50, 0x2d, 0x6f, 0x6c, 0x2c, 0x2c, 0x97, 0xe5, 0x4c, 0xa0, 0x51, 0xba, 0xba, 0x59, 0xde, + 0x90, 0xb3, 0x1d, 0x66, 0x9d, 0x3a, 0x29, 0x8f, 0x06, 0x5d, 0x94, 0x57, 0xb7, 0xaa, 0x72, 0x0e, + 0x8d, 0xc3, 0x28, 0xeb, 0x42, 0x18, 0x31, 0xd6, 0x25, 0x3a, 0x7b, 0x5a, 0x96, 0xdb, 0x86, 0x30, + 0x96, 0xf1, 0x0e, 0xc1, 0xd9, 0xd3, 0x32, 0x9a, 0x5d, 0x84, 0x24, 0x8d, 0x2e, 0x84, 0x20, 0xb7, + 0xb2, 0x50, 0x2a, 0xaf, 0xa8, 0x6b, 0xeb, 0x9b, 0x95, 0xb5, 0xd5, 0x85, 0x15, 0x59, 0x6a, 0xcb, + 0x94, 0xf2, 0xa7, 0xb6, 0x2a, 0x4a, 0x79, 0x49, 0x8e, 0x85, 0x65, 0xeb, 0xe5, 0x85, 0xcd, 0xf2, + 0x92, 0x1c, 0x9f, 0xd5, 0x61, 0xb2, 0x5f, 0x9e, 0xec, 0xbb, 0x32, 0x42, 0x53, 0x1c, 0xdb, 0x67, + 0x8a, 0x29, 0x57, 0xcf, 0x14, 0xff, 0x28, 0x06, 0x13, 0x7d, 0x6a, 0x45, 0xdf, 0x4e, 0x9e, 0x85, + 0x24, 0x0b, 0x51, 0x56, 0x3d, 0x9f, 0xe8, 0x5b, 0x74, 0x68, 0xc0, 0xf6, 0x54, 0x50, 0x8a, 0x0b, + 0xef, 0x20, 0xe2, 0xfb, 0xec, 0x20, 0x08, 0x45, 0x4f, 0x4e, 0xff, 0xc5, 0x9e, 0x9c, 0xce, 0xca, + 0xde, 0xd9, 0x41, 0xca, 0x1e, 0x95, 0x1d, 0x2c, 0xb7, 0x27, 0xfb, 0xe4, 0xf6, 0x8b, 0x30, 0xde, + 0x43, 0x34, 0x70, 0x8e, 0x7d, 0x51, 0x82, 0xfc, 0x7e, 0xce, 0x89, 0xc8, 0x74, 0xb1, 0x8e, 0x4c, + 0x77, 0xb1, 0xdb, 0x83, 0x47, 0xf7, 0x9f, 0x84, 0x9e, 0xb9, 0x7e, 0x55, 0x82, 0x43, 0xfd, 0x77, + 0x8a, 0x7d, 0x6d, 0x78, 0x06, 0x86, 0x1b, 0xd8, 0xdf, 0xb5, 0xc5, 0x6e, 0xe9, 0xf1, 0x3e, 0x35, + 0x98, 0x34, 0x77, 0x4f, 0x36, 0x47, 0x85, 0x8b, 0x78, 0x7c, 0xbf, 0xed, 0x1e, 0xb3, 0xa6, 0xc7, + 0xd2, 0x2f, 0xc4, 0xe0, 0xa1, 0xbe, 0xe4, 0x7d, 0x0d, 0x7d, 0x04, 0xc0, 0xb0, 0x9c, 0xa6, 0xcf, + 0x76, 0x44, 0x2c, 0xc1, 0xa6, 0xa9, 0x84, 0x26, 0x2f, 0x92, 0x3c, 0x9b, 0x7e, 0xd0, 0x1e, 0xa7, + 0xed, 0xc0, 0x44, 0x54, 0xe1, 0x7c, 0xdb, 0xd0, 0x04, 0x35, 0xb4, 0xb0, 0xcf, 0x48, 0x7b, 0x02, + 0xf3, 0x69, 0x90, 0x75, 0xd3, 0xc0, 0x96, 0xaf, 0x7a, 0xbe, 0x8b, 0xb5, 0x86, 0x61, 0xd5, 0x69, + 0x05, 0x49, 0x15, 0x93, 0x3b, 0x9a, 0xe9, 0x61, 0x65, 0x8c, 0x35, 0x6f, 0x88, 0x56, 0x82, 0xa0, + 0x01, 0xe4, 0x86, 0x10, 0xc3, 0x1d, 0x08, 0xd6, 0x1c, 0x20, 0x66, 0xbf, 0x95, 0x82, 0x4c, 0x68, + 0x5f, 0x8d, 0x8e, 0x42, 0xf6, 0x9a, 0x76, 0x43, 0x53, 0xc5, 0x59, 0x89, 0x79, 0x22, 0x43, 0x64, + 0xeb, 0xfc, 0xbc, 0xf4, 0x34, 0x4c, 0x52, 0x15, 0xbb, 0xe9, 0x63, 0x57, 0xd5, 0x4d, 0xcd, 0xf3, + 0xa8, 0xd3, 0x52, 0x54, 0x15, 0x91, 0xb6, 0x35, 0xd2, 0xb4, 0x28, 0x5a, 0xd0, 0x19, 0x98, 0xa0, + 0x88, 0x46, 0xd3, 0xf4, 0x0d, 0xc7, 0xc4, 0x2a, 0x39, 0xbd, 0x79, 0xb4, 0x92, 0x04, 0x96, 0x8d, + 0x13, 0x8d, 0x2a, 0x57, 0x20, 0x16, 0x79, 0x68, 0x09, 0x1e, 0xa1, 0xb0, 0x3a, 0xb6, 0xb0, 0xab, + 0xf9, 0x58, 0xc5, 0x9f, 0x6d, 0x6a, 0xa6, 0xa7, 0x6a, 0x56, 0x4d, 0xdd, 0xd5, 0xbc, 0xdd, 0xfc, + 0x24, 0x21, 0x28, 0xc5, 0xf2, 0x92, 0x72, 0x84, 0x28, 0x2e, 0x73, 0xbd, 0x32, 0x55, 0x5b, 0xb0, + 0x6a, 0x9f, 0xd4, 0xbc, 0x5d, 0x54, 0x84, 0x43, 0x94, 0xc5, 0xf3, 0x5d, 0xc3, 0xaa, 0xab, 0xfa, + 0x2e, 0xd6, 0xaf, 0xab, 0x4d, 0x7f, 0xe7, 0x7c, 0xfe, 0xe1, 0x70, 0xff, 0xd4, 0xc2, 0x0d, 0xaa, + 0xb3, 0x48, 0x54, 0xb6, 0xfc, 0x9d, 0xf3, 0x68, 0x03, 0xb2, 0x64, 0x32, 0x1a, 0xc6, 0x2d, 0xac, + 0xee, 0xd8, 0x2e, 0x2d, 0x8d, 0xb9, 0x3e, 0xa9, 0x29, 0xe4, 0xc1, 0xf9, 0x35, 0x0e, 0xa8, 0xda, + 0x35, 0x5c, 0x4c, 0x6e, 0xac, 0x97, 0xcb, 0x4b, 0x4a, 0x46, 0xb0, 0x5c, 0xb2, 0x5d, 0x12, 0x50, + 0x75, 0x3b, 0x70, 0x70, 0x86, 0x05, 0x54, 0xdd, 0x16, 0xee, 0x3d, 0x03, 0x13, 0xba, 0xce, 0xc6, + 0x6c, 0xe8, 0x2a, 0x3f, 0x63, 0x79, 0x79, 0xb9, 0xc3, 0x59, 0xba, 0xbe, 0xcc, 0x14, 0x78, 0x8c, + 0x7b, 0xe8, 0x02, 0x3c, 0xd4, 0x76, 0x56, 0x18, 0x38, 0xde, 0x33, 0xca, 0x6e, 0xe8, 0x19, 0x98, + 0x70, 0x5a, 0xbd, 0x40, 0xd4, 0xd1, 0xa3, 0xd3, 0xea, 0x86, 0x9d, 0x83, 0x49, 0x67, 0xd7, 0xe9, + 0xc5, 0x3d, 0x19, 0xc6, 0x21, 0x67, 0xd7, 0xe9, 0x06, 0x3e, 0x46, 0x0f, 0xdc, 0x2e, 0xd6, 0x35, + 0x1f, 0xd7, 0xf2, 0x87, 0xc3, 0xea, 0xa1, 0x06, 0x74, 0x02, 0x64, 0x5d, 0x57, 0xb1, 0xa5, 0x6d, + 0x9b, 0x58, 0xd5, 0x5c, 0x6c, 0x69, 0x5e, 0x7e, 0x3a, 0xac, 0x9c, 0xd3, 0xf5, 0x32, 0x6d, 0x5d, + 0xa0, 0x8d, 0xe8, 0x49, 0x18, 0xb7, 0xb7, 0xaf, 0xe9, 0x2c, 0x24, 0x55, 0xc7, 0xc5, 0x3b, 0xc6, + 0x0b, 0xf9, 0x47, 0xa9, 0x7f, 0xc7, 0x48, 0x03, 0x0d, 0xc8, 0x75, 0x2a, 0x46, 0x4f, 0x80, 0xac, + 0x7b, 0xbb, 0x9a, 0xeb, 0xd0, 0x9c, 0xec, 0x39, 0x9a, 0x8e, 0xf3, 0x8f, 0x31, 0x55, 0x26, 0x5f, + 0x15, 0x62, 0xb2, 0x24, 0xbc, 0x9b, 0xc6, 0x8e, 0x2f, 0x18, 0x8f, 0xb3, 0x25, 0x41, 0x65, 0x9c, + 0x6d, 0x0e, 0x64, 0xe2, 0x8a, 0x8e, 0x8e, 0xe7, 0xa8, 0x5a, 0xce, 0xd9, 0x75, 0xc2, 0xfd, 0x1e, + 0x83, 0x51, 0xa2, 0xd9, 0xee, 0xf4, 0x09, 0xb6, 0x21, 0x73, 0x76, 0x43, 0x3d, 0x7e, 0x60, 0x7b, + 0xe3, 0xd9, 0x22, 0x64, 0xc3, 0xf1, 0x89, 0xd2, 0xc0, 0x22, 0x54, 0x96, 0xc8, 0x66, 0x65, 0x71, + 0x6d, 0x89, 0x6c, 0x33, 0x9e, 0x2f, 0xcb, 0x31, 0xb2, 0xdd, 0x59, 0xa9, 0x6c, 0x96, 0x55, 0x65, + 0x6b, 0x75, 0xb3, 0x52, 0x2d, 0xcb, 0xf1, 0xf0, 0xbe, 0xfa, 0xfb, 0x31, 0xc8, 0x75, 0x1e, 0x91, + 0xd0, 0xc7, 0xe1, 0xb0, 0xb8, 0xcf, 0xf0, 0xb0, 0xaf, 0xde, 0x34, 0x5c, 0xba, 0x64, 0x1a, 0x1a, + 0x2b, 0x5f, 0xc1, 0xa4, 0x4d, 0x72, 0xad, 0x0d, 0xec, 0x5f, 0x31, 0x5c, 0xb2, 0x20, 0x1a, 0x9a, + 0x8f, 0x56, 0x60, 0xda, 0xb2, 0x55, 0xcf, 0xd7, 0xac, 0x9a, 0xe6, 0xd6, 0xd4, 0xf6, 0x4d, 0x92, + 0xaa, 0xe9, 0x3a, 0xf6, 0x3c, 0x9b, 0x95, 0xaa, 0x80, 0xe5, 0x23, 0x96, 0xbd, 0xc1, 0x95, 0xdb, + 0x39, 0x7c, 0x81, 0xab, 0x76, 0x05, 0x58, 0x7c, 0xbf, 0x00, 0x7b, 0x18, 0xd2, 0x0d, 0xcd, 0x51, + 0xb1, 0xe5, 0xbb, 0x2d, 0xba, 0x31, 0x4e, 0x29, 0xa9, 0x86, 0xe6, 0x94, 0xc9, 0xf3, 0x87, 0x73, + 0x3e, 0xf9, 0xb7, 0x38, 0x64, 0xc3, 0x9b, 0x63, 0x72, 0xd6, 0xd0, 0x69, 0x1d, 0x91, 0x68, 0xa6, + 0x39, 0x76, 0xdf, 0xad, 0xf4, 0xfc, 0x22, 0x29, 0x30, 0xc5, 0x61, 0xb6, 0x65, 0x55, 0x18, 0x92, + 0x14, 0x77, 0x92, 0x5b, 0x30, 0xdb, 0x22, 0xa4, 0x14, 0xfe, 0x84, 0x96, 0x61, 0xf8, 0x9a, 0x47, + 0xb9, 0x87, 0x29, 0xf7, 0xa3, 0xf7, 0xe7, 0xbe, 0xbc, 0x41, 0xc9, 0xd3, 0x97, 0x37, 0xd4, 0xd5, + 0x35, 0xa5, 0xba, 0xb0, 0xa2, 0x70, 0x38, 0x3a, 0x02, 0x09, 0x53, 0xbb, 0xd5, 0xea, 0x2c, 0x45, + 0x54, 0x34, 0xa8, 0xe3, 0x8f, 0x40, 0xe2, 0x26, 0xd6, 0xae, 0x77, 0x16, 0x00, 0x2a, 0xfa, 0x00, + 0x43, 0xff, 0x04, 0x24, 0xa9, 0xbf, 0x10, 0x00, 0xf7, 0x98, 0x3c, 0x84, 0x52, 0x90, 0x58, 0x5c, + 0x53, 0x48, 0xf8, 0xcb, 0x90, 0x65, 0x52, 0x75, 0xbd, 0x52, 0x5e, 0x2c, 0xcb, 0xb1, 0xd9, 0x33, + 0x30, 0xcc, 0x9c, 0x40, 0x96, 0x46, 0xe0, 0x06, 0x79, 0x88, 0x3f, 0x72, 0x0e, 0x49, 0xb4, 0x6e, + 0x55, 0x4b, 0x65, 0x45, 0x8e, 0x85, 0xa7, 0xd7, 0x83, 0x6c, 0x78, 0x5f, 0xfc, 0xe1, 0xc4, 0xd4, + 0x3f, 0x4a, 0x90, 0x09, 0xed, 0x73, 0xc9, 0x06, 0x45, 0x33, 0x4d, 0xfb, 0xa6, 0xaa, 0x99, 0x86, + 0xe6, 0xf1, 0xa0, 0x00, 0x2a, 0x5a, 0x20, 0x92, 0x41, 0x27, 0xed, 0x43, 0x31, 0xfe, 0x15, 0x09, + 0xe4, 0xee, 0x2d, 0x66, 0x97, 0x81, 0xd2, 0xcf, 0xd4, 0xc0, 0x97, 0x25, 0xc8, 0x75, 0xee, 0x2b, + 0xbb, 0xcc, 0x3b, 0xfa, 0x33, 0x35, 0xef, 0x8d, 0x18, 0x8c, 0x76, 0xec, 0x26, 0x07, 0xb5, 0xee, + 0xb3, 0x30, 0x6e, 0xd4, 0x70, 0xc3, 0xb1, 0x7d, 0x6c, 0xe9, 0x2d, 0xd5, 0xc4, 0x37, 0xb0, 0x99, + 0x9f, 0xa5, 0x89, 0xe2, 0xc4, 0xfd, 0xf7, 0xab, 0xf3, 0x95, 0x36, 0x6e, 0x85, 0xc0, 0x8a, 0x13, + 0x95, 0xa5, 0x72, 0x75, 0x7d, 0x6d, 0xb3, 0xbc, 0xba, 0x78, 0x55, 0xdd, 0x5a, 0xfd, 0xf9, 0xd5, + 0xb5, 0x2b, 0xab, 0x8a, 0x6c, 0x74, 0xa9, 0x7d, 0x80, 0x4b, 0x7d, 0x1d, 0xe4, 0x6e, 0xa3, 0xd0, + 0x61, 0xe8, 0x67, 0x96, 0x3c, 0x84, 0x26, 0x60, 0x6c, 0x75, 0x4d, 0xdd, 0xa8, 0x2c, 0x95, 0xd5, + 0xf2, 0xa5, 0x4b, 0xe5, 0xc5, 0xcd, 0x0d, 0x76, 0x03, 0x11, 0x68, 0x6f, 0x76, 0x2e, 0xea, 0x97, + 0xe2, 0x30, 0xd1, 0xc7, 0x12, 0xb4, 0xc0, 0xcf, 0x0e, 0xec, 0x38, 0xf3, 0xb1, 0x41, 0xac, 0x9f, + 0x27, 0x25, 0x7f, 0x5d, 0x73, 0x7d, 0x7e, 0xd4, 0x78, 0x02, 0x88, 0x97, 0x2c, 0xdf, 0xd8, 0x31, + 0xb0, 0xcb, 0x2f, 0x6c, 0xd8, 0x81, 0x62, 0xac, 0x2d, 0x67, 0x77, 0x36, 0x1f, 0x05, 0xe4, 0xd8, + 0x9e, 0xe1, 0x1b, 0x37, 0xb0, 0x6a, 0x58, 0xe2, 0x76, 0x87, 0x1c, 0x30, 0x12, 0x8a, 0x2c, 0x5a, + 0x2a, 0x96, 0x1f, 0x68, 0x5b, 0xb8, 0xae, 0x75, 0x69, 0x93, 0x04, 0x1e, 0x57, 0x64, 0xd1, 0x12, + 0x68, 0x1f, 0x85, 0x6c, 0xcd, 0x6e, 0x92, 0x5d, 0x17, 0xd3, 0x23, 0xf5, 0x42, 0x52, 0x32, 0x4c, + 0x16, 0xa8, 0xf0, 0xfd, 0x74, 0xfb, 0x5a, 0x29, 0xab, 0x64, 0x98, 0x8c, 0xa9, 0x1c, 0x87, 0x31, + 0xad, 0x5e, 0x77, 0x09, 0xb9, 0x20, 0x62, 0x27, 0x84, 0x5c, 0x20, 0xa6, 0x8a, 0x53, 0x97, 0x21, + 0x25, 0xfc, 0x40, 0x4a, 0x32, 0xf1, 0x84, 0xea, 0xb0, 0x63, 0x6f, 0x6c, 0x2e, 0xad, 0xa4, 0x2c, + 0xd1, 0x78, 0x14, 0xb2, 0x86, 0xa7, 0xb6, 0x6f, 0xc9, 0x63, 0x33, 0xb1, 0xb9, 0x94, 0x92, 0x31, + 0xbc, 0xe0, 0x86, 0x71, 0xf6, 0xd5, 0x18, 0xe4, 0x3a, 0x6f, 0xf9, 0xd1, 0x12, 0xa4, 0x4c, 0x5b, + 0xd7, 0x68, 0x68, 0xb1, 0x57, 0x4c, 0x73, 0x11, 0x2f, 0x06, 0xe6, 0x57, 0xb8, 0xbe, 0x12, 0x20, + 0xa7, 0xfe, 0x45, 0x82, 0x94, 0x10, 0xa3, 0x43, 0x90, 0x70, 0x34, 0x7f, 0x97, 0xd2, 0x25, 0x4b, + 0x31, 0x59, 0x52, 0xe8, 0x33, 0x91, 0x7b, 0x8e, 0x66, 0xd1, 0x10, 0xe0, 0x72, 0xf2, 0x4c, 0xe6, + 0xd5, 0xc4, 0x5a, 0x8d, 0x1e, 0x3f, 0xec, 0x46, 0x03, 0x5b, 0xbe, 0x27, 0xe6, 0x95, 0xcb, 0x17, + 0xb9, 0x18, 0x3d, 0x05, 0xe3, 0xbe, 0xab, 0x19, 0x66, 0x87, 0x6e, 0x82, 0xea, 0xca, 0xa2, 0x21, + 0x50, 0x2e, 0xc2, 0x11, 0xc1, 0x5b, 0xc3, 0xbe, 0xa6, 0xef, 0xe2, 0x5a, 0x1b, 0x34, 0x4c, 0xaf, + 0x19, 0x0e, 0x73, 0x85, 0x25, 0xde, 0x2e, 0xb0, 0xb3, 0x3f, 0x94, 0x60, 0x5c, 0x1c, 0x98, 0x6a, + 0x81, 0xb3, 0xaa, 0x00, 0x9a, 0x65, 0xd9, 0x7e, 0xd8, 0x5d, 0xbd, 0xa1, 0xdc, 0x83, 0x9b, 0x5f, + 0x08, 0x40, 0x4a, 0x88, 0x60, 0xaa, 0x01, 0xd0, 0x6e, 0xd9, 0xd7, 0x6d, 0xd3, 0x90, 0xe1, 0xaf, + 0x70, 0xe8, 0x7b, 0x40, 0x76, 0xc4, 0x06, 0x26, 0x22, 0x27, 0x2b, 0x34, 0x09, 0xc9, 0x6d, 0x5c, + 0x37, 0x2c, 0x7e, 0x31, 0xcb, 0x1e, 0xc4, 0x45, 0x48, 0x22, 0xb8, 0x08, 0x29, 0x7d, 0x06, 0x26, + 0x74, 0xbb, 0xd1, 0x6d, 0x6e, 0x49, 0xee, 0x3a, 0xe6, 0x7b, 0x9f, 0x94, 0x9e, 0x87, 0xf6, 0x16, + 0xf3, 0x3d, 0x49, 0xfa, 0xd3, 0x58, 0x7c, 0x79, 0xbd, 0xf4, 0xb5, 0xd8, 0xd4, 0x32, 0x83, 0xae, + 0x8b, 0x91, 0x2a, 0x78, 0xc7, 0xc4, 0x3a, 0xb1, 0x1e, 0xbe, 0x78, 0x1c, 0x3e, 0x56, 0x37, 0xfc, + 0xdd, 0xe6, 0xf6, 0xbc, 0x6e, 0x37, 0x4e, 0xd4, 0xed, 0xba, 0xdd, 0x7e, 0xf5, 0x49, 0x9e, 0xe8, + 0x03, 0xfd, 0xc5, 0x5f, 0x7f, 0xa6, 0x03, 0xe9, 0x54, 0xe4, 0xbb, 0xd2, 0xe2, 0x2a, 0x4c, 0x70, + 0x65, 0x95, 0xbe, 0x7f, 0x61, 0xa7, 0x08, 0x74, 0xdf, 0x3b, 0xac, 0xfc, 0x37, 0xdf, 0xa4, 0xe5, + 0x5a, 0x19, 0xe7, 0x50, 0xd2, 0xc6, 0x0e, 0x1a, 0x45, 0x05, 0x1e, 0xea, 0xe0, 0x63, 0x4b, 0x13, + 0xbb, 0x11, 0x8c, 0xdf, 0xe7, 0x8c, 0x13, 0x21, 0xc6, 0x0d, 0x0e, 0x2d, 0x2e, 0xc2, 0xe8, 0x41, + 0xb8, 0xfe, 0x89, 0x73, 0x65, 0x71, 0x98, 0x64, 0x19, 0xc6, 0x28, 0x89, 0xde, 0xf4, 0x7c, 0xbb, + 0x41, 0xf3, 0xde, 0xfd, 0x69, 0xfe, 0xf9, 0x4d, 0xb6, 0x56, 0x72, 0x04, 0xb6, 0x18, 0xa0, 0x8a, + 0x45, 0xa0, 0xaf, 0x9c, 0x6a, 0x58, 0x37, 0x23, 0x18, 0x5e, 0xe3, 0x86, 0x04, 0xfa, 0xc5, 0x4f, + 0xc3, 0x24, 0xf9, 0x4d, 0xd3, 0x52, 0xd8, 0x92, 0xe8, 0x0b, 0xaf, 0xfc, 0x0f, 0x5f, 0x64, 0xcb, + 0x71, 0x22, 0x20, 0x08, 0xd9, 0x14, 0x9a, 0xc5, 0x3a, 0xf6, 0x7d, 0xec, 0x7a, 0xaa, 0x66, 0xf6, + 0x33, 0x2f, 0x74, 0x63, 0x90, 0xff, 0xf2, 0xdb, 0x9d, 0xb3, 0xb8, 0xcc, 0x90, 0x0b, 0xa6, 0x59, + 0xdc, 0x82, 0xc3, 0x7d, 0xa2, 0x62, 0x00, 0xce, 0x97, 0x38, 0xe7, 0x64, 0x4f, 0x64, 0x10, 0xda, + 0x75, 0x10, 0xf2, 0x60, 0x2e, 0x07, 0xe0, 0xfc, 0x43, 0xce, 0x89, 0x38, 0x56, 0x4c, 0x29, 0x61, + 0xbc, 0x0c, 0xe3, 0x37, 0xb0, 0xbb, 0x6d, 0x7b, 0xfc, 0x96, 0x66, 0x00, 0xba, 0x97, 0x39, 0xdd, + 0x18, 0x07, 0xd2, 0x6b, 0x1b, 0xc2, 0x75, 0x01, 0x52, 0x3b, 0x9a, 0x8e, 0x07, 0xa0, 0xf8, 0x0a, + 0xa7, 0x18, 0x21, 0xfa, 0x04, 0xba, 0x00, 0xd9, 0xba, 0xcd, 0x2b, 0x53, 0x34, 0xfc, 0x15, 0x0e, + 0xcf, 0x08, 0x0c, 0xa7, 0x70, 0x6c, 0xa7, 0x69, 0x92, 0xb2, 0x15, 0x4d, 0xf1, 0x47, 0x82, 0x42, + 0x60, 0x38, 0xc5, 0x01, 0xdc, 0xfa, 0xc7, 0x82, 0xc2, 0x0b, 0xf9, 0xf3, 0x59, 0xc8, 0xd8, 0x96, + 0xd9, 0xb2, 0xad, 0x41, 0x8c, 0xf8, 0x13, 0xce, 0x00, 0x1c, 0x42, 0x08, 0x2e, 0x42, 0x7a, 0xd0, + 0x89, 0xf8, 0xb3, 0xb7, 0xc5, 0xf2, 0x10, 0x33, 0xb0, 0x0c, 0x63, 0x22, 0x41, 0x19, 0xb6, 0x35, + 0x00, 0xc5, 0x9f, 0x73, 0x8a, 0x5c, 0x08, 0xc6, 0x87, 0xe1, 0x63, 0xcf, 0xaf, 0xe3, 0x41, 0x48, + 0x5e, 0x15, 0xc3, 0xe0, 0x10, 0xee, 0xca, 0x6d, 0x6c, 0xe9, 0xbb, 0x83, 0x31, 0x7c, 0x55, 0xb8, + 0x52, 0x60, 0x08, 0xc5, 0x22, 0x8c, 0x36, 0x34, 0xd7, 0xdb, 0xd5, 0xcc, 0x81, 0xa6, 0xe3, 0x2f, + 0x38, 0x47, 0x36, 0x00, 0x71, 0x8f, 0x34, 0xad, 0x83, 0xd0, 0x7c, 0x4d, 0x78, 0x24, 0x04, 0xe3, + 0x4b, 0xcf, 0xf3, 0xe9, 0x95, 0xd6, 0x41, 0xd8, 0xfe, 0x52, 0x2c, 0x3d, 0x86, 0xad, 0x86, 0x19, + 0x2f, 0x42, 0xda, 0x33, 0x6e, 0x0d, 0x44, 0xf3, 0x57, 0x62, 0xa6, 0x29, 0x80, 0x80, 0xaf, 0xc2, + 0x91, 0xbe, 0x65, 0x62, 0x00, 0xb2, 0xbf, 0xe6, 0x64, 0x87, 0xfa, 0x94, 0x0a, 0x9e, 0x12, 0x0e, + 0x4a, 0xf9, 0x37, 0x22, 0x25, 0xe0, 0x2e, 0xae, 0x75, 0x72, 0x56, 0xf0, 0xb4, 0x9d, 0x83, 0x79, + 0xed, 0xeb, 0xc2, 0x6b, 0x0c, 0xdb, 0xe1, 0xb5, 0x4d, 0x38, 0xc4, 0x19, 0x0f, 0x36, 0xaf, 0xdf, + 0x10, 0x89, 0x95, 0xa1, 0xb7, 0x3a, 0x67, 0xf7, 0x33, 0x30, 0x15, 0xb8, 0x53, 0x6c, 0x4a, 0x3d, + 0xb5, 0xa1, 0x39, 0x03, 0x30, 0x7f, 0x93, 0x33, 0x8b, 0x8c, 0x1f, 0xec, 0x6a, 0xbd, 0xaa, 0xe6, + 0x10, 0xf2, 0xe7, 0x20, 0x2f, 0xc8, 0x9b, 0x96, 0x8b, 0x75, 0xbb, 0x6e, 0x19, 0xb7, 0x70, 0x6d, + 0x00, 0xea, 0xbf, 0xed, 0x9a, 0xaa, 0xad, 0x10, 0x9c, 0x30, 0x57, 0x40, 0x0e, 0xf6, 0x2a, 0xaa, + 0xd1, 0x70, 0x6c, 0xd7, 0x8f, 0x60, 0xfc, 0x96, 0x98, 0xa9, 0x00, 0x57, 0xa1, 0xb0, 0x62, 0x19, + 0x72, 0xf4, 0x71, 0xd0, 0x90, 0xfc, 0x3b, 0x4e, 0x34, 0xda, 0x46, 0xf1, 0xc4, 0xa1, 0xdb, 0x0d, + 0x47, 0x73, 0x07, 0xc9, 0x7f, 0xdf, 0x16, 0x89, 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x5b, 0x0e, 0x26, + 0xd5, 0x7e, 0x00, 0x86, 0xef, 0x88, 0xc4, 0x21, 0x30, 0x9c, 0x42, 0x6c, 0x18, 0x06, 0xa0, 0xf8, + 0x7b, 0x41, 0x21, 0x30, 0x84, 0xe2, 0x53, 0xed, 0x42, 0xeb, 0xe2, 0xba, 0xe1, 0xf9, 0x2e, 0xdb, + 0x0a, 0xdf, 0x9f, 0xea, 0xbb, 0x6f, 0x77, 0x6e, 0xc2, 0x94, 0x10, 0xb4, 0x78, 0x19, 0xc6, 0xba, + 0xb6, 0x18, 0x28, 0xea, 0xfb, 0x95, 0xfc, 0x2f, 0xbf, 0xcb, 0x93, 0x51, 0xe7, 0x0e, 0xa3, 0xb8, + 0x42, 0xe6, 0xbd, 0x73, 0x1f, 0x10, 0x4d, 0xf6, 0xe2, 0xbb, 0xc1, 0xd4, 0x77, 0x6c, 0x03, 0x8a, + 0x97, 0x60, 0xb4, 0x63, 0x0f, 0x10, 0x4d, 0xf5, 0x2b, 0x9c, 0x2a, 0x1b, 0xde, 0x02, 0x14, 0xcf, + 0x40, 0x82, 0xd4, 0xf3, 0x68, 0xf8, 0xaf, 0x72, 0x38, 0x55, 0x2f, 0x7e, 0x02, 0x52, 0xa2, 0x8e, + 0x47, 0x43, 0x7f, 0x8d, 0x43, 0x03, 0x08, 0x81, 0x8b, 0x1a, 0x1e, 0x0d, 0xff, 0xbc, 0x80, 0x0b, + 0x08, 0x81, 0x0f, 0xee, 0xc2, 0xef, 0xfd, 0x46, 0x82, 0xe7, 0x61, 0xe1, 0xbb, 0x8b, 0x30, 0xc2, + 0x8b, 0x77, 0x34, 0xfa, 0x0b, 0xbc, 0x73, 0x81, 0x28, 0x9e, 0x83, 0xe4, 0x80, 0x0e, 0xff, 0x4d, + 0x0e, 0x65, 0xfa, 0xc5, 0x45, 0xc8, 0x84, 0x0a, 0x76, 0x34, 0xfc, 0xb7, 0x38, 0x3c, 0x8c, 0x22, + 0xa6, 0xf3, 0x82, 0x1d, 0x4d, 0xf0, 0xdb, 0xc2, 0x74, 0x8e, 0x20, 0x6e, 0x13, 0xb5, 0x3a, 0x1a, + 0xfd, 0x3b, 0xc2, 0xeb, 0x02, 0x52, 0x7c, 0x16, 0xd2, 0x41, 0xfe, 0x8d, 0xc6, 0xff, 0x2e, 0xc7, + 0xb7, 0x31, 0xc4, 0x03, 0xa1, 0xfc, 0x1f, 0x4d, 0xf1, 0x7b, 0xc2, 0x03, 0x21, 0x14, 0x59, 0x46, + 0xdd, 0x35, 0x3d, 0x9a, 0xe9, 0xf7, 0xc5, 0x32, 0xea, 0x2a, 0xe9, 0x64, 0x36, 0x69, 0x1a, 0x8c, + 0xa6, 0xf8, 0x03, 0x31, 0x9b, 0x54, 0x9f, 0x98, 0xd1, 0x5d, 0x24, 0xa3, 0x39, 0xbe, 0x28, 0xcc, + 0xe8, 0xaa, 0x91, 0xc5, 0x75, 0x40, 0xbd, 0x05, 0x32, 0x9a, 0xef, 0x4b, 0x9c, 0x6f, 0xbc, 0xa7, + 0x3e, 0x16, 0xaf, 0xc0, 0xa1, 0xfe, 0xc5, 0x31, 0x9a, 0xf5, 0xcb, 0xef, 0x76, 0x1d, 0x67, 0xc2, + 0xb5, 0xb1, 0xb8, 0xd9, 0xce, 0xb2, 0xe1, 0xc2, 0x18, 0x4d, 0xfb, 0xd2, 0xbb, 0x9d, 0x89, 0x36, + 0x5c, 0x17, 0x8b, 0x0b, 0x00, 0xed, 0x9a, 0x14, 0xcd, 0xf5, 0x32, 0xe7, 0x0a, 0x81, 0xc8, 0xd2, + 0xe0, 0x25, 0x29, 0x1a, 0xff, 0x15, 0xb1, 0x34, 0x38, 0x82, 0x2c, 0x0d, 0x51, 0x8d, 0xa2, 0xd1, + 0xaf, 0x88, 0xa5, 0x21, 0x20, 0xc5, 0x8b, 0x90, 0xb2, 0x9a, 0xa6, 0x49, 0x62, 0x0b, 0xdd, 0xff, + 0x93, 0xac, 0xfc, 0x8f, 0xdf, 0xe7, 0x60, 0x01, 0x28, 0x9e, 0x81, 0x24, 0x6e, 0x6c, 0xe3, 0x5a, + 0x14, 0xf2, 0x3f, 0xde, 0x17, 0xf9, 0x84, 0x68, 0x17, 0x9f, 0x05, 0x60, 0x87, 0x69, 0xfa, 0xa2, + 0x28, 0x02, 0xfb, 0x9f, 0xef, 0xf3, 0x8f, 0x25, 0xda, 0x90, 0x36, 0x01, 0xfb, 0xf4, 0xe2, 0xfe, + 0x04, 0x6f, 0x77, 0x12, 0xd0, 0x03, 0xf8, 0x05, 0x18, 0xb9, 0xe6, 0xd9, 0x96, 0xaf, 0xd5, 0xa3, + 0xd0, 0xff, 0xc5, 0xd1, 0x42, 0x9f, 0x38, 0xac, 0x61, 0xbb, 0xd8, 0xd7, 0xea, 0x5e, 0x14, 0xf6, + 0xbf, 0x39, 0x36, 0x00, 0x10, 0xb0, 0xae, 0x79, 0xfe, 0x20, 0xe3, 0xfe, 0x89, 0x00, 0x0b, 0x00, + 0x31, 0x9a, 0xfc, 0xbe, 0x8e, 0x5b, 0x51, 0xd8, 0x77, 0x84, 0xd1, 0x5c, 0xbf, 0xf8, 0x09, 0x48, + 0x93, 0x9f, 0xec, 0x0b, 0xa8, 0x08, 0xf0, 0xff, 0x70, 0x70, 0x1b, 0x41, 0x7a, 0xf6, 0xfc, 0x9a, + 0x6f, 0x44, 0x3b, 0xfb, 0x7f, 0xf9, 0x4c, 0x0b, 0xfd, 0xe2, 0x02, 0x64, 0x3c, 0xbf, 0x56, 0x6b, + 0xf2, 0x1d, 0x4d, 0x04, 0xfc, 0xff, 0xde, 0x0f, 0x0e, 0xb9, 0x01, 0xa6, 0x54, 0xee, 0x7f, 0x5f, + 0x07, 0xcb, 0xf6, 0xb2, 0xcd, 0x6e, 0xea, 0x9e, 0x9f, 0x8d, 0xbe, 0x72, 0x83, 0xaf, 0x8f, 0xc1, + 0x94, 0x6e, 0x37, 0xb6, 0x6d, 0xef, 0xc4, 0xb6, 0xed, 0xef, 0x9e, 0x10, 0x7e, 0xe5, 0xd7, 0x70, + 0x81, 0x9f, 0xa7, 0x0e, 0x76, 0x7f, 0x37, 0xfb, 0xe3, 0x51, 0x48, 0x2d, 0x6a, 0x9e, 0xaf, 0xdd, + 0xd4, 0x5a, 0xe8, 0x31, 0x48, 0x55, 0x2c, 0xff, 0xd4, 0xc9, 0x75, 0xdf, 0xa5, 0xaf, 0xa0, 0xe2, + 0xa5, 0xf4, 0xbd, 0x3b, 0xd3, 0x49, 0x83, 0xc8, 0x94, 0xa0, 0x09, 0x1d, 0x83, 0x24, 0xfd, 0x4d, + 0x6f, 0x31, 0xe3, 0xa5, 0xd1, 0xd7, 0xee, 0x4c, 0x0f, 0xb5, 0xf5, 0x58, 0x1b, 0xba, 0x0a, 0x99, + 0x6a, 0x6b, 0xcb, 0xb0, 0xfc, 0xb3, 0xa7, 0x09, 0x1d, 0xf1, 0x4c, 0xa2, 0x74, 0xee, 0xde, 0x9d, + 0xe9, 0x53, 0xfb, 0x1a, 0x48, 0xea, 0x65, 0x7b, 0x60, 0x02, 0x4d, 0x3f, 0x11, 0x0d, 0x73, 0xa1, + 0x2b, 0x90, 0x12, 0x8f, 0xec, 0x6d, 0x40, 0xe9, 0x22, 0x37, 0xe1, 0x81, 0xb8, 0x03, 0x32, 0xf4, + 0x0b, 0x90, 0xad, 0xb6, 0x2e, 0x99, 0xb6, 0xc6, 0x7d, 0x90, 0x9c, 0x91, 0xe6, 0x62, 0xa5, 0xf3, + 0xf7, 0xee, 0x4c, 0x9f, 0x1e, 0x98, 0x98, 0xc3, 0x29, 0x73, 0x07, 0x1b, 0x7a, 0x1e, 0xd2, 0xc1, + 0x33, 0x7d, 0xdf, 0x10, 0x2b, 0x7d, 0x9c, 0xdb, 0xfd, 0x60, 0xf4, 0x6d, 0xba, 0x90, 0xe5, 0xcc, + 0xdd, 0x23, 0x33, 0xd2, 0x9c, 0xf4, 0x20, 0x96, 0x73, 0x9f, 0x74, 0xb0, 0x85, 0x2c, 0x3f, 0x7b, + 0x9a, 0xbe, 0xe0, 0x90, 0x1e, 0xd4, 0x72, 0x4e, 0xdf, 0xa6, 0x43, 0x97, 0x61, 0xa4, 0xda, 0x2a, + 0xb5, 0x7c, 0xec, 0xd1, 0x2f, 0x8f, 0xb2, 0xa5, 0xa7, 0xef, 0xdd, 0x99, 0xfe, 0xe8, 0x80, 0xac, + 0x14, 0xa7, 0x08, 0x02, 0x34, 0x03, 0x99, 0x55, 0xdb, 0x6d, 0x68, 0x26, 0xe3, 0x03, 0xf6, 0xc2, + 0x26, 0x24, 0x42, 0x5b, 0x64, 0x24, 0x6c, 0xb6, 0x3d, 0xfa, 0x4f, 0x2b, 0x3f, 0x45, 0x4c, 0xb6, + 0x99, 0x90, 0x01, 0xc9, 0x6a, 0xab, 0xaa, 0x39, 0xf9, 0x2c, 0x7d, 0x9b, 0xf0, 0xc8, 0x7c, 0x80, + 0x10, 0x6b, 0x6b, 0x9e, 0xb6, 0xd3, 0xcf, 0x2e, 0x4a, 0xa7, 0xef, 0xdd, 0x99, 0x7e, 0x7a, 0xe0, + 0x1e, 0xab, 0x9a, 0x43, 0xbb, 0x63, 0x3d, 0xa0, 0x6f, 0x4b, 0x64, 0x61, 0xb1, 0xeb, 0x58, 0xd2, + 0xe3, 0x28, 0xed, 0xf1, 0x58, 0xdf, 0x1e, 0x03, 0x2d, 0xd6, 0xaf, 0xf5, 0xb9, 0xd7, 0x0f, 0x30, + 0x52, 0x76, 0xe4, 0x21, 0x5d, 0xff, 0xfa, 0xeb, 0x0f, 0xbc, 0x68, 0x03, 0x0b, 0xd0, 0x8b, 0x12, + 0x8c, 0x56, 0x5b, 0xab, 0xbc, 0xf8, 0x12, 0xcb, 0x73, 0xfc, 0x5f, 0x1b, 0xfa, 0x59, 0x1e, 0xd2, + 0x63, 0xb6, 0x9f, 0xfd, 0xdc, 0xeb, 0xd3, 0x27, 0x07, 0x36, 0x82, 0xa6, 0x20, 0x6a, 0x43, 0x67, + 0x9f, 0xe8, 0xf3, 0xd4, 0x8a, 0x32, 0x29, 0xe4, 0x35, 0x5c, 0x23, 0x56, 0x8c, 0xdd, 0xc7, 0x8a, + 0x90, 0x1e, 0xb3, 0xa2, 0x48, 0xa2, 0xfe, 0xc1, 0x2d, 0x09, 0xf1, 0xa1, 0x35, 0x18, 0x66, 0x1e, + 0xa6, 0x5f, 0xbd, 0xa5, 0x0f, 0x18, 0x86, 0xed, 0xc9, 0x51, 0x38, 0xcd, 0xd4, 0x79, 0x80, 0x76, + 0x8c, 0x21, 0x19, 0xe2, 0xd7, 0x71, 0x8b, 0x7f, 0xda, 0x48, 0x7e, 0xa2, 0xc9, 0xf6, 0xb7, 0xc7, + 0xd2, 0x5c, 0x82, 0x7f, 0x50, 0x5c, 0x8c, 0x9d, 0x97, 0xa6, 0x9e, 0x01, 0xb9, 0x3b, 0x56, 0x0e, + 0x84, 0x57, 0x00, 0xf5, 0xce, 0x58, 0x98, 0x21, 0xc9, 0x18, 0x1e, 0x0f, 0x33, 0x64, 0x4e, 0xca, + 0x6d, 0x9f, 0x5f, 0x31, 0x4c, 0xcf, 0xb6, 0x7a, 0x38, 0xbb, 0xfd, 0xff, 0xd3, 0x71, 0xce, 0x16, + 0x60, 0x98, 0x09, 0xc9, 0x58, 0x2a, 0xb4, 0x7c, 0xd0, 0x2a, 0xa7, 0xb0, 0x87, 0xd2, 0xca, 0x6b, + 0x77, 0x0b, 0x43, 0x3f, 0xb8, 0x5b, 0x18, 0xfa, 0xd7, 0xbb, 0x85, 0xa1, 0x37, 0xee, 0x16, 0xa4, + 0xb7, 0xee, 0x16, 0xa4, 0x77, 0xee, 0x16, 0xa4, 0xf7, 0xee, 0x16, 0xa4, 0xdb, 0x7b, 0x05, 0xe9, + 0xab, 0x7b, 0x05, 0xe9, 0x1b, 0x7b, 0x05, 0xe9, 0xbb, 0x7b, 0x05, 0xe9, 0x7b, 0x7b, 0x05, 0xe9, + 0xb5, 0xbd, 0x82, 0xf4, 0x83, 0xbd, 0x82, 0xf4, 0xc6, 0x5e, 0x41, 0x7a, 0x6b, 0xaf, 0x30, 0xf4, + 0xce, 0x5e, 0x41, 0x7a, 0x6f, 0xaf, 0x30, 0x74, 0xfb, 0x47, 0x85, 0xa1, 0xff, 0x0f, 0x00, 0x00, + 0xff, 0xff, 0x14, 0x69, 0x90, 0x72, 0x3e, 0x38, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -714,7 +721,7 @@ func (this *Wilson) Equal(that interface{}) bool { } type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt32Ptr() *int32 GetInt32() int32 GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type @@ -733,11 +740,11 @@ type CastawayFace interface { GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) Proto() proto.Message { return this } -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) TestProto() proto.Message { return NewCastawayFromFace(this) } @@ -827,15 +834,15 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { } type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt64() *int64 } -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) Proto() proto.Message { return this } -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) TestProto() proto.Message { return NewWilsonFromFace(this) } @@ -884,7 +891,7 @@ func (this *Castaway) GoString() string { for k := range this.MyMap { keysForMyMap = append(keysForMyMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) + sortkeys.Strings(keysForMyMap) mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" for _, k := range keysForMyMap { mapStringForMyMap += fmt.Sprintf("%#v: %#v,", k, this.MyMap[k]) @@ -897,7 +904,7 @@ func (this *Castaway) GoString() string { for k := range this.MyCustomMap { keysForMyCustomMap = append(keysForMyCustomMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) + sortkeys.Strings(keysForMyCustomMap) mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" for _, k := range keysForMyCustomMap { mapStringForMyCustomMap += fmt.Sprintf("%#v: %#v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) @@ -910,7 +917,7 @@ func (this *Castaway) GoString() string { for k := range this.MyNullableMap { keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) + sortkeys.Int32s(keysForMyNullableMap) mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" for _, k := range keysForMyNullableMap { mapStringForMyNullableMap += fmt.Sprintf("%#v: %#v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -923,7 +930,7 @@ func (this *Castaway) GoString() string { for k := range this.MyEmbeddedMap { keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) + sortkeys.Int32s(keysForMyEmbeddedMap) mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" for _, k := range keysForMyEmbeddedMap { mapStringForMyEmbeddedMap += fmt.Sprintf("%#v: %#v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -998,19 +1005,23 @@ func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { if m.MyFloat32Ptr != nil { dAtA[i] = 0x2d i++ - i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) + i += 4 } dAtA[i] = 0x35 i++ - i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(m.MyFloat32)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.MyFloat32)))) + i += 4 if m.MyFloat64Ptr != nil { dAtA[i] = 0x39 i++ - i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) + i += 8 } dAtA[i] = 0x41 i++ - i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(m.MyFloat64)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.MyFloat64)))) + i += 8 if m.MyBytes != nil { dAtA[i] = 0x4a i++ @@ -1154,24 +1165,6 @@ func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Casttype(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 encodeFixed32Casttype(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 encodeVarintCasttype(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1482,7 +1475,7 @@ func (this *Castaway) String() string { for k := range this.MyMap { keysForMyMap = append(keysForMyMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) + sortkeys.Strings(keysForMyMap) mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" for _, k := range keysForMyMap { mapStringForMyMap += fmt.Sprintf("%v: %v,", k, this.MyMap[k]) @@ -1492,7 +1485,7 @@ func (this *Castaway) String() string { for k := range this.MyCustomMap { keysForMyCustomMap = append(keysForMyCustomMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) + sortkeys.Strings(keysForMyCustomMap) mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" for _, k := range keysForMyCustomMap { mapStringForMyCustomMap += fmt.Sprintf("%v: %v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) @@ -1502,7 +1495,7 @@ func (this *Castaway) String() string { for k := range this.MyNullableMap { keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) + sortkeys.Int32s(keysForMyNullableMap) mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" for _, k := range keysForMyNullableMap { mapStringForMyNullableMap += fmt.Sprintf("%v: %v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -1512,7 +1505,7 @@ func (this *Castaway) String() string { for k := range this.MyEmbeddedMap { keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) + sortkeys.Int32s(keysForMyEmbeddedMap) mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" for _, k := range keysForMyEmbeddedMap { mapStringForMyEmbeddedMap += fmt.Sprintf("%v: %v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -1674,11 +1667,8 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) m.MyFloat32Ptr = &v2 case 6: @@ -1689,11 +1679,8 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) case 7: if wireType != 1 { @@ -1703,15 +1690,8 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) m.MyFloat64Ptr = &v2 case 8: @@ -1722,15 +1702,8 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) case 9: if wireType != 2 { @@ -1882,51 +1855,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthCasttype - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.MyMap == nil { m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -1936,31 +1872,69 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthCasttype + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipCasttype(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthCasttype + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.MyMap[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.MyMap[mapkey] = mapvalue } + m.MyMap[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -1988,51 +1962,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthCasttype - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.MyCustomMap == nil { m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey github_com_gogo_protobuf_test_casttype.MyStringType + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -2042,31 +1979,69 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthCasttype + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipCasttype(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthCasttype + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test_casttype.MyUint64Type - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = mapvalue } + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) iNdEx = postIndex case 14: if wireType != 2 { @@ -2094,41 +2069,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.MyNullableMap == nil { m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue *Wilson + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -2138,46 +2086,74 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipCasttype(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCasttype + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue - } else { - var mapvalue *Wilson - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -2205,41 +2181,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.MyEmbeddedMap == nil { m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := &Wilson{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -2249,46 +2198,74 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipCasttype(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCasttype + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue - } else { - var mapvalue Wilson - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue iNdEx = postIndex case 16: if wireType != 2 { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttypepb_test.go index a2b49f486..91b5b5076 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/both/casttypepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/casttype.proto -// DO NOT EDIT! /* Package casttype is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package casttype import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,13 +58,13 @@ func TestCastawayProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCastawayMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -78,7 +76,7 @@ func TestCastawayMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -93,7 +91,7 @@ func TestCastawayMarshalTo(t *testing.T) { } func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 10000) for i := 0; i < 10000; i++ { @@ -101,7 +99,7 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -111,11 +109,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } @@ -125,7 +123,7 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -134,14 +132,14 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -162,13 +160,13 @@ func TestWilsonProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestWilsonMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -180,7 +178,7 @@ func TestWilsonMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -195,7 +193,7 @@ func TestWilsonMarshalTo(t *testing.T) { } func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 10000) for i := 0; i < 10000; i++ { @@ -203,7 +201,7 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -213,11 +211,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } @@ -227,7 +225,7 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -236,15 +234,15 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { func TestCastawayJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -257,15 +255,15 @@ func TestCastawayJSON(t *testing.T) { } func TestWilsonJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -278,11 +276,11 @@ func TestWilsonJSON(t *testing.T) { } func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -295,11 +293,11 @@ func TestCastawayProtoText(t *testing.T) { func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -312,11 +310,11 @@ func TestCastawayProtoCompactText(t *testing.T) { func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -329,11 +327,11 @@ func TestWilsonProtoText(t *testing.T) { func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -348,14 +346,14 @@ func TestCasttypeDescription(t *testing.T) { CasttypeDescription() } func TestCastawayVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -363,14 +361,14 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -378,7 +376,7 @@ func TestWilsonVerboseEqual(t *testing.T) { } } func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -386,7 +384,7 @@ func TestCastawayFace(t *testing.T) { } } func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -394,37 +392,37 @@ func TestWilsonFace(t *testing.T) { } } func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCastawaySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -435,14 +433,14 @@ func TestCastawaySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 1000) for i := 0; i < 1000; i++ { @@ -457,10 +455,10 @@ func BenchmarkCastawaySize(b *testing.B) { func TestWilsonSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -471,14 +469,14 @@ func TestWilsonSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 1000) for i := 0; i < 1000; i++ { @@ -492,7 +490,7 @@ func BenchmarkWilsonSize(b *testing.B) { } func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -501,7 +499,7 @@ func TestCastawayStringer(t *testing.T) { } } func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go index 3ac389e43..484a003d5 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttype.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/casttype.proto -// DO NOT EDIT! /* Package casttype is a generated protocol buffer package. @@ -21,15 +20,16 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -79,285 +79,292 @@ func init() { proto.RegisterType((*Castaway)(nil), "casttype.Castaway") proto.RegisterType((*Wilson)(nil), "casttype.Wilson") } -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Castaway) Description() (desc *descriptor.FileDescriptorSet) { return CasttypeDescription() } -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Wilson) Description() (desc *descriptor.FileDescriptorSet) { return CasttypeDescription() } -func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func CasttypeDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4123 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0x4b, 0x10, 0x1d, 0x83, 0x14, 0xfd, - 0x47, 0xdb, 0x09, 0xe5, 0xd1, 0x9f, 0x65, 0x28, 0xb1, 0x07, 0x20, 0x21, 0x06, 0x2a, 0x41, 0x20, - 0x4b, 0x32, 0x92, 0xdc, 0xce, 0xec, 0x2c, 0x17, 0x97, 0xe0, 0x4a, 0x8b, 0x5d, 0x64, 0x77, 0x21, - 0x19, 0x7e, 0x52, 0xe3, 0xb6, 0x99, 0xb4, 0xd3, 0xff, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0xcd, 0x4c, - 0xeb, 0x34, 0xe9, 0x4f, 0xd2, 0x26, 0x69, 0xa6, 0x4f, 0x79, 0x49, 0xeb, 0xa7, 0x4e, 0xf2, 0xd6, - 0x87, 0x8e, 0x6c, 0x31, 0x9e, 0xa9, 0xd3, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x19, 0xf9, 0xa5, 0x73, - 0xff, 0x16, 0x8b, 0x1f, 0x72, 0x41, 0x65, 0x9c, 0x3c, 0x11, 0x7b, 0xee, 0xf9, 0xbe, 0x3d, 0xf7, - 0xdc, 0x73, 0xcf, 0x39, 0x7b, 0x77, 0x09, 0x3f, 0x3c, 0x07, 0x0b, 0x0d, 0xdb, 0x6e, 0x98, 0xf8, - 0x54, 0xcb, 0xb1, 0x3d, 0x7b, 0xa7, 0xbd, 0x7b, 0xaa, 0x8e, 0x5d, 0xdd, 0x31, 0x5a, 0x9e, 0xed, - 0x2c, 0x53, 0x19, 0x9a, 0x62, 0x1a, 0xcb, 0x42, 0x63, 0xb1, 0x02, 0xd3, 0x97, 0x0c, 0x13, 0xaf, - 0xfa, 0x8a, 0x9b, 0xd8, 0x43, 0x17, 0x20, 0xb6, 0x6b, 0x98, 0x38, 0x2b, 0x2d, 0x44, 0x97, 0x52, - 0xa7, 0x1f, 0x59, 0xee, 0x03, 0x2d, 0xf7, 0x22, 0x6a, 0x44, 0xac, 0x50, 0xc4, 0xe2, 0xdb, 0x31, - 0x98, 0x19, 0x32, 0x8a, 0x10, 0xc4, 0x2c, 0xad, 0x49, 0x18, 0xa5, 0xa5, 0xa4, 0x42, 0x7f, 0xa3, - 0x2c, 0x4c, 0xb4, 0x34, 0xfd, 0x86, 0xd6, 0xc0, 0xd9, 0x08, 0x15, 0x8b, 0x4b, 0x94, 0x03, 0xa8, - 0xe3, 0x16, 0xb6, 0xea, 0xd8, 0xd2, 0x3b, 0xd9, 0xe8, 0x42, 0x74, 0x29, 0xa9, 0x04, 0x24, 0xe8, - 0x29, 0x98, 0x6e, 0xb5, 0x77, 0x4c, 0x43, 0x57, 0x03, 0x6a, 0xb0, 0x10, 0x5d, 0x8a, 0x2b, 0x32, - 0x1b, 0x58, 0xed, 0x2a, 0x3f, 0x0e, 0x53, 0xb7, 0xb0, 0x76, 0x23, 0xa8, 0x9a, 0xa2, 0xaa, 0x19, - 0x22, 0x0e, 0x28, 0xae, 0x40, 0xba, 0x89, 0x5d, 0x57, 0x6b, 0x60, 0xd5, 0xeb, 0xb4, 0x70, 0x36, - 0x46, 0x67, 0xbf, 0x30, 0x30, 0xfb, 0xfe, 0x99, 0xa7, 0x38, 0x6a, 0xab, 0xd3, 0xc2, 0xa8, 0x00, - 0x49, 0x6c, 0xb5, 0x9b, 0x8c, 0x21, 0x7e, 0x80, 0xff, 0x4a, 0x56, 0xbb, 0xd9, 0xcf, 0x92, 0x20, - 0x30, 0x4e, 0x31, 0xe1, 0x62, 0xe7, 0xa6, 0xa1, 0xe3, 0xec, 0x38, 0x25, 0x78, 0x7c, 0x80, 0x60, - 0x93, 0x8d, 0xf7, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x24, 0x7e, 0xd1, 0xc3, 0x96, 0x6b, 0xd8, 0x56, - 0x76, 0x82, 0x92, 0x3c, 0x3a, 0x64, 0x15, 0xb1, 0x59, 0xef, 0xa7, 0xe8, 0xe2, 0xd0, 0x79, 0x98, - 0xb0, 0x5b, 0x9e, 0x61, 0x5b, 0x6e, 0x36, 0xb1, 0x20, 0x2d, 0xa5, 0x4e, 0x7f, 0x64, 0x68, 0x20, - 0x54, 0x99, 0x8e, 0x22, 0x94, 0x51, 0x19, 0x64, 0xd7, 0x6e, 0x3b, 0x3a, 0x56, 0x75, 0xbb, 0x8e, - 0x55, 0xc3, 0xda, 0xb5, 0xb3, 0x49, 0x4a, 0x30, 0x3f, 0x38, 0x11, 0xaa, 0xb8, 0x62, 0xd7, 0x71, - 0xd9, 0xda, 0xb5, 0x95, 0x8c, 0xdb, 0x73, 0x8d, 0x8e, 0xc1, 0xb8, 0xdb, 0xb1, 0x3c, 0xed, 0xc5, - 0x6c, 0x9a, 0x46, 0x08, 0xbf, 0x5a, 0xfc, 0xbf, 0x38, 0x4c, 0x8d, 0x12, 0x62, 0x17, 0x21, 0xbe, - 0x4b, 0x66, 0x99, 0x8d, 0x1c, 0xc5, 0x07, 0x0c, 0xd3, 0xeb, 0xc4, 0xf1, 0xfb, 0x74, 0x62, 0x01, - 0x52, 0x16, 0x76, 0x3d, 0x5c, 0x67, 0x11, 0x11, 0x1d, 0x31, 0xa6, 0x80, 0x81, 0x06, 0x43, 0x2a, - 0x76, 0x5f, 0x21, 0x75, 0x15, 0xa6, 0x7c, 0x93, 0x54, 0x47, 0xb3, 0x1a, 0x22, 0x36, 0x4f, 0x85, - 0x59, 0xb2, 0x5c, 0x12, 0x38, 0x85, 0xc0, 0x94, 0x0c, 0xee, 0xb9, 0x46, 0xab, 0x00, 0xb6, 0x85, - 0xed, 0x5d, 0xb5, 0x8e, 0x75, 0x33, 0x9b, 0x38, 0xc0, 0x4b, 0x55, 0xa2, 0x32, 0xe0, 0x25, 0x9b, - 0x49, 0x75, 0x13, 0x3d, 0xdb, 0x0d, 0xb5, 0x89, 0x03, 0x22, 0xa5, 0xc2, 0x36, 0xd9, 0x40, 0xb4, - 0x6d, 0x43, 0xc6, 0xc1, 0x24, 0xee, 0x71, 0x9d, 0xcf, 0x2c, 0x49, 0x8d, 0x58, 0x0e, 0x9d, 0x99, - 0xc2, 0x61, 0x6c, 0x62, 0x93, 0x4e, 0xf0, 0x12, 0x3d, 0x0c, 0xbe, 0x40, 0xa5, 0x61, 0x05, 0x34, - 0x0b, 0xa5, 0x85, 0x70, 0x43, 0x6b, 0xe2, 0xb9, 0x0b, 0x90, 0xe9, 0x75, 0x0f, 0x9a, 0x85, 0xb8, - 0xeb, 0x69, 0x8e, 0x47, 0xa3, 0x30, 0xae, 0xb0, 0x0b, 0x24, 0x43, 0x14, 0x5b, 0x75, 0x9a, 0xe5, - 0xe2, 0x0a, 0xf9, 0x39, 0xf7, 0x0c, 0x4c, 0xf6, 0xdc, 0x7e, 0x54, 0xe0, 0xe2, 0x17, 0xc6, 0x61, - 0x76, 0x58, 0xcc, 0x0d, 0x0d, 0xff, 0x63, 0x30, 0x6e, 0xb5, 0x9b, 0x3b, 0xd8, 0xc9, 0x46, 0x29, - 0x03, 0xbf, 0x42, 0x05, 0x88, 0x9b, 0xda, 0x0e, 0x36, 0xb3, 0xb1, 0x05, 0x69, 0x29, 0x73, 0xfa, - 0xa9, 0x91, 0xa2, 0x7a, 0x79, 0x9d, 0x40, 0x14, 0x86, 0x44, 0xcf, 0x41, 0x8c, 0xa7, 0x38, 0xc2, - 0xf0, 0xe4, 0x68, 0x0c, 0x24, 0x16, 0x15, 0x8a, 0x43, 0x0f, 0x42, 0x92, 0xfc, 0x65, 0xbe, 0x1d, - 0xa7, 0x36, 0x27, 0x88, 0x80, 0xf8, 0x15, 0xcd, 0x41, 0x82, 0x86, 0x59, 0x1d, 0x8b, 0xd2, 0xe0, - 0x5f, 0x93, 0x85, 0xa9, 0xe3, 0x5d, 0xad, 0x6d, 0x7a, 0xea, 0x4d, 0xcd, 0x6c, 0x63, 0x1a, 0x30, - 0x49, 0x25, 0xcd, 0x85, 0x9f, 0x26, 0x32, 0x34, 0x0f, 0x29, 0x16, 0x95, 0x86, 0x55, 0xc7, 0x2f, - 0xd2, 0xec, 0x13, 0x57, 0x58, 0xa0, 0x96, 0x89, 0x84, 0xdc, 0xfe, 0xba, 0x6b, 0x5b, 0x62, 0x69, - 0xe9, 0x2d, 0x88, 0x80, 0xde, 0xfe, 0x99, 0xfe, 0xc4, 0xf7, 0xd0, 0xf0, 0xe9, 0xf5, 0xc7, 0xe2, - 0xe2, 0xb7, 0x23, 0x10, 0xa3, 0xfb, 0x6d, 0x0a, 0x52, 0x5b, 0xd7, 0x6a, 0x25, 0x75, 0xb5, 0xba, - 0x5d, 0x5c, 0x2f, 0xc9, 0x12, 0xca, 0x00, 0x50, 0xc1, 0xa5, 0xf5, 0x6a, 0x61, 0x4b, 0x8e, 0xf8, - 0xd7, 0xe5, 0x8d, 0xad, 0xf3, 0x67, 0xe5, 0xa8, 0x0f, 0xd8, 0x66, 0x82, 0x58, 0x50, 0xe1, 0xcc, - 0x69, 0x39, 0x8e, 0x64, 0x48, 0x33, 0x82, 0xf2, 0xd5, 0xd2, 0xea, 0xf9, 0xb3, 0xf2, 0x78, 0xaf, - 0xe4, 0xcc, 0x69, 0x79, 0x02, 0x4d, 0x42, 0x92, 0x4a, 0x8a, 0xd5, 0xea, 0xba, 0x9c, 0xf0, 0x39, - 0x37, 0xb7, 0x94, 0xf2, 0xc6, 0x9a, 0x9c, 0xf4, 0x39, 0xd7, 0x94, 0xea, 0x76, 0x4d, 0x06, 0x9f, - 0xa1, 0x52, 0xda, 0xdc, 0x2c, 0xac, 0x95, 0xe4, 0x94, 0xaf, 0x51, 0xbc, 0xb6, 0x55, 0xda, 0x94, - 0xd3, 0x3d, 0x66, 0x9d, 0x39, 0x2d, 0x4f, 0xfa, 0xb7, 0x28, 0x6d, 0x6c, 0x57, 0xe4, 0x0c, 0x9a, - 0x86, 0x49, 0x76, 0x0b, 0x61, 0xc4, 0x54, 0x9f, 0xe8, 0xfc, 0x59, 0x59, 0xee, 0x1a, 0xc2, 0x58, - 0xa6, 0x7b, 0x04, 0xe7, 0xcf, 0xca, 0x68, 0x71, 0x05, 0xe2, 0x34, 0xba, 0x10, 0x82, 0xcc, 0x7a, - 0xa1, 0x58, 0x5a, 0x57, 0xab, 0xb5, 0xad, 0x72, 0x75, 0xa3, 0xb0, 0x2e, 0x4b, 0x5d, 0x99, 0x52, - 0xfa, 0xd4, 0x76, 0x59, 0x29, 0xad, 0xca, 0x91, 0xa0, 0xac, 0x56, 0x2a, 0x6c, 0x95, 0x56, 0xe5, - 0xe8, 0xa2, 0x0e, 0xb3, 0xc3, 0xf2, 0xcc, 0xd0, 0x9d, 0x11, 0x58, 0xe2, 0xc8, 0x01, 0x4b, 0x4c, - 0xb9, 0x06, 0x96, 0xf8, 0xcb, 0x12, 0xcc, 0x0c, 0xc9, 0xb5, 0x43, 0x6f, 0xf2, 0x3c, 0xc4, 0x59, - 0x88, 0xb2, 0xea, 0xf3, 0xc4, 0xd0, 0xa4, 0x4d, 0x03, 0x76, 0xa0, 0x02, 0x51, 0x5c, 0xb0, 0x02, - 0x47, 0x0f, 0xa8, 0xc0, 0x84, 0x62, 0xc0, 0xc8, 0x97, 0x25, 0xc8, 0x1e, 0xc4, 0x1d, 0x92, 0x28, - 0x22, 0x3d, 0x89, 0xe2, 0x62, 0xbf, 0x01, 0x27, 0x0f, 0x9e, 0xc3, 0x80, 0x15, 0xaf, 0x4b, 0x70, - 0x6c, 0x78, 0xa3, 0x32, 0xd4, 0x86, 0xe7, 0x60, 0xbc, 0x89, 0xbd, 0x3d, 0x5b, 0x14, 0xeb, 0xc7, - 0x86, 0x94, 0x00, 0x32, 0xdc, 0xef, 0x2b, 0x8e, 0x0a, 0xd6, 0x90, 0xe8, 0x41, 0xdd, 0x06, 0xb3, - 0x66, 0xc0, 0xd2, 0xcf, 0x47, 0xe0, 0x81, 0xa1, 0xe4, 0x43, 0x0d, 0x7d, 0x08, 0xc0, 0xb0, 0x5a, - 0x6d, 0x8f, 0x15, 0x64, 0x96, 0x9f, 0x92, 0x54, 0x42, 0xf7, 0x3e, 0xc9, 0x3d, 0x6d, 0xcf, 0x1f, - 0x8f, 0xd2, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xa1, 0x6b, 0x68, 0x8c, 0x1a, 0x9a, 0x3b, 0x60, 0xa6, - 0x03, 0xb5, 0xee, 0x69, 0x90, 0x75, 0xd3, 0xc0, 0x96, 0xa7, 0xba, 0x9e, 0x83, 0xb5, 0xa6, 0x61, - 0x35, 0x68, 0x02, 0x4e, 0xe4, 0xe3, 0xbb, 0x9a, 0xe9, 0x62, 0x65, 0x8a, 0x0d, 0x6f, 0x8a, 0x51, - 0x82, 0xa0, 0x55, 0xc6, 0x09, 0x20, 0xc6, 0x7b, 0x10, 0x6c, 0xd8, 0x47, 0x2c, 0x7e, 0x6d, 0x02, - 0x52, 0x81, 0xb6, 0x0e, 0x9d, 0x84, 0xf4, 0x75, 0xed, 0xa6, 0xa6, 0x8a, 0x56, 0x9d, 0x79, 0x22, - 0x45, 0x64, 0x35, 0xde, 0xae, 0x3f, 0x0d, 0xb3, 0x54, 0xc5, 0x6e, 0x7b, 0xd8, 0x51, 0x75, 0x53, - 0x73, 0x5d, 0xea, 0xb4, 0x04, 0x55, 0x45, 0x64, 0xac, 0x4a, 0x86, 0x56, 0xc4, 0x08, 0x3a, 0x07, - 0x33, 0x14, 0xd1, 0x6c, 0x9b, 0x9e, 0xd1, 0x32, 0xb1, 0x4a, 0x1e, 0x1e, 0x5c, 0x9a, 0x88, 0x7d, - 0xcb, 0xa6, 0x89, 0x46, 0x85, 0x2b, 0x10, 0x8b, 0x5c, 0xb4, 0x0a, 0x0f, 0x51, 0x58, 0x03, 0x5b, - 0xd8, 0xd1, 0x3c, 0xac, 0xe2, 0xcf, 0xb4, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xae, 0xee, 0x69, 0xee, - 0x5e, 0x76, 0x96, 0x10, 0x14, 0x23, 0x59, 0x49, 0x39, 0x41, 0x14, 0xd7, 0xb8, 0x5e, 0x89, 0xaa, - 0x15, 0xac, 0xfa, 0x27, 0x35, 0x77, 0x0f, 0xe5, 0xe1, 0x18, 0x65, 0x71, 0x3d, 0xc7, 0xb0, 0x1a, - 0xaa, 0xbe, 0x87, 0xf5, 0x1b, 0x6a, 0xdb, 0xdb, 0xbd, 0x90, 0x7d, 0x30, 0x78, 0x7f, 0x6a, 0xe1, - 0x26, 0xd5, 0x59, 0x21, 0x2a, 0xdb, 0xde, 0xee, 0x05, 0xb4, 0x09, 0x69, 0xb2, 0x18, 0x4d, 0xe3, - 0x25, 0xac, 0xee, 0xda, 0x0e, 0xad, 0x2c, 0x99, 0x21, 0x3b, 0x3b, 0xe0, 0xc1, 0xe5, 0x2a, 0x07, - 0x54, 0xec, 0x3a, 0xce, 0xc7, 0x37, 0x6b, 0xa5, 0xd2, 0xaa, 0x92, 0x12, 0x2c, 0x97, 0x6c, 0x87, - 0x04, 0x54, 0xc3, 0xf6, 0x1d, 0x9c, 0x62, 0x01, 0xd5, 0xb0, 0x85, 0x7b, 0xcf, 0xc1, 0x8c, 0xae, - 0xb3, 0x39, 0x1b, 0xba, 0xca, 0x5b, 0x7c, 0x37, 0x2b, 0xf7, 0x38, 0x4b, 0xd7, 0xd7, 0x98, 0x02, - 0x8f, 0x71, 0x17, 0x3d, 0x0b, 0x0f, 0x74, 0x9d, 0x15, 0x04, 0x4e, 0x0f, 0xcc, 0xb2, 0x1f, 0x7a, - 0x0e, 0x66, 0x5a, 0x9d, 0x41, 0x20, 0xea, 0xb9, 0x63, 0xab, 0xd3, 0x0f, 0x7b, 0x94, 0x3e, 0xb6, - 0x39, 0x58, 0xd7, 0x3c, 0x5c, 0xcf, 0x1e, 0x0f, 0x6a, 0x07, 0x06, 0xd0, 0x29, 0x90, 0x75, 0x5d, - 0xc5, 0x96, 0xb6, 0x63, 0x62, 0x55, 0x73, 0xb0, 0xa5, 0xb9, 0xd9, 0xf9, 0xa0, 0x72, 0x46, 0xd7, - 0x4b, 0x74, 0xb4, 0x40, 0x07, 0xd1, 0x93, 0x30, 0x6d, 0xef, 0x5c, 0xd7, 0x59, 0x64, 0xa9, 0x2d, - 0x07, 0xef, 0x1a, 0x2f, 0x66, 0x1f, 0xa1, 0x6e, 0x9a, 0x22, 0x03, 0x34, 0xae, 0x6a, 0x54, 0x8c, - 0x9e, 0x00, 0x59, 0x77, 0xf7, 0x34, 0xa7, 0x45, 0x4b, 0xbb, 0xdb, 0xd2, 0x74, 0x9c, 0x7d, 0x94, - 0xa9, 0x32, 0xf9, 0x86, 0x10, 0x93, 0xc8, 0x76, 0x6f, 0x19, 0xbb, 0x9e, 0x60, 0x7c, 0x9c, 0x45, - 0x36, 0x95, 0x71, 0xb6, 0xab, 0x30, 0xdb, 0xb6, 0x0c, 0xcb, 0xc3, 0x4e, 0xcb, 0xc1, 0xa4, 0x89, - 0x67, 0x3b, 0x31, 0xfb, 0x6f, 0x13, 0x07, 0xb4, 0xe1, 0xdb, 0x41, 0x6d, 0x16, 0x00, 0xca, 0x4c, - 0x7b, 0x50, 0xb8, 0x98, 0x87, 0x74, 0x30, 0x2e, 0x50, 0x12, 0x58, 0x64, 0xc8, 0x12, 0xa9, 0xb1, - 0x2b, 0xd5, 0x55, 0x52, 0x1d, 0x5f, 0x28, 0xc9, 0x11, 0x52, 0xa5, 0xd7, 0xcb, 0x5b, 0x25, 0x55, - 0xd9, 0xde, 0xd8, 0x2a, 0x57, 0x4a, 0x72, 0xf4, 0xc9, 0x64, 0xe2, 0x9d, 0x09, 0xf9, 0xf6, 0xed, - 0xdb, 0xb7, 0x23, 0x8b, 0xdf, 0x8b, 0x40, 0xa6, 0xb7, 0x33, 0x46, 0x1f, 0x87, 0xe3, 0xe2, 0x31, - 0xd6, 0xc5, 0x9e, 0x7a, 0xcb, 0x70, 0x68, 0xa8, 0x36, 0x35, 0xd6, 0x5b, 0xfa, 0x5e, 0x9e, 0xe5, - 0x5a, 0x9b, 0xd8, 0xbb, 0x62, 0x38, 0x24, 0x10, 0x9b, 0x9a, 0x87, 0xd6, 0x61, 0xde, 0xb2, 0x55, - 0xd7, 0xd3, 0xac, 0xba, 0xe6, 0xd4, 0xd5, 0xee, 0x01, 0x82, 0xaa, 0xe9, 0x3a, 0x76, 0x5d, 0x9b, - 0x95, 0x08, 0x9f, 0xe5, 0x23, 0x96, 0xbd, 0xc9, 0x95, 0xbb, 0xb9, 0xb3, 0xc0, 0x55, 0xfb, 0x22, - 0x22, 0x7a, 0x50, 0x44, 0x3c, 0x08, 0xc9, 0xa6, 0xd6, 0x52, 0xb1, 0xe5, 0x39, 0x1d, 0xda, 0xcf, - 0x25, 0x94, 0x44, 0x53, 0x6b, 0x95, 0xc8, 0xf5, 0x87, 0xb7, 0x06, 0x41, 0x3f, 0xfe, 0x6b, 0x14, - 0xd2, 0xc1, 0x9e, 0x8e, 0xb4, 0xc8, 0x3a, 0xcd, 0xdf, 0x12, 0xdd, 0xe1, 0x0f, 0x1f, 0xda, 0x01, - 0x2e, 0xaf, 0x90, 0xc4, 0x9e, 0x1f, 0x67, 0x9d, 0x96, 0xc2, 0x90, 0xa4, 0xa8, 0x92, 0x3d, 0x8d, - 0x59, 0xff, 0x9e, 0x50, 0xf8, 0x15, 0x5a, 0x83, 0xf1, 0xeb, 0x2e, 0xe5, 0x1e, 0xa7, 0xdc, 0x8f, - 0x1c, 0xce, 0x7d, 0x79, 0x93, 0x92, 0x27, 0x2f, 0x6f, 0xaa, 0x1b, 0x55, 0xa5, 0x52, 0x58, 0x57, - 0x38, 0x1c, 0x9d, 0x80, 0x98, 0xa9, 0xbd, 0xd4, 0xe9, 0x2d, 0x01, 0x54, 0x34, 0xaa, 0xe3, 0x4f, - 0x40, 0xec, 0x16, 0xd6, 0x6e, 0xf4, 0x26, 0x5e, 0x2a, 0xfa, 0x10, 0x43, 0xff, 0x14, 0xc4, 0xa9, - 0xbf, 0x10, 0x00, 0xf7, 0x98, 0x3c, 0x86, 0x12, 0x10, 0x5b, 0xa9, 0x2a, 0x24, 0xfc, 0x65, 0x48, - 0x33, 0xa9, 0x5a, 0x2b, 0x97, 0x56, 0x4a, 0x72, 0x64, 0xf1, 0x1c, 0x8c, 0x33, 0x27, 0x90, 0xad, - 0xe1, 0xbb, 0x41, 0x1e, 0xe3, 0x97, 0x9c, 0x43, 0x12, 0xa3, 0xdb, 0x95, 0x62, 0x49, 0x91, 0x23, - 0xc1, 0xe5, 0x75, 0x21, 0x1d, 0x6c, 0xe7, 0x7e, 0x36, 0x31, 0xf5, 0x0f, 0x12, 0xa4, 0x02, 0xed, - 0x19, 0x69, 0x0c, 0x34, 0xd3, 0xb4, 0x6f, 0xa9, 0x9a, 0x69, 0x68, 0x2e, 0x0f, 0x0a, 0xa0, 0xa2, - 0x02, 0x91, 0x8c, 0xba, 0x68, 0x3f, 0x13, 0xe3, 0x5f, 0x93, 0x40, 0xee, 0x6f, 0xed, 0xfa, 0x0c, - 0x94, 0x7e, 0xae, 0x06, 0xbe, 0x2a, 0x41, 0xa6, 0xb7, 0x9f, 0xeb, 0x33, 0xef, 0xe4, 0xcf, 0xd5, - 0xbc, 0xb7, 0x22, 0x30, 0xd9, 0xd3, 0xc5, 0x8d, 0x6a, 0xdd, 0x67, 0x60, 0xda, 0xa8, 0xe3, 0x66, - 0xcb, 0xf6, 0xb0, 0xa5, 0x77, 0x54, 0x13, 0xdf, 0xc4, 0x66, 0x76, 0x91, 0x26, 0x8a, 0x53, 0x87, - 0xf7, 0x89, 0xcb, 0xe5, 0x2e, 0x6e, 0x9d, 0xc0, 0xf2, 0x33, 0xe5, 0xd5, 0x52, 0xa5, 0x56, 0xdd, - 0x2a, 0x6d, 0xac, 0x5c, 0x53, 0xb7, 0x37, 0x7e, 0x61, 0xa3, 0x7a, 0x65, 0x43, 0x91, 0x8d, 0x3e, - 0xb5, 0x0f, 0x71, 0xab, 0xd7, 0x40, 0xee, 0x37, 0x0a, 0x1d, 0x87, 0x61, 0x66, 0xc9, 0x63, 0x68, - 0x06, 0xa6, 0x36, 0xaa, 0xea, 0x66, 0x79, 0xb5, 0xa4, 0x96, 0x2e, 0x5d, 0x2a, 0xad, 0x6c, 0x6d, - 0xb2, 0x07, 0x67, 0x5f, 0x7b, 0xab, 0x77, 0x53, 0xbf, 0x12, 0x85, 0x99, 0x21, 0x96, 0xa0, 0x02, - 0xef, 0xd9, 0xd9, 0x63, 0xc4, 0xc7, 0x46, 0xb1, 0x7e, 0x99, 0x74, 0x05, 0x35, 0xcd, 0xf1, 0x78, - 0x8b, 0xff, 0x04, 0x10, 0x2f, 0x59, 0x9e, 0xb1, 0x6b, 0x60, 0x87, 0x9f, 0x33, 0xb0, 0x46, 0x7e, - 0xaa, 0x2b, 0x67, 0x47, 0x0d, 0x1f, 0x05, 0xd4, 0xb2, 0x5d, 0xc3, 0x33, 0x6e, 0x62, 0xd5, 0xb0, - 0xc4, 0xa1, 0x04, 0x69, 0xec, 0x63, 0x8a, 0x2c, 0x46, 0xca, 0x96, 0xe7, 0x6b, 0x5b, 0xb8, 0xa1, - 0xf5, 0x69, 0x93, 0x04, 0x1e, 0x55, 0x64, 0x31, 0xe2, 0x6b, 0x9f, 0x84, 0x74, 0xdd, 0x6e, 0x93, - 0x36, 0x89, 0xe9, 0x91, 0x7a, 0x21, 0x29, 0x29, 0x26, 0xf3, 0x55, 0x78, 0x1f, 0xdb, 0x3d, 0x0d, - 0x49, 0x2b, 0x29, 0x26, 0x63, 0x2a, 0x8f, 0xc3, 0x94, 0xd6, 0x68, 0x38, 0x84, 0x5c, 0x10, 0xb1, - 0xce, 0x3c, 0xe3, 0x8b, 0xa9, 0xe2, 0xdc, 0x65, 0x48, 0x08, 0x3f, 0x90, 0x92, 0x4c, 0x3c, 0xa1, - 0xb6, 0xd8, 0x99, 0x54, 0x64, 0x29, 0xa9, 0x24, 0x2c, 0x31, 0x78, 0x12, 0xd2, 0x86, 0xab, 0x76, - 0x0f, 0x47, 0x23, 0x0b, 0x91, 0xa5, 0x84, 0x92, 0x32, 0x5c, 0xff, 0x34, 0x6c, 0xf1, 0xf5, 0x08, - 0x64, 0x7a, 0x0f, 0x77, 0xd1, 0x2a, 0x24, 0x4c, 0x5b, 0xd7, 0x68, 0x68, 0xb1, 0x37, 0x0b, 0x4b, - 0x21, 0xe7, 0xc1, 0xcb, 0xeb, 0x5c, 0x5f, 0xf1, 0x91, 0x73, 0xff, 0x2c, 0x41, 0x42, 0x88, 0xd1, - 0x31, 0x88, 0xb5, 0x34, 0x6f, 0x8f, 0xd2, 0xc5, 0x8b, 0x11, 0x59, 0x52, 0xe8, 0x35, 0x91, 0xbb, - 0x2d, 0xcd, 0xa2, 0x21, 0xc0, 0xe5, 0xe4, 0x9a, 0xac, 0xab, 0x89, 0xb5, 0x3a, 0x6d, 0xfb, 0xed, - 0x66, 0x13, 0x5b, 0x9e, 0x2b, 0xd6, 0x95, 0xcb, 0x57, 0xb8, 0x18, 0x3d, 0x05, 0xd3, 0x9e, 0xa3, - 0x19, 0x66, 0x8f, 0x6e, 0x8c, 0xea, 0xca, 0x62, 0xc0, 0x57, 0xce, 0xc3, 0x09, 0xc1, 0x5b, 0xc7, - 0x9e, 0xa6, 0xef, 0xe1, 0x7a, 0x17, 0x34, 0x4e, 0x4f, 0x0e, 0x8f, 0x73, 0x85, 0x55, 0x3e, 0x2e, - 0xb0, 0x8b, 0x3f, 0x90, 0x60, 0x5a, 0x3c, 0xa8, 0xd4, 0x7d, 0x67, 0x55, 0x00, 0x34, 0xcb, 0xb2, - 0xbd, 0xa0, 0xbb, 0x06, 0x43, 0x79, 0x00, 0xb7, 0x5c, 0xf0, 0x41, 0x4a, 0x80, 0x60, 0xae, 0x09, - 0xd0, 0x1d, 0x39, 0xd0, 0x6d, 0xf3, 0x90, 0xe2, 0x27, 0xf7, 0xf4, 0xf5, 0x0f, 0x7b, 0xb4, 0x05, - 0x26, 0x22, 0x4f, 0x34, 0x68, 0x16, 0xe2, 0x3b, 0xb8, 0x61, 0x58, 0xfc, 0x3c, 0x91, 0x5d, 0x88, - 0x53, 0xca, 0x98, 0x7f, 0x4a, 0x59, 0xbc, 0x0a, 0x33, 0xba, 0xdd, 0xec, 0x37, 0xb7, 0x28, 0xf7, - 0x3d, 0x5e, 0xbb, 0x9f, 0x94, 0x5e, 0x80, 0x6e, 0x8b, 0xf9, 0xe5, 0x48, 0x74, 0xad, 0x56, 0xfc, - 0x6a, 0x64, 0x6e, 0x8d, 0xe1, 0x6a, 0x62, 0x9a, 0x0a, 0xde, 0x35, 0xb1, 0x4e, 0x4c, 0x87, 0x1f, - 0x3f, 0x06, 0x1f, 0x6b, 0x18, 0xde, 0x5e, 0x7b, 0x67, 0x59, 0xb7, 0x9b, 0xa7, 0x1a, 0x76, 0xc3, - 0xee, 0xbe, 0xee, 0x22, 0x57, 0xf4, 0x82, 0xfe, 0xe2, 0xaf, 0xbc, 0x92, 0xbe, 0x74, 0x2e, 0xf4, - 0xfd, 0x58, 0x7e, 0x03, 0x66, 0xb8, 0xb2, 0x4a, 0xcf, 0xdc, 0xd9, 0xa3, 0x01, 0x3a, 0xf4, 0xdc, - 0x25, 0xfb, 0x8d, 0xb7, 0x69, 0xad, 0x56, 0xa6, 0x39, 0x94, 0x8c, 0xb1, 0x07, 0x88, 0xbc, 0x02, - 0x0f, 0xf4, 0xf0, 0xb1, 0x7d, 0x89, 0x9d, 0x10, 0xc6, 0xef, 0x71, 0xc6, 0x99, 0x00, 0xe3, 0x26, - 0x87, 0xe6, 0x57, 0x60, 0xf2, 0x28, 0x5c, 0xff, 0xc8, 0xb9, 0xd2, 0x38, 0x48, 0xb2, 0x06, 0x53, - 0x94, 0x44, 0x6f, 0xbb, 0x9e, 0xdd, 0xa4, 0x49, 0xef, 0x70, 0x9a, 0x7f, 0x7a, 0x9b, 0x6d, 0x94, - 0x0c, 0x81, 0xad, 0xf8, 0xa8, 0x7c, 0x1e, 0xe8, 0x6b, 0x86, 0x3a, 0xd6, 0xcd, 0x10, 0x86, 0x37, - 0xb8, 0x21, 0xbe, 0x7e, 0xfe, 0xd3, 0x30, 0x4b, 0x7e, 0xd3, 0x9c, 0x14, 0xb4, 0x24, 0xfc, 0x94, - 0x29, 0xfb, 0x83, 0x97, 0xd9, 0x5e, 0x9c, 0xf1, 0x09, 0x02, 0x36, 0x05, 0x56, 0xb1, 0x81, 0x3d, - 0x0f, 0x3b, 0xae, 0xaa, 0x99, 0xc3, 0xcc, 0x0b, 0x3c, 0xa6, 0x67, 0xbf, 0xf8, 0x6e, 0xef, 0x2a, - 0xae, 0x31, 0x64, 0xc1, 0x34, 0xf3, 0xdb, 0x70, 0x7c, 0x48, 0x54, 0x8c, 0xc0, 0xf9, 0x0a, 0xe7, - 0x9c, 0x1d, 0x88, 0x0c, 0x42, 0x5b, 0x03, 0x21, 0xf7, 0xd7, 0x72, 0x04, 0xce, 0x3f, 0xe2, 0x9c, - 0x88, 0x63, 0xc5, 0x92, 0x12, 0xc6, 0xcb, 0x30, 0x7d, 0x13, 0x3b, 0x3b, 0xb6, 0xcb, 0x8f, 0x46, - 0x46, 0xa0, 0x7b, 0x95, 0xd3, 0x4d, 0x71, 0x20, 0x3d, 0x2b, 0x21, 0x5c, 0xcf, 0x42, 0x62, 0x57, - 0xd3, 0xf1, 0x08, 0x14, 0x5f, 0xe2, 0x14, 0x13, 0x44, 0x9f, 0x40, 0x0b, 0x90, 0x6e, 0xd8, 0xbc, - 0x2c, 0x85, 0xc3, 0x5f, 0xe3, 0xf0, 0x94, 0xc0, 0x70, 0x8a, 0x96, 0xdd, 0x6a, 0x9b, 0xa4, 0x66, - 0x85, 0x53, 0xfc, 0xb1, 0xa0, 0x10, 0x18, 0x4e, 0x71, 0x04, 0xb7, 0xfe, 0x89, 0xa0, 0x70, 0x03, - 0xfe, 0x7c, 0x1e, 0x52, 0xb6, 0x65, 0x76, 0x6c, 0x6b, 0x14, 0x23, 0xfe, 0x94, 0x33, 0x00, 0x87, - 0x10, 0x82, 0x8b, 0x90, 0x1c, 0x75, 0x21, 0xfe, 0xec, 0x5d, 0xb1, 0x3d, 0xc4, 0x0a, 0xac, 0xc1, - 0x94, 0x48, 0x50, 0x86, 0x6d, 0x8d, 0x40, 0xf1, 0xe7, 0x9c, 0x22, 0x13, 0x80, 0xf1, 0x69, 0x78, - 0xd8, 0xf5, 0x1a, 0x78, 0x14, 0x92, 0xd7, 0xc5, 0x34, 0x38, 0x84, 0xbb, 0x72, 0x07, 0x5b, 0xfa, - 0xde, 0x68, 0x0c, 0x5f, 0x11, 0xae, 0x14, 0x18, 0x42, 0xb1, 0x02, 0x93, 0x4d, 0xcd, 0x71, 0xf7, - 0x34, 0x73, 0xa4, 0xe5, 0xf8, 0x0b, 0xce, 0x91, 0xf6, 0x41, 0xdc, 0x23, 0x6d, 0xeb, 0x28, 0x34, - 0x5f, 0x15, 0x1e, 0x09, 0xc0, 0xf8, 0xd6, 0x73, 0x3d, 0x7a, 0x00, 0x75, 0x14, 0xb6, 0xaf, 0x89, - 0xad, 0xc7, 0xb0, 0x95, 0x20, 0xe3, 0x45, 0x48, 0xba, 0xc6, 0x4b, 0x23, 0xd1, 0xfc, 0xa5, 0x58, - 0x69, 0x0a, 0x20, 0xe0, 0x6b, 0x70, 0x62, 0x68, 0x99, 0x18, 0x81, 0xec, 0xaf, 0x38, 0xd9, 0xb1, - 0x21, 0xa5, 0x82, 0xa7, 0x84, 0xa3, 0x52, 0xfe, 0xb5, 0x48, 0x09, 0xb8, 0x8f, 0xab, 0x46, 0x1e, - 0x14, 0x5c, 0x6d, 0xf7, 0x68, 0x5e, 0xfb, 0x1b, 0xe1, 0x35, 0x86, 0xed, 0xf1, 0xda, 0x16, 0x1c, - 0xe3, 0x8c, 0x47, 0x5b, 0xd7, 0xaf, 0x8b, 0xc4, 0xca, 0xd0, 0xdb, 0xbd, 0xab, 0xfb, 0x8b, 0x30, - 0xe7, 0xbb, 0x53, 0x74, 0xa4, 0xae, 0xda, 0xd4, 0x5a, 0x23, 0x30, 0x7f, 0x83, 0x33, 0x8b, 0x8c, - 0xef, 0xb7, 0xb4, 0x6e, 0x45, 0x6b, 0x11, 0xf2, 0xab, 0x90, 0x15, 0xe4, 0x6d, 0xcb, 0xc1, 0xba, - 0xdd, 0xb0, 0x8c, 0x97, 0x70, 0x7d, 0x04, 0xea, 0xbf, 0xed, 0x5b, 0xaa, 0xed, 0x00, 0x9c, 0x30, - 0x97, 0x41, 0xf6, 0x7b, 0x15, 0xd5, 0x68, 0xb6, 0x6c, 0xc7, 0x0b, 0x61, 0xfc, 0x3b, 0xb1, 0x52, - 0x3e, 0xae, 0x4c, 0x61, 0xf9, 0x12, 0x64, 0xe8, 0xe5, 0xa8, 0x21, 0xf9, 0x4d, 0x4e, 0x34, 0xd9, - 0x45, 0xf1, 0xc4, 0xa1, 0xdb, 0xcd, 0x96, 0xe6, 0x8c, 0x92, 0xff, 0xbe, 0x25, 0x12, 0x07, 0x87, - 0xf0, 0xc4, 0xe1, 0x75, 0x5a, 0x98, 0x54, 0xfb, 0x11, 0x18, 0xbe, 0x2d, 0x12, 0x87, 0xc0, 0x70, - 0x0a, 0xd1, 0x30, 0x8c, 0x40, 0xf1, 0xf7, 0x82, 0x42, 0x60, 0x08, 0xc5, 0xa7, 0xba, 0x85, 0xd6, - 0xc1, 0x0d, 0xc3, 0xf5, 0x1c, 0xd6, 0x07, 0x1f, 0x4e, 0xf5, 0x9d, 0x77, 0x7b, 0x9b, 0x30, 0x25, - 0x00, 0xcd, 0x5f, 0x86, 0xa9, 0xbe, 0x16, 0x03, 0x85, 0x7d, 0xb3, 0x90, 0xfd, 0xe5, 0xf7, 0x79, - 0x32, 0xea, 0xed, 0x30, 0xf2, 0xeb, 0x64, 0xdd, 0x7b, 0xfb, 0x80, 0x70, 0xb2, 0x97, 0xdf, 0xf7, - 0x97, 0xbe, 0xa7, 0x0d, 0xc8, 0x5f, 0x82, 0xc9, 0x9e, 0x1e, 0x20, 0x9c, 0xea, 0x57, 0x38, 0x55, - 0x3a, 0xd8, 0x02, 0xe4, 0xcf, 0x41, 0x8c, 0xd4, 0xf3, 0x70, 0xf8, 0xaf, 0x72, 0x38, 0x55, 0xcf, - 0x7f, 0x02, 0x12, 0xa2, 0x8e, 0x87, 0x43, 0x7f, 0x8d, 0x43, 0x7d, 0x08, 0x81, 0x8b, 0x1a, 0x1e, - 0x0e, 0xff, 0x9c, 0x80, 0x0b, 0x08, 0x81, 0x8f, 0xee, 0xc2, 0xef, 0xfe, 0x46, 0x8c, 0xe7, 0x61, - 0xe1, 0xbb, 0x8b, 0x30, 0xc1, 0x8b, 0x77, 0x38, 0xfa, 0xf3, 0xfc, 0xe6, 0x02, 0x91, 0x7f, 0x06, - 0xe2, 0x23, 0x3a, 0xfc, 0x37, 0x39, 0x94, 0xe9, 0xe7, 0x57, 0x20, 0x15, 0x28, 0xd8, 0xe1, 0xf0, - 0xdf, 0xe2, 0xf0, 0x20, 0x8a, 0x98, 0xce, 0x0b, 0x76, 0x38, 0xc1, 0x6f, 0x0b, 0xd3, 0x39, 0x82, - 0xb8, 0x4d, 0xd4, 0xea, 0x70, 0xf4, 0xef, 0x08, 0xaf, 0x0b, 0x48, 0xfe, 0x79, 0x48, 0xfa, 0xf9, - 0x37, 0x1c, 0xff, 0xbb, 0x1c, 0xdf, 0xc5, 0x10, 0x0f, 0x04, 0xf2, 0x7f, 0x38, 0xc5, 0xef, 0x09, - 0x0f, 0x04, 0x50, 0x64, 0x1b, 0xf5, 0xd7, 0xf4, 0x70, 0xa6, 0xdf, 0x17, 0xdb, 0xa8, 0xaf, 0xa4, - 0x93, 0xd5, 0xa4, 0x69, 0x30, 0x9c, 0xe2, 0x0f, 0xc4, 0x6a, 0x52, 0x7d, 0x62, 0x46, 0x7f, 0x91, - 0x0c, 0xe7, 0xf8, 0x43, 0x61, 0x46, 0x5f, 0x8d, 0xcc, 0xd7, 0x00, 0x0d, 0x16, 0xc8, 0x70, 0xbe, - 0x2f, 0x70, 0xbe, 0xe9, 0x81, 0xfa, 0x98, 0xbf, 0x02, 0xc7, 0x86, 0x17, 0xc7, 0x70, 0xd6, 0x2f, - 0xbe, 0xdf, 0xf7, 0x38, 0x13, 0xac, 0x8d, 0xf9, 0xad, 0x6e, 0x96, 0x0d, 0x16, 0xc6, 0x70, 0xda, - 0x57, 0xde, 0xef, 0x4d, 0xb4, 0xc1, 0xba, 0x98, 0x2f, 0x00, 0x74, 0x6b, 0x52, 0x38, 0xd7, 0xab, - 0x9c, 0x2b, 0x00, 0x22, 0x5b, 0x83, 0x97, 0xa4, 0x70, 0xfc, 0x97, 0xc4, 0xd6, 0xe0, 0x08, 0xb2, - 0x35, 0x44, 0x35, 0x0a, 0x47, 0xbf, 0x26, 0xb6, 0x86, 0x80, 0xe4, 0x2f, 0x42, 0xc2, 0x6a, 0x9b, - 0x26, 0x89, 0x2d, 0x74, 0xf8, 0x67, 0x44, 0xd9, 0x1f, 0x7d, 0xc0, 0xc1, 0x02, 0x90, 0x3f, 0x07, - 0x71, 0xdc, 0xdc, 0xc1, 0xf5, 0x30, 0xe4, 0xbf, 0x7f, 0x20, 0xf2, 0x09, 0xd1, 0xce, 0x3f, 0x0f, - 0xc0, 0x1e, 0xa6, 0xe9, 0x5b, 0xa2, 0x10, 0xec, 0x7f, 0x7c, 0xc0, 0xbf, 0x50, 0xe8, 0x42, 0xba, - 0x04, 0xec, 0x7b, 0x87, 0xc3, 0x09, 0xde, 0xed, 0x25, 0xa0, 0x0f, 0xe0, 0xcf, 0xc2, 0xc4, 0x75, - 0xd7, 0xb6, 0x3c, 0xad, 0x11, 0x86, 0xfe, 0x4f, 0x8e, 0x16, 0xfa, 0xc4, 0x61, 0x4d, 0xdb, 0xc1, - 0x9e, 0xd6, 0x70, 0xc3, 0xb0, 0xff, 0xc5, 0xb1, 0x3e, 0x80, 0x80, 0x75, 0xcd, 0xf5, 0x46, 0x99, - 0xf7, 0x7f, 0x0b, 0xb0, 0x00, 0x10, 0xa3, 0xc9, 0xef, 0x1b, 0xb8, 0x13, 0x86, 0x7d, 0x4f, 0x18, - 0xcd, 0xf5, 0xf3, 0x9f, 0x80, 0x24, 0xf9, 0xc9, 0xbe, 0xda, 0x09, 0x01, 0xff, 0x0f, 0x07, 0x77, - 0x11, 0xe4, 0xce, 0xae, 0x57, 0xf7, 0x8c, 0x70, 0x67, 0xff, 0x2f, 0x5f, 0x69, 0xa1, 0x9f, 0x2f, - 0x40, 0xca, 0xf5, 0xea, 0xf5, 0x36, 0xef, 0x68, 0x42, 0xe0, 0x3f, 0xfe, 0xc0, 0x7f, 0xc8, 0xf5, - 0x31, 0xc5, 0x93, 0xc3, 0x0f, 0xeb, 0x60, 0xcd, 0x5e, 0xb3, 0xd9, 0x31, 0x1d, 0x7c, 0x73, 0x0a, - 0xe6, 0x75, 0xbb, 0xb9, 0x63, 0xbb, 0xa7, 0xfc, 0x44, 0x72, 0x4a, 0x38, 0x8e, 0x9f, 0xb3, 0xf9, - 0x8e, 0x9c, 0x3b, 0xda, 0x01, 0xdd, 0xe2, 0x8f, 0x26, 0x21, 0xb1, 0xa2, 0xb9, 0x9e, 0x76, 0x4b, - 0xeb, 0xa0, 0x47, 0x21, 0x51, 0xb6, 0xbc, 0x33, 0xa7, 0x6b, 0x9e, 0x43, 0x5f, 0x30, 0x45, 0x8b, - 0xc9, 0x7b, 0x77, 0xe6, 0xe3, 0x06, 0x91, 0x29, 0xfe, 0x10, 0x7a, 0x18, 0xe2, 0xf4, 0x37, 0x3d, - 0xa3, 0x8c, 0x16, 0x27, 0xdf, 0xb8, 0x33, 0x3f, 0xd6, 0xd5, 0x63, 0x63, 0xe8, 0x1a, 0xa4, 0x2a, - 0x9d, 0x6d, 0xc3, 0xf2, 0xce, 0x9f, 0x25, 0x74, 0x64, 0xea, 0xb1, 0xe2, 0x33, 0xf7, 0xee, 0xcc, - 0x9f, 0x39, 0xd0, 0x40, 0x52, 0x10, 0xbb, 0x13, 0x13, 0x68, 0xfa, 0xdd, 0x62, 0x90, 0x0b, 0x5d, - 0x81, 0x84, 0xb8, 0x64, 0x67, 0xfd, 0xc5, 0x8b, 0xdc, 0x84, 0xfb, 0xe2, 0xf6, 0xc9, 0xd0, 0x2f, - 0x41, 0xba, 0xd2, 0xb9, 0x64, 0xda, 0x1a, 0xf7, 0x41, 0x7c, 0x41, 0x5a, 0x8a, 0x14, 0x2f, 0xdc, - 0xbb, 0x33, 0x7f, 0x76, 0x64, 0x62, 0x0e, 0xa7, 0xcc, 0x3d, 0x6c, 0xe8, 0x05, 0x48, 0xfa, 0xd7, - 0xf4, 0x6d, 0x42, 0xa4, 0xf8, 0x71, 0x6e, 0xf7, 0xfd, 0xd1, 0x77, 0xe9, 0x02, 0x96, 0x33, 0x77, - 0x4f, 0x2c, 0x48, 0x4b, 0xd2, 0xfd, 0x58, 0xce, 0x7d, 0xd2, 0xc3, 0x16, 0xb0, 0xfc, 0xfc, 0x59, - 0xfa, 0xfa, 0x42, 0xba, 0x5f, 0xcb, 0x39, 0x7d, 0x97, 0x0e, 0x5d, 0x86, 0x89, 0x4a, 0xa7, 0xd8, - 0xf1, 0xb0, 0x4b, 0xbf, 0xe7, 0x49, 0x17, 0x9f, 0xbe, 0x77, 0x67, 0xfe, 0xa3, 0x23, 0xb2, 0x52, - 0x9c, 0x22, 0x08, 0xd0, 0x02, 0xa4, 0x36, 0x6c, 0xa7, 0xa9, 0x99, 0x8c, 0x0f, 0xd8, 0xeb, 0x98, - 0x80, 0x08, 0x6d, 0x93, 0x99, 0xb0, 0xd5, 0x76, 0xe9, 0x7f, 0x22, 0xfc, 0x14, 0x31, 0xd9, 0x65, - 0x42, 0x06, 0xc4, 0x2b, 0x9d, 0x8a, 0xd6, 0xca, 0xa6, 0xe9, 0xbb, 0x82, 0x87, 0x96, 0x7d, 0x84, - 0xd8, 0x5b, 0xcb, 0x74, 0x9c, 0x7e, 0x54, 0x51, 0x3c, 0x7b, 0xef, 0xce, 0xfc, 0xd3, 0x23, 0xdf, - 0xb1, 0xa2, 0xb5, 0xe8, 0xed, 0xd8, 0x1d, 0xd0, 0xb7, 0x24, 0xb2, 0xb1, 0xd8, 0x79, 0x2b, 0xb9, - 0xe3, 0x24, 0xbd, 0xe3, 0xc3, 0x43, 0xef, 0xe8, 0x6b, 0xb1, 0xfb, 0x5a, 0x9f, 0x7d, 0xf3, 0x08, - 0x33, 0x65, 0xcf, 0x34, 0xe4, 0xd6, 0xbf, 0xfe, 0xe6, 0x7d, 0x6f, 0x5a, 0xdf, 0x02, 0xf4, 0xb2, - 0x04, 0x93, 0x95, 0xce, 0x06, 0xaf, 0xae, 0xc4, 0xf2, 0x0c, 0xff, 0x5e, 0x7d, 0x98, 0xe5, 0x01, - 0x3d, 0x66, 0xfb, 0xf9, 0xcf, 0xbe, 0x39, 0x7f, 0x7a, 0x64, 0x23, 0x68, 0x0a, 0xa2, 0x36, 0xf4, - 0xde, 0x13, 0x7d, 0x8e, 0x5a, 0x51, 0x22, 0x95, 0xba, 0x8e, 0xeb, 0xc4, 0x8a, 0xa9, 0x43, 0xac, - 0x08, 0xe8, 0x31, 0x2b, 0xf2, 0x24, 0xea, 0xef, 0xdf, 0x92, 0x00, 0x1f, 0xaa, 0xc2, 0x38, 0xf3, - 0x30, 0xfd, 0x96, 0x2c, 0x79, 0xc4, 0x30, 0xec, 0x2e, 0x8e, 0xc2, 0x69, 0xe6, 0x2e, 0x00, 0x74, - 0x63, 0x0c, 0xc9, 0x10, 0xbd, 0x81, 0x3b, 0xfc, 0x83, 0x41, 0xf2, 0x13, 0xcd, 0x76, 0x3f, 0x88, - 0x95, 0x96, 0x62, 0xfc, 0x2b, 0xd7, 0x7c, 0xe4, 0x82, 0x34, 0xf7, 0x1c, 0xc8, 0xfd, 0xb1, 0x72, - 0x24, 0xbc, 0x02, 0x68, 0x70, 0xc5, 0x82, 0x0c, 0x71, 0xc6, 0xf0, 0x58, 0x90, 0x21, 0x75, 0x5a, - 0xee, 0xfa, 0xfc, 0x8a, 0x61, 0xba, 0xb6, 0x35, 0xc0, 0xd9, 0xef, 0xff, 0x9f, 0x8e, 0x73, 0x31, - 0x07, 0xe3, 0x4c, 0x48, 0xe6, 0x52, 0xa6, 0xe5, 0x83, 0x56, 0x39, 0x85, 0x5d, 0x14, 0xd7, 0xdf, - 0xb8, 0x9b, 0x1b, 0xfb, 0xfe, 0xdd, 0xdc, 0xd8, 0xbf, 0xdc, 0xcd, 0x8d, 0xbd, 0x75, 0x37, 0x27, - 0xbd, 0x73, 0x37, 0x27, 0xbd, 0x77, 0x37, 0x27, 0xfd, 0xe4, 0x6e, 0x4e, 0xba, 0xbd, 0x9f, 0x93, - 0xbe, 0xb2, 0x9f, 0x93, 0xbe, 0xbe, 0x9f, 0x93, 0xbe, 0xb3, 0x9f, 0x93, 0xbe, 0xbb, 0x9f, 0x93, - 0xde, 0xd8, 0xcf, 0x49, 0xdf, 0xdf, 0xcf, 0x8d, 0xbd, 0xb5, 0x9f, 0x93, 0xde, 0xd9, 0xcf, 0x8d, - 0xbd, 0xb7, 0x9f, 0x93, 0x7e, 0xb2, 0x9f, 0x1b, 0xbb, 0xfd, 0xc3, 0xdc, 0xd8, 0xff, 0x07, 0x00, - 0x00, 0xff, 0xff, 0x0f, 0x7e, 0x94, 0x4d, 0x13, 0x36, 0x00, 0x00, + // 4233 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xd7, + 0x79, 0xe6, 0xe2, 0x42, 0x02, 0x3f, 0x40, 0x70, 0x79, 0x48, 0x4b, 0x10, 0x1d, 0x83, 0x14, 0x65, + 0x5b, 0xb4, 0x9d, 0x50, 0x1e, 0xdd, 0x05, 0x25, 0x76, 0x09, 0x12, 0x62, 0xa0, 0x12, 0x24, 0xb3, + 0x24, 0x23, 0xcb, 0x69, 0x67, 0x67, 0xb9, 0x38, 0x04, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, 0x92, + 0xa1, 0xe9, 0x83, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0xde, 0x3b, 0x93, 0xc4, 0x75, 0xdc, 0xcb, 0x4c, + 0xeb, 0x34, 0xbd, 0x25, 0xcd, 0xa5, 0x69, 0x9f, 0xf2, 0x92, 0xd6, 0x4f, 0x9d, 0xe4, 0xad, 0x0f, + 0x1d, 0xd9, 0x62, 0x3c, 0x53, 0xa7, 0x75, 0x1b, 0xb7, 0xf5, 0x83, 0x47, 0x7e, 0xe9, 0x9c, 0xdb, + 0x62, 0x71, 0xa1, 0x16, 0x54, 0xc6, 0xce, 0x13, 0xb1, 0xff, 0xf9, 0xbf, 0xef, 0xfc, 0xe7, 0x3f, + 0xff, 0xf9, 0xff, 0x73, 0xce, 0x2e, 0xe1, 0x27, 0x17, 0x60, 0xa6, 0x6e, 0xdb, 0x75, 0x13, 0x9f, + 0x70, 0x5c, 0xdb, 0xb7, 0xb7, 0x9b, 0x3b, 0x27, 0x6a, 0xd8, 0xd3, 0x5d, 0xc3, 0xf1, 0x6d, 0x77, + 0x9e, 0xca, 0xd0, 0x18, 0xd3, 0x98, 0x17, 0x1a, 0xb3, 0x55, 0x18, 0xbf, 0x64, 0x98, 0x78, 0x29, + 0x50, 0xdc, 0xc0, 0x3e, 0x3a, 0x0f, 0x89, 0x1d, 0xc3, 0xc4, 0x79, 0x69, 0x26, 0x3e, 0x97, 0x39, + 0xf9, 0xe8, 0x7c, 0x17, 0x68, 0xbe, 0x13, 0xb1, 0x4e, 0xc4, 0x0a, 0x45, 0xcc, 0xbe, 0x99, 0x80, + 0x89, 0x3e, 0xad, 0x08, 0x41, 0xc2, 0xd2, 0x1a, 0x84, 0x51, 0x9a, 0x4b, 0x2b, 0xf4, 0x37, 0xca, + 0xc3, 0x88, 0xa3, 0xe9, 0xd7, 0xb5, 0x3a, 0xce, 0xc7, 0xa8, 0x58, 0x3c, 0xa2, 0x02, 0x40, 0x0d, + 0x3b, 0xd8, 0xaa, 0x61, 0x4b, 0x6f, 0xe5, 0xe3, 0x33, 0xf1, 0xb9, 0xb4, 0x12, 0x92, 0xa0, 0xa7, + 0x60, 0xdc, 0x69, 0x6e, 0x9b, 0x86, 0xae, 0x86, 0xd4, 0x60, 0x26, 0x3e, 0x97, 0x54, 0x64, 0xd6, + 0xb0, 0xd4, 0x56, 0x3e, 0x0e, 0x63, 0x37, 0xb1, 0x76, 0x3d, 0xac, 0x9a, 0xa1, 0xaa, 0x39, 0x22, + 0x0e, 0x29, 0x2e, 0x42, 0xb6, 0x81, 0x3d, 0x4f, 0xab, 0x63, 0xd5, 0x6f, 0x39, 0x38, 0x9f, 0xa0, + 0xa3, 0x9f, 0xe9, 0x19, 0x7d, 0xf7, 0xc8, 0x33, 0x1c, 0xb5, 0xd9, 0x72, 0x30, 0x5a, 0x80, 0x34, + 0xb6, 0x9a, 0x0d, 0xc6, 0x90, 0xdc, 0xc7, 0x7f, 0x65, 0xab, 0xd9, 0xe8, 0x66, 0x49, 0x11, 0x18, + 0xa7, 0x18, 0xf1, 0xb0, 0x7b, 0xc3, 0xd0, 0x71, 0x7e, 0x98, 0x12, 0x1c, 0xef, 0x21, 0xd8, 0x60, + 0xed, 0xdd, 0x1c, 0x02, 0x87, 0x16, 0x21, 0x8d, 0x5f, 0xf0, 0xb1, 0xe5, 0x19, 0xb6, 0x95, 0x1f, + 0xa1, 0x24, 0x8f, 0xf5, 0x99, 0x45, 0x6c, 0xd6, 0xba, 0x29, 0xda, 0x38, 0x74, 0x16, 0x46, 0x6c, + 0xc7, 0x37, 0x6c, 0xcb, 0xcb, 0xa7, 0x66, 0xa4, 0xb9, 0xcc, 0xc9, 0x8f, 0xf4, 0x0d, 0x84, 0x35, + 0xa6, 0xa3, 0x08, 0x65, 0x54, 0x01, 0xd9, 0xb3, 0x9b, 0xae, 0x8e, 0x55, 0xdd, 0xae, 0x61, 0xd5, + 0xb0, 0x76, 0xec, 0x7c, 0x9a, 0x12, 0x4c, 0xf7, 0x0e, 0x84, 0x2a, 0x2e, 0xda, 0x35, 0x5c, 0xb1, + 0x76, 0x6c, 0x25, 0xe7, 0x75, 0x3c, 0xa3, 0x43, 0x30, 0xec, 0xb5, 0x2c, 0x5f, 0x7b, 0x21, 0x9f, + 0xa5, 0x11, 0xc2, 0x9f, 0x66, 0xff, 0x61, 0x18, 0xc6, 0x06, 0x09, 0xb1, 0x8b, 0x90, 0xdc, 0x21, + 0xa3, 0xcc, 0xc7, 0x0e, 0xe2, 0x03, 0x86, 0xe9, 0x74, 0xe2, 0xf0, 0x03, 0x3a, 0x71, 0x01, 0x32, + 0x16, 0xf6, 0x7c, 0x5c, 0x63, 0x11, 0x11, 0x1f, 0x30, 0xa6, 0x80, 0x81, 0x7a, 0x43, 0x2a, 0xf1, + 0x40, 0x21, 0xf5, 0x1c, 0x8c, 0x05, 0x26, 0xa9, 0xae, 0x66, 0xd5, 0x45, 0x6c, 0x9e, 0x88, 0xb2, + 0x64, 0xbe, 0x2c, 0x70, 0x0a, 0x81, 0x29, 0x39, 0xdc, 0xf1, 0x8c, 0x96, 0x00, 0x6c, 0x0b, 0xdb, + 0x3b, 0x6a, 0x0d, 0xeb, 0x66, 0x3e, 0xb5, 0x8f, 0x97, 0xd6, 0x88, 0x4a, 0x8f, 0x97, 0x6c, 0x26, + 0xd5, 0x4d, 0x74, 0xa1, 0x1d, 0x6a, 0x23, 0xfb, 0x44, 0x4a, 0x95, 0x2d, 0xb2, 0x9e, 0x68, 0xdb, + 0x82, 0x9c, 0x8b, 0x49, 0xdc, 0xe3, 0x1a, 0x1f, 0x59, 0x9a, 0x1a, 0x31, 0x1f, 0x39, 0x32, 0x85, + 0xc3, 0xd8, 0xc0, 0x46, 0xdd, 0xf0, 0x23, 0x3a, 0x06, 0x81, 0x40, 0xa5, 0x61, 0x05, 0x34, 0x0b, + 0x65, 0x85, 0x70, 0x55, 0x6b, 0xe0, 0xa9, 0x5b, 0x90, 0xeb, 0x74, 0x0f, 0x9a, 0x84, 0xa4, 0xe7, + 0x6b, 0xae, 0x4f, 0xa3, 0x30, 0xa9, 0xb0, 0x07, 0x24, 0x43, 0x1c, 0x5b, 0x35, 0x9a, 0xe5, 0x92, + 0x0a, 0xf9, 0x89, 0x7e, 0xae, 0x3d, 0xe0, 0x38, 0x1d, 0xf0, 0xe3, 0xbd, 0x33, 0xda, 0xc1, 0xdc, + 0x3d, 0xee, 0xa9, 0x73, 0x30, 0xda, 0x31, 0x80, 0x41, 0xbb, 0x9e, 0xfd, 0x25, 0x78, 0xa8, 0x2f, + 0x35, 0x7a, 0x0e, 0x26, 0x9b, 0x96, 0x61, 0xf9, 0xd8, 0x75, 0x5c, 0x4c, 0x22, 0x96, 0x75, 0x95, + 0xff, 0xf7, 0x91, 0x7d, 0x62, 0x6e, 0x2b, 0xac, 0xcd, 0x58, 0x94, 0x89, 0x66, 0xaf, 0xf0, 0xc9, + 0x74, 0xea, 0xad, 0x11, 0xf9, 0xf6, 0xed, 0xdb, 0xb7, 0x63, 0xb3, 0x5f, 0x1a, 0x86, 0xc9, 0x7e, + 0x6b, 0xa6, 0xef, 0xf2, 0x3d, 0x04, 0xc3, 0x56, 0xb3, 0xb1, 0x8d, 0x5d, 0xea, 0xa4, 0xa4, 0xc2, + 0x9f, 0xd0, 0x02, 0x24, 0x4d, 0x6d, 0x1b, 0x9b, 0xf9, 0xc4, 0x8c, 0x34, 0x97, 0x3b, 0xf9, 0xd4, + 0x40, 0xab, 0x72, 0x7e, 0x85, 0x40, 0x14, 0x86, 0x44, 0xcf, 0x40, 0x82, 0xa7, 0x68, 0xc2, 0xf0, + 0xe4, 0x60, 0x0c, 0x64, 0x2d, 0x29, 0x14, 0x87, 0x1e, 0x86, 0x34, 0xf9, 0xcb, 0x62, 0x63, 0x98, + 0xda, 0x9c, 0x22, 0x02, 0x12, 0x17, 0x68, 0x0a, 0x52, 0x74, 0x99, 0xd4, 0xb0, 0x28, 0x6d, 0xc1, + 0x33, 0x09, 0xac, 0x1a, 0xde, 0xd1, 0x9a, 0xa6, 0xaf, 0xde, 0xd0, 0xcc, 0x26, 0xa6, 0x01, 0x9f, + 0x56, 0xb2, 0x5c, 0xf8, 0x69, 0x22, 0x43, 0xd3, 0x90, 0x61, 0xab, 0xca, 0xb0, 0x6a, 0xf8, 0x05, + 0x9a, 0x3d, 0x93, 0x0a, 0x5b, 0x68, 0x15, 0x22, 0x21, 0xdd, 0x5f, 0xf3, 0x6c, 0x4b, 0x84, 0x26, + 0xed, 0x82, 0x08, 0x68, 0xf7, 0xe7, 0xba, 0x13, 0xf7, 0x23, 0xfd, 0x87, 0xd7, 0x1d, 0x53, 0xb3, + 0xdf, 0x89, 0x41, 0x82, 0xe6, 0x8b, 0x31, 0xc8, 0x6c, 0x5e, 0x5d, 0x2f, 0xab, 0x4b, 0x6b, 0x5b, + 0xa5, 0x95, 0xb2, 0x2c, 0xa1, 0x1c, 0x00, 0x15, 0x5c, 0x5a, 0x59, 0x5b, 0xd8, 0x94, 0x63, 0xc1, + 0x73, 0x65, 0x75, 0xf3, 0xec, 0x69, 0x39, 0x1e, 0x00, 0xb6, 0x98, 0x20, 0x11, 0x56, 0x38, 0x75, + 0x52, 0x4e, 0x22, 0x19, 0xb2, 0x8c, 0xa0, 0xf2, 0x5c, 0x79, 0xe9, 0xec, 0x69, 0x79, 0xb8, 0x53, + 0x72, 0xea, 0xa4, 0x3c, 0x82, 0x46, 0x21, 0x4d, 0x25, 0xa5, 0xb5, 0xb5, 0x15, 0x39, 0x15, 0x70, + 0x6e, 0x6c, 0x2a, 0x95, 0xd5, 0x65, 0x39, 0x1d, 0x70, 0x2e, 0x2b, 0x6b, 0x5b, 0xeb, 0x32, 0x04, + 0x0c, 0xd5, 0xf2, 0xc6, 0xc6, 0xc2, 0x72, 0x59, 0xce, 0x04, 0x1a, 0xa5, 0xab, 0x9b, 0xe5, 0x0d, + 0x39, 0xdb, 0x61, 0xd6, 0xa9, 0x93, 0xf2, 0x68, 0xd0, 0x45, 0x79, 0x75, 0xab, 0x2a, 0xe7, 0xd0, + 0x38, 0x8c, 0xb2, 0x2e, 0x84, 0x11, 0x63, 0x5d, 0xa2, 0xb3, 0xa7, 0x65, 0xb9, 0x6d, 0x08, 0x63, + 0x19, 0xef, 0x10, 0x9c, 0x3d, 0x2d, 0xa3, 0xd9, 0x45, 0x48, 0xd2, 0xe8, 0x42, 0x08, 0x72, 0x2b, + 0x0b, 0xa5, 0xf2, 0x8a, 0xba, 0xb6, 0xbe, 0x59, 0x59, 0x5b, 0x5d, 0x58, 0x91, 0xa5, 0xb6, 0x4c, + 0x29, 0x7f, 0x6a, 0xab, 0xa2, 0x94, 0x97, 0xe4, 0x58, 0x58, 0xb6, 0x5e, 0x5e, 0xd8, 0x2c, 0x2f, + 0xc9, 0xf1, 0x59, 0x1d, 0x26, 0xfb, 0xe5, 0xc9, 0xbe, 0x2b, 0x23, 0x34, 0xc5, 0xb1, 0x7d, 0xa6, + 0x98, 0x72, 0xf5, 0x4c, 0xf1, 0x8f, 0x62, 0x30, 0xd1, 0xa7, 0x56, 0xf4, 0xed, 0xe4, 0x59, 0x48, + 0xb2, 0x10, 0x65, 0xd5, 0xf3, 0x89, 0xbe, 0x45, 0x87, 0x06, 0x6c, 0x4f, 0x05, 0xa5, 0xb8, 0xf0, + 0x0e, 0x22, 0xbe, 0xcf, 0x0e, 0x82, 0x50, 0xf4, 0xe4, 0xf4, 0x5f, 0xec, 0xc9, 0xe9, 0xac, 0xec, + 0x9d, 0x1d, 0xa4, 0xec, 0x51, 0xd9, 0xc1, 0x72, 0x7b, 0xb2, 0x4f, 0x6e, 0xbf, 0x08, 0xe3, 0x3d, + 0x44, 0x03, 0xe7, 0xd8, 0x17, 0x25, 0xc8, 0xef, 0xe7, 0x9c, 0x88, 0x4c, 0x17, 0xeb, 0xc8, 0x74, + 0x17, 0xbb, 0x3d, 0x78, 0x74, 0xff, 0x49, 0xe8, 0x99, 0xeb, 0x57, 0x25, 0x38, 0xd4, 0x7f, 0xa7, + 0xd8, 0xd7, 0x86, 0x67, 0x60, 0xb8, 0x81, 0xfd, 0x5d, 0x5b, 0xec, 0x96, 0x1e, 0xef, 0x53, 0x83, + 0x49, 0x73, 0xf7, 0x64, 0x73, 0x54, 0xb8, 0x88, 0xc7, 0xf7, 0xdb, 0xee, 0x31, 0x6b, 0x7a, 0x2c, + 0xfd, 0x42, 0x0c, 0x1e, 0xea, 0x4b, 0xde, 0xd7, 0xd0, 0x47, 0x00, 0x0c, 0xcb, 0x69, 0xfa, 0x6c, + 0x47, 0xc4, 0x12, 0x6c, 0x9a, 0x4a, 0x68, 0xf2, 0x22, 0xc9, 0xb3, 0xe9, 0x07, 0xed, 0x71, 0xda, + 0x0e, 0x4c, 0x44, 0x15, 0xce, 0xb7, 0x0d, 0x4d, 0x50, 0x43, 0x0b, 0xfb, 0x8c, 0xb4, 0x27, 0x30, + 0x9f, 0x06, 0x59, 0x37, 0x0d, 0x6c, 0xf9, 0xaa, 0xe7, 0xbb, 0x58, 0x6b, 0x18, 0x56, 0x9d, 0x56, + 0x90, 0x54, 0x31, 0xb9, 0xa3, 0x99, 0x1e, 0x56, 0xc6, 0x58, 0xf3, 0x86, 0x68, 0x25, 0x08, 0x1a, + 0x40, 0x6e, 0x08, 0x31, 0xdc, 0x81, 0x60, 0xcd, 0x01, 0x62, 0xf6, 0x9b, 0x29, 0xc8, 0x84, 0xf6, + 0xd5, 0xe8, 0x28, 0x64, 0xaf, 0x69, 0x37, 0x34, 0x55, 0x9c, 0x95, 0x98, 0x27, 0x32, 0x44, 0xb6, + 0xce, 0xcf, 0x4b, 0x4f, 0xc3, 0x24, 0x55, 0xb1, 0x9b, 0x3e, 0x76, 0x55, 0xdd, 0xd4, 0x3c, 0x8f, + 0x3a, 0x2d, 0x45, 0x55, 0x11, 0x69, 0x5b, 0x23, 0x4d, 0x8b, 0xa2, 0x05, 0x9d, 0x81, 0x09, 0x8a, + 0x68, 0x34, 0x4d, 0xdf, 0x70, 0x4c, 0xac, 0x92, 0xd3, 0x9b, 0x47, 0x2b, 0x49, 0x60, 0xd9, 0x38, + 0xd1, 0xa8, 0x72, 0x05, 0x62, 0x91, 0x87, 0x96, 0xe0, 0x11, 0x0a, 0xab, 0x63, 0x0b, 0xbb, 0x9a, + 0x8f, 0x55, 0xfc, 0xd9, 0xa6, 0x66, 0x7a, 0xaa, 0x66, 0xd5, 0xd4, 0x5d, 0xcd, 0xdb, 0xcd, 0x4f, + 0x12, 0x82, 0x52, 0x2c, 0x2f, 0x29, 0x47, 0x88, 0xe2, 0x32, 0xd7, 0x2b, 0x53, 0xb5, 0x05, 0xab, + 0xf6, 0x49, 0xcd, 0xdb, 0x45, 0x45, 0x38, 0x44, 0x59, 0x3c, 0xdf, 0x35, 0xac, 0xba, 0xaa, 0xef, + 0x62, 0xfd, 0xba, 0xda, 0xf4, 0x77, 0xce, 0xe7, 0x1f, 0x0e, 0xf7, 0x4f, 0x2d, 0xdc, 0xa0, 0x3a, + 0x8b, 0x44, 0x65, 0xcb, 0xdf, 0x39, 0x8f, 0x36, 0x20, 0x4b, 0x26, 0xa3, 0x61, 0xdc, 0xc2, 0xea, + 0x8e, 0xed, 0xd2, 0xd2, 0x98, 0xeb, 0x93, 0x9a, 0x42, 0x1e, 0x9c, 0x5f, 0xe3, 0x80, 0xaa, 0x5d, + 0xc3, 0xc5, 0xe4, 0xc6, 0x7a, 0xb9, 0xbc, 0xa4, 0x64, 0x04, 0xcb, 0x25, 0xdb, 0x25, 0x01, 0x55, + 0xb7, 0x03, 0x07, 0x67, 0x58, 0x40, 0xd5, 0x6d, 0xe1, 0xde, 0x33, 0x30, 0xa1, 0xeb, 0x6c, 0xcc, + 0x86, 0xae, 0xf2, 0x33, 0x96, 0x97, 0x97, 0x3b, 0x9c, 0xa5, 0xeb, 0xcb, 0x4c, 0x81, 0xc7, 0xb8, + 0x87, 0x2e, 0xc0, 0x43, 0x6d, 0x67, 0x85, 0x81, 0xe3, 0x3d, 0xa3, 0xec, 0x86, 0x9e, 0x81, 0x09, + 0xa7, 0xd5, 0x0b, 0x44, 0x1d, 0x3d, 0x3a, 0xad, 0x6e, 0xd8, 0x39, 0x98, 0x74, 0x76, 0x9d, 0x5e, + 0xdc, 0x93, 0x61, 0x1c, 0x72, 0x76, 0x9d, 0x6e, 0xe0, 0x63, 0xf4, 0xc0, 0xed, 0x62, 0x5d, 0xf3, + 0x71, 0x2d, 0x7f, 0x38, 0xac, 0x1e, 0x6a, 0x40, 0x27, 0x40, 0xd6, 0x75, 0x15, 0x5b, 0xda, 0xb6, + 0x89, 0x55, 0xcd, 0xc5, 0x96, 0xe6, 0xe5, 0xa7, 0xc3, 0xca, 0x39, 0x5d, 0x2f, 0xd3, 0xd6, 0x05, + 0xda, 0x88, 0x9e, 0x84, 0x71, 0x7b, 0xfb, 0x9a, 0xce, 0x42, 0x52, 0x75, 0x5c, 0xbc, 0x63, 0xbc, + 0x90, 0x7f, 0x94, 0xfa, 0x77, 0x8c, 0x34, 0xd0, 0x80, 0x5c, 0xa7, 0x62, 0xf4, 0x04, 0xc8, 0xba, + 0xb7, 0xab, 0xb9, 0x0e, 0xcd, 0xc9, 0x9e, 0xa3, 0xe9, 0x38, 0xff, 0x18, 0x53, 0x65, 0xf2, 0x55, + 0x21, 0x26, 0x4b, 0xc2, 0xbb, 0x69, 0xec, 0xf8, 0x82, 0xf1, 0x38, 0x5b, 0x12, 0x54, 0xc6, 0xd9, + 0xe6, 0x40, 0x26, 0xae, 0xe8, 0xe8, 0x78, 0x8e, 0xaa, 0xe5, 0x9c, 0x5d, 0x27, 0xdc, 0xef, 0x31, + 0x18, 0x25, 0x9a, 0xed, 0x4e, 0x9f, 0x60, 0x1b, 0x32, 0x67, 0x37, 0xd4, 0xe3, 0x07, 0xb6, 0x37, + 0x9e, 0x2d, 0x42, 0x36, 0x1c, 0x9f, 0x28, 0x0d, 0x2c, 0x42, 0x65, 0x89, 0x6c, 0x56, 0x16, 0xd7, + 0x96, 0xc8, 0x36, 0xe3, 0xf9, 0xb2, 0x1c, 0x23, 0xdb, 0x9d, 0x95, 0xca, 0x66, 0x59, 0x55, 0xb6, + 0x56, 0x37, 0x2b, 0xd5, 0xb2, 0x1c, 0x0f, 0xef, 0xab, 0xbf, 0x1f, 0x83, 0x5c, 0xe7, 0x11, 0x09, + 0x7d, 0x1c, 0x0e, 0x8b, 0xfb, 0x0c, 0x0f, 0xfb, 0xea, 0x4d, 0xc3, 0xa5, 0x4b, 0xa6, 0xa1, 0xb1, + 0xf2, 0x15, 0x4c, 0xda, 0x24, 0xd7, 0xda, 0xc0, 0xfe, 0x15, 0xc3, 0x25, 0x0b, 0xa2, 0xa1, 0xf9, + 0x68, 0x05, 0xa6, 0x2d, 0x5b, 0xf5, 0x7c, 0xcd, 0xaa, 0x69, 0x6e, 0x4d, 0x6d, 0xdf, 0x24, 0xa9, + 0x9a, 0xae, 0x63, 0xcf, 0xb3, 0x59, 0xa9, 0x0a, 0x58, 0x3e, 0x62, 0xd9, 0x1b, 0x5c, 0xb9, 0x9d, + 0xc3, 0x17, 0xb8, 0x6a, 0x57, 0x80, 0xc5, 0xf7, 0x0b, 0xb0, 0x87, 0x21, 0xdd, 0xd0, 0x1c, 0x15, + 0x5b, 0xbe, 0xdb, 0xa2, 0x1b, 0xe3, 0x94, 0x92, 0x6a, 0x68, 0x4e, 0x99, 0x3c, 0x7f, 0x38, 0xe7, + 0x93, 0x7f, 0x8b, 0x43, 0x36, 0xbc, 0x39, 0x26, 0x67, 0x0d, 0x9d, 0xd6, 0x11, 0x89, 0x66, 0x9a, + 0x63, 0xf7, 0xdd, 0x4a, 0xcf, 0x2f, 0x92, 0x02, 0x53, 0x1c, 0x66, 0x5b, 0x56, 0x85, 0x21, 0x49, + 0x71, 0x27, 0xb9, 0x05, 0xb3, 0x2d, 0x42, 0x4a, 0xe1, 0x4f, 0x68, 0x19, 0x86, 0xaf, 0x79, 0x94, + 0x7b, 0x98, 0x72, 0x3f, 0x7a, 0x7f, 0xee, 0xcb, 0x1b, 0x94, 0x3c, 0x7d, 0x79, 0x43, 0x5d, 0x5d, + 0x53, 0xaa, 0x0b, 0x2b, 0x0a, 0x87, 0xa3, 0x23, 0x90, 0x30, 0xb5, 0x5b, 0xad, 0xce, 0x52, 0x44, + 0x45, 0x83, 0x3a, 0xfe, 0x08, 0x24, 0x6e, 0x62, 0xed, 0x7a, 0x67, 0x01, 0xa0, 0xa2, 0x0f, 0x30, + 0xf4, 0x4f, 0x40, 0x92, 0xfa, 0x0b, 0x01, 0x70, 0x8f, 0xc9, 0x43, 0x28, 0x05, 0x89, 0xc5, 0x35, + 0x85, 0x84, 0xbf, 0x0c, 0x59, 0x26, 0x55, 0xd7, 0x2b, 0xe5, 0xc5, 0xb2, 0x1c, 0x9b, 0x3d, 0x03, + 0xc3, 0xcc, 0x09, 0x64, 0x69, 0x04, 0x6e, 0x90, 0x87, 0xf8, 0x23, 0xe7, 0x90, 0x44, 0xeb, 0x56, + 0xb5, 0x54, 0x56, 0xe4, 0x58, 0x78, 0x7a, 0x3d, 0xc8, 0x86, 0xf7, 0xc5, 0x1f, 0x4e, 0x4c, 0xfd, + 0xa3, 0x04, 0x99, 0xd0, 0x3e, 0x97, 0x6c, 0x50, 0x34, 0xd3, 0xb4, 0x6f, 0xaa, 0x9a, 0x69, 0x68, + 0x1e, 0x0f, 0x0a, 0xa0, 0xa2, 0x05, 0x22, 0x19, 0x74, 0xd2, 0x3e, 0x14, 0xe3, 0x5f, 0x91, 0x40, + 0xee, 0xde, 0x62, 0x76, 0x19, 0x28, 0xfd, 0x4c, 0x0d, 0x7c, 0x59, 0x82, 0x5c, 0xe7, 0xbe, 0xb2, + 0xcb, 0xbc, 0xa3, 0x3f, 0x53, 0xf3, 0xde, 0x88, 0xc1, 0x68, 0xc7, 0x6e, 0x72, 0x50, 0xeb, 0x3e, + 0x0b, 0xe3, 0x46, 0x0d, 0x37, 0x1c, 0xdb, 0xc7, 0x96, 0xde, 0x52, 0x4d, 0x7c, 0x03, 0x9b, 0xf9, + 0x59, 0x9a, 0x28, 0x4e, 0xdc, 0x7f, 0xbf, 0x3a, 0x5f, 0x69, 0xe3, 0x56, 0x08, 0xac, 0x38, 0x51, + 0x59, 0x2a, 0x57, 0xd7, 0xd7, 0x36, 0xcb, 0xab, 0x8b, 0x57, 0xd5, 0xad, 0xd5, 0x9f, 0x5f, 0x5d, + 0xbb, 0xb2, 0xaa, 0xc8, 0x46, 0x97, 0xda, 0x07, 0xb8, 0xd4, 0xd7, 0x41, 0xee, 0x36, 0x0a, 0x1d, + 0x86, 0x7e, 0x66, 0xc9, 0x43, 0x68, 0x02, 0xc6, 0x56, 0xd7, 0xd4, 0x8d, 0xca, 0x52, 0x59, 0x2d, + 0x5f, 0xba, 0x54, 0x5e, 0xdc, 0xdc, 0x60, 0x37, 0x10, 0x81, 0xf6, 0x66, 0xe7, 0xa2, 0x7e, 0x29, + 0x0e, 0x13, 0x7d, 0x2c, 0x41, 0x0b, 0xfc, 0xec, 0xc0, 0x8e, 0x33, 0x1f, 0x1b, 0xc4, 0xfa, 0x79, + 0x52, 0xf2, 0xd7, 0x35, 0xd7, 0xe7, 0x47, 0x8d, 0x27, 0x80, 0x78, 0xc9, 0xf2, 0x8d, 0x1d, 0x03, + 0xbb, 0xfc, 0xc2, 0x86, 0x1d, 0x28, 0xc6, 0xda, 0x72, 0x76, 0x67, 0xf3, 0x51, 0x40, 0x8e, 0xed, + 0x19, 0xbe, 0x71, 0x03, 0xab, 0x86, 0x25, 0x6e, 0x77, 0xc8, 0x01, 0x23, 0xa1, 0xc8, 0xa2, 0xa5, + 0x62, 0xf9, 0x81, 0xb6, 0x85, 0xeb, 0x5a, 0x97, 0x36, 0x49, 0xe0, 0x71, 0x45, 0x16, 0x2d, 0x81, + 0xf6, 0x51, 0xc8, 0xd6, 0xec, 0x26, 0xd9, 0x75, 0x31, 0x3d, 0x52, 0x2f, 0x24, 0x25, 0xc3, 0x64, + 0x81, 0x0a, 0xdf, 0x4f, 0xb7, 0xaf, 0x95, 0xb2, 0x4a, 0x86, 0xc9, 0x98, 0xca, 0x71, 0x18, 0xd3, + 0xea, 0x75, 0x97, 0x90, 0x0b, 0x22, 0x76, 0x42, 0xc8, 0x05, 0x62, 0xaa, 0x38, 0x75, 0x19, 0x52, + 0xc2, 0x0f, 0xa4, 0x24, 0x13, 0x4f, 0xa8, 0x0e, 0x3b, 0xf6, 0xc6, 0xe6, 0xd2, 0x4a, 0xca, 0x12, + 0x8d, 0x47, 0x21, 0x6b, 0x78, 0x6a, 0xfb, 0x96, 0x3c, 0x36, 0x13, 0x9b, 0x4b, 0x29, 0x19, 0xc3, + 0x0b, 0x6e, 0x18, 0x67, 0x5f, 0x8d, 0x41, 0xae, 0xf3, 0x96, 0x1f, 0x2d, 0x41, 0xca, 0xb4, 0x75, + 0x8d, 0x86, 0x16, 0x7b, 0xc5, 0x34, 0x17, 0xf1, 0x62, 0x60, 0x7e, 0x85, 0xeb, 0x2b, 0x01, 0x72, + 0xea, 0x5f, 0x24, 0x48, 0x09, 0x31, 0x3a, 0x04, 0x09, 0x47, 0xf3, 0x77, 0x29, 0x5d, 0xb2, 0x14, + 0x93, 0x25, 0x85, 0x3e, 0x13, 0xb9, 0xe7, 0x68, 0x16, 0x0d, 0x01, 0x2e, 0x27, 0xcf, 0x64, 0x5e, + 0x4d, 0xac, 0xd5, 0xe8, 0xf1, 0xc3, 0x6e, 0x34, 0xb0, 0xe5, 0x7b, 0x62, 0x5e, 0xb9, 0x7c, 0x91, + 0x8b, 0xd1, 0x53, 0x30, 0xee, 0xbb, 0x9a, 0x61, 0x76, 0xe8, 0x26, 0xa8, 0xae, 0x2c, 0x1a, 0x02, + 0xe5, 0x22, 0x1c, 0x11, 0xbc, 0x35, 0xec, 0x6b, 0xfa, 0x2e, 0xae, 0xb5, 0x41, 0xc3, 0xf4, 0x9a, + 0xe1, 0x30, 0x57, 0x58, 0xe2, 0xed, 0x02, 0x3b, 0xfb, 0x43, 0x09, 0xc6, 0xc5, 0x81, 0xa9, 0x16, + 0x38, 0xab, 0x0a, 0xa0, 0x59, 0x96, 0xed, 0x87, 0xdd, 0xd5, 0x1b, 0xca, 0x3d, 0xb8, 0xf9, 0x85, + 0x00, 0xa4, 0x84, 0x08, 0xa6, 0x1a, 0x00, 0xed, 0x96, 0x7d, 0xdd, 0x36, 0x0d, 0x19, 0xfe, 0x0a, + 0x87, 0xbe, 0x07, 0x64, 0x47, 0x6c, 0x60, 0x22, 0x72, 0xb2, 0x42, 0x93, 0x90, 0xdc, 0xc6, 0x75, + 0xc3, 0xe2, 0x17, 0xb3, 0xec, 0x41, 0x5c, 0x84, 0x24, 0x82, 0x8b, 0x90, 0xd2, 0x67, 0x60, 0x42, + 0xb7, 0x1b, 0xdd, 0xe6, 0x96, 0xe4, 0xae, 0x63, 0xbe, 0xf7, 0x49, 0xe9, 0x79, 0x68, 0x6f, 0x31, + 0xdf, 0x93, 0xa4, 0x3f, 0x8d, 0xc5, 0x97, 0xd7, 0x4b, 0x5f, 0x8b, 0x4d, 0x2d, 0x33, 0xe8, 0xba, + 0x18, 0xa9, 0x82, 0x77, 0x4c, 0xac, 0x13, 0xeb, 0xe1, 0x8b, 0xc7, 0xe1, 0x63, 0x75, 0xc3, 0xdf, + 0x6d, 0x6e, 0xcf, 0xeb, 0x76, 0xe3, 0x44, 0xdd, 0xae, 0xdb, 0xed, 0x57, 0x9f, 0xe4, 0x89, 0x3e, + 0xd0, 0x5f, 0xfc, 0xf5, 0x67, 0x3a, 0x90, 0x4e, 0x45, 0xbe, 0x2b, 0x2d, 0xae, 0xc2, 0x04, 0x57, + 0x56, 0xe9, 0xfb, 0x17, 0x76, 0x8a, 0x40, 0xf7, 0xbd, 0xc3, 0xca, 0x7f, 0xe3, 0x4d, 0x5a, 0xae, + 0x95, 0x71, 0x0e, 0x25, 0x6d, 0xec, 0xa0, 0x51, 0x54, 0xe0, 0xa1, 0x0e, 0x3e, 0xb6, 0x34, 0xb1, + 0x1b, 0xc1, 0xf8, 0x7d, 0xce, 0x38, 0x11, 0x62, 0xdc, 0xe0, 0xd0, 0xe2, 0x22, 0x8c, 0x1e, 0x84, + 0xeb, 0x9f, 0x38, 0x57, 0x16, 0x87, 0x49, 0x96, 0x61, 0x8c, 0x92, 0xe8, 0x4d, 0xcf, 0xb7, 0x1b, + 0x34, 0xef, 0xdd, 0x9f, 0xe6, 0x9f, 0xdf, 0x64, 0x6b, 0x25, 0x47, 0x60, 0x8b, 0x01, 0xaa, 0x58, + 0x04, 0xfa, 0xca, 0xa9, 0x86, 0x75, 0x33, 0x82, 0xe1, 0x35, 0x6e, 0x48, 0xa0, 0x5f, 0xfc, 0x34, + 0x4c, 0x92, 0xdf, 0x34, 0x2d, 0x85, 0x2d, 0x89, 0xbe, 0xf0, 0xca, 0xff, 0xf0, 0x45, 0xb6, 0x1c, + 0x27, 0x02, 0x82, 0x90, 0x4d, 0xa1, 0x59, 0xac, 0x63, 0xdf, 0xc7, 0xae, 0xa7, 0x6a, 0x66, 0x3f, + 0xf3, 0x42, 0x37, 0x06, 0xf9, 0x2f, 0xbf, 0xdd, 0x39, 0x8b, 0xcb, 0x0c, 0xb9, 0x60, 0x9a, 0xc5, + 0x2d, 0x38, 0xdc, 0x27, 0x2a, 0x06, 0xe0, 0x7c, 0x89, 0x73, 0x4e, 0xf6, 0x44, 0x06, 0xa1, 0x5d, + 0x07, 0x21, 0x0f, 0xe6, 0x72, 0x00, 0xce, 0x3f, 0xe4, 0x9c, 0x88, 0x63, 0xc5, 0x94, 0x12, 0xc6, + 0xcb, 0x30, 0x7e, 0x03, 0xbb, 0xdb, 0xb6, 0xc7, 0x6f, 0x69, 0x06, 0xa0, 0x7b, 0x99, 0xd3, 0x8d, + 0x71, 0x20, 0xbd, 0xb6, 0x21, 0x5c, 0x17, 0x20, 0xb5, 0xa3, 0xe9, 0x78, 0x00, 0x8a, 0xaf, 0x70, + 0x8a, 0x11, 0xa2, 0x4f, 0xa0, 0x0b, 0x90, 0xad, 0xdb, 0xbc, 0x32, 0x45, 0xc3, 0x5f, 0xe1, 0xf0, + 0x8c, 0xc0, 0x70, 0x0a, 0xc7, 0x76, 0x9a, 0x26, 0x29, 0x5b, 0xd1, 0x14, 0x7f, 0x24, 0x28, 0x04, + 0x86, 0x53, 0x1c, 0xc0, 0xad, 0x7f, 0x2c, 0x28, 0xbc, 0x90, 0x3f, 0x9f, 0x85, 0x8c, 0x6d, 0x99, + 0x2d, 0xdb, 0x1a, 0xc4, 0x88, 0x3f, 0xe1, 0x0c, 0xc0, 0x21, 0x84, 0xe0, 0x22, 0xa4, 0x07, 0x9d, + 0x88, 0x3f, 0x7b, 0x5b, 0x2c, 0x0f, 0x31, 0x03, 0xcb, 0x30, 0x26, 0x12, 0x94, 0x61, 0x5b, 0x03, + 0x50, 0xfc, 0x39, 0xa7, 0xc8, 0x85, 0x60, 0x7c, 0x18, 0x3e, 0xf6, 0xfc, 0x3a, 0x1e, 0x84, 0xe4, + 0x55, 0x31, 0x0c, 0x0e, 0xe1, 0xae, 0xdc, 0xc6, 0x96, 0xbe, 0x3b, 0x18, 0xc3, 0x57, 0x85, 0x2b, + 0x05, 0x86, 0x50, 0x2c, 0xc2, 0x68, 0x43, 0x73, 0xbd, 0x5d, 0xcd, 0x1c, 0x68, 0x3a, 0xfe, 0x82, + 0x73, 0x64, 0x03, 0x10, 0xf7, 0x48, 0xd3, 0x3a, 0x08, 0xcd, 0xd7, 0x84, 0x47, 0x42, 0x30, 0xbe, + 0xf4, 0x3c, 0x9f, 0x5e, 0x69, 0x1d, 0x84, 0xed, 0x2f, 0xc5, 0xd2, 0x63, 0xd8, 0x6a, 0x98, 0xf1, + 0x22, 0xa4, 0x3d, 0xe3, 0xd6, 0x40, 0x34, 0x7f, 0x25, 0x66, 0x9a, 0x02, 0x08, 0xf8, 0x2a, 0x1c, + 0xe9, 0x5b, 0x26, 0x06, 0x20, 0xfb, 0x6b, 0x4e, 0x76, 0xa8, 0x4f, 0xa9, 0xe0, 0x29, 0xe1, 0xa0, + 0x94, 0x7f, 0x23, 0x52, 0x02, 0xee, 0xe2, 0x5a, 0x27, 0x67, 0x05, 0x4f, 0xdb, 0x39, 0x98, 0xd7, + 0xfe, 0x56, 0x78, 0x8d, 0x61, 0x3b, 0xbc, 0xb6, 0x09, 0x87, 0x38, 0xe3, 0xc1, 0xe6, 0xf5, 0xeb, + 0x22, 0xb1, 0x32, 0xf4, 0x56, 0xe7, 0xec, 0x7e, 0x06, 0xa6, 0x02, 0x77, 0x8a, 0x4d, 0xa9, 0xa7, + 0x36, 0x34, 0x67, 0x00, 0xe6, 0x6f, 0x70, 0x66, 0x91, 0xf1, 0x83, 0x5d, 0xad, 0x57, 0xd5, 0x1c, + 0x42, 0xfe, 0x1c, 0xe4, 0x05, 0x79, 0xd3, 0x72, 0xb1, 0x6e, 0xd7, 0x2d, 0xe3, 0x16, 0xae, 0x0d, + 0x40, 0xfd, 0x77, 0x5d, 0x53, 0xb5, 0x15, 0x82, 0x13, 0xe6, 0x0a, 0xc8, 0xc1, 0x5e, 0x45, 0x35, + 0x1a, 0x8e, 0xed, 0xfa, 0x11, 0x8c, 0xdf, 0x14, 0x33, 0x15, 0xe0, 0x2a, 0x14, 0x56, 0x2c, 0x43, + 0x8e, 0x3e, 0x0e, 0x1a, 0x92, 0xdf, 0xe2, 0x44, 0xa3, 0x6d, 0x14, 0x4f, 0x1c, 0xba, 0xdd, 0x70, + 0x34, 0x77, 0x90, 0xfc, 0xf7, 0x6d, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, 0xbf, 0xe5, 0x60, 0x52, + 0xed, 0x07, 0x60, 0xf8, 0x8e, 0x48, 0x1c, 0x02, 0xc3, 0x29, 0xc4, 0x86, 0x61, 0x00, 0x8a, 0xbf, + 0x17, 0x14, 0x02, 0x43, 0x28, 0x3e, 0xd5, 0x2e, 0xb4, 0x2e, 0xae, 0x1b, 0x9e, 0xef, 0xb2, 0xad, + 0xf0, 0xfd, 0xa9, 0xbe, 0xfb, 0x76, 0xe7, 0x26, 0x4c, 0x09, 0x41, 0x8b, 0x97, 0x61, 0xac, 0x6b, + 0x8b, 0x81, 0xa2, 0xbe, 0x5f, 0xc9, 0xff, 0xf2, 0xbb, 0x3c, 0x19, 0x75, 0xee, 0x30, 0x8a, 0x2b, + 0x64, 0xde, 0x3b, 0xf7, 0x01, 0xd1, 0x64, 0x2f, 0xbe, 0x1b, 0x4c, 0x7d, 0xc7, 0x36, 0xa0, 0x78, + 0x09, 0x46, 0x3b, 0xf6, 0x00, 0xd1, 0x54, 0xbf, 0xc2, 0xa9, 0xb2, 0xe1, 0x2d, 0x40, 0xf1, 0x0c, + 0x24, 0x48, 0x3d, 0x8f, 0x86, 0xff, 0x2a, 0x87, 0x53, 0xf5, 0xe2, 0x27, 0x20, 0x25, 0xea, 0x78, + 0x34, 0xf4, 0xd7, 0x38, 0x34, 0x80, 0x10, 0xb8, 0xa8, 0xe1, 0xd1, 0xf0, 0xcf, 0x0b, 0xb8, 0x80, + 0x10, 0xf8, 0xe0, 0x2e, 0xfc, 0xde, 0x6f, 0x24, 0x78, 0x1e, 0x16, 0xbe, 0xbb, 0x08, 0x23, 0xbc, + 0x78, 0x47, 0xa3, 0xbf, 0xc0, 0x3b, 0x17, 0x88, 0xe2, 0x39, 0x48, 0x0e, 0xe8, 0xf0, 0xdf, 0xe4, + 0x50, 0xa6, 0x5f, 0x5c, 0x84, 0x4c, 0xa8, 0x60, 0x47, 0xc3, 0x7f, 0x8b, 0xc3, 0xc3, 0x28, 0x62, + 0x3a, 0x2f, 0xd8, 0xd1, 0x04, 0xbf, 0x2d, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0x51, 0xab, 0xa3, 0xd1, + 0xbf, 0x23, 0xbc, 0x2e, 0x20, 0xc5, 0x67, 0x21, 0x1d, 0xe4, 0xdf, 0x68, 0xfc, 0xef, 0x72, 0x7c, + 0x1b, 0x43, 0x3c, 0x10, 0xca, 0xff, 0xd1, 0x14, 0xbf, 0x27, 0x3c, 0x10, 0x42, 0x91, 0x65, 0xd4, + 0x5d, 0xd3, 0xa3, 0x99, 0x7e, 0x5f, 0x2c, 0xa3, 0xae, 0x92, 0x4e, 0x66, 0x93, 0xa6, 0xc1, 0x68, + 0x8a, 0x3f, 0x10, 0xb3, 0x49, 0xf5, 0x89, 0x19, 0xdd, 0x45, 0x32, 0x9a, 0xe3, 0x8b, 0xc2, 0x8c, + 0xae, 0x1a, 0x59, 0x5c, 0x07, 0xd4, 0x5b, 0x20, 0xa3, 0xf9, 0xbe, 0xc4, 0xf9, 0xc6, 0x7b, 0xea, + 0x63, 0xf1, 0x0a, 0x1c, 0xea, 0x5f, 0x1c, 0xa3, 0x59, 0xbf, 0xfc, 0x6e, 0xd7, 0x71, 0x26, 0x5c, + 0x1b, 0x8b, 0x9b, 0xed, 0x2c, 0x1b, 0x2e, 0x8c, 0xd1, 0xb4, 0x2f, 0xbd, 0xdb, 0x99, 0x68, 0xc3, + 0x75, 0xb1, 0xb8, 0x00, 0xd0, 0xae, 0x49, 0xd1, 0x5c, 0x2f, 0x73, 0xae, 0x10, 0x88, 0x2c, 0x0d, + 0x5e, 0x92, 0xa2, 0xf1, 0x5f, 0x11, 0x4b, 0x83, 0x23, 0xc8, 0xd2, 0x10, 0xd5, 0x28, 0x1a, 0xfd, + 0x8a, 0x58, 0x1a, 0x02, 0x52, 0xbc, 0x08, 0x29, 0xab, 0x69, 0x9a, 0x24, 0xb6, 0xd0, 0xfd, 0x3f, + 0xc9, 0xca, 0xff, 0xf8, 0x7d, 0x0e, 0x16, 0x80, 0xe2, 0x19, 0x48, 0xe2, 0xc6, 0x36, 0xae, 0x45, + 0x21, 0xff, 0xe3, 0x7d, 0x91, 0x4f, 0x88, 0x76, 0xf1, 0x59, 0x00, 0x76, 0x98, 0xa6, 0x2f, 0x8a, + 0x22, 0xb0, 0xff, 0xf9, 0x3e, 0xff, 0x58, 0xa2, 0x0d, 0x69, 0x13, 0xb0, 0x4f, 0x2f, 0xee, 0x4f, + 0xf0, 0x76, 0x27, 0x01, 0x3d, 0x80, 0x5f, 0x80, 0x91, 0x6b, 0x9e, 0x6d, 0xf9, 0x5a, 0x3d, 0x0a, + 0xfd, 0x5f, 0x1c, 0x2d, 0xf4, 0x89, 0xc3, 0x1a, 0xb6, 0x8b, 0x7d, 0xad, 0xee, 0x45, 0x61, 0xff, + 0x9b, 0x63, 0x03, 0x00, 0x01, 0xeb, 0x9a, 0xe7, 0x0f, 0x32, 0xee, 0x9f, 0x08, 0xb0, 0x00, 0x10, + 0xa3, 0xc9, 0xef, 0xeb, 0xb8, 0x15, 0x85, 0x7d, 0x47, 0x18, 0xcd, 0xf5, 0x8b, 0x9f, 0x80, 0x34, + 0xf9, 0xc9, 0xbe, 0x80, 0x8a, 0x00, 0xff, 0x0f, 0x07, 0xb7, 0x11, 0xa4, 0x67, 0xcf, 0xaf, 0xf9, + 0x46, 0xb4, 0xb3, 0xff, 0x97, 0xcf, 0xb4, 0xd0, 0x2f, 0x2e, 0x40, 0xc6, 0xf3, 0x6b, 0xb5, 0x26, + 0xdf, 0xd1, 0x44, 0xc0, 0xff, 0xef, 0xfd, 0xe0, 0x90, 0x1b, 0x60, 0x4a, 0xe5, 0xfe, 0xf7, 0x75, + 0xb0, 0x6c, 0x2f, 0xdb, 0xec, 0xa6, 0xee, 0xf9, 0xd9, 0xe8, 0x2b, 0x37, 0xf8, 0xd6, 0x18, 0x4c, + 0xeb, 0x76, 0x63, 0xdb, 0xf6, 0x4e, 0x04, 0xc9, 0xe6, 0x84, 0x70, 0x2e, 0xbf, 0x8b, 0x0b, 0x9c, + 0x3d, 0x75, 0xb0, 0x4b, 0xbc, 0xd9, 0x1f, 0x8f, 0x42, 0x6a, 0x51, 0xf3, 0x7c, 0xed, 0xa6, 0xd6, + 0x42, 0x8f, 0x41, 0xaa, 0x62, 0xf9, 0xa7, 0x4e, 0xae, 0xfb, 0x2e, 0x7d, 0x0f, 0x15, 0x2f, 0xa5, + 0xef, 0xdd, 0x99, 0x4e, 0x1a, 0x44, 0xa6, 0x04, 0x4d, 0xe8, 0x18, 0x24, 0xe9, 0x6f, 0x7a, 0x95, + 0x19, 0x2f, 0x8d, 0xbe, 0x76, 0x67, 0x7a, 0xa8, 0xad, 0xc7, 0xda, 0xd0, 0x55, 0xc8, 0x54, 0x5b, + 0x5b, 0x86, 0xe5, 0x9f, 0x3d, 0x4d, 0xe8, 0x88, 0x7b, 0x12, 0xa5, 0x73, 0xf7, 0xee, 0x4c, 0x9f, + 0xda, 0xd7, 0x40, 0x52, 0x34, 0xdb, 0x03, 0x13, 0x68, 0xfa, 0x9d, 0x68, 0x98, 0x0b, 0x5d, 0x81, + 0x94, 0x78, 0x64, 0xaf, 0x04, 0x4a, 0x17, 0xb9, 0x09, 0x0f, 0xc4, 0x1d, 0x90, 0xa1, 0x5f, 0x80, + 0x6c, 0xb5, 0x75, 0xc9, 0xb4, 0x35, 0xee, 0x83, 0xe4, 0x8c, 0x34, 0x17, 0x2b, 0x9d, 0xbf, 0x77, + 0x67, 0xfa, 0xf4, 0xc0, 0xc4, 0x1c, 0x4e, 0x99, 0x3b, 0xd8, 0xd0, 0xf3, 0x90, 0x0e, 0x9e, 0xe9, + 0x4b, 0x87, 0x58, 0xe9, 0xe3, 0xdc, 0xee, 0x07, 0xa3, 0x6f, 0xd3, 0x85, 0x2c, 0x67, 0xee, 0x1e, + 0x99, 0x91, 0xe6, 0xa4, 0x07, 0xb1, 0x9c, 0xfb, 0xa4, 0x83, 0x2d, 0x64, 0xf9, 0xd9, 0xd3, 0xf4, + 0x2d, 0x87, 0xf4, 0xa0, 0x96, 0x73, 0xfa, 0x36, 0x1d, 0xba, 0x0c, 0x23, 0xd5, 0x56, 0xa9, 0xe5, + 0x63, 0x8f, 0x7e, 0x7e, 0x94, 0x2d, 0x3d, 0x7d, 0xef, 0xce, 0xf4, 0x47, 0x07, 0x64, 0xa5, 0x38, + 0x45, 0x10, 0xa0, 0x19, 0xc8, 0xac, 0xda, 0x6e, 0x43, 0x33, 0x19, 0x1f, 0xb0, 0xb7, 0x36, 0x21, + 0x11, 0xda, 0x22, 0x23, 0x61, 0xb3, 0xed, 0xd1, 0xff, 0x5c, 0xf9, 0x29, 0x62, 0xb2, 0xcd, 0x84, + 0x0c, 0x48, 0x56, 0x5b, 0x55, 0xcd, 0xc9, 0x67, 0xe9, 0x2b, 0x85, 0x47, 0xe6, 0x03, 0x84, 0x58, + 0x5b, 0xf3, 0xb4, 0x9d, 0x7e, 0x7b, 0x51, 0x3a, 0x7d, 0xef, 0xce, 0xf4, 0xd3, 0x03, 0xf7, 0x58, + 0xd5, 0x1c, 0xda, 0x1d, 0xeb, 0x01, 0x7d, 0x5b, 0x22, 0x0b, 0x8b, 0xdd, 0xc9, 0x92, 0x1e, 0x47, + 0x69, 0x8f, 0xc7, 0xfa, 0xf6, 0x18, 0x68, 0xb1, 0x7e, 0xad, 0xcf, 0xbd, 0x7e, 0x80, 0x91, 0xb2, + 0x73, 0x0f, 0xe9, 0xfa, 0xd7, 0x5f, 0x7f, 0xe0, 0x45, 0x1b, 0x58, 0x80, 0x5e, 0x94, 0x60, 0xb4, + 0xda, 0x5a, 0xe5, 0x15, 0x98, 0x58, 0x9e, 0xe3, 0xff, 0xdf, 0xd0, 0xcf, 0xf2, 0x90, 0x1e, 0xb3, + 0xfd, 0xec, 0xe7, 0x5e, 0x9f, 0x3e, 0x39, 0xb0, 0x11, 0x34, 0x05, 0x51, 0x1b, 0x3a, 0xfb, 0x44, + 0x9f, 0xa7, 0x56, 0x94, 0x49, 0x35, 0xaf, 0xe1, 0x1a, 0xb1, 0x62, 0xec, 0x3e, 0x56, 0x84, 0xf4, + 0x98, 0x15, 0x45, 0x12, 0xf5, 0x0f, 0x6e, 0x49, 0x88, 0x0f, 0xad, 0xc1, 0x30, 0xf3, 0x30, 0xfd, + 0xf4, 0x2d, 0x7d, 0xc0, 0x30, 0x6c, 0x4f, 0x8e, 0xc2, 0x69, 0xa6, 0xce, 0x03, 0xb4, 0x63, 0x0c, + 0xc9, 0x10, 0xbf, 0x8e, 0x5b, 0xfc, 0xfb, 0x46, 0xf2, 0x13, 0x4d, 0xb6, 0x3f, 0x40, 0x96, 0xe6, + 0x12, 0xfc, 0xab, 0xe2, 0x62, 0xec, 0xbc, 0x34, 0xf5, 0x0c, 0xc8, 0xdd, 0xb1, 0x72, 0x20, 0xbc, + 0x02, 0xa8, 0x77, 0xc6, 0xc2, 0x0c, 0x49, 0xc6, 0xf0, 0x78, 0x98, 0x21, 0x73, 0x52, 0x6e, 0xfb, + 0xfc, 0x8a, 0x61, 0x7a, 0xb6, 0xd5, 0xc3, 0xd9, 0xed, 0xff, 0x9f, 0x8e, 0x73, 0xb6, 0x00, 0xc3, + 0x4c, 0x48, 0xc6, 0x52, 0xa1, 0xe5, 0x83, 0x56, 0x39, 0x85, 0x3d, 0x94, 0x56, 0x5e, 0xbb, 0x5b, + 0x18, 0xfa, 0xc1, 0xdd, 0xc2, 0xd0, 0xbf, 0xde, 0x2d, 0x0c, 0xbd, 0x71, 0xb7, 0x20, 0xbd, 0x75, + 0xb7, 0x20, 0xbd, 0x73, 0xb7, 0x20, 0xbd, 0x77, 0xb7, 0x20, 0xdd, 0xde, 0x2b, 0x48, 0x5f, 0xdd, + 0x2b, 0x48, 0x5f, 0xdf, 0x2b, 0x48, 0xdf, 0xdd, 0x2b, 0x48, 0xdf, 0xdb, 0x2b, 0x48, 0xaf, 0xed, + 0x15, 0xa4, 0x1f, 0xec, 0x15, 0x86, 0xde, 0xd8, 0x2b, 0x48, 0x6f, 0xed, 0x15, 0x86, 0xde, 0xd9, + 0x2b, 0x48, 0xef, 0xed, 0x15, 0x86, 0x6e, 0xff, 0xa8, 0x30, 0xf4, 0xff, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xd7, 0xcd, 0x49, 0xfd, 0x43, 0x38, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -712,7 +719,7 @@ func (this *Wilson) Equal(that interface{}) bool { } type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt32Ptr() *int32 GetInt32() int32 GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type @@ -731,11 +738,11 @@ type CastawayFace interface { GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) Proto() proto.Message { return this } -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) TestProto() proto.Message { return NewCastawayFromFace(this) } @@ -825,15 +832,15 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { } type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt64() *int64 } -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) Proto() proto.Message { return this } -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) TestProto() proto.Message { return NewWilsonFromFace(this) } @@ -882,7 +889,7 @@ func (this *Castaway) GoString() string { for k := range this.MyMap { keysForMyMap = append(keysForMyMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) + sortkeys.Strings(keysForMyMap) mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" for _, k := range keysForMyMap { mapStringForMyMap += fmt.Sprintf("%#v: %#v,", k, this.MyMap[k]) @@ -895,7 +902,7 @@ func (this *Castaway) GoString() string { for k := range this.MyCustomMap { keysForMyCustomMap = append(keysForMyCustomMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) + sortkeys.Strings(keysForMyCustomMap) mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" for _, k := range keysForMyCustomMap { mapStringForMyCustomMap += fmt.Sprintf("%#v: %#v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) @@ -908,7 +915,7 @@ func (this *Castaway) GoString() string { for k := range this.MyNullableMap { keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) + sortkeys.Int32s(keysForMyNullableMap) mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" for _, k := range keysForMyNullableMap { mapStringForMyNullableMap += fmt.Sprintf("%#v: %#v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -921,7 +928,7 @@ func (this *Castaway) GoString() string { for k := range this.MyEmbeddedMap { keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) + sortkeys.Int32s(keysForMyEmbeddedMap) mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" for _, k := range keysForMyEmbeddedMap { mapStringForMyEmbeddedMap += fmt.Sprintf("%#v: %#v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -996,19 +1003,23 @@ func (m *Castaway) MarshalTo(dAtA []byte) (int, error) { if m.MyFloat32Ptr != nil { dAtA[i] = 0x2d i++ - i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) + i += 4 } dAtA[i] = 0x35 i++ - i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(m.MyFloat32)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.MyFloat32)))) + i += 4 if m.MyFloat64Ptr != nil { dAtA[i] = 0x39 i++ - i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) + i += 8 } dAtA[i] = 0x41 i++ - i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(m.MyFloat64)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.MyFloat64)))) + i += 8 if m.MyBytes != nil { dAtA[i] = 0x4a i++ @@ -1152,24 +1163,6 @@ func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Casttype(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 encodeFixed32Casttype(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 encodeVarintCasttype(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1480,7 +1473,7 @@ func (this *Castaway) String() string { for k := range this.MyMap { keysForMyMap = append(keysForMyMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) + sortkeys.Strings(keysForMyMap) mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" for _, k := range keysForMyMap { mapStringForMyMap += fmt.Sprintf("%v: %v,", k, this.MyMap[k]) @@ -1490,7 +1483,7 @@ func (this *Castaway) String() string { for k := range this.MyCustomMap { keysForMyCustomMap = append(keysForMyCustomMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) + sortkeys.Strings(keysForMyCustomMap) mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" for _, k := range keysForMyCustomMap { mapStringForMyCustomMap += fmt.Sprintf("%v: %v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) @@ -1500,7 +1493,7 @@ func (this *Castaway) String() string { for k := range this.MyNullableMap { keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) + sortkeys.Int32s(keysForMyNullableMap) mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" for _, k := range keysForMyNullableMap { mapStringForMyNullableMap += fmt.Sprintf("%v: %v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -1510,7 +1503,7 @@ func (this *Castaway) String() string { for k := range this.MyEmbeddedMap { keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) + sortkeys.Int32s(keysForMyEmbeddedMap) mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" for _, k := range keysForMyEmbeddedMap { mapStringForMyEmbeddedMap += fmt.Sprintf("%v: %v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttypepb_test.go index cc94ac288..ef0b9bc30 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/marshaler/casttypepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/casttype.proto -// DO NOT EDIT! /* Package casttype is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package casttype import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,13 +58,13 @@ func TestCastawayProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCastawayMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -78,7 +76,7 @@ func TestCastawayMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -93,7 +91,7 @@ func TestCastawayMarshalTo(t *testing.T) { } func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 10000) for i := 0; i < 10000; i++ { @@ -101,7 +99,7 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -111,11 +109,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } @@ -125,7 +123,7 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -134,14 +132,14 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -162,13 +160,13 @@ func TestWilsonProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestWilsonMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -180,7 +178,7 @@ func TestWilsonMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -195,7 +193,7 @@ func TestWilsonMarshalTo(t *testing.T) { } func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 10000) for i := 0; i < 10000; i++ { @@ -203,7 +201,7 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -213,11 +211,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } @@ -227,7 +225,7 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -236,15 +234,15 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { func TestCastawayJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -257,15 +255,15 @@ func TestCastawayJSON(t *testing.T) { } func TestWilsonJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -278,11 +276,11 @@ func TestWilsonJSON(t *testing.T) { } func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -295,11 +293,11 @@ func TestCastawayProtoText(t *testing.T) { func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -312,11 +310,11 @@ func TestCastawayProtoCompactText(t *testing.T) { func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -329,11 +327,11 @@ func TestWilsonProtoText(t *testing.T) { func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -348,14 +346,14 @@ func TestCasttypeDescription(t *testing.T) { CasttypeDescription() } func TestCastawayVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -363,14 +361,14 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -378,7 +376,7 @@ func TestWilsonVerboseEqual(t *testing.T) { } } func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -386,7 +384,7 @@ func TestCastawayFace(t *testing.T) { } } func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -394,37 +392,37 @@ func TestWilsonFace(t *testing.T) { } } func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCastawaySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -435,14 +433,14 @@ func TestCastawaySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 1000) for i := 0; i < 1000; i++ { @@ -457,10 +455,10 @@ func BenchmarkCastawaySize(b *testing.B) { func TestWilsonSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -471,14 +469,14 @@ func TestWilsonSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 1000) for i := 0; i < 1000; i++ { @@ -492,7 +490,7 @@ func BenchmarkWilsonSize(b *testing.B) { } func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -501,7 +499,7 @@ func TestCastawayStringer(t *testing.T) { } } func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go index ac1ac3e7f..84c38d5ab 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttype.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/casttype.proto -// DO NOT EDIT! /* Package casttype is a generated protocol buffer package. @@ -21,15 +20,14 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -79,285 +77,292 @@ func init() { proto.RegisterType((*Castaway)(nil), "casttype.Castaway") proto.RegisterType((*Wilson)(nil), "casttype.Wilson") } -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Castaway) Description() (desc *descriptor.FileDescriptorSet) { return CasttypeDescription() } -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Wilson) Description() (desc *descriptor.FileDescriptorSet) { return CasttypeDescription() } -func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func CasttypeDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4126 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x10, 0x1d, 0x81, 0x14, 0xfd, - 0x47, 0xdb, 0x09, 0xe5, 0xd1, 0x9f, 0x65, 0x28, 0xb1, 0x07, 0x20, 0x21, 0x06, 0x2a, 0x41, 0x20, - 0x4b, 0x32, 0x92, 0xdc, 0xce, 0xec, 0x2c, 0x17, 0x97, 0xe0, 0x4a, 0x8b, 0x5d, 0x64, 0x77, 0x21, - 0x19, 0x7e, 0x52, 0xe3, 0xb6, 0x99, 0xb4, 0xd3, 0xff, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0xcd, 0x4c, - 0xeb, 0x34, 0xe9, 0x4f, 0x92, 0x36, 0x69, 0xa6, 0x4f, 0x79, 0x49, 0xeb, 0xa7, 0x4e, 0xf2, 0xd6, - 0x87, 0x8e, 0x6c, 0x31, 0x9e, 0xa9, 0xd3, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x19, 0xf9, 0xa5, 0x73, - 0xff, 0x16, 0x8b, 0x1f, 0x72, 0x41, 0x65, 0x9c, 0x3c, 0x11, 0x7b, 0xee, 0xf9, 0xbe, 0x3d, 0xf7, - 0xdc, 0x73, 0xcf, 0x39, 0x7b, 0x77, 0x09, 0x3f, 0x3c, 0x07, 0x0b, 0x0d, 0xdb, 0x6e, 0x98, 0xf8, - 0x54, 0xcb, 0xb1, 0x3d, 0x7b, 0xa7, 0xbd, 0x7b, 0xaa, 0x8e, 0x5d, 0xdd, 0x31, 0x5a, 0x9e, 0xed, - 0x2c, 0x53, 0x19, 0x9a, 0x62, 0x1a, 0xcb, 0x42, 0x63, 0xb1, 0x02, 0xd3, 0x97, 0x0c, 0x13, 0xaf, - 0xfa, 0x8a, 0x9b, 0xd8, 0x43, 0x17, 0x20, 0xb6, 0x6b, 0x98, 0x38, 0x2b, 0x2d, 0x44, 0x97, 0x52, - 0xa7, 0x1f, 0x59, 0xee, 0x03, 0x2d, 0xf7, 0x22, 0x6a, 0x44, 0xac, 0x50, 0xc4, 0xe2, 0xdb, 0x31, - 0x98, 0x19, 0x32, 0x8a, 0x10, 0xc4, 0x2c, 0xad, 0x49, 0x18, 0xa5, 0xa5, 0xa4, 0x42, 0x7f, 0xa3, - 0x2c, 0x4c, 0xb4, 0x34, 0xfd, 0x86, 0xd6, 0xc0, 0xd9, 0x08, 0x15, 0x8b, 0x4b, 0x94, 0x03, 0xa8, - 0xe3, 0x16, 0xb6, 0xea, 0xd8, 0xd2, 0x3b, 0xd9, 0xe8, 0x42, 0x74, 0x29, 0xa9, 0x04, 0x24, 0xe8, - 0x29, 0x98, 0x6e, 0xb5, 0x77, 0x4c, 0x43, 0x57, 0x03, 0x6a, 0xb0, 0x10, 0x5d, 0x8a, 0x2b, 0x32, - 0x1b, 0x58, 0xed, 0x2a, 0x3f, 0x0e, 0x53, 0xb7, 0xb0, 0x76, 0x23, 0xa8, 0x9a, 0xa2, 0xaa, 0x19, - 0x22, 0x0e, 0x28, 0xae, 0x40, 0xba, 0x89, 0x5d, 0x57, 0x6b, 0x60, 0xd5, 0xeb, 0xb4, 0x70, 0x36, - 0x46, 0x67, 0xbf, 0x30, 0x30, 0xfb, 0xfe, 0x99, 0xa7, 0x38, 0x6a, 0xab, 0xd3, 0xc2, 0xa8, 0x00, - 0x49, 0x6c, 0xb5, 0x9b, 0x8c, 0x21, 0x7e, 0x80, 0xff, 0x4a, 0x56, 0xbb, 0xd9, 0xcf, 0x92, 0x20, - 0x30, 0x4e, 0x31, 0xe1, 0x62, 0xe7, 0xa6, 0xa1, 0xe3, 0xec, 0x38, 0x25, 0x78, 0x7c, 0x80, 0x60, - 0x93, 0x8d, 0xf7, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x24, 0x7e, 0xd1, 0xc3, 0x96, 0x6b, 0xd8, 0x56, - 0x76, 0x82, 0x92, 0x3c, 0x3a, 0x64, 0x15, 0xb1, 0x59, 0xef, 0xa7, 0xe8, 0xe2, 0xd0, 0x79, 0x98, - 0xb0, 0x5b, 0x9e, 0x61, 0x5b, 0x6e, 0x36, 0xb1, 0x20, 0x2d, 0xa5, 0x4e, 0x7f, 0x64, 0x68, 0x20, - 0x54, 0x99, 0x8e, 0x22, 0x94, 0x51, 0x19, 0x64, 0xd7, 0x6e, 0x3b, 0x3a, 0x56, 0x75, 0xbb, 0x8e, - 0x55, 0xc3, 0xda, 0xb5, 0xb3, 0x49, 0x4a, 0x30, 0x3f, 0x38, 0x11, 0xaa, 0xb8, 0x62, 0xd7, 0x71, - 0xd9, 0xda, 0xb5, 0x95, 0x8c, 0xdb, 0x73, 0x8d, 0x8e, 0xc1, 0xb8, 0xdb, 0xb1, 0x3c, 0xed, 0xc5, - 0x6c, 0x9a, 0x46, 0x08, 0xbf, 0x5a, 0xfc, 0xbf, 0x38, 0x4c, 0x8d, 0x12, 0x62, 0x17, 0x21, 0xbe, - 0x4b, 0x66, 0x99, 0x8d, 0x1c, 0xc5, 0x07, 0x0c, 0xd3, 0xeb, 0xc4, 0xf1, 0xfb, 0x74, 0x62, 0x01, - 0x52, 0x16, 0x76, 0x3d, 0x5c, 0x67, 0x11, 0x11, 0x1d, 0x31, 0xa6, 0x80, 0x81, 0x06, 0x43, 0x2a, - 0x76, 0x5f, 0x21, 0x75, 0x15, 0xa6, 0x7c, 0x93, 0x54, 0x47, 0xb3, 0x1a, 0x22, 0x36, 0x4f, 0x85, - 0x59, 0xb2, 0x5c, 0x12, 0x38, 0x85, 0xc0, 0x94, 0x0c, 0xee, 0xb9, 0x46, 0xab, 0x00, 0xb6, 0x85, - 0xed, 0x5d, 0xb5, 0x8e, 0x75, 0x33, 0x9b, 0x38, 0xc0, 0x4b, 0x55, 0xa2, 0x32, 0xe0, 0x25, 0x9b, - 0x49, 0x75, 0x13, 0x3d, 0xdb, 0x0d, 0xb5, 0x89, 0x03, 0x22, 0xa5, 0xc2, 0x36, 0xd9, 0x40, 0xb4, - 0x6d, 0x43, 0xc6, 0xc1, 0x24, 0xee, 0x71, 0x9d, 0xcf, 0x2c, 0x49, 0x8d, 0x58, 0x0e, 0x9d, 0x99, - 0xc2, 0x61, 0x6c, 0x62, 0x93, 0x4e, 0xf0, 0x12, 0x3d, 0x0c, 0xbe, 0x40, 0xa5, 0x61, 0x05, 0x34, - 0x0b, 0xa5, 0x85, 0x70, 0x43, 0x6b, 0xe2, 0xb9, 0x0b, 0x90, 0xe9, 0x75, 0x0f, 0x9a, 0x85, 0xb8, - 0xeb, 0x69, 0x8e, 0x47, 0xa3, 0x30, 0xae, 0xb0, 0x0b, 0x24, 0x43, 0x14, 0x5b, 0x75, 0x9a, 0xe5, - 0xe2, 0x0a, 0xf9, 0x39, 0xf7, 0x0c, 0x4c, 0xf6, 0xdc, 0x7e, 0x54, 0xe0, 0xe2, 0x17, 0xc6, 0x61, - 0x76, 0x58, 0xcc, 0x0d, 0x0d, 0xff, 0x63, 0x30, 0x6e, 0xb5, 0x9b, 0x3b, 0xd8, 0xc9, 0x46, 0x29, - 0x03, 0xbf, 0x42, 0x05, 0x88, 0x9b, 0xda, 0x0e, 0x36, 0xb3, 0xb1, 0x05, 0x69, 0x29, 0x73, 0xfa, - 0xa9, 0x91, 0xa2, 0x7a, 0x79, 0x9d, 0x40, 0x14, 0x86, 0x44, 0xcf, 0x41, 0x8c, 0xa7, 0x38, 0xc2, - 0xf0, 0xe4, 0x68, 0x0c, 0x24, 0x16, 0x15, 0x8a, 0x43, 0x0f, 0x41, 0x92, 0xfc, 0x65, 0xbe, 0x1d, - 0xa7, 0x36, 0x27, 0x88, 0x80, 0xf8, 0x15, 0xcd, 0x41, 0x82, 0x86, 0x59, 0x1d, 0x8b, 0xd2, 0xe0, - 0x5f, 0x93, 0x85, 0xa9, 0xe3, 0x5d, 0xad, 0x6d, 0x7a, 0xea, 0x4d, 0xcd, 0x6c, 0x63, 0x1a, 0x30, - 0x49, 0x25, 0xcd, 0x85, 0x9f, 0x26, 0x32, 0x34, 0x0f, 0x29, 0x16, 0x95, 0x86, 0x55, 0xc7, 0x2f, - 0xd2, 0xec, 0x13, 0x57, 0x58, 0xa0, 0x96, 0x89, 0x84, 0xdc, 0xfe, 0xba, 0x6b, 0x5b, 0x62, 0x69, - 0xe9, 0x2d, 0x88, 0x80, 0xde, 0xfe, 0x99, 0xfe, 0xc4, 0x77, 0x62, 0xf8, 0xf4, 0xfa, 0x63, 0x71, - 0xf1, 0xdb, 0x11, 0x88, 0xd1, 0xfd, 0x36, 0x05, 0xa9, 0xad, 0x6b, 0xb5, 0x92, 0xba, 0x5a, 0xdd, - 0x2e, 0xae, 0x97, 0x64, 0x09, 0x65, 0x00, 0xa8, 0xe0, 0xd2, 0x7a, 0xb5, 0xb0, 0x25, 0x47, 0xfc, - 0xeb, 0xf2, 0xc6, 0xd6, 0xf9, 0xb3, 0x72, 0xd4, 0x07, 0x6c, 0x33, 0x41, 0x2c, 0xa8, 0x70, 0xe6, - 0xb4, 0x1c, 0x47, 0x32, 0xa4, 0x19, 0x41, 0xf9, 0x6a, 0x69, 0xf5, 0xfc, 0x59, 0x79, 0xbc, 0x57, - 0x72, 0xe6, 0xb4, 0x3c, 0x81, 0x26, 0x21, 0x49, 0x25, 0xc5, 0x6a, 0x75, 0x5d, 0x4e, 0xf8, 0x9c, - 0x9b, 0x5b, 0x4a, 0x79, 0x63, 0x4d, 0x4e, 0xfa, 0x9c, 0x6b, 0x4a, 0x75, 0xbb, 0x26, 0x83, 0xcf, - 0x50, 0x29, 0x6d, 0x6e, 0x16, 0xd6, 0x4a, 0x72, 0xca, 0xd7, 0x28, 0x5e, 0xdb, 0x2a, 0x6d, 0xca, - 0xe9, 0x1e, 0xb3, 0xce, 0x9c, 0x96, 0x27, 0xfd, 0x5b, 0x94, 0x36, 0xb6, 0x2b, 0x72, 0x06, 0x4d, - 0xc3, 0x24, 0xbb, 0x85, 0x30, 0x62, 0xaa, 0x4f, 0x74, 0xfe, 0xac, 0x2c, 0x77, 0x0d, 0x61, 0x2c, - 0xd3, 0x3d, 0x82, 0xf3, 0x67, 0x65, 0xb4, 0xb8, 0x02, 0x71, 0x1a, 0x5d, 0x08, 0x41, 0x66, 0xbd, - 0x50, 0x2c, 0xad, 0xab, 0xd5, 0xda, 0x56, 0xb9, 0xba, 0x51, 0x58, 0x97, 0xa5, 0xae, 0x4c, 0x29, - 0x7d, 0x6a, 0xbb, 0xac, 0x94, 0x56, 0xe5, 0x48, 0x50, 0x56, 0x2b, 0x15, 0xb6, 0x4a, 0xab, 0x72, - 0x74, 0x51, 0x87, 0xd9, 0x61, 0x79, 0x66, 0xe8, 0xce, 0x08, 0x2c, 0x71, 0xe4, 0x80, 0x25, 0xa6, - 0x5c, 0x03, 0x4b, 0xfc, 0x65, 0x09, 0x66, 0x86, 0xe4, 0xda, 0xa1, 0x37, 0x79, 0x1e, 0xe2, 0x2c, - 0x44, 0x59, 0xf5, 0x79, 0x62, 0x68, 0xd2, 0xa6, 0x01, 0x3b, 0x50, 0x81, 0x28, 0x2e, 0x58, 0x81, - 0xa3, 0x07, 0x54, 0x60, 0x42, 0x31, 0x60, 0xe4, 0xcb, 0x12, 0x64, 0x0f, 0xe2, 0x0e, 0x49, 0x14, - 0x91, 0x9e, 0x44, 0x71, 0xb1, 0xdf, 0x80, 0x93, 0x07, 0xcf, 0x61, 0xc0, 0x8a, 0xd7, 0x25, 0x38, - 0x36, 0xbc, 0x51, 0x19, 0x6a, 0xc3, 0x73, 0x30, 0xde, 0xc4, 0xde, 0x9e, 0x2d, 0x8a, 0xf5, 0x63, - 0x43, 0x4a, 0x00, 0x19, 0xee, 0xf7, 0x15, 0x47, 0x05, 0x6b, 0x48, 0xf4, 0xa0, 0x6e, 0x83, 0x59, - 0x33, 0x60, 0xe9, 0xe7, 0x23, 0xf0, 0xc0, 0x50, 0xf2, 0xa1, 0x86, 0x9e, 0x00, 0x30, 0xac, 0x56, - 0xdb, 0x63, 0x05, 0x99, 0xe5, 0xa7, 0x24, 0x95, 0xd0, 0xbd, 0x4f, 0x72, 0x4f, 0xdb, 0xf3, 0xc7, - 0xa3, 0x74, 0x1c, 0x98, 0x88, 0x2a, 0x5c, 0xe8, 0x1a, 0x1a, 0xa3, 0x86, 0xe6, 0x0e, 0x98, 0xe9, - 0x40, 0xad, 0x7b, 0x1a, 0x64, 0xdd, 0x34, 0xb0, 0xe5, 0xa9, 0xae, 0xe7, 0x60, 0xad, 0x69, 0x58, - 0x0d, 0x9a, 0x80, 0x13, 0xf9, 0xf8, 0xae, 0x66, 0xba, 0x58, 0x99, 0x62, 0xc3, 0x9b, 0x62, 0x94, - 0x20, 0x68, 0x95, 0x71, 0x02, 0x88, 0xf1, 0x1e, 0x04, 0x1b, 0xf6, 0x11, 0x8b, 0x5f, 0x9b, 0x80, - 0x54, 0xa0, 0xad, 0x43, 0x27, 0x21, 0x7d, 0x5d, 0xbb, 0xa9, 0xa9, 0xa2, 0x55, 0x67, 0x9e, 0x48, - 0x11, 0x59, 0x8d, 0xb7, 0xeb, 0x4f, 0xc3, 0x2c, 0x55, 0xb1, 0xdb, 0x1e, 0x76, 0x54, 0xdd, 0xd4, - 0x5c, 0x97, 0x3a, 0x2d, 0x41, 0x55, 0x11, 0x19, 0xab, 0x92, 0xa1, 0x15, 0x31, 0x82, 0xce, 0xc1, - 0x0c, 0x45, 0x34, 0xdb, 0xa6, 0x67, 0xb4, 0x4c, 0xac, 0x92, 0x87, 0x07, 0x97, 0x26, 0x62, 0xdf, - 0xb2, 0x69, 0xa2, 0x51, 0xe1, 0x0a, 0xc4, 0x22, 0x17, 0xad, 0xc2, 0x09, 0x0a, 0x6b, 0x60, 0x0b, - 0x3b, 0x9a, 0x87, 0x55, 0xfc, 0x99, 0xb6, 0x66, 0xba, 0xaa, 0x66, 0xd5, 0xd5, 0x3d, 0xcd, 0xdd, - 0xcb, 0xce, 0x12, 0x82, 0x62, 0x24, 0x2b, 0x29, 0xc7, 0x89, 0xe2, 0x1a, 0xd7, 0x2b, 0x51, 0xb5, - 0x82, 0x55, 0xff, 0xa4, 0xe6, 0xee, 0xa1, 0x3c, 0x1c, 0xa3, 0x2c, 0xae, 0xe7, 0x18, 0x56, 0x43, - 0xd5, 0xf7, 0xb0, 0x7e, 0x43, 0x6d, 0x7b, 0xbb, 0x17, 0xb2, 0x0f, 0x05, 0xef, 0x4f, 0x2d, 0xdc, - 0xa4, 0x3a, 0x2b, 0x44, 0x65, 0xdb, 0xdb, 0xbd, 0x80, 0x36, 0x21, 0x4d, 0x16, 0xa3, 0x69, 0xbc, - 0x84, 0xd5, 0x5d, 0xdb, 0xa1, 0x95, 0x25, 0x33, 0x64, 0x67, 0x07, 0x3c, 0xb8, 0x5c, 0xe5, 0x80, - 0x8a, 0x5d, 0xc7, 0xf9, 0xf8, 0x66, 0xad, 0x54, 0x5a, 0x55, 0x52, 0x82, 0xe5, 0x92, 0xed, 0x90, - 0x80, 0x6a, 0xd8, 0xbe, 0x83, 0x53, 0x2c, 0xa0, 0x1a, 0xb6, 0x70, 0xef, 0x39, 0x98, 0xd1, 0x75, - 0x36, 0x67, 0x43, 0x57, 0x79, 0x8b, 0xef, 0x66, 0xe5, 0x1e, 0x67, 0xe9, 0xfa, 0x1a, 0x53, 0xe0, - 0x31, 0xee, 0xa2, 0x67, 0xe1, 0x81, 0xae, 0xb3, 0x82, 0xc0, 0xe9, 0x81, 0x59, 0xf6, 0x43, 0xcf, - 0xc1, 0x4c, 0xab, 0x33, 0x08, 0x44, 0x3d, 0x77, 0x6c, 0x75, 0xfa, 0x61, 0x8f, 0xd2, 0xc7, 0x36, - 0x07, 0xeb, 0x9a, 0x87, 0xeb, 0xd9, 0x07, 0x83, 0xda, 0x81, 0x01, 0x74, 0x0a, 0x64, 0x5d, 0x57, - 0xb1, 0xa5, 0xed, 0x98, 0x58, 0xd5, 0x1c, 0x6c, 0x69, 0x6e, 0x76, 0x3e, 0xa8, 0x9c, 0xd1, 0xf5, - 0x12, 0x1d, 0x2d, 0xd0, 0x41, 0xf4, 0x24, 0x4c, 0xdb, 0x3b, 0xd7, 0x75, 0x16, 0x59, 0x6a, 0xcb, - 0xc1, 0xbb, 0xc6, 0x8b, 0xd9, 0x47, 0xa8, 0x9b, 0xa6, 0xc8, 0x00, 0x8d, 0xab, 0x1a, 0x15, 0xa3, - 0x27, 0x40, 0xd6, 0xdd, 0x3d, 0xcd, 0x69, 0xd1, 0xd2, 0xee, 0xb6, 0x34, 0x1d, 0x67, 0x1f, 0x65, - 0xaa, 0x4c, 0xbe, 0x21, 0xc4, 0x24, 0xb2, 0xdd, 0x5b, 0xc6, 0xae, 0x27, 0x18, 0x1f, 0x67, 0x91, - 0x4d, 0x65, 0x9c, 0xed, 0x2a, 0xcc, 0xb6, 0x2d, 0xc3, 0xf2, 0xb0, 0xd3, 0x72, 0x30, 0x69, 0xe2, - 0xd9, 0x4e, 0xcc, 0xfe, 0xdb, 0xc4, 0x01, 0x6d, 0xf8, 0x76, 0x50, 0x9b, 0x05, 0x80, 0x32, 0xd3, - 0x1e, 0x14, 0x2e, 0xe6, 0x21, 0x1d, 0x8c, 0x0b, 0x94, 0x04, 0x16, 0x19, 0xb2, 0x44, 0x6a, 0xec, - 0x4a, 0x75, 0x95, 0x54, 0xc7, 0x17, 0x4a, 0x72, 0x84, 0x54, 0xe9, 0xf5, 0xf2, 0x56, 0x49, 0x55, - 0xb6, 0x37, 0xb6, 0xca, 0x95, 0x92, 0x1c, 0x7d, 0x32, 0x99, 0x78, 0x67, 0x42, 0xbe, 0x7d, 0xfb, - 0xf6, 0xed, 0xc8, 0xe2, 0xf7, 0x22, 0x90, 0xe9, 0xed, 0x8c, 0xd1, 0xc7, 0xe1, 0x41, 0xf1, 0x18, - 0xeb, 0x62, 0x4f, 0xbd, 0x65, 0x38, 0x34, 0x54, 0x9b, 0x1a, 0xeb, 0x2d, 0x7d, 0x2f, 0xcf, 0x72, - 0xad, 0x4d, 0xec, 0x5d, 0x31, 0x1c, 0x12, 0x88, 0x4d, 0xcd, 0x43, 0xeb, 0x30, 0x6f, 0xd9, 0xaa, - 0xeb, 0x69, 0x56, 0x5d, 0x73, 0xea, 0x6a, 0xf7, 0x00, 0x41, 0xd5, 0x74, 0x1d, 0xbb, 0xae, 0xcd, - 0x4a, 0x84, 0xcf, 0xf2, 0x11, 0xcb, 0xde, 0xe4, 0xca, 0xdd, 0xdc, 0x59, 0xe0, 0xaa, 0x7d, 0x11, - 0x11, 0x3d, 0x28, 0x22, 0x1e, 0x82, 0x64, 0x53, 0x6b, 0xa9, 0xd8, 0xf2, 0x9c, 0x0e, 0xed, 0xe7, - 0x12, 0x4a, 0xa2, 0xa9, 0xb5, 0x4a, 0xe4, 0xfa, 0xc3, 0x5b, 0x83, 0xa0, 0x1f, 0xff, 0x35, 0x0a, - 0xe9, 0x60, 0x4f, 0x47, 0x5a, 0x64, 0x9d, 0xe6, 0x6f, 0x89, 0xee, 0xf0, 0x87, 0x0f, 0xed, 0x00, - 0x97, 0x57, 0x48, 0x62, 0xcf, 0x8f, 0xb3, 0x4e, 0x4b, 0x61, 0x48, 0x52, 0x54, 0xc9, 0x9e, 0xc6, - 0xac, 0x7f, 0x4f, 0x28, 0xfc, 0x0a, 0xad, 0xc1, 0xf8, 0x75, 0x97, 0x72, 0x8f, 0x53, 0xee, 0x47, - 0x0e, 0xe7, 0xbe, 0xbc, 0x49, 0xc9, 0x93, 0x97, 0x37, 0xd5, 0x8d, 0xaa, 0x52, 0x29, 0xac, 0x2b, - 0x1c, 0x8e, 0x8e, 0x43, 0xcc, 0xd4, 0x5e, 0xea, 0xf4, 0x96, 0x00, 0x2a, 0x1a, 0xd5, 0xf1, 0xc7, - 0x21, 0x76, 0x0b, 0x6b, 0x37, 0x7a, 0x13, 0x2f, 0x15, 0x7d, 0x88, 0xa1, 0x7f, 0x0a, 0xe2, 0xd4, - 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x1e, 0x43, 0x09, 0x88, 0xad, 0x54, 0x15, 0x12, 0xfe, 0x32, 0xa4, - 0x99, 0x54, 0xad, 0x95, 0x4b, 0x2b, 0x25, 0x39, 0xb2, 0x78, 0x0e, 0xc6, 0x99, 0x13, 0xc8, 0xd6, - 0xf0, 0xdd, 0x20, 0x8f, 0xf1, 0x4b, 0xce, 0x21, 0x89, 0xd1, 0xed, 0x4a, 0xb1, 0xa4, 0xc8, 0x91, - 0xe0, 0xf2, 0xba, 0x90, 0x0e, 0xb6, 0x73, 0x3f, 0x9b, 0x98, 0xfa, 0x07, 0x09, 0x52, 0x81, 0xf6, - 0x8c, 0x34, 0x06, 0x9a, 0x69, 0xda, 0xb7, 0x54, 0xcd, 0x34, 0x34, 0x97, 0x07, 0x05, 0x50, 0x51, - 0x81, 0x48, 0x46, 0x5d, 0xb4, 0x9f, 0x89, 0xf1, 0xaf, 0x49, 0x20, 0xf7, 0xb7, 0x76, 0x7d, 0x06, - 0x4a, 0x3f, 0x57, 0x03, 0x5f, 0x95, 0x20, 0xd3, 0xdb, 0xcf, 0xf5, 0x99, 0x77, 0xf2, 0xe7, 0x6a, - 0xde, 0x5b, 0x11, 0x98, 0xec, 0xe9, 0xe2, 0x46, 0xb5, 0xee, 0x33, 0x30, 0x6d, 0xd4, 0x71, 0xb3, - 0x65, 0x7b, 0xd8, 0xd2, 0x3b, 0xaa, 0x89, 0x6f, 0x62, 0x33, 0xbb, 0x48, 0x13, 0xc5, 0xa9, 0xc3, - 0xfb, 0xc4, 0xe5, 0x72, 0x17, 0xb7, 0x4e, 0x60, 0xf9, 0x99, 0xf2, 0x6a, 0xa9, 0x52, 0xab, 0x6e, - 0x95, 0x36, 0x56, 0xae, 0xa9, 0xdb, 0x1b, 0xbf, 0xb0, 0x51, 0xbd, 0xb2, 0xa1, 0xc8, 0x46, 0x9f, - 0xda, 0x87, 0xb8, 0xd5, 0x6b, 0x20, 0xf7, 0x1b, 0x85, 0x1e, 0x84, 0x61, 0x66, 0xc9, 0x63, 0x68, - 0x06, 0xa6, 0x36, 0xaa, 0xea, 0x66, 0x79, 0xb5, 0xa4, 0x96, 0x2e, 0x5d, 0x2a, 0xad, 0x6c, 0x6d, - 0xb2, 0x07, 0x67, 0x5f, 0x7b, 0xab, 0x77, 0x53, 0xbf, 0x12, 0x85, 0x99, 0x21, 0x96, 0xa0, 0x02, - 0xef, 0xd9, 0xd9, 0x63, 0xc4, 0xc7, 0x46, 0xb1, 0x7e, 0x99, 0x74, 0x05, 0x35, 0xcd, 0xf1, 0x78, - 0x8b, 0xff, 0x04, 0x10, 0x2f, 0x59, 0x9e, 0xb1, 0x6b, 0x60, 0x87, 0x9f, 0x33, 0xb0, 0x46, 0x7e, - 0xaa, 0x2b, 0x67, 0x47, 0x0d, 0x1f, 0x05, 0xd4, 0xb2, 0x5d, 0xc3, 0x33, 0x6e, 0x62, 0xd5, 0xb0, - 0xc4, 0xa1, 0x04, 0x69, 0xec, 0x63, 0x8a, 0x2c, 0x46, 0xca, 0x96, 0xe7, 0x6b, 0x5b, 0xb8, 0xa1, - 0xf5, 0x69, 0x93, 0x04, 0x1e, 0x55, 0x64, 0x31, 0xe2, 0x6b, 0x9f, 0x84, 0x74, 0xdd, 0x6e, 0x93, - 0x36, 0x89, 0xe9, 0x91, 0x7a, 0x21, 0x29, 0x29, 0x26, 0xf3, 0x55, 0x78, 0x1f, 0xdb, 0x3d, 0x0d, - 0x49, 0x2b, 0x29, 0x26, 0x63, 0x2a, 0x8f, 0xc3, 0x94, 0xd6, 0x68, 0x38, 0x84, 0x5c, 0x10, 0xb1, - 0xce, 0x3c, 0xe3, 0x8b, 0xa9, 0xe2, 0xdc, 0x65, 0x48, 0x08, 0x3f, 0x90, 0x92, 0x4c, 0x3c, 0xa1, - 0xb6, 0xd8, 0x99, 0x54, 0x64, 0x29, 0xa9, 0x24, 0x2c, 0x31, 0x78, 0x12, 0xd2, 0x86, 0xab, 0x76, - 0x0f, 0x47, 0x23, 0x0b, 0x91, 0xa5, 0x84, 0x92, 0x32, 0x5c, 0xff, 0x34, 0x6c, 0xf1, 0xf5, 0x08, - 0x64, 0x7a, 0x0f, 0x77, 0xd1, 0x2a, 0x24, 0x4c, 0x5b, 0xd7, 0x68, 0x68, 0xb1, 0x37, 0x0b, 0x4b, - 0x21, 0xe7, 0xc1, 0xcb, 0xeb, 0x5c, 0x5f, 0xf1, 0x91, 0x73, 0xff, 0x2c, 0x41, 0x42, 0x88, 0xd1, - 0x31, 0x88, 0xb5, 0x34, 0x6f, 0x8f, 0xd2, 0xc5, 0x8b, 0x11, 0x59, 0x52, 0xe8, 0x35, 0x91, 0xbb, - 0x2d, 0xcd, 0xa2, 0x21, 0xc0, 0xe5, 0xe4, 0x9a, 0xac, 0xab, 0x89, 0xb5, 0x3a, 0x6d, 0xfb, 0xed, - 0x66, 0x13, 0x5b, 0x9e, 0x2b, 0xd6, 0x95, 0xcb, 0x57, 0xb8, 0x18, 0x3d, 0x05, 0xd3, 0x9e, 0xa3, - 0x19, 0x66, 0x8f, 0x6e, 0x8c, 0xea, 0xca, 0x62, 0xc0, 0x57, 0xce, 0xc3, 0x71, 0xc1, 0x5b, 0xc7, - 0x9e, 0xa6, 0xef, 0xe1, 0x7a, 0x17, 0x34, 0x4e, 0x4f, 0x0e, 0x1f, 0xe4, 0x0a, 0xab, 0x7c, 0x5c, - 0x60, 0x17, 0x7f, 0x20, 0xc1, 0xb4, 0x78, 0x50, 0xa9, 0xfb, 0xce, 0xaa, 0x00, 0x68, 0x96, 0x65, - 0x7b, 0x41, 0x77, 0x0d, 0x86, 0xf2, 0x00, 0x6e, 0xb9, 0xe0, 0x83, 0x94, 0x00, 0xc1, 0x5c, 0x13, - 0xa0, 0x3b, 0x72, 0xa0, 0xdb, 0xe6, 0x21, 0xc5, 0x4f, 0xee, 0xe9, 0xeb, 0x1f, 0xf6, 0x68, 0x0b, - 0x4c, 0x44, 0x9e, 0x68, 0xd0, 0x2c, 0xc4, 0x77, 0x70, 0xc3, 0xb0, 0xf8, 0x79, 0x22, 0xbb, 0x10, - 0xa7, 0x94, 0x31, 0xff, 0x94, 0xb2, 0x78, 0x15, 0x66, 0x74, 0xbb, 0xd9, 0x6f, 0x6e, 0x51, 0xee, - 0x7b, 0xbc, 0x76, 0x3f, 0x29, 0xbd, 0x00, 0xdd, 0x16, 0xf3, 0xcb, 0x91, 0xe8, 0x5a, 0xad, 0xf8, - 0xd5, 0xc8, 0xdc, 0x1a, 0xc3, 0xd5, 0xc4, 0x34, 0x15, 0xbc, 0x6b, 0x62, 0x9d, 0x98, 0x0e, 0x3f, - 0x7e, 0x0c, 0x3e, 0xd6, 0x30, 0xbc, 0xbd, 0xf6, 0xce, 0xb2, 0x6e, 0x37, 0x4f, 0x35, 0xec, 0x86, - 0xdd, 0x7d, 0xdd, 0x45, 0xae, 0xe8, 0x05, 0xfd, 0xc5, 0x5f, 0x79, 0x25, 0x7d, 0xe9, 0x5c, 0xe8, - 0xfb, 0xb1, 0xfc, 0x06, 0xcc, 0x70, 0x65, 0x95, 0x9e, 0xb9, 0xb3, 0x47, 0x03, 0x74, 0xe8, 0xb9, - 0x4b, 0xf6, 0x1b, 0x6f, 0xd3, 0x5a, 0xad, 0x4c, 0x73, 0x28, 0x19, 0x63, 0x0f, 0x10, 0x79, 0x05, - 0x1e, 0xe8, 0xe1, 0x63, 0xfb, 0x12, 0x3b, 0x21, 0x8c, 0xdf, 0xe3, 0x8c, 0x33, 0x01, 0xc6, 0x4d, - 0x0e, 0xcd, 0xaf, 0xc0, 0xe4, 0x51, 0xb8, 0xfe, 0x91, 0x73, 0xa5, 0x71, 0x90, 0x64, 0x0d, 0xa6, - 0x28, 0x89, 0xde, 0x76, 0x3d, 0xbb, 0x49, 0x93, 0xde, 0xe1, 0x34, 0xff, 0xf4, 0x36, 0xdb, 0x28, - 0x19, 0x02, 0x5b, 0xf1, 0x51, 0xf9, 0x3c, 0xd0, 0xd7, 0x0c, 0x75, 0xac, 0x9b, 0x21, 0x0c, 0x6f, - 0x70, 0x43, 0x7c, 0xfd, 0xfc, 0xa7, 0x61, 0x96, 0xfc, 0xa6, 0x39, 0x29, 0x68, 0x49, 0xf8, 0x29, - 0x53, 0xf6, 0x07, 0x2f, 0xb3, 0xbd, 0x38, 0xe3, 0x13, 0x04, 0x6c, 0x0a, 0xac, 0x62, 0x03, 0x7b, - 0x1e, 0x76, 0x5c, 0x55, 0x33, 0x87, 0x99, 0x17, 0x78, 0x4c, 0xcf, 0x7e, 0xf1, 0xdd, 0xde, 0x55, - 0x5c, 0x63, 0xc8, 0x82, 0x69, 0xe6, 0xb7, 0xe1, 0xc1, 0x21, 0x51, 0x31, 0x02, 0xe7, 0x2b, 0x9c, - 0x73, 0x76, 0x20, 0x32, 0x08, 0x6d, 0x0d, 0x84, 0xdc, 0x5f, 0xcb, 0x11, 0x38, 0xff, 0x88, 0x73, - 0x22, 0x8e, 0x15, 0x4b, 0x4a, 0x18, 0x2f, 0xc3, 0xf4, 0x4d, 0xec, 0xec, 0xd8, 0x2e, 0x3f, 0x1a, - 0x19, 0x81, 0xee, 0x55, 0x4e, 0x37, 0xc5, 0x81, 0xf4, 0xac, 0x84, 0x70, 0x3d, 0x0b, 0x89, 0x5d, - 0x4d, 0xc7, 0x23, 0x50, 0x7c, 0x89, 0x53, 0x4c, 0x10, 0x7d, 0x02, 0x2d, 0x40, 0xba, 0x61, 0xf3, - 0xb2, 0x14, 0x0e, 0x7f, 0x8d, 0xc3, 0x53, 0x02, 0xc3, 0x29, 0x5a, 0x76, 0xab, 0x6d, 0x92, 0x9a, - 0x15, 0x4e, 0xf1, 0xc7, 0x82, 0x42, 0x60, 0x38, 0xc5, 0x11, 0xdc, 0xfa, 0x27, 0x82, 0xc2, 0x0d, - 0xf8, 0xf3, 0x79, 0x48, 0xd9, 0x96, 0xd9, 0xb1, 0xad, 0x51, 0x8c, 0xf8, 0x53, 0xce, 0x00, 0x1c, - 0x42, 0x08, 0x2e, 0x42, 0x72, 0xd4, 0x85, 0xf8, 0xb3, 0x77, 0xc5, 0xf6, 0x10, 0x2b, 0xb0, 0x06, - 0x53, 0x22, 0x41, 0x19, 0xb6, 0x35, 0x02, 0xc5, 0x9f, 0x73, 0x8a, 0x4c, 0x00, 0xc6, 0xa7, 0xe1, - 0x61, 0xd7, 0x6b, 0xe0, 0x51, 0x48, 0x5e, 0x17, 0xd3, 0xe0, 0x10, 0xee, 0xca, 0x1d, 0x6c, 0xe9, - 0x7b, 0xa3, 0x31, 0x7c, 0x45, 0xb8, 0x52, 0x60, 0x08, 0xc5, 0x0a, 0x4c, 0x36, 0x35, 0xc7, 0xdd, - 0xd3, 0xcc, 0x91, 0x96, 0xe3, 0x2f, 0x38, 0x47, 0xda, 0x07, 0x71, 0x8f, 0xb4, 0xad, 0xa3, 0xd0, - 0x7c, 0x55, 0x78, 0x24, 0x00, 0xe3, 0x5b, 0xcf, 0xf5, 0xe8, 0x01, 0xd4, 0x51, 0xd8, 0xbe, 0x26, - 0xb6, 0x1e, 0xc3, 0x56, 0x82, 0x8c, 0x17, 0x21, 0xe9, 0x1a, 0x2f, 0x8d, 0x44, 0xf3, 0x97, 0x62, - 0xa5, 0x29, 0x80, 0x80, 0xaf, 0xc1, 0xf1, 0xa1, 0x65, 0x62, 0x04, 0xb2, 0xbf, 0xe2, 0x64, 0xc7, - 0x86, 0x94, 0x0a, 0x9e, 0x12, 0x8e, 0x4a, 0xf9, 0xd7, 0x22, 0x25, 0xe0, 0x3e, 0xae, 0x1a, 0x79, - 0x50, 0x70, 0xb5, 0xdd, 0xa3, 0x79, 0xed, 0x6f, 0x84, 0xd7, 0x18, 0xb6, 0xc7, 0x6b, 0x5b, 0x70, - 0x8c, 0x33, 0x1e, 0x6d, 0x5d, 0xbf, 0x2e, 0x12, 0x2b, 0x43, 0x6f, 0xf7, 0xae, 0xee, 0x2f, 0xc2, - 0x9c, 0xef, 0x4e, 0xd1, 0x91, 0xba, 0x6a, 0x53, 0x6b, 0x8d, 0xc0, 0xfc, 0x0d, 0xce, 0x2c, 0x32, - 0xbe, 0xdf, 0xd2, 0xba, 0x15, 0xad, 0x45, 0xc8, 0xaf, 0x42, 0x56, 0x90, 0xb7, 0x2d, 0x07, 0xeb, - 0x76, 0xc3, 0x32, 0x5e, 0xc2, 0xf5, 0x11, 0xa8, 0xbf, 0xd9, 0xb7, 0x54, 0xdb, 0x01, 0x38, 0x61, - 0x2e, 0x83, 0xec, 0xf7, 0x2a, 0xaa, 0xd1, 0x6c, 0xd9, 0x8e, 0x17, 0xc2, 0xf8, 0xb7, 0x62, 0xa5, - 0x7c, 0x5c, 0x99, 0xc2, 0xf2, 0x25, 0xc8, 0xd0, 0xcb, 0x51, 0x43, 0xf2, 0xef, 0x38, 0xd1, 0x64, - 0x17, 0xc5, 0x13, 0x87, 0x6e, 0x37, 0x5b, 0x9a, 0x33, 0x4a, 0xfe, 0xfb, 0x96, 0x48, 0x1c, 0x1c, - 0xc2, 0x13, 0x87, 0xd7, 0x69, 0x61, 0x52, 0xed, 0x47, 0x60, 0xf8, 0xb6, 0x48, 0x1c, 0x02, 0xc3, - 0x29, 0x44, 0xc3, 0x30, 0x02, 0xc5, 0xdf, 0x0b, 0x0a, 0x81, 0x21, 0x14, 0x9f, 0xea, 0x16, 0x5a, - 0x07, 0x37, 0x0c, 0xd7, 0x73, 0x58, 0x1f, 0x7c, 0x38, 0xd5, 0x77, 0xde, 0xed, 0x6d, 0xc2, 0x94, - 0x00, 0x34, 0x7f, 0x19, 0xa6, 0xfa, 0x5a, 0x0c, 0x14, 0xf6, 0xcd, 0x42, 0xf6, 0x97, 0xdf, 0xe7, - 0xc9, 0xa8, 0xb7, 0xc3, 0xc8, 0xaf, 0x93, 0x75, 0xef, 0xed, 0x03, 0xc2, 0xc9, 0x5e, 0x7e, 0xdf, - 0x5f, 0xfa, 0x9e, 0x36, 0x20, 0x7f, 0x09, 0x26, 0x7b, 0x7a, 0x80, 0x70, 0xaa, 0x5f, 0xe1, 0x54, - 0xe9, 0x60, 0x0b, 0x90, 0x3f, 0x07, 0x31, 0x52, 0xcf, 0xc3, 0xe1, 0xbf, 0xca, 0xe1, 0x54, 0x3d, - 0xff, 0x09, 0x48, 0x88, 0x3a, 0x1e, 0x0e, 0xfd, 0x35, 0x0e, 0xf5, 0x21, 0x04, 0x2e, 0x6a, 0x78, - 0x38, 0xfc, 0x73, 0x02, 0x2e, 0x20, 0x04, 0x3e, 0xba, 0x0b, 0xbf, 0xfb, 0x1b, 0x31, 0x9e, 0x87, - 0x85, 0xef, 0x2e, 0xc2, 0x04, 0x2f, 0xde, 0xe1, 0xe8, 0xcf, 0xf3, 0x9b, 0x0b, 0x44, 0xfe, 0x19, - 0x88, 0x8f, 0xe8, 0xf0, 0xdf, 0xe4, 0x50, 0xa6, 0x9f, 0x5f, 0x81, 0x54, 0xa0, 0x60, 0x87, 0xc3, - 0x7f, 0x8b, 0xc3, 0x83, 0x28, 0x62, 0x3a, 0x2f, 0xd8, 0xe1, 0x04, 0xbf, 0x2d, 0x4c, 0xe7, 0x08, - 0xe2, 0x36, 0x51, 0xab, 0xc3, 0xd1, 0xbf, 0x23, 0xbc, 0x2e, 0x20, 0xf9, 0xe7, 0x21, 0xe9, 0xe7, - 0xdf, 0x70, 0xfc, 0xef, 0x72, 0x7c, 0x17, 0x43, 0x3c, 0x10, 0xc8, 0xff, 0xe1, 0x14, 0xbf, 0x27, - 0x3c, 0x10, 0x40, 0x91, 0x6d, 0xd4, 0x5f, 0xd3, 0xc3, 0x99, 0x7e, 0x5f, 0x6c, 0xa3, 0xbe, 0x92, - 0x4e, 0x56, 0x93, 0xa6, 0xc1, 0x70, 0x8a, 0x3f, 0x10, 0xab, 0x49, 0xf5, 0x89, 0x19, 0xfd, 0x45, - 0x32, 0x9c, 0xe3, 0x0f, 0x85, 0x19, 0x7d, 0x35, 0x32, 0x5f, 0x03, 0x34, 0x58, 0x20, 0xc3, 0xf9, - 0xbe, 0xc0, 0xf9, 0xa6, 0x07, 0xea, 0x63, 0xfe, 0x0a, 0x1c, 0x1b, 0x5e, 0x1c, 0xc3, 0x59, 0xbf, - 0xf8, 0x7e, 0xdf, 0xe3, 0x4c, 0xb0, 0x36, 0xe6, 0xb7, 0xba, 0x59, 0x36, 0x58, 0x18, 0xc3, 0x69, - 0x5f, 0x79, 0xbf, 0x37, 0xd1, 0x06, 0xeb, 0x62, 0xbe, 0x00, 0xd0, 0xad, 0x49, 0xe1, 0x5c, 0xaf, - 0x72, 0xae, 0x00, 0x88, 0x6c, 0x0d, 0x5e, 0x92, 0xc2, 0xf1, 0x5f, 0x12, 0x5b, 0x83, 0x23, 0xc8, - 0xd6, 0x10, 0xd5, 0x28, 0x1c, 0xfd, 0x9a, 0xd8, 0x1a, 0x02, 0x92, 0xbf, 0x08, 0x09, 0xab, 0x6d, - 0x9a, 0x24, 0xb6, 0xd0, 0xe1, 0x9f, 0x11, 0x65, 0x7f, 0xf4, 0x01, 0x07, 0x0b, 0x40, 0xfe, 0x1c, - 0xc4, 0x71, 0x73, 0x07, 0xd7, 0xc3, 0x90, 0xff, 0xfe, 0x81, 0xc8, 0x27, 0x44, 0x3b, 0xff, 0x3c, - 0x00, 0x7b, 0x98, 0xa6, 0x6f, 0x89, 0x42, 0xb0, 0xff, 0xf1, 0x01, 0xff, 0x42, 0xa1, 0x0b, 0xe9, - 0x12, 0xb0, 0xef, 0x1d, 0x0e, 0x27, 0x78, 0xb7, 0x97, 0x80, 0x3e, 0x80, 0x3f, 0x0b, 0x13, 0xd7, - 0x5d, 0xdb, 0xf2, 0xb4, 0x46, 0x18, 0xfa, 0x3f, 0x39, 0x5a, 0xe8, 0x13, 0x87, 0x35, 0x6d, 0x07, - 0x7b, 0x5a, 0xc3, 0x0d, 0xc3, 0xfe, 0x17, 0xc7, 0xfa, 0x00, 0x02, 0xd6, 0x35, 0xd7, 0x1b, 0x65, - 0xde, 0xff, 0x2d, 0xc0, 0x02, 0x40, 0x8c, 0x26, 0xbf, 0x6f, 0xe0, 0x4e, 0x18, 0xf6, 0x3d, 0x61, - 0x34, 0xd7, 0xcf, 0x7f, 0x02, 0x92, 0xe4, 0x27, 0xfb, 0x6a, 0x27, 0x04, 0xfc, 0x3f, 0x1c, 0xdc, - 0x45, 0x90, 0x3b, 0xbb, 0x5e, 0xdd, 0x33, 0xc2, 0x9d, 0xfd, 0xbf, 0x7c, 0xa5, 0x85, 0x7e, 0xbe, - 0x00, 0x29, 0xd7, 0xab, 0xd7, 0xdb, 0xbc, 0xa3, 0x09, 0x81, 0xff, 0xf8, 0x03, 0xff, 0x21, 0xd7, - 0xc7, 0x14, 0x4f, 0x0e, 0x3f, 0xac, 0x83, 0x35, 0x7b, 0xcd, 0x66, 0xc7, 0x74, 0xf0, 0xcd, 0x29, - 0x38, 0xa1, 0xdb, 0xcd, 0x1d, 0xdb, 0x3d, 0x65, 0x61, 0xc3, 0xdb, 0xc3, 0xce, 0x29, 0xe1, 0x36, - 0x7e, 0xca, 0xe6, 0xbb, 0x71, 0xee, 0x68, 0xc7, 0x73, 0x8b, 0x3f, 0x9a, 0x84, 0xc4, 0x8a, 0xe6, - 0x7a, 0xda, 0x2d, 0xad, 0x83, 0x1e, 0x85, 0x44, 0xd9, 0xf2, 0xce, 0x9c, 0xae, 0x79, 0x0e, 0x7d, - 0xbd, 0x14, 0x2d, 0x26, 0xef, 0xdd, 0x99, 0x8f, 0x1b, 0x44, 0xa6, 0xf8, 0x43, 0xe8, 0x61, 0x88, - 0xd3, 0xdf, 0xf4, 0x84, 0x32, 0x5a, 0x9c, 0x7c, 0xe3, 0xce, 0xfc, 0x58, 0x57, 0x8f, 0x8d, 0xa1, - 0x6b, 0x90, 0xaa, 0x74, 0xb6, 0x0d, 0xcb, 0x3b, 0x7f, 0x96, 0xd0, 0x91, 0x89, 0xc7, 0x8a, 0xcf, - 0xdc, 0xbb, 0x33, 0x7f, 0xe6, 0x40, 0x03, 0x49, 0x39, 0xec, 0x4e, 0x4c, 0xa0, 0xe9, 0x57, 0x8b, - 0x41, 0x2e, 0x74, 0x05, 0x12, 0xe2, 0x92, 0x9d, 0xf4, 0x17, 0x2f, 0x72, 0x13, 0xee, 0x8b, 0xdb, - 0x27, 0x43, 0xbf, 0x04, 0xe9, 0x4a, 0xe7, 0x92, 0x69, 0x6b, 0xdc, 0x07, 0xf1, 0x05, 0x69, 0x29, - 0x52, 0xbc, 0x70, 0xef, 0xce, 0xfc, 0xd9, 0x91, 0x89, 0x39, 0x9c, 0x32, 0xf7, 0xb0, 0xa1, 0x17, - 0x20, 0xe9, 0x5f, 0xd3, 0x77, 0x09, 0x91, 0xe2, 0xc7, 0xb9, 0xdd, 0xf7, 0x47, 0xdf, 0xa5, 0x0b, - 0x58, 0xce, 0xdc, 0x3d, 0xb1, 0x20, 0x2d, 0x49, 0xf7, 0x63, 0x39, 0xf7, 0x49, 0x0f, 0x5b, 0xc0, - 0xf2, 0xf3, 0x67, 0xe9, 0xcb, 0x0b, 0xe9, 0x7e, 0x2d, 0xe7, 0xf4, 0x5d, 0x3a, 0x74, 0x19, 0x26, - 0x2a, 0x9d, 0x62, 0xc7, 0xc3, 0x2e, 0xfd, 0x9a, 0x27, 0x5d, 0x7c, 0xfa, 0xde, 0x9d, 0xf9, 0x8f, - 0x8e, 0xc8, 0x4a, 0x71, 0x8a, 0x20, 0x40, 0x0b, 0x90, 0xda, 0xb0, 0x9d, 0xa6, 0x66, 0x32, 0x3e, - 0x60, 0x2f, 0x63, 0x02, 0x22, 0xb4, 0x4d, 0x66, 0xc2, 0x56, 0xdb, 0xa5, 0xff, 0x87, 0xf0, 0x53, - 0xc4, 0x64, 0x97, 0x09, 0x19, 0x10, 0xaf, 0x74, 0x2a, 0x5a, 0x2b, 0x9b, 0xa6, 0x6f, 0x0a, 0x4e, - 0x2c, 0xfb, 0x08, 0xb1, 0xb7, 0x96, 0xe9, 0x38, 0xfd, 0xa4, 0xa2, 0x78, 0xf6, 0xde, 0x9d, 0xf9, - 0xa7, 0x47, 0xbe, 0x63, 0x45, 0x6b, 0xd1, 0xdb, 0xb1, 0x3b, 0xa0, 0x6f, 0x49, 0x64, 0x63, 0xb1, - 0xd3, 0x56, 0x72, 0xc7, 0x49, 0x7a, 0xc7, 0x87, 0x87, 0xde, 0xd1, 0xd7, 0x62, 0xf7, 0xb5, 0x3e, - 0xfb, 0xe6, 0x11, 0x66, 0xca, 0x9e, 0x68, 0xc8, 0xad, 0x7f, 0xfd, 0xcd, 0xfb, 0xde, 0xb4, 0xbe, - 0x05, 0xe8, 0x65, 0x09, 0x26, 0x2b, 0x9d, 0x0d, 0x5e, 0x5b, 0x89, 0xe5, 0x19, 0xfe, 0xb5, 0xfa, - 0x30, 0xcb, 0x03, 0x7a, 0xcc, 0xf6, 0xf3, 0x9f, 0x7d, 0x73, 0xfe, 0xf4, 0xc8, 0x46, 0xd0, 0x14, - 0x44, 0x6d, 0xe8, 0xbd, 0x27, 0xfa, 0x1c, 0xb5, 0xa2, 0x44, 0xea, 0x74, 0x1d, 0xd7, 0x89, 0x15, - 0x53, 0x87, 0x58, 0x11, 0xd0, 0x63, 0x56, 0xe4, 0x49, 0xd4, 0xdf, 0xbf, 0x25, 0x01, 0x3e, 0x54, - 0x85, 0x71, 0xe6, 0x61, 0xfa, 0x25, 0x59, 0xf2, 0x88, 0x61, 0xd8, 0x5d, 0x1c, 0x85, 0xd3, 0xcc, - 0x5d, 0x00, 0xe8, 0xc6, 0x18, 0x92, 0x21, 0x7a, 0x03, 0x77, 0xf8, 0xe7, 0x82, 0xe4, 0x27, 0x9a, - 0xed, 0x7e, 0x0e, 0x2b, 0x2d, 0xc5, 0xf8, 0x37, 0xae, 0xf9, 0xc8, 0x05, 0x69, 0xee, 0x39, 0x90, - 0xfb, 0x63, 0xe5, 0x48, 0x78, 0x05, 0xd0, 0xe0, 0x8a, 0x05, 0x19, 0xe2, 0x8c, 0xe1, 0xb1, 0x20, - 0x43, 0xea, 0xb4, 0xdc, 0xf5, 0xf9, 0x15, 0xc3, 0x74, 0x6d, 0x6b, 0x80, 0xb3, 0xdf, 0xff, 0x3f, - 0x1d, 0xe7, 0x62, 0x0e, 0xc6, 0x99, 0x90, 0xcc, 0xa5, 0x4c, 0xcb, 0x07, 0xad, 0x72, 0x0a, 0xbb, - 0x28, 0xae, 0xbf, 0x71, 0x37, 0x37, 0xf6, 0xfd, 0xbb, 0xb9, 0xb1, 0x7f, 0xb9, 0x9b, 0x1b, 0x7b, - 0xeb, 0x6e, 0x4e, 0x7a, 0xe7, 0x6e, 0x4e, 0x7a, 0xef, 0x6e, 0x4e, 0xfa, 0xc9, 0xdd, 0x9c, 0x74, - 0x7b, 0x3f, 0x27, 0x7d, 0x65, 0x3f, 0x27, 0x7d, 0x7d, 0x3f, 0x27, 0x7d, 0x67, 0x3f, 0x27, 0x7d, - 0x77, 0x3f, 0x27, 0xbd, 0xb1, 0x9f, 0x1b, 0xfb, 0xfe, 0x7e, 0x6e, 0xec, 0xad, 0xfd, 0x9c, 0xf4, - 0xce, 0x7e, 0x6e, 0xec, 0xbd, 0xfd, 0x9c, 0xf4, 0x93, 0xfd, 0xdc, 0xd8, 0xed, 0x1f, 0xe6, 0xc6, - 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x04, 0x2d, 0x6f, 0x00, 0x11, 0x36, 0x00, 0x00, + // 4236 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5b, 0x70, 0x1b, 0xd7, + 0x79, 0xe6, 0xe2, 0x42, 0x02, 0x3f, 0x40, 0x70, 0x79, 0x48, 0xcb, 0x10, 0x1d, 0x81, 0x14, 0x65, + 0x5b, 0xb4, 0x9d, 0x50, 0x1e, 0xdd, 0x05, 0x25, 0x76, 0x09, 0x12, 0x62, 0xa0, 0x12, 0x24, 0xb3, + 0x24, 0x23, 0xcb, 0x69, 0x67, 0x67, 0xb9, 0x38, 0x04, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, 0x92, + 0xa1, 0xe9, 0x83, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0xde, 0x3b, 0x93, 0xc4, 0x75, 0xdc, 0xcb, 0x4c, + 0xeb, 0x34, 0xbd, 0xe5, 0xd2, 0xa4, 0x69, 0x9f, 0xf2, 0x92, 0xd6, 0x4f, 0x9d, 0xe4, 0xad, 0x0f, + 0x1d, 0xd9, 0x62, 0x3c, 0x53, 0xa7, 0x75, 0x1b, 0xb7, 0xf5, 0x83, 0x47, 0x7e, 0xe9, 0x9c, 0xdb, + 0x62, 0x71, 0xa1, 0x16, 0x54, 0xc6, 0xce, 0x13, 0xb1, 0xff, 0xf9, 0xbf, 0xef, 0xfc, 0xe7, 0x3f, + 0xff, 0xf9, 0xff, 0x73, 0xce, 0x2e, 0xe1, 0x27, 0x17, 0x60, 0xa6, 0x6e, 0xdb, 0x75, 0x13, 0x9f, + 0x70, 0x5c, 0xdb, 0xb7, 0xb7, 0x9b, 0x3b, 0x27, 0x6a, 0xd8, 0xd3, 0x5d, 0xc3, 0xf1, 0x6d, 0x77, + 0x9e, 0xca, 0xd0, 0x18, 0xd3, 0x98, 0x17, 0x1a, 0xb3, 0x55, 0x18, 0xbf, 0x64, 0x98, 0x78, 0x29, + 0x50, 0xdc, 0xc0, 0x3e, 0x3a, 0x0f, 0x89, 0x1d, 0xc3, 0xc4, 0x79, 0x69, 0x26, 0x3e, 0x97, 0x39, + 0xf9, 0xe8, 0x7c, 0x17, 0x68, 0xbe, 0x13, 0xb1, 0x4e, 0xc4, 0x0a, 0x45, 0xcc, 0xbe, 0x99, 0x80, + 0x89, 0x3e, 0xad, 0x08, 0x41, 0xc2, 0xd2, 0x1a, 0x84, 0x51, 0x9a, 0x4b, 0x2b, 0xf4, 0x37, 0xca, + 0xc3, 0x88, 0xa3, 0xe9, 0xd7, 0xb5, 0x3a, 0xce, 0xc7, 0xa8, 0x58, 0x3c, 0xa2, 0x02, 0x40, 0x0d, + 0x3b, 0xd8, 0xaa, 0x61, 0x4b, 0x6f, 0xe5, 0xe3, 0x33, 0xf1, 0xb9, 0xb4, 0x12, 0x92, 0xa0, 0xa7, + 0x60, 0xdc, 0x69, 0x6e, 0x9b, 0x86, 0xae, 0x86, 0xd4, 0x60, 0x26, 0x3e, 0x97, 0x54, 0x64, 0xd6, + 0xb0, 0xd4, 0x56, 0x3e, 0x0e, 0x63, 0x37, 0xb1, 0x76, 0x3d, 0xac, 0x9a, 0xa1, 0xaa, 0x39, 0x22, + 0x0e, 0x29, 0x2e, 0x42, 0xb6, 0x81, 0x3d, 0x4f, 0xab, 0x63, 0xd5, 0x6f, 0x39, 0x38, 0x9f, 0xa0, + 0xa3, 0x9f, 0xe9, 0x19, 0x7d, 0xf7, 0xc8, 0x33, 0x1c, 0xb5, 0xd9, 0x72, 0x30, 0x5a, 0x80, 0x34, + 0xb6, 0x9a, 0x0d, 0xc6, 0x90, 0xdc, 0xc7, 0x7f, 0x65, 0xab, 0xd9, 0xe8, 0x66, 0x49, 0x11, 0x18, + 0xa7, 0x18, 0xf1, 0xb0, 0x7b, 0xc3, 0xd0, 0x71, 0x7e, 0x98, 0x12, 0x1c, 0xef, 0x21, 0xd8, 0x60, + 0xed, 0xdd, 0x1c, 0x02, 0x87, 0x16, 0x21, 0x8d, 0x5f, 0xf0, 0xb1, 0xe5, 0x19, 0xb6, 0x95, 0x1f, + 0xa1, 0x24, 0x8f, 0xf5, 0x99, 0x45, 0x6c, 0xd6, 0xba, 0x29, 0xda, 0x38, 0x74, 0x16, 0x46, 0x6c, + 0xc7, 0x37, 0x6c, 0xcb, 0xcb, 0xa7, 0x66, 0xa4, 0xb9, 0xcc, 0xc9, 0x8f, 0xf4, 0x0d, 0x84, 0x35, + 0xa6, 0xa3, 0x08, 0x65, 0x54, 0x01, 0xd9, 0xb3, 0x9b, 0xae, 0x8e, 0x55, 0xdd, 0xae, 0x61, 0xd5, + 0xb0, 0x76, 0xec, 0x7c, 0x9a, 0x12, 0x4c, 0xf7, 0x0e, 0x84, 0x2a, 0x2e, 0xda, 0x35, 0x5c, 0xb1, + 0x76, 0x6c, 0x25, 0xe7, 0x75, 0x3c, 0xa3, 0x43, 0x30, 0xec, 0xb5, 0x2c, 0x5f, 0x7b, 0x21, 0x9f, + 0xa5, 0x11, 0xc2, 0x9f, 0x66, 0xff, 0x61, 0x18, 0xc6, 0x06, 0x09, 0xb1, 0x8b, 0x90, 0xdc, 0x21, + 0xa3, 0xcc, 0xc7, 0x0e, 0xe2, 0x03, 0x86, 0xe9, 0x74, 0xe2, 0xf0, 0x03, 0x3a, 0x71, 0x01, 0x32, + 0x16, 0xf6, 0x7c, 0x5c, 0x63, 0x11, 0x11, 0x1f, 0x30, 0xa6, 0x80, 0x81, 0x7a, 0x43, 0x2a, 0xf1, + 0x40, 0x21, 0xf5, 0x1c, 0x8c, 0x05, 0x26, 0xa9, 0xae, 0x66, 0xd5, 0x45, 0x6c, 0x9e, 0x88, 0xb2, + 0x64, 0xbe, 0x2c, 0x70, 0x0a, 0x81, 0x29, 0x39, 0xdc, 0xf1, 0x8c, 0x96, 0x00, 0x6c, 0x0b, 0xdb, + 0x3b, 0x6a, 0x0d, 0xeb, 0x66, 0x3e, 0xb5, 0x8f, 0x97, 0xd6, 0x88, 0x4a, 0x8f, 0x97, 0x6c, 0x26, + 0xd5, 0x4d, 0x74, 0xa1, 0x1d, 0x6a, 0x23, 0xfb, 0x44, 0x4a, 0x95, 0x2d, 0xb2, 0x9e, 0x68, 0xdb, + 0x82, 0x9c, 0x8b, 0x49, 0xdc, 0xe3, 0x1a, 0x1f, 0x59, 0x9a, 0x1a, 0x31, 0x1f, 0x39, 0x32, 0x85, + 0xc3, 0xd8, 0xc0, 0x46, 0xdd, 0xf0, 0x23, 0x3a, 0x06, 0x81, 0x40, 0xa5, 0x61, 0x05, 0x34, 0x0b, + 0x65, 0x85, 0x70, 0x55, 0x6b, 0xe0, 0xa9, 0x5b, 0x90, 0xeb, 0x74, 0x0f, 0x9a, 0x84, 0xa4, 0xe7, + 0x6b, 0xae, 0x4f, 0xa3, 0x30, 0xa9, 0xb0, 0x07, 0x24, 0x43, 0x1c, 0x5b, 0x35, 0x9a, 0xe5, 0x92, + 0x0a, 0xf9, 0x89, 0x7e, 0xae, 0x3d, 0xe0, 0x38, 0x1d, 0xf0, 0xe3, 0xbd, 0x33, 0xda, 0xc1, 0xdc, + 0x3d, 0xee, 0xa9, 0x73, 0x30, 0xda, 0x31, 0x80, 0x41, 0xbb, 0x9e, 0xfd, 0x25, 0x78, 0xa8, 0x2f, + 0x35, 0x7a, 0x0e, 0x26, 0x9b, 0x96, 0x61, 0xf9, 0xd8, 0x75, 0x5c, 0x4c, 0x22, 0x96, 0x75, 0x95, + 0xff, 0xf7, 0x91, 0x7d, 0x62, 0x6e, 0x2b, 0xac, 0xcd, 0x58, 0x94, 0x89, 0x66, 0xaf, 0xf0, 0xc9, + 0x74, 0xea, 0xad, 0x11, 0xf9, 0xf6, 0xed, 0xdb, 0xb7, 0x63, 0xb3, 0x5f, 0x1a, 0x86, 0xc9, 0x7e, + 0x6b, 0xa6, 0xef, 0xf2, 0x3d, 0x04, 0xc3, 0x56, 0xb3, 0xb1, 0x8d, 0x5d, 0xea, 0xa4, 0xa4, 0xc2, + 0x9f, 0xd0, 0x02, 0x24, 0x4d, 0x6d, 0x1b, 0x9b, 0xf9, 0xc4, 0x8c, 0x34, 0x97, 0x3b, 0xf9, 0xd4, + 0x40, 0xab, 0x72, 0x7e, 0x85, 0x40, 0x14, 0x86, 0x44, 0xcf, 0x40, 0x82, 0xa7, 0x68, 0xc2, 0xf0, + 0xe4, 0x60, 0x0c, 0x64, 0x2d, 0x29, 0x14, 0x87, 0x1e, 0x81, 0x34, 0xf9, 0xcb, 0x62, 0x63, 0x98, + 0xda, 0x9c, 0x22, 0x02, 0x12, 0x17, 0x68, 0x0a, 0x52, 0x74, 0x99, 0xd4, 0xb0, 0x28, 0x6d, 0xc1, + 0x33, 0x09, 0xac, 0x1a, 0xde, 0xd1, 0x9a, 0xa6, 0xaf, 0xde, 0xd0, 0xcc, 0x26, 0xa6, 0x01, 0x9f, + 0x56, 0xb2, 0x5c, 0xf8, 0x69, 0x22, 0x43, 0xd3, 0x90, 0x61, 0xab, 0xca, 0xb0, 0x6a, 0xf8, 0x05, + 0x9a, 0x3d, 0x93, 0x0a, 0x5b, 0x68, 0x15, 0x22, 0x21, 0xdd, 0x5f, 0xf3, 0x6c, 0x4b, 0x84, 0x26, + 0xed, 0x82, 0x08, 0x68, 0xf7, 0xe7, 0xba, 0x13, 0xf7, 0x91, 0xfe, 0xc3, 0xeb, 0x8e, 0xa9, 0xd9, + 0xef, 0xc4, 0x20, 0x41, 0xf3, 0xc5, 0x18, 0x64, 0x36, 0xaf, 0xae, 0x97, 0xd5, 0xa5, 0xb5, 0xad, + 0xd2, 0x4a, 0x59, 0x96, 0x50, 0x0e, 0x80, 0x0a, 0x2e, 0xad, 0xac, 0x2d, 0x6c, 0xca, 0xb1, 0xe0, + 0xb9, 0xb2, 0xba, 0x79, 0xf6, 0xb4, 0x1c, 0x0f, 0x00, 0x5b, 0x4c, 0x90, 0x08, 0x2b, 0x9c, 0x3a, + 0x29, 0x27, 0x91, 0x0c, 0x59, 0x46, 0x50, 0x79, 0xae, 0xbc, 0x74, 0xf6, 0xb4, 0x3c, 0xdc, 0x29, + 0x39, 0x75, 0x52, 0x1e, 0x41, 0xa3, 0x90, 0xa6, 0x92, 0xd2, 0xda, 0xda, 0x8a, 0x9c, 0x0a, 0x38, + 0x37, 0x36, 0x95, 0xca, 0xea, 0xb2, 0x9c, 0x0e, 0x38, 0x97, 0x95, 0xb5, 0xad, 0x75, 0x19, 0x02, + 0x86, 0x6a, 0x79, 0x63, 0x63, 0x61, 0xb9, 0x2c, 0x67, 0x02, 0x8d, 0xd2, 0xd5, 0xcd, 0xf2, 0x86, + 0x9c, 0xed, 0x30, 0xeb, 0xd4, 0x49, 0x79, 0x34, 0xe8, 0xa2, 0xbc, 0xba, 0x55, 0x95, 0x73, 0x68, + 0x1c, 0x46, 0x59, 0x17, 0xc2, 0x88, 0xb1, 0x2e, 0xd1, 0xd9, 0xd3, 0xb2, 0xdc, 0x36, 0x84, 0xb1, + 0x8c, 0x77, 0x08, 0xce, 0x9e, 0x96, 0xd1, 0xec, 0x22, 0x24, 0x69, 0x74, 0x21, 0x04, 0xb9, 0x95, + 0x85, 0x52, 0x79, 0x45, 0x5d, 0x5b, 0xdf, 0xac, 0xac, 0xad, 0x2e, 0xac, 0xc8, 0x52, 0x5b, 0xa6, + 0x94, 0x3f, 0xb5, 0x55, 0x51, 0xca, 0x4b, 0x72, 0x2c, 0x2c, 0x5b, 0x2f, 0x2f, 0x6c, 0x96, 0x97, + 0xe4, 0xf8, 0xac, 0x0e, 0x93, 0xfd, 0xf2, 0x64, 0xdf, 0x95, 0x11, 0x9a, 0xe2, 0xd8, 0x3e, 0x53, + 0x4c, 0xb9, 0x7a, 0xa6, 0xf8, 0x47, 0x31, 0x98, 0xe8, 0x53, 0x2b, 0xfa, 0x76, 0xf2, 0x2c, 0x24, + 0x59, 0x88, 0xb2, 0xea, 0xf9, 0x44, 0xdf, 0xa2, 0x43, 0x03, 0xb6, 0xa7, 0x82, 0x52, 0x5c, 0x78, + 0x07, 0x11, 0xdf, 0x67, 0x07, 0x41, 0x28, 0x7a, 0x72, 0xfa, 0x2f, 0xf6, 0xe4, 0x74, 0x56, 0xf6, + 0xce, 0x0e, 0x52, 0xf6, 0xa8, 0xec, 0x60, 0xb9, 0x3d, 0xd9, 0x27, 0xb7, 0x5f, 0x84, 0xf1, 0x1e, + 0xa2, 0x81, 0x73, 0xec, 0x8b, 0x12, 0xe4, 0xf7, 0x73, 0x4e, 0x44, 0xa6, 0x8b, 0x75, 0x64, 0xba, + 0x8b, 0xdd, 0x1e, 0x3c, 0xba, 0xff, 0x24, 0xf4, 0xcc, 0xf5, 0xab, 0x12, 0x1c, 0xea, 0xbf, 0x53, + 0xec, 0x6b, 0xc3, 0x33, 0x30, 0xdc, 0xc0, 0xfe, 0xae, 0x2d, 0x76, 0x4b, 0x8f, 0xf7, 0xa9, 0xc1, + 0xa4, 0xb9, 0x7b, 0xb2, 0x39, 0x2a, 0x5c, 0xc4, 0xe3, 0xfb, 0x6d, 0xf7, 0x98, 0x35, 0x3d, 0x96, + 0x7e, 0x21, 0x06, 0x0f, 0xf5, 0x25, 0xef, 0x6b, 0xe8, 0x11, 0x00, 0xc3, 0x72, 0x9a, 0x3e, 0xdb, + 0x11, 0xb1, 0x04, 0x9b, 0xa6, 0x12, 0x9a, 0xbc, 0x48, 0xf2, 0x6c, 0xfa, 0x41, 0x7b, 0x9c, 0xb6, + 0x03, 0x13, 0x51, 0x85, 0xf3, 0x6d, 0x43, 0x13, 0xd4, 0xd0, 0xc2, 0x3e, 0x23, 0xed, 0x09, 0xcc, + 0xa7, 0x41, 0xd6, 0x4d, 0x03, 0x5b, 0xbe, 0xea, 0xf9, 0x2e, 0xd6, 0x1a, 0x86, 0x55, 0xa7, 0x15, + 0x24, 0x55, 0x4c, 0xee, 0x68, 0xa6, 0x87, 0x95, 0x31, 0xd6, 0xbc, 0x21, 0x5a, 0x09, 0x82, 0x06, + 0x90, 0x1b, 0x42, 0x0c, 0x77, 0x20, 0x58, 0x73, 0x80, 0x98, 0xfd, 0x56, 0x0a, 0x32, 0xa1, 0x7d, + 0x35, 0x3a, 0x0a, 0xd9, 0x6b, 0xda, 0x0d, 0x4d, 0x15, 0x67, 0x25, 0xe6, 0x89, 0x0c, 0x91, 0xad, + 0xf3, 0xf3, 0xd2, 0xd3, 0x30, 0x49, 0x55, 0xec, 0xa6, 0x8f, 0x5d, 0x55, 0x37, 0x35, 0xcf, 0xa3, + 0x4e, 0x4b, 0x51, 0x55, 0x44, 0xda, 0xd6, 0x48, 0xd3, 0xa2, 0x68, 0x41, 0x67, 0x60, 0x82, 0x22, + 0x1a, 0x4d, 0xd3, 0x37, 0x1c, 0x13, 0xab, 0xe4, 0xf4, 0xe6, 0xd1, 0x4a, 0x12, 0x58, 0x36, 0x4e, + 0x34, 0xaa, 0x5c, 0x81, 0x58, 0xe4, 0xa1, 0x25, 0x38, 0x42, 0x61, 0x75, 0x6c, 0x61, 0x57, 0xf3, + 0xb1, 0x8a, 0x3f, 0xdb, 0xd4, 0x4c, 0x4f, 0xd5, 0xac, 0x9a, 0xba, 0xab, 0x79, 0xbb, 0xf9, 0x49, + 0x42, 0x50, 0x8a, 0xe5, 0x25, 0xe5, 0x30, 0x51, 0x5c, 0xe6, 0x7a, 0x65, 0xaa, 0xb6, 0x60, 0xd5, + 0x3e, 0xa9, 0x79, 0xbb, 0xa8, 0x08, 0x87, 0x28, 0x8b, 0xe7, 0xbb, 0x86, 0x55, 0x57, 0xf5, 0x5d, + 0xac, 0x5f, 0x57, 0x9b, 0xfe, 0xce, 0xf9, 0xfc, 0x23, 0xe1, 0xfe, 0xa9, 0x85, 0x1b, 0x54, 0x67, + 0x91, 0xa8, 0x6c, 0xf9, 0x3b, 0xe7, 0xd1, 0x06, 0x64, 0xc9, 0x64, 0x34, 0x8c, 0x5b, 0x58, 0xdd, + 0xb1, 0x5d, 0x5a, 0x1a, 0x73, 0x7d, 0x52, 0x53, 0xc8, 0x83, 0xf3, 0x6b, 0x1c, 0x50, 0xb5, 0x6b, + 0xb8, 0x98, 0xdc, 0x58, 0x2f, 0x97, 0x97, 0x94, 0x8c, 0x60, 0xb9, 0x64, 0xbb, 0x24, 0xa0, 0xea, + 0x76, 0xe0, 0xe0, 0x0c, 0x0b, 0xa8, 0xba, 0x2d, 0xdc, 0x7b, 0x06, 0x26, 0x74, 0x9d, 0x8d, 0xd9, + 0xd0, 0x55, 0x7e, 0xc6, 0xf2, 0xf2, 0x72, 0x87, 0xb3, 0x74, 0x7d, 0x99, 0x29, 0xf0, 0x18, 0xf7, + 0xd0, 0x05, 0x78, 0xa8, 0xed, 0xac, 0x30, 0x70, 0xbc, 0x67, 0x94, 0xdd, 0xd0, 0x33, 0x30, 0xe1, + 0xb4, 0x7a, 0x81, 0xa8, 0xa3, 0x47, 0xa7, 0xd5, 0x0d, 0x3b, 0x07, 0x93, 0xce, 0xae, 0xd3, 0x8b, + 0x7b, 0x32, 0x8c, 0x43, 0xce, 0xae, 0xd3, 0x0d, 0x7c, 0x8c, 0x1e, 0xb8, 0x5d, 0xac, 0x6b, 0x3e, + 0xae, 0xe5, 0x1f, 0x0e, 0xab, 0x87, 0x1a, 0xd0, 0x09, 0x90, 0x75, 0x5d, 0xc5, 0x96, 0xb6, 0x6d, + 0x62, 0x55, 0x73, 0xb1, 0xa5, 0x79, 0xf9, 0xe9, 0xb0, 0x72, 0x4e, 0xd7, 0xcb, 0xb4, 0x75, 0x81, + 0x36, 0xa2, 0x27, 0x61, 0xdc, 0xde, 0xbe, 0xa6, 0xb3, 0x90, 0x54, 0x1d, 0x17, 0xef, 0x18, 0x2f, + 0xe4, 0x1f, 0xa5, 0xfe, 0x1d, 0x23, 0x0d, 0x34, 0x20, 0xd7, 0xa9, 0x18, 0x3d, 0x01, 0xb2, 0xee, + 0xed, 0x6a, 0xae, 0x43, 0x73, 0xb2, 0xe7, 0x68, 0x3a, 0xce, 0x3f, 0xc6, 0x54, 0x99, 0x7c, 0x55, + 0x88, 0xc9, 0x92, 0xf0, 0x6e, 0x1a, 0x3b, 0xbe, 0x60, 0x3c, 0xce, 0x96, 0x04, 0x95, 0x71, 0xb6, + 0x39, 0x90, 0x89, 0x2b, 0x3a, 0x3a, 0x9e, 0xa3, 0x6a, 0x39, 0x67, 0xd7, 0x09, 0xf7, 0x7b, 0x0c, + 0x46, 0x89, 0x66, 0xbb, 0xd3, 0x27, 0xd8, 0x86, 0xcc, 0xd9, 0x0d, 0xf5, 0xf8, 0x81, 0xed, 0x8d, + 0x67, 0x8b, 0x90, 0x0d, 0xc7, 0x27, 0x4a, 0x03, 0x8b, 0x50, 0x59, 0x22, 0x9b, 0x95, 0xc5, 0xb5, + 0x25, 0xb2, 0xcd, 0x78, 0xbe, 0x2c, 0xc7, 0xc8, 0x76, 0x67, 0xa5, 0xb2, 0x59, 0x56, 0x95, 0xad, + 0xd5, 0xcd, 0x4a, 0xb5, 0x2c, 0xc7, 0xc3, 0xfb, 0xea, 0xef, 0xc7, 0x20, 0xd7, 0x79, 0x44, 0x42, + 0x1f, 0x87, 0x87, 0xc5, 0x7d, 0x86, 0x87, 0x7d, 0xf5, 0xa6, 0xe1, 0xd2, 0x25, 0xd3, 0xd0, 0x58, + 0xf9, 0x0a, 0x26, 0x6d, 0x92, 0x6b, 0x6d, 0x60, 0xff, 0x8a, 0xe1, 0x92, 0x05, 0xd1, 0xd0, 0x7c, + 0xb4, 0x02, 0xd3, 0x96, 0xad, 0x7a, 0xbe, 0x66, 0xd5, 0x34, 0xb7, 0xa6, 0xb6, 0x6f, 0x92, 0x54, + 0x4d, 0xd7, 0xb1, 0xe7, 0xd9, 0xac, 0x54, 0x05, 0x2c, 0x1f, 0xb1, 0xec, 0x0d, 0xae, 0xdc, 0xce, + 0xe1, 0x0b, 0x5c, 0xb5, 0x2b, 0xc0, 0xe2, 0xfb, 0x05, 0xd8, 0x23, 0x90, 0x6e, 0x68, 0x8e, 0x8a, + 0x2d, 0xdf, 0x6d, 0xd1, 0x8d, 0x71, 0x4a, 0x49, 0x35, 0x34, 0xa7, 0x4c, 0x9e, 0x3f, 0x9c, 0xf3, + 0xc9, 0xbf, 0xc5, 0x21, 0x1b, 0xde, 0x1c, 0x93, 0xb3, 0x86, 0x4e, 0xeb, 0x88, 0x44, 0x33, 0xcd, + 0xb1, 0xfb, 0x6e, 0xa5, 0xe7, 0x17, 0x49, 0x81, 0x29, 0x0e, 0xb3, 0x2d, 0xab, 0xc2, 0x90, 0xa4, + 0xb8, 0x93, 0xdc, 0x82, 0xd9, 0x16, 0x21, 0xa5, 0xf0, 0x27, 0xb4, 0x0c, 0xc3, 0xd7, 0x3c, 0xca, + 0x3d, 0x4c, 0xb9, 0x1f, 0xbd, 0x3f, 0xf7, 0xe5, 0x0d, 0x4a, 0x9e, 0xbe, 0xbc, 0xa1, 0xae, 0xae, + 0x29, 0xd5, 0x85, 0x15, 0x85, 0xc3, 0xd1, 0x61, 0x48, 0x98, 0xda, 0xad, 0x56, 0x67, 0x29, 0xa2, + 0xa2, 0x41, 0x1d, 0x7f, 0x18, 0x12, 0x37, 0xb1, 0x76, 0xbd, 0xb3, 0x00, 0x50, 0xd1, 0x07, 0x18, + 0xfa, 0x27, 0x20, 0x49, 0xfd, 0x85, 0x00, 0xb8, 0xc7, 0xe4, 0x21, 0x94, 0x82, 0xc4, 0xe2, 0x9a, + 0x42, 0xc2, 0x5f, 0x86, 0x2c, 0x93, 0xaa, 0xeb, 0x95, 0xf2, 0x62, 0x59, 0x8e, 0xcd, 0x9e, 0x81, + 0x61, 0xe6, 0x04, 0xb2, 0x34, 0x02, 0x37, 0xc8, 0x43, 0xfc, 0x91, 0x73, 0x48, 0xa2, 0x75, 0xab, + 0x5a, 0x2a, 0x2b, 0x72, 0x2c, 0x3c, 0xbd, 0x1e, 0x64, 0xc3, 0xfb, 0xe2, 0x0f, 0x27, 0xa6, 0xfe, + 0x51, 0x82, 0x4c, 0x68, 0x9f, 0x4b, 0x36, 0x28, 0x9a, 0x69, 0xda, 0x37, 0x55, 0xcd, 0x34, 0x34, + 0x8f, 0x07, 0x05, 0x50, 0xd1, 0x02, 0x91, 0x0c, 0x3a, 0x69, 0x1f, 0x8a, 0xf1, 0xaf, 0x48, 0x20, + 0x77, 0x6f, 0x31, 0xbb, 0x0c, 0x94, 0x7e, 0xa6, 0x06, 0xbe, 0x2c, 0x41, 0xae, 0x73, 0x5f, 0xd9, + 0x65, 0xde, 0xd1, 0x9f, 0xa9, 0x79, 0x6f, 0xc4, 0x60, 0xb4, 0x63, 0x37, 0x39, 0xa8, 0x75, 0x9f, + 0x85, 0x71, 0xa3, 0x86, 0x1b, 0x8e, 0xed, 0x63, 0x4b, 0x6f, 0xa9, 0x26, 0xbe, 0x81, 0xcd, 0xfc, + 0x2c, 0x4d, 0x14, 0x27, 0xee, 0xbf, 0x5f, 0x9d, 0xaf, 0xb4, 0x71, 0x2b, 0x04, 0x56, 0x9c, 0xa8, + 0x2c, 0x95, 0xab, 0xeb, 0x6b, 0x9b, 0xe5, 0xd5, 0xc5, 0xab, 0xea, 0xd6, 0xea, 0xcf, 0xaf, 0xae, + 0x5d, 0x59, 0x55, 0x64, 0xa3, 0x4b, 0xed, 0x03, 0x5c, 0xea, 0xeb, 0x20, 0x77, 0x1b, 0x85, 0x1e, + 0x86, 0x7e, 0x66, 0xc9, 0x43, 0x68, 0x02, 0xc6, 0x56, 0xd7, 0xd4, 0x8d, 0xca, 0x52, 0x59, 0x2d, + 0x5f, 0xba, 0x54, 0x5e, 0xdc, 0xdc, 0x60, 0x37, 0x10, 0x81, 0xf6, 0x66, 0xe7, 0xa2, 0x7e, 0x29, + 0x0e, 0x13, 0x7d, 0x2c, 0x41, 0x0b, 0xfc, 0xec, 0xc0, 0x8e, 0x33, 0x1f, 0x1b, 0xc4, 0xfa, 0x79, + 0x52, 0xf2, 0xd7, 0x35, 0xd7, 0xe7, 0x47, 0x8d, 0x27, 0x80, 0x78, 0xc9, 0xf2, 0x8d, 0x1d, 0x03, + 0xbb, 0xfc, 0xc2, 0x86, 0x1d, 0x28, 0xc6, 0xda, 0x72, 0x76, 0x67, 0xf3, 0x51, 0x40, 0x8e, 0xed, + 0x19, 0xbe, 0x71, 0x03, 0xab, 0x86, 0x25, 0x6e, 0x77, 0xc8, 0x01, 0x23, 0xa1, 0xc8, 0xa2, 0xa5, + 0x62, 0xf9, 0x81, 0xb6, 0x85, 0xeb, 0x5a, 0x97, 0x36, 0x49, 0xe0, 0x71, 0x45, 0x16, 0x2d, 0x81, + 0xf6, 0x51, 0xc8, 0xd6, 0xec, 0x26, 0xd9, 0x75, 0x31, 0x3d, 0x52, 0x2f, 0x24, 0x25, 0xc3, 0x64, + 0x81, 0x0a, 0xdf, 0x4f, 0xb7, 0xaf, 0x95, 0xb2, 0x4a, 0x86, 0xc9, 0x98, 0xca, 0x71, 0x18, 0xd3, + 0xea, 0x75, 0x97, 0x90, 0x0b, 0x22, 0x76, 0x42, 0xc8, 0x05, 0x62, 0xaa, 0x38, 0x75, 0x19, 0x52, + 0xc2, 0x0f, 0xa4, 0x24, 0x13, 0x4f, 0xa8, 0x0e, 0x3b, 0xf6, 0xc6, 0xe6, 0xd2, 0x4a, 0xca, 0x12, + 0x8d, 0x47, 0x21, 0x6b, 0x78, 0x6a, 0xfb, 0x96, 0x3c, 0x36, 0x13, 0x9b, 0x4b, 0x29, 0x19, 0xc3, + 0x0b, 0x6e, 0x18, 0x67, 0x5f, 0x8d, 0x41, 0xae, 0xf3, 0x96, 0x1f, 0x2d, 0x41, 0xca, 0xb4, 0x75, + 0x8d, 0x86, 0x16, 0x7b, 0xc5, 0x34, 0x17, 0xf1, 0x62, 0x60, 0x7e, 0x85, 0xeb, 0x2b, 0x01, 0x72, + 0xea, 0x5f, 0x24, 0x48, 0x09, 0x31, 0x3a, 0x04, 0x09, 0x47, 0xf3, 0x77, 0x29, 0x5d, 0xb2, 0x14, + 0x93, 0x25, 0x85, 0x3e, 0x13, 0xb9, 0xe7, 0x68, 0x16, 0x0d, 0x01, 0x2e, 0x27, 0xcf, 0x64, 0x5e, + 0x4d, 0xac, 0xd5, 0xe8, 0xf1, 0xc3, 0x6e, 0x34, 0xb0, 0xe5, 0x7b, 0x62, 0x5e, 0xb9, 0x7c, 0x91, + 0x8b, 0xd1, 0x53, 0x30, 0xee, 0xbb, 0x9a, 0x61, 0x76, 0xe8, 0x26, 0xa8, 0xae, 0x2c, 0x1a, 0x02, + 0xe5, 0x22, 0x1c, 0x16, 0xbc, 0x35, 0xec, 0x6b, 0xfa, 0x2e, 0xae, 0xb5, 0x41, 0xc3, 0xf4, 0x9a, + 0xe1, 0x61, 0xae, 0xb0, 0xc4, 0xdb, 0x05, 0x76, 0xf6, 0x87, 0x12, 0x8c, 0x8b, 0x03, 0x53, 0x2d, + 0x70, 0x56, 0x15, 0x40, 0xb3, 0x2c, 0xdb, 0x0f, 0xbb, 0xab, 0x37, 0x94, 0x7b, 0x70, 0xf3, 0x0b, + 0x01, 0x48, 0x09, 0x11, 0x4c, 0x35, 0x00, 0xda, 0x2d, 0xfb, 0xba, 0x6d, 0x1a, 0x32, 0xfc, 0x15, + 0x0e, 0x7d, 0x0f, 0xc8, 0x8e, 0xd8, 0xc0, 0x44, 0xe4, 0x64, 0x85, 0x26, 0x21, 0xb9, 0x8d, 0xeb, + 0x86, 0xc5, 0x2f, 0x66, 0xd9, 0x83, 0xb8, 0x08, 0x49, 0x04, 0x17, 0x21, 0xa5, 0xcf, 0xc0, 0x84, + 0x6e, 0x37, 0xba, 0xcd, 0x2d, 0xc9, 0x5d, 0xc7, 0x7c, 0xef, 0x93, 0xd2, 0xf3, 0xd0, 0xde, 0x62, + 0xbe, 0x27, 0x49, 0x7f, 0x1a, 0x8b, 0x2f, 0xaf, 0x97, 0xbe, 0x16, 0x9b, 0x5a, 0x66, 0xd0, 0x75, + 0x31, 0x52, 0x05, 0xef, 0x98, 0x58, 0x27, 0xd6, 0xc3, 0x17, 0x8f, 0xc3, 0xc7, 0xea, 0x86, 0xbf, + 0xdb, 0xdc, 0x9e, 0xd7, 0xed, 0xc6, 0x89, 0xba, 0x5d, 0xb7, 0xdb, 0xaf, 0x3e, 0xc9, 0x13, 0x7d, + 0xa0, 0xbf, 0xf8, 0xeb, 0xcf, 0x74, 0x20, 0x9d, 0x8a, 0x7c, 0x57, 0x5a, 0x5c, 0x85, 0x09, 0xae, + 0xac, 0xd2, 0xf7, 0x2f, 0xec, 0x14, 0x81, 0xee, 0x7b, 0x87, 0x95, 0xff, 0xc6, 0x9b, 0xb4, 0x5c, + 0x2b, 0xe3, 0x1c, 0x4a, 0xda, 0xd8, 0x41, 0xa3, 0xa8, 0xc0, 0x43, 0x1d, 0x7c, 0x6c, 0x69, 0x62, + 0x37, 0x82, 0xf1, 0xfb, 0x9c, 0x71, 0x22, 0xc4, 0xb8, 0xc1, 0xa1, 0xc5, 0x45, 0x18, 0x3d, 0x08, + 0xd7, 0x3f, 0x71, 0xae, 0x2c, 0x0e, 0x93, 0x2c, 0xc3, 0x18, 0x25, 0xd1, 0x9b, 0x9e, 0x6f, 0x37, + 0x68, 0xde, 0xbb, 0x3f, 0xcd, 0x3f, 0xbf, 0xc9, 0xd6, 0x4a, 0x8e, 0xc0, 0x16, 0x03, 0x54, 0xb1, + 0x08, 0xf4, 0x95, 0x53, 0x0d, 0xeb, 0x66, 0x04, 0xc3, 0x6b, 0xdc, 0x90, 0x40, 0xbf, 0xf8, 0x69, + 0x98, 0x24, 0xbf, 0x69, 0x5a, 0x0a, 0x5b, 0x12, 0x7d, 0xe1, 0x95, 0xff, 0xe1, 0x8b, 0x6c, 0x39, + 0x4e, 0x04, 0x04, 0x21, 0x9b, 0x42, 0xb3, 0x58, 0xc7, 0xbe, 0x8f, 0x5d, 0x4f, 0xd5, 0xcc, 0x7e, + 0xe6, 0x85, 0x6e, 0x0c, 0xf2, 0x5f, 0x7e, 0xbb, 0x73, 0x16, 0x97, 0x19, 0x72, 0xc1, 0x34, 0x8b, + 0x5b, 0xf0, 0x70, 0x9f, 0xa8, 0x18, 0x80, 0xf3, 0x25, 0xce, 0x39, 0xd9, 0x13, 0x19, 0x84, 0x76, + 0x1d, 0x84, 0x3c, 0x98, 0xcb, 0x01, 0x38, 0xff, 0x90, 0x73, 0x22, 0x8e, 0x15, 0x53, 0x4a, 0x18, + 0x2f, 0xc3, 0xf8, 0x0d, 0xec, 0x6e, 0xdb, 0x1e, 0xbf, 0xa5, 0x19, 0x80, 0xee, 0x65, 0x4e, 0x37, + 0xc6, 0x81, 0xf4, 0xda, 0x86, 0x70, 0x5d, 0x80, 0xd4, 0x8e, 0xa6, 0xe3, 0x01, 0x28, 0xbe, 0xc2, + 0x29, 0x46, 0x88, 0x3e, 0x81, 0x2e, 0x40, 0xb6, 0x6e, 0xf3, 0xca, 0x14, 0x0d, 0x7f, 0x85, 0xc3, + 0x33, 0x02, 0xc3, 0x29, 0x1c, 0xdb, 0x69, 0x9a, 0xa4, 0x6c, 0x45, 0x53, 0xfc, 0x91, 0xa0, 0x10, + 0x18, 0x4e, 0x71, 0x00, 0xb7, 0xfe, 0xb1, 0xa0, 0xf0, 0x42, 0xfe, 0x7c, 0x16, 0x32, 0xb6, 0x65, + 0xb6, 0x6c, 0x6b, 0x10, 0x23, 0xfe, 0x84, 0x33, 0x00, 0x87, 0x10, 0x82, 0x8b, 0x90, 0x1e, 0x74, + 0x22, 0xfe, 0xec, 0x6d, 0xb1, 0x3c, 0xc4, 0x0c, 0x2c, 0xc3, 0x98, 0x48, 0x50, 0x86, 0x6d, 0x0d, + 0x40, 0xf1, 0xe7, 0x9c, 0x22, 0x17, 0x82, 0xf1, 0x61, 0xf8, 0xd8, 0xf3, 0xeb, 0x78, 0x10, 0x92, + 0x57, 0xc5, 0x30, 0x38, 0x84, 0xbb, 0x72, 0x1b, 0x5b, 0xfa, 0xee, 0x60, 0x0c, 0x5f, 0x15, 0xae, + 0x14, 0x18, 0x42, 0xb1, 0x08, 0xa3, 0x0d, 0xcd, 0xf5, 0x76, 0x35, 0x73, 0xa0, 0xe9, 0xf8, 0x0b, + 0xce, 0x91, 0x0d, 0x40, 0xdc, 0x23, 0x4d, 0xeb, 0x20, 0x34, 0x5f, 0x13, 0x1e, 0x09, 0xc1, 0xf8, + 0xd2, 0xf3, 0x7c, 0x7a, 0xa5, 0x75, 0x10, 0xb6, 0xbf, 0x14, 0x4b, 0x8f, 0x61, 0xab, 0x61, 0xc6, + 0x8b, 0x90, 0xf6, 0x8c, 0x5b, 0x03, 0xd1, 0xfc, 0x95, 0x98, 0x69, 0x0a, 0x20, 0xe0, 0xab, 0x70, + 0xb8, 0x6f, 0x99, 0x18, 0x80, 0xec, 0xaf, 0x39, 0xd9, 0xa1, 0x3e, 0xa5, 0x82, 0xa7, 0x84, 0x83, + 0x52, 0xfe, 0x8d, 0x48, 0x09, 0xb8, 0x8b, 0x6b, 0x9d, 0x9c, 0x15, 0x3c, 0x6d, 0xe7, 0x60, 0x5e, + 0xfb, 0x5b, 0xe1, 0x35, 0x86, 0xed, 0xf0, 0xda, 0x26, 0x1c, 0xe2, 0x8c, 0x07, 0x9b, 0xd7, 0xaf, + 0x8b, 0xc4, 0xca, 0xd0, 0x5b, 0x9d, 0xb3, 0xfb, 0x19, 0x98, 0x0a, 0xdc, 0x29, 0x36, 0xa5, 0x9e, + 0xda, 0xd0, 0x9c, 0x01, 0x98, 0xbf, 0xc1, 0x99, 0x45, 0xc6, 0x0f, 0x76, 0xb5, 0x5e, 0x55, 0x73, + 0x08, 0xf9, 0x73, 0x90, 0x17, 0xe4, 0x4d, 0xcb, 0xc5, 0xba, 0x5d, 0xb7, 0x8c, 0x5b, 0xb8, 0x36, + 0x00, 0xf5, 0x37, 0xbb, 0xa6, 0x6a, 0x2b, 0x04, 0x27, 0xcc, 0x15, 0x90, 0x83, 0xbd, 0x8a, 0x6a, + 0x34, 0x1c, 0xdb, 0xf5, 0x23, 0x18, 0xbf, 0x25, 0x66, 0x2a, 0xc0, 0x55, 0x28, 0xac, 0x58, 0x86, + 0x1c, 0x7d, 0x1c, 0x34, 0x24, 0xff, 0x8e, 0x13, 0x8d, 0xb6, 0x51, 0x3c, 0x71, 0xe8, 0x76, 0xc3, + 0xd1, 0xdc, 0x41, 0xf2, 0xdf, 0xb7, 0x45, 0xe2, 0xe0, 0x10, 0x9e, 0x38, 0xfc, 0x96, 0x83, 0x49, + 0xb5, 0x1f, 0x80, 0xe1, 0x3b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x1b, 0x86, 0x01, 0x28, 0xfe, + 0x5e, 0x50, 0x08, 0x0c, 0xa1, 0xf8, 0x54, 0xbb, 0xd0, 0xba, 0xb8, 0x6e, 0x78, 0xbe, 0xcb, 0xb6, + 0xc2, 0xf7, 0xa7, 0xfa, 0xee, 0xdb, 0x9d, 0x9b, 0x30, 0x25, 0x04, 0x2d, 0x5e, 0x86, 0xb1, 0xae, + 0x2d, 0x06, 0x8a, 0xfa, 0x7e, 0x25, 0xff, 0xcb, 0xef, 0xf2, 0x64, 0xd4, 0xb9, 0xc3, 0x28, 0xae, + 0x90, 0x79, 0xef, 0xdc, 0x07, 0x44, 0x93, 0xbd, 0xf8, 0x6e, 0x30, 0xf5, 0x1d, 0xdb, 0x80, 0xe2, + 0x25, 0x18, 0xed, 0xd8, 0x03, 0x44, 0x53, 0xfd, 0x0a, 0xa7, 0xca, 0x86, 0xb7, 0x00, 0xc5, 0x33, + 0x90, 0x20, 0xf5, 0x3c, 0x1a, 0xfe, 0xab, 0x1c, 0x4e, 0xd5, 0x8b, 0x9f, 0x80, 0x94, 0xa8, 0xe3, + 0xd1, 0xd0, 0x5f, 0xe3, 0xd0, 0x00, 0x42, 0xe0, 0xa2, 0x86, 0x47, 0xc3, 0x3f, 0x2f, 0xe0, 0x02, + 0x42, 0xe0, 0x83, 0xbb, 0xf0, 0x7b, 0xbf, 0x91, 0xe0, 0x79, 0x58, 0xf8, 0xee, 0x22, 0x8c, 0xf0, + 0xe2, 0x1d, 0x8d, 0xfe, 0x02, 0xef, 0x5c, 0x20, 0x8a, 0xe7, 0x20, 0x39, 0xa0, 0xc3, 0x7f, 0x93, + 0x43, 0x99, 0x7e, 0x71, 0x11, 0x32, 0xa1, 0x82, 0x1d, 0x0d, 0xff, 0x2d, 0x0e, 0x0f, 0xa3, 0x88, + 0xe9, 0xbc, 0x60, 0x47, 0x13, 0xfc, 0xb6, 0x30, 0x9d, 0x23, 0x88, 0xdb, 0x44, 0xad, 0x8e, 0x46, + 0xff, 0x8e, 0xf0, 0xba, 0x80, 0x14, 0x9f, 0x85, 0x74, 0x90, 0x7f, 0xa3, 0xf1, 0xbf, 0xcb, 0xf1, + 0x6d, 0x0c, 0xf1, 0x40, 0x28, 0xff, 0x47, 0x53, 0xfc, 0x9e, 0xf0, 0x40, 0x08, 0x45, 0x96, 0x51, + 0x77, 0x4d, 0x8f, 0x66, 0xfa, 0x7d, 0xb1, 0x8c, 0xba, 0x4a, 0x3a, 0x99, 0x4d, 0x9a, 0x06, 0xa3, + 0x29, 0xfe, 0x40, 0xcc, 0x26, 0xd5, 0x27, 0x66, 0x74, 0x17, 0xc9, 0x68, 0x8e, 0x2f, 0x0a, 0x33, + 0xba, 0x6a, 0x64, 0x71, 0x1d, 0x50, 0x6f, 0x81, 0x8c, 0xe6, 0xfb, 0x12, 0xe7, 0x1b, 0xef, 0xa9, + 0x8f, 0xc5, 0x2b, 0x70, 0xa8, 0x7f, 0x71, 0x8c, 0x66, 0xfd, 0xf2, 0xbb, 0x5d, 0xc7, 0x99, 0x70, + 0x6d, 0x2c, 0x6e, 0xb6, 0xb3, 0x6c, 0xb8, 0x30, 0x46, 0xd3, 0xbe, 0xf4, 0x6e, 0x67, 0xa2, 0x0d, + 0xd7, 0xc5, 0xe2, 0x02, 0x40, 0xbb, 0x26, 0x45, 0x73, 0xbd, 0xcc, 0xb9, 0x42, 0x20, 0xb2, 0x34, + 0x78, 0x49, 0x8a, 0xc6, 0x7f, 0x45, 0x2c, 0x0d, 0x8e, 0x20, 0x4b, 0x43, 0x54, 0xa3, 0x68, 0xf4, + 0x2b, 0x62, 0x69, 0x08, 0x48, 0xf1, 0x22, 0xa4, 0xac, 0xa6, 0x69, 0x92, 0xd8, 0x42, 0xf7, 0xff, + 0x24, 0x2b, 0xff, 0xe3, 0xf7, 0x39, 0x58, 0x00, 0x8a, 0x67, 0x20, 0x89, 0x1b, 0xdb, 0xb8, 0x16, + 0x85, 0xfc, 0x8f, 0xf7, 0x45, 0x3e, 0x21, 0xda, 0xc5, 0x67, 0x01, 0xd8, 0x61, 0x9a, 0xbe, 0x28, + 0x8a, 0xc0, 0xfe, 0xe7, 0xfb, 0xfc, 0x63, 0x89, 0x36, 0xa4, 0x4d, 0xc0, 0x3e, 0xbd, 0xb8, 0x3f, + 0xc1, 0xdb, 0x9d, 0x04, 0xf4, 0x00, 0x7e, 0x01, 0x46, 0xae, 0x79, 0xb6, 0xe5, 0x6b, 0xf5, 0x28, + 0xf4, 0x7f, 0x71, 0xb4, 0xd0, 0x27, 0x0e, 0x6b, 0xd8, 0x2e, 0xf6, 0xb5, 0xba, 0x17, 0x85, 0xfd, + 0x6f, 0x8e, 0x0d, 0x00, 0x04, 0xac, 0x6b, 0x9e, 0x3f, 0xc8, 0xb8, 0x7f, 0x22, 0xc0, 0x02, 0x40, + 0x8c, 0x26, 0xbf, 0xaf, 0xe3, 0x56, 0x14, 0xf6, 0x1d, 0x61, 0x34, 0xd7, 0x2f, 0x7e, 0x02, 0xd2, + 0xe4, 0x27, 0xfb, 0x02, 0x2a, 0x02, 0xfc, 0x3f, 0x1c, 0xdc, 0x46, 0x90, 0x9e, 0x3d, 0xbf, 0xe6, + 0x1b, 0xd1, 0xce, 0xfe, 0x5f, 0x3e, 0xd3, 0x42, 0xbf, 0xb8, 0x00, 0x19, 0xcf, 0xaf, 0xd5, 0x9a, + 0x7c, 0x47, 0x13, 0x01, 0xff, 0xbf, 0xf7, 0x83, 0x43, 0x6e, 0x80, 0x29, 0x95, 0xfb, 0xdf, 0xd7, + 0xc1, 0xb2, 0xbd, 0x6c, 0xb3, 0x9b, 0xba, 0xe7, 0x67, 0xa3, 0xaf, 0xdc, 0xe0, 0x9b, 0x63, 0x70, + 0x44, 0xb7, 0x1b, 0xdb, 0xb6, 0x77, 0xc2, 0xc2, 0x86, 0xbf, 0x8b, 0xdd, 0x13, 0xc2, 0xb5, 0xfc, + 0x26, 0x2e, 0x70, 0xf5, 0xd4, 0xc1, 0xae, 0xf0, 0x66, 0x7f, 0x3c, 0x0a, 0xa9, 0x45, 0xcd, 0xf3, + 0xb5, 0x9b, 0x5a, 0x0b, 0x3d, 0x06, 0xa9, 0x8a, 0xe5, 0x9f, 0x3a, 0xb9, 0xee, 0xbb, 0xf4, 0x2d, + 0x54, 0xbc, 0x94, 0xbe, 0x77, 0x67, 0x3a, 0x69, 0x10, 0x99, 0x12, 0x34, 0xa1, 0x63, 0x90, 0xa4, + 0xbf, 0xe9, 0x45, 0x66, 0xbc, 0x34, 0xfa, 0xda, 0x9d, 0xe9, 0xa1, 0xb6, 0x1e, 0x6b, 0x43, 0x57, + 0x21, 0x53, 0x6d, 0x6d, 0x19, 0x96, 0x7f, 0xf6, 0x34, 0xa1, 0x23, 0xce, 0x49, 0x94, 0xce, 0xdd, + 0xbb, 0x33, 0x7d, 0x6a, 0x5f, 0x03, 0x49, 0xc9, 0x6c, 0x0f, 0x4c, 0xa0, 0xe9, 0x57, 0xa2, 0x61, + 0x2e, 0x74, 0x05, 0x52, 0xe2, 0x91, 0xbd, 0x10, 0x28, 0x5d, 0xe4, 0x26, 0x3c, 0x10, 0x77, 0x40, + 0x86, 0x7e, 0x01, 0xb2, 0xd5, 0xd6, 0x25, 0xd3, 0xd6, 0xb8, 0x0f, 0x92, 0x33, 0xd2, 0x5c, 0xac, + 0x74, 0xfe, 0xde, 0x9d, 0xe9, 0xd3, 0x03, 0x13, 0x73, 0x38, 0x65, 0xee, 0x60, 0x43, 0xcf, 0x43, + 0x3a, 0x78, 0xa6, 0xaf, 0x1c, 0x62, 0xa5, 0x8f, 0x73, 0xbb, 0x1f, 0x8c, 0xbe, 0x4d, 0x17, 0xb2, + 0x9c, 0xb9, 0x7b, 0x64, 0x46, 0x9a, 0x93, 0x1e, 0xc4, 0x72, 0xee, 0x93, 0x0e, 0xb6, 0x90, 0xe5, + 0x67, 0x4f, 0xd3, 0x77, 0x1c, 0xd2, 0x83, 0x5a, 0xce, 0xe9, 0xdb, 0x74, 0xe8, 0x32, 0x8c, 0x54, + 0x5b, 0xa5, 0x96, 0x8f, 0x3d, 0xfa, 0xf1, 0x51, 0xb6, 0xf4, 0xf4, 0xbd, 0x3b, 0xd3, 0x1f, 0x1d, + 0x90, 0x95, 0xe2, 0x14, 0x41, 0x80, 0x66, 0x20, 0xb3, 0x6a, 0xbb, 0x0d, 0xcd, 0x64, 0x7c, 0xc0, + 0xde, 0xd9, 0x84, 0x44, 0x68, 0x8b, 0x8c, 0x84, 0xcd, 0xb6, 0x47, 0xff, 0x6f, 0xe5, 0xa7, 0x88, + 0xc9, 0x36, 0x13, 0x32, 0x20, 0x59, 0x6d, 0x55, 0x35, 0x27, 0x9f, 0xa5, 0x2f, 0x14, 0x8e, 0xcc, + 0x07, 0x08, 0xb1, 0xb6, 0xe6, 0x69, 0x3b, 0xfd, 0xf2, 0xa2, 0x74, 0xfa, 0xde, 0x9d, 0xe9, 0xa7, + 0x07, 0xee, 0xb1, 0xaa, 0x39, 0xb4, 0x3b, 0xd6, 0x03, 0xfa, 0xb6, 0x44, 0x16, 0x16, 0xbb, 0x91, + 0x25, 0x3d, 0x8e, 0xd2, 0x1e, 0x8f, 0xf5, 0xed, 0x31, 0xd0, 0x62, 0xfd, 0x5a, 0x9f, 0x7b, 0xfd, + 0x00, 0x23, 0x65, 0xa7, 0x1e, 0xd2, 0xf5, 0xaf, 0xbf, 0xfe, 0xc0, 0x8b, 0x36, 0xb0, 0x00, 0xbd, + 0x28, 0xc1, 0x68, 0xb5, 0xb5, 0xca, 0xeb, 0x2f, 0xb1, 0x3c, 0xc7, 0xff, 0xbb, 0xa1, 0x9f, 0xe5, + 0x21, 0x3d, 0x66, 0xfb, 0xd9, 0xcf, 0xbd, 0x3e, 0x7d, 0x72, 0x60, 0x23, 0x68, 0x0a, 0xa2, 0x36, + 0x74, 0xf6, 0x89, 0x3e, 0x4f, 0xad, 0x28, 0x93, 0x5a, 0x5e, 0xc3, 0x35, 0x62, 0xc5, 0xd8, 0x7d, + 0xac, 0x08, 0xe9, 0x31, 0x2b, 0x8a, 0x24, 0xea, 0x1f, 0xdc, 0x92, 0x10, 0x1f, 0x5a, 0x83, 0x61, + 0xe6, 0x61, 0xfa, 0xe1, 0x5b, 0xfa, 0x80, 0x61, 0xd8, 0x9e, 0x1c, 0x85, 0xd3, 0x4c, 0x9d, 0x07, + 0x68, 0xc7, 0x18, 0x92, 0x21, 0x7e, 0x1d, 0xb7, 0xf8, 0xd7, 0x8d, 0xe4, 0x27, 0x9a, 0x6c, 0x7f, + 0x7e, 0x2c, 0xcd, 0x25, 0xf8, 0x37, 0xc5, 0xc5, 0xd8, 0x79, 0x69, 0xea, 0x19, 0x90, 0xbb, 0x63, + 0xe5, 0x40, 0x78, 0x05, 0x50, 0xef, 0x8c, 0x85, 0x19, 0x92, 0x8c, 0xe1, 0xf1, 0x30, 0x43, 0xe6, + 0xa4, 0xdc, 0xf6, 0xf9, 0x15, 0xc3, 0xf4, 0x6c, 0xab, 0x87, 0xb3, 0xdb, 0xff, 0x3f, 0x1d, 0xe7, + 0x6c, 0x01, 0x86, 0x99, 0x90, 0x8c, 0xa5, 0x42, 0xcb, 0x07, 0xad, 0x72, 0x0a, 0x7b, 0x28, 0xad, + 0xbc, 0x76, 0xb7, 0x30, 0xf4, 0x83, 0xbb, 0x85, 0xa1, 0x7f, 0xbd, 0x5b, 0x18, 0x7a, 0xe3, 0x6e, + 0x41, 0x7a, 0xeb, 0x6e, 0x41, 0x7a, 0xe7, 0x6e, 0x41, 0x7a, 0xef, 0x6e, 0x41, 0xba, 0xbd, 0x57, + 0x90, 0xbe, 0xba, 0x57, 0x90, 0xbe, 0xbe, 0x57, 0x90, 0xbe, 0xbb, 0x57, 0x90, 0xbe, 0xb7, 0x57, + 0x90, 0x5e, 0xdb, 0x2b, 0x0c, 0xfd, 0x60, 0xaf, 0x30, 0xf4, 0xc6, 0x5e, 0x41, 0x7a, 0x6b, 0xaf, + 0x30, 0xf4, 0xce, 0x5e, 0x41, 0x7a, 0x6f, 0xaf, 0x30, 0x74, 0xfb, 0x47, 0x85, 0xa1, 0xff, 0x0f, + 0x00, 0x00, 0xff, 0xff, 0x8e, 0x69, 0xff, 0x46, 0x41, 0x38, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -712,7 +717,7 @@ func (this *Wilson) Equal(that interface{}) bool { } type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt32Ptr() *int32 GetInt32() int32 GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type @@ -731,11 +736,11 @@ type CastawayFace interface { GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) Proto() proto.Message { return this } -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) TestProto() proto.Message { return NewCastawayFromFace(this) } @@ -825,15 +830,15 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { } type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt64() *int64 } -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) Proto() proto.Message { return this } -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) TestProto() proto.Message { return NewWilsonFromFace(this) } @@ -882,7 +887,7 @@ func (this *Castaway) GoString() string { for k := range this.MyMap { keysForMyMap = append(keysForMyMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) + sortkeys.Strings(keysForMyMap) mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" for _, k := range keysForMyMap { mapStringForMyMap += fmt.Sprintf("%#v: %#v,", k, this.MyMap[k]) @@ -895,7 +900,7 @@ func (this *Castaway) GoString() string { for k := range this.MyCustomMap { keysForMyCustomMap = append(keysForMyCustomMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) + sortkeys.Strings(keysForMyCustomMap) mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" for _, k := range keysForMyCustomMap { mapStringForMyCustomMap += fmt.Sprintf("%#v: %#v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) @@ -908,7 +913,7 @@ func (this *Castaway) GoString() string { for k := range this.MyNullableMap { keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) + sortkeys.Int32s(keysForMyNullableMap) mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" for _, k := range keysForMyNullableMap { mapStringForMyNullableMap += fmt.Sprintf("%#v: %#v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -921,7 +926,7 @@ func (this *Castaway) GoString() string { for k := range this.MyEmbeddedMap { keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) + sortkeys.Int32s(keysForMyEmbeddedMap) mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" for _, k := range keysForMyEmbeddedMap { mapStringForMyEmbeddedMap += fmt.Sprintf("%#v: %#v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -1263,7 +1268,7 @@ func (this *Castaway) String() string { for k := range this.MyMap { keysForMyMap = append(keysForMyMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) + sortkeys.Strings(keysForMyMap) mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" for _, k := range keysForMyMap { mapStringForMyMap += fmt.Sprintf("%v: %v,", k, this.MyMap[k]) @@ -1273,7 +1278,7 @@ func (this *Castaway) String() string { for k := range this.MyCustomMap { keysForMyCustomMap = append(keysForMyCustomMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) + sortkeys.Strings(keysForMyCustomMap) mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" for _, k := range keysForMyCustomMap { mapStringForMyCustomMap += fmt.Sprintf("%v: %v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) @@ -1283,7 +1288,7 @@ func (this *Castaway) String() string { for k := range this.MyNullableMap { keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) + sortkeys.Int32s(keysForMyNullableMap) mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" for _, k := range keysForMyNullableMap { mapStringForMyNullableMap += fmt.Sprintf("%v: %v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -1293,7 +1298,7 @@ func (this *Castaway) String() string { for k := range this.MyEmbeddedMap { keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) + sortkeys.Int32s(keysForMyEmbeddedMap) mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" for _, k := range keysForMyEmbeddedMap { mapStringForMyEmbeddedMap += fmt.Sprintf("%v: %v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttypepb_test.go index 9fb730dd8..053f29a39 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/neither/casttypepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/casttype.proto -// DO NOT EDIT! /* Package casttype is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package casttype import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,12 +58,12 @@ func TestCastawayProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 10000) for i := 0; i < 10000; i++ { @@ -73,7 +71,7 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -83,11 +81,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } @@ -97,7 +95,7 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -106,14 +104,14 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -134,12 +132,12 @@ func TestWilsonProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 10000) for i := 0; i < 10000; i++ { @@ -147,7 +145,7 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -157,11 +155,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } @@ -171,7 +169,7 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -180,15 +178,15 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { func TestCastawayJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -201,15 +199,15 @@ func TestCastawayJSON(t *testing.T) { } func TestWilsonJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -222,11 +220,11 @@ func TestWilsonJSON(t *testing.T) { } func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -239,11 +237,11 @@ func TestCastawayProtoText(t *testing.T) { func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -256,11 +254,11 @@ func TestCastawayProtoCompactText(t *testing.T) { func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -273,11 +271,11 @@ func TestWilsonProtoText(t *testing.T) { func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -292,14 +290,14 @@ func TestCasttypeDescription(t *testing.T) { CasttypeDescription() } func TestCastawayVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -307,14 +305,14 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -322,7 +320,7 @@ func TestWilsonVerboseEqual(t *testing.T) { } } func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -330,7 +328,7 @@ func TestCastawayFace(t *testing.T) { } } func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -338,37 +336,37 @@ func TestWilsonFace(t *testing.T) { } } func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCastawaySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -379,14 +377,14 @@ func TestCastawaySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 1000) for i := 0; i < 1000; i++ { @@ -401,10 +399,10 @@ func BenchmarkCastawaySize(b *testing.B) { func TestWilsonSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -415,14 +413,14 @@ func TestWilsonSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 1000) for i := 0; i < 1000; i++ { @@ -436,7 +434,7 @@ func BenchmarkWilsonSize(b *testing.B) { } func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -445,7 +443,7 @@ func TestCastawayStringer(t *testing.T) { } } func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go index 823443194..f936f39cc 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttype.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/casttype.proto -// DO NOT EDIT! /* Package casttype is a generated protocol buffer package. @@ -21,17 +20,17 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" import io "io" +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -81,285 +80,292 @@ func init() { proto.RegisterType((*Castaway)(nil), "casttype.Castaway") proto.RegisterType((*Wilson)(nil), "casttype.Wilson") } -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Castaway) Description() (desc *descriptor.FileDescriptorSet) { return CasttypeDescription() } -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Wilson) Description() (desc *descriptor.FileDescriptorSet) { return CasttypeDescription() } -func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func CasttypeDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4125 bytes of a gzipped FileDescriptorSet + // 4235 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7b, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0x3f, 0x17, 0x1f, 0x24, 0x70, 0x00, 0x82, 0xcb, 0x4b, 0x5a, 0x82, 0xe8, 0x18, 0xa4, 0xe8, - 0x2f, 0xda, 0x4e, 0x28, 0x8f, 0xbe, 0x2c, 0x43, 0x89, 0x3d, 0x00, 0x09, 0x31, 0xd0, 0x9f, 0x20, - 0x90, 0x25, 0x19, 0x49, 0xfe, 0x77, 0x66, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x22, 0xbb, - 0x0b, 0xc9, 0xf0, 0x93, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0x7e, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x6d, - 0x66, 0x5a, 0xa7, 0x49, 0x3f, 0x92, 0xb6, 0x71, 0x33, 0x7d, 0xca, 0x4b, 0x5a, 0x3f, 0x75, 0x92, - 0xb7, 0x3e, 0x74, 0x64, 0x8b, 0xf1, 0x4c, 0x9d, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0xc8, 0x2f, - 0x9d, 0xfb, 0xb5, 0x58, 0x7c, 0x90, 0x0b, 0x2a, 0xe3, 0xe4, 0x89, 0xd8, 0x73, 0xcf, 0xef, 0xb7, - 0xe7, 0x9e, 0x7b, 0xee, 0x39, 0x67, 0xef, 0x2e, 0xe1, 0x87, 0xe7, 0x60, 0xa1, 0x61, 0xdb, 0x0d, - 0x13, 0x9f, 0x6a, 0x39, 0xb6, 0x67, 0xef, 0xb4, 0x77, 0x4f, 0xd5, 0xb1, 0xab, 0x3b, 0x46, 0xcb, - 0xb3, 0x9d, 0x65, 0x2a, 0x43, 0x53, 0x4c, 0x63, 0x59, 0x68, 0x2c, 0x56, 0x60, 0xfa, 0x92, 0x61, - 0xe2, 0x55, 0x5f, 0x71, 0x13, 0x7b, 0xe8, 0x02, 0xc4, 0x76, 0x0d, 0x13, 0x67, 0xa5, 0x85, 0xe8, - 0x52, 0xea, 0xf4, 0x23, 0xcb, 0x7d, 0xa0, 0xe5, 0x5e, 0x44, 0x8d, 0x88, 0x15, 0x8a, 0x58, 0x7c, - 0x27, 0x06, 0x33, 0x43, 0x46, 0x11, 0x82, 0x98, 0xa5, 0x35, 0x09, 0xa3, 0xb4, 0x94, 0x54, 0xe8, - 0x6f, 0x94, 0x85, 0x89, 0x96, 0xa6, 0xdf, 0xd0, 0x1a, 0x38, 0x1b, 0xa1, 0x62, 0x71, 0x89, 0x72, - 0x00, 0x75, 0xdc, 0xc2, 0x56, 0x1d, 0x5b, 0x7a, 0x27, 0x1b, 0x5d, 0x88, 0x2e, 0x25, 0x95, 0x80, - 0x04, 0x3d, 0x05, 0xd3, 0xad, 0xf6, 0x8e, 0x69, 0xe8, 0x6a, 0x40, 0x0d, 0x16, 0xa2, 0x4b, 0x71, - 0x45, 0x66, 0x03, 0xab, 0x5d, 0xe5, 0xc7, 0x61, 0xea, 0x16, 0xd6, 0x6e, 0x04, 0x55, 0x53, 0x54, - 0x35, 0x43, 0xc4, 0x01, 0xc5, 0x15, 0x48, 0x37, 0xb1, 0xeb, 0x6a, 0x0d, 0xac, 0x7a, 0x9d, 0x16, - 0xce, 0xc6, 0xe8, 0xec, 0x17, 0x06, 0x66, 0xdf, 0x3f, 0xf3, 0x14, 0x47, 0x6d, 0x75, 0x5a, 0x18, - 0x15, 0x20, 0x89, 0xad, 0x76, 0x93, 0x31, 0xc4, 0x0f, 0xf0, 0x5f, 0xc9, 0x6a, 0x37, 0xfb, 0x59, - 0x12, 0x04, 0xc6, 0x29, 0x26, 0x5c, 0xec, 0xdc, 0x34, 0x74, 0x9c, 0x1d, 0xa7, 0x04, 0x8f, 0x0f, - 0x10, 0x6c, 0xb2, 0xf1, 0x7e, 0x0e, 0x81, 0x43, 0x2b, 0x90, 0xc4, 0x2f, 0x7a, 0xd8, 0x72, 0x0d, - 0xdb, 0xca, 0x4e, 0x50, 0x92, 0x47, 0x87, 0xac, 0x22, 0x36, 0xeb, 0xfd, 0x14, 0x5d, 0x1c, 0x3a, - 0x0f, 0x13, 0x76, 0xcb, 0x33, 0x6c, 0xcb, 0xcd, 0x26, 0x16, 0xa4, 0xa5, 0xd4, 0xe9, 0x8f, 0x0d, - 0x0d, 0x84, 0x2a, 0xd3, 0x51, 0x84, 0x32, 0x2a, 0x83, 0xec, 0xda, 0x6d, 0x47, 0xc7, 0xaa, 0x6e, - 0xd7, 0xb1, 0x6a, 0x58, 0xbb, 0x76, 0x36, 0x49, 0x09, 0xe6, 0x07, 0x27, 0x42, 0x15, 0x57, 0xec, - 0x3a, 0x2e, 0x5b, 0xbb, 0xb6, 0x92, 0x71, 0x7b, 0xae, 0xd1, 0x31, 0x18, 0x77, 0x3b, 0x96, 0xa7, - 0xbd, 0x98, 0x4d, 0xd3, 0x08, 0xe1, 0x57, 0x8b, 0xff, 0x1b, 0x87, 0xa9, 0x51, 0x42, 0xec, 0x22, - 0xc4, 0x77, 0xc9, 0x2c, 0xb3, 0x91, 0xa3, 0xf8, 0x80, 0x61, 0x7a, 0x9d, 0x38, 0x7e, 0x9f, 0x4e, - 0x2c, 0x40, 0xca, 0xc2, 0xae, 0x87, 0xeb, 0x2c, 0x22, 0xa2, 0x23, 0xc6, 0x14, 0x30, 0xd0, 0x60, - 0x48, 0xc5, 0xee, 0x2b, 0xa4, 0xae, 0xc2, 0x94, 0x6f, 0x92, 0xea, 0x68, 0x56, 0x43, 0xc4, 0xe6, - 0xa9, 0x30, 0x4b, 0x96, 0x4b, 0x02, 0xa7, 0x10, 0x98, 0x92, 0xc1, 0x3d, 0xd7, 0x68, 0x15, 0xc0, - 0xb6, 0xb0, 0xbd, 0xab, 0xd6, 0xb1, 0x6e, 0x66, 0x13, 0x07, 0x78, 0xa9, 0x4a, 0x54, 0x06, 0xbc, - 0x64, 0x33, 0xa9, 0x6e, 0xa2, 0x67, 0xbb, 0xa1, 0x36, 0x71, 0x40, 0xa4, 0x54, 0xd8, 0x26, 0x1b, - 0x88, 0xb6, 0x6d, 0xc8, 0x38, 0x98, 0xc4, 0x3d, 0xae, 0xf3, 0x99, 0x25, 0xa9, 0x11, 0xcb, 0xa1, - 0x33, 0x53, 0x38, 0x8c, 0x4d, 0x6c, 0xd2, 0x09, 0x5e, 0xa2, 0x87, 0xc1, 0x17, 0xa8, 0x34, 0xac, - 0x80, 0x66, 0xa1, 0xb4, 0x10, 0x6e, 0x68, 0x4d, 0x3c, 0x77, 0x01, 0x32, 0xbd, 0xee, 0x41, 0xb3, - 0x10, 0x77, 0x3d, 0xcd, 0xf1, 0x68, 0x14, 0xc6, 0x15, 0x76, 0x81, 0x64, 0x88, 0x62, 0xab, 0x4e, - 0xb3, 0x5c, 0x5c, 0x21, 0x3f, 0xe7, 0x9e, 0x81, 0xc9, 0x9e, 0xdb, 0x8f, 0x0a, 0x5c, 0xfc, 0xd2, - 0x38, 0xcc, 0x0e, 0x8b, 0xb9, 0xa1, 0xe1, 0x7f, 0x0c, 0xc6, 0xad, 0x76, 0x73, 0x07, 0x3b, 0xd9, - 0x28, 0x65, 0xe0, 0x57, 0xa8, 0x00, 0x71, 0x53, 0xdb, 0xc1, 0x66, 0x36, 0xb6, 0x20, 0x2d, 0x65, - 0x4e, 0x3f, 0x35, 0x52, 0x54, 0x2f, 0xaf, 0x13, 0x88, 0xc2, 0x90, 0xe8, 0x39, 0x88, 0xf1, 0x14, - 0x47, 0x18, 0x9e, 0x1c, 0x8d, 0x81, 0xc4, 0xa2, 0x42, 0x71, 0xe8, 0x41, 0x48, 0x92, 0xbf, 0xcc, - 0xb7, 0xe3, 0xd4, 0xe6, 0x04, 0x11, 0x10, 0xbf, 0xa2, 0x39, 0x48, 0xd0, 0x30, 0xab, 0x63, 0x51, - 0x1a, 0xfc, 0x6b, 0xb2, 0x30, 0x75, 0xbc, 0xab, 0xb5, 0x4d, 0x4f, 0xbd, 0xa9, 0x99, 0x6d, 0x4c, - 0x03, 0x26, 0xa9, 0xa4, 0xb9, 0xf0, 0xb3, 0x44, 0x86, 0xe6, 0x21, 0xc5, 0xa2, 0xd2, 0xb0, 0xea, - 0xf8, 0x45, 0x9a, 0x7d, 0xe2, 0x0a, 0x0b, 0xd4, 0x32, 0x91, 0x90, 0xdb, 0x5f, 0x77, 0x6d, 0x4b, - 0x2c, 0x2d, 0xbd, 0x05, 0x11, 0xd0, 0xdb, 0x3f, 0xd3, 0x9f, 0xf8, 0x1e, 0x1a, 0x3e, 0xbd, 0xfe, - 0x58, 0x5c, 0x7c, 0x23, 0x02, 0x31, 0xba, 0xdf, 0xa6, 0x20, 0xb5, 0x75, 0xad, 0x56, 0x52, 0x57, - 0xab, 0xdb, 0xc5, 0xf5, 0x92, 0x2c, 0xa1, 0x0c, 0x00, 0x15, 0x5c, 0x5a, 0xaf, 0x16, 0xb6, 0xe4, - 0x88, 0x7f, 0x5d, 0xde, 0xd8, 0x3a, 0x7f, 0x56, 0x8e, 0xfa, 0x80, 0x6d, 0x26, 0x88, 0x05, 0x15, - 0xce, 0x9c, 0x96, 0xe3, 0x48, 0x86, 0x34, 0x23, 0x28, 0x5f, 0x2d, 0xad, 0x9e, 0x3f, 0x2b, 0x8f, - 0xf7, 0x4a, 0xce, 0x9c, 0x96, 0x27, 0xd0, 0x24, 0x24, 0xa9, 0xa4, 0x58, 0xad, 0xae, 0xcb, 0x09, - 0x9f, 0x73, 0x73, 0x4b, 0x29, 0x6f, 0xac, 0xc9, 0x49, 0x9f, 0x73, 0x4d, 0xa9, 0x6e, 0xd7, 0x64, - 0xf0, 0x19, 0x2a, 0xa5, 0xcd, 0xcd, 0xc2, 0x5a, 0x49, 0x4e, 0xf9, 0x1a, 0xc5, 0x6b, 0x5b, 0xa5, - 0x4d, 0x39, 0xdd, 0x63, 0xd6, 0x99, 0xd3, 0xf2, 0xa4, 0x7f, 0x8b, 0xd2, 0xc6, 0x76, 0x45, 0xce, - 0xa0, 0x69, 0x98, 0x64, 0xb7, 0x10, 0x46, 0x4c, 0xf5, 0x89, 0xce, 0x9f, 0x95, 0xe5, 0xae, 0x21, - 0x8c, 0x65, 0xba, 0x47, 0x70, 0xfe, 0xac, 0x8c, 0x16, 0x57, 0x20, 0x4e, 0xa3, 0x0b, 0x21, 0xc8, - 0xac, 0x17, 0x8a, 0xa5, 0x75, 0xb5, 0x5a, 0xdb, 0x2a, 0x57, 0x37, 0x0a, 0xeb, 0xb2, 0xd4, 0x95, - 0x29, 0xa5, 0xcf, 0x6c, 0x97, 0x95, 0xd2, 0xaa, 0x1c, 0x09, 0xca, 0x6a, 0xa5, 0xc2, 0x56, 0x69, - 0x55, 0x8e, 0x2e, 0xea, 0x30, 0x3b, 0x2c, 0xcf, 0x0c, 0xdd, 0x19, 0x81, 0x25, 0x8e, 0x1c, 0xb0, - 0xc4, 0x94, 0x6b, 0x60, 0x89, 0xbf, 0x2a, 0xc1, 0xcc, 0x90, 0x5c, 0x3b, 0xf4, 0x26, 0xcf, 0x43, - 0x9c, 0x85, 0x28, 0xab, 0x3e, 0x4f, 0x0c, 0x4d, 0xda, 0x34, 0x60, 0x07, 0x2a, 0x10, 0xc5, 0x05, - 0x2b, 0x70, 0xf4, 0x80, 0x0a, 0x4c, 0x28, 0x06, 0x8c, 0x7c, 0x59, 0x82, 0xec, 0x41, 0xdc, 0x21, - 0x89, 0x22, 0xd2, 0x93, 0x28, 0x2e, 0xf6, 0x1b, 0x70, 0xf2, 0xe0, 0x39, 0x0c, 0x58, 0xf1, 0xba, - 0x04, 0xc7, 0x86, 0x37, 0x2a, 0x43, 0x6d, 0x78, 0x0e, 0xc6, 0x9b, 0xd8, 0xdb, 0xb3, 0x45, 0xb1, - 0x7e, 0x6c, 0x48, 0x09, 0x20, 0xc3, 0xfd, 0xbe, 0xe2, 0xa8, 0x60, 0x0d, 0x89, 0x1e, 0xd4, 0x6d, - 0x30, 0x6b, 0x06, 0x2c, 0xfd, 0x62, 0x04, 0x1e, 0x18, 0x4a, 0x3e, 0xd4, 0xd0, 0x87, 0x00, 0x0c, - 0xab, 0xd5, 0xf6, 0x58, 0x41, 0x66, 0xf9, 0x29, 0x49, 0x25, 0x74, 0xef, 0x93, 0xdc, 0xd3, 0xf6, - 0xfc, 0xf1, 0x28, 0x1d, 0x07, 0x26, 0xa2, 0x0a, 0x17, 0xba, 0x86, 0xc6, 0xa8, 0xa1, 0xb9, 0x03, - 0x66, 0x3a, 0x50, 0xeb, 0x9e, 0x06, 0x59, 0x37, 0x0d, 0x6c, 0x79, 0xaa, 0xeb, 0x39, 0x58, 0x6b, - 0x1a, 0x56, 0x83, 0x26, 0xe0, 0x44, 0x3e, 0xbe, 0xab, 0x99, 0x2e, 0x56, 0xa6, 0xd8, 0xf0, 0xa6, - 0x18, 0x25, 0x08, 0x5a, 0x65, 0x9c, 0x00, 0x62, 0xbc, 0x07, 0xc1, 0x86, 0x7d, 0xc4, 0xe2, 0x37, - 0x26, 0x20, 0x15, 0x68, 0xeb, 0xd0, 0x49, 0x48, 0x5f, 0xd7, 0x6e, 0x6a, 0xaa, 0x68, 0xd5, 0x99, - 0x27, 0x52, 0x44, 0x56, 0xe3, 0xed, 0xfa, 0xd3, 0x30, 0x4b, 0x55, 0xec, 0xb6, 0x87, 0x1d, 0x55, - 0x37, 0x35, 0xd7, 0xa5, 0x4e, 0x4b, 0x50, 0x55, 0x44, 0xc6, 0xaa, 0x64, 0x68, 0x45, 0x8c, 0xa0, - 0x73, 0x30, 0x43, 0x11, 0xcd, 0xb6, 0xe9, 0x19, 0x2d, 0x13, 0xab, 0xe4, 0xe1, 0xc1, 0xa5, 0x89, - 0xd8, 0xb7, 0x6c, 0x9a, 0x68, 0x54, 0xb8, 0x02, 0xb1, 0xc8, 0x45, 0xab, 0xf0, 0x10, 0x85, 0x35, - 0xb0, 0x85, 0x1d, 0xcd, 0xc3, 0x2a, 0xfe, 0x5c, 0x5b, 0x33, 0x5d, 0x55, 0xb3, 0xea, 0xea, 0x9e, - 0xe6, 0xee, 0x65, 0x67, 0x09, 0x41, 0x31, 0x92, 0x95, 0x94, 0x13, 0x44, 0x71, 0x8d, 0xeb, 0x95, - 0xa8, 0x5a, 0xc1, 0xaa, 0x7f, 0x5a, 0x73, 0xf7, 0x50, 0x1e, 0x8e, 0x51, 0x16, 0xd7, 0x73, 0x0c, - 0xab, 0xa1, 0xea, 0x7b, 0x58, 0xbf, 0xa1, 0xb6, 0xbd, 0xdd, 0x0b, 0xd9, 0x07, 0x83, 0xf7, 0xa7, - 0x16, 0x6e, 0x52, 0x9d, 0x15, 0xa2, 0xb2, 0xed, 0xed, 0x5e, 0x40, 0x9b, 0x90, 0x26, 0x8b, 0xd1, - 0x34, 0x5e, 0xc2, 0xea, 0xae, 0xed, 0xd0, 0xca, 0x92, 0x19, 0xb2, 0xb3, 0x03, 0x1e, 0x5c, 0xae, - 0x72, 0x40, 0xc5, 0xae, 0xe3, 0x7c, 0x7c, 0xb3, 0x56, 0x2a, 0xad, 0x2a, 0x29, 0xc1, 0x72, 0xc9, - 0x76, 0x48, 0x40, 0x35, 0x6c, 0xdf, 0xc1, 0x29, 0x16, 0x50, 0x0d, 0x5b, 0xb8, 0xf7, 0x1c, 0xcc, - 0xe8, 0x3a, 0x9b, 0xb3, 0xa1, 0xab, 0xbc, 0xc5, 0x77, 0xb3, 0x72, 0x8f, 0xb3, 0x74, 0x7d, 0x8d, - 0x29, 0xf0, 0x18, 0x77, 0xd1, 0xb3, 0xf0, 0x40, 0xd7, 0x59, 0x41, 0xe0, 0xf4, 0xc0, 0x2c, 0xfb, - 0xa1, 0xe7, 0x60, 0xa6, 0xd5, 0x19, 0x04, 0xa2, 0x9e, 0x3b, 0xb6, 0x3a, 0xfd, 0xb0, 0x47, 0xe9, - 0x63, 0x9b, 0x83, 0x75, 0xcd, 0xc3, 0xf5, 0xec, 0xf1, 0xa0, 0x76, 0x60, 0x00, 0x9d, 0x02, 0x59, - 0xd7, 0x55, 0x6c, 0x69, 0x3b, 0x26, 0x56, 0x35, 0x07, 0x5b, 0x9a, 0x9b, 0x9d, 0x0f, 0x2a, 0x67, - 0x74, 0xbd, 0x44, 0x47, 0x0b, 0x74, 0x10, 0x3d, 0x09, 0xd3, 0xf6, 0xce, 0x75, 0x9d, 0x45, 0x96, - 0xda, 0x72, 0xf0, 0xae, 0xf1, 0x62, 0xf6, 0x11, 0xea, 0xa6, 0x29, 0x32, 0x40, 0xe3, 0xaa, 0x46, - 0xc5, 0xe8, 0x09, 0x90, 0x75, 0x77, 0x4f, 0x73, 0x5a, 0xb4, 0xb4, 0xbb, 0x2d, 0x4d, 0xc7, 0xd9, - 0x47, 0x99, 0x2a, 0x93, 0x6f, 0x08, 0x31, 0x89, 0x6c, 0xf7, 0x96, 0xb1, 0xeb, 0x09, 0xc6, 0xc7, - 0x59, 0x64, 0x53, 0x19, 0x67, 0xbb, 0x0a, 0xb3, 0x6d, 0xcb, 0xb0, 0x3c, 0xec, 0xb4, 0x1c, 0x4c, - 0x9a, 0x78, 0xb6, 0x13, 0xb3, 0xff, 0x3a, 0x71, 0x40, 0x1b, 0xbe, 0x1d, 0xd4, 0x66, 0x01, 0xa0, - 0xcc, 0xb4, 0x07, 0x85, 0x8b, 0x79, 0x48, 0x07, 0xe3, 0x02, 0x25, 0x81, 0x45, 0x86, 0x2c, 0x91, - 0x1a, 0xbb, 0x52, 0x5d, 0x25, 0xd5, 0xf1, 0x85, 0x92, 0x1c, 0x21, 0x55, 0x7a, 0xbd, 0xbc, 0x55, - 0x52, 0x95, 0xed, 0x8d, 0xad, 0x72, 0xa5, 0x24, 0x47, 0x9f, 0x4c, 0x26, 0xde, 0x9d, 0x90, 0x6f, - 0xdf, 0xbe, 0x7d, 0x3b, 0xb2, 0xf8, 0xbd, 0x08, 0x64, 0x7a, 0x3b, 0x63, 0xf4, 0x49, 0x38, 0x2e, - 0x1e, 0x63, 0x5d, 0xec, 0xa9, 0xb7, 0x0c, 0x87, 0x86, 0x6a, 0x53, 0x63, 0xbd, 0xa5, 0xef, 0xe5, - 0x59, 0xae, 0xb5, 0x89, 0xbd, 0x2b, 0x86, 0x43, 0x02, 0xb1, 0xa9, 0x79, 0x68, 0x1d, 0xe6, 0x2d, - 0x5b, 0x75, 0x3d, 0xcd, 0xaa, 0x6b, 0x4e, 0x5d, 0xed, 0x1e, 0x20, 0xa8, 0x9a, 0xae, 0x63, 0xd7, - 0xb5, 0x59, 0x89, 0xf0, 0x59, 0x3e, 0x66, 0xd9, 0x9b, 0x5c, 0xb9, 0x9b, 0x3b, 0x0b, 0x5c, 0xb5, - 0x2f, 0x22, 0xa2, 0x07, 0x45, 0xc4, 0x83, 0x90, 0x6c, 0x6a, 0x2d, 0x15, 0x5b, 0x9e, 0xd3, 0xa1, - 0xfd, 0x5c, 0x42, 0x49, 0x34, 0xb5, 0x56, 0x89, 0x5c, 0x7f, 0x74, 0x6b, 0x10, 0xf4, 0xe3, 0xbf, - 0x44, 0x21, 0x1d, 0xec, 0xe9, 0x48, 0x8b, 0xac, 0xd3, 0xfc, 0x2d, 0xd1, 0x1d, 0xfe, 0xf0, 0xa1, - 0x1d, 0xe0, 0xf2, 0x0a, 0x49, 0xec, 0xf9, 0x71, 0xd6, 0x69, 0x29, 0x0c, 0x49, 0x8a, 0x2a, 0xd9, - 0xd3, 0x98, 0xf5, 0xef, 0x09, 0x85, 0x5f, 0xa1, 0x35, 0x18, 0xbf, 0xee, 0x52, 0xee, 0x71, 0xca, - 0xfd, 0xc8, 0xe1, 0xdc, 0x97, 0x37, 0x29, 0x79, 0xf2, 0xf2, 0xa6, 0xba, 0x51, 0x55, 0x2a, 0x85, - 0x75, 0x85, 0xc3, 0xd1, 0x09, 0x88, 0x99, 0xda, 0x4b, 0x9d, 0xde, 0x12, 0x40, 0x45, 0xa3, 0x3a, - 0xfe, 0x04, 0xc4, 0x6e, 0x61, 0xed, 0x46, 0x6f, 0xe2, 0xa5, 0xa2, 0x8f, 0x30, 0xf4, 0x4f, 0x41, - 0x9c, 0xfa, 0x0b, 0x01, 0x70, 0x8f, 0xc9, 0x63, 0x28, 0x01, 0xb1, 0x95, 0xaa, 0x42, 0xc2, 0x5f, - 0x86, 0x34, 0x93, 0xaa, 0xb5, 0x72, 0x69, 0xa5, 0x24, 0x47, 0x16, 0xcf, 0xc1, 0x38, 0x73, 0x02, - 0xd9, 0x1a, 0xbe, 0x1b, 0xe4, 0x31, 0x7e, 0xc9, 0x39, 0x24, 0x31, 0xba, 0x5d, 0x29, 0x96, 0x14, - 0x39, 0x12, 0x5c, 0x5e, 0x17, 0xd2, 0xc1, 0x76, 0xee, 0x67, 0x13, 0x53, 0x7f, 0x2f, 0x41, 0x2a, - 0xd0, 0x9e, 0x91, 0xc6, 0x40, 0x33, 0x4d, 0xfb, 0x96, 0xaa, 0x99, 0x86, 0xe6, 0xf2, 0xa0, 0x00, - 0x2a, 0x2a, 0x10, 0xc9, 0xa8, 0x8b, 0xf6, 0x33, 0x31, 0xfe, 0x35, 0x09, 0xe4, 0xfe, 0xd6, 0xae, - 0xcf, 0x40, 0xe9, 0xe7, 0x6a, 0xe0, 0xab, 0x12, 0x64, 0x7a, 0xfb, 0xb9, 0x3e, 0xf3, 0x4e, 0xfe, - 0x5c, 0xcd, 0x7b, 0x3b, 0x02, 0x93, 0x3d, 0x5d, 0xdc, 0xa8, 0xd6, 0x7d, 0x0e, 0xa6, 0x8d, 0x3a, - 0x6e, 0xb6, 0x6c, 0x0f, 0x5b, 0x7a, 0x47, 0x35, 0xf1, 0x4d, 0x6c, 0x66, 0x17, 0x69, 0xa2, 0x38, - 0x75, 0x78, 0x9f, 0xb8, 0x5c, 0xee, 0xe2, 0xd6, 0x09, 0x2c, 0x3f, 0x53, 0x5e, 0x2d, 0x55, 0x6a, - 0xd5, 0xad, 0xd2, 0xc6, 0xca, 0x35, 0x75, 0x7b, 0xe3, 0xff, 0x6d, 0x54, 0xaf, 0x6c, 0x28, 0xb2, - 0xd1, 0xa7, 0xf6, 0x11, 0x6e, 0xf5, 0x1a, 0xc8, 0xfd, 0x46, 0xa1, 0xe3, 0x30, 0xcc, 0x2c, 0x79, - 0x0c, 0xcd, 0xc0, 0xd4, 0x46, 0x55, 0xdd, 0x2c, 0xaf, 0x96, 0xd4, 0xd2, 0xa5, 0x4b, 0xa5, 0x95, - 0xad, 0x4d, 0xf6, 0xe0, 0xec, 0x6b, 0x6f, 0xf5, 0x6e, 0xea, 0x57, 0xa2, 0x30, 0x33, 0xc4, 0x12, - 0x54, 0xe0, 0x3d, 0x3b, 0x7b, 0x8c, 0xf8, 0xc4, 0x28, 0xd6, 0x2f, 0x93, 0xae, 0xa0, 0xa6, 0x39, - 0x1e, 0x6f, 0xf1, 0x9f, 0x00, 0xe2, 0x25, 0xcb, 0x33, 0x76, 0x0d, 0xec, 0xf0, 0x73, 0x06, 0xd6, - 0xc8, 0x4f, 0x75, 0xe5, 0xec, 0xa8, 0xe1, 0xe3, 0x80, 0x5a, 0xb6, 0x6b, 0x78, 0xc6, 0x4d, 0xac, - 0x1a, 0x96, 0x38, 0x94, 0x20, 0x8d, 0x7d, 0x4c, 0x91, 0xc5, 0x48, 0xd9, 0xf2, 0x7c, 0x6d, 0x0b, - 0x37, 0xb4, 0x3e, 0x6d, 0x92, 0xc0, 0xa3, 0x8a, 0x2c, 0x46, 0x7c, 0xed, 0x93, 0x90, 0xae, 0xdb, - 0x6d, 0xd2, 0x26, 0x31, 0x3d, 0x52, 0x2f, 0x24, 0x25, 0xc5, 0x64, 0xbe, 0x0a, 0xef, 0x63, 0xbb, - 0xa7, 0x21, 0x69, 0x25, 0xc5, 0x64, 0x4c, 0xe5, 0x71, 0x98, 0xd2, 0x1a, 0x0d, 0x87, 0x90, 0x0b, - 0x22, 0xd6, 0x99, 0x67, 0x7c, 0x31, 0x55, 0x9c, 0xbb, 0x0c, 0x09, 0xe1, 0x07, 0x52, 0x92, 0x89, - 0x27, 0xd4, 0x16, 0x3b, 0x93, 0x8a, 0x2c, 0x25, 0x95, 0x84, 0x25, 0x06, 0x4f, 0x42, 0xda, 0x70, - 0xd5, 0xee, 0xe1, 0x68, 0x64, 0x21, 0xb2, 0x94, 0x50, 0x52, 0x86, 0xeb, 0x9f, 0x86, 0x2d, 0xbe, - 0x1e, 0x81, 0x4c, 0xef, 0xe1, 0x2e, 0x5a, 0x85, 0x84, 0x69, 0xeb, 0x1a, 0x0d, 0x2d, 0xf6, 0x66, - 0x61, 0x29, 0xe4, 0x3c, 0x78, 0x79, 0x9d, 0xeb, 0x2b, 0x3e, 0x72, 0xee, 0x9f, 0x24, 0x48, 0x08, - 0x31, 0x3a, 0x06, 0xb1, 0x96, 0xe6, 0xed, 0x51, 0xba, 0x78, 0x31, 0x22, 0x4b, 0x0a, 0xbd, 0x26, - 0x72, 0xb7, 0xa5, 0x59, 0x34, 0x04, 0xb8, 0x9c, 0x5c, 0x93, 0x75, 0x35, 0xb1, 0x56, 0xa7, 0x6d, - 0xbf, 0xdd, 0x6c, 0x62, 0xcb, 0x73, 0xc5, 0xba, 0x72, 0xf9, 0x0a, 0x17, 0xa3, 0xa7, 0x60, 0xda, - 0x73, 0x34, 0xc3, 0xec, 0xd1, 0x8d, 0x51, 0x5d, 0x59, 0x0c, 0xf8, 0xca, 0x79, 0x38, 0x21, 0x78, - 0xeb, 0xd8, 0xd3, 0xf4, 0x3d, 0x5c, 0xef, 0x82, 0xc6, 0xe9, 0xc9, 0xe1, 0x71, 0xae, 0xb0, 0xca, - 0xc7, 0x05, 0x76, 0xf1, 0x07, 0x12, 0x4c, 0x8b, 0x07, 0x95, 0xba, 0xef, 0xac, 0x0a, 0x80, 0x66, - 0x59, 0xb6, 0x17, 0x74, 0xd7, 0x60, 0x28, 0x0f, 0xe0, 0x96, 0x0b, 0x3e, 0x48, 0x09, 0x10, 0xcc, - 0x35, 0x01, 0xba, 0x23, 0x07, 0xba, 0x6d, 0x1e, 0x52, 0xfc, 0xe4, 0x9e, 0xbe, 0xfe, 0x61, 0x8f, - 0xb6, 0xc0, 0x44, 0xe4, 0x89, 0x06, 0xcd, 0x42, 0x7c, 0x07, 0x37, 0x0c, 0x8b, 0x9f, 0x27, 0xb2, - 0x0b, 0x71, 0x4a, 0x19, 0xf3, 0x4f, 0x29, 0x8b, 0x57, 0x61, 0x46, 0xb7, 0x9b, 0xfd, 0xe6, 0x16, - 0xe5, 0xbe, 0xc7, 0x6b, 0xf7, 0xd3, 0xd2, 0x0b, 0xd0, 0x6d, 0x31, 0xbf, 0x1a, 0x89, 0xae, 0xd5, - 0x8a, 0x5f, 0x8f, 0xcc, 0xad, 0x31, 0x5c, 0x4d, 0x4c, 0x53, 0xc1, 0xbb, 0x26, 0xd6, 0x89, 0xe9, - 0xf0, 0xe3, 0xc7, 0xe0, 0x13, 0x0d, 0xc3, 0xdb, 0x6b, 0xef, 0x2c, 0xeb, 0x76, 0xf3, 0x54, 0xc3, - 0x6e, 0xd8, 0xdd, 0xd7, 0x5d, 0xe4, 0x8a, 0x5e, 0xd0, 0x5f, 0xfc, 0x95, 0x57, 0xd2, 0x97, 0xce, - 0x85, 0xbe, 0x1f, 0xcb, 0x6f, 0xc0, 0x0c, 0x57, 0x56, 0xe9, 0x99, 0x3b, 0x7b, 0x34, 0x40, 0x87, - 0x9e, 0xbb, 0x64, 0xbf, 0xf5, 0x0e, 0xad, 0xd5, 0xca, 0x34, 0x87, 0x92, 0x31, 0xf6, 0x00, 0x91, - 0x57, 0xe0, 0x81, 0x1e, 0x3e, 0xb6, 0x2f, 0xb1, 0x13, 0xc2, 0xf8, 0x3d, 0xce, 0x38, 0x13, 0x60, - 0xdc, 0xe4, 0xd0, 0xfc, 0x0a, 0x4c, 0x1e, 0x85, 0xeb, 0x1f, 0x38, 0x57, 0x1a, 0x07, 0x49, 0xd6, - 0x60, 0x8a, 0x92, 0xe8, 0x6d, 0xd7, 0xb3, 0x9b, 0x34, 0xe9, 0x1d, 0x4e, 0xf3, 0x8f, 0xef, 0xb0, - 0x8d, 0x92, 0x21, 0xb0, 0x15, 0x1f, 0x95, 0xcf, 0x03, 0x7d, 0xcd, 0x50, 0xc7, 0xba, 0x19, 0xc2, - 0xf0, 0x26, 0x37, 0xc4, 0xd7, 0xcf, 0x7f, 0x16, 0x66, 0xc9, 0x6f, 0x9a, 0x93, 0x82, 0x96, 0x84, - 0x9f, 0x32, 0x65, 0x7f, 0xf0, 0x32, 0xdb, 0x8b, 0x33, 0x3e, 0x41, 0xc0, 0xa6, 0xc0, 0x2a, 0x36, - 0xb0, 0xe7, 0x61, 0xc7, 0x55, 0x35, 0x73, 0x98, 0x79, 0x81, 0xc7, 0xf4, 0xec, 0x97, 0xdf, 0xeb, - 0x5d, 0xc5, 0x35, 0x86, 0x2c, 0x98, 0x66, 0x7e, 0x1b, 0x8e, 0x0f, 0x89, 0x8a, 0x11, 0x38, 0x5f, - 0xe1, 0x9c, 0xb3, 0x03, 0x91, 0x41, 0x68, 0x6b, 0x20, 0xe4, 0xfe, 0x5a, 0x8e, 0xc0, 0xf9, 0x07, - 0x9c, 0x13, 0x71, 0xac, 0x58, 0x52, 0xc2, 0x78, 0x19, 0xa6, 0x6f, 0x62, 0x67, 0xc7, 0x76, 0xf9, - 0xd1, 0xc8, 0x08, 0x74, 0xaf, 0x72, 0xba, 0x29, 0x0e, 0xa4, 0x67, 0x25, 0x84, 0xeb, 0x59, 0x48, - 0xec, 0x6a, 0x3a, 0x1e, 0x81, 0xe2, 0x2b, 0x9c, 0x62, 0x82, 0xe8, 0x13, 0x68, 0x01, 0xd2, 0x0d, - 0x9b, 0x97, 0xa5, 0x70, 0xf8, 0x6b, 0x1c, 0x9e, 0x12, 0x18, 0x4e, 0xd1, 0xb2, 0x5b, 0x6d, 0x93, - 0xd4, 0xac, 0x70, 0x8a, 0x3f, 0x14, 0x14, 0x02, 0xc3, 0x29, 0x8e, 0xe0, 0xd6, 0x3f, 0x12, 0x14, - 0x6e, 0xc0, 0x9f, 0xcf, 0x43, 0xca, 0xb6, 0xcc, 0x8e, 0x6d, 0x8d, 0x62, 0xc4, 0x1f, 0x73, 0x06, - 0xe0, 0x10, 0x42, 0x70, 0x11, 0x92, 0xa3, 0x2e, 0xc4, 0x9f, 0xbc, 0x27, 0xb6, 0x87, 0x58, 0x81, - 0x35, 0x98, 0x12, 0x09, 0xca, 0xb0, 0xad, 0x11, 0x28, 0xfe, 0x94, 0x53, 0x64, 0x02, 0x30, 0x3e, - 0x0d, 0x0f, 0xbb, 0x5e, 0x03, 0x8f, 0x42, 0xf2, 0xba, 0x98, 0x06, 0x87, 0x70, 0x57, 0xee, 0x60, - 0x4b, 0xdf, 0x1b, 0x8d, 0xe1, 0x6b, 0xc2, 0x95, 0x02, 0x43, 0x28, 0x56, 0x60, 0xb2, 0xa9, 0x39, - 0xee, 0x9e, 0x66, 0x8e, 0xb4, 0x1c, 0x7f, 0xc6, 0x39, 0xd2, 0x3e, 0x88, 0x7b, 0xa4, 0x6d, 0x1d, - 0x85, 0xe6, 0xeb, 0xc2, 0x23, 0x01, 0x18, 0xdf, 0x7a, 0xae, 0x47, 0x0f, 0xa0, 0x8e, 0xc2, 0xf6, - 0x0d, 0xb1, 0xf5, 0x18, 0xb6, 0x12, 0x64, 0xbc, 0x08, 0x49, 0xd7, 0x78, 0x69, 0x24, 0x9a, 0x3f, - 0x17, 0x2b, 0x4d, 0x01, 0x04, 0x7c, 0x0d, 0x4e, 0x0c, 0x2d, 0x13, 0x23, 0x90, 0xfd, 0x05, 0x27, - 0x3b, 0x36, 0xa4, 0x54, 0xf0, 0x94, 0x70, 0x54, 0xca, 0xbf, 0x14, 0x29, 0x01, 0xf7, 0x71, 0xd5, - 0xc8, 0x83, 0x82, 0xab, 0xed, 0x1e, 0xcd, 0x6b, 0x7f, 0x25, 0xbc, 0xc6, 0xb0, 0x3d, 0x5e, 0xdb, - 0x82, 0x63, 0x9c, 0xf1, 0x68, 0xeb, 0xfa, 0x4d, 0x91, 0x58, 0x19, 0x7a, 0xbb, 0x77, 0x75, 0xff, - 0x3f, 0xcc, 0xf9, 0xee, 0x14, 0x1d, 0xa9, 0xab, 0x36, 0xb5, 0xd6, 0x08, 0xcc, 0xdf, 0xe2, 0xcc, - 0x22, 0xe3, 0xfb, 0x2d, 0xad, 0x5b, 0xd1, 0x5a, 0x84, 0xfc, 0x2a, 0x64, 0x05, 0x79, 0xdb, 0x72, - 0xb0, 0x6e, 0x37, 0x2c, 0xe3, 0x25, 0x5c, 0x1f, 0x81, 0xfa, 0xaf, 0xfb, 0x96, 0x6a, 0x3b, 0x00, - 0x27, 0xcc, 0x65, 0x90, 0xfd, 0x5e, 0x45, 0x35, 0x9a, 0x2d, 0xdb, 0xf1, 0x42, 0x18, 0xff, 0x46, - 0xac, 0x94, 0x8f, 0x2b, 0x53, 0x58, 0xbe, 0x04, 0x19, 0x7a, 0x39, 0x6a, 0x48, 0xfe, 0x2d, 0x27, - 0x9a, 0xec, 0xa2, 0x78, 0xe2, 0xd0, 0xed, 0x66, 0x4b, 0x73, 0x46, 0xc9, 0x7f, 0xdf, 0x16, 0x89, - 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x3a, 0x2d, 0x4c, 0xaa, 0xfd, 0x08, 0x0c, 0x6f, 0x88, 0xc4, 0x21, - 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x23, 0x50, 0xfc, 0x9d, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0x99, 0x6e, - 0xa1, 0x75, 0x70, 0xc3, 0x70, 0x3d, 0x87, 0xf5, 0xc1, 0x87, 0x53, 0x7d, 0xe7, 0xbd, 0xde, 0x26, - 0x4c, 0x09, 0x40, 0xf3, 0x97, 0x61, 0xaa, 0xaf, 0xc5, 0x40, 0x61, 0xdf, 0x2c, 0x64, 0x7f, 0xf1, - 0x03, 0x9e, 0x8c, 0x7a, 0x3b, 0x8c, 0xfc, 0x3a, 0x59, 0xf7, 0xde, 0x3e, 0x20, 0x9c, 0xec, 0xe5, - 0x0f, 0xfc, 0xa5, 0xef, 0x69, 0x03, 0xf2, 0x97, 0x60, 0xb2, 0xa7, 0x07, 0x08, 0xa7, 0xfa, 0x25, - 0x4e, 0x95, 0x0e, 0xb6, 0x00, 0xf9, 0x73, 0x10, 0x23, 0xf5, 0x3c, 0x1c, 0xfe, 0xcb, 0x1c, 0x4e, - 0xd5, 0xf3, 0x9f, 0x82, 0x84, 0xa8, 0xe3, 0xe1, 0xd0, 0x5f, 0xe1, 0x50, 0x1f, 0x42, 0xe0, 0xa2, - 0x86, 0x87, 0xc3, 0xbf, 0x20, 0xe0, 0x02, 0x42, 0xe0, 0xa3, 0xbb, 0xf0, 0xbb, 0xbf, 0x16, 0xe3, - 0x79, 0x58, 0xf8, 0xee, 0x22, 0x4c, 0xf0, 0xe2, 0x1d, 0x8e, 0xfe, 0x22, 0xbf, 0xb9, 0x40, 0xe4, - 0x9f, 0x81, 0xf8, 0x88, 0x0e, 0xff, 0x75, 0x0e, 0x65, 0xfa, 0xf9, 0x15, 0x48, 0x05, 0x0a, 0x76, - 0x38, 0xfc, 0x37, 0x38, 0x3c, 0x88, 0x22, 0xa6, 0xf3, 0x82, 0x1d, 0x4e, 0xf0, 0x9b, 0xc2, 0x74, - 0x8e, 0x20, 0x6e, 0x13, 0xb5, 0x3a, 0x1c, 0xfd, 0x5b, 0xc2, 0xeb, 0x02, 0x92, 0x7f, 0x1e, 0x92, - 0x7e, 0xfe, 0x0d, 0xc7, 0xff, 0x36, 0xc7, 0x77, 0x31, 0xc4, 0x03, 0x81, 0xfc, 0x1f, 0x4e, 0xf1, - 0x3b, 0xc2, 0x03, 0x01, 0x14, 0xd9, 0x46, 0xfd, 0x35, 0x3d, 0x9c, 0xe9, 0x77, 0xc5, 0x36, 0xea, - 0x2b, 0xe9, 0x64, 0x35, 0x69, 0x1a, 0x0c, 0xa7, 0xf8, 0x3d, 0xb1, 0x9a, 0x54, 0x9f, 0x98, 0xd1, - 0x5f, 0x24, 0xc3, 0x39, 0x7e, 0x5f, 0x98, 0xd1, 0x57, 0x23, 0xf3, 0x35, 0x40, 0x83, 0x05, 0x32, - 0x9c, 0xef, 0x4b, 0x9c, 0x6f, 0x7a, 0xa0, 0x3e, 0xe6, 0xaf, 0xc0, 0xb1, 0xe1, 0xc5, 0x31, 0x9c, - 0xf5, 0xcb, 0x1f, 0xf4, 0x3d, 0xce, 0x04, 0x6b, 0x63, 0x7e, 0xab, 0x9b, 0x65, 0x83, 0x85, 0x31, - 0x9c, 0xf6, 0x95, 0x0f, 0x7a, 0x13, 0x6d, 0xb0, 0x2e, 0xe6, 0x0b, 0x00, 0xdd, 0x9a, 0x14, 0xce, - 0xf5, 0x2a, 0xe7, 0x0a, 0x80, 0xc8, 0xd6, 0xe0, 0x25, 0x29, 0x1c, 0xff, 0x15, 0xb1, 0x35, 0x38, - 0x82, 0x6c, 0x0d, 0x51, 0x8d, 0xc2, 0xd1, 0xaf, 0x89, 0xad, 0x21, 0x20, 0xf9, 0x8b, 0x90, 0xb0, - 0xda, 0xa6, 0x49, 0x62, 0x0b, 0x1d, 0xfe, 0x19, 0x51, 0xf6, 0x47, 0x1f, 0x72, 0xb0, 0x00, 0xe4, - 0xcf, 0x41, 0x1c, 0x37, 0x77, 0x70, 0x3d, 0x0c, 0xf9, 0x6f, 0x1f, 0x8a, 0x7c, 0x42, 0xb4, 0xf3, - 0xcf, 0x03, 0xb0, 0x87, 0x69, 0xfa, 0x96, 0x28, 0x04, 0xfb, 0xef, 0x1f, 0xf2, 0x2f, 0x14, 0xba, - 0x90, 0x2e, 0x01, 0xfb, 0xde, 0xe1, 0x70, 0x82, 0xf7, 0x7a, 0x09, 0xe8, 0x03, 0xf8, 0xb3, 0x30, - 0x71, 0xdd, 0xb5, 0x2d, 0x4f, 0x6b, 0x84, 0xa1, 0xff, 0x83, 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xd3, - 0x76, 0xb0, 0xa7, 0x35, 0xdc, 0x30, 0xec, 0x7f, 0x72, 0xac, 0x0f, 0x20, 0x60, 0x5d, 0x73, 0xbd, - 0x51, 0xe6, 0xfd, 0x5f, 0x02, 0x2c, 0x00, 0xc4, 0x68, 0xf2, 0xfb, 0x06, 0xee, 0x84, 0x61, 0xdf, - 0x17, 0x46, 0x73, 0xfd, 0xfc, 0xa7, 0x20, 0x49, 0x7e, 0xb2, 0xaf, 0x76, 0x42, 0xc0, 0xff, 0xcd, - 0xc1, 0x5d, 0x04, 0xb9, 0xb3, 0xeb, 0xd5, 0x3d, 0x23, 0xdc, 0xd9, 0xff, 0xc3, 0x57, 0x5a, 0xe8, - 0xe7, 0x0b, 0x90, 0x72, 0xbd, 0x7a, 0xbd, 0xcd, 0x3b, 0x9a, 0x10, 0xf8, 0x8f, 0x3f, 0xf4, 0x1f, - 0x72, 0x7d, 0x4c, 0xf1, 0xe4, 0xf0, 0xc3, 0x3a, 0x58, 0xb3, 0xd7, 0x6c, 0x76, 0x4c, 0x07, 0x6f, - 0x4c, 0xc1, 0x49, 0xdd, 0x6e, 0xee, 0xd8, 0xee, 0xa9, 0x40, 0x1a, 0x3a, 0x25, 0x5c, 0xc7, 0x4f, - 0xda, 0x7c, 0x57, 0xce, 0x1d, 0xed, 0x88, 0x6e, 0xf1, 0x47, 0x93, 0x90, 0x58, 0xd1, 0x5c, 0x4f, - 0xbb, 0xa5, 0x75, 0xd0, 0xa3, 0x90, 0x28, 0x5b, 0xde, 0x99, 0xd3, 0x35, 0xcf, 0xa1, 0xaf, 0x98, - 0xa2, 0xc5, 0xe4, 0xbd, 0x3b, 0xf3, 0x71, 0x83, 0xc8, 0x14, 0x7f, 0x08, 0x3d, 0x0c, 0x71, 0xfa, - 0x9b, 0x9e, 0x52, 0x46, 0x8b, 0x93, 0x6f, 0xde, 0x99, 0x1f, 0xeb, 0xea, 0xb1, 0x31, 0x74, 0x0d, - 0x52, 0x95, 0xce, 0xb6, 0x61, 0x79, 0xe7, 0xcf, 0x12, 0x3a, 0x32, 0xf9, 0x58, 0xf1, 0x99, 0x7b, - 0x77, 0xe6, 0xcf, 0x1c, 0x68, 0x20, 0x29, 0x89, 0xdd, 0x89, 0x09, 0x34, 0xfd, 0x72, 0x31, 0xc8, - 0x85, 0xae, 0x40, 0x42, 0x5c, 0xb2, 0xd3, 0xfe, 0xe2, 0x45, 0x6e, 0xc2, 0x7d, 0x71, 0xfb, 0x64, - 0xe8, 0x17, 0x20, 0x5d, 0xe9, 0x5c, 0x32, 0x6d, 0x8d, 0xfb, 0x20, 0xbe, 0x20, 0x2d, 0x45, 0x8a, - 0x17, 0xee, 0xdd, 0x99, 0x3f, 0x3b, 0x32, 0x31, 0x87, 0x53, 0xe6, 0x1e, 0x36, 0xf4, 0x02, 0x24, - 0xfd, 0x6b, 0xfa, 0x3e, 0x21, 0x52, 0xfc, 0x24, 0xb7, 0xfb, 0xfe, 0xe8, 0xbb, 0x74, 0x01, 0xcb, - 0x99, 0xbb, 0x27, 0x16, 0xa4, 0x25, 0xe9, 0x7e, 0x2c, 0xe7, 0x3e, 0xe9, 0x61, 0x0b, 0x58, 0x7e, - 0xfe, 0x2c, 0x7d, 0x81, 0x21, 0xdd, 0xaf, 0xe5, 0x9c, 0xbe, 0x4b, 0x87, 0x2e, 0xc3, 0x44, 0xa5, - 0x53, 0xec, 0x78, 0xd8, 0xa5, 0x5f, 0xf4, 0xa4, 0x8b, 0x4f, 0xdf, 0xbb, 0x33, 0xff, 0xf1, 0x11, - 0x59, 0x29, 0x4e, 0x11, 0x04, 0x68, 0x01, 0x52, 0x1b, 0xb6, 0xd3, 0xd4, 0x4c, 0xc6, 0x07, 0xec, - 0x85, 0x4c, 0x40, 0x84, 0xb6, 0xc9, 0x4c, 0xd8, 0x6a, 0xbb, 0xf4, 0x7f, 0x11, 0x7e, 0x8a, 0x98, - 0xec, 0x32, 0x21, 0x03, 0xe2, 0x95, 0x4e, 0x45, 0x6b, 0x65, 0xd3, 0xf4, 0x6d, 0xc1, 0x43, 0xcb, - 0x3e, 0x42, 0xec, 0xad, 0x65, 0x3a, 0x4e, 0x3f, 0xab, 0x28, 0x9e, 0xbd, 0x77, 0x67, 0xfe, 0xe9, - 0x91, 0xef, 0x58, 0xd1, 0x5a, 0xf4, 0x76, 0xec, 0x0e, 0xe8, 0xdb, 0x12, 0xd9, 0x58, 0xec, 0xc4, - 0x95, 0xdc, 0x71, 0x92, 0xde, 0xf1, 0xe1, 0xa1, 0x77, 0xf4, 0xb5, 0xd8, 0x7d, 0xad, 0xcf, 0xbf, - 0x75, 0x84, 0x99, 0xb2, 0xa7, 0x1a, 0x72, 0xeb, 0x5f, 0x7d, 0xeb, 0xbe, 0x37, 0xad, 0x6f, 0x01, - 0x7a, 0x59, 0x82, 0xc9, 0x4a, 0x67, 0x83, 0xd7, 0x57, 0x62, 0x79, 0x86, 0x7f, 0xb1, 0x3e, 0xcc, - 0xf2, 0x80, 0x1e, 0xb3, 0xfd, 0xfc, 0xe7, 0xdf, 0x9a, 0x3f, 0x3d, 0xb2, 0x11, 0x34, 0x05, 0x51, - 0x1b, 0x7a, 0xef, 0x89, 0xbe, 0x40, 0xad, 0x28, 0x91, 0x5a, 0x5d, 0xc7, 0x75, 0x62, 0xc5, 0xd4, - 0x21, 0x56, 0x04, 0xf4, 0x98, 0x15, 0x79, 0x12, 0xf5, 0xf7, 0x6f, 0x49, 0x80, 0x0f, 0x55, 0x61, - 0x9c, 0x79, 0x98, 0x7e, 0x4d, 0x96, 0x3c, 0x62, 0x18, 0x76, 0x17, 0x47, 0xe1, 0x34, 0x73, 0x17, - 0x00, 0xba, 0x31, 0x86, 0x64, 0x88, 0xde, 0xc0, 0x1d, 0xfe, 0xc9, 0x20, 0xf9, 0x89, 0x66, 0xbb, - 0x9f, 0xc4, 0x4a, 0x4b, 0x31, 0xfe, 0x9d, 0x6b, 0x3e, 0x72, 0x41, 0x9a, 0x7b, 0x0e, 0xe4, 0xfe, - 0x58, 0x39, 0x12, 0x5e, 0x01, 0x34, 0xb8, 0x62, 0x41, 0x86, 0x38, 0x63, 0x78, 0x2c, 0xc8, 0x90, - 0x3a, 0x2d, 0x77, 0x7d, 0x7e, 0xc5, 0x30, 0x5d, 0xdb, 0x1a, 0xe0, 0xec, 0xf7, 0xff, 0x4f, 0xc7, - 0xb9, 0x98, 0x83, 0x71, 0x26, 0x24, 0x73, 0x29, 0xd3, 0xf2, 0x41, 0xab, 0x9c, 0xc2, 0x2e, 0x8a, - 0xeb, 0x6f, 0xde, 0xcd, 0x8d, 0x7d, 0xff, 0x6e, 0x6e, 0xec, 0x9f, 0xef, 0xe6, 0xc6, 0xde, 0xbe, - 0x9b, 0x93, 0xde, 0xbd, 0x9b, 0x93, 0xde, 0xbf, 0x9b, 0x93, 0x7e, 0x72, 0x37, 0x27, 0xdd, 0xde, - 0xcf, 0x49, 0x5f, 0xdb, 0xcf, 0x49, 0xdf, 0xdc, 0xcf, 0x49, 0xdf, 0xd9, 0xcf, 0x49, 0xdf, 0xdd, - 0xcf, 0x49, 0x6f, 0xee, 0xe7, 0xc6, 0xbe, 0xbf, 0x9f, 0x93, 0xde, 0xde, 0xcf, 0x49, 0xef, 0xee, - 0xe7, 0xc6, 0xde, 0xdf, 0xcf, 0x49, 0x3f, 0xd9, 0xcf, 0x8d, 0xdd, 0xfe, 0x61, 0x6e, 0xec, 0xff, - 0x02, 0x00, 0x00, 0xff, 0xff, 0xc0, 0xa3, 0xe7, 0xd4, 0x15, 0x36, 0x00, 0x00, + 0x75, 0x3f, 0x17, 0x1f, 0x24, 0x70, 0x00, 0x82, 0xcb, 0x4b, 0x5a, 0x82, 0xe8, 0x18, 0xa4, 0x28, + 0xdb, 0xa2, 0xed, 0x84, 0xf2, 0xe8, 0x5b, 0x50, 0x62, 0xff, 0x09, 0x12, 0x62, 0xa0, 0x3f, 0x41, + 0x32, 0x4b, 0x32, 0xb2, 0x9c, 0x76, 0x76, 0x96, 0x8b, 0x4b, 0x70, 0xa5, 0xc5, 0xee, 0x66, 0x77, + 0x21, 0x19, 0x9a, 0x3e, 0xa8, 0x71, 0xdb, 0x4c, 0xda, 0xe9, 0x77, 0x67, 0x92, 0xb8, 0x8e, 0xfb, + 0x31, 0xd3, 0x3a, 0x4d, 0xbf, 0x92, 0xa6, 0x71, 0xd3, 0x3e, 0xe5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, + 0x5b, 0x1f, 0x3a, 0xb2, 0xc5, 0x78, 0xa6, 0x4e, 0xeb, 0x36, 0x6e, 0xeb, 0x07, 0x8f, 0xfc, 0xd2, + 0xb9, 0x5f, 0x8b, 0xc5, 0x07, 0xb5, 0xa0, 0x32, 0x76, 0x9e, 0x88, 0x3d, 0xf7, 0xfc, 0x7e, 0xf7, + 0xdc, 0x73, 0xcf, 0x3d, 0xe7, 0xde, 0xbb, 0x4b, 0xf8, 0xc9, 0x05, 0x98, 0xa9, 0xdb, 0x76, 0xdd, + 0xc4, 0x27, 0x1c, 0xd7, 0xf6, 0xed, 0xed, 0xe6, 0xce, 0x89, 0x1a, 0xf6, 0x74, 0xd7, 0x70, 0x7c, + 0xdb, 0x9d, 0xa7, 0x32, 0x34, 0xc6, 0x34, 0xe6, 0x85, 0xc6, 0x6c, 0x15, 0xc6, 0x2f, 0x19, 0x26, + 0x5e, 0x0a, 0x14, 0x37, 0xb0, 0x8f, 0xce, 0x43, 0x62, 0xc7, 0x30, 0x71, 0x5e, 0x9a, 0x89, 0xcf, + 0x65, 0x4e, 0x3e, 0x3a, 0xdf, 0x05, 0x9a, 0xef, 0x44, 0xac, 0x13, 0xb1, 0x42, 0x11, 0xb3, 0x6f, + 0x25, 0x60, 0xa2, 0x4f, 0x2b, 0x42, 0x90, 0xb0, 0xb4, 0x06, 0x61, 0x94, 0xe6, 0xd2, 0x0a, 0xfd, + 0x8d, 0xf2, 0x30, 0xe2, 0x68, 0xfa, 0x75, 0xad, 0x8e, 0xf3, 0x31, 0x2a, 0x16, 0x8f, 0xa8, 0x00, + 0x50, 0xc3, 0x0e, 0xb6, 0x6a, 0xd8, 0xd2, 0x5b, 0xf9, 0xf8, 0x4c, 0x7c, 0x2e, 0xad, 0x84, 0x24, + 0xe8, 0x29, 0x18, 0x77, 0x9a, 0xdb, 0xa6, 0xa1, 0xab, 0x21, 0x35, 0x98, 0x89, 0xcf, 0x25, 0x15, + 0x99, 0x35, 0x2c, 0xb5, 0x95, 0x8f, 0xc3, 0xd8, 0x4d, 0xac, 0x5d, 0x0f, 0xab, 0x66, 0xa8, 0x6a, + 0x8e, 0x88, 0x43, 0x8a, 0x8b, 0x90, 0x6d, 0x60, 0xcf, 0xd3, 0xea, 0x58, 0xf5, 0x5b, 0x0e, 0xce, + 0x27, 0xe8, 0xe8, 0x67, 0x7a, 0x46, 0xdf, 0x3d, 0xf2, 0x0c, 0x47, 0x6d, 0xb6, 0x1c, 0x8c, 0x16, + 0x20, 0x8d, 0xad, 0x66, 0x83, 0x31, 0x24, 0xf7, 0xf1, 0x5f, 0xd9, 0x6a, 0x36, 0xba, 0x59, 0x52, + 0x04, 0xc6, 0x29, 0x46, 0x3c, 0xec, 0xde, 0x30, 0x74, 0x9c, 0x1f, 0xa6, 0x04, 0xc7, 0x7b, 0x08, + 0x36, 0x58, 0x7b, 0x37, 0x87, 0xc0, 0xa1, 0x45, 0x48, 0xe3, 0x17, 0x7c, 0x6c, 0x79, 0x86, 0x6d, + 0xe5, 0x47, 0x28, 0xc9, 0x63, 0x7d, 0x66, 0x11, 0x9b, 0xb5, 0x6e, 0x8a, 0x36, 0x0e, 0x9d, 0x85, + 0x11, 0xdb, 0xf1, 0x0d, 0xdb, 0xf2, 0xf2, 0xa9, 0x19, 0x69, 0x2e, 0x73, 0xf2, 0x63, 0x7d, 0x03, + 0x61, 0x8d, 0xe9, 0x28, 0x42, 0x19, 0x55, 0x40, 0xf6, 0xec, 0xa6, 0xab, 0x63, 0x55, 0xb7, 0x6b, + 0x58, 0x35, 0xac, 0x1d, 0x3b, 0x9f, 0xa6, 0x04, 0xd3, 0xbd, 0x03, 0xa1, 0x8a, 0x8b, 0x76, 0x0d, + 0x57, 0xac, 0x1d, 0x5b, 0xc9, 0x79, 0x1d, 0xcf, 0xe8, 0x10, 0x0c, 0x7b, 0x2d, 0xcb, 0xd7, 0x5e, + 0xc8, 0x67, 0x69, 0x84, 0xf0, 0xa7, 0xd9, 0xbf, 0x1f, 0x86, 0xb1, 0x41, 0x42, 0xec, 0x22, 0x24, + 0x77, 0xc8, 0x28, 0xf3, 0xb1, 0x83, 0xf8, 0x80, 0x61, 0x3a, 0x9d, 0x38, 0xfc, 0x80, 0x4e, 0x5c, + 0x80, 0x8c, 0x85, 0x3d, 0x1f, 0xd7, 0x58, 0x44, 0xc4, 0x07, 0x8c, 0x29, 0x60, 0xa0, 0xde, 0x90, + 0x4a, 0x3c, 0x50, 0x48, 0x3d, 0x07, 0x63, 0x81, 0x49, 0xaa, 0xab, 0x59, 0x75, 0x11, 0x9b, 0x27, + 0xa2, 0x2c, 0x99, 0x2f, 0x0b, 0x9c, 0x42, 0x60, 0x4a, 0x0e, 0x77, 0x3c, 0xa3, 0x25, 0x00, 0xdb, + 0xc2, 0xf6, 0x8e, 0x5a, 0xc3, 0xba, 0x99, 0x4f, 0xed, 0xe3, 0xa5, 0x35, 0xa2, 0xd2, 0xe3, 0x25, + 0x9b, 0x49, 0x75, 0x13, 0x5d, 0x68, 0x87, 0xda, 0xc8, 0x3e, 0x91, 0x52, 0x65, 0x8b, 0xac, 0x27, + 0xda, 0xb6, 0x20, 0xe7, 0x62, 0x12, 0xf7, 0xb8, 0xc6, 0x47, 0x96, 0xa6, 0x46, 0xcc, 0x47, 0x8e, + 0x4c, 0xe1, 0x30, 0x36, 0xb0, 0x51, 0x37, 0xfc, 0x88, 0x8e, 0x41, 0x20, 0x50, 0x69, 0x58, 0x01, + 0xcd, 0x42, 0x59, 0x21, 0x5c, 0xd5, 0x1a, 0x78, 0xea, 0x16, 0xe4, 0x3a, 0xdd, 0x83, 0x26, 0x21, + 0xe9, 0xf9, 0x9a, 0xeb, 0xd3, 0x28, 0x4c, 0x2a, 0xec, 0x01, 0xc9, 0x10, 0xc7, 0x56, 0x8d, 0x66, + 0xb9, 0xa4, 0x42, 0x7e, 0xa2, 0xff, 0xd7, 0x1e, 0x70, 0x9c, 0x0e, 0xf8, 0xf1, 0xde, 0x19, 0xed, + 0x60, 0xee, 0x1e, 0xf7, 0xd4, 0x39, 0x18, 0xed, 0x18, 0xc0, 0xa0, 0x5d, 0xcf, 0xfe, 0x02, 0x3c, + 0xd4, 0x97, 0x1a, 0x3d, 0x07, 0x93, 0x4d, 0xcb, 0xb0, 0x7c, 0xec, 0x3a, 0x2e, 0x26, 0x11, 0xcb, + 0xba, 0xca, 0xff, 0xdb, 0xc8, 0x3e, 0x31, 0xb7, 0x15, 0xd6, 0x66, 0x2c, 0xca, 0x44, 0xb3, 0x57, + 0xf8, 0x64, 0x3a, 0xf5, 0xf6, 0x88, 0x7c, 0xfb, 0xf6, 0xed, 0xdb, 0xb1, 0xd9, 0xaf, 0x0c, 0xc3, + 0x64, 0xbf, 0x35, 0xd3, 0x77, 0xf9, 0x1e, 0x82, 0x61, 0xab, 0xd9, 0xd8, 0xc6, 0x2e, 0x75, 0x52, + 0x52, 0xe1, 0x4f, 0x68, 0x01, 0x92, 0xa6, 0xb6, 0x8d, 0xcd, 0x7c, 0x62, 0x46, 0x9a, 0xcb, 0x9d, + 0x7c, 0x6a, 0xa0, 0x55, 0x39, 0xbf, 0x42, 0x20, 0x0a, 0x43, 0xa2, 0x67, 0x20, 0xc1, 0x53, 0x34, + 0x61, 0x78, 0x72, 0x30, 0x06, 0xb2, 0x96, 0x14, 0x8a, 0x43, 0x0f, 0x43, 0x9a, 0xfc, 0x65, 0xb1, + 0x31, 0x4c, 0x6d, 0x4e, 0x11, 0x01, 0x89, 0x0b, 0x34, 0x05, 0x29, 0xba, 0x4c, 0x6a, 0x58, 0x94, + 0xb6, 0xe0, 0x99, 0x04, 0x56, 0x0d, 0xef, 0x68, 0x4d, 0xd3, 0x57, 0x6f, 0x68, 0x66, 0x13, 0xd3, + 0x80, 0x4f, 0x2b, 0x59, 0x2e, 0xfc, 0x2c, 0x91, 0xa1, 0x69, 0xc8, 0xb0, 0x55, 0x65, 0x58, 0x35, + 0xfc, 0x02, 0xcd, 0x9e, 0x49, 0x85, 0x2d, 0xb4, 0x0a, 0x91, 0x90, 0xee, 0xaf, 0x79, 0xb6, 0x25, + 0x42, 0x93, 0x76, 0x41, 0x04, 0xb4, 0xfb, 0x73, 0xdd, 0x89, 0xfb, 0x91, 0xfe, 0xc3, 0xeb, 0x8e, + 0xa9, 0xd9, 0xd7, 0x62, 0x90, 0xa0, 0xf9, 0x62, 0x0c, 0x32, 0x9b, 0x57, 0xd7, 0xcb, 0xea, 0xd2, + 0xda, 0x56, 0x69, 0xa5, 0x2c, 0x4b, 0x28, 0x07, 0x40, 0x05, 0x97, 0x56, 0xd6, 0x16, 0x36, 0xe5, + 0x58, 0xf0, 0x5c, 0x59, 0xdd, 0x3c, 0x7b, 0x5a, 0x8e, 0x07, 0x80, 0x2d, 0x26, 0x48, 0x84, 0x15, + 0x4e, 0x9d, 0x94, 0x93, 0x48, 0x86, 0x2c, 0x23, 0xa8, 0x3c, 0x57, 0x5e, 0x3a, 0x7b, 0x5a, 0x1e, + 0xee, 0x94, 0x9c, 0x3a, 0x29, 0x8f, 0xa0, 0x51, 0x48, 0x53, 0x49, 0x69, 0x6d, 0x6d, 0x45, 0x4e, + 0x05, 0x9c, 0x1b, 0x9b, 0x4a, 0x65, 0x75, 0x59, 0x4e, 0x07, 0x9c, 0xcb, 0xca, 0xda, 0xd6, 0xba, + 0x0c, 0x01, 0x43, 0xb5, 0xbc, 0xb1, 0xb1, 0xb0, 0x5c, 0x96, 0x33, 0x81, 0x46, 0xe9, 0xea, 0x66, + 0x79, 0x43, 0xce, 0x76, 0x98, 0x75, 0xea, 0xa4, 0x3c, 0x1a, 0x74, 0x51, 0x5e, 0xdd, 0xaa, 0xca, + 0x39, 0x34, 0x0e, 0xa3, 0xac, 0x0b, 0x61, 0xc4, 0x58, 0x97, 0xe8, 0xec, 0x69, 0x59, 0x6e, 0x1b, + 0xc2, 0x58, 0xc6, 0x3b, 0x04, 0x67, 0x4f, 0xcb, 0x68, 0x76, 0x11, 0x92, 0x34, 0xba, 0x10, 0x82, + 0xdc, 0xca, 0x42, 0xa9, 0xbc, 0xa2, 0xae, 0xad, 0x6f, 0x56, 0xd6, 0x56, 0x17, 0x56, 0x64, 0xa9, + 0x2d, 0x53, 0xca, 0x9f, 0xd9, 0xaa, 0x28, 0xe5, 0x25, 0x39, 0x16, 0x96, 0xad, 0x97, 0x17, 0x36, + 0xcb, 0x4b, 0x72, 0x7c, 0x56, 0x87, 0xc9, 0x7e, 0x79, 0xb2, 0xef, 0xca, 0x08, 0x4d, 0x71, 0x6c, + 0x9f, 0x29, 0xa6, 0x5c, 0x3d, 0x53, 0xfc, 0xa3, 0x18, 0x4c, 0xf4, 0xa9, 0x15, 0x7d, 0x3b, 0x79, + 0x16, 0x92, 0x2c, 0x44, 0x59, 0xf5, 0x7c, 0xa2, 0x6f, 0xd1, 0xa1, 0x01, 0xdb, 0x53, 0x41, 0x29, + 0x2e, 0xbc, 0x83, 0x88, 0xef, 0xb3, 0x83, 0x20, 0x14, 0x3d, 0x39, 0xfd, 0xe7, 0x7b, 0x72, 0x3a, + 0x2b, 0x7b, 0x67, 0x07, 0x29, 0x7b, 0x54, 0x76, 0xb0, 0xdc, 0x9e, 0xec, 0x93, 0xdb, 0x2f, 0xc2, + 0x78, 0x0f, 0xd1, 0xc0, 0x39, 0xf6, 0x45, 0x09, 0xf2, 0xfb, 0x39, 0x27, 0x22, 0xd3, 0xc5, 0x3a, + 0x32, 0xdd, 0xc5, 0x6e, 0x0f, 0x1e, 0xdd, 0x7f, 0x12, 0x7a, 0xe6, 0xfa, 0x55, 0x09, 0x0e, 0xf5, + 0xdf, 0x29, 0xf6, 0xb5, 0xe1, 0x19, 0x18, 0x6e, 0x60, 0x7f, 0xd7, 0x16, 0xbb, 0xa5, 0xc7, 0xfb, + 0xd4, 0x60, 0xd2, 0xdc, 0x3d, 0xd9, 0x1c, 0x15, 0x2e, 0xe2, 0xf1, 0xfd, 0xb6, 0x7b, 0xcc, 0x9a, + 0x1e, 0x4b, 0xbf, 0x14, 0x83, 0x87, 0xfa, 0x92, 0xf7, 0x35, 0xf4, 0x11, 0x00, 0xc3, 0x72, 0x9a, + 0x3e, 0xdb, 0x11, 0xb1, 0x04, 0x9b, 0xa6, 0x12, 0x9a, 0xbc, 0x48, 0xf2, 0x6c, 0xfa, 0x41, 0x7b, + 0x9c, 0xb6, 0x03, 0x13, 0x51, 0x85, 0xf3, 0x6d, 0x43, 0x13, 0xd4, 0xd0, 0xc2, 0x3e, 0x23, 0xed, + 0x09, 0xcc, 0xa7, 0x41, 0xd6, 0x4d, 0x03, 0x5b, 0xbe, 0xea, 0xf9, 0x2e, 0xd6, 0x1a, 0x86, 0x55, + 0xa7, 0x15, 0x24, 0x55, 0x4c, 0xee, 0x68, 0xa6, 0x87, 0x95, 0x31, 0xd6, 0xbc, 0x21, 0x5a, 0x09, + 0x82, 0x06, 0x90, 0x1b, 0x42, 0x0c, 0x77, 0x20, 0x58, 0x73, 0x80, 0x98, 0xfd, 0x76, 0x0a, 0x32, + 0xa1, 0x7d, 0x35, 0x3a, 0x0a, 0xd9, 0x6b, 0xda, 0x0d, 0x4d, 0x15, 0x67, 0x25, 0xe6, 0x89, 0x0c, + 0x91, 0xad, 0xf3, 0xf3, 0xd2, 0xd3, 0x30, 0x49, 0x55, 0xec, 0xa6, 0x8f, 0x5d, 0x55, 0x37, 0x35, + 0xcf, 0xa3, 0x4e, 0x4b, 0x51, 0x55, 0x44, 0xda, 0xd6, 0x48, 0xd3, 0xa2, 0x68, 0x41, 0x67, 0x60, + 0x82, 0x22, 0x1a, 0x4d, 0xd3, 0x37, 0x1c, 0x13, 0xab, 0xe4, 0xf4, 0xe6, 0xd1, 0x4a, 0x12, 0x58, + 0x36, 0x4e, 0x34, 0xaa, 0x5c, 0x81, 0x58, 0xe4, 0xa1, 0x25, 0x78, 0x84, 0xc2, 0xea, 0xd8, 0xc2, + 0xae, 0xe6, 0x63, 0x15, 0x7f, 0xbe, 0xa9, 0x99, 0x9e, 0xaa, 0x59, 0x35, 0x75, 0x57, 0xf3, 0x76, + 0xf3, 0x93, 0x84, 0xa0, 0x14, 0xcb, 0x4b, 0xca, 0x11, 0xa2, 0xb8, 0xcc, 0xf5, 0xca, 0x54, 0x6d, + 0xc1, 0xaa, 0x7d, 0x5a, 0xf3, 0x76, 0x51, 0x11, 0x0e, 0x51, 0x16, 0xcf, 0x77, 0x0d, 0xab, 0xae, + 0xea, 0xbb, 0x58, 0xbf, 0xae, 0x36, 0xfd, 0x9d, 0xf3, 0xf9, 0x87, 0xc3, 0xfd, 0x53, 0x0b, 0x37, + 0xa8, 0xce, 0x22, 0x51, 0xd9, 0xf2, 0x77, 0xce, 0xa3, 0x0d, 0xc8, 0x92, 0xc9, 0x68, 0x18, 0xb7, + 0xb0, 0xba, 0x63, 0xbb, 0xb4, 0x34, 0xe6, 0xfa, 0xa4, 0xa6, 0x90, 0x07, 0xe7, 0xd7, 0x38, 0xa0, + 0x6a, 0xd7, 0x70, 0x31, 0xb9, 0xb1, 0x5e, 0x2e, 0x2f, 0x29, 0x19, 0xc1, 0x72, 0xc9, 0x76, 0x49, + 0x40, 0xd5, 0xed, 0xc0, 0xc1, 0x19, 0x16, 0x50, 0x75, 0x5b, 0xb8, 0xf7, 0x0c, 0x4c, 0xe8, 0x3a, + 0x1b, 0xb3, 0xa1, 0xab, 0xfc, 0x8c, 0xe5, 0xe5, 0xe5, 0x0e, 0x67, 0xe9, 0xfa, 0x32, 0x53, 0xe0, + 0x31, 0xee, 0xa1, 0x0b, 0xf0, 0x50, 0xdb, 0x59, 0x61, 0xe0, 0x78, 0xcf, 0x28, 0xbb, 0xa1, 0x67, + 0x60, 0xc2, 0x69, 0xf5, 0x02, 0x51, 0x47, 0x8f, 0x4e, 0xab, 0x1b, 0x76, 0x0e, 0x26, 0x9d, 0x5d, + 0xa7, 0x17, 0xf7, 0x64, 0x18, 0x87, 0x9c, 0x5d, 0xa7, 0x1b, 0xf8, 0x18, 0x3d, 0x70, 0xbb, 0x58, + 0xd7, 0x7c, 0x5c, 0xcb, 0x1f, 0x0e, 0xab, 0x87, 0x1a, 0xd0, 0x09, 0x90, 0x75, 0x5d, 0xc5, 0x96, + 0xb6, 0x6d, 0x62, 0x55, 0x73, 0xb1, 0xa5, 0x79, 0xf9, 0xe9, 0xb0, 0x72, 0x4e, 0xd7, 0xcb, 0xb4, + 0x75, 0x81, 0x36, 0xa2, 0x27, 0x61, 0xdc, 0xde, 0xbe, 0xa6, 0xb3, 0x90, 0x54, 0x1d, 0x17, 0xef, + 0x18, 0x2f, 0xe4, 0x1f, 0xa5, 0xfe, 0x1d, 0x23, 0x0d, 0x34, 0x20, 0xd7, 0xa9, 0x18, 0x3d, 0x01, + 0xb2, 0xee, 0xed, 0x6a, 0xae, 0x43, 0x73, 0xb2, 0xe7, 0x68, 0x3a, 0xce, 0x3f, 0xc6, 0x54, 0x99, + 0x7c, 0x55, 0x88, 0xc9, 0x92, 0xf0, 0x6e, 0x1a, 0x3b, 0xbe, 0x60, 0x3c, 0xce, 0x96, 0x04, 0x95, + 0x71, 0xb6, 0x39, 0x90, 0x89, 0x2b, 0x3a, 0x3a, 0x9e, 0xa3, 0x6a, 0x39, 0x67, 0xd7, 0x09, 0xf7, + 0x7b, 0x0c, 0x46, 0x89, 0x66, 0xbb, 0xd3, 0x27, 0xd8, 0x86, 0xcc, 0xd9, 0x0d, 0xf5, 0xf8, 0xa1, + 0xed, 0x8d, 0x67, 0x8b, 0x90, 0x0d, 0xc7, 0x27, 0x4a, 0x03, 0x8b, 0x50, 0x59, 0x22, 0x9b, 0x95, + 0xc5, 0xb5, 0x25, 0xb2, 0xcd, 0x78, 0xbe, 0x2c, 0xc7, 0xc8, 0x76, 0x67, 0xa5, 0xb2, 0x59, 0x56, + 0x95, 0xad, 0xd5, 0xcd, 0x4a, 0xb5, 0x2c, 0xc7, 0xc3, 0xfb, 0xea, 0xef, 0xc7, 0x20, 0xd7, 0x79, + 0x44, 0x42, 0x9f, 0x84, 0xc3, 0xe2, 0x3e, 0xc3, 0xc3, 0xbe, 0x7a, 0xd3, 0x70, 0xe9, 0x92, 0x69, + 0x68, 0xac, 0x7c, 0x05, 0x93, 0x36, 0xc9, 0xb5, 0x36, 0xb0, 0x7f, 0xc5, 0x70, 0xc9, 0x82, 0x68, + 0x68, 0x3e, 0x5a, 0x81, 0x69, 0xcb, 0x56, 0x3d, 0x5f, 0xb3, 0x6a, 0x9a, 0x5b, 0x53, 0xdb, 0x37, + 0x49, 0xaa, 0xa6, 0xeb, 0xd8, 0xf3, 0x6c, 0x56, 0xaa, 0x02, 0x96, 0x8f, 0x59, 0xf6, 0x06, 0x57, + 0x6e, 0xe7, 0xf0, 0x05, 0xae, 0xda, 0x15, 0x60, 0xf1, 0xfd, 0x02, 0xec, 0x61, 0x48, 0x37, 0x34, + 0x47, 0xc5, 0x96, 0xef, 0xb6, 0xe8, 0xc6, 0x38, 0xa5, 0xa4, 0x1a, 0x9a, 0x53, 0x26, 0xcf, 0x1f, + 0xcd, 0xf9, 0xe4, 0x5f, 0xe3, 0x90, 0x0d, 0x6f, 0x8e, 0xc9, 0x59, 0x43, 0xa7, 0x75, 0x44, 0xa2, + 0x99, 0xe6, 0xd8, 0x7d, 0xb7, 0xd2, 0xf3, 0x8b, 0xa4, 0xc0, 0x14, 0x87, 0xd9, 0x96, 0x55, 0x61, + 0x48, 0x52, 0xdc, 0x49, 0x6e, 0xc1, 0x6c, 0x8b, 0x90, 0x52, 0xf8, 0x13, 0x5a, 0x86, 0xe1, 0x6b, + 0x1e, 0xe5, 0x1e, 0xa6, 0xdc, 0x8f, 0xde, 0x9f, 0xfb, 0xf2, 0x06, 0x25, 0x4f, 0x5f, 0xde, 0x50, + 0x57, 0xd7, 0x94, 0xea, 0xc2, 0x8a, 0xc2, 0xe1, 0xe8, 0x08, 0x24, 0x4c, 0xed, 0x56, 0xab, 0xb3, + 0x14, 0x51, 0xd1, 0xa0, 0x8e, 0x3f, 0x02, 0x89, 0x9b, 0x58, 0xbb, 0xde, 0x59, 0x00, 0xa8, 0xe8, + 0x43, 0x0c, 0xfd, 0x13, 0x90, 0xa4, 0xfe, 0x42, 0x00, 0xdc, 0x63, 0xf2, 0x10, 0x4a, 0x41, 0x62, + 0x71, 0x4d, 0x21, 0xe1, 0x2f, 0x43, 0x96, 0x49, 0xd5, 0xf5, 0x4a, 0x79, 0xb1, 0x2c, 0xc7, 0x66, + 0xcf, 0xc0, 0x30, 0x73, 0x02, 0x59, 0x1a, 0x81, 0x1b, 0xe4, 0x21, 0xfe, 0xc8, 0x39, 0x24, 0xd1, + 0xba, 0x55, 0x2d, 0x95, 0x15, 0x39, 0x16, 0x9e, 0x5e, 0x0f, 0xb2, 0xe1, 0x7d, 0xf1, 0x47, 0x13, + 0x53, 0xff, 0x20, 0x41, 0x26, 0xb4, 0xcf, 0x25, 0x1b, 0x14, 0xcd, 0x34, 0xed, 0x9b, 0xaa, 0x66, + 0x1a, 0x9a, 0xc7, 0x83, 0x02, 0xa8, 0x68, 0x81, 0x48, 0x06, 0x9d, 0xb4, 0x8f, 0xc4, 0xf8, 0x57, + 0x24, 0x90, 0xbb, 0xb7, 0x98, 0x5d, 0x06, 0x4a, 0x3f, 0x53, 0x03, 0x5f, 0x96, 0x20, 0xd7, 0xb9, + 0xaf, 0xec, 0x32, 0xef, 0xe8, 0xcf, 0xd4, 0xbc, 0x37, 0x63, 0x30, 0xda, 0xb1, 0x9b, 0x1c, 0xd4, + 0xba, 0xcf, 0xc3, 0xb8, 0x51, 0xc3, 0x0d, 0xc7, 0xf6, 0xb1, 0xa5, 0xb7, 0x54, 0x13, 0xdf, 0xc0, + 0x66, 0x7e, 0x96, 0x26, 0x8a, 0x13, 0xf7, 0xdf, 0xaf, 0xce, 0x57, 0xda, 0xb8, 0x15, 0x02, 0x2b, + 0x4e, 0x54, 0x96, 0xca, 0xd5, 0xf5, 0xb5, 0xcd, 0xf2, 0xea, 0xe2, 0x55, 0x75, 0x6b, 0xf5, 0xff, + 0xaf, 0xae, 0x5d, 0x59, 0x55, 0x64, 0xa3, 0x4b, 0xed, 0x43, 0x5c, 0xea, 0xeb, 0x20, 0x77, 0x1b, + 0x85, 0x0e, 0x43, 0x3f, 0xb3, 0xe4, 0x21, 0x34, 0x01, 0x63, 0xab, 0x6b, 0xea, 0x46, 0x65, 0xa9, + 0xac, 0x96, 0x2f, 0x5d, 0x2a, 0x2f, 0x6e, 0x6e, 0xb0, 0x1b, 0x88, 0x40, 0x7b, 0xb3, 0x73, 0x51, + 0xbf, 0x14, 0x87, 0x89, 0x3e, 0x96, 0xa0, 0x05, 0x7e, 0x76, 0x60, 0xc7, 0x99, 0x4f, 0x0c, 0x62, + 0xfd, 0x3c, 0x29, 0xf9, 0xeb, 0x9a, 0xeb, 0xf3, 0xa3, 0xc6, 0x13, 0x40, 0xbc, 0x64, 0xf9, 0xc6, + 0x8e, 0x81, 0x5d, 0x7e, 0x61, 0xc3, 0x0e, 0x14, 0x63, 0x6d, 0x39, 0xbb, 0xb3, 0xf9, 0x38, 0x20, + 0xc7, 0xf6, 0x0c, 0xdf, 0xb8, 0x81, 0x55, 0xc3, 0x12, 0xb7, 0x3b, 0xe4, 0x80, 0x91, 0x50, 0x64, + 0xd1, 0x52, 0xb1, 0xfc, 0x40, 0xdb, 0xc2, 0x75, 0xad, 0x4b, 0x9b, 0x24, 0xf0, 0xb8, 0x22, 0x8b, + 0x96, 0x40, 0xfb, 0x28, 0x64, 0x6b, 0x76, 0x93, 0xec, 0xba, 0x98, 0x1e, 0xa9, 0x17, 0x92, 0x92, + 0x61, 0xb2, 0x40, 0x85, 0xef, 0xa7, 0xdb, 0xd7, 0x4a, 0x59, 0x25, 0xc3, 0x64, 0x4c, 0xe5, 0x38, + 0x8c, 0x69, 0xf5, 0xba, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0xe4, 0x02, 0x31, 0x55, 0x9c, 0xba, + 0x0c, 0x29, 0xe1, 0x07, 0x52, 0x92, 0x89, 0x27, 0x54, 0x87, 0x1d, 0x7b, 0x63, 0x73, 0x69, 0x25, + 0x65, 0x89, 0xc6, 0xa3, 0x90, 0x35, 0x3c, 0xb5, 0x7d, 0x4b, 0x1e, 0x9b, 0x89, 0xcd, 0xa5, 0x94, + 0x8c, 0xe1, 0x05, 0x37, 0x8c, 0xb3, 0xaf, 0xc6, 0x20, 0xd7, 0x79, 0xcb, 0x8f, 0x96, 0x20, 0x65, + 0xda, 0xba, 0x46, 0x43, 0x8b, 0xbd, 0x62, 0x9a, 0x8b, 0x78, 0x31, 0x30, 0xbf, 0xc2, 0xf5, 0x95, + 0x00, 0x39, 0xf5, 0xcf, 0x12, 0xa4, 0x84, 0x18, 0x1d, 0x82, 0x84, 0xa3, 0xf9, 0xbb, 0x94, 0x2e, + 0x59, 0x8a, 0xc9, 0x92, 0x42, 0x9f, 0x89, 0xdc, 0x73, 0x34, 0x8b, 0x86, 0x00, 0x97, 0x93, 0x67, + 0x32, 0xaf, 0x26, 0xd6, 0x6a, 0xf4, 0xf8, 0x61, 0x37, 0x1a, 0xd8, 0xf2, 0x3d, 0x31, 0xaf, 0x5c, + 0xbe, 0xc8, 0xc5, 0xe8, 0x29, 0x18, 0xf7, 0x5d, 0xcd, 0x30, 0x3b, 0x74, 0x13, 0x54, 0x57, 0x16, + 0x0d, 0x81, 0x72, 0x11, 0x8e, 0x08, 0xde, 0x1a, 0xf6, 0x35, 0x7d, 0x17, 0xd7, 0xda, 0xa0, 0x61, + 0x7a, 0xcd, 0x70, 0x98, 0x2b, 0x2c, 0xf1, 0x76, 0x81, 0x9d, 0xfd, 0xa1, 0x04, 0xe3, 0xe2, 0xc0, + 0x54, 0x0b, 0x9c, 0x55, 0x05, 0xd0, 0x2c, 0xcb, 0xf6, 0xc3, 0xee, 0xea, 0x0d, 0xe5, 0x1e, 0xdc, + 0xfc, 0x42, 0x00, 0x52, 0x42, 0x04, 0x53, 0x0d, 0x80, 0x76, 0xcb, 0xbe, 0x6e, 0x9b, 0x86, 0x0c, + 0x7f, 0x85, 0x43, 0xdf, 0x03, 0xb2, 0x23, 0x36, 0x30, 0x11, 0x39, 0x59, 0xa1, 0x49, 0x48, 0x6e, + 0xe3, 0xba, 0x61, 0xf1, 0x8b, 0x59, 0xf6, 0x20, 0x2e, 0x42, 0x12, 0xc1, 0x45, 0x48, 0xe9, 0x73, + 0x30, 0xa1, 0xdb, 0x8d, 0x6e, 0x73, 0x4b, 0x72, 0xd7, 0x31, 0xdf, 0xfb, 0xb4, 0xf4, 0x3c, 0xb4, + 0xb7, 0x98, 0xef, 0x4b, 0xd2, 0x1f, 0xc7, 0xe2, 0xcb, 0xeb, 0xa5, 0x6f, 0xc4, 0xa6, 0x96, 0x19, + 0x74, 0x5d, 0x8c, 0x54, 0xc1, 0x3b, 0x26, 0xd6, 0x89, 0xf5, 0xf0, 0xe5, 0xe3, 0xf0, 0x89, 0xba, + 0xe1, 0xef, 0x36, 0xb7, 0xe7, 0x75, 0xbb, 0x71, 0xa2, 0x6e, 0xd7, 0xed, 0xf6, 0xab, 0x4f, 0xf2, + 0x44, 0x1f, 0xe8, 0x2f, 0xfe, 0xfa, 0x33, 0x1d, 0x48, 0xa7, 0x22, 0xdf, 0x95, 0x16, 0x57, 0x61, + 0x82, 0x2b, 0xab, 0xf4, 0xfd, 0x0b, 0x3b, 0x45, 0xa0, 0xfb, 0xde, 0x61, 0xe5, 0xbf, 0xf5, 0x16, + 0x2d, 0xd7, 0xca, 0x38, 0x87, 0x92, 0x36, 0x76, 0xd0, 0x28, 0x2a, 0xf0, 0x50, 0x07, 0x1f, 0x5b, + 0x9a, 0xd8, 0x8d, 0x60, 0xfc, 0x3e, 0x67, 0x9c, 0x08, 0x31, 0x6e, 0x70, 0x68, 0x71, 0x11, 0x46, + 0x0f, 0xc2, 0xf5, 0x8f, 0x9c, 0x2b, 0x8b, 0xc3, 0x24, 0xcb, 0x30, 0x46, 0x49, 0xf4, 0xa6, 0xe7, + 0xdb, 0x0d, 0x9a, 0xf7, 0xee, 0x4f, 0xf3, 0x4f, 0x6f, 0xb1, 0xb5, 0x92, 0x23, 0xb0, 0xc5, 0x00, + 0x55, 0x2c, 0x02, 0x7d, 0xe5, 0x54, 0xc3, 0xba, 0x19, 0xc1, 0xf0, 0x3a, 0x37, 0x24, 0xd0, 0x2f, + 0x7e, 0x16, 0x26, 0xc9, 0x6f, 0x9a, 0x96, 0xc2, 0x96, 0x44, 0x5f, 0x78, 0xe5, 0x7f, 0xf8, 0x22, + 0x5b, 0x8e, 0x13, 0x01, 0x41, 0xc8, 0xa6, 0xd0, 0x2c, 0xd6, 0xb1, 0xef, 0x63, 0xd7, 0x53, 0x35, + 0xb3, 0x9f, 0x79, 0xa1, 0x1b, 0x83, 0xfc, 0x57, 0xdf, 0xe9, 0x9c, 0xc5, 0x65, 0x86, 0x5c, 0x30, + 0xcd, 0xe2, 0x16, 0x1c, 0xee, 0x13, 0x15, 0x03, 0x70, 0xbe, 0xc4, 0x39, 0x27, 0x7b, 0x22, 0x83, + 0xd0, 0xae, 0x83, 0x90, 0x07, 0x73, 0x39, 0x00, 0xe7, 0xef, 0x73, 0x4e, 0xc4, 0xb1, 0x62, 0x4a, + 0x09, 0xe3, 0x65, 0x18, 0xbf, 0x81, 0xdd, 0x6d, 0xdb, 0xe3, 0xb7, 0x34, 0x03, 0xd0, 0xbd, 0xcc, + 0xe9, 0xc6, 0x38, 0x90, 0x5e, 0xdb, 0x10, 0xae, 0x0b, 0x90, 0xda, 0xd1, 0x74, 0x3c, 0x00, 0xc5, + 0xd7, 0x38, 0xc5, 0x08, 0xd1, 0x27, 0xd0, 0x05, 0xc8, 0xd6, 0x6d, 0x5e, 0x99, 0xa2, 0xe1, 0xaf, + 0x70, 0x78, 0x46, 0x60, 0x38, 0x85, 0x63, 0x3b, 0x4d, 0x93, 0x94, 0xad, 0x68, 0x8a, 0x3f, 0x10, + 0x14, 0x02, 0xc3, 0x29, 0x0e, 0xe0, 0xd6, 0x3f, 0x14, 0x14, 0x5e, 0xc8, 0x9f, 0xcf, 0x42, 0xc6, + 0xb6, 0xcc, 0x96, 0x6d, 0x0d, 0x62, 0xc4, 0x1f, 0x71, 0x06, 0xe0, 0x10, 0x42, 0x70, 0x11, 0xd2, + 0x83, 0x4e, 0xc4, 0x9f, 0xbc, 0x23, 0x96, 0x87, 0x98, 0x81, 0x65, 0x18, 0x13, 0x09, 0xca, 0xb0, + 0xad, 0x01, 0x28, 0xfe, 0x94, 0x53, 0xe4, 0x42, 0x30, 0x3e, 0x0c, 0x1f, 0x7b, 0x7e, 0x1d, 0x0f, + 0x42, 0xf2, 0xaa, 0x18, 0x06, 0x87, 0x70, 0x57, 0x6e, 0x63, 0x4b, 0xdf, 0x1d, 0x8c, 0xe1, 0xeb, + 0xc2, 0x95, 0x02, 0x43, 0x28, 0x16, 0x61, 0xb4, 0xa1, 0xb9, 0xde, 0xae, 0x66, 0x0e, 0x34, 0x1d, + 0x7f, 0xc6, 0x39, 0xb2, 0x01, 0x88, 0x7b, 0xa4, 0x69, 0x1d, 0x84, 0xe6, 0x1b, 0xc2, 0x23, 0x21, + 0x18, 0x5f, 0x7a, 0x9e, 0x4f, 0xaf, 0xb4, 0x0e, 0xc2, 0xf6, 0xe7, 0x62, 0xe9, 0x31, 0x6c, 0x35, + 0xcc, 0x78, 0x11, 0xd2, 0x9e, 0x71, 0x6b, 0x20, 0x9a, 0xbf, 0x10, 0x33, 0x4d, 0x01, 0x04, 0x7c, + 0x15, 0x8e, 0xf4, 0x2d, 0x13, 0x03, 0x90, 0xfd, 0x25, 0x27, 0x3b, 0xd4, 0xa7, 0x54, 0xf0, 0x94, + 0x70, 0x50, 0xca, 0xbf, 0x12, 0x29, 0x01, 0x77, 0x71, 0xad, 0x93, 0xb3, 0x82, 0xa7, 0xed, 0x1c, + 0xcc, 0x6b, 0x7f, 0x2d, 0xbc, 0xc6, 0xb0, 0x1d, 0x5e, 0xdb, 0x84, 0x43, 0x9c, 0xf1, 0x60, 0xf3, + 0xfa, 0x4d, 0x91, 0x58, 0x19, 0x7a, 0xab, 0x73, 0x76, 0x3f, 0x07, 0x53, 0x81, 0x3b, 0xc5, 0xa6, + 0xd4, 0x53, 0x1b, 0x9a, 0x33, 0x00, 0xf3, 0xb7, 0x38, 0xb3, 0xc8, 0xf8, 0xc1, 0xae, 0xd6, 0xab, + 0x6a, 0x0e, 0x21, 0x7f, 0x0e, 0xf2, 0x82, 0xbc, 0x69, 0xb9, 0x58, 0xb7, 0xeb, 0x96, 0x71, 0x0b, + 0xd7, 0x06, 0xa0, 0xfe, 0x9b, 0xae, 0xa9, 0xda, 0x0a, 0xc1, 0x09, 0x73, 0x05, 0xe4, 0x60, 0xaf, + 0xa2, 0x1a, 0x0d, 0xc7, 0x76, 0xfd, 0x08, 0xc6, 0x6f, 0x8b, 0x99, 0x0a, 0x70, 0x15, 0x0a, 0x2b, + 0x96, 0x21, 0x47, 0x1f, 0x07, 0x0d, 0xc9, 0xbf, 0xe5, 0x44, 0xa3, 0x6d, 0x14, 0x4f, 0x1c, 0xba, + 0xdd, 0x70, 0x34, 0x77, 0x90, 0xfc, 0xf7, 0x1d, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, 0xbf, 0xe5, + 0x60, 0x52, 0xed, 0x07, 0x60, 0x78, 0x4d, 0x24, 0x0e, 0x81, 0xe1, 0x14, 0x62, 0xc3, 0x30, 0x00, + 0xc5, 0xdf, 0x09, 0x0a, 0x81, 0x21, 0x14, 0x9f, 0x69, 0x17, 0x5a, 0x17, 0xd7, 0x0d, 0xcf, 0x77, + 0xd9, 0x56, 0xf8, 0xfe, 0x54, 0xdf, 0x7d, 0xa7, 0x73, 0x13, 0xa6, 0x84, 0xa0, 0xc5, 0xcb, 0x30, + 0xd6, 0xb5, 0xc5, 0x40, 0x51, 0xdf, 0xaf, 0xe4, 0x7f, 0xf1, 0x3d, 0x9e, 0x8c, 0x3a, 0x77, 0x18, + 0xc5, 0x15, 0x32, 0xef, 0x9d, 0xfb, 0x80, 0x68, 0xb2, 0x17, 0xdf, 0x0b, 0xa6, 0xbe, 0x63, 0x1b, + 0x50, 0xbc, 0x04, 0xa3, 0x1d, 0x7b, 0x80, 0x68, 0xaa, 0x5f, 0xe2, 0x54, 0xd9, 0xf0, 0x16, 0xa0, + 0x78, 0x06, 0x12, 0xa4, 0x9e, 0x47, 0xc3, 0x7f, 0x99, 0xc3, 0xa9, 0x7a, 0xf1, 0x53, 0x90, 0x12, + 0x75, 0x3c, 0x1a, 0xfa, 0x2b, 0x1c, 0x1a, 0x40, 0x08, 0x5c, 0xd4, 0xf0, 0x68, 0xf8, 0x17, 0x05, + 0x5c, 0x40, 0x08, 0x7c, 0x70, 0x17, 0x7e, 0xef, 0xd7, 0x12, 0x3c, 0x0f, 0x0b, 0xdf, 0x5d, 0x84, + 0x11, 0x5e, 0xbc, 0xa3, 0xd1, 0x5f, 0xe2, 0x9d, 0x0b, 0x44, 0xf1, 0x1c, 0x24, 0x07, 0x74, 0xf8, + 0xaf, 0x73, 0x28, 0xd3, 0x2f, 0x2e, 0x42, 0x26, 0x54, 0xb0, 0xa3, 0xe1, 0xbf, 0xc1, 0xe1, 0x61, + 0x14, 0x31, 0x9d, 0x17, 0xec, 0x68, 0x82, 0xdf, 0x14, 0xa6, 0x73, 0x04, 0x71, 0x9b, 0xa8, 0xd5, + 0xd1, 0xe8, 0xdf, 0x12, 0x5e, 0x17, 0x90, 0xe2, 0xb3, 0x90, 0x0e, 0xf2, 0x6f, 0x34, 0xfe, 0xb7, + 0x39, 0xbe, 0x8d, 0x21, 0x1e, 0x08, 0xe5, 0xff, 0x68, 0x8a, 0xdf, 0x11, 0x1e, 0x08, 0xa1, 0xc8, + 0x32, 0xea, 0xae, 0xe9, 0xd1, 0x4c, 0xbf, 0x2b, 0x96, 0x51, 0x57, 0x49, 0x27, 0xb3, 0x49, 0xd3, + 0x60, 0x34, 0xc5, 0xef, 0x89, 0xd9, 0xa4, 0xfa, 0xc4, 0x8c, 0xee, 0x22, 0x19, 0xcd, 0xf1, 0x65, + 0x61, 0x46, 0x57, 0x8d, 0x2c, 0xae, 0x03, 0xea, 0x2d, 0x90, 0xd1, 0x7c, 0x5f, 0xe1, 0x7c, 0xe3, + 0x3d, 0xf5, 0xb1, 0x78, 0x05, 0x0e, 0xf5, 0x2f, 0x8e, 0xd1, 0xac, 0x5f, 0x7d, 0xaf, 0xeb, 0x38, + 0x13, 0xae, 0x8d, 0xc5, 0xcd, 0x76, 0x96, 0x0d, 0x17, 0xc6, 0x68, 0xda, 0x97, 0xde, 0xeb, 0x4c, + 0xb4, 0xe1, 0xba, 0x58, 0x5c, 0x00, 0x68, 0xd7, 0xa4, 0x68, 0xae, 0x97, 0x39, 0x57, 0x08, 0x44, + 0x96, 0x06, 0x2f, 0x49, 0xd1, 0xf8, 0xaf, 0x89, 0xa5, 0xc1, 0x11, 0x64, 0x69, 0x88, 0x6a, 0x14, + 0x8d, 0x7e, 0x45, 0x2c, 0x0d, 0x01, 0x29, 0x5e, 0x84, 0x94, 0xd5, 0x34, 0x4d, 0x12, 0x5b, 0xe8, + 0xfe, 0x9f, 0x64, 0xe5, 0x7f, 0xfc, 0x01, 0x07, 0x0b, 0x40, 0xf1, 0x0c, 0x24, 0x71, 0x63, 0x1b, + 0xd7, 0xa2, 0x90, 0xff, 0xfe, 0x81, 0xc8, 0x27, 0x44, 0xbb, 0xf8, 0x2c, 0x00, 0x3b, 0x4c, 0xd3, + 0x17, 0x45, 0x11, 0xd8, 0xff, 0xf8, 0x80, 0x7f, 0x2c, 0xd1, 0x86, 0xb4, 0x09, 0xd8, 0xa7, 0x17, + 0xf7, 0x27, 0x78, 0xa7, 0x93, 0x80, 0x1e, 0xc0, 0x2f, 0xc0, 0xc8, 0x35, 0xcf, 0xb6, 0x7c, 0xad, + 0x1e, 0x85, 0xfe, 0x4f, 0x8e, 0x16, 0xfa, 0xc4, 0x61, 0x0d, 0xdb, 0xc5, 0xbe, 0x56, 0xf7, 0xa2, + 0xb0, 0xff, 0xc5, 0xb1, 0x01, 0x80, 0x80, 0x75, 0xcd, 0xf3, 0x07, 0x19, 0xf7, 0x4f, 0x04, 0x58, + 0x00, 0x88, 0xd1, 0xe4, 0xf7, 0x75, 0xdc, 0x8a, 0xc2, 0xbe, 0x2b, 0x8c, 0xe6, 0xfa, 0xc5, 0x4f, + 0x41, 0x9a, 0xfc, 0x64, 0x5f, 0x40, 0x45, 0x80, 0xff, 0x9b, 0x83, 0xdb, 0x08, 0xd2, 0xb3, 0xe7, + 0xd7, 0x7c, 0x23, 0xda, 0xd9, 0xff, 0xc3, 0x67, 0x5a, 0xe8, 0x17, 0x17, 0x20, 0xe3, 0xf9, 0xb5, + 0x5a, 0x93, 0xef, 0x68, 0x22, 0xe0, 0xff, 0xfb, 0x41, 0x70, 0xc8, 0x0d, 0x30, 0xa5, 0x72, 0xff, + 0xfb, 0x3a, 0x58, 0xb6, 0x97, 0x6d, 0x76, 0x53, 0xf7, 0xfc, 0x6c, 0xf4, 0x95, 0x1b, 0xbc, 0x36, + 0x06, 0x47, 0x75, 0xbb, 0xb1, 0x6d, 0x7b, 0x27, 0x42, 0xa9, 0xea, 0x84, 0x70, 0x2f, 0xbf, 0x8d, + 0x0b, 0xdc, 0x3d, 0x75, 0xb0, 0x6b, 0xbc, 0xd9, 0x1f, 0x8f, 0x42, 0x6a, 0x51, 0xf3, 0x7c, 0xed, + 0xa6, 0xd6, 0x42, 0x8f, 0x41, 0xaa, 0x62, 0xf9, 0xa7, 0x4e, 0xae, 0xfb, 0x2e, 0x7d, 0x13, 0x15, + 0x2f, 0xa5, 0xef, 0xdd, 0x99, 0x4e, 0x1a, 0x44, 0xa6, 0x04, 0x4d, 0xe8, 0x18, 0x24, 0xe9, 0x6f, + 0x7a, 0x99, 0x19, 0x2f, 0x8d, 0xbe, 0x7e, 0x67, 0x7a, 0xa8, 0xad, 0xc7, 0xda, 0xd0, 0x55, 0xc8, + 0x54, 0x5b, 0x5b, 0x86, 0xe5, 0x9f, 0x3d, 0x4d, 0xe8, 0x88, 0x83, 0x12, 0xa5, 0x73, 0xf7, 0xee, + 0x4c, 0x9f, 0xda, 0xd7, 0x40, 0x52, 0x36, 0xdb, 0x03, 0x13, 0x68, 0xfa, 0xa5, 0x68, 0x98, 0x0b, + 0x5d, 0x81, 0x94, 0x78, 0x64, 0x2f, 0x05, 0x4a, 0x17, 0xb9, 0x09, 0x0f, 0xc4, 0x1d, 0x90, 0xa1, + 0x9f, 0x83, 0x6c, 0xb5, 0x75, 0xc9, 0xb4, 0x35, 0xee, 0x83, 0xe4, 0x8c, 0x34, 0x17, 0x2b, 0x9d, + 0xbf, 0x77, 0x67, 0xfa, 0xf4, 0xc0, 0xc4, 0x1c, 0x4e, 0x99, 0x3b, 0xd8, 0xd0, 0xf3, 0x90, 0x0e, + 0x9e, 0xe9, 0x6b, 0x87, 0x58, 0xe9, 0x93, 0xdc, 0xee, 0x07, 0xa3, 0x6f, 0xd3, 0x85, 0x2c, 0x67, + 0xee, 0x1e, 0x99, 0x91, 0xe6, 0xa4, 0x07, 0xb1, 0x9c, 0xfb, 0xa4, 0x83, 0x2d, 0x64, 0xf9, 0xd9, + 0xd3, 0xf4, 0x3d, 0x87, 0xf4, 0xa0, 0x96, 0x73, 0xfa, 0x36, 0x1d, 0xba, 0x0c, 0x23, 0xd5, 0x56, + 0xa9, 0xe5, 0x63, 0x8f, 0x7e, 0x80, 0x94, 0x2d, 0x3d, 0x7d, 0xef, 0xce, 0xf4, 0xc7, 0x07, 0x64, + 0xa5, 0x38, 0x45, 0x10, 0xa0, 0x19, 0xc8, 0xac, 0xda, 0x6e, 0x43, 0x33, 0x19, 0x1f, 0xb0, 0xf7, + 0x36, 0x21, 0x11, 0xda, 0x22, 0x23, 0x61, 0xb3, 0xed, 0xd1, 0xff, 0x5d, 0xf9, 0x29, 0x62, 0xb2, + 0xcd, 0x84, 0x0c, 0x48, 0x56, 0x5b, 0x55, 0xcd, 0xc9, 0x67, 0xe9, 0x4b, 0x85, 0x47, 0xe6, 0x03, + 0x84, 0x58, 0x5b, 0xf3, 0xb4, 0x9d, 0x7e, 0x7d, 0x51, 0x3a, 0x7d, 0xef, 0xce, 0xf4, 0xd3, 0x03, + 0xf7, 0x58, 0xd5, 0x1c, 0xda, 0x1d, 0xeb, 0x01, 0x7d, 0x47, 0x22, 0x0b, 0x8b, 0xdd, 0xca, 0x92, + 0x1e, 0x47, 0x69, 0x8f, 0xc7, 0xfa, 0xf6, 0x18, 0x68, 0xb1, 0x7e, 0xad, 0x2f, 0xbc, 0x71, 0x80, + 0x91, 0xb2, 0x93, 0x0f, 0xe9, 0xfa, 0x57, 0xdf, 0x78, 0xe0, 0x45, 0x1b, 0x58, 0x80, 0x5e, 0x94, + 0x60, 0xb4, 0xda, 0x5a, 0xe5, 0x35, 0x98, 0x58, 0x9e, 0xe3, 0xff, 0xe1, 0xd0, 0xcf, 0xf2, 0x90, + 0x1e, 0xb3, 0xfd, 0xec, 0x17, 0xde, 0x98, 0x3e, 0x39, 0xb0, 0x11, 0x34, 0x05, 0x51, 0x1b, 0x3a, + 0xfb, 0x44, 0x5f, 0xa4, 0x56, 0x94, 0x49, 0x3d, 0xaf, 0xe1, 0x1a, 0xb1, 0x62, 0xec, 0x3e, 0x56, + 0x84, 0xf4, 0x98, 0x15, 0x45, 0x12, 0xf5, 0x0f, 0x6e, 0x49, 0x88, 0x0f, 0xad, 0xc1, 0x30, 0xf3, + 0x30, 0xfd, 0xf8, 0x2d, 0x7d, 0xc0, 0x30, 0x6c, 0x4f, 0x8e, 0xc2, 0x69, 0xa6, 0xce, 0x03, 0xb4, + 0x63, 0x0c, 0xc9, 0x10, 0xbf, 0x8e, 0x5b, 0xfc, 0x0b, 0x47, 0xf2, 0x13, 0x4d, 0xb6, 0x3f, 0x41, + 0x96, 0xe6, 0x12, 0xfc, 0xbb, 0xe2, 0x62, 0xec, 0xbc, 0x34, 0xf5, 0x0c, 0xc8, 0xdd, 0xb1, 0x72, + 0x20, 0xbc, 0x02, 0xa8, 0x77, 0xc6, 0xc2, 0x0c, 0x49, 0xc6, 0xf0, 0x78, 0x98, 0x21, 0x73, 0x52, + 0x6e, 0xfb, 0xfc, 0x8a, 0x61, 0x7a, 0xb6, 0xd5, 0xc3, 0xd9, 0xed, 0xff, 0x9f, 0x8e, 0x73, 0xb6, + 0x00, 0xc3, 0x4c, 0x48, 0xc6, 0x52, 0xa1, 0xe5, 0x83, 0x56, 0x39, 0x85, 0x3d, 0x94, 0x56, 0x5e, + 0xbf, 0x5b, 0x18, 0xfa, 0xc1, 0xdd, 0xc2, 0xd0, 0xbf, 0xdc, 0x2d, 0x0c, 0xbd, 0x79, 0xb7, 0x20, + 0xbd, 0x7d, 0xb7, 0x20, 0xbd, 0x7b, 0xb7, 0x20, 0xbd, 0x7f, 0xb7, 0x20, 0xdd, 0xde, 0x2b, 0x48, + 0x5f, 0xdf, 0x2b, 0x48, 0xdf, 0xdc, 0x2b, 0x48, 0xdf, 0xdd, 0x2b, 0x48, 0xdf, 0xdb, 0x2b, 0x48, + 0xaf, 0xef, 0x15, 0x86, 0x7e, 0xb0, 0x57, 0x90, 0xde, 0xdc, 0x2b, 0x48, 0x6f, 0xef, 0x15, 0x86, + 0xde, 0xdd, 0x2b, 0x48, 0xef, 0xef, 0x15, 0x86, 0x6e, 0xff, 0xa8, 0x30, 0xf4, 0x7f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x3c, 0xbe, 0x6e, 0xcf, 0x45, 0x38, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -714,7 +720,7 @@ func (this *Wilson) Equal(that interface{}) bool { } type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt32Ptr() *int32 GetInt32() int32 GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type @@ -733,11 +739,11 @@ type CastawayFace interface { GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType } -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) Proto() proto.Message { return this } -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) TestProto() proto.Message { return NewCastawayFromFace(this) } @@ -827,15 +833,15 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { } type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt64() *int64 } -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) Proto() proto.Message { return this } -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) TestProto() proto.Message { return NewWilsonFromFace(this) } @@ -884,7 +890,7 @@ func (this *Castaway) GoString() string { for k := range this.MyMap { keysForMyMap = append(keysForMyMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) + sortkeys.Strings(keysForMyMap) mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" for _, k := range keysForMyMap { mapStringForMyMap += fmt.Sprintf("%#v: %#v,", k, this.MyMap[k]) @@ -897,7 +903,7 @@ func (this *Castaway) GoString() string { for k := range this.MyCustomMap { keysForMyCustomMap = append(keysForMyCustomMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) + sortkeys.Strings(keysForMyCustomMap) mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" for _, k := range keysForMyCustomMap { mapStringForMyCustomMap += fmt.Sprintf("%#v: %#v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) @@ -910,7 +916,7 @@ func (this *Castaway) GoString() string { for k := range this.MyNullableMap { keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) + sortkeys.Int32s(keysForMyNullableMap) mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" for _, k := range keysForMyNullableMap { mapStringForMyNullableMap += fmt.Sprintf("%#v: %#v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -923,7 +929,7 @@ func (this *Castaway) GoString() string { for k := range this.MyEmbeddedMap { keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) + sortkeys.Int32s(keysForMyEmbeddedMap) mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" for _, k := range keysForMyEmbeddedMap { mapStringForMyEmbeddedMap += fmt.Sprintf("%#v: %#v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -1265,7 +1271,7 @@ func (this *Castaway) String() string { for k := range this.MyMap { keysForMyMap = append(keysForMyMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) + sortkeys.Strings(keysForMyMap) mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" for _, k := range keysForMyMap { mapStringForMyMap += fmt.Sprintf("%v: %v,", k, this.MyMap[k]) @@ -1275,7 +1281,7 @@ func (this *Castaway) String() string { for k := range this.MyCustomMap { keysForMyCustomMap = append(keysForMyCustomMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) + sortkeys.Strings(keysForMyCustomMap) mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" for _, k := range keysForMyCustomMap { mapStringForMyCustomMap += fmt.Sprintf("%v: %v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) @@ -1285,7 +1291,7 @@ func (this *Castaway) String() string { for k := range this.MyNullableMap { keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) + sortkeys.Int32s(keysForMyNullableMap) mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" for _, k := range keysForMyNullableMap { mapStringForMyNullableMap += fmt.Sprintf("%v: %v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -1295,7 +1301,7 @@ func (this *Castaway) String() string { for k := range this.MyEmbeddedMap { keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) + sortkeys.Int32s(keysForMyEmbeddedMap) mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" for _, k := range keysForMyEmbeddedMap { mapStringForMyEmbeddedMap += fmt.Sprintf("%v: %v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) @@ -1457,11 +1463,8 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) m.MyFloat32Ptr = &v2 case 6: @@ -1472,11 +1475,8 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) case 7: if wireType != 1 { @@ -1486,15 +1486,8 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) m.MyFloat64Ptr = &v2 case 8: @@ -1505,15 +1498,8 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) case 9: if wireType != 2 { @@ -1665,51 +1651,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthCasttype - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.MyMap == nil { m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -1719,31 +1668,69 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthCasttype + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + } else { + iNdEx = entryPreIndex + skippy, err := skipCasttype(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCasttype + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.MyMap[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.MyMap[mapkey] = mapvalue } + m.MyMap[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -1771,51 +1758,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthCasttype - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.MyCustomMap == nil { m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey github_com_gogo_protobuf_test_casttype.MyStringType + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -1825,31 +1775,69 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthCasttype + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipCasttype(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCasttype + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test_casttype.MyUint64Type - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = mapvalue } + m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) iNdEx = postIndex case 14: if wireType != 2 { @@ -1877,41 +1865,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.MyNullableMap == nil { m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue *Wilson + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -1921,46 +1882,74 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipCasttype(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCasttype + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue - } else { - var mapvalue *Wilson - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } + m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -1988,41 +1977,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.MyEmbeddedMap == nil { m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := &Wilson{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCasttype @@ -2032,46 +1994,74 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttype + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCasttype + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCasttype + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipCasttype(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCasttype + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttype - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue - } else { - var mapvalue Wilson - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue } + m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue iNdEx = postIndex case 16: if wireType != 2 { diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttypepb_test.go index 5e3b07cb5..6ddb5e555 100644 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttypepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/casttype/combos/unmarshaler/casttypepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/casttype.proto -// DO NOT EDIT! /* Package casttype is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package casttype import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,12 +58,12 @@ func TestCastawayProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 10000) for i := 0; i < 10000; i++ { @@ -73,7 +71,7 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -83,11 +81,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } @@ -97,7 +95,7 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -106,14 +104,14 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -134,12 +132,12 @@ func TestWilsonProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 10000) for i := 0; i < 10000; i++ { @@ -147,7 +145,7 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -157,11 +155,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } @@ -171,7 +169,7 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -180,15 +178,15 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { func TestCastawayJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -201,15 +199,15 @@ func TestCastawayJSON(t *testing.T) { } func TestWilsonJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -222,11 +220,11 @@ func TestWilsonJSON(t *testing.T) { } func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -239,11 +237,11 @@ func TestCastawayProtoText(t *testing.T) { func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -256,11 +254,11 @@ func TestCastawayProtoCompactText(t *testing.T) { func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -273,11 +271,11 @@ func TestWilsonProtoText(t *testing.T) { func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -292,14 +290,14 @@ func TestCasttypeDescription(t *testing.T) { CasttypeDescription() } func TestCastawayVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -307,14 +305,14 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -322,7 +320,7 @@ func TestWilsonVerboseEqual(t *testing.T) { } } func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -330,7 +328,7 @@ func TestCastawayFace(t *testing.T) { } } func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -338,37 +336,37 @@ func TestWilsonFace(t *testing.T) { } } func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCastawaySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -379,14 +377,14 @@ func TestCastawaySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 1000) for i := 0; i < 1000; i++ { @@ -401,10 +399,10 @@ func BenchmarkCastawaySize(b *testing.B) { func TestWilsonSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -415,14 +413,14 @@ func TestWilsonSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 1000) for i := 0; i < 1000; i++ { @@ -436,7 +434,7 @@ func BenchmarkWilsonSize(b *testing.B) { } func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -445,7 +443,7 @@ func TestCastawayStringer(t *testing.T) { } } func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.pb.go deleted file mode 100644 index d7fd7a454..000000000 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.pb.go +++ /dev/null @@ -1,2569 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/casttype.proto -// DO NOT EDIT! - -/* - Package casttype is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeboth/casttype.proto - - It has these top-level messages: - Castaway - Wilson -*/ -package casttype - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -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 - -type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Castaway) Reset() { *m = Castaway{} } -func (*Castaway) ProtoMessage() {} -func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } - -type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Wilson) Reset() { *m = Wilson{} } -func (*Wilson) ProtoMessage() {} -func (*Wilson) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{1} } - -func init() { - proto.RegisterType((*Castaway)(nil), "casttype.Castaway") - proto.RegisterType((*Wilson)(nil), "casttype.Wilson") -} -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CasttypeDescription() -} -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CasttypeDescription() -} -func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 4128 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7b, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0x3f, 0x17, 0x1f, 0x24, 0x70, 0x00, 0x82, 0xcb, 0x4b, 0x5a, 0x82, 0xe8, 0x18, 0xa4, 0xe8, - 0x2f, 0xda, 0x4e, 0x28, 0x8f, 0xbe, 0x2c, 0x43, 0x89, 0x3d, 0x00, 0x09, 0x31, 0xd0, 0x9f, 0x20, - 0x90, 0x25, 0x19, 0x49, 0xfe, 0x77, 0x66, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x22, 0xbb, - 0x0b, 0xc9, 0xf0, 0x93, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0x7e, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x6d, - 0x66, 0x5a, 0xa7, 0x49, 0x3f, 0x92, 0xb6, 0x4e, 0x33, 0x7d, 0xca, 0x4b, 0x5a, 0x3f, 0x75, 0x92, - 0xb7, 0x3e, 0x74, 0x64, 0x8b, 0xf1, 0x4c, 0x9d, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0xc8, 0x2f, - 0x9d, 0xfb, 0xb5, 0x58, 0x7c, 0x90, 0x0b, 0x2a, 0xe3, 0xe4, 0x89, 0xd8, 0x73, 0xcf, 0xef, 0xb7, - 0xe7, 0x9e, 0x7b, 0xee, 0x39, 0x67, 0xef, 0x2e, 0xe1, 0x87, 0xe7, 0x60, 0xa1, 0x61, 0xdb, 0x0d, - 0x13, 0x9f, 0x6a, 0x39, 0xb6, 0x67, 0xef, 0xb4, 0x77, 0x4f, 0xd5, 0xb1, 0xab, 0x3b, 0x46, 0xcb, - 0xb3, 0x9d, 0x65, 0x2a, 0x43, 0x53, 0x4c, 0x63, 0x59, 0x68, 0x2c, 0x56, 0x60, 0xfa, 0x92, 0x61, - 0xe2, 0x55, 0x5f, 0x71, 0x13, 0x7b, 0xe8, 0x02, 0xc4, 0x76, 0x0d, 0x13, 0x67, 0xa5, 0x85, 0xe8, - 0x52, 0xea, 0xf4, 0x23, 0xcb, 0x7d, 0xa0, 0xe5, 0x5e, 0x44, 0x8d, 0x88, 0x15, 0x8a, 0x58, 0x7c, - 0x27, 0x06, 0x33, 0x43, 0x46, 0x11, 0x82, 0x98, 0xa5, 0x35, 0x09, 0xa3, 0xb4, 0x94, 0x54, 0xe8, - 0x6f, 0x94, 0x85, 0x89, 0x96, 0xa6, 0xdf, 0xd0, 0x1a, 0x38, 0x1b, 0xa1, 0x62, 0x71, 0x89, 0x72, - 0x00, 0x75, 0xdc, 0xc2, 0x56, 0x1d, 0x5b, 0x7a, 0x27, 0x1b, 0x5d, 0x88, 0x2e, 0x25, 0x95, 0x80, - 0x04, 0x3d, 0x05, 0xd3, 0xad, 0xf6, 0x8e, 0x69, 0xe8, 0x6a, 0x40, 0x0d, 0x16, 0xa2, 0x4b, 0x71, - 0x45, 0x66, 0x03, 0xab, 0x5d, 0xe5, 0xc7, 0x61, 0xea, 0x16, 0xd6, 0x6e, 0x04, 0x55, 0x53, 0x54, - 0x35, 0x43, 0xc4, 0x01, 0xc5, 0x15, 0x48, 0x37, 0xb1, 0xeb, 0x6a, 0x0d, 0xac, 0x7a, 0x9d, 0x16, - 0xce, 0xc6, 0xe8, 0xec, 0x17, 0x06, 0x66, 0xdf, 0x3f, 0xf3, 0x14, 0x47, 0x6d, 0x75, 0x5a, 0x18, - 0x15, 0x20, 0x89, 0xad, 0x76, 0x93, 0x31, 0xc4, 0x0f, 0xf0, 0x5f, 0xc9, 0x6a, 0x37, 0xfb, 0x59, - 0x12, 0x04, 0xc6, 0x29, 0x26, 0x5c, 0xec, 0xdc, 0x34, 0x74, 0x9c, 0x1d, 0xa7, 0x04, 0x8f, 0x0f, - 0x10, 0x6c, 0xb2, 0xf1, 0x7e, 0x0e, 0x81, 0x43, 0x2b, 0x90, 0xc4, 0x2f, 0x7a, 0xd8, 0x72, 0x0d, - 0xdb, 0xca, 0x4e, 0x50, 0x92, 0x47, 0x87, 0xac, 0x22, 0x36, 0xeb, 0xfd, 0x14, 0x5d, 0x1c, 0x3a, - 0x0f, 0x13, 0x76, 0xcb, 0x33, 0x6c, 0xcb, 0xcd, 0x26, 0x16, 0xa4, 0xa5, 0xd4, 0xe9, 0x8f, 0x0d, - 0x0d, 0x84, 0x2a, 0xd3, 0x51, 0x84, 0x32, 0x2a, 0x83, 0xec, 0xda, 0x6d, 0x47, 0xc7, 0xaa, 0x6e, - 0xd7, 0xb1, 0x6a, 0x58, 0xbb, 0x76, 0x36, 0x49, 0x09, 0xe6, 0x07, 0x27, 0x42, 0x15, 0x57, 0xec, - 0x3a, 0x2e, 0x5b, 0xbb, 0xb6, 0x92, 0x71, 0x7b, 0xae, 0xd1, 0x31, 0x18, 0x77, 0x3b, 0x96, 0xa7, - 0xbd, 0x98, 0x4d, 0xd3, 0x08, 0xe1, 0x57, 0x8b, 0xff, 0x1b, 0x87, 0xa9, 0x51, 0x42, 0xec, 0x22, - 0xc4, 0x77, 0xc9, 0x2c, 0xb3, 0x91, 0xa3, 0xf8, 0x80, 0x61, 0x7a, 0x9d, 0x38, 0x7e, 0x9f, 0x4e, - 0x2c, 0x40, 0xca, 0xc2, 0xae, 0x87, 0xeb, 0x2c, 0x22, 0xa2, 0x23, 0xc6, 0x14, 0x30, 0xd0, 0x60, - 0x48, 0xc5, 0xee, 0x2b, 0xa4, 0xae, 0xc2, 0x94, 0x6f, 0x92, 0xea, 0x68, 0x56, 0x43, 0xc4, 0xe6, - 0xa9, 0x30, 0x4b, 0x96, 0x4b, 0x02, 0xa7, 0x10, 0x98, 0x92, 0xc1, 0x3d, 0xd7, 0x68, 0x15, 0xc0, - 0xb6, 0xb0, 0xbd, 0xab, 0xd6, 0xb1, 0x6e, 0x66, 0x13, 0x07, 0x78, 0xa9, 0x4a, 0x54, 0x06, 0xbc, - 0x64, 0x33, 0xa9, 0x6e, 0xa2, 0x67, 0xbb, 0xa1, 0x36, 0x71, 0x40, 0xa4, 0x54, 0xd8, 0x26, 0x1b, - 0x88, 0xb6, 0x6d, 0xc8, 0x38, 0x98, 0xc4, 0x3d, 0xae, 0xf3, 0x99, 0x25, 0xa9, 0x11, 0xcb, 0xa1, - 0x33, 0x53, 0x38, 0x8c, 0x4d, 0x6c, 0xd2, 0x09, 0x5e, 0xa2, 0x87, 0xc1, 0x17, 0xa8, 0x34, 0xac, - 0x80, 0x66, 0xa1, 0xb4, 0x10, 0x6e, 0x68, 0x4d, 0x3c, 0x77, 0x01, 0x32, 0xbd, 0xee, 0x41, 0xb3, - 0x10, 0x77, 0x3d, 0xcd, 0xf1, 0x68, 0x14, 0xc6, 0x15, 0x76, 0x81, 0x64, 0x88, 0x62, 0xab, 0x4e, - 0xb3, 0x5c, 0x5c, 0x21, 0x3f, 0xe7, 0x9e, 0x81, 0xc9, 0x9e, 0xdb, 0x8f, 0x0a, 0x5c, 0xfc, 0xd2, - 0x38, 0xcc, 0x0e, 0x8b, 0xb9, 0xa1, 0xe1, 0x7f, 0x0c, 0xc6, 0xad, 0x76, 0x73, 0x07, 0x3b, 0xd9, - 0x28, 0x65, 0xe0, 0x57, 0xa8, 0x00, 0x71, 0x53, 0xdb, 0xc1, 0x66, 0x36, 0xb6, 0x20, 0x2d, 0x65, - 0x4e, 0x3f, 0x35, 0x52, 0x54, 0x2f, 0xaf, 0x13, 0x88, 0xc2, 0x90, 0xe8, 0x39, 0x88, 0xf1, 0x14, - 0x47, 0x18, 0x9e, 0x1c, 0x8d, 0x81, 0xc4, 0xa2, 0x42, 0x71, 0xe8, 0x41, 0x48, 0x92, 0xbf, 0xcc, - 0xb7, 0xe3, 0xd4, 0xe6, 0x04, 0x11, 0x10, 0xbf, 0xa2, 0x39, 0x48, 0xd0, 0x30, 0xab, 0x63, 0x51, - 0x1a, 0xfc, 0x6b, 0xb2, 0x30, 0x75, 0xbc, 0xab, 0xb5, 0x4d, 0x4f, 0xbd, 0xa9, 0x99, 0x6d, 0x4c, - 0x03, 0x26, 0xa9, 0xa4, 0xb9, 0xf0, 0xb3, 0x44, 0x86, 0xe6, 0x21, 0xc5, 0xa2, 0xd2, 0xb0, 0xea, - 0xf8, 0x45, 0x9a, 0x7d, 0xe2, 0x0a, 0x0b, 0xd4, 0x32, 0x91, 0x90, 0xdb, 0x5f, 0x77, 0x6d, 0x4b, - 0x2c, 0x2d, 0xbd, 0x05, 0x11, 0xd0, 0xdb, 0x3f, 0xd3, 0x9f, 0xf8, 0x1e, 0x1a, 0x3e, 0xbd, 0xfe, - 0x58, 0x5c, 0xfc, 0x76, 0x04, 0x62, 0x74, 0xbf, 0x4d, 0x41, 0x6a, 0xeb, 0x5a, 0xad, 0xa4, 0xae, - 0x56, 0xb7, 0x8b, 0xeb, 0x25, 0x59, 0x42, 0x19, 0x00, 0x2a, 0xb8, 0xb4, 0x5e, 0x2d, 0x6c, 0xc9, - 0x11, 0xff, 0xba, 0xbc, 0xb1, 0x75, 0xfe, 0xac, 0x1c, 0xf5, 0x01, 0xdb, 0x4c, 0x10, 0x0b, 0x2a, - 0x9c, 0x39, 0x2d, 0xc7, 0x91, 0x0c, 0x69, 0x46, 0x50, 0xbe, 0x5a, 0x5a, 0x3d, 0x7f, 0x56, 0x1e, - 0xef, 0x95, 0x9c, 0x39, 0x2d, 0x4f, 0xa0, 0x49, 0x48, 0x52, 0x49, 0xb1, 0x5a, 0x5d, 0x97, 0x13, - 0x3e, 0xe7, 0xe6, 0x96, 0x52, 0xde, 0x58, 0x93, 0x93, 0x3e, 0xe7, 0x9a, 0x52, 0xdd, 0xae, 0xc9, - 0xe0, 0x33, 0x54, 0x4a, 0x9b, 0x9b, 0x85, 0xb5, 0x92, 0x9c, 0xf2, 0x35, 0x8a, 0xd7, 0xb6, 0x4a, - 0x9b, 0x72, 0xba, 0xc7, 0xac, 0x33, 0xa7, 0xe5, 0x49, 0xff, 0x16, 0xa5, 0x8d, 0xed, 0x8a, 0x9c, - 0x41, 0xd3, 0x30, 0xc9, 0x6e, 0x21, 0x8c, 0x98, 0xea, 0x13, 0x9d, 0x3f, 0x2b, 0xcb, 0x5d, 0x43, - 0x18, 0xcb, 0x74, 0x8f, 0xe0, 0xfc, 0x59, 0x19, 0x2d, 0xae, 0x40, 0x9c, 0x46, 0x17, 0x42, 0x90, - 0x59, 0x2f, 0x14, 0x4b, 0xeb, 0x6a, 0xb5, 0xb6, 0x55, 0xae, 0x6e, 0x14, 0xd6, 0x65, 0xa9, 0x2b, - 0x53, 0x4a, 0x9f, 0xd9, 0x2e, 0x2b, 0xa5, 0x55, 0x39, 0x12, 0x94, 0xd5, 0x4a, 0x85, 0xad, 0xd2, - 0xaa, 0x1c, 0x5d, 0xd4, 0x61, 0x76, 0x58, 0x9e, 0x19, 0xba, 0x33, 0x02, 0x4b, 0x1c, 0x39, 0x60, - 0x89, 0x29, 0xd7, 0xc0, 0x12, 0x7f, 0x55, 0x82, 0x99, 0x21, 0xb9, 0x76, 0xe8, 0x4d, 0x9e, 0x87, - 0x38, 0x0b, 0x51, 0x56, 0x7d, 0x9e, 0x18, 0x9a, 0xb4, 0x69, 0xc0, 0x0e, 0x54, 0x20, 0x8a, 0x0b, - 0x56, 0xe0, 0xe8, 0x01, 0x15, 0x98, 0x50, 0x0c, 0x18, 0xf9, 0xb2, 0x04, 0xd9, 0x83, 0xb8, 0x43, - 0x12, 0x45, 0xa4, 0x27, 0x51, 0x5c, 0xec, 0x37, 0xe0, 0xe4, 0xc1, 0x73, 0x18, 0xb0, 0xe2, 0x75, - 0x09, 0x8e, 0x0d, 0x6f, 0x54, 0x86, 0xda, 0xf0, 0x1c, 0x8c, 0x37, 0xb1, 0xb7, 0x67, 0x8b, 0x62, - 0xfd, 0xd8, 0x90, 0x12, 0x40, 0x86, 0xfb, 0x7d, 0xc5, 0x51, 0xc1, 0x1a, 0x12, 0x3d, 0xa8, 0xdb, - 0x60, 0xd6, 0x0c, 0x58, 0xfa, 0xc5, 0x08, 0x3c, 0x30, 0x94, 0x7c, 0xa8, 0xa1, 0x0f, 0x01, 0x18, - 0x56, 0xab, 0xed, 0xb1, 0x82, 0xcc, 0xf2, 0x53, 0x92, 0x4a, 0xe8, 0xde, 0x27, 0xb9, 0xa7, 0xed, - 0xf9, 0xe3, 0x51, 0x3a, 0x0e, 0x4c, 0x44, 0x15, 0x2e, 0x74, 0x0d, 0x8d, 0x51, 0x43, 0x73, 0x07, - 0xcc, 0x74, 0xa0, 0xd6, 0x3d, 0x0d, 0xb2, 0x6e, 0x1a, 0xd8, 0xf2, 0x54, 0xd7, 0x73, 0xb0, 0xd6, - 0x34, 0xac, 0x06, 0x4d, 0xc0, 0x89, 0x7c, 0x7c, 0x57, 0x33, 0x5d, 0xac, 0x4c, 0xb1, 0xe1, 0x4d, - 0x31, 0x4a, 0x10, 0xb4, 0xca, 0x38, 0x01, 0xc4, 0x78, 0x0f, 0x82, 0x0d, 0xfb, 0x88, 0xc5, 0x6f, - 0x4c, 0x40, 0x2a, 0xd0, 0xd6, 0xa1, 0x93, 0x90, 0xbe, 0xae, 0xdd, 0xd4, 0x54, 0xd1, 0xaa, 0x33, - 0x4f, 0xa4, 0x88, 0xac, 0xc6, 0xdb, 0xf5, 0xa7, 0x61, 0x96, 0xaa, 0xd8, 0x6d, 0x0f, 0x3b, 0xaa, - 0x6e, 0x6a, 0xae, 0x4b, 0x9d, 0x96, 0xa0, 0xaa, 0x88, 0x8c, 0x55, 0xc9, 0xd0, 0x8a, 0x18, 0x41, - 0xe7, 0x60, 0x86, 0x22, 0x9a, 0x6d, 0xd3, 0x33, 0x5a, 0x26, 0x56, 0xc9, 0xc3, 0x83, 0x4b, 0x13, - 0xb1, 0x6f, 0xd9, 0x34, 0xd1, 0xa8, 0x70, 0x05, 0x62, 0x91, 0x8b, 0x56, 0xe1, 0x21, 0x0a, 0x6b, - 0x60, 0x0b, 0x3b, 0x9a, 0x87, 0x55, 0xfc, 0xb9, 0xb6, 0x66, 0xba, 0xaa, 0x66, 0xd5, 0xd5, 0x3d, - 0xcd, 0xdd, 0xcb, 0xce, 0x12, 0x82, 0x62, 0x24, 0x2b, 0x29, 0x27, 0x88, 0xe2, 0x1a, 0xd7, 0x2b, - 0x51, 0xb5, 0x82, 0x55, 0xff, 0xb4, 0xe6, 0xee, 0xa1, 0x3c, 0x1c, 0xa3, 0x2c, 0xae, 0xe7, 0x18, - 0x56, 0x43, 0xd5, 0xf7, 0xb0, 0x7e, 0x43, 0x6d, 0x7b, 0xbb, 0x17, 0xb2, 0x0f, 0x06, 0xef, 0x4f, - 0x2d, 0xdc, 0xa4, 0x3a, 0x2b, 0x44, 0x65, 0xdb, 0xdb, 0xbd, 0x80, 0x36, 0x21, 0x4d, 0x16, 0xa3, - 0x69, 0xbc, 0x84, 0xd5, 0x5d, 0xdb, 0xa1, 0x95, 0x25, 0x33, 0x64, 0x67, 0x07, 0x3c, 0xb8, 0x5c, - 0xe5, 0x80, 0x8a, 0x5d, 0xc7, 0xf9, 0xf8, 0x66, 0xad, 0x54, 0x5a, 0x55, 0x52, 0x82, 0xe5, 0x92, - 0xed, 0x90, 0x80, 0x6a, 0xd8, 0xbe, 0x83, 0x53, 0x2c, 0xa0, 0x1a, 0xb6, 0x70, 0xef, 0x39, 0x98, - 0xd1, 0x75, 0x36, 0x67, 0x43, 0x57, 0x79, 0x8b, 0xef, 0x66, 0xe5, 0x1e, 0x67, 0xe9, 0xfa, 0x1a, - 0x53, 0xe0, 0x31, 0xee, 0xa2, 0x67, 0xe1, 0x81, 0xae, 0xb3, 0x82, 0xc0, 0xe9, 0x81, 0x59, 0xf6, - 0x43, 0xcf, 0xc1, 0x4c, 0xab, 0x33, 0x08, 0x44, 0x3d, 0x77, 0x6c, 0x75, 0xfa, 0x61, 0x8f, 0xd2, - 0xc7, 0x36, 0x07, 0xeb, 0x9a, 0x87, 0xeb, 0xd9, 0xe3, 0x41, 0xed, 0xc0, 0x00, 0x3a, 0x05, 0xb2, - 0xae, 0xab, 0xd8, 0xd2, 0x76, 0x4c, 0xac, 0x6a, 0x0e, 0xb6, 0x34, 0x37, 0x3b, 0x1f, 0x54, 0xce, - 0xe8, 0x7a, 0x89, 0x8e, 0x16, 0xe8, 0x20, 0x7a, 0x12, 0xa6, 0xed, 0x9d, 0xeb, 0x3a, 0x8b, 0x2c, - 0xb5, 0xe5, 0xe0, 0x5d, 0xe3, 0xc5, 0xec, 0x23, 0xd4, 0x4d, 0x53, 0x64, 0x80, 0xc6, 0x55, 0x8d, - 0x8a, 0xd1, 0x13, 0x20, 0xeb, 0xee, 0x9e, 0xe6, 0xb4, 0x68, 0x69, 0x77, 0x5b, 0x9a, 0x8e, 0xb3, - 0x8f, 0x32, 0x55, 0x26, 0xdf, 0x10, 0x62, 0x12, 0xd9, 0xee, 0x2d, 0x63, 0xd7, 0x13, 0x8c, 0x8f, - 0xb3, 0xc8, 0xa6, 0x32, 0xce, 0x76, 0x15, 0x66, 0xdb, 0x96, 0x61, 0x79, 0xd8, 0x69, 0x39, 0x98, - 0x34, 0xf1, 0x6c, 0x27, 0x66, 0xff, 0x75, 0xe2, 0x80, 0x36, 0x7c, 0x3b, 0xa8, 0xcd, 0x02, 0x40, - 0x99, 0x69, 0x0f, 0x0a, 0x17, 0xf3, 0x90, 0x0e, 0xc6, 0x05, 0x4a, 0x02, 0x8b, 0x0c, 0x59, 0x22, - 0x35, 0x76, 0xa5, 0xba, 0x4a, 0xaa, 0xe3, 0x0b, 0x25, 0x39, 0x42, 0xaa, 0xf4, 0x7a, 0x79, 0xab, - 0xa4, 0x2a, 0xdb, 0x1b, 0x5b, 0xe5, 0x4a, 0x49, 0x8e, 0x3e, 0x99, 0x4c, 0xbc, 0x3b, 0x21, 0xdf, - 0xbe, 0x7d, 0xfb, 0x76, 0x64, 0xf1, 0x7b, 0x11, 0xc8, 0xf4, 0x76, 0xc6, 0xe8, 0x93, 0x70, 0x5c, - 0x3c, 0xc6, 0xba, 0xd8, 0x53, 0x6f, 0x19, 0x0e, 0x0d, 0xd5, 0xa6, 0xc6, 0x7a, 0x4b, 0xdf, 0xcb, - 0xb3, 0x5c, 0x6b, 0x13, 0x7b, 0x57, 0x0c, 0x87, 0x04, 0x62, 0x53, 0xf3, 0xd0, 0x3a, 0xcc, 0x5b, - 0xb6, 0xea, 0x7a, 0x9a, 0x55, 0xd7, 0x9c, 0xba, 0xda, 0x3d, 0x40, 0x50, 0x35, 0x5d, 0xc7, 0xae, - 0x6b, 0xb3, 0x12, 0xe1, 0xb3, 0x7c, 0xcc, 0xb2, 0x37, 0xb9, 0x72, 0x37, 0x77, 0x16, 0xb8, 0x6a, - 0x5f, 0x44, 0x44, 0x0f, 0x8a, 0x88, 0x07, 0x21, 0xd9, 0xd4, 0x5a, 0x2a, 0xb6, 0x3c, 0xa7, 0x43, - 0xfb, 0xb9, 0x84, 0x92, 0x68, 0x6a, 0xad, 0x12, 0xb9, 0xfe, 0xe8, 0xd6, 0x20, 0xe8, 0xc7, 0x7f, - 0x89, 0x42, 0x3a, 0xd8, 0xd3, 0x91, 0x16, 0x59, 0xa7, 0xf9, 0x5b, 0xa2, 0x3b, 0xfc, 0xe1, 0x43, - 0x3b, 0xc0, 0xe5, 0x15, 0x92, 0xd8, 0xf3, 0xe3, 0xac, 0xd3, 0x52, 0x18, 0x92, 0x14, 0x55, 0xb2, - 0xa7, 0x31, 0xeb, 0xdf, 0x13, 0x0a, 0xbf, 0x42, 0x6b, 0x30, 0x7e, 0xdd, 0xa5, 0xdc, 0xe3, 0x94, - 0xfb, 0x91, 0xc3, 0xb9, 0x2f, 0x6f, 0x52, 0xf2, 0xe4, 0xe5, 0x4d, 0x75, 0xa3, 0xaa, 0x54, 0x0a, - 0xeb, 0x0a, 0x87, 0xa3, 0x13, 0x10, 0x33, 0xb5, 0x97, 0x3a, 0xbd, 0x25, 0x80, 0x8a, 0x46, 0x75, - 0xfc, 0x09, 0x88, 0xdd, 0xc2, 0xda, 0x8d, 0xde, 0xc4, 0x4b, 0x45, 0x1f, 0x61, 0xe8, 0x9f, 0x82, - 0x38, 0xf5, 0x17, 0x02, 0xe0, 0x1e, 0x93, 0xc7, 0x50, 0x02, 0x62, 0x2b, 0x55, 0x85, 0x84, 0xbf, - 0x0c, 0x69, 0x26, 0x55, 0x6b, 0xe5, 0xd2, 0x4a, 0x49, 0x8e, 0x2c, 0x9e, 0x83, 0x71, 0xe6, 0x04, - 0xb2, 0x35, 0x7c, 0x37, 0xc8, 0x63, 0xfc, 0x92, 0x73, 0x48, 0x62, 0x74, 0xbb, 0x52, 0x2c, 0x29, - 0x72, 0x24, 0xb8, 0xbc, 0x2e, 0xa4, 0x83, 0xed, 0xdc, 0xcf, 0x26, 0xa6, 0xfe, 0x5e, 0x82, 0x54, - 0xa0, 0x3d, 0x23, 0x8d, 0x81, 0x66, 0x9a, 0xf6, 0x2d, 0x55, 0x33, 0x0d, 0xcd, 0xe5, 0x41, 0x01, - 0x54, 0x54, 0x20, 0x92, 0x51, 0x17, 0xed, 0x67, 0x62, 0xfc, 0x6b, 0x12, 0xc8, 0xfd, 0xad, 0x5d, - 0x9f, 0x81, 0xd2, 0xcf, 0xd5, 0xc0, 0x57, 0x25, 0xc8, 0xf4, 0xf6, 0x73, 0x7d, 0xe6, 0x9d, 0xfc, - 0xb9, 0x9a, 0xf7, 0x76, 0x04, 0x26, 0x7b, 0xba, 0xb8, 0x51, 0xad, 0xfb, 0x1c, 0x4c, 0x1b, 0x75, - 0xdc, 0x6c, 0xd9, 0x1e, 0xb6, 0xf4, 0x8e, 0x6a, 0xe2, 0x9b, 0xd8, 0xcc, 0x2e, 0xd2, 0x44, 0x71, - 0xea, 0xf0, 0x3e, 0x71, 0xb9, 0xdc, 0xc5, 0xad, 0x13, 0x58, 0x7e, 0xa6, 0xbc, 0x5a, 0xaa, 0xd4, - 0xaa, 0x5b, 0xa5, 0x8d, 0x95, 0x6b, 0xea, 0xf6, 0xc6, 0xff, 0xdb, 0xa8, 0x5e, 0xd9, 0x50, 0x64, - 0xa3, 0x4f, 0xed, 0x23, 0xdc, 0xea, 0x35, 0x90, 0xfb, 0x8d, 0x42, 0xc7, 0x61, 0x98, 0x59, 0xf2, - 0x18, 0x9a, 0x81, 0xa9, 0x8d, 0xaa, 0xba, 0x59, 0x5e, 0x2d, 0xa9, 0xa5, 0x4b, 0x97, 0x4a, 0x2b, - 0x5b, 0x9b, 0xec, 0xc1, 0xd9, 0xd7, 0xde, 0xea, 0xdd, 0xd4, 0xaf, 0x44, 0x61, 0x66, 0x88, 0x25, - 0xa8, 0xc0, 0x7b, 0x76, 0xf6, 0x18, 0xf1, 0x89, 0x51, 0xac, 0x5f, 0x26, 0x5d, 0x41, 0x4d, 0x73, - 0x3c, 0xde, 0xe2, 0x3f, 0x01, 0xc4, 0x4b, 0x96, 0x67, 0xec, 0x1a, 0xd8, 0xe1, 0xe7, 0x0c, 0xac, - 0x91, 0x9f, 0xea, 0xca, 0xd9, 0x51, 0xc3, 0xc7, 0x01, 0xb5, 0x6c, 0xd7, 0xf0, 0x8c, 0x9b, 0x58, - 0x35, 0x2c, 0x71, 0x28, 0x41, 0x1a, 0xfb, 0x98, 0x22, 0x8b, 0x91, 0xb2, 0xe5, 0xf9, 0xda, 0x16, - 0x6e, 0x68, 0x7d, 0xda, 0x24, 0x81, 0x47, 0x15, 0x59, 0x8c, 0xf8, 0xda, 0x27, 0x21, 0x5d, 0xb7, - 0xdb, 0xa4, 0x4d, 0x62, 0x7a, 0xa4, 0x5e, 0x48, 0x4a, 0x8a, 0xc9, 0x7c, 0x15, 0xde, 0xc7, 0x76, - 0x4f, 0x43, 0xd2, 0x4a, 0x8a, 0xc9, 0x98, 0xca, 0xe3, 0x30, 0xa5, 0x35, 0x1a, 0x0e, 0x21, 0x17, - 0x44, 0xac, 0x33, 0xcf, 0xf8, 0x62, 0xaa, 0x38, 0x77, 0x19, 0x12, 0xc2, 0x0f, 0xa4, 0x24, 0x13, - 0x4f, 0xa8, 0x2d, 0x76, 0x26, 0x15, 0x59, 0x4a, 0x2a, 0x09, 0x4b, 0x0c, 0x9e, 0x84, 0xb4, 0xe1, - 0xaa, 0xdd, 0xc3, 0xd1, 0xc8, 0x42, 0x64, 0x29, 0xa1, 0xa4, 0x0c, 0xd7, 0x3f, 0x0d, 0x5b, 0x7c, - 0x3d, 0x02, 0x99, 0xde, 0xc3, 0x5d, 0xb4, 0x0a, 0x09, 0xd3, 0xd6, 0x35, 0x1a, 0x5a, 0xec, 0xcd, - 0xc2, 0x52, 0xc8, 0x79, 0xf0, 0xf2, 0x3a, 0xd7, 0x57, 0x7c, 0xe4, 0xdc, 0x3f, 0x49, 0x90, 0x10, - 0x62, 0x74, 0x0c, 0x62, 0x2d, 0xcd, 0xdb, 0xa3, 0x74, 0xf1, 0x62, 0x44, 0x96, 0x14, 0x7a, 0x4d, - 0xe4, 0x6e, 0x4b, 0xb3, 0x68, 0x08, 0x70, 0x39, 0xb9, 0x26, 0xeb, 0x6a, 0x62, 0xad, 0x4e, 0xdb, - 0x7e, 0xbb, 0xd9, 0xc4, 0x96, 0xe7, 0x8a, 0x75, 0xe5, 0xf2, 0x15, 0x2e, 0x46, 0x4f, 0xc1, 0xb4, - 0xe7, 0x68, 0x86, 0xd9, 0xa3, 0x1b, 0xa3, 0xba, 0xb2, 0x18, 0xf0, 0x95, 0xf3, 0x70, 0x42, 0xf0, - 0xd6, 0xb1, 0xa7, 0xe9, 0x7b, 0xb8, 0xde, 0x05, 0x8d, 0xd3, 0x93, 0xc3, 0xe3, 0x5c, 0x61, 0x95, - 0x8f, 0x0b, 0xec, 0xe2, 0x0f, 0x24, 0x98, 0x16, 0x0f, 0x2a, 0x75, 0xdf, 0x59, 0x15, 0x00, 0xcd, - 0xb2, 0x6c, 0x2f, 0xe8, 0xae, 0xc1, 0x50, 0x1e, 0xc0, 0x2d, 0x17, 0x7c, 0x90, 0x12, 0x20, 0x98, - 0x6b, 0x02, 0x74, 0x47, 0x0e, 0x74, 0xdb, 0x3c, 0xa4, 0xf8, 0xc9, 0x3d, 0x7d, 0xfd, 0xc3, 0x1e, - 0x6d, 0x81, 0x89, 0xc8, 0x13, 0x0d, 0x9a, 0x85, 0xf8, 0x0e, 0x6e, 0x18, 0x16, 0x3f, 0x4f, 0x64, - 0x17, 0xe2, 0x94, 0x32, 0xe6, 0x9f, 0x52, 0x16, 0xaf, 0xc2, 0x8c, 0x6e, 0x37, 0xfb, 0xcd, 0x2d, - 0xca, 0x7d, 0x8f, 0xd7, 0xee, 0xa7, 0xa5, 0x17, 0xa0, 0xdb, 0x62, 0x7e, 0x35, 0x12, 0x5d, 0xab, - 0x15, 0xbf, 0x1e, 0x99, 0x5b, 0x63, 0xb8, 0x9a, 0x98, 0xa6, 0x82, 0x77, 0x4d, 0xac, 0x13, 0xd3, - 0xe1, 0xc7, 0x8f, 0xc1, 0x27, 0x1a, 0x86, 0xb7, 0xd7, 0xde, 0x59, 0xd6, 0xed, 0xe6, 0xa9, 0x86, - 0xdd, 0xb0, 0xbb, 0xaf, 0xbb, 0xc8, 0x15, 0xbd, 0xa0, 0xbf, 0xf8, 0x2b, 0xaf, 0xa4, 0x2f, 0x9d, - 0x0b, 0x7d, 0x3f, 0x96, 0xdf, 0x80, 0x19, 0xae, 0xac, 0xd2, 0x33, 0x77, 0xf6, 0x68, 0x80, 0x0e, - 0x3d, 0x77, 0xc9, 0x7e, 0xeb, 0x1d, 0x5a, 0xab, 0x95, 0x69, 0x0e, 0x25, 0x63, 0xec, 0x01, 0x22, - 0xaf, 0xc0, 0x03, 0x3d, 0x7c, 0x6c, 0x5f, 0x62, 0x27, 0x84, 0xf1, 0x7b, 0x9c, 0x71, 0x26, 0xc0, - 0xb8, 0xc9, 0xa1, 0xf9, 0x15, 0x98, 0x3c, 0x0a, 0xd7, 0x3f, 0x70, 0xae, 0x34, 0x0e, 0x92, 0xac, - 0xc1, 0x14, 0x25, 0xd1, 0xdb, 0xae, 0x67, 0x37, 0x69, 0xd2, 0x3b, 0x9c, 0xe6, 0x1f, 0xdf, 0x61, - 0x1b, 0x25, 0x43, 0x60, 0x2b, 0x3e, 0x2a, 0x9f, 0x07, 0xfa, 0x9a, 0xa1, 0x8e, 0x75, 0x33, 0x84, - 0xe1, 0x4d, 0x6e, 0x88, 0xaf, 0x9f, 0xff, 0x2c, 0xcc, 0x92, 0xdf, 0x34, 0x27, 0x05, 0x2d, 0x09, - 0x3f, 0x65, 0xca, 0xfe, 0xe0, 0x65, 0xb6, 0x17, 0x67, 0x7c, 0x82, 0x80, 0x4d, 0x81, 0x55, 0x6c, - 0x60, 0xcf, 0xc3, 0x8e, 0xab, 0x6a, 0xe6, 0x30, 0xf3, 0x02, 0x8f, 0xe9, 0xd9, 0x2f, 0xbf, 0xd7, - 0xbb, 0x8a, 0x6b, 0x0c, 0x59, 0x30, 0xcd, 0xfc, 0x36, 0x1c, 0x1f, 0x12, 0x15, 0x23, 0x70, 0xbe, - 0xc2, 0x39, 0x67, 0x07, 0x22, 0x83, 0xd0, 0xd6, 0x40, 0xc8, 0xfd, 0xb5, 0x1c, 0x81, 0xf3, 0x0f, - 0x38, 0x27, 0xe2, 0x58, 0xb1, 0xa4, 0x84, 0xf1, 0x32, 0x4c, 0xdf, 0xc4, 0xce, 0x8e, 0xed, 0xf2, - 0xa3, 0x91, 0x11, 0xe8, 0x5e, 0xe5, 0x74, 0x53, 0x1c, 0x48, 0xcf, 0x4a, 0x08, 0xd7, 0xb3, 0x90, - 0xd8, 0xd5, 0x74, 0x3c, 0x02, 0xc5, 0x57, 0x38, 0xc5, 0x04, 0xd1, 0x27, 0xd0, 0x02, 0xa4, 0x1b, - 0x36, 0x2f, 0x4b, 0xe1, 0xf0, 0xd7, 0x38, 0x3c, 0x25, 0x30, 0x9c, 0xa2, 0x65, 0xb7, 0xda, 0x26, - 0xa9, 0x59, 0xe1, 0x14, 0x7f, 0x28, 0x28, 0x04, 0x86, 0x53, 0x1c, 0xc1, 0xad, 0x7f, 0x24, 0x28, - 0xdc, 0x80, 0x3f, 0x9f, 0x87, 0x94, 0x6d, 0x99, 0x1d, 0xdb, 0x1a, 0xc5, 0x88, 0x3f, 0xe6, 0x0c, - 0xc0, 0x21, 0x84, 0xe0, 0x22, 0x24, 0x47, 0x5d, 0x88, 0x3f, 0x79, 0x4f, 0x6c, 0x0f, 0xb1, 0x02, - 0x6b, 0x30, 0x25, 0x12, 0x94, 0x61, 0x5b, 0x23, 0x50, 0xfc, 0x29, 0xa7, 0xc8, 0x04, 0x60, 0x7c, - 0x1a, 0x1e, 0x76, 0xbd, 0x06, 0x1e, 0x85, 0xe4, 0x75, 0x31, 0x0d, 0x0e, 0xe1, 0xae, 0xdc, 0xc1, - 0x96, 0xbe, 0x37, 0x1a, 0xc3, 0xd7, 0x84, 0x2b, 0x05, 0x86, 0x50, 0xac, 0xc0, 0x64, 0x53, 0x73, - 0xdc, 0x3d, 0xcd, 0x1c, 0x69, 0x39, 0xfe, 0x8c, 0x73, 0xa4, 0x7d, 0x10, 0xf7, 0x48, 0xdb, 0x3a, - 0x0a, 0xcd, 0xd7, 0x85, 0x47, 0x02, 0x30, 0xbe, 0xf5, 0x5c, 0x8f, 0x1e, 0x40, 0x1d, 0x85, 0xed, - 0x1b, 0x62, 0xeb, 0x31, 0x6c, 0x25, 0xc8, 0x78, 0x11, 0x92, 0xae, 0xf1, 0xd2, 0x48, 0x34, 0x7f, - 0x2e, 0x56, 0x9a, 0x02, 0x08, 0xf8, 0x1a, 0x9c, 0x18, 0x5a, 0x26, 0x46, 0x20, 0xfb, 0x0b, 0x4e, - 0x76, 0x6c, 0x48, 0xa9, 0xe0, 0x29, 0xe1, 0xa8, 0x94, 0x7f, 0x29, 0x52, 0x02, 0xee, 0xe3, 0xaa, - 0x91, 0x07, 0x05, 0x57, 0xdb, 0x3d, 0x9a, 0xd7, 0xfe, 0x4a, 0x78, 0x8d, 0x61, 0x7b, 0xbc, 0xb6, - 0x05, 0xc7, 0x38, 0xe3, 0xd1, 0xd6, 0xf5, 0x9b, 0x22, 0xb1, 0x32, 0xf4, 0x76, 0xef, 0xea, 0xfe, - 0x7f, 0x98, 0xf3, 0xdd, 0x29, 0x3a, 0x52, 0x57, 0x6d, 0x6a, 0xad, 0x11, 0x98, 0xbf, 0xc5, 0x99, - 0x45, 0xc6, 0xf7, 0x5b, 0x5a, 0xb7, 0xa2, 0xb5, 0x08, 0xf9, 0x55, 0xc8, 0x0a, 0xf2, 0xb6, 0xe5, - 0x60, 0xdd, 0x6e, 0x58, 0xc6, 0x4b, 0xb8, 0x3e, 0x02, 0xf5, 0x5f, 0xf7, 0x2d, 0xd5, 0x76, 0x00, - 0x4e, 0x98, 0xcb, 0x20, 0xfb, 0xbd, 0x8a, 0x6a, 0x34, 0x5b, 0xb6, 0xe3, 0x85, 0x30, 0xfe, 0x8d, - 0x58, 0x29, 0x1f, 0x57, 0xa6, 0xb0, 0x7c, 0x09, 0x32, 0xf4, 0x72, 0xd4, 0x90, 0xfc, 0x5b, 0x4e, - 0x34, 0xd9, 0x45, 0xf1, 0xc4, 0xa1, 0xdb, 0xcd, 0x96, 0xe6, 0x8c, 0x92, 0xff, 0xde, 0x10, 0x89, - 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x3a, 0x2d, 0x4c, 0xaa, 0xfd, 0x08, 0x0c, 0xdf, 0x16, 0x89, 0x43, - 0x60, 0x38, 0x85, 0x68, 0x18, 0x46, 0xa0, 0xf8, 0x3b, 0x41, 0x21, 0x30, 0x84, 0xe2, 0x33, 0xdd, - 0x42, 0xeb, 0xe0, 0x86, 0xe1, 0x7a, 0x0e, 0xeb, 0x83, 0x0f, 0xa7, 0xfa, 0xce, 0x7b, 0xbd, 0x4d, - 0x98, 0x12, 0x80, 0xe6, 0x2f, 0xc3, 0x54, 0x5f, 0x8b, 0x81, 0xc2, 0xbe, 0x59, 0xc8, 0xfe, 0xe2, - 0x07, 0x3c, 0x19, 0xf5, 0x76, 0x18, 0xf9, 0x75, 0xb2, 0xee, 0xbd, 0x7d, 0x40, 0x38, 0xd9, 0xcb, - 0x1f, 0xf8, 0x4b, 0xdf, 0xd3, 0x06, 0xe4, 0x2f, 0xc1, 0x64, 0x4f, 0x0f, 0x10, 0x4e, 0xf5, 0x4b, - 0x9c, 0x2a, 0x1d, 0x6c, 0x01, 0xf2, 0xe7, 0x20, 0x46, 0xea, 0x79, 0x38, 0xfc, 0x97, 0x39, 0x9c, - 0xaa, 0xe7, 0x3f, 0x05, 0x09, 0x51, 0xc7, 0xc3, 0xa1, 0xbf, 0xc2, 0xa1, 0x3e, 0x84, 0xc0, 0x45, - 0x0d, 0x0f, 0x87, 0x7f, 0x41, 0xc0, 0x05, 0x84, 0xc0, 0x47, 0x77, 0xe1, 0x77, 0x7f, 0x2d, 0xc6, - 0xf3, 0xb0, 0xf0, 0xdd, 0x45, 0x98, 0xe0, 0xc5, 0x3b, 0x1c, 0xfd, 0x45, 0x7e, 0x73, 0x81, 0xc8, - 0x3f, 0x03, 0xf1, 0x11, 0x1d, 0xfe, 0xeb, 0x1c, 0xca, 0xf4, 0xf3, 0x2b, 0x90, 0x0a, 0x14, 0xec, - 0x70, 0xf8, 0x6f, 0x70, 0x78, 0x10, 0x45, 0x4c, 0xe7, 0x05, 0x3b, 0x9c, 0xe0, 0x37, 0x85, 0xe9, - 0x1c, 0x41, 0xdc, 0x26, 0x6a, 0x75, 0x38, 0xfa, 0xb7, 0x84, 0xd7, 0x05, 0x24, 0xff, 0x3c, 0x24, - 0xfd, 0xfc, 0x1b, 0x8e, 0xff, 0x6d, 0x8e, 0xef, 0x62, 0x88, 0x07, 0x02, 0xf9, 0x3f, 0x9c, 0xe2, - 0x77, 0x84, 0x07, 0x02, 0x28, 0xb2, 0x8d, 0xfa, 0x6b, 0x7a, 0x38, 0xd3, 0xef, 0x8a, 0x6d, 0xd4, - 0x57, 0xd2, 0xc9, 0x6a, 0xd2, 0x34, 0x18, 0x4e, 0xf1, 0x7b, 0x62, 0x35, 0xa9, 0x3e, 0x31, 0xa3, - 0xbf, 0x48, 0x86, 0x73, 0xfc, 0xbe, 0x30, 0xa3, 0xaf, 0x46, 0xe6, 0x6b, 0x80, 0x06, 0x0b, 0x64, - 0x38, 0xdf, 0x97, 0x38, 0xdf, 0xf4, 0x40, 0x7d, 0xcc, 0x5f, 0x81, 0x63, 0xc3, 0x8b, 0x63, 0x38, - 0xeb, 0x97, 0x3f, 0xe8, 0x7b, 0x9c, 0x09, 0xd6, 0xc6, 0xfc, 0x56, 0x37, 0xcb, 0x06, 0x0b, 0x63, - 0x38, 0xed, 0x2b, 0x1f, 0xf4, 0x26, 0xda, 0x60, 0x5d, 0xcc, 0x17, 0x00, 0xba, 0x35, 0x29, 0x9c, - 0xeb, 0x55, 0xce, 0x15, 0x00, 0x91, 0xad, 0xc1, 0x4b, 0x52, 0x38, 0xfe, 0x2b, 0x62, 0x6b, 0x70, - 0x04, 0xd9, 0x1a, 0xa2, 0x1a, 0x85, 0xa3, 0x5f, 0x13, 0x5b, 0x43, 0x40, 0xf2, 0x17, 0x21, 0x61, - 0xb5, 0x4d, 0x93, 0xc4, 0x16, 0x3a, 0xfc, 0x33, 0xa2, 0xec, 0x8f, 0x3e, 0xe4, 0x60, 0x01, 0xc8, - 0x9f, 0x83, 0x38, 0x6e, 0xee, 0xe0, 0x7a, 0x18, 0xf2, 0xdf, 0x3e, 0x14, 0xf9, 0x84, 0x68, 0xe7, - 0x9f, 0x07, 0x60, 0x0f, 0xd3, 0xf4, 0x2d, 0x51, 0x08, 0xf6, 0xdf, 0x3f, 0xe4, 0x5f, 0x28, 0x74, - 0x21, 0x5d, 0x02, 0xf6, 0xbd, 0xc3, 0xe1, 0x04, 0xef, 0xf5, 0x12, 0xd0, 0x07, 0xf0, 0x67, 0x61, - 0xe2, 0xba, 0x6b, 0x5b, 0x9e, 0xd6, 0x08, 0x43, 0xff, 0x07, 0x47, 0x0b, 0x7d, 0xe2, 0xb0, 0xa6, - 0xed, 0x60, 0x4f, 0x6b, 0xb8, 0x61, 0xd8, 0xff, 0xe4, 0x58, 0x1f, 0x40, 0xc0, 0xba, 0xe6, 0x7a, - 0xa3, 0xcc, 0xfb, 0xbf, 0x04, 0x58, 0x00, 0x88, 0xd1, 0xe4, 0xf7, 0x0d, 0xdc, 0x09, 0xc3, 0xbe, - 0x2f, 0x8c, 0xe6, 0xfa, 0xf9, 0x4f, 0x41, 0x92, 0xfc, 0x64, 0x5f, 0xed, 0x84, 0x80, 0xff, 0x9b, - 0x83, 0xbb, 0x08, 0x72, 0x67, 0xd7, 0xab, 0x7b, 0x46, 0xb8, 0xb3, 0xff, 0x87, 0xaf, 0xb4, 0xd0, - 0xcf, 0x17, 0x20, 0xe5, 0x7a, 0xf5, 0x7a, 0x9b, 0x77, 0x34, 0x21, 0xf0, 0x1f, 0x7f, 0xe8, 0x3f, - 0xe4, 0xfa, 0x98, 0xe2, 0xc9, 0xe1, 0x87, 0x75, 0xb0, 0x66, 0xaf, 0xd9, 0xec, 0x98, 0x0e, 0xde, - 0x98, 0x82, 0x05, 0xdd, 0x6e, 0xee, 0xd8, 0xee, 0x29, 0x96, 0x50, 0x76, 0x6c, 0x6f, 0xef, 0x94, - 0xf0, 0x1c, 0x3f, 0x68, 0xf3, 0x3d, 0x39, 0x77, 0xb4, 0x13, 0xba, 0xc5, 0x1f, 0x4d, 0x42, 0x62, - 0x45, 0x73, 0x3d, 0xed, 0x96, 0xd6, 0x41, 0x8f, 0x42, 0xa2, 0x6c, 0x79, 0x67, 0x4e, 0xd7, 0x3c, - 0x87, 0xbe, 0x61, 0x8a, 0x16, 0x93, 0xf7, 0xee, 0xcc, 0xc7, 0x0d, 0x22, 0x53, 0xfc, 0x21, 0xf4, - 0x30, 0xc4, 0xe9, 0x6f, 0x7a, 0x48, 0x19, 0x2d, 0x4e, 0xbe, 0x79, 0x67, 0x7e, 0xac, 0xab, 0xc7, - 0xc6, 0xd0, 0x35, 0x48, 0x55, 0x3a, 0xdb, 0x86, 0xe5, 0x9d, 0x3f, 0x4b, 0xe8, 0xc8, 0xdc, 0x63, - 0xc5, 0x67, 0xee, 0xdd, 0x99, 0x3f, 0x73, 0xa0, 0x81, 0xa4, 0x22, 0x76, 0x27, 0x26, 0xd0, 0xf4, - 0xc3, 0xc5, 0x20, 0x17, 0xba, 0x02, 0x09, 0x71, 0xc9, 0x0e, 0xfb, 0x8b, 0x17, 0xb9, 0x09, 0xf7, - 0xc5, 0xed, 0x93, 0xa1, 0x5f, 0x80, 0x74, 0xa5, 0x73, 0xc9, 0xb4, 0x35, 0xee, 0x83, 0xf8, 0x82, - 0xb4, 0x14, 0x29, 0x5e, 0xb8, 0x77, 0x67, 0xfe, 0xec, 0xc8, 0xc4, 0x1c, 0x4e, 0x99, 0x7b, 0xd8, - 0xd0, 0x0b, 0x90, 0xf4, 0xaf, 0xe9, 0xeb, 0x84, 0x48, 0xf1, 0x93, 0xdc, 0xee, 0xfb, 0xa3, 0xef, - 0xd2, 0x05, 0x2c, 0x67, 0xee, 0x9e, 0x58, 0x90, 0x96, 0xa4, 0xfb, 0xb1, 0x9c, 0xfb, 0xa4, 0x87, - 0x2d, 0x60, 0xf9, 0xf9, 0xb3, 0xf4, 0xfd, 0x85, 0x74, 0xbf, 0x96, 0x73, 0xfa, 0x2e, 0x1d, 0xba, - 0x0c, 0x13, 0x95, 0x4e, 0xb1, 0xe3, 0x61, 0x97, 0x7e, 0xd0, 0x93, 0x2e, 0x3e, 0x7d, 0xef, 0xce, - 0xfc, 0xc7, 0x47, 0x64, 0xa5, 0x38, 0x45, 0x10, 0xa0, 0x05, 0x48, 0x6d, 0xd8, 0x4e, 0x53, 0x33, - 0x19, 0x1f, 0xb0, 0xf7, 0x31, 0x01, 0x11, 0xda, 0x26, 0x33, 0x61, 0xab, 0xed, 0xd2, 0x7f, 0x45, - 0xf8, 0x29, 0x62, 0xb2, 0xcb, 0x84, 0x0c, 0x88, 0x57, 0x3a, 0x15, 0xad, 0x95, 0x4d, 0xd3, 0x97, - 0x05, 0x0f, 0x2d, 0xfb, 0x08, 0xb1, 0xb7, 0x96, 0xe9, 0x38, 0xfd, 0xaa, 0xa2, 0x78, 0xf6, 0xde, - 0x9d, 0xf9, 0xa7, 0x47, 0xbe, 0x63, 0x45, 0x6b, 0xd1, 0xdb, 0xb1, 0x3b, 0xa0, 0x37, 0x24, 0xb2, - 0xb1, 0xd8, 0x81, 0x2b, 0xb9, 0xe3, 0x24, 0xbd, 0xe3, 0xc3, 0x43, 0xef, 0xe8, 0x6b, 0xb1, 0xfb, - 0x5a, 0x9f, 0x7f, 0xeb, 0x08, 0x33, 0x65, 0x0f, 0x35, 0xe4, 0xd6, 0xbf, 0xfa, 0xd6, 0x7d, 0x6f, - 0x5a, 0xdf, 0x02, 0xf4, 0xb2, 0x04, 0x93, 0x95, 0xce, 0x06, 0x2f, 0xaf, 0xc4, 0xf2, 0x0c, 0xff, - 0x60, 0x7d, 0x98, 0xe5, 0x01, 0x3d, 0x66, 0xfb, 0xf9, 0xcf, 0xbf, 0x35, 0x7f, 0x7a, 0x64, 0x23, - 0x68, 0x0a, 0xa2, 0x36, 0xf4, 0xde, 0x13, 0x7d, 0x81, 0x5a, 0x51, 0x22, 0xa5, 0xba, 0x8e, 0xeb, - 0xc4, 0x8a, 0xa9, 0x43, 0xac, 0x08, 0xe8, 0x31, 0x2b, 0xf2, 0x24, 0xea, 0xef, 0xdf, 0x92, 0x00, - 0x1f, 0xaa, 0xc2, 0x38, 0xf3, 0x30, 0xfd, 0x98, 0x2c, 0x79, 0xc4, 0x30, 0xec, 0x2e, 0x8e, 0xc2, - 0x69, 0xe6, 0x2e, 0x00, 0x74, 0x63, 0x0c, 0xc9, 0x10, 0xbd, 0x81, 0x3b, 0xfc, 0x8b, 0x41, 0xf2, - 0x13, 0xcd, 0x76, 0xbf, 0x88, 0x95, 0x96, 0x62, 0xfc, 0x33, 0xd7, 0x7c, 0xe4, 0x82, 0x34, 0xf7, - 0x1c, 0xc8, 0xfd, 0xb1, 0x72, 0x24, 0xbc, 0x02, 0x68, 0x70, 0xc5, 0x82, 0x0c, 0x71, 0xc6, 0xf0, - 0x58, 0x90, 0x21, 0x75, 0x5a, 0xee, 0xfa, 0xfc, 0x8a, 0x61, 0xba, 0xb6, 0x35, 0xc0, 0xd9, 0xef, - 0xff, 0x9f, 0x8e, 0x73, 0x31, 0x07, 0xe3, 0x4c, 0x48, 0xe6, 0x52, 0xa6, 0xe5, 0x83, 0x56, 0x39, - 0x85, 0x5d, 0x14, 0xd7, 0xdf, 0xbc, 0x9b, 0x1b, 0xfb, 0xfe, 0xdd, 0xdc, 0xd8, 0x3f, 0xdf, 0xcd, - 0x8d, 0xbd, 0x7d, 0x37, 0x27, 0xbd, 0x7b, 0x37, 0x27, 0xbd, 0x7f, 0x37, 0x27, 0xfd, 0xe4, 0x6e, - 0x4e, 0xba, 0xbd, 0x9f, 0x93, 0xbe, 0xb6, 0x9f, 0x93, 0xbe, 0xb9, 0x9f, 0x93, 0xbe, 0xb3, 0x9f, - 0x93, 0xbe, 0xbb, 0x9f, 0x93, 0xde, 0xdc, 0xcf, 0x8d, 0x7d, 0x7f, 0x3f, 0x37, 0xf6, 0xf6, 0x7e, - 0x4e, 0x7a, 0x77, 0x3f, 0x37, 0xf6, 0xfe, 0x7e, 0x4e, 0xfa, 0xc9, 0x7e, 0x4e, 0xba, 0xfd, 0xc3, - 0x9c, 0xf4, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x47, 0x86, 0x16, 0x42, 0x14, 0x36, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Castaway) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Castaway") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Castaway but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Castaway but is not nil && this == nil") - } - if this.Int32Ptr != nil && that1.Int32Ptr != nil { - if *this.Int32Ptr != *that1.Int32Ptr { - return fmt.Errorf("Int32Ptr this(%v) Not Equal that(%v)", *this.Int32Ptr, *that1.Int32Ptr) - } - } else if this.Int32Ptr != nil { - return fmt.Errorf("this.Int32Ptr == nil && that.Int32Ptr != nil") - } else if that1.Int32Ptr != nil { - return fmt.Errorf("Int32Ptr this(%v) Not Equal that(%v)", this.Int32Ptr, that1.Int32Ptr) - } - if this.Int32 != that1.Int32 { - return fmt.Errorf("Int32 this(%v) Not Equal that(%v)", this.Int32, that1.Int32) - } - if this.MyUint64Ptr != nil && that1.MyUint64Ptr != nil { - if *this.MyUint64Ptr != *that1.MyUint64Ptr { - return fmt.Errorf("MyUint64Ptr this(%v) Not Equal that(%v)", *this.MyUint64Ptr, *that1.MyUint64Ptr) - } - } else if this.MyUint64Ptr != nil { - return fmt.Errorf("this.MyUint64Ptr == nil && that.MyUint64Ptr != nil") - } else if that1.MyUint64Ptr != nil { - return fmt.Errorf("MyUint64Ptr this(%v) Not Equal that(%v)", this.MyUint64Ptr, that1.MyUint64Ptr) - } - if this.MyUint64 != that1.MyUint64 { - return fmt.Errorf("MyUint64 this(%v) Not Equal that(%v)", this.MyUint64, that1.MyUint64) - } - if this.MyFloat32Ptr != nil && that1.MyFloat32Ptr != nil { - if *this.MyFloat32Ptr != *that1.MyFloat32Ptr { - return fmt.Errorf("MyFloat32Ptr this(%v) Not Equal that(%v)", *this.MyFloat32Ptr, *that1.MyFloat32Ptr) - } - } else if this.MyFloat32Ptr != nil { - return fmt.Errorf("this.MyFloat32Ptr == nil && that.MyFloat32Ptr != nil") - } else if that1.MyFloat32Ptr != nil { - return fmt.Errorf("MyFloat32Ptr this(%v) Not Equal that(%v)", this.MyFloat32Ptr, that1.MyFloat32Ptr) - } - if this.MyFloat32 != that1.MyFloat32 { - return fmt.Errorf("MyFloat32 this(%v) Not Equal that(%v)", this.MyFloat32, that1.MyFloat32) - } - if this.MyFloat64Ptr != nil && that1.MyFloat64Ptr != nil { - if *this.MyFloat64Ptr != *that1.MyFloat64Ptr { - return fmt.Errorf("MyFloat64Ptr this(%v) Not Equal that(%v)", *this.MyFloat64Ptr, *that1.MyFloat64Ptr) - } - } else if this.MyFloat64Ptr != nil { - return fmt.Errorf("this.MyFloat64Ptr == nil && that.MyFloat64Ptr != nil") - } else if that1.MyFloat64Ptr != nil { - return fmt.Errorf("MyFloat64Ptr this(%v) Not Equal that(%v)", this.MyFloat64Ptr, that1.MyFloat64Ptr) - } - if this.MyFloat64 != that1.MyFloat64 { - return fmt.Errorf("MyFloat64 this(%v) Not Equal that(%v)", this.MyFloat64, that1.MyFloat64) - } - if !bytes.Equal(this.MyBytes, that1.MyBytes) { - return fmt.Errorf("MyBytes this(%v) Not Equal that(%v)", this.MyBytes, that1.MyBytes) - } - if !bytes.Equal(this.NormalBytes, that1.NormalBytes) { - return fmt.Errorf("NormalBytes this(%v) Not Equal that(%v)", this.NormalBytes, that1.NormalBytes) - } - if len(this.MyUint64S) != len(that1.MyUint64S) { - return fmt.Errorf("MyUint64S this(%v) Not Equal that(%v)", len(this.MyUint64S), len(that1.MyUint64S)) - } - for i := range this.MyUint64S { - if this.MyUint64S[i] != that1.MyUint64S[i] { - return fmt.Errorf("MyUint64S this[%v](%v) Not Equal that[%v](%v)", i, this.MyUint64S[i], i, that1.MyUint64S[i]) - } - } - if len(this.MyMap) != len(that1.MyMap) { - return fmt.Errorf("MyMap this(%v) Not Equal that(%v)", len(this.MyMap), len(that1.MyMap)) - } - for i := range this.MyMap { - if this.MyMap[i] != that1.MyMap[i] { - return fmt.Errorf("MyMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyMap[i], i, that1.MyMap[i]) - } - } - if len(this.MyCustomMap) != len(that1.MyCustomMap) { - return fmt.Errorf("MyCustomMap this(%v) Not Equal that(%v)", len(this.MyCustomMap), len(that1.MyCustomMap)) - } - for i := range this.MyCustomMap { - if this.MyCustomMap[i] != that1.MyCustomMap[i] { - return fmt.Errorf("MyCustomMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyCustomMap[i], i, that1.MyCustomMap[i]) - } - } - if len(this.MyNullableMap) != len(that1.MyNullableMap) { - return fmt.Errorf("MyNullableMap this(%v) Not Equal that(%v)", len(this.MyNullableMap), len(that1.MyNullableMap)) - } - for i := range this.MyNullableMap { - if !this.MyNullableMap[i].Equal(that1.MyNullableMap[i]) { - return fmt.Errorf("MyNullableMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyNullableMap[i], i, that1.MyNullableMap[i]) - } - } - if len(this.MyEmbeddedMap) != len(that1.MyEmbeddedMap) { - return fmt.Errorf("MyEmbeddedMap this(%v) Not Equal that(%v)", len(this.MyEmbeddedMap), len(that1.MyEmbeddedMap)) - } - for i := range this.MyEmbeddedMap { - a := this.MyEmbeddedMap[i] - b := that1.MyEmbeddedMap[i] - if !(&a).Equal(&b) { - return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) - } - } - if this.String_ != nil && that1.String_ != nil { - if *this.String_ != *that1.String_ { - return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) - } - } else if this.String_ != nil { - return fmt.Errorf("this.String_ == nil && that.String_ != nil") - } else if that1.String_ != nil { - return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Castaway) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Int32Ptr != nil && that1.Int32Ptr != nil { - if *this.Int32Ptr != *that1.Int32Ptr { - return false - } - } else if this.Int32Ptr != nil { - return false - } else if that1.Int32Ptr != nil { - return false - } - if this.Int32 != that1.Int32 { - return false - } - if this.MyUint64Ptr != nil && that1.MyUint64Ptr != nil { - if *this.MyUint64Ptr != *that1.MyUint64Ptr { - return false - } - } else if this.MyUint64Ptr != nil { - return false - } else if that1.MyUint64Ptr != nil { - return false - } - if this.MyUint64 != that1.MyUint64 { - return false - } - if this.MyFloat32Ptr != nil && that1.MyFloat32Ptr != nil { - if *this.MyFloat32Ptr != *that1.MyFloat32Ptr { - return false - } - } else if this.MyFloat32Ptr != nil { - return false - } else if that1.MyFloat32Ptr != nil { - return false - } - if this.MyFloat32 != that1.MyFloat32 { - return false - } - if this.MyFloat64Ptr != nil && that1.MyFloat64Ptr != nil { - if *this.MyFloat64Ptr != *that1.MyFloat64Ptr { - return false - } - } else if this.MyFloat64Ptr != nil { - return false - } else if that1.MyFloat64Ptr != nil { - return false - } - if this.MyFloat64 != that1.MyFloat64 { - return false - } - if !bytes.Equal(this.MyBytes, that1.MyBytes) { - return false - } - if !bytes.Equal(this.NormalBytes, that1.NormalBytes) { - return false - } - if len(this.MyUint64S) != len(that1.MyUint64S) { - return false - } - for i := range this.MyUint64S { - if this.MyUint64S[i] != that1.MyUint64S[i] { - return false - } - } - if len(this.MyMap) != len(that1.MyMap) { - return false - } - for i := range this.MyMap { - if this.MyMap[i] != that1.MyMap[i] { - return false - } - } - if len(this.MyCustomMap) != len(that1.MyCustomMap) { - return false - } - for i := range this.MyCustomMap { - if this.MyCustomMap[i] != that1.MyCustomMap[i] { - return false - } - } - if len(this.MyNullableMap) != len(that1.MyNullableMap) { - return false - } - for i := range this.MyNullableMap { - if !this.MyNullableMap[i].Equal(that1.MyNullableMap[i]) { - return false - } - } - if len(this.MyEmbeddedMap) != len(that1.MyEmbeddedMap) { - return false - } - for i := range this.MyEmbeddedMap { - a := this.MyEmbeddedMap[i] - b := that1.MyEmbeddedMap[i] - if !(&a).Equal(&b) { - return false - } - } - if this.String_ != nil && that1.String_ != nil { - if *this.String_ != *that1.String_ { - return false - } - } else if this.String_ != nil { - return false - } else if that1.String_ != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Wilson) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Wilson") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Wilson but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Wilson but is not nil && this == nil") - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", *this.Int64, *that1.Int64) - } - } else if this.Int64 != nil { - return fmt.Errorf("this.Int64 == nil && that.Int64 != nil") - } else if that1.Int64 != nil { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", this.Int64, that1.Int64) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Wilson) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return false - } - } else if this.Int64 != nil { - return false - } else if that1.Int64 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetInt32Ptr() *int32 - GetInt32() int32 - GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyUint64() github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyFloat32Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat32Type - GetMyFloat32() github_com_gogo_protobuf_test_casttype.MyFloat32Type - GetMyFloat64Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat64Type - GetMyFloat64() github_com_gogo_protobuf_test_casttype.MyFloat64Type - GetMyBytes() github_com_gogo_protobuf_test_casttype.Bytes - GetNormalBytes() []byte - GetMyUint64S() []github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyMap() github_com_gogo_protobuf_test_casttype.MyMapType - GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson - GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson - GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType -} - -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCastawayFromFace(this) -} - -func (this *Castaway) GetInt32Ptr() *int32 { - return this.Int32Ptr -} - -func (this *Castaway) GetInt32() int32 { - return this.Int32 -} - -func (this *Castaway) GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyUint64Ptr -} - -func (this *Castaway) GetMyUint64() github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyUint64 -} - -func (this *Castaway) GetMyFloat32Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat32Type { - return this.MyFloat32Ptr -} - -func (this *Castaway) GetMyFloat32() github_com_gogo_protobuf_test_casttype.MyFloat32Type { - return this.MyFloat32 -} - -func (this *Castaway) GetMyFloat64Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat64Type { - return this.MyFloat64Ptr -} - -func (this *Castaway) GetMyFloat64() github_com_gogo_protobuf_test_casttype.MyFloat64Type { - return this.MyFloat64 -} - -func (this *Castaway) GetMyBytes() github_com_gogo_protobuf_test_casttype.Bytes { - return this.MyBytes -} - -func (this *Castaway) GetNormalBytes() []byte { - return this.NormalBytes -} - -func (this *Castaway) GetMyUint64S() []github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyUint64S -} - -func (this *Castaway) GetMyMap() github_com_gogo_protobuf_test_casttype.MyMapType { - return this.MyMap -} - -func (this *Castaway) GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyCustomMap -} - -func (this *Castaway) GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson { - return this.MyNullableMap -} - -func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson { - return this.MyEmbeddedMap -} - -func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { - return this.String_ -} - -func NewCastawayFromFace(that CastawayFace) *Castaway { - this := &Castaway{} - this.Int32Ptr = that.GetInt32Ptr() - this.Int32 = that.GetInt32() - this.MyUint64Ptr = that.GetMyUint64Ptr() - this.MyUint64 = that.GetMyUint64() - this.MyFloat32Ptr = that.GetMyFloat32Ptr() - this.MyFloat32 = that.GetMyFloat32() - this.MyFloat64Ptr = that.GetMyFloat64Ptr() - this.MyFloat64 = that.GetMyFloat64() - this.MyBytes = that.GetMyBytes() - this.NormalBytes = that.GetNormalBytes() - this.MyUint64S = that.GetMyUint64S() - this.MyMap = that.GetMyMap() - this.MyCustomMap = that.GetMyCustomMap() - this.MyNullableMap = that.GetMyNullableMap() - this.MyEmbeddedMap = that.GetMyEmbeddedMap() - this.String_ = that.GetString_() - return this -} - -type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetInt64() *int64 -} - -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { - return NewWilsonFromFace(this) -} - -func (this *Wilson) GetInt64() *int64 { - return this.Int64 -} - -func NewWilsonFromFace(that WilsonFace) *Wilson { - this := &Wilson{} - this.Int64 = that.GetInt64() - return this -} - -func (this *Castaway) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&casttype.Castaway{") - if this.Int32Ptr != nil { - s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") - } - s = append(s, "Int32: "+fmt.Sprintf("%#v", this.Int32)+",\n") - if this.MyUint64Ptr != nil { - s = append(s, "MyUint64Ptr: "+valueToGoStringCasttype(this.MyUint64Ptr, "github_com_gogo_protobuf_test_casttype.MyUint64Type")+",\n") - } - s = append(s, "MyUint64: "+fmt.Sprintf("%#v", this.MyUint64)+",\n") - if this.MyFloat32Ptr != nil { - s = append(s, "MyFloat32Ptr: "+valueToGoStringCasttype(this.MyFloat32Ptr, "github_com_gogo_protobuf_test_casttype.MyFloat32Type")+",\n") - } - s = append(s, "MyFloat32: "+fmt.Sprintf("%#v", this.MyFloat32)+",\n") - if this.MyFloat64Ptr != nil { - s = append(s, "MyFloat64Ptr: "+valueToGoStringCasttype(this.MyFloat64Ptr, "github_com_gogo_protobuf_test_casttype.MyFloat64Type")+",\n") - } - s = append(s, "MyFloat64: "+fmt.Sprintf("%#v", this.MyFloat64)+",\n") - if this.MyBytes != nil { - s = append(s, "MyBytes: "+valueToGoStringCasttype(this.MyBytes, "github_com_gogo_protobuf_test_casttype.Bytes")+",\n") - } - if this.NormalBytes != nil { - s = append(s, "NormalBytes: "+valueToGoStringCasttype(this.NormalBytes, "byte")+",\n") - } - if this.MyUint64S != nil { - s = append(s, "MyUint64S: "+fmt.Sprintf("%#v", this.MyUint64S)+",\n") - } - keysForMyMap := make([]string, 0, len(this.MyMap)) - for k := range this.MyMap { - keysForMyMap = append(keysForMyMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) - mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" - for _, k := range keysForMyMap { - mapStringForMyMap += fmt.Sprintf("%#v: %#v,", k, this.MyMap[k]) - } - mapStringForMyMap += "}" - if this.MyMap != nil { - s = append(s, "MyMap: "+mapStringForMyMap+",\n") - } - keysForMyCustomMap := make([]string, 0, len(this.MyCustomMap)) - for k := range this.MyCustomMap { - keysForMyCustomMap = append(keysForMyCustomMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) - mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" - for _, k := range keysForMyCustomMap { - mapStringForMyCustomMap += fmt.Sprintf("%#v: %#v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) - } - mapStringForMyCustomMap += "}" - if this.MyCustomMap != nil { - s = append(s, "MyCustomMap: "+mapStringForMyCustomMap+",\n") - } - keysForMyNullableMap := make([]int32, 0, len(this.MyNullableMap)) - for k := range this.MyNullableMap { - keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) - mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" - for _, k := range keysForMyNullableMap { - mapStringForMyNullableMap += fmt.Sprintf("%#v: %#v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyNullableMap += "}" - if this.MyNullableMap != nil { - s = append(s, "MyNullableMap: "+mapStringForMyNullableMap+",\n") - } - keysForMyEmbeddedMap := make([]int32, 0, len(this.MyEmbeddedMap)) - for k := range this.MyEmbeddedMap { - keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) - mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" - for _, k := range keysForMyEmbeddedMap { - mapStringForMyEmbeddedMap += fmt.Sprintf("%#v: %#v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyEmbeddedMap += "}" - if this.MyEmbeddedMap != nil { - s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") - } - if this.String_ != nil { - s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Wilson) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&casttype.Wilson{") - if this.Int64 != nil { - s = append(s, "Int64: "+valueToGoStringCasttype(this.Int64, "int64")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringCasttype(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { - this := &Castaway{} - if r.Intn(10) != 0 { - v1 := int32(r.Int63()) - if r.Intn(2) == 0 { - v1 *= -1 - } - this.Int32Ptr = &v1 - } - this.Int32 = int32(r.Int63()) - if r.Intn(2) == 0 { - this.Int32 *= -1 - } - if r.Intn(10) != 0 { - v2 := github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - this.MyUint64Ptr = &v2 - } - this.MyUint64 = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - if r.Intn(10) != 0 { - v3 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(r.Float32()) - if r.Intn(2) == 0 { - v3 *= -1 - } - this.MyFloat32Ptr = &v3 - } - this.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(r.Float32()) - if r.Intn(2) == 0 { - this.MyFloat32 *= -1 - } - if r.Intn(10) != 0 { - v4 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(r.Float64()) - if r.Intn(2) == 0 { - v4 *= -1 - } - this.MyFloat64Ptr = &v4 - } - this.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(r.Float64()) - if r.Intn(2) == 0 { - this.MyFloat64 *= -1 - } - if r.Intn(10) != 0 { - v5 := r.Intn(100) - this.MyBytes = make(github_com_gogo_protobuf_test_casttype.Bytes, v5) - for i := 0; i < v5; i++ { - this.MyBytes[i] = byte(r.Intn(256)) - } - } - if r.Intn(10) != 0 { - v6 := r.Intn(100) - this.NormalBytes = make([]byte, v6) - for i := 0; i < v6; i++ { - this.NormalBytes[i] = byte(r.Intn(256)) - } - } - if r.Intn(10) != 0 { - v7 := r.Intn(10) - this.MyUint64S = make([]github_com_gogo_protobuf_test_casttype.MyUint64Type, v7) - for i := 0; i < v7; i++ { - this.MyUint64S[i] = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v8 := r.Intn(10) - this.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) - for i := 0; i < v8; i++ { - v9 := randStringCasttype(r) - this.MyMap[v9] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v10 := r.Intn(10) - this.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) - for i := 0; i < v10; i++ { - v11 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) - this.MyCustomMap[v11] = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v12 := r.Intn(10) - this.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) - for i := 0; i < v12; i++ { - this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = NewPopulatedWilson(r, easy) - } - } - if r.Intn(10) != 0 { - v13 := r.Intn(10) - this.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) - for i := 0; i < v13; i++ { - this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) - } - } - if r.Intn(10) != 0 { - v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) - this.String_ = &v14 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) - } - return this -} - -func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { - this := &Wilson{} - if r.Intn(10) != 0 { - v15 := int64(r.Int63()) - if r.Intn(2) == 0 { - v15 *= -1 - } - this.Int64 = &v15 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) - } - return this -} - -type randyCasttype interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneCasttype(r randyCasttype) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringCasttype(r randyCasttype) string { - v16 := r.Intn(100) - tmps := make([]rune, v16) - for i := 0; i < v16; i++ { - tmps[i] = randUTF8RuneCasttype(r) - } - return string(tmps) -} -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - v17 := r.Int63() - if r.Intn(2) == 0 { - v17 *= -1 - } - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) - case 1: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Castaway) Size() (n int) { - var l int - _ = l - if m.Int32Ptr != nil { - n += 1 + sovCasttype(uint64(*m.Int32Ptr)) - } - n += 1 + sovCasttype(uint64(m.Int32)) - if m.MyUint64Ptr != nil { - n += 1 + sovCasttype(uint64(*m.MyUint64Ptr)) - } - n += 1 + sovCasttype(uint64(m.MyUint64)) - if m.MyFloat32Ptr != nil { - n += 5 - } - n += 5 - if m.MyFloat64Ptr != nil { - n += 9 - } - n += 9 - if m.MyBytes != nil { - l = len(m.MyBytes) - n += 1 + l + sovCasttype(uint64(l)) - } - if m.NormalBytes != nil { - l = len(m.NormalBytes) - n += 1 + l + sovCasttype(uint64(l)) - } - if len(m.MyUint64S) > 0 { - for _, e := range m.MyUint64S { - n += 1 + sovCasttype(uint64(e)) - } - } - if len(m.MyMap) > 0 { - for k, v := range m.MyMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if len(m.MyCustomMap) > 0 { - for k, v := range m.MyCustomMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if len(m.MyNullableMap) > 0 { - for k, v := range m.MyNullableMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovCasttype(uint64(l)) - } - mapEntrySize := 1 + sovCasttype(uint64(k)) + l - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if len(m.MyEmbeddedMap) > 0 { - for k, v := range m.MyEmbeddedMap { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if m.String_ != nil { - l = len(*m.String_) - n += 2 + l + sovCasttype(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Wilson) Size() (n int) { - var l int - _ = l - if m.Int64 != nil { - n += 1 + sovCasttype(uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovCasttype(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozCasttype(x uint64) (n int) { - return sovCasttype(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Castaway) String() string { - if this == nil { - return "nil" - } - keysForMyMap := make([]string, 0, len(this.MyMap)) - for k := range this.MyMap { - keysForMyMap = append(keysForMyMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) - mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" - for _, k := range keysForMyMap { - mapStringForMyMap += fmt.Sprintf("%v: %v,", k, this.MyMap[k]) - } - mapStringForMyMap += "}" - keysForMyCustomMap := make([]string, 0, len(this.MyCustomMap)) - for k := range this.MyCustomMap { - keysForMyCustomMap = append(keysForMyCustomMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) - mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" - for _, k := range keysForMyCustomMap { - mapStringForMyCustomMap += fmt.Sprintf("%v: %v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) - } - mapStringForMyCustomMap += "}" - keysForMyNullableMap := make([]int32, 0, len(this.MyNullableMap)) - for k := range this.MyNullableMap { - keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) - mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" - for _, k := range keysForMyNullableMap { - mapStringForMyNullableMap += fmt.Sprintf("%v: %v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyNullableMap += "}" - keysForMyEmbeddedMap := make([]int32, 0, len(this.MyEmbeddedMap)) - for k := range this.MyEmbeddedMap { - keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) - mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" - for _, k := range keysForMyEmbeddedMap { - mapStringForMyEmbeddedMap += fmt.Sprintf("%v: %v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyEmbeddedMap += "}" - s := strings.Join([]string{`&Castaway{`, - `Int32Ptr:` + valueToStringCasttype(this.Int32Ptr) + `,`, - `Int32:` + fmt.Sprintf("%v", this.Int32) + `,`, - `MyUint64Ptr:` + valueToStringCasttype(this.MyUint64Ptr) + `,`, - `MyUint64:` + fmt.Sprintf("%v", this.MyUint64) + `,`, - `MyFloat32Ptr:` + valueToStringCasttype(this.MyFloat32Ptr) + `,`, - `MyFloat32:` + fmt.Sprintf("%v", this.MyFloat32) + `,`, - `MyFloat64Ptr:` + valueToStringCasttype(this.MyFloat64Ptr) + `,`, - `MyFloat64:` + fmt.Sprintf("%v", this.MyFloat64) + `,`, - `MyBytes:` + valueToStringCasttype(this.MyBytes) + `,`, - `NormalBytes:` + valueToStringCasttype(this.NormalBytes) + `,`, - `MyUint64S:` + fmt.Sprintf("%v", this.MyUint64S) + `,`, - `MyMap:` + mapStringForMyMap + `,`, - `MyCustomMap:` + mapStringForMyCustomMap + `,`, - `MyNullableMap:` + mapStringForMyNullableMap + `,`, - `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, - `String_:` + valueToStringCasttype(this.String_) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Wilson) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Wilson{`, - `Int64:` + valueToStringCasttype(this.Int64) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringCasttype(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Castaway) 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 *Castaway) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Int32Ptr != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(*m.Int32Ptr)) - } - dAtA[i] = 0x10 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(m.Int32)) - if m.MyUint64Ptr != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(*m.MyUint64Ptr)) - } - dAtA[i] = 0x20 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(m.MyUint64)) - if m.MyFloat32Ptr != nil { - dAtA[i] = 0x2d - i++ - i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) - } - dAtA[i] = 0x35 - i++ - i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(m.MyFloat32)))) - if m.MyFloat64Ptr != nil { - dAtA[i] = 0x39 - i++ - i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) - } - dAtA[i] = 0x41 - i++ - i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(m.MyFloat64)))) - if m.MyBytes != nil { - dAtA[i] = 0x4a - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(m.MyBytes))) - i += copy(dAtA[i:], m.MyBytes) - } - if m.NormalBytes != nil { - dAtA[i] = 0x52 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(m.NormalBytes))) - i += copy(dAtA[i:], m.NormalBytes) - } - if len(m.MyUint64S) > 0 { - for _, num := range m.MyUint64S { - dAtA[i] = 0x58 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(num)) - } - } - if len(m.MyMap) > 0 { - for k := range m.MyMap { - dAtA[i] = 0x62 - i++ - v := m.MyMap[k] - mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(v)) - } - } - if len(m.MyCustomMap) > 0 { - for k := range m.MyCustomMap { - dAtA[i] = 0x6a - i++ - v := m.MyCustomMap[k] - mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(v)) - } - } - if len(m.MyNullableMap) > 0 { - for k := range m.MyNullableMap { - dAtA[i] = 0x72 - i++ - v := m.MyNullableMap[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovCasttype(uint64(msgSize)) - } - mapSize := 1 + sovCasttype(uint64(k)) + msgSize - i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(v.Size())) - n1, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - } - } - if len(m.MyEmbeddedMap) > 0 { - for k := range m.MyEmbeddedMap { - dAtA[i] = 0x7a - i++ - v := m.MyEmbeddedMap[k] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovCasttype(uint64(msgSize)) - } - mapSize := 1 + sovCasttype(uint64(k)) + msgSize - i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintCasttype(dAtA, i, uint64((&v).Size())) - n2, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - } - if m.String_ != nil { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(*m.String_))) - i += copy(dAtA[i:], *m.String_) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Wilson) 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 *Wilson) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Int64 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Casttype(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 encodeFixed32Casttype(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 encodeVarintCasttype(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 *Castaway) 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 ErrIntOverflowCasttypeUnsafe - } - 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: Castaway: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Castaway: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Ptr", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Ptr = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32", wireType) - } - m.Int32 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Int32 |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64Ptr", wireType) - } - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyUint64Ptr = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64", wireType) - } - m.MyUint64 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MyUint64 |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field MyFloat32Ptr", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 - v2 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) - m.MyFloat32Ptr = &v2 - case 6: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field MyFloat32", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 - m.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) - case 7: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field MyFloat64Ptr", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 - v2 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) - m.MyFloat64Ptr = &v2 - case 8: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field MyFloat64", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 - m.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyBytes", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MyBytes = append(m.MyBytes[:0], dAtA[iNdEx:postIndex]...) - if m.MyBytes == nil { - m.MyBytes = []byte{} - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NormalBytes", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NormalBytes = append(m.NormalBytes[:0], dAtA[iNdEx:postIndex]...) - if m.NormalBytes == nil { - m.NormalBytes = []byte{} - } - iNdEx = postIndex - case 11: - if wireType == 0 { - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyUint64S = append(m.MyUint64S, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyUint64S = append(m.MyUint64S, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) - } - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.MyMap == nil { - m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyMap[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.MyMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyCustomMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.MyCustomMap == nil { - m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test_casttype.MyUint64Type - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyNullableMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.MyNullableMap == nil { - m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue - } else { - var mapvalue *Wilson - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyEmbeddedMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.MyEmbeddedMap == nil { - m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue - } else { - var mapvalue Wilson - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - 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 ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postIndex]) - m.String_ = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCasttypeUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Wilson) 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 ErrIntOverflowCasttypeUnsafe - } - 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: Wilson: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Wilson: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64 = &v - default: - iNdEx = preIndex - skippy, err := skipCasttypeUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipCasttypeUnsafe(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, ErrIntOverflowCasttypeUnsafe - } - 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, ErrIntOverflowCasttypeUnsafe - } - 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, ErrIntOverflowCasttypeUnsafe - } - 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, ErrInvalidLengthCasttypeUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowCasttypeUnsafe - } - 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 := skipCasttypeUnsafe(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 ( - ErrInvalidLengthCasttypeUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowCasttypeUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeboth/casttype.proto", fileDescriptorCasttype) } - -var fileDescriptorCasttype = []byte{ - // 697 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0xc7, 0xfd, 0x9a, 0xa6, 0x4d, 0x2e, 0x0d, 0x44, 0x27, 0x06, 0xab, 0x12, 0x67, 0xab, 0x55, - 0x91, 0x07, 0x48, 0xaa, 0x34, 0x2a, 0x55, 0x41, 0x0c, 0xae, 0x8a, 0x54, 0x84, 0x0b, 0x32, 0x54, - 0x15, 0x88, 0xc5, 0x69, 0xdd, 0x34, 0xc2, 0xb1, 0xa3, 0xf8, 0x02, 0xf2, 0x56, 0x95, 0x01, 0x89, - 0xbf, 0x84, 0x91, 0x05, 0x89, 0x91, 0xb1, 0x63, 0x47, 0xa6, 0xb4, 0x36, 0x4b, 0xd9, 0x3a, 0x56, - 0x99, 0x90, 0xef, 0x9c, 0xd8, 0xfd, 0x01, 0x4a, 0xdd, 0xed, 0xde, 0xdd, 0x7b, 0x9f, 0xf7, 0xbd, - 0x77, 0xef, 0xee, 0x90, 0xbc, 0xe5, 0xb4, 0xea, 0x8e, 0x5b, 0xe9, 0xda, 0xae, 0xb1, 0x63, 0xd6, - 0x1d, 0xba, 0x5b, 0xd9, 0x32, 0x5c, 0x4a, 0xbd, 0xb6, 0x59, 0x6e, 0x77, 0x1c, 0xea, 0xe0, 0xdc, - 0xc0, 0x9e, 0x7e, 0xd0, 0x68, 0xd2, 0xdd, 0x6e, 0xbd, 0xbc, 0xe5, 0xb4, 0x2a, 0x0d, 0xa7, 0xe1, - 0x54, 0x98, 0x43, 0xbd, 0xbb, 0xc3, 0x2c, 0x66, 0xb0, 0x11, 0x0f, 0x9c, 0xf9, 0x53, 0x44, 0xb9, - 0x15, 0xc3, 0xa5, 0xc6, 0x47, 0xc3, 0xc3, 0x73, 0x28, 0xb7, 0x66, 0xd3, 0x85, 0xea, 0x4b, 0xda, - 0x11, 0x41, 0x06, 0x25, 0xa3, 0xe6, 0xfb, 0x3d, 0x29, 0xdb, 0x0c, 0xe7, 0xf4, 0xe1, 0x12, 0x9e, - 0x45, 0x59, 0x36, 0x16, 0xc7, 0x98, 0x4f, 0xf1, 0xa0, 0x27, 0x09, 0xb1, 0x1f, 0x5f, 0xc3, 0x6f, - 0x50, 0x41, 0xf3, 0x36, 0x9a, 0x36, 0x5d, 0xac, 0x85, 0xb8, 0x8c, 0x0c, 0xca, 0xb8, 0xfa, 0xb0, - 0xdf, 0x93, 0x16, 0xfe, 0x29, 0x90, 0x9a, 0x2e, 0x8d, 0x37, 0x36, 0x88, 0x7e, 0xed, 0xb5, 0x4d, - 0x3d, 0xc9, 0xc2, 0x9b, 0x28, 0x37, 0x30, 0xc5, 0x71, 0xc6, 0x7d, 0x14, 0x49, 0x48, 0xc5, 0x1e, - 0xc2, 0xf0, 0x3b, 0x34, 0xa5, 0x79, 0x4f, 0x2d, 0xc7, 0x88, 0x6a, 0x90, 0x95, 0x41, 0x19, 0x53, - 0x97, 0xfa, 0x3d, 0xa9, 0x36, 0x32, 0x38, 0x0a, 0x67, 0xe4, 0x73, 0x34, 0xfc, 0x16, 0xe5, 0x87, - 0xb6, 0x38, 0xc1, 0xd0, 0x8f, 0x23, 0xdd, 0xe9, 0xf0, 0x31, 0x2e, 0xa1, 0x9c, 0x97, 0x7b, 0x52, - 0x06, 0x05, 0xd2, 0x28, 0x8f, 0x6a, 0x72, 0x8e, 0x96, 0x50, 0xbe, 0x58, 0x13, 0x73, 0x0c, 0x9d, - 0x52, 0x79, 0x84, 0x8f, 0x71, 0xf8, 0x19, 0x9a, 0xd4, 0x3c, 0xd5, 0xa3, 0xa6, 0x2b, 0xe6, 0x65, - 0x50, 0xa6, 0xd4, 0xf9, 0x7e, 0x4f, 0xba, 0x3f, 0x22, 0x95, 0xc5, 0xe9, 0x03, 0x00, 0x96, 0x51, - 0x61, 0xdd, 0xe9, 0xb4, 0x0c, 0x8b, 0xf3, 0x50, 0xc8, 0xd3, 0x93, 0x53, 0x78, 0x23, 0xdc, 0x09, - 0x3f, 0x6d, 0x57, 0x2c, 0xc8, 0x99, 0x9b, 0xf4, 0x64, 0x4c, 0xc2, 0x4d, 0x94, 0xd5, 0x3c, 0xcd, - 0x68, 0x8b, 0x53, 0x72, 0x46, 0x29, 0x54, 0xef, 0x96, 0x87, 0x11, 0x83, 0xbb, 0x55, 0x66, 0xeb, - 0xab, 0x36, 0xed, 0x78, 0x6a, 0xad, 0xdf, 0x93, 0xe6, 0x47, 0xce, 0xa8, 0x19, 0x6d, 0x96, 0x8e, - 0x67, 0xc0, 0xdf, 0x21, 0xbc, 0x58, 0x2b, 0x5d, 0x97, 0x3a, 0xad, 0x30, 0x63, 0x91, 0x65, 0x9c, - 0xbd, 0x32, 0xe3, 0xd0, 0x8b, 0xe7, 0xb5, 0xf7, 0x8f, 0xae, 0xb1, 0xd3, 0x57, 0xb4, 0xd3, 0xb4, - 0x1b, 0x61, 0xea, 0x2f, 0x47, 0xa9, 0x2f, 0xed, 0x50, 0x01, 0xfe, 0x04, 0xa8, 0xa8, 0x79, 0xeb, - 0x5d, 0xcb, 0x32, 0xea, 0x96, 0x19, 0x2a, 0xbf, 0xc5, 0x94, 0xcf, 0x5d, 0xa9, 0x3c, 0xe1, 0xc7, - 0xb5, 0x2f, 0xee, 0x1f, 0x49, 0xd5, 0x91, 0x45, 0xb0, 0x27, 0x88, 0x69, 0x38, 0x9f, 0x13, 0x7f, - 0x66, 0x2a, 0x56, 0x5b, 0x75, 0x73, 0x7b, 0xdb, 0xdc, 0x0e, 0x55, 0xdc, 0xfe, 0x8f, 0x8a, 0x84, - 0x1f, 0x57, 0xb1, 0x1c, 0x76, 0x7d, 0x7a, 0x25, 0x09, 0x1e, 0x7e, 0x81, 0x26, 0x78, 0x85, 0xc5, - 0x92, 0x0c, 0x4a, 0xfe, 0x9a, 0x6d, 0x18, 0x1f, 0x8e, 0x1e, 0x61, 0xa6, 0x97, 0x10, 0x8a, 0x7b, - 0x0c, 0x97, 0x50, 0xe6, 0xbd, 0xe9, 0xb1, 0x57, 0x3c, 0xaf, 0x87, 0x43, 0x7c, 0x07, 0x65, 0x3f, - 0x18, 0x56, 0xd7, 0x64, 0xaf, 0xf6, 0xb8, 0xce, 0x8d, 0xe5, 0xb1, 0x25, 0x98, 0x7e, 0x82, 0x4a, - 0x17, 0x7b, 0xe5, 0x5a, 0xf1, 0x3a, 0xc2, 0x97, 0x4f, 0x2c, 0x49, 0xc8, 0x72, 0xc2, 0xbd, 0x24, - 0xa1, 0x50, 0x2d, 0xc5, 0x35, 0xdf, 0x6c, 0x5a, 0xae, 0x63, 0x5f, 0x62, 0x5e, 0xac, 0xff, 0xcd, - 0x98, 0x33, 0x04, 0x4d, 0xf0, 0xc9, 0x70, 0x2f, 0x6b, 0xec, 0xfb, 0x60, 0xbf, 0x9c, 0xce, 0x0d, - 0xf5, 0xf9, 0x81, 0x4f, 0x84, 0x43, 0x9f, 0x08, 0xbf, 0x7c, 0x22, 0x1c, 0xfb, 0x04, 0x4e, 0x7c, - 0x02, 0xa7, 0x3e, 0x81, 0x33, 0x9f, 0xc0, 0x5e, 0x40, 0xe0, 0x6b, 0x40, 0xe0, 0x5b, 0x40, 0xe0, - 0x47, 0x40, 0xe0, 0x67, 0x40, 0xe0, 0x20, 0x20, 0xc2, 0x61, 0x40, 0x84, 0xe3, 0x80, 0xc0, 0x49, - 0x40, 0x84, 0xd3, 0x80, 0xc0, 0x59, 0x40, 0x60, 0xef, 0x37, 0x81, 0xbf, 0x01, 0x00, 0x00, 0xff, - 0xff, 0xef, 0x87, 0x35, 0x71, 0xb5, 0x07, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.proto deleted file mode 100644 index 2111b43cf..000000000 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttype.proto +++ /dev/null @@ -1,80 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2015, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; - -package casttype; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message Castaway { - optional int64 Int32Ptr = 1 [(gogoproto.casttype) = "int32"]; - optional int64 Int32 = 2 [(gogoproto.casttype) = "int32", (gogoproto.nullable) = false]; - optional uint64 MyUint64Ptr = 3 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - optional uint64 MyUint64 = 4 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type", (gogoproto.nullable) = false]; - optional float MyFloat32Ptr = 5 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat32Type"]; - optional float MyFloat32 = 6 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat32Type", (gogoproto.nullable) = false]; - optional double MyFloat64Ptr = 7 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat64Type"]; - optional double MyFloat64 = 8 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat64Type", (gogoproto.nullable) = false]; - optional bytes MyBytes = 9 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.Bytes"]; - optional bytes NormalBytes = 10; - repeated uint64 MyUint64s = 11 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - map MyMap = 12 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyMapType"]; - map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; - map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; - optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; -} - -message Wilson { - optional int64 Int64 = 1; -} diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttypepb_test.go deleted file mode 100644 index 1518a9c48..000000000 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeboth/casttypepb_test.go +++ /dev/null @@ -1,538 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/casttype.proto -// DO NOT EDIT! - -/* -Package casttype is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeboth/casttype.proto - -It has these top-level messages: - Castaway - Wilson -*/ -package casttype - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestCastawayProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCastawayMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Castaway{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestWilsonMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Wilson{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestWilsonJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCastawayProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCastawayProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCasttypeDescription(t *testing.T) { - CasttypeDescription() -} -func TestCastawayVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestWilsonVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCastawaySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.pb.go deleted file mode 100644 index 757a77561..000000000 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.pb.go +++ /dev/null @@ -1,1609 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/casttype.proto -// DO NOT EDIT! - -/* -Package casttype is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/casttype.proto - -It has these top-level messages: - Castaway - Wilson -*/ -package casttype - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -// 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 - -type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Castaway) Reset() { *m = Castaway{} } -func (*Castaway) ProtoMessage() {} -func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } - -type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Wilson) Reset() { *m = Wilson{} } -func (*Wilson) ProtoMessage() {} -func (*Wilson) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{1} } - -func init() { - proto.RegisterType((*Castaway)(nil), "casttype.Castaway") - proto.RegisterType((*Wilson)(nil), "casttype.Wilson") -} -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CasttypeDescription() -} -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CasttypeDescription() -} -func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 4126 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x10, 0x1d, 0x83, 0x14, 0x6d, - 0xd9, 0xb4, 0x9d, 0x50, 0x1e, 0xfd, 0x59, 0x86, 0x12, 0x7b, 0x00, 0x12, 0x62, 0xa0, 0x12, 0x04, - 0xb2, 0x24, 0x23, 0xc9, 0xed, 0xcc, 0xce, 0x72, 0x71, 0x09, 0xae, 0xb4, 0xd8, 0x45, 0x76, 0x17, - 0x92, 0xe1, 0x27, 0x35, 0x6e, 0x9b, 0x49, 0x3b, 0xfd, 0xef, 0x4c, 0x13, 0xd7, 0x71, 0xdb, 0xcc, - 0xb4, 0x4e, 0x93, 0xfe, 0x24, 0x6d, 0x93, 0x66, 0xf2, 0x94, 0x97, 0xb4, 0x7e, 0xea, 0x24, 0x6f, - 0x7d, 0xe8, 0xc8, 0x16, 0xe3, 0x99, 0x3a, 0xad, 0xdb, 0xba, 0x8d, 0x67, 0x9a, 0x91, 0x5f, 0x3a, - 0xf7, 0x6f, 0xb1, 0xf8, 0x21, 0x17, 0x54, 0xc6, 0xc9, 0x13, 0xb1, 0xe7, 0x9e, 0xef, 0xdb, 0x73, - 0xcf, 0x3d, 0xf7, 0x9c, 0xb3, 0x77, 0x97, 0xf0, 0xc3, 0x73, 0xb0, 0xd0, 0xb0, 0xed, 0x86, 0x89, - 0x4f, 0xb5, 0x1c, 0xdb, 0xb3, 0x77, 0xda, 0xbb, 0xa7, 0xea, 0xd8, 0xd5, 0x1d, 0xa3, 0xe5, 0xd9, - 0xce, 0x32, 0x95, 0xa1, 0x29, 0xa6, 0xb1, 0x2c, 0x34, 0x16, 0x2b, 0x30, 0x7d, 0xc9, 0x30, 0xf1, - 0xaa, 0xaf, 0xb8, 0x89, 0x3d, 0x74, 0x01, 0x62, 0xbb, 0x86, 0x89, 0xb3, 0xd2, 0x42, 0x74, 0x29, - 0x75, 0xfa, 0xd1, 0xe5, 0x3e, 0xd0, 0x72, 0x2f, 0xa2, 0x46, 0xc4, 0x0a, 0x45, 0x2c, 0xbe, 0x1d, - 0x83, 0x99, 0x21, 0xa3, 0x08, 0x41, 0xcc, 0xd2, 0x9a, 0x84, 0x51, 0x5a, 0x4a, 0x2a, 0xf4, 0x37, - 0xca, 0xc2, 0x44, 0x4b, 0xd3, 0x6f, 0x68, 0x0d, 0x9c, 0x8d, 0x50, 0xb1, 0xb8, 0x44, 0x39, 0x80, - 0x3a, 0x6e, 0x61, 0xab, 0x8e, 0x2d, 0xbd, 0x93, 0x8d, 0x2e, 0x44, 0x97, 0x92, 0x4a, 0x40, 0x82, - 0x9e, 0x82, 0xe9, 0x56, 0x7b, 0xc7, 0x34, 0x74, 0x35, 0xa0, 0x06, 0x0b, 0xd1, 0xa5, 0xb8, 0x22, - 0xb3, 0x81, 0xd5, 0xae, 0xf2, 0xe3, 0x30, 0x75, 0x0b, 0x6b, 0x37, 0x82, 0xaa, 0x29, 0xaa, 0x9a, - 0x21, 0xe2, 0x80, 0xe2, 0x0a, 0xa4, 0x9b, 0xd8, 0x75, 0xb5, 0x06, 0x56, 0xbd, 0x4e, 0x0b, 0x67, - 0x63, 0x74, 0xf6, 0x0b, 0x03, 0xb3, 0xef, 0x9f, 0x79, 0x8a, 0xa3, 0xb6, 0x3a, 0x2d, 0x8c, 0x0a, - 0x90, 0xc4, 0x56, 0xbb, 0xc9, 0x18, 0xe2, 0x07, 0xf8, 0xaf, 0x64, 0xb5, 0x9b, 0xfd, 0x2c, 0x09, - 0x02, 0xe3, 0x14, 0x13, 0x2e, 0x76, 0x6e, 0x1a, 0x3a, 0xce, 0x8e, 0x53, 0x82, 0xc7, 0x07, 0x08, - 0x36, 0xd9, 0x78, 0x3f, 0x87, 0xc0, 0xa1, 0x15, 0x48, 0xe2, 0x17, 0x3d, 0x6c, 0xb9, 0x86, 0x6d, - 0x65, 0x27, 0x28, 0xc9, 0xc9, 0x21, 0xab, 0x88, 0xcd, 0x7a, 0x3f, 0x45, 0x17, 0x87, 0xce, 0xc3, - 0x84, 0xdd, 0xf2, 0x0c, 0xdb, 0x72, 0xb3, 0x89, 0x05, 0x69, 0x29, 0x75, 0xfa, 0x23, 0x43, 0x03, - 0xa1, 0xca, 0x74, 0x14, 0xa1, 0x8c, 0xca, 0x20, 0xbb, 0x76, 0xdb, 0xd1, 0xb1, 0xaa, 0xdb, 0x75, - 0xac, 0x1a, 0xd6, 0xae, 0x9d, 0x4d, 0x52, 0x82, 0xf9, 0xc1, 0x89, 0x50, 0xc5, 0x15, 0xbb, 0x8e, - 0xcb, 0xd6, 0xae, 0xad, 0x64, 0xdc, 0x9e, 0x6b, 0x74, 0x0c, 0xc6, 0xdd, 0x8e, 0xe5, 0x69, 0x2f, - 0x66, 0xd3, 0x34, 0x42, 0xf8, 0xd5, 0xe2, 0xff, 0xc5, 0x61, 0x6a, 0x94, 0x10, 0xbb, 0x08, 0xf1, - 0x5d, 0x32, 0xcb, 0x6c, 0xe4, 0x28, 0x3e, 0x60, 0x98, 0x5e, 0x27, 0x8e, 0xdf, 0xa7, 0x13, 0x0b, - 0x90, 0xb2, 0xb0, 0xeb, 0xe1, 0x3a, 0x8b, 0x88, 0xe8, 0x88, 0x31, 0x05, 0x0c, 0x34, 0x18, 0x52, - 0xb1, 0xfb, 0x0a, 0xa9, 0xab, 0x30, 0xe5, 0x9b, 0xa4, 0x3a, 0x9a, 0xd5, 0x10, 0xb1, 0x79, 0x2a, - 0xcc, 0x92, 0xe5, 0x92, 0xc0, 0x29, 0x04, 0xa6, 0x64, 0x70, 0xcf, 0x35, 0x5a, 0x05, 0xb0, 0x2d, - 0x6c, 0xef, 0xaa, 0x75, 0xac, 0x9b, 0xd9, 0xc4, 0x01, 0x5e, 0xaa, 0x12, 0x95, 0x01, 0x2f, 0xd9, - 0x4c, 0xaa, 0x9b, 0xe8, 0xd9, 0x6e, 0xa8, 0x4d, 0x1c, 0x10, 0x29, 0x15, 0xb6, 0xc9, 0x06, 0xa2, - 0x6d, 0x1b, 0x32, 0x0e, 0x26, 0x71, 0x8f, 0xeb, 0x7c, 0x66, 0x49, 0x6a, 0xc4, 0x72, 0xe8, 0xcc, - 0x14, 0x0e, 0x63, 0x13, 0x9b, 0x74, 0x82, 0x97, 0xe8, 0x11, 0xf0, 0x05, 0x2a, 0x0d, 0x2b, 0xa0, - 0x59, 0x28, 0x2d, 0x84, 0x1b, 0x5a, 0x13, 0xcf, 0x5d, 0x80, 0x4c, 0xaf, 0x7b, 0xd0, 0x2c, 0xc4, - 0x5d, 0x4f, 0x73, 0x3c, 0x1a, 0x85, 0x71, 0x85, 0x5d, 0x20, 0x19, 0xa2, 0xd8, 0xaa, 0xd3, 0x2c, - 0x17, 0x57, 0xc8, 0xcf, 0xb9, 0x67, 0x60, 0xb2, 0xe7, 0xf6, 0xa3, 0x02, 0x17, 0xbf, 0x30, 0x0e, - 0xb3, 0xc3, 0x62, 0x6e, 0x68, 0xf8, 0x1f, 0x83, 0x71, 0xab, 0xdd, 0xdc, 0xc1, 0x4e, 0x36, 0x4a, - 0x19, 0xf8, 0x15, 0x2a, 0x40, 0xdc, 0xd4, 0x76, 0xb0, 0x99, 0x8d, 0x2d, 0x48, 0x4b, 0x99, 0xd3, - 0x4f, 0x8d, 0x14, 0xd5, 0xcb, 0xeb, 0x04, 0xa2, 0x30, 0x24, 0x7a, 0x0e, 0x62, 0x3c, 0xc5, 0x11, - 0x86, 0x27, 0x47, 0x63, 0x20, 0xb1, 0xa8, 0x50, 0x1c, 0x7a, 0x08, 0x92, 0xe4, 0x2f, 0xf3, 0xed, - 0x38, 0xb5, 0x39, 0x41, 0x04, 0xc4, 0xaf, 0x68, 0x0e, 0x12, 0x34, 0xcc, 0xea, 0x58, 0x94, 0x06, - 0xff, 0x9a, 0x2c, 0x4c, 0x1d, 0xef, 0x6a, 0x6d, 0xd3, 0x53, 0x6f, 0x6a, 0x66, 0x1b, 0xd3, 0x80, - 0x49, 0x2a, 0x69, 0x2e, 0xfc, 0x34, 0x91, 0xa1, 0x79, 0x48, 0xb1, 0xa8, 0x34, 0xac, 0x3a, 0x7e, - 0x91, 0x66, 0x9f, 0xb8, 0xc2, 0x02, 0xb5, 0x4c, 0x24, 0xe4, 0xf6, 0xd7, 0x5d, 0xdb, 0x12, 0x4b, - 0x4b, 0x6f, 0x41, 0x04, 0xf4, 0xf6, 0xcf, 0xf4, 0x27, 0xbe, 0x87, 0x87, 0x4f, 0xaf, 0x3f, 0x16, - 0x17, 0xbf, 0x15, 0x81, 0x18, 0xdd, 0x6f, 0x53, 0x90, 0xda, 0xba, 0x56, 0x2b, 0xa9, 0xab, 0xd5, - 0xed, 0xe2, 0x7a, 0x49, 0x96, 0x50, 0x06, 0x80, 0x0a, 0x2e, 0xad, 0x57, 0x0b, 0x5b, 0x72, 0xc4, - 0xbf, 0x2e, 0x6f, 0x6c, 0x9d, 0x3f, 0x2b, 0x47, 0x7d, 0xc0, 0x36, 0x13, 0xc4, 0x82, 0x0a, 0x67, - 0x4e, 0xcb, 0x71, 0x24, 0x43, 0x9a, 0x11, 0x94, 0xaf, 0x96, 0x56, 0xcf, 0x9f, 0x95, 0xc7, 0x7b, - 0x25, 0x67, 0x4e, 0xcb, 0x13, 0x68, 0x12, 0x92, 0x54, 0x52, 0xac, 0x56, 0xd7, 0xe5, 0x84, 0xcf, - 0xb9, 0xb9, 0xa5, 0x94, 0x37, 0xd6, 0xe4, 0xa4, 0xcf, 0xb9, 0xa6, 0x54, 0xb7, 0x6b, 0x32, 0xf8, - 0x0c, 0x95, 0xd2, 0xe6, 0x66, 0x61, 0xad, 0x24, 0xa7, 0x7c, 0x8d, 0xe2, 0xb5, 0xad, 0xd2, 0xa6, - 0x9c, 0xee, 0x31, 0xeb, 0xcc, 0x69, 0x79, 0xd2, 0xbf, 0x45, 0x69, 0x63, 0xbb, 0x22, 0x67, 0xd0, - 0x34, 0x4c, 0xb2, 0x5b, 0x08, 0x23, 0xa6, 0xfa, 0x44, 0xe7, 0xcf, 0xca, 0x72, 0xd7, 0x10, 0xc6, - 0x32, 0xdd, 0x23, 0x38, 0x7f, 0x56, 0x46, 0x8b, 0x2b, 0x10, 0xa7, 0xd1, 0x85, 0x10, 0x64, 0xd6, - 0x0b, 0xc5, 0xd2, 0xba, 0x5a, 0xad, 0x6d, 0x95, 0xab, 0x1b, 0x85, 0x75, 0x59, 0xea, 0xca, 0x94, - 0xd2, 0xa7, 0xb6, 0xcb, 0x4a, 0x69, 0x55, 0x8e, 0x04, 0x65, 0xb5, 0x52, 0x61, 0xab, 0xb4, 0x2a, - 0x47, 0x17, 0x75, 0x98, 0x1d, 0x96, 0x67, 0x86, 0xee, 0x8c, 0xc0, 0x12, 0x47, 0x0e, 0x58, 0x62, - 0xca, 0x35, 0xb0, 0xc4, 0x5f, 0x96, 0x60, 0x66, 0x48, 0xae, 0x1d, 0x7a, 0x93, 0xe7, 0x21, 0xce, - 0x42, 0x94, 0x55, 0x9f, 0x27, 0x86, 0x26, 0x6d, 0x1a, 0xb0, 0x03, 0x15, 0x88, 0xe2, 0x82, 0x15, - 0x38, 0x7a, 0x40, 0x05, 0x26, 0x14, 0x03, 0x46, 0xbe, 0x2c, 0x41, 0xf6, 0x20, 0xee, 0x90, 0x44, - 0x11, 0xe9, 0x49, 0x14, 0x17, 0xfb, 0x0d, 0x38, 0x71, 0xf0, 0x1c, 0x06, 0xac, 0x78, 0x5d, 0x82, - 0x63, 0xc3, 0x1b, 0x95, 0xa1, 0x36, 0x3c, 0x07, 0xe3, 0x4d, 0xec, 0xed, 0xd9, 0xa2, 0x58, 0x3f, - 0x36, 0xa4, 0x04, 0x90, 0xe1, 0x7e, 0x5f, 0x71, 0x54, 0xb0, 0x86, 0x44, 0x0f, 0xea, 0x36, 0x98, - 0x35, 0x03, 0x96, 0x7e, 0x3e, 0x02, 0x0f, 0x0c, 0x25, 0x1f, 0x6a, 0xe8, 0xc3, 0x00, 0x86, 0xd5, - 0x6a, 0x7b, 0xac, 0x20, 0xb3, 0xfc, 0x94, 0xa4, 0x12, 0xba, 0xf7, 0x49, 0xee, 0x69, 0x7b, 0xfe, - 0x78, 0x94, 0x8e, 0x03, 0x13, 0x51, 0x85, 0x0b, 0x5d, 0x43, 0x63, 0xd4, 0xd0, 0xdc, 0x01, 0x33, - 0x1d, 0xa8, 0x75, 0x4f, 0x83, 0xac, 0x9b, 0x06, 0xb6, 0x3c, 0xd5, 0xf5, 0x1c, 0xac, 0x35, 0x0d, - 0xab, 0x41, 0x13, 0x70, 0x22, 0x1f, 0xdf, 0xd5, 0x4c, 0x17, 0x2b, 0x53, 0x6c, 0x78, 0x53, 0x8c, - 0x12, 0x04, 0xad, 0x32, 0x4e, 0x00, 0x31, 0xde, 0x83, 0x60, 0xc3, 0x3e, 0x62, 0xf1, 0x6b, 0x13, - 0x90, 0x0a, 0xb4, 0x75, 0xe8, 0x04, 0xa4, 0xaf, 0x6b, 0x37, 0x35, 0x55, 0xb4, 0xea, 0xcc, 0x13, - 0x29, 0x22, 0xab, 0xf1, 0x76, 0xfd, 0x69, 0x98, 0xa5, 0x2a, 0x76, 0xdb, 0xc3, 0x8e, 0xaa, 0x9b, - 0x9a, 0xeb, 0x52, 0xa7, 0x25, 0xa8, 0x2a, 0x22, 0x63, 0x55, 0x32, 0xb4, 0x22, 0x46, 0xd0, 0x39, - 0x98, 0xa1, 0x88, 0x66, 0xdb, 0xf4, 0x8c, 0x96, 0x89, 0x55, 0xf2, 0xf0, 0xe0, 0xd2, 0x44, 0xec, - 0x5b, 0x36, 0x4d, 0x34, 0x2a, 0x5c, 0x81, 0x58, 0xe4, 0xa2, 0x55, 0x78, 0x98, 0xc2, 0x1a, 0xd8, - 0xc2, 0x8e, 0xe6, 0x61, 0x15, 0x7f, 0xa6, 0xad, 0x99, 0xae, 0xaa, 0x59, 0x75, 0x75, 0x4f, 0x73, - 0xf7, 0xb2, 0xb3, 0x84, 0xa0, 0x18, 0xc9, 0x4a, 0xca, 0x71, 0xa2, 0xb8, 0xc6, 0xf5, 0x4a, 0x54, - 0xad, 0x60, 0xd5, 0x3f, 0xa9, 0xb9, 0x7b, 0x28, 0x0f, 0xc7, 0x28, 0x8b, 0xeb, 0x39, 0x86, 0xd5, - 0x50, 0xf5, 0x3d, 0xac, 0xdf, 0x50, 0xdb, 0xde, 0xee, 0x85, 0xec, 0x43, 0xc1, 0xfb, 0x53, 0x0b, - 0x37, 0xa9, 0xce, 0x0a, 0x51, 0xd9, 0xf6, 0x76, 0x2f, 0xa0, 0x4d, 0x48, 0x93, 0xc5, 0x68, 0x1a, - 0x2f, 0x61, 0x75, 0xd7, 0x76, 0x68, 0x65, 0xc9, 0x0c, 0xd9, 0xd9, 0x01, 0x0f, 0x2e, 0x57, 0x39, - 0xa0, 0x62, 0xd7, 0x71, 0x3e, 0xbe, 0x59, 0x2b, 0x95, 0x56, 0x95, 0x94, 0x60, 0xb9, 0x64, 0x3b, - 0x24, 0xa0, 0x1a, 0xb6, 0xef, 0xe0, 0x14, 0x0b, 0xa8, 0x86, 0x2d, 0xdc, 0x7b, 0x0e, 0x66, 0x74, - 0x9d, 0xcd, 0xd9, 0xd0, 0x55, 0xde, 0xe2, 0xbb, 0x59, 0xb9, 0xc7, 0x59, 0xba, 0xbe, 0xc6, 0x14, - 0x78, 0x8c, 0xbb, 0xe8, 0x59, 0x78, 0xa0, 0xeb, 0xac, 0x20, 0x70, 0x7a, 0x60, 0x96, 0xfd, 0xd0, - 0x73, 0x30, 0xd3, 0xea, 0x0c, 0x02, 0x51, 0xcf, 0x1d, 0x5b, 0x9d, 0x7e, 0xd8, 0x49, 0xfa, 0xd8, - 0xe6, 0x60, 0x5d, 0xf3, 0x70, 0x3d, 0xfb, 0x60, 0x50, 0x3b, 0x30, 0x80, 0x4e, 0x81, 0xac, 0xeb, - 0x2a, 0xb6, 0xb4, 0x1d, 0x13, 0xab, 0x9a, 0x83, 0x2d, 0xcd, 0xcd, 0xce, 0x07, 0x95, 0x33, 0xba, - 0x5e, 0xa2, 0xa3, 0x05, 0x3a, 0x88, 0x9e, 0x84, 0x69, 0x7b, 0xe7, 0xba, 0xce, 0x22, 0x4b, 0x6d, - 0x39, 0x78, 0xd7, 0x78, 0x31, 0xfb, 0x28, 0x75, 0xd3, 0x14, 0x19, 0xa0, 0x71, 0x55, 0xa3, 0x62, - 0xf4, 0x04, 0xc8, 0xba, 0xbb, 0xa7, 0x39, 0x2d, 0x5a, 0xda, 0xdd, 0x96, 0xa6, 0xe3, 0xec, 0x49, - 0xa6, 0xca, 0xe4, 0x1b, 0x42, 0x4c, 0x22, 0xdb, 0xbd, 0x65, 0xec, 0x7a, 0x82, 0xf1, 0x71, 0x16, - 0xd9, 0x54, 0xc6, 0xd9, 0xae, 0xc2, 0x6c, 0xdb, 0x32, 0x2c, 0x0f, 0x3b, 0x2d, 0x07, 0x93, 0x26, - 0x9e, 0xed, 0xc4, 0xec, 0xbf, 0x4d, 0x1c, 0xd0, 0x86, 0x6f, 0x07, 0xb5, 0x59, 0x00, 0x28, 0x33, - 0xed, 0x41, 0xe1, 0x62, 0x1e, 0xd2, 0xc1, 0xb8, 0x40, 0x49, 0x60, 0x91, 0x21, 0x4b, 0xa4, 0xc6, - 0xae, 0x54, 0x57, 0x49, 0x75, 0x7c, 0xa1, 0x24, 0x47, 0x48, 0x95, 0x5e, 0x2f, 0x6f, 0x95, 0x54, - 0x65, 0x7b, 0x63, 0xab, 0x5c, 0x29, 0xc9, 0xd1, 0x27, 0x93, 0x89, 0x77, 0x26, 0xe4, 0xdb, 0xb7, - 0x6f, 0xdf, 0x8e, 0x2c, 0x7e, 0x2f, 0x02, 0x99, 0xde, 0xce, 0x18, 0x7d, 0x1c, 0x1e, 0x14, 0x8f, - 0xb1, 0x2e, 0xf6, 0xd4, 0x5b, 0x86, 0x43, 0x43, 0xb5, 0xa9, 0xb1, 0xde, 0xd2, 0xf7, 0xf2, 0x2c, - 0xd7, 0xda, 0xc4, 0xde, 0x15, 0xc3, 0x21, 0x81, 0xd8, 0xd4, 0x3c, 0xb4, 0x0e, 0xf3, 0x96, 0xad, - 0xba, 0x9e, 0x66, 0xd5, 0x35, 0xa7, 0xae, 0x76, 0x0f, 0x10, 0x54, 0x4d, 0xd7, 0xb1, 0xeb, 0xda, - 0xac, 0x44, 0xf8, 0x2c, 0x1f, 0xb1, 0xec, 0x4d, 0xae, 0xdc, 0xcd, 0x9d, 0x05, 0xae, 0xda, 0x17, - 0x11, 0xd1, 0x83, 0x22, 0xe2, 0x21, 0x48, 0x36, 0xb5, 0x96, 0x8a, 0x2d, 0xcf, 0xe9, 0xd0, 0x7e, - 0x2e, 0xa1, 0x24, 0x9a, 0x5a, 0xab, 0x44, 0xae, 0x3f, 0xbc, 0x35, 0x08, 0xfa, 0xf1, 0x5f, 0xa3, - 0x90, 0x0e, 0xf6, 0x74, 0xa4, 0x45, 0xd6, 0x69, 0xfe, 0x96, 0xe8, 0x0e, 0x7f, 0xe4, 0xd0, 0x0e, - 0x70, 0x79, 0x85, 0x24, 0xf6, 0xfc, 0x38, 0xeb, 0xb4, 0x14, 0x86, 0x24, 0x45, 0x95, 0xec, 0x69, - 0xcc, 0xfa, 0xf7, 0x84, 0xc2, 0xaf, 0xd0, 0x1a, 0x8c, 0x5f, 0x77, 0x29, 0xf7, 0x38, 0xe5, 0x7e, - 0xf4, 0x70, 0xee, 0xcb, 0x9b, 0x94, 0x3c, 0x79, 0x79, 0x53, 0xdd, 0xa8, 0x2a, 0x95, 0xc2, 0xba, - 0xc2, 0xe1, 0xe8, 0x38, 0xc4, 0x4c, 0xed, 0xa5, 0x4e, 0x6f, 0x09, 0xa0, 0xa2, 0x51, 0x1d, 0x7f, - 0x1c, 0x62, 0xb7, 0xb0, 0x76, 0xa3, 0x37, 0xf1, 0x52, 0xd1, 0x87, 0x18, 0xfa, 0xa7, 0x20, 0x4e, - 0xfd, 0x85, 0x00, 0xb8, 0xc7, 0xe4, 0x31, 0x94, 0x80, 0xd8, 0x4a, 0x55, 0x21, 0xe1, 0x2f, 0x43, - 0x9a, 0x49, 0xd5, 0x5a, 0xb9, 0xb4, 0x52, 0x92, 0x23, 0x8b, 0xe7, 0x60, 0x9c, 0x39, 0x81, 0x6c, - 0x0d, 0xdf, 0x0d, 0xf2, 0x18, 0xbf, 0xe4, 0x1c, 0x92, 0x18, 0xdd, 0xae, 0x14, 0x4b, 0x8a, 0x1c, - 0x09, 0x2e, 0xaf, 0x0b, 0xe9, 0x60, 0x3b, 0xf7, 0xb3, 0x89, 0xa9, 0xef, 0x48, 0x90, 0x0a, 0xb4, - 0x67, 0xa4, 0x31, 0xd0, 0x4c, 0xd3, 0xbe, 0xa5, 0x6a, 0xa6, 0xa1, 0xb9, 0x3c, 0x28, 0x80, 0x8a, - 0x0a, 0x44, 0x32, 0xea, 0xa2, 0xfd, 0x4c, 0x8c, 0x7f, 0x4d, 0x02, 0xb9, 0xbf, 0xb5, 0xeb, 0x33, - 0x50, 0xfa, 0xb9, 0x1a, 0xf8, 0xaa, 0x04, 0x99, 0xde, 0x7e, 0xae, 0xcf, 0xbc, 0x13, 0x3f, 0x57, - 0xf3, 0xde, 0x8a, 0xc0, 0x64, 0x4f, 0x17, 0x37, 0xaa, 0x75, 0x9f, 0x81, 0x69, 0xa3, 0x8e, 0x9b, - 0x2d, 0xdb, 0xc3, 0x96, 0xde, 0x51, 0x4d, 0x7c, 0x13, 0x9b, 0xd9, 0x45, 0x9a, 0x28, 0x4e, 0x1d, - 0xde, 0x27, 0x2e, 0x97, 0xbb, 0xb8, 0x75, 0x02, 0xcb, 0xcf, 0x94, 0x57, 0x4b, 0x95, 0x5a, 0x75, - 0xab, 0xb4, 0xb1, 0x72, 0x4d, 0xdd, 0xde, 0xf8, 0x85, 0x8d, 0xea, 0x95, 0x0d, 0x45, 0x36, 0xfa, - 0xd4, 0x3e, 0xc4, 0xad, 0x5e, 0x03, 0xb9, 0xdf, 0x28, 0xf4, 0x20, 0x0c, 0x33, 0x4b, 0x1e, 0x43, - 0x33, 0x30, 0xb5, 0x51, 0x55, 0x37, 0xcb, 0xab, 0x25, 0xb5, 0x74, 0xe9, 0x52, 0x69, 0x65, 0x6b, - 0x93, 0x3d, 0x38, 0xfb, 0xda, 0x5b, 0xbd, 0x9b, 0xfa, 0x95, 0x28, 0xcc, 0x0c, 0xb1, 0x04, 0x15, - 0x78, 0xcf, 0xce, 0x1e, 0x23, 0x3e, 0x36, 0x8a, 0xf5, 0xcb, 0xa4, 0x2b, 0xa8, 0x69, 0x8e, 0xc7, - 0x5b, 0xfc, 0x27, 0x80, 0x78, 0xc9, 0xf2, 0x8c, 0x5d, 0x03, 0x3b, 0xfc, 0x9c, 0x81, 0x35, 0xf2, - 0x53, 0x5d, 0x39, 0x3b, 0x6a, 0xf8, 0x28, 0xa0, 0x96, 0xed, 0x1a, 0x9e, 0x71, 0x13, 0xab, 0x86, - 0x25, 0x0e, 0x25, 0x48, 0x63, 0x1f, 0x53, 0x64, 0x31, 0x52, 0xb6, 0x3c, 0x5f, 0xdb, 0xc2, 0x0d, - 0xad, 0x4f, 0x9b, 0x24, 0xf0, 0xa8, 0x22, 0x8b, 0x11, 0x5f, 0xfb, 0x04, 0xa4, 0xeb, 0x76, 0x9b, - 0xb4, 0x49, 0x4c, 0x8f, 0xd4, 0x0b, 0x49, 0x49, 0x31, 0x99, 0xaf, 0xc2, 0xfb, 0xd8, 0xee, 0x69, - 0x48, 0x5a, 0x49, 0x31, 0x19, 0x53, 0x79, 0x1c, 0xa6, 0xb4, 0x46, 0xc3, 0x21, 0xe4, 0x82, 0x88, - 0x75, 0xe6, 0x19, 0x5f, 0x4c, 0x15, 0xe7, 0x2e, 0x43, 0x42, 0xf8, 0x81, 0x94, 0x64, 0xe2, 0x09, - 0xb5, 0xc5, 0xce, 0xa4, 0x22, 0x4b, 0x49, 0x25, 0x61, 0x89, 0xc1, 0x13, 0x90, 0x36, 0x5c, 0xb5, - 0x7b, 0x38, 0x1a, 0x59, 0x88, 0x2c, 0x25, 0x94, 0x94, 0xe1, 0xfa, 0xa7, 0x61, 0x8b, 0xaf, 0x47, - 0x20, 0xd3, 0x7b, 0xb8, 0x8b, 0x56, 0x21, 0x61, 0xda, 0xba, 0x46, 0x43, 0x8b, 0xbd, 0x59, 0x58, - 0x0a, 0x39, 0x0f, 0x5e, 0x5e, 0xe7, 0xfa, 0x8a, 0x8f, 0x9c, 0xfb, 0x67, 0x09, 0x12, 0x42, 0x8c, - 0x8e, 0x41, 0xac, 0xa5, 0x79, 0x7b, 0x94, 0x2e, 0x5e, 0x8c, 0xc8, 0x92, 0x42, 0xaf, 0x89, 0xdc, - 0x6d, 0x69, 0x16, 0x0d, 0x01, 0x2e, 0x27, 0xd7, 0x64, 0x5d, 0x4d, 0xac, 0xd5, 0x69, 0xdb, 0x6f, - 0x37, 0x9b, 0xd8, 0xf2, 0x5c, 0xb1, 0xae, 0x5c, 0xbe, 0xc2, 0xc5, 0xe8, 0x29, 0x98, 0xf6, 0x1c, - 0xcd, 0x30, 0x7b, 0x74, 0x63, 0x54, 0x57, 0x16, 0x03, 0xbe, 0x72, 0x1e, 0x8e, 0x0b, 0xde, 0x3a, - 0xf6, 0x34, 0x7d, 0x0f, 0xd7, 0xbb, 0xa0, 0x71, 0x7a, 0x72, 0xf8, 0x20, 0x57, 0x58, 0xe5, 0xe3, - 0x02, 0xbb, 0xf8, 0x03, 0x09, 0xa6, 0xc5, 0x83, 0x4a, 0xdd, 0x77, 0x56, 0x05, 0x40, 0xb3, 0x2c, - 0xdb, 0x0b, 0xba, 0x6b, 0x30, 0x94, 0x07, 0x70, 0xcb, 0x05, 0x1f, 0xa4, 0x04, 0x08, 0xe6, 0x9a, - 0x00, 0xdd, 0x91, 0x03, 0xdd, 0x36, 0x0f, 0x29, 0x7e, 0x72, 0x4f, 0x5f, 0xff, 0xb0, 0x47, 0x5b, - 0x60, 0x22, 0xf2, 0x44, 0x83, 0x66, 0x21, 0xbe, 0x83, 0x1b, 0x86, 0xc5, 0xcf, 0x13, 0xd9, 0x85, - 0x38, 0xa5, 0x8c, 0xf9, 0xa7, 0x94, 0xc5, 0xab, 0x30, 0xa3, 0xdb, 0xcd, 0x7e, 0x73, 0x8b, 0x72, - 0xdf, 0xe3, 0xb5, 0xfb, 0x49, 0xe9, 0x05, 0xe8, 0xb6, 0x98, 0x5f, 0x8e, 0x44, 0xd7, 0x6a, 0xc5, - 0xaf, 0x46, 0xe6, 0xd6, 0x18, 0xae, 0x26, 0xa6, 0xa9, 0xe0, 0x5d, 0x13, 0xeb, 0xc4, 0x74, 0xf8, - 0xf1, 0x63, 0xf0, 0xb1, 0x86, 0xe1, 0xed, 0xb5, 0x77, 0x96, 0x75, 0xbb, 0x79, 0xaa, 0x61, 0x37, - 0xec, 0xee, 0xeb, 0x2e, 0x72, 0x45, 0x2f, 0xe8, 0x2f, 0xfe, 0xca, 0x2b, 0xe9, 0x4b, 0xe7, 0x42, - 0xdf, 0x8f, 0xe5, 0x37, 0x60, 0x86, 0x2b, 0xab, 0xf4, 0xcc, 0x9d, 0x3d, 0x1a, 0xa0, 0x43, 0xcf, - 0x5d, 0xb2, 0xdf, 0x78, 0x9b, 0xd6, 0x6a, 0x65, 0x9a, 0x43, 0xc9, 0x18, 0x7b, 0x80, 0xc8, 0x2b, - 0xf0, 0x40, 0x0f, 0x1f, 0xdb, 0x97, 0xd8, 0x09, 0x61, 0xfc, 0x1e, 0x67, 0x9c, 0x09, 0x30, 0x6e, - 0x72, 0x68, 0x7e, 0x05, 0x26, 0x8f, 0xc2, 0xf5, 0x8f, 0x9c, 0x2b, 0x8d, 0x83, 0x24, 0x6b, 0x30, - 0x45, 0x49, 0xf4, 0xb6, 0xeb, 0xd9, 0x4d, 0x9a, 0xf4, 0x0e, 0xa7, 0xf9, 0xa7, 0xb7, 0xd9, 0x46, - 0xc9, 0x10, 0xd8, 0x8a, 0x8f, 0xca, 0xe7, 0x81, 0xbe, 0x66, 0xa8, 0x63, 0xdd, 0x0c, 0x61, 0x78, - 0x83, 0x1b, 0xe2, 0xeb, 0xe7, 0x3f, 0x0d, 0xb3, 0xe4, 0x37, 0xcd, 0x49, 0x41, 0x4b, 0xc2, 0x4f, - 0x99, 0xb2, 0x3f, 0x78, 0x99, 0xed, 0xc5, 0x19, 0x9f, 0x20, 0x60, 0x53, 0x60, 0x15, 0x1b, 0xd8, - 0xf3, 0xb0, 0xe3, 0xaa, 0x9a, 0x39, 0xcc, 0xbc, 0xc0, 0x63, 0x7a, 0xf6, 0x8b, 0xef, 0xf6, 0xae, - 0xe2, 0x1a, 0x43, 0x16, 0x4c, 0x33, 0xbf, 0x0d, 0x0f, 0x0e, 0x89, 0x8a, 0x11, 0x38, 0x5f, 0xe1, - 0x9c, 0xb3, 0x03, 0x91, 0x41, 0x68, 0x6b, 0x20, 0xe4, 0xfe, 0x5a, 0x8e, 0xc0, 0xf9, 0x47, 0x9c, - 0x13, 0x71, 0xac, 0x58, 0x52, 0xc2, 0x78, 0x19, 0xa6, 0x6f, 0x62, 0x67, 0xc7, 0x76, 0xf9, 0xd1, - 0xc8, 0x08, 0x74, 0xaf, 0x72, 0xba, 0x29, 0x0e, 0xa4, 0x67, 0x25, 0x84, 0xeb, 0x59, 0x48, 0xec, - 0x6a, 0x3a, 0x1e, 0x81, 0xe2, 0x4b, 0x9c, 0x62, 0x82, 0xe8, 0x13, 0x68, 0x01, 0xd2, 0x0d, 0x9b, - 0x97, 0xa5, 0x70, 0xf8, 0x6b, 0x1c, 0x9e, 0x12, 0x18, 0x4e, 0xd1, 0xb2, 0x5b, 0x6d, 0x93, 0xd4, - 0xac, 0x70, 0x8a, 0x3f, 0x16, 0x14, 0x02, 0xc3, 0x29, 0x8e, 0xe0, 0xd6, 0x3f, 0x11, 0x14, 0x6e, - 0xc0, 0x9f, 0xcf, 0x43, 0xca, 0xb6, 0xcc, 0x8e, 0x6d, 0x8d, 0x62, 0xc4, 0x9f, 0x72, 0x06, 0xe0, - 0x10, 0x42, 0x70, 0x11, 0x92, 0xa3, 0x2e, 0xc4, 0x9f, 0xbd, 0x2b, 0xb6, 0x87, 0x58, 0x81, 0x35, - 0x98, 0x12, 0x09, 0xca, 0xb0, 0xad, 0x11, 0x28, 0xfe, 0x9c, 0x53, 0x64, 0x02, 0x30, 0x3e, 0x0d, - 0x0f, 0xbb, 0x5e, 0x03, 0x8f, 0x42, 0xf2, 0xba, 0x98, 0x06, 0x87, 0x70, 0x57, 0xee, 0x60, 0x4b, - 0xdf, 0x1b, 0x8d, 0xe1, 0x2b, 0xc2, 0x95, 0x02, 0x43, 0x28, 0x56, 0x60, 0xb2, 0xa9, 0x39, 0xee, - 0x9e, 0x66, 0x8e, 0xb4, 0x1c, 0x7f, 0xc1, 0x39, 0xd2, 0x3e, 0x88, 0x7b, 0xa4, 0x6d, 0x1d, 0x85, - 0xe6, 0xab, 0xc2, 0x23, 0x01, 0x18, 0xdf, 0x7a, 0xae, 0x47, 0x0f, 0xa0, 0x8e, 0xc2, 0xf6, 0x35, - 0xb1, 0xf5, 0x18, 0xb6, 0x12, 0x64, 0xbc, 0x08, 0x49, 0xd7, 0x78, 0x69, 0x24, 0x9a, 0xbf, 0x14, - 0x2b, 0x4d, 0x01, 0x04, 0x7c, 0x0d, 0x8e, 0x0f, 0x2d, 0x13, 0x23, 0x90, 0xfd, 0x15, 0x27, 0x3b, - 0x36, 0xa4, 0x54, 0xf0, 0x94, 0x70, 0x54, 0xca, 0xbf, 0x16, 0x29, 0x01, 0xf7, 0x71, 0xd5, 0xc8, - 0x83, 0x82, 0xab, 0xed, 0x1e, 0xcd, 0x6b, 0x7f, 0x23, 0xbc, 0xc6, 0xb0, 0x3d, 0x5e, 0xdb, 0x82, - 0x63, 0x9c, 0xf1, 0x68, 0xeb, 0xfa, 0x75, 0x91, 0x58, 0x19, 0x7a, 0xbb, 0x77, 0x75, 0x7f, 0x11, - 0xe6, 0x7c, 0x77, 0x8a, 0x8e, 0xd4, 0x55, 0x9b, 0x5a, 0x6b, 0x04, 0xe6, 0x6f, 0x70, 0x66, 0x91, - 0xf1, 0xfd, 0x96, 0xd6, 0xad, 0x68, 0x2d, 0x42, 0x7e, 0x15, 0xb2, 0x82, 0xbc, 0x6d, 0x39, 0x58, - 0xb7, 0x1b, 0x96, 0xf1, 0x12, 0xae, 0x8f, 0x40, 0xfd, 0xb7, 0x7d, 0x4b, 0xb5, 0x1d, 0x80, 0x13, - 0xe6, 0x32, 0xc8, 0x7e, 0xaf, 0xa2, 0x1a, 0xcd, 0x96, 0xed, 0x78, 0x21, 0x8c, 0x7f, 0x27, 0x56, - 0xca, 0xc7, 0x95, 0x29, 0x2c, 0x5f, 0x82, 0x0c, 0xbd, 0x1c, 0x35, 0x24, 0xff, 0x9e, 0x13, 0x4d, - 0x76, 0x51, 0x3c, 0x71, 0xe8, 0x76, 0xb3, 0xa5, 0x39, 0xa3, 0xe4, 0xbf, 0x6f, 0x8a, 0xc4, 0xc1, - 0x21, 0x3c, 0x71, 0x78, 0x9d, 0x16, 0x26, 0xd5, 0x7e, 0x04, 0x86, 0x6f, 0x89, 0xc4, 0x21, 0x30, - 0x9c, 0x42, 0x34, 0x0c, 0x23, 0x50, 0xfc, 0x83, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0xa9, 0x6e, 0xa1, - 0x75, 0x70, 0xc3, 0x70, 0x3d, 0x87, 0xf5, 0xc1, 0x87, 0x53, 0x7d, 0xfb, 0xdd, 0xde, 0x26, 0x4c, - 0x09, 0x40, 0xf3, 0x97, 0x61, 0xaa, 0xaf, 0xc5, 0x40, 0x61, 0xdf, 0x2c, 0x64, 0x7f, 0xf9, 0x7d, - 0x9e, 0x8c, 0x7a, 0x3b, 0x8c, 0xfc, 0x3a, 0x59, 0xf7, 0xde, 0x3e, 0x20, 0x9c, 0xec, 0xe5, 0xf7, - 0xfd, 0xa5, 0xef, 0x69, 0x03, 0xf2, 0x97, 0x60, 0xb2, 0xa7, 0x07, 0x08, 0xa7, 0xfa, 0x15, 0x4e, - 0x95, 0x0e, 0xb6, 0x00, 0xf9, 0x73, 0x10, 0x23, 0xf5, 0x3c, 0x1c, 0xfe, 0xab, 0x1c, 0x4e, 0xd5, - 0xf3, 0x9f, 0x80, 0x84, 0xa8, 0xe3, 0xe1, 0xd0, 0x5f, 0xe3, 0x50, 0x1f, 0x42, 0xe0, 0xa2, 0x86, - 0x87, 0xc3, 0x3f, 0x27, 0xe0, 0x02, 0x42, 0xe0, 0xa3, 0xbb, 0xf0, 0xbb, 0xbf, 0x11, 0xe3, 0x79, - 0x58, 0xf8, 0xee, 0x22, 0x4c, 0xf0, 0xe2, 0x1d, 0x8e, 0xfe, 0x3c, 0xbf, 0xb9, 0x40, 0xe4, 0x9f, - 0x81, 0xf8, 0x88, 0x0e, 0xff, 0x4d, 0x0e, 0x65, 0xfa, 0xf9, 0x15, 0x48, 0x05, 0x0a, 0x76, 0x38, - 0xfc, 0xb7, 0x38, 0x3c, 0x88, 0x22, 0xa6, 0xf3, 0x82, 0x1d, 0x4e, 0xf0, 0xdb, 0xc2, 0x74, 0x8e, - 0x20, 0x6e, 0x13, 0xb5, 0x3a, 0x1c, 0xfd, 0x3b, 0xc2, 0xeb, 0x02, 0x92, 0x7f, 0x1e, 0x92, 0x7e, - 0xfe, 0x0d, 0xc7, 0xff, 0x2e, 0xc7, 0x77, 0x31, 0xc4, 0x03, 0x81, 0xfc, 0x1f, 0x4e, 0xf1, 0x7b, - 0xc2, 0x03, 0x01, 0x14, 0xd9, 0x46, 0xfd, 0x35, 0x3d, 0x9c, 0xe9, 0xf7, 0xc5, 0x36, 0xea, 0x2b, - 0xe9, 0x64, 0x35, 0x69, 0x1a, 0x0c, 0xa7, 0xf8, 0x03, 0xb1, 0x9a, 0x54, 0x9f, 0x98, 0xd1, 0x5f, - 0x24, 0xc3, 0x39, 0xfe, 0x50, 0x98, 0xd1, 0x57, 0x23, 0xf3, 0x35, 0x40, 0x83, 0x05, 0x32, 0x9c, - 0xef, 0x0b, 0x9c, 0x6f, 0x7a, 0xa0, 0x3e, 0xe6, 0xaf, 0xc0, 0xb1, 0xe1, 0xc5, 0x31, 0x9c, 0xf5, - 0x8b, 0xef, 0xf7, 0x3d, 0xce, 0x04, 0x6b, 0x63, 0x7e, 0xab, 0x9b, 0x65, 0x83, 0x85, 0x31, 0x9c, - 0xf6, 0x95, 0xf7, 0x7b, 0x13, 0x6d, 0xb0, 0x2e, 0xe6, 0x0b, 0x00, 0xdd, 0x9a, 0x14, 0xce, 0xf5, - 0x2a, 0xe7, 0x0a, 0x80, 0xc8, 0xd6, 0xe0, 0x25, 0x29, 0x1c, 0xff, 0x25, 0xb1, 0x35, 0x38, 0x82, - 0x6c, 0x0d, 0x51, 0x8d, 0xc2, 0xd1, 0xaf, 0x89, 0xad, 0x21, 0x20, 0xf9, 0x8b, 0x90, 0xb0, 0xda, - 0xa6, 0x49, 0x62, 0x0b, 0x1d, 0xfe, 0x19, 0x51, 0xf6, 0x47, 0x1f, 0x70, 0xb0, 0x00, 0xe4, 0xcf, - 0x41, 0x1c, 0x37, 0x77, 0x70, 0x3d, 0x0c, 0xf9, 0xef, 0x1f, 0x88, 0x7c, 0x42, 0xb4, 0xf3, 0xcf, - 0x03, 0xb0, 0x87, 0x69, 0xfa, 0x96, 0x28, 0x04, 0xfb, 0x1f, 0x1f, 0xf0, 0x2f, 0x14, 0xba, 0x90, - 0x2e, 0x01, 0xfb, 0xde, 0xe1, 0x70, 0x82, 0x77, 0x7b, 0x09, 0xe8, 0x03, 0xf8, 0xb3, 0x30, 0x71, - 0xdd, 0xb5, 0x2d, 0x4f, 0x6b, 0x84, 0xa1, 0xff, 0x93, 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xd3, 0x76, - 0xb0, 0xa7, 0x35, 0xdc, 0x30, 0xec, 0x7f, 0x71, 0xac, 0x0f, 0x20, 0x60, 0x5d, 0x73, 0xbd, 0x51, - 0xe6, 0xfd, 0xdf, 0x02, 0x2c, 0x00, 0xc4, 0x68, 0xf2, 0xfb, 0x06, 0xee, 0x84, 0x61, 0xdf, 0x13, - 0x46, 0x73, 0xfd, 0xfc, 0x27, 0x20, 0x49, 0x7e, 0xb2, 0xaf, 0x76, 0x42, 0xc0, 0xff, 0xc3, 0xc1, - 0x5d, 0x04, 0xb9, 0xb3, 0xeb, 0xd5, 0x3d, 0x23, 0xdc, 0xd9, 0xff, 0xcb, 0x57, 0x5a, 0xe8, 0xe7, - 0x0b, 0x90, 0x72, 0xbd, 0x7a, 0xbd, 0xcd, 0x3b, 0x9a, 0x10, 0xf8, 0x8f, 0x3f, 0xf0, 0x1f, 0x72, - 0x7d, 0x4c, 0xf1, 0xc4, 0xf0, 0xc3, 0x3a, 0x58, 0xb3, 0xd7, 0x6c, 0x76, 0x4c, 0x07, 0xdf, 0x99, - 0x82, 0x93, 0xba, 0xdd, 0xdc, 0xb1, 0xdd, 0x53, 0x2c, 0xa1, 0xf8, 0xe9, 0xe4, 0x94, 0x70, 0x1f, - 0x3f, 0x6d, 0xf3, 0xdd, 0x39, 0x77, 0xb4, 0x63, 0xba, 0xc5, 0x1f, 0x4d, 0x42, 0x62, 0x45, 0x73, - 0x3d, 0xed, 0x96, 0xd6, 0x41, 0x27, 0x21, 0x51, 0xb6, 0xbc, 0x33, 0xa7, 0x6b, 0x9e, 0x43, 0x5f, - 0x33, 0x45, 0x8b, 0xc9, 0x7b, 0x77, 0xe6, 0xe3, 0x06, 0x91, 0x29, 0xfe, 0x10, 0x7a, 0x04, 0xe2, - 0xf4, 0x37, 0x3d, 0xa9, 0x8c, 0x16, 0x27, 0xdf, 0xb8, 0x33, 0x3f, 0xd6, 0xd5, 0x63, 0x63, 0xe8, - 0x1a, 0xa4, 0x2a, 0x9d, 0x6d, 0xc3, 0xf2, 0xce, 0x9f, 0x25, 0x74, 0xc4, 0x01, 0xb1, 0xe2, 0x33, - 0xf7, 0xee, 0xcc, 0x9f, 0x39, 0xd0, 0x40, 0x52, 0x16, 0xbb, 0x13, 0x13, 0x68, 0xfa, 0xf5, 0x62, - 0x90, 0x0b, 0x5d, 0x81, 0x84, 0xb8, 0x64, 0x27, 0xfe, 0xc5, 0x8b, 0xdc, 0x84, 0xfb, 0xe2, 0xf6, - 0xc9, 0xd0, 0x2f, 0x41, 0xba, 0xd2, 0xb9, 0x64, 0xda, 0x1a, 0xf7, 0x41, 0x7c, 0x41, 0x5a, 0x8a, - 0x14, 0x2f, 0xdc, 0xbb, 0x33, 0x7f, 0x76, 0x64, 0x62, 0x0e, 0xa7, 0xcc, 0x3d, 0x6c, 0xe8, 0x05, - 0x48, 0xfa, 0xd7, 0xf4, 0x9d, 0x42, 0xa4, 0xf8, 0x71, 0x6e, 0xf7, 0xfd, 0xd1, 0x77, 0xe9, 0x02, - 0x96, 0x33, 0x77, 0x4f, 0x2c, 0x48, 0x4b, 0xd2, 0xfd, 0x58, 0xce, 0x7d, 0xd2, 0xc3, 0x16, 0xb0, - 0xfc, 0xfc, 0x59, 0xfa, 0x12, 0x43, 0xba, 0x5f, 0xcb, 0x39, 0x7d, 0x97, 0x0e, 0x5d, 0x86, 0x89, - 0x4a, 0xa7, 0xd8, 0xf1, 0xb0, 0x4b, 0xbf, 0xea, 0x49, 0x17, 0x9f, 0xbe, 0x77, 0x67, 0xfe, 0xa3, - 0x23, 0xb2, 0x52, 0x9c, 0x22, 0x08, 0xd0, 0x02, 0xa4, 0x36, 0x6c, 0xa7, 0xa9, 0x99, 0x8c, 0x0f, - 0xd8, 0x4b, 0x99, 0x80, 0x08, 0x6d, 0x93, 0x99, 0xb0, 0xd5, 0x76, 0xe9, 0xff, 0x23, 0xfc, 0x14, - 0x31, 0xd9, 0x65, 0x42, 0x06, 0xc4, 0x2b, 0x9d, 0x8a, 0xd6, 0xca, 0xa6, 0xe9, 0x1b, 0x83, 0x87, - 0x97, 0x7d, 0x84, 0xd8, 0x5b, 0xcb, 0x74, 0x9c, 0x7e, 0x5a, 0x51, 0x3c, 0x7b, 0xef, 0xce, 0xfc, - 0xd3, 0x23, 0xdf, 0xb1, 0xa2, 0xb5, 0xe8, 0xed, 0xd8, 0x1d, 0xd0, 0x37, 0x25, 0xb2, 0xb1, 0xd8, - 0xa9, 0x2b, 0xb9, 0xe3, 0x24, 0xbd, 0xe3, 0x23, 0x43, 0xef, 0xe8, 0x6b, 0xb1, 0xfb, 0x5a, 0x9f, - 0x7d, 0xf3, 0x08, 0x33, 0x65, 0x4f, 0x36, 0xe4, 0xd6, 0xbf, 0xfe, 0xe6, 0x7d, 0x6f, 0x5a, 0xdf, - 0x02, 0xf4, 0xb2, 0x04, 0x93, 0x95, 0xce, 0x06, 0xaf, 0xb1, 0xc4, 0xf2, 0x0c, 0xff, 0x6a, 0x7d, - 0x98, 0xe5, 0x01, 0x3d, 0x66, 0xfb, 0xf9, 0xcf, 0xbe, 0x39, 0x7f, 0x7a, 0x64, 0x23, 0x68, 0x0a, - 0xa2, 0x36, 0xf4, 0xde, 0x13, 0x7d, 0x8e, 0x5a, 0x51, 0x22, 0xf5, 0xba, 0x8e, 0xeb, 0xc4, 0x8a, - 0xa9, 0x43, 0xac, 0x08, 0xe8, 0x31, 0x2b, 0xf2, 0x24, 0xea, 0xef, 0xdf, 0x92, 0x00, 0x1f, 0xaa, - 0xc2, 0x38, 0xf3, 0x30, 0xfd, 0xa2, 0x2c, 0x79, 0xc4, 0x30, 0xec, 0x2e, 0x8e, 0xc2, 0x69, 0xe6, - 0x2e, 0x00, 0x74, 0x63, 0x0c, 0xc9, 0x10, 0xbd, 0x81, 0x3b, 0xfc, 0xb3, 0x41, 0xf2, 0x13, 0xcd, - 0x76, 0x3f, 0x8b, 0x95, 0x96, 0x62, 0xfc, 0x5b, 0xd7, 0x7c, 0xe4, 0x82, 0x34, 0xf7, 0x1c, 0xc8, - 0xfd, 0xb1, 0x72, 0x24, 0xbc, 0x02, 0x68, 0x70, 0xc5, 0x82, 0x0c, 0x71, 0xc6, 0xf0, 0x58, 0x90, - 0x21, 0x75, 0x5a, 0xee, 0xfa, 0xfc, 0x8a, 0x61, 0xba, 0xb6, 0x35, 0xc0, 0xd9, 0xef, 0xff, 0x9f, - 0x8e, 0x73, 0x31, 0x07, 0xe3, 0x4c, 0x48, 0xe6, 0x52, 0xa6, 0xe5, 0x83, 0x56, 0x39, 0x85, 0x5d, - 0x14, 0xd7, 0xdf, 0xb8, 0x9b, 0x1b, 0xfb, 0xfe, 0xdd, 0xdc, 0xd8, 0xbf, 0xdc, 0xcd, 0x8d, 0xbd, - 0x75, 0x37, 0x27, 0xbd, 0x73, 0x37, 0x27, 0xbd, 0x77, 0x37, 0x27, 0xfd, 0xe4, 0x6e, 0x4e, 0xba, - 0xbd, 0x9f, 0x93, 0xbe, 0xb2, 0x9f, 0x93, 0xbe, 0xbe, 0x9f, 0x93, 0xbe, 0xbd, 0x9f, 0x93, 0xbe, - 0xbb, 0x9f, 0x93, 0xde, 0xd8, 0xcf, 0x8d, 0x7d, 0x7f, 0x3f, 0x37, 0xf6, 0xd6, 0x7e, 0x4e, 0x7a, - 0x67, 0x3f, 0x37, 0xf6, 0xde, 0x7e, 0x4e, 0xfa, 0xc9, 0x7e, 0x4e, 0xba, 0xfd, 0xc3, 0xdc, 0xd8, - 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x35, 0xe3, 0x7e, 0xf9, 0x19, 0x36, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Castaway) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Castaway") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Castaway but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Castaway but is not nil && this == nil") - } - if this.Int32Ptr != nil && that1.Int32Ptr != nil { - if *this.Int32Ptr != *that1.Int32Ptr { - return fmt.Errorf("Int32Ptr this(%v) Not Equal that(%v)", *this.Int32Ptr, *that1.Int32Ptr) - } - } else if this.Int32Ptr != nil { - return fmt.Errorf("this.Int32Ptr == nil && that.Int32Ptr != nil") - } else if that1.Int32Ptr != nil { - return fmt.Errorf("Int32Ptr this(%v) Not Equal that(%v)", this.Int32Ptr, that1.Int32Ptr) - } - if this.Int32 != that1.Int32 { - return fmt.Errorf("Int32 this(%v) Not Equal that(%v)", this.Int32, that1.Int32) - } - if this.MyUint64Ptr != nil && that1.MyUint64Ptr != nil { - if *this.MyUint64Ptr != *that1.MyUint64Ptr { - return fmt.Errorf("MyUint64Ptr this(%v) Not Equal that(%v)", *this.MyUint64Ptr, *that1.MyUint64Ptr) - } - } else if this.MyUint64Ptr != nil { - return fmt.Errorf("this.MyUint64Ptr == nil && that.MyUint64Ptr != nil") - } else if that1.MyUint64Ptr != nil { - return fmt.Errorf("MyUint64Ptr this(%v) Not Equal that(%v)", this.MyUint64Ptr, that1.MyUint64Ptr) - } - if this.MyUint64 != that1.MyUint64 { - return fmt.Errorf("MyUint64 this(%v) Not Equal that(%v)", this.MyUint64, that1.MyUint64) - } - if this.MyFloat32Ptr != nil && that1.MyFloat32Ptr != nil { - if *this.MyFloat32Ptr != *that1.MyFloat32Ptr { - return fmt.Errorf("MyFloat32Ptr this(%v) Not Equal that(%v)", *this.MyFloat32Ptr, *that1.MyFloat32Ptr) - } - } else if this.MyFloat32Ptr != nil { - return fmt.Errorf("this.MyFloat32Ptr == nil && that.MyFloat32Ptr != nil") - } else if that1.MyFloat32Ptr != nil { - return fmt.Errorf("MyFloat32Ptr this(%v) Not Equal that(%v)", this.MyFloat32Ptr, that1.MyFloat32Ptr) - } - if this.MyFloat32 != that1.MyFloat32 { - return fmt.Errorf("MyFloat32 this(%v) Not Equal that(%v)", this.MyFloat32, that1.MyFloat32) - } - if this.MyFloat64Ptr != nil && that1.MyFloat64Ptr != nil { - if *this.MyFloat64Ptr != *that1.MyFloat64Ptr { - return fmt.Errorf("MyFloat64Ptr this(%v) Not Equal that(%v)", *this.MyFloat64Ptr, *that1.MyFloat64Ptr) - } - } else if this.MyFloat64Ptr != nil { - return fmt.Errorf("this.MyFloat64Ptr == nil && that.MyFloat64Ptr != nil") - } else if that1.MyFloat64Ptr != nil { - return fmt.Errorf("MyFloat64Ptr this(%v) Not Equal that(%v)", this.MyFloat64Ptr, that1.MyFloat64Ptr) - } - if this.MyFloat64 != that1.MyFloat64 { - return fmt.Errorf("MyFloat64 this(%v) Not Equal that(%v)", this.MyFloat64, that1.MyFloat64) - } - if !bytes.Equal(this.MyBytes, that1.MyBytes) { - return fmt.Errorf("MyBytes this(%v) Not Equal that(%v)", this.MyBytes, that1.MyBytes) - } - if !bytes.Equal(this.NormalBytes, that1.NormalBytes) { - return fmt.Errorf("NormalBytes this(%v) Not Equal that(%v)", this.NormalBytes, that1.NormalBytes) - } - if len(this.MyUint64S) != len(that1.MyUint64S) { - return fmt.Errorf("MyUint64S this(%v) Not Equal that(%v)", len(this.MyUint64S), len(that1.MyUint64S)) - } - for i := range this.MyUint64S { - if this.MyUint64S[i] != that1.MyUint64S[i] { - return fmt.Errorf("MyUint64S this[%v](%v) Not Equal that[%v](%v)", i, this.MyUint64S[i], i, that1.MyUint64S[i]) - } - } - if len(this.MyMap) != len(that1.MyMap) { - return fmt.Errorf("MyMap this(%v) Not Equal that(%v)", len(this.MyMap), len(that1.MyMap)) - } - for i := range this.MyMap { - if this.MyMap[i] != that1.MyMap[i] { - return fmt.Errorf("MyMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyMap[i], i, that1.MyMap[i]) - } - } - if len(this.MyCustomMap) != len(that1.MyCustomMap) { - return fmt.Errorf("MyCustomMap this(%v) Not Equal that(%v)", len(this.MyCustomMap), len(that1.MyCustomMap)) - } - for i := range this.MyCustomMap { - if this.MyCustomMap[i] != that1.MyCustomMap[i] { - return fmt.Errorf("MyCustomMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyCustomMap[i], i, that1.MyCustomMap[i]) - } - } - if len(this.MyNullableMap) != len(that1.MyNullableMap) { - return fmt.Errorf("MyNullableMap this(%v) Not Equal that(%v)", len(this.MyNullableMap), len(that1.MyNullableMap)) - } - for i := range this.MyNullableMap { - if !this.MyNullableMap[i].Equal(that1.MyNullableMap[i]) { - return fmt.Errorf("MyNullableMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyNullableMap[i], i, that1.MyNullableMap[i]) - } - } - if len(this.MyEmbeddedMap) != len(that1.MyEmbeddedMap) { - return fmt.Errorf("MyEmbeddedMap this(%v) Not Equal that(%v)", len(this.MyEmbeddedMap), len(that1.MyEmbeddedMap)) - } - for i := range this.MyEmbeddedMap { - a := this.MyEmbeddedMap[i] - b := that1.MyEmbeddedMap[i] - if !(&a).Equal(&b) { - return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) - } - } - if this.String_ != nil && that1.String_ != nil { - if *this.String_ != *that1.String_ { - return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) - } - } else if this.String_ != nil { - return fmt.Errorf("this.String_ == nil && that.String_ != nil") - } else if that1.String_ != nil { - return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Castaway) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Int32Ptr != nil && that1.Int32Ptr != nil { - if *this.Int32Ptr != *that1.Int32Ptr { - return false - } - } else if this.Int32Ptr != nil { - return false - } else if that1.Int32Ptr != nil { - return false - } - if this.Int32 != that1.Int32 { - return false - } - if this.MyUint64Ptr != nil && that1.MyUint64Ptr != nil { - if *this.MyUint64Ptr != *that1.MyUint64Ptr { - return false - } - } else if this.MyUint64Ptr != nil { - return false - } else if that1.MyUint64Ptr != nil { - return false - } - if this.MyUint64 != that1.MyUint64 { - return false - } - if this.MyFloat32Ptr != nil && that1.MyFloat32Ptr != nil { - if *this.MyFloat32Ptr != *that1.MyFloat32Ptr { - return false - } - } else if this.MyFloat32Ptr != nil { - return false - } else if that1.MyFloat32Ptr != nil { - return false - } - if this.MyFloat32 != that1.MyFloat32 { - return false - } - if this.MyFloat64Ptr != nil && that1.MyFloat64Ptr != nil { - if *this.MyFloat64Ptr != *that1.MyFloat64Ptr { - return false - } - } else if this.MyFloat64Ptr != nil { - return false - } else if that1.MyFloat64Ptr != nil { - return false - } - if this.MyFloat64 != that1.MyFloat64 { - return false - } - if !bytes.Equal(this.MyBytes, that1.MyBytes) { - return false - } - if !bytes.Equal(this.NormalBytes, that1.NormalBytes) { - return false - } - if len(this.MyUint64S) != len(that1.MyUint64S) { - return false - } - for i := range this.MyUint64S { - if this.MyUint64S[i] != that1.MyUint64S[i] { - return false - } - } - if len(this.MyMap) != len(that1.MyMap) { - return false - } - for i := range this.MyMap { - if this.MyMap[i] != that1.MyMap[i] { - return false - } - } - if len(this.MyCustomMap) != len(that1.MyCustomMap) { - return false - } - for i := range this.MyCustomMap { - if this.MyCustomMap[i] != that1.MyCustomMap[i] { - return false - } - } - if len(this.MyNullableMap) != len(that1.MyNullableMap) { - return false - } - for i := range this.MyNullableMap { - if !this.MyNullableMap[i].Equal(that1.MyNullableMap[i]) { - return false - } - } - if len(this.MyEmbeddedMap) != len(that1.MyEmbeddedMap) { - return false - } - for i := range this.MyEmbeddedMap { - a := this.MyEmbeddedMap[i] - b := that1.MyEmbeddedMap[i] - if !(&a).Equal(&b) { - return false - } - } - if this.String_ != nil && that1.String_ != nil { - if *this.String_ != *that1.String_ { - return false - } - } else if this.String_ != nil { - return false - } else if that1.String_ != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Wilson) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Wilson") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Wilson but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Wilson but is not nil && this == nil") - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", *this.Int64, *that1.Int64) - } - } else if this.Int64 != nil { - return fmt.Errorf("this.Int64 == nil && that.Int64 != nil") - } else if that1.Int64 != nil { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", this.Int64, that1.Int64) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Wilson) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return false - } - } else if this.Int64 != nil { - return false - } else if that1.Int64 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetInt32Ptr() *int32 - GetInt32() int32 - GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyUint64() github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyFloat32Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat32Type - GetMyFloat32() github_com_gogo_protobuf_test_casttype.MyFloat32Type - GetMyFloat64Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat64Type - GetMyFloat64() github_com_gogo_protobuf_test_casttype.MyFloat64Type - GetMyBytes() github_com_gogo_protobuf_test_casttype.Bytes - GetNormalBytes() []byte - GetMyUint64S() []github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyMap() github_com_gogo_protobuf_test_casttype.MyMapType - GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson - GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson - GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType -} - -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCastawayFromFace(this) -} - -func (this *Castaway) GetInt32Ptr() *int32 { - return this.Int32Ptr -} - -func (this *Castaway) GetInt32() int32 { - return this.Int32 -} - -func (this *Castaway) GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyUint64Ptr -} - -func (this *Castaway) GetMyUint64() github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyUint64 -} - -func (this *Castaway) GetMyFloat32Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat32Type { - return this.MyFloat32Ptr -} - -func (this *Castaway) GetMyFloat32() github_com_gogo_protobuf_test_casttype.MyFloat32Type { - return this.MyFloat32 -} - -func (this *Castaway) GetMyFloat64Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat64Type { - return this.MyFloat64Ptr -} - -func (this *Castaway) GetMyFloat64() github_com_gogo_protobuf_test_casttype.MyFloat64Type { - return this.MyFloat64 -} - -func (this *Castaway) GetMyBytes() github_com_gogo_protobuf_test_casttype.Bytes { - return this.MyBytes -} - -func (this *Castaway) GetNormalBytes() []byte { - return this.NormalBytes -} - -func (this *Castaway) GetMyUint64S() []github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyUint64S -} - -func (this *Castaway) GetMyMap() github_com_gogo_protobuf_test_casttype.MyMapType { - return this.MyMap -} - -func (this *Castaway) GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyCustomMap -} - -func (this *Castaway) GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson { - return this.MyNullableMap -} - -func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson { - return this.MyEmbeddedMap -} - -func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { - return this.String_ -} - -func NewCastawayFromFace(that CastawayFace) *Castaway { - this := &Castaway{} - this.Int32Ptr = that.GetInt32Ptr() - this.Int32 = that.GetInt32() - this.MyUint64Ptr = that.GetMyUint64Ptr() - this.MyUint64 = that.GetMyUint64() - this.MyFloat32Ptr = that.GetMyFloat32Ptr() - this.MyFloat32 = that.GetMyFloat32() - this.MyFloat64Ptr = that.GetMyFloat64Ptr() - this.MyFloat64 = that.GetMyFloat64() - this.MyBytes = that.GetMyBytes() - this.NormalBytes = that.GetNormalBytes() - this.MyUint64S = that.GetMyUint64S() - this.MyMap = that.GetMyMap() - this.MyCustomMap = that.GetMyCustomMap() - this.MyNullableMap = that.GetMyNullableMap() - this.MyEmbeddedMap = that.GetMyEmbeddedMap() - this.String_ = that.GetString_() - return this -} - -type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetInt64() *int64 -} - -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { - return NewWilsonFromFace(this) -} - -func (this *Wilson) GetInt64() *int64 { - return this.Int64 -} - -func NewWilsonFromFace(that WilsonFace) *Wilson { - this := &Wilson{} - this.Int64 = that.GetInt64() - return this -} - -func (this *Castaway) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&casttype.Castaway{") - if this.Int32Ptr != nil { - s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") - } - s = append(s, "Int32: "+fmt.Sprintf("%#v", this.Int32)+",\n") - if this.MyUint64Ptr != nil { - s = append(s, "MyUint64Ptr: "+valueToGoStringCasttype(this.MyUint64Ptr, "github_com_gogo_protobuf_test_casttype.MyUint64Type")+",\n") - } - s = append(s, "MyUint64: "+fmt.Sprintf("%#v", this.MyUint64)+",\n") - if this.MyFloat32Ptr != nil { - s = append(s, "MyFloat32Ptr: "+valueToGoStringCasttype(this.MyFloat32Ptr, "github_com_gogo_protobuf_test_casttype.MyFloat32Type")+",\n") - } - s = append(s, "MyFloat32: "+fmt.Sprintf("%#v", this.MyFloat32)+",\n") - if this.MyFloat64Ptr != nil { - s = append(s, "MyFloat64Ptr: "+valueToGoStringCasttype(this.MyFloat64Ptr, "github_com_gogo_protobuf_test_casttype.MyFloat64Type")+",\n") - } - s = append(s, "MyFloat64: "+fmt.Sprintf("%#v", this.MyFloat64)+",\n") - if this.MyBytes != nil { - s = append(s, "MyBytes: "+valueToGoStringCasttype(this.MyBytes, "github_com_gogo_protobuf_test_casttype.Bytes")+",\n") - } - if this.NormalBytes != nil { - s = append(s, "NormalBytes: "+valueToGoStringCasttype(this.NormalBytes, "byte")+",\n") - } - if this.MyUint64S != nil { - s = append(s, "MyUint64S: "+fmt.Sprintf("%#v", this.MyUint64S)+",\n") - } - keysForMyMap := make([]string, 0, len(this.MyMap)) - for k := range this.MyMap { - keysForMyMap = append(keysForMyMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) - mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" - for _, k := range keysForMyMap { - mapStringForMyMap += fmt.Sprintf("%#v: %#v,", k, this.MyMap[k]) - } - mapStringForMyMap += "}" - if this.MyMap != nil { - s = append(s, "MyMap: "+mapStringForMyMap+",\n") - } - keysForMyCustomMap := make([]string, 0, len(this.MyCustomMap)) - for k := range this.MyCustomMap { - keysForMyCustomMap = append(keysForMyCustomMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) - mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" - for _, k := range keysForMyCustomMap { - mapStringForMyCustomMap += fmt.Sprintf("%#v: %#v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) - } - mapStringForMyCustomMap += "}" - if this.MyCustomMap != nil { - s = append(s, "MyCustomMap: "+mapStringForMyCustomMap+",\n") - } - keysForMyNullableMap := make([]int32, 0, len(this.MyNullableMap)) - for k := range this.MyNullableMap { - keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) - mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" - for _, k := range keysForMyNullableMap { - mapStringForMyNullableMap += fmt.Sprintf("%#v: %#v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyNullableMap += "}" - if this.MyNullableMap != nil { - s = append(s, "MyNullableMap: "+mapStringForMyNullableMap+",\n") - } - keysForMyEmbeddedMap := make([]int32, 0, len(this.MyEmbeddedMap)) - for k := range this.MyEmbeddedMap { - keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) - mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" - for _, k := range keysForMyEmbeddedMap { - mapStringForMyEmbeddedMap += fmt.Sprintf("%#v: %#v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyEmbeddedMap += "}" - if this.MyEmbeddedMap != nil { - s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") - } - if this.String_ != nil { - s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Wilson) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&casttype.Wilson{") - if this.Int64 != nil { - s = append(s, "Int64: "+valueToGoStringCasttype(this.Int64, "int64")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringCasttype(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { - this := &Castaway{} - if r.Intn(10) != 0 { - v1 := int32(r.Int63()) - if r.Intn(2) == 0 { - v1 *= -1 - } - this.Int32Ptr = &v1 - } - this.Int32 = int32(r.Int63()) - if r.Intn(2) == 0 { - this.Int32 *= -1 - } - if r.Intn(10) != 0 { - v2 := github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - this.MyUint64Ptr = &v2 - } - this.MyUint64 = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - if r.Intn(10) != 0 { - v3 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(r.Float32()) - if r.Intn(2) == 0 { - v3 *= -1 - } - this.MyFloat32Ptr = &v3 - } - this.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(r.Float32()) - if r.Intn(2) == 0 { - this.MyFloat32 *= -1 - } - if r.Intn(10) != 0 { - v4 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(r.Float64()) - if r.Intn(2) == 0 { - v4 *= -1 - } - this.MyFloat64Ptr = &v4 - } - this.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(r.Float64()) - if r.Intn(2) == 0 { - this.MyFloat64 *= -1 - } - if r.Intn(10) != 0 { - v5 := r.Intn(100) - this.MyBytes = make(github_com_gogo_protobuf_test_casttype.Bytes, v5) - for i := 0; i < v5; i++ { - this.MyBytes[i] = byte(r.Intn(256)) - } - } - if r.Intn(10) != 0 { - v6 := r.Intn(100) - this.NormalBytes = make([]byte, v6) - for i := 0; i < v6; i++ { - this.NormalBytes[i] = byte(r.Intn(256)) - } - } - if r.Intn(10) != 0 { - v7 := r.Intn(10) - this.MyUint64S = make([]github_com_gogo_protobuf_test_casttype.MyUint64Type, v7) - for i := 0; i < v7; i++ { - this.MyUint64S[i] = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v8 := r.Intn(10) - this.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) - for i := 0; i < v8; i++ { - v9 := randStringCasttype(r) - this.MyMap[v9] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v10 := r.Intn(10) - this.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) - for i := 0; i < v10; i++ { - v11 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) - this.MyCustomMap[v11] = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v12 := r.Intn(10) - this.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) - for i := 0; i < v12; i++ { - this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = NewPopulatedWilson(r, easy) - } - } - if r.Intn(10) != 0 { - v13 := r.Intn(10) - this.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) - for i := 0; i < v13; i++ { - this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) - } - } - if r.Intn(10) != 0 { - v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) - this.String_ = &v14 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) - } - return this -} - -func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { - this := &Wilson{} - if r.Intn(10) != 0 { - v15 := int64(r.Int63()) - if r.Intn(2) == 0 { - v15 *= -1 - } - this.Int64 = &v15 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) - } - return this -} - -type randyCasttype interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneCasttype(r randyCasttype) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringCasttype(r randyCasttype) string { - v16 := r.Intn(100) - tmps := make([]rune, v16) - for i := 0; i < v16; i++ { - tmps[i] = randUTF8RuneCasttype(r) - } - return string(tmps) -} -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - v17 := r.Int63() - if r.Intn(2) == 0 { - v17 *= -1 - } - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) - case 1: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Castaway) Size() (n int) { - var l int - _ = l - if m.Int32Ptr != nil { - n += 1 + sovCasttype(uint64(*m.Int32Ptr)) - } - n += 1 + sovCasttype(uint64(m.Int32)) - if m.MyUint64Ptr != nil { - n += 1 + sovCasttype(uint64(*m.MyUint64Ptr)) - } - n += 1 + sovCasttype(uint64(m.MyUint64)) - if m.MyFloat32Ptr != nil { - n += 5 - } - n += 5 - if m.MyFloat64Ptr != nil { - n += 9 - } - n += 9 - if m.MyBytes != nil { - l = len(m.MyBytes) - n += 1 + l + sovCasttype(uint64(l)) - } - if m.NormalBytes != nil { - l = len(m.NormalBytes) - n += 1 + l + sovCasttype(uint64(l)) - } - if len(m.MyUint64S) > 0 { - for _, e := range m.MyUint64S { - n += 1 + sovCasttype(uint64(e)) - } - } - if len(m.MyMap) > 0 { - for k, v := range m.MyMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if len(m.MyCustomMap) > 0 { - for k, v := range m.MyCustomMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if len(m.MyNullableMap) > 0 { - for k, v := range m.MyNullableMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovCasttype(uint64(l)) - } - mapEntrySize := 1 + sovCasttype(uint64(k)) + l - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if len(m.MyEmbeddedMap) > 0 { - for k, v := range m.MyEmbeddedMap { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if m.String_ != nil { - l = len(*m.String_) - n += 2 + l + sovCasttype(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Wilson) Size() (n int) { - var l int - _ = l - if m.Int64 != nil { - n += 1 + sovCasttype(uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovCasttype(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozCasttype(x uint64) (n int) { - return sovCasttype(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Castaway) String() string { - if this == nil { - return "nil" - } - keysForMyMap := make([]string, 0, len(this.MyMap)) - for k := range this.MyMap { - keysForMyMap = append(keysForMyMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) - mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" - for _, k := range keysForMyMap { - mapStringForMyMap += fmt.Sprintf("%v: %v,", k, this.MyMap[k]) - } - mapStringForMyMap += "}" - keysForMyCustomMap := make([]string, 0, len(this.MyCustomMap)) - for k := range this.MyCustomMap { - keysForMyCustomMap = append(keysForMyCustomMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) - mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" - for _, k := range keysForMyCustomMap { - mapStringForMyCustomMap += fmt.Sprintf("%v: %v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) - } - mapStringForMyCustomMap += "}" - keysForMyNullableMap := make([]int32, 0, len(this.MyNullableMap)) - for k := range this.MyNullableMap { - keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) - mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" - for _, k := range keysForMyNullableMap { - mapStringForMyNullableMap += fmt.Sprintf("%v: %v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyNullableMap += "}" - keysForMyEmbeddedMap := make([]int32, 0, len(this.MyEmbeddedMap)) - for k := range this.MyEmbeddedMap { - keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) - mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" - for _, k := range keysForMyEmbeddedMap { - mapStringForMyEmbeddedMap += fmt.Sprintf("%v: %v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyEmbeddedMap += "}" - s := strings.Join([]string{`&Castaway{`, - `Int32Ptr:` + valueToStringCasttype(this.Int32Ptr) + `,`, - `Int32:` + fmt.Sprintf("%v", this.Int32) + `,`, - `MyUint64Ptr:` + valueToStringCasttype(this.MyUint64Ptr) + `,`, - `MyUint64:` + fmt.Sprintf("%v", this.MyUint64) + `,`, - `MyFloat32Ptr:` + valueToStringCasttype(this.MyFloat32Ptr) + `,`, - `MyFloat32:` + fmt.Sprintf("%v", this.MyFloat32) + `,`, - `MyFloat64Ptr:` + valueToStringCasttype(this.MyFloat64Ptr) + `,`, - `MyFloat64:` + fmt.Sprintf("%v", this.MyFloat64) + `,`, - `MyBytes:` + valueToStringCasttype(this.MyBytes) + `,`, - `NormalBytes:` + valueToStringCasttype(this.NormalBytes) + `,`, - `MyUint64S:` + fmt.Sprintf("%v", this.MyUint64S) + `,`, - `MyMap:` + mapStringForMyMap + `,`, - `MyCustomMap:` + mapStringForMyCustomMap + `,`, - `MyNullableMap:` + mapStringForMyNullableMap + `,`, - `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, - `String_:` + valueToStringCasttype(this.String_) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Wilson) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Wilson{`, - `Int64:` + valueToStringCasttype(this.Int64) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringCasttype(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Castaway) 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 *Castaway) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Int32Ptr != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(*m.Int32Ptr)) - } - dAtA[i] = 0x10 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(m.Int32)) - if m.MyUint64Ptr != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(*m.MyUint64Ptr)) - } - dAtA[i] = 0x20 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(m.MyUint64)) - if m.MyFloat32Ptr != nil { - dAtA[i] = 0x2d - i++ - i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(*m.MyFloat32Ptr)))) - } - dAtA[i] = 0x35 - i++ - i = encodeFixed32Casttype(dAtA, i, uint32(math.Float32bits(float32(m.MyFloat32)))) - if m.MyFloat64Ptr != nil { - dAtA[i] = 0x39 - i++ - i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(*m.MyFloat64Ptr)))) - } - dAtA[i] = 0x41 - i++ - i = encodeFixed64Casttype(dAtA, i, uint64(math.Float64bits(float64(m.MyFloat64)))) - if m.MyBytes != nil { - dAtA[i] = 0x4a - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(m.MyBytes))) - i += copy(dAtA[i:], m.MyBytes) - } - if m.NormalBytes != nil { - dAtA[i] = 0x52 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(m.NormalBytes))) - i += copy(dAtA[i:], m.NormalBytes) - } - if len(m.MyUint64S) > 0 { - for _, num := range m.MyUint64S { - dAtA[i] = 0x58 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(num)) - } - } - if len(m.MyMap) > 0 { - for k := range m.MyMap { - dAtA[i] = 0x62 - i++ - v := m.MyMap[k] - mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(v)) - } - } - if len(m.MyCustomMap) > 0 { - for k := range m.MyCustomMap { - dAtA[i] = 0x6a - i++ - v := m.MyCustomMap[k] - mapSize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(v)) - } - } - if len(m.MyNullableMap) > 0 { - for k := range m.MyNullableMap { - dAtA[i] = 0x72 - i++ - v := m.MyNullableMap[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovCasttype(uint64(msgSize)) - } - mapSize := 1 + sovCasttype(uint64(k)) + msgSize - i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(v.Size())) - n1, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - } - } - if len(m.MyEmbeddedMap) > 0 { - for k := range m.MyEmbeddedMap { - dAtA[i] = 0x7a - i++ - v := m.MyEmbeddedMap[k] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovCasttype(uint64(msgSize)) - } - mapSize := 1 + sovCasttype(uint64(k)) + msgSize - i = encodeVarintCasttype(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintCasttype(dAtA, i, uint64((&v).Size())) - n2, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - } - if m.String_ != nil { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(len(*m.String_))) - i += copy(dAtA[i:], *m.String_) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Wilson) 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 *Wilson) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Int64 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintCasttype(dAtA, i, uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Casttype(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 encodeFixed32Casttype(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 encodeVarintCasttype(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 init() { proto.RegisterFile("combos/unsafemarshaler/casttype.proto", fileDescriptorCasttype) } - -var fileDescriptorCasttype = []byte{ - // 701 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0x06, 0xa2, 0x13, 0x83, 0x55, 0x89, 0xb3, 0xd5, 0xaa, - 0xc8, 0x03, 0x24, 0x55, 0x1a, 0x95, 0xaa, 0x20, 0x06, 0x57, 0x45, 0x2a, 0xc2, 0x05, 0x19, 0xaa, - 0x0a, 0xc4, 0x72, 0x69, 0xdd, 0x34, 0xc2, 0xb1, 0x23, 0xfb, 0x02, 0xf2, 0x56, 0x95, 0x01, 0x89, - 0xbf, 0x84, 0x91, 0x05, 0x89, 0x91, 0xb1, 0x63, 0x47, 0xa6, 0xb4, 0x36, 0x4b, 0xd9, 0x3a, 0x56, - 0x99, 0xd0, 0xdd, 0x39, 0xb1, 0xfb, 0x03, 0x94, 0xa6, 0xdb, 0xbd, 0xbb, 0xf7, 0x3e, 0xef, 0x7b, - 0xef, 0xde, 0xdd, 0xc1, 0xb9, 0x2d, 0xb7, 0x55, 0x77, 0xfd, 0x4a, 0xc7, 0xf1, 0xc9, 0x8e, 0xd5, - 0x22, 0x9e, 0xbf, 0x4b, 0x6c, 0xcb, 0xab, 0x6c, 0x11, 0x9f, 0xd2, 0xa0, 0x6d, 0x95, 0xdb, 0x9e, - 0x4b, 0x5d, 0x94, 0xeb, 0xdb, 0xd3, 0x0f, 0x1a, 0x4d, 0xba, 0xdb, 0xa9, 0x97, 0xb7, 0xdc, 0x56, - 0xa5, 0xe1, 0x36, 0xdc, 0x0a, 0x77, 0xa8, 0x77, 0x76, 0xb8, 0xc5, 0x0d, 0x3e, 0x12, 0x81, 0x33, - 0x7f, 0x8a, 0x30, 0xb7, 0x42, 0x7c, 0x4a, 0x3e, 0x92, 0x00, 0xcd, 0xc1, 0xdc, 0x9a, 0x43, 0x17, - 0xaa, 0x2f, 0xa9, 0x27, 0x03, 0x15, 0x68, 0x19, 0x3d, 0xdf, 0xeb, 0x2a, 0xd9, 0x26, 0x9b, 0x33, - 0x07, 0x4b, 0x68, 0x16, 0x66, 0xf9, 0x58, 0x1e, 0xe3, 0x3e, 0xc5, 0x83, 0xae, 0x22, 0x25, 0x7e, - 0x62, 0x0d, 0xbd, 0x81, 0x05, 0x23, 0xd8, 0x68, 0x3a, 0x74, 0xb1, 0xc6, 0x70, 0x19, 0x15, 0x68, - 0xe3, 0xfa, 0xc3, 0x5e, 0x57, 0x59, 0xf8, 0xa7, 0x40, 0x6a, 0xf9, 0x34, 0xd9, 0x58, 0x3f, 0xfa, - 0x75, 0xd0, 0xb6, 0xcc, 0x34, 0x0b, 0x6d, 0xc2, 0x5c, 0xdf, 0x94, 0xc7, 0x39, 0xf7, 0x51, 0x2c, - 0x61, 0x24, 0xf6, 0x00, 0x86, 0xde, 0xc1, 0x29, 0x23, 0x78, 0x6a, 0xbb, 0x24, 0xae, 0x41, 0x56, - 0x05, 0xda, 0x98, 0xbe, 0xd4, 0xeb, 0x2a, 0xb5, 0xa1, 0xc1, 0x71, 0x38, 0x27, 0x9f, 0xa3, 0xa1, - 0xb7, 0x30, 0x3f, 0xb0, 0xe5, 0x09, 0x8e, 0x7e, 0x1c, 0xeb, 0x1e, 0x0d, 0x9f, 0xe0, 0x52, 0xca, - 0x45, 0xb9, 0x27, 0x55, 0xa0, 0x81, 0x51, 0x94, 0xc7, 0x35, 0x39, 0x47, 0x4b, 0x29, 0x5f, 0xac, - 0xc9, 0x39, 0x8e, 0x1e, 0x51, 0x79, 0x8c, 0x4f, 0x70, 0xe8, 0x19, 0x9c, 0x34, 0x02, 0x3d, 0xa0, - 0x96, 0x2f, 0xe7, 0x55, 0xa0, 0x4d, 0xe9, 0xf3, 0xbd, 0xae, 0x72, 0x7f, 0x48, 0x2a, 0x8f, 0x33, - 0xfb, 0x00, 0xa4, 0xc2, 0xc2, 0xba, 0xeb, 0xb5, 0x88, 0x2d, 0x78, 0x90, 0xf1, 0xcc, 0xf4, 0x14, - 0xda, 0x60, 0x3b, 0x11, 0xa7, 0xed, 0xcb, 0x05, 0x35, 0x73, 0x93, 0x9e, 0x4c, 0x48, 0xa8, 0x09, - 0xb3, 0x46, 0x60, 0x90, 0xb6, 0x3c, 0xa5, 0x66, 0xb4, 0x42, 0xf5, 0x6e, 0x79, 0x10, 0xd1, 0xbf, - 0x5b, 0x65, 0xbe, 0xbe, 0xea, 0x50, 0x2f, 0xd0, 0x6b, 0xbd, 0xae, 0x32, 0x3f, 0x74, 0x46, 0x83, - 0xb4, 0x79, 0x3a, 0x91, 0x01, 0x7d, 0x07, 0xec, 0x62, 0xad, 0x74, 0x7c, 0xea, 0xb6, 0x58, 0xc6, - 0x22, 0xcf, 0x38, 0x7b, 0x65, 0xc6, 0x81, 0x97, 0xc8, 0xeb, 0xec, 0x1f, 0x5d, 0x63, 0xa7, 0xaf, - 0xa8, 0xd7, 0x74, 0x1a, 0x2c, 0xf5, 0x97, 0xa3, 0x91, 0x2f, 0xed, 0x40, 0x01, 0xfa, 0x04, 0x60, - 0xd1, 0x08, 0xd6, 0x3b, 0xb6, 0x4d, 0xea, 0xb6, 0xc5, 0x94, 0xdf, 0xe2, 0xca, 0xe7, 0xae, 0x54, - 0x9e, 0xf2, 0x13, 0xda, 0x17, 0xf7, 0x8f, 0x94, 0xea, 0xd0, 0x22, 0xf8, 0x13, 0xc4, 0x35, 0x9c, - 0xcf, 0x89, 0x3e, 0x73, 0x15, 0xab, 0xad, 0xba, 0xb5, 0xbd, 0x6d, 0x6d, 0x33, 0x15, 0xb7, 0xff, - 0xa3, 0x22, 0xe5, 0x27, 0x54, 0x2c, 0xb3, 0xae, 0x1f, 0x5d, 0x49, 0x8a, 0x87, 0x5e, 0xc0, 0x09, - 0x51, 0x61, 0xb9, 0xa4, 0x02, 0x2d, 0x7f, 0xcd, 0x36, 0x4c, 0x0e, 0xc7, 0x8c, 0x31, 0xd3, 0x4b, - 0x10, 0x26, 0x3d, 0x86, 0x4a, 0x30, 0xf3, 0xde, 0x0a, 0xf8, 0x2b, 0x9e, 0x37, 0xd9, 0x10, 0xdd, - 0x81, 0xd9, 0x0f, 0xc4, 0xee, 0x58, 0xfc, 0xd5, 0x1e, 0x37, 0x85, 0xb1, 0x3c, 0xb6, 0x04, 0xa6, - 0x9f, 0xc0, 0xd2, 0xc5, 0x5e, 0xb9, 0x56, 0xbc, 0x09, 0xd1, 0xe5, 0x13, 0x4b, 0x13, 0xb2, 0x82, - 0x70, 0x2f, 0x4d, 0x28, 0x54, 0x4b, 0x49, 0xcd, 0x37, 0x9b, 0xb6, 0xef, 0x3a, 0x97, 0x98, 0x17, - 0xeb, 0x7f, 0x33, 0xe6, 0x0c, 0x86, 0x13, 0x62, 0x92, 0xed, 0x65, 0x8d, 0x7f, 0x1f, 0xfc, 0x97, - 0x33, 0x85, 0xa1, 0x3f, 0x3f, 0x08, 0xb1, 0x74, 0x18, 0x62, 0xe9, 0x57, 0x88, 0xa5, 0xe3, 0x10, - 0x83, 0x93, 0x10, 0x83, 0xd3, 0x10, 0x83, 0xb3, 0x10, 0x83, 0xbd, 0x08, 0x83, 0xaf, 0x11, 0x06, - 0xdf, 0x22, 0x0c, 0x7e, 0x44, 0x18, 0xfc, 0x8c, 0x30, 0x38, 0x88, 0xb0, 0x74, 0x18, 0x61, 0xe9, - 0x38, 0xc2, 0xe0, 0x24, 0xc2, 0xd2, 0x69, 0x84, 0xc1, 0x59, 0x84, 0xc1, 0xde, 0x6f, 0x2c, 0xfd, - 0x0d, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x47, 0x3b, 0xeb, 0xba, 0x07, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.proto deleted file mode 100644 index 767c0398a..000000000 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttype.proto +++ /dev/null @@ -1,80 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2015, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; - -package casttype; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = false; - -message Castaway { - optional int64 Int32Ptr = 1 [(gogoproto.casttype) = "int32"]; - optional int64 Int32 = 2 [(gogoproto.casttype) = "int32", (gogoproto.nullable) = false]; - optional uint64 MyUint64Ptr = 3 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - optional uint64 MyUint64 = 4 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type", (gogoproto.nullable) = false]; - optional float MyFloat32Ptr = 5 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat32Type"]; - optional float MyFloat32 = 6 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat32Type", (gogoproto.nullable) = false]; - optional double MyFloat64Ptr = 7 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat64Type"]; - optional double MyFloat64 = 8 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat64Type", (gogoproto.nullable) = false]; - optional bytes MyBytes = 9 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.Bytes"]; - optional bytes NormalBytes = 10; - repeated uint64 MyUint64s = 11 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - map MyMap = 12 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyMapType"]; - map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; - map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; - optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; -} - -message Wilson { - optional int64 Int64 = 1; -} diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttypepb_test.go deleted file mode 100644 index 240e96a89..000000000 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafemarshaler/casttypepb_test.go +++ /dev/null @@ -1,538 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/casttype.proto -// DO NOT EDIT! - -/* -Package casttype is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/casttype.proto - -It has these top-level messages: - Castaway - Wilson -*/ -package casttype - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestCastawayProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCastawayMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Castaway{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestWilsonMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Wilson{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestWilsonJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCastawayProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCastawayProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCasttypeDescription(t *testing.T) { - CasttypeDescription() -} -func TestCastawayVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestWilsonVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCastawaySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.pb.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.pb.go deleted file mode 100644 index 4eeaca0d2..000000000 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.pb.go +++ /dev/null @@ -1,2353 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/casttype.proto -// DO NOT EDIT! - -/* - Package casttype is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeunmarshaler/casttype.proto - - It has these top-level messages: - Castaway - Wilson -*/ -package casttype - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -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 - -type Castaway struct { - Int32Ptr *int32 `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"` - Int32 int32 `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"` - MyUint64Ptr *github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"` - MyUint64 github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"` - MyFloat32Ptr *github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"` - MyFloat32 github_com_gogo_protobuf_test_casttype.MyFloat32Type `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"` - MyFloat64Ptr *github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"` - MyFloat64 github_com_gogo_protobuf_test_casttype.MyFloat64Type `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"` - MyBytes github_com_gogo_protobuf_test_casttype.Bytes `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"` - NormalBytes []byte `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"` - MyUint64S []github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"` - MyMap github_com_gogo_protobuf_test_casttype.MyMapType `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyCustomMap map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - MyNullableMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - MyEmbeddedMap map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - String_ *github_com_gogo_protobuf_test_casttype.MyStringType `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Castaway) Reset() { *m = Castaway{} } -func (*Castaway) ProtoMessage() {} -func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{0} } - -type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Wilson) Reset() { *m = Wilson{} } -func (*Wilson) ProtoMessage() {} -func (*Wilson) Descriptor() ([]byte, []int) { return fileDescriptorCasttype, []int{1} } - -func init() { - proto.RegisterType((*Castaway)(nil), "casttype.Castaway") - proto.RegisterType((*Wilson)(nil), "casttype.Wilson") -} -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CasttypeDescription() -} -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CasttypeDescription() -} -func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 4127 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x10, 0x1d, 0x83, 0x14, 0xfd, - 0x23, 0xda, 0x4e, 0x28, 0x8f, 0xfe, 0x2c, 0x43, 0x89, 0x3d, 0x00, 0x09, 0x31, 0x50, 0x09, 0x02, - 0x59, 0x92, 0x91, 0xe4, 0x76, 0x66, 0x67, 0xb9, 0xb8, 0x04, 0x57, 0x5a, 0xec, 0x22, 0xbb, 0x0b, - 0xc9, 0xf0, 0x93, 0x1a, 0xb7, 0xcd, 0xa4, 0x9d, 0xfe, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x6d, 0x66, - 0x5a, 0xa7, 0x49, 0x7f, 0x92, 0xb6, 0x49, 0x33, 0x9d, 0x3e, 0xe4, 0x25, 0xad, 0x9f, 0x3a, 0xc9, - 0x5b, 0x1f, 0x3a, 0xb2, 0xc5, 0x78, 0xa6, 0x4e, 0xeb, 0xb6, 0x6e, 0xe3, 0x99, 0x66, 0xe4, 0x97, - 0xce, 0xfd, 0x5b, 0x2c, 0x7e, 0xc8, 0x05, 0x95, 0x71, 0xf2, 0x44, 0xec, 0xb9, 0xe7, 0xfb, 0xf6, - 0xdc, 0x73, 0xcf, 0x3d, 0xe7, 0xec, 0xdd, 0x25, 0xfc, 0xe0, 0x1c, 0x2c, 0x34, 0x6c, 0xbb, 0x61, - 0xe2, 0x53, 0x2d, 0xc7, 0xf6, 0xec, 0x9d, 0xf6, 0xee, 0xa9, 0x3a, 0x76, 0x75, 0xc7, 0x68, 0x79, - 0xb6, 0xb3, 0x4c, 0x65, 0x68, 0x8a, 0x69, 0x2c, 0x0b, 0x8d, 0xc5, 0x0a, 0x4c, 0x5f, 0x32, 0x4c, - 0xbc, 0xea, 0x2b, 0x6e, 0x62, 0x0f, 0x5d, 0x80, 0xd8, 0xae, 0x61, 0xe2, 0xac, 0xb4, 0x10, 0x5d, - 0x4a, 0x9d, 0x7e, 0x74, 0xb9, 0x0f, 0xb4, 0xdc, 0x8b, 0xa8, 0x11, 0xb1, 0x42, 0x11, 0x8b, 0x6f, - 0xc7, 0x60, 0x66, 0xc8, 0x28, 0x42, 0x10, 0xb3, 0xb4, 0x26, 0x61, 0x94, 0x96, 0x92, 0x0a, 0xfd, - 0x8d, 0xb2, 0x30, 0xd1, 0xd2, 0xf4, 0x1b, 0x5a, 0x03, 0x67, 0x23, 0x54, 0x2c, 0x2e, 0x51, 0x0e, - 0xa0, 0x8e, 0x5b, 0xd8, 0xaa, 0x63, 0x4b, 0xef, 0x64, 0xa3, 0x0b, 0xd1, 0xa5, 0xa4, 0x12, 0x90, - 0xa0, 0xa7, 0x60, 0xba, 0xd5, 0xde, 0x31, 0x0d, 0x5d, 0x0d, 0xa8, 0xc1, 0x42, 0x74, 0x29, 0xae, - 0xc8, 0x6c, 0x60, 0xb5, 0xab, 0x7c, 0x12, 0xa6, 0x6e, 0x61, 0xed, 0x46, 0x50, 0x35, 0x45, 0x55, - 0x33, 0x44, 0x1c, 0x50, 0x5c, 0x81, 0x74, 0x13, 0xbb, 0xae, 0xd6, 0xc0, 0xaa, 0xd7, 0x69, 0xe1, - 0x6c, 0x8c, 0xce, 0x7e, 0x61, 0x60, 0xf6, 0xfd, 0x33, 0x4f, 0x71, 0xd4, 0x56, 0xa7, 0x85, 0x51, - 0x01, 0x92, 0xd8, 0x6a, 0x37, 0x19, 0x43, 0xfc, 0x00, 0xff, 0x95, 0xac, 0x76, 0xb3, 0x9f, 0x25, - 0x41, 0x60, 0x9c, 0x62, 0xc2, 0xc5, 0xce, 0x4d, 0x43, 0xc7, 0xd9, 0x71, 0x4a, 0x70, 0x72, 0x80, - 0x60, 0x93, 0x8d, 0xf7, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x24, 0x7e, 0xd1, 0xc3, 0x96, 0x6b, 0xd8, - 0x56, 0x76, 0x82, 0x92, 0x3c, 0x36, 0x64, 0x15, 0xb1, 0x59, 0xef, 0xa7, 0xe8, 0xe2, 0xd0, 0x79, - 0x98, 0xb0, 0x5b, 0x9e, 0x61, 0x5b, 0x6e, 0x36, 0xb1, 0x20, 0x2d, 0xa5, 0x4e, 0x7f, 0x64, 0x68, - 0x20, 0x54, 0x99, 0x8e, 0x22, 0x94, 0x51, 0x19, 0x64, 0xd7, 0x6e, 0x3b, 0x3a, 0x56, 0x75, 0xbb, - 0x8e, 0x55, 0xc3, 0xda, 0xb5, 0xb3, 0x49, 0x4a, 0x30, 0x3f, 0x38, 0x11, 0xaa, 0xb8, 0x62, 0xd7, - 0x71, 0xd9, 0xda, 0xb5, 0x95, 0x8c, 0xdb, 0x73, 0x8d, 0x8e, 0xc1, 0xb8, 0xdb, 0xb1, 0x3c, 0xed, - 0xc5, 0x6c, 0x9a, 0x46, 0x08, 0xbf, 0x5a, 0xfc, 0xbf, 0x38, 0x4c, 0x8d, 0x12, 0x62, 0x17, 0x21, - 0xbe, 0x4b, 0x66, 0x99, 0x8d, 0x1c, 0xc5, 0x07, 0x0c, 0xd3, 0xeb, 0xc4, 0xf1, 0xfb, 0x74, 0x62, - 0x01, 0x52, 0x16, 0x76, 0x3d, 0x5c, 0x67, 0x11, 0x11, 0x1d, 0x31, 0xa6, 0x80, 0x81, 0x06, 0x43, - 0x2a, 0x76, 0x5f, 0x21, 0x75, 0x15, 0xa6, 0x7c, 0x93, 0x54, 0x47, 0xb3, 0x1a, 0x22, 0x36, 0x4f, - 0x85, 0x59, 0xb2, 0x5c, 0x12, 0x38, 0x85, 0xc0, 0x94, 0x0c, 0xee, 0xb9, 0x46, 0xab, 0x00, 0xb6, - 0x85, 0xed, 0x5d, 0xb5, 0x8e, 0x75, 0x33, 0x9b, 0x38, 0xc0, 0x4b, 0x55, 0xa2, 0x32, 0xe0, 0x25, - 0x9b, 0x49, 0x75, 0x13, 0x3d, 0xdb, 0x0d, 0xb5, 0x89, 0x03, 0x22, 0xa5, 0xc2, 0x36, 0xd9, 0x40, - 0xb4, 0x6d, 0x43, 0xc6, 0xc1, 0x24, 0xee, 0x71, 0x9d, 0xcf, 0x2c, 0x49, 0x8d, 0x58, 0x0e, 0x9d, - 0x99, 0xc2, 0x61, 0x6c, 0x62, 0x93, 0x4e, 0xf0, 0x12, 0x3d, 0x02, 0xbe, 0x40, 0xa5, 0x61, 0x05, - 0x34, 0x0b, 0xa5, 0x85, 0x70, 0x43, 0x6b, 0xe2, 0xb9, 0x0b, 0x90, 0xe9, 0x75, 0x0f, 0x9a, 0x85, - 0xb8, 0xeb, 0x69, 0x8e, 0x47, 0xa3, 0x30, 0xae, 0xb0, 0x0b, 0x24, 0x43, 0x14, 0x5b, 0x75, 0x9a, - 0xe5, 0xe2, 0x0a, 0xf9, 0x39, 0xf7, 0x0c, 0x4c, 0xf6, 0xdc, 0x7e, 0x54, 0xe0, 0xe2, 0x17, 0xc6, - 0x61, 0x76, 0x58, 0xcc, 0x0d, 0x0d, 0xff, 0x63, 0x30, 0x6e, 0xb5, 0x9b, 0x3b, 0xd8, 0xc9, 0x46, - 0x29, 0x03, 0xbf, 0x42, 0x05, 0x88, 0x9b, 0xda, 0x0e, 0x36, 0xb3, 0xb1, 0x05, 0x69, 0x29, 0x73, - 0xfa, 0xa9, 0x91, 0xa2, 0x7a, 0x79, 0x9d, 0x40, 0x14, 0x86, 0x44, 0xcf, 0x41, 0x8c, 0xa7, 0x38, - 0xc2, 0xf0, 0xe4, 0x68, 0x0c, 0x24, 0x16, 0x15, 0x8a, 0x43, 0x0f, 0x41, 0x92, 0xfc, 0x65, 0xbe, - 0x1d, 0xa7, 0x36, 0x27, 0x88, 0x80, 0xf8, 0x15, 0xcd, 0x41, 0x82, 0x86, 0x59, 0x1d, 0x8b, 0xd2, - 0xe0, 0x5f, 0x93, 0x85, 0xa9, 0xe3, 0x5d, 0xad, 0x6d, 0x7a, 0xea, 0x4d, 0xcd, 0x6c, 0x63, 0x1a, - 0x30, 0x49, 0x25, 0xcd, 0x85, 0x9f, 0x26, 0x32, 0x34, 0x0f, 0x29, 0x16, 0x95, 0x86, 0x55, 0xc7, - 0x2f, 0xd2, 0xec, 0x13, 0x57, 0x58, 0xa0, 0x96, 0x89, 0x84, 0xdc, 0xfe, 0xba, 0x6b, 0x5b, 0x62, - 0x69, 0xe9, 0x2d, 0x88, 0x80, 0xde, 0xfe, 0x99, 0xfe, 0xc4, 0xf7, 0xf0, 0xf0, 0xe9, 0xf5, 0xc7, - 0xe2, 0xe2, 0xb7, 0x22, 0x10, 0xa3, 0xfb, 0x6d, 0x0a, 0x52, 0x5b, 0xd7, 0x6a, 0x25, 0x75, 0xb5, - 0xba, 0x5d, 0x5c, 0x2f, 0xc9, 0x12, 0xca, 0x00, 0x50, 0xc1, 0xa5, 0xf5, 0x6a, 0x61, 0x4b, 0x8e, - 0xf8, 0xd7, 0xe5, 0x8d, 0xad, 0xf3, 0x67, 0xe5, 0xa8, 0x0f, 0xd8, 0x66, 0x82, 0x58, 0x50, 0xe1, - 0xcc, 0x69, 0x39, 0x8e, 0x64, 0x48, 0x33, 0x82, 0xf2, 0xd5, 0xd2, 0xea, 0xf9, 0xb3, 0xf2, 0x78, - 0xaf, 0xe4, 0xcc, 0x69, 0x79, 0x02, 0x4d, 0x42, 0x92, 0x4a, 0x8a, 0xd5, 0xea, 0xba, 0x9c, 0xf0, - 0x39, 0x37, 0xb7, 0x94, 0xf2, 0xc6, 0x9a, 0x9c, 0xf4, 0x39, 0xd7, 0x94, 0xea, 0x76, 0x4d, 0x06, - 0x9f, 0xa1, 0x52, 0xda, 0xdc, 0x2c, 0xac, 0x95, 0xe4, 0x94, 0xaf, 0x51, 0xbc, 0xb6, 0x55, 0xda, - 0x94, 0xd3, 0x3d, 0x66, 0x9d, 0x39, 0x2d, 0x4f, 0xfa, 0xb7, 0x28, 0x6d, 0x6c, 0x57, 0xe4, 0x0c, - 0x9a, 0x86, 0x49, 0x76, 0x0b, 0x61, 0xc4, 0x54, 0x9f, 0xe8, 0xfc, 0x59, 0x59, 0xee, 0x1a, 0xc2, - 0x58, 0xa6, 0x7b, 0x04, 0xe7, 0xcf, 0xca, 0x68, 0x71, 0x05, 0xe2, 0x34, 0xba, 0x10, 0x82, 0xcc, - 0x7a, 0xa1, 0x58, 0x5a, 0x57, 0xab, 0xb5, 0xad, 0x72, 0x75, 0xa3, 0xb0, 0x2e, 0x4b, 0x5d, 0x99, - 0x52, 0xfa, 0xd4, 0x76, 0x59, 0x29, 0xad, 0xca, 0x91, 0xa0, 0xac, 0x56, 0x2a, 0x6c, 0x95, 0x56, - 0xe5, 0xe8, 0xa2, 0x0e, 0xb3, 0xc3, 0xf2, 0xcc, 0xd0, 0x9d, 0x11, 0x58, 0xe2, 0xc8, 0x01, 0x4b, - 0x4c, 0xb9, 0x06, 0x96, 0xf8, 0xcb, 0x12, 0xcc, 0x0c, 0xc9, 0xb5, 0x43, 0x6f, 0xf2, 0x3c, 0xc4, - 0x59, 0x88, 0xb2, 0xea, 0xf3, 0xc4, 0xd0, 0xa4, 0x4d, 0x03, 0x76, 0xa0, 0x02, 0x51, 0x5c, 0xb0, - 0x02, 0x47, 0x0f, 0xa8, 0xc0, 0x84, 0x62, 0xc0, 0xc8, 0x97, 0x25, 0xc8, 0x1e, 0xc4, 0x1d, 0x92, - 0x28, 0x22, 0x3d, 0x89, 0xe2, 0x62, 0xbf, 0x01, 0x27, 0x0e, 0x9e, 0xc3, 0x80, 0x15, 0xaf, 0x4b, - 0x70, 0x6c, 0x78, 0xa3, 0x32, 0xd4, 0x86, 0xe7, 0x60, 0xbc, 0x89, 0xbd, 0x3d, 0x5b, 0x14, 0xeb, - 0xc7, 0x87, 0x94, 0x00, 0x32, 0xdc, 0xef, 0x2b, 0x8e, 0x0a, 0xd6, 0x90, 0xe8, 0x41, 0xdd, 0x06, - 0xb3, 0x66, 0xc0, 0xd2, 0xcf, 0x47, 0xe0, 0x81, 0xa1, 0xe4, 0x43, 0x0d, 0x7d, 0x18, 0xc0, 0xb0, - 0x5a, 0x6d, 0x8f, 0x15, 0x64, 0x96, 0x9f, 0x92, 0x54, 0x42, 0xf7, 0x3e, 0xc9, 0x3d, 0x6d, 0xcf, - 0x1f, 0x8f, 0xd2, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xa1, 0x6b, 0x68, 0x8c, 0x1a, 0x9a, 0x3b, 0x60, - 0xa6, 0x03, 0xb5, 0xee, 0x69, 0x90, 0x75, 0xd3, 0xc0, 0x96, 0xa7, 0xba, 0x9e, 0x83, 0xb5, 0xa6, - 0x61, 0x35, 0x68, 0x02, 0x4e, 0xe4, 0xe3, 0xbb, 0x9a, 0xe9, 0x62, 0x65, 0x8a, 0x0d, 0x6f, 0x8a, - 0x51, 0x82, 0xa0, 0x55, 0xc6, 0x09, 0x20, 0xc6, 0x7b, 0x10, 0x6c, 0xd8, 0x47, 0x2c, 0x7e, 0x6d, - 0x02, 0x52, 0x81, 0xb6, 0x0e, 0x9d, 0x80, 0xf4, 0x75, 0xed, 0xa6, 0xa6, 0x8a, 0x56, 0x9d, 0x79, - 0x22, 0x45, 0x64, 0x35, 0xde, 0xae, 0x3f, 0x0d, 0xb3, 0x54, 0xc5, 0x6e, 0x7b, 0xd8, 0x51, 0x75, - 0x53, 0x73, 0x5d, 0xea, 0xb4, 0x04, 0x55, 0x45, 0x64, 0xac, 0x4a, 0x86, 0x56, 0xc4, 0x08, 0x3a, - 0x07, 0x33, 0x14, 0xd1, 0x6c, 0x9b, 0x9e, 0xd1, 0x32, 0xb1, 0x4a, 0x1e, 0x1e, 0x5c, 0x9a, 0x88, - 0x7d, 0xcb, 0xa6, 0x89, 0x46, 0x85, 0x2b, 0x10, 0x8b, 0x5c, 0xb4, 0x0a, 0x0f, 0x53, 0x58, 0x03, - 0x5b, 0xd8, 0xd1, 0x3c, 0xac, 0xe2, 0xcf, 0xb4, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xae, 0xee, 0x69, - 0xee, 0x5e, 0x76, 0x96, 0x10, 0x14, 0x23, 0x59, 0x49, 0x39, 0x4e, 0x14, 0xd7, 0xb8, 0x5e, 0x89, - 0xaa, 0x15, 0xac, 0xfa, 0x27, 0x35, 0x77, 0x0f, 0xe5, 0xe1, 0x18, 0x65, 0x71, 0x3d, 0xc7, 0xb0, - 0x1a, 0xaa, 0xbe, 0x87, 0xf5, 0x1b, 0x6a, 0xdb, 0xdb, 0xbd, 0x90, 0x7d, 0x28, 0x78, 0x7f, 0x6a, - 0xe1, 0x26, 0xd5, 0x59, 0x21, 0x2a, 0xdb, 0xde, 0xee, 0x05, 0xb4, 0x09, 0x69, 0xb2, 0x18, 0x4d, - 0xe3, 0x25, 0xac, 0xee, 0xda, 0x0e, 0xad, 0x2c, 0x99, 0x21, 0x3b, 0x3b, 0xe0, 0xc1, 0xe5, 0x2a, - 0x07, 0x54, 0xec, 0x3a, 0xce, 0xc7, 0x37, 0x6b, 0xa5, 0xd2, 0xaa, 0x92, 0x12, 0x2c, 0x97, 0x6c, - 0x87, 0x04, 0x54, 0xc3, 0xf6, 0x1d, 0x9c, 0x62, 0x01, 0xd5, 0xb0, 0x85, 0x7b, 0xcf, 0xc1, 0x8c, - 0xae, 0xb3, 0x39, 0x1b, 0xba, 0xca, 0x5b, 0x7c, 0x37, 0x2b, 0xf7, 0x38, 0x4b, 0xd7, 0xd7, 0x98, - 0x02, 0x8f, 0x71, 0x17, 0x3d, 0x0b, 0x0f, 0x74, 0x9d, 0x15, 0x04, 0x4e, 0x0f, 0xcc, 0xb2, 0x1f, - 0x7a, 0x0e, 0x66, 0x5a, 0x9d, 0x41, 0x20, 0xea, 0xb9, 0x63, 0xab, 0xd3, 0x0f, 0x7b, 0x8c, 0x3e, - 0xb6, 0x39, 0x58, 0xd7, 0x3c, 0x5c, 0xcf, 0x3e, 0x18, 0xd4, 0x0e, 0x0c, 0xa0, 0x53, 0x20, 0xeb, - 0xba, 0x8a, 0x2d, 0x6d, 0xc7, 0xc4, 0xaa, 0xe6, 0x60, 0x4b, 0x73, 0xb3, 0xf3, 0x41, 0xe5, 0x8c, - 0xae, 0x97, 0xe8, 0x68, 0x81, 0x0e, 0xa2, 0x27, 0x61, 0xda, 0xde, 0xb9, 0xae, 0xb3, 0xc8, 0x52, - 0x5b, 0x0e, 0xde, 0x35, 0x5e, 0xcc, 0x3e, 0x4a, 0xdd, 0x34, 0x45, 0x06, 0x68, 0x5c, 0xd5, 0xa8, - 0x18, 0x3d, 0x01, 0xb2, 0xee, 0xee, 0x69, 0x4e, 0x8b, 0x96, 0x76, 0xb7, 0xa5, 0xe9, 0x38, 0xfb, - 0x18, 0x53, 0x65, 0xf2, 0x0d, 0x21, 0x26, 0x91, 0xed, 0xde, 0x32, 0x76, 0x3d, 0xc1, 0x78, 0x92, - 0x45, 0x36, 0x95, 0x71, 0xb6, 0xab, 0x30, 0xdb, 0xb6, 0x0c, 0xcb, 0xc3, 0x4e, 0xcb, 0xc1, 0xa4, - 0x89, 0x67, 0x3b, 0x31, 0xfb, 0x6f, 0x13, 0x07, 0xb4, 0xe1, 0xdb, 0x41, 0x6d, 0x16, 0x00, 0xca, - 0x4c, 0x7b, 0x50, 0xb8, 0x98, 0x87, 0x74, 0x30, 0x2e, 0x50, 0x12, 0x58, 0x64, 0xc8, 0x12, 0xa9, - 0xb1, 0x2b, 0xd5, 0x55, 0x52, 0x1d, 0x5f, 0x28, 0xc9, 0x11, 0x52, 0xa5, 0xd7, 0xcb, 0x5b, 0x25, - 0x55, 0xd9, 0xde, 0xd8, 0x2a, 0x57, 0x4a, 0x72, 0xf4, 0xc9, 0x64, 0xe2, 0x9d, 0x09, 0xf9, 0xf6, - 0xed, 0xdb, 0xb7, 0x23, 0x8b, 0xdf, 0x8d, 0x40, 0xa6, 0xb7, 0x33, 0x46, 0x1f, 0x87, 0x07, 0xc5, - 0x63, 0xac, 0x8b, 0x3d, 0xf5, 0x96, 0xe1, 0xd0, 0x50, 0x6d, 0x6a, 0xac, 0xb7, 0xf4, 0xbd, 0x3c, - 0xcb, 0xb5, 0x36, 0xb1, 0x77, 0xc5, 0x70, 0x48, 0x20, 0x36, 0x35, 0x0f, 0xad, 0xc3, 0xbc, 0x65, - 0xab, 0xae, 0xa7, 0x59, 0x75, 0xcd, 0xa9, 0xab, 0xdd, 0x03, 0x04, 0x55, 0xd3, 0x75, 0xec, 0xba, - 0x36, 0x2b, 0x11, 0x3e, 0xcb, 0x47, 0x2c, 0x7b, 0x93, 0x2b, 0x77, 0x73, 0x67, 0x81, 0xab, 0xf6, - 0x45, 0x44, 0xf4, 0xa0, 0x88, 0x78, 0x08, 0x92, 0x4d, 0xad, 0xa5, 0x62, 0xcb, 0x73, 0x3a, 0xb4, - 0x9f, 0x4b, 0x28, 0x89, 0xa6, 0xd6, 0x2a, 0x91, 0xeb, 0x0f, 0x6f, 0x0d, 0x82, 0x7e, 0xfc, 0xd7, - 0x28, 0xa4, 0x83, 0x3d, 0x1d, 0x69, 0x91, 0x75, 0x9a, 0xbf, 0x25, 0xba, 0xc3, 0x1f, 0x39, 0xb4, - 0x03, 0x5c, 0x5e, 0x21, 0x89, 0x3d, 0x3f, 0xce, 0x3a, 0x2d, 0x85, 0x21, 0x49, 0x51, 0x25, 0x7b, - 0x1a, 0xb3, 0xfe, 0x3d, 0xa1, 0xf0, 0x2b, 0xb4, 0x06, 0xe3, 0xd7, 0x5d, 0xca, 0x3d, 0x4e, 0xb9, - 0x1f, 0x3d, 0x9c, 0xfb, 0xf2, 0x26, 0x25, 0x4f, 0x5e, 0xde, 0x54, 0x37, 0xaa, 0x4a, 0xa5, 0xb0, - 0xae, 0x70, 0x38, 0x3a, 0x0e, 0x31, 0x53, 0x7b, 0xa9, 0xd3, 0x5b, 0x02, 0xa8, 0x68, 0x54, 0xc7, - 0x1f, 0x87, 0xd8, 0x2d, 0xac, 0xdd, 0xe8, 0x4d, 0xbc, 0x54, 0xf4, 0x21, 0x86, 0xfe, 0x29, 0x88, - 0x53, 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x0c, 0x25, 0x20, 0xb6, 0x52, 0x55, 0x48, 0xf8, 0xcb, - 0x90, 0x66, 0x52, 0xb5, 0x56, 0x2e, 0xad, 0x94, 0xe4, 0xc8, 0xe2, 0x39, 0x18, 0x67, 0x4e, 0x20, - 0x5b, 0xc3, 0x77, 0x83, 0x3c, 0xc6, 0x2f, 0x39, 0x87, 0x24, 0x46, 0xb7, 0x2b, 0xc5, 0x92, 0x22, - 0x47, 0x82, 0xcb, 0xeb, 0x42, 0x3a, 0xd8, 0xce, 0xfd, 0x74, 0x62, 0xea, 0xef, 0x25, 0x48, 0x05, - 0xda, 0x33, 0xd2, 0x18, 0x68, 0xa6, 0x69, 0xdf, 0x52, 0x35, 0xd3, 0xd0, 0x5c, 0x1e, 0x14, 0x40, - 0x45, 0x05, 0x22, 0x19, 0x75, 0xd1, 0x7e, 0x2a, 0xc6, 0xbf, 0x26, 0x81, 0xdc, 0xdf, 0xda, 0xf5, - 0x19, 0x28, 0xfd, 0x4c, 0x0d, 0x7c, 0x55, 0x82, 0x4c, 0x6f, 0x3f, 0xd7, 0x67, 0xde, 0x89, 0x9f, - 0xa9, 0x79, 0x6f, 0x45, 0x60, 0xb2, 0xa7, 0x8b, 0x1b, 0xd5, 0xba, 0xcf, 0xc0, 0xb4, 0x51, 0xc7, - 0xcd, 0x96, 0xed, 0x61, 0x4b, 0xef, 0xa8, 0x26, 0xbe, 0x89, 0xcd, 0xec, 0x22, 0x4d, 0x14, 0xa7, - 0x0e, 0xef, 0x13, 0x97, 0xcb, 0x5d, 0xdc, 0x3a, 0x81, 0xe5, 0x67, 0xca, 0xab, 0xa5, 0x4a, 0xad, - 0xba, 0x55, 0xda, 0x58, 0xb9, 0xa6, 0x6e, 0x6f, 0xfc, 0xdc, 0x46, 0xf5, 0xca, 0x86, 0x22, 0x1b, - 0x7d, 0x6a, 0x1f, 0xe2, 0x56, 0xaf, 0x81, 0xdc, 0x6f, 0x14, 0x7a, 0x10, 0x86, 0x99, 0x25, 0x8f, - 0xa1, 0x19, 0x98, 0xda, 0xa8, 0xaa, 0x9b, 0xe5, 0xd5, 0x92, 0x5a, 0xba, 0x74, 0xa9, 0xb4, 0xb2, - 0xb5, 0xc9, 0x1e, 0x9c, 0x7d, 0xed, 0xad, 0xde, 0x4d, 0xfd, 0x4a, 0x14, 0x66, 0x86, 0x58, 0x82, - 0x0a, 0xbc, 0x67, 0x67, 0x8f, 0x11, 0x1f, 0x1b, 0xc5, 0xfa, 0x65, 0xd2, 0x15, 0xd4, 0x34, 0xc7, - 0xe3, 0x2d, 0xfe, 0x13, 0x40, 0xbc, 0x64, 0x79, 0xc6, 0xae, 0x81, 0x1d, 0x7e, 0xce, 0xc0, 0x1a, - 0xf9, 0xa9, 0xae, 0x9c, 0x1d, 0x35, 0x7c, 0x14, 0x50, 0xcb, 0x76, 0x0d, 0xcf, 0xb8, 0x89, 0x55, - 0xc3, 0x12, 0x87, 0x12, 0xa4, 0xb1, 0x8f, 0x29, 0xb2, 0x18, 0x29, 0x5b, 0x9e, 0xaf, 0x6d, 0xe1, - 0x86, 0xd6, 0xa7, 0x4d, 0x12, 0x78, 0x54, 0x91, 0xc5, 0x88, 0xaf, 0x7d, 0x02, 0xd2, 0x75, 0xbb, - 0x4d, 0xda, 0x24, 0xa6, 0x47, 0xea, 0x85, 0xa4, 0xa4, 0x98, 0xcc, 0x57, 0xe1, 0x7d, 0x6c, 0xf7, - 0x34, 0x24, 0xad, 0xa4, 0x98, 0x8c, 0xa9, 0x9c, 0x84, 0x29, 0xad, 0xd1, 0x70, 0x08, 0xb9, 0x20, - 0x62, 0x9d, 0x79, 0xc6, 0x17, 0x53, 0xc5, 0xb9, 0xcb, 0x90, 0x10, 0x7e, 0x20, 0x25, 0x99, 0x78, - 0x42, 0x6d, 0xb1, 0x33, 0xa9, 0xc8, 0x52, 0x52, 0x49, 0x58, 0x62, 0xf0, 0x04, 0xa4, 0x0d, 0x57, - 0xed, 0x1e, 0x8e, 0x46, 0x16, 0x22, 0x4b, 0x09, 0x25, 0x65, 0xb8, 0xfe, 0x69, 0xd8, 0xe2, 0xeb, - 0x11, 0xc8, 0xf4, 0x1e, 0xee, 0xa2, 0x55, 0x48, 0x98, 0xb6, 0xae, 0xd1, 0xd0, 0x62, 0x6f, 0x16, - 0x96, 0x42, 0xce, 0x83, 0x97, 0xd7, 0xb9, 0xbe, 0xe2, 0x23, 0xe7, 0xfe, 0x59, 0x82, 0x84, 0x10, - 0xa3, 0x63, 0x10, 0x6b, 0x69, 0xde, 0x1e, 0xa5, 0x8b, 0x17, 0x23, 0xb2, 0xa4, 0xd0, 0x6b, 0x22, - 0x77, 0x5b, 0x9a, 0x45, 0x43, 0x80, 0xcb, 0xc9, 0x35, 0x59, 0x57, 0x13, 0x6b, 0x75, 0xda, 0xf6, - 0xdb, 0xcd, 0x26, 0xb6, 0x3c, 0x57, 0xac, 0x2b, 0x97, 0xaf, 0x70, 0x31, 0x7a, 0x0a, 0xa6, 0x3d, - 0x47, 0x33, 0xcc, 0x1e, 0xdd, 0x18, 0xd5, 0x95, 0xc5, 0x80, 0xaf, 0x9c, 0x87, 0xe3, 0x82, 0xb7, - 0x8e, 0x3d, 0x4d, 0xdf, 0xc3, 0xf5, 0x2e, 0x68, 0x9c, 0x9e, 0x1c, 0x3e, 0xc8, 0x15, 0x56, 0xf9, - 0xb8, 0xc0, 0x2e, 0x7e, 0x5f, 0x82, 0x69, 0xf1, 0xa0, 0x52, 0xf7, 0x9d, 0x55, 0x01, 0xd0, 0x2c, - 0xcb, 0xf6, 0x82, 0xee, 0x1a, 0x0c, 0xe5, 0x01, 0xdc, 0x72, 0xc1, 0x07, 0x29, 0x01, 0x82, 0xb9, - 0x26, 0x40, 0x77, 0xe4, 0x40, 0xb7, 0xcd, 0x43, 0x8a, 0x9f, 0xdc, 0xd3, 0xd7, 0x3f, 0xec, 0xd1, - 0x16, 0x98, 0x88, 0x3c, 0xd1, 0xa0, 0x59, 0x88, 0xef, 0xe0, 0x86, 0x61, 0xf1, 0xf3, 0x44, 0x76, - 0x21, 0x4e, 0x29, 0x63, 0xfe, 0x29, 0x65, 0xf1, 0x2a, 0xcc, 0xe8, 0x76, 0xb3, 0xdf, 0xdc, 0xa2, - 0xdc, 0xf7, 0x78, 0xed, 0x7e, 0x52, 0x7a, 0x01, 0xba, 0x2d, 0xe6, 0x97, 0x23, 0xd1, 0xb5, 0x5a, - 0xf1, 0xab, 0x91, 0xb9, 0x35, 0x86, 0xab, 0x89, 0x69, 0x2a, 0x78, 0xd7, 0xc4, 0x3a, 0x31, 0x1d, - 0x7e, 0xf4, 0x38, 0x7c, 0xac, 0x61, 0x78, 0x7b, 0xed, 0x9d, 0x65, 0xdd, 0x6e, 0x9e, 0x6a, 0xd8, - 0x0d, 0xbb, 0xfb, 0xba, 0x8b, 0x5c, 0xd1, 0x0b, 0xfa, 0x8b, 0xbf, 0xf2, 0x4a, 0xfa, 0xd2, 0xb9, - 0xd0, 0xf7, 0x63, 0xf9, 0x0d, 0x98, 0xe1, 0xca, 0x2a, 0x3d, 0x73, 0x67, 0x8f, 0x06, 0xe8, 0xd0, - 0x73, 0x97, 0xec, 0x37, 0xde, 0xa6, 0xb5, 0x5a, 0x99, 0xe6, 0x50, 0x32, 0xc6, 0x1e, 0x20, 0xf2, - 0x0a, 0x3c, 0xd0, 0xc3, 0xc7, 0xf6, 0x25, 0x76, 0x42, 0x18, 0xbf, 0xcb, 0x19, 0x67, 0x02, 0x8c, - 0x9b, 0x1c, 0x9a, 0x5f, 0x81, 0xc9, 0xa3, 0x70, 0xfd, 0x23, 0xe7, 0x4a, 0xe3, 0x20, 0xc9, 0x1a, - 0x4c, 0x51, 0x12, 0xbd, 0xed, 0x7a, 0x76, 0x93, 0x26, 0xbd, 0xc3, 0x69, 0xfe, 0xe9, 0x6d, 0xb6, - 0x51, 0x32, 0x04, 0xb6, 0xe2, 0xa3, 0xf2, 0x79, 0xa0, 0xaf, 0x19, 0xea, 0x58, 0x37, 0x43, 0x18, - 0xde, 0xe0, 0x86, 0xf8, 0xfa, 0xf9, 0x4f, 0xc3, 0x2c, 0xf9, 0x4d, 0x73, 0x52, 0xd0, 0x92, 0xf0, - 0x53, 0xa6, 0xec, 0xf7, 0x5f, 0x66, 0x7b, 0x71, 0xc6, 0x27, 0x08, 0xd8, 0x14, 0x58, 0xc5, 0x06, - 0xf6, 0x3c, 0xec, 0xb8, 0xaa, 0x66, 0x0e, 0x33, 0x2f, 0xf0, 0x98, 0x9e, 0xfd, 0xe2, 0xbb, 0xbd, - 0xab, 0xb8, 0xc6, 0x90, 0x05, 0xd3, 0xcc, 0x6f, 0xc3, 0x83, 0x43, 0xa2, 0x62, 0x04, 0xce, 0x57, - 0x38, 0xe7, 0xec, 0x40, 0x64, 0x10, 0xda, 0x1a, 0x08, 0xb9, 0xbf, 0x96, 0x23, 0x70, 0xfe, 0x01, - 0xe7, 0x44, 0x1c, 0x2b, 0x96, 0x94, 0x30, 0x5e, 0x86, 0xe9, 0x9b, 0xd8, 0xd9, 0xb1, 0x5d, 0x7e, - 0x34, 0x32, 0x02, 0xdd, 0xab, 0x9c, 0x6e, 0x8a, 0x03, 0xe9, 0x59, 0x09, 0xe1, 0x7a, 0x16, 0x12, - 0xbb, 0x9a, 0x8e, 0x47, 0xa0, 0xf8, 0x12, 0xa7, 0x98, 0x20, 0xfa, 0x04, 0x5a, 0x80, 0x74, 0xc3, - 0xe6, 0x65, 0x29, 0x1c, 0xfe, 0x1a, 0x87, 0xa7, 0x04, 0x86, 0x53, 0xb4, 0xec, 0x56, 0xdb, 0x24, - 0x35, 0x2b, 0x9c, 0xe2, 0x0f, 0x05, 0x85, 0xc0, 0x70, 0x8a, 0x23, 0xb8, 0xf5, 0x8f, 0x04, 0x85, - 0x1b, 0xf0, 0xe7, 0xf3, 0x90, 0xb2, 0x2d, 0xb3, 0x63, 0x5b, 0xa3, 0x18, 0xf1, 0xc7, 0x9c, 0x01, - 0x38, 0x84, 0x10, 0x5c, 0x84, 0xe4, 0xa8, 0x0b, 0xf1, 0x27, 0xef, 0x8a, 0xed, 0x21, 0x56, 0x60, - 0x0d, 0xa6, 0x44, 0x82, 0x32, 0x6c, 0x6b, 0x04, 0x8a, 0x3f, 0xe5, 0x14, 0x99, 0x00, 0x8c, 0x4f, - 0xc3, 0xc3, 0xae, 0xd7, 0xc0, 0xa3, 0x90, 0xbc, 0x2e, 0xa6, 0xc1, 0x21, 0xdc, 0x95, 0x3b, 0xd8, - 0xd2, 0xf7, 0x46, 0x63, 0xf8, 0x8a, 0x70, 0xa5, 0xc0, 0x10, 0x8a, 0x15, 0x98, 0x6c, 0x6a, 0x8e, - 0xbb, 0xa7, 0x99, 0x23, 0x2d, 0xc7, 0x9f, 0x71, 0x8e, 0xb4, 0x0f, 0xe2, 0x1e, 0x69, 0x5b, 0x47, - 0xa1, 0xf9, 0xaa, 0xf0, 0x48, 0x00, 0xc6, 0xb7, 0x9e, 0xeb, 0xd1, 0x03, 0xa8, 0xa3, 0xb0, 0x7d, - 0x4d, 0x6c, 0x3d, 0x86, 0xad, 0x04, 0x19, 0x2f, 0x42, 0xd2, 0x35, 0x5e, 0x1a, 0x89, 0xe6, 0xcf, - 0xc5, 0x4a, 0x53, 0x00, 0x01, 0x5f, 0x83, 0xe3, 0x43, 0xcb, 0xc4, 0x08, 0x64, 0x7f, 0xc1, 0xc9, - 0x8e, 0x0d, 0x29, 0x15, 0x3c, 0x25, 0x1c, 0x95, 0xf2, 0x2f, 0x45, 0x4a, 0xc0, 0x7d, 0x5c, 0x35, - 0xf2, 0xa0, 0xe0, 0x6a, 0xbb, 0x47, 0xf3, 0xda, 0x5f, 0x09, 0xaf, 0x31, 0x6c, 0x8f, 0xd7, 0xb6, - 0xe0, 0x18, 0x67, 0x3c, 0xda, 0xba, 0x7e, 0x5d, 0x24, 0x56, 0x86, 0xde, 0xee, 0x5d, 0xdd, 0x9f, - 0x87, 0x39, 0xdf, 0x9d, 0xa2, 0x23, 0x75, 0xd5, 0xa6, 0xd6, 0x1a, 0x81, 0xf9, 0x1b, 0x9c, 0x59, - 0x64, 0x7c, 0xbf, 0xa5, 0x75, 0x2b, 0x5a, 0x8b, 0x90, 0x5f, 0x85, 0xac, 0x20, 0x6f, 0x5b, 0x0e, - 0xd6, 0xed, 0x86, 0x65, 0xbc, 0x84, 0xeb, 0x23, 0x50, 0xff, 0x75, 0xdf, 0x52, 0x6d, 0x07, 0xe0, - 0x84, 0xb9, 0x0c, 0xb2, 0xdf, 0xab, 0xa8, 0x46, 0xb3, 0x65, 0x3b, 0x5e, 0x08, 0xe3, 0xdf, 0x88, - 0x95, 0xf2, 0x71, 0x65, 0x0a, 0xcb, 0x97, 0x20, 0x43, 0x2f, 0x47, 0x0d, 0xc9, 0xbf, 0xe5, 0x44, - 0x93, 0x5d, 0x14, 0x4f, 0x1c, 0xba, 0xdd, 0x6c, 0x69, 0xce, 0x28, 0xf9, 0xef, 0x9b, 0x22, 0x71, - 0x70, 0x08, 0x4f, 0x1c, 0x5e, 0xa7, 0x85, 0x49, 0xb5, 0x1f, 0x81, 0xe1, 0x5b, 0x22, 0x71, 0x08, - 0x0c, 0xa7, 0x10, 0x0d, 0xc3, 0x08, 0x14, 0x7f, 0x27, 0x28, 0x04, 0x86, 0x50, 0x7c, 0xaa, 0x5b, - 0x68, 0x1d, 0xdc, 0x30, 0x5c, 0xcf, 0x61, 0x7d, 0xf0, 0xe1, 0x54, 0xdf, 0x7e, 0xb7, 0xb7, 0x09, - 0x53, 0x02, 0xd0, 0xfc, 0x65, 0x98, 0xea, 0x6b, 0x31, 0x50, 0xd8, 0x37, 0x0b, 0xd9, 0x5f, 0x7c, - 0x9f, 0x27, 0xa3, 0xde, 0x0e, 0x23, 0xbf, 0x4e, 0xd6, 0xbd, 0xb7, 0x0f, 0x08, 0x27, 0x7b, 0xf9, - 0x7d, 0x7f, 0xe9, 0x7b, 0xda, 0x80, 0xfc, 0x25, 0x98, 0xec, 0xe9, 0x01, 0xc2, 0xa9, 0x7e, 0x89, - 0x53, 0xa5, 0x83, 0x2d, 0x40, 0xfe, 0x1c, 0xc4, 0x48, 0x3d, 0x0f, 0x87, 0xff, 0x32, 0x87, 0x53, - 0xf5, 0xfc, 0x27, 0x20, 0x21, 0xea, 0x78, 0x38, 0xf4, 0x57, 0x38, 0xd4, 0x87, 0x10, 0xb8, 0xa8, - 0xe1, 0xe1, 0xf0, 0xcf, 0x09, 0xb8, 0x80, 0x10, 0xf8, 0xe8, 0x2e, 0xfc, 0xce, 0xaf, 0xc5, 0x78, - 0x1e, 0x16, 0xbe, 0xbb, 0x08, 0x13, 0xbc, 0x78, 0x87, 0xa3, 0x3f, 0xcf, 0x6f, 0x2e, 0x10, 0xf9, - 0x67, 0x20, 0x3e, 0xa2, 0xc3, 0x7f, 0x9d, 0x43, 0x99, 0x7e, 0x7e, 0x05, 0x52, 0x81, 0x82, 0x1d, - 0x0e, 0xff, 0x0d, 0x0e, 0x0f, 0xa2, 0x88, 0xe9, 0xbc, 0x60, 0x87, 0x13, 0xfc, 0xa6, 0x30, 0x9d, - 0x23, 0x88, 0xdb, 0x44, 0xad, 0x0e, 0x47, 0xff, 0x96, 0xf0, 0xba, 0x80, 0xe4, 0x9f, 0x87, 0xa4, - 0x9f, 0x7f, 0xc3, 0xf1, 0xbf, 0xcd, 0xf1, 0x5d, 0x0c, 0xf1, 0x40, 0x20, 0xff, 0x87, 0x53, 0xfc, - 0x8e, 0xf0, 0x40, 0x00, 0x45, 0xb6, 0x51, 0x7f, 0x4d, 0x0f, 0x67, 0xfa, 0x5d, 0xb1, 0x8d, 0xfa, - 0x4a, 0x3a, 0x59, 0x4d, 0x9a, 0x06, 0xc3, 0x29, 0x7e, 0x4f, 0xac, 0x26, 0xd5, 0x27, 0x66, 0xf4, - 0x17, 0xc9, 0x70, 0x8e, 0xdf, 0x17, 0x66, 0xf4, 0xd5, 0xc8, 0x7c, 0x0d, 0xd0, 0x60, 0x81, 0x0c, - 0xe7, 0xfb, 0x02, 0xe7, 0x9b, 0x1e, 0xa8, 0x8f, 0xf9, 0x2b, 0x70, 0x6c, 0x78, 0x71, 0x0c, 0x67, - 0xfd, 0xe2, 0xfb, 0x7d, 0x8f, 0x33, 0xc1, 0xda, 0x98, 0xdf, 0xea, 0x66, 0xd9, 0x60, 0x61, 0x0c, - 0xa7, 0x7d, 0xe5, 0xfd, 0xde, 0x44, 0x1b, 0xac, 0x8b, 0xf9, 0x02, 0x40, 0xb7, 0x26, 0x85, 0x73, - 0xbd, 0xca, 0xb9, 0x02, 0x20, 0xb2, 0x35, 0x78, 0x49, 0x0a, 0xc7, 0x7f, 0x49, 0x6c, 0x0d, 0x8e, - 0x20, 0x5b, 0x43, 0x54, 0xa3, 0x70, 0xf4, 0x6b, 0x62, 0x6b, 0x08, 0x48, 0xfe, 0x22, 0x24, 0xac, - 0xb6, 0x69, 0x92, 0xd8, 0x42, 0x87, 0x7f, 0x46, 0x94, 0xfd, 0xe1, 0x07, 0x1c, 0x2c, 0x00, 0xf9, - 0x73, 0x10, 0xc7, 0xcd, 0x1d, 0x5c, 0x0f, 0x43, 0xfe, 0xfb, 0x07, 0x22, 0x9f, 0x10, 0xed, 0xfc, - 0xf3, 0x00, 0xec, 0x61, 0x9a, 0xbe, 0x25, 0x0a, 0xc1, 0xfe, 0xc7, 0x07, 0xfc, 0x0b, 0x85, 0x2e, - 0xa4, 0x4b, 0xc0, 0xbe, 0x77, 0x38, 0x9c, 0xe0, 0xdd, 0x5e, 0x02, 0xfa, 0x00, 0xfe, 0x2c, 0x4c, - 0x5c, 0x77, 0x6d, 0xcb, 0xd3, 0x1a, 0x61, 0xe8, 0xff, 0xe4, 0x68, 0xa1, 0x4f, 0x1c, 0xd6, 0xb4, - 0x1d, 0xec, 0x69, 0x0d, 0x37, 0x0c, 0xfb, 0x5f, 0x1c, 0xeb, 0x03, 0x08, 0x58, 0xd7, 0x5c, 0x6f, - 0x94, 0x79, 0xff, 0xb7, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0xfc, 0xbe, 0x81, 0x3b, 0x61, 0xd8, 0xf7, - 0x84, 0xd1, 0x5c, 0x3f, 0xff, 0x09, 0x48, 0x92, 0x9f, 0xec, 0xab, 0x9d, 0x10, 0xf0, 0xff, 0x70, - 0x70, 0x17, 0x41, 0xee, 0xec, 0x7a, 0x75, 0xcf, 0x08, 0x77, 0xf6, 0xff, 0xf2, 0x95, 0x16, 0xfa, - 0xf9, 0x02, 0xa4, 0x5c, 0xaf, 0x5e, 0x6f, 0xf3, 0x8e, 0x26, 0x04, 0xfe, 0xa3, 0x0f, 0xfc, 0x87, - 0x5c, 0x1f, 0x53, 0x3c, 0x31, 0xfc, 0xb0, 0x0e, 0xd6, 0xec, 0x35, 0x9b, 0x1d, 0xd3, 0xc1, 0x3f, - 0x4c, 0xc1, 0x49, 0xdd, 0x6e, 0xee, 0xd8, 0xee, 0x29, 0x96, 0x50, 0x02, 0xc9, 0xe8, 0x94, 0x70, - 0x20, 0x3f, 0x6f, 0xf3, 0x1d, 0x3a, 0x77, 0xb4, 0x83, 0xba, 0xc5, 0x1f, 0x4e, 0x42, 0x62, 0x45, - 0x73, 0x3d, 0xed, 0x96, 0xd6, 0x41, 0x8f, 0x41, 0xa2, 0x6c, 0x79, 0x67, 0x4e, 0xd7, 0x3c, 0x87, - 0xbe, 0x68, 0x8a, 0x16, 0x93, 0xf7, 0xee, 0xcc, 0xc7, 0x0d, 0x22, 0x53, 0xfc, 0x21, 0xf4, 0x08, - 0xc4, 0xe9, 0x6f, 0x7a, 0x56, 0x19, 0x2d, 0x4e, 0xbe, 0x71, 0x67, 0x7e, 0xac, 0xab, 0xc7, 0xc6, - 0xd0, 0x35, 0x48, 0x55, 0x3a, 0xdb, 0x86, 0xe5, 0x9d, 0x3f, 0x4b, 0xe8, 0x88, 0x0b, 0x62, 0xc5, - 0x67, 0xee, 0xdd, 0x99, 0x3f, 0x73, 0xa0, 0x81, 0xa4, 0x30, 0x76, 0x27, 0x26, 0xd0, 0xf4, 0xfb, - 0xc5, 0x20, 0x17, 0xba, 0x02, 0x09, 0x71, 0xc9, 0xce, 0xfc, 0x8b, 0x17, 0xb9, 0x09, 0xf7, 0xc5, - 0xed, 0x93, 0xa1, 0x5f, 0x80, 0x74, 0xa5, 0x73, 0xc9, 0xb4, 0x35, 0xee, 0x83, 0xf8, 0x82, 0xb4, - 0x14, 0x29, 0x5e, 0xb8, 0x77, 0x67, 0xfe, 0xec, 0xc8, 0xc4, 0x1c, 0x4e, 0x99, 0x7b, 0xd8, 0xd0, - 0x0b, 0x90, 0xf4, 0xaf, 0xe9, 0x5b, 0x85, 0x48, 0xf1, 0xe3, 0xdc, 0xee, 0xfb, 0xa3, 0xef, 0xd2, - 0x05, 0x2c, 0x67, 0xee, 0x9e, 0x58, 0x90, 0x96, 0xa4, 0xfb, 0xb1, 0x9c, 0xfb, 0xa4, 0x87, 0x2d, - 0x60, 0xf9, 0xf9, 0xb3, 0xf4, 0x35, 0x86, 0x74, 0xbf, 0x96, 0x73, 0xfa, 0x2e, 0x1d, 0xba, 0x0c, - 0x13, 0x95, 0x4e, 0xb1, 0xe3, 0x61, 0x97, 0x7e, 0xd7, 0x93, 0x2e, 0x3e, 0x7d, 0xef, 0xce, 0xfc, - 0x47, 0x47, 0x64, 0xa5, 0x38, 0x45, 0x10, 0xa0, 0x05, 0x48, 0x6d, 0xd8, 0x4e, 0x53, 0x33, 0x19, - 0x1f, 0xb0, 0xd7, 0x32, 0x01, 0x11, 0xda, 0x26, 0x33, 0x61, 0xab, 0xed, 0xd2, 0xff, 0x48, 0xf8, - 0x09, 0x62, 0xb2, 0xcb, 0x84, 0x0c, 0x88, 0x57, 0x3a, 0x15, 0xad, 0x95, 0x4d, 0xd3, 0x77, 0x06, - 0x0f, 0x2f, 0xfb, 0x08, 0xb1, 0xb7, 0x96, 0xe9, 0x38, 0xfd, 0xb8, 0xa2, 0x78, 0xf6, 0xde, 0x9d, - 0xf9, 0xa7, 0x47, 0xbe, 0x63, 0x45, 0x6b, 0xd1, 0xdb, 0xb1, 0x3b, 0xa0, 0x6f, 0x4a, 0x64, 0x63, - 0xb1, 0x73, 0x57, 0x72, 0xc7, 0x49, 0x7a, 0xc7, 0x47, 0x86, 0xde, 0xd1, 0xd7, 0x62, 0xf7, 0xb5, - 0x3e, 0xfb, 0xe6, 0x11, 0x66, 0xca, 0x9e, 0x6d, 0xc8, 0xad, 0x7f, 0xf5, 0xcd, 0xfb, 0xde, 0xb4, - 0xbe, 0x05, 0xe8, 0x65, 0x09, 0x26, 0x2b, 0x9d, 0x0d, 0x5e, 0x65, 0x89, 0xe5, 0x19, 0xfe, 0xdd, - 0xfa, 0x30, 0xcb, 0x03, 0x7a, 0xcc, 0xf6, 0xf3, 0x9f, 0x7d, 0x73, 0xfe, 0xf4, 0xc8, 0x46, 0xd0, - 0x14, 0x44, 0x6d, 0xe8, 0xbd, 0x27, 0xfa, 0x1c, 0xb5, 0xa2, 0x44, 0x2a, 0x76, 0x1d, 0xd7, 0x89, - 0x15, 0x53, 0x87, 0x58, 0x11, 0xd0, 0x63, 0x56, 0xe4, 0x49, 0xd4, 0xdf, 0xbf, 0x25, 0x01, 0x3e, - 0x54, 0x85, 0x71, 0xe6, 0x61, 0xfa, 0x4d, 0x59, 0xf2, 0x88, 0x61, 0xd8, 0x5d, 0x1c, 0x85, 0xd3, - 0xcc, 0x5d, 0x00, 0xe8, 0xc6, 0x18, 0x92, 0x21, 0x7a, 0x03, 0x77, 0xf8, 0x87, 0x83, 0xe4, 0x27, - 0x9a, 0xed, 0x7e, 0x18, 0x2b, 0x2d, 0xc5, 0xf8, 0xd7, 0xae, 0xf9, 0xc8, 0x05, 0x69, 0xee, 0x39, - 0x90, 0xfb, 0x63, 0xe5, 0x48, 0x78, 0x05, 0xd0, 0xe0, 0x8a, 0x05, 0x19, 0xe2, 0x8c, 0xe1, 0xf1, - 0x20, 0x43, 0xea, 0xb4, 0xdc, 0xf5, 0xf9, 0x15, 0xc3, 0x74, 0x6d, 0x6b, 0x80, 0xb3, 0xdf, 0xff, - 0x3f, 0x19, 0xe7, 0x62, 0x0e, 0xc6, 0x99, 0x90, 0xcc, 0xa5, 0x4c, 0xcb, 0x07, 0xad, 0x72, 0x0a, - 0xbb, 0x28, 0xae, 0xbf, 0x71, 0x37, 0x37, 0xf6, 0xbd, 0xbb, 0xb9, 0xb1, 0x7f, 0xb9, 0x9b, 0x1b, - 0x7b, 0xeb, 0x6e, 0x4e, 0x7a, 0xe7, 0x6e, 0x4e, 0x7a, 0xef, 0x6e, 0x4e, 0xfa, 0xf1, 0xdd, 0x9c, - 0x74, 0x7b, 0x3f, 0x27, 0x7d, 0x65, 0x3f, 0x27, 0x7d, 0x7d, 0x3f, 0x27, 0x7d, 0x7b, 0x3f, 0x27, - 0x7d, 0x67, 0x3f, 0x27, 0xbd, 0xb1, 0x9f, 0x1b, 0xfb, 0xde, 0x7e, 0x6e, 0xec, 0xad, 0xfd, 0x9c, - 0xf4, 0xce, 0x7e, 0x6e, 0xec, 0xbd, 0xfd, 0x9c, 0xf4, 0xe3, 0xfd, 0xdc, 0xd8, 0xed, 0x1f, 0xe4, - 0xa4, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x34, 0x50, 0x96, 0x1b, 0x36, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Castaway) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Castaway") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Castaway but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Castaway but is not nil && this == nil") - } - if this.Int32Ptr != nil && that1.Int32Ptr != nil { - if *this.Int32Ptr != *that1.Int32Ptr { - return fmt.Errorf("Int32Ptr this(%v) Not Equal that(%v)", *this.Int32Ptr, *that1.Int32Ptr) - } - } else if this.Int32Ptr != nil { - return fmt.Errorf("this.Int32Ptr == nil && that.Int32Ptr != nil") - } else if that1.Int32Ptr != nil { - return fmt.Errorf("Int32Ptr this(%v) Not Equal that(%v)", this.Int32Ptr, that1.Int32Ptr) - } - if this.Int32 != that1.Int32 { - return fmt.Errorf("Int32 this(%v) Not Equal that(%v)", this.Int32, that1.Int32) - } - if this.MyUint64Ptr != nil && that1.MyUint64Ptr != nil { - if *this.MyUint64Ptr != *that1.MyUint64Ptr { - return fmt.Errorf("MyUint64Ptr this(%v) Not Equal that(%v)", *this.MyUint64Ptr, *that1.MyUint64Ptr) - } - } else if this.MyUint64Ptr != nil { - return fmt.Errorf("this.MyUint64Ptr == nil && that.MyUint64Ptr != nil") - } else if that1.MyUint64Ptr != nil { - return fmt.Errorf("MyUint64Ptr this(%v) Not Equal that(%v)", this.MyUint64Ptr, that1.MyUint64Ptr) - } - if this.MyUint64 != that1.MyUint64 { - return fmt.Errorf("MyUint64 this(%v) Not Equal that(%v)", this.MyUint64, that1.MyUint64) - } - if this.MyFloat32Ptr != nil && that1.MyFloat32Ptr != nil { - if *this.MyFloat32Ptr != *that1.MyFloat32Ptr { - return fmt.Errorf("MyFloat32Ptr this(%v) Not Equal that(%v)", *this.MyFloat32Ptr, *that1.MyFloat32Ptr) - } - } else if this.MyFloat32Ptr != nil { - return fmt.Errorf("this.MyFloat32Ptr == nil && that.MyFloat32Ptr != nil") - } else if that1.MyFloat32Ptr != nil { - return fmt.Errorf("MyFloat32Ptr this(%v) Not Equal that(%v)", this.MyFloat32Ptr, that1.MyFloat32Ptr) - } - if this.MyFloat32 != that1.MyFloat32 { - return fmt.Errorf("MyFloat32 this(%v) Not Equal that(%v)", this.MyFloat32, that1.MyFloat32) - } - if this.MyFloat64Ptr != nil && that1.MyFloat64Ptr != nil { - if *this.MyFloat64Ptr != *that1.MyFloat64Ptr { - return fmt.Errorf("MyFloat64Ptr this(%v) Not Equal that(%v)", *this.MyFloat64Ptr, *that1.MyFloat64Ptr) - } - } else if this.MyFloat64Ptr != nil { - return fmt.Errorf("this.MyFloat64Ptr == nil && that.MyFloat64Ptr != nil") - } else if that1.MyFloat64Ptr != nil { - return fmt.Errorf("MyFloat64Ptr this(%v) Not Equal that(%v)", this.MyFloat64Ptr, that1.MyFloat64Ptr) - } - if this.MyFloat64 != that1.MyFloat64 { - return fmt.Errorf("MyFloat64 this(%v) Not Equal that(%v)", this.MyFloat64, that1.MyFloat64) - } - if !bytes.Equal(this.MyBytes, that1.MyBytes) { - return fmt.Errorf("MyBytes this(%v) Not Equal that(%v)", this.MyBytes, that1.MyBytes) - } - if !bytes.Equal(this.NormalBytes, that1.NormalBytes) { - return fmt.Errorf("NormalBytes this(%v) Not Equal that(%v)", this.NormalBytes, that1.NormalBytes) - } - if len(this.MyUint64S) != len(that1.MyUint64S) { - return fmt.Errorf("MyUint64S this(%v) Not Equal that(%v)", len(this.MyUint64S), len(that1.MyUint64S)) - } - for i := range this.MyUint64S { - if this.MyUint64S[i] != that1.MyUint64S[i] { - return fmt.Errorf("MyUint64S this[%v](%v) Not Equal that[%v](%v)", i, this.MyUint64S[i], i, that1.MyUint64S[i]) - } - } - if len(this.MyMap) != len(that1.MyMap) { - return fmt.Errorf("MyMap this(%v) Not Equal that(%v)", len(this.MyMap), len(that1.MyMap)) - } - for i := range this.MyMap { - if this.MyMap[i] != that1.MyMap[i] { - return fmt.Errorf("MyMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyMap[i], i, that1.MyMap[i]) - } - } - if len(this.MyCustomMap) != len(that1.MyCustomMap) { - return fmt.Errorf("MyCustomMap this(%v) Not Equal that(%v)", len(this.MyCustomMap), len(that1.MyCustomMap)) - } - for i := range this.MyCustomMap { - if this.MyCustomMap[i] != that1.MyCustomMap[i] { - return fmt.Errorf("MyCustomMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyCustomMap[i], i, that1.MyCustomMap[i]) - } - } - if len(this.MyNullableMap) != len(that1.MyNullableMap) { - return fmt.Errorf("MyNullableMap this(%v) Not Equal that(%v)", len(this.MyNullableMap), len(that1.MyNullableMap)) - } - for i := range this.MyNullableMap { - if !this.MyNullableMap[i].Equal(that1.MyNullableMap[i]) { - return fmt.Errorf("MyNullableMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyNullableMap[i], i, that1.MyNullableMap[i]) - } - } - if len(this.MyEmbeddedMap) != len(that1.MyEmbeddedMap) { - return fmt.Errorf("MyEmbeddedMap this(%v) Not Equal that(%v)", len(this.MyEmbeddedMap), len(that1.MyEmbeddedMap)) - } - for i := range this.MyEmbeddedMap { - a := this.MyEmbeddedMap[i] - b := that1.MyEmbeddedMap[i] - if !(&a).Equal(&b) { - return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i]) - } - } - if this.String_ != nil && that1.String_ != nil { - if *this.String_ != *that1.String_ { - return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_) - } - } else if this.String_ != nil { - return fmt.Errorf("this.String_ == nil && that.String_ != nil") - } else if that1.String_ != nil { - return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Castaway) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Int32Ptr != nil && that1.Int32Ptr != nil { - if *this.Int32Ptr != *that1.Int32Ptr { - return false - } - } else if this.Int32Ptr != nil { - return false - } else if that1.Int32Ptr != nil { - return false - } - if this.Int32 != that1.Int32 { - return false - } - if this.MyUint64Ptr != nil && that1.MyUint64Ptr != nil { - if *this.MyUint64Ptr != *that1.MyUint64Ptr { - return false - } - } else if this.MyUint64Ptr != nil { - return false - } else if that1.MyUint64Ptr != nil { - return false - } - if this.MyUint64 != that1.MyUint64 { - return false - } - if this.MyFloat32Ptr != nil && that1.MyFloat32Ptr != nil { - if *this.MyFloat32Ptr != *that1.MyFloat32Ptr { - return false - } - } else if this.MyFloat32Ptr != nil { - return false - } else if that1.MyFloat32Ptr != nil { - return false - } - if this.MyFloat32 != that1.MyFloat32 { - return false - } - if this.MyFloat64Ptr != nil && that1.MyFloat64Ptr != nil { - if *this.MyFloat64Ptr != *that1.MyFloat64Ptr { - return false - } - } else if this.MyFloat64Ptr != nil { - return false - } else if that1.MyFloat64Ptr != nil { - return false - } - if this.MyFloat64 != that1.MyFloat64 { - return false - } - if !bytes.Equal(this.MyBytes, that1.MyBytes) { - return false - } - if !bytes.Equal(this.NormalBytes, that1.NormalBytes) { - return false - } - if len(this.MyUint64S) != len(that1.MyUint64S) { - return false - } - for i := range this.MyUint64S { - if this.MyUint64S[i] != that1.MyUint64S[i] { - return false - } - } - if len(this.MyMap) != len(that1.MyMap) { - return false - } - for i := range this.MyMap { - if this.MyMap[i] != that1.MyMap[i] { - return false - } - } - if len(this.MyCustomMap) != len(that1.MyCustomMap) { - return false - } - for i := range this.MyCustomMap { - if this.MyCustomMap[i] != that1.MyCustomMap[i] { - return false - } - } - if len(this.MyNullableMap) != len(that1.MyNullableMap) { - return false - } - for i := range this.MyNullableMap { - if !this.MyNullableMap[i].Equal(that1.MyNullableMap[i]) { - return false - } - } - if len(this.MyEmbeddedMap) != len(that1.MyEmbeddedMap) { - return false - } - for i := range this.MyEmbeddedMap { - a := this.MyEmbeddedMap[i] - b := that1.MyEmbeddedMap[i] - if !(&a).Equal(&b) { - return false - } - } - if this.String_ != nil && that1.String_ != nil { - if *this.String_ != *that1.String_ { - return false - } - } else if this.String_ != nil { - return false - } else if that1.String_ != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Wilson) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Wilson") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Wilson but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Wilson but is not nil && this == nil") - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", *this.Int64, *that1.Int64) - } - } else if this.Int64 != nil { - return fmt.Errorf("this.Int64 == nil && that.Int64 != nil") - } else if that1.Int64 != nil { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", this.Int64, that1.Int64) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Wilson) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return false - } - } else if this.Int64 != nil { - return false - } else if that1.Int64 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetInt32Ptr() *int32 - GetInt32() int32 - GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyUint64() github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyFloat32Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat32Type - GetMyFloat32() github_com_gogo_protobuf_test_casttype.MyFloat32Type - GetMyFloat64Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat64Type - GetMyFloat64() github_com_gogo_protobuf_test_casttype.MyFloat64Type - GetMyBytes() github_com_gogo_protobuf_test_casttype.Bytes - GetNormalBytes() []byte - GetMyUint64S() []github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyMap() github_com_gogo_protobuf_test_casttype.MyMapType - GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type - GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson - GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson - GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType -} - -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCastawayFromFace(this) -} - -func (this *Castaway) GetInt32Ptr() *int32 { - return this.Int32Ptr -} - -func (this *Castaway) GetInt32() int32 { - return this.Int32 -} - -func (this *Castaway) GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyUint64Ptr -} - -func (this *Castaway) GetMyUint64() github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyUint64 -} - -func (this *Castaway) GetMyFloat32Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat32Type { - return this.MyFloat32Ptr -} - -func (this *Castaway) GetMyFloat32() github_com_gogo_protobuf_test_casttype.MyFloat32Type { - return this.MyFloat32 -} - -func (this *Castaway) GetMyFloat64Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat64Type { - return this.MyFloat64Ptr -} - -func (this *Castaway) GetMyFloat64() github_com_gogo_protobuf_test_casttype.MyFloat64Type { - return this.MyFloat64 -} - -func (this *Castaway) GetMyBytes() github_com_gogo_protobuf_test_casttype.Bytes { - return this.MyBytes -} - -func (this *Castaway) GetNormalBytes() []byte { - return this.NormalBytes -} - -func (this *Castaway) GetMyUint64S() []github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyUint64S -} - -func (this *Castaway) GetMyMap() github_com_gogo_protobuf_test_casttype.MyMapType { - return this.MyMap -} - -func (this *Castaway) GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type { - return this.MyCustomMap -} - -func (this *Castaway) GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson { - return this.MyNullableMap -} - -func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson { - return this.MyEmbeddedMap -} - -func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType { - return this.String_ -} - -func NewCastawayFromFace(that CastawayFace) *Castaway { - this := &Castaway{} - this.Int32Ptr = that.GetInt32Ptr() - this.Int32 = that.GetInt32() - this.MyUint64Ptr = that.GetMyUint64Ptr() - this.MyUint64 = that.GetMyUint64() - this.MyFloat32Ptr = that.GetMyFloat32Ptr() - this.MyFloat32 = that.GetMyFloat32() - this.MyFloat64Ptr = that.GetMyFloat64Ptr() - this.MyFloat64 = that.GetMyFloat64() - this.MyBytes = that.GetMyBytes() - this.NormalBytes = that.GetNormalBytes() - this.MyUint64S = that.GetMyUint64S() - this.MyMap = that.GetMyMap() - this.MyCustomMap = that.GetMyCustomMap() - this.MyNullableMap = that.GetMyNullableMap() - this.MyEmbeddedMap = that.GetMyEmbeddedMap() - this.String_ = that.GetString_() - return this -} - -type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetInt64() *int64 -} - -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { - return NewWilsonFromFace(this) -} - -func (this *Wilson) GetInt64() *int64 { - return this.Int64 -} - -func NewWilsonFromFace(that WilsonFace) *Wilson { - this := &Wilson{} - this.Int64 = that.GetInt64() - return this -} - -func (this *Castaway) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&casttype.Castaway{") - if this.Int32Ptr != nil { - s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n") - } - s = append(s, "Int32: "+fmt.Sprintf("%#v", this.Int32)+",\n") - if this.MyUint64Ptr != nil { - s = append(s, "MyUint64Ptr: "+valueToGoStringCasttype(this.MyUint64Ptr, "github_com_gogo_protobuf_test_casttype.MyUint64Type")+",\n") - } - s = append(s, "MyUint64: "+fmt.Sprintf("%#v", this.MyUint64)+",\n") - if this.MyFloat32Ptr != nil { - s = append(s, "MyFloat32Ptr: "+valueToGoStringCasttype(this.MyFloat32Ptr, "github_com_gogo_protobuf_test_casttype.MyFloat32Type")+",\n") - } - s = append(s, "MyFloat32: "+fmt.Sprintf("%#v", this.MyFloat32)+",\n") - if this.MyFloat64Ptr != nil { - s = append(s, "MyFloat64Ptr: "+valueToGoStringCasttype(this.MyFloat64Ptr, "github_com_gogo_protobuf_test_casttype.MyFloat64Type")+",\n") - } - s = append(s, "MyFloat64: "+fmt.Sprintf("%#v", this.MyFloat64)+",\n") - if this.MyBytes != nil { - s = append(s, "MyBytes: "+valueToGoStringCasttype(this.MyBytes, "github_com_gogo_protobuf_test_casttype.Bytes")+",\n") - } - if this.NormalBytes != nil { - s = append(s, "NormalBytes: "+valueToGoStringCasttype(this.NormalBytes, "byte")+",\n") - } - if this.MyUint64S != nil { - s = append(s, "MyUint64S: "+fmt.Sprintf("%#v", this.MyUint64S)+",\n") - } - keysForMyMap := make([]string, 0, len(this.MyMap)) - for k := range this.MyMap { - keysForMyMap = append(keysForMyMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) - mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" - for _, k := range keysForMyMap { - mapStringForMyMap += fmt.Sprintf("%#v: %#v,", k, this.MyMap[k]) - } - mapStringForMyMap += "}" - if this.MyMap != nil { - s = append(s, "MyMap: "+mapStringForMyMap+",\n") - } - keysForMyCustomMap := make([]string, 0, len(this.MyCustomMap)) - for k := range this.MyCustomMap { - keysForMyCustomMap = append(keysForMyCustomMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) - mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" - for _, k := range keysForMyCustomMap { - mapStringForMyCustomMap += fmt.Sprintf("%#v: %#v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) - } - mapStringForMyCustomMap += "}" - if this.MyCustomMap != nil { - s = append(s, "MyCustomMap: "+mapStringForMyCustomMap+",\n") - } - keysForMyNullableMap := make([]int32, 0, len(this.MyNullableMap)) - for k := range this.MyNullableMap { - keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) - mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" - for _, k := range keysForMyNullableMap { - mapStringForMyNullableMap += fmt.Sprintf("%#v: %#v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyNullableMap += "}" - if this.MyNullableMap != nil { - s = append(s, "MyNullableMap: "+mapStringForMyNullableMap+",\n") - } - keysForMyEmbeddedMap := make([]int32, 0, len(this.MyEmbeddedMap)) - for k := range this.MyEmbeddedMap { - keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) - mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" - for _, k := range keysForMyEmbeddedMap { - mapStringForMyEmbeddedMap += fmt.Sprintf("%#v: %#v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyEmbeddedMap += "}" - if this.MyEmbeddedMap != nil { - s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n") - } - if this.String_ != nil { - s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Wilson) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&casttype.Wilson{") - if this.Int64 != nil { - s = append(s, "Int64: "+valueToGoStringCasttype(this.Int64, "int64")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringCasttype(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway { - this := &Castaway{} - if r.Intn(10) != 0 { - v1 := int32(r.Int63()) - if r.Intn(2) == 0 { - v1 *= -1 - } - this.Int32Ptr = &v1 - } - this.Int32 = int32(r.Int63()) - if r.Intn(2) == 0 { - this.Int32 *= -1 - } - if r.Intn(10) != 0 { - v2 := github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - this.MyUint64Ptr = &v2 - } - this.MyUint64 = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - if r.Intn(10) != 0 { - v3 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(r.Float32()) - if r.Intn(2) == 0 { - v3 *= -1 - } - this.MyFloat32Ptr = &v3 - } - this.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(r.Float32()) - if r.Intn(2) == 0 { - this.MyFloat32 *= -1 - } - if r.Intn(10) != 0 { - v4 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(r.Float64()) - if r.Intn(2) == 0 { - v4 *= -1 - } - this.MyFloat64Ptr = &v4 - } - this.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(r.Float64()) - if r.Intn(2) == 0 { - this.MyFloat64 *= -1 - } - if r.Intn(10) != 0 { - v5 := r.Intn(100) - this.MyBytes = make(github_com_gogo_protobuf_test_casttype.Bytes, v5) - for i := 0; i < v5; i++ { - this.MyBytes[i] = byte(r.Intn(256)) - } - } - if r.Intn(10) != 0 { - v6 := r.Intn(100) - this.NormalBytes = make([]byte, v6) - for i := 0; i < v6; i++ { - this.NormalBytes[i] = byte(r.Intn(256)) - } - } - if r.Intn(10) != 0 { - v7 := r.Intn(10) - this.MyUint64S = make([]github_com_gogo_protobuf_test_casttype.MyUint64Type, v7) - for i := 0; i < v7; i++ { - this.MyUint64S[i] = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v8 := r.Intn(10) - this.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) - for i := 0; i < v8; i++ { - v9 := randStringCasttype(r) - this.MyMap[v9] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v10 := r.Intn(10) - this.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) - for i := 0; i < v10; i++ { - v11 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) - this.MyCustomMap[v11] = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v12 := r.Intn(10) - this.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) - for i := 0; i < v12; i++ { - this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = NewPopulatedWilson(r, easy) - } - } - if r.Intn(10) != 0 { - v13 := r.Intn(10) - this.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) - for i := 0; i < v13; i++ { - this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy) - } - } - if r.Intn(10) != 0 { - v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r)) - this.String_ = &v14 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 17) - } - return this -} - -func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson { - this := &Wilson{} - if r.Intn(10) != 0 { - v15 := int64(r.Int63()) - if r.Intn(2) == 0 { - v15 *= -1 - } - this.Int64 = &v15 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCasttype(r, 2) - } - return this -} - -type randyCasttype interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneCasttype(r randyCasttype) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringCasttype(r randyCasttype) string { - v16 := r.Intn(100) - tmps := make([]rune, v16) - for i := 0; i < v16; i++ { - tmps[i] = randUTF8RuneCasttype(r) - } - return string(tmps) -} -func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - v17 := r.Int63() - if r.Intn(2) == 0 { - v17 *= -1 - } - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17)) - case 1: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Castaway) Size() (n int) { - var l int - _ = l - if m.Int32Ptr != nil { - n += 1 + sovCasttype(uint64(*m.Int32Ptr)) - } - n += 1 + sovCasttype(uint64(m.Int32)) - if m.MyUint64Ptr != nil { - n += 1 + sovCasttype(uint64(*m.MyUint64Ptr)) - } - n += 1 + sovCasttype(uint64(m.MyUint64)) - if m.MyFloat32Ptr != nil { - n += 5 - } - n += 5 - if m.MyFloat64Ptr != nil { - n += 9 - } - n += 9 - if m.MyBytes != nil { - l = len(m.MyBytes) - n += 1 + l + sovCasttype(uint64(l)) - } - if m.NormalBytes != nil { - l = len(m.NormalBytes) - n += 1 + l + sovCasttype(uint64(l)) - } - if len(m.MyUint64S) > 0 { - for _, e := range m.MyUint64S { - n += 1 + sovCasttype(uint64(e)) - } - } - if len(m.MyMap) > 0 { - for k, v := range m.MyMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if len(m.MyCustomMap) > 0 { - for k, v := range m.MyCustomMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v)) - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if len(m.MyNullableMap) > 0 { - for k, v := range m.MyNullableMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovCasttype(uint64(l)) - } - mapEntrySize := 1 + sovCasttype(uint64(k)) + l - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if len(m.MyEmbeddedMap) > 0 { - for k, v := range m.MyEmbeddedMap { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l)) - n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize)) - } - } - if m.String_ != nil { - l = len(*m.String_) - n += 2 + l + sovCasttype(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Wilson) Size() (n int) { - var l int - _ = l - if m.Int64 != nil { - n += 1 + sovCasttype(uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovCasttype(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozCasttype(x uint64) (n int) { - return sovCasttype(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Castaway) String() string { - if this == nil { - return "nil" - } - keysForMyMap := make([]string, 0, len(this.MyMap)) - for k := range this.MyMap { - keysForMyMap = append(keysForMyMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap) - mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{" - for _, k := range keysForMyMap { - mapStringForMyMap += fmt.Sprintf("%v: %v,", k, this.MyMap[k]) - } - mapStringForMyMap += "}" - keysForMyCustomMap := make([]string, 0, len(this.MyCustomMap)) - for k := range this.MyCustomMap { - keysForMyCustomMap = append(keysForMyCustomMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap) - mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{" - for _, k := range keysForMyCustomMap { - mapStringForMyCustomMap += fmt.Sprintf("%v: %v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)]) - } - mapStringForMyCustomMap += "}" - keysForMyNullableMap := make([]int32, 0, len(this.MyNullableMap)) - for k := range this.MyNullableMap { - keysForMyNullableMap = append(keysForMyNullableMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap) - mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{" - for _, k := range keysForMyNullableMap { - mapStringForMyNullableMap += fmt.Sprintf("%v: %v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyNullableMap += "}" - keysForMyEmbeddedMap := make([]int32, 0, len(this.MyEmbeddedMap)) - for k := range this.MyEmbeddedMap { - keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap) - mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{" - for _, k := range keysForMyEmbeddedMap { - mapStringForMyEmbeddedMap += fmt.Sprintf("%v: %v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)]) - } - mapStringForMyEmbeddedMap += "}" - s := strings.Join([]string{`&Castaway{`, - `Int32Ptr:` + valueToStringCasttype(this.Int32Ptr) + `,`, - `Int32:` + fmt.Sprintf("%v", this.Int32) + `,`, - `MyUint64Ptr:` + valueToStringCasttype(this.MyUint64Ptr) + `,`, - `MyUint64:` + fmt.Sprintf("%v", this.MyUint64) + `,`, - `MyFloat32Ptr:` + valueToStringCasttype(this.MyFloat32Ptr) + `,`, - `MyFloat32:` + fmt.Sprintf("%v", this.MyFloat32) + `,`, - `MyFloat64Ptr:` + valueToStringCasttype(this.MyFloat64Ptr) + `,`, - `MyFloat64:` + fmt.Sprintf("%v", this.MyFloat64) + `,`, - `MyBytes:` + valueToStringCasttype(this.MyBytes) + `,`, - `NormalBytes:` + valueToStringCasttype(this.NormalBytes) + `,`, - `MyUint64S:` + fmt.Sprintf("%v", this.MyUint64S) + `,`, - `MyMap:` + mapStringForMyMap + `,`, - `MyCustomMap:` + mapStringForMyCustomMap + `,`, - `MyNullableMap:` + mapStringForMyNullableMap + `,`, - `MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`, - `String_:` + valueToStringCasttype(this.String_) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Wilson) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Wilson{`, - `Int64:` + valueToStringCasttype(this.Int64) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringCasttype(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Castaway) 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 ErrIntOverflowCasttypeUnsafe - } - 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: Castaway: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Castaway: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Ptr", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Ptr = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32", wireType) - } - m.Int32 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Int32 |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64Ptr", wireType) - } - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyUint64Ptr = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64", wireType) - } - m.MyUint64 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MyUint64 |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field MyFloat32Ptr", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 - v2 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) - m.MyFloat32Ptr = &v2 - case 6: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field MyFloat32", wireType) - } - var v uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 - m.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v)) - case 7: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field MyFloat64Ptr", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 - v2 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) - m.MyFloat64Ptr = &v2 - case 8: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field MyFloat64", wireType) - } - var v uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 - m.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v)) - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyBytes", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MyBytes = append(m.MyBytes[:0], dAtA[iNdEx:postIndex]...) - if m.MyBytes == nil { - m.MyBytes = []byte{} - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NormalBytes", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NormalBytes = append(m.NormalBytes[:0], dAtA[iNdEx:postIndex]...) - if m.NormalBytes == nil { - m.NormalBytes = []byte{} - } - iNdEx = postIndex - case 11: - if wireType == 0 { - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyUint64S = append(m.MyUint64S, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyUint64S = append(m.MyUint64S, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType) - } - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.MyMap == nil { - m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyMap[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.MyMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyCustomMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.MyCustomMap == nil { - m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test_casttype.MyUint64Type - m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyNullableMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.MyNullableMap == nil { - m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue - } else { - var mapvalue *Wilson - m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MyEmbeddedMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.MyEmbeddedMap == nil { - m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue - } else { - var mapvalue Wilson - m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - 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 ErrInvalidLengthCasttypeUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postIndex]) - m.String_ = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCasttypeUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Wilson) 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 ErrIntOverflowCasttypeUnsafe - } - 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: Wilson: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Wilson: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCasttypeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64 = &v - default: - iNdEx = preIndex - skippy, err := skipCasttypeUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCasttypeUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipCasttypeUnsafe(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, ErrIntOverflowCasttypeUnsafe - } - 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, ErrIntOverflowCasttypeUnsafe - } - 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, ErrIntOverflowCasttypeUnsafe - } - 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, ErrInvalidLengthCasttypeUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowCasttypeUnsafe - } - 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 := skipCasttypeUnsafe(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 ( - ErrInvalidLengthCasttypeUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowCasttypeUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeunmarshaler/casttype.proto", fileDescriptorCasttype) } - -var fileDescriptorCasttype = []byte{ - // 705 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x4c, - 0x18, 0xc7, 0x7d, 0x4d, 0xd3, 0x26, 0x97, 0xe6, 0x7d, 0xa3, 0x13, 0x83, 0x55, 0x89, 0xb3, 0xd5, - 0xaa, 0xe0, 0x01, 0x92, 0x2a, 0x8d, 0x4a, 0x55, 0x10, 0x83, 0xab, 0x22, 0x15, 0xe1, 0x82, 0x0c, - 0x55, 0x05, 0x62, 0xb9, 0xb4, 0x6e, 0x1a, 0xe1, 0xd8, 0x91, 0x7d, 0x06, 0x79, 0xab, 0xca, 0x80, - 0xc4, 0x5f, 0xc2, 0xc8, 0x82, 0xc4, 0xc8, 0xd8, 0xb1, 0x23, 0x53, 0x5a, 0x9b, 0xa5, 0x6c, 0x1d, - 0xab, 0x4c, 0xc8, 0x77, 0x4e, 0xec, 0xfe, 0x00, 0xa5, 0xee, 0x76, 0xcf, 0xdd, 0xf3, 0x7c, 0x9e, - 0xef, 0x3d, 0xf7, 0xdc, 0x1d, 0xbc, 0xbb, 0x65, 0x77, 0x9a, 0xb6, 0x5b, 0xf3, 0x2c, 0x97, 0xec, - 0x18, 0x9e, 0xd5, 0x21, 0x8e, 0xbb, 0x4b, 0x4c, 0xc3, 0xa9, 0x6d, 0x11, 0x97, 0x52, 0xbf, 0x6b, - 0x54, 0xbb, 0x8e, 0x4d, 0x6d, 0x54, 0x18, 0xd8, 0xd3, 0xf7, 0x5b, 0x6d, 0xba, 0xeb, 0x35, 0xab, - 0x5b, 0x76, 0xa7, 0xd6, 0xb2, 0x5b, 0x76, 0x8d, 0x39, 0x34, 0xbd, 0x1d, 0x66, 0x31, 0x83, 0x8d, - 0x78, 0xe0, 0xcc, 0xef, 0x32, 0x2c, 0xac, 0x10, 0x97, 0x92, 0x0f, 0xc4, 0x47, 0x73, 0xb0, 0xb0, - 0x66, 0xd1, 0x85, 0xfa, 0x0b, 0xea, 0x88, 0x40, 0x06, 0x4a, 0x4e, 0x2d, 0xf6, 0x7b, 0x52, 0xbe, - 0x1d, 0xcd, 0xe9, 0xc3, 0x25, 0x34, 0x0b, 0xf3, 0x6c, 0x2c, 0x8e, 0x31, 0x9f, 0xf2, 0x41, 0x4f, - 0x12, 0x12, 0x3f, 0xbe, 0x86, 0x5e, 0xc3, 0x92, 0xe6, 0x6f, 0xb4, 0x2d, 0xba, 0xd8, 0x88, 0x70, - 0x39, 0x19, 0x28, 0xe3, 0xea, 0x83, 0x7e, 0x4f, 0x5a, 0xf8, 0xab, 0x40, 0x6a, 0xb8, 0x34, 0xd9, - 0xd8, 0x20, 0xfa, 0x95, 0xdf, 0x35, 0xf4, 0x34, 0x0b, 0x6d, 0xc2, 0xc2, 0xc0, 0x14, 0xc7, 0x19, - 0xf7, 0x61, 0x2c, 0x21, 0x13, 0x7b, 0x08, 0x43, 0x6f, 0xe1, 0x94, 0xe6, 0x3f, 0x31, 0x6d, 0x12, - 0xd7, 0x20, 0x2f, 0x03, 0x65, 0x4c, 0x5d, 0xea, 0xf7, 0xa4, 0xc6, 0xc8, 0xe0, 0x38, 0x9c, 0x91, - 0xcf, 0xd1, 0xd0, 0x1b, 0x58, 0x1c, 0xda, 0xe2, 0x04, 0x43, 0x3f, 0x8a, 0x75, 0x67, 0xc3, 0x27, - 0xb8, 0x94, 0x72, 0x5e, 0xee, 0x49, 0x19, 0x28, 0x20, 0x8b, 0xf2, 0xb8, 0x26, 0xe7, 0x68, 0x29, - 0xe5, 0x8b, 0x0d, 0xb1, 0xc0, 0xd0, 0x19, 0x95, 0xc7, 0xf8, 0x04, 0x87, 0x9e, 0xc2, 0x49, 0xcd, - 0x57, 0x7d, 0x6a, 0xb8, 0x62, 0x51, 0x06, 0xca, 0x94, 0x3a, 0xdf, 0xef, 0x49, 0xf7, 0x46, 0xa4, - 0xb2, 0x38, 0x7d, 0x00, 0x40, 0x32, 0x2c, 0xad, 0xdb, 0x4e, 0x87, 0x98, 0x9c, 0x07, 0x23, 0x9e, - 0x9e, 0x9e, 0x42, 0x1b, 0xd1, 0x4e, 0xf8, 0x69, 0xbb, 0x62, 0x49, 0xce, 0xdd, 0xa4, 0x27, 0x13, - 0x12, 0x6a, 0xc3, 0xbc, 0xe6, 0x6b, 0xa4, 0x2b, 0x4e, 0xc9, 0x39, 0xa5, 0x54, 0xbf, 0x5d, 0x1d, - 0x46, 0x0c, 0xee, 0x56, 0x95, 0xad, 0xaf, 0x5a, 0xd4, 0xf1, 0xd5, 0x46, 0xbf, 0x27, 0xcd, 0x8f, - 0x9c, 0x51, 0x23, 0x5d, 0x96, 0x8e, 0x67, 0x40, 0xdf, 0x40, 0x74, 0xb1, 0x56, 0x3c, 0x97, 0xda, - 0x9d, 0x28, 0x63, 0x99, 0x65, 0x9c, 0xbd, 0x32, 0xe3, 0xd0, 0x8b, 0xe7, 0xb5, 0xf6, 0x8f, 0xae, - 0xb1, 0xd3, 0x97, 0xd4, 0x69, 0x5b, 0xad, 0x28, 0xf5, 0xe7, 0xa3, 0xcc, 0x97, 0x76, 0xa8, 0x00, - 0x7d, 0x04, 0xb0, 0xac, 0xf9, 0xeb, 0x9e, 0x69, 0x92, 0xa6, 0x69, 0x44, 0xca, 0xff, 0x63, 0xca, - 0xe7, 0xae, 0x54, 0x9e, 0xf2, 0xe3, 0xda, 0x17, 0xf7, 0x8f, 0xa4, 0xfa, 0xc8, 0x22, 0xd8, 0x13, - 0xc4, 0x34, 0x9c, 0xcf, 0x89, 0x3e, 0x31, 0x15, 0xab, 0x9d, 0xa6, 0xb1, 0xbd, 0x6d, 0x6c, 0x47, - 0x2a, 0xfe, 0xff, 0x87, 0x8a, 0x94, 0x1f, 0x57, 0xb1, 0x1c, 0x75, 0x7d, 0x76, 0x25, 0x29, 0x1e, - 0x7a, 0x0e, 0x27, 0x78, 0x85, 0xc5, 0x8a, 0x0c, 0x94, 0xe2, 0x35, 0xdb, 0x30, 0x39, 0x1c, 0x3d, - 0xc6, 0x4c, 0x2f, 0x41, 0x98, 0xf4, 0x18, 0xaa, 0xc0, 0xdc, 0x3b, 0xc3, 0x67, 0xaf, 0x78, 0x51, - 0x8f, 0x86, 0xe8, 0x16, 0xcc, 0xbf, 0x27, 0xa6, 0x67, 0xb0, 0x57, 0x7b, 0x5c, 0xe7, 0xc6, 0xf2, - 0xd8, 0x12, 0x98, 0x7e, 0x0c, 0x2b, 0x17, 0x7b, 0xe5, 0x5a, 0xf1, 0x3a, 0x44, 0x97, 0x4f, 0x2c, - 0x4d, 0xc8, 0x73, 0xc2, 0x9d, 0x34, 0xa1, 0x54, 0xaf, 0x24, 0x35, 0xdf, 0x6c, 0x9b, 0xae, 0x6d, - 0x5d, 0x62, 0x5e, 0xac, 0xff, 0xcd, 0x98, 0x33, 0x18, 0x4e, 0xf0, 0xc9, 0x68, 0x2f, 0x6b, 0xec, - 0xfb, 0x60, 0xbf, 0x9c, 0xce, 0x0d, 0xf5, 0xd9, 0x41, 0x80, 0x85, 0xc3, 0x00, 0x0b, 0x3f, 0x03, - 0x2c, 0x1c, 0x07, 0x18, 0x9c, 0x04, 0x18, 0x9c, 0x06, 0x18, 0x9c, 0x05, 0x18, 0xec, 0x85, 0x18, - 0x7c, 0x09, 0x31, 0xf8, 0x1a, 0x62, 0xf0, 0x3d, 0xc4, 0xe0, 0x47, 0x88, 0xc1, 0x41, 0x88, 0x85, - 0xc3, 0x10, 0x0b, 0xc7, 0x21, 0x06, 0x27, 0x21, 0x16, 0x4e, 0x43, 0x0c, 0xce, 0x42, 0x2c, 0xec, - 0xfd, 0xc2, 0xe0, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x7a, 0xd9, 0xab, 0xbc, 0x07, 0x00, - 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.proto b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.proto deleted file mode 100644 index 6b8a29566..000000000 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttype.proto +++ /dev/null @@ -1,80 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2015, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; - -package casttype; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = false; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message Castaway { - optional int64 Int32Ptr = 1 [(gogoproto.casttype) = "int32"]; - optional int64 Int32 = 2 [(gogoproto.casttype) = "int32", (gogoproto.nullable) = false]; - optional uint64 MyUint64Ptr = 3 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - optional uint64 MyUint64 = 4 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type", (gogoproto.nullable) = false]; - optional float MyFloat32Ptr = 5 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat32Type"]; - optional float MyFloat32 = 6 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat32Type", (gogoproto.nullable) = false]; - optional double MyFloat64Ptr = 7 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat64Type"]; - optional double MyFloat64 = 8 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyFloat64Type", (gogoproto.nullable) = false]; - optional bytes MyBytes = 9 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.Bytes"]; - optional bytes NormalBytes = 10; - repeated uint64 MyUint64s = 11 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - map MyMap = 12 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyMapType"]; - map MyCustomMap = 13 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyStringType", (gogoproto.castvalue) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - map MyNullableMap = 14 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type"]; - map MyEmbeddedMap = 15 [(gogoproto.castkey) = "github.com/gogo/protobuf/test/casttype.MyInt32Type", (gogoproto.nullable) = false]; - optional string String = 16 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyStringType"]; -} - -message Wilson { - optional int64 Int64 = 1; -} diff --git a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttypepb_test.go b/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttypepb_test.go deleted file mode 100644 index 82c06cb57..000000000 --- a/vendor/github.com/gogo/protobuf/test/casttype/combos/unsafeunmarshaler/casttypepb_test.go +++ /dev/null @@ -1,474 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/casttype.proto -// DO NOT EDIT! - -/* -Package casttype is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeunmarshaler/casttype.proto - -It has these top-level messages: - Castaway - Wilson -*/ -package casttype - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestCastawayProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Castaway{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Wilson{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestWilsonJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCastawayProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCastawayProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCasttypeDescription(t *testing.T) { - CasttypeDescription() -} -func TestCastawayVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestWilsonVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCastawaySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go index 94a3b3e5b..d575b4489 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/castvalue.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: castvalue.proto -// DO NOT EDIT! /* Package castvalue is a generated protocol buffer package. @@ -19,15 +18,14 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -63,264 +61,271 @@ func init() { proto.RegisterType((*Castaway)(nil), "castvalue.Castaway") proto.RegisterType((*Wilson)(nil), "castvalue.Wilson") } -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Castaway) Description() (desc *descriptor.FileDescriptorSet) { return CastvalueDescription() } -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Wilson) Description() (desc *descriptor.FileDescriptorSet) { return CastvalueDescription() } -func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func CastvalueDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3784 bytes of a gzipped FileDescriptorSet + // 3894 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0x8e, 0x21, 0x8a, 0xb1, - 0x23, 0xda, 0x4e, 0xa8, 0x8c, 0x2c, 0xc9, 0xf2, 0xaa, 0x89, 0x07, 0x04, 0x21, 0x06, 0x2a, 0x7f, - 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, - 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xf4, 0xbf, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0x33, - 0xd3, 0x3a, 0x4d, 0xfa, 0x93, 0xf4, 0x27, 0xcd, 0xf4, 0x29, 0x7d, 0x48, 0xeb, 0xa7, 0x4e, 0xf2, - 0xd6, 0x87, 0x4e, 0x6b, 0x31, 0x9e, 0xa9, 0xdb, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x99, 0xd1, 0x74, - 0xa6, 0x73, 0xff, 0x16, 0xbb, 0x00, 0xc8, 0x05, 0xd3, 0x71, 0xf2, 0x44, 0xdc, 0x73, 0xcf, 0xf7, - 0xed, 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0xd9, 0xbb, 0x84, 0xef, 0x5d, 0x86, 0xc5, 0xb6, 0xe3, 0xb4, - 0x2d, 0x7c, 0xa1, 0xeb, 0x3a, 0xbe, 0xb3, 0xd7, 0x6b, 0x5d, 0x68, 0x62, 0xcf, 0x70, 0xcd, 0xae, - 0xef, 0xb8, 0x2b, 0x54, 0xa6, 0xcc, 0x30, 0x8d, 0x15, 0xa1, 0xb1, 0xb4, 0x09, 0xb3, 0xd7, 0x4d, - 0x0b, 0xaf, 0x05, 0x8a, 0x0d, 0xec, 0x2b, 0x57, 0x21, 0xd5, 0x32, 0x2d, 0x5c, 0x94, 0x16, 0x93, - 0xcb, 0xb9, 0x8b, 0x8f, 0xaf, 0x0c, 0x80, 0x56, 0xa2, 0x88, 0x3a, 0x11, 0x6b, 0x14, 0xb1, 0xf4, - 0x56, 0x0a, 0xe6, 0x46, 0xcc, 0x2a, 0x0a, 0xa4, 0x6c, 0xd4, 0x21, 0x8c, 0xd2, 0x72, 0x56, 0xa3, - 0xbf, 0x95, 0x22, 0x4c, 0x75, 0x91, 0x71, 0x07, 0xb5, 0x71, 0x31, 0x41, 0xc5, 0x62, 0xa8, 0x94, - 0x00, 0x9a, 0xb8, 0x8b, 0xed, 0x26, 0xb6, 0x8d, 0x83, 0x62, 0x72, 0x31, 0xb9, 0x9c, 0xd5, 0x42, - 0x12, 0xe5, 0x69, 0x98, 0xed, 0xf6, 0xf6, 0x2c, 0xd3, 0xd0, 0x43, 0x6a, 0xb0, 0x98, 0x5c, 0x4e, - 0x6b, 0x32, 0x9b, 0x58, 0xeb, 0x2b, 0x9f, 0x87, 0x99, 0x7b, 0x18, 0xdd, 0x09, 0xab, 0xe6, 0xa8, - 0x6a, 0x81, 0x88, 0x43, 0x8a, 0x15, 0xc8, 0x77, 0xb0, 0xe7, 0xa1, 0x36, 0xd6, 0xfd, 0x83, 0x2e, - 0x2e, 0xa6, 0xe8, 0xea, 0x17, 0x87, 0x56, 0x3f, 0xb8, 0xf2, 0x1c, 0x47, 0xed, 0x1c, 0x74, 0xb1, - 0x52, 0x86, 0x2c, 0xb6, 0x7b, 0x1d, 0xc6, 0x90, 0x3e, 0xc2, 0x7f, 0x55, 0xbb, 0xd7, 0x19, 0x64, - 0xc9, 0x10, 0x18, 0xa7, 0x98, 0xf2, 0xb0, 0x7b, 0xd7, 0x34, 0x70, 0x71, 0x92, 0x12, 0x9c, 0x1f, - 0x22, 0x68, 0xb0, 0xf9, 0x41, 0x0e, 0x81, 0x53, 0x2a, 0x90, 0xc5, 0x2f, 0xfa, 0xd8, 0xf6, 0x4c, - 0xc7, 0x2e, 0x4e, 0x51, 0x92, 0x27, 0x46, 0xec, 0x22, 0xb6, 0x9a, 0x83, 0x14, 0x7d, 0x9c, 0x72, - 0x05, 0xa6, 0x9c, 0xae, 0x6f, 0x3a, 0xb6, 0x57, 0xcc, 0x2c, 0x4a, 0xcb, 0xb9, 0x8b, 0x1f, 0x18, - 0x19, 0x08, 0xdb, 0x4c, 0x47, 0x13, 0xca, 0x4a, 0x0d, 0x64, 0xcf, 0xe9, 0xb9, 0x06, 0xd6, 0x0d, - 0xa7, 0x89, 0x75, 0xd3, 0x6e, 0x39, 0xc5, 0x2c, 0x25, 0x38, 0x3b, 0xbc, 0x10, 0xaa, 0x58, 0x71, - 0x9a, 0xb8, 0x66, 0xb7, 0x1c, 0xad, 0xe0, 0x45, 0xc6, 0xca, 0x29, 0x98, 0xf4, 0x0e, 0x6c, 0x1f, - 0xbd, 0x58, 0xcc, 0xd3, 0x08, 0xe1, 0xa3, 0xa5, 0xff, 0x49, 0xc3, 0xcc, 0x38, 0x21, 0x76, 0x0d, - 0xd2, 0x2d, 0xb2, 0xca, 0x62, 0xe2, 0x24, 0x3e, 0x60, 0x98, 0xa8, 0x13, 0x27, 0x7f, 0x48, 0x27, - 0x96, 0x21, 0x67, 0x63, 0xcf, 0xc7, 0x4d, 0x16, 0x11, 0xc9, 0x31, 0x63, 0x0a, 0x18, 0x68, 0x38, - 0xa4, 0x52, 0x3f, 0x54, 0x48, 0xdd, 0x84, 0x99, 0xc0, 0x24, 0xdd, 0x45, 0x76, 0x5b, 0xc4, 0xe6, - 0x85, 0x38, 0x4b, 0x56, 0xaa, 0x02, 0xa7, 0x11, 0x98, 0x56, 0xc0, 0x91, 0xb1, 0xb2, 0x06, 0xe0, - 0xd8, 0xd8, 0x69, 0xe9, 0x4d, 0x6c, 0x58, 0xc5, 0xcc, 0x11, 0x5e, 0xda, 0x26, 0x2a, 0x43, 0x5e, - 0x72, 0x98, 0xd4, 0xb0, 0x94, 0xe7, 0xfa, 0xa1, 0x36, 0x75, 0x44, 0xa4, 0x6c, 0xb2, 0x43, 0x36, - 0x14, 0x6d, 0xbb, 0x50, 0x70, 0x31, 0x89, 0x7b, 0xdc, 0xe4, 0x2b, 0xcb, 0x52, 0x23, 0x56, 0x62, - 0x57, 0xa6, 0x71, 0x18, 0x5b, 0xd8, 0xb4, 0x1b, 0x1e, 0x2a, 0x1f, 0x84, 0x40, 0xa0, 0xd3, 0xb0, - 0x02, 0x9a, 0x85, 0xf2, 0x42, 0xb8, 0x85, 0x3a, 0x78, 0xe1, 0x2a, 0x14, 0xa2, 0xee, 0x51, 0xe6, - 0x21, 0xed, 0xf9, 0xc8, 0xf5, 0x69, 0x14, 0xa6, 0x35, 0x36, 0x50, 0x64, 0x48, 0x62, 0xbb, 0x49, - 0xb3, 0x5c, 0x5a, 0x23, 0x3f, 0x17, 0x9e, 0x85, 0xe9, 0xc8, 0xe3, 0xc7, 0x05, 0x2e, 0x7d, 0x7e, - 0x12, 0xe6, 0x47, 0xc5, 0xdc, 0xc8, 0xf0, 0x3f, 0x05, 0x93, 0x76, 0xaf, 0xb3, 0x87, 0xdd, 0x62, - 0x92, 0x32, 0xf0, 0x91, 0x52, 0x86, 0xb4, 0x85, 0xf6, 0xb0, 0x55, 0x4c, 0x2d, 0x4a, 0xcb, 0x85, - 0x8b, 0x4f, 0x8f, 0x15, 0xd5, 0x2b, 0x1b, 0x04, 0xa2, 0x31, 0xa4, 0xf2, 0x71, 0x48, 0xf1, 0x14, - 0x47, 0x18, 0x9e, 0x1a, 0x8f, 0x81, 0xc4, 0xa2, 0x46, 0x71, 0xca, 0xa3, 0x90, 0x25, 0x7f, 0x99, - 0x6f, 0x27, 0xa9, 0xcd, 0x19, 0x22, 0x20, 0x7e, 0x55, 0x16, 0x20, 0x43, 0xc3, 0xac, 0x89, 0x45, - 0x69, 0x08, 0xc6, 0x64, 0x63, 0x9a, 0xb8, 0x85, 0x7a, 0x96, 0xaf, 0xdf, 0x45, 0x56, 0x0f, 0xd3, - 0x80, 0xc9, 0x6a, 0x79, 0x2e, 0xfc, 0x14, 0x91, 0x29, 0x67, 0x21, 0xc7, 0xa2, 0xd2, 0xb4, 0x9b, - 0xf8, 0x45, 0x9a, 0x7d, 0xd2, 0x1a, 0x0b, 0xd4, 0x1a, 0x91, 0x90, 0xc7, 0xdf, 0xf6, 0x1c, 0x5b, - 0x6c, 0x2d, 0x7d, 0x04, 0x11, 0xd0, 0xc7, 0x3f, 0x3b, 0x98, 0xf8, 0x1e, 0x1b, 0xbd, 0xbc, 0xc1, - 0x58, 0x5c, 0xfa, 0x46, 0x02, 0x52, 0xf4, 0xbc, 0xcd, 0x40, 0x6e, 0xe7, 0x56, 0xbd, 0xaa, 0xaf, - 0x6d, 0xef, 0xae, 0x6e, 0x54, 0x65, 0x49, 0x29, 0x00, 0x50, 0xc1, 0xf5, 0x8d, 0xed, 0xf2, 0x8e, - 0x9c, 0x08, 0xc6, 0xb5, 0xad, 0x9d, 0x2b, 0x97, 0xe4, 0x64, 0x00, 0xd8, 0x65, 0x82, 0x54, 0x58, - 0xe1, 0x99, 0x8b, 0x72, 0x5a, 0x91, 0x21, 0xcf, 0x08, 0x6a, 0x37, 0xab, 0x6b, 0x57, 0x2e, 0xc9, - 0x93, 0x51, 0xc9, 0x33, 0x17, 0xe5, 0x29, 0x65, 0x1a, 0xb2, 0x54, 0xb2, 0xba, 0xbd, 0xbd, 0x21, - 0x67, 0x02, 0xce, 0xc6, 0x8e, 0x56, 0xdb, 0x5a, 0x97, 0xb3, 0x01, 0xe7, 0xba, 0xb6, 0xbd, 0x5b, - 0x97, 0x21, 0x60, 0xd8, 0xac, 0x36, 0x1a, 0xe5, 0xf5, 0xaa, 0x9c, 0x0b, 0x34, 0x56, 0x6f, 0xed, - 0x54, 0x1b, 0x72, 0x3e, 0x62, 0xd6, 0x33, 0x17, 0xe5, 0xe9, 0xe0, 0x11, 0xd5, 0xad, 0xdd, 0x4d, - 0xb9, 0xa0, 0xcc, 0xc2, 0x34, 0x7b, 0x84, 0x30, 0x62, 0x66, 0x40, 0x74, 0xe5, 0x92, 0x2c, 0xf7, - 0x0d, 0x61, 0x2c, 0xb3, 0x11, 0xc1, 0x95, 0x4b, 0xb2, 0xb2, 0x54, 0x81, 0x34, 0x8d, 0x2e, 0x45, - 0x81, 0xc2, 0x46, 0x79, 0xb5, 0xba, 0xa1, 0x6f, 0xd7, 0x77, 0x6a, 0xdb, 0x5b, 0xe5, 0x0d, 0x59, - 0xea, 0xcb, 0xb4, 0xea, 0x27, 0x77, 0x6b, 0x5a, 0x75, 0x4d, 0x4e, 0x84, 0x65, 0xf5, 0x6a, 0x79, - 0xa7, 0xba, 0x26, 0x27, 0x97, 0x0c, 0x98, 0x1f, 0x95, 0x67, 0x46, 0x9e, 0x8c, 0xd0, 0x16, 0x27, - 0x8e, 0xd8, 0x62, 0xca, 0x35, 0xb4, 0xc5, 0x5f, 0x92, 0x60, 0x6e, 0x44, 0xae, 0x1d, 0xf9, 0x90, - 0xe7, 0x21, 0xcd, 0x42, 0x94, 0x55, 0x9f, 0x27, 0x47, 0x26, 0x6d, 0x1a, 0xb0, 0x43, 0x15, 0x88, - 0xe2, 0xc2, 0x15, 0x38, 0x79, 0x44, 0x05, 0x26, 0x14, 0x43, 0x46, 0xbe, 0x2c, 0x41, 0xf1, 0x28, - 0xee, 0x98, 0x44, 0x91, 0x88, 0x24, 0x8a, 0x6b, 0x83, 0x06, 0x9c, 0x3b, 0x7a, 0x0d, 0x43, 0x56, - 0xbc, 0x2e, 0xc1, 0xa9, 0xd1, 0x8d, 0xca, 0x48, 0x1b, 0x3e, 0x0e, 0x93, 0x1d, 0xec, 0xef, 0x3b, - 0xa2, 0x58, 0x7f, 0x68, 0x44, 0x09, 0x20, 0xd3, 0x83, 0xbe, 0xe2, 0xa8, 0x70, 0x0d, 0x49, 0x1e, - 0xd5, 0x6d, 0x30, 0x6b, 0x86, 0x2c, 0xfd, 0x5c, 0x02, 0x1e, 0x19, 0x49, 0x3e, 0xd2, 0xd0, 0xc7, - 0x00, 0x4c, 0xbb, 0xdb, 0xf3, 0x59, 0x41, 0x66, 0xf9, 0x29, 0x4b, 0x25, 0xf4, 0xec, 0x93, 0xdc, - 0xd3, 0xf3, 0x83, 0xf9, 0x24, 0x9d, 0x07, 0x26, 0xa2, 0x0a, 0x57, 0xfb, 0x86, 0xa6, 0xa8, 0xa1, - 0xa5, 0x23, 0x56, 0x3a, 0x54, 0xeb, 0x3e, 0x0a, 0xb2, 0x61, 0x99, 0xd8, 0xf6, 0x75, 0xcf, 0x77, - 0x31, 0xea, 0x98, 0x76, 0x9b, 0x26, 0xe0, 0x8c, 0x9a, 0x6e, 0x21, 0xcb, 0xc3, 0xda, 0x0c, 0x9b, - 0x6e, 0x88, 0x59, 0x82, 0xa0, 0x55, 0xc6, 0x0d, 0x21, 0x26, 0x23, 0x08, 0x36, 0x1d, 0x20, 0x96, - 0xbe, 0x3a, 0x05, 0xb9, 0x50, 0x5b, 0xa7, 0x9c, 0x83, 0xfc, 0x6d, 0x74, 0x17, 0xe9, 0xa2, 0x55, - 0x67, 0x9e, 0xc8, 0x11, 0x59, 0x9d, 0xb7, 0xeb, 0x1f, 0x85, 0x79, 0xaa, 0xe2, 0xf4, 0x7c, 0xec, - 0xea, 0x86, 0x85, 0x3c, 0x8f, 0x3a, 0x2d, 0x43, 0x55, 0x15, 0x32, 0xb7, 0x4d, 0xa6, 0x2a, 0x62, - 0x46, 0xb9, 0x0c, 0x73, 0x14, 0xd1, 0xe9, 0x59, 0xbe, 0xd9, 0xb5, 0xb0, 0x4e, 0x5e, 0x1e, 0x3c, - 0x9a, 0x88, 0x03, 0xcb, 0x66, 0x89, 0xc6, 0x26, 0x57, 0x20, 0x16, 0x79, 0xca, 0x1a, 0x3c, 0x46, - 0x61, 0x6d, 0x6c, 0x63, 0x17, 0xf9, 0x58, 0xc7, 0x9f, 0xe9, 0x21, 0xcb, 0xd3, 0x91, 0xdd, 0xd4, - 0xf7, 0x91, 0xb7, 0x5f, 0x9c, 0x27, 0x04, 0xab, 0x89, 0xa2, 0xa4, 0x9d, 0x21, 0x8a, 0xeb, 0x5c, - 0xaf, 0x4a, 0xd5, 0xca, 0x76, 0xf3, 0x13, 0xc8, 0xdb, 0x57, 0x54, 0x38, 0x45, 0x59, 0x3c, 0xdf, - 0x35, 0xed, 0xb6, 0x6e, 0xec, 0x63, 0xe3, 0x8e, 0xde, 0xf3, 0x5b, 0x57, 0x8b, 0x8f, 0x86, 0x9f, - 0x4f, 0x2d, 0x6c, 0x50, 0x9d, 0x0a, 0x51, 0xd9, 0xf5, 0x5b, 0x57, 0x95, 0x06, 0xe4, 0xc9, 0x66, - 0x74, 0xcc, 0x97, 0xb0, 0xde, 0x72, 0x5c, 0x5a, 0x59, 0x0a, 0x23, 0x4e, 0x76, 0xc8, 0x83, 0x2b, - 0xdb, 0x1c, 0xb0, 0xe9, 0x34, 0xb1, 0x9a, 0x6e, 0xd4, 0xab, 0xd5, 0x35, 0x2d, 0x27, 0x58, 0xae, - 0x3b, 0x2e, 0x09, 0xa8, 0xb6, 0x13, 0x38, 0x38, 0xc7, 0x02, 0xaa, 0xed, 0x08, 0xf7, 0x5e, 0x86, - 0x39, 0xc3, 0x60, 0x6b, 0x36, 0x0d, 0x9d, 0xb7, 0xf8, 0x5e, 0x51, 0x8e, 0x38, 0xcb, 0x30, 0xd6, - 0x99, 0x02, 0x8f, 0x71, 0x4f, 0x79, 0x0e, 0x1e, 0xe9, 0x3b, 0x2b, 0x0c, 0x9c, 0x1d, 0x5a, 0xe5, - 0x20, 0xf4, 0x32, 0xcc, 0x75, 0x0f, 0x86, 0x81, 0x4a, 0xe4, 0x89, 0xdd, 0x83, 0x41, 0xd8, 0x13, - 0xf4, 0xb5, 0xcd, 0xc5, 0x06, 0xf2, 0x71, 0xb3, 0x78, 0x3a, 0xac, 0x1d, 0x9a, 0x50, 0x2e, 0x80, - 0x6c, 0x18, 0x3a, 0xb6, 0xd1, 0x9e, 0x85, 0x75, 0xe4, 0x62, 0x1b, 0x79, 0xc5, 0xb3, 0x61, 0xe5, - 0x82, 0x61, 0x54, 0xe9, 0x6c, 0x99, 0x4e, 0x2a, 0x4f, 0xc1, 0xac, 0xb3, 0x77, 0xdb, 0x60, 0x91, - 0xa5, 0x77, 0x5d, 0xdc, 0x32, 0x5f, 0x2c, 0x3e, 0x4e, 0xdd, 0x34, 0x43, 0x26, 0x68, 0x5c, 0xd5, - 0xa9, 0x58, 0x79, 0x12, 0x64, 0xc3, 0xdb, 0x47, 0x6e, 0x97, 0x96, 0x76, 0xaf, 0x8b, 0x0c, 0x5c, - 0x7c, 0x82, 0xa9, 0x32, 0xf9, 0x96, 0x10, 0x93, 0xc8, 0xf6, 0xee, 0x99, 0x2d, 0x5f, 0x30, 0x9e, - 0x67, 0x91, 0x4d, 0x65, 0x9c, 0xed, 0x26, 0xcc, 0xf7, 0x6c, 0xd3, 0xf6, 0xb1, 0xdb, 0x75, 0x31, - 0x69, 0xe2, 0xd9, 0x49, 0x2c, 0xfe, 0xf3, 0xd4, 0x11, 0x6d, 0xf8, 0x6e, 0x58, 0x9b, 0x05, 0x80, - 0x36, 0xd7, 0x1b, 0x16, 0x2e, 0xa9, 0x90, 0x0f, 0xc7, 0x85, 0x92, 0x05, 0x16, 0x19, 0xb2, 0x44, - 0x6a, 0x6c, 0x65, 0x7b, 0x8d, 0x54, 0xc7, 0x4f, 0x57, 0xe5, 0x04, 0xa9, 0xd2, 0x1b, 0xb5, 0x9d, - 0xaa, 0xae, 0xed, 0x6e, 0xed, 0xd4, 0x36, 0xab, 0x72, 0xf2, 0xa9, 0x6c, 0xe6, 0xed, 0x29, 0xf9, - 0xfe, 0xfd, 0xfb, 0xf7, 0x13, 0x4b, 0xdf, 0x4e, 0x40, 0x21, 0xda, 0x19, 0x2b, 0x3f, 0x01, 0xa7, - 0xc5, 0x6b, 0xac, 0x87, 0x7d, 0xfd, 0x9e, 0xe9, 0xd2, 0x50, 0xed, 0x20, 0xd6, 0x5b, 0x06, 0x5e, - 0x9e, 0xe7, 0x5a, 0x0d, 0xec, 0xbf, 0x60, 0xba, 0x24, 0x10, 0x3b, 0xc8, 0x57, 0x36, 0xe0, 0xac, - 0xed, 0xe8, 0x9e, 0x8f, 0xec, 0x26, 0x72, 0x9b, 0x7a, 0xff, 0x02, 0x41, 0x47, 0x86, 0x81, 0x3d, - 0xcf, 0x61, 0x25, 0x22, 0x60, 0xf9, 0x80, 0xed, 0x34, 0xb8, 0x72, 0x3f, 0x77, 0x96, 0xb9, 0xea, - 0x40, 0x44, 0x24, 0x8f, 0x8a, 0x88, 0x47, 0x21, 0xdb, 0x41, 0x5d, 0x1d, 0xdb, 0xbe, 0x7b, 0x40, - 0xfb, 0xb9, 0x8c, 0x96, 0xe9, 0xa0, 0x6e, 0x95, 0x8c, 0xdf, 0xbf, 0x3d, 0x08, 0xfb, 0xf1, 0x1f, - 0x92, 0x90, 0x0f, 0xf7, 0x74, 0xa4, 0x45, 0x36, 0x68, 0xfe, 0x96, 0xe8, 0x09, 0xff, 0xe0, 0xb1, - 0x1d, 0xe0, 0x4a, 0x85, 0x24, 0x76, 0x75, 0x92, 0x75, 0x5a, 0x1a, 0x43, 0x92, 0xa2, 0x4a, 0xce, - 0x34, 0x66, 0xfd, 0x7b, 0x46, 0xe3, 0x23, 0x65, 0x1d, 0x26, 0x6f, 0x7b, 0x94, 0x7b, 0x92, 0x72, - 0x3f, 0x7e, 0x3c, 0xf7, 0x8d, 0x06, 0x25, 0xcf, 0xde, 0x68, 0xe8, 0x5b, 0xdb, 0xda, 0x66, 0x79, - 0x43, 0xe3, 0x70, 0xe5, 0x0c, 0xa4, 0x2c, 0xf4, 0xd2, 0x41, 0xb4, 0x04, 0x50, 0xd1, 0xb8, 0x8e, - 0x3f, 0x03, 0xa9, 0x7b, 0x18, 0xdd, 0x89, 0x26, 0x5e, 0x2a, 0x7a, 0x1f, 0x43, 0xff, 0x02, 0xa4, - 0xa9, 0xbf, 0x14, 0x00, 0xee, 0x31, 0x79, 0x42, 0xc9, 0x40, 0xaa, 0xb2, 0xad, 0x91, 0xf0, 0x97, - 0x21, 0xcf, 0xa4, 0x7a, 0xbd, 0x56, 0xad, 0x54, 0xe5, 0xc4, 0xd2, 0x65, 0x98, 0x64, 0x4e, 0x20, - 0x47, 0x23, 0x70, 0x83, 0x3c, 0xc1, 0x87, 0x9c, 0x43, 0x12, 0xb3, 0xbb, 0x9b, 0xab, 0x55, 0x4d, - 0x4e, 0x84, 0xb7, 0xd7, 0x83, 0x7c, 0xb8, 0x9d, 0xfb, 0xd1, 0xc4, 0xd4, 0x5f, 0x49, 0x90, 0x0b, - 0xb5, 0x67, 0xa4, 0x31, 0x40, 0x96, 0xe5, 0xdc, 0xd3, 0x91, 0x65, 0x22, 0x8f, 0x07, 0x05, 0x50, - 0x51, 0x99, 0x48, 0xc6, 0xdd, 0xb4, 0x1f, 0x89, 0xf1, 0xaf, 0x49, 0x20, 0x0f, 0xb6, 0x76, 0x03, - 0x06, 0x4a, 0x3f, 0x56, 0x03, 0x5f, 0x95, 0xa0, 0x10, 0xed, 0xe7, 0x06, 0xcc, 0x3b, 0xf7, 0x63, - 0x35, 0xef, 0xcd, 0x04, 0x4c, 0x47, 0xba, 0xb8, 0x71, 0xad, 0xfb, 0x0c, 0xcc, 0x9a, 0x4d, 0xdc, - 0xe9, 0x3a, 0x3e, 0xb6, 0x8d, 0x03, 0xdd, 0xc2, 0x77, 0xb1, 0x55, 0x5c, 0xa2, 0x89, 0xe2, 0xc2, - 0xf1, 0x7d, 0xe2, 0x4a, 0xad, 0x8f, 0xdb, 0x20, 0x30, 0x75, 0xae, 0xb6, 0x56, 0xdd, 0xac, 0x6f, - 0xef, 0x54, 0xb7, 0x2a, 0xb7, 0xf4, 0xdd, 0xad, 0x9f, 0xdc, 0xda, 0x7e, 0x61, 0x4b, 0x93, 0xcd, - 0x01, 0xb5, 0xf7, 0xf1, 0xa8, 0xd7, 0x41, 0x1e, 0x34, 0x4a, 0x39, 0x0d, 0xa3, 0xcc, 0x92, 0x27, - 0x94, 0x39, 0x98, 0xd9, 0xda, 0xd6, 0x1b, 0xb5, 0xb5, 0xaa, 0x5e, 0xbd, 0x7e, 0xbd, 0x5a, 0xd9, - 0x69, 0xb0, 0x17, 0xe7, 0x40, 0x7b, 0x27, 0x7a, 0xa8, 0x5f, 0x49, 0xc2, 0xdc, 0x08, 0x4b, 0x94, - 0x32, 0xef, 0xd9, 0xd9, 0x6b, 0xc4, 0x47, 0xc6, 0xb1, 0x7e, 0x85, 0x74, 0x05, 0x75, 0xe4, 0xfa, - 0xbc, 0xc5, 0x7f, 0x12, 0x88, 0x97, 0x6c, 0xdf, 0x6c, 0x99, 0xd8, 0xe5, 0xf7, 0x0c, 0xac, 0x91, - 0x9f, 0xe9, 0xcb, 0xd9, 0x55, 0xc3, 0x87, 0x41, 0xe9, 0x3a, 0x9e, 0xe9, 0x9b, 0x77, 0xb1, 0x6e, - 0xda, 0xe2, 0x52, 0x82, 0x34, 0xf6, 0x29, 0x4d, 0x16, 0x33, 0x35, 0xdb, 0x0f, 0xb4, 0x6d, 0xdc, - 0x46, 0x03, 0xda, 0x24, 0x81, 0x27, 0x35, 0x59, 0xcc, 0x04, 0xda, 0xe7, 0x20, 0xdf, 0x74, 0x7a, - 0xa4, 0x4d, 0x62, 0x7a, 0xa4, 0x5e, 0x48, 0x5a, 0x8e, 0xc9, 0x02, 0x15, 0xde, 0xc7, 0xf6, 0x6f, - 0x43, 0xf2, 0x5a, 0x8e, 0xc9, 0x98, 0xca, 0x79, 0x98, 0x41, 0xed, 0xb6, 0x4b, 0xc8, 0x05, 0x11, - 0xeb, 0xcc, 0x0b, 0x81, 0x98, 0x2a, 0x2e, 0xdc, 0x80, 0x8c, 0xf0, 0x03, 0x29, 0xc9, 0xc4, 0x13, - 0x7a, 0x97, 0xdd, 0x49, 0x25, 0x96, 0xb3, 0x5a, 0xc6, 0x16, 0x93, 0xe7, 0x20, 0x6f, 0x7a, 0x7a, - 0xff, 0x72, 0x34, 0xb1, 0x98, 0x58, 0xce, 0x68, 0x39, 0xd3, 0x0b, 0x6e, 0xc3, 0x96, 0x5e, 0x4f, - 0x40, 0x21, 0x7a, 0xb9, 0xab, 0xac, 0x41, 0xc6, 0x72, 0x0c, 0x44, 0x43, 0x8b, 0x7d, 0x59, 0x58, - 0x8e, 0xb9, 0x0f, 0x5e, 0xd9, 0xe0, 0xfa, 0x5a, 0x80, 0x5c, 0xf8, 0x3b, 0x09, 0x32, 0x42, 0xac, - 0x9c, 0x82, 0x54, 0x17, 0xf9, 0xfb, 0x94, 0x2e, 0xbd, 0x9a, 0x90, 0x25, 0x8d, 0x8e, 0x89, 0xdc, - 0xeb, 0x22, 0x9b, 0x86, 0x00, 0x97, 0x93, 0x31, 0xd9, 0x57, 0x0b, 0xa3, 0x26, 0x6d, 0xfb, 0x9d, - 0x4e, 0x07, 0xdb, 0xbe, 0x27, 0xf6, 0x95, 0xcb, 0x2b, 0x5c, 0xac, 0x3c, 0x0d, 0xb3, 0xbe, 0x8b, - 0x4c, 0x2b, 0xa2, 0x9b, 0xa2, 0xba, 0xb2, 0x98, 0x08, 0x94, 0x55, 0x38, 0x23, 0x78, 0x9b, 0xd8, - 0x47, 0xc6, 0x3e, 0x6e, 0xf6, 0x41, 0x93, 0xf4, 0xe6, 0xf0, 0x34, 0x57, 0x58, 0xe3, 0xf3, 0x02, - 0xbb, 0xf4, 0x5d, 0x09, 0x66, 0xc5, 0x8b, 0x4a, 0x33, 0x70, 0xd6, 0x26, 0x00, 0xb2, 0x6d, 0xc7, - 0x0f, 0xbb, 0x6b, 0x38, 0x94, 0x87, 0x70, 0x2b, 0xe5, 0x00, 0xa4, 0x85, 0x08, 0x16, 0x3a, 0x00, - 0xfd, 0x99, 0x23, 0xdd, 0x76, 0x16, 0x72, 0xfc, 0xe6, 0x9e, 0x7e, 0xfe, 0x61, 0xaf, 0xb6, 0xc0, - 0x44, 0xe4, 0x8d, 0x46, 0x99, 0x87, 0xf4, 0x1e, 0x6e, 0x9b, 0x36, 0xbf, 0x4f, 0x64, 0x03, 0x71, - 0x4b, 0x99, 0x0a, 0x6e, 0x29, 0x57, 0x6f, 0xc2, 0x9c, 0xe1, 0x74, 0x06, 0xcd, 0x5d, 0x95, 0x07, - 0x5e, 0xaf, 0xbd, 0x4f, 0x48, 0x9f, 0x86, 0x7e, 0x8b, 0xf9, 0xa5, 0x44, 0x72, 0xbd, 0xbe, 0xfa, - 0x95, 0xc4, 0xc2, 0x3a, 0xc3, 0xd5, 0xc5, 0x32, 0x35, 0xdc, 0xb2, 0xb0, 0x41, 0x4c, 0x87, 0xef, - 0x7f, 0x08, 0x3e, 0xd2, 0x36, 0xfd, 0xfd, 0xde, 0xde, 0x8a, 0xe1, 0x74, 0x2e, 0xb4, 0x9d, 0xb6, - 0xd3, 0xff, 0xdc, 0x45, 0x46, 0x74, 0x40, 0x7f, 0xf1, 0x4f, 0x5e, 0xd9, 0x40, 0xba, 0x10, 0xfb, - 0x7d, 0x4c, 0xdd, 0x82, 0x39, 0xae, 0xac, 0xd3, 0x3b, 0x77, 0xf6, 0x6a, 0xa0, 0x1c, 0x7b, 0xef, - 0x52, 0xfc, 0xfa, 0x5b, 0xb4, 0x56, 0x6b, 0xb3, 0x1c, 0x4a, 0xe6, 0xd8, 0x0b, 0x84, 0xaa, 0xc1, - 0x23, 0x11, 0x3e, 0x76, 0x2e, 0xb1, 0x1b, 0xc3, 0xf8, 0x6d, 0xce, 0x38, 0x17, 0x62, 0x6c, 0x70, - 0xa8, 0x5a, 0x81, 0xe9, 0x93, 0x70, 0xfd, 0x0d, 0xe7, 0xca, 0xe3, 0x30, 0xc9, 0x3a, 0xcc, 0x50, - 0x12, 0xa3, 0xe7, 0xf9, 0x4e, 0x87, 0x26, 0xbd, 0xe3, 0x69, 0xfe, 0xf6, 0x2d, 0x76, 0x50, 0x0a, - 0x04, 0x56, 0x09, 0x50, 0xaa, 0x0a, 0xf4, 0x33, 0x43, 0x13, 0x1b, 0x56, 0x0c, 0xc3, 0x1b, 0xdc, - 0x90, 0x40, 0x5f, 0xfd, 0x14, 0xcc, 0x93, 0xdf, 0x34, 0x27, 0x85, 0x2d, 0x89, 0xbf, 0x65, 0x2a, - 0x7e, 0xf7, 0x65, 0x76, 0x16, 0xe7, 0x02, 0x82, 0x90, 0x4d, 0xa1, 0x5d, 0x6c, 0x63, 0xdf, 0xc7, - 0xae, 0xa7, 0x23, 0x6b, 0x94, 0x79, 0xa1, 0xd7, 0xf4, 0xe2, 0x17, 0xde, 0x89, 0xee, 0xe2, 0x3a, - 0x43, 0x96, 0x2d, 0x4b, 0xdd, 0x85, 0xd3, 0x23, 0xa2, 0x62, 0x0c, 0xce, 0x57, 0x38, 0xe7, 0xfc, - 0x50, 0x64, 0x10, 0xda, 0x3a, 0x08, 0x79, 0xb0, 0x97, 0x63, 0x70, 0xfe, 0x16, 0xe7, 0x54, 0x38, - 0x56, 0x6c, 0x29, 0x61, 0xbc, 0x01, 0xb3, 0x77, 0xb1, 0xbb, 0xe7, 0x78, 0xfc, 0x6a, 0x64, 0x0c, - 0xba, 0x57, 0x39, 0xdd, 0x0c, 0x07, 0xd2, 0xbb, 0x12, 0xc2, 0xf5, 0x1c, 0x64, 0x5a, 0xc8, 0xc0, - 0x63, 0x50, 0x7c, 0x91, 0x53, 0x4c, 0x11, 0x7d, 0x02, 0x2d, 0x43, 0xbe, 0xed, 0xf0, 0xb2, 0x14, - 0x0f, 0x7f, 0x8d, 0xc3, 0x73, 0x02, 0xc3, 0x29, 0xba, 0x4e, 0xb7, 0x67, 0x91, 0x9a, 0x15, 0x4f, - 0xf1, 0xdb, 0x82, 0x42, 0x60, 0x38, 0xc5, 0x09, 0xdc, 0xfa, 0x3b, 0x82, 0xc2, 0x0b, 0xf9, 0xf3, - 0x79, 0xc8, 0x39, 0xb6, 0x75, 0xe0, 0xd8, 0xe3, 0x18, 0xf1, 0xbb, 0x9c, 0x01, 0x38, 0x84, 0x10, - 0x5c, 0x83, 0xec, 0xb8, 0x1b, 0xf1, 0x7b, 0xef, 0x88, 0xe3, 0x21, 0x76, 0x60, 0x1d, 0x66, 0x44, - 0x82, 0x32, 0x1d, 0x7b, 0x0c, 0x8a, 0xdf, 0xe7, 0x14, 0x85, 0x10, 0x8c, 0x2f, 0xc3, 0xc7, 0x9e, - 0xdf, 0xc6, 0xe3, 0x90, 0xbc, 0x2e, 0x96, 0xc1, 0x21, 0xdc, 0x95, 0x7b, 0xd8, 0x36, 0xf6, 0xc7, - 0x63, 0xf8, 0xb2, 0x70, 0xa5, 0xc0, 0x10, 0x8a, 0x0a, 0x4c, 0x77, 0x90, 0xeb, 0xed, 0x23, 0x6b, - 0xac, 0xed, 0xf8, 0x03, 0xce, 0x91, 0x0f, 0x40, 0xdc, 0x23, 0x3d, 0xfb, 0x24, 0x34, 0x5f, 0x11, - 0x1e, 0x09, 0xc1, 0xf8, 0xd1, 0xf3, 0x7c, 0x7a, 0x01, 0x75, 0x12, 0xb6, 0xaf, 0x8a, 0xa3, 0xc7, - 0xb0, 0x9b, 0x61, 0xc6, 0x6b, 0x90, 0xf5, 0xcc, 0x97, 0xc6, 0xa2, 0xf9, 0x43, 0xb1, 0xd3, 0x14, - 0x40, 0xc0, 0xb7, 0xe0, 0xcc, 0xc8, 0x32, 0x31, 0x06, 0xd9, 0x1f, 0x71, 0xb2, 0x53, 0x23, 0x4a, - 0x05, 0x4f, 0x09, 0x27, 0xa5, 0xfc, 0x63, 0x91, 0x12, 0xf0, 0x00, 0x57, 0x9d, 0xbc, 0x28, 0x78, - 0xa8, 0x75, 0x32, 0xaf, 0xfd, 0x89, 0xf0, 0x1a, 0xc3, 0x46, 0xbc, 0xb6, 0x03, 0xa7, 0x38, 0xe3, - 0xc9, 0xf6, 0xf5, 0x6b, 0x22, 0xb1, 0x32, 0xf4, 0x6e, 0x74, 0x77, 0x7f, 0x0a, 0x16, 0x02, 0x77, - 0x8a, 0x8e, 0xd4, 0xd3, 0x3b, 0xa8, 0x3b, 0x06, 0xf3, 0xd7, 0x39, 0xb3, 0xc8, 0xf8, 0x41, 0x4b, - 0xeb, 0x6d, 0xa2, 0x2e, 0x21, 0xbf, 0x09, 0x45, 0x41, 0xde, 0xb3, 0x5d, 0x6c, 0x38, 0x6d, 0xdb, - 0x7c, 0x09, 0x37, 0xc7, 0xa0, 0xfe, 0xd3, 0x81, 0xad, 0xda, 0x0d, 0xc1, 0x09, 0x73, 0x0d, 0xe4, - 0xa0, 0x57, 0xd1, 0xcd, 0x4e, 0xd7, 0x71, 0xfd, 0x18, 0xc6, 0x3f, 0x13, 0x3b, 0x15, 0xe0, 0x6a, - 0x14, 0xa6, 0x56, 0xa1, 0x40, 0x87, 0xe3, 0x86, 0xe4, 0x9f, 0x73, 0xa2, 0xe9, 0x3e, 0x8a, 0x27, - 0x0e, 0xc3, 0xe9, 0x74, 0x91, 0x3b, 0x4e, 0xfe, 0xfb, 0x0b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, - 0xff, 0xa0, 0x8b, 0x49, 0xb5, 0x1f, 0x83, 0xe1, 0x1b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x0d, - 0xc3, 0x18, 0x14, 0x7f, 0x29, 0x28, 0x04, 0x86, 0x50, 0x7c, 0xb2, 0x5f, 0x68, 0x5d, 0xdc, 0x36, - 0x3d, 0xdf, 0x65, 0x7d, 0xf0, 0xf1, 0x54, 0xdf, 0x7c, 0x27, 0xda, 0x84, 0x69, 0x21, 0xa8, 0x7a, - 0x03, 0x66, 0x06, 0x5a, 0x0c, 0x25, 0xee, 0x7f, 0x16, 0x8a, 0x3f, 0xfd, 0x1e, 0x4f, 0x46, 0xd1, - 0x0e, 0x43, 0xdd, 0x20, 0xfb, 0x1e, 0xed, 0x03, 0xe2, 0xc9, 0x5e, 0x7e, 0x2f, 0xd8, 0xfa, 0x48, - 0x1b, 0xa0, 0x5e, 0x87, 0xe9, 0x48, 0x0f, 0x10, 0x4f, 0xf5, 0x59, 0x4e, 0x95, 0x0f, 0xb7, 0x00, - 0xea, 0x65, 0x48, 0x91, 0x7a, 0x1e, 0x0f, 0xff, 0x19, 0x0e, 0xa7, 0xea, 0xea, 0xc7, 0x20, 0x23, - 0xea, 0x78, 0x3c, 0xf4, 0x67, 0x39, 0x34, 0x80, 0x10, 0xb8, 0xa8, 0xe1, 0xf1, 0xf0, 0x9f, 0x13, - 0x70, 0x01, 0x21, 0xf0, 0xf1, 0x5d, 0xf8, 0xad, 0x5f, 0x48, 0xf1, 0x3c, 0x2c, 0x7c, 0x77, 0x0d, - 0xa6, 0x78, 0xf1, 0x8e, 0x47, 0x7f, 0x8e, 0x3f, 0x5c, 0x20, 0xd4, 0x67, 0x21, 0x3d, 0xa6, 0xc3, - 0x7f, 0x91, 0x43, 0x99, 0xbe, 0x5a, 0x81, 0x5c, 0xa8, 0x60, 0xc7, 0xc3, 0x7f, 0x89, 0xc3, 0xc3, - 0x28, 0x62, 0x3a, 0x2f, 0xd8, 0xf1, 0x04, 0xbf, 0x2c, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0x51, 0xab, - 0xe3, 0xd1, 0xbf, 0x22, 0xbc, 0x2e, 0x20, 0xea, 0xf3, 0x90, 0x0d, 0xf2, 0x6f, 0x3c, 0xfe, 0x57, - 0x39, 0xbe, 0x8f, 0x21, 0x1e, 0x08, 0xe5, 0xff, 0x78, 0x8a, 0x5f, 0x13, 0x1e, 0x08, 0xa1, 0xc8, - 0x31, 0x1a, 0xac, 0xe9, 0xf1, 0x4c, 0xbf, 0x2e, 0x8e, 0xd1, 0x40, 0x49, 0x27, 0xbb, 0x49, 0xd3, - 0x60, 0x3c, 0xc5, 0x6f, 0x88, 0xdd, 0xa4, 0xfa, 0xc4, 0x8c, 0xc1, 0x22, 0x19, 0xcf, 0xf1, 0x9b, - 0xc2, 0x8c, 0x81, 0x1a, 0xa9, 0xd6, 0x41, 0x19, 0x2e, 0x90, 0xf1, 0x7c, 0x9f, 0xe7, 0x7c, 0xb3, - 0x43, 0xf5, 0x51, 0x7d, 0x01, 0x4e, 0x8d, 0x2e, 0x8e, 0xf1, 0xac, 0x5f, 0x78, 0x6f, 0xe0, 0x75, - 0x26, 0x5c, 0x1b, 0xd5, 0x9d, 0x7e, 0x96, 0x0d, 0x17, 0xc6, 0x78, 0xda, 0x57, 0xde, 0x8b, 0x26, - 0xda, 0x70, 0x5d, 0x54, 0xcb, 0x00, 0xfd, 0x9a, 0x14, 0xcf, 0xf5, 0x2a, 0xe7, 0x0a, 0x81, 0xc8, - 0xd1, 0xe0, 0x25, 0x29, 0x1e, 0xff, 0x45, 0x71, 0x34, 0x38, 0x82, 0x1c, 0x0d, 0x51, 0x8d, 0xe2, - 0xd1, 0xaf, 0x89, 0xa3, 0x21, 0x20, 0xea, 0x35, 0xc8, 0xd8, 0x3d, 0xcb, 0x22, 0xb1, 0xa5, 0x1c, - 0xff, 0x6f, 0x44, 0xc5, 0x7f, 0x79, 0xc8, 0xc1, 0x02, 0xa0, 0x5e, 0x86, 0x34, 0xee, 0xec, 0xe1, - 0x66, 0x1c, 0xf2, 0x5f, 0x1f, 0x8a, 0x7c, 0x42, 0xb4, 0xd5, 0xe7, 0x01, 0xd8, 0xcb, 0x34, 0xfd, - 0x4a, 0x14, 0x83, 0xfd, 0xb7, 0x87, 0xfc, 0x3f, 0x14, 0xfa, 0x90, 0x3e, 0x01, 0xfb, 0x7f, 0x87, - 0xe3, 0x09, 0xde, 0x89, 0x12, 0xd0, 0x17, 0xf0, 0xe7, 0x60, 0xea, 0xb6, 0xe7, 0xd8, 0x3e, 0x6a, - 0xc7, 0xa1, 0xff, 0x9d, 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xc7, 0x71, 0xb1, 0x8f, 0xda, 0x5e, 0x1c, - 0xf6, 0x3f, 0x38, 0x36, 0x00, 0x10, 0xb0, 0x81, 0x3c, 0x7f, 0x9c, 0x75, 0xff, 0xa7, 0x00, 0x0b, - 0x00, 0x31, 0x9a, 0xfc, 0xbe, 0x83, 0x0f, 0xe2, 0xb0, 0xef, 0x0a, 0xa3, 0xb9, 0xbe, 0xfa, 0x31, - 0xc8, 0x92, 0x9f, 0xec, 0xbf, 0x76, 0x62, 0xc0, 0xff, 0xc5, 0xc1, 0x7d, 0x04, 0x79, 0xb2, 0xe7, - 0x37, 0x7d, 0x33, 0xde, 0xd9, 0xff, 0xcd, 0x77, 0x5a, 0xe8, 0xab, 0x65, 0xc8, 0x79, 0x7e, 0xb3, - 0xd9, 0xe3, 0x1d, 0x4d, 0x0c, 0xfc, 0xfb, 0x0f, 0x83, 0x97, 0xdc, 0x00, 0xb3, 0x7a, 0x6e, 0xf4, - 0x65, 0x1d, 0xac, 0x3b, 0xeb, 0x0e, 0xbb, 0xa6, 0x83, 0xff, 0x4d, 0xc1, 0x4c, 0x60, 0xae, 0xb8, - 0x57, 0x0b, 0x04, 0x0b, 0x27, 0xbb, 0x91, 0x5b, 0xfa, 0xeb, 0x24, 0x64, 0x2a, 0xc8, 0xf3, 0xd1, - 0x3d, 0x74, 0xa0, 0x74, 0x61, 0x8e, 0xfc, 0xde, 0x44, 0x5d, 0x7a, 0xbf, 0xc3, 0x0f, 0x14, 0xbf, - 0xf1, 0xfc, 0xf0, 0x4a, 0xff, 0xa9, 0x02, 0xb1, 0x32, 0x42, 0x9d, 0x7e, 0x29, 0x5e, 0x95, 0xdf, - 0xf8, 0xc7, 0xb3, 0x13, 0x3f, 0xff, 0x4f, 0x67, 0x33, 0x9b, 0x07, 0x2f, 0x98, 0x96, 0xe7, 0xd8, - 0xda, 0x28, 0x6a, 0xe5, 0xb3, 0x12, 0x3c, 0x3a, 0x42, 0xbe, 0xc5, 0x4f, 0x1d, 0xff, 0x6e, 0x70, - 0x69, 0xcc, 0x47, 0x0b, 0x18, 0x33, 0x21, 0x1f, 0x79, 0xfc, 0x71, 0x8f, 0x59, 0xb8, 0x05, 0xc5, - 0xa3, 0x56, 0xa2, 0xc8, 0x90, 0xbc, 0x83, 0x0f, 0xf8, 0xff, 0x82, 0x92, 0x9f, 0xca, 0xf9, 0xfe, - 0xff, 0x92, 0x49, 0xcb, 0xb9, 0x8b, 0xb3, 0x21, 0xeb, 0xf8, 0xc3, 0xd8, 0xbc, 0x9a, 0xb8, 0x2a, - 0x2d, 0x20, 0x58, 0x8c, 0xb3, 0xf4, 0xff, 0xf9, 0x88, 0xa5, 0x12, 0x4c, 0x32, 0xa1, 0x32, 0x0f, - 0xe9, 0x9a, 0xed, 0x5f, 0xb9, 0x44, 0xa9, 0x92, 0x1a, 0x1b, 0xac, 0x6e, 0xbc, 0xf1, 0xa0, 0x34, - 0xf1, 0x9d, 0x07, 0xa5, 0x89, 0xbf, 0x7f, 0x50, 0x9a, 0x78, 0xf3, 0x41, 0x49, 0x7a, 0xfb, 0x41, - 0x49, 0x7a, 0xf7, 0x41, 0x49, 0xfa, 0xc1, 0x83, 0x92, 0x74, 0xff, 0xb0, 0x24, 0x7d, 0xf9, 0xb0, - 0x24, 0x7d, 0xed, 0xb0, 0x24, 0x7d, 0xf3, 0xb0, 0x24, 0x7d, 0xeb, 0xb0, 0x24, 0xbd, 0x71, 0x58, - 0x9a, 0xf8, 0xce, 0x61, 0x69, 0xe2, 0xcd, 0xc3, 0x92, 0xf4, 0xf6, 0x61, 0x69, 0xe2, 0xdd, 0xc3, - 0x92, 0xf4, 0x83, 0xc3, 0xd2, 0xc4, 0xfd, 0xef, 0x95, 0x26, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, - 0xb6, 0x10, 0x73, 0x40, 0xdc, 0x30, 0x00, 0x00, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0x4b, 0x10, 0x1d, 0x43, 0x14, 0x6d, + 0x47, 0xb4, 0x9d, 0x50, 0x19, 0x59, 0x92, 0x25, 0xa8, 0x89, 0x0b, 0x82, 0x10, 0x03, 0x95, 0x7f, + 0x59, 0x90, 0xb1, 0xe5, 0x4c, 0x67, 0x67, 0xb9, 0xb8, 0x00, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, + 0x92, 0xa9, 0xe9, 0x83, 0x3a, 0x4e, 0xdb, 0x49, 0x3b, 0xfd, 0xef, 0x4c, 0x12, 0xd7, 0x71, 0x7f, + 0x66, 0x5a, 0xa7, 0xe9, 0x5f, 0xd2, 0xb4, 0x69, 0xda, 0xa7, 0xf4, 0x21, 0xad, 0x9f, 0x3a, 0xc9, + 0x5b, 0x1f, 0x3a, 0xad, 0xc5, 0x78, 0xa6, 0x6e, 0xeb, 0x36, 0x6e, 0xeb, 0x07, 0xcf, 0x68, 0x3a, + 0xd3, 0xb9, 0x7f, 0x8b, 0x5d, 0x00, 0xe4, 0x82, 0xe9, 0xd8, 0x79, 0x22, 0xf6, 0xdc, 0xf3, 0x7d, + 0x7b, 0xee, 0xb9, 0xe7, 0x9e, 0x73, 0xee, 0x5d, 0xc2, 0x0f, 0xae, 0xc0, 0x7c, 0xdb, 0xb6, 0xdb, + 0x26, 0x3e, 0xe7, 0xb8, 0xb6, 0x6f, 0xef, 0x76, 0x5b, 0xe7, 0x9a, 0xd8, 0xd3, 0x5d, 0xc3, 0xf1, + 0x6d, 0x77, 0x89, 0xca, 0xd0, 0x14, 0xd3, 0x58, 0x12, 0x1a, 0x0b, 0xeb, 0x30, 0x7d, 0xcd, 0x30, + 0xf1, 0x4a, 0xa0, 0xd8, 0xc0, 0x3e, 0xba, 0x0c, 0xa9, 0x96, 0x61, 0xe2, 0xa2, 0x34, 0x9f, 0x5c, + 0xcc, 0x9d, 0x7f, 0x6c, 0xa9, 0x0f, 0xb4, 0x14, 0x45, 0x6c, 0x11, 0xb1, 0x42, 0x11, 0x0b, 0x6f, + 0xa6, 0x60, 0x66, 0xc8, 0x28, 0x42, 0x90, 0xb2, 0xb4, 0x0e, 0x61, 0x94, 0x16, 0xb3, 0x0a, 0xfd, + 0x8d, 0x8a, 0x30, 0xe1, 0x68, 0xfa, 0x2d, 0xad, 0x8d, 0x8b, 0x09, 0x2a, 0x16, 0x8f, 0xa8, 0x04, + 0xd0, 0xc4, 0x0e, 0xb6, 0x9a, 0xd8, 0xd2, 0xf7, 0x8b, 0xc9, 0xf9, 0xe4, 0x62, 0x56, 0x09, 0x49, + 0xd0, 0x53, 0x30, 0xed, 0x74, 0x77, 0x4d, 0x43, 0x57, 0x43, 0x6a, 0x30, 0x9f, 0x5c, 0x4c, 0x2b, + 0x32, 0x1b, 0x58, 0xe9, 0x29, 0x9f, 0x85, 0xa9, 0x3b, 0x58, 0xbb, 0x15, 0x56, 0xcd, 0x51, 0xd5, + 0x02, 0x11, 0x87, 0x14, 0xab, 0x90, 0xef, 0x60, 0xcf, 0xd3, 0xda, 0x58, 0xf5, 0xf7, 0x1d, 0x5c, + 0x4c, 0xd1, 0xd9, 0xcf, 0x0f, 0xcc, 0xbe, 0x7f, 0xe6, 0x39, 0x8e, 0xda, 0xde, 0x77, 0x30, 0xaa, + 0x40, 0x16, 0x5b, 0xdd, 0x0e, 0x63, 0x48, 0x1f, 0xe2, 0xbf, 0x9a, 0xd5, 0xed, 0xf4, 0xb3, 0x64, + 0x08, 0x8c, 0x53, 0x4c, 0x78, 0xd8, 0xbd, 0x6d, 0xe8, 0xb8, 0x38, 0x4e, 0x09, 0xce, 0x0e, 0x10, + 0x34, 0xd8, 0x78, 0x3f, 0x87, 0xc0, 0xa1, 0x2a, 0x64, 0xf1, 0x8b, 0x3e, 0xb6, 0x3c, 0xc3, 0xb6, + 0x8a, 0x13, 0x94, 0xe4, 0xf1, 0x21, 0xab, 0x88, 0xcd, 0x66, 0x3f, 0x45, 0x0f, 0x87, 0x2e, 0xc1, + 0x84, 0xed, 0xf8, 0x86, 0x6d, 0x79, 0xc5, 0xcc, 0xbc, 0xb4, 0x98, 0x3b, 0xff, 0xa1, 0xa1, 0x81, + 0xb0, 0xc9, 0x74, 0x14, 0xa1, 0x8c, 0xea, 0x20, 0x7b, 0x76, 0xd7, 0xd5, 0xb1, 0xaa, 0xdb, 0x4d, + 0xac, 0x1a, 0x56, 0xcb, 0x2e, 0x66, 0x29, 0xc1, 0xe9, 0xc1, 0x89, 0x50, 0xc5, 0xaa, 0xdd, 0xc4, + 0x75, 0xab, 0x65, 0x2b, 0x05, 0x2f, 0xf2, 0x8c, 0x4e, 0xc0, 0xb8, 0xb7, 0x6f, 0xf9, 0xda, 0x8b, + 0xc5, 0x3c, 0x8d, 0x10, 0xfe, 0xb4, 0xf0, 0x57, 0xe3, 0x30, 0x35, 0x4a, 0x88, 0x5d, 0x85, 0x74, + 0x8b, 0xcc, 0xb2, 0x98, 0x38, 0x8e, 0x0f, 0x18, 0x26, 0xea, 0xc4, 0xf1, 0x1f, 0xd2, 0x89, 0x15, + 0xc8, 0x59, 0xd8, 0xf3, 0x71, 0x93, 0x45, 0x44, 0x72, 0xc4, 0x98, 0x02, 0x06, 0x1a, 0x0c, 0xa9, + 0xd4, 0x0f, 0x15, 0x52, 0xcf, 0xc3, 0x54, 0x60, 0x92, 0xea, 0x6a, 0x56, 0x5b, 0xc4, 0xe6, 0xb9, + 0x38, 0x4b, 0x96, 0x6a, 0x02, 0xa7, 0x10, 0x98, 0x52, 0xc0, 0x91, 0x67, 0xb4, 0x02, 0x60, 0x5b, + 0xd8, 0x6e, 0xa9, 0x4d, 0xac, 0x9b, 0xc5, 0xcc, 0x21, 0x5e, 0xda, 0x24, 0x2a, 0x03, 0x5e, 0xb2, + 0x99, 0x54, 0x37, 0xd1, 0x95, 0x5e, 0xa8, 0x4d, 0x1c, 0x12, 0x29, 0xeb, 0x6c, 0x93, 0x0d, 0x44, + 0xdb, 0x0e, 0x14, 0x5c, 0x4c, 0xe2, 0x1e, 0x37, 0xf9, 0xcc, 0xb2, 0xd4, 0x88, 0xa5, 0xd8, 0x99, + 0x29, 0x1c, 0xc6, 0x26, 0x36, 0xe9, 0x86, 0x1f, 0xd1, 0xa3, 0x10, 0x08, 0x54, 0x1a, 0x56, 0x40, + 0xb3, 0x50, 0x5e, 0x08, 0x37, 0xb4, 0x0e, 0x9e, 0xbb, 0x0b, 0x85, 0xa8, 0x7b, 0xd0, 0x2c, 0xa4, + 0x3d, 0x5f, 0x73, 0x7d, 0x1a, 0x85, 0x69, 0x85, 0x3d, 0x20, 0x19, 0x92, 0xd8, 0x6a, 0xd2, 0x2c, + 0x97, 0x56, 0xc8, 0x4f, 0xf4, 0xe3, 0xbd, 0x09, 0x27, 0xe9, 0x84, 0x3f, 0x3c, 0xb8, 0xa2, 0x11, + 0xe6, 0xfe, 0x79, 0xcf, 0x3d, 0x03, 0x93, 0x91, 0x09, 0x8c, 0xfa, 0xea, 0x85, 0x9f, 0x82, 0x87, + 0x86, 0x52, 0xa3, 0xe7, 0x61, 0xb6, 0x6b, 0x19, 0x96, 0x8f, 0x5d, 0xc7, 0xc5, 0x24, 0x62, 0xd9, + 0xab, 0x8a, 0xff, 0x32, 0x71, 0x48, 0xcc, 0xed, 0x84, 0xb5, 0x19, 0x8b, 0x32, 0xd3, 0x1d, 0x14, + 0x3e, 0x99, 0xcd, 0xbc, 0x35, 0x21, 0xdf, 0xbb, 0x77, 0xef, 0x5e, 0x62, 0xe1, 0x8b, 0xe3, 0x30, + 0x3b, 0x6c, 0xcf, 0x0c, 0xdd, 0xbe, 0x27, 0x60, 0xdc, 0xea, 0x76, 0x76, 0xb1, 0x4b, 0x9d, 0x94, + 0x56, 0xf8, 0x13, 0xaa, 0x40, 0xda, 0xd4, 0x76, 0xb1, 0x59, 0x4c, 0xcd, 0x4b, 0x8b, 0x85, 0xf3, + 0x4f, 0x8d, 0xb4, 0x2b, 0x97, 0xd6, 0x08, 0x44, 0x61, 0x48, 0xf4, 0x09, 0x48, 0xf1, 0x14, 0x4d, + 0x18, 0x9e, 0x1c, 0x8d, 0x81, 0xec, 0x25, 0x85, 0xe2, 0xd0, 0xc3, 0x90, 0x25, 0x7f, 0x59, 0x6c, + 0x8c, 0x53, 0x9b, 0x33, 0x44, 0x40, 0xe2, 0x02, 0xcd, 0x41, 0x86, 0x6e, 0x93, 0x26, 0x16, 0xa5, + 0x2d, 0x78, 0x26, 0x81, 0xd5, 0xc4, 0x2d, 0xad, 0x6b, 0xfa, 0xea, 0x6d, 0xcd, 0xec, 0x62, 0x1a, + 0xf0, 0x59, 0x25, 0xcf, 0x85, 0x9f, 0x26, 0x32, 0x74, 0x1a, 0x72, 0x6c, 0x57, 0x19, 0x56, 0x13, + 0xbf, 0x48, 0xb3, 0x67, 0x5a, 0x61, 0x1b, 0xad, 0x4e, 0x24, 0xe4, 0xf5, 0x37, 0x3d, 0xdb, 0x12, + 0xa1, 0x49, 0x5f, 0x41, 0x04, 0xf4, 0xf5, 0xcf, 0xf4, 0x27, 0xee, 0x47, 0x86, 0x4f, 0xaf, 0x3f, + 0xa6, 0x16, 0xbe, 0x99, 0x80, 0x14, 0xcd, 0x17, 0x53, 0x90, 0xdb, 0xbe, 0xb1, 0x55, 0x53, 0x57, + 0x36, 0x77, 0x96, 0xd7, 0x6a, 0xb2, 0x84, 0x0a, 0x00, 0x54, 0x70, 0x6d, 0x6d, 0xb3, 0xb2, 0x2d, + 0x27, 0x82, 0xe7, 0xfa, 0xc6, 0xf6, 0xa5, 0x0b, 0x72, 0x32, 0x00, 0xec, 0x30, 0x41, 0x2a, 0xac, + 0xf0, 0xf4, 0x79, 0x39, 0x8d, 0x64, 0xc8, 0x33, 0x82, 0xfa, 0xf3, 0xb5, 0x95, 0x4b, 0x17, 0xe4, + 0xf1, 0xa8, 0xe4, 0xe9, 0xf3, 0xf2, 0x04, 0x9a, 0x84, 0x2c, 0x95, 0x2c, 0x6f, 0x6e, 0xae, 0xc9, + 0x99, 0x80, 0xb3, 0xb1, 0xad, 0xd4, 0x37, 0x56, 0xe5, 0x6c, 0xc0, 0xb9, 0xaa, 0x6c, 0xee, 0x6c, + 0xc9, 0x10, 0x30, 0xac, 0xd7, 0x1a, 0x8d, 0xca, 0x6a, 0x4d, 0xce, 0x05, 0x1a, 0xcb, 0x37, 0xb6, + 0x6b, 0x0d, 0x39, 0x1f, 0x31, 0xeb, 0xe9, 0xf3, 0xf2, 0x64, 0xf0, 0x8a, 0xda, 0xc6, 0xce, 0xba, + 0x5c, 0x40, 0xd3, 0x30, 0xc9, 0x5e, 0x21, 0x8c, 0x98, 0xea, 0x13, 0x5d, 0xba, 0x20, 0xcb, 0x3d, + 0x43, 0x18, 0xcb, 0x74, 0x44, 0x70, 0xe9, 0x82, 0x8c, 0x16, 0xaa, 0x90, 0xa6, 0xd1, 0x85, 0x10, + 0x14, 0xd6, 0x2a, 0xcb, 0xb5, 0x35, 0x75, 0x73, 0x6b, 0xbb, 0xbe, 0xb9, 0x51, 0x59, 0x93, 0xa5, + 0x9e, 0x4c, 0xa9, 0x7d, 0x6a, 0xa7, 0xae, 0xd4, 0x56, 0xe4, 0x44, 0x58, 0xb6, 0x55, 0xab, 0x6c, + 0xd7, 0x56, 0xe4, 0xe4, 0x82, 0x0e, 0xb3, 0xc3, 0xf2, 0xe4, 0xd0, 0x9d, 0x11, 0x5a, 0xe2, 0xc4, + 0x21, 0x4b, 0x4c, 0xb9, 0x06, 0x96, 0xf8, 0xfb, 0x09, 0x98, 0x19, 0x52, 0x2b, 0x86, 0xbe, 0xe4, + 0x59, 0x48, 0xb3, 0x10, 0x65, 0xd5, 0xf3, 0x89, 0xa1, 0x45, 0x87, 0x06, 0xec, 0x40, 0x05, 0xa5, + 0xb8, 0x70, 0x07, 0x91, 0x3c, 0xa4, 0x83, 0x20, 0x14, 0x03, 0x39, 0xfd, 0x27, 0x07, 0x72, 0x3a, + 0x2b, 0x7b, 0x97, 0x46, 0x29, 0x7b, 0x54, 0x76, 0xbc, 0xdc, 0x9e, 0x1e, 0x92, 0xdb, 0xaf, 0xc2, + 0xf4, 0x00, 0xd1, 0xc8, 0x39, 0xf6, 0x25, 0x09, 0x8a, 0x87, 0x39, 0x27, 0x26, 0xd3, 0x25, 0x22, + 0x99, 0xee, 0x6a, 0xbf, 0x07, 0xcf, 0x1c, 0xbe, 0x08, 0x03, 0x6b, 0xfd, 0x9a, 0x04, 0x27, 0x86, + 0x77, 0x8a, 0x43, 0x6d, 0xf8, 0x04, 0x8c, 0x77, 0xb0, 0xbf, 0x67, 0x8b, 0x6e, 0xe9, 0xc3, 0x43, + 0x6a, 0x30, 0x19, 0xee, 0x5f, 0x6c, 0x8e, 0x0a, 0x17, 0xf1, 0xe4, 0x61, 0xed, 0x1e, 0xb3, 0x66, + 0xc0, 0xd2, 0xcf, 0x27, 0xe0, 0xa1, 0xa1, 0xe4, 0x43, 0x0d, 0x7d, 0x04, 0xc0, 0xb0, 0x9c, 0xae, + 0xcf, 0x3a, 0x22, 0x96, 0x60, 0xb3, 0x54, 0x42, 0x93, 0x17, 0x49, 0x9e, 0x5d, 0x3f, 0x18, 0x4f, + 0xd2, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xb9, 0x67, 0x68, 0x8a, 0x1a, 0x5a, 0x3a, 0x64, 0xa6, 0x03, + 0x81, 0xf9, 0x31, 0x90, 0x75, 0xd3, 0xc0, 0x96, 0xaf, 0x7a, 0xbe, 0x8b, 0xb5, 0x8e, 0x61, 0xb5, + 0x69, 0x05, 0xc9, 0x94, 0xd3, 0x2d, 0xcd, 0xf4, 0xb0, 0x32, 0xc5, 0x86, 0x1b, 0x62, 0x94, 0x20, + 0x68, 0x00, 0xb9, 0x21, 0xc4, 0x78, 0x04, 0xc1, 0x86, 0x03, 0xc4, 0xc2, 0x37, 0x32, 0x90, 0x0b, + 0xf5, 0xd5, 0xe8, 0x0c, 0xe4, 0x6f, 0x6a, 0xb7, 0x35, 0x55, 0x9c, 0x95, 0x98, 0x27, 0x72, 0x44, + 0xb6, 0xc5, 0xcf, 0x4b, 0x1f, 0x83, 0x59, 0xaa, 0x62, 0x77, 0x7d, 0xec, 0xaa, 0xba, 0xa9, 0x79, + 0x1e, 0x75, 0x5a, 0x86, 0xaa, 0x22, 0x32, 0xb6, 0x49, 0x86, 0xaa, 0x62, 0x04, 0x5d, 0x84, 0x19, + 0x8a, 0xe8, 0x74, 0x4d, 0xdf, 0x70, 0x4c, 0xac, 0x92, 0xd3, 0x9b, 0x47, 0x2b, 0x49, 0x60, 0xd9, + 0x34, 0xd1, 0x58, 0xe7, 0x0a, 0xc4, 0x22, 0x0f, 0xad, 0xc0, 0x23, 0x14, 0xd6, 0xc6, 0x16, 0x76, + 0x35, 0x1f, 0xab, 0xf8, 0xb3, 0x5d, 0xcd, 0xf4, 0x54, 0xcd, 0x6a, 0xaa, 0x7b, 0x9a, 0xb7, 0x57, + 0x9c, 0x25, 0x04, 0xcb, 0x89, 0xa2, 0xa4, 0x9c, 0x22, 0x8a, 0xab, 0x5c, 0xaf, 0x46, 0xd5, 0x2a, + 0x56, 0xf3, 0x93, 0x9a, 0xb7, 0x87, 0xca, 0x70, 0x82, 0xb2, 0x78, 0xbe, 0x6b, 0x58, 0x6d, 0x55, + 0xdf, 0xc3, 0xfa, 0x2d, 0xb5, 0xeb, 0xb7, 0x2e, 0x17, 0x1f, 0x0e, 0xbf, 0x9f, 0x5a, 0xd8, 0xa0, + 0x3a, 0x55, 0xa2, 0xb2, 0xe3, 0xb7, 0x2e, 0xa3, 0x06, 0xe4, 0xc9, 0x62, 0x74, 0x8c, 0xbb, 0x58, + 0x6d, 0xd9, 0x2e, 0x2d, 0x8d, 0x85, 0x21, 0xa9, 0x29, 0xe4, 0xc1, 0xa5, 0x4d, 0x0e, 0x58, 0xb7, + 0x9b, 0xb8, 0x9c, 0x6e, 0x6c, 0xd5, 0x6a, 0x2b, 0x4a, 0x4e, 0xb0, 0x5c, 0xb3, 0x5d, 0x12, 0x50, + 0x6d, 0x3b, 0x70, 0x70, 0x8e, 0x05, 0x54, 0xdb, 0x16, 0xee, 0xbd, 0x08, 0x33, 0xba, 0xce, 0xe6, + 0x6c, 0xe8, 0x2a, 0x3f, 0x63, 0x79, 0x45, 0x39, 0xe2, 0x2c, 0x5d, 0x5f, 0x65, 0x0a, 0x3c, 0xc6, + 0x3d, 0x74, 0x05, 0x1e, 0xea, 0x39, 0x2b, 0x0c, 0x9c, 0x1e, 0x98, 0x65, 0x3f, 0xf4, 0x22, 0xcc, + 0x38, 0xfb, 0x83, 0x40, 0x14, 0x79, 0xa3, 0xb3, 0xdf, 0x0f, 0x7b, 0x06, 0x66, 0x9d, 0x3d, 0x67, + 0x10, 0xf7, 0x64, 0x18, 0x87, 0x9c, 0x3d, 0xa7, 0x1f, 0xf8, 0x38, 0x3d, 0x70, 0xbb, 0x58, 0xd7, + 0x7c, 0xdc, 0x2c, 0x9e, 0x0c, 0xab, 0x87, 0x06, 0xd0, 0x39, 0x90, 0x75, 0x5d, 0xc5, 0x96, 0xb6, + 0x6b, 0x62, 0x55, 0x73, 0xb1, 0xa5, 0x79, 0xc5, 0xd3, 0x61, 0xe5, 0x82, 0xae, 0xd7, 0xe8, 0x68, + 0x85, 0x0e, 0xa2, 0x27, 0x61, 0xda, 0xde, 0xbd, 0xa9, 0xb3, 0x90, 0x54, 0x1d, 0x17, 0xb7, 0x8c, + 0x17, 0x8b, 0x8f, 0x51, 0xff, 0x4e, 0x91, 0x01, 0x1a, 0x90, 0x5b, 0x54, 0x8c, 0x9e, 0x00, 0x59, + 0xf7, 0xf6, 0x34, 0xd7, 0xa1, 0x39, 0xd9, 0x73, 0x34, 0x1d, 0x17, 0x1f, 0x67, 0xaa, 0x4c, 0xbe, + 0x21, 0xc4, 0x64, 0x4b, 0x78, 0x77, 0x8c, 0x96, 0x2f, 0x18, 0xcf, 0xb2, 0x2d, 0x41, 0x65, 0x9c, + 0x6d, 0x11, 0x64, 0xe2, 0x8a, 0xc8, 0x8b, 0x17, 0xa9, 0x5a, 0xc1, 0xd9, 0x73, 0xc2, 0xef, 0x7d, + 0x14, 0x26, 0x89, 0x66, 0xef, 0xa5, 0x4f, 0xb0, 0x86, 0xcc, 0xd9, 0x0b, 0xbd, 0xf1, 0x7d, 0xeb, + 0x8d, 0x17, 0xca, 0x90, 0x0f, 0xc7, 0x27, 0xca, 0x02, 0x8b, 0x50, 0x59, 0x22, 0xcd, 0x4a, 0x75, + 0x73, 0x85, 0xb4, 0x19, 0x2f, 0xd4, 0xe4, 0x04, 0x69, 0x77, 0xd6, 0xea, 0xdb, 0x35, 0x55, 0xd9, + 0xd9, 0xd8, 0xae, 0xaf, 0xd7, 0xe4, 0x64, 0xb8, 0xaf, 0xfe, 0x4e, 0x02, 0x0a, 0xd1, 0x23, 0x12, + 0xfa, 0x31, 0x38, 0x29, 0xee, 0x33, 0x3c, 0xec, 0xab, 0x77, 0x0c, 0x97, 0x6e, 0x99, 0x8e, 0xc6, + 0xca, 0x57, 0xb0, 0x68, 0xb3, 0x5c, 0xab, 0x81, 0xfd, 0xe7, 0x0c, 0x97, 0x6c, 0x88, 0x8e, 0xe6, + 0xa3, 0x35, 0x38, 0x6d, 0xd9, 0xaa, 0xe7, 0x6b, 0x56, 0x53, 0x73, 0x9b, 0x6a, 0xef, 0x26, 0x49, + 0xd5, 0x74, 0x1d, 0x7b, 0x9e, 0xcd, 0x4a, 0x55, 0xc0, 0xf2, 0x21, 0xcb, 0x6e, 0x70, 0xe5, 0x5e, + 0x0e, 0xaf, 0x70, 0xd5, 0xbe, 0x00, 0x4b, 0x1e, 0x16, 0x60, 0x0f, 0x43, 0xb6, 0xa3, 0x39, 0x2a, + 0xb6, 0x7c, 0x77, 0x9f, 0x36, 0xc6, 0x19, 0x25, 0xd3, 0xd1, 0x9c, 0x1a, 0x79, 0xfe, 0x60, 0xce, + 0x27, 0xff, 0x98, 0x84, 0x7c, 0xb8, 0x39, 0x26, 0x67, 0x0d, 0x9d, 0xd6, 0x11, 0x89, 0x66, 0x9a, + 0x47, 0x8f, 0x6c, 0xa5, 0x97, 0xaa, 0xa4, 0xc0, 0x94, 0xc7, 0x59, 0xcb, 0xaa, 0x30, 0x24, 0x29, + 0xee, 0x24, 0xb7, 0x60, 0xd6, 0x22, 0x64, 0x14, 0xfe, 0x84, 0x56, 0x61, 0xfc, 0xa6, 0x47, 0xb9, + 0xc7, 0x29, 0xf7, 0x63, 0x47, 0x73, 0x5f, 0x6f, 0x50, 0xf2, 0xec, 0xf5, 0x86, 0xba, 0xb1, 0xa9, + 0xac, 0x57, 0xd6, 0x14, 0x0e, 0x47, 0xa7, 0x20, 0x65, 0x6a, 0x77, 0xf7, 0xa3, 0xa5, 0x88, 0x8a, + 0x46, 0x75, 0xfc, 0x29, 0x48, 0xdd, 0xc1, 0xda, 0xad, 0x68, 0x01, 0xa0, 0xa2, 0xf7, 0x31, 0xf4, + 0xcf, 0x41, 0x9a, 0xfa, 0x0b, 0x01, 0x70, 0x8f, 0xc9, 0x63, 0x28, 0x03, 0xa9, 0xea, 0xa6, 0x42, + 0xc2, 0x5f, 0x86, 0x3c, 0x93, 0xaa, 0x5b, 0xf5, 0x5a, 0xb5, 0x26, 0x27, 0x16, 0x2e, 0xc2, 0x38, + 0x73, 0x02, 0xd9, 0x1a, 0x81, 0x1b, 0xe4, 0x31, 0xfe, 0xc8, 0x39, 0x24, 0x31, 0xba, 0xb3, 0xbe, + 0x5c, 0x53, 0xe4, 0x44, 0x78, 0x79, 0x3d, 0xc8, 0x87, 0xfb, 0xe2, 0x0f, 0x26, 0xa6, 0xfe, 0x5a, + 0x82, 0x5c, 0xa8, 0xcf, 0x25, 0x0d, 0x8a, 0x66, 0x9a, 0xf6, 0x1d, 0x55, 0x33, 0x0d, 0xcd, 0xe3, + 0x41, 0x01, 0x54, 0x54, 0x21, 0x92, 0x51, 0x17, 0xed, 0x03, 0x31, 0xfe, 0x55, 0x09, 0xe4, 0xfe, + 0x16, 0xb3, 0xcf, 0x40, 0xe9, 0x47, 0x6a, 0xe0, 0x2b, 0x12, 0x14, 0xa2, 0x7d, 0x65, 0x9f, 0x79, + 0x67, 0x7e, 0xa4, 0xe6, 0xbd, 0x91, 0x80, 0xc9, 0x48, 0x37, 0x39, 0xaa, 0x75, 0x9f, 0x85, 0x69, + 0xa3, 0x89, 0x3b, 0x8e, 0xed, 0x63, 0x4b, 0xdf, 0x57, 0x4d, 0x7c, 0x1b, 0x9b, 0xc5, 0x05, 0x9a, + 0x28, 0xce, 0x1d, 0xdd, 0xaf, 0x2e, 0xd5, 0x7b, 0xb8, 0x35, 0x02, 0x2b, 0xcf, 0xd4, 0x57, 0x6a, + 0xeb, 0x5b, 0x9b, 0xdb, 0xb5, 0x8d, 0xea, 0x0d, 0x75, 0x67, 0xe3, 0x27, 0x36, 0x36, 0x9f, 0xdb, + 0x50, 0x64, 0xa3, 0x4f, 0xed, 0x7d, 0xdc, 0xea, 0x5b, 0x20, 0xf7, 0x1b, 0x85, 0x4e, 0xc2, 0x30, + 0xb3, 0xe4, 0x31, 0x34, 0x03, 0x53, 0x1b, 0x9b, 0x6a, 0xa3, 0xbe, 0x52, 0x53, 0x6b, 0xd7, 0xae, + 0xd5, 0xaa, 0xdb, 0x0d, 0x76, 0x03, 0x11, 0x68, 0x6f, 0x47, 0x37, 0xf5, 0xcb, 0x49, 0x98, 0x19, + 0x62, 0x09, 0xaa, 0xf0, 0xb3, 0x03, 0x3b, 0xce, 0x7c, 0x74, 0x14, 0xeb, 0x97, 0x48, 0xc9, 0xdf, + 0xd2, 0x5c, 0x9f, 0x1f, 0x35, 0x9e, 0x00, 0xe2, 0x25, 0xcb, 0x37, 0x5a, 0x06, 0x76, 0xf9, 0x85, + 0x0d, 0x3b, 0x50, 0x4c, 0xf5, 0xe4, 0xec, 0xce, 0xe6, 0x23, 0x80, 0x1c, 0xdb, 0x33, 0x7c, 0xe3, + 0x36, 0x56, 0x0d, 0x4b, 0xdc, 0xee, 0x90, 0x03, 0x46, 0x4a, 0x91, 0xc5, 0x48, 0xdd, 0xf2, 0x03, + 0x6d, 0x0b, 0xb7, 0xb5, 0x3e, 0x6d, 0x92, 0xc0, 0x93, 0x8a, 0x2c, 0x46, 0x02, 0xed, 0x33, 0x90, + 0x6f, 0xda, 0x5d, 0xd2, 0x75, 0x31, 0x3d, 0x52, 0x2f, 0x24, 0x25, 0xc7, 0x64, 0x81, 0x0a, 0xef, + 0xa7, 0x7b, 0xd7, 0x4a, 0x79, 0x25, 0xc7, 0x64, 0x4c, 0xe5, 0x2c, 0x4c, 0x69, 0xed, 0xb6, 0x4b, + 0xc8, 0x05, 0x11, 0x3b, 0x21, 0x14, 0x02, 0x31, 0x55, 0x9c, 0xbb, 0x0e, 0x19, 0xe1, 0x07, 0x52, + 0x92, 0x89, 0x27, 0x54, 0x87, 0x1d, 0x7b, 0x13, 0x8b, 0x59, 0x25, 0x63, 0x89, 0xc1, 0x33, 0x90, + 0x37, 0x3c, 0xb5, 0x77, 0x4b, 0x9e, 0x98, 0x4f, 0x2c, 0x66, 0x94, 0x9c, 0xe1, 0x05, 0x37, 0x8c, + 0x0b, 0xaf, 0x25, 0xa0, 0x10, 0xbd, 0xe5, 0x47, 0x2b, 0x90, 0x31, 0x6d, 0x5d, 0xa3, 0xa1, 0xc5, + 0x3e, 0x31, 0x2d, 0xc6, 0x7c, 0x18, 0x58, 0x5a, 0xe3, 0xfa, 0x4a, 0x80, 0x9c, 0xfb, 0x7b, 0x09, + 0x32, 0x42, 0x8c, 0x4e, 0x40, 0xca, 0xd1, 0xfc, 0x3d, 0x4a, 0x97, 0x5e, 0x4e, 0xc8, 0x92, 0x42, + 0x9f, 0x89, 0xdc, 0x73, 0x34, 0x8b, 0x86, 0x00, 0x97, 0x93, 0x67, 0xb2, 0xae, 0x26, 0xd6, 0x9a, + 0xf4, 0xf8, 0x61, 0x77, 0x3a, 0xd8, 0xf2, 0x3d, 0xb1, 0xae, 0x5c, 0x5e, 0xe5, 0x62, 0xf4, 0x14, + 0x4c, 0xfb, 0xae, 0x66, 0x98, 0x11, 0xdd, 0x14, 0xd5, 0x95, 0xc5, 0x40, 0xa0, 0x5c, 0x86, 0x53, + 0x82, 0xb7, 0x89, 0x7d, 0x4d, 0xdf, 0xc3, 0xcd, 0x1e, 0x68, 0x9c, 0x5e, 0x33, 0x9c, 0xe4, 0x0a, + 0x2b, 0x7c, 0x5c, 0x60, 0x17, 0xbe, 0x27, 0xc1, 0xb4, 0x38, 0x30, 0x35, 0x03, 0x67, 0xad, 0x03, + 0x68, 0x96, 0x65, 0xfb, 0x61, 0x77, 0x0d, 0x86, 0xf2, 0x00, 0x6e, 0xa9, 0x12, 0x80, 0x94, 0x10, + 0xc1, 0x5c, 0x07, 0xa0, 0x37, 0x72, 0xa8, 0xdb, 0x4e, 0x43, 0x8e, 0x7f, 0xc2, 0xa1, 0xdf, 0x01, + 0xd9, 0x11, 0x1b, 0x98, 0x88, 0x9c, 0xac, 0xd0, 0x2c, 0xa4, 0x77, 0x71, 0xdb, 0xb0, 0xf8, 0xc5, + 0x2c, 0x7b, 0x10, 0x17, 0x21, 0xa9, 0xe0, 0x22, 0x64, 0xf9, 0x33, 0x30, 0xa3, 0xdb, 0x9d, 0x7e, + 0x73, 0x97, 0xe5, 0xbe, 0x63, 0xbe, 0xf7, 0x49, 0xe9, 0x05, 0xe8, 0xb5, 0x98, 0xef, 0x49, 0xd2, + 0xef, 0x26, 0x92, 0xab, 0x5b, 0xcb, 0x5f, 0x4d, 0xcc, 0xad, 0x32, 0xe8, 0x96, 0x98, 0xa9, 0x82, + 0x5b, 0x26, 0xd6, 0x89, 0xf5, 0xf0, 0x85, 0xb3, 0xf0, 0xd1, 0xb6, 0xe1, 0xef, 0x75, 0x77, 0x97, + 0x74, 0xbb, 0x73, 0xae, 0x6d, 0xb7, 0xed, 0xde, 0xa7, 0x4f, 0xf2, 0x44, 0x1f, 0xe8, 0x2f, 0xfe, + 0xf9, 0x33, 0x1b, 0x48, 0xe7, 0x62, 0xbf, 0x95, 0x96, 0x37, 0x60, 0x86, 0x2b, 0xab, 0xf4, 0xfb, + 0x0b, 0x3b, 0x45, 0xa0, 0x23, 0xef, 0xb0, 0x8a, 0x5f, 0x7f, 0x93, 0x96, 0x6b, 0x65, 0x9a, 0x43, + 0xc9, 0x18, 0x3b, 0x68, 0x94, 0x15, 0x78, 0x28, 0xc2, 0xc7, 0xb6, 0x26, 0x76, 0x63, 0x18, 0xbf, + 0xc3, 0x19, 0x67, 0x42, 0x8c, 0x0d, 0x0e, 0x2d, 0x57, 0x61, 0xf2, 0x38, 0x5c, 0x7f, 0xcb, 0xb9, + 0xf2, 0x38, 0x4c, 0xb2, 0x0a, 0x53, 0x94, 0x44, 0xef, 0x7a, 0xbe, 0xdd, 0xa1, 0x79, 0xef, 0x68, + 0x9a, 0xbf, 0x7b, 0x93, 0xed, 0x95, 0x02, 0x81, 0x55, 0x03, 0x54, 0xb9, 0x0c, 0xf4, 0x93, 0x53, + 0x13, 0xeb, 0x66, 0x0c, 0xc3, 0xeb, 0xdc, 0x90, 0x40, 0xbf, 0xfc, 0x69, 0x98, 0x25, 0xbf, 0x69, + 0x5a, 0x0a, 0x5b, 0x12, 0x7f, 0xe1, 0x55, 0xfc, 0xde, 0x4b, 0x6c, 0x3b, 0xce, 0x04, 0x04, 0x21, + 0x9b, 0x42, 0xab, 0xd8, 0xc6, 0xbe, 0x8f, 0x5d, 0x4f, 0xd5, 0xcc, 0x61, 0xe6, 0x85, 0x6e, 0x0c, + 0x8a, 0x5f, 0x7a, 0x3b, 0xba, 0x8a, 0xab, 0x0c, 0x59, 0x31, 0xcd, 0xf2, 0x0e, 0x9c, 0x1c, 0x12, + 0x15, 0x23, 0x70, 0xbe, 0xcc, 0x39, 0x67, 0x07, 0x22, 0x83, 0xd0, 0x6e, 0x81, 0x90, 0x07, 0x6b, + 0x39, 0x02, 0xe7, 0x6f, 0x72, 0x4e, 0xc4, 0xb1, 0x62, 0x49, 0x09, 0xe3, 0x75, 0x98, 0xbe, 0x8d, + 0xdd, 0x5d, 0xdb, 0xe3, 0xb7, 0x34, 0x23, 0xd0, 0xbd, 0xc2, 0xe9, 0xa6, 0x38, 0x90, 0x5e, 0xdb, + 0x10, 0xae, 0x2b, 0x90, 0x69, 0x69, 0x3a, 0x1e, 0x81, 0xe2, 0xcb, 0x9c, 0x62, 0x82, 0xe8, 0x13, + 0x68, 0x05, 0xf2, 0x6d, 0x9b, 0x57, 0xa6, 0x78, 0xf8, 0xab, 0x1c, 0x9e, 0x13, 0x18, 0x4e, 0xe1, + 0xd8, 0x4e, 0xd7, 0x24, 0x65, 0x2b, 0x9e, 0xe2, 0xb7, 0x04, 0x85, 0xc0, 0x70, 0x8a, 0x63, 0xb8, + 0xf5, 0xb7, 0x05, 0x85, 0x17, 0xf2, 0xe7, 0xb3, 0x90, 0xb3, 0x2d, 0x73, 0xdf, 0xb6, 0x46, 0x31, + 0xe2, 0x77, 0x38, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x0a, 0xd9, 0x51, 0x17, 0xe2, 0xf7, 0xde, 0x16, + 0xdb, 0x43, 0xac, 0xc0, 0x2a, 0x4c, 0x89, 0x04, 0x65, 0xd8, 0xd6, 0x08, 0x14, 0xbf, 0xcf, 0x29, + 0x0a, 0x21, 0x18, 0x9f, 0x86, 0x8f, 0x3d, 0xbf, 0x8d, 0x47, 0x21, 0x79, 0x4d, 0x4c, 0x83, 0x43, + 0xb8, 0x2b, 0x77, 0xb1, 0xa5, 0xef, 0x8d, 0xc6, 0xf0, 0x15, 0xe1, 0x4a, 0x81, 0x21, 0x14, 0x55, + 0x98, 0xec, 0x68, 0xae, 0xb7, 0xa7, 0x99, 0x23, 0x2d, 0xc7, 0x1f, 0x70, 0x8e, 0x7c, 0x00, 0xe2, + 0x1e, 0xe9, 0x5a, 0xc7, 0xa1, 0xf9, 0xaa, 0xf0, 0x48, 0x08, 0xc6, 0xb7, 0x9e, 0xe7, 0xd3, 0x2b, + 0xad, 0xe3, 0xb0, 0xfd, 0xa1, 0xd8, 0x7a, 0x0c, 0xbb, 0x1e, 0x66, 0xbc, 0x0a, 0x59, 0xcf, 0xb8, + 0x3b, 0x12, 0xcd, 0x1f, 0x89, 0x95, 0xa6, 0x00, 0x02, 0xbe, 0x01, 0xa7, 0x86, 0x96, 0x89, 0x11, + 0xc8, 0xfe, 0x98, 0x93, 0x9d, 0x18, 0x52, 0x2a, 0x78, 0x4a, 0x38, 0x2e, 0xe5, 0x9f, 0x88, 0x94, + 0x80, 0xfb, 0xb8, 0xb6, 0xc8, 0x59, 0xc1, 0xd3, 0x5a, 0xc7, 0xf3, 0xda, 0x9f, 0x0a, 0xaf, 0x31, + 0x6c, 0xc4, 0x6b, 0xdb, 0x70, 0x82, 0x33, 0x1e, 0x6f, 0x5d, 0xbf, 0x26, 0x12, 0x2b, 0x43, 0xef, + 0x44, 0x57, 0xf7, 0x33, 0x30, 0x17, 0xb8, 0x53, 0x34, 0xa5, 0x9e, 0xda, 0xd1, 0x9c, 0x11, 0x98, + 0xbf, 0xce, 0x99, 0x45, 0xc6, 0x0f, 0xba, 0x5a, 0x6f, 0x5d, 0x73, 0x08, 0xf9, 0xf3, 0x50, 0x14, + 0xe4, 0x5d, 0xcb, 0xc5, 0xba, 0xdd, 0xb6, 0x8c, 0xbb, 0xb8, 0x39, 0x02, 0xf5, 0x9f, 0xf5, 0x2d, + 0xd5, 0x4e, 0x08, 0x4e, 0x98, 0xeb, 0x20, 0x07, 0xbd, 0x8a, 0x6a, 0x74, 0x1c, 0xdb, 0xf5, 0x63, + 0x18, 0xbf, 0x21, 0x56, 0x2a, 0xc0, 0xd5, 0x29, 0xac, 0x5c, 0x83, 0x02, 0x7d, 0x1c, 0x35, 0x24, + 0xff, 0x9c, 0x13, 0x4d, 0xf6, 0x50, 0x3c, 0x71, 0xe8, 0x76, 0xc7, 0xd1, 0xdc, 0x51, 0xf2, 0xdf, + 0x5f, 0x88, 0xc4, 0xc1, 0x21, 0x3c, 0x71, 0xf8, 0xfb, 0x0e, 0x26, 0xd5, 0x7e, 0x04, 0x86, 0x6f, + 0x8a, 0xc4, 0x21, 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x23, 0x50, 0xfc, 0xa5, 0xa0, 0x10, 0x18, 0x42, + 0xf1, 0xa9, 0x5e, 0xa1, 0x75, 0x71, 0xdb, 0xf0, 0x7c, 0x97, 0xb5, 0xc2, 0x47, 0x53, 0x7d, 0xeb, + 0xed, 0x68, 0x13, 0xa6, 0x84, 0xa0, 0xe5, 0xeb, 0x30, 0xd5, 0xd7, 0x62, 0xa0, 0xb8, 0xff, 0x5f, + 0x29, 0xfe, 0xf4, 0xbb, 0x3c, 0x19, 0x45, 0x3b, 0x8c, 0xf2, 0x1a, 0x59, 0xf7, 0x68, 0x1f, 0x10, + 0x4f, 0xf6, 0xd2, 0xbb, 0xc1, 0xd2, 0x47, 0xda, 0x80, 0xf2, 0x35, 0x98, 0x8c, 0xf4, 0x00, 0xf1, + 0x54, 0x9f, 0xe3, 0x54, 0xf9, 0x70, 0x0b, 0x50, 0xbe, 0x08, 0x29, 0x52, 0xcf, 0xe3, 0xe1, 0x3f, + 0xc3, 0xe1, 0x54, 0xbd, 0xfc, 0x71, 0xc8, 0x88, 0x3a, 0x1e, 0x0f, 0xfd, 0x59, 0x0e, 0x0d, 0x20, + 0x04, 0x2e, 0x6a, 0x78, 0x3c, 0xfc, 0xe7, 0x04, 0x5c, 0x40, 0x08, 0x7c, 0x74, 0x17, 0x7e, 0xfb, + 0x17, 0x52, 0x3c, 0x0f, 0x0b, 0xdf, 0x5d, 0x85, 0x09, 0x5e, 0xbc, 0xe3, 0xd1, 0x9f, 0xe7, 0x2f, + 0x17, 0x88, 0xf2, 0x33, 0x90, 0x1e, 0xd1, 0xe1, 0xbf, 0xc8, 0xa1, 0x4c, 0xbf, 0x5c, 0x85, 0x5c, + 0xa8, 0x60, 0xc7, 0xc3, 0x7f, 0x89, 0xc3, 0xc3, 0x28, 0x62, 0x3a, 0x2f, 0xd8, 0xf1, 0x04, 0xbf, + 0x2c, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0x51, 0xab, 0xe3, 0xd1, 0xbf, 0x22, 0xbc, 0x2e, 0x20, 0xe5, + 0x67, 0x21, 0x1b, 0xe4, 0xdf, 0x78, 0xfc, 0xaf, 0x72, 0x7c, 0x0f, 0x43, 0x3c, 0x10, 0xca, 0xff, + 0xf1, 0x14, 0xbf, 0x26, 0x3c, 0x10, 0x42, 0x91, 0x6d, 0xd4, 0x5f, 0xd3, 0xe3, 0x99, 0x7e, 0x5d, + 0x6c, 0xa3, 0xbe, 0x92, 0x4e, 0x56, 0x93, 0xa6, 0xc1, 0x78, 0x8a, 0xdf, 0x10, 0xab, 0x49, 0xf5, + 0x89, 0x19, 0xfd, 0x45, 0x32, 0x9e, 0xe3, 0x0b, 0xc2, 0x8c, 0xbe, 0x1a, 0x59, 0xde, 0x02, 0x34, + 0x58, 0x20, 0xe3, 0xf9, 0xbe, 0xc8, 0xf9, 0xa6, 0x07, 0xea, 0x63, 0xf9, 0x39, 0x38, 0x31, 0xbc, + 0x38, 0xc6, 0xb3, 0x7e, 0xe9, 0xdd, 0xbe, 0xe3, 0x4c, 0xb8, 0x36, 0x96, 0xb7, 0x7b, 0x59, 0x36, + 0x5c, 0x18, 0xe3, 0x69, 0x5f, 0x7e, 0x37, 0x9a, 0x68, 0xc3, 0x75, 0xb1, 0x5c, 0x01, 0xe8, 0xd5, + 0xa4, 0x78, 0xae, 0x57, 0x38, 0x57, 0x08, 0x44, 0xb6, 0x06, 0x2f, 0x49, 0xf1, 0xf8, 0x2f, 0x8b, + 0xad, 0xc1, 0x11, 0x64, 0x6b, 0x88, 0x6a, 0x14, 0x8f, 0x7e, 0x55, 0x6c, 0x0d, 0x01, 0x29, 0x5f, + 0x85, 0x8c, 0xd5, 0x35, 0x4d, 0x12, 0x5b, 0xe8, 0xe8, 0x7f, 0xc9, 0x2a, 0xfe, 0xeb, 0x03, 0x0e, + 0x16, 0x80, 0xf2, 0x45, 0x48, 0xe3, 0xce, 0x2e, 0x6e, 0xc6, 0x21, 0xff, 0xed, 0x81, 0xc8, 0x27, + 0x44, 0xbb, 0xfc, 0x2c, 0x00, 0x3b, 0x4c, 0xd3, 0x0f, 0x45, 0x31, 0xd8, 0x7f, 0x7f, 0xc0, 0xff, + 0x59, 0xa2, 0x07, 0xe9, 0x11, 0xb0, 0x7f, 0xbd, 0x38, 0x9a, 0xe0, 0xed, 0x28, 0x01, 0x3d, 0x80, + 0x5f, 0x81, 0x89, 0x9b, 0x9e, 0x6d, 0xf9, 0x5a, 0x3b, 0x0e, 0xfd, 0x1f, 0x1c, 0x2d, 0xf4, 0x89, + 0xc3, 0x3a, 0xb6, 0x8b, 0x7d, 0xad, 0xed, 0xc5, 0x61, 0xff, 0x93, 0x63, 0x03, 0x00, 0x01, 0xeb, + 0x9a, 0xe7, 0x8f, 0x32, 0xef, 0x1f, 0x08, 0xb0, 0x00, 0x10, 0xa3, 0xc9, 0xef, 0x5b, 0x78, 0x3f, + 0x0e, 0xfb, 0x8e, 0x30, 0x9a, 0xeb, 0x97, 0x3f, 0x0e, 0x59, 0xf2, 0x93, 0xfd, 0x07, 0x54, 0x0c, + 0xf8, 0xbf, 0x38, 0xb8, 0x87, 0x20, 0x6f, 0xf6, 0xfc, 0xa6, 0x6f, 0xc4, 0x3b, 0xfb, 0xbf, 0xf9, + 0x4a, 0x0b, 0xfd, 0x72, 0x05, 0x72, 0x9e, 0xdf, 0x6c, 0x76, 0x79, 0x47, 0x13, 0x03, 0xff, 0x9f, + 0x07, 0xc1, 0x21, 0x37, 0xc0, 0x2c, 0xd7, 0x86, 0xdf, 0xd7, 0xc1, 0xaa, 0xbd, 0x6a, 0xb3, 0x9b, + 0xba, 0x17, 0x16, 0xe2, 0xaf, 0xdc, 0xe0, 0x7f, 0x53, 0x30, 0x15, 0x4c, 0x49, 0xdc, 0xbd, 0x05, + 0x82, 0xb9, 0xe3, 0xdd, 0xda, 0x2d, 0xfc, 0x4d, 0x12, 0x32, 0x55, 0xcd, 0xf3, 0xb5, 0x3b, 0xda, + 0x3e, 0x72, 0x60, 0x86, 0xfc, 0x5e, 0xd7, 0x1c, 0x7a, 0x07, 0xc4, 0x37, 0x1d, 0xbf, 0x18, 0xfd, + 0xc8, 0x52, 0xef, 0xad, 0x02, 0xb1, 0x34, 0x44, 0x9d, 0x7e, 0x50, 0x5e, 0x96, 0x5f, 0xff, 0xa7, + 0xd3, 0x63, 0x3f, 0xff, 0xcf, 0xa7, 0x33, 0xeb, 0xfb, 0xcf, 0x19, 0xa6, 0x67, 0x5b, 0xca, 0x30, + 0x6a, 0xf4, 0x39, 0x09, 0x1e, 0x1e, 0x22, 0xdf, 0xe0, 0x3b, 0x93, 0x7f, 0x5e, 0xb8, 0x30, 0xe2, + 0xab, 0x05, 0x8c, 0x99, 0x90, 0x8f, 0xbc, 0xfe, 0xa8, 0xd7, 0xcc, 0xdd, 0x80, 0xe2, 0x61, 0x33, + 0x41, 0x32, 0x24, 0x6f, 0xe1, 0x7d, 0xfe, 0x5f, 0x69, 0xe4, 0x27, 0x3a, 0xdb, 0xfb, 0xdf, 0x3d, + 0x69, 0x31, 0x77, 0x7e, 0x3a, 0x64, 0x1d, 0x7f, 0x19, 0x1b, 0x2f, 0x27, 0x2e, 0x4b, 0x73, 0x1a, + 0xcc, 0xc7, 0x59, 0xfa, 0xff, 0x7c, 0xc5, 0x42, 0x09, 0xc6, 0x99, 0x10, 0xcd, 0x42, 0xba, 0x6e, + 0xf9, 0x97, 0x2e, 0x50, 0xaa, 0xa4, 0xc2, 0x1e, 0x96, 0xd7, 0x5e, 0xbf, 0x5f, 0x1a, 0xfb, 0xee, + 0xfd, 0xd2, 0xd8, 0x3f, 0xdc, 0x2f, 0x8d, 0xbd, 0x71, 0xbf, 0x24, 0xbd, 0x75, 0xbf, 0x24, 0xbd, + 0x73, 0xbf, 0x24, 0xbd, 0x77, 0xbf, 0x24, 0xdd, 0x3b, 0x28, 0x49, 0x5f, 0x39, 0x28, 0x49, 0x5f, + 0x3b, 0x28, 0x49, 0xdf, 0x3a, 0x28, 0x49, 0xdf, 0x3e, 0x28, 0x49, 0xaf, 0x1f, 0x94, 0xc6, 0xbe, + 0x7b, 0x50, 0x1a, 0x7b, 0xe3, 0xa0, 0x24, 0xbd, 0x75, 0x50, 0x1a, 0x7b, 0xe7, 0xa0, 0x24, 0xbd, + 0x77, 0x50, 0x1a, 0xbb, 0xf7, 0xfd, 0xd2, 0xd8, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x17, 0x52, + 0x12, 0x1d, 0x0c, 0x33, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -505,16 +510,16 @@ func (this *Wilson) Equal(that interface{}) bool { } type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetCastMapValueMessage() map[int32]MyWilson GetCastMapValueMessageNullable() map[int32]*MyWilson } -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) Proto() proto.Message { return this } -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) TestProto() proto.Message { return NewCastawayFromFace(this) } @@ -534,15 +539,15 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { } type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt64() *int64 } -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) Proto() proto.Message { return this } -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) TestProto() proto.Message { return NewWilsonFromFace(this) } @@ -566,7 +571,7 @@ func (this *Castaway) GoString() string { for k := range this.CastMapValueMessage { keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) + sortkeys.Int32s(keysForCastMapValueMessage) mapStringForCastMapValueMessage := "map[int32]MyWilson{" for _, k := range keysForCastMapValueMessage { mapStringForCastMapValueMessage += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessage[k]) @@ -579,7 +584,7 @@ func (this *Castaway) GoString() string { for k := range this.CastMapValueMessageNullable { keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) + sortkeys.Int32s(keysForCastMapValueMessageNullable) mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" for _, k := range keysForCastMapValueMessageNullable { mapStringForCastMapValueMessageNullable += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessageNullable[k]) @@ -790,7 +795,7 @@ func (this *Castaway) String() string { for k := range this.CastMapValueMessage { keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) + sortkeys.Int32s(keysForCastMapValueMessage) mapStringForCastMapValueMessage := "map[int32]MyWilson{" for _, k := range keysForCastMapValueMessage { mapStringForCastMapValueMessage += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessage[k]) @@ -800,7 +805,7 @@ func (this *Castaway) String() string { for k := range this.CastMapValueMessageNullable { keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) + sortkeys.Int32s(keysForCastMapValueMessageNullable) mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" for _, k := range keysForCastMapValueMessageNullable { mapStringForCastMapValueMessageNullable += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessageNullable[k]) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/castvaluepb_test.go index 3c6f6a780..ddee017e1 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/castvaluepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: castvalue.proto -// DO NOT EDIT! /* Package castvalue is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package castvalue import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,12 +58,12 @@ func TestCastawayProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 10000) for i := 0; i < 10000; i++ { @@ -73,7 +71,7 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -83,11 +81,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } @@ -97,7 +95,7 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -106,14 +104,14 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -134,12 +132,12 @@ func TestWilsonProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 10000) for i := 0; i < 10000; i++ { @@ -147,7 +145,7 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -157,11 +155,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } @@ -171,7 +169,7 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -180,15 +178,15 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { func TestCastawayJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -201,15 +199,15 @@ func TestCastawayJSON(t *testing.T) { } func TestWilsonJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -222,11 +220,11 @@ func TestWilsonJSON(t *testing.T) { } func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -239,11 +237,11 @@ func TestCastawayProtoText(t *testing.T) { func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -256,11 +254,11 @@ func TestCastawayProtoCompactText(t *testing.T) { func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -273,11 +271,11 @@ func TestWilsonProtoText(t *testing.T) { func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -292,14 +290,14 @@ func TestCastvalueDescription(t *testing.T) { CastvalueDescription() } func TestCastawayVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -307,14 +305,14 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -322,7 +320,7 @@ func TestWilsonVerboseEqual(t *testing.T) { } } func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -330,7 +328,7 @@ func TestCastawayFace(t *testing.T) { } } func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -338,37 +336,37 @@ func TestWilsonFace(t *testing.T) { } } func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCastawaySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -379,14 +377,14 @@ func TestCastawaySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 1000) for i := 0; i < 1000; i++ { @@ -401,10 +399,10 @@ func BenchmarkCastawaySize(b *testing.B) { func TestWilsonSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -415,14 +413,14 @@ func TestWilsonSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 1000) for i := 0; i < 1000; i++ { @@ -436,7 +434,7 @@ func BenchmarkWilsonSize(b *testing.B) { } func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -445,7 +443,7 @@ func TestCastawayStringer(t *testing.T) { } } func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go index 2823b5914..e89098d56 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvalue.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/castvalue.proto -// DO NOT EDIT! /* Package castvalue is a generated protocol buffer package. @@ -19,15 +18,14 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" import io "io" @@ -65,265 +63,271 @@ func init() { proto.RegisterType((*Castaway)(nil), "castvalue.Castaway") proto.RegisterType((*Wilson)(nil), "castvalue.Wilson") } -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Castaway) Description() (desc *descriptor.FileDescriptorSet) { return CastvalueDescription() } -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Wilson) Description() (desc *descriptor.FileDescriptorSet) { return CastvalueDescription() } -func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func CastvalueDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3793 bytes of a gzipped FileDescriptorSet + // 3903 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0x8a, 0x21, 0x8a, 0xb1, - 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, - 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, - 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0xc7, 0xed, 0xf4, 0xbf, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0x33, - 0xd3, 0x3a, 0x4d, 0xfa, 0x93, 0xf4, 0x27, 0xcd, 0xf4, 0x29, 0x7d, 0x48, 0xeb, 0xa7, 0x4e, 0xf2, - 0xd6, 0x87, 0x4e, 0x6b, 0x31, 0x9e, 0xa9, 0xdb, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x99, 0xd1, 0x4b, - 0xe7, 0xfe, 0x2d, 0x76, 0x01, 0x90, 0x0b, 0x26, 0xe3, 0xf8, 0x89, 0xb8, 0xe7, 0x9e, 0xef, 0xdb, - 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0xb3, 0x77, 0x09, 0xdf, 0xbf, 0x0c, 0x8b, 0x6d, 0xdb, 0x6e, 0x9b, - 0x78, 0xb5, 0xeb, 0xd8, 0x9e, 0xbd, 0xd7, 0x6b, 0xad, 0x36, 0xb1, 0xab, 0x3b, 0x46, 0xd7, 0xb3, - 0x9d, 0x15, 0x2a, 0x53, 0x66, 0x98, 0xc6, 0x8a, 0xd0, 0x58, 0xda, 0x82, 0xd9, 0xeb, 0x86, 0x89, - 0xd7, 0x7d, 0xc5, 0x06, 0xf6, 0x94, 0xab, 0x90, 0x68, 0x19, 0x26, 0xce, 0x4b, 0x8b, 0xf1, 0xe5, - 0xcc, 0xc5, 0xc7, 0x56, 0x06, 0x40, 0x2b, 0x61, 0x44, 0x9d, 0x88, 0x55, 0x8a, 0x58, 0x7a, 0x2b, - 0x01, 0x73, 0x23, 0x66, 0x15, 0x05, 0x12, 0x16, 0xea, 0x10, 0x46, 0x69, 0x39, 0xad, 0xd2, 0xdf, - 0x4a, 0x1e, 0xa6, 0xba, 0x48, 0xbf, 0x83, 0xda, 0x38, 0x1f, 0xa3, 0x62, 0x31, 0x54, 0x0a, 0x00, - 0x4d, 0xdc, 0xc5, 0x56, 0x13, 0x5b, 0xfa, 0x41, 0x3e, 0xbe, 0x18, 0x5f, 0x4e, 0xab, 0x01, 0x89, - 0xf2, 0x14, 0xcc, 0x76, 0x7b, 0x7b, 0xa6, 0xa1, 0x6b, 0x01, 0x35, 0x58, 0x8c, 0x2f, 0x27, 0x55, - 0x99, 0x4d, 0xac, 0xf7, 0x95, 0x2f, 0xc0, 0xcc, 0x3d, 0x8c, 0xee, 0x04, 0x55, 0x33, 0x54, 0x35, - 0x47, 0xc4, 0x01, 0xc5, 0x32, 0x64, 0x3b, 0xd8, 0x75, 0x51, 0x1b, 0x6b, 0xde, 0x41, 0x17, 0xe7, - 0x13, 0x74, 0xf5, 0x8b, 0x43, 0xab, 0x1f, 0x5c, 0x79, 0x86, 0xa3, 0x76, 0x0e, 0xba, 0x58, 0x29, - 0x41, 0x1a, 0x5b, 0xbd, 0x0e, 0x63, 0x48, 0x1e, 0xe1, 0xbf, 0x8a, 0xd5, 0xeb, 0x0c, 0xb2, 0xa4, - 0x08, 0x8c, 0x53, 0x4c, 0xb9, 0xd8, 0xb9, 0x6b, 0xe8, 0x38, 0x3f, 0x49, 0x09, 0x2e, 0x0c, 0x11, - 0x34, 0xd8, 0xfc, 0x20, 0x87, 0xc0, 0x29, 0x65, 0x48, 0xe3, 0x17, 0x3c, 0x6c, 0xb9, 0x86, 0x6d, - 0xe5, 0xa7, 0x28, 0xc9, 0xe3, 0x23, 0x76, 0x11, 0x9b, 0xcd, 0x41, 0x8a, 0x3e, 0x4e, 0xb9, 0x02, - 0x53, 0x76, 0xd7, 0x33, 0x6c, 0xcb, 0xcd, 0xa7, 0x16, 0xa5, 0xe5, 0xcc, 0xc5, 0x0f, 0x8d, 0x0c, - 0x84, 0x1a, 0xd3, 0x51, 0x85, 0xb2, 0x52, 0x05, 0xd9, 0xb5, 0x7b, 0x8e, 0x8e, 0x35, 0xdd, 0x6e, - 0x62, 0xcd, 0xb0, 0x5a, 0x76, 0x3e, 0x4d, 0x09, 0xce, 0x0d, 0x2f, 0x84, 0x2a, 0x96, 0xed, 0x26, - 0xae, 0x5a, 0x2d, 0x5b, 0xcd, 0xb9, 0xa1, 0xb1, 0x72, 0x0a, 0x26, 0xdd, 0x03, 0xcb, 0x43, 0x2f, - 0xe4, 0xb3, 0x34, 0x42, 0xf8, 0x68, 0xe9, 0xff, 0x92, 0x30, 0x33, 0x4e, 0x88, 0x5d, 0x83, 0x64, - 0x8b, 0xac, 0x32, 0x1f, 0x3b, 0x89, 0x0f, 0x18, 0x26, 0xec, 0xc4, 0xc9, 0x1f, 0xd1, 0x89, 0x25, - 0xc8, 0x58, 0xd8, 0xf5, 0x70, 0x93, 0x45, 0x44, 0x7c, 0xcc, 0x98, 0x02, 0x06, 0x1a, 0x0e, 0xa9, - 0xc4, 0x8f, 0x14, 0x52, 0x37, 0x61, 0xc6, 0x37, 0x49, 0x73, 0x90, 0xd5, 0x16, 0xb1, 0xb9, 0x1a, - 0x65, 0xc9, 0x4a, 0x45, 0xe0, 0x54, 0x02, 0x53, 0x73, 0x38, 0x34, 0x56, 0xd6, 0x01, 0x6c, 0x0b, - 0xdb, 0x2d, 0xad, 0x89, 0x75, 0x33, 0x9f, 0x3a, 0xc2, 0x4b, 0x35, 0xa2, 0x32, 0xe4, 0x25, 0x9b, - 0x49, 0x75, 0x53, 0x79, 0xb6, 0x1f, 0x6a, 0x53, 0x47, 0x44, 0xca, 0x16, 0x3b, 0x64, 0x43, 0xd1, - 0xb6, 0x0b, 0x39, 0x07, 0x93, 0xb8, 0xc7, 0x4d, 0xbe, 0xb2, 0x34, 0x35, 0x62, 0x25, 0x72, 0x65, - 0x2a, 0x87, 0xb1, 0x85, 0x4d, 0x3b, 0xc1, 0xa1, 0xf2, 0x61, 0xf0, 0x05, 0x1a, 0x0d, 0x2b, 0xa0, - 0x59, 0x28, 0x2b, 0x84, 0xdb, 0xa8, 0x83, 0x17, 0xae, 0x42, 0x2e, 0xec, 0x1e, 0x65, 0x1e, 0x92, - 0xae, 0x87, 0x1c, 0x8f, 0x46, 0x61, 0x52, 0x65, 0x03, 0x45, 0x86, 0x38, 0xb6, 0x9a, 0x34, 0xcb, - 0x25, 0x55, 0xf2, 0x73, 0xe1, 0x19, 0x98, 0x0e, 0x3d, 0x7e, 0x5c, 0xe0, 0xd2, 0x17, 0x26, 0x61, - 0x7e, 0x54, 0xcc, 0x8d, 0x0c, 0xff, 0x53, 0x30, 0x69, 0xf5, 0x3a, 0x7b, 0xd8, 0xc9, 0xc7, 0x29, - 0x03, 0x1f, 0x29, 0x25, 0x48, 0x9a, 0x68, 0x0f, 0x9b, 0xf9, 0xc4, 0xa2, 0xb4, 0x9c, 0xbb, 0xf8, - 0xd4, 0x58, 0x51, 0xbd, 0xb2, 0x49, 0x20, 0x2a, 0x43, 0x2a, 0x9f, 0x84, 0x04, 0x4f, 0x71, 0x84, - 0xe1, 0xc9, 0xf1, 0x18, 0x48, 0x2c, 0xaa, 0x14, 0xa7, 0x9c, 0x85, 0x34, 0xf9, 0xcb, 0x7c, 0x3b, - 0x49, 0x6d, 0x4e, 0x11, 0x01, 0xf1, 0xab, 0xb2, 0x00, 0x29, 0x1a, 0x66, 0x4d, 0x2c, 0x4a, 0x83, - 0x3f, 0x26, 0x1b, 0xd3, 0xc4, 0x2d, 0xd4, 0x33, 0x3d, 0xed, 0x2e, 0x32, 0x7b, 0x98, 0x06, 0x4c, - 0x5a, 0xcd, 0x72, 0xe1, 0x67, 0x88, 0x4c, 0x39, 0x07, 0x19, 0x16, 0x95, 0x86, 0xd5, 0xc4, 0x2f, - 0xd0, 0xec, 0x93, 0x54, 0x59, 0xa0, 0x56, 0x89, 0x84, 0x3c, 0xfe, 0xb6, 0x6b, 0x5b, 0x62, 0x6b, - 0xe9, 0x23, 0x88, 0x80, 0x3e, 0xfe, 0x99, 0xc1, 0xc4, 0xf7, 0xe8, 0xe8, 0xe5, 0x0d, 0xc6, 0xe2, - 0xd2, 0x37, 0x63, 0x90, 0xa0, 0xe7, 0x6d, 0x06, 0x32, 0x3b, 0xb7, 0xea, 0x15, 0x6d, 0xbd, 0xb6, - 0xbb, 0xb6, 0x59, 0x91, 0x25, 0x25, 0x07, 0x40, 0x05, 0xd7, 0x37, 0x6b, 0xa5, 0x1d, 0x39, 0xe6, - 0x8f, 0xab, 0xdb, 0x3b, 0x57, 0x2e, 0xc9, 0x71, 0x1f, 0xb0, 0xcb, 0x04, 0x89, 0xa0, 0xc2, 0xd3, - 0x17, 0xe5, 0xa4, 0x22, 0x43, 0x96, 0x11, 0x54, 0x6f, 0x56, 0xd6, 0xaf, 0x5c, 0x92, 0x27, 0xc3, - 0x92, 0xa7, 0x2f, 0xca, 0x53, 0xca, 0x34, 0xa4, 0xa9, 0x64, 0xad, 0x56, 0xdb, 0x94, 0x53, 0x3e, - 0x67, 0x63, 0x47, 0xad, 0x6e, 0x6f, 0xc8, 0x69, 0x9f, 0x73, 0x43, 0xad, 0xed, 0xd6, 0x65, 0xf0, - 0x19, 0xb6, 0x2a, 0x8d, 0x46, 0x69, 0xa3, 0x22, 0x67, 0x7c, 0x8d, 0xb5, 0x5b, 0x3b, 0x95, 0x86, - 0x9c, 0x0d, 0x99, 0xf5, 0xf4, 0x45, 0x79, 0xda, 0x7f, 0x44, 0x65, 0x7b, 0x77, 0x4b, 0xce, 0x29, - 0xb3, 0x30, 0xcd, 0x1e, 0x21, 0x8c, 0x98, 0x19, 0x10, 0x5d, 0xb9, 0x24, 0xcb, 0x7d, 0x43, 0x18, - 0xcb, 0x6c, 0x48, 0x70, 0xe5, 0x92, 0xac, 0x2c, 0x95, 0x21, 0x49, 0xa3, 0x4b, 0x51, 0x20, 0xb7, - 0x59, 0x5a, 0xab, 0x6c, 0x6a, 0xb5, 0xfa, 0x4e, 0xb5, 0xb6, 0x5d, 0xda, 0x94, 0xa5, 0xbe, 0x4c, - 0xad, 0x7c, 0x7a, 0xb7, 0xaa, 0x56, 0xd6, 0xe5, 0x58, 0x50, 0x56, 0xaf, 0x94, 0x76, 0x2a, 0xeb, - 0x72, 0x7c, 0x49, 0x87, 0xf9, 0x51, 0x79, 0x66, 0xe4, 0xc9, 0x08, 0x6c, 0x71, 0xec, 0x88, 0x2d, - 0xa6, 0x5c, 0x43, 0x5b, 0xfc, 0x65, 0x09, 0xe6, 0x46, 0xe4, 0xda, 0x91, 0x0f, 0x79, 0x0e, 0x92, - 0x2c, 0x44, 0x59, 0xf5, 0x79, 0x62, 0x64, 0xd2, 0xa6, 0x01, 0x3b, 0x54, 0x81, 0x28, 0x2e, 0x58, - 0x81, 0xe3, 0x47, 0x54, 0x60, 0x42, 0x31, 0x64, 0xe4, 0x4b, 0x12, 0xe4, 0x8f, 0xe2, 0x8e, 0x48, - 0x14, 0xb1, 0x50, 0xa2, 0xb8, 0x36, 0x68, 0xc0, 0xf9, 0xa3, 0xd7, 0x30, 0x64, 0xc5, 0xeb, 0x12, - 0x9c, 0x1a, 0xdd, 0xa8, 0x8c, 0xb4, 0xe1, 0x93, 0x30, 0xd9, 0xc1, 0xde, 0xbe, 0x2d, 0x8a, 0xf5, - 0x47, 0x46, 0x94, 0x00, 0x32, 0x3d, 0xe8, 0x2b, 0x8e, 0x0a, 0xd6, 0x90, 0xf8, 0x51, 0xdd, 0x06, - 0xb3, 0x66, 0xc8, 0xd2, 0x97, 0x63, 0xf0, 0xc8, 0x48, 0xf2, 0x91, 0x86, 0x3e, 0x0a, 0x60, 0x58, - 0xdd, 0x9e, 0xc7, 0x0a, 0x32, 0xcb, 0x4f, 0x69, 0x2a, 0xa1, 0x67, 0x9f, 0xe4, 0x9e, 0x9e, 0xe7, - 0xcf, 0xc7, 0xe9, 0x3c, 0x30, 0x11, 0x55, 0xb8, 0xda, 0x37, 0x34, 0x41, 0x0d, 0x2d, 0x1c, 0xb1, - 0xd2, 0xa1, 0x5a, 0xf7, 0x71, 0x90, 0x75, 0xd3, 0xc0, 0x96, 0xa7, 0xb9, 0x9e, 0x83, 0x51, 0xc7, - 0xb0, 0xda, 0x34, 0x01, 0xa7, 0x8a, 0xc9, 0x16, 0x32, 0x5d, 0xac, 0xce, 0xb0, 0xe9, 0x86, 0x98, - 0x25, 0x08, 0x5a, 0x65, 0x9c, 0x00, 0x62, 0x32, 0x84, 0x60, 0xd3, 0x3e, 0x62, 0xe9, 0x6b, 0x53, - 0x90, 0x09, 0xb4, 0x75, 0xca, 0x79, 0xc8, 0xde, 0x46, 0x77, 0x91, 0x26, 0x5a, 0x75, 0xe6, 0x89, - 0x0c, 0x91, 0xd5, 0x79, 0xbb, 0xfe, 0x71, 0x98, 0xa7, 0x2a, 0x76, 0xcf, 0xc3, 0x8e, 0xa6, 0x9b, - 0xc8, 0x75, 0xa9, 0xd3, 0x52, 0x54, 0x55, 0x21, 0x73, 0x35, 0x32, 0x55, 0x16, 0x33, 0xca, 0x65, - 0x98, 0xa3, 0x88, 0x4e, 0xcf, 0xf4, 0x8c, 0xae, 0x89, 0x35, 0xf2, 0xf2, 0xe0, 0xd2, 0x44, 0xec, - 0x5b, 0x36, 0x4b, 0x34, 0xb6, 0xb8, 0x02, 0xb1, 0xc8, 0x55, 0xd6, 0xe1, 0x51, 0x0a, 0x6b, 0x63, - 0x0b, 0x3b, 0xc8, 0xc3, 0x1a, 0xfe, 0x5c, 0x0f, 0x99, 0xae, 0x86, 0xac, 0xa6, 0xb6, 0x8f, 0xdc, - 0xfd, 0xfc, 0x3c, 0x21, 0x58, 0x8b, 0xe5, 0x25, 0xf5, 0x0c, 0x51, 0xdc, 0xe0, 0x7a, 0x15, 0xaa, - 0x56, 0xb2, 0x9a, 0x9f, 0x42, 0xee, 0xbe, 0x52, 0x84, 0x53, 0x94, 0xc5, 0xf5, 0x1c, 0xc3, 0x6a, - 0x6b, 0xfa, 0x3e, 0xd6, 0xef, 0x68, 0x3d, 0xaf, 0x75, 0x35, 0x7f, 0x36, 0xf8, 0x7c, 0x6a, 0x61, - 0x83, 0xea, 0x94, 0x89, 0xca, 0xae, 0xd7, 0xba, 0xaa, 0x34, 0x20, 0x4b, 0x36, 0xa3, 0x63, 0xbc, - 0x88, 0xb5, 0x96, 0xed, 0xd0, 0xca, 0x92, 0x1b, 0x71, 0xb2, 0x03, 0x1e, 0x5c, 0xa9, 0x71, 0xc0, - 0x96, 0xdd, 0xc4, 0xc5, 0x64, 0xa3, 0x5e, 0xa9, 0xac, 0xab, 0x19, 0xc1, 0x72, 0xdd, 0x76, 0x48, - 0x40, 0xb5, 0x6d, 0xdf, 0xc1, 0x19, 0x16, 0x50, 0x6d, 0x5b, 0xb8, 0xf7, 0x32, 0xcc, 0xe9, 0x3a, - 0x5b, 0xb3, 0xa1, 0x6b, 0xbc, 0xc5, 0x77, 0xf3, 0x72, 0xc8, 0x59, 0xba, 0xbe, 0xc1, 0x14, 0x78, - 0x8c, 0xbb, 0xca, 0xb3, 0xf0, 0x48, 0xdf, 0x59, 0x41, 0xe0, 0xec, 0xd0, 0x2a, 0x07, 0xa1, 0x97, - 0x61, 0xae, 0x7b, 0x30, 0x0c, 0x54, 0x42, 0x4f, 0xec, 0x1e, 0x0c, 0xc2, 0x1e, 0xa7, 0xaf, 0x6d, - 0x0e, 0xd6, 0x91, 0x87, 0x9b, 0xf9, 0xd3, 0x41, 0xed, 0xc0, 0x84, 0xb2, 0x0a, 0xb2, 0xae, 0x6b, - 0xd8, 0x42, 0x7b, 0x26, 0xd6, 0x90, 0x83, 0x2d, 0xe4, 0xe6, 0xcf, 0x05, 0x95, 0x73, 0xba, 0x5e, - 0xa1, 0xb3, 0x25, 0x3a, 0xa9, 0x3c, 0x09, 0xb3, 0xf6, 0xde, 0x6d, 0x9d, 0x45, 0x96, 0xd6, 0x75, - 0x70, 0xcb, 0x78, 0x21, 0xff, 0x18, 0x75, 0xd3, 0x0c, 0x99, 0xa0, 0x71, 0x55, 0xa7, 0x62, 0xe5, - 0x09, 0x90, 0x75, 0x77, 0x1f, 0x39, 0x5d, 0x5a, 0xda, 0xdd, 0x2e, 0xd2, 0x71, 0xfe, 0x71, 0xa6, - 0xca, 0xe4, 0xdb, 0x42, 0x4c, 0x22, 0xdb, 0xbd, 0x67, 0xb4, 0x3c, 0xc1, 0x78, 0x81, 0x45, 0x36, - 0x95, 0x71, 0xb6, 0x9b, 0x30, 0xdf, 0xb3, 0x0c, 0xcb, 0xc3, 0x4e, 0xd7, 0xc1, 0xa4, 0x89, 0x67, - 0x27, 0x31, 0xff, 0xaf, 0x53, 0x47, 0xb4, 0xe1, 0xbb, 0x41, 0x6d, 0x16, 0x00, 0xea, 0x5c, 0x6f, - 0x58, 0xb8, 0x54, 0x84, 0x6c, 0x30, 0x2e, 0x94, 0x34, 0xb0, 0xc8, 0x90, 0x25, 0x52, 0x63, 0xcb, - 0xb5, 0x75, 0x52, 0x1d, 0x3f, 0x5b, 0x91, 0x63, 0xa4, 0x4a, 0x6f, 0x56, 0x77, 0x2a, 0x9a, 0xba, - 0xbb, 0xbd, 0x53, 0xdd, 0xaa, 0xc8, 0xf1, 0x27, 0xd3, 0xa9, 0xb7, 0xa7, 0xe4, 0xfb, 0xf7, 0xef, - 0xdf, 0x8f, 0x2d, 0x7d, 0x27, 0x06, 0xb9, 0x70, 0x67, 0xac, 0xfc, 0x14, 0x9c, 0x16, 0xaf, 0xb1, - 0x2e, 0xf6, 0xb4, 0x7b, 0x86, 0x43, 0x43, 0xb5, 0x83, 0x58, 0x6f, 0xe9, 0x7b, 0x79, 0x9e, 0x6b, - 0x35, 0xb0, 0xf7, 0xbc, 0xe1, 0x90, 0x40, 0xec, 0x20, 0x4f, 0xd9, 0x84, 0x73, 0x96, 0xad, 0xb9, - 0x1e, 0xb2, 0x9a, 0xc8, 0x69, 0x6a, 0xfd, 0x0b, 0x04, 0x0d, 0xe9, 0x3a, 0x76, 0x5d, 0x9b, 0x95, - 0x08, 0x9f, 0xe5, 0x43, 0x96, 0xdd, 0xe0, 0xca, 0xfd, 0xdc, 0x59, 0xe2, 0xaa, 0x03, 0x11, 0x11, - 0x3f, 0x2a, 0x22, 0xce, 0x42, 0xba, 0x83, 0xba, 0x1a, 0xb6, 0x3c, 0xe7, 0x80, 0xf6, 0x73, 0x29, - 0x35, 0xd5, 0x41, 0xdd, 0x0a, 0x19, 0xbf, 0x7f, 0x7b, 0x10, 0xf4, 0xe3, 0x3f, 0xc5, 0x21, 0x1b, - 0xec, 0xe9, 0x48, 0x8b, 0xac, 0xd3, 0xfc, 0x2d, 0xd1, 0x13, 0xfe, 0xe1, 0x63, 0x3b, 0xc0, 0x95, - 0x32, 0x49, 0xec, 0xc5, 0x49, 0xd6, 0x69, 0xa9, 0x0c, 0x49, 0x8a, 0x2a, 0x39, 0xd3, 0x98, 0xf5, - 0xef, 0x29, 0x95, 0x8f, 0x94, 0x0d, 0x98, 0xbc, 0xed, 0x52, 0xee, 0x49, 0xca, 0xfd, 0xd8, 0xf1, - 0xdc, 0x37, 0x1a, 0x94, 0x3c, 0x7d, 0xa3, 0xa1, 0x6d, 0xd7, 0xd4, 0xad, 0xd2, 0xa6, 0xca, 0xe1, - 0xca, 0x19, 0x48, 0x98, 0xe8, 0xc5, 0x83, 0x70, 0x09, 0xa0, 0xa2, 0x71, 0x1d, 0x7f, 0x06, 0x12, - 0xf7, 0x30, 0xba, 0x13, 0x4e, 0xbc, 0x54, 0xf4, 0x3e, 0x86, 0xfe, 0x2a, 0x24, 0xa9, 0xbf, 0x14, - 0x00, 0xee, 0x31, 0x79, 0x42, 0x49, 0x41, 0xa2, 0x5c, 0x53, 0x49, 0xf8, 0xcb, 0x90, 0x65, 0x52, - 0xad, 0x5e, 0xad, 0x94, 0x2b, 0x72, 0x6c, 0xe9, 0x32, 0x4c, 0x32, 0x27, 0x90, 0xa3, 0xe1, 0xbb, - 0x41, 0x9e, 0xe0, 0x43, 0xce, 0x21, 0x89, 0xd9, 0xdd, 0xad, 0xb5, 0x8a, 0x2a, 0xc7, 0x82, 0xdb, - 0xeb, 0x42, 0x36, 0xd8, 0xce, 0xfd, 0x64, 0x62, 0xea, 0x6f, 0x24, 0xc8, 0x04, 0xda, 0x33, 0xd2, - 0x18, 0x20, 0xd3, 0xb4, 0xef, 0x69, 0xc8, 0x34, 0x90, 0xcb, 0x83, 0x02, 0xa8, 0xa8, 0x44, 0x24, - 0xe3, 0x6e, 0xda, 0x4f, 0xc4, 0xf8, 0xd7, 0x24, 0x90, 0x07, 0x5b, 0xbb, 0x01, 0x03, 0xa5, 0x0f, - 0xd4, 0xc0, 0x57, 0x25, 0xc8, 0x85, 0xfb, 0xb9, 0x01, 0xf3, 0xce, 0x7f, 0xa0, 0xe6, 0xbd, 0x19, - 0x83, 0xe9, 0x50, 0x17, 0x37, 0xae, 0x75, 0x9f, 0x83, 0x59, 0xa3, 0x89, 0x3b, 0x5d, 0xdb, 0xc3, - 0x96, 0x7e, 0xa0, 0x99, 0xf8, 0x2e, 0x36, 0xf3, 0x4b, 0x34, 0x51, 0xac, 0x1e, 0xdf, 0x27, 0xae, - 0x54, 0xfb, 0xb8, 0x4d, 0x02, 0x2b, 0xce, 0x55, 0xd7, 0x2b, 0x5b, 0xf5, 0xda, 0x4e, 0x65, 0xbb, - 0x7c, 0x4b, 0xdb, 0xdd, 0xfe, 0xe9, 0xed, 0xda, 0xf3, 0xdb, 0xaa, 0x6c, 0x0c, 0xa8, 0xbd, 0x8f, - 0x47, 0xbd, 0x0e, 0xf2, 0xa0, 0x51, 0xca, 0x69, 0x18, 0x65, 0x96, 0x3c, 0xa1, 0xcc, 0xc1, 0xcc, - 0x76, 0x4d, 0x6b, 0x54, 0xd7, 0x2b, 0x5a, 0xe5, 0xfa, 0xf5, 0x4a, 0x79, 0xa7, 0xc1, 0x5e, 0x9c, - 0x7d, 0xed, 0x9d, 0xf0, 0xa1, 0x7e, 0x25, 0x0e, 0x73, 0x23, 0x2c, 0x51, 0x4a, 0xbc, 0x67, 0x67, - 0xaf, 0x11, 0x1f, 0x1b, 0xc7, 0xfa, 0x15, 0xd2, 0x15, 0xd4, 0x91, 0xe3, 0xf1, 0x16, 0xff, 0x09, - 0x20, 0x5e, 0xb2, 0x3c, 0xa3, 0x65, 0x60, 0x87, 0xdf, 0x33, 0xb0, 0x46, 0x7e, 0xa6, 0x2f, 0x67, - 0x57, 0x0d, 0x1f, 0x05, 0xa5, 0x6b, 0xbb, 0x86, 0x67, 0xdc, 0xc5, 0x9a, 0x61, 0x89, 0x4b, 0x09, - 0xd2, 0xd8, 0x27, 0x54, 0x59, 0xcc, 0x54, 0x2d, 0xcf, 0xd7, 0xb6, 0x70, 0x1b, 0x0d, 0x68, 0x93, - 0x04, 0x1e, 0x57, 0x65, 0x31, 0xe3, 0x6b, 0x9f, 0x87, 0x6c, 0xd3, 0xee, 0x91, 0x36, 0x89, 0xe9, - 0x91, 0x7a, 0x21, 0xa9, 0x19, 0x26, 0xf3, 0x55, 0x78, 0x1f, 0xdb, 0xbf, 0x0d, 0xc9, 0xaa, 0x19, - 0x26, 0x63, 0x2a, 0x17, 0x60, 0x06, 0xb5, 0xdb, 0x0e, 0x21, 0x17, 0x44, 0xac, 0x33, 0xcf, 0xf9, - 0x62, 0xaa, 0xb8, 0x70, 0x03, 0x52, 0xc2, 0x0f, 0xa4, 0x24, 0x13, 0x4f, 0x68, 0x5d, 0x76, 0x27, - 0x15, 0x5b, 0x4e, 0xab, 0x29, 0x4b, 0x4c, 0x9e, 0x87, 0xac, 0xe1, 0x6a, 0xfd, 0xcb, 0xd1, 0xd8, - 0x62, 0x6c, 0x39, 0xa5, 0x66, 0x0c, 0xd7, 0xbf, 0x0d, 0x5b, 0x7a, 0x3d, 0x06, 0xb9, 0xf0, 0xe5, - 0xae, 0xb2, 0x0e, 0x29, 0xd3, 0xd6, 0x11, 0x0d, 0x2d, 0xf6, 0x65, 0x61, 0x39, 0xe2, 0x3e, 0x78, - 0x65, 0x93, 0xeb, 0xab, 0x3e, 0x72, 0xe1, 0x1f, 0x24, 0x48, 0x09, 0xb1, 0x72, 0x0a, 0x12, 0x5d, - 0xe4, 0xed, 0x53, 0xba, 0xe4, 0x5a, 0x4c, 0x96, 0x54, 0x3a, 0x26, 0x72, 0xb7, 0x8b, 0x2c, 0x1a, - 0x02, 0x5c, 0x4e, 0xc6, 0x64, 0x5f, 0x4d, 0x8c, 0x9a, 0xb4, 0xed, 0xb7, 0x3b, 0x1d, 0x6c, 0x79, - 0xae, 0xd8, 0x57, 0x2e, 0x2f, 0x73, 0xb1, 0xf2, 0x14, 0xcc, 0x7a, 0x0e, 0x32, 0xcc, 0x90, 0x6e, - 0x82, 0xea, 0xca, 0x62, 0xc2, 0x57, 0x2e, 0xc2, 0x19, 0xc1, 0xdb, 0xc4, 0x1e, 0xd2, 0xf7, 0x71, - 0xb3, 0x0f, 0x9a, 0xa4, 0x37, 0x87, 0xa7, 0xb9, 0xc2, 0x3a, 0x9f, 0x17, 0xd8, 0xa5, 0xef, 0x49, - 0x30, 0x2b, 0x5e, 0x54, 0x9a, 0xbe, 0xb3, 0xb6, 0x00, 0x90, 0x65, 0xd9, 0x5e, 0xd0, 0x5d, 0xc3, - 0xa1, 0x3c, 0x84, 0x5b, 0x29, 0xf9, 0x20, 0x35, 0x40, 0xb0, 0xd0, 0x01, 0xe8, 0xcf, 0x1c, 0xe9, - 0xb6, 0x73, 0x90, 0xe1, 0x37, 0xf7, 0xf4, 0xf3, 0x0f, 0x7b, 0xb5, 0x05, 0x26, 0x22, 0x6f, 0x34, - 0xca, 0x3c, 0x24, 0xf7, 0x70, 0xdb, 0xb0, 0xf8, 0x7d, 0x22, 0x1b, 0x88, 0x5b, 0xca, 0x84, 0x7f, - 0x4b, 0xb9, 0x76, 0x13, 0xe6, 0x74, 0xbb, 0x33, 0x68, 0xee, 0x9a, 0x3c, 0xf0, 0x7a, 0xed, 0x7e, - 0x4a, 0xfa, 0x2c, 0xf4, 0x5b, 0xcc, 0x2f, 0xc7, 0xe2, 0x1b, 0xf5, 0xb5, 0xaf, 0xc6, 0x16, 0x36, - 0x18, 0xae, 0x2e, 0x96, 0xa9, 0xe2, 0x96, 0x89, 0x75, 0x62, 0x3a, 0xfc, 0xe0, 0x23, 0xf0, 0xb1, - 0xb6, 0xe1, 0xed, 0xf7, 0xf6, 0x56, 0x74, 0xbb, 0xb3, 0xda, 0xb6, 0xdb, 0x76, 0xff, 0x73, 0x17, - 0x19, 0xd1, 0x01, 0xfd, 0xc5, 0x3f, 0x79, 0xa5, 0x7d, 0xe9, 0x42, 0xe4, 0xf7, 0xb1, 0xe2, 0x36, - 0xcc, 0x71, 0x65, 0x8d, 0xde, 0xb9, 0xb3, 0x57, 0x03, 0xe5, 0xd8, 0x7b, 0x97, 0xfc, 0x37, 0xde, - 0xa2, 0xb5, 0x5a, 0x9d, 0xe5, 0x50, 0x32, 0xc7, 0x5e, 0x20, 0x8a, 0x2a, 0x3c, 0x12, 0xe2, 0x63, - 0xe7, 0x12, 0x3b, 0x11, 0x8c, 0xdf, 0xe1, 0x8c, 0x73, 0x01, 0xc6, 0x06, 0x87, 0x16, 0xcb, 0x30, - 0x7d, 0x12, 0xae, 0xbf, 0xe3, 0x5c, 0x59, 0x1c, 0x24, 0xd9, 0x80, 0x19, 0x4a, 0xa2, 0xf7, 0x5c, - 0xcf, 0xee, 0xd0, 0xa4, 0x77, 0x3c, 0xcd, 0xdf, 0xbf, 0xc5, 0x0e, 0x4a, 0x8e, 0xc0, 0xca, 0x3e, - 0xaa, 0x58, 0x04, 0xfa, 0x99, 0xa1, 0x89, 0x75, 0x33, 0x82, 0xe1, 0x0d, 0x6e, 0x88, 0xaf, 0x5f, - 0xfc, 0x0c, 0xcc, 0x93, 0xdf, 0x34, 0x27, 0x05, 0x2d, 0x89, 0xbe, 0x65, 0xca, 0x7f, 0xef, 0x25, - 0x76, 0x16, 0xe7, 0x7c, 0x82, 0x80, 0x4d, 0x81, 0x5d, 0x6c, 0x63, 0xcf, 0xc3, 0x8e, 0xab, 0x21, - 0x73, 0x94, 0x79, 0x81, 0xd7, 0xf4, 0xfc, 0x17, 0xdf, 0x09, 0xef, 0xe2, 0x06, 0x43, 0x96, 0x4c, - 0xb3, 0xb8, 0x0b, 0xa7, 0x47, 0x44, 0xc5, 0x18, 0x9c, 0xaf, 0x70, 0xce, 0xf9, 0xa1, 0xc8, 0x20, - 0xb4, 0x75, 0x10, 0x72, 0x7f, 0x2f, 0xc7, 0xe0, 0xfc, 0x1d, 0xce, 0xa9, 0x70, 0xac, 0xd8, 0x52, - 0xc2, 0x78, 0x03, 0x66, 0xef, 0x62, 0x67, 0xcf, 0x76, 0xf9, 0xd5, 0xc8, 0x18, 0x74, 0xaf, 0x72, - 0xba, 0x19, 0x0e, 0xa4, 0x77, 0x25, 0x84, 0xeb, 0x59, 0x48, 0xb5, 0x90, 0x8e, 0xc7, 0xa0, 0xf8, - 0x12, 0xa7, 0x98, 0x22, 0xfa, 0x04, 0x5a, 0x82, 0x6c, 0xdb, 0xe6, 0x65, 0x29, 0x1a, 0xfe, 0x1a, - 0x87, 0x67, 0x04, 0x86, 0x53, 0x74, 0xed, 0x6e, 0xcf, 0x24, 0x35, 0x2b, 0x9a, 0xe2, 0x77, 0x05, - 0x85, 0xc0, 0x70, 0x8a, 0x13, 0xb8, 0xf5, 0xf7, 0x04, 0x85, 0x1b, 0xf0, 0xe7, 0x73, 0x90, 0xb1, - 0x2d, 0xf3, 0xc0, 0xb6, 0xc6, 0x31, 0xe2, 0xf7, 0x39, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x06, 0xe9, - 0x71, 0x37, 0xe2, 0x0f, 0xde, 0x11, 0xc7, 0x43, 0xec, 0xc0, 0x06, 0xcc, 0x88, 0x04, 0x65, 0xd8, - 0xd6, 0x18, 0x14, 0x7f, 0xc8, 0x29, 0x72, 0x01, 0x18, 0x5f, 0x86, 0x87, 0x5d, 0xaf, 0x8d, 0xc7, - 0x21, 0x79, 0x5d, 0x2c, 0x83, 0x43, 0xb8, 0x2b, 0xf7, 0xb0, 0xa5, 0xef, 0x8f, 0xc7, 0xf0, 0x15, - 0xe1, 0x4a, 0x81, 0x21, 0x14, 0x65, 0x98, 0xee, 0x20, 0xc7, 0xdd, 0x47, 0xe6, 0x58, 0xdb, 0xf1, - 0x47, 0x9c, 0x23, 0xeb, 0x83, 0xb8, 0x47, 0x7a, 0xd6, 0x49, 0x68, 0xbe, 0x2a, 0x3c, 0x12, 0x80, - 0xf1, 0xa3, 0xe7, 0x7a, 0xf4, 0x02, 0xea, 0x24, 0x6c, 0x5f, 0x13, 0x47, 0x8f, 0x61, 0xb7, 0x82, - 0x8c, 0xd7, 0x20, 0xed, 0x1a, 0x2f, 0x8e, 0x45, 0xf3, 0xc7, 0x62, 0xa7, 0x29, 0x80, 0x80, 0x6f, - 0xc1, 0x99, 0x91, 0x65, 0x62, 0x0c, 0xb2, 0x3f, 0xe1, 0x64, 0xa7, 0x46, 0x94, 0x0a, 0x9e, 0x12, - 0x4e, 0x4a, 0xf9, 0xa7, 0x22, 0x25, 0xe0, 0x01, 0xae, 0x3a, 0x79, 0x51, 0x70, 0x51, 0xeb, 0x64, - 0x5e, 0xfb, 0x33, 0xe1, 0x35, 0x86, 0x0d, 0x79, 0x6d, 0x07, 0x4e, 0x71, 0xc6, 0x93, 0xed, 0xeb, - 0xd7, 0x45, 0x62, 0x65, 0xe8, 0xdd, 0xf0, 0xee, 0xfe, 0x0c, 0x2c, 0xf8, 0xee, 0x14, 0x1d, 0xa9, - 0xab, 0x75, 0x50, 0x77, 0x0c, 0xe6, 0x6f, 0x70, 0x66, 0x91, 0xf1, 0xfd, 0x96, 0xd6, 0xdd, 0x42, - 0x5d, 0x42, 0x7e, 0x13, 0xf2, 0x82, 0xbc, 0x67, 0x39, 0x58, 0xb7, 0xdb, 0x96, 0xf1, 0x22, 0x6e, - 0x8e, 0x41, 0xfd, 0xe7, 0x03, 0x5b, 0xb5, 0x1b, 0x80, 0x13, 0xe6, 0x2a, 0xc8, 0x7e, 0xaf, 0xa2, - 0x19, 0x9d, 0xae, 0xed, 0x78, 0x11, 0x8c, 0x7f, 0x21, 0x76, 0xca, 0xc7, 0x55, 0x29, 0xac, 0x58, - 0x81, 0x1c, 0x1d, 0x8e, 0x1b, 0x92, 0x7f, 0xc9, 0x89, 0xa6, 0xfb, 0x28, 0x9e, 0x38, 0x74, 0xbb, - 0xd3, 0x45, 0xce, 0x38, 0xf9, 0xef, 0xaf, 0x44, 0xe2, 0xe0, 0x10, 0x9e, 0x38, 0xbc, 0x83, 0x2e, - 0x26, 0xd5, 0x7e, 0x0c, 0x86, 0x6f, 0x8a, 0xc4, 0x21, 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x63, 0x50, - 0xfc, 0xb5, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0xe9, 0x7e, 0xa1, 0x75, 0x70, 0xdb, 0x70, 0x3d, 0x87, - 0xf5, 0xc1, 0xc7, 0x53, 0x7d, 0xeb, 0x9d, 0x70, 0x13, 0xa6, 0x06, 0xa0, 0xc5, 0x1b, 0x30, 0x33, - 0xd0, 0x62, 0x28, 0x51, 0xff, 0xb3, 0x90, 0xff, 0xd9, 0xf7, 0x78, 0x32, 0x0a, 0x77, 0x18, 0xc5, - 0x4d, 0xb2, 0xef, 0xe1, 0x3e, 0x20, 0x9a, 0xec, 0xa5, 0xf7, 0xfc, 0xad, 0x0f, 0xb5, 0x01, 0xc5, - 0xeb, 0x30, 0x1d, 0xea, 0x01, 0xa2, 0xa9, 0x3e, 0xcf, 0xa9, 0xb2, 0xc1, 0x16, 0xa0, 0x78, 0x19, - 0x12, 0xa4, 0x9e, 0x47, 0xc3, 0x7f, 0x8e, 0xc3, 0xa9, 0x7a, 0xf1, 0x13, 0x90, 0x12, 0x75, 0x3c, - 0x1a, 0xfa, 0xf3, 0x1c, 0xea, 0x43, 0x08, 0x5c, 0xd4, 0xf0, 0x68, 0xf8, 0x2f, 0x08, 0xb8, 0x80, - 0x10, 0xf8, 0xf8, 0x2e, 0xfc, 0xf6, 0x2f, 0x25, 0x78, 0x1e, 0x16, 0xbe, 0xbb, 0x06, 0x53, 0xbc, - 0x78, 0x47, 0xa3, 0x5f, 0xe6, 0x0f, 0x17, 0x88, 0xe2, 0x33, 0x90, 0x1c, 0xd3, 0xe1, 0xbf, 0xcc, - 0xa1, 0x4c, 0xbf, 0x58, 0x86, 0x4c, 0xa0, 0x60, 0x47, 0xc3, 0x7f, 0x85, 0xc3, 0x83, 0x28, 0x62, - 0x3a, 0x2f, 0xd8, 0xd1, 0x04, 0xbf, 0x2a, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0x51, 0xab, 0xa3, 0xd1, - 0xbf, 0x26, 0xbc, 0x2e, 0x20, 0xc5, 0xe7, 0x20, 0xed, 0xe7, 0xdf, 0x68, 0xfc, 0xaf, 0x73, 0x7c, - 0x1f, 0x43, 0x3c, 0x10, 0xc8, 0xff, 0xd1, 0x14, 0xbf, 0x21, 0x3c, 0x10, 0x40, 0x91, 0x63, 0x34, - 0x58, 0xd3, 0xa3, 0x99, 0x7e, 0x53, 0x1c, 0xa3, 0x81, 0x92, 0x4e, 0x76, 0x93, 0xa6, 0xc1, 0x68, - 0x8a, 0xdf, 0x12, 0xbb, 0x49, 0xf5, 0x89, 0x19, 0x83, 0x45, 0x32, 0x9a, 0xe3, 0xb7, 0x85, 0x19, - 0x03, 0x35, 0xb2, 0x58, 0x07, 0x65, 0xb8, 0x40, 0x46, 0xf3, 0x7d, 0x81, 0xf3, 0xcd, 0x0e, 0xd5, - 0xc7, 0xe2, 0xf3, 0x70, 0x6a, 0x74, 0x71, 0x8c, 0x66, 0xfd, 0xe2, 0x7b, 0x03, 0xaf, 0x33, 0xc1, - 0xda, 0x58, 0xdc, 0xe9, 0x67, 0xd9, 0x60, 0x61, 0x8c, 0xa6, 0x7d, 0xe5, 0xbd, 0x70, 0xa2, 0x0d, - 0xd6, 0xc5, 0x62, 0x09, 0xa0, 0x5f, 0x93, 0xa2, 0xb9, 0x5e, 0xe5, 0x5c, 0x01, 0x10, 0x39, 0x1a, - 0xbc, 0x24, 0x45, 0xe3, 0xbf, 0x24, 0x8e, 0x06, 0x47, 0x90, 0xa3, 0x21, 0xaa, 0x51, 0x34, 0xfa, - 0x35, 0x71, 0x34, 0x04, 0xa4, 0x78, 0x0d, 0x52, 0x56, 0xcf, 0x34, 0x49, 0x6c, 0x29, 0xc7, 0xff, - 0x1b, 0x51, 0xfe, 0xdf, 0x1e, 0x72, 0xb0, 0x00, 0x14, 0x2f, 0x43, 0x12, 0x77, 0xf6, 0x70, 0x33, - 0x0a, 0xf9, 0xef, 0x0f, 0x45, 0x3e, 0x21, 0xda, 0xc5, 0xe7, 0x00, 0xd8, 0xcb, 0x34, 0xfd, 0x4a, - 0x14, 0x81, 0xfd, 0x8f, 0x87, 0xfc, 0x3f, 0x14, 0xfa, 0x90, 0x3e, 0x01, 0xfb, 0x7f, 0x87, 0xe3, - 0x09, 0xde, 0x09, 0x13, 0xd0, 0x17, 0xf0, 0x67, 0x61, 0xea, 0xb6, 0x6b, 0x5b, 0x1e, 0x6a, 0x47, - 0xa1, 0xff, 0x93, 0xa3, 0x85, 0x3e, 0x71, 0x58, 0xc7, 0x76, 0xb0, 0x87, 0xda, 0x6e, 0x14, 0xf6, - 0xbf, 0x38, 0xd6, 0x07, 0x10, 0xb0, 0x8e, 0x5c, 0x6f, 0x9c, 0x75, 0xff, 0xb7, 0x00, 0x0b, 0x00, - 0x31, 0x9a, 0xfc, 0xbe, 0x83, 0x0f, 0xa2, 0xb0, 0xef, 0x0a, 0xa3, 0xb9, 0x7e, 0xf1, 0x13, 0x90, - 0x26, 0x3f, 0xd9, 0x7f, 0xed, 0x44, 0x80, 0xff, 0x87, 0x83, 0xfb, 0x08, 0xf2, 0x64, 0xd7, 0x6b, - 0x7a, 0x46, 0xb4, 0xb3, 0xff, 0x97, 0xef, 0xb4, 0xd0, 0x2f, 0x96, 0x20, 0xe3, 0x7a, 0xcd, 0x66, - 0x8f, 0x77, 0x34, 0x11, 0xf0, 0x1f, 0x3c, 0xf4, 0x5f, 0x72, 0x7d, 0xcc, 0xda, 0xf9, 0xd1, 0x97, - 0x75, 0xb0, 0x61, 0x6f, 0xd8, 0xec, 0x9a, 0x0e, 0x5e, 0x4e, 0xc2, 0x59, 0xdd, 0xee, 0xec, 0xd9, - 0xee, 0xea, 0x9e, 0xed, 0xed, 0xaf, 0xfa, 0xa6, 0x8b, 0x3b, 0x36, 0x5f, 0xb0, 0x70, 0xb2, 0xdb, - 0xb9, 0xa5, 0xbf, 0x8d, 0x43, 0xaa, 0x8c, 0x5c, 0x0f, 0xdd, 0x43, 0x07, 0x4a, 0x17, 0xe6, 0xc8, - 0xef, 0x2d, 0xd4, 0xa5, 0x77, 0x3d, 0xfc, 0x70, 0xf1, 0xdb, 0xcf, 0x8f, 0xae, 0xf4, 0x9f, 0x2a, - 0x10, 0x2b, 0x23, 0xd4, 0xe9, 0x57, 0xe3, 0x35, 0xf9, 0x8d, 0x7f, 0x3e, 0x37, 0xf1, 0x8b, 0xff, - 0x72, 0x2e, 0xb5, 0x75, 0xf0, 0xbc, 0x61, 0xba, 0xb6, 0xa5, 0x8e, 0xa2, 0x56, 0x3e, 0x2f, 0xc1, - 0xd9, 0x11, 0xf2, 0x6d, 0x7e, 0x02, 0xf9, 0x37, 0x84, 0x4b, 0x63, 0x3e, 0x5a, 0xc0, 0x98, 0x09, - 0xd9, 0xd0, 0xe3, 0x8f, 0x7b, 0xcc, 0xc2, 0x2d, 0xc8, 0x1f, 0xb5, 0x12, 0x45, 0x86, 0xf8, 0x1d, - 0x7c, 0xc0, 0xff, 0x2f, 0x94, 0xfc, 0x54, 0x2e, 0xf4, 0xff, 0xaf, 0x4c, 0x5a, 0xce, 0x5c, 0x9c, - 0x0d, 0x58, 0xc7, 0x1f, 0xc6, 0xe6, 0x8b, 0xb1, 0xab, 0xd2, 0x02, 0x82, 0xc5, 0x28, 0x4b, 0x7f, - 0xcc, 0x47, 0x2c, 0x15, 0x60, 0x92, 0x09, 0x95, 0x79, 0x48, 0x56, 0x2d, 0xef, 0xca, 0x25, 0x4a, - 0x15, 0x57, 0xd9, 0x60, 0x6d, 0xf3, 0x8d, 0x07, 0x85, 0x89, 0xef, 0x3e, 0x28, 0x4c, 0xfc, 0xe3, - 0x83, 0xc2, 0xc4, 0x9b, 0x0f, 0x0a, 0xd2, 0xdb, 0x0f, 0x0a, 0xd2, 0xbb, 0x0f, 0x0a, 0xd2, 0x0f, - 0x1f, 0x14, 0xa4, 0xfb, 0x87, 0x05, 0xe9, 0x2b, 0x87, 0x05, 0xe9, 0xeb, 0x87, 0x05, 0xe9, 0x5b, - 0x87, 0x05, 0xe9, 0xdb, 0x87, 0x05, 0xe9, 0x8d, 0xc3, 0x82, 0xf4, 0xdd, 0xc3, 0x82, 0xf4, 0xe6, - 0x61, 0x41, 0x7a, 0xfb, 0xb0, 0x30, 0xf1, 0xee, 0x61, 0x41, 0xfa, 0xe1, 0x61, 0x61, 0xe2, 0xfe, - 0xf7, 0x0b, 0x13, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x82, 0xb5, 0xa1, 0xe8, 0x30, 0x00, - 0x00, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0x4b, 0x10, 0x15, 0x43, 0x14, 0x6d, + 0x47, 0xb4, 0x9d, 0x90, 0x19, 0x59, 0x92, 0x25, 0xa8, 0x89, 0x0b, 0x82, 0x10, 0x03, 0x95, 0x7f, + 0x59, 0x92, 0xb1, 0xe5, 0x4c, 0x67, 0x67, 0xb9, 0xb8, 0x00, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, + 0x92, 0xa9, 0xe9, 0x83, 0x3a, 0x4e, 0xdb, 0x71, 0x3b, 0xfd, 0xef, 0x4c, 0x12, 0xd7, 0x71, 0x7f, + 0x66, 0x5a, 0xa7, 0xe9, 0x5f, 0xd2, 0xb4, 0x69, 0xda, 0xa7, 0xf4, 0x21, 0xad, 0x9f, 0x3a, 0xc9, + 0x5b, 0x1f, 0x3a, 0xad, 0xc5, 0x78, 0xa6, 0x6e, 0xeb, 0x36, 0x6e, 0xeb, 0x07, 0xcf, 0xe8, 0xa5, + 0x73, 0xff, 0x16, 0xbb, 0x00, 0xc8, 0x05, 0x93, 0xb1, 0xfd, 0x44, 0xec, 0xb9, 0xe7, 0xfb, 0xf6, + 0xdc, 0x73, 0xcf, 0x3d, 0xe7, 0xdc, 0xbb, 0x84, 0x1f, 0x5e, 0x81, 0xd9, 0x96, 0x6d, 0xb7, 0x4c, + 0xbc, 0xe8, 0xb8, 0xb6, 0x6f, 0xef, 0x76, 0x9a, 0x8b, 0x0d, 0xec, 0xe9, 0xae, 0xe1, 0xf8, 0xb6, + 0xbb, 0x40, 0x65, 0x68, 0x82, 0x69, 0x2c, 0x08, 0x8d, 0xb9, 0x35, 0x98, 0xbc, 0x66, 0x98, 0x78, + 0x39, 0x50, 0xdc, 0xc2, 0x3e, 0xba, 0x0c, 0xa9, 0xa6, 0x61, 0xe2, 0xa2, 0x34, 0x9b, 0x9c, 0xcf, + 0x9d, 0x7f, 0x74, 0xa1, 0x07, 0xb4, 0x10, 0x45, 0x6c, 0x12, 0xb1, 0x42, 0x11, 0x73, 0x6f, 0xa6, + 0x60, 0x6a, 0xc0, 0x28, 0x42, 0x90, 0xb2, 0xb4, 0x36, 0x61, 0x94, 0xe6, 0xb3, 0x0a, 0xfd, 0x8d, + 0x8a, 0x30, 0xe6, 0x68, 0xfa, 0x2d, 0xad, 0x85, 0x8b, 0x09, 0x2a, 0x16, 0x8f, 0xa8, 0x04, 0xd0, + 0xc0, 0x0e, 0xb6, 0x1a, 0xd8, 0xd2, 0xf7, 0x8b, 0xc9, 0xd9, 0xe4, 0x7c, 0x56, 0x09, 0x49, 0xd0, + 0x93, 0x30, 0xe9, 0x74, 0x76, 0x4d, 0x43, 0x57, 0x43, 0x6a, 0x30, 0x9b, 0x9c, 0x4f, 0x2b, 0x32, + 0x1b, 0x58, 0xee, 0x2a, 0x9f, 0x83, 0x89, 0x3b, 0x58, 0xbb, 0x15, 0x56, 0xcd, 0x51, 0xd5, 0x02, + 0x11, 0x87, 0x14, 0xab, 0x90, 0x6f, 0x63, 0xcf, 0xd3, 0x5a, 0x58, 0xf5, 0xf7, 0x1d, 0x5c, 0x4c, + 0xd1, 0xd9, 0xcf, 0xf6, 0xcd, 0xbe, 0x77, 0xe6, 0x39, 0x8e, 0xda, 0xde, 0x77, 0x30, 0xaa, 0x40, + 0x16, 0x5b, 0x9d, 0x36, 0x63, 0x48, 0x1f, 0xe2, 0xbf, 0x9a, 0xd5, 0x69, 0xf7, 0xb2, 0x64, 0x08, + 0x8c, 0x53, 0x8c, 0x79, 0xd8, 0xbd, 0x6d, 0xe8, 0xb8, 0x38, 0x4a, 0x09, 0xce, 0xf5, 0x11, 0x6c, + 0xb1, 0xf1, 0x5e, 0x0e, 0x81, 0x43, 0x55, 0xc8, 0xe2, 0x17, 0x7c, 0x6c, 0x79, 0x86, 0x6d, 0x15, + 0xc7, 0x28, 0xc9, 0x63, 0x03, 0x56, 0x11, 0x9b, 0x8d, 0x5e, 0x8a, 0x2e, 0x0e, 0x5d, 0x82, 0x31, + 0xdb, 0xf1, 0x0d, 0xdb, 0xf2, 0x8a, 0x99, 0x59, 0x69, 0x3e, 0x77, 0xfe, 0x23, 0x03, 0x03, 0x61, + 0x83, 0xe9, 0x28, 0x42, 0x19, 0xd5, 0x41, 0xf6, 0xec, 0x8e, 0xab, 0x63, 0x55, 0xb7, 0x1b, 0x58, + 0x35, 0xac, 0xa6, 0x5d, 0xcc, 0x52, 0x82, 0x33, 0xfd, 0x13, 0xa1, 0x8a, 0x55, 0xbb, 0x81, 0xeb, + 0x56, 0xd3, 0x56, 0x0a, 0x5e, 0xe4, 0x19, 0x9d, 0x80, 0x51, 0x6f, 0xdf, 0xf2, 0xb5, 0x17, 0x8a, + 0x79, 0x1a, 0x21, 0xfc, 0x69, 0xee, 0x6f, 0x46, 0x61, 0x62, 0x98, 0x10, 0xbb, 0x0a, 0xe9, 0x26, + 0x99, 0x65, 0x31, 0x71, 0x1c, 0x1f, 0x30, 0x4c, 0xd4, 0x89, 0xa3, 0x3f, 0xa2, 0x13, 0x2b, 0x90, + 0xb3, 0xb0, 0xe7, 0xe3, 0x06, 0x8b, 0x88, 0xe4, 0x90, 0x31, 0x05, 0x0c, 0xd4, 0x1f, 0x52, 0xa9, + 0x1f, 0x29, 0xa4, 0x9e, 0x83, 0x89, 0xc0, 0x24, 0xd5, 0xd5, 0xac, 0x96, 0x88, 0xcd, 0xc5, 0x38, + 0x4b, 0x16, 0x6a, 0x02, 0xa7, 0x10, 0x98, 0x52, 0xc0, 0x91, 0x67, 0xb4, 0x0c, 0x60, 0x5b, 0xd8, + 0x6e, 0xaa, 0x0d, 0xac, 0x9b, 0xc5, 0xcc, 0x21, 0x5e, 0xda, 0x20, 0x2a, 0x7d, 0x5e, 0xb2, 0x99, + 0x54, 0x37, 0xd1, 0x95, 0x6e, 0xa8, 0x8d, 0x1d, 0x12, 0x29, 0x6b, 0x6c, 0x93, 0xf5, 0x45, 0xdb, + 0x0e, 0x14, 0x5c, 0x4c, 0xe2, 0x1e, 0x37, 0xf8, 0xcc, 0xb2, 0xd4, 0x88, 0x85, 0xd8, 0x99, 0x29, + 0x1c, 0xc6, 0x26, 0x36, 0xee, 0x86, 0x1f, 0xd1, 0x23, 0x10, 0x08, 0x54, 0x1a, 0x56, 0x40, 0xb3, + 0x50, 0x5e, 0x08, 0xd7, 0xb5, 0x36, 0x9e, 0xb9, 0x0b, 0x85, 0xa8, 0x7b, 0xd0, 0x34, 0xa4, 0x3d, + 0x5f, 0x73, 0x7d, 0x1a, 0x85, 0x69, 0x85, 0x3d, 0x20, 0x19, 0x92, 0xd8, 0x6a, 0xd0, 0x2c, 0x97, + 0x56, 0xc8, 0x4f, 0xf4, 0x93, 0xdd, 0x09, 0x27, 0xe9, 0x84, 0x3f, 0xda, 0xbf, 0xa2, 0x11, 0xe6, + 0xde, 0x79, 0xcf, 0x3c, 0x0d, 0xe3, 0x91, 0x09, 0x0c, 0xfb, 0xea, 0xb9, 0x9f, 0x81, 0x87, 0x06, + 0x52, 0xa3, 0xe7, 0x60, 0xba, 0x63, 0x19, 0x96, 0x8f, 0x5d, 0xc7, 0xc5, 0x24, 0x62, 0xd9, 0xab, + 0x8a, 0xff, 0x36, 0x76, 0x48, 0xcc, 0xed, 0x84, 0xb5, 0x19, 0x8b, 0x32, 0xd5, 0xe9, 0x17, 0x3e, + 0x91, 0xcd, 0xbc, 0x35, 0x26, 0xdf, 0xbb, 0x77, 0xef, 0x5e, 0x62, 0xee, 0x4b, 0xa3, 0x30, 0x3d, + 0x68, 0xcf, 0x0c, 0xdc, 0xbe, 0x27, 0x60, 0xd4, 0xea, 0xb4, 0x77, 0xb1, 0x4b, 0x9d, 0x94, 0x56, + 0xf8, 0x13, 0xaa, 0x40, 0xda, 0xd4, 0x76, 0xb1, 0x59, 0x4c, 0xcd, 0x4a, 0xf3, 0x85, 0xf3, 0x4f, + 0x0e, 0xb5, 0x2b, 0x17, 0x56, 0x09, 0x44, 0x61, 0x48, 0xf4, 0x29, 0x48, 0xf1, 0x14, 0x4d, 0x18, + 0x9e, 0x18, 0x8e, 0x81, 0xec, 0x25, 0x85, 0xe2, 0xd0, 0x69, 0xc8, 0x92, 0xbf, 0x2c, 0x36, 0x46, + 0xa9, 0xcd, 0x19, 0x22, 0x20, 0x71, 0x81, 0x66, 0x20, 0x43, 0xb7, 0x49, 0x03, 0x8b, 0xd2, 0x16, + 0x3c, 0x93, 0xc0, 0x6a, 0xe0, 0xa6, 0xd6, 0x31, 0x7d, 0xf5, 0xb6, 0x66, 0x76, 0x30, 0x0d, 0xf8, + 0xac, 0x92, 0xe7, 0xc2, 0xcf, 0x12, 0x19, 0x3a, 0x03, 0x39, 0xb6, 0xab, 0x0c, 0xab, 0x81, 0x5f, + 0xa0, 0xd9, 0x33, 0xad, 0xb0, 0x8d, 0x56, 0x27, 0x12, 0xf2, 0xfa, 0x9b, 0x9e, 0x6d, 0x89, 0xd0, + 0xa4, 0xaf, 0x20, 0x02, 0xfa, 0xfa, 0xa7, 0x7b, 0x13, 0xf7, 0xc3, 0x83, 0xa7, 0xd7, 0x1b, 0x53, + 0x73, 0xdf, 0x4a, 0x40, 0x8a, 0xe6, 0x8b, 0x09, 0xc8, 0x6d, 0xdf, 0xd8, 0xac, 0xa9, 0xcb, 0x1b, + 0x3b, 0x4b, 0xab, 0x35, 0x59, 0x42, 0x05, 0x00, 0x2a, 0xb8, 0xb6, 0xba, 0x51, 0xd9, 0x96, 0x13, + 0xc1, 0x73, 0x7d, 0x7d, 0xfb, 0xd2, 0x05, 0x39, 0x19, 0x00, 0x76, 0x98, 0x20, 0x15, 0x56, 0x78, + 0xea, 0xbc, 0x9c, 0x46, 0x32, 0xe4, 0x19, 0x41, 0xfd, 0xb9, 0xda, 0xf2, 0xa5, 0x0b, 0xf2, 0x68, + 0x54, 0xf2, 0xd4, 0x79, 0x79, 0x0c, 0x8d, 0x43, 0x96, 0x4a, 0x96, 0x36, 0x36, 0x56, 0xe5, 0x4c, + 0xc0, 0xb9, 0xb5, 0xad, 0xd4, 0xd7, 0x57, 0xe4, 0x6c, 0xc0, 0xb9, 0xa2, 0x6c, 0xec, 0x6c, 0xca, + 0x10, 0x30, 0xac, 0xd5, 0xb6, 0xb6, 0x2a, 0x2b, 0x35, 0x39, 0x17, 0x68, 0x2c, 0xdd, 0xd8, 0xae, + 0x6d, 0xc9, 0xf9, 0x88, 0x59, 0x4f, 0x9d, 0x97, 0xc7, 0x83, 0x57, 0xd4, 0xd6, 0x77, 0xd6, 0xe4, + 0x02, 0x9a, 0x84, 0x71, 0xf6, 0x0a, 0x61, 0xc4, 0x44, 0x8f, 0xe8, 0xd2, 0x05, 0x59, 0xee, 0x1a, + 0xc2, 0x58, 0x26, 0x23, 0x82, 0x4b, 0x17, 0x64, 0x34, 0x57, 0x85, 0x34, 0x8d, 0x2e, 0x84, 0xa0, + 0xb0, 0x5a, 0x59, 0xaa, 0xad, 0xaa, 0x1b, 0x9b, 0xdb, 0xf5, 0x8d, 0xf5, 0xca, 0xaa, 0x2c, 0x75, + 0x65, 0x4a, 0xed, 0x33, 0x3b, 0x75, 0xa5, 0xb6, 0x2c, 0x27, 0xc2, 0xb2, 0xcd, 0x5a, 0x65, 0xbb, + 0xb6, 0x2c, 0x27, 0xe7, 0x74, 0x98, 0x1e, 0x94, 0x27, 0x07, 0xee, 0x8c, 0xd0, 0x12, 0x27, 0x0e, + 0x59, 0x62, 0xca, 0xd5, 0xb7, 0xc4, 0x3f, 0x48, 0xc0, 0xd4, 0x80, 0x5a, 0x31, 0xf0, 0x25, 0xcf, + 0x40, 0x9a, 0x85, 0x28, 0xab, 0x9e, 0x8f, 0x0f, 0x2c, 0x3a, 0x34, 0x60, 0xfb, 0x2a, 0x28, 0xc5, + 0x85, 0x3b, 0x88, 0xe4, 0x21, 0x1d, 0x04, 0xa1, 0xe8, 0xcb, 0xe9, 0x3f, 0xdd, 0x97, 0xd3, 0x59, + 0xd9, 0xbb, 0x34, 0x4c, 0xd9, 0xa3, 0xb2, 0xe3, 0xe5, 0xf6, 0xf4, 0x80, 0xdc, 0x7e, 0x15, 0x26, + 0xfb, 0x88, 0x86, 0xce, 0xb1, 0x2f, 0x4a, 0x50, 0x3c, 0xcc, 0x39, 0x31, 0x99, 0x2e, 0x11, 0xc9, + 0x74, 0x57, 0x7b, 0x3d, 0x78, 0xf6, 0xf0, 0x45, 0xe8, 0x5b, 0xeb, 0xd7, 0x24, 0x38, 0x31, 0xb8, + 0x53, 0x1c, 0x68, 0xc3, 0xa7, 0x60, 0xb4, 0x8d, 0xfd, 0x3d, 0x5b, 0x74, 0x4b, 0x1f, 0x1d, 0x50, + 0x83, 0xc9, 0x70, 0xef, 0x62, 0x73, 0x54, 0xb8, 0x88, 0x27, 0x0f, 0x6b, 0xf7, 0x98, 0x35, 0x7d, + 0x96, 0xbe, 0x94, 0x80, 0x87, 0x06, 0x92, 0x0f, 0x34, 0xf4, 0x61, 0x00, 0xc3, 0x72, 0x3a, 0x3e, + 0xeb, 0x88, 0x58, 0x82, 0xcd, 0x52, 0x09, 0x4d, 0x5e, 0x24, 0x79, 0x76, 0xfc, 0x60, 0x3c, 0x49, + 0xc7, 0x81, 0x89, 0xa8, 0xc2, 0xe5, 0xae, 0xa1, 0x29, 0x6a, 0x68, 0xe9, 0x90, 0x99, 0xf6, 0x05, + 0xe6, 0x27, 0x40, 0xd6, 0x4d, 0x03, 0x5b, 0xbe, 0xea, 0xf9, 0x2e, 0xd6, 0xda, 0x86, 0xd5, 0xa2, + 0x15, 0x24, 0x53, 0x4e, 0x37, 0x35, 0xd3, 0xc3, 0xca, 0x04, 0x1b, 0xde, 0x12, 0xa3, 0x04, 0x41, + 0x03, 0xc8, 0x0d, 0x21, 0x46, 0x23, 0x08, 0x36, 0x1c, 0x20, 0xe6, 0xbe, 0x99, 0x81, 0x5c, 0xa8, + 0xaf, 0x46, 0x67, 0x21, 0x7f, 0x53, 0xbb, 0xad, 0xa9, 0xe2, 0xac, 0xc4, 0x3c, 0x91, 0x23, 0xb2, + 0x4d, 0x7e, 0x5e, 0xfa, 0x04, 0x4c, 0x53, 0x15, 0xbb, 0xe3, 0x63, 0x57, 0xd5, 0x4d, 0xcd, 0xf3, + 0xa8, 0xd3, 0x32, 0x54, 0x15, 0x91, 0xb1, 0x0d, 0x32, 0x54, 0x15, 0x23, 0xe8, 0x22, 0x4c, 0x51, + 0x44, 0xbb, 0x63, 0xfa, 0x86, 0x63, 0x62, 0x95, 0x9c, 0xde, 0x3c, 0x5a, 0x49, 0x02, 0xcb, 0x26, + 0x89, 0xc6, 0x1a, 0x57, 0x20, 0x16, 0x79, 0x68, 0x19, 0x1e, 0xa6, 0xb0, 0x16, 0xb6, 0xb0, 0xab, + 0xf9, 0x58, 0xc5, 0x9f, 0xef, 0x68, 0xa6, 0xa7, 0x6a, 0x56, 0x43, 0xdd, 0xd3, 0xbc, 0xbd, 0xe2, + 0x34, 0x21, 0x58, 0x4a, 0x14, 0x25, 0xe5, 0x14, 0x51, 0x5c, 0xe1, 0x7a, 0x35, 0xaa, 0x56, 0xb1, + 0x1a, 0x9f, 0xd6, 0xbc, 0x3d, 0x54, 0x86, 0x13, 0x94, 0xc5, 0xf3, 0x5d, 0xc3, 0x6a, 0xa9, 0xfa, + 0x1e, 0xd6, 0x6f, 0xa9, 0x1d, 0xbf, 0x79, 0xb9, 0x78, 0x3a, 0xfc, 0x7e, 0x6a, 0xe1, 0x16, 0xd5, + 0xa9, 0x12, 0x95, 0x1d, 0xbf, 0x79, 0x19, 0x6d, 0x41, 0x9e, 0x2c, 0x46, 0xdb, 0xb8, 0x8b, 0xd5, + 0xa6, 0xed, 0xd2, 0xd2, 0x58, 0x18, 0x90, 0x9a, 0x42, 0x1e, 0x5c, 0xd8, 0xe0, 0x80, 0x35, 0xbb, + 0x81, 0xcb, 0xe9, 0xad, 0xcd, 0x5a, 0x6d, 0x59, 0xc9, 0x09, 0x96, 0x6b, 0xb6, 0x4b, 0x02, 0xaa, + 0x65, 0x07, 0x0e, 0xce, 0xb1, 0x80, 0x6a, 0xd9, 0xc2, 0xbd, 0x17, 0x61, 0x4a, 0xd7, 0xd9, 0x9c, + 0x0d, 0x5d, 0xe5, 0x67, 0x2c, 0xaf, 0x28, 0x47, 0x9c, 0xa5, 0xeb, 0x2b, 0x4c, 0x81, 0xc7, 0xb8, + 0x87, 0xae, 0xc0, 0x43, 0x5d, 0x67, 0x85, 0x81, 0x93, 0x7d, 0xb3, 0xec, 0x85, 0x5e, 0x84, 0x29, + 0x67, 0xbf, 0x1f, 0x88, 0x22, 0x6f, 0x74, 0xf6, 0x7b, 0x61, 0x4f, 0xc3, 0xb4, 0xb3, 0xe7, 0xf4, + 0xe3, 0x9e, 0x08, 0xe3, 0x90, 0xb3, 0xe7, 0xf4, 0x02, 0x1f, 0xa3, 0x07, 0x6e, 0x17, 0xeb, 0x9a, + 0x8f, 0x1b, 0xc5, 0x93, 0x61, 0xf5, 0xd0, 0x00, 0x5a, 0x04, 0x59, 0xd7, 0x55, 0x6c, 0x69, 0xbb, + 0x26, 0x56, 0x35, 0x17, 0x5b, 0x9a, 0x57, 0x3c, 0x13, 0x56, 0x2e, 0xe8, 0x7a, 0x8d, 0x8e, 0x56, + 0xe8, 0x20, 0x7a, 0x02, 0x26, 0xed, 0xdd, 0x9b, 0x3a, 0x0b, 0x49, 0xd5, 0x71, 0x71, 0xd3, 0x78, + 0xa1, 0xf8, 0x28, 0xf5, 0xef, 0x04, 0x19, 0xa0, 0x01, 0xb9, 0x49, 0xc5, 0xe8, 0x71, 0x90, 0x75, + 0x6f, 0x4f, 0x73, 0x1d, 0x9a, 0x93, 0x3d, 0x47, 0xd3, 0x71, 0xf1, 0x31, 0xa6, 0xca, 0xe4, 0xeb, + 0x42, 0x4c, 0xb6, 0x84, 0x77, 0xc7, 0x68, 0xfa, 0x82, 0xf1, 0x1c, 0xdb, 0x12, 0x54, 0xc6, 0xd9, + 0xe6, 0x41, 0x26, 0xae, 0x88, 0xbc, 0x78, 0x9e, 0xaa, 0x15, 0x9c, 0x3d, 0x27, 0xfc, 0xde, 0x47, + 0x60, 0x9c, 0x68, 0x76, 0x5f, 0xfa, 0x38, 0x6b, 0xc8, 0x9c, 0xbd, 0xd0, 0x1b, 0xdf, 0xb7, 0xde, + 0x78, 0xae, 0x0c, 0xf9, 0x70, 0x7c, 0xa2, 0x2c, 0xb0, 0x08, 0x95, 0x25, 0xd2, 0xac, 0x54, 0x37, + 0x96, 0x49, 0x9b, 0xf1, 0x7c, 0x4d, 0x4e, 0x90, 0x76, 0x67, 0xb5, 0xbe, 0x5d, 0x53, 0x95, 0x9d, + 0xf5, 0xed, 0xfa, 0x5a, 0x4d, 0x4e, 0x86, 0xfb, 0xea, 0xef, 0x26, 0xa0, 0x10, 0x3d, 0x22, 0xa1, + 0x9f, 0x80, 0x93, 0xe2, 0x3e, 0xc3, 0xc3, 0xbe, 0x7a, 0xc7, 0x70, 0xe9, 0x96, 0x69, 0x6b, 0xac, + 0x7c, 0x05, 0x8b, 0x36, 0xcd, 0xb5, 0xb6, 0xb0, 0xff, 0xac, 0xe1, 0x92, 0x0d, 0xd1, 0xd6, 0x7c, + 0xb4, 0x0a, 0x67, 0x2c, 0x5b, 0xf5, 0x7c, 0xcd, 0x6a, 0x68, 0x6e, 0x43, 0xed, 0xde, 0x24, 0xa9, + 0x9a, 0xae, 0x63, 0xcf, 0xb3, 0x59, 0xa9, 0x0a, 0x58, 0x3e, 0x62, 0xd9, 0x5b, 0x5c, 0xb9, 0x9b, + 0xc3, 0x2b, 0x5c, 0xb5, 0x27, 0xc0, 0x92, 0x87, 0x05, 0xd8, 0x69, 0xc8, 0xb6, 0x35, 0x47, 0xc5, + 0x96, 0xef, 0xee, 0xd3, 0xc6, 0x38, 0xa3, 0x64, 0xda, 0x9a, 0x53, 0x23, 0xcf, 0x1f, 0xcc, 0xf9, + 0xe4, 0x9f, 0x93, 0x90, 0x0f, 0x37, 0xc7, 0xe4, 0xac, 0xa1, 0xd3, 0x3a, 0x22, 0xd1, 0x4c, 0xf3, + 0xc8, 0x91, 0xad, 0xf4, 0x42, 0x95, 0x14, 0x98, 0xf2, 0x28, 0x6b, 0x59, 0x15, 0x86, 0x24, 0xc5, + 0x9d, 0xe4, 0x16, 0xcc, 0x5a, 0x84, 0x8c, 0xc2, 0x9f, 0xd0, 0x0a, 0x8c, 0xde, 0xf4, 0x28, 0xf7, + 0x28, 0xe5, 0x7e, 0xf4, 0x68, 0xee, 0xeb, 0x5b, 0x94, 0x3c, 0x7b, 0x7d, 0x4b, 0x5d, 0xdf, 0x50, + 0xd6, 0x2a, 0xab, 0x0a, 0x87, 0xa3, 0x53, 0x90, 0x32, 0xb5, 0xbb, 0xfb, 0xd1, 0x52, 0x44, 0x45, + 0xc3, 0x3a, 0xfe, 0x14, 0xa4, 0xee, 0x60, 0xed, 0x56, 0xb4, 0x00, 0x50, 0xd1, 0xfb, 0x18, 0xfa, + 0x8b, 0x90, 0xa6, 0xfe, 0x42, 0x00, 0xdc, 0x63, 0xf2, 0x08, 0xca, 0x40, 0xaa, 0xba, 0xa1, 0x90, + 0xf0, 0x97, 0x21, 0xcf, 0xa4, 0xea, 0x66, 0xbd, 0x56, 0xad, 0xc9, 0x89, 0xb9, 0x8b, 0x30, 0xca, + 0x9c, 0x40, 0xb6, 0x46, 0xe0, 0x06, 0x79, 0x84, 0x3f, 0x72, 0x0e, 0x49, 0x8c, 0xee, 0xac, 0x2d, + 0xd5, 0x14, 0x39, 0x11, 0x5e, 0x5e, 0x0f, 0xf2, 0xe1, 0xbe, 0xf8, 0x83, 0x89, 0xa9, 0xbf, 0x95, + 0x20, 0x17, 0xea, 0x73, 0x49, 0x83, 0xa2, 0x99, 0xa6, 0x7d, 0x47, 0xd5, 0x4c, 0x43, 0xf3, 0x78, + 0x50, 0x00, 0x15, 0x55, 0x88, 0x64, 0xd8, 0x45, 0xfb, 0x40, 0x8c, 0x7f, 0x55, 0x02, 0xb9, 0xb7, + 0xc5, 0xec, 0x31, 0x50, 0xfa, 0x50, 0x0d, 0x7c, 0x45, 0x82, 0x42, 0xb4, 0xaf, 0xec, 0x31, 0xef, + 0xec, 0x87, 0x6a, 0xde, 0x1b, 0x09, 0x18, 0x8f, 0x74, 0x93, 0xc3, 0x5a, 0xf7, 0x79, 0x98, 0x34, + 0x1a, 0xb8, 0xed, 0xd8, 0x3e, 0xb6, 0xf4, 0x7d, 0xd5, 0xc4, 0xb7, 0xb1, 0x59, 0x9c, 0xa3, 0x89, + 0x62, 0xf1, 0xe8, 0x7e, 0x75, 0xa1, 0xde, 0xc5, 0xad, 0x12, 0x58, 0x79, 0xaa, 0xbe, 0x5c, 0x5b, + 0xdb, 0xdc, 0xd8, 0xae, 0xad, 0x57, 0x6f, 0xa8, 0x3b, 0xeb, 0x3f, 0xb5, 0xbe, 0xf1, 0xec, 0xba, + 0x22, 0x1b, 0x3d, 0x6a, 0xef, 0xe3, 0x56, 0xdf, 0x04, 0xb9, 0xd7, 0x28, 0x74, 0x12, 0x06, 0x99, + 0x25, 0x8f, 0xa0, 0x29, 0x98, 0x58, 0xdf, 0x50, 0xb7, 0xea, 0xcb, 0x35, 0xb5, 0x76, 0xed, 0x5a, + 0xad, 0xba, 0xbd, 0xc5, 0x6e, 0x20, 0x02, 0xed, 0xed, 0xe8, 0xa6, 0x7e, 0x39, 0x09, 0x53, 0x03, + 0x2c, 0x41, 0x15, 0x7e, 0x76, 0x60, 0xc7, 0x99, 0x8f, 0x0f, 0x63, 0xfd, 0x02, 0x29, 0xf9, 0x9b, + 0x9a, 0xeb, 0xf3, 0xa3, 0xc6, 0xe3, 0x40, 0xbc, 0x64, 0xf9, 0x46, 0xd3, 0xc0, 0x2e, 0xbf, 0xb0, + 0x61, 0x07, 0x8a, 0x89, 0xae, 0x9c, 0xdd, 0xd9, 0x7c, 0x0c, 0x90, 0x63, 0x7b, 0x86, 0x6f, 0xdc, + 0xc6, 0xaa, 0x61, 0x89, 0xdb, 0x1d, 0x72, 0xc0, 0x48, 0x29, 0xb2, 0x18, 0xa9, 0x5b, 0x7e, 0xa0, + 0x6d, 0xe1, 0x96, 0xd6, 0xa3, 0x4d, 0x12, 0x78, 0x52, 0x91, 0xc5, 0x48, 0xa0, 0x7d, 0x16, 0xf2, + 0x0d, 0xbb, 0x43, 0xba, 0x2e, 0xa6, 0x47, 0xea, 0x85, 0xa4, 0xe4, 0x98, 0x2c, 0x50, 0xe1, 0xfd, + 0x74, 0xf7, 0x5a, 0x29, 0xaf, 0xe4, 0x98, 0x8c, 0xa9, 0x9c, 0x83, 0x09, 0xad, 0xd5, 0x72, 0x09, + 0xb9, 0x20, 0x62, 0x27, 0x84, 0x42, 0x20, 0xa6, 0x8a, 0x33, 0xd7, 0x21, 0x23, 0xfc, 0x40, 0x4a, + 0x32, 0xf1, 0x84, 0xea, 0xb0, 0x63, 0x6f, 0x62, 0x3e, 0xab, 0x64, 0x2c, 0x31, 0x78, 0x16, 0xf2, + 0x86, 0xa7, 0x76, 0x6f, 0xc9, 0x13, 0xb3, 0x89, 0xf9, 0x8c, 0x92, 0x33, 0xbc, 0xe0, 0x86, 0x71, + 0xee, 0xb5, 0x04, 0x14, 0xa2, 0xb7, 0xfc, 0x68, 0x19, 0x32, 0xa6, 0xad, 0x6b, 0x34, 0xb4, 0xd8, + 0x27, 0xa6, 0xf9, 0x98, 0x0f, 0x03, 0x0b, 0xab, 0x5c, 0x5f, 0x09, 0x90, 0x33, 0xff, 0x28, 0x41, + 0x46, 0x88, 0xd1, 0x09, 0x48, 0x39, 0x9a, 0xbf, 0x47, 0xe9, 0xd2, 0x4b, 0x09, 0x59, 0x52, 0xe8, + 0x33, 0x91, 0x7b, 0x8e, 0x66, 0xd1, 0x10, 0xe0, 0x72, 0xf2, 0x4c, 0xd6, 0xd5, 0xc4, 0x5a, 0x83, + 0x1e, 0x3f, 0xec, 0x76, 0x1b, 0x5b, 0xbe, 0x27, 0xd6, 0x95, 0xcb, 0xab, 0x5c, 0x8c, 0x9e, 0x84, + 0x49, 0xdf, 0xd5, 0x0c, 0x33, 0xa2, 0x9b, 0xa2, 0xba, 0xb2, 0x18, 0x08, 0x94, 0xcb, 0x70, 0x4a, + 0xf0, 0x36, 0xb0, 0xaf, 0xe9, 0x7b, 0xb8, 0xd1, 0x05, 0x8d, 0xd2, 0x6b, 0x86, 0x93, 0x5c, 0x61, + 0x99, 0x8f, 0x0b, 0xec, 0xdc, 0xf7, 0x25, 0x98, 0x14, 0x07, 0xa6, 0x46, 0xe0, 0xac, 0x35, 0x00, + 0xcd, 0xb2, 0x6c, 0x3f, 0xec, 0xae, 0xfe, 0x50, 0xee, 0xc3, 0x2d, 0x54, 0x02, 0x90, 0x12, 0x22, + 0x98, 0x69, 0x03, 0x74, 0x47, 0x0e, 0x75, 0xdb, 0x19, 0xc8, 0xf1, 0x4f, 0x38, 0xf4, 0x3b, 0x20, + 0x3b, 0x62, 0x03, 0x13, 0x91, 0x93, 0x15, 0x9a, 0x86, 0xf4, 0x2e, 0x6e, 0x19, 0x16, 0xbf, 0x98, + 0x65, 0x0f, 0xe2, 0x22, 0x24, 0x15, 0x5c, 0x84, 0x2c, 0x7d, 0x0e, 0xa6, 0x74, 0xbb, 0xdd, 0x6b, + 0xee, 0x92, 0xdc, 0x73, 0xcc, 0xf7, 0x3e, 0x2d, 0x3d, 0x0f, 0xdd, 0x16, 0xf3, 0x3d, 0x49, 0xfa, + 0xfd, 0x44, 0x72, 0x65, 0x73, 0xe9, 0x6b, 0x89, 0x99, 0x15, 0x06, 0xdd, 0x14, 0x33, 0x55, 0x70, + 0xd3, 0xc4, 0x3a, 0xb1, 0x1e, 0xbe, 0x78, 0x0e, 0x3e, 0xde, 0x32, 0xfc, 0xbd, 0xce, 0xee, 0x82, + 0x6e, 0xb7, 0x17, 0x5b, 0x76, 0xcb, 0xee, 0x7e, 0xfa, 0x24, 0x4f, 0xf4, 0x81, 0xfe, 0xe2, 0x9f, + 0x3f, 0xb3, 0x81, 0x74, 0x26, 0xf6, 0x5b, 0x69, 0x79, 0x1d, 0xa6, 0xb8, 0xb2, 0x4a, 0xbf, 0xbf, + 0xb0, 0x53, 0x04, 0x3a, 0xf2, 0x0e, 0xab, 0xf8, 0x8d, 0x37, 0x69, 0xb9, 0x56, 0x26, 0x39, 0x94, + 0x8c, 0xb1, 0x83, 0x46, 0x59, 0x81, 0x87, 0x22, 0x7c, 0x6c, 0x6b, 0x62, 0x37, 0x86, 0xf1, 0xbb, + 0x9c, 0x71, 0x2a, 0xc4, 0xb8, 0xc5, 0xa1, 0xe5, 0x2a, 0x8c, 0x1f, 0x87, 0xeb, 0xef, 0x39, 0x57, + 0x1e, 0x87, 0x49, 0x56, 0x60, 0x82, 0x92, 0xe8, 0x1d, 0xcf, 0xb7, 0xdb, 0x34, 0xef, 0x1d, 0x4d, + 0xf3, 0x0f, 0x6f, 0xb2, 0xbd, 0x52, 0x20, 0xb0, 0x6a, 0x80, 0x2a, 0x97, 0x81, 0x7e, 0x72, 0x6a, + 0x60, 0xdd, 0x8c, 0x61, 0x78, 0x9d, 0x1b, 0x12, 0xe8, 0x97, 0x3f, 0x0b, 0xd3, 0xe4, 0x37, 0x4d, + 0x4b, 0x61, 0x4b, 0xe2, 0x2f, 0xbc, 0x8a, 0xdf, 0x7f, 0x91, 0x6d, 0xc7, 0xa9, 0x80, 0x20, 0x64, + 0x53, 0x68, 0x15, 0x5b, 0xd8, 0xf7, 0xb1, 0xeb, 0xa9, 0x9a, 0x39, 0xc8, 0xbc, 0xd0, 0x8d, 0x41, + 0xf1, 0xcb, 0x6f, 0x47, 0x57, 0x71, 0x85, 0x21, 0x2b, 0xa6, 0x59, 0xde, 0x81, 0x93, 0x03, 0xa2, + 0x62, 0x08, 0xce, 0x97, 0x39, 0xe7, 0x74, 0x5f, 0x64, 0x10, 0xda, 0x4d, 0x10, 0xf2, 0x60, 0x2d, + 0x87, 0xe0, 0xfc, 0x6d, 0xce, 0x89, 0x38, 0x56, 0x2c, 0x29, 0x61, 0xbc, 0x0e, 0x93, 0xb7, 0xb1, + 0xbb, 0x6b, 0x7b, 0xfc, 0x96, 0x66, 0x08, 0xba, 0x57, 0x38, 0xdd, 0x04, 0x07, 0xd2, 0x6b, 0x1b, + 0xc2, 0x75, 0x05, 0x32, 0x4d, 0x4d, 0xc7, 0x43, 0x50, 0x7c, 0x85, 0x53, 0x8c, 0x11, 0x7d, 0x02, + 0xad, 0x40, 0xbe, 0x65, 0xf3, 0xca, 0x14, 0x0f, 0x7f, 0x95, 0xc3, 0x73, 0x02, 0xc3, 0x29, 0x1c, + 0xdb, 0xe9, 0x98, 0xa4, 0x6c, 0xc5, 0x53, 0xfc, 0x8e, 0xa0, 0x10, 0x18, 0x4e, 0x71, 0x0c, 0xb7, + 0xfe, 0xae, 0xa0, 0xf0, 0x42, 0xfe, 0x7c, 0x06, 0x72, 0xb6, 0x65, 0xee, 0xdb, 0xd6, 0x30, 0x46, + 0xfc, 0x1e, 0x67, 0x00, 0x0e, 0x21, 0x04, 0x57, 0x21, 0x3b, 0xec, 0x42, 0xfc, 0xc1, 0xdb, 0x62, + 0x7b, 0x88, 0x15, 0x58, 0x81, 0x09, 0x91, 0xa0, 0x0c, 0xdb, 0x1a, 0x82, 0xe2, 0x0f, 0x39, 0x45, + 0x21, 0x04, 0xe3, 0xd3, 0xf0, 0xb1, 0xe7, 0xb7, 0xf0, 0x30, 0x24, 0xaf, 0x89, 0x69, 0x70, 0x08, + 0x77, 0xe5, 0x2e, 0xb6, 0xf4, 0xbd, 0xe1, 0x18, 0xbe, 0x2a, 0x5c, 0x29, 0x30, 0x84, 0xa2, 0x0a, + 0xe3, 0x6d, 0xcd, 0xf5, 0xf6, 0x34, 0x73, 0xa8, 0xe5, 0xf8, 0x23, 0xce, 0x91, 0x0f, 0x40, 0xdc, + 0x23, 0x1d, 0xeb, 0x38, 0x34, 0x5f, 0x13, 0x1e, 0x09, 0xc1, 0xf8, 0xd6, 0xf3, 0x7c, 0x7a, 0xa5, + 0x75, 0x1c, 0xb6, 0x3f, 0x16, 0x5b, 0x8f, 0x61, 0xd7, 0xc2, 0x8c, 0x57, 0x21, 0xeb, 0x19, 0x77, + 0x87, 0xa2, 0xf9, 0x13, 0xb1, 0xd2, 0x14, 0x40, 0xc0, 0x37, 0xe0, 0xd4, 0xc0, 0x32, 0x31, 0x04, + 0xd9, 0x9f, 0x72, 0xb2, 0x13, 0x03, 0x4a, 0x05, 0x4f, 0x09, 0xc7, 0xa5, 0xfc, 0x33, 0x91, 0x12, + 0x70, 0x0f, 0xd7, 0x26, 0x39, 0x2b, 0x78, 0x5a, 0xf3, 0x78, 0x5e, 0xfb, 0x73, 0xe1, 0x35, 0x86, + 0x8d, 0x78, 0x6d, 0x1b, 0x4e, 0x70, 0xc6, 0xe3, 0xad, 0xeb, 0xd7, 0x45, 0x62, 0x65, 0xe8, 0x9d, + 0xe8, 0xea, 0x7e, 0x0e, 0x66, 0x02, 0x77, 0x8a, 0xa6, 0xd4, 0x53, 0xdb, 0x9a, 0x33, 0x04, 0xf3, + 0x37, 0x38, 0xb3, 0xc8, 0xf8, 0x41, 0x57, 0xeb, 0xad, 0x69, 0x0e, 0x21, 0x7f, 0x0e, 0x8a, 0x82, + 0xbc, 0x63, 0xb9, 0x58, 0xb7, 0x5b, 0x96, 0x71, 0x17, 0x37, 0x86, 0xa0, 0xfe, 0x8b, 0x9e, 0xa5, + 0xda, 0x09, 0xc1, 0x09, 0x73, 0x1d, 0xe4, 0xa0, 0x57, 0x51, 0x8d, 0xb6, 0x63, 0xbb, 0x7e, 0x0c, + 0xe3, 0x37, 0xc5, 0x4a, 0x05, 0xb8, 0x3a, 0x85, 0x95, 0x6b, 0x50, 0xa0, 0x8f, 0xc3, 0x86, 0xe4, + 0x5f, 0x72, 0xa2, 0xf1, 0x2e, 0x8a, 0x27, 0x0e, 0xdd, 0x6e, 0x3b, 0x9a, 0x3b, 0x4c, 0xfe, 0xfb, + 0x2b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, 0x7f, 0xdf, 0xc1, 0xa4, 0xda, 0x0f, 0xc1, 0xf0, 0x2d, + 0x91, 0x38, 0x04, 0x86, 0x53, 0x88, 0x86, 0x61, 0x08, 0x8a, 0xbf, 0x16, 0x14, 0x02, 0x43, 0x28, + 0x3e, 0xd3, 0x2d, 0xb4, 0x2e, 0x6e, 0x19, 0x9e, 0xef, 0xb2, 0x56, 0xf8, 0x68, 0xaa, 0x6f, 0xbf, + 0x1d, 0x6d, 0xc2, 0x94, 0x10, 0xb4, 0x7c, 0x1d, 0x26, 0x7a, 0x5a, 0x0c, 0x14, 0xf7, 0xff, 0x2b, + 0xc5, 0x9f, 0x7d, 0x97, 0x27, 0xa3, 0x68, 0x87, 0x51, 0x5e, 0x25, 0xeb, 0x1e, 0xed, 0x03, 0xe2, + 0xc9, 0x5e, 0x7c, 0x37, 0x58, 0xfa, 0x48, 0x1b, 0x50, 0xbe, 0x06, 0xe3, 0x91, 0x1e, 0x20, 0x9e, + 0xea, 0x0b, 0x9c, 0x2a, 0x1f, 0x6e, 0x01, 0xca, 0x17, 0x21, 0x45, 0xea, 0x79, 0x3c, 0xfc, 0xe7, + 0x38, 0x9c, 0xaa, 0x97, 0x3f, 0x09, 0x19, 0x51, 0xc7, 0xe3, 0xa1, 0x3f, 0xcf, 0xa1, 0x01, 0x84, + 0xc0, 0x45, 0x0d, 0x8f, 0x87, 0xff, 0x82, 0x80, 0x0b, 0x08, 0x81, 0x0f, 0xef, 0xc2, 0xef, 0xfc, + 0x52, 0x8a, 0xe7, 0x61, 0xe1, 0xbb, 0xab, 0x30, 0xc6, 0x8b, 0x77, 0x3c, 0xfa, 0x25, 0xfe, 0x72, + 0x81, 0x28, 0x3f, 0x0d, 0xe9, 0x21, 0x1d, 0xfe, 0xcb, 0x1c, 0xca, 0xf4, 0xcb, 0x55, 0xc8, 0x85, + 0x0a, 0x76, 0x3c, 0xfc, 0x57, 0x38, 0x3c, 0x8c, 0x22, 0xa6, 0xf3, 0x82, 0x1d, 0x4f, 0xf0, 0xab, + 0xc2, 0x74, 0x8e, 0x20, 0x6e, 0x13, 0xb5, 0x3a, 0x1e, 0xfd, 0x6b, 0xc2, 0xeb, 0x02, 0x52, 0x7e, + 0x06, 0xb2, 0x41, 0xfe, 0x8d, 0xc7, 0xff, 0x3a, 0xc7, 0x77, 0x31, 0xc4, 0x03, 0xa1, 0xfc, 0x1f, + 0x4f, 0xf1, 0x1b, 0xc2, 0x03, 0x21, 0x14, 0xd9, 0x46, 0xbd, 0x35, 0x3d, 0x9e, 0xe9, 0x37, 0xc5, + 0x36, 0xea, 0x29, 0xe9, 0x64, 0x35, 0x69, 0x1a, 0x8c, 0xa7, 0xf8, 0x2d, 0xb1, 0x9a, 0x54, 0x9f, + 0x98, 0xd1, 0x5b, 0x24, 0xe3, 0x39, 0xbe, 0x28, 0xcc, 0xe8, 0xa9, 0x91, 0xe5, 0x4d, 0x40, 0xfd, + 0x05, 0x32, 0x9e, 0xef, 0x4b, 0x9c, 0x6f, 0xb2, 0xaf, 0x3e, 0x96, 0x9f, 0x85, 0x13, 0x83, 0x8b, + 0x63, 0x3c, 0xeb, 0x97, 0xdf, 0xed, 0x39, 0xce, 0x84, 0x6b, 0x63, 0x79, 0xbb, 0x9b, 0x65, 0xc3, + 0x85, 0x31, 0x9e, 0xf6, 0xe5, 0x77, 0xa3, 0x89, 0x36, 0x5c, 0x17, 0xcb, 0x15, 0x80, 0x6e, 0x4d, + 0x8a, 0xe7, 0x7a, 0x85, 0x73, 0x85, 0x40, 0x64, 0x6b, 0xf0, 0x92, 0x14, 0x8f, 0xff, 0x8a, 0xd8, + 0x1a, 0x1c, 0x41, 0xb6, 0x86, 0xa8, 0x46, 0xf1, 0xe8, 0x57, 0xc5, 0xd6, 0x10, 0x90, 0xf2, 0x55, + 0xc8, 0x58, 0x1d, 0xd3, 0x24, 0xb1, 0x85, 0x8e, 0xfe, 0x97, 0xac, 0xe2, 0xbf, 0x3f, 0xe0, 0x60, + 0x01, 0x28, 0x5f, 0x84, 0x34, 0x6e, 0xef, 0xe2, 0x46, 0x1c, 0xf2, 0x3f, 0x1e, 0x88, 0x7c, 0x42, + 0xb4, 0xcb, 0xcf, 0x00, 0xb0, 0xc3, 0x34, 0xfd, 0x50, 0x14, 0x83, 0xfd, 0xcf, 0x07, 0xfc, 0x9f, + 0x25, 0xba, 0x90, 0x2e, 0x01, 0xfb, 0xd7, 0x8b, 0xa3, 0x09, 0xde, 0x8e, 0x12, 0xd0, 0x03, 0xf8, + 0x15, 0x18, 0xbb, 0xe9, 0xd9, 0x96, 0xaf, 0xb5, 0xe2, 0xd0, 0xff, 0xc5, 0xd1, 0x42, 0x9f, 0x38, + 0xac, 0x6d, 0xbb, 0xd8, 0xd7, 0x5a, 0x5e, 0x1c, 0xf6, 0xbf, 0x39, 0x36, 0x00, 0x10, 0xb0, 0xae, + 0x79, 0xfe, 0x30, 0xf3, 0xfe, 0xa1, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0xfc, 0xbe, 0x85, 0xf7, 0xe3, + 0xb0, 0xef, 0x08, 0xa3, 0xb9, 0x7e, 0xf9, 0x93, 0x90, 0x25, 0x3f, 0xd9, 0x7f, 0x40, 0xc5, 0x80, + 0xff, 0x87, 0x83, 0xbb, 0x08, 0xf2, 0x66, 0xcf, 0x6f, 0xf8, 0x46, 0xbc, 0xb3, 0xff, 0x97, 0xaf, + 0xb4, 0xd0, 0x2f, 0x57, 0x20, 0xe7, 0xf9, 0x8d, 0x46, 0x87, 0x77, 0x34, 0x31, 0xf0, 0xff, 0x7b, + 0x10, 0x1c, 0x72, 0x03, 0xcc, 0x52, 0x6d, 0xf0, 0x7d, 0x1d, 0xac, 0xd8, 0x2b, 0x36, 0xbb, 0xa9, + 0x7b, 0x7e, 0x2e, 0xfe, 0xca, 0x0d, 0x5e, 0x4a, 0xc3, 0x69, 0xdd, 0x6e, 0xef, 0xda, 0xde, 0xe2, + 0xae, 0xed, 0xef, 0x2d, 0x06, 0xd3, 0x13, 0xf7, 0x70, 0x81, 0x60, 0xe6, 0x78, 0x37, 0x78, 0x73, + 0x7f, 0x97, 0x84, 0x4c, 0x55, 0xf3, 0x7c, 0xed, 0x8e, 0xb6, 0x8f, 0x1c, 0x98, 0x22, 0xbf, 0xd7, + 0x34, 0x87, 0xde, 0x07, 0xf1, 0x0d, 0xc8, 0x2f, 0x49, 0x3f, 0xb6, 0xd0, 0x7d, 0xab, 0x40, 0x2c, + 0x0c, 0x50, 0xa7, 0x1f, 0x97, 0x97, 0xe4, 0xd7, 0xff, 0xe5, 0xcc, 0xc8, 0x2f, 0xfe, 0xeb, 0x99, + 0xcc, 0xda, 0xfe, 0xb3, 0x86, 0xe9, 0xd9, 0x96, 0x32, 0x88, 0x1a, 0x7d, 0x41, 0x82, 0xd3, 0x03, + 0xe4, 0xeb, 0x7c, 0x97, 0xf2, 0x4f, 0x0d, 0x17, 0x86, 0x7c, 0xb5, 0x80, 0x31, 0x13, 0xf2, 0x91, + 0xd7, 0x1f, 0xf5, 0x9a, 0x99, 0x1b, 0x50, 0x3c, 0x6c, 0x26, 0x48, 0x86, 0xe4, 0x2d, 0xbc, 0xcf, + 0xff, 0x43, 0x8d, 0xfc, 0x44, 0xe7, 0xba, 0xff, 0xc7, 0x27, 0xcd, 0xe7, 0xce, 0x4f, 0x86, 0xac, + 0xe3, 0x2f, 0x63, 0xe3, 0xe5, 0xc4, 0x65, 0x69, 0x46, 0x83, 0xd9, 0x38, 0x4b, 0x7f, 0xcc, 0x57, + 0xcc, 0x95, 0x60, 0x94, 0x09, 0xd1, 0x34, 0xa4, 0xeb, 0x96, 0x7f, 0xe9, 0x02, 0xa5, 0x4a, 0x2a, + 0xec, 0x61, 0x69, 0xf5, 0xf5, 0xfb, 0xa5, 0x91, 0xef, 0xdd, 0x2f, 0x8d, 0xfc, 0xd3, 0xfd, 0xd2, + 0xc8, 0x1b, 0xf7, 0x4b, 0xd2, 0x5b, 0xf7, 0x4b, 0xd2, 0x3b, 0xf7, 0x4b, 0xd2, 0x7b, 0xf7, 0x4b, + 0xd2, 0xbd, 0x83, 0x92, 0xf4, 0xd5, 0x83, 0x92, 0xf4, 0xf5, 0x83, 0x92, 0xf4, 0xed, 0x83, 0x92, + 0xf4, 0x9d, 0x83, 0x92, 0xf4, 0xfa, 0x41, 0x49, 0xfa, 0xde, 0x41, 0x49, 0x7a, 0xe3, 0xa0, 0x24, + 0xbd, 0x75, 0x50, 0x1a, 0x79, 0xe7, 0xa0, 0x24, 0xbd, 0x77, 0x50, 0x1a, 0xb9, 0xf7, 0x83, 0xd2, + 0xc8, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xe4, 0x13, 0xfa, 0x71, 0x18, 0x33, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -508,16 +512,16 @@ func (this *Wilson) Equal(that interface{}) bool { } type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetCastMapValueMessage() map[int32]MyWilson GetCastMapValueMessageNullable() map[int32]*MyWilson } -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) Proto() proto.Message { return this } -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) TestProto() proto.Message { return NewCastawayFromFace(this) } @@ -537,15 +541,15 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { } type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt64() *int64 } -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) Proto() proto.Message { return this } -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) TestProto() proto.Message { return NewWilsonFromFace(this) } @@ -569,7 +573,7 @@ func (this *Castaway) GoString() string { for k := range this.CastMapValueMessage { keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) + sortkeys.Int32s(keysForCastMapValueMessage) mapStringForCastMapValueMessage := "map[int32]MyWilson{" for _, k := range keysForCastMapValueMessage { mapStringForCastMapValueMessage += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessage[k]) @@ -582,7 +586,7 @@ func (this *Castaway) GoString() string { for k := range this.CastMapValueMessageNullable { keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) + sortkeys.Int32s(keysForCastMapValueMessageNullable) mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" for _, k := range keysForCastMapValueMessageNullable { mapStringForCastMapValueMessageNullable += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessageNullable[k]) @@ -719,24 +723,6 @@ func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Castvalue(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 encodeFixed32Castvalue(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 encodeVarintCastvalue(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -919,7 +905,7 @@ func (this *Castaway) String() string { for k := range this.CastMapValueMessage { keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) + sortkeys.Int32s(keysForCastMapValueMessage) mapStringForCastMapValueMessage := "map[int32]MyWilson{" for _, k := range keysForCastMapValueMessage { mapStringForCastMapValueMessage += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessage[k]) @@ -929,7 +915,7 @@ func (this *Castaway) String() string { for k := range this.CastMapValueMessageNullable { keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) + sortkeys.Int32s(keysForCastMapValueMessageNullable) mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" for _, k := range keysForCastMapValueMessageNullable { mapStringForCastMapValueMessageNullable += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessageNullable[k]) @@ -1017,41 +1003,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.CastMapValueMessage == nil { m.CastMapValueMessage = make(map[int32]MyWilson) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := &Wilson{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCastvalue @@ -1061,46 +1020,74 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipCastvalue(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCastvalue + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) - } else { - var mapvalue MyWilson - m.CastMapValueMessage[mapkey] = mapvalue } + m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) iNdEx = postIndex case 2: if wireType != 2 { @@ -1128,41 +1115,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.CastMapValueMessageNullable == nil { m.CastMapValueMessageNullable = make(map[int32]*MyWilson) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue *Wilson + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCastvalue @@ -1172,46 +1132,74 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipCastvalue(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCastvalue + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) - } else { - var mapvalue *MyWilson - m.CastMapValueMessageNullable[mapkey] = mapvalue } + m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) iNdEx = postIndex default: iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvaluepb_test.go index 8825badb8..6eccd274f 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/both/castvaluepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/castvalue.proto -// DO NOT EDIT! /* Package castvalue is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package castvalue import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,13 +58,13 @@ func TestCastawayProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCastawayMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -78,7 +76,7 @@ func TestCastawayMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -93,7 +91,7 @@ func TestCastawayMarshalTo(t *testing.T) { } func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 10000) for i := 0; i < 10000; i++ { @@ -101,7 +99,7 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -111,11 +109,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } @@ -125,7 +123,7 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -134,14 +132,14 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -162,13 +160,13 @@ func TestWilsonProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestWilsonMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -180,7 +178,7 @@ func TestWilsonMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -195,7 +193,7 @@ func TestWilsonMarshalTo(t *testing.T) { } func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 10000) for i := 0; i < 10000; i++ { @@ -203,7 +201,7 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -213,11 +211,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } @@ -227,7 +225,7 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -236,15 +234,15 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { func TestCastawayJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -257,15 +255,15 @@ func TestCastawayJSON(t *testing.T) { } func TestWilsonJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -278,11 +276,11 @@ func TestWilsonJSON(t *testing.T) { } func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -295,11 +293,11 @@ func TestCastawayProtoText(t *testing.T) { func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -312,11 +310,11 @@ func TestCastawayProtoCompactText(t *testing.T) { func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -329,11 +327,11 @@ func TestWilsonProtoText(t *testing.T) { func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -348,14 +346,14 @@ func TestCastvalueDescription(t *testing.T) { CastvalueDescription() } func TestCastawayVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -363,14 +361,14 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -378,7 +376,7 @@ func TestWilsonVerboseEqual(t *testing.T) { } } func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -386,7 +384,7 @@ func TestCastawayFace(t *testing.T) { } } func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -394,37 +392,37 @@ func TestWilsonFace(t *testing.T) { } } func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCastawaySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -435,14 +433,14 @@ func TestCastawaySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 1000) for i := 0; i < 1000; i++ { @@ -457,10 +455,10 @@ func BenchmarkCastawaySize(b *testing.B) { func TestWilsonSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -471,14 +469,14 @@ func TestWilsonSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 1000) for i := 0; i < 1000; i++ { @@ -492,7 +490,7 @@ func BenchmarkWilsonSize(b *testing.B) { } func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -501,7 +499,7 @@ func TestCastawayStringer(t *testing.T) { } } func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go index fd9068bb1..52e3d4f28 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvalue.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/castvalue.proto -// DO NOT EDIT! /* Package castvalue is a generated protocol buffer package. @@ -19,15 +18,14 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -63,265 +61,271 @@ func init() { proto.RegisterType((*Castaway)(nil), "castvalue.Castaway") proto.RegisterType((*Wilson)(nil), "castvalue.Wilson") } -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Castaway) Description() (desc *descriptor.FileDescriptorSet) { return CastvalueDescription() } -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Wilson) Description() (desc *descriptor.FileDescriptorSet) { return CastvalueDescription() } -func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func CastvalueDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3793 bytes of a gzipped FileDescriptorSet + // 3903 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, - 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, - 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, - 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0x34, 0xfd, 0x9d, 0x69, 0xe2, 0x3a, 0x6e, 0x9b, - 0x99, 0xd6, 0x69, 0xd2, 0x9f, 0xa4, 0x3f, 0x69, 0xa6, 0x4f, 0xe9, 0x43, 0x5a, 0x3f, 0x75, 0x92, - 0xb7, 0x3e, 0x74, 0x5a, 0x8b, 0xf1, 0x4c, 0xdd, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0x8c, 0x5e, - 0x3a, 0xf7, 0x6f, 0xb1, 0x0b, 0x80, 0x5c, 0x30, 0x1d, 0x27, 0x4f, 0xc4, 0x3d, 0xf7, 0x7c, 0xdf, - 0x9e, 0x7b, 0xee, 0xb9, 0xe7, 0x9c, 0xbd, 0x4b, 0xf8, 0xfe, 0x65, 0x58, 0x6a, 0xdb, 0x76, 0xdb, - 0xc4, 0x6b, 0x5d, 0xc7, 0xf6, 0xec, 0xfd, 0x5e, 0x6b, 0xad, 0x89, 0x5d, 0xdd, 0x31, 0xba, 0x9e, - 0xed, 0xac, 0x52, 0x99, 0x32, 0xc3, 0x34, 0x56, 0x85, 0xc6, 0xf2, 0x36, 0xcc, 0x5e, 0x37, 0x4c, - 0xbc, 0xe1, 0x2b, 0x36, 0xb0, 0xa7, 0x5c, 0x85, 0x44, 0xcb, 0x30, 0x71, 0x5e, 0x5a, 0x8a, 0xaf, - 0x64, 0x2e, 0x3e, 0xbe, 0x3a, 0x00, 0x5a, 0x0d, 0x23, 0xea, 0x44, 0xac, 0x52, 0xc4, 0xf2, 0x5b, - 0x09, 0x98, 0x1b, 0x31, 0xab, 0x28, 0x90, 0xb0, 0x50, 0x87, 0x30, 0x4a, 0x2b, 0x69, 0x95, 0xfe, - 0x56, 0xf2, 0x30, 0xd5, 0x45, 0xfa, 0x1d, 0xd4, 0xc6, 0xf9, 0x18, 0x15, 0x8b, 0xa1, 0x52, 0x00, - 0x68, 0xe2, 0x2e, 0xb6, 0x9a, 0xd8, 0xd2, 0x0f, 0xf3, 0xf1, 0xa5, 0xf8, 0x4a, 0x5a, 0x0d, 0x48, - 0x94, 0xa7, 0x61, 0xb6, 0xdb, 0xdb, 0x37, 0x0d, 0x5d, 0x0b, 0xa8, 0xc1, 0x52, 0x7c, 0x25, 0xa9, - 0xca, 0x6c, 0x62, 0xa3, 0xaf, 0x7c, 0x01, 0x66, 0xee, 0x61, 0x74, 0x27, 0xa8, 0x9a, 0xa1, 0xaa, - 0x39, 0x22, 0x0e, 0x28, 0x96, 0x21, 0xdb, 0xc1, 0xae, 0x8b, 0xda, 0x58, 0xf3, 0x0e, 0xbb, 0x38, - 0x9f, 0xa0, 0xab, 0x5f, 0x1a, 0x5a, 0xfd, 0xe0, 0xca, 0x33, 0x1c, 0xb5, 0x7b, 0xd8, 0xc5, 0x4a, - 0x09, 0xd2, 0xd8, 0xea, 0x75, 0x18, 0x43, 0xf2, 0x18, 0xff, 0x55, 0xac, 0x5e, 0x67, 0x90, 0x25, - 0x45, 0x60, 0x9c, 0x62, 0xca, 0xc5, 0xce, 0x5d, 0x43, 0xc7, 0xf9, 0x49, 0x4a, 0x70, 0x61, 0x88, - 0xa0, 0xc1, 0xe6, 0x07, 0x39, 0x04, 0x4e, 0x29, 0x43, 0x1a, 0xbf, 0xe8, 0x61, 0xcb, 0x35, 0x6c, - 0x2b, 0x3f, 0x45, 0x49, 0x9e, 0x18, 0xb1, 0x8b, 0xd8, 0x6c, 0x0e, 0x52, 0xf4, 0x71, 0xca, 0x15, - 0x98, 0xb2, 0xbb, 0x9e, 0x61, 0x5b, 0x6e, 0x3e, 0xb5, 0x24, 0xad, 0x64, 0x2e, 0x7e, 0x60, 0x64, - 0x20, 0xd4, 0x98, 0x8e, 0x2a, 0x94, 0x95, 0x2a, 0xc8, 0xae, 0xdd, 0x73, 0x74, 0xac, 0xe9, 0x76, - 0x13, 0x6b, 0x86, 0xd5, 0xb2, 0xf3, 0x69, 0x4a, 0x70, 0x6e, 0x78, 0x21, 0x54, 0xb1, 0x6c, 0x37, - 0x71, 0xd5, 0x6a, 0xd9, 0x6a, 0xce, 0x0d, 0x8d, 0x95, 0x05, 0x98, 0x74, 0x0f, 0x2d, 0x0f, 0xbd, - 0x98, 0xcf, 0xd2, 0x08, 0xe1, 0xa3, 0xe5, 0xff, 0x4d, 0xc2, 0xcc, 0x38, 0x21, 0x76, 0x0d, 0x92, - 0x2d, 0xb2, 0xca, 0x7c, 0xec, 0x34, 0x3e, 0x60, 0x98, 0xb0, 0x13, 0x27, 0x7f, 0x44, 0x27, 0x96, - 0x20, 0x63, 0x61, 0xd7, 0xc3, 0x4d, 0x16, 0x11, 0xf1, 0x31, 0x63, 0x0a, 0x18, 0x68, 0x38, 0xa4, - 0x12, 0x3f, 0x52, 0x48, 0xdd, 0x84, 0x19, 0xdf, 0x24, 0xcd, 0x41, 0x56, 0x5b, 0xc4, 0xe6, 0x5a, - 0x94, 0x25, 0xab, 0x15, 0x81, 0x53, 0x09, 0x4c, 0xcd, 0xe1, 0xd0, 0x58, 0xd9, 0x00, 0xb0, 0x2d, - 0x6c, 0xb7, 0xb4, 0x26, 0xd6, 0xcd, 0x7c, 0xea, 0x18, 0x2f, 0xd5, 0x88, 0xca, 0x90, 0x97, 0x6c, - 0x26, 0xd5, 0x4d, 0xe5, 0xb9, 0x7e, 0xa8, 0x4d, 0x1d, 0x13, 0x29, 0xdb, 0xec, 0x90, 0x0d, 0x45, - 0xdb, 0x1e, 0xe4, 0x1c, 0x4c, 0xe2, 0x1e, 0x37, 0xf9, 0xca, 0xd2, 0xd4, 0x88, 0xd5, 0xc8, 0x95, - 0xa9, 0x1c, 0xc6, 0x16, 0x36, 0xed, 0x04, 0x87, 0xca, 0x07, 0xc1, 0x17, 0x68, 0x34, 0xac, 0x80, - 0x66, 0xa1, 0xac, 0x10, 0xee, 0xa0, 0x0e, 0x5e, 0xbc, 0x0a, 0xb9, 0xb0, 0x7b, 0x94, 0x79, 0x48, - 0xba, 0x1e, 0x72, 0x3c, 0x1a, 0x85, 0x49, 0x95, 0x0d, 0x14, 0x19, 0xe2, 0xd8, 0x6a, 0xd2, 0x2c, - 0x97, 0x54, 0xc9, 0xcf, 0xc5, 0x67, 0x61, 0x3a, 0xf4, 0xf8, 0x71, 0x81, 0xcb, 0x5f, 0x98, 0x84, - 0xf9, 0x51, 0x31, 0x37, 0x32, 0xfc, 0x17, 0x60, 0xd2, 0xea, 0x75, 0xf6, 0xb1, 0x93, 0x8f, 0x53, - 0x06, 0x3e, 0x52, 0x4a, 0x90, 0x34, 0xd1, 0x3e, 0x36, 0xf3, 0x89, 0x25, 0x69, 0x25, 0x77, 0xf1, - 0xe9, 0xb1, 0xa2, 0x7a, 0x75, 0x8b, 0x40, 0x54, 0x86, 0x54, 0x3e, 0x0e, 0x09, 0x9e, 0xe2, 0x08, - 0xc3, 0x53, 0xe3, 0x31, 0x90, 0x58, 0x54, 0x29, 0x4e, 0x79, 0x14, 0xd2, 0xe4, 0x2f, 0xf3, 0xed, - 0x24, 0xb5, 0x39, 0x45, 0x04, 0xc4, 0xaf, 0xca, 0x22, 0xa4, 0x68, 0x98, 0x35, 0xb1, 0x28, 0x0d, - 0xfe, 0x98, 0x6c, 0x4c, 0x13, 0xb7, 0x50, 0xcf, 0xf4, 0xb4, 0xbb, 0xc8, 0xec, 0x61, 0x1a, 0x30, - 0x69, 0x35, 0xcb, 0x85, 0x9f, 0x22, 0x32, 0xe5, 0x1c, 0x64, 0x58, 0x54, 0x1a, 0x56, 0x13, 0xbf, - 0x48, 0xb3, 0x4f, 0x52, 0x65, 0x81, 0x5a, 0x25, 0x12, 0xf2, 0xf8, 0xdb, 0xae, 0x6d, 0x89, 0xad, - 0xa5, 0x8f, 0x20, 0x02, 0xfa, 0xf8, 0x67, 0x07, 0x13, 0xdf, 0x63, 0xa3, 0x97, 0x37, 0x18, 0x8b, - 0xcb, 0xdf, 0x8c, 0x41, 0x82, 0x9e, 0xb7, 0x19, 0xc8, 0xec, 0xde, 0xaa, 0x57, 0xb4, 0x8d, 0xda, - 0xde, 0xfa, 0x56, 0x45, 0x96, 0x94, 0x1c, 0x00, 0x15, 0x5c, 0xdf, 0xaa, 0x95, 0x76, 0xe5, 0x98, - 0x3f, 0xae, 0xee, 0xec, 0x5e, 0xb9, 0x24, 0xc7, 0x7d, 0xc0, 0x1e, 0x13, 0x24, 0x82, 0x0a, 0xcf, - 0x5c, 0x94, 0x93, 0x8a, 0x0c, 0x59, 0x46, 0x50, 0xbd, 0x59, 0xd9, 0xb8, 0x72, 0x49, 0x9e, 0x0c, - 0x4b, 0x9e, 0xb9, 0x28, 0x4f, 0x29, 0xd3, 0x90, 0xa6, 0x92, 0xf5, 0x5a, 0x6d, 0x4b, 0x4e, 0xf9, - 0x9c, 0x8d, 0x5d, 0xb5, 0xba, 0xb3, 0x29, 0xa7, 0x7d, 0xce, 0x4d, 0xb5, 0xb6, 0x57, 0x97, 0xc1, - 0x67, 0xd8, 0xae, 0x34, 0x1a, 0xa5, 0xcd, 0x8a, 0x9c, 0xf1, 0x35, 0xd6, 0x6f, 0xed, 0x56, 0x1a, - 0x72, 0x36, 0x64, 0xd6, 0x33, 0x17, 0xe5, 0x69, 0xff, 0x11, 0x95, 0x9d, 0xbd, 0x6d, 0x39, 0xa7, - 0xcc, 0xc2, 0x34, 0x7b, 0x84, 0x30, 0x62, 0x66, 0x40, 0x74, 0xe5, 0x92, 0x2c, 0xf7, 0x0d, 0x61, - 0x2c, 0xb3, 0x21, 0xc1, 0x95, 0x4b, 0xb2, 0xb2, 0x5c, 0x86, 0x24, 0x8d, 0x2e, 0x45, 0x81, 0xdc, - 0x56, 0x69, 0xbd, 0xb2, 0xa5, 0xd5, 0xea, 0xbb, 0xd5, 0xda, 0x4e, 0x69, 0x4b, 0x96, 0xfa, 0x32, - 0xb5, 0xf2, 0xc9, 0xbd, 0xaa, 0x5a, 0xd9, 0x90, 0x63, 0x41, 0x59, 0xbd, 0x52, 0xda, 0xad, 0x6c, - 0xc8, 0xf1, 0x65, 0x1d, 0xe6, 0x47, 0xe5, 0x99, 0x91, 0x27, 0x23, 0xb0, 0xc5, 0xb1, 0x63, 0xb6, - 0x98, 0x72, 0x0d, 0x6d, 0xf1, 0x97, 0x25, 0x98, 0x1b, 0x91, 0x6b, 0x47, 0x3e, 0xe4, 0x79, 0x48, - 0xb2, 0x10, 0x65, 0xd5, 0xe7, 0xc9, 0x91, 0x49, 0x9b, 0x06, 0xec, 0x50, 0x05, 0xa2, 0xb8, 0x60, - 0x05, 0x8e, 0x1f, 0x53, 0x81, 0x09, 0xc5, 0x90, 0x91, 0x2f, 0x4b, 0x90, 0x3f, 0x8e, 0x3b, 0x22, - 0x51, 0xc4, 0x42, 0x89, 0xe2, 0xda, 0xa0, 0x01, 0xe7, 0x8f, 0x5f, 0xc3, 0x90, 0x15, 0xaf, 0x4b, - 0xb0, 0x30, 0xba, 0x51, 0x19, 0x69, 0xc3, 0xc7, 0x61, 0xb2, 0x83, 0xbd, 0x03, 0x5b, 0x14, 0xeb, - 0x0f, 0x8d, 0x28, 0x01, 0x64, 0x7a, 0xd0, 0x57, 0x1c, 0x15, 0xac, 0x21, 0xf1, 0xe3, 0xba, 0x0d, - 0x66, 0xcd, 0x90, 0xa5, 0x9f, 0x8b, 0xc1, 0x23, 0x23, 0xc9, 0x47, 0x1a, 0xfa, 0x18, 0x80, 0x61, - 0x75, 0x7b, 0x1e, 0x2b, 0xc8, 0x2c, 0x3f, 0xa5, 0xa9, 0x84, 0x9e, 0x7d, 0x92, 0x7b, 0x7a, 0x9e, - 0x3f, 0x1f, 0xa7, 0xf3, 0xc0, 0x44, 0x54, 0xe1, 0x6a, 0xdf, 0xd0, 0x04, 0x35, 0xb4, 0x70, 0xcc, - 0x4a, 0x87, 0x6a, 0xdd, 0x47, 0x41, 0xd6, 0x4d, 0x03, 0x5b, 0x9e, 0xe6, 0x7a, 0x0e, 0x46, 0x1d, - 0xc3, 0x6a, 0xd3, 0x04, 0x9c, 0x2a, 0x26, 0x5b, 0xc8, 0x74, 0xb1, 0x3a, 0xc3, 0xa6, 0x1b, 0x62, - 0x96, 0x20, 0x68, 0x95, 0x71, 0x02, 0x88, 0xc9, 0x10, 0x82, 0x4d, 0xfb, 0x88, 0xe5, 0xaf, 0x4d, - 0x41, 0x26, 0xd0, 0xd6, 0x29, 0xe7, 0x21, 0x7b, 0x1b, 0xdd, 0x45, 0x9a, 0x68, 0xd5, 0x99, 0x27, - 0x32, 0x44, 0x56, 0xe7, 0xed, 0xfa, 0x47, 0x61, 0x9e, 0xaa, 0xd8, 0x3d, 0x0f, 0x3b, 0x9a, 0x6e, - 0x22, 0xd7, 0xa5, 0x4e, 0x4b, 0x51, 0x55, 0x85, 0xcc, 0xd5, 0xc8, 0x54, 0x59, 0xcc, 0x28, 0x97, - 0x61, 0x8e, 0x22, 0x3a, 0x3d, 0xd3, 0x33, 0xba, 0x26, 0xd6, 0xc8, 0xcb, 0x83, 0x4b, 0x13, 0xb1, - 0x6f, 0xd9, 0x2c, 0xd1, 0xd8, 0xe6, 0x0a, 0xc4, 0x22, 0x57, 0xd9, 0x80, 0xc7, 0x28, 0xac, 0x8d, - 0x2d, 0xec, 0x20, 0x0f, 0x6b, 0xf8, 0x33, 0x3d, 0x64, 0xba, 0x1a, 0xb2, 0x9a, 0xda, 0x01, 0x72, - 0x0f, 0xf2, 0xf3, 0x84, 0x60, 0x3d, 0x96, 0x97, 0xd4, 0xb3, 0x44, 0x71, 0x93, 0xeb, 0x55, 0xa8, - 0x5a, 0xc9, 0x6a, 0x7e, 0x02, 0xb9, 0x07, 0x4a, 0x11, 0x16, 0x28, 0x8b, 0xeb, 0x39, 0x86, 0xd5, - 0xd6, 0xf4, 0x03, 0xac, 0xdf, 0xd1, 0x7a, 0x5e, 0xeb, 0x6a, 0xfe, 0xd1, 0xe0, 0xf3, 0xa9, 0x85, - 0x0d, 0xaa, 0x53, 0x26, 0x2a, 0x7b, 0x5e, 0xeb, 0xaa, 0xd2, 0x80, 0x2c, 0xd9, 0x8c, 0x8e, 0xf1, - 0x12, 0xd6, 0x5a, 0xb6, 0x43, 0x2b, 0x4b, 0x6e, 0xc4, 0xc9, 0x0e, 0x78, 0x70, 0xb5, 0xc6, 0x01, - 0xdb, 0x76, 0x13, 0x17, 0x93, 0x8d, 0x7a, 0xa5, 0xb2, 0xa1, 0x66, 0x04, 0xcb, 0x75, 0xdb, 0x21, - 0x01, 0xd5, 0xb6, 0x7d, 0x07, 0x67, 0x58, 0x40, 0xb5, 0x6d, 0xe1, 0xde, 0xcb, 0x30, 0xa7, 0xeb, - 0x6c, 0xcd, 0x86, 0xae, 0xf1, 0x16, 0xdf, 0xcd, 0xcb, 0x21, 0x67, 0xe9, 0xfa, 0x26, 0x53, 0xe0, - 0x31, 0xee, 0x2a, 0xcf, 0xc1, 0x23, 0x7d, 0x67, 0x05, 0x81, 0xb3, 0x43, 0xab, 0x1c, 0x84, 0x5e, - 0x86, 0xb9, 0xee, 0xe1, 0x30, 0x50, 0x09, 0x3d, 0xb1, 0x7b, 0x38, 0x08, 0x7b, 0x82, 0xbe, 0xb6, - 0x39, 0x58, 0x47, 0x1e, 0x6e, 0xe6, 0xcf, 0x04, 0xb5, 0x03, 0x13, 0xca, 0x1a, 0xc8, 0xba, 0xae, - 0x61, 0x0b, 0xed, 0x9b, 0x58, 0x43, 0x0e, 0xb6, 0x90, 0x9b, 0x3f, 0x17, 0x54, 0xce, 0xe9, 0x7a, - 0x85, 0xce, 0x96, 0xe8, 0xa4, 0xf2, 0x14, 0xcc, 0xda, 0xfb, 0xb7, 0x75, 0x16, 0x59, 0x5a, 0xd7, - 0xc1, 0x2d, 0xe3, 0xc5, 0xfc, 0xe3, 0xd4, 0x4d, 0x33, 0x64, 0x82, 0xc6, 0x55, 0x9d, 0x8a, 0x95, - 0x27, 0x41, 0xd6, 0xdd, 0x03, 0xe4, 0x74, 0x69, 0x69, 0x77, 0xbb, 0x48, 0xc7, 0xf9, 0x27, 0x98, - 0x2a, 0x93, 0xef, 0x08, 0x31, 0x89, 0x6c, 0xf7, 0x9e, 0xd1, 0xf2, 0x04, 0xe3, 0x05, 0x16, 0xd9, - 0x54, 0xc6, 0xd9, 0x6e, 0xc2, 0x7c, 0xcf, 0x32, 0x2c, 0x0f, 0x3b, 0x5d, 0x07, 0x93, 0x26, 0x9e, - 0x9d, 0xc4, 0xfc, 0xbf, 0x4c, 0x1d, 0xd3, 0x86, 0xef, 0x05, 0xb5, 0x59, 0x00, 0xa8, 0x73, 0xbd, - 0x61, 0xe1, 0x72, 0x11, 0xb2, 0xc1, 0xb8, 0x50, 0xd2, 0xc0, 0x22, 0x43, 0x96, 0x48, 0x8d, 0x2d, - 0xd7, 0x36, 0x48, 0x75, 0xfc, 0x74, 0x45, 0x8e, 0x91, 0x2a, 0xbd, 0x55, 0xdd, 0xad, 0x68, 0xea, - 0xde, 0xce, 0x6e, 0x75, 0xbb, 0x22, 0xc7, 0x9f, 0x4a, 0xa7, 0xde, 0x9e, 0x92, 0xef, 0xdf, 0xbf, - 0x7f, 0x3f, 0xb6, 0xfc, 0x9d, 0x18, 0xe4, 0xc2, 0x9d, 0xb1, 0xf2, 0x53, 0x70, 0x46, 0xbc, 0xc6, - 0xba, 0xd8, 0xd3, 0xee, 0x19, 0x0e, 0x0d, 0xd5, 0x0e, 0x62, 0xbd, 0xa5, 0xef, 0xe5, 0x79, 0xae, - 0xd5, 0xc0, 0xde, 0x0b, 0x86, 0x43, 0x02, 0xb1, 0x83, 0x3c, 0x65, 0x0b, 0xce, 0x59, 0xb6, 0xe6, - 0x7a, 0xc8, 0x6a, 0x22, 0xa7, 0xa9, 0xf5, 0x2f, 0x10, 0x34, 0xa4, 0xeb, 0xd8, 0x75, 0x6d, 0x56, - 0x22, 0x7c, 0x96, 0x0f, 0x58, 0x76, 0x83, 0x2b, 0xf7, 0x73, 0x67, 0x89, 0xab, 0x0e, 0x44, 0x44, - 0xfc, 0xb8, 0x88, 0x78, 0x14, 0xd2, 0x1d, 0xd4, 0xd5, 0xb0, 0xe5, 0x39, 0x87, 0xb4, 0x9f, 0x4b, - 0xa9, 0xa9, 0x0e, 0xea, 0x56, 0xc8, 0xf8, 0xfd, 0xdb, 0x83, 0xa0, 0x1f, 0xff, 0x31, 0x0e, 0xd9, - 0x60, 0x4f, 0x47, 0x5a, 0x64, 0x9d, 0xe6, 0x6f, 0x89, 0x9e, 0xf0, 0x0f, 0x9e, 0xd8, 0x01, 0xae, - 0x96, 0x49, 0x62, 0x2f, 0x4e, 0xb2, 0x4e, 0x4b, 0x65, 0x48, 0x52, 0x54, 0xc9, 0x99, 0xc6, 0xac, - 0x7f, 0x4f, 0xa9, 0x7c, 0xa4, 0x6c, 0xc2, 0xe4, 0x6d, 0x97, 0x72, 0x4f, 0x52, 0xee, 0xc7, 0x4f, - 0xe6, 0xbe, 0xd1, 0xa0, 0xe4, 0xe9, 0x1b, 0x0d, 0x6d, 0xa7, 0xa6, 0x6e, 0x97, 0xb6, 0x54, 0x0e, - 0x57, 0xce, 0x42, 0xc2, 0x44, 0x2f, 0x1d, 0x86, 0x4b, 0x00, 0x15, 0x8d, 0xeb, 0xf8, 0xb3, 0x90, - 0xb8, 0x87, 0xd1, 0x9d, 0x70, 0xe2, 0xa5, 0xa2, 0xf7, 0x31, 0xf4, 0xd7, 0x20, 0x49, 0xfd, 0xa5, - 0x00, 0x70, 0x8f, 0xc9, 0x13, 0x4a, 0x0a, 0x12, 0xe5, 0x9a, 0x4a, 0xc2, 0x5f, 0x86, 0x2c, 0x93, - 0x6a, 0xf5, 0x6a, 0xa5, 0x5c, 0x91, 0x63, 0xcb, 0x97, 0x61, 0x92, 0x39, 0x81, 0x1c, 0x0d, 0xdf, - 0x0d, 0xf2, 0x04, 0x1f, 0x72, 0x0e, 0x49, 0xcc, 0xee, 0x6d, 0xaf, 0x57, 0x54, 0x39, 0x16, 0xdc, - 0x5e, 0x17, 0xb2, 0xc1, 0x76, 0xee, 0xc7, 0x13, 0x53, 0x7f, 0x2d, 0x41, 0x26, 0xd0, 0x9e, 0x91, - 0xc6, 0x00, 0x99, 0xa6, 0x7d, 0x4f, 0x43, 0xa6, 0x81, 0x5c, 0x1e, 0x14, 0x40, 0x45, 0x25, 0x22, - 0x19, 0x77, 0xd3, 0x7e, 0x2c, 0xc6, 0xbf, 0x26, 0x81, 0x3c, 0xd8, 0xda, 0x0d, 0x18, 0x28, 0xfd, - 0x44, 0x0d, 0x7c, 0x55, 0x82, 0x5c, 0xb8, 0x9f, 0x1b, 0x30, 0xef, 0xfc, 0x4f, 0xd4, 0xbc, 0x37, - 0x63, 0x30, 0x1d, 0xea, 0xe2, 0xc6, 0xb5, 0xee, 0x33, 0x30, 0x6b, 0x34, 0x71, 0xa7, 0x6b, 0x7b, - 0xd8, 0xd2, 0x0f, 0x35, 0x13, 0xdf, 0xc5, 0x66, 0x7e, 0x99, 0x26, 0x8a, 0xb5, 0x93, 0xfb, 0xc4, - 0xd5, 0x6a, 0x1f, 0xb7, 0x45, 0x60, 0xc5, 0xb9, 0xea, 0x46, 0x65, 0xbb, 0x5e, 0xdb, 0xad, 0xec, - 0x94, 0x6f, 0x69, 0x7b, 0x3b, 0x3f, 0xbd, 0x53, 0x7b, 0x61, 0x47, 0x95, 0x8d, 0x01, 0xb5, 0xf7, - 0xf1, 0xa8, 0xd7, 0x41, 0x1e, 0x34, 0x4a, 0x39, 0x03, 0xa3, 0xcc, 0x92, 0x27, 0x94, 0x39, 0x98, - 0xd9, 0xa9, 0x69, 0x8d, 0xea, 0x46, 0x45, 0xab, 0x5c, 0xbf, 0x5e, 0x29, 0xef, 0x36, 0xd8, 0x8b, - 0xb3, 0xaf, 0xbd, 0x1b, 0x3e, 0xd4, 0xaf, 0xc4, 0x61, 0x6e, 0x84, 0x25, 0x4a, 0x89, 0xf7, 0xec, - 0xec, 0x35, 0xe2, 0x23, 0xe3, 0x58, 0xbf, 0x4a, 0xba, 0x82, 0x3a, 0x72, 0x3c, 0xde, 0xe2, 0x3f, - 0x09, 0xc4, 0x4b, 0x96, 0x67, 0xb4, 0x0c, 0xec, 0xf0, 0x7b, 0x06, 0xd6, 0xc8, 0xcf, 0xf4, 0xe5, - 0xec, 0xaa, 0xe1, 0xc3, 0xa0, 0x74, 0x6d, 0xd7, 0xf0, 0x8c, 0xbb, 0x58, 0x33, 0x2c, 0x71, 0x29, - 0x41, 0x1a, 0xfb, 0x84, 0x2a, 0x8b, 0x99, 0xaa, 0xe5, 0xf9, 0xda, 0x16, 0x6e, 0xa3, 0x01, 0x6d, - 0x92, 0xc0, 0xe3, 0xaa, 0x2c, 0x66, 0x7c, 0xed, 0xf3, 0x90, 0x6d, 0xda, 0x3d, 0xd2, 0x26, 0x31, - 0x3d, 0x52, 0x2f, 0x24, 0x35, 0xc3, 0x64, 0xbe, 0x0a, 0xef, 0x63, 0xfb, 0xb7, 0x21, 0x59, 0x35, - 0xc3, 0x64, 0x4c, 0xe5, 0x02, 0xcc, 0xa0, 0x76, 0xdb, 0x21, 0xe4, 0x82, 0x88, 0x75, 0xe6, 0x39, - 0x5f, 0x4c, 0x15, 0x17, 0x6f, 0x40, 0x4a, 0xf8, 0x81, 0x94, 0x64, 0xe2, 0x09, 0xad, 0xcb, 0xee, - 0xa4, 0x62, 0x2b, 0x69, 0x35, 0x65, 0x89, 0xc9, 0xf3, 0x90, 0x35, 0x5c, 0xad, 0x7f, 0x39, 0x1a, - 0x5b, 0x8a, 0xad, 0xa4, 0xd4, 0x8c, 0xe1, 0xfa, 0xb7, 0x61, 0xcb, 0xaf, 0xc7, 0x20, 0x17, 0xbe, - 0xdc, 0x55, 0x36, 0x20, 0x65, 0xda, 0x3a, 0xa2, 0xa1, 0xc5, 0xbe, 0x2c, 0xac, 0x44, 0xdc, 0x07, - 0xaf, 0x6e, 0x71, 0x7d, 0xd5, 0x47, 0x2e, 0xfe, 0xbd, 0x04, 0x29, 0x21, 0x56, 0x16, 0x20, 0xd1, - 0x45, 0xde, 0x01, 0xa5, 0x4b, 0xae, 0xc7, 0x64, 0x49, 0xa5, 0x63, 0x22, 0x77, 0xbb, 0xc8, 0xa2, - 0x21, 0xc0, 0xe5, 0x64, 0x4c, 0xf6, 0xd5, 0xc4, 0xa8, 0x49, 0xdb, 0x7e, 0xbb, 0xd3, 0xc1, 0x96, - 0xe7, 0x8a, 0x7d, 0xe5, 0xf2, 0x32, 0x17, 0x2b, 0x4f, 0xc3, 0xac, 0xe7, 0x20, 0xc3, 0x0c, 0xe9, - 0x26, 0xa8, 0xae, 0x2c, 0x26, 0x7c, 0xe5, 0x22, 0x9c, 0x15, 0xbc, 0x4d, 0xec, 0x21, 0xfd, 0x00, - 0x37, 0xfb, 0xa0, 0x49, 0x7a, 0x73, 0x78, 0x86, 0x2b, 0x6c, 0xf0, 0x79, 0x81, 0x5d, 0xfe, 0x9e, - 0x04, 0xb3, 0xe2, 0x45, 0xa5, 0xe9, 0x3b, 0x6b, 0x1b, 0x00, 0x59, 0x96, 0xed, 0x05, 0xdd, 0x35, - 0x1c, 0xca, 0x43, 0xb8, 0xd5, 0x92, 0x0f, 0x52, 0x03, 0x04, 0x8b, 0x1d, 0x80, 0xfe, 0xcc, 0xb1, - 0x6e, 0x3b, 0x07, 0x19, 0x7e, 0x73, 0x4f, 0x3f, 0xff, 0xb0, 0x57, 0x5b, 0x60, 0x22, 0xf2, 0x46, - 0xa3, 0xcc, 0x43, 0x72, 0x1f, 0xb7, 0x0d, 0x8b, 0xdf, 0x27, 0xb2, 0x81, 0xb8, 0xa5, 0x4c, 0xf8, - 0xb7, 0x94, 0xeb, 0x37, 0x61, 0x4e, 0xb7, 0x3b, 0x83, 0xe6, 0xae, 0xcb, 0x03, 0xaf, 0xd7, 0xee, - 0x27, 0xa4, 0x4f, 0x43, 0xbf, 0xc5, 0xfc, 0x72, 0x2c, 0xbe, 0x59, 0x5f, 0xff, 0x6a, 0x6c, 0x71, - 0x93, 0xe1, 0xea, 0x62, 0x99, 0x2a, 0x6e, 0x99, 0x58, 0x27, 0xa6, 0xc3, 0x0f, 0x3e, 0x04, 0x1f, - 0x69, 0x1b, 0xde, 0x41, 0x6f, 0x7f, 0x55, 0xb7, 0x3b, 0x6b, 0x6d, 0xbb, 0x6d, 0xf7, 0x3f, 0x77, - 0x91, 0x11, 0x1d, 0xd0, 0x5f, 0xfc, 0x93, 0x57, 0xda, 0x97, 0x2e, 0x46, 0x7e, 0x1f, 0x2b, 0xee, - 0xc0, 0x1c, 0x57, 0xd6, 0xe8, 0x9d, 0x3b, 0x7b, 0x35, 0x50, 0x4e, 0xbc, 0x77, 0xc9, 0x7f, 0xe3, - 0x2d, 0x5a, 0xab, 0xd5, 0x59, 0x0e, 0x25, 0x73, 0xec, 0x05, 0xa2, 0xa8, 0xc2, 0x23, 0x21, 0x3e, - 0x76, 0x2e, 0xb1, 0x13, 0xc1, 0xf8, 0x1d, 0xce, 0x38, 0x17, 0x60, 0x6c, 0x70, 0x68, 0xb1, 0x0c, - 0xd3, 0xa7, 0xe1, 0xfa, 0x5b, 0xce, 0x95, 0xc5, 0x41, 0x92, 0x4d, 0x98, 0xa1, 0x24, 0x7a, 0xcf, - 0xf5, 0xec, 0x0e, 0x4d, 0x7a, 0x27, 0xd3, 0xfc, 0xdd, 0x5b, 0xec, 0xa0, 0xe4, 0x08, 0xac, 0xec, - 0xa3, 0x8a, 0x45, 0xa0, 0x9f, 0x19, 0x9a, 0x58, 0x37, 0x23, 0x18, 0xde, 0xe0, 0x86, 0xf8, 0xfa, - 0xc5, 0x4f, 0xc1, 0x3c, 0xf9, 0x4d, 0x73, 0x52, 0xd0, 0x92, 0xe8, 0x5b, 0xa6, 0xfc, 0xf7, 0x5e, - 0x66, 0x67, 0x71, 0xce, 0x27, 0x08, 0xd8, 0x14, 0xd8, 0xc5, 0x36, 0xf6, 0x3c, 0xec, 0xb8, 0x1a, - 0x32, 0x47, 0x99, 0x17, 0x78, 0x4d, 0xcf, 0x7f, 0xf1, 0x9d, 0xf0, 0x2e, 0x6e, 0x32, 0x64, 0xc9, - 0x34, 0x8b, 0x7b, 0x70, 0x66, 0x44, 0x54, 0x8c, 0xc1, 0xf9, 0x0a, 0xe7, 0x9c, 0x1f, 0x8a, 0x0c, - 0x42, 0x5b, 0x07, 0x21, 0xf7, 0xf7, 0x72, 0x0c, 0xce, 0xdf, 0xe6, 0x9c, 0x0a, 0xc7, 0x8a, 0x2d, - 0x25, 0x8c, 0x37, 0x60, 0xf6, 0x2e, 0x76, 0xf6, 0x6d, 0x97, 0x5f, 0x8d, 0x8c, 0x41, 0xf7, 0x2a, - 0xa7, 0x9b, 0xe1, 0x40, 0x7a, 0x57, 0x42, 0xb8, 0x9e, 0x83, 0x54, 0x0b, 0xe9, 0x78, 0x0c, 0x8a, - 0x2f, 0x71, 0x8a, 0x29, 0xa2, 0x4f, 0xa0, 0x25, 0xc8, 0xb6, 0x6d, 0x5e, 0x96, 0xa2, 0xe1, 0xaf, - 0x71, 0x78, 0x46, 0x60, 0x38, 0x45, 0xd7, 0xee, 0xf6, 0x4c, 0x52, 0xb3, 0xa2, 0x29, 0x7e, 0x47, - 0x50, 0x08, 0x0c, 0xa7, 0x38, 0x85, 0x5b, 0x7f, 0x57, 0x50, 0xb8, 0x01, 0x7f, 0x3e, 0x0f, 0x19, - 0xdb, 0x32, 0x0f, 0x6d, 0x6b, 0x1c, 0x23, 0x7e, 0x8f, 0x33, 0x00, 0x87, 0x10, 0x82, 0x6b, 0x90, - 0x1e, 0x77, 0x23, 0x7e, 0xff, 0x1d, 0x71, 0x3c, 0xc4, 0x0e, 0x6c, 0xc2, 0x8c, 0x48, 0x50, 0x86, - 0x6d, 0x8d, 0x41, 0xf1, 0x07, 0x9c, 0x22, 0x17, 0x80, 0xf1, 0x65, 0x78, 0xd8, 0xf5, 0xda, 0x78, - 0x1c, 0x92, 0xd7, 0xc5, 0x32, 0x38, 0x84, 0xbb, 0x72, 0x1f, 0x5b, 0xfa, 0xc1, 0x78, 0x0c, 0x5f, - 0x11, 0xae, 0x14, 0x18, 0x42, 0x51, 0x86, 0xe9, 0x0e, 0x72, 0xdc, 0x03, 0x64, 0x8e, 0xb5, 0x1d, - 0x7f, 0xc8, 0x39, 0xb2, 0x3e, 0x88, 0x7b, 0xa4, 0x67, 0x9d, 0x86, 0xe6, 0xab, 0xc2, 0x23, 0x01, - 0x18, 0x3f, 0x7a, 0xae, 0x47, 0x2f, 0xa0, 0x4e, 0xc3, 0xf6, 0x35, 0x71, 0xf4, 0x18, 0x76, 0x3b, - 0xc8, 0x78, 0x0d, 0xd2, 0xae, 0xf1, 0xd2, 0x58, 0x34, 0x7f, 0x24, 0x76, 0x9a, 0x02, 0x08, 0xf8, - 0x16, 0x9c, 0x1d, 0x59, 0x26, 0xc6, 0x20, 0xfb, 0x63, 0x4e, 0xb6, 0x30, 0xa2, 0x54, 0xf0, 0x94, - 0x70, 0x5a, 0xca, 0x3f, 0x11, 0x29, 0x01, 0x0f, 0x70, 0xd5, 0xc9, 0x8b, 0x82, 0x8b, 0x5a, 0xa7, - 0xf3, 0xda, 0x9f, 0x0a, 0xaf, 0x31, 0x6c, 0xc8, 0x6b, 0xbb, 0xb0, 0xc0, 0x19, 0x4f, 0xb7, 0xaf, - 0x5f, 0x17, 0x89, 0x95, 0xa1, 0xf7, 0xc2, 0xbb, 0xfb, 0x33, 0xb0, 0xe8, 0xbb, 0x53, 0x74, 0xa4, - 0xae, 0xd6, 0x41, 0xdd, 0x31, 0x98, 0xbf, 0xc1, 0x99, 0x45, 0xc6, 0xf7, 0x5b, 0x5a, 0x77, 0x1b, - 0x75, 0x09, 0xf9, 0x4d, 0xc8, 0x0b, 0xf2, 0x9e, 0xe5, 0x60, 0xdd, 0x6e, 0x5b, 0xc6, 0x4b, 0xb8, - 0x39, 0x06, 0xf5, 0x9f, 0x0d, 0x6c, 0xd5, 0x5e, 0x00, 0x4e, 0x98, 0xab, 0x20, 0xfb, 0xbd, 0x8a, - 0x66, 0x74, 0xba, 0xb6, 0xe3, 0x45, 0x30, 0xfe, 0xb9, 0xd8, 0x29, 0x1f, 0x57, 0xa5, 0xb0, 0x62, - 0x05, 0x72, 0x74, 0x38, 0x6e, 0x48, 0xfe, 0x05, 0x27, 0x9a, 0xee, 0xa3, 0x78, 0xe2, 0xd0, 0xed, - 0x4e, 0x17, 0x39, 0xe3, 0xe4, 0xbf, 0xbf, 0x14, 0x89, 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x0e, 0xbb, - 0x98, 0x54, 0xfb, 0x31, 0x18, 0xbe, 0x29, 0x12, 0x87, 0xc0, 0x70, 0x0a, 0xd1, 0x30, 0x8c, 0x41, - 0xf1, 0x57, 0x82, 0x42, 0x60, 0x08, 0xc5, 0x27, 0xfb, 0x85, 0xd6, 0xc1, 0x6d, 0xc3, 0xf5, 0x1c, - 0xd6, 0x07, 0x9f, 0x4c, 0xf5, 0xad, 0x77, 0xc2, 0x4d, 0x98, 0x1a, 0x80, 0x16, 0x6f, 0xc0, 0xcc, - 0x40, 0x8b, 0xa1, 0x44, 0xfd, 0xcf, 0x42, 0xfe, 0x67, 0xdf, 0xe3, 0xc9, 0x28, 0xdc, 0x61, 0x14, - 0xb7, 0xc8, 0xbe, 0x87, 0xfb, 0x80, 0x68, 0xb2, 0x97, 0xdf, 0xf3, 0xb7, 0x3e, 0xd4, 0x06, 0x14, - 0xaf, 0xc3, 0x74, 0xa8, 0x07, 0x88, 0xa6, 0xfa, 0x2c, 0xa7, 0xca, 0x06, 0x5b, 0x80, 0xe2, 0x65, - 0x48, 0x90, 0x7a, 0x1e, 0x0d, 0xff, 0x39, 0x0e, 0xa7, 0xea, 0xc5, 0x8f, 0x41, 0x4a, 0xd4, 0xf1, - 0x68, 0xe8, 0xcf, 0x73, 0xa8, 0x0f, 0x21, 0x70, 0x51, 0xc3, 0xa3, 0xe1, 0xbf, 0x20, 0xe0, 0x02, - 0x42, 0xe0, 0xe3, 0xbb, 0xf0, 0xdb, 0xbf, 0x94, 0xe0, 0x79, 0x58, 0xf8, 0xee, 0x1a, 0x4c, 0xf1, - 0xe2, 0x1d, 0x8d, 0xfe, 0x1c, 0x7f, 0xb8, 0x40, 0x14, 0x9f, 0x85, 0xe4, 0x98, 0x0e, 0xff, 0x65, - 0x0e, 0x65, 0xfa, 0xc5, 0x32, 0x64, 0x02, 0x05, 0x3b, 0x1a, 0xfe, 0x79, 0x0e, 0x0f, 0xa2, 0x88, - 0xe9, 0xbc, 0x60, 0x47, 0x13, 0xfc, 0x8a, 0x30, 0x9d, 0x23, 0x88, 0xdb, 0x44, 0xad, 0x8e, 0x46, - 0xff, 0xaa, 0xf0, 0xba, 0x80, 0x14, 0x9f, 0x87, 0xb4, 0x9f, 0x7f, 0xa3, 0xf1, 0xbf, 0xc6, 0xf1, - 0x7d, 0x0c, 0xf1, 0x40, 0x20, 0xff, 0x47, 0x53, 0xfc, 0xba, 0xf0, 0x40, 0x00, 0x45, 0x8e, 0xd1, - 0x60, 0x4d, 0x8f, 0x66, 0xfa, 0x0d, 0x71, 0x8c, 0x06, 0x4a, 0x3a, 0xd9, 0x4d, 0x9a, 0x06, 0xa3, - 0x29, 0x7e, 0x53, 0xec, 0x26, 0xd5, 0x27, 0x66, 0x0c, 0x16, 0xc9, 0x68, 0x8e, 0xdf, 0x12, 0x66, - 0x0c, 0xd4, 0xc8, 0x62, 0x1d, 0x94, 0xe1, 0x02, 0x19, 0xcd, 0xf7, 0x05, 0xce, 0x37, 0x3b, 0x54, - 0x1f, 0x8b, 0x2f, 0xc0, 0xc2, 0xe8, 0xe2, 0x18, 0xcd, 0xfa, 0xc5, 0xf7, 0x06, 0x5e, 0x67, 0x82, - 0xb5, 0xb1, 0xb8, 0xdb, 0xcf, 0xb2, 0xc1, 0xc2, 0x18, 0x4d, 0xfb, 0xca, 0x7b, 0xe1, 0x44, 0x1b, - 0xac, 0x8b, 0xc5, 0x12, 0x40, 0xbf, 0x26, 0x45, 0x73, 0xbd, 0xca, 0xb9, 0x02, 0x20, 0x72, 0x34, - 0x78, 0x49, 0x8a, 0xc6, 0x7f, 0x49, 0x1c, 0x0d, 0x8e, 0x20, 0x47, 0x43, 0x54, 0xa3, 0x68, 0xf4, - 0x6b, 0xe2, 0x68, 0x08, 0x48, 0xf1, 0x1a, 0xa4, 0xac, 0x9e, 0x69, 0x92, 0xd8, 0x52, 0x4e, 0xfe, - 0x37, 0xa2, 0xfc, 0xbf, 0x3e, 0xe4, 0x60, 0x01, 0x28, 0x5e, 0x86, 0x24, 0xee, 0xec, 0xe3, 0x66, - 0x14, 0xf2, 0xdf, 0x1e, 0x8a, 0x7c, 0x42, 0xb4, 0x8b, 0xcf, 0x03, 0xb0, 0x97, 0x69, 0xfa, 0x95, - 0x28, 0x02, 0xfb, 0xef, 0x0f, 0xf9, 0x7f, 0x28, 0xf4, 0x21, 0x7d, 0x02, 0xf6, 0xff, 0x0e, 0x27, - 0x13, 0xbc, 0x13, 0x26, 0xa0, 0x2f, 0xe0, 0xcf, 0xc1, 0xd4, 0x6d, 0xd7, 0xb6, 0x3c, 0xd4, 0x8e, - 0x42, 0xff, 0x07, 0x47, 0x0b, 0x7d, 0xe2, 0xb0, 0x8e, 0xed, 0x60, 0x0f, 0xb5, 0xdd, 0x28, 0xec, - 0x7f, 0x72, 0xac, 0x0f, 0x20, 0x60, 0x1d, 0xb9, 0xde, 0x38, 0xeb, 0xfe, 0x2f, 0x01, 0x16, 0x00, - 0x62, 0x34, 0xf9, 0x7d, 0x07, 0x1f, 0x46, 0x61, 0xdf, 0x15, 0x46, 0x73, 0xfd, 0xe2, 0xc7, 0x20, - 0x4d, 0x7e, 0xb2, 0xff, 0xda, 0x89, 0x00, 0xff, 0x37, 0x07, 0xf7, 0x11, 0xe4, 0xc9, 0xae, 0xd7, - 0xf4, 0x8c, 0x68, 0x67, 0xff, 0x0f, 0xdf, 0x69, 0xa1, 0x5f, 0x2c, 0x41, 0xc6, 0xf5, 0x9a, 0xcd, - 0x1e, 0xef, 0x68, 0x22, 0xe0, 0x3f, 0x78, 0xe8, 0xbf, 0xe4, 0xfa, 0x98, 0xf5, 0xf3, 0xa3, 0x2f, - 0xeb, 0x60, 0xd3, 0xde, 0xb4, 0xd9, 0x35, 0x1d, 0x7c, 0x3e, 0x09, 0x4b, 0xba, 0xdd, 0xd9, 0xb7, - 0xdd, 0x35, 0x3f, 0x91, 0xac, 0xf9, 0xf6, 0x8b, 0x8b, 0x36, 0x5f, 0xb0, 0x78, 0xba, 0x2b, 0xba, - 0xe5, 0xbf, 0x89, 0x43, 0xaa, 0x8c, 0x5c, 0x0f, 0xdd, 0x43, 0x87, 0x4a, 0x17, 0xe6, 0xc8, 0xef, - 0x6d, 0xd4, 0xa5, 0x17, 0x3e, 0xfc, 0x84, 0xf1, 0x2b, 0xd0, 0x0f, 0xaf, 0xf6, 0x9f, 0x2a, 0x10, - 0xab, 0x23, 0xd4, 0xe9, 0xa7, 0xe3, 0x75, 0xf9, 0x8d, 0x7f, 0x3a, 0x37, 0xf1, 0x8b, 0xff, 0x7c, - 0x2e, 0xb5, 0x7d, 0xf8, 0x82, 0x61, 0xba, 0xb6, 0xa5, 0x8e, 0xa2, 0x56, 0x3e, 0x2b, 0xc1, 0xa3, - 0x23, 0xe4, 0x3b, 0xfc, 0x18, 0xf2, 0x0f, 0x09, 0x97, 0xc6, 0x7c, 0xb4, 0x80, 0x31, 0x13, 0xb2, - 0xa1, 0xc7, 0x9f, 0xf4, 0x98, 0xc5, 0x5b, 0x90, 0x3f, 0x6e, 0x25, 0x8a, 0x0c, 0xf1, 0x3b, 0xf8, - 0x90, 0xff, 0x73, 0x28, 0xf9, 0xa9, 0x5c, 0xe8, 0xff, 0x73, 0x99, 0xb4, 0x92, 0xb9, 0x38, 0x1b, - 0xb0, 0x8e, 0x3f, 0x8c, 0xcd, 0x17, 0x63, 0x57, 0xa5, 0x45, 0x04, 0x4b, 0x51, 0x96, 0xfe, 0x3f, - 0x1f, 0xb1, 0x5c, 0x80, 0x49, 0x26, 0x54, 0xe6, 0x21, 0x59, 0xb5, 0xbc, 0x2b, 0x97, 0x28, 0x55, - 0x5c, 0x65, 0x83, 0xf5, 0xad, 0x37, 0x1e, 0x14, 0x26, 0xbe, 0xfb, 0xa0, 0x30, 0xf1, 0x0f, 0x0f, - 0x0a, 0x13, 0x6f, 0x3e, 0x28, 0x48, 0x6f, 0x3f, 0x28, 0x48, 0xef, 0x3e, 0x28, 0x48, 0x3f, 0x7c, - 0x50, 0x90, 0xee, 0x1f, 0x15, 0xa4, 0xaf, 0x1c, 0x15, 0xa4, 0xaf, 0x1f, 0x15, 0xa4, 0x6f, 0x1d, - 0x15, 0xa4, 0x6f, 0x1f, 0x15, 0xa4, 0x37, 0x8e, 0x0a, 0xd2, 0x77, 0x8f, 0x0a, 0x13, 0x6f, 0x1e, - 0x15, 0xa4, 0xb7, 0x8f, 0x0a, 0x13, 0xef, 0x1e, 0x15, 0xa4, 0x1f, 0x1e, 0x15, 0x26, 0xee, 0x7f, - 0xbf, 0x30, 0xf1, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbc, 0xdc, 0x4a, 0xcd, 0xed, 0x30, 0x00, - 0x00, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x10, 0x1d, 0x43, 0x14, 0x6d, + 0x47, 0xb4, 0x9d, 0x90, 0x19, 0x59, 0x92, 0x25, 0xa8, 0x89, 0x0b, 0x82, 0x10, 0x03, 0x95, 0x7f, + 0x59, 0x90, 0xb1, 0xe5, 0x4c, 0x67, 0x67, 0xb9, 0xb8, 0x00, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, + 0x92, 0xa9, 0xe9, 0x83, 0x3a, 0x4e, 0xdb, 0x49, 0x3b, 0x4d, 0x7f, 0x67, 0x92, 0xb8, 0x8e, 0xfb, + 0x33, 0xd3, 0x3a, 0x4d, 0xff, 0x92, 0xa6, 0x4d, 0xd3, 0x3e, 0xa5, 0x0f, 0x69, 0xfd, 0xd4, 0x49, + 0xde, 0xfa, 0xd0, 0x69, 0x2d, 0xc6, 0x33, 0x75, 0x5b, 0xb7, 0x71, 0x5b, 0x3f, 0x78, 0xc6, 0x2f, + 0x9d, 0xfb, 0xb7, 0xd8, 0x05, 0x40, 0x2e, 0x98, 0x8e, 0x9d, 0x27, 0x62, 0xcf, 0x3d, 0xdf, 0xb7, + 0xe7, 0x9e, 0x7b, 0xee, 0x39, 0xe7, 0xde, 0x25, 0xfc, 0xf0, 0x0a, 0xcc, 0xb7, 0x6d, 0xbb, 0x6d, + 0xe2, 0x65, 0xc7, 0xb5, 0x7d, 0x7b, 0xaf, 0xdb, 0x5a, 0x6e, 0x62, 0x4f, 0x77, 0x0d, 0xc7, 0xb7, + 0xdd, 0x25, 0x2a, 0x43, 0x53, 0x4c, 0x63, 0x49, 0x68, 0x2c, 0x6c, 0xc0, 0xf4, 0x35, 0xc3, 0xc4, + 0xab, 0x81, 0x62, 0x03, 0xfb, 0xe8, 0x32, 0xa4, 0x5a, 0x86, 0x89, 0x8b, 0xd2, 0x7c, 0x72, 0x31, + 0x77, 0xfe, 0xd1, 0xa5, 0x3e, 0xd0, 0x52, 0x14, 0xb1, 0x4d, 0xc4, 0x0a, 0x45, 0x2c, 0xbc, 0x91, + 0x82, 0x99, 0x21, 0xa3, 0x08, 0x41, 0xca, 0xd2, 0x3a, 0x84, 0x51, 0x5a, 0xcc, 0x2a, 0xf4, 0x37, + 0x2a, 0xc2, 0x84, 0xa3, 0xe9, 0xb7, 0xb4, 0x36, 0x2e, 0x26, 0xa8, 0x58, 0x3c, 0xa2, 0x12, 0x40, + 0x13, 0x3b, 0xd8, 0x6a, 0x62, 0x4b, 0x3f, 0x28, 0x26, 0xe7, 0x93, 0x8b, 0x59, 0x25, 0x24, 0x41, + 0x4f, 0xc2, 0xb4, 0xd3, 0xdd, 0x33, 0x0d, 0x5d, 0x0d, 0xa9, 0xc1, 0x7c, 0x72, 0x31, 0xad, 0xc8, + 0x6c, 0x60, 0xb5, 0xa7, 0x7c, 0x0e, 0xa6, 0xee, 0x60, 0xed, 0x56, 0x58, 0x35, 0x47, 0x55, 0x0b, + 0x44, 0x1c, 0x52, 0xac, 0x42, 0xbe, 0x83, 0x3d, 0x4f, 0x6b, 0x63, 0xd5, 0x3f, 0x70, 0x70, 0x31, + 0x45, 0x67, 0x3f, 0x3f, 0x30, 0xfb, 0xfe, 0x99, 0xe7, 0x38, 0x6a, 0xe7, 0xc0, 0xc1, 0xa8, 0x02, + 0x59, 0x6c, 0x75, 0x3b, 0x8c, 0x21, 0x7d, 0x84, 0xff, 0x6a, 0x56, 0xb7, 0xd3, 0xcf, 0x92, 0x21, + 0x30, 0x4e, 0x31, 0xe1, 0x61, 0xf7, 0xb6, 0xa1, 0xe3, 0xe2, 0x38, 0x25, 0x38, 0x37, 0x40, 0xd0, + 0x60, 0xe3, 0xfd, 0x1c, 0x02, 0x87, 0xaa, 0x90, 0xc5, 0x2f, 0xf8, 0xd8, 0xf2, 0x0c, 0xdb, 0x2a, + 0x4e, 0x50, 0x92, 0xc7, 0x86, 0xac, 0x22, 0x36, 0x9b, 0xfd, 0x14, 0x3d, 0x1c, 0xba, 0x04, 0x13, + 0xb6, 0xe3, 0x1b, 0xb6, 0xe5, 0x15, 0x33, 0xf3, 0xd2, 0x62, 0xee, 0xfc, 0x87, 0x86, 0x06, 0xc2, + 0x16, 0xd3, 0x51, 0x84, 0x32, 0xaa, 0x83, 0xec, 0xd9, 0x5d, 0x57, 0xc7, 0xaa, 0x6e, 0x37, 0xb1, + 0x6a, 0x58, 0x2d, 0xbb, 0x98, 0xa5, 0x04, 0x67, 0x06, 0x27, 0x42, 0x15, 0xab, 0x76, 0x13, 0xd7, + 0xad, 0x96, 0xad, 0x14, 0xbc, 0xc8, 0x33, 0x3a, 0x05, 0xe3, 0xde, 0x81, 0xe5, 0x6b, 0x2f, 0x14, + 0xf3, 0x34, 0x42, 0xf8, 0xd3, 0xc2, 0x5f, 0x8f, 0xc3, 0xd4, 0x28, 0x21, 0x76, 0x15, 0xd2, 0x2d, + 0x32, 0xcb, 0x62, 0xe2, 0x24, 0x3e, 0x60, 0x98, 0xa8, 0x13, 0xc7, 0x7f, 0x44, 0x27, 0x56, 0x20, + 0x67, 0x61, 0xcf, 0xc7, 0x4d, 0x16, 0x11, 0xc9, 0x11, 0x63, 0x0a, 0x18, 0x68, 0x30, 0xa4, 0x52, + 0x3f, 0x52, 0x48, 0x3d, 0x07, 0x53, 0x81, 0x49, 0xaa, 0xab, 0x59, 0x6d, 0x11, 0x9b, 0xcb, 0x71, + 0x96, 0x2c, 0xd5, 0x04, 0x4e, 0x21, 0x30, 0xa5, 0x80, 0x23, 0xcf, 0x68, 0x15, 0xc0, 0xb6, 0xb0, + 0xdd, 0x52, 0x9b, 0x58, 0x37, 0x8b, 0x99, 0x23, 0xbc, 0xb4, 0x45, 0x54, 0x06, 0xbc, 0x64, 0x33, + 0xa9, 0x6e, 0xa2, 0x2b, 0xbd, 0x50, 0x9b, 0x38, 0x22, 0x52, 0x36, 0xd8, 0x26, 0x1b, 0x88, 0xb6, + 0x5d, 0x28, 0xb8, 0x98, 0xc4, 0x3d, 0x6e, 0xf2, 0x99, 0x65, 0xa9, 0x11, 0x4b, 0xb1, 0x33, 0x53, + 0x38, 0x8c, 0x4d, 0x6c, 0xd2, 0x0d, 0x3f, 0xa2, 0x47, 0x20, 0x10, 0xa8, 0x34, 0xac, 0x80, 0x66, + 0xa1, 0xbc, 0x10, 0x6e, 0x6a, 0x1d, 0x3c, 0x77, 0x17, 0x0a, 0x51, 0xf7, 0xa0, 0x59, 0x48, 0x7b, + 0xbe, 0xe6, 0xfa, 0x34, 0x0a, 0xd3, 0x0a, 0x7b, 0x40, 0x32, 0x24, 0xb1, 0xd5, 0xa4, 0x59, 0x2e, + 0xad, 0x90, 0x9f, 0xe8, 0x27, 0x7b, 0x13, 0x4e, 0xd2, 0x09, 0x7f, 0x78, 0x70, 0x45, 0x23, 0xcc, + 0xfd, 0xf3, 0x9e, 0x7b, 0x1a, 0x26, 0x23, 0x13, 0x18, 0xf5, 0xd5, 0x0b, 0x3f, 0x03, 0x0f, 0x0c, + 0xa5, 0x46, 0xcf, 0xc1, 0x6c, 0xd7, 0x32, 0x2c, 0x1f, 0xbb, 0x8e, 0x8b, 0x49, 0xc4, 0xb2, 0x57, + 0x15, 0xff, 0x75, 0xe2, 0x88, 0x98, 0xdb, 0x0d, 0x6b, 0x33, 0x16, 0x65, 0xa6, 0x3b, 0x28, 0x7c, + 0x22, 0x9b, 0x79, 0x73, 0x42, 0xbe, 0x77, 0xef, 0xde, 0xbd, 0xc4, 0xc2, 0x97, 0xc6, 0x61, 0x76, + 0xd8, 0x9e, 0x19, 0xba, 0x7d, 0x4f, 0xc1, 0xb8, 0xd5, 0xed, 0xec, 0x61, 0x97, 0x3a, 0x29, 0xad, + 0xf0, 0x27, 0x54, 0x81, 0xb4, 0xa9, 0xed, 0x61, 0xb3, 0x98, 0x9a, 0x97, 0x16, 0x0b, 0xe7, 0x9f, + 0x1c, 0x69, 0x57, 0x2e, 0xad, 0x13, 0x88, 0xc2, 0x90, 0xe8, 0x13, 0x90, 0xe2, 0x29, 0x9a, 0x30, + 0x3c, 0x31, 0x1a, 0x03, 0xd9, 0x4b, 0x0a, 0xc5, 0xa1, 0x87, 0x20, 0x4b, 0xfe, 0xb2, 0xd8, 0x18, + 0xa7, 0x36, 0x67, 0x88, 0x80, 0xc4, 0x05, 0x9a, 0x83, 0x0c, 0xdd, 0x26, 0x4d, 0x2c, 0x4a, 0x5b, + 0xf0, 0x4c, 0x02, 0xab, 0x89, 0x5b, 0x5a, 0xd7, 0xf4, 0xd5, 0xdb, 0x9a, 0xd9, 0xc5, 0x34, 0xe0, + 0xb3, 0x4a, 0x9e, 0x0b, 0x3f, 0x4d, 0x64, 0xe8, 0x0c, 0xe4, 0xd8, 0xae, 0x32, 0xac, 0x26, 0x7e, + 0x81, 0x66, 0xcf, 0xb4, 0xc2, 0x36, 0x5a, 0x9d, 0x48, 0xc8, 0xeb, 0x6f, 0x7a, 0xb6, 0x25, 0x42, + 0x93, 0xbe, 0x82, 0x08, 0xe8, 0xeb, 0x9f, 0xee, 0x4f, 0xdc, 0x0f, 0x0f, 0x9f, 0x5e, 0x7f, 0x4c, + 0x2d, 0x7c, 0x2b, 0x01, 0x29, 0x9a, 0x2f, 0xa6, 0x20, 0xb7, 0x73, 0x63, 0xbb, 0xa6, 0xae, 0x6e, + 0xed, 0xae, 0xac, 0xd7, 0x64, 0x09, 0x15, 0x00, 0xa8, 0xe0, 0xda, 0xfa, 0x56, 0x65, 0x47, 0x4e, + 0x04, 0xcf, 0xf5, 0xcd, 0x9d, 0x4b, 0x17, 0xe4, 0x64, 0x00, 0xd8, 0x65, 0x82, 0x54, 0x58, 0xe1, + 0xa9, 0xf3, 0x72, 0x1a, 0xc9, 0x90, 0x67, 0x04, 0xf5, 0xe7, 0x6a, 0xab, 0x97, 0x2e, 0xc8, 0xe3, + 0x51, 0xc9, 0x53, 0xe7, 0xe5, 0x09, 0x34, 0x09, 0x59, 0x2a, 0x59, 0xd9, 0xda, 0x5a, 0x97, 0x33, + 0x01, 0x67, 0x63, 0x47, 0xa9, 0x6f, 0xae, 0xc9, 0xd9, 0x80, 0x73, 0x4d, 0xd9, 0xda, 0xdd, 0x96, + 0x21, 0x60, 0xd8, 0xa8, 0x35, 0x1a, 0x95, 0xb5, 0x9a, 0x9c, 0x0b, 0x34, 0x56, 0x6e, 0xec, 0xd4, + 0x1a, 0x72, 0x3e, 0x62, 0xd6, 0x53, 0xe7, 0xe5, 0xc9, 0xe0, 0x15, 0xb5, 0xcd, 0xdd, 0x0d, 0xb9, + 0x80, 0xa6, 0x61, 0x92, 0xbd, 0x42, 0x18, 0x31, 0xd5, 0x27, 0xba, 0x74, 0x41, 0x96, 0x7b, 0x86, + 0x30, 0x96, 0xe9, 0x88, 0xe0, 0xd2, 0x05, 0x19, 0x2d, 0x54, 0x21, 0x4d, 0xa3, 0x0b, 0x21, 0x28, + 0xac, 0x57, 0x56, 0x6a, 0xeb, 0xea, 0xd6, 0xf6, 0x4e, 0x7d, 0x6b, 0xb3, 0xb2, 0x2e, 0x4b, 0x3d, + 0x99, 0x52, 0xfb, 0xd4, 0x6e, 0x5d, 0xa9, 0xad, 0xca, 0x89, 0xb0, 0x6c, 0xbb, 0x56, 0xd9, 0xa9, + 0xad, 0xca, 0xc9, 0x05, 0x1d, 0x66, 0x87, 0xe5, 0xc9, 0xa1, 0x3b, 0x23, 0xb4, 0xc4, 0x89, 0x23, + 0x96, 0x98, 0x72, 0x0d, 0x2c, 0xf1, 0x0f, 0x12, 0x30, 0x33, 0xa4, 0x56, 0x0c, 0x7d, 0xc9, 0x33, + 0x90, 0x66, 0x21, 0xca, 0xaa, 0xe7, 0xe3, 0x43, 0x8b, 0x0e, 0x0d, 0xd8, 0x81, 0x0a, 0x4a, 0x71, + 0xe1, 0x0e, 0x22, 0x79, 0x44, 0x07, 0x41, 0x28, 0x06, 0x72, 0xfa, 0x4f, 0x0f, 0xe4, 0x74, 0x56, + 0xf6, 0x2e, 0x8d, 0x52, 0xf6, 0xa8, 0xec, 0x64, 0xb9, 0x3d, 0x3d, 0x24, 0xb7, 0x5f, 0x85, 0xe9, + 0x01, 0xa2, 0x91, 0x73, 0xec, 0x8b, 0x12, 0x14, 0x8f, 0x72, 0x4e, 0x4c, 0xa6, 0x4b, 0x44, 0x32, + 0xdd, 0xd5, 0x7e, 0x0f, 0x9e, 0x3d, 0x7a, 0x11, 0x06, 0xd6, 0xfa, 0x55, 0x09, 0x4e, 0x0d, 0xef, + 0x14, 0x87, 0xda, 0xf0, 0x09, 0x18, 0xef, 0x60, 0x7f, 0xdf, 0x16, 0xdd, 0xd2, 0x87, 0x87, 0xd4, + 0x60, 0x32, 0xdc, 0xbf, 0xd8, 0x1c, 0x15, 0x2e, 0xe2, 0xc9, 0xa3, 0xda, 0x3d, 0x66, 0xcd, 0x80, + 0xa5, 0x9f, 0x4f, 0xc0, 0x03, 0x43, 0xc9, 0x87, 0x1a, 0xfa, 0x30, 0x80, 0x61, 0x39, 0x5d, 0x9f, + 0x75, 0x44, 0x2c, 0xc1, 0x66, 0xa9, 0x84, 0x26, 0x2f, 0x92, 0x3c, 0xbb, 0x7e, 0x30, 0x9e, 0xa4, + 0xe3, 0xc0, 0x44, 0x54, 0xe1, 0x72, 0xcf, 0xd0, 0x14, 0x35, 0xb4, 0x74, 0xc4, 0x4c, 0x07, 0x02, + 0xf3, 0x63, 0x20, 0xeb, 0xa6, 0x81, 0x2d, 0x5f, 0xf5, 0x7c, 0x17, 0x6b, 0x1d, 0xc3, 0x6a, 0xd3, + 0x0a, 0x92, 0x29, 0xa7, 0x5b, 0x9a, 0xe9, 0x61, 0x65, 0x8a, 0x0d, 0x37, 0xc4, 0x28, 0x41, 0xd0, + 0x00, 0x72, 0x43, 0x88, 0xf1, 0x08, 0x82, 0x0d, 0x07, 0x88, 0x85, 0x6f, 0x66, 0x20, 0x17, 0xea, + 0xab, 0xd1, 0x59, 0xc8, 0xdf, 0xd4, 0x6e, 0x6b, 0xaa, 0x38, 0x2b, 0x31, 0x4f, 0xe4, 0x88, 0x6c, + 0x9b, 0x9f, 0x97, 0x3e, 0x06, 0xb3, 0x54, 0xc5, 0xee, 0xfa, 0xd8, 0x55, 0x75, 0x53, 0xf3, 0x3c, + 0xea, 0xb4, 0x0c, 0x55, 0x45, 0x64, 0x6c, 0x8b, 0x0c, 0x55, 0xc5, 0x08, 0xba, 0x08, 0x33, 0x14, + 0xd1, 0xe9, 0x9a, 0xbe, 0xe1, 0x98, 0x58, 0x25, 0xa7, 0x37, 0x8f, 0x56, 0x92, 0xc0, 0xb2, 0x69, + 0xa2, 0xb1, 0xc1, 0x15, 0x88, 0x45, 0x1e, 0x5a, 0x85, 0x87, 0x29, 0xac, 0x8d, 0x2d, 0xec, 0x6a, + 0x3e, 0x56, 0xf1, 0x67, 0xbb, 0x9a, 0xe9, 0xa9, 0x9a, 0xd5, 0x54, 0xf7, 0x35, 0x6f, 0xbf, 0x38, + 0x4b, 0x08, 0x56, 0x12, 0x45, 0x49, 0x39, 0x4d, 0x14, 0xd7, 0xb8, 0x5e, 0x8d, 0xaa, 0x55, 0xac, + 0xe6, 0x27, 0x35, 0x6f, 0x1f, 0x95, 0xe1, 0x14, 0x65, 0xf1, 0x7c, 0xd7, 0xb0, 0xda, 0xaa, 0xbe, + 0x8f, 0xf5, 0x5b, 0x6a, 0xd7, 0x6f, 0x5d, 0x2e, 0x3e, 0x14, 0x7e, 0x3f, 0xb5, 0xb0, 0x41, 0x75, + 0xaa, 0x44, 0x65, 0xd7, 0x6f, 0x5d, 0x46, 0x0d, 0xc8, 0x93, 0xc5, 0xe8, 0x18, 0x77, 0xb1, 0xda, + 0xb2, 0x5d, 0x5a, 0x1a, 0x0b, 0x43, 0x52, 0x53, 0xc8, 0x83, 0x4b, 0x5b, 0x1c, 0xb0, 0x61, 0x37, + 0x71, 0x39, 0xdd, 0xd8, 0xae, 0xd5, 0x56, 0x95, 0x9c, 0x60, 0xb9, 0x66, 0xbb, 0x24, 0xa0, 0xda, + 0x76, 0xe0, 0xe0, 0x1c, 0x0b, 0xa8, 0xb6, 0x2d, 0xdc, 0x7b, 0x11, 0x66, 0x74, 0x9d, 0xcd, 0xd9, + 0xd0, 0x55, 0x7e, 0xc6, 0xf2, 0x8a, 0x72, 0xc4, 0x59, 0xba, 0xbe, 0xc6, 0x14, 0x78, 0x8c, 0x7b, + 0xe8, 0x0a, 0x3c, 0xd0, 0x73, 0x56, 0x18, 0x38, 0x3d, 0x30, 0xcb, 0x7e, 0xe8, 0x45, 0x98, 0x71, + 0x0e, 0x06, 0x81, 0x28, 0xf2, 0x46, 0xe7, 0xa0, 0x1f, 0xf6, 0x34, 0xcc, 0x3a, 0xfb, 0xce, 0x20, + 0xee, 0x89, 0x30, 0x0e, 0x39, 0xfb, 0x4e, 0x3f, 0xf0, 0x31, 0x7a, 0xe0, 0x76, 0xb1, 0xae, 0xf9, + 0xb8, 0x59, 0x7c, 0x30, 0xac, 0x1e, 0x1a, 0x40, 0xcb, 0x20, 0xeb, 0xba, 0x8a, 0x2d, 0x6d, 0xcf, + 0xc4, 0xaa, 0xe6, 0x62, 0x4b, 0xf3, 0x8a, 0x67, 0xc2, 0xca, 0x05, 0x5d, 0xaf, 0xd1, 0xd1, 0x0a, + 0x1d, 0x44, 0x4f, 0xc0, 0xb4, 0xbd, 0x77, 0x53, 0x67, 0x21, 0xa9, 0x3a, 0x2e, 0x6e, 0x19, 0x2f, + 0x14, 0x1f, 0xa5, 0xfe, 0x9d, 0x22, 0x03, 0x34, 0x20, 0xb7, 0xa9, 0x18, 0x3d, 0x0e, 0xb2, 0xee, + 0xed, 0x6b, 0xae, 0x43, 0x73, 0xb2, 0xe7, 0x68, 0x3a, 0x2e, 0x3e, 0xc6, 0x54, 0x99, 0x7c, 0x53, + 0x88, 0xc9, 0x96, 0xf0, 0xee, 0x18, 0x2d, 0x5f, 0x30, 0x9e, 0x63, 0x5b, 0x82, 0xca, 0x38, 0xdb, + 0x22, 0xc8, 0xc4, 0x15, 0x91, 0x17, 0x2f, 0x52, 0xb5, 0x82, 0xb3, 0xef, 0x84, 0xdf, 0xfb, 0x08, + 0x4c, 0x12, 0xcd, 0xde, 0x4b, 0x1f, 0x67, 0x0d, 0x99, 0xb3, 0x1f, 0x7a, 0xe3, 0xfb, 0xd6, 0x1b, + 0x2f, 0x94, 0x21, 0x1f, 0x8e, 0x4f, 0x94, 0x05, 0x16, 0xa1, 0xb2, 0x44, 0x9a, 0x95, 0xea, 0xd6, + 0x2a, 0x69, 0x33, 0x9e, 0xaf, 0xc9, 0x09, 0xd2, 0xee, 0xac, 0xd7, 0x77, 0x6a, 0xaa, 0xb2, 0xbb, + 0xb9, 0x53, 0xdf, 0xa8, 0xc9, 0xc9, 0x70, 0x5f, 0xfd, 0xdd, 0x04, 0x14, 0xa2, 0x47, 0x24, 0xf4, + 0x13, 0xf0, 0xa0, 0xb8, 0xcf, 0xf0, 0xb0, 0xaf, 0xde, 0x31, 0x5c, 0xba, 0x65, 0x3a, 0x1a, 0x2b, + 0x5f, 0xc1, 0xa2, 0xcd, 0x72, 0xad, 0x06, 0xf6, 0x9f, 0x35, 0x5c, 0xb2, 0x21, 0x3a, 0x9a, 0x8f, + 0xd6, 0xe1, 0x8c, 0x65, 0xab, 0x9e, 0xaf, 0x59, 0x4d, 0xcd, 0x6d, 0xaa, 0xbd, 0x9b, 0x24, 0x55, + 0xd3, 0x75, 0xec, 0x79, 0x36, 0x2b, 0x55, 0x01, 0xcb, 0x87, 0x2c, 0xbb, 0xc1, 0x95, 0x7b, 0x39, + 0xbc, 0xc2, 0x55, 0xfb, 0x02, 0x2c, 0x79, 0x54, 0x80, 0x3d, 0x04, 0xd9, 0x8e, 0xe6, 0xa8, 0xd8, + 0xf2, 0xdd, 0x03, 0xda, 0x18, 0x67, 0x94, 0x4c, 0x47, 0x73, 0x6a, 0xe4, 0xf9, 0x83, 0x39, 0x9f, + 0xfc, 0x53, 0x12, 0xf2, 0xe1, 0xe6, 0x98, 0x9c, 0x35, 0x74, 0x5a, 0x47, 0x24, 0x9a, 0x69, 0x1e, + 0x39, 0xb6, 0x95, 0x5e, 0xaa, 0x92, 0x02, 0x53, 0x1e, 0x67, 0x2d, 0xab, 0xc2, 0x90, 0xa4, 0xb8, + 0x93, 0xdc, 0x82, 0x59, 0x8b, 0x90, 0x51, 0xf8, 0x13, 0x5a, 0x83, 0xf1, 0x9b, 0x1e, 0xe5, 0x1e, + 0xa7, 0xdc, 0x8f, 0x1e, 0xcf, 0x7d, 0xbd, 0x41, 0xc9, 0xb3, 0xd7, 0x1b, 0xea, 0xe6, 0x96, 0xb2, + 0x51, 0x59, 0x57, 0x38, 0x1c, 0x9d, 0x86, 0x94, 0xa9, 0xdd, 0x3d, 0x88, 0x96, 0x22, 0x2a, 0x1a, + 0xd5, 0xf1, 0xa7, 0x21, 0x75, 0x07, 0x6b, 0xb7, 0xa2, 0x05, 0x80, 0x8a, 0xde, 0xc7, 0xd0, 0x5f, + 0x86, 0x34, 0xf5, 0x17, 0x02, 0xe0, 0x1e, 0x93, 0xc7, 0x50, 0x06, 0x52, 0xd5, 0x2d, 0x85, 0x84, + 0xbf, 0x0c, 0x79, 0x26, 0x55, 0xb7, 0xeb, 0xb5, 0x6a, 0x4d, 0x4e, 0x2c, 0x5c, 0x84, 0x71, 0xe6, + 0x04, 0xb2, 0x35, 0x02, 0x37, 0xc8, 0x63, 0xfc, 0x91, 0x73, 0x48, 0x62, 0x74, 0x77, 0x63, 0xa5, + 0xa6, 0xc8, 0x89, 0xf0, 0xf2, 0x7a, 0x90, 0x0f, 0xf7, 0xc5, 0x1f, 0x4c, 0x4c, 0xfd, 0x8d, 0x04, + 0xb9, 0x50, 0x9f, 0x4b, 0x1a, 0x14, 0xcd, 0x34, 0xed, 0x3b, 0xaa, 0x66, 0x1a, 0x9a, 0xc7, 0x83, + 0x02, 0xa8, 0xa8, 0x42, 0x24, 0xa3, 0x2e, 0xda, 0x07, 0x62, 0xfc, 0x2b, 0x12, 0xc8, 0xfd, 0x2d, + 0x66, 0x9f, 0x81, 0xd2, 0x8f, 0xd5, 0xc0, 0x97, 0x25, 0x28, 0x44, 0xfb, 0xca, 0x3e, 0xf3, 0xce, + 0xfe, 0x58, 0xcd, 0x7b, 0x3d, 0x01, 0x93, 0x91, 0x6e, 0x72, 0x54, 0xeb, 0x3e, 0x0b, 0xd3, 0x46, + 0x13, 0x77, 0x1c, 0xdb, 0xc7, 0x96, 0x7e, 0xa0, 0x9a, 0xf8, 0x36, 0x36, 0x8b, 0x0b, 0x34, 0x51, + 0x2c, 0x1f, 0xdf, 0xaf, 0x2e, 0xd5, 0x7b, 0xb8, 0x75, 0x02, 0x2b, 0xcf, 0xd4, 0x57, 0x6b, 0x1b, + 0xdb, 0x5b, 0x3b, 0xb5, 0xcd, 0xea, 0x0d, 0x75, 0x77, 0xf3, 0xa7, 0x36, 0xb7, 0x9e, 0xdd, 0x54, + 0x64, 0xa3, 0x4f, 0xed, 0x7d, 0xdc, 0xea, 0xdb, 0x20, 0xf7, 0x1b, 0x85, 0x1e, 0x84, 0x61, 0x66, + 0xc9, 0x63, 0x68, 0x06, 0xa6, 0x36, 0xb7, 0xd4, 0x46, 0x7d, 0xb5, 0xa6, 0xd6, 0xae, 0x5d, 0xab, + 0x55, 0x77, 0x1a, 0xec, 0x06, 0x22, 0xd0, 0xde, 0x89, 0x6e, 0xea, 0x97, 0x92, 0x30, 0x33, 0xc4, + 0x12, 0x54, 0xe1, 0x67, 0x07, 0x76, 0x9c, 0xf9, 0xe8, 0x28, 0xd6, 0x2f, 0x91, 0x92, 0xbf, 0xad, + 0xb9, 0x3e, 0x3f, 0x6a, 0x3c, 0x0e, 0xc4, 0x4b, 0x96, 0x6f, 0xb4, 0x0c, 0xec, 0xf2, 0x0b, 0x1b, + 0x76, 0xa0, 0x98, 0xea, 0xc9, 0xd9, 0x9d, 0xcd, 0x47, 0x00, 0x39, 0xb6, 0x67, 0xf8, 0xc6, 0x6d, + 0xac, 0x1a, 0x96, 0xb8, 0xdd, 0x21, 0x07, 0x8c, 0x94, 0x22, 0x8b, 0x91, 0xba, 0xe5, 0x07, 0xda, + 0x16, 0x6e, 0x6b, 0x7d, 0xda, 0x24, 0x81, 0x27, 0x15, 0x59, 0x8c, 0x04, 0xda, 0x67, 0x21, 0xdf, + 0xb4, 0xbb, 0xa4, 0xeb, 0x62, 0x7a, 0xa4, 0x5e, 0x48, 0x4a, 0x8e, 0xc9, 0x02, 0x15, 0xde, 0x4f, + 0xf7, 0xae, 0x95, 0xf2, 0x4a, 0x8e, 0xc9, 0x98, 0xca, 0x39, 0x98, 0xd2, 0xda, 0x6d, 0x97, 0x90, + 0x0b, 0x22, 0x76, 0x42, 0x28, 0x04, 0x62, 0xaa, 0x38, 0x77, 0x1d, 0x32, 0xc2, 0x0f, 0xa4, 0x24, + 0x13, 0x4f, 0xa8, 0x0e, 0x3b, 0xf6, 0x26, 0x16, 0xb3, 0x4a, 0xc6, 0x12, 0x83, 0x67, 0x21, 0x6f, + 0x78, 0x6a, 0xef, 0x96, 0x3c, 0x31, 0x9f, 0x58, 0xcc, 0x28, 0x39, 0xc3, 0x0b, 0x6e, 0x18, 0x17, + 0x5e, 0x4d, 0x40, 0x21, 0x7a, 0xcb, 0x8f, 0x56, 0x21, 0x63, 0xda, 0xba, 0x46, 0x43, 0x8b, 0x7d, + 0x62, 0x5a, 0x8c, 0xf9, 0x30, 0xb0, 0xb4, 0xce, 0xf5, 0x95, 0x00, 0x39, 0xf7, 0x0f, 0x12, 0x64, + 0x84, 0x18, 0x9d, 0x82, 0x94, 0xa3, 0xf9, 0xfb, 0x94, 0x2e, 0xbd, 0x92, 0x90, 0x25, 0x85, 0x3e, + 0x13, 0xb9, 0xe7, 0x68, 0x16, 0x0d, 0x01, 0x2e, 0x27, 0xcf, 0x64, 0x5d, 0x4d, 0xac, 0x35, 0xe9, + 0xf1, 0xc3, 0xee, 0x74, 0xb0, 0xe5, 0x7b, 0x62, 0x5d, 0xb9, 0xbc, 0xca, 0xc5, 0xe8, 0x49, 0x98, + 0xf6, 0x5d, 0xcd, 0x30, 0x23, 0xba, 0x29, 0xaa, 0x2b, 0x8b, 0x81, 0x40, 0xb9, 0x0c, 0xa7, 0x05, + 0x6f, 0x13, 0xfb, 0x9a, 0xbe, 0x8f, 0x9b, 0x3d, 0xd0, 0x38, 0xbd, 0x66, 0x78, 0x90, 0x2b, 0xac, + 0xf2, 0x71, 0x81, 0x5d, 0xf8, 0xbe, 0x04, 0xd3, 0xe2, 0xc0, 0xd4, 0x0c, 0x9c, 0xb5, 0x01, 0xa0, + 0x59, 0x96, 0xed, 0x87, 0xdd, 0x35, 0x18, 0xca, 0x03, 0xb8, 0xa5, 0x4a, 0x00, 0x52, 0x42, 0x04, + 0x73, 0x1d, 0x80, 0xde, 0xc8, 0x91, 0x6e, 0x3b, 0x03, 0x39, 0xfe, 0x09, 0x87, 0x7e, 0x07, 0x64, + 0x47, 0x6c, 0x60, 0x22, 0x72, 0xb2, 0x42, 0xb3, 0x90, 0xde, 0xc3, 0x6d, 0xc3, 0xe2, 0x17, 0xb3, + 0xec, 0x41, 0x5c, 0x84, 0xa4, 0x82, 0x8b, 0x90, 0x95, 0xcf, 0xc0, 0x8c, 0x6e, 0x77, 0xfa, 0xcd, + 0x5d, 0x91, 0xfb, 0x8e, 0xf9, 0xde, 0x27, 0xa5, 0xe7, 0xa1, 0xd7, 0x62, 0xbe, 0x2b, 0x49, 0xbf, + 0x97, 0x48, 0xae, 0x6d, 0xaf, 0x7c, 0x2d, 0x31, 0xb7, 0xc6, 0xa0, 0xdb, 0x62, 0xa6, 0x0a, 0x6e, + 0x99, 0x58, 0x27, 0xd6, 0xc3, 0x17, 0xcf, 0xc1, 0x47, 0xdb, 0x86, 0xbf, 0xdf, 0xdd, 0x5b, 0xd2, + 0xed, 0xce, 0x72, 0xdb, 0x6e, 0xdb, 0xbd, 0x4f, 0x9f, 0xe4, 0x89, 0x3e, 0xd0, 0x5f, 0xfc, 0xf3, + 0x67, 0x36, 0x90, 0xce, 0xc5, 0x7e, 0x2b, 0x2d, 0x6f, 0xc2, 0x0c, 0x57, 0x56, 0xe9, 0xf7, 0x17, + 0x76, 0x8a, 0x40, 0xc7, 0xde, 0x61, 0x15, 0xbf, 0xf1, 0x06, 0x2d, 0xd7, 0xca, 0x34, 0x87, 0x92, + 0x31, 0x76, 0xd0, 0x28, 0x2b, 0xf0, 0x40, 0x84, 0x8f, 0x6d, 0x4d, 0xec, 0xc6, 0x30, 0x7e, 0x97, + 0x33, 0xce, 0x84, 0x18, 0x1b, 0x1c, 0x5a, 0xae, 0xc2, 0xe4, 0x49, 0xb8, 0xfe, 0x8e, 0x73, 0xe5, + 0x71, 0x98, 0x64, 0x0d, 0xa6, 0x28, 0x89, 0xde, 0xf5, 0x7c, 0xbb, 0x43, 0xf3, 0xde, 0xf1, 0x34, + 0x7f, 0xff, 0x06, 0xdb, 0x2b, 0x05, 0x02, 0xab, 0x06, 0xa8, 0x72, 0x19, 0xe8, 0x27, 0xa7, 0x26, + 0xd6, 0xcd, 0x18, 0x86, 0xd7, 0xb8, 0x21, 0x81, 0x7e, 0xf9, 0xd3, 0x30, 0x4b, 0x7e, 0xd3, 0xb4, + 0x14, 0xb6, 0x24, 0xfe, 0xc2, 0xab, 0xf8, 0xfd, 0x17, 0xd9, 0x76, 0x9c, 0x09, 0x08, 0x42, 0x36, + 0x85, 0x56, 0xb1, 0x8d, 0x7d, 0x1f, 0xbb, 0x9e, 0xaa, 0x99, 0xc3, 0xcc, 0x0b, 0xdd, 0x18, 0x14, + 0xbf, 0xfc, 0x56, 0x74, 0x15, 0xd7, 0x18, 0xb2, 0x62, 0x9a, 0xe5, 0x5d, 0x78, 0x70, 0x48, 0x54, + 0x8c, 0xc0, 0xf9, 0x12, 0xe7, 0x9c, 0x1d, 0x88, 0x0c, 0x42, 0xbb, 0x0d, 0x42, 0x1e, 0xac, 0xe5, + 0x08, 0x9c, 0xbf, 0xc5, 0x39, 0x11, 0xc7, 0x8a, 0x25, 0x25, 0x8c, 0xd7, 0x61, 0xfa, 0x36, 0x76, + 0xf7, 0x6c, 0x8f, 0xdf, 0xd2, 0x8c, 0x40, 0xf7, 0x32, 0xa7, 0x9b, 0xe2, 0x40, 0x7a, 0x6d, 0x43, + 0xb8, 0xae, 0x40, 0xa6, 0xa5, 0xe9, 0x78, 0x04, 0x8a, 0xaf, 0x70, 0x8a, 0x09, 0xa2, 0x4f, 0xa0, + 0x15, 0xc8, 0xb7, 0x6d, 0x5e, 0x99, 0xe2, 0xe1, 0xaf, 0x70, 0x78, 0x4e, 0x60, 0x38, 0x85, 0x63, + 0x3b, 0x5d, 0x93, 0x94, 0xad, 0x78, 0x8a, 0xdf, 0x16, 0x14, 0x02, 0xc3, 0x29, 0x4e, 0xe0, 0xd6, + 0xdf, 0x11, 0x14, 0x5e, 0xc8, 0x9f, 0xcf, 0x40, 0xce, 0xb6, 0xcc, 0x03, 0xdb, 0x1a, 0xc5, 0x88, + 0xdf, 0xe5, 0x0c, 0xc0, 0x21, 0x84, 0xe0, 0x2a, 0x64, 0x47, 0x5d, 0x88, 0xdf, 0x7f, 0x4b, 0x6c, + 0x0f, 0xb1, 0x02, 0x6b, 0x30, 0x25, 0x12, 0x94, 0x61, 0x5b, 0x23, 0x50, 0xfc, 0x01, 0xa7, 0x28, + 0x84, 0x60, 0x7c, 0x1a, 0x3e, 0xf6, 0xfc, 0x36, 0x1e, 0x85, 0xe4, 0x55, 0x31, 0x0d, 0x0e, 0xe1, + 0xae, 0xdc, 0xc3, 0x96, 0xbe, 0x3f, 0x1a, 0xc3, 0x57, 0x85, 0x2b, 0x05, 0x86, 0x50, 0x54, 0x61, + 0xb2, 0xa3, 0xb9, 0xde, 0xbe, 0x66, 0x8e, 0xb4, 0x1c, 0x7f, 0xc8, 0x39, 0xf2, 0x01, 0x88, 0x7b, + 0xa4, 0x6b, 0x9d, 0x84, 0xe6, 0x6b, 0xc2, 0x23, 0x21, 0x18, 0xdf, 0x7a, 0x9e, 0x4f, 0xaf, 0xb4, + 0x4e, 0xc2, 0xf6, 0x47, 0x62, 0xeb, 0x31, 0xec, 0x46, 0x98, 0xf1, 0x2a, 0x64, 0x3d, 0xe3, 0xee, + 0x48, 0x34, 0x7f, 0x2c, 0x56, 0x9a, 0x02, 0x08, 0xf8, 0x06, 0x9c, 0x1e, 0x5a, 0x26, 0x46, 0x20, + 0xfb, 0x13, 0x4e, 0x76, 0x6a, 0x48, 0xa9, 0xe0, 0x29, 0xe1, 0xa4, 0x94, 0x7f, 0x2a, 0x52, 0x02, + 0xee, 0xe3, 0xda, 0x26, 0x67, 0x05, 0x4f, 0x6b, 0x9d, 0xcc, 0x6b, 0x7f, 0x26, 0xbc, 0xc6, 0xb0, + 0x11, 0xaf, 0xed, 0xc0, 0x29, 0xce, 0x78, 0xb2, 0x75, 0xfd, 0xba, 0x48, 0xac, 0x0c, 0xbd, 0x1b, + 0x5d, 0xdd, 0xcf, 0xc0, 0x5c, 0xe0, 0x4e, 0xd1, 0x94, 0x7a, 0x6a, 0x47, 0x73, 0x46, 0x60, 0xfe, + 0x06, 0x67, 0x16, 0x19, 0x3f, 0xe8, 0x6a, 0xbd, 0x0d, 0xcd, 0x21, 0xe4, 0xcf, 0x41, 0x51, 0x90, + 0x77, 0x2d, 0x17, 0xeb, 0x76, 0xdb, 0x32, 0xee, 0xe2, 0xe6, 0x08, 0xd4, 0x7f, 0xde, 0xb7, 0x54, + 0xbb, 0x21, 0x38, 0x61, 0xae, 0x83, 0x1c, 0xf4, 0x2a, 0xaa, 0xd1, 0x71, 0x6c, 0xd7, 0x8f, 0x61, + 0xfc, 0xa6, 0x58, 0xa9, 0x00, 0x57, 0xa7, 0xb0, 0x72, 0x0d, 0x0a, 0xf4, 0x71, 0xd4, 0x90, 0xfc, + 0x0b, 0x4e, 0x34, 0xd9, 0x43, 0xf1, 0xc4, 0xa1, 0xdb, 0x1d, 0x47, 0x73, 0x47, 0xc9, 0x7f, 0x7f, + 0x29, 0x12, 0x07, 0x87, 0xf0, 0xc4, 0xe1, 0x1f, 0x38, 0x98, 0x54, 0xfb, 0x11, 0x18, 0xbe, 0x25, + 0x12, 0x87, 0xc0, 0x70, 0x0a, 0xd1, 0x30, 0x8c, 0x40, 0xf1, 0x57, 0x82, 0x42, 0x60, 0x08, 0xc5, + 0xa7, 0x7a, 0x85, 0xd6, 0xc5, 0x6d, 0xc3, 0xf3, 0x5d, 0xd6, 0x0a, 0x1f, 0x4f, 0xf5, 0xed, 0xb7, + 0xa2, 0x4d, 0x98, 0x12, 0x82, 0x96, 0xaf, 0xc3, 0x54, 0x5f, 0x8b, 0x81, 0xe2, 0xfe, 0x7f, 0xa5, + 0xf8, 0xb3, 0xef, 0xf0, 0x64, 0x14, 0xed, 0x30, 0xca, 0xeb, 0x64, 0xdd, 0xa3, 0x7d, 0x40, 0x3c, + 0xd9, 0x8b, 0xef, 0x04, 0x4b, 0x1f, 0x69, 0x03, 0xca, 0xd7, 0x60, 0x32, 0xd2, 0x03, 0xc4, 0x53, + 0x7d, 0x8e, 0x53, 0xe5, 0xc3, 0x2d, 0x40, 0xf9, 0x22, 0xa4, 0x48, 0x3d, 0x8f, 0x87, 0xff, 0x1c, + 0x87, 0x53, 0xf5, 0xf2, 0xc7, 0x21, 0x23, 0xea, 0x78, 0x3c, 0xf4, 0xe7, 0x39, 0x34, 0x80, 0x10, + 0xb8, 0xa8, 0xe1, 0xf1, 0xf0, 0x5f, 0x10, 0x70, 0x01, 0x21, 0xf0, 0xd1, 0x5d, 0xf8, 0x9d, 0x5f, + 0x4a, 0xf1, 0x3c, 0x2c, 0x7c, 0x77, 0x15, 0x26, 0x78, 0xf1, 0x8e, 0x47, 0x7f, 0x9e, 0xbf, 0x5c, + 0x20, 0xca, 0x4f, 0x43, 0x7a, 0x44, 0x87, 0xff, 0x32, 0x87, 0x32, 0xfd, 0x72, 0x15, 0x72, 0xa1, + 0x82, 0x1d, 0x0f, 0xff, 0x02, 0x87, 0x87, 0x51, 0xc4, 0x74, 0x5e, 0xb0, 0xe3, 0x09, 0x7e, 0x45, + 0x98, 0xce, 0x11, 0xc4, 0x6d, 0xa2, 0x56, 0xc7, 0xa3, 0x7f, 0x55, 0x78, 0x5d, 0x40, 0xca, 0xcf, + 0x40, 0x36, 0xc8, 0xbf, 0xf1, 0xf8, 0x5f, 0xe3, 0xf8, 0x1e, 0x86, 0x78, 0x20, 0x94, 0xff, 0xe3, + 0x29, 0x7e, 0x5d, 0x78, 0x20, 0x84, 0x22, 0xdb, 0xa8, 0xbf, 0xa6, 0xc7, 0x33, 0xfd, 0x86, 0xd8, + 0x46, 0x7d, 0x25, 0x9d, 0xac, 0x26, 0x4d, 0x83, 0xf1, 0x14, 0xbf, 0x29, 0x56, 0x93, 0xea, 0x13, + 0x33, 0xfa, 0x8b, 0x64, 0x3c, 0xc7, 0x17, 0x85, 0x19, 0x7d, 0x35, 0xb2, 0xbc, 0x0d, 0x68, 0xb0, + 0x40, 0xc6, 0xf3, 0x7d, 0x89, 0xf3, 0x4d, 0x0f, 0xd4, 0xc7, 0xf2, 0xb3, 0x70, 0x6a, 0x78, 0x71, + 0x8c, 0x67, 0xfd, 0xf2, 0x3b, 0x7d, 0xc7, 0x99, 0x70, 0x6d, 0x2c, 0xef, 0xf4, 0xb2, 0x6c, 0xb8, + 0x30, 0xc6, 0xd3, 0xbe, 0xf4, 0x4e, 0x34, 0xd1, 0x86, 0xeb, 0x62, 0xb9, 0x02, 0xd0, 0xab, 0x49, + 0xf1, 0x5c, 0x2f, 0x73, 0xae, 0x10, 0x88, 0x6c, 0x0d, 0x5e, 0x92, 0xe2, 0xf1, 0x5f, 0x11, 0x5b, + 0x83, 0x23, 0xc8, 0xd6, 0x10, 0xd5, 0x28, 0x1e, 0xfd, 0x8a, 0xd8, 0x1a, 0x02, 0x52, 0xbe, 0x0a, + 0x19, 0xab, 0x6b, 0x9a, 0x24, 0xb6, 0xd0, 0xf1, 0xff, 0x92, 0x55, 0xfc, 0xb7, 0xf7, 0x38, 0x58, + 0x00, 0xca, 0x17, 0x21, 0x8d, 0x3b, 0x7b, 0xb8, 0x19, 0x87, 0xfc, 0xf7, 0xf7, 0x44, 0x3e, 0x21, + 0xda, 0xe5, 0x67, 0x00, 0xd8, 0x61, 0x9a, 0x7e, 0x28, 0x8a, 0xc1, 0xfe, 0xc7, 0x7b, 0xfc, 0x9f, + 0x25, 0x7a, 0x90, 0x1e, 0x01, 0xfb, 0xd7, 0x8b, 0xe3, 0x09, 0xde, 0x8a, 0x12, 0xd0, 0x03, 0xf8, + 0x15, 0x98, 0xb8, 0xe9, 0xd9, 0x96, 0xaf, 0xb5, 0xe3, 0xd0, 0xff, 0xc9, 0xd1, 0x42, 0x9f, 0x38, + 0xac, 0x63, 0xbb, 0xd8, 0xd7, 0xda, 0x5e, 0x1c, 0xf6, 0xbf, 0x38, 0x36, 0x00, 0x10, 0xb0, 0xae, + 0x79, 0xfe, 0x28, 0xf3, 0xfe, 0xa1, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0xfc, 0xbe, 0x85, 0x0f, 0xe2, + 0xb0, 0x6f, 0x0b, 0xa3, 0xb9, 0x7e, 0xf9, 0xe3, 0x90, 0x25, 0x3f, 0xd9, 0x7f, 0x40, 0xc5, 0x80, + 0xff, 0x9b, 0x83, 0x7b, 0x08, 0xf2, 0x66, 0xcf, 0x6f, 0xfa, 0x46, 0xbc, 0xb3, 0xff, 0x87, 0xaf, + 0xb4, 0xd0, 0x2f, 0x57, 0x20, 0xe7, 0xf9, 0xcd, 0x66, 0x97, 0x77, 0x34, 0x31, 0xf0, 0xff, 0x7d, + 0x2f, 0x38, 0xe4, 0x06, 0x98, 0x95, 0xda, 0xf0, 0xfb, 0x3a, 0x58, 0xb3, 0xd7, 0x6c, 0x76, 0x53, + 0xf7, 0xfc, 0x42, 0xfc, 0x95, 0x1b, 0x7c, 0x21, 0x0d, 0xf3, 0xba, 0xdd, 0xd9, 0xb3, 0xbd, 0xe5, + 0x20, 0xd9, 0x2c, 0x07, 0x73, 0x14, 0x97, 0x71, 0x81, 0x60, 0xee, 0x64, 0xd7, 0x78, 0x0b, 0x7f, + 0x9b, 0x84, 0x4c, 0x55, 0xf3, 0x7c, 0xed, 0x8e, 0x76, 0x80, 0x1c, 0x98, 0x21, 0xbf, 0x37, 0x34, + 0x87, 0x5e, 0x0a, 0xf1, 0x5d, 0xc8, 0x6f, 0x4a, 0x3f, 0xb2, 0xd4, 0x7b, 0xab, 0x40, 0x2c, 0x0d, + 0x51, 0xa7, 0x5f, 0x98, 0x57, 0xe4, 0xd7, 0xfe, 0xf9, 0xcc, 0xd8, 0x2f, 0xfe, 0xcb, 0x99, 0xcc, + 0xc6, 0xc1, 0xb3, 0x86, 0xe9, 0xd9, 0x96, 0x32, 0x8c, 0x1a, 0x7d, 0x4e, 0x82, 0x87, 0x86, 0xc8, + 0x37, 0xf9, 0x56, 0xe5, 0xdf, 0x1b, 0x2e, 0x8c, 0xf8, 0x6a, 0x01, 0x63, 0x26, 0xe4, 0x23, 0xaf, + 0x3f, 0xee, 0x35, 0x73, 0x37, 0xa0, 0x78, 0xd4, 0x4c, 0x90, 0x0c, 0xc9, 0x5b, 0xf8, 0x80, 0xff, + 0x9b, 0x1a, 0xf9, 0x89, 0xce, 0xf5, 0xfe, 0x99, 0x4f, 0x5a, 0xcc, 0x9d, 0x9f, 0x0e, 0x59, 0xc7, + 0x5f, 0xc6, 0xc6, 0xcb, 0x89, 0xcb, 0xd2, 0x9c, 0x06, 0xf3, 0x71, 0x96, 0xfe, 0x3f, 0x5f, 0xb1, + 0x50, 0x82, 0x71, 0x26, 0x44, 0xb3, 0x90, 0xae, 0x5b, 0xfe, 0xa5, 0x0b, 0x94, 0x2a, 0xa9, 0xb0, + 0x87, 0x95, 0xf5, 0xd7, 0xee, 0x97, 0xc6, 0xbe, 0x77, 0xbf, 0x34, 0xf6, 0x8f, 0xf7, 0x4b, 0x63, + 0xaf, 0xdf, 0x2f, 0x49, 0x6f, 0xde, 0x2f, 0x49, 0x6f, 0xdf, 0x2f, 0x49, 0xef, 0xde, 0x2f, 0x49, + 0xf7, 0x0e, 0x4b, 0xd2, 0x57, 0x0f, 0x4b, 0xd2, 0xd7, 0x0f, 0x4b, 0xd2, 0xb7, 0x0f, 0x4b, 0xd2, + 0x77, 0x0e, 0x4b, 0xd2, 0x6b, 0x87, 0x25, 0xe9, 0x7b, 0x87, 0xa5, 0xb1, 0xd7, 0x0f, 0x4b, 0xd2, + 0x9b, 0x87, 0xa5, 0xb1, 0xb7, 0x0f, 0x4b, 0xd2, 0xbb, 0x87, 0xa5, 0xb1, 0x7b, 0x3f, 0x28, 0x8d, + 0xfd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x18, 0x29, 0x1c, 0x1d, 0x33, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -506,16 +510,16 @@ func (this *Wilson) Equal(that interface{}) bool { } type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetCastMapValueMessage() map[int32]MyWilson GetCastMapValueMessageNullable() map[int32]*MyWilson } -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) Proto() proto.Message { return this } -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) TestProto() proto.Message { return NewCastawayFromFace(this) } @@ -535,15 +539,15 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { } type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt64() *int64 } -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) Proto() proto.Message { return this } -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) TestProto() proto.Message { return NewWilsonFromFace(this) } @@ -567,7 +571,7 @@ func (this *Castaway) GoString() string { for k := range this.CastMapValueMessage { keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) + sortkeys.Int32s(keysForCastMapValueMessage) mapStringForCastMapValueMessage := "map[int32]MyWilson{" for _, k := range keysForCastMapValueMessage { mapStringForCastMapValueMessage += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessage[k]) @@ -580,7 +584,7 @@ func (this *Castaway) GoString() string { for k := range this.CastMapValueMessageNullable { keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) + sortkeys.Int32s(keysForCastMapValueMessageNullable) mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" for _, k := range keysForCastMapValueMessageNullable { mapStringForCastMapValueMessageNullable += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessageNullable[k]) @@ -717,24 +721,6 @@ func (m *Wilson) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Castvalue(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 encodeFixed32Castvalue(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 encodeVarintCastvalue(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -917,7 +903,7 @@ func (this *Castaway) String() string { for k := range this.CastMapValueMessage { keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) + sortkeys.Int32s(keysForCastMapValueMessage) mapStringForCastMapValueMessage := "map[int32]MyWilson{" for _, k := range keysForCastMapValueMessage { mapStringForCastMapValueMessage += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessage[k]) @@ -927,7 +913,7 @@ func (this *Castaway) String() string { for k := range this.CastMapValueMessageNullable { keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) + sortkeys.Int32s(keysForCastMapValueMessageNullable) mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" for _, k := range keysForCastMapValueMessageNullable { mapStringForCastMapValueMessageNullable += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessageNullable[k]) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvaluepb_test.go index cf7e02718..23e086c50 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/marshaler/castvaluepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/castvalue.proto -// DO NOT EDIT! /* Package castvalue is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package castvalue import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,13 +58,13 @@ func TestCastawayProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCastawayMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -78,7 +76,7 @@ func TestCastawayMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -93,7 +91,7 @@ func TestCastawayMarshalTo(t *testing.T) { } func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 10000) for i := 0; i < 10000; i++ { @@ -101,7 +99,7 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -111,11 +109,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } @@ -125,7 +123,7 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -134,14 +132,14 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -162,13 +160,13 @@ func TestWilsonProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestWilsonMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -180,7 +178,7 @@ func TestWilsonMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -195,7 +193,7 @@ func TestWilsonMarshalTo(t *testing.T) { } func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 10000) for i := 0; i < 10000; i++ { @@ -203,7 +201,7 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -213,11 +211,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } @@ -227,7 +225,7 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -236,15 +234,15 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { func TestCastawayJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -257,15 +255,15 @@ func TestCastawayJSON(t *testing.T) { } func TestWilsonJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -278,11 +276,11 @@ func TestWilsonJSON(t *testing.T) { } func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -295,11 +293,11 @@ func TestCastawayProtoText(t *testing.T) { func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -312,11 +310,11 @@ func TestCastawayProtoCompactText(t *testing.T) { func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -329,11 +327,11 @@ func TestWilsonProtoText(t *testing.T) { func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -348,14 +346,14 @@ func TestCastvalueDescription(t *testing.T) { CastvalueDescription() } func TestCastawayVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -363,14 +361,14 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -378,7 +376,7 @@ func TestWilsonVerboseEqual(t *testing.T) { } } func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -386,7 +384,7 @@ func TestCastawayFace(t *testing.T) { } } func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -394,37 +392,37 @@ func TestWilsonFace(t *testing.T) { } } func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCastawaySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -435,14 +433,14 @@ func TestCastawaySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 1000) for i := 0; i < 1000; i++ { @@ -457,10 +455,10 @@ func BenchmarkCastawaySize(b *testing.B) { func TestWilsonSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -471,14 +469,14 @@ func TestWilsonSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 1000) for i := 0; i < 1000; i++ { @@ -492,7 +490,7 @@ func BenchmarkWilsonSize(b *testing.B) { } func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -501,7 +499,7 @@ func TestCastawayStringer(t *testing.T) { } } func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go index 048233614..9c7fa75ea 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvalue.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/castvalue.proto -// DO NOT EDIT! /* Package castvalue is a generated protocol buffer package. @@ -19,15 +18,14 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" import io "io" @@ -65,265 +63,271 @@ func init() { proto.RegisterType((*Castaway)(nil), "castvalue.Castaway") proto.RegisterType((*Wilson)(nil), "castvalue.Wilson") } -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Castaway) Description() (desc *descriptor.FileDescriptorSet) { return CastvalueDescription() } -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Wilson) Description() (desc *descriptor.FileDescriptorSet) { return CastvalueDescription() } -func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func CastvalueDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3794 bytes of a gzipped FileDescriptorSet + // 3903 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x65, 0x88, 0x8e, 0x21, 0x0a, 0xb1, - 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, - 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, - 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xb4, 0x4d, 0x7f, 0x66, 0x9a, 0xb8, 0x8e, 0xdb, - 0x66, 0xa6, 0x75, 0x9a, 0xf4, 0x27, 0xe9, 0x4f, 0x9a, 0xe9, 0x53, 0xfa, 0x90, 0xd6, 0x4f, 0x9d, - 0xe4, 0xad, 0x0f, 0x9d, 0xd6, 0x62, 0x3c, 0x53, 0xb7, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, - 0x97, 0xce, 0xfd, 0x5b, 0xec, 0x02, 0x20, 0x17, 0x4c, 0xc7, 0xc9, 0x13, 0x71, 0xcf, 0x3d, 0xdf, - 0xb7, 0xe7, 0x9e, 0x7b, 0xee, 0x39, 0x67, 0xef, 0x12, 0xbe, 0x7f, 0x19, 0x96, 0x3b, 0xb6, 0xdd, - 0x31, 0xf1, 0x5a, 0xcf, 0xb1, 0x3d, 0x7b, 0xbf, 0xdf, 0x5e, 0x6b, 0x61, 0x57, 0x77, 0x8c, 0x9e, - 0x67, 0x3b, 0xab, 0x54, 0xa6, 0xcc, 0x31, 0x8d, 0x55, 0xa1, 0x51, 0xdc, 0x86, 0xf9, 0xeb, 0x86, - 0x89, 0x37, 0x7c, 0xc5, 0x26, 0xf6, 0x94, 0xab, 0x90, 0x68, 0x1b, 0x26, 0xce, 0x4b, 0xcb, 0xf1, - 0x95, 0xcc, 0xc5, 0xc7, 0x56, 0x87, 0x40, 0xab, 0x61, 0x44, 0x83, 0x88, 0x55, 0x8a, 0x28, 0xbe, - 0x99, 0x80, 0x85, 0x31, 0xb3, 0x8a, 0x02, 0x09, 0x0b, 0x75, 0x09, 0xa3, 0xb4, 0x92, 0x56, 0xe9, - 0x6f, 0x25, 0x0f, 0x33, 0x3d, 0xa4, 0xdf, 0x41, 0x1d, 0x9c, 0x8f, 0x51, 0xb1, 0x18, 0x2a, 0x05, - 0x80, 0x16, 0xee, 0x61, 0xab, 0x85, 0x2d, 0xfd, 0x30, 0x1f, 0x5f, 0x8e, 0xaf, 0xa4, 0xd5, 0x80, - 0x44, 0x79, 0x0a, 0xe6, 0x7b, 0xfd, 0x7d, 0xd3, 0xd0, 0xb5, 0x80, 0x1a, 0x2c, 0xc7, 0x57, 0x92, - 0xaa, 0xcc, 0x26, 0x36, 0x06, 0xca, 0x17, 0x60, 0xee, 0x1e, 0x46, 0x77, 0x82, 0xaa, 0x19, 0xaa, - 0x9a, 0x23, 0xe2, 0x80, 0x62, 0x05, 0xb2, 0x5d, 0xec, 0xba, 0xa8, 0x83, 0x35, 0xef, 0xb0, 0x87, - 0xf3, 0x09, 0xba, 0xfa, 0xe5, 0x91, 0xd5, 0x0f, 0xaf, 0x3c, 0xc3, 0x51, 0xbb, 0x87, 0x3d, 0xac, - 0x94, 0x21, 0x8d, 0xad, 0x7e, 0x97, 0x31, 0x24, 0x8f, 0xf1, 0x5f, 0xd5, 0xea, 0x77, 0x87, 0x59, - 0x52, 0x04, 0xc6, 0x29, 0x66, 0x5c, 0xec, 0xdc, 0x35, 0x74, 0x9c, 0x9f, 0xa6, 0x04, 0x17, 0x46, - 0x08, 0x9a, 0x6c, 0x7e, 0x98, 0x43, 0xe0, 0x94, 0x0a, 0xa4, 0xf1, 0x0b, 0x1e, 0xb6, 0x5c, 0xc3, - 0xb6, 0xf2, 0x33, 0x94, 0xe4, 0xf1, 0x31, 0xbb, 0x88, 0xcd, 0xd6, 0x30, 0xc5, 0x00, 0xa7, 0x5c, - 0x81, 0x19, 0xbb, 0xe7, 0x19, 0xb6, 0xe5, 0xe6, 0x53, 0xcb, 0xd2, 0x4a, 0xe6, 0xe2, 0x07, 0xc6, - 0x06, 0x42, 0x9d, 0xe9, 0xa8, 0x42, 0x59, 0xa9, 0x81, 0xec, 0xda, 0x7d, 0x47, 0xc7, 0x9a, 0x6e, - 0xb7, 0xb0, 0x66, 0x58, 0x6d, 0x3b, 0x9f, 0xa6, 0x04, 0xe7, 0x46, 0x17, 0x42, 0x15, 0x2b, 0x76, - 0x0b, 0xd7, 0xac, 0xb6, 0xad, 0xe6, 0xdc, 0xd0, 0x58, 0x39, 0x03, 0xd3, 0xee, 0xa1, 0xe5, 0xa1, - 0x17, 0xf2, 0x59, 0x1a, 0x21, 0x7c, 0x54, 0xfc, 0xdf, 0x24, 0xcc, 0x4d, 0x12, 0x62, 0xd7, 0x20, - 0xd9, 0x26, 0xab, 0xcc, 0xc7, 0x4e, 0xe3, 0x03, 0x86, 0x09, 0x3b, 0x71, 0xfa, 0x47, 0x74, 0x62, - 0x19, 0x32, 0x16, 0x76, 0x3d, 0xdc, 0x62, 0x11, 0x11, 0x9f, 0x30, 0xa6, 0x80, 0x81, 0x46, 0x43, - 0x2a, 0xf1, 0x23, 0x85, 0xd4, 0x4d, 0x98, 0xf3, 0x4d, 0xd2, 0x1c, 0x64, 0x75, 0x44, 0x6c, 0xae, - 0x45, 0x59, 0xb2, 0x5a, 0x15, 0x38, 0x95, 0xc0, 0xd4, 0x1c, 0x0e, 0x8d, 0x95, 0x0d, 0x00, 0xdb, - 0xc2, 0x76, 0x5b, 0x6b, 0x61, 0xdd, 0xcc, 0xa7, 0x8e, 0xf1, 0x52, 0x9d, 0xa8, 0x8c, 0x78, 0xc9, - 0x66, 0x52, 0xdd, 0x54, 0x9e, 0x1d, 0x84, 0xda, 0xcc, 0x31, 0x91, 0xb2, 0xcd, 0x0e, 0xd9, 0x48, - 0xb4, 0xed, 0x41, 0xce, 0xc1, 0x24, 0xee, 0x71, 0x8b, 0xaf, 0x2c, 0x4d, 0x8d, 0x58, 0x8d, 0x5c, - 0x99, 0xca, 0x61, 0x6c, 0x61, 0xb3, 0x4e, 0x70, 0xa8, 0x7c, 0x10, 0x7c, 0x81, 0x46, 0xc3, 0x0a, - 0x68, 0x16, 0xca, 0x0a, 0xe1, 0x0e, 0xea, 0xe2, 0xa5, 0xab, 0x90, 0x0b, 0xbb, 0x47, 0x59, 0x84, - 0xa4, 0xeb, 0x21, 0xc7, 0xa3, 0x51, 0x98, 0x54, 0xd9, 0x40, 0x91, 0x21, 0x8e, 0xad, 0x16, 0xcd, - 0x72, 0x49, 0x95, 0xfc, 0x5c, 0x7a, 0x06, 0x66, 0x43, 0x8f, 0x9f, 0x14, 0x58, 0xfc, 0xc2, 0x34, - 0x2c, 0x8e, 0x8b, 0xb9, 0xb1, 0xe1, 0x7f, 0x06, 0xa6, 0xad, 0x7e, 0x77, 0x1f, 0x3b, 0xf9, 0x38, - 0x65, 0xe0, 0x23, 0xa5, 0x0c, 0x49, 0x13, 0xed, 0x63, 0x33, 0x9f, 0x58, 0x96, 0x56, 0x72, 0x17, - 0x9f, 0x9a, 0x28, 0xaa, 0x57, 0xb7, 0x08, 0x44, 0x65, 0x48, 0xe5, 0xe3, 0x90, 0xe0, 0x29, 0x8e, - 0x30, 0x3c, 0x39, 0x19, 0x03, 0x89, 0x45, 0x95, 0xe2, 0x94, 0x47, 0x20, 0x4d, 0xfe, 0x32, 0xdf, - 0x4e, 0x53, 0x9b, 0x53, 0x44, 0x40, 0xfc, 0xaa, 0x2c, 0x41, 0x8a, 0x86, 0x59, 0x0b, 0x8b, 0xd2, - 0xe0, 0x8f, 0xc9, 0xc6, 0xb4, 0x70, 0x1b, 0xf5, 0x4d, 0x4f, 0xbb, 0x8b, 0xcc, 0x3e, 0xa6, 0x01, - 0x93, 0x56, 0xb3, 0x5c, 0xf8, 0x29, 0x22, 0x53, 0xce, 0x41, 0x86, 0x45, 0xa5, 0x61, 0xb5, 0xf0, - 0x0b, 0x34, 0xfb, 0x24, 0x55, 0x16, 0xa8, 0x35, 0x22, 0x21, 0x8f, 0xbf, 0xed, 0xda, 0x96, 0xd8, - 0x5a, 0xfa, 0x08, 0x22, 0xa0, 0x8f, 0x7f, 0x66, 0x38, 0xf1, 0x3d, 0x3a, 0x7e, 0x79, 0xc3, 0xb1, - 0x58, 0xfc, 0x66, 0x0c, 0x12, 0xf4, 0xbc, 0xcd, 0x41, 0x66, 0xf7, 0x56, 0xa3, 0xaa, 0x6d, 0xd4, - 0xf7, 0xd6, 0xb7, 0xaa, 0xb2, 0xa4, 0xe4, 0x00, 0xa8, 0xe0, 0xfa, 0x56, 0xbd, 0xbc, 0x2b, 0xc7, - 0xfc, 0x71, 0x6d, 0x67, 0xf7, 0xca, 0x25, 0x39, 0xee, 0x03, 0xf6, 0x98, 0x20, 0x11, 0x54, 0x78, - 0xfa, 0xa2, 0x9c, 0x54, 0x64, 0xc8, 0x32, 0x82, 0xda, 0xcd, 0xea, 0xc6, 0x95, 0x4b, 0xf2, 0x74, - 0x58, 0xf2, 0xf4, 0x45, 0x79, 0x46, 0x99, 0x85, 0x34, 0x95, 0xac, 0xd7, 0xeb, 0x5b, 0x72, 0xca, - 0xe7, 0x6c, 0xee, 0xaa, 0xb5, 0x9d, 0x4d, 0x39, 0xed, 0x73, 0x6e, 0xaa, 0xf5, 0xbd, 0x86, 0x0c, - 0x3e, 0xc3, 0x76, 0xb5, 0xd9, 0x2c, 0x6f, 0x56, 0xe5, 0x8c, 0xaf, 0xb1, 0x7e, 0x6b, 0xb7, 0xda, - 0x94, 0xb3, 0x21, 0xb3, 0x9e, 0xbe, 0x28, 0xcf, 0xfa, 0x8f, 0xa8, 0xee, 0xec, 0x6d, 0xcb, 0x39, - 0x65, 0x1e, 0x66, 0xd9, 0x23, 0x84, 0x11, 0x73, 0x43, 0xa2, 0x2b, 0x97, 0x64, 0x79, 0x60, 0x08, - 0x63, 0x99, 0x0f, 0x09, 0xae, 0x5c, 0x92, 0x95, 0x62, 0x05, 0x92, 0x34, 0xba, 0x14, 0x05, 0x72, - 0x5b, 0xe5, 0xf5, 0xea, 0x96, 0x56, 0x6f, 0xec, 0xd6, 0xea, 0x3b, 0xe5, 0x2d, 0x59, 0x1a, 0xc8, - 0xd4, 0xea, 0x27, 0xf7, 0x6a, 0x6a, 0x75, 0x43, 0x8e, 0x05, 0x65, 0x8d, 0x6a, 0x79, 0xb7, 0xba, - 0x21, 0xc7, 0x8b, 0x3a, 0x2c, 0x8e, 0xcb, 0x33, 0x63, 0x4f, 0x46, 0x60, 0x8b, 0x63, 0xc7, 0x6c, - 0x31, 0xe5, 0x1a, 0xd9, 0xe2, 0x2f, 0x4b, 0xb0, 0x30, 0x26, 0xd7, 0x8e, 0x7d, 0xc8, 0x73, 0x90, - 0x64, 0x21, 0xca, 0xaa, 0xcf, 0x13, 0x63, 0x93, 0x36, 0x0d, 0xd8, 0x91, 0x0a, 0x44, 0x71, 0xc1, - 0x0a, 0x1c, 0x3f, 0xa6, 0x02, 0x13, 0x8a, 0x11, 0x23, 0x5f, 0x92, 0x20, 0x7f, 0x1c, 0x77, 0x44, - 0xa2, 0x88, 0x85, 0x12, 0xc5, 0xb5, 0x61, 0x03, 0xce, 0x1f, 0xbf, 0x86, 0x11, 0x2b, 0x5e, 0x93, - 0xe0, 0xcc, 0xf8, 0x46, 0x65, 0xac, 0x0d, 0x1f, 0x87, 0xe9, 0x2e, 0xf6, 0x0e, 0x6c, 0x51, 0xac, - 0x3f, 0x34, 0xa6, 0x04, 0x90, 0xe9, 0x61, 0x5f, 0x71, 0x54, 0xb0, 0x86, 0xc4, 0x8f, 0xeb, 0x36, - 0x98, 0x35, 0x23, 0x96, 0x7e, 0x2e, 0x06, 0x0f, 0x8d, 0x25, 0x1f, 0x6b, 0xe8, 0xa3, 0x00, 0x86, - 0xd5, 0xeb, 0x7b, 0xac, 0x20, 0xb3, 0xfc, 0x94, 0xa6, 0x12, 0x7a, 0xf6, 0x49, 0xee, 0xe9, 0x7b, - 0xfe, 0x7c, 0x9c, 0xce, 0x03, 0x13, 0x51, 0x85, 0xab, 0x03, 0x43, 0x13, 0xd4, 0xd0, 0xc2, 0x31, - 0x2b, 0x1d, 0xa9, 0x75, 0x1f, 0x05, 0x59, 0x37, 0x0d, 0x6c, 0x79, 0x9a, 0xeb, 0x39, 0x18, 0x75, - 0x0d, 0xab, 0x43, 0x13, 0x70, 0xaa, 0x94, 0x6c, 0x23, 0xd3, 0xc5, 0xea, 0x1c, 0x9b, 0x6e, 0x8a, - 0x59, 0x82, 0xa0, 0x55, 0xc6, 0x09, 0x20, 0xa6, 0x43, 0x08, 0x36, 0xed, 0x23, 0x8a, 0x5f, 0x9b, - 0x81, 0x4c, 0xa0, 0xad, 0x53, 0xce, 0x43, 0xf6, 0x36, 0xba, 0x8b, 0x34, 0xd1, 0xaa, 0x33, 0x4f, - 0x64, 0x88, 0xac, 0xc1, 0xdb, 0xf5, 0x8f, 0xc2, 0x22, 0x55, 0xb1, 0xfb, 0x1e, 0x76, 0x34, 0xdd, - 0x44, 0xae, 0x4b, 0x9d, 0x96, 0xa2, 0xaa, 0x0a, 0x99, 0xab, 0x93, 0xa9, 0x8a, 0x98, 0x51, 0x2e, - 0xc3, 0x02, 0x45, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xac, 0x91, 0x97, 0x07, 0x97, 0x26, 0x62, - 0xdf, 0xb2, 0x79, 0xa2, 0xb1, 0xcd, 0x15, 0x88, 0x45, 0xae, 0xb2, 0x01, 0x8f, 0x52, 0x58, 0x07, - 0x5b, 0xd8, 0x41, 0x1e, 0xd6, 0xf0, 0x67, 0xfa, 0xc8, 0x74, 0x35, 0x64, 0xb5, 0xb4, 0x03, 0xe4, - 0x1e, 0xe4, 0x17, 0x09, 0xc1, 0x7a, 0x2c, 0x2f, 0xa9, 0x67, 0x89, 0xe2, 0x26, 0xd7, 0xab, 0x52, - 0xb5, 0xb2, 0xd5, 0xfa, 0x04, 0x72, 0x0f, 0x94, 0x12, 0x9c, 0xa1, 0x2c, 0xae, 0xe7, 0x18, 0x56, - 0x47, 0xd3, 0x0f, 0xb0, 0x7e, 0x47, 0xeb, 0x7b, 0xed, 0xab, 0xf9, 0x47, 0x82, 0xcf, 0xa7, 0x16, - 0x36, 0xa9, 0x4e, 0x85, 0xa8, 0xec, 0x79, 0xed, 0xab, 0x4a, 0x13, 0xb2, 0x64, 0x33, 0xba, 0xc6, - 0x8b, 0x58, 0x6b, 0xdb, 0x0e, 0xad, 0x2c, 0xb9, 0x31, 0x27, 0x3b, 0xe0, 0xc1, 0xd5, 0x3a, 0x07, - 0x6c, 0xdb, 0x2d, 0x5c, 0x4a, 0x36, 0x1b, 0xd5, 0xea, 0x86, 0x9a, 0x11, 0x2c, 0xd7, 0x6d, 0x87, - 0x04, 0x54, 0xc7, 0xf6, 0x1d, 0x9c, 0x61, 0x01, 0xd5, 0xb1, 0x85, 0x7b, 0x2f, 0xc3, 0x82, 0xae, - 0xb3, 0x35, 0x1b, 0xba, 0xc6, 0x5b, 0x7c, 0x37, 0x2f, 0x87, 0x9c, 0xa5, 0xeb, 0x9b, 0x4c, 0x81, - 0xc7, 0xb8, 0xab, 0x3c, 0x0b, 0x0f, 0x0d, 0x9c, 0x15, 0x04, 0xce, 0x8f, 0xac, 0x72, 0x18, 0x7a, - 0x19, 0x16, 0x7a, 0x87, 0xa3, 0x40, 0x25, 0xf4, 0xc4, 0xde, 0xe1, 0x30, 0xec, 0x71, 0xfa, 0xda, - 0xe6, 0x60, 0x1d, 0x79, 0xb8, 0x95, 0x7f, 0x38, 0xa8, 0x1d, 0x98, 0x50, 0xd6, 0x40, 0xd6, 0x75, - 0x0d, 0x5b, 0x68, 0xdf, 0xc4, 0x1a, 0x72, 0xb0, 0x85, 0xdc, 0xfc, 0xb9, 0xa0, 0x72, 0x4e, 0xd7, - 0xab, 0x74, 0xb6, 0x4c, 0x27, 0x95, 0x27, 0x61, 0xde, 0xde, 0xbf, 0xad, 0xb3, 0xc8, 0xd2, 0x7a, - 0x0e, 0x6e, 0x1b, 0x2f, 0xe4, 0x1f, 0xa3, 0x6e, 0x9a, 0x23, 0x13, 0x34, 0xae, 0x1a, 0x54, 0xac, - 0x3c, 0x01, 0xb2, 0xee, 0x1e, 0x20, 0xa7, 0x47, 0x4b, 0xbb, 0xdb, 0x43, 0x3a, 0xce, 0x3f, 0xce, - 0x54, 0x99, 0x7c, 0x47, 0x88, 0x49, 0x64, 0xbb, 0xf7, 0x8c, 0xb6, 0x27, 0x18, 0x2f, 0xb0, 0xc8, - 0xa6, 0x32, 0xce, 0x76, 0x13, 0x16, 0xfb, 0x96, 0x61, 0x79, 0xd8, 0xe9, 0x39, 0x98, 0x34, 0xf1, - 0xec, 0x24, 0xe6, 0xff, 0x65, 0xe6, 0x98, 0x36, 0x7c, 0x2f, 0xa8, 0xcd, 0x02, 0x40, 0x5d, 0xe8, - 0x8f, 0x0a, 0x8b, 0x25, 0xc8, 0x06, 0xe3, 0x42, 0x49, 0x03, 0x8b, 0x0c, 0x59, 0x22, 0x35, 0xb6, - 0x52, 0xdf, 0x20, 0xd5, 0xf1, 0xd3, 0x55, 0x39, 0x46, 0xaa, 0xf4, 0x56, 0x6d, 0xb7, 0xaa, 0xa9, - 0x7b, 0x3b, 0xbb, 0xb5, 0xed, 0xaa, 0x1c, 0x7f, 0x32, 0x9d, 0x7a, 0x6b, 0x46, 0xbe, 0x7f, 0xff, - 0xfe, 0xfd, 0x58, 0xf1, 0x3b, 0x31, 0xc8, 0x85, 0x3b, 0x63, 0xe5, 0xa7, 0xe0, 0x61, 0xf1, 0x1a, - 0xeb, 0x62, 0x4f, 0xbb, 0x67, 0x38, 0x34, 0x54, 0xbb, 0x88, 0xf5, 0x96, 0xbe, 0x97, 0x17, 0xb9, - 0x56, 0x13, 0x7b, 0xcf, 0x1b, 0x0e, 0x09, 0xc4, 0x2e, 0xf2, 0x94, 0x2d, 0x38, 0x67, 0xd9, 0x9a, - 0xeb, 0x21, 0xab, 0x85, 0x9c, 0x96, 0x36, 0xb8, 0x40, 0xd0, 0x90, 0xae, 0x63, 0xd7, 0xb5, 0x59, - 0x89, 0xf0, 0x59, 0x3e, 0x60, 0xd9, 0x4d, 0xae, 0x3c, 0xc8, 0x9d, 0x65, 0xae, 0x3a, 0x14, 0x11, - 0xf1, 0xe3, 0x22, 0xe2, 0x11, 0x48, 0x77, 0x51, 0x4f, 0xc3, 0x96, 0xe7, 0x1c, 0xd2, 0x7e, 0x2e, - 0xa5, 0xa6, 0xba, 0xa8, 0x57, 0x25, 0xe3, 0xf7, 0x6f, 0x0f, 0x82, 0x7e, 0xfc, 0xc7, 0x38, 0x64, - 0x83, 0x3d, 0x1d, 0x69, 0x91, 0x75, 0x9a, 0xbf, 0x25, 0x7a, 0xc2, 0x3f, 0x78, 0x62, 0x07, 0xb8, - 0x5a, 0x21, 0x89, 0xbd, 0x34, 0xcd, 0x3a, 0x2d, 0x95, 0x21, 0x49, 0x51, 0x25, 0x67, 0x1a, 0xb3, - 0xfe, 0x3d, 0xa5, 0xf2, 0x91, 0xb2, 0x09, 0xd3, 0xb7, 0x5d, 0xca, 0x3d, 0x4d, 0xb9, 0x1f, 0x3b, - 0x99, 0xfb, 0x46, 0x93, 0x92, 0xa7, 0x6f, 0x34, 0xb5, 0x9d, 0xba, 0xba, 0x5d, 0xde, 0x52, 0x39, - 0x5c, 0x39, 0x0b, 0x09, 0x13, 0xbd, 0x78, 0x18, 0x2e, 0x01, 0x54, 0x34, 0xa9, 0xe3, 0xcf, 0x42, - 0xe2, 0x1e, 0x46, 0x77, 0xc2, 0x89, 0x97, 0x8a, 0xde, 0xc7, 0xd0, 0x5f, 0x83, 0x24, 0xf5, 0x97, - 0x02, 0xc0, 0x3d, 0x26, 0x4f, 0x29, 0x29, 0x48, 0x54, 0xea, 0x2a, 0x09, 0x7f, 0x19, 0xb2, 0x4c, - 0xaa, 0x35, 0x6a, 0xd5, 0x4a, 0x55, 0x8e, 0x15, 0x2f, 0xc3, 0x34, 0x73, 0x02, 0x39, 0x1a, 0xbe, - 0x1b, 0xe4, 0x29, 0x3e, 0xe4, 0x1c, 0x92, 0x98, 0xdd, 0xdb, 0x5e, 0xaf, 0xaa, 0x72, 0x2c, 0xb8, - 0xbd, 0x2e, 0x64, 0x83, 0xed, 0xdc, 0x8f, 0x27, 0xa6, 0xfe, 0x5a, 0x82, 0x4c, 0xa0, 0x3d, 0x23, - 0x8d, 0x01, 0x32, 0x4d, 0xfb, 0x9e, 0x86, 0x4c, 0x03, 0xb9, 0x3c, 0x28, 0x80, 0x8a, 0xca, 0x44, - 0x32, 0xe9, 0xa6, 0xfd, 0x58, 0x8c, 0x7f, 0x55, 0x02, 0x79, 0xb8, 0xb5, 0x1b, 0x32, 0x50, 0xfa, - 0x89, 0x1a, 0xf8, 0x8a, 0x04, 0xb9, 0x70, 0x3f, 0x37, 0x64, 0xde, 0xf9, 0x9f, 0xa8, 0x79, 0x6f, - 0xc4, 0x60, 0x36, 0xd4, 0xc5, 0x4d, 0x6a, 0xdd, 0x67, 0x60, 0xde, 0x68, 0xe1, 0x6e, 0xcf, 0xf6, - 0xb0, 0xa5, 0x1f, 0x6a, 0x26, 0xbe, 0x8b, 0xcd, 0x7c, 0x91, 0x26, 0x8a, 0xb5, 0x93, 0xfb, 0xc4, - 0xd5, 0xda, 0x00, 0xb7, 0x45, 0x60, 0xa5, 0x85, 0xda, 0x46, 0x75, 0xbb, 0x51, 0xdf, 0xad, 0xee, - 0x54, 0x6e, 0x69, 0x7b, 0x3b, 0x3f, 0xbd, 0x53, 0x7f, 0x7e, 0x47, 0x95, 0x8d, 0x21, 0xb5, 0xf7, - 0xf1, 0xa8, 0x37, 0x40, 0x1e, 0x36, 0x4a, 0x79, 0x18, 0xc6, 0x99, 0x25, 0x4f, 0x29, 0x0b, 0x30, - 0xb7, 0x53, 0xd7, 0x9a, 0xb5, 0x8d, 0xaa, 0x56, 0xbd, 0x7e, 0xbd, 0x5a, 0xd9, 0x6d, 0xb2, 0x17, - 0x67, 0x5f, 0x7b, 0x37, 0x7c, 0xa8, 0x5f, 0x8e, 0xc3, 0xc2, 0x18, 0x4b, 0x94, 0x32, 0xef, 0xd9, - 0xd9, 0x6b, 0xc4, 0x47, 0x26, 0xb1, 0x7e, 0x95, 0x74, 0x05, 0x0d, 0xe4, 0x78, 0xbc, 0xc5, 0x7f, - 0x02, 0x88, 0x97, 0x2c, 0xcf, 0x68, 0x1b, 0xd8, 0xe1, 0xf7, 0x0c, 0xac, 0x91, 0x9f, 0x1b, 0xc8, - 0xd9, 0x55, 0xc3, 0x87, 0x41, 0xe9, 0xd9, 0xae, 0xe1, 0x19, 0x77, 0xb1, 0x66, 0x58, 0xe2, 0x52, - 0x82, 0x34, 0xf6, 0x09, 0x55, 0x16, 0x33, 0x35, 0xcb, 0xf3, 0xb5, 0x2d, 0xdc, 0x41, 0x43, 0xda, - 0x24, 0x81, 0xc7, 0x55, 0x59, 0xcc, 0xf8, 0xda, 0xe7, 0x21, 0xdb, 0xb2, 0xfb, 0xa4, 0x4d, 0x62, - 0x7a, 0xa4, 0x5e, 0x48, 0x6a, 0x86, 0xc9, 0x7c, 0x15, 0xde, 0xc7, 0x0e, 0x6e, 0x43, 0xb2, 0x6a, - 0x86, 0xc9, 0x98, 0xca, 0x05, 0x98, 0x43, 0x9d, 0x8e, 0x43, 0xc8, 0x05, 0x11, 0xeb, 0xcc, 0x73, - 0xbe, 0x98, 0x2a, 0x2e, 0xdd, 0x80, 0x94, 0xf0, 0x03, 0x29, 0xc9, 0xc4, 0x13, 0x5a, 0x8f, 0xdd, - 0x49, 0xc5, 0x56, 0xd2, 0x6a, 0xca, 0x12, 0x93, 0xe7, 0x21, 0x6b, 0xb8, 0xda, 0xe0, 0x72, 0x34, - 0xb6, 0x1c, 0x5b, 0x49, 0xa9, 0x19, 0xc3, 0xf5, 0x6f, 0xc3, 0x8a, 0xaf, 0xc5, 0x20, 0x17, 0xbe, - 0xdc, 0x55, 0x36, 0x20, 0x65, 0xda, 0x3a, 0xa2, 0xa1, 0xc5, 0xbe, 0x2c, 0xac, 0x44, 0xdc, 0x07, - 0xaf, 0x6e, 0x71, 0x7d, 0xd5, 0x47, 0x2e, 0xfd, 0xbd, 0x04, 0x29, 0x21, 0x56, 0xce, 0x40, 0xa2, - 0x87, 0xbc, 0x03, 0x4a, 0x97, 0x5c, 0x8f, 0xc9, 0x92, 0x4a, 0xc7, 0x44, 0xee, 0xf6, 0x90, 0x45, - 0x43, 0x80, 0xcb, 0xc9, 0x98, 0xec, 0xab, 0x89, 0x51, 0x8b, 0xb6, 0xfd, 0x76, 0xb7, 0x8b, 0x2d, - 0xcf, 0x15, 0xfb, 0xca, 0xe5, 0x15, 0x2e, 0x56, 0x9e, 0x82, 0x79, 0xcf, 0x41, 0x86, 0x19, 0xd2, - 0x4d, 0x50, 0x5d, 0x59, 0x4c, 0xf8, 0xca, 0x25, 0x38, 0x2b, 0x78, 0x5b, 0xd8, 0x43, 0xfa, 0x01, - 0x6e, 0x0d, 0x40, 0xd3, 0xf4, 0xe6, 0xf0, 0x61, 0xae, 0xb0, 0xc1, 0xe7, 0x05, 0xb6, 0xf8, 0x3d, - 0x09, 0xe6, 0xc5, 0x8b, 0x4a, 0xcb, 0x77, 0xd6, 0x36, 0x00, 0xb2, 0x2c, 0xdb, 0x0b, 0xba, 0x6b, - 0x34, 0x94, 0x47, 0x70, 0xab, 0x65, 0x1f, 0xa4, 0x06, 0x08, 0x96, 0xba, 0x00, 0x83, 0x99, 0x63, - 0xdd, 0x76, 0x0e, 0x32, 0xfc, 0xe6, 0x9e, 0x7e, 0xfe, 0x61, 0xaf, 0xb6, 0xc0, 0x44, 0xe4, 0x8d, - 0x46, 0x59, 0x84, 0xe4, 0x3e, 0xee, 0x18, 0x16, 0xbf, 0x4f, 0x64, 0x03, 0x71, 0x4b, 0x99, 0xf0, - 0x6f, 0x29, 0xd7, 0x6f, 0xc2, 0x82, 0x6e, 0x77, 0x87, 0xcd, 0x5d, 0x97, 0x87, 0x5e, 0xaf, 0xdd, - 0x4f, 0x48, 0x9f, 0x86, 0x41, 0x8b, 0xf9, 0xe5, 0x58, 0x7c, 0xb3, 0xb1, 0xfe, 0xd5, 0xd8, 0xd2, - 0x26, 0xc3, 0x35, 0xc4, 0x32, 0x55, 0xdc, 0x36, 0xb1, 0x4e, 0x4c, 0x87, 0x1f, 0x7c, 0x08, 0x3e, - 0xd2, 0x31, 0xbc, 0x83, 0xfe, 0xfe, 0xaa, 0x6e, 0x77, 0xd7, 0x3a, 0x76, 0xc7, 0x1e, 0x7c, 0xee, - 0x22, 0x23, 0x3a, 0xa0, 0xbf, 0xf8, 0x27, 0xaf, 0xb4, 0x2f, 0x5d, 0x8a, 0xfc, 0x3e, 0x56, 0xda, - 0x81, 0x05, 0xae, 0xac, 0xd1, 0x3b, 0x77, 0xf6, 0x6a, 0xa0, 0x9c, 0x78, 0xef, 0x92, 0xff, 0xc6, - 0x9b, 0xb4, 0x56, 0xab, 0xf3, 0x1c, 0x4a, 0xe6, 0xd8, 0x0b, 0x44, 0x49, 0x85, 0x87, 0x42, 0x7c, - 0xec, 0x5c, 0x62, 0x27, 0x82, 0xf1, 0x3b, 0x9c, 0x71, 0x21, 0xc0, 0xd8, 0xe4, 0xd0, 0x52, 0x05, - 0x66, 0x4f, 0xc3, 0xf5, 0xb7, 0x9c, 0x2b, 0x8b, 0x83, 0x24, 0x9b, 0x30, 0x47, 0x49, 0xf4, 0xbe, - 0xeb, 0xd9, 0x5d, 0x9a, 0xf4, 0x4e, 0xa6, 0xf9, 0xbb, 0x37, 0xd9, 0x41, 0xc9, 0x11, 0x58, 0xc5, - 0x47, 0x95, 0x4a, 0x40, 0x3f, 0x33, 0xb4, 0xb0, 0x6e, 0x46, 0x30, 0xbc, 0xce, 0x0d, 0xf1, 0xf5, - 0x4b, 0x9f, 0x82, 0x45, 0xf2, 0x9b, 0xe6, 0xa4, 0xa0, 0x25, 0xd1, 0xb7, 0x4c, 0xf9, 0xef, 0xbd, - 0xc4, 0xce, 0xe2, 0x82, 0x4f, 0x10, 0xb0, 0x29, 0xb0, 0x8b, 0x1d, 0xec, 0x79, 0xd8, 0x71, 0x35, - 0x64, 0x8e, 0x33, 0x2f, 0xf0, 0x9a, 0x9e, 0xff, 0xe2, 0xdb, 0xe1, 0x5d, 0xdc, 0x64, 0xc8, 0xb2, - 0x69, 0x96, 0xf6, 0xe0, 0xe1, 0x31, 0x51, 0x31, 0x01, 0xe7, 0xcb, 0x9c, 0x73, 0x71, 0x24, 0x32, - 0x08, 0x6d, 0x03, 0x84, 0xdc, 0xdf, 0xcb, 0x09, 0x38, 0x7f, 0x9b, 0x73, 0x2a, 0x1c, 0x2b, 0xb6, - 0x94, 0x30, 0xde, 0x80, 0xf9, 0xbb, 0xd8, 0xd9, 0xb7, 0x5d, 0x7e, 0x35, 0x32, 0x01, 0xdd, 0x2b, - 0x9c, 0x6e, 0x8e, 0x03, 0xe9, 0x5d, 0x09, 0xe1, 0x7a, 0x16, 0x52, 0x6d, 0xa4, 0xe3, 0x09, 0x28, - 0xbe, 0xc4, 0x29, 0x66, 0x88, 0x3e, 0x81, 0x96, 0x21, 0xdb, 0xb1, 0x79, 0x59, 0x8a, 0x86, 0xbf, - 0xca, 0xe1, 0x19, 0x81, 0xe1, 0x14, 0x3d, 0xbb, 0xd7, 0x37, 0x49, 0xcd, 0x8a, 0xa6, 0xf8, 0x1d, - 0x41, 0x21, 0x30, 0x9c, 0xe2, 0x14, 0x6e, 0xfd, 0x5d, 0x41, 0xe1, 0x06, 0xfc, 0xf9, 0x1c, 0x64, - 0x6c, 0xcb, 0x3c, 0xb4, 0xad, 0x49, 0x8c, 0xf8, 0x3d, 0xce, 0x00, 0x1c, 0x42, 0x08, 0xae, 0x41, - 0x7a, 0xd2, 0x8d, 0xf8, 0xfd, 0xb7, 0xc5, 0xf1, 0x10, 0x3b, 0xb0, 0x09, 0x73, 0x22, 0x41, 0x19, - 0xb6, 0x35, 0x01, 0xc5, 0x1f, 0x70, 0x8a, 0x5c, 0x00, 0xc6, 0x97, 0xe1, 0x61, 0xd7, 0xeb, 0xe0, - 0x49, 0x48, 0x5e, 0x13, 0xcb, 0xe0, 0x10, 0xee, 0xca, 0x7d, 0x6c, 0xe9, 0x07, 0x93, 0x31, 0x7c, - 0x45, 0xb8, 0x52, 0x60, 0x08, 0x45, 0x05, 0x66, 0xbb, 0xc8, 0x71, 0x0f, 0x90, 0x39, 0xd1, 0x76, - 0xfc, 0x21, 0xe7, 0xc8, 0xfa, 0x20, 0xee, 0x91, 0xbe, 0x75, 0x1a, 0x9a, 0xaf, 0x0a, 0x8f, 0x04, - 0x60, 0xfc, 0xe8, 0xb9, 0x1e, 0xbd, 0x80, 0x3a, 0x0d, 0xdb, 0xd7, 0xc4, 0xd1, 0x63, 0xd8, 0xed, - 0x20, 0xe3, 0x35, 0x48, 0xbb, 0xc6, 0x8b, 0x13, 0xd1, 0xfc, 0x91, 0xd8, 0x69, 0x0a, 0x20, 0xe0, - 0x5b, 0x70, 0x76, 0x6c, 0x99, 0x98, 0x80, 0xec, 0x8f, 0x39, 0xd9, 0x99, 0x31, 0xa5, 0x82, 0xa7, - 0x84, 0xd3, 0x52, 0xfe, 0x89, 0x48, 0x09, 0x78, 0x88, 0xab, 0x41, 0x5e, 0x14, 0x5c, 0xd4, 0x3e, - 0x9d, 0xd7, 0xfe, 0x54, 0x78, 0x8d, 0x61, 0x43, 0x5e, 0xdb, 0x85, 0x33, 0x9c, 0xf1, 0x74, 0xfb, - 0xfa, 0x75, 0x91, 0x58, 0x19, 0x7a, 0x2f, 0xbc, 0xbb, 0x3f, 0x03, 0x4b, 0xbe, 0x3b, 0x45, 0x47, - 0xea, 0x6a, 0x5d, 0xd4, 0x9b, 0x80, 0xf9, 0x1b, 0x9c, 0x59, 0x64, 0x7c, 0xbf, 0xa5, 0x75, 0xb7, - 0x51, 0x8f, 0x90, 0xdf, 0x84, 0xbc, 0x20, 0xef, 0x5b, 0x0e, 0xd6, 0xed, 0x8e, 0x65, 0xbc, 0x88, - 0x5b, 0x13, 0x50, 0xff, 0xd9, 0xd0, 0x56, 0xed, 0x05, 0xe0, 0x84, 0xb9, 0x06, 0xb2, 0xdf, 0xab, - 0x68, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0x9f, 0x8b, 0x9d, 0xf2, 0x71, 0x35, 0x0a, 0x2b, - 0x55, 0x21, 0x47, 0x87, 0x93, 0x86, 0xe4, 0x5f, 0x70, 0xa2, 0xd9, 0x01, 0x8a, 0x27, 0x0e, 0xdd, - 0xee, 0xf6, 0x90, 0x33, 0x49, 0xfe, 0xfb, 0x4b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, 0xef, 0xb0, - 0x87, 0x49, 0xb5, 0x9f, 0x80, 0xe1, 0x9b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x0d, 0xc3, 0x04, - 0x14, 0x7f, 0x25, 0x28, 0x04, 0x86, 0x50, 0x7c, 0x72, 0x50, 0x68, 0x1d, 0xdc, 0x31, 0x5c, 0xcf, - 0x61, 0x7d, 0xf0, 0xc9, 0x54, 0xdf, 0x7a, 0x3b, 0xdc, 0x84, 0xa9, 0x01, 0x68, 0xe9, 0x06, 0xcc, - 0x0d, 0xb5, 0x18, 0x4a, 0xd4, 0xff, 0x2c, 0xe4, 0x7f, 0xf6, 0x5d, 0x9e, 0x8c, 0xc2, 0x1d, 0x46, - 0x69, 0x8b, 0xec, 0x7b, 0xb8, 0x0f, 0x88, 0x26, 0x7b, 0xe9, 0x5d, 0x7f, 0xeb, 0x43, 0x6d, 0x40, - 0xe9, 0x3a, 0xcc, 0x86, 0x7a, 0x80, 0x68, 0xaa, 0xcf, 0x72, 0xaa, 0x6c, 0xb0, 0x05, 0x28, 0x5d, - 0x86, 0x04, 0xa9, 0xe7, 0xd1, 0xf0, 0x9f, 0xe3, 0x70, 0xaa, 0x5e, 0xfa, 0x18, 0xa4, 0x44, 0x1d, - 0x8f, 0x86, 0xfe, 0x3c, 0x87, 0xfa, 0x10, 0x02, 0x17, 0x35, 0x3c, 0x1a, 0xfe, 0x0b, 0x02, 0x2e, - 0x20, 0x04, 0x3e, 0xb9, 0x0b, 0xbf, 0xfd, 0x4b, 0x09, 0x9e, 0x87, 0x85, 0xef, 0xae, 0xc1, 0x0c, - 0x2f, 0xde, 0xd1, 0xe8, 0xcf, 0xf1, 0x87, 0x0b, 0x44, 0xe9, 0x19, 0x48, 0x4e, 0xe8, 0xf0, 0x5f, - 0xe6, 0x50, 0xa6, 0x5f, 0xaa, 0x40, 0x26, 0x50, 0xb0, 0xa3, 0xe1, 0xbf, 0xc2, 0xe1, 0x41, 0x14, - 0x31, 0x9d, 0x17, 0xec, 0x68, 0x82, 0x5f, 0x15, 0xa6, 0x73, 0x04, 0x71, 0x9b, 0xa8, 0xd5, 0xd1, - 0xe8, 0xcf, 0x0b, 0xaf, 0x0b, 0x48, 0xe9, 0x39, 0x48, 0xfb, 0xf9, 0x37, 0x1a, 0xff, 0x6b, 0x1c, - 0x3f, 0xc0, 0x10, 0x0f, 0x04, 0xf2, 0x7f, 0x34, 0xc5, 0xaf, 0x0b, 0x0f, 0x04, 0x50, 0xe4, 0x18, - 0x0d, 0xd7, 0xf4, 0x68, 0xa6, 0xdf, 0x10, 0xc7, 0x68, 0xa8, 0xa4, 0x93, 0xdd, 0xa4, 0x69, 0x30, - 0x9a, 0xe2, 0x37, 0xc5, 0x6e, 0x52, 0x7d, 0x62, 0xc6, 0x70, 0x91, 0x8c, 0xe6, 0xf8, 0x2d, 0x61, - 0xc6, 0x50, 0x8d, 0x2c, 0x35, 0x40, 0x19, 0x2d, 0x90, 0xd1, 0x7c, 0x5f, 0xe0, 0x7c, 0xf3, 0x23, - 0xf5, 0xb1, 0xf4, 0x3c, 0x9c, 0x19, 0x5f, 0x1c, 0xa3, 0x59, 0xbf, 0xf8, 0xee, 0xd0, 0xeb, 0x4c, - 0xb0, 0x36, 0x96, 0x76, 0x07, 0x59, 0x36, 0x58, 0x18, 0xa3, 0x69, 0x5f, 0x7e, 0x37, 0x9c, 0x68, - 0x83, 0x75, 0xb1, 0x54, 0x06, 0x18, 0xd4, 0xa4, 0x68, 0xae, 0x57, 0x38, 0x57, 0x00, 0x44, 0x8e, - 0x06, 0x2f, 0x49, 0xd1, 0xf8, 0x2f, 0x89, 0xa3, 0xc1, 0x11, 0xe4, 0x68, 0x88, 0x6a, 0x14, 0x8d, - 0x7e, 0x55, 0x1c, 0x0d, 0x01, 0x29, 0x5d, 0x83, 0x94, 0xd5, 0x37, 0x4d, 0x12, 0x5b, 0xca, 0xc9, - 0xff, 0x46, 0x94, 0xff, 0xd7, 0xf7, 0x38, 0x58, 0x00, 0x4a, 0x97, 0x21, 0x89, 0xbb, 0xfb, 0xb8, - 0x15, 0x85, 0xfc, 0xb7, 0xf7, 0x44, 0x3e, 0x21, 0xda, 0xa5, 0xe7, 0x00, 0xd8, 0xcb, 0x34, 0xfd, - 0x4a, 0x14, 0x81, 0xfd, 0xf7, 0xf7, 0xf8, 0x7f, 0x28, 0x0c, 0x20, 0x03, 0x02, 0xf6, 0xff, 0x0e, - 0x27, 0x13, 0xbc, 0x1d, 0x26, 0xa0, 0x2f, 0xe0, 0xcf, 0xc2, 0xcc, 0x6d, 0xd7, 0xb6, 0x3c, 0xd4, - 0x89, 0x42, 0xff, 0x07, 0x47, 0x0b, 0x7d, 0xe2, 0xb0, 0xae, 0xed, 0x60, 0x0f, 0x75, 0xdc, 0x28, - 0xec, 0x7f, 0x72, 0xac, 0x0f, 0x20, 0x60, 0x1d, 0xb9, 0xde, 0x24, 0xeb, 0xfe, 0x2f, 0x01, 0x16, - 0x00, 0x62, 0x34, 0xf9, 0x7d, 0x07, 0x1f, 0x46, 0x61, 0xdf, 0x11, 0x46, 0x73, 0xfd, 0xd2, 0xc7, - 0x20, 0x4d, 0x7e, 0xb2, 0xff, 0xda, 0x89, 0x00, 0xff, 0x37, 0x07, 0x0f, 0x10, 0xe4, 0xc9, 0xae, - 0xd7, 0xf2, 0x8c, 0x68, 0x67, 0xff, 0x0f, 0xdf, 0x69, 0xa1, 0x5f, 0x2a, 0x43, 0xc6, 0xf5, 0x5a, - 0xad, 0x3e, 0xef, 0x68, 0x22, 0xe0, 0x3f, 0x78, 0xcf, 0x7f, 0xc9, 0xf5, 0x31, 0xeb, 0xe7, 0xc7, - 0x5f, 0xd6, 0xc1, 0xa6, 0xbd, 0x69, 0xb3, 0x6b, 0x3a, 0xf8, 0x7c, 0x12, 0x8a, 0xba, 0xdd, 0xdd, - 0xb7, 0xdd, 0xb5, 0x40, 0x1a, 0x5a, 0xf3, 0x57, 0x20, 0xae, 0xda, 0x7c, 0xc1, 0xd2, 0xe9, 0x2e, - 0xe9, 0x8a, 0x7f, 0x13, 0x87, 0x54, 0x05, 0xb9, 0x1e, 0xba, 0x87, 0x0e, 0x95, 0x1e, 0x2c, 0x90, - 0xdf, 0xdb, 0xa8, 0x47, 0xaf, 0x7c, 0xf8, 0x19, 0xe3, 0x97, 0xa0, 0x1f, 0x5e, 0x1d, 0x3c, 0x55, - 0x20, 0x56, 0xc7, 0xa8, 0xd3, 0x8f, 0xc7, 0xeb, 0xf2, 0xeb, 0xff, 0x74, 0x6e, 0xea, 0x17, 0xff, - 0xf9, 0x5c, 0x6a, 0xfb, 0xf0, 0x79, 0xc3, 0x74, 0x6d, 0x4b, 0x1d, 0x47, 0xad, 0x7c, 0x56, 0x82, - 0x47, 0xc6, 0xc8, 0x77, 0xf8, 0x41, 0xe4, 0x9f, 0x12, 0x2e, 0x4d, 0xf8, 0x68, 0x01, 0x63, 0x26, - 0x64, 0x43, 0x8f, 0x3f, 0xe9, 0x31, 0x4b, 0xb7, 0x20, 0x7f, 0xdc, 0x4a, 0x14, 0x19, 0xe2, 0x77, - 0xf0, 0x21, 0xff, 0xf7, 0x50, 0xf2, 0x53, 0xb9, 0x30, 0xf8, 0xf7, 0x32, 0x69, 0x25, 0x73, 0x71, - 0x3e, 0x60, 0x1d, 0x7f, 0x18, 0x9b, 0x2f, 0xc5, 0xae, 0x4a, 0x4b, 0x08, 0x96, 0xa3, 0x2c, 0xfd, - 0x7f, 0x3e, 0xa2, 0x58, 0x80, 0x69, 0x26, 0x54, 0x16, 0x21, 0x59, 0xb3, 0xbc, 0x2b, 0x97, 0x28, - 0x55, 0x5c, 0x65, 0x83, 0xf5, 0xad, 0xd7, 0x1f, 0x14, 0xa6, 0xbe, 0xfb, 0xa0, 0x30, 0xf5, 0x0f, - 0x0f, 0x0a, 0x53, 0x6f, 0x3c, 0x28, 0x48, 0x6f, 0x3d, 0x28, 0x48, 0xef, 0x3c, 0x28, 0x48, 0x3f, - 0x7c, 0x50, 0x90, 0xee, 0x1f, 0x15, 0xa4, 0xaf, 0x1c, 0x15, 0xa4, 0xaf, 0x1f, 0x15, 0xa4, 0x6f, - 0x1d, 0x15, 0xa4, 0x6f, 0x1f, 0x15, 0xa4, 0xd7, 0x8f, 0x0a, 0x53, 0xdf, 0x3d, 0x2a, 0x48, 0x6f, - 0x1c, 0x15, 0xa4, 0xb7, 0x8e, 0x0a, 0x53, 0xef, 0x1c, 0x15, 0xa4, 0x1f, 0x1e, 0x15, 0xa6, 0xee, - 0x7f, 0xbf, 0x30, 0xf5, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x72, 0x73, 0x97, 0x57, 0xef, 0x30, - 0x00, 0x00, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0xcb, 0x10, 0x1d, 0x43, 0x14, 0x6c, + 0x47, 0xb4, 0x9d, 0x90, 0x19, 0x59, 0x92, 0x25, 0xa8, 0x89, 0x0b, 0x82, 0x10, 0x03, 0x95, 0x7f, + 0x59, 0x92, 0xb1, 0xe5, 0x4c, 0x67, 0x67, 0xb9, 0xb8, 0x00, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, + 0x92, 0xa9, 0xe9, 0x83, 0x3a, 0x4e, 0xdb, 0x49, 0x3b, 0x6d, 0xd3, 0x9f, 0x99, 0x24, 0xae, 0xe3, + 0xfe, 0xcc, 0xb4, 0x4e, 0xd3, 0xbf, 0xa4, 0x69, 0xd3, 0xb4, 0x4f, 0xe9, 0x43, 0x5a, 0x3f, 0x75, + 0x92, 0xb7, 0x3e, 0x74, 0x5a, 0x8b, 0xf1, 0x4c, 0xdd, 0xd6, 0x6d, 0xdc, 0xd6, 0x0f, 0x9e, 0xf1, + 0x4b, 0xe7, 0xfe, 0x2d, 0x76, 0x01, 0x90, 0x0b, 0xa6, 0x63, 0xe7, 0x89, 0xd8, 0x73, 0xcf, 0xf7, + 0xed, 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0x77, 0x09, 0x3f, 0xbc, 0x02, 0xf3, 0x6d, 0xdb, 0x6e, + 0x9b, 0x78, 0xc9, 0x71, 0x6d, 0xdf, 0xde, 0xeb, 0xb6, 0x96, 0x9a, 0xd8, 0xd3, 0x5d, 0xc3, 0xf1, + 0x6d, 0x77, 0x91, 0xca, 0xd0, 0x14, 0xd3, 0x58, 0x14, 0x1a, 0xe5, 0x75, 0x98, 0xbe, 0x66, 0x98, + 0x78, 0x25, 0x50, 0xdc, 0xc6, 0x3e, 0xba, 0x0c, 0xa9, 0x96, 0x61, 0xe2, 0xa2, 0x34, 0x9f, 0x5c, + 0xc8, 0x9d, 0x7f, 0x74, 0xb1, 0x0f, 0xb4, 0x18, 0x45, 0x6c, 0x11, 0xb1, 0x42, 0x11, 0xe5, 0x37, + 0x52, 0x30, 0x33, 0x64, 0x14, 0x21, 0x48, 0x59, 0x5a, 0x87, 0x30, 0x4a, 0x0b, 0x59, 0x85, 0xfe, + 0x46, 0x45, 0x98, 0x70, 0x34, 0xfd, 0x96, 0xd6, 0xc6, 0xc5, 0x04, 0x15, 0x8b, 0x47, 0x54, 0x02, + 0x68, 0x62, 0x07, 0x5b, 0x4d, 0x6c, 0xe9, 0x07, 0xc5, 0xe4, 0x7c, 0x72, 0x21, 0xab, 0x84, 0x24, + 0xe8, 0x49, 0x98, 0x76, 0xba, 0x7b, 0xa6, 0xa1, 0xab, 0x21, 0x35, 0x98, 0x4f, 0x2e, 0xa4, 0x15, + 0x99, 0x0d, 0xac, 0xf4, 0x94, 0xcf, 0xc1, 0xd4, 0x1d, 0xac, 0xdd, 0x0a, 0xab, 0xe6, 0xa8, 0x6a, + 0x81, 0x88, 0x43, 0x8a, 0x35, 0xc8, 0x77, 0xb0, 0xe7, 0x69, 0x6d, 0xac, 0xfa, 0x07, 0x0e, 0x2e, + 0xa6, 0xe8, 0xec, 0xe7, 0x07, 0x66, 0xdf, 0x3f, 0xf3, 0x1c, 0x47, 0xed, 0x1c, 0x38, 0x18, 0x55, + 0x21, 0x8b, 0xad, 0x6e, 0x87, 0x31, 0xa4, 0x8f, 0xf0, 0x5f, 0xdd, 0xea, 0x76, 0xfa, 0x59, 0x32, + 0x04, 0xc6, 0x29, 0x26, 0x3c, 0xec, 0xde, 0x36, 0x74, 0x5c, 0x1c, 0xa7, 0x04, 0xe7, 0x06, 0x08, + 0xb6, 0xd9, 0x78, 0x3f, 0x87, 0xc0, 0xa1, 0x1a, 0x64, 0xf1, 0x0b, 0x3e, 0xb6, 0x3c, 0xc3, 0xb6, + 0x8a, 0x13, 0x94, 0xe4, 0xb1, 0x21, 0xab, 0x88, 0xcd, 0x66, 0x3f, 0x45, 0x0f, 0x87, 0x2e, 0xc1, + 0x84, 0xed, 0xf8, 0x86, 0x6d, 0x79, 0xc5, 0xcc, 0xbc, 0xb4, 0x90, 0x3b, 0xff, 0xa1, 0xa1, 0x81, + 0xb0, 0xc9, 0x74, 0x14, 0xa1, 0x8c, 0x1a, 0x20, 0x7b, 0x76, 0xd7, 0xd5, 0xb1, 0xaa, 0xdb, 0x4d, + 0xac, 0x1a, 0x56, 0xcb, 0x2e, 0x66, 0x29, 0xc1, 0x99, 0xc1, 0x89, 0x50, 0xc5, 0x9a, 0xdd, 0xc4, + 0x0d, 0xab, 0x65, 0x2b, 0x05, 0x2f, 0xf2, 0x8c, 0x4e, 0xc1, 0xb8, 0x77, 0x60, 0xf9, 0xda, 0x0b, + 0xc5, 0x3c, 0x8d, 0x10, 0xfe, 0x54, 0xfe, 0xeb, 0x71, 0x98, 0x1a, 0x25, 0xc4, 0xae, 0x42, 0xba, + 0x45, 0x66, 0x59, 0x4c, 0x9c, 0xc4, 0x07, 0x0c, 0x13, 0x75, 0xe2, 0xf8, 0x8f, 0xe8, 0xc4, 0x2a, + 0xe4, 0x2c, 0xec, 0xf9, 0xb8, 0xc9, 0x22, 0x22, 0x39, 0x62, 0x4c, 0x01, 0x03, 0x0d, 0x86, 0x54, + 0xea, 0x47, 0x0a, 0xa9, 0xe7, 0x60, 0x2a, 0x30, 0x49, 0x75, 0x35, 0xab, 0x2d, 0x62, 0x73, 0x29, + 0xce, 0x92, 0xc5, 0xba, 0xc0, 0x29, 0x04, 0xa6, 0x14, 0x70, 0xe4, 0x19, 0xad, 0x00, 0xd8, 0x16, + 0xb6, 0x5b, 0x6a, 0x13, 0xeb, 0x66, 0x31, 0x73, 0x84, 0x97, 0x36, 0x89, 0xca, 0x80, 0x97, 0x6c, + 0x26, 0xd5, 0x4d, 0x74, 0xa5, 0x17, 0x6a, 0x13, 0x47, 0x44, 0xca, 0x3a, 0xdb, 0x64, 0x03, 0xd1, + 0xb6, 0x0b, 0x05, 0x17, 0x93, 0xb8, 0xc7, 0x4d, 0x3e, 0xb3, 0x2c, 0x35, 0x62, 0x31, 0x76, 0x66, + 0x0a, 0x87, 0xb1, 0x89, 0x4d, 0xba, 0xe1, 0x47, 0xf4, 0x08, 0x04, 0x02, 0x95, 0x86, 0x15, 0xd0, + 0x2c, 0x94, 0x17, 0xc2, 0x0d, 0xad, 0x83, 0xe7, 0xee, 0x42, 0x21, 0xea, 0x1e, 0x34, 0x0b, 0x69, + 0xcf, 0xd7, 0x5c, 0x9f, 0x46, 0x61, 0x5a, 0x61, 0x0f, 0x48, 0x86, 0x24, 0xb6, 0x9a, 0x34, 0xcb, + 0xa5, 0x15, 0xf2, 0x13, 0xfd, 0x64, 0x6f, 0xc2, 0x49, 0x3a, 0xe1, 0x0f, 0x0f, 0xae, 0x68, 0x84, + 0xb9, 0x7f, 0xde, 0x73, 0x4f, 0xc3, 0x64, 0x64, 0x02, 0xa3, 0xbe, 0xba, 0xfc, 0x33, 0xf0, 0xc0, + 0x50, 0x6a, 0xf4, 0x1c, 0xcc, 0x76, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, 0x44, 0x2c, 0x7b, + 0x55, 0xf1, 0x5f, 0x27, 0x8e, 0x88, 0xb9, 0xdd, 0xb0, 0x36, 0x63, 0x51, 0x66, 0xba, 0x83, 0xc2, + 0x27, 0xb2, 0x99, 0x37, 0x27, 0xe4, 0x7b, 0xf7, 0xee, 0xdd, 0x4b, 0x94, 0xbf, 0x34, 0x0e, 0xb3, + 0xc3, 0xf6, 0xcc, 0xd0, 0xed, 0x7b, 0x0a, 0xc6, 0xad, 0x6e, 0x67, 0x0f, 0xbb, 0xd4, 0x49, 0x69, + 0x85, 0x3f, 0xa1, 0x2a, 0xa4, 0x4d, 0x6d, 0x0f, 0x9b, 0xc5, 0xd4, 0xbc, 0xb4, 0x50, 0x38, 0xff, + 0xe4, 0x48, 0xbb, 0x72, 0x71, 0x8d, 0x40, 0x14, 0x86, 0x44, 0x9f, 0x80, 0x14, 0x4f, 0xd1, 0x84, + 0xe1, 0x89, 0xd1, 0x18, 0xc8, 0x5e, 0x52, 0x28, 0x0e, 0x3d, 0x04, 0x59, 0xf2, 0x97, 0xc5, 0xc6, + 0x38, 0xb5, 0x39, 0x43, 0x04, 0x24, 0x2e, 0xd0, 0x1c, 0x64, 0xe8, 0x36, 0x69, 0x62, 0x51, 0xda, + 0x82, 0x67, 0x12, 0x58, 0x4d, 0xdc, 0xd2, 0xba, 0xa6, 0xaf, 0xde, 0xd6, 0xcc, 0x2e, 0xa6, 0x01, + 0x9f, 0x55, 0xf2, 0x5c, 0xf8, 0x69, 0x22, 0x43, 0x67, 0x20, 0xc7, 0x76, 0x95, 0x61, 0x35, 0xf1, + 0x0b, 0x34, 0x7b, 0xa6, 0x15, 0xb6, 0xd1, 0x1a, 0x44, 0x42, 0x5e, 0x7f, 0xd3, 0xb3, 0x2d, 0x11, + 0x9a, 0xf4, 0x15, 0x44, 0x40, 0x5f, 0xff, 0x74, 0x7f, 0xe2, 0x7e, 0x78, 0xf8, 0xf4, 0xfa, 0x63, + 0xaa, 0xfc, 0xad, 0x04, 0xa4, 0x68, 0xbe, 0x98, 0x82, 0xdc, 0xce, 0x8d, 0xad, 0xba, 0xba, 0xb2, + 0xb9, 0xbb, 0xbc, 0x56, 0x97, 0x25, 0x54, 0x00, 0xa0, 0x82, 0x6b, 0x6b, 0x9b, 0xd5, 0x1d, 0x39, + 0x11, 0x3c, 0x37, 0x36, 0x76, 0x2e, 0x5d, 0x90, 0x93, 0x01, 0x60, 0x97, 0x09, 0x52, 0x61, 0x85, + 0xa7, 0xce, 0xcb, 0x69, 0x24, 0x43, 0x9e, 0x11, 0x34, 0x9e, 0xab, 0xaf, 0x5c, 0xba, 0x20, 0x8f, + 0x47, 0x25, 0x4f, 0x9d, 0x97, 0x27, 0xd0, 0x24, 0x64, 0xa9, 0x64, 0x79, 0x73, 0x73, 0x4d, 0xce, + 0x04, 0x9c, 0xdb, 0x3b, 0x4a, 0x63, 0x63, 0x55, 0xce, 0x06, 0x9c, 0xab, 0xca, 0xe6, 0xee, 0x96, + 0x0c, 0x01, 0xc3, 0x7a, 0x7d, 0x7b, 0xbb, 0xba, 0x5a, 0x97, 0x73, 0x81, 0xc6, 0xf2, 0x8d, 0x9d, + 0xfa, 0xb6, 0x9c, 0x8f, 0x98, 0xf5, 0xd4, 0x79, 0x79, 0x32, 0x78, 0x45, 0x7d, 0x63, 0x77, 0x5d, + 0x2e, 0xa0, 0x69, 0x98, 0x64, 0xaf, 0x10, 0x46, 0x4c, 0xf5, 0x89, 0x2e, 0x5d, 0x90, 0xe5, 0x9e, + 0x21, 0x8c, 0x65, 0x3a, 0x22, 0xb8, 0x74, 0x41, 0x46, 0xe5, 0x1a, 0xa4, 0x69, 0x74, 0x21, 0x04, + 0x85, 0xb5, 0xea, 0x72, 0x7d, 0x4d, 0xdd, 0xdc, 0xda, 0x69, 0x6c, 0x6e, 0x54, 0xd7, 0x64, 0xa9, + 0x27, 0x53, 0xea, 0x9f, 0xda, 0x6d, 0x28, 0xf5, 0x15, 0x39, 0x11, 0x96, 0x6d, 0xd5, 0xab, 0x3b, + 0xf5, 0x15, 0x39, 0x59, 0xd6, 0x61, 0x76, 0x58, 0x9e, 0x1c, 0xba, 0x33, 0x42, 0x4b, 0x9c, 0x38, + 0x62, 0x89, 0x29, 0xd7, 0xc0, 0x12, 0xff, 0x20, 0x01, 0x33, 0x43, 0x6a, 0xc5, 0xd0, 0x97, 0x3c, + 0x03, 0x69, 0x16, 0xa2, 0xac, 0x7a, 0x3e, 0x3e, 0xb4, 0xe8, 0xd0, 0x80, 0x1d, 0xa8, 0xa0, 0x14, + 0x17, 0xee, 0x20, 0x92, 0x47, 0x74, 0x10, 0x84, 0x62, 0x20, 0xa7, 0xff, 0xf4, 0x40, 0x4e, 0x67, + 0x65, 0xef, 0xd2, 0x28, 0x65, 0x8f, 0xca, 0x4e, 0x96, 0xdb, 0xd3, 0x43, 0x72, 0xfb, 0x55, 0x98, + 0x1e, 0x20, 0x1a, 0x39, 0xc7, 0xbe, 0x28, 0x41, 0xf1, 0x28, 0xe7, 0xc4, 0x64, 0xba, 0x44, 0x24, + 0xd3, 0x5d, 0xed, 0xf7, 0xe0, 0xd9, 0xa3, 0x17, 0x61, 0x60, 0xad, 0x5f, 0x95, 0xe0, 0xd4, 0xf0, + 0x4e, 0x71, 0xa8, 0x0d, 0x9f, 0x80, 0xf1, 0x0e, 0xf6, 0xf7, 0x6d, 0xd1, 0x2d, 0x7d, 0x78, 0x48, + 0x0d, 0x26, 0xc3, 0xfd, 0x8b, 0xcd, 0x51, 0xe1, 0x22, 0x9e, 0x3c, 0xaa, 0xdd, 0x63, 0xd6, 0x0c, + 0x58, 0xfa, 0xf9, 0x04, 0x3c, 0x30, 0x94, 0x7c, 0xa8, 0xa1, 0x0f, 0x03, 0x18, 0x96, 0xd3, 0xf5, + 0x59, 0x47, 0xc4, 0x12, 0x6c, 0x96, 0x4a, 0x68, 0xf2, 0x22, 0xc9, 0xb3, 0xeb, 0x07, 0xe3, 0x49, + 0x3a, 0x0e, 0x4c, 0x44, 0x15, 0x2e, 0xf7, 0x0c, 0x4d, 0x51, 0x43, 0x4b, 0x47, 0xcc, 0x74, 0x20, + 0x30, 0x3f, 0x06, 0xb2, 0x6e, 0x1a, 0xd8, 0xf2, 0x55, 0xcf, 0x77, 0xb1, 0xd6, 0x31, 0xac, 0x36, + 0xad, 0x20, 0x99, 0x4a, 0xba, 0xa5, 0x99, 0x1e, 0x56, 0xa6, 0xd8, 0xf0, 0xb6, 0x18, 0x25, 0x08, + 0x1a, 0x40, 0x6e, 0x08, 0x31, 0x1e, 0x41, 0xb0, 0xe1, 0x00, 0x51, 0xfe, 0x66, 0x06, 0x72, 0xa1, + 0xbe, 0x1a, 0x9d, 0x85, 0xfc, 0x4d, 0xed, 0xb6, 0xa6, 0x8a, 0xb3, 0x12, 0xf3, 0x44, 0x8e, 0xc8, + 0xb6, 0xf8, 0x79, 0xe9, 0x63, 0x30, 0x4b, 0x55, 0xec, 0xae, 0x8f, 0x5d, 0x55, 0x37, 0x35, 0xcf, + 0xa3, 0x4e, 0xcb, 0x50, 0x55, 0x44, 0xc6, 0x36, 0xc9, 0x50, 0x4d, 0x8c, 0xa0, 0x8b, 0x30, 0x43, + 0x11, 0x9d, 0xae, 0xe9, 0x1b, 0x8e, 0x89, 0x55, 0x72, 0x7a, 0xf3, 0x68, 0x25, 0x09, 0x2c, 0x9b, + 0x26, 0x1a, 0xeb, 0x5c, 0x81, 0x58, 0xe4, 0xa1, 0x15, 0x78, 0x98, 0xc2, 0xda, 0xd8, 0xc2, 0xae, + 0xe6, 0x63, 0x15, 0x7f, 0xb6, 0xab, 0x99, 0x9e, 0xaa, 0x59, 0x4d, 0x75, 0x5f, 0xf3, 0xf6, 0x8b, + 0xb3, 0x84, 0x60, 0x39, 0x51, 0x94, 0x94, 0xd3, 0x44, 0x71, 0x95, 0xeb, 0xd5, 0xa9, 0x5a, 0xd5, + 0x6a, 0x7e, 0x52, 0xf3, 0xf6, 0x51, 0x05, 0x4e, 0x51, 0x16, 0xcf, 0x77, 0x0d, 0xab, 0xad, 0xea, + 0xfb, 0x58, 0xbf, 0xa5, 0x76, 0xfd, 0xd6, 0xe5, 0xe2, 0x43, 0xe1, 0xf7, 0x53, 0x0b, 0xb7, 0xa9, + 0x4e, 0x8d, 0xa8, 0xec, 0xfa, 0xad, 0xcb, 0x68, 0x1b, 0xf2, 0x64, 0x31, 0x3a, 0xc6, 0x5d, 0xac, + 0xb6, 0x6c, 0x97, 0x96, 0xc6, 0xc2, 0x90, 0xd4, 0x14, 0xf2, 0xe0, 0xe2, 0x26, 0x07, 0xac, 0xdb, + 0x4d, 0x5c, 0x49, 0x6f, 0x6f, 0xd5, 0xeb, 0x2b, 0x4a, 0x4e, 0xb0, 0x5c, 0xb3, 0x5d, 0x12, 0x50, + 0x6d, 0x3b, 0x70, 0x70, 0x8e, 0x05, 0x54, 0xdb, 0x16, 0xee, 0xbd, 0x08, 0x33, 0xba, 0xce, 0xe6, + 0x6c, 0xe8, 0x2a, 0x3f, 0x63, 0x79, 0x45, 0x39, 0xe2, 0x2c, 0x5d, 0x5f, 0x65, 0x0a, 0x3c, 0xc6, + 0x3d, 0x74, 0x05, 0x1e, 0xe8, 0x39, 0x2b, 0x0c, 0x9c, 0x1e, 0x98, 0x65, 0x3f, 0xf4, 0x22, 0xcc, + 0x38, 0x07, 0x83, 0x40, 0x14, 0x79, 0xa3, 0x73, 0xd0, 0x0f, 0x7b, 0x1a, 0x66, 0x9d, 0x7d, 0x67, + 0x10, 0xf7, 0x44, 0x18, 0x87, 0x9c, 0x7d, 0xa7, 0x1f, 0xf8, 0x18, 0x3d, 0x70, 0xbb, 0x58, 0xd7, + 0x7c, 0xdc, 0x2c, 0x3e, 0x18, 0x56, 0x0f, 0x0d, 0xa0, 0x25, 0x90, 0x75, 0x5d, 0xc5, 0x96, 0xb6, + 0x67, 0x62, 0x55, 0x73, 0xb1, 0xa5, 0x79, 0xc5, 0x33, 0x61, 0xe5, 0x82, 0xae, 0xd7, 0xe9, 0x68, + 0x95, 0x0e, 0xa2, 0x27, 0x60, 0xda, 0xde, 0xbb, 0xa9, 0xb3, 0x90, 0x54, 0x1d, 0x17, 0xb7, 0x8c, + 0x17, 0x8a, 0x8f, 0x52, 0xff, 0x4e, 0x91, 0x01, 0x1a, 0x90, 0x5b, 0x54, 0x8c, 0x1e, 0x07, 0x59, + 0xf7, 0xf6, 0x35, 0xd7, 0xa1, 0x39, 0xd9, 0x73, 0x34, 0x1d, 0x17, 0x1f, 0x63, 0xaa, 0x4c, 0xbe, + 0x21, 0xc4, 0x64, 0x4b, 0x78, 0x77, 0x8c, 0x96, 0x2f, 0x18, 0xcf, 0xb1, 0x2d, 0x41, 0x65, 0x9c, + 0x6d, 0x01, 0x64, 0xe2, 0x8a, 0xc8, 0x8b, 0x17, 0xa8, 0x5a, 0xc1, 0xd9, 0x77, 0xc2, 0xef, 0x7d, + 0x04, 0x26, 0x89, 0x66, 0xef, 0xa5, 0x8f, 0xb3, 0x86, 0xcc, 0xd9, 0x0f, 0xbd, 0xf1, 0x7d, 0xeb, + 0x8d, 0xcb, 0x15, 0xc8, 0x87, 0xe3, 0x13, 0x65, 0x81, 0x45, 0xa8, 0x2c, 0x91, 0x66, 0xa5, 0xb6, + 0xb9, 0x42, 0xda, 0x8c, 0xe7, 0xeb, 0x72, 0x82, 0xb4, 0x3b, 0x6b, 0x8d, 0x9d, 0xba, 0xaa, 0xec, + 0x6e, 0xec, 0x34, 0xd6, 0xeb, 0x72, 0x32, 0xdc, 0x57, 0x7f, 0x37, 0x01, 0x85, 0xe8, 0x11, 0x09, + 0xfd, 0x04, 0x3c, 0x28, 0xee, 0x33, 0x3c, 0xec, 0xab, 0x77, 0x0c, 0x97, 0x6e, 0x99, 0x8e, 0xc6, + 0xca, 0x57, 0xb0, 0x68, 0xb3, 0x5c, 0x6b, 0x1b, 0xfb, 0xcf, 0x1a, 0x2e, 0xd9, 0x10, 0x1d, 0xcd, + 0x47, 0x6b, 0x70, 0xc6, 0xb2, 0x55, 0xcf, 0xd7, 0xac, 0xa6, 0xe6, 0x36, 0xd5, 0xde, 0x4d, 0x92, + 0xaa, 0xe9, 0x3a, 0xf6, 0x3c, 0x9b, 0x95, 0xaa, 0x80, 0xe5, 0x43, 0x96, 0xbd, 0xcd, 0x95, 0x7b, + 0x39, 0xbc, 0xca, 0x55, 0xfb, 0x02, 0x2c, 0x79, 0x54, 0x80, 0x3d, 0x04, 0xd9, 0x8e, 0xe6, 0xa8, + 0xd8, 0xf2, 0xdd, 0x03, 0xda, 0x18, 0x67, 0x94, 0x4c, 0x47, 0x73, 0xea, 0xe4, 0xf9, 0x83, 0x39, + 0x9f, 0xfc, 0x53, 0x12, 0xf2, 0xe1, 0xe6, 0x98, 0x9c, 0x35, 0x74, 0x5a, 0x47, 0x24, 0x9a, 0x69, + 0x1e, 0x39, 0xb6, 0x95, 0x5e, 0xac, 0x91, 0x02, 0x53, 0x19, 0x67, 0x2d, 0xab, 0xc2, 0x90, 0xa4, + 0xb8, 0x93, 0xdc, 0x82, 0x59, 0x8b, 0x90, 0x51, 0xf8, 0x13, 0x5a, 0x85, 0xf1, 0x9b, 0x1e, 0xe5, + 0x1e, 0xa7, 0xdc, 0x8f, 0x1e, 0xcf, 0x7d, 0x7d, 0x9b, 0x92, 0x67, 0xaf, 0x6f, 0xab, 0x1b, 0x9b, + 0xca, 0x7a, 0x75, 0x4d, 0xe1, 0x70, 0x74, 0x1a, 0x52, 0xa6, 0x76, 0xf7, 0x20, 0x5a, 0x8a, 0xa8, + 0x68, 0x54, 0xc7, 0x9f, 0x86, 0xd4, 0x1d, 0xac, 0xdd, 0x8a, 0x16, 0x00, 0x2a, 0x7a, 0x1f, 0x43, + 0x7f, 0x09, 0xd2, 0xd4, 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x1e, 0x43, 0x19, 0x48, 0xd5, 0x36, 0x15, + 0x12, 0xfe, 0x32, 0xe4, 0x99, 0x54, 0xdd, 0x6a, 0xd4, 0x6b, 0x75, 0x39, 0x51, 0xbe, 0x08, 0xe3, + 0xcc, 0x09, 0x64, 0x6b, 0x04, 0x6e, 0x90, 0xc7, 0xf8, 0x23, 0xe7, 0x90, 0xc4, 0xe8, 0xee, 0xfa, + 0x72, 0x5d, 0x91, 0x13, 0xe1, 0xe5, 0xf5, 0x20, 0x1f, 0xee, 0x8b, 0x3f, 0x98, 0x98, 0xfa, 0x1b, + 0x09, 0x72, 0xa1, 0x3e, 0x97, 0x34, 0x28, 0x9a, 0x69, 0xda, 0x77, 0x54, 0xcd, 0x34, 0x34, 0x8f, + 0x07, 0x05, 0x50, 0x51, 0x95, 0x48, 0x46, 0x5d, 0xb4, 0x0f, 0xc4, 0xf8, 0x57, 0x24, 0x90, 0xfb, + 0x5b, 0xcc, 0x3e, 0x03, 0xa5, 0x1f, 0xab, 0x81, 0x2f, 0x4b, 0x50, 0x88, 0xf6, 0x95, 0x7d, 0xe6, + 0x9d, 0xfd, 0xb1, 0x9a, 0xf7, 0x7a, 0x02, 0x26, 0x23, 0xdd, 0xe4, 0xa8, 0xd6, 0x7d, 0x16, 0xa6, + 0x8d, 0x26, 0xee, 0x38, 0xb6, 0x8f, 0x2d, 0xfd, 0x40, 0x35, 0xf1, 0x6d, 0x6c, 0x16, 0xcb, 0x34, + 0x51, 0x2c, 0x1d, 0xdf, 0xaf, 0x2e, 0x36, 0x7a, 0xb8, 0x35, 0x02, 0xab, 0xcc, 0x34, 0x56, 0xea, + 0xeb, 0x5b, 0x9b, 0x3b, 0xf5, 0x8d, 0xda, 0x0d, 0x75, 0x77, 0xe3, 0xa7, 0x36, 0x36, 0x9f, 0xdd, + 0x50, 0x64, 0xa3, 0x4f, 0xed, 0x7d, 0xdc, 0xea, 0x5b, 0x20, 0xf7, 0x1b, 0x85, 0x1e, 0x84, 0x61, + 0x66, 0xc9, 0x63, 0x68, 0x06, 0xa6, 0x36, 0x36, 0xd5, 0xed, 0xc6, 0x4a, 0x5d, 0xad, 0x5f, 0xbb, + 0x56, 0xaf, 0xed, 0x6c, 0xb3, 0x1b, 0x88, 0x40, 0x7b, 0x27, 0xba, 0xa9, 0x5f, 0x4a, 0xc2, 0xcc, + 0x10, 0x4b, 0x50, 0x95, 0x9f, 0x1d, 0xd8, 0x71, 0xe6, 0xa3, 0xa3, 0x58, 0xbf, 0x48, 0x4a, 0xfe, + 0x96, 0xe6, 0xfa, 0xfc, 0xa8, 0xf1, 0x38, 0x10, 0x2f, 0x59, 0xbe, 0xd1, 0x32, 0xb0, 0xcb, 0x2f, + 0x6c, 0xd8, 0x81, 0x62, 0xaa, 0x27, 0x67, 0x77, 0x36, 0x1f, 0x01, 0xe4, 0xd8, 0x9e, 0xe1, 0x1b, + 0xb7, 0xb1, 0x6a, 0x58, 0xe2, 0x76, 0x87, 0x1c, 0x30, 0x52, 0x8a, 0x2c, 0x46, 0x1a, 0x96, 0x1f, + 0x68, 0x5b, 0xb8, 0xad, 0xf5, 0x69, 0x93, 0x04, 0x9e, 0x54, 0x64, 0x31, 0x12, 0x68, 0x9f, 0x85, + 0x7c, 0xd3, 0xee, 0x92, 0xae, 0x8b, 0xe9, 0x91, 0x7a, 0x21, 0x29, 0x39, 0x26, 0x0b, 0x54, 0x78, + 0x3f, 0xdd, 0xbb, 0x56, 0xca, 0x2b, 0x39, 0x26, 0x63, 0x2a, 0xe7, 0x60, 0x4a, 0x6b, 0xb7, 0x5d, + 0x42, 0x2e, 0x88, 0xd8, 0x09, 0xa1, 0x10, 0x88, 0xa9, 0xe2, 0xdc, 0x75, 0xc8, 0x08, 0x3f, 0x90, + 0x92, 0x4c, 0x3c, 0xa1, 0x3a, 0xec, 0xd8, 0x9b, 0x58, 0xc8, 0x2a, 0x19, 0x4b, 0x0c, 0x9e, 0x85, + 0xbc, 0xe1, 0xa9, 0xbd, 0x5b, 0xf2, 0xc4, 0x7c, 0x62, 0x21, 0xa3, 0xe4, 0x0c, 0x2f, 0xb8, 0x61, + 0x2c, 0xbf, 0x9a, 0x80, 0x42, 0xf4, 0x96, 0x1f, 0xad, 0x40, 0xc6, 0xb4, 0x75, 0x8d, 0x86, 0x16, + 0xfb, 0xc4, 0xb4, 0x10, 0xf3, 0x61, 0x60, 0x71, 0x8d, 0xeb, 0x2b, 0x01, 0x72, 0xee, 0x1f, 0x24, + 0xc8, 0x08, 0x31, 0x3a, 0x05, 0x29, 0x47, 0xf3, 0xf7, 0x29, 0x5d, 0x7a, 0x39, 0x21, 0x4b, 0x0a, + 0x7d, 0x26, 0x72, 0xcf, 0xd1, 0x2c, 0x1a, 0x02, 0x5c, 0x4e, 0x9e, 0xc9, 0xba, 0x9a, 0x58, 0x6b, + 0xd2, 0xe3, 0x87, 0xdd, 0xe9, 0x60, 0xcb, 0xf7, 0xc4, 0xba, 0x72, 0x79, 0x8d, 0x8b, 0xd1, 0x93, + 0x30, 0xed, 0xbb, 0x9a, 0x61, 0x46, 0x74, 0x53, 0x54, 0x57, 0x16, 0x03, 0x81, 0x72, 0x05, 0x4e, + 0x0b, 0xde, 0x26, 0xf6, 0x35, 0x7d, 0x1f, 0x37, 0x7b, 0xa0, 0x71, 0x7a, 0xcd, 0xf0, 0x20, 0x57, + 0x58, 0xe1, 0xe3, 0x02, 0x5b, 0xfe, 0xbe, 0x04, 0xd3, 0xe2, 0xc0, 0xd4, 0x0c, 0x9c, 0xb5, 0x0e, + 0xa0, 0x59, 0x96, 0xed, 0x87, 0xdd, 0x35, 0x18, 0xca, 0x03, 0xb8, 0xc5, 0x6a, 0x00, 0x52, 0x42, + 0x04, 0x73, 0x1d, 0x80, 0xde, 0xc8, 0x91, 0x6e, 0x3b, 0x03, 0x39, 0xfe, 0x09, 0x87, 0x7e, 0x07, + 0x64, 0x47, 0x6c, 0x60, 0x22, 0x72, 0xb2, 0x42, 0xb3, 0x90, 0xde, 0xc3, 0x6d, 0xc3, 0xe2, 0x17, + 0xb3, 0xec, 0x41, 0x5c, 0x84, 0xa4, 0x82, 0x8b, 0x90, 0xe5, 0xcf, 0xc0, 0x8c, 0x6e, 0x77, 0xfa, + 0xcd, 0x5d, 0x96, 0xfb, 0x8e, 0xf9, 0xde, 0x27, 0xa5, 0xe7, 0xa1, 0xd7, 0x62, 0xbe, 0x2b, 0x49, + 0xbf, 0x97, 0x48, 0xae, 0x6e, 0x2d, 0x7f, 0x2d, 0x31, 0xb7, 0xca, 0xa0, 0x5b, 0x62, 0xa6, 0x0a, + 0x6e, 0x99, 0x58, 0x27, 0xd6, 0xc3, 0x17, 0xcf, 0xc1, 0x47, 0xdb, 0x86, 0xbf, 0xdf, 0xdd, 0x5b, + 0xd4, 0xed, 0xce, 0x52, 0xdb, 0x6e, 0xdb, 0xbd, 0x4f, 0x9f, 0xe4, 0x89, 0x3e, 0xd0, 0x5f, 0xfc, + 0xf3, 0x67, 0x36, 0x90, 0xce, 0xc5, 0x7e, 0x2b, 0xad, 0x6c, 0xc0, 0x0c, 0x57, 0x56, 0xe9, 0xf7, + 0x17, 0x76, 0x8a, 0x40, 0xc7, 0xde, 0x61, 0x15, 0xbf, 0xf1, 0x06, 0x2d, 0xd7, 0xca, 0x34, 0x87, + 0x92, 0x31, 0x76, 0xd0, 0xa8, 0x28, 0xf0, 0x40, 0x84, 0x8f, 0x6d, 0x4d, 0xec, 0xc6, 0x30, 0x7e, + 0x97, 0x33, 0xce, 0x84, 0x18, 0xb7, 0x39, 0xb4, 0x52, 0x83, 0xc9, 0x93, 0x70, 0xfd, 0x1d, 0xe7, + 0xca, 0xe3, 0x30, 0xc9, 0x2a, 0x4c, 0x51, 0x12, 0xbd, 0xeb, 0xf9, 0x76, 0x87, 0xe6, 0xbd, 0xe3, + 0x69, 0xfe, 0xfe, 0x0d, 0xb6, 0x57, 0x0a, 0x04, 0x56, 0x0b, 0x50, 0x95, 0x0a, 0xd0, 0x4f, 0x4e, + 0x4d, 0xac, 0x9b, 0x31, 0x0c, 0xaf, 0x71, 0x43, 0x02, 0xfd, 0xca, 0xa7, 0x61, 0x96, 0xfc, 0xa6, + 0x69, 0x29, 0x6c, 0x49, 0xfc, 0x85, 0x57, 0xf1, 0xfb, 0x2f, 0xb2, 0xed, 0x38, 0x13, 0x10, 0x84, + 0x6c, 0x0a, 0xad, 0x62, 0x1b, 0xfb, 0x3e, 0x76, 0x3d, 0x55, 0x33, 0x87, 0x99, 0x17, 0xba, 0x31, + 0x28, 0x7e, 0xf9, 0xad, 0xe8, 0x2a, 0xae, 0x32, 0x64, 0xd5, 0x34, 0x2b, 0xbb, 0xf0, 0xe0, 0x90, + 0xa8, 0x18, 0x81, 0xf3, 0x25, 0xce, 0x39, 0x3b, 0x10, 0x19, 0x84, 0x76, 0x0b, 0x84, 0x3c, 0x58, + 0xcb, 0x11, 0x38, 0x7f, 0x8b, 0x73, 0x22, 0x8e, 0x15, 0x4b, 0x4a, 0x18, 0xaf, 0xc3, 0xf4, 0x6d, + 0xec, 0xee, 0xd9, 0x1e, 0xbf, 0xa5, 0x19, 0x81, 0xee, 0x65, 0x4e, 0x37, 0xc5, 0x81, 0xf4, 0xda, + 0x86, 0x70, 0x5d, 0x81, 0x4c, 0x4b, 0xd3, 0xf1, 0x08, 0x14, 0x5f, 0xe1, 0x14, 0x13, 0x44, 0x9f, + 0x40, 0xab, 0x90, 0x6f, 0xdb, 0xbc, 0x32, 0xc5, 0xc3, 0x5f, 0xe1, 0xf0, 0x9c, 0xc0, 0x70, 0x0a, + 0xc7, 0x76, 0xba, 0x26, 0x29, 0x5b, 0xf1, 0x14, 0xbf, 0x2d, 0x28, 0x04, 0x86, 0x53, 0x9c, 0xc0, + 0xad, 0xbf, 0x23, 0x28, 0xbc, 0x90, 0x3f, 0x9f, 0x81, 0x9c, 0x6d, 0x99, 0x07, 0xb6, 0x35, 0x8a, + 0x11, 0xbf, 0xcb, 0x19, 0x80, 0x43, 0x08, 0xc1, 0x55, 0xc8, 0x8e, 0xba, 0x10, 0xbf, 0xff, 0x96, + 0xd8, 0x1e, 0x62, 0x05, 0x56, 0x61, 0x4a, 0x24, 0x28, 0xc3, 0xb6, 0x46, 0xa0, 0xf8, 0x03, 0x4e, + 0x51, 0x08, 0xc1, 0xf8, 0x34, 0x7c, 0xec, 0xf9, 0x6d, 0x3c, 0x0a, 0xc9, 0xab, 0x62, 0x1a, 0x1c, + 0xc2, 0x5d, 0xb9, 0x87, 0x2d, 0x7d, 0x7f, 0x34, 0x86, 0xaf, 0x0a, 0x57, 0x0a, 0x0c, 0xa1, 0xa8, + 0xc1, 0x64, 0x47, 0x73, 0xbd, 0x7d, 0xcd, 0x1c, 0x69, 0x39, 0xfe, 0x90, 0x73, 0xe4, 0x03, 0x10, + 0xf7, 0x48, 0xd7, 0x3a, 0x09, 0xcd, 0xd7, 0x84, 0x47, 0x42, 0x30, 0xbe, 0xf5, 0x3c, 0x9f, 0x5e, + 0x69, 0x9d, 0x84, 0xed, 0x8f, 0xc4, 0xd6, 0x63, 0xd8, 0xf5, 0x30, 0xe3, 0x55, 0xc8, 0x7a, 0xc6, + 0xdd, 0x91, 0x68, 0xfe, 0x58, 0xac, 0x34, 0x05, 0x10, 0xf0, 0x0d, 0x38, 0x3d, 0xb4, 0x4c, 0x8c, + 0x40, 0xf6, 0x27, 0x9c, 0xec, 0xd4, 0x90, 0x52, 0xc1, 0x53, 0xc2, 0x49, 0x29, 0xff, 0x54, 0xa4, + 0x04, 0xdc, 0xc7, 0xb5, 0x45, 0xce, 0x0a, 0x9e, 0xd6, 0x3a, 0x99, 0xd7, 0xfe, 0x4c, 0x78, 0x8d, + 0x61, 0x23, 0x5e, 0xdb, 0x81, 0x53, 0x9c, 0xf1, 0x64, 0xeb, 0xfa, 0x75, 0x91, 0x58, 0x19, 0x7a, + 0x37, 0xba, 0xba, 0x9f, 0x81, 0xb9, 0xc0, 0x9d, 0xa2, 0x29, 0xf5, 0xd4, 0x8e, 0xe6, 0x8c, 0xc0, + 0xfc, 0x0d, 0xce, 0x2c, 0x32, 0x7e, 0xd0, 0xd5, 0x7a, 0xeb, 0x9a, 0x43, 0xc8, 0x9f, 0x83, 0xa2, + 0x20, 0xef, 0x5a, 0x2e, 0xd6, 0xed, 0xb6, 0x65, 0xdc, 0xc5, 0xcd, 0x11, 0xa8, 0xff, 0xbc, 0x6f, + 0xa9, 0x76, 0x43, 0x70, 0xc2, 0xdc, 0x00, 0x39, 0xe8, 0x55, 0x54, 0xa3, 0xe3, 0xd8, 0xae, 0x1f, + 0xc3, 0xf8, 0x4d, 0xb1, 0x52, 0x01, 0xae, 0x41, 0x61, 0x95, 0x3a, 0x14, 0xe8, 0xe3, 0xa8, 0x21, + 0xf9, 0x17, 0x9c, 0x68, 0xb2, 0x87, 0xe2, 0x89, 0x43, 0xb7, 0x3b, 0x8e, 0xe6, 0x8e, 0x92, 0xff, + 0xfe, 0x52, 0x24, 0x0e, 0x0e, 0xe1, 0x89, 0xc3, 0x3f, 0x70, 0x30, 0xa9, 0xf6, 0x23, 0x30, 0x7c, + 0x4b, 0x24, 0x0e, 0x81, 0xe1, 0x14, 0xa2, 0x61, 0x18, 0x81, 0xe2, 0xaf, 0x04, 0x85, 0xc0, 0x10, + 0x8a, 0x4f, 0xf5, 0x0a, 0xad, 0x8b, 0xdb, 0x86, 0xe7, 0xbb, 0xac, 0x15, 0x3e, 0x9e, 0xea, 0xdb, + 0x6f, 0x45, 0x9b, 0x30, 0x25, 0x04, 0xad, 0x5c, 0x87, 0xa9, 0xbe, 0x16, 0x03, 0xc5, 0xfd, 0xff, + 0x4a, 0xf1, 0x67, 0xdf, 0xe1, 0xc9, 0x28, 0xda, 0x61, 0x54, 0xd6, 0xc8, 0xba, 0x47, 0xfb, 0x80, + 0x78, 0xb2, 0x17, 0xdf, 0x09, 0x96, 0x3e, 0xd2, 0x06, 0x54, 0xae, 0xc1, 0x64, 0xa4, 0x07, 0x88, + 0xa7, 0xfa, 0x1c, 0xa7, 0xca, 0x87, 0x5b, 0x80, 0xca, 0x45, 0x48, 0x91, 0x7a, 0x1e, 0x0f, 0xff, + 0x39, 0x0e, 0xa7, 0xea, 0x95, 0x8f, 0x43, 0x46, 0xd4, 0xf1, 0x78, 0xe8, 0xcf, 0x73, 0x68, 0x00, + 0x21, 0x70, 0x51, 0xc3, 0xe3, 0xe1, 0xbf, 0x20, 0xe0, 0x02, 0x42, 0xe0, 0xa3, 0xbb, 0xf0, 0x3b, + 0xbf, 0x94, 0xe2, 0x79, 0x58, 0xf8, 0xee, 0x2a, 0x4c, 0xf0, 0xe2, 0x1d, 0x8f, 0xfe, 0x3c, 0x7f, + 0xb9, 0x40, 0x54, 0x9e, 0x86, 0xf4, 0x88, 0x0e, 0xff, 0x65, 0x0e, 0x65, 0xfa, 0x95, 0x1a, 0xe4, + 0x42, 0x05, 0x3b, 0x1e, 0xfe, 0x2b, 0x1c, 0x1e, 0x46, 0x11, 0xd3, 0x79, 0xc1, 0x8e, 0x27, 0xf8, + 0x55, 0x61, 0x3a, 0x47, 0x10, 0xb7, 0x89, 0x5a, 0x1d, 0x8f, 0xfe, 0x82, 0xf0, 0xba, 0x80, 0x54, + 0x9e, 0x81, 0x6c, 0x90, 0x7f, 0xe3, 0xf1, 0xbf, 0xc6, 0xf1, 0x3d, 0x0c, 0xf1, 0x40, 0x28, 0xff, + 0xc7, 0x53, 0xfc, 0xba, 0xf0, 0x40, 0x08, 0x45, 0xb6, 0x51, 0x7f, 0x4d, 0x8f, 0x67, 0xfa, 0x0d, + 0xb1, 0x8d, 0xfa, 0x4a, 0x3a, 0x59, 0x4d, 0x9a, 0x06, 0xe3, 0x29, 0x7e, 0x53, 0xac, 0x26, 0xd5, + 0x27, 0x66, 0xf4, 0x17, 0xc9, 0x78, 0x8e, 0x2f, 0x0a, 0x33, 0xfa, 0x6a, 0x64, 0x65, 0x0b, 0xd0, + 0x60, 0x81, 0x8c, 0xe7, 0xfb, 0x12, 0xe7, 0x9b, 0x1e, 0xa8, 0x8f, 0x95, 0x67, 0xe1, 0xd4, 0xf0, + 0xe2, 0x18, 0xcf, 0xfa, 0xe5, 0x77, 0xfa, 0x8e, 0x33, 0xe1, 0xda, 0x58, 0xd9, 0xe9, 0x65, 0xd9, + 0x70, 0x61, 0x8c, 0xa7, 0x7d, 0xe9, 0x9d, 0x68, 0xa2, 0x0d, 0xd7, 0xc5, 0x4a, 0x15, 0xa0, 0x57, + 0x93, 0xe2, 0xb9, 0x5e, 0xe6, 0x5c, 0x21, 0x10, 0xd9, 0x1a, 0xbc, 0x24, 0xc5, 0xe3, 0xbf, 0x22, + 0xb6, 0x06, 0x47, 0x90, 0xad, 0x21, 0xaa, 0x51, 0x3c, 0xfa, 0x15, 0xb1, 0x35, 0x04, 0xa4, 0x72, + 0x15, 0x32, 0x56, 0xd7, 0x34, 0x49, 0x6c, 0xa1, 0xe3, 0xff, 0x25, 0xab, 0xf8, 0x6f, 0xef, 0x71, + 0xb0, 0x00, 0x54, 0x2e, 0x42, 0x1a, 0x77, 0xf6, 0x70, 0x33, 0x0e, 0xf9, 0xef, 0xef, 0x89, 0x7c, + 0x42, 0xb4, 0x2b, 0xcf, 0x00, 0xb0, 0xc3, 0x34, 0xfd, 0x50, 0x14, 0x83, 0xfd, 0x8f, 0xf7, 0xf8, + 0x3f, 0x4b, 0xf4, 0x20, 0x3d, 0x02, 0xf6, 0xaf, 0x17, 0xc7, 0x13, 0xbc, 0x15, 0x25, 0xa0, 0x07, + 0xf0, 0x2b, 0x30, 0x71, 0xd3, 0xb3, 0x2d, 0x5f, 0x6b, 0xc7, 0xa1, 0xff, 0x93, 0xa3, 0x85, 0x3e, + 0x71, 0x58, 0xc7, 0x76, 0xb1, 0xaf, 0xb5, 0xbd, 0x38, 0xec, 0x7f, 0x71, 0x6c, 0x00, 0x20, 0x60, + 0x5d, 0xf3, 0xfc, 0x51, 0xe6, 0xfd, 0x43, 0x01, 0x16, 0x00, 0x62, 0x34, 0xf9, 0x7d, 0x0b, 0x1f, + 0xc4, 0x61, 0xdf, 0x16, 0x46, 0x73, 0xfd, 0xca, 0xc7, 0x21, 0x4b, 0x7e, 0xb2, 0xff, 0x80, 0x8a, + 0x01, 0xff, 0x37, 0x07, 0xf7, 0x10, 0xe4, 0xcd, 0x9e, 0xdf, 0xf4, 0x8d, 0x78, 0x67, 0xff, 0x0f, + 0x5f, 0x69, 0xa1, 0x5f, 0xa9, 0x42, 0xce, 0xf3, 0x9b, 0xcd, 0x2e, 0xef, 0x68, 0x62, 0xe0, 0xff, + 0xfb, 0x5e, 0x70, 0xc8, 0x0d, 0x30, 0xcb, 0xf5, 0xe1, 0xf7, 0x75, 0xb0, 0x6a, 0xaf, 0xda, 0xec, + 0xa6, 0xee, 0xf9, 0x72, 0xfc, 0x95, 0x1b, 0x7c, 0x21, 0x0d, 0x65, 0xdd, 0xee, 0xec, 0xd9, 0xde, + 0x52, 0x28, 0x55, 0x2d, 0x05, 0xb3, 0x14, 0xd7, 0x71, 0x81, 0x60, 0xee, 0x64, 0x17, 0x79, 0xe5, + 0xbf, 0x4d, 0x42, 0xa6, 0xa6, 0x79, 0xbe, 0x76, 0x47, 0x3b, 0x40, 0x0e, 0xcc, 0x90, 0xdf, 0xeb, + 0x9a, 0x43, 0xaf, 0x85, 0xf8, 0x3e, 0xe4, 0x77, 0xa5, 0x1f, 0x59, 0xec, 0xbd, 0x55, 0x20, 0x16, + 0x87, 0xa8, 0xd3, 0x6f, 0xcc, 0xcb, 0xf2, 0x6b, 0xff, 0x7c, 0x66, 0xec, 0x17, 0xff, 0xe5, 0x4c, + 0x66, 0xfd, 0xe0, 0x59, 0xc3, 0xf4, 0x6c, 0x4b, 0x19, 0x46, 0x8d, 0x3e, 0x27, 0xc1, 0x43, 0x43, + 0xe4, 0x1b, 0x7c, 0xb3, 0xf2, 0x2f, 0x0e, 0x17, 0x46, 0x7c, 0xb5, 0x80, 0x31, 0x13, 0xf2, 0x91, + 0xd7, 0x1f, 0xf7, 0x9a, 0xb9, 0x1b, 0x50, 0x3c, 0x6a, 0x26, 0x48, 0x86, 0xe4, 0x2d, 0x7c, 0xc0, + 0xff, 0x51, 0x8d, 0xfc, 0x44, 0xe7, 0x7a, 0xff, 0xce, 0x27, 0x2d, 0xe4, 0xce, 0x4f, 0x87, 0xac, + 0xe3, 0x2f, 0x63, 0xe3, 0x95, 0xc4, 0x65, 0x69, 0x4e, 0x83, 0xf9, 0x38, 0x4b, 0xff, 0x9f, 0xaf, + 0x28, 0x97, 0x60, 0x9c, 0x09, 0xd1, 0x2c, 0xa4, 0x1b, 0x96, 0x7f, 0xe9, 0x02, 0xa5, 0x4a, 0x2a, + 0xec, 0x61, 0x79, 0xed, 0xb5, 0xfb, 0xa5, 0xb1, 0xef, 0xdd, 0x2f, 0x8d, 0xfd, 0xe3, 0xfd, 0xd2, + 0xd8, 0xeb, 0xf7, 0x4b, 0xd2, 0x9b, 0xf7, 0x4b, 0xd2, 0xdb, 0xf7, 0x4b, 0xd2, 0xbb, 0xf7, 0x4b, + 0xd2, 0xbd, 0xc3, 0x92, 0xf4, 0xd5, 0xc3, 0x92, 0xf4, 0xf5, 0xc3, 0x92, 0xf4, 0xed, 0xc3, 0x92, + 0xf4, 0x9d, 0xc3, 0x92, 0xf4, 0xda, 0x61, 0x69, 0xec, 0x7b, 0x87, 0x25, 0xe9, 0xf5, 0xc3, 0x92, + 0xf4, 0xe6, 0x61, 0x69, 0xec, 0xed, 0xc3, 0x92, 0xf4, 0xee, 0x61, 0x69, 0xec, 0xde, 0x0f, 0x4a, + 0x63, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x50, 0xe9, 0xb6, 0x1f, 0x33, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -508,16 +512,16 @@ func (this *Wilson) Equal(that interface{}) bool { } type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetCastMapValueMessage() map[int32]MyWilson GetCastMapValueMessageNullable() map[int32]*MyWilson } -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) Proto() proto.Message { return this } -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Castaway) TestProto() proto.Message { return NewCastawayFromFace(this) } @@ -537,15 +541,15 @@ func NewCastawayFromFace(that CastawayFace) *Castaway { } type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetInt64() *int64 } -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) Proto() proto.Message { return this } -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Wilson) TestProto() proto.Message { return NewWilsonFromFace(this) } @@ -569,7 +573,7 @@ func (this *Castaway) GoString() string { for k := range this.CastMapValueMessage { keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) + sortkeys.Int32s(keysForCastMapValueMessage) mapStringForCastMapValueMessage := "map[int32]MyWilson{" for _, k := range keysForCastMapValueMessage { mapStringForCastMapValueMessage += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessage[k]) @@ -582,7 +586,7 @@ func (this *Castaway) GoString() string { for k := range this.CastMapValueMessageNullable { keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) + sortkeys.Int32s(keysForCastMapValueMessageNullable) mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" for _, k := range keysForCastMapValueMessageNullable { mapStringForCastMapValueMessageNullable += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessageNullable[k]) @@ -793,7 +797,7 @@ func (this *Castaway) String() string { for k := range this.CastMapValueMessage { keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) + sortkeys.Int32s(keysForCastMapValueMessage) mapStringForCastMapValueMessage := "map[int32]MyWilson{" for _, k := range keysForCastMapValueMessage { mapStringForCastMapValueMessage += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessage[k]) @@ -803,7 +807,7 @@ func (this *Castaway) String() string { for k := range this.CastMapValueMessageNullable { keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) + sortkeys.Int32s(keysForCastMapValueMessageNullable) mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" for _, k := range keysForCastMapValueMessageNullable { mapStringForCastMapValueMessageNullable += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessageNullable[k]) @@ -891,41 +895,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.CastMapValueMessage == nil { m.CastMapValueMessage = make(map[int32]MyWilson) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := &Wilson{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCastvalue @@ -935,46 +912,74 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipCastvalue(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCastvalue + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) - } else { - var mapvalue MyWilson - m.CastMapValueMessage[mapkey] = mapvalue } + m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) iNdEx = postIndex case 2: if wireType != 2 { @@ -1002,41 +1007,14 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.CastMapValueMessageNullable == nil { m.CastMapValueMessageNullable = make(map[int32]*MyWilson) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue *Wilson + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowCastvalue @@ -1046,46 +1024,74 @@ func (m *Castaway) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalue + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCastvalue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthCastvalue + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Wilson{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipCastvalue(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthCastvalue + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalue - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) - } else { - var mapvalue *MyWilson - m.CastMapValueMessageNullable[mapkey] = mapvalue } + m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) iNdEx = postIndex default: iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvaluepb_test.go index dc21c246e..278e50cb3 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvaluepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unmarshaler/castvaluepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/castvalue.proto -// DO NOT EDIT! /* Package castvalue is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package castvalue import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestCastawayProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,12 +58,12 @@ func TestCastawayProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 10000) for i := 0; i < 10000; i++ { @@ -73,7 +71,7 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -83,11 +81,11 @@ func BenchmarkCastawayProtoMarshal(b *testing.B) { } func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCastaway(popr, false)) if err != nil { panic(err) } @@ -97,7 +95,7 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -106,14 +104,14 @@ func BenchmarkCastawayProtoUnmarshal(b *testing.B) { func TestWilsonProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -134,12 +132,12 @@ func TestWilsonProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 10000) for i := 0; i < 10000; i++ { @@ -147,7 +145,7 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -157,11 +155,11 @@ func BenchmarkWilsonProtoMarshal(b *testing.B) { } func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedWilson(popr, false)) if err != nil { panic(err) } @@ -171,7 +169,7 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -180,15 +178,15 @@ func BenchmarkWilsonProtoUnmarshal(b *testing.B) { func TestCastawayJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -201,15 +199,15 @@ func TestCastawayJSON(t *testing.T) { } func TestWilsonJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -222,11 +220,11 @@ func TestWilsonJSON(t *testing.T) { } func TestCastawayProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -239,11 +237,11 @@ func TestCastawayProtoText(t *testing.T) { func TestCastawayProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -256,11 +254,11 @@ func TestCastawayProtoCompactText(t *testing.T) { func TestWilsonProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -273,11 +271,11 @@ func TestWilsonProtoText(t *testing.T) { func TestWilsonProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -292,14 +290,14 @@ func TestCastvalueDescription(t *testing.T) { CastvalueDescription() } func TestCastawayVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -307,14 +305,14 @@ func TestCastawayVerboseEqual(t *testing.T) { } } func TestWilsonVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -322,7 +320,7 @@ func TestWilsonVerboseEqual(t *testing.T) { } } func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -330,7 +328,7 @@ func TestCastawayFace(t *testing.T) { } } func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -338,37 +336,37 @@ func TestWilsonFace(t *testing.T) { } } func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCastawaySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -379,14 +377,14 @@ func TestCastawaySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Castaway, 1000) for i := 0; i < 1000; i++ { @@ -401,10 +399,10 @@ func BenchmarkCastawaySize(b *testing.B) { func TestWilsonSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -415,14 +413,14 @@ func TestWilsonSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Wilson, 1000) for i := 0; i < 1000; i++ { @@ -436,7 +434,7 @@ func BenchmarkWilsonSize(b *testing.B) { } func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastaway(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -445,7 +443,7 @@ func TestCastawayStringer(t *testing.T) { } } func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedWilson(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.pb.go deleted file mode 100644 index 3257a58d9..000000000 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.pb.go +++ /dev/null @@ -1,1441 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/castvalue.proto -// DO NOT EDIT! - -/* - Package castvalue is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeboth/castvalue.proto - - It has these top-level messages: - Castaway - Wilson -*/ -package castvalue - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -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 - -type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Castaway) Reset() { *m = Castaway{} } -func (*Castaway) ProtoMessage() {} -func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } - -type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Wilson) Reset() { *m = Wilson{} } -func (*Wilson) ProtoMessage() {} -func (*Wilson) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{1} } - -func init() { - proto.RegisterType((*Castaway)(nil), "castvalue.Castaway") - proto.RegisterType((*Wilson)(nil), "castvalue.Wilson") -} -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CastvalueDescription() -} -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CastvalueDescription() -} -func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 3797 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, - 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, - 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, - 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xb4, 0xe9, 0xdf, 0x4c, 0x13, 0xd7, 0x71, 0xdb, - 0xcc, 0xb4, 0x4e, 0x93, 0xfe, 0x24, 0xfd, 0x49, 0x33, 0x7d, 0x4a, 0x1f, 0xd2, 0xfa, 0xa9, 0x93, - 0xbc, 0xf5, 0xa1, 0xd3, 0x5a, 0x8c, 0x67, 0xea, 0xb6, 0x6e, 0xeb, 0x36, 0x9e, 0x69, 0x66, 0xf4, - 0xd2, 0xb9, 0x7f, 0x8b, 0x5d, 0x00, 0xe4, 0x82, 0xe9, 0x38, 0x79, 0x22, 0xee, 0xb9, 0xe7, 0xfb, - 0xf6, 0xdc, 0x73, 0xcf, 0x3d, 0xe7, 0xec, 0x5d, 0xc2, 0xf7, 0x2f, 0xc3, 0x52, 0xdb, 0xb6, 0xdb, - 0x26, 0x5e, 0xeb, 0x3a, 0xb6, 0x67, 0xef, 0xf7, 0x5a, 0x6b, 0x4d, 0xec, 0xea, 0x8e, 0xd1, 0xf5, - 0x6c, 0x67, 0x95, 0xca, 0x94, 0x19, 0xa6, 0xb1, 0x2a, 0x34, 0x96, 0xb7, 0x61, 0xf6, 0xba, 0x61, - 0xe2, 0x0d, 0x5f, 0xb1, 0x81, 0x3d, 0xe5, 0x2a, 0x24, 0x5a, 0x86, 0x89, 0xf3, 0xd2, 0x52, 0x7c, - 0x25, 0x73, 0xf1, 0xf1, 0xd5, 0x01, 0xd0, 0x6a, 0x18, 0x51, 0x27, 0x62, 0x95, 0x22, 0x96, 0xdf, - 0x4a, 0xc0, 0xdc, 0x88, 0x59, 0x45, 0x81, 0x84, 0x85, 0x3a, 0x84, 0x51, 0x5a, 0x49, 0xab, 0xf4, - 0xb7, 0x92, 0x87, 0xa9, 0x2e, 0xd2, 0xef, 0xa0, 0x36, 0xce, 0xc7, 0xa8, 0x58, 0x0c, 0x95, 0x02, - 0x40, 0x13, 0x77, 0xb1, 0xd5, 0xc4, 0x96, 0x7e, 0x98, 0x8f, 0x2f, 0xc5, 0x57, 0xd2, 0x6a, 0x40, - 0xa2, 0x3c, 0x0d, 0xb3, 0xdd, 0xde, 0xbe, 0x69, 0xe8, 0x5a, 0x40, 0x0d, 0x96, 0xe2, 0x2b, 0x49, - 0x55, 0x66, 0x13, 0x1b, 0x7d, 0xe5, 0x0b, 0x30, 0x73, 0x0f, 0xa3, 0x3b, 0x41, 0xd5, 0x0c, 0x55, - 0xcd, 0x11, 0x71, 0x40, 0xb1, 0x0c, 0xd9, 0x0e, 0x76, 0x5d, 0xd4, 0xc6, 0x9a, 0x77, 0xd8, 0xc5, - 0xf9, 0x04, 0x5d, 0xfd, 0xd2, 0xd0, 0xea, 0x07, 0x57, 0x9e, 0xe1, 0xa8, 0xdd, 0xc3, 0x2e, 0x56, - 0x4a, 0x90, 0xc6, 0x56, 0xaf, 0xc3, 0x18, 0x92, 0xc7, 0xf8, 0xaf, 0x62, 0xf5, 0x3a, 0x83, 0x2c, - 0x29, 0x02, 0xe3, 0x14, 0x53, 0x2e, 0x76, 0xee, 0x1a, 0x3a, 0xce, 0x4f, 0x52, 0x82, 0x0b, 0x43, - 0x04, 0x0d, 0x36, 0x3f, 0xc8, 0x21, 0x70, 0x4a, 0x19, 0xd2, 0xf8, 0x45, 0x0f, 0x5b, 0xae, 0x61, - 0x5b, 0xf9, 0x29, 0x4a, 0xf2, 0xc4, 0x88, 0x5d, 0xc4, 0x66, 0x73, 0x90, 0xa2, 0x8f, 0x53, 0xae, - 0xc0, 0x94, 0xdd, 0xf5, 0x0c, 0xdb, 0x72, 0xf3, 0xa9, 0x25, 0x69, 0x25, 0x73, 0xf1, 0x03, 0x23, - 0x03, 0xa1, 0xc6, 0x74, 0x54, 0xa1, 0xac, 0x54, 0x41, 0x76, 0xed, 0x9e, 0xa3, 0x63, 0x4d, 0xb7, - 0x9b, 0x58, 0x33, 0xac, 0x96, 0x9d, 0x4f, 0x53, 0x82, 0x73, 0xc3, 0x0b, 0xa1, 0x8a, 0x65, 0xbb, - 0x89, 0xab, 0x56, 0xcb, 0x56, 0x73, 0x6e, 0x68, 0xac, 0x2c, 0xc0, 0xa4, 0x7b, 0x68, 0x79, 0xe8, - 0xc5, 0x7c, 0x96, 0x46, 0x08, 0x1f, 0x2d, 0xff, 0x6f, 0x12, 0x66, 0xc6, 0x09, 0xb1, 0x6b, 0x90, - 0x6c, 0x91, 0x55, 0xe6, 0x63, 0xa7, 0xf1, 0x01, 0xc3, 0x84, 0x9d, 0x38, 0xf9, 0x23, 0x3a, 0xb1, - 0x04, 0x19, 0x0b, 0xbb, 0x1e, 0x6e, 0xb2, 0x88, 0x88, 0x8f, 0x19, 0x53, 0xc0, 0x40, 0xc3, 0x21, - 0x95, 0xf8, 0x91, 0x42, 0xea, 0x26, 0xcc, 0xf8, 0x26, 0x69, 0x0e, 0xb2, 0xda, 0x22, 0x36, 0xd7, - 0xa2, 0x2c, 0x59, 0xad, 0x08, 0x9c, 0x4a, 0x60, 0x6a, 0x0e, 0x87, 0xc6, 0xca, 0x06, 0x80, 0x6d, - 0x61, 0xbb, 0xa5, 0x35, 0xb1, 0x6e, 0xe6, 0x53, 0xc7, 0x78, 0xa9, 0x46, 0x54, 0x86, 0xbc, 0x64, - 0x33, 0xa9, 0x6e, 0x2a, 0xcf, 0xf5, 0x43, 0x6d, 0xea, 0x98, 0x48, 0xd9, 0x66, 0x87, 0x6c, 0x28, - 0xda, 0xf6, 0x20, 0xe7, 0x60, 0x12, 0xf7, 0xb8, 0xc9, 0x57, 0x96, 0xa6, 0x46, 0xac, 0x46, 0xae, - 0x4c, 0xe5, 0x30, 0xb6, 0xb0, 0x69, 0x27, 0x38, 0x54, 0x3e, 0x08, 0xbe, 0x40, 0xa3, 0x61, 0x05, - 0x34, 0x0b, 0x65, 0x85, 0x70, 0x07, 0x75, 0xf0, 0xe2, 0x55, 0xc8, 0x85, 0xdd, 0xa3, 0xcc, 0x43, - 0xd2, 0xf5, 0x90, 0xe3, 0xd1, 0x28, 0x4c, 0xaa, 0x6c, 0xa0, 0xc8, 0x10, 0xc7, 0x56, 0x93, 0x66, - 0xb9, 0xa4, 0x4a, 0x7e, 0x2e, 0x3e, 0x0b, 0xd3, 0xa1, 0xc7, 0x8f, 0x0b, 0x5c, 0xfe, 0xc2, 0x24, - 0xcc, 0x8f, 0x8a, 0xb9, 0x91, 0xe1, 0xbf, 0x00, 0x93, 0x56, 0xaf, 0xb3, 0x8f, 0x9d, 0x7c, 0x9c, - 0x32, 0xf0, 0x91, 0x52, 0x82, 0xa4, 0x89, 0xf6, 0xb1, 0x99, 0x4f, 0x2c, 0x49, 0x2b, 0xb9, 0x8b, - 0x4f, 0x8f, 0x15, 0xd5, 0xab, 0x5b, 0x04, 0xa2, 0x32, 0xa4, 0xf2, 0x71, 0x48, 0xf0, 0x14, 0x47, - 0x18, 0x9e, 0x1a, 0x8f, 0x81, 0xc4, 0xa2, 0x4a, 0x71, 0xca, 0xa3, 0x90, 0x26, 0x7f, 0x99, 0x6f, - 0x27, 0xa9, 0xcd, 0x29, 0x22, 0x20, 0x7e, 0x55, 0x16, 0x21, 0x45, 0xc3, 0xac, 0x89, 0x45, 0x69, - 0xf0, 0xc7, 0x64, 0x63, 0x9a, 0xb8, 0x85, 0x7a, 0xa6, 0xa7, 0xdd, 0x45, 0x66, 0x0f, 0xd3, 0x80, - 0x49, 0xab, 0x59, 0x2e, 0xfc, 0x14, 0x91, 0x29, 0xe7, 0x20, 0xc3, 0xa2, 0xd2, 0xb0, 0x9a, 0xf8, - 0x45, 0x9a, 0x7d, 0x92, 0x2a, 0x0b, 0xd4, 0x2a, 0x91, 0x90, 0xc7, 0xdf, 0x76, 0x6d, 0x4b, 0x6c, - 0x2d, 0x7d, 0x04, 0x11, 0xd0, 0xc7, 0x3f, 0x3b, 0x98, 0xf8, 0x1e, 0x1b, 0xbd, 0xbc, 0xc1, 0x58, - 0x5c, 0xfe, 0x66, 0x0c, 0x12, 0xf4, 0xbc, 0xcd, 0x40, 0x66, 0xf7, 0x56, 0xbd, 0xa2, 0x6d, 0xd4, - 0xf6, 0xd6, 0xb7, 0x2a, 0xb2, 0xa4, 0xe4, 0x00, 0xa8, 0xe0, 0xfa, 0x56, 0xad, 0xb4, 0x2b, 0xc7, - 0xfc, 0x71, 0x75, 0x67, 0xf7, 0xca, 0x25, 0x39, 0xee, 0x03, 0xf6, 0x98, 0x20, 0x11, 0x54, 0x78, - 0xe6, 0xa2, 0x9c, 0x54, 0x64, 0xc8, 0x32, 0x82, 0xea, 0xcd, 0xca, 0xc6, 0x95, 0x4b, 0xf2, 0x64, - 0x58, 0xf2, 0xcc, 0x45, 0x79, 0x4a, 0x99, 0x86, 0x34, 0x95, 0xac, 0xd7, 0x6a, 0x5b, 0x72, 0xca, - 0xe7, 0x6c, 0xec, 0xaa, 0xd5, 0x9d, 0x4d, 0x39, 0xed, 0x73, 0x6e, 0xaa, 0xb5, 0xbd, 0xba, 0x0c, - 0x3e, 0xc3, 0x76, 0xa5, 0xd1, 0x28, 0x6d, 0x56, 0xe4, 0x8c, 0xaf, 0xb1, 0x7e, 0x6b, 0xb7, 0xd2, - 0x90, 0xb3, 0x21, 0xb3, 0x9e, 0xb9, 0x28, 0x4f, 0xfb, 0x8f, 0xa8, 0xec, 0xec, 0x6d, 0xcb, 0x39, - 0x65, 0x16, 0xa6, 0xd9, 0x23, 0x84, 0x11, 0x33, 0x03, 0xa2, 0x2b, 0x97, 0x64, 0xb9, 0x6f, 0x08, - 0x63, 0x99, 0x0d, 0x09, 0xae, 0x5c, 0x92, 0x95, 0xe5, 0x32, 0x24, 0x69, 0x74, 0x29, 0x0a, 0xe4, - 0xb6, 0x4a, 0xeb, 0x95, 0x2d, 0xad, 0x56, 0xdf, 0xad, 0xd6, 0x76, 0x4a, 0x5b, 0xb2, 0xd4, 0x97, - 0xa9, 0x95, 0x4f, 0xee, 0x55, 0xd5, 0xca, 0x86, 0x1c, 0x0b, 0xca, 0xea, 0x95, 0xd2, 0x6e, 0x65, - 0x43, 0x8e, 0x2f, 0xeb, 0x30, 0x3f, 0x2a, 0xcf, 0x8c, 0x3c, 0x19, 0x81, 0x2d, 0x8e, 0x1d, 0xb3, - 0xc5, 0x94, 0x6b, 0x68, 0x8b, 0xbf, 0x2c, 0xc1, 0xdc, 0x88, 0x5c, 0x3b, 0xf2, 0x21, 0xcf, 0x43, - 0x92, 0x85, 0x28, 0xab, 0x3e, 0x4f, 0x8e, 0x4c, 0xda, 0x34, 0x60, 0x87, 0x2a, 0x10, 0xc5, 0x05, - 0x2b, 0x70, 0xfc, 0x98, 0x0a, 0x4c, 0x28, 0x86, 0x8c, 0x7c, 0x59, 0x82, 0xfc, 0x71, 0xdc, 0x11, - 0x89, 0x22, 0x16, 0x4a, 0x14, 0xd7, 0x06, 0x0d, 0x38, 0x7f, 0xfc, 0x1a, 0x86, 0xac, 0x78, 0x5d, - 0x82, 0x85, 0xd1, 0x8d, 0xca, 0x48, 0x1b, 0x3e, 0x0e, 0x93, 0x1d, 0xec, 0x1d, 0xd8, 0xa2, 0x58, - 0x7f, 0x68, 0x44, 0x09, 0x20, 0xd3, 0x83, 0xbe, 0xe2, 0xa8, 0x60, 0x0d, 0x89, 0x1f, 0xd7, 0x6d, - 0x30, 0x6b, 0x86, 0x2c, 0xfd, 0x5c, 0x0c, 0x1e, 0x19, 0x49, 0x3e, 0xd2, 0xd0, 0xc7, 0x00, 0x0c, - 0xab, 0xdb, 0xf3, 0x58, 0x41, 0x66, 0xf9, 0x29, 0x4d, 0x25, 0xf4, 0xec, 0x93, 0xdc, 0xd3, 0xf3, - 0xfc, 0xf9, 0x38, 0x9d, 0x07, 0x26, 0xa2, 0x0a, 0x57, 0xfb, 0x86, 0x26, 0xa8, 0xa1, 0x85, 0x63, - 0x56, 0x3a, 0x54, 0xeb, 0x3e, 0x0a, 0xb2, 0x6e, 0x1a, 0xd8, 0xf2, 0x34, 0xd7, 0x73, 0x30, 0xea, - 0x18, 0x56, 0x9b, 0x26, 0xe0, 0x54, 0x31, 0xd9, 0x42, 0xa6, 0x8b, 0xd5, 0x19, 0x36, 0xdd, 0x10, - 0xb3, 0x04, 0x41, 0xab, 0x8c, 0x13, 0x40, 0x4c, 0x86, 0x10, 0x6c, 0xda, 0x47, 0x2c, 0x7f, 0x6d, - 0x0a, 0x32, 0x81, 0xb6, 0x4e, 0x39, 0x0f, 0xd9, 0xdb, 0xe8, 0x2e, 0xd2, 0x44, 0xab, 0xce, 0x3c, - 0x91, 0x21, 0xb2, 0x3a, 0x6f, 0xd7, 0x3f, 0x0a, 0xf3, 0x54, 0xc5, 0xee, 0x79, 0xd8, 0xd1, 0x74, - 0x13, 0xb9, 0x2e, 0x75, 0x5a, 0x8a, 0xaa, 0x2a, 0x64, 0xae, 0x46, 0xa6, 0xca, 0x62, 0x46, 0xb9, - 0x0c, 0x73, 0x14, 0xd1, 0xe9, 0x99, 0x9e, 0xd1, 0x35, 0xb1, 0x46, 0x5e, 0x1e, 0x5c, 0x9a, 0x88, - 0x7d, 0xcb, 0x66, 0x89, 0xc6, 0x36, 0x57, 0x20, 0x16, 0xb9, 0xca, 0x06, 0x3c, 0x46, 0x61, 0x6d, - 0x6c, 0x61, 0x07, 0x79, 0x58, 0xc3, 0x9f, 0xe9, 0x21, 0xd3, 0xd5, 0x90, 0xd5, 0xd4, 0x0e, 0x90, - 0x7b, 0x90, 0x9f, 0x27, 0x04, 0xeb, 0xb1, 0xbc, 0xa4, 0x9e, 0x25, 0x8a, 0x9b, 0x5c, 0xaf, 0x42, - 0xd5, 0x4a, 0x56, 0xf3, 0x13, 0xc8, 0x3d, 0x50, 0x8a, 0xb0, 0x40, 0x59, 0x5c, 0xcf, 0x31, 0xac, - 0xb6, 0xa6, 0x1f, 0x60, 0xfd, 0x8e, 0xd6, 0xf3, 0x5a, 0x57, 0xf3, 0x8f, 0x06, 0x9f, 0x4f, 0x2d, - 0x6c, 0x50, 0x9d, 0x32, 0x51, 0xd9, 0xf3, 0x5a, 0x57, 0x95, 0x06, 0x64, 0xc9, 0x66, 0x74, 0x8c, - 0x97, 0xb0, 0xd6, 0xb2, 0x1d, 0x5a, 0x59, 0x72, 0x23, 0x4e, 0x76, 0xc0, 0x83, 0xab, 0x35, 0x0e, - 0xd8, 0xb6, 0x9b, 0xb8, 0x98, 0x6c, 0xd4, 0x2b, 0x95, 0x0d, 0x35, 0x23, 0x58, 0xae, 0xdb, 0x0e, - 0x09, 0xa8, 0xb6, 0xed, 0x3b, 0x38, 0xc3, 0x02, 0xaa, 0x6d, 0x0b, 0xf7, 0x5e, 0x86, 0x39, 0x5d, - 0x67, 0x6b, 0x36, 0x74, 0x8d, 0xb7, 0xf8, 0x6e, 0x5e, 0x0e, 0x39, 0x4b, 0xd7, 0x37, 0x99, 0x02, - 0x8f, 0x71, 0x57, 0x79, 0x0e, 0x1e, 0xe9, 0x3b, 0x2b, 0x08, 0x9c, 0x1d, 0x5a, 0xe5, 0x20, 0xf4, - 0x32, 0xcc, 0x75, 0x0f, 0x87, 0x81, 0x4a, 0xe8, 0x89, 0xdd, 0xc3, 0x41, 0xd8, 0x13, 0xf4, 0xb5, - 0xcd, 0xc1, 0x3a, 0xf2, 0x70, 0x33, 0x7f, 0x26, 0xa8, 0x1d, 0x98, 0x50, 0xd6, 0x40, 0xd6, 0x75, - 0x0d, 0x5b, 0x68, 0xdf, 0xc4, 0x1a, 0x72, 0xb0, 0x85, 0xdc, 0xfc, 0xb9, 0xa0, 0x72, 0x4e, 0xd7, - 0x2b, 0x74, 0xb6, 0x44, 0x27, 0x95, 0xa7, 0x60, 0xd6, 0xde, 0xbf, 0xad, 0xb3, 0xc8, 0xd2, 0xba, - 0x0e, 0x6e, 0x19, 0x2f, 0xe6, 0x1f, 0xa7, 0x6e, 0x9a, 0x21, 0x13, 0x34, 0xae, 0xea, 0x54, 0xac, - 0x3c, 0x09, 0xb2, 0xee, 0x1e, 0x20, 0xa7, 0x4b, 0x4b, 0xbb, 0xdb, 0x45, 0x3a, 0xce, 0x3f, 0xc1, - 0x54, 0x99, 0x7c, 0x47, 0x88, 0x49, 0x64, 0xbb, 0xf7, 0x8c, 0x96, 0x27, 0x18, 0x2f, 0xb0, 0xc8, - 0xa6, 0x32, 0xce, 0x76, 0x13, 0xe6, 0x7b, 0x96, 0x61, 0x79, 0xd8, 0xe9, 0x3a, 0x98, 0x34, 0xf1, - 0xec, 0x24, 0xe6, 0xff, 0x65, 0xea, 0x98, 0x36, 0x7c, 0x2f, 0xa8, 0xcd, 0x02, 0x40, 0x9d, 0xeb, - 0x0d, 0x0b, 0x97, 0x8b, 0x90, 0x0d, 0xc6, 0x85, 0x92, 0x06, 0x16, 0x19, 0xb2, 0x44, 0x6a, 0x6c, - 0xb9, 0xb6, 0x41, 0xaa, 0xe3, 0xa7, 0x2b, 0x72, 0x8c, 0x54, 0xe9, 0xad, 0xea, 0x6e, 0x45, 0x53, - 0xf7, 0x76, 0x76, 0xab, 0xdb, 0x15, 0x39, 0xfe, 0x54, 0x3a, 0xf5, 0xf6, 0x94, 0x7c, 0xff, 0xfe, - 0xfd, 0xfb, 0xb1, 0xe5, 0xef, 0xc4, 0x20, 0x17, 0xee, 0x8c, 0x95, 0x9f, 0x82, 0x33, 0xe2, 0x35, - 0xd6, 0xc5, 0x9e, 0x76, 0xcf, 0x70, 0x68, 0xa8, 0x76, 0x10, 0xeb, 0x2d, 0x7d, 0x2f, 0xcf, 0x73, - 0xad, 0x06, 0xf6, 0x5e, 0x30, 0x1c, 0x12, 0x88, 0x1d, 0xe4, 0x29, 0x5b, 0x70, 0xce, 0xb2, 0x35, - 0xd7, 0x43, 0x56, 0x13, 0x39, 0x4d, 0xad, 0x7f, 0x81, 0xa0, 0x21, 0x5d, 0xc7, 0xae, 0x6b, 0xb3, - 0x12, 0xe1, 0xb3, 0x7c, 0xc0, 0xb2, 0x1b, 0x5c, 0xb9, 0x9f, 0x3b, 0x4b, 0x5c, 0x75, 0x20, 0x22, - 0xe2, 0xc7, 0x45, 0xc4, 0xa3, 0x90, 0xee, 0xa0, 0xae, 0x86, 0x2d, 0xcf, 0x39, 0xa4, 0xfd, 0x5c, - 0x4a, 0x4d, 0x75, 0x50, 0xb7, 0x42, 0xc6, 0xef, 0xdf, 0x1e, 0x04, 0xfd, 0xf8, 0x8f, 0x71, 0xc8, - 0x06, 0x7b, 0x3a, 0xd2, 0x22, 0xeb, 0x34, 0x7f, 0x4b, 0xf4, 0x84, 0x7f, 0xf0, 0xc4, 0x0e, 0x70, - 0xb5, 0x4c, 0x12, 0x7b, 0x71, 0x92, 0x75, 0x5a, 0x2a, 0x43, 0x92, 0xa2, 0x4a, 0xce, 0x34, 0x66, - 0xfd, 0x7b, 0x4a, 0xe5, 0x23, 0x65, 0x13, 0x26, 0x6f, 0xbb, 0x94, 0x7b, 0x92, 0x72, 0x3f, 0x7e, - 0x32, 0xf7, 0x8d, 0x06, 0x25, 0x4f, 0xdf, 0x68, 0x68, 0x3b, 0x35, 0x75, 0xbb, 0xb4, 0xa5, 0x72, - 0xb8, 0x72, 0x16, 0x12, 0x26, 0x7a, 0xe9, 0x30, 0x5c, 0x02, 0xa8, 0x68, 0x5c, 0xc7, 0x9f, 0x85, - 0xc4, 0x3d, 0x8c, 0xee, 0x84, 0x13, 0x2f, 0x15, 0xbd, 0x8f, 0xa1, 0xbf, 0x06, 0x49, 0xea, 0x2f, - 0x05, 0x80, 0x7b, 0x4c, 0x9e, 0x50, 0x52, 0x90, 0x28, 0xd7, 0x54, 0x12, 0xfe, 0x32, 0x64, 0x99, - 0x54, 0xab, 0x57, 0x2b, 0xe5, 0x8a, 0x1c, 0x5b, 0xbe, 0x0c, 0x93, 0xcc, 0x09, 0xe4, 0x68, 0xf8, - 0x6e, 0x90, 0x27, 0xf8, 0x90, 0x73, 0x48, 0x62, 0x76, 0x6f, 0x7b, 0xbd, 0xa2, 0xca, 0xb1, 0xe0, - 0xf6, 0xba, 0x90, 0x0d, 0xb6, 0x73, 0x3f, 0x9e, 0x98, 0xfa, 0x6b, 0x09, 0x32, 0x81, 0xf6, 0x8c, - 0x34, 0x06, 0xc8, 0x34, 0xed, 0x7b, 0x1a, 0x32, 0x0d, 0xe4, 0xf2, 0xa0, 0x00, 0x2a, 0x2a, 0x11, - 0xc9, 0xb8, 0x9b, 0xf6, 0x63, 0x31, 0xfe, 0x35, 0x09, 0xe4, 0xc1, 0xd6, 0x6e, 0xc0, 0x40, 0xe9, - 0x27, 0x6a, 0xe0, 0xab, 0x12, 0xe4, 0xc2, 0xfd, 0xdc, 0x80, 0x79, 0xe7, 0x7f, 0xa2, 0xe6, 0xbd, - 0x19, 0x83, 0xe9, 0x50, 0x17, 0x37, 0xae, 0x75, 0x9f, 0x81, 0x59, 0xa3, 0x89, 0x3b, 0x5d, 0xdb, - 0xc3, 0x96, 0x7e, 0xa8, 0x99, 0xf8, 0x2e, 0x36, 0xf3, 0xcb, 0x34, 0x51, 0xac, 0x9d, 0xdc, 0x27, - 0xae, 0x56, 0xfb, 0xb8, 0x2d, 0x02, 0x2b, 0xce, 0x55, 0x37, 0x2a, 0xdb, 0xf5, 0xda, 0x6e, 0x65, - 0xa7, 0x7c, 0x4b, 0xdb, 0xdb, 0xf9, 0xe9, 0x9d, 0xda, 0x0b, 0x3b, 0xaa, 0x6c, 0x0c, 0xa8, 0xbd, - 0x8f, 0x47, 0xbd, 0x0e, 0xf2, 0xa0, 0x51, 0xca, 0x19, 0x18, 0x65, 0x96, 0x3c, 0xa1, 0xcc, 0xc1, - 0xcc, 0x4e, 0x4d, 0x6b, 0x54, 0x37, 0x2a, 0x5a, 0xe5, 0xfa, 0xf5, 0x4a, 0x79, 0xb7, 0xc1, 0x5e, - 0x9c, 0x7d, 0xed, 0xdd, 0xf0, 0xa1, 0x7e, 0x25, 0x0e, 0x73, 0x23, 0x2c, 0x51, 0x4a, 0xbc, 0x67, - 0x67, 0xaf, 0x11, 0x1f, 0x19, 0xc7, 0xfa, 0x55, 0xd2, 0x15, 0xd4, 0x91, 0xe3, 0xf1, 0x16, 0xff, - 0x49, 0x20, 0x5e, 0xb2, 0x3c, 0xa3, 0x65, 0x60, 0x87, 0xdf, 0x33, 0xb0, 0x46, 0x7e, 0xa6, 0x2f, - 0x67, 0x57, 0x0d, 0x1f, 0x06, 0xa5, 0x6b, 0xbb, 0x86, 0x67, 0xdc, 0xc5, 0x9a, 0x61, 0x89, 0x4b, - 0x09, 0xd2, 0xd8, 0x27, 0x54, 0x59, 0xcc, 0x54, 0x2d, 0xcf, 0xd7, 0xb6, 0x70, 0x1b, 0x0d, 0x68, - 0x93, 0x04, 0x1e, 0x57, 0x65, 0x31, 0xe3, 0x6b, 0x9f, 0x87, 0x6c, 0xd3, 0xee, 0x91, 0x36, 0x89, - 0xe9, 0x91, 0x7a, 0x21, 0xa9, 0x19, 0x26, 0xf3, 0x55, 0x78, 0x1f, 0xdb, 0xbf, 0x0d, 0xc9, 0xaa, - 0x19, 0x26, 0x63, 0x2a, 0x17, 0x60, 0x06, 0xb5, 0xdb, 0x0e, 0x21, 0x17, 0x44, 0xac, 0x33, 0xcf, - 0xf9, 0x62, 0xaa, 0xb8, 0x78, 0x03, 0x52, 0xc2, 0x0f, 0xa4, 0x24, 0x13, 0x4f, 0x68, 0x5d, 0x76, - 0x27, 0x15, 0x5b, 0x49, 0xab, 0x29, 0x4b, 0x4c, 0x9e, 0x87, 0xac, 0xe1, 0x6a, 0xfd, 0xcb, 0xd1, - 0xd8, 0x52, 0x6c, 0x25, 0xa5, 0x66, 0x0c, 0xd7, 0xbf, 0x0d, 0x5b, 0x7e, 0x3d, 0x06, 0xb9, 0xf0, - 0xe5, 0xae, 0xb2, 0x01, 0x29, 0xd3, 0xd6, 0x11, 0x0d, 0x2d, 0xf6, 0x65, 0x61, 0x25, 0xe2, 0x3e, - 0x78, 0x75, 0x8b, 0xeb, 0xab, 0x3e, 0x72, 0xf1, 0xef, 0x25, 0x48, 0x09, 0xb1, 0xb2, 0x00, 0x89, - 0x2e, 0xf2, 0x0e, 0x28, 0x5d, 0x72, 0x3d, 0x26, 0x4b, 0x2a, 0x1d, 0x13, 0xb9, 0xdb, 0x45, 0x16, - 0x0d, 0x01, 0x2e, 0x27, 0x63, 0xb2, 0xaf, 0x26, 0x46, 0x4d, 0xda, 0xf6, 0xdb, 0x9d, 0x0e, 0xb6, - 0x3c, 0x57, 0xec, 0x2b, 0x97, 0x97, 0xb9, 0x58, 0x79, 0x1a, 0x66, 0x3d, 0x07, 0x19, 0x66, 0x48, - 0x37, 0x41, 0x75, 0x65, 0x31, 0xe1, 0x2b, 0x17, 0xe1, 0xac, 0xe0, 0x6d, 0x62, 0x0f, 0xe9, 0x07, - 0xb8, 0xd9, 0x07, 0x4d, 0xd2, 0x9b, 0xc3, 0x33, 0x5c, 0x61, 0x83, 0xcf, 0x0b, 0xec, 0xf2, 0xf7, - 0x24, 0x98, 0x15, 0x2f, 0x2a, 0x4d, 0xdf, 0x59, 0xdb, 0x00, 0xc8, 0xb2, 0x6c, 0x2f, 0xe8, 0xae, - 0xe1, 0x50, 0x1e, 0xc2, 0xad, 0x96, 0x7c, 0x90, 0x1a, 0x20, 0x58, 0xec, 0x00, 0xf4, 0x67, 0x8e, - 0x75, 0xdb, 0x39, 0xc8, 0xf0, 0x9b, 0x7b, 0xfa, 0xf9, 0x87, 0xbd, 0xda, 0x02, 0x13, 0x91, 0x37, - 0x1a, 0x65, 0x1e, 0x92, 0xfb, 0xb8, 0x6d, 0x58, 0xfc, 0x3e, 0x91, 0x0d, 0xc4, 0x2d, 0x65, 0xc2, - 0xbf, 0xa5, 0x5c, 0xbf, 0x09, 0x73, 0xba, 0xdd, 0x19, 0x34, 0x77, 0x5d, 0x1e, 0x78, 0xbd, 0x76, - 0x3f, 0x21, 0x7d, 0x1a, 0xfa, 0x2d, 0xe6, 0x97, 0x63, 0xf1, 0xcd, 0xfa, 0xfa, 0x57, 0x63, 0x8b, - 0x9b, 0x0c, 0x57, 0x17, 0xcb, 0x54, 0x71, 0xcb, 0xc4, 0x3a, 0x31, 0x1d, 0x7e, 0xf0, 0x21, 0xf8, - 0x48, 0xdb, 0xf0, 0x0e, 0x7a, 0xfb, 0xab, 0xba, 0xdd, 0x59, 0x6b, 0xdb, 0x6d, 0xbb, 0xff, 0xb9, - 0x8b, 0x8c, 0xe8, 0x80, 0xfe, 0xe2, 0x9f, 0xbc, 0xd2, 0xbe, 0x74, 0x31, 0xf2, 0xfb, 0x58, 0x71, - 0x07, 0xe6, 0xb8, 0xb2, 0x46, 0xef, 0xdc, 0xd9, 0xab, 0x81, 0x72, 0xe2, 0xbd, 0x4b, 0xfe, 0x1b, - 0x6f, 0xd1, 0x5a, 0xad, 0xce, 0x72, 0x28, 0x99, 0x63, 0x2f, 0x10, 0x45, 0x15, 0x1e, 0x09, 0xf1, - 0xb1, 0x73, 0x89, 0x9d, 0x08, 0xc6, 0xef, 0x70, 0xc6, 0xb9, 0x00, 0x63, 0x83, 0x43, 0x8b, 0x65, - 0x98, 0x3e, 0x0d, 0xd7, 0xdf, 0x72, 0xae, 0x2c, 0x0e, 0x92, 0x6c, 0xc2, 0x0c, 0x25, 0xd1, 0x7b, - 0xae, 0x67, 0x77, 0x68, 0xd2, 0x3b, 0x99, 0xe6, 0xef, 0xde, 0x62, 0x07, 0x25, 0x47, 0x60, 0x65, - 0x1f, 0x55, 0x2c, 0x02, 0xfd, 0xcc, 0xd0, 0xc4, 0xba, 0x19, 0xc1, 0xf0, 0x06, 0x37, 0xc4, 0xd7, - 0x2f, 0x7e, 0x0a, 0xe6, 0xc9, 0x6f, 0x9a, 0x93, 0x82, 0x96, 0x44, 0xdf, 0x32, 0xe5, 0xbf, 0xf7, - 0x32, 0x3b, 0x8b, 0x73, 0x3e, 0x41, 0xc0, 0xa6, 0xc0, 0x2e, 0xb6, 0xb1, 0xe7, 0x61, 0xc7, 0xd5, - 0x90, 0x39, 0xca, 0xbc, 0xc0, 0x6b, 0x7a, 0xfe, 0x8b, 0xef, 0x84, 0x77, 0x71, 0x93, 0x21, 0x4b, - 0xa6, 0x59, 0xdc, 0x83, 0x33, 0x23, 0xa2, 0x62, 0x0c, 0xce, 0x57, 0x38, 0xe7, 0xfc, 0x50, 0x64, - 0x10, 0xda, 0x3a, 0x08, 0xb9, 0xbf, 0x97, 0x63, 0x70, 0xfe, 0x36, 0xe7, 0x54, 0x38, 0x56, 0x6c, - 0x29, 0x61, 0xbc, 0x01, 0xb3, 0x77, 0xb1, 0xb3, 0x6f, 0xbb, 0xfc, 0x6a, 0x64, 0x0c, 0xba, 0x57, - 0x39, 0xdd, 0x0c, 0x07, 0xd2, 0xbb, 0x12, 0xc2, 0xf5, 0x1c, 0xa4, 0x5a, 0x48, 0xc7, 0x63, 0x50, - 0x7c, 0x89, 0x53, 0x4c, 0x11, 0x7d, 0x02, 0x2d, 0x41, 0xb6, 0x6d, 0xf3, 0xb2, 0x14, 0x0d, 0x7f, - 0x8d, 0xc3, 0x33, 0x02, 0xc3, 0x29, 0xba, 0x76, 0xb7, 0x67, 0x92, 0x9a, 0x15, 0x4d, 0xf1, 0x3b, - 0x82, 0x42, 0x60, 0x38, 0xc5, 0x29, 0xdc, 0xfa, 0xbb, 0x82, 0xc2, 0x0d, 0xf8, 0xf3, 0x79, 0xc8, - 0xd8, 0x96, 0x79, 0x68, 0x5b, 0xe3, 0x18, 0xf1, 0x7b, 0x9c, 0x01, 0x38, 0x84, 0x10, 0x5c, 0x83, - 0xf4, 0xb8, 0x1b, 0xf1, 0xfb, 0xef, 0x88, 0xe3, 0x21, 0x76, 0x60, 0x13, 0x66, 0x44, 0x82, 0x32, - 0x6c, 0x6b, 0x0c, 0x8a, 0x3f, 0xe0, 0x14, 0xb9, 0x00, 0x8c, 0x2f, 0xc3, 0xc3, 0xae, 0xd7, 0xc6, - 0xe3, 0x90, 0xbc, 0x2e, 0x96, 0xc1, 0x21, 0xdc, 0x95, 0xfb, 0xd8, 0xd2, 0x0f, 0xc6, 0x63, 0xf8, - 0x8a, 0x70, 0xa5, 0xc0, 0x10, 0x8a, 0x32, 0x4c, 0x77, 0x90, 0xe3, 0x1e, 0x20, 0x73, 0xac, 0xed, - 0xf8, 0x43, 0xce, 0x91, 0xf5, 0x41, 0xdc, 0x23, 0x3d, 0xeb, 0x34, 0x34, 0x5f, 0x15, 0x1e, 0x09, - 0xc0, 0xf8, 0xd1, 0x73, 0x3d, 0x7a, 0x01, 0x75, 0x1a, 0xb6, 0xaf, 0x89, 0xa3, 0xc7, 0xb0, 0xdb, - 0x41, 0xc6, 0x6b, 0x90, 0x76, 0x8d, 0x97, 0xc6, 0xa2, 0xf9, 0x23, 0xb1, 0xd3, 0x14, 0x40, 0xc0, - 0xb7, 0xe0, 0xec, 0xc8, 0x32, 0x31, 0x06, 0xd9, 0x1f, 0x73, 0xb2, 0x85, 0x11, 0xa5, 0x82, 0xa7, - 0x84, 0xd3, 0x52, 0xfe, 0x89, 0x48, 0x09, 0x78, 0x80, 0xab, 0x4e, 0x5e, 0x14, 0x5c, 0xd4, 0x3a, - 0x9d, 0xd7, 0xfe, 0x54, 0x78, 0x8d, 0x61, 0x43, 0x5e, 0xdb, 0x85, 0x05, 0xce, 0x78, 0xba, 0x7d, - 0xfd, 0xba, 0x48, 0xac, 0x0c, 0xbd, 0x17, 0xde, 0xdd, 0x9f, 0x81, 0x45, 0xdf, 0x9d, 0xa2, 0x23, - 0x75, 0xb5, 0x0e, 0xea, 0x8e, 0xc1, 0xfc, 0x0d, 0xce, 0x2c, 0x32, 0xbe, 0xdf, 0xd2, 0xba, 0xdb, - 0xa8, 0x4b, 0xc8, 0x6f, 0x42, 0x5e, 0x90, 0xf7, 0x2c, 0x07, 0xeb, 0x76, 0xdb, 0x32, 0x5e, 0xc2, - 0xcd, 0x31, 0xa8, 0xff, 0x6c, 0x60, 0xab, 0xf6, 0x02, 0x70, 0xc2, 0x5c, 0x05, 0xd9, 0xef, 0x55, - 0x34, 0xa3, 0xd3, 0xb5, 0x1d, 0x2f, 0x82, 0xf1, 0xcf, 0xc5, 0x4e, 0xf9, 0xb8, 0x2a, 0x85, 0x15, - 0x2b, 0x90, 0xa3, 0xc3, 0x71, 0x43, 0xf2, 0x2f, 0x38, 0xd1, 0x74, 0x1f, 0xc5, 0x13, 0x87, 0x6e, - 0x77, 0xba, 0xc8, 0x19, 0x27, 0xff, 0xfd, 0xa5, 0x48, 0x1c, 0x1c, 0xc2, 0x13, 0x87, 0x77, 0xd8, - 0xc5, 0xa4, 0xda, 0x8f, 0xc1, 0xf0, 0x4d, 0x91, 0x38, 0x04, 0x86, 0x53, 0x88, 0x86, 0x61, 0x0c, - 0x8a, 0xbf, 0x12, 0x14, 0x02, 0x43, 0x28, 0x3e, 0xd9, 0x2f, 0xb4, 0x0e, 0x6e, 0x1b, 0xae, 0xe7, - 0xb0, 0x3e, 0xf8, 0x64, 0xaa, 0x6f, 0xbd, 0x13, 0x6e, 0xc2, 0xd4, 0x00, 0xb4, 0x78, 0x03, 0x66, - 0x06, 0x5a, 0x0c, 0x25, 0xea, 0x7f, 0x16, 0xf2, 0x3f, 0xfb, 0x1e, 0x4f, 0x46, 0xe1, 0x0e, 0xa3, - 0xb8, 0x45, 0xf6, 0x3d, 0xdc, 0x07, 0x44, 0x93, 0xbd, 0xfc, 0x9e, 0xbf, 0xf5, 0xa1, 0x36, 0xa0, - 0x78, 0x1d, 0xa6, 0x43, 0x3d, 0x40, 0x34, 0xd5, 0x67, 0x39, 0x55, 0x36, 0xd8, 0x02, 0x14, 0x2f, - 0x43, 0x82, 0xd4, 0xf3, 0x68, 0xf8, 0xcf, 0x71, 0x38, 0x55, 0x2f, 0x7e, 0x0c, 0x52, 0xa2, 0x8e, - 0x47, 0x43, 0x7f, 0x9e, 0x43, 0x7d, 0x08, 0x81, 0x8b, 0x1a, 0x1e, 0x0d, 0xff, 0x05, 0x01, 0x17, - 0x10, 0x02, 0x1f, 0xdf, 0x85, 0xdf, 0xfe, 0xa5, 0x04, 0xcf, 0xc3, 0xc2, 0x77, 0xd7, 0x60, 0x8a, - 0x17, 0xef, 0x68, 0xf4, 0xe7, 0xf8, 0xc3, 0x05, 0xa2, 0xf8, 0x2c, 0x24, 0xc7, 0x74, 0xf8, 0x2f, - 0x73, 0x28, 0xd3, 0x2f, 0x96, 0x21, 0x13, 0x28, 0xd8, 0xd1, 0xf0, 0x5f, 0xe1, 0xf0, 0x20, 0x8a, - 0x98, 0xce, 0x0b, 0x76, 0x34, 0xc1, 0xe7, 0x85, 0xe9, 0x1c, 0x41, 0xdc, 0x26, 0x6a, 0x75, 0x34, - 0xfa, 0x57, 0x85, 0xd7, 0x05, 0xa4, 0xf8, 0x3c, 0xa4, 0xfd, 0xfc, 0x1b, 0x8d, 0xff, 0x35, 0x8e, - 0xef, 0x63, 0x88, 0x07, 0x02, 0xf9, 0x3f, 0x9a, 0xe2, 0xd7, 0x85, 0x07, 0x02, 0x28, 0x72, 0x8c, - 0x06, 0x6b, 0x7a, 0x34, 0xd3, 0x6f, 0x88, 0x63, 0x34, 0x50, 0xd2, 0xc9, 0x6e, 0xd2, 0x34, 0x18, - 0x4d, 0xf1, 0x9b, 0x62, 0x37, 0xa9, 0x3e, 0x31, 0x63, 0xb0, 0x48, 0x46, 0x73, 0xfc, 0x96, 0x30, - 0x63, 0xa0, 0x46, 0x16, 0xeb, 0xa0, 0x0c, 0x17, 0xc8, 0x68, 0xbe, 0x2f, 0x70, 0xbe, 0xd9, 0xa1, - 0xfa, 0x58, 0x7c, 0x01, 0x16, 0x46, 0x17, 0xc7, 0x68, 0xd6, 0x2f, 0xbe, 0x37, 0xf0, 0x3a, 0x13, - 0xac, 0x8d, 0xc5, 0xdd, 0x7e, 0x96, 0x0d, 0x16, 0xc6, 0x68, 0xda, 0x57, 0xde, 0x0b, 0x27, 0xda, - 0x60, 0x5d, 0x2c, 0x96, 0x00, 0xfa, 0x35, 0x29, 0x9a, 0xeb, 0x55, 0xce, 0x15, 0x00, 0x91, 0xa3, - 0xc1, 0x4b, 0x52, 0x34, 0xfe, 0x4b, 0xe2, 0x68, 0x70, 0x04, 0x39, 0x1a, 0xa2, 0x1a, 0x45, 0xa3, - 0x5f, 0x13, 0x47, 0x43, 0x40, 0x8a, 0xd7, 0x20, 0x65, 0xf5, 0x4c, 0x93, 0xc4, 0x96, 0x72, 0xf2, - 0xbf, 0x11, 0xe5, 0xff, 0xf5, 0x21, 0x07, 0x0b, 0x40, 0xf1, 0x32, 0x24, 0x71, 0x67, 0x1f, 0x37, - 0xa3, 0x90, 0xff, 0xf6, 0x50, 0xe4, 0x13, 0xa2, 0x5d, 0x7c, 0x1e, 0x80, 0xbd, 0x4c, 0xd3, 0xaf, - 0x44, 0x11, 0xd8, 0x7f, 0x7f, 0xc8, 0xff, 0x43, 0xa1, 0x0f, 0xe9, 0x13, 0xb0, 0xff, 0x77, 0x38, - 0x99, 0xe0, 0x9d, 0x30, 0x01, 0x7d, 0x01, 0x7f, 0x0e, 0xa6, 0x6e, 0xbb, 0xb6, 0xe5, 0xa1, 0x76, - 0x14, 0xfa, 0x3f, 0x38, 0x5a, 0xe8, 0x13, 0x87, 0x75, 0x6c, 0x07, 0x7b, 0xa8, 0xed, 0x46, 0x61, - 0xff, 0x93, 0x63, 0x7d, 0x00, 0x01, 0xeb, 0xc8, 0xf5, 0xc6, 0x59, 0xf7, 0x7f, 0x09, 0xb0, 0x00, - 0x10, 0xa3, 0xc9, 0xef, 0x3b, 0xf8, 0x30, 0x0a, 0xfb, 0xae, 0x30, 0x9a, 0xeb, 0x17, 0x3f, 0x06, - 0x69, 0xf2, 0x93, 0xfd, 0xd7, 0x4e, 0x04, 0xf8, 0xbf, 0x39, 0xb8, 0x8f, 0x20, 0x4f, 0x76, 0xbd, - 0xa6, 0x67, 0x44, 0x3b, 0xfb, 0x7f, 0xf8, 0x4e, 0x0b, 0xfd, 0x62, 0x09, 0x32, 0xae, 0xd7, 0x6c, - 0xf6, 0x78, 0x47, 0x13, 0x01, 0xff, 0xc1, 0x43, 0xff, 0x25, 0xd7, 0xc7, 0xac, 0x9f, 0x1f, 0x7d, - 0x59, 0x07, 0x9b, 0xf6, 0xa6, 0xcd, 0xae, 0xe9, 0xe0, 0xf3, 0x49, 0x38, 0xaf, 0xdb, 0x9d, 0x7d, - 0xdb, 0x5d, 0x63, 0x09, 0x65, 0xdf, 0xf6, 0x0e, 0xd6, 0xfc, 0x05, 0x88, 0x9b, 0x36, 0x5f, 0xb0, - 0x78, 0xba, 0x3b, 0xba, 0xe5, 0xbf, 0x89, 0x43, 0xaa, 0x8c, 0x5c, 0x0f, 0xdd, 0x43, 0x87, 0x4a, - 0x17, 0xe6, 0xc8, 0xef, 0x6d, 0xd4, 0xa5, 0x37, 0x3e, 0xfc, 0x88, 0xf1, 0x3b, 0xd0, 0x0f, 0xaf, - 0xf6, 0x9f, 0x2a, 0x10, 0xab, 0x23, 0xd4, 0xe9, 0xb7, 0xe3, 0x75, 0xf9, 0x8d, 0x7f, 0x3a, 0x37, - 0xf1, 0x8b, 0xff, 0x7c, 0x2e, 0xb5, 0x7d, 0xf8, 0x82, 0x61, 0xba, 0xb6, 0xa5, 0x8e, 0xa2, 0x56, - 0x3e, 0x2b, 0xc1, 0xa3, 0x23, 0xe4, 0x3b, 0xfc, 0x1c, 0xf2, 0x2f, 0x09, 0x97, 0xc6, 0x7c, 0xb4, - 0x80, 0x31, 0x13, 0xb2, 0xa1, 0xc7, 0x9f, 0xf4, 0x98, 0xc5, 0x5b, 0x90, 0x3f, 0x6e, 0x25, 0x8a, - 0x0c, 0xf1, 0x3b, 0xf8, 0x90, 0xff, 0x77, 0x28, 0xf9, 0xa9, 0x5c, 0xe8, 0xff, 0x77, 0x99, 0xb4, - 0x92, 0xb9, 0x38, 0x1b, 0xb0, 0x8e, 0x3f, 0x8c, 0xcd, 0x17, 0x63, 0x57, 0xa5, 0x45, 0x04, 0x4b, - 0x51, 0x96, 0xfe, 0x3f, 0x1f, 0xb1, 0x5c, 0x80, 0x49, 0x26, 0x54, 0xe6, 0x21, 0x59, 0xb5, 0xbc, - 0x2b, 0x97, 0x28, 0x55, 0x5c, 0x65, 0x83, 0xf5, 0xad, 0x37, 0x1e, 0x14, 0x26, 0xbe, 0xfb, 0xa0, - 0x30, 0xf1, 0x0f, 0x0f, 0x0a, 0x13, 0x6f, 0x3e, 0x28, 0x48, 0x6f, 0x3f, 0x28, 0x48, 0xef, 0x3e, - 0x28, 0x48, 0x3f, 0x7c, 0x50, 0x90, 0xee, 0x1f, 0x15, 0xa4, 0xaf, 0x1c, 0x15, 0xa4, 0xaf, 0x1f, - 0x15, 0xa4, 0x6f, 0x1d, 0x15, 0xa4, 0x6f, 0x1f, 0x15, 0xa4, 0x37, 0x8e, 0x0a, 0x13, 0xdf, 0x3d, - 0x2a, 0x4c, 0xbc, 0x79, 0x54, 0x90, 0xde, 0x3e, 0x2a, 0x4c, 0xbc, 0x7b, 0x54, 0x90, 0x7e, 0x78, - 0x54, 0x90, 0xee, 0x7f, 0xbf, 0x20, 0xfd, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc4, 0x14, 0xcf, - 0xd0, 0xee, 0x30, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Castaway) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Castaway") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Castaway but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Castaway but is not nil && this == nil") - } - if len(this.CastMapValueMessage) != len(that1.CastMapValueMessage) { - return fmt.Errorf("CastMapValueMessage this(%v) Not Equal that(%v)", len(this.CastMapValueMessage), len(that1.CastMapValueMessage)) - } - for i := range this.CastMapValueMessage { - a := (Wilson)(this.CastMapValueMessage[i]) - b := (Wilson)(that1.CastMapValueMessage[i]) - if !(&a).Equal(&b) { - return fmt.Errorf("CastMapValueMessage this[%v](%v) Not Equal that[%v](%v)", i, this.CastMapValueMessage[i], i, that1.CastMapValueMessage[i]) - } - } - if len(this.CastMapValueMessageNullable) != len(that1.CastMapValueMessageNullable) { - return fmt.Errorf("CastMapValueMessageNullable this(%v) Not Equal that(%v)", len(this.CastMapValueMessageNullable), len(that1.CastMapValueMessageNullable)) - } - for i := range this.CastMapValueMessageNullable { - a := (*Wilson)(this.CastMapValueMessageNullable[i]) - b := (*Wilson)(that1.CastMapValueMessageNullable[i]) - if !a.Equal(b) { - return fmt.Errorf("CastMapValueMessageNullable this[%v](%v) Not Equal that[%v](%v)", i, this.CastMapValueMessageNullable[i], i, that1.CastMapValueMessageNullable[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Castaway) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.CastMapValueMessage) != len(that1.CastMapValueMessage) { - return false - } - for i := range this.CastMapValueMessage { - a := (Wilson)(this.CastMapValueMessage[i]) - b := (Wilson)(that1.CastMapValueMessage[i]) - if !(&a).Equal(&b) { - return false - } - } - if len(this.CastMapValueMessageNullable) != len(that1.CastMapValueMessageNullable) { - return false - } - for i := range this.CastMapValueMessageNullable { - a := (*Wilson)(this.CastMapValueMessageNullable[i]) - b := (*Wilson)(that1.CastMapValueMessageNullable[i]) - if !a.Equal(b) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Wilson) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Wilson") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Wilson but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Wilson but is not nil && this == nil") - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", *this.Int64, *that1.Int64) - } - } else if this.Int64 != nil { - return fmt.Errorf("this.Int64 == nil && that.Int64 != nil") - } else if that1.Int64 != nil { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", this.Int64, that1.Int64) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Wilson) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return false - } - } else if this.Int64 != nil { - return false - } else if that1.Int64 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetCastMapValueMessage() map[int32]MyWilson - GetCastMapValueMessageNullable() map[int32]*MyWilson -} - -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCastawayFromFace(this) -} - -func (this *Castaway) GetCastMapValueMessage() map[int32]MyWilson { - return this.CastMapValueMessage -} - -func (this *Castaway) GetCastMapValueMessageNullable() map[int32]*MyWilson { - return this.CastMapValueMessageNullable -} - -func NewCastawayFromFace(that CastawayFace) *Castaway { - this := &Castaway{} - this.CastMapValueMessage = that.GetCastMapValueMessage() - this.CastMapValueMessageNullable = that.GetCastMapValueMessageNullable() - return this -} - -type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetInt64() *int64 -} - -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { - return NewWilsonFromFace(this) -} - -func (this *Wilson) GetInt64() *int64 { - return this.Int64 -} - -func NewWilsonFromFace(that WilsonFace) *Wilson { - this := &Wilson{} - this.Int64 = that.GetInt64() - return this -} - -func (this *Castaway) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&castvalue.Castaway{") - keysForCastMapValueMessage := make([]int32, 0, len(this.CastMapValueMessage)) - for k := range this.CastMapValueMessage { - keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) - mapStringForCastMapValueMessage := "map[int32]MyWilson{" - for _, k := range keysForCastMapValueMessage { - mapStringForCastMapValueMessage += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessage[k]) - } - mapStringForCastMapValueMessage += "}" - if this.CastMapValueMessage != nil { - s = append(s, "CastMapValueMessage: "+mapStringForCastMapValueMessage+",\n") - } - keysForCastMapValueMessageNullable := make([]int32, 0, len(this.CastMapValueMessageNullable)) - for k := range this.CastMapValueMessageNullable { - keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) - mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" - for _, k := range keysForCastMapValueMessageNullable { - mapStringForCastMapValueMessageNullable += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessageNullable[k]) - } - mapStringForCastMapValueMessageNullable += "}" - if this.CastMapValueMessageNullable != nil { - s = append(s, "CastMapValueMessageNullable: "+mapStringForCastMapValueMessageNullable+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Wilson) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&castvalue.Wilson{") - if this.Int64 != nil { - s = append(s, "Int64: "+valueToGoStringCastvalue(this.Int64, "int64")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringCastvalue(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { - this := &Castaway{} - if r.Intn(10) != 0 { - v1 := r.Intn(10) - this.CastMapValueMessage = make(map[int32]MyWilson) - for i := 0; i < v1; i++ { - this.CastMapValueMessage[int32(r.Int31())] = (MyWilson)(*NewPopulatedWilson(r, easy)) - } - } - if r.Intn(10) != 0 { - v2 := r.Intn(10) - this.CastMapValueMessageNullable = make(map[int32]*MyWilson) - for i := 0; i < v2; i++ { - this.CastMapValueMessageNullable[int32(r.Int31())] = (*MyWilson)(NewPopulatedWilson(r, easy)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCastvalue(r, 3) - } - return this -} - -func NewPopulatedWilson(r randyCastvalue, easy bool) *Wilson { - this := &Wilson{} - if r.Intn(10) != 0 { - v3 := int64(r.Int63()) - if r.Intn(2) == 0 { - v3 *= -1 - } - this.Int64 = &v3 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCastvalue(r, 2) - } - return this -} - -type randyCastvalue interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneCastvalue(r randyCastvalue) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringCastvalue(r randyCastvalue) string { - v4 := r.Intn(100) - tmps := make([]rune, v4) - for i := 0; i < v4; i++ { - tmps[i] = randUTF8RuneCastvalue(r) - } - return string(tmps) -} -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - v5 := r.Int63() - if r.Intn(2) == 0 { - v5 *= -1 - } - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) - case 1: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Castaway) Size() (n int) { - var l int - _ = l - if len(m.CastMapValueMessage) > 0 { - for k, v := range m.CastMapValueMessage { - _ = k - _ = v - l = ((*Wilson)(&v)).Size() - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) - n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) - } - } - if len(m.CastMapValueMessageNullable) > 0 { - for k, v := range m.CastMapValueMessageNullable { - _ = k - _ = v - l = 0 - if v != nil { - l = ((*Wilson)(v)).Size() - l += 1 + sovCastvalue(uint64(l)) - } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + l - n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Wilson) Size() (n int) { - var l int - _ = l - if m.Int64 != nil { - n += 1 + sovCastvalue(uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovCastvalue(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozCastvalue(x uint64) (n int) { - return sovCastvalue(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Castaway) String() string { - if this == nil { - return "nil" - } - keysForCastMapValueMessage := make([]int32, 0, len(this.CastMapValueMessage)) - for k := range this.CastMapValueMessage { - keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) - mapStringForCastMapValueMessage := "map[int32]MyWilson{" - for _, k := range keysForCastMapValueMessage { - mapStringForCastMapValueMessage += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessage[k]) - } - mapStringForCastMapValueMessage += "}" - keysForCastMapValueMessageNullable := make([]int32, 0, len(this.CastMapValueMessageNullable)) - for k := range this.CastMapValueMessageNullable { - keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) - mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" - for _, k := range keysForCastMapValueMessageNullable { - mapStringForCastMapValueMessageNullable += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessageNullable[k]) - } - mapStringForCastMapValueMessageNullable += "}" - s := strings.Join([]string{`&Castaway{`, - `CastMapValueMessage:` + mapStringForCastMapValueMessage + `,`, - `CastMapValueMessageNullable:` + mapStringForCastMapValueMessageNullable + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Wilson) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Wilson{`, - `Int64:` + valueToStringCastvalue(this.Int64) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringCastvalue(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Castaway) 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 *Castaway) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.CastMapValueMessage) > 0 { - for k := range m.CastMapValueMessage { - dAtA[i] = 0xa - i++ - v := m.CastMapValueMessage[k] - msgSize := 0 - if ((*Wilson)(&v)) != nil { - msgSize = ((*Wilson)(&v)).Size() - msgSize += 1 + sovCastvalue(uint64(msgSize)) - } - mapSize := 1 + sovCastvalue(uint64(k)) + msgSize - i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(&v)).Size())) - n1, err := ((*Wilson)(&v)).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - } - if len(m.CastMapValueMessageNullable) > 0 { - for k := range m.CastMapValueMessageNullable { - dAtA[i] = 0x12 - i++ - v := m.CastMapValueMessageNullable[k] - msgSize := 0 - if ((*Wilson)(v)) != nil { - msgSize = ((*Wilson)(v)).Size() - msgSize += 1 + sovCastvalue(uint64(msgSize)) - } - mapSize := 1 + sovCastvalue(uint64(k)) + msgSize - i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(k)) - if ((*Wilson)(v)) != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(v)).Size())) - n2, err := ((*Wilson)(v)).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Wilson) 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 *Wilson) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Int64 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Castvalue(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 encodeFixed32Castvalue(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 encodeVarintCastvalue(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 *Castaway) 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 ErrIntOverflowCastvalueUnsafe - } - 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: Castaway: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Castaway: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CastMapValueMessage", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.CastMapValueMessage == nil { - m.CastMapValueMessage = make(map[int32]MyWilson) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) - } else { - var mapvalue MyWilson - m.CastMapValueMessage[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CastMapValueMessageNullable", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.CastMapValueMessageNullable == nil { - m.CastMapValueMessageNullable = make(map[int32]*MyWilson) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) - } else { - var mapvalue *MyWilson - m.CastMapValueMessageNullable[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCastvalueUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Wilson) 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 ErrIntOverflowCastvalueUnsafe - } - 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: Wilson: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Wilson: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64 = &v - default: - iNdEx = preIndex - skippy, err := skipCastvalueUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipCastvalueUnsafe(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, ErrIntOverflowCastvalueUnsafe - } - 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, ErrIntOverflowCastvalueUnsafe - } - 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, ErrIntOverflowCastvalueUnsafe - } - 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, ErrInvalidLengthCastvalueUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowCastvalueUnsafe - } - 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 := skipCastvalueUnsafe(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 ( - ErrInvalidLengthCastvalueUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowCastvalueUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeboth/castvalue.proto", fileDescriptorCastvalue) } - -var fileDescriptorCastvalue = []byte{ - // 358 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbf, 0x4f, 0xfa, 0x50, - 0x14, 0xc5, 0x7b, 0x69, 0xf8, 0x86, 0xef, 0xc3, 0x01, 0xab, 0x43, 0x83, 0xc9, 0xa5, 0xb2, 0xc8, - 0xa0, 0x6d, 0x42, 0x88, 0x31, 0x8e, 0x18, 0x07, 0x13, 0x71, 0x60, 0xd0, 0x38, 0xbe, 0x92, 0x52, - 0x88, 0xa5, 0x8f, 0xd0, 0x56, 0xd3, 0x8d, 0xc1, 0xc9, 0xbf, 0xc4, 0xd1, 0xd1, 0x51, 0x37, 0x46, - 0x46, 0x27, 0xe5, 0x3d, 0x17, 0x46, 0x46, 0x46, 0xc3, 0xab, 0xf8, 0x23, 0xc1, 0x1f, 0x89, 0xdb, - 0xbd, 0xe7, 0xdd, 0x73, 0x3e, 0xe7, 0x91, 0xf5, 0x06, 0xeb, 0xd8, 0x2c, 0xb0, 0x22, 0x3f, 0xa0, - 0x4d, 0xc7, 0x66, 0x61, 0xcb, 0x6a, 0xd0, 0x20, 0x3c, 0xa7, 0x5e, 0xe4, 0x98, 0xdd, 0x1e, 0x0b, - 0x99, 0xf6, 0xff, 0x4d, 0xc8, 0x6f, 0xb9, 0xed, 0xb0, 0x15, 0xd9, 0x66, 0x83, 0x75, 0x2c, 0x97, - 0xb9, 0xcc, 0x92, 0x17, 0x76, 0xd4, 0x94, 0x9b, 0x5c, 0xe4, 0x94, 0x38, 0x8b, 0xf7, 0x2a, 0xc9, - 0xec, 0xd1, 0x20, 0xa4, 0x17, 0x34, 0xd6, 0xba, 0x64, 0x65, 0x36, 0xd7, 0x68, 0xf7, 0x78, 0x96, - 0x55, 0x73, 0x82, 0x80, 0xba, 0x8e, 0x0e, 0x86, 0x5a, 0xca, 0x96, 0x37, 0xcd, 0x77, 0xea, 0xdc, - 0x61, 0x2e, 0x38, 0xdf, 0xf7, 0xc3, 0x5e, 0x5c, 0xcd, 0x0d, 0x1e, 0x0b, 0xca, 0xd5, 0x53, 0x21, - 0x53, 0x8b, 0x4f, 0xda, 0x5e, 0xc0, 0xfc, 0xfa, 0xa2, 0x68, 0xed, 0x12, 0xc8, 0xda, 0x02, 0xfd, - 0x28, 0xf2, 0x3c, 0x6a, 0x7b, 0x8e, 0x9e, 0x92, 0xe8, 0xca, 0x2f, 0xd1, 0x73, 0x5b, 0x52, 0x61, - 0xe9, 0x13, 0xfe, 0x3b, 0x4c, 0xfe, 0x94, 0xe8, 0x5f, 0xfd, 0x44, 0xcb, 0x11, 0xf5, 0xcc, 0x89, - 0x75, 0x30, 0xa0, 0x94, 0xae, 0xcf, 0x46, 0x6d, 0x83, 0xa4, 0x65, 0x17, 0x3d, 0x65, 0x40, 0x29, - 0x5b, 0x5e, 0xfe, 0xd0, 0xee, 0x15, 0x96, 0xbc, 0xef, 0xa6, 0x76, 0x20, 0x4f, 0x89, 0xf1, 0x53, - 0xd3, 0x3f, 0x22, 0x8a, 0x48, 0xfe, 0x25, 0xa2, 0xb6, 0x4a, 0xd2, 0x07, 0x7e, 0xb8, 0x5d, 0x91, - 0x51, 0x6a, 0x3d, 0x59, 0xaa, 0x87, 0x03, 0x8e, 0xca, 0x90, 0xa3, 0xf2, 0xc0, 0x51, 0x19, 0x71, - 0x84, 0x31, 0x47, 0x98, 0x70, 0x84, 0x29, 0x47, 0xe8, 0x0b, 0x84, 0x6b, 0x81, 0x70, 0x23, 0x10, - 0x6e, 0x05, 0xc2, 0x9d, 0x40, 0x18, 0x08, 0x54, 0x86, 0x02, 0x95, 0x91, 0x40, 0x18, 0x0b, 0x54, - 0x26, 0x02, 0x61, 0x2a, 0x10, 0xfa, 0xcf, 0x08, 0x2f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x93, - 0x2e, 0x16, 0x8f, 0x02, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvaluepb_test.go deleted file mode 100644 index 371d619b1..000000000 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvaluepb_test.go +++ /dev/null @@ -1,538 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/castvalue.proto -// DO NOT EDIT! - -/* -Package castvalue is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeboth/castvalue.proto - -It has these top-level messages: - Castaway - Wilson -*/ -package castvalue - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestCastawayProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCastawayMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Castaway{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestWilsonMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Wilson{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestWilsonJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCastawayProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCastawayProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCastvalueDescription(t *testing.T) { - CastvalueDescription() -} -func TestCastawayVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestWilsonVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCastawaySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.pb.go deleted file mode 100644 index f7da2c88f..000000000 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.pb.go +++ /dev/null @@ -1,991 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/castvalue.proto -// DO NOT EDIT! - -/* -Package castvalue is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/castvalue.proto - -It has these top-level messages: - Castaway - Wilson -*/ -package castvalue - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -// 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 - -type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Castaway) Reset() { *m = Castaway{} } -func (*Castaway) ProtoMessage() {} -func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } - -type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Wilson) Reset() { *m = Wilson{} } -func (*Wilson) ProtoMessage() {} -func (*Wilson) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{1} } - -func init() { - proto.RegisterType((*Castaway)(nil), "castvalue.Castaway") - proto.RegisterType((*Wilson)(nil), "castvalue.Wilson") -} -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CastvalueDescription() -} -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CastvalueDescription() -} -func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 3795 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, - 0x2d, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, - 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, - 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xf4, 0x3f, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0x33, - 0xd3, 0x3a, 0x4d, 0xfa, 0x93, 0xf4, 0x27, 0xcd, 0xf4, 0x29, 0x7d, 0x48, 0xeb, 0xa7, 0x4e, 0xf2, - 0xd6, 0x87, 0x4e, 0x6b, 0x31, 0x9e, 0xa9, 0xdb, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x99, 0xf1, 0x4b, - 0xe7, 0xfe, 0x2d, 0x76, 0x01, 0x90, 0x0b, 0xa6, 0xe3, 0xf8, 0x89, 0xb8, 0xe7, 0x9e, 0xef, 0xdb, - 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0xb3, 0x77, 0x09, 0x3f, 0xb8, 0x0c, 0x4b, 0x6d, 0xdb, 0x6e, 0x9b, - 0x78, 0xad, 0xeb, 0xd8, 0x9e, 0xbd, 0xdf, 0x6b, 0xad, 0x35, 0xb1, 0xab, 0x3b, 0x46, 0xd7, 0xb3, - 0x9d, 0x55, 0x2a, 0x53, 0x66, 0x98, 0xc6, 0xaa, 0xd0, 0x58, 0xde, 0x86, 0xd9, 0xeb, 0x86, 0x89, - 0x37, 0x7c, 0xc5, 0x06, 0xf6, 0x94, 0xab, 0x90, 0x68, 0x19, 0x26, 0xce, 0x4b, 0x4b, 0xf1, 0x95, - 0xcc, 0xc5, 0x47, 0x57, 0x07, 0x40, 0xab, 0x61, 0x44, 0x9d, 0x88, 0x55, 0x8a, 0x58, 0x7e, 0x33, - 0x01, 0x73, 0x23, 0x66, 0x15, 0x05, 0x12, 0x16, 0xea, 0x10, 0x46, 0x69, 0x25, 0xad, 0xd2, 0xdf, - 0x4a, 0x1e, 0xa6, 0xba, 0x48, 0xbf, 0x83, 0xda, 0x38, 0x1f, 0xa3, 0x62, 0x31, 0x54, 0x0a, 0x00, - 0x4d, 0xdc, 0xc5, 0x56, 0x13, 0x5b, 0xfa, 0x61, 0x3e, 0xbe, 0x14, 0x5f, 0x49, 0xab, 0x01, 0x89, - 0xf2, 0x14, 0xcc, 0x76, 0x7b, 0xfb, 0xa6, 0xa1, 0x6b, 0x01, 0x35, 0x58, 0x8a, 0xaf, 0x24, 0x55, - 0x99, 0x4d, 0x6c, 0xf4, 0x95, 0x2f, 0xc0, 0xcc, 0x3d, 0x8c, 0xee, 0x04, 0x55, 0x33, 0x54, 0x35, - 0x47, 0xc4, 0x01, 0xc5, 0x32, 0x64, 0x3b, 0xd8, 0x75, 0x51, 0x1b, 0x6b, 0xde, 0x61, 0x17, 0xe7, - 0x13, 0x74, 0xf5, 0x4b, 0x43, 0xab, 0x1f, 0x5c, 0x79, 0x86, 0xa3, 0x76, 0x0f, 0xbb, 0x58, 0x29, - 0x41, 0x1a, 0x5b, 0xbd, 0x0e, 0x63, 0x48, 0x1e, 0xe3, 0xbf, 0x8a, 0xd5, 0xeb, 0x0c, 0xb2, 0xa4, - 0x08, 0x8c, 0x53, 0x4c, 0xb9, 0xd8, 0xb9, 0x6b, 0xe8, 0x38, 0x3f, 0x49, 0x09, 0x2e, 0x0c, 0x11, - 0x34, 0xd8, 0xfc, 0x20, 0x87, 0xc0, 0x29, 0x65, 0x48, 0xe3, 0x17, 0x3c, 0x6c, 0xb9, 0x86, 0x6d, - 0xe5, 0xa7, 0x28, 0xc9, 0x63, 0x23, 0x76, 0x11, 0x9b, 0xcd, 0x41, 0x8a, 0x3e, 0x4e, 0xb9, 0x02, - 0x53, 0x76, 0xd7, 0x33, 0x6c, 0xcb, 0xcd, 0xa7, 0x96, 0xa4, 0x95, 0xcc, 0xc5, 0x0f, 0x8d, 0x0c, - 0x84, 0x1a, 0xd3, 0x51, 0x85, 0xb2, 0x52, 0x05, 0xd9, 0xb5, 0x7b, 0x8e, 0x8e, 0x35, 0xdd, 0x6e, - 0x62, 0xcd, 0xb0, 0x5a, 0x76, 0x3e, 0x4d, 0x09, 0xce, 0x0d, 0x2f, 0x84, 0x2a, 0x96, 0xed, 0x26, - 0xae, 0x5a, 0x2d, 0x5b, 0xcd, 0xb9, 0xa1, 0xb1, 0xb2, 0x00, 0x93, 0xee, 0xa1, 0xe5, 0xa1, 0x17, - 0xf2, 0x59, 0x1a, 0x21, 0x7c, 0xb4, 0xfc, 0xbf, 0x49, 0x98, 0x19, 0x27, 0xc4, 0xae, 0x41, 0xb2, - 0x45, 0x56, 0x99, 0x8f, 0x9d, 0xc6, 0x07, 0x0c, 0x13, 0x76, 0xe2, 0xe4, 0x8f, 0xe9, 0xc4, 0x12, - 0x64, 0x2c, 0xec, 0x7a, 0xb8, 0xc9, 0x22, 0x22, 0x3e, 0x66, 0x4c, 0x01, 0x03, 0x0d, 0x87, 0x54, - 0xe2, 0xc7, 0x0a, 0xa9, 0x9b, 0x30, 0xe3, 0x9b, 0xa4, 0x39, 0xc8, 0x6a, 0x8b, 0xd8, 0x5c, 0x8b, - 0xb2, 0x64, 0xb5, 0x22, 0x70, 0x2a, 0x81, 0xa9, 0x39, 0x1c, 0x1a, 0x2b, 0x1b, 0x00, 0xb6, 0x85, - 0xed, 0x96, 0xd6, 0xc4, 0xba, 0x99, 0x4f, 0x1d, 0xe3, 0xa5, 0x1a, 0x51, 0x19, 0xf2, 0x92, 0xcd, - 0xa4, 0xba, 0xa9, 0x3c, 0xdb, 0x0f, 0xb5, 0xa9, 0x63, 0x22, 0x65, 0x9b, 0x1d, 0xb2, 0xa1, 0x68, - 0xdb, 0x83, 0x9c, 0x83, 0x49, 0xdc, 0xe3, 0x26, 0x5f, 0x59, 0x9a, 0x1a, 0xb1, 0x1a, 0xb9, 0x32, - 0x95, 0xc3, 0xd8, 0xc2, 0xa6, 0x9d, 0xe0, 0x50, 0xf9, 0x30, 0xf8, 0x02, 0x8d, 0x86, 0x15, 0xd0, - 0x2c, 0x94, 0x15, 0xc2, 0x1d, 0xd4, 0xc1, 0x8b, 0x57, 0x21, 0x17, 0x76, 0x8f, 0x32, 0x0f, 0x49, - 0xd7, 0x43, 0x8e, 0x47, 0xa3, 0x30, 0xa9, 0xb2, 0x81, 0x22, 0x43, 0x1c, 0x5b, 0x4d, 0x9a, 0xe5, - 0x92, 0x2a, 0xf9, 0xb9, 0xf8, 0x0c, 0x4c, 0x87, 0x1e, 0x3f, 0x2e, 0x70, 0xf9, 0x8b, 0x93, 0x30, - 0x3f, 0x2a, 0xe6, 0x46, 0x86, 0xff, 0x02, 0x4c, 0x5a, 0xbd, 0xce, 0x3e, 0x76, 0xf2, 0x71, 0xca, - 0xc0, 0x47, 0x4a, 0x09, 0x92, 0x26, 0xda, 0xc7, 0x66, 0x3e, 0xb1, 0x24, 0xad, 0xe4, 0x2e, 0x3e, - 0x35, 0x56, 0x54, 0xaf, 0x6e, 0x11, 0x88, 0xca, 0x90, 0xca, 0x27, 0x20, 0xc1, 0x53, 0x1c, 0x61, - 0x78, 0x72, 0x3c, 0x06, 0x12, 0x8b, 0x2a, 0xc5, 0x29, 0x0f, 0x43, 0x9a, 0xfc, 0x65, 0xbe, 0x9d, - 0xa4, 0x36, 0xa7, 0x88, 0x80, 0xf8, 0x55, 0x59, 0x84, 0x14, 0x0d, 0xb3, 0x26, 0x16, 0xa5, 0xc1, - 0x1f, 0x93, 0x8d, 0x69, 0xe2, 0x16, 0xea, 0x99, 0x9e, 0x76, 0x17, 0x99, 0x3d, 0x4c, 0x03, 0x26, - 0xad, 0x66, 0xb9, 0xf0, 0xd3, 0x44, 0xa6, 0x9c, 0x83, 0x0c, 0x8b, 0x4a, 0xc3, 0x6a, 0xe2, 0x17, - 0x68, 0xf6, 0x49, 0xaa, 0x2c, 0x50, 0xab, 0x44, 0x42, 0x1e, 0x7f, 0xdb, 0xb5, 0x2d, 0xb1, 0xb5, - 0xf4, 0x11, 0x44, 0x40, 0x1f, 0xff, 0xcc, 0x60, 0xe2, 0x7b, 0x64, 0xf4, 0xf2, 0x06, 0x63, 0x71, - 0xf9, 0x5b, 0x31, 0x48, 0xd0, 0xf3, 0x36, 0x03, 0x99, 0xdd, 0x5b, 0xf5, 0x8a, 0xb6, 0x51, 0xdb, - 0x5b, 0xdf, 0xaa, 0xc8, 0x92, 0x92, 0x03, 0xa0, 0x82, 0xeb, 0x5b, 0xb5, 0xd2, 0xae, 0x1c, 0xf3, - 0xc7, 0xd5, 0x9d, 0xdd, 0x2b, 0x97, 0xe4, 0xb8, 0x0f, 0xd8, 0x63, 0x82, 0x44, 0x50, 0xe1, 0xe9, - 0x8b, 0x72, 0x52, 0x91, 0x21, 0xcb, 0x08, 0xaa, 0x37, 0x2b, 0x1b, 0x57, 0x2e, 0xc9, 0x93, 0x61, - 0xc9, 0xd3, 0x17, 0xe5, 0x29, 0x65, 0x1a, 0xd2, 0x54, 0xb2, 0x5e, 0xab, 0x6d, 0xc9, 0x29, 0x9f, - 0xb3, 0xb1, 0xab, 0x56, 0x77, 0x36, 0xe5, 0xb4, 0xcf, 0xb9, 0xa9, 0xd6, 0xf6, 0xea, 0x32, 0xf8, - 0x0c, 0xdb, 0x95, 0x46, 0xa3, 0xb4, 0x59, 0x91, 0x33, 0xbe, 0xc6, 0xfa, 0xad, 0xdd, 0x4a, 0x43, - 0xce, 0x86, 0xcc, 0x7a, 0xfa, 0xa2, 0x3c, 0xed, 0x3f, 0xa2, 0xb2, 0xb3, 0xb7, 0x2d, 0xe7, 0x94, - 0x59, 0x98, 0x66, 0x8f, 0x10, 0x46, 0xcc, 0x0c, 0x88, 0xae, 0x5c, 0x92, 0xe5, 0xbe, 0x21, 0x8c, - 0x65, 0x36, 0x24, 0xb8, 0x72, 0x49, 0x56, 0x96, 0xcb, 0x90, 0xa4, 0xd1, 0xa5, 0x28, 0x90, 0xdb, - 0x2a, 0xad, 0x57, 0xb6, 0xb4, 0x5a, 0x7d, 0xb7, 0x5a, 0xdb, 0x29, 0x6d, 0xc9, 0x52, 0x5f, 0xa6, - 0x56, 0x3e, 0xb5, 0x57, 0x55, 0x2b, 0x1b, 0x72, 0x2c, 0x28, 0xab, 0x57, 0x4a, 0xbb, 0x95, 0x0d, - 0x39, 0xbe, 0xac, 0xc3, 0xfc, 0xa8, 0x3c, 0x33, 0xf2, 0x64, 0x04, 0xb6, 0x38, 0x76, 0xcc, 0x16, - 0x53, 0xae, 0xa1, 0x2d, 0xfe, 0x8a, 0x04, 0x73, 0x23, 0x72, 0xed, 0xc8, 0x87, 0x3c, 0x07, 0x49, - 0x16, 0xa2, 0xac, 0xfa, 0x3c, 0x31, 0x32, 0x69, 0xd3, 0x80, 0x1d, 0xaa, 0x40, 0x14, 0x17, 0xac, - 0xc0, 0xf1, 0x63, 0x2a, 0x30, 0xa1, 0x18, 0x32, 0xf2, 0x25, 0x09, 0xf2, 0xc7, 0x71, 0x47, 0x24, - 0x8a, 0x58, 0x28, 0x51, 0x5c, 0x1b, 0x34, 0xe0, 0xfc, 0xf1, 0x6b, 0x18, 0xb2, 0xe2, 0x35, 0x09, - 0x16, 0x46, 0x37, 0x2a, 0x23, 0x6d, 0xf8, 0x04, 0x4c, 0x76, 0xb0, 0x77, 0x60, 0x8b, 0x62, 0xfd, - 0xf8, 0x88, 0x12, 0x40, 0xa6, 0x07, 0x7d, 0xc5, 0x51, 0xc1, 0x1a, 0x12, 0x3f, 0xae, 0xdb, 0x60, - 0xd6, 0x0c, 0x59, 0xfa, 0xf9, 0x18, 0x3c, 0x34, 0x92, 0x7c, 0xa4, 0xa1, 0x8f, 0x00, 0x18, 0x56, - 0xb7, 0xe7, 0xb1, 0x82, 0xcc, 0xf2, 0x53, 0x9a, 0x4a, 0xe8, 0xd9, 0x27, 0xb9, 0xa7, 0xe7, 0xf9, - 0xf3, 0x71, 0x3a, 0x0f, 0x4c, 0x44, 0x15, 0xae, 0xf6, 0x0d, 0x4d, 0x50, 0x43, 0x0b, 0xc7, 0xac, - 0x74, 0xa8, 0xd6, 0x7d, 0x0c, 0x64, 0xdd, 0x34, 0xb0, 0xe5, 0x69, 0xae, 0xe7, 0x60, 0xd4, 0x31, - 0xac, 0x36, 0x4d, 0xc0, 0xa9, 0x62, 0xb2, 0x85, 0x4c, 0x17, 0xab, 0x33, 0x6c, 0xba, 0x21, 0x66, - 0x09, 0x82, 0x56, 0x19, 0x27, 0x80, 0x98, 0x0c, 0x21, 0xd8, 0xb4, 0x8f, 0x58, 0xfe, 0xfa, 0x14, - 0x64, 0x02, 0x6d, 0x9d, 0x72, 0x1e, 0xb2, 0xb7, 0xd1, 0x5d, 0xa4, 0x89, 0x56, 0x9d, 0x79, 0x22, - 0x43, 0x64, 0x75, 0xde, 0xae, 0x7f, 0x0c, 0xe6, 0xa9, 0x8a, 0xdd, 0xf3, 0xb0, 0xa3, 0xe9, 0x26, - 0x72, 0x5d, 0xea, 0xb4, 0x14, 0x55, 0x55, 0xc8, 0x5c, 0x8d, 0x4c, 0x95, 0xc5, 0x8c, 0x72, 0x19, - 0xe6, 0x28, 0xa2, 0xd3, 0x33, 0x3d, 0xa3, 0x6b, 0x62, 0x8d, 0xbc, 0x3c, 0xb8, 0x34, 0x11, 0xfb, - 0x96, 0xcd, 0x12, 0x8d, 0x6d, 0xae, 0x40, 0x2c, 0x72, 0x95, 0x0d, 0x78, 0x84, 0xc2, 0xda, 0xd8, - 0xc2, 0x0e, 0xf2, 0xb0, 0x86, 0x3f, 0xdb, 0x43, 0xa6, 0xab, 0x21, 0xab, 0xa9, 0x1d, 0x20, 0xf7, - 0x20, 0x3f, 0x4f, 0x08, 0xd6, 0x63, 0x79, 0x49, 0x3d, 0x4b, 0x14, 0x37, 0xb9, 0x5e, 0x85, 0xaa, - 0x95, 0xac, 0xe6, 0x27, 0x91, 0x7b, 0xa0, 0x14, 0x61, 0x81, 0xb2, 0xb8, 0x9e, 0x63, 0x58, 0x6d, - 0x4d, 0x3f, 0xc0, 0xfa, 0x1d, 0xad, 0xe7, 0xb5, 0xae, 0xe6, 0x1f, 0x0e, 0x3e, 0x9f, 0x5a, 0xd8, - 0xa0, 0x3a, 0x65, 0xa2, 0xb2, 0xe7, 0xb5, 0xae, 0x2a, 0x0d, 0xc8, 0x92, 0xcd, 0xe8, 0x18, 0x2f, - 0x62, 0xad, 0x65, 0x3b, 0xb4, 0xb2, 0xe4, 0x46, 0x9c, 0xec, 0x80, 0x07, 0x57, 0x6b, 0x1c, 0xb0, - 0x6d, 0x37, 0x71, 0x31, 0xd9, 0xa8, 0x57, 0x2a, 0x1b, 0x6a, 0x46, 0xb0, 0x5c, 0xb7, 0x1d, 0x12, - 0x50, 0x6d, 0xdb, 0x77, 0x70, 0x86, 0x05, 0x54, 0xdb, 0x16, 0xee, 0xbd, 0x0c, 0x73, 0xba, 0xce, - 0xd6, 0x6c, 0xe8, 0x1a, 0x6f, 0xf1, 0xdd, 0xbc, 0x1c, 0x72, 0x96, 0xae, 0x6f, 0x32, 0x05, 0x1e, - 0xe3, 0xae, 0xf2, 0x2c, 0x3c, 0xd4, 0x77, 0x56, 0x10, 0x38, 0x3b, 0xb4, 0xca, 0x41, 0xe8, 0x65, - 0x98, 0xeb, 0x1e, 0x0e, 0x03, 0x95, 0xd0, 0x13, 0xbb, 0x87, 0x83, 0xb0, 0xc7, 0xe8, 0x6b, 0x9b, - 0x83, 0x75, 0xe4, 0xe1, 0x66, 0xfe, 0x4c, 0x50, 0x3b, 0x30, 0xa1, 0xac, 0x81, 0xac, 0xeb, 0x1a, - 0xb6, 0xd0, 0xbe, 0x89, 0x35, 0xe4, 0x60, 0x0b, 0xb9, 0xf9, 0x73, 0x41, 0xe5, 0x9c, 0xae, 0x57, - 0xe8, 0x6c, 0x89, 0x4e, 0x2a, 0x4f, 0xc2, 0xac, 0xbd, 0x7f, 0x5b, 0x67, 0x91, 0xa5, 0x75, 0x1d, - 0xdc, 0x32, 0x5e, 0xc8, 0x3f, 0x4a, 0xdd, 0x34, 0x43, 0x26, 0x68, 0x5c, 0xd5, 0xa9, 0x58, 0x79, - 0x02, 0x64, 0xdd, 0x3d, 0x40, 0x4e, 0x97, 0x96, 0x76, 0xb7, 0x8b, 0x74, 0x9c, 0x7f, 0x8c, 0xa9, - 0x32, 0xf9, 0x8e, 0x10, 0x93, 0xc8, 0x76, 0xef, 0x19, 0x2d, 0x4f, 0x30, 0x5e, 0x60, 0x91, 0x4d, - 0x65, 0x9c, 0xed, 0x26, 0xcc, 0xf7, 0x2c, 0xc3, 0xf2, 0xb0, 0xd3, 0x75, 0x30, 0x69, 0xe2, 0xd9, - 0x49, 0xcc, 0xff, 0xcb, 0xd4, 0x31, 0x6d, 0xf8, 0x5e, 0x50, 0x9b, 0x05, 0x80, 0x3a, 0xd7, 0x1b, - 0x16, 0x2e, 0x17, 0x21, 0x1b, 0x8c, 0x0b, 0x25, 0x0d, 0x2c, 0x32, 0x64, 0x89, 0xd4, 0xd8, 0x72, - 0x6d, 0x83, 0x54, 0xc7, 0xcf, 0x54, 0xe4, 0x18, 0xa9, 0xd2, 0x5b, 0xd5, 0xdd, 0x8a, 0xa6, 0xee, - 0xed, 0xec, 0x56, 0xb7, 0x2b, 0x72, 0xfc, 0xc9, 0x74, 0xea, 0xad, 0x29, 0xf9, 0xfe, 0xfd, 0xfb, - 0xf7, 0x63, 0xcb, 0xdf, 0x8d, 0x41, 0x2e, 0xdc, 0x19, 0x2b, 0x3f, 0x05, 0x67, 0xc4, 0x6b, 0xac, - 0x8b, 0x3d, 0xed, 0x9e, 0xe1, 0xd0, 0x50, 0xed, 0x20, 0xd6, 0x5b, 0xfa, 0x5e, 0x9e, 0xe7, 0x5a, - 0x0d, 0xec, 0x3d, 0x6f, 0x38, 0x24, 0x10, 0x3b, 0xc8, 0x53, 0xb6, 0xe0, 0x9c, 0x65, 0x6b, 0xae, - 0x87, 0xac, 0x26, 0x72, 0x9a, 0x5a, 0xff, 0x02, 0x41, 0x43, 0xba, 0x8e, 0x5d, 0xd7, 0x66, 0x25, - 0xc2, 0x67, 0xf9, 0x90, 0x65, 0x37, 0xb8, 0x72, 0x3f, 0x77, 0x96, 0xb8, 0xea, 0x40, 0x44, 0xc4, - 0x8f, 0x8b, 0x88, 0x87, 0x21, 0xdd, 0x41, 0x5d, 0x0d, 0x5b, 0x9e, 0x73, 0x48, 0xfb, 0xb9, 0x94, - 0x9a, 0xea, 0xa0, 0x6e, 0x85, 0x8c, 0xdf, 0xbf, 0x3d, 0x08, 0xfa, 0xf1, 0x1f, 0xe3, 0x90, 0x0d, - 0xf6, 0x74, 0xa4, 0x45, 0xd6, 0x69, 0xfe, 0x96, 0xe8, 0x09, 0xff, 0xf0, 0x89, 0x1d, 0xe0, 0x6a, - 0x99, 0x24, 0xf6, 0xe2, 0x24, 0xeb, 0xb4, 0x54, 0x86, 0x24, 0x45, 0x95, 0x9c, 0x69, 0xcc, 0xfa, - 0xf7, 0x94, 0xca, 0x47, 0xca, 0x26, 0x4c, 0xde, 0x76, 0x29, 0xf7, 0x24, 0xe5, 0x7e, 0xf4, 0x64, - 0xee, 0x1b, 0x0d, 0x4a, 0x9e, 0xbe, 0xd1, 0xd0, 0x76, 0x6a, 0xea, 0x76, 0x69, 0x4b, 0xe5, 0x70, - 0xe5, 0x2c, 0x24, 0x4c, 0xf4, 0xe2, 0x61, 0xb8, 0x04, 0x50, 0xd1, 0xb8, 0x8e, 0x3f, 0x0b, 0x89, - 0x7b, 0x18, 0xdd, 0x09, 0x27, 0x5e, 0x2a, 0x7a, 0x1f, 0x43, 0x7f, 0x0d, 0x92, 0xd4, 0x5f, 0x0a, - 0x00, 0xf7, 0x98, 0x3c, 0xa1, 0xa4, 0x20, 0x51, 0xae, 0xa9, 0x24, 0xfc, 0x65, 0xc8, 0x32, 0xa9, - 0x56, 0xaf, 0x56, 0xca, 0x15, 0x39, 0xb6, 0x7c, 0x19, 0x26, 0x99, 0x13, 0xc8, 0xd1, 0xf0, 0xdd, - 0x20, 0x4f, 0xf0, 0x21, 0xe7, 0x90, 0xc4, 0xec, 0xde, 0xf6, 0x7a, 0x45, 0x95, 0x63, 0xc1, 0xed, - 0x75, 0x21, 0x1b, 0x6c, 0xe7, 0x7e, 0x32, 0x31, 0xf5, 0xd7, 0x12, 0x64, 0x02, 0xed, 0x19, 0x69, - 0x0c, 0x90, 0x69, 0xda, 0xf7, 0x34, 0x64, 0x1a, 0xc8, 0xe5, 0x41, 0x01, 0x54, 0x54, 0x22, 0x92, - 0x71, 0x37, 0xed, 0x27, 0x62, 0xfc, 0xab, 0x12, 0xc8, 0x83, 0xad, 0xdd, 0x80, 0x81, 0xd2, 0x07, - 0x6a, 0xe0, 0x2b, 0x12, 0xe4, 0xc2, 0xfd, 0xdc, 0x80, 0x79, 0xe7, 0x3f, 0x50, 0xf3, 0xde, 0x88, - 0xc1, 0x74, 0xa8, 0x8b, 0x1b, 0xd7, 0xba, 0xcf, 0xc2, 0xac, 0xd1, 0xc4, 0x9d, 0xae, 0xed, 0x61, - 0x4b, 0x3f, 0xd4, 0x4c, 0x7c, 0x17, 0x9b, 0xf9, 0x65, 0x9a, 0x28, 0xd6, 0x4e, 0xee, 0x13, 0x57, - 0xab, 0x7d, 0xdc, 0x16, 0x81, 0x15, 0xe7, 0xaa, 0x1b, 0x95, 0xed, 0x7a, 0x6d, 0xb7, 0xb2, 0x53, - 0xbe, 0xa5, 0xed, 0xed, 0xfc, 0xf4, 0x4e, 0xed, 0xf9, 0x1d, 0x55, 0x36, 0x06, 0xd4, 0xde, 0xc7, - 0xa3, 0x5e, 0x07, 0x79, 0xd0, 0x28, 0xe5, 0x0c, 0x8c, 0x32, 0x4b, 0x9e, 0x50, 0xe6, 0x60, 0x66, - 0xa7, 0xa6, 0x35, 0xaa, 0x1b, 0x15, 0xad, 0x72, 0xfd, 0x7a, 0xa5, 0xbc, 0xdb, 0x60, 0x2f, 0xce, - 0xbe, 0xf6, 0x6e, 0xf8, 0x50, 0xbf, 0x1c, 0x87, 0xb9, 0x11, 0x96, 0x28, 0x25, 0xde, 0xb3, 0xb3, - 0xd7, 0x88, 0x8f, 0x8e, 0x63, 0xfd, 0x2a, 0xe9, 0x0a, 0xea, 0xc8, 0xf1, 0x78, 0x8b, 0xff, 0x04, - 0x10, 0x2f, 0x59, 0x9e, 0xd1, 0x32, 0xb0, 0xc3, 0xef, 0x19, 0x58, 0x23, 0x3f, 0xd3, 0x97, 0xb3, - 0xab, 0x86, 0x8f, 0x80, 0xd2, 0xb5, 0x5d, 0xc3, 0x33, 0xee, 0x62, 0xcd, 0xb0, 0xc4, 0xa5, 0x04, - 0x69, 0xec, 0x13, 0xaa, 0x2c, 0x66, 0xaa, 0x96, 0xe7, 0x6b, 0x5b, 0xb8, 0x8d, 0x06, 0xb4, 0x49, - 0x02, 0x8f, 0xab, 0xb2, 0x98, 0xf1, 0xb5, 0xcf, 0x43, 0xb6, 0x69, 0xf7, 0x48, 0x9b, 0xc4, 0xf4, - 0x48, 0xbd, 0x90, 0xd4, 0x0c, 0x93, 0xf9, 0x2a, 0xbc, 0x8f, 0xed, 0xdf, 0x86, 0x64, 0xd5, 0x0c, - 0x93, 0x31, 0x95, 0x0b, 0x30, 0x83, 0xda, 0x6d, 0x87, 0x90, 0x0b, 0x22, 0xd6, 0x99, 0xe7, 0x7c, - 0x31, 0x55, 0x5c, 0xbc, 0x01, 0x29, 0xe1, 0x07, 0x52, 0x92, 0x89, 0x27, 0xb4, 0x2e, 0xbb, 0x93, - 0x8a, 0xad, 0xa4, 0xd5, 0x94, 0x25, 0x26, 0xcf, 0x43, 0xd6, 0x70, 0xb5, 0xfe, 0xe5, 0x68, 0x6c, - 0x29, 0xb6, 0x92, 0x52, 0x33, 0x86, 0xeb, 0xdf, 0x86, 0x2d, 0xbf, 0x16, 0x83, 0x5c, 0xf8, 0x72, - 0x57, 0xd9, 0x80, 0x94, 0x69, 0xeb, 0x88, 0x86, 0x16, 0xfb, 0xb2, 0xb0, 0x12, 0x71, 0x1f, 0xbc, - 0xba, 0xc5, 0xf5, 0x55, 0x1f, 0xb9, 0xf8, 0xf7, 0x12, 0xa4, 0x84, 0x58, 0x59, 0x80, 0x44, 0x17, - 0x79, 0x07, 0x94, 0x2e, 0xb9, 0x1e, 0x93, 0x25, 0x95, 0x8e, 0x89, 0xdc, 0xed, 0x22, 0x8b, 0x86, - 0x00, 0x97, 0x93, 0x31, 0xd9, 0x57, 0x13, 0xa3, 0x26, 0x6d, 0xfb, 0xed, 0x4e, 0x07, 0x5b, 0x9e, - 0x2b, 0xf6, 0x95, 0xcb, 0xcb, 0x5c, 0xac, 0x3c, 0x05, 0xb3, 0x9e, 0x83, 0x0c, 0x33, 0xa4, 0x9b, - 0xa0, 0xba, 0xb2, 0x98, 0xf0, 0x95, 0x8b, 0x70, 0x56, 0xf0, 0x36, 0xb1, 0x87, 0xf4, 0x03, 0xdc, - 0xec, 0x83, 0x26, 0xe9, 0xcd, 0xe1, 0x19, 0xae, 0xb0, 0xc1, 0xe7, 0x05, 0x76, 0xf9, 0xfb, 0x12, - 0xcc, 0x8a, 0x17, 0x95, 0xa6, 0xef, 0xac, 0x6d, 0x00, 0x64, 0x59, 0xb6, 0x17, 0x74, 0xd7, 0x70, - 0x28, 0x0f, 0xe1, 0x56, 0x4b, 0x3e, 0x48, 0x0d, 0x10, 0x2c, 0x76, 0x00, 0xfa, 0x33, 0xc7, 0xba, - 0xed, 0x1c, 0x64, 0xf8, 0xcd, 0x3d, 0xfd, 0xfc, 0xc3, 0x5e, 0x6d, 0x81, 0x89, 0xc8, 0x1b, 0x8d, - 0x32, 0x0f, 0xc9, 0x7d, 0xdc, 0x36, 0x2c, 0x7e, 0x9f, 0xc8, 0x06, 0xe2, 0x96, 0x32, 0xe1, 0xdf, - 0x52, 0xae, 0xdf, 0x84, 0x39, 0xdd, 0xee, 0x0c, 0x9a, 0xbb, 0x2e, 0x0f, 0xbc, 0x5e, 0xbb, 0x9f, - 0x94, 0x3e, 0x03, 0xfd, 0x16, 0xf3, 0x2b, 0xb1, 0xf8, 0x66, 0x7d, 0xfd, 0x6b, 0xb1, 0xc5, 0x4d, - 0x86, 0xab, 0x8b, 0x65, 0xaa, 0xb8, 0x65, 0x62, 0x9d, 0x98, 0x0e, 0x3f, 0x7c, 0x1c, 0x3e, 0xda, - 0x36, 0xbc, 0x83, 0xde, 0xfe, 0xaa, 0x6e, 0x77, 0xd6, 0xda, 0x76, 0xdb, 0xee, 0x7f, 0xee, 0x22, - 0x23, 0x3a, 0xa0, 0xbf, 0xf8, 0x27, 0xaf, 0xb4, 0x2f, 0x5d, 0x8c, 0xfc, 0x3e, 0x56, 0xdc, 0x81, - 0x39, 0xae, 0xac, 0xd1, 0x3b, 0x77, 0xf6, 0x6a, 0xa0, 0x9c, 0x78, 0xef, 0x92, 0xff, 0xe6, 0x9b, - 0xb4, 0x56, 0xab, 0xb3, 0x1c, 0x4a, 0xe6, 0xd8, 0x0b, 0x44, 0x51, 0x85, 0x87, 0x42, 0x7c, 0xec, - 0x5c, 0x62, 0x27, 0x82, 0xf1, 0xbb, 0x9c, 0x71, 0x2e, 0xc0, 0xd8, 0xe0, 0xd0, 0x62, 0x19, 0xa6, - 0x4f, 0xc3, 0xf5, 0xb7, 0x9c, 0x2b, 0x8b, 0x83, 0x24, 0x9b, 0x30, 0x43, 0x49, 0xf4, 0x9e, 0xeb, - 0xd9, 0x1d, 0x9a, 0xf4, 0x4e, 0xa6, 0xf9, 0xbb, 0x37, 0xd9, 0x41, 0xc9, 0x11, 0x58, 0xd9, 0x47, - 0x15, 0x8b, 0x40, 0x3f, 0x33, 0x34, 0xb1, 0x6e, 0x46, 0x30, 0xbc, 0xce, 0x0d, 0xf1, 0xf5, 0x8b, - 0x9f, 0x86, 0x79, 0xf2, 0x9b, 0xe6, 0xa4, 0xa0, 0x25, 0xd1, 0xb7, 0x4c, 0xf9, 0xef, 0xbf, 0xc4, - 0xce, 0xe2, 0x9c, 0x4f, 0x10, 0xb0, 0x29, 0xb0, 0x8b, 0x6d, 0xec, 0x79, 0xd8, 0x71, 0x35, 0x64, - 0x8e, 0x32, 0x2f, 0xf0, 0x9a, 0x9e, 0xff, 0xd2, 0xdb, 0xe1, 0x5d, 0xdc, 0x64, 0xc8, 0x92, 0x69, - 0x16, 0xf7, 0xe0, 0xcc, 0x88, 0xa8, 0x18, 0x83, 0xf3, 0x65, 0xce, 0x39, 0x3f, 0x14, 0x19, 0x84, - 0xb6, 0x0e, 0x42, 0xee, 0xef, 0xe5, 0x18, 0x9c, 0xbf, 0xcd, 0x39, 0x15, 0x8e, 0x15, 0x5b, 0x4a, - 0x18, 0x6f, 0xc0, 0xec, 0x5d, 0xec, 0xec, 0xdb, 0x2e, 0xbf, 0x1a, 0x19, 0x83, 0xee, 0x15, 0x4e, - 0x37, 0xc3, 0x81, 0xf4, 0xae, 0x84, 0x70, 0x3d, 0x0b, 0xa9, 0x16, 0xd2, 0xf1, 0x18, 0x14, 0x5f, - 0xe6, 0x14, 0x53, 0x44, 0x9f, 0x40, 0x4b, 0x90, 0x6d, 0xdb, 0xbc, 0x2c, 0x45, 0xc3, 0x5f, 0xe5, - 0xf0, 0x8c, 0xc0, 0x70, 0x8a, 0xae, 0xdd, 0xed, 0x99, 0xa4, 0x66, 0x45, 0x53, 0xfc, 0x8e, 0xa0, - 0x10, 0x18, 0x4e, 0x71, 0x0a, 0xb7, 0xfe, 0xae, 0xa0, 0x70, 0x03, 0xfe, 0x7c, 0x0e, 0x32, 0xb6, - 0x65, 0x1e, 0xda, 0xd6, 0x38, 0x46, 0xfc, 0x1e, 0x67, 0x00, 0x0e, 0x21, 0x04, 0xd7, 0x20, 0x3d, - 0xee, 0x46, 0xfc, 0xfe, 0xdb, 0xe2, 0x78, 0x88, 0x1d, 0xd8, 0x84, 0x19, 0x91, 0xa0, 0x0c, 0xdb, - 0x1a, 0x83, 0xe2, 0x0f, 0x38, 0x45, 0x2e, 0x00, 0xe3, 0xcb, 0xf0, 0xb0, 0xeb, 0xb5, 0xf1, 0x38, - 0x24, 0xaf, 0x89, 0x65, 0x70, 0x08, 0x77, 0xe5, 0x3e, 0xb6, 0xf4, 0x83, 0xf1, 0x18, 0xbe, 0x2a, - 0x5c, 0x29, 0x30, 0x84, 0xa2, 0x0c, 0xd3, 0x1d, 0xe4, 0xb8, 0x07, 0xc8, 0x1c, 0x6b, 0x3b, 0xfe, - 0x90, 0x73, 0x64, 0x7d, 0x10, 0xf7, 0x48, 0xcf, 0x3a, 0x0d, 0xcd, 0xd7, 0x84, 0x47, 0x02, 0x30, - 0x7e, 0xf4, 0x5c, 0x8f, 0x5e, 0x40, 0x9d, 0x86, 0xed, 0xeb, 0xe2, 0xe8, 0x31, 0xec, 0x76, 0x90, - 0xf1, 0x1a, 0xa4, 0x5d, 0xe3, 0xc5, 0xb1, 0x68, 0xfe, 0x48, 0xec, 0x34, 0x05, 0x10, 0xf0, 0x2d, - 0x38, 0x3b, 0xb2, 0x4c, 0x8c, 0x41, 0xf6, 0xc7, 0x9c, 0x6c, 0x61, 0x44, 0xa9, 0xe0, 0x29, 0xe1, - 0xb4, 0x94, 0x7f, 0x22, 0x52, 0x02, 0x1e, 0xe0, 0xaa, 0x93, 0x17, 0x05, 0x17, 0xb5, 0x4e, 0xe7, - 0xb5, 0x3f, 0x15, 0x5e, 0x63, 0xd8, 0x90, 0xd7, 0x76, 0x61, 0x81, 0x33, 0x9e, 0x6e, 0x5f, 0xbf, - 0x21, 0x12, 0x2b, 0x43, 0xef, 0x85, 0x77, 0xf7, 0x67, 0x60, 0xd1, 0x77, 0xa7, 0xe8, 0x48, 0x5d, - 0xad, 0x83, 0xba, 0x63, 0x30, 0x7f, 0x93, 0x33, 0x8b, 0x8c, 0xef, 0xb7, 0xb4, 0xee, 0x36, 0xea, - 0x12, 0xf2, 0x9b, 0x90, 0x17, 0xe4, 0x3d, 0xcb, 0xc1, 0xba, 0xdd, 0xb6, 0x8c, 0x17, 0x71, 0x73, - 0x0c, 0xea, 0x3f, 0x1b, 0xd8, 0xaa, 0xbd, 0x00, 0x9c, 0x30, 0x57, 0x41, 0xf6, 0x7b, 0x15, 0xcd, - 0xe8, 0x74, 0x6d, 0xc7, 0x8b, 0x60, 0xfc, 0x73, 0xb1, 0x53, 0x3e, 0xae, 0x4a, 0x61, 0xc5, 0x0a, - 0xe4, 0xe8, 0x70, 0xdc, 0x90, 0xfc, 0x0b, 0x4e, 0x34, 0xdd, 0x47, 0xf1, 0xc4, 0xa1, 0xdb, 0x9d, - 0x2e, 0x72, 0xc6, 0xc9, 0x7f, 0x7f, 0x29, 0x12, 0x07, 0x87, 0xf0, 0xc4, 0xe1, 0x1d, 0x76, 0x31, - 0xa9, 0xf6, 0x63, 0x30, 0x7c, 0x4b, 0x24, 0x0e, 0x81, 0xe1, 0x14, 0xa2, 0x61, 0x18, 0x83, 0xe2, - 0xaf, 0x04, 0x85, 0xc0, 0x10, 0x8a, 0x4f, 0xf5, 0x0b, 0xad, 0x83, 0xdb, 0x86, 0xeb, 0x39, 0xac, - 0x0f, 0x3e, 0x99, 0xea, 0xdb, 0x6f, 0x87, 0x9b, 0x30, 0x35, 0x00, 0x2d, 0xde, 0x80, 0x99, 0x81, - 0x16, 0x43, 0x89, 0xfa, 0x9f, 0x85, 0xfc, 0xcf, 0xbe, 0xcb, 0x93, 0x51, 0xb8, 0xc3, 0x28, 0x6e, - 0x91, 0x7d, 0x0f, 0xf7, 0x01, 0xd1, 0x64, 0x2f, 0xbd, 0xeb, 0x6f, 0x7d, 0xa8, 0x0d, 0x28, 0x5e, - 0x87, 0xe9, 0x50, 0x0f, 0x10, 0x4d, 0xf5, 0x39, 0x4e, 0x95, 0x0d, 0xb6, 0x00, 0xc5, 0xcb, 0x90, - 0x20, 0xf5, 0x3c, 0x1a, 0xfe, 0x73, 0x1c, 0x4e, 0xd5, 0x8b, 0x1f, 0x87, 0x94, 0xa8, 0xe3, 0xd1, - 0xd0, 0x9f, 0xe7, 0x50, 0x1f, 0x42, 0xe0, 0xa2, 0x86, 0x47, 0xc3, 0x7f, 0x41, 0xc0, 0x05, 0x84, - 0xc0, 0xc7, 0x77, 0xe1, 0x77, 0x7e, 0x29, 0xc1, 0xf3, 0xb0, 0xf0, 0xdd, 0x35, 0x98, 0xe2, 0xc5, - 0x3b, 0x1a, 0xfd, 0x79, 0xfe, 0x70, 0x81, 0x28, 0x3e, 0x03, 0xc9, 0x31, 0x1d, 0xfe, 0xcb, 0x1c, - 0xca, 0xf4, 0x8b, 0x65, 0xc8, 0x04, 0x0a, 0x76, 0x34, 0xfc, 0x57, 0x38, 0x3c, 0x88, 0x22, 0xa6, - 0xf3, 0x82, 0x1d, 0x4d, 0xf0, 0xab, 0xc2, 0x74, 0x8e, 0x20, 0x6e, 0x13, 0xb5, 0x3a, 0x1a, 0xfd, - 0x6b, 0xc2, 0xeb, 0x02, 0x52, 0x7c, 0x0e, 0xd2, 0x7e, 0xfe, 0x8d, 0xc6, 0xff, 0x3a, 0xc7, 0xf7, - 0x31, 0xc4, 0x03, 0x81, 0xfc, 0x1f, 0x4d, 0xf1, 0x1b, 0xc2, 0x03, 0x01, 0x14, 0x39, 0x46, 0x83, - 0x35, 0x3d, 0x9a, 0xe9, 0x37, 0xc5, 0x31, 0x1a, 0x28, 0xe9, 0x64, 0x37, 0x69, 0x1a, 0x8c, 0xa6, - 0xf8, 0x82, 0xd8, 0x4d, 0xaa, 0x4f, 0xcc, 0x18, 0x2c, 0x92, 0xd1, 0x1c, 0xbf, 0x25, 0xcc, 0x18, - 0xa8, 0x91, 0xc5, 0x3a, 0x28, 0xc3, 0x05, 0x32, 0x9a, 0xef, 0x8b, 0x9c, 0x6f, 0x76, 0xa8, 0x3e, - 0x16, 0x9f, 0x87, 0x85, 0xd1, 0xc5, 0x31, 0x9a, 0xf5, 0x4b, 0xef, 0x0e, 0xbc, 0xce, 0x04, 0x6b, - 0x63, 0x71, 0xb7, 0x9f, 0x65, 0x83, 0x85, 0x31, 0x9a, 0xf6, 0xe5, 0x77, 0xc3, 0x89, 0x36, 0x58, - 0x17, 0x8b, 0x25, 0x80, 0x7e, 0x4d, 0x8a, 0xe6, 0x7a, 0x85, 0x73, 0x05, 0x40, 0xe4, 0x68, 0xf0, - 0x92, 0x14, 0x8d, 0xff, 0xb2, 0x38, 0x1a, 0x1c, 0x41, 0x8e, 0x86, 0xa8, 0x46, 0xd1, 0xe8, 0x57, - 0xc5, 0xd1, 0x10, 0x90, 0xe2, 0x35, 0x48, 0x59, 0x3d, 0xd3, 0x24, 0xb1, 0xa5, 0x9c, 0xfc, 0x6f, - 0x44, 0xf9, 0x7f, 0x7d, 0x8f, 0x83, 0x05, 0xa0, 0x78, 0x19, 0x92, 0xb8, 0xb3, 0x8f, 0x9b, 0x51, - 0xc8, 0x7f, 0x7b, 0x4f, 0xe4, 0x13, 0xa2, 0x5d, 0x7c, 0x0e, 0x80, 0xbd, 0x4c, 0xd3, 0xaf, 0x44, - 0x11, 0xd8, 0x7f, 0x7f, 0x8f, 0xff, 0x87, 0x42, 0x1f, 0xd2, 0x27, 0x60, 0xff, 0xef, 0x70, 0x32, - 0xc1, 0xdb, 0x61, 0x02, 0xfa, 0x02, 0xfe, 0x2c, 0x4c, 0xdd, 0x76, 0x6d, 0xcb, 0x43, 0xed, 0x28, - 0xf4, 0x7f, 0x70, 0xb4, 0xd0, 0x27, 0x0e, 0xeb, 0xd8, 0x0e, 0xf6, 0x50, 0xdb, 0x8d, 0xc2, 0xfe, - 0x27, 0xc7, 0xfa, 0x00, 0x02, 0xd6, 0x91, 0xeb, 0x8d, 0xb3, 0xee, 0xff, 0x12, 0x60, 0x01, 0x20, - 0x46, 0x93, 0xdf, 0x77, 0xf0, 0x61, 0x14, 0xf6, 0x1d, 0x61, 0x34, 0xd7, 0x2f, 0x7e, 0x1c, 0xd2, - 0xe4, 0x27, 0xfb, 0xaf, 0x9d, 0x08, 0xf0, 0x7f, 0x73, 0x70, 0x1f, 0x41, 0x9e, 0xec, 0x7a, 0x4d, - 0xcf, 0x88, 0x76, 0xf6, 0xff, 0xf0, 0x9d, 0x16, 0xfa, 0xc5, 0x12, 0x64, 0x5c, 0xaf, 0xd9, 0xec, - 0xf1, 0x8e, 0x26, 0x02, 0xfe, 0xc3, 0xf7, 0xfc, 0x97, 0x5c, 0x1f, 0xb3, 0x7e, 0x7e, 0xf4, 0x65, - 0x1d, 0x6c, 0xda, 0x9b, 0x36, 0xbb, 0xa6, 0x83, 0x2f, 0x24, 0xe1, 0x71, 0xdd, 0xee, 0xec, 0xdb, - 0xee, 0x1a, 0x4b, 0x28, 0x7e, 0x3a, 0x59, 0xf3, 0x57, 0x21, 0xae, 0xdb, 0x7c, 0xc1, 0xe2, 0xe9, - 0x2e, 0xea, 0x96, 0xff, 0x26, 0x0e, 0xa9, 0x32, 0x72, 0x3d, 0x74, 0x0f, 0x1d, 0x2a, 0x5d, 0x98, - 0x23, 0xbf, 0xb7, 0x51, 0x97, 0x5e, 0xfb, 0xf0, 0x73, 0xc6, 0x2f, 0x42, 0x3f, 0xb2, 0xda, 0x7f, - 0xaa, 0x40, 0xac, 0x8e, 0x50, 0xa7, 0x1f, 0x90, 0xd7, 0xe5, 0xd7, 0xff, 0xe9, 0xdc, 0xc4, 0x2f, - 0xfe, 0xf3, 0xb9, 0xd4, 0xf6, 0xe1, 0xf3, 0x86, 0xe9, 0xda, 0x96, 0x3a, 0x8a, 0x5a, 0xf9, 0x9c, - 0x04, 0x0f, 0x8f, 0x90, 0xef, 0xf0, 0xc3, 0xc8, 0x3f, 0x27, 0x5c, 0x1a, 0xf3, 0xd1, 0x02, 0xc6, - 0x4c, 0xc8, 0x86, 0x1e, 0x7f, 0xd2, 0x63, 0x16, 0x6f, 0x41, 0xfe, 0xb8, 0x95, 0x28, 0x32, 0xc4, - 0xef, 0xe0, 0x43, 0xfe, 0x2f, 0xa2, 0xe4, 0xa7, 0x72, 0xa1, 0xff, 0x2f, 0x66, 0xd2, 0x4a, 0xe6, - 0xe2, 0x6c, 0xc0, 0x3a, 0xfe, 0x30, 0x36, 0x5f, 0x8c, 0x5d, 0x95, 0x16, 0x11, 0x2c, 0x45, 0x59, - 0xfa, 0xff, 0x7c, 0xc4, 0x72, 0x01, 0x26, 0x99, 0x50, 0x99, 0x87, 0x64, 0xd5, 0xf2, 0xae, 0x5c, - 0xa2, 0x54, 0x71, 0x95, 0x0d, 0xd6, 0xb7, 0x5e, 0x7f, 0x50, 0x98, 0xf8, 0xde, 0x83, 0xc2, 0xc4, - 0x3f, 0x3c, 0x28, 0x4c, 0xbc, 0xf1, 0xa0, 0x20, 0xbd, 0xf5, 0xa0, 0x20, 0xbd, 0xf3, 0xa0, 0x20, - 0xfd, 0xe8, 0x41, 0x41, 0xba, 0x7f, 0x54, 0x90, 0xbe, 0x7a, 0x54, 0x90, 0xbe, 0x71, 0x54, 0x90, - 0xbe, 0x7d, 0x54, 0x90, 0xbe, 0x73, 0x54, 0x90, 0x5e, 0x3f, 0x2a, 0x4c, 0x7c, 0xef, 0xa8, 0x30, - 0xf1, 0xc6, 0x51, 0x41, 0x7a, 0xeb, 0xa8, 0x30, 0xf1, 0xce, 0x51, 0x41, 0xfa, 0xd1, 0x51, 0x41, - 0xba, 0xff, 0x83, 0xc2, 0xc4, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x13, 0x7f, 0x35, 0xf4, 0xf3, - 0x30, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Castaway) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Castaway") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Castaway but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Castaway but is not nil && this == nil") - } - if len(this.CastMapValueMessage) != len(that1.CastMapValueMessage) { - return fmt.Errorf("CastMapValueMessage this(%v) Not Equal that(%v)", len(this.CastMapValueMessage), len(that1.CastMapValueMessage)) - } - for i := range this.CastMapValueMessage { - a := (Wilson)(this.CastMapValueMessage[i]) - b := (Wilson)(that1.CastMapValueMessage[i]) - if !(&a).Equal(&b) { - return fmt.Errorf("CastMapValueMessage this[%v](%v) Not Equal that[%v](%v)", i, this.CastMapValueMessage[i], i, that1.CastMapValueMessage[i]) - } - } - if len(this.CastMapValueMessageNullable) != len(that1.CastMapValueMessageNullable) { - return fmt.Errorf("CastMapValueMessageNullable this(%v) Not Equal that(%v)", len(this.CastMapValueMessageNullable), len(that1.CastMapValueMessageNullable)) - } - for i := range this.CastMapValueMessageNullable { - a := (*Wilson)(this.CastMapValueMessageNullable[i]) - b := (*Wilson)(that1.CastMapValueMessageNullable[i]) - if !a.Equal(b) { - return fmt.Errorf("CastMapValueMessageNullable this[%v](%v) Not Equal that[%v](%v)", i, this.CastMapValueMessageNullable[i], i, that1.CastMapValueMessageNullable[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Castaway) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.CastMapValueMessage) != len(that1.CastMapValueMessage) { - return false - } - for i := range this.CastMapValueMessage { - a := (Wilson)(this.CastMapValueMessage[i]) - b := (Wilson)(that1.CastMapValueMessage[i]) - if !(&a).Equal(&b) { - return false - } - } - if len(this.CastMapValueMessageNullable) != len(that1.CastMapValueMessageNullable) { - return false - } - for i := range this.CastMapValueMessageNullable { - a := (*Wilson)(this.CastMapValueMessageNullable[i]) - b := (*Wilson)(that1.CastMapValueMessageNullable[i]) - if !a.Equal(b) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Wilson) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Wilson") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Wilson but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Wilson but is not nil && this == nil") - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", *this.Int64, *that1.Int64) - } - } else if this.Int64 != nil { - return fmt.Errorf("this.Int64 == nil && that.Int64 != nil") - } else if that1.Int64 != nil { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", this.Int64, that1.Int64) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Wilson) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return false - } - } else if this.Int64 != nil { - return false - } else if that1.Int64 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetCastMapValueMessage() map[int32]MyWilson - GetCastMapValueMessageNullable() map[int32]*MyWilson -} - -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCastawayFromFace(this) -} - -func (this *Castaway) GetCastMapValueMessage() map[int32]MyWilson { - return this.CastMapValueMessage -} - -func (this *Castaway) GetCastMapValueMessageNullable() map[int32]*MyWilson { - return this.CastMapValueMessageNullable -} - -func NewCastawayFromFace(that CastawayFace) *Castaway { - this := &Castaway{} - this.CastMapValueMessage = that.GetCastMapValueMessage() - this.CastMapValueMessageNullable = that.GetCastMapValueMessageNullable() - return this -} - -type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetInt64() *int64 -} - -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { - return NewWilsonFromFace(this) -} - -func (this *Wilson) GetInt64() *int64 { - return this.Int64 -} - -func NewWilsonFromFace(that WilsonFace) *Wilson { - this := &Wilson{} - this.Int64 = that.GetInt64() - return this -} - -func (this *Castaway) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&castvalue.Castaway{") - keysForCastMapValueMessage := make([]int32, 0, len(this.CastMapValueMessage)) - for k := range this.CastMapValueMessage { - keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) - mapStringForCastMapValueMessage := "map[int32]MyWilson{" - for _, k := range keysForCastMapValueMessage { - mapStringForCastMapValueMessage += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessage[k]) - } - mapStringForCastMapValueMessage += "}" - if this.CastMapValueMessage != nil { - s = append(s, "CastMapValueMessage: "+mapStringForCastMapValueMessage+",\n") - } - keysForCastMapValueMessageNullable := make([]int32, 0, len(this.CastMapValueMessageNullable)) - for k := range this.CastMapValueMessageNullable { - keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) - mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" - for _, k := range keysForCastMapValueMessageNullable { - mapStringForCastMapValueMessageNullable += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessageNullable[k]) - } - mapStringForCastMapValueMessageNullable += "}" - if this.CastMapValueMessageNullable != nil { - s = append(s, "CastMapValueMessageNullable: "+mapStringForCastMapValueMessageNullable+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Wilson) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&castvalue.Wilson{") - if this.Int64 != nil { - s = append(s, "Int64: "+valueToGoStringCastvalue(this.Int64, "int64")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringCastvalue(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { - this := &Castaway{} - if r.Intn(10) != 0 { - v1 := r.Intn(10) - this.CastMapValueMessage = make(map[int32]MyWilson) - for i := 0; i < v1; i++ { - this.CastMapValueMessage[int32(r.Int31())] = (MyWilson)(*NewPopulatedWilson(r, easy)) - } - } - if r.Intn(10) != 0 { - v2 := r.Intn(10) - this.CastMapValueMessageNullable = make(map[int32]*MyWilson) - for i := 0; i < v2; i++ { - this.CastMapValueMessageNullable[int32(r.Int31())] = (*MyWilson)(NewPopulatedWilson(r, easy)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCastvalue(r, 3) - } - return this -} - -func NewPopulatedWilson(r randyCastvalue, easy bool) *Wilson { - this := &Wilson{} - if r.Intn(10) != 0 { - v3 := int64(r.Int63()) - if r.Intn(2) == 0 { - v3 *= -1 - } - this.Int64 = &v3 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCastvalue(r, 2) - } - return this -} - -type randyCastvalue interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneCastvalue(r randyCastvalue) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringCastvalue(r randyCastvalue) string { - v4 := r.Intn(100) - tmps := make([]rune, v4) - for i := 0; i < v4; i++ { - tmps[i] = randUTF8RuneCastvalue(r) - } - return string(tmps) -} -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - v5 := r.Int63() - if r.Intn(2) == 0 { - v5 *= -1 - } - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) - case 1: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Castaway) Size() (n int) { - var l int - _ = l - if len(m.CastMapValueMessage) > 0 { - for k, v := range m.CastMapValueMessage { - _ = k - _ = v - l = ((*Wilson)(&v)).Size() - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) - n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) - } - } - if len(m.CastMapValueMessageNullable) > 0 { - for k, v := range m.CastMapValueMessageNullable { - _ = k - _ = v - l = 0 - if v != nil { - l = ((*Wilson)(v)).Size() - l += 1 + sovCastvalue(uint64(l)) - } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + l - n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Wilson) Size() (n int) { - var l int - _ = l - if m.Int64 != nil { - n += 1 + sovCastvalue(uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovCastvalue(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozCastvalue(x uint64) (n int) { - return sovCastvalue(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Castaway) String() string { - if this == nil { - return "nil" - } - keysForCastMapValueMessage := make([]int32, 0, len(this.CastMapValueMessage)) - for k := range this.CastMapValueMessage { - keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) - mapStringForCastMapValueMessage := "map[int32]MyWilson{" - for _, k := range keysForCastMapValueMessage { - mapStringForCastMapValueMessage += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessage[k]) - } - mapStringForCastMapValueMessage += "}" - keysForCastMapValueMessageNullable := make([]int32, 0, len(this.CastMapValueMessageNullable)) - for k := range this.CastMapValueMessageNullable { - keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) - mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" - for _, k := range keysForCastMapValueMessageNullable { - mapStringForCastMapValueMessageNullable += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessageNullable[k]) - } - mapStringForCastMapValueMessageNullable += "}" - s := strings.Join([]string{`&Castaway{`, - `CastMapValueMessage:` + mapStringForCastMapValueMessage + `,`, - `CastMapValueMessageNullable:` + mapStringForCastMapValueMessageNullable + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Wilson) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Wilson{`, - `Int64:` + valueToStringCastvalue(this.Int64) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringCastvalue(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Castaway) 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 *Castaway) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.CastMapValueMessage) > 0 { - for k := range m.CastMapValueMessage { - dAtA[i] = 0xa - i++ - v := m.CastMapValueMessage[k] - msgSize := 0 - if ((*Wilson)(&v)) != nil { - msgSize = ((*Wilson)(&v)).Size() - msgSize += 1 + sovCastvalue(uint64(msgSize)) - } - mapSize := 1 + sovCastvalue(uint64(k)) + msgSize - i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(&v)).Size())) - n1, err := ((*Wilson)(&v)).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - } - if len(m.CastMapValueMessageNullable) > 0 { - for k := range m.CastMapValueMessageNullable { - dAtA[i] = 0x12 - i++ - v := m.CastMapValueMessageNullable[k] - msgSize := 0 - if ((*Wilson)(v)) != nil { - msgSize = ((*Wilson)(v)).Size() - msgSize += 1 + sovCastvalue(uint64(msgSize)) - } - mapSize := 1 + sovCastvalue(uint64(k)) + msgSize - i = encodeVarintCastvalue(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(k)) - if ((*Wilson)(v)) != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(((*Wilson)(v)).Size())) - n2, err := ((*Wilson)(v)).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Wilson) 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 *Wilson) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Int64 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintCastvalue(dAtA, i, uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Castvalue(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 encodeFixed32Castvalue(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 encodeVarintCastvalue(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 init() { proto.RegisterFile("combos/unsafemarshaler/castvalue.proto", fileDescriptorCastvalue) } - -var fileDescriptorCastvalue = []byte{ - // 364 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0xea, 0x50, - 0x18, 0xc6, 0xcf, 0x4b, 0xc3, 0x0d, 0xf7, 0x70, 0x07, 0x6e, 0xef, 0x1d, 0x1a, 0x4c, 0x5e, 0x1a, - 0x06, 0x65, 0xd0, 0x36, 0x21, 0xc4, 0x18, 0x47, 0x8c, 0x83, 0x89, 0x38, 0x30, 0x68, 0x1c, 0x4f, - 0x49, 0x29, 0xc4, 0xd2, 0x43, 0x7a, 0x5a, 0x4d, 0x37, 0x06, 0x27, 0xff, 0x12, 0x47, 0x47, 0x47, - 0xdd, 0x18, 0x19, 0x9d, 0x94, 0x1e, 0x17, 0x46, 0x46, 0x46, 0x43, 0x2b, 0x7e, 0x24, 0xf8, 0x91, - 0xb8, 0xbd, 0xef, 0x73, 0xde, 0xe7, 0xf9, 0x3d, 0x87, 0xae, 0xb6, 0x78, 0xcf, 0xe2, 0xc2, 0x0c, - 0x3d, 0xc1, 0xda, 0x76, 0x8f, 0xf9, 0xa2, 0xc3, 0x5c, 0xdb, 0x37, 0x5b, 0x4c, 0x04, 0xa7, 0xcc, - 0x0d, 0x6d, 0xa3, 0xef, 0xf3, 0x80, 0xab, 0xbf, 0x5f, 0x84, 0xe2, 0x86, 0xd3, 0x0d, 0x3a, 0xa1, - 0x65, 0xb4, 0x78, 0xcf, 0x74, 0xb8, 0xc3, 0xcd, 0xe4, 0xc2, 0x0a, 0xdb, 0xc9, 0x96, 0x2c, 0xc9, - 0x94, 0x3a, 0xcb, 0xb7, 0x0a, 0xcd, 0xed, 0x30, 0x11, 0xb0, 0x33, 0x16, 0xa9, 0x7d, 0xfa, 0x6f, - 0x3e, 0x37, 0x58, 0xff, 0x70, 0x9e, 0xd5, 0xb0, 0x85, 0x60, 0x8e, 0xad, 0x81, 0xae, 0x54, 0xf2, - 0xd5, 0x75, 0xe3, 0x95, 0xba, 0x70, 0x18, 0x4b, 0xce, 0x77, 0xbd, 0xc0, 0x8f, 0xea, 0x85, 0xe1, - 0x7d, 0x89, 0x5c, 0x3c, 0x94, 0x72, 0x8d, 0xe8, 0xa8, 0xeb, 0x0a, 0xee, 0x35, 0x97, 0x45, 0xab, - 0xe7, 0x40, 0x57, 0x96, 0xe8, 0x07, 0xa1, 0xeb, 0x32, 0xcb, 0xb5, 0xb5, 0x4c, 0x82, 0xae, 0x7d, - 0x13, 0xbd, 0xb0, 0xa5, 0x15, 0xfe, 0xbc, 0xc3, 0x7f, 0x86, 0x29, 0x1e, 0x53, 0xed, 0xa3, 0x9f, - 0xa8, 0x05, 0xaa, 0x9c, 0xd8, 0x91, 0x06, 0x3a, 0x54, 0xb2, 0xcd, 0xf9, 0xa8, 0xae, 0xd1, 0x6c, - 0xd2, 0x45, 0xcb, 0xe8, 0x50, 0xc9, 0x57, 0xff, 0xbe, 0x69, 0xf7, 0x0c, 0x4b, 0xdf, 0xb7, 0x33, - 0x5b, 0x50, 0x64, 0x54, 0xff, 0xaa, 0xe9, 0x0f, 0x11, 0x65, 0xa4, 0xbf, 0x52, 0x51, 0xfd, 0x4f, - 0xb3, 0x7b, 0x5e, 0xb0, 0x59, 0x4b, 0xa2, 0x94, 0x66, 0xba, 0xd4, 0xf7, 0x87, 0x31, 0x92, 0x51, - 0x8c, 0xe4, 0x2e, 0x46, 0x32, 0x8e, 0x11, 0x26, 0x31, 0xc2, 0x34, 0x46, 0x98, 0xc5, 0x08, 0x03, - 0x89, 0x70, 0x29, 0x11, 0xae, 0x24, 0xc2, 0xb5, 0x44, 0xb8, 0x91, 0x08, 0x43, 0x89, 0x64, 0x24, - 0x91, 0x8c, 0x25, 0xc2, 0x44, 0x22, 0x99, 0x4a, 0x84, 0x99, 0x44, 0x18, 0x3c, 0x22, 0x79, 0x0a, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x17, 0xd9, 0xa7, 0x94, 0x02, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvaluepb_test.go deleted file mode 100644 index dcbaa0675..000000000 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvaluepb_test.go +++ /dev/null @@ -1,538 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/castvalue.proto -// DO NOT EDIT! - -/* -Package castvalue is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/castvalue.proto - -It has these top-level messages: - Castaway - Wilson -*/ -package castvalue - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestCastawayProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCastawayMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Castaway{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestWilsonMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Wilson{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestWilsonJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCastawayProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCastawayProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCastvalueDescription(t *testing.T) { - CastvalueDescription() -} -func TestCastawayVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestWilsonVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCastawaySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.pb.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.pb.go deleted file mode 100644 index 8c7051345..000000000 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.pb.go +++ /dev/null @@ -1,1315 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/castvalue.proto -// DO NOT EDIT! - -/* - Package castvalue is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeunmarshaler/castvalue.proto - - It has these top-level messages: - Castaway - Wilson -*/ -package castvalue - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -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 - -type Castaway struct { - CastMapValueMessage map[int32]MyWilson `protobuf:"bytes,1,rep,name=CastMapValueMessage,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessage" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - CastMapValueMessageNullable map[int32]*MyWilson `protobuf:"bytes,2,rep,name=CastMapValueMessageNullable,castvalue=MyWilson,castvaluetype=castvalue.Wilson" json:"CastMapValueMessageNullable,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Castaway) Reset() { *m = Castaway{} } -func (*Castaway) ProtoMessage() {} -func (*Castaway) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{0} } - -type Wilson struct { - Int64 *int64 `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Wilson) Reset() { *m = Wilson{} } -func (*Wilson) ProtoMessage() {} -func (*Wilson) Descriptor() ([]byte, []int) { return fileDescriptorCastvalue, []int{1} } - -func init() { - proto.RegisterType((*Castaway)(nil), "castvalue.Castaway") - proto.RegisterType((*Wilson)(nil), "castvalue.Wilson") -} -func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CastvalueDescription() -} -func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return CastvalueDescription() -} -func CastvalueDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 3795 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, - 0x23, 0xda, 0x4e, 0xc8, 0x8c, 0x2c, 0xc9, 0x32, 0xd4, 0xc4, 0x03, 0x82, 0x10, 0x03, 0x95, 0x24, - 0x90, 0x05, 0x19, 0x4b, 0xe9, 0xc3, 0xce, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0x8b, 0xec, 0x2e, - 0x24, 0xd3, 0x4f, 0xea, 0x38, 0x6d, 0x27, 0xed, 0xf4, 0xbf, 0xd3, 0x26, 0xae, 0xe3, 0xb6, 0x99, - 0x69, 0x9d, 0x26, 0xfd, 0x49, 0xfa, 0x93, 0x66, 0xfa, 0x94, 0x3e, 0xa4, 0xf5, 0x53, 0x27, 0x79, - 0xeb, 0x43, 0xa7, 0xb5, 0x18, 0xcf, 0xd4, 0x6d, 0xdd, 0xd6, 0x6d, 0x3c, 0xd3, 0xcc, 0xe8, 0xa5, - 0x73, 0xff, 0x16, 0xbb, 0x00, 0xc8, 0x05, 0xd3, 0x71, 0xf2, 0x44, 0xdc, 0x73, 0xcf, 0xf7, 0xed, - 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0xd9, 0xbb, 0x84, 0xef, 0x5d, 0x86, 0xa5, 0xb6, 0x6d, 0xb7, 0x4d, - 0xbc, 0xd6, 0x75, 0x6c, 0xcf, 0xde, 0xef, 0xb5, 0xd6, 0x9a, 0xd8, 0xd5, 0x1d, 0xa3, 0xeb, 0xd9, - 0xce, 0x2a, 0x95, 0x29, 0x33, 0x4c, 0x63, 0x55, 0x68, 0x2c, 0x6f, 0xc3, 0xec, 0x75, 0xc3, 0xc4, - 0x1b, 0xbe, 0x62, 0x03, 0x7b, 0xca, 0x55, 0x48, 0xb4, 0x0c, 0x13, 0xe7, 0xa5, 0xa5, 0xf8, 0x4a, - 0xe6, 0xe2, 0xe3, 0xab, 0x03, 0xa0, 0xd5, 0x30, 0xa2, 0x4e, 0xc4, 0x2a, 0x45, 0x2c, 0xbf, 0x95, - 0x80, 0xb9, 0x11, 0xb3, 0x8a, 0x02, 0x09, 0x0b, 0x75, 0x08, 0xa3, 0xb4, 0x92, 0x56, 0xe9, 0x6f, - 0x25, 0x0f, 0x53, 0x5d, 0xa4, 0xdf, 0x41, 0x6d, 0x9c, 0x8f, 0x51, 0xb1, 0x18, 0x2a, 0x05, 0x80, - 0x26, 0xee, 0x62, 0xab, 0x89, 0x2d, 0xfd, 0x30, 0x1f, 0x5f, 0x8a, 0xaf, 0xa4, 0xd5, 0x80, 0x44, - 0x79, 0x1a, 0x66, 0xbb, 0xbd, 0x7d, 0xd3, 0xd0, 0xb5, 0x80, 0x1a, 0x2c, 0xc5, 0x57, 0x92, 0xaa, - 0xcc, 0x26, 0x36, 0xfa, 0xca, 0x17, 0x60, 0xe6, 0x1e, 0x46, 0x77, 0x82, 0xaa, 0x19, 0xaa, 0x9a, - 0x23, 0xe2, 0x80, 0x62, 0x19, 0xb2, 0x1d, 0xec, 0xba, 0xa8, 0x8d, 0x35, 0xef, 0xb0, 0x8b, 0xf3, - 0x09, 0xba, 0xfa, 0xa5, 0xa1, 0xd5, 0x0f, 0xae, 0x3c, 0xc3, 0x51, 0xbb, 0x87, 0x5d, 0xac, 0x94, - 0x20, 0x8d, 0xad, 0x5e, 0x87, 0x31, 0x24, 0x8f, 0xf1, 0x5f, 0xc5, 0xea, 0x75, 0x06, 0x59, 0x52, - 0x04, 0xc6, 0x29, 0xa6, 0x5c, 0xec, 0xdc, 0x35, 0x74, 0x9c, 0x9f, 0xa4, 0x04, 0x17, 0x86, 0x08, - 0x1a, 0x6c, 0x7e, 0x90, 0x43, 0xe0, 0x94, 0x32, 0xa4, 0xf1, 0x8b, 0x1e, 0xb6, 0x5c, 0xc3, 0xb6, - 0xf2, 0x53, 0x94, 0xe4, 0x89, 0x11, 0xbb, 0x88, 0xcd, 0xe6, 0x20, 0x45, 0x1f, 0xa7, 0x5c, 0x81, - 0x29, 0xbb, 0xeb, 0x19, 0xb6, 0xe5, 0xe6, 0x53, 0x4b, 0xd2, 0x4a, 0xe6, 0xe2, 0x07, 0x46, 0x06, - 0x42, 0x8d, 0xe9, 0xa8, 0x42, 0x59, 0xa9, 0x82, 0xec, 0xda, 0x3d, 0x47, 0xc7, 0x9a, 0x6e, 0x37, - 0xb1, 0x66, 0x58, 0x2d, 0x3b, 0x9f, 0xa6, 0x04, 0xe7, 0x86, 0x17, 0x42, 0x15, 0xcb, 0x76, 0x13, - 0x57, 0xad, 0x96, 0xad, 0xe6, 0xdc, 0xd0, 0x58, 0x59, 0x80, 0x49, 0xf7, 0xd0, 0xf2, 0xd0, 0x8b, - 0xf9, 0x2c, 0x8d, 0x10, 0x3e, 0x5a, 0xfe, 0xdf, 0x24, 0xcc, 0x8c, 0x13, 0x62, 0xd7, 0x20, 0xd9, - 0x22, 0xab, 0xcc, 0xc7, 0x4e, 0xe3, 0x03, 0x86, 0x09, 0x3b, 0x71, 0xf2, 0x87, 0x74, 0x62, 0x09, - 0x32, 0x16, 0x76, 0x3d, 0xdc, 0x64, 0x11, 0x11, 0x1f, 0x33, 0xa6, 0x80, 0x81, 0x86, 0x43, 0x2a, - 0xf1, 0x43, 0x85, 0xd4, 0x4d, 0x98, 0xf1, 0x4d, 0xd2, 0x1c, 0x64, 0xb5, 0x45, 0x6c, 0xae, 0x45, - 0x59, 0xb2, 0x5a, 0x11, 0x38, 0x95, 0xc0, 0xd4, 0x1c, 0x0e, 0x8d, 0x95, 0x0d, 0x00, 0xdb, 0xc2, - 0x76, 0x4b, 0x6b, 0x62, 0xdd, 0xcc, 0xa7, 0x8e, 0xf1, 0x52, 0x8d, 0xa8, 0x0c, 0x79, 0xc9, 0x66, - 0x52, 0xdd, 0x54, 0x9e, 0xeb, 0x87, 0xda, 0xd4, 0x31, 0x91, 0xb2, 0xcd, 0x0e, 0xd9, 0x50, 0xb4, - 0xed, 0x41, 0xce, 0xc1, 0x24, 0xee, 0x71, 0x93, 0xaf, 0x2c, 0x4d, 0x8d, 0x58, 0x8d, 0x5c, 0x99, - 0xca, 0x61, 0x6c, 0x61, 0xd3, 0x4e, 0x70, 0xa8, 0x7c, 0x10, 0x7c, 0x81, 0x46, 0xc3, 0x0a, 0x68, - 0x16, 0xca, 0x0a, 0xe1, 0x0e, 0xea, 0xe0, 0xc5, 0xab, 0x90, 0x0b, 0xbb, 0x47, 0x99, 0x87, 0xa4, - 0xeb, 0x21, 0xc7, 0xa3, 0x51, 0x98, 0x54, 0xd9, 0x40, 0x91, 0x21, 0x8e, 0xad, 0x26, 0xcd, 0x72, - 0x49, 0x95, 0xfc, 0x5c, 0x7c, 0x16, 0xa6, 0x43, 0x8f, 0x1f, 0x17, 0xb8, 0xfc, 0xf9, 0x49, 0x98, - 0x1f, 0x15, 0x73, 0x23, 0xc3, 0x7f, 0x01, 0x26, 0xad, 0x5e, 0x67, 0x1f, 0x3b, 0xf9, 0x38, 0x65, - 0xe0, 0x23, 0xa5, 0x04, 0x49, 0x13, 0xed, 0x63, 0x33, 0x9f, 0x58, 0x92, 0x56, 0x72, 0x17, 0x9f, - 0x1e, 0x2b, 0xaa, 0x57, 0xb7, 0x08, 0x44, 0x65, 0x48, 0xe5, 0xe3, 0x90, 0xe0, 0x29, 0x8e, 0x30, - 0x3c, 0x35, 0x1e, 0x03, 0x89, 0x45, 0x95, 0xe2, 0x94, 0x47, 0x21, 0x4d, 0xfe, 0x32, 0xdf, 0x4e, - 0x52, 0x9b, 0x53, 0x44, 0x40, 0xfc, 0xaa, 0x2c, 0x42, 0x8a, 0x86, 0x59, 0x13, 0x8b, 0xd2, 0xe0, - 0x8f, 0xc9, 0xc6, 0x34, 0x71, 0x0b, 0xf5, 0x4c, 0x4f, 0xbb, 0x8b, 0xcc, 0x1e, 0xa6, 0x01, 0x93, - 0x56, 0xb3, 0x5c, 0xf8, 0x29, 0x22, 0x53, 0xce, 0x41, 0x86, 0x45, 0xa5, 0x61, 0x35, 0xf1, 0x8b, - 0x34, 0xfb, 0x24, 0x55, 0x16, 0xa8, 0x55, 0x22, 0x21, 0x8f, 0xbf, 0xed, 0xda, 0x96, 0xd8, 0x5a, - 0xfa, 0x08, 0x22, 0xa0, 0x8f, 0x7f, 0x76, 0x30, 0xf1, 0x3d, 0x36, 0x7a, 0x79, 0x83, 0xb1, 0xb8, - 0xfc, 0x8d, 0x18, 0x24, 0xe8, 0x79, 0x9b, 0x81, 0xcc, 0xee, 0xad, 0x7a, 0x45, 0xdb, 0xa8, 0xed, - 0xad, 0x6f, 0x55, 0x64, 0x49, 0xc9, 0x01, 0x50, 0xc1, 0xf5, 0xad, 0x5a, 0x69, 0x57, 0x8e, 0xf9, - 0xe3, 0xea, 0xce, 0xee, 0x95, 0x4b, 0x72, 0xdc, 0x07, 0xec, 0x31, 0x41, 0x22, 0xa8, 0xf0, 0xcc, - 0x45, 0x39, 0xa9, 0xc8, 0x90, 0x65, 0x04, 0xd5, 0x9b, 0x95, 0x8d, 0x2b, 0x97, 0xe4, 0xc9, 0xb0, - 0xe4, 0x99, 0x8b, 0xf2, 0x94, 0x32, 0x0d, 0x69, 0x2a, 0x59, 0xaf, 0xd5, 0xb6, 0xe4, 0x94, 0xcf, - 0xd9, 0xd8, 0x55, 0xab, 0x3b, 0x9b, 0x72, 0xda, 0xe7, 0xdc, 0x54, 0x6b, 0x7b, 0x75, 0x19, 0x7c, - 0x86, 0xed, 0x4a, 0xa3, 0x51, 0xda, 0xac, 0xc8, 0x19, 0x5f, 0x63, 0xfd, 0xd6, 0x6e, 0xa5, 0x21, - 0x67, 0x43, 0x66, 0x3d, 0x73, 0x51, 0x9e, 0xf6, 0x1f, 0x51, 0xd9, 0xd9, 0xdb, 0x96, 0x73, 0xca, - 0x2c, 0x4c, 0xb3, 0x47, 0x08, 0x23, 0x66, 0x06, 0x44, 0x57, 0x2e, 0xc9, 0x72, 0xdf, 0x10, 0xc6, - 0x32, 0x1b, 0x12, 0x5c, 0xb9, 0x24, 0x2b, 0xcb, 0x65, 0x48, 0xd2, 0xe8, 0x52, 0x14, 0xc8, 0x6d, - 0x95, 0xd6, 0x2b, 0x5b, 0x5a, 0xad, 0xbe, 0x5b, 0xad, 0xed, 0x94, 0xb6, 0x64, 0xa9, 0x2f, 0x53, - 0x2b, 0x9f, 0xdc, 0xab, 0xaa, 0x95, 0x0d, 0x39, 0x16, 0x94, 0xd5, 0x2b, 0xa5, 0xdd, 0xca, 0x86, - 0x1c, 0x5f, 0xd6, 0x61, 0x7e, 0x54, 0x9e, 0x19, 0x79, 0x32, 0x02, 0x5b, 0x1c, 0x3b, 0x66, 0x8b, - 0x29, 0xd7, 0xd0, 0x16, 0x7f, 0x49, 0x82, 0xb9, 0x11, 0xb9, 0x76, 0xe4, 0x43, 0x9e, 0x87, 0x24, - 0x0b, 0x51, 0x56, 0x7d, 0x9e, 0x1c, 0x99, 0xb4, 0x69, 0xc0, 0x0e, 0x55, 0x20, 0x8a, 0x0b, 0x56, - 0xe0, 0xf8, 0x31, 0x15, 0x98, 0x50, 0x0c, 0x19, 0xf9, 0xb2, 0x04, 0xf9, 0xe3, 0xb8, 0x23, 0x12, - 0x45, 0x2c, 0x94, 0x28, 0xae, 0x0d, 0x1a, 0x70, 0xfe, 0xf8, 0x35, 0x0c, 0x59, 0xf1, 0xba, 0x04, - 0x0b, 0xa3, 0x1b, 0x95, 0x91, 0x36, 0x7c, 0x1c, 0x26, 0x3b, 0xd8, 0x3b, 0xb0, 0x45, 0xb1, 0xfe, - 0xd0, 0x88, 0x12, 0x40, 0xa6, 0x07, 0x7d, 0xc5, 0x51, 0xc1, 0x1a, 0x12, 0x3f, 0xae, 0xdb, 0x60, - 0xd6, 0x0c, 0x59, 0xfa, 0xb9, 0x18, 0x3c, 0x32, 0x92, 0x7c, 0xa4, 0xa1, 0x8f, 0x01, 0x18, 0x56, - 0xb7, 0xe7, 0xb1, 0x82, 0xcc, 0xf2, 0x53, 0x9a, 0x4a, 0xe8, 0xd9, 0x27, 0xb9, 0xa7, 0xe7, 0xf9, - 0xf3, 0x71, 0x3a, 0x0f, 0x4c, 0x44, 0x15, 0xae, 0xf6, 0x0d, 0x4d, 0x50, 0x43, 0x0b, 0xc7, 0xac, - 0x74, 0xa8, 0xd6, 0x7d, 0x14, 0x64, 0xdd, 0x34, 0xb0, 0xe5, 0x69, 0xae, 0xe7, 0x60, 0xd4, 0x31, - 0xac, 0x36, 0x4d, 0xc0, 0xa9, 0x62, 0xb2, 0x85, 0x4c, 0x17, 0xab, 0x33, 0x6c, 0xba, 0x21, 0x66, - 0x09, 0x82, 0x56, 0x19, 0x27, 0x80, 0x98, 0x0c, 0x21, 0xd8, 0xb4, 0x8f, 0x58, 0xfe, 0xea, 0x14, - 0x64, 0x02, 0x6d, 0x9d, 0x72, 0x1e, 0xb2, 0xb7, 0xd1, 0x5d, 0xa4, 0x89, 0x56, 0x9d, 0x79, 0x22, - 0x43, 0x64, 0x75, 0xde, 0xae, 0x7f, 0x14, 0xe6, 0xa9, 0x8a, 0xdd, 0xf3, 0xb0, 0xa3, 0xe9, 0x26, - 0x72, 0x5d, 0xea, 0xb4, 0x14, 0x55, 0x55, 0xc8, 0x5c, 0x8d, 0x4c, 0x95, 0xc5, 0x8c, 0x72, 0x19, - 0xe6, 0x28, 0xa2, 0xd3, 0x33, 0x3d, 0xa3, 0x6b, 0x62, 0x8d, 0xbc, 0x3c, 0xb8, 0x34, 0x11, 0xfb, - 0x96, 0xcd, 0x12, 0x8d, 0x6d, 0xae, 0x40, 0x2c, 0x72, 0x95, 0x0d, 0x78, 0x8c, 0xc2, 0xda, 0xd8, - 0xc2, 0x0e, 0xf2, 0xb0, 0x86, 0x3f, 0xd3, 0x43, 0xa6, 0xab, 0x21, 0xab, 0xa9, 0x1d, 0x20, 0xf7, - 0x20, 0x3f, 0x4f, 0x08, 0xd6, 0x63, 0x79, 0x49, 0x3d, 0x4b, 0x14, 0x37, 0xb9, 0x5e, 0x85, 0xaa, - 0x95, 0xac, 0xe6, 0x27, 0x90, 0x7b, 0xa0, 0x14, 0x61, 0x81, 0xb2, 0xb8, 0x9e, 0x63, 0x58, 0x6d, - 0x4d, 0x3f, 0xc0, 0xfa, 0x1d, 0xad, 0xe7, 0xb5, 0xae, 0xe6, 0x1f, 0x0d, 0x3e, 0x9f, 0x5a, 0xd8, - 0xa0, 0x3a, 0x65, 0xa2, 0xb2, 0xe7, 0xb5, 0xae, 0x2a, 0x0d, 0xc8, 0x92, 0xcd, 0xe8, 0x18, 0x2f, - 0x61, 0xad, 0x65, 0x3b, 0xb4, 0xb2, 0xe4, 0x46, 0x9c, 0xec, 0x80, 0x07, 0x57, 0x6b, 0x1c, 0xb0, - 0x6d, 0x37, 0x71, 0x31, 0xd9, 0xa8, 0x57, 0x2a, 0x1b, 0x6a, 0x46, 0xb0, 0x5c, 0xb7, 0x1d, 0x12, - 0x50, 0x6d, 0xdb, 0x77, 0x70, 0x86, 0x05, 0x54, 0xdb, 0x16, 0xee, 0xbd, 0x0c, 0x73, 0xba, 0xce, - 0xd6, 0x6c, 0xe8, 0x1a, 0x6f, 0xf1, 0xdd, 0xbc, 0x1c, 0x72, 0x96, 0xae, 0x6f, 0x32, 0x05, 0x1e, - 0xe3, 0xae, 0xf2, 0x1c, 0x3c, 0xd2, 0x77, 0x56, 0x10, 0x38, 0x3b, 0xb4, 0xca, 0x41, 0xe8, 0x65, - 0x98, 0xeb, 0x1e, 0x0e, 0x03, 0x95, 0xd0, 0x13, 0xbb, 0x87, 0x83, 0xb0, 0x27, 0xe8, 0x6b, 0x9b, - 0x83, 0x75, 0xe4, 0xe1, 0x66, 0xfe, 0x4c, 0x50, 0x3b, 0x30, 0xa1, 0xac, 0x81, 0xac, 0xeb, 0x1a, - 0xb6, 0xd0, 0xbe, 0x89, 0x35, 0xe4, 0x60, 0x0b, 0xb9, 0xf9, 0x73, 0x41, 0xe5, 0x9c, 0xae, 0x57, - 0xe8, 0x6c, 0x89, 0x4e, 0x2a, 0x4f, 0xc1, 0xac, 0xbd, 0x7f, 0x5b, 0x67, 0x91, 0xa5, 0x75, 0x1d, - 0xdc, 0x32, 0x5e, 0xcc, 0x3f, 0x4e, 0xdd, 0x34, 0x43, 0x26, 0x68, 0x5c, 0xd5, 0xa9, 0x58, 0x79, - 0x12, 0x64, 0xdd, 0x3d, 0x40, 0x4e, 0x97, 0x96, 0x76, 0xb7, 0x8b, 0x74, 0x9c, 0x7f, 0x82, 0xa9, - 0x32, 0xf9, 0x8e, 0x10, 0x93, 0xc8, 0x76, 0xef, 0x19, 0x2d, 0x4f, 0x30, 0x5e, 0x60, 0x91, 0x4d, - 0x65, 0x9c, 0xed, 0x26, 0xcc, 0xf7, 0x2c, 0xc3, 0xf2, 0xb0, 0xd3, 0x75, 0x30, 0x69, 0xe2, 0xd9, - 0x49, 0xcc, 0xff, 0xcb, 0xd4, 0x31, 0x6d, 0xf8, 0x5e, 0x50, 0x9b, 0x05, 0x80, 0x3a, 0xd7, 0x1b, - 0x16, 0x2e, 0x17, 0x21, 0x1b, 0x8c, 0x0b, 0x25, 0x0d, 0x2c, 0x32, 0x64, 0x89, 0xd4, 0xd8, 0x72, - 0x6d, 0x83, 0x54, 0xc7, 0x4f, 0x57, 0xe4, 0x18, 0xa9, 0xd2, 0x5b, 0xd5, 0xdd, 0x8a, 0xa6, 0xee, - 0xed, 0xec, 0x56, 0xb7, 0x2b, 0x72, 0xfc, 0xa9, 0x74, 0xea, 0xed, 0x29, 0xf9, 0xfe, 0xfd, 0xfb, - 0xf7, 0x63, 0xcb, 0xdf, 0x8e, 0x41, 0x2e, 0xdc, 0x19, 0x2b, 0x3f, 0x01, 0x67, 0xc4, 0x6b, 0xac, - 0x8b, 0x3d, 0xed, 0x9e, 0xe1, 0xd0, 0x50, 0xed, 0x20, 0xd6, 0x5b, 0xfa, 0x5e, 0x9e, 0xe7, 0x5a, - 0x0d, 0xec, 0xbd, 0x60, 0x38, 0x24, 0x10, 0x3b, 0xc8, 0x53, 0xb6, 0xe0, 0x9c, 0x65, 0x6b, 0xae, - 0x87, 0xac, 0x26, 0x72, 0x9a, 0x5a, 0xff, 0x02, 0x41, 0x43, 0xba, 0x8e, 0x5d, 0xd7, 0x66, 0x25, - 0xc2, 0x67, 0xf9, 0x80, 0x65, 0x37, 0xb8, 0x72, 0x3f, 0x77, 0x96, 0xb8, 0xea, 0x40, 0x44, 0xc4, - 0x8f, 0x8b, 0x88, 0x47, 0x21, 0xdd, 0x41, 0x5d, 0x0d, 0x5b, 0x9e, 0x73, 0x48, 0xfb, 0xb9, 0x94, - 0x9a, 0xea, 0xa0, 0x6e, 0x85, 0x8c, 0xdf, 0xbf, 0x3d, 0x08, 0xfa, 0xf1, 0x1f, 0xe3, 0x90, 0x0d, - 0xf6, 0x74, 0xa4, 0x45, 0xd6, 0x69, 0xfe, 0x96, 0xe8, 0x09, 0xff, 0xe0, 0x89, 0x1d, 0xe0, 0x6a, - 0x99, 0x24, 0xf6, 0xe2, 0x24, 0xeb, 0xb4, 0x54, 0x86, 0x24, 0x45, 0x95, 0x9c, 0x69, 0xcc, 0xfa, - 0xf7, 0x94, 0xca, 0x47, 0xca, 0x26, 0x4c, 0xde, 0x76, 0x29, 0xf7, 0x24, 0xe5, 0x7e, 0xfc, 0x64, - 0xee, 0x1b, 0x0d, 0x4a, 0x9e, 0xbe, 0xd1, 0xd0, 0x76, 0x6a, 0xea, 0x76, 0x69, 0x4b, 0xe5, 0x70, - 0xe5, 0x2c, 0x24, 0x4c, 0xf4, 0xd2, 0x61, 0xb8, 0x04, 0x50, 0xd1, 0xb8, 0x8e, 0x3f, 0x0b, 0x89, - 0x7b, 0x18, 0xdd, 0x09, 0x27, 0x5e, 0x2a, 0x7a, 0x1f, 0x43, 0x7f, 0x0d, 0x92, 0xd4, 0x5f, 0x0a, - 0x00, 0xf7, 0x98, 0x3c, 0xa1, 0xa4, 0x20, 0x51, 0xae, 0xa9, 0x24, 0xfc, 0x65, 0xc8, 0x32, 0xa9, - 0x56, 0xaf, 0x56, 0xca, 0x15, 0x39, 0xb6, 0x7c, 0x19, 0x26, 0x99, 0x13, 0xc8, 0xd1, 0xf0, 0xdd, - 0x20, 0x4f, 0xf0, 0x21, 0xe7, 0x90, 0xc4, 0xec, 0xde, 0xf6, 0x7a, 0x45, 0x95, 0x63, 0xc1, 0xed, - 0x75, 0x21, 0x1b, 0x6c, 0xe7, 0x7e, 0x34, 0x31, 0xf5, 0xd7, 0x12, 0x64, 0x02, 0xed, 0x19, 0x69, - 0x0c, 0x90, 0x69, 0xda, 0xf7, 0x34, 0x64, 0x1a, 0xc8, 0xe5, 0x41, 0x01, 0x54, 0x54, 0x22, 0x92, - 0x71, 0x37, 0xed, 0x47, 0x62, 0xfc, 0x6b, 0x12, 0xc8, 0x83, 0xad, 0xdd, 0x80, 0x81, 0xd2, 0x8f, - 0xd5, 0xc0, 0x57, 0x25, 0xc8, 0x85, 0xfb, 0xb9, 0x01, 0xf3, 0xce, 0xff, 0x58, 0xcd, 0x7b, 0x33, - 0x06, 0xd3, 0xa1, 0x2e, 0x6e, 0x5c, 0xeb, 0x3e, 0x03, 0xb3, 0x46, 0x13, 0x77, 0xba, 0xb6, 0x87, - 0x2d, 0xfd, 0x50, 0x33, 0xf1, 0x5d, 0x6c, 0xe6, 0x97, 0x69, 0xa2, 0x58, 0x3b, 0xb9, 0x4f, 0x5c, - 0xad, 0xf6, 0x71, 0x5b, 0x04, 0x56, 0x9c, 0xab, 0x6e, 0x54, 0xb6, 0xeb, 0xb5, 0xdd, 0xca, 0x4e, - 0xf9, 0x96, 0xb6, 0xb7, 0xf3, 0x93, 0x3b, 0xb5, 0x17, 0x76, 0x54, 0xd9, 0x18, 0x50, 0x7b, 0x1f, - 0x8f, 0x7a, 0x1d, 0xe4, 0x41, 0xa3, 0x94, 0x33, 0x30, 0xca, 0x2c, 0x79, 0x42, 0x99, 0x83, 0x99, - 0x9d, 0x9a, 0xd6, 0xa8, 0x6e, 0x54, 0xb4, 0xca, 0xf5, 0xeb, 0x95, 0xf2, 0x6e, 0x83, 0xbd, 0x38, - 0xfb, 0xda, 0xbb, 0xe1, 0x43, 0xfd, 0x4a, 0x1c, 0xe6, 0x46, 0x58, 0xa2, 0x94, 0x78, 0xcf, 0xce, - 0x5e, 0x23, 0x3e, 0x32, 0x8e, 0xf5, 0xab, 0xa4, 0x2b, 0xa8, 0x23, 0xc7, 0xe3, 0x2d, 0xfe, 0x93, - 0x40, 0xbc, 0x64, 0x79, 0x46, 0xcb, 0xc0, 0x0e, 0xbf, 0x67, 0x60, 0x8d, 0xfc, 0x4c, 0x5f, 0xce, - 0xae, 0x1a, 0x3e, 0x0c, 0x4a, 0xd7, 0x76, 0x0d, 0xcf, 0xb8, 0x8b, 0x35, 0xc3, 0x12, 0x97, 0x12, - 0xa4, 0xb1, 0x4f, 0xa8, 0xb2, 0x98, 0xa9, 0x5a, 0x9e, 0xaf, 0x6d, 0xe1, 0x36, 0x1a, 0xd0, 0x26, - 0x09, 0x3c, 0xae, 0xca, 0x62, 0xc6, 0xd7, 0x3e, 0x0f, 0xd9, 0xa6, 0xdd, 0x23, 0x6d, 0x12, 0xd3, - 0x23, 0xf5, 0x42, 0x52, 0x33, 0x4c, 0xe6, 0xab, 0xf0, 0x3e, 0xb6, 0x7f, 0x1b, 0x92, 0x55, 0x33, - 0x4c, 0xc6, 0x54, 0x2e, 0xc0, 0x0c, 0x6a, 0xb7, 0x1d, 0x42, 0x2e, 0x88, 0x58, 0x67, 0x9e, 0xf3, - 0xc5, 0x54, 0x71, 0xf1, 0x06, 0xa4, 0x84, 0x1f, 0x48, 0x49, 0x26, 0x9e, 0xd0, 0xba, 0xec, 0x4e, - 0x2a, 0xb6, 0x92, 0x56, 0x53, 0x96, 0x98, 0x3c, 0x0f, 0x59, 0xc3, 0xd5, 0xfa, 0x97, 0xa3, 0xb1, - 0xa5, 0xd8, 0x4a, 0x4a, 0xcd, 0x18, 0xae, 0x7f, 0x1b, 0xb6, 0xfc, 0x7a, 0x0c, 0x72, 0xe1, 0xcb, - 0x5d, 0x65, 0x03, 0x52, 0xa6, 0xad, 0x23, 0x1a, 0x5a, 0xec, 0xcb, 0xc2, 0x4a, 0xc4, 0x7d, 0xf0, - 0xea, 0x16, 0xd7, 0x57, 0x7d, 0xe4, 0xe2, 0xdf, 0x4b, 0x90, 0x12, 0x62, 0x65, 0x01, 0x12, 0x5d, - 0xe4, 0x1d, 0x50, 0xba, 0xe4, 0x7a, 0x4c, 0x96, 0x54, 0x3a, 0x26, 0x72, 0xb7, 0x8b, 0x2c, 0x1a, - 0x02, 0x5c, 0x4e, 0xc6, 0x64, 0x5f, 0x4d, 0x8c, 0x9a, 0xb4, 0xed, 0xb7, 0x3b, 0x1d, 0x6c, 0x79, - 0xae, 0xd8, 0x57, 0x2e, 0x2f, 0x73, 0xb1, 0xf2, 0x34, 0xcc, 0x7a, 0x0e, 0x32, 0xcc, 0x90, 0x6e, - 0x82, 0xea, 0xca, 0x62, 0xc2, 0x57, 0x2e, 0xc2, 0x59, 0xc1, 0xdb, 0xc4, 0x1e, 0xd2, 0x0f, 0x70, - 0xb3, 0x0f, 0x9a, 0xa4, 0x37, 0x87, 0x67, 0xb8, 0xc2, 0x06, 0x9f, 0x17, 0xd8, 0xe5, 0xef, 0x4a, - 0x30, 0x2b, 0x5e, 0x54, 0x9a, 0xbe, 0xb3, 0xb6, 0x01, 0x90, 0x65, 0xd9, 0x5e, 0xd0, 0x5d, 0xc3, - 0xa1, 0x3c, 0x84, 0x5b, 0x2d, 0xf9, 0x20, 0x35, 0x40, 0xb0, 0xd8, 0x01, 0xe8, 0xcf, 0x1c, 0xeb, - 0xb6, 0x73, 0x90, 0xe1, 0x37, 0xf7, 0xf4, 0xf3, 0x0f, 0x7b, 0xb5, 0x05, 0x26, 0x22, 0x6f, 0x34, - 0xca, 0x3c, 0x24, 0xf7, 0x71, 0xdb, 0xb0, 0xf8, 0x7d, 0x22, 0x1b, 0x88, 0x5b, 0xca, 0x84, 0x7f, - 0x4b, 0xb9, 0x7e, 0x13, 0xe6, 0x74, 0xbb, 0x33, 0x68, 0xee, 0xba, 0x3c, 0xf0, 0x7a, 0xed, 0x7e, - 0x42, 0xfa, 0x34, 0xf4, 0x5b, 0xcc, 0x2f, 0xc5, 0xe2, 0x9b, 0xf5, 0xf5, 0xaf, 0xc4, 0x16, 0x37, - 0x19, 0xae, 0x2e, 0x96, 0xa9, 0xe2, 0x96, 0x89, 0x75, 0x62, 0x3a, 0x7c, 0xff, 0x43, 0xf0, 0x91, - 0xb6, 0xe1, 0x1d, 0xf4, 0xf6, 0x57, 0x75, 0xbb, 0xb3, 0xd6, 0xb6, 0xdb, 0x76, 0xff, 0x73, 0x17, - 0x19, 0xd1, 0x01, 0xfd, 0xc5, 0x3f, 0x79, 0xa5, 0x7d, 0xe9, 0x62, 0xe4, 0xf7, 0xb1, 0xe2, 0x0e, - 0xcc, 0x71, 0x65, 0x8d, 0xde, 0xb9, 0xb3, 0x57, 0x03, 0xe5, 0xc4, 0x7b, 0x97, 0xfc, 0xd7, 0xdf, - 0xa2, 0xb5, 0x5a, 0x9d, 0xe5, 0x50, 0x32, 0xc7, 0x5e, 0x20, 0x8a, 0x2a, 0x3c, 0x12, 0xe2, 0x63, - 0xe7, 0x12, 0x3b, 0x11, 0x8c, 0xdf, 0xe6, 0x8c, 0x73, 0x01, 0xc6, 0x06, 0x87, 0x16, 0xcb, 0x30, - 0x7d, 0x1a, 0xae, 0xbf, 0xe5, 0x5c, 0x59, 0x1c, 0x24, 0xd9, 0x84, 0x19, 0x4a, 0xa2, 0xf7, 0x5c, - 0xcf, 0xee, 0xd0, 0xa4, 0x77, 0x32, 0xcd, 0xdf, 0xbd, 0xc5, 0x0e, 0x4a, 0x8e, 0xc0, 0xca, 0x3e, - 0xaa, 0x58, 0x04, 0xfa, 0x99, 0xa1, 0x89, 0x75, 0x33, 0x82, 0xe1, 0x0d, 0x6e, 0x88, 0xaf, 0x5f, - 0xfc, 0x14, 0xcc, 0x93, 0xdf, 0x34, 0x27, 0x05, 0x2d, 0x89, 0xbe, 0x65, 0xca, 0x7f, 0xf7, 0x65, - 0x76, 0x16, 0xe7, 0x7c, 0x82, 0x80, 0x4d, 0x81, 0x5d, 0x6c, 0x63, 0xcf, 0xc3, 0x8e, 0xab, 0x21, - 0x73, 0x94, 0x79, 0x81, 0xd7, 0xf4, 0xfc, 0x17, 0xde, 0x09, 0xef, 0xe2, 0x26, 0x43, 0x96, 0x4c, - 0xb3, 0xb8, 0x07, 0x67, 0x46, 0x44, 0xc5, 0x18, 0x9c, 0xaf, 0x70, 0xce, 0xf9, 0xa1, 0xc8, 0x20, - 0xb4, 0x75, 0x10, 0x72, 0x7f, 0x2f, 0xc7, 0xe0, 0xfc, 0x6d, 0xce, 0xa9, 0x70, 0xac, 0xd8, 0x52, - 0xc2, 0x78, 0x03, 0x66, 0xef, 0x62, 0x67, 0xdf, 0x76, 0xf9, 0xd5, 0xc8, 0x18, 0x74, 0xaf, 0x72, - 0xba, 0x19, 0x0e, 0xa4, 0x77, 0x25, 0x84, 0xeb, 0x39, 0x48, 0xb5, 0x90, 0x8e, 0xc7, 0xa0, 0xf8, - 0x22, 0xa7, 0x98, 0x22, 0xfa, 0x04, 0x5a, 0x82, 0x6c, 0xdb, 0xe6, 0x65, 0x29, 0x1a, 0xfe, 0x1a, - 0x87, 0x67, 0x04, 0x86, 0x53, 0x74, 0xed, 0x6e, 0xcf, 0x24, 0x35, 0x2b, 0x9a, 0xe2, 0x77, 0x04, - 0x85, 0xc0, 0x70, 0x8a, 0x53, 0xb8, 0xf5, 0x77, 0x05, 0x85, 0x1b, 0xf0, 0xe7, 0xf3, 0x90, 0xb1, - 0x2d, 0xf3, 0xd0, 0xb6, 0xc6, 0x31, 0xe2, 0xf7, 0x38, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x06, 0xe9, - 0x71, 0x37, 0xe2, 0xf7, 0xdf, 0x11, 0xc7, 0x43, 0xec, 0xc0, 0x26, 0xcc, 0x88, 0x04, 0x65, 0xd8, - 0xd6, 0x18, 0x14, 0x7f, 0xc0, 0x29, 0x72, 0x01, 0x18, 0x5f, 0x86, 0x87, 0x5d, 0xaf, 0x8d, 0xc7, - 0x21, 0x79, 0x5d, 0x2c, 0x83, 0x43, 0xb8, 0x2b, 0xf7, 0xb1, 0xa5, 0x1f, 0x8c, 0xc7, 0xf0, 0x65, - 0xe1, 0x4a, 0x81, 0x21, 0x14, 0x65, 0x98, 0xee, 0x20, 0xc7, 0x3d, 0x40, 0xe6, 0x58, 0xdb, 0xf1, - 0x87, 0x9c, 0x23, 0xeb, 0x83, 0xb8, 0x47, 0x7a, 0xd6, 0x69, 0x68, 0xbe, 0x22, 0x3c, 0x12, 0x80, - 0xf1, 0xa3, 0xe7, 0x7a, 0xf4, 0x02, 0xea, 0x34, 0x6c, 0x5f, 0x15, 0x47, 0x8f, 0x61, 0xb7, 0x83, - 0x8c, 0xd7, 0x20, 0xed, 0x1a, 0x2f, 0x8d, 0x45, 0xf3, 0x47, 0x62, 0xa7, 0x29, 0x80, 0x80, 0x6f, - 0xc1, 0xd9, 0x91, 0x65, 0x62, 0x0c, 0xb2, 0x3f, 0xe6, 0x64, 0x0b, 0x23, 0x4a, 0x05, 0x4f, 0x09, - 0xa7, 0xa5, 0xfc, 0x13, 0x91, 0x12, 0xf0, 0x00, 0x57, 0x9d, 0xbc, 0x28, 0xb8, 0xa8, 0x75, 0x3a, - 0xaf, 0xfd, 0xa9, 0xf0, 0x1a, 0xc3, 0x86, 0xbc, 0xb6, 0x0b, 0x0b, 0x9c, 0xf1, 0x74, 0xfb, 0xfa, - 0x35, 0x91, 0x58, 0x19, 0x7a, 0x2f, 0xbc, 0xbb, 0x3f, 0x05, 0x8b, 0xbe, 0x3b, 0x45, 0x47, 0xea, - 0x6a, 0x1d, 0xd4, 0x1d, 0x83, 0xf9, 0xeb, 0x9c, 0x59, 0x64, 0x7c, 0xbf, 0xa5, 0x75, 0xb7, 0x51, - 0x97, 0x90, 0xdf, 0x84, 0xbc, 0x20, 0xef, 0x59, 0x0e, 0xd6, 0xed, 0xb6, 0x65, 0xbc, 0x84, 0x9b, - 0x63, 0x50, 0xff, 0xd9, 0xc0, 0x56, 0xed, 0x05, 0xe0, 0x84, 0xb9, 0x0a, 0xb2, 0xdf, 0xab, 0x68, - 0x46, 0xa7, 0x6b, 0x3b, 0x5e, 0x04, 0xe3, 0x9f, 0x8b, 0x9d, 0xf2, 0x71, 0x55, 0x0a, 0x2b, 0x56, - 0x20, 0x47, 0x87, 0xe3, 0x86, 0xe4, 0x5f, 0x70, 0xa2, 0xe9, 0x3e, 0x8a, 0x27, 0x0e, 0xdd, 0xee, - 0x74, 0x91, 0x33, 0x4e, 0xfe, 0xfb, 0x4b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, 0xef, 0xb0, 0x8b, - 0x49, 0xb5, 0x1f, 0x83, 0xe1, 0x1b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x0d, 0xc3, 0x18, 0x14, - 0x7f, 0x25, 0x28, 0x04, 0x86, 0x50, 0x7c, 0xb2, 0x5f, 0x68, 0x1d, 0xdc, 0x36, 0x5c, 0xcf, 0x61, - 0x7d, 0xf0, 0xc9, 0x54, 0xdf, 0x7c, 0x27, 0xdc, 0x84, 0xa9, 0x01, 0x68, 0xf1, 0x06, 0xcc, 0x0c, - 0xb4, 0x18, 0x4a, 0xd4, 0xff, 0x2c, 0xe4, 0x7f, 0xfa, 0x3d, 0x9e, 0x8c, 0xc2, 0x1d, 0x46, 0x71, - 0x8b, 0xec, 0x7b, 0xb8, 0x0f, 0x88, 0x26, 0x7b, 0xf9, 0x3d, 0x7f, 0xeb, 0x43, 0x6d, 0x40, 0xf1, - 0x3a, 0x4c, 0x87, 0x7a, 0x80, 0x68, 0xaa, 0xcf, 0x72, 0xaa, 0x6c, 0xb0, 0x05, 0x28, 0x5e, 0x86, - 0x04, 0xa9, 0xe7, 0xd1, 0xf0, 0x9f, 0xe1, 0x70, 0xaa, 0x5e, 0xfc, 0x18, 0xa4, 0x44, 0x1d, 0x8f, - 0x86, 0xfe, 0x2c, 0x87, 0xfa, 0x10, 0x02, 0x17, 0x35, 0x3c, 0x1a, 0xfe, 0x73, 0x02, 0x2e, 0x20, - 0x04, 0x3e, 0xbe, 0x0b, 0xbf, 0xf5, 0x0b, 0x09, 0x9e, 0x87, 0x85, 0xef, 0xae, 0xc1, 0x14, 0x2f, - 0xde, 0xd1, 0xe8, 0xcf, 0xf1, 0x87, 0x0b, 0x44, 0xf1, 0x59, 0x48, 0x8e, 0xe9, 0xf0, 0x5f, 0xe4, - 0x50, 0xa6, 0x5f, 0x2c, 0x43, 0x26, 0x50, 0xb0, 0xa3, 0xe1, 0xbf, 0xc4, 0xe1, 0x41, 0x14, 0x31, - 0x9d, 0x17, 0xec, 0x68, 0x82, 0x5f, 0x16, 0xa6, 0x73, 0x04, 0x71, 0x9b, 0xa8, 0xd5, 0xd1, 0xe8, - 0x5f, 0x11, 0x5e, 0x17, 0x90, 0xe2, 0xf3, 0x90, 0xf6, 0xf3, 0x6f, 0x34, 0xfe, 0x57, 0x39, 0xbe, - 0x8f, 0x21, 0x1e, 0x08, 0xe4, 0xff, 0x68, 0x8a, 0x5f, 0x13, 0x1e, 0x08, 0xa0, 0xc8, 0x31, 0x1a, - 0xac, 0xe9, 0xd1, 0x4c, 0xbf, 0x2e, 0x8e, 0xd1, 0x40, 0x49, 0x27, 0xbb, 0x49, 0xd3, 0x60, 0x34, - 0xc5, 0x6f, 0x88, 0xdd, 0xa4, 0xfa, 0xc4, 0x8c, 0xc1, 0x22, 0x19, 0xcd, 0xf1, 0x5b, 0xc2, 0x8c, - 0x81, 0x1a, 0x59, 0xac, 0x83, 0x32, 0x5c, 0x20, 0xa3, 0xf9, 0x3e, 0xcf, 0xf9, 0x66, 0x87, 0xea, - 0x63, 0xf1, 0x05, 0x58, 0x18, 0x5d, 0x1c, 0xa3, 0x59, 0xbf, 0xf0, 0xde, 0xc0, 0xeb, 0x4c, 0xb0, - 0x36, 0x16, 0x77, 0xfb, 0x59, 0x36, 0x58, 0x18, 0xa3, 0x69, 0x5f, 0x79, 0x2f, 0x9c, 0x68, 0x83, - 0x75, 0xb1, 0x58, 0x02, 0xe8, 0xd7, 0xa4, 0x68, 0xae, 0x57, 0x39, 0x57, 0x00, 0x44, 0x8e, 0x06, - 0x2f, 0x49, 0xd1, 0xf8, 0x2f, 0x8a, 0xa3, 0xc1, 0x11, 0xe4, 0x68, 0x88, 0x6a, 0x14, 0x8d, 0x7e, - 0x4d, 0x1c, 0x0d, 0x01, 0x29, 0x5e, 0x83, 0x94, 0xd5, 0x33, 0x4d, 0x12, 0x5b, 0xca, 0xc9, 0xff, - 0x46, 0x94, 0xff, 0xd7, 0x87, 0x1c, 0x2c, 0x00, 0xc5, 0xcb, 0x90, 0xc4, 0x9d, 0x7d, 0xdc, 0x8c, - 0x42, 0xfe, 0xdb, 0x43, 0x91, 0x4f, 0x88, 0x76, 0xf1, 0x79, 0x00, 0xf6, 0x32, 0x4d, 0xbf, 0x12, - 0x45, 0x60, 0xff, 0xfd, 0x21, 0xff, 0x0f, 0x85, 0x3e, 0xa4, 0x4f, 0xc0, 0xfe, 0xdf, 0xe1, 0x64, - 0x82, 0x77, 0xc2, 0x04, 0xf4, 0x05, 0xfc, 0x39, 0x98, 0xba, 0xed, 0xda, 0x96, 0x87, 0xda, 0x51, - 0xe8, 0xff, 0xe0, 0x68, 0xa1, 0x4f, 0x1c, 0xd6, 0xb1, 0x1d, 0xec, 0xa1, 0xb6, 0x1b, 0x85, 0xfd, - 0x4f, 0x8e, 0xf5, 0x01, 0x04, 0xac, 0x23, 0xd7, 0x1b, 0x67, 0xdd, 0xff, 0x25, 0xc0, 0x02, 0x40, - 0x8c, 0x26, 0xbf, 0xef, 0xe0, 0xc3, 0x28, 0xec, 0xbb, 0xc2, 0x68, 0xae, 0x5f, 0xfc, 0x18, 0xa4, - 0xc9, 0x4f, 0xf6, 0x5f, 0x3b, 0x11, 0xe0, 0xff, 0xe6, 0xe0, 0x3e, 0x82, 0x3c, 0xd9, 0xf5, 0x9a, - 0x9e, 0x11, 0xed, 0xec, 0xff, 0xe1, 0x3b, 0x2d, 0xf4, 0x8b, 0x25, 0xc8, 0xb8, 0x5e, 0xb3, 0xd9, - 0xe3, 0x1d, 0x4d, 0x04, 0xfc, 0xfb, 0x0f, 0xfd, 0x97, 0x5c, 0x1f, 0xb3, 0x7e, 0x7e, 0xf4, 0x65, - 0x1d, 0x6c, 0xda, 0x9b, 0x36, 0xbb, 0xa6, 0x83, 0xdf, 0x4c, 0xc2, 0x8a, 0x6e, 0x77, 0xf6, 0x6d, - 0x77, 0x8d, 0x25, 0x94, 0x40, 0x32, 0x5a, 0xf3, 0xd7, 0x21, 0x2e, 0xdc, 0x7c, 0xc1, 0xe2, 0xe9, - 0xae, 0xea, 0x96, 0xff, 0x26, 0x0e, 0xa9, 0x32, 0x72, 0x3d, 0x74, 0x0f, 0x1d, 0x2a, 0x5d, 0x98, - 0x23, 0xbf, 0xb7, 0x51, 0x97, 0x5e, 0xfc, 0xf0, 0x93, 0xc6, 0xaf, 0x42, 0x3f, 0xbc, 0xda, 0x7f, - 0xaa, 0x40, 0xac, 0x8e, 0x50, 0xa7, 0x9f, 0x90, 0xd7, 0xe5, 0x37, 0xfe, 0xe9, 0xdc, 0xc4, 0xcf, - 0xff, 0xf3, 0xb9, 0xd4, 0xf6, 0xe1, 0x0b, 0x86, 0xe9, 0xda, 0x96, 0x3a, 0x8a, 0x5a, 0xf9, 0xac, - 0x04, 0x8f, 0x8e, 0x90, 0xef, 0xf0, 0xe3, 0xc8, 0x3f, 0x28, 0x5c, 0x1a, 0xf3, 0xd1, 0x02, 0xc6, - 0x4c, 0xc8, 0x86, 0x1e, 0x7f, 0xd2, 0x63, 0x16, 0x6f, 0x41, 0xfe, 0xb8, 0x95, 0x28, 0x32, 0xc4, - 0xef, 0xe0, 0x43, 0xfe, 0x4f, 0xa2, 0xe4, 0xa7, 0x72, 0xa1, 0xff, 0x4f, 0x66, 0xd2, 0x4a, 0xe6, - 0xe2, 0x6c, 0xc0, 0x3a, 0xfe, 0x30, 0x36, 0x5f, 0x8c, 0x5d, 0x95, 0x16, 0x11, 0x2c, 0x45, 0x59, - 0xfa, 0xff, 0x7c, 0xc4, 0x72, 0x01, 0x26, 0x99, 0x50, 0x99, 0x87, 0x64, 0xd5, 0xf2, 0xae, 0x5c, - 0xa2, 0x54, 0x71, 0x95, 0x0d, 0xd6, 0xb7, 0xde, 0x78, 0x50, 0x98, 0xf8, 0xce, 0x83, 0xc2, 0xc4, - 0x3f, 0x3c, 0x28, 0x4c, 0xbc, 0xf9, 0xa0, 0x20, 0xbd, 0xfd, 0xa0, 0x20, 0xbd, 0xfb, 0xa0, 0x20, - 0xfd, 0xe0, 0x41, 0x41, 0xba, 0x7f, 0x54, 0x90, 0xbe, 0x7c, 0x54, 0x90, 0xbe, 0x76, 0x54, 0x90, - 0xbe, 0x79, 0x54, 0x90, 0xbe, 0x75, 0x54, 0x90, 0xde, 0x38, 0x2a, 0x4c, 0x7c, 0xe7, 0xa8, 0x30, - 0xf1, 0xe6, 0x51, 0x41, 0x7a, 0xfb, 0xa8, 0x30, 0xf1, 0xee, 0x51, 0x41, 0xfa, 0xc1, 0x51, 0x61, - 0xe2, 0xfe, 0xf7, 0x0a, 0xd2, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x1a, 0x83, 0x4c, 0xd3, 0xf5, - 0x30, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Castaway) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Castaway") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Castaway but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Castaway but is not nil && this == nil") - } - if len(this.CastMapValueMessage) != len(that1.CastMapValueMessage) { - return fmt.Errorf("CastMapValueMessage this(%v) Not Equal that(%v)", len(this.CastMapValueMessage), len(that1.CastMapValueMessage)) - } - for i := range this.CastMapValueMessage { - a := (Wilson)(this.CastMapValueMessage[i]) - b := (Wilson)(that1.CastMapValueMessage[i]) - if !(&a).Equal(&b) { - return fmt.Errorf("CastMapValueMessage this[%v](%v) Not Equal that[%v](%v)", i, this.CastMapValueMessage[i], i, that1.CastMapValueMessage[i]) - } - } - if len(this.CastMapValueMessageNullable) != len(that1.CastMapValueMessageNullable) { - return fmt.Errorf("CastMapValueMessageNullable this(%v) Not Equal that(%v)", len(this.CastMapValueMessageNullable), len(that1.CastMapValueMessageNullable)) - } - for i := range this.CastMapValueMessageNullable { - a := (*Wilson)(this.CastMapValueMessageNullable[i]) - b := (*Wilson)(that1.CastMapValueMessageNullable[i]) - if !a.Equal(b) { - return fmt.Errorf("CastMapValueMessageNullable this[%v](%v) Not Equal that[%v](%v)", i, this.CastMapValueMessageNullable[i], i, that1.CastMapValueMessageNullable[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Castaway) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Castaway) - if !ok { - that2, ok := that.(Castaway) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.CastMapValueMessage) != len(that1.CastMapValueMessage) { - return false - } - for i := range this.CastMapValueMessage { - a := (Wilson)(this.CastMapValueMessage[i]) - b := (Wilson)(that1.CastMapValueMessage[i]) - if !(&a).Equal(&b) { - return false - } - } - if len(this.CastMapValueMessageNullable) != len(that1.CastMapValueMessageNullable) { - return false - } - for i := range this.CastMapValueMessageNullable { - a := (*Wilson)(this.CastMapValueMessageNullable[i]) - b := (*Wilson)(that1.CastMapValueMessageNullable[i]) - if !a.Equal(b) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Wilson) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Wilson") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Wilson but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Wilson but is not nil && this == nil") - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", *this.Int64, *that1.Int64) - } - } else if this.Int64 != nil { - return fmt.Errorf("this.Int64 == nil && that.Int64 != nil") - } else if that1.Int64 != nil { - return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", this.Int64, that1.Int64) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Wilson) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Wilson) - if !ok { - that2, ok := that.(Wilson) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Int64 != nil && that1.Int64 != nil { - if *this.Int64 != *that1.Int64 { - return false - } - } else if this.Int64 != nil { - return false - } else if that1.Int64 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type CastawayFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetCastMapValueMessage() map[int32]MyWilson - GetCastMapValueMessageNullable() map[int32]*MyWilson -} - -func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCastawayFromFace(this) -} - -func (this *Castaway) GetCastMapValueMessage() map[int32]MyWilson { - return this.CastMapValueMessage -} - -func (this *Castaway) GetCastMapValueMessageNullable() map[int32]*MyWilson { - return this.CastMapValueMessageNullable -} - -func NewCastawayFromFace(that CastawayFace) *Castaway { - this := &Castaway{} - this.CastMapValueMessage = that.GetCastMapValueMessage() - this.CastMapValueMessageNullable = that.GetCastMapValueMessageNullable() - return this -} - -type WilsonFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetInt64() *int64 -} - -func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message { - return NewWilsonFromFace(this) -} - -func (this *Wilson) GetInt64() *int64 { - return this.Int64 -} - -func NewWilsonFromFace(that WilsonFace) *Wilson { - this := &Wilson{} - this.Int64 = that.GetInt64() - return this -} - -func (this *Castaway) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&castvalue.Castaway{") - keysForCastMapValueMessage := make([]int32, 0, len(this.CastMapValueMessage)) - for k := range this.CastMapValueMessage { - keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) - mapStringForCastMapValueMessage := "map[int32]MyWilson{" - for _, k := range keysForCastMapValueMessage { - mapStringForCastMapValueMessage += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessage[k]) - } - mapStringForCastMapValueMessage += "}" - if this.CastMapValueMessage != nil { - s = append(s, "CastMapValueMessage: "+mapStringForCastMapValueMessage+",\n") - } - keysForCastMapValueMessageNullable := make([]int32, 0, len(this.CastMapValueMessageNullable)) - for k := range this.CastMapValueMessageNullable { - keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) - mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" - for _, k := range keysForCastMapValueMessageNullable { - mapStringForCastMapValueMessageNullable += fmt.Sprintf("%#v: %#v,", k, this.CastMapValueMessageNullable[k]) - } - mapStringForCastMapValueMessageNullable += "}" - if this.CastMapValueMessageNullable != nil { - s = append(s, "CastMapValueMessageNullable: "+mapStringForCastMapValueMessageNullable+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Wilson) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&castvalue.Wilson{") - if this.Int64 != nil { - s = append(s, "Int64: "+valueToGoStringCastvalue(this.Int64, "int64")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringCastvalue(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedCastaway(r randyCastvalue, easy bool) *Castaway { - this := &Castaway{} - if r.Intn(10) != 0 { - v1 := r.Intn(10) - this.CastMapValueMessage = make(map[int32]MyWilson) - for i := 0; i < v1; i++ { - this.CastMapValueMessage[int32(r.Int31())] = (MyWilson)(*NewPopulatedWilson(r, easy)) - } - } - if r.Intn(10) != 0 { - v2 := r.Intn(10) - this.CastMapValueMessageNullable = make(map[int32]*MyWilson) - for i := 0; i < v2; i++ { - this.CastMapValueMessageNullable[int32(r.Int31())] = (*MyWilson)(NewPopulatedWilson(r, easy)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCastvalue(r, 3) - } - return this -} - -func NewPopulatedWilson(r randyCastvalue, easy bool) *Wilson { - this := &Wilson{} - if r.Intn(10) != 0 { - v3 := int64(r.Int63()) - if r.Intn(2) == 0 { - v3 *= -1 - } - this.Int64 = &v3 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedCastvalue(r, 2) - } - return this -} - -type randyCastvalue interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneCastvalue(r randyCastvalue) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringCastvalue(r randyCastvalue) string { - v4 := r.Intn(100) - tmps := make([]rune, v4) - for i := 0; i < v4; i++ { - tmps[i] = randUTF8RuneCastvalue(r) - } - return string(tmps) -} -func randUnrecognizedCastvalue(r randyCastvalue, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldCastvalue(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldCastvalue(dAtA []byte, r randyCastvalue, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - v5 := r.Int63() - if r.Intn(2) == 0 { - v5 *= -1 - } - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(v5)) - case 1: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateCastvalue(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateCastvalue(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Castaway) Size() (n int) { - var l int - _ = l - if len(m.CastMapValueMessage) > 0 { - for k, v := range m.CastMapValueMessage { - _ = k - _ = v - l = ((*Wilson)(&v)).Size() - mapEntrySize := 1 + sovCastvalue(uint64(k)) + 1 + l + sovCastvalue(uint64(l)) - n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) - } - } - if len(m.CastMapValueMessageNullable) > 0 { - for k, v := range m.CastMapValueMessageNullable { - _ = k - _ = v - l = 0 - if v != nil { - l = ((*Wilson)(v)).Size() - l += 1 + sovCastvalue(uint64(l)) - } - mapEntrySize := 1 + sovCastvalue(uint64(k)) + l - n += mapEntrySize + 1 + sovCastvalue(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Wilson) Size() (n int) { - var l int - _ = l - if m.Int64 != nil { - n += 1 + sovCastvalue(uint64(*m.Int64)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovCastvalue(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozCastvalue(x uint64) (n int) { - return sovCastvalue(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Castaway) String() string { - if this == nil { - return "nil" - } - keysForCastMapValueMessage := make([]int32, 0, len(this.CastMapValueMessage)) - for k := range this.CastMapValueMessage { - keysForCastMapValueMessage = append(keysForCastMapValueMessage, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessage) - mapStringForCastMapValueMessage := "map[int32]MyWilson{" - for _, k := range keysForCastMapValueMessage { - mapStringForCastMapValueMessage += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessage[k]) - } - mapStringForCastMapValueMessage += "}" - keysForCastMapValueMessageNullable := make([]int32, 0, len(this.CastMapValueMessageNullable)) - for k := range this.CastMapValueMessageNullable { - keysForCastMapValueMessageNullable = append(keysForCastMapValueMessageNullable, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForCastMapValueMessageNullable) - mapStringForCastMapValueMessageNullable := "map[int32]*MyWilson{" - for _, k := range keysForCastMapValueMessageNullable { - mapStringForCastMapValueMessageNullable += fmt.Sprintf("%v: %v,", k, this.CastMapValueMessageNullable[k]) - } - mapStringForCastMapValueMessageNullable += "}" - s := strings.Join([]string{`&Castaway{`, - `CastMapValueMessage:` + mapStringForCastMapValueMessage + `,`, - `CastMapValueMessageNullable:` + mapStringForCastMapValueMessageNullable + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Wilson) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Wilson{`, - `Int64:` + valueToStringCastvalue(this.Int64) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringCastvalue(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Castaway) 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 ErrIntOverflowCastvalueUnsafe - } - 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: Castaway: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Castaway: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CastMapValueMessage", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.CastMapValueMessage == nil { - m.CastMapValueMessage = make(map[int32]MyWilson) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.CastMapValueMessage[mapkey] = ((MyWilson)(*mapvalue)) - } else { - var mapvalue MyWilson - m.CastMapValueMessage[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CastMapValueMessageNullable", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.CastMapValueMessageNullable == nil { - m.CastMapValueMessageNullable = make(map[int32]*MyWilson) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Wilson{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.CastMapValueMessageNullable[mapkey] = ((*MyWilson)(mapvalue)) - } else { - var mapvalue *MyWilson - m.CastMapValueMessageNullable[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCastvalueUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Wilson) 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 ErrIntOverflowCastvalueUnsafe - } - 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: Wilson: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Wilson: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCastvalueUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64 = &v - default: - iNdEx = preIndex - skippy, err := skipCastvalueUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthCastvalueUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipCastvalueUnsafe(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, ErrIntOverflowCastvalueUnsafe - } - 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, ErrIntOverflowCastvalueUnsafe - } - 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, ErrIntOverflowCastvalueUnsafe - } - 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, ErrInvalidLengthCastvalueUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowCastvalueUnsafe - } - 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 := skipCastvalueUnsafe(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 ( - ErrInvalidLengthCastvalueUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowCastvalueUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeunmarshaler/castvalue.proto", fileDescriptorCastvalue) } - -var fileDescriptorCastvalue = []byte{ - // 366 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x8f, 0xbd, 0x4f, 0xe3, 0x40, - 0x10, 0xc5, 0x77, 0x62, 0xe5, 0x94, 0xdb, 0x5c, 0x91, 0xf3, 0x5d, 0x61, 0xe5, 0xa4, 0x89, 0x95, - 0xe6, 0x5c, 0x80, 0x2d, 0x45, 0x11, 0x42, 0x94, 0x41, 0x14, 0x48, 0x84, 0x22, 0x05, 0x88, 0x72, - 0x1d, 0x39, 0x4e, 0x84, 0xe3, 0x8d, 0xbc, 0x36, 0xc8, 0x5d, 0x0a, 0x2a, 0xfe, 0x12, 0x4a, 0x4a, - 0x4a, 0xe8, 0x52, 0xa6, 0xa4, 0x82, 0x78, 0x69, 0x52, 0xa6, 0x4c, 0x89, 0x62, 0x13, 0x3e, 0xa4, - 0xf0, 0x21, 0xd1, 0xcd, 0xbc, 0x9d, 0xf7, 0x7e, 0x6f, 0xa9, 0xd1, 0xe6, 0x7d, 0x9b, 0x0b, 0x2b, - 0xf2, 0x05, 0xeb, 0x38, 0x91, 0xdf, 0x67, 0x81, 0xe8, 0x32, 0xcf, 0x09, 0xac, 0x36, 0x13, 0xe1, - 0x09, 0xf3, 0x22, 0xc7, 0x1c, 0x04, 0x3c, 0xe4, 0xea, 0xcf, 0x67, 0xa1, 0xbc, 0xee, 0xf6, 0xc2, - 0x6e, 0x64, 0x9b, 0x6d, 0xde, 0xb7, 0x5c, 0xee, 0x72, 0x2b, 0xbd, 0xb0, 0xa3, 0x4e, 0xba, 0xa5, - 0x4b, 0x3a, 0x65, 0xce, 0xea, 0x8d, 0x42, 0x0b, 0xdb, 0x4c, 0x84, 0xec, 0x94, 0xc5, 0xea, 0x80, - 0xfe, 0x59, 0xcc, 0x4d, 0x36, 0x38, 0x58, 0x64, 0x35, 0x1d, 0x21, 0x98, 0xeb, 0x68, 0xa0, 0x2b, - 0x46, 0xb1, 0xb6, 0x66, 0xbe, 0x50, 0x97, 0x0e, 0x73, 0xc5, 0xf9, 0x8e, 0x1f, 0x06, 0x71, 0xa3, - 0x34, 0xba, 0xab, 0x90, 0xf3, 0xfb, 0x4a, 0xa1, 0x19, 0x1f, 0xf6, 0x3c, 0xc1, 0xfd, 0xd6, 0xaa, - 0x68, 0xf5, 0x0c, 0xe8, 0xbf, 0x15, 0xfa, 0x7e, 0xe4, 0x79, 0xcc, 0xf6, 0x1c, 0x2d, 0x97, 0xa2, - 0xeb, 0x5f, 0x44, 0x2f, 0x6d, 0x59, 0x85, 0x5f, 0x6f, 0xf0, 0x1f, 0x61, 0xca, 0x47, 0x54, 0x7b, - 0xef, 0x27, 0x6a, 0x89, 0x2a, 0xc7, 0x4e, 0xac, 0x81, 0x0e, 0x46, 0xbe, 0xb5, 0x18, 0xd5, 0xff, - 0x34, 0x9f, 0x76, 0xd1, 0x72, 0x3a, 0x18, 0xc5, 0xda, 0xef, 0x57, 0xed, 0x9e, 0x60, 0xd9, 0xfb, - 0x56, 0x6e, 0x13, 0xca, 0x8c, 0xea, 0x9f, 0x35, 0xfd, 0x26, 0xa2, 0x8a, 0xf4, 0x47, 0x26, 0xaa, - 0x7f, 0x69, 0x7e, 0xd7, 0x0f, 0x37, 0xea, 0x69, 0x94, 0xd2, 0xca, 0x96, 0xc6, 0xde, 0x28, 0x41, - 0x32, 0x4e, 0x90, 0xdc, 0x26, 0x48, 0x26, 0x09, 0xc2, 0x34, 0x41, 0x98, 0x25, 0x08, 0xf3, 0x04, - 0x61, 0x28, 0x11, 0x2e, 0x24, 0xc2, 0xa5, 0x44, 0xb8, 0x92, 0x08, 0xd7, 0x12, 0x61, 0x24, 0x91, - 0x8c, 0x25, 0x92, 0x89, 0x44, 0x98, 0x4a, 0x24, 0x33, 0x89, 0x30, 0x97, 0x48, 0x86, 0x0f, 0x08, - 0x8f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x9c, 0xbd, 0x09, 0x96, 0x02, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvaluepb_test.go b/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvaluepb_test.go deleted file mode 100644 index 6b7dbc19f..000000000 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvaluepb_test.go +++ /dev/null @@ -1,474 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/castvalue.proto -// DO NOT EDIT! - -/* -Package castvalue is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeunmarshaler/castvalue.proto - -It has these top-level messages: - Castaway - Wilson -*/ -package castvalue - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestCastawayProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCastawayProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCastawayProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastaway(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Castaway{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkWilsonProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkWilsonProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedWilson(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Wilson{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Castaway{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestWilsonJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Wilson{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCastawayProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCastawayProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestWilsonProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCastvalueDescription(t *testing.T) { - CastvalueDescription() -} -func TestCastawayVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Castaway{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestWilsonVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Wilson{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCastawayFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestWilsonFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCastawayGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestWilsonGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCastawaySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCastaway(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCastawaySize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Castaway, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCastaway(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestWilsonSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedWilson(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkWilsonSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Wilson, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedWilson(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCastawayStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCastaway(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestWilsonStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedWilson(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go index ce817e26a..094f842eb 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/combos/both/thetest.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/thetest.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -85,12 +84,11 @@ import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custo import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type" import bytes "bytes" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import compress_gzip "compress/gzip" -import io_ioutil "io/ioutil" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" +import ioutil "io/ioutil" import strconv "strconv" @@ -98,6 +96,8 @@ import strings "strings" import sort "sort" import reflect "reflect" +import binary "encoding/binary" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -953,7 +953,7 @@ func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, type NinOptNativeDefault struct { Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.12341" json:"Field2,omitempty"` Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` @@ -975,7 +975,7 @@ func (*NinOptNativeDefault) ProtoMessage() {} func (*NinOptNativeDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{44} } const Default_NinOptNativeDefault_Field1 float64 = 1234.1234 -const Default_NinOptNativeDefault_Field2 float32 = 1234.1234 +const Default_NinOptNativeDefault_Field2 float32 = 1234.12341 const Default_NinOptNativeDefault_Field3 int32 = 1234 const Default_NinOptNativeDefault_Field4 int64 = 1234 const Default_NinOptNativeDefault_Field5 uint32 = 1234 @@ -4822,8 +4822,8 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) extkeys := make([]int32, 0, len(thismap)+len(thatmap)) for k := range thismap { extkeys = append(extkeys, k) @@ -4833,7 +4833,7 @@ func (this *MyExtendable) Compare(that interface{}) int { extkeys = append(extkeys, k) } } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) + sortkeys.Int32s(extkeys) for _, k := range extkeys { if v, ok := thismap[k]; ok { if v2, ok := thatmap[k]; ok { @@ -4904,8 +4904,8 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) extkeys := make([]int32, 0, len(thismap)+len(thatmap)) for k := range thismap { extkeys = append(extkeys, k) @@ -4915,7 +4915,7 @@ func (this *OtherExtenable) Compare(that interface{}) int { extkeys = append(extkeys, k) } } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) + sortkeys.Int32s(extkeys) for _, k := range extkeys { if v, ok := thismap[k]; ok { if v2, ok := thatmap[k]; ok { @@ -6762,632 +6762,639 @@ func (this *ProtoType) Compare(that interface{}) int { } return 0 } -func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepPackedNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepPackedNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidEmbeddedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinEmbeddedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidNestedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinNestedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomDash) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomDash) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNativeUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNativeUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinEmbeddedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinNestedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinNestedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Tree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Tree) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *OrBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OrBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AndBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AndBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Leaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Leaf) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *DeepTree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *DeepTree) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *ADeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ADeepBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AndDeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AndDeepBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *DeepLeaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *DeepLeaf) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Nil) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Nil) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptEnumDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AnotherNinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AnotherNinOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AnotherNinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AnotherNinOptEnumDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Timer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Timer) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *MyExtendable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *MyExtendable) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *OtherExtenable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OtherExtenable) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition_NestedMessage) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition_NestedMessage) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedScope) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedScope) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNativeDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNativeDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomContainer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomContainer) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNidOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NoExtensionsMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NoExtensionsMap) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Unrecognized) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Unrecognized) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithInner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithInner) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithInner_Inner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithInner_Inner) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithEmbed) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithEmbed) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Node) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ProtoType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func ThetestDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6506 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x70, 0x24, 0x57, - 0x75, 0x56, 0x4f, 0x8f, 0xb4, 0xa3, 0xa3, 0x57, 0xab, 0xb5, 0xd6, 0x8e, 0xe5, 0xb5, 0xa4, 0x1d, - 0xaf, 0xd7, 0xb2, 0xb0, 0xb5, 0x5a, 0xad, 0xb4, 0x8f, 0x59, 0x6c, 0xd7, 0xbc, 0x76, 0xad, 0x45, - 0x1a, 0x89, 0x96, 0x84, 0xbd, 0x24, 0x55, 0x53, 0xbd, 0x33, 0x57, 0xd2, 0xd8, 0x33, 0xdd, 0xc3, - 0x74, 0xcb, 0xb6, 0xfc, 0x23, 0xe5, 0x40, 0x42, 0x20, 0xa9, 0x3c, 0x49, 0x2a, 0x40, 0xc0, 0x18, - 0x52, 0x04, 0x03, 0x79, 0x40, 0x42, 0x08, 0x45, 0xa5, 0x82, 0xff, 0x40, 0x36, 0x7f, 0x52, 0x26, - 0xbf, 0x52, 0x54, 0xca, 0xc5, 0xae, 0xa9, 0x0a, 0x49, 0x9c, 0x04, 0x82, 0xab, 0xa0, 0xca, 0xfc, - 0x48, 0xdd, 0x57, 0x77, 0xdf, 0x3b, 0x3d, 0xea, 0x96, 0xd7, 0x06, 0xfe, 0xec, 0xce, 0xdc, 0x73, - 0xbe, 0xd3, 0xe7, 0x9e, 0xd7, 0x3d, 0x7d, 0xef, 0xd5, 0xc0, 0xab, 0x4b, 0x30, 0xbd, 0x63, 0xdb, - 0x3b, 0x0d, 0x74, 0xba, 0xd5, 0xb6, 0x5d, 0xfb, 0xfa, 0xde, 0xf6, 0xe9, 0x1a, 0x72, 0xaa, 0xed, - 0x7a, 0xcb, 0xb5, 0xdb, 0x73, 0x64, 0x4c, 0x1f, 0xa1, 0x1c, 0x73, 0x9c, 0x23, 0xb3, 0x0a, 0xa3, - 0x97, 0xeb, 0x0d, 0x54, 0xf4, 0x18, 0x37, 0x90, 0xab, 0x5f, 0x80, 0xe4, 0x76, 0xbd, 0x81, 0xd2, - 0xca, 0xb4, 0x3a, 0x33, 0xb0, 0x70, 0x72, 0x4e, 0x02, 0xcd, 0x89, 0x88, 0x75, 0x3c, 0x6c, 0x10, - 0x44, 0xe6, 0x7b, 0x49, 0x18, 0x0b, 0xa1, 0xea, 0x3a, 0x24, 0x2d, 0xb3, 0x89, 0x25, 0x2a, 0x33, - 0xfd, 0x06, 0xf9, 0xac, 0xa7, 0xe1, 0x48, 0xcb, 0xac, 0x3e, 0x69, 0xee, 0xa0, 0x74, 0x82, 0x0c, - 0xf3, 0xaf, 0xfa, 0x24, 0x40, 0x0d, 0xb5, 0x90, 0x55, 0x43, 0x56, 0x75, 0x3f, 0xad, 0x4e, 0xab, - 0x33, 0xfd, 0x46, 0x60, 0x44, 0x7f, 0x07, 0x8c, 0xb6, 0xf6, 0xae, 0x37, 0xea, 0xd5, 0x4a, 0x80, - 0x0d, 0xa6, 0xd5, 0x99, 0x5e, 0x43, 0xa3, 0x84, 0xa2, 0xcf, 0x7c, 0x1f, 0x8c, 0x3c, 0x8d, 0xcc, - 0x27, 0x83, 0xac, 0x03, 0x84, 0x75, 0x18, 0x0f, 0x07, 0x18, 0x0b, 0x30, 0xd8, 0x44, 0x8e, 0x63, - 0xee, 0xa0, 0x8a, 0xbb, 0xdf, 0x42, 0xe9, 0x24, 0x99, 0xfd, 0x74, 0xc7, 0xec, 0xe5, 0x99, 0x0f, - 0x30, 0xd4, 0xe6, 0x7e, 0x0b, 0xe9, 0x39, 0xe8, 0x47, 0xd6, 0x5e, 0x93, 0x4a, 0xe8, 0xed, 0x62, - 0xbf, 0x92, 0xb5, 0xd7, 0x94, 0xa5, 0xa4, 0x30, 0x8c, 0x89, 0x38, 0xe2, 0xa0, 0xf6, 0x53, 0xf5, - 0x2a, 0x4a, 0xf7, 0x11, 0x01, 0xf7, 0x75, 0x08, 0xd8, 0xa0, 0x74, 0x59, 0x06, 0xc7, 0xe9, 0x05, - 0xe8, 0x47, 0xcf, 0xb8, 0xc8, 0x72, 0xea, 0xb6, 0x95, 0x3e, 0x42, 0x84, 0xdc, 0x1b, 0xe2, 0x45, - 0xd4, 0xa8, 0xc9, 0x22, 0x7c, 0x9c, 0x7e, 0x0e, 0x8e, 0xd8, 0x2d, 0xb7, 0x6e, 0x5b, 0x4e, 0x3a, - 0x35, 0xad, 0xcc, 0x0c, 0x2c, 0x1c, 0x0f, 0x0d, 0x84, 0x35, 0xca, 0x63, 0x70, 0x66, 0x7d, 0x19, - 0x34, 0xc7, 0xde, 0x6b, 0x57, 0x51, 0xa5, 0x6a, 0xd7, 0x50, 0xa5, 0x6e, 0x6d, 0xdb, 0xe9, 0x7e, - 0x22, 0x60, 0xaa, 0x73, 0x22, 0x84, 0xb1, 0x60, 0xd7, 0xd0, 0xb2, 0xb5, 0x6d, 0x1b, 0xc3, 0x8e, - 0xf0, 0x5d, 0x1f, 0x87, 0x3e, 0x67, 0xdf, 0x72, 0xcd, 0x67, 0xd2, 0x83, 0x24, 0x42, 0xd8, 0xb7, - 0xcc, 0x8f, 0x7b, 0x61, 0x24, 0x4e, 0x88, 0x5d, 0x82, 0xde, 0x6d, 0x3c, 0xcb, 0x74, 0xe2, 0x30, - 0x36, 0xa0, 0x18, 0xd1, 0x88, 0x7d, 0x6f, 0xd2, 0x88, 0x39, 0x18, 0xb0, 0x90, 0xe3, 0xa2, 0x1a, - 0x8d, 0x08, 0x35, 0x66, 0x4c, 0x01, 0x05, 0x75, 0x86, 0x54, 0xf2, 0x4d, 0x85, 0xd4, 0xe3, 0x30, - 0xe2, 0xa9, 0x54, 0x69, 0x9b, 0xd6, 0x0e, 0x8f, 0xcd, 0xd3, 0x51, 0x9a, 0xcc, 0x95, 0x38, 0xce, - 0xc0, 0x30, 0x63, 0x18, 0x09, 0xdf, 0xf5, 0x22, 0x80, 0x6d, 0x21, 0x7b, 0xbb, 0x52, 0x43, 0xd5, - 0x46, 0x3a, 0xd5, 0xc5, 0x4a, 0x6b, 0x98, 0xa5, 0xc3, 0x4a, 0x36, 0x1d, 0xad, 0x36, 0xf4, 0x8b, - 0x7e, 0xa8, 0x1d, 0xe9, 0x12, 0x29, 0xab, 0x34, 0xc9, 0x3a, 0xa2, 0x6d, 0x0b, 0x86, 0xdb, 0x08, - 0xc7, 0x3d, 0xaa, 0xb1, 0x99, 0xf5, 0x13, 0x25, 0xe6, 0x22, 0x67, 0x66, 0x30, 0x18, 0x9d, 0xd8, - 0x50, 0x3b, 0xf8, 0x55, 0xbf, 0x07, 0xbc, 0x81, 0x0a, 0x09, 0x2b, 0x20, 0x55, 0x68, 0x90, 0x0f, - 0x96, 0xcd, 0x26, 0x9a, 0xb8, 0x00, 0xc3, 0xa2, 0x79, 0xf4, 0xa3, 0xd0, 0xeb, 0xb8, 0x66, 0xdb, - 0x25, 0x51, 0xd8, 0x6b, 0xd0, 0x2f, 0xba, 0x06, 0x2a, 0xb2, 0x6a, 0xa4, 0xca, 0xf5, 0x1a, 0xf8, - 0xe3, 0xc4, 0x79, 0x18, 0x12, 0x1e, 0x1f, 0x17, 0x98, 0xf9, 0x68, 0x1f, 0x1c, 0x0d, 0x8b, 0xb9, - 0xd0, 0xf0, 0x1f, 0x87, 0x3e, 0x6b, 0xaf, 0x79, 0x1d, 0xb5, 0xd3, 0x2a, 0x91, 0xc0, 0xbe, 0xe9, - 0x39, 0xe8, 0x6d, 0x98, 0xd7, 0x51, 0x23, 0x9d, 0x9c, 0x56, 0x66, 0x86, 0x17, 0xde, 0x11, 0x2b, - 0xaa, 0xe7, 0x56, 0x30, 0xc4, 0xa0, 0x48, 0xfd, 0x61, 0x48, 0xb2, 0x12, 0x87, 0x25, 0xcc, 0xc6, - 0x93, 0x80, 0x63, 0xd1, 0x20, 0x38, 0xfd, 0x2e, 0xe8, 0xc7, 0xff, 0x53, 0xdb, 0xf6, 0x11, 0x9d, - 0x53, 0x78, 0x00, 0xdb, 0x55, 0x9f, 0x80, 0x14, 0x09, 0xb3, 0x1a, 0xe2, 0x4b, 0x83, 0xf7, 0x1d, - 0x3b, 0xa6, 0x86, 0xb6, 0xcd, 0xbd, 0x86, 0x5b, 0x79, 0xca, 0x6c, 0xec, 0x21, 0x12, 0x30, 0xfd, - 0xc6, 0x20, 0x1b, 0x7c, 0x0f, 0x1e, 0xd3, 0xa7, 0x60, 0x80, 0x46, 0x65, 0xdd, 0xaa, 0xa1, 0x67, - 0x48, 0xf5, 0xe9, 0x35, 0x68, 0xa0, 0x2e, 0xe3, 0x11, 0xfc, 0xf8, 0x27, 0x1c, 0xdb, 0xe2, 0xae, - 0x25, 0x8f, 0xc0, 0x03, 0xe4, 0xf1, 0xe7, 0xe5, 0xc2, 0x77, 0x77, 0xf8, 0xf4, 0xe4, 0x58, 0xcc, - 0x7c, 0x35, 0x01, 0x49, 0x92, 0x6f, 0x23, 0x30, 0xb0, 0x79, 0x6d, 0xbd, 0x54, 0x29, 0xae, 0x6d, - 0xe5, 0x57, 0x4a, 0x9a, 0xa2, 0x0f, 0x03, 0x90, 0x81, 0xcb, 0x2b, 0x6b, 0xb9, 0x4d, 0x2d, 0xe1, - 0x7d, 0x5f, 0x2e, 0x6f, 0x9e, 0x5b, 0xd4, 0x54, 0x0f, 0xb0, 0x45, 0x07, 0x92, 0x41, 0x86, 0xb3, - 0x0b, 0x5a, 0xaf, 0xae, 0xc1, 0x20, 0x15, 0xb0, 0xfc, 0x78, 0xa9, 0x78, 0x6e, 0x51, 0xeb, 0x13, - 0x47, 0xce, 0x2e, 0x68, 0x47, 0xf4, 0x21, 0xe8, 0x27, 0x23, 0xf9, 0xb5, 0xb5, 0x15, 0x2d, 0xe5, - 0xc9, 0xdc, 0xd8, 0x34, 0x96, 0xcb, 0x57, 0xb4, 0x7e, 0x4f, 0xe6, 0x15, 0x63, 0x6d, 0x6b, 0x5d, - 0x03, 0x4f, 0xc2, 0x6a, 0x69, 0x63, 0x23, 0x77, 0xa5, 0xa4, 0x0d, 0x78, 0x1c, 0xf9, 0x6b, 0x9b, - 0xa5, 0x0d, 0x6d, 0x50, 0x50, 0xeb, 0xec, 0x82, 0x36, 0xe4, 0x3d, 0xa2, 0x54, 0xde, 0x5a, 0xd5, - 0x86, 0xf5, 0x51, 0x18, 0xa2, 0x8f, 0xe0, 0x4a, 0x8c, 0x48, 0x43, 0xe7, 0x16, 0x35, 0xcd, 0x57, - 0x84, 0x4a, 0x19, 0x15, 0x06, 0xce, 0x2d, 0x6a, 0x7a, 0xa6, 0x00, 0xbd, 0x24, 0xba, 0x74, 0x1d, - 0x86, 0x57, 0x72, 0xf9, 0xd2, 0x4a, 0x65, 0x6d, 0x7d, 0x73, 0x79, 0xad, 0x9c, 0x5b, 0xd1, 0x14, - 0x7f, 0xcc, 0x28, 0xbd, 0x7b, 0x6b, 0xd9, 0x28, 0x15, 0xb5, 0x44, 0x70, 0x6c, 0xbd, 0x94, 0xdb, - 0x2c, 0x15, 0x35, 0x35, 0x53, 0x85, 0xa3, 0x61, 0x75, 0x26, 0x34, 0x33, 0x02, 0x2e, 0x4e, 0x74, - 0x71, 0x31, 0x91, 0xd5, 0xe1, 0xe2, 0xcf, 0x28, 0x30, 0x16, 0x52, 0x6b, 0x43, 0x1f, 0xf2, 0x08, - 0xf4, 0xd2, 0x10, 0xa5, 0xab, 0xcf, 0xfd, 0xa1, 0x45, 0x9b, 0x04, 0x6c, 0xc7, 0x0a, 0x44, 0x70, - 0xc1, 0x15, 0x58, 0xed, 0xb2, 0x02, 0x63, 0x11, 0x1d, 0x4a, 0x7e, 0x40, 0x81, 0x74, 0x37, 0xd9, - 0x11, 0x85, 0x22, 0x21, 0x14, 0x8a, 0x4b, 0xb2, 0x02, 0x27, 0xba, 0xcf, 0xa1, 0x43, 0x8b, 0xcf, - 0x29, 0x30, 0x1e, 0xde, 0xa8, 0x84, 0xea, 0xf0, 0x30, 0xf4, 0x35, 0x91, 0xbb, 0x6b, 0xf3, 0xc5, - 0xfa, 0x54, 0xc8, 0x12, 0x80, 0xc9, 0xb2, 0xad, 0x18, 0x2a, 0xb8, 0x86, 0xa8, 0xdd, 0xba, 0x0d, - 0xaa, 0x4d, 0x87, 0xa6, 0x1f, 0x4e, 0xc0, 0x1d, 0xa1, 0xc2, 0x43, 0x15, 0xbd, 0x1b, 0xa0, 0x6e, - 0xb5, 0xf6, 0x5c, 0xba, 0x20, 0xd3, 0xfa, 0xd4, 0x4f, 0x46, 0x48, 0xee, 0xe3, 0xda, 0xb3, 0xe7, - 0x7a, 0x74, 0x95, 0xd0, 0x81, 0x0e, 0x11, 0x86, 0x0b, 0xbe, 0xa2, 0x49, 0xa2, 0xe8, 0x64, 0x97, - 0x99, 0x76, 0xac, 0x75, 0xf3, 0xa0, 0x55, 0x1b, 0x75, 0x64, 0xb9, 0x15, 0xc7, 0x6d, 0x23, 0xb3, - 0x59, 0xb7, 0x76, 0x48, 0x01, 0x4e, 0x65, 0x7b, 0xb7, 0xcd, 0x86, 0x83, 0x8c, 0x11, 0x4a, 0xde, - 0xe0, 0x54, 0x8c, 0x20, 0xab, 0x4c, 0x3b, 0x80, 0xe8, 0x13, 0x10, 0x94, 0xec, 0x21, 0x32, 0x5f, - 0x3c, 0x02, 0x03, 0x81, 0xb6, 0x4e, 0x3f, 0x01, 0x83, 0x4f, 0x98, 0x4f, 0x99, 0x15, 0xde, 0xaa, - 0x53, 0x4b, 0x0c, 0xe0, 0xb1, 0x75, 0xd6, 0xae, 0xcf, 0xc3, 0x51, 0xc2, 0x62, 0xef, 0xb9, 0xa8, - 0x5d, 0xa9, 0x36, 0x4c, 0xc7, 0x21, 0x46, 0x4b, 0x11, 0x56, 0x1d, 0xd3, 0xd6, 0x30, 0xa9, 0xc0, - 0x29, 0xfa, 0x12, 0x8c, 0x11, 0x44, 0x73, 0xaf, 0xe1, 0xd6, 0x5b, 0x0d, 0x54, 0xc1, 0x2f, 0x0f, - 0x0e, 0x29, 0xc4, 0x9e, 0x66, 0xa3, 0x98, 0x63, 0x95, 0x31, 0x60, 0x8d, 0x1c, 0xbd, 0x08, 0x77, - 0x13, 0xd8, 0x0e, 0xb2, 0x50, 0xdb, 0x74, 0x51, 0x05, 0xbd, 0x6f, 0xcf, 0x6c, 0x38, 0x15, 0xd3, - 0xaa, 0x55, 0x76, 0x4d, 0x67, 0x37, 0x7d, 0x14, 0x0b, 0xc8, 0x27, 0xd2, 0x8a, 0x71, 0x27, 0x66, - 0xbc, 0xc2, 0xf8, 0x4a, 0x84, 0x2d, 0x67, 0xd5, 0x1e, 0x35, 0x9d, 0x5d, 0x3d, 0x0b, 0xe3, 0x44, - 0x8a, 0xe3, 0xb6, 0xeb, 0xd6, 0x4e, 0xa5, 0xba, 0x8b, 0xaa, 0x4f, 0x56, 0xf6, 0xdc, 0xed, 0x0b, - 0xe9, 0xbb, 0x82, 0xcf, 0x27, 0x1a, 0x6e, 0x10, 0x9e, 0x02, 0x66, 0xd9, 0x72, 0xb7, 0x2f, 0xe8, - 0x1b, 0x30, 0x88, 0x9d, 0xd1, 0xac, 0x3f, 0x8b, 0x2a, 0xdb, 0x76, 0x9b, 0xac, 0x2c, 0xc3, 0x21, - 0x99, 0x1d, 0xb0, 0xe0, 0xdc, 0x1a, 0x03, 0xac, 0xda, 0x35, 0x94, 0xed, 0xdd, 0x58, 0x2f, 0x95, - 0x8a, 0xc6, 0x00, 0x97, 0x72, 0xd9, 0x6e, 0xe3, 0x80, 0xda, 0xb1, 0x3d, 0x03, 0x0f, 0xd0, 0x80, - 0xda, 0xb1, 0xb9, 0x79, 0x97, 0x60, 0xac, 0x5a, 0xa5, 0x73, 0xae, 0x57, 0x2b, 0xac, 0xc5, 0x77, - 0xd2, 0x9a, 0x60, 0xac, 0x6a, 0xf5, 0x0a, 0x65, 0x60, 0x31, 0xee, 0xe8, 0x17, 0xe1, 0x0e, 0xdf, - 0x58, 0x41, 0xe0, 0x68, 0xc7, 0x2c, 0x65, 0xe8, 0x12, 0x8c, 0xb5, 0xf6, 0x3b, 0x81, 0xba, 0xf0, - 0xc4, 0xd6, 0xbe, 0x0c, 0xbb, 0x97, 0xbc, 0xb6, 0xb5, 0x51, 0xd5, 0x74, 0x51, 0x2d, 0x7d, 0x2c, - 0xc8, 0x1d, 0x20, 0xe8, 0xa7, 0x41, 0xab, 0x56, 0x2b, 0xc8, 0x32, 0xaf, 0x37, 0x50, 0xc5, 0x6c, - 0x23, 0xcb, 0x74, 0xd2, 0x53, 0x41, 0xe6, 0xe1, 0x6a, 0xb5, 0x44, 0xa8, 0x39, 0x42, 0xd4, 0x67, - 0x61, 0xd4, 0xbe, 0xfe, 0x44, 0x95, 0x46, 0x56, 0xa5, 0xd5, 0x46, 0xdb, 0xf5, 0x67, 0xd2, 0x27, - 0x89, 0x99, 0x46, 0x30, 0x81, 0xc4, 0xd5, 0x3a, 0x19, 0xd6, 0xef, 0x07, 0xad, 0xea, 0xec, 0x9a, - 0xed, 0x16, 0x59, 0xda, 0x9d, 0x96, 0x59, 0x45, 0xe9, 0x7b, 0x29, 0x2b, 0x1d, 0x2f, 0xf3, 0x61, - 0x1c, 0xd9, 0xce, 0xd3, 0xf5, 0x6d, 0x97, 0x4b, 0xbc, 0x8f, 0x46, 0x36, 0x19, 0x63, 0xd2, 0x1e, - 0x87, 0xa3, 0x7b, 0x56, 0xdd, 0x72, 0x51, 0xbb, 0xd5, 0x46, 0xb8, 0x89, 0xa7, 0x99, 0x98, 0xfe, - 0xf7, 0x23, 0x5d, 0xda, 0xf0, 0xad, 0x20, 0x37, 0x0d, 0x00, 0x63, 0x6c, 0xaf, 0x73, 0x30, 0x93, - 0x85, 0xc1, 0x60, 0x5c, 0xe8, 0xfd, 0x40, 0x23, 0x43, 0x53, 0xf0, 0x1a, 0x5b, 0x58, 0x2b, 0xe2, - 0xd5, 0xf1, 0xbd, 0x25, 0x2d, 0x81, 0x57, 0xe9, 0x95, 0xe5, 0xcd, 0x52, 0xc5, 0xd8, 0x2a, 0x6f, - 0x2e, 0xaf, 0x96, 0x34, 0x75, 0xb6, 0x3f, 0xf5, 0xfd, 0x23, 0xda, 0x73, 0xcf, 0x3d, 0xf7, 0x5c, - 0x22, 0xf3, 0xcd, 0x04, 0x0c, 0x8b, 0x9d, 0xb1, 0xfe, 0x4e, 0x38, 0xc6, 0x5f, 0x63, 0x1d, 0xe4, - 0x56, 0x9e, 0xae, 0xb7, 0x49, 0xa8, 0x36, 0x4d, 0xda, 0x5b, 0x7a, 0x56, 0x3e, 0xca, 0xb8, 0x36, - 0x90, 0xfb, 0x58, 0xbd, 0x8d, 0x03, 0xb1, 0x69, 0xba, 0xfa, 0x0a, 0x4c, 0x59, 0x76, 0xc5, 0x71, - 0x4d, 0xab, 0x66, 0xb6, 0x6b, 0x15, 0x7f, 0x03, 0xa1, 0x62, 0x56, 0xab, 0xc8, 0x71, 0x6c, 0xba, - 0x44, 0x78, 0x52, 0x8e, 0x5b, 0xf6, 0x06, 0x63, 0xf6, 0x6b, 0x67, 0x8e, 0xb1, 0x4a, 0x11, 0xa1, - 0x76, 0x8b, 0x88, 0xbb, 0xa0, 0xbf, 0x69, 0xb6, 0x2a, 0xc8, 0x72, 0xdb, 0xfb, 0xa4, 0x9f, 0x4b, - 0x19, 0xa9, 0xa6, 0xd9, 0x2a, 0xe1, 0xef, 0x6f, 0x9f, 0x0f, 0x82, 0x76, 0xfc, 0x37, 0x15, 0x06, - 0x83, 0x3d, 0x1d, 0x6e, 0x91, 0xab, 0xa4, 0x7e, 0x2b, 0x24, 0xc3, 0xef, 0x39, 0xb0, 0x03, 0x9c, - 0x2b, 0xe0, 0xc2, 0x9e, 0xed, 0xa3, 0x9d, 0x96, 0x41, 0x91, 0x78, 0x51, 0xc5, 0x39, 0x8d, 0x68, - 0xff, 0x9e, 0x32, 0xd8, 0x37, 0xfd, 0x0a, 0xf4, 0x3d, 0xe1, 0x10, 0xd9, 0x7d, 0x44, 0xf6, 0xc9, - 0x83, 0x65, 0x5f, 0xdd, 0x20, 0xc2, 0xfb, 0xaf, 0x6e, 0x54, 0xca, 0x6b, 0xc6, 0x6a, 0x6e, 0xc5, - 0x60, 0x70, 0xfd, 0x4e, 0x48, 0x36, 0xcc, 0x67, 0xf7, 0xc5, 0x25, 0x80, 0x0c, 0xc5, 0x35, 0xfc, - 0x9d, 0x90, 0x7c, 0x1a, 0x99, 0x4f, 0x8a, 0x85, 0x97, 0x0c, 0xbd, 0x8d, 0xa1, 0x7f, 0x1a, 0x7a, - 0x89, 0xbd, 0x74, 0x00, 0x66, 0x31, 0xad, 0x47, 0x4f, 0x41, 0xb2, 0xb0, 0x66, 0xe0, 0xf0, 0xd7, - 0x60, 0x90, 0x8e, 0x56, 0xd6, 0x97, 0x4b, 0x85, 0x92, 0x96, 0xc8, 0x2c, 0x41, 0x1f, 0x35, 0x02, - 0x4e, 0x0d, 0xcf, 0x0c, 0x5a, 0x0f, 0xfb, 0xca, 0x64, 0x28, 0x9c, 0xba, 0xb5, 0x9a, 0x2f, 0x19, - 0x5a, 0x22, 0xe8, 0x5e, 0x07, 0x06, 0x83, 0xed, 0xdc, 0xcf, 0x26, 0xa6, 0xbe, 0xae, 0xc0, 0x40, - 0xa0, 0x3d, 0xc3, 0x8d, 0x81, 0xd9, 0x68, 0xd8, 0x4f, 0x57, 0xcc, 0x46, 0xdd, 0x74, 0x58, 0x50, - 0x00, 0x19, 0xca, 0xe1, 0x91, 0xb8, 0x4e, 0xfb, 0x99, 0x28, 0xff, 0xbc, 0x02, 0x9a, 0xdc, 0xda, - 0x49, 0x0a, 0x2a, 0x3f, 0x57, 0x05, 0x3f, 0xa1, 0xc0, 0xb0, 0xd8, 0xcf, 0x49, 0xea, 0x9d, 0xf8, - 0xb9, 0xaa, 0xf7, 0xdd, 0x04, 0x0c, 0x09, 0x5d, 0x5c, 0x5c, 0xed, 0xde, 0x07, 0xa3, 0xf5, 0x1a, - 0x6a, 0xb6, 0x6c, 0x17, 0x59, 0xd5, 0xfd, 0x4a, 0x03, 0x3d, 0x85, 0x1a, 0xe9, 0x0c, 0x29, 0x14, - 0xa7, 0x0f, 0xee, 0x13, 0xe7, 0x96, 0x7d, 0xdc, 0x0a, 0x86, 0x65, 0xc7, 0x96, 0x8b, 0xa5, 0xd5, - 0xf5, 0xb5, 0xcd, 0x52, 0xb9, 0x70, 0xad, 0xb2, 0x55, 0x7e, 0x57, 0x79, 0xed, 0xb1, 0xb2, 0xa1, - 0xd5, 0x25, 0xb6, 0xb7, 0x31, 0xd5, 0xd7, 0x41, 0x93, 0x95, 0xd2, 0x8f, 0x41, 0x98, 0x5a, 0x5a, - 0x8f, 0x3e, 0x06, 0x23, 0xe5, 0xb5, 0xca, 0xc6, 0x72, 0xb1, 0x54, 0x29, 0x5d, 0xbe, 0x5c, 0x2a, - 0x6c, 0x6e, 0xd0, 0x17, 0x67, 0x8f, 0x7b, 0x53, 0x4c, 0xea, 0x8f, 0xab, 0x30, 0x16, 0xa2, 0x89, - 0x9e, 0x63, 0x3d, 0x3b, 0x7d, 0x8d, 0x78, 0x30, 0x8e, 0xf6, 0x73, 0xb8, 0x2b, 0x58, 0x37, 0xdb, - 0x2e, 0x6b, 0xf1, 0xef, 0x07, 0x6c, 0x25, 0xcb, 0xad, 0x6f, 0xd7, 0x51, 0x9b, 0xed, 0x33, 0xd0, - 0x46, 0x7e, 0xc4, 0x1f, 0xa7, 0x5b, 0x0d, 0x0f, 0x80, 0xde, 0xb2, 0x9d, 0xba, 0x5b, 0x7f, 0x0a, - 0x55, 0xea, 0x16, 0xdf, 0x94, 0xc0, 0x8d, 0x7d, 0xd2, 0xd0, 0x38, 0x65, 0xd9, 0x72, 0x3d, 0x6e, - 0x0b, 0xed, 0x98, 0x12, 0x37, 0x2e, 0xe0, 0xaa, 0xa1, 0x71, 0x8a, 0xc7, 0x7d, 0x02, 0x06, 0x6b, - 0xf6, 0x1e, 0x6e, 0x93, 0x28, 0x1f, 0x5e, 0x2f, 0x14, 0x63, 0x80, 0x8e, 0x79, 0x2c, 0xac, 0x8f, - 0xf5, 0x77, 0x43, 0x06, 0x8d, 0x01, 0x3a, 0x46, 0x59, 0xee, 0x83, 0x11, 0x73, 0x67, 0xa7, 0x8d, - 0x85, 0x73, 0x41, 0xb4, 0x33, 0x1f, 0xf6, 0x86, 0x09, 0xe3, 0xc4, 0x55, 0x48, 0x71, 0x3b, 0xe0, - 0x25, 0x19, 0x5b, 0xa2, 0xd2, 0xa2, 0x7b, 0x52, 0x89, 0x99, 0x7e, 0x23, 0x65, 0x71, 0xe2, 0x09, - 0x18, 0xac, 0x3b, 0x15, 0x7f, 0x73, 0x34, 0x31, 0x9d, 0x98, 0x49, 0x19, 0x03, 0x75, 0xc7, 0xdb, - 0x0d, 0xcb, 0x7c, 0x2e, 0x01, 0xc3, 0xe2, 0xe6, 0xae, 0x5e, 0x84, 0x54, 0xc3, 0xae, 0x9a, 0x24, - 0xb4, 0xe8, 0xc9, 0xc2, 0x4c, 0xc4, 0x7e, 0xf0, 0xdc, 0x0a, 0xe3, 0x37, 0x3c, 0xe4, 0xc4, 0x3f, - 0x2b, 0x90, 0xe2, 0xc3, 0xfa, 0x38, 0x24, 0x5b, 0xa6, 0xbb, 0x4b, 0xc4, 0xf5, 0xe6, 0x13, 0x9a, - 0x62, 0x90, 0xef, 0x78, 0xdc, 0x69, 0x99, 0x16, 0x09, 0x01, 0x36, 0x8e, 0xbf, 0x63, 0xbf, 0x36, - 0x90, 0x59, 0x23, 0x6d, 0xbf, 0xdd, 0x6c, 0x22, 0xcb, 0x75, 0xb8, 0x5f, 0xd9, 0x78, 0x81, 0x0d, - 0xeb, 0xef, 0x80, 0x51, 0xb7, 0x6d, 0xd6, 0x1b, 0x02, 0x6f, 0x92, 0xf0, 0x6a, 0x9c, 0xe0, 0x31, - 0x67, 0xe1, 0x4e, 0x2e, 0xb7, 0x86, 0x5c, 0xb3, 0xba, 0x8b, 0x6a, 0x3e, 0xa8, 0x8f, 0xec, 0x1c, - 0x1e, 0x63, 0x0c, 0x45, 0x46, 0xe7, 0xd8, 0xcc, 0xb7, 0x15, 0x18, 0xe5, 0x2f, 0x2a, 0x35, 0xcf, - 0x58, 0xab, 0x00, 0xa6, 0x65, 0xd9, 0x6e, 0xd0, 0x5c, 0x9d, 0xa1, 0xdc, 0x81, 0x9b, 0xcb, 0x79, - 0x20, 0x23, 0x20, 0x60, 0xa2, 0x09, 0xe0, 0x53, 0xba, 0x9a, 0x6d, 0x0a, 0x06, 0xd8, 0xce, 0x3d, - 0x39, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x87, 0xf0, 0x1b, 0x8d, 0x7e, 0x14, 0x7a, 0xaf, 0xa3, 0x9d, - 0xba, 0xc5, 0xf6, 0x13, 0xe9, 0x17, 0xbe, 0x4b, 0x99, 0xf4, 0x76, 0x29, 0xf3, 0x8f, 0xc3, 0x58, - 0xd5, 0x6e, 0xca, 0xea, 0xe6, 0x35, 0xe9, 0xf5, 0xda, 0x79, 0x54, 0x79, 0x2f, 0xf8, 0x2d, 0xe6, - 0x67, 0x12, 0xea, 0x95, 0xf5, 0xfc, 0x17, 0x12, 0x13, 0x57, 0x28, 0x6e, 0x9d, 0x4f, 0xd3, 0x40, - 0xdb, 0x0d, 0x54, 0xc5, 0xaa, 0xc3, 0x8f, 0x4e, 0xc1, 0x83, 0x3b, 0x75, 0x77, 0x77, 0xef, 0xfa, - 0x5c, 0xd5, 0x6e, 0x9e, 0xde, 0xb1, 0x77, 0x6c, 0xff, 0xb8, 0x0b, 0x7f, 0x23, 0x5f, 0xc8, 0x27, - 0x76, 0xe4, 0xd5, 0xef, 0x8d, 0x4e, 0x44, 0x9e, 0x8f, 0x65, 0xcb, 0x30, 0xc6, 0x98, 0x2b, 0x64, - 0xcf, 0x9d, 0xbe, 0x1a, 0xe8, 0x07, 0xee, 0xbb, 0xa4, 0xbf, 0xfc, 0x3d, 0xb2, 0x56, 0x1b, 0xa3, - 0x0c, 0x8a, 0x69, 0xf4, 0x05, 0x22, 0x6b, 0xc0, 0x1d, 0x82, 0x3c, 0x9a, 0x97, 0xa8, 0x1d, 0x21, - 0xf1, 0x9b, 0x4c, 0xe2, 0x58, 0x40, 0xe2, 0x06, 0x83, 0x66, 0x0b, 0x30, 0x74, 0x18, 0x59, 0xdf, - 0x62, 0xb2, 0x06, 0x51, 0x50, 0xc8, 0x15, 0x18, 0x21, 0x42, 0xaa, 0x7b, 0x8e, 0x6b, 0x37, 0x49, - 0xd1, 0x3b, 0x58, 0xcc, 0x3f, 0x7e, 0x8f, 0x26, 0xca, 0x30, 0x86, 0x15, 0x3c, 0x54, 0x36, 0x0b, - 0xe4, 0x98, 0xa1, 0x86, 0xaa, 0x8d, 0x08, 0x09, 0x37, 0x98, 0x22, 0x1e, 0x7f, 0xf6, 0x3d, 0x70, - 0x14, 0x7f, 0x26, 0x35, 0x29, 0xa8, 0x49, 0xf4, 0x2e, 0x53, 0xfa, 0xdb, 0x1f, 0xa0, 0xb9, 0x38, - 0xe6, 0x09, 0x08, 0xe8, 0x14, 0xf0, 0xe2, 0x0e, 0x72, 0x5d, 0xd4, 0x76, 0x2a, 0x66, 0x23, 0x4c, - 0xbd, 0xc0, 0x6b, 0x7a, 0xfa, 0x63, 0xaf, 0x89, 0x5e, 0xbc, 0x42, 0x91, 0xb9, 0x46, 0x23, 0xbb, - 0x05, 0xc7, 0x42, 0xa2, 0x22, 0x86, 0xcc, 0x8f, 0x33, 0x99, 0x47, 0x3b, 0x22, 0x03, 0x8b, 0x5d, - 0x07, 0x3e, 0xee, 0xf9, 0x32, 0x86, 0xcc, 0x3f, 0x61, 0x32, 0x75, 0x86, 0xe5, 0x2e, 0xc5, 0x12, - 0xaf, 0xc2, 0xe8, 0x53, 0xa8, 0x7d, 0xdd, 0x76, 0xd8, 0xd6, 0x48, 0x0c, 0x71, 0x9f, 0x60, 0xe2, - 0x46, 0x18, 0x90, 0xec, 0x95, 0x60, 0x59, 0x17, 0x21, 0xb5, 0x6d, 0x56, 0x51, 0x0c, 0x11, 0x9f, - 0x64, 0x22, 0x8e, 0x60, 0x7e, 0x0c, 0xcd, 0xc1, 0xe0, 0x8e, 0xcd, 0x96, 0xa5, 0x68, 0xf8, 0xf3, - 0x0c, 0x3e, 0xc0, 0x31, 0x4c, 0x44, 0xcb, 0x6e, 0xed, 0x35, 0xf0, 0x9a, 0x15, 0x2d, 0xe2, 0x53, - 0x5c, 0x04, 0xc7, 0x30, 0x11, 0x87, 0x30, 0xeb, 0x0b, 0x5c, 0x84, 0x13, 0xb0, 0xe7, 0x23, 0x30, - 0x60, 0x5b, 0x8d, 0x7d, 0xdb, 0x8a, 0xa3, 0xc4, 0xa7, 0x99, 0x04, 0x60, 0x10, 0x2c, 0xe0, 0x12, - 0xf4, 0xc7, 0x75, 0xc4, 0x67, 0x5f, 0xe3, 0xe9, 0xc1, 0x3d, 0x70, 0x05, 0x46, 0x78, 0x81, 0xaa, - 0xdb, 0x56, 0x0c, 0x11, 0x7f, 0xc6, 0x44, 0x0c, 0x07, 0x60, 0x6c, 0x1a, 0x2e, 0x72, 0xdc, 0x1d, - 0x14, 0x47, 0xc8, 0xe7, 0xf8, 0x34, 0x18, 0x84, 0x99, 0xf2, 0x3a, 0xb2, 0xaa, 0xbb, 0xf1, 0x24, - 0xbc, 0xc8, 0x4d, 0xc9, 0x31, 0x58, 0x44, 0x01, 0x86, 0x9a, 0x66, 0xdb, 0xd9, 0x35, 0x1b, 0xb1, - 0xdc, 0xf1, 0x79, 0x26, 0x63, 0xd0, 0x03, 0x31, 0x8b, 0xec, 0x59, 0x87, 0x11, 0xf3, 0x05, 0x6e, - 0x91, 0x00, 0x8c, 0xa5, 0x9e, 0xe3, 0x92, 0x0d, 0xa8, 0xc3, 0x48, 0xfb, 0x22, 0x4f, 0x3d, 0x8a, - 0x5d, 0x0d, 0x4a, 0xbc, 0x04, 0xfd, 0x4e, 0xfd, 0xd9, 0x58, 0x62, 0xfe, 0x9c, 0x7b, 0x9a, 0x00, - 0x30, 0xf8, 0x1a, 0xdc, 0x19, 0xba, 0x4c, 0xc4, 0x10, 0xf6, 0x17, 0x4c, 0xd8, 0x78, 0xc8, 0x52, - 0xc1, 0x4a, 0xc2, 0x61, 0x45, 0xfe, 0x25, 0x2f, 0x09, 0x48, 0x92, 0xb5, 0x8e, 0x5f, 0x14, 0x1c, - 0x73, 0xfb, 0x70, 0x56, 0xfb, 0x2b, 0x6e, 0x35, 0x8a, 0x15, 0xac, 0xb6, 0x09, 0xe3, 0x4c, 0xe2, - 0xe1, 0xfc, 0xfa, 0x25, 0x5e, 0x58, 0x29, 0x7a, 0x4b, 0xf4, 0xee, 0x2f, 0xc1, 0x84, 0x67, 0x4e, - 0xde, 0x91, 0x3a, 0x95, 0xa6, 0xd9, 0x8a, 0x21, 0xf9, 0xcb, 0x4c, 0x32, 0xaf, 0xf8, 0x5e, 0x4b, - 0xeb, 0xac, 0x9a, 0x2d, 0x2c, 0xfc, 0x71, 0x48, 0x73, 0xe1, 0x7b, 0x56, 0x1b, 0x55, 0xed, 0x1d, - 0xab, 0xfe, 0x2c, 0xaa, 0xc5, 0x10, 0xfd, 0xd7, 0x92, 0xab, 0xb6, 0x02, 0x70, 0x2c, 0x79, 0x19, - 0x34, 0xaf, 0x57, 0xa9, 0xd4, 0x9b, 0x2d, 0xbb, 0xed, 0x46, 0x48, 0xfc, 0x1b, 0xee, 0x29, 0x0f, - 0xb7, 0x4c, 0x60, 0xd9, 0x12, 0x0c, 0x93, 0xaf, 0x71, 0x43, 0xf2, 0x2b, 0x4c, 0xd0, 0x90, 0x8f, - 0x62, 0x85, 0xa3, 0x6a, 0x37, 0x5b, 0x66, 0x3b, 0x4e, 0xfd, 0xfb, 0x5b, 0x5e, 0x38, 0x18, 0x84, - 0x15, 0x0e, 0x77, 0xbf, 0x85, 0xf0, 0x6a, 0x1f, 0x43, 0xc2, 0x57, 0x79, 0xe1, 0xe0, 0x18, 0x26, - 0x82, 0x37, 0x0c, 0x31, 0x44, 0xfc, 0x1d, 0x17, 0xc1, 0x31, 0x58, 0xc4, 0xbb, 0xfd, 0x85, 0xb6, - 0x8d, 0x76, 0xea, 0x8e, 0xdb, 0xa6, 0x7d, 0xf0, 0xc1, 0xa2, 0xbe, 0xf6, 0x9a, 0xd8, 0x84, 0x19, - 0x01, 0x68, 0xf6, 0x2a, 0x8c, 0x48, 0x2d, 0x86, 0x1e, 0x75, 0x67, 0x21, 0xfd, 0xab, 0xaf, 0xb3, - 0x62, 0x24, 0x76, 0x18, 0xd9, 0x15, 0xec, 0x77, 0xb1, 0x0f, 0x88, 0x16, 0xf6, 0x81, 0xd7, 0x3d, - 0xd7, 0x0b, 0x6d, 0x40, 0xf6, 0x32, 0x0c, 0x09, 0x3d, 0x40, 0xb4, 0xa8, 0x5f, 0x63, 0xa2, 0x06, - 0x83, 0x2d, 0x40, 0x76, 0x09, 0x92, 0x78, 0x3d, 0x8f, 0x86, 0xff, 0x3a, 0x83, 0x13, 0xf6, 0xec, - 0x43, 0x90, 0xe2, 0xeb, 0x78, 0x34, 0xf4, 0x83, 0x0c, 0xea, 0x41, 0x30, 0x9c, 0xaf, 0xe1, 0xd1, - 0xf0, 0xdf, 0xe0, 0x70, 0x0e, 0xc1, 0xf0, 0xf8, 0x26, 0x7c, 0xe9, 0xb7, 0x92, 0xac, 0x0e, 0x73, - 0xdb, 0x5d, 0x82, 0x23, 0x6c, 0xf1, 0x8e, 0x46, 0x7f, 0x98, 0x3d, 0x9c, 0x23, 0xb2, 0xe7, 0xa1, - 0x37, 0xa6, 0xc1, 0x7f, 0x9b, 0x41, 0x29, 0x7f, 0xb6, 0x00, 0x03, 0x81, 0x05, 0x3b, 0x1a, 0xfe, - 0x3b, 0x0c, 0x1e, 0x44, 0x61, 0xd5, 0xd9, 0x82, 0x1d, 0x2d, 0xe0, 0x77, 0xb9, 0xea, 0x0c, 0x81, - 0xcd, 0xc6, 0xd7, 0xea, 0x68, 0xf4, 0xef, 0x71, 0xab, 0x73, 0x48, 0xf6, 0x11, 0xe8, 0xf7, 0xea, - 0x6f, 0x34, 0xfe, 0xf7, 0x19, 0xde, 0xc7, 0x60, 0x0b, 0x04, 0xea, 0x7f, 0xb4, 0x88, 0x3f, 0xe0, - 0x16, 0x08, 0xa0, 0x70, 0x1a, 0xc9, 0x6b, 0x7a, 0xb4, 0xa4, 0x8f, 0xf0, 0x34, 0x92, 0x96, 0x74, - 0xec, 0x4d, 0x52, 0x06, 0xa3, 0x45, 0xfc, 0x21, 0xf7, 0x26, 0xe1, 0xc7, 0x6a, 0xc8, 0x8b, 0x64, - 0xb4, 0x8c, 0x3f, 0xe6, 0x6a, 0x48, 0x6b, 0x64, 0x76, 0x1d, 0xf4, 0xce, 0x05, 0x32, 0x5a, 0xde, - 0x47, 0x99, 0xbc, 0xd1, 0x8e, 0xf5, 0x31, 0xfb, 0x18, 0x8c, 0x87, 0x2f, 0x8e, 0xd1, 0x52, 0x3f, - 0xf6, 0xba, 0xf4, 0x3a, 0x13, 0x5c, 0x1b, 0xb3, 0x9b, 0x7e, 0x95, 0x0d, 0x2e, 0x8c, 0xd1, 0x62, - 0x3f, 0xfe, 0xba, 0x58, 0x68, 0x83, 0xeb, 0x62, 0x36, 0x07, 0xe0, 0xaf, 0x49, 0xd1, 0xb2, 0x3e, - 0xc1, 0x64, 0x05, 0x40, 0x38, 0x35, 0xd8, 0x92, 0x14, 0x8d, 0xff, 0x24, 0x4f, 0x0d, 0x86, 0xc0, - 0xa9, 0xc1, 0x57, 0xa3, 0x68, 0xf4, 0xf3, 0x3c, 0x35, 0x38, 0x24, 0x7b, 0x09, 0x52, 0xd6, 0x5e, - 0xa3, 0x81, 0x63, 0x4b, 0x3f, 0xf8, 0x1a, 0x51, 0xfa, 0x3f, 0xde, 0x60, 0x60, 0x0e, 0xc8, 0x2e, - 0x41, 0x2f, 0x6a, 0x5e, 0x47, 0xb5, 0x28, 0xe4, 0x7f, 0xbe, 0xc1, 0xeb, 0x09, 0xe6, 0xce, 0x3e, - 0x02, 0x40, 0x5f, 0xa6, 0xc9, 0x29, 0x51, 0x04, 0xf6, 0xbf, 0xde, 0x60, 0x37, 0x14, 0x7c, 0x88, - 0x2f, 0x80, 0xde, 0x77, 0x38, 0x58, 0xc0, 0x6b, 0xa2, 0x00, 0xf2, 0x02, 0x7e, 0x11, 0x8e, 0x3c, - 0xe1, 0xd8, 0x96, 0x6b, 0xee, 0x44, 0xa1, 0xff, 0x9b, 0xa1, 0x39, 0x3f, 0x36, 0x58, 0xd3, 0x6e, - 0x23, 0xd7, 0xdc, 0x71, 0xa2, 0xb0, 0xff, 0xc3, 0xb0, 0x1e, 0x00, 0x83, 0xab, 0xa6, 0xe3, 0xc6, - 0x99, 0xf7, 0xff, 0x72, 0x30, 0x07, 0x60, 0xa5, 0xf1, 0xe7, 0x27, 0xd1, 0x7e, 0x14, 0xf6, 0x07, - 0x5c, 0x69, 0xc6, 0x9f, 0x7d, 0x08, 0xfa, 0xf1, 0x47, 0x7a, 0x6b, 0x27, 0x02, 0xfc, 0x43, 0x06, - 0xf6, 0x11, 0xf8, 0xc9, 0x8e, 0x5b, 0x73, 0xeb, 0xd1, 0xc6, 0xfe, 0x3f, 0xe6, 0x69, 0xce, 0x9f, - 0xcd, 0xc1, 0x80, 0xe3, 0xd6, 0x6a, 0x7b, 0xac, 0xa3, 0x89, 0x80, 0xff, 0xe8, 0x0d, 0xef, 0x25, - 0xd7, 0xc3, 0xe4, 0x4f, 0x84, 0x6f, 0xd6, 0xc1, 0x15, 0xfb, 0x8a, 0x4d, 0xb7, 0xe9, 0xe0, 0x5b, - 0x0d, 0xb8, 0xb3, 0x6a, 0x37, 0xaf, 0xdb, 0xce, 0xe9, 0xeb, 0xb6, 0xbb, 0x7b, 0xda, 0xdd, 0x45, - 0x78, 0xe9, 0x60, 0x3b, 0x6c, 0x49, 0xfc, 0x79, 0xe2, 0x70, 0xdb, 0x72, 0xe4, 0xc4, 0xb5, 0x5c, - 0xc7, 0x9a, 0x95, 0xc9, 0xa6, 0xb7, 0x7e, 0x1c, 0xfa, 0x88, 0xae, 0x67, 0xc8, 0xc1, 0x92, 0x92, - 0x4f, 0xde, 0x78, 0x65, 0xaa, 0xc7, 0x60, 0x63, 0x1e, 0x75, 0x81, 0xec, 0x4a, 0x26, 0x04, 0xea, - 0x82, 0x47, 0x3d, 0x4b, 0x37, 0x26, 0x05, 0xea, 0x59, 0x8f, 0xba, 0x48, 0xb6, 0x28, 0x55, 0x81, - 0xba, 0xe8, 0x51, 0x97, 0xc8, 0x36, 0xfc, 0x90, 0x40, 0x5d, 0xf2, 0xa8, 0xe7, 0xc8, 0xe6, 0x7b, - 0x52, 0xa0, 0x9e, 0xf3, 0xa8, 0xe7, 0xc9, 0xbe, 0xfb, 0xa8, 0x40, 0x3d, 0xef, 0x51, 0x2f, 0x90, - 0xfd, 0x76, 0x5d, 0xa0, 0x5e, 0xf0, 0xa8, 0x17, 0xc9, 0x25, 0x92, 0x23, 0x02, 0xf5, 0xa2, 0x3e, - 0x09, 0x47, 0xe8, 0xcc, 0xe7, 0xc9, 0xe1, 0xec, 0x08, 0x23, 0xf3, 0x41, 0x9f, 0x7e, 0x86, 0x5c, - 0x18, 0xe9, 0x13, 0xe9, 0x67, 0x7c, 0xfa, 0x02, 0xb9, 0x3a, 0xad, 0x89, 0xf4, 0x05, 0x9f, 0x7e, - 0x36, 0x3d, 0x44, 0x2e, 0xcd, 0x08, 0xf4, 0xb3, 0x3e, 0x7d, 0x31, 0x3d, 0x8c, 0xc3, 0x55, 0xa4, - 0x2f, 0xfa, 0xf4, 0xa5, 0xf4, 0xc8, 0xb4, 0x32, 0x33, 0x28, 0xd2, 0x97, 0x32, 0xef, 0x27, 0xee, - 0xb5, 0x7c, 0xf7, 0x8e, 0x8b, 0xee, 0xf5, 0x1c, 0x3b, 0x2e, 0x3a, 0xd6, 0x73, 0xe9, 0xb8, 0xe8, - 0x52, 0xcf, 0x99, 0xe3, 0xa2, 0x33, 0x3d, 0x37, 0x8e, 0x8b, 0x6e, 0xf4, 0x1c, 0x38, 0x2e, 0x3a, - 0xd0, 0x73, 0xdd, 0xb8, 0xe8, 0x3a, 0xcf, 0x69, 0xe3, 0xa2, 0xd3, 0x3c, 0x77, 0x8d, 0x8b, 0xee, - 0xf2, 0x1c, 0x95, 0x96, 0x1c, 0xe5, 0xbb, 0x28, 0x2d, 0xb9, 0xc8, 0x77, 0x4e, 0x5a, 0x72, 0x8e, - 0xef, 0x96, 0xb4, 0xe4, 0x16, 0xdf, 0x21, 0x69, 0xc9, 0x21, 0xbe, 0x2b, 0xd2, 0x92, 0x2b, 0x7c, - 0x27, 0xb0, 0x1c, 0x33, 0x50, 0x2b, 0x24, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, - 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x03, 0x73, - 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x83, 0x73, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, - 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0xb5, 0x6b, 0x8e, 0xf9, 0xee, 0x1d, 0x17, 0xdd, - 0x1b, 0x9a, 0x63, 0x6a, 0x97, 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, 0x39, - 0xa6, 0x76, 0xc9, 0x31, 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x96, 0x63, 0x6a, 0xd7, - 0x1c, 0x53, 0xbb, 0xe6, 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, 0x35, - 0x98, 0x63, 0x7f, 0xaf, 0x82, 0x4e, 0x73, 0x6c, 0x9d, 0x5c, 0xef, 0x61, 0xae, 0x98, 0x94, 0x32, - 0xad, 0x0f, 0xbb, 0x4e, 0xf3, 0x5d, 0x32, 0x29, 0xe5, 0x9a, 0x48, 0x5f, 0xf0, 0xe8, 0x3c, 0xdb, - 0x44, 0xfa, 0x59, 0x8f, 0xce, 0xf3, 0x4d, 0xa4, 0x2f, 0x7a, 0x74, 0x9e, 0x71, 0x22, 0x7d, 0xc9, - 0xa3, 0xf3, 0x9c, 0x13, 0xe9, 0xe7, 0x3c, 0x3a, 0xcf, 0x3a, 0x91, 0x7e, 0xde, 0xa3, 0xf3, 0xbc, - 0x13, 0xe9, 0x17, 0x3c, 0x3a, 0xcf, 0x3c, 0x91, 0x7e, 0x51, 0x9f, 0x96, 0x73, 0x8f, 0x33, 0x78, - 0xae, 0x9d, 0x96, 0xb3, 0x4f, 0xe2, 0x38, 0xe3, 0x73, 0xf0, 0xfc, 0x93, 0x38, 0x16, 0x7c, 0x0e, - 0x9e, 0x81, 0x12, 0xc7, 0xd9, 0xcc, 0x87, 0x88, 0xfb, 0x2c, 0xd9, 0x7d, 0x13, 0x92, 0xfb, 0x12, - 0x01, 0xd7, 0x4d, 0x48, 0xae, 0x4b, 0x04, 0xdc, 0x36, 0x21, 0xb9, 0x2d, 0x11, 0x70, 0xd9, 0x84, - 0xe4, 0xb2, 0x44, 0xc0, 0x5d, 0x13, 0x92, 0xbb, 0x12, 0x01, 0x57, 0x4d, 0x48, 0xae, 0x4a, 0x04, - 0xdc, 0x34, 0x21, 0xb9, 0x29, 0x11, 0x70, 0xd1, 0x84, 0xe4, 0xa2, 0x44, 0xc0, 0x3d, 0x13, 0x92, - 0x7b, 0x12, 0x01, 0xd7, 0x1c, 0x97, 0x5d, 0x93, 0x08, 0xba, 0xe5, 0xb8, 0xec, 0x96, 0x44, 0xd0, - 0x25, 0xc7, 0x65, 0x97, 0x24, 0x82, 0xee, 0x38, 0x2e, 0xbb, 0x23, 0x11, 0x74, 0xc5, 0x4f, 0x13, - 0xbc, 0x23, 0xdc, 0x70, 0xdb, 0x7b, 0x55, 0xf7, 0xb6, 0x3a, 0xc2, 0x79, 0xa1, 0x7d, 0x18, 0x58, - 0xd0, 0xe7, 0x48, 0xc3, 0x1a, 0xec, 0x38, 0xa5, 0x15, 0x6c, 0x5e, 0x68, 0x2c, 0x02, 0x08, 0x2b, - 0x1c, 0xb1, 0x78, 0x5b, 0xbd, 0xe1, 0xbc, 0xd0, 0x66, 0x44, 0xeb, 0x77, 0xe1, 0x6d, 0xef, 0xd8, - 0x5e, 0x4a, 0xf0, 0x8e, 0x8d, 0x99, 0xff, 0xb0, 0x1d, 0xdb, 0x6c, 0xb4, 0xc9, 0x3d, 0x63, 0xcf, - 0x46, 0x1b, 0xbb, 0x63, 0xd5, 0x89, 0xdb, 0xc1, 0xcd, 0x46, 0x9b, 0xd6, 0x33, 0xea, 0x5b, 0xdb, - 0x6f, 0xb1, 0x08, 0x36, 0x50, 0x2b, 0x24, 0x82, 0x0f, 0xdb, 0x6f, 0xcd, 0x0b, 0xa5, 0xe4, 0xb0, - 0x11, 0xac, 0x1e, 0x3a, 0x82, 0x0f, 0xdb, 0x79, 0xcd, 0x0b, 0xe5, 0xe5, 0xd0, 0x11, 0xfc, 0x36, - 0xf4, 0x43, 0x2c, 0x82, 0x7d, 0xf3, 0x1f, 0xb6, 0x1f, 0x9a, 0x8d, 0x36, 0x79, 0x68, 0x04, 0xab, - 0x87, 0x88, 0xe0, 0x38, 0xfd, 0xd1, 0x6c, 0xb4, 0x69, 0xc3, 0x23, 0xf8, 0xb6, 0xbb, 0x99, 0x4f, - 0x29, 0x30, 0x5a, 0xae, 0xd7, 0x4a, 0xcd, 0xeb, 0xa8, 0x56, 0x43, 0x35, 0x66, 0xc7, 0x79, 0xa1, - 0x12, 0x74, 0x71, 0xf5, 0xcb, 0xaf, 0x4c, 0xf9, 0x16, 0x5e, 0x82, 0x14, 0xb5, 0xe9, 0xfc, 0x7c, - 0xfa, 0x86, 0x12, 0x51, 0xe1, 0x3c, 0x56, 0xfd, 0x04, 0x87, 0x9d, 0x99, 0x4f, 0xff, 0x8b, 0x12, - 0xa8, 0x72, 0xde, 0x70, 0xe6, 0x23, 0x44, 0x43, 0xeb, 0xb6, 0x35, 0x3c, 0x1d, 0x4b, 0xc3, 0x80, - 0x6e, 0x77, 0x75, 0xe8, 0x16, 0xd0, 0x6a, 0x0f, 0x46, 0xca, 0xf5, 0x5a, 0x99, 0xfc, 0xd1, 0x6e, - 0x1c, 0x95, 0x28, 0x8f, 0x54, 0x0f, 0xe6, 0x85, 0xb0, 0x0c, 0x22, 0xbc, 0x90, 0x16, 0x6b, 0x44, - 0xa6, 0x8e, 0x1f, 0x6b, 0x09, 0x8f, 0x9d, 0xed, 0xf6, 0x58, 0xbf, 0xb2, 0x7b, 0x0f, 0x9c, 0xed, - 0xf6, 0x40, 0x3f, 0x87, 0xbc, 0x47, 0x3d, 0xc3, 0x17, 0x67, 0x7a, 0xcf, 0x46, 0x3f, 0x0e, 0x89, - 0x65, 0x7a, 0x07, 0x78, 0x30, 0x3f, 0x88, 0x95, 0xfa, 0xce, 0x2b, 0x53, 0xc9, 0xad, 0xbd, 0x7a, - 0xcd, 0x48, 0x2c, 0xd7, 0xf4, 0xab, 0xd0, 0xfb, 0x1e, 0xf6, 0xa7, 0x6f, 0x98, 0x61, 0x91, 0x31, - 0x3c, 0xd0, 0x75, 0x8f, 0x08, 0x3f, 0xf8, 0x34, 0xdd, 0x41, 0x9c, 0xdb, 0xaa, 0x5b, 0xee, 0x99, - 0x85, 0x0b, 0x06, 0x15, 0x91, 0xf9, 0x65, 0x00, 0xfa, 0xcc, 0xa2, 0xe9, 0xec, 0xea, 0x65, 0x2e, - 0x99, 0x3e, 0xfa, 0xc2, 0x77, 0x5e, 0x99, 0x5a, 0x8c, 0x23, 0xf5, 0xc1, 0x9a, 0xe9, 0xec, 0x3e, - 0xe8, 0xee, 0xb7, 0xd0, 0x5c, 0x7e, 0xdf, 0x45, 0x0e, 0x97, 0xde, 0xe2, 0xab, 0x1e, 0x9b, 0x57, - 0x3a, 0x30, 0xaf, 0x94, 0x30, 0xa7, 0xcb, 0xe2, 0x9c, 0xe6, 0xdf, 0xec, 0x7c, 0x9e, 0xe1, 0x8b, - 0x84, 0x64, 0x49, 0x35, 0xca, 0x92, 0xea, 0xed, 0x5a, 0xb2, 0xc5, 0xeb, 0xa3, 0x34, 0x57, 0xf5, - 0xa0, 0xb9, 0xaa, 0xb7, 0x33, 0xd7, 0x1f, 0xd3, 0x6c, 0xf5, 0xf2, 0x69, 0xcb, 0xa2, 0xf7, 0x0f, - 0x7f, 0xb1, 0xf6, 0x82, 0xde, 0xd2, 0x2e, 0x20, 0x9b, 0xbc, 0xf1, 0xc2, 0x94, 0x92, 0xf9, 0x54, - 0x82, 0xcf, 0x9c, 0x26, 0xd2, 0x9b, 0x9b, 0xf9, 0x2f, 0x4a, 0x4f, 0xf5, 0x76, 0x58, 0xe8, 0x79, - 0x05, 0xc6, 0x3b, 0x2a, 0x39, 0x35, 0xd3, 0x5b, 0x5b, 0xce, 0xad, 0xc3, 0x96, 0x73, 0xa6, 0xe0, - 0x57, 0x14, 0x38, 0x2a, 0x95, 0x57, 0xaa, 0xde, 0x69, 0x49, 0xbd, 0x63, 0x9d, 0x4f, 0x22, 0x8c, - 0x01, 0xed, 0x82, 0xee, 0x95, 0x00, 0x01, 0xc9, 0x9e, 0xdf, 0x17, 0x25, 0xbf, 0x1f, 0xf7, 0x00, - 0x21, 0xe6, 0xe2, 0x11, 0xc0, 0xd4, 0xb6, 0x21, 0xb9, 0xd9, 0x46, 0x48, 0x9f, 0x84, 0xc4, 0x5a, - 0x9b, 0x69, 0x38, 0x4c, 0xf1, 0x6b, 0xed, 0x7c, 0xdb, 0xb4, 0xaa, 0xbb, 0x46, 0x62, 0xad, 0xad, - 0x9f, 0x00, 0x35, 0xc7, 0x7e, 0x5c, 0x60, 0x60, 0x61, 0x84, 0x32, 0xe4, 0xac, 0x1a, 0xe3, 0xc0, - 0x34, 0x7d, 0x12, 0x92, 0x2b, 0xc8, 0xdc, 0x66, 0x4a, 0x00, 0xe5, 0xc1, 0x23, 0x06, 0x19, 0x67, - 0x0f, 0x7c, 0x1c, 0x52, 0x5c, 0xb0, 0x7e, 0x12, 0x23, 0xb6, 0x5d, 0xf6, 0x58, 0x86, 0xc0, 0xea, - 0xb0, 0x95, 0x8b, 0x50, 0xf5, 0x53, 0xd0, 0x6b, 0xd4, 0x77, 0x76, 0x5d, 0xf6, 0xf0, 0x4e, 0x36, - 0x4a, 0xce, 0x5c, 0x83, 0x7e, 0x4f, 0xa3, 0xb7, 0x58, 0x74, 0x91, 0x4e, 0x4d, 0x9f, 0x08, 0xae, - 0x27, 0x7c, 0xdf, 0x92, 0x0e, 0xe9, 0xd3, 0x90, 0xda, 0x70, 0xdb, 0x7e, 0xd1, 0xe7, 0x1d, 0xa9, - 0x37, 0x9a, 0x79, 0xbf, 0x02, 0xa9, 0x22, 0x42, 0x2d, 0x62, 0xf0, 0x7b, 0x21, 0x59, 0xb4, 0x9f, - 0xb6, 0x98, 0x82, 0xa3, 0xcc, 0xa2, 0x98, 0xcc, 0x6c, 0x4a, 0xc8, 0xfa, 0xbd, 0x41, 0xbb, 0x8f, - 0x79, 0x76, 0x0f, 0xf0, 0x11, 0xdb, 0x67, 0x04, 0xdb, 0x33, 0x07, 0x62, 0xa6, 0x0e, 0xfb, 0x9f, - 0x87, 0x81, 0xc0, 0x53, 0xf4, 0x19, 0xa6, 0x46, 0x42, 0x06, 0x06, 0x6d, 0x85, 0x39, 0x32, 0x08, - 0x86, 0x84, 0x07, 0x63, 0x68, 0xc0, 0xc4, 0x5d, 0xa0, 0xc4, 0xcc, 0xb3, 0xa2, 0x99, 0xc3, 0x59, - 0x99, 0xa9, 0xe7, 0xa9, 0x8d, 0x88, 0xb9, 0x4f, 0xd2, 0xe0, 0xec, 0xee, 0x44, 0xfc, 0x39, 0xd3, - 0x0b, 0x6a, 0xb9, 0xde, 0xc8, 0x3c, 0x04, 0x40, 0x53, 0xbe, 0x64, 0xed, 0x35, 0xa5, 0xac, 0x1b, - 0xe6, 0x06, 0xde, 0xdc, 0x45, 0x9b, 0xc8, 0x21, 0x2c, 0x62, 0x3f, 0x85, 0x0b, 0x0c, 0xd0, 0x14, - 0x23, 0xf8, 0xfb, 0x23, 0xf1, 0xa1, 0x9d, 0x18, 0x66, 0x4d, 0x53, 0xd6, 0x6b, 0xc8, 0xcd, 0x59, - 0xb6, 0xbb, 0x8b, 0xda, 0x12, 0x62, 0x41, 0x3f, 0x2b, 0x24, 0xec, 0xf0, 0xc2, 0x5d, 0x1e, 0xa2, - 0x2b, 0xe8, 0x6c, 0xe6, 0x4b, 0x44, 0x41, 0xdc, 0x0a, 0x74, 0x4c, 0x50, 0x8d, 0x31, 0x41, 0xfd, - 0x9c, 0xd0, 0xbf, 0x1d, 0xa0, 0xa6, 0xf4, 0x6a, 0x79, 0x51, 0x78, 0xcf, 0x39, 0x58, 0x59, 0xf1, - 0x1d, 0x93, 0xdb, 0x94, 0xab, 0x7c, 0x7f, 0xa4, 0xca, 0x5d, 0xba, 0xdb, 0xc3, 0xda, 0x54, 0x8d, - 0x6b, 0xd3, 0xaf, 0x7b, 0x1d, 0x07, 0xfd, 0x99, 0x06, 0xf2, 0xab, 0x20, 0xfa, 0x03, 0x91, 0xbe, - 0xcf, 0x2a, 0x05, 0x4f, 0xd5, 0xc5, 0xb8, 0xee, 0xcf, 0x26, 0xf2, 0x79, 0x4f, 0xdd, 0xf3, 0x87, - 0x08, 0x81, 0x6c, 0xa2, 0x50, 0xf0, 0xca, 0x76, 0xea, 0x43, 0x2f, 0x4c, 0x29, 0x2f, 0xbe, 0x30, - 0xd5, 0x93, 0xf9, 0xbc, 0x02, 0xa3, 0x8c, 0x33, 0x10, 0xb8, 0x0f, 0x4a, 0xca, 0xdf, 0xc1, 0x6b, - 0x46, 0x98, 0x05, 0x7e, 0x66, 0xc1, 0xfb, 0x4d, 0x05, 0xd2, 0x1d, 0xba, 0x72, 0x7b, 0xcf, 0xc7, - 0x52, 0x39, 0xab, 0x94, 0x7e, 0xfe, 0x36, 0xbf, 0x06, 0xbd, 0x9b, 0xf5, 0x26, 0x6a, 0xe3, 0x95, - 0x00, 0x7f, 0xa0, 0x2a, 0xf3, 0xc3, 0x1c, 0x3a, 0xc4, 0x69, 0x54, 0x39, 0x81, 0xb6, 0xa0, 0xa7, - 0x21, 0x59, 0x34, 0x5d, 0x93, 0x68, 0x30, 0xe8, 0xd5, 0x57, 0xd3, 0x35, 0x33, 0x67, 0x61, 0x70, - 0x75, 0x9f, 0x5c, 0x92, 0xa9, 0x91, 0x0b, 0x20, 0x62, 0xf7, 0xc7, 0xfb, 0xd5, 0x33, 0xb3, 0xbd, - 0xa9, 0x9a, 0x76, 0x43, 0xc9, 0x26, 0x89, 0x3e, 0x4f, 0xc1, 0xf0, 0x1a, 0x56, 0x9b, 0xe0, 0x04, - 0x18, 0x7d, 0xba, 0xea, 0x4d, 0x5e, 0x6a, 0xca, 0x54, 0xbf, 0x29, 0x9b, 0x06, 0x65, 0x55, 0x6c, - 0x9d, 0x82, 0x7a, 0x18, 0xca, 0xea, 0x6c, 0x32, 0x35, 0xac, 0x8d, 0xce, 0x26, 0x53, 0xa0, 0x0d, - 0xb1, 0xe7, 0xfe, 0x93, 0x0a, 0x1a, 0x6d, 0x75, 0x8a, 0x68, 0xbb, 0x6e, 0xd5, 0xdd, 0xce, 0x7e, - 0xd5, 0xd3, 0x58, 0x7f, 0x04, 0xfa, 0xb1, 0x49, 0x2f, 0xb3, 0x1f, 0xd7, 0xc2, 0xa6, 0x3f, 0xc1, - 0x5a, 0x14, 0x49, 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0xcb, 0xa0, 0x96, 0xcb, 0xab, 0x6c, - 0x71, 0x5b, 0x3c, 0x10, 0xca, 0xee, 0xd8, 0xb0, 0x6f, 0x6c, 0xcc, 0xd9, 0x31, 0xb0, 0x00, 0x7d, - 0x11, 0x12, 0xe5, 0x55, 0xd6, 0xf0, 0x9e, 0x8c, 0x23, 0xc6, 0x48, 0x94, 0x57, 0x27, 0xfe, 0x41, - 0x81, 0x21, 0x61, 0x54, 0xcf, 0xc0, 0x20, 0x1d, 0x08, 0x4c, 0xb7, 0xcf, 0x10, 0xc6, 0xb8, 0xce, - 0x89, 0xdb, 0xd4, 0x79, 0x22, 0x07, 0x23, 0xd2, 0xb8, 0x3e, 0x07, 0x7a, 0x70, 0x88, 0x29, 0x41, - 0x7f, 0x98, 0x28, 0x84, 0x92, 0xb9, 0x1b, 0xc0, 0xb7, 0xab, 0xf7, 0x7b, 0x3a, 0xe5, 0xd2, 0xc6, - 0x66, 0xa9, 0xa8, 0x29, 0x99, 0xaf, 0x2a, 0x30, 0xc0, 0xda, 0xd6, 0xaa, 0xdd, 0x42, 0x7a, 0x1e, - 0x94, 0x1c, 0x8b, 0x87, 0x37, 0xa7, 0xb7, 0x92, 0xd3, 0x4f, 0x83, 0x92, 0x8f, 0xef, 0x6a, 0x25, - 0xaf, 0x2f, 0x80, 0x52, 0x60, 0x0e, 0x8e, 0xe7, 0x19, 0xa5, 0x90, 0xf9, 0xa1, 0x0a, 0x63, 0xc1, - 0x36, 0x9a, 0xd7, 0x93, 0x13, 0xe2, 0x7b, 0x53, 0xb6, 0xff, 0xcc, 0xc2, 0xd9, 0xc5, 0x39, 0xfc, - 0x8f, 0x17, 0x92, 0x27, 0xc4, 0x57, 0xa8, 0x4e, 0x96, 0x8e, 0x6b, 0x22, 0xd9, 0x64, 0x80, 0xda, - 0x71, 0x4d, 0x44, 0xa0, 0x76, 0x5c, 0x13, 0x11, 0xa8, 0x1d, 0xd7, 0x44, 0x04, 0x6a, 0xc7, 0x51, - 0x80, 0x40, 0xed, 0xb8, 0x26, 0x22, 0x50, 0x3b, 0xae, 0x89, 0x08, 0xd4, 0xce, 0x6b, 0x22, 0x8c, - 0xdc, 0xf5, 0x9a, 0x88, 0x48, 0xef, 0xbc, 0x26, 0x22, 0xd2, 0x3b, 0xaf, 0x89, 0x64, 0x93, 0x6e, - 0x7b, 0x0f, 0x75, 0x3f, 0x74, 0x10, 0xf1, 0x07, 0xbd, 0x03, 0xfa, 0x05, 0x78, 0x0d, 0x46, 0xe8, - 0x7e, 0x44, 0xc1, 0xb6, 0x5c, 0xb3, 0x6e, 0xa1, 0xb6, 0xfe, 0x4e, 0x18, 0xa4, 0x43, 0xf4, 0x2d, - 0x27, 0xec, 0x2d, 0x90, 0xd2, 0x59, 0xb9, 0x15, 0xb8, 0x33, 0x3f, 0x4d, 0xc2, 0x38, 0x1d, 0x28, - 0x9b, 0x4d, 0x24, 0x5c, 0x32, 0x3a, 0x25, 0x1d, 0x29, 0x0d, 0x63, 0xf8, 0xad, 0x57, 0xa6, 0xe8, - 0x68, 0xce, 0x0b, 0xa6, 0x53, 0xd2, 0xe1, 0x92, 0xc8, 0xe7, 0xaf, 0x3f, 0xa7, 0xa4, 0x8b, 0x47, - 0x22, 0x9f, 0xb7, 0xdc, 0x78, 0x7c, 0xfc, 0x0a, 0x92, 0xc8, 0x57, 0xf4, 0xa2, 0xec, 0x94, 0x74, - 0x19, 0x49, 0xe4, 0x2b, 0x79, 0xf1, 0x76, 0x4a, 0x3a, 0x7a, 0x12, 0xf9, 0x2e, 0x7b, 0x91, 0x77, - 0x4a, 0x3a, 0x84, 0x12, 0xf9, 0xae, 0x78, 0x31, 0x78, 0x4a, 0xba, 0xaa, 0x24, 0xf2, 0x3d, 0xea, - 0x45, 0xe3, 0x29, 0xe9, 0xd2, 0x92, 0xc8, 0xb7, 0xec, 0xc5, 0xe5, 0x8c, 0x7c, 0x7d, 0x49, 0x64, - 0xbc, 0xea, 0x47, 0xe8, 0x8c, 0x7c, 0x91, 0x49, 0xe4, 0x7c, 0x97, 0x1f, 0xab, 0x33, 0xf2, 0x95, - 0x26, 0x91, 0x73, 0xc5, 0x8f, 0xda, 0x19, 0xf9, 0xa8, 0x4c, 0xe4, 0x5c, 0xf5, 0xe3, 0x77, 0x46, - 0x3e, 0x34, 0x13, 0x39, 0xcb, 0x7e, 0x24, 0xcf, 0xc8, 0xc7, 0x67, 0x22, 0xe7, 0x9a, 0xbf, 0x87, - 0xfe, 0x0d, 0x29, 0xfc, 0x02, 0x97, 0xa0, 0x32, 0x52, 0xf8, 0x41, 0x48, 0xe8, 0x65, 0xa4, 0xd0, - 0x83, 0x90, 0xb0, 0xcb, 0x48, 0x61, 0x07, 0x21, 0x21, 0x97, 0x91, 0x42, 0x0e, 0x42, 0xc2, 0x2d, - 0x23, 0x85, 0x1b, 0x84, 0x84, 0x5a, 0x46, 0x0a, 0x35, 0x08, 0x09, 0xb3, 0x8c, 0x14, 0x66, 0x10, - 0x12, 0x62, 0x19, 0x29, 0xc4, 0x20, 0x24, 0xbc, 0x32, 0x52, 0x78, 0x41, 0x48, 0x68, 0x9d, 0x94, - 0x43, 0x0b, 0xc2, 0xc2, 0xea, 0xa4, 0x1c, 0x56, 0x10, 0x16, 0x52, 0xf7, 0xc8, 0x21, 0xd5, 0x7f, - 0xeb, 0x95, 0xa9, 0x5e, 0x3c, 0x14, 0x88, 0xa6, 0x93, 0x72, 0x34, 0x41, 0x58, 0x24, 0x9d, 0x94, - 0x23, 0x09, 0xc2, 0xa2, 0xe8, 0xa4, 0x1c, 0x45, 0x10, 0x16, 0x41, 0x2f, 0xc9, 0x11, 0xe4, 0x5f, - 0xf1, 0xc9, 0x48, 0x27, 0x8a, 0x51, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, - 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, - 0x38, 0x11, 0xa4, 0xc6, 0x8a, 0x20, 0xb5, 0x5b, 0x04, 0x9d, 0x94, 0x2f, 0x3c, 0x40, 0x58, 0x41, - 0x3a, 0x29, 0x9f, 0x7c, 0x46, 0x87, 0x90, 0x1a, 0x2b, 0x84, 0xd4, 0x6e, 0x21, 0xf4, 0x0d, 0x15, - 0xc6, 0x84, 0x10, 0x62, 0xc7, 0x43, 0x6f, 0x55, 0x05, 0x3a, 0x17, 0xe3, 0x7e, 0x45, 0x58, 0x4c, - 0x9d, 0x8b, 0x71, 0x46, 0x7d, 0x50, 0x9c, 0x75, 0x56, 0xa1, 0x52, 0x8c, 0x2a, 0x74, 0xd9, 0x8b, - 0xa1, 0x73, 0x31, 0xee, 0x5d, 0x74, 0xc6, 0xde, 0x85, 0x83, 0x8a, 0xc0, 0xa3, 0xb1, 0x8a, 0xc0, - 0x72, 0xac, 0x22, 0x70, 0xd5, 0xf7, 0xe0, 0x07, 0x13, 0x70, 0xd4, 0xf7, 0x20, 0xfd, 0x44, 0x7e, - 0x04, 0x29, 0x13, 0x38, 0xa1, 0xd2, 0xf9, 0xa9, 0x4d, 0xc0, 0x8d, 0x89, 0xe5, 0x9a, 0xbe, 0x2e, - 0x9e, 0x55, 0x65, 0x0f, 0x7b, 0x7e, 0x13, 0xf0, 0x38, 0xdb, 0x0b, 0x3d, 0x09, 0xea, 0x72, 0xcd, - 0x21, 0xd5, 0x22, 0xec, 0xb1, 0x05, 0x03, 0x93, 0x75, 0x03, 0xfa, 0x08, 0xbb, 0x43, 0xdc, 0x7b, - 0x3b, 0x0f, 0x2e, 0x1a, 0x4c, 0x52, 0xe6, 0x25, 0x05, 0xa6, 0x85, 0x50, 0x7e, 0x6b, 0x4e, 0x0c, - 0x2e, 0xc5, 0x3a, 0x31, 0x10, 0x12, 0xc4, 0x3f, 0x3d, 0xb8, 0xaf, 0xf3, 0xa0, 0x3a, 0x98, 0x25, - 0xf2, 0x49, 0xc2, 0xaf, 0xc0, 0xb0, 0x3f, 0x03, 0xf2, 0xca, 0xb6, 0x14, 0xbd, 0x99, 0x19, 0x96, - 0x9a, 0x4b, 0xd2, 0x26, 0xda, 0x81, 0x30, 0x2f, 0x5b, 0x33, 0x59, 0x18, 0x29, 0x8b, 0x7f, 0xad, - 0x13, 0xb5, 0x17, 0x91, 0xc2, 0xad, 0xf9, 0x8d, 0x4f, 0x4f, 0xf5, 0x64, 0x1e, 0x80, 0xc1, 0xe0, - 0x1f, 0xe4, 0x48, 0xc0, 0x7e, 0x0e, 0xcc, 0x26, 0x5f, 0xc6, 0xdc, 0x7f, 0xa4, 0xc0, 0x1d, 0x41, - 0xf6, 0xc7, 0xea, 0xee, 0xee, 0xb2, 0x85, 0x7b, 0xfa, 0x87, 0x20, 0x85, 0x98, 0xe3, 0xd8, 0xef, - 0x99, 0xb0, 0xd7, 0xc8, 0x50, 0xf6, 0x39, 0xf2, 0xaf, 0xe1, 0x41, 0xa4, 0x4d, 0x10, 0xfe, 0xd8, - 0x85, 0x89, 0x7b, 0xa1, 0x97, 0xca, 0x17, 0xf5, 0x1a, 0x92, 0xf4, 0xfa, 0x6c, 0x88, 0x5e, 0x24, - 0x8e, 0xf4, 0xab, 0x82, 0x5e, 0x81, 0xb7, 0xd5, 0x50, 0xf6, 0x39, 0x1e, 0x7c, 0xf9, 0x14, 0xee, - 0xff, 0x48, 0x44, 0x45, 0x2b, 0x39, 0x03, 0xa9, 0x92, 0xcc, 0x13, 0xae, 0x67, 0x11, 0x92, 0x65, - 0xbb, 0x46, 0x7e, 0x69, 0x85, 0xfc, 0x22, 0x2e, 0x33, 0x32, 0xfb, 0x79, 0xdc, 0x53, 0x90, 0x2a, - 0xec, 0xd6, 0x1b, 0xb5, 0x36, 0xb2, 0xd8, 0x91, 0x3d, 0xdb, 0x41, 0xc7, 0x18, 0xc3, 0xa3, 0x65, - 0x0a, 0x30, 0x5a, 0xb6, 0xad, 0xfc, 0xbe, 0x1b, 0xac, 0x1b, 0x73, 0x52, 0x8a, 0xb0, 0x23, 0x1f, - 0xf2, 0x27, 0x1e, 0x98, 0x21, 0xdf, 0xfb, 0x9d, 0x57, 0xa6, 0x94, 0x4d, 0x6f, 0xfb, 0x7c, 0x15, - 0x8e, 0xb1, 0xf4, 0xe9, 0x10, 0xb5, 0x10, 0x25, 0xaa, 0x9f, 0x1d, 0x53, 0x07, 0xc4, 0x2d, 0x63, - 0x71, 0x56, 0xa8, 0xb8, 0x37, 0xa7, 0x19, 0x6e, 0x8a, 0x0e, 0xd4, 0x4c, 0x3d, 0x94, 0x66, 0xa1, - 0xe2, 0xe6, 0xa2, 0xc4, 0x49, 0x9a, 0xdd, 0x03, 0xfd, 0x1e, 0x2d, 0x10, 0x0d, 0xc1, 0x4c, 0x59, - 0x98, 0xcd, 0xc0, 0x40, 0x20, 0x61, 0xf5, 0x5e, 0x50, 0x72, 0x5a, 0x0f, 0xfe, 0x2f, 0xaf, 0x29, - 0xf8, 0xbf, 0x82, 0x96, 0x98, 0xbd, 0x17, 0x46, 0xa4, 0xed, 0x4b, 0x4c, 0x29, 0x6a, 0x80, 0xff, - 0x2b, 0x69, 0x03, 0x13, 0xc9, 0x0f, 0xfd, 0xe9, 0x64, 0xcf, 0xec, 0x25, 0xd0, 0x3b, 0x37, 0x3a, - 0xf5, 0x3e, 0x48, 0xe4, 0xb0, 0xc8, 0x63, 0x90, 0xc8, 0xe7, 0x35, 0x65, 0x62, 0xe4, 0x37, 0x3f, - 0x39, 0x3d, 0x90, 0x27, 0x7f, 0x6d, 0x7c, 0x0d, 0xb9, 0xf9, 0x3c, 0x03, 0x3f, 0x0c, 0x77, 0x84, - 0x6e, 0x94, 0x62, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x07, 0xbe, 0x58, 0x24, 0x78, 0x25, 0xcb, - 0x0f, 0x9c, 0x73, 0x7a, 0xc8, 0x26, 0x63, 0xba, 0x16, 0x38, 0xe0, 0xce, 0x65, 0x1f, 0x66, 0xbc, - 0xf9, 0x50, 0x5e, 0x14, 0x71, 0x60, 0x9d, 0xcf, 0x16, 0x18, 0xbe, 0x10, 0x8a, 0xdf, 0x96, 0x4e, - 0x55, 0xc5, 0x15, 0x82, 0x09, 0x29, 0x78, 0x0a, 0x17, 0x43, 0x85, 0xec, 0x06, 0xee, 0xba, 0x17, - 0x3d, 0x85, 0x4b, 0xa1, 0xbc, 0xf5, 0x88, 0x3b, 0x5f, 0xa5, 0xec, 0x69, 0xb6, 0xc8, 0xe7, 0xce, - 0xe8, 0x77, 0xf0, 0x1c, 0x15, 0x2a, 0x30, 0x33, 0x10, 0xe7, 0xca, 0x16, 0x18, 0x20, 0xdf, 0x15, - 0xd0, 0xdd, 0x4a, 0x1c, 0x99, 0x7d, 0x94, 0x09, 0x29, 0x74, 0x15, 0x12, 0x61, 0x2a, 0x0e, 0xcf, - 0x6f, 0xde, 0xb8, 0x39, 0xd9, 0xf3, 0xf2, 0xcd, 0xc9, 0x9e, 0x7f, 0xbd, 0x39, 0xd9, 0xf3, 0xdd, - 0x9b, 0x93, 0xca, 0xf7, 0x6f, 0x4e, 0x2a, 0x3f, 0xb8, 0x39, 0xa9, 0xfc, 0xe4, 0xe6, 0xa4, 0xf2, - 0xdc, 0xad, 0x49, 0xe5, 0xc5, 0x5b, 0x93, 0xca, 0x97, 0x6e, 0x4d, 0x2a, 0x5f, 0xbb, 0x35, 0xa9, - 0xbc, 0x74, 0x6b, 0x52, 0xb9, 0x71, 0x6b, 0x52, 0x79, 0xf9, 0xd6, 0xa4, 0xf2, 0xdd, 0x5b, 0x93, - 0xca, 0xf7, 0x6f, 0x4d, 0xf6, 0xfc, 0xe0, 0xd6, 0xa4, 0xf2, 0x93, 0x5b, 0x93, 0x3d, 0xcf, 0xbd, - 0x3a, 0xd9, 0xf3, 0xc2, 0xab, 0x93, 0x3d, 0x2f, 0xbe, 0x3a, 0xa9, 0xfc, 0x7f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x35, 0x89, 0x28, 0xbd, 0xa5, 0x64, 0x00, 0x00, + // 6619 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x6c, 0x1c, 0xd7, + 0x75, 0x3f, 0x67, 0x67, 0x49, 0x2d, 0x0f, 0x5f, 0xc3, 0xa1, 0x44, 0xad, 0x69, 0x99, 0xa4, 0xd6, + 0xb2, 0x4c, 0x33, 0x36, 0x45, 0x51, 0xd4, 0x6b, 0x15, 0xdb, 0xff, 0x7d, 0x49, 0xa6, 0x42, 0x2e, + 0x99, 0x21, 0x19, 0x5b, 0xc9, 0xff, 0x8f, 0xc5, 0x68, 0xf7, 0x92, 0x5c, 0x7b, 0x77, 0x66, 0xb3, + 0x33, 0xb4, 0x4d, 0xe3, 0x8f, 0xc2, 0x4d, 0xda, 0x34, 0x69, 0xd1, 0x67, 0x5a, 0xe4, 0xd1, 0xc4, + 0x71, 0x5a, 0xa4, 0x71, 0xd2, 0x57, 0xd2, 0xa4, 0x69, 0x1a, 0x14, 0x8d, 0xbf, 0xa4, 0x51, 0xbf, + 0x14, 0x4e, 0x3f, 0x15, 0x41, 0x61, 0x44, 0x72, 0x80, 0xa6, 0xad, 0xdb, 0xa4, 0xa9, 0x81, 0x06, + 0x70, 0x3e, 0x14, 0xf7, 0x35, 0x33, 0xf7, 0xee, 0x2c, 0x67, 0x68, 0xd9, 0x4e, 0xbe, 0x48, 0xbb, + 0xf7, 0x9c, 0xdf, 0x99, 0x33, 0xe7, 0x75, 0xcf, 0x7d, 0x70, 0xe1, 0x87, 0x17, 0x61, 0x7a, 0xdb, + 0xb6, 0xb7, 0x1b, 0xe8, 0x54, 0xab, 0x6d, 0xbb, 0xf6, 0xf5, 0xdd, 0xad, 0x53, 0x35, 0xe4, 0x54, + 0xdb, 0xf5, 0x96, 0x6b, 0xb7, 0xe7, 0xc8, 0x98, 0x3e, 0x42, 0x39, 0xe6, 0x38, 0x47, 0x66, 0x05, + 0x46, 0x2f, 0xd7, 0x1b, 0xa8, 0xe8, 0x31, 0xae, 0x23, 0x57, 0xbf, 0x00, 0xc9, 0xad, 0x7a, 0x03, + 0xa5, 0x95, 0x69, 0x75, 0x66, 0x60, 0xe1, 0xc4, 0x9c, 0x04, 0x9a, 0x13, 0x11, 0x6b, 0x78, 0xd8, + 0x20, 0x88, 0xcc, 0xf7, 0x93, 0x30, 0x16, 0x42, 0xd5, 0x75, 0x48, 0x5a, 0x66, 0x13, 0x4b, 0x54, + 0x66, 0xfa, 0x0d, 0xf2, 0x59, 0x4f, 0xc3, 0xa1, 0x96, 0x59, 0x7d, 0xc2, 0xdc, 0x46, 0xe9, 0x04, + 0x19, 0xe6, 0x5f, 0xf5, 0x49, 0x80, 0x1a, 0x6a, 0x21, 0xab, 0x86, 0xac, 0xea, 0x5e, 0x5a, 0x9d, + 0x56, 0x67, 0xfa, 0x8d, 0xc0, 0x88, 0xfe, 0x0e, 0x18, 0x6d, 0xed, 0x5e, 0x6f, 0xd4, 0xab, 0x95, + 0x00, 0x1b, 0x4c, 0xab, 0x33, 0xbd, 0x86, 0x46, 0x09, 0x45, 0x9f, 0xf9, 0x5e, 0x18, 0x79, 0x0a, + 0x99, 0x4f, 0x04, 0x59, 0x07, 0x08, 0xeb, 0x30, 0x1e, 0x0e, 0x30, 0x16, 0x60, 0xb0, 0x89, 0x1c, + 0xc7, 0xdc, 0x46, 0x15, 0x77, 0xaf, 0x85, 0xd2, 0x49, 0xf2, 0xf6, 0xd3, 0x1d, 0x6f, 0x2f, 0xbf, + 0xf9, 0x00, 0x43, 0x6d, 0xec, 0xb5, 0x90, 0x9e, 0x83, 0x7e, 0x64, 0xed, 0x36, 0xa9, 0x84, 0xde, + 0x2e, 0xf6, 0x2b, 0x59, 0xbb, 0x4d, 0x59, 0x4a, 0x0a, 0xc3, 0x98, 0x88, 0x43, 0x0e, 0x6a, 0x3f, + 0x59, 0xaf, 0xa2, 0x74, 0x1f, 0x11, 0x70, 0x6f, 0x87, 0x80, 0x75, 0x4a, 0x97, 0x65, 0x70, 0x9c, + 0x5e, 0x80, 0x7e, 0xf4, 0xb4, 0x8b, 0x2c, 0xa7, 0x6e, 0x5b, 0xe9, 0x43, 0x44, 0xc8, 0x3d, 0x21, + 0x5e, 0x44, 0x8d, 0x9a, 0x2c, 0xc2, 0xc7, 0xe9, 0xe7, 0xe0, 0x90, 0xdd, 0x72, 0xeb, 0xb6, 0xe5, + 0xa4, 0x53, 0xd3, 0xca, 0xcc, 0xc0, 0xc2, 0xb1, 0xd0, 0x40, 0x58, 0xa5, 0x3c, 0x06, 0x67, 0xd6, + 0x97, 0x40, 0x73, 0xec, 0xdd, 0x76, 0x15, 0x55, 0xaa, 0x76, 0x0d, 0x55, 0xea, 0xd6, 0x96, 0x9d, + 0xee, 0x27, 0x02, 0xa6, 0x3a, 0x5f, 0x84, 0x30, 0x16, 0xec, 0x1a, 0x5a, 0xb2, 0xb6, 0x6c, 0x63, + 0xd8, 0x11, 0xbe, 0xeb, 0xe3, 0xd0, 0xe7, 0xec, 0x59, 0xae, 0xf9, 0x74, 0x7a, 0x90, 0x44, 0x08, + 0xfb, 0x96, 0xf9, 0xeb, 0x3e, 0x18, 0x89, 0x13, 0x62, 0x97, 0xa0, 0x77, 0x0b, 0xbf, 0x65, 0x3a, + 0x71, 0x10, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0xbe, 0x37, 0x68, 0xc4, 0x1c, 0x0c, 0x58, 0xc8, 0x71, + 0x51, 0x8d, 0x46, 0x84, 0x1a, 0x33, 0xa6, 0x80, 0x82, 0x3a, 0x43, 0x2a, 0xf9, 0x86, 0x42, 0xea, + 0x31, 0x18, 0xf1, 0x54, 0xaa, 0xb4, 0x4d, 0x6b, 0x9b, 0xc7, 0xe6, 0xa9, 0x28, 0x4d, 0xe6, 0x4a, + 0x1c, 0x67, 0x60, 0x98, 0x31, 0x8c, 0x84, 0xef, 0x7a, 0x11, 0xc0, 0xb6, 0x90, 0xbd, 0x55, 0xa9, + 0xa1, 0x6a, 0x23, 0x9d, 0xea, 0x62, 0xa5, 0x55, 0xcc, 0xd2, 0x61, 0x25, 0x9b, 0x8e, 0x56, 0x1b, + 0xfa, 0x45, 0x3f, 0xd4, 0x0e, 0x75, 0x89, 0x94, 0x15, 0x9a, 0x64, 0x1d, 0xd1, 0xb6, 0x09, 0xc3, + 0x6d, 0x84, 0xe3, 0x1e, 0xd5, 0xd8, 0x9b, 0xf5, 0x13, 0x25, 0xe6, 0x22, 0xdf, 0xcc, 0x60, 0x30, + 0xfa, 0x62, 0x43, 0xed, 0xe0, 0x57, 0xfd, 0x6e, 0xf0, 0x06, 0x2a, 0x24, 0xac, 0x80, 0x54, 0xa1, + 0x41, 0x3e, 0x58, 0x36, 0x9b, 0x68, 0xe2, 0x19, 0x18, 0x16, 0xcd, 0xa3, 0x1f, 0x86, 0x5e, 0xc7, + 0x35, 0xdb, 0x2e, 0x89, 0xc2, 0x5e, 0x83, 0x7e, 0xd1, 0x35, 0x50, 0x91, 0x55, 0x23, 0x55, 0xae, + 0xd7, 0xc0, 0x1f, 0xf5, 0xff, 0xe3, 0xbf, 0xb0, 0x4a, 0x5e, 0xf8, 0x64, 0xa7, 0x47, 0x05, 0xc9, + 0xf2, 0x7b, 0x4f, 0x9c, 0x87, 0x21, 0xe1, 0x05, 0xe2, 0x3e, 0x3a, 0xf3, 0xff, 0xe1, 0x48, 0xa8, + 0x68, 0xfd, 0x31, 0x38, 0xbc, 0x6b, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d, 0x84, 0x23, 0x96, 0x3e, + 0x2a, 0xfd, 0x2f, 0x87, 0xba, 0xc4, 0xdc, 0x66, 0x90, 0x9b, 0x4a, 0x31, 0xc6, 0x76, 0x3b, 0x07, + 0x67, 0xfb, 0x53, 0x3f, 0x38, 0xa4, 0x3d, 0xfb, 0xec, 0xb3, 0xcf, 0x26, 0x32, 0x1f, 0xef, 0x83, + 0xc3, 0x61, 0x39, 0x13, 0x9a, 0xbe, 0xe3, 0xd0, 0x67, 0xed, 0x36, 0xaf, 0xa3, 0x36, 0x31, 0x52, + 0xaf, 0xc1, 0xbe, 0xe9, 0x39, 0xe8, 0x6d, 0x98, 0xd7, 0x51, 0x23, 0x9d, 0x9c, 0x56, 0x66, 0x86, + 0x17, 0xde, 0x11, 0x2b, 0x2b, 0xe7, 0x96, 0x31, 0xc4, 0xa0, 0x48, 0xfd, 0x21, 0x48, 0xb2, 0x12, + 0x8d, 0x25, 0xcc, 0xc6, 0x93, 0x80, 0x73, 0xc9, 0x20, 0x38, 0xfd, 0x4e, 0xe8, 0xc7, 0xff, 0xd3, + 0xd8, 0xe8, 0x23, 0x3a, 0xa7, 0xf0, 0x00, 0x8e, 0x0b, 0x7d, 0x02, 0x52, 0x24, 0x4d, 0x6a, 0x88, + 0x4f, 0x6d, 0xde, 0x77, 0x1c, 0x58, 0x35, 0xb4, 0x65, 0xee, 0x36, 0xdc, 0xca, 0x93, 0x66, 0x63, + 0x17, 0x91, 0x80, 0xef, 0x37, 0x06, 0xd9, 0xe0, 0x7b, 0xf0, 0x98, 0x3e, 0x05, 0x03, 0x34, 0xab, + 0xea, 0x56, 0x0d, 0x3d, 0x4d, 0xaa, 0x67, 0xaf, 0x41, 0x13, 0x6d, 0x09, 0x8f, 0xe0, 0xc7, 0x3f, + 0xee, 0xd8, 0x16, 0x0f, 0x4d, 0xf2, 0x08, 0x3c, 0x40, 0x1e, 0x7f, 0x5e, 0x2e, 0xdc, 0x77, 0x85, + 0xbf, 0x9e, 0x1c, 0x53, 0x99, 0xaf, 0x25, 0x20, 0x49, 0xea, 0xc5, 0x08, 0x0c, 0x6c, 0x5c, 0x5b, + 0x2b, 0x55, 0x8a, 0xab, 0x9b, 0xf9, 0xe5, 0x92, 0xa6, 0xe8, 0xc3, 0x00, 0x64, 0xe0, 0xf2, 0xf2, + 0x6a, 0x6e, 0x43, 0x4b, 0x78, 0xdf, 0x97, 0xca, 0x1b, 0xe7, 0x16, 0x35, 0xd5, 0x03, 0x6c, 0xd2, + 0x81, 0x64, 0x90, 0xe1, 0xcc, 0x82, 0xd6, 0xab, 0x6b, 0x30, 0x48, 0x05, 0x2c, 0x3d, 0x56, 0x2a, + 0x9e, 0x5b, 0xd4, 0xfa, 0xc4, 0x91, 0x33, 0x0b, 0xda, 0x21, 0x7d, 0x08, 0xfa, 0xc9, 0x48, 0x7e, + 0x75, 0x75, 0x59, 0x4b, 0x79, 0x32, 0xd7, 0x37, 0x8c, 0xa5, 0xf2, 0x15, 0xad, 0xdf, 0x93, 0x79, + 0xc5, 0x58, 0xdd, 0x5c, 0xd3, 0xc0, 0x93, 0xb0, 0x52, 0x5a, 0x5f, 0xcf, 0x5d, 0x29, 0x69, 0x03, + 0x1e, 0x47, 0xfe, 0xda, 0x46, 0x69, 0x5d, 0x1b, 0x14, 0xd4, 0x3a, 0xb3, 0xa0, 0x0d, 0x79, 0x8f, + 0x28, 0x95, 0x37, 0x57, 0xb4, 0x61, 0x7d, 0x14, 0x86, 0xe8, 0x23, 0xb8, 0x12, 0x23, 0xd2, 0xd0, + 0xb9, 0x45, 0x4d, 0xf3, 0x15, 0xa1, 0x52, 0x46, 0x85, 0x81, 0x73, 0x8b, 0x9a, 0x9e, 0x29, 0x40, + 0x2f, 0x89, 0x2e, 0x5d, 0x87, 0xe1, 0xe5, 0x5c, 0xbe, 0xb4, 0x5c, 0x59, 0x5d, 0xdb, 0x58, 0x5a, + 0x2d, 0xe7, 0x96, 0x35, 0xc5, 0x1f, 0x33, 0x4a, 0xef, 0xde, 0x5c, 0x32, 0x4a, 0x45, 0x2d, 0x11, + 0x1c, 0x5b, 0x2b, 0xe5, 0x36, 0x4a, 0x45, 0x4d, 0xcd, 0x54, 0xe1, 0x70, 0x58, 0x9d, 0x0c, 0xcd, + 0x8c, 0x80, 0x8b, 0x13, 0x5d, 0x5c, 0x4c, 0x64, 0x75, 0xb8, 0xf8, 0x95, 0x04, 0x8c, 0x85, 0xcc, + 0x15, 0xa1, 0x0f, 0x79, 0x18, 0x7a, 0x69, 0x88, 0xd2, 0xd9, 0xf3, 0xbe, 0xd0, 0x49, 0x87, 0x04, + 0x6c, 0xc7, 0x0c, 0x4a, 0x70, 0xc1, 0x0e, 0x42, 0xed, 0xd2, 0x41, 0x60, 0x11, 0x1d, 0x35, 0xfd, + 0xff, 0x75, 0xd4, 0x74, 0x3a, 0xed, 0x9d, 0x8b, 0x33, 0xed, 0x91, 0xb1, 0x83, 0xd5, 0xf6, 0xde, + 0x90, 0xda, 0x7e, 0x09, 0x46, 0x3b, 0x04, 0xc5, 0xae, 0xb1, 0x1f, 0x54, 0x20, 0xdd, 0xcd, 0x38, + 0x11, 0x95, 0x2e, 0x21, 0x54, 0xba, 0x4b, 0xb2, 0x05, 0x8f, 0x77, 0x77, 0x42, 0x87, 0xaf, 0x3f, + 0xaf, 0xc0, 0x78, 0x78, 0xa7, 0x18, 0xaa, 0xc3, 0x43, 0xd0, 0xd7, 0x44, 0xee, 0x8e, 0xcd, 0xbb, + 0xa5, 0x93, 0x21, 0x73, 0x30, 0x26, 0xcb, 0xce, 0x66, 0xa8, 0xe0, 0x24, 0xae, 0x76, 0x6b, 0xf7, + 0xa8, 0x36, 0x1d, 0x9a, 0x7e, 0x24, 0x01, 0x47, 0x42, 0x85, 0x87, 0x2a, 0x7a, 0x17, 0x40, 0xdd, + 0x6a, 0xed, 0xba, 0xb4, 0x23, 0xa2, 0x05, 0xb6, 0x9f, 0x8c, 0x90, 0xe2, 0x85, 0x8b, 0xe7, 0xae, + 0xeb, 0xd1, 0x55, 0x42, 0x07, 0x3a, 0x44, 0x18, 0x2e, 0xf8, 0x8a, 0x26, 0x89, 0xa2, 0x93, 0x5d, + 0xde, 0xb4, 0x23, 0x30, 0xe7, 0x41, 0xab, 0x36, 0xea, 0xc8, 0x72, 0x2b, 0x8e, 0xdb, 0x46, 0x66, + 0xb3, 0x6e, 0x6d, 0x93, 0x19, 0x24, 0x95, 0xed, 0xdd, 0x32, 0x1b, 0x0e, 0x32, 0x46, 0x28, 0x79, + 0x9d, 0x53, 0x31, 0x82, 0x04, 0x50, 0x3b, 0x80, 0xe8, 0x13, 0x10, 0x94, 0xec, 0x21, 0x32, 0x5f, + 0x49, 0xc1, 0x40, 0xa0, 0xaf, 0xd6, 0x8f, 0xc3, 0xe0, 0xe3, 0xe6, 0x93, 0x66, 0x85, 0xaf, 0x95, + 0xa8, 0x25, 0x06, 0xf0, 0xd8, 0x1a, 0x5b, 0x2f, 0xcd, 0xc3, 0x61, 0xc2, 0x62, 0xef, 0xba, 0xa8, + 0x5d, 0xa9, 0x36, 0x4c, 0xc7, 0x21, 0x46, 0x4b, 0x11, 0x56, 0x1d, 0xd3, 0x56, 0x31, 0xa9, 0xc0, + 0x29, 0xfa, 0x59, 0x18, 0x23, 0x88, 0xe6, 0x6e, 0xc3, 0xad, 0xb7, 0x1a, 0xa8, 0x82, 0x57, 0x6f, + 0x0e, 0x99, 0x49, 0x3c, 0xcd, 0x46, 0x31, 0xc7, 0x0a, 0x63, 0xc0, 0x1a, 0x39, 0x7a, 0x11, 0xee, + 0x22, 0xb0, 0x6d, 0x64, 0xa1, 0xb6, 0xe9, 0xa2, 0x0a, 0x7a, 0xff, 0xae, 0xd9, 0x70, 0x2a, 0xa6, + 0x55, 0xab, 0xec, 0x98, 0xce, 0x4e, 0xfa, 0x30, 0x16, 0x90, 0x4f, 0xa4, 0x15, 0xe3, 0x0e, 0xcc, + 0x78, 0x85, 0xf1, 0x95, 0x08, 0x5b, 0xce, 0xaa, 0x3d, 0x62, 0x3a, 0x3b, 0x7a, 0x16, 0xc6, 0x89, + 0x14, 0xc7, 0x6d, 0xd7, 0xad, 0xed, 0x4a, 0x75, 0x07, 0x55, 0x9f, 0xa8, 0xec, 0xba, 0x5b, 0x17, + 0xd2, 0x77, 0x06, 0x9f, 0x4f, 0x34, 0x5c, 0x27, 0x3c, 0x05, 0xcc, 0xb2, 0xe9, 0x6e, 0x5d, 0xd0, + 0xd7, 0x61, 0x10, 0x3b, 0xa3, 0x59, 0x7f, 0x06, 0x55, 0xb6, 0xec, 0x36, 0x99, 0x1a, 0x87, 0x43, + 0x4a, 0x53, 0xc0, 0x82, 0x73, 0xab, 0x0c, 0xb0, 0x62, 0xd7, 0x50, 0xb6, 0x77, 0x7d, 0xad, 0x54, + 0x2a, 0x1a, 0x03, 0x5c, 0xca, 0x65, 0xbb, 0x8d, 0x03, 0x6a, 0xdb, 0xf6, 0x0c, 0x3c, 0x40, 0x03, + 0x6a, 0xdb, 0xe6, 0xe6, 0x3d, 0x0b, 0x63, 0xd5, 0x2a, 0x7d, 0xe7, 0x7a, 0xb5, 0xc2, 0xd6, 0x58, + 0x4e, 0x5a, 0x13, 0x8c, 0x55, 0xad, 0x5e, 0xa1, 0x0c, 0x2c, 0xc6, 0x1d, 0xfd, 0x22, 0x1c, 0xf1, + 0x8d, 0x15, 0x04, 0x8e, 0x76, 0xbc, 0xa5, 0x0c, 0x3d, 0x0b, 0x63, 0xad, 0xbd, 0x4e, 0xa0, 0x2e, + 0x3c, 0xb1, 0xb5, 0x27, 0xc3, 0xce, 0xc3, 0xe1, 0xd6, 0x4e, 0xab, 0x13, 0x37, 0x1b, 0xc4, 0xe9, + 0xad, 0x9d, 0x96, 0x0c, 0xbc, 0x87, 0x2c, 0xb8, 0xdb, 0xa8, 0x6a, 0xba, 0xa8, 0x96, 0x3e, 0x1a, + 0x64, 0x0f, 0x10, 0xf4, 0x53, 0xa0, 0x55, 0xab, 0x15, 0x64, 0x99, 0xd7, 0x1b, 0xa8, 0x62, 0xb6, + 0x91, 0x65, 0x3a, 0xe9, 0xa9, 0x20, 0xf3, 0x70, 0xb5, 0x5a, 0x22, 0xd4, 0x1c, 0x21, 0xea, 0xb3, + 0x30, 0x6a, 0x5f, 0x7f, 0xbc, 0x4a, 0x43, 0xb2, 0xd2, 0x6a, 0xa3, 0xad, 0xfa, 0xd3, 0xe9, 0x13, + 0xc4, 0xbe, 0x23, 0x98, 0x40, 0x02, 0x72, 0x8d, 0x0c, 0xeb, 0xf7, 0x81, 0x56, 0x75, 0x76, 0xcc, + 0x76, 0x8b, 0xd4, 0x64, 0xa7, 0x65, 0x56, 0x51, 0xfa, 0x1e, 0xca, 0x4a, 0xc7, 0xcb, 0x7c, 0x18, + 0xa7, 0x84, 0xf3, 0x54, 0x7d, 0xcb, 0xe5, 0x12, 0xef, 0xa5, 0x29, 0x41, 0xc6, 0x98, 0xb4, 0x19, + 0xd0, 0xb0, 0x29, 0x84, 0x07, 0xcf, 0x10, 0xb6, 0xe1, 0xd6, 0x4e, 0x2b, 0xf8, 0xdc, 0xbb, 0x61, + 0x08, 0x73, 0xfa, 0x0f, 0xbd, 0x8f, 0x36, 0x64, 0xad, 0x9d, 0xc0, 0x13, 0xdf, 0xb2, 0xde, 0x38, + 0x93, 0x85, 0xc1, 0x60, 0x7c, 0xea, 0xfd, 0x40, 0x23, 0x54, 0x53, 0x70, 0xb3, 0x52, 0x58, 0x2d, + 0xe2, 0x36, 0xe3, 0xbd, 0x25, 0x2d, 0x81, 0xdb, 0x9d, 0xe5, 0xa5, 0x8d, 0x52, 0xc5, 0xd8, 0x2c, + 0x6f, 0x2c, 0xad, 0x94, 0x34, 0x35, 0xd8, 0x57, 0x7f, 0x2b, 0x01, 0xc3, 0xe2, 0x12, 0x49, 0x7f, + 0x27, 0x1c, 0xe5, 0xfb, 0x19, 0x0e, 0x72, 0x2b, 0x4f, 0xd5, 0xdb, 0x24, 0x65, 0x9a, 0x26, 0x9d, + 0xbe, 0x3c, 0xa7, 0x1d, 0x66, 0x5c, 0xeb, 0xc8, 0x7d, 0xb4, 0xde, 0xc6, 0x09, 0xd1, 0x34, 0x5d, + 0x7d, 0x19, 0xa6, 0x2c, 0xbb, 0xe2, 0xb8, 0xa6, 0x55, 0x33, 0xdb, 0xb5, 0x8a, 0xbf, 0x93, 0x54, + 0x31, 0xab, 0x55, 0xe4, 0x38, 0x36, 0x9d, 0xaa, 0x3c, 0x29, 0xc7, 0x2c, 0x7b, 0x9d, 0x31, 0xfb, + 0x35, 0x3c, 0xc7, 0x58, 0xa5, 0x00, 0x53, 0xbb, 0x05, 0xd8, 0x9d, 0xd0, 0xdf, 0x34, 0x5b, 0x15, + 0x64, 0xb9, 0xed, 0x3d, 0xd2, 0x18, 0xa7, 0x8c, 0x54, 0xd3, 0x6c, 0x95, 0xf0, 0xf7, 0xb7, 0x67, + 0x7d, 0xf2, 0xcf, 0x2a, 0x0c, 0x06, 0x9b, 0x63, 0xbc, 0xd6, 0xa8, 0x92, 0x79, 0x44, 0x21, 0x95, + 0xe6, 0xee, 0x7d, 0x5b, 0xe9, 0xb9, 0x02, 0x9e, 0x60, 0xb2, 0x7d, 0xb4, 0x65, 0x35, 0x28, 0x12, + 0x4f, 0xee, 0xb8, 0xb6, 0x20, 0xda, 0x22, 0xa4, 0x0c, 0xf6, 0x4d, 0xbf, 0x02, 0x7d, 0x8f, 0x3b, + 0x44, 0x76, 0x1f, 0x91, 0x7d, 0x62, 0x7f, 0xd9, 0x57, 0xd7, 0x89, 0xf0, 0xfe, 0xab, 0xeb, 0x95, + 0xf2, 0xaa, 0xb1, 0x92, 0x5b, 0x36, 0x18, 0x5c, 0xbf, 0x03, 0x92, 0x0d, 0xf3, 0x99, 0x3d, 0x71, + 0x2a, 0x22, 0x43, 0x71, 0x0d, 0x7f, 0x07, 0x24, 0x9f, 0x42, 0xe6, 0x13, 0xe2, 0x04, 0x40, 0x86, + 0xde, 0xc2, 0xd0, 0x3f, 0x05, 0xbd, 0xc4, 0x5e, 0x3a, 0x00, 0xb3, 0x98, 0xd6, 0xa3, 0xa7, 0x20, + 0x59, 0x58, 0x35, 0x70, 0xf8, 0x6b, 0x30, 0x48, 0x47, 0x2b, 0x6b, 0x4b, 0xa5, 0x42, 0x49, 0x4b, + 0x64, 0xce, 0x42, 0x1f, 0x35, 0x02, 0x4e, 0x0d, 0xcf, 0x0c, 0x5a, 0x0f, 0xfb, 0xca, 0x64, 0x28, + 0x9c, 0xba, 0xb9, 0x92, 0x2f, 0x19, 0x5a, 0x22, 0xe8, 0x5e, 0x07, 0x06, 0x83, 0x7d, 0xf1, 0xdb, + 0x13, 0x53, 0xdf, 0x50, 0x60, 0x20, 0xd0, 0xe7, 0xe2, 0x06, 0xc5, 0x6c, 0x34, 0xec, 0xa7, 0x2a, + 0x66, 0xa3, 0x6e, 0x3a, 0x2c, 0x28, 0x80, 0x0c, 0xe5, 0xf0, 0x48, 0x5c, 0xa7, 0xbd, 0x2d, 0xca, + 0x3f, 0xa7, 0x80, 0x26, 0xb7, 0x98, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0x4f, 0x29, 0x30, 0x2c, + 0xf6, 0x95, 0x92, 0x7a, 0xc7, 0x7f, 0xa6, 0xea, 0x7d, 0x2f, 0x01, 0x43, 0x42, 0x37, 0x19, 0x57, + 0xbb, 0xf7, 0xc3, 0x68, 0xbd, 0x86, 0x9a, 0x2d, 0xdb, 0x45, 0x56, 0x75, 0xaf, 0xd2, 0x40, 0x4f, + 0xa2, 0x46, 0x3a, 0x43, 0x0a, 0xc5, 0xa9, 0xfd, 0xfb, 0xd5, 0xb9, 0x25, 0x1f, 0xb7, 0x8c, 0x61, + 0xd9, 0xb1, 0xa5, 0x62, 0x69, 0x65, 0x6d, 0x75, 0xa3, 0x54, 0x2e, 0x5c, 0xab, 0x6c, 0x96, 0xdf, + 0x55, 0x5e, 0x7d, 0xb4, 0x6c, 0x68, 0x75, 0x89, 0xed, 0x2d, 0x4c, 0xf5, 0x35, 0xd0, 0x64, 0xa5, + 0xf4, 0xa3, 0x10, 0xa6, 0x96, 0xd6, 0xa3, 0x8f, 0xc1, 0x48, 0x79, 0xb5, 0xb2, 0xbe, 0x54, 0x2c, + 0x55, 0x4a, 0x97, 0x2f, 0x97, 0x0a, 0x1b, 0xeb, 0x74, 0x07, 0xc2, 0xe3, 0xde, 0x10, 0x93, 0xfa, + 0x93, 0x2a, 0x8c, 0x85, 0x68, 0xa2, 0xe7, 0xd8, 0xda, 0x81, 0x2e, 0x67, 0x1e, 0x88, 0xa3, 0xfd, + 0x1c, 0x9e, 0xf2, 0xd7, 0xcc, 0xb6, 0xcb, 0x96, 0x1a, 0xf7, 0x01, 0xb6, 0x92, 0xe5, 0xd6, 0xb7, + 0xea, 0xa8, 0xcd, 0x36, 0x6c, 0xe8, 0x82, 0x62, 0xc4, 0x1f, 0xa7, 0x7b, 0x36, 0xf7, 0x83, 0xde, + 0xb2, 0x9d, 0xba, 0x5b, 0x7f, 0x12, 0x55, 0xea, 0x16, 0xdf, 0xdd, 0xc1, 0x0b, 0x8c, 0xa4, 0xa1, + 0x71, 0xca, 0x92, 0xe5, 0x7a, 0xdc, 0x16, 0xda, 0x36, 0x25, 0x6e, 0x5c, 0xc0, 0x55, 0x43, 0xe3, + 0x14, 0x8f, 0xfb, 0x38, 0x0c, 0xd6, 0xec, 0x5d, 0xdc, 0x75, 0x51, 0x3e, 0x3c, 0x5f, 0x28, 0xc6, + 0x00, 0x1d, 0xf3, 0x58, 0x58, 0x3f, 0xed, 0x6f, 0x2b, 0x0d, 0x1a, 0x03, 0x74, 0x8c, 0xb2, 0xdc, + 0x0b, 0x23, 0xe6, 0xf6, 0x76, 0x1b, 0x0b, 0xe7, 0x82, 0xe8, 0x0a, 0x61, 0xd8, 0x1b, 0x26, 0x8c, + 0x13, 0x57, 0x21, 0xc5, 0xed, 0x80, 0xa7, 0x64, 0x6c, 0x89, 0x4a, 0x8b, 0x2e, 0x7b, 0x13, 0x33, + 0xfd, 0x46, 0xca, 0xe2, 0xc4, 0xe3, 0x30, 0x58, 0x77, 0x2a, 0xfe, 0x2e, 0x79, 0x62, 0x3a, 0x31, + 0x93, 0x32, 0x06, 0xea, 0x8e, 0xb7, 0xc3, 0x98, 0xf9, 0x7c, 0x02, 0x86, 0xc5, 0x5d, 0x7e, 0xbd, + 0x08, 0xa9, 0x86, 0x5d, 0x35, 0x49, 0x68, 0xd1, 0x23, 0xa6, 0x99, 0x88, 0x83, 0x81, 0xb9, 0x65, + 0xc6, 0x6f, 0x78, 0xc8, 0x89, 0x7f, 0x50, 0x20, 0xc5, 0x87, 0xf5, 0x71, 0x48, 0xb6, 0x4c, 0x77, + 0x87, 0x88, 0xeb, 0xcd, 0x27, 0x34, 0xc5, 0x20, 0xdf, 0xf1, 0xb8, 0xd3, 0x32, 0x2d, 0x12, 0x02, + 0x6c, 0x1c, 0x7f, 0xc7, 0x7e, 0x6d, 0x20, 0xb3, 0x46, 0x96, 0x1f, 0x76, 0xb3, 0x89, 0x2c, 0xd7, + 0xe1, 0x7e, 0x65, 0xe3, 0x05, 0x36, 0xac, 0xbf, 0x03, 0x46, 0xdd, 0xb6, 0x59, 0x6f, 0x08, 0xbc, + 0x49, 0xc2, 0xab, 0x71, 0x82, 0xc7, 0x9c, 0x85, 0x3b, 0xb8, 0xdc, 0x1a, 0x72, 0xcd, 0xea, 0x0e, + 0xaa, 0xf9, 0xa0, 0x3e, 0xb2, 0xcd, 0x70, 0x94, 0x31, 0x14, 0x19, 0x9d, 0x63, 0x33, 0xdf, 0x51, + 0x60, 0x94, 0x2f, 0x98, 0x6a, 0x9e, 0xb1, 0x56, 0x00, 0x4c, 0xcb, 0xb2, 0xdd, 0xa0, 0xb9, 0x3a, + 0x43, 0xb9, 0x03, 0x37, 0x97, 0xf3, 0x40, 0x46, 0x40, 0xc0, 0x44, 0x13, 0xc0, 0xa7, 0x74, 0x35, + 0xdb, 0x14, 0x0c, 0xb0, 0x23, 0x1c, 0x72, 0x0e, 0x48, 0x97, 0xd8, 0x40, 0x87, 0xf0, 0xca, 0x4a, + 0x3f, 0x0c, 0xbd, 0xd7, 0xd1, 0x76, 0xdd, 0x62, 0x1b, 0xb3, 0xf4, 0x0b, 0xdf, 0x08, 0x49, 0x7a, + 0x1b, 0x21, 0xf9, 0xf7, 0xc1, 0x58, 0xd5, 0x6e, 0xca, 0xea, 0xe6, 0x35, 0x69, 0x99, 0xef, 0x3c, + 0xa2, 0xbc, 0x17, 0xfc, 0x16, 0xf3, 0x27, 0x8a, 0xf2, 0x07, 0x09, 0xf5, 0xca, 0x5a, 0xfe, 0x8b, + 0x89, 0x89, 0x2b, 0x14, 0xba, 0xc6, 0xdf, 0xd4, 0x40, 0x5b, 0x0d, 0x54, 0xc5, 0xda, 0xc3, 0xc7, + 0xee, 0x85, 0x07, 0xb6, 0xeb, 0xee, 0xce, 0xee, 0xf5, 0xb9, 0xaa, 0xdd, 0x3c, 0xb5, 0x6d, 0x6f, + 0xdb, 0xfe, 0xd1, 0x27, 0xfe, 0x46, 0xbe, 0x90, 0x4f, 0xec, 0xf8, 0xb3, 0xdf, 0x1b, 0x9d, 0x88, + 0x3c, 0x2b, 0xcd, 0x96, 0x61, 0x8c, 0x31, 0x57, 0xc8, 0xf9, 0x0b, 0x5d, 0x45, 0xe8, 0xfb, 0xee, + 0x61, 0xa5, 0xbf, 0xfc, 0x7d, 0x32, 0x5d, 0x1b, 0xa3, 0x0c, 0x8a, 0x69, 0x74, 0xa1, 0x91, 0x35, + 0xe0, 0x88, 0x20, 0x8f, 0xa6, 0x26, 0x6a, 0x47, 0x48, 0xfc, 0x16, 0x93, 0x38, 0x16, 0x90, 0xb8, + 0xce, 0xa0, 0xd9, 0x02, 0x0c, 0x1d, 0x44, 0xd6, 0xdf, 0x31, 0x59, 0x83, 0x28, 0x28, 0xe4, 0x0a, + 0x8c, 0x10, 0x21, 0xd5, 0x5d, 0xc7, 0xb5, 0x9b, 0xa4, 0xee, 0xed, 0x2f, 0xe6, 0xdb, 0xdf, 0xa7, + 0xb9, 0x32, 0x8c, 0x61, 0x05, 0x0f, 0x95, 0xcd, 0x02, 0x39, 0x72, 0xaa, 0xa1, 0x6a, 0x23, 0x42, + 0xc2, 0x0d, 0xa6, 0x88, 0xc7, 0x9f, 0x7d, 0x0f, 0x1c, 0xc6, 0x9f, 0x49, 0x59, 0x0a, 0x6a, 0x12, + 0xbd, 0xe1, 0x95, 0xfe, 0xce, 0x07, 0x69, 0x3a, 0x8e, 0x79, 0x02, 0x02, 0x3a, 0x05, 0xbc, 0xb8, + 0x8d, 0x5c, 0x17, 0xb5, 0x9d, 0x8a, 0xd9, 0x08, 0x53, 0x2f, 0xb0, 0x63, 0x90, 0xfe, 0xc4, 0xab, + 0xa2, 0x17, 0xaf, 0x50, 0x64, 0xae, 0xd1, 0xc8, 0x6e, 0xc2, 0xd1, 0x90, 0xa8, 0x88, 0x21, 0xf3, + 0x93, 0x4c, 0xe6, 0xe1, 0x8e, 0xc8, 0xc0, 0x62, 0xd7, 0x80, 0x8f, 0x7b, 0xbe, 0x8c, 0x21, 0xf3, + 0xf7, 0x99, 0x4c, 0x9d, 0x61, 0xb9, 0x4b, 0xb1, 0xc4, 0xab, 0x30, 0xfa, 0x24, 0x6a, 0x5f, 0xb7, + 0x1d, 0xb6, 0x4b, 0x13, 0x43, 0xdc, 0xa7, 0x98, 0xb8, 0x11, 0x06, 0x24, 0xdb, 0x36, 0x58, 0xd6, + 0x45, 0x48, 0x6d, 0x99, 0x55, 0x14, 0x43, 0xc4, 0xa7, 0x99, 0x88, 0x43, 0x98, 0x1f, 0x43, 0x73, + 0x30, 0xb8, 0x6d, 0xb3, 0x99, 0x29, 0x1a, 0xfe, 0x1c, 0x83, 0x0f, 0x70, 0x0c, 0x13, 0xd1, 0xb2, + 0x5b, 0xbb, 0x0d, 0x3c, 0x6d, 0x45, 0x8b, 0xf8, 0x0c, 0x17, 0xc1, 0x31, 0x4c, 0xc4, 0x01, 0xcc, + 0xfa, 0x3c, 0x17, 0xe1, 0x04, 0xec, 0xf9, 0x30, 0x0c, 0xd8, 0x56, 0x63, 0xcf, 0xb6, 0xe2, 0x28, + 0xf1, 0x59, 0x26, 0x01, 0x18, 0x04, 0x0b, 0xb8, 0x04, 0xfd, 0x71, 0x1d, 0xf1, 0xb9, 0x57, 0x79, + 0x7a, 0x70, 0x0f, 0x5c, 0x81, 0x11, 0x5e, 0xa0, 0xea, 0xb6, 0x15, 0x43, 0xc4, 0x1f, 0x31, 0x11, + 0xc3, 0x01, 0x18, 0x7b, 0x0d, 0x17, 0x39, 0xee, 0x36, 0x8a, 0x23, 0xe4, 0xf3, 0xfc, 0x35, 0x18, + 0x84, 0x99, 0xf2, 0x3a, 0xb2, 0xaa, 0x3b, 0xf1, 0x24, 0xbc, 0xc0, 0x4d, 0xc9, 0x31, 0x58, 0x44, + 0x01, 0x86, 0x9a, 0x66, 0xdb, 0xd9, 0x31, 0x1b, 0xb1, 0xdc, 0xf1, 0x05, 0x26, 0x63, 0xd0, 0x03, + 0x31, 0x8b, 0xec, 0x5a, 0x07, 0x11, 0xf3, 0x45, 0x6e, 0x91, 0x00, 0x8c, 0xa5, 0x9e, 0xe3, 0x92, + 0x2d, 0xad, 0x83, 0x48, 0xfb, 0x63, 0x9e, 0x7a, 0x14, 0xbb, 0x12, 0x94, 0x78, 0x09, 0xfa, 0x9d, + 0xfa, 0x33, 0xb1, 0xc4, 0xfc, 0x09, 0xf7, 0x34, 0x01, 0x60, 0xf0, 0x35, 0xb8, 0x23, 0x74, 0x9a, + 0x88, 0x21, 0xec, 0x4f, 0x99, 0xb0, 0xf1, 0x90, 0xa9, 0x82, 0x95, 0x84, 0x83, 0x8a, 0xfc, 0x33, + 0x5e, 0x12, 0x90, 0x24, 0x6b, 0x0d, 0xaf, 0x15, 0x1c, 0x73, 0xeb, 0x60, 0x56, 0xfb, 0x73, 0x6e, + 0x35, 0x8a, 0x15, 0xac, 0xb6, 0x01, 0xe3, 0x4c, 0xe2, 0xc1, 0xfc, 0xfa, 0x25, 0x5e, 0x58, 0x29, + 0x7a, 0x53, 0xf4, 0xee, 0xfb, 0x60, 0xc2, 0x33, 0x27, 0x6f, 0x4a, 0x9d, 0x4a, 0xd3, 0x6c, 0xc5, + 0x90, 0xfc, 0x65, 0x26, 0x99, 0x57, 0x7c, 0xaf, 0xab, 0x75, 0x56, 0xcc, 0x16, 0x16, 0xfe, 0x18, + 0xa4, 0xb9, 0xf0, 0x5d, 0xab, 0x8d, 0xaa, 0xf6, 0xb6, 0x55, 0x7f, 0x06, 0xd5, 0x62, 0x88, 0xfe, + 0x0b, 0xc9, 0x55, 0x9b, 0x01, 0x38, 0x96, 0xbc, 0x04, 0x9a, 0xd7, 0xab, 0x54, 0xea, 0xcd, 0x96, + 0xdd, 0x76, 0x23, 0x24, 0x7e, 0x85, 0x7b, 0xca, 0xc3, 0x2d, 0x11, 0x58, 0xb6, 0x04, 0xc3, 0xe4, + 0x6b, 0xdc, 0x90, 0xfc, 0x2a, 0x13, 0x34, 0xe4, 0xa3, 0x58, 0xe1, 0xa8, 0xda, 0xcd, 0x96, 0xd9, + 0x8e, 0x53, 0xff, 0xfe, 0x92, 0x17, 0x0e, 0x06, 0x61, 0x85, 0xc3, 0xdd, 0x6b, 0x21, 0x3c, 0xdb, + 0xc7, 0x90, 0xf0, 0x35, 0x5e, 0x38, 0x38, 0x86, 0x89, 0xe0, 0x0d, 0x43, 0x0c, 0x11, 0x7f, 0xc5, + 0x45, 0x70, 0x0c, 0x16, 0xf1, 0x6e, 0x7f, 0xa2, 0x6d, 0xa3, 0xed, 0xba, 0xe3, 0xb6, 0x69, 0x2b, + 0xbc, 0xbf, 0xa8, 0xaf, 0xbf, 0x2a, 0x36, 0x61, 0x46, 0x00, 0x9a, 0xbd, 0x0a, 0x23, 0x52, 0x8b, + 0xa1, 0x47, 0xdd, 0x5f, 0x49, 0xff, 0xe2, 0x6b, 0xac, 0x18, 0x89, 0x1d, 0x46, 0x76, 0x19, 0xfb, + 0x5d, 0xec, 0x03, 0xa2, 0x85, 0x7d, 0xf0, 0x35, 0xcf, 0xf5, 0x42, 0x1b, 0x90, 0xbd, 0x0c, 0x43, + 0x42, 0x0f, 0x10, 0x2d, 0xea, 0x97, 0x98, 0xa8, 0xc1, 0x60, 0x0b, 0x90, 0x3d, 0x0b, 0x49, 0x3c, + 0x9f, 0x47, 0xc3, 0x7f, 0x99, 0xc1, 0x09, 0x7b, 0xf6, 0x41, 0x48, 0xf1, 0x79, 0x3c, 0x1a, 0xfa, + 0x21, 0x06, 0xf5, 0x20, 0x18, 0xce, 0xe7, 0xf0, 0x68, 0xf8, 0xaf, 0x70, 0x38, 0x87, 0x60, 0x78, + 0x7c, 0x13, 0xbe, 0xf8, 0x6b, 0x49, 0x56, 0x87, 0xb9, 0xed, 0x2e, 0xc1, 0x21, 0x36, 0x79, 0x47, + 0xa3, 0x3f, 0xc2, 0x1e, 0xce, 0x11, 0xd9, 0xf3, 0xd0, 0x1b, 0xd3, 0xe0, 0xbf, 0xce, 0xa0, 0x94, + 0x3f, 0x5b, 0x80, 0x81, 0xc0, 0x84, 0x1d, 0x0d, 0xff, 0x0d, 0x06, 0x0f, 0xa2, 0xb0, 0xea, 0x6c, + 0xc2, 0x8e, 0x16, 0xf0, 0x9b, 0x5c, 0x75, 0x86, 0xc0, 0x66, 0xe3, 0x73, 0x75, 0x34, 0xfa, 0xb7, + 0xb8, 0xd5, 0x39, 0x24, 0xfb, 0x30, 0xf4, 0x7b, 0xf5, 0x37, 0x1a, 0xff, 0xdb, 0x0c, 0xef, 0x63, + 0xb0, 0x05, 0x02, 0xf5, 0x3f, 0x5a, 0xc4, 0xef, 0x70, 0x0b, 0x04, 0x50, 0x38, 0x8d, 0xe4, 0x39, + 0x3d, 0x5a, 0xd2, 0x47, 0x79, 0x1a, 0x49, 0x53, 0x3a, 0xf6, 0x26, 0x29, 0x83, 0xd1, 0x22, 0x7e, + 0x97, 0x7b, 0x93, 0xf0, 0x63, 0x35, 0xe4, 0x49, 0x32, 0x5a, 0xc6, 0xc7, 0xb8, 0x1a, 0xd2, 0x1c, + 0x99, 0x5d, 0x03, 0xbd, 0x73, 0x82, 0x8c, 0x96, 0xf7, 0x71, 0x26, 0x6f, 0xb4, 0x63, 0x7e, 0xcc, + 0x3e, 0x0a, 0xe3, 0xe1, 0x93, 0x63, 0xb4, 0xd4, 0x4f, 0xbc, 0x26, 0x2d, 0x67, 0x82, 0x73, 0x63, + 0x76, 0xc3, 0xaf, 0xb2, 0xc1, 0x89, 0x31, 0x5a, 0xec, 0x27, 0x5f, 0x13, 0x0b, 0x6d, 0x70, 0x5e, + 0xcc, 0xe6, 0x00, 0xfc, 0x39, 0x29, 0x5a, 0xd6, 0xa7, 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x9b, + 0x92, 0xa2, 0xf1, 0x9f, 0xe6, 0xa9, 0xc1, 0x10, 0x38, 0x35, 0xf8, 0x6c, 0x14, 0x8d, 0x7e, 0x8e, + 0xa7, 0x06, 0x87, 0x64, 0x2f, 0x41, 0xca, 0xda, 0x6d, 0x34, 0x70, 0x6c, 0xe9, 0xfb, 0x5f, 0xc9, + 0x4a, 0xff, 0xeb, 0xeb, 0x0c, 0xcc, 0x01, 0xd9, 0xb3, 0xd0, 0x8b, 0x9a, 0xd7, 0x51, 0x2d, 0x0a, + 0xf9, 0x6f, 0xaf, 0xf3, 0x7a, 0x82, 0xb9, 0xb3, 0x0f, 0x03, 0xd0, 0xc5, 0x34, 0x39, 0x28, 0x8a, + 0xc0, 0xfe, 0xfb, 0xeb, 0xec, 0xb2, 0x84, 0x0f, 0xf1, 0x05, 0xd0, 0xab, 0x17, 0xfb, 0x0b, 0x78, + 0x55, 0x14, 0x40, 0x16, 0xe0, 0x17, 0xe1, 0xd0, 0xe3, 0x8e, 0x6d, 0xb9, 0xe6, 0x76, 0x14, 0xfa, + 0x3f, 0x18, 0x9a, 0xf3, 0x63, 0x83, 0x35, 0xed, 0x36, 0x72, 0xcd, 0x6d, 0x27, 0x0a, 0xfb, 0x9f, + 0x0c, 0xeb, 0x01, 0x30, 0xb8, 0x6a, 0x3a, 0x6e, 0x9c, 0xf7, 0xfe, 0x21, 0x07, 0x73, 0x00, 0x56, + 0x1a, 0x7f, 0x7e, 0x02, 0xed, 0x45, 0x61, 0x7f, 0xc4, 0x95, 0x66, 0xfc, 0xd9, 0x07, 0xa1, 0x1f, + 0x7f, 0xa4, 0x37, 0xa0, 0x22, 0xc0, 0xff, 0xc5, 0xc0, 0x3e, 0x02, 0x3f, 0xd9, 0x71, 0x6b, 0x6e, + 0x3d, 0xda, 0xd8, 0x3f, 0x66, 0x9e, 0xe6, 0xfc, 0xd9, 0x1c, 0x0c, 0x38, 0x6e, 0xad, 0xb6, 0xcb, + 0x3a, 0x9a, 0x08, 0xf8, 0x7f, 0xbf, 0xee, 0x2d, 0x72, 0x3d, 0x4c, 0xbe, 0x14, 0xbe, 0x5f, 0x07, + 0x57, 0xec, 0x2b, 0x36, 0xdd, 0xa9, 0x7b, 0x6f, 0x26, 0x7a, 0xcb, 0x0d, 0xbe, 0xdd, 0x80, 0x3b, + 0xaa, 0x76, 0xf3, 0xba, 0xed, 0x9c, 0xba, 0x6e, 0xbb, 0x3b, 0xa7, 0xdc, 0x1d, 0x84, 0xa7, 0x17, + 0xb6, 0x0b, 0x97, 0xc4, 0x9f, 0x27, 0x0e, 0xb6, 0x75, 0x47, 0x0e, 0x66, 0xcb, 0x75, 0xac, 0x7d, + 0x99, 0xec, 0x8d, 0xeb, 0xc7, 0xa0, 0x8f, 0xbc, 0xcf, 0x69, 0x72, 0xfe, 0xa4, 0xe4, 0x93, 0x37, + 0x5e, 0x9e, 0xea, 0x31, 0xd8, 0x98, 0x47, 0x5d, 0x20, 0x9b, 0x97, 0x09, 0x81, 0xba, 0xe0, 0x51, + 0xcf, 0xd0, 0xfd, 0x4b, 0x81, 0x7a, 0xc6, 0xa3, 0x2e, 0x92, 0x9d, 0x4c, 0x55, 0xa0, 0x2e, 0x7a, + 0xd4, 0xb3, 0x64, 0xb7, 0x7e, 0x48, 0xa0, 0x9e, 0xf5, 0xa8, 0xe7, 0xc8, 0x1e, 0x7d, 0x52, 0xa0, + 0x9e, 0xf3, 0xa8, 0xe7, 0xc9, 0xf6, 0xfc, 0xa8, 0x40, 0x3d, 0xef, 0x51, 0x2f, 0x90, 0x6d, 0x79, + 0x5d, 0xa0, 0x5e, 0xf0, 0xa8, 0x17, 0xc9, 0x9d, 0x97, 0x43, 0x02, 0xf5, 0xa2, 0x3e, 0x09, 0x87, + 0xe8, 0x9b, 0xcf, 0x93, 0x33, 0xdc, 0x11, 0x46, 0xe6, 0x83, 0x3e, 0xfd, 0x34, 0xb9, 0xdf, 0xd2, + 0x27, 0xd2, 0x4f, 0xfb, 0xf4, 0x05, 0x72, 0xd5, 0x5e, 0x13, 0xe9, 0x0b, 0x3e, 0xfd, 0x4c, 0x7a, + 0x88, 0xdc, 0xf1, 0x11, 0xe8, 0x67, 0x7c, 0xfa, 0x62, 0x7a, 0x18, 0x87, 0xb4, 0x48, 0x5f, 0xf4, + 0xe9, 0x67, 0xd3, 0x23, 0xd3, 0xca, 0xcc, 0xa0, 0x48, 0x3f, 0x9b, 0xf9, 0x00, 0x71, 0xaf, 0xe5, + 0xbb, 0x77, 0x5c, 0x74, 0xaf, 0xe7, 0xd8, 0x71, 0xd1, 0xb1, 0x9e, 0x4b, 0xc7, 0x45, 0x97, 0x7a, + 0xce, 0x1c, 0x17, 0x9d, 0xe9, 0xb9, 0x71, 0x5c, 0x74, 0xa3, 0xe7, 0xc0, 0x71, 0xd1, 0x81, 0x9e, + 0xeb, 0xc6, 0x45, 0xd7, 0x79, 0x4e, 0x1b, 0x17, 0x9d, 0xe6, 0xb9, 0x6b, 0x5c, 0x74, 0x97, 0xe7, + 0xa8, 0xb4, 0xe4, 0x28, 0xdf, 0x45, 0x69, 0xc9, 0x45, 0xbe, 0x73, 0xd2, 0x92, 0x73, 0x7c, 0xb7, + 0xa4, 0x25, 0xb7, 0xf8, 0x0e, 0x49, 0x4b, 0x0e, 0xf1, 0x5d, 0x91, 0x96, 0x5c, 0xe1, 0x3b, 0x81, + 0xe5, 0x98, 0x81, 0x5a, 0x21, 0x39, 0xa6, 0xee, 0x9b, 0x63, 0xea, 0xbe, 0x39, 0xa6, 0xee, 0x9b, + 0x63, 0xea, 0xbe, 0x39, 0xa6, 0xee, 0x9b, 0x63, 0xea, 0xbe, 0x39, 0xa6, 0xee, 0x9b, 0x63, 0xea, + 0xbe, 0x39, 0xa6, 0xee, 0x9f, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, + 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x5d, 0x73, 0xcc, 0x77, 0xef, 0xb8, 0xe8, 0xde, 0xd0, + 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, 0x39, 0xa6, 0x76, 0xc9, 0x31, 0xb5, + 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x92, 0x63, 0x6a, 0xb7, 0x1c, 0x53, 0xbb, 0xe6, 0x98, + 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, 0xb5, 0x6b, 0x8e, 0xa9, 0xc1, 0x1c, + 0xfb, 0x1b, 0x15, 0x74, 0x9a, 0x63, 0x6b, 0xe4, 0x16, 0x10, 0x73, 0xc5, 0xa4, 0x94, 0x69, 0x7d, + 0xd8, 0x75, 0x9a, 0xef, 0x92, 0x49, 0x29, 0xd7, 0x44, 0xfa, 0x82, 0x47, 0xe7, 0xd9, 0x26, 0xd2, + 0xcf, 0x78, 0x74, 0x9e, 0x6f, 0x22, 0x7d, 0xd1, 0xa3, 0xf3, 0x8c, 0x13, 0xe9, 0x67, 0x3d, 0x3a, + 0xcf, 0x39, 0x91, 0x7e, 0xce, 0xa3, 0xf3, 0xac, 0x13, 0xe9, 0xe7, 0x3d, 0x3a, 0xcf, 0x3b, 0x91, + 0x7e, 0xc1, 0xa3, 0xf3, 0xcc, 0x13, 0xe9, 0x17, 0xf5, 0x69, 0x39, 0xf7, 0x38, 0x83, 0xe7, 0xda, + 0x69, 0x39, 0xfb, 0x24, 0x8e, 0xd3, 0x3e, 0x07, 0xcf, 0x3f, 0x89, 0x63, 0xc1, 0xe7, 0xe0, 0x19, + 0x28, 0x71, 0x9c, 0xc9, 0x7c, 0x98, 0xb8, 0xcf, 0x92, 0xdd, 0x37, 0x21, 0xb9, 0x2f, 0x11, 0x70, + 0xdd, 0x84, 0xe4, 0xba, 0x44, 0xc0, 0x6d, 0x13, 0x92, 0xdb, 0x12, 0x01, 0x97, 0x4d, 0x48, 0x2e, + 0x4b, 0x04, 0xdc, 0x35, 0x21, 0xb9, 0x2b, 0x11, 0x70, 0xd5, 0x84, 0xe4, 0xaa, 0x44, 0xc0, 0x4d, + 0x13, 0x92, 0x9b, 0x12, 0x01, 0x17, 0x4d, 0x48, 0x2e, 0x4a, 0x04, 0xdc, 0x33, 0x21, 0xb9, 0x27, + 0x11, 0x70, 0xcd, 0x31, 0xd9, 0x35, 0x89, 0xa0, 0x5b, 0x8e, 0xc9, 0x6e, 0x49, 0x04, 0x5d, 0x72, + 0x4c, 0x76, 0x49, 0x22, 0xe8, 0x8e, 0x63, 0xb2, 0x3b, 0x12, 0x41, 0x57, 0xfc, 0x34, 0xc1, 0x3b, + 0xc2, 0x75, 0xb7, 0xbd, 0x5b, 0x75, 0x6f, 0xab, 0x23, 0x9c, 0x17, 0xda, 0x87, 0x81, 0x05, 0x7d, + 0x8e, 0x34, 0xac, 0xc1, 0x8e, 0x53, 0x9a, 0xc1, 0xe6, 0x85, 0xc6, 0x22, 0x80, 0xb0, 0xc2, 0x11, + 0x8b, 0xb7, 0xd5, 0x1b, 0xce, 0x0b, 0x6d, 0x46, 0xb4, 0x7e, 0x17, 0xde, 0xf2, 0x8e, 0xed, 0xc5, + 0x04, 0xef, 0xd8, 0x98, 0xf9, 0x0f, 0xda, 0xb1, 0xcd, 0x46, 0x9b, 0xdc, 0x33, 0xf6, 0x6c, 0xb4, + 0xb1, 0x3b, 0x66, 0x9d, 0xb8, 0x1d, 0xdc, 0x6c, 0xb4, 0x69, 0x3d, 0xa3, 0xbe, 0xb9, 0xfd, 0x16, + 0x8b, 0x60, 0x03, 0xb5, 0x42, 0x22, 0xf8, 0xa0, 0xfd, 0xd6, 0xbc, 0x50, 0x4a, 0x0e, 0x1a, 0xc1, + 0xea, 0x81, 0x23, 0xf8, 0xa0, 0x9d, 0xd7, 0xbc, 0x50, 0x5e, 0x0e, 0x1c, 0xc1, 0x6f, 0x41, 0x3f, + 0xc4, 0x22, 0xd8, 0x37, 0xff, 0x41, 0xfb, 0xa1, 0xd9, 0x68, 0x93, 0x87, 0x46, 0xb0, 0x7a, 0x80, + 0x08, 0x8e, 0xd3, 0x1f, 0xcd, 0x46, 0x9b, 0x36, 0x3c, 0x82, 0x6f, 0xbb, 0x9b, 0xf9, 0x8c, 0x02, + 0xa3, 0xe5, 0x7a, 0xad, 0xd4, 0xbc, 0x8e, 0x6a, 0x35, 0x54, 0x63, 0x76, 0x9c, 0x17, 0x2a, 0x41, + 0x17, 0x57, 0xbf, 0xf4, 0xf2, 0x94, 0x6f, 0xe1, 0xb3, 0x90, 0xa2, 0x36, 0x9d, 0x9f, 0x4f, 0xdf, + 0x50, 0x22, 0x2a, 0x9c, 0xc7, 0xaa, 0x1f, 0xe7, 0xb0, 0xd3, 0xf3, 0xe9, 0x7f, 0x54, 0x02, 0x55, + 0xce, 0x1b, 0xce, 0x7c, 0x94, 0x68, 0x68, 0xdd, 0xb6, 0x86, 0xa7, 0x62, 0x69, 0x18, 0xd0, 0xed, + 0xce, 0x0e, 0xdd, 0x02, 0x5a, 0xed, 0xc2, 0x48, 0xb9, 0x5e, 0x2b, 0x93, 0x3f, 0xf2, 0x8e, 0xa3, + 0x12, 0xe5, 0x91, 0xea, 0xc1, 0xbc, 0x10, 0x96, 0x41, 0x84, 0x17, 0xd2, 0x62, 0x8d, 0xc8, 0xd4, + 0xf1, 0x63, 0x2d, 0xe1, 0xb1, 0xb3, 0xdd, 0x1e, 0xeb, 0x57, 0x76, 0xef, 0x81, 0xb3, 0xdd, 0x1e, + 0xe8, 0xe7, 0x90, 0xf7, 0xa8, 0xa7, 0xf9, 0xe4, 0x4c, 0xef, 0xe2, 0xe8, 0xc7, 0x20, 0xb1, 0x44, + 0xaf, 0x0a, 0x0f, 0xe6, 0x07, 0xb1, 0x52, 0xdf, 0x7d, 0x79, 0x2a, 0xb9, 0xb9, 0x5b, 0xaf, 0x19, + 0x89, 0xa5, 0x9a, 0x7e, 0x15, 0x7a, 0xdf, 0xc3, 0xfe, 0xd4, 0x10, 0x33, 0x2c, 0x32, 0x86, 0xfb, + 0xbb, 0xee, 0x11, 0xe1, 0x07, 0x9f, 0xa2, 0xbb, 0x8c, 0x73, 0x9b, 0x75, 0xcb, 0x3d, 0xbd, 0x70, + 0xc1, 0xa0, 0x22, 0x32, 0xff, 0x17, 0x80, 0x3e, 0xb3, 0x68, 0x3a, 0x3b, 0x7a, 0x99, 0x4b, 0xa6, + 0x8f, 0xbe, 0xf0, 0xdd, 0x97, 0xa7, 0x16, 0xe3, 0x48, 0x7d, 0xa0, 0x66, 0x3a, 0x3b, 0x0f, 0xb8, + 0x7b, 0x2d, 0x34, 0x97, 0xdf, 0x73, 0x91, 0xc3, 0xa5, 0xb7, 0xf8, 0xac, 0xc7, 0xde, 0x2b, 0x1d, + 0x78, 0xaf, 0x94, 0xf0, 0x4e, 0x97, 0xc5, 0x77, 0x9a, 0x7f, 0xa3, 0xef, 0xf3, 0x34, 0x9f, 0x24, + 0x24, 0x4b, 0xaa, 0x51, 0x96, 0x54, 0x6f, 0xd7, 0x92, 0x2d, 0x5e, 0x1f, 0xa5, 0x77, 0x55, 0xf7, + 0x7b, 0x57, 0xf5, 0x76, 0xde, 0xf5, 0x7f, 0x68, 0xb6, 0x7a, 0xf9, 0xb4, 0x69, 0xd1, 0x6b, 0x8a, + 0x3f, 0x5f, 0x7b, 0x41, 0x6f, 0x6a, 0x17, 0x90, 0x4d, 0xde, 0x78, 0x7e, 0x4a, 0xc9, 0x7c, 0x26, + 0xc1, 0xdf, 0x9c, 0x26, 0xd2, 0x1b, 0x7b, 0xf3, 0x9f, 0x97, 0x9e, 0xea, 0xad, 0xb0, 0xd0, 0x73, + 0x0a, 0x8c, 0x77, 0x54, 0x72, 0x6a, 0xa6, 0x37, 0xb7, 0x9c, 0x5b, 0x07, 0x2d, 0xe7, 0x4c, 0xc1, + 0xaf, 0x2a, 0x70, 0x58, 0x2a, 0xaf, 0x54, 0xbd, 0x53, 0x92, 0x7a, 0x47, 0x3b, 0x9f, 0x44, 0x18, + 0x03, 0xda, 0x05, 0xdd, 0x2b, 0x01, 0x02, 0x92, 0x3d, 0xbf, 0x2f, 0x4a, 0x7e, 0x3f, 0xe6, 0x01, + 0x42, 0xcc, 0xc5, 0x23, 0x80, 0xa9, 0x6d, 0x43, 0x72, 0xa3, 0x8d, 0x90, 0x3e, 0x09, 0x89, 0xd5, + 0x36, 0xd3, 0x70, 0x98, 0xe2, 0x57, 0xdb, 0xf9, 0xb6, 0x69, 0x55, 0x77, 0x8c, 0xc4, 0x6a, 0x5b, + 0x3f, 0x0e, 0x6a, 0x8e, 0xfd, 0x99, 0xf3, 0xc0, 0xc2, 0x08, 0x65, 0xc8, 0x59, 0x35, 0xc6, 0x81, + 0x69, 0xfa, 0x24, 0x24, 0x97, 0x91, 0xb9, 0xc5, 0x94, 0x00, 0xca, 0x83, 0x47, 0x0c, 0x32, 0xce, + 0x1e, 0xf8, 0x18, 0xa4, 0xb8, 0x60, 0xfd, 0x04, 0x46, 0x6c, 0xb9, 0xec, 0xb1, 0x0c, 0x81, 0xd5, + 0x61, 0x33, 0x17, 0xa1, 0xea, 0x27, 0xa1, 0xd7, 0xa8, 0x6f, 0xef, 0xb8, 0xec, 0xe1, 0x9d, 0x6c, + 0x94, 0x9c, 0xb9, 0x06, 0xfd, 0x9e, 0x46, 0x6f, 0xb2, 0xe8, 0x22, 0x7d, 0x35, 0x7d, 0x22, 0x38, + 0x9f, 0xf0, 0x7d, 0x4b, 0x3a, 0xa4, 0x4f, 0x43, 0x6a, 0xdd, 0x6d, 0xfb, 0x45, 0x9f, 0x77, 0xa4, + 0xde, 0x68, 0xe6, 0x03, 0x0a, 0xa4, 0x8a, 0x08, 0xb5, 0x88, 0xc1, 0xef, 0x81, 0x64, 0xd1, 0x7e, + 0xca, 0x62, 0x0a, 0x8e, 0x32, 0x8b, 0x62, 0x32, 0xb3, 0x29, 0x21, 0xeb, 0xf7, 0x04, 0xed, 0x3e, + 0xe6, 0xd9, 0x3d, 0xc0, 0x47, 0x6c, 0x9f, 0x11, 0x6c, 0xcf, 0x1c, 0x88, 0x99, 0x3a, 0xec, 0x7f, + 0x1e, 0x06, 0x02, 0x4f, 0xd1, 0x67, 0x98, 0x1a, 0x09, 0x19, 0x18, 0xb4, 0x15, 0xe6, 0xc8, 0x20, + 0x18, 0x12, 0x1e, 0x8c, 0xa1, 0x01, 0x13, 0x77, 0x81, 0x12, 0x33, 0xcf, 0x8a, 0x66, 0x0e, 0x67, + 0x65, 0xa6, 0x9e, 0xa7, 0x36, 0x22, 0xe6, 0x3e, 0x41, 0x83, 0xb3, 0xbb, 0x13, 0xf1, 0xe7, 0x4c, + 0x2f, 0xa8, 0xe5, 0x7a, 0x23, 0xf3, 0x20, 0x00, 0x4d, 0xf9, 0x92, 0xb5, 0xdb, 0x94, 0xb2, 0x6e, + 0x98, 0x1b, 0x78, 0x63, 0x07, 0x6d, 0x20, 0x87, 0xb0, 0x88, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, + 0x8c, 0xe0, 0xef, 0x8b, 0xc4, 0x87, 0x76, 0x62, 0x98, 0x35, 0x4d, 0x59, 0xaf, 0x21, 0x37, 0x67, + 0xd9, 0xee, 0x0e, 0x6a, 0x4b, 0x88, 0x05, 0xfd, 0x8c, 0x90, 0xb0, 0xc3, 0x0b, 0x77, 0x7a, 0x88, + 0xae, 0xa0, 0x33, 0x99, 0x2f, 0x11, 0x05, 0x71, 0x2b, 0xd0, 0xf1, 0x82, 0x6a, 0x8c, 0x17, 0xd4, + 0xcf, 0x09, 0xfd, 0xdb, 0x3e, 0x6a, 0x4a, 0x4b, 0xcb, 0x8b, 0xc2, 0x3a, 0x67, 0x7f, 0x65, 0xc5, + 0x35, 0x26, 0xb7, 0x29, 0x57, 0xf9, 0xbe, 0x48, 0x95, 0xbb, 0x74, 0xb7, 0x07, 0xb5, 0xa9, 0x1a, + 0xd7, 0xa6, 0xdf, 0xf0, 0x3a, 0x0e, 0xfa, 0x5b, 0x12, 0xe4, 0x57, 0x58, 0xf4, 0xfb, 0x23, 0x7d, + 0x9f, 0x55, 0x0a, 0x9e, 0xaa, 0x8b, 0x71, 0xdd, 0x9f, 0x4d, 0xe4, 0xf3, 0x9e, 0xba, 0xe7, 0x0f, + 0x10, 0x02, 0xd9, 0x44, 0xa1, 0xe0, 0x95, 0xed, 0xd4, 0x87, 0x9f, 0x9f, 0x52, 0x5e, 0x78, 0x7e, + 0xaa, 0x27, 0xf3, 0x05, 0x05, 0x46, 0x19, 0x67, 0x20, 0x70, 0x1f, 0x90, 0x94, 0x3f, 0xc2, 0x6b, + 0x46, 0x98, 0x05, 0xde, 0xb6, 0xe0, 0xfd, 0x96, 0x02, 0xe9, 0x0e, 0x5d, 0xb9, 0xbd, 0xe7, 0x63, + 0xa9, 0x9c, 0x55, 0x4a, 0x3f, 0x7b, 0x9b, 0x5f, 0x83, 0xde, 0x8d, 0x7a, 0x13, 0xb5, 0xf1, 0x4c, + 0x80, 0x3f, 0x50, 0x95, 0xf9, 0x61, 0x0e, 0x1d, 0xe2, 0x34, 0xaa, 0x9c, 0x40, 0x5b, 0xd0, 0xd3, + 0x90, 0x2c, 0x9a, 0xae, 0x49, 0x34, 0x18, 0xf4, 0xea, 0xab, 0xe9, 0x9a, 0x99, 0x33, 0x30, 0xb8, + 0xb2, 0x47, 0x2e, 0xd2, 0xd4, 0xc8, 0x25, 0x11, 0xb1, 0xfb, 0xe3, 0xfd, 0xea, 0xe9, 0xd9, 0xde, + 0x54, 0x4d, 0xbb, 0xa1, 0x64, 0x93, 0x44, 0x9f, 0x27, 0x61, 0x78, 0x15, 0xab, 0x4d, 0x70, 0x02, + 0x8c, 0x3e, 0x5d, 0xf5, 0x5e, 0x5e, 0x6a, 0xca, 0x54, 0xbf, 0x29, 0x9b, 0x06, 0x65, 0x45, 0x6c, + 0x9d, 0x82, 0x7a, 0x18, 0xca, 0xca, 0x6c, 0x32, 0x35, 0xac, 0x8d, 0xce, 0x26, 0x53, 0xa0, 0x0d, + 0xb1, 0xe7, 0xfe, 0xbd, 0x0a, 0x1a, 0x6d, 0x75, 0x8a, 0x68, 0xab, 0x6e, 0xd5, 0xdd, 0xce, 0x7e, + 0xd5, 0xd3, 0x58, 0x7f, 0x18, 0xfa, 0xb1, 0x49, 0x2f, 0xb3, 0x1f, 0x63, 0xc3, 0xa6, 0x3f, 0xce, + 0x5a, 0x14, 0x49, 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0xcb, 0xa0, 0x96, 0xcb, 0x2b, 0x6c, + 0x72, 0x5b, 0xdc, 0x17, 0xca, 0xee, 0xe1, 0xb0, 0x6f, 0x6c, 0xcc, 0xd9, 0x36, 0xb0, 0x00, 0x7d, + 0x11, 0x12, 0xe5, 0x15, 0xd6, 0xf0, 0x9e, 0x88, 0x23, 0xc6, 0x48, 0x94, 0x57, 0x26, 0xfe, 0x56, + 0x81, 0x21, 0x61, 0x54, 0xcf, 0xc0, 0x20, 0x1d, 0x08, 0xbc, 0x6e, 0x9f, 0x21, 0x8c, 0x71, 0x9d, + 0x13, 0xb7, 0xa9, 0xf3, 0x44, 0x0e, 0x46, 0xa4, 0x71, 0x7d, 0x0e, 0xf4, 0xe0, 0x10, 0x53, 0x82, + 0xfe, 0x10, 0x54, 0x08, 0x25, 0x73, 0x17, 0x80, 0x6f, 0x57, 0xef, 0xf7, 0x8b, 0xca, 0xa5, 0xf5, + 0x8d, 0x52, 0x51, 0x53, 0x32, 0x5f, 0x53, 0x60, 0x80, 0xb5, 0xad, 0x55, 0xbb, 0x85, 0xf4, 0x3c, + 0x28, 0x39, 0x16, 0x0f, 0x6f, 0x4c, 0x6f, 0x25, 0xa7, 0x9f, 0x02, 0x25, 0x1f, 0xdf, 0xd5, 0x4a, + 0x5e, 0x5f, 0x00, 0xa5, 0xc0, 0x1c, 0x1c, 0xcf, 0x33, 0x4a, 0x21, 0xf3, 0x63, 0x15, 0xc6, 0x82, + 0x6d, 0x34, 0xaf, 0x27, 0xc7, 0xc5, 0x75, 0x53, 0xb6, 0xff, 0xf4, 0xc2, 0x99, 0xc5, 0x39, 0xfc, + 0x8f, 0x17, 0x92, 0x19, 0x71, 0x09, 0x95, 0x05, 0x8f, 0xe5, 0x74, 0xb7, 0x7b, 0x22, 0xd9, 0x64, + 0x40, 0x42, 0xc7, 0x3d, 0x11, 0x81, 0xda, 0x71, 0x4f, 0x44, 0xa0, 0x76, 0xdc, 0x13, 0x11, 0xa8, + 0x1d, 0x67, 0x01, 0x02, 0xb5, 0xe3, 0x9e, 0x88, 0x40, 0xed, 0xb8, 0x27, 0x22, 0x50, 0x3b, 0xef, + 0x89, 0x30, 0x72, 0xd7, 0x7b, 0x22, 0x22, 0xbd, 0xf3, 0x9e, 0x88, 0x48, 0xef, 0xbc, 0x27, 0x92, + 0x4d, 0xba, 0xed, 0x5d, 0xd4, 0xfd, 0xd4, 0x41, 0xc4, 0xef, 0xb7, 0x08, 0xf4, 0x2b, 0xf0, 0x2a, + 0x8c, 0xd0, 0x0d, 0x89, 0x82, 0x6d, 0xb9, 0x66, 0xdd, 0x42, 0x6d, 0xfd, 0x9d, 0x30, 0x48, 0x87, + 0xe8, 0x32, 0x27, 0x6c, 0x19, 0x48, 0xe9, 0xac, 0xde, 0x0a, 0xdc, 0x99, 0x9f, 0x26, 0x61, 0x9c, + 0x0e, 0x94, 0xcd, 0x26, 0x12, 0x6e, 0x19, 0x9d, 0x94, 0xce, 0x94, 0x86, 0x31, 0xfc, 0xd6, 0xcb, + 0x53, 0x74, 0x34, 0xe7, 0x45, 0xd3, 0x49, 0xe9, 0x74, 0x49, 0xe4, 0xf3, 0x27, 0xa0, 0x93, 0xd2, + 0xcd, 0x23, 0x91, 0xcf, 0x9b, 0x6f, 0x3c, 0x3e, 0x7e, 0x07, 0x49, 0xe4, 0x2b, 0x7a, 0x51, 0x76, + 0x52, 0xba, 0x8d, 0x24, 0xf2, 0x95, 0xbc, 0x78, 0x3b, 0x29, 0x9d, 0x3d, 0x89, 0x7c, 0x97, 0xbd, + 0xc8, 0x3b, 0x29, 0x9d, 0x42, 0x89, 0x7c, 0x57, 0xbc, 0x18, 0x3c, 0x29, 0xdd, 0x55, 0x12, 0xf9, + 0x1e, 0xf1, 0xa2, 0xf1, 0xa4, 0x74, 0x6b, 0x49, 0xe4, 0x5b, 0xf2, 0xe2, 0x72, 0x46, 0xbe, 0xbf, + 0x24, 0x32, 0x5e, 0xf5, 0x23, 0x74, 0x46, 0xbe, 0xc9, 0x24, 0x72, 0xbe, 0xcb, 0x8f, 0xd5, 0x19, + 0xf9, 0x4e, 0x93, 0xc8, 0xb9, 0xec, 0x47, 0xed, 0x8c, 0x7c, 0x56, 0x26, 0x72, 0xae, 0xf8, 0xf1, + 0x3b, 0x23, 0x9f, 0x9a, 0x89, 0x9c, 0x65, 0x3f, 0x92, 0x67, 0xe4, 0xf3, 0x33, 0x91, 0x73, 0xd5, + 0xdf, 0x44, 0xff, 0xa6, 0x14, 0x7e, 0x81, 0x5b, 0x50, 0x19, 0x29, 0xfc, 0x20, 0x24, 0xf4, 0xa4, + 0x42, 0x16, 0xe0, 0xf1, 0xc3, 0x2e, 0x23, 0x85, 0x1d, 0x84, 0x84, 0x5c, 0x46, 0x0a, 0x39, 0x08, + 0x09, 0xb7, 0x8c, 0x14, 0x6e, 0x10, 0x12, 0x6a, 0x19, 0x29, 0xd4, 0x20, 0x24, 0xcc, 0x32, 0x52, + 0x98, 0x41, 0x48, 0x88, 0x65, 0xa4, 0x10, 0x83, 0x90, 0xf0, 0xca, 0x48, 0xe1, 0x05, 0x21, 0xa1, + 0x75, 0x42, 0x0e, 0x2d, 0x08, 0x0b, 0xab, 0x13, 0x72, 0x58, 0x41, 0x58, 0x48, 0xdd, 0x2d, 0x87, + 0x54, 0xff, 0xad, 0x97, 0xa7, 0x7a, 0xf1, 0x50, 0x20, 0x9a, 0x4e, 0xc8, 0xd1, 0x04, 0x61, 0x91, + 0x74, 0x42, 0x8e, 0x24, 0x08, 0x8b, 0xa2, 0x13, 0x72, 0x14, 0x41, 0x58, 0x04, 0xbd, 0x28, 0x47, + 0x90, 0x7f, 0xc7, 0x27, 0x23, 0x1d, 0x29, 0x46, 0x45, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, + 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, + 0x08, 0x52, 0xe3, 0x44, 0x90, 0x1a, 0x2b, 0x82, 0xd4, 0x6e, 0x11, 0x74, 0x42, 0xbe, 0xf1, 0x00, + 0x61, 0x05, 0xe9, 0x84, 0x7c, 0xf4, 0x19, 0x1d, 0x42, 0x6a, 0xac, 0x10, 0x52, 0xbb, 0x85, 0xd0, + 0x37, 0x55, 0x18, 0x13, 0x42, 0x88, 0x9d, 0x0f, 0xbd, 0x59, 0x15, 0xe8, 0x5c, 0x8c, 0x0b, 0x16, + 0x61, 0x31, 0x75, 0x2e, 0xc6, 0x21, 0xf5, 0x7e, 0x71, 0xd6, 0x59, 0x85, 0x4a, 0x31, 0xaa, 0xd0, + 0x65, 0x2f, 0x86, 0xce, 0xc5, 0xb8, 0x78, 0xd1, 0x19, 0x7b, 0x17, 0xf6, 0x2b, 0x02, 0x8f, 0xc4, + 0x2a, 0x02, 0x4b, 0xb1, 0x8a, 0xc0, 0x55, 0xdf, 0x83, 0x1f, 0x4a, 0xc0, 0x61, 0xdf, 0x83, 0xf4, + 0x13, 0xf9, 0xb1, 0xa4, 0x4c, 0xe0, 0x88, 0x4a, 0xe7, 0xc7, 0x36, 0x01, 0x37, 0x26, 0x96, 0x6a, + 0xfa, 0x9a, 0x78, 0x58, 0x95, 0x3d, 0xe8, 0x01, 0x4e, 0xc0, 0xe3, 0x6c, 0x33, 0xf4, 0x04, 0xa8, + 0x4b, 0x35, 0x87, 0x54, 0x8b, 0xb0, 0xc7, 0x16, 0x0c, 0x4c, 0xd6, 0x0d, 0xe8, 0x23, 0xec, 0x0e, + 0x71, 0xef, 0xed, 0x3c, 0xb8, 0x68, 0x30, 0x49, 0x99, 0x17, 0x15, 0x98, 0x16, 0x42, 0xf9, 0xcd, + 0x39, 0x32, 0xb8, 0x14, 0xeb, 0xc8, 0x40, 0x48, 0x10, 0xff, 0xf8, 0xe0, 0xde, 0xce, 0x93, 0xea, + 0x60, 0x96, 0xc8, 0x47, 0x09, 0xbf, 0x00, 0xc3, 0xfe, 0x1b, 0x90, 0x35, 0xdb, 0xd9, 0xe8, 0xdd, + 0xcc, 0xb0, 0xd4, 0x3c, 0x2b, 0xed, 0xa2, 0xed, 0x0b, 0xf3, 0xb2, 0x35, 0x93, 0x85, 0x91, 0xb2, + 0xf8, 0x27, 0x3d, 0x51, 0x9b, 0x11, 0x29, 0xdc, 0x9a, 0xdf, 0xf8, 0xec, 0x54, 0x4f, 0xe6, 0x7e, + 0x18, 0x0c, 0xfe, 0xd5, 0x8e, 0x04, 0xec, 0xe7, 0xc0, 0x6c, 0xf2, 0x25, 0xcc, 0xfd, 0x7b, 0x0a, + 0x1c, 0x09, 0xb2, 0x3f, 0x5a, 0x77, 0x77, 0x96, 0x2c, 0xdc, 0xd3, 0x3f, 0x08, 0x29, 0xc4, 0x1c, + 0xc7, 0x7e, 0xf7, 0x84, 0xad, 0x23, 0x43, 0xd9, 0xe7, 0xc8, 0xbf, 0x86, 0x07, 0x91, 0x76, 0x41, + 0xf8, 0x63, 0x17, 0x26, 0xee, 0x81, 0x5e, 0x2a, 0x5f, 0xd4, 0x6b, 0x48, 0xd2, 0xeb, 0x73, 0x21, + 0x7a, 0x91, 0x38, 0xd2, 0xaf, 0x0a, 0x7a, 0x05, 0x96, 0xab, 0xa1, 0xec, 0x73, 0x3c, 0xf8, 0xf2, + 0x29, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x56, 0x72, 0x06, 0x52, 0x25, 0x99, 0x27, 0x5c, 0xcf, 0x22, + 0x24, 0xcb, 0x76, 0x8d, 0xfc, 0x22, 0x0b, 0xf9, 0x09, 0x62, 0x66, 0x64, 0xf6, 0x7b, 0xc4, 0x27, + 0x21, 0x55, 0xd8, 0xa9, 0x37, 0x6a, 0x6d, 0x64, 0xb1, 0x33, 0x7b, 0xb6, 0x85, 0x8e, 0x31, 0x86, + 0x47, 0xcb, 0x14, 0x60, 0xb4, 0x6c, 0x5b, 0xf9, 0x3d, 0x37, 0x58, 0x37, 0xe6, 0xa4, 0x14, 0x61, + 0x67, 0x3e, 0xe4, 0xef, 0x40, 0x30, 0x43, 0xbe, 0xf7, 0xbb, 0x2f, 0x4f, 0x29, 0x1b, 0xde, 0xfe, + 0xf9, 0x0a, 0x1c, 0x65, 0xe9, 0xd3, 0x21, 0x6a, 0x21, 0x4a, 0x54, 0x3f, 0x3b, 0xa7, 0x0e, 0x88, + 0x5b, 0xc2, 0xe2, 0xac, 0x50, 0x71, 0x6f, 0x4c, 0x33, 0xdc, 0x14, 0xed, 0xab, 0x99, 0x7a, 0x20, + 0xcd, 0x42, 0xc5, 0xcd, 0x45, 0x89, 0x93, 0x34, 0xbb, 0x1b, 0xfa, 0x3d, 0x5a, 0x20, 0x1a, 0x82, + 0x99, 0xb2, 0x30, 0x9b, 0x81, 0x81, 0x40, 0xc2, 0xea, 0xbd, 0xa0, 0xe4, 0xb4, 0x1e, 0xfc, 0x5f, + 0x5e, 0x53, 0xf0, 0x7f, 0x05, 0x2d, 0x31, 0x7b, 0x0f, 0x8c, 0x48, 0xfb, 0x97, 0x98, 0x52, 0xd4, + 0x00, 0xff, 0x57, 0xd2, 0x06, 0x26, 0x92, 0x1f, 0xfe, 0xc3, 0xc9, 0x9e, 0xd9, 0x4b, 0xa0, 0x77, + 0xee, 0x74, 0xea, 0x7d, 0x90, 0xc8, 0x61, 0x91, 0x47, 0x21, 0x91, 0xcf, 0x6b, 0xca, 0xc4, 0xc8, + 0xaf, 0x7e, 0x7a, 0x7a, 0x20, 0x4f, 0xfe, 0x24, 0xf9, 0x1a, 0x72, 0xf3, 0x79, 0x06, 0x7e, 0x08, + 0x8e, 0x84, 0xee, 0x94, 0x62, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x07, 0xbe, 0x58, 0x24, 0x78, + 0x25, 0xcb, 0x4f, 0x9c, 0x73, 0x7a, 0xc8, 0x2e, 0x63, 0xba, 0x16, 0x38, 0xe1, 0xce, 0x65, 0x1f, + 0x62, 0xbc, 0xf9, 0x50, 0x5e, 0x14, 0x71, 0x62, 0x9d, 0xcf, 0x16, 0x18, 0xbe, 0x10, 0x8a, 0xdf, + 0x92, 0x8e, 0x55, 0xc5, 0x19, 0x82, 0x09, 0x29, 0x78, 0x0a, 0x17, 0x43, 0x85, 0xec, 0x04, 0x2e, + 0xbb, 0x17, 0x3d, 0x85, 0x4b, 0xa1, 0xbc, 0xf5, 0x88, 0x4b, 0x5f, 0xa5, 0xec, 0x29, 0x36, 0xc9, + 0xe7, 0x4e, 0xeb, 0x47, 0x78, 0x8e, 0x0a, 0x15, 0x98, 0x19, 0x88, 0x73, 0x65, 0x0b, 0x0c, 0x90, + 0xef, 0x0a, 0xe8, 0x6e, 0x25, 0x8e, 0xcc, 0x3e, 0xc2, 0x84, 0x14, 0xba, 0x0a, 0x89, 0x30, 0x15, + 0x87, 0xe7, 0x37, 0x6e, 0xdc, 0x9c, 0xec, 0x79, 0xe9, 0xe6, 0x64, 0xcf, 0x3f, 0xdd, 0x9c, 0xec, + 0xf9, 0xde, 0xcd, 0x49, 0xe5, 0x07, 0x37, 0x27, 0x95, 0x1f, 0xdd, 0x9c, 0x54, 0x7e, 0x72, 0x73, + 0x52, 0x79, 0xf6, 0xd6, 0xa4, 0xf2, 0xc2, 0xad, 0x49, 0xe5, 0x4b, 0xb7, 0x26, 0x95, 0xaf, 0xdf, + 0x9a, 0x54, 0x5e, 0xbc, 0x35, 0xa9, 0xdc, 0xb8, 0x35, 0xa9, 0xbc, 0x74, 0x6b, 0x52, 0xf9, 0xde, + 0xad, 0x49, 0xe5, 0x07, 0xb7, 0x26, 0x7b, 0x7e, 0x74, 0x6b, 0x52, 0xf9, 0xc9, 0xad, 0xc9, 0x9e, + 0x67, 0x5f, 0x99, 0xec, 0x79, 0xfe, 0x95, 0xc9, 0x9e, 0x17, 0x5e, 0x99, 0x54, 0xfe, 0x37, 0x00, + 0x00, 0xff, 0xff, 0xaa, 0x81, 0x18, 0x04, 0xd6, 0x66, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -12583,8 +12590,8 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12638,8 +12645,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12705,8 +12712,8 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12772,8 +12779,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -15829,7 +15836,7 @@ func (this *ProtoType) Equal(that interface{}) bool { } type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() float64 GetField2() float32 GetField3() int32 @@ -15847,11 +15854,11 @@ type NidOptNativeFace interface { GetField15() []byte } -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNative) Proto() proto.Message { return this } -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNative) TestProto() proto.Message { return NewNidOptNativeFromFace(this) } @@ -15936,7 +15943,7 @@ func NewNidOptNativeFromFace(that NidOptNativeFace) *NidOptNative { } type NinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *int32 @@ -15954,11 +15961,11 @@ type NinOptNativeFace interface { GetField15() []byte } -func (this *NinOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNative) Proto() proto.Message { return this } -func (this *NinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNative) TestProto() proto.Message { return NewNinOptNativeFromFace(this) } @@ -16043,7 +16050,7 @@ func NewNinOptNativeFromFace(that NinOptNativeFace) *NinOptNative { } type NidRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16061,11 +16068,11 @@ type NidRepNativeFace interface { GetField15() [][]byte } -func (this *NidRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNative) Proto() proto.Message { return this } -func (this *NidRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNative) TestProto() proto.Message { return NewNidRepNativeFromFace(this) } @@ -16150,7 +16157,7 @@ func NewNidRepNativeFromFace(that NidRepNativeFace) *NidRepNative { } type NinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16168,11 +16175,11 @@ type NinRepNativeFace interface { GetField15() [][]byte } -func (this *NinRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNative) Proto() proto.Message { return this } -func (this *NinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNative) TestProto() proto.Message { return NewNinRepNativeFromFace(this) } @@ -16257,7 +16264,7 @@ func NewNinRepNativeFromFace(that NinRepNativeFace) *NinRepNative { } type NidRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16273,11 +16280,11 @@ type NidRepPackedNativeFace interface { GetField13() []bool } -func (this *NidRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepPackedNative) Proto() proto.Message { return this } -func (this *NidRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepPackedNative) TestProto() proto.Message { return NewNidRepPackedNativeFromFace(this) } @@ -16352,7 +16359,7 @@ func NewNidRepPackedNativeFromFace(that NidRepPackedNativeFace) *NidRepPackedNat } type NinRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16368,11 +16375,11 @@ type NinRepPackedNativeFace interface { GetField13() []bool } -func (this *NinRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepPackedNative) Proto() proto.Message { return this } -func (this *NinRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepPackedNative) TestProto() proto.Message { return NewNinRepPackedNativeFromFace(this) } @@ -16447,7 +16454,7 @@ func NewNinRepPackedNativeFromFace(that NinRepPackedNativeFace) *NinRepPackedNat } type NidOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() float64 GetField2() float32 GetField3() NidOptNative @@ -16460,11 +16467,11 @@ type NidOptStructFace interface { GetField15() []byte } -func (this *NidOptStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptStruct) Proto() proto.Message { return this } -func (this *NidOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptStruct) TestProto() proto.Message { return NewNidOptStructFromFace(this) } @@ -16524,7 +16531,7 @@ func NewNidOptStructFromFace(that NidOptStructFace) *NidOptStruct { } type NinOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *NidOptNative @@ -16537,11 +16544,11 @@ type NinOptStructFace interface { GetField15() []byte } -func (this *NinOptStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStruct) Proto() proto.Message { return this } -func (this *NinOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStruct) TestProto() proto.Message { return NewNinOptStructFromFace(this) } @@ -16601,7 +16608,7 @@ func NewNinOptStructFromFace(that NinOptStructFace) *NinOptStruct { } type NidRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []NidOptNative @@ -16614,11 +16621,11 @@ type NidRepStructFace interface { GetField15() [][]byte } -func (this *NidRepStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepStruct) Proto() proto.Message { return this } -func (this *NidRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepStruct) TestProto() proto.Message { return NewNidRepStructFromFace(this) } @@ -16678,7 +16685,7 @@ func NewNidRepStructFromFace(that NidRepStructFace) *NidRepStruct { } type NinRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []*NidOptNative @@ -16691,11 +16698,11 @@ type NinRepStructFace interface { GetField15() [][]byte } -func (this *NinRepStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepStruct) Proto() proto.Message { return this } -func (this *NinRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepStruct) TestProto() proto.Message { return NewNinRepStructFromFace(this) } @@ -16755,17 +16762,17 @@ func NewNinRepStructFromFace(that NinRepStructFace) *NinRepStruct { } type NidEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() NidOptNative GetField210() bool } -func (this *NidEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidEmbeddedStruct) Proto() proto.Message { return this } -func (this *NidEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidEmbeddedStruct) TestProto() proto.Message { return NewNidEmbeddedStructFromFace(this) } @@ -16790,17 +16797,17 @@ func NewNidEmbeddedStructFromFace(that NidEmbeddedStructFace) *NidEmbeddedStruct } type NinEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() *NidOptNative GetField210() *bool } -func (this *NinEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStruct) Proto() proto.Message { return this } -func (this *NinEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStruct) TestProto() proto.Message { return NewNinEmbeddedStructFromFace(this) } @@ -16825,16 +16832,16 @@ func NewNinEmbeddedStructFromFace(that NinEmbeddedStructFace) *NinEmbeddedStruct } type NidNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() NidOptStruct GetField2() []NidRepStruct } -func (this *NidNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidNestedStruct) Proto() proto.Message { return this } -func (this *NidNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidNestedStruct) TestProto() proto.Message { return NewNidNestedStructFromFace(this) } @@ -16854,16 +16861,16 @@ func NewNidNestedStructFromFace(that NidNestedStructFace) *NidNestedStruct { } type NinNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *NinOptStruct GetField2() []*NinRepStruct } -func (this *NinNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStruct) Proto() proto.Message { return this } -func (this *NinNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStruct) TestProto() proto.Message { return NewNinNestedStructFromFace(this) } @@ -16883,16 +16890,16 @@ func NewNinNestedStructFromFace(that NinNestedStructFace) *NinNestedStruct { } type NidOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() Uuid GetValue() github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NidOptCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptCustom) Proto() proto.Message { return this } -func (this *NidOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptCustom) TestProto() proto.Message { return NewNidOptCustomFromFace(this) } @@ -16912,15 +16919,15 @@ func NewNidOptCustomFromFace(that NidOptCustomFace) *NidOptCustom { } type CustomDashFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes } -func (this *CustomDash) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomDash) Proto() proto.Message { return this } -func (this *CustomDash) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomDash) TestProto() proto.Message { return NewCustomDashFromFace(this) } @@ -16935,16 +16942,16 @@ func NewCustomDashFromFace(that CustomDashFace) *CustomDash { } type NinOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() *Uuid GetValue() *github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NinOptCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptCustom) Proto() proto.Message { return this } -func (this *NinOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptCustom) TestProto() proto.Message { return NewNinOptCustomFromFace(this) } @@ -16964,16 +16971,16 @@ func NewNinOptCustomFromFace(that NinOptCustomFace) *NinOptCustom { } type NidRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() []Uuid GetValue() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NidRepCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepCustom) Proto() proto.Message { return this } -func (this *NidRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepCustom) TestProto() proto.Message { return NewNidRepCustomFromFace(this) } @@ -16993,16 +17000,16 @@ func NewNidRepCustomFromFace(that NidRepCustomFace) *NidRepCustom { } type NinRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() []Uuid GetValue() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NinRepCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepCustom) Proto() proto.Message { return this } -func (this *NinRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepCustom) TestProto() proto.Message { return NewNinRepCustomFromFace(this) } @@ -17022,7 +17029,7 @@ func NewNinRepCustomFromFace(that NinRepCustomFace) *NinRepCustom { } type NinOptNativeUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *int32 @@ -17034,11 +17041,11 @@ type NinOptNativeUnionFace interface { GetField15() []byte } -func (this *NinOptNativeUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNativeUnion) Proto() proto.Message { return this } -func (this *NinOptNativeUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNativeUnion) TestProto() proto.Message { return NewNinOptNativeUnionFromFace(this) } @@ -17093,7 +17100,7 @@ func NewNinOptNativeUnionFromFace(that NinOptNativeUnionFace) *NinOptNativeUnion } type NinOptStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *NidOptNative @@ -17105,11 +17112,11 @@ type NinOptStructUnionFace interface { GetField15() []byte } -func (this *NinOptStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStructUnion) Proto() proto.Message { return this } -func (this *NinOptStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStructUnion) TestProto() proto.Message { return NewNinOptStructUnionFromFace(this) } @@ -17164,17 +17171,17 @@ func NewNinOptStructUnionFromFace(that NinOptStructUnionFace) *NinOptStructUnion } type NinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() *NinOptNative GetField210() *bool } -func (this *NinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStructUnion) Proto() proto.Message { return this } -func (this *NinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStructUnion) TestProto() proto.Message { return NewNinEmbeddedStructUnionFromFace(this) } @@ -17199,17 +17206,17 @@ func NewNinEmbeddedStructUnionFromFace(that NinEmbeddedStructUnionFace) *NinEmbe } type NinNestedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *NinOptNativeUnion GetField2() *NinOptStructUnion GetField3() *NinEmbeddedStructUnion } -func (this *NinNestedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStructUnion) Proto() proto.Message { return this } -func (this *NinNestedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStructUnion) TestProto() proto.Message { return NewNinNestedStructUnionFromFace(this) } @@ -17234,17 +17241,17 @@ func NewNinNestedStructUnionFromFace(that NinNestedStructUnionFace) *NinNestedSt } type TreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetOr() *OrBranch GetAnd() *AndBranch GetLeaf() *Leaf } -func (this *Tree) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Tree) Proto() proto.Message { return this } -func (this *Tree) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Tree) TestProto() proto.Message { return NewTreeFromFace(this) } @@ -17269,16 +17276,16 @@ func NewTreeFromFace(that TreeFace) *Tree { } type OrBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() Tree GetRight() Tree } -func (this *OrBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *OrBranch) Proto() proto.Message { return this } -func (this *OrBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *OrBranch) TestProto() proto.Message { return NewOrBranchFromFace(this) } @@ -17298,16 +17305,16 @@ func NewOrBranchFromFace(that OrBranchFace) *OrBranch { } type AndBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() Tree GetRight() Tree } -func (this *AndBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AndBranch) Proto() proto.Message { return this } -func (this *AndBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AndBranch) TestProto() proto.Message { return NewAndBranchFromFace(this) } @@ -17327,16 +17334,16 @@ func NewAndBranchFromFace(that AndBranchFace) *AndBranch { } type LeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetValue() int64 GetStrValue() string } -func (this *Leaf) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Leaf) Proto() proto.Message { return this } -func (this *Leaf) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Leaf) TestProto() proto.Message { return NewLeafFromFace(this) } @@ -17356,17 +17363,17 @@ func NewLeafFromFace(that LeafFace) *Leaf { } type DeepTreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetDown() *ADeepBranch GetAnd() *AndDeepBranch GetLeaf() *DeepLeaf } -func (this *DeepTree) Proto() github_com_gogo_protobuf_proto.Message { +func (this *DeepTree) Proto() proto.Message { return this } -func (this *DeepTree) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *DeepTree) TestProto() proto.Message { return NewDeepTreeFromFace(this) } @@ -17391,15 +17398,15 @@ func NewDeepTreeFromFace(that DeepTreeFace) *DeepTree { } type ADeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetDown() DeepTree } -func (this *ADeepBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ADeepBranch) Proto() proto.Message { return this } -func (this *ADeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ADeepBranch) TestProto() proto.Message { return NewADeepBranchFromFace(this) } @@ -17414,16 +17421,16 @@ func NewADeepBranchFromFace(that ADeepBranchFace) *ADeepBranch { } type AndDeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() DeepTree GetRight() DeepTree } -func (this *AndDeepBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AndDeepBranch) Proto() proto.Message { return this } -func (this *AndDeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AndDeepBranch) TestProto() proto.Message { return NewAndDeepBranchFromFace(this) } @@ -17443,15 +17450,15 @@ func NewAndDeepBranchFromFace(that AndDeepBranchFace) *AndDeepBranch { } type DeepLeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetTree() Tree } -func (this *DeepLeaf) Proto() github_com_gogo_protobuf_proto.Message { +func (this *DeepLeaf) Proto() proto.Message { return this } -func (this *DeepLeaf) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *DeepLeaf) TestProto() proto.Message { return NewDeepLeafFromFace(this) } @@ -17466,14 +17473,14 @@ func NewDeepLeafFromFace(that DeepLeafFace) *DeepLeaf { } type NilFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message } -func (this *Nil) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Nil) Proto() proto.Message { return this } -func (this *Nil) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Nil) TestProto() proto.Message { return NewNilFromFace(this) } @@ -17483,15 +17490,15 @@ func NewNilFromFace(that NilFace) *Nil { } type NidOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() TheTestEnum } -func (this *NidOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptEnum) Proto() proto.Message { return this } -func (this *NidOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptEnum) TestProto() proto.Message { return NewNidOptEnumFromFace(this) } @@ -17506,17 +17513,17 @@ func NewNidOptEnumFromFace(that NidOptEnumFace) *NidOptEnum { } type NinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *TheTestEnum GetField2() *YetAnotherTestEnum GetField3() *YetYetAnotherTestEnum } -func (this *NinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptEnum) Proto() proto.Message { return this } -func (this *NinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptEnum) TestProto() proto.Message { return NewNinOptEnumFromFace(this) } @@ -17541,17 +17548,17 @@ func NewNinOptEnumFromFace(that NinOptEnumFace) *NinOptEnum { } type NidRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []TheTestEnum GetField2() []YetAnotherTestEnum GetField3() []YetYetAnotherTestEnum } -func (this *NidRepEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepEnum) Proto() proto.Message { return this } -func (this *NidRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepEnum) TestProto() proto.Message { return NewNidRepEnumFromFace(this) } @@ -17576,17 +17583,17 @@ func NewNidRepEnumFromFace(that NidRepEnumFace) *NidRepEnum { } type NinRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []TheTestEnum GetField2() []YetAnotherTestEnum GetField3() []YetYetAnotherTestEnum } -func (this *NinRepEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepEnum) Proto() proto.Message { return this } -func (this *NinRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepEnum) TestProto() proto.Message { return NewNinRepEnumFromFace(this) } @@ -17611,17 +17618,17 @@ func NewNinRepEnumFromFace(that NinRepEnumFace) *NinRepEnum { } type AnotherNinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *AnotherTestEnum GetField2() *YetAnotherTestEnum GetField3() *YetYetAnotherTestEnum } -func (this *AnotherNinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AnotherNinOptEnum) Proto() proto.Message { return this } -func (this *AnotherNinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AnotherNinOptEnum) TestProto() proto.Message { return NewAnotherNinOptEnumFromFace(this) } @@ -17646,17 +17653,17 @@ func NewAnotherNinOptEnumFromFace(that AnotherNinOptEnumFace) *AnotherNinOptEnum } type TimerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetTime1() int64 GetTime2() int64 GetData() []byte } -func (this *Timer) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Timer) Proto() proto.Message { return this } -func (this *Timer) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Timer) TestProto() proto.Message { return NewTimerFromFace(this) } @@ -17681,18 +17688,18 @@ func NewTimerFromFace(that TimerFace) *Timer { } type NestedDefinitionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *int64 GetEnumField() *NestedDefinition_NestedEnum GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg GetNM() *NestedDefinition_NestedMessage } -func (this *NestedDefinition) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition) Proto() proto.Message { return this } -func (this *NestedDefinition) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition) TestProto() proto.Message { return NewNestedDefinitionFromFace(this) } @@ -17722,16 +17729,16 @@ func NewNestedDefinitionFromFace(that NestedDefinitionFace) *NestedDefinition { } type NestedDefinition_NestedMessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedField1() *uint64 GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg } -func (this *NestedDefinition_NestedMessage) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage) Proto() proto.Message { return this } -func (this *NestedDefinition_NestedMessage) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage) TestProto() proto.Message { return NewNestedDefinition_NestedMessageFromFace(this) } @@ -17751,15 +17758,15 @@ func NewNestedDefinition_NestedMessageFromFace(that NestedDefinition_NestedMessa } type NestedDefinition_NestedMessage_NestedNestedMsgFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedNestedField1() *string } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() proto.Message { return this } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() proto.Message { return NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(this) } @@ -17774,17 +17781,17 @@ func NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(that NestedDefini } type NestedScopeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetA() *NestedDefinition_NestedMessage_NestedNestedMsg GetB() *NestedDefinition_NestedEnum GetC() *NestedDefinition_NestedMessage } -func (this *NestedScope) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedScope) Proto() proto.Message { return this } -func (this *NestedScope) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedScope) TestProto() proto.Message { return NewNestedScopeFromFace(this) } @@ -17809,15 +17816,15 @@ func NewNestedScopeFromFace(that NestedScopeFace) *NestedScope { } type CustomContainerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetCustomStruct() NidOptCustom } -func (this *CustomContainer) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomContainer) Proto() proto.Message { return this } -func (this *CustomContainer) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomContainer) TestProto() proto.Message { return NewCustomContainerFromFace(this) } @@ -17832,7 +17839,7 @@ func NewCustomContainerFromFace(that CustomContainerFace) *CustomContainer { } type CustomNameNidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() float64 GetFieldB() float32 GetFieldC() int32 @@ -17850,11 +17857,11 @@ type CustomNameNidOptNativeFace interface { GetFieldO() []byte } -func (this *CustomNameNidOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNidOptNative) Proto() proto.Message { return this } -func (this *CustomNameNidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNidOptNative) TestProto() proto.Message { return NewCustomNameNidOptNativeFromFace(this) } @@ -17939,7 +17946,7 @@ func NewCustomNameNidOptNativeFromFace(that CustomNameNidOptNativeFace) *CustomN } type CustomNameNinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *float64 GetFieldB() *float32 GetFieldC() *int32 @@ -17957,11 +17964,11 @@ type CustomNameNinOptNativeFace interface { GetFieldO() []byte } -func (this *CustomNameNinOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinOptNative) Proto() proto.Message { return this } -func (this *CustomNameNinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinOptNative) TestProto() proto.Message { return NewCustomNameNinOptNativeFromFace(this) } @@ -18046,7 +18053,7 @@ func NewCustomNameNinOptNativeFromFace(that CustomNameNinOptNativeFace) *CustomN } type CustomNameNinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() []float64 GetFieldB() []float32 GetFieldC() []int32 @@ -18064,11 +18071,11 @@ type CustomNameNinRepNativeFace interface { GetFieldO() [][]byte } -func (this *CustomNameNinRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinRepNative) Proto() proto.Message { return this } -func (this *CustomNameNinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinRepNative) TestProto() proto.Message { return NewCustomNameNinRepNativeFromFace(this) } @@ -18153,7 +18160,7 @@ func NewCustomNameNinRepNativeFromFace(that CustomNameNinRepNativeFace) *CustomN } type CustomNameNinStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *float64 GetFieldB() *float32 GetFieldC() *NidOptNative @@ -18166,11 +18173,11 @@ type CustomNameNinStructFace interface { GetFieldJ() []byte } -func (this *CustomNameNinStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinStruct) Proto() proto.Message { return this } -func (this *CustomNameNinStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinStruct) TestProto() proto.Message { return NewCustomNameNinStructFromFace(this) } @@ -18230,18 +18237,18 @@ func NewCustomNameNinStructFromFace(that CustomNameNinStructFace) *CustomNameNin } type CustomNameCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *Uuid GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 GetFieldC() []Uuid GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *CustomNameCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameCustomType) Proto() proto.Message { return this } -func (this *CustomNameCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameCustomType) TestProto() proto.Message { return NewCustomNameCustomTypeFromFace(this) } @@ -18271,17 +18278,17 @@ func NewCustomNameCustomTypeFromFace(that CustomNameCustomTypeFace) *CustomNameC } type CustomNameNinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetFieldA() *NinOptNative GetFieldB() *bool } -func (this *CustomNameNinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinEmbeddedStructUnion) Proto() proto.Message { return this } -func (this *CustomNameNinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinEmbeddedStructUnion) TestProto() proto.Message { return NewCustomNameNinEmbeddedStructUnionFromFace(this) } @@ -18306,16 +18313,16 @@ func NewCustomNameNinEmbeddedStructUnionFromFace(that CustomNameNinEmbeddedStruc } type CustomNameEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *TheTestEnum GetFieldB() []TheTestEnum } -func (this *CustomNameEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameEnum) Proto() proto.Message { return this } -func (this *CustomNameEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameEnum) TestProto() proto.Message { return NewCustomNameEnumFromFace(this) } @@ -18335,15 +18342,15 @@ func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum { } type UnrecognizedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *string } -func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Unrecognized) Proto() proto.Message { return this } -func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Unrecognized) TestProto() proto.Message { return NewUnrecognizedFromFace(this) } @@ -18358,16 +18365,16 @@ func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized { } type UnrecognizedWithInnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetEmbedded() []*UnrecognizedWithInner_Inner GetField2() *string } -func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner) Proto() proto.Message { return this } -func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner) TestProto() proto.Message { return NewUnrecognizedWithInnerFromFace(this) } @@ -18387,15 +18394,15 @@ func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *Unrecogni } type UnrecognizedWithInner_InnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *uint32 } -func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner_Inner) Proto() proto.Message { return this } -func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner_Inner) TestProto() proto.Message { return NewUnrecognizedWithInner_InnerFromFace(this) } @@ -18410,16 +18417,16 @@ func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace } type UnrecognizedWithEmbedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded GetField2() *string } -func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed) Proto() proto.Message { return this } -func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed) TestProto() proto.Message { return NewUnrecognizedWithEmbedFromFace(this) } @@ -18439,15 +18446,15 @@ func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *Unrecogni } type UnrecognizedWithEmbed_EmbeddedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *uint32 } -func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed_Embedded) Proto() proto.Message { return this } -func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed_Embedded) TestProto() proto.Message { return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) } @@ -18462,16 +18469,16 @@ func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_Embedd } type NodeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLabel() *string GetChildren() []*Node } -func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Node) Proto() proto.Message { return this } -func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Node) TestProto() proto.Message { return NewNodeFromFace(this) } @@ -18491,15 +18498,15 @@ func NewNodeFromFace(that NodeFace) *Node { } type NonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *T } -func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NonByteCustomType) Proto() proto.Message { return this } -func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NonByteCustomType) TestProto() proto.Message { return NewNonByteCustomTypeFromFace(this) } @@ -18514,15 +18521,15 @@ func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType } type NidOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() T } -func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNonByteCustomType) Proto() proto.Message { return this } -func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNonByteCustomType) TestProto() proto.Message { return NewNidOptNonByteCustomTypeFromFace(this) } @@ -18537,15 +18544,15 @@ func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOp } type NinOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *T } -func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNonByteCustomType) Proto() proto.Message { return this } -func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNonByteCustomType) TestProto() proto.Message { return NewNinOptNonByteCustomTypeFromFace(this) } @@ -18560,15 +18567,15 @@ func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOp } type NidRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []T } -func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) Proto() proto.Message { return this } -func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) TestProto() proto.Message { return NewNidRepNonByteCustomTypeFromFace(this) } @@ -18583,15 +18590,15 @@ func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRe } type NinRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []T } -func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) Proto() proto.Message { return this } -func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) TestProto() proto.Message { return NewNinRepNonByteCustomTypeFromFace(this) } @@ -18606,15 +18613,15 @@ func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRe } type ProtoTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField2() *string } -func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) Proto() proto.Message { return this } -func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) TestProto() proto.Message { return NewProtoTypeFromFace(this) } @@ -19005,10 +19012,18 @@ func (this *NidRepStruct) GoString() string { s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") + vs := make([]*NidOptNative, len(this.Field3)) + for i := range vs { + vs[i] = &this.Field3[i] + } + s = append(s, "Field3: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") + vs := make([]*NinOptNative, len(this.Field4)) + for i := range vs { + vs[i] = &this.Field4[i] + } + s = append(s, "Field4: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field6 != nil { s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") @@ -19017,7 +19032,11 @@ func (this *NidRepStruct) GoString() string { s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") } if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") + vs := make([]*NidOptNative, len(this.Field8)) + for i := range vs { + vs[i] = &this.Field8[i] + } + s = append(s, "Field8: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field13 != nil { s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") @@ -19122,7 +19141,11 @@ func (this *NidNestedStruct) GoString() string { s = append(s, "&test.NidNestedStruct{") s = append(s, "Field1: "+strings.Replace(this.Field1.GoString(), `&`, ``, 1)+",\n") if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") + vs := make([]*NidRepStruct, len(this.Field2)) + for i := range vs { + vs[i] = &this.Field2[i] + } + s = append(s, "Field2: "+fmt.Sprintf("%#v", vs)+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19507,13 +19530,13 @@ func (this *NinOptEnum) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.NinOptEnum{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19570,13 +19593,13 @@ func (this *NinOptEnumDefault) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.NinOptEnumDefault{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19591,13 +19614,13 @@ func (this *AnotherNinOptEnum) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.AnotherNinOptEnum{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19612,13 +19635,13 @@ func (this *AnotherNinOptEnumDefault) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.AnotherNinOptEnumDefault{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19689,7 +19712,7 @@ func (this *NestedDefinition) GoString() string { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } if this.EnumField != nil { - s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "test.NestedDefinition_NestedEnum")+",\n") + s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "NestedDefinition_NestedEnum")+",\n") } if this.NNM != nil { s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") @@ -19746,7 +19769,7 @@ func (this *NestedScope) GoString() string { s = append(s, "A: "+fmt.Sprintf("%#v", this.A)+",\n") } if this.B != nil { - s = append(s, "B: "+valueToGoStringThetest(this.B, "test.NestedDefinition_NestedEnum")+",\n") + s = append(s, "B: "+valueToGoStringThetest(this.B, "NestedDefinition_NestedEnum")+",\n") } if this.C != nil { s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n") @@ -20062,7 +20085,7 @@ func (this *CustomNameEnum) GoString() string { s := make([]string, 0, 6) s = append(s, "&test.CustomNameEnum{") if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "test.TheTestEnum")+",\n") + s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "TheTestEnum")+",\n") } if this.FieldB != nil { s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") @@ -20275,8 +20298,8 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { - e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) +func extensionToGoStringThetest(m proto.Message) string { + e := proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } @@ -20310,10 +20333,12 @@ func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 dAtA[i] = 0x18 i++ i = encodeVarintThetest(dAtA, i, uint64(m.Field3)) @@ -20334,16 +20359,20 @@ func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9)) + i += 4 dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10)) + i += 4 dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11)) + i += 8 dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12)) + i += 8 dAtA[i] = 0x68 i++ if m.Field13 { @@ -20386,12 +20415,14 @@ func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x18 @@ -20426,22 +20457,26 @@ func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.Field9 != nil { dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field9)) + i += 4 } if m.Field10 != nil { dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field10)) + i += 4 } if m.Field11 != nil { dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field11)) + i += 8 } if m.Field12 != nil { dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field12)) + i += 8 } if m.Field13 != nil { dAtA[i] = 0x68 @@ -20491,22 +20526,8 @@ func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f1 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f1) - i++ - dAtA[i] = uint8(f1 >> 8) - i++ - dAtA[i] = uint8(f1 >> 16) - i++ - dAtA[i] = uint8(f1 >> 24) - i++ - dAtA[i] = uint8(f1 >> 32) - i++ - dAtA[i] = uint8(f1 >> 40) - i++ - dAtA[i] = uint8(f1 >> 48) - i++ - dAtA[i] = uint8(f1 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f1)) + i += 8 } } if len(m.Field2) > 0 { @@ -20514,14 +20535,8 @@ func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f2 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f2) - i++ - dAtA[i] = uint8(f2 >> 8) - i++ - dAtA[i] = uint8(f2 >> 16) - i++ - dAtA[i] = uint8(f2 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f2)) + i += 4 } } if len(m.Field3) > 0 { @@ -20584,72 +20599,32 @@ func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { for _, num := range m.Field9 { dAtA[i] = 0x4d i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field10) > 0 { for _, num := range m.Field10 { dAtA[i] = 0x55 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field11) > 0 { for _, num := range m.Field11 { dAtA[i] = 0x59 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field12) > 0 { for _, num := range m.Field12 { dAtA[i] = 0x61 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field13) > 0 { @@ -20713,22 +20688,8 @@ func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f5 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f5) - i++ - dAtA[i] = uint8(f5 >> 8) - i++ - dAtA[i] = uint8(f5 >> 16) - i++ - dAtA[i] = uint8(f5 >> 24) - i++ - dAtA[i] = uint8(f5 >> 32) - i++ - dAtA[i] = uint8(f5 >> 40) - i++ - dAtA[i] = uint8(f5 >> 48) - i++ - dAtA[i] = uint8(f5 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f5)) + i += 8 } } if len(m.Field2) > 0 { @@ -20736,14 +20697,8 @@ func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f6 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f6) - i++ - dAtA[i] = uint8(f6 >> 8) - i++ - dAtA[i] = uint8(f6 >> 16) - i++ - dAtA[i] = uint8(f6 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f6)) + i += 4 } } if len(m.Field3) > 0 { @@ -20806,72 +20761,32 @@ func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { for _, num := range m.Field9 { dAtA[i] = 0x4d i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field10) > 0 { for _, num := range m.Field10 { dAtA[i] = 0x55 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field11) > 0 { for _, num := range m.Field11 { dAtA[i] = 0x59 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field12) > 0 { for _, num := range m.Field12 { dAtA[i] = 0x61 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field13) > 0 { @@ -20936,22 +20851,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f9 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f9) - i++ - dAtA[i] = uint8(f9 >> 8) - i++ - dAtA[i] = uint8(f9 >> 16) - i++ - dAtA[i] = uint8(f9 >> 24) - i++ - dAtA[i] = uint8(f9 >> 32) - i++ - dAtA[i] = uint8(f9 >> 40) - i++ - dAtA[i] = uint8(f9 >> 48) - i++ - dAtA[i] = uint8(f9 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f9)) + i += 8 } } if len(m.Field2) > 0 { @@ -20960,14 +20861,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f10 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f10) - i++ - dAtA[i] = uint8(f10 >> 8) - i++ - dAtA[i] = uint8(f10 >> 16) - i++ - dAtA[i] = uint8(f10 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f10)) + i += 4 } } if len(m.Field3) > 0 { @@ -21081,14 +20976,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field10) > 0 { @@ -21096,14 +20985,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field11) > 0 { @@ -21111,22 +20994,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field12) > 0 { @@ -21134,22 +21003,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field13) > 0 { @@ -21192,22 +21047,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f25 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f25) - i++ - dAtA[i] = uint8(f25 >> 8) - i++ - dAtA[i] = uint8(f25 >> 16) - i++ - dAtA[i] = uint8(f25 >> 24) - i++ - dAtA[i] = uint8(f25 >> 32) - i++ - dAtA[i] = uint8(f25 >> 40) - i++ - dAtA[i] = uint8(f25 >> 48) - i++ - dAtA[i] = uint8(f25 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f25)) + i += 8 } } if len(m.Field2) > 0 { @@ -21216,14 +21057,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f26 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f26) - i++ - dAtA[i] = uint8(f26 >> 8) - i++ - dAtA[i] = uint8(f26 >> 16) - i++ - dAtA[i] = uint8(f26 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f26)) + i += 4 } } if len(m.Field3) > 0 { @@ -21337,14 +21172,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field10) > 0 { @@ -21352,14 +21181,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field11) > 0 { @@ -21367,22 +21190,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field12) > 0 { @@ -21390,22 +21199,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field13) > 0 { @@ -21444,10 +21239,12 @@ func (m *NidOptStruct) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 dAtA[i] = 0x1a i++ i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) @@ -21520,12 +21317,14 @@ func (m *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x1a @@ -21615,22 +21414,8 @@ func (m *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f47 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f47) - i++ - dAtA[i] = uint8(f47 >> 8) - i++ - dAtA[i] = uint8(f47 >> 16) - i++ - dAtA[i] = uint8(f47 >> 24) - i++ - dAtA[i] = uint8(f47 >> 32) - i++ - dAtA[i] = uint8(f47 >> 40) - i++ - dAtA[i] = uint8(f47 >> 48) - i++ - dAtA[i] = uint8(f47 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f47)) + i += 8 } } if len(m.Field2) > 0 { @@ -21638,14 +21423,8 @@ func (m *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f48 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f48) - i++ - dAtA[i] = uint8(f48 >> 8) - i++ - dAtA[i] = uint8(f48 >> 16) - i++ - dAtA[i] = uint8(f48 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f48)) + i += 4 } } if len(m.Field3) > 0 { @@ -21766,22 +21545,8 @@ func (m *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f50 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f50) - i++ - dAtA[i] = uint8(f50 >> 8) - i++ - dAtA[i] = uint8(f50 >> 16) - i++ - dAtA[i] = uint8(f50 >> 24) - i++ - dAtA[i] = uint8(f50 >> 32) - i++ - dAtA[i] = uint8(f50 >> 40) - i++ - dAtA[i] = uint8(f50 >> 48) - i++ - dAtA[i] = uint8(f50 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f50)) + i += 8 } } if len(m.Field2) > 0 { @@ -21789,14 +21554,8 @@ func (m *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f51 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f51) - i++ - dAtA[i] = uint8(f51 >> 8) - i++ - dAtA[i] = uint8(f51 >> 16) - i++ - dAtA[i] = uint8(f51 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f51)) + i += 4 } } if len(m.Field3) > 0 { @@ -22304,12 +22063,14 @@ func (m *NinOptNativeUnion) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x18 @@ -22377,12 +22138,14 @@ func (m *NinOptStructUnion) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x1a @@ -23137,10 +22900,12 @@ func (m *Timer) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.Time1)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Time1)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.Time2)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Time2)) + i += 8 if m.Data != nil { dAtA[i] = 0x1a i++ @@ -23173,7 +22938,7 @@ func (m *MyExtendable) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } - n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + n, err := proto.EncodeInternalExtension(m, dAtA[i:]) if err != nil { return 0, err } @@ -23219,7 +22984,7 @@ func (m *OtherExtenable) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(*m.Field13)) } - n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + n, err := proto.EncodeInternalExtension(m, dAtA[i:]) if err != nil { return 0, err } @@ -23299,7 +23064,8 @@ func (m *NestedDefinition_NestedMessage) MarshalTo(dAtA []byte) (int, error) { if m.NestedField1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.NestedField1)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.NestedField1)) + i += 8 } if m.NNM != nil { dAtA[i] = 0x12 @@ -23408,12 +23174,14 @@ func (m *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x18 @@ -23448,22 +23216,26 @@ func (m *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { if m.Field9 != nil { dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field9)) + i += 4 } if m.Field10 != nil { dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field10)) + i += 4 } if m.Field11 != nil { dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field11)) + i += 8 } if m.Field12 != nil { dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field12)) + i += 8 } if m.Field13 != nil { dAtA[i] = 0x68 @@ -23539,10 +23311,12 @@ func (m *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.FieldA)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.FieldA)))) + i += 8 dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.FieldB)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.FieldB)))) + i += 4 dAtA[i] = 0x18 i++ i = encodeVarintThetest(dAtA, i, uint64(m.FieldC)) @@ -23563,16 +23337,20 @@ func (m *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(m.FieldI)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.FieldI)) + i += 4 dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(m.FieldJ)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.FieldJ)) + i += 4 dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.FieldK)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.FieldK)) + i += 8 dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.FieldL)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.FieldL)) + i += 8 dAtA[i] = 0x68 i++ if m.FieldM { @@ -23615,12 +23393,14 @@ func (m *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.FieldA != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.FieldA)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.FieldA)))) + i += 8 } if m.FieldB != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.FieldB)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.FieldB)))) + i += 4 } if m.FieldC != nil { dAtA[i] = 0x18 @@ -23655,22 +23435,26 @@ func (m *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.FieldI != nil { dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.FieldI)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.FieldI)) + i += 4 } if m.FieldJ != nil { dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.FieldJ)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.FieldJ)) + i += 4 } if m.FieldK != nil { dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.FieldK)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.FieldK)) + i += 8 } if m.FielL != nil { dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.FielL)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.FielL)) + i += 8 } if m.FieldM != nil { dAtA[i] = 0x68 @@ -23720,22 +23504,8 @@ func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f92 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f92) - i++ - dAtA[i] = uint8(f92 >> 8) - i++ - dAtA[i] = uint8(f92 >> 16) - i++ - dAtA[i] = uint8(f92 >> 24) - i++ - dAtA[i] = uint8(f92 >> 32) - i++ - dAtA[i] = uint8(f92 >> 40) - i++ - dAtA[i] = uint8(f92 >> 48) - i++ - dAtA[i] = uint8(f92 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f92)) + i += 8 } } if len(m.FieldB) > 0 { @@ -23743,14 +23513,8 @@ func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f93 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f93) - i++ - dAtA[i] = uint8(f93 >> 8) - i++ - dAtA[i] = uint8(f93 >> 16) - i++ - dAtA[i] = uint8(f93 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f93)) + i += 4 } } if len(m.FieldC) > 0 { @@ -23813,72 +23577,32 @@ func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { for _, num := range m.FieldI { dAtA[i] = 0x4d i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.FieldJ) > 0 { for _, num := range m.FieldJ { dAtA[i] = 0x55 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.FieldK) > 0 { for _, num := range m.FieldK { dAtA[i] = 0x59 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.FieldL) > 0 { for _, num := range m.FieldL { dAtA[i] = 0x61 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.FieldM) > 0 { @@ -23940,12 +23664,14 @@ func (m *CustomNameNinStruct) MarshalTo(dAtA []byte) (int, error) { if m.FieldA != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.FieldA)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.FieldA)))) + i += 8 } if m.FieldB != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.FieldB)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.FieldB)))) + i += 4 } if m.FieldC != nil { dAtA[i] = 0x1a @@ -24566,24 +24292,6 @@ func (m *ProtoType) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Thetest(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 encodeFixed32Thetest(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 encodeVarintThetest(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -26111,7 +25819,7 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -26155,7 +25863,7 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -26769,7 +26477,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -28120,7 +27828,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) + n += proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -28140,7 +27848,7 @@ func (m *OtherExtenable) Size() (n int) { if m.Field13 != nil { n += 1 + sovThetest(uint64(*m.Field13)) } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) + n += proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -29356,7 +29064,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, + `XXX_InternalExtensions:` + proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -29370,7 +29078,7 @@ func (this *OtherExtenable) String() string { `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, + `XXX_InternalExtensions:` + proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -29602,7 +29310,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -30042,15 +29750,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field1 = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -30060,11 +29761,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field2 = float32(math.Float32frombits(v)) case 3: if wireType != 0 { @@ -30192,11 +29890,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.Field9 = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field9 = uint32(dAtA[iNdEx-4]) - m.Field9 |= uint32(dAtA[iNdEx-3]) << 8 - m.Field9 |= uint32(dAtA[iNdEx-2]) << 16 - m.Field9 |= uint32(dAtA[iNdEx-1]) << 24 case 10: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) @@ -30205,11 +29900,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.Field10 = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field10 = int32(dAtA[iNdEx-4]) - m.Field10 |= int32(dAtA[iNdEx-3]) << 8 - m.Field10 |= int32(dAtA[iNdEx-2]) << 16 - m.Field10 |= int32(dAtA[iNdEx-1]) << 24 case 11: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) @@ -30218,15 +29910,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Field11 = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field11 = uint64(dAtA[iNdEx-8]) - m.Field11 |= uint64(dAtA[iNdEx-7]) << 8 - m.Field11 |= uint64(dAtA[iNdEx-6]) << 16 - m.Field11 |= uint64(dAtA[iNdEx-5]) << 24 - m.Field11 |= uint64(dAtA[iNdEx-4]) << 32 - m.Field11 |= uint64(dAtA[iNdEx-3]) << 40 - m.Field11 |= uint64(dAtA[iNdEx-2]) << 48 - m.Field11 |= uint64(dAtA[iNdEx-1]) << 56 case 12: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) @@ -30235,15 +29920,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Field12 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field12 = int64(dAtA[iNdEx-8]) - m.Field12 |= int64(dAtA[iNdEx-7]) << 8 - m.Field12 |= int64(dAtA[iNdEx-6]) << 16 - m.Field12 |= int64(dAtA[iNdEx-5]) << 24 - m.Field12 |= int64(dAtA[iNdEx-4]) << 32 - m.Field12 |= int64(dAtA[iNdEx-3]) << 40 - m.Field12 |= int64(dAtA[iNdEx-2]) << 48 - m.Field12 |= int64(dAtA[iNdEx-1]) << 56 case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) @@ -30383,15 +30061,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -30402,11 +30073,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -30540,11 +30208,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -30554,11 +30219,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -30568,15 +30230,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -30586,15 +30241,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -30735,15 +30383,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -30774,15 +30415,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -30795,11 +30429,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -30830,11 +30461,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -31223,11 +30851,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -31257,11 +30882,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -31273,11 +30895,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -31307,11 +30926,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -31323,15 +30939,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -31361,15 +30970,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -31381,15 +30983,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -31419,15 +31014,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -31610,15 +31198,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -31649,15 +31230,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -31670,11 +31244,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -31705,11 +31276,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -32098,11 +31666,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -32132,11 +31697,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -32148,11 +31710,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -32182,11 +31741,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -32198,15 +31754,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -32236,15 +31785,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -32256,15 +31798,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -32294,15 +31829,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -32485,15 +32013,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -32524,15 +32045,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -32545,11 +32059,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -32580,11 +32091,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -32973,11 +32481,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -33007,11 +32512,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -33023,11 +32525,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -33057,11 +32556,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -33073,15 +32569,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -33111,15 +32600,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -33131,15 +32613,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -33169,15 +32644,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -33302,15 +32770,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -33341,15 +32802,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -33362,11 +32816,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -33397,11 +32848,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -33790,11 +33238,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -33824,11 +33269,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -33840,11 +33282,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -33874,11 +33313,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -33890,15 +33326,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -33928,15 +33357,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -33948,15 +33370,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -33986,15 +33401,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -34121,15 +33529,8 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field1 = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -34139,11 +33540,8 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field2 = float32(math.Float32frombits(v)) case 3: if wireType != 2 { @@ -34414,15 +33812,8 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -34433,11 +33824,8 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -34719,15 +34107,8 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -34758,15 +34139,8 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -34779,11 +34153,8 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -34814,11 +34185,8 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -35221,15 +34589,8 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -35260,15 +34621,8 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -35281,11 +34635,8 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -35316,11 +34667,8 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -36763,15 +36111,8 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -36782,11 +36123,8 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -37010,15 +36348,8 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -37029,11 +36360,8 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -39505,15 +38833,8 @@ func (m *Timer) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Time1 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Time1 = int64(dAtA[iNdEx-8]) - m.Time1 |= int64(dAtA[iNdEx-7]) << 8 - m.Time1 |= int64(dAtA[iNdEx-6]) << 16 - m.Time1 |= int64(dAtA[iNdEx-5]) << 24 - m.Time1 |= int64(dAtA[iNdEx-4]) << 32 - m.Time1 |= int64(dAtA[iNdEx-3]) << 40 - m.Time1 |= int64(dAtA[iNdEx-2]) << 48 - m.Time1 |= int64(dAtA[iNdEx-1]) << 56 case 2: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Time2", wireType) @@ -39522,15 +38843,8 @@ func (m *Timer) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Time2 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Time2 = int64(dAtA[iNdEx-8]) - m.Time2 |= int64(dAtA[iNdEx-7]) << 8 - m.Time2 |= int64(dAtA[iNdEx-6]) << 16 - m.Time2 |= int64(dAtA[iNdEx-5]) << 24 - m.Time2 |= int64(dAtA[iNdEx-4]) << 32 - m.Time2 |= int64(dAtA[iNdEx-3]) << 40 - m.Time2 |= int64(dAtA[iNdEx-2]) << 48 - m.Time2 |= int64(dAtA[iNdEx-1]) << 56 case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) @@ -39654,7 +38968,7 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex @@ -39802,7 +39116,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex @@ -40021,15 +39335,8 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.NestedField1 = &v case 2: if wireType != 2 { @@ -40341,15 +39648,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -40360,11 +39660,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -40498,11 +39795,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -40512,11 +39806,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -40526,15 +39817,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -40544,15 +39828,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -40776,15 +40053,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldA = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -40794,11 +40064,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldB = float32(math.Float32frombits(v)) case 3: if wireType != 0 { @@ -40926,11 +40193,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.FieldI = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.FieldI = uint32(dAtA[iNdEx-4]) - m.FieldI |= uint32(dAtA[iNdEx-3]) << 8 - m.FieldI |= uint32(dAtA[iNdEx-2]) << 16 - m.FieldI |= uint32(dAtA[iNdEx-1]) << 24 case 10: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) @@ -40939,11 +40203,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.FieldJ = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.FieldJ = int32(dAtA[iNdEx-4]) - m.FieldJ |= int32(dAtA[iNdEx-3]) << 8 - m.FieldJ |= int32(dAtA[iNdEx-2]) << 16 - m.FieldJ |= int32(dAtA[iNdEx-1]) << 24 case 11: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) @@ -40952,15 +40213,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.FieldK = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.FieldK = uint64(dAtA[iNdEx-8]) - m.FieldK |= uint64(dAtA[iNdEx-7]) << 8 - m.FieldK |= uint64(dAtA[iNdEx-6]) << 16 - m.FieldK |= uint64(dAtA[iNdEx-5]) << 24 - m.FieldK |= uint64(dAtA[iNdEx-4]) << 32 - m.FieldK |= uint64(dAtA[iNdEx-3]) << 40 - m.FieldK |= uint64(dAtA[iNdEx-2]) << 48 - m.FieldK |= uint64(dAtA[iNdEx-1]) << 56 case 12: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) @@ -40969,15 +40223,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.FieldL = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.FieldL = int64(dAtA[iNdEx-8]) - m.FieldL |= int64(dAtA[iNdEx-7]) << 8 - m.FieldL |= int64(dAtA[iNdEx-6]) << 16 - m.FieldL |= int64(dAtA[iNdEx-5]) << 24 - m.FieldL |= int64(dAtA[iNdEx-4]) << 32 - m.FieldL |= int64(dAtA[iNdEx-3]) << 40 - m.FieldL |= int64(dAtA[iNdEx-2]) << 48 - m.FieldL |= int64(dAtA[iNdEx-1]) << 56 case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) @@ -41117,15 +40364,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = &v2 case 2: @@ -41136,11 +40376,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = &v2 case 3: @@ -41274,11 +40511,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldI = &v case 10: if wireType != 5 { @@ -41288,11 +40522,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.FieldJ = &v case 11: if wireType != 1 { @@ -41302,15 +40533,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldK = &v case 12: if wireType != 1 { @@ -41320,15 +40544,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.FielL = &v case 13: if wireType != 0 { @@ -41469,15 +40686,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = append(m.FieldA, v2) } else if wireType == 2 { @@ -41508,15 +40718,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = append(m.FieldA, v2) } @@ -41529,11 +40732,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = append(m.FieldB, v2) } else if wireType == 2 { @@ -41564,11 +40764,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = append(m.FieldB, v2) } @@ -41957,11 +41154,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldI = append(m.FieldI, v) } else if wireType == 2 { var packedLen int @@ -41991,11 +41185,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldI = append(m.FieldI, v) } } else { @@ -42007,11 +41198,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.FieldJ = append(m.FieldJ, v) } else if wireType == 2 { var packedLen int @@ -42041,11 +41229,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.FieldJ = append(m.FieldJ, v) } } else { @@ -42057,15 +41242,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldK = append(m.FieldK, v) } else if wireType == 2 { var packedLen int @@ -42095,15 +41273,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldK = append(m.FieldK, v) } } else { @@ -42115,15 +41286,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.FieldL = append(m.FieldL, v) } else if wireType == 2 { var packedLen int @@ -42153,15 +41317,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.FieldL = append(m.FieldL, v) } } else { @@ -42346,15 +41503,8 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = &v2 case 2: @@ -42365,11 +41515,8 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = &v2 case 3: @@ -43134,7 +42281,7 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex @@ -44316,198 +43463,198 @@ var ( func init() { proto.RegisterFile("combos/both/thetest.proto", fileDescriptorThetest) } var fileDescriptorThetest = []byte{ - // 3080 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, - 0xd5, 0xd7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0xf6, 0x63, 0xf4, 0xad, 0xe8, - 0x8d, 0xac, 0x8f, 0x21, 0x62, 0x89, 0xa2, 0x28, 0x59, 0x66, 0xbe, 0xa4, 0x10, 0xff, 0xb8, 0x91, - 0x1b, 0x51, 0x06, 0x23, 0xb7, 0x35, 0x50, 0xa0, 0xa0, 0xc4, 0xb5, 0x44, 0x54, 0x5a, 0x0a, 0xe4, - 0x2a, 0x8d, 0x7b, 0x28, 0x82, 0x1c, 0x8a, 0xa0, 0xd7, 0xa2, 0xc7, 0x36, 0x2e, 0x8a, 0x02, 0xe9, - 0x2d, 0x87, 0xa2, 0x28, 0x8a, 0xa2, 0xf1, 0xa5, 0x80, 0x7a, 0x33, 0x7a, 0x2a, 0x82, 0x42, 0x88, - 0x98, 0x4b, 0x8e, 0xe9, 0xa9, 0x39, 0xe4, 0x50, 0xec, 0xee, 0xec, 0xec, 0xcc, 0xec, 0x2e, 0x77, - 0x69, 0x39, 0x6d, 0x2e, 0xb6, 0x38, 0xef, 0xbd, 0x99, 0xb7, 0xef, 0xf7, 0x7b, 0x6f, 0xdf, 0xce, - 0x0c, 0xfc, 0xcf, 0x5e, 0xe7, 0x68, 0xb7, 0xd3, 0x5b, 0xda, 0xed, 0x98, 0x07, 0x4b, 0xe6, 0x81, - 0x6e, 0xea, 0x3d, 0x73, 0xf1, 0xb8, 0xdb, 0x31, 0x3b, 0x72, 0xc2, 0xfa, 0x3b, 0x7d, 0x7d, 0xbf, - 0x6d, 0x1e, 0x9c, 0xec, 0x2e, 0xee, 0x75, 0x8e, 0x96, 0xf6, 0x3b, 0xfb, 0x9d, 0x25, 0x5b, 0xb8, - 0x7b, 0x72, 0xdf, 0xfe, 0x65, 0xff, 0xb0, 0xff, 0x72, 0x8c, 0xb4, 0x7f, 0x60, 0x98, 0xac, 0xb7, - 0x5b, 0xdb, 0xc7, 0x66, 0xbd, 0x69, 0xb6, 0xdf, 0xd2, 0xe5, 0x59, 0x18, 0xbb, 0xd5, 0xd6, 0x0f, - 0x5b, 0xcb, 0x0a, 0xca, 0xa0, 0x2c, 0x2a, 0x27, 0x4e, 0xcf, 0xe6, 0x46, 0x1a, 0x64, 0x8c, 0x4a, - 0x0b, 0x8a, 0x94, 0x41, 0x59, 0x89, 0x93, 0x16, 0xa8, 0x74, 0x45, 0xc1, 0x19, 0x94, 0x1d, 0xe5, - 0xa4, 0x2b, 0x54, 0x5a, 0x54, 0x12, 0x19, 0x94, 0xc5, 0x9c, 0xb4, 0x48, 0xa5, 0xab, 0xca, 0x68, - 0x06, 0x65, 0x2f, 0x71, 0xd2, 0x55, 0x2a, 0x5d, 0x53, 0xc6, 0x32, 0x28, 0x9b, 0xe0, 0xa4, 0x6b, - 0x54, 0x7a, 0x43, 0x79, 0x26, 0x83, 0xb2, 0x97, 0x39, 0xe9, 0x0d, 0x2a, 0x5d, 0x57, 0x92, 0x19, - 0x94, 0x95, 0x39, 0xe9, 0x3a, 0x95, 0xde, 0x54, 0xc6, 0x33, 0x28, 0xfb, 0x0c, 0x27, 0xbd, 0x29, - 0xab, 0xf0, 0x8c, 0xf3, 0xe4, 0x79, 0x05, 0x32, 0x28, 0x3b, 0x4d, 0xc4, 0xee, 0xa0, 0x27, 0x5f, - 0x56, 0x26, 0x32, 0x28, 0x3b, 0xc6, 0xcb, 0x97, 0x3d, 0x79, 0x41, 0x99, 0xcc, 0xa0, 0x6c, 0x8a, - 0x97, 0x17, 0x3c, 0xf9, 0x8a, 0x72, 0x29, 0x83, 0xb2, 0x49, 0x5e, 0xbe, 0xe2, 0xc9, 0x8b, 0xca, - 0x54, 0x06, 0x65, 0xc7, 0x79, 0x79, 0xd1, 0x93, 0xaf, 0x2a, 0xd3, 0x19, 0x94, 0x9d, 0xe4, 0xe5, - 0xab, 0xda, 0xbb, 0x36, 0xbc, 0x86, 0x07, 0xef, 0x0c, 0x0f, 0x2f, 0x05, 0x76, 0x86, 0x07, 0x96, - 0x42, 0x3a, 0xc3, 0x43, 0x4a, 0xc1, 0x9c, 0xe1, 0xc1, 0xa4, 0x30, 0xce, 0xf0, 0x30, 0x52, 0x00, - 0x67, 0x78, 0x00, 0x29, 0x74, 0x33, 0x3c, 0x74, 0x14, 0xb4, 0x19, 0x1e, 0x34, 0x0a, 0xd7, 0x0c, - 0x0f, 0x17, 0x05, 0x4a, 0x11, 0x80, 0xf2, 0x20, 0x52, 0x04, 0x88, 0x3c, 0x70, 0x14, 0x01, 0x1c, - 0x0f, 0x16, 0x45, 0x80, 0xc5, 0x03, 0x44, 0x11, 0x00, 0xf1, 0xa0, 0x50, 0x04, 0x28, 0x3c, 0x10, - 0x48, 0x8e, 0x35, 0xf4, 0xe3, 0x80, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, - 0xc7, 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, 0xc7, 0xf0, 0xc0, - 0x1c, 0xc3, 0x83, 0x73, 0x0c, 0x47, 0xe4, 0x18, 0x8e, 0xc8, 0x31, 0x1c, 0x91, 0x63, 0x38, 0x22, - 0xc7, 0x70, 0x44, 0x8e, 0xe1, 0xd0, 0x1c, 0xf3, 0xe0, 0x9d, 0xe1, 0xe1, 0x0d, 0xcc, 0x31, 0x1c, - 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, - 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xcb, 0x31, 0x1c, 0x9a, 0x63, 0x38, 0x34, 0xc7, 0x70, 0x68, - 0x8e, 0xe1, 0xd0, 0x1c, 0xc3, 0xa1, 0x39, 0x86, 0xd9, 0x1c, 0xfb, 0x13, 0x06, 0xd9, 0xc9, 0xb1, - 0x3b, 0xcd, 0xbd, 0x1f, 0xe8, 0x2d, 0x02, 0x85, 0x2a, 0x64, 0xda, 0x98, 0x05, 0x5d, 0xca, 0x83, - 0x44, 0x15, 0x72, 0x8d, 0x97, 0x17, 0xa8, 0xdc, 0xcd, 0x36, 0x5e, 0xbe, 0x42, 0xe5, 0x6e, 0xbe, - 0xf1, 0xf2, 0x22, 0x95, 0xbb, 0x19, 0xc7, 0xcb, 0x57, 0xa9, 0xdc, 0xcd, 0x39, 0x5e, 0xbe, 0x46, - 0xe5, 0x6e, 0xd6, 0xf1, 0xf2, 0x1b, 0x54, 0xee, 0xe6, 0x1d, 0x2f, 0x5f, 0xa7, 0x72, 0x37, 0xf3, - 0x78, 0xf9, 0x4d, 0x39, 0x23, 0xe6, 0x9e, 0xab, 0x40, 0xa1, 0xcd, 0x88, 0xd9, 0x27, 0x68, 0x2c, - 0x7b, 0x1a, 0x6e, 0xfe, 0x09, 0x1a, 0x05, 0x4f, 0xc3, 0xcd, 0x40, 0x41, 0x63, 0x45, 0x7b, 0xcf, - 0x86, 0xcf, 0x10, 0xe1, 0x4b, 0x0b, 0xf0, 0x49, 0x0c, 0x74, 0x69, 0x01, 0x3a, 0x89, 0x81, 0x2d, - 0x2d, 0xc0, 0x26, 0x31, 0x90, 0xa5, 0x05, 0xc8, 0x24, 0x06, 0xae, 0xb4, 0x00, 0x97, 0xc4, 0x40, - 0x95, 0x16, 0xa0, 0x92, 0x18, 0x98, 0xd2, 0x02, 0x4c, 0x12, 0x03, 0x51, 0x5a, 0x80, 0x48, 0x62, - 0xe0, 0x49, 0x0b, 0xf0, 0x48, 0x0c, 0x34, 0xb3, 0x22, 0x34, 0x12, 0x0b, 0xcb, 0xac, 0x08, 0x8b, - 0xc4, 0x42, 0x32, 0x2b, 0x42, 0x22, 0xb1, 0x70, 0xcc, 0x8a, 0x70, 0x48, 0x2c, 0x14, 0x5f, 0x4a, - 0x6e, 0x47, 0xf8, 0xa6, 0xd9, 0x3d, 0xd9, 0x33, 0x2f, 0xd4, 0x11, 0xe6, 0xb9, 0xf6, 0x61, 0xa2, - 0x20, 0x2f, 0xda, 0x0d, 0x2b, 0xdb, 0x71, 0x0a, 0x6f, 0xb0, 0x3c, 0xd7, 0x58, 0x30, 0x16, 0x46, - 0xb0, 0x45, 0xf1, 0x42, 0xbd, 0x61, 0x9e, 0x6b, 0x33, 0xa2, 0xfd, 0x5b, 0xff, 0xca, 0x3b, 0xb6, - 0x47, 0x92, 0xdb, 0xb1, 0x91, 0xf0, 0x0f, 0xdb, 0xb1, 0xe5, 0xa2, 0x43, 0x4e, 0x83, 0x9d, 0x8b, - 0x0e, 0xb6, 0xef, 0xad, 0x13, 0xb7, 0x83, 0xcb, 0x45, 0x87, 0x96, 0x06, 0xf5, 0xe9, 0xf6, 0x5b, - 0x84, 0xc1, 0x0d, 0xfd, 0x38, 0x80, 0xc1, 0xc3, 0xf6, 0x5b, 0x79, 0xae, 0x94, 0x0c, 0xcb, 0x60, - 0x3c, 0x34, 0x83, 0x87, 0xed, 0xbc, 0xf2, 0x5c, 0x79, 0x19, 0x9a, 0xc1, 0x5f, 0x41, 0x3f, 0x44, - 0x18, 0xec, 0x85, 0x7f, 0xd8, 0x7e, 0x28, 0x17, 0x1d, 0xf2, 0x40, 0x06, 0xe3, 0x21, 0x18, 0x1c, - 0xa7, 0x3f, 0xca, 0x45, 0x87, 0x36, 0x98, 0xc1, 0x17, 0xee, 0x66, 0xde, 0x47, 0x70, 0xb9, 0xde, - 0x6e, 0xd5, 0x8e, 0x76, 0xf5, 0x56, 0x4b, 0x6f, 0x91, 0x38, 0xe6, 0xb9, 0x4a, 0x10, 0x02, 0xf5, - 0xe3, 0xb3, 0x39, 0x2f, 0xc2, 0xab, 0x90, 0x74, 0x62, 0x9a, 0xcf, 0x2b, 0xa7, 0x28, 0xa2, 0xc2, - 0x51, 0x55, 0xf9, 0xaa, 0x6b, 0xb6, 0x9c, 0x57, 0xfe, 0x86, 0x98, 0x2a, 0x47, 0x87, 0xb5, 0x9f, - 0xd9, 0x1e, 0x1a, 0x17, 0xf6, 0x70, 0x29, 0x96, 0x87, 0x8c, 0x6f, 0x2f, 0xf8, 0x7c, 0x63, 0xbc, - 0x3a, 0x81, 0xe9, 0x7a, 0xbb, 0x55, 0xd7, 0x7b, 0x66, 0x3c, 0x97, 0x1c, 0x1d, 0xa1, 0x1e, 0xe4, - 0x39, 0x5a, 0xb2, 0x16, 0x94, 0xd2, 0x7c, 0x8d, 0xd0, 0xda, 0xd6, 0xb2, 0x06, 0xb7, 0x6c, 0x2e, - 0x6c, 0x59, 0xaf, 0xb2, 0xd3, 0x05, 0x73, 0x61, 0x0b, 0x7a, 0x39, 0x44, 0x97, 0x7a, 0xdb, 0x7d, - 0x39, 0x57, 0x4e, 0x7a, 0x66, 0xe7, 0x48, 0x9e, 0x05, 0x69, 0xb3, 0x65, 0xaf, 0x31, 0x59, 0x9e, - 0xb4, 0x9c, 0xfa, 0xf8, 0x6c, 0x2e, 0x71, 0xf7, 0xa4, 0xdd, 0x6a, 0x48, 0x9b, 0x2d, 0xf9, 0x36, - 0x8c, 0x7e, 0xbb, 0x79, 0x78, 0xa2, 0xdb, 0xaf, 0x88, 0xc9, 0x72, 0x91, 0x28, 0xbc, 0x1c, 0xba, - 0x47, 0x64, 0x2d, 0xbc, 0xb4, 0x67, 0x4f, 0xbd, 0x78, 0xb7, 0x6d, 0x98, 0xcb, 0x85, 0xf5, 0x86, - 0x33, 0x85, 0xf6, 0x3d, 0x00, 0x67, 0xcd, 0x6a, 0xb3, 0x77, 0x20, 0xd7, 0xdd, 0x99, 0x9d, 0xa5, - 0xd7, 0x3f, 0x3e, 0x9b, 0x2b, 0xc6, 0x99, 0xf5, 0x7a, 0xab, 0xd9, 0x3b, 0xb8, 0x6e, 0x3e, 0x38, - 0xd6, 0x17, 0xcb, 0x0f, 0x4c, 0xbd, 0xe7, 0xce, 0x7e, 0xec, 0xbe, 0xf5, 0xc8, 0x73, 0x29, 0xcc, - 0x73, 0x25, 0xb9, 0x67, 0xba, 0xc5, 0x3f, 0x53, 0xfe, 0x49, 0x9f, 0xe7, 0x6d, 0xf7, 0x25, 0x21, - 0x44, 0x12, 0x47, 0x45, 0x12, 0x5f, 0x34, 0x92, 0xc7, 0x6e, 0x7d, 0x14, 0x9e, 0x15, 0x0f, 0x7a, - 0x56, 0x7c, 0x91, 0x67, 0xfd, 0x97, 0x93, 0xad, 0x34, 0x9f, 0xee, 0x1a, 0xed, 0x8e, 0xf1, 0xb5, - 0xdb, 0x0b, 0x7a, 0xaa, 0x5d, 0x40, 0x29, 0x71, 0xfa, 0x70, 0x0e, 0x69, 0xef, 0x4b, 0xee, 0x93, - 0x3b, 0x89, 0xf4, 0x64, 0x4f, 0xfe, 0x75, 0xe9, 0xa9, 0xbe, 0x8a, 0x08, 0xfd, 0x12, 0xc1, 0x8c, - 0xaf, 0x92, 0x3b, 0x61, 0x7a, 0xba, 0xe5, 0xdc, 0x18, 0xb6, 0x9c, 0x13, 0x07, 0x7f, 0x87, 0xe0, - 0x39, 0xa1, 0xbc, 0x3a, 0xee, 0x2d, 0x09, 0xee, 0x3d, 0xef, 0x5f, 0xc9, 0x56, 0x64, 0xbc, 0x63, - 0xe1, 0x15, 0x0c, 0x98, 0x99, 0x29, 0xee, 0x45, 0x01, 0xf7, 0x59, 0x6a, 0x10, 0x10, 0x2e, 0x97, - 0x01, 0xc4, 0xed, 0x0e, 0x24, 0x76, 0xba, 0xba, 0x2e, 0xab, 0x20, 0x6d, 0x77, 0x89, 0x87, 0x53, - 0x8e, 0xfd, 0x76, 0xb7, 0xdc, 0x6d, 0x1a, 0x7b, 0x07, 0x0d, 0x69, 0xbb, 0x2b, 0x5f, 0x05, 0xbc, - 0x61, 0xb4, 0x88, 0x47, 0xd3, 0x8e, 0xc2, 0x86, 0xd1, 0x22, 0x1a, 0x96, 0x4c, 0x56, 0x21, 0xf1, - 0x86, 0xde, 0xbc, 0x4f, 0x9c, 0x00, 0x47, 0xc7, 0x1a, 0x69, 0xd8, 0xe3, 0x64, 0xc1, 0xef, 0x42, - 0xd2, 0x9d, 0x58, 0x9e, 0xb7, 0x2c, 0xee, 0x9b, 0x64, 0x59, 0x62, 0x61, 0xb9, 0x43, 0xde, 0x5c, - 0xb6, 0x54, 0x5e, 0x80, 0xd1, 0x46, 0x7b, 0xff, 0xc0, 0x24, 0x8b, 0xfb, 0xd5, 0x1c, 0xb1, 0x76, - 0x0f, 0xc6, 0xa9, 0x47, 0x4f, 0x79, 0xea, 0xaa, 0xf3, 0x68, 0x72, 0x9a, 0x7d, 0x9f, 0xb8, 0xfb, - 0x96, 0xce, 0x90, 0x9c, 0x81, 0xe4, 0x9b, 0x66, 0xd7, 0x2b, 0xfa, 0x6e, 0x47, 0x4a, 0x47, 0xb5, - 0x77, 0x11, 0x24, 0xab, 0xba, 0x7e, 0x6c, 0x07, 0xfc, 0x1a, 0x24, 0xaa, 0x9d, 0x1f, 0x1a, 0xc4, - 0xc1, 0xcb, 0x24, 0xa2, 0x96, 0x98, 0xc4, 0xd4, 0x16, 0xcb, 0xd7, 0xd8, 0xb8, 0x3f, 0x4b, 0xe3, - 0xce, 0xe8, 0xd9, 0xb1, 0xd7, 0xb8, 0xd8, 0x13, 0x00, 0x2d, 0x25, 0x5f, 0xfc, 0x6f, 0xc0, 0x04, - 0xb3, 0x8a, 0x9c, 0x25, 0x6e, 0x48, 0xa2, 0x21, 0x1b, 0x2b, 0x4b, 0x43, 0xd3, 0xe1, 0x12, 0xb7, - 0xb0, 0x65, 0xca, 0x84, 0x38, 0xc4, 0xd4, 0x0e, 0x73, 0x8e, 0x0f, 0x73, 0xb0, 0x2a, 0x09, 0x75, - 0xde, 0x89, 0x91, 0x1d, 0xee, 0x79, 0x87, 0x9c, 0xe1, 0x20, 0x5a, 0x7f, 0x6b, 0xa3, 0x80, 0xeb, - 0xed, 0x43, 0xed, 0x55, 0x00, 0x27, 0xe5, 0x6b, 0xc6, 0xc9, 0x91, 0x90, 0x75, 0x53, 0x6e, 0x80, - 0x77, 0x0e, 0xf4, 0x1d, 0xbd, 0x67, 0xab, 0xf0, 0xfd, 0x94, 0x55, 0x60, 0xc0, 0x49, 0x31, 0xdb, - 0xfe, 0xa5, 0x48, 0xfb, 0xc0, 0x4e, 0xcc, 0x52, 0x55, 0x1c, 0xd5, 0x7b, 0xba, 0xb9, 0x61, 0x74, - 0xcc, 0x03, 0xbd, 0x2b, 0x58, 0x14, 0xe4, 0x15, 0x2e, 0x61, 0xa7, 0x0a, 0x2f, 0x50, 0x8b, 0x50, - 0xa3, 0x15, 0xed, 0x43, 0xdb, 0x41, 0xab, 0x15, 0xf0, 0x3d, 0x20, 0x8e, 0xf1, 0x80, 0xf2, 0x1a, - 0xd7, 0xbf, 0x0d, 0x70, 0x53, 0xf8, 0xb4, 0xbc, 0xc9, 0x7d, 0xe7, 0x0c, 0x76, 0x96, 0xff, 0xc6, - 0x74, 0x63, 0xea, 0xba, 0xfc, 0x52, 0xa4, 0xcb, 0x21, 0xdd, 0xed, 0xb0, 0x31, 0xc5, 0x71, 0x63, - 0xfa, 0x47, 0xda, 0x71, 0x58, 0xc3, 0x55, 0xfd, 0x7e, 0xf3, 0xe4, 0xd0, 0x94, 0x5f, 0x8e, 0xc4, - 0xbe, 0x84, 0x2a, 0xd4, 0xd5, 0x62, 0x5c, 0xf8, 0x4b, 0x52, 0xb9, 0x4c, 0xdd, 0xbd, 0x31, 0x04, - 0x05, 0x4a, 0x52, 0xa5, 0x42, 0xcb, 0x76, 0xf2, 0xbd, 0x87, 0x73, 0xe8, 0x83, 0x87, 0x73, 0x23, - 0xda, 0x6f, 0x11, 0x5c, 0x26, 0x9a, 0x0c, 0x71, 0xaf, 0x0b, 0xce, 0x5f, 0x71, 0x6b, 0x46, 0x50, - 0x04, 0xfe, 0x63, 0xe4, 0xfd, 0x0b, 0x02, 0xc5, 0xe7, 0xab, 0x1b, 0xef, 0x7c, 0x2c, 0x97, 0x4b, - 0xa8, 0xf6, 0xdf, 0x8f, 0xf9, 0x3d, 0x18, 0xdd, 0x69, 0x1f, 0xe9, 0x5d, 0xeb, 0x4d, 0x60, 0xfd, - 0xe1, 0xb8, 0xec, 0x1e, 0xe6, 0x38, 0x43, 0xae, 0xcc, 0x71, 0x8e, 0x93, 0x15, 0x64, 0x05, 0x12, - 0xd5, 0xa6, 0xd9, 0xb4, 0x3d, 0x98, 0xa4, 0xf5, 0xb5, 0x69, 0x36, 0xb5, 0x15, 0x98, 0xdc, 0x7a, - 0x50, 0x7b, 0xdb, 0xd4, 0x8d, 0x56, 0x73, 0xf7, 0x50, 0x3c, 0x03, 0x75, 0xfb, 0xd5, 0xe5, 0xdc, - 0x68, 0xb2, 0x95, 0x3a, 0x45, 0xa5, 0x84, 0xed, 0xcf, 0x5b, 0x30, 0xb5, 0x6d, 0xb9, 0x6d, 0xdb, - 0xd9, 0x66, 0x19, 0x40, 0x5b, 0x7c, 0x23, 0xc4, 0xce, 0xda, 0x40, 0x5b, 0x42, 0xfb, 0x88, 0x69, - 0x78, 0x84, 0xb6, 0x0d, 0xd3, 0xb6, 0x2d, 0x97, 0x48, 0x4e, 0xa5, 0x2e, 0xe7, 0x12, 0x49, 0x48, - 0x5d, 0x22, 0xeb, 0xfe, 0x15, 0x43, 0xca, 0x69, 0x75, 0xaa, 0xfa, 0xfd, 0xb6, 0xd1, 0x36, 0xfd, - 0xfd, 0x2a, 0xf5, 0x58, 0xfe, 0x06, 0x8c, 0x5b, 0x21, 0xb5, 0x7f, 0x11, 0xc0, 0xae, 0x92, 0x16, - 0x45, 0x98, 0x82, 0x0c, 0xd8, 0xd4, 0xf1, 0x6c, 0xe4, 0x5b, 0x80, 0xeb, 0xf5, 0x2d, 0xf2, 0x72, - 0x2b, 0x0e, 0x34, 0xdd, 0xd2, 0x7b, 0xbd, 0xe6, 0xbe, 0x4e, 0x7e, 0x91, 0xb1, 0xde, 0x7e, 0xc3, - 0x9a, 0x40, 0x2e, 0x82, 0x54, 0xdf, 0x22, 0x0d, 0xef, 0x7c, 0x9c, 0x69, 0x1a, 0x52, 0x7d, 0x2b, - 0xfd, 0x67, 0x04, 0x97, 0xb8, 0x51, 0x59, 0x83, 0x49, 0x67, 0x80, 0x79, 0xdc, 0xb1, 0x06, 0x37, - 0xe6, 0xfa, 0x2c, 0x5d, 0xd0, 0xe7, 0xf4, 0x06, 0x4c, 0x0b, 0xe3, 0xf2, 0x22, 0xc8, 0xec, 0x10, - 0x71, 0x02, 0xec, 0x86, 0x3a, 0x40, 0xa2, 0xfd, 0x2f, 0x80, 0x17, 0x57, 0x79, 0x1a, 0x26, 0x76, - 0xee, 0xdd, 0xa9, 0x7d, 0xbf, 0x5e, 0x7b, 0x73, 0xa7, 0x56, 0x4d, 0x21, 0xed, 0xf7, 0x08, 0x26, - 0x48, 0xdb, 0xba, 0xd7, 0x39, 0xd6, 0xe5, 0x32, 0xa0, 0x0d, 0xc2, 0xa0, 0x27, 0xf3, 0x1b, 0x6d, - 0xc8, 0x4b, 0x80, 0xca, 0xf1, 0xa1, 0x46, 0x65, 0xb9, 0x00, 0xa8, 0x42, 0x00, 0x8e, 0x87, 0x0c, - 0xaa, 0x68, 0xff, 0xc4, 0xf0, 0x2c, 0xdb, 0x46, 0xbb, 0xf5, 0xe4, 0x2a, 0xff, 0xdd, 0x54, 0x1a, - 0x5f, 0x2e, 0xac, 0x14, 0x17, 0xad, 0x7f, 0x28, 0x25, 0xaf, 0xf2, 0x9f, 0x50, 0x7e, 0x15, 0xdf, - 0x35, 0x91, 0x52, 0x82, 0x91, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xdf, 0x35, 0x11, 0x4e, 0xea, 0xbb, - 0x26, 0xc2, 0x49, 0x7d, 0x47, 0x01, 0x9c, 0xd4, 0x77, 0x4d, 0x84, 0x93, 0xfa, 0xae, 0x89, 0x70, - 0x52, 0xff, 0x35, 0x11, 0x22, 0x0e, 0xbd, 0x26, 0xc2, 0xcb, 0xfd, 0xd7, 0x44, 0x78, 0xb9, 0xff, - 0x9a, 0x48, 0x29, 0x61, 0x76, 0x4f, 0xf4, 0xf0, 0x43, 0x07, 0xde, 0x7e, 0xd0, 0x37, 0xa0, 0x57, - 0x80, 0xb7, 0x61, 0xda, 0xd9, 0x8f, 0xa8, 0x74, 0x0c, 0xb3, 0xd9, 0x36, 0xf4, 0xae, 0xfc, 0xff, - 0x30, 0xe9, 0x0c, 0x39, 0x5f, 0x39, 0x41, 0x5f, 0x81, 0x8e, 0x9c, 0x94, 0x5b, 0x4e, 0x5b, 0xfb, - 0x32, 0x01, 0x33, 0xce, 0x40, 0xbd, 0x79, 0xa4, 0x73, 0x97, 0x8c, 0x16, 0x84, 0x23, 0xa5, 0x29, - 0xcb, 0xbc, 0x7f, 0x36, 0xe7, 0x8c, 0x6e, 0x50, 0x32, 0x2d, 0x08, 0x87, 0x4b, 0xbc, 0x9e, 0xf7, - 0xfe, 0x59, 0x10, 0x2e, 0x1e, 0xf1, 0x7a, 0xf4, 0x75, 0x43, 0xf5, 0xdc, 0x2b, 0x48, 0xbc, 0x5e, - 0x95, 0xb2, 0x6c, 0x41, 0xb8, 0x8c, 0xc4, 0xeb, 0xd5, 0x28, 0xdf, 0x16, 0x84, 0xa3, 0x27, 0x5e, - 0xef, 0x16, 0x65, 0xde, 0x82, 0x70, 0x08, 0xc5, 0xeb, 0x7d, 0x93, 0x72, 0x70, 0x41, 0xb8, 0xaa, - 0xc4, 0xeb, 0xbd, 0x4e, 0xd9, 0xb8, 0x20, 0x5c, 0x5a, 0xe2, 0xf5, 0x36, 0x29, 0x2f, 0xb3, 0xe2, - 0xf5, 0x25, 0x5e, 0xf1, 0xb6, 0xc7, 0xd0, 0xac, 0x78, 0x91, 0x89, 0xd7, 0xfc, 0x96, 0xc7, 0xd5, - 0xac, 0x78, 0xa5, 0x89, 0xd7, 0x7c, 0xc3, 0x63, 0x6d, 0x56, 0x3c, 0x2a, 0xe3, 0x35, 0xb7, 0x3c, - 0xfe, 0x66, 0xc5, 0x43, 0x33, 0x5e, 0xb3, 0xee, 0x31, 0x39, 0x2b, 0x1e, 0x9f, 0xf1, 0x9a, 0xdb, - 0xde, 0x1e, 0xfa, 0x47, 0x02, 0xfd, 0x98, 0x4b, 0x50, 0x9a, 0x40, 0x3f, 0x08, 0xa0, 0x9e, 0x26, - 0x50, 0x0f, 0x02, 0x68, 0xa7, 0x09, 0xb4, 0x83, 0x00, 0xca, 0x69, 0x02, 0xe5, 0x20, 0x80, 0x6e, - 0x9a, 0x40, 0x37, 0x08, 0xa0, 0x9a, 0x26, 0x50, 0x0d, 0x02, 0x68, 0xa6, 0x09, 0x34, 0x83, 0x00, - 0x8a, 0x69, 0x02, 0xc5, 0x20, 0x80, 0x5e, 0x9a, 0x40, 0x2f, 0x08, 0xa0, 0xd6, 0xbc, 0x48, 0x2d, - 0x08, 0xa2, 0xd5, 0xbc, 0x48, 0x2b, 0x08, 0xa2, 0xd4, 0x8b, 0x22, 0xa5, 0xc6, 0xfb, 0x67, 0x73, - 0xa3, 0xd6, 0x10, 0xc3, 0xa6, 0x79, 0x91, 0x4d, 0x10, 0xc4, 0xa4, 0x79, 0x91, 0x49, 0x10, 0xc4, - 0xa2, 0x79, 0x91, 0x45, 0x10, 0xc4, 0xa0, 0x47, 0x22, 0x83, 0xbc, 0x2b, 0x3e, 0x9a, 0x70, 0xa2, - 0x18, 0xc5, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, - 0x31, 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, 0x60, 0x10, 0x8e, 0xc3, 0x20, 0x1c, 0x8b, 0x41, 0x38, - 0x8c, 0x41, 0xf3, 0xe2, 0x85, 0x07, 0x08, 0x2a, 0x48, 0xf3, 0xe2, 0xc9, 0x67, 0x34, 0x85, 0x70, - 0x2c, 0x0a, 0xe1, 0x30, 0x0a, 0x7d, 0x84, 0xe1, 0x59, 0x8e, 0x42, 0xe4, 0x78, 0xe8, 0x69, 0x55, - 0xa0, 0xb5, 0x18, 0xf7, 0x2b, 0x82, 0x38, 0xb5, 0x16, 0xe3, 0x8c, 0x7a, 0x10, 0xcf, 0xfc, 0x55, - 0xa8, 0x16, 0xa3, 0x0a, 0xdd, 0xa2, 0x1c, 0x5a, 0x8b, 0x71, 0xef, 0xc2, 0xcf, 0xbd, 0xf5, 0x41, - 0x45, 0xe0, 0xf5, 0x58, 0x45, 0x60, 0x33, 0x56, 0x11, 0xb8, 0xed, 0x21, 0xf8, 0x13, 0x09, 0x9e, - 0xf3, 0x10, 0x74, 0xfe, 0xda, 0x79, 0x70, 0x6c, 0x95, 0x00, 0xef, 0x84, 0x4a, 0x76, 0x4f, 0x6d, - 0x18, 0x18, 0xa5, 0xcd, 0x96, 0x7c, 0x87, 0x3f, 0xab, 0x2a, 0x0d, 0x7b, 0x7e, 0xc3, 0x20, 0x4e, - 0xf6, 0x42, 0xe7, 0x01, 0x6f, 0xb6, 0x7a, 0x76, 0xb5, 0x08, 0x5a, 0xb6, 0xd2, 0xb0, 0xc4, 0x72, - 0x03, 0xc6, 0x6c, 0xf5, 0x9e, 0x0d, 0xef, 0x45, 0x16, 0xae, 0x36, 0xc8, 0x4c, 0xda, 0x23, 0x04, - 0x19, 0x8e, 0xca, 0x4f, 0xe7, 0xc4, 0xe0, 0x95, 0x58, 0x27, 0x06, 0x5c, 0x82, 0x78, 0xa7, 0x07, - 0xff, 0xe7, 0x3f, 0xa8, 0x66, 0xb3, 0x44, 0x3c, 0x49, 0xf8, 0x31, 0x4c, 0x79, 0x4f, 0x60, 0x7f, - 0xb2, 0xad, 0x46, 0x6f, 0x66, 0x06, 0xa5, 0xe6, 0xaa, 0xb0, 0x89, 0x36, 0xd0, 0x8c, 0x66, 0xab, - 0x56, 0x82, 0xe9, 0x7a, 0xc7, 0xde, 0x32, 0xe8, 0xb5, 0x3b, 0x46, 0x6f, 0xab, 0x79, 0x1c, 0xb5, - 0x17, 0x91, 0xb4, 0x5a, 0xf3, 0xd3, 0x5f, 0xcd, 0x8d, 0x68, 0x2f, 0xc3, 0xe4, 0x5d, 0xa3, 0xab, - 0xef, 0x75, 0xf6, 0x8d, 0xf6, 0x8f, 0xf4, 0x96, 0x60, 0x38, 0xee, 0x1a, 0x96, 0x12, 0x8f, 0x2d, - 0xed, 0x9f, 0x23, 0xb8, 0xc2, 0xaa, 0x7f, 0xa7, 0x6d, 0x1e, 0x6c, 0x1a, 0x56, 0x4f, 0xff, 0x2a, - 0x24, 0x75, 0x02, 0x9c, 0xfd, 0xee, 0x9a, 0x70, 0x3f, 0x23, 0x03, 0xd5, 0x17, 0xed, 0x7f, 0x1b, - 0xd4, 0x44, 0xd8, 0xe2, 0x70, 0x97, 0x2d, 0xa4, 0xaf, 0xc1, 0xa8, 0x33, 0x3f, 0xef, 0xd7, 0x25, - 0xc1, 0xaf, 0xdf, 0x04, 0xf8, 0x65, 0xf3, 0x48, 0xbe, 0xcd, 0xf9, 0xc5, 0x7c, 0xad, 0x06, 0xaa, - 0x2f, 0xba, 0xe4, 0x2b, 0x27, 0xad, 0xfe, 0xcf, 0x66, 0x54, 0xb4, 0x93, 0x59, 0x48, 0xd6, 0x44, - 0x9d, 0x60, 0x3f, 0xab, 0x90, 0xa8, 0x77, 0x5a, 0xba, 0xfc, 0x1c, 0x8c, 0xbe, 0xd1, 0xdc, 0xd5, - 0x0f, 0x49, 0x90, 0x9d, 0x1f, 0xf2, 0x02, 0x24, 0x2b, 0x07, 0xed, 0xc3, 0x56, 0x57, 0x37, 0xc8, - 0x91, 0x3d, 0xd9, 0x41, 0xb7, 0x6c, 0x1a, 0x54, 0xa6, 0x55, 0xe0, 0x72, 0xbd, 0x63, 0x94, 0x1f, - 0x98, 0x6c, 0xdd, 0x58, 0x14, 0x52, 0x84, 0x1c, 0xf9, 0xdc, 0xb1, 0xb2, 0xd1, 0x52, 0x28, 0x8f, - 0x7e, 0x7c, 0x36, 0x87, 0x76, 0xe8, 0xf6, 0xf9, 0x16, 0x3c, 0x4f, 0xd2, 0xc7, 0x37, 0x55, 0x21, - 0x6a, 0xaa, 0x71, 0x72, 0x4c, 0xcd, 0x4c, 0xb7, 0x69, 0x4d, 0x67, 0x04, 0x4e, 0xf7, 0x64, 0x9e, - 0x59, 0x4d, 0xd1, 0x40, 0xcf, 0xf0, 0x50, 0x9e, 0x05, 0x4e, 0xb7, 0x18, 0x35, 0x9d, 0xe0, 0xd9, - 0x8b, 0x30, 0x4e, 0x65, 0x0c, 0x1b, 0xd8, 0x4c, 0x29, 0xe4, 0x34, 0x98, 0x60, 0x12, 0x56, 0x1e, - 0x05, 0xb4, 0x91, 0x1a, 0xb1, 0xfe, 0x2b, 0xa7, 0x90, 0xf5, 0x5f, 0x25, 0x25, 0xe5, 0xae, 0xc1, - 0xb4, 0xb0, 0x7d, 0x69, 0x49, 0xaa, 0x29, 0xb0, 0xfe, 0xab, 0xa5, 0x26, 0xd2, 0x89, 0xf7, 0x7e, - 0xad, 0x8e, 0xe4, 0x5e, 0x01, 0xd9, 0xbf, 0xd1, 0x29, 0x8f, 0x81, 0xb4, 0x61, 0x4d, 0xf9, 0x3c, - 0x48, 0xe5, 0x72, 0x0a, 0xa5, 0xa7, 0x7f, 0xfa, 0x8b, 0xcc, 0x44, 0x59, 0x37, 0x4d, 0xbd, 0x7b, - 0x4f, 0x37, 0xcb, 0x65, 0x62, 0xfc, 0x1a, 0x5c, 0x09, 0xdc, 0x28, 0xb5, 0xec, 0x2b, 0x15, 0xc7, - 0xbe, 0x5a, 0xf5, 0xd9, 0x57, 0xab, 0xb6, 0x3d, 0x2a, 0xb9, 0x07, 0xce, 0x1b, 0x72, 0xc0, 0xb6, - 0xa4, 0xd2, 0x62, 0x0e, 0xb8, 0x37, 0x4a, 0xaf, 0x11, 0xdd, 0x72, 0xa0, 0xae, 0x1e, 0x71, 0x60, - 0x5d, 0x2e, 0x55, 0x88, 0x7d, 0x25, 0xd0, 0xfe, 0xbe, 0x70, 0xaa, 0xca, 0xbf, 0x21, 0xc8, 0x24, - 0x15, 0xea, 0x70, 0x35, 0x70, 0x92, 0x03, 0xe6, 0xae, 0x7b, 0x95, 0x3a, 0x5c, 0x0b, 0xd4, 0x6d, - 0x47, 0xdc, 0xf9, 0xaa, 0x95, 0x96, 0xc8, 0x4b, 0x7e, 0x63, 0x59, 0xbe, 0xe2, 0xe6, 0x28, 0x57, - 0x81, 0x49, 0x80, 0x5c, 0xad, 0x52, 0x85, 0x18, 0x94, 0x43, 0x0d, 0xc2, 0xa3, 0xe4, 0x5a, 0x96, - 0x5e, 0x27, 0x93, 0x54, 0x42, 0x27, 0x89, 0x08, 0x95, 0x6b, 0x5e, 0xde, 0x39, 0x3d, 0x57, 0x47, - 0x1e, 0x9f, 0xab, 0x23, 0x7f, 0x3f, 0x57, 0x47, 0x3e, 0x39, 0x57, 0xd1, 0x67, 0xe7, 0x2a, 0xfa, - 0xfc, 0x5c, 0x45, 0x5f, 0x9c, 0xab, 0xe8, 0x9d, 0xbe, 0x8a, 0x3e, 0xe8, 0xab, 0xe8, 0xc3, 0xbe, - 0x8a, 0xfe, 0xd0, 0x57, 0xd1, 0xa3, 0xbe, 0x8a, 0x4e, 0xfb, 0x2a, 0x7a, 0xdc, 0x57, 0xd1, 0x27, - 0x7d, 0x15, 0x7d, 0xd6, 0x57, 0x47, 0x3e, 0xef, 0xab, 0xe8, 0x8b, 0xbe, 0x3a, 0xf2, 0xce, 0xa7, - 0xea, 0xc8, 0xc3, 0x4f, 0xd5, 0x91, 0x0f, 0x3e, 0x55, 0xd1, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, - 0xc1, 0xb8, 0xdd, 0x71, 0x46, 0x36, 0x00, 0x00, + // 3081 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7, + 0x15, 0xd6, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0xb6, 0x8c, 0xba, 0xa2, 0x37, + 0xb2, 0xca, 0x10, 0xb1, 0x44, 0x51, 0x94, 0x2c, 0x33, 0x4d, 0x0a, 0xf1, 0xc7, 0x8d, 0xdc, 0x88, + 0x32, 0x18, 0xb9, 0xad, 0x81, 0x02, 0x05, 0x25, 0xae, 0x45, 0xa2, 0xd2, 0x52, 0x20, 0x57, 0x69, + 0xdc, 0x43, 0x11, 0xe4, 0x50, 0x04, 0xbd, 0x16, 0x3d, 0xb6, 0x71, 0x51, 0x14, 0x48, 0x6f, 0x39, + 0x14, 0x45, 0x51, 0x14, 0x8d, 0x2f, 0x05, 0xd4, 0x9b, 0xd1, 0x53, 0x11, 0x14, 0x42, 0xc4, 0x5c, + 0x72, 0x0c, 0x7a, 0x69, 0x0e, 0x39, 0x14, 0xbb, 0x3b, 0x3b, 0x3b, 0x33, 0xdc, 0xe5, 0x2e, 0x2d, + 0xb9, 0xcd, 0xc5, 0x16, 0xe7, 0xbd, 0x37, 0xf3, 0xf6, 0x7d, 0xdf, 0x7b, 0xfb, 0x76, 0x66, 0xe0, + 0x6b, 0x7b, 0xed, 0xc3, 0xdd, 0x76, 0x77, 0x69, 0xb7, 0x6d, 0x36, 0x97, 0xcc, 0xa6, 0x6e, 0xea, + 0x5d, 0x73, 0xf1, 0xa8, 0xd3, 0x36, 0xdb, 0x72, 0xcc, 0xfa, 0x3b, 0x79, 0x7d, 0xbf, 0x65, 0x36, + 0x8f, 0x77, 0x17, 0xf7, 0xda, 0x87, 0x4b, 0xfb, 0xed, 0xfd, 0xf6, 0x92, 0x2d, 0xdc, 0x3d, 0xbe, + 0x6f, 0xff, 0xb2, 0x7f, 0xd8, 0x7f, 0x39, 0x46, 0xda, 0xbf, 0x30, 0x4c, 0x56, 0x5b, 0x8d, 0xed, + 0x23, 0xb3, 0x5a, 0x37, 0x5b, 0x6f, 0xe9, 0xf2, 0x2c, 0x8c, 0xdd, 0x6a, 0xe9, 0x07, 0x8d, 0x65, + 0x05, 0xa5, 0x50, 0x1a, 0x15, 0x63, 0x27, 0xa7, 0x73, 0x23, 0x35, 0x32, 0x46, 0xa5, 0x39, 0x45, + 0x4a, 0xa1, 0xb4, 0xc4, 0x49, 0x73, 0x54, 0xba, 0xa2, 0xe0, 0x14, 0x4a, 0x8f, 0x72, 0xd2, 0x15, + 0x2a, 0xcd, 0x2b, 0xb1, 0x14, 0x4a, 0x63, 0x4e, 0x9a, 0xa7, 0xd2, 0x55, 0x65, 0x34, 0x85, 0xd2, + 0x97, 0x38, 0xe9, 0x2a, 0x95, 0xae, 0x29, 0x63, 0x29, 0x94, 0x8e, 0x71, 0xd2, 0x35, 0x2a, 0xbd, + 0xa1, 0x3c, 0x93, 0x42, 0xe9, 0xcb, 0x9c, 0xf4, 0x06, 0x95, 0xae, 0x2b, 0xf1, 0x14, 0x4a, 0xcb, + 0x9c, 0x74, 0x9d, 0x4a, 0x6f, 0x2a, 0xe3, 0x29, 0x94, 0x7e, 0x86, 0x93, 0xde, 0x94, 0x55, 0x78, + 0xc6, 0x79, 0xf2, 0xac, 0x02, 0x29, 0x94, 0x9e, 0x26, 0x62, 0x77, 0xd0, 0x93, 0x2f, 0x2b, 0x13, + 0x29, 0x94, 0x1e, 0xe3, 0xe5, 0xcb, 0x9e, 0x3c, 0xa7, 0x4c, 0xa6, 0x50, 0x3a, 0xc1, 0xcb, 0x73, + 0x9e, 0x7c, 0x45, 0xb9, 0x94, 0x42, 0xe9, 0x38, 0x2f, 0x5f, 0xf1, 0xe4, 0x79, 0x65, 0x2a, 0x85, + 0xd2, 0xe3, 0xbc, 0x3c, 0xef, 0xc9, 0x57, 0x95, 0xe9, 0x14, 0x4a, 0x4f, 0xf2, 0xf2, 0x55, 0xed, + 0x5d, 0x1b, 0x5e, 0xc3, 0x83, 0x77, 0x86, 0x87, 0x97, 0x02, 0x3b, 0xc3, 0x03, 0x4b, 0x21, 0x9d, + 0xe1, 0x21, 0xa5, 0x60, 0xce, 0xf0, 0x60, 0x52, 0x18, 0x67, 0x78, 0x18, 0x29, 0x80, 0x33, 0x3c, + 0x80, 0x14, 0xba, 0x19, 0x1e, 0x3a, 0x0a, 0xda, 0x0c, 0x0f, 0x1a, 0x85, 0x6b, 0x86, 0x87, 0x8b, + 0x02, 0xa5, 0x08, 0x40, 0x79, 0x10, 0x29, 0x02, 0x44, 0x1e, 0x38, 0x8a, 0x00, 0x8e, 0x07, 0x8b, + 0x22, 0xc0, 0xe2, 0x01, 0xa2, 0x08, 0x80, 0x78, 0x50, 0x28, 0x02, 0x14, 0x1e, 0x08, 0x24, 0xc7, + 0x6a, 0xfa, 0x91, 0x4f, 0x8e, 0xe1, 0x81, 0x39, 0x86, 0x07, 0xe6, 0x18, 0x1e, 0x98, 0x63, 0x78, + 0x60, 0x8e, 0xe1, 0x81, 0x39, 0x86, 0x07, 0xe6, 0x18, 0x1e, 0x98, 0x63, 0x78, 0x60, 0x8e, 0xe1, + 0xc1, 0x39, 0x86, 0x43, 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, + 0x24, 0xc7, 0x70, 0x60, 0x8e, 0x79, 0xf0, 0xce, 0xf0, 0xf0, 0xfa, 0xe6, 0x18, 0x0e, 0xc8, 0x31, + 0x1c, 0x90, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, 0xc3, 0x01, 0x39, 0x86, + 0x03, 0x72, 0x0c, 0x07, 0xe5, 0x18, 0x0e, 0xcc, 0x31, 0x1c, 0x98, 0x63, 0x38, 0x30, 0xc7, 0x70, + 0x60, 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x6c, 0x8e, 0xfd, 0x05, 0x83, 0xec, 0xe4, 0xd8, 0x9d, 0xfa, + 0xde, 0x8f, 0xf4, 0x06, 0x81, 0x42, 0x15, 0x32, 0x6d, 0xcc, 0x82, 0x2e, 0xe1, 0x41, 0xa2, 0x0a, + 0xb9, 0xc6, 0xcb, 0x73, 0x54, 0xee, 0x66, 0x1b, 0x2f, 0x5f, 0xa1, 0x72, 0x37, 0xdf, 0x78, 0x79, + 0x9e, 0xca, 0xdd, 0x8c, 0xe3, 0xe5, 0xab, 0x54, 0xee, 0xe6, 0x1c, 0x2f, 0x5f, 0xa3, 0x72, 0x37, + 0xeb, 0x78, 0xf9, 0x0d, 0x2a, 0x77, 0xf3, 0x8e, 0x97, 0xaf, 0x53, 0xb9, 0x9b, 0x79, 0xbc, 0xfc, + 0xa6, 0x9c, 0x12, 0x73, 0xcf, 0x55, 0xa0, 0xd0, 0xa6, 0xc4, 0xec, 0x13, 0x34, 0x96, 0x3d, 0x0d, + 0x37, 0xff, 0x04, 0x8d, 0x9c, 0xa7, 0xe1, 0x66, 0xa0, 0xa0, 0xb1, 0xa2, 0xbd, 0x67, 0xc3, 0x67, + 0x88, 0xf0, 0x25, 0x05, 0xf8, 0x24, 0x06, 0xba, 0xa4, 0x00, 0x9d, 0xc4, 0xc0, 0x96, 0x14, 0x60, + 0x93, 0x18, 0xc8, 0x92, 0x02, 0x64, 0x12, 0x03, 0x57, 0x52, 0x80, 0x4b, 0x62, 0xa0, 0x4a, 0x0a, + 0x50, 0x49, 0x0c, 0x4c, 0x49, 0x01, 0x26, 0x89, 0x81, 0x28, 0x29, 0x40, 0x24, 0x31, 0xf0, 0x24, + 0x05, 0x78, 0x24, 0x06, 0x9a, 0x59, 0x11, 0x1a, 0x89, 0x85, 0x65, 0x56, 0x84, 0x45, 0x62, 0x21, + 0x99, 0x15, 0x21, 0x91, 0x58, 0x38, 0x66, 0x45, 0x38, 0x24, 0x16, 0x8a, 0x2f, 0x25, 0xb7, 0x23, + 0x7c, 0xd3, 0xec, 0x1c, 0xef, 0x99, 0xe7, 0xea, 0x08, 0xb3, 0x5c, 0xfb, 0x30, 0x91, 0x93, 0x17, + 0xed, 0x86, 0x95, 0xed, 0x38, 0x85, 0x37, 0x58, 0x96, 0x6b, 0x2c, 0x18, 0x0b, 0xc3, 0xdf, 0x22, + 0x7f, 0xae, 0xde, 0x30, 0xcb, 0xb5, 0x19, 0xe1, 0xfe, 0xad, 0x3f, 0xf5, 0x8e, 0xed, 0x91, 0xe4, + 0x76, 0x6c, 0x24, 0xfc, 0xc3, 0x76, 0x6c, 0x99, 0xf0, 0x90, 0xd3, 0x60, 0x67, 0xc2, 0x83, 0xdd, + 0xf7, 0xd6, 0x89, 0xda, 0xc1, 0x65, 0xc2, 0x43, 0x4b, 0x83, 0x7a, 0xb1, 0xfd, 0x16, 0x61, 0x70, + 0x4d, 0x3f, 0xf2, 0x61, 0xf0, 0xb0, 0xfd, 0x56, 0x96, 0x2b, 0x25, 0xc3, 0x32, 0x18, 0x0f, 0xcd, + 0xe0, 0x61, 0x3b, 0xaf, 0x2c, 0x57, 0x5e, 0x86, 0x66, 0xf0, 0x53, 0xe8, 0x87, 0x08, 0x83, 0xbd, + 0xf0, 0x0f, 0xdb, 0x0f, 0x65, 0xc2, 0x43, 0xee, 0xcb, 0x60, 0x3c, 0x04, 0x83, 0xa3, 0xf4, 0x47, + 0x99, 0xf0, 0xd0, 0xfa, 0x33, 0xf8, 0xdc, 0xdd, 0xcc, 0xfb, 0x08, 0x2e, 0x57, 0x5b, 0x8d, 0xca, + 0xe1, 0xae, 0xde, 0x68, 0xe8, 0x0d, 0x12, 0xc7, 0x2c, 0x57, 0x09, 0x02, 0xa0, 0x7e, 0x7c, 0x3a, + 0xe7, 0x45, 0x78, 0x15, 0xe2, 0x4e, 0x4c, 0xb3, 0x59, 0xe5, 0x04, 0x85, 0x54, 0x38, 0xaa, 0x2a, + 0x5f, 0x75, 0xcd, 0x96, 0xb3, 0xca, 0x3f, 0x10, 0x53, 0xe5, 0xe8, 0xb0, 0xf6, 0x0b, 0xdb, 0x43, + 0xe3, 0xdc, 0x1e, 0x2e, 0x45, 0xf2, 0x90, 0xf1, 0xed, 0x85, 0x3e, 0xdf, 0x18, 0xaf, 0x8e, 0x61, + 0xba, 0xda, 0x6a, 0x54, 0xf5, 0xae, 0x19, 0xcd, 0x25, 0x47, 0x47, 0xa8, 0x07, 0x59, 0x8e, 0x96, + 0xac, 0x05, 0xa5, 0x34, 0x5f, 0x23, 0xb4, 0x96, 0xb5, 0xac, 0xc1, 0x2d, 0x9b, 0x09, 0x5a, 0xd6, + 0xab, 0xec, 0x74, 0xc1, 0x4c, 0xd0, 0x82, 0x5e, 0x0e, 0xd1, 0xa5, 0xde, 0x76, 0x5f, 0xce, 0xa5, + 0xe3, 0xae, 0xd9, 0x3e, 0x94, 0x67, 0x41, 0xda, 0x6c, 0xd8, 0x6b, 0x4c, 0x16, 0x27, 0x2d, 0xa7, + 0x3e, 0x3e, 0x9d, 0x8b, 0xdd, 0x3d, 0x6e, 0x35, 0x6a, 0xd2, 0x66, 0x43, 0xbe, 0x0d, 0xa3, 0xdf, + 0xad, 0x1f, 0x1c, 0xeb, 0xf6, 0x2b, 0x62, 0xb2, 0x98, 0x27, 0x0a, 0x2f, 0x07, 0xee, 0x11, 0x59, + 0x0b, 0x2f, 0xed, 0xd9, 0x53, 0x2f, 0xde, 0x6d, 0x19, 0xe6, 0x72, 0x6e, 0xbd, 0xe6, 0x4c, 0xa1, + 0xfd, 0x00, 0xc0, 0x59, 0xb3, 0x5c, 0xef, 0x36, 0xe5, 0xaa, 0x3b, 0xb3, 0xb3, 0xf4, 0xfa, 0xc7, + 0xa7, 0x73, 0xf9, 0x28, 0xb3, 0x5e, 0x6f, 0xd4, 0xbb, 0xcd, 0xeb, 0xe6, 0x83, 0x23, 0x7d, 0xb1, + 0xf8, 0xc0, 0xd4, 0xbb, 0xee, 0xec, 0x47, 0xee, 0x5b, 0x8f, 0x3c, 0x97, 0xc2, 0x3c, 0x57, 0x9c, + 0x7b, 0xa6, 0x5b, 0xfc, 0x33, 0x65, 0x9f, 0xf4, 0x79, 0xde, 0x76, 0x5f, 0x12, 0x42, 0x24, 0x71, + 0x58, 0x24, 0xf1, 0x79, 0x23, 0x79, 0xe4, 0xd6, 0x47, 0xe1, 0x59, 0xf1, 0xa0, 0x67, 0xc5, 0xe7, + 0x79, 0xd6, 0xff, 0x38, 0xd9, 0x4a, 0xf3, 0xe9, 0xae, 0xd1, 0x6a, 0x1b, 0x5f, 0xb9, 0xbd, 0xa0, + 0x0b, 0xed, 0x02, 0x0a, 0xb1, 0x93, 0x87, 0x73, 0x48, 0x7b, 0x5f, 0x72, 0x9f, 0xdc, 0x49, 0xa4, + 0x27, 0x7b, 0xf2, 0xaf, 0x4a, 0x4f, 0xf5, 0x34, 0x22, 0xf4, 0x6b, 0x04, 0x33, 0x7d, 0x95, 0xdc, + 0x09, 0xd3, 0xc5, 0x96, 0x73, 0x63, 0xd8, 0x72, 0x4e, 0x1c, 0xfc, 0x03, 0x82, 0xe7, 0x84, 0xf2, + 0xea, 0xb8, 0xb7, 0x24, 0xb8, 0xf7, 0x7c, 0xff, 0x4a, 0xb6, 0x22, 0xe3, 0x1d, 0x0b, 0xaf, 0x60, + 0xc0, 0xcc, 0x4c, 0x71, 0xcf, 0x0b, 0xb8, 0xcf, 0x52, 0x03, 0x9f, 0x70, 0xb9, 0x0c, 0x20, 0x6e, + 0xb7, 0x21, 0xb6, 0xd3, 0xd1, 0x75, 0x59, 0x05, 0x69, 0xbb, 0x43, 0x3c, 0x9c, 0x72, 0xec, 0xb7, + 0x3b, 0xc5, 0x4e, 0xdd, 0xd8, 0x6b, 0xd6, 0xa4, 0xed, 0x8e, 0x7c, 0x15, 0xf0, 0x86, 0xd1, 0x20, + 0x1e, 0x4d, 0x3b, 0x0a, 0x1b, 0x46, 0x83, 0x68, 0x58, 0x32, 0x59, 0x85, 0xd8, 0x1b, 0x7a, 0xfd, + 0x3e, 0x71, 0x02, 0x1c, 0x1d, 0x6b, 0xa4, 0x66, 0x8f, 0x93, 0x05, 0xbf, 0x0f, 0x71, 0x77, 0x62, + 0x79, 0xde, 0xb2, 0xb8, 0x6f, 0x92, 0x65, 0x89, 0x85, 0xe5, 0x0e, 0x79, 0x73, 0xd9, 0x52, 0x79, + 0x01, 0x46, 0x6b, 0xad, 0xfd, 0xa6, 0x49, 0x16, 0xef, 0x57, 0x73, 0xc4, 0xda, 0x3d, 0x18, 0xa7, + 0x1e, 0x5d, 0xf0, 0xd4, 0x65, 0xe7, 0xd1, 0xe4, 0x24, 0xfb, 0x3e, 0x71, 0xf7, 0x2d, 0x9d, 0x21, + 0x39, 0x05, 0xf1, 0x37, 0xcd, 0x8e, 0x57, 0xf4, 0xdd, 0x8e, 0x94, 0x8e, 0x6a, 0xef, 0x22, 0x88, + 0x97, 0x75, 0xfd, 0xc8, 0x0e, 0xf8, 0x35, 0x88, 0x95, 0xdb, 0x3f, 0x36, 0x88, 0x83, 0x97, 0x49, + 0x44, 0x2d, 0x31, 0x89, 0xa9, 0x2d, 0x96, 0xaf, 0xb1, 0x71, 0x7f, 0x96, 0xc6, 0x9d, 0xd1, 0xb3, + 0x63, 0xaf, 0x71, 0xb1, 0x27, 0x00, 0x5a, 0x4a, 0x7d, 0xf1, 0xbf, 0x01, 0x13, 0xcc, 0x2a, 0x72, + 0x9a, 0xb8, 0x21, 0x89, 0x86, 0x6c, 0xac, 0x2c, 0x0d, 0x4d, 0x87, 0x4b, 0xdc, 0xc2, 0x96, 0x29, + 0x13, 0xe2, 0x00, 0x53, 0x3b, 0xcc, 0x19, 0x3e, 0xcc, 0xfe, 0xaa, 0x24, 0xd4, 0x59, 0x27, 0x46, + 0x76, 0xb8, 0xe7, 0x1d, 0x72, 0x06, 0x83, 0x68, 0xfd, 0xad, 0x8d, 0x02, 0xae, 0xb6, 0x0e, 0xb4, + 0x57, 0x01, 0x9c, 0x94, 0xaf, 0x18, 0xc7, 0x87, 0x42, 0xd6, 0x4d, 0xb9, 0x01, 0xde, 0x69, 0xea, + 0x3b, 0x7a, 0xd7, 0x56, 0xe1, 0xfb, 0x29, 0xab, 0xc0, 0x80, 0x93, 0x62, 0xb6, 0xfd, 0x4b, 0xa1, + 0xf6, 0xbe, 0x9d, 0x98, 0xa5, 0xaa, 0x38, 0xaa, 0xf7, 0x74, 0x73, 0xc3, 0x68, 0x9b, 0x4d, 0xbd, + 0x23, 0x58, 0xe4, 0xe4, 0x15, 0x2e, 0x61, 0xa7, 0x72, 0x2f, 0x50, 0x8b, 0x40, 0xa3, 0x15, 0xed, + 0x43, 0xdb, 0x41, 0xab, 0x15, 0xe8, 0x7b, 0x40, 0x1c, 0xe1, 0x01, 0xe5, 0x35, 0xae, 0x7f, 0x1b, + 0xe0, 0xa6, 0xf0, 0x69, 0x79, 0x93, 0xfb, 0xce, 0x19, 0xec, 0x2c, 0xff, 0x8d, 0xe9, 0xc6, 0xd4, + 0x75, 0xf9, 0xa5, 0x50, 0x97, 0x03, 0xba, 0xdb, 0x61, 0x63, 0x8a, 0xa3, 0xc6, 0xf4, 0xcf, 0xb4, + 0xe3, 0xb0, 0x86, 0xcb, 0xfa, 0xfd, 0xfa, 0xf1, 0x81, 0x29, 0xbf, 0x1c, 0x8a, 0x7d, 0x01, 0x95, + 0xa8, 0xab, 0xf9, 0xa8, 0xf0, 0x17, 0xa4, 0x62, 0x91, 0xba, 0x7b, 0x63, 0x08, 0x0a, 0x14, 0xa4, + 0x52, 0x89, 0x96, 0xed, 0xf8, 0x7b, 0x0f, 0xe7, 0xd0, 0x07, 0x0f, 0xe7, 0x46, 0xb4, 0xdf, 0x23, + 0xb8, 0x4c, 0x34, 0x19, 0xe2, 0x5e, 0x17, 0x9c, 0xbf, 0xe2, 0xd6, 0x0c, 0xbf, 0x08, 0xfc, 0xcf, + 0xc8, 0xfb, 0x37, 0x04, 0x4a, 0x9f, 0xaf, 0x6e, 0xbc, 0xb3, 0x91, 0x5c, 0x2e, 0xa0, 0xca, 0xff, + 0x3f, 0xe6, 0xf7, 0x60, 0x74, 0xa7, 0x75, 0xa8, 0x77, 0xac, 0x37, 0x81, 0xf5, 0x87, 0xe3, 0xb2, + 0x7b, 0x98, 0xe3, 0x0c, 0xb9, 0x32, 0xc7, 0x39, 0x4e, 0x96, 0x93, 0x15, 0x88, 0x95, 0xeb, 0x66, + 0xdd, 0xf6, 0x60, 0x92, 0xd6, 0xd7, 0xba, 0x59, 0xd7, 0x56, 0x60, 0x72, 0xeb, 0x41, 0xe5, 0x6d, + 0x53, 0x37, 0x1a, 0xf5, 0xdd, 0x03, 0xf1, 0x0c, 0xd4, 0xed, 0x57, 0x97, 0x33, 0xa3, 0xf1, 0x46, + 0xe2, 0x04, 0x15, 0x62, 0xb6, 0x3f, 0x6f, 0xc1, 0xd4, 0xb6, 0xe5, 0xb6, 0x6d, 0x67, 0x9b, 0xa5, + 0x00, 0x6d, 0xf1, 0x8d, 0x10, 0x3b, 0x6b, 0x0d, 0x6d, 0x09, 0xed, 0x23, 0xa6, 0xe1, 0x11, 0xda, + 0x36, 0x4c, 0xdb, 0xb6, 0x4c, 0x2c, 0x3e, 0x95, 0xb8, 0x9c, 0x89, 0xc5, 0x21, 0x71, 0x89, 0xac, + 0xfb, 0x77, 0x0c, 0x09, 0xa7, 0xd5, 0x29, 0xeb, 0xf7, 0x5b, 0x46, 0xcb, 0xec, 0xef, 0x57, 0xa9, + 0xc7, 0xf2, 0xb7, 0x60, 0xdc, 0x0a, 0xa9, 0xfd, 0x8b, 0x00, 0x76, 0x95, 0xb4, 0x28, 0xc2, 0x14, + 0x64, 0xc0, 0xa6, 0x8e, 0x67, 0x23, 0xdf, 0x02, 0x5c, 0xad, 0x6e, 0x91, 0x97, 0x5b, 0x7e, 0xa0, + 0xe9, 0x96, 0xde, 0xed, 0xd6, 0xf7, 0x75, 0xf2, 0x8b, 0x8c, 0x75, 0xf7, 0x6b, 0xd6, 0x04, 0x72, + 0x1e, 0xa4, 0xea, 0x16, 0x69, 0x78, 0xe7, 0xa3, 0x4c, 0x53, 0x93, 0xaa, 0x5b, 0xc9, 0xbf, 0x22, + 0xb8, 0xc4, 0x8d, 0xca, 0x1a, 0x4c, 0x3a, 0x03, 0xcc, 0xe3, 0x8e, 0xd5, 0xb8, 0x31, 0xd7, 0x67, + 0xe9, 0x9c, 0x3e, 0x27, 0x37, 0x60, 0x5a, 0x18, 0x97, 0x17, 0x41, 0x66, 0x87, 0x88, 0x13, 0x60, + 0x37, 0xd4, 0x3e, 0x12, 0xed, 0xeb, 0x00, 0x5e, 0x5c, 0xe5, 0x69, 0x98, 0xd8, 0xb9, 0x77, 0xa7, + 0xf2, 0xc3, 0x6a, 0xe5, 0xcd, 0x9d, 0x4a, 0x39, 0x81, 0xb4, 0x3f, 0x22, 0x98, 0x20, 0x6d, 0xeb, + 0x5e, 0xfb, 0x48, 0x97, 0x8b, 0x80, 0x36, 0x08, 0x83, 0x9e, 0xcc, 0x6f, 0xb4, 0x21, 0x2f, 0x01, + 0x2a, 0x46, 0x87, 0x1a, 0x15, 0xe5, 0x1c, 0xa0, 0x12, 0x01, 0x38, 0x1a, 0x32, 0xa8, 0xa4, 0xfd, + 0x1b, 0xc3, 0xb3, 0x6c, 0x1b, 0xed, 0xd6, 0x93, 0xab, 0xfc, 0x77, 0x53, 0x61, 0x7c, 0x39, 0xb7, + 0x92, 0x5f, 0xb4, 0xfe, 0xa1, 0x94, 0xd4, 0xf8, 0x4f, 0xa8, 0x02, 0x50, 0x95, 0xe5, 0xa0, 0x7b, + 0x22, 0x85, 0x18, 0x33, 0x43, 0xdf, 0x3d, 0x11, 0x4e, 0xda, 0x77, 0x4f, 0x84, 0x93, 0xf6, 0xdd, + 0x13, 0xe1, 0xa4, 0x7d, 0x67, 0x01, 0x9c, 0xb4, 0xef, 0x9e, 0x08, 0x27, 0xed, 0xbb, 0x27, 0xc2, + 0x49, 0xfb, 0xef, 0x89, 0x10, 0x71, 0xe0, 0x3d, 0x11, 0x5e, 0xde, 0x7f, 0x4f, 0x84, 0x97, 0xf7, + 0xdf, 0x13, 0x29, 0xc4, 0xcc, 0xce, 0xb1, 0x1e, 0x7c, 0xea, 0xc0, 0xdb, 0x0f, 0xfa, 0x08, 0xf4, + 0x2a, 0xf0, 0x36, 0x4c, 0x3b, 0x1b, 0x12, 0xa5, 0xb6, 0x61, 0xd6, 0x5b, 0x86, 0xde, 0x91, 0xbf, + 0x09, 0x93, 0xce, 0x90, 0xf3, 0x99, 0xe3, 0xf7, 0x19, 0xe8, 0xc8, 0x49, 0xbd, 0xe5, 0xb4, 0xb5, + 0x2f, 0x63, 0x30, 0xe3, 0x0c, 0x54, 0xeb, 0x87, 0x3a, 0x77, 0xcb, 0x68, 0x41, 0x38, 0x53, 0x9a, + 0xb2, 0xcc, 0x7b, 0xa7, 0x73, 0xce, 0xe8, 0x06, 0x65, 0xd3, 0x82, 0x70, 0xba, 0xc4, 0xeb, 0x79, + 0x2f, 0xa0, 0x05, 0xe1, 0xe6, 0x11, 0xaf, 0x47, 0xdf, 0x37, 0x54, 0xcf, 0xbd, 0x83, 0xc4, 0xeb, + 0x95, 0x29, 0xcb, 0x16, 0x84, 0xdb, 0x48, 0xbc, 0x5e, 0x85, 0xf2, 0x6d, 0x41, 0x38, 0x7b, 0xe2, + 0xf5, 0x6e, 0x51, 0xe6, 0x2d, 0x08, 0xa7, 0x50, 0xbc, 0xde, 0xb7, 0x29, 0x07, 0x17, 0x84, 0xbb, + 0x4a, 0xbc, 0xde, 0xeb, 0x94, 0x8d, 0x0b, 0xc2, 0xad, 0x25, 0x5e, 0x6f, 0x93, 0xf2, 0x32, 0x2d, + 0xde, 0x5f, 0xe2, 0x15, 0x6f, 0x7b, 0x0c, 0x4d, 0x8b, 0x37, 0x99, 0x78, 0xcd, 0xef, 0x78, 0x5c, + 0x4d, 0x8b, 0x77, 0x9a, 0x78, 0xcd, 0x37, 0x3c, 0xd6, 0xa6, 0xc5, 0xb3, 0x32, 0x5e, 0x73, 0xcb, + 0xe3, 0x6f, 0x5a, 0x3c, 0x35, 0xe3, 0x35, 0xab, 0x1e, 0x93, 0xd3, 0xe2, 0xf9, 0x19, 0xaf, 0xb9, + 0xed, 0x6d, 0xa2, 0x7f, 0x24, 0xd0, 0x8f, 0xb9, 0x05, 0xa5, 0x09, 0xf4, 0x03, 0x1f, 0xea, 0x09, + 0x85, 0x8c, 0xd1, 0xf1, 0x68, 0xa7, 0x09, 0xb4, 0x03, 0x1f, 0xca, 0x69, 0x02, 0xe5, 0xc0, 0x87, + 0x6e, 0x9a, 0x40, 0x37, 0xf0, 0xa1, 0x9a, 0x26, 0x50, 0x0d, 0x7c, 0x68, 0xa6, 0x09, 0x34, 0x03, + 0x1f, 0x8a, 0x69, 0x02, 0xc5, 0xc0, 0x87, 0x5e, 0x9a, 0x40, 0x2f, 0xf0, 0xa1, 0xd6, 0xbc, 0x48, + 0x2d, 0xf0, 0xa3, 0xd5, 0xbc, 0x48, 0x2b, 0xf0, 0xa3, 0xd4, 0x8b, 0x22, 0xa5, 0xc6, 0x7b, 0xa7, + 0x73, 0xa3, 0xd6, 0x10, 0xc3, 0xa6, 0x79, 0x91, 0x4d, 0xe0, 0xc7, 0xa4, 0x79, 0x91, 0x49, 0xe0, + 0xc7, 0xa2, 0x79, 0x91, 0x45, 0xe0, 0xc7, 0xa0, 0x47, 0x22, 0x83, 0xbc, 0x3b, 0x3e, 0x9a, 0x70, + 0xa4, 0x18, 0xc6, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83, 0x70, 0x04, 0x06, 0xe1, 0x08, 0x0c, + 0xc2, 0x11, 0x18, 0x84, 0x23, 0x30, 0x08, 0x47, 0x60, 0x10, 0x8e, 0xc2, 0x20, 0x1c, 0x89, 0x41, + 0x38, 0x88, 0x41, 0xf3, 0xe2, 0x8d, 0x07, 0xf0, 0x2b, 0x48, 0xf3, 0xe2, 0xd1, 0x67, 0x38, 0x85, + 0x70, 0x24, 0x0a, 0xe1, 0x20, 0x0a, 0x7d, 0x84, 0xe1, 0x59, 0x8e, 0x42, 0xe4, 0x7c, 0xe8, 0xa2, + 0x2a, 0xd0, 0x5a, 0x84, 0x0b, 0x16, 0x7e, 0x9c, 0x5a, 0x8b, 0x70, 0x48, 0x3d, 0x88, 0x67, 0xfd, + 0x55, 0xa8, 0x12, 0xa1, 0x0a, 0xdd, 0xa2, 0x1c, 0x5a, 0x8b, 0x70, 0xf1, 0xa2, 0x9f, 0x7b, 0xeb, + 0x83, 0x8a, 0xc0, 0xeb, 0x91, 0x8a, 0xc0, 0x66, 0xa4, 0x22, 0x70, 0xdb, 0x43, 0xf0, 0x67, 0x12, + 0x3c, 0xe7, 0x21, 0xe8, 0xfc, 0xb5, 0xf3, 0xe0, 0xc8, 0x2a, 0x01, 0xde, 0x11, 0x95, 0xec, 0x1e, + 0xdb, 0x30, 0x30, 0x4a, 0x9b, 0x0d, 0xf9, 0x0e, 0x7f, 0x58, 0x55, 0x18, 0xf6, 0x00, 0x87, 0x41, + 0x9c, 0x6c, 0x86, 0xce, 0x03, 0xde, 0x6c, 0x74, 0xed, 0x6a, 0xe1, 0xb7, 0x6c, 0xa9, 0x66, 0x89, + 0xe5, 0x1a, 0x8c, 0xd9, 0xea, 0x5d, 0x1b, 0xde, 0xf3, 0x2c, 0x5c, 0xae, 0x91, 0x99, 0xb4, 0x47, + 0x08, 0x52, 0x1c, 0x95, 0x2f, 0xe6, 0xc8, 0xe0, 0x95, 0x48, 0x47, 0x06, 0x5c, 0x82, 0x78, 0xc7, + 0x07, 0xdf, 0xe8, 0x3f, 0xa9, 0x66, 0xb3, 0x44, 0x3c, 0x4a, 0xf8, 0x29, 0x4c, 0x79, 0x4f, 0x60, + 0x7f, 0xb3, 0xad, 0x86, 0xef, 0x66, 0xfa, 0xa5, 0xe6, 0xaa, 0xb0, 0x8b, 0x36, 0xd0, 0x8c, 0x66, + 0xab, 0x56, 0x80, 0xe9, 0x6a, 0xdb, 0xde, 0x33, 0xe8, 0xb6, 0xda, 0x46, 0x77, 0xab, 0x7e, 0x14, + 0xb6, 0x19, 0x11, 0xb7, 0x5a, 0xf3, 0x93, 0xdf, 0xcc, 0x8d, 0x68, 0x2f, 0xc3, 0xe4, 0x5d, 0xa3, + 0xa3, 0xef, 0xb5, 0xf7, 0x8d, 0xd6, 0x4f, 0xf4, 0x86, 0x60, 0x38, 0xee, 0x1a, 0x16, 0x62, 0x8f, + 0x2d, 0xed, 0x5f, 0x22, 0xb8, 0xc2, 0xaa, 0x7f, 0xaf, 0x65, 0x36, 0x37, 0x0d, 0xab, 0xa7, 0x7f, + 0x15, 0xe2, 0x3a, 0x01, 0xce, 0x7e, 0x77, 0x4d, 0xb8, 0xdf, 0x91, 0xbe, 0xea, 0x8b, 0xf6, 0xbf, + 0x35, 0x6a, 0x22, 0xec, 0x71, 0xb8, 0xcb, 0xe6, 0x92, 0xd7, 0x60, 0xd4, 0x99, 0x9f, 0xf7, 0xeb, + 0x92, 0xe0, 0xd7, 0xef, 0x7c, 0xfc, 0xb2, 0x79, 0x24, 0xdf, 0xe6, 0xfc, 0x62, 0x3e, 0x57, 0x7d, + 0xd5, 0x17, 0x5d, 0xf2, 0x15, 0xe3, 0x56, 0xff, 0x67, 0x33, 0x2a, 0xdc, 0xc9, 0x34, 0xc4, 0x2b, + 0xa2, 0x8e, 0xbf, 0x9f, 0x65, 0x88, 0x55, 0xdb, 0x0d, 0x5d, 0x7e, 0x0e, 0x46, 0xdf, 0xa8, 0xef, + 0xea, 0x07, 0x24, 0xc8, 0xce, 0x0f, 0x79, 0x01, 0xe2, 0xa5, 0x66, 0xeb, 0xa0, 0xd1, 0xd1, 0x0d, + 0x72, 0x66, 0x4f, 0xb6, 0xd0, 0x2d, 0x9b, 0x1a, 0x95, 0x69, 0x25, 0xb8, 0x5c, 0x6d, 0x1b, 0xc5, + 0x07, 0x26, 0x5b, 0x37, 0x16, 0x85, 0x14, 0x21, 0x67, 0x3e, 0x77, 0xac, 0x6c, 0xb4, 0x14, 0x8a, + 0xa3, 0x1f, 0x9f, 0xce, 0xa1, 0x1d, 0xba, 0x7f, 0xbe, 0x05, 0xcf, 0x93, 0xf4, 0xe9, 0x9b, 0x2a, + 0x17, 0x36, 0xd5, 0x38, 0x39, 0xa7, 0x66, 0xa6, 0xdb, 0xb4, 0xa6, 0x33, 0x7c, 0xa7, 0x7b, 0x32, + 0xcf, 0xac, 0xa6, 0x68, 0xa0, 0x67, 0x78, 0x28, 0xcf, 0x7c, 0xa7, 0x5b, 0x0c, 0x9b, 0x4e, 0xf0, + 0xec, 0x45, 0x18, 0xa7, 0x32, 0x86, 0x0d, 0x6c, 0xa6, 0xe4, 0x32, 0x1a, 0x4c, 0x30, 0x09, 0x2b, + 0x8f, 0x02, 0xda, 0x48, 0x8c, 0x58, 0xff, 0x15, 0x13, 0xc8, 0xfa, 0xaf, 0x94, 0x90, 0x32, 0xd7, + 0x60, 0x5a, 0xd8, 0xbf, 0xb4, 0x24, 0xe5, 0x04, 0x58, 0xff, 0x55, 0x12, 0x13, 0xc9, 0xd8, 0x7b, + 0xbf, 0x55, 0x47, 0x32, 0xaf, 0x80, 0xdc, 0xbf, 0xd3, 0x29, 0x8f, 0x81, 0xb4, 0x61, 0x4d, 0xf9, + 0x3c, 0x48, 0xc5, 0x62, 0x02, 0x25, 0xa7, 0x7f, 0xfe, 0xab, 0xd4, 0x44, 0x51, 0x37, 0x4d, 0xbd, + 0x73, 0x4f, 0x37, 0x8b, 0x45, 0x62, 0xfc, 0x1a, 0x5c, 0xf1, 0xdd, 0x29, 0xb5, 0xec, 0x4b, 0x25, + 0xc7, 0xbe, 0x5c, 0xee, 0xb3, 0x2f, 0x97, 0x6d, 0x7b, 0x54, 0x70, 0x4f, 0x9c, 0x37, 0x64, 0x9f, + 0x7d, 0x49, 0xa5, 0xc1, 0x9c, 0x70, 0x6f, 0x14, 0x5e, 0x23, 0xba, 0x45, 0x5f, 0x5d, 0x3d, 0xe4, + 0xc4, 0xba, 0x58, 0x28, 0x11, 0xfb, 0x92, 0xaf, 0xfd, 0x7d, 0xe1, 0x58, 0x95, 0x7f, 0x43, 0x90, + 0x49, 0x4a, 0xd4, 0xe1, 0xb2, 0xef, 0x24, 0x4d, 0xe6, 0xb2, 0x7b, 0x99, 0x3a, 0x5c, 0xf1, 0xd5, + 0x6d, 0x85, 0x5c, 0xfa, 0xaa, 0x14, 0x96, 0xc8, 0x4b, 0x7e, 0x63, 0x59, 0xbe, 0xe2, 0xe6, 0x28, + 0x57, 0x81, 0x49, 0x80, 0x5c, 0xad, 0x42, 0x89, 0x18, 0x14, 0x03, 0x0d, 0x82, 0xa3, 0xe4, 0x5a, + 0x16, 0x5e, 0x27, 0x93, 0x94, 0x02, 0x27, 0x09, 0x09, 0x95, 0x6b, 0x5e, 0xdc, 0x39, 0x39, 0x53, + 0x47, 0x1e, 0x9f, 0xa9, 0x23, 0xff, 0x3c, 0x53, 0x47, 0x3e, 0x39, 0x53, 0xd1, 0x67, 0x67, 0x2a, + 0xfa, 0xfc, 0x4c, 0x45, 0x5f, 0x9c, 0xa9, 0xe8, 0x9d, 0x9e, 0x8a, 0x3e, 0xe8, 0xa9, 0xe8, 0xc3, + 0x9e, 0x8a, 0xfe, 0xd4, 0x53, 0xd1, 0xa3, 0x9e, 0x8a, 0x4e, 0x7a, 0x2a, 0x7a, 0xdc, 0x53, 0xd1, + 0x27, 0x3d, 0x15, 0x7d, 0xd6, 0x53, 0x47, 0x3e, 0xef, 0xa9, 0xe8, 0x8b, 0x9e, 0x3a, 0xf2, 0xce, + 0xa7, 0xea, 0xc8, 0xc3, 0x4f, 0xd5, 0x91, 0x0f, 0x3e, 0x55, 0xd1, 0x7f, 0x03, 0x00, 0x00, 0xff, + 0xff, 0xe9, 0xa6, 0x38, 0x99, 0x47, 0x36, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/combos/both/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/both/thetestpb_test.go index ec95aa214..4c2020853 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/both/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/both/thetestpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/thetest.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -77,13 +76,12 @@ It has these top-level messages: package test import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -94,14 +92,14 @@ var _ = math.Inf func TestNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -122,13 +120,13 @@ func TestNidOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -140,7 +138,7 @@ func TestNidOptNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -155,7 +153,7 @@ func TestNidOptNativeMarshalTo(t *testing.T) { } func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNative, 10000) for i := 0; i < 10000; i++ { @@ -163,7 +161,7 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -173,11 +171,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } @@ -187,7 +185,7 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -196,14 +194,14 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { func TestNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -224,13 +222,13 @@ func TestNinOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -242,7 +240,7 @@ func TestNinOptNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -257,7 +255,7 @@ func TestNinOptNativeMarshalTo(t *testing.T) { } func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNative, 10000) for i := 0; i < 10000; i++ { @@ -265,7 +263,7 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -275,11 +273,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } @@ -289,7 +287,7 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -298,14 +296,14 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { func TestNidRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -326,13 +324,13 @@ func TestNidRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -344,7 +342,7 @@ func TestNidRepNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -359,7 +357,7 @@ func TestNidRepNativeMarshalTo(t *testing.T) { } func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNative, 10000) for i := 0; i < 10000; i++ { @@ -367,7 +365,7 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -377,11 +375,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } @@ -391,7 +389,7 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -400,14 +398,14 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { func TestNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -428,13 +426,13 @@ func TestNinRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -446,7 +444,7 @@ func TestNinRepNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -461,7 +459,7 @@ func TestNinRepNativeMarshalTo(t *testing.T) { } func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNative, 10000) for i := 0; i < 10000; i++ { @@ -469,7 +467,7 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -479,11 +477,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } @@ -493,7 +491,7 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -502,14 +500,14 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { func TestNidRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -530,13 +528,13 @@ func TestNidRepPackedNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepPackedNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -548,7 +546,7 @@ func TestNidRepPackedNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -563,7 +561,7 @@ func TestNidRepPackedNativeMarshalTo(t *testing.T) { } func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepPackedNative, 10000) for i := 0; i < 10000; i++ { @@ -571,7 +569,7 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -581,11 +579,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } @@ -595,7 +593,7 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -604,14 +602,14 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { func TestNinRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -632,13 +630,13 @@ func TestNinRepPackedNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepPackedNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -650,7 +648,7 @@ func TestNinRepPackedNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -665,7 +663,7 @@ func TestNinRepPackedNativeMarshalTo(t *testing.T) { } func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepPackedNative, 10000) for i := 0; i < 10000; i++ { @@ -673,7 +671,7 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -683,11 +681,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } @@ -697,7 +695,7 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -706,14 +704,14 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { func TestNidOptStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -734,13 +732,13 @@ func TestNidOptStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -752,7 +750,7 @@ func TestNidOptStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -767,7 +765,7 @@ func TestNidOptStructMarshalTo(t *testing.T) { } func BenchmarkNidOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptStruct, 10000) for i := 0; i < 10000; i++ { @@ -775,7 +773,7 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -785,11 +783,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } @@ -799,7 +797,7 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -808,14 +806,14 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { func TestNinOptStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -836,13 +834,13 @@ func TestNinOptStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -854,7 +852,7 @@ func TestNinOptStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -869,7 +867,7 @@ func TestNinOptStructMarshalTo(t *testing.T) { } func BenchmarkNinOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStruct, 10000) for i := 0; i < 10000; i++ { @@ -877,7 +875,7 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -887,11 +885,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } @@ -901,7 +899,7 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -910,14 +908,14 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { func TestNidRepStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -938,13 +936,13 @@ func TestNidRepStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -956,7 +954,7 @@ func TestNidRepStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -971,7 +969,7 @@ func TestNidRepStructMarshalTo(t *testing.T) { } func BenchmarkNidRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepStruct, 10000) for i := 0; i < 10000; i++ { @@ -979,7 +977,7 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -989,11 +987,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } @@ -1003,7 +1001,7 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1012,14 +1010,14 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { func TestNinRepStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1040,13 +1038,13 @@ func TestNinRepStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1058,7 +1056,7 @@ func TestNinRepStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1073,7 +1071,7 @@ func TestNinRepStructMarshalTo(t *testing.T) { } func BenchmarkNinRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepStruct, 10000) for i := 0; i < 10000; i++ { @@ -1081,7 +1079,7 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1091,11 +1089,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } @@ -1105,7 +1103,7 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1114,14 +1112,14 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { func TestNidEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1142,13 +1140,13 @@ func TestNidEmbeddedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidEmbeddedStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1160,7 +1158,7 @@ func TestNidEmbeddedStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1175,7 +1173,7 @@ func TestNidEmbeddedStructMarshalTo(t *testing.T) { } func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidEmbeddedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1183,7 +1181,7 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1193,11 +1191,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } @@ -1207,7 +1205,7 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1216,14 +1214,14 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { func TestNinEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1244,13 +1242,13 @@ func TestNinEmbeddedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinEmbeddedStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1262,7 +1260,7 @@ func TestNinEmbeddedStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1277,7 +1275,7 @@ func TestNinEmbeddedStructMarshalTo(t *testing.T) { } func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1285,7 +1283,7 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1295,11 +1293,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } @@ -1309,7 +1307,7 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1318,14 +1316,14 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { func TestNidNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1346,13 +1344,13 @@ func TestNidNestedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidNestedStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1364,7 +1362,7 @@ func TestNidNestedStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1379,7 +1377,7 @@ func TestNidNestedStructMarshalTo(t *testing.T) { } func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidNestedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1387,7 +1385,7 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1397,11 +1395,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } @@ -1411,7 +1409,7 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1420,14 +1418,14 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { func TestNinNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1448,13 +1446,13 @@ func TestNinNestedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinNestedStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1466,7 +1464,7 @@ func TestNinNestedStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1481,7 +1479,7 @@ func TestNinNestedStructMarshalTo(t *testing.T) { } func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1489,7 +1487,7 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1499,11 +1497,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } @@ -1513,7 +1511,7 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1522,14 +1520,14 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { func TestNidOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1550,13 +1548,13 @@ func TestNidOptCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptCustomMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1568,7 +1566,7 @@ func TestNidOptCustomMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1583,7 +1581,7 @@ func TestNidOptCustomMarshalTo(t *testing.T) { } func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptCustom, 10000) for i := 0; i < 10000; i++ { @@ -1591,7 +1589,7 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1601,11 +1599,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } @@ -1615,7 +1613,7 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1624,14 +1622,14 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { func TestCustomDashProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1652,13 +1650,13 @@ func TestCustomDashProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomDashMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1670,7 +1668,7 @@ func TestCustomDashMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1685,7 +1683,7 @@ func TestCustomDashMarshalTo(t *testing.T) { } func BenchmarkCustomDashProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomDash, 10000) for i := 0; i < 10000; i++ { @@ -1693,7 +1691,7 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1703,11 +1701,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } @@ -1717,7 +1715,7 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1726,14 +1724,14 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { func TestNinOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1754,13 +1752,13 @@ func TestNinOptCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptCustomMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1772,7 +1770,7 @@ func TestNinOptCustomMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1787,7 +1785,7 @@ func TestNinOptCustomMarshalTo(t *testing.T) { } func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptCustom, 10000) for i := 0; i < 10000; i++ { @@ -1795,7 +1793,7 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1805,11 +1803,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } @@ -1819,7 +1817,7 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1828,14 +1826,14 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { func TestNidRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1856,13 +1854,13 @@ func TestNidRepCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepCustomMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1874,7 +1872,7 @@ func TestNidRepCustomMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1889,7 +1887,7 @@ func TestNidRepCustomMarshalTo(t *testing.T) { } func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepCustom, 10000) for i := 0; i < 10000; i++ { @@ -1897,7 +1895,7 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1907,11 +1905,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } @@ -1921,7 +1919,7 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1930,14 +1928,14 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { func TestNinRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1958,13 +1956,13 @@ func TestNinRepCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepCustomMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1976,7 +1974,7 @@ func TestNinRepCustomMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1991,7 +1989,7 @@ func TestNinRepCustomMarshalTo(t *testing.T) { } func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepCustom, 10000) for i := 0; i < 10000; i++ { @@ -1999,7 +1997,7 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2009,11 +2007,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } @@ -2023,7 +2021,7 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2032,14 +2030,14 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { func TestNinOptNativeUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2060,13 +2058,13 @@ func TestNinOptNativeUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptNativeUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2078,7 +2076,7 @@ func TestNinOptNativeUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2093,7 +2091,7 @@ func TestNinOptNativeUnionMarshalTo(t *testing.T) { } func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeUnion, 10000) for i := 0; i < 10000; i++ { @@ -2101,7 +2099,7 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2111,11 +2109,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } @@ -2125,7 +2123,7 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2134,14 +2132,14 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { func TestNinOptStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2162,13 +2160,13 @@ func TestNinOptStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptStructUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2180,7 +2178,7 @@ func TestNinOptStructUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2195,7 +2193,7 @@ func TestNinOptStructUnionMarshalTo(t *testing.T) { } func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -2203,7 +2201,7 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2213,11 +2211,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } @@ -2227,7 +2225,7 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2236,14 +2234,14 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { func TestNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2264,13 +2262,13 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2282,7 +2280,7 @@ func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2297,7 +2295,7 @@ func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { } func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -2305,7 +2303,7 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2315,11 +2313,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } @@ -2329,7 +2327,7 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2338,14 +2336,14 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { func TestNinNestedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2366,13 +2364,13 @@ func TestNinNestedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinNestedStructUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2384,7 +2382,7 @@ func TestNinNestedStructUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2399,7 +2397,7 @@ func TestNinNestedStructUnionMarshalTo(t *testing.T) { } func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -2407,7 +2405,7 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2417,11 +2415,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } @@ -2431,7 +2429,7 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2440,14 +2438,14 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { func TestTreeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2468,13 +2466,13 @@ func TestTreeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestTreeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2486,7 +2484,7 @@ func TestTreeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2501,7 +2499,7 @@ func TestTreeMarshalTo(t *testing.T) { } func BenchmarkTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Tree, 10000) for i := 0; i < 10000; i++ { @@ -2509,7 +2507,7 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2519,11 +2517,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } func BenchmarkTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } @@ -2533,7 +2531,7 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2542,14 +2540,14 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { func TestOrBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2570,13 +2568,13 @@ func TestOrBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOrBranchMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2588,7 +2586,7 @@ func TestOrBranchMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2603,7 +2601,7 @@ func TestOrBranchMarshalTo(t *testing.T) { } func BenchmarkOrBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OrBranch, 10000) for i := 0; i < 10000; i++ { @@ -2611,7 +2609,7 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2621,11 +2619,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } @@ -2635,7 +2633,7 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2644,14 +2642,14 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { func TestAndBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2672,13 +2670,13 @@ func TestAndBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAndBranchMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2690,7 +2688,7 @@ func TestAndBranchMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2705,7 +2703,7 @@ func TestAndBranchMarshalTo(t *testing.T) { } func BenchmarkAndBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndBranch, 10000) for i := 0; i < 10000; i++ { @@ -2713,7 +2711,7 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2723,11 +2721,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } @@ -2737,7 +2735,7 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2746,14 +2744,14 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { func TestLeafProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2774,13 +2772,13 @@ func TestLeafProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestLeafMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2792,7 +2790,7 @@ func TestLeafMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2807,7 +2805,7 @@ func TestLeafMarshalTo(t *testing.T) { } func BenchmarkLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Leaf, 10000) for i := 0; i < 10000; i++ { @@ -2815,7 +2813,7 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2825,11 +2823,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } func BenchmarkLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } @@ -2839,7 +2837,7 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2848,14 +2846,14 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { func TestDeepTreeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2876,13 +2874,13 @@ func TestDeepTreeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDeepTreeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2894,7 +2892,7 @@ func TestDeepTreeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2909,7 +2907,7 @@ func TestDeepTreeMarshalTo(t *testing.T) { } func BenchmarkDeepTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepTree, 10000) for i := 0; i < 10000; i++ { @@ -2917,7 +2915,7 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2927,11 +2925,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } @@ -2941,7 +2939,7 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2950,14 +2948,14 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { func TestADeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2978,13 +2976,13 @@ func TestADeepBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestADeepBranchMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2996,7 +2994,7 @@ func TestADeepBranchMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3011,7 +3009,7 @@ func TestADeepBranchMarshalTo(t *testing.T) { } func BenchmarkADeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ADeepBranch, 10000) for i := 0; i < 10000; i++ { @@ -3019,7 +3017,7 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3029,11 +3027,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } @@ -3043,7 +3041,7 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3052,14 +3050,14 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { func TestAndDeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3080,13 +3078,13 @@ func TestAndDeepBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAndDeepBranchMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3098,7 +3096,7 @@ func TestAndDeepBranchMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3113,7 +3111,7 @@ func TestAndDeepBranchMarshalTo(t *testing.T) { } func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndDeepBranch, 10000) for i := 0; i < 10000; i++ { @@ -3121,7 +3119,7 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3131,11 +3129,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } @@ -3145,7 +3143,7 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3154,14 +3152,14 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { func TestDeepLeafProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3182,13 +3180,13 @@ func TestDeepLeafProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDeepLeafMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3200,7 +3198,7 @@ func TestDeepLeafMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3215,7 +3213,7 @@ func TestDeepLeafMarshalTo(t *testing.T) { } func BenchmarkDeepLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepLeaf, 10000) for i := 0; i < 10000; i++ { @@ -3223,7 +3221,7 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3233,11 +3231,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } @@ -3247,7 +3245,7 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3256,14 +3254,14 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { func TestNilProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3284,13 +3282,13 @@ func TestNilProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNilMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3302,7 +3300,7 @@ func TestNilMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3317,7 +3315,7 @@ func TestNilMarshalTo(t *testing.T) { } func BenchmarkNilProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nil, 10000) for i := 0; i < 10000; i++ { @@ -3325,7 +3323,7 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3335,11 +3333,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } func BenchmarkNilProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } @@ -3349,7 +3347,7 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3358,14 +3356,14 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3386,13 +3384,13 @@ func TestNidOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3404,7 +3402,7 @@ func TestNidOptEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3419,7 +3417,7 @@ func TestNidOptEnumMarshalTo(t *testing.T) { } func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -3427,7 +3425,7 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3437,11 +3435,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } @@ -3451,7 +3449,7 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3460,14 +3458,14 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3488,13 +3486,13 @@ func TestNinOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3506,7 +3504,7 @@ func TestNinOptEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3521,7 +3519,7 @@ func TestNinOptEnumMarshalTo(t *testing.T) { } func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -3529,7 +3527,7 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3539,11 +3537,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } @@ -3553,7 +3551,7 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3562,14 +3560,14 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3590,13 +3588,13 @@ func TestNidRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3608,7 +3606,7 @@ func TestNidRepEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3623,7 +3621,7 @@ func TestNidRepEnumMarshalTo(t *testing.T) { } func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepEnum, 10000) for i := 0; i < 10000; i++ { @@ -3631,7 +3629,7 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3641,11 +3639,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } @@ -3655,7 +3653,7 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3664,14 +3662,14 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3692,13 +3690,13 @@ func TestNinRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3710,7 +3708,7 @@ func TestNinRepEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3725,7 +3723,7 @@ func TestNinRepEnumMarshalTo(t *testing.T) { } func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepEnum, 10000) for i := 0; i < 10000; i++ { @@ -3733,7 +3731,7 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3743,11 +3741,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } @@ -3757,7 +3755,7 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3766,14 +3764,14 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { func TestNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3794,13 +3792,13 @@ func TestNinOptEnumDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptEnumDefaultMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3812,7 +3810,7 @@ func TestNinOptEnumDefaultMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3827,7 +3825,7 @@ func TestNinOptEnumDefaultMarshalTo(t *testing.T) { } func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnumDefault, 10000) for i := 0; i < 10000; i++ { @@ -3835,7 +3833,7 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3845,11 +3843,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } @@ -3859,7 +3857,7 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3868,14 +3866,14 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { func TestAnotherNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3896,13 +3894,13 @@ func TestAnotherNinOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAnotherNinOptEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3914,7 +3912,7 @@ func TestAnotherNinOptEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3929,7 +3927,7 @@ func TestAnotherNinOptEnumMarshalTo(t *testing.T) { } func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -3937,7 +3935,7 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3947,11 +3945,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } @@ -3961,7 +3959,7 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3970,14 +3968,14 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { func TestAnotherNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3998,13 +3996,13 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4016,7 +4014,7 @@ func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4031,7 +4029,7 @@ func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { } func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnumDefault, 10000) for i := 0; i < 10000; i++ { @@ -4039,7 +4037,7 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4049,11 +4047,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } @@ -4063,7 +4061,7 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4072,14 +4070,14 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { func TestTimerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4100,13 +4098,13 @@ func TestTimerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestTimerMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4118,7 +4116,7 @@ func TestTimerMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4133,7 +4131,7 @@ func TestTimerMarshalTo(t *testing.T) { } func BenchmarkTimerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Timer, 10000) for i := 0; i < 10000; i++ { @@ -4141,7 +4139,7 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4151,11 +4149,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } func BenchmarkTimerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } @@ -4165,7 +4163,7 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4174,14 +4172,14 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { func TestMyExtendableProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4202,13 +4200,13 @@ func TestMyExtendableProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMyExtendableMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4220,7 +4218,7 @@ func TestMyExtendableMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4235,7 +4233,7 @@ func TestMyExtendableMarshalTo(t *testing.T) { } func BenchmarkMyExtendableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyExtendable, 10000) for i := 0; i < 10000; i++ { @@ -4243,7 +4241,7 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4253,11 +4251,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } @@ -4267,7 +4265,7 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4276,14 +4274,14 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { func TestOtherExtenableProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4304,13 +4302,13 @@ func TestOtherExtenableProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOtherExtenableMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4322,7 +4320,7 @@ func TestOtherExtenableMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4337,7 +4335,7 @@ func TestOtherExtenableMarshalTo(t *testing.T) { } func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OtherExtenable, 10000) for i := 0; i < 10000; i++ { @@ -4345,7 +4343,7 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4355,11 +4353,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } @@ -4369,7 +4367,7 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4378,14 +4376,14 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { func TestNestedDefinitionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4406,13 +4404,13 @@ func TestNestedDefinitionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedDefinitionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4424,7 +4422,7 @@ func TestNestedDefinitionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4439,7 +4437,7 @@ func TestNestedDefinitionMarshalTo(t *testing.T) { } func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition, 10000) for i := 0; i < 10000; i++ { @@ -4447,7 +4445,7 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4457,11 +4455,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } @@ -4471,7 +4469,7 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4480,14 +4478,14 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { func TestNestedDefinition_NestedMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4508,13 +4506,13 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4526,7 +4524,7 @@ func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4541,7 +4539,7 @@ func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { } func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage, 10000) for i := 0; i < 10000; i++ { @@ -4549,7 +4547,7 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4559,11 +4557,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } @@ -4573,7 +4571,7 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4582,14 +4580,14 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4610,13 +4608,13 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4628,7 +4626,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4643,7 +4641,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 10000) for i := 0; i < 10000; i++ { @@ -4651,7 +4649,7 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4661,11 +4659,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } @@ -4675,7 +4673,7 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4684,14 +4682,14 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te func TestNestedScopeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4712,13 +4710,13 @@ func TestNestedScopeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedScopeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4730,7 +4728,7 @@ func TestNestedScopeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4745,7 +4743,7 @@ func TestNestedScopeMarshalTo(t *testing.T) { } func BenchmarkNestedScopeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedScope, 10000) for i := 0; i < 10000; i++ { @@ -4753,7 +4751,7 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4763,11 +4761,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } @@ -4777,7 +4775,7 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4786,14 +4784,14 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { func TestNinOptNativeDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4814,13 +4812,13 @@ func TestNinOptNativeDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptNativeDefaultMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4832,7 +4830,7 @@ func TestNinOptNativeDefaultMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4847,7 +4845,7 @@ func TestNinOptNativeDefaultMarshalTo(t *testing.T) { } func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeDefault, 10000) for i := 0; i < 10000; i++ { @@ -4855,7 +4853,7 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4865,11 +4863,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } @@ -4879,7 +4877,7 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4888,14 +4886,14 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { func TestCustomContainerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4916,13 +4914,13 @@ func TestCustomContainerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomContainerMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4934,7 +4932,7 @@ func TestCustomContainerMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4949,7 +4947,7 @@ func TestCustomContainerMarshalTo(t *testing.T) { } func BenchmarkCustomContainerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomContainer, 10000) for i := 0; i < 10000; i++ { @@ -4957,7 +4955,7 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4967,11 +4965,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } @@ -4981,7 +4979,7 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4990,14 +4988,14 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { func TestCustomNameNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5018,13 +5016,13 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5036,7 +5034,7 @@ func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5051,7 +5049,7 @@ func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { } func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNidOptNative, 10000) for i := 0; i < 10000; i++ { @@ -5059,7 +5057,7 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5069,11 +5067,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } @@ -5083,7 +5081,7 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5092,14 +5090,14 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5120,13 +5118,13 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5138,7 +5136,7 @@ func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5153,7 +5151,7 @@ func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { } func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinOptNative, 10000) for i := 0; i < 10000; i++ { @@ -5161,7 +5159,7 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5171,11 +5169,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } @@ -5185,7 +5183,7 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5194,14 +5192,14 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5222,13 +5220,13 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5240,7 +5238,7 @@ func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5255,7 +5253,7 @@ func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { } func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinRepNative, 10000) for i := 0; i < 10000; i++ { @@ -5263,7 +5261,7 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5273,11 +5271,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } @@ -5287,7 +5285,7 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5296,14 +5294,14 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5324,13 +5322,13 @@ func TestCustomNameNinStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNinStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5342,7 +5340,7 @@ func TestCustomNameNinStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5357,7 +5355,7 @@ func TestCustomNameNinStructMarshalTo(t *testing.T) { } func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinStruct, 10000) for i := 0; i < 10000; i++ { @@ -5365,7 +5363,7 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5375,11 +5373,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } @@ -5389,7 +5387,7 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5398,14 +5396,14 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { func TestCustomNameCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5426,13 +5424,13 @@ func TestCustomNameCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5444,7 +5442,7 @@ func TestCustomNameCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5459,7 +5457,7 @@ func TestCustomNameCustomTypeMarshalTo(t *testing.T) { } func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameCustomType, 10000) for i := 0; i < 10000; i++ { @@ -5467,7 +5465,7 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5477,11 +5475,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } @@ -5491,7 +5489,7 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5500,14 +5498,14 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5528,13 +5526,13 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5546,7 +5544,7 @@ func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5561,7 +5559,7 @@ func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { } func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinEmbeddedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -5569,7 +5567,7 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5579,11 +5577,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } @@ -5593,7 +5591,7 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5602,14 +5600,14 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { func TestCustomNameEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5630,13 +5628,13 @@ func TestCustomNameEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5648,7 +5646,7 @@ func TestCustomNameEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5663,7 +5661,7 @@ func TestCustomNameEnumMarshalTo(t *testing.T) { } func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameEnum, 10000) for i := 0; i < 10000; i++ { @@ -5671,7 +5669,7 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5681,11 +5679,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } @@ -5695,7 +5693,7 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5704,14 +5702,14 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { func TestNoExtensionsMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5732,13 +5730,13 @@ func TestNoExtensionsMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNoExtensionsMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5750,7 +5748,7 @@ func TestNoExtensionsMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5765,7 +5763,7 @@ func TestNoExtensionsMapMarshalTo(t *testing.T) { } func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NoExtensionsMap, 10000) for i := 0; i < 10000; i++ { @@ -5773,7 +5771,7 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5783,11 +5781,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } @@ -5797,7 +5795,7 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5806,14 +5804,14 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { func TestUnrecognizedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5834,13 +5832,13 @@ func TestUnrecognizedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5852,7 +5850,7 @@ func TestUnrecognizedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5867,7 +5865,7 @@ func TestUnrecognizedMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Unrecognized, 10000) for i := 0; i < 10000; i++ { @@ -5875,7 +5873,7 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5885,11 +5883,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } @@ -5899,7 +5897,7 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5908,14 +5906,14 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithInnerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5936,13 +5934,13 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5954,7 +5952,7 @@ func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5969,7 +5967,7 @@ func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner, 10000) for i := 0; i < 10000; i++ { @@ -5977,7 +5975,7 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5987,11 +5985,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } @@ -6001,7 +5999,7 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6010,14 +6008,14 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithInner_InnerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6038,13 +6036,13 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6056,7 +6054,7 @@ func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6071,7 +6069,7 @@ func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner_Inner, 10000) for i := 0; i < 10000; i++ { @@ -6079,7 +6077,7 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6089,11 +6087,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } @@ -6103,7 +6101,7 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6112,14 +6110,14 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithEmbedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6140,13 +6138,13 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6158,7 +6156,7 @@ func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6173,7 +6171,7 @@ func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed, 10000) for i := 0; i < 10000; i++ { @@ -6181,7 +6179,7 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6191,11 +6189,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } @@ -6205,7 +6203,7 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6214,14 +6212,14 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6242,13 +6240,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6260,7 +6258,7 @@ func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6275,7 +6273,7 @@ func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed_Embedded, 10000) for i := 0; i < 10000; i++ { @@ -6283,7 +6281,7 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6293,11 +6291,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } @@ -6307,7 +6305,7 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6316,14 +6314,14 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { func TestNodeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6344,13 +6342,13 @@ func TestNodeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNodeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6362,7 +6360,7 @@ func TestNodeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6377,7 +6375,7 @@ func TestNodeMarshalTo(t *testing.T) { } func BenchmarkNodeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Node, 10000) for i := 0; i < 10000; i++ { @@ -6385,7 +6383,7 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6395,11 +6393,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } func BenchmarkNodeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } @@ -6409,7 +6407,7 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6418,14 +6416,14 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { func TestNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6446,13 +6444,13 @@ func TestNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6464,7 +6462,7 @@ func TestNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6479,7 +6477,7 @@ func TestNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6487,7 +6485,7 @@ func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6497,11 +6495,11 @@ func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6511,7 +6509,7 @@ func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6520,14 +6518,14 @@ func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNidOptNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6548,13 +6546,13 @@ func TestNidOptNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6566,7 +6564,7 @@ func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6581,7 +6579,7 @@ func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6589,7 +6587,7 @@ func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6599,11 +6597,11 @@ func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6613,7 +6611,7 @@ func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6622,14 +6620,14 @@ func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNinOptNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6650,13 +6648,13 @@ func TestNinOptNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6668,7 +6666,7 @@ func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6683,7 +6681,7 @@ func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6691,7 +6689,7 @@ func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6701,11 +6699,11 @@ func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6715,7 +6713,7 @@ func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6724,14 +6722,14 @@ func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNidRepNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6752,13 +6750,13 @@ func TestNidRepNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6770,7 +6768,7 @@ func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6785,7 +6783,7 @@ func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6793,7 +6791,7 @@ func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6803,11 +6801,11 @@ func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6817,7 +6815,7 @@ func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6826,14 +6824,14 @@ func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNinRepNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6854,13 +6852,13 @@ func TestNinRepNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6872,7 +6870,7 @@ func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6887,7 +6885,7 @@ func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6895,7 +6893,7 @@ func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6905,11 +6903,11 @@ func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6919,7 +6917,7 @@ func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6928,14 +6926,14 @@ func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestProtoTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6956,13 +6954,13 @@ func TestProtoTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestProtoTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6974,7 +6972,7 @@ func TestProtoTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6989,7 +6987,7 @@ func TestProtoTypeMarshalTo(t *testing.T) { } func BenchmarkProtoTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoType, 10000) for i := 0; i < 10000; i++ { @@ -6997,7 +6995,7 @@ func BenchmarkProtoTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -7007,11 +7005,11 @@ func BenchmarkProtoTypeProtoMarshal(b *testing.B) { } func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedProtoType(popr, false)) if err != nil { panic(err) } @@ -7021,7 +7019,7 @@ func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -7030,15 +7028,15 @@ func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { func TestNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7051,15 +7049,15 @@ func TestNidOptNativeJSON(t *testing.T) { } func TestNinOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7072,15 +7070,15 @@ func TestNinOptNativeJSON(t *testing.T) { } func TestNidRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7093,15 +7091,15 @@ func TestNidRepNativeJSON(t *testing.T) { } func TestNinRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7114,15 +7112,15 @@ func TestNinRepNativeJSON(t *testing.T) { } func TestNidRepPackedNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7135,15 +7133,15 @@ func TestNidRepPackedNativeJSON(t *testing.T) { } func TestNinRepPackedNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7156,15 +7154,15 @@ func TestNinRepPackedNativeJSON(t *testing.T) { } func TestNidOptStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7177,15 +7175,15 @@ func TestNidOptStructJSON(t *testing.T) { } func TestNinOptStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7198,15 +7196,15 @@ func TestNinOptStructJSON(t *testing.T) { } func TestNidRepStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7219,15 +7217,15 @@ func TestNidRepStructJSON(t *testing.T) { } func TestNinRepStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7240,15 +7238,15 @@ func TestNinRepStructJSON(t *testing.T) { } func TestNidEmbeddedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7261,15 +7259,15 @@ func TestNidEmbeddedStructJSON(t *testing.T) { } func TestNinEmbeddedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7282,15 +7280,15 @@ func TestNinEmbeddedStructJSON(t *testing.T) { } func TestNidNestedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7303,15 +7301,15 @@ func TestNidNestedStructJSON(t *testing.T) { } func TestNinNestedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7324,15 +7322,15 @@ func TestNinNestedStructJSON(t *testing.T) { } func TestNidOptCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7345,15 +7343,15 @@ func TestNidOptCustomJSON(t *testing.T) { } func TestCustomDashJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7366,15 +7364,15 @@ func TestCustomDashJSON(t *testing.T) { } func TestNinOptCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7387,15 +7385,15 @@ func TestNinOptCustomJSON(t *testing.T) { } func TestNidRepCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7408,15 +7406,15 @@ func TestNidRepCustomJSON(t *testing.T) { } func TestNinRepCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7429,15 +7427,15 @@ func TestNinRepCustomJSON(t *testing.T) { } func TestNinOptNativeUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7450,15 +7448,15 @@ func TestNinOptNativeUnionJSON(t *testing.T) { } func TestNinOptStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7471,15 +7469,15 @@ func TestNinOptStructUnionJSON(t *testing.T) { } func TestNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7492,15 +7490,15 @@ func TestNinEmbeddedStructUnionJSON(t *testing.T) { } func TestNinNestedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7513,15 +7511,15 @@ func TestNinNestedStructUnionJSON(t *testing.T) { } func TestTreeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7534,15 +7532,15 @@ func TestTreeJSON(t *testing.T) { } func TestOrBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7555,15 +7553,15 @@ func TestOrBranchJSON(t *testing.T) { } func TestAndBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7576,15 +7574,15 @@ func TestAndBranchJSON(t *testing.T) { } func TestLeafJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7597,15 +7595,15 @@ func TestLeafJSON(t *testing.T) { } func TestDeepTreeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7618,15 +7616,15 @@ func TestDeepTreeJSON(t *testing.T) { } func TestADeepBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7639,15 +7637,15 @@ func TestADeepBranchJSON(t *testing.T) { } func TestAndDeepBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7660,15 +7658,15 @@ func TestAndDeepBranchJSON(t *testing.T) { } func TestDeepLeafJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7681,15 +7679,15 @@ func TestDeepLeafJSON(t *testing.T) { } func TestNilJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7702,15 +7700,15 @@ func TestNilJSON(t *testing.T) { } func TestNidOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7723,15 +7721,15 @@ func TestNidOptEnumJSON(t *testing.T) { } func TestNinOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7744,15 +7742,15 @@ func TestNinOptEnumJSON(t *testing.T) { } func TestNidRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7765,15 +7763,15 @@ func TestNidRepEnumJSON(t *testing.T) { } func TestNinRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7786,15 +7784,15 @@ func TestNinRepEnumJSON(t *testing.T) { } func TestNinOptEnumDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7807,15 +7805,15 @@ func TestNinOptEnumDefaultJSON(t *testing.T) { } func TestAnotherNinOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7828,15 +7826,15 @@ func TestAnotherNinOptEnumJSON(t *testing.T) { } func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7849,15 +7847,15 @@ func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { } func TestTimerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7870,15 +7868,15 @@ func TestTimerJSON(t *testing.T) { } func TestMyExtendableJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7891,15 +7889,15 @@ func TestMyExtendableJSON(t *testing.T) { } func TestOtherExtenableJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7912,15 +7910,15 @@ func TestOtherExtenableJSON(t *testing.T) { } func TestNestedDefinitionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7933,15 +7931,15 @@ func TestNestedDefinitionJSON(t *testing.T) { } func TestNestedDefinition_NestedMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7954,15 +7952,15 @@ func TestNestedDefinition_NestedMessageJSON(t *testing.T) { } func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7975,15 +7973,15 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { } func TestNestedScopeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7996,15 +7994,15 @@ func TestNestedScopeJSON(t *testing.T) { } func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8017,15 +8015,15 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { } func TestCustomContainerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8038,15 +8036,15 @@ func TestCustomContainerJSON(t *testing.T) { } func TestCustomNameNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8059,15 +8057,15 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { } func TestCustomNameNinOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8080,15 +8078,15 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { } func TestCustomNameNinRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8101,15 +8099,15 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { } func TestCustomNameNinStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8122,15 +8120,15 @@ func TestCustomNameNinStructJSON(t *testing.T) { } func TestCustomNameCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8143,15 +8141,15 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { } func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8164,15 +8162,15 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { } func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8185,15 +8183,15 @@ func TestCustomNameEnumJSON(t *testing.T) { } func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8206,15 +8204,15 @@ func TestNoExtensionsMapJSON(t *testing.T) { } func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8227,15 +8225,15 @@ func TestUnrecognizedJSON(t *testing.T) { } func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8248,15 +8246,15 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { } func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8269,15 +8267,15 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { } func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8290,15 +8288,15 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { } func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8311,15 +8309,15 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { } func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8332,15 +8330,15 @@ func TestNodeJSON(t *testing.T) { } func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8353,15 +8351,15 @@ func TestNonByteCustomTypeJSON(t *testing.T) { } func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8374,15 +8372,15 @@ func TestNidOptNonByteCustomTypeJSON(t *testing.T) { } func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8395,15 +8393,15 @@ func TestNinOptNonByteCustomTypeJSON(t *testing.T) { } func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8416,15 +8414,15 @@ func TestNidRepNonByteCustomTypeJSON(t *testing.T) { } func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8437,15 +8435,15 @@ func TestNinRepNonByteCustomTypeJSON(t *testing.T) { } func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8458,11 +8456,11 @@ func TestProtoTypeJSON(t *testing.T) { } func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8475,11 +8473,11 @@ func TestNidOptNativeProtoText(t *testing.T) { func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8492,11 +8490,11 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8509,11 +8507,11 @@ func TestNinOptNativeProtoText(t *testing.T) { func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8526,11 +8524,11 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8543,11 +8541,11 @@ func TestNidRepNativeProtoText(t *testing.T) { func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8560,11 +8558,11 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8577,11 +8575,11 @@ func TestNinRepNativeProtoText(t *testing.T) { func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8594,11 +8592,11 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8611,11 +8609,11 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8628,11 +8626,11 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8645,11 +8643,11 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8662,11 +8660,11 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8679,11 +8677,11 @@ func TestNidOptStructProtoText(t *testing.T) { func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8696,11 +8694,11 @@ func TestNidOptStructProtoCompactText(t *testing.T) { func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8713,11 +8711,11 @@ func TestNinOptStructProtoText(t *testing.T) { func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8730,11 +8728,11 @@ func TestNinOptStructProtoCompactText(t *testing.T) { func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8747,11 +8745,11 @@ func TestNidRepStructProtoText(t *testing.T) { func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8764,11 +8762,11 @@ func TestNidRepStructProtoCompactText(t *testing.T) { func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8781,11 +8779,11 @@ func TestNinRepStructProtoText(t *testing.T) { func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8798,11 +8796,11 @@ func TestNinRepStructProtoCompactText(t *testing.T) { func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8815,11 +8813,11 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8832,11 +8830,11 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8849,11 +8847,11 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8866,11 +8864,11 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8883,11 +8881,11 @@ func TestNidNestedStructProtoText(t *testing.T) { func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8900,11 +8898,11 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8917,11 +8915,11 @@ func TestNinNestedStructProtoText(t *testing.T) { func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8934,11 +8932,11 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8951,11 +8949,11 @@ func TestNidOptCustomProtoText(t *testing.T) { func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8968,11 +8966,11 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8985,11 +8983,11 @@ func TestCustomDashProtoText(t *testing.T) { func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9002,11 +9000,11 @@ func TestCustomDashProtoCompactText(t *testing.T) { func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9019,11 +9017,11 @@ func TestNinOptCustomProtoText(t *testing.T) { func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9036,11 +9034,11 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9053,11 +9051,11 @@ func TestNidRepCustomProtoText(t *testing.T) { func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9070,11 +9068,11 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9087,11 +9085,11 @@ func TestNinRepCustomProtoText(t *testing.T) { func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9104,11 +9102,11 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9121,11 +9119,11 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9138,11 +9136,11 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9155,11 +9153,11 @@ func TestNinOptStructUnionProtoText(t *testing.T) { func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9172,11 +9170,11 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9189,11 +9187,11 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9206,11 +9204,11 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9223,11 +9221,11 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9240,11 +9238,11 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9257,11 +9255,11 @@ func TestTreeProtoText(t *testing.T) { func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9274,11 +9272,11 @@ func TestTreeProtoCompactText(t *testing.T) { func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9291,11 +9289,11 @@ func TestOrBranchProtoText(t *testing.T) { func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9308,11 +9306,11 @@ func TestOrBranchProtoCompactText(t *testing.T) { func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9325,11 +9323,11 @@ func TestAndBranchProtoText(t *testing.T) { func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9342,11 +9340,11 @@ func TestAndBranchProtoCompactText(t *testing.T) { func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9359,11 +9357,11 @@ func TestLeafProtoText(t *testing.T) { func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9376,11 +9374,11 @@ func TestLeafProtoCompactText(t *testing.T) { func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9393,11 +9391,11 @@ func TestDeepTreeProtoText(t *testing.T) { func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9410,11 +9408,11 @@ func TestDeepTreeProtoCompactText(t *testing.T) { func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9427,11 +9425,11 @@ func TestADeepBranchProtoText(t *testing.T) { func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9444,11 +9442,11 @@ func TestADeepBranchProtoCompactText(t *testing.T) { func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9461,11 +9459,11 @@ func TestAndDeepBranchProtoText(t *testing.T) { func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9478,11 +9476,11 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9495,11 +9493,11 @@ func TestDeepLeafProtoText(t *testing.T) { func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9512,11 +9510,11 @@ func TestDeepLeafProtoCompactText(t *testing.T) { func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9529,11 +9527,11 @@ func TestNilProtoText(t *testing.T) { func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9546,11 +9544,11 @@ func TestNilProtoCompactText(t *testing.T) { func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9563,11 +9561,11 @@ func TestNidOptEnumProtoText(t *testing.T) { func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9580,11 +9578,11 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9597,11 +9595,11 @@ func TestNinOptEnumProtoText(t *testing.T) { func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9614,11 +9612,11 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9631,11 +9629,11 @@ func TestNidRepEnumProtoText(t *testing.T) { func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9648,11 +9646,11 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9665,11 +9663,11 @@ func TestNinRepEnumProtoText(t *testing.T) { func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9682,11 +9680,11 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9699,11 +9697,11 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9716,11 +9714,11 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9733,11 +9731,11 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9750,11 +9748,11 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9767,11 +9765,11 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9784,11 +9782,11 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9801,11 +9799,11 @@ func TestTimerProtoText(t *testing.T) { func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9818,11 +9816,11 @@ func TestTimerProtoCompactText(t *testing.T) { func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9835,11 +9833,11 @@ func TestMyExtendableProtoText(t *testing.T) { func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9852,11 +9850,11 @@ func TestMyExtendableProtoCompactText(t *testing.T) { func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9869,11 +9867,11 @@ func TestOtherExtenableProtoText(t *testing.T) { func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9886,11 +9884,11 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9903,11 +9901,11 @@ func TestNestedDefinitionProtoText(t *testing.T) { func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9920,11 +9918,11 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9937,11 +9935,11 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9954,11 +9952,11 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9971,11 +9969,11 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9988,11 +9986,11 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10005,11 +10003,11 @@ func TestNestedScopeProtoText(t *testing.T) { func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10022,11 +10020,11 @@ func TestNestedScopeProtoCompactText(t *testing.T) { func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10039,11 +10037,11 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10056,11 +10054,11 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10073,11 +10071,11 @@ func TestCustomContainerProtoText(t *testing.T) { func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10090,11 +10088,11 @@ func TestCustomContainerProtoCompactText(t *testing.T) { func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10107,11 +10105,11 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10124,11 +10122,11 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { func TestCustomNameNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10141,11 +10139,11 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10158,11 +10156,11 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { func TestCustomNameNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10175,11 +10173,11 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10192,11 +10190,11 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { func TestCustomNameNinStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10209,11 +10207,11 @@ func TestCustomNameNinStructProtoText(t *testing.T) { func TestCustomNameNinStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10226,11 +10224,11 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { func TestCustomNameCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10243,11 +10241,11 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10260,11 +10258,11 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10277,11 +10275,11 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10294,11 +10292,11 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { func TestCustomNameEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10311,11 +10309,11 @@ func TestCustomNameEnumProtoText(t *testing.T) { func TestCustomNameEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10328,11 +10326,11 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { func TestNoExtensionsMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10345,11 +10343,11 @@ func TestNoExtensionsMapProtoText(t *testing.T) { func TestNoExtensionsMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10362,11 +10360,11 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { func TestUnrecognizedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10379,11 +10377,11 @@ func TestUnrecognizedProtoText(t *testing.T) { func TestUnrecognizedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10396,11 +10394,11 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { func TestUnrecognizedWithInnerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10413,11 +10411,11 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10430,11 +10428,11 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10447,11 +10445,11 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10464,11 +10462,11 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10481,11 +10479,11 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10498,11 +10496,11 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10515,11 +10513,11 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10532,11 +10530,11 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10549,11 +10547,11 @@ func TestNodeProtoText(t *testing.T) { func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10566,11 +10564,11 @@ func TestNodeProtoCompactText(t *testing.T) { func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10583,11 +10581,11 @@ func TestNonByteCustomTypeProtoText(t *testing.T) { func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10600,11 +10598,11 @@ func TestNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10617,11 +10615,11 @@ func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10634,11 +10632,11 @@ func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10651,11 +10649,11 @@ func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10668,11 +10666,11 @@ func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10685,11 +10683,11 @@ func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10702,11 +10700,11 @@ func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10719,11 +10717,11 @@ func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10736,11 +10734,11 @@ func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10753,11 +10751,11 @@ func TestProtoTypeProtoText(t *testing.T) { func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10769,14 +10767,14 @@ func TestProtoTypeProtoCompactText(t *testing.T) { } func TestNidOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10793,14 +10791,14 @@ func TestNidOptNativeCompare(t *testing.T) { } } func TestNinOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10817,14 +10815,14 @@ func TestNinOptNativeCompare(t *testing.T) { } } func TestNidRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10841,14 +10839,14 @@ func TestNidRepNativeCompare(t *testing.T) { } } func TestNinRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10865,14 +10863,14 @@ func TestNinRepNativeCompare(t *testing.T) { } } func TestNidRepPackedNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10889,14 +10887,14 @@ func TestNidRepPackedNativeCompare(t *testing.T) { } } func TestNinRepPackedNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10913,14 +10911,14 @@ func TestNinRepPackedNativeCompare(t *testing.T) { } } func TestNidOptStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10937,14 +10935,14 @@ func TestNidOptStructCompare(t *testing.T) { } } func TestNinOptStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10961,14 +10959,14 @@ func TestNinOptStructCompare(t *testing.T) { } } func TestNidRepStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10985,14 +10983,14 @@ func TestNidRepStructCompare(t *testing.T) { } } func TestNinRepStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11009,14 +11007,14 @@ func TestNinRepStructCompare(t *testing.T) { } } func TestNidEmbeddedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11033,14 +11031,14 @@ func TestNidEmbeddedStructCompare(t *testing.T) { } } func TestNinEmbeddedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11057,14 +11055,14 @@ func TestNinEmbeddedStructCompare(t *testing.T) { } } func TestNidNestedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11081,14 +11079,14 @@ func TestNidNestedStructCompare(t *testing.T) { } } func TestNinNestedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11105,14 +11103,14 @@ func TestNinNestedStructCompare(t *testing.T) { } } func TestNidOptCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11129,14 +11127,14 @@ func TestNidOptCustomCompare(t *testing.T) { } } func TestCustomDashCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11153,14 +11151,14 @@ func TestCustomDashCompare(t *testing.T) { } } func TestNinOptCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11177,14 +11175,14 @@ func TestNinOptCustomCompare(t *testing.T) { } } func TestNidRepCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11201,14 +11199,14 @@ func TestNidRepCustomCompare(t *testing.T) { } } func TestNinRepCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11225,14 +11223,14 @@ func TestNinRepCustomCompare(t *testing.T) { } } func TestNinOptNativeUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11249,14 +11247,14 @@ func TestNinOptNativeUnionCompare(t *testing.T) { } } func TestNinOptStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11273,14 +11271,14 @@ func TestNinOptStructUnionCompare(t *testing.T) { } } func TestNinEmbeddedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11297,14 +11295,14 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestNinNestedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11321,14 +11319,14 @@ func TestNinNestedStructUnionCompare(t *testing.T) { } } func TestTreeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11345,14 +11343,14 @@ func TestTreeCompare(t *testing.T) { } } func TestOrBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11369,14 +11367,14 @@ func TestOrBranchCompare(t *testing.T) { } } func TestAndBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11393,14 +11391,14 @@ func TestAndBranchCompare(t *testing.T) { } } func TestLeafCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11417,14 +11415,14 @@ func TestLeafCompare(t *testing.T) { } } func TestDeepTreeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11441,14 +11439,14 @@ func TestDeepTreeCompare(t *testing.T) { } } func TestADeepBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11465,14 +11463,14 @@ func TestADeepBranchCompare(t *testing.T) { } } func TestAndDeepBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11489,14 +11487,14 @@ func TestAndDeepBranchCompare(t *testing.T) { } } func TestDeepLeafCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11513,14 +11511,14 @@ func TestDeepLeafCompare(t *testing.T) { } } func TestNilCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11537,14 +11535,14 @@ func TestNilCompare(t *testing.T) { } } func TestNidOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11561,14 +11559,14 @@ func TestNidOptEnumCompare(t *testing.T) { } } func TestNinOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11585,14 +11583,14 @@ func TestNinOptEnumCompare(t *testing.T) { } } func TestNidRepEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11609,14 +11607,14 @@ func TestNidRepEnumCompare(t *testing.T) { } } func TestNinRepEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11633,14 +11631,14 @@ func TestNinRepEnumCompare(t *testing.T) { } } func TestNinOptEnumDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11657,14 +11655,14 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { } } func TestAnotherNinOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11681,14 +11679,14 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { } } func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11705,14 +11703,14 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { } } func TestTimerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11729,14 +11727,14 @@ func TestTimerCompare(t *testing.T) { } } func TestMyExtendableCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11753,14 +11751,14 @@ func TestMyExtendableCompare(t *testing.T) { } } func TestOtherExtenableCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11777,14 +11775,14 @@ func TestOtherExtenableCompare(t *testing.T) { } } func TestNestedDefinitionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11801,14 +11799,14 @@ func TestNestedDefinitionCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessageCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11825,14 +11823,14 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11849,14 +11847,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { } } func TestNestedScopeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11873,14 +11871,14 @@ func TestNestedScopeCompare(t *testing.T) { } } func TestNinOptNativeDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11897,14 +11895,14 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { } } func TestCustomContainerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11921,14 +11919,14 @@ func TestCustomContainerCompare(t *testing.T) { } } func TestCustomNameNidOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11945,14 +11943,14 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { } } func TestCustomNameNinOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11969,14 +11967,14 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { } } func TestCustomNameNinRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11993,14 +11991,14 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { } } func TestCustomNameNinStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12017,14 +12015,14 @@ func TestCustomNameNinStructCompare(t *testing.T) { } } func TestCustomNameCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12041,14 +12039,14 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12065,14 +12063,14 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestCustomNameEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12089,14 +12087,14 @@ func TestCustomNameEnumCompare(t *testing.T) { } } func TestNoExtensionsMapCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12113,14 +12111,14 @@ func TestNoExtensionsMapCompare(t *testing.T) { } } func TestUnrecognizedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12137,14 +12135,14 @@ func TestUnrecognizedCompare(t *testing.T) { } } func TestUnrecognizedWithInnerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12161,14 +12159,14 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { } } func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12185,14 +12183,14 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { } } func TestUnrecognizedWithEmbedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12209,14 +12207,14 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12233,14 +12231,14 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { } } func TestNodeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12257,14 +12255,14 @@ func TestNodeCompare(t *testing.T) { } } func TestNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12281,14 +12279,14 @@ func TestNonByteCustomTypeCompare(t *testing.T) { } } func TestNidOptNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12305,14 +12303,14 @@ func TestNidOptNonByteCustomTypeCompare(t *testing.T) { } } func TestNinOptNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12329,14 +12327,14 @@ func TestNinOptNonByteCustomTypeCompare(t *testing.T) { } } func TestNidRepNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12353,14 +12351,14 @@ func TestNidRepNonByteCustomTypeCompare(t *testing.T) { } } func TestNinRepNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12377,14 +12375,14 @@ func TestNinRepNonByteCustomTypeCompare(t *testing.T) { } } func TestProtoTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12404,14 +12402,14 @@ func TestThetestDescription(t *testing.T) { ThetestDescription() } func TestNidOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12419,14 +12417,14 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { } } func TestNinOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12434,14 +12432,14 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { } } func TestNidRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12449,14 +12447,14 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { } } func TestNinRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12464,14 +12462,14 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { } } func TestNidRepPackedNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12479,14 +12477,14 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNinRepPackedNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12494,14 +12492,14 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNidOptStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12509,14 +12507,14 @@ func TestNidOptStructVerboseEqual(t *testing.T) { } } func TestNinOptStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12524,14 +12522,14 @@ func TestNinOptStructVerboseEqual(t *testing.T) { } } func TestNidRepStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12539,14 +12537,14 @@ func TestNidRepStructVerboseEqual(t *testing.T) { } } func TestNinRepStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12554,14 +12552,14 @@ func TestNinRepStructVerboseEqual(t *testing.T) { } } func TestNidEmbeddedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12569,14 +12567,14 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12584,14 +12582,14 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNidNestedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12599,14 +12597,14 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { } } func TestNinNestedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12614,14 +12612,14 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { } } func TestNidOptCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12629,14 +12627,14 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { } } func TestCustomDashVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12644,14 +12642,14 @@ func TestCustomDashVerboseEqual(t *testing.T) { } } func TestNinOptCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12659,14 +12657,14 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { } } func TestNidRepCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12674,14 +12672,14 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { } } func TestNinRepCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12689,14 +12687,14 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { } } func TestNinOptNativeUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12704,14 +12702,14 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { } } func TestNinOptStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12719,14 +12717,14 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12734,14 +12732,14 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestNinNestedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12749,14 +12747,14 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { } } func TestTreeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12764,14 +12762,14 @@ func TestTreeVerboseEqual(t *testing.T) { } } func TestOrBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12779,14 +12777,14 @@ func TestOrBranchVerboseEqual(t *testing.T) { } } func TestAndBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12794,14 +12792,14 @@ func TestAndBranchVerboseEqual(t *testing.T) { } } func TestLeafVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12809,14 +12807,14 @@ func TestLeafVerboseEqual(t *testing.T) { } } func TestDeepTreeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12824,14 +12822,14 @@ func TestDeepTreeVerboseEqual(t *testing.T) { } } func TestADeepBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12839,14 +12837,14 @@ func TestADeepBranchVerboseEqual(t *testing.T) { } } func TestAndDeepBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12854,14 +12852,14 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { } } func TestDeepLeafVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12869,14 +12867,14 @@ func TestDeepLeafVerboseEqual(t *testing.T) { } } func TestNilVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12884,14 +12882,14 @@ func TestNilVerboseEqual(t *testing.T) { } } func TestNidOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12899,14 +12897,14 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12914,14 +12912,14 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { } } func TestNidRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12929,14 +12927,14 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { } } func TestNinRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12944,14 +12942,14 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12959,14 +12957,14 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12974,14 +12972,14 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12989,14 +12987,14 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestTimerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13004,14 +13002,14 @@ func TestTimerVerboseEqual(t *testing.T) { } } func TestMyExtendableVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13019,14 +13017,14 @@ func TestMyExtendableVerboseEqual(t *testing.T) { } } func TestOtherExtenableVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13034,14 +13032,14 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { } } func TestNestedDefinitionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13049,14 +13047,14 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13064,14 +13062,14 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13079,14 +13077,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T } } func TestNestedScopeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13094,14 +13092,14 @@ func TestNestedScopeVerboseEqual(t *testing.T) { } } func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13109,14 +13107,14 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { } } func TestCustomContainerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13124,14 +13122,14 @@ func TestCustomContainerVerboseEqual(t *testing.T) { } } func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13139,14 +13137,14 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13154,14 +13152,14 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13169,14 +13167,14 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13184,14 +13182,14 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { } } func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13199,14 +13197,14 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13214,14 +13212,14 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestCustomNameEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13229,14 +13227,14 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { } } func TestNoExtensionsMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13244,14 +13242,14 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { } } func TestUnrecognizedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13259,14 +13257,14 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13274,14 +13272,14 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13289,14 +13287,14 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13304,14 +13302,14 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13319,14 +13317,14 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { } } func TestNodeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13334,14 +13332,14 @@ func TestNodeVerboseEqual(t *testing.T) { } } func TestNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13349,14 +13347,14 @@ func TestNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13364,14 +13362,14 @@ func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13379,14 +13377,14 @@ func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13394,14 +13392,14 @@ func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13409,14 +13407,14 @@ func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestProtoTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13424,7 +13422,7 @@ func TestProtoTypeVerboseEqual(t *testing.T) { } } func TestNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13432,7 +13430,7 @@ func TestNidOptNativeFace(t *testing.T) { } } func TestNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13440,7 +13438,7 @@ func TestNinOptNativeFace(t *testing.T) { } } func TestNidRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13448,7 +13446,7 @@ func TestNidRepNativeFace(t *testing.T) { } } func TestNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13456,7 +13454,7 @@ func TestNinRepNativeFace(t *testing.T) { } } func TestNidRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13464,7 +13462,7 @@ func TestNidRepPackedNativeFace(t *testing.T) { } } func TestNinRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13472,7 +13470,7 @@ func TestNinRepPackedNativeFace(t *testing.T) { } } func TestNidOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13480,7 +13478,7 @@ func TestNidOptStructFace(t *testing.T) { } } func TestNinOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13488,7 +13486,7 @@ func TestNinOptStructFace(t *testing.T) { } } func TestNidRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13496,7 +13494,7 @@ func TestNidRepStructFace(t *testing.T) { } } func TestNinRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13504,7 +13502,7 @@ func TestNinRepStructFace(t *testing.T) { } } func TestNidEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13512,7 +13510,7 @@ func TestNidEmbeddedStructFace(t *testing.T) { } } func TestNinEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13520,7 +13518,7 @@ func TestNinEmbeddedStructFace(t *testing.T) { } } func TestNidNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13528,7 +13526,7 @@ func TestNidNestedStructFace(t *testing.T) { } } func TestNinNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13536,7 +13534,7 @@ func TestNinNestedStructFace(t *testing.T) { } } func TestNidOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13544,7 +13542,7 @@ func TestNidOptCustomFace(t *testing.T) { } } func TestCustomDashFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13552,7 +13550,7 @@ func TestCustomDashFace(t *testing.T) { } } func TestNinOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13560,7 +13558,7 @@ func TestNinOptCustomFace(t *testing.T) { } } func TestNidRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13568,7 +13566,7 @@ func TestNidRepCustomFace(t *testing.T) { } } func TestNinRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13576,7 +13574,7 @@ func TestNinRepCustomFace(t *testing.T) { } } func TestNinOptNativeUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13584,7 +13582,7 @@ func TestNinOptNativeUnionFace(t *testing.T) { } } func TestNinOptStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13592,7 +13590,7 @@ func TestNinOptStructUnionFace(t *testing.T) { } } func TestNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13600,7 +13598,7 @@ func TestNinEmbeddedStructUnionFace(t *testing.T) { } } func TestNinNestedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13608,7 +13606,7 @@ func TestNinNestedStructUnionFace(t *testing.T) { } } func TestTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13616,7 +13614,7 @@ func TestTreeFace(t *testing.T) { } } func TestOrBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13624,7 +13622,7 @@ func TestOrBranchFace(t *testing.T) { } } func TestAndBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13632,7 +13630,7 @@ func TestAndBranchFace(t *testing.T) { } } func TestLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13640,7 +13638,7 @@ func TestLeafFace(t *testing.T) { } } func TestDeepTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13648,7 +13646,7 @@ func TestDeepTreeFace(t *testing.T) { } } func TestADeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13656,7 +13654,7 @@ func TestADeepBranchFace(t *testing.T) { } } func TestAndDeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13664,7 +13662,7 @@ func TestAndDeepBranchFace(t *testing.T) { } } func TestDeepLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13672,7 +13670,7 @@ func TestDeepLeafFace(t *testing.T) { } } func TestNilFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13680,7 +13678,7 @@ func TestNilFace(t *testing.T) { } } func TestNidOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13688,7 +13686,7 @@ func TestNidOptEnumFace(t *testing.T) { } } func TestNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13696,7 +13694,7 @@ func TestNinOptEnumFace(t *testing.T) { } } func TestNidRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13704,7 +13702,7 @@ func TestNidRepEnumFace(t *testing.T) { } } func TestNinRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13712,7 +13710,7 @@ func TestNinRepEnumFace(t *testing.T) { } } func TestAnotherNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13720,7 +13718,7 @@ func TestAnotherNinOptEnumFace(t *testing.T) { } } func TestTimerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13728,7 +13726,7 @@ func TestTimerFace(t *testing.T) { } } func TestNestedDefinitionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13736,7 +13734,7 @@ func TestNestedDefinitionFace(t *testing.T) { } } func TestNestedDefinition_NestedMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13744,7 +13742,7 @@ func TestNestedDefinition_NestedMessageFace(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13752,7 +13750,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { } } func TestNestedScopeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13760,7 +13758,7 @@ func TestNestedScopeFace(t *testing.T) { } } func TestCustomContainerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13768,7 +13766,7 @@ func TestCustomContainerFace(t *testing.T) { } } func TestCustomNameNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13776,7 +13774,7 @@ func TestCustomNameNidOptNativeFace(t *testing.T) { } } func TestCustomNameNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13784,7 +13782,7 @@ func TestCustomNameNinOptNativeFace(t *testing.T) { } } func TestCustomNameNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13792,7 +13790,7 @@ func TestCustomNameNinRepNativeFace(t *testing.T) { } } func TestCustomNameNinStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13800,7 +13798,7 @@ func TestCustomNameNinStructFace(t *testing.T) { } } func TestCustomNameCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13808,7 +13806,7 @@ func TestCustomNameCustomTypeFace(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13816,7 +13814,7 @@ func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { } } func TestCustomNameEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13824,7 +13822,7 @@ func TestCustomNameEnumFace(t *testing.T) { } } func TestUnrecognizedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13832,7 +13830,7 @@ func TestUnrecognizedFace(t *testing.T) { } } func TestUnrecognizedWithInnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13840,7 +13838,7 @@ func TestUnrecognizedWithInnerFace(t *testing.T) { } } func TestUnrecognizedWithInner_InnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13848,7 +13846,7 @@ func TestUnrecognizedWithInner_InnerFace(t *testing.T) { } } func TestUnrecognizedWithEmbedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13856,7 +13854,7 @@ func TestUnrecognizedWithEmbedFace(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13864,7 +13862,7 @@ func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { } } func TestNodeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13872,7 +13870,7 @@ func TestNodeFace(t *testing.T) { } } func TestNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13880,7 +13878,7 @@ func TestNonByteCustomTypeFace(t *testing.T) { } } func TestNidOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13888,7 +13886,7 @@ func TestNidOptNonByteCustomTypeFace(t *testing.T) { } } func TestNinOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13896,7 +13894,7 @@ func TestNinOptNonByteCustomTypeFace(t *testing.T) { } } func TestNidRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13904,7 +13902,7 @@ func TestNidRepNonByteCustomTypeFace(t *testing.T) { } } func TestNinRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13912,7 +13910,7 @@ func TestNinRepNonByteCustomTypeFace(t *testing.T) { } } func TestProtoTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13920,895 +13918,895 @@ func TestProtoTypeFace(t *testing.T) { } } func TestNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomDashGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinNestedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOrBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAndBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestDeepTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestADeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAndDeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestDeepLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNilGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAnotherNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAnotherNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTimerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMyExtendableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOtherExtenableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinitionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinition_NestedMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinition_NestedMessage_NestedNestedMsgGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedScopeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomContainerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNoExtensionsMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithInnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithEmbedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNodeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestProtoTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14819,14 +14817,14 @@ func TestNidOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNative, 1000) for i := 0; i < 1000; i++ { @@ -14841,10 +14839,10 @@ func BenchmarkNidOptNativeSize(b *testing.B) { func TestNinOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14855,14 +14853,14 @@ func TestNinOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNative, 1000) for i := 0; i < 1000; i++ { @@ -14877,10 +14875,10 @@ func BenchmarkNinOptNativeSize(b *testing.B) { func TestNidRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14891,14 +14889,14 @@ func TestNidRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNative, 1000) for i := 0; i < 1000; i++ { @@ -14913,10 +14911,10 @@ func BenchmarkNidRepNativeSize(b *testing.B) { func TestNinRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14927,14 +14925,14 @@ func TestNinRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNative, 1000) for i := 0; i < 1000; i++ { @@ -14949,10 +14947,10 @@ func BenchmarkNinRepNativeSize(b *testing.B) { func TestNidRepPackedNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14963,14 +14961,14 @@ func TestNidRepPackedNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepPackedNative, 1000) for i := 0; i < 1000; i++ { @@ -14985,10 +14983,10 @@ func BenchmarkNidRepPackedNativeSize(b *testing.B) { func TestNinRepPackedNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14999,14 +14997,14 @@ func TestNinRepPackedNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepPackedNative, 1000) for i := 0; i < 1000; i++ { @@ -15021,10 +15019,10 @@ func BenchmarkNinRepPackedNativeSize(b *testing.B) { func TestNidOptStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15035,14 +15033,14 @@ func TestNidOptStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptStruct, 1000) for i := 0; i < 1000; i++ { @@ -15057,10 +15055,10 @@ func BenchmarkNidOptStructSize(b *testing.B) { func TestNinOptStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15071,14 +15069,14 @@ func TestNinOptStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStruct, 1000) for i := 0; i < 1000; i++ { @@ -15093,10 +15091,10 @@ func BenchmarkNinOptStructSize(b *testing.B) { func TestNidRepStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15107,14 +15105,14 @@ func TestNidRepStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepStruct, 1000) for i := 0; i < 1000; i++ { @@ -15129,10 +15127,10 @@ func BenchmarkNidRepStructSize(b *testing.B) { func TestNinRepStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15143,14 +15141,14 @@ func TestNinRepStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepStruct, 1000) for i := 0; i < 1000; i++ { @@ -15165,10 +15163,10 @@ func BenchmarkNinRepStructSize(b *testing.B) { func TestNidEmbeddedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15179,14 +15177,14 @@ func TestNidEmbeddedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidEmbeddedStruct, 1000) for i := 0; i < 1000; i++ { @@ -15201,10 +15199,10 @@ func BenchmarkNidEmbeddedStructSize(b *testing.B) { func TestNinEmbeddedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15215,14 +15213,14 @@ func TestNinEmbeddedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStruct, 1000) for i := 0; i < 1000; i++ { @@ -15237,10 +15235,10 @@ func BenchmarkNinEmbeddedStructSize(b *testing.B) { func TestNidNestedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15251,14 +15249,14 @@ func TestNidNestedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidNestedStruct, 1000) for i := 0; i < 1000; i++ { @@ -15273,10 +15271,10 @@ func BenchmarkNidNestedStructSize(b *testing.B) { func TestNinNestedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15287,14 +15285,14 @@ func TestNinNestedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStruct, 1000) for i := 0; i < 1000; i++ { @@ -15309,10 +15307,10 @@ func BenchmarkNinNestedStructSize(b *testing.B) { func TestNidOptCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15323,14 +15321,14 @@ func TestNidOptCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptCustom, 1000) for i := 0; i < 1000; i++ { @@ -15345,10 +15343,10 @@ func BenchmarkNidOptCustomSize(b *testing.B) { func TestCustomDashSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15359,14 +15357,14 @@ func TestCustomDashSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomDashSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomDash, 1000) for i := 0; i < 1000; i++ { @@ -15381,10 +15379,10 @@ func BenchmarkCustomDashSize(b *testing.B) { func TestNinOptCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15395,14 +15393,14 @@ func TestNinOptCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptCustom, 1000) for i := 0; i < 1000; i++ { @@ -15417,10 +15415,10 @@ func BenchmarkNinOptCustomSize(b *testing.B) { func TestNidRepCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15431,14 +15429,14 @@ func TestNidRepCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepCustom, 1000) for i := 0; i < 1000; i++ { @@ -15453,10 +15451,10 @@ func BenchmarkNidRepCustomSize(b *testing.B) { func TestNinRepCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15467,14 +15465,14 @@ func TestNinRepCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepCustom, 1000) for i := 0; i < 1000; i++ { @@ -15489,10 +15487,10 @@ func BenchmarkNinRepCustomSize(b *testing.B) { func TestNinOptNativeUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15503,14 +15501,14 @@ func TestNinOptNativeUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeUnion, 1000) for i := 0; i < 1000; i++ { @@ -15525,10 +15523,10 @@ func BenchmarkNinOptNativeUnionSize(b *testing.B) { func TestNinOptStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15539,14 +15537,14 @@ func TestNinOptStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -15561,10 +15559,10 @@ func BenchmarkNinOptStructUnionSize(b *testing.B) { func TestNinEmbeddedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15575,14 +15573,14 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -15597,10 +15595,10 @@ func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { func TestNinNestedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15611,14 +15609,14 @@ func TestNinNestedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinNestedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -15633,10 +15631,10 @@ func BenchmarkNinNestedStructUnionSize(b *testing.B) { func TestTreeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15647,14 +15645,14 @@ func TestTreeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Tree, 1000) for i := 0; i < 1000; i++ { @@ -15669,10 +15667,10 @@ func BenchmarkTreeSize(b *testing.B) { func TestOrBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15683,14 +15681,14 @@ func TestOrBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOrBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OrBranch, 1000) for i := 0; i < 1000; i++ { @@ -15705,10 +15703,10 @@ func BenchmarkOrBranchSize(b *testing.B) { func TestAndBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15719,14 +15717,14 @@ func TestAndBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAndBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndBranch, 1000) for i := 0; i < 1000; i++ { @@ -15741,10 +15739,10 @@ func BenchmarkAndBranchSize(b *testing.B) { func TestLeafSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15755,14 +15753,14 @@ func TestLeafSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Leaf, 1000) for i := 0; i < 1000; i++ { @@ -15777,10 +15775,10 @@ func BenchmarkLeafSize(b *testing.B) { func TestDeepTreeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15791,14 +15789,14 @@ func TestDeepTreeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDeepTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepTree, 1000) for i := 0; i < 1000; i++ { @@ -15813,10 +15811,10 @@ func BenchmarkDeepTreeSize(b *testing.B) { func TestADeepBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15827,14 +15825,14 @@ func TestADeepBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkADeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ADeepBranch, 1000) for i := 0; i < 1000; i++ { @@ -15849,10 +15847,10 @@ func BenchmarkADeepBranchSize(b *testing.B) { func TestAndDeepBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15863,14 +15861,14 @@ func TestAndDeepBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAndDeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndDeepBranch, 1000) for i := 0; i < 1000; i++ { @@ -15885,10 +15883,10 @@ func BenchmarkAndDeepBranchSize(b *testing.B) { func TestDeepLeafSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15899,14 +15897,14 @@ func TestDeepLeafSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDeepLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepLeaf, 1000) for i := 0; i < 1000; i++ { @@ -15921,10 +15919,10 @@ func BenchmarkDeepLeafSize(b *testing.B) { func TestNilSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15935,14 +15933,14 @@ func TestNilSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNilSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nil, 1000) for i := 0; i < 1000; i++ { @@ -15957,10 +15955,10 @@ func BenchmarkNilSize(b *testing.B) { func TestNidOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15971,14 +15969,14 @@ func TestNidOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -15993,10 +15991,10 @@ func BenchmarkNidOptEnumSize(b *testing.B) { func TestNinOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16007,14 +16005,14 @@ func TestNinOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -16029,10 +16027,10 @@ func BenchmarkNinOptEnumSize(b *testing.B) { func TestNidRepEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16043,14 +16041,14 @@ func TestNidRepEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepEnum, 1000) for i := 0; i < 1000; i++ { @@ -16065,10 +16063,10 @@ func BenchmarkNidRepEnumSize(b *testing.B) { func TestNinRepEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16079,14 +16077,14 @@ func TestNinRepEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepEnum, 1000) for i := 0; i < 1000; i++ { @@ -16101,10 +16099,10 @@ func BenchmarkNinRepEnumSize(b *testing.B) { func TestNinOptEnumDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16115,14 +16113,14 @@ func TestNinOptEnumDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnumDefault, 1000) for i := 0; i < 1000; i++ { @@ -16137,10 +16135,10 @@ func BenchmarkNinOptEnumDefaultSize(b *testing.B) { func TestAnotherNinOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16151,14 +16149,14 @@ func TestAnotherNinOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAnotherNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -16173,10 +16171,10 @@ func BenchmarkAnotherNinOptEnumSize(b *testing.B) { func TestAnotherNinOptEnumDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16187,14 +16185,14 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnumDefault, 1000) for i := 0; i < 1000; i++ { @@ -16209,10 +16207,10 @@ func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { func TestTimerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16223,14 +16221,14 @@ func TestTimerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkTimerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Timer, 1000) for i := 0; i < 1000; i++ { @@ -16245,10 +16243,10 @@ func BenchmarkTimerSize(b *testing.B) { func TestMyExtendableSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16259,14 +16257,14 @@ func TestMyExtendableSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMyExtendableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyExtendable, 1000) for i := 0; i < 1000; i++ { @@ -16281,10 +16279,10 @@ func BenchmarkMyExtendableSize(b *testing.B) { func TestOtherExtenableSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16295,14 +16293,14 @@ func TestOtherExtenableSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOtherExtenableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OtherExtenable, 1000) for i := 0; i < 1000; i++ { @@ -16317,10 +16315,10 @@ func BenchmarkOtherExtenableSize(b *testing.B) { func TestNestedDefinitionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16331,14 +16329,14 @@ func TestNestedDefinitionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinitionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition, 1000) for i := 0; i < 1000; i++ { @@ -16353,10 +16351,10 @@ func BenchmarkNestedDefinitionSize(b *testing.B) { func TestNestedDefinition_NestedMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16367,14 +16365,14 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage, 1000) for i := 0; i < 1000; i++ { @@ -16389,10 +16387,10 @@ func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16403,14 +16401,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 1000) for i := 0; i < 1000; i++ { @@ -16425,10 +16423,10 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { func TestNestedScopeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16439,14 +16437,14 @@ func TestNestedScopeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedScopeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedScope, 1000) for i := 0; i < 1000; i++ { @@ -16461,10 +16459,10 @@ func BenchmarkNestedScopeSize(b *testing.B) { func TestNinOptNativeDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16475,14 +16473,14 @@ func TestNinOptNativeDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeDefault, 1000) for i := 0; i < 1000; i++ { @@ -16497,10 +16495,10 @@ func BenchmarkNinOptNativeDefaultSize(b *testing.B) { func TestCustomContainerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16511,14 +16509,14 @@ func TestCustomContainerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomContainerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomContainer, 1000) for i := 0; i < 1000; i++ { @@ -16533,10 +16531,10 @@ func BenchmarkCustomContainerSize(b *testing.B) { func TestCustomNameNidOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16547,14 +16545,14 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNidOptNative, 1000) for i := 0; i < 1000; i++ { @@ -16569,10 +16567,10 @@ func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { func TestCustomNameNinOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16583,14 +16581,14 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinOptNative, 1000) for i := 0; i < 1000; i++ { @@ -16605,10 +16603,10 @@ func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { func TestCustomNameNinRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16619,14 +16617,14 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinRepNative, 1000) for i := 0; i < 1000; i++ { @@ -16641,10 +16639,10 @@ func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { func TestCustomNameNinStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16655,14 +16653,14 @@ func TestCustomNameNinStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinStruct, 1000) for i := 0; i < 1000; i++ { @@ -16677,10 +16675,10 @@ func BenchmarkCustomNameNinStructSize(b *testing.B) { func TestCustomNameCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16691,14 +16689,14 @@ func TestCustomNameCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameCustomType, 1000) for i := 0; i < 1000; i++ { @@ -16713,10 +16711,10 @@ func BenchmarkCustomNameCustomTypeSize(b *testing.B) { func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16727,14 +16725,14 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinEmbeddedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -16749,10 +16747,10 @@ func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { func TestCustomNameEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16763,14 +16761,14 @@ func TestCustomNameEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameEnum, 1000) for i := 0; i < 1000; i++ { @@ -16785,10 +16783,10 @@ func BenchmarkCustomNameEnumSize(b *testing.B) { func TestNoExtensionsMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16799,14 +16797,14 @@ func TestNoExtensionsMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNoExtensionsMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NoExtensionsMap, 1000) for i := 0; i < 1000; i++ { @@ -16821,10 +16819,10 @@ func BenchmarkNoExtensionsMapSize(b *testing.B) { func TestUnrecognizedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16835,14 +16833,14 @@ func TestUnrecognizedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Unrecognized, 1000) for i := 0; i < 1000; i++ { @@ -16857,10 +16855,10 @@ func BenchmarkUnrecognizedSize(b *testing.B) { func TestUnrecognizedWithInnerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16871,14 +16869,14 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner, 1000) for i := 0; i < 1000; i++ { @@ -16893,10 +16891,10 @@ func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { func TestUnrecognizedWithInner_InnerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16907,14 +16905,14 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner_Inner, 1000) for i := 0; i < 1000; i++ { @@ -16929,10 +16927,10 @@ func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { func TestUnrecognizedWithEmbedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16943,14 +16941,14 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed, 1000) for i := 0; i < 1000; i++ { @@ -16965,10 +16963,10 @@ func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16979,14 +16977,14 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed_Embedded, 1000) for i := 0; i < 1000; i++ { @@ -17001,10 +16999,10 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { func TestNodeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17015,14 +17013,14 @@ func TestNodeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNodeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Node, 1000) for i := 0; i < 1000; i++ { @@ -17037,10 +17035,10 @@ func BenchmarkNodeSize(b *testing.B) { func TestNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17051,14 +17049,14 @@ func TestNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17073,10 +17071,10 @@ func BenchmarkNonByteCustomTypeSize(b *testing.B) { func TestNidOptNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17087,14 +17085,14 @@ func TestNidOptNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17109,10 +17107,10 @@ func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { func TestNinOptNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17123,14 +17121,14 @@ func TestNinOptNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17145,10 +17143,10 @@ func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { func TestNidRepNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17159,14 +17157,14 @@ func TestNidRepNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17181,10 +17179,10 @@ func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { func TestNinRepNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17195,14 +17193,14 @@ func TestNinRepNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17217,10 +17215,10 @@ func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { func TestProtoTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17231,14 +17229,14 @@ func TestProtoTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkProtoTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoType, 1000) for i := 0; i < 1000; i++ { @@ -17252,7 +17250,7 @@ func BenchmarkProtoTypeSize(b *testing.B) { } func TestNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17261,7 +17259,7 @@ func TestNidOptNativeStringer(t *testing.T) { } } func TestNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17270,7 +17268,7 @@ func TestNinOptNativeStringer(t *testing.T) { } } func TestNidRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17279,7 +17277,7 @@ func TestNidRepNativeStringer(t *testing.T) { } } func TestNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17288,7 +17286,7 @@ func TestNinRepNativeStringer(t *testing.T) { } } func TestNidRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17297,7 +17295,7 @@ func TestNidRepPackedNativeStringer(t *testing.T) { } } func TestNinRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17306,7 +17304,7 @@ func TestNinRepPackedNativeStringer(t *testing.T) { } } func TestNidOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17315,7 +17313,7 @@ func TestNidOptStructStringer(t *testing.T) { } } func TestNinOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17324,7 +17322,7 @@ func TestNinOptStructStringer(t *testing.T) { } } func TestNidRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17333,7 +17331,7 @@ func TestNidRepStructStringer(t *testing.T) { } } func TestNinRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17342,7 +17340,7 @@ func TestNinRepStructStringer(t *testing.T) { } } func TestNidEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17351,7 +17349,7 @@ func TestNidEmbeddedStructStringer(t *testing.T) { } } func TestNinEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17360,7 +17358,7 @@ func TestNinEmbeddedStructStringer(t *testing.T) { } } func TestNidNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17369,7 +17367,7 @@ func TestNidNestedStructStringer(t *testing.T) { } } func TestNinNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17378,7 +17376,7 @@ func TestNinNestedStructStringer(t *testing.T) { } } func TestNidOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17387,7 +17385,7 @@ func TestNidOptCustomStringer(t *testing.T) { } } func TestCustomDashStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17396,7 +17394,7 @@ func TestCustomDashStringer(t *testing.T) { } } func TestNinOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17405,7 +17403,7 @@ func TestNinOptCustomStringer(t *testing.T) { } } func TestNidRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17414,7 +17412,7 @@ func TestNidRepCustomStringer(t *testing.T) { } } func TestNinRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17423,7 +17421,7 @@ func TestNinRepCustomStringer(t *testing.T) { } } func TestNinOptNativeUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17432,7 +17430,7 @@ func TestNinOptNativeUnionStringer(t *testing.T) { } } func TestNinOptStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17441,7 +17439,7 @@ func TestNinOptStructUnionStringer(t *testing.T) { } } func TestNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17450,7 +17448,7 @@ func TestNinEmbeddedStructUnionStringer(t *testing.T) { } } func TestNinNestedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17459,7 +17457,7 @@ func TestNinNestedStructUnionStringer(t *testing.T) { } } func TestTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17468,7 +17466,7 @@ func TestTreeStringer(t *testing.T) { } } func TestOrBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17477,7 +17475,7 @@ func TestOrBranchStringer(t *testing.T) { } } func TestAndBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17486,7 +17484,7 @@ func TestAndBranchStringer(t *testing.T) { } } func TestLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17495,7 +17493,7 @@ func TestLeafStringer(t *testing.T) { } } func TestDeepTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17504,7 +17502,7 @@ func TestDeepTreeStringer(t *testing.T) { } } func TestADeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17513,7 +17511,7 @@ func TestADeepBranchStringer(t *testing.T) { } } func TestAndDeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17522,7 +17520,7 @@ func TestAndDeepBranchStringer(t *testing.T) { } } func TestDeepLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17531,7 +17529,7 @@ func TestDeepLeafStringer(t *testing.T) { } } func TestNilStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17540,7 +17538,7 @@ func TestNilStringer(t *testing.T) { } } func TestNidOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17549,7 +17547,7 @@ func TestNidOptEnumStringer(t *testing.T) { } } func TestNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17558,7 +17556,7 @@ func TestNinOptEnumStringer(t *testing.T) { } } func TestNidRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17567,7 +17565,7 @@ func TestNidRepEnumStringer(t *testing.T) { } } func TestNinRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17576,7 +17574,7 @@ func TestNinRepEnumStringer(t *testing.T) { } } func TestNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17585,7 +17583,7 @@ func TestNinOptEnumDefaultStringer(t *testing.T) { } } func TestAnotherNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17594,7 +17592,7 @@ func TestAnotherNinOptEnumStringer(t *testing.T) { } } func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17603,7 +17601,7 @@ func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { } } func TestTimerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17612,7 +17610,7 @@ func TestTimerStringer(t *testing.T) { } } func TestMyExtendableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17621,7 +17619,7 @@ func TestMyExtendableStringer(t *testing.T) { } } func TestOtherExtenableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17630,7 +17628,7 @@ func TestOtherExtenableStringer(t *testing.T) { } } func TestNestedDefinitionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17639,7 +17637,7 @@ func TestNestedDefinitionStringer(t *testing.T) { } } func TestNestedDefinition_NestedMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17648,7 +17646,7 @@ func TestNestedDefinition_NestedMessageStringer(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17657,7 +17655,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { } } func TestNestedScopeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17666,7 +17664,7 @@ func TestNestedScopeStringer(t *testing.T) { } } func TestNinOptNativeDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17675,7 +17673,7 @@ func TestNinOptNativeDefaultStringer(t *testing.T) { } } func TestCustomContainerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17684,7 +17682,7 @@ func TestCustomContainerStringer(t *testing.T) { } } func TestCustomNameNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17693,7 +17691,7 @@ func TestCustomNameNidOptNativeStringer(t *testing.T) { } } func TestCustomNameNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17702,7 +17700,7 @@ func TestCustomNameNinOptNativeStringer(t *testing.T) { } } func TestCustomNameNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17711,7 +17709,7 @@ func TestCustomNameNinRepNativeStringer(t *testing.T) { } } func TestCustomNameNinStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17720,7 +17718,7 @@ func TestCustomNameNinStructStringer(t *testing.T) { } } func TestCustomNameCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17729,7 +17727,7 @@ func TestCustomNameCustomTypeStringer(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17738,7 +17736,7 @@ func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { } } func TestCustomNameEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17747,7 +17745,7 @@ func TestCustomNameEnumStringer(t *testing.T) { } } func TestNoExtensionsMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17756,7 +17754,7 @@ func TestNoExtensionsMapStringer(t *testing.T) { } } func TestUnrecognizedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17765,7 +17763,7 @@ func TestUnrecognizedStringer(t *testing.T) { } } func TestUnrecognizedWithInnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17774,7 +17772,7 @@ func TestUnrecognizedWithInnerStringer(t *testing.T) { } } func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17783,7 +17781,7 @@ func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { } } func TestUnrecognizedWithEmbedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17792,7 +17790,7 @@ func TestUnrecognizedWithEmbedStringer(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17801,7 +17799,7 @@ func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { } } func TestNodeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17810,7 +17808,7 @@ func TestNodeStringer(t *testing.T) { } } func TestNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17819,7 +17817,7 @@ func TestNonByteCustomTypeStringer(t *testing.T) { } } func TestNidOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17828,7 +17826,7 @@ func TestNidOptNonByteCustomTypeStringer(t *testing.T) { } } func TestNinOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17837,7 +17835,7 @@ func TestNinOptNonByteCustomTypeStringer(t *testing.T) { } } func TestNidRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17846,7 +17844,7 @@ func TestNidRepNonByteCustomTypeStringer(t *testing.T) { } } func TestNinRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17855,7 +17853,7 @@ func TestNinRepNonByteCustomTypeStringer(t *testing.T) { } } func TestProtoTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17864,7 +17862,7 @@ func TestProtoTypeStringer(t *testing.T) { } } func TestNinOptNativeUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) v := p.GetValue() msg := &NinOptNativeUnion{} @@ -17876,7 +17874,7 @@ func TestNinOptNativeUnionOnlyOne(t *testing.T) { } } func TestNinOptStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, true) v := p.GetValue() msg := &NinOptStructUnion{} @@ -17888,7 +17886,7 @@ func TestNinOptStructUnionOnlyOne(t *testing.T) { } } func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, true) v := p.GetValue() msg := &NinEmbeddedStructUnion{} @@ -17900,7 +17898,7 @@ func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { } } func TestNinNestedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, true) v := p.GetValue() msg := &NinNestedStructUnion{} @@ -17912,7 +17910,7 @@ func TestNinNestedStructUnionOnlyOne(t *testing.T) { } } func TestTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, true) v := p.GetValue() msg := &Tree{} @@ -17924,7 +17922,7 @@ func TestTreeOnlyOne(t *testing.T) { } } func TestDeepTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, true) v := p.GetValue() msg := &DeepTree{} @@ -17936,7 +17934,7 @@ func TestDeepTreeOnlyOne(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) v := p.GetValue() msg := &CustomNameNinEmbeddedStructUnion{} diff --git a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go index d66746058..0b9fa9576 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetest.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/thetest.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -85,12 +84,11 @@ import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custo import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type" import bytes "bytes" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import compress_gzip "compress/gzip" -import io_ioutil "io/ioutil" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" +import ioutil "io/ioutil" import strconv "strconv" @@ -98,6 +96,8 @@ import strings "strings" import sort "sort" import reflect "reflect" +import binary "encoding/binary" + // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -951,7 +951,7 @@ func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, type NinOptNativeDefault struct { Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.12341" json:"Field2,omitempty"` Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` @@ -973,7 +973,7 @@ func (*NinOptNativeDefault) ProtoMessage() {} func (*NinOptNativeDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{44} } const Default_NinOptNativeDefault_Field1 float64 = 1234.1234 -const Default_NinOptNativeDefault_Field2 float32 = 1234.1234 +const Default_NinOptNativeDefault_Field2 float32 = 1234.12341 const Default_NinOptNativeDefault_Field3 int32 = 1234 const Default_NinOptNativeDefault_Field4 int64 = 1234 const Default_NinOptNativeDefault_Field5 uint32 = 1234 @@ -4820,8 +4820,8 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) extkeys := make([]int32, 0, len(thismap)+len(thatmap)) for k := range thismap { extkeys = append(extkeys, k) @@ -4831,7 +4831,7 @@ func (this *MyExtendable) Compare(that interface{}) int { extkeys = append(extkeys, k) } } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) + sortkeys.Int32s(extkeys) for _, k := range extkeys { if v, ok := thismap[k]; ok { if v2, ok := thatmap[k]; ok { @@ -4902,8 +4902,8 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) extkeys := make([]int32, 0, len(thismap)+len(thatmap)) for k := range thismap { extkeys = append(extkeys, k) @@ -4913,7 +4913,7 @@ func (this *OtherExtenable) Compare(that interface{}) int { extkeys = append(extkeys, k) } } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) + sortkeys.Int32s(extkeys) for _, k := range extkeys { if v, ok := thismap[k]; ok { if v2, ok := thatmap[k]; ok { @@ -6760,632 +6760,639 @@ func (this *ProtoType) Compare(that interface{}) int { } return 0 } -func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepPackedNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepPackedNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidEmbeddedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinEmbeddedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidNestedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinNestedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomDash) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomDash) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNativeUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNativeUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinEmbeddedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinNestedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinNestedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Tree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Tree) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *OrBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OrBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AndBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AndBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Leaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Leaf) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *DeepTree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *DeepTree) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *ADeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ADeepBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AndDeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AndDeepBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *DeepLeaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *DeepLeaf) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Nil) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Nil) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptEnumDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AnotherNinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AnotherNinOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AnotherNinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AnotherNinOptEnumDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Timer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Timer) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *MyExtendable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *MyExtendable) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *OtherExtenable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OtherExtenable) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition_NestedMessage) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition_NestedMessage) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedScope) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedScope) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNativeDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNativeDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomContainer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomContainer) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNidOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NoExtensionsMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NoExtensionsMap) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Unrecognized) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Unrecognized) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithInner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithInner) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithInner_Inner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithInner_Inner) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithEmbed) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithEmbed) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Node) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ProtoType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func ThetestDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6509 bytes of a gzipped FileDescriptorSet + // 6623 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x7b, 0x6c, 0x1c, 0xd7, - 0x79, 0x2f, 0x67, 0x67, 0x49, 0x2d, 0x3f, 0xbe, 0x86, 0x43, 0x99, 0x5a, 0xd3, 0xf2, 0x52, 0x5a, - 0xcb, 0x32, 0xcd, 0xd8, 0x14, 0x45, 0x91, 0x7a, 0xac, 0x62, 0x1b, 0xfb, 0x92, 0x4c, 0x85, 0x5c, - 0x32, 0x43, 0x32, 0xb6, 0x72, 0x2f, 0xb0, 0x18, 0xed, 0x1e, 0x92, 0x6b, 0xef, 0xce, 0x6c, 0x76, - 0x86, 0xb6, 0xe9, 0x3f, 0x2e, 0x7c, 0x93, 0x7b, 0x73, 0x93, 0x5b, 0xf4, 0x99, 0x16, 0x4d, 0xd2, - 0xc4, 0x71, 0x52, 0xa4, 0x71, 0x92, 0x3e, 0x92, 0x36, 0x4d, 0x83, 0xa0, 0x68, 0xfc, 0x4f, 0x5a, - 0x15, 0x05, 0x0a, 0xa7, 0x7f, 0x15, 0x41, 0x61, 0xc4, 0x72, 0x80, 0xa6, 0xad, 0xdb, 0x26, 0x8d, - 0x81, 0x04, 0x70, 0xfe, 0x28, 0xce, 0x6b, 0x66, 0xce, 0xd9, 0x59, 0xce, 0xd0, 0xb2, 0x93, 0xfc, - 0x23, 0xed, 0x9e, 0xef, 0xfb, 0x7d, 0xf3, 0x9d, 0xef, 0x75, 0xbe, 0x39, 0xe7, 0x70, 0xe1, 0xb5, - 0x25, 0x38, 0xb1, 0x63, 0xdb, 0x3b, 0x4d, 0x74, 0xa6, 0xdd, 0xb1, 0x5d, 0xfb, 0xc6, 0xde, 0xf6, - 0x99, 0x3a, 0x72, 0x6a, 0x9d, 0x46, 0xdb, 0xb5, 0x3b, 0x73, 0x64, 0x4c, 0x1f, 0xa3, 0x1c, 0x73, - 0x9c, 0x23, 0xbb, 0x0a, 0xe3, 0x57, 0x1a, 0x4d, 0x54, 0xf2, 0x18, 0x37, 0x90, 0xab, 0x5f, 0x84, - 0xe4, 0x76, 0xa3, 0x89, 0xd2, 0xca, 0x09, 0x75, 0x66, 0x68, 0xe1, 0xd4, 0x9c, 0x04, 0x9a, 0x13, - 0x11, 0xeb, 0x78, 0xd8, 0x20, 0x88, 0xec, 0xf7, 0x93, 0x30, 0x11, 0x42, 0xd5, 0x75, 0x48, 0x5a, - 0x66, 0x0b, 0x4b, 0x54, 0x66, 0x06, 0x0d, 0xf2, 0x59, 0x4f, 0xc3, 0x91, 0xb6, 0x59, 0x7b, 0xd2, - 0xdc, 0x41, 0xe9, 0x04, 0x19, 0xe6, 0x5f, 0xf5, 0x0c, 0x40, 0x1d, 0xb5, 0x91, 0x55, 0x47, 0x56, - 0x6d, 0x3f, 0xad, 0x9e, 0x50, 0x67, 0x06, 0x8d, 0xc0, 0x88, 0xfe, 0x2e, 0x18, 0x6f, 0xef, 0xdd, - 0x68, 0x36, 0x6a, 0xd5, 0x00, 0x1b, 0x9c, 0x50, 0x67, 0xfa, 0x0d, 0x8d, 0x12, 0x4a, 0x3e, 0xf3, - 0x7d, 0x30, 0xf6, 0x34, 0x32, 0x9f, 0x0c, 0xb2, 0x0e, 0x11, 0xd6, 0x51, 0x3c, 0x1c, 0x60, 0x2c, - 0xc2, 0x70, 0x0b, 0x39, 0x8e, 0xb9, 0x83, 0xaa, 0xee, 0x7e, 0x1b, 0xa5, 0x93, 0x64, 0xf6, 0x27, - 0xba, 0x66, 0x2f, 0xcf, 0x7c, 0x88, 0xa1, 0x36, 0xf7, 0xdb, 0x48, 0xcf, 0xc3, 0x20, 0xb2, 0xf6, - 0x5a, 0x54, 0x42, 0x7f, 0x0f, 0xfb, 0x95, 0xad, 0xbd, 0x96, 0x2c, 0x25, 0x85, 0x61, 0x4c, 0xc4, - 0x11, 0x07, 0x75, 0x9e, 0x6a, 0xd4, 0x50, 0x7a, 0x80, 0x08, 0xb8, 0xaf, 0x4b, 0xc0, 0x06, 0xa5, - 0xcb, 0x32, 0x38, 0x4e, 0x2f, 0xc2, 0x20, 0x7a, 0xc6, 0x45, 0x96, 0xd3, 0xb0, 0xad, 0xf4, 0x11, - 0x22, 0xe4, 0xde, 0x10, 0x2f, 0xa2, 0x66, 0x5d, 0x16, 0xe1, 0xe3, 0xf4, 0xf3, 0x70, 0xc4, 0x6e, - 0xbb, 0x0d, 0xdb, 0x72, 0xd2, 0xa9, 0x13, 0xca, 0xcc, 0xd0, 0xc2, 0xf1, 0xd0, 0x40, 0x58, 0xa3, - 0x3c, 0x06, 0x67, 0xd6, 0x97, 0x41, 0x73, 0xec, 0xbd, 0x4e, 0x0d, 0x55, 0x6b, 0x76, 0x1d, 0x55, - 0x1b, 0xd6, 0xb6, 0x9d, 0x1e, 0x24, 0x02, 0xa6, 0xbb, 0x27, 0x42, 0x18, 0x8b, 0x76, 0x1d, 0x2d, - 0x5b, 0xdb, 0xb6, 0x31, 0xea, 0x08, 0xdf, 0xf5, 0x49, 0x18, 0x70, 0xf6, 0x2d, 0xd7, 0x7c, 0x26, - 0x3d, 0x4c, 0x22, 0x84, 0x7d, 0xcb, 0xfe, 0xa4, 0x1f, 0xc6, 0xe2, 0x84, 0xd8, 0x65, 0xe8, 0xdf, - 0xc6, 0xb3, 0x4c, 0x27, 0x0e, 0x63, 0x03, 0x8a, 0x11, 0x8d, 0x38, 0xf0, 0x16, 0x8d, 0x98, 0x87, - 0x21, 0x0b, 0x39, 0x2e, 0xaa, 0xd3, 0x88, 0x50, 0x63, 0xc6, 0x14, 0x50, 0x50, 0x77, 0x48, 0x25, - 0xdf, 0x52, 0x48, 0x3d, 0x0e, 0x63, 0x9e, 0x4a, 0xd5, 0x8e, 0x69, 0xed, 0xf0, 0xd8, 0x3c, 0x13, - 0xa5, 0xc9, 0x5c, 0x99, 0xe3, 0x0c, 0x0c, 0x33, 0x46, 0x91, 0xf0, 0x5d, 0x2f, 0x01, 0xd8, 0x16, - 0xb2, 0xb7, 0xab, 0x75, 0x54, 0x6b, 0xa6, 0x53, 0x3d, 0xac, 0xb4, 0x86, 0x59, 0xba, 0xac, 0x64, - 0xd3, 0xd1, 0x5a, 0x53, 0xbf, 0xe4, 0x87, 0xda, 0x91, 0x1e, 0x91, 0xb2, 0x4a, 0x93, 0xac, 0x2b, - 0xda, 0xb6, 0x60, 0xb4, 0x83, 0x70, 0xdc, 0xa3, 0x3a, 0x9b, 0xd9, 0x20, 0x51, 0x62, 0x2e, 0x72, - 0x66, 0x06, 0x83, 0xd1, 0x89, 0x8d, 0x74, 0x82, 0x5f, 0xf5, 0x7b, 0xc0, 0x1b, 0xa8, 0x92, 0xb0, - 0x02, 0x52, 0x85, 0x86, 0xf9, 0x60, 0xc5, 0x6c, 0xa1, 0xa9, 0x8b, 0x30, 0x2a, 0x9a, 0x47, 0x3f, - 0x0a, 0xfd, 0x8e, 0x6b, 0x76, 0x5c, 0x12, 0x85, 0xfd, 0x06, 0xfd, 0xa2, 0x6b, 0xa0, 0x22, 0xab, - 0x4e, 0xaa, 0x5c, 0xbf, 0x81, 0x3f, 0x4e, 0x5d, 0x80, 0x11, 0xe1, 0xf1, 0x71, 0x81, 0xd9, 0x8f, - 0x0f, 0xc0, 0xd1, 0xb0, 0x98, 0x0b, 0x0d, 0xff, 0x49, 0x18, 0xb0, 0xf6, 0x5a, 0x37, 0x50, 0x27, - 0xad, 0x12, 0x09, 0xec, 0x9b, 0x9e, 0x87, 0xfe, 0xa6, 0x79, 0x03, 0x35, 0xd3, 0xc9, 0x13, 0xca, - 0xcc, 0xe8, 0xc2, 0xbb, 0x62, 0x45, 0xf5, 0xdc, 0x0a, 0x86, 0x18, 0x14, 0xa9, 0x3f, 0x0c, 0x49, - 0x56, 0xe2, 0xb0, 0x84, 0xd9, 0x78, 0x12, 0x70, 0x2c, 0x1a, 0x04, 0xa7, 0xdf, 0x05, 0x83, 0xf8, - 0x7f, 0x6a, 0xdb, 0x01, 0xa2, 0x73, 0x0a, 0x0f, 0x60, 0xbb, 0xea, 0x53, 0x90, 0x22, 0x61, 0x56, - 0x47, 0x7c, 0x69, 0xf0, 0xbe, 0x63, 0xc7, 0xd4, 0xd1, 0xb6, 0xb9, 0xd7, 0x74, 0xab, 0x4f, 0x99, - 0xcd, 0x3d, 0x44, 0x02, 0x66, 0xd0, 0x18, 0x66, 0x83, 0xef, 0xc3, 0x63, 0xfa, 0x34, 0x0c, 0xd1, - 0xa8, 0x6c, 0x58, 0x75, 0xf4, 0x0c, 0xa9, 0x3e, 0xfd, 0x06, 0x0d, 0xd4, 0x65, 0x3c, 0x82, 0x1f, - 0xff, 0x84, 0x63, 0x5b, 0xdc, 0xb5, 0xe4, 0x11, 0x78, 0x80, 0x3c, 0xfe, 0x82, 0x5c, 0xf8, 0xee, - 0x0e, 0x9f, 0x9e, 0x1c, 0x8b, 0xd9, 0xaf, 0x27, 0x20, 0x49, 0xf2, 0x6d, 0x0c, 0x86, 0x36, 0xaf, - 0xaf, 0x97, 0xab, 0xa5, 0xb5, 0xad, 0xc2, 0x4a, 0x59, 0x53, 0xf4, 0x51, 0x00, 0x32, 0x70, 0x65, - 0x65, 0x2d, 0xbf, 0xa9, 0x25, 0xbc, 0xef, 0xcb, 0x95, 0xcd, 0xf3, 0x8b, 0x9a, 0xea, 0x01, 0xb6, - 0xe8, 0x40, 0x32, 0xc8, 0x70, 0x6e, 0x41, 0xeb, 0xd7, 0x35, 0x18, 0xa6, 0x02, 0x96, 0x1f, 0x2f, - 0x97, 0xce, 0x2f, 0x6a, 0x03, 0xe2, 0xc8, 0xb9, 0x05, 0xed, 0x88, 0x3e, 0x02, 0x83, 0x64, 0xa4, - 0xb0, 0xb6, 0xb6, 0xa2, 0xa5, 0x3c, 0x99, 0x1b, 0x9b, 0xc6, 0x72, 0xe5, 0xaa, 0x36, 0xe8, 0xc9, - 0xbc, 0x6a, 0xac, 0x6d, 0xad, 0x6b, 0xe0, 0x49, 0x58, 0x2d, 0x6f, 0x6c, 0xe4, 0xaf, 0x96, 0xb5, - 0x21, 0x8f, 0xa3, 0x70, 0x7d, 0xb3, 0xbc, 0xa1, 0x0d, 0x0b, 0x6a, 0x9d, 0x5b, 0xd0, 0x46, 0xbc, - 0x47, 0x94, 0x2b, 0x5b, 0xab, 0xda, 0xa8, 0x3e, 0x0e, 0x23, 0xf4, 0x11, 0x5c, 0x89, 0x31, 0x69, - 0xe8, 0xfc, 0xa2, 0xa6, 0xf9, 0x8a, 0x50, 0x29, 0xe3, 0xc2, 0xc0, 0xf9, 0x45, 0x4d, 0xcf, 0x16, - 0xa1, 0x9f, 0x44, 0x97, 0xae, 0xc3, 0xe8, 0x4a, 0xbe, 0x50, 0x5e, 0xa9, 0xae, 0xad, 0x6f, 0x2e, - 0xaf, 0x55, 0xf2, 0x2b, 0x9a, 0xe2, 0x8f, 0x19, 0xe5, 0xf7, 0x6e, 0x2d, 0x1b, 0xe5, 0x92, 0x96, - 0x08, 0x8e, 0xad, 0x97, 0xf3, 0x9b, 0xe5, 0x92, 0xa6, 0x66, 0x6b, 0x70, 0x34, 0xac, 0xce, 0x84, - 0x66, 0x46, 0xc0, 0xc5, 0x89, 0x1e, 0x2e, 0x26, 0xb2, 0xba, 0x5c, 0xfc, 0x39, 0x05, 0x26, 0x42, - 0x6a, 0x6d, 0xe8, 0x43, 0x1e, 0x81, 0x7e, 0x1a, 0xa2, 0x74, 0xf5, 0xb9, 0x3f, 0xb4, 0x68, 0x93, - 0x80, 0xed, 0x5a, 0x81, 0x08, 0x2e, 0xb8, 0x02, 0xab, 0x3d, 0x56, 0x60, 0x2c, 0xa2, 0x4b, 0xc9, - 0x0f, 0x29, 0x90, 0xee, 0x25, 0x3b, 0xa2, 0x50, 0x24, 0x84, 0x42, 0x71, 0x59, 0x56, 0xe0, 0x64, - 0xef, 0x39, 0x74, 0x69, 0xf1, 0x05, 0x05, 0x26, 0xc3, 0x1b, 0x95, 0x50, 0x1d, 0x1e, 0x86, 0x81, - 0x16, 0x72, 0x77, 0x6d, 0xbe, 0x58, 0x9f, 0x0e, 0x59, 0x02, 0x30, 0x59, 0xb6, 0x15, 0x43, 0x05, - 0xd7, 0x10, 0xb5, 0x57, 0xb7, 0x41, 0xb5, 0xe9, 0xd2, 0xf4, 0xa3, 0x09, 0xb8, 0x23, 0x54, 0x78, - 0xa8, 0xa2, 0x77, 0x03, 0x34, 0xac, 0xf6, 0x9e, 0x4b, 0x17, 0x64, 0x5a, 0x9f, 0x06, 0xc9, 0x08, - 0xc9, 0x7d, 0x5c, 0x7b, 0xf6, 0x5c, 0x8f, 0xae, 0x12, 0x3a, 0xd0, 0x21, 0xc2, 0x70, 0xd1, 0x57, - 0x34, 0x49, 0x14, 0xcd, 0xf4, 0x98, 0x69, 0xd7, 0x5a, 0x37, 0x0f, 0x5a, 0xad, 0xd9, 0x40, 0x96, - 0x5b, 0x75, 0xdc, 0x0e, 0x32, 0x5b, 0x0d, 0x6b, 0x87, 0x14, 0xe0, 0x54, 0xae, 0x7f, 0xdb, 0x6c, - 0x3a, 0xc8, 0x18, 0xa3, 0xe4, 0x0d, 0x4e, 0xc5, 0x08, 0xb2, 0xca, 0x74, 0x02, 0x88, 0x01, 0x01, - 0x41, 0xc9, 0x1e, 0x22, 0xfb, 0xe5, 0x23, 0x30, 0x14, 0x68, 0xeb, 0xf4, 0x93, 0x30, 0xfc, 0x84, - 0xf9, 0x94, 0x59, 0xe5, 0xad, 0x3a, 0xb5, 0xc4, 0x10, 0x1e, 0x5b, 0x67, 0xed, 0xfa, 0x3c, 0x1c, - 0x25, 0x2c, 0xf6, 0x9e, 0x8b, 0x3a, 0xd5, 0x5a, 0xd3, 0x74, 0x1c, 0x62, 0xb4, 0x14, 0x61, 0xd5, - 0x31, 0x6d, 0x0d, 0x93, 0x8a, 0x9c, 0xa2, 0x2f, 0xc1, 0x04, 0x41, 0xb4, 0xf6, 0x9a, 0x6e, 0xa3, - 0xdd, 0x44, 0x55, 0xfc, 0xf2, 0xe0, 0x90, 0x42, 0xec, 0x69, 0x36, 0x8e, 0x39, 0x56, 0x19, 0x03, - 0xd6, 0xc8, 0xd1, 0x4b, 0x70, 0x37, 0x81, 0xed, 0x20, 0x0b, 0x75, 0x4c, 0x17, 0x55, 0xd1, 0x07, - 0xf6, 0xcc, 0xa6, 0x53, 0x35, 0xad, 0x7a, 0x75, 0xd7, 0x74, 0x76, 0xd3, 0x47, 0xb1, 0x80, 0x42, - 0x22, 0xad, 0x18, 0x77, 0x62, 0xc6, 0xab, 0x8c, 0xaf, 0x4c, 0xd8, 0xf2, 0x56, 0xfd, 0x51, 0xd3, - 0xd9, 0xd5, 0x73, 0x30, 0x49, 0xa4, 0x38, 0x6e, 0xa7, 0x61, 0xed, 0x54, 0x6b, 0xbb, 0xa8, 0xf6, - 0x64, 0x75, 0xcf, 0xdd, 0xbe, 0x98, 0xbe, 0x2b, 0xf8, 0x7c, 0xa2, 0xe1, 0x06, 0xe1, 0x29, 0x62, - 0x96, 0x2d, 0x77, 0xfb, 0xa2, 0xbe, 0x01, 0xc3, 0xd8, 0x19, 0xad, 0xc6, 0xb3, 0xa8, 0xba, 0x6d, - 0x77, 0xc8, 0xca, 0x32, 0x1a, 0x92, 0xd9, 0x01, 0x0b, 0xce, 0xad, 0x31, 0xc0, 0xaa, 0x5d, 0x47, - 0xb9, 0xfe, 0x8d, 0xf5, 0x72, 0xb9, 0x64, 0x0c, 0x71, 0x29, 0x57, 0xec, 0x0e, 0x0e, 0xa8, 0x1d, - 0xdb, 0x33, 0xf0, 0x10, 0x0d, 0xa8, 0x1d, 0x9b, 0x9b, 0x77, 0x09, 0x26, 0x6a, 0x35, 0x3a, 0xe7, - 0x46, 0xad, 0xca, 0x5a, 0x7c, 0x27, 0xad, 0x09, 0xc6, 0xaa, 0xd5, 0xae, 0x52, 0x06, 0x16, 0xe3, - 0x8e, 0x7e, 0x09, 0xee, 0xf0, 0x8d, 0x15, 0x04, 0x8e, 0x77, 0xcd, 0x52, 0x86, 0x2e, 0xc1, 0x44, - 0x7b, 0xbf, 0x1b, 0xa8, 0x0b, 0x4f, 0x6c, 0xef, 0xcb, 0xb0, 0x7b, 0xc9, 0x6b, 0x5b, 0x07, 0xd5, - 0x4c, 0x17, 0xd5, 0xd3, 0xc7, 0x82, 0xdc, 0x01, 0x82, 0x7e, 0x06, 0xb4, 0x5a, 0xad, 0x8a, 0x2c, - 0xf3, 0x46, 0x13, 0x55, 0xcd, 0x0e, 0xb2, 0x4c, 0x27, 0x3d, 0x1d, 0x64, 0x1e, 0xad, 0xd5, 0xca, - 0x84, 0x9a, 0x27, 0x44, 0x7d, 0x16, 0xc6, 0xed, 0x1b, 0x4f, 0xd4, 0x68, 0x64, 0x55, 0xdb, 0x1d, - 0xb4, 0xdd, 0x78, 0x26, 0x7d, 0x8a, 0x98, 0x69, 0x0c, 0x13, 0x48, 0x5c, 0xad, 0x93, 0x61, 0xfd, - 0x7e, 0xd0, 0x6a, 0xce, 0xae, 0xd9, 0x69, 0x93, 0xa5, 0xdd, 0x69, 0x9b, 0x35, 0x94, 0xbe, 0x97, - 0xb2, 0xd2, 0xf1, 0x0a, 0x1f, 0xc6, 0x91, 0xed, 0x3c, 0xdd, 0xd8, 0x76, 0xb9, 0xc4, 0xfb, 0x68, - 0x64, 0x93, 0x31, 0x26, 0xed, 0x71, 0x38, 0xba, 0x67, 0x35, 0x2c, 0x17, 0x75, 0xda, 0x1d, 0x84, - 0x9b, 0x78, 0x9a, 0x89, 0xe9, 0x7f, 0x3e, 0xd2, 0xa3, 0x0d, 0xdf, 0x0a, 0x72, 0xd3, 0x00, 0x30, - 0x26, 0xf6, 0xba, 0x07, 0xb3, 0x39, 0x18, 0x0e, 0xc6, 0x85, 0x3e, 0x08, 0x34, 0x32, 0x34, 0x05, - 0xaf, 0xb1, 0xc5, 0xb5, 0x12, 0x5e, 0x1d, 0xdf, 0x5f, 0xd6, 0x12, 0x78, 0x95, 0x5e, 0x59, 0xde, - 0x2c, 0x57, 0x8d, 0xad, 0xca, 0xe6, 0xf2, 0x6a, 0x59, 0x53, 0x67, 0x07, 0x53, 0x3f, 0x38, 0xa2, - 0x3d, 0xf7, 0xdc, 0x73, 0xcf, 0x25, 0xb2, 0xdf, 0x4e, 0xc0, 0xa8, 0xd8, 0x19, 0xeb, 0xef, 0x86, - 0x63, 0xfc, 0x35, 0xd6, 0x41, 0x6e, 0xf5, 0xe9, 0x46, 0x87, 0x84, 0x6a, 0xcb, 0xa4, 0xbd, 0xa5, - 0x67, 0xe5, 0xa3, 0x8c, 0x6b, 0x03, 0xb9, 0x8f, 0x35, 0x3a, 0x38, 0x10, 0x5b, 0xa6, 0xab, 0xaf, - 0xc0, 0xb4, 0x65, 0x57, 0x1d, 0xd7, 0xb4, 0xea, 0x66, 0xa7, 0x5e, 0xf5, 0x37, 0x10, 0xaa, 0x66, - 0xad, 0x86, 0x1c, 0xc7, 0xa6, 0x4b, 0x84, 0x27, 0xe5, 0xb8, 0x65, 0x6f, 0x30, 0x66, 0xbf, 0x76, - 0xe6, 0x19, 0xab, 0x14, 0x11, 0x6a, 0xaf, 0x88, 0xb8, 0x0b, 0x06, 0x5b, 0x66, 0xbb, 0x8a, 0x2c, - 0xb7, 0xb3, 0x4f, 0xfa, 0xb9, 0x94, 0x91, 0x6a, 0x99, 0xed, 0x32, 0xfe, 0xfe, 0xce, 0xf9, 0x20, - 0x68, 0xc7, 0x7f, 0x52, 0x61, 0x38, 0xd8, 0xd3, 0xe1, 0x16, 0xb9, 0x46, 0xea, 0xb7, 0x42, 0x32, - 0xfc, 0x9e, 0x03, 0x3b, 0xc0, 0xb9, 0x22, 0x2e, 0xec, 0xb9, 0x01, 0xda, 0x69, 0x19, 0x14, 0x89, - 0x17, 0x55, 0x9c, 0xd3, 0x88, 0xf6, 0xef, 0x29, 0x83, 0x7d, 0xd3, 0xaf, 0xc2, 0xc0, 0x13, 0x0e, - 0x91, 0x3d, 0x40, 0x64, 0x9f, 0x3a, 0x58, 0xf6, 0xb5, 0x0d, 0x22, 0x7c, 0xf0, 0xda, 0x46, 0xb5, - 0xb2, 0x66, 0xac, 0xe6, 0x57, 0x0c, 0x06, 0xd7, 0xef, 0x84, 0x64, 0xd3, 0x7c, 0x76, 0x5f, 0x5c, - 0x02, 0xc8, 0x50, 0x5c, 0xc3, 0xdf, 0x09, 0xc9, 0xa7, 0x91, 0xf9, 0xa4, 0x58, 0x78, 0xc9, 0xd0, - 0x3b, 0x18, 0xfa, 0x67, 0xa0, 0x9f, 0xd8, 0x4b, 0x07, 0x60, 0x16, 0xd3, 0xfa, 0xf4, 0x14, 0x24, - 0x8b, 0x6b, 0x06, 0x0e, 0x7f, 0x0d, 0x86, 0xe9, 0x68, 0x75, 0x7d, 0xb9, 0x5c, 0x2c, 0x6b, 0x89, - 0xec, 0x12, 0x0c, 0x50, 0x23, 0xe0, 0xd4, 0xf0, 0xcc, 0xa0, 0xf5, 0xb1, 0xaf, 0x4c, 0x86, 0xc2, - 0xa9, 0x5b, 0xab, 0x85, 0xb2, 0xa1, 0x25, 0x82, 0xee, 0x75, 0x60, 0x38, 0xd8, 0xce, 0xfd, 0x7c, - 0x62, 0xea, 0x9b, 0x0a, 0x0c, 0x05, 0xda, 0x33, 0xdc, 0x18, 0x98, 0xcd, 0xa6, 0xfd, 0x74, 0xd5, - 0x6c, 0x36, 0x4c, 0x87, 0x05, 0x05, 0x90, 0xa1, 0x3c, 0x1e, 0x89, 0xeb, 0xb4, 0x9f, 0x8b, 0xf2, - 0xcf, 0x2b, 0xa0, 0xc9, 0xad, 0x9d, 0xa4, 0xa0, 0xf2, 0x0b, 0x55, 0xf0, 0x53, 0x0a, 0x8c, 0x8a, - 0xfd, 0x9c, 0xa4, 0xde, 0xc9, 0x5f, 0xa8, 0x7a, 0xdf, 0x4b, 0xc0, 0x88, 0xd0, 0xc5, 0xc5, 0xd5, - 0xee, 0x03, 0x30, 0xde, 0xa8, 0xa3, 0x56, 0xdb, 0x76, 0x91, 0x55, 0xdb, 0xaf, 0x36, 0xd1, 0x53, - 0xa8, 0x99, 0xce, 0x92, 0x42, 0x71, 0xe6, 0xe0, 0x3e, 0x71, 0x6e, 0xd9, 0xc7, 0xad, 0x60, 0x58, - 0x6e, 0x62, 0xb9, 0x54, 0x5e, 0x5d, 0x5f, 0xdb, 0x2c, 0x57, 0x8a, 0xd7, 0xab, 0x5b, 0x95, 0xf7, - 0x54, 0xd6, 0x1e, 0xab, 0x18, 0x5a, 0x43, 0x62, 0x7b, 0x07, 0x53, 0x7d, 0x1d, 0x34, 0x59, 0x29, - 0xfd, 0x18, 0x84, 0xa9, 0xa5, 0xf5, 0xe9, 0x13, 0x30, 0x56, 0x59, 0xab, 0x6e, 0x2c, 0x97, 0xca, - 0xd5, 0xf2, 0x95, 0x2b, 0xe5, 0xe2, 0xe6, 0x06, 0x7d, 0x71, 0xf6, 0xb8, 0x37, 0xc5, 0xa4, 0xfe, - 0xa4, 0x0a, 0x13, 0x21, 0x9a, 0xe8, 0x79, 0xd6, 0xb3, 0xd3, 0xd7, 0x88, 0x07, 0xe3, 0x68, 0x3f, - 0x87, 0xbb, 0x82, 0x75, 0xb3, 0xe3, 0xb2, 0x16, 0xff, 0x7e, 0xc0, 0x56, 0xb2, 0xdc, 0xc6, 0x76, - 0x03, 0x75, 0xd8, 0x3e, 0x03, 0x6d, 0xe4, 0xc7, 0xfc, 0x71, 0xba, 0xd5, 0xf0, 0x00, 0xe8, 0x6d, - 0xdb, 0x69, 0xb8, 0x8d, 0xa7, 0x50, 0xb5, 0x61, 0xf1, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, - 0x53, 0x96, 0x2d, 0xd7, 0xe3, 0xb6, 0xd0, 0x8e, 0x29, 0x71, 0xe3, 0x02, 0xae, 0x1a, 0x1a, 0xa7, - 0x78, 0xdc, 0x27, 0x61, 0xb8, 0x6e, 0xef, 0xe1, 0x36, 0x89, 0xf2, 0xe1, 0xf5, 0x42, 0x31, 0x86, - 0xe8, 0x98, 0xc7, 0xc2, 0xfa, 0x58, 0x7f, 0x37, 0x64, 0xd8, 0x18, 0xa2, 0x63, 0x94, 0xe5, 0x3e, - 0x18, 0x33, 0x77, 0x76, 0x3a, 0x58, 0x38, 0x17, 0x44, 0x3b, 0xf3, 0x51, 0x6f, 0x98, 0x30, 0x4e, - 0x5d, 0x83, 0x14, 0xb7, 0x03, 0x5e, 0x92, 0xb1, 0x25, 0xaa, 0x6d, 0xba, 0x27, 0x95, 0x98, 0x19, - 0x34, 0x52, 0x16, 0x27, 0x9e, 0x84, 0xe1, 0x86, 0x53, 0xf5, 0x37, 0x47, 0x13, 0x27, 0x12, 0x33, - 0x29, 0x63, 0xa8, 0xe1, 0x78, 0xbb, 0x61, 0xd9, 0x2f, 0x24, 0x60, 0x54, 0xdc, 0xdc, 0xd5, 0x4b, - 0x90, 0x6a, 0xda, 0x35, 0x93, 0x84, 0x16, 0x3d, 0x59, 0x98, 0x89, 0xd8, 0x0f, 0x9e, 0x5b, 0x61, - 0xfc, 0x86, 0x87, 0x9c, 0xfa, 0x7b, 0x05, 0x52, 0x7c, 0x58, 0x9f, 0x84, 0x64, 0xdb, 0x74, 0x77, - 0x89, 0xb8, 0xfe, 0x42, 0x42, 0x53, 0x0c, 0xf2, 0x1d, 0x8f, 0x3b, 0x6d, 0xd3, 0x22, 0x21, 0xc0, - 0xc6, 0xf1, 0x77, 0xec, 0xd7, 0x26, 0x32, 0xeb, 0xa4, 0xed, 0xb7, 0x5b, 0x2d, 0x64, 0xb9, 0x0e, - 0xf7, 0x2b, 0x1b, 0x2f, 0xb2, 0x61, 0xfd, 0x5d, 0x30, 0xee, 0x76, 0xcc, 0x46, 0x53, 0xe0, 0x4d, - 0x12, 0x5e, 0x8d, 0x13, 0x3c, 0xe6, 0x1c, 0xdc, 0xc9, 0xe5, 0xd6, 0x91, 0x6b, 0xd6, 0x76, 0x51, - 0xdd, 0x07, 0x0d, 0x90, 0x9d, 0xc3, 0x63, 0x8c, 0xa1, 0xc4, 0xe8, 0x1c, 0x9b, 0xfd, 0x8e, 0x02, - 0xe3, 0xfc, 0x45, 0xa5, 0xee, 0x19, 0x6b, 0x15, 0xc0, 0xb4, 0x2c, 0xdb, 0x0d, 0x9a, 0xab, 0x3b, - 0x94, 0xbb, 0x70, 0x73, 0x79, 0x0f, 0x64, 0x04, 0x04, 0x4c, 0xb5, 0x00, 0x7c, 0x4a, 0x4f, 0xb3, - 0x4d, 0xc3, 0x10, 0xdb, 0xb9, 0x27, 0xc7, 0x3f, 0xf4, 0xd5, 0x16, 0xe8, 0x10, 0x7e, 0xa3, 0xd1, - 0x8f, 0x42, 0xff, 0x0d, 0xb4, 0xd3, 0xb0, 0xd8, 0x7e, 0x22, 0xfd, 0xc2, 0x77, 0x29, 0x93, 0xde, - 0x2e, 0x65, 0xe1, 0x71, 0x98, 0xa8, 0xd9, 0x2d, 0x59, 0xdd, 0x82, 0x26, 0xbd, 0x5e, 0x3b, 0x8f, - 0x2a, 0xef, 0x07, 0xbf, 0xc5, 0xfc, 0x5c, 0x42, 0xbd, 0xba, 0x5e, 0xf8, 0x52, 0x62, 0xea, 0x2a, - 0xc5, 0xad, 0xf3, 0x69, 0x1a, 0x68, 0xbb, 0x89, 0x6a, 0x58, 0x75, 0xf8, 0xf1, 0x69, 0x78, 0x70, - 0xa7, 0xe1, 0xee, 0xee, 0xdd, 0x98, 0xab, 0xd9, 0xad, 0x33, 0x3b, 0xf6, 0x8e, 0xed, 0x1f, 0x77, - 0xe1, 0x6f, 0xe4, 0x0b, 0xf9, 0xc4, 0x8e, 0xbc, 0x06, 0xbd, 0xd1, 0xa9, 0xc8, 0xf3, 0xb1, 0x5c, - 0x05, 0x26, 0x18, 0x73, 0x95, 0xec, 0xb9, 0xd3, 0x57, 0x03, 0xfd, 0xc0, 0x7d, 0x97, 0xf4, 0x57, - 0xbf, 0x4f, 0xd6, 0x6a, 0x63, 0x9c, 0x41, 0x31, 0x8d, 0xbe, 0x40, 0xe4, 0x0c, 0xb8, 0x43, 0x90, - 0x47, 0xf3, 0x12, 0x75, 0x22, 0x24, 0x7e, 0x9b, 0x49, 0x9c, 0x08, 0x48, 0xdc, 0x60, 0xd0, 0x5c, - 0x11, 0x46, 0x0e, 0x23, 0xeb, 0xaf, 0x99, 0xac, 0x61, 0x14, 0x14, 0x72, 0x15, 0xc6, 0x88, 0x90, - 0xda, 0x9e, 0xe3, 0xda, 0x2d, 0x52, 0xf4, 0x0e, 0x16, 0xf3, 0x37, 0xdf, 0xa7, 0x89, 0x32, 0x8a, - 0x61, 0x45, 0x0f, 0x95, 0xcb, 0x01, 0x39, 0x66, 0xa8, 0xa3, 0x5a, 0x33, 0x42, 0xc2, 0x4d, 0xa6, - 0x88, 0xc7, 0x9f, 0x7b, 0x1f, 0x1c, 0xc5, 0x9f, 0x49, 0x4d, 0x0a, 0x6a, 0x12, 0xbd, 0xcb, 0x94, - 0xfe, 0xce, 0x87, 0x68, 0x2e, 0x4e, 0x78, 0x02, 0x02, 0x3a, 0x05, 0xbc, 0xb8, 0x83, 0x5c, 0x17, - 0x75, 0x9c, 0xaa, 0xd9, 0x0c, 0x53, 0x2f, 0xf0, 0x9a, 0x9e, 0xfe, 0xc4, 0xeb, 0xa2, 0x17, 0xaf, - 0x52, 0x64, 0xbe, 0xd9, 0xcc, 0x6d, 0xc1, 0xb1, 0x90, 0xa8, 0x88, 0x21, 0xf3, 0x93, 0x4c, 0xe6, - 0xd1, 0xae, 0xc8, 0xc0, 0x62, 0xd7, 0x81, 0x8f, 0x7b, 0xbe, 0x8c, 0x21, 0xf3, 0xf7, 0x98, 0x4c, - 0x9d, 0x61, 0xb9, 0x4b, 0xb1, 0xc4, 0x6b, 0x30, 0xfe, 0x14, 0xea, 0xdc, 0xb0, 0x1d, 0xb6, 0x35, - 0x12, 0x43, 0xdc, 0xa7, 0x98, 0xb8, 0x31, 0x06, 0x24, 0x7b, 0x25, 0x58, 0xd6, 0x25, 0x48, 0x6d, - 0x9b, 0x35, 0x14, 0x43, 0xc4, 0xa7, 0x99, 0x88, 0x23, 0x98, 0x1f, 0x43, 0xf3, 0x30, 0xbc, 0x63, - 0xb3, 0x65, 0x29, 0x1a, 0xfe, 0x3c, 0x83, 0x0f, 0x71, 0x0c, 0x13, 0xd1, 0xb6, 0xdb, 0x7b, 0x4d, - 0xbc, 0x66, 0x45, 0x8b, 0xf8, 0x0c, 0x17, 0xc1, 0x31, 0x4c, 0xc4, 0x21, 0xcc, 0xfa, 0x02, 0x17, - 0xe1, 0x04, 0xec, 0xf9, 0x08, 0x0c, 0xd9, 0x56, 0x73, 0xdf, 0xb6, 0xe2, 0x28, 0xf1, 0x59, 0x26, - 0x01, 0x18, 0x04, 0x0b, 0xb8, 0x0c, 0x83, 0x71, 0x1d, 0xf1, 0xf9, 0xd7, 0x79, 0x7a, 0x70, 0x0f, - 0x5c, 0x85, 0x31, 0x5e, 0xa0, 0x1a, 0xb6, 0x15, 0x43, 0xc4, 0x1f, 0x30, 0x11, 0xa3, 0x01, 0x18, - 0x9b, 0x86, 0x8b, 0x1c, 0x77, 0x07, 0xc5, 0x11, 0xf2, 0x05, 0x3e, 0x0d, 0x06, 0x61, 0xa6, 0xbc, - 0x81, 0xac, 0xda, 0x6e, 0x3c, 0x09, 0x2f, 0x72, 0x53, 0x72, 0x0c, 0x16, 0x51, 0x84, 0x91, 0x96, - 0xd9, 0x71, 0x76, 0xcd, 0x66, 0x2c, 0x77, 0x7c, 0x91, 0xc9, 0x18, 0xf6, 0x40, 0xcc, 0x22, 0x7b, - 0xd6, 0x61, 0xc4, 0x7c, 0x89, 0x5b, 0x24, 0x00, 0x63, 0xa9, 0xe7, 0xb8, 0x64, 0x03, 0xea, 0x30, - 0xd2, 0xbe, 0xcc, 0x53, 0x8f, 0x62, 0x57, 0x83, 0x12, 0x2f, 0xc3, 0xa0, 0xd3, 0x78, 0x36, 0x96, - 0x98, 0x3f, 0xe4, 0x9e, 0x26, 0x00, 0x0c, 0xbe, 0x0e, 0x77, 0x86, 0x2e, 0x13, 0x31, 0x84, 0xfd, - 0x11, 0x13, 0x36, 0x19, 0xb2, 0x54, 0xb0, 0x92, 0x70, 0x58, 0x91, 0x7f, 0xcc, 0x4b, 0x02, 0x92, - 0x64, 0xad, 0xe3, 0x17, 0x05, 0xc7, 0xdc, 0x3e, 0x9c, 0xd5, 0xfe, 0x84, 0x5b, 0x8d, 0x62, 0x05, - 0xab, 0x6d, 0xc2, 0x24, 0x93, 0x78, 0x38, 0xbf, 0x7e, 0x85, 0x17, 0x56, 0x8a, 0xde, 0x12, 0xbd, - 0xfb, 0x3f, 0x60, 0xca, 0x33, 0x27, 0xef, 0x48, 0x9d, 0x6a, 0xcb, 0x6c, 0xc7, 0x90, 0xfc, 0x55, - 0x26, 0x99, 0x57, 0x7c, 0xaf, 0xa5, 0x75, 0x56, 0xcd, 0x36, 0x16, 0xfe, 0x38, 0xa4, 0xb9, 0xf0, - 0x3d, 0xab, 0x83, 0x6a, 0xf6, 0x8e, 0xd5, 0x78, 0x16, 0xd5, 0x63, 0x88, 0xfe, 0x53, 0xc9, 0x55, - 0x5b, 0x01, 0x38, 0x96, 0xbc, 0x0c, 0x9a, 0xd7, 0xab, 0x54, 0x1b, 0xad, 0xb6, 0xdd, 0x71, 0x23, - 0x24, 0xfe, 0x19, 0xf7, 0x94, 0x87, 0x5b, 0x26, 0xb0, 0x5c, 0x19, 0x46, 0xc9, 0xd7, 0xb8, 0x21, - 0xf9, 0x35, 0x26, 0x68, 0xc4, 0x47, 0xb1, 0xc2, 0x51, 0xb3, 0x5b, 0x6d, 0xb3, 0x13, 0xa7, 0xfe, - 0xfd, 0x39, 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, 0xbb, 0xdf, 0x46, 0x78, 0xb5, 0x8f, 0x21, 0xe1, - 0xeb, 0xbc, 0x70, 0x70, 0x0c, 0x13, 0xc1, 0x1b, 0x86, 0x18, 0x22, 0xfe, 0x82, 0x8b, 0xe0, 0x18, - 0x2c, 0xe2, 0xbd, 0xfe, 0x42, 0xdb, 0x41, 0x3b, 0x0d, 0xc7, 0xed, 0xd0, 0x3e, 0xf8, 0x60, 0x51, - 0xdf, 0x78, 0x5d, 0x6c, 0xc2, 0x8c, 0x00, 0x34, 0x77, 0x0d, 0xc6, 0xa4, 0x16, 0x43, 0x8f, 0xba, - 0xb3, 0x90, 0xfe, 0xdf, 0x6f, 0xb0, 0x62, 0x24, 0x76, 0x18, 0xb9, 0x15, 0xec, 0x77, 0xb1, 0x0f, - 0x88, 0x16, 0xf6, 0xa1, 0x37, 0x3c, 0xd7, 0x0b, 0x6d, 0x40, 0xee, 0x0a, 0x8c, 0x08, 0x3d, 0x40, - 0xb4, 0xa8, 0xff, 0xc3, 0x44, 0x0d, 0x07, 0x5b, 0x80, 0xdc, 0x12, 0x24, 0xf1, 0x7a, 0x1e, 0x0d, - 0xff, 0xbf, 0x0c, 0x4e, 0xd8, 0x73, 0x0f, 0x41, 0x8a, 0xaf, 0xe3, 0xd1, 0xd0, 0x0f, 0x33, 0xa8, - 0x07, 0xc1, 0x70, 0xbe, 0x86, 0x47, 0xc3, 0xff, 0x1f, 0x87, 0x73, 0x08, 0x86, 0xc7, 0x37, 0xe1, - 0x4b, 0xbf, 0x92, 0x64, 0x75, 0x98, 0xdb, 0xee, 0x32, 0x1c, 0x61, 0x8b, 0x77, 0x34, 0xfa, 0xa3, - 0xec, 0xe1, 0x1c, 0x91, 0xbb, 0x00, 0xfd, 0x31, 0x0d, 0xfe, 0xab, 0x0c, 0x4a, 0xf9, 0x73, 0x45, - 0x18, 0x0a, 0x2c, 0xd8, 0xd1, 0xf0, 0x5f, 0x63, 0xf0, 0x20, 0x0a, 0xab, 0xce, 0x16, 0xec, 0x68, - 0x01, 0xbf, 0xce, 0x55, 0x67, 0x08, 0x6c, 0x36, 0xbe, 0x56, 0x47, 0xa3, 0x7f, 0x83, 0x5b, 0x9d, - 0x43, 0x72, 0x8f, 0xc0, 0xa0, 0x57, 0x7f, 0xa3, 0xf1, 0xbf, 0xc9, 0xf0, 0x3e, 0x06, 0x5b, 0x20, - 0x50, 0xff, 0xa3, 0x45, 0xfc, 0x16, 0xb7, 0x40, 0x00, 0x85, 0xd3, 0x48, 0x5e, 0xd3, 0xa3, 0x25, - 0x7d, 0x8c, 0xa7, 0x91, 0xb4, 0xa4, 0x63, 0x6f, 0x92, 0x32, 0x18, 0x2d, 0xe2, 0xb7, 0xb9, 0x37, - 0x09, 0x3f, 0x56, 0x43, 0x5e, 0x24, 0xa3, 0x65, 0xfc, 0x2e, 0x57, 0x43, 0x5a, 0x23, 0x73, 0xeb, - 0xa0, 0x77, 0x2f, 0x90, 0xd1, 0xf2, 0x3e, 0xce, 0xe4, 0x8d, 0x77, 0xad, 0x8f, 0xb9, 0xc7, 0x60, - 0x32, 0x7c, 0x71, 0x8c, 0x96, 0xfa, 0x89, 0x37, 0xa4, 0xd7, 0x99, 0xe0, 0xda, 0x98, 0xdb, 0xf4, - 0xab, 0x6c, 0x70, 0x61, 0x8c, 0x16, 0xfb, 0xc9, 0x37, 0xc4, 0x42, 0x1b, 0x5c, 0x17, 0x73, 0x79, - 0x00, 0x7f, 0x4d, 0x8a, 0x96, 0xf5, 0x29, 0x26, 0x2b, 0x00, 0xc2, 0xa9, 0xc1, 0x96, 0xa4, 0x68, - 0xfc, 0xa7, 0x79, 0x6a, 0x30, 0x04, 0x4e, 0x0d, 0xbe, 0x1a, 0x45, 0xa3, 0x9f, 0xe7, 0xa9, 0xc1, - 0x21, 0xb9, 0xcb, 0x90, 0xb2, 0xf6, 0x9a, 0x4d, 0x1c, 0x5b, 0xfa, 0xc1, 0xd7, 0x88, 0xd2, 0xff, - 0xf2, 0x26, 0x03, 0x73, 0x40, 0x6e, 0x09, 0xfa, 0x51, 0xeb, 0x06, 0xaa, 0x47, 0x21, 0xff, 0xf5, - 0x4d, 0x5e, 0x4f, 0x30, 0x77, 0xee, 0x11, 0x00, 0xfa, 0x32, 0x4d, 0x4e, 0x89, 0x22, 0xb0, 0xff, - 0xf6, 0x26, 0xbb, 0xa1, 0xe0, 0x43, 0x7c, 0x01, 0xf4, 0xbe, 0xc3, 0xc1, 0x02, 0x5e, 0x17, 0x05, - 0x90, 0x17, 0xf0, 0x4b, 0x70, 0xe4, 0x09, 0xc7, 0xb6, 0x5c, 0x73, 0x27, 0x0a, 0xfd, 0xef, 0x0c, - 0xcd, 0xf9, 0xb1, 0xc1, 0x5a, 0x76, 0x07, 0xb9, 0xe6, 0x8e, 0x13, 0x85, 0xfd, 0x0f, 0x86, 0xf5, - 0x00, 0x18, 0x5c, 0x33, 0x1d, 0x37, 0xce, 0xbc, 0xff, 0x93, 0x83, 0x39, 0x00, 0x2b, 0x8d, 0x3f, - 0x3f, 0x89, 0xf6, 0xa3, 0xb0, 0x3f, 0xe4, 0x4a, 0x33, 0xfe, 0xdc, 0x43, 0x30, 0x88, 0x3f, 0xd2, - 0x5b, 0x3b, 0x11, 0xe0, 0x1f, 0x31, 0xb0, 0x8f, 0xc0, 0x4f, 0x76, 0xdc, 0xba, 0xdb, 0x88, 0x36, - 0xf6, 0x7f, 0x31, 0x4f, 0x73, 0xfe, 0x5c, 0x1e, 0x86, 0x1c, 0xb7, 0x5e, 0xdf, 0x63, 0x1d, 0x4d, - 0x04, 0xfc, 0xc7, 0x6f, 0x7a, 0x2f, 0xb9, 0x1e, 0xa6, 0x70, 0x32, 0x7c, 0xb3, 0x0e, 0xae, 0xda, - 0x57, 0x6d, 0xba, 0x4d, 0x07, 0x7f, 0xd7, 0x84, 0x4c, 0xcd, 0x6e, 0xdd, 0xb0, 0x9d, 0x33, 0x5e, - 0x21, 0x39, 0xe3, 0xee, 0x22, 0xbc, 0x7e, 0xb0, 0x6d, 0xb6, 0x24, 0xfe, 0x3c, 0x75, 0xb8, 0xbd, - 0x39, 0x72, 0xec, 0x5a, 0x69, 0x60, 0xf5, 0x2a, 0x64, 0xe7, 0x5b, 0x3f, 0x0e, 0x03, 0x44, 0xe1, - 0xb3, 0xe4, 0x74, 0x49, 0x29, 0x24, 0x6f, 0xbe, 0x32, 0xdd, 0x67, 0xb0, 0x31, 0x8f, 0xba, 0x40, - 0xb6, 0x26, 0x13, 0x02, 0x75, 0xc1, 0xa3, 0x9e, 0xa3, 0xbb, 0x93, 0x02, 0xf5, 0x9c, 0x47, 0x5d, - 0x24, 0xfb, 0x94, 0xaa, 0x40, 0x5d, 0xf4, 0xa8, 0x4b, 0x64, 0x2f, 0x7e, 0x44, 0xa0, 0x2e, 0x79, - 0xd4, 0xf3, 0x64, 0x07, 0x3e, 0x29, 0x50, 0xcf, 0x7b, 0xd4, 0x0b, 0x64, 0xf3, 0x7d, 0x5c, 0xa0, - 0x5e, 0xf0, 0xa8, 0x17, 0xc9, 0xa6, 0xbb, 0x2e, 0x50, 0x2f, 0x7a, 0xd4, 0x4b, 0xe4, 0x26, 0xc9, - 0x11, 0x81, 0x7a, 0x49, 0xcf, 0xc0, 0x11, 0x3a, 0xf3, 0x79, 0x72, 0x42, 0x3b, 0xc6, 0xc8, 0x7c, - 0xd0, 0xa7, 0x9f, 0x25, 0xb7, 0x46, 0x06, 0x44, 0xfa, 0x59, 0x9f, 0xbe, 0x40, 0xee, 0x4f, 0x6b, - 0x22, 0x7d, 0xc1, 0xa7, 0x9f, 0x4b, 0x8f, 0x90, 0x9b, 0x33, 0x02, 0xfd, 0x9c, 0x4f, 0x5f, 0x4c, - 0x8f, 0xe2, 0x98, 0x15, 0xe9, 0x8b, 0x3e, 0x7d, 0x29, 0x3d, 0x76, 0x42, 0x99, 0x19, 0x16, 0xe9, - 0x4b, 0xd9, 0x0f, 0x12, 0xf7, 0x5a, 0xbe, 0x7b, 0x27, 0x45, 0xf7, 0x7a, 0x8e, 0x9d, 0x14, 0x1d, - 0xeb, 0xb9, 0x74, 0x52, 0x74, 0xa9, 0xe7, 0xcc, 0x49, 0xd1, 0x99, 0x9e, 0x1b, 0x27, 0x45, 0x37, - 0x7a, 0x0e, 0x9c, 0x14, 0x1d, 0xe8, 0xb9, 0x6e, 0x52, 0x74, 0x9d, 0xe7, 0xb4, 0x49, 0xd1, 0x69, - 0x9e, 0xbb, 0x26, 0x45, 0x77, 0x79, 0x8e, 0x4a, 0x4b, 0x8e, 0xf2, 0x5d, 0x94, 0x96, 0x5c, 0xe4, - 0x3b, 0x27, 0x2d, 0x39, 0xc7, 0x77, 0x4b, 0x5a, 0x72, 0x8b, 0xef, 0x90, 0xb4, 0xe4, 0x10, 0xdf, - 0x15, 0x69, 0xc9, 0x15, 0xbe, 0x13, 0x58, 0x8e, 0x19, 0xa8, 0x1d, 0x92, 0x63, 0xea, 0x81, 0x39, - 0xa6, 0x1e, 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, - 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x98, 0x63, 0xea, 0xc1, 0x39, 0xa6, 0x46, 0xe4, 0x98, - 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0xda, 0x33, 0xc7, - 0x7c, 0xf7, 0x4e, 0x8a, 0xee, 0x0d, 0xcd, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, - 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, - 0xf6, 0xca, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c, - 0x53, 0x7b, 0xe6, 0x98, 0x1a, 0xcc, 0xb1, 0xbf, 0x54, 0x41, 0xa7, 0x39, 0xb6, 0x4e, 0xee, 0xf8, - 0x30, 0x57, 0x64, 0xa4, 0x4c, 0x1b, 0xc0, 0xae, 0xd3, 0x7c, 0x97, 0x64, 0xa4, 0x5c, 0x13, 0xe9, - 0x0b, 0x1e, 0x9d, 0x67, 0x9b, 0x48, 0x3f, 0xe7, 0xd1, 0x79, 0xbe, 0x89, 0xf4, 0x45, 0x8f, 0xce, - 0x33, 0x4e, 0xa4, 0x2f, 0x79, 0x74, 0x9e, 0x73, 0x22, 0xfd, 0xbc, 0x47, 0xe7, 0x59, 0x27, 0xd2, - 0x2f, 0x78, 0x74, 0x9e, 0x77, 0x22, 0xfd, 0xa2, 0x47, 0xe7, 0x99, 0x27, 0xd2, 0x2f, 0xe9, 0x27, - 0xe4, 0xdc, 0xe3, 0x0c, 0x9e, 0x6b, 0x4f, 0xc8, 0xd9, 0x27, 0x71, 0x9c, 0xf5, 0x39, 0x78, 0xfe, - 0x49, 0x1c, 0x0b, 0x3e, 0x07, 0xcf, 0x40, 0x89, 0xe3, 0x5c, 0xf6, 0x23, 0xc4, 0x7d, 0x96, 0xec, - 0xbe, 0x29, 0xc9, 0x7d, 0x89, 0x80, 0xeb, 0xa6, 0x24, 0xd7, 0x25, 0x02, 0x6e, 0x9b, 0x92, 0xdc, - 0x96, 0x08, 0xb8, 0x6c, 0x4a, 0x72, 0x59, 0x22, 0xe0, 0xae, 0x29, 0xc9, 0x5d, 0x89, 0x80, 0xab, - 0xa6, 0x24, 0x57, 0x25, 0x02, 0x6e, 0x9a, 0x92, 0xdc, 0x94, 0x08, 0xb8, 0x68, 0x4a, 0x72, 0x51, - 0x22, 0xe0, 0x9e, 0x29, 0xc9, 0x3d, 0x89, 0x80, 0x6b, 0x8e, 0xcb, 0xae, 0x49, 0x04, 0xdd, 0x72, - 0x5c, 0x76, 0x4b, 0x22, 0xe8, 0x92, 0xe3, 0xb2, 0x4b, 0x12, 0x41, 0x77, 0x1c, 0x97, 0xdd, 0x91, - 0x08, 0xba, 0xe2, 0x67, 0x09, 0xde, 0x11, 0x6e, 0xb8, 0x9d, 0xbd, 0x9a, 0x7b, 0x5b, 0x1d, 0xe1, - 0xbc, 0xd0, 0x3e, 0x0c, 0x2d, 0xe8, 0x73, 0xa4, 0x61, 0x0d, 0x76, 0x9c, 0xd2, 0x0a, 0x36, 0x2f, - 0x34, 0x16, 0x01, 0x84, 0x15, 0x8e, 0x58, 0xbc, 0xad, 0xde, 0x70, 0x5e, 0x68, 0x33, 0xa2, 0xf5, - 0xbb, 0xf8, 0x8e, 0x77, 0x6c, 0x2f, 0x25, 0x78, 0xc7, 0xc6, 0xcc, 0x7f, 0xd8, 0x8e, 0x6d, 0x36, - 0xda, 0xe4, 0x9e, 0xb1, 0x67, 0xa3, 0x8d, 0xdd, 0xb5, 0xea, 0xc4, 0xed, 0xe0, 0x66, 0xa3, 0x4d, - 0xeb, 0x19, 0xf5, 0xed, 0xed, 0xb7, 0x58, 0x04, 0x1b, 0xa8, 0x1d, 0x12, 0xc1, 0x87, 0xed, 0xb7, - 0xe6, 0x85, 0x52, 0x72, 0xd8, 0x08, 0x56, 0x0f, 0x1d, 0xc1, 0x87, 0xed, 0xbc, 0xe6, 0x85, 0xf2, - 0x72, 0xe8, 0x08, 0x7e, 0x07, 0xfa, 0x21, 0x16, 0xc1, 0xbe, 0xf9, 0x0f, 0xdb, 0x0f, 0xcd, 0x46, - 0x9b, 0x3c, 0x34, 0x82, 0xd5, 0x43, 0x44, 0x70, 0x9c, 0xfe, 0x68, 0x36, 0xda, 0xb4, 0xe1, 0x11, - 0x7c, 0xdb, 0xdd, 0xcc, 0x67, 0x14, 0x18, 0xaf, 0x34, 0xea, 0xe5, 0xd6, 0x0d, 0x54, 0xaf, 0xa3, - 0x3a, 0xb3, 0xe3, 0xbc, 0x50, 0x09, 0x7a, 0xb8, 0xfa, 0xe5, 0x57, 0xa6, 0x7d, 0x0b, 0x2f, 0x41, - 0x8a, 0xda, 0x74, 0x7e, 0x3e, 0x7d, 0x53, 0x89, 0xa8, 0x70, 0x1e, 0xab, 0x7e, 0x92, 0xc3, 0xce, - 0xce, 0xa7, 0xff, 0x41, 0x09, 0x54, 0x39, 0x6f, 0x38, 0xfb, 0x31, 0xa2, 0xa1, 0x75, 0xdb, 0x1a, - 0x9e, 0x89, 0xa5, 0x61, 0x40, 0xb7, 0xbb, 0xba, 0x74, 0x0b, 0x68, 0xb5, 0x07, 0x63, 0x95, 0x46, - 0xbd, 0x42, 0xfe, 0x72, 0x37, 0x8e, 0x4a, 0x94, 0x47, 0xaa, 0x07, 0xf3, 0x42, 0x58, 0x06, 0x11, - 0x5e, 0x48, 0x8b, 0x35, 0x22, 0xdb, 0xc0, 0x8f, 0xb5, 0x84, 0xc7, 0xce, 0xf6, 0x7a, 0xac, 0x5f, - 0xd9, 0xbd, 0x07, 0xce, 0xf6, 0x7a, 0xa0, 0x9f, 0x43, 0xde, 0xa3, 0x9e, 0xe1, 0x8b, 0x33, 0xbd, - 0x6c, 0xa3, 0x1f, 0x87, 0xc4, 0x32, 0xbd, 0x08, 0x3c, 0x5c, 0x18, 0xc6, 0x4a, 0x7d, 0xf7, 0x95, - 0xe9, 0xe4, 0xd6, 0x5e, 0xa3, 0x6e, 0x24, 0x96, 0xeb, 0xfa, 0x35, 0xe8, 0x7f, 0x1f, 0xfb, 0xfb, - 0x37, 0xcc, 0xb0, 0xc8, 0x18, 0x1e, 0xe8, 0xb9, 0x47, 0x84, 0x1f, 0x7c, 0x86, 0x6e, 0x23, 0xce, - 0x6d, 0x35, 0x2c, 0xf7, 0xec, 0xc2, 0x45, 0x83, 0x8a, 0xc8, 0xfe, 0x4f, 0x00, 0xfa, 0xcc, 0x92, - 0xe9, 0xec, 0xea, 0x15, 0x2e, 0x99, 0x3e, 0xfa, 0xe2, 0x77, 0x5f, 0x99, 0x5e, 0x8c, 0x23, 0xf5, - 0xc1, 0xba, 0xe9, 0xec, 0x3e, 0xe8, 0xee, 0xb7, 0xd1, 0x5c, 0x61, 0xdf, 0x45, 0x0e, 0x97, 0xde, - 0xe6, 0xab, 0x1e, 0x9b, 0x57, 0x3a, 0x30, 0xaf, 0x94, 0x30, 0xa7, 0x2b, 0xe2, 0x9c, 0xe6, 0xdf, - 0xea, 0x7c, 0x9e, 0xe1, 0x8b, 0x84, 0x64, 0x49, 0x35, 0xca, 0x92, 0xea, 0xed, 0x5a, 0xb2, 0xcd, - 0xeb, 0xa3, 0x34, 0x57, 0xf5, 0xa0, 0xb9, 0xaa, 0xb7, 0x33, 0xd7, 0x9f, 0xd0, 0x6c, 0xf5, 0xf2, - 0x69, 0xcb, 0xa2, 0x97, 0x10, 0x7f, 0xb9, 0xf6, 0x82, 0xde, 0xd6, 0x2e, 0x20, 0x97, 0xbc, 0xf9, - 0xc2, 0xb4, 0x92, 0xfd, 0x4c, 0x82, 0xcf, 0x9c, 0x26, 0xd2, 0x5b, 0x9b, 0xf9, 0x2f, 0x4b, 0x4f, - 0xf5, 0x4e, 0x58, 0xe8, 0x79, 0x05, 0x26, 0xbb, 0x2a, 0x39, 0x35, 0xd3, 0xdb, 0x5b, 0xce, 0xad, - 0xc3, 0x96, 0x73, 0xa6, 0xe0, 0xd7, 0x14, 0x38, 0x2a, 0x95, 0x57, 0xaa, 0xde, 0x19, 0x49, 0xbd, - 0x63, 0xdd, 0x4f, 0x22, 0x8c, 0x01, 0xed, 0x82, 0xee, 0x95, 0x00, 0x01, 0xc9, 0x9e, 0xdf, 0x17, - 0x25, 0xbf, 0x1f, 0xf7, 0x00, 0x21, 0xe6, 0xe2, 0x11, 0xc0, 0xd4, 0xb6, 0x21, 0xb9, 0xd9, 0x41, - 0x48, 0xcf, 0x40, 0x62, 0xad, 0xc3, 0x34, 0x1c, 0xa5, 0xf8, 0xb5, 0x4e, 0xa1, 0x63, 0x5a, 0xb5, - 0x5d, 0x23, 0xb1, 0xd6, 0xd1, 0x4f, 0x82, 0x9a, 0x67, 0xbf, 0x30, 0x30, 0xb4, 0x30, 0x46, 0x19, - 0xf2, 0x56, 0x9d, 0x71, 0x60, 0x9a, 0x9e, 0x81, 0xe4, 0x0a, 0x32, 0xb7, 0x99, 0x12, 0x40, 0x79, - 0xf0, 0x88, 0x41, 0xc6, 0xd9, 0x03, 0x1f, 0x87, 0x14, 0x17, 0xac, 0x9f, 0xc2, 0x88, 0x6d, 0x97, - 0x3d, 0x96, 0x21, 0xb0, 0x3a, 0x6c, 0xe5, 0x22, 0x54, 0xfd, 0x34, 0xf4, 0x1b, 0x8d, 0x9d, 0x5d, - 0x97, 0x3d, 0xbc, 0x9b, 0x8d, 0x92, 0xb3, 0xd7, 0x61, 0xd0, 0xd3, 0xe8, 0x6d, 0x16, 0x5d, 0xa2, - 0x53, 0xd3, 0xa7, 0x82, 0xeb, 0x09, 0xdf, 0xb7, 0xa4, 0x43, 0xfa, 0x09, 0x48, 0x6d, 0xb8, 0x1d, - 0xbf, 0xe8, 0xf3, 0x8e, 0xd4, 0x1b, 0xcd, 0x7e, 0x50, 0x81, 0x54, 0x09, 0xa1, 0x36, 0x31, 0xf8, - 0xbd, 0x90, 0x2c, 0xd9, 0x4f, 0x5b, 0x4c, 0xc1, 0x71, 0x66, 0x51, 0x4c, 0x66, 0x36, 0x25, 0x64, - 0xfd, 0xde, 0xa0, 0xdd, 0x27, 0x3c, 0xbb, 0x07, 0xf8, 0x88, 0xed, 0xb3, 0x82, 0xed, 0x99, 0x03, - 0x31, 0x53, 0x97, 0xfd, 0x2f, 0xc0, 0x50, 0xe0, 0x29, 0xfa, 0x0c, 0x53, 0x23, 0x21, 0x03, 0x83, - 0xb6, 0xc2, 0x1c, 0x59, 0x04, 0x23, 0xc2, 0x83, 0x31, 0x34, 0x60, 0xe2, 0x1e, 0x50, 0x62, 0xe6, - 0x59, 0xd1, 0xcc, 0xe1, 0xac, 0xcc, 0xd4, 0xf3, 0xd4, 0x46, 0xc4, 0xdc, 0xa7, 0x68, 0x70, 0xf6, - 0x76, 0x22, 0xfe, 0x9c, 0xed, 0x07, 0xb5, 0xd2, 0x68, 0x66, 0x1f, 0x02, 0xa0, 0x29, 0x5f, 0xb6, - 0xf6, 0x5a, 0x52, 0xd6, 0x8d, 0x72, 0x03, 0x6f, 0xee, 0xa2, 0x4d, 0xe4, 0x10, 0x16, 0xb1, 0x9f, - 0xc2, 0x05, 0x06, 0x68, 0x8a, 0x11, 0xfc, 0xfd, 0x91, 0xf8, 0xd0, 0x4e, 0x0c, 0xb3, 0xa6, 0x29, - 0xeb, 0x75, 0xe4, 0xe6, 0x2d, 0xdb, 0xdd, 0x45, 0x1d, 0x09, 0xb1, 0xa0, 0x9f, 0x13, 0x12, 0x76, - 0x74, 0xe1, 0x2e, 0x0f, 0xd1, 0x13, 0x74, 0x2e, 0xfb, 0x15, 0xa2, 0x20, 0x6e, 0x05, 0xba, 0x26, - 0xa8, 0xc6, 0x98, 0xa0, 0x7e, 0x5e, 0xe8, 0xdf, 0x0e, 0x50, 0x53, 0x7a, 0xb5, 0xbc, 0x24, 0xbc, - 0xe7, 0x1c, 0xac, 0xac, 0xf8, 0x8e, 0xc9, 0x6d, 0xca, 0x55, 0xbe, 0x3f, 0x52, 0xe5, 0x1e, 0xdd, - 0xed, 0x61, 0x6d, 0xaa, 0xc6, 0xb5, 0xe9, 0x37, 0xbd, 0x8e, 0x83, 0xfe, 0x56, 0x03, 0xf9, 0x69, - 0x10, 0xfd, 0x81, 0x48, 0xdf, 0xe7, 0x94, 0xa2, 0xa7, 0xea, 0x62, 0x5c, 0xf7, 0xe7, 0x12, 0x85, - 0x82, 0xa7, 0xee, 0x85, 0x43, 0x84, 0x40, 0x2e, 0x51, 0x2c, 0x7a, 0x65, 0x3b, 0xf5, 0x91, 0x17, - 0xa6, 0x95, 0x17, 0x5f, 0x98, 0xee, 0xcb, 0x7e, 0x51, 0x81, 0x71, 0xc6, 0x19, 0x08, 0xdc, 0x07, - 0x25, 0xe5, 0xef, 0xe0, 0x35, 0x23, 0xcc, 0x02, 0x3f, 0xb7, 0xe0, 0xfd, 0xb6, 0x02, 0xe9, 0x2e, - 0x5d, 0xb9, 0xbd, 0xe7, 0x63, 0xa9, 0x9c, 0x53, 0xca, 0xbf, 0x78, 0x9b, 0x5f, 0x87, 0xfe, 0xcd, - 0x46, 0x0b, 0x75, 0xf0, 0x4a, 0x80, 0x3f, 0x50, 0x95, 0xf9, 0x61, 0x0e, 0x1d, 0xe2, 0x34, 0xaa, - 0x9c, 0x40, 0x5b, 0xd0, 0xd3, 0x90, 0x2c, 0x99, 0xae, 0x49, 0x34, 0x18, 0xf6, 0xea, 0xab, 0xe9, - 0x9a, 0xd9, 0x73, 0x30, 0xbc, 0xba, 0x4f, 0x6e, 0xca, 0xd4, 0xc9, 0x2d, 0x10, 0xb1, 0xfb, 0xe3, - 0xfd, 0xea, 0xd9, 0xd9, 0xfe, 0x54, 0x5d, 0xbb, 0xa9, 0xe4, 0x92, 0x44, 0x9f, 0xa7, 0x60, 0x74, - 0x0d, 0xab, 0x4d, 0x70, 0x02, 0x8c, 0x3e, 0x5d, 0xf5, 0x26, 0x2f, 0x35, 0x65, 0xaa, 0xdf, 0x94, - 0x9d, 0x00, 0x65, 0x55, 0x6c, 0x9d, 0x82, 0x7a, 0x18, 0xca, 0xea, 0x6c, 0x32, 0x35, 0xaa, 0x8d, - 0xcf, 0x26, 0x53, 0xa0, 0x8d, 0xb0, 0xe7, 0xfe, 0xad, 0x0a, 0x1a, 0x6d, 0x75, 0x4a, 0x68, 0xbb, - 0x61, 0x35, 0xdc, 0xee, 0x7e, 0xd5, 0xd3, 0x58, 0x7f, 0x04, 0x06, 0xb1, 0x49, 0xaf, 0xb0, 0x5f, - 0xd8, 0xc2, 0xa6, 0x3f, 0xc9, 0x5a, 0x14, 0x49, 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0x2b, - 0xa0, 0x56, 0x2a, 0xab, 0x6c, 0x71, 0x5b, 0x3c, 0x10, 0xca, 0x2e, 0xda, 0xb0, 0x6f, 0x6c, 0xcc, - 0xd9, 0x31, 0xb0, 0x00, 0x7d, 0x11, 0x12, 0x95, 0x55, 0xd6, 0xf0, 0x9e, 0x8a, 0x23, 0xc6, 0x48, - 0x54, 0x56, 0xa7, 0xfe, 0x4a, 0x81, 0x11, 0x61, 0x54, 0xcf, 0xc2, 0x30, 0x1d, 0x08, 0x4c, 0x77, - 0xc0, 0x10, 0xc6, 0xb8, 0xce, 0x89, 0xdb, 0xd4, 0x79, 0x2a, 0x0f, 0x63, 0xd2, 0xb8, 0x3e, 0x07, - 0x7a, 0x70, 0x88, 0x29, 0x41, 0x7f, 0x9d, 0x28, 0x84, 0x92, 0xbd, 0x1b, 0xc0, 0xb7, 0xab, 0xf7, - 0xa3, 0x3a, 0x95, 0xf2, 0xc6, 0x66, 0xb9, 0xa4, 0x29, 0xd9, 0xaf, 0x2b, 0x30, 0xc4, 0xda, 0xd6, - 0x9a, 0xdd, 0x46, 0x7a, 0x01, 0x94, 0x3c, 0x8b, 0x87, 0xb7, 0xa6, 0xb7, 0x92, 0xd7, 0xcf, 0x80, - 0x52, 0x88, 0xef, 0x6a, 0xa5, 0xa0, 0x2f, 0x80, 0x52, 0x64, 0x0e, 0x8e, 0xe7, 0x19, 0xa5, 0x98, - 0xfd, 0x91, 0x0a, 0x13, 0xc1, 0x36, 0x9a, 0xd7, 0x93, 0x93, 0xe2, 0x7b, 0x53, 0x6e, 0xf0, 0xec, - 0xc2, 0xb9, 0xc5, 0x39, 0xfc, 0x8f, 0x17, 0x92, 0x27, 0xc5, 0x57, 0xa8, 0x6e, 0x96, 0xae, 0x6b, - 0x22, 0xb9, 0x64, 0x80, 0xda, 0x75, 0x4d, 0x44, 0xa0, 0x76, 0x5d, 0x13, 0x11, 0xa8, 0x5d, 0xd7, - 0x44, 0x04, 0x6a, 0xd7, 0x51, 0x80, 0x40, 0xed, 0xba, 0x26, 0x22, 0x50, 0xbb, 0xae, 0x89, 0x08, - 0xd4, 0xee, 0x6b, 0x22, 0x8c, 0xdc, 0xf3, 0x9a, 0x88, 0x48, 0xef, 0xbe, 0x26, 0x22, 0xd2, 0xbb, - 0xaf, 0x89, 0xe4, 0x92, 0x6e, 0x67, 0x0f, 0xf5, 0x3e, 0x74, 0x10, 0xf1, 0x07, 0xbd, 0x03, 0xfa, - 0x05, 0x78, 0x0d, 0xc6, 0xe8, 0x7e, 0x44, 0xd1, 0xb6, 0x5c, 0xb3, 0x61, 0xa1, 0x8e, 0xfe, 0x6e, - 0x18, 0xa6, 0x43, 0xf4, 0x2d, 0x27, 0xec, 0x2d, 0x90, 0xd2, 0x59, 0xb9, 0x15, 0xb8, 0xb3, 0x3f, - 0x4b, 0xc2, 0x24, 0x1d, 0xa8, 0x98, 0x2d, 0x24, 0x5c, 0x32, 0x3a, 0x2d, 0x1d, 0x29, 0x8d, 0x62, - 0xf8, 0xad, 0x57, 0xa6, 0xe9, 0x68, 0xde, 0x0b, 0xa6, 0xd3, 0xd2, 0xe1, 0x92, 0xc8, 0xe7, 0xaf, - 0x3f, 0xa7, 0xa5, 0x8b, 0x47, 0x22, 0x9f, 0xb7, 0xdc, 0x78, 0x7c, 0xfc, 0x0a, 0x92, 0xc8, 0x57, - 0xf2, 0xa2, 0xec, 0xb4, 0x74, 0x19, 0x49, 0xe4, 0x2b, 0x7b, 0xf1, 0x76, 0x5a, 0x3a, 0x7a, 0x12, - 0xf9, 0xae, 0x78, 0x91, 0x77, 0x5a, 0x3a, 0x84, 0x12, 0xf9, 0xae, 0x7a, 0x31, 0x78, 0x5a, 0xba, - 0xaa, 0x24, 0xf2, 0x3d, 0xea, 0x45, 0xe3, 0x69, 0xe9, 0xd2, 0x92, 0xc8, 0xb7, 0xec, 0xc5, 0xe5, - 0x8c, 0x7c, 0x7d, 0x49, 0x64, 0xbc, 0xe6, 0x47, 0xe8, 0x8c, 0x7c, 0x91, 0x49, 0xe4, 0x7c, 0x8f, - 0x1f, 0xab, 0x33, 0xf2, 0x95, 0x26, 0x91, 0x73, 0xc5, 0x8f, 0xda, 0x19, 0xf9, 0xa8, 0x4c, 0xe4, - 0x5c, 0xf5, 0xe3, 0x77, 0x46, 0x3e, 0x34, 0x13, 0x39, 0x2b, 0x7e, 0x24, 0xcf, 0xc8, 0xc7, 0x67, - 0x22, 0xe7, 0x9a, 0xbf, 0x87, 0xfe, 0x2d, 0x29, 0xfc, 0x02, 0x97, 0xa0, 0xb2, 0x52, 0xf8, 0x41, - 0x48, 0xe8, 0x65, 0xa5, 0xd0, 0x83, 0x90, 0xb0, 0xcb, 0x4a, 0x61, 0x07, 0x21, 0x21, 0x97, 0x95, - 0x42, 0x0e, 0x42, 0xc2, 0x2d, 0x2b, 0x85, 0x1b, 0x84, 0x84, 0x5a, 0x56, 0x0a, 0x35, 0x08, 0x09, - 0xb3, 0xac, 0x14, 0x66, 0x10, 0x12, 0x62, 0x59, 0x29, 0xc4, 0x20, 0x24, 0xbc, 0xb2, 0x52, 0x78, - 0x41, 0x48, 0x68, 0x9d, 0x92, 0x43, 0x0b, 0xc2, 0xc2, 0xea, 0x94, 0x1c, 0x56, 0x10, 0x16, 0x52, - 0xf7, 0xc8, 0x21, 0x35, 0x78, 0xeb, 0x95, 0xe9, 0x7e, 0x3c, 0x14, 0x88, 0xa6, 0x53, 0x72, 0x34, - 0x41, 0x58, 0x24, 0x9d, 0x92, 0x23, 0x09, 0xc2, 0xa2, 0xe8, 0x94, 0x1c, 0x45, 0x10, 0x16, 0x41, - 0x2f, 0xc9, 0x11, 0xe4, 0x5f, 0xf1, 0xc9, 0x4a, 0x27, 0x8a, 0x51, 0x11, 0xa4, 0xc6, 0x88, 0x20, - 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, - 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x38, 0x11, 0xa4, 0xc6, 0x8a, 0x20, 0xb5, 0x57, 0x04, 0x9d, 0x92, - 0x2f, 0x3c, 0x40, 0x58, 0x41, 0x3a, 0x25, 0x9f, 0x7c, 0x46, 0x87, 0x90, 0x1a, 0x2b, 0x84, 0xd4, - 0x5e, 0x21, 0xf4, 0x2d, 0x15, 0x26, 0x84, 0x10, 0x62, 0xc7, 0x43, 0x6f, 0x57, 0x05, 0x3a, 0x1f, - 0xe3, 0x7e, 0x45, 0x58, 0x4c, 0x9d, 0x8f, 0x71, 0x46, 0x7d, 0x50, 0x9c, 0x75, 0x57, 0xa1, 0x72, - 0x8c, 0x2a, 0x74, 0xc5, 0x8b, 0xa1, 0xf3, 0x31, 0xee, 0x5d, 0x74, 0xc7, 0xde, 0xc5, 0x83, 0x8a, - 0xc0, 0xa3, 0xb1, 0x8a, 0xc0, 0x72, 0xac, 0x22, 0x70, 0xcd, 0xf7, 0xe0, 0x87, 0x13, 0x70, 0xd4, - 0xf7, 0x20, 0xfd, 0x44, 0x7e, 0x09, 0x29, 0x1b, 0x38, 0xa1, 0xd2, 0xf9, 0xa9, 0x4d, 0xc0, 0x8d, - 0x89, 0xe5, 0xba, 0xbe, 0x2e, 0x9e, 0x55, 0xe5, 0x0e, 0x7b, 0x7e, 0x13, 0xf0, 0x38, 0xdb, 0x0b, - 0x3d, 0x05, 0xea, 0x72, 0xdd, 0x21, 0xd5, 0x22, 0xec, 0xb1, 0x45, 0x03, 0x93, 0x75, 0x03, 0x06, - 0x08, 0xbb, 0x43, 0xdc, 0x7b, 0x3b, 0x0f, 0x2e, 0x19, 0x4c, 0x52, 0xf6, 0x25, 0x05, 0x4e, 0x08, - 0xa1, 0xfc, 0xf6, 0x9c, 0x18, 0x5c, 0x8e, 0x75, 0x62, 0x20, 0x24, 0x88, 0x7f, 0x7a, 0x70, 0x5f, - 0xf7, 0x41, 0x75, 0x30, 0x4b, 0xe4, 0x93, 0x84, 0xff, 0x05, 0xa3, 0xfe, 0x0c, 0xc8, 0x2b, 0xdb, - 0x52, 0xf4, 0x66, 0x66, 0x58, 0x6a, 0x2e, 0x49, 0x9b, 0x68, 0x07, 0xc2, 0xbc, 0x6c, 0xcd, 0xe6, - 0x60, 0xac, 0x22, 0xfe, 0xc9, 0x4e, 0xd4, 0x5e, 0x44, 0x0a, 0xb7, 0xe6, 0x37, 0x3f, 0x3b, 0xdd, - 0x97, 0x7d, 0x00, 0x86, 0x83, 0x7f, 0x95, 0x23, 0x01, 0x07, 0x39, 0x30, 0x97, 0x7c, 0x19, 0x73, - 0xff, 0x8e, 0x02, 0x77, 0x04, 0xd9, 0x1f, 0x6b, 0xb8, 0xbb, 0xcb, 0x16, 0xee, 0xe9, 0x1f, 0x82, - 0x14, 0x62, 0x8e, 0x63, 0x3f, 0x6a, 0xc2, 0x5e, 0x23, 0x43, 0xd9, 0xe7, 0xc8, 0xbf, 0x86, 0x07, - 0x91, 0x36, 0x41, 0xf8, 0x63, 0x17, 0xa6, 0xee, 0x85, 0x7e, 0x2a, 0x5f, 0xd4, 0x6b, 0x44, 0xd2, - 0xeb, 0xf3, 0x21, 0x7a, 0x91, 0x38, 0xd2, 0xaf, 0x09, 0x7a, 0x05, 0xde, 0x56, 0x43, 0xd9, 0xe7, - 0x78, 0xf0, 0x15, 0x52, 0xb8, 0xff, 0x23, 0x11, 0x15, 0xad, 0xe4, 0x0c, 0xa4, 0xca, 0x32, 0x4f, - 0xb8, 0x9e, 0x25, 0x48, 0x56, 0xec, 0x3a, 0xf9, 0xb9, 0x15, 0xf2, 0xb3, 0xb8, 0xcc, 0xc8, 0xec, - 0x37, 0x72, 0x4f, 0x43, 0xaa, 0xb8, 0xdb, 0x68, 0xd6, 0x3b, 0xc8, 0x62, 0x47, 0xf6, 0x6c, 0x07, - 0x1d, 0x63, 0x0c, 0x8f, 0x96, 0x2d, 0xc2, 0x78, 0xc5, 0xb6, 0x0a, 0xfb, 0x6e, 0xb0, 0x6e, 0xcc, - 0x49, 0x29, 0xc2, 0x8e, 0x7c, 0xc8, 0xdf, 0x79, 0x60, 0x86, 0x42, 0xff, 0x77, 0x5f, 0x99, 0x56, - 0x36, 0xbd, 0xed, 0xf3, 0x55, 0x38, 0xc6, 0xd2, 0xa7, 0x4b, 0xd4, 0x42, 0x94, 0xa8, 0x41, 0x76, - 0x4c, 0x1d, 0x10, 0xb7, 0x8c, 0xc5, 0x59, 0xa1, 0xe2, 0xde, 0x9a, 0x66, 0xb8, 0x29, 0x3a, 0x50, - 0x33, 0xf5, 0x50, 0x9a, 0x85, 0x8a, 0x9b, 0x8b, 0x12, 0x27, 0x69, 0x76, 0x0f, 0x0c, 0x7a, 0xb4, - 0x40, 0x34, 0x04, 0x33, 0x65, 0x61, 0x36, 0x0b, 0x43, 0x81, 0x84, 0xd5, 0xfb, 0x41, 0xc9, 0x6b, - 0x7d, 0xf8, 0xbf, 0x82, 0xa6, 0xe0, 0xff, 0x8a, 0x5a, 0x62, 0xf6, 0x5e, 0x18, 0x93, 0xb6, 0x2f, - 0x31, 0xa5, 0xa4, 0x01, 0xfe, 0xaf, 0xac, 0x0d, 0x4d, 0x25, 0x3f, 0xf2, 0xfb, 0x99, 0xbe, 0xd9, - 0xcb, 0xa0, 0x77, 0x6f, 0x74, 0xea, 0x03, 0x90, 0xc8, 0x63, 0x91, 0xc7, 0x20, 0x51, 0x28, 0x68, - 0xca, 0xd4, 0xd8, 0xff, 0xff, 0xf4, 0x89, 0xa1, 0x02, 0xf9, 0x93, 0xe3, 0xeb, 0xc8, 0x2d, 0x14, - 0x18, 0xf8, 0x61, 0xb8, 0x23, 0x74, 0xa3, 0x14, 0xe3, 0x8b, 0x45, 0x8a, 0x2f, 0x95, 0xba, 0xf0, - 0xa5, 0x12, 0xc1, 0x2b, 0x39, 0x7e, 0xe0, 0x9c, 0xd7, 0x43, 0x36, 0x19, 0xd3, 0xf5, 0xc0, 0x01, - 0x77, 0x3e, 0xf7, 0x30, 0xe3, 0x2d, 0x84, 0xf2, 0xa2, 0x88, 0x03, 0xeb, 0x42, 0xae, 0xc8, 0xf0, - 0xc5, 0x50, 0xfc, 0xb6, 0x74, 0xaa, 0x2a, 0xae, 0x10, 0x4c, 0x48, 0xd1, 0x53, 0xb8, 0x14, 0x2a, - 0x64, 0x37, 0x70, 0xd7, 0xbd, 0xe4, 0x29, 0x5c, 0x0e, 0xe5, 0x6d, 0x44, 0xdc, 0xf9, 0x2a, 0xe7, - 0xce, 0xb0, 0x45, 0x3e, 0x7f, 0x56, 0xbf, 0x83, 0xe7, 0xa8, 0x50, 0x81, 0x99, 0x81, 0x38, 0x57, - 0xae, 0xc8, 0x00, 0x85, 0x9e, 0x80, 0xde, 0x56, 0xe2, 0xc8, 0xdc, 0xa3, 0x4c, 0x48, 0xb1, 0xa7, - 0x90, 0x08, 0x53, 0x71, 0x78, 0x61, 0xf3, 0xe6, 0xab, 0x99, 0xbe, 0x97, 0x5f, 0xcd, 0xf4, 0xfd, - 0xe3, 0xab, 0x99, 0xbe, 0xef, 0xbd, 0x9a, 0x51, 0x7e, 0xf0, 0x6a, 0x46, 0xf9, 0xe1, 0xab, 0x19, - 0xe5, 0xa7, 0xaf, 0x66, 0x94, 0xe7, 0x6e, 0x65, 0x94, 0x17, 0x6f, 0x65, 0x94, 0xaf, 0xdc, 0xca, - 0x28, 0xdf, 0xb8, 0x95, 0x51, 0x5e, 0xba, 0x95, 0x51, 0x6e, 0xde, 0xca, 0x28, 0x2f, 0xdf, 0xca, - 0xf4, 0x7d, 0xef, 0x56, 0x46, 0xf9, 0xc1, 0xad, 0x4c, 0xdf, 0x0f, 0x6f, 0x65, 0x94, 0x9f, 0xde, - 0xca, 0xf4, 0x3d, 0xf7, 0x5a, 0xa6, 0xef, 0x85, 0xd7, 0x32, 0x7d, 0x2f, 0xbe, 0x96, 0x51, 0xfe, - 0x3b, 0x00, 0x00, 0xff, 0xff, 0xfa, 0x27, 0x61, 0xe8, 0xaa, 0x64, 0x00, 0x00, + 0x79, 0x2f, 0x67, 0x67, 0x49, 0x2d, 0x3f, 0xbe, 0x86, 0x43, 0x89, 0x5a, 0xd3, 0xf2, 0x52, 0x5a, + 0xcb, 0x32, 0xcd, 0xd8, 0x14, 0x45, 0x51, 0xaf, 0x55, 0x6c, 0xdf, 0x7d, 0x49, 0xa6, 0x42, 0x2e, + 0x99, 0x21, 0x19, 0x5b, 0xc9, 0xbd, 0x58, 0x8c, 0x76, 0x0f, 0xc9, 0xb5, 0x77, 0x67, 0x36, 0x3b, + 0x43, 0xdb, 0x34, 0x2e, 0x2e, 0x7c, 0x93, 0x7b, 0x73, 0x93, 0x7b, 0x71, 0xfb, 0x4a, 0x8b, 0x3c, + 0x9a, 0x38, 0x4e, 0x8b, 0x34, 0x4e, 0xfa, 0x4a, 0x9a, 0x34, 0x4d, 0x83, 0xa2, 0xf1, 0x3f, 0x69, + 0x55, 0xa0, 0x28, 0x9c, 0xfe, 0x55, 0x04, 0x85, 0x11, 0xcb, 0x01, 0x9a, 0xb6, 0x6e, 0x93, 0xa6, + 0x06, 0x1a, 0xc0, 0xf9, 0xa3, 0x38, 0xaf, 0x99, 0x39, 0x67, 0x67, 0x39, 0x43, 0xcb, 0x76, 0xf2, + 0x8f, 0xb4, 0x7b, 0xbe, 0xef, 0xf7, 0xcd, 0x77, 0xbe, 0xd7, 0xf9, 0xe6, 0x9c, 0xc3, 0x85, 0x1f, + 0x5d, 0x82, 0xe3, 0xdb, 0xb6, 0xbd, 0xdd, 0x44, 0xa7, 0xdb, 0x1d, 0xdb, 0xb5, 0x6f, 0xec, 0x6e, + 0x9d, 0xae, 0x23, 0xa7, 0xd6, 0x69, 0xb4, 0x5d, 0xbb, 0x33, 0x47, 0xc6, 0xf4, 0x31, 0xca, 0x31, + 0xc7, 0x39, 0xb2, 0x2b, 0x30, 0x7e, 0xa5, 0xd1, 0x44, 0x25, 0x8f, 0x71, 0x1d, 0xb9, 0xfa, 0x45, + 0x48, 0x6e, 0x35, 0x9a, 0x28, 0xad, 0x1c, 0x57, 0x67, 0x86, 0x16, 0x4e, 0xce, 0x49, 0xa0, 0x39, + 0x11, 0xb1, 0x86, 0x87, 0x0d, 0x82, 0xc8, 0xfe, 0x20, 0x09, 0x13, 0x21, 0x54, 0x5d, 0x87, 0xa4, + 0x65, 0xb6, 0xb0, 0x44, 0x65, 0x66, 0xd0, 0x20, 0x9f, 0xf5, 0x34, 0x1c, 0x6a, 0x9b, 0xb5, 0x27, + 0xcc, 0x6d, 0x94, 0x4e, 0x90, 0x61, 0xfe, 0x55, 0xcf, 0x00, 0xd4, 0x51, 0x1b, 0x59, 0x75, 0x64, + 0xd5, 0xf6, 0xd2, 0xea, 0x71, 0x75, 0x66, 0xd0, 0x08, 0x8c, 0xe8, 0xef, 0x82, 0xf1, 0xf6, 0xee, + 0x8d, 0x66, 0xa3, 0x56, 0x0d, 0xb0, 0xc1, 0x71, 0x75, 0xa6, 0xdf, 0xd0, 0x28, 0xa1, 0xe4, 0x33, + 0xdf, 0x0b, 0x63, 0x4f, 0x21, 0xf3, 0x89, 0x20, 0xeb, 0x10, 0x61, 0x1d, 0xc5, 0xc3, 0x01, 0xc6, + 0x22, 0x0c, 0xb7, 0x90, 0xe3, 0x98, 0xdb, 0xa8, 0xea, 0xee, 0xb5, 0x51, 0x3a, 0x49, 0x66, 0x7f, + 0xbc, 0x6b, 0xf6, 0xf2, 0xcc, 0x87, 0x18, 0x6a, 0x63, 0xaf, 0x8d, 0xf4, 0x3c, 0x0c, 0x22, 0x6b, + 0xb7, 0x45, 0x25, 0xf4, 0xf7, 0xb0, 0x5f, 0xd9, 0xda, 0x6d, 0xc9, 0x52, 0x52, 0x18, 0xc6, 0x44, + 0x1c, 0x72, 0x50, 0xe7, 0xc9, 0x46, 0x0d, 0xa5, 0x07, 0x88, 0x80, 0x7b, 0xbb, 0x04, 0xac, 0x53, + 0xba, 0x2c, 0x83, 0xe3, 0xf4, 0x22, 0x0c, 0xa2, 0xa7, 0x5d, 0x64, 0x39, 0x0d, 0xdb, 0x4a, 0x1f, + 0x22, 0x42, 0xee, 0x09, 0xf1, 0x22, 0x6a, 0xd6, 0x65, 0x11, 0x3e, 0x4e, 0x3f, 0x0f, 0x87, 0xec, + 0xb6, 0xdb, 0xb0, 0x2d, 0x27, 0x9d, 0x3a, 0xae, 0xcc, 0x0c, 0x2d, 0x1c, 0x0b, 0x0d, 0x84, 0x55, + 0xca, 0x63, 0x70, 0x66, 0x7d, 0x09, 0x34, 0xc7, 0xde, 0xed, 0xd4, 0x50, 0xb5, 0x66, 0xd7, 0x51, + 0xb5, 0x61, 0x6d, 0xd9, 0xe9, 0x41, 0x22, 0x60, 0xba, 0x7b, 0x22, 0x84, 0xb1, 0x68, 0xd7, 0xd1, + 0x92, 0xb5, 0x65, 0x1b, 0xa3, 0x8e, 0xf0, 0x5d, 0x9f, 0x84, 0x01, 0x67, 0xcf, 0x72, 0xcd, 0xa7, + 0xd3, 0xc3, 0x24, 0x42, 0xd8, 0xb7, 0xec, 0x9f, 0x0e, 0xc0, 0x58, 0x9c, 0x10, 0xbb, 0x0c, 0xfd, + 0x5b, 0x78, 0x96, 0xe9, 0xc4, 0x41, 0x6c, 0x40, 0x31, 0xa2, 0x11, 0x07, 0xde, 0xa4, 0x11, 0xf3, + 0x30, 0x64, 0x21, 0xc7, 0x45, 0x75, 0x1a, 0x11, 0x6a, 0xcc, 0x98, 0x02, 0x0a, 0xea, 0x0e, 0xa9, + 0xe4, 0x9b, 0x0a, 0xa9, 0xc7, 0x60, 0xcc, 0x53, 0xa9, 0xda, 0x31, 0xad, 0x6d, 0x1e, 0x9b, 0xa7, + 0xa3, 0x34, 0x99, 0x2b, 0x73, 0x9c, 0x81, 0x61, 0xc6, 0x28, 0x12, 0xbe, 0xeb, 0x25, 0x00, 0xdb, + 0x42, 0xf6, 0x56, 0xb5, 0x8e, 0x6a, 0xcd, 0x74, 0xaa, 0x87, 0x95, 0x56, 0x31, 0x4b, 0x97, 0x95, + 0x6c, 0x3a, 0x5a, 0x6b, 0xea, 0x97, 0xfc, 0x50, 0x3b, 0xd4, 0x23, 0x52, 0x56, 0x68, 0x92, 0x75, + 0x45, 0xdb, 0x26, 0x8c, 0x76, 0x10, 0x8e, 0x7b, 0x54, 0x67, 0x33, 0x1b, 0x24, 0x4a, 0xcc, 0x45, + 0xce, 0xcc, 0x60, 0x30, 0x3a, 0xb1, 0x91, 0x4e, 0xf0, 0xab, 0x7e, 0x37, 0x78, 0x03, 0x55, 0x12, + 0x56, 0x40, 0xaa, 0xd0, 0x30, 0x1f, 0xac, 0x98, 0x2d, 0x34, 0xf5, 0x0c, 0x8c, 0x8a, 0xe6, 0xd1, + 0x0f, 0x43, 0xbf, 0xe3, 0x9a, 0x1d, 0x97, 0x44, 0x61, 0xbf, 0x41, 0xbf, 0xe8, 0x1a, 0xa8, 0xc8, + 0xaa, 0x93, 0x2a, 0xd7, 0x6f, 0xe0, 0x8f, 0xfa, 0x7f, 0xf1, 0x27, 0xac, 0x92, 0x09, 0x9f, 0xea, + 0xf6, 0xa8, 0x20, 0x59, 0x9e, 0xf7, 0xd4, 0x05, 0x18, 0x11, 0x26, 0x10, 0xf7, 0xd1, 0xd9, 0xff, + 0x0e, 0x47, 0x42, 0x45, 0xeb, 0x8f, 0xc1, 0xe1, 0x5d, 0xab, 0x61, 0xb9, 0xa8, 0xd3, 0xee, 0x20, + 0x1c, 0xb1, 0xf4, 0x51, 0xe9, 0x7f, 0x38, 0xd4, 0x23, 0xe6, 0x36, 0x83, 0xdc, 0x54, 0x8a, 0x31, + 0xb1, 0xdb, 0x3d, 0x38, 0x3b, 0x98, 0xfa, 0xe1, 0x21, 0xed, 0xd9, 0x67, 0x9f, 0x7d, 0x36, 0x91, + 0xfd, 0xe4, 0x00, 0x1c, 0x0e, 0xcb, 0x99, 0xd0, 0xf4, 0x9d, 0x84, 0x01, 0x6b, 0xb7, 0x75, 0x03, + 0x75, 0x88, 0x91, 0xfa, 0x0d, 0xf6, 0x4d, 0xcf, 0x43, 0x7f, 0xd3, 0xbc, 0x81, 0x9a, 0xe9, 0xe4, + 0x71, 0x65, 0x66, 0x74, 0xe1, 0x5d, 0xb1, 0xb2, 0x72, 0x6e, 0x19, 0x43, 0x0c, 0x8a, 0xd4, 0x1f, + 0x82, 0x24, 0x2b, 0xd1, 0x58, 0xc2, 0x6c, 0x3c, 0x09, 0x38, 0x97, 0x0c, 0x82, 0xd3, 0xef, 0x84, + 0x41, 0xfc, 0x3f, 0x8d, 0x8d, 0x01, 0xa2, 0x73, 0x0a, 0x0f, 0xe0, 0xb8, 0xd0, 0xa7, 0x20, 0x45, + 0xd2, 0xa4, 0x8e, 0xf8, 0xd2, 0xe6, 0x7d, 0xc7, 0x81, 0x55, 0x47, 0x5b, 0xe6, 0x6e, 0xd3, 0xad, + 0x3e, 0x69, 0x36, 0x77, 0x11, 0x09, 0xf8, 0x41, 0x63, 0x98, 0x0d, 0xbe, 0x0f, 0x8f, 0xe9, 0xd3, + 0x30, 0x44, 0xb3, 0xaa, 0x61, 0xd5, 0xd1, 0xd3, 0xa4, 0x7a, 0xf6, 0x1b, 0x34, 0xd1, 0x96, 0xf0, + 0x08, 0x7e, 0xfc, 0xe3, 0x8e, 0x6d, 0xf1, 0xd0, 0x24, 0x8f, 0xc0, 0x03, 0xe4, 0xf1, 0x17, 0xe4, + 0xc2, 0x7d, 0x57, 0xf8, 0xf4, 0xe4, 0x98, 0xca, 0x7e, 0x23, 0x01, 0x49, 0x52, 0x2f, 0xc6, 0x60, + 0x68, 0xe3, 0xfa, 0x5a, 0xb9, 0x5a, 0x5a, 0xdd, 0x2c, 0x2c, 0x97, 0x35, 0x45, 0x1f, 0x05, 0x20, + 0x03, 0x57, 0x96, 0x57, 0xf3, 0x1b, 0x5a, 0xc2, 0xfb, 0xbe, 0x54, 0xd9, 0x38, 0xbf, 0xa8, 0xa9, + 0x1e, 0x60, 0x93, 0x0e, 0x24, 0x83, 0x0c, 0x67, 0x17, 0xb4, 0x7e, 0x5d, 0x83, 0x61, 0x2a, 0x60, + 0xe9, 0xb1, 0x72, 0xe9, 0xfc, 0xa2, 0x36, 0x20, 0x8e, 0x9c, 0x5d, 0xd0, 0x0e, 0xe9, 0x23, 0x30, + 0x48, 0x46, 0x0a, 0xab, 0xab, 0xcb, 0x5a, 0xca, 0x93, 0xb9, 0xbe, 0x61, 0x2c, 0x55, 0xae, 0x6a, + 0x83, 0x9e, 0xcc, 0xab, 0xc6, 0xea, 0xe6, 0x9a, 0x06, 0x9e, 0x84, 0x95, 0xf2, 0xfa, 0x7a, 0xfe, + 0x6a, 0x59, 0x1b, 0xf2, 0x38, 0x0a, 0xd7, 0x37, 0xca, 0xeb, 0xda, 0xb0, 0xa0, 0xd6, 0xd9, 0x05, + 0x6d, 0xc4, 0x7b, 0x44, 0xb9, 0xb2, 0xb9, 0xa2, 0x8d, 0xea, 0xe3, 0x30, 0x42, 0x1f, 0xc1, 0x95, + 0x18, 0x93, 0x86, 0xce, 0x2f, 0x6a, 0x9a, 0xaf, 0x08, 0x95, 0x32, 0x2e, 0x0c, 0x9c, 0x5f, 0xd4, + 0xf4, 0x6c, 0x11, 0xfa, 0x49, 0x74, 0xe9, 0x3a, 0x8c, 0x2e, 0xe7, 0x0b, 0xe5, 0xe5, 0xea, 0xea, + 0xda, 0xc6, 0xd2, 0x6a, 0x25, 0xbf, 0xac, 0x29, 0xfe, 0x98, 0x51, 0x7e, 0xef, 0xe6, 0x92, 0x51, + 0x2e, 0x69, 0x89, 0xe0, 0xd8, 0x5a, 0x39, 0xbf, 0x51, 0x2e, 0x69, 0x6a, 0xb6, 0x06, 0x87, 0xc3, + 0xea, 0x64, 0x68, 0x66, 0x04, 0x5c, 0x9c, 0xe8, 0xe1, 0x62, 0x22, 0xab, 0xcb, 0xc5, 0xaf, 0x26, + 0x60, 0x22, 0x64, 0xad, 0x08, 0x7d, 0xc8, 0xc3, 0xd0, 0x4f, 0x43, 0x94, 0xae, 0x9e, 0xf7, 0x85, + 0x2e, 0x3a, 0x24, 0x60, 0xbb, 0x56, 0x50, 0x82, 0x0b, 0x76, 0x10, 0x6a, 0x8f, 0x0e, 0x02, 0x8b, + 0xe8, 0xaa, 0xe9, 0xff, 0xad, 0xab, 0xa6, 0xd3, 0x65, 0xef, 0x7c, 0x9c, 0x65, 0x8f, 0x8c, 0x1d, + 0xac, 0xb6, 0xf7, 0x87, 0xd4, 0xf6, 0xcb, 0x30, 0xde, 0x25, 0x28, 0x76, 0x8d, 0xfd, 0xb0, 0x02, + 0xe9, 0x5e, 0xc6, 0x89, 0xa8, 0x74, 0x09, 0xa1, 0xd2, 0x5d, 0x96, 0x2d, 0x78, 0xa2, 0xb7, 0x13, + 0xba, 0x7c, 0xfd, 0x45, 0x05, 0x26, 0xc3, 0x3b, 0xc5, 0x50, 0x1d, 0x1e, 0x82, 0x81, 0x16, 0x72, + 0x77, 0x6c, 0xde, 0x2d, 0x9d, 0x0a, 0x59, 0x83, 0x31, 0x59, 0x76, 0x36, 0x43, 0x05, 0x17, 0x71, + 0xb5, 0x57, 0xbb, 0x47, 0xb5, 0xe9, 0xd2, 0xf4, 0x63, 0x09, 0x38, 0x12, 0x2a, 0x3c, 0x54, 0xd1, + 0xbb, 0x00, 0x1a, 0x56, 0x7b, 0xd7, 0xa5, 0x1d, 0x11, 0x2d, 0xb0, 0x83, 0x64, 0x84, 0x14, 0x2f, + 0x5c, 0x3c, 0x77, 0x5d, 0x8f, 0xae, 0x12, 0x3a, 0xd0, 0x21, 0xc2, 0x70, 0xd1, 0x57, 0x34, 0x49, + 0x14, 0xcd, 0xf4, 0x98, 0x69, 0x57, 0x60, 0xce, 0x83, 0x56, 0x6b, 0x36, 0x90, 0xe5, 0x56, 0x1d, + 0xb7, 0x83, 0xcc, 0x56, 0xc3, 0xda, 0x26, 0x2b, 0x48, 0x2a, 0xd7, 0xbf, 0x65, 0x36, 0x1d, 0x64, + 0x8c, 0x51, 0xf2, 0x3a, 0xa7, 0x62, 0x04, 0x09, 0xa0, 0x4e, 0x00, 0x31, 0x20, 0x20, 0x28, 0xd9, + 0x43, 0x64, 0xbf, 0x96, 0x82, 0xa1, 0x40, 0x5f, 0xad, 0x9f, 0x80, 0xe1, 0xc7, 0xcd, 0x27, 0xcd, + 0x2a, 0x7f, 0x57, 0xa2, 0x96, 0x18, 0xc2, 0x63, 0x6b, 0xec, 0x7d, 0x69, 0x1e, 0x0e, 0x13, 0x16, + 0x7b, 0xd7, 0x45, 0x9d, 0x6a, 0xad, 0x69, 0x3a, 0x0e, 0x31, 0x5a, 0x8a, 0xb0, 0xea, 0x98, 0xb6, + 0x8a, 0x49, 0x45, 0x4e, 0xd1, 0xcf, 0xc1, 0x04, 0x41, 0xb4, 0x76, 0x9b, 0x6e, 0xa3, 0xdd, 0x44, + 0x55, 0xfc, 0xf6, 0xe6, 0x90, 0x95, 0xc4, 0xd3, 0x6c, 0x1c, 0x73, 0xac, 0x30, 0x06, 0xac, 0x91, + 0xa3, 0x97, 0xe0, 0x2e, 0x02, 0xdb, 0x46, 0x16, 0xea, 0x98, 0x2e, 0xaa, 0xa2, 0x0f, 0xee, 0x9a, + 0x4d, 0xa7, 0x6a, 0x5a, 0xf5, 0xea, 0x8e, 0xe9, 0xec, 0xa4, 0x0f, 0x63, 0x01, 0x85, 0x44, 0x5a, + 0x31, 0xee, 0xc0, 0x8c, 0x57, 0x19, 0x5f, 0x99, 0xb0, 0xe5, 0xad, 0xfa, 0x23, 0xa6, 0xb3, 0xa3, + 0xe7, 0x60, 0x92, 0x48, 0x71, 0xdc, 0x4e, 0xc3, 0xda, 0xae, 0xd6, 0x76, 0x50, 0xed, 0x89, 0xea, + 0xae, 0xbb, 0x75, 0x31, 0x7d, 0x67, 0xf0, 0xf9, 0x44, 0xc3, 0x75, 0xc2, 0x53, 0xc4, 0x2c, 0x9b, + 0xee, 0xd6, 0x45, 0x7d, 0x1d, 0x86, 0xb1, 0x33, 0x5a, 0x8d, 0x67, 0x50, 0x75, 0xcb, 0xee, 0x90, + 0xa5, 0x71, 0x34, 0xa4, 0x34, 0x05, 0x2c, 0x38, 0xb7, 0xca, 0x00, 0x2b, 0x76, 0x1d, 0xe5, 0xfa, + 0xd7, 0xd7, 0xca, 0xe5, 0x92, 0x31, 0xc4, 0xa5, 0x5c, 0xb1, 0x3b, 0x38, 0xa0, 0xb6, 0x6d, 0xcf, + 0xc0, 0x43, 0x34, 0xa0, 0xb6, 0x6d, 0x6e, 0xde, 0x73, 0x30, 0x51, 0xab, 0xd1, 0x39, 0x37, 0x6a, + 0x55, 0xf6, 0x8e, 0xe5, 0xa4, 0x35, 0xc1, 0x58, 0xb5, 0xda, 0x55, 0xca, 0xc0, 0x62, 0xdc, 0xd1, + 0x2f, 0xc1, 0x11, 0xdf, 0x58, 0x41, 0xe0, 0x78, 0xd7, 0x2c, 0x65, 0xe8, 0x39, 0x98, 0x68, 0xef, + 0x75, 0x03, 0x75, 0xe1, 0x89, 0xed, 0x3d, 0x19, 0x76, 0x01, 0x0e, 0xb7, 0x77, 0xda, 0xdd, 0xb8, + 0xd9, 0x20, 0x4e, 0x6f, 0xef, 0xb4, 0x65, 0xe0, 0x3d, 0xe4, 0x85, 0xbb, 0x83, 0x6a, 0xa6, 0x8b, + 0xea, 0xe9, 0xa3, 0x41, 0xf6, 0x00, 0x41, 0x3f, 0x0d, 0x5a, 0xad, 0x56, 0x45, 0x96, 0x79, 0xa3, + 0x89, 0xaa, 0x66, 0x07, 0x59, 0xa6, 0x93, 0x9e, 0x0e, 0x32, 0x8f, 0xd6, 0x6a, 0x65, 0x42, 0xcd, + 0x13, 0xa2, 0x3e, 0x0b, 0xe3, 0xf6, 0x8d, 0xc7, 0x6b, 0x34, 0x24, 0xab, 0xed, 0x0e, 0xda, 0x6a, + 0x3c, 0x9d, 0x3e, 0x49, 0xec, 0x3b, 0x86, 0x09, 0x24, 0x20, 0xd7, 0xc8, 0xb0, 0x7e, 0x1f, 0x68, + 0x35, 0x67, 0xc7, 0xec, 0xb4, 0x49, 0x4d, 0x76, 0xda, 0x66, 0x0d, 0xa5, 0xef, 0xa1, 0xac, 0x74, + 0xbc, 0xc2, 0x87, 0x71, 0x4a, 0x38, 0x4f, 0x35, 0xb6, 0x5c, 0x2e, 0xf1, 0x5e, 0x9a, 0x12, 0x64, + 0x8c, 0x49, 0x9b, 0x01, 0x0d, 0x9b, 0x42, 0x78, 0xf0, 0x0c, 0x61, 0x1b, 0x6d, 0xef, 0xb4, 0x83, + 0xcf, 0xbd, 0x1b, 0x46, 0x30, 0xa7, 0xff, 0xd0, 0xfb, 0x68, 0x43, 0xd6, 0xde, 0x09, 0x3c, 0xf1, + 0x6d, 0xeb, 0x8d, 0xb3, 0x39, 0x18, 0x0e, 0xc6, 0xa7, 0x3e, 0x08, 0x34, 0x42, 0x35, 0x05, 0x37, + 0x2b, 0xc5, 0xd5, 0x12, 0x6e, 0x33, 0xde, 0x5f, 0xd6, 0x12, 0xb8, 0xdd, 0x59, 0x5e, 0xda, 0x28, + 0x57, 0x8d, 0xcd, 0xca, 0xc6, 0xd2, 0x4a, 0x59, 0x53, 0x83, 0x7d, 0xf5, 0x77, 0x12, 0x30, 0x2a, + 0xbe, 0x22, 0xe9, 0xef, 0x86, 0xa3, 0x7c, 0x3f, 0xc3, 0x41, 0x6e, 0xf5, 0xa9, 0x46, 0x87, 0xa4, + 0x4c, 0xcb, 0xa4, 0xcb, 0x97, 0xe7, 0xb4, 0xc3, 0x8c, 0x6b, 0x1d, 0xb9, 0x8f, 0x36, 0x3a, 0x38, + 0x21, 0x5a, 0xa6, 0xab, 0x2f, 0xc3, 0xb4, 0x65, 0x57, 0x1d, 0xd7, 0xb4, 0xea, 0x66, 0xa7, 0x5e, + 0xf5, 0x77, 0x92, 0xaa, 0x66, 0xad, 0x86, 0x1c, 0xc7, 0xa6, 0x4b, 0x95, 0x27, 0xe5, 0x98, 0x65, + 0xaf, 0x33, 0x66, 0xbf, 0x86, 0xe7, 0x19, 0xab, 0x14, 0x60, 0x6a, 0xaf, 0x00, 0xbb, 0x13, 0x06, + 0x5b, 0x66, 0xbb, 0x8a, 0x2c, 0xb7, 0xb3, 0x47, 0x1a, 0xe3, 0x94, 0x91, 0x6a, 0x99, 0xed, 0x32, + 0xfe, 0xfe, 0xce, 0xbc, 0x9f, 0xfc, 0xbd, 0x0a, 0xc3, 0xc1, 0xe6, 0x18, 0xbf, 0x6b, 0xd4, 0xc8, + 0x3a, 0xa2, 0x90, 0x4a, 0x73, 0xf7, 0xbe, 0xad, 0xf4, 0x5c, 0x11, 0x2f, 0x30, 0xb9, 0x01, 0xda, + 0xb2, 0x1a, 0x14, 0x89, 0x17, 0x77, 0x5c, 0x5b, 0x10, 0x6d, 0x11, 0x52, 0x06, 0xfb, 0xa6, 0x5f, + 0x85, 0x81, 0xc7, 0x1d, 0x22, 0x7b, 0x80, 0xc8, 0x3e, 0xb9, 0xbf, 0xec, 0x6b, 0xeb, 0x44, 0xf8, + 0xe0, 0xb5, 0xf5, 0x6a, 0x65, 0xd5, 0x58, 0xc9, 0x2f, 0x1b, 0x0c, 0xae, 0xdf, 0x01, 0xc9, 0xa6, + 0xf9, 0xcc, 0x9e, 0xb8, 0x14, 0x91, 0xa1, 0xb8, 0x86, 0xbf, 0x03, 0x92, 0x4f, 0x21, 0xf3, 0x09, + 0x71, 0x01, 0x20, 0x43, 0x6f, 0x63, 0xe8, 0x9f, 0x86, 0x7e, 0x62, 0x2f, 0x1d, 0x80, 0x59, 0x4c, + 0xeb, 0xd3, 0x53, 0x90, 0x2c, 0xae, 0x1a, 0x38, 0xfc, 0x35, 0x18, 0xa6, 0xa3, 0xd5, 0xb5, 0xa5, + 0x72, 0xb1, 0xac, 0x25, 0xb2, 0xe7, 0x60, 0x80, 0x1a, 0x01, 0xa7, 0x86, 0x67, 0x06, 0xad, 0x8f, + 0x7d, 0x65, 0x32, 0x14, 0x4e, 0xdd, 0x5c, 0x29, 0x94, 0x0d, 0x2d, 0x11, 0x74, 0xaf, 0x03, 0xc3, + 0xc1, 0xbe, 0xf8, 0x9d, 0x89, 0xa9, 0x6f, 0x29, 0x30, 0x14, 0xe8, 0x73, 0x71, 0x83, 0x62, 0x36, + 0x9b, 0xf6, 0x53, 0x55, 0xb3, 0xd9, 0x30, 0x1d, 0x16, 0x14, 0x40, 0x86, 0xf2, 0x78, 0x24, 0xae, + 0xd3, 0xde, 0x11, 0xe5, 0x9f, 0x53, 0x40, 0x93, 0x5b, 0x4c, 0x49, 0x41, 0xe5, 0xe7, 0xaa, 0xe0, + 0x67, 0x14, 0x18, 0x15, 0xfb, 0x4a, 0x49, 0xbd, 0x13, 0x3f, 0x57, 0xf5, 0xbe, 0x9f, 0x80, 0x11, + 0xa1, 0x9b, 0x8c, 0xab, 0xdd, 0x07, 0x61, 0xbc, 0x51, 0x47, 0xad, 0xb6, 0xed, 0x22, 0xab, 0xb6, + 0x57, 0x6d, 0xa2, 0x27, 0x51, 0x33, 0x9d, 0x25, 0x85, 0xe2, 0xf4, 0xfe, 0xfd, 0xea, 0xdc, 0x92, + 0x8f, 0x5b, 0xc6, 0xb0, 0xdc, 0xc4, 0x52, 0xa9, 0xbc, 0xb2, 0xb6, 0xba, 0x51, 0xae, 0x14, 0xaf, + 0x57, 0x37, 0x2b, 0xef, 0xa9, 0xac, 0x3e, 0x5a, 0x31, 0xb4, 0x86, 0xc4, 0xf6, 0x36, 0xa6, 0xfa, + 0x1a, 0x68, 0xb2, 0x52, 0xfa, 0x51, 0x08, 0x53, 0x4b, 0xeb, 0xd3, 0x27, 0x60, 0xac, 0xb2, 0x5a, + 0x5d, 0x5f, 0x2a, 0x95, 0xab, 0xe5, 0x2b, 0x57, 0xca, 0xc5, 0x8d, 0x75, 0xba, 0x03, 0xe1, 0x71, + 0x6f, 0x88, 0x49, 0xfd, 0x69, 0x15, 0x26, 0x42, 0x34, 0xd1, 0xf3, 0xec, 0xdd, 0x81, 0xbe, 0xce, + 0x3c, 0x10, 0x47, 0xfb, 0x39, 0xbc, 0xe4, 0xaf, 0x99, 0x1d, 0x97, 0xbd, 0x6a, 0xdc, 0x07, 0xd8, + 0x4a, 0x96, 0xdb, 0xd8, 0x6a, 0xa0, 0x0e, 0xdb, 0xb0, 0xa1, 0x2f, 0x14, 0x63, 0xfe, 0x38, 0xdd, + 0xb3, 0xb9, 0x1f, 0xf4, 0xb6, 0xed, 0x34, 0xdc, 0xc6, 0x93, 0xa8, 0xda, 0xb0, 0xf8, 0xee, 0x0e, + 0x7e, 0xc1, 0x48, 0x1a, 0x1a, 0xa7, 0x2c, 0x59, 0xae, 0xc7, 0x6d, 0xa1, 0x6d, 0x53, 0xe2, 0xc6, + 0x05, 0x5c, 0x35, 0x34, 0x4e, 0xf1, 0xb8, 0x4f, 0xc0, 0x70, 0xdd, 0xde, 0xc5, 0x5d, 0x17, 0xe5, + 0xc3, 0xeb, 0x85, 0x62, 0x0c, 0xd1, 0x31, 0x8f, 0x85, 0xf5, 0xd3, 0xfe, 0xb6, 0xd2, 0xb0, 0x31, + 0x44, 0xc7, 0x28, 0xcb, 0xbd, 0x30, 0x66, 0x6e, 0x6f, 0x77, 0xb0, 0x70, 0x2e, 0x88, 0xbe, 0x21, + 0x8c, 0x7a, 0xc3, 0x84, 0x71, 0xea, 0x1a, 0xa4, 0xb8, 0x1d, 0xf0, 0x92, 0x8c, 0x2d, 0x51, 0x6d, + 0xd3, 0xd7, 0xde, 0xc4, 0xcc, 0xa0, 0x91, 0xb2, 0x38, 0xf1, 0x04, 0x0c, 0x37, 0x9c, 0xaa, 0xbf, + 0x4b, 0x9e, 0x38, 0x9e, 0x98, 0x49, 0x19, 0x43, 0x0d, 0xc7, 0xdb, 0x61, 0xcc, 0x7e, 0x31, 0x01, + 0xa3, 0xe2, 0x2e, 0xbf, 0x5e, 0x82, 0x54, 0xd3, 0xae, 0x99, 0x24, 0xb4, 0xe8, 0x11, 0xd3, 0x4c, + 0xc4, 0xc1, 0xc0, 0xdc, 0x32, 0xe3, 0x37, 0x3c, 0xe4, 0xd4, 0xdf, 0x28, 0x90, 0xe2, 0xc3, 0xfa, + 0x24, 0x24, 0xdb, 0xa6, 0xbb, 0x43, 0xc4, 0xf5, 0x17, 0x12, 0x9a, 0x62, 0x90, 0xef, 0x78, 0xdc, + 0x69, 0x9b, 0x16, 0x09, 0x01, 0x36, 0x8e, 0xbf, 0x63, 0xbf, 0x36, 0x91, 0x59, 0x27, 0xaf, 0x1f, + 0x76, 0xab, 0x85, 0x2c, 0xd7, 0xe1, 0x7e, 0x65, 0xe3, 0x45, 0x36, 0xac, 0xbf, 0x0b, 0xc6, 0xdd, + 0x8e, 0xd9, 0x68, 0x0a, 0xbc, 0x49, 0xc2, 0xab, 0x71, 0x82, 0xc7, 0x9c, 0x83, 0x3b, 0xb8, 0xdc, + 0x3a, 0x72, 0xcd, 0xda, 0x0e, 0xaa, 0xfb, 0xa0, 0x01, 0xb2, 0xcd, 0x70, 0x94, 0x31, 0x94, 0x18, + 0x9d, 0x63, 0xb3, 0xdf, 0x55, 0x60, 0x9c, 0xbf, 0x30, 0xd5, 0x3d, 0x63, 0xad, 0x00, 0x98, 0x96, + 0x65, 0xbb, 0x41, 0x73, 0x75, 0x87, 0x72, 0x17, 0x6e, 0x2e, 0xef, 0x81, 0x8c, 0x80, 0x80, 0xa9, + 0x16, 0x80, 0x4f, 0xe9, 0x69, 0xb6, 0x69, 0x18, 0x62, 0x47, 0x38, 0xe4, 0x1c, 0x90, 0xbe, 0x62, + 0x03, 0x1d, 0xc2, 0x6f, 0x56, 0xfa, 0x61, 0xe8, 0xbf, 0x81, 0xb6, 0x1b, 0x16, 0xdb, 0x98, 0xa5, + 0x5f, 0xf8, 0x46, 0x48, 0xd2, 0xdb, 0x08, 0x29, 0x7c, 0x00, 0x26, 0x6a, 0x76, 0x4b, 0x56, 0xb7, + 0xa0, 0x49, 0xaf, 0xf9, 0xce, 0x23, 0xca, 0xfb, 0xc1, 0x6f, 0x31, 0x7f, 0xaa, 0x28, 0xbf, 0x95, + 0x50, 0xaf, 0xae, 0x15, 0xbe, 0x9c, 0x98, 0xba, 0x4a, 0xa1, 0x6b, 0x7c, 0xa6, 0x06, 0xda, 0x6a, + 0xa2, 0x1a, 0xd6, 0x1e, 0x3e, 0x71, 0x2f, 0x3c, 0xb0, 0xdd, 0x70, 0x77, 0x76, 0x6f, 0xcc, 0xd5, + 0xec, 0xd6, 0xe9, 0x6d, 0x7b, 0xdb, 0xf6, 0x8f, 0x3e, 0xf1, 0x37, 0xf2, 0x85, 0x7c, 0x62, 0xc7, + 0x9f, 0x83, 0xde, 0xe8, 0x54, 0xe4, 0x59, 0x69, 0xae, 0x02, 0x13, 0x8c, 0xb9, 0x4a, 0xce, 0x5f, + 0xe8, 0x5b, 0x84, 0xbe, 0xef, 0x1e, 0x56, 0xfa, 0xab, 0x3f, 0x20, 0xcb, 0xb5, 0x31, 0xce, 0xa0, + 0x98, 0x46, 0x5f, 0x34, 0x72, 0x06, 0x1c, 0x11, 0xe4, 0xd1, 0xd4, 0x44, 0x9d, 0x08, 0x89, 0xdf, + 0x61, 0x12, 0x27, 0x02, 0x12, 0xd7, 0x19, 0x34, 0x57, 0x84, 0x91, 0x83, 0xc8, 0xfa, 0x0b, 0x26, + 0x6b, 0x18, 0x05, 0x85, 0x5c, 0x85, 0x31, 0x22, 0xa4, 0xb6, 0xeb, 0xb8, 0x76, 0x8b, 0xd4, 0xbd, + 0xfd, 0xc5, 0xfc, 0xe5, 0x0f, 0x68, 0xae, 0x8c, 0x62, 0x58, 0xd1, 0x43, 0xe5, 0x72, 0x40, 0x8e, + 0x9c, 0xea, 0xa8, 0xd6, 0x8c, 0x90, 0x70, 0x93, 0x29, 0xe2, 0xf1, 0xe7, 0xde, 0x07, 0x87, 0xf1, + 0x67, 0x52, 0x96, 0x82, 0x9a, 0x44, 0x6f, 0x78, 0xa5, 0xbf, 0xfb, 0x61, 0x9a, 0x8e, 0x13, 0x9e, + 0x80, 0x80, 0x4e, 0x01, 0x2f, 0x6e, 0x23, 0xd7, 0x45, 0x1d, 0xa7, 0x6a, 0x36, 0xc3, 0xd4, 0x0b, + 0xec, 0x18, 0xa4, 0x3f, 0xf5, 0x9a, 0xe8, 0xc5, 0xab, 0x14, 0x99, 0x6f, 0x36, 0x73, 0x9b, 0x70, + 0x34, 0x24, 0x2a, 0x62, 0xc8, 0xfc, 0x34, 0x93, 0x79, 0xb8, 0x2b, 0x32, 0xb0, 0xd8, 0x35, 0xe0, + 0xe3, 0x9e, 0x2f, 0x63, 0xc8, 0xfc, 0x4d, 0x26, 0x53, 0x67, 0x58, 0xee, 0x52, 0x2c, 0xf1, 0x1a, + 0x8c, 0x3f, 0x89, 0x3a, 0x37, 0x6c, 0x87, 0xed, 0xd2, 0xc4, 0x10, 0xf7, 0x19, 0x26, 0x6e, 0x8c, + 0x01, 0xc9, 0xb6, 0x0d, 0x96, 0x75, 0x09, 0x52, 0x5b, 0x66, 0x0d, 0xc5, 0x10, 0xf1, 0x59, 0x26, + 0xe2, 0x10, 0xe6, 0xc7, 0xd0, 0x3c, 0x0c, 0x6f, 0xdb, 0x6c, 0x65, 0x8a, 0x86, 0x3f, 0xc7, 0xe0, + 0x43, 0x1c, 0xc3, 0x44, 0xb4, 0xed, 0xf6, 0x6e, 0x13, 0x2f, 0x5b, 0xd1, 0x22, 0x3e, 0xc7, 0x45, + 0x70, 0x0c, 0x13, 0x71, 0x00, 0xb3, 0x3e, 0xcf, 0x45, 0x38, 0x01, 0x7b, 0x3e, 0x0c, 0x43, 0xb6, + 0xd5, 0xdc, 0xb3, 0xad, 0x38, 0x4a, 0x7c, 0x9e, 0x49, 0x00, 0x06, 0xc1, 0x02, 0x2e, 0xc3, 0x60, + 0x5c, 0x47, 0x7c, 0xe1, 0x35, 0x9e, 0x1e, 0xdc, 0x03, 0x57, 0x61, 0x8c, 0x17, 0xa8, 0x86, 0x6d, + 0xc5, 0x10, 0xf1, 0x3b, 0x4c, 0xc4, 0x68, 0x00, 0xc6, 0xa6, 0xe1, 0x22, 0xc7, 0xdd, 0x46, 0x71, + 0x84, 0x7c, 0x91, 0x4f, 0x83, 0x41, 0x98, 0x29, 0x6f, 0x20, 0xab, 0xb6, 0x13, 0x4f, 0xc2, 0x0b, + 0xdc, 0x94, 0x1c, 0x83, 0x45, 0x14, 0x61, 0xa4, 0x65, 0x76, 0x9c, 0x1d, 0xb3, 0x19, 0xcb, 0x1d, + 0x5f, 0x62, 0x32, 0x86, 0x3d, 0x10, 0xb3, 0xc8, 0xae, 0x75, 0x10, 0x31, 0x5f, 0xe6, 0x16, 0x09, + 0xc0, 0x58, 0xea, 0x39, 0x2e, 0xd9, 0xd2, 0x3a, 0x88, 0xb4, 0xdf, 0xe5, 0xa9, 0x47, 0xb1, 0x2b, + 0x41, 0x89, 0x97, 0x61, 0xd0, 0x69, 0x3c, 0x13, 0x4b, 0xcc, 0xef, 0x71, 0x4f, 0x13, 0x00, 0x06, + 0x5f, 0x87, 0x3b, 0x42, 0x97, 0x89, 0x18, 0xc2, 0x7e, 0x9f, 0x09, 0x9b, 0x0c, 0x59, 0x2a, 0x58, + 0x49, 0x38, 0xa8, 0xc8, 0x3f, 0xe0, 0x25, 0x01, 0x49, 0xb2, 0xd6, 0xf0, 0xbb, 0x82, 0x63, 0x6e, + 0x1d, 0xcc, 0x6a, 0x7f, 0xc8, 0xad, 0x46, 0xb1, 0x82, 0xd5, 0x36, 0x60, 0x92, 0x49, 0x3c, 0x98, + 0x5f, 0xbf, 0xc2, 0x0b, 0x2b, 0x45, 0x6f, 0x8a, 0xde, 0xfd, 0x00, 0x4c, 0x79, 0xe6, 0xe4, 0x4d, + 0xa9, 0x53, 0x6d, 0x99, 0xed, 0x18, 0x92, 0xbf, 0xca, 0x24, 0xf3, 0x8a, 0xef, 0x75, 0xb5, 0xce, + 0x8a, 0xd9, 0xc6, 0xc2, 0x1f, 0x83, 0x34, 0x17, 0xbe, 0x6b, 0x75, 0x50, 0xcd, 0xde, 0xb6, 0x1a, + 0xcf, 0xa0, 0x7a, 0x0c, 0xd1, 0x7f, 0x24, 0xb9, 0x6a, 0x33, 0x00, 0xc7, 0x92, 0x97, 0x40, 0xf3, + 0x7a, 0x95, 0x6a, 0xa3, 0xd5, 0xb6, 0x3b, 0x6e, 0x84, 0xc4, 0xaf, 0x71, 0x4f, 0x79, 0xb8, 0x25, + 0x02, 0xcb, 0x95, 0x61, 0x94, 0x7c, 0x8d, 0x1b, 0x92, 0x5f, 0x67, 0x82, 0x46, 0x7c, 0x14, 0x2b, + 0x1c, 0x35, 0xbb, 0xd5, 0x36, 0x3b, 0x71, 0xea, 0xdf, 0x1f, 0xf3, 0xc2, 0xc1, 0x20, 0xac, 0x70, + 0xb8, 0x7b, 0x6d, 0x84, 0x57, 0xfb, 0x18, 0x12, 0xbe, 0xc1, 0x0b, 0x07, 0xc7, 0x30, 0x11, 0xbc, + 0x61, 0x88, 0x21, 0xe2, 0x4f, 0xb8, 0x08, 0x8e, 0xc1, 0x22, 0xde, 0xeb, 0x2f, 0xb4, 0x1d, 0xb4, + 0xdd, 0x70, 0xdc, 0x0e, 0x6d, 0x85, 0xf7, 0x17, 0xf5, 0xcd, 0xd7, 0xc4, 0x26, 0xcc, 0x08, 0x40, + 0x73, 0xd7, 0x60, 0x4c, 0x6a, 0x31, 0xf4, 0xa8, 0xfb, 0x2b, 0xe9, 0xff, 0xf9, 0x3a, 0x2b, 0x46, + 0x62, 0x87, 0x91, 0x5b, 0xc6, 0x7e, 0x17, 0xfb, 0x80, 0x68, 0x61, 0x1f, 0x7e, 0xdd, 0x73, 0xbd, + 0xd0, 0x06, 0xe4, 0xae, 0xc0, 0x88, 0xd0, 0x03, 0x44, 0x8b, 0xfa, 0x5f, 0x4c, 0xd4, 0x70, 0xb0, + 0x05, 0xc8, 0x9d, 0x83, 0x24, 0x5e, 0xcf, 0xa3, 0xe1, 0xff, 0x9b, 0xc1, 0x09, 0x7b, 0xee, 0x41, + 0x48, 0xf1, 0x75, 0x3c, 0x1a, 0xfa, 0x11, 0x06, 0xf5, 0x20, 0x18, 0xce, 0xd7, 0xf0, 0x68, 0xf8, + 0xff, 0xe1, 0x70, 0x0e, 0xc1, 0xf0, 0xf8, 0x26, 0x7c, 0xf1, 0xff, 0x25, 0x59, 0x1d, 0xe6, 0xb6, + 0xbb, 0x0c, 0x87, 0xd8, 0xe2, 0x1d, 0x8d, 0xfe, 0x18, 0x7b, 0x38, 0x47, 0xe4, 0x2e, 0x40, 0x7f, + 0x4c, 0x83, 0xff, 0x7f, 0x06, 0xa5, 0xfc, 0xb9, 0x22, 0x0c, 0x05, 0x16, 0xec, 0x68, 0xf8, 0x2f, + 0x31, 0x78, 0x10, 0x85, 0x55, 0x67, 0x0b, 0x76, 0xb4, 0x80, 0x5f, 0xe6, 0xaa, 0x33, 0x04, 0x36, + 0x1b, 0x5f, 0xab, 0xa3, 0xd1, 0xbf, 0xc2, 0xad, 0xce, 0x21, 0xb9, 0x87, 0x61, 0xd0, 0xab, 0xbf, + 0xd1, 0xf8, 0x5f, 0x65, 0x78, 0x1f, 0x83, 0x2d, 0x10, 0xa8, 0xff, 0xd1, 0x22, 0x7e, 0x8d, 0x5b, + 0x20, 0x80, 0xc2, 0x69, 0x24, 0xaf, 0xe9, 0xd1, 0x92, 0x3e, 0xce, 0xd3, 0x48, 0x5a, 0xd2, 0xb1, + 0x37, 0x49, 0x19, 0x8c, 0x16, 0xf1, 0xeb, 0xdc, 0x9b, 0x84, 0x1f, 0xab, 0x21, 0x2f, 0x92, 0xd1, + 0x32, 0x3e, 0xc1, 0xd5, 0x90, 0xd6, 0xc8, 0xdc, 0x1a, 0xe8, 0xdd, 0x0b, 0x64, 0xb4, 0xbc, 0x4f, + 0x32, 0x79, 0xe3, 0x5d, 0xeb, 0x63, 0xee, 0x51, 0x98, 0x0c, 0x5f, 0x1c, 0xa3, 0xa5, 0x7e, 0xea, + 0x75, 0xe9, 0x75, 0x26, 0xb8, 0x36, 0xe6, 0x36, 0xfc, 0x2a, 0x1b, 0x5c, 0x18, 0xa3, 0xc5, 0x7e, + 0xfa, 0x75, 0xb1, 0xd0, 0x06, 0xd7, 0xc5, 0x5c, 0x1e, 0xc0, 0x5f, 0x93, 0xa2, 0x65, 0x7d, 0x86, + 0xc9, 0x0a, 0x80, 0x70, 0x6a, 0xb0, 0x25, 0x29, 0x1a, 0xff, 0x59, 0x9e, 0x1a, 0x0c, 0x81, 0x53, + 0x83, 0xaf, 0x46, 0xd1, 0xe8, 0xe7, 0x78, 0x6a, 0x70, 0x48, 0xee, 0x32, 0xa4, 0xac, 0xdd, 0x66, + 0x13, 0xc7, 0x96, 0xbe, 0xff, 0x95, 0xac, 0xf4, 0x3f, 0xbe, 0xc1, 0xc0, 0x1c, 0x90, 0x3b, 0x07, + 0xfd, 0xa8, 0x75, 0x03, 0xd5, 0xa3, 0x90, 0xff, 0xf4, 0x06, 0xaf, 0x27, 0x98, 0x3b, 0xf7, 0x30, + 0x00, 0x7d, 0x99, 0x26, 0x07, 0x45, 0x11, 0xd8, 0x7f, 0x7e, 0x83, 0x5d, 0x96, 0xf0, 0x21, 0xbe, + 0x00, 0x7a, 0xf5, 0x62, 0x7f, 0x01, 0xaf, 0x89, 0x02, 0xc8, 0x0b, 0xf8, 0x25, 0x38, 0xf4, 0xb8, + 0x63, 0x5b, 0xae, 0xb9, 0x1d, 0x85, 0xfe, 0x17, 0x86, 0xe6, 0xfc, 0xd8, 0x60, 0x2d, 0xbb, 0x83, + 0x5c, 0x73, 0xdb, 0x89, 0xc2, 0xfe, 0x2b, 0xc3, 0x7a, 0x00, 0x0c, 0xae, 0x99, 0x8e, 0x1b, 0x67, + 0xde, 0x3f, 0xe2, 0x60, 0x0e, 0xc0, 0x4a, 0xe3, 0xcf, 0x4f, 0xa0, 0xbd, 0x28, 0xec, 0x8f, 0xb9, + 0xd2, 0x8c, 0x3f, 0xf7, 0x20, 0x0c, 0xe2, 0x8f, 0xf4, 0x06, 0x54, 0x04, 0xf8, 0xdf, 0x18, 0xd8, + 0x47, 0xe0, 0x27, 0x3b, 0x6e, 0xdd, 0x6d, 0x44, 0x1b, 0xfb, 0x27, 0xcc, 0xd3, 0x9c, 0x3f, 0x97, + 0x87, 0x21, 0xc7, 0xad, 0xd7, 0x77, 0x59, 0x47, 0x13, 0x01, 0xff, 0xf7, 0x37, 0xbc, 0x97, 0x5c, + 0x0f, 0x53, 0x28, 0x87, 0xef, 0xd7, 0xc1, 0x55, 0xfb, 0xaa, 0x4d, 0x77, 0xea, 0xde, 0x9f, 0x8d, + 0xde, 0x72, 0x83, 0xbf, 0x6e, 0x42, 0xa6, 0x66, 0xb7, 0x6e, 0xd8, 0xce, 0x69, 0xaf, 0xd8, 0x9c, + 0x76, 0x77, 0x10, 0x5e, 0x63, 0xd8, 0x56, 0x5c, 0x12, 0x7f, 0x9e, 0x3a, 0xd8, 0xfe, 0x1d, 0x39, + 0x9d, 0xad, 0x34, 0xf0, 0x14, 0x2a, 0x64, 0x83, 0x5c, 0x3f, 0x06, 0x03, 0x64, 0x52, 0x67, 0xc8, + 0x21, 0x94, 0x52, 0x48, 0xde, 0x7c, 0x79, 0xba, 0xcf, 0x60, 0x63, 0x1e, 0x75, 0x81, 0xec, 0x60, + 0x26, 0x04, 0xea, 0x82, 0x47, 0x3d, 0x4b, 0x37, 0x31, 0x05, 0xea, 0x59, 0x8f, 0xba, 0x48, 0xb6, + 0x33, 0x55, 0x81, 0xba, 0xe8, 0x51, 0xcf, 0x91, 0x2d, 0xfb, 0x11, 0x81, 0x7a, 0xce, 0xa3, 0x9e, + 0x27, 0x1b, 0xf5, 0x49, 0x81, 0x7a, 0xde, 0xa3, 0x5e, 0x20, 0x7b, 0xf4, 0xe3, 0x02, 0xf5, 0x82, + 0x47, 0xbd, 0x48, 0xf6, 0xe6, 0x75, 0x81, 0x7a, 0xd1, 0xa3, 0x5e, 0x22, 0x17, 0x5f, 0x0e, 0x09, + 0xd4, 0x4b, 0x7a, 0x06, 0x0e, 0xd1, 0x99, 0xcf, 0x93, 0x83, 0xdc, 0x31, 0x46, 0xe6, 0x83, 0x3e, + 0xfd, 0x0c, 0xb9, 0xe4, 0x32, 0x20, 0xd2, 0xcf, 0xf8, 0xf4, 0x05, 0x72, 0xdf, 0x5e, 0x13, 0xe9, + 0x0b, 0x3e, 0xfd, 0x6c, 0x7a, 0x84, 0x5c, 0xf4, 0x11, 0xe8, 0x67, 0x7d, 0xfa, 0x62, 0x7a, 0x14, + 0xc7, 0xb5, 0x48, 0x5f, 0xf4, 0xe9, 0xe7, 0xd2, 0x63, 0xc7, 0x95, 0x99, 0x61, 0x91, 0x7e, 0x2e, + 0xfb, 0x21, 0xe2, 0x5e, 0xcb, 0x77, 0xef, 0xa4, 0xe8, 0x5e, 0xcf, 0xb1, 0x93, 0xa2, 0x63, 0x3d, + 0x97, 0x4e, 0x8a, 0x2e, 0xf5, 0x9c, 0x39, 0x29, 0x3a, 0xd3, 0x73, 0xe3, 0xa4, 0xe8, 0x46, 0xcf, + 0x81, 0x93, 0xa2, 0x03, 0x3d, 0xd7, 0x4d, 0x8a, 0xae, 0xf3, 0x9c, 0x36, 0x29, 0x3a, 0xcd, 0x73, + 0xd7, 0xa4, 0xe8, 0x2e, 0xcf, 0x51, 0x69, 0xc9, 0x51, 0xbe, 0x8b, 0xd2, 0x92, 0x8b, 0x7c, 0xe7, + 0xa4, 0x25, 0xe7, 0xf8, 0x6e, 0x49, 0x4b, 0x6e, 0xf1, 0x1d, 0x92, 0x96, 0x1c, 0xe2, 0xbb, 0x22, + 0x2d, 0xb9, 0xc2, 0x77, 0x02, 0xcb, 0x31, 0x03, 0xb5, 0x43, 0x72, 0x4c, 0xdd, 0x37, 0xc7, 0xd4, + 0x7d, 0x73, 0x4c, 0xdd, 0x37, 0xc7, 0xd4, 0x7d, 0x73, 0x4c, 0xdd, 0x37, 0xc7, 0xd4, 0x7d, 0x73, + 0x4c, 0xdd, 0x37, 0xc7, 0xd4, 0x7d, 0x73, 0x4c, 0xdd, 0x3f, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, + 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xef, + 0xde, 0x49, 0xd1, 0xbd, 0xa1, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, + 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x5e, + 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, 0x6a, + 0xcf, 0x1c, 0x53, 0x83, 0x39, 0xf6, 0x67, 0x2a, 0xe8, 0x34, 0xc7, 0xd6, 0xc8, 0x55, 0x20, 0xe6, + 0x8a, 0x8c, 0x94, 0x69, 0x03, 0xd8, 0x75, 0x9a, 0xef, 0x92, 0x8c, 0x94, 0x6b, 0x22, 0x7d, 0xc1, + 0xa3, 0xf3, 0x6c, 0x13, 0xe9, 0x67, 0x3d, 0x3a, 0xcf, 0x37, 0x91, 0xbe, 0xe8, 0xd1, 0x79, 0xc6, + 0x89, 0xf4, 0x73, 0x1e, 0x9d, 0xe7, 0x9c, 0x48, 0x3f, 0xef, 0xd1, 0x79, 0xd6, 0x89, 0xf4, 0x0b, + 0x1e, 0x9d, 0xe7, 0x9d, 0x48, 0xbf, 0xe8, 0xd1, 0x79, 0xe6, 0x89, 0xf4, 0x4b, 0xfa, 0x71, 0x39, + 0xf7, 0x38, 0x83, 0xe7, 0xda, 0xe3, 0x72, 0xf6, 0x49, 0x1c, 0x67, 0x7c, 0x0e, 0x9e, 0x7f, 0x12, + 0xc7, 0x82, 0xcf, 0xc1, 0x33, 0x50, 0xe2, 0x38, 0x9b, 0xfd, 0x28, 0x71, 0x9f, 0x25, 0xbb, 0x6f, + 0x4a, 0x72, 0x5f, 0x22, 0xe0, 0xba, 0x29, 0xc9, 0x75, 0x89, 0x80, 0xdb, 0xa6, 0x24, 0xb7, 0x25, + 0x02, 0x2e, 0x9b, 0x92, 0x5c, 0x96, 0x08, 0xb8, 0x6b, 0x4a, 0x72, 0x57, 0x22, 0xe0, 0xaa, 0x29, + 0xc9, 0x55, 0x89, 0x80, 0x9b, 0xa6, 0x24, 0x37, 0x25, 0x02, 0x2e, 0x9a, 0x92, 0x5c, 0x94, 0x08, + 0xb8, 0x67, 0x4a, 0x72, 0x4f, 0x22, 0xe0, 0x9a, 0x63, 0xb2, 0x6b, 0x12, 0x41, 0xb7, 0x1c, 0x93, + 0xdd, 0x92, 0x08, 0xba, 0xe4, 0x98, 0xec, 0x92, 0x44, 0xd0, 0x1d, 0xc7, 0x64, 0x77, 0x24, 0x82, + 0xae, 0xf8, 0x59, 0x82, 0x77, 0x84, 0xeb, 0x6e, 0x67, 0xb7, 0xe6, 0xde, 0x56, 0x47, 0x38, 0x2f, + 0xb4, 0x0f, 0x43, 0x0b, 0xfa, 0x1c, 0x69, 0x58, 0x83, 0x1d, 0xa7, 0xb4, 0x82, 0xcd, 0x0b, 0x8d, + 0x45, 0x00, 0x61, 0x85, 0x23, 0x16, 0x6f, 0xab, 0x37, 0x9c, 0x17, 0xda, 0x8c, 0x68, 0xfd, 0x2e, + 0xbe, 0xed, 0x1d, 0xdb, 0x8b, 0x09, 0xde, 0xb1, 0x31, 0xf3, 0x1f, 0xb4, 0x63, 0x9b, 0x8d, 0x36, + 0xb9, 0x67, 0xec, 0xd9, 0x68, 0x63, 0x77, 0xad, 0x3a, 0x71, 0x3b, 0xb8, 0xd9, 0x68, 0xd3, 0x7a, + 0x46, 0x7d, 0x6b, 0xfb, 0x2d, 0x16, 0xc1, 0x06, 0x6a, 0x87, 0x44, 0xf0, 0x41, 0xfb, 0xad, 0x79, + 0xa1, 0x94, 0x1c, 0x34, 0x82, 0xd5, 0x03, 0x47, 0xf0, 0x41, 0x3b, 0xaf, 0x79, 0xa1, 0xbc, 0x1c, + 0x38, 0x82, 0xdf, 0x86, 0x7e, 0x88, 0x45, 0xb0, 0x6f, 0xfe, 0x83, 0xf6, 0x43, 0xb3, 0xd1, 0x26, + 0x0f, 0x8d, 0x60, 0xf5, 0x00, 0x11, 0x1c, 0xa7, 0x3f, 0x9a, 0x8d, 0x36, 0x6d, 0x78, 0x04, 0xdf, + 0x76, 0x37, 0xf3, 0x39, 0x05, 0xc6, 0x2b, 0x8d, 0x7a, 0xb9, 0x75, 0x03, 0xd5, 0xeb, 0xa8, 0xce, + 0xec, 0x38, 0x2f, 0x54, 0x82, 0x1e, 0xae, 0x7e, 0xe9, 0xe5, 0x69, 0xdf, 0xc2, 0xe7, 0x20, 0x45, + 0x6d, 0x3a, 0x3f, 0x9f, 0xbe, 0xa9, 0x44, 0x54, 0x38, 0x8f, 0x55, 0x3f, 0xc1, 0x61, 0x67, 0xe6, + 0xd3, 0x7f, 0xab, 0x04, 0xaa, 0x9c, 0x37, 0x9c, 0xfd, 0x38, 0xd1, 0xd0, 0xba, 0x6d, 0x0d, 0x4f, + 0xc7, 0xd2, 0x30, 0xa0, 0xdb, 0x9d, 0x5d, 0xba, 0x05, 0xb4, 0xda, 0x85, 0xb1, 0x4a, 0xa3, 0x5e, + 0x21, 0x7f, 0xe9, 0x1d, 0x47, 0x25, 0xca, 0x23, 0xd5, 0x83, 0x79, 0x21, 0x2c, 0x83, 0x08, 0x2f, + 0xa4, 0xc5, 0x1a, 0x91, 0x6d, 0xe0, 0xc7, 0x5a, 0xc2, 0x63, 0x67, 0x7b, 0x3d, 0xd6, 0xaf, 0xec, + 0xde, 0x03, 0x67, 0x7b, 0x3d, 0xd0, 0xcf, 0x21, 0xef, 0x51, 0x4f, 0xf3, 0xc5, 0x99, 0x5e, 0xc8, + 0xd1, 0x8f, 0x41, 0x62, 0x89, 0xde, 0x17, 0x1e, 0x2e, 0x0c, 0x63, 0xa5, 0xbe, 0xf7, 0xf2, 0x74, + 0x72, 0x73, 0xb7, 0x51, 0x37, 0x12, 0x4b, 0x75, 0xfd, 0x1a, 0xf4, 0xbf, 0x8f, 0xfd, 0xbd, 0x21, + 0x66, 0x58, 0x64, 0x0c, 0xf7, 0xf7, 0xdc, 0x23, 0xc2, 0x0f, 0x3e, 0x4d, 0xb7, 0x1a, 0xe7, 0x36, + 0x1b, 0x96, 0x7b, 0x66, 0xe1, 0xa2, 0x41, 0x45, 0x64, 0xff, 0x2b, 0x00, 0x7d, 0x66, 0xc9, 0x74, + 0x76, 0xf4, 0x0a, 0x97, 0x4c, 0x1f, 0x7d, 0xf1, 0x7b, 0x2f, 0x4f, 0x2f, 0xc6, 0x91, 0xfa, 0x40, + 0xdd, 0x74, 0x76, 0x1e, 0x70, 0xf7, 0xda, 0x68, 0xae, 0xb0, 0xe7, 0x22, 0x87, 0x4b, 0x6f, 0xf3, + 0x55, 0x8f, 0xcd, 0x2b, 0x1d, 0x98, 0x57, 0x4a, 0x98, 0xd3, 0x15, 0x71, 0x4e, 0xf3, 0x6f, 0x76, + 0x3e, 0x4f, 0xf3, 0x45, 0x42, 0xb2, 0xa4, 0x1a, 0x65, 0x49, 0xf5, 0x76, 0x2d, 0xd9, 0xe6, 0xf5, + 0x51, 0x9a, 0xab, 0xba, 0xdf, 0x5c, 0xd5, 0xdb, 0x99, 0xeb, 0x7f, 0xd0, 0x6c, 0xf5, 0xf2, 0x69, + 0xd3, 0xa2, 0x77, 0x15, 0x7f, 0xb1, 0xf6, 0x82, 0xde, 0xd2, 0x2e, 0x20, 0x97, 0xbc, 0xf9, 0xfc, + 0xb4, 0x92, 0xfd, 0x5c, 0x82, 0xcf, 0x9c, 0x26, 0xd2, 0x9b, 0x9b, 0xf9, 0x2f, 0x4a, 0x4f, 0xf5, + 0x76, 0x58, 0xe8, 0x39, 0x05, 0x26, 0xbb, 0x2a, 0x39, 0x35, 0xd3, 0x5b, 0x5b, 0xce, 0xad, 0x83, + 0x96, 0x73, 0xa6, 0xe0, 0xd7, 0x15, 0x38, 0x2c, 0x95, 0x57, 0xaa, 0xde, 0x69, 0x49, 0xbd, 0xa3, + 0xdd, 0x4f, 0x22, 0x8c, 0x01, 0xed, 0x82, 0xee, 0x95, 0x00, 0x01, 0xc9, 0x9e, 0xdf, 0x17, 0x25, + 0xbf, 0x1f, 0xf3, 0x00, 0x21, 0xe6, 0xe2, 0x11, 0xc0, 0xd4, 0xb6, 0x21, 0xb9, 0xd1, 0x41, 0x48, + 0xcf, 0x40, 0x62, 0xb5, 0xc3, 0x34, 0x1c, 0xa5, 0xf8, 0xd5, 0x4e, 0xa1, 0x63, 0x5a, 0xb5, 0x1d, + 0x23, 0xb1, 0xda, 0xd1, 0x4f, 0x80, 0x9a, 0x67, 0x7f, 0xeb, 0x3c, 0xb4, 0x30, 0x46, 0x19, 0xf2, + 0x56, 0x9d, 0x71, 0x60, 0x9a, 0x9e, 0x81, 0xe4, 0x32, 0x32, 0xb7, 0x98, 0x12, 0x40, 0x79, 0xf0, + 0x88, 0x41, 0xc6, 0xd9, 0x03, 0x1f, 0x83, 0x14, 0x17, 0xac, 0x9f, 0xc4, 0x88, 0x2d, 0x97, 0x3d, + 0x96, 0x21, 0xb0, 0x3a, 0x6c, 0xe5, 0x22, 0x54, 0xfd, 0x14, 0xf4, 0x1b, 0x8d, 0xed, 0x1d, 0x97, + 0x3d, 0xbc, 0x9b, 0x8d, 0x92, 0xb3, 0xd7, 0x61, 0xd0, 0xd3, 0xe8, 0x2d, 0x16, 0x5d, 0xa2, 0x53, + 0xd3, 0xa7, 0x82, 0xeb, 0x09, 0xdf, 0xb7, 0xa4, 0x43, 0xfa, 0x71, 0x48, 0xad, 0xbb, 0x1d, 0xbf, + 0xe8, 0xf3, 0x8e, 0xd4, 0x1b, 0xcd, 0x7e, 0x48, 0x81, 0x54, 0x09, 0xa1, 0x36, 0x31, 0xf8, 0x3d, + 0x90, 0x2c, 0xd9, 0x4f, 0x59, 0x4c, 0xc1, 0x71, 0x66, 0x51, 0x4c, 0x66, 0x36, 0x25, 0x64, 0xfd, + 0x9e, 0xa0, 0xdd, 0x27, 0x3c, 0xbb, 0x07, 0xf8, 0x88, 0xed, 0xb3, 0x82, 0xed, 0x99, 0x03, 0x31, + 0x53, 0x97, 0xfd, 0x2f, 0xc0, 0x50, 0xe0, 0x29, 0xfa, 0x0c, 0x53, 0x23, 0x21, 0x03, 0x83, 0xb6, + 0xc2, 0x1c, 0x59, 0x04, 0x23, 0xc2, 0x83, 0x31, 0x34, 0x60, 0xe2, 0x1e, 0x50, 0x62, 0xe6, 0x59, + 0xd1, 0xcc, 0xe1, 0xac, 0xcc, 0xd4, 0xf3, 0xd4, 0x46, 0xc4, 0xdc, 0x27, 0x69, 0x70, 0xf6, 0x76, + 0x22, 0xfe, 0x9c, 0xed, 0x07, 0xb5, 0xd2, 0x68, 0x66, 0x1f, 0x04, 0xa0, 0x29, 0x5f, 0xb6, 0x76, + 0x5b, 0x52, 0xd6, 0x8d, 0x72, 0x03, 0x6f, 0xec, 0xa0, 0x0d, 0xe4, 0x10, 0x16, 0xb1, 0x9f, 0xc2, + 0x05, 0x06, 0x68, 0x8a, 0x11, 0xfc, 0x7d, 0x91, 0xf8, 0xd0, 0x4e, 0x0c, 0xb3, 0xa6, 0x29, 0xeb, + 0x75, 0xe4, 0xe6, 0x2d, 0xdb, 0xdd, 0x41, 0x1d, 0x09, 0xb1, 0xa0, 0x9f, 0x15, 0x12, 0x76, 0x74, + 0xe1, 0x4e, 0x0f, 0xd1, 0x13, 0x74, 0x36, 0xfb, 0x15, 0xa2, 0x20, 0x6e, 0x05, 0xba, 0x26, 0xa8, + 0xc6, 0x98, 0xa0, 0x7e, 0x5e, 0xe8, 0xdf, 0xf6, 0x51, 0x53, 0x7a, 0xb5, 0xbc, 0x24, 0xbc, 0xe7, + 0xec, 0xaf, 0xac, 0xf8, 0x8e, 0xc9, 0x6d, 0xca, 0x55, 0xbe, 0x2f, 0x52, 0xe5, 0x1e, 0xdd, 0xed, + 0x41, 0x6d, 0xaa, 0xc6, 0xb5, 0xe9, 0xb7, 0xbc, 0x8e, 0x83, 0xfe, 0xa0, 0x04, 0xf9, 0x29, 0x16, + 0xfd, 0xfe, 0x48, 0xdf, 0xe7, 0x94, 0xa2, 0xa7, 0xea, 0x62, 0x5c, 0xf7, 0xe7, 0x12, 0x85, 0x82, + 0xa7, 0xee, 0x85, 0x03, 0x84, 0x40, 0x2e, 0x51, 0x2c, 0x7a, 0x65, 0x3b, 0xf5, 0xd1, 0xe7, 0xa7, + 0x95, 0x17, 0x9e, 0x9f, 0xee, 0xcb, 0x7e, 0x49, 0x81, 0x71, 0xc6, 0x19, 0x08, 0xdc, 0x07, 0x24, + 0xe5, 0x8f, 0xf0, 0x9a, 0x11, 0x66, 0x81, 0x77, 0x2c, 0x78, 0xbf, 0xa3, 0x40, 0xba, 0x4b, 0x57, + 0x6e, 0xef, 0xf9, 0x58, 0x2a, 0xe7, 0x94, 0xf2, 0xcf, 0xdf, 0xe6, 0xd7, 0xa1, 0x7f, 0xa3, 0xd1, + 0x42, 0x1d, 0xbc, 0x12, 0xe0, 0x0f, 0x54, 0x65, 0x7e, 0x98, 0x43, 0x87, 0x38, 0x8d, 0x2a, 0x27, + 0xd0, 0x16, 0xf4, 0x34, 0x24, 0x4b, 0xa6, 0x6b, 0x12, 0x0d, 0x86, 0xbd, 0xfa, 0x6a, 0xba, 0x66, + 0xf6, 0x2c, 0x0c, 0xaf, 0xec, 0x91, 0xdb, 0x34, 0x75, 0x72, 0x53, 0x44, 0xec, 0xfe, 0x78, 0xbf, + 0x7a, 0x66, 0xb6, 0x3f, 0x55, 0xd7, 0x6e, 0x2a, 0xb9, 0x24, 0xd1, 0xe7, 0x49, 0x18, 0x5d, 0xc5, + 0x6a, 0x13, 0x9c, 0x00, 0xa3, 0x4f, 0x57, 0xbd, 0xc9, 0x4b, 0x4d, 0x99, 0xea, 0x37, 0x65, 0xc7, + 0x41, 0x59, 0x11, 0x5b, 0xa7, 0xa0, 0x1e, 0x86, 0xb2, 0x32, 0x9b, 0x4c, 0x8d, 0x6a, 0xe3, 0xb3, + 0xc9, 0x14, 0x68, 0x23, 0xec, 0xb9, 0x7f, 0xa5, 0x82, 0x46, 0x5b, 0x9d, 0x12, 0xda, 0x6a, 0x58, + 0x0d, 0xb7, 0xbb, 0x5f, 0xf5, 0x34, 0xd6, 0x1f, 0x86, 0x41, 0x6c, 0xd2, 0x2b, 0xec, 0x17, 0xd9, + 0xb0, 0xe9, 0x4f, 0xb0, 0x16, 0x45, 0x12, 0xc1, 0x06, 0x48, 0xe8, 0xf8, 0x18, 0xfd, 0x0a, 0xa8, + 0x95, 0xca, 0x0a, 0x5b, 0xdc, 0x16, 0xf7, 0x85, 0xb2, 0xcb, 0x38, 0xec, 0x1b, 0x1b, 0x73, 0xb6, + 0x0d, 0x2c, 0x40, 0x5f, 0x84, 0x44, 0x65, 0x85, 0x35, 0xbc, 0x27, 0xe3, 0x88, 0x31, 0x12, 0x95, + 0x95, 0xa9, 0x3f, 0x57, 0x60, 0x44, 0x18, 0xd5, 0xb3, 0x30, 0x4c, 0x07, 0x02, 0xd3, 0x1d, 0x30, + 0x84, 0x31, 0xae, 0x73, 0xe2, 0x36, 0x75, 0x9e, 0xca, 0xc3, 0x98, 0x34, 0xae, 0xcf, 0x81, 0x1e, + 0x1c, 0x62, 0x4a, 0xd0, 0x5f, 0x83, 0x0a, 0xa1, 0x64, 0xef, 0x02, 0xf0, 0xed, 0xea, 0xfd, 0x88, + 0x51, 0xa5, 0xbc, 0xbe, 0x51, 0x2e, 0x69, 0x4a, 0xf6, 0x1b, 0x0a, 0x0c, 0xb1, 0xb6, 0xb5, 0x66, + 0xb7, 0x91, 0x5e, 0x00, 0x25, 0xcf, 0xe2, 0xe1, 0xcd, 0xe9, 0xad, 0xe4, 0xf5, 0xd3, 0xa0, 0x14, + 0xe2, 0xbb, 0x5a, 0x29, 0xe8, 0x0b, 0xa0, 0x14, 0x99, 0x83, 0xe3, 0x79, 0x46, 0x29, 0x66, 0x7f, + 0xa2, 0xc2, 0x44, 0xb0, 0x8d, 0xe6, 0xf5, 0xe4, 0x84, 0xf8, 0xde, 0x94, 0x1b, 0x3c, 0xb3, 0x70, + 0x76, 0x71, 0x0e, 0xff, 0xe3, 0x85, 0x64, 0x56, 0x7c, 0x85, 0xca, 0x81, 0xc7, 0x72, 0xa6, 0xd7, + 0x3d, 0x91, 0x5c, 0x32, 0x20, 0xa1, 0xeb, 0x9e, 0x88, 0x40, 0xed, 0xba, 0x27, 0x22, 0x50, 0xbb, + 0xee, 0x89, 0x08, 0xd4, 0xae, 0xb3, 0x00, 0x81, 0xda, 0x75, 0x4f, 0x44, 0xa0, 0x76, 0xdd, 0x13, + 0x11, 0xa8, 0xdd, 0xf7, 0x44, 0x18, 0xb9, 0xe7, 0x3d, 0x11, 0x91, 0xde, 0x7d, 0x4f, 0x44, 0xa4, + 0x77, 0xdf, 0x13, 0xc9, 0x25, 0xdd, 0xce, 0x2e, 0xea, 0x7d, 0xea, 0x20, 0xe2, 0xf7, 0x7b, 0x09, + 0xf4, 0x2b, 0xf0, 0x2a, 0x8c, 0xd1, 0x0d, 0x89, 0xa2, 0x6d, 0xb9, 0x66, 0xc3, 0x42, 0x1d, 0xfd, + 0xdd, 0x30, 0x4c, 0x87, 0xe8, 0x6b, 0x4e, 0xd8, 0x6b, 0x20, 0xa5, 0xb3, 0x7a, 0x2b, 0x70, 0x67, + 0x7f, 0x96, 0x84, 0x49, 0x3a, 0x50, 0x31, 0x5b, 0x48, 0xb8, 0x65, 0x74, 0x4a, 0x3a, 0x53, 0x1a, + 0xc5, 0xf0, 0x5b, 0x2f, 0x4f, 0xd3, 0xd1, 0xbc, 0x17, 0x4d, 0xa7, 0xa4, 0xd3, 0x25, 0x91, 0xcf, + 0x5f, 0x80, 0x4e, 0x49, 0x37, 0x8f, 0x44, 0x3e, 0x6f, 0xbd, 0xf1, 0xf8, 0xf8, 0x1d, 0x24, 0x91, + 0xaf, 0xe4, 0x45, 0xd9, 0x29, 0xe9, 0x36, 0x92, 0xc8, 0x57, 0xf6, 0xe2, 0xed, 0x94, 0x74, 0xf6, + 0x24, 0xf2, 0x5d, 0xf1, 0x22, 0xef, 0x94, 0x74, 0x0a, 0x25, 0xf2, 0x5d, 0xf5, 0x62, 0xf0, 0x94, + 0x74, 0x57, 0x49, 0xe4, 0x7b, 0xc4, 0x8b, 0xc6, 0x53, 0xd2, 0xad, 0x25, 0x91, 0x6f, 0xc9, 0x8b, + 0xcb, 0x19, 0xf9, 0xfe, 0x92, 0xc8, 0x78, 0xcd, 0x8f, 0xd0, 0x19, 0xf9, 0x26, 0x93, 0xc8, 0xf9, + 0x1e, 0x3f, 0x56, 0x67, 0xe4, 0x3b, 0x4d, 0x22, 0xe7, 0xb2, 0x1f, 0xb5, 0x33, 0xf2, 0x59, 0x99, + 0xc8, 0xb9, 0xe2, 0xc7, 0xef, 0x8c, 0x7c, 0x6a, 0x26, 0x72, 0x56, 0xfc, 0x48, 0x9e, 0x91, 0xcf, + 0xcf, 0x44, 0xce, 0x55, 0x7f, 0x13, 0xfd, 0xdb, 0x52, 0xf8, 0x05, 0x6e, 0x41, 0x65, 0xa5, 0xf0, + 0x83, 0x90, 0xd0, 0x93, 0x0a, 0x59, 0x80, 0xc7, 0x0f, 0xbb, 0xac, 0x14, 0x76, 0x10, 0x12, 0x72, + 0x59, 0x29, 0xe4, 0x20, 0x24, 0xdc, 0xb2, 0x52, 0xb8, 0x41, 0x48, 0xa8, 0x65, 0xa5, 0x50, 0x83, + 0x90, 0x30, 0xcb, 0x4a, 0x61, 0x06, 0x21, 0x21, 0x96, 0x95, 0x42, 0x0c, 0x42, 0xc2, 0x2b, 0x2b, + 0x85, 0x17, 0x84, 0x84, 0xd6, 0x49, 0x39, 0xb4, 0x20, 0x2c, 0xac, 0x4e, 0xca, 0x61, 0x05, 0x61, + 0x21, 0x75, 0xb7, 0x1c, 0x52, 0x83, 0xb7, 0x5e, 0x9e, 0xee, 0xc7, 0x43, 0x81, 0x68, 0x3a, 0x29, + 0x47, 0x13, 0x84, 0x45, 0xd2, 0x49, 0x39, 0x92, 0x20, 0x2c, 0x8a, 0x4e, 0xca, 0x51, 0x04, 0x61, + 0x11, 0xf4, 0xa2, 0x1c, 0x41, 0xfe, 0x1d, 0x9f, 0xac, 0x74, 0xa4, 0x18, 0x15, 0x41, 0x6a, 0x8c, + 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, + 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x13, 0x41, 0x6a, 0xac, 0x08, 0x52, 0x7b, 0x45, 0xd0, + 0x49, 0xf9, 0xc6, 0x03, 0x84, 0x15, 0xa4, 0x93, 0xf2, 0xd1, 0x67, 0x74, 0x08, 0xa9, 0xb1, 0x42, + 0x48, 0xed, 0x15, 0x42, 0xdf, 0x56, 0x61, 0x42, 0x08, 0x21, 0x76, 0x3e, 0xf4, 0x56, 0x55, 0xa0, + 0xf3, 0x31, 0x2e, 0x58, 0x84, 0xc5, 0xd4, 0xf9, 0x18, 0x87, 0xd4, 0xfb, 0xc5, 0x59, 0x77, 0x15, + 0x2a, 0xc7, 0xa8, 0x42, 0x57, 0xbc, 0x18, 0x3a, 0x1f, 0xe3, 0xe2, 0x45, 0x77, 0xec, 0x5d, 0xdc, + 0xaf, 0x08, 0x3c, 0x12, 0xab, 0x08, 0x2c, 0xc5, 0x2a, 0x02, 0xd7, 0x7c, 0x0f, 0x7e, 0x24, 0x01, + 0x87, 0x7d, 0x0f, 0xd2, 0x4f, 0xe4, 0x17, 0x93, 0xb2, 0x81, 0x23, 0x2a, 0x9d, 0x1f, 0xdb, 0x04, + 0xdc, 0x98, 0x58, 0xaa, 0xeb, 0x6b, 0xe2, 0x61, 0x55, 0xee, 0xa0, 0x07, 0x38, 0x01, 0x8f, 0xb3, + 0xcd, 0xd0, 0x93, 0xa0, 0x2e, 0xd5, 0x1d, 0x52, 0x2d, 0xc2, 0x1e, 0x5b, 0x34, 0x30, 0x59, 0x37, + 0x60, 0x80, 0xb0, 0x3b, 0xc4, 0xbd, 0xb7, 0xf3, 0xe0, 0x92, 0xc1, 0x24, 0x65, 0x5f, 0x54, 0xe0, + 0xb8, 0x10, 0xca, 0x6f, 0xcd, 0x91, 0xc1, 0xe5, 0x58, 0x47, 0x06, 0x42, 0x82, 0xf8, 0xc7, 0x07, + 0xf7, 0x76, 0x9f, 0x54, 0x07, 0xb3, 0x44, 0x3e, 0x4a, 0xf8, 0x1f, 0x30, 0xea, 0xcf, 0x80, 0xbc, + 0xb3, 0x9d, 0x8b, 0xde, 0xcd, 0x0c, 0x4b, 0xcd, 0x73, 0xd2, 0x2e, 0xda, 0xbe, 0x30, 0x2f, 0x5b, + 0xb3, 0x39, 0x18, 0xab, 0x88, 0x7f, 0xd7, 0x13, 0xb5, 0x19, 0x91, 0xc2, 0xad, 0xf9, 0xcd, 0xcf, + 0x4f, 0xf7, 0x65, 0xef, 0x87, 0xe1, 0xe0, 0x9f, 0xee, 0x48, 0xc0, 0x41, 0x0e, 0xcc, 0x25, 0x5f, + 0xc2, 0xdc, 0xbf, 0xa1, 0xc0, 0x91, 0x20, 0xfb, 0xa3, 0x0d, 0x77, 0x67, 0xc9, 0xc2, 0x3d, 0xfd, + 0x83, 0x90, 0x42, 0xcc, 0x71, 0xec, 0xc7, 0x4f, 0xd8, 0x7b, 0x64, 0x28, 0xfb, 0x1c, 0xf9, 0xd7, + 0xf0, 0x20, 0xd2, 0x2e, 0x08, 0x7f, 0xec, 0xc2, 0xd4, 0x3d, 0xd0, 0x4f, 0xe5, 0x8b, 0x7a, 0x8d, + 0x48, 0x7a, 0x7d, 0x21, 0x44, 0x2f, 0x12, 0x47, 0xfa, 0x35, 0x41, 0xaf, 0xc0, 0xeb, 0x6a, 0x28, + 0xfb, 0x1c, 0x0f, 0xbe, 0x42, 0x0a, 0xf7, 0x7f, 0x24, 0xa2, 0xa2, 0x95, 0x9c, 0x81, 0x54, 0x59, + 0xe6, 0x09, 0xd7, 0xb3, 0x04, 0xc9, 0x8a, 0x5d, 0x27, 0x3f, 0xcb, 0x42, 0x7e, 0x87, 0x98, 0x19, + 0x99, 0xfd, 0x28, 0xf1, 0x29, 0x48, 0x15, 0x77, 0x1a, 0xcd, 0x7a, 0x07, 0x59, 0xec, 0xcc, 0x9e, + 0x6d, 0xa1, 0x63, 0x8c, 0xe1, 0xd1, 0xb2, 0x45, 0x18, 0xaf, 0xd8, 0x56, 0x61, 0xcf, 0x0d, 0xd6, + 0x8d, 0x39, 0x29, 0x45, 0xd8, 0x99, 0x0f, 0xf9, 0x63, 0x10, 0xcc, 0x50, 0xe8, 0xff, 0xde, 0xcb, + 0xd3, 0xca, 0x86, 0xb7, 0x7f, 0xbe, 0x02, 0x47, 0x59, 0xfa, 0x74, 0x89, 0x5a, 0x88, 0x12, 0x35, + 0xc8, 0xce, 0xa9, 0x03, 0xe2, 0x96, 0xb0, 0x38, 0x2b, 0x54, 0xdc, 0x9b, 0xd3, 0x0c, 0x37, 0x45, + 0xfb, 0x6a, 0xa6, 0x1e, 0x48, 0xb3, 0x50, 0x71, 0x73, 0x51, 0xe2, 0x24, 0xcd, 0xee, 0x86, 0x41, + 0x8f, 0x16, 0x88, 0x86, 0x60, 0xa6, 0x2c, 0xcc, 0x66, 0x61, 0x28, 0x90, 0xb0, 0x7a, 0x3f, 0x28, + 0x79, 0xad, 0x0f, 0xff, 0x57, 0xd0, 0x14, 0xfc, 0x5f, 0x51, 0x4b, 0xcc, 0xde, 0x03, 0x63, 0xd2, + 0xfe, 0x25, 0xa6, 0x94, 0x34, 0xc0, 0xff, 0x95, 0xb5, 0xa1, 0xa9, 0xe4, 0x47, 0x7f, 0x3b, 0xd3, + 0x37, 0x7b, 0x19, 0xf4, 0xee, 0x9d, 0x4e, 0x7d, 0x00, 0x12, 0x79, 0x2c, 0xf2, 0x28, 0x24, 0x0a, + 0x05, 0x4d, 0x99, 0x1a, 0xfb, 0xbf, 0x9f, 0x3d, 0x3e, 0x54, 0x20, 0x7f, 0x97, 0x7c, 0x1d, 0xb9, + 0x85, 0x02, 0x03, 0x3f, 0x04, 0x47, 0x42, 0x77, 0x4a, 0x31, 0xbe, 0x58, 0xa4, 0xf8, 0x52, 0xa9, + 0x0b, 0x5f, 0x2a, 0x11, 0xbc, 0x92, 0xe3, 0x27, 0xce, 0x79, 0x3d, 0x64, 0x97, 0x31, 0x5d, 0x0f, + 0x9c, 0x70, 0xe7, 0x73, 0x0f, 0x31, 0xde, 0x42, 0x28, 0x2f, 0x8a, 0x38, 0xb1, 0x2e, 0xe4, 0x8a, + 0x0c, 0x5f, 0x0c, 0xc5, 0x6f, 0x49, 0xc7, 0xaa, 0xe2, 0x0a, 0xc1, 0x84, 0x14, 0x3d, 0x85, 0x4b, + 0xa1, 0x42, 0x76, 0x02, 0x97, 0xdd, 0x4b, 0x9e, 0xc2, 0xe5, 0x50, 0xde, 0x46, 0xc4, 0xa5, 0xaf, + 0x72, 0xee, 0x34, 0x5b, 0xe4, 0xf3, 0x67, 0xf4, 0x23, 0x3c, 0x47, 0x85, 0x0a, 0xcc, 0x0c, 0xc4, + 0xb9, 0x72, 0x45, 0x06, 0x28, 0xf4, 0x04, 0xf4, 0xb6, 0x12, 0x47, 0xe6, 0x1e, 0x61, 0x42, 0x8a, + 0x3d, 0x85, 0x44, 0x98, 0x8a, 0xc3, 0x0b, 0x1b, 0x37, 0x5f, 0xc9, 0xf4, 0xbd, 0xf4, 0x4a, 0xa6, + 0xef, 0xef, 0x5e, 0xc9, 0xf4, 0x7d, 0xff, 0x95, 0x8c, 0xf2, 0xc3, 0x57, 0x32, 0xca, 0x8f, 0x5f, + 0xc9, 0x28, 0x3f, 0x7d, 0x25, 0xa3, 0x3c, 0x7b, 0x2b, 0xa3, 0xbc, 0x70, 0x2b, 0xa3, 0x7c, 0xe5, + 0x56, 0x46, 0xf9, 0xe6, 0xad, 0x8c, 0xf2, 0xe2, 0xad, 0x8c, 0x72, 0xf3, 0x56, 0x46, 0x79, 0xe9, + 0x56, 0xa6, 0xef, 0xfb, 0xb7, 0x32, 0xca, 0x0f, 0x6f, 0x65, 0xfa, 0x7e, 0x7c, 0x2b, 0xa3, 0xfc, + 0xf4, 0x56, 0xa6, 0xef, 0xd9, 0x57, 0x33, 0x7d, 0xcf, 0xbf, 0x9a, 0xe9, 0x7b, 0xe1, 0xd5, 0x8c, + 0xf2, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x52, 0xf4, 0xf0, 0x33, 0xdb, 0x66, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -12581,8 +12588,8 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12636,8 +12643,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12703,8 +12710,8 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12770,8 +12777,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -15827,7 +15834,7 @@ func (this *ProtoType) Equal(that interface{}) bool { } type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() float64 GetField2() float32 GetField3() int32 @@ -15845,11 +15852,11 @@ type NidOptNativeFace interface { GetField15() []byte } -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNative) Proto() proto.Message { return this } -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNative) TestProto() proto.Message { return NewNidOptNativeFromFace(this) } @@ -15934,7 +15941,7 @@ func NewNidOptNativeFromFace(that NidOptNativeFace) *NidOptNative { } type NinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *int32 @@ -15952,11 +15959,11 @@ type NinOptNativeFace interface { GetField15() []byte } -func (this *NinOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNative) Proto() proto.Message { return this } -func (this *NinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNative) TestProto() proto.Message { return NewNinOptNativeFromFace(this) } @@ -16041,7 +16048,7 @@ func NewNinOptNativeFromFace(that NinOptNativeFace) *NinOptNative { } type NidRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16059,11 +16066,11 @@ type NidRepNativeFace interface { GetField15() [][]byte } -func (this *NidRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNative) Proto() proto.Message { return this } -func (this *NidRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNative) TestProto() proto.Message { return NewNidRepNativeFromFace(this) } @@ -16148,7 +16155,7 @@ func NewNidRepNativeFromFace(that NidRepNativeFace) *NidRepNative { } type NinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16166,11 +16173,11 @@ type NinRepNativeFace interface { GetField15() [][]byte } -func (this *NinRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNative) Proto() proto.Message { return this } -func (this *NinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNative) TestProto() proto.Message { return NewNinRepNativeFromFace(this) } @@ -16255,7 +16262,7 @@ func NewNinRepNativeFromFace(that NinRepNativeFace) *NinRepNative { } type NidRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16271,11 +16278,11 @@ type NidRepPackedNativeFace interface { GetField13() []bool } -func (this *NidRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepPackedNative) Proto() proto.Message { return this } -func (this *NidRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepPackedNative) TestProto() proto.Message { return NewNidRepPackedNativeFromFace(this) } @@ -16350,7 +16357,7 @@ func NewNidRepPackedNativeFromFace(that NidRepPackedNativeFace) *NidRepPackedNat } type NinRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16366,11 +16373,11 @@ type NinRepPackedNativeFace interface { GetField13() []bool } -func (this *NinRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepPackedNative) Proto() proto.Message { return this } -func (this *NinRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepPackedNative) TestProto() proto.Message { return NewNinRepPackedNativeFromFace(this) } @@ -16445,7 +16452,7 @@ func NewNinRepPackedNativeFromFace(that NinRepPackedNativeFace) *NinRepPackedNat } type NidOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() float64 GetField2() float32 GetField3() NidOptNative @@ -16458,11 +16465,11 @@ type NidOptStructFace interface { GetField15() []byte } -func (this *NidOptStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptStruct) Proto() proto.Message { return this } -func (this *NidOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptStruct) TestProto() proto.Message { return NewNidOptStructFromFace(this) } @@ -16522,7 +16529,7 @@ func NewNidOptStructFromFace(that NidOptStructFace) *NidOptStruct { } type NinOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *NidOptNative @@ -16535,11 +16542,11 @@ type NinOptStructFace interface { GetField15() []byte } -func (this *NinOptStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStruct) Proto() proto.Message { return this } -func (this *NinOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStruct) TestProto() proto.Message { return NewNinOptStructFromFace(this) } @@ -16599,7 +16606,7 @@ func NewNinOptStructFromFace(that NinOptStructFace) *NinOptStruct { } type NidRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []NidOptNative @@ -16612,11 +16619,11 @@ type NidRepStructFace interface { GetField15() [][]byte } -func (this *NidRepStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepStruct) Proto() proto.Message { return this } -func (this *NidRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepStruct) TestProto() proto.Message { return NewNidRepStructFromFace(this) } @@ -16676,7 +16683,7 @@ func NewNidRepStructFromFace(that NidRepStructFace) *NidRepStruct { } type NinRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []*NidOptNative @@ -16689,11 +16696,11 @@ type NinRepStructFace interface { GetField15() [][]byte } -func (this *NinRepStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepStruct) Proto() proto.Message { return this } -func (this *NinRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepStruct) TestProto() proto.Message { return NewNinRepStructFromFace(this) } @@ -16753,17 +16760,17 @@ func NewNinRepStructFromFace(that NinRepStructFace) *NinRepStruct { } type NidEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() NidOptNative GetField210() bool } -func (this *NidEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidEmbeddedStruct) Proto() proto.Message { return this } -func (this *NidEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidEmbeddedStruct) TestProto() proto.Message { return NewNidEmbeddedStructFromFace(this) } @@ -16788,17 +16795,17 @@ func NewNidEmbeddedStructFromFace(that NidEmbeddedStructFace) *NidEmbeddedStruct } type NinEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() *NidOptNative GetField210() *bool } -func (this *NinEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStruct) Proto() proto.Message { return this } -func (this *NinEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStruct) TestProto() proto.Message { return NewNinEmbeddedStructFromFace(this) } @@ -16823,16 +16830,16 @@ func NewNinEmbeddedStructFromFace(that NinEmbeddedStructFace) *NinEmbeddedStruct } type NidNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() NidOptStruct GetField2() []NidRepStruct } -func (this *NidNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidNestedStruct) Proto() proto.Message { return this } -func (this *NidNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidNestedStruct) TestProto() proto.Message { return NewNidNestedStructFromFace(this) } @@ -16852,16 +16859,16 @@ func NewNidNestedStructFromFace(that NidNestedStructFace) *NidNestedStruct { } type NinNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *NinOptStruct GetField2() []*NinRepStruct } -func (this *NinNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStruct) Proto() proto.Message { return this } -func (this *NinNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStruct) TestProto() proto.Message { return NewNinNestedStructFromFace(this) } @@ -16881,16 +16888,16 @@ func NewNinNestedStructFromFace(that NinNestedStructFace) *NinNestedStruct { } type NidOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() Uuid GetValue() github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NidOptCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptCustom) Proto() proto.Message { return this } -func (this *NidOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptCustom) TestProto() proto.Message { return NewNidOptCustomFromFace(this) } @@ -16910,15 +16917,15 @@ func NewNidOptCustomFromFace(that NidOptCustomFace) *NidOptCustom { } type CustomDashFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes } -func (this *CustomDash) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomDash) Proto() proto.Message { return this } -func (this *CustomDash) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomDash) TestProto() proto.Message { return NewCustomDashFromFace(this) } @@ -16933,16 +16940,16 @@ func NewCustomDashFromFace(that CustomDashFace) *CustomDash { } type NinOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() *Uuid GetValue() *github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NinOptCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptCustom) Proto() proto.Message { return this } -func (this *NinOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptCustom) TestProto() proto.Message { return NewNinOptCustomFromFace(this) } @@ -16962,16 +16969,16 @@ func NewNinOptCustomFromFace(that NinOptCustomFace) *NinOptCustom { } type NidRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() []Uuid GetValue() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NidRepCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepCustom) Proto() proto.Message { return this } -func (this *NidRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepCustom) TestProto() proto.Message { return NewNidRepCustomFromFace(this) } @@ -16991,16 +16998,16 @@ func NewNidRepCustomFromFace(that NidRepCustomFace) *NidRepCustom { } type NinRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() []Uuid GetValue() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NinRepCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepCustom) Proto() proto.Message { return this } -func (this *NinRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepCustom) TestProto() proto.Message { return NewNinRepCustomFromFace(this) } @@ -17020,7 +17027,7 @@ func NewNinRepCustomFromFace(that NinRepCustomFace) *NinRepCustom { } type NinOptNativeUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *int32 @@ -17032,11 +17039,11 @@ type NinOptNativeUnionFace interface { GetField15() []byte } -func (this *NinOptNativeUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNativeUnion) Proto() proto.Message { return this } -func (this *NinOptNativeUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNativeUnion) TestProto() proto.Message { return NewNinOptNativeUnionFromFace(this) } @@ -17091,7 +17098,7 @@ func NewNinOptNativeUnionFromFace(that NinOptNativeUnionFace) *NinOptNativeUnion } type NinOptStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *NidOptNative @@ -17103,11 +17110,11 @@ type NinOptStructUnionFace interface { GetField15() []byte } -func (this *NinOptStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStructUnion) Proto() proto.Message { return this } -func (this *NinOptStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStructUnion) TestProto() proto.Message { return NewNinOptStructUnionFromFace(this) } @@ -17162,17 +17169,17 @@ func NewNinOptStructUnionFromFace(that NinOptStructUnionFace) *NinOptStructUnion } type NinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() *NinOptNative GetField210() *bool } -func (this *NinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStructUnion) Proto() proto.Message { return this } -func (this *NinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStructUnion) TestProto() proto.Message { return NewNinEmbeddedStructUnionFromFace(this) } @@ -17197,17 +17204,17 @@ func NewNinEmbeddedStructUnionFromFace(that NinEmbeddedStructUnionFace) *NinEmbe } type NinNestedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *NinOptNativeUnion GetField2() *NinOptStructUnion GetField3() *NinEmbeddedStructUnion } -func (this *NinNestedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStructUnion) Proto() proto.Message { return this } -func (this *NinNestedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStructUnion) TestProto() proto.Message { return NewNinNestedStructUnionFromFace(this) } @@ -17232,17 +17239,17 @@ func NewNinNestedStructUnionFromFace(that NinNestedStructUnionFace) *NinNestedSt } type TreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetOr() *OrBranch GetAnd() *AndBranch GetLeaf() *Leaf } -func (this *Tree) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Tree) Proto() proto.Message { return this } -func (this *Tree) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Tree) TestProto() proto.Message { return NewTreeFromFace(this) } @@ -17267,16 +17274,16 @@ func NewTreeFromFace(that TreeFace) *Tree { } type OrBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() Tree GetRight() Tree } -func (this *OrBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *OrBranch) Proto() proto.Message { return this } -func (this *OrBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *OrBranch) TestProto() proto.Message { return NewOrBranchFromFace(this) } @@ -17296,16 +17303,16 @@ func NewOrBranchFromFace(that OrBranchFace) *OrBranch { } type AndBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() Tree GetRight() Tree } -func (this *AndBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AndBranch) Proto() proto.Message { return this } -func (this *AndBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AndBranch) TestProto() proto.Message { return NewAndBranchFromFace(this) } @@ -17325,16 +17332,16 @@ func NewAndBranchFromFace(that AndBranchFace) *AndBranch { } type LeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetValue() int64 GetStrValue() string } -func (this *Leaf) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Leaf) Proto() proto.Message { return this } -func (this *Leaf) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Leaf) TestProto() proto.Message { return NewLeafFromFace(this) } @@ -17354,17 +17361,17 @@ func NewLeafFromFace(that LeafFace) *Leaf { } type DeepTreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetDown() *ADeepBranch GetAnd() *AndDeepBranch GetLeaf() *DeepLeaf } -func (this *DeepTree) Proto() github_com_gogo_protobuf_proto.Message { +func (this *DeepTree) Proto() proto.Message { return this } -func (this *DeepTree) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *DeepTree) TestProto() proto.Message { return NewDeepTreeFromFace(this) } @@ -17389,15 +17396,15 @@ func NewDeepTreeFromFace(that DeepTreeFace) *DeepTree { } type ADeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetDown() DeepTree } -func (this *ADeepBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ADeepBranch) Proto() proto.Message { return this } -func (this *ADeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ADeepBranch) TestProto() proto.Message { return NewADeepBranchFromFace(this) } @@ -17412,16 +17419,16 @@ func NewADeepBranchFromFace(that ADeepBranchFace) *ADeepBranch { } type AndDeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() DeepTree GetRight() DeepTree } -func (this *AndDeepBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AndDeepBranch) Proto() proto.Message { return this } -func (this *AndDeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AndDeepBranch) TestProto() proto.Message { return NewAndDeepBranchFromFace(this) } @@ -17441,15 +17448,15 @@ func NewAndDeepBranchFromFace(that AndDeepBranchFace) *AndDeepBranch { } type DeepLeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetTree() Tree } -func (this *DeepLeaf) Proto() github_com_gogo_protobuf_proto.Message { +func (this *DeepLeaf) Proto() proto.Message { return this } -func (this *DeepLeaf) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *DeepLeaf) TestProto() proto.Message { return NewDeepLeafFromFace(this) } @@ -17464,14 +17471,14 @@ func NewDeepLeafFromFace(that DeepLeafFace) *DeepLeaf { } type NilFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message } -func (this *Nil) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Nil) Proto() proto.Message { return this } -func (this *Nil) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Nil) TestProto() proto.Message { return NewNilFromFace(this) } @@ -17481,15 +17488,15 @@ func NewNilFromFace(that NilFace) *Nil { } type NidOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() TheTestEnum } -func (this *NidOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptEnum) Proto() proto.Message { return this } -func (this *NidOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptEnum) TestProto() proto.Message { return NewNidOptEnumFromFace(this) } @@ -17504,17 +17511,17 @@ func NewNidOptEnumFromFace(that NidOptEnumFace) *NidOptEnum { } type NinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *TheTestEnum GetField2() *YetAnotherTestEnum GetField3() *YetYetAnotherTestEnum } -func (this *NinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptEnum) Proto() proto.Message { return this } -func (this *NinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptEnum) TestProto() proto.Message { return NewNinOptEnumFromFace(this) } @@ -17539,17 +17546,17 @@ func NewNinOptEnumFromFace(that NinOptEnumFace) *NinOptEnum { } type NidRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []TheTestEnum GetField2() []YetAnotherTestEnum GetField3() []YetYetAnotherTestEnum } -func (this *NidRepEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepEnum) Proto() proto.Message { return this } -func (this *NidRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepEnum) TestProto() proto.Message { return NewNidRepEnumFromFace(this) } @@ -17574,17 +17581,17 @@ func NewNidRepEnumFromFace(that NidRepEnumFace) *NidRepEnum { } type NinRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []TheTestEnum GetField2() []YetAnotherTestEnum GetField3() []YetYetAnotherTestEnum } -func (this *NinRepEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepEnum) Proto() proto.Message { return this } -func (this *NinRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepEnum) TestProto() proto.Message { return NewNinRepEnumFromFace(this) } @@ -17609,17 +17616,17 @@ func NewNinRepEnumFromFace(that NinRepEnumFace) *NinRepEnum { } type AnotherNinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *AnotherTestEnum GetField2() *YetAnotherTestEnum GetField3() *YetYetAnotherTestEnum } -func (this *AnotherNinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AnotherNinOptEnum) Proto() proto.Message { return this } -func (this *AnotherNinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AnotherNinOptEnum) TestProto() proto.Message { return NewAnotherNinOptEnumFromFace(this) } @@ -17644,17 +17651,17 @@ func NewAnotherNinOptEnumFromFace(that AnotherNinOptEnumFace) *AnotherNinOptEnum } type TimerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetTime1() int64 GetTime2() int64 GetData() []byte } -func (this *Timer) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Timer) Proto() proto.Message { return this } -func (this *Timer) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Timer) TestProto() proto.Message { return NewTimerFromFace(this) } @@ -17679,18 +17686,18 @@ func NewTimerFromFace(that TimerFace) *Timer { } type NestedDefinitionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *int64 GetEnumField() *NestedDefinition_NestedEnum GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg GetNM() *NestedDefinition_NestedMessage } -func (this *NestedDefinition) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition) Proto() proto.Message { return this } -func (this *NestedDefinition) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition) TestProto() proto.Message { return NewNestedDefinitionFromFace(this) } @@ -17720,16 +17727,16 @@ func NewNestedDefinitionFromFace(that NestedDefinitionFace) *NestedDefinition { } type NestedDefinition_NestedMessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedField1() *uint64 GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg } -func (this *NestedDefinition_NestedMessage) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage) Proto() proto.Message { return this } -func (this *NestedDefinition_NestedMessage) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage) TestProto() proto.Message { return NewNestedDefinition_NestedMessageFromFace(this) } @@ -17749,15 +17756,15 @@ func NewNestedDefinition_NestedMessageFromFace(that NestedDefinition_NestedMessa } type NestedDefinition_NestedMessage_NestedNestedMsgFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedNestedField1() *string } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() proto.Message { return this } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() proto.Message { return NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(this) } @@ -17772,17 +17779,17 @@ func NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(that NestedDefini } type NestedScopeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetA() *NestedDefinition_NestedMessage_NestedNestedMsg GetB() *NestedDefinition_NestedEnum GetC() *NestedDefinition_NestedMessage } -func (this *NestedScope) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedScope) Proto() proto.Message { return this } -func (this *NestedScope) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedScope) TestProto() proto.Message { return NewNestedScopeFromFace(this) } @@ -17807,15 +17814,15 @@ func NewNestedScopeFromFace(that NestedScopeFace) *NestedScope { } type CustomContainerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetCustomStruct() NidOptCustom } -func (this *CustomContainer) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomContainer) Proto() proto.Message { return this } -func (this *CustomContainer) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomContainer) TestProto() proto.Message { return NewCustomContainerFromFace(this) } @@ -17830,7 +17837,7 @@ func NewCustomContainerFromFace(that CustomContainerFace) *CustomContainer { } type CustomNameNidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() float64 GetFieldB() float32 GetFieldC() int32 @@ -17848,11 +17855,11 @@ type CustomNameNidOptNativeFace interface { GetFieldO() []byte } -func (this *CustomNameNidOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNidOptNative) Proto() proto.Message { return this } -func (this *CustomNameNidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNidOptNative) TestProto() proto.Message { return NewCustomNameNidOptNativeFromFace(this) } @@ -17937,7 +17944,7 @@ func NewCustomNameNidOptNativeFromFace(that CustomNameNidOptNativeFace) *CustomN } type CustomNameNinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *float64 GetFieldB() *float32 GetFieldC() *int32 @@ -17955,11 +17962,11 @@ type CustomNameNinOptNativeFace interface { GetFieldO() []byte } -func (this *CustomNameNinOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinOptNative) Proto() proto.Message { return this } -func (this *CustomNameNinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinOptNative) TestProto() proto.Message { return NewCustomNameNinOptNativeFromFace(this) } @@ -18044,7 +18051,7 @@ func NewCustomNameNinOptNativeFromFace(that CustomNameNinOptNativeFace) *CustomN } type CustomNameNinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() []float64 GetFieldB() []float32 GetFieldC() []int32 @@ -18062,11 +18069,11 @@ type CustomNameNinRepNativeFace interface { GetFieldO() [][]byte } -func (this *CustomNameNinRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinRepNative) Proto() proto.Message { return this } -func (this *CustomNameNinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinRepNative) TestProto() proto.Message { return NewCustomNameNinRepNativeFromFace(this) } @@ -18151,7 +18158,7 @@ func NewCustomNameNinRepNativeFromFace(that CustomNameNinRepNativeFace) *CustomN } type CustomNameNinStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *float64 GetFieldB() *float32 GetFieldC() *NidOptNative @@ -18164,11 +18171,11 @@ type CustomNameNinStructFace interface { GetFieldJ() []byte } -func (this *CustomNameNinStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinStruct) Proto() proto.Message { return this } -func (this *CustomNameNinStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinStruct) TestProto() proto.Message { return NewCustomNameNinStructFromFace(this) } @@ -18228,18 +18235,18 @@ func NewCustomNameNinStructFromFace(that CustomNameNinStructFace) *CustomNameNin } type CustomNameCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *Uuid GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 GetFieldC() []Uuid GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *CustomNameCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameCustomType) Proto() proto.Message { return this } -func (this *CustomNameCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameCustomType) TestProto() proto.Message { return NewCustomNameCustomTypeFromFace(this) } @@ -18269,17 +18276,17 @@ func NewCustomNameCustomTypeFromFace(that CustomNameCustomTypeFace) *CustomNameC } type CustomNameNinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetFieldA() *NinOptNative GetFieldB() *bool } -func (this *CustomNameNinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinEmbeddedStructUnion) Proto() proto.Message { return this } -func (this *CustomNameNinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinEmbeddedStructUnion) TestProto() proto.Message { return NewCustomNameNinEmbeddedStructUnionFromFace(this) } @@ -18304,16 +18311,16 @@ func NewCustomNameNinEmbeddedStructUnionFromFace(that CustomNameNinEmbeddedStruc } type CustomNameEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *TheTestEnum GetFieldB() []TheTestEnum } -func (this *CustomNameEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameEnum) Proto() proto.Message { return this } -func (this *CustomNameEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameEnum) TestProto() proto.Message { return NewCustomNameEnumFromFace(this) } @@ -18333,15 +18340,15 @@ func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum { } type UnrecognizedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *string } -func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Unrecognized) Proto() proto.Message { return this } -func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Unrecognized) TestProto() proto.Message { return NewUnrecognizedFromFace(this) } @@ -18356,16 +18363,16 @@ func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized { } type UnrecognizedWithInnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetEmbedded() []*UnrecognizedWithInner_Inner GetField2() *string } -func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner) Proto() proto.Message { return this } -func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner) TestProto() proto.Message { return NewUnrecognizedWithInnerFromFace(this) } @@ -18385,15 +18392,15 @@ func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *Unrecogni } type UnrecognizedWithInner_InnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *uint32 } -func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner_Inner) Proto() proto.Message { return this } -func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner_Inner) TestProto() proto.Message { return NewUnrecognizedWithInner_InnerFromFace(this) } @@ -18408,16 +18415,16 @@ func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace } type UnrecognizedWithEmbedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded GetField2() *string } -func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed) Proto() proto.Message { return this } -func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed) TestProto() proto.Message { return NewUnrecognizedWithEmbedFromFace(this) } @@ -18437,15 +18444,15 @@ func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *Unrecogni } type UnrecognizedWithEmbed_EmbeddedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *uint32 } -func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed_Embedded) Proto() proto.Message { return this } -func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed_Embedded) TestProto() proto.Message { return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) } @@ -18460,16 +18467,16 @@ func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_Embedd } type NodeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLabel() *string GetChildren() []*Node } -func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Node) Proto() proto.Message { return this } -func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Node) TestProto() proto.Message { return NewNodeFromFace(this) } @@ -18489,15 +18496,15 @@ func NewNodeFromFace(that NodeFace) *Node { } type NonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *T } -func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NonByteCustomType) Proto() proto.Message { return this } -func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NonByteCustomType) TestProto() proto.Message { return NewNonByteCustomTypeFromFace(this) } @@ -18512,15 +18519,15 @@ func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType } type NidOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() T } -func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNonByteCustomType) Proto() proto.Message { return this } -func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNonByteCustomType) TestProto() proto.Message { return NewNidOptNonByteCustomTypeFromFace(this) } @@ -18535,15 +18542,15 @@ func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOp } type NinOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *T } -func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNonByteCustomType) Proto() proto.Message { return this } -func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNonByteCustomType) TestProto() proto.Message { return NewNinOptNonByteCustomTypeFromFace(this) } @@ -18558,15 +18565,15 @@ func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOp } type NidRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []T } -func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) Proto() proto.Message { return this } -func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) TestProto() proto.Message { return NewNidRepNonByteCustomTypeFromFace(this) } @@ -18581,15 +18588,15 @@ func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRe } type NinRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []T } -func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) Proto() proto.Message { return this } -func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) TestProto() proto.Message { return NewNinRepNonByteCustomTypeFromFace(this) } @@ -18604,15 +18611,15 @@ func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRe } type ProtoTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField2() *string } -func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) Proto() proto.Message { return this } -func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) TestProto() proto.Message { return NewProtoTypeFromFace(this) } @@ -19003,10 +19010,18 @@ func (this *NidRepStruct) GoString() string { s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") + vs := make([]*NidOptNative, len(this.Field3)) + for i := range vs { + vs[i] = &this.Field3[i] + } + s = append(s, "Field3: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") + vs := make([]*NinOptNative, len(this.Field4)) + for i := range vs { + vs[i] = &this.Field4[i] + } + s = append(s, "Field4: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field6 != nil { s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") @@ -19015,7 +19030,11 @@ func (this *NidRepStruct) GoString() string { s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") } if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") + vs := make([]*NidOptNative, len(this.Field8)) + for i := range vs { + vs[i] = &this.Field8[i] + } + s = append(s, "Field8: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field13 != nil { s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") @@ -19120,7 +19139,11 @@ func (this *NidNestedStruct) GoString() string { s = append(s, "&test.NidNestedStruct{") s = append(s, "Field1: "+strings.Replace(this.Field1.GoString(), `&`, ``, 1)+",\n") if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") + vs := make([]*NidRepStruct, len(this.Field2)) + for i := range vs { + vs[i] = &this.Field2[i] + } + s = append(s, "Field2: "+fmt.Sprintf("%#v", vs)+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19505,13 +19528,13 @@ func (this *NinOptEnum) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.NinOptEnum{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19568,13 +19591,13 @@ func (this *NinOptEnumDefault) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.NinOptEnumDefault{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19589,13 +19612,13 @@ func (this *AnotherNinOptEnum) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.AnotherNinOptEnum{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19610,13 +19633,13 @@ func (this *AnotherNinOptEnumDefault) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.AnotherNinOptEnumDefault{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19687,7 +19710,7 @@ func (this *NestedDefinition) GoString() string { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } if this.EnumField != nil { - s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "test.NestedDefinition_NestedEnum")+",\n") + s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "NestedDefinition_NestedEnum")+",\n") } if this.NNM != nil { s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") @@ -19744,7 +19767,7 @@ func (this *NestedScope) GoString() string { s = append(s, "A: "+fmt.Sprintf("%#v", this.A)+",\n") } if this.B != nil { - s = append(s, "B: "+valueToGoStringThetest(this.B, "test.NestedDefinition_NestedEnum")+",\n") + s = append(s, "B: "+valueToGoStringThetest(this.B, "NestedDefinition_NestedEnum")+",\n") } if this.C != nil { s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n") @@ -20060,7 +20083,7 @@ func (this *CustomNameEnum) GoString() string { s := make([]string, 0, 6) s = append(s, "&test.CustomNameEnum{") if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "test.TheTestEnum")+",\n") + s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "TheTestEnum")+",\n") } if this.FieldB != nil { s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") @@ -20273,8 +20296,8 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { - e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) +func extensionToGoStringThetest(m proto.Message) string { + e := proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } @@ -20308,10 +20331,12 @@ func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 dAtA[i] = 0x18 i++ i = encodeVarintThetest(dAtA, i, uint64(m.Field3)) @@ -20332,16 +20357,20 @@ func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9)) + i += 4 dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10)) + i += 4 dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11)) + i += 8 dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12)) + i += 8 dAtA[i] = 0x68 i++ if m.Field13 { @@ -20384,12 +20413,14 @@ func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x18 @@ -20424,22 +20455,26 @@ func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.Field9 != nil { dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field9)) + i += 4 } if m.Field10 != nil { dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field10)) + i += 4 } if m.Field11 != nil { dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field11)) + i += 8 } if m.Field12 != nil { dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field12)) + i += 8 } if m.Field13 != nil { dAtA[i] = 0x68 @@ -20489,22 +20524,8 @@ func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f1 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f1) - i++ - dAtA[i] = uint8(f1 >> 8) - i++ - dAtA[i] = uint8(f1 >> 16) - i++ - dAtA[i] = uint8(f1 >> 24) - i++ - dAtA[i] = uint8(f1 >> 32) - i++ - dAtA[i] = uint8(f1 >> 40) - i++ - dAtA[i] = uint8(f1 >> 48) - i++ - dAtA[i] = uint8(f1 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f1)) + i += 8 } } if len(m.Field2) > 0 { @@ -20512,14 +20533,8 @@ func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f2 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f2) - i++ - dAtA[i] = uint8(f2 >> 8) - i++ - dAtA[i] = uint8(f2 >> 16) - i++ - dAtA[i] = uint8(f2 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f2)) + i += 4 } } if len(m.Field3) > 0 { @@ -20582,72 +20597,32 @@ func (m *NidRepNative) MarshalTo(dAtA []byte) (int, error) { for _, num := range m.Field9 { dAtA[i] = 0x4d i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field10) > 0 { for _, num := range m.Field10 { dAtA[i] = 0x55 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field11) > 0 { for _, num := range m.Field11 { dAtA[i] = 0x59 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field12) > 0 { for _, num := range m.Field12 { dAtA[i] = 0x61 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field13) > 0 { @@ -20711,22 +20686,8 @@ func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f5 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f5) - i++ - dAtA[i] = uint8(f5 >> 8) - i++ - dAtA[i] = uint8(f5 >> 16) - i++ - dAtA[i] = uint8(f5 >> 24) - i++ - dAtA[i] = uint8(f5 >> 32) - i++ - dAtA[i] = uint8(f5 >> 40) - i++ - dAtA[i] = uint8(f5 >> 48) - i++ - dAtA[i] = uint8(f5 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f5)) + i += 8 } } if len(m.Field2) > 0 { @@ -20734,14 +20695,8 @@ func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f6 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f6) - i++ - dAtA[i] = uint8(f6 >> 8) - i++ - dAtA[i] = uint8(f6 >> 16) - i++ - dAtA[i] = uint8(f6 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f6)) + i += 4 } } if len(m.Field3) > 0 { @@ -20804,72 +20759,32 @@ func (m *NinRepNative) MarshalTo(dAtA []byte) (int, error) { for _, num := range m.Field9 { dAtA[i] = 0x4d i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field10) > 0 { for _, num := range m.Field10 { dAtA[i] = 0x55 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field11) > 0 { for _, num := range m.Field11 { dAtA[i] = 0x59 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field12) > 0 { for _, num := range m.Field12 { dAtA[i] = 0x61 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field13) > 0 { @@ -20934,22 +20849,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f9 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f9) - i++ - dAtA[i] = uint8(f9 >> 8) - i++ - dAtA[i] = uint8(f9 >> 16) - i++ - dAtA[i] = uint8(f9 >> 24) - i++ - dAtA[i] = uint8(f9 >> 32) - i++ - dAtA[i] = uint8(f9 >> 40) - i++ - dAtA[i] = uint8(f9 >> 48) - i++ - dAtA[i] = uint8(f9 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f9)) + i += 8 } } if len(m.Field2) > 0 { @@ -20958,14 +20859,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f10 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f10) - i++ - dAtA[i] = uint8(f10 >> 8) - i++ - dAtA[i] = uint8(f10 >> 16) - i++ - dAtA[i] = uint8(f10 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f10)) + i += 4 } } if len(m.Field3) > 0 { @@ -21079,14 +20974,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field10) > 0 { @@ -21094,14 +20983,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field11) > 0 { @@ -21109,22 +20992,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field12) > 0 { @@ -21132,22 +21001,8 @@ func (m *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field13) > 0 { @@ -21190,22 +21045,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f25 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f25) - i++ - dAtA[i] = uint8(f25 >> 8) - i++ - dAtA[i] = uint8(f25 >> 16) - i++ - dAtA[i] = uint8(f25 >> 24) - i++ - dAtA[i] = uint8(f25 >> 32) - i++ - dAtA[i] = uint8(f25 >> 40) - i++ - dAtA[i] = uint8(f25 >> 48) - i++ - dAtA[i] = uint8(f25 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f25)) + i += 8 } } if len(m.Field2) > 0 { @@ -21214,14 +21055,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f26 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f26) - i++ - dAtA[i] = uint8(f26 >> 8) - i++ - dAtA[i] = uint8(f26 >> 16) - i++ - dAtA[i] = uint8(f26 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f26)) + i += 4 } } if len(m.Field3) > 0 { @@ -21335,14 +21170,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field10) > 0 { @@ -21350,14 +21179,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field11) > 0 { @@ -21365,22 +21188,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field12) > 0 { @@ -21388,22 +21197,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field13) > 0 { @@ -21442,10 +21237,12 @@ func (m *NidOptStruct) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 dAtA[i] = 0x1a i++ i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) @@ -21518,12 +21315,14 @@ func (m *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x1a @@ -21613,22 +21412,8 @@ func (m *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f47 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f47) - i++ - dAtA[i] = uint8(f47 >> 8) - i++ - dAtA[i] = uint8(f47 >> 16) - i++ - dAtA[i] = uint8(f47 >> 24) - i++ - dAtA[i] = uint8(f47 >> 32) - i++ - dAtA[i] = uint8(f47 >> 40) - i++ - dAtA[i] = uint8(f47 >> 48) - i++ - dAtA[i] = uint8(f47 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f47)) + i += 8 } } if len(m.Field2) > 0 { @@ -21636,14 +21421,8 @@ func (m *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f48 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f48) - i++ - dAtA[i] = uint8(f48 >> 8) - i++ - dAtA[i] = uint8(f48 >> 16) - i++ - dAtA[i] = uint8(f48 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f48)) + i += 4 } } if len(m.Field3) > 0 { @@ -21764,22 +21543,8 @@ func (m *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f50 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f50) - i++ - dAtA[i] = uint8(f50 >> 8) - i++ - dAtA[i] = uint8(f50 >> 16) - i++ - dAtA[i] = uint8(f50 >> 24) - i++ - dAtA[i] = uint8(f50 >> 32) - i++ - dAtA[i] = uint8(f50 >> 40) - i++ - dAtA[i] = uint8(f50 >> 48) - i++ - dAtA[i] = uint8(f50 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f50)) + i += 8 } } if len(m.Field2) > 0 { @@ -21787,14 +21552,8 @@ func (m *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f51 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f51) - i++ - dAtA[i] = uint8(f51 >> 8) - i++ - dAtA[i] = uint8(f51 >> 16) - i++ - dAtA[i] = uint8(f51 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f51)) + i += 4 } } if len(m.Field3) > 0 { @@ -22302,12 +22061,14 @@ func (m *NinOptNativeUnion) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x18 @@ -22375,12 +22136,14 @@ func (m *NinOptStructUnion) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x1a @@ -23135,10 +22898,12 @@ func (m *Timer) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.Time1)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Time1)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.Time2)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Time2)) + i += 8 if m.Data != nil { dAtA[i] = 0x1a i++ @@ -23171,7 +22936,7 @@ func (m *MyExtendable) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) } - n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + n, err := proto.EncodeInternalExtension(m, dAtA[i:]) if err != nil { return 0, err } @@ -23217,7 +22982,7 @@ func (m *OtherExtenable) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintThetest(dAtA, i, uint64(*m.Field13)) } - n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) + n, err := proto.EncodeInternalExtension(m, dAtA[i:]) if err != nil { return 0, err } @@ -23297,7 +23062,8 @@ func (m *NestedDefinition_NestedMessage) MarshalTo(dAtA []byte) (int, error) { if m.NestedField1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.NestedField1)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.NestedField1)) + i += 8 } if m.NNM != nil { dAtA[i] = 0x12 @@ -23406,12 +23172,14 @@ func (m *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x18 @@ -23446,22 +23214,26 @@ func (m *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { if m.Field9 != nil { dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field9)) + i += 4 } if m.Field10 != nil { dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field10)) + i += 4 } if m.Field11 != nil { dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field11)) + i += 8 } if m.Field12 != nil { dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field12)) + i += 8 } if m.Field13 != nil { dAtA[i] = 0x68 @@ -23537,10 +23309,12 @@ func (m *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(m.FieldA)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.FieldA)))) + i += 8 dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(m.FieldB)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.FieldB)))) + i += 4 dAtA[i] = 0x18 i++ i = encodeVarintThetest(dAtA, i, uint64(m.FieldC)) @@ -23561,16 +23335,20 @@ func (m *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintThetest(dAtA, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(m.FieldI)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.FieldI)) + i += 4 dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(m.FieldJ)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.FieldJ)) + i += 4 dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.FieldK)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.FieldK)) + i += 8 dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(m.FieldL)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.FieldL)) + i += 8 dAtA[i] = 0x68 i++ if m.FieldM { @@ -23613,12 +23391,14 @@ func (m *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.FieldA != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.FieldA)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.FieldA)))) + i += 8 } if m.FieldB != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.FieldB)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.FieldB)))) + i += 4 } if m.FieldC != nil { dAtA[i] = 0x18 @@ -23653,22 +23433,26 @@ func (m *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.FieldI != nil { dAtA[i] = 0x4d i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.FieldI)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.FieldI)) + i += 4 } if m.FieldJ != nil { dAtA[i] = 0x55 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(*m.FieldJ)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.FieldJ)) + i += 4 } if m.FieldK != nil { dAtA[i] = 0x59 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.FieldK)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.FieldK)) + i += 8 } if m.FielL != nil { dAtA[i] = 0x61 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(*m.FielL)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.FielL)) + i += 8 } if m.FieldM != nil { dAtA[i] = 0x68 @@ -23718,22 +23502,8 @@ func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x9 i++ f92 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f92) - i++ - dAtA[i] = uint8(f92 >> 8) - i++ - dAtA[i] = uint8(f92 >> 16) - i++ - dAtA[i] = uint8(f92 >> 24) - i++ - dAtA[i] = uint8(f92 >> 32) - i++ - dAtA[i] = uint8(f92 >> 40) - i++ - dAtA[i] = uint8(f92 >> 48) - i++ - dAtA[i] = uint8(f92 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f92)) + i += 8 } } if len(m.FieldB) > 0 { @@ -23741,14 +23511,8 @@ func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x15 i++ f93 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f93) - i++ - dAtA[i] = uint8(f93 >> 8) - i++ - dAtA[i] = uint8(f93 >> 16) - i++ - dAtA[i] = uint8(f93 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f93)) + i += 4 } } if len(m.FieldC) > 0 { @@ -23811,72 +23575,32 @@ func (m *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { for _, num := range m.FieldI { dAtA[i] = 0x4d i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.FieldJ) > 0 { for _, num := range m.FieldJ { dAtA[i] = 0x55 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.FieldK) > 0 { for _, num := range m.FieldK { dAtA[i] = 0x59 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.FieldL) > 0 { for _, num := range m.FieldL { dAtA[i] = 0x61 i++ - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.FieldM) > 0 { @@ -23938,12 +23662,14 @@ func (m *CustomNameNinStruct) MarshalTo(dAtA []byte) (int, error) { if m.FieldA != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Thetest(dAtA, i, uint64(math.Float64bits(float64(*m.FieldA)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.FieldA)))) + i += 8 } if m.FieldB != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Thetest(dAtA, i, uint32(math.Float32bits(float32(*m.FieldB)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.FieldB)))) + i += 4 } if m.FieldC != nil { dAtA[i] = 0x1a @@ -24564,24 +24290,6 @@ func (m *ProtoType) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Thetest(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 encodeFixed32Thetest(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 encodeVarintThetest(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -26109,7 +25817,7 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -26153,7 +25861,7 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -26767,7 +26475,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -28118,7 +27826,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) + n += proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -28138,7 +27846,7 @@ func (m *OtherExtenable) Size() (n int) { if m.Field13 != nil { n += 1 + sovThetest(uint64(*m.Field13)) } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) + n += proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -29354,7 +29062,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, + `XXX_InternalExtensions:` + proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -29368,7 +29076,7 @@ func (this *OtherExtenable) String() string { `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, + `XXX_InternalExtensions:` + proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -29600,7 +29308,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -30007,198 +29715,198 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { func init() { proto.RegisterFile("combos/marshaler/thetest.proto", fileDescriptorThetest) } var fileDescriptorThetest = []byte{ - // 3083 bytes of a gzipped FileDescriptorProto + // 3086 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, - 0xd5, 0xe7, 0xec, 0x50, 0x0e, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, + 0xd5, 0xe7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, - 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, + 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x22, 0x51, 0x69, 0x29, 0x90, 0xab, 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, - 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, - 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, - 0xa0, 0xee, 0x76, 0x0f, 0xef, 0x75, 0xfb, 0x4b, 0x87, 0xad, 0x5e, 0x7f, 0xbf, 0x75, 0xa0, 0xf7, - 0x96, 0xcc, 0x7d, 0xdd, 0xd4, 0xfb, 0xe6, 0xe2, 0x51, 0xaf, 0x6b, 0x76, 0xe5, 0xa4, 0xf5, 0x77, - 0xe6, 0xda, 0x5e, 0xc7, 0xdc, 0x3f, 0xbe, 0xb7, 0xb8, 0xdb, 0x3d, 0x5c, 0xda, 0xeb, 0xee, 0x75, - 0x97, 0x6c, 0xe1, 0xbd, 0xe3, 0xfb, 0xf6, 0x2f, 0xfb, 0x87, 0xfd, 0x97, 0x63, 0xa4, 0xfd, 0x13, - 0xc3, 0x64, 0xa3, 0xd3, 0xde, 0x3e, 0x32, 0x1b, 0x2d, 0xb3, 0xf3, 0x96, 0x2e, 0xcf, 0xc2, 0x85, - 0x9b, 0x1d, 0xfd, 0xa0, 0xbd, 0xac, 0xa0, 0x2c, 0xca, 0xa1, 0x4a, 0xf2, 0xe4, 0x74, 0x2e, 0xd1, - 0x24, 0x63, 0x54, 0x5a, 0x54, 0xa4, 0x2c, 0xca, 0x49, 0x9c, 0xb4, 0x48, 0xa5, 0x2b, 0x0a, 0xce, - 0xa2, 0xdc, 0x18, 0x27, 0x5d, 0xa1, 0xd2, 0x92, 0x92, 0xcc, 0xa2, 0x1c, 0xe6, 0xa4, 0x25, 0x2a, - 0x5d, 0x55, 0xc6, 0xb2, 0x28, 0x77, 0x91, 0x93, 0xae, 0x52, 0xe9, 0x9a, 0x72, 0x21, 0x8b, 0x72, - 0x49, 0x4e, 0xba, 0x46, 0xa5, 0xd7, 0x95, 0x67, 0xb2, 0x28, 0x77, 0x89, 0x93, 0x5e, 0xa7, 0xd2, - 0x75, 0x25, 0x95, 0x45, 0x39, 0x99, 0x93, 0xae, 0x53, 0xe9, 0x0d, 0x65, 0x3c, 0x8b, 0x72, 0xcf, - 0x70, 0xd2, 0x1b, 0xb2, 0x0a, 0xcf, 0x38, 0x4f, 0x5e, 0x50, 0x20, 0x8b, 0x72, 0xd3, 0x44, 0xec, - 0x0e, 0x7a, 0xf2, 0x65, 0x65, 0x22, 0x8b, 0x72, 0x17, 0x78, 0xf9, 0xb2, 0x27, 0x2f, 0x2a, 0x93, - 0x59, 0x94, 0x4b, 0xf3, 0xf2, 0xa2, 0x27, 0x5f, 0x51, 0x2e, 0x66, 0x51, 0x2e, 0xc5, 0xcb, 0x57, - 0x3c, 0x79, 0x49, 0x99, 0xca, 0xa2, 0xdc, 0x38, 0x2f, 0x2f, 0x79, 0xf2, 0x55, 0x65, 0x3a, 0x8b, - 0x72, 0x93, 0xbc, 0x7c, 0x55, 0x7b, 0xd7, 0x86, 0xd7, 0xf0, 0xe0, 0x9d, 0xe1, 0xe1, 0xa5, 0xc0, - 0xce, 0xf0, 0xc0, 0x52, 0x48, 0x67, 0x78, 0x48, 0x29, 0x98, 0x33, 0x3c, 0x98, 0x14, 0xc6, 0x19, - 0x1e, 0x46, 0x0a, 0xe0, 0x0c, 0x0f, 0x20, 0x85, 0x6e, 0x86, 0x87, 0x8e, 0x82, 0x36, 0xc3, 0x83, - 0x46, 0xe1, 0x9a, 0xe1, 0xe1, 0xa2, 0x40, 0x29, 0x02, 0x50, 0x1e, 0x44, 0x8a, 0x00, 0x91, 0x07, - 0x8e, 0x22, 0x80, 0xe3, 0xc1, 0xa2, 0x08, 0xb0, 0x78, 0x80, 0x28, 0x02, 0x20, 0x1e, 0x14, 0x8a, - 0x00, 0x85, 0x07, 0x02, 0xc9, 0xb1, 0xa6, 0x7e, 0x14, 0x90, 0x63, 0x78, 0x68, 0x8e, 0xe1, 0xa1, - 0x39, 0x86, 0x87, 0xe6, 0x18, 0x1e, 0x9a, 0x63, 0x78, 0x68, 0x8e, 0xe1, 0xa1, 0x39, 0x86, 0x87, - 0xe6, 0x18, 0x1e, 0x9a, 0x63, 0x78, 0x78, 0x8e, 0xe1, 0x88, 0x1c, 0xc3, 0x11, 0x39, 0x86, 0x23, - 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x8e, 0xc8, 0x31, 0x1c, 0x9a, 0x63, 0x1e, 0xbc, 0x33, 0x3c, 0xbc, - 0x81, 0x39, 0x86, 0x43, 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, - 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x61, 0x39, 0x86, 0x43, 0x73, 0x0c, 0x87, - 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, 0x9a, 0x63, 0x38, 0x34, 0xc7, 0x30, 0x9b, 0x63, 0x7f, 0xc6, - 0x20, 0x3b, 0x39, 0x76, 0xbb, 0xb5, 0xfb, 0x43, 0xbd, 0x4d, 0xa0, 0x50, 0x85, 0x4c, 0xbb, 0x60, - 0x41, 0x97, 0xf6, 0x20, 0x51, 0x85, 0x5c, 0xe3, 0xe5, 0x45, 0x2a, 0x77, 0xb3, 0x8d, 0x97, 0xaf, - 0x50, 0xb9, 0x9b, 0x6f, 0xbc, 0xbc, 0x44, 0xe5, 0x6e, 0xc6, 0xf1, 0xf2, 0x55, 0x2a, 0x77, 0x73, - 0x8e, 0x97, 0xaf, 0x51, 0xb9, 0x9b, 0x75, 0xbc, 0xfc, 0x3a, 0x95, 0xbb, 0x79, 0xc7, 0xcb, 0xd7, - 0xa9, 0xdc, 0xcd, 0x3c, 0x5e, 0x7e, 0x43, 0xce, 0x8a, 0xb9, 0xe7, 0x2a, 0x50, 0x68, 0xb3, 0x62, - 0xf6, 0x09, 0x1a, 0xcb, 0x9e, 0x86, 0x9b, 0x7f, 0x82, 0x46, 0xd1, 0xd3, 0x70, 0x33, 0x50, 0xd0, - 0x58, 0xd1, 0xde, 0xb3, 0xe1, 0x33, 0x44, 0xf8, 0x32, 0x02, 0x7c, 0x12, 0x03, 0x5d, 0x46, 0x80, - 0x4e, 0x62, 0x60, 0xcb, 0x08, 0xb0, 0x49, 0x0c, 0x64, 0x19, 0x01, 0x32, 0x89, 0x81, 0x2b, 0x23, - 0xc0, 0x25, 0x31, 0x50, 0x65, 0x04, 0xa8, 0x24, 0x06, 0xa6, 0x8c, 0x00, 0x93, 0xc4, 0x40, 0x94, - 0x11, 0x20, 0x92, 0x18, 0x78, 0x32, 0x02, 0x3c, 0x12, 0x03, 0xcd, 0xac, 0x08, 0x8d, 0xc4, 0xc2, - 0x32, 0x2b, 0xc2, 0x22, 0xb1, 0x90, 0xcc, 0x8a, 0x90, 0x48, 0x2c, 0x1c, 0xb3, 0x22, 0x1c, 0x12, - 0x0b, 0xc5, 0x97, 0x92, 0xdb, 0x11, 0xbe, 0x69, 0xf6, 0x8e, 0x77, 0xcd, 0x73, 0x75, 0x84, 0x05, - 0xae, 0x7d, 0x98, 0x28, 0xca, 0x8b, 0x76, 0xc3, 0xca, 0x76, 0x9c, 0xc2, 0x1b, 0xac, 0xc0, 0x35, - 0x16, 0x8c, 0x85, 0x11, 0x6c, 0x51, 0x3a, 0x57, 0x6f, 0x58, 0xe0, 0xda, 0x8c, 0x68, 0xff, 0xd6, - 0xbf, 0xf2, 0x8e, 0xed, 0x91, 0xe4, 0x76, 0x6c, 0x24, 0xfc, 0xa3, 0x76, 0x6c, 0xf9, 0xe8, 0x90, - 0xd3, 0x60, 0xe7, 0xa3, 0x83, 0xed, 0x7b, 0xeb, 0xc4, 0xed, 0xe0, 0xf2, 0xd1, 0xa1, 0xa5, 0x41, - 0x7d, 0xba, 0xfd, 0x16, 0x61, 0x70, 0x53, 0x3f, 0x0a, 0x60, 0xf0, 0xa8, 0xfd, 0x56, 0x81, 0x2b, - 0x25, 0xa3, 0x32, 0x18, 0x8f, 0xcc, 0xe0, 0x51, 0x3b, 0xaf, 0x02, 0x57, 0x5e, 0x46, 0x66, 0xf0, - 0x57, 0xd0, 0x0f, 0x11, 0x06, 0x7b, 0xe1, 0x1f, 0xb5, 0x1f, 0xca, 0x47, 0x87, 0x3c, 0x90, 0xc1, - 0x78, 0x04, 0x06, 0xc7, 0xe9, 0x8f, 0xf2, 0xd1, 0xa1, 0x0d, 0x66, 0xf0, 0xb9, 0xbb, 0x99, 0xf7, - 0x11, 0x5c, 0x6a, 0x74, 0xda, 0xf5, 0xc3, 0x7b, 0x7a, 0xbb, 0xad, 0xb7, 0x49, 0x1c, 0x0b, 0x5c, - 0x25, 0x08, 0x81, 0xfa, 0xf1, 0xe9, 0x9c, 0x17, 0xe1, 0x55, 0x48, 0x39, 0x31, 0x2d, 0x14, 0x94, - 0x13, 0x14, 0x51, 0xe1, 0xa8, 0xaa, 0x7c, 0xc5, 0x35, 0x5b, 0x2e, 0x28, 0x7f, 0x47, 0x4c, 0x95, - 0xa3, 0xc3, 0xda, 0xcf, 0x6d, 0x0f, 0x8d, 0x73, 0x7b, 0xb8, 0x14, 0xcb, 0x43, 0xc6, 0xb7, 0x17, - 0x7c, 0xbe, 0x31, 0x5e, 0x1d, 0xc3, 0x74, 0xa3, 0xd3, 0x6e, 0xe8, 0x7d, 0x33, 0x9e, 0x4b, 0x8e, - 0x8e, 0x50, 0x0f, 0x0a, 0x1c, 0x2d, 0x59, 0x0b, 0x4a, 0x69, 0xbe, 0x46, 0x68, 0x1d, 0x6b, 0x59, - 0x83, 0x5b, 0x36, 0x1f, 0xb6, 0xac, 0x57, 0xd9, 0xe9, 0x82, 0xf9, 0xb0, 0x05, 0xbd, 0x1c, 0xa2, - 0x4b, 0xbd, 0xed, 0xbe, 0x9c, 0xab, 0xc7, 0x7d, 0xb3, 0x7b, 0x28, 0xcf, 0x82, 0xb4, 0xd9, 0xb6, - 0xd7, 0x98, 0xac, 0x4c, 0x5a, 0x4e, 0x7d, 0x7c, 0x3a, 0x97, 0xbc, 0x73, 0xdc, 0x69, 0x37, 0xa5, - 0xcd, 0xb6, 0x7c, 0x0b, 0xc6, 0xbe, 0xd3, 0x3a, 0x38, 0xd6, 0xed, 0x57, 0xc4, 0x64, 0xa5, 0x44, - 0x14, 0x5e, 0x0e, 0xdd, 0x23, 0xb2, 0x16, 0x5e, 0xda, 0xb5, 0xa7, 0x5e, 0xbc, 0xd3, 0x31, 0xcc, - 0xe5, 0xe2, 0x7a, 0xd3, 0x99, 0x42, 0xfb, 0x3e, 0x80, 0xb3, 0x66, 0xad, 0xd5, 0xdf, 0x97, 0x1b, - 0xee, 0xcc, 0xce, 0xd2, 0xeb, 0x1f, 0x9f, 0xce, 0x95, 0xe2, 0xcc, 0x7a, 0xad, 0xdd, 0xea, 0xef, - 0x5f, 0x33, 0x1f, 0x1c, 0xe9, 0x8b, 0x95, 0x07, 0xa6, 0xde, 0x77, 0x67, 0x3f, 0x72, 0xdf, 0x7a, - 0xe4, 0xb9, 0x14, 0xe6, 0xb9, 0x52, 0xdc, 0x33, 0xdd, 0xe4, 0x9f, 0xa9, 0xf0, 0xa4, 0xcf, 0xf3, - 0xb6, 0xfb, 0x92, 0x10, 0x22, 0x89, 0xa3, 0x22, 0x89, 0xcf, 0x1b, 0xc9, 0x23, 0xb7, 0x3e, 0x0a, - 0xcf, 0x8a, 0x87, 0x3d, 0x2b, 0x3e, 0xcf, 0xb3, 0xfe, 0xdb, 0xc9, 0x56, 0x9a, 0x4f, 0x77, 0x8c, - 0x4e, 0xd7, 0xf8, 0xda, 0xed, 0x05, 0x3d, 0xd5, 0x2e, 0xa0, 0x9c, 0x3c, 0x79, 0x38, 0x87, 0xb4, - 0xf7, 0x25, 0xf7, 0xc9, 0x9d, 0x44, 0x7a, 0xb2, 0x27, 0xff, 0xba, 0xf4, 0x54, 0x5f, 0x45, 0x84, - 0x7e, 0x85, 0x60, 0xc6, 0x57, 0xc9, 0x9d, 0x30, 0x3d, 0xdd, 0x72, 0x6e, 0x8c, 0x5a, 0xce, 0x89, - 0x83, 0xbf, 0x47, 0xf0, 0x9c, 0x50, 0x5e, 0x1d, 0xf7, 0x96, 0x04, 0xf7, 0x9e, 0xf7, 0xaf, 0x64, - 0x2b, 0x32, 0xde, 0xb1, 0xf0, 0x0a, 0x06, 0xcc, 0xcc, 0x14, 0xf7, 0x92, 0x80, 0xfb, 0x2c, 0x35, - 0x08, 0x08, 0x97, 0xcb, 0x00, 0xe2, 0x76, 0x17, 0x92, 0x3b, 0x3d, 0x5d, 0x97, 0x55, 0x90, 0xb6, - 0x7b, 0xc4, 0xc3, 0x29, 0xc7, 0x7e, 0xbb, 0x57, 0xe9, 0xb5, 0x8c, 0xdd, 0xfd, 0xa6, 0xb4, 0xdd, - 0x93, 0xaf, 0x00, 0xde, 0x30, 0xda, 0xc4, 0xa3, 0x69, 0x47, 0x61, 0xc3, 0x68, 0x13, 0x0d, 0x4b, - 0x26, 0xab, 0x90, 0x7c, 0x43, 0x6f, 0xdd, 0x27, 0x4e, 0x80, 0xa3, 0x63, 0x8d, 0x34, 0xed, 0x71, - 0xb2, 0xe0, 0xf7, 0x20, 0xe5, 0x4e, 0x2c, 0xcf, 0x5b, 0x16, 0xf7, 0x4d, 0xb2, 0x2c, 0xb1, 0xb0, - 0xdc, 0x21, 0x6f, 0x2e, 0x5b, 0x2a, 0x2f, 0xc0, 0x58, 0xb3, 0xb3, 0xb7, 0x6f, 0x92, 0xc5, 0xfd, - 0x6a, 0x8e, 0x58, 0xbb, 0x0b, 0xe3, 0xd4, 0xa3, 0xa7, 0x3c, 0x75, 0xcd, 0x79, 0x34, 0x39, 0xc3, - 0xbe, 0x4f, 0xdc, 0x7d, 0x4b, 0x67, 0x48, 0xce, 0x42, 0xea, 0x4d, 0xb3, 0xe7, 0x15, 0x7d, 0xb7, - 0x23, 0xa5, 0xa3, 0xda, 0xbb, 0x08, 0x52, 0x35, 0x5d, 0x3f, 0xb2, 0x03, 0x7e, 0x15, 0x92, 0xb5, - 0xee, 0x8f, 0x0c, 0xe2, 0xe0, 0x25, 0x12, 0x51, 0x4b, 0x4c, 0x62, 0x6a, 0x8b, 0xe5, 0xab, 0x6c, - 0xdc, 0x9f, 0xa5, 0x71, 0x67, 0xf4, 0xec, 0xd8, 0x6b, 0x5c, 0xec, 0x09, 0x80, 0x96, 0x92, 0x2f, - 0xfe, 0xd7, 0x61, 0x82, 0x59, 0x45, 0xce, 0x11, 0x37, 0x24, 0xd1, 0x90, 0x8d, 0x95, 0xa5, 0xa1, - 0xe9, 0x70, 0x91, 0x5b, 0xd8, 0x32, 0x65, 0x42, 0x1c, 0x62, 0x6a, 0x87, 0x39, 0xcf, 0x87, 0x39, - 0x58, 0x95, 0x84, 0xba, 0xe0, 0xc4, 0xc8, 0x0e, 0xf7, 0xbc, 0x43, 0xce, 0x70, 0x10, 0xad, 0xbf, - 0xb5, 0x31, 0xc0, 0x8d, 0xce, 0x81, 0xf6, 0x2a, 0x80, 0x93, 0xf2, 0x75, 0xe3, 0xf8, 0x50, 0xc8, - 0xba, 0x29, 0x37, 0xc0, 0x3b, 0xfb, 0xfa, 0x8e, 0xde, 0xb7, 0x55, 0xf8, 0x7e, 0xca, 0x2a, 0x30, - 0xe0, 0xa4, 0x98, 0x6d, 0xff, 0x52, 0xa4, 0x7d, 0x60, 0x27, 0x66, 0xa9, 0x2a, 0x8e, 0xea, 0x5d, - 0xdd, 0xdc, 0x30, 0xba, 0xe6, 0xbe, 0xde, 0x13, 0x2c, 0x8a, 0xf2, 0x0a, 0x97, 0xb0, 0x53, 0xc5, - 0x17, 0xa8, 0x45, 0xa8, 0xd1, 0x8a, 0xf6, 0xa1, 0xed, 0xa0, 0xd5, 0x0a, 0xf8, 0x1e, 0x10, 0xc7, - 0x78, 0x40, 0x79, 0x8d, 0xeb, 0xdf, 0x86, 0xb8, 0x29, 0x7c, 0x5a, 0xde, 0xe0, 0xbe, 0x73, 0x86, - 0x3b, 0xcb, 0x7f, 0x63, 0xba, 0x31, 0x75, 0x5d, 0x7e, 0x29, 0xd2, 0xe5, 0x90, 0xee, 0x76, 0xd4, - 0x98, 0xe2, 0xb8, 0x31, 0xfd, 0x13, 0xed, 0x38, 0xac, 0xe1, 0x9a, 0x7e, 0xbf, 0x75, 0x7c, 0x60, - 0xca, 0x2f, 0x47, 0x62, 0x5f, 0x46, 0x55, 0xea, 0x6a, 0x29, 0x2e, 0xfc, 0x65, 0xa9, 0x52, 0xa1, - 0xee, 0x5e, 0x1f, 0x81, 0x02, 0x65, 0xa9, 0x5a, 0xa5, 0x65, 0x3b, 0xf5, 0xde, 0xc3, 0x39, 0xf4, - 0xc1, 0xc3, 0xb9, 0x84, 0xf6, 0x3b, 0x04, 0x97, 0x88, 0x26, 0x43, 0xdc, 0x6b, 0x82, 0xf3, 0x97, - 0xdd, 0x9a, 0x11, 0x14, 0x81, 0xff, 0x1a, 0x79, 0xff, 0x8a, 0x40, 0xf1, 0xf9, 0xea, 0xc6, 0xbb, - 0x10, 0xcb, 0xe5, 0x32, 0xaa, 0xff, 0xef, 0x63, 0x7e, 0x17, 0xc6, 0x76, 0x3a, 0x87, 0x7a, 0xcf, - 0x7a, 0x13, 0x58, 0x7f, 0x38, 0x2e, 0xbb, 0x87, 0x39, 0xce, 0x90, 0x2b, 0x73, 0x9c, 0xe3, 0x64, - 0x45, 0x59, 0x81, 0x64, 0xad, 0x65, 0xb6, 0x6c, 0x0f, 0x26, 0x69, 0x7d, 0x6d, 0x99, 0x2d, 0x6d, - 0x05, 0x26, 0xb7, 0x1e, 0xd4, 0xdf, 0x36, 0x75, 0xa3, 0xdd, 0xba, 0x77, 0x20, 0x9e, 0x81, 0xba, - 0xfd, 0xea, 0x72, 0x7e, 0x2c, 0xd5, 0x4e, 0x9f, 0xa0, 0x72, 0xd2, 0xf6, 0xe7, 0x2d, 0x98, 0xda, - 0xb6, 0xdc, 0xb6, 0xed, 0x6c, 0xb3, 0x2c, 0xa0, 0x2d, 0xbe, 0x11, 0x62, 0x67, 0x6d, 0xa2, 0x2d, - 0xa1, 0x7d, 0xc4, 0x34, 0x3c, 0x42, 0xdb, 0x86, 0x69, 0xdb, 0x96, 0x4f, 0xa6, 0xa6, 0xd2, 0x97, - 0xf2, 0xc9, 0x14, 0xa4, 0x2f, 0x92, 0x75, 0xff, 0x86, 0x21, 0xed, 0xb4, 0x3a, 0x35, 0xfd, 0x7e, - 0xc7, 0xe8, 0x98, 0xfe, 0x7e, 0x95, 0x7a, 0x2c, 0x7f, 0x13, 0xc6, 0xad, 0x90, 0xda, 0xbf, 0x08, - 0x60, 0x57, 0x48, 0x8b, 0x22, 0x4c, 0x41, 0x06, 0x6c, 0xea, 0x78, 0x36, 0xf2, 0x4d, 0xc0, 0x8d, - 0xc6, 0x16, 0x79, 0xb9, 0x95, 0x86, 0x9a, 0x6e, 0xe9, 0xfd, 0x7e, 0x6b, 0x4f, 0x27, 0xbf, 0xc8, - 0x58, 0x7f, 0xaf, 0x69, 0x4d, 0x20, 0x97, 0x40, 0x6a, 0x6c, 0x91, 0x86, 0x77, 0x3e, 0xce, 0x34, - 0x4d, 0xa9, 0xb1, 0x95, 0xf9, 0x0b, 0x82, 0x8b, 0xdc, 0xa8, 0xac, 0xc1, 0xa4, 0x33, 0xc0, 0x3c, - 0xee, 0x85, 0x26, 0x37, 0xe6, 0xfa, 0x2c, 0x9d, 0xd3, 0xe7, 0xcc, 0x06, 0x4c, 0x0b, 0xe3, 0xf2, - 0x22, 0xc8, 0xec, 0x10, 0x71, 0x02, 0xec, 0x86, 0x3a, 0x40, 0xa2, 0xfd, 0x1f, 0x80, 0x17, 0x57, - 0x79, 0x1a, 0x26, 0x76, 0xee, 0xde, 0xae, 0xff, 0xa0, 0x51, 0x7f, 0x73, 0xa7, 0x5e, 0x4b, 0x23, - 0xed, 0x0f, 0x08, 0x26, 0x48, 0xdb, 0xba, 0xdb, 0x3d, 0xd2, 0xe5, 0x0a, 0xa0, 0x0d, 0xc2, 0xa0, - 0x27, 0xf3, 0x1b, 0x6d, 0xc8, 0x4b, 0x80, 0x2a, 0xf1, 0xa1, 0x46, 0x15, 0xb9, 0x08, 0xa8, 0x4a, - 0x00, 0x8e, 0x87, 0x0c, 0xaa, 0x6a, 0xff, 0xc2, 0xf0, 0x2c, 0xdb, 0x46, 0xbb, 0xf5, 0xe4, 0x0a, - 0xff, 0xdd, 0x54, 0x1e, 0x5f, 0x2e, 0xae, 0x94, 0x16, 0xad, 0x7f, 0x28, 0x25, 0xaf, 0xf0, 0x9f, - 0x50, 0x7e, 0x15, 0xdf, 0x35, 0x91, 0x72, 0x92, 0x91, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xdf, 0x35, - 0x11, 0x4e, 0xea, 0xbb, 0x26, 0xc2, 0x49, 0x7d, 0x47, 0x01, 0x9c, 0xd4, 0x77, 0x4d, 0x84, 0x93, - 0xfa, 0xae, 0x89, 0x70, 0x52, 0xff, 0x35, 0x11, 0x22, 0x0e, 0xbd, 0x26, 0xc2, 0xcb, 0xfd, 0xd7, - 0x44, 0x78, 0xb9, 0xff, 0x9a, 0x48, 0x39, 0x69, 0xf6, 0x8e, 0xf5, 0xf0, 0x43, 0x07, 0xde, 0x7e, - 0xd8, 0x37, 0xa0, 0x57, 0x80, 0xb7, 0x61, 0xda, 0xd9, 0x8f, 0xa8, 0x76, 0x0d, 0xb3, 0xd5, 0x31, - 0xf4, 0x9e, 0xfc, 0x0d, 0x98, 0x74, 0x86, 0x9c, 0xaf, 0x9c, 0xa0, 0xaf, 0x40, 0x47, 0x4e, 0xca, - 0x2d, 0xa7, 0xad, 0x7d, 0x99, 0x84, 0x19, 0x67, 0xa0, 0xd1, 0x3a, 0xd4, 0xb9, 0x4b, 0x46, 0x0b, - 0xc2, 0x91, 0xd2, 0x94, 0x65, 0x3e, 0x38, 0x9d, 0x73, 0x46, 0x37, 0x28, 0x99, 0x16, 0x84, 0xc3, - 0x25, 0x5e, 0xcf, 0x7b, 0xff, 0x2c, 0x08, 0x17, 0x8f, 0x78, 0x3d, 0xfa, 0xba, 0xa1, 0x7a, 0xee, - 0x15, 0x24, 0x5e, 0xaf, 0x46, 0x59, 0xb6, 0x20, 0x5c, 0x46, 0xe2, 0xf5, 0xea, 0x94, 0x6f, 0x0b, - 0xc2, 0xd1, 0x13, 0xaf, 0x77, 0x93, 0x32, 0x6f, 0x41, 0x38, 0x84, 0xe2, 0xf5, 0xbe, 0x45, 0x39, - 0xb8, 0x20, 0x5c, 0x55, 0xe2, 0xf5, 0x5e, 0xa7, 0x6c, 0x5c, 0x10, 0x2e, 0x2d, 0xf1, 0x7a, 0x9b, - 0x94, 0x97, 0x39, 0xf1, 0xfa, 0x12, 0xaf, 0x78, 0xcb, 0x63, 0x68, 0x4e, 0xbc, 0xc8, 0xc4, 0x6b, - 0x7e, 0xdb, 0xe3, 0x6a, 0x4e, 0xbc, 0xd2, 0xc4, 0x6b, 0xbe, 0xe1, 0xb1, 0x36, 0x27, 0x1e, 0x95, - 0xf1, 0x9a, 0x5b, 0x1e, 0x7f, 0x73, 0xe2, 0xa1, 0x19, 0xaf, 0xd9, 0xf0, 0x98, 0x9c, 0x13, 0x8f, - 0xcf, 0x78, 0xcd, 0x6d, 0x6f, 0x0f, 0xfd, 0x23, 0x81, 0x7e, 0xcc, 0x25, 0x28, 0x4d, 0xa0, 0x1f, - 0x04, 0x50, 0x4f, 0x13, 0xa8, 0x07, 0x01, 0xb4, 0xd3, 0x04, 0xda, 0x41, 0x00, 0xe5, 0x34, 0x81, - 0x72, 0x10, 0x40, 0x37, 0x4d, 0xa0, 0x1b, 0x04, 0x50, 0x4d, 0x13, 0xa8, 0x06, 0x01, 0x34, 0xd3, - 0x04, 0x9a, 0x41, 0x00, 0xc5, 0x34, 0x81, 0x62, 0x10, 0x40, 0x2f, 0x4d, 0xa0, 0x17, 0x04, 0x50, - 0x6b, 0x5e, 0xa4, 0x16, 0x04, 0xd1, 0x6a, 0x5e, 0xa4, 0x15, 0x04, 0x51, 0xea, 0x45, 0x91, 0x52, - 0xe3, 0x83, 0xd3, 0xb9, 0x31, 0x6b, 0x88, 0x61, 0xd3, 0xbc, 0xc8, 0x26, 0x08, 0x62, 0xd2, 0xbc, - 0xc8, 0x24, 0x08, 0x62, 0xd1, 0xbc, 0xc8, 0x22, 0x08, 0x62, 0xd0, 0x23, 0x91, 0x41, 0xde, 0x15, - 0x1f, 0x4d, 0x38, 0x51, 0x8c, 0x62, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, - 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, 0x61, 0x10, - 0x8e, 0xc5, 0x20, 0x1c, 0xc6, 0xa0, 0x79, 0xf1, 0xc2, 0x03, 0x04, 0x15, 0xa4, 0x79, 0xf1, 0xe4, - 0x33, 0x9a, 0x42, 0x38, 0x16, 0x85, 0x70, 0x18, 0x85, 0x3e, 0xc2, 0xf0, 0x2c, 0x47, 0x21, 0x72, - 0x3c, 0xf4, 0xb4, 0x2a, 0xd0, 0x5a, 0x8c, 0xfb, 0x15, 0x41, 0x9c, 0x5a, 0x8b, 0x71, 0x46, 0x3d, - 0x8c, 0x67, 0xfe, 0x2a, 0x54, 0x8f, 0x51, 0x85, 0x6e, 0x52, 0x0e, 0xad, 0xc5, 0xb8, 0x77, 0xe1, - 0xe7, 0xde, 0xfa, 0xb0, 0x22, 0xf0, 0x7a, 0xac, 0x22, 0xb0, 0x19, 0xab, 0x08, 0xdc, 0xf2, 0x10, - 0xfc, 0xa9, 0x04, 0xcf, 0x79, 0x08, 0x3a, 0x7f, 0xed, 0x3c, 0x38, 0xb2, 0x4a, 0x80, 0x77, 0x42, - 0x25, 0xbb, 0xa7, 0x36, 0x0c, 0x8c, 0xd2, 0x66, 0x5b, 0xbe, 0xcd, 0x9f, 0x55, 0x95, 0x47, 0x3d, - 0xbf, 0x61, 0x10, 0x27, 0x7b, 0xa1, 0xf3, 0x80, 0x37, 0xdb, 0x7d, 0xbb, 0x5a, 0x04, 0x2d, 0x5b, - 0x6d, 0x5a, 0x62, 0xb9, 0x09, 0x17, 0x6c, 0xf5, 0xbe, 0x0d, 0xef, 0x79, 0x16, 0xae, 0x35, 0xc9, - 0x4c, 0xda, 0x23, 0x04, 0x59, 0x8e, 0xca, 0x4f, 0xe7, 0xc4, 0xe0, 0x95, 0x58, 0x27, 0x06, 0x5c, - 0x82, 0x78, 0xa7, 0x07, 0xff, 0xef, 0x3f, 0xa8, 0x66, 0xb3, 0x44, 0x3c, 0x49, 0xf8, 0x09, 0x4c, - 0x79, 0x4f, 0x60, 0x7f, 0xb2, 0xad, 0x46, 0x6f, 0x66, 0x06, 0xa5, 0xe6, 0xaa, 0xb0, 0x89, 0x36, - 0xd4, 0x8c, 0x66, 0xab, 0x56, 0x86, 0xe9, 0x46, 0xd7, 0xde, 0x32, 0xe8, 0x77, 0xba, 0x46, 0x7f, - 0xab, 0x75, 0x14, 0xb5, 0x17, 0x91, 0xb2, 0x5a, 0xf3, 0x93, 0x5f, 0xcf, 0x25, 0xb4, 0x97, 0x61, - 0xf2, 0x8e, 0xd1, 0xd3, 0x77, 0xbb, 0x7b, 0x46, 0xe7, 0xc7, 0x7a, 0x5b, 0x30, 0x1c, 0x77, 0x0d, - 0xcb, 0xc9, 0xc7, 0x96, 0xf6, 0x2f, 0x10, 0x5c, 0x66, 0xd5, 0xbf, 0xdb, 0x31, 0xf7, 0x37, 0x0d, - 0xab, 0xa7, 0x7f, 0x15, 0x52, 0x3a, 0x01, 0xce, 0x7e, 0x77, 0x4d, 0xb8, 0x9f, 0x91, 0x81, 0xea, - 0x8b, 0xf6, 0xbf, 0x4d, 0x6a, 0x22, 0x6c, 0x71, 0xb8, 0xcb, 0x16, 0x33, 0x57, 0x61, 0xcc, 0x99, - 0x9f, 0xf7, 0xeb, 0xa2, 0xe0, 0xd7, 0x6f, 0x03, 0xfc, 0xb2, 0x79, 0x24, 0xdf, 0xe2, 0xfc, 0x62, - 0xbe, 0x56, 0x03, 0xd5, 0x17, 0x5d, 0xf2, 0x55, 0x52, 0x56, 0xff, 0x67, 0x33, 0x2a, 0xda, 0xc9, - 0x1c, 0xa4, 0xea, 0xa2, 0x4e, 0xb0, 0x9f, 0x35, 0x48, 0x36, 0xba, 0x6d, 0x5d, 0x7e, 0x0e, 0xc6, - 0xde, 0x68, 0xdd, 0xd3, 0x0f, 0x48, 0x90, 0x9d, 0x1f, 0xf2, 0x02, 0xa4, 0xaa, 0xfb, 0x9d, 0x83, - 0x76, 0x4f, 0x37, 0xc8, 0x91, 0x3d, 0xd9, 0x41, 0xb7, 0x6c, 0x9a, 0x54, 0xa6, 0x55, 0xe1, 0x52, - 0xa3, 0x6b, 0x54, 0x1e, 0x98, 0x6c, 0xdd, 0x58, 0x14, 0x52, 0x84, 0x1c, 0xf9, 0xdc, 0xb6, 0xb2, - 0xd1, 0x52, 0xa8, 0x8c, 0x7d, 0x7c, 0x3a, 0x87, 0x76, 0xe8, 0xf6, 0xf9, 0x16, 0x3c, 0x4f, 0xd2, - 0xc7, 0x37, 0x55, 0x31, 0x6a, 0xaa, 0x71, 0x72, 0x4c, 0xcd, 0x4c, 0xb7, 0x69, 0x4d, 0x67, 0x04, - 0x4e, 0xf7, 0x64, 0x9e, 0x59, 0x4d, 0xd1, 0x50, 0xcf, 0xf0, 0x48, 0x9e, 0x05, 0x4e, 0xb7, 0x18, - 0x35, 0x9d, 0xe0, 0xd9, 0x8b, 0x30, 0x4e, 0x65, 0x0c, 0x1b, 0xd8, 0x4c, 0x29, 0xe6, 0x35, 0x98, - 0x60, 0x12, 0x56, 0x1e, 0x03, 0xb4, 0x91, 0x4e, 0x58, 0xff, 0x55, 0xd2, 0xc8, 0xfa, 0xaf, 0x9a, - 0x96, 0xf2, 0x57, 0x61, 0x5a, 0xd8, 0xbe, 0xb4, 0x24, 0xb5, 0x34, 0x58, 0xff, 0xd5, 0xd3, 0x13, - 0x99, 0xe4, 0x7b, 0xbf, 0x51, 0x13, 0xf9, 0x57, 0x40, 0xf6, 0x6f, 0x74, 0xca, 0x17, 0x40, 0xda, - 0xb0, 0xa6, 0x7c, 0x1e, 0xa4, 0x4a, 0x25, 0x8d, 0x32, 0xd3, 0x3f, 0xfb, 0x65, 0x76, 0xa2, 0xa2, - 0x9b, 0xa6, 0xde, 0xbb, 0xab, 0x9b, 0x95, 0x0a, 0x31, 0x7e, 0x0d, 0x2e, 0x07, 0x6e, 0x94, 0x5a, - 0xf6, 0xd5, 0xaa, 0x63, 0x5f, 0xab, 0xf9, 0xec, 0x6b, 0x35, 0xdb, 0x1e, 0x95, 0xdd, 0x03, 0xe7, - 0x0d, 0x39, 0x60, 0x5b, 0x52, 0x69, 0x33, 0x07, 0xdc, 0x1b, 0xe5, 0xd7, 0x88, 0x6e, 0x25, 0x50, - 0x57, 0x8f, 0x38, 0xb0, 0xae, 0x94, 0xab, 0xc4, 0xbe, 0x1a, 0x68, 0x7f, 0x5f, 0x38, 0x55, 0xe5, - 0xdf, 0x10, 0x64, 0x92, 0x2a, 0x75, 0xb8, 0x16, 0x38, 0xc9, 0x3e, 0x73, 0xd7, 0xbd, 0x46, 0x1d, - 0xae, 0x07, 0xea, 0x76, 0x22, 0xee, 0x7c, 0xd5, 0xcb, 0x4b, 0xe4, 0x25, 0xbf, 0xb1, 0x2c, 0x5f, - 0x76, 0x73, 0x94, 0xab, 0xc0, 0x24, 0x40, 0xae, 0x56, 0xb9, 0x4a, 0x0c, 0x2a, 0xa1, 0x06, 0xe1, - 0x51, 0x72, 0x2d, 0xcb, 0xaf, 0x93, 0x49, 0xaa, 0xa1, 0x93, 0x44, 0x84, 0xca, 0x35, 0xaf, 0xec, - 0x9c, 0x9c, 0xa9, 0x89, 0xc7, 0x67, 0x6a, 0xe2, 0x1f, 0x67, 0x6a, 0xe2, 0x93, 0x33, 0x15, 0x7d, - 0x76, 0xa6, 0xa2, 0xcf, 0xcf, 0x54, 0xf4, 0xc5, 0x99, 0x8a, 0xde, 0x19, 0xa8, 0xe8, 0x83, 0x81, - 0x8a, 0x3e, 0x1c, 0xa8, 0xe8, 0x8f, 0x03, 0x15, 0x3d, 0x1a, 0xa8, 0xe8, 0x64, 0xa0, 0xa2, 0xc7, - 0x03, 0x35, 0xf1, 0xc9, 0x40, 0x45, 0x9f, 0x0d, 0xd4, 0xc4, 0xe7, 0x03, 0x15, 0x7d, 0x31, 0x50, - 0x13, 0xef, 0x7c, 0xaa, 0x26, 0x1e, 0x7e, 0xaa, 0x26, 0x3e, 0xf8, 0x54, 0x45, 0xff, 0x09, 0x00, - 0x00, 0xff, 0xff, 0x2c, 0x85, 0x07, 0x97, 0x4b, 0x36, 0x00, 0x00, + 0x2e, 0x39, 0x06, 0xbd, 0x34, 0x87, 0x1c, 0x8a, 0xdd, 0x9d, 0x9d, 0x9d, 0x19, 0xee, 0x72, 0x97, + 0x96, 0xd2, 0xe6, 0x62, 0x8b, 0xf3, 0xde, 0x9b, 0x79, 0xfb, 0x7e, 0xbf, 0xf7, 0xf6, 0xed, 0xcc, + 0x80, 0xba, 0xd7, 0x39, 0xbc, 0xdf, 0xe9, 0x2d, 0x1f, 0x36, 0xba, 0xbd, 0x56, 0xe3, 0x40, 0xef, + 0x2e, 0x9b, 0x2d, 0xdd, 0xd4, 0x7b, 0xe6, 0xd2, 0x51, 0xb7, 0x63, 0x76, 0xe4, 0xb8, 0xf5, 0x77, + 0xea, 0xfa, 0x7e, 0xdb, 0x6c, 0x1d, 0xdf, 0x5f, 0xda, 0xeb, 0x1c, 0x2e, 0xef, 0x77, 0xf6, 0x3b, + 0xcb, 0xb6, 0xf0, 0xfe, 0xf1, 0x03, 0xfb, 0x97, 0xfd, 0xc3, 0xfe, 0xcb, 0x31, 0xd2, 0xfe, 0x89, + 0x61, 0xaa, 0xd6, 0x6e, 0xee, 0x1c, 0x99, 0xb5, 0x86, 0xd9, 0x7e, 0x4b, 0x97, 0xe7, 0x60, 0xfc, + 0x56, 0x5b, 0x3f, 0x68, 0xae, 0x28, 0x28, 0x8d, 0x32, 0xa8, 0x14, 0x3f, 0x39, 0x9d, 0x8f, 0xd5, + 0xc9, 0x18, 0x95, 0xe6, 0x15, 0x29, 0x8d, 0x32, 0x12, 0x27, 0xcd, 0x53, 0xe9, 0xaa, 0x82, 0xd3, + 0x28, 0x33, 0xc6, 0x49, 0x57, 0xa9, 0xb4, 0xa0, 0xc4, 0xd3, 0x28, 0x83, 0x39, 0x69, 0x81, 0x4a, + 0xd7, 0x94, 0xb1, 0x34, 0xca, 0x5c, 0xe2, 0xa4, 0x6b, 0x54, 0xba, 0xae, 0x8c, 0xa7, 0x51, 0x26, + 0xce, 0x49, 0xd7, 0xa9, 0xf4, 0x86, 0xf2, 0x4c, 0x1a, 0x65, 0x2e, 0x73, 0xd2, 0x1b, 0x54, 0xba, + 0xa1, 0x24, 0xd2, 0x28, 0x23, 0x73, 0xd2, 0x0d, 0x2a, 0xbd, 0xa9, 0x4c, 0xa4, 0x51, 0xe6, 0x19, + 0x4e, 0x7a, 0x53, 0x56, 0xe1, 0x19, 0xe7, 0xc9, 0x73, 0x0a, 0xa4, 0x51, 0x66, 0x86, 0x88, 0xdd, + 0x41, 0x4f, 0xbe, 0xa2, 0x4c, 0xa6, 0x51, 0x66, 0x9c, 0x97, 0xaf, 0x78, 0xf2, 0xbc, 0x32, 0x95, + 0x46, 0x99, 0x24, 0x2f, 0xcf, 0x7b, 0xf2, 0x55, 0xe5, 0x52, 0x1a, 0x65, 0x12, 0xbc, 0x7c, 0xd5, + 0x93, 0x17, 0x94, 0xe9, 0x34, 0xca, 0x4c, 0xf0, 0xf2, 0x82, 0x27, 0x5f, 0x53, 0x66, 0xd2, 0x28, + 0x33, 0xc5, 0xcb, 0xd7, 0xb4, 0x77, 0x6d, 0x78, 0x0d, 0x0f, 0xde, 0x59, 0x1e, 0x5e, 0x0a, 0xec, + 0x2c, 0x0f, 0x2c, 0x85, 0x74, 0x96, 0x87, 0x94, 0x82, 0x39, 0xcb, 0x83, 0x49, 0x61, 0x9c, 0xe5, + 0x61, 0xa4, 0x00, 0xce, 0xf2, 0x00, 0x52, 0xe8, 0x66, 0x79, 0xe8, 0x28, 0x68, 0xb3, 0x3c, 0x68, + 0x14, 0xae, 0x59, 0x1e, 0x2e, 0x0a, 0x94, 0x22, 0x00, 0xe5, 0x41, 0xa4, 0x08, 0x10, 0x79, 0xe0, + 0x28, 0x02, 0x38, 0x1e, 0x2c, 0x8a, 0x00, 0x8b, 0x07, 0x88, 0x22, 0x00, 0xe2, 0x41, 0xa1, 0x08, + 0x50, 0x78, 0x20, 0x90, 0x1c, 0xab, 0xeb, 0x47, 0x3e, 0x39, 0x86, 0x87, 0xe6, 0x18, 0x1e, 0x9a, + 0x63, 0x78, 0x68, 0x8e, 0xe1, 0xa1, 0x39, 0x86, 0x87, 0xe6, 0x18, 0x1e, 0x9a, 0x63, 0x78, 0x68, + 0x8e, 0xe1, 0xa1, 0x39, 0x86, 0x87, 0xe7, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, 0x24, + 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x81, 0x39, 0xe6, 0xc1, 0x3b, 0xcb, 0xc3, 0xeb, + 0x9b, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, 0xc3, 0x01, 0x39, 0x86, 0x03, + 0x72, 0x0c, 0x07, 0xe4, 0x18, 0x0e, 0xc8, 0x31, 0x1c, 0x94, 0x63, 0x38, 0x30, 0xc7, 0x70, 0x60, + 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x81, 0x39, 0x86, 0x03, 0x73, 0x0c, 0xb3, 0x39, 0xf6, 0x67, 0x0c, + 0xb2, 0x93, 0x63, 0x77, 0x1a, 0x7b, 0x3f, 0xd4, 0x9b, 0x04, 0x0a, 0x55, 0xc8, 0xb4, 0x71, 0x0b, + 0xba, 0xa4, 0x07, 0x89, 0x2a, 0xe4, 0x1a, 0x2f, 0xcf, 0x53, 0xb9, 0x9b, 0x6d, 0xbc, 0x7c, 0x95, + 0xca, 0xdd, 0x7c, 0xe3, 0xe5, 0x05, 0x2a, 0x77, 0x33, 0x8e, 0x97, 0xaf, 0x51, 0xb9, 0x9b, 0x73, + 0xbc, 0x7c, 0x9d, 0xca, 0xdd, 0xac, 0xe3, 0xe5, 0x37, 0xa8, 0xdc, 0xcd, 0x3b, 0x5e, 0xbe, 0x41, + 0xe5, 0x6e, 0xe6, 0xf1, 0xf2, 0x9b, 0x72, 0x5a, 0xcc, 0x3d, 0x57, 0x81, 0x42, 0x9b, 0x16, 0xb3, + 0x4f, 0xd0, 0x58, 0xf1, 0x34, 0xdc, 0xfc, 0x13, 0x34, 0xf2, 0x9e, 0x86, 0x9b, 0x81, 0x82, 0xc6, + 0xaa, 0xf6, 0x9e, 0x0d, 0x9f, 0x21, 0xc2, 0x97, 0x12, 0xe0, 0x93, 0x18, 0xe8, 0x52, 0x02, 0x74, + 0x12, 0x03, 0x5b, 0x4a, 0x80, 0x4d, 0x62, 0x20, 0x4b, 0x09, 0x90, 0x49, 0x0c, 0x5c, 0x29, 0x01, + 0x2e, 0x89, 0x81, 0x2a, 0x25, 0x40, 0x25, 0x31, 0x30, 0xa5, 0x04, 0x98, 0x24, 0x06, 0xa2, 0x94, + 0x00, 0x91, 0xc4, 0xc0, 0x93, 0x12, 0xe0, 0x91, 0x18, 0x68, 0xe6, 0x44, 0x68, 0x24, 0x16, 0x96, + 0x39, 0x11, 0x16, 0x89, 0x85, 0x64, 0x4e, 0x84, 0x44, 0x62, 0xe1, 0x98, 0x13, 0xe1, 0x90, 0x58, + 0x28, 0xbe, 0x94, 0xdc, 0x8e, 0xf0, 0x4d, 0xb3, 0x7b, 0xbc, 0x67, 0x9e, 0xab, 0x23, 0xcc, 0x71, + 0xed, 0xc3, 0x64, 0x5e, 0x5e, 0xb2, 0x1b, 0x56, 0xb6, 0xe3, 0x14, 0xde, 0x60, 0x39, 0xae, 0xb1, + 0x60, 0x2c, 0x0c, 0x7f, 0x8b, 0xc2, 0xb9, 0x7a, 0xc3, 0x1c, 0xd7, 0x66, 0x84, 0xfb, 0xb7, 0xf1, + 0x95, 0x77, 0x6c, 0x8f, 0x25, 0xb7, 0x63, 0x23, 0xe1, 0x1f, 0xb5, 0x63, 0xcb, 0x86, 0x87, 0x9c, + 0x06, 0x3b, 0x1b, 0x1e, 0xec, 0x81, 0xb7, 0x4e, 0xd4, 0x0e, 0x2e, 0x1b, 0x1e, 0x5a, 0x1a, 0xd4, + 0x8b, 0xed, 0xb7, 0x08, 0x83, 0xeb, 0xfa, 0x91, 0x0f, 0x83, 0x47, 0xed, 0xb7, 0x72, 0x5c, 0x29, + 0x19, 0x95, 0xc1, 0x78, 0x64, 0x06, 0x8f, 0xda, 0x79, 0xe5, 0xb8, 0xf2, 0x32, 0x32, 0x83, 0xbf, + 0x82, 0x7e, 0x88, 0x30, 0xd8, 0x0b, 0xff, 0xa8, 0xfd, 0x50, 0x36, 0x3c, 0xe4, 0xbe, 0x0c, 0xc6, + 0x23, 0x30, 0x38, 0x4a, 0x7f, 0x94, 0x0d, 0x0f, 0xad, 0x3f, 0x83, 0xcf, 0xdd, 0xcd, 0xbc, 0x8f, + 0xe0, 0x72, 0xad, 0xdd, 0xac, 0x1e, 0xde, 0xd7, 0x9b, 0x4d, 0xbd, 0x49, 0xe2, 0x98, 0xe3, 0x2a, + 0x41, 0x00, 0xd4, 0x4f, 0x4e, 0xe7, 0xbd, 0x08, 0xaf, 0x41, 0xc2, 0x89, 0x69, 0x2e, 0xa7, 0x9c, + 0xa0, 0x90, 0x0a, 0x47, 0x55, 0xe5, 0xab, 0xae, 0xd9, 0x4a, 0x4e, 0xf9, 0x3b, 0x62, 0xaa, 0x1c, + 0x1d, 0xd6, 0x7e, 0x6e, 0x7b, 0x68, 0x9c, 0xdb, 0xc3, 0xe5, 0x48, 0x1e, 0x32, 0xbe, 0xbd, 0x30, + 0xe0, 0x1b, 0xe3, 0xd5, 0x31, 0xcc, 0xd4, 0xda, 0xcd, 0x9a, 0xde, 0x33, 0xa3, 0xb9, 0xe4, 0xe8, + 0x08, 0xf5, 0x20, 0xc7, 0xd1, 0x92, 0xb5, 0xa0, 0x94, 0xe6, 0x6b, 0x84, 0xd6, 0xb6, 0x96, 0x35, + 0xb8, 0x65, 0xb3, 0x41, 0xcb, 0x7a, 0x95, 0x9d, 0x2e, 0x98, 0x0d, 0x5a, 0xd0, 0xcb, 0x21, 0xba, + 0xd4, 0xdb, 0xee, 0xcb, 0xb9, 0x7c, 0xdc, 0x33, 0x3b, 0x87, 0xf2, 0x1c, 0x48, 0x5b, 0x4d, 0x7b, + 0x8d, 0xa9, 0xd2, 0x94, 0xe5, 0xd4, 0xc7, 0xa7, 0xf3, 0xf1, 0xbb, 0xc7, 0xed, 0x66, 0x5d, 0xda, + 0x6a, 0xca, 0xb7, 0x61, 0xec, 0x3b, 0x8d, 0x83, 0x63, 0xdd, 0x7e, 0x45, 0x4c, 0x95, 0x0a, 0x44, + 0xe1, 0xe5, 0xc0, 0x3d, 0x22, 0x6b, 0xe1, 0xe5, 0x3d, 0x7b, 0xea, 0xa5, 0xbb, 0x6d, 0xc3, 0x5c, + 0xc9, 0x6f, 0xd4, 0x9d, 0x29, 0xb4, 0xef, 0x03, 0x38, 0x6b, 0x56, 0x1a, 0xbd, 0x96, 0x5c, 0x73, + 0x67, 0x76, 0x96, 0xde, 0xf8, 0xf8, 0x74, 0xbe, 0x10, 0x65, 0xd6, 0xeb, 0xcd, 0x46, 0xaf, 0x75, + 0xdd, 0x7c, 0x78, 0xa4, 0x2f, 0x95, 0x1e, 0x9a, 0x7a, 0xcf, 0x9d, 0xfd, 0xc8, 0x7d, 0xeb, 0x91, + 0xe7, 0x52, 0x98, 0xe7, 0x4a, 0x70, 0xcf, 0x74, 0x8b, 0x7f, 0xa6, 0xdc, 0xd3, 0x3e, 0xcf, 0xdb, + 0xee, 0x4b, 0x42, 0x88, 0x24, 0x0e, 0x8b, 0x24, 0x3e, 0x6f, 0x24, 0x8f, 0xdc, 0xfa, 0x28, 0x3c, + 0x2b, 0x1e, 0xf6, 0xac, 0xf8, 0x3c, 0xcf, 0xfa, 0x6f, 0x27, 0x5b, 0x69, 0x3e, 0xdd, 0x35, 0xda, + 0x1d, 0xe3, 0x6b, 0xb7, 0x17, 0x74, 0xa1, 0x5d, 0x40, 0x31, 0x7e, 0xf2, 0x68, 0x1e, 0x69, 0xef, + 0x4b, 0xee, 0x93, 0x3b, 0x89, 0xf4, 0x74, 0x4f, 0xfe, 0x75, 0xe9, 0xa9, 0xbe, 0x8a, 0x08, 0xfd, + 0x0a, 0xc1, 0xec, 0x40, 0x25, 0x77, 0xc2, 0x74, 0xb1, 0xe5, 0xdc, 0x18, 0xb5, 0x9c, 0x13, 0x07, + 0x7f, 0x8f, 0xe0, 0x39, 0xa1, 0xbc, 0x3a, 0xee, 0x2d, 0x0b, 0xee, 0x3d, 0x3f, 0xb8, 0x92, 0xad, + 0xc8, 0x78, 0xc7, 0xc2, 0x2b, 0x18, 0x30, 0x33, 0x53, 0xdc, 0x0b, 0x02, 0xee, 0x73, 0xd4, 0xc0, + 0x27, 0x5c, 0x2e, 0x03, 0x88, 0xdb, 0x1d, 0x88, 0xef, 0x76, 0x75, 0x5d, 0x56, 0x41, 0xda, 0xe9, + 0x12, 0x0f, 0xa7, 0x1d, 0xfb, 0x9d, 0x6e, 0xa9, 0xdb, 0x30, 0xf6, 0x5a, 0x75, 0x69, 0xa7, 0x2b, + 0x5f, 0x05, 0xbc, 0x69, 0x34, 0x89, 0x47, 0x33, 0x8e, 0xc2, 0xa6, 0xd1, 0x24, 0x1a, 0x96, 0x4c, + 0x56, 0x21, 0xfe, 0x86, 0xde, 0x78, 0x40, 0x9c, 0x00, 0x47, 0xc7, 0x1a, 0xa9, 0xdb, 0xe3, 0x64, + 0xc1, 0xef, 0x41, 0xc2, 0x9d, 0x58, 0x5e, 0xb0, 0x2c, 0x1e, 0x98, 0x64, 0x59, 0x62, 0x61, 0xb9, + 0x43, 0xde, 0x5c, 0xb6, 0x54, 0x5e, 0x84, 0xb1, 0x7a, 0x7b, 0xbf, 0x65, 0x92, 0xc5, 0x07, 0xd5, + 0x1c, 0xb1, 0x76, 0x0f, 0x26, 0xa8, 0x47, 0x17, 0x3c, 0x75, 0xc5, 0x79, 0x34, 0x39, 0xc5, 0xbe, + 0x4f, 0xdc, 0x7d, 0x4b, 0x67, 0x48, 0x4e, 0x43, 0xe2, 0x4d, 0xb3, 0xeb, 0x15, 0x7d, 0xb7, 0x23, + 0xa5, 0xa3, 0xda, 0xbb, 0x08, 0x12, 0x15, 0x5d, 0x3f, 0xb2, 0x03, 0x7e, 0x0d, 0xe2, 0x95, 0xce, + 0x8f, 0x0c, 0xe2, 0xe0, 0x65, 0x12, 0x51, 0x4b, 0x4c, 0x62, 0x6a, 0x8b, 0xe5, 0x6b, 0x6c, 0xdc, + 0x9f, 0xa5, 0x71, 0x67, 0xf4, 0xec, 0xd8, 0x6b, 0x5c, 0xec, 0x09, 0x80, 0x96, 0xd2, 0x40, 0xfc, + 0x6f, 0xc0, 0x24, 0xb3, 0x8a, 0x9c, 0x21, 0x6e, 0x48, 0xa2, 0x21, 0x1b, 0x2b, 0x4b, 0x43, 0xd3, + 0xe1, 0x12, 0xb7, 0xb0, 0x65, 0xca, 0x84, 0x38, 0xc0, 0xd4, 0x0e, 0x73, 0x96, 0x0f, 0xb3, 0xbf, + 0x2a, 0x09, 0x75, 0xce, 0x89, 0x91, 0x1d, 0xee, 0x05, 0x87, 0x9c, 0xc1, 0x20, 0x5a, 0x7f, 0x6b, + 0x63, 0x80, 0x6b, 0xed, 0x03, 0xed, 0x55, 0x00, 0x27, 0xe5, 0xab, 0xc6, 0xf1, 0xa1, 0x90, 0x75, + 0xd3, 0x6e, 0x80, 0x77, 0x5b, 0xfa, 0xae, 0xde, 0xb3, 0x55, 0xf8, 0x7e, 0xca, 0x2a, 0x30, 0xe0, + 0xa4, 0x98, 0x6d, 0xff, 0x52, 0xa8, 0xbd, 0x6f, 0x27, 0x66, 0xa9, 0x2a, 0x8e, 0xea, 0x3d, 0xdd, + 0xdc, 0x34, 0x3a, 0x66, 0x4b, 0xef, 0x0a, 0x16, 0x79, 0x79, 0x95, 0x4b, 0xd8, 0xe9, 0xfc, 0x0b, + 0xd4, 0x22, 0xd0, 0x68, 0x55, 0xfb, 0xd0, 0x76, 0xd0, 0x6a, 0x05, 0x06, 0x1e, 0x10, 0x47, 0x78, + 0x40, 0x79, 0x9d, 0xeb, 0xdf, 0x86, 0xb8, 0x29, 0x7c, 0x5a, 0xde, 0xe4, 0xbe, 0x73, 0x86, 0x3b, + 0xcb, 0x7f, 0x63, 0xba, 0x31, 0x75, 0x5d, 0x7e, 0x29, 0xd4, 0xe5, 0x80, 0xee, 0x76, 0xd4, 0x98, + 0xe2, 0xa8, 0x31, 0xfd, 0x13, 0xed, 0x38, 0xac, 0xe1, 0x8a, 0xfe, 0xa0, 0x71, 0x7c, 0x60, 0xca, + 0x2f, 0x87, 0x62, 0x5f, 0x44, 0x65, 0xea, 0x6a, 0x21, 0x2a, 0xfc, 0x45, 0xa9, 0x54, 0xa2, 0xee, + 0xde, 0x18, 0x81, 0x02, 0x45, 0xa9, 0x5c, 0xa6, 0x65, 0x3b, 0xf1, 0xde, 0xa3, 0x79, 0xf4, 0xc1, + 0xa3, 0xf9, 0x98, 0xf6, 0x3b, 0x04, 0x97, 0x89, 0x26, 0x43, 0xdc, 0xeb, 0x82, 0xf3, 0x57, 0xdc, + 0x9a, 0xe1, 0x17, 0x81, 0xff, 0x1a, 0x79, 0xff, 0x8a, 0x40, 0x19, 0xf0, 0xd5, 0x8d, 0x77, 0x2e, + 0x92, 0xcb, 0x45, 0x54, 0xfd, 0xdf, 0xc7, 0xfc, 0x1e, 0x8c, 0xed, 0xb6, 0x0f, 0xf5, 0xae, 0xf5, + 0x26, 0xb0, 0xfe, 0x70, 0x5c, 0x76, 0x0f, 0x73, 0x9c, 0x21, 0x57, 0xe6, 0x38, 0xc7, 0xc9, 0xf2, + 0xb2, 0x02, 0xf1, 0x4a, 0xc3, 0x6c, 0xd8, 0x1e, 0x4c, 0xd1, 0xfa, 0xda, 0x30, 0x1b, 0xda, 0x2a, + 0x4c, 0x6d, 0x3f, 0xac, 0xbe, 0x6d, 0xea, 0x46, 0xb3, 0x71, 0xff, 0x40, 0x3c, 0x03, 0x75, 0xfb, + 0xd5, 0x95, 0xec, 0x58, 0xa2, 0x99, 0x3c, 0x41, 0xc5, 0xb8, 0xed, 0xcf, 0x5b, 0x30, 0xbd, 0x63, + 0xb9, 0x6d, 0xdb, 0xd9, 0x66, 0x69, 0x40, 0xdb, 0x7c, 0x23, 0xc4, 0xce, 0x5a, 0x47, 0xdb, 0x42, + 0xfb, 0x88, 0x69, 0x78, 0x84, 0xb6, 0x0d, 0xd3, 0xb6, 0x2d, 0x1b, 0x4f, 0x4c, 0x27, 0x2f, 0x67, + 0xe3, 0x09, 0x48, 0x5e, 0x22, 0xeb, 0xfe, 0x0d, 0x43, 0xd2, 0x69, 0x75, 0x2a, 0xfa, 0x83, 0xb6, + 0xd1, 0x36, 0x07, 0xfb, 0x55, 0xea, 0xb1, 0xfc, 0x4d, 0x98, 0xb0, 0x42, 0x6a, 0xff, 0x22, 0x80, + 0x5d, 0x25, 0x2d, 0x8a, 0x30, 0x05, 0x19, 0xb0, 0xa9, 0xe3, 0xd9, 0xc8, 0xb7, 0x00, 0xd7, 0x6a, + 0xdb, 0xe4, 0xe5, 0x56, 0x18, 0x6a, 0xba, 0xad, 0xf7, 0x7a, 0x8d, 0x7d, 0x9d, 0xfc, 0x22, 0x63, + 0xbd, 0xfd, 0xba, 0x35, 0x81, 0x5c, 0x00, 0xa9, 0xb6, 0x4d, 0x1a, 0xde, 0x85, 0x28, 0xd3, 0xd4, + 0xa5, 0xda, 0x76, 0xea, 0x2f, 0x08, 0x2e, 0x71, 0xa3, 0xb2, 0x06, 0x53, 0xce, 0x00, 0xf3, 0xb8, + 0xe3, 0x75, 0x6e, 0xcc, 0xf5, 0x59, 0x3a, 0xa7, 0xcf, 0xa9, 0x4d, 0x98, 0x11, 0xc6, 0xe5, 0x25, + 0x90, 0xd9, 0x21, 0xe2, 0x04, 0xd8, 0x0d, 0xb5, 0x8f, 0x44, 0xfb, 0x3f, 0x00, 0x2f, 0xae, 0xf2, + 0x0c, 0x4c, 0xee, 0xde, 0xbb, 0x53, 0xfd, 0x41, 0xad, 0xfa, 0xe6, 0x6e, 0xb5, 0x92, 0x44, 0xda, + 0x1f, 0x10, 0x4c, 0x92, 0xb6, 0x75, 0xaf, 0x73, 0xa4, 0xcb, 0x25, 0x40, 0x9b, 0x84, 0x41, 0x4f, + 0xe7, 0x37, 0xda, 0x94, 0x97, 0x01, 0x95, 0xa2, 0x43, 0x8d, 0x4a, 0x72, 0x1e, 0x50, 0x99, 0x00, + 0x1c, 0x0d, 0x19, 0x54, 0xd6, 0xfe, 0x85, 0xe1, 0x59, 0xb6, 0x8d, 0x76, 0xeb, 0xc9, 0x55, 0xfe, + 0xbb, 0xa9, 0x38, 0xb1, 0x92, 0x5f, 0x2d, 0x2c, 0x59, 0xff, 0x50, 0x4a, 0x6a, 0xfc, 0x27, 0x54, + 0x11, 0xa8, 0xca, 0x4a, 0xd0, 0x3d, 0x91, 0x62, 0x9c, 0x99, 0x61, 0xe0, 0x9e, 0x08, 0x27, 0x1d, + 0xb8, 0x27, 0xc2, 0x49, 0x07, 0xee, 0x89, 0x70, 0xd2, 0x81, 0xb3, 0x00, 0x4e, 0x3a, 0x70, 0x4f, + 0x84, 0x93, 0x0e, 0xdc, 0x13, 0xe1, 0xa4, 0x83, 0xf7, 0x44, 0x88, 0x38, 0xf0, 0x9e, 0x08, 0x2f, + 0x1f, 0xbc, 0x27, 0xc2, 0xcb, 0x07, 0xef, 0x89, 0x14, 0xe3, 0x66, 0xf7, 0x58, 0x0f, 0x3e, 0x75, + 0xe0, 0xed, 0x87, 0x7d, 0x04, 0x7a, 0x15, 0x78, 0x07, 0x66, 0x9c, 0x0d, 0x89, 0x72, 0xc7, 0x30, + 0x1b, 0x6d, 0x43, 0xef, 0xca, 0xdf, 0x80, 0x29, 0x67, 0xc8, 0xf9, 0xcc, 0xf1, 0xfb, 0x0c, 0x74, + 0xe4, 0xa4, 0xde, 0x72, 0xda, 0xda, 0x97, 0x71, 0x98, 0x75, 0x06, 0x6a, 0x8d, 0x43, 0x9d, 0xbb, + 0x65, 0xb4, 0x28, 0x9c, 0x29, 0x4d, 0x5b, 0xe6, 0xfd, 0xd3, 0x79, 0x67, 0x74, 0x93, 0xb2, 0x69, + 0x51, 0x38, 0x5d, 0xe2, 0xf5, 0xbc, 0x17, 0xd0, 0xa2, 0x70, 0xf3, 0x88, 0xd7, 0xa3, 0xef, 0x1b, + 0xaa, 0xe7, 0xde, 0x41, 0xe2, 0xf5, 0x2a, 0x94, 0x65, 0x8b, 0xc2, 0x6d, 0x24, 0x5e, 0xaf, 0x4a, + 0xf9, 0xb6, 0x28, 0x9c, 0x3d, 0xf1, 0x7a, 0xb7, 0x28, 0xf3, 0x16, 0x85, 0x53, 0x28, 0x5e, 0xef, + 0x5b, 0x94, 0x83, 0x8b, 0xc2, 0x5d, 0x25, 0x5e, 0xef, 0x75, 0xca, 0xc6, 0x45, 0xe1, 0xd6, 0x12, + 0xaf, 0xb7, 0x45, 0x79, 0x99, 0x11, 0xef, 0x2f, 0xf1, 0x8a, 0xb7, 0x3d, 0x86, 0x66, 0xc4, 0x9b, + 0x4c, 0xbc, 0xe6, 0xb7, 0x3d, 0xae, 0x66, 0xc4, 0x3b, 0x4d, 0xbc, 0xe6, 0x1b, 0x1e, 0x6b, 0x33, + 0xe2, 0x59, 0x19, 0xaf, 0xb9, 0xed, 0xf1, 0x37, 0x23, 0x9e, 0x9a, 0xf1, 0x9a, 0x35, 0x8f, 0xc9, + 0x19, 0xf1, 0xfc, 0x8c, 0xd7, 0xdc, 0xf1, 0x36, 0xd1, 0x3f, 0x12, 0xe8, 0xc7, 0xdc, 0x82, 0xd2, + 0x04, 0xfa, 0x81, 0x0f, 0xf5, 0x84, 0x42, 0xc6, 0xe8, 0x78, 0xb4, 0xd3, 0x04, 0xda, 0x81, 0x0f, + 0xe5, 0x34, 0x81, 0x72, 0xe0, 0x43, 0x37, 0x4d, 0xa0, 0x1b, 0xf8, 0x50, 0x4d, 0x13, 0xa8, 0x06, + 0x3e, 0x34, 0xd3, 0x04, 0x9a, 0x81, 0x0f, 0xc5, 0x34, 0x81, 0x62, 0xe0, 0x43, 0x2f, 0x4d, 0xa0, + 0x17, 0xf8, 0x50, 0x6b, 0x41, 0xa4, 0x16, 0xf8, 0xd1, 0x6a, 0x41, 0xa4, 0x15, 0xf8, 0x51, 0xea, + 0x45, 0x91, 0x52, 0x13, 0xfd, 0xd3, 0xf9, 0x31, 0x6b, 0x88, 0x61, 0xd3, 0x82, 0xc8, 0x26, 0xf0, + 0x63, 0xd2, 0x82, 0xc8, 0x24, 0xf0, 0x63, 0xd1, 0x82, 0xc8, 0x22, 0xf0, 0x63, 0xd0, 0x63, 0x91, + 0x41, 0xde, 0x1d, 0x1f, 0x4d, 0x38, 0x52, 0x0c, 0x63, 0x10, 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41, + 0x38, 0x02, 0x83, 0x70, 0x04, 0x06, 0xe1, 0x08, 0x0c, 0xc2, 0x11, 0x18, 0x84, 0x23, 0x30, 0x08, + 0x47, 0x61, 0x10, 0x8e, 0xc4, 0x20, 0x1c, 0xc4, 0xa0, 0x05, 0xf1, 0xc6, 0x03, 0xf8, 0x15, 0xa4, + 0x05, 0xf1, 0xe8, 0x33, 0x9c, 0x42, 0x38, 0x12, 0x85, 0x70, 0x10, 0x85, 0x3e, 0xc2, 0xf0, 0x2c, + 0x47, 0x21, 0x72, 0x3e, 0x74, 0x51, 0x15, 0x68, 0x3d, 0xc2, 0x05, 0x0b, 0x3f, 0x4e, 0xad, 0x47, + 0x38, 0xa4, 0x1e, 0xc6, 0xb3, 0xc1, 0x2a, 0x54, 0x8d, 0x50, 0x85, 0x6e, 0x51, 0x0e, 0xad, 0x47, + 0xb8, 0x78, 0x31, 0xc8, 0xbd, 0x8d, 0x61, 0x45, 0xe0, 0xf5, 0x48, 0x45, 0x60, 0x2b, 0x52, 0x11, + 0xb8, 0xed, 0x21, 0xf8, 0x53, 0x09, 0x9e, 0xf3, 0x10, 0x74, 0xfe, 0xda, 0x7d, 0x78, 0x64, 0x95, + 0x00, 0xef, 0x88, 0x4a, 0x76, 0x8f, 0x6d, 0x18, 0x18, 0xa5, 0xad, 0xa6, 0x7c, 0x87, 0x3f, 0xac, + 0x2a, 0x8e, 0x7a, 0x80, 0xc3, 0x20, 0x4e, 0x36, 0x43, 0x17, 0x00, 0x6f, 0x35, 0x7b, 0x76, 0xb5, + 0xf0, 0x5b, 0xb6, 0x5c, 0xb7, 0xc4, 0x72, 0x1d, 0xc6, 0x6d, 0xf5, 0x9e, 0x0d, 0xef, 0x79, 0x16, + 0xae, 0xd4, 0xc9, 0x4c, 0xda, 0x63, 0x04, 0x69, 0x8e, 0xca, 0x17, 0x73, 0x64, 0xf0, 0x4a, 0xa4, + 0x23, 0x03, 0x2e, 0x41, 0xbc, 0xe3, 0x83, 0xff, 0x1f, 0x3c, 0xa9, 0x66, 0xb3, 0x44, 0x3c, 0x4a, + 0xf8, 0x09, 0x4c, 0x7b, 0x4f, 0x60, 0x7f, 0xb3, 0xad, 0x85, 0xef, 0x66, 0xfa, 0xa5, 0xe6, 0x9a, + 0xb0, 0x8b, 0x36, 0xd4, 0x8c, 0x66, 0xab, 0x56, 0x84, 0x99, 0x5a, 0xc7, 0xde, 0x33, 0xe8, 0xb5, + 0x3b, 0x46, 0x6f, 0xbb, 0x71, 0x14, 0xb6, 0x19, 0x91, 0xb0, 0x5a, 0xf3, 0x93, 0x5f, 0xcf, 0xc7, + 0xb4, 0x97, 0x61, 0xea, 0xae, 0xd1, 0xd5, 0xf7, 0x3a, 0xfb, 0x46, 0xfb, 0xc7, 0x7a, 0x53, 0x30, + 0x9c, 0x70, 0x0d, 0x8b, 0xf1, 0x27, 0x96, 0xf6, 0x2f, 0x10, 0x5c, 0x61, 0xd5, 0xbf, 0xdb, 0x36, + 0x5b, 0x5b, 0x86, 0xd5, 0xd3, 0xbf, 0x0a, 0x09, 0x9d, 0x00, 0x67, 0xbf, 0xbb, 0x26, 0xdd, 0xef, + 0x48, 0x5f, 0xf5, 0x25, 0xfb, 0xdf, 0x3a, 0x35, 0x11, 0xf6, 0x38, 0xdc, 0x65, 0xf3, 0xa9, 0x6b, + 0x30, 0xe6, 0xcc, 0xcf, 0xfb, 0x75, 0x49, 0xf0, 0xeb, 0xb7, 0x3e, 0x7e, 0xd9, 0x3c, 0x92, 0x6f, + 0x73, 0x7e, 0x31, 0x9f, 0xab, 0xbe, 0xea, 0x4b, 0x2e, 0xf9, 0x4a, 0x09, 0xab, 0xff, 0xb3, 0x19, + 0x15, 0xee, 0x64, 0x06, 0x12, 0x55, 0x51, 0xc7, 0xdf, 0xcf, 0x0a, 0xc4, 0x6b, 0x9d, 0xa6, 0x2e, + 0x3f, 0x07, 0x63, 0x6f, 0x34, 0xee, 0xeb, 0x07, 0x24, 0xc8, 0xce, 0x0f, 0x79, 0x11, 0x12, 0xe5, + 0x56, 0xfb, 0xa0, 0xd9, 0xd5, 0x0d, 0x72, 0x66, 0x4f, 0xb6, 0xd0, 0x2d, 0x9b, 0x3a, 0x95, 0x69, + 0x65, 0xb8, 0x5c, 0xeb, 0x18, 0xa5, 0x87, 0x26, 0x5b, 0x37, 0x96, 0x84, 0x14, 0x21, 0x67, 0x3e, + 0x77, 0xac, 0x6c, 0xb4, 0x14, 0x4a, 0x63, 0x1f, 0x9f, 0xce, 0xa3, 0x5d, 0xba, 0x7f, 0xbe, 0x0d, + 0xcf, 0x93, 0xf4, 0x19, 0x98, 0x2a, 0x1f, 0x36, 0xd5, 0x04, 0x39, 0xa7, 0x66, 0xa6, 0xdb, 0xb2, + 0xa6, 0x33, 0x7c, 0xa7, 0x7b, 0x3a, 0xcf, 0xac, 0xa6, 0x68, 0xa8, 0x67, 0x78, 0x24, 0xcf, 0x7c, + 0xa7, 0x5b, 0x0a, 0x9b, 0x4e, 0xf0, 0xec, 0x45, 0x98, 0xa0, 0x32, 0x86, 0x0d, 0x6c, 0xa6, 0xe4, + 0xb3, 0x1a, 0x4c, 0x32, 0x09, 0x2b, 0x8f, 0x01, 0xda, 0x4c, 0xc6, 0xac, 0xff, 0x4a, 0x49, 0x64, + 0xfd, 0x57, 0x4e, 0x4a, 0xd9, 0x6b, 0x30, 0x23, 0xec, 0x5f, 0x5a, 0x92, 0x4a, 0x12, 0xac, 0xff, + 0xaa, 0xc9, 0xc9, 0x54, 0xfc, 0xbd, 0xdf, 0xa8, 0xb1, 0xec, 0x2b, 0x20, 0x0f, 0xee, 0x74, 0xca, + 0xe3, 0x20, 0x6d, 0x5a, 0x53, 0x3e, 0x0f, 0x52, 0xa9, 0x94, 0x44, 0xa9, 0x99, 0x9f, 0xfd, 0x32, + 0x3d, 0x59, 0xd2, 0x4d, 0x53, 0xef, 0xde, 0xd3, 0xcd, 0x52, 0x89, 0x18, 0xbf, 0x06, 0x57, 0x7c, + 0x77, 0x4a, 0x2d, 0xfb, 0x72, 0xd9, 0xb1, 0xaf, 0x54, 0x06, 0xec, 0x2b, 0x15, 0xdb, 0x1e, 0x15, + 0xdd, 0x13, 0xe7, 0x4d, 0xd9, 0x67, 0x5f, 0x52, 0x69, 0x32, 0x27, 0xdc, 0x9b, 0xc5, 0xd7, 0x88, + 0x6e, 0xc9, 0x57, 0x57, 0x0f, 0x39, 0xb1, 0x2e, 0x15, 0xcb, 0xc4, 0xbe, 0xec, 0x6b, 0xff, 0x40, + 0x38, 0x56, 0xe5, 0xdf, 0x10, 0x64, 0x92, 0x32, 0x75, 0xb8, 0xe2, 0x3b, 0x49, 0x8b, 0xb9, 0xec, + 0x5e, 0xa1, 0x0e, 0x57, 0x7d, 0x75, 0xdb, 0x21, 0x97, 0xbe, 0xaa, 0xc5, 0x65, 0xf2, 0x92, 0xdf, + 0x5c, 0x91, 0xaf, 0xb8, 0x39, 0xca, 0x55, 0x60, 0x12, 0x20, 0x57, 0xab, 0x58, 0x26, 0x06, 0xa5, + 0x40, 0x83, 0xe0, 0x28, 0xb9, 0x96, 0xc5, 0xd7, 0xc9, 0x24, 0xe5, 0xc0, 0x49, 0x42, 0x42, 0xe5, + 0x9a, 0x97, 0x76, 0x4f, 0xce, 0xd4, 0xd8, 0x93, 0x33, 0x35, 0xf6, 0x8f, 0x33, 0x35, 0xf6, 0xc9, + 0x99, 0x8a, 0x3e, 0x3b, 0x53, 0xd1, 0xe7, 0x67, 0x2a, 0xfa, 0xe2, 0x4c, 0x45, 0xef, 0xf4, 0x55, + 0xf4, 0x41, 0x5f, 0x45, 0x1f, 0xf6, 0x55, 0xf4, 0xc7, 0xbe, 0x8a, 0x1e, 0xf7, 0x55, 0x74, 0xd2, + 0x57, 0xd1, 0x93, 0xbe, 0x1a, 0xfb, 0xa4, 0xaf, 0xa2, 0xcf, 0xfa, 0x6a, 0xec, 0xf3, 0xbe, 0x8a, + 0xbe, 0xe8, 0xab, 0xb1, 0x77, 0x3e, 0x55, 0x63, 0x8f, 0x3e, 0x55, 0x63, 0x1f, 0x7c, 0xaa, 0xa2, + 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x3d, 0xd8, 0x02, 0x18, 0x4c, 0x36, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetestpb_test.go index d727c342b..60ffaa87f 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/marshaler/thetestpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/thetest.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -77,13 +76,12 @@ It has these top-level messages: package test import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -94,14 +92,14 @@ var _ = math.Inf func TestNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -122,13 +120,13 @@ func TestNidOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -140,7 +138,7 @@ func TestNidOptNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -155,7 +153,7 @@ func TestNidOptNativeMarshalTo(t *testing.T) { } func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNative, 10000) for i := 0; i < 10000; i++ { @@ -163,7 +161,7 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -173,11 +171,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } @@ -187,7 +185,7 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -196,14 +194,14 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { func TestNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -224,13 +222,13 @@ func TestNinOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -242,7 +240,7 @@ func TestNinOptNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -257,7 +255,7 @@ func TestNinOptNativeMarshalTo(t *testing.T) { } func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNative, 10000) for i := 0; i < 10000; i++ { @@ -265,7 +263,7 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -275,11 +273,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } @@ -289,7 +287,7 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -298,14 +296,14 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { func TestNidRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -326,13 +324,13 @@ func TestNidRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -344,7 +342,7 @@ func TestNidRepNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -359,7 +357,7 @@ func TestNidRepNativeMarshalTo(t *testing.T) { } func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNative, 10000) for i := 0; i < 10000; i++ { @@ -367,7 +365,7 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -377,11 +375,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } @@ -391,7 +389,7 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -400,14 +398,14 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { func TestNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -428,13 +426,13 @@ func TestNinRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -446,7 +444,7 @@ func TestNinRepNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -461,7 +459,7 @@ func TestNinRepNativeMarshalTo(t *testing.T) { } func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNative, 10000) for i := 0; i < 10000; i++ { @@ -469,7 +467,7 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -479,11 +477,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } @@ -493,7 +491,7 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -502,14 +500,14 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { func TestNidRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -530,13 +528,13 @@ func TestNidRepPackedNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepPackedNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -548,7 +546,7 @@ func TestNidRepPackedNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -563,7 +561,7 @@ func TestNidRepPackedNativeMarshalTo(t *testing.T) { } func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepPackedNative, 10000) for i := 0; i < 10000; i++ { @@ -571,7 +569,7 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -581,11 +579,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } @@ -595,7 +593,7 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -604,14 +602,14 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { func TestNinRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -632,13 +630,13 @@ func TestNinRepPackedNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepPackedNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -650,7 +648,7 @@ func TestNinRepPackedNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -665,7 +663,7 @@ func TestNinRepPackedNativeMarshalTo(t *testing.T) { } func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepPackedNative, 10000) for i := 0; i < 10000; i++ { @@ -673,7 +671,7 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -683,11 +681,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } @@ -697,7 +695,7 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -706,14 +704,14 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { func TestNidOptStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -734,13 +732,13 @@ func TestNidOptStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -752,7 +750,7 @@ func TestNidOptStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -767,7 +765,7 @@ func TestNidOptStructMarshalTo(t *testing.T) { } func BenchmarkNidOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptStruct, 10000) for i := 0; i < 10000; i++ { @@ -775,7 +773,7 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -785,11 +783,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } @@ -799,7 +797,7 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -808,14 +806,14 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { func TestNinOptStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -836,13 +834,13 @@ func TestNinOptStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -854,7 +852,7 @@ func TestNinOptStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -869,7 +867,7 @@ func TestNinOptStructMarshalTo(t *testing.T) { } func BenchmarkNinOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStruct, 10000) for i := 0; i < 10000; i++ { @@ -877,7 +875,7 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -887,11 +885,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } @@ -901,7 +899,7 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -910,14 +908,14 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { func TestNidRepStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -938,13 +936,13 @@ func TestNidRepStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -956,7 +954,7 @@ func TestNidRepStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -971,7 +969,7 @@ func TestNidRepStructMarshalTo(t *testing.T) { } func BenchmarkNidRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepStruct, 10000) for i := 0; i < 10000; i++ { @@ -979,7 +977,7 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -989,11 +987,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } @@ -1003,7 +1001,7 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1012,14 +1010,14 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { func TestNinRepStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1040,13 +1038,13 @@ func TestNinRepStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1058,7 +1056,7 @@ func TestNinRepStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1073,7 +1071,7 @@ func TestNinRepStructMarshalTo(t *testing.T) { } func BenchmarkNinRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepStruct, 10000) for i := 0; i < 10000; i++ { @@ -1081,7 +1079,7 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1091,11 +1089,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } @@ -1105,7 +1103,7 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1114,14 +1112,14 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { func TestNidEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1142,13 +1140,13 @@ func TestNidEmbeddedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidEmbeddedStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1160,7 +1158,7 @@ func TestNidEmbeddedStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1175,7 +1173,7 @@ func TestNidEmbeddedStructMarshalTo(t *testing.T) { } func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidEmbeddedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1183,7 +1181,7 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1193,11 +1191,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } @@ -1207,7 +1205,7 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1216,14 +1214,14 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { func TestNinEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1244,13 +1242,13 @@ func TestNinEmbeddedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinEmbeddedStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1262,7 +1260,7 @@ func TestNinEmbeddedStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1277,7 +1275,7 @@ func TestNinEmbeddedStructMarshalTo(t *testing.T) { } func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1285,7 +1283,7 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1295,11 +1293,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } @@ -1309,7 +1307,7 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1318,14 +1316,14 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { func TestNidNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1346,13 +1344,13 @@ func TestNidNestedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidNestedStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1364,7 +1362,7 @@ func TestNidNestedStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1379,7 +1377,7 @@ func TestNidNestedStructMarshalTo(t *testing.T) { } func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidNestedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1387,7 +1385,7 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1397,11 +1395,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } @@ -1411,7 +1409,7 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1420,14 +1418,14 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { func TestNinNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1448,13 +1446,13 @@ func TestNinNestedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinNestedStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1466,7 +1464,7 @@ func TestNinNestedStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1481,7 +1479,7 @@ func TestNinNestedStructMarshalTo(t *testing.T) { } func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1489,7 +1487,7 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1499,11 +1497,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } @@ -1513,7 +1511,7 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1522,14 +1520,14 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { func TestNidOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1550,13 +1548,13 @@ func TestNidOptCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptCustomMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1568,7 +1566,7 @@ func TestNidOptCustomMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1583,7 +1581,7 @@ func TestNidOptCustomMarshalTo(t *testing.T) { } func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptCustom, 10000) for i := 0; i < 10000; i++ { @@ -1591,7 +1589,7 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1601,11 +1599,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } @@ -1615,7 +1613,7 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1624,14 +1622,14 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { func TestCustomDashProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1652,13 +1650,13 @@ func TestCustomDashProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomDashMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1670,7 +1668,7 @@ func TestCustomDashMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1685,7 +1683,7 @@ func TestCustomDashMarshalTo(t *testing.T) { } func BenchmarkCustomDashProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomDash, 10000) for i := 0; i < 10000; i++ { @@ -1693,7 +1691,7 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1703,11 +1701,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } @@ -1717,7 +1715,7 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1726,14 +1724,14 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { func TestNinOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1754,13 +1752,13 @@ func TestNinOptCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptCustomMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1772,7 +1770,7 @@ func TestNinOptCustomMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1787,7 +1785,7 @@ func TestNinOptCustomMarshalTo(t *testing.T) { } func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptCustom, 10000) for i := 0; i < 10000; i++ { @@ -1795,7 +1793,7 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1805,11 +1803,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } @@ -1819,7 +1817,7 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1828,14 +1826,14 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { func TestNidRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1856,13 +1854,13 @@ func TestNidRepCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepCustomMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1874,7 +1872,7 @@ func TestNidRepCustomMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1889,7 +1887,7 @@ func TestNidRepCustomMarshalTo(t *testing.T) { } func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepCustom, 10000) for i := 0; i < 10000; i++ { @@ -1897,7 +1895,7 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1907,11 +1905,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } @@ -1921,7 +1919,7 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1930,14 +1928,14 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { func TestNinRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1958,13 +1956,13 @@ func TestNinRepCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepCustomMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1976,7 +1974,7 @@ func TestNinRepCustomMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1991,7 +1989,7 @@ func TestNinRepCustomMarshalTo(t *testing.T) { } func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepCustom, 10000) for i := 0; i < 10000; i++ { @@ -1999,7 +1997,7 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2009,11 +2007,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } @@ -2023,7 +2021,7 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2032,14 +2030,14 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { func TestNinOptNativeUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2060,13 +2058,13 @@ func TestNinOptNativeUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptNativeUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2078,7 +2076,7 @@ func TestNinOptNativeUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2093,7 +2091,7 @@ func TestNinOptNativeUnionMarshalTo(t *testing.T) { } func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeUnion, 10000) for i := 0; i < 10000; i++ { @@ -2101,7 +2099,7 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2111,11 +2109,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } @@ -2125,7 +2123,7 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2134,14 +2132,14 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { func TestNinOptStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2162,13 +2160,13 @@ func TestNinOptStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptStructUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2180,7 +2178,7 @@ func TestNinOptStructUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2195,7 +2193,7 @@ func TestNinOptStructUnionMarshalTo(t *testing.T) { } func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -2203,7 +2201,7 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2213,11 +2211,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } @@ -2227,7 +2225,7 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2236,14 +2234,14 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { func TestNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2264,13 +2262,13 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2282,7 +2280,7 @@ func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2297,7 +2295,7 @@ func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { } func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -2305,7 +2303,7 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2315,11 +2313,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } @@ -2329,7 +2327,7 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2338,14 +2336,14 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { func TestNinNestedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2366,13 +2364,13 @@ func TestNinNestedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinNestedStructUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2384,7 +2382,7 @@ func TestNinNestedStructUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2399,7 +2397,7 @@ func TestNinNestedStructUnionMarshalTo(t *testing.T) { } func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -2407,7 +2405,7 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2417,11 +2415,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } @@ -2431,7 +2429,7 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2440,14 +2438,14 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { func TestTreeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2468,13 +2466,13 @@ func TestTreeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestTreeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2486,7 +2484,7 @@ func TestTreeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2501,7 +2499,7 @@ func TestTreeMarshalTo(t *testing.T) { } func BenchmarkTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Tree, 10000) for i := 0; i < 10000; i++ { @@ -2509,7 +2507,7 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2519,11 +2517,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } func BenchmarkTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } @@ -2533,7 +2531,7 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2542,14 +2540,14 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { func TestOrBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2570,13 +2568,13 @@ func TestOrBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOrBranchMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2588,7 +2586,7 @@ func TestOrBranchMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2603,7 +2601,7 @@ func TestOrBranchMarshalTo(t *testing.T) { } func BenchmarkOrBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OrBranch, 10000) for i := 0; i < 10000; i++ { @@ -2611,7 +2609,7 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2621,11 +2619,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } @@ -2635,7 +2633,7 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2644,14 +2642,14 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { func TestAndBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2672,13 +2670,13 @@ func TestAndBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAndBranchMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2690,7 +2688,7 @@ func TestAndBranchMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2705,7 +2703,7 @@ func TestAndBranchMarshalTo(t *testing.T) { } func BenchmarkAndBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndBranch, 10000) for i := 0; i < 10000; i++ { @@ -2713,7 +2711,7 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2723,11 +2721,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } @@ -2737,7 +2735,7 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2746,14 +2744,14 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { func TestLeafProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2774,13 +2772,13 @@ func TestLeafProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestLeafMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2792,7 +2790,7 @@ func TestLeafMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2807,7 +2805,7 @@ func TestLeafMarshalTo(t *testing.T) { } func BenchmarkLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Leaf, 10000) for i := 0; i < 10000; i++ { @@ -2815,7 +2813,7 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2825,11 +2823,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } func BenchmarkLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } @@ -2839,7 +2837,7 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2848,14 +2846,14 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { func TestDeepTreeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2876,13 +2874,13 @@ func TestDeepTreeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDeepTreeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2894,7 +2892,7 @@ func TestDeepTreeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -2909,7 +2907,7 @@ func TestDeepTreeMarshalTo(t *testing.T) { } func BenchmarkDeepTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepTree, 10000) for i := 0; i < 10000; i++ { @@ -2917,7 +2915,7 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2927,11 +2925,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } @@ -2941,7 +2939,7 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2950,14 +2948,14 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { func TestADeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2978,13 +2976,13 @@ func TestADeepBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestADeepBranchMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -2996,7 +2994,7 @@ func TestADeepBranchMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3011,7 +3009,7 @@ func TestADeepBranchMarshalTo(t *testing.T) { } func BenchmarkADeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ADeepBranch, 10000) for i := 0; i < 10000; i++ { @@ -3019,7 +3017,7 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3029,11 +3027,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } @@ -3043,7 +3041,7 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3052,14 +3050,14 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { func TestAndDeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3080,13 +3078,13 @@ func TestAndDeepBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAndDeepBranchMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3098,7 +3096,7 @@ func TestAndDeepBranchMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3113,7 +3111,7 @@ func TestAndDeepBranchMarshalTo(t *testing.T) { } func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndDeepBranch, 10000) for i := 0; i < 10000; i++ { @@ -3121,7 +3119,7 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3131,11 +3129,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } @@ -3145,7 +3143,7 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3154,14 +3152,14 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { func TestDeepLeafProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3182,13 +3180,13 @@ func TestDeepLeafProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDeepLeafMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3200,7 +3198,7 @@ func TestDeepLeafMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3215,7 +3213,7 @@ func TestDeepLeafMarshalTo(t *testing.T) { } func BenchmarkDeepLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepLeaf, 10000) for i := 0; i < 10000; i++ { @@ -3223,7 +3221,7 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3233,11 +3231,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } @@ -3247,7 +3245,7 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3256,14 +3254,14 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { func TestNilProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3284,13 +3282,13 @@ func TestNilProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNilMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3302,7 +3300,7 @@ func TestNilMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3317,7 +3315,7 @@ func TestNilMarshalTo(t *testing.T) { } func BenchmarkNilProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nil, 10000) for i := 0; i < 10000; i++ { @@ -3325,7 +3323,7 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3335,11 +3333,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } func BenchmarkNilProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } @@ -3349,7 +3347,7 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3358,14 +3356,14 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3386,13 +3384,13 @@ func TestNidOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3404,7 +3402,7 @@ func TestNidOptEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3419,7 +3417,7 @@ func TestNidOptEnumMarshalTo(t *testing.T) { } func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -3427,7 +3425,7 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3437,11 +3435,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } @@ -3451,7 +3449,7 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3460,14 +3458,14 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3488,13 +3486,13 @@ func TestNinOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3506,7 +3504,7 @@ func TestNinOptEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3521,7 +3519,7 @@ func TestNinOptEnumMarshalTo(t *testing.T) { } func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -3529,7 +3527,7 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3539,11 +3537,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } @@ -3553,7 +3551,7 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3562,14 +3560,14 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3590,13 +3588,13 @@ func TestNidRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3608,7 +3606,7 @@ func TestNidRepEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3623,7 +3621,7 @@ func TestNidRepEnumMarshalTo(t *testing.T) { } func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepEnum, 10000) for i := 0; i < 10000; i++ { @@ -3631,7 +3629,7 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3641,11 +3639,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } @@ -3655,7 +3653,7 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3664,14 +3662,14 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3692,13 +3690,13 @@ func TestNinRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3710,7 +3708,7 @@ func TestNinRepEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3725,7 +3723,7 @@ func TestNinRepEnumMarshalTo(t *testing.T) { } func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepEnum, 10000) for i := 0; i < 10000; i++ { @@ -3733,7 +3731,7 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3743,11 +3741,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } @@ -3757,7 +3755,7 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3766,14 +3764,14 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { func TestNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3794,13 +3792,13 @@ func TestNinOptEnumDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptEnumDefaultMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3812,7 +3810,7 @@ func TestNinOptEnumDefaultMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3827,7 +3825,7 @@ func TestNinOptEnumDefaultMarshalTo(t *testing.T) { } func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnumDefault, 10000) for i := 0; i < 10000; i++ { @@ -3835,7 +3833,7 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3845,11 +3843,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } @@ -3859,7 +3857,7 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3868,14 +3866,14 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { func TestAnotherNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3896,13 +3894,13 @@ func TestAnotherNinOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAnotherNinOptEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -3914,7 +3912,7 @@ func TestAnotherNinOptEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -3929,7 +3927,7 @@ func TestAnotherNinOptEnumMarshalTo(t *testing.T) { } func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -3937,7 +3935,7 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3947,11 +3945,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } @@ -3961,7 +3959,7 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3970,14 +3968,14 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { func TestAnotherNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3998,13 +3996,13 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4016,7 +4014,7 @@ func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4031,7 +4029,7 @@ func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { } func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnumDefault, 10000) for i := 0; i < 10000; i++ { @@ -4039,7 +4037,7 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4049,11 +4047,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } @@ -4063,7 +4061,7 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4072,14 +4070,14 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { func TestTimerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4100,13 +4098,13 @@ func TestTimerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestTimerMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4118,7 +4116,7 @@ func TestTimerMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4133,7 +4131,7 @@ func TestTimerMarshalTo(t *testing.T) { } func BenchmarkTimerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Timer, 10000) for i := 0; i < 10000; i++ { @@ -4141,7 +4139,7 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4151,11 +4149,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } func BenchmarkTimerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } @@ -4165,7 +4163,7 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4174,14 +4172,14 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { func TestMyExtendableProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4202,13 +4200,13 @@ func TestMyExtendableProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMyExtendableMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4220,7 +4218,7 @@ func TestMyExtendableMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4235,7 +4233,7 @@ func TestMyExtendableMarshalTo(t *testing.T) { } func BenchmarkMyExtendableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyExtendable, 10000) for i := 0; i < 10000; i++ { @@ -4243,7 +4241,7 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4253,11 +4251,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } @@ -4267,7 +4265,7 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4276,14 +4274,14 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { func TestOtherExtenableProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4304,13 +4302,13 @@ func TestOtherExtenableProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOtherExtenableMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4322,7 +4320,7 @@ func TestOtherExtenableMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4337,7 +4335,7 @@ func TestOtherExtenableMarshalTo(t *testing.T) { } func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OtherExtenable, 10000) for i := 0; i < 10000; i++ { @@ -4345,7 +4343,7 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4355,11 +4353,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } @@ -4369,7 +4367,7 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4378,14 +4376,14 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { func TestNestedDefinitionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4406,13 +4404,13 @@ func TestNestedDefinitionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedDefinitionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4424,7 +4422,7 @@ func TestNestedDefinitionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4439,7 +4437,7 @@ func TestNestedDefinitionMarshalTo(t *testing.T) { } func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition, 10000) for i := 0; i < 10000; i++ { @@ -4447,7 +4445,7 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4457,11 +4455,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } @@ -4471,7 +4469,7 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4480,14 +4478,14 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { func TestNestedDefinition_NestedMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4508,13 +4506,13 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4526,7 +4524,7 @@ func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4541,7 +4539,7 @@ func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { } func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage, 10000) for i := 0; i < 10000; i++ { @@ -4549,7 +4547,7 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4559,11 +4557,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } @@ -4573,7 +4571,7 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4582,14 +4580,14 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4610,13 +4608,13 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4628,7 +4626,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4643,7 +4641,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 10000) for i := 0; i < 10000; i++ { @@ -4651,7 +4649,7 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4661,11 +4659,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } @@ -4675,7 +4673,7 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4684,14 +4682,14 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te func TestNestedScopeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4712,13 +4710,13 @@ func TestNestedScopeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedScopeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4730,7 +4728,7 @@ func TestNestedScopeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4745,7 +4743,7 @@ func TestNestedScopeMarshalTo(t *testing.T) { } func BenchmarkNestedScopeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedScope, 10000) for i := 0; i < 10000; i++ { @@ -4753,7 +4751,7 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4763,11 +4761,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } @@ -4777,7 +4775,7 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4786,14 +4784,14 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { func TestNinOptNativeDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4814,13 +4812,13 @@ func TestNinOptNativeDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptNativeDefaultMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4832,7 +4830,7 @@ func TestNinOptNativeDefaultMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4847,7 +4845,7 @@ func TestNinOptNativeDefaultMarshalTo(t *testing.T) { } func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeDefault, 10000) for i := 0; i < 10000; i++ { @@ -4855,7 +4853,7 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4865,11 +4863,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } @@ -4879,7 +4877,7 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4888,14 +4886,14 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { func TestCustomContainerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4916,13 +4914,13 @@ func TestCustomContainerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomContainerMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -4934,7 +4932,7 @@ func TestCustomContainerMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -4949,7 +4947,7 @@ func TestCustomContainerMarshalTo(t *testing.T) { } func BenchmarkCustomContainerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomContainer, 10000) for i := 0; i < 10000; i++ { @@ -4957,7 +4955,7 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4967,11 +4965,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } @@ -4981,7 +4979,7 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4990,14 +4988,14 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { func TestCustomNameNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5018,13 +5016,13 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5036,7 +5034,7 @@ func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5051,7 +5049,7 @@ func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { } func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNidOptNative, 10000) for i := 0; i < 10000; i++ { @@ -5059,7 +5057,7 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5069,11 +5067,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } @@ -5083,7 +5081,7 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5092,14 +5090,14 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5120,13 +5118,13 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5138,7 +5136,7 @@ func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5153,7 +5151,7 @@ func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { } func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinOptNative, 10000) for i := 0; i < 10000; i++ { @@ -5161,7 +5159,7 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5171,11 +5169,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } @@ -5185,7 +5183,7 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5194,14 +5192,14 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5222,13 +5220,13 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5240,7 +5238,7 @@ func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5255,7 +5253,7 @@ func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { } func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinRepNative, 10000) for i := 0; i < 10000; i++ { @@ -5263,7 +5261,7 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5273,11 +5271,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } @@ -5287,7 +5285,7 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5296,14 +5294,14 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5324,13 +5322,13 @@ func TestCustomNameNinStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNinStructMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5342,7 +5340,7 @@ func TestCustomNameNinStructMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5357,7 +5355,7 @@ func TestCustomNameNinStructMarshalTo(t *testing.T) { } func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinStruct, 10000) for i := 0; i < 10000; i++ { @@ -5365,7 +5363,7 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5375,11 +5373,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } @@ -5389,7 +5387,7 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5398,14 +5396,14 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { func TestCustomNameCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5426,13 +5424,13 @@ func TestCustomNameCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5444,7 +5442,7 @@ func TestCustomNameCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5459,7 +5457,7 @@ func TestCustomNameCustomTypeMarshalTo(t *testing.T) { } func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameCustomType, 10000) for i := 0; i < 10000; i++ { @@ -5467,7 +5465,7 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5477,11 +5475,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } @@ -5491,7 +5489,7 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5500,14 +5498,14 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5528,13 +5526,13 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5546,7 +5544,7 @@ func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5561,7 +5559,7 @@ func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { } func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinEmbeddedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -5569,7 +5567,7 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5579,11 +5577,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } @@ -5593,7 +5591,7 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5602,14 +5600,14 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { func TestCustomNameEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5630,13 +5628,13 @@ func TestCustomNameEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomNameEnumMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5648,7 +5646,7 @@ func TestCustomNameEnumMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5663,7 +5661,7 @@ func TestCustomNameEnumMarshalTo(t *testing.T) { } func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameEnum, 10000) for i := 0; i < 10000; i++ { @@ -5671,7 +5669,7 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5681,11 +5679,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } @@ -5695,7 +5693,7 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5704,14 +5702,14 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { func TestNoExtensionsMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5732,13 +5730,13 @@ func TestNoExtensionsMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNoExtensionsMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5750,7 +5748,7 @@ func TestNoExtensionsMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5765,7 +5763,7 @@ func TestNoExtensionsMapMarshalTo(t *testing.T) { } func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NoExtensionsMap, 10000) for i := 0; i < 10000; i++ { @@ -5773,7 +5771,7 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5783,11 +5781,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } @@ -5797,7 +5795,7 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5806,14 +5804,14 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { func TestUnrecognizedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5834,13 +5832,13 @@ func TestUnrecognizedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5852,7 +5850,7 @@ func TestUnrecognizedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5867,7 +5865,7 @@ func TestUnrecognizedMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Unrecognized, 10000) for i := 0; i < 10000; i++ { @@ -5875,7 +5873,7 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5885,11 +5883,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } @@ -5899,7 +5897,7 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5908,14 +5906,14 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithInnerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5936,13 +5934,13 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -5954,7 +5952,7 @@ func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -5969,7 +5967,7 @@ func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner, 10000) for i := 0; i < 10000; i++ { @@ -5977,7 +5975,7 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5987,11 +5985,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } @@ -6001,7 +5999,7 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6010,14 +6008,14 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithInner_InnerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6038,13 +6036,13 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6056,7 +6054,7 @@ func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6071,7 +6069,7 @@ func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner_Inner, 10000) for i := 0; i < 10000; i++ { @@ -6079,7 +6077,7 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6089,11 +6087,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } @@ -6103,7 +6101,7 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6112,14 +6110,14 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithEmbedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6140,13 +6138,13 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6158,7 +6156,7 @@ func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6173,7 +6171,7 @@ func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed, 10000) for i := 0; i < 10000; i++ { @@ -6181,7 +6179,7 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6191,11 +6189,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } @@ -6205,7 +6203,7 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6214,14 +6212,14 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6242,13 +6240,13 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6260,7 +6258,7 @@ func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6275,7 +6273,7 @@ func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { } func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed_Embedded, 10000) for i := 0; i < 10000; i++ { @@ -6283,7 +6281,7 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6293,11 +6291,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } @@ -6307,7 +6305,7 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6316,14 +6314,14 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { func TestNodeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6344,13 +6342,13 @@ func TestNodeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNodeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6362,7 +6360,7 @@ func TestNodeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6377,7 +6375,7 @@ func TestNodeMarshalTo(t *testing.T) { } func BenchmarkNodeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Node, 10000) for i := 0; i < 10000; i++ { @@ -6385,7 +6383,7 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6395,11 +6393,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } func BenchmarkNodeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } @@ -6409,7 +6407,7 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6418,14 +6416,14 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { func TestNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6446,13 +6444,13 @@ func TestNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6464,7 +6462,7 @@ func TestNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6479,7 +6477,7 @@ func TestNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6487,7 +6485,7 @@ func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6497,11 +6495,11 @@ func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6511,7 +6509,7 @@ func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6520,14 +6518,14 @@ func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNidOptNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6548,13 +6546,13 @@ func TestNidOptNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6566,7 +6564,7 @@ func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6581,7 +6579,7 @@ func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6589,7 +6587,7 @@ func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6599,11 +6597,11 @@ func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6613,7 +6611,7 @@ func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6622,14 +6620,14 @@ func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNinOptNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6650,13 +6648,13 @@ func TestNinOptNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6668,7 +6666,7 @@ func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6683,7 +6681,7 @@ func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6691,7 +6689,7 @@ func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6701,11 +6699,11 @@ func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6715,7 +6713,7 @@ func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6724,14 +6722,14 @@ func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNidRepNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6752,13 +6750,13 @@ func TestNidRepNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6770,7 +6768,7 @@ func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6785,7 +6783,7 @@ func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6793,7 +6791,7 @@ func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6803,11 +6801,11 @@ func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6817,7 +6815,7 @@ func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6826,14 +6824,14 @@ func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNinRepNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6854,13 +6852,13 @@ func TestNinRepNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6872,7 +6870,7 @@ func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6887,7 +6885,7 @@ func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { } func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -6895,7 +6893,7 @@ func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -6905,11 +6903,11 @@ func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -6919,7 +6917,7 @@ func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -6928,14 +6926,14 @@ func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestProtoTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -6956,13 +6954,13 @@ func TestProtoTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestProtoTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -6974,7 +6972,7 @@ func TestProtoTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -6989,7 +6987,7 @@ func TestProtoTypeMarshalTo(t *testing.T) { } func BenchmarkProtoTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoType, 10000) for i := 0; i < 10000; i++ { @@ -6997,7 +6995,7 @@ func BenchmarkProtoTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -7007,11 +7005,11 @@ func BenchmarkProtoTypeProtoMarshal(b *testing.B) { } func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedProtoType(popr, false)) if err != nil { panic(err) } @@ -7021,7 +7019,7 @@ func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -7030,15 +7028,15 @@ func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { func TestNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7051,15 +7049,15 @@ func TestNidOptNativeJSON(t *testing.T) { } func TestNinOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7072,15 +7070,15 @@ func TestNinOptNativeJSON(t *testing.T) { } func TestNidRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7093,15 +7091,15 @@ func TestNidRepNativeJSON(t *testing.T) { } func TestNinRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7114,15 +7112,15 @@ func TestNinRepNativeJSON(t *testing.T) { } func TestNidRepPackedNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7135,15 +7133,15 @@ func TestNidRepPackedNativeJSON(t *testing.T) { } func TestNinRepPackedNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7156,15 +7154,15 @@ func TestNinRepPackedNativeJSON(t *testing.T) { } func TestNidOptStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7177,15 +7175,15 @@ func TestNidOptStructJSON(t *testing.T) { } func TestNinOptStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7198,15 +7196,15 @@ func TestNinOptStructJSON(t *testing.T) { } func TestNidRepStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7219,15 +7217,15 @@ func TestNidRepStructJSON(t *testing.T) { } func TestNinRepStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7240,15 +7238,15 @@ func TestNinRepStructJSON(t *testing.T) { } func TestNidEmbeddedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7261,15 +7259,15 @@ func TestNidEmbeddedStructJSON(t *testing.T) { } func TestNinEmbeddedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7282,15 +7280,15 @@ func TestNinEmbeddedStructJSON(t *testing.T) { } func TestNidNestedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7303,15 +7301,15 @@ func TestNidNestedStructJSON(t *testing.T) { } func TestNinNestedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7324,15 +7322,15 @@ func TestNinNestedStructJSON(t *testing.T) { } func TestNidOptCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7345,15 +7343,15 @@ func TestNidOptCustomJSON(t *testing.T) { } func TestCustomDashJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7366,15 +7364,15 @@ func TestCustomDashJSON(t *testing.T) { } func TestNinOptCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7387,15 +7385,15 @@ func TestNinOptCustomJSON(t *testing.T) { } func TestNidRepCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7408,15 +7406,15 @@ func TestNidRepCustomJSON(t *testing.T) { } func TestNinRepCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7429,15 +7427,15 @@ func TestNinRepCustomJSON(t *testing.T) { } func TestNinOptNativeUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7450,15 +7448,15 @@ func TestNinOptNativeUnionJSON(t *testing.T) { } func TestNinOptStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7471,15 +7469,15 @@ func TestNinOptStructUnionJSON(t *testing.T) { } func TestNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7492,15 +7490,15 @@ func TestNinEmbeddedStructUnionJSON(t *testing.T) { } func TestNinNestedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7513,15 +7511,15 @@ func TestNinNestedStructUnionJSON(t *testing.T) { } func TestTreeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7534,15 +7532,15 @@ func TestTreeJSON(t *testing.T) { } func TestOrBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7555,15 +7553,15 @@ func TestOrBranchJSON(t *testing.T) { } func TestAndBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7576,15 +7574,15 @@ func TestAndBranchJSON(t *testing.T) { } func TestLeafJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7597,15 +7595,15 @@ func TestLeafJSON(t *testing.T) { } func TestDeepTreeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7618,15 +7616,15 @@ func TestDeepTreeJSON(t *testing.T) { } func TestADeepBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7639,15 +7637,15 @@ func TestADeepBranchJSON(t *testing.T) { } func TestAndDeepBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7660,15 +7658,15 @@ func TestAndDeepBranchJSON(t *testing.T) { } func TestDeepLeafJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7681,15 +7679,15 @@ func TestDeepLeafJSON(t *testing.T) { } func TestNilJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7702,15 +7700,15 @@ func TestNilJSON(t *testing.T) { } func TestNidOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7723,15 +7721,15 @@ func TestNidOptEnumJSON(t *testing.T) { } func TestNinOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7744,15 +7742,15 @@ func TestNinOptEnumJSON(t *testing.T) { } func TestNidRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7765,15 +7763,15 @@ func TestNidRepEnumJSON(t *testing.T) { } func TestNinRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7786,15 +7784,15 @@ func TestNinRepEnumJSON(t *testing.T) { } func TestNinOptEnumDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7807,15 +7805,15 @@ func TestNinOptEnumDefaultJSON(t *testing.T) { } func TestAnotherNinOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7828,15 +7826,15 @@ func TestAnotherNinOptEnumJSON(t *testing.T) { } func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7849,15 +7847,15 @@ func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { } func TestTimerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7870,15 +7868,15 @@ func TestTimerJSON(t *testing.T) { } func TestMyExtendableJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7891,15 +7889,15 @@ func TestMyExtendableJSON(t *testing.T) { } func TestOtherExtenableJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7912,15 +7910,15 @@ func TestOtherExtenableJSON(t *testing.T) { } func TestNestedDefinitionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7933,15 +7931,15 @@ func TestNestedDefinitionJSON(t *testing.T) { } func TestNestedDefinition_NestedMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7954,15 +7952,15 @@ func TestNestedDefinition_NestedMessageJSON(t *testing.T) { } func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7975,15 +7973,15 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { } func TestNestedScopeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -7996,15 +7994,15 @@ func TestNestedScopeJSON(t *testing.T) { } func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8017,15 +8015,15 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { } func TestCustomContainerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8038,15 +8036,15 @@ func TestCustomContainerJSON(t *testing.T) { } func TestCustomNameNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8059,15 +8057,15 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { } func TestCustomNameNinOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8080,15 +8078,15 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { } func TestCustomNameNinRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8101,15 +8099,15 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { } func TestCustomNameNinStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8122,15 +8120,15 @@ func TestCustomNameNinStructJSON(t *testing.T) { } func TestCustomNameCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8143,15 +8141,15 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { } func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8164,15 +8162,15 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { } func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8185,15 +8183,15 @@ func TestCustomNameEnumJSON(t *testing.T) { } func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8206,15 +8204,15 @@ func TestNoExtensionsMapJSON(t *testing.T) { } func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8227,15 +8225,15 @@ func TestUnrecognizedJSON(t *testing.T) { } func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8248,15 +8246,15 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { } func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8269,15 +8267,15 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { } func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8290,15 +8288,15 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { } func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8311,15 +8309,15 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { } func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8332,15 +8330,15 @@ func TestNodeJSON(t *testing.T) { } func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8353,15 +8351,15 @@ func TestNonByteCustomTypeJSON(t *testing.T) { } func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8374,15 +8372,15 @@ func TestNidOptNonByteCustomTypeJSON(t *testing.T) { } func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8395,15 +8393,15 @@ func TestNinOptNonByteCustomTypeJSON(t *testing.T) { } func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8416,15 +8414,15 @@ func TestNidRepNonByteCustomTypeJSON(t *testing.T) { } func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8437,15 +8435,15 @@ func TestNinRepNonByteCustomTypeJSON(t *testing.T) { } func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -8458,11 +8456,11 @@ func TestProtoTypeJSON(t *testing.T) { } func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8475,11 +8473,11 @@ func TestNidOptNativeProtoText(t *testing.T) { func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8492,11 +8490,11 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8509,11 +8507,11 @@ func TestNinOptNativeProtoText(t *testing.T) { func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8526,11 +8524,11 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8543,11 +8541,11 @@ func TestNidRepNativeProtoText(t *testing.T) { func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8560,11 +8558,11 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8577,11 +8575,11 @@ func TestNinRepNativeProtoText(t *testing.T) { func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8594,11 +8592,11 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8611,11 +8609,11 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8628,11 +8626,11 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8645,11 +8643,11 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8662,11 +8660,11 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8679,11 +8677,11 @@ func TestNidOptStructProtoText(t *testing.T) { func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8696,11 +8694,11 @@ func TestNidOptStructProtoCompactText(t *testing.T) { func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8713,11 +8711,11 @@ func TestNinOptStructProtoText(t *testing.T) { func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8730,11 +8728,11 @@ func TestNinOptStructProtoCompactText(t *testing.T) { func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8747,11 +8745,11 @@ func TestNidRepStructProtoText(t *testing.T) { func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8764,11 +8762,11 @@ func TestNidRepStructProtoCompactText(t *testing.T) { func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8781,11 +8779,11 @@ func TestNinRepStructProtoText(t *testing.T) { func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8798,11 +8796,11 @@ func TestNinRepStructProtoCompactText(t *testing.T) { func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8815,11 +8813,11 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8832,11 +8830,11 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8849,11 +8847,11 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8866,11 +8864,11 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8883,11 +8881,11 @@ func TestNidNestedStructProtoText(t *testing.T) { func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8900,11 +8898,11 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8917,11 +8915,11 @@ func TestNinNestedStructProtoText(t *testing.T) { func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8934,11 +8932,11 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8951,11 +8949,11 @@ func TestNidOptCustomProtoText(t *testing.T) { func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8968,11 +8966,11 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8985,11 +8983,11 @@ func TestCustomDashProtoText(t *testing.T) { func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9002,11 +9000,11 @@ func TestCustomDashProtoCompactText(t *testing.T) { func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9019,11 +9017,11 @@ func TestNinOptCustomProtoText(t *testing.T) { func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9036,11 +9034,11 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9053,11 +9051,11 @@ func TestNidRepCustomProtoText(t *testing.T) { func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9070,11 +9068,11 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9087,11 +9085,11 @@ func TestNinRepCustomProtoText(t *testing.T) { func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9104,11 +9102,11 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9121,11 +9119,11 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9138,11 +9136,11 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9155,11 +9153,11 @@ func TestNinOptStructUnionProtoText(t *testing.T) { func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9172,11 +9170,11 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9189,11 +9187,11 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9206,11 +9204,11 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9223,11 +9221,11 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9240,11 +9238,11 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9257,11 +9255,11 @@ func TestTreeProtoText(t *testing.T) { func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9274,11 +9272,11 @@ func TestTreeProtoCompactText(t *testing.T) { func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9291,11 +9289,11 @@ func TestOrBranchProtoText(t *testing.T) { func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9308,11 +9306,11 @@ func TestOrBranchProtoCompactText(t *testing.T) { func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9325,11 +9323,11 @@ func TestAndBranchProtoText(t *testing.T) { func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9342,11 +9340,11 @@ func TestAndBranchProtoCompactText(t *testing.T) { func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9359,11 +9357,11 @@ func TestLeafProtoText(t *testing.T) { func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9376,11 +9374,11 @@ func TestLeafProtoCompactText(t *testing.T) { func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9393,11 +9391,11 @@ func TestDeepTreeProtoText(t *testing.T) { func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9410,11 +9408,11 @@ func TestDeepTreeProtoCompactText(t *testing.T) { func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9427,11 +9425,11 @@ func TestADeepBranchProtoText(t *testing.T) { func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9444,11 +9442,11 @@ func TestADeepBranchProtoCompactText(t *testing.T) { func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9461,11 +9459,11 @@ func TestAndDeepBranchProtoText(t *testing.T) { func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9478,11 +9476,11 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9495,11 +9493,11 @@ func TestDeepLeafProtoText(t *testing.T) { func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9512,11 +9510,11 @@ func TestDeepLeafProtoCompactText(t *testing.T) { func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9529,11 +9527,11 @@ func TestNilProtoText(t *testing.T) { func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9546,11 +9544,11 @@ func TestNilProtoCompactText(t *testing.T) { func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9563,11 +9561,11 @@ func TestNidOptEnumProtoText(t *testing.T) { func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9580,11 +9578,11 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9597,11 +9595,11 @@ func TestNinOptEnumProtoText(t *testing.T) { func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9614,11 +9612,11 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9631,11 +9629,11 @@ func TestNidRepEnumProtoText(t *testing.T) { func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9648,11 +9646,11 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9665,11 +9663,11 @@ func TestNinRepEnumProtoText(t *testing.T) { func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9682,11 +9680,11 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9699,11 +9697,11 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9716,11 +9714,11 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9733,11 +9731,11 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9750,11 +9748,11 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9767,11 +9765,11 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9784,11 +9782,11 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9801,11 +9799,11 @@ func TestTimerProtoText(t *testing.T) { func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9818,11 +9816,11 @@ func TestTimerProtoCompactText(t *testing.T) { func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9835,11 +9833,11 @@ func TestMyExtendableProtoText(t *testing.T) { func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9852,11 +9850,11 @@ func TestMyExtendableProtoCompactText(t *testing.T) { func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9869,11 +9867,11 @@ func TestOtherExtenableProtoText(t *testing.T) { func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9886,11 +9884,11 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9903,11 +9901,11 @@ func TestNestedDefinitionProtoText(t *testing.T) { func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9920,11 +9918,11 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9937,11 +9935,11 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9954,11 +9952,11 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9971,11 +9969,11 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -9988,11 +9986,11 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10005,11 +10003,11 @@ func TestNestedScopeProtoText(t *testing.T) { func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10022,11 +10020,11 @@ func TestNestedScopeProtoCompactText(t *testing.T) { func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10039,11 +10037,11 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10056,11 +10054,11 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10073,11 +10071,11 @@ func TestCustomContainerProtoText(t *testing.T) { func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10090,11 +10088,11 @@ func TestCustomContainerProtoCompactText(t *testing.T) { func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10107,11 +10105,11 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10124,11 +10122,11 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { func TestCustomNameNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10141,11 +10139,11 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10158,11 +10156,11 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { func TestCustomNameNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10175,11 +10173,11 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10192,11 +10190,11 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { func TestCustomNameNinStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10209,11 +10207,11 @@ func TestCustomNameNinStructProtoText(t *testing.T) { func TestCustomNameNinStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10226,11 +10224,11 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { func TestCustomNameCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10243,11 +10241,11 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10260,11 +10258,11 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10277,11 +10275,11 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10294,11 +10292,11 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { func TestCustomNameEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10311,11 +10309,11 @@ func TestCustomNameEnumProtoText(t *testing.T) { func TestCustomNameEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10328,11 +10326,11 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { func TestNoExtensionsMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10345,11 +10343,11 @@ func TestNoExtensionsMapProtoText(t *testing.T) { func TestNoExtensionsMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10362,11 +10360,11 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { func TestUnrecognizedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10379,11 +10377,11 @@ func TestUnrecognizedProtoText(t *testing.T) { func TestUnrecognizedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10396,11 +10394,11 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { func TestUnrecognizedWithInnerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10413,11 +10411,11 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10430,11 +10428,11 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10447,11 +10445,11 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10464,11 +10462,11 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10481,11 +10479,11 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10498,11 +10496,11 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10515,11 +10513,11 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10532,11 +10530,11 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10549,11 +10547,11 @@ func TestNodeProtoText(t *testing.T) { func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10566,11 +10564,11 @@ func TestNodeProtoCompactText(t *testing.T) { func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10583,11 +10581,11 @@ func TestNonByteCustomTypeProtoText(t *testing.T) { func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10600,11 +10598,11 @@ func TestNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10617,11 +10615,11 @@ func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10634,11 +10632,11 @@ func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10651,11 +10649,11 @@ func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10668,11 +10666,11 @@ func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10685,11 +10683,11 @@ func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10702,11 +10700,11 @@ func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10719,11 +10717,11 @@ func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10736,11 +10734,11 @@ func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10753,11 +10751,11 @@ func TestProtoTypeProtoText(t *testing.T) { func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -10769,14 +10767,14 @@ func TestProtoTypeProtoCompactText(t *testing.T) { } func TestNidOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10793,14 +10791,14 @@ func TestNidOptNativeCompare(t *testing.T) { } } func TestNinOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10817,14 +10815,14 @@ func TestNinOptNativeCompare(t *testing.T) { } } func TestNidRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10841,14 +10839,14 @@ func TestNidRepNativeCompare(t *testing.T) { } } func TestNinRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10865,14 +10863,14 @@ func TestNinRepNativeCompare(t *testing.T) { } } func TestNidRepPackedNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10889,14 +10887,14 @@ func TestNidRepPackedNativeCompare(t *testing.T) { } } func TestNinRepPackedNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10913,14 +10911,14 @@ func TestNinRepPackedNativeCompare(t *testing.T) { } } func TestNidOptStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10937,14 +10935,14 @@ func TestNidOptStructCompare(t *testing.T) { } } func TestNinOptStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10961,14 +10959,14 @@ func TestNinOptStructCompare(t *testing.T) { } } func TestNidRepStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10985,14 +10983,14 @@ func TestNidRepStructCompare(t *testing.T) { } } func TestNinRepStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11009,14 +11007,14 @@ func TestNinRepStructCompare(t *testing.T) { } } func TestNidEmbeddedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11033,14 +11031,14 @@ func TestNidEmbeddedStructCompare(t *testing.T) { } } func TestNinEmbeddedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11057,14 +11055,14 @@ func TestNinEmbeddedStructCompare(t *testing.T) { } } func TestNidNestedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11081,14 +11079,14 @@ func TestNidNestedStructCompare(t *testing.T) { } } func TestNinNestedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11105,14 +11103,14 @@ func TestNinNestedStructCompare(t *testing.T) { } } func TestNidOptCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11129,14 +11127,14 @@ func TestNidOptCustomCompare(t *testing.T) { } } func TestCustomDashCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11153,14 +11151,14 @@ func TestCustomDashCompare(t *testing.T) { } } func TestNinOptCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11177,14 +11175,14 @@ func TestNinOptCustomCompare(t *testing.T) { } } func TestNidRepCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11201,14 +11199,14 @@ func TestNidRepCustomCompare(t *testing.T) { } } func TestNinRepCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11225,14 +11223,14 @@ func TestNinRepCustomCompare(t *testing.T) { } } func TestNinOptNativeUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11249,14 +11247,14 @@ func TestNinOptNativeUnionCompare(t *testing.T) { } } func TestNinOptStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11273,14 +11271,14 @@ func TestNinOptStructUnionCompare(t *testing.T) { } } func TestNinEmbeddedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11297,14 +11295,14 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestNinNestedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11321,14 +11319,14 @@ func TestNinNestedStructUnionCompare(t *testing.T) { } } func TestTreeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11345,14 +11343,14 @@ func TestTreeCompare(t *testing.T) { } } func TestOrBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11369,14 +11367,14 @@ func TestOrBranchCompare(t *testing.T) { } } func TestAndBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11393,14 +11391,14 @@ func TestAndBranchCompare(t *testing.T) { } } func TestLeafCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11417,14 +11415,14 @@ func TestLeafCompare(t *testing.T) { } } func TestDeepTreeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11441,14 +11439,14 @@ func TestDeepTreeCompare(t *testing.T) { } } func TestADeepBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11465,14 +11463,14 @@ func TestADeepBranchCompare(t *testing.T) { } } func TestAndDeepBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11489,14 +11487,14 @@ func TestAndDeepBranchCompare(t *testing.T) { } } func TestDeepLeafCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11513,14 +11511,14 @@ func TestDeepLeafCompare(t *testing.T) { } } func TestNilCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11537,14 +11535,14 @@ func TestNilCompare(t *testing.T) { } } func TestNidOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11561,14 +11559,14 @@ func TestNidOptEnumCompare(t *testing.T) { } } func TestNinOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11585,14 +11583,14 @@ func TestNinOptEnumCompare(t *testing.T) { } } func TestNidRepEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11609,14 +11607,14 @@ func TestNidRepEnumCompare(t *testing.T) { } } func TestNinRepEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11633,14 +11631,14 @@ func TestNinRepEnumCompare(t *testing.T) { } } func TestNinOptEnumDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11657,14 +11655,14 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { } } func TestAnotherNinOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11681,14 +11679,14 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { } } func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11705,14 +11703,14 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { } } func TestTimerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11729,14 +11727,14 @@ func TestTimerCompare(t *testing.T) { } } func TestMyExtendableCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11753,14 +11751,14 @@ func TestMyExtendableCompare(t *testing.T) { } } func TestOtherExtenableCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11777,14 +11775,14 @@ func TestOtherExtenableCompare(t *testing.T) { } } func TestNestedDefinitionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11801,14 +11799,14 @@ func TestNestedDefinitionCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessageCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11825,14 +11823,14 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11849,14 +11847,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { } } func TestNestedScopeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11873,14 +11871,14 @@ func TestNestedScopeCompare(t *testing.T) { } } func TestNinOptNativeDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11897,14 +11895,14 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { } } func TestCustomContainerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11921,14 +11919,14 @@ func TestCustomContainerCompare(t *testing.T) { } } func TestCustomNameNidOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11945,14 +11943,14 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { } } func TestCustomNameNinOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11969,14 +11967,14 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { } } func TestCustomNameNinRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -11993,14 +11991,14 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { } } func TestCustomNameNinStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12017,14 +12015,14 @@ func TestCustomNameNinStructCompare(t *testing.T) { } } func TestCustomNameCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12041,14 +12039,14 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12065,14 +12063,14 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestCustomNameEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12089,14 +12087,14 @@ func TestCustomNameEnumCompare(t *testing.T) { } } func TestNoExtensionsMapCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12113,14 +12111,14 @@ func TestNoExtensionsMapCompare(t *testing.T) { } } func TestUnrecognizedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12137,14 +12135,14 @@ func TestUnrecognizedCompare(t *testing.T) { } } func TestUnrecognizedWithInnerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12161,14 +12159,14 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { } } func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12185,14 +12183,14 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { } } func TestUnrecognizedWithEmbedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12209,14 +12207,14 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12233,14 +12231,14 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { } } func TestNodeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12257,14 +12255,14 @@ func TestNodeCompare(t *testing.T) { } } func TestNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12281,14 +12279,14 @@ func TestNonByteCustomTypeCompare(t *testing.T) { } } func TestNidOptNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12305,14 +12303,14 @@ func TestNidOptNonByteCustomTypeCompare(t *testing.T) { } } func TestNinOptNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12329,14 +12327,14 @@ func TestNinOptNonByteCustomTypeCompare(t *testing.T) { } } func TestNidRepNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12353,14 +12351,14 @@ func TestNidRepNonByteCustomTypeCompare(t *testing.T) { } } func TestNinRepNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12377,14 +12375,14 @@ func TestNinRepNonByteCustomTypeCompare(t *testing.T) { } } func TestProtoTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -12404,14 +12402,14 @@ func TestThetestDescription(t *testing.T) { ThetestDescription() } func TestNidOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12419,14 +12417,14 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { } } func TestNinOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12434,14 +12432,14 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { } } func TestNidRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12449,14 +12447,14 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { } } func TestNinRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12464,14 +12462,14 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { } } func TestNidRepPackedNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12479,14 +12477,14 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNinRepPackedNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12494,14 +12492,14 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNidOptStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12509,14 +12507,14 @@ func TestNidOptStructVerboseEqual(t *testing.T) { } } func TestNinOptStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12524,14 +12522,14 @@ func TestNinOptStructVerboseEqual(t *testing.T) { } } func TestNidRepStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12539,14 +12537,14 @@ func TestNidRepStructVerboseEqual(t *testing.T) { } } func TestNinRepStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12554,14 +12552,14 @@ func TestNinRepStructVerboseEqual(t *testing.T) { } } func TestNidEmbeddedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12569,14 +12567,14 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12584,14 +12582,14 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNidNestedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12599,14 +12597,14 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { } } func TestNinNestedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12614,14 +12612,14 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { } } func TestNidOptCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12629,14 +12627,14 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { } } func TestCustomDashVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12644,14 +12642,14 @@ func TestCustomDashVerboseEqual(t *testing.T) { } } func TestNinOptCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12659,14 +12657,14 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { } } func TestNidRepCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12674,14 +12672,14 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { } } func TestNinRepCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12689,14 +12687,14 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { } } func TestNinOptNativeUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12704,14 +12702,14 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { } } func TestNinOptStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12719,14 +12717,14 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12734,14 +12732,14 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestNinNestedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12749,14 +12747,14 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { } } func TestTreeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12764,14 +12762,14 @@ func TestTreeVerboseEqual(t *testing.T) { } } func TestOrBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12779,14 +12777,14 @@ func TestOrBranchVerboseEqual(t *testing.T) { } } func TestAndBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12794,14 +12792,14 @@ func TestAndBranchVerboseEqual(t *testing.T) { } } func TestLeafVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12809,14 +12807,14 @@ func TestLeafVerboseEqual(t *testing.T) { } } func TestDeepTreeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12824,14 +12822,14 @@ func TestDeepTreeVerboseEqual(t *testing.T) { } } func TestADeepBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12839,14 +12837,14 @@ func TestADeepBranchVerboseEqual(t *testing.T) { } } func TestAndDeepBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12854,14 +12852,14 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { } } func TestDeepLeafVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12869,14 +12867,14 @@ func TestDeepLeafVerboseEqual(t *testing.T) { } } func TestNilVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12884,14 +12882,14 @@ func TestNilVerboseEqual(t *testing.T) { } } func TestNidOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12899,14 +12897,14 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12914,14 +12912,14 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { } } func TestNidRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12929,14 +12927,14 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { } } func TestNinRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12944,14 +12942,14 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12959,14 +12957,14 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12974,14 +12972,14 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -12989,14 +12987,14 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestTimerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13004,14 +13002,14 @@ func TestTimerVerboseEqual(t *testing.T) { } } func TestMyExtendableVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13019,14 +13017,14 @@ func TestMyExtendableVerboseEqual(t *testing.T) { } } func TestOtherExtenableVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13034,14 +13032,14 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { } } func TestNestedDefinitionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13049,14 +13047,14 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13064,14 +13062,14 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13079,14 +13077,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T } } func TestNestedScopeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13094,14 +13092,14 @@ func TestNestedScopeVerboseEqual(t *testing.T) { } } func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13109,14 +13107,14 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { } } func TestCustomContainerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13124,14 +13122,14 @@ func TestCustomContainerVerboseEqual(t *testing.T) { } } func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13139,14 +13137,14 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13154,14 +13152,14 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13169,14 +13167,14 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13184,14 +13182,14 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { } } func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13199,14 +13197,14 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13214,14 +13212,14 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestCustomNameEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13229,14 +13227,14 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { } } func TestNoExtensionsMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13244,14 +13242,14 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { } } func TestUnrecognizedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13259,14 +13257,14 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13274,14 +13272,14 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13289,14 +13287,14 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13304,14 +13302,14 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13319,14 +13317,14 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { } } func TestNodeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13334,14 +13332,14 @@ func TestNodeVerboseEqual(t *testing.T) { } } func TestNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13349,14 +13347,14 @@ func TestNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13364,14 +13362,14 @@ func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13379,14 +13377,14 @@ func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13394,14 +13392,14 @@ func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13409,14 +13407,14 @@ func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestProtoTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -13424,7 +13422,7 @@ func TestProtoTypeVerboseEqual(t *testing.T) { } } func TestNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13432,7 +13430,7 @@ func TestNidOptNativeFace(t *testing.T) { } } func TestNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13440,7 +13438,7 @@ func TestNinOptNativeFace(t *testing.T) { } } func TestNidRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13448,7 +13446,7 @@ func TestNidRepNativeFace(t *testing.T) { } } func TestNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13456,7 +13454,7 @@ func TestNinRepNativeFace(t *testing.T) { } } func TestNidRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13464,7 +13462,7 @@ func TestNidRepPackedNativeFace(t *testing.T) { } } func TestNinRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13472,7 +13470,7 @@ func TestNinRepPackedNativeFace(t *testing.T) { } } func TestNidOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13480,7 +13478,7 @@ func TestNidOptStructFace(t *testing.T) { } } func TestNinOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13488,7 +13486,7 @@ func TestNinOptStructFace(t *testing.T) { } } func TestNidRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13496,7 +13494,7 @@ func TestNidRepStructFace(t *testing.T) { } } func TestNinRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13504,7 +13502,7 @@ func TestNinRepStructFace(t *testing.T) { } } func TestNidEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13512,7 +13510,7 @@ func TestNidEmbeddedStructFace(t *testing.T) { } } func TestNinEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13520,7 +13518,7 @@ func TestNinEmbeddedStructFace(t *testing.T) { } } func TestNidNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13528,7 +13526,7 @@ func TestNidNestedStructFace(t *testing.T) { } } func TestNinNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13536,7 +13534,7 @@ func TestNinNestedStructFace(t *testing.T) { } } func TestNidOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13544,7 +13542,7 @@ func TestNidOptCustomFace(t *testing.T) { } } func TestCustomDashFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13552,7 +13550,7 @@ func TestCustomDashFace(t *testing.T) { } } func TestNinOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13560,7 +13558,7 @@ func TestNinOptCustomFace(t *testing.T) { } } func TestNidRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13568,7 +13566,7 @@ func TestNidRepCustomFace(t *testing.T) { } } func TestNinRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13576,7 +13574,7 @@ func TestNinRepCustomFace(t *testing.T) { } } func TestNinOptNativeUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13584,7 +13582,7 @@ func TestNinOptNativeUnionFace(t *testing.T) { } } func TestNinOptStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13592,7 +13590,7 @@ func TestNinOptStructUnionFace(t *testing.T) { } } func TestNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13600,7 +13598,7 @@ func TestNinEmbeddedStructUnionFace(t *testing.T) { } } func TestNinNestedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13608,7 +13606,7 @@ func TestNinNestedStructUnionFace(t *testing.T) { } } func TestTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13616,7 +13614,7 @@ func TestTreeFace(t *testing.T) { } } func TestOrBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13624,7 +13622,7 @@ func TestOrBranchFace(t *testing.T) { } } func TestAndBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13632,7 +13630,7 @@ func TestAndBranchFace(t *testing.T) { } } func TestLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13640,7 +13638,7 @@ func TestLeafFace(t *testing.T) { } } func TestDeepTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13648,7 +13646,7 @@ func TestDeepTreeFace(t *testing.T) { } } func TestADeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13656,7 +13654,7 @@ func TestADeepBranchFace(t *testing.T) { } } func TestAndDeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13664,7 +13662,7 @@ func TestAndDeepBranchFace(t *testing.T) { } } func TestDeepLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13672,7 +13670,7 @@ func TestDeepLeafFace(t *testing.T) { } } func TestNilFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13680,7 +13678,7 @@ func TestNilFace(t *testing.T) { } } func TestNidOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13688,7 +13686,7 @@ func TestNidOptEnumFace(t *testing.T) { } } func TestNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13696,7 +13694,7 @@ func TestNinOptEnumFace(t *testing.T) { } } func TestNidRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13704,7 +13702,7 @@ func TestNidRepEnumFace(t *testing.T) { } } func TestNinRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13712,7 +13710,7 @@ func TestNinRepEnumFace(t *testing.T) { } } func TestAnotherNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13720,7 +13718,7 @@ func TestAnotherNinOptEnumFace(t *testing.T) { } } func TestTimerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13728,7 +13726,7 @@ func TestTimerFace(t *testing.T) { } } func TestNestedDefinitionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13736,7 +13734,7 @@ func TestNestedDefinitionFace(t *testing.T) { } } func TestNestedDefinition_NestedMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13744,7 +13742,7 @@ func TestNestedDefinition_NestedMessageFace(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13752,7 +13750,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { } } func TestNestedScopeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13760,7 +13758,7 @@ func TestNestedScopeFace(t *testing.T) { } } func TestCustomContainerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13768,7 +13766,7 @@ func TestCustomContainerFace(t *testing.T) { } } func TestCustomNameNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13776,7 +13774,7 @@ func TestCustomNameNidOptNativeFace(t *testing.T) { } } func TestCustomNameNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13784,7 +13782,7 @@ func TestCustomNameNinOptNativeFace(t *testing.T) { } } func TestCustomNameNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13792,7 +13790,7 @@ func TestCustomNameNinRepNativeFace(t *testing.T) { } } func TestCustomNameNinStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13800,7 +13798,7 @@ func TestCustomNameNinStructFace(t *testing.T) { } } func TestCustomNameCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13808,7 +13806,7 @@ func TestCustomNameCustomTypeFace(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13816,7 +13814,7 @@ func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { } } func TestCustomNameEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13824,7 +13822,7 @@ func TestCustomNameEnumFace(t *testing.T) { } } func TestUnrecognizedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13832,7 +13830,7 @@ func TestUnrecognizedFace(t *testing.T) { } } func TestUnrecognizedWithInnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13840,7 +13838,7 @@ func TestUnrecognizedWithInnerFace(t *testing.T) { } } func TestUnrecognizedWithInner_InnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13848,7 +13846,7 @@ func TestUnrecognizedWithInner_InnerFace(t *testing.T) { } } func TestUnrecognizedWithEmbedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13856,7 +13854,7 @@ func TestUnrecognizedWithEmbedFace(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13864,7 +13862,7 @@ func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { } } func TestNodeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13872,7 +13870,7 @@ func TestNodeFace(t *testing.T) { } } func TestNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13880,7 +13878,7 @@ func TestNonByteCustomTypeFace(t *testing.T) { } } func TestNidOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13888,7 +13886,7 @@ func TestNidOptNonByteCustomTypeFace(t *testing.T) { } } func TestNinOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13896,7 +13894,7 @@ func TestNinOptNonByteCustomTypeFace(t *testing.T) { } } func TestNidRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13904,7 +13902,7 @@ func TestNidRepNonByteCustomTypeFace(t *testing.T) { } } func TestNinRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13912,7 +13910,7 @@ func TestNinRepNonByteCustomTypeFace(t *testing.T) { } } func TestProtoTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -13920,895 +13918,895 @@ func TestProtoTypeFace(t *testing.T) { } } func TestNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomDashGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinNestedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOrBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAndBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestDeepTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestADeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAndDeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestDeepLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNilGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAnotherNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAnotherNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTimerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMyExtendableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOtherExtenableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinitionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinition_NestedMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinition_NestedMessage_NestedNestedMsgGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedScopeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomContainerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNoExtensionsMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithInnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithEmbedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNodeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestProtoTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14819,14 +14817,14 @@ func TestNidOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNative, 1000) for i := 0; i < 1000; i++ { @@ -14841,10 +14839,10 @@ func BenchmarkNidOptNativeSize(b *testing.B) { func TestNinOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14855,14 +14853,14 @@ func TestNinOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNative, 1000) for i := 0; i < 1000; i++ { @@ -14877,10 +14875,10 @@ func BenchmarkNinOptNativeSize(b *testing.B) { func TestNidRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14891,14 +14889,14 @@ func TestNidRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNative, 1000) for i := 0; i < 1000; i++ { @@ -14913,10 +14911,10 @@ func BenchmarkNidRepNativeSize(b *testing.B) { func TestNinRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14927,14 +14925,14 @@ func TestNinRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNative, 1000) for i := 0; i < 1000; i++ { @@ -14949,10 +14947,10 @@ func BenchmarkNinRepNativeSize(b *testing.B) { func TestNidRepPackedNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14963,14 +14961,14 @@ func TestNidRepPackedNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepPackedNative, 1000) for i := 0; i < 1000; i++ { @@ -14985,10 +14983,10 @@ func BenchmarkNidRepPackedNativeSize(b *testing.B) { func TestNinRepPackedNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14999,14 +14997,14 @@ func TestNinRepPackedNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepPackedNative, 1000) for i := 0; i < 1000; i++ { @@ -15021,10 +15019,10 @@ func BenchmarkNinRepPackedNativeSize(b *testing.B) { func TestNidOptStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15035,14 +15033,14 @@ func TestNidOptStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptStruct, 1000) for i := 0; i < 1000; i++ { @@ -15057,10 +15055,10 @@ func BenchmarkNidOptStructSize(b *testing.B) { func TestNinOptStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15071,14 +15069,14 @@ func TestNinOptStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStruct, 1000) for i := 0; i < 1000; i++ { @@ -15093,10 +15091,10 @@ func BenchmarkNinOptStructSize(b *testing.B) { func TestNidRepStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15107,14 +15105,14 @@ func TestNidRepStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepStruct, 1000) for i := 0; i < 1000; i++ { @@ -15129,10 +15127,10 @@ func BenchmarkNidRepStructSize(b *testing.B) { func TestNinRepStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15143,14 +15141,14 @@ func TestNinRepStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepStruct, 1000) for i := 0; i < 1000; i++ { @@ -15165,10 +15163,10 @@ func BenchmarkNinRepStructSize(b *testing.B) { func TestNidEmbeddedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15179,14 +15177,14 @@ func TestNidEmbeddedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidEmbeddedStruct, 1000) for i := 0; i < 1000; i++ { @@ -15201,10 +15199,10 @@ func BenchmarkNidEmbeddedStructSize(b *testing.B) { func TestNinEmbeddedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15215,14 +15213,14 @@ func TestNinEmbeddedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStruct, 1000) for i := 0; i < 1000; i++ { @@ -15237,10 +15235,10 @@ func BenchmarkNinEmbeddedStructSize(b *testing.B) { func TestNidNestedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15251,14 +15249,14 @@ func TestNidNestedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidNestedStruct, 1000) for i := 0; i < 1000; i++ { @@ -15273,10 +15271,10 @@ func BenchmarkNidNestedStructSize(b *testing.B) { func TestNinNestedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15287,14 +15285,14 @@ func TestNinNestedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStruct, 1000) for i := 0; i < 1000; i++ { @@ -15309,10 +15307,10 @@ func BenchmarkNinNestedStructSize(b *testing.B) { func TestNidOptCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15323,14 +15321,14 @@ func TestNidOptCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptCustom, 1000) for i := 0; i < 1000; i++ { @@ -15345,10 +15343,10 @@ func BenchmarkNidOptCustomSize(b *testing.B) { func TestCustomDashSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15359,14 +15357,14 @@ func TestCustomDashSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomDashSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomDash, 1000) for i := 0; i < 1000; i++ { @@ -15381,10 +15379,10 @@ func BenchmarkCustomDashSize(b *testing.B) { func TestNinOptCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15395,14 +15393,14 @@ func TestNinOptCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptCustom, 1000) for i := 0; i < 1000; i++ { @@ -15417,10 +15415,10 @@ func BenchmarkNinOptCustomSize(b *testing.B) { func TestNidRepCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15431,14 +15429,14 @@ func TestNidRepCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepCustom, 1000) for i := 0; i < 1000; i++ { @@ -15453,10 +15451,10 @@ func BenchmarkNidRepCustomSize(b *testing.B) { func TestNinRepCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15467,14 +15465,14 @@ func TestNinRepCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepCustom, 1000) for i := 0; i < 1000; i++ { @@ -15489,10 +15487,10 @@ func BenchmarkNinRepCustomSize(b *testing.B) { func TestNinOptNativeUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15503,14 +15501,14 @@ func TestNinOptNativeUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeUnion, 1000) for i := 0; i < 1000; i++ { @@ -15525,10 +15523,10 @@ func BenchmarkNinOptNativeUnionSize(b *testing.B) { func TestNinOptStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15539,14 +15537,14 @@ func TestNinOptStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -15561,10 +15559,10 @@ func BenchmarkNinOptStructUnionSize(b *testing.B) { func TestNinEmbeddedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15575,14 +15573,14 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -15597,10 +15595,10 @@ func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { func TestNinNestedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15611,14 +15609,14 @@ func TestNinNestedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinNestedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -15633,10 +15631,10 @@ func BenchmarkNinNestedStructUnionSize(b *testing.B) { func TestTreeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15647,14 +15645,14 @@ func TestTreeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Tree, 1000) for i := 0; i < 1000; i++ { @@ -15669,10 +15667,10 @@ func BenchmarkTreeSize(b *testing.B) { func TestOrBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15683,14 +15681,14 @@ func TestOrBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOrBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OrBranch, 1000) for i := 0; i < 1000; i++ { @@ -15705,10 +15703,10 @@ func BenchmarkOrBranchSize(b *testing.B) { func TestAndBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15719,14 +15717,14 @@ func TestAndBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAndBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndBranch, 1000) for i := 0; i < 1000; i++ { @@ -15741,10 +15739,10 @@ func BenchmarkAndBranchSize(b *testing.B) { func TestLeafSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15755,14 +15753,14 @@ func TestLeafSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Leaf, 1000) for i := 0; i < 1000; i++ { @@ -15777,10 +15775,10 @@ func BenchmarkLeafSize(b *testing.B) { func TestDeepTreeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15791,14 +15789,14 @@ func TestDeepTreeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDeepTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepTree, 1000) for i := 0; i < 1000; i++ { @@ -15813,10 +15811,10 @@ func BenchmarkDeepTreeSize(b *testing.B) { func TestADeepBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15827,14 +15825,14 @@ func TestADeepBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkADeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ADeepBranch, 1000) for i := 0; i < 1000; i++ { @@ -15849,10 +15847,10 @@ func BenchmarkADeepBranchSize(b *testing.B) { func TestAndDeepBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15863,14 +15861,14 @@ func TestAndDeepBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAndDeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndDeepBranch, 1000) for i := 0; i < 1000; i++ { @@ -15885,10 +15883,10 @@ func BenchmarkAndDeepBranchSize(b *testing.B) { func TestDeepLeafSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15899,14 +15897,14 @@ func TestDeepLeafSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDeepLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepLeaf, 1000) for i := 0; i < 1000; i++ { @@ -15921,10 +15919,10 @@ func BenchmarkDeepLeafSize(b *testing.B) { func TestNilSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15935,14 +15933,14 @@ func TestNilSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNilSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nil, 1000) for i := 0; i < 1000; i++ { @@ -15957,10 +15955,10 @@ func BenchmarkNilSize(b *testing.B) { func TestNidOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15971,14 +15969,14 @@ func TestNidOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -15993,10 +15991,10 @@ func BenchmarkNidOptEnumSize(b *testing.B) { func TestNinOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16007,14 +16005,14 @@ func TestNinOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -16029,10 +16027,10 @@ func BenchmarkNinOptEnumSize(b *testing.B) { func TestNidRepEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16043,14 +16041,14 @@ func TestNidRepEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepEnum, 1000) for i := 0; i < 1000; i++ { @@ -16065,10 +16063,10 @@ func BenchmarkNidRepEnumSize(b *testing.B) { func TestNinRepEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16079,14 +16077,14 @@ func TestNinRepEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepEnum, 1000) for i := 0; i < 1000; i++ { @@ -16101,10 +16099,10 @@ func BenchmarkNinRepEnumSize(b *testing.B) { func TestNinOptEnumDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16115,14 +16113,14 @@ func TestNinOptEnumDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnumDefault, 1000) for i := 0; i < 1000; i++ { @@ -16137,10 +16135,10 @@ func BenchmarkNinOptEnumDefaultSize(b *testing.B) { func TestAnotherNinOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16151,14 +16149,14 @@ func TestAnotherNinOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAnotherNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -16173,10 +16171,10 @@ func BenchmarkAnotherNinOptEnumSize(b *testing.B) { func TestAnotherNinOptEnumDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16187,14 +16185,14 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnumDefault, 1000) for i := 0; i < 1000; i++ { @@ -16209,10 +16207,10 @@ func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { func TestTimerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16223,14 +16221,14 @@ func TestTimerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkTimerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Timer, 1000) for i := 0; i < 1000; i++ { @@ -16245,10 +16243,10 @@ func BenchmarkTimerSize(b *testing.B) { func TestMyExtendableSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16259,14 +16257,14 @@ func TestMyExtendableSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMyExtendableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyExtendable, 1000) for i := 0; i < 1000; i++ { @@ -16281,10 +16279,10 @@ func BenchmarkMyExtendableSize(b *testing.B) { func TestOtherExtenableSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16295,14 +16293,14 @@ func TestOtherExtenableSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOtherExtenableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OtherExtenable, 1000) for i := 0; i < 1000; i++ { @@ -16317,10 +16315,10 @@ func BenchmarkOtherExtenableSize(b *testing.B) { func TestNestedDefinitionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16331,14 +16329,14 @@ func TestNestedDefinitionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinitionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition, 1000) for i := 0; i < 1000; i++ { @@ -16353,10 +16351,10 @@ func BenchmarkNestedDefinitionSize(b *testing.B) { func TestNestedDefinition_NestedMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16367,14 +16365,14 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage, 1000) for i := 0; i < 1000; i++ { @@ -16389,10 +16387,10 @@ func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16403,14 +16401,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 1000) for i := 0; i < 1000; i++ { @@ -16425,10 +16423,10 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { func TestNestedScopeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16439,14 +16437,14 @@ func TestNestedScopeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedScopeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedScope, 1000) for i := 0; i < 1000; i++ { @@ -16461,10 +16459,10 @@ func BenchmarkNestedScopeSize(b *testing.B) { func TestNinOptNativeDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16475,14 +16473,14 @@ func TestNinOptNativeDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeDefault, 1000) for i := 0; i < 1000; i++ { @@ -16497,10 +16495,10 @@ func BenchmarkNinOptNativeDefaultSize(b *testing.B) { func TestCustomContainerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16511,14 +16509,14 @@ func TestCustomContainerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomContainerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomContainer, 1000) for i := 0; i < 1000; i++ { @@ -16533,10 +16531,10 @@ func BenchmarkCustomContainerSize(b *testing.B) { func TestCustomNameNidOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16547,14 +16545,14 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNidOptNative, 1000) for i := 0; i < 1000; i++ { @@ -16569,10 +16567,10 @@ func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { func TestCustomNameNinOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16583,14 +16581,14 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinOptNative, 1000) for i := 0; i < 1000; i++ { @@ -16605,10 +16603,10 @@ func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { func TestCustomNameNinRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16619,14 +16617,14 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinRepNative, 1000) for i := 0; i < 1000; i++ { @@ -16641,10 +16639,10 @@ func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { func TestCustomNameNinStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16655,14 +16653,14 @@ func TestCustomNameNinStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinStruct, 1000) for i := 0; i < 1000; i++ { @@ -16677,10 +16675,10 @@ func BenchmarkCustomNameNinStructSize(b *testing.B) { func TestCustomNameCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16691,14 +16689,14 @@ func TestCustomNameCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameCustomType, 1000) for i := 0; i < 1000; i++ { @@ -16713,10 +16711,10 @@ func BenchmarkCustomNameCustomTypeSize(b *testing.B) { func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16727,14 +16725,14 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinEmbeddedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -16749,10 +16747,10 @@ func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { func TestCustomNameEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16763,14 +16761,14 @@ func TestCustomNameEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameEnum, 1000) for i := 0; i < 1000; i++ { @@ -16785,10 +16783,10 @@ func BenchmarkCustomNameEnumSize(b *testing.B) { func TestNoExtensionsMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16799,14 +16797,14 @@ func TestNoExtensionsMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNoExtensionsMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NoExtensionsMap, 1000) for i := 0; i < 1000; i++ { @@ -16821,10 +16819,10 @@ func BenchmarkNoExtensionsMapSize(b *testing.B) { func TestUnrecognizedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16835,14 +16833,14 @@ func TestUnrecognizedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Unrecognized, 1000) for i := 0; i < 1000; i++ { @@ -16857,10 +16855,10 @@ func BenchmarkUnrecognizedSize(b *testing.B) { func TestUnrecognizedWithInnerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16871,14 +16869,14 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner, 1000) for i := 0; i < 1000; i++ { @@ -16893,10 +16891,10 @@ func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { func TestUnrecognizedWithInner_InnerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16907,14 +16905,14 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner_Inner, 1000) for i := 0; i < 1000; i++ { @@ -16929,10 +16927,10 @@ func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { func TestUnrecognizedWithEmbedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16943,14 +16941,14 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed, 1000) for i := 0; i < 1000; i++ { @@ -16965,10 +16963,10 @@ func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -16979,14 +16977,14 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed_Embedded, 1000) for i := 0; i < 1000; i++ { @@ -17001,10 +16999,10 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { func TestNodeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17015,14 +17013,14 @@ func TestNodeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNodeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Node, 1000) for i := 0; i < 1000; i++ { @@ -17037,10 +17035,10 @@ func BenchmarkNodeSize(b *testing.B) { func TestNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17051,14 +17049,14 @@ func TestNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17073,10 +17071,10 @@ func BenchmarkNonByteCustomTypeSize(b *testing.B) { func TestNidOptNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17087,14 +17085,14 @@ func TestNidOptNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17109,10 +17107,10 @@ func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { func TestNinOptNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17123,14 +17121,14 @@ func TestNinOptNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17145,10 +17143,10 @@ func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { func TestNidRepNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17159,14 +17157,14 @@ func TestNidRepNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17181,10 +17179,10 @@ func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { func TestNinRepNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17195,14 +17193,14 @@ func TestNinRepNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -17217,10 +17215,10 @@ func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { func TestProtoTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -17231,14 +17229,14 @@ func TestProtoTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkProtoTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoType, 1000) for i := 0; i < 1000; i++ { @@ -17252,7 +17250,7 @@ func BenchmarkProtoTypeSize(b *testing.B) { } func TestNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17261,7 +17259,7 @@ func TestNidOptNativeStringer(t *testing.T) { } } func TestNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17270,7 +17268,7 @@ func TestNinOptNativeStringer(t *testing.T) { } } func TestNidRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17279,7 +17277,7 @@ func TestNidRepNativeStringer(t *testing.T) { } } func TestNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17288,7 +17286,7 @@ func TestNinRepNativeStringer(t *testing.T) { } } func TestNidRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17297,7 +17295,7 @@ func TestNidRepPackedNativeStringer(t *testing.T) { } } func TestNinRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17306,7 +17304,7 @@ func TestNinRepPackedNativeStringer(t *testing.T) { } } func TestNidOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17315,7 +17313,7 @@ func TestNidOptStructStringer(t *testing.T) { } } func TestNinOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17324,7 +17322,7 @@ func TestNinOptStructStringer(t *testing.T) { } } func TestNidRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17333,7 +17331,7 @@ func TestNidRepStructStringer(t *testing.T) { } } func TestNinRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17342,7 +17340,7 @@ func TestNinRepStructStringer(t *testing.T) { } } func TestNidEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17351,7 +17349,7 @@ func TestNidEmbeddedStructStringer(t *testing.T) { } } func TestNinEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17360,7 +17358,7 @@ func TestNinEmbeddedStructStringer(t *testing.T) { } } func TestNidNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17369,7 +17367,7 @@ func TestNidNestedStructStringer(t *testing.T) { } } func TestNinNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17378,7 +17376,7 @@ func TestNinNestedStructStringer(t *testing.T) { } } func TestNidOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17387,7 +17385,7 @@ func TestNidOptCustomStringer(t *testing.T) { } } func TestCustomDashStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17396,7 +17394,7 @@ func TestCustomDashStringer(t *testing.T) { } } func TestNinOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17405,7 +17403,7 @@ func TestNinOptCustomStringer(t *testing.T) { } } func TestNidRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17414,7 +17412,7 @@ func TestNidRepCustomStringer(t *testing.T) { } } func TestNinRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17423,7 +17421,7 @@ func TestNinRepCustomStringer(t *testing.T) { } } func TestNinOptNativeUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17432,7 +17430,7 @@ func TestNinOptNativeUnionStringer(t *testing.T) { } } func TestNinOptStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17441,7 +17439,7 @@ func TestNinOptStructUnionStringer(t *testing.T) { } } func TestNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17450,7 +17448,7 @@ func TestNinEmbeddedStructUnionStringer(t *testing.T) { } } func TestNinNestedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17459,7 +17457,7 @@ func TestNinNestedStructUnionStringer(t *testing.T) { } } func TestTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17468,7 +17466,7 @@ func TestTreeStringer(t *testing.T) { } } func TestOrBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17477,7 +17475,7 @@ func TestOrBranchStringer(t *testing.T) { } } func TestAndBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17486,7 +17484,7 @@ func TestAndBranchStringer(t *testing.T) { } } func TestLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17495,7 +17493,7 @@ func TestLeafStringer(t *testing.T) { } } func TestDeepTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17504,7 +17502,7 @@ func TestDeepTreeStringer(t *testing.T) { } } func TestADeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17513,7 +17511,7 @@ func TestADeepBranchStringer(t *testing.T) { } } func TestAndDeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17522,7 +17520,7 @@ func TestAndDeepBranchStringer(t *testing.T) { } } func TestDeepLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17531,7 +17529,7 @@ func TestDeepLeafStringer(t *testing.T) { } } func TestNilStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17540,7 +17538,7 @@ func TestNilStringer(t *testing.T) { } } func TestNidOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17549,7 +17547,7 @@ func TestNidOptEnumStringer(t *testing.T) { } } func TestNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17558,7 +17556,7 @@ func TestNinOptEnumStringer(t *testing.T) { } } func TestNidRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17567,7 +17565,7 @@ func TestNidRepEnumStringer(t *testing.T) { } } func TestNinRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17576,7 +17574,7 @@ func TestNinRepEnumStringer(t *testing.T) { } } func TestNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17585,7 +17583,7 @@ func TestNinOptEnumDefaultStringer(t *testing.T) { } } func TestAnotherNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17594,7 +17592,7 @@ func TestAnotherNinOptEnumStringer(t *testing.T) { } } func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17603,7 +17601,7 @@ func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { } } func TestTimerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17612,7 +17610,7 @@ func TestTimerStringer(t *testing.T) { } } func TestMyExtendableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17621,7 +17619,7 @@ func TestMyExtendableStringer(t *testing.T) { } } func TestOtherExtenableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17630,7 +17628,7 @@ func TestOtherExtenableStringer(t *testing.T) { } } func TestNestedDefinitionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17639,7 +17637,7 @@ func TestNestedDefinitionStringer(t *testing.T) { } } func TestNestedDefinition_NestedMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17648,7 +17646,7 @@ func TestNestedDefinition_NestedMessageStringer(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17657,7 +17655,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { } } func TestNestedScopeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17666,7 +17664,7 @@ func TestNestedScopeStringer(t *testing.T) { } } func TestNinOptNativeDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17675,7 +17673,7 @@ func TestNinOptNativeDefaultStringer(t *testing.T) { } } func TestCustomContainerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17684,7 +17682,7 @@ func TestCustomContainerStringer(t *testing.T) { } } func TestCustomNameNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17693,7 +17691,7 @@ func TestCustomNameNidOptNativeStringer(t *testing.T) { } } func TestCustomNameNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17702,7 +17700,7 @@ func TestCustomNameNinOptNativeStringer(t *testing.T) { } } func TestCustomNameNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17711,7 +17709,7 @@ func TestCustomNameNinRepNativeStringer(t *testing.T) { } } func TestCustomNameNinStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17720,7 +17718,7 @@ func TestCustomNameNinStructStringer(t *testing.T) { } } func TestCustomNameCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17729,7 +17727,7 @@ func TestCustomNameCustomTypeStringer(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17738,7 +17736,7 @@ func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { } } func TestCustomNameEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17747,7 +17745,7 @@ func TestCustomNameEnumStringer(t *testing.T) { } } func TestNoExtensionsMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17756,7 +17754,7 @@ func TestNoExtensionsMapStringer(t *testing.T) { } } func TestUnrecognizedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17765,7 +17763,7 @@ func TestUnrecognizedStringer(t *testing.T) { } } func TestUnrecognizedWithInnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17774,7 +17772,7 @@ func TestUnrecognizedWithInnerStringer(t *testing.T) { } } func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17783,7 +17781,7 @@ func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { } } func TestUnrecognizedWithEmbedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17792,7 +17790,7 @@ func TestUnrecognizedWithEmbedStringer(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17801,7 +17799,7 @@ func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { } } func TestNodeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17810,7 +17808,7 @@ func TestNodeStringer(t *testing.T) { } } func TestNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17819,7 +17817,7 @@ func TestNonByteCustomTypeStringer(t *testing.T) { } } func TestNidOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17828,7 +17826,7 @@ func TestNidOptNonByteCustomTypeStringer(t *testing.T) { } } func TestNinOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17837,7 +17835,7 @@ func TestNinOptNonByteCustomTypeStringer(t *testing.T) { } } func TestNidRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17846,7 +17844,7 @@ func TestNidRepNonByteCustomTypeStringer(t *testing.T) { } } func TestNinRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17855,7 +17853,7 @@ func TestNinRepNonByteCustomTypeStringer(t *testing.T) { } } func TestProtoTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -17864,7 +17862,7 @@ func TestProtoTypeStringer(t *testing.T) { } } func TestNinOptNativeUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) v := p.GetValue() msg := &NinOptNativeUnion{} @@ -17876,7 +17874,7 @@ func TestNinOptNativeUnionOnlyOne(t *testing.T) { } } func TestNinOptStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, true) v := p.GetValue() msg := &NinOptStructUnion{} @@ -17888,7 +17886,7 @@ func TestNinOptStructUnionOnlyOne(t *testing.T) { } } func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, true) v := p.GetValue() msg := &NinEmbeddedStructUnion{} @@ -17900,7 +17898,7 @@ func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { } } func TestNinNestedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, true) v := p.GetValue() msg := &NinNestedStructUnion{} @@ -17912,7 +17910,7 @@ func TestNinNestedStructUnionOnlyOne(t *testing.T) { } } func TestTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, true) v := p.GetValue() msg := &Tree{} @@ -17924,7 +17922,7 @@ func TestTreeOnlyOne(t *testing.T) { } } func TestDeepTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, true) v := p.GetValue() msg := &DeepTree{} @@ -17936,7 +17934,7 @@ func TestDeepTreeOnlyOne(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) v := p.GetValue() msg := &CustomNameNinEmbeddedStructUnion{} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go index c6ef9ff12..fbe71893f 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetest.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/thetest.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -85,12 +84,11 @@ import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custo import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type" import bytes "bytes" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import compress_gzip "compress/gzip" -import io_ioutil "io/ioutil" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" +import ioutil "io/ioutil" import strconv "strconv" @@ -99,6 +97,7 @@ import sort "sort" import reflect "reflect" import io "io" +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -953,7 +952,7 @@ func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, type NinOptNativeDefault struct { Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.12341" json:"Field2,omitempty"` Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` @@ -975,7 +974,7 @@ func (*NinOptNativeDefault) ProtoMessage() {} func (*NinOptNativeDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{44} } const Default_NinOptNativeDefault_Field1 float64 = 1234.1234 -const Default_NinOptNativeDefault_Field2 float32 = 1234.1234 +const Default_NinOptNativeDefault_Field2 float32 = 1234.12341 const Default_NinOptNativeDefault_Field3 int32 = 1234 const Default_NinOptNativeDefault_Field4 int64 = 1234 const Default_NinOptNativeDefault_Field5 uint32 = 1234 @@ -4822,8 +4821,8 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) extkeys := make([]int32, 0, len(thismap)+len(thatmap)) for k := range thismap { extkeys = append(extkeys, k) @@ -4833,7 +4832,7 @@ func (this *MyExtendable) Compare(that interface{}) int { extkeys = append(extkeys, k) } } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) + sortkeys.Int32s(extkeys) for _, k := range extkeys { if v, ok := thismap[k]; ok { if v2, ok := thatmap[k]; ok { @@ -4904,8 +4903,8 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) extkeys := make([]int32, 0, len(thismap)+len(thatmap)) for k := range thismap { extkeys = append(extkeys, k) @@ -4915,7 +4914,7 @@ func (this *OtherExtenable) Compare(that interface{}) int { extkeys = append(extkeys, k) } } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) + sortkeys.Int32s(extkeys) for _, k := range extkeys { if v, ok := thismap[k]; ok { if v2, ok := thatmap[k]; ok { @@ -6762,632 +6761,639 @@ func (this *ProtoType) Compare(that interface{}) int { } return 0 } -func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepPackedNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepPackedNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidEmbeddedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinEmbeddedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidNestedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinNestedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomDash) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomDash) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNativeUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNativeUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinEmbeddedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinNestedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinNestedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Tree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Tree) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *OrBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OrBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AndBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AndBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Leaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Leaf) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *DeepTree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *DeepTree) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *ADeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ADeepBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AndDeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AndDeepBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *DeepLeaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *DeepLeaf) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Nil) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Nil) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptEnumDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AnotherNinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AnotherNinOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AnotherNinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AnotherNinOptEnumDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Timer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Timer) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *MyExtendable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *MyExtendable) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *OtherExtenable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OtherExtenable) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition_NestedMessage) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition_NestedMessage) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedScope) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedScope) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNativeDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNativeDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomContainer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomContainer) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNidOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NoExtensionsMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NoExtensionsMap) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Unrecognized) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Unrecognized) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithInner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithInner) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithInner_Inner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithInner_Inner) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithEmbed) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithEmbed) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Node) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ProtoType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func ThetestDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6505 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x70, 0x24, 0x57, - 0x75, 0x56, 0x4f, 0x8f, 0xb4, 0xa3, 0xa3, 0x57, 0xab, 0xb5, 0xd6, 0x8e, 0xe5, 0xb5, 0xa4, 0x1d, - 0xaf, 0xd7, 0xb2, 0xb0, 0xb5, 0x5a, 0xad, 0xb4, 0x8f, 0x59, 0x6c, 0xd7, 0xbc, 0x76, 0xad, 0x45, - 0x1a, 0x89, 0x96, 0x84, 0xbd, 0x24, 0x55, 0x53, 0xbd, 0x33, 0x57, 0xd2, 0xd8, 0x33, 0xdd, 0xc3, - 0x74, 0xcb, 0xb6, 0xfc, 0x23, 0xe5, 0x40, 0x42, 0x20, 0xa9, 0x3c, 0x49, 0x2a, 0x40, 0xc0, 0x18, - 0x52, 0x04, 0x03, 0x79, 0x40, 0x42, 0x08, 0x45, 0xa5, 0x82, 0xff, 0x90, 0x6c, 0x7e, 0x24, 0x65, - 0xf2, 0x2b, 0x45, 0xa5, 0x5c, 0xec, 0x9a, 0xaa, 0x90, 0xc4, 0x49, 0x20, 0xb8, 0x0a, 0xaa, 0xcc, - 0x8f, 0xd4, 0x7d, 0x75, 0xf7, 0xbd, 0xd3, 0xa3, 0x6e, 0x79, 0x6d, 0xe0, 0xcf, 0xee, 0xcc, 0x3d, - 0xe7, 0x3b, 0x7d, 0xee, 0x79, 0xdd, 0xd3, 0xf7, 0x5e, 0x0d, 0xbc, 0xba, 0x04, 0xd3, 0x3b, 0xb6, - 0xbd, 0xd3, 0x40, 0xa7, 0x5b, 0x6d, 0xdb, 0xb5, 0xaf, 0xef, 0x6d, 0x9f, 0xae, 0x21, 0xa7, 0xda, - 0xae, 0xb7, 0x5c, 0xbb, 0x3d, 0x47, 0xc6, 0xf4, 0x11, 0xca, 0x31, 0xc7, 0x39, 0x32, 0xab, 0x30, - 0x7a, 0xb9, 0xde, 0x40, 0x45, 0x8f, 0x71, 0x03, 0xb9, 0xfa, 0x05, 0x48, 0x6e, 0xd7, 0x1b, 0x28, - 0xad, 0x4c, 0xab, 0x33, 0x03, 0x0b, 0x27, 0xe7, 0x24, 0xd0, 0x9c, 0x88, 0x58, 0xc7, 0xc3, 0x06, - 0x41, 0x64, 0xbe, 0x9b, 0x84, 0xb1, 0x10, 0xaa, 0xae, 0x43, 0xd2, 0x32, 0x9b, 0x58, 0xa2, 0x32, - 0xd3, 0x6f, 0x90, 0xcf, 0x7a, 0x1a, 0x8e, 0xb4, 0xcc, 0xea, 0x93, 0xe6, 0x0e, 0x4a, 0x27, 0xc8, - 0x30, 0xff, 0xaa, 0x4f, 0x02, 0xd4, 0x50, 0x0b, 0x59, 0x35, 0x64, 0x55, 0xf7, 0xd3, 0xea, 0xb4, - 0x3a, 0xd3, 0x6f, 0x04, 0x46, 0xf4, 0x77, 0xc0, 0x68, 0x6b, 0xef, 0x7a, 0xa3, 0x5e, 0xad, 0x04, - 0xd8, 0x60, 0x5a, 0x9d, 0xe9, 0x35, 0x34, 0x4a, 0x28, 0xfa, 0xcc, 0xf7, 0xc1, 0xc8, 0xd3, 0xc8, - 0x7c, 0x32, 0xc8, 0x3a, 0x40, 0x58, 0x87, 0xf1, 0x70, 0x80, 0xb1, 0x00, 0x83, 0x4d, 0xe4, 0x38, - 0xe6, 0x0e, 0xaa, 0xb8, 0xfb, 0x2d, 0x94, 0x4e, 0x92, 0xd9, 0x4f, 0x77, 0xcc, 0x5e, 0x9e, 0xf9, - 0x00, 0x43, 0x6d, 0xee, 0xb7, 0x90, 0x9e, 0x83, 0x7e, 0x64, 0xed, 0x35, 0xa9, 0x84, 0xde, 0x2e, - 0xf6, 0x2b, 0x59, 0x7b, 0x4d, 0x59, 0x4a, 0x0a, 0xc3, 0x98, 0x88, 0x23, 0x0e, 0x6a, 0x3f, 0x55, - 0xaf, 0xa2, 0x74, 0x1f, 0x11, 0x70, 0x5f, 0x87, 0x80, 0x0d, 0x4a, 0x97, 0x65, 0x70, 0x9c, 0x5e, - 0x80, 0x7e, 0xf4, 0x8c, 0x8b, 0x2c, 0xa7, 0x6e, 0x5b, 0xe9, 0x23, 0x44, 0xc8, 0xbd, 0x21, 0x5e, - 0x44, 0x8d, 0x9a, 0x2c, 0xc2, 0xc7, 0xe9, 0xe7, 0xe0, 0x88, 0xdd, 0x72, 0xeb, 0xb6, 0xe5, 0xa4, - 0x53, 0xd3, 0xca, 0xcc, 0xc0, 0xc2, 0xf1, 0xd0, 0x40, 0x58, 0xa3, 0x3c, 0x06, 0x67, 0xd6, 0x97, - 0x41, 0x73, 0xec, 0xbd, 0x76, 0x15, 0x55, 0xaa, 0x76, 0x0d, 0x55, 0xea, 0xd6, 0xb6, 0x9d, 0xee, - 0x27, 0x02, 0xa6, 0x3a, 0x27, 0x42, 0x18, 0x0b, 0x76, 0x0d, 0x2d, 0x5b, 0xdb, 0xb6, 0x31, 0xec, - 0x08, 0xdf, 0xf5, 0x71, 0xe8, 0x73, 0xf6, 0x2d, 0xd7, 0x7c, 0x26, 0x3d, 0x48, 0x22, 0x84, 0x7d, - 0xcb, 0xfc, 0xa8, 0x17, 0x46, 0xe2, 0x84, 0xd8, 0x25, 0xe8, 0xdd, 0xc6, 0xb3, 0x4c, 0x27, 0x0e, - 0x63, 0x03, 0x8a, 0x11, 0x8d, 0xd8, 0xf7, 0x26, 0x8d, 0x98, 0x83, 0x01, 0x0b, 0x39, 0x2e, 0xaa, - 0xd1, 0x88, 0x50, 0x63, 0xc6, 0x14, 0x50, 0x50, 0x67, 0x48, 0x25, 0xdf, 0x54, 0x48, 0x3d, 0x0e, - 0x23, 0x9e, 0x4a, 0x95, 0xb6, 0x69, 0xed, 0xf0, 0xd8, 0x3c, 0x1d, 0xa5, 0xc9, 0x5c, 0x89, 0xe3, - 0x0c, 0x0c, 0x33, 0x86, 0x91, 0xf0, 0x5d, 0x2f, 0x02, 0xd8, 0x16, 0xb2, 0xb7, 0x2b, 0x35, 0x54, - 0x6d, 0xa4, 0x53, 0x5d, 0xac, 0xb4, 0x86, 0x59, 0x3a, 0xac, 0x64, 0xd3, 0xd1, 0x6a, 0x43, 0xbf, - 0xe8, 0x87, 0xda, 0x91, 0x2e, 0x91, 0xb2, 0x4a, 0x93, 0xac, 0x23, 0xda, 0xb6, 0x60, 0xb8, 0x8d, - 0x70, 0xdc, 0xa3, 0x1a, 0x9b, 0x59, 0x3f, 0x51, 0x62, 0x2e, 0x72, 0x66, 0x06, 0x83, 0xd1, 0x89, - 0x0d, 0xb5, 0x83, 0x5f, 0xf5, 0x7b, 0xc0, 0x1b, 0xa8, 0x90, 0xb0, 0x02, 0x52, 0x85, 0x06, 0xf9, - 0x60, 0xd9, 0x6c, 0xa2, 0x89, 0x0b, 0x30, 0x2c, 0x9a, 0x47, 0x3f, 0x0a, 0xbd, 0x8e, 0x6b, 0xb6, - 0x5d, 0x12, 0x85, 0xbd, 0x06, 0xfd, 0xa2, 0x6b, 0xa0, 0x22, 0xab, 0x46, 0xaa, 0x5c, 0xaf, 0x81, - 0x3f, 0x4e, 0x9c, 0x87, 0x21, 0xe1, 0xf1, 0x71, 0x81, 0x99, 0x8f, 0xf6, 0xc1, 0xd1, 0xb0, 0x98, - 0x0b, 0x0d, 0xff, 0x71, 0xe8, 0xb3, 0xf6, 0x9a, 0xd7, 0x51, 0x3b, 0xad, 0x12, 0x09, 0xec, 0x9b, - 0x9e, 0x83, 0xde, 0x86, 0x79, 0x1d, 0x35, 0xd2, 0xc9, 0x69, 0x65, 0x66, 0x78, 0xe1, 0x1d, 0xb1, - 0xa2, 0x7a, 0x6e, 0x05, 0x43, 0x0c, 0x8a, 0xd4, 0x1f, 0x86, 0x24, 0x2b, 0x71, 0x58, 0xc2, 0x6c, - 0x3c, 0x09, 0x38, 0x16, 0x0d, 0x82, 0xd3, 0xef, 0x82, 0x7e, 0xfc, 0x3f, 0xb5, 0x6d, 0x1f, 0xd1, - 0x39, 0x85, 0x07, 0xb0, 0x5d, 0xf5, 0x09, 0x48, 0x91, 0x30, 0xab, 0x21, 0xbe, 0x34, 0x78, 0xdf, - 0xb1, 0x63, 0x6a, 0x68, 0xdb, 0xdc, 0x6b, 0xb8, 0x95, 0xa7, 0xcc, 0xc6, 0x1e, 0x22, 0x01, 0xd3, - 0x6f, 0x0c, 0xb2, 0xc1, 0xf7, 0xe0, 0x31, 0x7d, 0x0a, 0x06, 0x68, 0x54, 0xd6, 0xad, 0x1a, 0x7a, - 0x86, 0x54, 0x9f, 0x5e, 0x83, 0x06, 0xea, 0x32, 0x1e, 0xc1, 0x8f, 0x7f, 0xc2, 0xb1, 0x2d, 0xee, - 0x5a, 0xf2, 0x08, 0x3c, 0x40, 0x1e, 0x7f, 0x5e, 0x2e, 0x7c, 0x77, 0x87, 0x4f, 0x4f, 0x8e, 0xc5, - 0xcc, 0x57, 0x13, 0x90, 0x24, 0xf9, 0x36, 0x02, 0x03, 0x9b, 0xd7, 0xd6, 0x4b, 0x95, 0xe2, 0xda, - 0x56, 0x7e, 0xa5, 0xa4, 0x29, 0xfa, 0x30, 0x00, 0x19, 0xb8, 0xbc, 0xb2, 0x96, 0xdb, 0xd4, 0x12, - 0xde, 0xf7, 0xe5, 0xf2, 0xe6, 0xb9, 0x45, 0x4d, 0xf5, 0x00, 0x5b, 0x74, 0x20, 0x19, 0x64, 0x38, - 0xbb, 0xa0, 0xf5, 0xea, 0x1a, 0x0c, 0x52, 0x01, 0xcb, 0x8f, 0x97, 0x8a, 0xe7, 0x16, 0xb5, 0x3e, - 0x71, 0xe4, 0xec, 0x82, 0x76, 0x44, 0x1f, 0x82, 0x7e, 0x32, 0x92, 0x5f, 0x5b, 0x5b, 0xd1, 0x52, - 0x9e, 0xcc, 0x8d, 0x4d, 0x63, 0xb9, 0x7c, 0x45, 0xeb, 0xf7, 0x64, 0x5e, 0x31, 0xd6, 0xb6, 0xd6, - 0x35, 0xf0, 0x24, 0xac, 0x96, 0x36, 0x36, 0x72, 0x57, 0x4a, 0xda, 0x80, 0xc7, 0x91, 0xbf, 0xb6, - 0x59, 0xda, 0xd0, 0x06, 0x05, 0xb5, 0xce, 0x2e, 0x68, 0x43, 0xde, 0x23, 0x4a, 0xe5, 0xad, 0x55, - 0x6d, 0x58, 0x1f, 0x85, 0x21, 0xfa, 0x08, 0xae, 0xc4, 0x88, 0x34, 0x74, 0x6e, 0x51, 0xd3, 0x7c, - 0x45, 0xa8, 0x94, 0x51, 0x61, 0xe0, 0xdc, 0xa2, 0xa6, 0x67, 0x0a, 0xd0, 0x4b, 0xa2, 0x4b, 0xd7, - 0x61, 0x78, 0x25, 0x97, 0x2f, 0xad, 0x54, 0xd6, 0xd6, 0x37, 0x97, 0xd7, 0xca, 0xb9, 0x15, 0x4d, - 0xf1, 0xc7, 0x8c, 0xd2, 0xbb, 0xb7, 0x96, 0x8d, 0x52, 0x51, 0x4b, 0x04, 0xc7, 0xd6, 0x4b, 0xb9, - 0xcd, 0x52, 0x51, 0x53, 0x33, 0x55, 0x38, 0x1a, 0x56, 0x67, 0x42, 0x33, 0x23, 0xe0, 0xe2, 0x44, - 0x17, 0x17, 0x13, 0x59, 0x1d, 0x2e, 0xfe, 0x8c, 0x02, 0x63, 0x21, 0xb5, 0x36, 0xf4, 0x21, 0x8f, - 0x40, 0x2f, 0x0d, 0x51, 0xba, 0xfa, 0xdc, 0x1f, 0x5a, 0xb4, 0x49, 0xc0, 0x76, 0xac, 0x40, 0x04, - 0x17, 0x5c, 0x81, 0xd5, 0x2e, 0x2b, 0x30, 0x16, 0xd1, 0xa1, 0xe4, 0x07, 0x14, 0x48, 0x77, 0x93, - 0x1d, 0x51, 0x28, 0x12, 0x42, 0xa1, 0xb8, 0x24, 0x2b, 0x70, 0xa2, 0xfb, 0x1c, 0x3a, 0xb4, 0xf8, - 0x9c, 0x02, 0xe3, 0xe1, 0x8d, 0x4a, 0xa8, 0x0e, 0x0f, 0x43, 0x5f, 0x13, 0xb9, 0xbb, 0x36, 0x5f, - 0xac, 0x4f, 0x85, 0x2c, 0x01, 0x98, 0x2c, 0xdb, 0x8a, 0xa1, 0x82, 0x6b, 0x88, 0xda, 0xad, 0xdb, - 0xa0, 0xda, 0x74, 0x68, 0xfa, 0xe1, 0x04, 0xdc, 0x11, 0x2a, 0x3c, 0x54, 0xd1, 0xbb, 0x01, 0xea, - 0x56, 0x6b, 0xcf, 0xa5, 0x0b, 0x32, 0xad, 0x4f, 0xfd, 0x64, 0x84, 0xe4, 0x3e, 0xae, 0x3d, 0x7b, - 0xae, 0x47, 0x57, 0x09, 0x1d, 0xe8, 0x10, 0x61, 0xb8, 0xe0, 0x2b, 0x9a, 0x24, 0x8a, 0x4e, 0x76, - 0x99, 0x69, 0xc7, 0x5a, 0x37, 0x0f, 0x5a, 0xb5, 0x51, 0x47, 0x96, 0x5b, 0x71, 0xdc, 0x36, 0x32, - 0x9b, 0x75, 0x6b, 0x87, 0x14, 0xe0, 0x54, 0xb6, 0x77, 0xdb, 0x6c, 0x38, 0xc8, 0x18, 0xa1, 0xe4, - 0x0d, 0x4e, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x03, 0x88, 0x3e, 0x01, 0x41, 0xc9, 0x1e, 0x22, 0xf3, - 0xc5, 0x23, 0x30, 0x10, 0x68, 0xeb, 0xf4, 0x13, 0x30, 0xf8, 0x84, 0xf9, 0x94, 0x59, 0xe1, 0xad, - 0x3a, 0xb5, 0xc4, 0x00, 0x1e, 0x5b, 0x67, 0xed, 0xfa, 0x3c, 0x1c, 0x25, 0x2c, 0xf6, 0x9e, 0x8b, - 0xda, 0x95, 0x6a, 0xc3, 0x74, 0x1c, 0x62, 0xb4, 0x14, 0x61, 0xd5, 0x31, 0x6d, 0x0d, 0x93, 0x0a, - 0x9c, 0xa2, 0x2f, 0xc1, 0x18, 0x41, 0x34, 0xf7, 0x1a, 0x6e, 0xbd, 0xd5, 0x40, 0x15, 0xfc, 0xf2, - 0xe0, 0x90, 0x42, 0xec, 0x69, 0x36, 0x8a, 0x39, 0x56, 0x19, 0x03, 0xd6, 0xc8, 0xd1, 0x8b, 0x70, - 0x37, 0x81, 0xed, 0x20, 0x0b, 0xb5, 0x4d, 0x17, 0x55, 0xd0, 0xfb, 0xf6, 0xcc, 0x86, 0x53, 0x31, - 0xad, 0x5a, 0x65, 0xd7, 0x74, 0x76, 0xd3, 0x47, 0xb1, 0x80, 0x7c, 0x22, 0xad, 0x18, 0x77, 0x62, - 0xc6, 0x2b, 0x8c, 0xaf, 0x44, 0xd8, 0x72, 0x56, 0xed, 0x51, 0xd3, 0xd9, 0xd5, 0xb3, 0x30, 0x4e, - 0xa4, 0x38, 0x6e, 0xbb, 0x6e, 0xed, 0x54, 0xaa, 0xbb, 0xa8, 0xfa, 0x64, 0x65, 0xcf, 0xdd, 0xbe, - 0x90, 0xbe, 0x2b, 0xf8, 0x7c, 0xa2, 0xe1, 0x06, 0xe1, 0x29, 0x60, 0x96, 0x2d, 0x77, 0xfb, 0x82, - 0xbe, 0x01, 0x83, 0xd8, 0x19, 0xcd, 0xfa, 0xb3, 0xa8, 0xb2, 0x6d, 0xb7, 0xc9, 0xca, 0x32, 0x1c, - 0x92, 0xd9, 0x01, 0x0b, 0xce, 0xad, 0x31, 0xc0, 0xaa, 0x5d, 0x43, 0xd9, 0xde, 0x8d, 0xf5, 0x52, - 0xa9, 0x68, 0x0c, 0x70, 0x29, 0x97, 0xed, 0x36, 0x0e, 0xa8, 0x1d, 0xdb, 0x33, 0xf0, 0x00, 0x0d, - 0xa8, 0x1d, 0x9b, 0x9b, 0x77, 0x09, 0xc6, 0xaa, 0x55, 0x3a, 0xe7, 0x7a, 0xb5, 0xc2, 0x5a, 0x7c, - 0x27, 0xad, 0x09, 0xc6, 0xaa, 0x56, 0xaf, 0x50, 0x06, 0x16, 0xe3, 0x8e, 0x7e, 0x11, 0xee, 0xf0, - 0x8d, 0x15, 0x04, 0x8e, 0x76, 0xcc, 0x52, 0x86, 0x2e, 0xc1, 0x58, 0x6b, 0xbf, 0x13, 0xa8, 0x0b, - 0x4f, 0x6c, 0xed, 0xcb, 0xb0, 0x7b, 0xc9, 0x6b, 0x5b, 0x1b, 0x55, 0x4d, 0x17, 0xd5, 0xd2, 0xc7, - 0x82, 0xdc, 0x01, 0x82, 0x7e, 0x1a, 0xb4, 0x6a, 0xb5, 0x82, 0x2c, 0xf3, 0x7a, 0x03, 0x55, 0xcc, - 0x36, 0xb2, 0x4c, 0x27, 0x3d, 0x15, 0x64, 0x1e, 0xae, 0x56, 0x4b, 0x84, 0x9a, 0x23, 0x44, 0x7d, - 0x16, 0x46, 0xed, 0xeb, 0x4f, 0x54, 0x69, 0x64, 0x55, 0x5a, 0x6d, 0xb4, 0x5d, 0x7f, 0x26, 0x7d, - 0x92, 0x98, 0x69, 0x04, 0x13, 0x48, 0x5c, 0xad, 0x93, 0x61, 0xfd, 0x7e, 0xd0, 0xaa, 0xce, 0xae, - 0xd9, 0x6e, 0x91, 0xa5, 0xdd, 0x69, 0x99, 0x55, 0x94, 0xbe, 0x97, 0xb2, 0xd2, 0xf1, 0x32, 0x1f, - 0xc6, 0x91, 0xed, 0x3c, 0x5d, 0xdf, 0x76, 0xb9, 0xc4, 0xfb, 0x68, 0x64, 0x93, 0x31, 0x26, 0xed, - 0x71, 0x38, 0xba, 0x67, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d, 0x84, 0x9b, 0x78, 0x9a, 0x89, 0xe9, - 0x7f, 0x3f, 0xd2, 0xa5, 0x0d, 0xdf, 0x0a, 0x72, 0xd3, 0x00, 0x30, 0xc6, 0xf6, 0x3a, 0x07, 0x33, - 0x59, 0x18, 0x0c, 0xc6, 0x85, 0xde, 0x0f, 0x34, 0x32, 0x34, 0x05, 0xaf, 0xb1, 0x85, 0xb5, 0x22, - 0x5e, 0x1d, 0xdf, 0x5b, 0xd2, 0x12, 0x78, 0x95, 0x5e, 0x59, 0xde, 0x2c, 0x55, 0x8c, 0xad, 0xf2, - 0xe6, 0xf2, 0x6a, 0x49, 0x53, 0x67, 0xfb, 0x53, 0xdf, 0x3b, 0xa2, 0x3d, 0xf7, 0xdc, 0x73, 0xcf, - 0x25, 0x32, 0xdf, 0x4c, 0xc0, 0xb0, 0xd8, 0x19, 0xeb, 0xef, 0x84, 0x63, 0xfc, 0x35, 0xd6, 0x41, - 0x6e, 0xe5, 0xe9, 0x7a, 0x9b, 0x84, 0x6a, 0xd3, 0xa4, 0xbd, 0xa5, 0x67, 0xe5, 0xa3, 0x8c, 0x6b, - 0x03, 0xb9, 0x8f, 0xd5, 0xdb, 0x38, 0x10, 0x9b, 0xa6, 0xab, 0xaf, 0xc0, 0x94, 0x65, 0x57, 0x1c, - 0xd7, 0xb4, 0x6a, 0x66, 0xbb, 0x56, 0xf1, 0x37, 0x10, 0x2a, 0x66, 0xb5, 0x8a, 0x1c, 0xc7, 0xa6, - 0x4b, 0x84, 0x27, 0xe5, 0xb8, 0x65, 0x6f, 0x30, 0x66, 0xbf, 0x76, 0xe6, 0x18, 0xab, 0x14, 0x11, - 0x6a, 0xb7, 0x88, 0xb8, 0x0b, 0xfa, 0x9b, 0x66, 0xab, 0x82, 0x2c, 0xb7, 0xbd, 0x4f, 0xfa, 0xb9, - 0x94, 0x91, 0x6a, 0x9a, 0xad, 0x12, 0xfe, 0xfe, 0xf6, 0xf9, 0x20, 0x68, 0xc7, 0x7f, 0x53, 0x61, - 0x30, 0xd8, 0xd3, 0xe1, 0x16, 0xb9, 0x4a, 0xea, 0xb7, 0x42, 0x32, 0xfc, 0x9e, 0x03, 0x3b, 0xc0, - 0xb9, 0x02, 0x2e, 0xec, 0xd9, 0x3e, 0xda, 0x69, 0x19, 0x14, 0x89, 0x17, 0x55, 0x9c, 0xd3, 0x88, - 0xf6, 0xef, 0x29, 0x83, 0x7d, 0xd3, 0xaf, 0x40, 0xdf, 0x13, 0x0e, 0x91, 0xdd, 0x47, 0x64, 0x9f, - 0x3c, 0x58, 0xf6, 0xd5, 0x0d, 0x22, 0xbc, 0xff, 0xea, 0x46, 0xa5, 0xbc, 0x66, 0xac, 0xe6, 0x56, - 0x0c, 0x06, 0xd7, 0xef, 0x84, 0x64, 0xc3, 0x7c, 0x76, 0x5f, 0x5c, 0x02, 0xc8, 0x50, 0x5c, 0xc3, - 0xdf, 0x09, 0xc9, 0xa7, 0x91, 0xf9, 0xa4, 0x58, 0x78, 0xc9, 0xd0, 0xdb, 0x18, 0xfa, 0xa7, 0xa1, - 0x97, 0xd8, 0x4b, 0x07, 0x60, 0x16, 0xd3, 0x7a, 0xf4, 0x14, 0x24, 0x0b, 0x6b, 0x06, 0x0e, 0x7f, - 0x0d, 0x06, 0xe9, 0x68, 0x65, 0x7d, 0xb9, 0x54, 0x28, 0x69, 0x89, 0xcc, 0x12, 0xf4, 0x51, 0x23, - 0xe0, 0xd4, 0xf0, 0xcc, 0xa0, 0xf5, 0xb0, 0xaf, 0x4c, 0x86, 0xc2, 0xa9, 0x5b, 0xab, 0xf9, 0x92, - 0xa1, 0x25, 0x82, 0xee, 0x75, 0x60, 0x30, 0xd8, 0xce, 0xfd, 0x74, 0x62, 0xea, 0xeb, 0x0a, 0x0c, - 0x04, 0xda, 0x33, 0xdc, 0x18, 0x98, 0x8d, 0x86, 0xfd, 0x74, 0xc5, 0x6c, 0xd4, 0x4d, 0x87, 0x05, - 0x05, 0x90, 0xa1, 0x1c, 0x1e, 0x89, 0xeb, 0xb4, 0x9f, 0x8a, 0xf2, 0xcf, 0x2b, 0xa0, 0xc9, 0xad, - 0x9d, 0xa4, 0xa0, 0xf2, 0x33, 0x55, 0xf0, 0x13, 0x0a, 0x0c, 0x8b, 0xfd, 0x9c, 0xa4, 0xde, 0x89, - 0x9f, 0xa9, 0x7a, 0xdf, 0x49, 0xc0, 0x90, 0xd0, 0xc5, 0xc5, 0xd5, 0xee, 0x7d, 0x30, 0x5a, 0xaf, - 0xa1, 0x66, 0xcb, 0x76, 0x91, 0x55, 0xdd, 0xaf, 0x34, 0xd0, 0x53, 0xa8, 0x91, 0xce, 0x90, 0x42, - 0x71, 0xfa, 0xe0, 0x3e, 0x71, 0x6e, 0xd9, 0xc7, 0xad, 0x60, 0x58, 0x76, 0x6c, 0xb9, 0x58, 0x5a, - 0x5d, 0x5f, 0xdb, 0x2c, 0x95, 0x0b, 0xd7, 0x2a, 0x5b, 0xe5, 0x77, 0x95, 0xd7, 0x1e, 0x2b, 0x1b, - 0x5a, 0x5d, 0x62, 0x7b, 0x1b, 0x53, 0x7d, 0x1d, 0x34, 0x59, 0x29, 0xfd, 0x18, 0x84, 0xa9, 0xa5, - 0xf5, 0xe8, 0x63, 0x30, 0x52, 0x5e, 0xab, 0x6c, 0x2c, 0x17, 0x4b, 0x95, 0xd2, 0xe5, 0xcb, 0xa5, - 0xc2, 0xe6, 0x06, 0x7d, 0x71, 0xf6, 0xb8, 0x37, 0xc5, 0xa4, 0xfe, 0xb8, 0x0a, 0x63, 0x21, 0x9a, - 0xe8, 0x39, 0xd6, 0xb3, 0xd3, 0xd7, 0x88, 0x07, 0xe3, 0x68, 0x3f, 0x87, 0xbb, 0x82, 0x75, 0xb3, - 0xed, 0xb2, 0x16, 0xff, 0x7e, 0xc0, 0x56, 0xb2, 0xdc, 0xfa, 0x76, 0x1d, 0xb5, 0xd9, 0x3e, 0x03, - 0x6d, 0xe4, 0x47, 0xfc, 0x71, 0xba, 0xd5, 0xf0, 0x00, 0xe8, 0x2d, 0xdb, 0xa9, 0xbb, 0xf5, 0xa7, - 0x50, 0xa5, 0x6e, 0xf1, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, 0x53, 0x96, 0x2d, 0xd7, 0xe3, - 0xb6, 0xd0, 0x8e, 0x29, 0x71, 0xe3, 0x02, 0xae, 0x1a, 0x1a, 0xa7, 0x78, 0xdc, 0x27, 0x60, 0xb0, - 0x66, 0xef, 0xe1, 0x36, 0x89, 0xf2, 0xe1, 0xf5, 0x42, 0x31, 0x06, 0xe8, 0x98, 0xc7, 0xc2, 0xfa, - 0x58, 0x7f, 0x37, 0x64, 0xd0, 0x18, 0xa0, 0x63, 0x94, 0xe5, 0x3e, 0x18, 0x31, 0x77, 0x76, 0xda, - 0x58, 0x38, 0x17, 0x44, 0x3b, 0xf3, 0x61, 0x6f, 0x98, 0x30, 0x4e, 0x5c, 0x85, 0x14, 0xb7, 0x03, - 0x5e, 0x92, 0xb1, 0x25, 0x2a, 0x2d, 0xba, 0x27, 0x95, 0x98, 0xe9, 0x37, 0x52, 0x16, 0x27, 0x9e, - 0x80, 0xc1, 0xba, 0x53, 0xf1, 0x37, 0x47, 0x13, 0xd3, 0x89, 0x99, 0x94, 0x31, 0x50, 0x77, 0xbc, - 0xdd, 0xb0, 0xcc, 0xe7, 0x12, 0x30, 0x2c, 0x6e, 0xee, 0xea, 0x45, 0x48, 0x35, 0xec, 0xaa, 0x49, - 0x42, 0x8b, 0x9e, 0x2c, 0xcc, 0x44, 0xec, 0x07, 0xcf, 0xad, 0x30, 0x7e, 0xc3, 0x43, 0x4e, 0xfc, - 0xb3, 0x02, 0x29, 0x3e, 0xac, 0x8f, 0x43, 0xb2, 0x65, 0xba, 0xbb, 0x44, 0x5c, 0x6f, 0x3e, 0xa1, - 0x29, 0x06, 0xf9, 0x8e, 0xc7, 0x9d, 0x96, 0x69, 0x91, 0x10, 0x60, 0xe3, 0xf8, 0x3b, 0xf6, 0x6b, - 0x03, 0x99, 0x35, 0xd2, 0xf6, 0xdb, 0xcd, 0x26, 0xb2, 0x5c, 0x87, 0xfb, 0x95, 0x8d, 0x17, 0xd8, - 0xb0, 0xfe, 0x0e, 0x18, 0x75, 0xdb, 0x66, 0xbd, 0x21, 0xf0, 0x26, 0x09, 0xaf, 0xc6, 0x09, 0x1e, - 0x73, 0x16, 0xee, 0xe4, 0x72, 0x6b, 0xc8, 0x35, 0xab, 0xbb, 0xa8, 0xe6, 0x83, 0xfa, 0xc8, 0xce, - 0xe1, 0x31, 0xc6, 0x50, 0x64, 0x74, 0x8e, 0xcd, 0x7c, 0x4b, 0x81, 0x51, 0xfe, 0xa2, 0x52, 0xf3, - 0x8c, 0xb5, 0x0a, 0x60, 0x5a, 0x96, 0xed, 0x06, 0xcd, 0xd5, 0x19, 0xca, 0x1d, 0xb8, 0xb9, 0x9c, - 0x07, 0x32, 0x02, 0x02, 0x26, 0x9a, 0x00, 0x3e, 0xa5, 0xab, 0xd9, 0xa6, 0x60, 0x80, 0xed, 0xdc, - 0x93, 0xe3, 0x1f, 0xfa, 0x6a, 0x0b, 0x74, 0x08, 0xbf, 0xd1, 0xe8, 0x47, 0xa1, 0xf7, 0x3a, 0xda, - 0xa9, 0x5b, 0x6c, 0x3f, 0x91, 0x7e, 0xe1, 0xbb, 0x94, 0x49, 0x6f, 0x97, 0x32, 0xff, 0x38, 0x8c, - 0x55, 0xed, 0xa6, 0xac, 0x6e, 0x5e, 0x93, 0x5e, 0xaf, 0x9d, 0x47, 0x95, 0xf7, 0x82, 0xdf, 0x62, - 0x7e, 0x26, 0xa1, 0x5e, 0x59, 0xcf, 0x7f, 0x21, 0x31, 0x71, 0x85, 0xe2, 0xd6, 0xf9, 0x34, 0x0d, - 0xb4, 0xdd, 0x40, 0x55, 0xac, 0x3a, 0xfc, 0xf0, 0x14, 0x3c, 0xb8, 0x53, 0x77, 0x77, 0xf7, 0xae, - 0xcf, 0x55, 0xed, 0xe6, 0xe9, 0x1d, 0x7b, 0xc7, 0xf6, 0x8f, 0xbb, 0xf0, 0x37, 0xf2, 0x85, 0x7c, - 0x62, 0x47, 0x5e, 0xfd, 0xde, 0xe8, 0x44, 0xe4, 0xf9, 0x58, 0xb6, 0x0c, 0x63, 0x8c, 0xb9, 0x42, - 0xf6, 0xdc, 0xe9, 0xab, 0x81, 0x7e, 0xe0, 0xbe, 0x4b, 0xfa, 0xcb, 0xdf, 0x25, 0x6b, 0xb5, 0x31, - 0xca, 0xa0, 0x98, 0x46, 0x5f, 0x20, 0xb2, 0x06, 0xdc, 0x21, 0xc8, 0xa3, 0x79, 0x89, 0xda, 0x11, - 0x12, 0xbf, 0xc9, 0x24, 0x8e, 0x05, 0x24, 0x6e, 0x30, 0x68, 0xb6, 0x00, 0x43, 0x87, 0x91, 0xf5, - 0xf7, 0x4c, 0xd6, 0x20, 0x0a, 0x0a, 0xb9, 0x02, 0x23, 0x44, 0x48, 0x75, 0xcf, 0x71, 0xed, 0x26, - 0x29, 0x7a, 0x07, 0x8b, 0xf9, 0x87, 0xef, 0xd2, 0x44, 0x19, 0xc6, 0xb0, 0x82, 0x87, 0xca, 0x66, - 0x81, 0x1c, 0x33, 0xd4, 0x50, 0xb5, 0x11, 0x21, 0xe1, 0x06, 0x53, 0xc4, 0xe3, 0xcf, 0xbe, 0x07, - 0x8e, 0xe2, 0xcf, 0xa4, 0x26, 0x05, 0x35, 0x89, 0xde, 0x65, 0x4a, 0x7f, 0xeb, 0x03, 0x34, 0x17, - 0xc7, 0x3c, 0x01, 0x01, 0x9d, 0x02, 0x5e, 0xdc, 0x41, 0xae, 0x8b, 0xda, 0x4e, 0xc5, 0x6c, 0x84, - 0xa9, 0x17, 0x78, 0x4d, 0x4f, 0x7f, 0xec, 0x35, 0xd1, 0x8b, 0x57, 0x28, 0x32, 0xd7, 0x68, 0x64, - 0xb7, 0xe0, 0x58, 0x48, 0x54, 0xc4, 0x90, 0xf9, 0x71, 0x26, 0xf3, 0x68, 0x47, 0x64, 0x60, 0xb1, - 0xeb, 0xc0, 0xc7, 0x3d, 0x5f, 0xc6, 0x90, 0xf9, 0x47, 0x4c, 0xa6, 0xce, 0xb0, 0xdc, 0xa5, 0x58, - 0xe2, 0x55, 0x18, 0x7d, 0x0a, 0xb5, 0xaf, 0xdb, 0x0e, 0xdb, 0x1a, 0x89, 0x21, 0xee, 0x13, 0x4c, - 0xdc, 0x08, 0x03, 0x92, 0xbd, 0x12, 0x2c, 0xeb, 0x22, 0xa4, 0xb6, 0xcd, 0x2a, 0x8a, 0x21, 0xe2, - 0x93, 0x4c, 0xc4, 0x11, 0xcc, 0x8f, 0xa1, 0x39, 0x18, 0xdc, 0xb1, 0xd9, 0xb2, 0x14, 0x0d, 0x7f, - 0x9e, 0xc1, 0x07, 0x38, 0x86, 0x89, 0x68, 0xd9, 0xad, 0xbd, 0x06, 0x5e, 0xb3, 0xa2, 0x45, 0x7c, - 0x8a, 0x8b, 0xe0, 0x18, 0x26, 0xe2, 0x10, 0x66, 0x7d, 0x81, 0x8b, 0x70, 0x02, 0xf6, 0x7c, 0x04, - 0x06, 0x6c, 0xab, 0xb1, 0x6f, 0x5b, 0x71, 0x94, 0xf8, 0x34, 0x93, 0x00, 0x0c, 0x82, 0x05, 0x5c, - 0x82, 0xfe, 0xb8, 0x8e, 0xf8, 0xec, 0x6b, 0x3c, 0x3d, 0xb8, 0x07, 0xae, 0xc0, 0x08, 0x2f, 0x50, - 0x75, 0xdb, 0x8a, 0x21, 0xe2, 0x4f, 0x98, 0x88, 0xe1, 0x00, 0x8c, 0x4d, 0xc3, 0x45, 0x8e, 0xbb, - 0x83, 0xe2, 0x08, 0xf9, 0x1c, 0x9f, 0x06, 0x83, 0x30, 0x53, 0x5e, 0x47, 0x56, 0x75, 0x37, 0x9e, - 0x84, 0x17, 0xb9, 0x29, 0x39, 0x06, 0x8b, 0x28, 0xc0, 0x50, 0xd3, 0x6c, 0x3b, 0xbb, 0x66, 0x23, - 0x96, 0x3b, 0x3e, 0xcf, 0x64, 0x0c, 0x7a, 0x20, 0x66, 0x91, 0x3d, 0xeb, 0x30, 0x62, 0xbe, 0xc0, - 0x2d, 0x12, 0x80, 0xb1, 0xd4, 0x73, 0x5c, 0xb2, 0x01, 0x75, 0x18, 0x69, 0x5f, 0xe4, 0xa9, 0x47, - 0xb1, 0xab, 0x41, 0x89, 0x97, 0xa0, 0xdf, 0xa9, 0x3f, 0x1b, 0x4b, 0xcc, 0x9f, 0x72, 0x4f, 0x13, - 0x00, 0x06, 0x5f, 0x83, 0x3b, 0x43, 0x97, 0x89, 0x18, 0xc2, 0xfe, 0x8c, 0x09, 0x1b, 0x0f, 0x59, - 0x2a, 0x58, 0x49, 0x38, 0xac, 0xc8, 0x3f, 0xe7, 0x25, 0x01, 0x49, 0xb2, 0xd6, 0xf1, 0x8b, 0x82, - 0x63, 0x6e, 0x1f, 0xce, 0x6a, 0x7f, 0xc1, 0xad, 0x46, 0xb1, 0x82, 0xd5, 0x36, 0x61, 0x9c, 0x49, - 0x3c, 0x9c, 0x5f, 0xbf, 0xc4, 0x0b, 0x2b, 0x45, 0x6f, 0x89, 0xde, 0xfd, 0x05, 0x98, 0xf0, 0xcc, - 0xc9, 0x3b, 0x52, 0xa7, 0xd2, 0x34, 0x5b, 0x31, 0x24, 0x7f, 0x99, 0x49, 0xe6, 0x15, 0xdf, 0x6b, - 0x69, 0x9d, 0x55, 0xb3, 0x85, 0x85, 0x3f, 0x0e, 0x69, 0x2e, 0x7c, 0xcf, 0x6a, 0xa3, 0xaa, 0xbd, - 0x63, 0xd5, 0x9f, 0x45, 0xb5, 0x18, 0xa2, 0xff, 0x52, 0x72, 0xd5, 0x56, 0x00, 0x8e, 0x25, 0x2f, - 0x83, 0xe6, 0xf5, 0x2a, 0x95, 0x7a, 0xb3, 0x65, 0xb7, 0xdd, 0x08, 0x89, 0x7f, 0xc5, 0x3d, 0xe5, - 0xe1, 0x96, 0x09, 0x2c, 0x5b, 0x82, 0x61, 0xf2, 0x35, 0x6e, 0x48, 0x7e, 0x85, 0x09, 0x1a, 0xf2, - 0x51, 0xac, 0x70, 0x54, 0xed, 0x66, 0xcb, 0x6c, 0xc7, 0xa9, 0x7f, 0x7f, 0xcd, 0x0b, 0x07, 0x83, - 0xb0, 0xc2, 0xe1, 0xee, 0xb7, 0x10, 0x5e, 0xed, 0x63, 0x48, 0xf8, 0x2a, 0x2f, 0x1c, 0x1c, 0xc3, - 0x44, 0xf0, 0x86, 0x21, 0x86, 0x88, 0xbf, 0xe1, 0x22, 0x38, 0x06, 0x8b, 0x78, 0xb7, 0xbf, 0xd0, - 0xb6, 0xd1, 0x4e, 0xdd, 0x71, 0xdb, 0xb4, 0x0f, 0x3e, 0x58, 0xd4, 0xd7, 0x5e, 0x13, 0x9b, 0x30, - 0x23, 0x00, 0xcd, 0x5e, 0x85, 0x11, 0xa9, 0xc5, 0xd0, 0xa3, 0xee, 0x2c, 0xa4, 0x7f, 0xf9, 0x75, - 0x56, 0x8c, 0xc4, 0x0e, 0x23, 0xbb, 0x82, 0xfd, 0x2e, 0xf6, 0x01, 0xd1, 0xc2, 0x3e, 0xf0, 0xba, - 0xe7, 0x7a, 0xa1, 0x0d, 0xc8, 0x5e, 0x86, 0x21, 0xa1, 0x07, 0x88, 0x16, 0xf5, 0x2b, 0x4c, 0xd4, - 0x60, 0xb0, 0x05, 0xc8, 0x2e, 0x41, 0x12, 0xaf, 0xe7, 0xd1, 0xf0, 0x5f, 0x65, 0x70, 0xc2, 0x9e, - 0x7d, 0x08, 0x52, 0x7c, 0x1d, 0x8f, 0x86, 0x7e, 0x90, 0x41, 0x3d, 0x08, 0x86, 0xf3, 0x35, 0x3c, - 0x1a, 0xfe, 0x6b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfd, 0x46, 0x92, 0xd5, 0x61, - 0x6e, 0xbb, 0x4b, 0x70, 0x84, 0x2d, 0xde, 0xd1, 0xe8, 0x0f, 0xb3, 0x87, 0x73, 0x44, 0xf6, 0x3c, - 0xf4, 0xc6, 0x34, 0xf8, 0x6f, 0x32, 0x28, 0xe5, 0xcf, 0x16, 0x60, 0x20, 0xb0, 0x60, 0x47, 0xc3, - 0x7f, 0x8b, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xa3, 0x05, 0xfc, 0x36, 0x57, 0x9d, 0x21, - 0xb0, 0xd9, 0xf8, 0x5a, 0x1d, 0x8d, 0xfe, 0x1d, 0x6e, 0x75, 0x0e, 0xc9, 0x3e, 0x02, 0xfd, 0x5e, - 0xfd, 0x8d, 0xc6, 0xff, 0x2e, 0xc3, 0xfb, 0x18, 0x6c, 0x81, 0x40, 0xfd, 0x8f, 0x16, 0xf1, 0x7b, - 0xdc, 0x02, 0x01, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x96, 0xf4, 0x11, 0x9e, 0x46, 0xd2, 0x92, - 0x8e, 0xbd, 0x49, 0xca, 0x60, 0xb4, 0x88, 0xdf, 0xe7, 0xde, 0x24, 0xfc, 0x58, 0x0d, 0x79, 0x91, - 0x8c, 0x96, 0xf1, 0x87, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0xae, 0x83, 0xde, 0xb9, 0x40, 0x46, 0xcb, - 0xfb, 0x28, 0x93, 0x37, 0xda, 0xb1, 0x3e, 0x66, 0x1f, 0x83, 0xf1, 0xf0, 0xc5, 0x31, 0x5a, 0xea, - 0xc7, 0x5e, 0x97, 0x5e, 0x67, 0x82, 0x6b, 0x63, 0x76, 0xd3, 0xaf, 0xb2, 0xc1, 0x85, 0x31, 0x5a, - 0xec, 0xc7, 0x5f, 0x17, 0x0b, 0x6d, 0x70, 0x5d, 0xcc, 0xe6, 0x00, 0xfc, 0x35, 0x29, 0x5a, 0xd6, - 0x27, 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x92, 0xa2, 0xf1, 0x9f, 0xe4, 0xa9, 0xc1, 0x10, - 0x38, 0x35, 0xf8, 0x6a, 0x14, 0x8d, 0x7e, 0x9e, 0xa7, 0x06, 0x87, 0x64, 0x2f, 0x41, 0xca, 0xda, - 0x6b, 0x34, 0x70, 0x6c, 0xe9, 0x07, 0x5f, 0x23, 0x4a, 0xff, 0xc7, 0x1b, 0x0c, 0xcc, 0x01, 0xd9, - 0x25, 0xe8, 0x45, 0xcd, 0xeb, 0xa8, 0x16, 0x85, 0xfc, 0xcf, 0x37, 0x78, 0x3d, 0xc1, 0xdc, 0xd9, - 0x47, 0x00, 0xe8, 0xcb, 0x34, 0x39, 0x25, 0x8a, 0xc0, 0xfe, 0xd7, 0x1b, 0xec, 0x86, 0x82, 0x0f, - 0xf1, 0x05, 0xd0, 0xfb, 0x0e, 0x07, 0x0b, 0x78, 0x4d, 0x14, 0x40, 0x5e, 0xc0, 0x2f, 0xc2, 0x91, - 0x27, 0x1c, 0xdb, 0x72, 0xcd, 0x9d, 0x28, 0xf4, 0x7f, 0x33, 0x34, 0xe7, 0xc7, 0x06, 0x6b, 0xda, - 0x6d, 0xe4, 0x9a, 0x3b, 0x4e, 0x14, 0xf6, 0x7f, 0x18, 0xd6, 0x03, 0x60, 0x70, 0xd5, 0x74, 0xdc, - 0x38, 0xf3, 0xfe, 0x5f, 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x24, 0xda, 0x8f, 0xc2, 0x7e, - 0x9f, 0x2b, 0xcd, 0xf8, 0xb3, 0x0f, 0x41, 0x3f, 0xfe, 0x48, 0x6f, 0xed, 0x44, 0x80, 0x7f, 0xc0, - 0xc0, 0x3e, 0x02, 0x3f, 0xd9, 0x71, 0x6b, 0x6e, 0x3d, 0xda, 0xd8, 0xff, 0xc7, 0x3c, 0xcd, 0xf9, - 0xb3, 0x39, 0x18, 0x70, 0xdc, 0x5a, 0x6d, 0x8f, 0x75, 0x34, 0x11, 0xf0, 0x1f, 0xbe, 0xe1, 0xbd, - 0xe4, 0x7a, 0x98, 0xfc, 0x89, 0xf0, 0xcd, 0x3a, 0xb8, 0x62, 0x5f, 0xb1, 0xe9, 0x36, 0x1d, 0xfc, - 0x53, 0x03, 0xa6, 0xab, 0x76, 0xf3, 0xba, 0xed, 0x9c, 0x0e, 0x94, 0xa1, 0xd3, 0xee, 0x2e, 0xc2, - 0x2b, 0x08, 0xdb, 0x68, 0x4b, 0xe2, 0xcf, 0x13, 0x87, 0xdb, 0x9d, 0x23, 0x07, 0xaf, 0xe5, 0x3a, - 0x56, 0xb0, 0x4c, 0xf6, 0xbe, 0xf5, 0xe3, 0xd0, 0x47, 0x54, 0x3e, 0x43, 0xce, 0x97, 0x94, 0x7c, - 0xf2, 0xc6, 0x2b, 0x53, 0x3d, 0x06, 0x1b, 0xf3, 0xa8, 0x0b, 0x64, 0x73, 0x32, 0x21, 0x50, 0x17, - 0x3c, 0xea, 0x59, 0xba, 0x3f, 0x29, 0x50, 0xcf, 0x7a, 0xd4, 0x45, 0xb2, 0x53, 0xa9, 0x0a, 0xd4, - 0x45, 0x8f, 0xba, 0x44, 0x76, 0xe3, 0x87, 0x04, 0xea, 0x92, 0x47, 0x3d, 0x47, 0xf6, 0xe0, 0x93, - 0x02, 0xf5, 0x9c, 0x47, 0x3d, 0x4f, 0xb6, 0xdf, 0x47, 0x05, 0xea, 0x79, 0x8f, 0x7a, 0x81, 0x6c, - 0xbb, 0xeb, 0x02, 0xf5, 0x82, 0x47, 0xbd, 0x48, 0xee, 0x92, 0x1c, 0x11, 0xa8, 0x17, 0xf5, 0x49, - 0x38, 0x42, 0x67, 0x3e, 0x4f, 0xce, 0x68, 0x47, 0x18, 0x99, 0x0f, 0xfa, 0xf4, 0x33, 0xe4, 0xde, - 0x48, 0x9f, 0x48, 0x3f, 0xe3, 0xd3, 0x17, 0xc8, 0x0d, 0x6a, 0x4d, 0xa4, 0x2f, 0xf8, 0xf4, 0xb3, - 0xe9, 0x21, 0x72, 0x77, 0x46, 0xa0, 0x9f, 0xf5, 0xe9, 0x8b, 0xe9, 0x61, 0x1c, 0xb5, 0x22, 0x7d, - 0xd1, 0xa7, 0x2f, 0xa5, 0x47, 0xa6, 0x95, 0x99, 0x41, 0x91, 0xbe, 0x94, 0x79, 0x3f, 0x71, 0xaf, - 0xe5, 0xbb, 0x77, 0x5c, 0x74, 0xaf, 0xe7, 0xd8, 0x71, 0xd1, 0xb1, 0x9e, 0x4b, 0xc7, 0x45, 0x97, - 0x7a, 0xce, 0x1c, 0x17, 0x9d, 0xe9, 0xb9, 0x71, 0x5c, 0x74, 0xa3, 0xe7, 0xc0, 0x71, 0xd1, 0x81, - 0x9e, 0xeb, 0xc6, 0x45, 0xd7, 0x79, 0x4e, 0x1b, 0x17, 0x9d, 0xe6, 0xb9, 0x6b, 0x5c, 0x74, 0x97, - 0xe7, 0xa8, 0xb4, 0xe4, 0x28, 0xdf, 0x45, 0x69, 0xc9, 0x45, 0xbe, 0x73, 0xd2, 0x92, 0x73, 0x7c, - 0xb7, 0xa4, 0x25, 0xb7, 0xf8, 0x0e, 0x49, 0x4b, 0x0e, 0xf1, 0x5d, 0x91, 0x96, 0x5c, 0xe1, 0x3b, - 0x81, 0xe5, 0x98, 0x81, 0x5a, 0x21, 0x39, 0xa6, 0x1e, 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, - 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x98, 0x63, 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x98, 0x63, - 0xea, 0x81, 0x39, 0xa6, 0x1e, 0x9c, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, - 0x98, 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x5d, 0x73, 0xcc, 0x77, 0xef, 0xb8, 0xe8, 0xde, - 0xd0, 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, 0x39, 0xa6, 0x76, 0xc9, 0x31, - 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x92, 0x63, 0x6a, 0xb7, 0x1c, 0x53, 0xbb, 0xe6, - 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, 0xb5, 0x6b, 0x8e, 0xa9, 0xc1, - 0x1c, 0xfb, 0x5b, 0x15, 0x74, 0x9a, 0x63, 0xeb, 0xe4, 0x96, 0x0f, 0x73, 0xc5, 0xa4, 0x94, 0x69, - 0x7d, 0xd8, 0x75, 0x9a, 0xef, 0x92, 0x49, 0x29, 0xd7, 0x44, 0xfa, 0x82, 0x47, 0xe7, 0xd9, 0x26, - 0xd2, 0xcf, 0x7a, 0x74, 0x9e, 0x6f, 0x22, 0x7d, 0xd1, 0xa3, 0xf3, 0x8c, 0x13, 0xe9, 0x4b, 0x1e, - 0x9d, 0xe7, 0x9c, 0x48, 0x3f, 0xe7, 0xd1, 0x79, 0xd6, 0x89, 0xf4, 0xf3, 0x1e, 0x9d, 0xe7, 0x9d, - 0x48, 0xbf, 0xe0, 0xd1, 0x79, 0xe6, 0x89, 0xf4, 0x8b, 0xfa, 0xb4, 0x9c, 0x7b, 0x9c, 0xc1, 0x73, - 0xed, 0xb4, 0x9c, 0x7d, 0x12, 0xc7, 0x19, 0x9f, 0x83, 0xe7, 0x9f, 0xc4, 0xb1, 0xe0, 0x73, 0xf0, - 0x0c, 0x94, 0x38, 0xce, 0x66, 0x3e, 0x44, 0xdc, 0x67, 0xc9, 0xee, 0x9b, 0x90, 0xdc, 0x97, 0x08, - 0xb8, 0x6e, 0x42, 0x72, 0x5d, 0x22, 0xe0, 0xb6, 0x09, 0xc9, 0x6d, 0x89, 0x80, 0xcb, 0x26, 0x24, - 0x97, 0x25, 0x02, 0xee, 0x9a, 0x90, 0xdc, 0x95, 0x08, 0xb8, 0x6a, 0x42, 0x72, 0x55, 0x22, 0xe0, - 0xa6, 0x09, 0xc9, 0x4d, 0x89, 0x80, 0x8b, 0x26, 0x24, 0x17, 0x25, 0x02, 0xee, 0x99, 0x90, 0xdc, - 0x93, 0x08, 0xb8, 0xe6, 0xb8, 0xec, 0x9a, 0x44, 0xd0, 0x2d, 0xc7, 0x65, 0xb7, 0x24, 0x82, 0x2e, - 0x39, 0x2e, 0xbb, 0x24, 0x11, 0x74, 0xc7, 0x71, 0xd9, 0x1d, 0x89, 0xa0, 0x2b, 0x7e, 0x92, 0xe0, - 0x1d, 0xe1, 0x86, 0xdb, 0xde, 0xab, 0xba, 0xb7, 0xd5, 0x11, 0xce, 0x0b, 0xed, 0xc3, 0xc0, 0x82, - 0x3e, 0x47, 0x1a, 0xd6, 0x60, 0xc7, 0x29, 0xad, 0x60, 0xf3, 0x42, 0x63, 0x11, 0x40, 0x58, 0xe1, - 0x88, 0xc5, 0xdb, 0xea, 0x0d, 0xe7, 0x85, 0x36, 0x23, 0x5a, 0xbf, 0x0b, 0x6f, 0x7b, 0xc7, 0xf6, - 0x52, 0x82, 0x77, 0x6c, 0xcc, 0xfc, 0x87, 0xed, 0xd8, 0x66, 0xa3, 0x4d, 0xee, 0x19, 0x7b, 0x36, - 0xda, 0xd8, 0x1d, 0xab, 0x4e, 0xdc, 0x0e, 0x6e, 0x36, 0xda, 0xb4, 0x9e, 0x51, 0xdf, 0xda, 0x7e, - 0x8b, 0x45, 0xb0, 0x81, 0x5a, 0x21, 0x11, 0x7c, 0xd8, 0x7e, 0x6b, 0x5e, 0x28, 0x25, 0x87, 0x8d, - 0x60, 0xf5, 0xd0, 0x11, 0x7c, 0xd8, 0xce, 0x6b, 0x5e, 0x28, 0x2f, 0x87, 0x8e, 0xe0, 0xb7, 0xa1, - 0x1f, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xb0, 0xfd, 0xd0, 0x6c, 0xb4, 0xc9, 0x43, 0x23, 0x58, 0x3d, - 0x44, 0x04, 0xc7, 0xe9, 0x8f, 0x66, 0xa3, 0x4d, 0x1b, 0x1e, 0xc1, 0xb7, 0xdd, 0xcd, 0x7c, 0x4a, - 0x81, 0xd1, 0x72, 0xbd, 0x56, 0x6a, 0x5e, 0x47, 0xb5, 0x1a, 0xaa, 0x31, 0x3b, 0xce, 0x0b, 0x95, - 0xa0, 0x8b, 0xab, 0x5f, 0x7e, 0x65, 0xca, 0xb7, 0xf0, 0x12, 0xa4, 0xa8, 0x4d, 0xe7, 0xe7, 0xd3, - 0x37, 0x94, 0x88, 0x0a, 0xe7, 0xb1, 0xea, 0x27, 0x38, 0xec, 0xcc, 0x7c, 0xfa, 0x5f, 0x94, 0x40, - 0x95, 0xf3, 0x86, 0x33, 0x1f, 0x21, 0x1a, 0x5a, 0xb7, 0xad, 0xe1, 0xe9, 0x58, 0x1a, 0x06, 0x74, - 0xbb, 0xab, 0x43, 0xb7, 0x80, 0x56, 0x7b, 0x30, 0x52, 0xae, 0xd7, 0xca, 0xe4, 0x6f, 0x77, 0xe3, - 0xa8, 0x44, 0x79, 0xa4, 0x7a, 0x30, 0x2f, 0x84, 0x65, 0x10, 0xe1, 0x85, 0xb4, 0x58, 0x23, 0x32, - 0x75, 0xfc, 0x58, 0x4b, 0x78, 0xec, 0x6c, 0xb7, 0xc7, 0xfa, 0x95, 0xdd, 0x7b, 0xe0, 0x6c, 0xb7, - 0x07, 0xfa, 0x39, 0xe4, 0x3d, 0xea, 0x19, 0xbe, 0x38, 0xd3, 0xeb, 0x36, 0xfa, 0x71, 0x48, 0x2c, - 0xd3, 0xab, 0xc0, 0x83, 0xf9, 0x41, 0xac, 0xd4, 0xb7, 0x5f, 0x99, 0x4a, 0x6e, 0xed, 0xd5, 0x6b, - 0x46, 0x62, 0xb9, 0xa6, 0x5f, 0x85, 0xde, 0xf7, 0xb0, 0xbf, 0x80, 0xc3, 0x0c, 0x8b, 0x8c, 0xe1, - 0x81, 0xae, 0x7b, 0x44, 0xf8, 0xc1, 0xa7, 0xe9, 0x46, 0xe2, 0xdc, 0x56, 0xdd, 0x72, 0xcf, 0x2c, - 0x5c, 0x30, 0xa8, 0x88, 0xcc, 0x2f, 0x02, 0xd0, 0x67, 0x16, 0x4d, 0x67, 0x57, 0x2f, 0x73, 0xc9, - 0xf4, 0xd1, 0x17, 0xbe, 0xfd, 0xca, 0xd4, 0x62, 0x1c, 0xa9, 0x0f, 0xd6, 0x4c, 0x67, 0xf7, 0x41, - 0x77, 0xbf, 0x85, 0xe6, 0xf2, 0xfb, 0x2e, 0x72, 0xb8, 0xf4, 0x16, 0x5f, 0xf5, 0xd8, 0xbc, 0xd2, - 0x81, 0x79, 0xa5, 0x84, 0x39, 0x5d, 0x16, 0xe7, 0x34, 0xff, 0x66, 0xe7, 0xf3, 0x0c, 0x5f, 0x24, - 0x24, 0x4b, 0xaa, 0x51, 0x96, 0x54, 0x6f, 0xd7, 0x92, 0x2d, 0x5e, 0x1f, 0xa5, 0xb9, 0xaa, 0x07, - 0xcd, 0x55, 0xbd, 0x9d, 0xb9, 0xfe, 0x88, 0x66, 0xab, 0x97, 0x4f, 0x5b, 0x16, 0xbd, 0x86, 0xf8, - 0xf3, 0xb5, 0x17, 0xf4, 0x96, 0x76, 0x01, 0xd9, 0xe4, 0x8d, 0x17, 0xa6, 0x94, 0xcc, 0xa7, 0x12, - 0x7c, 0xe6, 0x34, 0x91, 0xde, 0xdc, 0xcc, 0x7f, 0x5e, 0x7a, 0xaa, 0xb7, 0xc3, 0x42, 0xcf, 0x2b, - 0x30, 0xde, 0x51, 0xc9, 0xa9, 0x99, 0xde, 0xda, 0x72, 0x6e, 0x1d, 0xb6, 0x9c, 0x33, 0x05, 0xbf, - 0xa2, 0xc0, 0x51, 0xa9, 0xbc, 0x52, 0xf5, 0x4e, 0x4b, 0xea, 0x1d, 0xeb, 0x7c, 0x12, 0x61, 0x0c, - 0x68, 0x17, 0x74, 0xaf, 0x04, 0x08, 0x48, 0xf6, 0xfc, 0xbe, 0x28, 0xf9, 0xfd, 0xb8, 0x07, 0x08, - 0x31, 0x17, 0x8f, 0x00, 0xa6, 0xb6, 0x0d, 0xc9, 0xcd, 0x36, 0x42, 0xfa, 0x24, 0x24, 0xd6, 0xda, - 0x4c, 0xc3, 0x61, 0x8a, 0x5f, 0x6b, 0xe7, 0xdb, 0xa6, 0x55, 0xdd, 0x35, 0x12, 0x6b, 0x6d, 0xfd, - 0x04, 0xa8, 0x39, 0xf6, 0x1b, 0x03, 0x03, 0x0b, 0x23, 0x94, 0x21, 0x67, 0xd5, 0x18, 0x07, 0xa6, - 0xe9, 0x93, 0x90, 0x5c, 0x41, 0xe6, 0x36, 0x53, 0x02, 0x28, 0x0f, 0x1e, 0x31, 0xc8, 0x38, 0x7b, - 0xe0, 0xe3, 0x90, 0xe2, 0x82, 0xf5, 0x93, 0x18, 0xb1, 0xed, 0xb2, 0xc7, 0x32, 0x04, 0x56, 0x87, - 0xad, 0x5c, 0x84, 0xaa, 0x9f, 0x82, 0x5e, 0xa3, 0xbe, 0xb3, 0xeb, 0xb2, 0x87, 0x77, 0xb2, 0x51, - 0x72, 0xe6, 0x1a, 0xf4, 0x7b, 0x1a, 0xbd, 0xc5, 0xa2, 0x8b, 0x74, 0x6a, 0xfa, 0x44, 0x70, 0x3d, - 0xe1, 0xfb, 0x96, 0x74, 0x48, 0x9f, 0x86, 0xd4, 0x86, 0xdb, 0xf6, 0x8b, 0x3e, 0xef, 0x48, 0xbd, - 0xd1, 0xcc, 0xfb, 0x15, 0x48, 0x15, 0x11, 0x6a, 0x11, 0x83, 0xdf, 0x0b, 0xc9, 0xa2, 0xfd, 0xb4, - 0xc5, 0x14, 0x1c, 0x65, 0x16, 0xc5, 0x64, 0x66, 0x53, 0x42, 0xd6, 0xef, 0x0d, 0xda, 0x7d, 0xcc, - 0xb3, 0x7b, 0x80, 0x8f, 0xd8, 0x3e, 0x23, 0xd8, 0x9e, 0x39, 0x10, 0x33, 0x75, 0xd8, 0xff, 0x3c, - 0x0c, 0x04, 0x9e, 0xa2, 0xcf, 0x30, 0x35, 0x12, 0x32, 0x30, 0x68, 0x2b, 0xcc, 0x91, 0x41, 0x30, - 0x24, 0x3c, 0x18, 0x43, 0x03, 0x26, 0xee, 0x02, 0x25, 0x66, 0x9e, 0x15, 0xcd, 0x1c, 0xce, 0xca, - 0x4c, 0x3d, 0x4f, 0x6d, 0x44, 0xcc, 0x7d, 0x92, 0x06, 0x67, 0x77, 0x27, 0xe2, 0xcf, 0x99, 0x5e, - 0x50, 0xcb, 0xf5, 0x46, 0xe6, 0x21, 0x00, 0x9a, 0xf2, 0x25, 0x6b, 0xaf, 0x29, 0x65, 0xdd, 0x30, - 0x37, 0xf0, 0xe6, 0x2e, 0xda, 0x44, 0x0e, 0x61, 0x11, 0xfb, 0x29, 0x5c, 0x60, 0x80, 0xa6, 0x18, - 0xc1, 0xdf, 0x1f, 0x89, 0x0f, 0xed, 0xc4, 0x30, 0x6b, 0x9a, 0xb2, 0x5e, 0x43, 0x6e, 0xce, 0xb2, - 0xdd, 0x5d, 0xd4, 0x96, 0x10, 0x0b, 0xfa, 0x59, 0x21, 0x61, 0x87, 0x17, 0xee, 0xf2, 0x10, 0x5d, - 0x41, 0x67, 0x33, 0x5f, 0x22, 0x0a, 0xe2, 0x56, 0xa0, 0x63, 0x82, 0x6a, 0x8c, 0x09, 0xea, 0xe7, - 0x84, 0xfe, 0xed, 0x00, 0x35, 0xa5, 0x57, 0xcb, 0x8b, 0xc2, 0x7b, 0xce, 0xc1, 0xca, 0x8a, 0xef, - 0x98, 0xdc, 0xa6, 0x5c, 0xe5, 0xfb, 0x23, 0x55, 0xee, 0xd2, 0xdd, 0x1e, 0xd6, 0xa6, 0x6a, 0x5c, - 0x9b, 0x7e, 0xdd, 0xeb, 0x38, 0xe8, 0xaf, 0x35, 0x90, 0x1f, 0x07, 0xd1, 0x1f, 0x88, 0xf4, 0x7d, - 0x56, 0x29, 0x78, 0xaa, 0x2e, 0xc6, 0x75, 0x7f, 0x36, 0x91, 0xcf, 0x7b, 0xea, 0x9e, 0x3f, 0x44, - 0x08, 0x64, 0x13, 0x85, 0x82, 0x57, 0xb6, 0x53, 0x1f, 0x7a, 0x61, 0x4a, 0x79, 0xf1, 0x85, 0xa9, - 0x9e, 0xcc, 0xe7, 0x15, 0x18, 0x65, 0x9c, 0x81, 0xc0, 0x7d, 0x50, 0x52, 0xfe, 0x0e, 0x5e, 0x33, - 0xc2, 0x2c, 0xf0, 0x53, 0x0b, 0xde, 0x6f, 0x2a, 0x90, 0xee, 0xd0, 0x95, 0xdb, 0x7b, 0x3e, 0x96, - 0xca, 0x59, 0xa5, 0xf4, 0xb3, 0xb7, 0xf9, 0x35, 0xe8, 0xdd, 0xac, 0x37, 0x51, 0x1b, 0xaf, 0x04, - 0xf8, 0x03, 0x55, 0x99, 0x1f, 0xe6, 0xd0, 0x21, 0x4e, 0xa3, 0xca, 0x09, 0xb4, 0x05, 0x3d, 0x0d, - 0xc9, 0xa2, 0xe9, 0x9a, 0x44, 0x83, 0x41, 0xaf, 0xbe, 0x9a, 0xae, 0x99, 0x39, 0x0b, 0x83, 0xab, - 0xfb, 0xe4, 0xae, 0x4c, 0x8d, 0xdc, 0x03, 0x11, 0xbb, 0x3f, 0xde, 0xaf, 0x9e, 0x99, 0xed, 0x4d, - 0xd5, 0xb4, 0x1b, 0x4a, 0x36, 0x49, 0xf4, 0x79, 0x0a, 0x86, 0xd7, 0xb0, 0xda, 0x04, 0x27, 0xc0, - 0xe8, 0xd3, 0x55, 0x6f, 0xf2, 0x52, 0x53, 0xa6, 0xfa, 0x4d, 0xd9, 0x34, 0x28, 0xab, 0x62, 0xeb, - 0x14, 0xd4, 0xc3, 0x50, 0x56, 0x67, 0x93, 0xa9, 0x61, 0x6d, 0x74, 0x36, 0x99, 0x02, 0x6d, 0x88, - 0x3d, 0xf7, 0x1f, 0x55, 0xd0, 0x68, 0xab, 0x53, 0x44, 0xdb, 0x75, 0xab, 0xee, 0x76, 0xf6, 0xab, - 0x9e, 0xc6, 0xfa, 0x23, 0xd0, 0x8f, 0x4d, 0x7a, 0x99, 0xfd, 0xc6, 0x16, 0x36, 0xfd, 0x09, 0xd6, - 0xa2, 0x48, 0x22, 0xd8, 0x00, 0x09, 0x1d, 0x1f, 0xa3, 0x5f, 0x06, 0xb5, 0x5c, 0x5e, 0x65, 0x8b, - 0xdb, 0xe2, 0x81, 0x50, 0x76, 0xd5, 0x86, 0x7d, 0x63, 0x63, 0xce, 0x8e, 0x81, 0x05, 0xe8, 0x8b, - 0x90, 0x28, 0xaf, 0xb2, 0x86, 0xf7, 0x64, 0x1c, 0x31, 0x46, 0xa2, 0xbc, 0x3a, 0xf1, 0x77, 0x0a, - 0x0c, 0x09, 0xa3, 0x7a, 0x06, 0x06, 0xe9, 0x40, 0x60, 0xba, 0x7d, 0x86, 0x30, 0xc6, 0x75, 0x4e, - 0xdc, 0xa6, 0xce, 0x13, 0x39, 0x18, 0x91, 0xc6, 0xf5, 0x39, 0xd0, 0x83, 0x43, 0x4c, 0x09, 0xfa, - 0xfb, 0x44, 0x21, 0x94, 0xcc, 0xdd, 0x00, 0xbe, 0x5d, 0xbd, 0x9f, 0xd5, 0x29, 0x97, 0x36, 0x36, - 0x4b, 0x45, 0x4d, 0xc9, 0x7c, 0x55, 0x81, 0x01, 0xd6, 0xb6, 0x56, 0xed, 0x16, 0xd2, 0xf3, 0xa0, - 0xe4, 0x58, 0x3c, 0xbc, 0x39, 0xbd, 0x95, 0x9c, 0x7e, 0x1a, 0x94, 0x7c, 0x7c, 0x57, 0x2b, 0x79, - 0x7d, 0x01, 0x94, 0x02, 0x73, 0x70, 0x3c, 0xcf, 0x28, 0x85, 0xcc, 0x0f, 0x54, 0x18, 0x0b, 0xb6, - 0xd1, 0xbc, 0x9e, 0x9c, 0x10, 0xdf, 0x9b, 0xb2, 0xfd, 0x67, 0x16, 0xce, 0x2e, 0xce, 0xe1, 0x7f, - 0xbc, 0x90, 0x3c, 0x21, 0xbe, 0x42, 0x75, 0xb2, 0x74, 0x5c, 0x13, 0xc9, 0x26, 0x03, 0xd4, 0x8e, - 0x6b, 0x22, 0x02, 0xb5, 0xe3, 0x9a, 0x88, 0x40, 0xed, 0xb8, 0x26, 0x22, 0x50, 0x3b, 0x8e, 0x02, - 0x04, 0x6a, 0xc7, 0x35, 0x11, 0x81, 0xda, 0x71, 0x4d, 0x44, 0xa0, 0x76, 0x5e, 0x13, 0x61, 0xe4, - 0xae, 0xd7, 0x44, 0x44, 0x7a, 0xe7, 0x35, 0x11, 0x91, 0xde, 0x79, 0x4d, 0x24, 0x9b, 0x74, 0xdb, - 0x7b, 0xa8, 0xfb, 0xa1, 0x83, 0x88, 0x3f, 0xe8, 0x1d, 0xd0, 0x2f, 0xc0, 0x6b, 0x30, 0x42, 0xf7, - 0x23, 0x0a, 0xb6, 0xe5, 0x9a, 0x75, 0x0b, 0xb5, 0xf5, 0x77, 0xc2, 0x20, 0x1d, 0xa2, 0x6f, 0x39, - 0x61, 0x6f, 0x81, 0x94, 0xce, 0xca, 0xad, 0xc0, 0x9d, 0xf9, 0x49, 0x12, 0xc6, 0xe9, 0x40, 0xd9, - 0x6c, 0x22, 0xe1, 0x92, 0xd1, 0x29, 0xe9, 0x48, 0x69, 0x18, 0xc3, 0x6f, 0xbd, 0x32, 0x45, 0x47, - 0x73, 0x5e, 0x30, 0x9d, 0x92, 0x0e, 0x97, 0x44, 0x3e, 0x7f, 0xfd, 0x39, 0x25, 0x5d, 0x3c, 0x12, - 0xf9, 0xbc, 0xe5, 0xc6, 0xe3, 0xe3, 0x57, 0x90, 0x44, 0xbe, 0xa2, 0x17, 0x65, 0xa7, 0xa4, 0xcb, - 0x48, 0x22, 0x5f, 0xc9, 0x8b, 0xb7, 0x53, 0xd2, 0xd1, 0x93, 0xc8, 0x77, 0xd9, 0x8b, 0xbc, 0x53, - 0xd2, 0x21, 0x94, 0xc8, 0x77, 0xc5, 0x8b, 0xc1, 0x53, 0xd2, 0x55, 0x25, 0x91, 0xef, 0x51, 0x2f, - 0x1a, 0x4f, 0x49, 0x97, 0x96, 0x44, 0xbe, 0x65, 0x2f, 0x2e, 0x67, 0xe4, 0xeb, 0x4b, 0x22, 0xe3, - 0x55, 0x3f, 0x42, 0x67, 0xe4, 0x8b, 0x4c, 0x22, 0xe7, 0xbb, 0xfc, 0x58, 0x9d, 0x91, 0xaf, 0x34, - 0x89, 0x9c, 0x2b, 0x7e, 0xd4, 0xce, 0xc8, 0x47, 0x65, 0x22, 0xe7, 0xaa, 0x1f, 0xbf, 0x33, 0xf2, - 0xa1, 0x99, 0xc8, 0x59, 0xf6, 0x23, 0x79, 0x46, 0x3e, 0x3e, 0x13, 0x39, 0xd7, 0xfc, 0x3d, 0xf4, - 0x6f, 0x48, 0xe1, 0x17, 0xb8, 0x04, 0x95, 0x91, 0xc2, 0x0f, 0x42, 0x42, 0x2f, 0x23, 0x85, 0x1e, - 0x84, 0x84, 0x5d, 0x46, 0x0a, 0x3b, 0x08, 0x09, 0xb9, 0x8c, 0x14, 0x72, 0x10, 0x12, 0x6e, 0x19, - 0x29, 0xdc, 0x20, 0x24, 0xd4, 0x32, 0x52, 0xa8, 0x41, 0x48, 0x98, 0x65, 0xa4, 0x30, 0x83, 0x90, - 0x10, 0xcb, 0x48, 0x21, 0x06, 0x21, 0xe1, 0x95, 0x91, 0xc2, 0x0b, 0x42, 0x42, 0xeb, 0xa4, 0x1c, - 0x5a, 0x10, 0x16, 0x56, 0x27, 0xe5, 0xb0, 0x82, 0xb0, 0x90, 0xba, 0x47, 0x0e, 0xa9, 0xfe, 0x5b, - 0xaf, 0x4c, 0xf5, 0xe2, 0xa1, 0x40, 0x34, 0x9d, 0x94, 0xa3, 0x09, 0xc2, 0x22, 0xe9, 0xa4, 0x1c, - 0x49, 0x10, 0x16, 0x45, 0x27, 0xe5, 0x28, 0x82, 0xb0, 0x08, 0x7a, 0x49, 0x8e, 0x20, 0xff, 0x8a, - 0x4f, 0x46, 0x3a, 0x51, 0x8c, 0x8a, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, - 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, - 0x89, 0x20, 0x35, 0x56, 0x04, 0xa9, 0xdd, 0x22, 0xe8, 0xa4, 0x7c, 0xe1, 0x01, 0xc2, 0x0a, 0xd2, - 0x49, 0xf9, 0xe4, 0x33, 0x3a, 0x84, 0xd4, 0x58, 0x21, 0xa4, 0x76, 0x0b, 0xa1, 0x6f, 0xa8, 0x30, - 0x26, 0x84, 0x10, 0x3b, 0x1e, 0x7a, 0xab, 0x2a, 0xd0, 0xb9, 0x18, 0xf7, 0x2b, 0xc2, 0x62, 0xea, - 0x5c, 0x8c, 0x33, 0xea, 0x83, 0xe2, 0xac, 0xb3, 0x0a, 0x95, 0x62, 0x54, 0xa1, 0xcb, 0x5e, 0x0c, - 0x9d, 0x8b, 0x71, 0xef, 0xa2, 0x33, 0xf6, 0x2e, 0x1c, 0x54, 0x04, 0x1e, 0x8d, 0x55, 0x04, 0x96, - 0x63, 0x15, 0x81, 0xab, 0xbe, 0x07, 0x3f, 0x98, 0x80, 0xa3, 0xbe, 0x07, 0xe9, 0x27, 0xf2, 0x5b, - 0x48, 0x99, 0xc0, 0x09, 0x95, 0xce, 0x4f, 0x6d, 0x02, 0x6e, 0x4c, 0x2c, 0xd7, 0xf4, 0x75, 0xf1, - 0xac, 0x2a, 0x7b, 0xd8, 0xf3, 0x9b, 0x80, 0xc7, 0xd9, 0x5e, 0xe8, 0x49, 0x50, 0x97, 0x6b, 0x0e, - 0xa9, 0x16, 0x61, 0x8f, 0x2d, 0x18, 0x98, 0xac, 0x1b, 0xd0, 0x47, 0xd8, 0x1d, 0xe2, 0xde, 0xdb, - 0x79, 0x70, 0xd1, 0x60, 0x92, 0x32, 0x2f, 0x29, 0x30, 0x2d, 0x84, 0xf2, 0x5b, 0x73, 0x62, 0x70, - 0x29, 0xd6, 0x89, 0x81, 0x90, 0x20, 0xfe, 0xe9, 0xc1, 0x7d, 0x9d, 0x07, 0xd5, 0xc1, 0x2c, 0x91, - 0x4f, 0x12, 0x7e, 0x09, 0x86, 0xfd, 0x19, 0x90, 0x57, 0xb6, 0xa5, 0xe8, 0xcd, 0xcc, 0xb0, 0xd4, - 0x5c, 0x92, 0x36, 0xd1, 0x0e, 0x84, 0x79, 0xd9, 0x9a, 0xc9, 0xc2, 0x48, 0x59, 0xfc, 0xa3, 0x9d, - 0xa8, 0xbd, 0x88, 0x14, 0x6e, 0xcd, 0x6f, 0x7c, 0x7a, 0xaa, 0x27, 0xf3, 0x00, 0x0c, 0x06, 0xff, - 0x2e, 0x47, 0x02, 0xf6, 0x73, 0x60, 0x36, 0xf9, 0x32, 0xe6, 0xfe, 0x03, 0x05, 0xee, 0x08, 0xb2, - 0x3f, 0x56, 0x77, 0x77, 0x97, 0x2d, 0xdc, 0xd3, 0x3f, 0x04, 0x29, 0xc4, 0x1c, 0xc7, 0x7e, 0xd6, - 0x84, 0xbd, 0x46, 0x86, 0xb2, 0xcf, 0x91, 0x7f, 0x0d, 0x0f, 0x22, 0x6d, 0x82, 0xf0, 0xc7, 0x2e, - 0x4c, 0xdc, 0x0b, 0xbd, 0x54, 0xbe, 0xa8, 0xd7, 0x90, 0xa4, 0xd7, 0x67, 0x43, 0xf4, 0x22, 0x71, - 0xa4, 0x5f, 0x15, 0xf4, 0x0a, 0xbc, 0xad, 0x86, 0xb2, 0xcf, 0xf1, 0xe0, 0xcb, 0xa7, 0x70, 0xff, - 0x47, 0x22, 0x2a, 0x5a, 0xc9, 0x19, 0x48, 0x95, 0x64, 0x9e, 0x70, 0x3d, 0x8b, 0x90, 0x2c, 0xdb, - 0x35, 0xf2, 0x83, 0x2b, 0xe4, 0x87, 0x71, 0x99, 0x91, 0xd9, 0xaf, 0xe4, 0x9e, 0x82, 0x54, 0x61, - 0xb7, 0xde, 0xa8, 0xb5, 0x91, 0xc5, 0x8e, 0xec, 0xd9, 0x0e, 0x3a, 0xc6, 0x18, 0x1e, 0x2d, 0x53, - 0x80, 0xd1, 0xb2, 0x6d, 0xe5, 0xf7, 0xdd, 0x60, 0xdd, 0x98, 0x93, 0x52, 0x84, 0x1d, 0xf9, 0x90, - 0xbf, 0xf4, 0xc0, 0x0c, 0xf9, 0xde, 0x6f, 0xbf, 0x32, 0xa5, 0x6c, 0x7a, 0xdb, 0xe7, 0xab, 0x70, - 0x8c, 0xa5, 0x4f, 0x87, 0xa8, 0x85, 0x28, 0x51, 0xfd, 0xec, 0x98, 0x3a, 0x20, 0x6e, 0x19, 0x8b, - 0xb3, 0x42, 0xc5, 0xbd, 0x39, 0xcd, 0x70, 0x53, 0x74, 0xa0, 0x66, 0xea, 0xa1, 0x34, 0x0b, 0x15, - 0x37, 0x17, 0x25, 0x4e, 0xd2, 0xec, 0x1e, 0xe8, 0xf7, 0x68, 0x81, 0x68, 0x08, 0x66, 0xca, 0xc2, - 0x6c, 0x06, 0x06, 0x02, 0x09, 0xab, 0xf7, 0x82, 0x92, 0xd3, 0x7a, 0xf0, 0x7f, 0x79, 0x4d, 0xc1, - 0xff, 0x15, 0xb4, 0xc4, 0xec, 0xbd, 0x30, 0x22, 0x6d, 0x5f, 0x62, 0x4a, 0x51, 0x03, 0xfc, 0x5f, - 0x49, 0x1b, 0x98, 0x48, 0x7e, 0xe8, 0x8f, 0x27, 0x7b, 0x66, 0x2f, 0x81, 0xde, 0xb9, 0xd1, 0xa9, - 0xf7, 0x41, 0x22, 0x87, 0x45, 0x1e, 0x83, 0x44, 0x3e, 0xaf, 0x29, 0x13, 0x23, 0xbf, 0xfe, 0xc9, - 0xe9, 0x81, 0x3c, 0xf9, 0xa3, 0xe3, 0x6b, 0xc8, 0xcd, 0xe7, 0x19, 0xf8, 0x61, 0xb8, 0x23, 0x74, - 0xa3, 0x14, 0xe3, 0x0b, 0x05, 0x8a, 0x2f, 0x16, 0x3b, 0xf0, 0xc5, 0x22, 0xc1, 0x2b, 0x59, 0x7e, - 0xe0, 0x9c, 0xd3, 0x43, 0x36, 0x19, 0xd3, 0xb5, 0xc0, 0x01, 0x77, 0x2e, 0xfb, 0x30, 0xe3, 0xcd, - 0x87, 0xf2, 0xa2, 0x88, 0x03, 0xeb, 0x7c, 0xb6, 0xc0, 0xf0, 0x85, 0x50, 0xfc, 0xb6, 0x74, 0xaa, - 0x2a, 0xae, 0x10, 0x4c, 0x48, 0xc1, 0x53, 0xb8, 0x18, 0x2a, 0x64, 0x37, 0x70, 0xd7, 0xbd, 0xe8, - 0x29, 0x5c, 0x0a, 0xe5, 0xad, 0x47, 0xdc, 0xf9, 0x2a, 0x65, 0x4f, 0xb3, 0x45, 0x3e, 0x77, 0x46, - 0xbf, 0x83, 0xe7, 0xa8, 0x50, 0x81, 0x99, 0x81, 0x38, 0x57, 0xb6, 0xc0, 0x00, 0xf9, 0xae, 0x80, - 0xee, 0x56, 0xe2, 0xc8, 0xec, 0xa3, 0x4c, 0x48, 0xa1, 0xab, 0x90, 0x08, 0x53, 0x71, 0x78, 0x7e, - 0xf3, 0xc6, 0xcd, 0xc9, 0x9e, 0x97, 0x6f, 0x4e, 0xf6, 0xfc, 0xeb, 0xcd, 0xc9, 0x9e, 0xef, 0xdc, - 0x9c, 0x54, 0xbe, 0x77, 0x73, 0x52, 0xf9, 0xfe, 0xcd, 0x49, 0xe5, 0xc7, 0x37, 0x27, 0x95, 0xe7, - 0x6e, 0x4d, 0x2a, 0x2f, 0xde, 0x9a, 0x54, 0xbe, 0x74, 0x6b, 0x52, 0xf9, 0xda, 0xad, 0x49, 0xe5, - 0xa5, 0x5b, 0x93, 0xca, 0x8d, 0x5b, 0x93, 0x3d, 0x2f, 0xdf, 0x9a, 0x54, 0xbe, 0x73, 0x6b, 0x52, - 0xf9, 0xde, 0xad, 0xc9, 0x9e, 0xef, 0xdf, 0x9a, 0x54, 0x7e, 0x7c, 0x6b, 0xb2, 0xe7, 0xb9, 0x57, - 0x27, 0x7b, 0x5e, 0x78, 0x75, 0xb2, 0xe7, 0xc5, 0x57, 0x27, 0x95, 0xff, 0x0f, 0x00, 0x00, 0xff, - 0xff, 0x60, 0x11, 0x0b, 0xa5, 0xac, 0x64, 0x00, 0x00, + // 6619 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x6c, 0x1c, 0xd7, + 0x75, 0x3f, 0x67, 0x67, 0x49, 0x2d, 0x0f, 0x5f, 0xc3, 0xa1, 0x44, 0xad, 0x69, 0x99, 0xa4, 0xd6, + 0xb2, 0x4c, 0x33, 0x36, 0x45, 0x51, 0xd4, 0x6b, 0x15, 0xdb, 0xff, 0x7d, 0x49, 0xa6, 0x42, 0x2e, + 0x99, 0x21, 0x19, 0x5b, 0xc9, 0xff, 0x8f, 0xc5, 0x68, 0xf7, 0x92, 0x5c, 0x7b, 0x77, 0x66, 0xb3, + 0x33, 0xb4, 0x4d, 0xe3, 0x8f, 0xc2, 0x4d, 0xda, 0x34, 0x69, 0xd1, 0x67, 0x5a, 0xe4, 0xd1, 0xc4, + 0x71, 0x5a, 0xa4, 0x71, 0xd2, 0x57, 0xd2, 0xa4, 0x69, 0x1a, 0x14, 0x8d, 0xbf, 0xa4, 0x55, 0xbf, + 0x04, 0x4e, 0x3f, 0x15, 0x41, 0x61, 0x44, 0x72, 0x80, 0xa6, 0xad, 0xdb, 0xa4, 0xa9, 0x81, 0x06, + 0x70, 0x3e, 0x14, 0xf7, 0x35, 0x33, 0xf7, 0xee, 0x2c, 0x67, 0x68, 0xd9, 0x4e, 0xbe, 0x48, 0xbb, + 0xf7, 0x9c, 0xdf, 0x99, 0x73, 0xcf, 0xeb, 0x9e, 0xb9, 0xf7, 0x72, 0xe1, 0x87, 0x17, 0x61, 0x7a, + 0xdb, 0xb6, 0xb7, 0x1b, 0xe8, 0x54, 0xab, 0x6d, 0xbb, 0xf6, 0xf5, 0xdd, 0xad, 0x53, 0x35, 0xe4, + 0x54, 0xdb, 0xf5, 0x96, 0x6b, 0xb7, 0xe7, 0xc8, 0x98, 0x3e, 0x42, 0x39, 0xe6, 0x38, 0x47, 0x66, + 0x05, 0x46, 0x2f, 0xd7, 0x1b, 0xa8, 0xe8, 0x31, 0xae, 0x23, 0x57, 0xbf, 0x00, 0xc9, 0xad, 0x7a, + 0x03, 0xa5, 0x95, 0x69, 0x75, 0x66, 0x60, 0xe1, 0xc4, 0x9c, 0x04, 0x9a, 0x13, 0x11, 0x6b, 0x78, + 0xd8, 0x20, 0x88, 0xcc, 0xf7, 0x93, 0x30, 0x16, 0x42, 0xd5, 0x75, 0x48, 0x5a, 0x66, 0x13, 0x4b, + 0x54, 0x66, 0xfa, 0x0d, 0xf2, 0x59, 0x4f, 0xc3, 0xa1, 0x96, 0x59, 0x7d, 0xc2, 0xdc, 0x46, 0xe9, + 0x04, 0x19, 0xe6, 0x5f, 0xf5, 0x49, 0x80, 0x1a, 0x6a, 0x21, 0xab, 0x86, 0xac, 0xea, 0x5e, 0x5a, + 0x9d, 0x56, 0x67, 0xfa, 0x8d, 0xc0, 0x88, 0xfe, 0x0e, 0x18, 0x6d, 0xed, 0x5e, 0x6f, 0xd4, 0xab, + 0x95, 0x00, 0x1b, 0x4c, 0xab, 0x33, 0xbd, 0x86, 0x46, 0x09, 0x45, 0x9f, 0xf9, 0x5e, 0x18, 0x79, + 0x0a, 0x99, 0x4f, 0x04, 0x59, 0x07, 0x08, 0xeb, 0x30, 0x1e, 0x0e, 0x30, 0x16, 0x60, 0xb0, 0x89, + 0x1c, 0xc7, 0xdc, 0x46, 0x15, 0x77, 0xaf, 0x85, 0xd2, 0x49, 0x32, 0xfb, 0xe9, 0x8e, 0xd9, 0xcb, + 0x33, 0x1f, 0x60, 0xa8, 0x8d, 0xbd, 0x16, 0xd2, 0x73, 0xd0, 0x8f, 0xac, 0xdd, 0x26, 0x95, 0xd0, + 0xdb, 0xc5, 0x7e, 0x25, 0x6b, 0xb7, 0x29, 0x4b, 0x49, 0x61, 0x18, 0x13, 0x71, 0xc8, 0x41, 0xed, + 0x27, 0xeb, 0x55, 0x94, 0xee, 0x23, 0x02, 0xee, 0xed, 0x10, 0xb0, 0x4e, 0xe9, 0xb2, 0x0c, 0x8e, + 0xd3, 0x0b, 0xd0, 0x8f, 0x9e, 0x76, 0x91, 0xe5, 0xd4, 0x6d, 0x2b, 0x7d, 0x88, 0x08, 0xb9, 0x27, + 0xc4, 0x8b, 0xa8, 0x51, 0x93, 0x45, 0xf8, 0x38, 0xfd, 0x1c, 0x1c, 0xb2, 0x5b, 0x6e, 0xdd, 0xb6, + 0x9c, 0x74, 0x6a, 0x5a, 0x99, 0x19, 0x58, 0x38, 0x16, 0x1a, 0x08, 0xab, 0x94, 0xc7, 0xe0, 0xcc, + 0xfa, 0x12, 0x68, 0x8e, 0xbd, 0xdb, 0xae, 0xa2, 0x4a, 0xd5, 0xae, 0xa1, 0x4a, 0xdd, 0xda, 0xb2, + 0xd3, 0xfd, 0x44, 0xc0, 0x54, 0xe7, 0x44, 0x08, 0x63, 0xc1, 0xae, 0xa1, 0x25, 0x6b, 0xcb, 0x36, + 0x86, 0x1d, 0xe1, 0xbb, 0x3e, 0x0e, 0x7d, 0xce, 0x9e, 0xe5, 0x9a, 0x4f, 0xa7, 0x07, 0x49, 0x84, + 0xb0, 0x6f, 0x99, 0xbf, 0xee, 0x83, 0x91, 0x38, 0x21, 0x76, 0x09, 0x7a, 0xb7, 0xf0, 0x2c, 0xd3, + 0x89, 0x83, 0xd8, 0x80, 0x62, 0x44, 0x23, 0xf6, 0xbd, 0x41, 0x23, 0xe6, 0x60, 0xc0, 0x42, 0x8e, + 0x8b, 0x6a, 0x34, 0x22, 0xd4, 0x98, 0x31, 0x05, 0x14, 0xd4, 0x19, 0x52, 0xc9, 0x37, 0x14, 0x52, + 0x8f, 0xc1, 0x88, 0xa7, 0x52, 0xa5, 0x6d, 0x5a, 0xdb, 0x3c, 0x36, 0x4f, 0x45, 0x69, 0x32, 0x57, + 0xe2, 0x38, 0x03, 0xc3, 0x8c, 0x61, 0x24, 0x7c, 0xd7, 0x8b, 0x00, 0xb6, 0x85, 0xec, 0xad, 0x4a, + 0x0d, 0x55, 0x1b, 0xe9, 0x54, 0x17, 0x2b, 0xad, 0x62, 0x96, 0x0e, 0x2b, 0xd9, 0x74, 0xb4, 0xda, + 0xd0, 0x2f, 0xfa, 0xa1, 0x76, 0xa8, 0x4b, 0xa4, 0xac, 0xd0, 0x24, 0xeb, 0x88, 0xb6, 0x4d, 0x18, + 0x6e, 0x23, 0x1c, 0xf7, 0xa8, 0xc6, 0x66, 0xd6, 0x4f, 0x94, 0x98, 0x8b, 0x9c, 0x99, 0xc1, 0x60, + 0x74, 0x62, 0x43, 0xed, 0xe0, 0x57, 0xfd, 0x6e, 0xf0, 0x06, 0x2a, 0x24, 0xac, 0x80, 0x54, 0xa1, + 0x41, 0x3e, 0x58, 0x36, 0x9b, 0x68, 0xe2, 0x19, 0x18, 0x16, 0xcd, 0xa3, 0x1f, 0x86, 0x5e, 0xc7, + 0x35, 0xdb, 0x2e, 0x89, 0xc2, 0x5e, 0x83, 0x7e, 0xd1, 0x35, 0x50, 0x91, 0x55, 0x23, 0x55, 0xae, + 0xd7, 0xc0, 0x1f, 0xf5, 0xff, 0xe3, 0x4f, 0x58, 0x25, 0x13, 0x3e, 0xd9, 0xe9, 0x51, 0x41, 0xb2, + 0x3c, 0xef, 0x89, 0xf3, 0x30, 0x24, 0x4c, 0x20, 0xee, 0xa3, 0x33, 0xff, 0x1f, 0x8e, 0x84, 0x8a, + 0xd6, 0x1f, 0x83, 0xc3, 0xbb, 0x56, 0xdd, 0x72, 0x51, 0xbb, 0xd5, 0x46, 0x38, 0x62, 0xe9, 0xa3, + 0xd2, 0xff, 0x72, 0xa8, 0x4b, 0xcc, 0x6d, 0x06, 0xb9, 0xa9, 0x14, 0x63, 0x6c, 0xb7, 0x73, 0x70, + 0xb6, 0x3f, 0xf5, 0x83, 0x43, 0xda, 0xb3, 0xcf, 0x3e, 0xfb, 0x6c, 0x22, 0xf3, 0xf1, 0x3e, 0x38, + 0x1c, 0x96, 0x33, 0xa1, 0xe9, 0x3b, 0x0e, 0x7d, 0xd6, 0x6e, 0xf3, 0x3a, 0x6a, 0x13, 0x23, 0xf5, + 0x1a, 0xec, 0x9b, 0x9e, 0x83, 0xde, 0x86, 0x79, 0x1d, 0x35, 0xd2, 0xc9, 0x69, 0x65, 0x66, 0x78, + 0xe1, 0x1d, 0xb1, 0xb2, 0x72, 0x6e, 0x19, 0x43, 0x0c, 0x8a, 0xd4, 0x1f, 0x82, 0x24, 0x2b, 0xd1, + 0x58, 0xc2, 0x6c, 0x3c, 0x09, 0x38, 0x97, 0x0c, 0x82, 0xd3, 0xef, 0x84, 0x7e, 0xfc, 0x3f, 0x8d, + 0x8d, 0x3e, 0xa2, 0x73, 0x0a, 0x0f, 0xe0, 0xb8, 0xd0, 0x27, 0x20, 0x45, 0xd2, 0xa4, 0x86, 0xf8, + 0xd2, 0xe6, 0x7d, 0xc7, 0x81, 0x55, 0x43, 0x5b, 0xe6, 0x6e, 0xc3, 0xad, 0x3c, 0x69, 0x36, 0x76, + 0x11, 0x09, 0xf8, 0x7e, 0x63, 0x90, 0x0d, 0xbe, 0x07, 0x8f, 0xe9, 0x53, 0x30, 0x40, 0xb3, 0xaa, + 0x6e, 0xd5, 0xd0, 0xd3, 0xa4, 0x7a, 0xf6, 0x1a, 0x34, 0xd1, 0x96, 0xf0, 0x08, 0x7e, 0xfc, 0xe3, + 0x8e, 0x6d, 0xf1, 0xd0, 0x24, 0x8f, 0xc0, 0x03, 0xe4, 0xf1, 0xe7, 0xe5, 0xc2, 0x7d, 0x57, 0xf8, + 0xf4, 0xe4, 0x98, 0xca, 0x7c, 0x2d, 0x01, 0x49, 0x52, 0x2f, 0x46, 0x60, 0x60, 0xe3, 0xda, 0x5a, + 0xa9, 0x52, 0x5c, 0xdd, 0xcc, 0x2f, 0x97, 0x34, 0x45, 0x1f, 0x06, 0x20, 0x03, 0x97, 0x97, 0x57, + 0x73, 0x1b, 0x5a, 0xc2, 0xfb, 0xbe, 0x54, 0xde, 0x38, 0xb7, 0xa8, 0xa9, 0x1e, 0x60, 0x93, 0x0e, + 0x24, 0x83, 0x0c, 0x67, 0x16, 0xb4, 0x5e, 0x5d, 0x83, 0x41, 0x2a, 0x60, 0xe9, 0xb1, 0x52, 0xf1, + 0xdc, 0xa2, 0xd6, 0x27, 0x8e, 0x9c, 0x59, 0xd0, 0x0e, 0xe9, 0x43, 0xd0, 0x4f, 0x46, 0xf2, 0xab, + 0xab, 0xcb, 0x5a, 0xca, 0x93, 0xb9, 0xbe, 0x61, 0x2c, 0x95, 0xaf, 0x68, 0xfd, 0x9e, 0xcc, 0x2b, + 0xc6, 0xea, 0xe6, 0x9a, 0x06, 0x9e, 0x84, 0x95, 0xd2, 0xfa, 0x7a, 0xee, 0x4a, 0x49, 0x1b, 0xf0, + 0x38, 0xf2, 0xd7, 0x36, 0x4a, 0xeb, 0xda, 0xa0, 0xa0, 0xd6, 0x99, 0x05, 0x6d, 0xc8, 0x7b, 0x44, + 0xa9, 0xbc, 0xb9, 0xa2, 0x0d, 0xeb, 0xa3, 0x30, 0x44, 0x1f, 0xc1, 0x95, 0x18, 0x91, 0x86, 0xce, + 0x2d, 0x6a, 0x9a, 0xaf, 0x08, 0x95, 0x32, 0x2a, 0x0c, 0x9c, 0x5b, 0xd4, 0xf4, 0x4c, 0x01, 0x7a, + 0x49, 0x74, 0xe9, 0x3a, 0x0c, 0x2f, 0xe7, 0xf2, 0xa5, 0xe5, 0xca, 0xea, 0xda, 0xc6, 0xd2, 0x6a, + 0x39, 0xb7, 0xac, 0x29, 0xfe, 0x98, 0x51, 0x7a, 0xf7, 0xe6, 0x92, 0x51, 0x2a, 0x6a, 0x89, 0xe0, + 0xd8, 0x5a, 0x29, 0xb7, 0x51, 0x2a, 0x6a, 0x6a, 0xa6, 0x0a, 0x87, 0xc3, 0xea, 0x64, 0x68, 0x66, + 0x04, 0x5c, 0x9c, 0xe8, 0xe2, 0x62, 0x22, 0xab, 0xc3, 0xc5, 0xaf, 0x24, 0x60, 0x2c, 0x64, 0xad, + 0x08, 0x7d, 0xc8, 0xc3, 0xd0, 0x4b, 0x43, 0x94, 0xae, 0x9e, 0xf7, 0x85, 0x2e, 0x3a, 0x24, 0x60, + 0x3b, 0x56, 0x50, 0x82, 0x0b, 0x76, 0x10, 0x6a, 0x97, 0x0e, 0x02, 0x8b, 0xe8, 0xa8, 0xe9, 0xff, + 0xaf, 0xa3, 0xa6, 0xd3, 0x65, 0xef, 0x5c, 0x9c, 0x65, 0x8f, 0x8c, 0x1d, 0xac, 0xb6, 0xf7, 0x86, + 0xd4, 0xf6, 0x4b, 0x30, 0xda, 0x21, 0x28, 0x76, 0x8d, 0xfd, 0xa0, 0x02, 0xe9, 0x6e, 0xc6, 0x89, + 0xa8, 0x74, 0x09, 0xa1, 0xd2, 0x5d, 0x92, 0x2d, 0x78, 0xbc, 0xbb, 0x13, 0x3a, 0x7c, 0xfd, 0x79, + 0x05, 0xc6, 0xc3, 0x3b, 0xc5, 0x50, 0x1d, 0x1e, 0x82, 0xbe, 0x26, 0x72, 0x77, 0x6c, 0xde, 0x2d, + 0x9d, 0x0c, 0x59, 0x83, 0x31, 0x59, 0x76, 0x36, 0x43, 0x05, 0x17, 0x71, 0xb5, 0x5b, 0xbb, 0x47, + 0xb5, 0xe9, 0xd0, 0xf4, 0x23, 0x09, 0x38, 0x12, 0x2a, 0x3c, 0x54, 0xd1, 0xbb, 0x00, 0xea, 0x56, + 0x6b, 0xd7, 0xa5, 0x1d, 0x11, 0x2d, 0xb0, 0xfd, 0x64, 0x84, 0x14, 0x2f, 0x5c, 0x3c, 0x77, 0x5d, + 0x8f, 0xae, 0x12, 0x3a, 0xd0, 0x21, 0xc2, 0x70, 0xc1, 0x57, 0x34, 0x49, 0x14, 0x9d, 0xec, 0x32, + 0xd3, 0x8e, 0xc0, 0x9c, 0x07, 0xad, 0xda, 0xa8, 0x23, 0xcb, 0xad, 0x38, 0x6e, 0x1b, 0x99, 0xcd, + 0xba, 0xb5, 0x4d, 0x56, 0x90, 0x54, 0xb6, 0x77, 0xcb, 0x6c, 0x38, 0xc8, 0x18, 0xa1, 0xe4, 0x75, + 0x4e, 0xc5, 0x08, 0x12, 0x40, 0xed, 0x00, 0xa2, 0x4f, 0x40, 0x50, 0xb2, 0x87, 0xc8, 0x7c, 0x25, + 0x05, 0x03, 0x81, 0xbe, 0x5a, 0x3f, 0x0e, 0x83, 0x8f, 0x9b, 0x4f, 0x9a, 0x15, 0xfe, 0xae, 0x44, + 0x2d, 0x31, 0x80, 0xc7, 0xd6, 0xd8, 0xfb, 0xd2, 0x3c, 0x1c, 0x26, 0x2c, 0xf6, 0xae, 0x8b, 0xda, + 0x95, 0x6a, 0xc3, 0x74, 0x1c, 0x62, 0xb4, 0x14, 0x61, 0xd5, 0x31, 0x6d, 0x15, 0x93, 0x0a, 0x9c, + 0xa2, 0x9f, 0x85, 0x31, 0x82, 0x68, 0xee, 0x36, 0xdc, 0x7a, 0xab, 0x81, 0x2a, 0xf8, 0xed, 0xcd, + 0x21, 0x2b, 0x89, 0xa7, 0xd9, 0x28, 0xe6, 0x58, 0x61, 0x0c, 0x58, 0x23, 0x47, 0x2f, 0xc2, 0x5d, + 0x04, 0xb6, 0x8d, 0x2c, 0xd4, 0x36, 0x5d, 0x54, 0x41, 0xef, 0xdf, 0x35, 0x1b, 0x4e, 0xc5, 0xb4, + 0x6a, 0x95, 0x1d, 0xd3, 0xd9, 0x49, 0x1f, 0xc6, 0x02, 0xf2, 0x89, 0xb4, 0x62, 0xdc, 0x81, 0x19, + 0xaf, 0x30, 0xbe, 0x12, 0x61, 0xcb, 0x59, 0xb5, 0x47, 0x4c, 0x67, 0x47, 0xcf, 0xc2, 0x38, 0x91, + 0xe2, 0xb8, 0xed, 0xba, 0xb5, 0x5d, 0xa9, 0xee, 0xa0, 0xea, 0x13, 0x95, 0x5d, 0x77, 0xeb, 0x42, + 0xfa, 0xce, 0xe0, 0xf3, 0x89, 0x86, 0xeb, 0x84, 0xa7, 0x80, 0x59, 0x36, 0xdd, 0xad, 0x0b, 0xfa, + 0x3a, 0x0c, 0x62, 0x67, 0x34, 0xeb, 0xcf, 0xa0, 0xca, 0x96, 0xdd, 0x26, 0x4b, 0xe3, 0x70, 0x48, + 0x69, 0x0a, 0x58, 0x70, 0x6e, 0x95, 0x01, 0x56, 0xec, 0x1a, 0xca, 0xf6, 0xae, 0xaf, 0x95, 0x4a, + 0x45, 0x63, 0x80, 0x4b, 0xb9, 0x6c, 0xb7, 0x71, 0x40, 0x6d, 0xdb, 0x9e, 0x81, 0x07, 0x68, 0x40, + 0x6d, 0xdb, 0xdc, 0xbc, 0x67, 0x61, 0xac, 0x5a, 0xa5, 0x73, 0xae, 0x57, 0x2b, 0xec, 0x1d, 0xcb, + 0x49, 0x6b, 0x82, 0xb1, 0xaa, 0xd5, 0x2b, 0x94, 0x81, 0xc5, 0xb8, 0xa3, 0x5f, 0x84, 0x23, 0xbe, + 0xb1, 0x82, 0xc0, 0xd1, 0x8e, 0x59, 0xca, 0xd0, 0xb3, 0x30, 0xd6, 0xda, 0xeb, 0x04, 0xea, 0xc2, + 0x13, 0x5b, 0x7b, 0x32, 0xec, 0x3c, 0x1c, 0x6e, 0xed, 0xb4, 0x3a, 0x71, 0xb3, 0x41, 0x9c, 0xde, + 0xda, 0x69, 0xc9, 0xc0, 0x7b, 0xc8, 0x0b, 0x77, 0x1b, 0x55, 0x4d, 0x17, 0xd5, 0xd2, 0x47, 0x83, + 0xec, 0x01, 0x82, 0x7e, 0x0a, 0xb4, 0x6a, 0xb5, 0x82, 0x2c, 0xf3, 0x7a, 0x03, 0x55, 0xcc, 0x36, + 0xb2, 0x4c, 0x27, 0x3d, 0x15, 0x64, 0x1e, 0xae, 0x56, 0x4b, 0x84, 0x9a, 0x23, 0x44, 0x7d, 0x16, + 0x46, 0xed, 0xeb, 0x8f, 0x57, 0x69, 0x48, 0x56, 0x5a, 0x6d, 0xb4, 0x55, 0x7f, 0x3a, 0x7d, 0x82, + 0xd8, 0x77, 0x04, 0x13, 0x48, 0x40, 0xae, 0x91, 0x61, 0xfd, 0x3e, 0xd0, 0xaa, 0xce, 0x8e, 0xd9, + 0x6e, 0x91, 0x9a, 0xec, 0xb4, 0xcc, 0x2a, 0x4a, 0xdf, 0x43, 0x59, 0xe9, 0x78, 0x99, 0x0f, 0xe3, + 0x94, 0x70, 0x9e, 0xaa, 0x6f, 0xb9, 0x5c, 0xe2, 0xbd, 0x34, 0x25, 0xc8, 0x18, 0x93, 0x36, 0x03, + 0x1a, 0x36, 0x85, 0xf0, 0xe0, 0x19, 0xc2, 0x36, 0xdc, 0xda, 0x69, 0x05, 0x9f, 0x7b, 0x37, 0x0c, + 0x61, 0x4e, 0xff, 0xa1, 0xf7, 0xd1, 0x86, 0xac, 0xb5, 0x13, 0x78, 0xe2, 0x5b, 0xd6, 0x1b, 0x67, + 0xb2, 0x30, 0x18, 0x8c, 0x4f, 0xbd, 0x1f, 0x68, 0x84, 0x6a, 0x0a, 0x6e, 0x56, 0x0a, 0xab, 0x45, + 0xdc, 0x66, 0xbc, 0xb7, 0xa4, 0x25, 0x70, 0xbb, 0xb3, 0xbc, 0xb4, 0x51, 0xaa, 0x18, 0x9b, 0xe5, + 0x8d, 0xa5, 0x95, 0x92, 0xa6, 0x06, 0xfb, 0xea, 0x6f, 0x25, 0x60, 0x58, 0x7c, 0x45, 0xd2, 0xdf, + 0x09, 0x47, 0xf9, 0x7e, 0x86, 0x83, 0xdc, 0xca, 0x53, 0xf5, 0x36, 0x49, 0x99, 0xa6, 0x49, 0x97, + 0x2f, 0xcf, 0x69, 0x87, 0x19, 0xd7, 0x3a, 0x72, 0x1f, 0xad, 0xb7, 0x71, 0x42, 0x34, 0x4d, 0x57, + 0x5f, 0x86, 0x29, 0xcb, 0xae, 0x38, 0xae, 0x69, 0xd5, 0xcc, 0x76, 0xad, 0xe2, 0xef, 0x24, 0x55, + 0xcc, 0x6a, 0x15, 0x39, 0x8e, 0x4d, 0x97, 0x2a, 0x4f, 0xca, 0x31, 0xcb, 0x5e, 0x67, 0xcc, 0x7e, + 0x0d, 0xcf, 0x31, 0x56, 0x29, 0xc0, 0xd4, 0x6e, 0x01, 0x76, 0x27, 0xf4, 0x37, 0xcd, 0x56, 0x05, + 0x59, 0x6e, 0x7b, 0x8f, 0x34, 0xc6, 0x29, 0x23, 0xd5, 0x34, 0x5b, 0x25, 0xfc, 0xfd, 0xed, 0x79, + 0x3f, 0xf9, 0x67, 0x15, 0x06, 0x83, 0xcd, 0x31, 0x7e, 0xd7, 0xa8, 0x92, 0x75, 0x44, 0x21, 0x95, + 0xe6, 0xee, 0x7d, 0x5b, 0xe9, 0xb9, 0x02, 0x5e, 0x60, 0xb2, 0x7d, 0xb4, 0x65, 0x35, 0x28, 0x12, + 0x2f, 0xee, 0xb8, 0xb6, 0x20, 0xda, 0x22, 0xa4, 0x0c, 0xf6, 0x4d, 0xbf, 0x02, 0x7d, 0x8f, 0x3b, + 0x44, 0x76, 0x1f, 0x91, 0x7d, 0x62, 0x7f, 0xd9, 0x57, 0xd7, 0x89, 0xf0, 0xfe, 0xab, 0xeb, 0x95, + 0xf2, 0xaa, 0xb1, 0x92, 0x5b, 0x36, 0x18, 0x5c, 0xbf, 0x03, 0x92, 0x0d, 0xf3, 0x99, 0x3d, 0x71, + 0x29, 0x22, 0x43, 0x71, 0x0d, 0x7f, 0x07, 0x24, 0x9f, 0x42, 0xe6, 0x13, 0xe2, 0x02, 0x40, 0x86, + 0xde, 0xc2, 0xd0, 0x3f, 0x05, 0xbd, 0xc4, 0x5e, 0x3a, 0x00, 0xb3, 0x98, 0xd6, 0xa3, 0xa7, 0x20, + 0x59, 0x58, 0x35, 0x70, 0xf8, 0x6b, 0x30, 0x48, 0x47, 0x2b, 0x6b, 0x4b, 0xa5, 0x42, 0x49, 0x4b, + 0x64, 0xce, 0x42, 0x1f, 0x35, 0x02, 0x4e, 0x0d, 0xcf, 0x0c, 0x5a, 0x0f, 0xfb, 0xca, 0x64, 0x28, + 0x9c, 0xba, 0xb9, 0x92, 0x2f, 0x19, 0x5a, 0x22, 0xe8, 0x5e, 0x07, 0x06, 0x83, 0x7d, 0xf1, 0xdb, + 0x13, 0x53, 0xdf, 0x50, 0x60, 0x20, 0xd0, 0xe7, 0xe2, 0x06, 0xc5, 0x6c, 0x34, 0xec, 0xa7, 0x2a, + 0x66, 0xa3, 0x6e, 0x3a, 0x2c, 0x28, 0x80, 0x0c, 0xe5, 0xf0, 0x48, 0x5c, 0xa7, 0xbd, 0x2d, 0xca, + 0x3f, 0xa7, 0x80, 0x26, 0xb7, 0x98, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0x4f, 0x29, 0x30, 0x2c, + 0xf6, 0x95, 0x92, 0x7a, 0xc7, 0x7f, 0xa6, 0xea, 0x7d, 0x2f, 0x01, 0x43, 0x42, 0x37, 0x19, 0x57, + 0xbb, 0xf7, 0xc3, 0x68, 0xbd, 0x86, 0x9a, 0x2d, 0xdb, 0x45, 0x56, 0x75, 0xaf, 0xd2, 0x40, 0x4f, + 0xa2, 0x46, 0x3a, 0x43, 0x0a, 0xc5, 0xa9, 0xfd, 0xfb, 0xd5, 0xb9, 0x25, 0x1f, 0xb7, 0x8c, 0x61, + 0xd9, 0xb1, 0xa5, 0x62, 0x69, 0x65, 0x6d, 0x75, 0xa3, 0x54, 0x2e, 0x5c, 0xab, 0x6c, 0x96, 0xdf, + 0x55, 0x5e, 0x7d, 0xb4, 0x6c, 0x68, 0x75, 0x89, 0xed, 0x2d, 0x4c, 0xf5, 0x35, 0xd0, 0x64, 0xa5, + 0xf4, 0xa3, 0x10, 0xa6, 0x96, 0xd6, 0xa3, 0x8f, 0xc1, 0x48, 0x79, 0xb5, 0xb2, 0xbe, 0x54, 0x2c, + 0x55, 0x4a, 0x97, 0x2f, 0x97, 0x0a, 0x1b, 0xeb, 0x74, 0x07, 0xc2, 0xe3, 0xde, 0x10, 0x93, 0xfa, + 0x93, 0x2a, 0x8c, 0x85, 0x68, 0xa2, 0xe7, 0xd8, 0xbb, 0x03, 0x7d, 0x9d, 0x79, 0x20, 0x8e, 0xf6, + 0x73, 0x78, 0xc9, 0x5f, 0x33, 0xdb, 0x2e, 0x7b, 0xd5, 0xb8, 0x0f, 0xb0, 0x95, 0x2c, 0xb7, 0xbe, + 0x55, 0x47, 0x6d, 0xb6, 0x61, 0x43, 0x5f, 0x28, 0x46, 0xfc, 0x71, 0xba, 0x67, 0x73, 0x3f, 0xe8, + 0x2d, 0xdb, 0xa9, 0xbb, 0xf5, 0x27, 0x51, 0xa5, 0x6e, 0xf1, 0xdd, 0x1d, 0xfc, 0x82, 0x91, 0x34, + 0x34, 0x4e, 0x59, 0xb2, 0x5c, 0x8f, 0xdb, 0x42, 0xdb, 0xa6, 0xc4, 0x8d, 0x0b, 0xb8, 0x6a, 0x68, + 0x9c, 0xe2, 0x71, 0x1f, 0x87, 0xc1, 0x9a, 0xbd, 0x8b, 0xbb, 0x2e, 0xca, 0x87, 0xd7, 0x0b, 0xc5, + 0x18, 0xa0, 0x63, 0x1e, 0x0b, 0xeb, 0xa7, 0xfd, 0x6d, 0xa5, 0x41, 0x63, 0x80, 0x8e, 0x51, 0x96, + 0x7b, 0x61, 0xc4, 0xdc, 0xde, 0x6e, 0x63, 0xe1, 0x5c, 0x10, 0x7d, 0x43, 0x18, 0xf6, 0x86, 0x09, + 0xe3, 0xc4, 0x55, 0x48, 0x71, 0x3b, 0xe0, 0x25, 0x19, 0x5b, 0xa2, 0xd2, 0xa2, 0xaf, 0xbd, 0x89, + 0x99, 0x7e, 0x23, 0x65, 0x71, 0xe2, 0x71, 0x18, 0xac, 0x3b, 0x15, 0x7f, 0x97, 0x3c, 0x31, 0x9d, + 0x98, 0x49, 0x19, 0x03, 0x75, 0xc7, 0xdb, 0x61, 0xcc, 0x7c, 0x3e, 0x01, 0xc3, 0xe2, 0x2e, 0xbf, + 0x5e, 0x84, 0x54, 0xc3, 0xae, 0x9a, 0x24, 0xb4, 0xe8, 0x11, 0xd3, 0x4c, 0xc4, 0xc1, 0xc0, 0xdc, + 0x32, 0xe3, 0x37, 0x3c, 0xe4, 0xc4, 0xb7, 0x15, 0x48, 0xf1, 0x61, 0x7d, 0x1c, 0x92, 0x2d, 0xd3, + 0xdd, 0x21, 0xe2, 0x7a, 0xf3, 0x09, 0x4d, 0x31, 0xc8, 0x77, 0x3c, 0xee, 0xb4, 0x4c, 0x8b, 0x84, + 0x00, 0x1b, 0xc7, 0xdf, 0xb1, 0x5f, 0x1b, 0xc8, 0xac, 0x91, 0xd7, 0x0f, 0xbb, 0xd9, 0x44, 0x96, + 0xeb, 0x70, 0xbf, 0xb2, 0xf1, 0x02, 0x1b, 0xd6, 0xdf, 0x01, 0xa3, 0x6e, 0xdb, 0xac, 0x37, 0x04, + 0xde, 0x24, 0xe1, 0xd5, 0x38, 0xc1, 0x63, 0xce, 0xc2, 0x1d, 0x5c, 0x6e, 0x0d, 0xb9, 0x66, 0x75, + 0x07, 0xd5, 0x7c, 0x50, 0x1f, 0xd9, 0x66, 0x38, 0xca, 0x18, 0x8a, 0x8c, 0xce, 0xb1, 0x99, 0xef, + 0x28, 0x30, 0xca, 0x5f, 0x98, 0x6a, 0x9e, 0xb1, 0x56, 0x00, 0x4c, 0xcb, 0xb2, 0xdd, 0xa0, 0xb9, + 0x3a, 0x43, 0xb9, 0x03, 0x37, 0x97, 0xf3, 0x40, 0x46, 0x40, 0xc0, 0x44, 0x13, 0xc0, 0xa7, 0x74, + 0x35, 0xdb, 0x14, 0x0c, 0xb0, 0x23, 0x1c, 0x72, 0x0e, 0x48, 0x5f, 0xb1, 0x81, 0x0e, 0xe1, 0x37, + 0x2b, 0xfd, 0x30, 0xf4, 0x5e, 0x47, 0xdb, 0x75, 0x8b, 0x6d, 0xcc, 0xd2, 0x2f, 0x7c, 0x23, 0x24, + 0xe9, 0x6d, 0x84, 0xe4, 0xdf, 0x07, 0x63, 0x55, 0xbb, 0x29, 0xab, 0x9b, 0xd7, 0xa4, 0xd7, 0x7c, + 0xe7, 0x11, 0xe5, 0xbd, 0xe0, 0xb7, 0x98, 0x3f, 0x51, 0x94, 0x3f, 0x48, 0xa8, 0x57, 0xd6, 0xf2, + 0x5f, 0x4c, 0x4c, 0x5c, 0xa1, 0xd0, 0x35, 0x3e, 0x53, 0x03, 0x6d, 0x35, 0x50, 0x15, 0x6b, 0x0f, + 0x1f, 0xbb, 0x17, 0x1e, 0xd8, 0xae, 0xbb, 0x3b, 0xbb, 0xd7, 0xe7, 0xaa, 0x76, 0xf3, 0xd4, 0xb6, + 0xbd, 0x6d, 0xfb, 0x47, 0x9f, 0xf8, 0x1b, 0xf9, 0x42, 0x3e, 0xb1, 0xe3, 0xcf, 0x7e, 0x6f, 0x74, + 0x22, 0xf2, 0xac, 0x34, 0x5b, 0x86, 0x31, 0xc6, 0x5c, 0x21, 0xe7, 0x2f, 0xf4, 0x2d, 0x42, 0xdf, + 0x77, 0x0f, 0x2b, 0xfd, 0xe5, 0xef, 0x93, 0xe5, 0xda, 0x18, 0x65, 0x50, 0x4c, 0xa3, 0x2f, 0x1a, + 0x59, 0x03, 0x8e, 0x08, 0xf2, 0x68, 0x6a, 0xa2, 0x76, 0x84, 0xc4, 0x6f, 0x31, 0x89, 0x63, 0x01, + 0x89, 0xeb, 0x0c, 0x9a, 0x2d, 0xc0, 0xd0, 0x41, 0x64, 0xfd, 0x1d, 0x93, 0x35, 0x88, 0x82, 0x42, + 0xae, 0xc0, 0x08, 0x11, 0x52, 0xdd, 0x75, 0x5c, 0xbb, 0x49, 0xea, 0xde, 0xfe, 0x62, 0xfe, 0xfe, + 0xfb, 0x34, 0x57, 0x86, 0x31, 0xac, 0xe0, 0xa1, 0xb2, 0x59, 0x20, 0x47, 0x4e, 0x35, 0x54, 0x6d, + 0x44, 0x48, 0xb8, 0xc1, 0x14, 0xf1, 0xf8, 0xb3, 0xef, 0x81, 0xc3, 0xf8, 0x33, 0x29, 0x4b, 0x41, + 0x4d, 0xa2, 0x37, 0xbc, 0xd2, 0xdf, 0xf9, 0x20, 0x4d, 0xc7, 0x31, 0x4f, 0x40, 0x40, 0xa7, 0x80, + 0x17, 0xb7, 0x91, 0xeb, 0xa2, 0xb6, 0x53, 0x31, 0x1b, 0x61, 0xea, 0x05, 0x76, 0x0c, 0xd2, 0x9f, + 0x78, 0x55, 0xf4, 0xe2, 0x15, 0x8a, 0xcc, 0x35, 0x1a, 0xd9, 0x4d, 0x38, 0x1a, 0x12, 0x15, 0x31, + 0x64, 0x7e, 0x92, 0xc9, 0x3c, 0xdc, 0x11, 0x19, 0x58, 0xec, 0x1a, 0xf0, 0x71, 0xcf, 0x97, 0x31, + 0x64, 0xfe, 0x3e, 0x93, 0xa9, 0x33, 0x2c, 0x77, 0x29, 0x96, 0x78, 0x15, 0x46, 0x9f, 0x44, 0xed, + 0xeb, 0xb6, 0xc3, 0x76, 0x69, 0x62, 0x88, 0xfb, 0x14, 0x13, 0x37, 0xc2, 0x80, 0x64, 0xdb, 0x06, + 0xcb, 0xba, 0x08, 0xa9, 0x2d, 0xb3, 0x8a, 0x62, 0x88, 0xf8, 0x34, 0x13, 0x71, 0x08, 0xf3, 0x63, + 0x68, 0x0e, 0x06, 0xb7, 0x6d, 0xb6, 0x32, 0x45, 0xc3, 0x9f, 0x63, 0xf0, 0x01, 0x8e, 0x61, 0x22, + 0x5a, 0x76, 0x6b, 0xb7, 0x81, 0x97, 0xad, 0x68, 0x11, 0x9f, 0xe1, 0x22, 0x38, 0x86, 0x89, 0x38, + 0x80, 0x59, 0x9f, 0xe7, 0x22, 0x9c, 0x80, 0x3d, 0x1f, 0x86, 0x01, 0xdb, 0x6a, 0xec, 0xd9, 0x56, + 0x1c, 0x25, 0x3e, 0xcb, 0x24, 0x00, 0x83, 0x60, 0x01, 0x97, 0xa0, 0x3f, 0xae, 0x23, 0x3e, 0xf7, + 0x2a, 0x4f, 0x0f, 0xee, 0x81, 0x2b, 0x30, 0xc2, 0x0b, 0x54, 0xdd, 0xb6, 0x62, 0x88, 0xf8, 0x23, + 0x26, 0x62, 0x38, 0x00, 0x63, 0xd3, 0x70, 0x91, 0xe3, 0x6e, 0xa3, 0x38, 0x42, 0x3e, 0xcf, 0xa7, + 0xc1, 0x20, 0xcc, 0x94, 0xd7, 0x91, 0x55, 0xdd, 0x89, 0x27, 0xe1, 0x05, 0x6e, 0x4a, 0x8e, 0xc1, + 0x22, 0x0a, 0x30, 0xd4, 0x34, 0xdb, 0xce, 0x8e, 0xd9, 0x88, 0xe5, 0x8e, 0x2f, 0x30, 0x19, 0x83, + 0x1e, 0x88, 0x59, 0x64, 0xd7, 0x3a, 0x88, 0x98, 0x2f, 0x72, 0x8b, 0x04, 0x60, 0x2c, 0xf5, 0x1c, + 0x97, 0x6c, 0x69, 0x1d, 0x44, 0xda, 0x1f, 0xf3, 0xd4, 0xa3, 0xd8, 0x95, 0xa0, 0xc4, 0x4b, 0xd0, + 0xef, 0xd4, 0x9f, 0x89, 0x25, 0xe6, 0x4f, 0xb8, 0xa7, 0x09, 0x00, 0x83, 0xaf, 0xc1, 0x1d, 0xa1, + 0xcb, 0x44, 0x0c, 0x61, 0x7f, 0xca, 0x84, 0x8d, 0x87, 0x2c, 0x15, 0xac, 0x24, 0x1c, 0x54, 0xe4, + 0x9f, 0xf1, 0x92, 0x80, 0x24, 0x59, 0x6b, 0xf8, 0x5d, 0xc1, 0x31, 0xb7, 0x0e, 0x66, 0xb5, 0x3f, + 0xe7, 0x56, 0xa3, 0x58, 0xc1, 0x6a, 0x1b, 0x30, 0xce, 0x24, 0x1e, 0xcc, 0xaf, 0x5f, 0xe2, 0x85, + 0x95, 0xa2, 0x37, 0x45, 0xef, 0xbe, 0x0f, 0x26, 0x3c, 0x73, 0xf2, 0xa6, 0xd4, 0xa9, 0x34, 0xcd, + 0x56, 0x0c, 0xc9, 0x5f, 0x66, 0x92, 0x79, 0xc5, 0xf7, 0xba, 0x5a, 0x67, 0xc5, 0x6c, 0x61, 0xe1, + 0x8f, 0x41, 0x9a, 0x0b, 0xdf, 0xb5, 0xda, 0xa8, 0x6a, 0x6f, 0x5b, 0xf5, 0x67, 0x50, 0x2d, 0x86, + 0xe8, 0xbf, 0x90, 0x5c, 0xb5, 0x19, 0x80, 0x63, 0xc9, 0x4b, 0xa0, 0x79, 0xbd, 0x4a, 0xa5, 0xde, + 0x6c, 0xd9, 0x6d, 0x37, 0x42, 0xe2, 0x57, 0xb8, 0xa7, 0x3c, 0xdc, 0x12, 0x81, 0x65, 0x4b, 0x30, + 0x4c, 0xbe, 0xc6, 0x0d, 0xc9, 0xaf, 0x32, 0x41, 0x43, 0x3e, 0x8a, 0x15, 0x8e, 0xaa, 0xdd, 0x6c, + 0x99, 0xed, 0x38, 0xf5, 0xef, 0x2f, 0x79, 0xe1, 0x60, 0x10, 0x56, 0x38, 0xdc, 0xbd, 0x16, 0xc2, + 0xab, 0x7d, 0x0c, 0x09, 0x5f, 0xe3, 0x85, 0x83, 0x63, 0x98, 0x08, 0xde, 0x30, 0xc4, 0x10, 0xf1, + 0x57, 0x5c, 0x04, 0xc7, 0x60, 0x11, 0xef, 0xf6, 0x17, 0xda, 0x36, 0xda, 0xae, 0x3b, 0x6e, 0x9b, + 0xb6, 0xc2, 0xfb, 0x8b, 0xfa, 0xfa, 0xab, 0x62, 0x13, 0x66, 0x04, 0xa0, 0xd9, 0xab, 0x30, 0x22, + 0xb5, 0x18, 0x7a, 0xd4, 0xfd, 0x95, 0xf4, 0x2f, 0xbe, 0xc6, 0x8a, 0x91, 0xd8, 0x61, 0x64, 0x97, + 0xb1, 0xdf, 0xc5, 0x3e, 0x20, 0x5a, 0xd8, 0x07, 0x5f, 0xf3, 0x5c, 0x2f, 0xb4, 0x01, 0xd9, 0xcb, + 0x30, 0x24, 0xf4, 0x00, 0xd1, 0xa2, 0x7e, 0x89, 0x89, 0x1a, 0x0c, 0xb6, 0x00, 0xd9, 0xb3, 0x90, + 0xc4, 0xeb, 0x79, 0x34, 0xfc, 0x97, 0x19, 0x9c, 0xb0, 0x67, 0x1f, 0x84, 0x14, 0x5f, 0xc7, 0xa3, + 0xa1, 0x1f, 0x62, 0x50, 0x0f, 0x82, 0xe1, 0x7c, 0x0d, 0x8f, 0x86, 0xff, 0x0a, 0x87, 0x73, 0x08, + 0x86, 0xc7, 0x37, 0xe1, 0x8b, 0xbf, 0x96, 0x64, 0x75, 0x98, 0xdb, 0xee, 0x12, 0x1c, 0x62, 0x8b, + 0x77, 0x34, 0xfa, 0x23, 0xec, 0xe1, 0x1c, 0x91, 0x3d, 0x0f, 0xbd, 0x31, 0x0d, 0xfe, 0xeb, 0x0c, + 0x4a, 0xf9, 0xb3, 0x05, 0x18, 0x08, 0x2c, 0xd8, 0xd1, 0xf0, 0xdf, 0x60, 0xf0, 0x20, 0x0a, 0xab, + 0xce, 0x16, 0xec, 0x68, 0x01, 0xbf, 0xc9, 0x55, 0x67, 0x08, 0x6c, 0x36, 0xbe, 0x56, 0x47, 0xa3, + 0x7f, 0x8b, 0x5b, 0x9d, 0x43, 0xb2, 0x0f, 0x43, 0xbf, 0x57, 0x7f, 0xa3, 0xf1, 0xbf, 0xcd, 0xf0, + 0x3e, 0x06, 0x5b, 0x20, 0x50, 0xff, 0xa3, 0x45, 0xfc, 0x0e, 0xb7, 0x40, 0x00, 0x85, 0xd3, 0x48, + 0x5e, 0xd3, 0xa3, 0x25, 0x7d, 0x94, 0xa7, 0x91, 0xb4, 0xa4, 0x63, 0x6f, 0x92, 0x32, 0x18, 0x2d, + 0xe2, 0x77, 0xb9, 0x37, 0x09, 0x3f, 0x56, 0x43, 0x5e, 0x24, 0xa3, 0x65, 0x7c, 0x8c, 0xab, 0x21, + 0xad, 0x91, 0xd9, 0x35, 0xd0, 0x3b, 0x17, 0xc8, 0x68, 0x79, 0x1f, 0x67, 0xf2, 0x46, 0x3b, 0xd6, + 0xc7, 0xec, 0xa3, 0x30, 0x1e, 0xbe, 0x38, 0x46, 0x4b, 0xfd, 0xc4, 0x6b, 0xd2, 0xeb, 0x4c, 0x70, + 0x6d, 0xcc, 0x6e, 0xf8, 0x55, 0x36, 0xb8, 0x30, 0x46, 0x8b, 0xfd, 0xe4, 0x6b, 0x62, 0xa1, 0x0d, + 0xae, 0x8b, 0xd9, 0x1c, 0x80, 0xbf, 0x26, 0x45, 0xcb, 0xfa, 0x14, 0x93, 0x15, 0x00, 0xe1, 0xd4, + 0x60, 0x4b, 0x52, 0x34, 0xfe, 0xd3, 0x3c, 0x35, 0x18, 0x02, 0xa7, 0x06, 0x5f, 0x8d, 0xa2, 0xd1, + 0xcf, 0xf1, 0xd4, 0xe0, 0x90, 0xec, 0x25, 0x48, 0x59, 0xbb, 0x8d, 0x06, 0x8e, 0x2d, 0x7d, 0xff, + 0x2b, 0x59, 0xe9, 0x7f, 0x7d, 0x9d, 0x81, 0x39, 0x20, 0x7b, 0x16, 0x7a, 0x51, 0xf3, 0x3a, 0xaa, + 0x45, 0x21, 0xff, 0xed, 0x75, 0x5e, 0x4f, 0x30, 0x77, 0xf6, 0x61, 0x00, 0xfa, 0x32, 0x4d, 0x0e, + 0x8a, 0x22, 0xb0, 0xff, 0xfe, 0x3a, 0xbb, 0x2c, 0xe1, 0x43, 0x7c, 0x01, 0xf4, 0xea, 0xc5, 0xfe, + 0x02, 0x5e, 0x15, 0x05, 0x90, 0x17, 0xf0, 0x8b, 0x70, 0xe8, 0x71, 0xc7, 0xb6, 0x5c, 0x73, 0x3b, + 0x0a, 0xfd, 0x1f, 0x0c, 0xcd, 0xf9, 0xb1, 0xc1, 0x9a, 0x76, 0x1b, 0xb9, 0xe6, 0xb6, 0x13, 0x85, + 0xfd, 0x4f, 0x86, 0xf5, 0x00, 0x18, 0x5c, 0x35, 0x1d, 0x37, 0xce, 0xbc, 0x7f, 0xc8, 0xc1, 0x1c, + 0x80, 0x95, 0xc6, 0x9f, 0x9f, 0x40, 0x7b, 0x51, 0xd8, 0x1f, 0x71, 0xa5, 0x19, 0x7f, 0xf6, 0x41, + 0xe8, 0xc7, 0x1f, 0xe9, 0x0d, 0xa8, 0x08, 0xf0, 0x7f, 0x31, 0xb0, 0x8f, 0xc0, 0x4f, 0x76, 0xdc, + 0x9a, 0x5b, 0x8f, 0x36, 0xf6, 0x8f, 0x99, 0xa7, 0x39, 0x7f, 0x36, 0x07, 0x03, 0x8e, 0x5b, 0xab, + 0xed, 0xb2, 0x8e, 0x26, 0x02, 0xfe, 0xdf, 0xaf, 0x7b, 0x2f, 0xb9, 0x1e, 0x26, 0x5f, 0x0a, 0xdf, + 0xaf, 0x83, 0x2b, 0xf6, 0x15, 0x9b, 0xee, 0xd4, 0xbd, 0x37, 0x13, 0xbd, 0xe5, 0x06, 0xdf, 0x6e, + 0xc0, 0x74, 0xd5, 0x6e, 0x5e, 0xb7, 0x9d, 0x53, 0x81, 0x52, 0x75, 0xca, 0xdd, 0x41, 0x78, 0x95, + 0x61, 0x9b, 0x71, 0x49, 0xfc, 0x79, 0xe2, 0x60, 0x3b, 0x78, 0xe4, 0x7c, 0xb6, 0x5c, 0xc7, 0x93, + 0x28, 0x93, 0x2d, 0x72, 0xfd, 0x18, 0xf4, 0x91, 0x69, 0x9d, 0x26, 0xc7, 0x50, 0x4a, 0x3e, 0x79, + 0xe3, 0xe5, 0xa9, 0x1e, 0x83, 0x8d, 0x79, 0xd4, 0x05, 0xb2, 0x87, 0x99, 0x10, 0xa8, 0x0b, 0x1e, + 0xf5, 0x0c, 0xdd, 0xc6, 0x14, 0xa8, 0x67, 0x3c, 0xea, 0x22, 0xd9, 0xd0, 0x54, 0x05, 0xea, 0xa2, + 0x47, 0x3d, 0x4b, 0x36, 0xed, 0x87, 0x04, 0xea, 0x59, 0x8f, 0x7a, 0x8e, 0x6c, 0xd5, 0x27, 0x05, + 0xea, 0x39, 0x8f, 0x7a, 0x9e, 0xec, 0xd2, 0x8f, 0x0a, 0xd4, 0xf3, 0x1e, 0xf5, 0x02, 0xd9, 0x9d, + 0xd7, 0x05, 0xea, 0x05, 0x8f, 0x7a, 0x91, 0x5c, 0x7d, 0x39, 0x24, 0x50, 0x2f, 0xea, 0x93, 0x70, + 0x88, 0xce, 0x7c, 0x9e, 0x1c, 0xe5, 0x8e, 0x30, 0x32, 0x1f, 0xf4, 0xe9, 0xa7, 0xc9, 0x35, 0x97, + 0x3e, 0x91, 0x7e, 0xda, 0xa7, 0x2f, 0x90, 0x1b, 0xf7, 0x9a, 0x48, 0x5f, 0xf0, 0xe9, 0x67, 0xd2, + 0x43, 0xe4, 0xaa, 0x8f, 0x40, 0x3f, 0xe3, 0xd3, 0x17, 0xd3, 0xc3, 0x38, 0xb2, 0x45, 0xfa, 0xa2, + 0x4f, 0x3f, 0x9b, 0x1e, 0x99, 0x56, 0x66, 0x06, 0x45, 0xfa, 0xd9, 0xcc, 0x07, 0x88, 0x7b, 0x2d, + 0xdf, 0xbd, 0xe3, 0xa2, 0x7b, 0x3d, 0xc7, 0x8e, 0x8b, 0x8e, 0xf5, 0x5c, 0x3a, 0x2e, 0xba, 0xd4, + 0x73, 0xe6, 0xb8, 0xe8, 0x4c, 0xcf, 0x8d, 0xe3, 0xa2, 0x1b, 0x3d, 0x07, 0x8e, 0x8b, 0x0e, 0xf4, + 0x5c, 0x37, 0x2e, 0xba, 0xce, 0x73, 0xda, 0xb8, 0xe8, 0x34, 0xcf, 0x5d, 0xe3, 0xa2, 0xbb, 0x3c, + 0x47, 0xa5, 0x25, 0x47, 0xf9, 0x2e, 0x4a, 0x4b, 0x2e, 0xf2, 0x9d, 0x93, 0x96, 0x9c, 0xe3, 0xbb, + 0x25, 0x2d, 0xb9, 0xc5, 0x77, 0x48, 0x5a, 0x72, 0x88, 0xef, 0x8a, 0xb4, 0xe4, 0x0a, 0xdf, 0x09, + 0x2c, 0xc7, 0x0c, 0xd4, 0x0a, 0xc9, 0x31, 0x75, 0xdf, 0x1c, 0x53, 0xf7, 0xcd, 0x31, 0x75, 0xdf, + 0x1c, 0x53, 0xf7, 0xcd, 0x31, 0x75, 0xdf, 0x1c, 0x53, 0xf7, 0xcd, 0x31, 0x75, 0xdf, 0x1c, 0x53, + 0xf7, 0xcd, 0x31, 0x75, 0xff, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, + 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0xed, 0x9a, 0x63, 0xbe, 0x7b, 0xc7, 0x45, 0xf7, 0x86, + 0xe6, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, 0x39, 0xa6, 0x76, 0xc9, 0x31, 0xb5, 0x4b, 0x8e, 0xa9, + 0x5d, 0x72, 0x4c, 0xed, 0x92, 0x63, 0x6a, 0x97, 0x1c, 0x53, 0xbb, 0xe5, 0x98, 0xda, 0x35, 0xc7, + 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, 0xb5, 0x6b, 0x8e, 0xa9, 0x5d, 0x73, 0x4c, 0x0d, 0xe6, + 0xd8, 0xdf, 0xa8, 0xa0, 0xd3, 0x1c, 0x5b, 0x23, 0x97, 0x81, 0x98, 0x2b, 0x26, 0xa5, 0x4c, 0xeb, + 0xc3, 0xae, 0xd3, 0x7c, 0x97, 0x4c, 0x4a, 0xb9, 0x26, 0xd2, 0x17, 0x3c, 0x3a, 0xcf, 0x36, 0x91, + 0x7e, 0xc6, 0xa3, 0xf3, 0x7c, 0x13, 0xe9, 0x8b, 0x1e, 0x9d, 0x67, 0x9c, 0x48, 0x3f, 0xeb, 0xd1, + 0x79, 0xce, 0x89, 0xf4, 0x73, 0x1e, 0x9d, 0x67, 0x9d, 0x48, 0x3f, 0xef, 0xd1, 0x79, 0xde, 0x89, + 0xf4, 0x0b, 0x1e, 0x9d, 0x67, 0x9e, 0x48, 0xbf, 0xa8, 0x4f, 0xcb, 0xb9, 0xc7, 0x19, 0x3c, 0xd7, + 0x4e, 0xcb, 0xd9, 0x27, 0x71, 0x9c, 0xf6, 0x39, 0x78, 0xfe, 0x49, 0x1c, 0x0b, 0x3e, 0x07, 0xcf, + 0x40, 0x89, 0xe3, 0x4c, 0xe6, 0xc3, 0xc4, 0x7d, 0x96, 0xec, 0xbe, 0x09, 0xc9, 0x7d, 0x89, 0x80, + 0xeb, 0x26, 0x24, 0xd7, 0x25, 0x02, 0x6e, 0x9b, 0x90, 0xdc, 0x96, 0x08, 0xb8, 0x6c, 0x42, 0x72, + 0x59, 0x22, 0xe0, 0xae, 0x09, 0xc9, 0x5d, 0x89, 0x80, 0xab, 0x26, 0x24, 0x57, 0x25, 0x02, 0x6e, + 0x9a, 0x90, 0xdc, 0x94, 0x08, 0xb8, 0x68, 0x42, 0x72, 0x51, 0x22, 0xe0, 0x9e, 0x09, 0xc9, 0x3d, + 0x89, 0x80, 0x6b, 0x8e, 0xc9, 0xae, 0x49, 0x04, 0xdd, 0x72, 0x4c, 0x76, 0x4b, 0x22, 0xe8, 0x92, + 0x63, 0xb2, 0x4b, 0x12, 0x41, 0x77, 0x1c, 0x93, 0xdd, 0x91, 0x08, 0xba, 0xe2, 0xa7, 0x09, 0xde, + 0x11, 0xae, 0xbb, 0xed, 0xdd, 0xaa, 0x7b, 0x5b, 0x1d, 0xe1, 0xbc, 0xd0, 0x3e, 0x0c, 0x2c, 0xe8, + 0x73, 0xa4, 0x61, 0x0d, 0x76, 0x9c, 0xd2, 0x0a, 0x36, 0x2f, 0x34, 0x16, 0x01, 0x84, 0x15, 0x8e, + 0x58, 0xbc, 0xad, 0xde, 0x70, 0x5e, 0x68, 0x33, 0xa2, 0xf5, 0xbb, 0xf0, 0x96, 0x77, 0x6c, 0x2f, + 0x26, 0x78, 0xc7, 0xc6, 0xcc, 0x7f, 0xd0, 0x8e, 0x6d, 0x36, 0xda, 0xe4, 0x9e, 0xb1, 0x67, 0xa3, + 0x8d, 0xdd, 0xb1, 0xea, 0xc4, 0xed, 0xe0, 0x66, 0xa3, 0x4d, 0xeb, 0x19, 0xf5, 0xcd, 0xed, 0xb7, + 0x58, 0x04, 0x1b, 0xa8, 0x15, 0x12, 0xc1, 0x07, 0xed, 0xb7, 0xe6, 0x85, 0x52, 0x72, 0xd0, 0x08, + 0x56, 0x0f, 0x1c, 0xc1, 0x07, 0xed, 0xbc, 0xe6, 0x85, 0xf2, 0x72, 0xe0, 0x08, 0x7e, 0x0b, 0xfa, + 0x21, 0x16, 0xc1, 0xbe, 0xf9, 0x0f, 0xda, 0x0f, 0xcd, 0x46, 0x9b, 0x3c, 0x34, 0x82, 0xd5, 0x03, + 0x44, 0x70, 0x9c, 0xfe, 0x68, 0x36, 0xda, 0xb4, 0xe1, 0x11, 0x7c, 0xdb, 0xdd, 0xcc, 0x67, 0x14, + 0x18, 0x2d, 0xd7, 0x6b, 0xa5, 0xe6, 0x75, 0x54, 0xab, 0xa1, 0x1a, 0xb3, 0xe3, 0xbc, 0x50, 0x09, + 0xba, 0xb8, 0xfa, 0xa5, 0x97, 0xa7, 0x7c, 0x0b, 0x9f, 0x85, 0x14, 0xb5, 0xe9, 0xfc, 0x7c, 0xfa, + 0x86, 0x12, 0x51, 0xe1, 0x3c, 0x56, 0xfd, 0x38, 0x87, 0x9d, 0x9e, 0x4f, 0xff, 0xa3, 0x12, 0xa8, + 0x72, 0xde, 0x70, 0xe6, 0xa3, 0x44, 0x43, 0xeb, 0xb6, 0x35, 0x3c, 0x15, 0x4b, 0xc3, 0x80, 0x6e, + 0x77, 0x76, 0xe8, 0x16, 0xd0, 0x6a, 0x17, 0x46, 0xca, 0xf5, 0x5a, 0x99, 0xfc, 0xad, 0x77, 0x1c, + 0x95, 0x28, 0x8f, 0x54, 0x0f, 0xe6, 0x85, 0xb0, 0x0c, 0x22, 0xbc, 0x90, 0x16, 0x6b, 0x44, 0xa6, + 0x8e, 0x1f, 0x6b, 0x09, 0x8f, 0x9d, 0xed, 0xf6, 0x58, 0xbf, 0xb2, 0x7b, 0x0f, 0x9c, 0xed, 0xf6, + 0x40, 0x3f, 0x87, 0xbc, 0x47, 0x3d, 0xcd, 0x17, 0x67, 0x7a, 0x25, 0x47, 0x3f, 0x06, 0x89, 0x25, + 0x7a, 0x63, 0x78, 0x30, 0x3f, 0x88, 0x95, 0xfa, 0xee, 0xcb, 0x53, 0xc9, 0xcd, 0xdd, 0x7a, 0xcd, + 0x48, 0x2c, 0xd5, 0xf4, 0xab, 0xd0, 0xfb, 0x1e, 0xf6, 0x17, 0x87, 0x98, 0x61, 0x91, 0x31, 0xdc, + 0xdf, 0x75, 0x8f, 0x08, 0x3f, 0xf8, 0x14, 0xdd, 0x6c, 0x9c, 0xdb, 0xac, 0x5b, 0xee, 0xe9, 0x85, + 0x0b, 0x06, 0x15, 0x91, 0xf9, 0xbf, 0x00, 0xf4, 0x99, 0x45, 0xd3, 0xd9, 0xd1, 0xcb, 0x5c, 0x32, + 0x7d, 0xf4, 0x85, 0xef, 0xbe, 0x3c, 0xb5, 0x18, 0x47, 0xea, 0x03, 0x35, 0xd3, 0xd9, 0x79, 0xc0, + 0xdd, 0x6b, 0xa1, 0xb9, 0xfc, 0x9e, 0x8b, 0x1c, 0x2e, 0xbd, 0xc5, 0x57, 0x3d, 0x36, 0xaf, 0x74, + 0x60, 0x5e, 0x29, 0x61, 0x4e, 0x97, 0xc5, 0x39, 0xcd, 0xbf, 0xd1, 0xf9, 0x3c, 0xcd, 0x17, 0x09, + 0xc9, 0x92, 0x6a, 0x94, 0x25, 0xd5, 0xdb, 0xb5, 0x64, 0x8b, 0xd7, 0x47, 0x69, 0xae, 0xea, 0x7e, + 0x73, 0x55, 0x6f, 0x67, 0xae, 0xff, 0x43, 0xb3, 0xd5, 0xcb, 0xa7, 0x4d, 0x8b, 0xde, 0x56, 0xfc, + 0xf9, 0xda, 0x0b, 0x7a, 0x53, 0xbb, 0x80, 0x6c, 0xf2, 0xc6, 0xf3, 0x53, 0x4a, 0xe6, 0x33, 0x09, + 0x3e, 0x73, 0x9a, 0x48, 0x6f, 0x6c, 0xe6, 0x3f, 0x2f, 0x3d, 0xd5, 0x5b, 0x61, 0xa1, 0xe7, 0x14, + 0x18, 0xef, 0xa8, 0xe4, 0xd4, 0x4c, 0x6f, 0x6e, 0x39, 0xb7, 0x0e, 0x5a, 0xce, 0x99, 0x82, 0x5f, + 0x55, 0xe0, 0xb0, 0x54, 0x5e, 0xa9, 0x7a, 0xa7, 0x24, 0xf5, 0x8e, 0x76, 0x3e, 0x89, 0x30, 0x06, + 0xb4, 0x0b, 0xba, 0x57, 0x02, 0x04, 0x24, 0x7b, 0x7e, 0x5f, 0x94, 0xfc, 0x7e, 0xcc, 0x03, 0x84, + 0x98, 0x8b, 0x47, 0x00, 0x53, 0xdb, 0x86, 0xe4, 0x46, 0x1b, 0x21, 0x7d, 0x12, 0x12, 0xab, 0x6d, + 0xa6, 0xe1, 0x30, 0xc5, 0xaf, 0xb6, 0xf3, 0x6d, 0xd3, 0xaa, 0xee, 0x18, 0x89, 0xd5, 0xb6, 0x7e, + 0x1c, 0xd4, 0x1c, 0xfb, 0x6b, 0xe7, 0x81, 0x85, 0x11, 0xca, 0x90, 0xb3, 0x6a, 0x8c, 0x03, 0xd3, + 0xf4, 0x49, 0x48, 0x2e, 0x23, 0x73, 0x8b, 0x29, 0x01, 0x94, 0x07, 0x8f, 0x18, 0x64, 0x9c, 0x3d, + 0xf0, 0x31, 0x48, 0x71, 0xc1, 0xfa, 0x09, 0x8c, 0xd8, 0x72, 0xd9, 0x63, 0x19, 0x02, 0xab, 0xc3, + 0x56, 0x2e, 0x42, 0xd5, 0x4f, 0x42, 0xaf, 0x51, 0xdf, 0xde, 0x71, 0xd9, 0xc3, 0x3b, 0xd9, 0x28, + 0x39, 0x73, 0x0d, 0xfa, 0x3d, 0x8d, 0xde, 0x64, 0xd1, 0x45, 0x3a, 0x35, 0x7d, 0x22, 0xb8, 0x9e, + 0xf0, 0x7d, 0x4b, 0x3a, 0xa4, 0x4f, 0x43, 0x6a, 0xdd, 0x6d, 0xfb, 0x45, 0x9f, 0x77, 0xa4, 0xde, + 0x68, 0xe6, 0x03, 0x0a, 0xa4, 0x8a, 0x08, 0xb5, 0x88, 0xc1, 0xef, 0x81, 0x64, 0xd1, 0x7e, 0xca, + 0x62, 0x0a, 0x8e, 0x32, 0x8b, 0x62, 0x32, 0xb3, 0x29, 0x21, 0xeb, 0xf7, 0x04, 0xed, 0x3e, 0xe6, + 0xd9, 0x3d, 0xc0, 0x47, 0x6c, 0x9f, 0x11, 0x6c, 0xcf, 0x1c, 0x88, 0x99, 0x3a, 0xec, 0x7f, 0x1e, + 0x06, 0x02, 0x4f, 0xd1, 0x67, 0x98, 0x1a, 0x09, 0x19, 0x18, 0xb4, 0x15, 0xe6, 0xc8, 0x20, 0x18, + 0x12, 0x1e, 0x8c, 0xa1, 0x01, 0x13, 0x77, 0x81, 0x12, 0x33, 0xcf, 0x8a, 0x66, 0x0e, 0x67, 0x65, + 0xa6, 0x9e, 0xa7, 0x36, 0x22, 0xe6, 0x3e, 0x41, 0x83, 0xb3, 0xbb, 0x13, 0xf1, 0xe7, 0x4c, 0x2f, + 0xa8, 0xe5, 0x7a, 0x23, 0xf3, 0x20, 0x00, 0x4d, 0xf9, 0x92, 0xb5, 0xdb, 0x94, 0xb2, 0x6e, 0x98, + 0x1b, 0x78, 0x63, 0x07, 0x6d, 0x20, 0x87, 0xb0, 0x88, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, + 0xe0, 0xef, 0x8b, 0xc4, 0x87, 0x76, 0x62, 0x98, 0x35, 0x4d, 0x59, 0xaf, 0x21, 0x37, 0x67, 0xd9, + 0xee, 0x0e, 0x6a, 0x4b, 0x88, 0x05, 0xfd, 0x8c, 0x90, 0xb0, 0xc3, 0x0b, 0x77, 0x7a, 0x88, 0xae, + 0xa0, 0x33, 0x99, 0x2f, 0x11, 0x05, 0x71, 0x2b, 0xd0, 0x31, 0x41, 0x35, 0xc6, 0x04, 0xf5, 0x73, + 0x42, 0xff, 0xb6, 0x8f, 0x9a, 0xd2, 0xab, 0xe5, 0x45, 0xe1, 0x3d, 0x67, 0x7f, 0x65, 0xc5, 0x77, + 0x4c, 0x6e, 0x53, 0xae, 0xf2, 0x7d, 0x91, 0x2a, 0x77, 0xe9, 0x6e, 0x0f, 0x6a, 0x53, 0x35, 0xae, + 0x4d, 0xbf, 0xe1, 0x75, 0x1c, 0xf4, 0x27, 0x25, 0xc8, 0x8f, 0xb1, 0xe8, 0xf7, 0x47, 0xfa, 0x3e, + 0xab, 0x14, 0x3c, 0x55, 0x17, 0xe3, 0xba, 0x3f, 0x9b, 0xc8, 0xe7, 0x3d, 0x75, 0xcf, 0x1f, 0x20, + 0x04, 0xb2, 0x89, 0x42, 0xc1, 0x2b, 0xdb, 0xa9, 0x0f, 0x3f, 0x3f, 0xa5, 0xbc, 0xf0, 0xfc, 0x54, + 0x4f, 0xe6, 0x0b, 0x0a, 0x8c, 0x32, 0xce, 0x40, 0xe0, 0x3e, 0x20, 0x29, 0x7f, 0x84, 0xd7, 0x8c, + 0x30, 0x0b, 0xbc, 0x6d, 0xc1, 0xfb, 0x2d, 0x05, 0xd2, 0x1d, 0xba, 0x72, 0x7b, 0xcf, 0xc7, 0x52, + 0x39, 0xab, 0x94, 0x7e, 0xf6, 0x36, 0xbf, 0x06, 0xbd, 0x1b, 0xf5, 0x26, 0x6a, 0xe3, 0x95, 0x00, + 0x7f, 0xa0, 0x2a, 0xf3, 0xc3, 0x1c, 0x3a, 0xc4, 0x69, 0x54, 0x39, 0x81, 0xb6, 0xa0, 0xa7, 0x21, + 0x59, 0x34, 0x5d, 0x93, 0x68, 0x30, 0xe8, 0xd5, 0x57, 0xd3, 0x35, 0x33, 0x67, 0x60, 0x70, 0x65, + 0x8f, 0xdc, 0xa7, 0xa9, 0x91, 0xbb, 0x22, 0x62, 0xf7, 0xc7, 0xfb, 0xd5, 0xd3, 0xb3, 0xbd, 0xa9, + 0x9a, 0x76, 0x43, 0xc9, 0x26, 0x89, 0x3e, 0x4f, 0xc2, 0xf0, 0x2a, 0x56, 0x9b, 0xe0, 0x04, 0x18, + 0x7d, 0xba, 0xea, 0x4d, 0x5e, 0x6a, 0xca, 0x54, 0xbf, 0x29, 0x9b, 0x06, 0x65, 0x45, 0x6c, 0x9d, + 0x82, 0x7a, 0x18, 0xca, 0xca, 0x6c, 0x32, 0x35, 0xac, 0x8d, 0xce, 0x26, 0x53, 0xa0, 0x0d, 0xb1, + 0xe7, 0xfe, 0x83, 0x0a, 0x1a, 0x6d, 0x75, 0x8a, 0x68, 0xab, 0x6e, 0xd5, 0xdd, 0xce, 0x7e, 0xd5, + 0xd3, 0x58, 0x7f, 0x18, 0xfa, 0xb1, 0x49, 0x2f, 0xb3, 0xdf, 0x64, 0xc3, 0xa6, 0x3f, 0xce, 0x5a, + 0x14, 0x49, 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0xcb, 0xa0, 0x96, 0xcb, 0x2b, 0x6c, 0x71, + 0x5b, 0xdc, 0x17, 0xca, 0xae, 0xe3, 0xb0, 0x6f, 0x6c, 0xcc, 0xd9, 0x36, 0xb0, 0x00, 0x7d, 0x11, + 0x12, 0xe5, 0x15, 0xd6, 0xf0, 0x9e, 0x88, 0x23, 0xc6, 0x48, 0x94, 0x57, 0x26, 0xfe, 0x56, 0x81, + 0x21, 0x61, 0x54, 0xcf, 0xc0, 0x20, 0x1d, 0x08, 0x4c, 0xb7, 0xcf, 0x10, 0xc6, 0xb8, 0xce, 0x89, + 0xdb, 0xd4, 0x79, 0x22, 0x07, 0x23, 0xd2, 0xb8, 0x3e, 0x07, 0x7a, 0x70, 0x88, 0x29, 0x41, 0x7f, + 0x0f, 0x2a, 0x84, 0x92, 0xb9, 0x0b, 0xc0, 0xb7, 0xab, 0xf7, 0x33, 0x46, 0xe5, 0xd2, 0xfa, 0x46, + 0xa9, 0xa8, 0x29, 0x99, 0xaf, 0x29, 0x30, 0xc0, 0xda, 0xd6, 0xaa, 0xdd, 0x42, 0x7a, 0x1e, 0x94, + 0x1c, 0x8b, 0x87, 0x37, 0xa6, 0xb7, 0x92, 0xd3, 0x4f, 0x81, 0x92, 0x8f, 0xef, 0x6a, 0x25, 0xaf, + 0x2f, 0x80, 0x52, 0x60, 0x0e, 0x8e, 0xe7, 0x19, 0xa5, 0x90, 0xf9, 0xb1, 0x0a, 0x63, 0xc1, 0x36, + 0x9a, 0xd7, 0x93, 0xe3, 0xe2, 0x7b, 0x53, 0xb6, 0xff, 0xf4, 0xc2, 0x99, 0xc5, 0x39, 0xfc, 0x8f, + 0x17, 0x92, 0x19, 0xf1, 0x15, 0x2a, 0x0b, 0x1e, 0xcb, 0xe9, 0x6e, 0xf7, 0x44, 0xb2, 0xc9, 0x80, + 0x84, 0x8e, 0x7b, 0x22, 0x02, 0xb5, 0xe3, 0x9e, 0x88, 0x40, 0xed, 0xb8, 0x27, 0x22, 0x50, 0x3b, + 0xce, 0x02, 0x04, 0x6a, 0xc7, 0x3d, 0x11, 0x81, 0xda, 0x71, 0x4f, 0x44, 0xa0, 0x76, 0xde, 0x13, + 0x61, 0xe4, 0xae, 0xf7, 0x44, 0x44, 0x7a, 0xe7, 0x3d, 0x11, 0x91, 0xde, 0x79, 0x4f, 0x24, 0x9b, + 0x74, 0xdb, 0xbb, 0xa8, 0xfb, 0xa9, 0x83, 0x88, 0xdf, 0xef, 0x25, 0xd0, 0xaf, 0xc0, 0xab, 0x30, + 0x42, 0x37, 0x24, 0x0a, 0xb6, 0xe5, 0x9a, 0x75, 0x0b, 0xb5, 0xf5, 0x77, 0xc2, 0x20, 0x1d, 0xa2, + 0xaf, 0x39, 0x61, 0xaf, 0x81, 0x94, 0xce, 0xea, 0xad, 0xc0, 0x9d, 0xf9, 0x69, 0x12, 0xc6, 0xe9, + 0x40, 0xd9, 0x6c, 0x22, 0xe1, 0x96, 0xd1, 0x49, 0xe9, 0x4c, 0x69, 0x18, 0xc3, 0x6f, 0xbd, 0x3c, + 0x45, 0x47, 0x73, 0x5e, 0x34, 0x9d, 0x94, 0x4e, 0x97, 0x44, 0x3e, 0x7f, 0x01, 0x3a, 0x29, 0xdd, + 0x3c, 0x12, 0xf9, 0xbc, 0xf5, 0xc6, 0xe3, 0xe3, 0x77, 0x90, 0x44, 0xbe, 0xa2, 0x17, 0x65, 0x27, + 0xa5, 0xdb, 0x48, 0x22, 0x5f, 0xc9, 0x8b, 0xb7, 0x93, 0xd2, 0xd9, 0x93, 0xc8, 0x77, 0xd9, 0x8b, + 0xbc, 0x93, 0xd2, 0x29, 0x94, 0xc8, 0x77, 0xc5, 0x8b, 0xc1, 0x93, 0xd2, 0x5d, 0x25, 0x91, 0xef, + 0x11, 0x2f, 0x1a, 0x4f, 0x4a, 0xb7, 0x96, 0x44, 0xbe, 0x25, 0x2f, 0x2e, 0x67, 0xe4, 0xfb, 0x4b, + 0x22, 0xe3, 0x55, 0x3f, 0x42, 0x67, 0xe4, 0x9b, 0x4c, 0x22, 0xe7, 0xbb, 0xfc, 0x58, 0x9d, 0x91, + 0xef, 0x34, 0x89, 0x9c, 0xcb, 0x7e, 0xd4, 0xce, 0xc8, 0x67, 0x65, 0x22, 0xe7, 0x8a, 0x1f, 0xbf, + 0x33, 0xf2, 0xa9, 0x99, 0xc8, 0x59, 0xf6, 0x23, 0x79, 0x46, 0x3e, 0x3f, 0x13, 0x39, 0x57, 0xfd, + 0x4d, 0xf4, 0x6f, 0x4a, 0xe1, 0x17, 0xb8, 0x05, 0x95, 0x91, 0xc2, 0x0f, 0x42, 0x42, 0x4f, 0x2a, + 0x64, 0x01, 0x1e, 0x3f, 0xec, 0x32, 0x52, 0xd8, 0x41, 0x48, 0xc8, 0x65, 0xa4, 0x90, 0x83, 0x90, + 0x70, 0xcb, 0x48, 0xe1, 0x06, 0x21, 0xa1, 0x96, 0x91, 0x42, 0x0d, 0x42, 0xc2, 0x2c, 0x23, 0x85, + 0x19, 0x84, 0x84, 0x58, 0x46, 0x0a, 0x31, 0x08, 0x09, 0xaf, 0x8c, 0x14, 0x5e, 0x10, 0x12, 0x5a, + 0x27, 0xe4, 0xd0, 0x82, 0xb0, 0xb0, 0x3a, 0x21, 0x87, 0x15, 0x84, 0x85, 0xd4, 0xdd, 0x72, 0x48, + 0xf5, 0xdf, 0x7a, 0x79, 0xaa, 0x17, 0x0f, 0x05, 0xa2, 0xe9, 0x84, 0x1c, 0x4d, 0x10, 0x16, 0x49, + 0x27, 0xe4, 0x48, 0x82, 0xb0, 0x28, 0x3a, 0x21, 0x47, 0x11, 0x84, 0x45, 0xd0, 0x8b, 0x72, 0x04, + 0xf9, 0x77, 0x7c, 0x32, 0xd2, 0x91, 0x62, 0x54, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, + 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, + 0x20, 0x35, 0x4e, 0x04, 0xa9, 0xb1, 0x22, 0x48, 0xed, 0x16, 0x41, 0x27, 0xe4, 0x1b, 0x0f, 0x10, + 0x56, 0x90, 0x4e, 0xc8, 0x47, 0x9f, 0xd1, 0x21, 0xa4, 0xc6, 0x0a, 0x21, 0xb5, 0x5b, 0x08, 0x7d, + 0x53, 0x85, 0x31, 0x21, 0x84, 0xd8, 0xf9, 0xd0, 0x9b, 0x55, 0x81, 0xce, 0xc5, 0xb8, 0x60, 0x11, + 0x16, 0x53, 0xe7, 0x62, 0x1c, 0x52, 0xef, 0x17, 0x67, 0x9d, 0x55, 0xa8, 0x14, 0xa3, 0x0a, 0x5d, + 0xf6, 0x62, 0xe8, 0x5c, 0x8c, 0x8b, 0x17, 0x9d, 0xb1, 0x77, 0x61, 0xbf, 0x22, 0xf0, 0x48, 0xac, + 0x22, 0xb0, 0x14, 0xab, 0x08, 0x5c, 0xf5, 0x3d, 0xf8, 0xa1, 0x04, 0x1c, 0xf6, 0x3d, 0x48, 0x3f, + 0x91, 0xdf, 0x4c, 0xca, 0x04, 0x8e, 0xa8, 0x74, 0x7e, 0x6c, 0x13, 0x70, 0x63, 0x62, 0xa9, 0xa6, + 0xaf, 0x89, 0x87, 0x55, 0xd9, 0x83, 0x1e, 0xe0, 0x04, 0x3c, 0xce, 0x36, 0x43, 0x4f, 0x80, 0xba, + 0x54, 0x73, 0x48, 0xb5, 0x08, 0x7b, 0x6c, 0xc1, 0xc0, 0x64, 0xdd, 0x80, 0x3e, 0xc2, 0xee, 0x10, + 0xf7, 0xde, 0xce, 0x83, 0x8b, 0x06, 0x93, 0x94, 0x79, 0x51, 0x81, 0x69, 0x21, 0x94, 0xdf, 0x9c, + 0x23, 0x83, 0x4b, 0xb1, 0x8e, 0x0c, 0x84, 0x04, 0xf1, 0x8f, 0x0f, 0xee, 0xed, 0x3c, 0xa9, 0x0e, + 0x66, 0x89, 0x7c, 0x94, 0xf0, 0x0b, 0x30, 0xec, 0xcf, 0x80, 0xbc, 0xb3, 0x9d, 0x8d, 0xde, 0xcd, + 0x0c, 0x4b, 0xcd, 0xb3, 0xd2, 0x2e, 0xda, 0xbe, 0x30, 0x2f, 0x5b, 0x33, 0x59, 0x18, 0x29, 0x8b, + 0x7f, 0xd9, 0x13, 0xb5, 0x19, 0x91, 0xc2, 0xad, 0xf9, 0x8d, 0xcf, 0x4e, 0xf5, 0x64, 0xee, 0x87, + 0xc1, 0xe0, 0x1f, 0xef, 0x48, 0xc0, 0x7e, 0x0e, 0xcc, 0x26, 0x5f, 0xc2, 0xdc, 0xbf, 0xa7, 0xc0, + 0x91, 0x20, 0xfb, 0xa3, 0x75, 0x77, 0x67, 0xc9, 0xc2, 0x3d, 0xfd, 0x83, 0x90, 0x42, 0xcc, 0x71, + 0xec, 0xe7, 0x4f, 0xd8, 0x7b, 0x64, 0x28, 0xfb, 0x1c, 0xf9, 0xd7, 0xf0, 0x20, 0xd2, 0x2e, 0x08, + 0x7f, 0xec, 0xc2, 0xc4, 0x3d, 0xd0, 0x4b, 0xe5, 0x8b, 0x7a, 0x0d, 0x49, 0x7a, 0x7d, 0x2e, 0x44, + 0x2f, 0x12, 0x47, 0xfa, 0x55, 0x41, 0xaf, 0xc0, 0xeb, 0x6a, 0x28, 0xfb, 0x1c, 0x0f, 0xbe, 0x7c, + 0x0a, 0xf7, 0x7f, 0x24, 0xa2, 0xa2, 0x95, 0x9c, 0x81, 0x54, 0x49, 0xe6, 0x09, 0xd7, 0xb3, 0x08, + 0xc9, 0xb2, 0x5d, 0x23, 0x3f, 0xcc, 0x42, 0x7e, 0x89, 0x98, 0x19, 0x99, 0xfd, 0x2c, 0xf1, 0x49, + 0x48, 0x15, 0x76, 0xea, 0x8d, 0x5a, 0x1b, 0x59, 0xec, 0xcc, 0x9e, 0x6d, 0xa1, 0x63, 0x8c, 0xe1, + 0xd1, 0x32, 0x05, 0x18, 0x2d, 0xdb, 0x56, 0x7e, 0xcf, 0x0d, 0xd6, 0x8d, 0x39, 0x29, 0x45, 0xd8, + 0x99, 0x0f, 0xf9, 0x73, 0x10, 0xcc, 0x90, 0xef, 0xfd, 0xee, 0xcb, 0x53, 0xca, 0x86, 0xb7, 0x7f, + 0xbe, 0x02, 0x47, 0x59, 0xfa, 0x74, 0x88, 0x5a, 0x88, 0x12, 0xd5, 0xcf, 0xce, 0xa9, 0x03, 0xe2, + 0x96, 0xb0, 0x38, 0x2b, 0x54, 0xdc, 0x1b, 0xd3, 0x0c, 0x37, 0x45, 0xfb, 0x6a, 0xa6, 0x1e, 0x48, + 0xb3, 0x50, 0x71, 0x73, 0x51, 0xe2, 0x24, 0xcd, 0xee, 0x86, 0x7e, 0x8f, 0x16, 0x88, 0x86, 0x60, + 0xa6, 0x2c, 0xcc, 0x66, 0x60, 0x20, 0x90, 0xb0, 0x7a, 0x2f, 0x28, 0x39, 0xad, 0x07, 0xff, 0x97, + 0xd7, 0x14, 0xfc, 0x5f, 0x41, 0x4b, 0xcc, 0xde, 0x03, 0x23, 0xd2, 0xfe, 0x25, 0xa6, 0x14, 0x35, + 0xc0, 0xff, 0x95, 0xb4, 0x81, 0x89, 0xe4, 0x87, 0xff, 0x70, 0xb2, 0x67, 0xf6, 0x12, 0xe8, 0x9d, + 0x3b, 0x9d, 0x7a, 0x1f, 0x24, 0x72, 0x58, 0xe4, 0x51, 0x48, 0xe4, 0xf3, 0x9a, 0x32, 0x31, 0xf2, + 0xab, 0x9f, 0x9e, 0x1e, 0xc8, 0x93, 0xbf, 0x4c, 0xbe, 0x86, 0xdc, 0x7c, 0x9e, 0x81, 0x1f, 0x82, + 0x23, 0xa1, 0x3b, 0xa5, 0x18, 0x5f, 0x28, 0x50, 0x7c, 0xb1, 0xd8, 0x81, 0x2f, 0x16, 0x09, 0x5e, + 0xc9, 0xf2, 0x13, 0xe7, 0x9c, 0x1e, 0xb2, 0xcb, 0x98, 0xae, 0x05, 0x4e, 0xb8, 0x73, 0xd9, 0x87, + 0x18, 0x6f, 0x3e, 0x94, 0x17, 0x45, 0x9c, 0x58, 0xe7, 0xb3, 0x05, 0x86, 0x2f, 0x84, 0xe2, 0xb7, + 0xa4, 0x63, 0x55, 0x71, 0x85, 0x60, 0x42, 0x0a, 0x9e, 0xc2, 0xc5, 0x50, 0x21, 0x3b, 0x81, 0xcb, + 0xee, 0x45, 0x4f, 0xe1, 0x52, 0x28, 0x6f, 0x3d, 0xe2, 0xd2, 0x57, 0x29, 0x7b, 0x8a, 0x2d, 0xf2, + 0xb9, 0xd3, 0xfa, 0x11, 0x9e, 0xa3, 0x42, 0x05, 0x66, 0x06, 0xe2, 0x5c, 0xd9, 0x02, 0x03, 0xe4, + 0xbb, 0x02, 0xba, 0x5b, 0x89, 0x23, 0xb3, 0x8f, 0x30, 0x21, 0x85, 0xae, 0x42, 0x22, 0x4c, 0xc5, + 0xe1, 0xf9, 0x8d, 0x1b, 0x37, 0x27, 0x7b, 0x5e, 0xba, 0x39, 0xd9, 0xf3, 0x4f, 0x37, 0x27, 0x7b, + 0xbe, 0x77, 0x73, 0x52, 0xf9, 0xc1, 0xcd, 0x49, 0xe5, 0x47, 0x37, 0x27, 0x95, 0x9f, 0xdc, 0x9c, + 0x54, 0x9e, 0xbd, 0x35, 0xa9, 0xbc, 0x70, 0x6b, 0x52, 0xf9, 0xd2, 0xad, 0x49, 0xe5, 0xeb, 0xb7, + 0x26, 0x95, 0x17, 0x6f, 0x4d, 0x2a, 0x37, 0x6e, 0x4d, 0xf6, 0xbc, 0x74, 0x6b, 0x52, 0xf9, 0xde, + 0xad, 0x49, 0xe5, 0x07, 0xb7, 0x26, 0x7b, 0x7e, 0x74, 0x6b, 0x52, 0xf9, 0xc9, 0xad, 0xc9, 0x9e, + 0x67, 0x5f, 0x99, 0xec, 0x79, 0xfe, 0x95, 0xc9, 0x9e, 0x17, 0x5e, 0x99, 0x54, 0xfe, 0x37, 0x00, + 0x00, 0xff, 0xff, 0x5b, 0x5a, 0x4e, 0xa3, 0xdd, 0x66, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -12583,8 +12589,8 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12638,8 +12644,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12705,8 +12711,8 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12772,8 +12778,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -15829,7 +15835,7 @@ func (this *ProtoType) Equal(that interface{}) bool { } type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() float64 GetField2() float32 GetField3() int32 @@ -15847,11 +15853,11 @@ type NidOptNativeFace interface { GetField15() []byte } -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNative) Proto() proto.Message { return this } -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNative) TestProto() proto.Message { return NewNidOptNativeFromFace(this) } @@ -15936,7 +15942,7 @@ func NewNidOptNativeFromFace(that NidOptNativeFace) *NidOptNative { } type NinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *int32 @@ -15954,11 +15960,11 @@ type NinOptNativeFace interface { GetField15() []byte } -func (this *NinOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNative) Proto() proto.Message { return this } -func (this *NinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNative) TestProto() proto.Message { return NewNinOptNativeFromFace(this) } @@ -16043,7 +16049,7 @@ func NewNinOptNativeFromFace(that NinOptNativeFace) *NinOptNative { } type NidRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16061,11 +16067,11 @@ type NidRepNativeFace interface { GetField15() [][]byte } -func (this *NidRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNative) Proto() proto.Message { return this } -func (this *NidRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNative) TestProto() proto.Message { return NewNidRepNativeFromFace(this) } @@ -16150,7 +16156,7 @@ func NewNidRepNativeFromFace(that NidRepNativeFace) *NidRepNative { } type NinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16168,11 +16174,11 @@ type NinRepNativeFace interface { GetField15() [][]byte } -func (this *NinRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNative) Proto() proto.Message { return this } -func (this *NinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNative) TestProto() proto.Message { return NewNinRepNativeFromFace(this) } @@ -16257,7 +16263,7 @@ func NewNinRepNativeFromFace(that NinRepNativeFace) *NinRepNative { } type NidRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16273,11 +16279,11 @@ type NidRepPackedNativeFace interface { GetField13() []bool } -func (this *NidRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepPackedNative) Proto() proto.Message { return this } -func (this *NidRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepPackedNative) TestProto() proto.Message { return NewNidRepPackedNativeFromFace(this) } @@ -16352,7 +16358,7 @@ func NewNidRepPackedNativeFromFace(that NidRepPackedNativeFace) *NidRepPackedNat } type NinRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16368,11 +16374,11 @@ type NinRepPackedNativeFace interface { GetField13() []bool } -func (this *NinRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepPackedNative) Proto() proto.Message { return this } -func (this *NinRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepPackedNative) TestProto() proto.Message { return NewNinRepPackedNativeFromFace(this) } @@ -16447,7 +16453,7 @@ func NewNinRepPackedNativeFromFace(that NinRepPackedNativeFace) *NinRepPackedNat } type NidOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() float64 GetField2() float32 GetField3() NidOptNative @@ -16460,11 +16466,11 @@ type NidOptStructFace interface { GetField15() []byte } -func (this *NidOptStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptStruct) Proto() proto.Message { return this } -func (this *NidOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptStruct) TestProto() proto.Message { return NewNidOptStructFromFace(this) } @@ -16524,7 +16530,7 @@ func NewNidOptStructFromFace(that NidOptStructFace) *NidOptStruct { } type NinOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *NidOptNative @@ -16537,11 +16543,11 @@ type NinOptStructFace interface { GetField15() []byte } -func (this *NinOptStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStruct) Proto() proto.Message { return this } -func (this *NinOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStruct) TestProto() proto.Message { return NewNinOptStructFromFace(this) } @@ -16601,7 +16607,7 @@ func NewNinOptStructFromFace(that NinOptStructFace) *NinOptStruct { } type NidRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []NidOptNative @@ -16614,11 +16620,11 @@ type NidRepStructFace interface { GetField15() [][]byte } -func (this *NidRepStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepStruct) Proto() proto.Message { return this } -func (this *NidRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepStruct) TestProto() proto.Message { return NewNidRepStructFromFace(this) } @@ -16678,7 +16684,7 @@ func NewNidRepStructFromFace(that NidRepStructFace) *NidRepStruct { } type NinRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []*NidOptNative @@ -16691,11 +16697,11 @@ type NinRepStructFace interface { GetField15() [][]byte } -func (this *NinRepStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepStruct) Proto() proto.Message { return this } -func (this *NinRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepStruct) TestProto() proto.Message { return NewNinRepStructFromFace(this) } @@ -16755,17 +16761,17 @@ func NewNinRepStructFromFace(that NinRepStructFace) *NinRepStruct { } type NidEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() NidOptNative GetField210() bool } -func (this *NidEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidEmbeddedStruct) Proto() proto.Message { return this } -func (this *NidEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidEmbeddedStruct) TestProto() proto.Message { return NewNidEmbeddedStructFromFace(this) } @@ -16790,17 +16796,17 @@ func NewNidEmbeddedStructFromFace(that NidEmbeddedStructFace) *NidEmbeddedStruct } type NinEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() *NidOptNative GetField210() *bool } -func (this *NinEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStruct) Proto() proto.Message { return this } -func (this *NinEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStruct) TestProto() proto.Message { return NewNinEmbeddedStructFromFace(this) } @@ -16825,16 +16831,16 @@ func NewNinEmbeddedStructFromFace(that NinEmbeddedStructFace) *NinEmbeddedStruct } type NidNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() NidOptStruct GetField2() []NidRepStruct } -func (this *NidNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidNestedStruct) Proto() proto.Message { return this } -func (this *NidNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidNestedStruct) TestProto() proto.Message { return NewNidNestedStructFromFace(this) } @@ -16854,16 +16860,16 @@ func NewNidNestedStructFromFace(that NidNestedStructFace) *NidNestedStruct { } type NinNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *NinOptStruct GetField2() []*NinRepStruct } -func (this *NinNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStruct) Proto() proto.Message { return this } -func (this *NinNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStruct) TestProto() proto.Message { return NewNinNestedStructFromFace(this) } @@ -16883,16 +16889,16 @@ func NewNinNestedStructFromFace(that NinNestedStructFace) *NinNestedStruct { } type NidOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() Uuid GetValue() github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NidOptCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptCustom) Proto() proto.Message { return this } -func (this *NidOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptCustom) TestProto() proto.Message { return NewNidOptCustomFromFace(this) } @@ -16912,15 +16918,15 @@ func NewNidOptCustomFromFace(that NidOptCustomFace) *NidOptCustom { } type CustomDashFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes } -func (this *CustomDash) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomDash) Proto() proto.Message { return this } -func (this *CustomDash) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomDash) TestProto() proto.Message { return NewCustomDashFromFace(this) } @@ -16935,16 +16941,16 @@ func NewCustomDashFromFace(that CustomDashFace) *CustomDash { } type NinOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() *Uuid GetValue() *github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NinOptCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptCustom) Proto() proto.Message { return this } -func (this *NinOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptCustom) TestProto() proto.Message { return NewNinOptCustomFromFace(this) } @@ -16964,16 +16970,16 @@ func NewNinOptCustomFromFace(that NinOptCustomFace) *NinOptCustom { } type NidRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() []Uuid GetValue() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NidRepCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepCustom) Proto() proto.Message { return this } -func (this *NidRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepCustom) TestProto() proto.Message { return NewNidRepCustomFromFace(this) } @@ -16993,16 +16999,16 @@ func NewNidRepCustomFromFace(that NidRepCustomFace) *NidRepCustom { } type NinRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() []Uuid GetValue() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NinRepCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepCustom) Proto() proto.Message { return this } -func (this *NinRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepCustom) TestProto() proto.Message { return NewNinRepCustomFromFace(this) } @@ -17022,7 +17028,7 @@ func NewNinRepCustomFromFace(that NinRepCustomFace) *NinRepCustom { } type NinOptNativeUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *int32 @@ -17034,11 +17040,11 @@ type NinOptNativeUnionFace interface { GetField15() []byte } -func (this *NinOptNativeUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNativeUnion) Proto() proto.Message { return this } -func (this *NinOptNativeUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNativeUnion) TestProto() proto.Message { return NewNinOptNativeUnionFromFace(this) } @@ -17093,7 +17099,7 @@ func NewNinOptNativeUnionFromFace(that NinOptNativeUnionFace) *NinOptNativeUnion } type NinOptStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *NidOptNative @@ -17105,11 +17111,11 @@ type NinOptStructUnionFace interface { GetField15() []byte } -func (this *NinOptStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStructUnion) Proto() proto.Message { return this } -func (this *NinOptStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStructUnion) TestProto() proto.Message { return NewNinOptStructUnionFromFace(this) } @@ -17164,17 +17170,17 @@ func NewNinOptStructUnionFromFace(that NinOptStructUnionFace) *NinOptStructUnion } type NinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() *NinOptNative GetField210() *bool } -func (this *NinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStructUnion) Proto() proto.Message { return this } -func (this *NinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStructUnion) TestProto() proto.Message { return NewNinEmbeddedStructUnionFromFace(this) } @@ -17199,17 +17205,17 @@ func NewNinEmbeddedStructUnionFromFace(that NinEmbeddedStructUnionFace) *NinEmbe } type NinNestedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *NinOptNativeUnion GetField2() *NinOptStructUnion GetField3() *NinEmbeddedStructUnion } -func (this *NinNestedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStructUnion) Proto() proto.Message { return this } -func (this *NinNestedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStructUnion) TestProto() proto.Message { return NewNinNestedStructUnionFromFace(this) } @@ -17234,17 +17240,17 @@ func NewNinNestedStructUnionFromFace(that NinNestedStructUnionFace) *NinNestedSt } type TreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetOr() *OrBranch GetAnd() *AndBranch GetLeaf() *Leaf } -func (this *Tree) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Tree) Proto() proto.Message { return this } -func (this *Tree) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Tree) TestProto() proto.Message { return NewTreeFromFace(this) } @@ -17269,16 +17275,16 @@ func NewTreeFromFace(that TreeFace) *Tree { } type OrBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() Tree GetRight() Tree } -func (this *OrBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *OrBranch) Proto() proto.Message { return this } -func (this *OrBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *OrBranch) TestProto() proto.Message { return NewOrBranchFromFace(this) } @@ -17298,16 +17304,16 @@ func NewOrBranchFromFace(that OrBranchFace) *OrBranch { } type AndBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() Tree GetRight() Tree } -func (this *AndBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AndBranch) Proto() proto.Message { return this } -func (this *AndBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AndBranch) TestProto() proto.Message { return NewAndBranchFromFace(this) } @@ -17327,16 +17333,16 @@ func NewAndBranchFromFace(that AndBranchFace) *AndBranch { } type LeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetValue() int64 GetStrValue() string } -func (this *Leaf) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Leaf) Proto() proto.Message { return this } -func (this *Leaf) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Leaf) TestProto() proto.Message { return NewLeafFromFace(this) } @@ -17356,17 +17362,17 @@ func NewLeafFromFace(that LeafFace) *Leaf { } type DeepTreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetDown() *ADeepBranch GetAnd() *AndDeepBranch GetLeaf() *DeepLeaf } -func (this *DeepTree) Proto() github_com_gogo_protobuf_proto.Message { +func (this *DeepTree) Proto() proto.Message { return this } -func (this *DeepTree) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *DeepTree) TestProto() proto.Message { return NewDeepTreeFromFace(this) } @@ -17391,15 +17397,15 @@ func NewDeepTreeFromFace(that DeepTreeFace) *DeepTree { } type ADeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetDown() DeepTree } -func (this *ADeepBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ADeepBranch) Proto() proto.Message { return this } -func (this *ADeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ADeepBranch) TestProto() proto.Message { return NewADeepBranchFromFace(this) } @@ -17414,16 +17420,16 @@ func NewADeepBranchFromFace(that ADeepBranchFace) *ADeepBranch { } type AndDeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() DeepTree GetRight() DeepTree } -func (this *AndDeepBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AndDeepBranch) Proto() proto.Message { return this } -func (this *AndDeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AndDeepBranch) TestProto() proto.Message { return NewAndDeepBranchFromFace(this) } @@ -17443,15 +17449,15 @@ func NewAndDeepBranchFromFace(that AndDeepBranchFace) *AndDeepBranch { } type DeepLeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetTree() Tree } -func (this *DeepLeaf) Proto() github_com_gogo_protobuf_proto.Message { +func (this *DeepLeaf) Proto() proto.Message { return this } -func (this *DeepLeaf) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *DeepLeaf) TestProto() proto.Message { return NewDeepLeafFromFace(this) } @@ -17466,14 +17472,14 @@ func NewDeepLeafFromFace(that DeepLeafFace) *DeepLeaf { } type NilFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message } -func (this *Nil) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Nil) Proto() proto.Message { return this } -func (this *Nil) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Nil) TestProto() proto.Message { return NewNilFromFace(this) } @@ -17483,15 +17489,15 @@ func NewNilFromFace(that NilFace) *Nil { } type NidOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() TheTestEnum } -func (this *NidOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptEnum) Proto() proto.Message { return this } -func (this *NidOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptEnum) TestProto() proto.Message { return NewNidOptEnumFromFace(this) } @@ -17506,17 +17512,17 @@ func NewNidOptEnumFromFace(that NidOptEnumFace) *NidOptEnum { } type NinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *TheTestEnum GetField2() *YetAnotherTestEnum GetField3() *YetYetAnotherTestEnum } -func (this *NinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptEnum) Proto() proto.Message { return this } -func (this *NinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptEnum) TestProto() proto.Message { return NewNinOptEnumFromFace(this) } @@ -17541,17 +17547,17 @@ func NewNinOptEnumFromFace(that NinOptEnumFace) *NinOptEnum { } type NidRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []TheTestEnum GetField2() []YetAnotherTestEnum GetField3() []YetYetAnotherTestEnum } -func (this *NidRepEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepEnum) Proto() proto.Message { return this } -func (this *NidRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepEnum) TestProto() proto.Message { return NewNidRepEnumFromFace(this) } @@ -17576,17 +17582,17 @@ func NewNidRepEnumFromFace(that NidRepEnumFace) *NidRepEnum { } type NinRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []TheTestEnum GetField2() []YetAnotherTestEnum GetField3() []YetYetAnotherTestEnum } -func (this *NinRepEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepEnum) Proto() proto.Message { return this } -func (this *NinRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepEnum) TestProto() proto.Message { return NewNinRepEnumFromFace(this) } @@ -17611,17 +17617,17 @@ func NewNinRepEnumFromFace(that NinRepEnumFace) *NinRepEnum { } type AnotherNinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *AnotherTestEnum GetField2() *YetAnotherTestEnum GetField3() *YetYetAnotherTestEnum } -func (this *AnotherNinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AnotherNinOptEnum) Proto() proto.Message { return this } -func (this *AnotherNinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AnotherNinOptEnum) TestProto() proto.Message { return NewAnotherNinOptEnumFromFace(this) } @@ -17646,17 +17652,17 @@ func NewAnotherNinOptEnumFromFace(that AnotherNinOptEnumFace) *AnotherNinOptEnum } type TimerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetTime1() int64 GetTime2() int64 GetData() []byte } -func (this *Timer) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Timer) Proto() proto.Message { return this } -func (this *Timer) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Timer) TestProto() proto.Message { return NewTimerFromFace(this) } @@ -17681,18 +17687,18 @@ func NewTimerFromFace(that TimerFace) *Timer { } type NestedDefinitionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *int64 GetEnumField() *NestedDefinition_NestedEnum GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg GetNM() *NestedDefinition_NestedMessage } -func (this *NestedDefinition) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition) Proto() proto.Message { return this } -func (this *NestedDefinition) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition) TestProto() proto.Message { return NewNestedDefinitionFromFace(this) } @@ -17722,16 +17728,16 @@ func NewNestedDefinitionFromFace(that NestedDefinitionFace) *NestedDefinition { } type NestedDefinition_NestedMessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedField1() *uint64 GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg } -func (this *NestedDefinition_NestedMessage) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage) Proto() proto.Message { return this } -func (this *NestedDefinition_NestedMessage) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage) TestProto() proto.Message { return NewNestedDefinition_NestedMessageFromFace(this) } @@ -17751,15 +17757,15 @@ func NewNestedDefinition_NestedMessageFromFace(that NestedDefinition_NestedMessa } type NestedDefinition_NestedMessage_NestedNestedMsgFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedNestedField1() *string } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() proto.Message { return this } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() proto.Message { return NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(this) } @@ -17774,17 +17780,17 @@ func NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(that NestedDefini } type NestedScopeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetA() *NestedDefinition_NestedMessage_NestedNestedMsg GetB() *NestedDefinition_NestedEnum GetC() *NestedDefinition_NestedMessage } -func (this *NestedScope) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedScope) Proto() proto.Message { return this } -func (this *NestedScope) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedScope) TestProto() proto.Message { return NewNestedScopeFromFace(this) } @@ -17809,15 +17815,15 @@ func NewNestedScopeFromFace(that NestedScopeFace) *NestedScope { } type CustomContainerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetCustomStruct() NidOptCustom } -func (this *CustomContainer) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomContainer) Proto() proto.Message { return this } -func (this *CustomContainer) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomContainer) TestProto() proto.Message { return NewCustomContainerFromFace(this) } @@ -17832,7 +17838,7 @@ func NewCustomContainerFromFace(that CustomContainerFace) *CustomContainer { } type CustomNameNidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() float64 GetFieldB() float32 GetFieldC() int32 @@ -17850,11 +17856,11 @@ type CustomNameNidOptNativeFace interface { GetFieldO() []byte } -func (this *CustomNameNidOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNidOptNative) Proto() proto.Message { return this } -func (this *CustomNameNidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNidOptNative) TestProto() proto.Message { return NewCustomNameNidOptNativeFromFace(this) } @@ -17939,7 +17945,7 @@ func NewCustomNameNidOptNativeFromFace(that CustomNameNidOptNativeFace) *CustomN } type CustomNameNinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *float64 GetFieldB() *float32 GetFieldC() *int32 @@ -17957,11 +17963,11 @@ type CustomNameNinOptNativeFace interface { GetFieldO() []byte } -func (this *CustomNameNinOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinOptNative) Proto() proto.Message { return this } -func (this *CustomNameNinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinOptNative) TestProto() proto.Message { return NewCustomNameNinOptNativeFromFace(this) } @@ -18046,7 +18052,7 @@ func NewCustomNameNinOptNativeFromFace(that CustomNameNinOptNativeFace) *CustomN } type CustomNameNinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() []float64 GetFieldB() []float32 GetFieldC() []int32 @@ -18064,11 +18070,11 @@ type CustomNameNinRepNativeFace interface { GetFieldO() [][]byte } -func (this *CustomNameNinRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinRepNative) Proto() proto.Message { return this } -func (this *CustomNameNinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinRepNative) TestProto() proto.Message { return NewCustomNameNinRepNativeFromFace(this) } @@ -18153,7 +18159,7 @@ func NewCustomNameNinRepNativeFromFace(that CustomNameNinRepNativeFace) *CustomN } type CustomNameNinStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *float64 GetFieldB() *float32 GetFieldC() *NidOptNative @@ -18166,11 +18172,11 @@ type CustomNameNinStructFace interface { GetFieldJ() []byte } -func (this *CustomNameNinStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinStruct) Proto() proto.Message { return this } -func (this *CustomNameNinStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinStruct) TestProto() proto.Message { return NewCustomNameNinStructFromFace(this) } @@ -18230,18 +18236,18 @@ func NewCustomNameNinStructFromFace(that CustomNameNinStructFace) *CustomNameNin } type CustomNameCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *Uuid GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 GetFieldC() []Uuid GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *CustomNameCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameCustomType) Proto() proto.Message { return this } -func (this *CustomNameCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameCustomType) TestProto() proto.Message { return NewCustomNameCustomTypeFromFace(this) } @@ -18271,17 +18277,17 @@ func NewCustomNameCustomTypeFromFace(that CustomNameCustomTypeFace) *CustomNameC } type CustomNameNinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetFieldA() *NinOptNative GetFieldB() *bool } -func (this *CustomNameNinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinEmbeddedStructUnion) Proto() proto.Message { return this } -func (this *CustomNameNinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinEmbeddedStructUnion) TestProto() proto.Message { return NewCustomNameNinEmbeddedStructUnionFromFace(this) } @@ -18306,16 +18312,16 @@ func NewCustomNameNinEmbeddedStructUnionFromFace(that CustomNameNinEmbeddedStruc } type CustomNameEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *TheTestEnum GetFieldB() []TheTestEnum } -func (this *CustomNameEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameEnum) Proto() proto.Message { return this } -func (this *CustomNameEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameEnum) TestProto() proto.Message { return NewCustomNameEnumFromFace(this) } @@ -18335,15 +18341,15 @@ func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum { } type UnrecognizedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *string } -func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Unrecognized) Proto() proto.Message { return this } -func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Unrecognized) TestProto() proto.Message { return NewUnrecognizedFromFace(this) } @@ -18358,16 +18364,16 @@ func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized { } type UnrecognizedWithInnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetEmbedded() []*UnrecognizedWithInner_Inner GetField2() *string } -func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner) Proto() proto.Message { return this } -func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner) TestProto() proto.Message { return NewUnrecognizedWithInnerFromFace(this) } @@ -18387,15 +18393,15 @@ func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *Unrecogni } type UnrecognizedWithInner_InnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *uint32 } -func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner_Inner) Proto() proto.Message { return this } -func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner_Inner) TestProto() proto.Message { return NewUnrecognizedWithInner_InnerFromFace(this) } @@ -18410,16 +18416,16 @@ func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace } type UnrecognizedWithEmbedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded GetField2() *string } -func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed) Proto() proto.Message { return this } -func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed) TestProto() proto.Message { return NewUnrecognizedWithEmbedFromFace(this) } @@ -18439,15 +18445,15 @@ func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *Unrecogni } type UnrecognizedWithEmbed_EmbeddedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *uint32 } -func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed_Embedded) Proto() proto.Message { return this } -func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed_Embedded) TestProto() proto.Message { return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) } @@ -18462,16 +18468,16 @@ func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_Embedd } type NodeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLabel() *string GetChildren() []*Node } -func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Node) Proto() proto.Message { return this } -func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Node) TestProto() proto.Message { return NewNodeFromFace(this) } @@ -18491,15 +18497,15 @@ func NewNodeFromFace(that NodeFace) *Node { } type NonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *T } -func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NonByteCustomType) Proto() proto.Message { return this } -func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NonByteCustomType) TestProto() proto.Message { return NewNonByteCustomTypeFromFace(this) } @@ -18514,15 +18520,15 @@ func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType } type NidOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() T } -func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNonByteCustomType) Proto() proto.Message { return this } -func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNonByteCustomType) TestProto() proto.Message { return NewNidOptNonByteCustomTypeFromFace(this) } @@ -18537,15 +18543,15 @@ func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOp } type NinOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *T } -func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNonByteCustomType) Proto() proto.Message { return this } -func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNonByteCustomType) TestProto() proto.Message { return NewNinOptNonByteCustomTypeFromFace(this) } @@ -18560,15 +18566,15 @@ func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOp } type NidRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []T } -func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) Proto() proto.Message { return this } -func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) TestProto() proto.Message { return NewNidRepNonByteCustomTypeFromFace(this) } @@ -18583,15 +18589,15 @@ func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRe } type NinRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []T } -func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) Proto() proto.Message { return this } -func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) TestProto() proto.Message { return NewNinRepNonByteCustomTypeFromFace(this) } @@ -18606,15 +18612,15 @@ func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRe } type ProtoTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField2() *string } -func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) Proto() proto.Message { return this } -func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) TestProto() proto.Message { return NewProtoTypeFromFace(this) } @@ -19005,10 +19011,18 @@ func (this *NidRepStruct) GoString() string { s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") + vs := make([]*NidOptNative, len(this.Field3)) + for i := range vs { + vs[i] = &this.Field3[i] + } + s = append(s, "Field3: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") + vs := make([]*NinOptNative, len(this.Field4)) + for i := range vs { + vs[i] = &this.Field4[i] + } + s = append(s, "Field4: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field6 != nil { s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") @@ -19017,7 +19031,11 @@ func (this *NidRepStruct) GoString() string { s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") } if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") + vs := make([]*NidOptNative, len(this.Field8)) + for i := range vs { + vs[i] = &this.Field8[i] + } + s = append(s, "Field8: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field13 != nil { s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") @@ -19122,7 +19140,11 @@ func (this *NidNestedStruct) GoString() string { s = append(s, "&test.NidNestedStruct{") s = append(s, "Field1: "+strings.Replace(this.Field1.GoString(), `&`, ``, 1)+",\n") if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") + vs := make([]*NidRepStruct, len(this.Field2)) + for i := range vs { + vs[i] = &this.Field2[i] + } + s = append(s, "Field2: "+fmt.Sprintf("%#v", vs)+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19507,13 +19529,13 @@ func (this *NinOptEnum) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.NinOptEnum{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19570,13 +19592,13 @@ func (this *NinOptEnumDefault) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.NinOptEnumDefault{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19591,13 +19613,13 @@ func (this *AnotherNinOptEnum) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.AnotherNinOptEnum{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19612,13 +19634,13 @@ func (this *AnotherNinOptEnumDefault) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.AnotherNinOptEnumDefault{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19689,7 +19711,7 @@ func (this *NestedDefinition) GoString() string { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } if this.EnumField != nil { - s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "test.NestedDefinition_NestedEnum")+",\n") + s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "NestedDefinition_NestedEnum")+",\n") } if this.NNM != nil { s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") @@ -19746,7 +19768,7 @@ func (this *NestedScope) GoString() string { s = append(s, "A: "+fmt.Sprintf("%#v", this.A)+",\n") } if this.B != nil { - s = append(s, "B: "+valueToGoStringThetest(this.B, "test.NestedDefinition_NestedEnum")+",\n") + s = append(s, "B: "+valueToGoStringThetest(this.B, "NestedDefinition_NestedEnum")+",\n") } if this.C != nil { s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n") @@ -20062,7 +20084,7 @@ func (this *CustomNameEnum) GoString() string { s := make([]string, 0, 6) s = append(s, "&test.CustomNameEnum{") if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "test.TheTestEnum")+",\n") + s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "TheTestEnum")+",\n") } if this.FieldB != nil { s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") @@ -20275,8 +20297,8 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { - e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) +func extensionToGoStringThetest(m proto.Message) string { + e := proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } @@ -21811,7 +21833,7 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -21855,7 +21877,7 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -22469,7 +22491,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -23820,7 +23842,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) + n += proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -23840,7 +23862,7 @@ func (m *OtherExtenable) Size() (n int) { l = m.M.Size() n += 1 + l + sovThetest(uint64(l)) } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) + n += proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -25056,7 +25078,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, + `XXX_InternalExtensions:` + proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -25070,7 +25092,7 @@ func (this *OtherExtenable) String() string { `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, + `XXX_InternalExtensions:` + proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -25302,7 +25324,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -25742,15 +25764,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field1 = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -25760,11 +25775,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field2 = float32(math.Float32frombits(v)) case 3: if wireType != 0 { @@ -25892,11 +25904,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.Field9 = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field9 = uint32(dAtA[iNdEx-4]) - m.Field9 |= uint32(dAtA[iNdEx-3]) << 8 - m.Field9 |= uint32(dAtA[iNdEx-2]) << 16 - m.Field9 |= uint32(dAtA[iNdEx-1]) << 24 case 10: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) @@ -25905,11 +25914,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.Field10 = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field10 = int32(dAtA[iNdEx-4]) - m.Field10 |= int32(dAtA[iNdEx-3]) << 8 - m.Field10 |= int32(dAtA[iNdEx-2]) << 16 - m.Field10 |= int32(dAtA[iNdEx-1]) << 24 case 11: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) @@ -25918,15 +25924,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Field11 = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field11 = uint64(dAtA[iNdEx-8]) - m.Field11 |= uint64(dAtA[iNdEx-7]) << 8 - m.Field11 |= uint64(dAtA[iNdEx-6]) << 16 - m.Field11 |= uint64(dAtA[iNdEx-5]) << 24 - m.Field11 |= uint64(dAtA[iNdEx-4]) << 32 - m.Field11 |= uint64(dAtA[iNdEx-3]) << 40 - m.Field11 |= uint64(dAtA[iNdEx-2]) << 48 - m.Field11 |= uint64(dAtA[iNdEx-1]) << 56 case 12: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) @@ -25935,15 +25934,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Field12 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field12 = int64(dAtA[iNdEx-8]) - m.Field12 |= int64(dAtA[iNdEx-7]) << 8 - m.Field12 |= int64(dAtA[iNdEx-6]) << 16 - m.Field12 |= int64(dAtA[iNdEx-5]) << 24 - m.Field12 |= int64(dAtA[iNdEx-4]) << 32 - m.Field12 |= int64(dAtA[iNdEx-3]) << 40 - m.Field12 |= int64(dAtA[iNdEx-2]) << 48 - m.Field12 |= int64(dAtA[iNdEx-1]) << 56 case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) @@ -26083,15 +26075,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -26102,11 +26087,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -26240,11 +26222,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -26254,11 +26233,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -26268,15 +26244,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -26286,15 +26255,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -26435,15 +26397,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -26474,15 +26429,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -26495,11 +26443,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -26530,11 +26475,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -26923,11 +26865,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -26957,11 +26896,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -26973,11 +26909,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -27007,11 +26940,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -27023,15 +26953,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -27061,15 +26984,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -27081,15 +26997,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -27119,15 +27028,8 @@ func (m *NidRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -27310,15 +27212,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -27349,15 +27244,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -27370,11 +27258,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -27405,11 +27290,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -27798,11 +27680,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -27832,11 +27711,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -27848,11 +27724,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -27882,11 +27755,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -27898,15 +27768,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -27936,15 +27799,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -27956,15 +27812,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -27994,15 +27843,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -28185,15 +28027,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -28224,15 +28059,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -28245,11 +28073,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -28280,11 +28105,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -28673,11 +28495,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -28707,11 +28526,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -28723,11 +28539,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -28757,11 +28570,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -28773,15 +28583,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -28811,15 +28614,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -28831,15 +28627,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -28869,15 +28658,8 @@ func (m *NidRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -29002,15 +28784,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -29041,15 +28816,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -29062,11 +28830,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -29097,11 +28862,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -29490,11 +29252,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -29524,11 +29283,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -29540,11 +29296,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -29574,11 +29327,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -29590,15 +29340,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -29628,15 +29371,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -29648,15 +29384,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -29686,15 +29415,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -29821,15 +29543,8 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field1 = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -29839,11 +29554,8 @@ func (m *NidOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field2 = float32(math.Float32frombits(v)) case 3: if wireType != 2 { @@ -30114,15 +29826,8 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -30133,11 +29838,8 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -30419,15 +30121,8 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -30458,15 +30153,8 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -30479,11 +30167,8 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -30514,11 +30199,8 @@ func (m *NidRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -30921,15 +30603,8 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -30960,15 +30635,8 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -30981,11 +30649,8 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -31016,11 +30681,8 @@ func (m *NinRepStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -32463,15 +32125,8 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -32482,11 +32137,8 @@ func (m *NinOptNativeUnion) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -32710,15 +32362,8 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -32729,11 +32374,8 @@ func (m *NinOptStructUnion) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -35205,15 +34847,8 @@ func (m *Timer) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Time1 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Time1 = int64(dAtA[iNdEx-8]) - m.Time1 |= int64(dAtA[iNdEx-7]) << 8 - m.Time1 |= int64(dAtA[iNdEx-6]) << 16 - m.Time1 |= int64(dAtA[iNdEx-5]) << 24 - m.Time1 |= int64(dAtA[iNdEx-4]) << 32 - m.Time1 |= int64(dAtA[iNdEx-3]) << 40 - m.Time1 |= int64(dAtA[iNdEx-2]) << 48 - m.Time1 |= int64(dAtA[iNdEx-1]) << 56 case 2: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Time2", wireType) @@ -35222,15 +34857,8 @@ func (m *Timer) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Time2 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Time2 = int64(dAtA[iNdEx-8]) - m.Time2 |= int64(dAtA[iNdEx-7]) << 8 - m.Time2 |= int64(dAtA[iNdEx-6]) << 16 - m.Time2 |= int64(dAtA[iNdEx-5]) << 24 - m.Time2 |= int64(dAtA[iNdEx-4]) << 32 - m.Time2 |= int64(dAtA[iNdEx-3]) << 40 - m.Time2 |= int64(dAtA[iNdEx-2]) << 48 - m.Time2 |= int64(dAtA[iNdEx-1]) << 56 case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) @@ -35354,7 +34982,7 @@ func (m *MyExtendable) Unmarshal(dAtA []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex @@ -35502,7 +35130,7 @@ func (m *OtherExtenable) Unmarshal(dAtA []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex @@ -35721,15 +35349,8 @@ func (m *NestedDefinition_NestedMessage) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.NestedField1 = &v case 2: if wireType != 2 { @@ -36041,15 +35662,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -36060,11 +35674,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -36198,11 +35809,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -36212,11 +35820,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -36226,15 +35831,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -36244,15 +35842,8 @@ func (m *NinOptNativeDefault) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -36476,15 +36067,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldA = float64(math.Float64frombits(v)) case 2: if wireType != 5 { @@ -36494,11 +36078,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldB = float32(math.Float32frombits(v)) case 3: if wireType != 0 { @@ -36626,11 +36207,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.FieldI = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.FieldI = uint32(dAtA[iNdEx-4]) - m.FieldI |= uint32(dAtA[iNdEx-3]) << 8 - m.FieldI |= uint32(dAtA[iNdEx-2]) << 16 - m.FieldI |= uint32(dAtA[iNdEx-1]) << 24 case 10: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) @@ -36639,11 +36217,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.FieldJ = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.FieldJ = int32(dAtA[iNdEx-4]) - m.FieldJ |= int32(dAtA[iNdEx-3]) << 8 - m.FieldJ |= int32(dAtA[iNdEx-2]) << 16 - m.FieldJ |= int32(dAtA[iNdEx-1]) << 24 case 11: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) @@ -36652,15 +36227,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.FieldK = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.FieldK = uint64(dAtA[iNdEx-8]) - m.FieldK |= uint64(dAtA[iNdEx-7]) << 8 - m.FieldK |= uint64(dAtA[iNdEx-6]) << 16 - m.FieldK |= uint64(dAtA[iNdEx-5]) << 24 - m.FieldK |= uint64(dAtA[iNdEx-4]) << 32 - m.FieldK |= uint64(dAtA[iNdEx-3]) << 40 - m.FieldK |= uint64(dAtA[iNdEx-2]) << 48 - m.FieldK |= uint64(dAtA[iNdEx-1]) << 56 case 12: if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) @@ -36669,15 +36237,8 @@ func (m *CustomNameNidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.FieldL = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.FieldL = int64(dAtA[iNdEx-8]) - m.FieldL |= int64(dAtA[iNdEx-7]) << 8 - m.FieldL |= int64(dAtA[iNdEx-6]) << 16 - m.FieldL |= int64(dAtA[iNdEx-5]) << 24 - m.FieldL |= int64(dAtA[iNdEx-4]) << 32 - m.FieldL |= int64(dAtA[iNdEx-3]) << 40 - m.FieldL |= int64(dAtA[iNdEx-2]) << 48 - m.FieldL |= int64(dAtA[iNdEx-1]) << 56 case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) @@ -36817,15 +36378,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = &v2 case 2: @@ -36836,11 +36390,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = &v2 case 3: @@ -36974,11 +36525,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldI = &v case 10: if wireType != 5 { @@ -36988,11 +36536,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.FieldJ = &v case 11: if wireType != 1 { @@ -37002,15 +36547,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldK = &v case 12: if wireType != 1 { @@ -37020,15 +36558,8 @@ func (m *CustomNameNinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.FielL = &v case 13: if wireType != 0 { @@ -37169,15 +36700,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = append(m.FieldA, v2) } else if wireType == 2 { @@ -37208,15 +36732,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = append(m.FieldA, v2) } @@ -37229,11 +36746,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = append(m.FieldB, v2) } else if wireType == 2 { @@ -37264,11 +36778,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = append(m.FieldB, v2) } @@ -37657,11 +37168,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldI = append(m.FieldI, v) } else if wireType == 2 { var packedLen int @@ -37691,11 +37199,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.FieldI = append(m.FieldI, v) } } else { @@ -37707,11 +37212,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.FieldJ = append(m.FieldJ, v) } else if wireType == 2 { var packedLen int @@ -37741,11 +37243,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.FieldJ = append(m.FieldJ, v) } } else { @@ -37757,15 +37256,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldK = append(m.FieldK, v) } else if wireType == 2 { var packedLen int @@ -37795,15 +37287,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.FieldK = append(m.FieldK, v) } } else { @@ -37815,15 +37300,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.FieldL = append(m.FieldL, v) } else if wireType == 2 { var packedLen int @@ -37853,15 +37331,8 @@ func (m *CustomNameNinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.FieldL = append(m.FieldL, v) } } else { @@ -38046,15 +37517,8 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.FieldA = &v2 case 2: @@ -38065,11 +37529,8 @@ func (m *CustomNameNinStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.FieldB = &v2 case 3: @@ -38834,7 +38295,7 @@ func (m *NoExtensionsMap) Unmarshal(dAtA []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex @@ -40016,198 +39477,198 @@ var ( func init() { proto.RegisterFile("combos/unmarshaler/thetest.proto", fileDescriptorThetest) } var fileDescriptorThetest = []byte{ - // 3085 bytes of a gzipped FileDescriptorProto + // 3088 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, - 0xd5, 0xe7, 0xec, 0x50, 0x0e, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, + 0xd5, 0xe7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, - 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, + 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0xd7, 0x22, 0x51, 0x69, 0x29, 0x90, 0xab, 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, - 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, - 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, - 0x90, 0xdd, 0xed, 0x1e, 0xde, 0xeb, 0xf6, 0x97, 0x8e, 0x8d, 0xc3, 0x56, 0xaf, 0xbf, 0xdf, 0x3a, - 0xd0, 0x7b, 0x4b, 0xe6, 0xbe, 0x6e, 0xea, 0x7d, 0x73, 0xf1, 0xa8, 0xd7, 0x35, 0xbb, 0x72, 0xd2, - 0xfa, 0x3b, 0x73, 0x6d, 0xaf, 0x63, 0xee, 0x1f, 0xdf, 0x5b, 0xdc, 0xed, 0x1e, 0x2e, 0xed, 0x75, - 0xf7, 0xba, 0x4b, 0xb6, 0xf0, 0xde, 0xf1, 0x7d, 0xfb, 0x97, 0xfd, 0xc3, 0xfe, 0xcb, 0x31, 0xd2, - 0xfe, 0x89, 0x61, 0xb2, 0xd1, 0x69, 0x6f, 0x1f, 0x99, 0x8d, 0x96, 0xd9, 0x79, 0x4b, 0x97, 0x67, - 0xe1, 0xc2, 0xcd, 0x8e, 0x7e, 0xd0, 0x5e, 0x56, 0x50, 0x16, 0xe5, 0x50, 0x25, 0x79, 0x72, 0x3a, - 0x97, 0x68, 0x92, 0x31, 0x2a, 0x2d, 0x2a, 0x52, 0x16, 0xe5, 0x24, 0x4e, 0x5a, 0xa4, 0xd2, 0x15, - 0x05, 0x67, 0x51, 0x6e, 0x8c, 0x93, 0xae, 0x50, 0x69, 0x49, 0x49, 0x66, 0x51, 0x0e, 0x73, 0xd2, - 0x12, 0x95, 0xae, 0x2a, 0x63, 0x59, 0x94, 0xbb, 0xc8, 0x49, 0x57, 0xa9, 0x74, 0x4d, 0xb9, 0x90, - 0x45, 0xb9, 0x24, 0x27, 0x5d, 0xa3, 0xd2, 0xeb, 0xca, 0x33, 0x59, 0x94, 0xbb, 0xc4, 0x49, 0xaf, - 0x53, 0xe9, 0xba, 0x92, 0xca, 0xa2, 0x9c, 0xcc, 0x49, 0xd7, 0xa9, 0xf4, 0x86, 0x32, 0x9e, 0x45, - 0xb9, 0x67, 0x38, 0xe9, 0x0d, 0x59, 0x85, 0x67, 0x9c, 0x27, 0x2f, 0x28, 0x90, 0x45, 0xb9, 0x69, - 0x22, 0x76, 0x07, 0x3d, 0xf9, 0xb2, 0x32, 0x91, 0x45, 0xb9, 0x0b, 0xbc, 0x7c, 0xd9, 0x93, 0x17, - 0x95, 0xc9, 0x2c, 0xca, 0xa5, 0x79, 0x79, 0xd1, 0x93, 0xaf, 0x28, 0x17, 0xb3, 0x28, 0x97, 0xe2, - 0xe5, 0x2b, 0x9e, 0xbc, 0xa4, 0x4c, 0x65, 0x51, 0x6e, 0x9c, 0x97, 0x97, 0x3c, 0xf9, 0xaa, 0x32, - 0x9d, 0x45, 0xb9, 0x49, 0x5e, 0xbe, 0xaa, 0xbd, 0x6b, 0xc3, 0x6b, 0x78, 0xf0, 0xce, 0xf0, 0xf0, - 0x52, 0x60, 0x67, 0x78, 0x60, 0x29, 0xa4, 0x33, 0x3c, 0xa4, 0x14, 0xcc, 0x19, 0x1e, 0x4c, 0x0a, - 0xe3, 0x0c, 0x0f, 0x23, 0x05, 0x70, 0x86, 0x07, 0x90, 0x42, 0x37, 0xc3, 0x43, 0x47, 0x41, 0x9b, - 0xe1, 0x41, 0xa3, 0x70, 0xcd, 0xf0, 0x70, 0x51, 0xa0, 0x14, 0x01, 0x28, 0x0f, 0x22, 0x45, 0x80, - 0xc8, 0x03, 0x47, 0x11, 0xc0, 0xf1, 0x60, 0x51, 0x04, 0x58, 0x3c, 0x40, 0x14, 0x01, 0x10, 0x0f, - 0x0a, 0x45, 0x80, 0xc2, 0x03, 0x81, 0xe4, 0x58, 0x53, 0x3f, 0x0a, 0xc8, 0x31, 0x3c, 0x34, 0xc7, - 0xf0, 0xd0, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, - 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x3c, 0xc7, 0x70, 0x44, 0x8e, 0xe1, 0x88, 0x1c, - 0xc3, 0x11, 0x39, 0x86, 0x23, 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x0e, 0xcd, 0x31, 0x0f, 0xde, 0x19, - 0x1e, 0xde, 0xc0, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, - 0x31, 0x1c, 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xb0, 0x1c, 0xc3, 0xa1, 0x39, - 0x86, 0x43, 0x73, 0x0c, 0x87, 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, 0x9a, 0x63, 0x98, 0xcd, 0xb1, - 0x3f, 0x63, 0x90, 0x9d, 0x1c, 0xbb, 0xdd, 0xda, 0xfd, 0xa1, 0xde, 0x26, 0x50, 0xa8, 0x42, 0xa6, - 0x5d, 0xb0, 0xa0, 0x4b, 0x7b, 0x90, 0xa8, 0x42, 0xae, 0xf1, 0xf2, 0x22, 0x95, 0xbb, 0xd9, 0xc6, - 0xcb, 0x57, 0xa8, 0xdc, 0xcd, 0x37, 0x5e, 0x5e, 0xa2, 0x72, 0x37, 0xe3, 0x78, 0xf9, 0x2a, 0x95, - 0xbb, 0x39, 0xc7, 0xcb, 0xd7, 0xa8, 0xdc, 0xcd, 0x3a, 0x5e, 0x7e, 0x9d, 0xca, 0xdd, 0xbc, 0xe3, - 0xe5, 0xeb, 0x54, 0xee, 0x66, 0x1e, 0x2f, 0xbf, 0x21, 0x67, 0xc5, 0xdc, 0x73, 0x15, 0x28, 0xb4, - 0x59, 0x31, 0xfb, 0x04, 0x8d, 0x65, 0x4f, 0xc3, 0xcd, 0x3f, 0x41, 0xa3, 0xe8, 0x69, 0xb8, 0x19, - 0x28, 0x68, 0xac, 0x68, 0xef, 0xd9, 0xf0, 0x19, 0x22, 0x7c, 0x19, 0x01, 0x3e, 0x89, 0x81, 0x2e, - 0x23, 0x40, 0x27, 0x31, 0xb0, 0x65, 0x04, 0xd8, 0x24, 0x06, 0xb2, 0x8c, 0x00, 0x99, 0xc4, 0xc0, - 0x95, 0x11, 0xe0, 0x92, 0x18, 0xa8, 0x32, 0x02, 0x54, 0x12, 0x03, 0x53, 0x46, 0x80, 0x49, 0x62, - 0x20, 0xca, 0x08, 0x10, 0x49, 0x0c, 0x3c, 0x19, 0x01, 0x1e, 0x89, 0x81, 0x66, 0x56, 0x84, 0x46, - 0x62, 0x61, 0x99, 0x15, 0x61, 0x91, 0x58, 0x48, 0x66, 0x45, 0x48, 0x24, 0x16, 0x8e, 0x59, 0x11, - 0x0e, 0x89, 0x85, 0xe2, 0x4b, 0xc9, 0xed, 0x08, 0xdf, 0x34, 0x7b, 0xc7, 0xbb, 0xe6, 0xb9, 0x3a, - 0xc2, 0x02, 0xd7, 0x3e, 0x4c, 0x14, 0xe5, 0x45, 0xbb, 0x61, 0x65, 0x3b, 0x4e, 0xe1, 0x0d, 0x56, - 0xe0, 0x1a, 0x0b, 0xc6, 0xc2, 0x08, 0xb6, 0x28, 0x9d, 0xab, 0x37, 0x2c, 0x70, 0x6d, 0x46, 0xb4, - 0x7f, 0xeb, 0x5f, 0x79, 0xc7, 0xf6, 0x48, 0x72, 0x3b, 0x36, 0x12, 0xfe, 0x51, 0x3b, 0xb6, 0x7c, - 0x74, 0xc8, 0x69, 0xb0, 0xf3, 0xd1, 0xc1, 0xf6, 0xbd, 0x75, 0xe2, 0x76, 0x70, 0xf9, 0xe8, 0xd0, - 0xd2, 0xa0, 0x3e, 0xdd, 0x7e, 0x8b, 0x30, 0xb8, 0xa9, 0x1f, 0x05, 0x30, 0x78, 0xd4, 0x7e, 0xab, - 0xc0, 0x95, 0x92, 0x51, 0x19, 0x8c, 0x47, 0x66, 0xf0, 0xa8, 0x9d, 0x57, 0x81, 0x2b, 0x2f, 0x23, - 0x33, 0xf8, 0x2b, 0xe8, 0x87, 0x08, 0x83, 0xbd, 0xf0, 0x8f, 0xda, 0x0f, 0xe5, 0xa3, 0x43, 0x1e, - 0xc8, 0x60, 0x3c, 0x02, 0x83, 0xe3, 0xf4, 0x47, 0xf9, 0xe8, 0xd0, 0x06, 0x33, 0xf8, 0xdc, 0xdd, - 0xcc, 0xfb, 0x08, 0x2e, 0x35, 0x3a, 0xed, 0xfa, 0xe1, 0x3d, 0xbd, 0xdd, 0xd6, 0xdb, 0x24, 0x8e, - 0x05, 0xae, 0x12, 0x84, 0x40, 0xfd, 0xf8, 0x74, 0xce, 0x8b, 0xf0, 0x2a, 0xa4, 0x9c, 0x98, 0x16, - 0x0a, 0xca, 0x09, 0x8a, 0xa8, 0x70, 0x54, 0x55, 0xbe, 0xe2, 0x9a, 0x2d, 0x17, 0x94, 0xbf, 0x23, - 0xa6, 0xca, 0xd1, 0x61, 0xed, 0xe7, 0xb6, 0x87, 0xc6, 0xb9, 0x3d, 0x5c, 0x8a, 0xe5, 0x21, 0xe3, - 0xdb, 0x0b, 0x3e, 0xdf, 0x18, 0xaf, 0x8e, 0x61, 0xba, 0xd1, 0x69, 0x37, 0xf4, 0xbe, 0x19, 0xcf, - 0x25, 0x47, 0x47, 0xa8, 0x07, 0x05, 0x8e, 0x96, 0xac, 0x05, 0xa5, 0x34, 0x5f, 0x23, 0xb4, 0x8e, - 0xb5, 0xac, 0xc1, 0x2d, 0x9b, 0x0f, 0x5b, 0xd6, 0xab, 0xec, 0x74, 0xc1, 0x7c, 0xd8, 0x82, 0x5e, - 0x0e, 0xd1, 0xa5, 0xde, 0x76, 0x5f, 0xce, 0xd5, 0xe3, 0xbe, 0xd9, 0x3d, 0x94, 0x67, 0x41, 0xda, - 0x6c, 0xdb, 0x6b, 0x4c, 0x56, 0x26, 0x2d, 0xa7, 0x3e, 0x3e, 0x9d, 0x4b, 0xde, 0x39, 0xee, 0xb4, - 0x9b, 0xd2, 0x66, 0x5b, 0xbe, 0x05, 0x63, 0xdf, 0x69, 0x1d, 0x1c, 0xeb, 0xf6, 0x2b, 0x62, 0xb2, - 0x52, 0x22, 0x0a, 0x2f, 0x87, 0xee, 0x11, 0x59, 0x0b, 0x2f, 0xed, 0xda, 0x53, 0x2f, 0xde, 0xe9, - 0x18, 0xe6, 0x72, 0x71, 0xbd, 0xe9, 0x4c, 0xa1, 0x7d, 0x1f, 0xc0, 0x59, 0xb3, 0xd6, 0xea, 0xef, - 0xcb, 0x0d, 0x77, 0x66, 0x67, 0xe9, 0xf5, 0x8f, 0x4f, 0xe7, 0x4a, 0x71, 0x66, 0xbd, 0xd6, 0x6e, - 0xf5, 0xf7, 0xaf, 0x99, 0x0f, 0x8e, 0xf4, 0xc5, 0xca, 0x03, 0x53, 0xef, 0xbb, 0xb3, 0x1f, 0xb9, - 0x6f, 0x3d, 0xf2, 0x5c, 0x0a, 0xf3, 0x5c, 0x29, 0xee, 0x99, 0x6e, 0xf2, 0xcf, 0x54, 0x78, 0xd2, - 0xe7, 0x79, 0xdb, 0x7d, 0x49, 0x08, 0x91, 0xc4, 0x51, 0x91, 0xc4, 0xe7, 0x8d, 0xe4, 0x91, 0x5b, - 0x1f, 0x85, 0x67, 0xc5, 0xc3, 0x9e, 0x15, 0x9f, 0xe7, 0x59, 0xff, 0xed, 0x64, 0x2b, 0xcd, 0xa7, - 0x3b, 0x46, 0xa7, 0x6b, 0x7c, 0xed, 0xf6, 0x82, 0x9e, 0x6a, 0x17, 0x50, 0x4e, 0x9e, 0x3c, 0x9c, - 0x43, 0xda, 0xfb, 0x92, 0xfb, 0xe4, 0x4e, 0x22, 0x3d, 0xd9, 0x93, 0x7f, 0x5d, 0x7a, 0xaa, 0xaf, - 0x22, 0x42, 0xbf, 0x42, 0x30, 0xe3, 0xab, 0xe4, 0x4e, 0x98, 0x9e, 0x6e, 0x39, 0x37, 0x46, 0x2d, - 0xe7, 0xc4, 0xc1, 0xdf, 0x23, 0x78, 0x4e, 0x28, 0xaf, 0x8e, 0x7b, 0x4b, 0x82, 0x7b, 0xcf, 0xfb, - 0x57, 0xb2, 0x15, 0x19, 0xef, 0x58, 0x78, 0x05, 0x03, 0x66, 0x66, 0x8a, 0x7b, 0x49, 0xc0, 0x7d, - 0x96, 0x1a, 0x04, 0x84, 0xcb, 0x65, 0x00, 0x71, 0xbb, 0x0b, 0xc9, 0x9d, 0x9e, 0xae, 0xcb, 0x2a, - 0x48, 0xdb, 0x3d, 0xe2, 0xe1, 0x94, 0x63, 0xbf, 0xdd, 0xab, 0xf4, 0x5a, 0xc6, 0xee, 0x7e, 0x53, - 0xda, 0xee, 0xc9, 0x57, 0x00, 0x6f, 0x18, 0x6d, 0xe2, 0xd1, 0xb4, 0xa3, 0xb0, 0x61, 0xb4, 0x89, - 0x86, 0x25, 0x93, 0x55, 0x48, 0xbe, 0xa1, 0xb7, 0xee, 0x13, 0x27, 0xc0, 0xd1, 0xb1, 0x46, 0x9a, - 0xf6, 0x38, 0x59, 0xf0, 0x7b, 0x90, 0x72, 0x27, 0x96, 0xe7, 0x2d, 0x8b, 0xfb, 0x26, 0x59, 0x96, - 0x58, 0x58, 0xee, 0x90, 0x37, 0x97, 0x2d, 0x95, 0x17, 0x60, 0xac, 0xd9, 0xd9, 0xdb, 0x37, 0xc9, - 0xe2, 0x7e, 0x35, 0x47, 0xac, 0xdd, 0x85, 0x71, 0xea, 0xd1, 0x53, 0x9e, 0xba, 0xe6, 0x3c, 0x9a, - 0x9c, 0x61, 0xdf, 0x27, 0xee, 0xbe, 0xa5, 0x33, 0x24, 0x67, 0x21, 0xf5, 0xa6, 0xd9, 0xf3, 0x8a, - 0xbe, 0xdb, 0x91, 0xd2, 0x51, 0xed, 0x5d, 0x04, 0xa9, 0x9a, 0xae, 0x1f, 0xd9, 0x01, 0xbf, 0x0a, - 0xc9, 0x5a, 0xf7, 0x47, 0x06, 0x71, 0xf0, 0x12, 0x89, 0xa8, 0x25, 0x26, 0x31, 0xb5, 0xc5, 0xf2, - 0x55, 0x36, 0xee, 0xcf, 0xd2, 0xb8, 0x33, 0x7a, 0x76, 0xec, 0x35, 0x2e, 0xf6, 0x04, 0x40, 0x4b, - 0xc9, 0x17, 0xff, 0xeb, 0x30, 0xc1, 0xac, 0x22, 0xe7, 0x88, 0x1b, 0x92, 0x68, 0xc8, 0xc6, 0xca, - 0xd2, 0xd0, 0x74, 0xb8, 0xc8, 0x2d, 0x6c, 0x99, 0x32, 0x21, 0x0e, 0x31, 0xb5, 0xc3, 0x9c, 0xe7, - 0xc3, 0x1c, 0xac, 0x4a, 0x42, 0x5d, 0x70, 0x62, 0x64, 0x87, 0x7b, 0xde, 0x21, 0x67, 0x38, 0x88, - 0xd6, 0xdf, 0xda, 0x18, 0xe0, 0x46, 0xe7, 0x40, 0x7b, 0x15, 0xc0, 0x49, 0xf9, 0xba, 0x71, 0x7c, - 0x28, 0x64, 0xdd, 0x94, 0x1b, 0xe0, 0x9d, 0x7d, 0x7d, 0x47, 0xef, 0xdb, 0x2a, 0x7c, 0x3f, 0x65, - 0x15, 0x18, 0x70, 0x52, 0xcc, 0xb6, 0x7f, 0x29, 0xd2, 0x3e, 0xb0, 0x13, 0xb3, 0x54, 0x15, 0x47, - 0xf5, 0xae, 0x6e, 0x6e, 0x18, 0x5d, 0x73, 0x5f, 0xef, 0x09, 0x16, 0x45, 0x79, 0x85, 0x4b, 0xd8, - 0xa9, 0xe2, 0x0b, 0xd4, 0x22, 0xd4, 0x68, 0x45, 0xfb, 0xd0, 0x76, 0xd0, 0x6a, 0x05, 0x7c, 0x0f, - 0x88, 0x63, 0x3c, 0xa0, 0xbc, 0xc6, 0xf5, 0x6f, 0x43, 0xdc, 0x14, 0x3e, 0x2d, 0x6f, 0x70, 0xdf, - 0x39, 0xc3, 0x9d, 0xe5, 0xbf, 0x31, 0xdd, 0x98, 0xba, 0x2e, 0xbf, 0x14, 0xe9, 0x72, 0x48, 0x77, - 0x3b, 0x6a, 0x4c, 0x71, 0xdc, 0x98, 0xfe, 0x89, 0x76, 0x1c, 0xd6, 0x70, 0x4d, 0xbf, 0xdf, 0x3a, - 0x3e, 0x30, 0xe5, 0x97, 0x23, 0xb1, 0x2f, 0xa3, 0x2a, 0x75, 0xb5, 0x14, 0x17, 0xfe, 0xb2, 0x54, - 0xa9, 0x50, 0x77, 0xaf, 0x8f, 0x40, 0x81, 0xb2, 0x54, 0xad, 0xd2, 0xb2, 0x9d, 0x7a, 0xef, 0xe1, - 0x1c, 0xfa, 0xe0, 0xe1, 0x5c, 0x42, 0xfb, 0x1d, 0x82, 0x4b, 0x44, 0x93, 0x21, 0xee, 0x35, 0xc1, - 0xf9, 0xcb, 0x6e, 0xcd, 0x08, 0x8a, 0xc0, 0x7f, 0x8d, 0xbc, 0x7f, 0x45, 0xa0, 0xf8, 0x7c, 0x75, - 0xe3, 0x5d, 0x88, 0xe5, 0x72, 0x19, 0xd5, 0xff, 0xf7, 0x31, 0xbf, 0x0b, 0x63, 0x3b, 0x9d, 0x43, - 0xbd, 0x67, 0xbd, 0x09, 0xac, 0x3f, 0x1c, 0x97, 0xdd, 0xc3, 0x1c, 0x67, 0xc8, 0x95, 0x39, 0xce, - 0x71, 0xb2, 0xa2, 0xac, 0x40, 0xb2, 0xd6, 0x32, 0x5b, 0xb6, 0x07, 0x93, 0xb4, 0xbe, 0xb6, 0xcc, - 0x96, 0xb6, 0x02, 0x93, 0x5b, 0x0f, 0xea, 0x6f, 0x9b, 0xba, 0xd1, 0x6e, 0xdd, 0x3b, 0x10, 0xcf, - 0x40, 0xdd, 0x7e, 0x75, 0x39, 0x3f, 0x96, 0x6a, 0xa7, 0x4f, 0x50, 0x39, 0x69, 0xfb, 0xf3, 0x16, - 0x4c, 0x6d, 0x5b, 0x6e, 0xdb, 0x76, 0x9c, 0x99, 0xb3, 0x3a, 0xa6, 0x0f, 0x2f, 0x34, 0x65, 0xd8, - 0x6b, 0xca, 0xb2, 0x80, 0xb6, 0xf8, 0xd6, 0x89, 0xf5, 0xa3, 0x89, 0xb6, 0xf2, 0xc9, 0xd4, 0x54, - 0xfa, 0x52, 0x3e, 0x99, 0x82, 0xf4, 0x45, 0xb2, 0xee, 0xdf, 0x30, 0xa4, 0x9d, 0x56, 0xa7, 0xa6, - 0xdf, 0xef, 0x18, 0x1d, 0xd3, 0xdf, 0xaf, 0x52, 0x8f, 0xe5, 0x6f, 0xc2, 0xb8, 0x15, 0x52, 0xfb, - 0x17, 0x01, 0xec, 0x0a, 0x69, 0x51, 0x84, 0x29, 0xc8, 0x80, 0x4d, 0x1d, 0xcf, 0x46, 0xbe, 0x09, - 0xb8, 0xd1, 0xd8, 0x22, 0x2f, 0xb7, 0xd2, 0x50, 0xd3, 0x2d, 0xbd, 0xdf, 0x6f, 0xed, 0xe9, 0xe4, - 0x17, 0x19, 0xeb, 0xef, 0x35, 0xad, 0x09, 0xe4, 0x12, 0x48, 0x8d, 0x2d, 0xd2, 0xf0, 0xce, 0xc7, - 0x99, 0xa6, 0x29, 0x35, 0xb6, 0x32, 0x7f, 0x41, 0x70, 0x91, 0x1b, 0x95, 0x35, 0x98, 0x74, 0x06, - 0x98, 0xc7, 0xbd, 0xd0, 0xe4, 0xc6, 0x5c, 0x9f, 0xa5, 0x73, 0xfa, 0x9c, 0xd9, 0x80, 0x69, 0x61, - 0x5c, 0x5e, 0x04, 0x99, 0x1d, 0x22, 0x4e, 0x80, 0xdd, 0x50, 0x07, 0x48, 0xb4, 0xff, 0x03, 0xf0, - 0xe2, 0x2a, 0x4f, 0xc3, 0xc4, 0xce, 0xdd, 0xdb, 0xf5, 0x1f, 0x34, 0xea, 0x6f, 0xee, 0xd4, 0x6b, - 0x69, 0xa4, 0xfd, 0x01, 0xc1, 0x04, 0x69, 0x5b, 0x77, 0xbb, 0x47, 0xba, 0x5c, 0x01, 0xb4, 0x41, - 0xf8, 0xf0, 0x64, 0x7e, 0xa3, 0x0d, 0x79, 0x09, 0x50, 0x25, 0x3e, 0xd4, 0xa8, 0x22, 0x17, 0x01, - 0x55, 0x09, 0xc0, 0xf1, 0x90, 0x41, 0x55, 0xed, 0x5f, 0x18, 0x9e, 0x65, 0xdb, 0x68, 0xb7, 0x9e, - 0x5c, 0xe1, 0xbf, 0x9b, 0xca, 0xe3, 0xcb, 0xc5, 0x95, 0xd2, 0xa2, 0xf5, 0x0f, 0xa5, 0xe4, 0x15, - 0xfe, 0x13, 0xca, 0xaf, 0xe2, 0xbb, 0x26, 0x52, 0x4e, 0x32, 0x52, 0xdf, 0x35, 0x11, 0x4e, 0xea, - 0xbb, 0x26, 0xc2, 0x49, 0x7d, 0xd7, 0x44, 0x38, 0xa9, 0xef, 0x28, 0x80, 0x93, 0xfa, 0xae, 0x89, - 0x70, 0x52, 0xdf, 0x35, 0x11, 0x4e, 0xea, 0xbf, 0x26, 0x42, 0xc4, 0xa1, 0xd7, 0x44, 0x78, 0xb9, - 0xff, 0x9a, 0x08, 0x2f, 0xf7, 0x5f, 0x13, 0x29, 0x27, 0xcd, 0xde, 0xb1, 0x1e, 0x7e, 0xe8, 0xc0, - 0xdb, 0x0f, 0xfb, 0x06, 0xf4, 0x0a, 0xf0, 0x36, 0x4c, 0x3b, 0xfb, 0x11, 0xd5, 0xae, 0x61, 0xb6, - 0x3a, 0x86, 0xde, 0x93, 0xbf, 0x01, 0x93, 0xce, 0x90, 0xf3, 0x95, 0x13, 0xf4, 0x15, 0xe8, 0xc8, - 0x49, 0xb9, 0xe5, 0xb4, 0xb5, 0x2f, 0x93, 0x30, 0xe3, 0x0c, 0x34, 0x5a, 0x87, 0x3a, 0x77, 0xc9, - 0x68, 0x41, 0x38, 0x52, 0x9a, 0xb2, 0xcc, 0x07, 0xa7, 0x73, 0xce, 0xe8, 0x06, 0x25, 0xd3, 0x82, - 0x70, 0xb8, 0xc4, 0xeb, 0x79, 0xef, 0x9f, 0x05, 0xe1, 0xe2, 0x11, 0xaf, 0x47, 0x5f, 0x37, 0x54, - 0xcf, 0xbd, 0x82, 0xc4, 0xeb, 0xd5, 0x28, 0xcb, 0x16, 0x84, 0xcb, 0x48, 0xbc, 0x5e, 0x9d, 0xf2, - 0x6d, 0x41, 0x38, 0x7a, 0xe2, 0xf5, 0x6e, 0x52, 0xe6, 0x2d, 0x08, 0x87, 0x50, 0xbc, 0xde, 0xb7, - 0x28, 0x07, 0x17, 0x84, 0xab, 0x4a, 0xbc, 0xde, 0xeb, 0x94, 0x8d, 0x0b, 0xc2, 0xa5, 0x25, 0x5e, - 0x6f, 0x93, 0xf2, 0x32, 0x27, 0x5e, 0x5f, 0xe2, 0x15, 0x6f, 0x79, 0x0c, 0xcd, 0x89, 0x17, 0x99, - 0x78, 0xcd, 0x6f, 0x7b, 0x5c, 0xcd, 0x89, 0x57, 0x9a, 0x78, 0xcd, 0x37, 0x3c, 0xd6, 0xe6, 0xc4, - 0xa3, 0x32, 0x5e, 0x73, 0xcb, 0xe3, 0x6f, 0x4e, 0x3c, 0x34, 0xe3, 0x35, 0x1b, 0x1e, 0x93, 0x73, - 0xe2, 0xf1, 0x19, 0xaf, 0xb9, 0xed, 0xed, 0xa1, 0x7f, 0x24, 0xd0, 0x8f, 0xb9, 0x04, 0xa5, 0x09, - 0xf4, 0x83, 0x00, 0xea, 0x69, 0x02, 0xf5, 0x20, 0x80, 0x76, 0x9a, 0x40, 0x3b, 0x08, 0xa0, 0x9c, - 0x26, 0x50, 0x0e, 0x02, 0xe8, 0xa6, 0x09, 0x74, 0x83, 0x00, 0xaa, 0x69, 0x02, 0xd5, 0x20, 0x80, - 0x66, 0x9a, 0x40, 0x33, 0x08, 0xa0, 0x98, 0x26, 0x50, 0x0c, 0x02, 0xe8, 0xa5, 0x09, 0xf4, 0x82, - 0x00, 0x6a, 0xcd, 0x8b, 0xd4, 0x82, 0x20, 0x5a, 0xcd, 0x8b, 0xb4, 0x82, 0x20, 0x4a, 0xbd, 0x28, - 0x52, 0x6a, 0x7c, 0x70, 0x3a, 0x37, 0x66, 0x0d, 0x31, 0x6c, 0x9a, 0x17, 0xd9, 0x04, 0x41, 0x4c, - 0x9a, 0x17, 0x99, 0x04, 0x41, 0x2c, 0x9a, 0x17, 0x59, 0x04, 0x41, 0x0c, 0x7a, 0x24, 0x32, 0xc8, - 0xbb, 0xe2, 0xa3, 0x09, 0x27, 0x8a, 0x51, 0x0c, 0xc2, 0x31, 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, - 0x60, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, 0x70, 0x0c, 0x06, 0xe1, 0x38, - 0x0c, 0xc2, 0xb1, 0x18, 0x84, 0xc3, 0x18, 0x34, 0x2f, 0x5e, 0x78, 0x80, 0xa0, 0x82, 0x34, 0x2f, - 0x9e, 0x7c, 0x46, 0x53, 0x08, 0xc7, 0xa2, 0x10, 0x0e, 0xa3, 0xd0, 0x47, 0x18, 0x9e, 0xe5, 0x28, - 0x44, 0x8e, 0x87, 0x9e, 0x56, 0x05, 0x5a, 0x8b, 0x71, 0xbf, 0x22, 0x88, 0x53, 0x6b, 0x31, 0xce, - 0xa8, 0x87, 0xf1, 0xcc, 0x5f, 0x85, 0xea, 0x31, 0xaa, 0xd0, 0x4d, 0xca, 0xa1, 0xb5, 0x18, 0xf7, - 0x2e, 0xfc, 0xdc, 0x5b, 0x1f, 0x56, 0x04, 0x5e, 0x8f, 0x55, 0x04, 0x36, 0x63, 0x15, 0x81, 0x5b, - 0x1e, 0x82, 0x3f, 0x95, 0xe0, 0x39, 0x0f, 0x41, 0xe7, 0xaf, 0x9d, 0x07, 0x47, 0x56, 0x09, 0xf0, - 0x4e, 0xa8, 0x64, 0xf7, 0xd4, 0x86, 0x81, 0x51, 0xda, 0x6c, 0xcb, 0xb7, 0xf9, 0xb3, 0xaa, 0xf2, - 0xa8, 0xe7, 0x37, 0x0c, 0xe2, 0x64, 0x2f, 0x74, 0x1e, 0xf0, 0x66, 0xbb, 0x6f, 0x57, 0x8b, 0xa0, - 0x65, 0xab, 0x4d, 0x4b, 0x2c, 0x37, 0xe1, 0x82, 0xad, 0xde, 0xb7, 0xe1, 0x3d, 0xcf, 0xc2, 0xb5, - 0x26, 0x99, 0x49, 0x7b, 0x84, 0x20, 0xcb, 0x51, 0xf9, 0xe9, 0x9c, 0x18, 0xbc, 0x12, 0xeb, 0xc4, - 0x80, 0x4b, 0x10, 0xef, 0xf4, 0xe0, 0xff, 0xfd, 0x07, 0xd5, 0x6c, 0x96, 0x88, 0x27, 0x09, 0x3f, - 0x81, 0x29, 0xef, 0x09, 0xec, 0x4f, 0xb6, 0xd5, 0xe8, 0xcd, 0xcc, 0xa0, 0xd4, 0x5c, 0x15, 0x36, - 0xd1, 0x86, 0x9a, 0xd1, 0x6c, 0xd5, 0xca, 0x30, 0xdd, 0xe8, 0xda, 0x1b, 0x00, 0xfd, 0x4e, 0xd7, - 0xe8, 0x6f, 0xb5, 0x8e, 0xa2, 0xf6, 0x22, 0x52, 0x56, 0x6b, 0x7e, 0xf2, 0xeb, 0xb9, 0x84, 0xf6, - 0x32, 0x4c, 0xde, 0x31, 0x7a, 0xfa, 0x6e, 0x77, 0xcf, 0xe8, 0xfc, 0x58, 0x6f, 0x0b, 0x86, 0xe3, - 0xae, 0x61, 0x39, 0xf9, 0xd8, 0xd2, 0xfe, 0x05, 0x82, 0xcb, 0xac, 0xfa, 0x77, 0x3b, 0xe6, 0xfe, - 0xa6, 0x61, 0xf5, 0xf4, 0xaf, 0x42, 0x4a, 0x27, 0xc0, 0xd9, 0xef, 0xae, 0x09, 0xf7, 0x33, 0x32, - 0x50, 0x7d, 0xd1, 0xfe, 0xb7, 0x49, 0x4d, 0x84, 0x4d, 0x10, 0x77, 0xd9, 0x62, 0xe6, 0x2a, 0x8c, - 0x39, 0xf3, 0xf3, 0x7e, 0x5d, 0x14, 0xfc, 0xfa, 0x6d, 0x80, 0x5f, 0x36, 0x8f, 0xe4, 0x5b, 0x9c, - 0x5f, 0xcc, 0xd7, 0x6a, 0xa0, 0xfa, 0xa2, 0x4b, 0xbe, 0x4a, 0xca, 0xea, 0xff, 0x6c, 0x46, 0x45, - 0x3b, 0x99, 0x83, 0x54, 0x5d, 0xd4, 0x09, 0xf6, 0xb3, 0x06, 0xc9, 0x46, 0xb7, 0xad, 0xcb, 0xcf, - 0xc1, 0xd8, 0x1b, 0xad, 0x7b, 0xfa, 0x01, 0x09, 0xb2, 0xf3, 0x43, 0x5e, 0x80, 0x54, 0x75, 0xbf, - 0x73, 0xd0, 0xee, 0xe9, 0x06, 0x39, 0xb2, 0x27, 0x3b, 0xe8, 0x96, 0x4d, 0x93, 0xca, 0xb4, 0x2a, - 0x5c, 0x6a, 0x74, 0x8d, 0xca, 0x03, 0x93, 0xad, 0x1b, 0x8b, 0x42, 0x8a, 0x90, 0x23, 0x9f, 0xdb, - 0x56, 0x36, 0x5a, 0x0a, 0x95, 0xb1, 0x8f, 0x4f, 0xe7, 0xd0, 0x0e, 0xdd, 0x3e, 0xdf, 0x82, 0xe7, - 0x49, 0xfa, 0xf8, 0xa6, 0x2a, 0x46, 0x4d, 0x35, 0x4e, 0x8e, 0xa9, 0x99, 0xe9, 0x36, 0xad, 0xe9, - 0x8c, 0xc0, 0xe9, 0x9e, 0xcc, 0x33, 0xab, 0x29, 0x1a, 0xea, 0x19, 0x1e, 0xc9, 0xb3, 0xc0, 0xe9, - 0x16, 0xa3, 0xa6, 0x13, 0x3c, 0x7b, 0x11, 0xc6, 0xa9, 0x8c, 0x61, 0x03, 0x9b, 0x29, 0xc5, 0xbc, - 0x06, 0x13, 0x4c, 0xc2, 0xca, 0x63, 0x80, 0x36, 0xd2, 0x09, 0xeb, 0xbf, 0x4a, 0x1a, 0x59, 0xff, - 0x55, 0xd3, 0x52, 0xfe, 0x2a, 0x4c, 0x0b, 0xdb, 0x97, 0x96, 0xa4, 0x96, 0x06, 0xeb, 0xbf, 0x7a, - 0x7a, 0x22, 0x93, 0x7c, 0xef, 0x37, 0x6a, 0x22, 0xff, 0x0a, 0xc8, 0xfe, 0x8d, 0x4e, 0xf9, 0x02, - 0x48, 0x1b, 0xd6, 0x94, 0xcf, 0x83, 0x54, 0xa9, 0xa4, 0x51, 0x66, 0xfa, 0x67, 0xbf, 0xcc, 0x4e, - 0x54, 0x74, 0xd3, 0xd4, 0x7b, 0x77, 0x75, 0xb3, 0x52, 0x21, 0xc6, 0xaf, 0xc1, 0xe5, 0xc0, 0x8d, - 0x52, 0xcb, 0xbe, 0x5a, 0x75, 0xec, 0x6b, 0x35, 0x9f, 0x7d, 0xad, 0x66, 0xdb, 0xa3, 0xb2, 0x7b, - 0xe0, 0xbc, 0x21, 0x07, 0x6c, 0x32, 0x2a, 0x6d, 0xe6, 0x80, 0x7b, 0xa3, 0xfc, 0x1a, 0xd1, 0xad, - 0x04, 0xea, 0xea, 0x11, 0x07, 0xd6, 0x95, 0x72, 0x95, 0xd8, 0x57, 0x03, 0xed, 0xef, 0x0b, 0xa7, - 0xaa, 0xfc, 0x1b, 0x82, 0x4c, 0x52, 0xa5, 0x0e, 0xd7, 0x02, 0x27, 0xd9, 0x67, 0xee, 0xba, 0xd7, - 0xa8, 0xc3, 0xf5, 0x40, 0xdd, 0x4e, 0xc4, 0x9d, 0xaf, 0x7a, 0x79, 0x89, 0xbc, 0xe4, 0x37, 0x96, - 0xe5, 0xcb, 0x6e, 0x8e, 0x72, 0x15, 0x98, 0x04, 0xc8, 0xd5, 0x2a, 0x57, 0x89, 0x41, 0x25, 0xd4, - 0x20, 0x3c, 0x4a, 0xae, 0x65, 0xf9, 0x75, 0x32, 0x49, 0x35, 0x74, 0x92, 0x88, 0x50, 0xb9, 0xe6, - 0x95, 0x9d, 0x93, 0x33, 0x35, 0xf1, 0xf8, 0x4c, 0x4d, 0xfc, 0xe3, 0x4c, 0x4d, 0x7c, 0x72, 0xa6, - 0xa2, 0xcf, 0xce, 0x54, 0xf4, 0xf9, 0x99, 0x8a, 0xbe, 0x38, 0x53, 0xd1, 0x3b, 0x03, 0x15, 0x7d, - 0x30, 0x50, 0xd1, 0x87, 0x03, 0x15, 0xfd, 0x71, 0xa0, 0xa2, 0x47, 0x03, 0x15, 0x9d, 0x0c, 0xd4, - 0xc4, 0xe3, 0x81, 0x8a, 0x3e, 0x19, 0xa8, 0xe8, 0xb3, 0x81, 0x9a, 0xf8, 0x7c, 0xa0, 0xa2, 0x2f, - 0x06, 0x6a, 0xe2, 0x9d, 0x4f, 0xd5, 0xc4, 0xc3, 0x4f, 0xd5, 0xc4, 0x07, 0x9f, 0xaa, 0xe8, 0x3f, - 0x01, 0x00, 0x00, 0xff, 0xff, 0x73, 0x0f, 0x9e, 0x30, 0x4d, 0x36, 0x00, 0x00, + 0x2e, 0x39, 0x06, 0xbd, 0x34, 0x87, 0x1c, 0x8a, 0xdd, 0x9d, 0x9d, 0x9d, 0x19, 0xee, 0x72, 0x97, + 0x96, 0xd2, 0xe6, 0x62, 0x8b, 0xf3, 0xde, 0x9b, 0x79, 0xfb, 0x7e, 0xbf, 0xf7, 0xf6, 0xed, 0xcc, + 0x40, 0x7a, 0xaf, 0x73, 0x78, 0xbf, 0xd3, 0x5b, 0x3e, 0x36, 0x0e, 0x1b, 0xdd, 0x5e, 0xab, 0x71, + 0xa0, 0x77, 0x97, 0xcd, 0x96, 0x6e, 0xea, 0x3d, 0x73, 0xe9, 0xa8, 0xdb, 0x31, 0x3b, 0x72, 0xdc, + 0xfa, 0x3b, 0x75, 0x7d, 0xbf, 0x6d, 0xb6, 0x8e, 0xef, 0x2f, 0xed, 0x75, 0x0e, 0x97, 0xf7, 0x3b, + 0xfb, 0x9d, 0x65, 0x5b, 0x78, 0xff, 0xf8, 0x81, 0xfd, 0xcb, 0xfe, 0x61, 0xff, 0xe5, 0x18, 0x69, + 0xff, 0xc4, 0x30, 0x55, 0x6b, 0x37, 0x77, 0x8e, 0xcc, 0x5a, 0xc3, 0x6c, 0xbf, 0xa5, 0xcb, 0x73, + 0x30, 0x7e, 0xab, 0xad, 0x1f, 0x34, 0x57, 0x14, 0x94, 0x46, 0x19, 0x54, 0x8a, 0x9f, 0x9c, 0xce, + 0xc7, 0xea, 0x64, 0x8c, 0x4a, 0xf3, 0x8a, 0x94, 0x46, 0x19, 0x89, 0x93, 0xe6, 0xa9, 0x74, 0x55, + 0xc1, 0x69, 0x94, 0x19, 0xe3, 0xa4, 0xab, 0x54, 0x5a, 0x50, 0xe2, 0x69, 0x94, 0xc1, 0x9c, 0xb4, + 0x40, 0xa5, 0x6b, 0xca, 0x58, 0x1a, 0x65, 0x2e, 0x71, 0xd2, 0x35, 0x2a, 0x5d, 0x57, 0xc6, 0xd3, + 0x28, 0x13, 0xe7, 0xa4, 0xeb, 0x54, 0x7a, 0x43, 0x79, 0x26, 0x8d, 0x32, 0x97, 0x39, 0xe9, 0x0d, + 0x2a, 0xdd, 0x50, 0x12, 0x69, 0x94, 0x91, 0x39, 0xe9, 0x06, 0x95, 0xde, 0x54, 0x26, 0xd2, 0x28, + 0xf3, 0x0c, 0x27, 0xbd, 0x29, 0xab, 0xf0, 0x8c, 0xf3, 0xe4, 0x39, 0x05, 0xd2, 0x28, 0x33, 0x43, + 0xc4, 0xee, 0xa0, 0x27, 0x5f, 0x51, 0x26, 0xd3, 0x28, 0x33, 0xce, 0xcb, 0x57, 0x3c, 0x79, 0x5e, + 0x99, 0x4a, 0xa3, 0x4c, 0x92, 0x97, 0xe7, 0x3d, 0xf9, 0xaa, 0x72, 0x29, 0x8d, 0x32, 0x09, 0x5e, + 0xbe, 0xea, 0xc9, 0x0b, 0xca, 0x74, 0x1a, 0x65, 0x26, 0x78, 0x79, 0xc1, 0x93, 0xaf, 0x29, 0x33, + 0x69, 0x94, 0x99, 0xe2, 0xe5, 0x6b, 0xda, 0xbb, 0x36, 0xbc, 0x86, 0x07, 0xef, 0x2c, 0x0f, 0x2f, + 0x05, 0x76, 0x96, 0x07, 0x96, 0x42, 0x3a, 0xcb, 0x43, 0x4a, 0xc1, 0x9c, 0xe5, 0xc1, 0xa4, 0x30, + 0xce, 0xf2, 0x30, 0x52, 0x00, 0x67, 0x79, 0x00, 0x29, 0x74, 0xb3, 0x3c, 0x74, 0x14, 0xb4, 0x59, + 0x1e, 0x34, 0x0a, 0xd7, 0x2c, 0x0f, 0x17, 0x05, 0x4a, 0x11, 0x80, 0xf2, 0x20, 0x52, 0x04, 0x88, + 0x3c, 0x70, 0x14, 0x01, 0x1c, 0x0f, 0x16, 0x45, 0x80, 0xc5, 0x03, 0x44, 0x11, 0x00, 0xf1, 0xa0, + 0x50, 0x04, 0x28, 0x3c, 0x10, 0x48, 0x8e, 0xd5, 0xf5, 0x23, 0x9f, 0x1c, 0xc3, 0x43, 0x73, 0x0c, + 0x0f, 0xcd, 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, + 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0xc3, 0x73, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, + 0x1c, 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xc0, 0x1c, 0xf3, 0xe0, 0x9d, 0xe5, + 0xe1, 0xf5, 0xcd, 0x31, 0x1c, 0x90, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, + 0xc3, 0x01, 0x39, 0x86, 0x03, 0x72, 0x0c, 0x07, 0xe4, 0x18, 0x0e, 0xca, 0x31, 0x1c, 0x98, 0x63, + 0x38, 0x30, 0xc7, 0x70, 0x60, 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x81, 0x39, 0x86, 0xd9, 0x1c, 0xfb, + 0x33, 0x06, 0xd9, 0xc9, 0xb1, 0x3b, 0x8d, 0xbd, 0x1f, 0xea, 0x4d, 0x02, 0x85, 0x2a, 0x64, 0xda, + 0xb8, 0x05, 0x5d, 0xd2, 0x83, 0x44, 0x15, 0x72, 0x8d, 0x97, 0xe7, 0xa9, 0xdc, 0xcd, 0x36, 0x5e, + 0xbe, 0x4a, 0xe5, 0x6e, 0xbe, 0xf1, 0xf2, 0x02, 0x95, 0xbb, 0x19, 0xc7, 0xcb, 0xd7, 0xa8, 0xdc, + 0xcd, 0x39, 0x5e, 0xbe, 0x4e, 0xe5, 0x6e, 0xd6, 0xf1, 0xf2, 0x1b, 0x54, 0xee, 0xe6, 0x1d, 0x2f, + 0xdf, 0xa0, 0x72, 0x37, 0xf3, 0x78, 0xf9, 0x4d, 0x39, 0x2d, 0xe6, 0x9e, 0xab, 0x40, 0xa1, 0x4d, + 0x8b, 0xd9, 0x27, 0x68, 0xac, 0x78, 0x1a, 0x6e, 0xfe, 0x09, 0x1a, 0x79, 0x4f, 0xc3, 0xcd, 0x40, + 0x41, 0x63, 0x55, 0x7b, 0xcf, 0x86, 0xcf, 0x10, 0xe1, 0x4b, 0x09, 0xf0, 0x49, 0x0c, 0x74, 0x29, + 0x01, 0x3a, 0x89, 0x81, 0x2d, 0x25, 0xc0, 0x26, 0x31, 0x90, 0xa5, 0x04, 0xc8, 0x24, 0x06, 0xae, + 0x94, 0x00, 0x97, 0xc4, 0x40, 0x95, 0x12, 0xa0, 0x92, 0x18, 0x98, 0x52, 0x02, 0x4c, 0x12, 0x03, + 0x51, 0x4a, 0x80, 0x48, 0x62, 0xe0, 0x49, 0x09, 0xf0, 0x48, 0x0c, 0x34, 0x73, 0x22, 0x34, 0x12, + 0x0b, 0xcb, 0x9c, 0x08, 0x8b, 0xc4, 0x42, 0x32, 0x27, 0x42, 0x22, 0xb1, 0x70, 0xcc, 0x89, 0x70, + 0x48, 0x2c, 0x14, 0x5f, 0x4a, 0x6e, 0x47, 0xf8, 0xa6, 0xd9, 0x3d, 0xde, 0x33, 0xcf, 0xd5, 0x11, + 0xe6, 0xb8, 0xf6, 0x61, 0x32, 0x2f, 0x2f, 0xd9, 0x0d, 0x2b, 0xdb, 0x71, 0x0a, 0x6f, 0xb0, 0x1c, + 0xd7, 0x58, 0x30, 0x16, 0x86, 0xbf, 0x45, 0xe1, 0x5c, 0xbd, 0x61, 0x8e, 0x6b, 0x33, 0xc2, 0xfd, + 0xdb, 0xf8, 0xca, 0x3b, 0xb6, 0xc7, 0x92, 0xdb, 0xb1, 0x91, 0xf0, 0x8f, 0xda, 0xb1, 0x65, 0xc3, + 0x43, 0x4e, 0x83, 0x9d, 0x0d, 0x0f, 0xf6, 0xc0, 0x5b, 0x27, 0x6a, 0x07, 0x97, 0x0d, 0x0f, 0x2d, + 0x0d, 0xea, 0xc5, 0xf6, 0x5b, 0x84, 0xc1, 0x75, 0xfd, 0xc8, 0x87, 0xc1, 0xa3, 0xf6, 0x5b, 0x39, + 0xae, 0x94, 0x8c, 0xca, 0x60, 0x3c, 0x32, 0x83, 0x47, 0xed, 0xbc, 0x72, 0x5c, 0x79, 0x19, 0x99, + 0xc1, 0x5f, 0x41, 0x3f, 0x44, 0x18, 0xec, 0x85, 0x7f, 0xd4, 0x7e, 0x28, 0x1b, 0x1e, 0x72, 0x5f, + 0x06, 0xe3, 0x11, 0x18, 0x1c, 0xa5, 0x3f, 0xca, 0x86, 0x87, 0xd6, 0x9f, 0xc1, 0xe7, 0xee, 0x66, + 0xde, 0x47, 0x70, 0xb9, 0xd6, 0x6e, 0x56, 0x0f, 0xef, 0xeb, 0xcd, 0xa6, 0xde, 0x24, 0x71, 0xcc, + 0x71, 0x95, 0x20, 0x00, 0xea, 0x27, 0xa7, 0xf3, 0x5e, 0x84, 0xd7, 0x20, 0xe1, 0xc4, 0x34, 0x97, + 0x53, 0x4e, 0x50, 0x48, 0x85, 0xa3, 0xaa, 0xf2, 0x55, 0xd7, 0x6c, 0x25, 0xa7, 0xfc, 0x1d, 0x31, + 0x55, 0x8e, 0x0e, 0x6b, 0x3f, 0xb7, 0x3d, 0x34, 0xce, 0xed, 0xe1, 0x72, 0x24, 0x0f, 0x19, 0xdf, + 0x5e, 0x18, 0xf0, 0x8d, 0xf1, 0xea, 0x18, 0x66, 0x6a, 0xed, 0x66, 0x4d, 0xef, 0x99, 0xd1, 0x5c, + 0x72, 0x74, 0x84, 0x7a, 0x90, 0xe3, 0x68, 0xc9, 0x5a, 0x50, 0x4a, 0xf3, 0x35, 0x42, 0x6b, 0x5b, + 0xcb, 0x1a, 0xdc, 0xb2, 0xd9, 0xa0, 0x65, 0xbd, 0xca, 0x4e, 0x17, 0xcc, 0x06, 0x2d, 0xe8, 0xe5, + 0x10, 0x5d, 0xea, 0x6d, 0xf7, 0xe5, 0x5c, 0x3e, 0xee, 0x99, 0x9d, 0x43, 0x79, 0x0e, 0xa4, 0xad, + 0xa6, 0xbd, 0xc6, 0x54, 0x69, 0xca, 0x72, 0xea, 0xe3, 0xd3, 0xf9, 0xf8, 0xdd, 0xe3, 0x76, 0xb3, + 0x2e, 0x6d, 0x35, 0xe5, 0xdb, 0x30, 0xf6, 0x9d, 0xc6, 0xc1, 0xb1, 0x6e, 0xbf, 0x22, 0xa6, 0x4a, + 0x05, 0xa2, 0xf0, 0x72, 0xe0, 0x1e, 0x91, 0xb5, 0xf0, 0xf2, 0x9e, 0x3d, 0xf5, 0xd2, 0xdd, 0xb6, + 0x61, 0xae, 0xe4, 0x37, 0xea, 0xce, 0x14, 0xda, 0xf7, 0x01, 0x9c, 0x35, 0x2b, 0x8d, 0x5e, 0x4b, + 0xae, 0xb9, 0x33, 0x3b, 0x4b, 0x6f, 0x7c, 0x7c, 0x3a, 0x5f, 0x88, 0x32, 0xeb, 0xf5, 0x66, 0xa3, + 0xd7, 0xba, 0x6e, 0x3e, 0x3c, 0xd2, 0x97, 0x4a, 0x0f, 0x4d, 0xbd, 0xe7, 0xce, 0x7e, 0xe4, 0xbe, + 0xf5, 0xc8, 0x73, 0x29, 0xcc, 0x73, 0x25, 0xb8, 0x67, 0xba, 0xc5, 0x3f, 0x53, 0xee, 0x69, 0x9f, + 0xe7, 0x6d, 0xf7, 0x25, 0x21, 0x44, 0x12, 0x87, 0x45, 0x12, 0x9f, 0x37, 0x92, 0x47, 0x6e, 0x7d, + 0x14, 0x9e, 0x15, 0x0f, 0x7b, 0x56, 0x7c, 0x9e, 0x67, 0xfd, 0xb7, 0x93, 0xad, 0x34, 0x9f, 0xee, + 0x1a, 0xed, 0x8e, 0xf1, 0xb5, 0xdb, 0x0b, 0xba, 0xd0, 0x2e, 0xa0, 0x18, 0x3f, 0x79, 0x34, 0x8f, + 0xb4, 0xf7, 0x25, 0xf7, 0xc9, 0x9d, 0x44, 0x7a, 0xba, 0x27, 0xff, 0xba, 0xf4, 0x54, 0x5f, 0x45, + 0x84, 0x7e, 0x85, 0x60, 0x76, 0xa0, 0x92, 0x3b, 0x61, 0xba, 0xd8, 0x72, 0x6e, 0x8c, 0x5a, 0xce, + 0x89, 0x83, 0xbf, 0x47, 0xf0, 0x9c, 0x50, 0x5e, 0x1d, 0xf7, 0x96, 0x05, 0xf7, 0x9e, 0x1f, 0x5c, + 0xc9, 0x56, 0x64, 0xbc, 0x63, 0xe1, 0x15, 0x0c, 0x98, 0x99, 0x29, 0xee, 0x05, 0x01, 0xf7, 0x39, + 0x6a, 0xe0, 0x13, 0x2e, 0x97, 0x01, 0xc4, 0xed, 0x0e, 0xc4, 0x77, 0xbb, 0xba, 0x2e, 0xab, 0x20, + 0xed, 0x74, 0x89, 0x87, 0xd3, 0x8e, 0xfd, 0x4e, 0xb7, 0xd4, 0x6d, 0x18, 0x7b, 0xad, 0xba, 0xb4, + 0xd3, 0x95, 0xaf, 0x02, 0xde, 0x34, 0x9a, 0xc4, 0xa3, 0x19, 0x47, 0x61, 0xd3, 0x68, 0x12, 0x0d, + 0x4b, 0x26, 0xab, 0x10, 0x7f, 0x43, 0x6f, 0x3c, 0x20, 0x4e, 0x80, 0xa3, 0x63, 0x8d, 0xd4, 0xed, + 0x71, 0xb2, 0xe0, 0xf7, 0x20, 0xe1, 0x4e, 0x2c, 0x2f, 0x58, 0x16, 0x0f, 0x4c, 0xb2, 0x2c, 0xb1, + 0xb0, 0xdc, 0x21, 0x6f, 0x2e, 0x5b, 0x2a, 0x2f, 0xc2, 0x58, 0xbd, 0xbd, 0xdf, 0x32, 0xc9, 0xe2, + 0x83, 0x6a, 0x8e, 0x58, 0xbb, 0x07, 0x13, 0xd4, 0xa3, 0x0b, 0x9e, 0xba, 0xe2, 0x3c, 0x9a, 0x9c, + 0x62, 0xdf, 0x27, 0xee, 0xbe, 0xa5, 0x33, 0x24, 0xa7, 0x21, 0xf1, 0xa6, 0xd9, 0xf5, 0x8a, 0xbe, + 0xdb, 0x91, 0xd2, 0x51, 0xed, 0x5d, 0x04, 0x89, 0x8a, 0xae, 0x1f, 0xd9, 0x01, 0xbf, 0x06, 0xf1, + 0x4a, 0xe7, 0x47, 0x06, 0x71, 0xf0, 0x32, 0x89, 0xa8, 0x25, 0x26, 0x31, 0xb5, 0xc5, 0xf2, 0x35, + 0x36, 0xee, 0xcf, 0xd2, 0xb8, 0x33, 0x7a, 0x76, 0xec, 0x35, 0x2e, 0xf6, 0x04, 0x40, 0x4b, 0x69, + 0x20, 0xfe, 0x37, 0x60, 0x92, 0x59, 0x45, 0xce, 0x10, 0x37, 0x24, 0xd1, 0x90, 0x8d, 0x95, 0xa5, + 0xa1, 0xe9, 0x70, 0x89, 0x5b, 0xd8, 0x32, 0x65, 0x42, 0x1c, 0x60, 0x6a, 0x87, 0x39, 0xcb, 0x87, + 0xd9, 0x5f, 0x95, 0x84, 0x3a, 0xe7, 0xc4, 0xc8, 0x0e, 0xf7, 0x82, 0x43, 0xce, 0x60, 0x10, 0xad, + 0xbf, 0xb5, 0x31, 0xc0, 0xb5, 0xf6, 0x81, 0xf6, 0x2a, 0x80, 0x93, 0xf2, 0x55, 0xe3, 0xf8, 0x50, + 0xc8, 0xba, 0x69, 0x37, 0xc0, 0xbb, 0x2d, 0x7d, 0x57, 0xef, 0xd9, 0x2a, 0x7c, 0x3f, 0x65, 0x15, + 0x18, 0x70, 0x52, 0xcc, 0xb6, 0x7f, 0x29, 0xd4, 0xde, 0xb7, 0x13, 0xb3, 0x54, 0x15, 0x47, 0xf5, + 0x9e, 0x6e, 0x6e, 0x1a, 0x1d, 0xb3, 0xa5, 0x77, 0x05, 0x8b, 0xbc, 0xbc, 0xca, 0x25, 0xec, 0x74, + 0xfe, 0x05, 0x6a, 0x11, 0x68, 0xb4, 0xaa, 0x7d, 0x68, 0x3b, 0x68, 0xb5, 0x02, 0x03, 0x0f, 0x88, + 0x23, 0x3c, 0xa0, 0xbc, 0xce, 0xf5, 0x6f, 0x43, 0xdc, 0x14, 0x3e, 0x2d, 0x6f, 0x72, 0xdf, 0x39, + 0xc3, 0x9d, 0xe5, 0xbf, 0x31, 0xdd, 0x98, 0xba, 0x2e, 0xbf, 0x14, 0xea, 0x72, 0x40, 0x77, 0x3b, + 0x6a, 0x4c, 0x71, 0xd4, 0x98, 0xfe, 0x89, 0x76, 0x1c, 0xd6, 0x70, 0x45, 0x7f, 0xd0, 0x38, 0x3e, + 0x30, 0xe5, 0x97, 0x43, 0xb1, 0x2f, 0xa2, 0x32, 0x75, 0xb5, 0x10, 0x15, 0xfe, 0xa2, 0x54, 0x2a, + 0x51, 0x77, 0x6f, 0x8c, 0x40, 0x81, 0xa2, 0x54, 0x2e, 0xd3, 0xb2, 0x9d, 0x78, 0xef, 0xd1, 0x3c, + 0xfa, 0xe0, 0xd1, 0x7c, 0x4c, 0xfb, 0x1d, 0x82, 0xcb, 0x44, 0x93, 0x21, 0xee, 0x75, 0xc1, 0xf9, + 0x2b, 0x6e, 0xcd, 0xf0, 0x8b, 0xc0, 0x7f, 0x8d, 0xbc, 0x7f, 0x45, 0xa0, 0x0c, 0xf8, 0xea, 0xc6, + 0x3b, 0x17, 0xc9, 0xe5, 0x22, 0xaa, 0xfe, 0xef, 0x63, 0x7e, 0x0f, 0xc6, 0x76, 0xdb, 0x87, 0x7a, + 0xd7, 0x7a, 0x13, 0x58, 0x7f, 0x38, 0x2e, 0xbb, 0x87, 0x39, 0xce, 0x90, 0x2b, 0x73, 0x9c, 0xe3, + 0x64, 0x79, 0x59, 0x81, 0x78, 0xa5, 0x61, 0x36, 0x6c, 0x0f, 0xa6, 0x68, 0x7d, 0x6d, 0x98, 0x0d, + 0x6d, 0x15, 0xa6, 0xb6, 0x1f, 0x56, 0xdf, 0x36, 0x75, 0xa3, 0xd9, 0xb8, 0x7f, 0x20, 0x9e, 0x81, + 0xba, 0xfd, 0xea, 0x4a, 0x76, 0x2c, 0xd1, 0x4c, 0x9e, 0xa0, 0x62, 0xdc, 0xf6, 0xe7, 0x2d, 0x98, + 0xde, 0xb1, 0xdc, 0xb6, 0xed, 0x38, 0x33, 0x67, 0x75, 0x4c, 0x1f, 0x5e, 0x68, 0xca, 0xb0, 0xd7, + 0x94, 0xa5, 0x01, 0x6d, 0xf3, 0xad, 0x13, 0xeb, 0x47, 0x1d, 0x6d, 0x67, 0xe3, 0x89, 0xe9, 0xe4, + 0xe5, 0x6c, 0x3c, 0x01, 0xc9, 0x4b, 0x64, 0xdd, 0xbf, 0x61, 0x48, 0x3a, 0xad, 0x4e, 0x45, 0x7f, + 0xd0, 0x36, 0xda, 0xe6, 0x60, 0xbf, 0x4a, 0x3d, 0x96, 0xbf, 0x09, 0x13, 0x56, 0x48, 0xed, 0x5f, + 0x04, 0xb0, 0xab, 0xa4, 0x45, 0x11, 0xa6, 0x20, 0x03, 0x36, 0x75, 0x3c, 0x1b, 0xf9, 0x16, 0xe0, + 0x5a, 0x6d, 0x9b, 0xbc, 0xdc, 0x0a, 0x43, 0x4d, 0xb7, 0xf5, 0x5e, 0xaf, 0xb1, 0xaf, 0x93, 0x5f, + 0x64, 0xac, 0xb7, 0x5f, 0xb7, 0x26, 0x90, 0x0b, 0x20, 0xd5, 0xb6, 0x49, 0xc3, 0xbb, 0x10, 0x65, + 0x9a, 0xba, 0x54, 0xdb, 0x4e, 0xfd, 0x05, 0xc1, 0x25, 0x6e, 0x54, 0xd6, 0x60, 0xca, 0x19, 0x60, + 0x1e, 0x77, 0xbc, 0xce, 0x8d, 0xb9, 0x3e, 0x4b, 0xe7, 0xf4, 0x39, 0xb5, 0x09, 0x33, 0xc2, 0xb8, + 0xbc, 0x04, 0x32, 0x3b, 0x44, 0x9c, 0x00, 0xbb, 0xa1, 0xf6, 0x91, 0x68, 0xff, 0x07, 0xe0, 0xc5, + 0x55, 0x9e, 0x81, 0xc9, 0xdd, 0x7b, 0x77, 0xaa, 0x3f, 0xa8, 0x55, 0xdf, 0xdc, 0xad, 0x56, 0x92, + 0x48, 0xfb, 0x03, 0x82, 0x49, 0xd2, 0xb6, 0xee, 0x75, 0x8e, 0x74, 0xb9, 0x04, 0x68, 0x93, 0xf0, + 0xe1, 0xe9, 0xfc, 0x46, 0x9b, 0xf2, 0x32, 0xa0, 0x52, 0x74, 0xa8, 0x51, 0x49, 0xce, 0x03, 0x2a, + 0x13, 0x80, 0xa3, 0x21, 0x83, 0xca, 0xda, 0xbf, 0x30, 0x3c, 0xcb, 0xb6, 0xd1, 0x6e, 0x3d, 0xb9, + 0xca, 0x7f, 0x37, 0x15, 0x27, 0x56, 0xf2, 0xab, 0x85, 0x25, 0xeb, 0x1f, 0x4a, 0x49, 0x8d, 0xff, + 0x84, 0x2a, 0x02, 0x55, 0x59, 0x09, 0xba, 0x27, 0x52, 0x8c, 0x33, 0x33, 0x0c, 0xdc, 0x13, 0xe1, + 0xa4, 0x03, 0xf7, 0x44, 0x38, 0xe9, 0xc0, 0x3d, 0x11, 0x4e, 0x3a, 0x70, 0x16, 0xc0, 0x49, 0x07, + 0xee, 0x89, 0x70, 0xd2, 0x81, 0x7b, 0x22, 0x9c, 0x74, 0xf0, 0x9e, 0x08, 0x11, 0x07, 0xde, 0x13, + 0xe1, 0xe5, 0x83, 0xf7, 0x44, 0x78, 0xf9, 0xe0, 0x3d, 0x91, 0x62, 0xdc, 0xec, 0x1e, 0xeb, 0xc1, + 0xa7, 0x0e, 0xbc, 0xfd, 0xb0, 0x8f, 0x40, 0xaf, 0x02, 0xef, 0xc0, 0x8c, 0xb3, 0x21, 0x51, 0xee, + 0x18, 0x66, 0xa3, 0x6d, 0xe8, 0x5d, 0xf9, 0x1b, 0x30, 0xe5, 0x0c, 0x39, 0x9f, 0x39, 0x7e, 0x9f, + 0x81, 0x8e, 0x9c, 0xd4, 0x5b, 0x4e, 0x5b, 0xfb, 0x32, 0x0e, 0xb3, 0xce, 0x40, 0xad, 0x71, 0xa8, + 0x73, 0xb7, 0x8c, 0x16, 0x85, 0x33, 0xa5, 0x69, 0xcb, 0xbc, 0x7f, 0x3a, 0xef, 0x8c, 0x6e, 0x52, + 0x36, 0x2d, 0x0a, 0xa7, 0x4b, 0xbc, 0x9e, 0xf7, 0x02, 0x5a, 0x14, 0x6e, 0x1e, 0xf1, 0x7a, 0xf4, + 0x7d, 0x43, 0xf5, 0xdc, 0x3b, 0x48, 0xbc, 0x5e, 0x85, 0xb2, 0x6c, 0x51, 0xb8, 0x8d, 0xc4, 0xeb, + 0x55, 0x29, 0xdf, 0x16, 0x85, 0xb3, 0x27, 0x5e, 0xef, 0x16, 0x65, 0xde, 0xa2, 0x70, 0x0a, 0xc5, + 0xeb, 0x7d, 0x8b, 0x72, 0x70, 0x51, 0xb8, 0xab, 0xc4, 0xeb, 0xbd, 0x4e, 0xd9, 0xb8, 0x28, 0xdc, + 0x5a, 0xe2, 0xf5, 0xb6, 0x28, 0x2f, 0x33, 0xe2, 0xfd, 0x25, 0x5e, 0xf1, 0xb6, 0xc7, 0xd0, 0x8c, + 0x78, 0x93, 0x89, 0xd7, 0xfc, 0xb6, 0xc7, 0xd5, 0x8c, 0x78, 0xa7, 0x89, 0xd7, 0x7c, 0xc3, 0x63, + 0x6d, 0x46, 0x3c, 0x2b, 0xe3, 0x35, 0xb7, 0x3d, 0xfe, 0x66, 0xc4, 0x53, 0x33, 0x5e, 0xb3, 0xe6, + 0x31, 0x39, 0x23, 0x9e, 0x9f, 0xf1, 0x9a, 0x3b, 0xde, 0x26, 0xfa, 0x47, 0x02, 0xfd, 0x98, 0x5b, + 0x50, 0x9a, 0x40, 0x3f, 0xf0, 0xa1, 0x9e, 0x50, 0xc8, 0x18, 0x1d, 0x8f, 0x76, 0x9a, 0x40, 0x3b, + 0xf0, 0xa1, 0x9c, 0x26, 0x50, 0x0e, 0x7c, 0xe8, 0xa6, 0x09, 0x74, 0x03, 0x1f, 0xaa, 0x69, 0x02, + 0xd5, 0xc0, 0x87, 0x66, 0x9a, 0x40, 0x33, 0xf0, 0xa1, 0x98, 0x26, 0x50, 0x0c, 0x7c, 0xe8, 0xa5, + 0x09, 0xf4, 0x02, 0x1f, 0x6a, 0x2d, 0x88, 0xd4, 0x02, 0x3f, 0x5a, 0x2d, 0x88, 0xb4, 0x02, 0x3f, + 0x4a, 0xbd, 0x28, 0x52, 0x6a, 0xa2, 0x7f, 0x3a, 0x3f, 0x66, 0x0d, 0x31, 0x6c, 0x5a, 0x10, 0xd9, + 0x04, 0x7e, 0x4c, 0x5a, 0x10, 0x99, 0x04, 0x7e, 0x2c, 0x5a, 0x10, 0x59, 0x04, 0x7e, 0x0c, 0x7a, + 0x2c, 0x32, 0xc8, 0xbb, 0xe3, 0xa3, 0x09, 0x47, 0x8a, 0x61, 0x0c, 0xc2, 0x11, 0x18, 0x84, 0x23, + 0x30, 0x08, 0x47, 0x60, 0x10, 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83, 0x70, 0x04, + 0x06, 0xe1, 0x28, 0x0c, 0xc2, 0x91, 0x18, 0x84, 0x83, 0x18, 0xb4, 0x20, 0xde, 0x78, 0x00, 0xbf, + 0x82, 0xb4, 0x20, 0x1e, 0x7d, 0x86, 0x53, 0x08, 0x47, 0xa2, 0x10, 0x0e, 0xa2, 0xd0, 0x47, 0x18, + 0x9e, 0xe5, 0x28, 0x44, 0xce, 0x87, 0x2e, 0xaa, 0x02, 0xad, 0x47, 0xb8, 0x60, 0xe1, 0xc7, 0xa9, + 0xf5, 0x08, 0x87, 0xd4, 0xc3, 0x78, 0x36, 0x58, 0x85, 0xaa, 0x11, 0xaa, 0xd0, 0x2d, 0xca, 0xa1, + 0xf5, 0x08, 0x17, 0x2f, 0x06, 0xb9, 0xb7, 0x31, 0xac, 0x08, 0xbc, 0x1e, 0xa9, 0x08, 0x6c, 0x45, + 0x2a, 0x02, 0xb7, 0x3d, 0x04, 0x7f, 0x2a, 0xc1, 0x73, 0x1e, 0x82, 0xce, 0x5f, 0xbb, 0x0f, 0x8f, + 0xac, 0x12, 0xe0, 0x1d, 0x51, 0xc9, 0xee, 0xb1, 0x0d, 0x03, 0xa3, 0xb4, 0xd5, 0x94, 0xef, 0xf0, + 0x87, 0x55, 0xc5, 0x51, 0x0f, 0x70, 0x18, 0xc4, 0xc9, 0x66, 0xe8, 0x02, 0xe0, 0xad, 0x66, 0xcf, + 0xae, 0x16, 0x7e, 0xcb, 0x96, 0xeb, 0x96, 0x58, 0xae, 0xc3, 0xb8, 0xad, 0xde, 0xb3, 0xe1, 0x3d, + 0xcf, 0xc2, 0x95, 0x3a, 0x99, 0x49, 0x7b, 0x8c, 0x20, 0xcd, 0x51, 0xf9, 0x62, 0x8e, 0x0c, 0x5e, + 0x89, 0x74, 0x64, 0xc0, 0x25, 0x88, 0x77, 0x7c, 0xf0, 0xff, 0x83, 0x27, 0xd5, 0x6c, 0x96, 0x88, + 0x47, 0x09, 0x3f, 0x81, 0x69, 0xef, 0x09, 0xec, 0x6f, 0xb6, 0xb5, 0xf0, 0xdd, 0x4c, 0xbf, 0xd4, + 0x5c, 0x13, 0x76, 0xd1, 0x86, 0x9a, 0xd1, 0x6c, 0xd5, 0x8a, 0x30, 0x53, 0xeb, 0xd8, 0x3b, 0x00, + 0xbd, 0x76, 0xc7, 0xe8, 0x6d, 0x37, 0x8e, 0xc2, 0x36, 0x23, 0x12, 0x56, 0x6b, 0x7e, 0xf2, 0xeb, + 0xf9, 0x98, 0xf6, 0x32, 0x4c, 0xdd, 0x35, 0xba, 0xfa, 0x5e, 0x67, 0xdf, 0x68, 0xff, 0x58, 0x6f, + 0x0a, 0x86, 0x13, 0xae, 0x61, 0x31, 0xfe, 0xc4, 0xd2, 0xfe, 0x05, 0x82, 0x2b, 0xac, 0xfa, 0x77, + 0xdb, 0x66, 0x6b, 0xcb, 0xb0, 0x7a, 0xfa, 0x57, 0x21, 0xa1, 0x13, 0xe0, 0xec, 0x77, 0xd7, 0xa4, + 0xfb, 0x1d, 0xe9, 0xab, 0xbe, 0x64, 0xff, 0x5b, 0xa7, 0x26, 0xc2, 0x2e, 0x88, 0xbb, 0x6c, 0x3e, + 0x75, 0x0d, 0xc6, 0x9c, 0xf9, 0x79, 0xbf, 0x2e, 0x09, 0x7e, 0xfd, 0xd6, 0xc7, 0x2f, 0x9b, 0x47, + 0xf2, 0x6d, 0xce, 0x2f, 0xe6, 0x73, 0xd5, 0x57, 0x7d, 0xc9, 0x25, 0x5f, 0x29, 0x61, 0xf5, 0x7f, + 0x36, 0xa3, 0xc2, 0x9d, 0xcc, 0x40, 0xa2, 0x2a, 0xea, 0xf8, 0xfb, 0x59, 0x81, 0x78, 0xad, 0xd3, + 0xd4, 0xe5, 0xe7, 0x60, 0xec, 0x8d, 0xc6, 0x7d, 0xfd, 0x80, 0x04, 0xd9, 0xf9, 0x21, 0x2f, 0x42, + 0xa2, 0xdc, 0x6a, 0x1f, 0x34, 0xbb, 0xba, 0x41, 0xce, 0xec, 0xc9, 0x16, 0xba, 0x65, 0x53, 0xa7, + 0x32, 0xad, 0x0c, 0x97, 0x6b, 0x1d, 0xa3, 0xf4, 0xd0, 0x64, 0xeb, 0xc6, 0x92, 0x90, 0x22, 0xe4, + 0xcc, 0xe7, 0x8e, 0x95, 0x8d, 0x96, 0x42, 0x69, 0xec, 0xe3, 0xd3, 0x79, 0xb4, 0x4b, 0xf7, 0xcf, + 0xb7, 0xe1, 0x79, 0x92, 0x3e, 0x03, 0x53, 0xe5, 0xc3, 0xa6, 0x9a, 0x20, 0xe7, 0xd4, 0xcc, 0x74, + 0x5b, 0xd6, 0x74, 0x86, 0xef, 0x74, 0x4f, 0xe7, 0x99, 0xd5, 0x14, 0x0d, 0xf5, 0x0c, 0x8f, 0xe4, + 0x99, 0xef, 0x74, 0x4b, 0x61, 0xd3, 0x09, 0x9e, 0xbd, 0x08, 0x13, 0x54, 0xc6, 0xb0, 0x81, 0xcd, + 0x94, 0x7c, 0x56, 0x83, 0x49, 0x26, 0x61, 0xe5, 0x31, 0x40, 0x9b, 0xc9, 0x98, 0xf5, 0x5f, 0x29, + 0x89, 0xac, 0xff, 0xca, 0x49, 0x29, 0x7b, 0x0d, 0x66, 0x84, 0xfd, 0x4b, 0x4b, 0x52, 0x49, 0x82, + 0xf5, 0x5f, 0x35, 0x39, 0x99, 0x8a, 0xbf, 0xf7, 0x1b, 0x35, 0x96, 0x7d, 0x05, 0xe4, 0xc1, 0x9d, + 0x4e, 0x79, 0x1c, 0xa4, 0x4d, 0x6b, 0xca, 0xe7, 0x41, 0x2a, 0x95, 0x92, 0x28, 0x35, 0xf3, 0xb3, + 0x5f, 0xa6, 0x27, 0x4b, 0xba, 0x69, 0xea, 0xdd, 0x7b, 0xba, 0x59, 0x2a, 0x11, 0xe3, 0xd7, 0xe0, + 0x8a, 0xef, 0x4e, 0xa9, 0x65, 0x5f, 0x2e, 0x3b, 0xf6, 0x95, 0xca, 0x80, 0x7d, 0xa5, 0x62, 0xdb, + 0xa3, 0xa2, 0x7b, 0xe2, 0xbc, 0x29, 0xfb, 0xec, 0x32, 0x2a, 0x4d, 0xe6, 0x84, 0x7b, 0xb3, 0xf8, + 0x1a, 0xd1, 0x2d, 0xf9, 0xea, 0xea, 0x21, 0x27, 0xd6, 0xa5, 0x62, 0x99, 0xd8, 0x97, 0x7d, 0xed, + 0x1f, 0x08, 0xc7, 0xaa, 0xfc, 0x1b, 0x82, 0x4c, 0x52, 0xa6, 0x0e, 0x57, 0x7c, 0x27, 0x69, 0x31, + 0x97, 0xdd, 0x2b, 0xd4, 0xe1, 0xaa, 0xaf, 0x6e, 0x3b, 0xe4, 0xd2, 0x57, 0xb5, 0xb8, 0x4c, 0x5e, + 0xf2, 0x9b, 0x2b, 0xf2, 0x15, 0x37, 0x47, 0xb9, 0x0a, 0x4c, 0x02, 0xe4, 0x6a, 0x15, 0xcb, 0xc4, + 0xa0, 0x14, 0x68, 0x10, 0x1c, 0x25, 0xd7, 0xb2, 0xf8, 0x3a, 0x99, 0xa4, 0x1c, 0x38, 0x49, 0x48, + 0xa8, 0x5c, 0xf3, 0xd2, 0xee, 0xc9, 0x99, 0x1a, 0x7b, 0x72, 0xa6, 0xc6, 0xfe, 0x71, 0xa6, 0xc6, + 0x3e, 0x39, 0x53, 0xd1, 0x67, 0x67, 0x2a, 0xfa, 0xfc, 0x4c, 0x45, 0x5f, 0x9c, 0xa9, 0xe8, 0x9d, + 0xbe, 0x8a, 0x3e, 0xe8, 0xab, 0xe8, 0xc3, 0xbe, 0x8a, 0xfe, 0xd8, 0x57, 0xd1, 0xe3, 0xbe, 0x8a, + 0x4e, 0xfa, 0x6a, 0xec, 0x49, 0x5f, 0x45, 0x9f, 0xf4, 0x55, 0xf4, 0x59, 0x5f, 0x8d, 0x7d, 0xde, + 0x57, 0xd1, 0x17, 0x7d, 0x35, 0xf6, 0xce, 0xa7, 0x6a, 0xec, 0xd1, 0xa7, 0x6a, 0xec, 0x83, 0x4f, + 0x55, 0xf4, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3b, 0xf6, 0x66, 0xae, 0x4e, 0x36, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetestpb_test.go index e1975ed7e..d851b45ad 100644 --- a/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/combos/unmarshaler/thetestpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/thetest.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -77,13 +76,12 @@ It has these top-level messages: package test import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -94,14 +92,14 @@ var _ = math.Inf func TestNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -122,12 +120,12 @@ func TestNidOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNative, 10000) for i := 0; i < 10000; i++ { @@ -135,7 +133,7 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -145,11 +143,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } @@ -159,7 +157,7 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -168,14 +166,14 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { func TestNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -196,12 +194,12 @@ func TestNinOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNative, 10000) for i := 0; i < 10000; i++ { @@ -209,7 +207,7 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -219,11 +217,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } @@ -233,7 +231,7 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -242,14 +240,14 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { func TestNidRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -270,12 +268,12 @@ func TestNidRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNative, 10000) for i := 0; i < 10000; i++ { @@ -283,7 +281,7 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -293,11 +291,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } @@ -307,7 +305,7 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -316,14 +314,14 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { func TestNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -344,12 +342,12 @@ func TestNinRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNative, 10000) for i := 0; i < 10000; i++ { @@ -357,7 +355,7 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -367,11 +365,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } @@ -381,7 +379,7 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -390,14 +388,14 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { func TestNidRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -418,12 +416,12 @@ func TestNidRepPackedNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepPackedNative, 10000) for i := 0; i < 10000; i++ { @@ -431,7 +429,7 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -441,11 +439,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } @@ -455,7 +453,7 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -464,14 +462,14 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { func TestNinRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -492,12 +490,12 @@ func TestNinRepPackedNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepPackedNative, 10000) for i := 0; i < 10000; i++ { @@ -505,7 +503,7 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -515,11 +513,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } @@ -529,7 +527,7 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -538,14 +536,14 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { func TestNidOptStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -566,12 +564,12 @@ func TestNidOptStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptStruct, 10000) for i := 0; i < 10000; i++ { @@ -579,7 +577,7 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -589,11 +587,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } @@ -603,7 +601,7 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -612,14 +610,14 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { func TestNinOptStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -640,12 +638,12 @@ func TestNinOptStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStruct, 10000) for i := 0; i < 10000; i++ { @@ -653,7 +651,7 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -663,11 +661,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } @@ -677,7 +675,7 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -686,14 +684,14 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { func TestNidRepStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -714,12 +712,12 @@ func TestNidRepStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepStruct, 10000) for i := 0; i < 10000; i++ { @@ -727,7 +725,7 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -737,11 +735,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } @@ -751,7 +749,7 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -760,14 +758,14 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { func TestNinRepStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -788,12 +786,12 @@ func TestNinRepStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepStruct, 10000) for i := 0; i < 10000; i++ { @@ -801,7 +799,7 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -811,11 +809,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } @@ -825,7 +823,7 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -834,14 +832,14 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { func TestNidEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -862,12 +860,12 @@ func TestNidEmbeddedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidEmbeddedStruct, 10000) for i := 0; i < 10000; i++ { @@ -875,7 +873,7 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -885,11 +883,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } @@ -899,7 +897,7 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -908,14 +906,14 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { func TestNinEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -936,12 +934,12 @@ func TestNinEmbeddedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStruct, 10000) for i := 0; i < 10000; i++ { @@ -949,7 +947,7 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -959,11 +957,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } @@ -973,7 +971,7 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -982,14 +980,14 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { func TestNidNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1010,12 +1008,12 @@ func TestNidNestedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidNestedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1023,7 +1021,7 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1033,11 +1031,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } @@ -1047,7 +1045,7 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1056,14 +1054,14 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { func TestNinNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1084,12 +1082,12 @@ func TestNinNestedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1097,7 +1095,7 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1107,11 +1105,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } @@ -1121,7 +1119,7 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1130,14 +1128,14 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { func TestNidOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1158,12 +1156,12 @@ func TestNidOptCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptCustom, 10000) for i := 0; i < 10000; i++ { @@ -1171,7 +1169,7 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1181,11 +1179,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } @@ -1195,7 +1193,7 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1204,14 +1202,14 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { func TestCustomDashProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1232,12 +1230,12 @@ func TestCustomDashProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomDashProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomDash, 10000) for i := 0; i < 10000; i++ { @@ -1245,7 +1243,7 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1255,11 +1253,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } @@ -1269,7 +1267,7 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1278,14 +1276,14 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { func TestNinOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1306,12 +1304,12 @@ func TestNinOptCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptCustom, 10000) for i := 0; i < 10000; i++ { @@ -1319,7 +1317,7 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1329,11 +1327,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } @@ -1343,7 +1341,7 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1352,14 +1350,14 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { func TestNidRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1380,12 +1378,12 @@ func TestNidRepCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepCustom, 10000) for i := 0; i < 10000; i++ { @@ -1393,7 +1391,7 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1403,11 +1401,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } @@ -1417,7 +1415,7 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1426,14 +1424,14 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { func TestNinRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1454,12 +1452,12 @@ func TestNinRepCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepCustom, 10000) for i := 0; i < 10000; i++ { @@ -1467,7 +1465,7 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1477,11 +1475,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } @@ -1491,7 +1489,7 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1500,14 +1498,14 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { func TestNinOptNativeUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1528,12 +1526,12 @@ func TestNinOptNativeUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeUnion, 10000) for i := 0; i < 10000; i++ { @@ -1541,7 +1539,7 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1551,11 +1549,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } @@ -1565,7 +1563,7 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1574,14 +1572,14 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { func TestNinOptStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1602,12 +1600,12 @@ func TestNinOptStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -1615,7 +1613,7 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1625,11 +1623,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } @@ -1639,7 +1637,7 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1648,14 +1646,14 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { func TestNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1676,12 +1674,12 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -1689,7 +1687,7 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1699,11 +1697,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } @@ -1713,7 +1711,7 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1722,14 +1720,14 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { func TestNinNestedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1750,12 +1748,12 @@ func TestNinNestedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -1763,7 +1761,7 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1773,11 +1771,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } @@ -1787,7 +1785,7 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1796,14 +1794,14 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { func TestTreeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1824,12 +1822,12 @@ func TestTreeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Tree, 10000) for i := 0; i < 10000; i++ { @@ -1837,7 +1835,7 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1847,11 +1845,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } func BenchmarkTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } @@ -1861,7 +1859,7 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1870,14 +1868,14 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { func TestOrBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1898,12 +1896,12 @@ func TestOrBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkOrBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OrBranch, 10000) for i := 0; i < 10000; i++ { @@ -1911,7 +1909,7 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1921,11 +1919,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } @@ -1935,7 +1933,7 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1944,14 +1942,14 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { func TestAndBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1972,12 +1970,12 @@ func TestAndBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAndBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndBranch, 10000) for i := 0; i < 10000; i++ { @@ -1985,7 +1983,7 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1995,11 +1993,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } @@ -2009,7 +2007,7 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2018,14 +2016,14 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { func TestLeafProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2046,12 +2044,12 @@ func TestLeafProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Leaf, 10000) for i := 0; i < 10000; i++ { @@ -2059,7 +2057,7 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2069,11 +2067,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } func BenchmarkLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } @@ -2083,7 +2081,7 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2092,14 +2090,14 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { func TestDeepTreeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2120,12 +2118,12 @@ func TestDeepTreeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkDeepTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepTree, 10000) for i := 0; i < 10000; i++ { @@ -2133,7 +2131,7 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2143,11 +2141,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } @@ -2157,7 +2155,7 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2166,14 +2164,14 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { func TestADeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2194,12 +2192,12 @@ func TestADeepBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkADeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ADeepBranch, 10000) for i := 0; i < 10000; i++ { @@ -2207,7 +2205,7 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2217,11 +2215,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } @@ -2231,7 +2229,7 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2240,14 +2238,14 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { func TestAndDeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2268,12 +2266,12 @@ func TestAndDeepBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndDeepBranch, 10000) for i := 0; i < 10000; i++ { @@ -2281,7 +2279,7 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2291,11 +2289,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } @@ -2305,7 +2303,7 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2314,14 +2312,14 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { func TestDeepLeafProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2342,12 +2340,12 @@ func TestDeepLeafProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkDeepLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepLeaf, 10000) for i := 0; i < 10000; i++ { @@ -2355,7 +2353,7 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2365,11 +2363,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } @@ -2379,7 +2377,7 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2388,14 +2386,14 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { func TestNilProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2416,12 +2414,12 @@ func TestNilProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNilProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nil, 10000) for i := 0; i < 10000; i++ { @@ -2429,7 +2427,7 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2439,11 +2437,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } func BenchmarkNilProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } @@ -2453,7 +2451,7 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2462,14 +2460,14 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2490,12 +2488,12 @@ func TestNidOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -2503,7 +2501,7 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2513,11 +2511,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } @@ -2527,7 +2525,7 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2536,14 +2534,14 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2564,12 +2562,12 @@ func TestNinOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -2577,7 +2575,7 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2587,11 +2585,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } @@ -2601,7 +2599,7 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2610,14 +2608,14 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2638,12 +2636,12 @@ func TestNidRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepEnum, 10000) for i := 0; i < 10000; i++ { @@ -2651,7 +2649,7 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2661,11 +2659,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } @@ -2675,7 +2673,7 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2684,14 +2682,14 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2712,12 +2710,12 @@ func TestNinRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepEnum, 10000) for i := 0; i < 10000; i++ { @@ -2725,7 +2723,7 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2735,11 +2733,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } @@ -2749,7 +2747,7 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2758,14 +2756,14 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { func TestNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2786,12 +2784,12 @@ func TestNinOptEnumDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnumDefault, 10000) for i := 0; i < 10000; i++ { @@ -2799,7 +2797,7 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2809,11 +2807,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } @@ -2823,7 +2821,7 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2832,14 +2830,14 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { func TestAnotherNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2860,12 +2858,12 @@ func TestAnotherNinOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -2873,7 +2871,7 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2883,11 +2881,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } @@ -2897,7 +2895,7 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2906,14 +2904,14 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { func TestAnotherNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2934,12 +2932,12 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnumDefault, 10000) for i := 0; i < 10000; i++ { @@ -2947,7 +2945,7 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2957,11 +2955,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } @@ -2971,7 +2969,7 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2980,14 +2978,14 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { func TestTimerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3008,12 +3006,12 @@ func TestTimerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkTimerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Timer, 10000) for i := 0; i < 10000; i++ { @@ -3021,7 +3019,7 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3031,11 +3029,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } func BenchmarkTimerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } @@ -3045,7 +3043,7 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3054,14 +3052,14 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { func TestMyExtendableProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3082,12 +3080,12 @@ func TestMyExtendableProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMyExtendableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyExtendable, 10000) for i := 0; i < 10000; i++ { @@ -3095,7 +3093,7 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3105,11 +3103,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } @@ -3119,7 +3117,7 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3128,14 +3126,14 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { func TestOtherExtenableProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3156,12 +3154,12 @@ func TestOtherExtenableProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OtherExtenable, 10000) for i := 0; i < 10000; i++ { @@ -3169,7 +3167,7 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3179,11 +3177,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } @@ -3193,7 +3191,7 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3202,14 +3200,14 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { func TestNestedDefinitionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3230,12 +3228,12 @@ func TestNestedDefinitionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition, 10000) for i := 0; i < 10000; i++ { @@ -3243,7 +3241,7 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3253,11 +3251,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } @@ -3267,7 +3265,7 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3276,14 +3274,14 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { func TestNestedDefinition_NestedMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3304,12 +3302,12 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage, 10000) for i := 0; i < 10000; i++ { @@ -3317,7 +3315,7 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3327,11 +3325,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } @@ -3341,7 +3339,7 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3350,14 +3348,14 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3378,12 +3376,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 10000) for i := 0; i < 10000; i++ { @@ -3391,7 +3389,7 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3401,11 +3399,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } @@ -3415,7 +3413,7 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3424,14 +3422,14 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te func TestNestedScopeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3452,12 +3450,12 @@ func TestNestedScopeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedScopeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedScope, 10000) for i := 0; i < 10000; i++ { @@ -3465,7 +3463,7 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3475,11 +3473,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } @@ -3489,7 +3487,7 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3498,14 +3496,14 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { func TestNinOptNativeDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3526,12 +3524,12 @@ func TestNinOptNativeDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeDefault, 10000) for i := 0; i < 10000; i++ { @@ -3539,7 +3537,7 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3549,11 +3547,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } @@ -3563,7 +3561,7 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3572,14 +3570,14 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { func TestCustomContainerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3600,12 +3598,12 @@ func TestCustomContainerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomContainerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomContainer, 10000) for i := 0; i < 10000; i++ { @@ -3613,7 +3611,7 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3623,11 +3621,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } @@ -3637,7 +3635,7 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3646,14 +3644,14 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { func TestCustomNameNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3674,12 +3672,12 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNidOptNative, 10000) for i := 0; i < 10000; i++ { @@ -3687,7 +3685,7 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3697,11 +3695,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } @@ -3711,7 +3709,7 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3720,14 +3718,14 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3748,12 +3746,12 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinOptNative, 10000) for i := 0; i < 10000; i++ { @@ -3761,7 +3759,7 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3771,11 +3769,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } @@ -3785,7 +3783,7 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3794,14 +3792,14 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3822,12 +3820,12 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinRepNative, 10000) for i := 0; i < 10000; i++ { @@ -3835,7 +3833,7 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3845,11 +3843,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } @@ -3859,7 +3857,7 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3868,14 +3866,14 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3896,12 +3894,12 @@ func TestCustomNameNinStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinStruct, 10000) for i := 0; i < 10000; i++ { @@ -3909,7 +3907,7 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3919,11 +3917,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } @@ -3933,7 +3931,7 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3942,14 +3940,14 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { func TestCustomNameCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3970,12 +3968,12 @@ func TestCustomNameCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameCustomType, 10000) for i := 0; i < 10000; i++ { @@ -3983,7 +3981,7 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3993,11 +3991,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } @@ -4007,7 +4005,7 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4016,14 +4014,14 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4044,12 +4042,12 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinEmbeddedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -4057,7 +4055,7 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4067,11 +4065,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } @@ -4081,7 +4079,7 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4090,14 +4088,14 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { func TestCustomNameEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4118,12 +4116,12 @@ func TestCustomNameEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameEnum, 10000) for i := 0; i < 10000; i++ { @@ -4131,7 +4129,7 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4141,11 +4139,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } @@ -4155,7 +4153,7 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4164,14 +4162,14 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { func TestNoExtensionsMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4192,12 +4190,12 @@ func TestNoExtensionsMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NoExtensionsMap, 10000) for i := 0; i < 10000; i++ { @@ -4205,7 +4203,7 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4215,11 +4213,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } @@ -4229,7 +4227,7 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4238,14 +4236,14 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { func TestUnrecognizedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4266,12 +4264,12 @@ func TestUnrecognizedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Unrecognized, 10000) for i := 0; i < 10000; i++ { @@ -4279,7 +4277,7 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4289,11 +4287,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } @@ -4303,7 +4301,7 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4312,14 +4310,14 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithInnerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4340,12 +4338,12 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner, 10000) for i := 0; i < 10000; i++ { @@ -4353,7 +4351,7 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4363,11 +4361,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } @@ -4377,7 +4375,7 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4386,14 +4384,14 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithInner_InnerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4414,12 +4412,12 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner_Inner, 10000) for i := 0; i < 10000; i++ { @@ -4427,7 +4425,7 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4437,11 +4435,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } @@ -4451,7 +4449,7 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4460,14 +4458,14 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithEmbedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4488,12 +4486,12 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed, 10000) for i := 0; i < 10000; i++ { @@ -4501,7 +4499,7 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4511,11 +4509,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } @@ -4525,7 +4523,7 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4534,14 +4532,14 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4562,12 +4560,12 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed_Embedded, 10000) for i := 0; i < 10000; i++ { @@ -4575,7 +4573,7 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4585,11 +4583,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } @@ -4599,7 +4597,7 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4608,14 +4606,14 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { func TestNodeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4636,12 +4634,12 @@ func TestNodeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNodeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Node, 10000) for i := 0; i < 10000; i++ { @@ -4649,7 +4647,7 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4659,11 +4657,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } func BenchmarkNodeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } @@ -4673,7 +4671,7 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4682,14 +4680,14 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { func TestNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4710,12 +4708,12 @@ func TestNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -4723,7 +4721,7 @@ func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4733,11 +4731,11 @@ func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -4747,7 +4745,7 @@ func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4756,14 +4754,14 @@ func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNidOptNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4784,12 +4782,12 @@ func TestNidOptNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -4797,7 +4795,7 @@ func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4807,11 +4805,11 @@ func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -4821,7 +4819,7 @@ func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4830,14 +4828,14 @@ func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNinOptNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4858,12 +4856,12 @@ func TestNinOptNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -4871,7 +4869,7 @@ func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4881,11 +4879,11 @@ func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -4895,7 +4893,7 @@ func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4904,14 +4902,14 @@ func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNidRepNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4932,12 +4930,12 @@ func TestNidRepNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -4945,7 +4943,7 @@ func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4955,11 +4953,11 @@ func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -4969,7 +4967,7 @@ func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4978,14 +4976,14 @@ func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNinRepNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5006,12 +5004,12 @@ func TestNinRepNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -5019,7 +5017,7 @@ func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5029,11 +5027,11 @@ func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -5043,7 +5041,7 @@ func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5052,14 +5050,14 @@ func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestProtoTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5080,12 +5078,12 @@ func TestProtoTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkProtoTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoType, 10000) for i := 0; i < 10000; i++ { @@ -5093,7 +5091,7 @@ func BenchmarkProtoTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5103,11 +5101,11 @@ func BenchmarkProtoTypeProtoMarshal(b *testing.B) { } func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedProtoType(popr, false)) if err != nil { panic(err) } @@ -5117,7 +5115,7 @@ func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5126,15 +5124,15 @@ func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { func TestNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5147,15 +5145,15 @@ func TestNidOptNativeJSON(t *testing.T) { } func TestNinOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5168,15 +5166,15 @@ func TestNinOptNativeJSON(t *testing.T) { } func TestNidRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5189,15 +5187,15 @@ func TestNidRepNativeJSON(t *testing.T) { } func TestNinRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5210,15 +5208,15 @@ func TestNinRepNativeJSON(t *testing.T) { } func TestNidRepPackedNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5231,15 +5229,15 @@ func TestNidRepPackedNativeJSON(t *testing.T) { } func TestNinRepPackedNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5252,15 +5250,15 @@ func TestNinRepPackedNativeJSON(t *testing.T) { } func TestNidOptStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5273,15 +5271,15 @@ func TestNidOptStructJSON(t *testing.T) { } func TestNinOptStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5294,15 +5292,15 @@ func TestNinOptStructJSON(t *testing.T) { } func TestNidRepStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5315,15 +5313,15 @@ func TestNidRepStructJSON(t *testing.T) { } func TestNinRepStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5336,15 +5334,15 @@ func TestNinRepStructJSON(t *testing.T) { } func TestNidEmbeddedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5357,15 +5355,15 @@ func TestNidEmbeddedStructJSON(t *testing.T) { } func TestNinEmbeddedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5378,15 +5376,15 @@ func TestNinEmbeddedStructJSON(t *testing.T) { } func TestNidNestedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5399,15 +5397,15 @@ func TestNidNestedStructJSON(t *testing.T) { } func TestNinNestedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5420,15 +5418,15 @@ func TestNinNestedStructJSON(t *testing.T) { } func TestNidOptCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5441,15 +5439,15 @@ func TestNidOptCustomJSON(t *testing.T) { } func TestCustomDashJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5462,15 +5460,15 @@ func TestCustomDashJSON(t *testing.T) { } func TestNinOptCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5483,15 +5481,15 @@ func TestNinOptCustomJSON(t *testing.T) { } func TestNidRepCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5504,15 +5502,15 @@ func TestNidRepCustomJSON(t *testing.T) { } func TestNinRepCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5525,15 +5523,15 @@ func TestNinRepCustomJSON(t *testing.T) { } func TestNinOptNativeUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5546,15 +5544,15 @@ func TestNinOptNativeUnionJSON(t *testing.T) { } func TestNinOptStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5567,15 +5565,15 @@ func TestNinOptStructUnionJSON(t *testing.T) { } func TestNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5588,15 +5586,15 @@ func TestNinEmbeddedStructUnionJSON(t *testing.T) { } func TestNinNestedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5609,15 +5607,15 @@ func TestNinNestedStructUnionJSON(t *testing.T) { } func TestTreeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5630,15 +5628,15 @@ func TestTreeJSON(t *testing.T) { } func TestOrBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5651,15 +5649,15 @@ func TestOrBranchJSON(t *testing.T) { } func TestAndBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5672,15 +5670,15 @@ func TestAndBranchJSON(t *testing.T) { } func TestLeafJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5693,15 +5691,15 @@ func TestLeafJSON(t *testing.T) { } func TestDeepTreeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5714,15 +5712,15 @@ func TestDeepTreeJSON(t *testing.T) { } func TestADeepBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5735,15 +5733,15 @@ func TestADeepBranchJSON(t *testing.T) { } func TestAndDeepBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5756,15 +5754,15 @@ func TestAndDeepBranchJSON(t *testing.T) { } func TestDeepLeafJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5777,15 +5775,15 @@ func TestDeepLeafJSON(t *testing.T) { } func TestNilJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5798,15 +5796,15 @@ func TestNilJSON(t *testing.T) { } func TestNidOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5819,15 +5817,15 @@ func TestNidOptEnumJSON(t *testing.T) { } func TestNinOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5840,15 +5838,15 @@ func TestNinOptEnumJSON(t *testing.T) { } func TestNidRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5861,15 +5859,15 @@ func TestNidRepEnumJSON(t *testing.T) { } func TestNinRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5882,15 +5880,15 @@ func TestNinRepEnumJSON(t *testing.T) { } func TestNinOptEnumDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5903,15 +5901,15 @@ func TestNinOptEnumDefaultJSON(t *testing.T) { } func TestAnotherNinOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5924,15 +5922,15 @@ func TestAnotherNinOptEnumJSON(t *testing.T) { } func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5945,15 +5943,15 @@ func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { } func TestTimerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5966,15 +5964,15 @@ func TestTimerJSON(t *testing.T) { } func TestMyExtendableJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5987,15 +5985,15 @@ func TestMyExtendableJSON(t *testing.T) { } func TestOtherExtenableJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6008,15 +6006,15 @@ func TestOtherExtenableJSON(t *testing.T) { } func TestNestedDefinitionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6029,15 +6027,15 @@ func TestNestedDefinitionJSON(t *testing.T) { } func TestNestedDefinition_NestedMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6050,15 +6048,15 @@ func TestNestedDefinition_NestedMessageJSON(t *testing.T) { } func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6071,15 +6069,15 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { } func TestNestedScopeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6092,15 +6090,15 @@ func TestNestedScopeJSON(t *testing.T) { } func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6113,15 +6111,15 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { } func TestCustomContainerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6134,15 +6132,15 @@ func TestCustomContainerJSON(t *testing.T) { } func TestCustomNameNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6155,15 +6153,15 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { } func TestCustomNameNinOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6176,15 +6174,15 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { } func TestCustomNameNinRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6197,15 +6195,15 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { } func TestCustomNameNinStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6218,15 +6216,15 @@ func TestCustomNameNinStructJSON(t *testing.T) { } func TestCustomNameCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6239,15 +6237,15 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { } func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6260,15 +6258,15 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { } func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6281,15 +6279,15 @@ func TestCustomNameEnumJSON(t *testing.T) { } func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6302,15 +6300,15 @@ func TestNoExtensionsMapJSON(t *testing.T) { } func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6323,15 +6321,15 @@ func TestUnrecognizedJSON(t *testing.T) { } func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6344,15 +6342,15 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { } func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6365,15 +6363,15 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { } func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6386,15 +6384,15 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { } func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6407,15 +6405,15 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { } func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6428,15 +6426,15 @@ func TestNodeJSON(t *testing.T) { } func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6449,15 +6447,15 @@ func TestNonByteCustomTypeJSON(t *testing.T) { } func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6470,15 +6468,15 @@ func TestNidOptNonByteCustomTypeJSON(t *testing.T) { } func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6491,15 +6489,15 @@ func TestNinOptNonByteCustomTypeJSON(t *testing.T) { } func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6512,15 +6510,15 @@ func TestNidRepNonByteCustomTypeJSON(t *testing.T) { } func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6533,15 +6531,15 @@ func TestNinRepNonByteCustomTypeJSON(t *testing.T) { } func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6554,11 +6552,11 @@ func TestProtoTypeJSON(t *testing.T) { } func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6571,11 +6569,11 @@ func TestNidOptNativeProtoText(t *testing.T) { func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6588,11 +6586,11 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6605,11 +6603,11 @@ func TestNinOptNativeProtoText(t *testing.T) { func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6622,11 +6620,11 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6639,11 +6637,11 @@ func TestNidRepNativeProtoText(t *testing.T) { func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6656,11 +6654,11 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6673,11 +6671,11 @@ func TestNinRepNativeProtoText(t *testing.T) { func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6690,11 +6688,11 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6707,11 +6705,11 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6724,11 +6722,11 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6741,11 +6739,11 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6758,11 +6756,11 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6775,11 +6773,11 @@ func TestNidOptStructProtoText(t *testing.T) { func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6792,11 +6790,11 @@ func TestNidOptStructProtoCompactText(t *testing.T) { func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6809,11 +6807,11 @@ func TestNinOptStructProtoText(t *testing.T) { func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6826,11 +6824,11 @@ func TestNinOptStructProtoCompactText(t *testing.T) { func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6843,11 +6841,11 @@ func TestNidRepStructProtoText(t *testing.T) { func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6860,11 +6858,11 @@ func TestNidRepStructProtoCompactText(t *testing.T) { func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6877,11 +6875,11 @@ func TestNinRepStructProtoText(t *testing.T) { func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6894,11 +6892,11 @@ func TestNinRepStructProtoCompactText(t *testing.T) { func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6911,11 +6909,11 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6928,11 +6926,11 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6945,11 +6943,11 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6962,11 +6960,11 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6979,11 +6977,11 @@ func TestNidNestedStructProtoText(t *testing.T) { func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6996,11 +6994,11 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7013,11 +7011,11 @@ func TestNinNestedStructProtoText(t *testing.T) { func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7030,11 +7028,11 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7047,11 +7045,11 @@ func TestNidOptCustomProtoText(t *testing.T) { func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7064,11 +7062,11 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7081,11 +7079,11 @@ func TestCustomDashProtoText(t *testing.T) { func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7098,11 +7096,11 @@ func TestCustomDashProtoCompactText(t *testing.T) { func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7115,11 +7113,11 @@ func TestNinOptCustomProtoText(t *testing.T) { func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7132,11 +7130,11 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7149,11 +7147,11 @@ func TestNidRepCustomProtoText(t *testing.T) { func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7166,11 +7164,11 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7183,11 +7181,11 @@ func TestNinRepCustomProtoText(t *testing.T) { func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7200,11 +7198,11 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7217,11 +7215,11 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7234,11 +7232,11 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7251,11 +7249,11 @@ func TestNinOptStructUnionProtoText(t *testing.T) { func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7268,11 +7266,11 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7285,11 +7283,11 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7302,11 +7300,11 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7319,11 +7317,11 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7336,11 +7334,11 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7353,11 +7351,11 @@ func TestTreeProtoText(t *testing.T) { func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7370,11 +7368,11 @@ func TestTreeProtoCompactText(t *testing.T) { func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7387,11 +7385,11 @@ func TestOrBranchProtoText(t *testing.T) { func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7404,11 +7402,11 @@ func TestOrBranchProtoCompactText(t *testing.T) { func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7421,11 +7419,11 @@ func TestAndBranchProtoText(t *testing.T) { func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7438,11 +7436,11 @@ func TestAndBranchProtoCompactText(t *testing.T) { func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7455,11 +7453,11 @@ func TestLeafProtoText(t *testing.T) { func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7472,11 +7470,11 @@ func TestLeafProtoCompactText(t *testing.T) { func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7489,11 +7487,11 @@ func TestDeepTreeProtoText(t *testing.T) { func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7506,11 +7504,11 @@ func TestDeepTreeProtoCompactText(t *testing.T) { func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7523,11 +7521,11 @@ func TestADeepBranchProtoText(t *testing.T) { func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7540,11 +7538,11 @@ func TestADeepBranchProtoCompactText(t *testing.T) { func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7557,11 +7555,11 @@ func TestAndDeepBranchProtoText(t *testing.T) { func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7574,11 +7572,11 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7591,11 +7589,11 @@ func TestDeepLeafProtoText(t *testing.T) { func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7608,11 +7606,11 @@ func TestDeepLeafProtoCompactText(t *testing.T) { func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7625,11 +7623,11 @@ func TestNilProtoText(t *testing.T) { func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7642,11 +7640,11 @@ func TestNilProtoCompactText(t *testing.T) { func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7659,11 +7657,11 @@ func TestNidOptEnumProtoText(t *testing.T) { func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7676,11 +7674,11 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7693,11 +7691,11 @@ func TestNinOptEnumProtoText(t *testing.T) { func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7710,11 +7708,11 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7727,11 +7725,11 @@ func TestNidRepEnumProtoText(t *testing.T) { func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7744,11 +7742,11 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7761,11 +7759,11 @@ func TestNinRepEnumProtoText(t *testing.T) { func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7778,11 +7776,11 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7795,11 +7793,11 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7812,11 +7810,11 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7829,11 +7827,11 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7846,11 +7844,11 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7863,11 +7861,11 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7880,11 +7878,11 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7897,11 +7895,11 @@ func TestTimerProtoText(t *testing.T) { func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7914,11 +7912,11 @@ func TestTimerProtoCompactText(t *testing.T) { func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7931,11 +7929,11 @@ func TestMyExtendableProtoText(t *testing.T) { func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7948,11 +7946,11 @@ func TestMyExtendableProtoCompactText(t *testing.T) { func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7965,11 +7963,11 @@ func TestOtherExtenableProtoText(t *testing.T) { func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7982,11 +7980,11 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7999,11 +7997,11 @@ func TestNestedDefinitionProtoText(t *testing.T) { func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8016,11 +8014,11 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8033,11 +8031,11 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8050,11 +8048,11 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8067,11 +8065,11 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8084,11 +8082,11 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8101,11 +8099,11 @@ func TestNestedScopeProtoText(t *testing.T) { func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8118,11 +8116,11 @@ func TestNestedScopeProtoCompactText(t *testing.T) { func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8135,11 +8133,11 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8152,11 +8150,11 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8169,11 +8167,11 @@ func TestCustomContainerProtoText(t *testing.T) { func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8186,11 +8184,11 @@ func TestCustomContainerProtoCompactText(t *testing.T) { func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8203,11 +8201,11 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8220,11 +8218,11 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { func TestCustomNameNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8237,11 +8235,11 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8254,11 +8252,11 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { func TestCustomNameNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8271,11 +8269,11 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8288,11 +8286,11 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { func TestCustomNameNinStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8305,11 +8303,11 @@ func TestCustomNameNinStructProtoText(t *testing.T) { func TestCustomNameNinStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8322,11 +8320,11 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { func TestCustomNameCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8339,11 +8337,11 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8356,11 +8354,11 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8373,11 +8371,11 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8390,11 +8388,11 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { func TestCustomNameEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8407,11 +8405,11 @@ func TestCustomNameEnumProtoText(t *testing.T) { func TestCustomNameEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8424,11 +8422,11 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { func TestNoExtensionsMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8441,11 +8439,11 @@ func TestNoExtensionsMapProtoText(t *testing.T) { func TestNoExtensionsMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8458,11 +8456,11 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { func TestUnrecognizedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8475,11 +8473,11 @@ func TestUnrecognizedProtoText(t *testing.T) { func TestUnrecognizedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8492,11 +8490,11 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { func TestUnrecognizedWithInnerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8509,11 +8507,11 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8526,11 +8524,11 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8543,11 +8541,11 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8560,11 +8558,11 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8577,11 +8575,11 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8594,11 +8592,11 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8611,11 +8609,11 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8628,11 +8626,11 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8645,11 +8643,11 @@ func TestNodeProtoText(t *testing.T) { func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8662,11 +8660,11 @@ func TestNodeProtoCompactText(t *testing.T) { func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8679,11 +8677,11 @@ func TestNonByteCustomTypeProtoText(t *testing.T) { func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8696,11 +8694,11 @@ func TestNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8713,11 +8711,11 @@ func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8730,11 +8728,11 @@ func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8747,11 +8745,11 @@ func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8764,11 +8762,11 @@ func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8781,11 +8779,11 @@ func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8798,11 +8796,11 @@ func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8815,11 +8813,11 @@ func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8832,11 +8830,11 @@ func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8849,11 +8847,11 @@ func TestProtoTypeProtoText(t *testing.T) { func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8865,14 +8863,14 @@ func TestProtoTypeProtoCompactText(t *testing.T) { } func TestNidOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8889,14 +8887,14 @@ func TestNidOptNativeCompare(t *testing.T) { } } func TestNinOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8913,14 +8911,14 @@ func TestNinOptNativeCompare(t *testing.T) { } } func TestNidRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8937,14 +8935,14 @@ func TestNidRepNativeCompare(t *testing.T) { } } func TestNinRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8961,14 +8959,14 @@ func TestNinRepNativeCompare(t *testing.T) { } } func TestNidRepPackedNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8985,14 +8983,14 @@ func TestNidRepPackedNativeCompare(t *testing.T) { } } func TestNinRepPackedNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9009,14 +9007,14 @@ func TestNinRepPackedNativeCompare(t *testing.T) { } } func TestNidOptStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9033,14 +9031,14 @@ func TestNidOptStructCompare(t *testing.T) { } } func TestNinOptStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9057,14 +9055,14 @@ func TestNinOptStructCompare(t *testing.T) { } } func TestNidRepStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9081,14 +9079,14 @@ func TestNidRepStructCompare(t *testing.T) { } } func TestNinRepStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9105,14 +9103,14 @@ func TestNinRepStructCompare(t *testing.T) { } } func TestNidEmbeddedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9129,14 +9127,14 @@ func TestNidEmbeddedStructCompare(t *testing.T) { } } func TestNinEmbeddedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9153,14 +9151,14 @@ func TestNinEmbeddedStructCompare(t *testing.T) { } } func TestNidNestedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9177,14 +9175,14 @@ func TestNidNestedStructCompare(t *testing.T) { } } func TestNinNestedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9201,14 +9199,14 @@ func TestNinNestedStructCompare(t *testing.T) { } } func TestNidOptCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9225,14 +9223,14 @@ func TestNidOptCustomCompare(t *testing.T) { } } func TestCustomDashCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9249,14 +9247,14 @@ func TestCustomDashCompare(t *testing.T) { } } func TestNinOptCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9273,14 +9271,14 @@ func TestNinOptCustomCompare(t *testing.T) { } } func TestNidRepCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9297,14 +9295,14 @@ func TestNidRepCustomCompare(t *testing.T) { } } func TestNinRepCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9321,14 +9319,14 @@ func TestNinRepCustomCompare(t *testing.T) { } } func TestNinOptNativeUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9345,14 +9343,14 @@ func TestNinOptNativeUnionCompare(t *testing.T) { } } func TestNinOptStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9369,14 +9367,14 @@ func TestNinOptStructUnionCompare(t *testing.T) { } } func TestNinEmbeddedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9393,14 +9391,14 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestNinNestedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9417,14 +9415,14 @@ func TestNinNestedStructUnionCompare(t *testing.T) { } } func TestTreeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9441,14 +9439,14 @@ func TestTreeCompare(t *testing.T) { } } func TestOrBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9465,14 +9463,14 @@ func TestOrBranchCompare(t *testing.T) { } } func TestAndBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9489,14 +9487,14 @@ func TestAndBranchCompare(t *testing.T) { } } func TestLeafCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9513,14 +9511,14 @@ func TestLeafCompare(t *testing.T) { } } func TestDeepTreeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9537,14 +9535,14 @@ func TestDeepTreeCompare(t *testing.T) { } } func TestADeepBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9561,14 +9559,14 @@ func TestADeepBranchCompare(t *testing.T) { } } func TestAndDeepBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9585,14 +9583,14 @@ func TestAndDeepBranchCompare(t *testing.T) { } } func TestDeepLeafCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9609,14 +9607,14 @@ func TestDeepLeafCompare(t *testing.T) { } } func TestNilCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9633,14 +9631,14 @@ func TestNilCompare(t *testing.T) { } } func TestNidOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9657,14 +9655,14 @@ func TestNidOptEnumCompare(t *testing.T) { } } func TestNinOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9681,14 +9679,14 @@ func TestNinOptEnumCompare(t *testing.T) { } } func TestNidRepEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9705,14 +9703,14 @@ func TestNidRepEnumCompare(t *testing.T) { } } func TestNinRepEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9729,14 +9727,14 @@ func TestNinRepEnumCompare(t *testing.T) { } } func TestNinOptEnumDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9753,14 +9751,14 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { } } func TestAnotherNinOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9777,14 +9775,14 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { } } func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9801,14 +9799,14 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { } } func TestTimerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9825,14 +9823,14 @@ func TestTimerCompare(t *testing.T) { } } func TestMyExtendableCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9849,14 +9847,14 @@ func TestMyExtendableCompare(t *testing.T) { } } func TestOtherExtenableCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9873,14 +9871,14 @@ func TestOtherExtenableCompare(t *testing.T) { } } func TestNestedDefinitionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9897,14 +9895,14 @@ func TestNestedDefinitionCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessageCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9921,14 +9919,14 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9945,14 +9943,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { } } func TestNestedScopeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9969,14 +9967,14 @@ func TestNestedScopeCompare(t *testing.T) { } } func TestNinOptNativeDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9993,14 +9991,14 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { } } func TestCustomContainerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10017,14 +10015,14 @@ func TestCustomContainerCompare(t *testing.T) { } } func TestCustomNameNidOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10041,14 +10039,14 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { } } func TestCustomNameNinOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10065,14 +10063,14 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { } } func TestCustomNameNinRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10089,14 +10087,14 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { } } func TestCustomNameNinStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10113,14 +10111,14 @@ func TestCustomNameNinStructCompare(t *testing.T) { } } func TestCustomNameCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10137,14 +10135,14 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10161,14 +10159,14 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestCustomNameEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10185,14 +10183,14 @@ func TestCustomNameEnumCompare(t *testing.T) { } } func TestNoExtensionsMapCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10209,14 +10207,14 @@ func TestNoExtensionsMapCompare(t *testing.T) { } } func TestUnrecognizedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10233,14 +10231,14 @@ func TestUnrecognizedCompare(t *testing.T) { } } func TestUnrecognizedWithInnerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10257,14 +10255,14 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { } } func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10281,14 +10279,14 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { } } func TestUnrecognizedWithEmbedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10305,14 +10303,14 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10329,14 +10327,14 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { } } func TestNodeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10353,14 +10351,14 @@ func TestNodeCompare(t *testing.T) { } } func TestNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10377,14 +10375,14 @@ func TestNonByteCustomTypeCompare(t *testing.T) { } } func TestNidOptNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10401,14 +10399,14 @@ func TestNidOptNonByteCustomTypeCompare(t *testing.T) { } } func TestNinOptNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10425,14 +10423,14 @@ func TestNinOptNonByteCustomTypeCompare(t *testing.T) { } } func TestNidRepNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10449,14 +10447,14 @@ func TestNidRepNonByteCustomTypeCompare(t *testing.T) { } } func TestNinRepNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10473,14 +10471,14 @@ func TestNinRepNonByteCustomTypeCompare(t *testing.T) { } } func TestProtoTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10500,14 +10498,14 @@ func TestThetestDescription(t *testing.T) { ThetestDescription() } func TestNidOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10515,14 +10513,14 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { } } func TestNinOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10530,14 +10528,14 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { } } func TestNidRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10545,14 +10543,14 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { } } func TestNinRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10560,14 +10558,14 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { } } func TestNidRepPackedNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10575,14 +10573,14 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNinRepPackedNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10590,14 +10588,14 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNidOptStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10605,14 +10603,14 @@ func TestNidOptStructVerboseEqual(t *testing.T) { } } func TestNinOptStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10620,14 +10618,14 @@ func TestNinOptStructVerboseEqual(t *testing.T) { } } func TestNidRepStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10635,14 +10633,14 @@ func TestNidRepStructVerboseEqual(t *testing.T) { } } func TestNinRepStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10650,14 +10648,14 @@ func TestNinRepStructVerboseEqual(t *testing.T) { } } func TestNidEmbeddedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10665,14 +10663,14 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10680,14 +10678,14 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNidNestedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10695,14 +10693,14 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { } } func TestNinNestedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10710,14 +10708,14 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { } } func TestNidOptCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10725,14 +10723,14 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { } } func TestCustomDashVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10740,14 +10738,14 @@ func TestCustomDashVerboseEqual(t *testing.T) { } } func TestNinOptCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10755,14 +10753,14 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { } } func TestNidRepCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10770,14 +10768,14 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { } } func TestNinRepCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10785,14 +10783,14 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { } } func TestNinOptNativeUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10800,14 +10798,14 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { } } func TestNinOptStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10815,14 +10813,14 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10830,14 +10828,14 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestNinNestedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10845,14 +10843,14 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { } } func TestTreeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10860,14 +10858,14 @@ func TestTreeVerboseEqual(t *testing.T) { } } func TestOrBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10875,14 +10873,14 @@ func TestOrBranchVerboseEqual(t *testing.T) { } } func TestAndBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10890,14 +10888,14 @@ func TestAndBranchVerboseEqual(t *testing.T) { } } func TestLeafVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10905,14 +10903,14 @@ func TestLeafVerboseEqual(t *testing.T) { } } func TestDeepTreeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10920,14 +10918,14 @@ func TestDeepTreeVerboseEqual(t *testing.T) { } } func TestADeepBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10935,14 +10933,14 @@ func TestADeepBranchVerboseEqual(t *testing.T) { } } func TestAndDeepBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10950,14 +10948,14 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { } } func TestDeepLeafVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10965,14 +10963,14 @@ func TestDeepLeafVerboseEqual(t *testing.T) { } } func TestNilVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10980,14 +10978,14 @@ func TestNilVerboseEqual(t *testing.T) { } } func TestNidOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10995,14 +10993,14 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11010,14 +11008,14 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { } } func TestNidRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11025,14 +11023,14 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { } } func TestNinRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11040,14 +11038,14 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11055,14 +11053,14 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11070,14 +11068,14 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11085,14 +11083,14 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestTimerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11100,14 +11098,14 @@ func TestTimerVerboseEqual(t *testing.T) { } } func TestMyExtendableVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11115,14 +11113,14 @@ func TestMyExtendableVerboseEqual(t *testing.T) { } } func TestOtherExtenableVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11130,14 +11128,14 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { } } func TestNestedDefinitionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11145,14 +11143,14 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11160,14 +11158,14 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11175,14 +11173,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T } } func TestNestedScopeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11190,14 +11188,14 @@ func TestNestedScopeVerboseEqual(t *testing.T) { } } func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11205,14 +11203,14 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { } } func TestCustomContainerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11220,14 +11218,14 @@ func TestCustomContainerVerboseEqual(t *testing.T) { } } func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11235,14 +11233,14 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11250,14 +11248,14 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11265,14 +11263,14 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11280,14 +11278,14 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { } } func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11295,14 +11293,14 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11310,14 +11308,14 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestCustomNameEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11325,14 +11323,14 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { } } func TestNoExtensionsMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11340,14 +11338,14 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { } } func TestUnrecognizedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11355,14 +11353,14 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11370,14 +11368,14 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11385,14 +11383,14 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11400,14 +11398,14 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11415,14 +11413,14 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { } } func TestNodeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11430,14 +11428,14 @@ func TestNodeVerboseEqual(t *testing.T) { } } func TestNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11445,14 +11443,14 @@ func TestNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11460,14 +11458,14 @@ func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11475,14 +11473,14 @@ func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11490,14 +11488,14 @@ func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11505,14 +11503,14 @@ func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestProtoTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11520,7 +11518,7 @@ func TestProtoTypeVerboseEqual(t *testing.T) { } } func TestNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11528,7 +11526,7 @@ func TestNidOptNativeFace(t *testing.T) { } } func TestNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11536,7 +11534,7 @@ func TestNinOptNativeFace(t *testing.T) { } } func TestNidRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11544,7 +11542,7 @@ func TestNidRepNativeFace(t *testing.T) { } } func TestNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11552,7 +11550,7 @@ func TestNinRepNativeFace(t *testing.T) { } } func TestNidRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11560,7 +11558,7 @@ func TestNidRepPackedNativeFace(t *testing.T) { } } func TestNinRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11568,7 +11566,7 @@ func TestNinRepPackedNativeFace(t *testing.T) { } } func TestNidOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11576,7 +11574,7 @@ func TestNidOptStructFace(t *testing.T) { } } func TestNinOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11584,7 +11582,7 @@ func TestNinOptStructFace(t *testing.T) { } } func TestNidRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11592,7 +11590,7 @@ func TestNidRepStructFace(t *testing.T) { } } func TestNinRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11600,7 +11598,7 @@ func TestNinRepStructFace(t *testing.T) { } } func TestNidEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11608,7 +11606,7 @@ func TestNidEmbeddedStructFace(t *testing.T) { } } func TestNinEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11616,7 +11614,7 @@ func TestNinEmbeddedStructFace(t *testing.T) { } } func TestNidNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11624,7 +11622,7 @@ func TestNidNestedStructFace(t *testing.T) { } } func TestNinNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11632,7 +11630,7 @@ func TestNinNestedStructFace(t *testing.T) { } } func TestNidOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11640,7 +11638,7 @@ func TestNidOptCustomFace(t *testing.T) { } } func TestCustomDashFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11648,7 +11646,7 @@ func TestCustomDashFace(t *testing.T) { } } func TestNinOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11656,7 +11654,7 @@ func TestNinOptCustomFace(t *testing.T) { } } func TestNidRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11664,7 +11662,7 @@ func TestNidRepCustomFace(t *testing.T) { } } func TestNinRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11672,7 +11670,7 @@ func TestNinRepCustomFace(t *testing.T) { } } func TestNinOptNativeUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11680,7 +11678,7 @@ func TestNinOptNativeUnionFace(t *testing.T) { } } func TestNinOptStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11688,7 +11686,7 @@ func TestNinOptStructUnionFace(t *testing.T) { } } func TestNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11696,7 +11694,7 @@ func TestNinEmbeddedStructUnionFace(t *testing.T) { } } func TestNinNestedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11704,7 +11702,7 @@ func TestNinNestedStructUnionFace(t *testing.T) { } } func TestTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11712,7 +11710,7 @@ func TestTreeFace(t *testing.T) { } } func TestOrBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11720,7 +11718,7 @@ func TestOrBranchFace(t *testing.T) { } } func TestAndBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11728,7 +11726,7 @@ func TestAndBranchFace(t *testing.T) { } } func TestLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11736,7 +11734,7 @@ func TestLeafFace(t *testing.T) { } } func TestDeepTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11744,7 +11742,7 @@ func TestDeepTreeFace(t *testing.T) { } } func TestADeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11752,7 +11750,7 @@ func TestADeepBranchFace(t *testing.T) { } } func TestAndDeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11760,7 +11758,7 @@ func TestAndDeepBranchFace(t *testing.T) { } } func TestDeepLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11768,7 +11766,7 @@ func TestDeepLeafFace(t *testing.T) { } } func TestNilFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11776,7 +11774,7 @@ func TestNilFace(t *testing.T) { } } func TestNidOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11784,7 +11782,7 @@ func TestNidOptEnumFace(t *testing.T) { } } func TestNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11792,7 +11790,7 @@ func TestNinOptEnumFace(t *testing.T) { } } func TestNidRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11800,7 +11798,7 @@ func TestNidRepEnumFace(t *testing.T) { } } func TestNinRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11808,7 +11806,7 @@ func TestNinRepEnumFace(t *testing.T) { } } func TestAnotherNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11816,7 +11814,7 @@ func TestAnotherNinOptEnumFace(t *testing.T) { } } func TestTimerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11824,7 +11822,7 @@ func TestTimerFace(t *testing.T) { } } func TestNestedDefinitionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11832,7 +11830,7 @@ func TestNestedDefinitionFace(t *testing.T) { } } func TestNestedDefinition_NestedMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11840,7 +11838,7 @@ func TestNestedDefinition_NestedMessageFace(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11848,7 +11846,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { } } func TestNestedScopeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11856,7 +11854,7 @@ func TestNestedScopeFace(t *testing.T) { } } func TestCustomContainerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11864,7 +11862,7 @@ func TestCustomContainerFace(t *testing.T) { } } func TestCustomNameNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11872,7 +11870,7 @@ func TestCustomNameNidOptNativeFace(t *testing.T) { } } func TestCustomNameNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11880,7 +11878,7 @@ func TestCustomNameNinOptNativeFace(t *testing.T) { } } func TestCustomNameNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11888,7 +11886,7 @@ func TestCustomNameNinRepNativeFace(t *testing.T) { } } func TestCustomNameNinStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11896,7 +11894,7 @@ func TestCustomNameNinStructFace(t *testing.T) { } } func TestCustomNameCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11904,7 +11902,7 @@ func TestCustomNameCustomTypeFace(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11912,7 +11910,7 @@ func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { } } func TestCustomNameEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11920,7 +11918,7 @@ func TestCustomNameEnumFace(t *testing.T) { } } func TestUnrecognizedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11928,7 +11926,7 @@ func TestUnrecognizedFace(t *testing.T) { } } func TestUnrecognizedWithInnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11936,7 +11934,7 @@ func TestUnrecognizedWithInnerFace(t *testing.T) { } } func TestUnrecognizedWithInner_InnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11944,7 +11942,7 @@ func TestUnrecognizedWithInner_InnerFace(t *testing.T) { } } func TestUnrecognizedWithEmbedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11952,7 +11950,7 @@ func TestUnrecognizedWithEmbedFace(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11960,7 +11958,7 @@ func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { } } func TestNodeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11968,7 +11966,7 @@ func TestNodeFace(t *testing.T) { } } func TestNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11976,7 +11974,7 @@ func TestNonByteCustomTypeFace(t *testing.T) { } } func TestNidOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11984,7 +11982,7 @@ func TestNidOptNonByteCustomTypeFace(t *testing.T) { } } func TestNinOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11992,7 +11990,7 @@ func TestNinOptNonByteCustomTypeFace(t *testing.T) { } } func TestNidRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -12000,7 +11998,7 @@ func TestNidRepNonByteCustomTypeFace(t *testing.T) { } } func TestNinRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -12008,7 +12006,7 @@ func TestNinRepNonByteCustomTypeFace(t *testing.T) { } } func TestProtoTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -12016,895 +12014,895 @@ func TestProtoTypeFace(t *testing.T) { } } func TestNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomDashGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinNestedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOrBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAndBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestDeepTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestADeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAndDeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestDeepLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNilGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAnotherNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAnotherNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTimerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMyExtendableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOtherExtenableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinitionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinition_NestedMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinition_NestedMessage_NestedNestedMsgGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedScopeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomContainerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNoExtensionsMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithInnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithEmbedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNodeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestProtoTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -12915,14 +12913,14 @@ func TestNidOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNative, 1000) for i := 0; i < 1000; i++ { @@ -12937,10 +12935,10 @@ func BenchmarkNidOptNativeSize(b *testing.B) { func TestNinOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -12951,14 +12949,14 @@ func TestNinOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNative, 1000) for i := 0; i < 1000; i++ { @@ -12973,10 +12971,10 @@ func BenchmarkNinOptNativeSize(b *testing.B) { func TestNidRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -12987,14 +12985,14 @@ func TestNidRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNative, 1000) for i := 0; i < 1000; i++ { @@ -13009,10 +13007,10 @@ func BenchmarkNidRepNativeSize(b *testing.B) { func TestNinRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13023,14 +13021,14 @@ func TestNinRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNative, 1000) for i := 0; i < 1000; i++ { @@ -13045,10 +13043,10 @@ func BenchmarkNinRepNativeSize(b *testing.B) { func TestNidRepPackedNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13059,14 +13057,14 @@ func TestNidRepPackedNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepPackedNative, 1000) for i := 0; i < 1000; i++ { @@ -13081,10 +13079,10 @@ func BenchmarkNidRepPackedNativeSize(b *testing.B) { func TestNinRepPackedNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13095,14 +13093,14 @@ func TestNinRepPackedNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepPackedNative, 1000) for i := 0; i < 1000; i++ { @@ -13117,10 +13115,10 @@ func BenchmarkNinRepPackedNativeSize(b *testing.B) { func TestNidOptStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13131,14 +13129,14 @@ func TestNidOptStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptStruct, 1000) for i := 0; i < 1000; i++ { @@ -13153,10 +13151,10 @@ func BenchmarkNidOptStructSize(b *testing.B) { func TestNinOptStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13167,14 +13165,14 @@ func TestNinOptStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStruct, 1000) for i := 0; i < 1000; i++ { @@ -13189,10 +13187,10 @@ func BenchmarkNinOptStructSize(b *testing.B) { func TestNidRepStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13203,14 +13201,14 @@ func TestNidRepStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepStruct, 1000) for i := 0; i < 1000; i++ { @@ -13225,10 +13223,10 @@ func BenchmarkNidRepStructSize(b *testing.B) { func TestNinRepStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13239,14 +13237,14 @@ func TestNinRepStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepStruct, 1000) for i := 0; i < 1000; i++ { @@ -13261,10 +13259,10 @@ func BenchmarkNinRepStructSize(b *testing.B) { func TestNidEmbeddedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13275,14 +13273,14 @@ func TestNidEmbeddedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidEmbeddedStruct, 1000) for i := 0; i < 1000; i++ { @@ -13297,10 +13295,10 @@ func BenchmarkNidEmbeddedStructSize(b *testing.B) { func TestNinEmbeddedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13311,14 +13309,14 @@ func TestNinEmbeddedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStruct, 1000) for i := 0; i < 1000; i++ { @@ -13333,10 +13331,10 @@ func BenchmarkNinEmbeddedStructSize(b *testing.B) { func TestNidNestedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13347,14 +13345,14 @@ func TestNidNestedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidNestedStruct, 1000) for i := 0; i < 1000; i++ { @@ -13369,10 +13367,10 @@ func BenchmarkNidNestedStructSize(b *testing.B) { func TestNinNestedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13383,14 +13381,14 @@ func TestNinNestedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStruct, 1000) for i := 0; i < 1000; i++ { @@ -13405,10 +13403,10 @@ func BenchmarkNinNestedStructSize(b *testing.B) { func TestNidOptCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13419,14 +13417,14 @@ func TestNidOptCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptCustom, 1000) for i := 0; i < 1000; i++ { @@ -13441,10 +13439,10 @@ func BenchmarkNidOptCustomSize(b *testing.B) { func TestCustomDashSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13455,14 +13453,14 @@ func TestCustomDashSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomDashSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomDash, 1000) for i := 0; i < 1000; i++ { @@ -13477,10 +13475,10 @@ func BenchmarkCustomDashSize(b *testing.B) { func TestNinOptCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13491,14 +13489,14 @@ func TestNinOptCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptCustom, 1000) for i := 0; i < 1000; i++ { @@ -13513,10 +13511,10 @@ func BenchmarkNinOptCustomSize(b *testing.B) { func TestNidRepCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13527,14 +13525,14 @@ func TestNidRepCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepCustom, 1000) for i := 0; i < 1000; i++ { @@ -13549,10 +13547,10 @@ func BenchmarkNidRepCustomSize(b *testing.B) { func TestNinRepCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13563,14 +13561,14 @@ func TestNinRepCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepCustom, 1000) for i := 0; i < 1000; i++ { @@ -13585,10 +13583,10 @@ func BenchmarkNinRepCustomSize(b *testing.B) { func TestNinOptNativeUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13599,14 +13597,14 @@ func TestNinOptNativeUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeUnion, 1000) for i := 0; i < 1000; i++ { @@ -13621,10 +13619,10 @@ func BenchmarkNinOptNativeUnionSize(b *testing.B) { func TestNinOptStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13635,14 +13633,14 @@ func TestNinOptStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -13657,10 +13655,10 @@ func BenchmarkNinOptStructUnionSize(b *testing.B) { func TestNinEmbeddedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13671,14 +13669,14 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -13693,10 +13691,10 @@ func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { func TestNinNestedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13707,14 +13705,14 @@ func TestNinNestedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinNestedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -13729,10 +13727,10 @@ func BenchmarkNinNestedStructUnionSize(b *testing.B) { func TestTreeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13743,14 +13741,14 @@ func TestTreeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Tree, 1000) for i := 0; i < 1000; i++ { @@ -13765,10 +13763,10 @@ func BenchmarkTreeSize(b *testing.B) { func TestOrBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13779,14 +13777,14 @@ func TestOrBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOrBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OrBranch, 1000) for i := 0; i < 1000; i++ { @@ -13801,10 +13799,10 @@ func BenchmarkOrBranchSize(b *testing.B) { func TestAndBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13815,14 +13813,14 @@ func TestAndBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAndBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndBranch, 1000) for i := 0; i < 1000; i++ { @@ -13837,10 +13835,10 @@ func BenchmarkAndBranchSize(b *testing.B) { func TestLeafSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13851,14 +13849,14 @@ func TestLeafSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Leaf, 1000) for i := 0; i < 1000; i++ { @@ -13873,10 +13871,10 @@ func BenchmarkLeafSize(b *testing.B) { func TestDeepTreeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13887,14 +13885,14 @@ func TestDeepTreeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDeepTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepTree, 1000) for i := 0; i < 1000; i++ { @@ -13909,10 +13907,10 @@ func BenchmarkDeepTreeSize(b *testing.B) { func TestADeepBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13923,14 +13921,14 @@ func TestADeepBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkADeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ADeepBranch, 1000) for i := 0; i < 1000; i++ { @@ -13945,10 +13943,10 @@ func BenchmarkADeepBranchSize(b *testing.B) { func TestAndDeepBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13959,14 +13957,14 @@ func TestAndDeepBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAndDeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndDeepBranch, 1000) for i := 0; i < 1000; i++ { @@ -13981,10 +13979,10 @@ func BenchmarkAndDeepBranchSize(b *testing.B) { func TestDeepLeafSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13995,14 +13993,14 @@ func TestDeepLeafSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDeepLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepLeaf, 1000) for i := 0; i < 1000; i++ { @@ -14017,10 +14015,10 @@ func BenchmarkDeepLeafSize(b *testing.B) { func TestNilSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14031,14 +14029,14 @@ func TestNilSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNilSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nil, 1000) for i := 0; i < 1000; i++ { @@ -14053,10 +14051,10 @@ func BenchmarkNilSize(b *testing.B) { func TestNidOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14067,14 +14065,14 @@ func TestNidOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -14089,10 +14087,10 @@ func BenchmarkNidOptEnumSize(b *testing.B) { func TestNinOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14103,14 +14101,14 @@ func TestNinOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -14125,10 +14123,10 @@ func BenchmarkNinOptEnumSize(b *testing.B) { func TestNidRepEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14139,14 +14137,14 @@ func TestNidRepEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepEnum, 1000) for i := 0; i < 1000; i++ { @@ -14161,10 +14159,10 @@ func BenchmarkNidRepEnumSize(b *testing.B) { func TestNinRepEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14175,14 +14173,14 @@ func TestNinRepEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepEnum, 1000) for i := 0; i < 1000; i++ { @@ -14197,10 +14195,10 @@ func BenchmarkNinRepEnumSize(b *testing.B) { func TestNinOptEnumDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14211,14 +14209,14 @@ func TestNinOptEnumDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnumDefault, 1000) for i := 0; i < 1000; i++ { @@ -14233,10 +14231,10 @@ func BenchmarkNinOptEnumDefaultSize(b *testing.B) { func TestAnotherNinOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14247,14 +14245,14 @@ func TestAnotherNinOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAnotherNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -14269,10 +14267,10 @@ func BenchmarkAnotherNinOptEnumSize(b *testing.B) { func TestAnotherNinOptEnumDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14283,14 +14281,14 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnumDefault, 1000) for i := 0; i < 1000; i++ { @@ -14305,10 +14303,10 @@ func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { func TestTimerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14319,14 +14317,14 @@ func TestTimerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkTimerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Timer, 1000) for i := 0; i < 1000; i++ { @@ -14341,10 +14339,10 @@ func BenchmarkTimerSize(b *testing.B) { func TestMyExtendableSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14355,14 +14353,14 @@ func TestMyExtendableSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMyExtendableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyExtendable, 1000) for i := 0; i < 1000; i++ { @@ -14377,10 +14375,10 @@ func BenchmarkMyExtendableSize(b *testing.B) { func TestOtherExtenableSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14391,14 +14389,14 @@ func TestOtherExtenableSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOtherExtenableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OtherExtenable, 1000) for i := 0; i < 1000; i++ { @@ -14413,10 +14411,10 @@ func BenchmarkOtherExtenableSize(b *testing.B) { func TestNestedDefinitionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14427,14 +14425,14 @@ func TestNestedDefinitionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinitionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition, 1000) for i := 0; i < 1000; i++ { @@ -14449,10 +14447,10 @@ func BenchmarkNestedDefinitionSize(b *testing.B) { func TestNestedDefinition_NestedMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14463,14 +14461,14 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage, 1000) for i := 0; i < 1000; i++ { @@ -14485,10 +14483,10 @@ func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14499,14 +14497,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 1000) for i := 0; i < 1000; i++ { @@ -14521,10 +14519,10 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { func TestNestedScopeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14535,14 +14533,14 @@ func TestNestedScopeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedScopeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedScope, 1000) for i := 0; i < 1000; i++ { @@ -14557,10 +14555,10 @@ func BenchmarkNestedScopeSize(b *testing.B) { func TestNinOptNativeDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14571,14 +14569,14 @@ func TestNinOptNativeDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeDefault, 1000) for i := 0; i < 1000; i++ { @@ -14593,10 +14591,10 @@ func BenchmarkNinOptNativeDefaultSize(b *testing.B) { func TestCustomContainerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14607,14 +14605,14 @@ func TestCustomContainerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomContainerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomContainer, 1000) for i := 0; i < 1000; i++ { @@ -14629,10 +14627,10 @@ func BenchmarkCustomContainerSize(b *testing.B) { func TestCustomNameNidOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14643,14 +14641,14 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNidOptNative, 1000) for i := 0; i < 1000; i++ { @@ -14665,10 +14663,10 @@ func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { func TestCustomNameNinOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14679,14 +14677,14 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinOptNative, 1000) for i := 0; i < 1000; i++ { @@ -14701,10 +14699,10 @@ func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { func TestCustomNameNinRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14715,14 +14713,14 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinRepNative, 1000) for i := 0; i < 1000; i++ { @@ -14737,10 +14735,10 @@ func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { func TestCustomNameNinStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14751,14 +14749,14 @@ func TestCustomNameNinStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinStruct, 1000) for i := 0; i < 1000; i++ { @@ -14773,10 +14771,10 @@ func BenchmarkCustomNameNinStructSize(b *testing.B) { func TestCustomNameCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14787,14 +14785,14 @@ func TestCustomNameCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameCustomType, 1000) for i := 0; i < 1000; i++ { @@ -14809,10 +14807,10 @@ func BenchmarkCustomNameCustomTypeSize(b *testing.B) { func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14823,14 +14821,14 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinEmbeddedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -14845,10 +14843,10 @@ func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { func TestCustomNameEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14859,14 +14857,14 @@ func TestCustomNameEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameEnum, 1000) for i := 0; i < 1000; i++ { @@ -14881,10 +14879,10 @@ func BenchmarkCustomNameEnumSize(b *testing.B) { func TestNoExtensionsMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14895,14 +14893,14 @@ func TestNoExtensionsMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNoExtensionsMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NoExtensionsMap, 1000) for i := 0; i < 1000; i++ { @@ -14917,10 +14915,10 @@ func BenchmarkNoExtensionsMapSize(b *testing.B) { func TestUnrecognizedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14931,14 +14929,14 @@ func TestUnrecognizedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Unrecognized, 1000) for i := 0; i < 1000; i++ { @@ -14953,10 +14951,10 @@ func BenchmarkUnrecognizedSize(b *testing.B) { func TestUnrecognizedWithInnerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14967,14 +14965,14 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner, 1000) for i := 0; i < 1000; i++ { @@ -14989,10 +14987,10 @@ func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { func TestUnrecognizedWithInner_InnerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15003,14 +15001,14 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner_Inner, 1000) for i := 0; i < 1000; i++ { @@ -15025,10 +15023,10 @@ func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { func TestUnrecognizedWithEmbedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15039,14 +15037,14 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed, 1000) for i := 0; i < 1000; i++ { @@ -15061,10 +15059,10 @@ func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15075,14 +15073,14 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed_Embedded, 1000) for i := 0; i < 1000; i++ { @@ -15097,10 +15095,10 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { func TestNodeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15111,14 +15109,14 @@ func TestNodeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNodeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Node, 1000) for i := 0; i < 1000; i++ { @@ -15133,10 +15131,10 @@ func BenchmarkNodeSize(b *testing.B) { func TestNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15147,14 +15145,14 @@ func TestNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15169,10 +15167,10 @@ func BenchmarkNonByteCustomTypeSize(b *testing.B) { func TestNidOptNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15183,14 +15181,14 @@ func TestNidOptNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15205,10 +15203,10 @@ func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { func TestNinOptNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15219,14 +15217,14 @@ func TestNinOptNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15241,10 +15239,10 @@ func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { func TestNidRepNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15255,14 +15253,14 @@ func TestNidRepNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15277,10 +15275,10 @@ func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { func TestNinRepNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15291,14 +15289,14 @@ func TestNinRepNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15313,10 +15311,10 @@ func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { func TestProtoTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15327,14 +15325,14 @@ func TestProtoTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkProtoTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoType, 1000) for i := 0; i < 1000; i++ { @@ -15348,7 +15346,7 @@ func BenchmarkProtoTypeSize(b *testing.B) { } func TestNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15357,7 +15355,7 @@ func TestNidOptNativeStringer(t *testing.T) { } } func TestNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15366,7 +15364,7 @@ func TestNinOptNativeStringer(t *testing.T) { } } func TestNidRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15375,7 +15373,7 @@ func TestNidRepNativeStringer(t *testing.T) { } } func TestNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15384,7 +15382,7 @@ func TestNinRepNativeStringer(t *testing.T) { } } func TestNidRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15393,7 +15391,7 @@ func TestNidRepPackedNativeStringer(t *testing.T) { } } func TestNinRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15402,7 +15400,7 @@ func TestNinRepPackedNativeStringer(t *testing.T) { } } func TestNidOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15411,7 +15409,7 @@ func TestNidOptStructStringer(t *testing.T) { } } func TestNinOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15420,7 +15418,7 @@ func TestNinOptStructStringer(t *testing.T) { } } func TestNidRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15429,7 +15427,7 @@ func TestNidRepStructStringer(t *testing.T) { } } func TestNinRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15438,7 +15436,7 @@ func TestNinRepStructStringer(t *testing.T) { } } func TestNidEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15447,7 +15445,7 @@ func TestNidEmbeddedStructStringer(t *testing.T) { } } func TestNinEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15456,7 +15454,7 @@ func TestNinEmbeddedStructStringer(t *testing.T) { } } func TestNidNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15465,7 +15463,7 @@ func TestNidNestedStructStringer(t *testing.T) { } } func TestNinNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15474,7 +15472,7 @@ func TestNinNestedStructStringer(t *testing.T) { } } func TestNidOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15483,7 +15481,7 @@ func TestNidOptCustomStringer(t *testing.T) { } } func TestCustomDashStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15492,7 +15490,7 @@ func TestCustomDashStringer(t *testing.T) { } } func TestNinOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15501,7 +15499,7 @@ func TestNinOptCustomStringer(t *testing.T) { } } func TestNidRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15510,7 +15508,7 @@ func TestNidRepCustomStringer(t *testing.T) { } } func TestNinRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15519,7 +15517,7 @@ func TestNinRepCustomStringer(t *testing.T) { } } func TestNinOptNativeUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15528,7 +15526,7 @@ func TestNinOptNativeUnionStringer(t *testing.T) { } } func TestNinOptStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15537,7 +15535,7 @@ func TestNinOptStructUnionStringer(t *testing.T) { } } func TestNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15546,7 +15544,7 @@ func TestNinEmbeddedStructUnionStringer(t *testing.T) { } } func TestNinNestedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15555,7 +15553,7 @@ func TestNinNestedStructUnionStringer(t *testing.T) { } } func TestTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15564,7 +15562,7 @@ func TestTreeStringer(t *testing.T) { } } func TestOrBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15573,7 +15571,7 @@ func TestOrBranchStringer(t *testing.T) { } } func TestAndBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15582,7 +15580,7 @@ func TestAndBranchStringer(t *testing.T) { } } func TestLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15591,7 +15589,7 @@ func TestLeafStringer(t *testing.T) { } } func TestDeepTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15600,7 +15598,7 @@ func TestDeepTreeStringer(t *testing.T) { } } func TestADeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15609,7 +15607,7 @@ func TestADeepBranchStringer(t *testing.T) { } } func TestAndDeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15618,7 +15616,7 @@ func TestAndDeepBranchStringer(t *testing.T) { } } func TestDeepLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15627,7 +15625,7 @@ func TestDeepLeafStringer(t *testing.T) { } } func TestNilStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15636,7 +15634,7 @@ func TestNilStringer(t *testing.T) { } } func TestNidOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15645,7 +15643,7 @@ func TestNidOptEnumStringer(t *testing.T) { } } func TestNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15654,7 +15652,7 @@ func TestNinOptEnumStringer(t *testing.T) { } } func TestNidRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15663,7 +15661,7 @@ func TestNidRepEnumStringer(t *testing.T) { } } func TestNinRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15672,7 +15670,7 @@ func TestNinRepEnumStringer(t *testing.T) { } } func TestNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15681,7 +15679,7 @@ func TestNinOptEnumDefaultStringer(t *testing.T) { } } func TestAnotherNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15690,7 +15688,7 @@ func TestAnotherNinOptEnumStringer(t *testing.T) { } } func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15699,7 +15697,7 @@ func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { } } func TestTimerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15708,7 +15706,7 @@ func TestTimerStringer(t *testing.T) { } } func TestMyExtendableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15717,7 +15715,7 @@ func TestMyExtendableStringer(t *testing.T) { } } func TestOtherExtenableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15726,7 +15724,7 @@ func TestOtherExtenableStringer(t *testing.T) { } } func TestNestedDefinitionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15735,7 +15733,7 @@ func TestNestedDefinitionStringer(t *testing.T) { } } func TestNestedDefinition_NestedMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15744,7 +15742,7 @@ func TestNestedDefinition_NestedMessageStringer(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15753,7 +15751,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { } } func TestNestedScopeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15762,7 +15760,7 @@ func TestNestedScopeStringer(t *testing.T) { } } func TestNinOptNativeDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15771,7 +15769,7 @@ func TestNinOptNativeDefaultStringer(t *testing.T) { } } func TestCustomContainerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15780,7 +15778,7 @@ func TestCustomContainerStringer(t *testing.T) { } } func TestCustomNameNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15789,7 +15787,7 @@ func TestCustomNameNidOptNativeStringer(t *testing.T) { } } func TestCustomNameNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15798,7 +15796,7 @@ func TestCustomNameNinOptNativeStringer(t *testing.T) { } } func TestCustomNameNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15807,7 +15805,7 @@ func TestCustomNameNinRepNativeStringer(t *testing.T) { } } func TestCustomNameNinStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15816,7 +15814,7 @@ func TestCustomNameNinStructStringer(t *testing.T) { } } func TestCustomNameCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15825,7 +15823,7 @@ func TestCustomNameCustomTypeStringer(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15834,7 +15832,7 @@ func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { } } func TestCustomNameEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15843,7 +15841,7 @@ func TestCustomNameEnumStringer(t *testing.T) { } } func TestNoExtensionsMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15852,7 +15850,7 @@ func TestNoExtensionsMapStringer(t *testing.T) { } } func TestUnrecognizedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15861,7 +15859,7 @@ func TestUnrecognizedStringer(t *testing.T) { } } func TestUnrecognizedWithInnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15870,7 +15868,7 @@ func TestUnrecognizedWithInnerStringer(t *testing.T) { } } func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15879,7 +15877,7 @@ func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { } } func TestUnrecognizedWithEmbedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15888,7 +15886,7 @@ func TestUnrecognizedWithEmbedStringer(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15897,7 +15895,7 @@ func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { } } func TestNodeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15906,7 +15904,7 @@ func TestNodeStringer(t *testing.T) { } } func TestNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15915,7 +15913,7 @@ func TestNonByteCustomTypeStringer(t *testing.T) { } } func TestNidOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15924,7 +15922,7 @@ func TestNidOptNonByteCustomTypeStringer(t *testing.T) { } } func TestNinOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15933,7 +15931,7 @@ func TestNinOptNonByteCustomTypeStringer(t *testing.T) { } } func TestNidRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15942,7 +15940,7 @@ func TestNidRepNonByteCustomTypeStringer(t *testing.T) { } } func TestNinRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15951,7 +15949,7 @@ func TestNinRepNonByteCustomTypeStringer(t *testing.T) { } } func TestProtoTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15960,7 +15958,7 @@ func TestProtoTypeStringer(t *testing.T) { } } func TestNinOptNativeUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) v := p.GetValue() msg := &NinOptNativeUnion{} @@ -15972,7 +15970,7 @@ func TestNinOptNativeUnionOnlyOne(t *testing.T) { } } func TestNinOptStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, true) v := p.GetValue() msg := &NinOptStructUnion{} @@ -15984,7 +15982,7 @@ func TestNinOptStructUnionOnlyOne(t *testing.T) { } } func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, true) v := p.GetValue() msg := &NinEmbeddedStructUnion{} @@ -15996,7 +15994,7 @@ func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { } } func TestNinNestedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, true) v := p.GetValue() msg := &NinNestedStructUnion{} @@ -16008,7 +16006,7 @@ func TestNinNestedStructUnionOnlyOne(t *testing.T) { } } func TestTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, true) v := p.GetValue() msg := &Tree{} @@ -16020,7 +16018,7 @@ func TestTreeOnlyOne(t *testing.T) { } } func TestDeepTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, true) v := p.GetValue() msg := &DeepTree{} @@ -16032,7 +16030,7 @@ func TestDeepTreeOnlyOne(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) v := p.GetValue() msg := &CustomNameNinEmbeddedStructUnion{} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/bug_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/bug_test.go deleted file mode 100644 index 53f720e96..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/bug_test.go +++ /dev/null @@ -1,252 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package test - -import ( - "fmt" - "math" - "math/rand" - "testing" - "time" - - "github.com/gogo/protobuf/proto" -) - -//http://code.google.com/p/goprotobuf/issues/detail?id=39 -func TestBugUint32VarintSize(t *testing.T) { - temp := uint32(math.MaxUint32) - n := &NinOptNative{} - n.Field5 = &temp - data, err := proto.Marshal(n) - if err != nil { - panic(err) - } - if len(data) != 6 { - t.Fatalf("data should be length 6, but its %#v", data) - } -} - -func TestBugZeroLengthSliceSize(t *testing.T) { - n := &NinRepPackedNative{ - Field8: []int64{}, - } - size := n.Size() - data, err := proto.Marshal(n) - if err != nil { - panic(err) - } - if len(data) != size { - t.Fatalf("expected %v, but got %v", len(data), size) - } -} - -//http://code.google.com/p/goprotobuf/issues/detail?id=40 -func TestBugPackedProtoSize(t *testing.T) { - n := &NinRepPackedNative{ - Field4: []int64{172960727389894724, 2360337516664475010, 860833876131988189, 9068073014890763245, 7794843386260381831, 4023536436053141786, 8992311247496919020, 4330096163611305776, 4490411416244976467, 7873947349172707443, 2754969595834279669, 1360667855926938684, 4771480785172657389, 4875578924966668055, 8070579869808877481, 9128179594766551001, 4630419407064527516, 863844540220372892, 8208727650143073487, 7086117356301045838, 7779695211931506151, 5493835345187563535, 9119767633370806007, 9054342025895349248, 1887303228838508438, 7624573031734528281, 1874668389749611225, 3517684643468970593, 6677697606628877758, 7293473953189936168, 444475066704085538, 8594971141363049302, 1146643249094989673, 733393306232853371, 7721178528893916886, 7784452000911004429, 6436373110242711440, 6897422461738321237, 8772249155667732778, 6211871464311393541, 3061903718310406883, 7845488913176136641, 8342255034663902574, 3443058984649725748, 8410801047334832902, 7496541071517841153, 4305416923521577765, 7814967600020476457, 8671843803465481186, 3490266370361096855, 1447425664719091336, 653218597262334239, 8306243902880091940, 7851896059762409081, 5936760560798954978, 5755724498441478025, 7022701569985035966, 3707709584811468220, 529069456924666920, 7986469043681522462, 3092513330689518836, 5103541550470476202, 3577384161242626406, 3733428084624703294, 8388690542440473117, 3262468785346149388, 8788358556558007570, 5476276940198542020, 7277903243119461239, 5065861426928605020, 7533460976202697734, 1749213838654236956, 557497603941617931, 5496307611456481108, 6444547750062831720, 6992758776744205596, 7356719693428537399, 2896328872476734507, 381447079530132038, 598300737753233118, 3687980626612697715, 7240924191084283349, 8172414415307971170, 4847024388701257185, 2081764168600256551, 3394217778539123488, 6244660626429310923, 8301712215675381614, 5360615125359461174, 8410140945829785773, 3152963269026381373, 6197275282781459633, 4419829061407546410, 6262035523070047537, 2837207483933463885, 2158105736666826128, 8150764172235490711}, - Field7: []int32{249451845, 1409974015, 393609128, 435232428, 1817529040, 91769006, 861170933, 1556185603, 1568580279, 1236375273, 512276621, 693633711, 967580535, 1950715977, 853431462, 1362390253, 159591204, 111900629, 322985263, 279671129, 1592548430, 465651370, 733849989, 1172059400, 1574824441, 263541092, 1271612397, 1520584358, 467078791, 117698716, 1098255064, 2054264846, 1766452305, 1267576395, 1557505617, 1187833560, 956187431, 1970977586, 1160235159, 1610259028, 489585797, 459139078, 566263183, 954319278, 1545018565, 1753946743, 948214318, 422878159, 883926576, 1424009347, 824732372, 1290433180, 80297942, 417294230, 1402647904, 2078392782, 220505045, 787368129, 463781454, 293083578, 808156928, 293976361}, - Field9: []uint32{0xaa4976e8, 0x3da8cc4c, 0x8c470d83, 0x344d964e, 0x5b90925, 0xa4c4d34e, 0x666eff19, 0xc238e552, 0x9be53bb6, 0x56364245, 0x33ee079d, 0x96bf0ede, 0x7941b74f, 0xdb07cb47, 0x6d76d827, 0x9b211d5d, 0x2798adb6, 0xe48b0c3b, 0x87061b21, 0x48f4e4d2, 0x3e5d5c12, 0x5ee91288, 0x336d4f35, 0xe1d44941, 0xc065548d, 0x2953d73f, 0x873af451, 0xfc769db, 0x9f1bf8da, 0x9baafdfc, 0xf1d3d770, 0x5bb5d2b4, 0xc2c67c48, 0x6845c4c1, 0xa48f32b0, 0xbb04bb70, 0xa5b1ca36, 0x8d98356a, 0x2171f654, 0x5ae279b0, 0x6c4a3d6b, 0x4fff5468, 0xcf9bf851, 0x68513614, 0xdbecd9b0, 0x9553ed3c, 0xa494a736, 0x42205438, 0xbf8e5caa, 0xd3283c6, 0x76d20788, 0x9179826f, 0x96b24f85, 0xbc2eacf4, 0xe4afae0b, 0x4bca85cb, 0x35e63b5b, 0xd7ccee0c, 0x2b506bb9, 0xe78e9f44, 0x9ad232f1, 0x99a37335, 0xa5d6ffc8}, - Field11: []uint64{0x53c01ebc, 0x4fb85ba6, 0x8805eea1, 0xb20ec896, 0x93b63410, 0xec7c9492, 0x50765a28, 0x19592106, 0x2ecc59b3, 0x39cd474f, 0xe4c9e47, 0x444f48c5, 0xe7731d32, 0xf3f43975, 0x603caedd, 0xbb05a1af, 0xa808e34e, 0x88580b07, 0x4c96bbd1, 0x730b4ab9, 0xed126e2b, 0x6db48205, 0x154ba1b9, 0xc26bfb6a, 0x389aa052, 0x869d966c, 0x7c86b366, 0xcc8edbcd, 0xfa8d6dad, 0xcf5857d9, 0x2d9cda0f, 0x1218a0b8, 0x41bf997, 0xf0ca65ac, 0xa610d4b9, 0x8d362e28, 0xb7212d87, 0x8e0fe109, 0xbee041d9, 0x759be2f6, 0x35fef4f3, 0xaeacdb71, 0x10888852, 0xf4e28117, 0xe2a14812, 0x73b748dc, 0xd1c3c6b2, 0xfef41bf0, 0xc9b43b62, 0x810e4faa, 0xcaa41c06, 0x1893fe0d, 0xedc7c850, 0xd12b9eaa, 0x467ee1a9, 0xbe84756b, 0xda7b1680, 0xdc069ffe, 0xf1e7e9f9, 0xb3d95370, 0xa92b77df, 0x5693ac41, 0xd04b7287, 0x27aebf15, 0x837b316e, 0x4dbe2263, 0xbab70c67, 0x547dab21, 0x3c346c1f, 0xb8ef0e4e, 0xfe2d03ce, 0xe1d75955, 0xfec1306, 0xba35c23e, 0xb784ed04, 0x2a4e33aa, 0x7e19d09a, 0x3827c1fe, 0xf3a51561, 0xef765e2b, 0xb044256c, 0x62b322be, 0xf34d56be, 0xeb71b369, 0xffe1294f, 0x237fe8d0, 0x77a1473b, 0x239e1196, 0xdd19bf3d, 0x82c91fe1, 0x95361c57, 0xffea3f1b, 0x1a094c84}, - Field12: []int64{8308420747267165049, 3664160795077875961, 7868970059161834817, 7237335984251173739, 5254748003907196506, 3362259627111837480, 430460752854552122, 5119635556501066533, 1277716037866233522, 9185775384759813768, 833932430882717888, 7986528304451297640, 6792233378368656337, 2074207091120609721, 1788723326198279432, 7756514594746453657, 2283775964901597324, 3061497730110517191, 7733947890656120277, 626967303632386244, 7822928600388582821, 3489658753000061230, 168869995163005961, 248814782163480763, 477885608911386247, 4198422415674133867, 3379354662797976109, 9925112544736939, 1486335136459138480, 4561560414032850671, 1010864164014091267, 186722821683803084, 5106357936724819318, 1298160820191228988, 4675403242419953145, 7130634540106489752, 7101280006672440929, 7176058292431955718, 9109875054097770321, 6810974877085322872, 4736707874303993641, 8993135362721382187, 6857881554990254283, 3704748883307461680, 1099360832887634994, 5207691918707192633, 5984721695043995243}, - } - size := proto.Size(n) - data, err := proto.Marshal(n) - if err != nil { - panic(err) - } - if len(data) != size { - t.Fatalf("expected %v, but got %v diff is %v", len(data), size, len(data)-size) - } -} - -func testSize(m interface { - proto.Message - Size() int -}, desc string, expected int) ([]byte, error) { - data, err := proto.Marshal(m) - if err != nil { - return nil, err - } - protoSize := proto.Size(m) - mSize := m.Size() - lenData := len(data) - if protoSize != mSize || protoSize != lenData || mSize != lenData { - return nil, fmt.Errorf("%s proto.Size(m){%d} != m.Size(){%d} != len(data){%d}", desc, protoSize, mSize, lenData) - } - if got := protoSize; got != expected { - return nil, fmt.Errorf("%s proto.Size(m) got %d expected %d", desc, got, expected) - } - if got := mSize; got != expected { - return nil, fmt.Errorf("%s m.Size() got %d expected %d", desc, got, expected) - } - if got := lenData; got != expected { - return nil, fmt.Errorf("%s len(data) got %d expected %d", desc, got, expected) - } - return data, nil -} - -func TestInt32Int64Compatibility(t *testing.T) { - - //test nullable int32 and int64 - - data1, err := testSize(&NinOptNative{ - Field3: proto.Int32(-1), - }, "nullable", 11) - if err != nil { - t.Error(err) - } - //change marshaled data1 to unmarshal into 4th field which is an int64 - data1[0] = uint8(uint32(4 /*fieldNumber*/)<<3 | uint32(0 /*wireType*/)) - u1 := &NinOptNative{} - if err = proto.Unmarshal(data1, u1); err != nil { - t.Error(err) - } - if !u1.Equal(&NinOptNative{ - Field4: proto.Int64(-1), - }) { - t.Error("nullable unmarshaled int32 is not the same int64") - } - - //test non-nullable int32 and int64 - - data2, err := testSize(&NidOptNative{ - Field3: -1, - }, "non nullable", 67) - if err != nil { - t.Error(err) - } - //change marshaled data2 to unmarshal into 4th field which is an int64 - field3 := uint8(uint32(3 /*fieldNumber*/)<<3 | uint32(0 /*wireType*/)) - field4 := uint8(uint32(4 /*fieldNumber*/)<<3 | uint32(0 /*wireType*/)) - for i, c := range data2 { - if c == field4 { - data2[i] = field3 - } else if c == field3 { - data2[i] = field4 - } - } - u2 := &NidOptNative{} - if err = proto.Unmarshal(data2, u2); err != nil { - t.Error(err) - } - if !u2.Equal(&NidOptNative{ - Field4: -1, - }) { - t.Error("non nullable unmarshaled int32 is not the same int64") - } - - //test packed repeated int32 and int64 - - m4 := &NinRepPackedNative{ - Field3: []int32{-1}, - } - data4, err := testSize(m4, "packed", 12) - if err != nil { - t.Error(err) - } - u4 := &NinRepPackedNative{} - if err := proto.Unmarshal(data4, u4); err != nil { - t.Error(err) - } - if err := u4.VerboseEqual(m4); err != nil { - t.Fatalf("%#v", u4) - } - - //test repeated int32 and int64 - - if _, err := testSize(&NinRepNative{ - Field3: []int32{-1}, - }, "repeated", 11); err != nil { - t.Error(err) - } - - t.Logf("tested all") -} - -func TestRepeatedExtensionsMsgsIssue161(t *testing.T) { - r := rand.New(rand.NewSource(time.Now().UnixNano())) - rep := 10 - nins := make([]*NinOptNative, rep) - for i := range nins { - nins[i] = NewPopulatedNinOptNative(r, true) - } - input := &MyExtendable{} - if err := proto.SetExtension(input, E_FieldE, nins); err != nil { - t.Fatal(err) - } - data, err := proto.Marshal(input) - if err != nil { - t.Fatal(err) - } - output := &MyExtendable{} - if err := proto.Unmarshal(data, output); err != nil { - t.Fatal(err) - } - if !input.Equal(output) { - t.Fatal("expected equal") - } - data2, err2 := proto.Marshal(output) - if err2 != nil { - t.Fatal(err2) - } - if len(data) != len(data2) { - t.Fatal("expected equal length buffers") - } -} - -func TestRepeatedExtensionsFieldsIssue161(t *testing.T) { - r := rand.New(rand.NewSource(time.Now().UnixNano())) - rep := 10 - ints := make([]int64, rep) - for i := range ints { - ints[i] = r.Int63() - } - input := &MyExtendable{} - if err := proto.SetExtension(input, E_FieldD, ints); err != nil { - t.Fatal(err) - } - data, err := proto.Marshal(input) - if err != nil { - t.Fatal(err) - } - output := &MyExtendable{} - if err := proto.Unmarshal(data, output); err != nil { - t.Fatal(err) - } - if !input.Equal(output) { - t.Fatal("expected equal") - } - data2, err2 := proto.Marshal(output) - if err2 != nil { - t.Fatal(err2) - } - if len(data) != len(data2) { - t.Fatal("expected equal length buffers") - } -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/t.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/t.go deleted file mode 100644 index 4112884ac..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/t.go +++ /dev/null @@ -1,77 +0,0 @@ -package test - -import ( - "encoding/json" - "strings" - - "github.com/gogo/protobuf/proto" -) - -type T struct { - Data string -} - -func (gt *T) protoType() *ProtoType { - return &ProtoType{ - Field2: >.Data, - } -} - -func (gt T) Equal(other T) bool { - return gt.protoType().Equal(other.protoType()) -} - -func (gt *T) Size() int { - proto := &ProtoType{ - Field2: >.Data, - } - return proto.Size() -} - -func NewPopulatedT(r randyThetest) *T { - data := NewPopulatedProtoType(r, false).Field2 - gt := &T{} - if data != nil { - gt.Data = *data - } - return gt -} - -func (r T) Marshal() ([]byte, error) { - return proto.Marshal(r.protoType()) -} - -func (r *T) MarshalTo(data []byte) (n int, err error) { - return r.protoType().MarshalTo(data) -} - -func (r *T) Unmarshal(data []byte) error { - pr := &ProtoType{} - err := proto.Unmarshal(data, pr) - if err != nil { - return err - } - - if pr.Field2 != nil { - r.Data = *pr.Field2 - } - return nil -} - -func (gt T) MarshalJSON() ([]byte, error) { - return json.Marshal(gt.Data) -} - -func (gt *T) UnmarshalJSON(data []byte) error { - var s string - err := json.Unmarshal(data, &s) - if err != nil { - return err - } - *gt = T{Data: s} - return nil -} - -func (gt T) Compare(other T) int { - return strings.Compare(gt.Data, other.Data) -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.pb.go deleted file mode 100644 index 4e291b14c..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.pb.go +++ /dev/null @@ -1,43579 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/thetest.proto -// DO NOT EDIT! - -/* - Package test is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeboth/thetest.proto - - It has these top-level messages: - NidOptNative - NinOptNative - NidRepNative - NinRepNative - NidRepPackedNative - NinRepPackedNative - NidOptStruct - NinOptStruct - NidRepStruct - NinRepStruct - NidEmbeddedStruct - NinEmbeddedStruct - NidNestedStruct - NinNestedStruct - NidOptCustom - CustomDash - NinOptCustom - NidRepCustom - NinRepCustom - NinOptNativeUnion - NinOptStructUnion - NinEmbeddedStructUnion - NinNestedStructUnion - Tree - OrBranch - AndBranch - Leaf - DeepTree - ADeepBranch - AndDeepBranch - DeepLeaf - Nil - NidOptEnum - NinOptEnum - NidRepEnum - NinRepEnum - NinOptEnumDefault - AnotherNinOptEnum - AnotherNinOptEnumDefault - Timer - MyExtendable - OtherExtenable - NestedDefinition - NestedScope - NinOptNativeDefault - CustomContainer - CustomNameNidOptNative - CustomNameNinOptNative - CustomNameNinRepNative - CustomNameNinStruct - CustomNameCustomType - CustomNameNinEmbeddedStructUnion - CustomNameEnum - NoExtensionsMap - Unrecognized - UnrecognizedWithInner - UnrecognizedWithEmbed - Node - NonByteCustomType - NidOptNonByteCustomType - NinOptNonByteCustomType - NidRepNonByteCustomType - NinRepNonByteCustomType - ProtoType -*/ -package test - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type" - -import bytes "bytes" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import compress_gzip "compress/gzip" -import io_ioutil "io/ioutil" - -import strconv "strconv" - -import strings "strings" -import sort "sort" -import reflect "reflect" - -import unsafe "unsafe" - -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 - -type TheTestEnum int32 - -const ( - A TheTestEnum = 0 - B TheTestEnum = 1 - C TheTestEnum = 2 -) - -var TheTestEnum_name = map[int32]string{ - 0: "A", - 1: "B", - 2: "C", -} -var TheTestEnum_value = map[string]int32{ - "A": 0, - "B": 1, - "C": 2, -} - -func (x TheTestEnum) Enum() *TheTestEnum { - p := new(TheTestEnum) - *p = x - return p -} -func (x TheTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(TheTestEnum_name, int32(x)) -} -func (x *TheTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(TheTestEnum_value, data, "TheTestEnum") - if err != nil { - return err - } - *x = TheTestEnum(value) - return nil -} -func (TheTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } - -type AnotherTestEnum int32 - -const ( - D AnotherTestEnum = 10 - E AnotherTestEnum = 11 -) - -var AnotherTestEnum_name = map[int32]string{ - 10: "D", - 11: "E", -} -var AnotherTestEnum_value = map[string]int32{ - "D": 10, - "E": 11, -} - -func (x AnotherTestEnum) Enum() *AnotherTestEnum { - p := new(AnotherTestEnum) - *p = x - return p -} -func (x AnotherTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(AnotherTestEnum_name, int32(x)) -} -func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(AnotherTestEnum_value, data, "AnotherTestEnum") - if err != nil { - return err - } - *x = AnotherTestEnum(value) - return nil -} -func (AnotherTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -type YetAnotherTestEnum int32 - -const ( - AA YetAnotherTestEnum = 0 - BetterYetBB YetAnotherTestEnum = 1 -) - -var YetAnotherTestEnum_name = map[int32]string{ - 0: "AA", - 1: "BB", -} -var YetAnotherTestEnum_value = map[string]int32{ - "AA": 0, - "BB": 1, -} - -func (x YetAnotherTestEnum) Enum() *YetAnotherTestEnum { - p := new(YetAnotherTestEnum) - *p = x - return p -} -func (x YetAnotherTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(YetAnotherTestEnum_name, int32(x)) -} -func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(YetAnotherTestEnum_value, data, "YetAnotherTestEnum") - if err != nil { - return err - } - *x = YetAnotherTestEnum(value) - return nil -} -func (YetAnotherTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -type YetYetAnotherTestEnum int32 - -const ( - YetYetAnotherTestEnum_CC YetYetAnotherTestEnum = 0 - YetYetAnotherTestEnum_BetterYetDD YetYetAnotherTestEnum = 1 -) - -var YetYetAnotherTestEnum_name = map[int32]string{ - 0: "CC", - 1: "DD", -} -var YetYetAnotherTestEnum_value = map[string]int32{ - "CC": 0, - "DD": 1, -} - -func (x YetYetAnotherTestEnum) Enum() *YetYetAnotherTestEnum { - p := new(YetYetAnotherTestEnum) - *p = x - return p -} -func (x YetYetAnotherTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(YetYetAnotherTestEnum_name, int32(x)) -} -func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(YetYetAnotherTestEnum_value, data, "YetYetAnotherTestEnum") - if err != nil { - return err - } - *x = YetYetAnotherTestEnum(value) - return nil -} -func (YetYetAnotherTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } - -type NestedDefinition_NestedEnum int32 - -const ( - TYPE_NESTED NestedDefinition_NestedEnum = 1 -) - -var NestedDefinition_NestedEnum_name = map[int32]string{ - 1: "TYPE_NESTED", -} -var NestedDefinition_NestedEnum_value = map[string]int32{ - "TYPE_NESTED": 1, -} - -func (x NestedDefinition_NestedEnum) Enum() *NestedDefinition_NestedEnum { - p := new(NestedDefinition_NestedEnum) - *p = x - return p -} -func (x NestedDefinition_NestedEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(NestedDefinition_NestedEnum_name, int32(x)) -} -func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(NestedDefinition_NestedEnum_value, data, "NestedDefinition_NestedEnum") - if err != nil { - return err - } - *x = NestedDefinition_NestedEnum(value) - return nil -} -func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{42, 0} -} - -type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptNative) Reset() { *m = NidOptNative{} } -func (*NidOptNative) ProtoMessage() {} -func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } - -type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNative) Reset() { *m = NinOptNative{} } -func (*NinOptNative) ProtoMessage() {} -func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } - -type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepNative) Reset() { *m = NidRepNative{} } -func (*NidRepNative) ProtoMessage() {} -func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } - -type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepNative) Reset() { *m = NinRepNative{} } -func (*NinRepNative) ProtoMessage() {} -func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } - -type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepPackedNative) Reset() { *m = NidRepPackedNative{} } -func (*NidRepPackedNative) ProtoMessage() {} -func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } - -type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepPackedNative) Reset() { *m = NinRepPackedNative{} } -func (*NinRepPackedNative) ProtoMessage() {} -func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } - -type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptStruct) Reset() { *m = NidOptStruct{} } -func (*NidOptStruct) ProtoMessage() {} -func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } - -type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptStruct) Reset() { *m = NinOptStruct{} } -func (*NinOptStruct) ProtoMessage() {} -func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } - -type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepStruct) Reset() { *m = NidRepStruct{} } -func (*NidRepStruct) ProtoMessage() {} -func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } - -type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepStruct) Reset() { *m = NinRepStruct{} } -func (*NinRepStruct) ProtoMessage() {} -func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } - -type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidEmbeddedStruct) Reset() { *m = NidEmbeddedStruct{} } -func (*NidEmbeddedStruct) ProtoMessage() {} -func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } - -type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinEmbeddedStruct) Reset() { *m = NinEmbeddedStruct{} } -func (*NinEmbeddedStruct) ProtoMessage() {} -func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } - -type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidNestedStruct) Reset() { *m = NidNestedStruct{} } -func (*NidNestedStruct) ProtoMessage() {} -func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } - -type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinNestedStruct) Reset() { *m = NinNestedStruct{} } -func (*NinNestedStruct) ProtoMessage() {} -func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } - -type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptCustom) Reset() { *m = NidOptCustom{} } -func (*NidOptCustom) ProtoMessage() {} -func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } - -type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomDash) Reset() { *m = CustomDash{} } -func (*CustomDash) ProtoMessage() {} -func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } - -type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptCustom) Reset() { *m = NinOptCustom{} } -func (*NinOptCustom) ProtoMessage() {} -func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } - -type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepCustom) Reset() { *m = NidRepCustom{} } -func (*NidRepCustom) ProtoMessage() {} -func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } - -type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepCustom) Reset() { *m = NinRepCustom{} } -func (*NinRepCustom) ProtoMessage() {} -func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } - -type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNativeUnion) Reset() { *m = NinOptNativeUnion{} } -func (*NinOptNativeUnion) ProtoMessage() {} -func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } - -type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptStructUnion) Reset() { *m = NinOptStructUnion{} } -func (*NinOptStructUnion) ProtoMessage() {} -func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } - -type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinEmbeddedStructUnion) Reset() { *m = NinEmbeddedStructUnion{} } -func (*NinEmbeddedStructUnion) ProtoMessage() {} -func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } - -type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinNestedStructUnion) Reset() { *m = NinNestedStructUnion{} } -func (*NinNestedStructUnion) ProtoMessage() {} -func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } - -type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Tree) Reset() { *m = Tree{} } -func (*Tree) ProtoMessage() {} -func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } - -type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OrBranch) Reset() { *m = OrBranch{} } -func (*OrBranch) ProtoMessage() {} -func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } - -type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AndBranch) Reset() { *m = AndBranch{} } -func (*AndBranch) ProtoMessage() {} -func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } - -type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Leaf) Reset() { *m = Leaf{} } -func (*Leaf) ProtoMessage() {} -func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } - -type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DeepTree) Reset() { *m = DeepTree{} } -func (*DeepTree) ProtoMessage() {} -func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } - -type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *ADeepBranch) Reset() { *m = ADeepBranch{} } -func (*ADeepBranch) ProtoMessage() {} -func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } - -type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AndDeepBranch) Reset() { *m = AndDeepBranch{} } -func (*AndDeepBranch) ProtoMessage() {} -func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } - -type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DeepLeaf) Reset() { *m = DeepLeaf{} } -func (*DeepLeaf) ProtoMessage() {} -func (*DeepLeaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{30} } - -type Nil struct { - XXX_unrecognized []byte `json:"-"` -} - -func (m *Nil) Reset() { *m = Nil{} } -func (*Nil) ProtoMessage() {} -func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } - -type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptEnum) Reset() { *m = NidOptEnum{} } -func (*NidOptEnum) ProtoMessage() {} -func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } - -type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptEnum) Reset() { *m = NinOptEnum{} } -func (*NinOptEnum) ProtoMessage() {} -func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } - -type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepEnum) Reset() { *m = NidRepEnum{} } -func (*NidRepEnum) ProtoMessage() {} -func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } - -type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepEnum) Reset() { *m = NinRepEnum{} } -func (*NinRepEnum) ProtoMessage() {} -func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } - -type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptEnumDefault) Reset() { *m = NinOptEnumDefault{} } -func (*NinOptEnumDefault) ProtoMessage() {} -func (*NinOptEnumDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{36} } - -const Default_NinOptEnumDefault_Field1 TheTestEnum = C -const Default_NinOptEnumDefault_Field2 YetAnotherTestEnum = BetterYetBB -const Default_NinOptEnumDefault_Field3 YetYetAnotherTestEnum = YetYetAnotherTestEnum_CC - -func (m *NinOptEnumDefault) GetField1() TheTestEnum { - if m != nil && m.Field1 != nil { - return *m.Field1 - } - return Default_NinOptEnumDefault_Field1 -} - -func (m *NinOptEnumDefault) GetField2() YetAnotherTestEnum { - if m != nil && m.Field2 != nil { - return *m.Field2 - } - return Default_NinOptEnumDefault_Field2 -} - -func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { - if m != nil && m.Field3 != nil { - return *m.Field3 - } - return Default_NinOptEnumDefault_Field3 -} - -type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AnotherNinOptEnum) Reset() { *m = AnotherNinOptEnum{} } -func (*AnotherNinOptEnum) ProtoMessage() {} -func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } - -type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AnotherNinOptEnumDefault) Reset() { *m = AnotherNinOptEnumDefault{} } -func (*AnotherNinOptEnumDefault) ProtoMessage() {} -func (*AnotherNinOptEnumDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{38} } - -const Default_AnotherNinOptEnumDefault_Field1 AnotherTestEnum = E -const Default_AnotherNinOptEnumDefault_Field2 YetAnotherTestEnum = BetterYetBB -const Default_AnotherNinOptEnumDefault_Field3 YetYetAnotherTestEnum = YetYetAnotherTestEnum_CC - -func (m *AnotherNinOptEnumDefault) GetField1() AnotherTestEnum { - if m != nil && m.Field1 != nil { - return *m.Field1 - } - return Default_AnotherNinOptEnumDefault_Field1 -} - -func (m *AnotherNinOptEnumDefault) GetField2() YetAnotherTestEnum { - if m != nil && m.Field2 != nil { - return *m.Field2 - } - return Default_AnotherNinOptEnumDefault_Field2 -} - -func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { - if m != nil && m.Field3 != nil { - return *m.Field3 - } - return Default_AnotherNinOptEnumDefault_Field3 -} - -type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Timer) Reset() { *m = Timer{} } -func (*Timer) ProtoMessage() {} -func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } - -type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` - proto.XXX_InternalExtensions `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MyExtendable) Reset() { *m = MyExtendable{} } -func (*MyExtendable) ProtoMessage() {} -func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } - -var extRange_MyExtendable = []proto.ExtensionRange{ - {Start: 100, End: 199}, -} - -func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_MyExtendable -} - -type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` - proto.XXX_InternalExtensions `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } -func (*OtherExtenable) ProtoMessage() {} -func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } - -var extRange_OtherExtenable = []proto.ExtensionRange{ - {Start: 14, End: 16}, - {Start: 10, End: 12}, -} - -func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_OtherExtenable -} - -type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedDefinition) Reset() { *m = NestedDefinition{} } -func (*NestedDefinition) ProtoMessage() {} -func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } - -type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedDefinition_NestedMessage) Reset() { *m = NestedDefinition_NestedMessage{} } -func (*NestedDefinition_NestedMessage) ProtoMessage() {} -func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{42, 0} -} - -type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Reset() { - *m = NestedDefinition_NestedMessage_NestedNestedMsg{} -} -func (*NestedDefinition_NestedMessage_NestedNestedMsg) ProtoMessage() {} -func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{42, 0, 0} -} - -type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedScope) Reset() { *m = NestedScope{} } -func (*NestedScope) ProtoMessage() {} -func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } - -type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNativeDefault) Reset() { *m = NinOptNativeDefault{} } -func (*NinOptNativeDefault) ProtoMessage() {} -func (*NinOptNativeDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{44} } - -const Default_NinOptNativeDefault_Field1 float64 = 1234.1234 -const Default_NinOptNativeDefault_Field2 float32 = 1234.1234 -const Default_NinOptNativeDefault_Field3 int32 = 1234 -const Default_NinOptNativeDefault_Field4 int64 = 1234 -const Default_NinOptNativeDefault_Field5 uint32 = 1234 -const Default_NinOptNativeDefault_Field6 uint64 = 1234 -const Default_NinOptNativeDefault_Field7 int32 = 1234 -const Default_NinOptNativeDefault_Field8 int64 = 1234 -const Default_NinOptNativeDefault_Field9 uint32 = 1234 -const Default_NinOptNativeDefault_Field10 int32 = 1234 -const Default_NinOptNativeDefault_Field11 uint64 = 1234 -const Default_NinOptNativeDefault_Field12 int64 = 1234 -const Default_NinOptNativeDefault_Field13 bool = true -const Default_NinOptNativeDefault_Field14 string = "1234" - -func (m *NinOptNativeDefault) GetField1() float64 { - if m != nil && m.Field1 != nil { - return *m.Field1 - } - return Default_NinOptNativeDefault_Field1 -} - -func (m *NinOptNativeDefault) GetField2() float32 { - if m != nil && m.Field2 != nil { - return *m.Field2 - } - return Default_NinOptNativeDefault_Field2 -} - -func (m *NinOptNativeDefault) GetField3() int32 { - if m != nil && m.Field3 != nil { - return *m.Field3 - } - return Default_NinOptNativeDefault_Field3 -} - -func (m *NinOptNativeDefault) GetField4() int64 { - if m != nil && m.Field4 != nil { - return *m.Field4 - } - return Default_NinOptNativeDefault_Field4 -} - -func (m *NinOptNativeDefault) GetField5() uint32 { - if m != nil && m.Field5 != nil { - return *m.Field5 - } - return Default_NinOptNativeDefault_Field5 -} - -func (m *NinOptNativeDefault) GetField6() uint64 { - if m != nil && m.Field6 != nil { - return *m.Field6 - } - return Default_NinOptNativeDefault_Field6 -} - -func (m *NinOptNativeDefault) GetField7() int32 { - if m != nil && m.Field7 != nil { - return *m.Field7 - } - return Default_NinOptNativeDefault_Field7 -} - -func (m *NinOptNativeDefault) GetField8() int64 { - if m != nil && m.Field8 != nil { - return *m.Field8 - } - return Default_NinOptNativeDefault_Field8 -} - -func (m *NinOptNativeDefault) GetField9() uint32 { - if m != nil && m.Field9 != nil { - return *m.Field9 - } - return Default_NinOptNativeDefault_Field9 -} - -func (m *NinOptNativeDefault) GetField10() int32 { - if m != nil && m.Field10 != nil { - return *m.Field10 - } - return Default_NinOptNativeDefault_Field10 -} - -func (m *NinOptNativeDefault) GetField11() uint64 { - if m != nil && m.Field11 != nil { - return *m.Field11 - } - return Default_NinOptNativeDefault_Field11 -} - -func (m *NinOptNativeDefault) GetField12() int64 { - if m != nil && m.Field12 != nil { - return *m.Field12 - } - return Default_NinOptNativeDefault_Field12 -} - -func (m *NinOptNativeDefault) GetField13() bool { - if m != nil && m.Field13 != nil { - return *m.Field13 - } - return Default_NinOptNativeDefault_Field13 -} - -func (m *NinOptNativeDefault) GetField14() string { - if m != nil && m.Field14 != nil { - return *m.Field14 - } - return Default_NinOptNativeDefault_Field14 -} - -func (m *NinOptNativeDefault) GetField15() []byte { - if m != nil { - return m.Field15 - } - return nil -} - -type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomContainer) Reset() { *m = CustomContainer{} } -func (*CustomContainer) ProtoMessage() {} -func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } - -type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNidOptNative) Reset() { *m = CustomNameNidOptNative{} } -func (*CustomNameNidOptNative) ProtoMessage() {} -func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } - -type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinOptNative) Reset() { *m = CustomNameNinOptNative{} } -func (*CustomNameNinOptNative) ProtoMessage() {} -func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } - -type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinRepNative) Reset() { *m = CustomNameNinRepNative{} } -func (*CustomNameNinRepNative) ProtoMessage() {} -func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } - -type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinStruct) Reset() { *m = CustomNameNinStruct{} } -func (*CustomNameNinStruct) ProtoMessage() {} -func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } - -type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameCustomType) Reset() { *m = CustomNameCustomType{} } -func (*CustomNameCustomType) ProtoMessage() {} -func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } - -type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinEmbeddedStructUnion) Reset() { *m = CustomNameNinEmbeddedStructUnion{} } -func (*CustomNameNinEmbeddedStructUnion) ProtoMessage() {} -func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{51} -} - -type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameEnum) Reset() { *m = CustomNameEnum{} } -func (*CustomNameEnum) ProtoMessage() {} -func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } - -type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` - XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NoExtensionsMap) Reset() { *m = NoExtensionsMap{} } -func (*NoExtensionsMap) ProtoMessage() {} -func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } - -var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {Start: 100, End: 199}, -} - -func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_NoExtensionsMap -} -func (m *NoExtensionsMap) GetExtensions() *[]byte { - if m.XXX_extensions == nil { - m.XXX_extensions = make([]byte, 0) - } - return &m.XXX_extensions -} - -type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` -} - -func (m *Unrecognized) Reset() { *m = Unrecognized{} } -func (*Unrecognized) ProtoMessage() {} -func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{54} } - -type UnrecognizedWithInner struct { - Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *UnrecognizedWithInner) Reset() { *m = UnrecognizedWithInner{} } -func (*UnrecognizedWithInner) ProtoMessage() {} -func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } - -type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` -} - -func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } -func (*UnrecognizedWithInner_Inner) ProtoMessage() {} -func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{55, 0} -} - -type UnrecognizedWithEmbed struct { - UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *UnrecognizedWithEmbed) Reset() { *m = UnrecognizedWithEmbed{} } -func (*UnrecognizedWithEmbed) ProtoMessage() {} -func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } - -type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` -} - -func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } -func (*UnrecognizedWithEmbed_Embedded) ProtoMessage() {} -func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{56, 0} -} - -type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Node) Reset() { *m = Node{} } -func (*Node) ProtoMessage() {} -func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } - -type NonByteCustomType struct { - Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } -func (*NonByteCustomType) ProtoMessage() {} -func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } - -type NidOptNonByteCustomType struct { - Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } -func (*NidOptNonByteCustomType) ProtoMessage() {} -func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } - -type NinOptNonByteCustomType struct { - Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } -func (*NinOptNonByteCustomType) ProtoMessage() {} -func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } - -type NidRepNonByteCustomType struct { - Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } -func (*NidRepNonByteCustomType) ProtoMessage() {} -func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } - -type NinRepNonByteCustomType struct { - Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } -func (*NinRepNonByteCustomType) ProtoMessage() {} -func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } - -type ProtoType struct { - Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *ProtoType) Reset() { *m = ProtoType{} } -func (*ProtoType) ProtoMessage() {} -func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } - -var E_FieldA = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: (*float64)(nil), - Field: 100, - Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA", - Filename: "combos/unsafeboth/thetest.proto", -} - -var E_FieldB = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: (*NinOptNative)(nil), - Field: 101, - Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB", - Filename: "combos/unsafeboth/thetest.proto", -} - -var E_FieldC = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: (*NinEmbeddedStruct)(nil), - Field: 102, - Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC", - Filename: "combos/unsafeboth/thetest.proto", -} - -var E_FieldD = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: ([]int64)(nil), - Field: 104, - Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD", - Filename: "combos/unsafeboth/thetest.proto", -} - -var E_FieldE = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: ([]*NinOptNative)(nil), - Field: 105, - Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE", - Filename: "combos/unsafeboth/thetest.proto", -} - -var E_FieldA1 = &proto.ExtensionDesc{ - ExtendedType: (*NoExtensionsMap)(nil), - ExtensionType: (*float64)(nil), - Field: 100, - Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1", - Filename: "combos/unsafeboth/thetest.proto", -} - -var E_FieldB1 = &proto.ExtensionDesc{ - ExtendedType: (*NoExtensionsMap)(nil), - ExtensionType: (*NinOptNative)(nil), - Field: 101, - Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1", - Filename: "combos/unsafeboth/thetest.proto", -} - -var E_FieldC1 = &proto.ExtensionDesc{ - ExtendedType: (*NoExtensionsMap)(nil), - ExtensionType: (*NinEmbeddedStruct)(nil), - Field: 102, - Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1", - Filename: "combos/unsafeboth/thetest.proto", -} - -func init() { - proto.RegisterType((*NidOptNative)(nil), "test.NidOptNative") - proto.RegisterType((*NinOptNative)(nil), "test.NinOptNative") - proto.RegisterType((*NidRepNative)(nil), "test.NidRepNative") - proto.RegisterType((*NinRepNative)(nil), "test.NinRepNative") - proto.RegisterType((*NidRepPackedNative)(nil), "test.NidRepPackedNative") - proto.RegisterType((*NinRepPackedNative)(nil), "test.NinRepPackedNative") - proto.RegisterType((*NidOptStruct)(nil), "test.NidOptStruct") - proto.RegisterType((*NinOptStruct)(nil), "test.NinOptStruct") - proto.RegisterType((*NidRepStruct)(nil), "test.NidRepStruct") - proto.RegisterType((*NinRepStruct)(nil), "test.NinRepStruct") - proto.RegisterType((*NidEmbeddedStruct)(nil), "test.NidEmbeddedStruct") - proto.RegisterType((*NinEmbeddedStruct)(nil), "test.NinEmbeddedStruct") - proto.RegisterType((*NidNestedStruct)(nil), "test.NidNestedStruct") - proto.RegisterType((*NinNestedStruct)(nil), "test.NinNestedStruct") - proto.RegisterType((*NidOptCustom)(nil), "test.NidOptCustom") - proto.RegisterType((*CustomDash)(nil), "test.CustomDash") - proto.RegisterType((*NinOptCustom)(nil), "test.NinOptCustom") - proto.RegisterType((*NidRepCustom)(nil), "test.NidRepCustom") - proto.RegisterType((*NinRepCustom)(nil), "test.NinRepCustom") - proto.RegisterType((*NinOptNativeUnion)(nil), "test.NinOptNativeUnion") - proto.RegisterType((*NinOptStructUnion)(nil), "test.NinOptStructUnion") - proto.RegisterType((*NinEmbeddedStructUnion)(nil), "test.NinEmbeddedStructUnion") - proto.RegisterType((*NinNestedStructUnion)(nil), "test.NinNestedStructUnion") - proto.RegisterType((*Tree)(nil), "test.Tree") - proto.RegisterType((*OrBranch)(nil), "test.OrBranch") - proto.RegisterType((*AndBranch)(nil), "test.AndBranch") - proto.RegisterType((*Leaf)(nil), "test.Leaf") - proto.RegisterType((*DeepTree)(nil), "test.DeepTree") - proto.RegisterType((*ADeepBranch)(nil), "test.ADeepBranch") - proto.RegisterType((*AndDeepBranch)(nil), "test.AndDeepBranch") - proto.RegisterType((*DeepLeaf)(nil), "test.DeepLeaf") - proto.RegisterType((*Nil)(nil), "test.Nil") - proto.RegisterType((*NidOptEnum)(nil), "test.NidOptEnum") - proto.RegisterType((*NinOptEnum)(nil), "test.NinOptEnum") - proto.RegisterType((*NidRepEnum)(nil), "test.NidRepEnum") - proto.RegisterType((*NinRepEnum)(nil), "test.NinRepEnum") - proto.RegisterType((*NinOptEnumDefault)(nil), "test.NinOptEnumDefault") - proto.RegisterType((*AnotherNinOptEnum)(nil), "test.AnotherNinOptEnum") - proto.RegisterType((*AnotherNinOptEnumDefault)(nil), "test.AnotherNinOptEnumDefault") - proto.RegisterType((*Timer)(nil), "test.Timer") - proto.RegisterType((*MyExtendable)(nil), "test.MyExtendable") - proto.RegisterType((*OtherExtenable)(nil), "test.OtherExtenable") - proto.RegisterType((*NestedDefinition)(nil), "test.NestedDefinition") - proto.RegisterType((*NestedDefinition_NestedMessage)(nil), "test.NestedDefinition.NestedMessage") - proto.RegisterType((*NestedDefinition_NestedMessage_NestedNestedMsg)(nil), "test.NestedDefinition.NestedMessage.NestedNestedMsg") - proto.RegisterType((*NestedScope)(nil), "test.NestedScope") - proto.RegisterType((*NinOptNativeDefault)(nil), "test.NinOptNativeDefault") - proto.RegisterType((*CustomContainer)(nil), "test.CustomContainer") - proto.RegisterType((*CustomNameNidOptNative)(nil), "test.CustomNameNidOptNative") - proto.RegisterType((*CustomNameNinOptNative)(nil), "test.CustomNameNinOptNative") - proto.RegisterType((*CustomNameNinRepNative)(nil), "test.CustomNameNinRepNative") - proto.RegisterType((*CustomNameNinStruct)(nil), "test.CustomNameNinStruct") - proto.RegisterType((*CustomNameCustomType)(nil), "test.CustomNameCustomType") - proto.RegisterType((*CustomNameNinEmbeddedStructUnion)(nil), "test.CustomNameNinEmbeddedStructUnion") - proto.RegisterType((*CustomNameEnum)(nil), "test.CustomNameEnum") - proto.RegisterType((*NoExtensionsMap)(nil), "test.NoExtensionsMap") - proto.RegisterType((*Unrecognized)(nil), "test.Unrecognized") - proto.RegisterType((*UnrecognizedWithInner)(nil), "test.UnrecognizedWithInner") - proto.RegisterType((*UnrecognizedWithInner_Inner)(nil), "test.UnrecognizedWithInner.Inner") - proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") - proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") - proto.RegisterType((*Node)(nil), "test.Node") - proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") - proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") - proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") - proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") - proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") - proto.RegisterType((*ProtoType)(nil), "test.ProtoType") - proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) - proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) - proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) - proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value) - proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value) - proto.RegisterExtension(E_FieldA) - proto.RegisterExtension(E_FieldB) - proto.RegisterExtension(E_FieldC) - proto.RegisterExtension(E_FieldD) - proto.RegisterExtension(E_FieldE) - proto.RegisterExtension(E_FieldA1) - proto.RegisterExtension(E_FieldB1) - proto.RegisterExtension(E_FieldC1) -} -func (this *NidOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptNative) - if !ok { - that2, ok := that.(NidOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != that1.Field1 { - if this.Field1 < that1.Field1 { - return -1 - } - return 1 - } - if this.Field2 != that1.Field2 { - if this.Field2 < that1.Field2 { - return -1 - } - return 1 - } - if this.Field3 != that1.Field3 { - if this.Field3 < that1.Field3 { - return -1 - } - return 1 - } - if this.Field4 != that1.Field4 { - if this.Field4 < that1.Field4 { - return -1 - } - return 1 - } - if this.Field5 != that1.Field5 { - if this.Field5 < that1.Field5 { - return -1 - } - return 1 - } - if this.Field6 != that1.Field6 { - if this.Field6 < that1.Field6 { - return -1 - } - return 1 - } - if this.Field7 != that1.Field7 { - if this.Field7 < that1.Field7 { - return -1 - } - return 1 - } - if this.Field8 != that1.Field8 { - if this.Field8 < that1.Field8 { - return -1 - } - return 1 - } - if this.Field9 != that1.Field9 { - if this.Field9 < that1.Field9 { - return -1 - } - return 1 - } - if this.Field10 != that1.Field10 { - if this.Field10 < that1.Field10 { - return -1 - } - return 1 - } - if this.Field11 != that1.Field11 { - if this.Field11 < that1.Field11 { - return -1 - } - return 1 - } - if this.Field12 != that1.Field12 { - if this.Field12 < that1.Field12 { - return -1 - } - return 1 - } - if this.Field13 != that1.Field13 { - if !this.Field13 { - return -1 - } - return 1 - } - if this.Field14 != that1.Field14 { - if this.Field14 < that1.Field14 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNative) - if !ok { - that2, ok := that.(NinOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - if *this.Field4 < *that1.Field4 { - return -1 - } - return 1 - } - } else if this.Field4 != nil { - return 1 - } else if that1.Field4 != nil { - return -1 - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - if *this.Field5 < *that1.Field5 { - return -1 - } - return 1 - } - } else if this.Field5 != nil { - return 1 - } else if that1.Field5 != nil { - return -1 - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - if *this.Field8 < *that1.Field8 { - return -1 - } - return 1 - } - } else if this.Field8 != nil { - return 1 - } else if that1.Field8 != nil { - return -1 - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - if *this.Field9 < *that1.Field9 { - return -1 - } - return 1 - } - } else if this.Field9 != nil { - return 1 - } else if that1.Field9 != nil { - return -1 - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - if *this.Field10 < *that1.Field10 { - return -1 - } - return 1 - } - } else if this.Field10 != nil { - return 1 - } else if that1.Field10 != nil { - return -1 - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - if *this.Field11 < *that1.Field11 { - return -1 - } - return 1 - } - } else if this.Field11 != nil { - return 1 - } else if that1.Field11 != nil { - return -1 - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - if *this.Field12 < *that1.Field12 { - return -1 - } - return 1 - } - } else if this.Field12 != nil { - return 1 - } else if that1.Field12 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepNative) - if !ok { - that2, ok := that.(NidRepNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepNative) - if !ok { - that2, ok := that.(NinRepNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepPackedNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepPackedNative) - if !ok { - that2, ok := that.(NidRepPackedNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepPackedNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepPackedNative) - if !ok { - that2, ok := that.(NinRepPackedNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptStruct) - if !ok { - that2, ok := that.(NidOptStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != that1.Field1 { - if this.Field1 < that1.Field1 { - return -1 - } - return 1 - } - if this.Field2 != that1.Field2 { - if this.Field2 < that1.Field2 { - return -1 - } - return 1 - } - if c := this.Field3.Compare(&that1.Field3); c != 0 { - return c - } - if c := this.Field4.Compare(&that1.Field4); c != 0 { - return c - } - if this.Field6 != that1.Field6 { - if this.Field6 < that1.Field6 { - return -1 - } - return 1 - } - if this.Field7 != that1.Field7 { - if this.Field7 < that1.Field7 { - return -1 - } - return 1 - } - if c := this.Field8.Compare(&that1.Field8); c != 0 { - return c - } - if this.Field13 != that1.Field13 { - if !this.Field13 { - return -1 - } - return 1 - } - if this.Field14 != that1.Field14 { - if this.Field14 < that1.Field14 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptStruct) - if !ok { - that2, ok := that.(NinOptStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := this.Field3.Compare(that1.Field3); c != 0 { - return c - } - if c := this.Field4.Compare(that1.Field4); c != 0 { - return c - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if c := this.Field8.Compare(that1.Field8); c != 0 { - return c - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepStruct) - if !ok { - that2, ok := that.(NidRepStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if c := this.Field3[i].Compare(&that1.Field3[i]); c != 0 { - return c - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if c := this.Field4[i].Compare(&that1.Field4[i]); c != 0 { - return c - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if c := this.Field8[i].Compare(&that1.Field8[i]); c != 0 { - return c - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepStruct) - if !ok { - that2, ok := that.(NinRepStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if c := this.Field3[i].Compare(that1.Field3[i]); c != 0 { - return c - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if c := this.Field4[i].Compare(that1.Field4[i]); c != 0 { - return c - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if c := this.Field8[i].Compare(that1.Field8[i]); c != 0 { - return c - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidEmbeddedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidEmbeddedStruct) - if !ok { - that2, ok := that.(NidEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.Field200.Compare(&that1.Field200); c != 0 { - return c - } - if this.Field210 != that1.Field210 { - if !this.Field210 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinEmbeddedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinEmbeddedStruct) - if !ok { - that2, ok := that.(NinEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.Field200.Compare(that1.Field200); c != 0 { - return c - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - if !*this.Field210 { - return -1 - } - return 1 - } - } else if this.Field210 != nil { - return 1 - } else if that1.Field210 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidNestedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidNestedStruct) - if !ok { - that2, ok := that.(NidNestedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(&that1.Field1); c != 0 { - return c - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if c := this.Field2[i].Compare(&that1.Field2[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinNestedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinNestedStruct) - if !ok { - that2, ok := that.(NinNestedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(that1.Field1); c != 0 { - return c - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if c := this.Field2[i].Compare(that1.Field2[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptCustom) - if !ok { - that2, ok := that.(NidOptCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Id.Compare(that1.Id); c != 0 { - return c - } - if c := this.Value.Compare(that1.Value); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomDash) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomDash) - if !ok { - that2, ok := that.(CustomDash) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Value == nil { - if this.Value != nil { - return 1 - } - } else if this.Value == nil { - return -1 - } else if c := this.Value.Compare(*that1.Value); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptCustom) - if !ok { - that2, ok := that.(NinOptCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Id == nil { - if this.Id != nil { - return 1 - } - } else if this.Id == nil { - return -1 - } else if c := this.Id.Compare(*that1.Id); c != 0 { - return c - } - if that1.Value == nil { - if this.Value != nil { - return 1 - } - } else if this.Value == nil { - return -1 - } else if c := this.Value.Compare(*that1.Value); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepCustom) - if !ok { - that2, ok := that.(NidRepCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Id) != len(that1.Id) { - if len(this.Id) < len(that1.Id) { - return -1 - } - return 1 - } - for i := range this.Id { - if c := this.Id[i].Compare(that1.Id[i]); c != 0 { - return c - } - } - if len(this.Value) != len(that1.Value) { - if len(this.Value) < len(that1.Value) { - return -1 - } - return 1 - } - for i := range this.Value { - if c := this.Value[i].Compare(that1.Value[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepCustom) - if !ok { - that2, ok := that.(NinRepCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Id) != len(that1.Id) { - if len(this.Id) < len(that1.Id) { - return -1 - } - return 1 - } - for i := range this.Id { - if c := this.Id[i].Compare(that1.Id[i]); c != 0 { - return c - } - } - if len(this.Value) != len(that1.Value) { - if len(this.Value) < len(that1.Value) { - return -1 - } - return 1 - } - for i := range this.Value { - if c := this.Value[i].Compare(that1.Value[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNativeUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNativeUnion) - if !ok { - that2, ok := that.(NinOptNativeUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - if *this.Field4 < *that1.Field4 { - return -1 - } - return 1 - } - } else if this.Field4 != nil { - return 1 - } else if that1.Field4 != nil { - return -1 - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - if *this.Field5 < *that1.Field5 { - return -1 - } - return 1 - } - } else if this.Field5 != nil { - return 1 - } else if that1.Field5 != nil { - return -1 - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptStructUnion) - if !ok { - that2, ok := that.(NinOptStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := this.Field3.Compare(that1.Field3); c != 0 { - return c - } - if c := this.Field4.Compare(that1.Field4); c != 0 { - return c - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinEmbeddedStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinEmbeddedStructUnion) - if !ok { - that2, ok := that.(NinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.Field200.Compare(that1.Field200); c != 0 { - return c - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - if !*this.Field210 { - return -1 - } - return 1 - } - } else if this.Field210 != nil { - return 1 - } else if that1.Field210 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinNestedStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinNestedStructUnion) - if !ok { - that2, ok := that.(NinNestedStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(that1.Field1); c != 0 { - return c - } - if c := this.Field2.Compare(that1.Field2); c != 0 { - return c - } - if c := this.Field3.Compare(that1.Field3); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Tree) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Tree) - if !ok { - that2, ok := that.(Tree) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Or.Compare(that1.Or); c != 0 { - return c - } - if c := this.And.Compare(that1.And); c != 0 { - return c - } - if c := this.Leaf.Compare(that1.Leaf); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *OrBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*OrBranch) - if !ok { - that2, ok := that.(OrBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Left.Compare(&that1.Left); c != 0 { - return c - } - if c := this.Right.Compare(&that1.Right); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AndBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AndBranch) - if !ok { - that2, ok := that.(AndBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Left.Compare(&that1.Left); c != 0 { - return c - } - if c := this.Right.Compare(&that1.Right); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Leaf) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Leaf) - if !ok { - that2, ok := that.(Leaf) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Value != that1.Value { - if this.Value < that1.Value { - return -1 - } - return 1 - } - if this.StrValue != that1.StrValue { - if this.StrValue < that1.StrValue { - return -1 - } - return 1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *DeepTree) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*DeepTree) - if !ok { - that2, ok := that.(DeepTree) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Down.Compare(that1.Down); c != 0 { - return c - } - if c := this.And.Compare(that1.And); c != 0 { - return c - } - if c := this.Leaf.Compare(that1.Leaf); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *ADeepBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*ADeepBranch) - if !ok { - that2, ok := that.(ADeepBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Down.Compare(&that1.Down); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AndDeepBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AndDeepBranch) - if !ok { - that2, ok := that.(AndDeepBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Left.Compare(&that1.Left); c != 0 { - return c - } - if c := this.Right.Compare(&that1.Right); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *DeepLeaf) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*DeepLeaf) - if !ok { - that2, ok := that.(DeepLeaf) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Tree.Compare(&that1.Tree); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Nil) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Nil) - if !ok { - that2, ok := that.(Nil) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptEnum) - if !ok { - that2, ok := that.(NidOptEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != that1.Field1 { - if this.Field1 < that1.Field1 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptEnum) - if !ok { - that2, ok := that.(NinOptEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepEnum) - if !ok { - that2, ok := that.(NidRepEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepEnum) - if !ok { - that2, ok := that.(NinRepEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptEnumDefault) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptEnumDefault) - if !ok { - that2, ok := that.(NinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AnotherNinOptEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AnotherNinOptEnum) - if !ok { - that2, ok := that.(AnotherNinOptEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AnotherNinOptEnumDefault) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AnotherNinOptEnumDefault) - if !ok { - that2, ok := that.(AnotherNinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Timer) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Timer) - if !ok { - that2, ok := that.(Timer) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Time1 != that1.Time1 { - if this.Time1 < that1.Time1 { - return -1 - } - return 1 - } - if this.Time2 != that1.Time2 { - if this.Time2 < that1.Time2 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.Data, that1.Data); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *MyExtendable) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*MyExtendable) - if !ok { - that2, ok := that.(MyExtendable) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - extkeys := make([]int32, 0, len(thismap)+len(thatmap)) - for k := range thismap { - extkeys = append(extkeys, k) - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - extkeys = append(extkeys, k) - } - } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) - for _, k := range extkeys { - if v, ok := thismap[k]; ok { - if v2, ok := thatmap[k]; ok { - if c := v.Compare(&v2); c != 0 { - return c - } - } else { - return 1 - } - } else { - return -1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *OtherExtenable) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*OtherExtenable) - if !ok { - that2, ok := that.(OtherExtenable) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if *this.Field13 < *that1.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if c := this.M.Compare(that1.M); c != 0 { - return c - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - extkeys := make([]int32, 0, len(thismap)+len(thatmap)) - for k := range thismap { - extkeys = append(extkeys, k) - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - extkeys = append(extkeys, k) - } - } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) - for _, k := range extkeys { - if v, ok := thismap[k]; ok { - if v2, ok := thatmap[k]; ok { - if c := v.Compare(&v2); c != 0 { - return c - } - } else { - return 1 - } - } else { - return -1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedDefinition) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedDefinition) - if !ok { - that2, ok := that.(NestedDefinition) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.EnumField != nil && that1.EnumField != nil { - if *this.EnumField != *that1.EnumField { - if *this.EnumField < *that1.EnumField { - return -1 - } - return 1 - } - } else if this.EnumField != nil { - return 1 - } else if that1.EnumField != nil { - return -1 - } - if c := this.NNM.Compare(that1.NNM); c != 0 { - return c - } - if c := this.NM.Compare(that1.NM); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedDefinition_NestedMessage) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedDefinition_NestedMessage) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.NestedField1 != nil && that1.NestedField1 != nil { - if *this.NestedField1 != *that1.NestedField1 { - if *this.NestedField1 < *that1.NestedField1 { - return -1 - } - return 1 - } - } else if this.NestedField1 != nil { - return 1 - } else if that1.NestedField1 != nil { - return -1 - } - if c := this.NNM.Compare(that1.NNM); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil { - if *this.NestedNestedField1 != *that1.NestedNestedField1 { - if *this.NestedNestedField1 < *that1.NestedNestedField1 { - return -1 - } - return 1 - } - } else if this.NestedNestedField1 != nil { - return 1 - } else if that1.NestedNestedField1 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedScope) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedScope) - if !ok { - that2, ok := that.(NestedScope) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.A.Compare(that1.A); c != 0 { - return c - } - if this.B != nil && that1.B != nil { - if *this.B != *that1.B { - if *this.B < *that1.B { - return -1 - } - return 1 - } - } else if this.B != nil { - return 1 - } else if that1.B != nil { - return -1 - } - if c := this.C.Compare(that1.C); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNativeDefault) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNativeDefault) - if !ok { - that2, ok := that.(NinOptNativeDefault) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - if *this.Field4 < *that1.Field4 { - return -1 - } - return 1 - } - } else if this.Field4 != nil { - return 1 - } else if that1.Field4 != nil { - return -1 - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - if *this.Field5 < *that1.Field5 { - return -1 - } - return 1 - } - } else if this.Field5 != nil { - return 1 - } else if that1.Field5 != nil { - return -1 - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - if *this.Field8 < *that1.Field8 { - return -1 - } - return 1 - } - } else if this.Field8 != nil { - return 1 - } else if that1.Field8 != nil { - return -1 - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - if *this.Field9 < *that1.Field9 { - return -1 - } - return 1 - } - } else if this.Field9 != nil { - return 1 - } else if that1.Field9 != nil { - return -1 - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - if *this.Field10 < *that1.Field10 { - return -1 - } - return 1 - } - } else if this.Field10 != nil { - return 1 - } else if that1.Field10 != nil { - return -1 - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - if *this.Field11 < *that1.Field11 { - return -1 - } - return 1 - } - } else if this.Field11 != nil { - return 1 - } else if that1.Field11 != nil { - return -1 - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - if *this.Field12 < *that1.Field12 { - return -1 - } - return 1 - } - } else if this.Field12 != nil { - return 1 - } else if that1.Field12 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomContainer) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomContainer) - if !ok { - that2, ok := that.(CustomContainer) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.CustomStruct.Compare(&that1.CustomStruct); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNidOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNidOptNative) - if !ok { - that2, ok := that.(CustomNameNidOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != that1.FieldA { - if this.FieldA < that1.FieldA { - return -1 - } - return 1 - } - if this.FieldB != that1.FieldB { - if this.FieldB < that1.FieldB { - return -1 - } - return 1 - } - if this.FieldC != that1.FieldC { - if this.FieldC < that1.FieldC { - return -1 - } - return 1 - } - if this.FieldD != that1.FieldD { - if this.FieldD < that1.FieldD { - return -1 - } - return 1 - } - if this.FieldE != that1.FieldE { - if this.FieldE < that1.FieldE { - return -1 - } - return 1 - } - if this.FieldF != that1.FieldF { - if this.FieldF < that1.FieldF { - return -1 - } - return 1 - } - if this.FieldG != that1.FieldG { - if this.FieldG < that1.FieldG { - return -1 - } - return 1 - } - if this.FieldH != that1.FieldH { - if this.FieldH < that1.FieldH { - return -1 - } - return 1 - } - if this.FieldI != that1.FieldI { - if this.FieldI < that1.FieldI { - return -1 - } - return 1 - } - if this.FieldJ != that1.FieldJ { - if this.FieldJ < that1.FieldJ { - return -1 - } - return 1 - } - if this.FieldK != that1.FieldK { - if this.FieldK < that1.FieldK { - return -1 - } - return 1 - } - if this.FieldL != that1.FieldL { - if this.FieldL < that1.FieldL { - return -1 - } - return 1 - } - if this.FieldM != that1.FieldM { - if !this.FieldM { - return -1 - } - return 1 - } - if this.FieldN != that1.FieldN { - if this.FieldN < that1.FieldN { - return -1 - } - return 1 - } - if c := bytes.Compare(this.FieldO, that1.FieldO); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinOptNative) - if !ok { - that2, ok := that.(CustomNameNinOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - if *this.FieldA < *that1.FieldA { - return -1 - } - return 1 - } - } else if this.FieldA != nil { - return 1 - } else if that1.FieldA != nil { - return -1 - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - if *this.FieldB < *that1.FieldB { - return -1 - } - return 1 - } - } else if this.FieldB != nil { - return 1 - } else if that1.FieldB != nil { - return -1 - } - if this.FieldC != nil && that1.FieldC != nil { - if *this.FieldC != *that1.FieldC { - if *this.FieldC < *that1.FieldC { - return -1 - } - return 1 - } - } else if this.FieldC != nil { - return 1 - } else if that1.FieldC != nil { - return -1 - } - if this.FieldD != nil && that1.FieldD != nil { - if *this.FieldD != *that1.FieldD { - if *this.FieldD < *that1.FieldD { - return -1 - } - return 1 - } - } else if this.FieldD != nil { - return 1 - } else if that1.FieldD != nil { - return -1 - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - if *this.FieldE < *that1.FieldE { - return -1 - } - return 1 - } - } else if this.FieldE != nil { - return 1 - } else if that1.FieldE != nil { - return -1 - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - if *this.FieldF < *that1.FieldF { - return -1 - } - return 1 - } - } else if this.FieldF != nil { - return 1 - } else if that1.FieldF != nil { - return -1 - } - if this.FieldG != nil && that1.FieldG != nil { - if *this.FieldG != *that1.FieldG { - if *this.FieldG < *that1.FieldG { - return -1 - } - return 1 - } - } else if this.FieldG != nil { - return 1 - } else if that1.FieldG != nil { - return -1 - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - if *this.FieldH < *that1.FieldH { - return -1 - } - return 1 - } - } else if this.FieldH != nil { - return 1 - } else if that1.FieldH != nil { - return -1 - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - if *this.FieldI < *that1.FieldI { - return -1 - } - return 1 - } - } else if this.FieldI != nil { - return 1 - } else if that1.FieldI != nil { - return -1 - } - if this.FieldJ != nil && that1.FieldJ != nil { - if *this.FieldJ != *that1.FieldJ { - if *this.FieldJ < *that1.FieldJ { - return -1 - } - return 1 - } - } else if this.FieldJ != nil { - return 1 - } else if that1.FieldJ != nil { - return -1 - } - if this.FieldK != nil && that1.FieldK != nil { - if *this.FieldK != *that1.FieldK { - if *this.FieldK < *that1.FieldK { - return -1 - } - return 1 - } - } else if this.FieldK != nil { - return 1 - } else if that1.FieldK != nil { - return -1 - } - if this.FielL != nil && that1.FielL != nil { - if *this.FielL != *that1.FielL { - if *this.FielL < *that1.FielL { - return -1 - } - return 1 - } - } else if this.FielL != nil { - return 1 - } else if that1.FielL != nil { - return -1 - } - if this.FieldM != nil && that1.FieldM != nil { - if *this.FieldM != *that1.FieldM { - if !*this.FieldM { - return -1 - } - return 1 - } - } else if this.FieldM != nil { - return 1 - } else if that1.FieldM != nil { - return -1 - } - if this.FieldN != nil && that1.FieldN != nil { - if *this.FieldN != *that1.FieldN { - if *this.FieldN < *that1.FieldN { - return -1 - } - return 1 - } - } else if this.FieldN != nil { - return 1 - } else if that1.FieldN != nil { - return -1 - } - if c := bytes.Compare(this.FieldO, that1.FieldO); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinRepNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinRepNative) - if !ok { - that2, ok := that.(CustomNameNinRepNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.FieldA) != len(that1.FieldA) { - if len(this.FieldA) < len(that1.FieldA) { - return -1 - } - return 1 - } - for i := range this.FieldA { - if this.FieldA[i] != that1.FieldA[i] { - if this.FieldA[i] < that1.FieldA[i] { - return -1 - } - return 1 - } - } - if len(this.FieldB) != len(that1.FieldB) { - if len(this.FieldB) < len(that1.FieldB) { - return -1 - } - return 1 - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - if this.FieldB[i] < that1.FieldB[i] { - return -1 - } - return 1 - } - } - if len(this.FieldC) != len(that1.FieldC) { - if len(this.FieldC) < len(that1.FieldC) { - return -1 - } - return 1 - } - for i := range this.FieldC { - if this.FieldC[i] != that1.FieldC[i] { - if this.FieldC[i] < that1.FieldC[i] { - return -1 - } - return 1 - } - } - if len(this.FieldD) != len(that1.FieldD) { - if len(this.FieldD) < len(that1.FieldD) { - return -1 - } - return 1 - } - for i := range this.FieldD { - if this.FieldD[i] != that1.FieldD[i] { - if this.FieldD[i] < that1.FieldD[i] { - return -1 - } - return 1 - } - } - if len(this.FieldE) != len(that1.FieldE) { - if len(this.FieldE) < len(that1.FieldE) { - return -1 - } - return 1 - } - for i := range this.FieldE { - if this.FieldE[i] != that1.FieldE[i] { - if this.FieldE[i] < that1.FieldE[i] { - return -1 - } - return 1 - } - } - if len(this.FieldF) != len(that1.FieldF) { - if len(this.FieldF) < len(that1.FieldF) { - return -1 - } - return 1 - } - for i := range this.FieldF { - if this.FieldF[i] != that1.FieldF[i] { - if this.FieldF[i] < that1.FieldF[i] { - return -1 - } - return 1 - } - } - if len(this.FieldG) != len(that1.FieldG) { - if len(this.FieldG) < len(that1.FieldG) { - return -1 - } - return 1 - } - for i := range this.FieldG { - if this.FieldG[i] != that1.FieldG[i] { - if this.FieldG[i] < that1.FieldG[i] { - return -1 - } - return 1 - } - } - if len(this.FieldH) != len(that1.FieldH) { - if len(this.FieldH) < len(that1.FieldH) { - return -1 - } - return 1 - } - for i := range this.FieldH { - if this.FieldH[i] != that1.FieldH[i] { - if this.FieldH[i] < that1.FieldH[i] { - return -1 - } - return 1 - } - } - if len(this.FieldI) != len(that1.FieldI) { - if len(this.FieldI) < len(that1.FieldI) { - return -1 - } - return 1 - } - for i := range this.FieldI { - if this.FieldI[i] != that1.FieldI[i] { - if this.FieldI[i] < that1.FieldI[i] { - return -1 - } - return 1 - } - } - if len(this.FieldJ) != len(that1.FieldJ) { - if len(this.FieldJ) < len(that1.FieldJ) { - return -1 - } - return 1 - } - for i := range this.FieldJ { - if this.FieldJ[i] != that1.FieldJ[i] { - if this.FieldJ[i] < that1.FieldJ[i] { - return -1 - } - return 1 - } - } - if len(this.FieldK) != len(that1.FieldK) { - if len(this.FieldK) < len(that1.FieldK) { - return -1 - } - return 1 - } - for i := range this.FieldK { - if this.FieldK[i] != that1.FieldK[i] { - if this.FieldK[i] < that1.FieldK[i] { - return -1 - } - return 1 - } - } - if len(this.FieldL) != len(that1.FieldL) { - if len(this.FieldL) < len(that1.FieldL) { - return -1 - } - return 1 - } - for i := range this.FieldL { - if this.FieldL[i] != that1.FieldL[i] { - if this.FieldL[i] < that1.FieldL[i] { - return -1 - } - return 1 - } - } - if len(this.FieldM) != len(that1.FieldM) { - if len(this.FieldM) < len(that1.FieldM) { - return -1 - } - return 1 - } - for i := range this.FieldM { - if this.FieldM[i] != that1.FieldM[i] { - if !this.FieldM[i] { - return -1 - } - return 1 - } - } - if len(this.FieldN) != len(that1.FieldN) { - if len(this.FieldN) < len(that1.FieldN) { - return -1 - } - return 1 - } - for i := range this.FieldN { - if this.FieldN[i] != that1.FieldN[i] { - if this.FieldN[i] < that1.FieldN[i] { - return -1 - } - return 1 - } - } - if len(this.FieldO) != len(that1.FieldO) { - if len(this.FieldO) < len(that1.FieldO) { - return -1 - } - return 1 - } - for i := range this.FieldO { - if c := bytes.Compare(this.FieldO[i], that1.FieldO[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinStruct) - if !ok { - that2, ok := that.(CustomNameNinStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - if *this.FieldA < *that1.FieldA { - return -1 - } - return 1 - } - } else if this.FieldA != nil { - return 1 - } else if that1.FieldA != nil { - return -1 - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - if *this.FieldB < *that1.FieldB { - return -1 - } - return 1 - } - } else if this.FieldB != nil { - return 1 - } else if that1.FieldB != nil { - return -1 - } - if c := this.FieldC.Compare(that1.FieldC); c != 0 { - return c - } - if len(this.FieldD) != len(that1.FieldD) { - if len(this.FieldD) < len(that1.FieldD) { - return -1 - } - return 1 - } - for i := range this.FieldD { - if c := this.FieldD[i].Compare(that1.FieldD[i]); c != 0 { - return c - } - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - if *this.FieldE < *that1.FieldE { - return -1 - } - return 1 - } - } else if this.FieldE != nil { - return 1 - } else if that1.FieldE != nil { - return -1 - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - if *this.FieldF < *that1.FieldF { - return -1 - } - return 1 - } - } else if this.FieldF != nil { - return 1 - } else if that1.FieldF != nil { - return -1 - } - if c := this.FieldG.Compare(that1.FieldG); c != 0 { - return c - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - if !*this.FieldH { - return -1 - } - return 1 - } - } else if this.FieldH != nil { - return 1 - } else if that1.FieldH != nil { - return -1 - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - if *this.FieldI < *that1.FieldI { - return -1 - } - return 1 - } - } else if this.FieldI != nil { - return 1 - } else if that1.FieldI != nil { - return -1 - } - if c := bytes.Compare(this.FieldJ, that1.FieldJ); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameCustomType) - if !ok { - that2, ok := that.(CustomNameCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.FieldA == nil { - if this.FieldA != nil { - return 1 - } - } else if this.FieldA == nil { - return -1 - } else if c := this.FieldA.Compare(*that1.FieldA); c != 0 { - return c - } - if that1.FieldB == nil { - if this.FieldB != nil { - return 1 - } - } else if this.FieldB == nil { - return -1 - } else if c := this.FieldB.Compare(*that1.FieldB); c != 0 { - return c - } - if len(this.FieldC) != len(that1.FieldC) { - if len(this.FieldC) < len(that1.FieldC) { - return -1 - } - return 1 - } - for i := range this.FieldC { - if c := this.FieldC[i].Compare(that1.FieldC[i]); c != 0 { - return c - } - } - if len(this.FieldD) != len(that1.FieldD) { - if len(this.FieldD) < len(that1.FieldD) { - return -1 - } - return 1 - } - for i := range this.FieldD { - if c := this.FieldD[i].Compare(that1.FieldD[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinEmbeddedStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinEmbeddedStructUnion) - if !ok { - that2, ok := that.(CustomNameNinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.FieldA.Compare(that1.FieldA); c != 0 { - return c - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - if !*this.FieldB { - return -1 - } - return 1 - } - } else if this.FieldB != nil { - return 1 - } else if that1.FieldB != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameEnum) - if !ok { - that2, ok := that.(CustomNameEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - if *this.FieldA < *that1.FieldA { - return -1 - } - return 1 - } - } else if this.FieldA != nil { - return 1 - } else if that1.FieldA != nil { - return -1 - } - if len(this.FieldB) != len(that1.FieldB) { - if len(this.FieldB) < len(that1.FieldB) { - return -1 - } - return 1 - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - if this.FieldB[i] < that1.FieldB[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NoExtensionsMap) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NoExtensionsMap) - if !ok { - that2, ok := that.(NoExtensionsMap) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_extensions, that1.XXX_extensions); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Unrecognized) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Unrecognized) - if !ok { - that2, ok := that.(Unrecognized) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - return 0 -} -func (this *UnrecognizedWithInner) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithInner) - if !ok { - that2, ok := that.(UnrecognizedWithInner) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Embedded) != len(that1.Embedded) { - if len(this.Embedded) < len(that1.Embedded) { - return -1 - } - return 1 - } - for i := range this.Embedded { - if c := this.Embedded[i].Compare(that1.Embedded[i]); c != 0 { - return c - } - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *UnrecognizedWithInner_Inner) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithInner_Inner) - if !ok { - that2, ok := that.(UnrecognizedWithInner_Inner) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - return 0 -} -func (this *UnrecognizedWithEmbed) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithEmbed) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.UnrecognizedWithEmbed_Embedded.Compare(&that1.UnrecognizedWithEmbed_Embedded); c != 0 { - return c - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *UnrecognizedWithEmbed_Embedded) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithEmbed_Embedded) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed_Embedded) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - return 0 -} -func (this *Node) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Node) - if !ok { - that2, ok := that.(Node) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Label != nil && that1.Label != nil { - if *this.Label != *that1.Label { - if *this.Label < *that1.Label { - return -1 - } - return 1 - } - } else if this.Label != nil { - return 1 - } else if that1.Label != nil { - return -1 - } - if len(this.Children) != len(that1.Children) { - if len(this.Children) < len(that1.Children) { - return -1 - } - return 1 - } - for i := range this.Children { - if c := this.Children[i].Compare(that1.Children[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NonByteCustomType) - if !ok { - that2, ok := that.(NonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Field1 == nil { - if this.Field1 != nil { - return 1 - } - } else if this.Field1 == nil { - return -1 - } else if c := this.Field1.Compare(*that1.Field1); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptNonByteCustomType) - if !ok { - that2, ok := that.(NidOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(that1.Field1); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNonByteCustomType) - if !ok { - that2, ok := that.(NinOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Field1 == nil { - if this.Field1 != nil { - return 1 - } - } else if this.Field1 == nil { - return -1 - } else if c := this.Field1.Compare(*that1.Field1); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepNonByteCustomType) - if !ok { - that2, ok := that.(NidRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepNonByteCustomType) - if !ok { - that2, ok := that.(NinRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *ProtoType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*ProtoType) - if !ok { - that2, ok := that.(ProtoType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomDash) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNativeUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinNestedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Tree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *OrBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AndBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Leaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *DeepTree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *ADeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AndDeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *DeepLeaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Nil) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AnotherNinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AnotherNinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Timer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *MyExtendable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *OtherExtenable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedDefinition) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedDefinition_NestedMessage) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedScope) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNativeDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomContainer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NoExtensionsMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Unrecognized) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithInner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithInner_Inner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithEmbed) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 6509 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x6c, 0x1c, 0xd7, - 0x75, 0xe6, 0xec, 0x2c, 0xa9, 0xe5, 0xe1, 0x6b, 0x38, 0x94, 0xa9, 0x35, 0x2d, 0x93, 0xd4, 0x5a, - 0x96, 0x69, 0xc6, 0xa6, 0x28, 0x8a, 0xd4, 0x63, 0x15, 0xdb, 0xd8, 0x97, 0x64, 0x2a, 0xe4, 0x92, - 0x19, 0x92, 0xb1, 0x95, 0x16, 0x58, 0x8c, 0x76, 0x2f, 0xc9, 0xb5, 0x77, 0x67, 0x36, 0x3b, 0x43, - 0xdb, 0xf4, 0x8f, 0xc2, 0x4d, 0xda, 0x34, 0x69, 0xd1, 0x67, 0x5a, 0x34, 0x49, 0x13, 0xc7, 0x49, - 0x91, 0xc6, 0x49, 0xfa, 0x48, 0xda, 0x34, 0x0d, 0x82, 0xa2, 0xf1, 0x9f, 0xb4, 0x2a, 0x50, 0x14, - 0x4e, 0x7f, 0x15, 0x41, 0x61, 0x44, 0x72, 0x80, 0xa6, 0xad, 0xdb, 0x26, 0x8d, 0x81, 0x04, 0x70, - 0x7e, 0x14, 0xf7, 0x35, 0x33, 0xf7, 0xee, 0x2c, 0x67, 0x68, 0xd9, 0x49, 0xfe, 0x48, 0xbb, 0xf7, - 0x9c, 0xef, 0xcc, 0xb9, 0xe7, 0x75, 0xcf, 0xdc, 0x7b, 0xb9, 0xf0, 0xea, 0x12, 0x4c, 0xef, 0xd8, - 0xf6, 0x4e, 0x03, 0x9d, 0x6e, 0xb5, 0x6d, 0xd7, 0xbe, 0xbe, 0xb7, 0x7d, 0xba, 0x86, 0x9c, 0x6a, - 0xbb, 0xde, 0x72, 0xed, 0xf6, 0x1c, 0x19, 0xd3, 0x47, 0x28, 0xc7, 0x1c, 0xe7, 0xc8, 0xac, 0xc2, - 0xe8, 0xe5, 0x7a, 0x03, 0x15, 0x3d, 0xc6, 0x0d, 0xe4, 0xea, 0x17, 0x20, 0xb9, 0x5d, 0x6f, 0xa0, - 0xb4, 0x32, 0xad, 0xce, 0x0c, 0x2c, 0x9c, 0x9c, 0x93, 0x40, 0x73, 0x22, 0x62, 0x1d, 0x0f, 0x1b, - 0x04, 0x91, 0xf9, 0x6e, 0x12, 0xc6, 0x42, 0xa8, 0xba, 0x0e, 0x49, 0xcb, 0x6c, 0x62, 0x89, 0xca, - 0x4c, 0xbf, 0x41, 0x3e, 0xeb, 0x69, 0x38, 0xd2, 0x32, 0xab, 0x4f, 0x9a, 0x3b, 0x28, 0x9d, 0x20, - 0xc3, 0xfc, 0xab, 0x3e, 0x09, 0x50, 0x43, 0x2d, 0x64, 0xd5, 0x90, 0x55, 0xdd, 0x4f, 0xab, 0xd3, - 0xea, 0x4c, 0xbf, 0x11, 0x18, 0xd1, 0xdf, 0x01, 0xa3, 0xad, 0xbd, 0xeb, 0x8d, 0x7a, 0xb5, 0x12, - 0x60, 0x83, 0x69, 0x75, 0xa6, 0xd7, 0xd0, 0x28, 0xa1, 0xe8, 0x33, 0xdf, 0x07, 0x23, 0x4f, 0x23, - 0xf3, 0xc9, 0x20, 0xeb, 0x00, 0x61, 0x1d, 0xc6, 0xc3, 0x01, 0xc6, 0x02, 0x0c, 0x36, 0x91, 0xe3, - 0x98, 0x3b, 0xa8, 0xe2, 0xee, 0xb7, 0x50, 0x3a, 0x49, 0x66, 0x3f, 0xdd, 0x31, 0x7b, 0x79, 0xe6, - 0x03, 0x0c, 0xb5, 0xb9, 0xdf, 0x42, 0x7a, 0x0e, 0xfa, 0x91, 0xb5, 0xd7, 0xa4, 0x12, 0x7a, 0xbb, - 0xd8, 0xaf, 0x64, 0xed, 0x35, 0x65, 0x29, 0x29, 0x0c, 0x63, 0x22, 0x8e, 0x38, 0xa8, 0xfd, 0x54, - 0xbd, 0x8a, 0xd2, 0x7d, 0x44, 0xc0, 0x7d, 0x1d, 0x02, 0x36, 0x28, 0x5d, 0x96, 0xc1, 0x71, 0x7a, - 0x01, 0xfa, 0xd1, 0x33, 0x2e, 0xb2, 0x9c, 0xba, 0x6d, 0xa5, 0x8f, 0x10, 0x21, 0xf7, 0x86, 0x78, - 0x11, 0x35, 0x6a, 0xb2, 0x08, 0x1f, 0xa7, 0x9f, 0x83, 0x23, 0x76, 0xcb, 0xad, 0xdb, 0x96, 0x93, - 0x4e, 0x4d, 0x2b, 0x33, 0x03, 0x0b, 0xc7, 0x43, 0x03, 0x61, 0x8d, 0xf2, 0x18, 0x9c, 0x59, 0x5f, - 0x06, 0xcd, 0xb1, 0xf7, 0xda, 0x55, 0x54, 0xa9, 0xda, 0x35, 0x54, 0xa9, 0x5b, 0xdb, 0x76, 0xba, - 0x9f, 0x08, 0x98, 0xea, 0x9c, 0x08, 0x61, 0x2c, 0xd8, 0x35, 0xb4, 0x6c, 0x6d, 0xdb, 0xc6, 0xb0, - 0x23, 0x7c, 0xd7, 0xc7, 0xa1, 0xcf, 0xd9, 0xb7, 0x5c, 0xf3, 0x99, 0xf4, 0x20, 0x89, 0x10, 0xf6, - 0x2d, 0xf3, 0xa3, 0x5e, 0x18, 0x89, 0x13, 0x62, 0x97, 0xa0, 0x77, 0x1b, 0xcf, 0x32, 0x9d, 0x38, - 0x8c, 0x0d, 0x28, 0x46, 0x34, 0x62, 0xdf, 0x9b, 0x34, 0x62, 0x0e, 0x06, 0x2c, 0xe4, 0xb8, 0xa8, - 0x46, 0x23, 0x42, 0x8d, 0x19, 0x53, 0x40, 0x41, 0x9d, 0x21, 0x95, 0x7c, 0x53, 0x21, 0xf5, 0x38, - 0x8c, 0x78, 0x2a, 0x55, 0xda, 0xa6, 0xb5, 0xc3, 0x63, 0xf3, 0x74, 0x94, 0x26, 0x73, 0x25, 0x8e, - 0x33, 0x30, 0xcc, 0x18, 0x46, 0xc2, 0x77, 0xbd, 0x08, 0x60, 0x5b, 0xc8, 0xde, 0xae, 0xd4, 0x50, - 0xb5, 0x91, 0x4e, 0x75, 0xb1, 0xd2, 0x1a, 0x66, 0xe9, 0xb0, 0x92, 0x4d, 0x47, 0xab, 0x0d, 0xfd, - 0xa2, 0x1f, 0x6a, 0x47, 0xba, 0x44, 0xca, 0x2a, 0x4d, 0xb2, 0x8e, 0x68, 0xdb, 0x82, 0xe1, 0x36, - 0xc2, 0x71, 0x8f, 0x6a, 0x6c, 0x66, 0xfd, 0x44, 0x89, 0xb9, 0xc8, 0x99, 0x19, 0x0c, 0x46, 0x27, - 0x36, 0xd4, 0x0e, 0x7e, 0xd5, 0xef, 0x01, 0x6f, 0xa0, 0x42, 0xc2, 0x0a, 0x48, 0x15, 0x1a, 0xe4, - 0x83, 0x65, 0xb3, 0x89, 0x26, 0x2e, 0xc0, 0xb0, 0x68, 0x1e, 0xfd, 0x28, 0xf4, 0x3a, 0xae, 0xd9, - 0x76, 0x49, 0x14, 0xf6, 0x1a, 0xf4, 0x8b, 0xae, 0x81, 0x8a, 0xac, 0x1a, 0xa9, 0x72, 0xbd, 0x06, - 0xfe, 0x38, 0x71, 0x1e, 0x86, 0x84, 0xc7, 0xc7, 0x05, 0x66, 0x3e, 0xda, 0x07, 0x47, 0xc3, 0x62, - 0x2e, 0x34, 0xfc, 0xc7, 0xa1, 0xcf, 0xda, 0x6b, 0x5e, 0x47, 0xed, 0xb4, 0x4a, 0x24, 0xb0, 0x6f, - 0x7a, 0x0e, 0x7a, 0x1b, 0xe6, 0x75, 0xd4, 0x48, 0x27, 0xa7, 0x95, 0x99, 0xe1, 0x85, 0x77, 0xc4, - 0x8a, 0xea, 0xb9, 0x15, 0x0c, 0x31, 0x28, 0x52, 0x7f, 0x18, 0x92, 0xac, 0xc4, 0x61, 0x09, 0xb3, - 0xf1, 0x24, 0xe0, 0x58, 0x34, 0x08, 0x4e, 0xbf, 0x0b, 0xfa, 0xf1, 0xff, 0xd4, 0xb6, 0x7d, 0x44, - 0xe7, 0x14, 0x1e, 0xc0, 0x76, 0xd5, 0x27, 0x20, 0x45, 0xc2, 0xac, 0x86, 0xf8, 0xd2, 0xe0, 0x7d, - 0xc7, 0x8e, 0xa9, 0xa1, 0x6d, 0x73, 0xaf, 0xe1, 0x56, 0x9e, 0x32, 0x1b, 0x7b, 0x88, 0x04, 0x4c, - 0xbf, 0x31, 0xc8, 0x06, 0xdf, 0x83, 0xc7, 0xf4, 0x29, 0x18, 0xa0, 0x51, 0x59, 0xb7, 0x6a, 0xe8, - 0x19, 0x52, 0x7d, 0x7a, 0x0d, 0x1a, 0xa8, 0xcb, 0x78, 0x04, 0x3f, 0xfe, 0x09, 0xc7, 0xb6, 0xb8, - 0x6b, 0xc9, 0x23, 0xf0, 0x00, 0x79, 0xfc, 0x79, 0xb9, 0xf0, 0xdd, 0x1d, 0x3e, 0x3d, 0x39, 0x16, - 0x33, 0x5f, 0x4d, 0x40, 0x92, 0xe4, 0xdb, 0x08, 0x0c, 0x6c, 0x5e, 0x5b, 0x2f, 0x55, 0x8a, 0x6b, - 0x5b, 0xf9, 0x95, 0x92, 0xa6, 0xe8, 0xc3, 0x00, 0x64, 0xe0, 0xf2, 0xca, 0x5a, 0x6e, 0x53, 0x4b, - 0x78, 0xdf, 0x97, 0xcb, 0x9b, 0xe7, 0x16, 0x35, 0xd5, 0x03, 0x6c, 0xd1, 0x81, 0x64, 0x90, 0xe1, - 0xec, 0x82, 0xd6, 0xab, 0x6b, 0x30, 0x48, 0x05, 0x2c, 0x3f, 0x5e, 0x2a, 0x9e, 0x5b, 0xd4, 0xfa, - 0xc4, 0x91, 0xb3, 0x0b, 0xda, 0x11, 0x7d, 0x08, 0xfa, 0xc9, 0x48, 0x7e, 0x6d, 0x6d, 0x45, 0x4b, - 0x79, 0x32, 0x37, 0x36, 0x8d, 0xe5, 0xf2, 0x15, 0xad, 0xdf, 0x93, 0x79, 0xc5, 0x58, 0xdb, 0x5a, - 0xd7, 0xc0, 0x93, 0xb0, 0x5a, 0xda, 0xd8, 0xc8, 0x5d, 0x29, 0x69, 0x03, 0x1e, 0x47, 0xfe, 0xda, - 0x66, 0x69, 0x43, 0x1b, 0x14, 0xd4, 0x3a, 0xbb, 0xa0, 0x0d, 0x79, 0x8f, 0x28, 0x95, 0xb7, 0x56, - 0xb5, 0x61, 0x7d, 0x14, 0x86, 0xe8, 0x23, 0xb8, 0x12, 0x23, 0xd2, 0xd0, 0xb9, 0x45, 0x4d, 0xf3, - 0x15, 0xa1, 0x52, 0x46, 0x85, 0x81, 0x73, 0x8b, 0x9a, 0x9e, 0x29, 0x40, 0x2f, 0x89, 0x2e, 0x5d, - 0x87, 0xe1, 0x95, 0x5c, 0xbe, 0xb4, 0x52, 0x59, 0x5b, 0xdf, 0x5c, 0x5e, 0x2b, 0xe7, 0x56, 0x34, - 0xc5, 0x1f, 0x33, 0x4a, 0xef, 0xde, 0x5a, 0x36, 0x4a, 0x45, 0x2d, 0x11, 0x1c, 0x5b, 0x2f, 0xe5, - 0x36, 0x4b, 0x45, 0x4d, 0xcd, 0x54, 0xe1, 0x68, 0x58, 0x9d, 0x09, 0xcd, 0x8c, 0x80, 0x8b, 0x13, - 0x5d, 0x5c, 0x4c, 0x64, 0x75, 0xb8, 0xf8, 0x33, 0x0a, 0x8c, 0x85, 0xd4, 0xda, 0xd0, 0x87, 0x3c, - 0x02, 0xbd, 0x34, 0x44, 0xe9, 0xea, 0x73, 0x7f, 0x68, 0xd1, 0x26, 0x01, 0xdb, 0xb1, 0x02, 0x11, - 0x5c, 0x70, 0x05, 0x56, 0xbb, 0xac, 0xc0, 0x58, 0x44, 0x87, 0x92, 0x1f, 0x50, 0x20, 0xdd, 0x4d, - 0x76, 0x44, 0xa1, 0x48, 0x08, 0x85, 0xe2, 0x92, 0xac, 0xc0, 0x89, 0xee, 0x73, 0xe8, 0xd0, 0xe2, - 0x73, 0x0a, 0x8c, 0x87, 0x37, 0x2a, 0xa1, 0x3a, 0x3c, 0x0c, 0x7d, 0x4d, 0xe4, 0xee, 0xda, 0x7c, - 0xb1, 0x3e, 0x15, 0xb2, 0x04, 0x60, 0xb2, 0x6c, 0x2b, 0x86, 0x0a, 0xae, 0x21, 0x6a, 0xb7, 0x6e, - 0x83, 0x6a, 0xd3, 0xa1, 0xe9, 0x87, 0x13, 0x70, 0x47, 0xa8, 0xf0, 0x50, 0x45, 0xef, 0x06, 0xa8, - 0x5b, 0xad, 0x3d, 0x97, 0x2e, 0xc8, 0xb4, 0x3e, 0xf5, 0x93, 0x11, 0x92, 0xfb, 0xb8, 0xf6, 0xec, - 0xb9, 0x1e, 0x5d, 0x25, 0x74, 0xa0, 0x43, 0x84, 0xe1, 0x82, 0xaf, 0x68, 0x92, 0x28, 0x3a, 0xd9, - 0x65, 0xa6, 0x1d, 0x6b, 0xdd, 0x3c, 0x68, 0xd5, 0x46, 0x1d, 0x59, 0x6e, 0xc5, 0x71, 0xdb, 0xc8, - 0x6c, 0xd6, 0xad, 0x1d, 0x52, 0x80, 0x53, 0xd9, 0xde, 0x6d, 0xb3, 0xe1, 0x20, 0x63, 0x84, 0x92, - 0x37, 0x38, 0x15, 0x23, 0xc8, 0x2a, 0xd3, 0x0e, 0x20, 0xfa, 0x04, 0x04, 0x25, 0x7b, 0x88, 0xcc, - 0x17, 0x8f, 0xc0, 0x40, 0xa0, 0xad, 0xd3, 0x4f, 0xc0, 0xe0, 0x13, 0xe6, 0x53, 0x66, 0x85, 0xb7, - 0xea, 0xd4, 0x12, 0x03, 0x78, 0x6c, 0x9d, 0xb5, 0xeb, 0xf3, 0x70, 0x94, 0xb0, 0xd8, 0x7b, 0x2e, - 0x6a, 0x57, 0xaa, 0x0d, 0xd3, 0x71, 0x88, 0xd1, 0x52, 0x84, 0x55, 0xc7, 0xb4, 0x35, 0x4c, 0x2a, - 0x70, 0x8a, 0xbe, 0x04, 0x63, 0x04, 0xd1, 0xdc, 0x6b, 0xb8, 0xf5, 0x56, 0x03, 0x55, 0xf0, 0xcb, - 0x83, 0x43, 0x0a, 0xb1, 0xa7, 0xd9, 0x28, 0xe6, 0x58, 0x65, 0x0c, 0x58, 0x23, 0x47, 0x2f, 0xc2, - 0xdd, 0x04, 0xb6, 0x83, 0x2c, 0xd4, 0x36, 0x5d, 0x54, 0x41, 0xef, 0xdb, 0x33, 0x1b, 0x4e, 0xc5, - 0xb4, 0x6a, 0x95, 0x5d, 0xd3, 0xd9, 0x4d, 0x1f, 0xc5, 0x02, 0xf2, 0x89, 0xb4, 0x62, 0xdc, 0x89, - 0x19, 0xaf, 0x30, 0xbe, 0x12, 0x61, 0xcb, 0x59, 0xb5, 0x47, 0x4d, 0x67, 0x57, 0xcf, 0xc2, 0x38, - 0x91, 0xe2, 0xb8, 0xed, 0xba, 0xb5, 0x53, 0xa9, 0xee, 0xa2, 0xea, 0x93, 0x95, 0x3d, 0x77, 0xfb, - 0x42, 0xfa, 0xae, 0xe0, 0xf3, 0x89, 0x86, 0x1b, 0x84, 0xa7, 0x80, 0x59, 0xb6, 0xdc, 0xed, 0x0b, - 0xfa, 0x06, 0x0c, 0x62, 0x67, 0x34, 0xeb, 0xcf, 0xa2, 0xca, 0xb6, 0xdd, 0x26, 0x2b, 0xcb, 0x70, - 0x48, 0x66, 0x07, 0x2c, 0x38, 0xb7, 0xc6, 0x00, 0xab, 0x76, 0x0d, 0x65, 0x7b, 0x37, 0xd6, 0x4b, - 0xa5, 0xa2, 0x31, 0xc0, 0xa5, 0x5c, 0xb6, 0xdb, 0x38, 0xa0, 0x76, 0x6c, 0xcf, 0xc0, 0x03, 0x34, - 0xa0, 0x76, 0x6c, 0x6e, 0xde, 0x25, 0x18, 0xab, 0x56, 0xe9, 0x9c, 0xeb, 0xd5, 0x0a, 0x6b, 0xf1, - 0x9d, 0xb4, 0x26, 0x18, 0xab, 0x5a, 0xbd, 0x42, 0x19, 0x58, 0x8c, 0x3b, 0xfa, 0x45, 0xb8, 0xc3, - 0x37, 0x56, 0x10, 0x38, 0xda, 0x31, 0x4b, 0x19, 0xba, 0x04, 0x63, 0xad, 0xfd, 0x4e, 0xa0, 0x2e, - 0x3c, 0xb1, 0xb5, 0x2f, 0xc3, 0xee, 0x25, 0xaf, 0x6d, 0x6d, 0x54, 0x35, 0x5d, 0x54, 0x4b, 0x1f, - 0x0b, 0x72, 0x07, 0x08, 0xfa, 0x69, 0xd0, 0xaa, 0xd5, 0x0a, 0xb2, 0xcc, 0xeb, 0x0d, 0x54, 0x31, - 0xdb, 0xc8, 0x32, 0x9d, 0xf4, 0x54, 0x90, 0x79, 0xb8, 0x5a, 0x2d, 0x11, 0x6a, 0x8e, 0x10, 0xf5, - 0x59, 0x18, 0xb5, 0xaf, 0x3f, 0x51, 0xa5, 0x91, 0x55, 0x69, 0xb5, 0xd1, 0x76, 0xfd, 0x99, 0xf4, - 0x49, 0x62, 0xa6, 0x11, 0x4c, 0x20, 0x71, 0xb5, 0x4e, 0x86, 0xf5, 0xfb, 0x41, 0xab, 0x3a, 0xbb, - 0x66, 0xbb, 0x45, 0x96, 0x76, 0xa7, 0x65, 0x56, 0x51, 0xfa, 0x5e, 0xca, 0x4a, 0xc7, 0xcb, 0x7c, - 0x18, 0x47, 0xb6, 0xf3, 0x74, 0x7d, 0xdb, 0xe5, 0x12, 0xef, 0xa3, 0x91, 0x4d, 0xc6, 0x98, 0xb4, - 0xc7, 0xe1, 0xe8, 0x9e, 0x55, 0xb7, 0x5c, 0xd4, 0x6e, 0xb5, 0x11, 0x6e, 0xe2, 0x69, 0x26, 0xa6, - 0xff, 0xfd, 0x48, 0x97, 0x36, 0x7c, 0x2b, 0xc8, 0x4d, 0x03, 0xc0, 0x18, 0xdb, 0xeb, 0x1c, 0xcc, - 0x64, 0x61, 0x30, 0x18, 0x17, 0x7a, 0x3f, 0xd0, 0xc8, 0xd0, 0x14, 0xbc, 0xc6, 0x16, 0xd6, 0x8a, - 0x78, 0x75, 0x7c, 0x6f, 0x49, 0x4b, 0xe0, 0x55, 0x7a, 0x65, 0x79, 0xb3, 0x54, 0x31, 0xb6, 0xca, - 0x9b, 0xcb, 0xab, 0x25, 0x4d, 0x9d, 0xed, 0x4f, 0x7d, 0xef, 0x88, 0xf6, 0xdc, 0x73, 0xcf, 0x3d, - 0x97, 0xc8, 0x7c, 0x33, 0x01, 0xc3, 0x62, 0x67, 0xac, 0xbf, 0x13, 0x8e, 0xf1, 0xd7, 0x58, 0x07, - 0xb9, 0x95, 0xa7, 0xeb, 0x6d, 0x12, 0xaa, 0x4d, 0x93, 0xf6, 0x96, 0x9e, 0x95, 0x8f, 0x32, 0xae, - 0x0d, 0xe4, 0x3e, 0x56, 0x6f, 0xe3, 0x40, 0x6c, 0x9a, 0xae, 0xbe, 0x02, 0x53, 0x96, 0x5d, 0x71, - 0x5c, 0xd3, 0xaa, 0x99, 0xed, 0x5a, 0xc5, 0xdf, 0x40, 0xa8, 0x98, 0xd5, 0x2a, 0x72, 0x1c, 0x9b, - 0x2e, 0x11, 0x9e, 0x94, 0xe3, 0x96, 0xbd, 0xc1, 0x98, 0xfd, 0xda, 0x99, 0x63, 0xac, 0x52, 0x44, - 0xa8, 0xdd, 0x22, 0xe2, 0x2e, 0xe8, 0x6f, 0x9a, 0xad, 0x0a, 0xb2, 0xdc, 0xf6, 0x3e, 0xe9, 0xe7, - 0x52, 0x46, 0xaa, 0x69, 0xb6, 0x4a, 0xf8, 0xfb, 0xdb, 0xe7, 0x83, 0xa0, 0x1d, 0xff, 0x4d, 0x85, - 0xc1, 0x60, 0x4f, 0x87, 0x5b, 0xe4, 0x2a, 0xa9, 0xdf, 0x0a, 0xc9, 0xf0, 0x7b, 0x0e, 0xec, 0x00, - 0xe7, 0x0a, 0xb8, 0xb0, 0x67, 0xfb, 0x68, 0xa7, 0x65, 0x50, 0x24, 0x5e, 0x54, 0x71, 0x4e, 0x23, - 0xda, 0xbf, 0xa7, 0x0c, 0xf6, 0x4d, 0xbf, 0x02, 0x7d, 0x4f, 0x38, 0x44, 0x76, 0x1f, 0x91, 0x7d, - 0xf2, 0x60, 0xd9, 0x57, 0x37, 0x88, 0xf0, 0xfe, 0xab, 0x1b, 0x95, 0xf2, 0x9a, 0xb1, 0x9a, 0x5b, - 0x31, 0x18, 0x5c, 0xbf, 0x13, 0x92, 0x0d, 0xf3, 0xd9, 0x7d, 0x71, 0x09, 0x20, 0x43, 0x71, 0x0d, - 0x7f, 0x27, 0x24, 0x9f, 0x46, 0xe6, 0x93, 0x62, 0xe1, 0x25, 0x43, 0x6f, 0x63, 0xe8, 0x9f, 0x86, - 0x5e, 0x62, 0x2f, 0x1d, 0x80, 0x59, 0x4c, 0xeb, 0xd1, 0x53, 0x90, 0x2c, 0xac, 0x19, 0x38, 0xfc, - 0x35, 0x18, 0xa4, 0xa3, 0x95, 0xf5, 0xe5, 0x52, 0xa1, 0xa4, 0x25, 0x32, 0x4b, 0xd0, 0x47, 0x8d, - 0x80, 0x53, 0xc3, 0x33, 0x83, 0xd6, 0xc3, 0xbe, 0x32, 0x19, 0x0a, 0xa7, 0x6e, 0xad, 0xe6, 0x4b, - 0x86, 0x96, 0x08, 0xba, 0xd7, 0x81, 0xc1, 0x60, 0x3b, 0xf7, 0xd3, 0x89, 0xa9, 0xaf, 0x2b, 0x30, - 0x10, 0x68, 0xcf, 0x70, 0x63, 0x60, 0x36, 0x1a, 0xf6, 0xd3, 0x15, 0xb3, 0x51, 0x37, 0x1d, 0x16, - 0x14, 0x40, 0x86, 0x72, 0x78, 0x24, 0xae, 0xd3, 0x7e, 0x2a, 0xca, 0x3f, 0xaf, 0x80, 0x26, 0xb7, - 0x76, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0x4f, 0x28, 0x30, 0x2c, 0xf6, 0x73, 0x92, 0x7a, 0x27, - 0x7e, 0xa6, 0xea, 0x7d, 0x27, 0x01, 0x43, 0x42, 0x17, 0x17, 0x57, 0xbb, 0xf7, 0xc1, 0x68, 0xbd, - 0x86, 0x9a, 0x2d, 0xdb, 0x45, 0x56, 0x75, 0xbf, 0xd2, 0x40, 0x4f, 0xa1, 0x46, 0x3a, 0x43, 0x0a, - 0xc5, 0xe9, 0x83, 0xfb, 0xc4, 0xb9, 0x65, 0x1f, 0xb7, 0x82, 0x61, 0xd9, 0xb1, 0xe5, 0x62, 0x69, - 0x75, 0x7d, 0x6d, 0xb3, 0x54, 0x2e, 0x5c, 0xab, 0x6c, 0x95, 0xdf, 0x55, 0x5e, 0x7b, 0xac, 0x6c, - 0x68, 0x75, 0x89, 0xed, 0x6d, 0x4c, 0xf5, 0x75, 0xd0, 0x64, 0xa5, 0xf4, 0x63, 0x10, 0xa6, 0x96, - 0xd6, 0xa3, 0x8f, 0xc1, 0x48, 0x79, 0xad, 0xb2, 0xb1, 0x5c, 0x2c, 0x55, 0x4a, 0x97, 0x2f, 0x97, - 0x0a, 0x9b, 0x1b, 0xf4, 0xc5, 0xd9, 0xe3, 0xde, 0x14, 0x93, 0xfa, 0xe3, 0x2a, 0x8c, 0x85, 0x68, - 0xa2, 0xe7, 0x58, 0xcf, 0x4e, 0x5f, 0x23, 0x1e, 0x8c, 0xa3, 0xfd, 0x1c, 0xee, 0x0a, 0xd6, 0xcd, - 0xb6, 0xcb, 0x5a, 0xfc, 0xfb, 0x01, 0x5b, 0xc9, 0x72, 0xeb, 0xdb, 0x75, 0xd4, 0x66, 0xfb, 0x0c, - 0xb4, 0x91, 0x1f, 0xf1, 0xc7, 0xe9, 0x56, 0xc3, 0x03, 0xa0, 0xb7, 0x6c, 0xa7, 0xee, 0xd6, 0x9f, - 0x42, 0x95, 0xba, 0xc5, 0x37, 0x25, 0x70, 0x63, 0x9f, 0x34, 0x34, 0x4e, 0x59, 0xb6, 0x5c, 0x8f, - 0xdb, 0x42, 0x3b, 0xa6, 0xc4, 0x8d, 0x0b, 0xb8, 0x6a, 0x68, 0x9c, 0xe2, 0x71, 0x9f, 0x80, 0xc1, - 0x9a, 0xbd, 0x87, 0xdb, 0x24, 0xca, 0x87, 0xd7, 0x0b, 0xc5, 0x18, 0xa0, 0x63, 0x1e, 0x0b, 0xeb, - 0x63, 0xfd, 0xdd, 0x90, 0x41, 0x63, 0x80, 0x8e, 0x51, 0x96, 0xfb, 0x60, 0xc4, 0xdc, 0xd9, 0x69, - 0x63, 0xe1, 0x5c, 0x10, 0xed, 0xcc, 0x87, 0xbd, 0x61, 0xc2, 0x38, 0x71, 0x15, 0x52, 0xdc, 0x0e, - 0x78, 0x49, 0xc6, 0x96, 0xa8, 0xb4, 0xe8, 0x9e, 0x54, 0x62, 0xa6, 0xdf, 0x48, 0x59, 0x9c, 0x78, - 0x02, 0x06, 0xeb, 0x4e, 0xc5, 0xdf, 0x1c, 0x4d, 0x4c, 0x27, 0x66, 0x52, 0xc6, 0x40, 0xdd, 0xf1, - 0x76, 0xc3, 0x32, 0x9f, 0x4b, 0xc0, 0xb0, 0xb8, 0xb9, 0xab, 0x17, 0x21, 0xd5, 0xb0, 0xab, 0x26, - 0x09, 0x2d, 0x7a, 0xb2, 0x30, 0x13, 0xb1, 0x1f, 0x3c, 0xb7, 0xc2, 0xf8, 0x0d, 0x0f, 0x39, 0xf1, - 0xcf, 0x0a, 0xa4, 0xf8, 0xb0, 0x3e, 0x0e, 0xc9, 0x96, 0xe9, 0xee, 0x12, 0x71, 0xbd, 0xf9, 0x84, - 0xa6, 0x18, 0xe4, 0x3b, 0x1e, 0x77, 0x5a, 0xa6, 0x45, 0x42, 0x80, 0x8d, 0xe3, 0xef, 0xd8, 0xaf, - 0x0d, 0x64, 0xd6, 0x48, 0xdb, 0x6f, 0x37, 0x9b, 0xc8, 0x72, 0x1d, 0xee, 0x57, 0x36, 0x5e, 0x60, - 0xc3, 0xfa, 0x3b, 0x60, 0xd4, 0x6d, 0x9b, 0xf5, 0x86, 0xc0, 0x9b, 0x24, 0xbc, 0x1a, 0x27, 0x78, - 0xcc, 0x59, 0xb8, 0x93, 0xcb, 0xad, 0x21, 0xd7, 0xac, 0xee, 0xa2, 0x9a, 0x0f, 0xea, 0x23, 0x3b, - 0x87, 0xc7, 0x18, 0x43, 0x91, 0xd1, 0x39, 0x36, 0xf3, 0x2d, 0x05, 0x46, 0xf9, 0x8b, 0x4a, 0xcd, - 0x33, 0xd6, 0x2a, 0x80, 0x69, 0x59, 0xb6, 0x1b, 0x34, 0x57, 0x67, 0x28, 0x77, 0xe0, 0xe6, 0x72, - 0x1e, 0xc8, 0x08, 0x08, 0x98, 0x68, 0x02, 0xf8, 0x94, 0xae, 0x66, 0x9b, 0x82, 0x01, 0xb6, 0x73, - 0x4f, 0x8e, 0x7f, 0xe8, 0xab, 0x2d, 0xd0, 0x21, 0xfc, 0x46, 0xa3, 0x1f, 0x85, 0xde, 0xeb, 0x68, - 0xa7, 0x6e, 0xb1, 0xfd, 0x44, 0xfa, 0x85, 0xef, 0x52, 0x26, 0xbd, 0x5d, 0xca, 0xfc, 0xe3, 0x30, - 0x56, 0xb5, 0x9b, 0xb2, 0xba, 0x79, 0x4d, 0x7a, 0xbd, 0x76, 0x1e, 0x55, 0xde, 0x0b, 0x7e, 0x8b, - 0xf9, 0x99, 0x84, 0x7a, 0x65, 0x3d, 0xff, 0x85, 0xc4, 0xc4, 0x15, 0x8a, 0x5b, 0xe7, 0xd3, 0x34, - 0xd0, 0x76, 0x03, 0x55, 0xb1, 0xea, 0xf0, 0xc3, 0x53, 0xf0, 0xe0, 0x4e, 0xdd, 0xdd, 0xdd, 0xbb, - 0x3e, 0x57, 0xb5, 0x9b, 0xa7, 0x77, 0xec, 0x1d, 0xdb, 0x3f, 0xee, 0xc2, 0xdf, 0xc8, 0x17, 0xf2, - 0x89, 0x1d, 0x79, 0xf5, 0x7b, 0xa3, 0x13, 0x91, 0xe7, 0x63, 0xd9, 0x32, 0x8c, 0x31, 0xe6, 0x0a, - 0xd9, 0x73, 0xa7, 0xaf, 0x06, 0xfa, 0x81, 0xfb, 0x2e, 0xe9, 0x2f, 0x7f, 0x97, 0xac, 0xd5, 0xc6, - 0x28, 0x83, 0x62, 0x1a, 0x7d, 0x81, 0xc8, 0x1a, 0x70, 0x87, 0x20, 0x8f, 0xe6, 0x25, 0x6a, 0x47, - 0x48, 0xfc, 0x26, 0x93, 0x38, 0x16, 0x90, 0xb8, 0xc1, 0xa0, 0xd9, 0x02, 0x0c, 0x1d, 0x46, 0xd6, - 0xdf, 0x33, 0x59, 0x83, 0x28, 0x28, 0xe4, 0x0a, 0x8c, 0x10, 0x21, 0xd5, 0x3d, 0xc7, 0xb5, 0x9b, - 0xa4, 0xe8, 0x1d, 0x2c, 0xe6, 0x1f, 0xbe, 0x4b, 0x13, 0x65, 0x18, 0xc3, 0x0a, 0x1e, 0x2a, 0x9b, - 0x05, 0x72, 0xcc, 0x50, 0x43, 0xd5, 0x46, 0x84, 0x84, 0x1b, 0x4c, 0x11, 0x8f, 0x3f, 0xfb, 0x1e, - 0x38, 0x8a, 0x3f, 0x93, 0x9a, 0x14, 0xd4, 0x24, 0x7a, 0x97, 0x29, 0xfd, 0xad, 0x0f, 0xd0, 0x5c, - 0x1c, 0xf3, 0x04, 0x04, 0x74, 0x0a, 0x78, 0x71, 0x07, 0xb9, 0x2e, 0x6a, 0x3b, 0x15, 0xb3, 0x11, - 0xa6, 0x5e, 0xe0, 0x35, 0x3d, 0xfd, 0xb1, 0xd7, 0x44, 0x2f, 0x5e, 0xa1, 0xc8, 0x5c, 0xa3, 0x91, - 0xdd, 0x82, 0x63, 0x21, 0x51, 0x11, 0x43, 0xe6, 0xc7, 0x99, 0xcc, 0xa3, 0x1d, 0x91, 0x81, 0xc5, - 0xae, 0x03, 0x1f, 0xf7, 0x7c, 0x19, 0x43, 0xe6, 0x1f, 0x31, 0x99, 0x3a, 0xc3, 0x72, 0x97, 0x62, - 0x89, 0x57, 0x61, 0xf4, 0x29, 0xd4, 0xbe, 0x6e, 0x3b, 0x6c, 0x6b, 0x24, 0x86, 0xb8, 0x4f, 0x30, - 0x71, 0x23, 0x0c, 0x48, 0xf6, 0x4a, 0xb0, 0xac, 0x8b, 0x90, 0xda, 0x36, 0xab, 0x28, 0x86, 0x88, - 0x4f, 0x32, 0x11, 0x47, 0x30, 0x3f, 0x86, 0xe6, 0x60, 0x70, 0xc7, 0x66, 0xcb, 0x52, 0x34, 0xfc, - 0x79, 0x06, 0x1f, 0xe0, 0x18, 0x26, 0xa2, 0x65, 0xb7, 0xf6, 0x1a, 0x78, 0xcd, 0x8a, 0x16, 0xf1, - 0x29, 0x2e, 0x82, 0x63, 0x98, 0x88, 0x43, 0x98, 0xf5, 0x05, 0x2e, 0xc2, 0x09, 0xd8, 0xf3, 0x11, - 0x18, 0xb0, 0xad, 0xc6, 0xbe, 0x6d, 0xc5, 0x51, 0xe2, 0xd3, 0x4c, 0x02, 0x30, 0x08, 0x16, 0x70, - 0x09, 0xfa, 0xe3, 0x3a, 0xe2, 0xb3, 0xaf, 0xf1, 0xf4, 0xe0, 0x1e, 0xb8, 0x02, 0x23, 0xbc, 0x40, - 0xd5, 0x6d, 0x2b, 0x86, 0x88, 0x3f, 0x61, 0x22, 0x86, 0x03, 0x30, 0x36, 0x0d, 0x17, 0x39, 0xee, - 0x0e, 0x8a, 0x23, 0xe4, 0x73, 0x7c, 0x1a, 0x0c, 0xc2, 0x4c, 0x79, 0x1d, 0x59, 0xd5, 0xdd, 0x78, - 0x12, 0x5e, 0xe4, 0xa6, 0xe4, 0x18, 0x2c, 0xa2, 0x00, 0x43, 0x4d, 0xb3, 0xed, 0xec, 0x9a, 0x8d, - 0x58, 0xee, 0xf8, 0x3c, 0x93, 0x31, 0xe8, 0x81, 0x98, 0x45, 0xf6, 0xac, 0xc3, 0x88, 0xf9, 0x02, - 0xb7, 0x48, 0x00, 0xc6, 0x52, 0xcf, 0x71, 0xc9, 0x06, 0xd4, 0x61, 0xa4, 0x7d, 0x91, 0xa7, 0x1e, - 0xc5, 0xae, 0x06, 0x25, 0x5e, 0x82, 0x7e, 0xa7, 0xfe, 0x6c, 0x2c, 0x31, 0x7f, 0xca, 0x3d, 0x4d, - 0x00, 0x18, 0x7c, 0x0d, 0xee, 0x0c, 0x5d, 0x26, 0x62, 0x08, 0xfb, 0x33, 0x26, 0x6c, 0x3c, 0x64, - 0xa9, 0x60, 0x25, 0xe1, 0xb0, 0x22, 0xff, 0x9c, 0x97, 0x04, 0x24, 0xc9, 0x5a, 0xc7, 0x2f, 0x0a, - 0x8e, 0xb9, 0x7d, 0x38, 0xab, 0xfd, 0x05, 0xb7, 0x1a, 0xc5, 0x0a, 0x56, 0xdb, 0x84, 0x71, 0x26, - 0xf1, 0x70, 0x7e, 0xfd, 0x12, 0x2f, 0xac, 0x14, 0xbd, 0x25, 0x7a, 0xf7, 0x17, 0x60, 0xc2, 0x33, - 0x27, 0xef, 0x48, 0x9d, 0x4a, 0xd3, 0x6c, 0xc5, 0x90, 0xfc, 0x65, 0x26, 0x99, 0x57, 0x7c, 0xaf, - 0xa5, 0x75, 0x56, 0xcd, 0x16, 0x16, 0xfe, 0x38, 0xa4, 0xb9, 0xf0, 0x3d, 0xab, 0x8d, 0xaa, 0xf6, - 0x8e, 0x55, 0x7f, 0x16, 0xd5, 0x62, 0x88, 0xfe, 0x4b, 0xc9, 0x55, 0x5b, 0x01, 0x38, 0x96, 0xbc, - 0x0c, 0x9a, 0xd7, 0xab, 0x54, 0xea, 0xcd, 0x96, 0xdd, 0x76, 0x23, 0x24, 0xfe, 0x15, 0xf7, 0x94, - 0x87, 0x5b, 0x26, 0xb0, 0x6c, 0x09, 0x86, 0xc9, 0xd7, 0xb8, 0x21, 0xf9, 0x15, 0x26, 0x68, 0xc8, - 0x47, 0xb1, 0xc2, 0x51, 0xb5, 0x9b, 0x2d, 0xb3, 0x1d, 0xa7, 0xfe, 0xfd, 0x35, 0x2f, 0x1c, 0x0c, - 0xc2, 0x0a, 0x87, 0xbb, 0xdf, 0x42, 0x78, 0xb5, 0x8f, 0x21, 0xe1, 0xab, 0xbc, 0x70, 0x70, 0x0c, - 0x13, 0xc1, 0x1b, 0x86, 0x18, 0x22, 0xfe, 0x86, 0x8b, 0xe0, 0x18, 0x2c, 0xe2, 0xdd, 0xfe, 0x42, - 0xdb, 0x46, 0x3b, 0x75, 0xc7, 0x6d, 0xd3, 0x3e, 0xf8, 0x60, 0x51, 0x5f, 0x7b, 0x4d, 0x6c, 0xc2, - 0x8c, 0x00, 0x34, 0x7b, 0x15, 0x46, 0xa4, 0x16, 0x43, 0x8f, 0xba, 0xb3, 0x90, 0xfe, 0xe5, 0xd7, - 0x59, 0x31, 0x12, 0x3b, 0x8c, 0xec, 0x0a, 0xf6, 0xbb, 0xd8, 0x07, 0x44, 0x0b, 0xfb, 0xc0, 0xeb, - 0x9e, 0xeb, 0x85, 0x36, 0x20, 0x7b, 0x19, 0x86, 0x84, 0x1e, 0x20, 0x5a, 0xd4, 0xaf, 0x30, 0x51, - 0x83, 0xc1, 0x16, 0x20, 0xbb, 0x04, 0x49, 0xbc, 0x9e, 0x47, 0xc3, 0x7f, 0x95, 0xc1, 0x09, 0x7b, - 0xf6, 0x21, 0x48, 0xf1, 0x75, 0x3c, 0x1a, 0xfa, 0x41, 0x06, 0xf5, 0x20, 0x18, 0xce, 0xd7, 0xf0, - 0x68, 0xf8, 0xaf, 0x71, 0x38, 0x87, 0x60, 0x78, 0x7c, 0x13, 0xbe, 0xf4, 0x1b, 0x49, 0x56, 0x87, - 0xb9, 0xed, 0x2e, 0xc1, 0x11, 0xb6, 0x78, 0x47, 0xa3, 0x3f, 0xcc, 0x1e, 0xce, 0x11, 0xd9, 0xf3, - 0xd0, 0x1b, 0xd3, 0xe0, 0xbf, 0xc9, 0xa0, 0x94, 0x3f, 0x5b, 0x80, 0x81, 0xc0, 0x82, 0x1d, 0x0d, - 0xff, 0x2d, 0x06, 0x0f, 0xa2, 0xb0, 0xea, 0x6c, 0xc1, 0x8e, 0x16, 0xf0, 0xdb, 0x5c, 0x75, 0x86, - 0xc0, 0x66, 0xe3, 0x6b, 0x75, 0x34, 0xfa, 0x77, 0xb8, 0xd5, 0x39, 0x24, 0xfb, 0x08, 0xf4, 0x7b, - 0xf5, 0x37, 0x1a, 0xff, 0xbb, 0x0c, 0xef, 0x63, 0xb0, 0x05, 0x02, 0xf5, 0x3f, 0x5a, 0xc4, 0xef, - 0x71, 0x0b, 0x04, 0x50, 0x38, 0x8d, 0xe4, 0x35, 0x3d, 0x5a, 0xd2, 0x47, 0x78, 0x1a, 0x49, 0x4b, - 0x3a, 0xf6, 0x26, 0x29, 0x83, 0xd1, 0x22, 0x7e, 0x9f, 0x7b, 0x93, 0xf0, 0x63, 0x35, 0xe4, 0x45, - 0x32, 0x5a, 0xc6, 0x1f, 0x72, 0x35, 0xa4, 0x35, 0x32, 0xbb, 0x0e, 0x7a, 0xe7, 0x02, 0x19, 0x2d, - 0xef, 0xa3, 0x4c, 0xde, 0x68, 0xc7, 0xfa, 0x98, 0x7d, 0x0c, 0xc6, 0xc3, 0x17, 0xc7, 0x68, 0xa9, - 0x1f, 0x7b, 0x5d, 0x7a, 0x9d, 0x09, 0xae, 0x8d, 0xd9, 0x4d, 0xbf, 0xca, 0x06, 0x17, 0xc6, 0x68, - 0xb1, 0x1f, 0x7f, 0x5d, 0x2c, 0xb4, 0xc1, 0x75, 0x31, 0x9b, 0x03, 0xf0, 0xd7, 0xa4, 0x68, 0x59, - 0x9f, 0x60, 0xb2, 0x02, 0x20, 0x9c, 0x1a, 0x6c, 0x49, 0x8a, 0xc6, 0x7f, 0x92, 0xa7, 0x06, 0x43, - 0xe0, 0xd4, 0xe0, 0xab, 0x51, 0x34, 0xfa, 0x79, 0x9e, 0x1a, 0x1c, 0x92, 0xbd, 0x04, 0x29, 0x6b, - 0xaf, 0xd1, 0xc0, 0xb1, 0xa5, 0x1f, 0x7c, 0x8d, 0x28, 0xfd, 0x1f, 0x6f, 0x30, 0x30, 0x07, 0x64, - 0x97, 0xa0, 0x17, 0x35, 0xaf, 0xa3, 0x5a, 0x14, 0xf2, 0x3f, 0xdf, 0xe0, 0xf5, 0x04, 0x73, 0x67, - 0x1f, 0x01, 0xa0, 0x2f, 0xd3, 0xe4, 0x94, 0x28, 0x02, 0xfb, 0x5f, 0x6f, 0xb0, 0x1b, 0x0a, 0x3e, - 0xc4, 0x17, 0x40, 0xef, 0x3b, 0x1c, 0x2c, 0xe0, 0x35, 0x51, 0x00, 0x79, 0x01, 0xbf, 0x08, 0x47, - 0x9e, 0x70, 0x6c, 0xcb, 0x35, 0x77, 0xa2, 0xd0, 0xff, 0xcd, 0xd0, 0x9c, 0x1f, 0x1b, 0xac, 0x69, - 0xb7, 0x91, 0x6b, 0xee, 0x38, 0x51, 0xd8, 0xff, 0x61, 0x58, 0x0f, 0x80, 0xc1, 0x55, 0xd3, 0x71, - 0xe3, 0xcc, 0xfb, 0x7f, 0x39, 0x98, 0x03, 0xb0, 0xd2, 0xf8, 0xf3, 0x93, 0x68, 0x3f, 0x0a, 0xfb, - 0x7d, 0xae, 0x34, 0xe3, 0xcf, 0x3e, 0x04, 0xfd, 0xf8, 0x23, 0xbd, 0xb5, 0x13, 0x01, 0xfe, 0x01, - 0x03, 0xfb, 0x08, 0xfc, 0x64, 0xc7, 0xad, 0xb9, 0xf5, 0x68, 0x63, 0xff, 0x1f, 0xf3, 0x34, 0xe7, - 0xcf, 0xe6, 0x60, 0xc0, 0x71, 0x6b, 0xb5, 0x3d, 0xd6, 0xd1, 0x44, 0xc0, 0x7f, 0xf8, 0x86, 0xf7, - 0x92, 0xeb, 0x61, 0xf2, 0x27, 0xc2, 0x37, 0xeb, 0xe0, 0x8a, 0x7d, 0xc5, 0xa6, 0xdb, 0x74, 0xf0, - 0x4f, 0x0d, 0x98, 0xaa, 0xda, 0xcd, 0xeb, 0xb6, 0x73, 0x9a, 0x16, 0x94, 0xeb, 0xb6, 0xbb, 0x7b, - 0xda, 0xdd, 0x45, 0x78, 0x01, 0x61, 0xfb, 0x6c, 0x49, 0xfc, 0x79, 0xe2, 0x70, 0x9b, 0x73, 0xe4, - 0xdc, 0xb5, 0x5c, 0xc7, 0xfa, 0x95, 0xc9, 0xd6, 0xb7, 0x7e, 0x1c, 0xfa, 0x88, 0xc6, 0x67, 0xc8, - 0xf1, 0x92, 0x92, 0x4f, 0xde, 0x78, 0x65, 0xaa, 0xc7, 0x60, 0x63, 0x1e, 0x75, 0x81, 0xec, 0x4d, - 0x26, 0x04, 0xea, 0x82, 0x47, 0x3d, 0x4b, 0xb7, 0x27, 0x05, 0xea, 0x59, 0x8f, 0xba, 0x48, 0x36, - 0x2a, 0x55, 0x81, 0xba, 0xe8, 0x51, 0x97, 0xc8, 0x66, 0xfc, 0x90, 0x40, 0x5d, 0xf2, 0xa8, 0xe7, - 0xc8, 0x16, 0x7c, 0x52, 0xa0, 0x9e, 0xf3, 0xa8, 0xe7, 0xc9, 0xee, 0xfb, 0xa8, 0x40, 0x3d, 0xef, - 0x51, 0x2f, 0x90, 0x5d, 0x77, 0x5d, 0xa0, 0x5e, 0xf0, 0xa8, 0x17, 0xc9, 0x55, 0x92, 0x23, 0x02, - 0xf5, 0xa2, 0x3e, 0x09, 0x47, 0xe8, 0xcc, 0xe7, 0xc9, 0x11, 0xed, 0x08, 0x23, 0xf3, 0x41, 0x9f, - 0x7e, 0x86, 0x5c, 0x1b, 0xe9, 0x13, 0xe9, 0x67, 0x7c, 0xfa, 0x02, 0xb9, 0x40, 0xad, 0x89, 0xf4, - 0x05, 0x9f, 0x7e, 0x36, 0x3d, 0x44, 0xae, 0xce, 0x08, 0xf4, 0xb3, 0x3e, 0x7d, 0x31, 0x3d, 0x8c, - 0x83, 0x56, 0xa4, 0x2f, 0xfa, 0xf4, 0xa5, 0xf4, 0xc8, 0xb4, 0x32, 0x33, 0x28, 0xd2, 0x97, 0x32, - 0xef, 0x27, 0xee, 0xb5, 0x7c, 0xf7, 0x8e, 0x8b, 0xee, 0xf5, 0x1c, 0x3b, 0x2e, 0x3a, 0xd6, 0x73, - 0xe9, 0xb8, 0xe8, 0x52, 0xcf, 0x99, 0xe3, 0xa2, 0x33, 0x3d, 0x37, 0x8e, 0x8b, 0x6e, 0xf4, 0x1c, - 0x38, 0x2e, 0x3a, 0xd0, 0x73, 0xdd, 0xb8, 0xe8, 0x3a, 0xcf, 0x69, 0xe3, 0xa2, 0xd3, 0x3c, 0x77, - 0x8d, 0x8b, 0xee, 0xf2, 0x1c, 0x95, 0x96, 0x1c, 0xe5, 0xbb, 0x28, 0x2d, 0xb9, 0xc8, 0x77, 0x4e, - 0x5a, 0x72, 0x8e, 0xef, 0x96, 0xb4, 0xe4, 0x16, 0xdf, 0x21, 0x69, 0xc9, 0x21, 0xbe, 0x2b, 0xd2, - 0x92, 0x2b, 0x7c, 0x27, 0xb0, 0x1c, 0x33, 0x50, 0x2b, 0x24, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, - 0x30, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, - 0xd4, 0x03, 0x73, 0x4c, 0x3d, 0x30, 0xc7, 0xd4, 0x83, 0x73, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, - 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0xb5, 0x6b, 0x8e, 0xf9, 0xee, - 0x1d, 0x17, 0xdd, 0x1b, 0x9a, 0x63, 0x6a, 0x97, 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, - 0xd4, 0x2e, 0x39, 0xa6, 0x76, 0xc9, 0x31, 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x96, - 0x63, 0x6a, 0xd7, 0x1c, 0x53, 0xbb, 0xe6, 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, - 0xcd, 0x31, 0x35, 0x98, 0x63, 0x7f, 0xab, 0x82, 0x4e, 0x73, 0x6c, 0x9d, 0x5c, 0xf2, 0x61, 0xae, - 0x98, 0x94, 0x32, 0xad, 0x0f, 0xbb, 0x4e, 0xf3, 0x5d, 0x32, 0x29, 0xe5, 0x9a, 0x48, 0x5f, 0xf0, - 0xe8, 0x3c, 0xdb, 0x44, 0xfa, 0x59, 0x8f, 0xce, 0xf3, 0x4d, 0xa4, 0x2f, 0x7a, 0x74, 0x9e, 0x71, - 0x22, 0x7d, 0xc9, 0xa3, 0xf3, 0x9c, 0x13, 0xe9, 0xe7, 0x3c, 0x3a, 0xcf, 0x3a, 0x91, 0x7e, 0xde, - 0xa3, 0xf3, 0xbc, 0x13, 0xe9, 0x17, 0x3c, 0x3a, 0xcf, 0x3c, 0x91, 0x7e, 0x51, 0x9f, 0x96, 0x73, - 0x8f, 0x33, 0x78, 0xae, 0x9d, 0x96, 0xb3, 0x4f, 0xe2, 0x38, 0xe3, 0x73, 0xf0, 0xfc, 0x93, 0x38, - 0x16, 0x7c, 0x0e, 0x9e, 0x81, 0x12, 0xc7, 0xd9, 0xcc, 0x87, 0x88, 0xfb, 0x2c, 0xd9, 0x7d, 0x13, - 0x92, 0xfb, 0x12, 0x01, 0xd7, 0x4d, 0x48, 0xae, 0x4b, 0x04, 0xdc, 0x36, 0x21, 0xb9, 0x2d, 0x11, - 0x70, 0xd9, 0x84, 0xe4, 0xb2, 0x44, 0xc0, 0x5d, 0x13, 0x92, 0xbb, 0x12, 0x01, 0x57, 0x4d, 0x48, - 0xae, 0x4a, 0x04, 0xdc, 0x34, 0x21, 0xb9, 0x29, 0x11, 0x70, 0xd1, 0x84, 0xe4, 0xa2, 0x44, 0xc0, - 0x3d, 0x13, 0x92, 0x7b, 0x12, 0x01, 0xd7, 0x1c, 0x97, 0x5d, 0x93, 0x08, 0xba, 0xe5, 0xb8, 0xec, - 0x96, 0x44, 0xd0, 0x25, 0xc7, 0x65, 0x97, 0x24, 0x82, 0xee, 0x38, 0x2e, 0xbb, 0x23, 0x11, 0x74, - 0xc5, 0x4f, 0x12, 0xbc, 0x23, 0xdc, 0x70, 0xdb, 0x7b, 0x55, 0xf7, 0xb6, 0x3a, 0xc2, 0x79, 0xa1, - 0x7d, 0x18, 0x58, 0xd0, 0xe7, 0x48, 0xc3, 0x1a, 0xec, 0x38, 0xa5, 0x15, 0x6c, 0x5e, 0x68, 0x2c, - 0x02, 0x08, 0x2b, 0x1c, 0xb1, 0x78, 0x5b, 0xbd, 0xe1, 0xbc, 0xd0, 0x66, 0x44, 0xeb, 0x77, 0xe1, - 0x6d, 0xef, 0xd8, 0x5e, 0x4a, 0xf0, 0x8e, 0x8d, 0x99, 0xff, 0xb0, 0x1d, 0xdb, 0x6c, 0xb4, 0xc9, - 0x3d, 0x63, 0xcf, 0x46, 0x1b, 0xbb, 0x63, 0xd5, 0x89, 0xdb, 0xc1, 0xcd, 0x46, 0x9b, 0xd6, 0x33, - 0xea, 0x5b, 0xdb, 0x6f, 0xb1, 0x08, 0x36, 0x50, 0x2b, 0x24, 0x82, 0x0f, 0xdb, 0x6f, 0xcd, 0x0b, - 0xa5, 0xe4, 0xb0, 0x11, 0xac, 0x1e, 0x3a, 0x82, 0x0f, 0xdb, 0x79, 0xcd, 0x0b, 0xe5, 0xe5, 0xd0, - 0x11, 0xfc, 0x36, 0xf4, 0x43, 0x2c, 0x82, 0x7d, 0xf3, 0x1f, 0xb6, 0x1f, 0x9a, 0x8d, 0x36, 0x79, - 0x68, 0x04, 0xab, 0x87, 0x88, 0xe0, 0x38, 0xfd, 0xd1, 0x6c, 0xb4, 0x69, 0xc3, 0x23, 0xf8, 0xb6, - 0xbb, 0x99, 0x4f, 0x29, 0x30, 0x5a, 0xae, 0xd7, 0x4a, 0xcd, 0xeb, 0xa8, 0x56, 0x43, 0x35, 0x66, - 0xc7, 0x79, 0xa1, 0x12, 0x74, 0x71, 0xf5, 0xcb, 0xaf, 0x4c, 0xf9, 0x16, 0x5e, 0x82, 0x14, 0xb5, - 0xe9, 0xfc, 0x7c, 0xfa, 0x86, 0x12, 0x51, 0xe1, 0x3c, 0x56, 0xfd, 0x04, 0x87, 0x9d, 0x99, 0x4f, - 0xff, 0x8b, 0x12, 0xa8, 0x72, 0xde, 0x70, 0xe6, 0x23, 0x44, 0x43, 0xeb, 0xb6, 0x35, 0x3c, 0x1d, - 0x4b, 0xc3, 0x80, 0x6e, 0x77, 0x75, 0xe8, 0x16, 0xd0, 0x6a, 0x0f, 0x46, 0xca, 0xf5, 0x5a, 0x99, - 0xfc, 0xe9, 0x6e, 0x1c, 0x95, 0x28, 0x8f, 0x54, 0x0f, 0xe6, 0x85, 0xb0, 0x0c, 0x22, 0xbc, 0x90, - 0x16, 0x6b, 0x44, 0xa6, 0x8e, 0x1f, 0x6b, 0x09, 0x8f, 0x9d, 0xed, 0xf6, 0x58, 0xbf, 0xb2, 0x7b, - 0x0f, 0x9c, 0xed, 0xf6, 0x40, 0x3f, 0x87, 0xbc, 0x47, 0x3d, 0xc3, 0x17, 0x67, 0x7a, 0xdb, 0x46, - 0x3f, 0x0e, 0x89, 0x65, 0x7a, 0x13, 0x78, 0x30, 0x3f, 0x88, 0x95, 0xfa, 0xf6, 0x2b, 0x53, 0xc9, - 0xad, 0xbd, 0x7a, 0xcd, 0x48, 0x2c, 0xd7, 0xf4, 0xab, 0xd0, 0xfb, 0x1e, 0xf6, 0x07, 0x70, 0x98, - 0x61, 0x91, 0x31, 0x3c, 0xd0, 0x75, 0x8f, 0x08, 0x3f, 0xf8, 0x34, 0xdd, 0x47, 0x9c, 0xdb, 0xaa, - 0x5b, 0xee, 0x99, 0x85, 0x0b, 0x06, 0x15, 0x91, 0xf9, 0x45, 0x00, 0xfa, 0xcc, 0xa2, 0xe9, 0xec, - 0xea, 0x65, 0x2e, 0x99, 0x3e, 0xfa, 0xc2, 0xb7, 0x5f, 0x99, 0x5a, 0x8c, 0x23, 0xf5, 0xc1, 0x9a, - 0xe9, 0xec, 0x3e, 0xe8, 0xee, 0xb7, 0xd0, 0x5c, 0x7e, 0xdf, 0x45, 0x0e, 0x97, 0xde, 0xe2, 0xab, - 0x1e, 0x9b, 0x57, 0x3a, 0x30, 0xaf, 0x94, 0x30, 0xa7, 0xcb, 0xe2, 0x9c, 0xe6, 0xdf, 0xec, 0x7c, - 0x9e, 0xe1, 0x8b, 0x84, 0x64, 0x49, 0x35, 0xca, 0x92, 0xea, 0xed, 0x5a, 0xb2, 0xc5, 0xeb, 0xa3, - 0x34, 0x57, 0xf5, 0xa0, 0xb9, 0xaa, 0xb7, 0x33, 0xd7, 0x1f, 0xd1, 0x6c, 0xf5, 0xf2, 0x69, 0xcb, - 0xa2, 0xb7, 0x10, 0x7f, 0xbe, 0xf6, 0x82, 0xde, 0xd2, 0x2e, 0x20, 0x9b, 0xbc, 0xf1, 0xc2, 0x94, - 0x92, 0xf9, 0x54, 0x82, 0xcf, 0x9c, 0x26, 0xd2, 0x9b, 0x9b, 0xf9, 0xcf, 0x4b, 0x4f, 0xf5, 0x76, - 0x58, 0xe8, 0x79, 0x05, 0xc6, 0x3b, 0x2a, 0x39, 0x35, 0xd3, 0x5b, 0x5b, 0xce, 0xad, 0xc3, 0x96, - 0x73, 0xa6, 0xe0, 0x57, 0x14, 0x38, 0x2a, 0x95, 0x57, 0xaa, 0xde, 0x69, 0x49, 0xbd, 0x63, 0x9d, - 0x4f, 0x22, 0x8c, 0x01, 0xed, 0x82, 0xee, 0x95, 0x00, 0x01, 0xc9, 0x9e, 0xdf, 0x17, 0x25, 0xbf, - 0x1f, 0xf7, 0x00, 0x21, 0xe6, 0xe2, 0x11, 0xc0, 0xd4, 0xb6, 0x21, 0xb9, 0xd9, 0x46, 0x48, 0x9f, - 0x84, 0xc4, 0x5a, 0x9b, 0x69, 0x38, 0x4c, 0xf1, 0x6b, 0xed, 0x7c, 0xdb, 0xb4, 0xaa, 0xbb, 0x46, - 0x62, 0xad, 0xad, 0x9f, 0x00, 0x35, 0xc7, 0x7e, 0x62, 0x60, 0x60, 0x61, 0x84, 0x32, 0xe4, 0xac, - 0x1a, 0xe3, 0xc0, 0x34, 0x7d, 0x12, 0x92, 0x2b, 0xc8, 0xdc, 0x66, 0x4a, 0x00, 0xe5, 0xc1, 0x23, - 0x06, 0x19, 0x67, 0x0f, 0x7c, 0x1c, 0x52, 0x5c, 0xb0, 0x7e, 0x12, 0x23, 0xb6, 0x5d, 0xf6, 0x58, - 0x86, 0xc0, 0xea, 0xb0, 0x95, 0x8b, 0x50, 0xf5, 0x53, 0xd0, 0x6b, 0xd4, 0x77, 0x76, 0x5d, 0xf6, - 0xf0, 0x4e, 0x36, 0x4a, 0xce, 0x5c, 0x83, 0x7e, 0x4f, 0xa3, 0xb7, 0x58, 0x74, 0x91, 0x4e, 0x4d, - 0x9f, 0x08, 0xae, 0x27, 0x7c, 0xdf, 0x92, 0x0e, 0xe9, 0xd3, 0x90, 0xda, 0x70, 0xdb, 0x7e, 0xd1, - 0xe7, 0x1d, 0xa9, 0x37, 0x9a, 0x79, 0xbf, 0x02, 0xa9, 0x22, 0x42, 0x2d, 0x62, 0xf0, 0x7b, 0x21, - 0x59, 0xb4, 0x9f, 0xb6, 0x98, 0x82, 0xa3, 0xcc, 0xa2, 0x98, 0xcc, 0x6c, 0x4a, 0xc8, 0xfa, 0xbd, - 0x41, 0xbb, 0x8f, 0x79, 0x76, 0x0f, 0xf0, 0x11, 0xdb, 0x67, 0x04, 0xdb, 0x33, 0x07, 0x62, 0xa6, - 0x0e, 0xfb, 0x9f, 0x87, 0x81, 0xc0, 0x53, 0xf4, 0x19, 0xa6, 0x46, 0x42, 0x06, 0x06, 0x6d, 0x85, - 0x39, 0x32, 0x08, 0x86, 0x84, 0x07, 0x63, 0x68, 0xc0, 0xc4, 0x5d, 0xa0, 0xc4, 0xcc, 0xb3, 0xa2, - 0x99, 0xc3, 0x59, 0x99, 0xa9, 0xe7, 0xa9, 0x8d, 0x88, 0xb9, 0x4f, 0xd2, 0xe0, 0xec, 0xee, 0x44, - 0xfc, 0x39, 0xd3, 0x0b, 0x6a, 0xb9, 0xde, 0xc8, 0x3c, 0x04, 0x40, 0x53, 0xbe, 0x64, 0xed, 0x35, - 0xa5, 0xac, 0x1b, 0xe6, 0x06, 0xde, 0xdc, 0x45, 0x9b, 0xc8, 0x21, 0x2c, 0x62, 0x3f, 0x85, 0x0b, - 0x0c, 0xd0, 0x14, 0x23, 0xf8, 0xfb, 0x23, 0xf1, 0xa1, 0x9d, 0x18, 0x66, 0x4d, 0x53, 0xd6, 0x6b, - 0xc8, 0xcd, 0x59, 0xb6, 0xbb, 0x8b, 0xda, 0x12, 0x62, 0x41, 0x3f, 0x2b, 0x24, 0xec, 0xf0, 0xc2, - 0x5d, 0x1e, 0xa2, 0x2b, 0xe8, 0x6c, 0xe6, 0x4b, 0x44, 0x41, 0xdc, 0x0a, 0x74, 0x4c, 0x50, 0x8d, - 0x31, 0x41, 0xfd, 0x9c, 0xd0, 0xbf, 0x1d, 0xa0, 0xa6, 0xf4, 0x6a, 0x79, 0x51, 0x78, 0xcf, 0x39, - 0x58, 0x59, 0xf1, 0x1d, 0x93, 0xdb, 0x94, 0xab, 0x7c, 0x7f, 0xa4, 0xca, 0x5d, 0xba, 0xdb, 0xc3, - 0xda, 0x54, 0x8d, 0x6b, 0xd3, 0xaf, 0x7b, 0x1d, 0x07, 0xfd, 0xb1, 0x06, 0xf2, 0xdb, 0x20, 0xfa, - 0x03, 0x91, 0xbe, 0xcf, 0x2a, 0x05, 0x4f, 0xd5, 0xc5, 0xb8, 0xee, 0xcf, 0x26, 0xf2, 0x79, 0x4f, - 0xdd, 0xf3, 0x87, 0x08, 0x81, 0x6c, 0xa2, 0x50, 0xf0, 0xca, 0x76, 0xea, 0x43, 0x2f, 0x4c, 0x29, - 0x2f, 0xbe, 0x30, 0xd5, 0x93, 0xf9, 0xbc, 0x02, 0xa3, 0x8c, 0x33, 0x10, 0xb8, 0x0f, 0x4a, 0xca, - 0xdf, 0xc1, 0x6b, 0x46, 0x98, 0x05, 0x7e, 0x6a, 0xc1, 0xfb, 0x4d, 0x05, 0xd2, 0x1d, 0xba, 0x72, - 0x7b, 0xcf, 0xc7, 0x52, 0x39, 0xab, 0x94, 0x7e, 0xf6, 0x36, 0xbf, 0x06, 0xbd, 0x9b, 0xf5, 0x26, - 0x6a, 0xe3, 0x95, 0x00, 0x7f, 0xa0, 0x2a, 0xf3, 0xc3, 0x1c, 0x3a, 0xc4, 0x69, 0x54, 0x39, 0x81, - 0xb6, 0xa0, 0xa7, 0x21, 0x59, 0x34, 0x5d, 0x93, 0x68, 0x30, 0xe8, 0xd5, 0x57, 0xd3, 0x35, 0x33, - 0x67, 0x61, 0x70, 0x75, 0x9f, 0x5c, 0x95, 0xa9, 0x91, 0x6b, 0x20, 0x62, 0xf7, 0xc7, 0xfb, 0xd5, - 0x33, 0xb3, 0xbd, 0xa9, 0x9a, 0x76, 0x43, 0xc9, 0x26, 0x89, 0x3e, 0x4f, 0xc1, 0xf0, 0x1a, 0x56, - 0x9b, 0xe0, 0x04, 0x18, 0x7d, 0xba, 0xea, 0x4d, 0x5e, 0x6a, 0xca, 0x54, 0xbf, 0x29, 0x9b, 0x06, - 0x65, 0x55, 0x6c, 0x9d, 0x82, 0x7a, 0x18, 0xca, 0xea, 0x6c, 0x32, 0x35, 0xac, 0x8d, 0xce, 0x26, - 0x53, 0xa0, 0x0d, 0xb1, 0xe7, 0xfe, 0xa3, 0x0a, 0x1a, 0x6d, 0x75, 0x8a, 0x68, 0xbb, 0x6e, 0xd5, - 0xdd, 0xce, 0x7e, 0xd5, 0xd3, 0x58, 0x7f, 0x04, 0xfa, 0xb1, 0x49, 0x2f, 0xb3, 0x9f, 0xd8, 0xc2, - 0xa6, 0x3f, 0xc1, 0x5a, 0x14, 0x49, 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0xcb, 0xa0, 0x96, - 0xcb, 0xab, 0x6c, 0x71, 0x5b, 0x3c, 0x10, 0xca, 0x6e, 0xda, 0xb0, 0x6f, 0x6c, 0xcc, 0xd9, 0x31, - 0xb0, 0x00, 0x7d, 0x11, 0x12, 0xe5, 0x55, 0xd6, 0xf0, 0x9e, 0x8c, 0x23, 0xc6, 0x48, 0x94, 0x57, - 0x27, 0xfe, 0x4e, 0x81, 0x21, 0x61, 0x54, 0xcf, 0xc0, 0x20, 0x1d, 0x08, 0x4c, 0xb7, 0xcf, 0x10, - 0xc6, 0xb8, 0xce, 0x89, 0xdb, 0xd4, 0x79, 0x22, 0x07, 0x23, 0xd2, 0xb8, 0x3e, 0x07, 0x7a, 0x70, - 0x88, 0x29, 0x41, 0x7f, 0x9e, 0x28, 0x84, 0x92, 0xb9, 0x1b, 0xc0, 0xb7, 0xab, 0xf7, 0xab, 0x3a, - 0xe5, 0xd2, 0xc6, 0x66, 0xa9, 0xa8, 0x29, 0x99, 0xaf, 0x2a, 0x30, 0xc0, 0xda, 0xd6, 0xaa, 0xdd, - 0x42, 0x7a, 0x1e, 0x94, 0x1c, 0x8b, 0x87, 0x37, 0xa7, 0xb7, 0x92, 0xd3, 0x4f, 0x83, 0x92, 0x8f, - 0xef, 0x6a, 0x25, 0xaf, 0x2f, 0x80, 0x52, 0x60, 0x0e, 0x8e, 0xe7, 0x19, 0xa5, 0x90, 0xf9, 0x81, - 0x0a, 0x63, 0xc1, 0x36, 0x9a, 0xd7, 0x93, 0x13, 0xe2, 0x7b, 0x53, 0xb6, 0xff, 0xcc, 0xc2, 0xd9, - 0xc5, 0x39, 0xfc, 0x8f, 0x17, 0x92, 0x27, 0xc4, 0x57, 0xa8, 0x4e, 0x96, 0x8e, 0x6b, 0x22, 0xd9, - 0x64, 0x80, 0xda, 0x71, 0x4d, 0x44, 0xa0, 0x76, 0x5c, 0x13, 0x11, 0xa8, 0x1d, 0xd7, 0x44, 0x04, - 0x6a, 0xc7, 0x51, 0x80, 0x40, 0xed, 0xb8, 0x26, 0x22, 0x50, 0x3b, 0xae, 0x89, 0x08, 0xd4, 0xce, - 0x6b, 0x22, 0x8c, 0xdc, 0xf5, 0x9a, 0x88, 0x48, 0xef, 0xbc, 0x26, 0x22, 0xd2, 0x3b, 0xaf, 0x89, - 0x64, 0x93, 0x6e, 0x7b, 0x0f, 0x75, 0x3f, 0x74, 0x10, 0xf1, 0x07, 0xbd, 0x03, 0xfa, 0x05, 0x78, - 0x0d, 0x46, 0xe8, 0x7e, 0x44, 0xc1, 0xb6, 0x5c, 0xb3, 0x6e, 0xa1, 0xb6, 0xfe, 0x4e, 0x18, 0xa4, - 0x43, 0xf4, 0x2d, 0x27, 0xec, 0x2d, 0x90, 0xd2, 0x59, 0xb9, 0x15, 0xb8, 0x33, 0x3f, 0x49, 0xc2, - 0x38, 0x1d, 0x28, 0x9b, 0x4d, 0x24, 0x5c, 0x32, 0x3a, 0x25, 0x1d, 0x29, 0x0d, 0x63, 0xf8, 0xad, - 0x57, 0xa6, 0xe8, 0x68, 0xce, 0x0b, 0xa6, 0x53, 0xd2, 0xe1, 0x92, 0xc8, 0xe7, 0xaf, 0x3f, 0xa7, - 0xa4, 0x8b, 0x47, 0x22, 0x9f, 0xb7, 0xdc, 0x78, 0x7c, 0xfc, 0x0a, 0x92, 0xc8, 0x57, 0xf4, 0xa2, - 0xec, 0x94, 0x74, 0x19, 0x49, 0xe4, 0x2b, 0x79, 0xf1, 0x76, 0x4a, 0x3a, 0x7a, 0x12, 0xf9, 0x2e, - 0x7b, 0x91, 0x77, 0x4a, 0x3a, 0x84, 0x12, 0xf9, 0xae, 0x78, 0x31, 0x78, 0x4a, 0xba, 0xaa, 0x24, - 0xf2, 0x3d, 0xea, 0x45, 0xe3, 0x29, 0xe9, 0xd2, 0x92, 0xc8, 0xb7, 0xec, 0xc5, 0xe5, 0x8c, 0x7c, - 0x7d, 0x49, 0x64, 0xbc, 0xea, 0x47, 0xe8, 0x8c, 0x7c, 0x91, 0x49, 0xe4, 0x7c, 0x97, 0x1f, 0xab, - 0x33, 0xf2, 0x95, 0x26, 0x91, 0x73, 0xc5, 0x8f, 0xda, 0x19, 0xf9, 0xa8, 0x4c, 0xe4, 0x5c, 0xf5, - 0xe3, 0x77, 0x46, 0x3e, 0x34, 0x13, 0x39, 0xcb, 0x7e, 0x24, 0xcf, 0xc8, 0xc7, 0x67, 0x22, 0xe7, - 0x9a, 0xbf, 0x87, 0xfe, 0x0d, 0x29, 0xfc, 0x02, 0x97, 0xa0, 0x32, 0x52, 0xf8, 0x41, 0x48, 0xe8, - 0x65, 0xa4, 0xd0, 0x83, 0x90, 0xb0, 0xcb, 0x48, 0x61, 0x07, 0x21, 0x21, 0x97, 0x91, 0x42, 0x0e, - 0x42, 0xc2, 0x2d, 0x23, 0x85, 0x1b, 0x84, 0x84, 0x5a, 0x46, 0x0a, 0x35, 0x08, 0x09, 0xb3, 0x8c, - 0x14, 0x66, 0x10, 0x12, 0x62, 0x19, 0x29, 0xc4, 0x20, 0x24, 0xbc, 0x32, 0x52, 0x78, 0x41, 0x48, - 0x68, 0x9d, 0x94, 0x43, 0x0b, 0xc2, 0xc2, 0xea, 0xa4, 0x1c, 0x56, 0x10, 0x16, 0x52, 0xf7, 0xc8, - 0x21, 0xd5, 0x7f, 0xeb, 0x95, 0xa9, 0x5e, 0x3c, 0x14, 0x88, 0xa6, 0x93, 0x72, 0x34, 0x41, 0x58, - 0x24, 0x9d, 0x94, 0x23, 0x09, 0xc2, 0xa2, 0xe8, 0xa4, 0x1c, 0x45, 0x10, 0x16, 0x41, 0x2f, 0xc9, - 0x11, 0xe4, 0x5f, 0xf1, 0xc9, 0x48, 0x27, 0x8a, 0x51, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, - 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, - 0x23, 0x82, 0xd4, 0x38, 0x11, 0xa4, 0xc6, 0x8a, 0x20, 0xb5, 0x5b, 0x04, 0x9d, 0x94, 0x2f, 0x3c, - 0x40, 0x58, 0x41, 0x3a, 0x29, 0x9f, 0x7c, 0x46, 0x87, 0x90, 0x1a, 0x2b, 0x84, 0xd4, 0x6e, 0x21, - 0xf4, 0x0d, 0x15, 0xc6, 0x84, 0x10, 0x62, 0xc7, 0x43, 0x6f, 0x55, 0x05, 0x3a, 0x17, 0xe3, 0x7e, - 0x45, 0x58, 0x4c, 0x9d, 0x8b, 0x71, 0x46, 0x7d, 0x50, 0x9c, 0x75, 0x56, 0xa1, 0x52, 0x8c, 0x2a, - 0x74, 0xd9, 0x8b, 0xa1, 0x73, 0x31, 0xee, 0x5d, 0x74, 0xc6, 0xde, 0x85, 0x83, 0x8a, 0xc0, 0xa3, - 0xb1, 0x8a, 0xc0, 0x72, 0xac, 0x22, 0x70, 0xd5, 0xf7, 0xe0, 0x07, 0x13, 0x70, 0xd4, 0xf7, 0x20, - 0xfd, 0x44, 0x7e, 0x0a, 0x29, 0x13, 0x38, 0xa1, 0xd2, 0xf9, 0xa9, 0x4d, 0xc0, 0x8d, 0x89, 0xe5, - 0x9a, 0xbe, 0x2e, 0x9e, 0x55, 0x65, 0x0f, 0x7b, 0x7e, 0x13, 0xf0, 0x38, 0xdb, 0x0b, 0x3d, 0x09, - 0xea, 0x72, 0xcd, 0x21, 0xd5, 0x22, 0xec, 0xb1, 0x05, 0x03, 0x93, 0x75, 0x03, 0xfa, 0x08, 0xbb, - 0x43, 0xdc, 0x7b, 0x3b, 0x0f, 0x2e, 0x1a, 0x4c, 0x52, 0xe6, 0x25, 0x05, 0xa6, 0x85, 0x50, 0x7e, - 0x6b, 0x4e, 0x0c, 0x2e, 0xc5, 0x3a, 0x31, 0x10, 0x12, 0xc4, 0x3f, 0x3d, 0xb8, 0xaf, 0xf3, 0xa0, - 0x3a, 0x98, 0x25, 0xf2, 0x49, 0xc2, 0x2f, 0xc1, 0xb0, 0x3f, 0x03, 0xf2, 0xca, 0xb6, 0x14, 0xbd, - 0x99, 0x19, 0x96, 0x9a, 0x4b, 0xd2, 0x26, 0xda, 0x81, 0x30, 0x2f, 0x5b, 0x33, 0x59, 0x18, 0x29, - 0x8b, 0x7f, 0xb3, 0x13, 0xb5, 0x17, 0x91, 0xc2, 0xad, 0xf9, 0x8d, 0x4f, 0x4f, 0xf5, 0x64, 0x1e, - 0x80, 0xc1, 0xe0, 0x9f, 0xe5, 0x48, 0xc0, 0x7e, 0x0e, 0xcc, 0x26, 0x5f, 0xc6, 0xdc, 0x7f, 0xa0, - 0xc0, 0x1d, 0x41, 0xf6, 0xc7, 0xea, 0xee, 0xee, 0xb2, 0x85, 0x7b, 0xfa, 0x87, 0x20, 0x85, 0x98, - 0xe3, 0xd8, 0xaf, 0x9a, 0xb0, 0xd7, 0xc8, 0x50, 0xf6, 0x39, 0xf2, 0xaf, 0xe1, 0x41, 0xa4, 0x4d, - 0x10, 0xfe, 0xd8, 0x85, 0x89, 0x7b, 0xa1, 0x97, 0xca, 0x17, 0xf5, 0x1a, 0x92, 0xf4, 0xfa, 0x6c, - 0x88, 0x5e, 0x24, 0x8e, 0xf4, 0xab, 0x82, 0x5e, 0x81, 0xb7, 0xd5, 0x50, 0xf6, 0x39, 0x1e, 0x7c, - 0xf9, 0x14, 0xee, 0xff, 0x48, 0x44, 0x45, 0x2b, 0x39, 0x03, 0xa9, 0x92, 0xcc, 0x13, 0xae, 0x67, - 0x11, 0x92, 0x65, 0xbb, 0x46, 0x7e, 0x6f, 0x85, 0xfc, 0x2e, 0x2e, 0x33, 0x32, 0xfb, 0x91, 0xdc, - 0x53, 0x90, 0x2a, 0xec, 0xd6, 0x1b, 0xb5, 0x36, 0xb2, 0xd8, 0x91, 0x3d, 0xdb, 0x41, 0xc7, 0x18, - 0xc3, 0xa3, 0x65, 0x0a, 0x30, 0x5a, 0xb6, 0xad, 0xfc, 0xbe, 0x1b, 0xac, 0x1b, 0x73, 0x52, 0x8a, - 0xb0, 0x23, 0x1f, 0xf2, 0x87, 0x1e, 0x98, 0x21, 0xdf, 0xfb, 0xed, 0x57, 0xa6, 0x94, 0x4d, 0x6f, - 0xfb, 0x7c, 0x15, 0x8e, 0xb1, 0xf4, 0xe9, 0x10, 0xb5, 0x10, 0x25, 0xaa, 0x9f, 0x1d, 0x53, 0x07, - 0xc4, 0x2d, 0x63, 0x71, 0x56, 0xa8, 0xb8, 0x37, 0xa7, 0x19, 0x6e, 0x8a, 0x0e, 0xd4, 0x4c, 0x3d, - 0x94, 0x66, 0xa1, 0xe2, 0xe6, 0xa2, 0xc4, 0x49, 0x9a, 0xdd, 0x03, 0xfd, 0x1e, 0x2d, 0x10, 0x0d, - 0xc1, 0x4c, 0x59, 0x98, 0xcd, 0xc0, 0x40, 0x20, 0x61, 0xf5, 0x5e, 0x50, 0x72, 0x5a, 0x0f, 0xfe, - 0x2f, 0xaf, 0x29, 0xf8, 0xbf, 0x82, 0x96, 0x98, 0xbd, 0x17, 0x46, 0xa4, 0xed, 0x4b, 0x4c, 0x29, - 0x6a, 0x80, 0xff, 0x2b, 0x69, 0x03, 0x13, 0xc9, 0x0f, 0xfd, 0xf1, 0x64, 0xcf, 0xec, 0x25, 0xd0, - 0x3b, 0x37, 0x3a, 0xf5, 0x3e, 0x48, 0xe4, 0xb0, 0xc8, 0x63, 0x90, 0xc8, 0xe7, 0x35, 0x65, 0x62, - 0xe4, 0xd7, 0x3f, 0x39, 0x3d, 0x90, 0x27, 0x7f, 0x73, 0x7c, 0x0d, 0xb9, 0xf9, 0x3c, 0x03, 0x3f, - 0x0c, 0x77, 0x84, 0x6e, 0x94, 0x62, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, 0x07, 0xbe, 0x58, 0x24, - 0x78, 0x25, 0xcb, 0x0f, 0x9c, 0x73, 0x7a, 0xc8, 0x26, 0x63, 0xba, 0x16, 0x38, 0xe0, 0xce, 0x65, - 0x1f, 0x66, 0xbc, 0xf9, 0x50, 0x5e, 0x14, 0x71, 0x60, 0x9d, 0xcf, 0x16, 0x18, 0xbe, 0x10, 0x8a, - 0xdf, 0x96, 0x4e, 0x55, 0xc5, 0x15, 0x82, 0x09, 0x29, 0x78, 0x0a, 0x17, 0x43, 0x85, 0xec, 0x06, - 0xee, 0xba, 0x17, 0x3d, 0x85, 0x4b, 0xa1, 0xbc, 0xf5, 0x88, 0x3b, 0x5f, 0xa5, 0xec, 0x69, 0xb6, - 0xc8, 0xe7, 0xce, 0xe8, 0x77, 0xf0, 0x1c, 0x15, 0x2a, 0x30, 0x33, 0x10, 0xe7, 0xca, 0x16, 0x18, - 0x20, 0xdf, 0x15, 0xd0, 0xdd, 0x4a, 0x1c, 0x99, 0x7d, 0x94, 0x09, 0x29, 0x74, 0x15, 0x12, 0x61, - 0x2a, 0x0e, 0xcf, 0x6f, 0xde, 0xb8, 0x39, 0xd9, 0xf3, 0xf2, 0xcd, 0xc9, 0x9e, 0x7f, 0xbd, 0x39, - 0xd9, 0xf3, 0x9d, 0x9b, 0x93, 0xca, 0xf7, 0x6e, 0x4e, 0x2a, 0xdf, 0xbf, 0x39, 0xa9, 0xfc, 0xf8, - 0xe6, 0xa4, 0xf2, 0xdc, 0xad, 0x49, 0xe5, 0xc5, 0x5b, 0x93, 0xca, 0x97, 0x6e, 0x4d, 0x2a, 0x5f, - 0xbb, 0x35, 0xa9, 0xbc, 0x74, 0x6b, 0x52, 0xb9, 0x71, 0x6b, 0xb2, 0xe7, 0xe5, 0x5b, 0x93, 0x3d, - 0xdf, 0xb9, 0x35, 0xa9, 0x7c, 0xef, 0xd6, 0x64, 0xcf, 0xf7, 0x6f, 0x4d, 0x2a, 0x3f, 0xbe, 0x35, - 0xa9, 0x3c, 0xf7, 0xea, 0xa4, 0xf2, 0xc2, 0xab, 0x93, 0x3d, 0x2f, 0xbe, 0x3a, 0xa9, 0xfc, 0x7f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x65, 0xa8, 0x67, 0xae, 0xab, 0x64, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (x TheTestEnum) String() string { - s, ok := TheTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x AnotherTestEnum) String() string { - s, ok := AnotherTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x YetAnotherTestEnum) String() string { - s, ok := YetAnotherTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x YetYetAnotherTestEnum) String() string { - s, ok := YetYetAnotherTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x NestedDefinition_NestedEnum) String() string { - s, ok := NestedDefinition_NestedEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (this *NidOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptNative) - if !ok { - that2, ok := that.(NidOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptNative but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field8 != that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field9 != that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - if this.Field10 != that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - if this.Field11 != that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - if this.Field12 != that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptNative) - if !ok { - that2, ok := that.(NidOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - if this.Field2 != that1.Field2 { - return false - } - if this.Field3 != that1.Field3 { - return false - } - if this.Field4 != that1.Field4 { - return false - } - if this.Field5 != that1.Field5 { - return false - } - if this.Field6 != that1.Field6 { - return false - } - if this.Field7 != that1.Field7 { - return false - } - if this.Field8 != that1.Field8 { - return false - } - if this.Field9 != that1.Field9 { - return false - } - if this.Field10 != that1.Field10 { - return false - } - if this.Field11 != that1.Field11 { - return false - } - if this.Field12 != that1.Field12 { - return false - } - if this.Field13 != that1.Field13 { - return false - } - if this.Field14 != that1.Field14 { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNative) - if !ok { - that2, ok := that.(NinOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNative but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4) - } - } else if this.Field4 != nil { - return fmt.Errorf("this.Field4 == nil && that.Field4 != nil") - } else if that1.Field4 != nil { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5) - } - } else if this.Field5 != nil { - return fmt.Errorf("this.Field5 == nil && that.Field5 != nil") - } else if that1.Field5 != nil { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", *this.Field8, *that1.Field8) - } - } else if this.Field8 != nil { - return fmt.Errorf("this.Field8 == nil && that.Field8 != nil") - } else if that1.Field8 != nil { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", *this.Field9, *that1.Field9) - } - } else if this.Field9 != nil { - return fmt.Errorf("this.Field9 == nil && that.Field9 != nil") - } else if that1.Field9 != nil { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", *this.Field10, *that1.Field10) - } - } else if this.Field10 != nil { - return fmt.Errorf("this.Field10 == nil && that.Field10 != nil") - } else if that1.Field10 != nil { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", *this.Field11, *that1.Field11) - } - } else if this.Field11 != nil { - return fmt.Errorf("this.Field11 == nil && that.Field11 != nil") - } else if that1.Field11 != nil { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", *this.Field12, *that1.Field12) - } - } else if this.Field12 != nil { - return fmt.Errorf("this.Field12 == nil && that.Field12 != nil") - } else if that1.Field12 != nil { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNative) - if !ok { - that2, ok := that.(NinOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return false - } - } else if this.Field4 != nil { - return false - } else if that1.Field4 != nil { - return false - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return false - } - } else if this.Field5 != nil { - return false - } else if that1.Field5 != nil { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return false - } - } else if this.Field8 != nil { - return false - } else if that1.Field8 != nil { - return false - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return false - } - } else if this.Field9 != nil { - return false - } else if that1.Field9 != nil { - return false - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return false - } - } else if this.Field10 != nil { - return false - } else if that1.Field10 != nil { - return false - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return false - } - } else if this.Field11 != nil { - return false - } else if that1.Field11 != nil { - return false - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return false - } - } else if this.Field12 != nil { - return false - } else if that1.Field12 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepNative) - if !ok { - that2, ok := that.(NidRepNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepNative) - if !ok { - that2, ok := that.(NidRepNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepNative) - if !ok { - that2, ok := that.(NinRepNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepNative) - if !ok { - that2, ok := that.(NinRepNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepPackedNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepPackedNative) - if !ok { - that2, ok := that.(NidRepPackedNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepPackedNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepPackedNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepPackedNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepPackedNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepPackedNative) - if !ok { - that2, ok := that.(NidRepPackedNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepPackedNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepPackedNative) - if !ok { - that2, ok := that.(NinRepPackedNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepPackedNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepPackedNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepPackedNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepPackedNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepPackedNative) - if !ok { - that2, ok := that.(NinRepPackedNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptStruct) - if !ok { - that2, ok := that.(NidOptStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptStruct but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(&that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !this.Field4.Equal(&that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if !this.Field8.Equal(&that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptStruct) - if !ok { - that2, ok := that.(NidOptStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - if this.Field2 != that1.Field2 { - return false - } - if !this.Field3.Equal(&that1.Field3) { - return false - } - if !this.Field4.Equal(&that1.Field4) { - return false - } - if this.Field6 != that1.Field6 { - return false - } - if this.Field7 != that1.Field7 { - return false - } - if !this.Field8.Equal(&that1.Field8) { - return false - } - if this.Field13 != that1.Field13 { - return false - } - if this.Field14 != that1.Field14 { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptStruct) - if !ok { - that2, ok := that.(NinOptStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptStruct but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !this.Field4.Equal(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if !this.Field8.Equal(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptStruct) - if !ok { - that2, ok := that.(NinOptStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !this.Field3.Equal(that1.Field3) { - return false - } - if !this.Field4.Equal(that1.Field4) { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if !this.Field8.Equal(that1.Field8) { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepStruct) - if !ok { - that2, ok := that.(NidRepStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepStruct but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if !this.Field3[i].Equal(&that1.Field3[i]) { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if !this.Field4[i].Equal(&that1.Field4[i]) { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if !this.Field8[i].Equal(&that1.Field8[i]) { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepStruct) - if !ok { - that2, ok := that.(NidRepStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if !this.Field3[i].Equal(&that1.Field3[i]) { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if !this.Field4[i].Equal(&that1.Field4[i]) { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if !this.Field8[i].Equal(&that1.Field8[i]) { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepStruct) - if !ok { - that2, ok := that.(NinRepStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepStruct but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if !this.Field3[i].Equal(that1.Field3[i]) { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if !this.Field4[i].Equal(that1.Field4[i]) { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if !this.Field8[i].Equal(that1.Field8[i]) { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepStruct) - if !ok { - that2, ok := that.(NinRepStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if !this.Field3[i].Equal(that1.Field3[i]) { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if !this.Field4[i].Equal(that1.Field4[i]) { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if !this.Field8[i].Equal(that1.Field8[i]) { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidEmbeddedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidEmbeddedStruct) - if !ok { - that2, ok := that.(NidEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidEmbeddedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidEmbeddedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidEmbeddedStruct but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.Field200.Equal(&that1.Field200) { - return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200) - } - if this.Field210 != that1.Field210 { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidEmbeddedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidEmbeddedStruct) - if !ok { - that2, ok := that.(NidEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.Field200.Equal(&that1.Field200) { - return false - } - if this.Field210 != that1.Field210 { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinEmbeddedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinEmbeddedStruct) - if !ok { - that2, ok := that.(NinEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinEmbeddedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinEmbeddedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinEmbeddedStruct but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.Field200.Equal(that1.Field200) { - return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200) - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", *this.Field210, *that1.Field210) - } - } else if this.Field210 != nil { - return fmt.Errorf("this.Field210 == nil && that.Field210 != nil") - } else if that1.Field210 != nil { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinEmbeddedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinEmbeddedStruct) - if !ok { - that2, ok := that.(NinEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.Field200.Equal(that1.Field200) { - return false - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return false - } - } else if this.Field210 != nil { - return false - } else if that1.Field210 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidNestedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidNestedStruct) - if !ok { - that2, ok := that.(NidNestedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidNestedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidNestedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidNestedStruct but is not nil && this == nil") - } - if !this.Field1.Equal(&that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if !this.Field2[i].Equal(&that1.Field2[i]) { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidNestedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidNestedStruct) - if !ok { - that2, ok := that.(NidNestedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(&that1.Field1) { - return false - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if !this.Field2[i].Equal(&that1.Field2[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinNestedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinNestedStruct) - if !ok { - that2, ok := that.(NinNestedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinNestedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinNestedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinNestedStruct but is not nil && this == nil") - } - if !this.Field1.Equal(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if !this.Field2[i].Equal(that1.Field2[i]) { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinNestedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinNestedStruct) - if !ok { - that2, ok := that.(NinNestedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(that1.Field1) { - return false - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if !this.Field2[i].Equal(that1.Field2[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptCustom) - if !ok { - that2, ok := that.(NidOptCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptCustom but is not nil && this == nil") - } - if !this.Id.Equal(that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", this.Id, that1.Id) - } - if !this.Value.Equal(that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptCustom) - if !ok { - that2, ok := that.(NidOptCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Id.Equal(that1.Id) { - return false - } - if !this.Value.Equal(that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomDash) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomDash) - if !ok { - that2, ok := that.(CustomDash) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomDash") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomDash but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomDash but is not nil && this == nil") - } - if that1.Value == nil { - if this.Value != nil { - return fmt.Errorf("this.Value != nil && that1.Value == nil") - } - } else if !this.Value.Equal(*that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomDash) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomDash) - if !ok { - that2, ok := that.(CustomDash) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Value == nil { - if this.Value != nil { - return false - } - } else if !this.Value.Equal(*that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptCustom) - if !ok { - that2, ok := that.(NinOptCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptCustom but is not nil && this == nil") - } - if that1.Id == nil { - if this.Id != nil { - return fmt.Errorf("this.Id != nil && that1.Id == nil") - } - } else if !this.Id.Equal(*that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", this.Id, that1.Id) - } - if that1.Value == nil { - if this.Value != nil { - return fmt.Errorf("this.Value != nil && that1.Value == nil") - } - } else if !this.Value.Equal(*that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptCustom) - if !ok { - that2, ok := that.(NinOptCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Id == nil { - if this.Id != nil { - return false - } - } else if !this.Id.Equal(*that1.Id) { - return false - } - if that1.Value == nil { - if this.Value != nil { - return false - } - } else if !this.Value.Equal(*that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepCustom) - if !ok { - that2, ok := that.(NidRepCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepCustom but is not nil && this == nil") - } - if len(this.Id) != len(that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", len(this.Id), len(that1.Id)) - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return fmt.Errorf("Id this[%v](%v) Not Equal that[%v](%v)", i, this.Id[i], i, that1.Id[i]) - } - } - if len(this.Value) != len(that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", len(this.Value), len(that1.Value)) - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return fmt.Errorf("Value this[%v](%v) Not Equal that[%v](%v)", i, this.Value[i], i, that1.Value[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepCustom) - if !ok { - that2, ok := that.(NidRepCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Id) != len(that1.Id) { - return false - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return false - } - } - if len(this.Value) != len(that1.Value) { - return false - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepCustom) - if !ok { - that2, ok := that.(NinRepCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepCustom but is not nil && this == nil") - } - if len(this.Id) != len(that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", len(this.Id), len(that1.Id)) - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return fmt.Errorf("Id this[%v](%v) Not Equal that[%v](%v)", i, this.Id[i], i, that1.Id[i]) - } - } - if len(this.Value) != len(that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", len(this.Value), len(that1.Value)) - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return fmt.Errorf("Value this[%v](%v) Not Equal that[%v](%v)", i, this.Value[i], i, that1.Value[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepCustom) - if !ok { - that2, ok := that.(NinRepCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Id) != len(that1.Id) { - return false - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return false - } - } - if len(this.Value) != len(that1.Value) { - return false - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNativeUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNativeUnion) - if !ok { - that2, ok := that.(NinOptNativeUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNativeUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNativeUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNativeUnion but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4) - } - } else if this.Field4 != nil { - return fmt.Errorf("this.Field4 == nil && that.Field4 != nil") - } else if that1.Field4 != nil { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5) - } - } else if this.Field5 != nil { - return fmt.Errorf("this.Field5 == nil && that.Field5 != nil") - } else if that1.Field5 != nil { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNativeUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNativeUnion) - if !ok { - that2, ok := that.(NinOptNativeUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return false - } - } else if this.Field4 != nil { - return false - } else if that1.Field4 != nil { - return false - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return false - } - } else if this.Field5 != nil { - return false - } else if that1.Field5 != nil { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptStructUnion) - if !ok { - that2, ok := that.(NinOptStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptStructUnion but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !this.Field4.Equal(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptStructUnion) - if !ok { - that2, ok := that.(NinOptStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !this.Field3.Equal(that1.Field3) { - return false - } - if !this.Field4.Equal(that1.Field4) { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinEmbeddedStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinEmbeddedStructUnion) - if !ok { - that2, ok := that.(NinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinEmbeddedStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinEmbeddedStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinEmbeddedStructUnion but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.Field200.Equal(that1.Field200) { - return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200) - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", *this.Field210, *that1.Field210) - } - } else if this.Field210 != nil { - return fmt.Errorf("this.Field210 == nil && that.Field210 != nil") - } else if that1.Field210 != nil { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinEmbeddedStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinEmbeddedStructUnion) - if !ok { - that2, ok := that.(NinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.Field200.Equal(that1.Field200) { - return false - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return false - } - } else if this.Field210 != nil { - return false - } else if that1.Field210 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinNestedStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinNestedStructUnion) - if !ok { - that2, ok := that.(NinNestedStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinNestedStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinNestedStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinNestedStructUnion but is not nil && this == nil") - } - if !this.Field1.Equal(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !this.Field2.Equal(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinNestedStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinNestedStructUnion) - if !ok { - that2, ok := that.(NinNestedStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(that1.Field1) { - return false - } - if !this.Field2.Equal(that1.Field2) { - return false - } - if !this.Field3.Equal(that1.Field3) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Tree) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Tree) - if !ok { - that2, ok := that.(Tree) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Tree") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Tree but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Tree but is not nil && this == nil") - } - if !this.Or.Equal(that1.Or) { - return fmt.Errorf("Or this(%v) Not Equal that(%v)", this.Or, that1.Or) - } - if !this.And.Equal(that1.And) { - return fmt.Errorf("And this(%v) Not Equal that(%v)", this.And, that1.And) - } - if !this.Leaf.Equal(that1.Leaf) { - return fmt.Errorf("Leaf this(%v) Not Equal that(%v)", this.Leaf, that1.Leaf) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Tree) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Tree) - if !ok { - that2, ok := that.(Tree) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Or.Equal(that1.Or) { - return false - } - if !this.And.Equal(that1.And) { - return false - } - if !this.Leaf.Equal(that1.Leaf) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *OrBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OrBranch) - if !ok { - that2, ok := that.(OrBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OrBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OrBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OrBranch but is not nil && this == nil") - } - if !this.Left.Equal(&that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if !this.Right.Equal(&that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *OrBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OrBranch) - if !ok { - that2, ok := that.(OrBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(&that1.Left) { - return false - } - if !this.Right.Equal(&that1.Right) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AndBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AndBranch) - if !ok { - that2, ok := that.(AndBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AndBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AndBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AndBranch but is not nil && this == nil") - } - if !this.Left.Equal(&that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if !this.Right.Equal(&that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AndBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AndBranch) - if !ok { - that2, ok := that.(AndBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(&that1.Left) { - return false - } - if !this.Right.Equal(&that1.Right) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Leaf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Leaf) - if !ok { - that2, ok := that.(Leaf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Leaf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Leaf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Leaf but is not nil && this == nil") - } - if this.Value != that1.Value { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if this.StrValue != that1.StrValue { - return fmt.Errorf("StrValue this(%v) Not Equal that(%v)", this.StrValue, that1.StrValue) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Leaf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Leaf) - if !ok { - that2, ok := that.(Leaf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Value != that1.Value { - return false - } - if this.StrValue != that1.StrValue { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *DeepTree) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*DeepTree) - if !ok { - that2, ok := that.(DeepTree) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *DeepTree") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *DeepTree but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *DeepTree but is not nil && this == nil") - } - if !this.Down.Equal(that1.Down) { - return fmt.Errorf("Down this(%v) Not Equal that(%v)", this.Down, that1.Down) - } - if !this.And.Equal(that1.And) { - return fmt.Errorf("And this(%v) Not Equal that(%v)", this.And, that1.And) - } - if !this.Leaf.Equal(that1.Leaf) { - return fmt.Errorf("Leaf this(%v) Not Equal that(%v)", this.Leaf, that1.Leaf) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *DeepTree) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*DeepTree) - if !ok { - that2, ok := that.(DeepTree) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Down.Equal(that1.Down) { - return false - } - if !this.And.Equal(that1.And) { - return false - } - if !this.Leaf.Equal(that1.Leaf) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *ADeepBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ADeepBranch) - if !ok { - that2, ok := that.(ADeepBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ADeepBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ADeepBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ADeepBranch but is not nil && this == nil") - } - if !this.Down.Equal(&that1.Down) { - return fmt.Errorf("Down this(%v) Not Equal that(%v)", this.Down, that1.Down) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *ADeepBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ADeepBranch) - if !ok { - that2, ok := that.(ADeepBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Down.Equal(&that1.Down) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AndDeepBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AndDeepBranch) - if !ok { - that2, ok := that.(AndDeepBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AndDeepBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AndDeepBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AndDeepBranch but is not nil && this == nil") - } - if !this.Left.Equal(&that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if !this.Right.Equal(&that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AndDeepBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AndDeepBranch) - if !ok { - that2, ok := that.(AndDeepBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(&that1.Left) { - return false - } - if !this.Right.Equal(&that1.Right) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *DeepLeaf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*DeepLeaf) - if !ok { - that2, ok := that.(DeepLeaf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *DeepLeaf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *DeepLeaf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *DeepLeaf but is not nil && this == nil") - } - if !this.Tree.Equal(&that1.Tree) { - return fmt.Errorf("Tree this(%v) Not Equal that(%v)", this.Tree, that1.Tree) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *DeepLeaf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*DeepLeaf) - if !ok { - that2, ok := that.(DeepLeaf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Tree.Equal(&that1.Tree) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Nil) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Nil) - if !ok { - that2, ok := that.(Nil) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Nil") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Nil but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Nil but is not nil && this == nil") - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Nil) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Nil) - if !ok { - that2, ok := that.(Nil) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptEnum) - if !ok { - that2, ok := that.(NidOptEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptEnum but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptEnum) - if !ok { - that2, ok := that.(NidOptEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptEnum) - if !ok { - that2, ok := that.(NinOptEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptEnum but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptEnum) - if !ok { - that2, ok := that.(NinOptEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepEnum) - if !ok { - that2, ok := that.(NidRepEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepEnum but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepEnum) - if !ok { - that2, ok := that.(NidRepEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepEnum) - if !ok { - that2, ok := that.(NinRepEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepEnum but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepEnum) - if !ok { - that2, ok := that.(NinRepEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptEnumDefault) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptEnumDefault) - if !ok { - that2, ok := that.(NinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptEnumDefault") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptEnumDefault but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptEnumDefault but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptEnumDefault) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptEnumDefault) - if !ok { - that2, ok := that.(NinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AnotherNinOptEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AnotherNinOptEnum) - if !ok { - that2, ok := that.(AnotherNinOptEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AnotherNinOptEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AnotherNinOptEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AnotherNinOptEnum but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AnotherNinOptEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AnotherNinOptEnum) - if !ok { - that2, ok := that.(AnotherNinOptEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AnotherNinOptEnumDefault) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AnotherNinOptEnumDefault) - if !ok { - that2, ok := that.(AnotherNinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AnotherNinOptEnumDefault") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AnotherNinOptEnumDefault but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AnotherNinOptEnumDefault but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AnotherNinOptEnumDefault) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AnotherNinOptEnumDefault) - if !ok { - that2, ok := that.(AnotherNinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Timer) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Timer) - if !ok { - that2, ok := that.(Timer) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Timer") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Timer but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Timer but is not nil && this == nil") - } - if this.Time1 != that1.Time1 { - return fmt.Errorf("Time1 this(%v) Not Equal that(%v)", this.Time1, that1.Time1) - } - if this.Time2 != that1.Time2 { - return fmt.Errorf("Time2 this(%v) Not Equal that(%v)", this.Time2, that1.Time2) - } - if !bytes.Equal(this.Data, that1.Data) { - return fmt.Errorf("Data this(%v) Not Equal that(%v)", this.Data, that1.Data) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Timer) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Timer) - if !ok { - that2, ok := that.(Timer) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Time1 != that1.Time1 { - return false - } - if this.Time2 != that1.Time2 { - return false - } - if !bytes.Equal(this.Data, that1.Data) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *MyExtendable) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MyExtendable) - if !ok { - that2, ok := that.(MyExtendable) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MyExtendable") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MyExtendable but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MyExtendable but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) - } - } else { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *MyExtendable) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MyExtendable) - if !ok { - that2, ok := that.(MyExtendable) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return false - } - } else { - return false - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *OtherExtenable) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OtherExtenable) - if !ok { - that2, ok := that.(OtherExtenable) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OtherExtenable") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OtherExtenable but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OtherExtenable but is not nil && this == nil") - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if !this.M.Equal(that1.M) { - return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) - } - } else { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *OtherExtenable) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OtherExtenable) - if !ok { - that2, ok := that.(OtherExtenable) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if !this.M.Equal(that1.M) { - return false - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return false - } - } else { - return false - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedDefinition) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedDefinition) - if !ok { - that2, ok := that.(NestedDefinition) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedDefinition") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedDefinition but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedDefinition but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.EnumField != nil && that1.EnumField != nil { - if *this.EnumField != *that1.EnumField { - return fmt.Errorf("EnumField this(%v) Not Equal that(%v)", *this.EnumField, *that1.EnumField) - } - } else if this.EnumField != nil { - return fmt.Errorf("this.EnumField == nil && that.EnumField != nil") - } else if that1.EnumField != nil { - return fmt.Errorf("EnumField this(%v) Not Equal that(%v)", this.EnumField, that1.EnumField) - } - if !this.NNM.Equal(that1.NNM) { - return fmt.Errorf("NNM this(%v) Not Equal that(%v)", this.NNM, that1.NNM) - } - if !this.NM.Equal(that1.NM) { - return fmt.Errorf("NM this(%v) Not Equal that(%v)", this.NM, that1.NM) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedDefinition) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedDefinition) - if !ok { - that2, ok := that.(NestedDefinition) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.EnumField != nil && that1.EnumField != nil { - if *this.EnumField != *that1.EnumField { - return false - } - } else if this.EnumField != nil { - return false - } else if that1.EnumField != nil { - return false - } - if !this.NNM.Equal(that1.NNM) { - return false - } - if !this.NM.Equal(that1.NM) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedDefinition_NestedMessage) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedDefinition_NestedMessage) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedDefinition_NestedMessage") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedDefinition_NestedMessage but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedDefinition_NestedMessage but is not nil && this == nil") - } - if this.NestedField1 != nil && that1.NestedField1 != nil { - if *this.NestedField1 != *that1.NestedField1 { - return fmt.Errorf("NestedField1 this(%v) Not Equal that(%v)", *this.NestedField1, *that1.NestedField1) - } - } else if this.NestedField1 != nil { - return fmt.Errorf("this.NestedField1 == nil && that.NestedField1 != nil") - } else if that1.NestedField1 != nil { - return fmt.Errorf("NestedField1 this(%v) Not Equal that(%v)", this.NestedField1, that1.NestedField1) - } - if !this.NNM.Equal(that1.NNM) { - return fmt.Errorf("NNM this(%v) Not Equal that(%v)", this.NNM, that1.NNM) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedDefinition_NestedMessage) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedDefinition_NestedMessage) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.NestedField1 != nil && that1.NestedField1 != nil { - if *this.NestedField1 != *that1.NestedField1 { - return false - } - } else if this.NestedField1 != nil { - return false - } else if that1.NestedField1 != nil { - return false - } - if !this.NNM.Equal(that1.NNM) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedDefinition_NestedMessage_NestedNestedMsg") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedDefinition_NestedMessage_NestedNestedMsg but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedDefinition_NestedMessage_NestedNestedMsg but is not nil && this == nil") - } - if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil { - if *this.NestedNestedField1 != *that1.NestedNestedField1 { - return fmt.Errorf("NestedNestedField1 this(%v) Not Equal that(%v)", *this.NestedNestedField1, *that1.NestedNestedField1) - } - } else if this.NestedNestedField1 != nil { - return fmt.Errorf("this.NestedNestedField1 == nil && that.NestedNestedField1 != nil") - } else if that1.NestedNestedField1 != nil { - return fmt.Errorf("NestedNestedField1 this(%v) Not Equal that(%v)", this.NestedNestedField1, that1.NestedNestedField1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil { - if *this.NestedNestedField1 != *that1.NestedNestedField1 { - return false - } - } else if this.NestedNestedField1 != nil { - return false - } else if that1.NestedNestedField1 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedScope) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedScope) - if !ok { - that2, ok := that.(NestedScope) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedScope") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedScope but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedScope but is not nil && this == nil") - } - if !this.A.Equal(that1.A) { - return fmt.Errorf("A this(%v) Not Equal that(%v)", this.A, that1.A) - } - if this.B != nil && that1.B != nil { - if *this.B != *that1.B { - return fmt.Errorf("B this(%v) Not Equal that(%v)", *this.B, *that1.B) - } - } else if this.B != nil { - return fmt.Errorf("this.B == nil && that.B != nil") - } else if that1.B != nil { - return fmt.Errorf("B this(%v) Not Equal that(%v)", this.B, that1.B) - } - if !this.C.Equal(that1.C) { - return fmt.Errorf("C this(%v) Not Equal that(%v)", this.C, that1.C) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedScope) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedScope) - if !ok { - that2, ok := that.(NestedScope) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.A.Equal(that1.A) { - return false - } - if this.B != nil && that1.B != nil { - if *this.B != *that1.B { - return false - } - } else if this.B != nil { - return false - } else if that1.B != nil { - return false - } - if !this.C.Equal(that1.C) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNativeDefault) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNativeDefault) - if !ok { - that2, ok := that.(NinOptNativeDefault) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNativeDefault") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNativeDefault but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNativeDefault but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4) - } - } else if this.Field4 != nil { - return fmt.Errorf("this.Field4 == nil && that.Field4 != nil") - } else if that1.Field4 != nil { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5) - } - } else if this.Field5 != nil { - return fmt.Errorf("this.Field5 == nil && that.Field5 != nil") - } else if that1.Field5 != nil { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", *this.Field8, *that1.Field8) - } - } else if this.Field8 != nil { - return fmt.Errorf("this.Field8 == nil && that.Field8 != nil") - } else if that1.Field8 != nil { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", *this.Field9, *that1.Field9) - } - } else if this.Field9 != nil { - return fmt.Errorf("this.Field9 == nil && that.Field9 != nil") - } else if that1.Field9 != nil { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", *this.Field10, *that1.Field10) - } - } else if this.Field10 != nil { - return fmt.Errorf("this.Field10 == nil && that.Field10 != nil") - } else if that1.Field10 != nil { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", *this.Field11, *that1.Field11) - } - } else if this.Field11 != nil { - return fmt.Errorf("this.Field11 == nil && that.Field11 != nil") - } else if that1.Field11 != nil { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", *this.Field12, *that1.Field12) - } - } else if this.Field12 != nil { - return fmt.Errorf("this.Field12 == nil && that.Field12 != nil") - } else if that1.Field12 != nil { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNativeDefault) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNativeDefault) - if !ok { - that2, ok := that.(NinOptNativeDefault) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return false - } - } else if this.Field4 != nil { - return false - } else if that1.Field4 != nil { - return false - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return false - } - } else if this.Field5 != nil { - return false - } else if that1.Field5 != nil { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return false - } - } else if this.Field8 != nil { - return false - } else if that1.Field8 != nil { - return false - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return false - } - } else if this.Field9 != nil { - return false - } else if that1.Field9 != nil { - return false - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return false - } - } else if this.Field10 != nil { - return false - } else if that1.Field10 != nil { - return false - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return false - } - } else if this.Field11 != nil { - return false - } else if that1.Field11 != nil { - return false - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return false - } - } else if this.Field12 != nil { - return false - } else if that1.Field12 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomContainer) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomContainer) - if !ok { - that2, ok := that.(CustomContainer) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomContainer") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomContainer but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomContainer but is not nil && this == nil") - } - if !this.CustomStruct.Equal(&that1.CustomStruct) { - return fmt.Errorf("CustomStruct this(%v) Not Equal that(%v)", this.CustomStruct, that1.CustomStruct) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomContainer) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomContainer) - if !ok { - that2, ok := that.(CustomContainer) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.CustomStruct.Equal(&that1.CustomStruct) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNidOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNidOptNative) - if !ok { - that2, ok := that.(CustomNameNidOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNidOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNidOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNidOptNative but is not nil && this == nil") - } - if this.FieldA != that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if this.FieldC != that1.FieldC { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC) - } - if this.FieldD != that1.FieldD { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", this.FieldD, that1.FieldD) - } - if this.FieldE != that1.FieldE { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE) - } - if this.FieldF != that1.FieldF { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF) - } - if this.FieldG != that1.FieldG { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG) - } - if this.FieldH != that1.FieldH { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH) - } - if this.FieldI != that1.FieldI { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI) - } - if this.FieldJ != that1.FieldJ { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ) - } - if this.FieldK != that1.FieldK { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", this.FieldK, that1.FieldK) - } - if this.FieldL != that1.FieldL { - return fmt.Errorf("FieldL this(%v) Not Equal that(%v)", this.FieldL, that1.FieldL) - } - if this.FieldM != that1.FieldM { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", this.FieldM, that1.FieldM) - } - if this.FieldN != that1.FieldN { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", this.FieldN, that1.FieldN) - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", this.FieldO, that1.FieldO) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNidOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNidOptNative) - if !ok { - that2, ok := that.(CustomNameNidOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != that1.FieldA { - return false - } - if this.FieldB != that1.FieldB { - return false - } - if this.FieldC != that1.FieldC { - return false - } - if this.FieldD != that1.FieldD { - return false - } - if this.FieldE != that1.FieldE { - return false - } - if this.FieldF != that1.FieldF { - return false - } - if this.FieldG != that1.FieldG { - return false - } - if this.FieldH != that1.FieldH { - return false - } - if this.FieldI != that1.FieldI { - return false - } - if this.FieldJ != that1.FieldJ { - return false - } - if this.FieldK != that1.FieldK { - return false - } - if this.FieldL != that1.FieldL { - return false - } - if this.FieldM != that1.FieldM { - return false - } - if this.FieldN != that1.FieldN { - return false - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinOptNative) - if !ok { - that2, ok := that.(CustomNameNinOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinOptNative but is not nil && this == nil") - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA) - } - } else if this.FieldA != nil { - return fmt.Errorf("this.FieldA == nil && that.FieldA != nil") - } else if that1.FieldA != nil { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB) - } - } else if this.FieldB != nil { - return fmt.Errorf("this.FieldB == nil && that.FieldB != nil") - } else if that1.FieldB != nil { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if this.FieldC != nil && that1.FieldC != nil { - if *this.FieldC != *that1.FieldC { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", *this.FieldC, *that1.FieldC) - } - } else if this.FieldC != nil { - return fmt.Errorf("this.FieldC == nil && that.FieldC != nil") - } else if that1.FieldC != nil { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC) - } - if this.FieldD != nil && that1.FieldD != nil { - if *this.FieldD != *that1.FieldD { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", *this.FieldD, *that1.FieldD) - } - } else if this.FieldD != nil { - return fmt.Errorf("this.FieldD == nil && that.FieldD != nil") - } else if that1.FieldD != nil { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", this.FieldD, that1.FieldD) - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", *this.FieldE, *that1.FieldE) - } - } else if this.FieldE != nil { - return fmt.Errorf("this.FieldE == nil && that.FieldE != nil") - } else if that1.FieldE != nil { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE) - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", *this.FieldF, *that1.FieldF) - } - } else if this.FieldF != nil { - return fmt.Errorf("this.FieldF == nil && that.FieldF != nil") - } else if that1.FieldF != nil { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF) - } - if this.FieldG != nil && that1.FieldG != nil { - if *this.FieldG != *that1.FieldG { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", *this.FieldG, *that1.FieldG) - } - } else if this.FieldG != nil { - return fmt.Errorf("this.FieldG == nil && that.FieldG != nil") - } else if that1.FieldG != nil { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG) - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", *this.FieldH, *that1.FieldH) - } - } else if this.FieldH != nil { - return fmt.Errorf("this.FieldH == nil && that.FieldH != nil") - } else if that1.FieldH != nil { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH) - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", *this.FieldI, *that1.FieldI) - } - } else if this.FieldI != nil { - return fmt.Errorf("this.FieldI == nil && that.FieldI != nil") - } else if that1.FieldI != nil { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI) - } - if this.FieldJ != nil && that1.FieldJ != nil { - if *this.FieldJ != *that1.FieldJ { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", *this.FieldJ, *that1.FieldJ) - } - } else if this.FieldJ != nil { - return fmt.Errorf("this.FieldJ == nil && that.FieldJ != nil") - } else if that1.FieldJ != nil { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ) - } - if this.FieldK != nil && that1.FieldK != nil { - if *this.FieldK != *that1.FieldK { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", *this.FieldK, *that1.FieldK) - } - } else if this.FieldK != nil { - return fmt.Errorf("this.FieldK == nil && that.FieldK != nil") - } else if that1.FieldK != nil { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", this.FieldK, that1.FieldK) - } - if this.FielL != nil && that1.FielL != nil { - if *this.FielL != *that1.FielL { - return fmt.Errorf("FielL this(%v) Not Equal that(%v)", *this.FielL, *that1.FielL) - } - } else if this.FielL != nil { - return fmt.Errorf("this.FielL == nil && that.FielL != nil") - } else if that1.FielL != nil { - return fmt.Errorf("FielL this(%v) Not Equal that(%v)", this.FielL, that1.FielL) - } - if this.FieldM != nil && that1.FieldM != nil { - if *this.FieldM != *that1.FieldM { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", *this.FieldM, *that1.FieldM) - } - } else if this.FieldM != nil { - return fmt.Errorf("this.FieldM == nil && that.FieldM != nil") - } else if that1.FieldM != nil { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", this.FieldM, that1.FieldM) - } - if this.FieldN != nil && that1.FieldN != nil { - if *this.FieldN != *that1.FieldN { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", *this.FieldN, *that1.FieldN) - } - } else if this.FieldN != nil { - return fmt.Errorf("this.FieldN == nil && that.FieldN != nil") - } else if that1.FieldN != nil { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", this.FieldN, that1.FieldN) - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", this.FieldO, that1.FieldO) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinOptNative) - if !ok { - that2, ok := that.(CustomNameNinOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return false - } - } else if this.FieldA != nil { - return false - } else if that1.FieldA != nil { - return false - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return false - } - } else if this.FieldB != nil { - return false - } else if that1.FieldB != nil { - return false - } - if this.FieldC != nil && that1.FieldC != nil { - if *this.FieldC != *that1.FieldC { - return false - } - } else if this.FieldC != nil { - return false - } else if that1.FieldC != nil { - return false - } - if this.FieldD != nil && that1.FieldD != nil { - if *this.FieldD != *that1.FieldD { - return false - } - } else if this.FieldD != nil { - return false - } else if that1.FieldD != nil { - return false - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return false - } - } else if this.FieldE != nil { - return false - } else if that1.FieldE != nil { - return false - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return false - } - } else if this.FieldF != nil { - return false - } else if that1.FieldF != nil { - return false - } - if this.FieldG != nil && that1.FieldG != nil { - if *this.FieldG != *that1.FieldG { - return false - } - } else if this.FieldG != nil { - return false - } else if that1.FieldG != nil { - return false - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return false - } - } else if this.FieldH != nil { - return false - } else if that1.FieldH != nil { - return false - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return false - } - } else if this.FieldI != nil { - return false - } else if that1.FieldI != nil { - return false - } - if this.FieldJ != nil && that1.FieldJ != nil { - if *this.FieldJ != *that1.FieldJ { - return false - } - } else if this.FieldJ != nil { - return false - } else if that1.FieldJ != nil { - return false - } - if this.FieldK != nil && that1.FieldK != nil { - if *this.FieldK != *that1.FieldK { - return false - } - } else if this.FieldK != nil { - return false - } else if that1.FieldK != nil { - return false - } - if this.FielL != nil && that1.FielL != nil { - if *this.FielL != *that1.FielL { - return false - } - } else if this.FielL != nil { - return false - } else if that1.FielL != nil { - return false - } - if this.FieldM != nil && that1.FieldM != nil { - if *this.FieldM != *that1.FieldM { - return false - } - } else if this.FieldM != nil { - return false - } else if that1.FieldM != nil { - return false - } - if this.FieldN != nil && that1.FieldN != nil { - if *this.FieldN != *that1.FieldN { - return false - } - } else if this.FieldN != nil { - return false - } else if that1.FieldN != nil { - return false - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinRepNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinRepNative) - if !ok { - that2, ok := that.(CustomNameNinRepNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinRepNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinRepNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinRepNative but is not nil && this == nil") - } - if len(this.FieldA) != len(that1.FieldA) { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", len(this.FieldA), len(that1.FieldA)) - } - for i := range this.FieldA { - if this.FieldA[i] != that1.FieldA[i] { - return fmt.Errorf("FieldA this[%v](%v) Not Equal that[%v](%v)", i, this.FieldA[i], i, that1.FieldA[i]) - } - } - if len(this.FieldB) != len(that1.FieldB) { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", len(this.FieldB), len(that1.FieldB)) - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return fmt.Errorf("FieldB this[%v](%v) Not Equal that[%v](%v)", i, this.FieldB[i], i, that1.FieldB[i]) - } - } - if len(this.FieldC) != len(that1.FieldC) { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", len(this.FieldC), len(that1.FieldC)) - } - for i := range this.FieldC { - if this.FieldC[i] != that1.FieldC[i] { - return fmt.Errorf("FieldC this[%v](%v) Not Equal that[%v](%v)", i, this.FieldC[i], i, that1.FieldC[i]) - } - } - if len(this.FieldD) != len(that1.FieldD) { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD)) - } - for i := range this.FieldD { - if this.FieldD[i] != that1.FieldD[i] { - return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i]) - } - } - if len(this.FieldE) != len(that1.FieldE) { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", len(this.FieldE), len(that1.FieldE)) - } - for i := range this.FieldE { - if this.FieldE[i] != that1.FieldE[i] { - return fmt.Errorf("FieldE this[%v](%v) Not Equal that[%v](%v)", i, this.FieldE[i], i, that1.FieldE[i]) - } - } - if len(this.FieldF) != len(that1.FieldF) { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", len(this.FieldF), len(that1.FieldF)) - } - for i := range this.FieldF { - if this.FieldF[i] != that1.FieldF[i] { - return fmt.Errorf("FieldF this[%v](%v) Not Equal that[%v](%v)", i, this.FieldF[i], i, that1.FieldF[i]) - } - } - if len(this.FieldG) != len(that1.FieldG) { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", len(this.FieldG), len(that1.FieldG)) - } - for i := range this.FieldG { - if this.FieldG[i] != that1.FieldG[i] { - return fmt.Errorf("FieldG this[%v](%v) Not Equal that[%v](%v)", i, this.FieldG[i], i, that1.FieldG[i]) - } - } - if len(this.FieldH) != len(that1.FieldH) { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", len(this.FieldH), len(that1.FieldH)) - } - for i := range this.FieldH { - if this.FieldH[i] != that1.FieldH[i] { - return fmt.Errorf("FieldH this[%v](%v) Not Equal that[%v](%v)", i, this.FieldH[i], i, that1.FieldH[i]) - } - } - if len(this.FieldI) != len(that1.FieldI) { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", len(this.FieldI), len(that1.FieldI)) - } - for i := range this.FieldI { - if this.FieldI[i] != that1.FieldI[i] { - return fmt.Errorf("FieldI this[%v](%v) Not Equal that[%v](%v)", i, this.FieldI[i], i, that1.FieldI[i]) - } - } - if len(this.FieldJ) != len(that1.FieldJ) { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", len(this.FieldJ), len(that1.FieldJ)) - } - for i := range this.FieldJ { - if this.FieldJ[i] != that1.FieldJ[i] { - return fmt.Errorf("FieldJ this[%v](%v) Not Equal that[%v](%v)", i, this.FieldJ[i], i, that1.FieldJ[i]) - } - } - if len(this.FieldK) != len(that1.FieldK) { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", len(this.FieldK), len(that1.FieldK)) - } - for i := range this.FieldK { - if this.FieldK[i] != that1.FieldK[i] { - return fmt.Errorf("FieldK this[%v](%v) Not Equal that[%v](%v)", i, this.FieldK[i], i, that1.FieldK[i]) - } - } - if len(this.FieldL) != len(that1.FieldL) { - return fmt.Errorf("FieldL this(%v) Not Equal that(%v)", len(this.FieldL), len(that1.FieldL)) - } - for i := range this.FieldL { - if this.FieldL[i] != that1.FieldL[i] { - return fmt.Errorf("FieldL this[%v](%v) Not Equal that[%v](%v)", i, this.FieldL[i], i, that1.FieldL[i]) - } - } - if len(this.FieldM) != len(that1.FieldM) { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", len(this.FieldM), len(that1.FieldM)) - } - for i := range this.FieldM { - if this.FieldM[i] != that1.FieldM[i] { - return fmt.Errorf("FieldM this[%v](%v) Not Equal that[%v](%v)", i, this.FieldM[i], i, that1.FieldM[i]) - } - } - if len(this.FieldN) != len(that1.FieldN) { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", len(this.FieldN), len(that1.FieldN)) - } - for i := range this.FieldN { - if this.FieldN[i] != that1.FieldN[i] { - return fmt.Errorf("FieldN this[%v](%v) Not Equal that[%v](%v)", i, this.FieldN[i], i, that1.FieldN[i]) - } - } - if len(this.FieldO) != len(that1.FieldO) { - return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", len(this.FieldO), len(that1.FieldO)) - } - for i := range this.FieldO { - if !bytes.Equal(this.FieldO[i], that1.FieldO[i]) { - return fmt.Errorf("FieldO this[%v](%v) Not Equal that[%v](%v)", i, this.FieldO[i], i, that1.FieldO[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinRepNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinRepNative) - if !ok { - that2, ok := that.(CustomNameNinRepNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.FieldA) != len(that1.FieldA) { - return false - } - for i := range this.FieldA { - if this.FieldA[i] != that1.FieldA[i] { - return false - } - } - if len(this.FieldB) != len(that1.FieldB) { - return false - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return false - } - } - if len(this.FieldC) != len(that1.FieldC) { - return false - } - for i := range this.FieldC { - if this.FieldC[i] != that1.FieldC[i] { - return false - } - } - if len(this.FieldD) != len(that1.FieldD) { - return false - } - for i := range this.FieldD { - if this.FieldD[i] != that1.FieldD[i] { - return false - } - } - if len(this.FieldE) != len(that1.FieldE) { - return false - } - for i := range this.FieldE { - if this.FieldE[i] != that1.FieldE[i] { - return false - } - } - if len(this.FieldF) != len(that1.FieldF) { - return false - } - for i := range this.FieldF { - if this.FieldF[i] != that1.FieldF[i] { - return false - } - } - if len(this.FieldG) != len(that1.FieldG) { - return false - } - for i := range this.FieldG { - if this.FieldG[i] != that1.FieldG[i] { - return false - } - } - if len(this.FieldH) != len(that1.FieldH) { - return false - } - for i := range this.FieldH { - if this.FieldH[i] != that1.FieldH[i] { - return false - } - } - if len(this.FieldI) != len(that1.FieldI) { - return false - } - for i := range this.FieldI { - if this.FieldI[i] != that1.FieldI[i] { - return false - } - } - if len(this.FieldJ) != len(that1.FieldJ) { - return false - } - for i := range this.FieldJ { - if this.FieldJ[i] != that1.FieldJ[i] { - return false - } - } - if len(this.FieldK) != len(that1.FieldK) { - return false - } - for i := range this.FieldK { - if this.FieldK[i] != that1.FieldK[i] { - return false - } - } - if len(this.FieldL) != len(that1.FieldL) { - return false - } - for i := range this.FieldL { - if this.FieldL[i] != that1.FieldL[i] { - return false - } - } - if len(this.FieldM) != len(that1.FieldM) { - return false - } - for i := range this.FieldM { - if this.FieldM[i] != that1.FieldM[i] { - return false - } - } - if len(this.FieldN) != len(that1.FieldN) { - return false - } - for i := range this.FieldN { - if this.FieldN[i] != that1.FieldN[i] { - return false - } - } - if len(this.FieldO) != len(that1.FieldO) { - return false - } - for i := range this.FieldO { - if !bytes.Equal(this.FieldO[i], that1.FieldO[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinStruct) - if !ok { - that2, ok := that.(CustomNameNinStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinStruct but is not nil && this == nil") - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA) - } - } else if this.FieldA != nil { - return fmt.Errorf("this.FieldA == nil && that.FieldA != nil") - } else if that1.FieldA != nil { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB) - } - } else if this.FieldB != nil { - return fmt.Errorf("this.FieldB == nil && that.FieldB != nil") - } else if that1.FieldB != nil { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if !this.FieldC.Equal(that1.FieldC) { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC) - } - if len(this.FieldD) != len(that1.FieldD) { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD)) - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i]) - } - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", *this.FieldE, *that1.FieldE) - } - } else if this.FieldE != nil { - return fmt.Errorf("this.FieldE == nil && that.FieldE != nil") - } else if that1.FieldE != nil { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE) - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", *this.FieldF, *that1.FieldF) - } - } else if this.FieldF != nil { - return fmt.Errorf("this.FieldF == nil && that.FieldF != nil") - } else if that1.FieldF != nil { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF) - } - if !this.FieldG.Equal(that1.FieldG) { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG) - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", *this.FieldH, *that1.FieldH) - } - } else if this.FieldH != nil { - return fmt.Errorf("this.FieldH == nil && that.FieldH != nil") - } else if that1.FieldH != nil { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH) - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", *this.FieldI, *that1.FieldI) - } - } else if this.FieldI != nil { - return fmt.Errorf("this.FieldI == nil && that.FieldI != nil") - } else if that1.FieldI != nil { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI) - } - if !bytes.Equal(this.FieldJ, that1.FieldJ) { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinStruct) - if !ok { - that2, ok := that.(CustomNameNinStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return false - } - } else if this.FieldA != nil { - return false - } else if that1.FieldA != nil { - return false - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return false - } - } else if this.FieldB != nil { - return false - } else if that1.FieldB != nil { - return false - } - if !this.FieldC.Equal(that1.FieldC) { - return false - } - if len(this.FieldD) != len(that1.FieldD) { - return false - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return false - } - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return false - } - } else if this.FieldE != nil { - return false - } else if that1.FieldE != nil { - return false - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return false - } - } else if this.FieldF != nil { - return false - } else if that1.FieldF != nil { - return false - } - if !this.FieldG.Equal(that1.FieldG) { - return false - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return false - } - } else if this.FieldH != nil { - return false - } else if that1.FieldH != nil { - return false - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return false - } - } else if this.FieldI != nil { - return false - } else if that1.FieldI != nil { - return false - } - if !bytes.Equal(this.FieldJ, that1.FieldJ) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameCustomType) - if !ok { - that2, ok := that.(CustomNameCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameCustomType but is not nil && this == nil") - } - if that1.FieldA == nil { - if this.FieldA != nil { - return fmt.Errorf("this.FieldA != nil && that1.FieldA == nil") - } - } else if !this.FieldA.Equal(*that1.FieldA) { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if that1.FieldB == nil { - if this.FieldB != nil { - return fmt.Errorf("this.FieldB != nil && that1.FieldB == nil") - } - } else if !this.FieldB.Equal(*that1.FieldB) { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if len(this.FieldC) != len(that1.FieldC) { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", len(this.FieldC), len(that1.FieldC)) - } - for i := range this.FieldC { - if !this.FieldC[i].Equal(that1.FieldC[i]) { - return fmt.Errorf("FieldC this[%v](%v) Not Equal that[%v](%v)", i, this.FieldC[i], i, that1.FieldC[i]) - } - } - if len(this.FieldD) != len(that1.FieldD) { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD)) - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameCustomType) - if !ok { - that2, ok := that.(CustomNameCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.FieldA == nil { - if this.FieldA != nil { - return false - } - } else if !this.FieldA.Equal(*that1.FieldA) { - return false - } - if that1.FieldB == nil { - if this.FieldB != nil { - return false - } - } else if !this.FieldB.Equal(*that1.FieldB) { - return false - } - if len(this.FieldC) != len(that1.FieldC) { - return false - } - for i := range this.FieldC { - if !this.FieldC[i].Equal(that1.FieldC[i]) { - return false - } - } - if len(this.FieldD) != len(that1.FieldD) { - return false - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinEmbeddedStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinEmbeddedStructUnion) - if !ok { - that2, ok := that.(CustomNameNinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinEmbeddedStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinEmbeddedStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinEmbeddedStructUnion but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.FieldA.Equal(that1.FieldA) { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB) - } - } else if this.FieldB != nil { - return fmt.Errorf("this.FieldB == nil && that.FieldB != nil") - } else if that1.FieldB != nil { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinEmbeddedStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinEmbeddedStructUnion) - if !ok { - that2, ok := that.(CustomNameNinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.FieldA.Equal(that1.FieldA) { - return false - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return false - } - } else if this.FieldB != nil { - return false - } else if that1.FieldB != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameEnum) - if !ok { - that2, ok := that.(CustomNameEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameEnum but is not nil && this == nil") - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA) - } - } else if this.FieldA != nil { - return fmt.Errorf("this.FieldA == nil && that.FieldA != nil") - } else if that1.FieldA != nil { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if len(this.FieldB) != len(that1.FieldB) { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", len(this.FieldB), len(that1.FieldB)) - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return fmt.Errorf("FieldB this[%v](%v) Not Equal that[%v](%v)", i, this.FieldB[i], i, that1.FieldB[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameEnum) - if !ok { - that2, ok := that.(CustomNameEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return false - } - } else if this.FieldA != nil { - return false - } else if that1.FieldA != nil { - return false - } - if len(this.FieldB) != len(that1.FieldB) { - return false - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NoExtensionsMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NoExtensionsMap) - if !ok { - that2, ok := that.(NoExtensionsMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NoExtensionsMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NoExtensionsMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NoExtensionsMap but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_extensions, that1.XXX_extensions) { - return fmt.Errorf("XXX_extensions this(%v) Not Equal that(%v)", this.XXX_extensions, that1.XXX_extensions) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NoExtensionsMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NoExtensionsMap) - if !ok { - that2, ok := that.(NoExtensionsMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if !bytes.Equal(this.XXX_extensions, that1.XXX_extensions) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Unrecognized) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Unrecognized) - if !ok { - that2, ok := that.(Unrecognized) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Unrecognized") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Unrecognized but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Unrecognized but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *Unrecognized) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Unrecognized) - if !ok { - that2, ok := that.(Unrecognized) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - return true -} -func (this *UnrecognizedWithInner) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithInner) - if !ok { - that2, ok := that.(UnrecognizedWithInner) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithInner") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithInner but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithInner but is not nil && this == nil") - } - if len(this.Embedded) != len(that1.Embedded) { - return fmt.Errorf("Embedded this(%v) Not Equal that(%v)", len(this.Embedded), len(that1.Embedded)) - } - for i := range this.Embedded { - if !this.Embedded[i].Equal(that1.Embedded[i]) { - return fmt.Errorf("Embedded this[%v](%v) Not Equal that[%v](%v)", i, this.Embedded[i], i, that1.Embedded[i]) - } - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *UnrecognizedWithInner) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithInner) - if !ok { - that2, ok := that.(UnrecognizedWithInner) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Embedded) != len(that1.Embedded) { - return false - } - for i := range this.Embedded { - if !this.Embedded[i].Equal(that1.Embedded[i]) { - return false - } - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *UnrecognizedWithInner_Inner) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithInner_Inner) - if !ok { - that2, ok := that.(UnrecognizedWithInner_Inner) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithInner_Inner") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithInner_Inner but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithInner_Inner but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *UnrecognizedWithInner_Inner) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithInner_Inner) - if !ok { - that2, ok := that.(UnrecognizedWithInner_Inner) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - return true -} -func (this *UnrecognizedWithEmbed) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithEmbed) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithEmbed") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithEmbed but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithEmbed but is not nil && this == nil") - } - if !this.UnrecognizedWithEmbed_Embedded.Equal(&that1.UnrecognizedWithEmbed_Embedded) { - return fmt.Errorf("UnrecognizedWithEmbed_Embedded this(%v) Not Equal that(%v)", this.UnrecognizedWithEmbed_Embedded, that1.UnrecognizedWithEmbed_Embedded) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *UnrecognizedWithEmbed) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithEmbed) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.UnrecognizedWithEmbed_Embedded.Equal(&that1.UnrecognizedWithEmbed_Embedded) { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *UnrecognizedWithEmbed_Embedded) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithEmbed_Embedded) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed_Embedded) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithEmbed_Embedded") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithEmbed_Embedded but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithEmbed_Embedded but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *UnrecognizedWithEmbed_Embedded) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithEmbed_Embedded) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed_Embedded) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - return true -} -func (this *Node) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Node) - if !ok { - that2, ok := that.(Node) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Node") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Node but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Node but is not nil && this == nil") - } - if this.Label != nil && that1.Label != nil { - if *this.Label != *that1.Label { - return fmt.Errorf("Label this(%v) Not Equal that(%v)", *this.Label, *that1.Label) - } - } else if this.Label != nil { - return fmt.Errorf("this.Label == nil && that.Label != nil") - } else if that1.Label != nil { - return fmt.Errorf("Label this(%v) Not Equal that(%v)", this.Label, that1.Label) - } - if len(this.Children) != len(that1.Children) { - return fmt.Errorf("Children this(%v) Not Equal that(%v)", len(this.Children), len(that1.Children)) - } - for i := range this.Children { - if !this.Children[i].Equal(that1.Children[i]) { - return fmt.Errorf("Children this[%v](%v) Not Equal that[%v](%v)", i, this.Children[i], i, that1.Children[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Node) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Node) - if !ok { - that2, ok := that.(Node) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Label != nil && that1.Label != nil { - if *this.Label != *that1.Label { - return false - } - } else if this.Label != nil { - return false - } else if that1.Label != nil { - return false - } - if len(this.Children) != len(that1.Children) { - return false - } - for i := range this.Children { - if !this.Children[i].Equal(that1.Children[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NonByteCustomType) - if !ok { - that2, ok := that.(NonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") - } - if that1.Field1 == nil { - if this.Field1 != nil { - return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") - } - } else if !this.Field1.Equal(*that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NonByteCustomType) - if !ok { - that2, ok := that.(NonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Field1 == nil { - if this.Field1 != nil { - return false - } - } else if !this.Field1.Equal(*that1.Field1) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptNonByteCustomType) - if !ok { - that2, ok := that.(NidOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") - } - if !this.Field1.Equal(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptNonByteCustomType) - if !ok { - that2, ok := that.(NidOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(that1.Field1) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNonByteCustomType) - if !ok { - that2, ok := that.(NinOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") - } - if that1.Field1 == nil { - if this.Field1 != nil { - return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") - } - } else if !this.Field1.Equal(*that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNonByteCustomType) - if !ok { - that2, ok := that.(NinOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Field1 == nil { - if this.Field1 != nil { - return false - } - } else if !this.Field1.Equal(*that1.Field1) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepNonByteCustomType) - if !ok { - that2, ok := that.(NidRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepNonByteCustomType) - if !ok { - that2, ok := that.(NidRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepNonByteCustomType) - if !ok { - that2, ok := that.(NinRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepNonByteCustomType) - if !ok { - that2, ok := that.(NinRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *ProtoType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ProtoType) - if !ok { - that2, ok := that.(ProtoType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ProtoType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ProtoType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *ProtoType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ProtoType) - if !ok { - that2, ok := that.(ProtoType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() int32 - GetField4() int64 - GetField5() uint32 - GetField6() uint64 - GetField7() int32 - GetField8() int64 - GetField9() uint32 - GetField10() int32 - GetField11() uint64 - GetField12() int64 - GetField13() bool - GetField14() string - GetField15() []byte -} - -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNativeFromFace(this) -} - -func (this *NidOptNative) GetField1() float64 { - return this.Field1 -} - -func (this *NidOptNative) GetField2() float32 { - return this.Field2 -} - -func (this *NidOptNative) GetField3() int32 { - return this.Field3 -} - -func (this *NidOptNative) GetField4() int64 { - return this.Field4 -} - -func (this *NidOptNative) GetField5() uint32 { - return this.Field5 -} - -func (this *NidOptNative) GetField6() uint64 { - return this.Field6 -} - -func (this *NidOptNative) GetField7() int32 { - return this.Field7 -} - -func (this *NidOptNative) GetField8() int64 { - return this.Field8 -} - -func (this *NidOptNative) GetField9() uint32 { - return this.Field9 -} - -func (this *NidOptNative) GetField10() int32 { - return this.Field10 -} - -func (this *NidOptNative) GetField11() uint64 { - return this.Field11 -} - -func (this *NidOptNative) GetField12() int64 { - return this.Field12 -} - -func (this *NidOptNative) GetField13() bool { - return this.Field13 -} - -func (this *NidOptNative) GetField14() string { - return this.Field14 -} - -func (this *NidOptNative) GetField15() []byte { - return this.Field15 -} - -func NewNidOptNativeFromFace(that NidOptNativeFace) *NidOptNative { - this := &NidOptNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *int32 - GetField4() *int64 - GetField5() *uint32 - GetField6() *uint64 - GetField7() *int32 - GetField8() *int64 - GetField9() *uint32 - GetField10() *int32 - GetField11() *uint64 - GetField12() *int64 - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptNativeFromFace(this) -} - -func (this *NinOptNative) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptNative) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptNative) GetField3() *int32 { - return this.Field3 -} - -func (this *NinOptNative) GetField4() *int64 { - return this.Field4 -} - -func (this *NinOptNative) GetField5() *uint32 { - return this.Field5 -} - -func (this *NinOptNative) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptNative) GetField7() *int32 { - return this.Field7 -} - -func (this *NinOptNative) GetField8() *int64 { - return this.Field8 -} - -func (this *NinOptNative) GetField9() *uint32 { - return this.Field9 -} - -func (this *NinOptNative) GetField10() *int32 { - return this.Field10 -} - -func (this *NinOptNative) GetField11() *uint64 { - return this.Field11 -} - -func (this *NinOptNative) GetField12() *int64 { - return this.Field12 -} - -func (this *NinOptNative) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptNative) GetField14() *string { - return this.Field14 -} - -func (this *NinOptNative) GetField15() []byte { - return this.Field15 -} - -func NewNinOptNativeFromFace(that NinOptNativeFace) *NinOptNative { - this := &NinOptNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NidRepNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepNativeFromFace(this) -} - -func (this *NidRepNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NidRepNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NidRepNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NidRepNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NidRepNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NidRepNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NidRepNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NidRepNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NidRepNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NidRepNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NidRepNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NidRepNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NidRepNative) GetField13() []bool { - return this.Field13 -} - -func (this *NidRepNative) GetField14() []string { - return this.Field14 -} - -func (this *NidRepNative) GetField15() [][]byte { - return this.Field15 -} - -func NewNidRepNativeFromFace(that NidRepNativeFace) *NidRepNative { - this := &NidRepNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NinRepNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepNativeFromFace(this) -} - -func (this *NinRepNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NinRepNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NinRepNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NinRepNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NinRepNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NinRepNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NinRepNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NinRepNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NinRepNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NinRepNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NinRepNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NinRepNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NinRepNative) GetField13() []bool { - return this.Field13 -} - -func (this *NinRepNative) GetField14() []string { - return this.Field14 -} - -func (this *NinRepNative) GetField15() [][]byte { - return this.Field15 -} - -func NewNinRepNativeFromFace(that NinRepNativeFace) *NinRepNative { - this := &NinRepNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool -} - -func (this *NidRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepPackedNativeFromFace(this) -} - -func (this *NidRepPackedNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NidRepPackedNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NidRepPackedNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NidRepPackedNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NidRepPackedNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NidRepPackedNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NidRepPackedNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NidRepPackedNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NidRepPackedNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NidRepPackedNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NidRepPackedNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NidRepPackedNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NidRepPackedNative) GetField13() []bool { - return this.Field13 -} - -func NewNidRepPackedNativeFromFace(that NidRepPackedNativeFace) *NidRepPackedNative { - this := &NidRepPackedNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - return this -} - -type NinRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool -} - -func (this *NinRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepPackedNativeFromFace(this) -} - -func (this *NinRepPackedNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NinRepPackedNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NinRepPackedNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NinRepPackedNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NinRepPackedNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NinRepPackedNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NinRepPackedNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NinRepPackedNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NinRepPackedNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NinRepPackedNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NinRepPackedNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NinRepPackedNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NinRepPackedNative) GetField13() []bool { - return this.Field13 -} - -func NewNinRepPackedNativeFromFace(that NinRepPackedNativeFace) *NinRepPackedNative { - this := &NinRepPackedNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - return this -} - -type NidOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() NidOptNative - GetField4() NinOptNative - GetField6() uint64 - GetField7() int32 - GetField8() NidOptNative - GetField13() bool - GetField14() string - GetField15() []byte -} - -func (this *NidOptStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptStructFromFace(this) -} - -func (this *NidOptStruct) GetField1() float64 { - return this.Field1 -} - -func (this *NidOptStruct) GetField2() float32 { - return this.Field2 -} - -func (this *NidOptStruct) GetField3() NidOptNative { - return this.Field3 -} - -func (this *NidOptStruct) GetField4() NinOptNative { - return this.Field4 -} - -func (this *NidOptStruct) GetField6() uint64 { - return this.Field6 -} - -func (this *NidOptStruct) GetField7() int32 { - return this.Field7 -} - -func (this *NidOptStruct) GetField8() NidOptNative { - return this.Field8 -} - -func (this *NidOptStruct) GetField13() bool { - return this.Field13 -} - -func (this *NidOptStruct) GetField14() string { - return this.Field14 -} - -func (this *NidOptStruct) GetField15() []byte { - return this.Field15 -} - -func NewNidOptStructFromFace(that NidOptStructFace) *NidOptStruct { - this := &NidOptStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *NidOptNative - GetField4() *NinOptNative - GetField6() *uint64 - GetField7() *int32 - GetField8() *NidOptNative - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptStructFromFace(this) -} - -func (this *NinOptStruct) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptStruct) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptStruct) GetField3() *NidOptNative { - return this.Field3 -} - -func (this *NinOptStruct) GetField4() *NinOptNative { - return this.Field4 -} - -func (this *NinOptStruct) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptStruct) GetField7() *int32 { - return this.Field7 -} - -func (this *NinOptStruct) GetField8() *NidOptNative { - return this.Field8 -} - -func (this *NinOptStruct) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptStruct) GetField14() *string { - return this.Field14 -} - -func (this *NinOptStruct) GetField15() []byte { - return this.Field15 -} - -func NewNinOptStructFromFace(that NinOptStructFace) *NinOptStruct { - this := &NinOptStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []NidOptNative - GetField4() []NinOptNative - GetField6() []uint64 - GetField7() []int32 - GetField8() []NidOptNative - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NidRepStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepStructFromFace(this) -} - -func (this *NidRepStruct) GetField1() []float64 { - return this.Field1 -} - -func (this *NidRepStruct) GetField2() []float32 { - return this.Field2 -} - -func (this *NidRepStruct) GetField3() []NidOptNative { - return this.Field3 -} - -func (this *NidRepStruct) GetField4() []NinOptNative { - return this.Field4 -} - -func (this *NidRepStruct) GetField6() []uint64 { - return this.Field6 -} - -func (this *NidRepStruct) GetField7() []int32 { - return this.Field7 -} - -func (this *NidRepStruct) GetField8() []NidOptNative { - return this.Field8 -} - -func (this *NidRepStruct) GetField13() []bool { - return this.Field13 -} - -func (this *NidRepStruct) GetField14() []string { - return this.Field14 -} - -func (this *NidRepStruct) GetField15() [][]byte { - return this.Field15 -} - -func NewNidRepStructFromFace(that NidRepStructFace) *NidRepStruct { - this := &NidRepStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []*NidOptNative - GetField4() []*NinOptNative - GetField6() []uint64 - GetField7() []int32 - GetField8() []*NidOptNative - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NinRepStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepStructFromFace(this) -} - -func (this *NinRepStruct) GetField1() []float64 { - return this.Field1 -} - -func (this *NinRepStruct) GetField2() []float32 { - return this.Field2 -} - -func (this *NinRepStruct) GetField3() []*NidOptNative { - return this.Field3 -} - -func (this *NinRepStruct) GetField4() []*NinOptNative { - return this.Field4 -} - -func (this *NinRepStruct) GetField6() []uint64 { - return this.Field6 -} - -func (this *NinRepStruct) GetField7() []int32 { - return this.Field7 -} - -func (this *NinRepStruct) GetField8() []*NidOptNative { - return this.Field8 -} - -func (this *NinRepStruct) GetField13() []bool { - return this.Field13 -} - -func (this *NinRepStruct) GetField14() []string { - return this.Field14 -} - -func (this *NinRepStruct) GetField15() [][]byte { - return this.Field15 -} - -func NewNinRepStructFromFace(that NinRepStructFace) *NinRepStruct { - this := &NinRepStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetField200() NidOptNative - GetField210() bool -} - -func (this *NidEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidEmbeddedStructFromFace(this) -} - -func (this *NidEmbeddedStruct) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *NidEmbeddedStruct) GetField200() NidOptNative { - return this.Field200 -} - -func (this *NidEmbeddedStruct) GetField210() bool { - return this.Field210 -} - -func NewNidEmbeddedStructFromFace(that NidEmbeddedStructFace) *NidEmbeddedStruct { - this := &NidEmbeddedStruct{} - this.NidOptNative = that.GetNidOptNative() - this.Field200 = that.GetField200() - this.Field210 = that.GetField210() - return this -} - -type NinEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetField200() *NidOptNative - GetField210() *bool -} - -func (this *NinEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinEmbeddedStructFromFace(this) -} - -func (this *NinEmbeddedStruct) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *NinEmbeddedStruct) GetField200() *NidOptNative { - return this.Field200 -} - -func (this *NinEmbeddedStruct) GetField210() *bool { - return this.Field210 -} - -func NewNinEmbeddedStructFromFace(that NinEmbeddedStructFace) *NinEmbeddedStruct { - this := &NinEmbeddedStruct{} - this.NidOptNative = that.GetNidOptNative() - this.Field200 = that.GetField200() - this.Field210 = that.GetField210() - return this -} - -type NidNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() NidOptStruct - GetField2() []NidRepStruct -} - -func (this *NidNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidNestedStructFromFace(this) -} - -func (this *NidNestedStruct) GetField1() NidOptStruct { - return this.Field1 -} - -func (this *NidNestedStruct) GetField2() []NidRepStruct { - return this.Field2 -} - -func NewNidNestedStructFromFace(that NidNestedStructFace) *NidNestedStruct { - this := &NidNestedStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - return this -} - -type NinNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *NinOptStruct - GetField2() []*NinRepStruct -} - -func (this *NinNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinNestedStructFromFace(this) -} - -func (this *NinNestedStruct) GetField1() *NinOptStruct { - return this.Field1 -} - -func (this *NinNestedStruct) GetField2() []*NinRepStruct { - return this.Field2 -} - -func NewNinNestedStructFromFace(that NinNestedStructFace) *NinNestedStruct { - this := &NinNestedStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - return this -} - -type NidOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() Uuid - GetValue() github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NidOptCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptCustomFromFace(this) -} - -func (this *NidOptCustom) GetId() Uuid { - return this.Id -} - -func (this *NidOptCustom) GetValue() github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNidOptCustomFromFace(that NidOptCustomFace) *NidOptCustom { - this := &NidOptCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type CustomDashFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes -} - -func (this *CustomDash) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomDash) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomDashFromFace(this) -} - -func (this *CustomDash) GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes { - return this.Value -} - -func NewCustomDashFromFace(that CustomDashFace) *CustomDash { - this := &CustomDash{} - this.Value = that.GetValue() - return this -} - -type NinOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() *Uuid - GetValue() *github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NinOptCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptCustomFromFace(this) -} - -func (this *NinOptCustom) GetId() *Uuid { - return this.Id -} - -func (this *NinOptCustom) GetValue() *github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNinOptCustomFromFace(that NinOptCustomFace) *NinOptCustom { - this := &NinOptCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type NidRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() []Uuid - GetValue() []github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NidRepCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepCustomFromFace(this) -} - -func (this *NidRepCustom) GetId() []Uuid { - return this.Id -} - -func (this *NidRepCustom) GetValue() []github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNidRepCustomFromFace(that NidRepCustomFace) *NidRepCustom { - this := &NidRepCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type NinRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() []Uuid - GetValue() []github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NinRepCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepCustomFromFace(this) -} - -func (this *NinRepCustom) GetId() []Uuid { - return this.Id -} - -func (this *NinRepCustom) GetValue() []github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNinRepCustomFromFace(that NinRepCustomFace) *NinRepCustom { - this := &NinRepCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type NinOptNativeUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *int32 - GetField4() *int64 - GetField5() *uint32 - GetField6() *uint64 - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptNativeUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptNativeUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptNativeUnionFromFace(this) -} - -func (this *NinOptNativeUnion) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptNativeUnion) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptNativeUnion) GetField3() *int32 { - return this.Field3 -} - -func (this *NinOptNativeUnion) GetField4() *int64 { - return this.Field4 -} - -func (this *NinOptNativeUnion) GetField5() *uint32 { - return this.Field5 -} - -func (this *NinOptNativeUnion) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptNativeUnion) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptNativeUnion) GetField14() *string { - return this.Field14 -} - -func (this *NinOptNativeUnion) GetField15() []byte { - return this.Field15 -} - -func NewNinOptNativeUnionFromFace(that NinOptNativeUnionFace) *NinOptNativeUnion { - this := &NinOptNativeUnion{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinOptStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *NidOptNative - GetField4() *NinOptNative - GetField6() *uint64 - GetField7() *int32 - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptStructUnionFromFace(this) -} - -func (this *NinOptStructUnion) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptStructUnion) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptStructUnion) GetField3() *NidOptNative { - return this.Field3 -} - -func (this *NinOptStructUnion) GetField4() *NinOptNative { - return this.Field4 -} - -func (this *NinOptStructUnion) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptStructUnion) GetField7() *int32 { - return this.Field7 -} - -func (this *NinOptStructUnion) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptStructUnion) GetField14() *string { - return this.Field14 -} - -func (this *NinOptStructUnion) GetField15() []byte { - return this.Field15 -} - -func NewNinOptStructUnionFromFace(that NinOptStructUnionFace) *NinOptStructUnion { - this := &NinOptStructUnion{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetField200() *NinOptNative - GetField210() *bool -} - -func (this *NinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinEmbeddedStructUnionFromFace(this) -} - -func (this *NinEmbeddedStructUnion) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *NinEmbeddedStructUnion) GetField200() *NinOptNative { - return this.Field200 -} - -func (this *NinEmbeddedStructUnion) GetField210() *bool { - return this.Field210 -} - -func NewNinEmbeddedStructUnionFromFace(that NinEmbeddedStructUnionFace) *NinEmbeddedStructUnion { - this := &NinEmbeddedStructUnion{} - this.NidOptNative = that.GetNidOptNative() - this.Field200 = that.GetField200() - this.Field210 = that.GetField210() - return this -} - -type NinNestedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *NinOptNativeUnion - GetField2() *NinOptStructUnion - GetField3() *NinEmbeddedStructUnion -} - -func (this *NinNestedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinNestedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinNestedStructUnionFromFace(this) -} - -func (this *NinNestedStructUnion) GetField1() *NinOptNativeUnion { - return this.Field1 -} - -func (this *NinNestedStructUnion) GetField2() *NinOptStructUnion { - return this.Field2 -} - -func (this *NinNestedStructUnion) GetField3() *NinEmbeddedStructUnion { - return this.Field3 -} - -func NewNinNestedStructUnionFromFace(that NinNestedStructUnionFace) *NinNestedStructUnion { - this := &NinNestedStructUnion{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type TreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetOr() *OrBranch - GetAnd() *AndBranch - GetLeaf() *Leaf -} - -func (this *Tree) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Tree) TestProto() github_com_gogo_protobuf_proto.Message { - return NewTreeFromFace(this) -} - -func (this *Tree) GetOr() *OrBranch { - return this.Or -} - -func (this *Tree) GetAnd() *AndBranch { - return this.And -} - -func (this *Tree) GetLeaf() *Leaf { - return this.Leaf -} - -func NewTreeFromFace(that TreeFace) *Tree { - this := &Tree{} - this.Or = that.GetOr() - this.And = that.GetAnd() - this.Leaf = that.GetLeaf() - return this -} - -type OrBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() Tree - GetRight() Tree -} - -func (this *OrBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *OrBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewOrBranchFromFace(this) -} - -func (this *OrBranch) GetLeft() Tree { - return this.Left -} - -func (this *OrBranch) GetRight() Tree { - return this.Right -} - -func NewOrBranchFromFace(that OrBranchFace) *OrBranch { - this := &OrBranch{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type AndBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() Tree - GetRight() Tree -} - -func (this *AndBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AndBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAndBranchFromFace(this) -} - -func (this *AndBranch) GetLeft() Tree { - return this.Left -} - -func (this *AndBranch) GetRight() Tree { - return this.Right -} - -func NewAndBranchFromFace(that AndBranchFace) *AndBranch { - this := &AndBranch{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type LeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetValue() int64 - GetStrValue() string -} - -func (this *Leaf) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Leaf) TestProto() github_com_gogo_protobuf_proto.Message { - return NewLeafFromFace(this) -} - -func (this *Leaf) GetValue() int64 { - return this.Value -} - -func (this *Leaf) GetStrValue() string { - return this.StrValue -} - -func NewLeafFromFace(that LeafFace) *Leaf { - this := &Leaf{} - this.Value = that.GetValue() - this.StrValue = that.GetStrValue() - return this -} - -type DeepTreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetDown() *ADeepBranch - GetAnd() *AndDeepBranch - GetLeaf() *DeepLeaf -} - -func (this *DeepTree) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *DeepTree) TestProto() github_com_gogo_protobuf_proto.Message { - return NewDeepTreeFromFace(this) -} - -func (this *DeepTree) GetDown() *ADeepBranch { - return this.Down -} - -func (this *DeepTree) GetAnd() *AndDeepBranch { - return this.And -} - -func (this *DeepTree) GetLeaf() *DeepLeaf { - return this.Leaf -} - -func NewDeepTreeFromFace(that DeepTreeFace) *DeepTree { - this := &DeepTree{} - this.Down = that.GetDown() - this.And = that.GetAnd() - this.Leaf = that.GetLeaf() - return this -} - -type ADeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetDown() DeepTree -} - -func (this *ADeepBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ADeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewADeepBranchFromFace(this) -} - -func (this *ADeepBranch) GetDown() DeepTree { - return this.Down -} - -func NewADeepBranchFromFace(that ADeepBranchFace) *ADeepBranch { - this := &ADeepBranch{} - this.Down = that.GetDown() - return this -} - -type AndDeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() DeepTree - GetRight() DeepTree -} - -func (this *AndDeepBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AndDeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAndDeepBranchFromFace(this) -} - -func (this *AndDeepBranch) GetLeft() DeepTree { - return this.Left -} - -func (this *AndDeepBranch) GetRight() DeepTree { - return this.Right -} - -func NewAndDeepBranchFromFace(that AndDeepBranchFace) *AndDeepBranch { - this := &AndDeepBranch{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type DeepLeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetTree() Tree -} - -func (this *DeepLeaf) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *DeepLeaf) TestProto() github_com_gogo_protobuf_proto.Message { - return NewDeepLeafFromFace(this) -} - -func (this *DeepLeaf) GetTree() Tree { - return this.Tree -} - -func NewDeepLeafFromFace(that DeepLeafFace) *DeepLeaf { - this := &DeepLeaf{} - this.Tree = that.GetTree() - return this -} - -type NilFace interface { - Proto() github_com_gogo_protobuf_proto.Message -} - -func (this *Nil) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Nil) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNilFromFace(this) -} - -func NewNilFromFace(that NilFace) *Nil { - this := &Nil{} - return this -} - -type NidOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() TheTestEnum -} - -func (this *NidOptEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptEnumFromFace(this) -} - -func (this *NidOptEnum) GetField1() TheTestEnum { - return this.Field1 -} - -func NewNidOptEnumFromFace(that NidOptEnumFace) *NidOptEnum { - this := &NidOptEnum{} - this.Field1 = that.GetField1() - return this -} - -type NinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *TheTestEnum - GetField2() *YetAnotherTestEnum - GetField3() *YetYetAnotherTestEnum -} - -func (this *NinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptEnumFromFace(this) -} - -func (this *NinOptEnum) GetField1() *TheTestEnum { - return this.Field1 -} - -func (this *NinOptEnum) GetField2() *YetAnotherTestEnum { - return this.Field2 -} - -func (this *NinOptEnum) GetField3() *YetYetAnotherTestEnum { - return this.Field3 -} - -func NewNinOptEnumFromFace(that NinOptEnumFace) *NinOptEnum { - this := &NinOptEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type NidRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []TheTestEnum - GetField2() []YetAnotherTestEnum - GetField3() []YetYetAnotherTestEnum -} - -func (this *NidRepEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepEnumFromFace(this) -} - -func (this *NidRepEnum) GetField1() []TheTestEnum { - return this.Field1 -} - -func (this *NidRepEnum) GetField2() []YetAnotherTestEnum { - return this.Field2 -} - -func (this *NidRepEnum) GetField3() []YetYetAnotherTestEnum { - return this.Field3 -} - -func NewNidRepEnumFromFace(that NidRepEnumFace) *NidRepEnum { - this := &NidRepEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type NinRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []TheTestEnum - GetField2() []YetAnotherTestEnum - GetField3() []YetYetAnotherTestEnum -} - -func (this *NinRepEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepEnumFromFace(this) -} - -func (this *NinRepEnum) GetField1() []TheTestEnum { - return this.Field1 -} - -func (this *NinRepEnum) GetField2() []YetAnotherTestEnum { - return this.Field2 -} - -func (this *NinRepEnum) GetField3() []YetYetAnotherTestEnum { - return this.Field3 -} - -func NewNinRepEnumFromFace(that NinRepEnumFace) *NinRepEnum { - this := &NinRepEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type AnotherNinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *AnotherTestEnum - GetField2() *YetAnotherTestEnum - GetField3() *YetYetAnotherTestEnum -} - -func (this *AnotherNinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AnotherNinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAnotherNinOptEnumFromFace(this) -} - -func (this *AnotherNinOptEnum) GetField1() *AnotherTestEnum { - return this.Field1 -} - -func (this *AnotherNinOptEnum) GetField2() *YetAnotherTestEnum { - return this.Field2 -} - -func (this *AnotherNinOptEnum) GetField3() *YetYetAnotherTestEnum { - return this.Field3 -} - -func NewAnotherNinOptEnumFromFace(that AnotherNinOptEnumFace) *AnotherNinOptEnum { - this := &AnotherNinOptEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type TimerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetTime1() int64 - GetTime2() int64 - GetData() []byte -} - -func (this *Timer) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Timer) TestProto() github_com_gogo_protobuf_proto.Message { - return NewTimerFromFace(this) -} - -func (this *Timer) GetTime1() int64 { - return this.Time1 -} - -func (this *Timer) GetTime2() int64 { - return this.Time2 -} - -func (this *Timer) GetData() []byte { - return this.Data -} - -func NewTimerFromFace(that TimerFace) *Timer { - this := &Timer{} - this.Time1 = that.GetTime1() - this.Time2 = that.GetTime2() - this.Data = that.GetData() - return this -} - -type NestedDefinitionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *int64 - GetEnumField() *NestedDefinition_NestedEnum - GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg - GetNM() *NestedDefinition_NestedMessage -} - -func (this *NestedDefinition) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedDefinition) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedDefinitionFromFace(this) -} - -func (this *NestedDefinition) GetField1() *int64 { - return this.Field1 -} - -func (this *NestedDefinition) GetEnumField() *NestedDefinition_NestedEnum { - return this.EnumField -} - -func (this *NestedDefinition) GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg { - return this.NNM -} - -func (this *NestedDefinition) GetNM() *NestedDefinition_NestedMessage { - return this.NM -} - -func NewNestedDefinitionFromFace(that NestedDefinitionFace) *NestedDefinition { - this := &NestedDefinition{} - this.Field1 = that.GetField1() - this.EnumField = that.GetEnumField() - this.NNM = that.GetNNM() - this.NM = that.GetNM() - return this -} - -type NestedDefinition_NestedMessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNestedField1() *uint64 - GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg -} - -func (this *NestedDefinition_NestedMessage) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedDefinition_NestedMessage) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedDefinition_NestedMessageFromFace(this) -} - -func (this *NestedDefinition_NestedMessage) GetNestedField1() *uint64 { - return this.NestedField1 -} - -func (this *NestedDefinition_NestedMessage) GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg { - return this.NNM -} - -func NewNestedDefinition_NestedMessageFromFace(that NestedDefinition_NestedMessageFace) *NestedDefinition_NestedMessage { - this := &NestedDefinition_NestedMessage{} - this.NestedField1 = that.GetNestedField1() - this.NNM = that.GetNNM() - return this -} - -type NestedDefinition_NestedMessage_NestedNestedMsgFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNestedNestedField1() *string -} - -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(this) -} - -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) GetNestedNestedField1() *string { - return this.NestedNestedField1 -} - -func NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(that NestedDefinition_NestedMessage_NestedNestedMsgFace) *NestedDefinition_NestedMessage_NestedNestedMsg { - this := &NestedDefinition_NestedMessage_NestedNestedMsg{} - this.NestedNestedField1 = that.GetNestedNestedField1() - return this -} - -type NestedScopeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetA() *NestedDefinition_NestedMessage_NestedNestedMsg - GetB() *NestedDefinition_NestedEnum - GetC() *NestedDefinition_NestedMessage -} - -func (this *NestedScope) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedScope) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedScopeFromFace(this) -} - -func (this *NestedScope) GetA() *NestedDefinition_NestedMessage_NestedNestedMsg { - return this.A -} - -func (this *NestedScope) GetB() *NestedDefinition_NestedEnum { - return this.B -} - -func (this *NestedScope) GetC() *NestedDefinition_NestedMessage { - return this.C -} - -func NewNestedScopeFromFace(that NestedScopeFace) *NestedScope { - this := &NestedScope{} - this.A = that.GetA() - this.B = that.GetB() - this.C = that.GetC() - return this -} - -type CustomContainerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetCustomStruct() NidOptCustom -} - -func (this *CustomContainer) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomContainer) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomContainerFromFace(this) -} - -func (this *CustomContainer) GetCustomStruct() NidOptCustom { - return this.CustomStruct -} - -func NewCustomContainerFromFace(that CustomContainerFace) *CustomContainer { - this := &CustomContainer{} - this.CustomStruct = that.GetCustomStruct() - return this -} - -type CustomNameNidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() float64 - GetFieldB() float32 - GetFieldC() int32 - GetFieldD() int64 - GetFieldE() uint32 - GetFieldF() uint64 - GetFieldG() int32 - GetFieldH() int64 - GetFieldI() uint32 - GetFieldJ() int32 - GetFieldK() uint64 - GetFieldL() int64 - GetFieldM() bool - GetFieldN() string - GetFieldO() []byte -} - -func (this *CustomNameNidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNidOptNativeFromFace(this) -} - -func (this *CustomNameNidOptNative) GetFieldA() float64 { - return this.FieldA -} - -func (this *CustomNameNidOptNative) GetFieldB() float32 { - return this.FieldB -} - -func (this *CustomNameNidOptNative) GetFieldC() int32 { - return this.FieldC -} - -func (this *CustomNameNidOptNative) GetFieldD() int64 { - return this.FieldD -} - -func (this *CustomNameNidOptNative) GetFieldE() uint32 { - return this.FieldE -} - -func (this *CustomNameNidOptNative) GetFieldF() uint64 { - return this.FieldF -} - -func (this *CustomNameNidOptNative) GetFieldG() int32 { - return this.FieldG -} - -func (this *CustomNameNidOptNative) GetFieldH() int64 { - return this.FieldH -} - -func (this *CustomNameNidOptNative) GetFieldI() uint32 { - return this.FieldI -} - -func (this *CustomNameNidOptNative) GetFieldJ() int32 { - return this.FieldJ -} - -func (this *CustomNameNidOptNative) GetFieldK() uint64 { - return this.FieldK -} - -func (this *CustomNameNidOptNative) GetFieldL() int64 { - return this.FieldL -} - -func (this *CustomNameNidOptNative) GetFieldM() bool { - return this.FieldM -} - -func (this *CustomNameNidOptNative) GetFieldN() string { - return this.FieldN -} - -func (this *CustomNameNidOptNative) GetFieldO() []byte { - return this.FieldO -} - -func NewCustomNameNidOptNativeFromFace(that CustomNameNidOptNativeFace) *CustomNameNidOptNative { - this := &CustomNameNidOptNative{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - this.FieldK = that.GetFieldK() - this.FieldL = that.GetFieldL() - this.FieldM = that.GetFieldM() - this.FieldN = that.GetFieldN() - this.FieldO = that.GetFieldO() - return this -} - -type CustomNameNinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *float64 - GetFieldB() *float32 - GetFieldC() *int32 - GetFieldD() *int64 - GetFieldE() *uint32 - GetFieldF() *uint64 - GetFieldG() *int32 - GetFieldH() *int64 - GetFieldI() *uint32 - GetFieldJ() *int32 - GetFieldK() *uint64 - GetFielL() *int64 - GetFieldM() *bool - GetFieldN() *string - GetFieldO() []byte -} - -func (this *CustomNameNinOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinOptNativeFromFace(this) -} - -func (this *CustomNameNinOptNative) GetFieldA() *float64 { - return this.FieldA -} - -func (this *CustomNameNinOptNative) GetFieldB() *float32 { - return this.FieldB -} - -func (this *CustomNameNinOptNative) GetFieldC() *int32 { - return this.FieldC -} - -func (this *CustomNameNinOptNative) GetFieldD() *int64 { - return this.FieldD -} - -func (this *CustomNameNinOptNative) GetFieldE() *uint32 { - return this.FieldE -} - -func (this *CustomNameNinOptNative) GetFieldF() *uint64 { - return this.FieldF -} - -func (this *CustomNameNinOptNative) GetFieldG() *int32 { - return this.FieldG -} - -func (this *CustomNameNinOptNative) GetFieldH() *int64 { - return this.FieldH -} - -func (this *CustomNameNinOptNative) GetFieldI() *uint32 { - return this.FieldI -} - -func (this *CustomNameNinOptNative) GetFieldJ() *int32 { - return this.FieldJ -} - -func (this *CustomNameNinOptNative) GetFieldK() *uint64 { - return this.FieldK -} - -func (this *CustomNameNinOptNative) GetFielL() *int64 { - return this.FielL -} - -func (this *CustomNameNinOptNative) GetFieldM() *bool { - return this.FieldM -} - -func (this *CustomNameNinOptNative) GetFieldN() *string { - return this.FieldN -} - -func (this *CustomNameNinOptNative) GetFieldO() []byte { - return this.FieldO -} - -func NewCustomNameNinOptNativeFromFace(that CustomNameNinOptNativeFace) *CustomNameNinOptNative { - this := &CustomNameNinOptNative{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - this.FieldK = that.GetFieldK() - this.FielL = that.GetFielL() - this.FieldM = that.GetFieldM() - this.FieldN = that.GetFieldN() - this.FieldO = that.GetFieldO() - return this -} - -type CustomNameNinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() []float64 - GetFieldB() []float32 - GetFieldC() []int32 - GetFieldD() []int64 - GetFieldE() []uint32 - GetFieldF() []uint64 - GetFieldG() []int32 - GetFieldH() []int64 - GetFieldI() []uint32 - GetFieldJ() []int32 - GetFieldK() []uint64 - GetFieldL() []int64 - GetFieldM() []bool - GetFieldN() []string - GetFieldO() [][]byte -} - -func (this *CustomNameNinRepNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinRepNativeFromFace(this) -} - -func (this *CustomNameNinRepNative) GetFieldA() []float64 { - return this.FieldA -} - -func (this *CustomNameNinRepNative) GetFieldB() []float32 { - return this.FieldB -} - -func (this *CustomNameNinRepNative) GetFieldC() []int32 { - return this.FieldC -} - -func (this *CustomNameNinRepNative) GetFieldD() []int64 { - return this.FieldD -} - -func (this *CustomNameNinRepNative) GetFieldE() []uint32 { - return this.FieldE -} - -func (this *CustomNameNinRepNative) GetFieldF() []uint64 { - return this.FieldF -} - -func (this *CustomNameNinRepNative) GetFieldG() []int32 { - return this.FieldG -} - -func (this *CustomNameNinRepNative) GetFieldH() []int64 { - return this.FieldH -} - -func (this *CustomNameNinRepNative) GetFieldI() []uint32 { - return this.FieldI -} - -func (this *CustomNameNinRepNative) GetFieldJ() []int32 { - return this.FieldJ -} - -func (this *CustomNameNinRepNative) GetFieldK() []uint64 { - return this.FieldK -} - -func (this *CustomNameNinRepNative) GetFieldL() []int64 { - return this.FieldL -} - -func (this *CustomNameNinRepNative) GetFieldM() []bool { - return this.FieldM -} - -func (this *CustomNameNinRepNative) GetFieldN() []string { - return this.FieldN -} - -func (this *CustomNameNinRepNative) GetFieldO() [][]byte { - return this.FieldO -} - -func NewCustomNameNinRepNativeFromFace(that CustomNameNinRepNativeFace) *CustomNameNinRepNative { - this := &CustomNameNinRepNative{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - this.FieldK = that.GetFieldK() - this.FieldL = that.GetFieldL() - this.FieldM = that.GetFieldM() - this.FieldN = that.GetFieldN() - this.FieldO = that.GetFieldO() - return this -} - -type CustomNameNinStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *float64 - GetFieldB() *float32 - GetFieldC() *NidOptNative - GetFieldD() []*NinOptNative - GetFieldE() *uint64 - GetFieldF() *int32 - GetFieldG() *NidOptNative - GetFieldH() *bool - GetFieldI() *string - GetFieldJ() []byte -} - -func (this *CustomNameNinStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinStructFromFace(this) -} - -func (this *CustomNameNinStruct) GetFieldA() *float64 { - return this.FieldA -} - -func (this *CustomNameNinStruct) GetFieldB() *float32 { - return this.FieldB -} - -func (this *CustomNameNinStruct) GetFieldC() *NidOptNative { - return this.FieldC -} - -func (this *CustomNameNinStruct) GetFieldD() []*NinOptNative { - return this.FieldD -} - -func (this *CustomNameNinStruct) GetFieldE() *uint64 { - return this.FieldE -} - -func (this *CustomNameNinStruct) GetFieldF() *int32 { - return this.FieldF -} - -func (this *CustomNameNinStruct) GetFieldG() *NidOptNative { - return this.FieldG -} - -func (this *CustomNameNinStruct) GetFieldH() *bool { - return this.FieldH -} - -func (this *CustomNameNinStruct) GetFieldI() *string { - return this.FieldI -} - -func (this *CustomNameNinStruct) GetFieldJ() []byte { - return this.FieldJ -} - -func NewCustomNameNinStructFromFace(that CustomNameNinStructFace) *CustomNameNinStruct { - this := &CustomNameNinStruct{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - return this -} - -type CustomNameCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *Uuid - GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 - GetFieldC() []Uuid - GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *CustomNameCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameCustomTypeFromFace(this) -} - -func (this *CustomNameCustomType) GetFieldA() *Uuid { - return this.FieldA -} - -func (this *CustomNameCustomType) GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 { - return this.FieldB -} - -func (this *CustomNameCustomType) GetFieldC() []Uuid { - return this.FieldC -} - -func (this *CustomNameCustomType) GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 { - return this.FieldD -} - -func NewCustomNameCustomTypeFromFace(that CustomNameCustomTypeFace) *CustomNameCustomType { - this := &CustomNameCustomType{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - return this -} - -type CustomNameNinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetFieldA() *NinOptNative - GetFieldB() *bool -} - -func (this *CustomNameNinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinEmbeddedStructUnionFromFace(this) -} - -func (this *CustomNameNinEmbeddedStructUnion) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *CustomNameNinEmbeddedStructUnion) GetFieldA() *NinOptNative { - return this.FieldA -} - -func (this *CustomNameNinEmbeddedStructUnion) GetFieldB() *bool { - return this.FieldB -} - -func NewCustomNameNinEmbeddedStructUnionFromFace(that CustomNameNinEmbeddedStructUnionFace) *CustomNameNinEmbeddedStructUnion { - this := &CustomNameNinEmbeddedStructUnion{} - this.NidOptNative = that.GetNidOptNative() - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - return this -} - -type CustomNameEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *TheTestEnum - GetFieldB() []TheTestEnum -} - -func (this *CustomNameEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameEnumFromFace(this) -} - -func (this *CustomNameEnum) GetFieldA() *TheTestEnum { - return this.FieldA -} - -func (this *CustomNameEnum) GetFieldB() []TheTestEnum { - return this.FieldB -} - -func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum { - this := &CustomNameEnum{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - return this -} - -type UnrecognizedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *string -} - -func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedFromFace(this) -} - -func (this *Unrecognized) GetField1() *string { - return this.Field1 -} - -func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized { - this := &Unrecognized{} - this.Field1 = that.GetField1() - return this -} - -type UnrecognizedWithInnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetEmbedded() []*UnrecognizedWithInner_Inner - GetField2() *string -} - -func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithInnerFromFace(this) -} - -func (this *UnrecognizedWithInner) GetEmbedded() []*UnrecognizedWithInner_Inner { - return this.Embedded -} - -func (this *UnrecognizedWithInner) GetField2() *string { - return this.Field2 -} - -func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *UnrecognizedWithInner { - this := &UnrecognizedWithInner{} - this.Embedded = that.GetEmbedded() - this.Field2 = that.GetField2() - return this -} - -type UnrecognizedWithInner_InnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *uint32 -} - -func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithInner_InnerFromFace(this) -} - -func (this *UnrecognizedWithInner_Inner) GetField1() *uint32 { - return this.Field1 -} - -func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace) *UnrecognizedWithInner_Inner { - this := &UnrecognizedWithInner_Inner{} - this.Field1 = that.GetField1() - return this -} - -type UnrecognizedWithEmbedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded - GetField2() *string -} - -func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbedFromFace(this) -} - -func (this *UnrecognizedWithEmbed) GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded { - return this.UnrecognizedWithEmbed_Embedded -} - -func (this *UnrecognizedWithEmbed) GetField2() *string { - return this.Field2 -} - -func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *UnrecognizedWithEmbed { - this := &UnrecognizedWithEmbed{} - this.UnrecognizedWithEmbed_Embedded = that.GetUnrecognizedWithEmbed_Embedded() - this.Field2 = that.GetField2() - return this -} - -type UnrecognizedWithEmbed_EmbeddedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *uint32 -} - -func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) -} - -func (this *UnrecognizedWithEmbed_Embedded) GetField1() *uint32 { - return this.Field1 -} - -func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_EmbeddedFace) *UnrecognizedWithEmbed_Embedded { - this := &UnrecognizedWithEmbed_Embedded{} - this.Field1 = that.GetField1() - return this -} - -type NodeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLabel() *string - GetChildren() []*Node -} - -func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNodeFromFace(this) -} - -func (this *Node) GetLabel() *string { - return this.Label -} - -func (this *Node) GetChildren() []*Node { - return this.Children -} - -func NewNodeFromFace(that NodeFace) *Node { - this := &Node{} - this.Label = that.GetLabel() - this.Children = that.GetChildren() - return this -} - -type NonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *T -} - -func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNonByteCustomTypeFromFace(this) -} - -func (this *NonByteCustomType) GetField1() *T { - return this.Field1 -} - -func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { - this := &NonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NidOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() T -} - -func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNonByteCustomTypeFromFace(this) -} - -func (this *NidOptNonByteCustomType) GetField1() T { - return this.Field1 -} - -func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { - this := &NidOptNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NinOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *T -} - -func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptNonByteCustomTypeFromFace(this) -} - -func (this *NinOptNonByteCustomType) GetField1() *T { - return this.Field1 -} - -func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { - this := &NinOptNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NidRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []T -} - -func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepNonByteCustomTypeFromFace(this) -} - -func (this *NidRepNonByteCustomType) GetField1() []T { - return this.Field1 -} - -func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { - this := &NidRepNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NinRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []T -} - -func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepNonByteCustomTypeFromFace(this) -} - -func (this *NinRepNonByteCustomType) GetField1() []T { - return this.Field1 -} - -func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { - this := &NinRepNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type ProtoTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField2() *string -} - -func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewProtoTypeFromFace(this) -} - -func (this *ProtoType) GetField2() *string { - return this.Field2 -} - -func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { - this := &ProtoType{} - this.Field2 = that.GetField2() - return this -} - -func (this *NidOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NidOptNative{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NinOptNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+valueToGoStringThetest(this.Field8, "int64")+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+valueToGoStringThetest(this.Field9, "uint32")+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+valueToGoStringThetest(this.Field10, "int32")+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+valueToGoStringThetest(this.Field11, "uint64")+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+valueToGoStringThetest(this.Field12, "int64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NidRepNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NinRepNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepPackedNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 17) - s = append(s, "&test.NidRepPackedNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepPackedNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 17) - s = append(s, "&test.NinRepPackedNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NidOptStruct{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - s = append(s, "Field3: "+strings.Replace(this.Field3.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field4: "+strings.Replace(this.Field4.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - s = append(s, "Field8: "+strings.Replace(this.Field8.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NinOptStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NidRepStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NinRepStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidEmbeddedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NidEmbeddedStruct{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - s = append(s, "Field200: "+strings.Replace(this.Field200.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field210: "+fmt.Sprintf("%#v", this.Field210)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinEmbeddedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinEmbeddedStruct{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - if this.Field200 != nil { - s = append(s, "Field200: "+fmt.Sprintf("%#v", this.Field200)+",\n") - } - if this.Field210 != nil { - s = append(s, "Field210: "+valueToGoStringThetest(this.Field210, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidNestedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NidNestedStruct{") - s = append(s, "Field1: "+strings.Replace(this.Field1.GoString(), `&`, ``, 1)+",\n") - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinNestedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NinNestedStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NidOptCustom{") - s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n") - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomDash) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.CustomDash{") - if this.Value != nil { - s = append(s, "Value: "+valueToGoStringThetest(this.Value, "github_com_gogo_protobuf_test_custom_dash_type.Bytes")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NinOptCustom{") - if this.Id != nil { - s = append(s, "Id: "+valueToGoStringThetest(this.Id, "Uuid")+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+valueToGoStringThetest(this.Value, "github_com_gogo_protobuf_test_custom.Uint128")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NidRepCustom{") - if this.Id != nil { - s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NinRepCustom{") - if this.Id != nil { - s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNativeUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 13) - s = append(s, "&test.NinOptNativeUnion{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 13) - s = append(s, "&test.NinOptStructUnion{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinEmbeddedStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinEmbeddedStructUnion{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - if this.Field200 != nil { - s = append(s, "Field200: "+fmt.Sprintf("%#v", this.Field200)+",\n") - } - if this.Field210 != nil { - s = append(s, "Field210: "+valueToGoStringThetest(this.Field210, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinNestedStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinNestedStructUnion{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Tree) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.Tree{") - if this.Or != nil { - s = append(s, "Or: "+fmt.Sprintf("%#v", this.Or)+",\n") - } - if this.And != nil { - s = append(s, "And: "+fmt.Sprintf("%#v", this.And)+",\n") - } - if this.Leaf != nil { - s = append(s, "Leaf: "+fmt.Sprintf("%#v", this.Leaf)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *OrBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.OrBranch{") - s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AndBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.AndBranch{") - s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Leaf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.Leaf{") - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - s = append(s, "StrValue: "+fmt.Sprintf("%#v", this.StrValue)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *DeepTree) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.DeepTree{") - if this.Down != nil { - s = append(s, "Down: "+fmt.Sprintf("%#v", this.Down)+",\n") - } - if this.And != nil { - s = append(s, "And: "+fmt.Sprintf("%#v", this.And)+",\n") - } - if this.Leaf != nil { - s = append(s, "Leaf: "+fmt.Sprintf("%#v", this.Leaf)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ADeepBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.ADeepBranch{") - s = append(s, "Down: "+strings.Replace(this.Down.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AndDeepBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.AndDeepBranch{") - s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *DeepLeaf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.DeepLeaf{") - s = append(s, "Tree: "+strings.Replace(this.Tree.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Nil) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 4) - s = append(s, "&test.Nil{") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NidOptEnum{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinOptEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NidRepEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinRepEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptEnumDefault) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinOptEnumDefault{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AnotherNinOptEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.AnotherNinOptEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AnotherNinOptEnumDefault) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.AnotherNinOptEnumDefault{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Timer) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.Timer{") - s = append(s, "Time1: "+fmt.Sprintf("%#v", this.Time1)+",\n") - s = append(s, "Time2: "+fmt.Sprintf("%#v", this.Time2)+",\n") - s = append(s, "Data: "+fmt.Sprintf("%#v", this.Data)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *MyExtendable) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.MyExtendable{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") - } - s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *OtherExtenable) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.OtherExtenable{") - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "int64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "int64")+",\n") - } - if this.M != nil { - s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") - } - s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedDefinition) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&test.NestedDefinition{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") - } - if this.EnumField != nil { - s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "test.NestedDefinition_NestedEnum")+",\n") - } - if this.NNM != nil { - s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") - } - if this.NM != nil { - s = append(s, "NM: "+fmt.Sprintf("%#v", this.NM)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedDefinition_NestedMessage) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NestedDefinition_NestedMessage{") - if this.NestedField1 != nil { - s = append(s, "NestedField1: "+valueToGoStringThetest(this.NestedField1, "uint64")+",\n") - } - if this.NNM != nil { - s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NestedDefinition_NestedMessage_NestedNestedMsg{") - if this.NestedNestedField1 != nil { - s = append(s, "NestedNestedField1: "+valueToGoStringThetest(this.NestedNestedField1, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedScope) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NestedScope{") - if this.A != nil { - s = append(s, "A: "+fmt.Sprintf("%#v", this.A)+",\n") - } - if this.B != nil { - s = append(s, "B: "+valueToGoStringThetest(this.B, "test.NestedDefinition_NestedEnum")+",\n") - } - if this.C != nil { - s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNativeDefault) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NinOptNativeDefault{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+valueToGoStringThetest(this.Field8, "int64")+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+valueToGoStringThetest(this.Field9, "uint32")+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+valueToGoStringThetest(this.Field10, "int32")+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+valueToGoStringThetest(this.Field11, "uint64")+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+valueToGoStringThetest(this.Field12, "int64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomContainer) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.CustomContainer{") - s = append(s, "CustomStruct: "+strings.Replace(this.CustomStruct.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNidOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.CustomNameNidOptNative{") - s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n") - s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - s = append(s, "FieldE: "+fmt.Sprintf("%#v", this.FieldE)+",\n") - s = append(s, "FieldF: "+fmt.Sprintf("%#v", this.FieldF)+",\n") - s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n") - s = append(s, "FieldH: "+fmt.Sprintf("%#v", this.FieldH)+",\n") - s = append(s, "FieldI: "+fmt.Sprintf("%#v", this.FieldI)+",\n") - s = append(s, "FieldJ: "+fmt.Sprintf("%#v", this.FieldJ)+",\n") - s = append(s, "FieldK: "+fmt.Sprintf("%#v", this.FieldK)+",\n") - s = append(s, "FieldL: "+fmt.Sprintf("%#v", this.FieldL)+",\n") - s = append(s, "FieldM: "+fmt.Sprintf("%#v", this.FieldM)+",\n") - s = append(s, "FieldN: "+fmt.Sprintf("%#v", this.FieldN)+",\n") - s = append(s, "FieldO: "+fmt.Sprintf("%#v", this.FieldO)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.CustomNameNinOptNative{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "float64")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "float32")+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+valueToGoStringThetest(this.FieldC, "int32")+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+valueToGoStringThetest(this.FieldD, "int64")+",\n") - } - if this.FieldE != nil { - s = append(s, "FieldE: "+valueToGoStringThetest(this.FieldE, "uint32")+",\n") - } - if this.FieldF != nil { - s = append(s, "FieldF: "+valueToGoStringThetest(this.FieldF, "uint64")+",\n") - } - if this.FieldG != nil { - s = append(s, "FieldG: "+valueToGoStringThetest(this.FieldG, "int32")+",\n") - } - if this.FieldH != nil { - s = append(s, "FieldH: "+valueToGoStringThetest(this.FieldH, "int64")+",\n") - } - if this.FieldI != nil { - s = append(s, "FieldI: "+valueToGoStringThetest(this.FieldI, "uint32")+",\n") - } - if this.FieldJ != nil { - s = append(s, "FieldJ: "+valueToGoStringThetest(this.FieldJ, "int32")+",\n") - } - if this.FieldK != nil { - s = append(s, "FieldK: "+valueToGoStringThetest(this.FieldK, "uint64")+",\n") - } - if this.FielL != nil { - s = append(s, "FielL: "+valueToGoStringThetest(this.FielL, "int64")+",\n") - } - if this.FieldM != nil { - s = append(s, "FieldM: "+valueToGoStringThetest(this.FieldM, "bool")+",\n") - } - if this.FieldN != nil { - s = append(s, "FieldN: "+valueToGoStringThetest(this.FieldN, "string")+",\n") - } - if this.FieldO != nil { - s = append(s, "FieldO: "+valueToGoStringThetest(this.FieldO, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinRepNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.CustomNameNinRepNative{") - if this.FieldA != nil { - s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - } - if this.FieldE != nil { - s = append(s, "FieldE: "+fmt.Sprintf("%#v", this.FieldE)+",\n") - } - if this.FieldF != nil { - s = append(s, "FieldF: "+fmt.Sprintf("%#v", this.FieldF)+",\n") - } - if this.FieldG != nil { - s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n") - } - if this.FieldH != nil { - s = append(s, "FieldH: "+fmt.Sprintf("%#v", this.FieldH)+",\n") - } - if this.FieldI != nil { - s = append(s, "FieldI: "+fmt.Sprintf("%#v", this.FieldI)+",\n") - } - if this.FieldJ != nil { - s = append(s, "FieldJ: "+fmt.Sprintf("%#v", this.FieldJ)+",\n") - } - if this.FieldK != nil { - s = append(s, "FieldK: "+fmt.Sprintf("%#v", this.FieldK)+",\n") - } - if this.FieldL != nil { - s = append(s, "FieldL: "+fmt.Sprintf("%#v", this.FieldL)+",\n") - } - if this.FieldM != nil { - s = append(s, "FieldM: "+fmt.Sprintf("%#v", this.FieldM)+",\n") - } - if this.FieldN != nil { - s = append(s, "FieldN: "+fmt.Sprintf("%#v", this.FieldN)+",\n") - } - if this.FieldO != nil { - s = append(s, "FieldO: "+fmt.Sprintf("%#v", this.FieldO)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.CustomNameNinStruct{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "float64")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "float32")+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - } - if this.FieldE != nil { - s = append(s, "FieldE: "+valueToGoStringThetest(this.FieldE, "uint64")+",\n") - } - if this.FieldF != nil { - s = append(s, "FieldF: "+valueToGoStringThetest(this.FieldF, "int32")+",\n") - } - if this.FieldG != nil { - s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n") - } - if this.FieldH != nil { - s = append(s, "FieldH: "+valueToGoStringThetest(this.FieldH, "bool")+",\n") - } - if this.FieldI != nil { - s = append(s, "FieldI: "+valueToGoStringThetest(this.FieldI, "string")+",\n") - } - if this.FieldJ != nil { - s = append(s, "FieldJ: "+valueToGoStringThetest(this.FieldJ, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&test.CustomNameCustomType{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "Uuid")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "github_com_gogo_protobuf_test_custom.Uint128")+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinEmbeddedStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.CustomNameNinEmbeddedStructUnion{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - if this.FieldA != nil { - s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.CustomNameEnum{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "test.TheTestEnum")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NoExtensionsMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NoExtensionsMap{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+fmt.Sprintf("%#v", this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Unrecognized) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.Unrecognized{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "string")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithInner) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.UnrecognizedWithInner{") - if this.Embedded != nil { - s = append(s, "Embedded: "+fmt.Sprintf("%#v", this.Embedded)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithInner_Inner) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.UnrecognizedWithInner_Inner{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "uint32")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithEmbed) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.UnrecognizedWithEmbed{") - s = append(s, "UnrecognizedWithEmbed_Embedded: "+strings.Replace(this.UnrecognizedWithEmbed_Embedded.GoString(), `&`, ``, 1)+",\n") - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithEmbed_Embedded) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.UnrecognizedWithEmbed_Embedded{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "uint32")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Node) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.Node{") - if this.Label != nil { - s = append(s, "Label: "+valueToGoStringThetest(this.Label, "string")+",\n") - } - if this.Children != nil { - s = append(s, "Children: "+fmt.Sprintf("%#v", this.Children)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NidOptNonByteCustomType{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NinOptNonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NidRepNonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NinRepNonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ProtoType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.ProtoType{") - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringThetest(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { - e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) - if e == nil { - return "nil" - } - s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "})" - return s -} -func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { - this := &NidOptNative{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - this.Field4 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4 *= -1 - } - this.Field5 = uint32(r.Uint32()) - this.Field6 = uint64(uint64(r.Uint32())) - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - this.Field8 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8 *= -1 - } - this.Field9 = uint32(r.Uint32()) - this.Field10 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10 *= -1 - } - this.Field11 = uint64(uint64(r.Uint32())) - this.Field12 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12 *= -1 - } - this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = string(randStringThetest(r)) - v1 := r.Intn(100) - this.Field15 = make([]byte, v1) - for i := 0; i < v1; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { - this := &NinOptNative{} - if r.Intn(10) != 0 { - v2 := float64(r.Float64()) - if r.Intn(2) == 0 { - v2 *= -1 - } - this.Field1 = &v2 - } - if r.Intn(10) != 0 { - v3 := float32(r.Float32()) - if r.Intn(2) == 0 { - v3 *= -1 - } - this.Field2 = &v3 - } - if r.Intn(10) != 0 { - v4 := int32(r.Int31()) - if r.Intn(2) == 0 { - v4 *= -1 - } - this.Field3 = &v4 - } - if r.Intn(10) != 0 { - v5 := int64(r.Int63()) - if r.Intn(2) == 0 { - v5 *= -1 - } - this.Field4 = &v5 - } - if r.Intn(10) != 0 { - v6 := uint32(r.Uint32()) - this.Field5 = &v6 - } - if r.Intn(10) != 0 { - v7 := uint64(uint64(r.Uint32())) - this.Field6 = &v7 - } - if r.Intn(10) != 0 { - v8 := int32(r.Int31()) - if r.Intn(2) == 0 { - v8 *= -1 - } - this.Field7 = &v8 - } - if r.Intn(10) != 0 { - v9 := int64(r.Int63()) - if r.Intn(2) == 0 { - v9 *= -1 - } - this.Field8 = &v9 - } - if r.Intn(10) != 0 { - v10 := uint32(r.Uint32()) - this.Field9 = &v10 - } - if r.Intn(10) != 0 { - v11 := int32(r.Int31()) - if r.Intn(2) == 0 { - v11 *= -1 - } - this.Field10 = &v11 - } - if r.Intn(10) != 0 { - v12 := uint64(uint64(r.Uint32())) - this.Field11 = &v12 - } - if r.Intn(10) != 0 { - v13 := int64(r.Int63()) - if r.Intn(2) == 0 { - v13 *= -1 - } - this.Field12 = &v13 - } - if r.Intn(10) != 0 { - v14 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v14 - } - if r.Intn(10) != 0 { - v15 := string(randStringThetest(r)) - this.Field14 = &v15 - } - if r.Intn(10) != 0 { - v16 := r.Intn(100) - this.Field15 = make([]byte, v16) - for i := 0; i < v16; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { - this := &NidRepNative{} - if r.Intn(10) != 0 { - v17 := r.Intn(10) - this.Field1 = make([]float64, v17) - for i := 0; i < v17; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v18 := r.Intn(10) - this.Field2 = make([]float32, v18) - for i := 0; i < v18; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v19 := r.Intn(10) - this.Field3 = make([]int32, v19) - for i := 0; i < v19; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v20 := r.Intn(10) - this.Field4 = make([]int64, v20) - for i := 0; i < v20; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v21 := r.Intn(10) - this.Field5 = make([]uint32, v21) - for i := 0; i < v21; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v22 := r.Intn(10) - this.Field6 = make([]uint64, v22) - for i := 0; i < v22; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v23 := r.Intn(10) - this.Field7 = make([]int32, v23) - for i := 0; i < v23; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v24 := r.Intn(10) - this.Field8 = make([]int64, v24) - for i := 0; i < v24; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v25 := r.Intn(10) - this.Field9 = make([]uint32, v25) - for i := 0; i < v25; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v26 := r.Intn(10) - this.Field10 = make([]int32, v26) - for i := 0; i < v26; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v27 := r.Intn(10) - this.Field11 = make([]uint64, v27) - for i := 0; i < v27; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v28 := r.Intn(10) - this.Field12 = make([]int64, v28) - for i := 0; i < v28; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v29 := r.Intn(10) - this.Field13 = make([]bool, v29) - for i := 0; i < v29; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v30 := r.Intn(10) - this.Field14 = make([]string, v30) - for i := 0; i < v30; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v31 := r.Intn(10) - this.Field15 = make([][]byte, v31) - for i := 0; i < v31; i++ { - v32 := r.Intn(100) - this.Field15[i] = make([]byte, v32) - for j := 0; j < v32; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { - this := &NinRepNative{} - if r.Intn(10) != 0 { - v33 := r.Intn(10) - this.Field1 = make([]float64, v33) - for i := 0; i < v33; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v34 := r.Intn(10) - this.Field2 = make([]float32, v34) - for i := 0; i < v34; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v35 := r.Intn(10) - this.Field3 = make([]int32, v35) - for i := 0; i < v35; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.Field4 = make([]int64, v36) - for i := 0; i < v36; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v37 := r.Intn(10) - this.Field5 = make([]uint32, v37) - for i := 0; i < v37; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v38 := r.Intn(10) - this.Field6 = make([]uint64, v38) - for i := 0; i < v38; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v39 := r.Intn(10) - this.Field7 = make([]int32, v39) - for i := 0; i < v39; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v40 := r.Intn(10) - this.Field8 = make([]int64, v40) - for i := 0; i < v40; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v41 := r.Intn(10) - this.Field9 = make([]uint32, v41) - for i := 0; i < v41; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v42 := r.Intn(10) - this.Field10 = make([]int32, v42) - for i := 0; i < v42; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v43 := r.Intn(10) - this.Field11 = make([]uint64, v43) - for i := 0; i < v43; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v44 := r.Intn(10) - this.Field12 = make([]int64, v44) - for i := 0; i < v44; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v45 := r.Intn(10) - this.Field13 = make([]bool, v45) - for i := 0; i < v45; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v46 := r.Intn(10) - this.Field14 = make([]string, v46) - for i := 0; i < v46; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v47 := r.Intn(10) - this.Field15 = make([][]byte, v47) - for i := 0; i < v47; i++ { - v48 := r.Intn(100) - this.Field15[i] = make([]byte, v48) - for j := 0; j < v48; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidRepPackedNative(r randyThetest, easy bool) *NidRepPackedNative { - this := &NidRepPackedNative{} - if r.Intn(10) != 0 { - v49 := r.Intn(10) - this.Field1 = make([]float64, v49) - for i := 0; i < v49; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v50 := r.Intn(10) - this.Field2 = make([]float32, v50) - for i := 0; i < v50; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v51 := r.Intn(10) - this.Field3 = make([]int32, v51) - for i := 0; i < v51; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v52 := r.Intn(10) - this.Field4 = make([]int64, v52) - for i := 0; i < v52; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v53 := r.Intn(10) - this.Field5 = make([]uint32, v53) - for i := 0; i < v53; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v54 := r.Intn(10) - this.Field6 = make([]uint64, v54) - for i := 0; i < v54; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v55 := r.Intn(10) - this.Field7 = make([]int32, v55) - for i := 0; i < v55; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v56 := r.Intn(10) - this.Field8 = make([]int64, v56) - for i := 0; i < v56; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v57 := r.Intn(10) - this.Field9 = make([]uint32, v57) - for i := 0; i < v57; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v58 := r.Intn(10) - this.Field10 = make([]int32, v58) - for i := 0; i < v58; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v59 := r.Intn(10) - this.Field11 = make([]uint64, v59) - for i := 0; i < v59; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v60 := r.Intn(10) - this.Field12 = make([]int64, v60) - for i := 0; i < v60; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v61 := r.Intn(10) - this.Field13 = make([]bool, v61) - for i := 0; i < v61; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 14) - } - return this -} - -func NewPopulatedNinRepPackedNative(r randyThetest, easy bool) *NinRepPackedNative { - this := &NinRepPackedNative{} - if r.Intn(10) != 0 { - v62 := r.Intn(10) - this.Field1 = make([]float64, v62) - for i := 0; i < v62; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v63 := r.Intn(10) - this.Field2 = make([]float32, v63) - for i := 0; i < v63; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v64 := r.Intn(10) - this.Field3 = make([]int32, v64) - for i := 0; i < v64; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v65 := r.Intn(10) - this.Field4 = make([]int64, v65) - for i := 0; i < v65; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v66 := r.Intn(10) - this.Field5 = make([]uint32, v66) - for i := 0; i < v66; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v67 := r.Intn(10) - this.Field6 = make([]uint64, v67) - for i := 0; i < v67; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v68 := r.Intn(10) - this.Field7 = make([]int32, v68) - for i := 0; i < v68; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v69 := r.Intn(10) - this.Field8 = make([]int64, v69) - for i := 0; i < v69; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v70 := r.Intn(10) - this.Field9 = make([]uint32, v70) - for i := 0; i < v70; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v71 := r.Intn(10) - this.Field10 = make([]int32, v71) - for i := 0; i < v71; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v72 := r.Intn(10) - this.Field11 = make([]uint64, v72) - for i := 0; i < v72; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v73 := r.Intn(10) - this.Field12 = make([]int64, v73) - for i := 0; i < v73; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v74 := r.Intn(10) - this.Field13 = make([]bool, v74) - for i := 0; i < v74; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 14) - } - return this -} - -func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { - this := &NidOptStruct{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - v75 := NewPopulatedNidOptNative(r, easy) - this.Field3 = *v75 - v76 := NewPopulatedNinOptNative(r, easy) - this.Field4 = *v76 - this.Field6 = uint64(uint64(r.Uint32())) - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - v77 := NewPopulatedNidOptNative(r, easy) - this.Field8 = *v77 - this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = string(randStringThetest(r)) - v78 := r.Intn(100) - this.Field15 = make([]byte, v78) - for i := 0; i < v78; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { - this := &NinOptStruct{} - if r.Intn(10) != 0 { - v79 := float64(r.Float64()) - if r.Intn(2) == 0 { - v79 *= -1 - } - this.Field1 = &v79 - } - if r.Intn(10) != 0 { - v80 := float32(r.Float32()) - if r.Intn(2) == 0 { - v80 *= -1 - } - this.Field2 = &v80 - } - if r.Intn(10) != 0 { - this.Field3 = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - this.Field4 = NewPopulatedNinOptNative(r, easy) - } - if r.Intn(10) != 0 { - v81 := uint64(uint64(r.Uint32())) - this.Field6 = &v81 - } - if r.Intn(10) != 0 { - v82 := int32(r.Int31()) - if r.Intn(2) == 0 { - v82 *= -1 - } - this.Field7 = &v82 - } - if r.Intn(10) != 0 { - this.Field8 = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v83 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v83 - } - if r.Intn(10) != 0 { - v84 := string(randStringThetest(r)) - this.Field14 = &v84 - } - if r.Intn(10) != 0 { - v85 := r.Intn(100) - this.Field15 = make([]byte, v85) - for i := 0; i < v85; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { - this := &NidRepStruct{} - if r.Intn(10) != 0 { - v86 := r.Intn(10) - this.Field1 = make([]float64, v86) - for i := 0; i < v86; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v87 := r.Intn(10) - this.Field2 = make([]float32, v87) - for i := 0; i < v87; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v88 := r.Intn(5) - this.Field3 = make([]NidOptNative, v88) - for i := 0; i < v88; i++ { - v89 := NewPopulatedNidOptNative(r, easy) - this.Field3[i] = *v89 - } - } - if r.Intn(10) != 0 { - v90 := r.Intn(5) - this.Field4 = make([]NinOptNative, v90) - for i := 0; i < v90; i++ { - v91 := NewPopulatedNinOptNative(r, easy) - this.Field4[i] = *v91 - } - } - if r.Intn(10) != 0 { - v92 := r.Intn(10) - this.Field6 = make([]uint64, v92) - for i := 0; i < v92; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v93 := r.Intn(10) - this.Field7 = make([]int32, v93) - for i := 0; i < v93; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v94 := r.Intn(5) - this.Field8 = make([]NidOptNative, v94) - for i := 0; i < v94; i++ { - v95 := NewPopulatedNidOptNative(r, easy) - this.Field8[i] = *v95 - } - } - if r.Intn(10) != 0 { - v96 := r.Intn(10) - this.Field13 = make([]bool, v96) - for i := 0; i < v96; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v97 := r.Intn(10) - this.Field14 = make([]string, v97) - for i := 0; i < v97; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v98 := r.Intn(10) - this.Field15 = make([][]byte, v98) - for i := 0; i < v98; i++ { - v99 := r.Intn(100) - this.Field15[i] = make([]byte, v99) - for j := 0; j < v99; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { - this := &NinRepStruct{} - if r.Intn(10) != 0 { - v100 := r.Intn(10) - this.Field1 = make([]float64, v100) - for i := 0; i < v100; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v101 := r.Intn(10) - this.Field2 = make([]float32, v101) - for i := 0; i < v101; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v102 := r.Intn(5) - this.Field3 = make([]*NidOptNative, v102) - for i := 0; i < v102; i++ { - this.Field3[i] = NewPopulatedNidOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v103 := r.Intn(5) - this.Field4 = make([]*NinOptNative, v103) - for i := 0; i < v103; i++ { - this.Field4[i] = NewPopulatedNinOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v104 := r.Intn(10) - this.Field6 = make([]uint64, v104) - for i := 0; i < v104; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v105 := r.Intn(10) - this.Field7 = make([]int32, v105) - for i := 0; i < v105; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v106 := r.Intn(5) - this.Field8 = make([]*NidOptNative, v106) - for i := 0; i < v106; i++ { - this.Field8[i] = NewPopulatedNidOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v107 := r.Intn(10) - this.Field13 = make([]bool, v107) - for i := 0; i < v107; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v108 := r.Intn(10) - this.Field14 = make([]string, v108) - for i := 0; i < v108; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v109 := r.Intn(10) - this.Field15 = make([][]byte, v109) - for i := 0; i < v109; i++ { - v110 := r.Intn(100) - this.Field15[i] = make([]byte, v110) - for j := 0; j < v110; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidEmbeddedStruct(r randyThetest, easy bool) *NidEmbeddedStruct { - this := &NidEmbeddedStruct{} - if r.Intn(10) != 0 { - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - } - v111 := NewPopulatedNidOptNative(r, easy) - this.Field200 = *v111 - this.Field210 = bool(bool(r.Intn(2) == 0)) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 211) - } - return this -} - -func NewPopulatedNinEmbeddedStruct(r randyThetest, easy bool) *NinEmbeddedStruct { - this := &NinEmbeddedStruct{} - if r.Intn(10) != 0 { - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - this.Field200 = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v112 := bool(bool(r.Intn(2) == 0)) - this.Field210 = &v112 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 211) - } - return this -} - -func NewPopulatedNidNestedStruct(r randyThetest, easy bool) *NidNestedStruct { - this := &NidNestedStruct{} - v113 := NewPopulatedNidOptStruct(r, easy) - this.Field1 = *v113 - if r.Intn(10) != 0 { - v114 := r.Intn(5) - this.Field2 = make([]NidRepStruct, v114) - for i := 0; i < v114; i++ { - v115 := NewPopulatedNidRepStruct(r, easy) - this.Field2[i] = *v115 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNinNestedStruct(r randyThetest, easy bool) *NinNestedStruct { - this := &NinNestedStruct{} - if r.Intn(10) != 0 { - this.Field1 = NewPopulatedNinOptStruct(r, easy) - } - if r.Intn(10) != 0 { - v116 := r.Intn(5) - this.Field2 = make([]*NinRepStruct, v116) - for i := 0; i < v116; i++ { - this.Field2[i] = NewPopulatedNinRepStruct(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNidOptCustom(r randyThetest, easy bool) *NidOptCustom { - this := &NidOptCustom{} - v117 := NewPopulatedUuid(r) - this.Id = *v117 - v118 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Value = *v118 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedCustomDash(r randyThetest, easy bool) *CustomDash { - this := &CustomDash{} - if r.Intn(10) != 0 { - this.Value = github_com_gogo_protobuf_test_custom_dash_type.NewPopulatedBytes(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinOptCustom(r randyThetest, easy bool) *NinOptCustom { - this := &NinOptCustom{} - if r.Intn(10) != 0 { - this.Id = NewPopulatedUuid(r) - } - if r.Intn(10) != 0 { - this.Value = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNidRepCustom(r randyThetest, easy bool) *NidRepCustom { - this := &NidRepCustom{} - if r.Intn(10) != 0 { - v119 := r.Intn(10) - this.Id = make([]Uuid, v119) - for i := 0; i < v119; i++ { - v120 := NewPopulatedUuid(r) - this.Id[i] = *v120 - } - } - if r.Intn(10) != 0 { - v121 := r.Intn(10) - this.Value = make([]github_com_gogo_protobuf_test_custom.Uint128, v121) - for i := 0; i < v121; i++ { - v122 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Value[i] = *v122 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNinRepCustom(r randyThetest, easy bool) *NinRepCustom { - this := &NinRepCustom{} - if r.Intn(10) != 0 { - v123 := r.Intn(10) - this.Id = make([]Uuid, v123) - for i := 0; i < v123; i++ { - v124 := NewPopulatedUuid(r) - this.Id[i] = *v124 - } - } - if r.Intn(10) != 0 { - v125 := r.Intn(10) - this.Value = make([]github_com_gogo_protobuf_test_custom.Uint128, v125) - for i := 0; i < v125; i++ { - v126 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Value[i] = *v126 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion { - this := &NinOptNativeUnion{} - fieldNum := r.Intn(9) - switch fieldNum { - case 0: - v127 := float64(r.Float64()) - if r.Intn(2) == 0 { - v127 *= -1 - } - this.Field1 = &v127 - case 1: - v128 := float32(r.Float32()) - if r.Intn(2) == 0 { - v128 *= -1 - } - this.Field2 = &v128 - case 2: - v129 := int32(r.Int31()) - if r.Intn(2) == 0 { - v129 *= -1 - } - this.Field3 = &v129 - case 3: - v130 := int64(r.Int63()) - if r.Intn(2) == 0 { - v130 *= -1 - } - this.Field4 = &v130 - case 4: - v131 := uint32(r.Uint32()) - this.Field5 = &v131 - case 5: - v132 := uint64(uint64(r.Uint32())) - this.Field6 = &v132 - case 6: - v133 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v133 - case 7: - v134 := string(randStringThetest(r)) - this.Field14 = &v134 - case 8: - v135 := r.Intn(100) - this.Field15 = make([]byte, v135) - for i := 0; i < v135; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - return this -} - -func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion { - this := &NinOptStructUnion{} - fieldNum := r.Intn(9) - switch fieldNum { - case 0: - v136 := float64(r.Float64()) - if r.Intn(2) == 0 { - v136 *= -1 - } - this.Field1 = &v136 - case 1: - v137 := float32(r.Float32()) - if r.Intn(2) == 0 { - v137 *= -1 - } - this.Field2 = &v137 - case 2: - this.Field3 = NewPopulatedNidOptNative(r, easy) - case 3: - this.Field4 = NewPopulatedNinOptNative(r, easy) - case 4: - v138 := uint64(uint64(r.Uint32())) - this.Field6 = &v138 - case 5: - v139 := int32(r.Int31()) - if r.Intn(2) == 0 { - v139 *= -1 - } - this.Field7 = &v139 - case 6: - v140 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v140 - case 7: - v141 := string(randStringThetest(r)) - this.Field14 = &v141 - case 8: - v142 := r.Intn(100) - this.Field15 = make([]byte, v142) - for i := 0; i < v142; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - return this -} - -func NewPopulatedNinEmbeddedStructUnion(r randyThetest, easy bool) *NinEmbeddedStructUnion { - this := &NinEmbeddedStructUnion{} - fieldNum := r.Intn(3) - switch fieldNum { - case 0: - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - case 1: - this.Field200 = NewPopulatedNinOptNative(r, easy) - case 2: - v143 := bool(bool(r.Intn(2) == 0)) - this.Field210 = &v143 - } - return this -} - -func NewPopulatedNinNestedStructUnion(r randyThetest, easy bool) *NinNestedStructUnion { - this := &NinNestedStructUnion{} - fieldNum := r.Intn(3) - switch fieldNum { - case 0: - this.Field1 = NewPopulatedNinOptNativeUnion(r, easy) - case 1: - this.Field2 = NewPopulatedNinOptStructUnion(r, easy) - case 2: - this.Field3 = NewPopulatedNinEmbeddedStructUnion(r, easy) - } - return this -} - -func NewPopulatedTree(r randyThetest, easy bool) *Tree { - this := &Tree{} - fieldNum := r.Intn(102) - switch fieldNum { - case 0: - this.Or = NewPopulatedOrBranch(r, easy) - case 1: - this.And = NewPopulatedAndBranch(r, easy) - case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101: - this.Leaf = NewPopulatedLeaf(r, easy) - } - return this -} - -func NewPopulatedOrBranch(r randyThetest, easy bool) *OrBranch { - this := &OrBranch{} - v144 := NewPopulatedTree(r, easy) - this.Left = *v144 - v145 := NewPopulatedTree(r, easy) - this.Right = *v145 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedAndBranch(r randyThetest, easy bool) *AndBranch { - this := &AndBranch{} - v146 := NewPopulatedTree(r, easy) - this.Left = *v146 - v147 := NewPopulatedTree(r, easy) - this.Right = *v147 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { - this := &Leaf{} - this.Value = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Value *= -1 - } - this.StrValue = string(randStringThetest(r)) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedDeepTree(r randyThetest, easy bool) *DeepTree { - this := &DeepTree{} - fieldNum := r.Intn(102) - switch fieldNum { - case 0: - this.Down = NewPopulatedADeepBranch(r, easy) - case 1: - this.And = NewPopulatedAndDeepBranch(r, easy) - case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101: - this.Leaf = NewPopulatedDeepLeaf(r, easy) - } - return this -} - -func NewPopulatedADeepBranch(r randyThetest, easy bool) *ADeepBranch { - this := &ADeepBranch{} - v148 := NewPopulatedDeepTree(r, easy) - this.Down = *v148 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedAndDeepBranch(r randyThetest, easy bool) *AndDeepBranch { - this := &AndDeepBranch{} - v149 := NewPopulatedDeepTree(r, easy) - this.Left = *v149 - v150 := NewPopulatedDeepTree(r, easy) - this.Right = *v150 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedDeepLeaf(r randyThetest, easy bool) *DeepLeaf { - this := &DeepLeaf{} - v151 := NewPopulatedTree(r, easy) - this.Tree = *v151 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNil(r randyThetest, easy bool) *Nil { - this := &Nil{} - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 1) - } - return this -} - -func NewPopulatedNidOptEnum(r randyThetest, easy bool) *NidOptEnum { - this := &NidOptEnum{} - this.Field1 = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinOptEnum(r randyThetest, easy bool) *NinOptEnum { - this := &NinOptEnum{} - if r.Intn(10) != 0 { - v152 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - this.Field1 = &v152 - } - if r.Intn(10) != 0 { - v153 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v153 - } - if r.Intn(10) != 0 { - v154 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v154 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNidRepEnum(r randyThetest, easy bool) *NidRepEnum { - this := &NidRepEnum{} - if r.Intn(10) != 0 { - v155 := r.Intn(10) - this.Field1 = make([]TheTestEnum, v155) - for i := 0; i < v155; i++ { - this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v156 := r.Intn(10) - this.Field2 = make([]YetAnotherTestEnum, v156) - for i := 0; i < v156; i++ { - this.Field2[i] = YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if r.Intn(10) != 0 { - v157 := r.Intn(10) - this.Field3 = make([]YetYetAnotherTestEnum, v157) - for i := 0; i < v157; i++ { - this.Field3[i] = YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNinRepEnum(r randyThetest, easy bool) *NinRepEnum { - this := &NinRepEnum{} - if r.Intn(10) != 0 { - v158 := r.Intn(10) - this.Field1 = make([]TheTestEnum, v158) - for i := 0; i < v158; i++ { - this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v159 := r.Intn(10) - this.Field2 = make([]YetAnotherTestEnum, v159) - for i := 0; i < v159; i++ { - this.Field2[i] = YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if r.Intn(10) != 0 { - v160 := r.Intn(10) - this.Field3 = make([]YetYetAnotherTestEnum, v160) - for i := 0; i < v160; i++ { - this.Field3[i] = YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNinOptEnumDefault(r randyThetest, easy bool) *NinOptEnumDefault { - this := &NinOptEnumDefault{} - if r.Intn(10) != 0 { - v161 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - this.Field1 = &v161 - } - if r.Intn(10) != 0 { - v162 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v162 - } - if r.Intn(10) != 0 { - v163 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v163 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedAnotherNinOptEnum(r randyThetest, easy bool) *AnotherNinOptEnum { - this := &AnotherNinOptEnum{} - if r.Intn(10) != 0 { - v164 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)]) - this.Field1 = &v164 - } - if r.Intn(10) != 0 { - v165 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v165 - } - if r.Intn(10) != 0 { - v166 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v166 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedAnotherNinOptEnumDefault(r randyThetest, easy bool) *AnotherNinOptEnumDefault { - this := &AnotherNinOptEnumDefault{} - if r.Intn(10) != 0 { - v167 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)]) - this.Field1 = &v167 - } - if r.Intn(10) != 0 { - v168 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v168 - } - if r.Intn(10) != 0 { - v169 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v169 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedTimer(r randyThetest, easy bool) *Timer { - this := &Timer{} - this.Time1 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Time1 *= -1 - } - this.Time2 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Time2 *= -1 - } - v170 := r.Intn(100) - this.Data = make([]byte, v170) - for i := 0; i < v170; i++ { - this.Data[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { - this := &MyExtendable{} - if r.Intn(10) != 0 { - v171 := int64(r.Int63()) - if r.Intn(2) == 0 { - v171 *= -1 - } - this.Field1 = &v171 - } - if !easy && r.Intn(10) != 0 { - l := r.Intn(5) - for i := 0; i < l; i++ { - fieldNumber := r.Intn(100) + 100 - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 201) - } - return this -} - -func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { - this := &OtherExtenable{} - if r.Intn(10) != 0 { - v172 := int64(r.Int63()) - if r.Intn(2) == 0 { - v172 *= -1 - } - this.Field2 = &v172 - } - if r.Intn(10) != 0 { - v173 := int64(r.Int63()) - if r.Intn(2) == 0 { - v173 *= -1 - } - this.Field13 = &v173 - } - if r.Intn(10) != 0 { - this.M = NewPopulatedMyExtendable(r, easy) - } - if !easy && r.Intn(10) != 0 { - l := r.Intn(5) - for i := 0; i < l; i++ { - eIndex := r.Intn(2) - fieldNumber := 0 - switch eIndex { - case 0: - fieldNumber = r.Intn(3) + 14 - case 1: - fieldNumber = r.Intn(3) + 10 - } - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 18) - } - return this -} - -func NewPopulatedNestedDefinition(r randyThetest, easy bool) *NestedDefinition { - this := &NestedDefinition{} - if r.Intn(10) != 0 { - v174 := int64(r.Int63()) - if r.Intn(2) == 0 { - v174 *= -1 - } - this.Field1 = &v174 - } - if r.Intn(10) != 0 { - v175 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)]) - this.EnumField = &v175 - } - if r.Intn(10) != 0 { - this.NNM = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy) - } - if r.Intn(10) != 0 { - this.NM = NewPopulatedNestedDefinition_NestedMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 5) - } - return this -} - -func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *NestedDefinition_NestedMessage { - this := &NestedDefinition_NestedMessage{} - if r.Intn(10) != 0 { - v176 := uint64(uint64(r.Uint32())) - this.NestedField1 = &v176 - } - if r.Intn(10) != 0 { - this.NNM = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { - this := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if r.Intn(10) != 0 { - v177 := string(randStringThetest(r)) - this.NestedNestedField1 = &v177 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 11) - } - return this -} - -func NewPopulatedNestedScope(r randyThetest, easy bool) *NestedScope { - this := &NestedScope{} - if r.Intn(10) != 0 { - this.A = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy) - } - if r.Intn(10) != 0 { - v178 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)]) - this.B = &v178 - } - if r.Intn(10) != 0 { - this.C = NewPopulatedNestedDefinition_NestedMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDefault { - this := &NinOptNativeDefault{} - if r.Intn(10) != 0 { - v179 := float64(r.Float64()) - if r.Intn(2) == 0 { - v179 *= -1 - } - this.Field1 = &v179 - } - if r.Intn(10) != 0 { - v180 := float32(r.Float32()) - if r.Intn(2) == 0 { - v180 *= -1 - } - this.Field2 = &v180 - } - if r.Intn(10) != 0 { - v181 := int32(r.Int31()) - if r.Intn(2) == 0 { - v181 *= -1 - } - this.Field3 = &v181 - } - if r.Intn(10) != 0 { - v182 := int64(r.Int63()) - if r.Intn(2) == 0 { - v182 *= -1 - } - this.Field4 = &v182 - } - if r.Intn(10) != 0 { - v183 := uint32(r.Uint32()) - this.Field5 = &v183 - } - if r.Intn(10) != 0 { - v184 := uint64(uint64(r.Uint32())) - this.Field6 = &v184 - } - if r.Intn(10) != 0 { - v185 := int32(r.Int31()) - if r.Intn(2) == 0 { - v185 *= -1 - } - this.Field7 = &v185 - } - if r.Intn(10) != 0 { - v186 := int64(r.Int63()) - if r.Intn(2) == 0 { - v186 *= -1 - } - this.Field8 = &v186 - } - if r.Intn(10) != 0 { - v187 := uint32(r.Uint32()) - this.Field9 = &v187 - } - if r.Intn(10) != 0 { - v188 := int32(r.Int31()) - if r.Intn(2) == 0 { - v188 *= -1 - } - this.Field10 = &v188 - } - if r.Intn(10) != 0 { - v189 := uint64(uint64(r.Uint32())) - this.Field11 = &v189 - } - if r.Intn(10) != 0 { - v190 := int64(r.Int63()) - if r.Intn(2) == 0 { - v190 *= -1 - } - this.Field12 = &v190 - } - if r.Intn(10) != 0 { - v191 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v191 - } - if r.Intn(10) != 0 { - v192 := string(randStringThetest(r)) - this.Field14 = &v192 - } - if r.Intn(10) != 0 { - v193 := r.Intn(100) - this.Field15 = make([]byte, v193) - for i := 0; i < v193; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomContainer(r randyThetest, easy bool) *CustomContainer { - this := &CustomContainer{} - v194 := NewPopulatedNidOptCustom(r, easy) - this.CustomStruct = *v194 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNidOptNative { - this := &CustomNameNidOptNative{} - this.FieldA = float64(r.Float64()) - if r.Intn(2) == 0 { - this.FieldA *= -1 - } - this.FieldB = float32(r.Float32()) - if r.Intn(2) == 0 { - this.FieldB *= -1 - } - this.FieldC = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldC *= -1 - } - this.FieldD = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldD *= -1 - } - this.FieldE = uint32(r.Uint32()) - this.FieldF = uint64(uint64(r.Uint32())) - this.FieldG = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldG *= -1 - } - this.FieldH = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldH *= -1 - } - this.FieldI = uint32(r.Uint32()) - this.FieldJ = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldJ *= -1 - } - this.FieldK = uint64(uint64(r.Uint32())) - this.FieldL = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldL *= -1 - } - this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = string(randStringThetest(r)) - v195 := r.Intn(100) - this.FieldO = make([]byte, v195) - for i := 0; i < v195; i++ { - this.FieldO[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNinOptNative { - this := &CustomNameNinOptNative{} - if r.Intn(10) != 0 { - v196 := float64(r.Float64()) - if r.Intn(2) == 0 { - v196 *= -1 - } - this.FieldA = &v196 - } - if r.Intn(10) != 0 { - v197 := float32(r.Float32()) - if r.Intn(2) == 0 { - v197 *= -1 - } - this.FieldB = &v197 - } - if r.Intn(10) != 0 { - v198 := int32(r.Int31()) - if r.Intn(2) == 0 { - v198 *= -1 - } - this.FieldC = &v198 - } - if r.Intn(10) != 0 { - v199 := int64(r.Int63()) - if r.Intn(2) == 0 { - v199 *= -1 - } - this.FieldD = &v199 - } - if r.Intn(10) != 0 { - v200 := uint32(r.Uint32()) - this.FieldE = &v200 - } - if r.Intn(10) != 0 { - v201 := uint64(uint64(r.Uint32())) - this.FieldF = &v201 - } - if r.Intn(10) != 0 { - v202 := int32(r.Int31()) - if r.Intn(2) == 0 { - v202 *= -1 - } - this.FieldG = &v202 - } - if r.Intn(10) != 0 { - v203 := int64(r.Int63()) - if r.Intn(2) == 0 { - v203 *= -1 - } - this.FieldH = &v203 - } - if r.Intn(10) != 0 { - v204 := uint32(r.Uint32()) - this.FieldI = &v204 - } - if r.Intn(10) != 0 { - v205 := int32(r.Int31()) - if r.Intn(2) == 0 { - v205 *= -1 - } - this.FieldJ = &v205 - } - if r.Intn(10) != 0 { - v206 := uint64(uint64(r.Uint32())) - this.FieldK = &v206 - } - if r.Intn(10) != 0 { - v207 := int64(r.Int63()) - if r.Intn(2) == 0 { - v207 *= -1 - } - this.FielL = &v207 - } - if r.Intn(10) != 0 { - v208 := bool(bool(r.Intn(2) == 0)) - this.FieldM = &v208 - } - if r.Intn(10) != 0 { - v209 := string(randStringThetest(r)) - this.FieldN = &v209 - } - if r.Intn(10) != 0 { - v210 := r.Intn(100) - this.FieldO = make([]byte, v210) - for i := 0; i < v210; i++ { - this.FieldO[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNinRepNative { - this := &CustomNameNinRepNative{} - if r.Intn(10) != 0 { - v211 := r.Intn(10) - this.FieldA = make([]float64, v211) - for i := 0; i < v211; i++ { - this.FieldA[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.FieldA[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v212 := r.Intn(10) - this.FieldB = make([]float32, v212) - for i := 0; i < v212; i++ { - this.FieldB[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.FieldB[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v213 := r.Intn(10) - this.FieldC = make([]int32, v213) - for i := 0; i < v213; i++ { - this.FieldC[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldC[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v214 := r.Intn(10) - this.FieldD = make([]int64, v214) - for i := 0; i < v214; i++ { - this.FieldD[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldD[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v215 := r.Intn(10) - this.FieldE = make([]uint32, v215) - for i := 0; i < v215; i++ { - this.FieldE[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v216 := r.Intn(10) - this.FieldF = make([]uint64, v216) - for i := 0; i < v216; i++ { - this.FieldF[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v217 := r.Intn(10) - this.FieldG = make([]int32, v217) - for i := 0; i < v217; i++ { - this.FieldG[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldG[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v218 := r.Intn(10) - this.FieldH = make([]int64, v218) - for i := 0; i < v218; i++ { - this.FieldH[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldH[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v219 := r.Intn(10) - this.FieldI = make([]uint32, v219) - for i := 0; i < v219; i++ { - this.FieldI[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v220 := r.Intn(10) - this.FieldJ = make([]int32, v220) - for i := 0; i < v220; i++ { - this.FieldJ[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldJ[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v221 := r.Intn(10) - this.FieldK = make([]uint64, v221) - for i := 0; i < v221; i++ { - this.FieldK[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v222 := r.Intn(10) - this.FieldL = make([]int64, v222) - for i := 0; i < v222; i++ { - this.FieldL[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldL[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v223 := r.Intn(10) - this.FieldM = make([]bool, v223) - for i := 0; i < v223; i++ { - this.FieldM[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v224 := r.Intn(10) - this.FieldN = make([]string, v224) - for i := 0; i < v224; i++ { - this.FieldN[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v225 := r.Intn(10) - this.FieldO = make([][]byte, v225) - for i := 0; i < v225; i++ { - v226 := r.Intn(100) - this.FieldO[i] = make([]byte, v226) - for j := 0; j < v226; j++ { - this.FieldO[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinStruct { - this := &CustomNameNinStruct{} - if r.Intn(10) != 0 { - v227 := float64(r.Float64()) - if r.Intn(2) == 0 { - v227 *= -1 - } - this.FieldA = &v227 - } - if r.Intn(10) != 0 { - v228 := float32(r.Float32()) - if r.Intn(2) == 0 { - v228 *= -1 - } - this.FieldB = &v228 - } - if r.Intn(10) != 0 { - this.FieldC = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v229 := r.Intn(5) - this.FieldD = make([]*NinOptNative, v229) - for i := 0; i < v229; i++ { - this.FieldD[i] = NewPopulatedNinOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v230 := uint64(uint64(r.Uint32())) - this.FieldE = &v230 - } - if r.Intn(10) != 0 { - v231 := int32(r.Int31()) - if r.Intn(2) == 0 { - v231 *= -1 - } - this.FieldF = &v231 - } - if r.Intn(10) != 0 { - this.FieldG = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v232 := bool(bool(r.Intn(2) == 0)) - this.FieldH = &v232 - } - if r.Intn(10) != 0 { - v233 := string(randStringThetest(r)) - this.FieldI = &v233 - } - if r.Intn(10) != 0 { - v234 := r.Intn(100) - this.FieldJ = make([]byte, v234) - for i := 0; i < v234; i++ { - this.FieldJ[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameCustomType(r randyThetest, easy bool) *CustomNameCustomType { - this := &CustomNameCustomType{} - if r.Intn(10) != 0 { - this.FieldA = NewPopulatedUuid(r) - } - if r.Intn(10) != 0 { - this.FieldB = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - } - if r.Intn(10) != 0 { - v235 := r.Intn(10) - this.FieldC = make([]Uuid, v235) - for i := 0; i < v235; i++ { - v236 := NewPopulatedUuid(r) - this.FieldC[i] = *v236 - } - } - if r.Intn(10) != 0 { - v237 := r.Intn(10) - this.FieldD = make([]github_com_gogo_protobuf_test_custom.Uint128, v237) - for i := 0; i < v237; i++ { - v238 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.FieldD[i] = *v238 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 5) - } - return this -} - -func NewPopulatedCustomNameNinEmbeddedStructUnion(r randyThetest, easy bool) *CustomNameNinEmbeddedStructUnion { - this := &CustomNameNinEmbeddedStructUnion{} - fieldNum := r.Intn(3) - switch fieldNum { - case 0: - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - case 1: - this.FieldA = NewPopulatedNinOptNative(r, easy) - case 2: - v239 := bool(bool(r.Intn(2) == 0)) - this.FieldB = &v239 - } - return this -} - -func NewPopulatedCustomNameEnum(r randyThetest, easy bool) *CustomNameEnum { - this := &CustomNameEnum{} - if r.Intn(10) != 0 { - v240 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - this.FieldA = &v240 - } - if r.Intn(10) != 0 { - v241 := r.Intn(10) - this.FieldB = make([]TheTestEnum, v241) - for i := 0; i < v241; i++ { - this.FieldB[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { - this := &NoExtensionsMap{} - if r.Intn(10) != 0 { - v242 := int64(r.Int63()) - if r.Intn(2) == 0 { - v242 *= -1 - } - this.Field1 = &v242 - } - if !easy && r.Intn(10) != 0 { - l := r.Intn(5) - for i := 0; i < l; i++ { - fieldNumber := r.Intn(100) + 100 - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 201) - } - return this -} - -func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { - this := &Unrecognized{} - if r.Intn(10) != 0 { - v243 := string(randStringThetest(r)) - this.Field1 = &v243 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedWithInner { - this := &UnrecognizedWithInner{} - if r.Intn(10) != 0 { - v244 := r.Intn(5) - this.Embedded = make([]*UnrecognizedWithInner_Inner, v244) - for i := 0; i < v244; i++ { - this.Embedded[i] = NewPopulatedUnrecognizedWithInner_Inner(r, easy) - } - } - if r.Intn(10) != 0 { - v245 := string(randStringThetest(r)) - this.Field2 = &v245 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedUnrecognizedWithInner_Inner(r randyThetest, easy bool) *UnrecognizedWithInner_Inner { - this := &UnrecognizedWithInner_Inner{} - if r.Intn(10) != 0 { - v246 := uint32(r.Uint32()) - this.Field1 = &v246 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedWithEmbed { - this := &UnrecognizedWithEmbed{} - v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) - this.UnrecognizedWithEmbed_Embedded = *v247 - if r.Intn(10) != 0 { - v248 := string(randStringThetest(r)) - this.Field2 = &v248 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *UnrecognizedWithEmbed_Embedded { - this := &UnrecognizedWithEmbed_Embedded{} - if r.Intn(10) != 0 { - v249 := uint32(r.Uint32()) - this.Field1 = &v249 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedNode(r randyThetest, easy bool) *Node { - this := &Node{} - if r.Intn(10) != 0 { - v250 := string(randStringThetest(r)) - this.Label = &v250 - } - if r.Intn(10) == 0 { - v251 := r.Intn(5) - this.Children = make([]*Node, v251) - for i := 0; i < v251; i++ { - this.Children[i] = NewPopulatedNode(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { - this := &NonByteCustomType{} - if r.Intn(10) != 0 { - this.Field1 = NewPopulatedT(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { - this := &NidOptNonByteCustomType{} - v252 := NewPopulatedT(r) - this.Field1 = *v252 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { - this := &NinOptNonByteCustomType{} - if r.Intn(10) != 0 { - this.Field1 = NewPopulatedT(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { - this := &NidRepNonByteCustomType{} - if r.Intn(10) != 0 { - v253 := r.Intn(10) - this.Field1 = make([]T, v253) - for i := 0; i < v253; i++ { - v254 := NewPopulatedT(r) - this.Field1[i] = *v254 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { - this := &NinRepNonByteCustomType{} - if r.Intn(10) != 0 { - v255 := r.Intn(10) - this.Field1 = make([]T, v255) - for i := 0; i < v255; i++ { - v256 := NewPopulatedT(r) - this.Field1[i] = *v256 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { - this := &ProtoType{} - if r.Intn(10) != 0 { - v257 := string(randStringThetest(r)) - this.Field2 = &v257 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -type randyThetest interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneThetest(r randyThetest) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringThetest(r randyThetest) string { - v258 := r.Intn(100) - tmps := make([]rune, v258) - for i := 0; i < v258; i++ { - tmps[i] = randUTF8RuneThetest(r) - } - return string(tmps) -} -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - v259 := r.Int63() - if r.Intn(2) == 0 { - v259 *= -1 - } - dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) - case 1: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *NidOptNative) Size() (n int) { - var l int - _ = l - n += 9 - n += 5 - n += 1 + sovThetest(uint64(m.Field3)) - n += 1 + sovThetest(uint64(m.Field4)) - n += 1 + sovThetest(uint64(m.Field5)) - n += 1 + sovThetest(uint64(m.Field6)) - n += 1 + sozThetest(uint64(m.Field7)) - n += 1 + sozThetest(uint64(m.Field8)) - n += 5 - n += 5 - n += 9 - n += 9 - n += 2 - l = len(m.Field14) - n += 1 + l + sovThetest(uint64(l)) - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNative) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.Field4 != nil { - n += 1 + sovThetest(uint64(*m.Field4)) - } - if m.Field5 != nil { - n += 1 + sovThetest(uint64(*m.Field5)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field8 != nil { - n += 1 + sozThetest(uint64(*m.Field8)) - } - if m.Field9 != nil { - n += 5 - } - if m.Field10 != nil { - n += 5 - } - if m.Field11 != nil { - n += 9 - } - if m.Field12 != nil { - n += 9 - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field5) > 0 { - for _, e := range m.Field5 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field9) > 0 { - n += 5 * len(m.Field9) - } - if len(m.Field10) > 0 { - n += 5 * len(m.Field10) - } - if len(m.Field11) > 0 { - n += 9 * len(m.Field11) - } - if len(m.Field12) > 0 { - n += 9 * len(m.Field12) - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field5) > 0 { - for _, e := range m.Field5 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field9) > 0 { - n += 5 * len(m.Field9) - } - if len(m.Field10) > 0 { - n += 5 * len(m.Field10) - } - if len(m.Field11) > 0 { - n += 9 * len(m.Field11) - } - if len(m.Field12) > 0 { - n += 9 * len(m.Field12) - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepPackedNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 1 + sovThetest(uint64(len(m.Field1)*8)) + len(m.Field1)*8 - } - if len(m.Field2) > 0 { - n += 1 + sovThetest(uint64(len(m.Field2)*4)) + len(m.Field2)*4 - } - if len(m.Field3) > 0 { - l = 0 - for _, e := range m.Field3 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field4) > 0 { - l = 0 - for _, e := range m.Field4 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field5) > 0 { - l = 0 - for _, e := range m.Field5 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field6) > 0 { - l = 0 - for _, e := range m.Field6 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field7) > 0 { - l = 0 - for _, e := range m.Field7 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field8) > 0 { - l = 0 - for _, e := range m.Field8 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field9) > 0 { - n += 1 + sovThetest(uint64(len(m.Field9)*4)) + len(m.Field9)*4 - } - if len(m.Field10) > 0 { - n += 1 + sovThetest(uint64(len(m.Field10)*4)) + len(m.Field10)*4 - } - if len(m.Field11) > 0 { - n += 1 + sovThetest(uint64(len(m.Field11)*8)) + len(m.Field11)*8 - } - if len(m.Field12) > 0 { - n += 1 + sovThetest(uint64(len(m.Field12)*8)) + len(m.Field12)*8 - } - if len(m.Field13) > 0 { - n += 1 + sovThetest(uint64(len(m.Field13))) + len(m.Field13)*1 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepPackedNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 1 + sovThetest(uint64(len(m.Field1)*8)) + len(m.Field1)*8 - } - if len(m.Field2) > 0 { - n += 1 + sovThetest(uint64(len(m.Field2)*4)) + len(m.Field2)*4 - } - if len(m.Field3) > 0 { - l = 0 - for _, e := range m.Field3 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field4) > 0 { - l = 0 - for _, e := range m.Field4 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field5) > 0 { - l = 0 - for _, e := range m.Field5 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field6) > 0 { - l = 0 - for _, e := range m.Field6 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field7) > 0 { - l = 0 - for _, e := range m.Field7 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field8) > 0 { - l = 0 - for _, e := range m.Field8 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field9) > 0 { - n += 1 + sovThetest(uint64(len(m.Field9)*4)) + len(m.Field9)*4 - } - if len(m.Field10) > 0 { - n += 1 + sovThetest(uint64(len(m.Field10)*4)) + len(m.Field10)*4 - } - if len(m.Field11) > 0 { - n += 1 + sovThetest(uint64(len(m.Field11)*8)) + len(m.Field11)*8 - } - if len(m.Field12) > 0 { - n += 1 + sovThetest(uint64(len(m.Field12)*8)) + len(m.Field12)*8 - } - if len(m.Field13) > 0 { - n += 1 + sovThetest(uint64(len(m.Field13))) + len(m.Field13)*1 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptStruct) Size() (n int) { - var l int - _ = l - n += 9 - n += 5 - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Field4.Size() - n += 1 + l + sovThetest(uint64(l)) - n += 1 + sovThetest(uint64(m.Field6)) - n += 1 + sozThetest(uint64(m.Field7)) - l = m.Field8.Size() - n += 1 + l + sovThetest(uint64(l)) - n += 2 - l = len(m.Field14) - n += 1 + l + sovThetest(uint64(l)) - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptStruct) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field4 != nil { - l = m.Field4.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field8 != nil { - l = m.Field8.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepStruct) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepStruct) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidEmbeddedStruct) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - l = m.Field200.Size() - n += 2 + l + sovThetest(uint64(l)) - n += 3 - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinEmbeddedStruct) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field200 != nil { - l = m.Field200.Size() - n += 2 + l + sovThetest(uint64(l)) - } - if m.Field210 != nil { - n += 3 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidNestedStruct) Size() (n int) { - var l int - _ = l - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinNestedStruct) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptCustom) Size() (n int) { - var l int - _ = l - l = m.Id.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Value.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomDash) Size() (n int) { - var l int - _ = l - if m.Value != nil { - l = m.Value.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptCustom) Size() (n int) { - var l int - _ = l - if m.Id != nil { - l = m.Id.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Value != nil { - l = m.Value.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepCustom) Size() (n int) { - var l int - _ = l - if len(m.Id) > 0 { - for _, e := range m.Id { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Value) > 0 { - for _, e := range m.Value { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepCustom) Size() (n int) { - var l int - _ = l - if len(m.Id) > 0 { - for _, e := range m.Id { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Value) > 0 { - for _, e := range m.Value { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNativeUnion) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.Field4 != nil { - n += 1 + sovThetest(uint64(*m.Field4)) - } - if m.Field5 != nil { - n += 1 + sovThetest(uint64(*m.Field5)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptStructUnion) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field4 != nil { - l = m.Field4.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinEmbeddedStructUnion) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field200 != nil { - l = m.Field200.Size() - n += 2 + l + sovThetest(uint64(l)) - } - if m.Field210 != nil { - n += 3 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinNestedStructUnion) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field2 != nil { - l = m.Field2.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field3 != nil { - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Tree) Size() (n int) { - var l int - _ = l - if m.Or != nil { - l = m.Or.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.And != nil { - l = m.And.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Leaf != nil { - l = m.Leaf.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OrBranch) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Right.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AndBranch) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Right.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Leaf) Size() (n int) { - var l int - _ = l - n += 1 + sovThetest(uint64(m.Value)) - l = len(m.StrValue) - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DeepTree) Size() (n int) { - var l int - _ = l - if m.Down != nil { - l = m.Down.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.And != nil { - l = m.And.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Leaf != nil { - l = m.Leaf.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ADeepBranch) Size() (n int) { - var l int - _ = l - l = m.Down.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AndDeepBranch) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Right.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DeepLeaf) Size() (n int) { - var l int - _ = l - l = m.Tree.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Nil) Size() (n int) { - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptEnum) Size() (n int) { - var l int - _ = l - n += 1 + sovThetest(uint64(m.Field1)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptEnum) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepEnum) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepEnum) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptEnumDefault) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AnotherNinOptEnum) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AnotherNinOptEnumDefault) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Timer) Size() (n int) { - var l int - _ = l - n += 9 - n += 9 - if m.Data != nil { - l = len(m.Data) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *MyExtendable) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OtherExtenable) Size() (n int) { - var l int - _ = l - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field13 != nil { - n += 1 + sovThetest(uint64(*m.Field13)) - } - if m.M != nil { - l = m.M.Size() - n += 1 + l + sovThetest(uint64(l)) - } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedDefinition) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.EnumField != nil { - n += 1 + sovThetest(uint64(*m.EnumField)) - } - if m.NNM != nil { - l = m.NNM.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.NM != nil { - l = m.NM.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedDefinition_NestedMessage) Size() (n int) { - var l int - _ = l - if m.NestedField1 != nil { - n += 9 - } - if m.NNM != nil { - l = m.NNM.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Size() (n int) { - var l int - _ = l - if m.NestedNestedField1 != nil { - l = len(*m.NestedNestedField1) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedScope) Size() (n int) { - var l int - _ = l - if m.A != nil { - l = m.A.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.B != nil { - n += 1 + sovThetest(uint64(*m.B)) - } - if m.C != nil { - l = m.C.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNativeDefault) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.Field4 != nil { - n += 1 + sovThetest(uint64(*m.Field4)) - } - if m.Field5 != nil { - n += 1 + sovThetest(uint64(*m.Field5)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field8 != nil { - n += 1 + sozThetest(uint64(*m.Field8)) - } - if m.Field9 != nil { - n += 5 - } - if m.Field10 != nil { - n += 5 - } - if m.Field11 != nil { - n += 9 - } - if m.Field12 != nil { - n += 9 - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomContainer) Size() (n int) { - var l int - _ = l - l = m.CustomStruct.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNidOptNative) Size() (n int) { - var l int - _ = l - n += 9 - n += 5 - n += 1 + sovThetest(uint64(m.FieldC)) - n += 1 + sovThetest(uint64(m.FieldD)) - n += 1 + sovThetest(uint64(m.FieldE)) - n += 1 + sovThetest(uint64(m.FieldF)) - n += 1 + sozThetest(uint64(m.FieldG)) - n += 1 + sozThetest(uint64(m.FieldH)) - n += 5 - n += 5 - n += 9 - n += 9 - n += 2 - l = len(m.FieldN) - n += 1 + l + sovThetest(uint64(l)) - if m.FieldO != nil { - l = len(m.FieldO) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinOptNative) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - n += 9 - } - if m.FieldB != nil { - n += 5 - } - if m.FieldC != nil { - n += 1 + sovThetest(uint64(*m.FieldC)) - } - if m.FieldD != nil { - n += 1 + sovThetest(uint64(*m.FieldD)) - } - if m.FieldE != nil { - n += 1 + sovThetest(uint64(*m.FieldE)) - } - if m.FieldF != nil { - n += 1 + sovThetest(uint64(*m.FieldF)) - } - if m.FieldG != nil { - n += 1 + sozThetest(uint64(*m.FieldG)) - } - if m.FieldH != nil { - n += 1 + sozThetest(uint64(*m.FieldH)) - } - if m.FieldI != nil { - n += 5 - } - if m.FieldJ != nil { - n += 5 - } - if m.FieldK != nil { - n += 9 - } - if m.FielL != nil { - n += 9 - } - if m.FieldM != nil { - n += 2 - } - if m.FieldN != nil { - l = len(*m.FieldN) - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldO != nil { - l = len(m.FieldO) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinRepNative) Size() (n int) { - var l int - _ = l - if len(m.FieldA) > 0 { - n += 9 * len(m.FieldA) - } - if len(m.FieldB) > 0 { - n += 5 * len(m.FieldB) - } - if len(m.FieldC) > 0 { - for _, e := range m.FieldC { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldD) > 0 { - for _, e := range m.FieldD { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldE) > 0 { - for _, e := range m.FieldE { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldF) > 0 { - for _, e := range m.FieldF { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldG) > 0 { - for _, e := range m.FieldG { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.FieldH) > 0 { - for _, e := range m.FieldH { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.FieldI) > 0 { - n += 5 * len(m.FieldI) - } - if len(m.FieldJ) > 0 { - n += 5 * len(m.FieldJ) - } - if len(m.FieldK) > 0 { - n += 9 * len(m.FieldK) - } - if len(m.FieldL) > 0 { - n += 9 * len(m.FieldL) - } - if len(m.FieldM) > 0 { - n += 2 * len(m.FieldM) - } - if len(m.FieldN) > 0 { - for _, s := range m.FieldN { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.FieldO) > 0 { - for _, b := range m.FieldO { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinStruct) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - n += 9 - } - if m.FieldB != nil { - n += 5 - } - if m.FieldC != nil { - l = m.FieldC.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.FieldD) > 0 { - for _, e := range m.FieldD { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.FieldE != nil { - n += 1 + sovThetest(uint64(*m.FieldE)) - } - if m.FieldF != nil { - n += 1 + sozThetest(uint64(*m.FieldF)) - } - if m.FieldG != nil { - l = m.FieldG.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldH != nil { - n += 2 - } - if m.FieldI != nil { - l = len(*m.FieldI) - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldJ != nil { - l = len(m.FieldJ) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameCustomType) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - l = m.FieldA.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldB != nil { - l = m.FieldB.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.FieldC) > 0 { - for _, e := range m.FieldC { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.FieldD) > 0 { - for _, e := range m.FieldD { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinEmbeddedStructUnion) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldA != nil { - l = m.FieldA.Size() - n += 2 + l + sovThetest(uint64(l)) - } - if m.FieldB != nil { - n += 3 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameEnum) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - n += 1 + sovThetest(uint64(*m.FieldA)) - } - if len(m.FieldB) > 0 { - for _, e := range m.FieldB { - n += 1 + sovThetest(uint64(e)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NoExtensionsMap) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.XXX_extensions != nil { - n += len(m.XXX_extensions) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Unrecognized) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = len(*m.Field1) - n += 1 + l + sovThetest(uint64(l)) - } - return n -} - -func (m *UnrecognizedWithInner) Size() (n int) { - var l int - _ = l - if len(m.Embedded) > 0 { - for _, e := range m.Embedded { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *UnrecognizedWithInner_Inner) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - return n -} - -func (m *UnrecognizedWithEmbed) Size() (n int) { - var l int - _ = l - l = m.UnrecognizedWithEmbed_Embedded.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *UnrecognizedWithEmbed_Embedded) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - return n -} - -func (m *Node) Size() (n int) { - var l int - _ = l - if m.Label != nil { - l = len(*m.Label) - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.Children) > 0 { - for _, e := range m.Children { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NonByteCustomType) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptNonByteCustomType) Size() (n int) { - var l int - _ = l - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNonByteCustomType) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepNonByteCustomType) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepNonByteCustomType) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ProtoType) Size() (n int) { - var l int - _ = l - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovThetest(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozThetest(x uint64) (n int) { - return sovThetest(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *NidOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNative{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `Field4:` + valueToStringThetest(this.Field4) + `,`, - `Field5:` + valueToStringThetest(this.Field5) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field8:` + valueToStringThetest(this.Field8) + `,`, - `Field9:` + valueToStringThetest(this.Field9) + `,`, - `Field10:` + valueToStringThetest(this.Field10) + `,`, - `Field11:` + valueToStringThetest(this.Field11) + `,`, - `Field12:` + valueToStringThetest(this.Field12) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepPackedNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepPackedNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepPackedNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepPackedNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptStruct{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + strings.Replace(strings.Replace(this.Field3.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field4:` + strings.Replace(strings.Replace(this.Field4.String(), "NinOptNative", "NinOptNative", 1), `&`, ``, 1) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + strings.Replace(strings.Replace(this.Field8.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptStruct{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`, - `Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field8:` + strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 1) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepStruct{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field4:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1), `&`, ``, 1) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepStruct{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`, - `Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 1) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidEmbeddedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidEmbeddedStruct{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `Field200:` + strings.Replace(strings.Replace(this.Field200.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field210:` + fmt.Sprintf("%v", this.Field210) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinEmbeddedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinEmbeddedStruct{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `Field200:` + strings.Replace(fmt.Sprintf("%v", this.Field200), "NidOptNative", "NidOptNative", 1) + `,`, - `Field210:` + valueToStringThetest(this.Field210) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidNestedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidNestedStruct{`, - `Field1:` + strings.Replace(strings.Replace(this.Field1.String(), "NidOptStruct", "NidOptStruct", 1), `&`, ``, 1) + `,`, - `Field2:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field2), "NidRepStruct", "NidRepStruct", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinNestedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinNestedStruct{`, - `Field1:` + strings.Replace(fmt.Sprintf("%v", this.Field1), "NinOptStruct", "NinOptStruct", 1) + `,`, - `Field2:` + strings.Replace(fmt.Sprintf("%v", this.Field2), "NinRepStruct", "NinRepStruct", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptCustom{`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomDash) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomDash{`, - `Value:` + valueToStringThetest(this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptCustom{`, - `Id:` + valueToStringThetest(this.Id) + `,`, - `Value:` + valueToStringThetest(this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepCustom{`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepCustom{`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNativeUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNativeUnion{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `Field4:` + valueToStringThetest(this.Field4) + `,`, - `Field5:` + valueToStringThetest(this.Field5) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptStructUnion{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`, - `Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinEmbeddedStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinEmbeddedStructUnion{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `Field200:` + strings.Replace(fmt.Sprintf("%v", this.Field200), "NinOptNative", "NinOptNative", 1) + `,`, - `Field210:` + valueToStringThetest(this.Field210) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinNestedStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinNestedStructUnion{`, - `Field1:` + strings.Replace(fmt.Sprintf("%v", this.Field1), "NinOptNativeUnion", "NinOptNativeUnion", 1) + `,`, - `Field2:` + strings.Replace(fmt.Sprintf("%v", this.Field2), "NinOptStructUnion", "NinOptStructUnion", 1) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NinEmbeddedStructUnion", "NinEmbeddedStructUnion", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Tree) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Tree{`, - `Or:` + strings.Replace(fmt.Sprintf("%v", this.Or), "OrBranch", "OrBranch", 1) + `,`, - `And:` + strings.Replace(fmt.Sprintf("%v", this.And), "AndBranch", "AndBranch", 1) + `,`, - `Leaf:` + strings.Replace(fmt.Sprintf("%v", this.Leaf), "Leaf", "Leaf", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *OrBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OrBranch{`, - `Left:` + strings.Replace(strings.Replace(this.Left.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `Right:` + strings.Replace(strings.Replace(this.Right.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AndBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AndBranch{`, - `Left:` + strings.Replace(strings.Replace(this.Left.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `Right:` + strings.Replace(strings.Replace(this.Right.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Leaf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Leaf{`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `StrValue:` + fmt.Sprintf("%v", this.StrValue) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *DeepTree) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeepTree{`, - `Down:` + strings.Replace(fmt.Sprintf("%v", this.Down), "ADeepBranch", "ADeepBranch", 1) + `,`, - `And:` + strings.Replace(fmt.Sprintf("%v", this.And), "AndDeepBranch", "AndDeepBranch", 1) + `,`, - `Leaf:` + strings.Replace(fmt.Sprintf("%v", this.Leaf), "DeepLeaf", "DeepLeaf", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *ADeepBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ADeepBranch{`, - `Down:` + strings.Replace(strings.Replace(this.Down.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AndDeepBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AndDeepBranch{`, - `Left:` + strings.Replace(strings.Replace(this.Left.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`, - `Right:` + strings.Replace(strings.Replace(this.Right.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *DeepLeaf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeepLeaf{`, - `Tree:` + strings.Replace(strings.Replace(this.Tree.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Nil) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Nil{`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptEnum{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptEnum{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepEnum{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepEnum{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptEnumDefault) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptEnumDefault{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AnotherNinOptEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AnotherNinOptEnum{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AnotherNinOptEnumDefault) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AnotherNinOptEnumDefault{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Timer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Timer{`, - `Time1:` + fmt.Sprintf("%v", this.Time1) + `,`, - `Time2:` + fmt.Sprintf("%v", this.Time2) + `,`, - `Data:` + fmt.Sprintf("%v", this.Data) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *MyExtendable) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&MyExtendable{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *OtherExtenable) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OtherExtenable{`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedDefinition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedDefinition{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `EnumField:` + valueToStringThetest(this.EnumField) + `,`, - `NNM:` + strings.Replace(fmt.Sprintf("%v", this.NNM), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`, - `NM:` + strings.Replace(fmt.Sprintf("%v", this.NM), "NestedDefinition_NestedMessage", "NestedDefinition_NestedMessage", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedDefinition_NestedMessage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedDefinition_NestedMessage{`, - `NestedField1:` + valueToStringThetest(this.NestedField1) + `,`, - `NNM:` + strings.Replace(fmt.Sprintf("%v", this.NNM), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedDefinition_NestedMessage_NestedNestedMsg{`, - `NestedNestedField1:` + valueToStringThetest(this.NestedNestedField1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedScope) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedScope{`, - `A:` + strings.Replace(fmt.Sprintf("%v", this.A), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`, - `B:` + valueToStringThetest(this.B) + `,`, - `C:` + strings.Replace(fmt.Sprintf("%v", this.C), "NestedDefinition_NestedMessage", "NestedDefinition_NestedMessage", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNativeDefault) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNativeDefault{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `Field4:` + valueToStringThetest(this.Field4) + `,`, - `Field5:` + valueToStringThetest(this.Field5) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field8:` + valueToStringThetest(this.Field8) + `,`, - `Field9:` + valueToStringThetest(this.Field9) + `,`, - `Field10:` + valueToStringThetest(this.Field10) + `,`, - `Field11:` + valueToStringThetest(this.Field11) + `,`, - `Field12:` + valueToStringThetest(this.Field12) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomContainer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomContainer{`, - `CustomStruct:` + strings.Replace(strings.Replace(this.CustomStruct.String(), "NidOptCustom", "NidOptCustom", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNidOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNidOptNative{`, - `FieldA:` + fmt.Sprintf("%v", this.FieldA) + `,`, - `FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`, - `FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`, - `FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`, - `FieldE:` + fmt.Sprintf("%v", this.FieldE) + `,`, - `FieldF:` + fmt.Sprintf("%v", this.FieldF) + `,`, - `FieldG:` + fmt.Sprintf("%v", this.FieldG) + `,`, - `FieldH:` + fmt.Sprintf("%v", this.FieldH) + `,`, - `FieldI:` + fmt.Sprintf("%v", this.FieldI) + `,`, - `FieldJ:` + fmt.Sprintf("%v", this.FieldJ) + `,`, - `FieldK:` + fmt.Sprintf("%v", this.FieldK) + `,`, - `FieldL:` + fmt.Sprintf("%v", this.FieldL) + `,`, - `FieldM:` + fmt.Sprintf("%v", this.FieldM) + `,`, - `FieldN:` + fmt.Sprintf("%v", this.FieldN) + `,`, - `FieldO:` + fmt.Sprintf("%v", this.FieldO) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinOptNative{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `FieldC:` + valueToStringThetest(this.FieldC) + `,`, - `FieldD:` + valueToStringThetest(this.FieldD) + `,`, - `FieldE:` + valueToStringThetest(this.FieldE) + `,`, - `FieldF:` + valueToStringThetest(this.FieldF) + `,`, - `FieldG:` + valueToStringThetest(this.FieldG) + `,`, - `FieldH:` + valueToStringThetest(this.FieldH) + `,`, - `FieldI:` + valueToStringThetest(this.FieldI) + `,`, - `FieldJ:` + valueToStringThetest(this.FieldJ) + `,`, - `FieldK:` + valueToStringThetest(this.FieldK) + `,`, - `FielL:` + valueToStringThetest(this.FielL) + `,`, - `FieldM:` + valueToStringThetest(this.FieldM) + `,`, - `FieldN:` + valueToStringThetest(this.FieldN) + `,`, - `FieldO:` + valueToStringThetest(this.FieldO) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinRepNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinRepNative{`, - `FieldA:` + fmt.Sprintf("%v", this.FieldA) + `,`, - `FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`, - `FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`, - `FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`, - `FieldE:` + fmt.Sprintf("%v", this.FieldE) + `,`, - `FieldF:` + fmt.Sprintf("%v", this.FieldF) + `,`, - `FieldG:` + fmt.Sprintf("%v", this.FieldG) + `,`, - `FieldH:` + fmt.Sprintf("%v", this.FieldH) + `,`, - `FieldI:` + fmt.Sprintf("%v", this.FieldI) + `,`, - `FieldJ:` + fmt.Sprintf("%v", this.FieldJ) + `,`, - `FieldK:` + fmt.Sprintf("%v", this.FieldK) + `,`, - `FieldL:` + fmt.Sprintf("%v", this.FieldL) + `,`, - `FieldM:` + fmt.Sprintf("%v", this.FieldM) + `,`, - `FieldN:` + fmt.Sprintf("%v", this.FieldN) + `,`, - `FieldO:` + fmt.Sprintf("%v", this.FieldO) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinStruct{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `FieldC:` + strings.Replace(fmt.Sprintf("%v", this.FieldC), "NidOptNative", "NidOptNative", 1) + `,`, - `FieldD:` + strings.Replace(fmt.Sprintf("%v", this.FieldD), "NinOptNative", "NinOptNative", 1) + `,`, - `FieldE:` + valueToStringThetest(this.FieldE) + `,`, - `FieldF:` + valueToStringThetest(this.FieldF) + `,`, - `FieldG:` + strings.Replace(fmt.Sprintf("%v", this.FieldG), "NidOptNative", "NidOptNative", 1) + `,`, - `FieldH:` + valueToStringThetest(this.FieldH) + `,`, - `FieldI:` + valueToStringThetest(this.FieldI) + `,`, - `FieldJ:` + valueToStringThetest(this.FieldJ) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameCustomType{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`, - `FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinEmbeddedStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinEmbeddedStructUnion{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `FieldA:` + strings.Replace(fmt.Sprintf("%v", this.FieldA), "NinOptNative", "NinOptNative", 1) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameEnum{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NoExtensionsMap) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NoExtensionsMap{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Unrecognized) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Unrecognized{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithInner) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithInner{`, - `Embedded:` + strings.Replace(fmt.Sprintf("%v", this.Embedded), "UnrecognizedWithInner_Inner", "UnrecognizedWithInner_Inner", 1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithInner_Inner) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithInner_Inner{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithEmbed) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithEmbed{`, - `UnrecognizedWithEmbed_Embedded:` + strings.Replace(strings.Replace(this.UnrecognizedWithEmbed_Embedded.String(), "UnrecognizedWithEmbed_Embedded", "UnrecognizedWithEmbed_Embedded", 1), `&`, ``, 1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithEmbed_Embedded) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithEmbed_Embedded{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *Node) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Node{`, - `Label:` + valueToStringThetest(this.Label) + `,`, - `Children:` + strings.Replace(fmt.Sprintf("%v", this.Children), "Node", "Node", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NonByteCustomType{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptNonByteCustomType{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNonByteCustomType{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepNonByteCustomType{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepNonByteCustomType{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *ProtoType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ProtoType{`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringThetest(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (this *NinOptNativeUnion) GetValue() interface{} { - if this.Field1 != nil { - return this.Field1 - } - if this.Field2 != nil { - return this.Field2 - } - if this.Field3 != nil { - return this.Field3 - } - if this.Field4 != nil { - return this.Field4 - } - if this.Field5 != nil { - return this.Field5 - } - if this.Field6 != nil { - return this.Field6 - } - if this.Field13 != nil { - return this.Field13 - } - if this.Field14 != nil { - return this.Field14 - } - if this.Field15 != nil { - return this.Field15 - } - return nil -} - -func (this *NinOptNativeUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *float64: - this.Field1 = vt - case *float32: - this.Field2 = vt - case *int32: - this.Field3 = vt - case *int64: - this.Field4 = vt - case *uint32: - this.Field5 = vt - case *uint64: - this.Field6 = vt - case *bool: - this.Field13 = vt - case *string: - this.Field14 = vt - case []byte: - this.Field15 = vt - default: - return false - } - return true -} -func (this *NinOptStructUnion) GetValue() interface{} { - if this.Field1 != nil { - return this.Field1 - } - if this.Field2 != nil { - return this.Field2 - } - if this.Field3 != nil { - return this.Field3 - } - if this.Field4 != nil { - return this.Field4 - } - if this.Field6 != nil { - return this.Field6 - } - if this.Field7 != nil { - return this.Field7 - } - if this.Field13 != nil { - return this.Field13 - } - if this.Field14 != nil { - return this.Field14 - } - if this.Field15 != nil { - return this.Field15 - } - return nil -} - -func (this *NinOptStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *float64: - this.Field1 = vt - case *float32: - this.Field2 = vt - case *NidOptNative: - this.Field3 = vt - case *NinOptNative: - this.Field4 = vt - case *uint64: - this.Field6 = vt - case *int32: - this.Field7 = vt - case *bool: - this.Field13 = vt - case *string: - this.Field14 = vt - case []byte: - this.Field15 = vt - default: - return false - } - return true -} -func (this *NinEmbeddedStructUnion) GetValue() interface{} { - if this.NidOptNative != nil { - return this.NidOptNative - } - if this.Field200 != nil { - return this.Field200 - } - if this.Field210 != nil { - return this.Field210 - } - return nil -} - -func (this *NinEmbeddedStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *NidOptNative: - this.NidOptNative = vt - case *NinOptNative: - this.Field200 = vt - case *bool: - this.Field210 = vt - default: - return false - } - return true -} -func (this *NinNestedStructUnion) GetValue() interface{} { - if this.Field1 != nil { - return this.Field1 - } - if this.Field2 != nil { - return this.Field2 - } - if this.Field3 != nil { - return this.Field3 - } - return nil -} - -func (this *NinNestedStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *NinOptNativeUnion: - this.Field1 = vt - case *NinOptStructUnion: - this.Field2 = vt - case *NinEmbeddedStructUnion: - this.Field3 = vt - default: - this.Field1 = new(NinOptNativeUnion) - if set := this.Field1.SetValue(value); set { - return true - } - this.Field1 = nil - this.Field2 = new(NinOptStructUnion) - if set := this.Field2.SetValue(value); set { - return true - } - this.Field2 = nil - this.Field3 = new(NinEmbeddedStructUnion) - if set := this.Field3.SetValue(value); set { - return true - } - this.Field3 = nil - return false - } - return true -} -func (this *Tree) GetValue() interface{} { - if this.Or != nil { - return this.Or - } - if this.And != nil { - return this.And - } - if this.Leaf != nil { - return this.Leaf - } - return nil -} - -func (this *Tree) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *OrBranch: - this.Or = vt - case *AndBranch: - this.And = vt - case *Leaf: - this.Leaf = vt - default: - return false - } - return true -} -func (this *DeepTree) GetValue() interface{} { - if this.Down != nil { - return this.Down - } - if this.And != nil { - return this.And - } - if this.Leaf != nil { - return this.Leaf - } - return nil -} - -func (this *DeepTree) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *ADeepBranch: - this.Down = vt - case *AndDeepBranch: - this.And = vt - case *DeepLeaf: - this.Leaf = vt - default: - return false - } - return true -} -func (this *CustomNameNinEmbeddedStructUnion) GetValue() interface{} { - if this.NidOptNative != nil { - return this.NidOptNative - } - if this.FieldA != nil { - return this.FieldA - } - if this.FieldB != nil { - return this.FieldB - } - return nil -} - -func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *NidOptNative: - this.NidOptNative = vt - case *NinOptNative: - this.FieldA = vt - case *bool: - this.FieldB = vt - default: - return false - } - return true -} -func (m *NidOptNative) 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 *NidOptNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3)) - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field4)) - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field5)) - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 - i += 4 - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 - i += 4 - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 - i += 8 - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 - i += 8 - dAtA[i] = 0x68 - i++ - if m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) - i += copy(dAtA[i:], m.Field14) - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptNative) 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 *NinOptNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.Field4 != nil { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) - } - if m.Field5 != nil { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field7 != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) - } - if m.Field8 != nil { - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) - } - if m.Field9 != nil { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.Field9 - i += 4 - } - if m.Field10 != nil { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.Field10 - i += 4 - } - if m.Field11 != nil { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.Field11 - i += 8 - } - if m.Field12 != nil { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.Field12 - i += 8 - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepNative) 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 *NidRepNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - for _, num := range m.Field3 { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field4) > 0 { - for _, num := range m.Field4 { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field5) > 0 { - for _, num := range m.Field5 { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field6) > 0 { - for _, num := range m.Field6 { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field7) > 0 { - for _, num := range m.Field7 { - dAtA[i] = 0x38 - i++ - x1 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x1 >= 1<<7 { - dAtA[i] = uint8(uint64(x1)&0x7f | 0x80) - x1 >>= 7 - i++ - } - dAtA[i] = uint8(x1) - i++ - } - } - if len(m.Field8) > 0 { - for _, num := range m.Field8 { - dAtA[i] = 0x40 - i++ - x2 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x2 >= 1<<7 { - dAtA[i] = uint8(uint64(x2)&0x7f | 0x80) - x2 >>= 7 - i++ - } - dAtA[i] = uint8(x2) - i++ - } - } - if len(m.Field9) > 0 { - for _, num := range m.Field9 { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field10) > 0 { - for _, num := range m.Field10 { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field11) > 0 { - for _, num := range m.Field11 { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field12) > 0 { - for _, num := range m.Field12 { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field13) > 0 { - for _, b := range m.Field13 { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - dAtA[i] = 0x72 - 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.Field15) > 0 { - for _, b := range m.Field15 { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepNative) 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 *NinRepNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - for _, num := range m.Field3 { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field4) > 0 { - for _, num := range m.Field4 { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field5) > 0 { - for _, num := range m.Field5 { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field6) > 0 { - for _, num := range m.Field6 { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field7) > 0 { - for _, num := range m.Field7 { - dAtA[i] = 0x38 - i++ - x3 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x3 >= 1<<7 { - dAtA[i] = uint8(uint64(x3)&0x7f | 0x80) - x3 >>= 7 - i++ - } - dAtA[i] = uint8(x3) - i++ - } - } - if len(m.Field8) > 0 { - for _, num := range m.Field8 { - dAtA[i] = 0x40 - i++ - x4 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x4 >= 1<<7 { - dAtA[i] = uint8(uint64(x4)&0x7f | 0x80) - x4 >>= 7 - i++ - } - dAtA[i] = uint8(x4) - i++ - } - } - if len(m.Field9) > 0 { - for _, num := range m.Field9 { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field10) > 0 { - for _, num := range m.Field10 { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field11) > 0 { - for _, num := range m.Field11 { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field12) > 0 { - for _, num := range m.Field12 { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field13) > 0 { - for _, b := range m.Field13 { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - dAtA[i] = 0x72 - 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.Field15) > 0 { - for _, b := range m.Field15 { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepPackedNative) 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 *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) - for _, num := range m.Field1 { - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) - for _, num := range m.Field2 { - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - dAtA6 := make([]byte, len(m.Field3)*10) - var j5 int - for _, num1 := range m.Field3 { - num := uint64(num1) - for num >= 1<<7 { - dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j5++ - } - dAtA6[j5] = uint8(num) - j5++ - } - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j5)) - i += copy(dAtA[i:], dAtA6[:j5]) - } - if len(m.Field4) > 0 { - dAtA8 := make([]byte, len(m.Field4)*10) - var j7 int - for _, num1 := range m.Field4 { - num := uint64(num1) - for num >= 1<<7 { - dAtA8[j7] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j7++ - } - dAtA8[j7] = uint8(num) - j7++ - } - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j7)) - i += copy(dAtA[i:], dAtA8[:j7]) - } - if len(m.Field5) > 0 { - dAtA10 := make([]byte, len(m.Field5)*10) - var j9 int - for _, num := range m.Field5 { - for num >= 1<<7 { - dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j9++ - } - dAtA10[j9] = uint8(num) - j9++ - } - dAtA[i] = 0x2a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j9)) - i += copy(dAtA[i:], dAtA10[:j9]) - } - if len(m.Field6) > 0 { - dAtA12 := make([]byte, len(m.Field6)*10) - var j11 int - for _, num := range m.Field6 { - for num >= 1<<7 { - dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j11++ - } - dAtA12[j11] = uint8(num) - j11++ - } - dAtA[i] = 0x32 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j11)) - i += copy(dAtA[i:], dAtA12[:j11]) - } - if len(m.Field7) > 0 { - dAtA13 := make([]byte, len(m.Field7)*5) - var j14 int - for _, num := range m.Field7 { - x15 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x15 >= 1<<7 { - dAtA13[j14] = uint8(uint64(x15)&0x7f | 0x80) - j14++ - x15 >>= 7 - } - dAtA13[j14] = uint8(x15) - j14++ - } - dAtA[i] = 0x3a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j14)) - i += copy(dAtA[i:], dAtA13[:j14]) - } - if len(m.Field8) > 0 { - var j16 int - dAtA18 := make([]byte, len(m.Field8)*10) - for _, num := range m.Field8 { - x17 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x17 >= 1<<7 { - dAtA18[j16] = uint8(uint64(x17)&0x7f | 0x80) - j16++ - x17 >>= 7 - } - dAtA18[j16] = uint8(x17) - j16++ - } - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j16)) - i += copy(dAtA[i:], dAtA18[:j16]) - } - if len(m.Field9) > 0 { - dAtA[i] = 0x4a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) - for _, num := range m.Field9 { - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field10) > 0 { - dAtA[i] = 0x52 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) - for _, num := range m.Field10 { - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field11) > 0 { - dAtA[i] = 0x5a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) - for _, num := range m.Field11 { - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field12) > 0 { - dAtA[i] = 0x62 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) - for _, num := range m.Field12 { - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field13) > 0 { - dAtA[i] = 0x6a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) - for _, b := range m.Field13 { - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepPackedNative) 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 *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) - for _, num := range m.Field1 { - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) - for _, num := range m.Field2 { - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - dAtA20 := make([]byte, len(m.Field3)*10) - var j19 int - for _, num1 := range m.Field3 { - num := uint64(num1) - for num >= 1<<7 { - dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j19++ - } - dAtA20[j19] = uint8(num) - j19++ - } - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j19)) - i += copy(dAtA[i:], dAtA20[:j19]) - } - if len(m.Field4) > 0 { - dAtA22 := make([]byte, len(m.Field4)*10) - var j21 int - for _, num1 := range m.Field4 { - num := uint64(num1) - for num >= 1<<7 { - dAtA22[j21] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j21++ - } - dAtA22[j21] = uint8(num) - j21++ - } - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j21)) - i += copy(dAtA[i:], dAtA22[:j21]) - } - if len(m.Field5) > 0 { - dAtA24 := make([]byte, len(m.Field5)*10) - var j23 int - for _, num := range m.Field5 { - for num >= 1<<7 { - dAtA24[j23] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j23++ - } - dAtA24[j23] = uint8(num) - j23++ - } - dAtA[i] = 0x2a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j23)) - i += copy(dAtA[i:], dAtA24[:j23]) - } - if len(m.Field6) > 0 { - dAtA26 := make([]byte, len(m.Field6)*10) - var j25 int - for _, num := range m.Field6 { - for num >= 1<<7 { - dAtA26[j25] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j25++ - } - dAtA26[j25] = uint8(num) - j25++ - } - dAtA[i] = 0x32 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j25)) - i += copy(dAtA[i:], dAtA26[:j25]) - } - if len(m.Field7) > 0 { - dAtA27 := make([]byte, len(m.Field7)*5) - var j28 int - for _, num := range m.Field7 { - x29 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x29 >= 1<<7 { - dAtA27[j28] = uint8(uint64(x29)&0x7f | 0x80) - j28++ - x29 >>= 7 - } - dAtA27[j28] = uint8(x29) - j28++ - } - dAtA[i] = 0x3a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j28)) - i += copy(dAtA[i:], dAtA27[:j28]) - } - if len(m.Field8) > 0 { - var j30 int - dAtA32 := make([]byte, len(m.Field8)*10) - for _, num := range m.Field8 { - x31 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x31 >= 1<<7 { - dAtA32[j30] = uint8(uint64(x31)&0x7f | 0x80) - j30++ - x31 >>= 7 - } - dAtA32[j30] = uint8(x31) - j30++ - } - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j30)) - i += copy(dAtA[i:], dAtA32[:j30]) - } - if len(m.Field9) > 0 { - dAtA[i] = 0x4a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) - for _, num := range m.Field9 { - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field10) > 0 { - dAtA[i] = 0x52 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) - for _, num := range m.Field10 { - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field11) > 0 { - dAtA[i] = 0x5a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) - for _, num := range m.Field11 { - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field12) > 0 { - dAtA[i] = 0x62 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) - for _, num := range m.Field12 { - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field13) > 0 { - dAtA[i] = 0x6a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) - for _, b := range m.Field13 { - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidOptStruct) 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 *NidOptStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) - n33, err := m.Field3.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n33 - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) - n34, err := m.Field4.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n34 - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) - n35, err := m.Field8.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n35 - dAtA[i] = 0x68 - i++ - if m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) - i += copy(dAtA[i:], m.Field14) - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptStruct) 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 *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) - n36, err := m.Field3.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n36 - } - if m.Field4 != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) - n37, err := m.Field4.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n37 - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field7 != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) - } - if m.Field8 != nil { - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) - n38, err := m.Field8.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n38 - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepStruct) 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 *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - for _, msg := range m.Field3 { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field4) > 0 { - for _, msg := range m.Field4 { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field6) > 0 { - for _, num := range m.Field6 { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field7) > 0 { - for _, num := range m.Field7 { - dAtA[i] = 0x38 - i++ - x39 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x39 >= 1<<7 { - dAtA[i] = uint8(uint64(x39)&0x7f | 0x80) - x39 >>= 7 - i++ - } - dAtA[i] = uint8(x39) - i++ - } - } - if len(m.Field8) > 0 { - for _, msg := range m.Field8 { - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field13) > 0 { - for _, b := range m.Field13 { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - dAtA[i] = 0x72 - 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.Field15) > 0 { - for _, b := range m.Field15 { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepStruct) 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 *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - for _, msg := range m.Field3 { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field4) > 0 { - for _, msg := range m.Field4 { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field6) > 0 { - for _, num := range m.Field6 { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field7) > 0 { - for _, num := range m.Field7 { - dAtA[i] = 0x38 - i++ - x40 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x40 >= 1<<7 { - dAtA[i] = uint8(uint64(x40)&0x7f | 0x80) - x40 >>= 7 - i++ - } - dAtA[i] = uint8(x40) - i++ - } - } - if len(m.Field8) > 0 { - for _, msg := range m.Field8 { - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field13) > 0 { - for _, b := range m.Field13 { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - dAtA[i] = 0x72 - 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.Field15) > 0 { - for _, b := range m.Field15 { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidEmbeddedStruct) 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 *NidEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NidOptNative != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) - n41, err := m.NidOptNative.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n41 - } - dAtA[i] = 0xc2 - i++ - dAtA[i] = 0xc - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) - n42, err := m.Field200.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n42 - dAtA[i] = 0x90 - i++ - dAtA[i] = 0xd - i++ - if m.Field210 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinEmbeddedStruct) 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 *NinEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NidOptNative != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) - n43, err := m.NidOptNative.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n43 - } - if m.Field200 != nil { - dAtA[i] = 0xc2 - i++ - dAtA[i] = 0xc - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) - n44, err := m.Field200.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n44 - } - if m.Field210 != nil { - dAtA[i] = 0x90 - i++ - dAtA[i] = 0xd - i++ - if *m.Field210 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidNestedStruct) 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 *NidNestedStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n45, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n45 - if len(m.Field2) > 0 { - for _, msg := range m.Field2 { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinNestedStruct) 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 *NinNestedStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n46, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n46 - } - if len(m.Field2) > 0 { - for _, msg := range m.Field2 { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidOptCustom) 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 *NidOptCustom) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) - n47, err := m.Id.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n47 - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) - n48, err := m.Value.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n48 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomDash) 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 *CustomDash) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Value != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) - n49, err := m.Value.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n49 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptCustom) 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 *NinOptCustom) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Id != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) - n50, err := m.Id.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n50 - } - if m.Value != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) - n51, err := m.Value.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n51 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepCustom) 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 *NidRepCustom) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Id) > 0 { - for _, msg := range m.Id { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Value) > 0 { - for _, msg := range m.Value { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepCustom) 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 *NinRepCustom) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Id) > 0 { - for _, msg := range m.Id { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Value) > 0 { - for _, msg := range m.Value { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptNativeUnion) 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 *NinOptNativeUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.Field4 != nil { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) - } - if m.Field5 != nil { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptStructUnion) 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 *NinOptStructUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) - n52, err := m.Field3.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n52 - } - if m.Field4 != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) - n53, err := m.Field4.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n53 - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field7 != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinEmbeddedStructUnion) 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 *NinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NidOptNative != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) - n54, err := m.NidOptNative.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n54 - } - if m.Field200 != nil { - dAtA[i] = 0xc2 - i++ - dAtA[i] = 0xc - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) - n55, err := m.Field200.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n55 - } - if m.Field210 != nil { - dAtA[i] = 0x90 - i++ - dAtA[i] = 0xd - i++ - if *m.Field210 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinNestedStructUnion) 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 *NinNestedStructUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n56, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n56 - } - if m.Field2 != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field2.Size())) - n57, err := m.Field2.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n57 - } - if m.Field3 != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) - n58, err := m.Field3.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n58 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Tree) 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 *Tree) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Or != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Or.Size())) - n59, err := m.Or.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n59 - } - if m.And != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) - n60, err := m.And.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n60 - } - if m.Leaf != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) - n61, err := m.Leaf.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n61 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *OrBranch) 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 *OrBranch) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) - n62, err := m.Left.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n62 - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) - n63, err := m.Right.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n63 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AndBranch) 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 *AndBranch) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) - n64, err := m.Left.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n64 - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) - n65, err := m.Right.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n65 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Leaf) 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 *Leaf) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Value)) - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.StrValue))) - i += copy(dAtA[i:], m.StrValue) - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *DeepTree) 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 *DeepTree) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Down != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) - n66, err := m.Down.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n66 - } - if m.And != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) - n67, err := m.And.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n67 - } - if m.Leaf != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) - n68, err := m.Leaf.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n68 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *ADeepBranch) 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 *ADeepBranch) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) - n69, err := m.Down.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n69 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AndDeepBranch) 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 *AndDeepBranch) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) - n70, err := m.Left.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n70 - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) - n71, err := m.Right.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n71 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *DeepLeaf) 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 *DeepLeaf) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Tree.Size())) - n72, err := m.Tree.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n72 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Nil) 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 *Nil) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidOptEnum) 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 *NidOptEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1)) - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptEnum) 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 *NinOptEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepEnum) 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 *NidRepEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field3) > 0 { - for _, num := range m.Field3 { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepEnum) 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 *NinRepEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field3) > 0 { - for _, num := range m.Field3 { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptEnumDefault) 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 *NinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AnotherNinOptEnum) 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 *AnotherNinOptEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AnotherNinOptEnumDefault) 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 *AnotherNinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Timer) 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 *Timer) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x9 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Time1 - i += 8 - dAtA[i] = 0x11 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Time2 - i += 8 - if m.Data != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Data))) - i += copy(dAtA[i:], m.Data) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *MyExtendable) 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 *MyExtendable) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *OtherExtenable) 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 *OtherExtenable) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.M != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.M.Size())) - n73, err := m.M.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n73 - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field13)) - } - n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NestedDefinition) 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 *NestedDefinition) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.EnumField != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.EnumField)) - } - if m.NNM != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) - n74, err := m.NNM.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n74 - } - if m.NM != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NM.Size())) - n75, err := m.NM.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n75 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NestedDefinition_NestedMessage) 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 *NestedDefinition_NestedMessage) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NestedField1 != nil { - dAtA[i] = 0x9 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.NestedField1 - i += 8 - } - if m.NNM != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) - n76, err := m.NNM.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n76 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) 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 *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NestedNestedField1 != nil { - dAtA[i] = 0x52 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.NestedNestedField1))) - i += copy(dAtA[i:], *m.NestedNestedField1) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NestedScope) 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 *NestedScope) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.A != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.A.Size())) - n77, err := m.A.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n77 - } - if m.B != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.B)) - } - if m.C != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.C.Size())) - n78, err := m.C.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n78 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptNativeDefault) 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 *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.Field4 != nil { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) - } - if m.Field5 != nil { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field7 != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) - } - if m.Field8 != nil { - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) - } - if m.Field9 != nil { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.Field9 - i += 4 - } - if m.Field10 != nil { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.Field10 - i += 4 - } - if m.Field11 != nil { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.Field11 - i += 8 - } - if m.Field12 != nil { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.Field12 - i += 8 - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomContainer) 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 *CustomContainer) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.CustomStruct.Size())) - n79, err := m.CustomStruct.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n79 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNidOptNative) 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 *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.FieldA - i += 8 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.FieldB - i += 4 - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldC)) - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldD)) - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldE)) - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldF)) - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.FieldI - i += 4 - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = m.FieldJ - i += 4 - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.FieldK - i += 8 - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.FieldL - i += 8 - dAtA[i] = 0x68 - i++ - if m.FieldM { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldN))) - i += copy(dAtA[i:], m.FieldN) - if m.FieldO != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) - i += copy(dAtA[i:], m.FieldO) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNinOptNative) 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 *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.FieldA != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.FieldA - i += 8 - } - if m.FieldB != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.FieldB - i += 4 - } - if m.FieldC != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldC)) - } - if m.FieldD != nil { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldD)) - } - if m.FieldE != nil { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) - } - if m.FieldF != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldF)) - } - if m.FieldG != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) - } - if m.FieldH != nil { - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) - } - if m.FieldI != nil { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.FieldI - i += 4 - } - if m.FieldJ != nil { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.FieldJ - i += 4 - } - if m.FieldK != nil { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.FieldK - i += 8 - } - if m.FielL != nil { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.FielL - i += 8 - } - if m.FieldM != nil { - dAtA[i] = 0x68 - i++ - if *m.FieldM { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.FieldN != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldN))) - i += copy(dAtA[i:], *m.FieldN) - } - if m.FieldO != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) - i += copy(dAtA[i:], m.FieldO) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNinRepNative) 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 *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.FieldA) > 0 { - for _, num := range m.FieldA { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.FieldB) > 0 { - for _, num := range m.FieldB { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.FieldC) > 0 { - for _, num := range m.FieldC { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.FieldD) > 0 { - for _, num := range m.FieldD { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.FieldE) > 0 { - for _, num := range m.FieldE { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.FieldF) > 0 { - for _, num := range m.FieldF { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.FieldG) > 0 { - for _, num := range m.FieldG { - dAtA[i] = 0x38 - i++ - x80 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x80 >= 1<<7 { - dAtA[i] = uint8(uint64(x80)&0x7f | 0x80) - x80 >>= 7 - i++ - } - dAtA[i] = uint8(x80) - i++ - } - } - if len(m.FieldH) > 0 { - for _, num := range m.FieldH { - dAtA[i] = 0x40 - i++ - x81 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x81 >= 1<<7 { - dAtA[i] = uint8(uint64(x81)&0x7f | 0x80) - x81 >>= 7 - i++ - } - dAtA[i] = uint8(x81) - i++ - } - } - if len(m.FieldI) > 0 { - for _, num := range m.FieldI { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.FieldJ) > 0 { - for _, num := range m.FieldJ { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.FieldK) > 0 { - for _, num := range m.FieldK { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.FieldL) > 0 { - for _, num := range m.FieldL { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.FieldM) > 0 { - for _, b := range m.FieldM { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.FieldN) > 0 { - for _, s := range m.FieldN { - dAtA[i] = 0x72 - 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.FieldO) > 0 { - for _, b := range m.FieldO { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNinStruct) 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 *CustomNameNinStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.FieldA != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.FieldA - i += 8 - } - if m.FieldB != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.FieldB - i += 4 - } - if m.FieldC != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldC.Size())) - n82, err := m.FieldC.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n82 - } - if len(m.FieldD) > 0 { - for _, msg := range m.FieldD { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.FieldE != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) - } - if m.FieldF != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) - } - if m.FieldG != nil { - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldG.Size())) - n83, err := m.FieldG.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n83 - } - if m.FieldH != nil { - dAtA[i] = 0x68 - i++ - if *m.FieldH { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.FieldI != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldI))) - i += copy(dAtA[i:], *m.FieldI) - } - if m.FieldJ != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldJ))) - i += copy(dAtA[i:], m.FieldJ) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameCustomType) 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 *CustomNameCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.FieldA != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) - n84, err := m.FieldA.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n84 - } - if m.FieldB != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldB.Size())) - n85, err := m.FieldB.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n85 - } - if len(m.FieldC) > 0 { - for _, msg := range m.FieldC { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.FieldD) > 0 { - for _, msg := range m.FieldD { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNinEmbeddedStructUnion) 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 *CustomNameNinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NidOptNative != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) - n86, err := m.NidOptNative.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n86 - } - if m.FieldA != nil { - dAtA[i] = 0xc2 - i++ - dAtA[i] = 0xc - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) - n87, err := m.FieldA.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n87 - } - if m.FieldB != nil { - dAtA[i] = 0x90 - i++ - dAtA[i] = 0xd - i++ - if *m.FieldB { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameEnum) 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 *CustomNameEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.FieldA != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldA)) - } - if len(m.FieldB) > 0 { - for _, num := range m.FieldB { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NoExtensionsMap) 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 *NoExtensionsMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.XXX_extensions != nil { - i += copy(dAtA[i:], m.XXX_extensions) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Unrecognized) 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 *Unrecognized) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field1))) - i += copy(dAtA[i:], *m.Field1) - } - return i, nil -} - -func (m *UnrecognizedWithInner) 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 *UnrecognizedWithInner) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Embedded) > 0 { - for _, msg := range m.Embedded { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.Field2 != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) - i += copy(dAtA[i:], *m.Field2) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *UnrecognizedWithInner_Inner) 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 *UnrecognizedWithInner_Inner) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - return i, nil -} - -func (m *UnrecognizedWithEmbed) 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 *UnrecognizedWithEmbed) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) - n88, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n88 - if m.Field2 != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) - i += copy(dAtA[i:], *m.Field2) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *UnrecognizedWithEmbed_Embedded) 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 *UnrecognizedWithEmbed_Embedded) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - return i, nil -} - -func (m *Node) 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 *Node) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Label != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Label))) - i += copy(dAtA[i:], *m.Label) - } - if len(m.Children) > 0 { - for _, msg := range m.Children { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NonByteCustomType) 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 *NonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n89, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n89 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidOptNonByteCustomType) 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 *NidOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n90, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n90 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptNonByteCustomType) 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 *NinOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n91, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n91 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepNonByteCustomType) 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 *NidRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, msg := range m.Field1 { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepNonByteCustomType) 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 *NinRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, msg := range m.Field1 { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *ProtoType) 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 *ProtoType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field2 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) - i += copy(dAtA[i:], *m.Field2) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Thetest(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 encodeFixed32Thetest(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 encodeVarintThetest(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 *NidOptNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - m.Field3 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field3 |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - m.Field4 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field4 |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - m.Field5 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field5 |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - m.Field6 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field6 |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = int64(v) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Field9 = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Field10 = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Field11 = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Field12 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = bool(v != 0) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = &v - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - v2 := int64(v) - m.Field8 = &v2 - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = &v - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = &v - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = &v - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepPackedNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepPackedNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepPackedNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepPackedNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidOptStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - m.Field6 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field6 |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = v - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = bool(v != 0) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field3 == nil { - m.Field3 = &NidOptNative{} - } - if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field4 == nil { - m.Field4 = &NinOptNative{} - } - if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field8 == nil { - m.Field8 = &NidOptNative{} - } - if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field3 = append(m.Field3, NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field4 = append(m.Field4, NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field8 = append(m.Field8, NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field3 = append(m.Field3, &NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field4 = append(m.Field4, &NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field8 = append(m.Field8, &NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidEmbeddedStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NidEmbeddedStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 200: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field210 = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinEmbeddedStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NinEmbeddedStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 200: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field200 == nil { - m.Field200 = &NidOptNative{} - } - if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field210 = &b - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidNestedStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NidNestedStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidNestedStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field2 = append(m.Field2, NidRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinNestedStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NinNestedStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinNestedStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field1 == nil { - m.Field1 = &NinOptStruct{} - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field2 = append(m.Field2, &NinRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidOptCustom) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptCustom: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptCustom: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomDash) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomDash: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomDash: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom_dash_type.Bytes - m.Value = &v - if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptCustom) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptCustom: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptCustom: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.Id = &v - if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.Value = &v - if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepCustom) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepCustom: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepCustom: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepCustom) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepCustom: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepCustom: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptNativeUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptNativeUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptNativeUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = &v - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptStructUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptStructUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptStructUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field3 == nil { - m.Field3 = &NidOptNative{} - } - if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field4 == nil { - m.Field4 = &NinOptNative{} - } - if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinEmbeddedStructUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: NinEmbeddedStructUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinEmbeddedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 200: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field200 == nil { - m.Field200 = &NinOptNative{} - } - if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field210 = &b - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinNestedStructUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: NinNestedStructUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinNestedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field1 == nil { - m.Field1 = &NinOptNativeUnion{} - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field2 == nil { - m.Field2 = &NinOptStructUnion{} - } - if err := m.Field2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field3 == nil { - m.Field3 = &NinEmbeddedStructUnion{} - } - if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Tree) 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 ErrIntOverflowThetestUnsafe - } - 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: Tree: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Tree: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Or", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Or == nil { - m.Or = &OrBranch{} - } - if err := m.Or.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field And", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.And == nil { - m.And = &AndBranch{} - } - if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Leaf", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Leaf == nil { - m.Leaf = &Leaf{} - } - if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OrBranch) 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 ErrIntOverflowThetestUnsafe - } - 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: OrBranch: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OrBranch: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AndBranch) 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 ErrIntOverflowThetestUnsafe - } - 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: AndBranch: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AndBranch: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Leaf) 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 ErrIntOverflowThetestUnsafe - } - 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: Leaf: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Leaf: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - m.Value = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Value |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StrValue", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StrValue = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeepTree) 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 ErrIntOverflowThetestUnsafe - } - 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: DeepTree: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeepTree: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Down", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Down == nil { - m.Down = &ADeepBranch{} - } - if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field And", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.And == nil { - m.And = &AndDeepBranch{} - } - if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Leaf", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Leaf == nil { - m.Leaf = &DeepLeaf{} - } - if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ADeepBranch) 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 ErrIntOverflowThetestUnsafe - } - 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: ADeepBranch: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ADeepBranch: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Down", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AndDeepBranch) 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 ErrIntOverflowThetestUnsafe - } - 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: AndDeepBranch: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AndDeepBranch: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeepLeaf) 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 ErrIntOverflowThetestUnsafe - } - 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: DeepLeaf: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeepLeaf: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tree", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Tree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Nil) 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 ErrIntOverflowThetestUnsafe - } - 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: Nil: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Nil: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidOptEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - m.Field1 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field1 |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 0 { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 0 { - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 0 { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 0 { - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptEnumDefault) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptEnumDefault: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptEnumDefault: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AnotherNinOptEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: AnotherNinOptEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnotherNinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v AnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (AnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AnotherNinOptEnumDefault) 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 ErrIntOverflowThetestUnsafe - } - 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: AnotherNinOptEnumDefault: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnotherNinOptEnumDefault: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v AnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (AnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Timer) 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 ErrIntOverflowThetestUnsafe - } - 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: Timer: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Timer: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Time1", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Time1 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 2: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Time2", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Time2 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MyExtendable) 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 ErrIntOverflowThetestUnsafe - } - 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: MyExtendable: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MyExtendable: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - default: - if (fieldNum >= 100) && (fieldNum < 200) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OtherExtenable) 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 ErrIntOverflowThetestUnsafe - } - 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: OtherExtenable: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OtherExtenable: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field M", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.M == nil { - m.M = &MyExtendable{} - } - if err := m.M.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = &v - default: - if ((fieldNum >= 14) && (fieldNum < 17)) || ((fieldNum >= 10) && (fieldNum < 13)) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NestedDefinition) 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 ErrIntOverflowThetestUnsafe - } - 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: NestedDefinition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedDefinition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EnumField", wireType) - } - var v NestedDefinition_NestedEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.EnumField = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NNM", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NNM == nil { - m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} - } - if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NM", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NM == nil { - m.NM = &NestedDefinition_NestedMessage{} - } - if err := m.NM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NestedDefinition_NestedMessage) 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 ErrIntOverflowThetestUnsafe - } - 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: NestedMessage: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedMessage: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field NestedField1", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.NestedField1 = &v - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NNM", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NNM == nil { - m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} - } - if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) 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 ErrIntOverflowThetestUnsafe - } - 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: NestedNestedMsg: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedNestedMsg: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NestedNestedField1", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.NestedNestedField1 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NestedScope) 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 ErrIntOverflowThetestUnsafe - } - 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: NestedScope: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedScope: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field A", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.A == nil { - m.A = &NestedDefinition_NestedMessage_NestedNestedMsg{} - } - if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field B", wireType) - } - var v NestedDefinition_NestedEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.B = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field C", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.C == nil { - m.C = &NestedDefinition_NestedMessage{} - } - if err := m.C.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptNativeDefault) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptNativeDefault: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptNativeDefault: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = &v - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - v2 := int64(v) - m.Field8 = &v2 - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = &v - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = &v - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = &v - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomContainer) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomContainer: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomContainer: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CustomStruct", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CustomStruct.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNidOptNative) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNidOptNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNidOptNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.FieldA = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.FieldB = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - m.FieldC = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FieldC |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - m.FieldD = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FieldD |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) - } - m.FieldE = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FieldE |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) - } - m.FieldF = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FieldF |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = int64(v) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.FieldI = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.FieldJ = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.FieldK = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.FieldL = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldM = bool(v != 0) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldN = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) - if m.FieldO == nil { - m.FieldO = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNinOptNative) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNinOptNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNinOptNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldA = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldB = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldC = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldD = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldE = &v - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldF = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - v2 := int64(v) - m.FieldH = &v2 - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldI = &v - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldJ = &v - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldK = &v - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FielL", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FielL = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.FieldM = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.FieldN = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) - if m.FieldO == nil { - m.FieldO = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNinRepNative) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNinRepNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNinRepNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldA = append(m.FieldA, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldA = append(m.FieldA, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldB = append(m.FieldB, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldB = append(m.FieldB, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldC = append(m.FieldC, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldC = append(m.FieldC, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldD = append(m.FieldD, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldD = append(m.FieldD, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldE = append(m.FieldE, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldE = append(m.FieldE, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldF = append(m.FieldF, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldF = append(m.FieldF, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = append(m.FieldG, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = append(m.FieldG, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = append(m.FieldH, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = append(m.FieldH, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldI = append(m.FieldI, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldI = append(m.FieldI, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldJ = append(m.FieldJ, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldJ = append(m.FieldJ, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldK = append(m.FieldK, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldK = append(m.FieldK, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldL = append(m.FieldL, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldL = append(m.FieldL, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldM = append(m.FieldM, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldM = append(m.FieldM, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldN = append(m.FieldN, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldO = append(m.FieldO, make([]byte, postIndex-iNdEx)) - copy(m.FieldO[len(m.FieldO)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNinStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNinStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNinStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldA = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldB = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.FieldC == nil { - m.FieldC = &NidOptNative{} - } - if err := m.FieldC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldD = append(m.FieldD, &NinOptNative{}) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldE = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldF = &v - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.FieldG == nil { - m.FieldG = &NidOptNative{} - } - if err := m.FieldG.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.FieldH = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.FieldI = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldJ = append(m.FieldJ[:0], dAtA[iNdEx:postIndex]...) - if m.FieldJ == nil { - m.FieldJ = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.FieldA = &v - if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.FieldB = &v - if err := m.FieldB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.FieldC = append(m.FieldC, v) - if err := m.FieldC[len(m.FieldC)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.FieldD = append(m.FieldD, v) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNinEmbeddedStructUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNinEmbeddedStructUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNinEmbeddedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 200: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.FieldA == nil { - m.FieldA = &NinOptNative{} - } - if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.FieldB = &b - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldA = &v - case 2: - if wireType == 0 { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldB = append(m.FieldB, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldB = append(m.FieldB, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NoExtensionsMap) 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 ErrIntOverflowThetestUnsafe - } - 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: NoExtensionsMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - default: - if (fieldNum >= 100) && (fieldNum < 200) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Unrecognized) 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 ErrIntOverflowThetestUnsafe - } - 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: Unrecognized: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field1 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UnrecognizedWithInner) 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 ErrIntOverflowThetestUnsafe - } - 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: UnrecognizedWithInner: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) - if err := m.Embedded[len(m.Embedded)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field2 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UnrecognizedWithInner_Inner) 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 ErrIntOverflowThetestUnsafe - } - 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: Inner: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UnrecognizedWithEmbed) 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 ErrIntOverflowThetestUnsafe - } - 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: UnrecognizedWithEmbed: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field2 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UnrecognizedWithEmbed_Embedded) 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 ErrIntOverflowThetestUnsafe - } - 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: Embedded: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Node) 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 ErrIntOverflowThetestUnsafe - } - 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: Node: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Label = &s - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Children = append(m.Children, &Node{}) - if err := m.Children[len(m.Children)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field1 == nil { - m.Field1 = &T{} - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidOptNonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptNonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptNonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptNonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field1 == nil { - m.Field1 = &T{} - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepNonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepNonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field1 = append(m.Field1, T{}) - if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepNonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepNonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field1 = append(m.Field1, T{}) - if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ProtoType) 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 ErrIntOverflowThetestUnsafe - } - 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: ProtoType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ProtoType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field2 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipThetestUnsafe(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, ErrIntOverflowThetestUnsafe - } - 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, ErrIntOverflowThetestUnsafe - } - 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, ErrIntOverflowThetestUnsafe - } - 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, ErrInvalidLengthThetestUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowThetestUnsafe - } - 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 := skipThetestUnsafe(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 ( - ErrInvalidLengthThetestUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowThetestUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeboth/thetest.proto", fileDescriptorThetest) } - -var fileDescriptorThetest = []byte{ - // 3084 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, - 0xd5, 0xd7, 0xec, 0x50, 0x0e, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, - 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, - 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x12, 0x57, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, - 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, - 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, - 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, - 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, - 0x30, 0xbb, 0xdb, 0x39, 0xda, 0xe9, 0xf4, 0x16, 0x4f, 0x8c, 0x5e, 0x73, 0x4f, 0xdf, 0xe9, 0x98, - 0x07, 0x8b, 0xe6, 0x81, 0x6e, 0xea, 0x3d, 0x73, 0xe1, 0xb8, 0xdb, 0x31, 0x3b, 0x72, 0xc2, 0xfa, - 0x3b, 0x7d, 0x63, 0xbf, 0x6d, 0x1e, 0x9c, 0xec, 0x2c, 0xec, 0x76, 0x8e, 0x16, 0xf7, 0x3b, 0xfb, - 0x9d, 0x45, 0x5b, 0xb8, 0x73, 0xb2, 0x67, 0xff, 0xb2, 0x7f, 0xd8, 0x7f, 0x39, 0x46, 0xda, 0x3f, - 0x31, 0x4c, 0xd4, 0xdb, 0xad, 0xad, 0x63, 0xb3, 0xde, 0x34, 0xdb, 0x6f, 0xe9, 0xf2, 0x0c, 0x5c, - 0xba, 0xdd, 0xd6, 0x0f, 0x5b, 0x4b, 0x0a, 0xca, 0xa0, 0x2c, 0x2a, 0x27, 0x4e, 0xcf, 0x66, 0x47, - 0x1a, 0x64, 0x8c, 0x4a, 0x0b, 0x8a, 0x94, 0x41, 0x59, 0x89, 0x93, 0x16, 0xa8, 0x74, 0x59, 0xc1, - 0x19, 0x94, 0x1d, 0xe5, 0xa4, 0xcb, 0x54, 0x5a, 0x54, 0x12, 0x19, 0x94, 0xc5, 0x9c, 0xb4, 0x48, - 0xa5, 0x2b, 0xca, 0x68, 0x06, 0x65, 0x2f, 0x73, 0xd2, 0x15, 0x2a, 0x5d, 0x55, 0x2e, 0x65, 0x50, - 0x36, 0xc1, 0x49, 0x57, 0xa9, 0xf4, 0xa6, 0xf2, 0x4c, 0x06, 0x65, 0xaf, 0x70, 0xd2, 0x9b, 0x54, - 0xba, 0xa6, 0x24, 0x33, 0x28, 0x2b, 0x73, 0xd2, 0x35, 0x2a, 0xbd, 0xa5, 0x8c, 0x65, 0x50, 0xf6, - 0x19, 0x4e, 0x7a, 0x4b, 0x56, 0xe1, 0x19, 0xe7, 0xc9, 0xf3, 0x0a, 0x64, 0x50, 0x76, 0x8a, 0x88, - 0xdd, 0x41, 0x4f, 0xbe, 0xa4, 0x8c, 0x67, 0x50, 0xf6, 0x12, 0x2f, 0x5f, 0xf2, 0xe4, 0x05, 0x65, - 0x22, 0x83, 0xb2, 0x29, 0x5e, 0x5e, 0xf0, 0xe4, 0xcb, 0xca, 0xe5, 0x0c, 0xca, 0x26, 0x79, 0xf9, - 0xb2, 0x27, 0x2f, 0x2a, 0x93, 0x19, 0x94, 0x1d, 0xe3, 0xe5, 0x45, 0x4f, 0xbe, 0xa2, 0x4c, 0x65, - 0x50, 0x76, 0x82, 0x97, 0xaf, 0x68, 0xef, 0xda, 0xf0, 0x1a, 0x1e, 0xbc, 0xd3, 0x3c, 0xbc, 0x14, - 0xd8, 0x69, 0x1e, 0x58, 0x0a, 0xe9, 0x34, 0x0f, 0x29, 0x05, 0x73, 0x9a, 0x07, 0x93, 0xc2, 0x38, - 0xcd, 0xc3, 0x48, 0x01, 0x9c, 0xe6, 0x01, 0xa4, 0xd0, 0x4d, 0xf3, 0xd0, 0x51, 0xd0, 0xa6, 0x79, - 0xd0, 0x28, 0x5c, 0xd3, 0x3c, 0x5c, 0x14, 0x28, 0x45, 0x00, 0xca, 0x83, 0x48, 0x11, 0x20, 0xf2, - 0xc0, 0x51, 0x04, 0x70, 0x3c, 0x58, 0x14, 0x01, 0x16, 0x0f, 0x10, 0x45, 0x00, 0xc4, 0x83, 0x42, - 0x11, 0xa0, 0xf0, 0x40, 0x20, 0x39, 0xd6, 0xd0, 0x8f, 0x03, 0x72, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, - 0x30, 0xc7, 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, 0xc7, 0xf0, - 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xce, 0x31, 0x1c, 0x91, 0x63, 0x38, 0x22, 0xc7, 0x70, - 0x44, 0x8e, 0xe1, 0x88, 0x1c, 0xc3, 0x11, 0x39, 0x86, 0x43, 0x73, 0xcc, 0x83, 0x77, 0x9a, 0x87, - 0x37, 0x30, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, 0x72, 0x0c, - 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, 0x2c, 0xc7, 0x70, 0x68, 0x8e, 0xe1, - 0xd0, 0x1c, 0xc3, 0xa1, 0x39, 0x86, 0x43, 0x73, 0x0c, 0x87, 0xe6, 0x18, 0x66, 0x73, 0xec, 0xcf, - 0x18, 0x64, 0x27, 0xc7, 0xee, 0x36, 0x77, 0x7f, 0xa8, 0xb7, 0x08, 0x14, 0xaa, 0x90, 0x69, 0x97, - 0x2c, 0xe8, 0x52, 0x1e, 0x24, 0xaa, 0x90, 0x6b, 0xbc, 0xbc, 0x40, 0xe5, 0x6e, 0xb6, 0xf1, 0xf2, - 0x65, 0x2a, 0x77, 0xf3, 0x8d, 0x97, 0x17, 0xa9, 0xdc, 0xcd, 0x38, 0x5e, 0xbe, 0x42, 0xe5, 0x6e, - 0xce, 0xf1, 0xf2, 0x55, 0x2a, 0x77, 0xb3, 0x8e, 0x97, 0xdf, 0xa4, 0x72, 0x37, 0xef, 0x78, 0xf9, - 0x1a, 0x95, 0xbb, 0x99, 0xc7, 0xcb, 0x6f, 0xc9, 0x19, 0x31, 0xf7, 0x5c, 0x05, 0x0a, 0x6d, 0x46, - 0xcc, 0x3e, 0x41, 0x63, 0xc9, 0xd3, 0x70, 0xf3, 0x4f, 0xd0, 0x28, 0x78, 0x1a, 0x6e, 0x06, 0x0a, - 0x1a, 0xcb, 0xda, 0x7b, 0x36, 0x7c, 0x86, 0x08, 0x5f, 0x5a, 0x80, 0x4f, 0x62, 0xa0, 0x4b, 0x0b, - 0xd0, 0x49, 0x0c, 0x6c, 0x69, 0x01, 0x36, 0x89, 0x81, 0x2c, 0x2d, 0x40, 0x26, 0x31, 0x70, 0xa5, - 0x05, 0xb8, 0x24, 0x06, 0xaa, 0xb4, 0x00, 0x95, 0xc4, 0xc0, 0x94, 0x16, 0x60, 0x92, 0x18, 0x88, - 0xd2, 0x02, 0x44, 0x12, 0x03, 0x4f, 0x5a, 0x80, 0x47, 0x62, 0xa0, 0x99, 0x11, 0xa1, 0x91, 0x58, - 0x58, 0x66, 0x44, 0x58, 0x24, 0x16, 0x92, 0x19, 0x11, 0x12, 0x89, 0x85, 0x63, 0x46, 0x84, 0x43, - 0x62, 0xa1, 0xf8, 0x52, 0x72, 0x3b, 0xc2, 0x37, 0xcd, 0xee, 0xc9, 0xae, 0x79, 0xa1, 0x8e, 0x30, - 0xcf, 0xb5, 0x0f, 0xe3, 0x05, 0x79, 0xc1, 0x6e, 0x58, 0xd9, 0x8e, 0x53, 0x78, 0x83, 0xe5, 0xb9, - 0xc6, 0x82, 0xb1, 0x30, 0x82, 0x2d, 0x8a, 0x17, 0xea, 0x0d, 0xf3, 0x5c, 0x9b, 0x11, 0xed, 0xdf, - 0xda, 0x57, 0xde, 0xb1, 0x3d, 0x92, 0xdc, 0x8e, 0x8d, 0x84, 0x7f, 0xd8, 0x8e, 0x2d, 0x17, 0x1d, - 0x72, 0x1a, 0xec, 0x5c, 0x74, 0xb0, 0x7d, 0x6f, 0x9d, 0xb8, 0x1d, 0x5c, 0x2e, 0x3a, 0xb4, 0x34, - 0xa8, 0x4f, 0xb7, 0xdf, 0x22, 0x0c, 0x6e, 0xe8, 0xc7, 0x01, 0x0c, 0x1e, 0xb6, 0xdf, 0xca, 0x73, - 0xa5, 0x64, 0x58, 0x06, 0xe3, 0xa1, 0x19, 0x3c, 0x6c, 0xe7, 0x95, 0xe7, 0xca, 0xcb, 0xd0, 0x0c, - 0xfe, 0x0a, 0xfa, 0x21, 0xc2, 0x60, 0x2f, 0xfc, 0xc3, 0xf6, 0x43, 0xb9, 0xe8, 0x90, 0x07, 0x32, - 0x18, 0x0f, 0xc1, 0xe0, 0x38, 0xfd, 0x51, 0x2e, 0x3a, 0xb4, 0xc1, 0x0c, 0xbe, 0x70, 0x37, 0xf3, - 0x3e, 0x82, 0x2b, 0xf5, 0x76, 0xab, 0x76, 0xb4, 0xa3, 0xb7, 0x5a, 0x7a, 0x8b, 0xc4, 0x31, 0xcf, - 0x55, 0x82, 0x10, 0xa8, 0x1f, 0x9f, 0xcd, 0x7a, 0x11, 0x5e, 0x81, 0xa4, 0x13, 0xd3, 0x7c, 0x5e, - 0x39, 0x45, 0x11, 0x15, 0x8e, 0xaa, 0xca, 0xd7, 0x5c, 0xb3, 0xa5, 0xbc, 0xf2, 0x77, 0xc4, 0x54, - 0x39, 0x3a, 0xac, 0xfd, 0xdc, 0xf6, 0xd0, 0xb8, 0xb0, 0x87, 0x8b, 0xb1, 0x3c, 0x64, 0x7c, 0x7b, - 0xc1, 0xe7, 0x1b, 0xe3, 0xd5, 0x09, 0x4c, 0xd5, 0xdb, 0xad, 0xba, 0xde, 0x33, 0xe3, 0xb9, 0xe4, - 0xe8, 0x08, 0xf5, 0x20, 0xcf, 0xd1, 0x92, 0xb5, 0xa0, 0x94, 0xe6, 0x6b, 0x84, 0xd6, 0xb6, 0x96, - 0x35, 0xb8, 0x65, 0x73, 0x61, 0xcb, 0x7a, 0x95, 0x9d, 0x2e, 0x98, 0x0b, 0x5b, 0xd0, 0xcb, 0x21, - 0xba, 0xd4, 0xdb, 0xee, 0xcb, 0xb9, 0x72, 0xd2, 0x33, 0x3b, 0x47, 0xf2, 0x0c, 0x48, 0x1b, 0x2d, - 0x7b, 0x8d, 0x89, 0xf2, 0x84, 0xe5, 0xd4, 0xc7, 0x67, 0xb3, 0x89, 0x7b, 0x27, 0xed, 0x56, 0x43, - 0xda, 0x68, 0xc9, 0x77, 0x60, 0xf4, 0x3b, 0xcd, 0xc3, 0x13, 0xdd, 0x7e, 0x45, 0x4c, 0x94, 0x8b, - 0x44, 0xe1, 0xe5, 0xd0, 0x3d, 0x22, 0x6b, 0xe1, 0xc5, 0x5d, 0x7b, 0xea, 0x85, 0x7b, 0x6d, 0xc3, - 0x5c, 0x2a, 0xac, 0x35, 0x9c, 0x29, 0xb4, 0xef, 0x03, 0x38, 0x6b, 0x56, 0x9b, 0xbd, 0x03, 0xb9, - 0xee, 0xce, 0xec, 0x2c, 0xbd, 0xf6, 0xf1, 0xd9, 0x6c, 0x31, 0xce, 0xac, 0x37, 0x5a, 0xcd, 0xde, - 0xc1, 0x0d, 0xf3, 0xc1, 0xb1, 0xbe, 0x50, 0x7e, 0x60, 0xea, 0x3d, 0x77, 0xf6, 0x63, 0xf7, 0xad, - 0x47, 0x9e, 0x4b, 0x61, 0x9e, 0x2b, 0xc9, 0x3d, 0xd3, 0x6d, 0xfe, 0x99, 0xf2, 0x4f, 0xfa, 0x3c, - 0x6f, 0xbb, 0x2f, 0x09, 0x21, 0x92, 0x38, 0x2a, 0x92, 0xf8, 0xa2, 0x91, 0x3c, 0x76, 0xeb, 0xa3, - 0xf0, 0xac, 0x78, 0xd0, 0xb3, 0xe2, 0x8b, 0x3c, 0xeb, 0xbf, 0x9d, 0x6c, 0xa5, 0xf9, 0x74, 0xcf, - 0x68, 0x77, 0x8c, 0xaf, 0xdd, 0x5e, 0xd0, 0x53, 0xed, 0x02, 0x4a, 0x89, 0xd3, 0x87, 0xb3, 0x48, - 0x7b, 0x5f, 0x72, 0x9f, 0xdc, 0x49, 0xa4, 0x27, 0x7b, 0xf2, 0xaf, 0x4b, 0x4f, 0xf5, 0x55, 0x44, - 0xe8, 0x57, 0x08, 0xa6, 0x7d, 0x95, 0xdc, 0x09, 0xd3, 0xd3, 0x2d, 0xe7, 0xc6, 0xb0, 0xe5, 0x9c, - 0x38, 0xf8, 0x7b, 0x04, 0xcf, 0x09, 0xe5, 0xd5, 0x71, 0x6f, 0x51, 0x70, 0xef, 0x79, 0xff, 0x4a, - 0xb6, 0x22, 0xe3, 0x1d, 0x0b, 0xaf, 0x60, 0xc0, 0xcc, 0x4c, 0x71, 0x2f, 0x0a, 0xb8, 0xcf, 0x50, - 0x83, 0x80, 0x70, 0xb9, 0x0c, 0x20, 0x6e, 0x77, 0x20, 0xb1, 0xdd, 0xd5, 0x75, 0x59, 0x05, 0x69, - 0xab, 0x4b, 0x3c, 0x9c, 0x74, 0xec, 0xb7, 0xba, 0xe5, 0x6e, 0xd3, 0xd8, 0x3d, 0x68, 0x48, 0x5b, - 0x5d, 0xf9, 0x1a, 0xe0, 0x75, 0xa3, 0x45, 0x3c, 0x9a, 0x72, 0x14, 0xd6, 0x8d, 0x16, 0xd1, 0xb0, - 0x64, 0xb2, 0x0a, 0x89, 0x37, 0xf4, 0xe6, 0x1e, 0x71, 0x02, 0x1c, 0x1d, 0x6b, 0xa4, 0x61, 0x8f, - 0x93, 0x05, 0xbf, 0x07, 0x49, 0x77, 0x62, 0x79, 0xce, 0xb2, 0xd8, 0x33, 0xc9, 0xb2, 0xc4, 0xc2, - 0x72, 0x87, 0xbc, 0xb9, 0x6c, 0xa9, 0x3c, 0x0f, 0xa3, 0x8d, 0xf6, 0xfe, 0x81, 0x49, 0x16, 0xf7, - 0xab, 0x39, 0x62, 0xed, 0x3e, 0x8c, 0x51, 0x8f, 0x9e, 0xf2, 0xd4, 0x55, 0xe7, 0xd1, 0xe4, 0x34, - 0xfb, 0x3e, 0x71, 0xf7, 0x2d, 0x9d, 0x21, 0x39, 0x03, 0xc9, 0x37, 0xcd, 0xae, 0x57, 0xf4, 0xdd, - 0x8e, 0x94, 0x8e, 0x6a, 0xef, 0x22, 0x48, 0x56, 0x75, 0xfd, 0xd8, 0x0e, 0xf8, 0x75, 0x48, 0x54, - 0x3b, 0x3f, 0x32, 0x88, 0x83, 0x57, 0x48, 0x44, 0x2d, 0x31, 0x89, 0xa9, 0x2d, 0x96, 0xaf, 0xb3, - 0x71, 0x7f, 0x96, 0xc6, 0x9d, 0xd1, 0xb3, 0x63, 0xaf, 0x71, 0xb1, 0x27, 0x00, 0x5a, 0x4a, 0xbe, - 0xf8, 0xdf, 0x84, 0x71, 0x66, 0x15, 0x39, 0x4b, 0xdc, 0x90, 0x44, 0x43, 0x36, 0x56, 0x96, 0x86, - 0xa6, 0xc3, 0x65, 0x6e, 0x61, 0xcb, 0x94, 0x09, 0x71, 0x88, 0xa9, 0x1d, 0xe6, 0x1c, 0x1f, 0xe6, - 0x60, 0x55, 0x12, 0xea, 0xbc, 0x13, 0x23, 0x3b, 0xdc, 0x73, 0x0e, 0x39, 0xc3, 0x41, 0xb4, 0xfe, - 0xd6, 0x46, 0x01, 0xd7, 0xdb, 0x87, 0xda, 0xab, 0x00, 0x4e, 0xca, 0xd7, 0x8c, 0x93, 0x23, 0x21, - 0xeb, 0x26, 0xdd, 0x00, 0x6f, 0x1f, 0xe8, 0xdb, 0x7a, 0xcf, 0x56, 0xe1, 0xfb, 0x29, 0xab, 0xc0, - 0x80, 0x93, 0x62, 0xb6, 0xfd, 0x4b, 0x91, 0xf6, 0x81, 0x9d, 0x98, 0xa5, 0xaa, 0x38, 0xaa, 0xf7, - 0x75, 0x73, 0xdd, 0xe8, 0x98, 0x07, 0x7a, 0x57, 0xb0, 0x28, 0xc8, 0xcb, 0x5c, 0xc2, 0x4e, 0x16, - 0x5e, 0xa0, 0x16, 0xa1, 0x46, 0xcb, 0xda, 0x87, 0xb6, 0x83, 0x56, 0x2b, 0xe0, 0x7b, 0x40, 0x1c, - 0xe3, 0x01, 0xe5, 0x55, 0xae, 0x7f, 0x1b, 0xe0, 0xa6, 0xf0, 0x69, 0x79, 0x8b, 0xfb, 0xce, 0x19, - 0xec, 0x2c, 0xff, 0x8d, 0xe9, 0xc6, 0xd4, 0x75, 0xf9, 0xa5, 0x48, 0x97, 0x43, 0xba, 0xdb, 0x61, - 0x63, 0x8a, 0xe3, 0xc6, 0xf4, 0x4f, 0xb4, 0xe3, 0xb0, 0x86, 0xab, 0xfa, 0x5e, 0xf3, 0xe4, 0xd0, - 0x94, 0x5f, 0x8e, 0xc4, 0xbe, 0x84, 0x2a, 0xd4, 0xd5, 0x62, 0x5c, 0xf8, 0x4b, 0x52, 0xb9, 0x4c, - 0xdd, 0xbd, 0x39, 0x04, 0x05, 0x4a, 0x52, 0xa5, 0x42, 0xcb, 0x76, 0xf2, 0xbd, 0x87, 0xb3, 0xe8, - 0x83, 0x87, 0xb3, 0x23, 0xda, 0xef, 0x10, 0x5c, 0x21, 0x9a, 0x0c, 0x71, 0x6f, 0x08, 0xce, 0x5f, - 0x75, 0x6b, 0x46, 0x50, 0x04, 0xfe, 0x6b, 0xe4, 0xfd, 0x2b, 0x02, 0xc5, 0xe7, 0xab, 0x1b, 0xef, - 0x7c, 0x2c, 0x97, 0x4b, 0xa8, 0xf6, 0xbf, 0x8f, 0xf9, 0x7d, 0x18, 0xdd, 0x6e, 0x1f, 0xe9, 0x5d, - 0xeb, 0x4d, 0x60, 0xfd, 0xe1, 0xb8, 0xec, 0x1e, 0xe6, 0x38, 0x43, 0xae, 0xcc, 0x71, 0x8e, 0x93, - 0x15, 0x64, 0x05, 0x12, 0xd5, 0xa6, 0xd9, 0xb4, 0x3d, 0x98, 0xa0, 0xf5, 0xb5, 0x69, 0x36, 0xb5, - 0x65, 0x98, 0xd8, 0x7c, 0x50, 0x7b, 0xdb, 0xd4, 0x8d, 0x56, 0x73, 0xe7, 0x50, 0x3c, 0x03, 0x75, - 0xfb, 0xd5, 0xa5, 0xdc, 0x68, 0xb2, 0x95, 0x3a, 0x45, 0xa5, 0x84, 0xed, 0xcf, 0x5b, 0x30, 0xb9, - 0x65, 0xb9, 0x6d, 0xdb, 0xd9, 0x66, 0x19, 0x40, 0x9b, 0x7c, 0x23, 0xc4, 0xce, 0xda, 0x40, 0x9b, - 0x42, 0xfb, 0x88, 0x69, 0x78, 0x84, 0xb6, 0x0d, 0xd3, 0xb6, 0x2d, 0x97, 0x48, 0x4e, 0xa6, 0xae, - 0xe4, 0x12, 0x49, 0x48, 0x5d, 0x26, 0xeb, 0xfe, 0x0d, 0x43, 0xca, 0x69, 0x75, 0xaa, 0xfa, 0x5e, - 0xdb, 0x68, 0x9b, 0xfe, 0x7e, 0x95, 0x7a, 0x2c, 0x7f, 0x13, 0xc6, 0xac, 0x90, 0xda, 0xbf, 0x08, - 0x60, 0xd7, 0x48, 0x8b, 0x22, 0x4c, 0x41, 0x06, 0x6c, 0xea, 0x78, 0x36, 0xf2, 0x6d, 0xc0, 0xf5, - 0xfa, 0x26, 0x79, 0xb9, 0x15, 0x07, 0x9a, 0x6e, 0xea, 0xbd, 0x5e, 0x73, 0x5f, 0x27, 0xbf, 0xc8, - 0x58, 0x6f, 0xbf, 0x61, 0x4d, 0x20, 0x17, 0x41, 0xaa, 0x6f, 0x92, 0x86, 0x77, 0x2e, 0xce, 0x34, - 0x0d, 0xa9, 0xbe, 0x99, 0xfe, 0x0b, 0x82, 0xcb, 0xdc, 0xa8, 0xac, 0xc1, 0x84, 0x33, 0xc0, 0x3c, - 0xee, 0xa5, 0x06, 0x37, 0xe6, 0xfa, 0x2c, 0x5d, 0xd0, 0xe7, 0xf4, 0x3a, 0x4c, 0x09, 0xe3, 0xf2, - 0x02, 0xc8, 0xec, 0x10, 0x71, 0x02, 0xec, 0x86, 0x3a, 0x40, 0xa2, 0xfd, 0x1f, 0x80, 0x17, 0x57, - 0x79, 0x0a, 0xc6, 0xb7, 0xef, 0xdf, 0xad, 0xfd, 0xa0, 0x5e, 0x7b, 0x73, 0xbb, 0x56, 0x4d, 0x21, - 0xed, 0x0f, 0x08, 0xc6, 0x49, 0xdb, 0xba, 0xdb, 0x39, 0xd6, 0xe5, 0x32, 0xa0, 0x75, 0xc2, 0xa0, - 0x27, 0xf3, 0x1b, 0xad, 0xcb, 0x8b, 0x80, 0xca, 0xf1, 0xa1, 0x46, 0x65, 0xb9, 0x00, 0xa8, 0x42, - 0x00, 0x8e, 0x87, 0x0c, 0xaa, 0x68, 0xff, 0xc2, 0xf0, 0x2c, 0xdb, 0x46, 0xbb, 0xf5, 0xe4, 0x1a, - 0xff, 0xdd, 0x54, 0x1a, 0x5b, 0x2a, 0x2c, 0x17, 0x17, 0xac, 0x7f, 0x28, 0x25, 0xaf, 0xf1, 0x9f, - 0x50, 0x7e, 0x15, 0xdf, 0x35, 0x91, 0x52, 0x82, 0x91, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xdf, 0x35, - 0x11, 0x4e, 0xea, 0xbb, 0x26, 0xc2, 0x49, 0x7d, 0x47, 0x01, 0x9c, 0xd4, 0x77, 0x4d, 0x84, 0x93, - 0xfa, 0xae, 0x89, 0x70, 0x52, 0xff, 0x35, 0x11, 0x22, 0x0e, 0xbd, 0x26, 0xc2, 0xcb, 0xfd, 0xd7, - 0x44, 0x78, 0xb9, 0xff, 0x9a, 0x48, 0x29, 0x61, 0x76, 0x4f, 0xf4, 0xf0, 0x43, 0x07, 0xde, 0x7e, - 0xd0, 0x37, 0xa0, 0x57, 0x80, 0xb7, 0x60, 0xca, 0xd9, 0x8f, 0xa8, 0x74, 0x0c, 0xb3, 0xd9, 0x36, - 0xf4, 0xae, 0xfc, 0x0d, 0x98, 0x70, 0x86, 0x9c, 0xaf, 0x9c, 0xa0, 0xaf, 0x40, 0x47, 0x4e, 0xca, - 0x2d, 0xa7, 0xad, 0x7d, 0x99, 0x80, 0x69, 0x67, 0xa0, 0xde, 0x3c, 0xd2, 0xb9, 0x4b, 0x46, 0xf3, - 0xc2, 0x91, 0xd2, 0xa4, 0x65, 0xde, 0x3f, 0x9b, 0x75, 0x46, 0xd7, 0x29, 0x99, 0xe6, 0x85, 0xc3, - 0x25, 0x5e, 0xcf, 0x7b, 0xff, 0xcc, 0x0b, 0x17, 0x8f, 0x78, 0x3d, 0xfa, 0xba, 0xa1, 0x7a, 0xee, - 0x15, 0x24, 0x5e, 0xaf, 0x4a, 0x59, 0x36, 0x2f, 0x5c, 0x46, 0xe2, 0xf5, 0x6a, 0x94, 0x6f, 0xf3, - 0xc2, 0xd1, 0x13, 0xaf, 0x77, 0x9b, 0x32, 0x6f, 0x5e, 0x38, 0x84, 0xe2, 0xf5, 0xbe, 0x45, 0x39, - 0x38, 0x2f, 0x5c, 0x55, 0xe2, 0xf5, 0x5e, 0xa7, 0x6c, 0x9c, 0x17, 0x2e, 0x2d, 0xf1, 0x7a, 0x1b, - 0x94, 0x97, 0x59, 0xf1, 0xfa, 0x12, 0xaf, 0x78, 0xc7, 0x63, 0x68, 0x56, 0xbc, 0xc8, 0xc4, 0x6b, - 0x7e, 0xdb, 0xe3, 0x6a, 0x56, 0xbc, 0xd2, 0xc4, 0x6b, 0xbe, 0xe1, 0xb1, 0x36, 0x2b, 0x1e, 0x95, - 0xf1, 0x9a, 0x9b, 0x1e, 0x7f, 0xb3, 0xe2, 0xa1, 0x19, 0xaf, 0x59, 0xf7, 0x98, 0x9c, 0x15, 0x8f, - 0xcf, 0x78, 0xcd, 0x2d, 0x6f, 0x0f, 0xfd, 0x23, 0x81, 0x7e, 0xcc, 0x25, 0x28, 0x4d, 0xa0, 0x1f, - 0x04, 0x50, 0x4f, 0x13, 0xa8, 0x07, 0x01, 0xb4, 0xd3, 0x04, 0xda, 0x41, 0x00, 0xe5, 0x34, 0x81, - 0x72, 0x10, 0x40, 0x37, 0x4d, 0xa0, 0x1b, 0x04, 0x50, 0x4d, 0x13, 0xa8, 0x06, 0x01, 0x34, 0xd3, - 0x04, 0x9a, 0x41, 0x00, 0xc5, 0x34, 0x81, 0x62, 0x10, 0x40, 0x2f, 0x4d, 0xa0, 0x17, 0x04, 0x50, - 0x6b, 0x4e, 0xa4, 0x16, 0x04, 0xd1, 0x6a, 0x4e, 0xa4, 0x15, 0x04, 0x51, 0xea, 0x45, 0x91, 0x52, - 0x63, 0xfd, 0xb3, 0xd9, 0x51, 0x6b, 0x88, 0x61, 0xd3, 0x9c, 0xc8, 0x26, 0x08, 0x62, 0xd2, 0x9c, - 0xc8, 0x24, 0x08, 0x62, 0xd1, 0x9c, 0xc8, 0x22, 0x08, 0x62, 0xd0, 0x23, 0x91, 0x41, 0xde, 0x15, - 0x1f, 0x4d, 0x38, 0x51, 0x8c, 0x62, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, - 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, 0x61, 0x10, - 0x8e, 0xc5, 0x20, 0x1c, 0xc6, 0xa0, 0x39, 0xf1, 0xc2, 0x03, 0x04, 0x15, 0xa4, 0x39, 0xf1, 0xe4, - 0x33, 0x9a, 0x42, 0x38, 0x16, 0x85, 0x70, 0x18, 0x85, 0x3e, 0xc2, 0xf0, 0x2c, 0x47, 0x21, 0x72, - 0x3c, 0xf4, 0xb4, 0x2a, 0xd0, 0x6a, 0x8c, 0xfb, 0x15, 0x41, 0x9c, 0x5a, 0x8d, 0x71, 0x46, 0x3d, - 0x88, 0x67, 0xfe, 0x2a, 0x54, 0x8b, 0x51, 0x85, 0x6e, 0x53, 0x0e, 0xad, 0xc6, 0xb8, 0x77, 0xe1, - 0xe7, 0xde, 0xda, 0xa0, 0x22, 0xf0, 0x7a, 0xac, 0x22, 0xb0, 0x11, 0xab, 0x08, 0xdc, 0xf1, 0x10, - 0xfc, 0xa9, 0x04, 0xcf, 0x79, 0x08, 0x3a, 0x7f, 0x6d, 0x3f, 0x38, 0xb6, 0x4a, 0x80, 0x77, 0x42, - 0x25, 0xbb, 0xa7, 0x36, 0x0c, 0x8c, 0xd2, 0x46, 0x4b, 0xbe, 0xcb, 0x9f, 0x55, 0x95, 0x86, 0x3d, - 0xbf, 0x61, 0x10, 0x27, 0x7b, 0xa1, 0x73, 0x80, 0x37, 0x5a, 0x3d, 0xbb, 0x5a, 0x04, 0x2d, 0x5b, - 0x69, 0x58, 0x62, 0xb9, 0x01, 0x97, 0x6c, 0xf5, 0x9e, 0x0d, 0xef, 0x45, 0x16, 0xae, 0x36, 0xc8, - 0x4c, 0xda, 0x23, 0x04, 0x19, 0x8e, 0xca, 0x4f, 0xe7, 0xc4, 0xe0, 0x95, 0x58, 0x27, 0x06, 0x5c, - 0x82, 0x78, 0xa7, 0x07, 0xff, 0xef, 0x3f, 0xa8, 0x66, 0xb3, 0x44, 0x3c, 0x49, 0xf8, 0x09, 0x4c, - 0x7a, 0x4f, 0x60, 0x7f, 0xb2, 0xad, 0x44, 0x6f, 0x66, 0x06, 0xa5, 0xe6, 0x8a, 0xb0, 0x89, 0x36, - 0xd0, 0x8c, 0x66, 0xab, 0x56, 0x82, 0xa9, 0x7a, 0xc7, 0xde, 0x32, 0xe8, 0xb5, 0x3b, 0x46, 0x6f, - 0xb3, 0x79, 0x1c, 0xb5, 0x17, 0x91, 0xb4, 0x5a, 0xf3, 0xd3, 0x5f, 0xcf, 0x8e, 0x68, 0x2f, 0xc3, - 0xc4, 0x3d, 0xa3, 0xab, 0xef, 0x76, 0xf6, 0x8d, 0xf6, 0x8f, 0xf5, 0x96, 0x60, 0x38, 0xe6, 0x1a, - 0x96, 0x12, 0x8f, 0x2d, 0xed, 0x5f, 0x20, 0xb8, 0xca, 0xaa, 0x7f, 0xb7, 0x6d, 0x1e, 0x6c, 0x18, - 0x56, 0x4f, 0xff, 0x2a, 0x24, 0x75, 0x02, 0x9c, 0xfd, 0xee, 0x1a, 0x77, 0x3f, 0x23, 0x03, 0xd5, - 0x17, 0xec, 0x7f, 0x1b, 0xd4, 0x44, 0xd8, 0xe2, 0x70, 0x97, 0x2d, 0xa4, 0xaf, 0xc3, 0xa8, 0x33, - 0x3f, 0xef, 0xd7, 0x65, 0xc1, 0xaf, 0xdf, 0x06, 0xf8, 0x65, 0xf3, 0x48, 0xbe, 0xc3, 0xf9, 0xc5, - 0x7c, 0xad, 0x06, 0xaa, 0x2f, 0xb8, 0xe4, 0x2b, 0x27, 0xad, 0xfe, 0xcf, 0x66, 0x54, 0xb4, 0x93, - 0x59, 0x48, 0xd6, 0x44, 0x9d, 0x60, 0x3f, 0xab, 0x90, 0xa8, 0x77, 0x5a, 0xba, 0xfc, 0x1c, 0x8c, - 0xbe, 0xd1, 0xdc, 0xd1, 0x0f, 0x49, 0x90, 0x9d, 0x1f, 0xf2, 0x3c, 0x24, 0x2b, 0x07, 0xed, 0xc3, - 0x56, 0x57, 0x37, 0xc8, 0x91, 0x3d, 0xd9, 0x41, 0xb7, 0x6c, 0x1a, 0x54, 0xa6, 0x55, 0xe0, 0x4a, - 0xbd, 0x63, 0x94, 0x1f, 0x98, 0x6c, 0xdd, 0x58, 0x10, 0x52, 0x84, 0x1c, 0xf9, 0xdc, 0xb5, 0xb2, - 0xd1, 0x52, 0x28, 0x8f, 0x7e, 0x7c, 0x36, 0x8b, 0xb6, 0xe9, 0xf6, 0xf9, 0x26, 0x3c, 0x4f, 0xd2, - 0xc7, 0x37, 0x55, 0x21, 0x6a, 0xaa, 0x31, 0x72, 0x4c, 0xcd, 0x4c, 0xb7, 0x61, 0x4d, 0x67, 0x04, - 0x4e, 0xf7, 0x64, 0x9e, 0x59, 0x4d, 0xd1, 0x40, 0xcf, 0xf0, 0x50, 0x9e, 0x05, 0x4e, 0xb7, 0x10, - 0x35, 0x9d, 0xe0, 0xd9, 0x8b, 0x30, 0x46, 0x65, 0x0c, 0x1b, 0xd8, 0x4c, 0x29, 0xe4, 0x34, 0x18, - 0x67, 0x12, 0x56, 0x1e, 0x05, 0xb4, 0x9e, 0x1a, 0xb1, 0xfe, 0x2b, 0xa7, 0x90, 0xf5, 0x5f, 0x25, - 0x25, 0xe5, 0xae, 0xc3, 0x94, 0xb0, 0x7d, 0x69, 0x49, 0xaa, 0x29, 0xb0, 0xfe, 0xab, 0xa5, 0xc6, - 0xd3, 0x89, 0xf7, 0x7e, 0xa3, 0x8e, 0xe4, 0x5e, 0x01, 0xd9, 0xbf, 0xd1, 0x29, 0x5f, 0x02, 0x69, - 0xdd, 0x9a, 0xf2, 0x79, 0x90, 0xca, 0xe5, 0x14, 0x4a, 0x4f, 0xfd, 0xec, 0x97, 0x99, 0xf1, 0xb2, - 0x6e, 0x9a, 0x7a, 0xf7, 0xbe, 0x6e, 0x96, 0xcb, 0xc4, 0xf8, 0x35, 0xb8, 0x1a, 0xb8, 0x51, 0x6a, - 0xd9, 0x57, 0x2a, 0x8e, 0x7d, 0xb5, 0xea, 0xb3, 0xaf, 0x56, 0x6d, 0x7b, 0x54, 0x72, 0x0f, 0x9c, - 0xd7, 0xe5, 0x80, 0x6d, 0x49, 0xa5, 0xc5, 0x1c, 0x70, 0xaf, 0x97, 0x5e, 0x23, 0xba, 0xe5, 0x40, - 0x5d, 0x3d, 0xe2, 0xc0, 0xba, 0x5c, 0xaa, 0x10, 0xfb, 0x4a, 0xa0, 0xfd, 0x9e, 0x70, 0xaa, 0xca, - 0xbf, 0x21, 0xc8, 0x24, 0x15, 0xea, 0x70, 0x35, 0x70, 0x92, 0x03, 0xe6, 0xae, 0x7b, 0x95, 0x3a, - 0x5c, 0x0b, 0xd4, 0x6d, 0x47, 0xdc, 0xf9, 0xaa, 0x95, 0x16, 0xc9, 0x4b, 0x7e, 0x7d, 0x49, 0xbe, - 0xea, 0xe6, 0x28, 0x57, 0x81, 0x49, 0x80, 0x5c, 0xad, 0x52, 0x85, 0x18, 0x94, 0x43, 0x0d, 0xc2, - 0xa3, 0xe4, 0x5a, 0x96, 0x5e, 0x27, 0x93, 0x54, 0x42, 0x27, 0x89, 0x08, 0x95, 0x6b, 0x5e, 0xde, - 0x3e, 0x3d, 0x57, 0x47, 0x1e, 0x9f, 0xab, 0x23, 0xff, 0x38, 0x57, 0x47, 0x3e, 0x39, 0x57, 0xd1, - 0x67, 0xe7, 0x2a, 0xfa, 0xfc, 0x5c, 0x45, 0x5f, 0x9c, 0xab, 0xe8, 0x9d, 0xbe, 0x8a, 0x3e, 0xe8, - 0xab, 0xe8, 0xc3, 0xbe, 0x8a, 0xfe, 0xd8, 0x57, 0xd1, 0xa3, 0xbe, 0x8a, 0x4e, 0xfb, 0xea, 0xc8, - 0xe3, 0xbe, 0x3a, 0xf2, 0x49, 0x5f, 0x45, 0x9f, 0xf5, 0xd5, 0x91, 0xcf, 0xfb, 0x2a, 0xfa, 0xa2, - 0xaf, 0xa2, 0x77, 0x3e, 0x55, 0xd1, 0xc3, 0x4f, 0xd5, 0x91, 0x0f, 0x3e, 0x55, 0xd1, 0x7f, 0x02, - 0x00, 0x00, 0xff, 0xff, 0x43, 0x21, 0x03, 0x1c, 0x4c, 0x36, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.proto b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.proto deleted file mode 100644 index 1d7168a05..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetest.proto +++ /dev/null @@ -1,649 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; -package test; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; -option (gogoproto.protosizer_all) = false; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = true; - -option (gogoproto.compare_all) = true; - -message NidOptNative { - optional double Field1 = 1 [(gogoproto.nullable) = false]; - optional float Field2 = 2 [(gogoproto.nullable) = false]; - optional int32 Field3 = 3 [(gogoproto.nullable) = false]; - optional int64 Field4 = 4 [(gogoproto.nullable) = false]; - optional uint32 Field5 = 5 [(gogoproto.nullable) = false]; - optional uint64 Field6 = 6 [(gogoproto.nullable) = false]; - optional sint32 Field7 = 7 [(gogoproto.nullable) = false]; - optional sint64 Field8 = 8 [(gogoproto.nullable) = false]; - optional fixed32 Field9 = 9 [(gogoproto.nullable) = false]; - optional sfixed32 Field10 = 10 [(gogoproto.nullable) = false]; - optional fixed64 Field11 = 11 [(gogoproto.nullable) = false]; - optional sfixed64 Field12 = 12 [(gogoproto.nullable) = false]; - optional bool Field13 = 13 [(gogoproto.nullable) = false]; - optional string Field14 = 14 [(gogoproto.nullable) = false]; - optional bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinOptNative { - optional double Field1 = 1; - optional float Field2 = 2; - optional int32 Field3 = 3; - optional int64 Field4 = 4; - optional uint32 Field5 = 5; - optional uint64 Field6 = 6; - optional sint32 Field7 = 7; - optional sint64 Field8 = 8; - optional fixed32 Field9 = 9; - optional sfixed32 Field10 = 10; - optional fixed64 Field11 = 11; - optional sfixed64 Field12 = 12; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NidRepNative { - repeated double Field1 = 1 [(gogoproto.nullable) = false]; - repeated float Field2 = 2 [(gogoproto.nullable) = false]; - repeated int32 Field3 = 3 [(gogoproto.nullable) = false]; - repeated int64 Field4 = 4 [(gogoproto.nullable) = false]; - repeated uint32 Field5 = 5 [(gogoproto.nullable) = false]; - repeated uint64 Field6 = 6 [(gogoproto.nullable) = false]; - repeated sint32 Field7 = 7 [(gogoproto.nullable) = false]; - repeated sint64 Field8 = 8 [(gogoproto.nullable) = false]; - repeated fixed32 Field9 = 9 [(gogoproto.nullable) = false]; - repeated sfixed32 Field10 = 10 [(gogoproto.nullable) = false]; - repeated fixed64 Field11 = 11 [(gogoproto.nullable) = false]; - repeated sfixed64 Field12 = 12 [(gogoproto.nullable) = false]; - repeated bool Field13 = 13 [(gogoproto.nullable) = false]; - repeated string Field14 = 14 [(gogoproto.nullable) = false]; - repeated bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinRepNative { - repeated double Field1 = 1; - repeated float Field2 = 2; - repeated int32 Field3 = 3; - repeated int64 Field4 = 4; - repeated uint32 Field5 = 5; - repeated uint64 Field6 = 6; - repeated sint32 Field7 = 7; - repeated sint64 Field8 = 8; - repeated fixed32 Field9 = 9; - repeated sfixed32 Field10 = 10; - repeated fixed64 Field11 = 11; - repeated sfixed64 Field12 = 12; - repeated bool Field13 = 13; - repeated string Field14 = 14; - repeated bytes Field15 = 15; -} - -message NidRepPackedNative { - repeated double Field1 = 1 [(gogoproto.nullable) = false, packed = true]; - repeated float Field2 = 2 [(gogoproto.nullable) = false, packed = true]; - repeated int32 Field3 = 3 [(gogoproto.nullable) = false, packed = true]; - repeated int64 Field4 = 4 [(gogoproto.nullable) = false, packed = true]; - repeated uint32 Field5 = 5 [(gogoproto.nullable) = false, packed = true]; - repeated uint64 Field6 = 6 [(gogoproto.nullable) = false, packed = true]; - repeated sint32 Field7 = 7 [(gogoproto.nullable) = false, packed = true]; - repeated sint64 Field8 = 8 [(gogoproto.nullable) = false, packed = true]; - repeated fixed32 Field9 = 9 [(gogoproto.nullable) = false, packed = true]; - repeated sfixed32 Field10 = 10 [(gogoproto.nullable) = false, packed = true]; - repeated fixed64 Field11 = 11 [(gogoproto.nullable) = false, packed = true]; - repeated sfixed64 Field12 = 12 [(gogoproto.nullable) = false, packed = true]; - repeated bool Field13 = 13 [(gogoproto.nullable) = false, packed = true]; -} - -message NinRepPackedNative { - repeated double Field1 = 1 [packed = true]; - repeated float Field2 = 2 [packed = true]; - repeated int32 Field3 = 3 [packed = true]; - repeated int64 Field4 = 4 [packed = true]; - repeated uint32 Field5 = 5 [packed = true]; - repeated uint64 Field6 = 6 [packed = true]; - repeated sint32 Field7 = 7 [packed = true]; - repeated sint64 Field8 = 8 [packed = true]; - repeated fixed32 Field9 = 9 [packed = true]; - repeated sfixed32 Field10 = 10 [packed = true]; - repeated fixed64 Field11 = 11 [packed = true]; - repeated sfixed64 Field12 = 12 [packed = true]; - repeated bool Field13 = 13 [packed = true]; -} - -message NidOptStruct { - optional double Field1 = 1 [(gogoproto.nullable) = false]; - optional float Field2 = 2 [(gogoproto.nullable) = false]; - optional NidOptNative Field3 = 3 [(gogoproto.nullable) = false]; - optional NinOptNative Field4 = 4 [(gogoproto.nullable) = false]; - optional uint64 Field6 = 6 [(gogoproto.nullable) = false]; - optional sint32 Field7 = 7 [(gogoproto.nullable) = false]; - optional NidOptNative Field8 = 8 [(gogoproto.nullable) = false]; - optional bool Field13 = 13 [(gogoproto.nullable) = false]; - optional string Field14 = 14 [(gogoproto.nullable) = false]; - optional bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinOptStruct { - optional double Field1 = 1; - optional float Field2 = 2; - optional NidOptNative Field3 = 3; - optional NinOptNative Field4 = 4; - optional uint64 Field6 = 6; - optional sint32 Field7 = 7; - optional NidOptNative Field8 = 8; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NidRepStruct { - repeated double Field1 = 1 [(gogoproto.nullable) = false]; - repeated float Field2 = 2 [(gogoproto.nullable) = false]; - repeated NidOptNative Field3 = 3 [(gogoproto.nullable) = false]; - repeated NinOptNative Field4 = 4 [(gogoproto.nullable) = false]; - repeated uint64 Field6 = 6 [(gogoproto.nullable) = false]; - repeated sint32 Field7 = 7 [(gogoproto.nullable) = false]; - repeated NidOptNative Field8 = 8 [(gogoproto.nullable) = false]; - repeated bool Field13 = 13 [(gogoproto.nullable) = false]; - repeated string Field14 = 14 [(gogoproto.nullable) = false]; - repeated bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinRepStruct { - repeated double Field1 = 1; - repeated float Field2 = 2; - repeated NidOptNative Field3 = 3; - repeated NinOptNative Field4 = 4; - repeated uint64 Field6 = 6; - repeated sint32 Field7 = 7; - repeated NidOptNative Field8 = 8; - repeated bool Field13 = 13; - repeated string Field14 = 14; - repeated bytes Field15 = 15; -} - -message NidEmbeddedStruct { - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NidOptNative Field200 = 200 [(gogoproto.nullable) = false]; - optional bool Field210 = 210 [(gogoproto.nullable) = false]; -} - -message NinEmbeddedStruct { - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NidOptNative Field200 = 200; - optional bool Field210 = 210; -} - -message NidNestedStruct { - optional NidOptStruct Field1 = 1 [(gogoproto.nullable) = false]; - repeated NidRepStruct Field2 = 2 [(gogoproto.nullable) = false]; -} - -message NinNestedStruct { - optional NinOptStruct Field1 = 1; - repeated NinRepStruct Field2 = 2; -} - -message NidOptCustom { - optional bytes Id = 1 [(gogoproto.customtype) = "Uuid", (gogoproto.nullable) = false]; - optional bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; -} - -message CustomDash { - optional bytes Value = 1 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom-dash-type.Bytes"]; -} - -message NinOptCustom { - optional bytes Id = 1 [(gogoproto.customtype) = "Uuid"]; - optional bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message NidRepCustom { - repeated bytes Id = 1 [(gogoproto.customtype) = "Uuid", (gogoproto.nullable) = false]; - repeated bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; -} - -message NinRepCustom { - repeated bytes Id = 1 [(gogoproto.customtype) = "Uuid"]; - repeated bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message NinOptNativeUnion { - option (gogoproto.onlyone) = true; - optional double Field1 = 1; - optional float Field2 = 2; - optional int32 Field3 = 3; - optional int64 Field4 = 4; - optional uint32 Field5 = 5; - optional uint64 Field6 = 6; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NinOptStructUnion { - option (gogoproto.onlyone) = true; - optional double Field1 = 1; - optional float Field2 = 2; - optional NidOptNative Field3 = 3; - optional NinOptNative Field4 = 4; - optional uint64 Field6 = 6; - optional sint32 Field7 = 7; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NinEmbeddedStructUnion { - option (gogoproto.onlyone) = true; - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NinOptNative Field200 = 200; - optional bool Field210 = 210; -} - -message NinNestedStructUnion { - option (gogoproto.onlyone) = true; - optional NinOptNativeUnion Field1 = 1; - optional NinOptStructUnion Field2 = 2; - optional NinEmbeddedStructUnion Field3 = 3; -} - -message Tree { - option (gogoproto.onlyone) = true; - optional OrBranch Or = 1; - optional AndBranch And = 2; - optional Leaf Leaf = 3; -} - -message OrBranch { - optional Tree Left = 1 [(gogoproto.nullable) = false]; - optional Tree Right = 2 [(gogoproto.nullable) = false]; -} - -message AndBranch { - optional Tree Left = 1 [(gogoproto.nullable) = false]; - optional Tree Right = 2 [(gogoproto.nullable) = false]; -} - -message Leaf { - optional int64 Value = 1 [(gogoproto.nullable) = false]; - optional string StrValue = 2 [(gogoproto.nullable) = false]; -} - -message DeepTree { - option (gogoproto.onlyone) = true; - optional ADeepBranch Down = 1; - optional AndDeepBranch And = 2; - optional DeepLeaf Leaf = 3; -} - -message ADeepBranch { - optional DeepTree Down = 2 [(gogoproto.nullable) = false]; -} - -message AndDeepBranch { - optional DeepTree Left = 1 [(gogoproto.nullable) = false]; - optional DeepTree Right = 2 [(gogoproto.nullable) = false]; -} - -message DeepLeaf { - optional Tree Tree = 1 [(gogoproto.nullable) = false]; -} - -message Nil { - -} - -enum TheTestEnum { - A = 0; - B = 1; - C = 2; -} - -enum AnotherTestEnum { - option (gogoproto.goproto_enum_prefix) = false; - D = 10; - E = 11; -} - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -enum YetAnotherTestEnum { - option (gogoproto.goproto_enum_prefix) = false; - AA = 0; - BB = 1 [(gogoproto.enumvalue_customname) = "BetterYetBB"]; -} - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -enum YetYetAnotherTestEnum { - option (gogoproto.goproto_enum_prefix) = true; - CC = 0; - DD = 1 [(gogoproto.enumvalue_customname) = "BetterYetDD"]; -} - -message NidOptEnum { - optional TheTestEnum Field1 = 1 [(gogoproto.nullable) = false]; -} - -message NinOptEnum { - optional TheTestEnum Field1 = 1; - optional YetAnotherTestEnum Field2 = 2; - optional YetYetAnotherTestEnum Field3 = 3; -} - -message NidRepEnum { - repeated TheTestEnum Field1 = 1 [(gogoproto.nullable) = false]; - repeated YetAnotherTestEnum Field2 = 2 [(gogoproto.nullable) = false]; - repeated YetYetAnotherTestEnum Field3 = 3 [(gogoproto.nullable) = false]; -} - -message NinRepEnum { - repeated TheTestEnum Field1 = 1; - repeated YetAnotherTestEnum Field2 = 2; - repeated YetYetAnotherTestEnum Field3 = 3; -} - -message NinOptEnumDefault { - option (gogoproto.goproto_getters) = true; - option (gogoproto.face) = false; - optional TheTestEnum Field1 = 1 [default=C]; - optional YetAnotherTestEnum Field2 = 2 [default=BB]; - optional YetYetAnotherTestEnum Field3 = 3 [default=CC]; -} - -message AnotherNinOptEnum { - optional AnotherTestEnum Field1 = 1; - optional YetAnotherTestEnum Field2 = 2; - optional YetYetAnotherTestEnum Field3 = 3; -} - -message AnotherNinOptEnumDefault { - option (gogoproto.goproto_getters) = true; - option (gogoproto.face) = false; - optional AnotherTestEnum Field1 = 1 [default=E]; - optional YetAnotherTestEnum Field2 = 2 [default=BB]; - optional YetYetAnotherTestEnum Field3 = 3 [default=CC]; -} - - -message Timer { - optional sfixed64 Time1 = 1 [(gogoproto.nullable) = false]; - optional sfixed64 Time2 = 2 [(gogoproto.nullable) = false]; - optional bytes Data = 3 [(gogoproto.nullable) = false]; -} - -message MyExtendable { - option (gogoproto.face) = false; - optional int64 Field1 = 1; - extensions 100 to 199; -} - -extend MyExtendable { - optional double FieldA = 100; - optional NinOptNative FieldB = 101; - optional NinEmbeddedStruct FieldC = 102; - repeated int64 FieldD = 104; - repeated NinOptNative FieldE = 105; -} - -message OtherExtenable { - option (gogoproto.face) = false; - optional int64 Field2 = 2; - extensions 14 to 16; - optional int64 Field13 = 13; - extensions 10 to 12; - optional MyExtendable M = 1; -} - -message NestedDefinition { - optional int64 Field1 = 1; - message NestedMessage { - optional fixed64 NestedField1 = 1; - optional NestedNestedMsg NNM = 2; - message NestedNestedMsg { - optional string NestedNestedField1 = 10; - } - } - enum NestedEnum { - TYPE_NESTED = 1; - } - optional NestedEnum EnumField = 2; - optional NestedMessage.NestedNestedMsg NNM = 3; - optional NestedMessage NM = 4; -} - -message NestedScope { - optional NestedDefinition.NestedMessage.NestedNestedMsg A = 1; - optional NestedDefinition.NestedEnum B = 2; - optional NestedDefinition.NestedMessage C = 3; -} - -message NinOptNativeDefault { - option (gogoproto.goproto_getters) = true; - option (gogoproto.face) = false; - optional double Field1 = 1 [default = 1234.1234]; - optional float Field2 = 2 [default = 1234.1234]; - optional int32 Field3 = 3 [default = 1234]; - optional int64 Field4 = 4 [default = 1234]; - optional uint32 Field5 = 5 [default = 1234]; - optional uint64 Field6 = 6 [default = 1234]; - optional sint32 Field7 = 7 [default = 1234]; - optional sint64 Field8 = 8 [default = 1234]; - optional fixed32 Field9 = 9 [default = 1234]; - optional sfixed32 Field10 = 10 [default = 1234]; - optional fixed64 Field11 = 11 [default = 1234]; - optional sfixed64 Field12 = 12 [default = 1234]; - optional bool Field13 = 13 [default = true]; - optional string Field14 = 14 [default = "1234"]; - optional bytes Field15 = 15; -} - -message CustomContainer { - optional NidOptCustom CustomStruct = 1 [(gogoproto.nullable) = false]; -} - -message CustomNameNidOptNative { - optional double Field1 = 1 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldA"]; - optional float Field2 = 2 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldB"]; - optional int32 Field3 = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldC"]; - optional int64 Field4 = 4 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldD"]; - optional uint32 Field5 = 5 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldE"]; - optional uint64 Field6 = 6 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldF"]; - optional sint32 Field7 = 7 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldG"]; - optional sint64 Field8 = 8 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldH"]; - optional fixed32 Field9 = 9 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldI"]; - optional sfixed32 Field10 = 10 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldJ"]; - optional fixed64 Field11 = 11 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldK"]; - optional sfixed64 Field12 = 12 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldL"]; - optional bool Field13 = 13 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldM"]; - optional string Field14 = 14 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldN"]; - optional bytes Field15 = 15 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldO"]; -} - -message CustomNameNinOptNative { - optional double Field1 = 1 [(gogoproto.customname) = "FieldA"]; - optional float Field2 = 2 [(gogoproto.customname) = "FieldB"]; - optional int32 Field3 = 3 [(gogoproto.customname) = "FieldC"]; - optional int64 Field4 = 4 [(gogoproto.customname) = "FieldD"]; - optional uint32 Field5 = 5 [(gogoproto.customname) = "FieldE"]; - optional uint64 Field6 = 6 [(gogoproto.customname) = "FieldF"]; - optional sint32 Field7 = 7 [(gogoproto.customname) = "FieldG"]; - optional sint64 Field8 = 8 [(gogoproto.customname) = "FieldH"]; - optional fixed32 Field9 = 9 [(gogoproto.customname) = "FieldI"]; - optional sfixed32 Field10 = 10 [(gogoproto.customname) = "FieldJ"]; - optional fixed64 Field11 = 11 [(gogoproto.customname) = "FieldK"]; - optional sfixed64 Field12 = 12 [(gogoproto.customname) = "FielL"]; - optional bool Field13 = 13 [(gogoproto.customname) = "FieldM"]; - optional string Field14 = 14 [(gogoproto.customname) = "FieldN"]; - optional bytes Field15 = 15 [(gogoproto.customname) = "FieldO"]; -} - -message CustomNameNinRepNative { - repeated double Field1 = 1 [(gogoproto.customname) = "FieldA"]; - repeated float Field2 = 2 [(gogoproto.customname) = "FieldB"]; - repeated int32 Field3 = 3 [(gogoproto.customname) = "FieldC"]; - repeated int64 Field4 = 4 [(gogoproto.customname) = "FieldD"]; - repeated uint32 Field5 = 5 [(gogoproto.customname) = "FieldE"]; - repeated uint64 Field6 = 6 [(gogoproto.customname) = "FieldF"]; - repeated sint32 Field7 = 7 [(gogoproto.customname) = "FieldG"]; - repeated sint64 Field8 = 8 [(gogoproto.customname) = "FieldH"]; - repeated fixed32 Field9 = 9 [(gogoproto.customname) = "FieldI"]; - repeated sfixed32 Field10 = 10 [(gogoproto.customname) = "FieldJ"]; - repeated fixed64 Field11 = 11 [(gogoproto.customname) = "FieldK"]; - repeated sfixed64 Field12 = 12 [(gogoproto.customname) = "FieldL"]; - repeated bool Field13 = 13 [(gogoproto.customname) = "FieldM"]; - repeated string Field14 = 14 [(gogoproto.customname) = "FieldN"]; - repeated bytes Field15 = 15 [(gogoproto.customname) = "FieldO"]; -} - -message CustomNameNinStruct { - optional double Field1 = 1 [(gogoproto.customname) = "FieldA"]; - optional float Field2 = 2 [(gogoproto.customname) = "FieldB"]; - optional NidOptNative Field3 = 3 [(gogoproto.customname) = "FieldC"]; - repeated NinOptNative Field4 = 4 [(gogoproto.customname) = "FieldD"]; - optional uint64 Field6 = 6 [(gogoproto.customname) = "FieldE"]; - optional sint32 Field7 = 7 [(gogoproto.customname) = "FieldF"]; - optional NidOptNative Field8 = 8 [(gogoproto.customname) = "FieldG"]; - optional bool Field13 = 13 [(gogoproto.customname) = "FieldH"]; - optional string Field14 = 14 [(gogoproto.customname) = "FieldI"]; - optional bytes Field15 = 15 [(gogoproto.customname) = "FieldJ"]; -} - -message CustomNameCustomType { - optional bytes Id = 1 [(gogoproto.customname) = "FieldA", (gogoproto.customtype) = "Uuid"]; - optional bytes Value = 2 [(gogoproto.customname) = "FieldB", (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; - repeated bytes Ids = 3 [(gogoproto.customname) = "FieldC", (gogoproto.customtype) = "Uuid"]; - repeated bytes Values = 4 [(gogoproto.customname) = "FieldD", (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message CustomNameNinEmbeddedStructUnion { - option (gogoproto.onlyone) = true; - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NinOptNative Field200 = 200 [(gogoproto.customname) = "FieldA"]; - optional bool Field210 = 210 [(gogoproto.customname) = "FieldB"]; -} - -message CustomNameEnum { - optional TheTestEnum Field1 = 1 [(gogoproto.customname) = "FieldA"]; - repeated TheTestEnum Field2 = 2 [(gogoproto.customname) = "FieldB"]; -} - -message NoExtensionsMap { - option (gogoproto.face) = false; - option (gogoproto.goproto_extensions_map) = false; - optional int64 Field1 = 1; - extensions 100 to 199; -} - -extend NoExtensionsMap { - optional double FieldA1 = 100; - optional NinOptNative FieldB1 = 101; - optional NinEmbeddedStruct FieldC1 = 102; -} - -message Unrecognized { - option (gogoproto.goproto_unrecognized) = false; - optional string Field1 = 1; -} - -message UnrecognizedWithInner { - message Inner { - option (gogoproto.goproto_unrecognized) = false; - optional uint32 Field1 = 1; - } - - repeated Inner embedded = 1; - optional string Field2 = 2; -} - -message UnrecognizedWithEmbed { - message Embedded { - option (gogoproto.goproto_unrecognized) = false; - optional uint32 Field1 = 1; - } - - optional Embedded embedded = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - optional string Field2 = 2; -} - -message Node { - optional string Label = 1; - repeated Node Children = 2; -} - -message NonByteCustomType { - optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; -} - -message NidOptNonByteCustomType { - optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; -} - -message NinOptNonByteCustomType { - optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; -} - -message NidRepNonByteCustomType { - repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; -} - -message NinRepNonByteCustomType { - repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; -} - -message ProtoType { - optional string Field2 = 1; -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetestpb_test.go deleted file mode 100644 index d2f7a8e89..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/thetestpb_test.go +++ /dev/null @@ -1,19040 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/thetest.proto -// DO NOT EDIT! - -/* -Package test is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeboth/thetest.proto - -It has these top-level messages: - NidOptNative - NinOptNative - NidRepNative - NinRepNative - NidRepPackedNative - NinRepPackedNative - NidOptStruct - NinOptStruct - NidRepStruct - NinRepStruct - NidEmbeddedStruct - NinEmbeddedStruct - NidNestedStruct - NinNestedStruct - NidOptCustom - CustomDash - NinOptCustom - NidRepCustom - NinRepCustom - NinOptNativeUnion - NinOptStructUnion - NinEmbeddedStructUnion - NinNestedStructUnion - Tree - OrBranch - AndBranch - Leaf - DeepTree - ADeepBranch - AndDeepBranch - DeepLeaf - Nil - NidOptEnum - NinOptEnum - NidRepEnum - NinRepEnum - NinOptEnumDefault - AnotherNinOptEnum - AnotherNinOptEnumDefault - Timer - MyExtendable - OtherExtenable - NestedDefinition - NestedScope - NinOptNativeDefault - CustomContainer - CustomNameNidOptNative - CustomNameNinOptNative - CustomNameNinRepNative - CustomNameNinStruct - CustomNameCustomType - CustomNameNinEmbeddedStructUnion - CustomNameEnum - NoExtensionsMap - Unrecognized - UnrecognizedWithInner - UnrecognizedWithEmbed - Node - NonByteCustomType - NidOptNonByteCustomType - NinOptNonByteCustomType - NidRepNonByteCustomType - NinRepNonByteCustomType - ProtoType -*/ -package test - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestNidOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepPackedNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepPackedNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepPackedNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepPackedNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepPackedNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepPackedNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepPackedNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepPackedNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidEmbeddedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidEmbeddedStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidEmbeddedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidEmbeddedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinEmbeddedStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinEmbeddedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidNestedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidNestedStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidNestedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidNestedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinNestedStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinNestedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptCustomMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomDashProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomDashMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomDashProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomDash, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomDash(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomDash{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptCustomMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepCustomMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepCustomMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptNativeUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNativeUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNativeUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptStructUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinEmbeddedStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinNestedStructUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinNestedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinNestedStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestTreeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestTreeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Tree, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Tree{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOrBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestOrBranchMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkOrBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OrBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOrBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OrBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAndBranchMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAndBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAndBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AndBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestLeafProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestLeafMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Leaf, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Leaf{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepTreeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestDeepTreeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkDeepTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepTree, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedDeepTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &DeepTree{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestADeepBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestADeepBranchMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkADeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ADeepBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedADeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ADeepBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndDeepBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAndDeepBranchMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndDeepBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAndDeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AndDeepBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepLeafProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestDeepLeafMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkDeepLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepLeaf, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedDeepLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &DeepLeaf{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNilProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNilMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNilProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nil, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNil(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNilProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Nil{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumDefaultProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptEnumDefaultMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnumDefault, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptEnumDefault{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAnotherNinOptEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AnotherNinOptEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumDefaultProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnumDefault, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AnotherNinOptEnumDefault{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestTimerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestTimerMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkTimerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Timer, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedTimer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkTimerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Timer{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMyExtendableProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMyExtendableMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMyExtendableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MyExtendable, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMyExtendable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MyExtendable{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOtherExtenableProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestOtherExtenableMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OtherExtenable, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOtherExtenable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OtherExtenable{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinitionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedDefinitionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedDefinition(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedDefinition{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessageProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedDefinition_NestedMessage{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedScopeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedScopeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedScopeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedScope, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedScope(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedScope{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeDefaultProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptNativeDefaultMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeDefault, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNativeDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNativeDefault{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomContainerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomContainerMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomContainerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomContainer, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomContainer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomContainer{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNidOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNidOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNidOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinRepNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinRepNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinRepNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNinStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinEmbeddedStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinEmbeddedStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNoExtensionsMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNoExtensionsMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NoExtensionsMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNoExtensionsMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NoExtensionsMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Unrecognized, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognized(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Unrecognized{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInnerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithInner{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInner_InnerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner_Inner, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner_Inner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithInner_Inner{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithEmbed{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed_Embedded, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithEmbed_Embedded{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNodeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNodeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNodeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Node, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNode(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNodeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Node{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestProtoTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkProtoTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedProtoType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ProtoType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepPackedNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepPackedNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidEmbeddedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinEmbeddedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidNestedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinNestedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomDashJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomDash{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNativeUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinEmbeddedStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinNestedStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestTreeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Tree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOrBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OrBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAndBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestLeafJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Leaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestDeepTreeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepTree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestADeepBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ADeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAndDeepBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndDeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestDeepLeafJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepLeaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNilJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nil{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptEnumDefaultJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAnotherNinOptEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestTimerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Timer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMyExtendableJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MyExtendable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOtherExtenableJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OtherExtenable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedDefinitionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedDefinition_NestedMessageJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedScopeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedScope{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNativeDefaultJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomContainerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomContainer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNidOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNoExtensionsMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NoExtensionsMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Unrecognized{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithInnerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner_Inner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithEmbedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNodeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Node{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestProtoTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepPackedNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepPackedNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepPackedNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepPackedNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidEmbeddedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidEmbeddedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidNestedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidNestedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomDashProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomDashProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTreeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTreeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOrBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOrBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestLeafProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestLeafProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepTreeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepTreeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestADeepBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestADeepBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndDeepBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndDeepBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepLeafProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepLeafProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNilProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNilProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumDefaultProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTimerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTimerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMyExtendableProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMyExtendableProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOtherExtenableProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOtherExtenableProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinitionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinitionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedScopeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedScopeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeDefaultProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomContainerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomContainerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNidOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinRepNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNoExtensionsMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNoExtensionsMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInnerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNodeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNodeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepPackedNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepPackedNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepPackedNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepPackedNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidEmbeddedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidEmbeddedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinEmbeddedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinEmbeddedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidNestedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidNestedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinNestedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinNestedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomDashCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomDash(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNativeUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNativeUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinEmbeddedStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinEmbeddedStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinNestedStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinNestedStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestTreeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedTree(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestOrBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedOrBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAndBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAndBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestLeafCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedLeaf(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestDeepTreeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedDeepTree(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestADeepBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedADeepBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAndDeepBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAndDeepBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestDeepLeafCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedDeepLeaf(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNilCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNil(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptEnumDefaultCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptEnumDefault(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAnotherNinOptEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAnotherNinOptEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAnotherNinOptEnumDefault(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestTimerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedTimer(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestMyExtendableCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedMyExtendable(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestOtherExtenableCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedOtherExtenable(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedDefinitionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedDefinition(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedDefinition_NestedMessageCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedDefinition_NestedMessage(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedScopeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedScope(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNativeDefaultCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNativeDefault(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomContainerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomContainer(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNidOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNidOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinRepNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinRepNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNoExtensionsMapCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNoExtensionsMap(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognized(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithInnerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithInner(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithEmbedCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNodeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNode(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestProtoTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedProtoType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestThetestDescription(t *testing.T) { - ThetestDescription() -} -func TestNidOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepPackedNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepPackedNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidEmbeddedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinEmbeddedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidNestedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinNestedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomDashVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNativeUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinNestedStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestTreeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOrBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAndBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestLeafVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestDeepTreeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestADeepBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAndDeepBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestDeepLeafVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNilVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestTimerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMyExtendableVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOtherExtenableVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedDefinitionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedScopeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomContainerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNoExtensionsMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNodeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestProtoTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomDashFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptNativeUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinNestedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestOrBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAndBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestDeepTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestADeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAndDeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestDeepLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNilFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAnotherNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestTimerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedDefinitionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedDefinition_NestedMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedScopeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomContainerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithInnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithInner_InnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithEmbedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNodeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestProtoTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomDashGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNativeUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinNestedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestOrBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAndBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestDeepTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestADeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAndDeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestDeepLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNilGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAnotherNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAnotherNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestTimerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestMyExtendableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestOtherExtenableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedDefinitionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedDefinition_NestedMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedScopeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNativeDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomContainerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNoExtensionsMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithInnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithEmbedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNodeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestProtoTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepPackedNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepPackedNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepPackedNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepPackedNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidEmbeddedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidEmbeddedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidNestedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidNestedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomDashSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomDashSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomDash, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomDash(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNativeUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNativeUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinNestedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinNestedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestTreeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Tree, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOrBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOrBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OrBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOrBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAndBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAndBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestLeafSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Leaf, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepTreeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkDeepTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepTree, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedDeepTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestADeepBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkADeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ADeepBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedADeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndDeepBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAndDeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndDeepBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAndDeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepLeafSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkDeepLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepLeaf, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedDeepLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNilSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNilSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nil, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNil(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumDefaultSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnumDefault, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAnotherNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumDefaultSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnumDefault, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestTimerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkTimerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Timer, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedTimer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMyExtendableSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMyExtendableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MyExtendable, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMyExtendable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOtherExtenableSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOtherExtenableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OtherExtenable, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOtherExtenable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinitionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedDefinitionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedDefinition(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessageSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedScopeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedScopeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedScope, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedScope(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeDefaultSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNativeDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeDefault, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNativeDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomContainerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomContainerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomContainer, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomContainer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNidOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNidOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinRepNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinRepNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinEmbeddedStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNoExtensionsMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNoExtensionsMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NoExtensionsMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNoExtensionsMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Unrecognized, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognized(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInnerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInner_InnerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner_Inner, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner_Inner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed_Embedded, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNodeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNodeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Node, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNode(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkProtoTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedProtoType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomDashStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinNestedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestOrBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAndBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestDeepTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestADeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAndDeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestDeepLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNilStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAnotherNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestTimerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestMyExtendableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestOtherExtenableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedDefinitionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedDefinition_NestedMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedScopeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomContainerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNoExtensionsMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithInnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithEmbedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNodeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestProtoTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, true) - v := p.GetValue() - msg := &NinOptNativeUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestNinOptStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, true) - v := p.GetValue() - msg := &NinOptStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - v := p.GetValue() - msg := &NinEmbeddedStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestNinNestedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, true) - v := p.GetValue() - msg := &NinNestedStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, true) - v := p.GetValue() - msg := &Tree{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestDeepTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, true) - v := p.GetValue() - msg := &DeepTree{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestCustomNameNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - v := p.GetValue() - msg := &CustomNameNinEmbeddedStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/uuid.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/uuid.go deleted file mode 100644 index ae349da4a..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeboth/uuid.go +++ /dev/null @@ -1,133 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package test - -import ( - "bytes" - "encoding/hex" - "encoding/json" -) - -func PutLittleEndianUint64(b []byte, offset int, v uint64) { - b[offset] = byte(v) - b[offset+1] = byte(v >> 8) - b[offset+2] = byte(v >> 16) - b[offset+3] = byte(v >> 24) - b[offset+4] = byte(v >> 32) - b[offset+5] = byte(v >> 40) - b[offset+6] = byte(v >> 48) - b[offset+7] = byte(v >> 56) -} - -type Uuid []byte - -func (uuid Uuid) Marshal() ([]byte, error) { - if len(uuid) == 0 { - return nil, nil - } - return []byte(uuid), nil -} - -func (uuid Uuid) MarshalTo(data []byte) (n int, err error) { - if len(uuid) == 0 { - return 0, nil - } - copy(data, uuid) - return 16, nil -} - -func (uuid *Uuid) Unmarshal(data []byte) error { - if len(data) == 0 { - uuid = nil - return nil - } - id := Uuid(make([]byte, 16)) - copy(id, data) - *uuid = id - return nil -} - -func (uuid *Uuid) Size() int { - if uuid == nil { - return 0 - } - if len(*uuid) == 0 { - return 0 - } - return 16 -} - -func (uuid Uuid) MarshalJSON() ([]byte, error) { - s := hex.EncodeToString([]byte(uuid)) - return json.Marshal(s) -} - -func (uuid *Uuid) UnmarshalJSON(data []byte) error { - var s string - err := json.Unmarshal(data, &s) - if err != nil { - return err - } - d, err := hex.DecodeString(s) - if err != nil { - return err - } - *uuid = Uuid(d) - return nil -} - -func (uuid Uuid) Equal(other Uuid) bool { - return bytes.Equal(uuid[0:], other[0:]) -} - -func (uuid Uuid) Compare(other Uuid) int { - return bytes.Compare(uuid[0:], other[0:]) -} - -type int63 interface { - Int63() int64 -} - -func NewPopulatedUuid(r int63) *Uuid { - u := RandV4(r) - return &u -} - -func RandV4(r int63) Uuid { - uuid := make(Uuid, 16) - uuid.RandV4(r) - return uuid -} - -func (uuid Uuid) RandV4(r int63) { - PutLittleEndianUint64(uuid, 0, uint64(r.Int63())) - PutLittleEndianUint64(uuid, 8, uint64(r.Int63())) - uuid[6] = (uuid[6] & 0xf) | 0x40 - uuid[8] = (uuid[8] & 0x3f) | 0x80 -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/bug_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/bug_test.go deleted file mode 100644 index 53f720e96..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/bug_test.go +++ /dev/null @@ -1,252 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package test - -import ( - "fmt" - "math" - "math/rand" - "testing" - "time" - - "github.com/gogo/protobuf/proto" -) - -//http://code.google.com/p/goprotobuf/issues/detail?id=39 -func TestBugUint32VarintSize(t *testing.T) { - temp := uint32(math.MaxUint32) - n := &NinOptNative{} - n.Field5 = &temp - data, err := proto.Marshal(n) - if err != nil { - panic(err) - } - if len(data) != 6 { - t.Fatalf("data should be length 6, but its %#v", data) - } -} - -func TestBugZeroLengthSliceSize(t *testing.T) { - n := &NinRepPackedNative{ - Field8: []int64{}, - } - size := n.Size() - data, err := proto.Marshal(n) - if err != nil { - panic(err) - } - if len(data) != size { - t.Fatalf("expected %v, but got %v", len(data), size) - } -} - -//http://code.google.com/p/goprotobuf/issues/detail?id=40 -func TestBugPackedProtoSize(t *testing.T) { - n := &NinRepPackedNative{ - Field4: []int64{172960727389894724, 2360337516664475010, 860833876131988189, 9068073014890763245, 7794843386260381831, 4023536436053141786, 8992311247496919020, 4330096163611305776, 4490411416244976467, 7873947349172707443, 2754969595834279669, 1360667855926938684, 4771480785172657389, 4875578924966668055, 8070579869808877481, 9128179594766551001, 4630419407064527516, 863844540220372892, 8208727650143073487, 7086117356301045838, 7779695211931506151, 5493835345187563535, 9119767633370806007, 9054342025895349248, 1887303228838508438, 7624573031734528281, 1874668389749611225, 3517684643468970593, 6677697606628877758, 7293473953189936168, 444475066704085538, 8594971141363049302, 1146643249094989673, 733393306232853371, 7721178528893916886, 7784452000911004429, 6436373110242711440, 6897422461738321237, 8772249155667732778, 6211871464311393541, 3061903718310406883, 7845488913176136641, 8342255034663902574, 3443058984649725748, 8410801047334832902, 7496541071517841153, 4305416923521577765, 7814967600020476457, 8671843803465481186, 3490266370361096855, 1447425664719091336, 653218597262334239, 8306243902880091940, 7851896059762409081, 5936760560798954978, 5755724498441478025, 7022701569985035966, 3707709584811468220, 529069456924666920, 7986469043681522462, 3092513330689518836, 5103541550470476202, 3577384161242626406, 3733428084624703294, 8388690542440473117, 3262468785346149388, 8788358556558007570, 5476276940198542020, 7277903243119461239, 5065861426928605020, 7533460976202697734, 1749213838654236956, 557497603941617931, 5496307611456481108, 6444547750062831720, 6992758776744205596, 7356719693428537399, 2896328872476734507, 381447079530132038, 598300737753233118, 3687980626612697715, 7240924191084283349, 8172414415307971170, 4847024388701257185, 2081764168600256551, 3394217778539123488, 6244660626429310923, 8301712215675381614, 5360615125359461174, 8410140945829785773, 3152963269026381373, 6197275282781459633, 4419829061407546410, 6262035523070047537, 2837207483933463885, 2158105736666826128, 8150764172235490711}, - Field7: []int32{249451845, 1409974015, 393609128, 435232428, 1817529040, 91769006, 861170933, 1556185603, 1568580279, 1236375273, 512276621, 693633711, 967580535, 1950715977, 853431462, 1362390253, 159591204, 111900629, 322985263, 279671129, 1592548430, 465651370, 733849989, 1172059400, 1574824441, 263541092, 1271612397, 1520584358, 467078791, 117698716, 1098255064, 2054264846, 1766452305, 1267576395, 1557505617, 1187833560, 956187431, 1970977586, 1160235159, 1610259028, 489585797, 459139078, 566263183, 954319278, 1545018565, 1753946743, 948214318, 422878159, 883926576, 1424009347, 824732372, 1290433180, 80297942, 417294230, 1402647904, 2078392782, 220505045, 787368129, 463781454, 293083578, 808156928, 293976361}, - Field9: []uint32{0xaa4976e8, 0x3da8cc4c, 0x8c470d83, 0x344d964e, 0x5b90925, 0xa4c4d34e, 0x666eff19, 0xc238e552, 0x9be53bb6, 0x56364245, 0x33ee079d, 0x96bf0ede, 0x7941b74f, 0xdb07cb47, 0x6d76d827, 0x9b211d5d, 0x2798adb6, 0xe48b0c3b, 0x87061b21, 0x48f4e4d2, 0x3e5d5c12, 0x5ee91288, 0x336d4f35, 0xe1d44941, 0xc065548d, 0x2953d73f, 0x873af451, 0xfc769db, 0x9f1bf8da, 0x9baafdfc, 0xf1d3d770, 0x5bb5d2b4, 0xc2c67c48, 0x6845c4c1, 0xa48f32b0, 0xbb04bb70, 0xa5b1ca36, 0x8d98356a, 0x2171f654, 0x5ae279b0, 0x6c4a3d6b, 0x4fff5468, 0xcf9bf851, 0x68513614, 0xdbecd9b0, 0x9553ed3c, 0xa494a736, 0x42205438, 0xbf8e5caa, 0xd3283c6, 0x76d20788, 0x9179826f, 0x96b24f85, 0xbc2eacf4, 0xe4afae0b, 0x4bca85cb, 0x35e63b5b, 0xd7ccee0c, 0x2b506bb9, 0xe78e9f44, 0x9ad232f1, 0x99a37335, 0xa5d6ffc8}, - Field11: []uint64{0x53c01ebc, 0x4fb85ba6, 0x8805eea1, 0xb20ec896, 0x93b63410, 0xec7c9492, 0x50765a28, 0x19592106, 0x2ecc59b3, 0x39cd474f, 0xe4c9e47, 0x444f48c5, 0xe7731d32, 0xf3f43975, 0x603caedd, 0xbb05a1af, 0xa808e34e, 0x88580b07, 0x4c96bbd1, 0x730b4ab9, 0xed126e2b, 0x6db48205, 0x154ba1b9, 0xc26bfb6a, 0x389aa052, 0x869d966c, 0x7c86b366, 0xcc8edbcd, 0xfa8d6dad, 0xcf5857d9, 0x2d9cda0f, 0x1218a0b8, 0x41bf997, 0xf0ca65ac, 0xa610d4b9, 0x8d362e28, 0xb7212d87, 0x8e0fe109, 0xbee041d9, 0x759be2f6, 0x35fef4f3, 0xaeacdb71, 0x10888852, 0xf4e28117, 0xe2a14812, 0x73b748dc, 0xd1c3c6b2, 0xfef41bf0, 0xc9b43b62, 0x810e4faa, 0xcaa41c06, 0x1893fe0d, 0xedc7c850, 0xd12b9eaa, 0x467ee1a9, 0xbe84756b, 0xda7b1680, 0xdc069ffe, 0xf1e7e9f9, 0xb3d95370, 0xa92b77df, 0x5693ac41, 0xd04b7287, 0x27aebf15, 0x837b316e, 0x4dbe2263, 0xbab70c67, 0x547dab21, 0x3c346c1f, 0xb8ef0e4e, 0xfe2d03ce, 0xe1d75955, 0xfec1306, 0xba35c23e, 0xb784ed04, 0x2a4e33aa, 0x7e19d09a, 0x3827c1fe, 0xf3a51561, 0xef765e2b, 0xb044256c, 0x62b322be, 0xf34d56be, 0xeb71b369, 0xffe1294f, 0x237fe8d0, 0x77a1473b, 0x239e1196, 0xdd19bf3d, 0x82c91fe1, 0x95361c57, 0xffea3f1b, 0x1a094c84}, - Field12: []int64{8308420747267165049, 3664160795077875961, 7868970059161834817, 7237335984251173739, 5254748003907196506, 3362259627111837480, 430460752854552122, 5119635556501066533, 1277716037866233522, 9185775384759813768, 833932430882717888, 7986528304451297640, 6792233378368656337, 2074207091120609721, 1788723326198279432, 7756514594746453657, 2283775964901597324, 3061497730110517191, 7733947890656120277, 626967303632386244, 7822928600388582821, 3489658753000061230, 168869995163005961, 248814782163480763, 477885608911386247, 4198422415674133867, 3379354662797976109, 9925112544736939, 1486335136459138480, 4561560414032850671, 1010864164014091267, 186722821683803084, 5106357936724819318, 1298160820191228988, 4675403242419953145, 7130634540106489752, 7101280006672440929, 7176058292431955718, 9109875054097770321, 6810974877085322872, 4736707874303993641, 8993135362721382187, 6857881554990254283, 3704748883307461680, 1099360832887634994, 5207691918707192633, 5984721695043995243}, - } - size := proto.Size(n) - data, err := proto.Marshal(n) - if err != nil { - panic(err) - } - if len(data) != size { - t.Fatalf("expected %v, but got %v diff is %v", len(data), size, len(data)-size) - } -} - -func testSize(m interface { - proto.Message - Size() int -}, desc string, expected int) ([]byte, error) { - data, err := proto.Marshal(m) - if err != nil { - return nil, err - } - protoSize := proto.Size(m) - mSize := m.Size() - lenData := len(data) - if protoSize != mSize || protoSize != lenData || mSize != lenData { - return nil, fmt.Errorf("%s proto.Size(m){%d} != m.Size(){%d} != len(data){%d}", desc, protoSize, mSize, lenData) - } - if got := protoSize; got != expected { - return nil, fmt.Errorf("%s proto.Size(m) got %d expected %d", desc, got, expected) - } - if got := mSize; got != expected { - return nil, fmt.Errorf("%s m.Size() got %d expected %d", desc, got, expected) - } - if got := lenData; got != expected { - return nil, fmt.Errorf("%s len(data) got %d expected %d", desc, got, expected) - } - return data, nil -} - -func TestInt32Int64Compatibility(t *testing.T) { - - //test nullable int32 and int64 - - data1, err := testSize(&NinOptNative{ - Field3: proto.Int32(-1), - }, "nullable", 11) - if err != nil { - t.Error(err) - } - //change marshaled data1 to unmarshal into 4th field which is an int64 - data1[0] = uint8(uint32(4 /*fieldNumber*/)<<3 | uint32(0 /*wireType*/)) - u1 := &NinOptNative{} - if err = proto.Unmarshal(data1, u1); err != nil { - t.Error(err) - } - if !u1.Equal(&NinOptNative{ - Field4: proto.Int64(-1), - }) { - t.Error("nullable unmarshaled int32 is not the same int64") - } - - //test non-nullable int32 and int64 - - data2, err := testSize(&NidOptNative{ - Field3: -1, - }, "non nullable", 67) - if err != nil { - t.Error(err) - } - //change marshaled data2 to unmarshal into 4th field which is an int64 - field3 := uint8(uint32(3 /*fieldNumber*/)<<3 | uint32(0 /*wireType*/)) - field4 := uint8(uint32(4 /*fieldNumber*/)<<3 | uint32(0 /*wireType*/)) - for i, c := range data2 { - if c == field4 { - data2[i] = field3 - } else if c == field3 { - data2[i] = field4 - } - } - u2 := &NidOptNative{} - if err = proto.Unmarshal(data2, u2); err != nil { - t.Error(err) - } - if !u2.Equal(&NidOptNative{ - Field4: -1, - }) { - t.Error("non nullable unmarshaled int32 is not the same int64") - } - - //test packed repeated int32 and int64 - - m4 := &NinRepPackedNative{ - Field3: []int32{-1}, - } - data4, err := testSize(m4, "packed", 12) - if err != nil { - t.Error(err) - } - u4 := &NinRepPackedNative{} - if err := proto.Unmarshal(data4, u4); err != nil { - t.Error(err) - } - if err := u4.VerboseEqual(m4); err != nil { - t.Fatalf("%#v", u4) - } - - //test repeated int32 and int64 - - if _, err := testSize(&NinRepNative{ - Field3: []int32{-1}, - }, "repeated", 11); err != nil { - t.Error(err) - } - - t.Logf("tested all") -} - -func TestRepeatedExtensionsMsgsIssue161(t *testing.T) { - r := rand.New(rand.NewSource(time.Now().UnixNano())) - rep := 10 - nins := make([]*NinOptNative, rep) - for i := range nins { - nins[i] = NewPopulatedNinOptNative(r, true) - } - input := &MyExtendable{} - if err := proto.SetExtension(input, E_FieldE, nins); err != nil { - t.Fatal(err) - } - data, err := proto.Marshal(input) - if err != nil { - t.Fatal(err) - } - output := &MyExtendable{} - if err := proto.Unmarshal(data, output); err != nil { - t.Fatal(err) - } - if !input.Equal(output) { - t.Fatal("expected equal") - } - data2, err2 := proto.Marshal(output) - if err2 != nil { - t.Fatal(err2) - } - if len(data) != len(data2) { - t.Fatal("expected equal length buffers") - } -} - -func TestRepeatedExtensionsFieldsIssue161(t *testing.T) { - r := rand.New(rand.NewSource(time.Now().UnixNano())) - rep := 10 - ints := make([]int64, rep) - for i := range ints { - ints[i] = r.Int63() - } - input := &MyExtendable{} - if err := proto.SetExtension(input, E_FieldD, ints); err != nil { - t.Fatal(err) - } - data, err := proto.Marshal(input) - if err != nil { - t.Fatal(err) - } - output := &MyExtendable{} - if err := proto.Unmarshal(data, output); err != nil { - t.Fatal(err) - } - if !input.Equal(output) { - t.Fatal("expected equal") - } - data2, err2 := proto.Marshal(output) - if err2 != nil { - t.Fatal(err2) - } - if len(data) != len(data2) { - t.Fatal("expected equal length buffers") - } -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/t.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/t.go deleted file mode 100644 index 4112884ac..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/t.go +++ /dev/null @@ -1,77 +0,0 @@ -package test - -import ( - "encoding/json" - "strings" - - "github.com/gogo/protobuf/proto" -) - -type T struct { - Data string -} - -func (gt *T) protoType() *ProtoType { - return &ProtoType{ - Field2: >.Data, - } -} - -func (gt T) Equal(other T) bool { - return gt.protoType().Equal(other.protoType()) -} - -func (gt *T) Size() int { - proto := &ProtoType{ - Field2: >.Data, - } - return proto.Size() -} - -func NewPopulatedT(r randyThetest) *T { - data := NewPopulatedProtoType(r, false).Field2 - gt := &T{} - if data != nil { - gt.Data = *data - } - return gt -} - -func (r T) Marshal() ([]byte, error) { - return proto.Marshal(r.protoType()) -} - -func (r *T) MarshalTo(data []byte) (n int, err error) { - return r.protoType().MarshalTo(data) -} - -func (r *T) Unmarshal(data []byte) error { - pr := &ProtoType{} - err := proto.Unmarshal(data, pr) - if err != nil { - return err - } - - if pr.Field2 != nil { - r.Data = *pr.Field2 - } - return nil -} - -func (gt T) MarshalJSON() ([]byte, error) { - return json.Marshal(gt.Data) -} - -func (gt *T) UnmarshalJSON(data []byte) error { - var s string - err := json.Unmarshal(data, &s) - if err != nil { - return err - } - *gt = T{Data: s} - return nil -} - -func (gt T) Compare(other T) int { - return strings.Compare(gt.Data, other.Data) -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.pb.go deleted file mode 100644 index 506e3bbcd..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.pb.go +++ /dev/null @@ -1,29896 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/thetest.proto -// DO NOT EDIT! - -/* - Package test is a generated protocol buffer package. - - It is generated from these files: - combos/unsafemarshaler/thetest.proto - - It has these top-level messages: - NidOptNative - NinOptNative - NidRepNative - NinRepNative - NidRepPackedNative - NinRepPackedNative - NidOptStruct - NinOptStruct - NidRepStruct - NinRepStruct - NidEmbeddedStruct - NinEmbeddedStruct - NidNestedStruct - NinNestedStruct - NidOptCustom - CustomDash - NinOptCustom - NidRepCustom - NinRepCustom - NinOptNativeUnion - NinOptStructUnion - NinEmbeddedStructUnion - NinNestedStructUnion - Tree - OrBranch - AndBranch - Leaf - DeepTree - ADeepBranch - AndDeepBranch - DeepLeaf - Nil - NidOptEnum - NinOptEnum - NidRepEnum - NinRepEnum - NinOptEnumDefault - AnotherNinOptEnum - AnotherNinOptEnumDefault - Timer - MyExtendable - OtherExtenable - NestedDefinition - NestedScope - NinOptNativeDefault - CustomContainer - CustomNameNidOptNative - CustomNameNinOptNative - CustomNameNinRepNative - CustomNameNinStruct - CustomNameCustomType - CustomNameNinEmbeddedStructUnion - CustomNameEnum - NoExtensionsMap - Unrecognized - UnrecognizedWithInner - UnrecognizedWithEmbed - Node - NonByteCustomType - NidOptNonByteCustomType - NinOptNonByteCustomType - NidRepNonByteCustomType - NinRepNonByteCustomType - ProtoType -*/ -package test - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type" - -import bytes "bytes" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import compress_gzip "compress/gzip" -import io_ioutil "io/ioutil" - -import strconv "strconv" - -import strings "strings" -import sort "sort" -import reflect "reflect" - -import unsafe "unsafe" - -// 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 - -type TheTestEnum int32 - -const ( - A TheTestEnum = 0 - B TheTestEnum = 1 - C TheTestEnum = 2 -) - -var TheTestEnum_name = map[int32]string{ - 0: "A", - 1: "B", - 2: "C", -} -var TheTestEnum_value = map[string]int32{ - "A": 0, - "B": 1, - "C": 2, -} - -func (x TheTestEnum) Enum() *TheTestEnum { - p := new(TheTestEnum) - *p = x - return p -} -func (x TheTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(TheTestEnum_name, int32(x)) -} -func (x *TheTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(TheTestEnum_value, data, "TheTestEnum") - if err != nil { - return err - } - *x = TheTestEnum(value) - return nil -} -func (TheTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } - -type AnotherTestEnum int32 - -const ( - D AnotherTestEnum = 10 - E AnotherTestEnum = 11 -) - -var AnotherTestEnum_name = map[int32]string{ - 10: "D", - 11: "E", -} -var AnotherTestEnum_value = map[string]int32{ - "D": 10, - "E": 11, -} - -func (x AnotherTestEnum) Enum() *AnotherTestEnum { - p := new(AnotherTestEnum) - *p = x - return p -} -func (x AnotherTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(AnotherTestEnum_name, int32(x)) -} -func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(AnotherTestEnum_value, data, "AnotherTestEnum") - if err != nil { - return err - } - *x = AnotherTestEnum(value) - return nil -} -func (AnotherTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -type YetAnotherTestEnum int32 - -const ( - AA YetAnotherTestEnum = 0 - BetterYetBB YetAnotherTestEnum = 1 -) - -var YetAnotherTestEnum_name = map[int32]string{ - 0: "AA", - 1: "BB", -} -var YetAnotherTestEnum_value = map[string]int32{ - "AA": 0, - "BB": 1, -} - -func (x YetAnotherTestEnum) Enum() *YetAnotherTestEnum { - p := new(YetAnotherTestEnum) - *p = x - return p -} -func (x YetAnotherTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(YetAnotherTestEnum_name, int32(x)) -} -func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(YetAnotherTestEnum_value, data, "YetAnotherTestEnum") - if err != nil { - return err - } - *x = YetAnotherTestEnum(value) - return nil -} -func (YetAnotherTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -type YetYetAnotherTestEnum int32 - -const ( - YetYetAnotherTestEnum_CC YetYetAnotherTestEnum = 0 - YetYetAnotherTestEnum_BetterYetDD YetYetAnotherTestEnum = 1 -) - -var YetYetAnotherTestEnum_name = map[int32]string{ - 0: "CC", - 1: "DD", -} -var YetYetAnotherTestEnum_value = map[string]int32{ - "CC": 0, - "DD": 1, -} - -func (x YetYetAnotherTestEnum) Enum() *YetYetAnotherTestEnum { - p := new(YetYetAnotherTestEnum) - *p = x - return p -} -func (x YetYetAnotherTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(YetYetAnotherTestEnum_name, int32(x)) -} -func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(YetYetAnotherTestEnum_value, data, "YetYetAnotherTestEnum") - if err != nil { - return err - } - *x = YetYetAnotherTestEnum(value) - return nil -} -func (YetYetAnotherTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } - -type NestedDefinition_NestedEnum int32 - -const ( - TYPE_NESTED NestedDefinition_NestedEnum = 1 -) - -var NestedDefinition_NestedEnum_name = map[int32]string{ - 1: "TYPE_NESTED", -} -var NestedDefinition_NestedEnum_value = map[string]int32{ - "TYPE_NESTED": 1, -} - -func (x NestedDefinition_NestedEnum) Enum() *NestedDefinition_NestedEnum { - p := new(NestedDefinition_NestedEnum) - *p = x - return p -} -func (x NestedDefinition_NestedEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(NestedDefinition_NestedEnum_name, int32(x)) -} -func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(NestedDefinition_NestedEnum_value, data, "NestedDefinition_NestedEnum") - if err != nil { - return err - } - *x = NestedDefinition_NestedEnum(value) - return nil -} -func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{42, 0} -} - -type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptNative) Reset() { *m = NidOptNative{} } -func (*NidOptNative) ProtoMessage() {} -func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } - -type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNative) Reset() { *m = NinOptNative{} } -func (*NinOptNative) ProtoMessage() {} -func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } - -type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepNative) Reset() { *m = NidRepNative{} } -func (*NidRepNative) ProtoMessage() {} -func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } - -type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepNative) Reset() { *m = NinRepNative{} } -func (*NinRepNative) ProtoMessage() {} -func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } - -type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepPackedNative) Reset() { *m = NidRepPackedNative{} } -func (*NidRepPackedNative) ProtoMessage() {} -func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } - -type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepPackedNative) Reset() { *m = NinRepPackedNative{} } -func (*NinRepPackedNative) ProtoMessage() {} -func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } - -type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptStruct) Reset() { *m = NidOptStruct{} } -func (*NidOptStruct) ProtoMessage() {} -func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } - -type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptStruct) Reset() { *m = NinOptStruct{} } -func (*NinOptStruct) ProtoMessage() {} -func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } - -type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepStruct) Reset() { *m = NidRepStruct{} } -func (*NidRepStruct) ProtoMessage() {} -func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } - -type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepStruct) Reset() { *m = NinRepStruct{} } -func (*NinRepStruct) ProtoMessage() {} -func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } - -type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidEmbeddedStruct) Reset() { *m = NidEmbeddedStruct{} } -func (*NidEmbeddedStruct) ProtoMessage() {} -func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } - -type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinEmbeddedStruct) Reset() { *m = NinEmbeddedStruct{} } -func (*NinEmbeddedStruct) ProtoMessage() {} -func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } - -type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidNestedStruct) Reset() { *m = NidNestedStruct{} } -func (*NidNestedStruct) ProtoMessage() {} -func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } - -type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinNestedStruct) Reset() { *m = NinNestedStruct{} } -func (*NinNestedStruct) ProtoMessage() {} -func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } - -type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptCustom) Reset() { *m = NidOptCustom{} } -func (*NidOptCustom) ProtoMessage() {} -func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } - -type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomDash) Reset() { *m = CustomDash{} } -func (*CustomDash) ProtoMessage() {} -func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } - -type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptCustom) Reset() { *m = NinOptCustom{} } -func (*NinOptCustom) ProtoMessage() {} -func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } - -type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepCustom) Reset() { *m = NidRepCustom{} } -func (*NidRepCustom) ProtoMessage() {} -func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } - -type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepCustom) Reset() { *m = NinRepCustom{} } -func (*NinRepCustom) ProtoMessage() {} -func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } - -type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNativeUnion) Reset() { *m = NinOptNativeUnion{} } -func (*NinOptNativeUnion) ProtoMessage() {} -func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } - -type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptStructUnion) Reset() { *m = NinOptStructUnion{} } -func (*NinOptStructUnion) ProtoMessage() {} -func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } - -type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinEmbeddedStructUnion) Reset() { *m = NinEmbeddedStructUnion{} } -func (*NinEmbeddedStructUnion) ProtoMessage() {} -func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } - -type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinNestedStructUnion) Reset() { *m = NinNestedStructUnion{} } -func (*NinNestedStructUnion) ProtoMessage() {} -func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } - -type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Tree) Reset() { *m = Tree{} } -func (*Tree) ProtoMessage() {} -func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } - -type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OrBranch) Reset() { *m = OrBranch{} } -func (*OrBranch) ProtoMessage() {} -func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } - -type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AndBranch) Reset() { *m = AndBranch{} } -func (*AndBranch) ProtoMessage() {} -func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } - -type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Leaf) Reset() { *m = Leaf{} } -func (*Leaf) ProtoMessage() {} -func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } - -type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DeepTree) Reset() { *m = DeepTree{} } -func (*DeepTree) ProtoMessage() {} -func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } - -type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *ADeepBranch) Reset() { *m = ADeepBranch{} } -func (*ADeepBranch) ProtoMessage() {} -func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } - -type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AndDeepBranch) Reset() { *m = AndDeepBranch{} } -func (*AndDeepBranch) ProtoMessage() {} -func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } - -type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DeepLeaf) Reset() { *m = DeepLeaf{} } -func (*DeepLeaf) ProtoMessage() {} -func (*DeepLeaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{30} } - -type Nil struct { - XXX_unrecognized []byte `json:"-"` -} - -func (m *Nil) Reset() { *m = Nil{} } -func (*Nil) ProtoMessage() {} -func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } - -type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptEnum) Reset() { *m = NidOptEnum{} } -func (*NidOptEnum) ProtoMessage() {} -func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } - -type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptEnum) Reset() { *m = NinOptEnum{} } -func (*NinOptEnum) ProtoMessage() {} -func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } - -type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepEnum) Reset() { *m = NidRepEnum{} } -func (*NidRepEnum) ProtoMessage() {} -func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } - -type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepEnum) Reset() { *m = NinRepEnum{} } -func (*NinRepEnum) ProtoMessage() {} -func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } - -type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptEnumDefault) Reset() { *m = NinOptEnumDefault{} } -func (*NinOptEnumDefault) ProtoMessage() {} -func (*NinOptEnumDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{36} } - -const Default_NinOptEnumDefault_Field1 TheTestEnum = C -const Default_NinOptEnumDefault_Field2 YetAnotherTestEnum = BetterYetBB -const Default_NinOptEnumDefault_Field3 YetYetAnotherTestEnum = YetYetAnotherTestEnum_CC - -func (m *NinOptEnumDefault) GetField1() TheTestEnum { - if m != nil && m.Field1 != nil { - return *m.Field1 - } - return Default_NinOptEnumDefault_Field1 -} - -func (m *NinOptEnumDefault) GetField2() YetAnotherTestEnum { - if m != nil && m.Field2 != nil { - return *m.Field2 - } - return Default_NinOptEnumDefault_Field2 -} - -func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { - if m != nil && m.Field3 != nil { - return *m.Field3 - } - return Default_NinOptEnumDefault_Field3 -} - -type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AnotherNinOptEnum) Reset() { *m = AnotherNinOptEnum{} } -func (*AnotherNinOptEnum) ProtoMessage() {} -func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } - -type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AnotherNinOptEnumDefault) Reset() { *m = AnotherNinOptEnumDefault{} } -func (*AnotherNinOptEnumDefault) ProtoMessage() {} -func (*AnotherNinOptEnumDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{38} } - -const Default_AnotherNinOptEnumDefault_Field1 AnotherTestEnum = E -const Default_AnotherNinOptEnumDefault_Field2 YetAnotherTestEnum = BetterYetBB -const Default_AnotherNinOptEnumDefault_Field3 YetYetAnotherTestEnum = YetYetAnotherTestEnum_CC - -func (m *AnotherNinOptEnumDefault) GetField1() AnotherTestEnum { - if m != nil && m.Field1 != nil { - return *m.Field1 - } - return Default_AnotherNinOptEnumDefault_Field1 -} - -func (m *AnotherNinOptEnumDefault) GetField2() YetAnotherTestEnum { - if m != nil && m.Field2 != nil { - return *m.Field2 - } - return Default_AnotherNinOptEnumDefault_Field2 -} - -func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { - if m != nil && m.Field3 != nil { - return *m.Field3 - } - return Default_AnotherNinOptEnumDefault_Field3 -} - -type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Timer) Reset() { *m = Timer{} } -func (*Timer) ProtoMessage() {} -func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } - -type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` - proto.XXX_InternalExtensions `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MyExtendable) Reset() { *m = MyExtendable{} } -func (*MyExtendable) ProtoMessage() {} -func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } - -var extRange_MyExtendable = []proto.ExtensionRange{ - {Start: 100, End: 199}, -} - -func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_MyExtendable -} - -type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` - proto.XXX_InternalExtensions `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } -func (*OtherExtenable) ProtoMessage() {} -func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } - -var extRange_OtherExtenable = []proto.ExtensionRange{ - {Start: 14, End: 16}, - {Start: 10, End: 12}, -} - -func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_OtherExtenable -} - -type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedDefinition) Reset() { *m = NestedDefinition{} } -func (*NestedDefinition) ProtoMessage() {} -func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } - -type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedDefinition_NestedMessage) Reset() { *m = NestedDefinition_NestedMessage{} } -func (*NestedDefinition_NestedMessage) ProtoMessage() {} -func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{42, 0} -} - -type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Reset() { - *m = NestedDefinition_NestedMessage_NestedNestedMsg{} -} -func (*NestedDefinition_NestedMessage_NestedNestedMsg) ProtoMessage() {} -func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{42, 0, 0} -} - -type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedScope) Reset() { *m = NestedScope{} } -func (*NestedScope) ProtoMessage() {} -func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } - -type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNativeDefault) Reset() { *m = NinOptNativeDefault{} } -func (*NinOptNativeDefault) ProtoMessage() {} -func (*NinOptNativeDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{44} } - -const Default_NinOptNativeDefault_Field1 float64 = 1234.1234 -const Default_NinOptNativeDefault_Field2 float32 = 1234.1234 -const Default_NinOptNativeDefault_Field3 int32 = 1234 -const Default_NinOptNativeDefault_Field4 int64 = 1234 -const Default_NinOptNativeDefault_Field5 uint32 = 1234 -const Default_NinOptNativeDefault_Field6 uint64 = 1234 -const Default_NinOptNativeDefault_Field7 int32 = 1234 -const Default_NinOptNativeDefault_Field8 int64 = 1234 -const Default_NinOptNativeDefault_Field9 uint32 = 1234 -const Default_NinOptNativeDefault_Field10 int32 = 1234 -const Default_NinOptNativeDefault_Field11 uint64 = 1234 -const Default_NinOptNativeDefault_Field12 int64 = 1234 -const Default_NinOptNativeDefault_Field13 bool = true -const Default_NinOptNativeDefault_Field14 string = "1234" - -func (m *NinOptNativeDefault) GetField1() float64 { - if m != nil && m.Field1 != nil { - return *m.Field1 - } - return Default_NinOptNativeDefault_Field1 -} - -func (m *NinOptNativeDefault) GetField2() float32 { - if m != nil && m.Field2 != nil { - return *m.Field2 - } - return Default_NinOptNativeDefault_Field2 -} - -func (m *NinOptNativeDefault) GetField3() int32 { - if m != nil && m.Field3 != nil { - return *m.Field3 - } - return Default_NinOptNativeDefault_Field3 -} - -func (m *NinOptNativeDefault) GetField4() int64 { - if m != nil && m.Field4 != nil { - return *m.Field4 - } - return Default_NinOptNativeDefault_Field4 -} - -func (m *NinOptNativeDefault) GetField5() uint32 { - if m != nil && m.Field5 != nil { - return *m.Field5 - } - return Default_NinOptNativeDefault_Field5 -} - -func (m *NinOptNativeDefault) GetField6() uint64 { - if m != nil && m.Field6 != nil { - return *m.Field6 - } - return Default_NinOptNativeDefault_Field6 -} - -func (m *NinOptNativeDefault) GetField7() int32 { - if m != nil && m.Field7 != nil { - return *m.Field7 - } - return Default_NinOptNativeDefault_Field7 -} - -func (m *NinOptNativeDefault) GetField8() int64 { - if m != nil && m.Field8 != nil { - return *m.Field8 - } - return Default_NinOptNativeDefault_Field8 -} - -func (m *NinOptNativeDefault) GetField9() uint32 { - if m != nil && m.Field9 != nil { - return *m.Field9 - } - return Default_NinOptNativeDefault_Field9 -} - -func (m *NinOptNativeDefault) GetField10() int32 { - if m != nil && m.Field10 != nil { - return *m.Field10 - } - return Default_NinOptNativeDefault_Field10 -} - -func (m *NinOptNativeDefault) GetField11() uint64 { - if m != nil && m.Field11 != nil { - return *m.Field11 - } - return Default_NinOptNativeDefault_Field11 -} - -func (m *NinOptNativeDefault) GetField12() int64 { - if m != nil && m.Field12 != nil { - return *m.Field12 - } - return Default_NinOptNativeDefault_Field12 -} - -func (m *NinOptNativeDefault) GetField13() bool { - if m != nil && m.Field13 != nil { - return *m.Field13 - } - return Default_NinOptNativeDefault_Field13 -} - -func (m *NinOptNativeDefault) GetField14() string { - if m != nil && m.Field14 != nil { - return *m.Field14 - } - return Default_NinOptNativeDefault_Field14 -} - -func (m *NinOptNativeDefault) GetField15() []byte { - if m != nil { - return m.Field15 - } - return nil -} - -type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomContainer) Reset() { *m = CustomContainer{} } -func (*CustomContainer) ProtoMessage() {} -func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } - -type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNidOptNative) Reset() { *m = CustomNameNidOptNative{} } -func (*CustomNameNidOptNative) ProtoMessage() {} -func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } - -type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinOptNative) Reset() { *m = CustomNameNinOptNative{} } -func (*CustomNameNinOptNative) ProtoMessage() {} -func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } - -type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinRepNative) Reset() { *m = CustomNameNinRepNative{} } -func (*CustomNameNinRepNative) ProtoMessage() {} -func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } - -type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinStruct) Reset() { *m = CustomNameNinStruct{} } -func (*CustomNameNinStruct) ProtoMessage() {} -func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } - -type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameCustomType) Reset() { *m = CustomNameCustomType{} } -func (*CustomNameCustomType) ProtoMessage() {} -func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } - -type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinEmbeddedStructUnion) Reset() { *m = CustomNameNinEmbeddedStructUnion{} } -func (*CustomNameNinEmbeddedStructUnion) ProtoMessage() {} -func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{51} -} - -type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameEnum) Reset() { *m = CustomNameEnum{} } -func (*CustomNameEnum) ProtoMessage() {} -func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } - -type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` - XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NoExtensionsMap) Reset() { *m = NoExtensionsMap{} } -func (*NoExtensionsMap) ProtoMessage() {} -func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } - -var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {Start: 100, End: 199}, -} - -func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_NoExtensionsMap -} -func (m *NoExtensionsMap) GetExtensions() *[]byte { - if m.XXX_extensions == nil { - m.XXX_extensions = make([]byte, 0) - } - return &m.XXX_extensions -} - -type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` -} - -func (m *Unrecognized) Reset() { *m = Unrecognized{} } -func (*Unrecognized) ProtoMessage() {} -func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{54} } - -type UnrecognizedWithInner struct { - Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *UnrecognizedWithInner) Reset() { *m = UnrecognizedWithInner{} } -func (*UnrecognizedWithInner) ProtoMessage() {} -func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } - -type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` -} - -func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } -func (*UnrecognizedWithInner_Inner) ProtoMessage() {} -func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{55, 0} -} - -type UnrecognizedWithEmbed struct { - UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *UnrecognizedWithEmbed) Reset() { *m = UnrecognizedWithEmbed{} } -func (*UnrecognizedWithEmbed) ProtoMessage() {} -func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } - -type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` -} - -func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } -func (*UnrecognizedWithEmbed_Embedded) ProtoMessage() {} -func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{56, 0} -} - -type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Node) Reset() { *m = Node{} } -func (*Node) ProtoMessage() {} -func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } - -type NonByteCustomType struct { - Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } -func (*NonByteCustomType) ProtoMessage() {} -func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } - -type NidOptNonByteCustomType struct { - Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } -func (*NidOptNonByteCustomType) ProtoMessage() {} -func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } - -type NinOptNonByteCustomType struct { - Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } -func (*NinOptNonByteCustomType) ProtoMessage() {} -func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } - -type NidRepNonByteCustomType struct { - Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } -func (*NidRepNonByteCustomType) ProtoMessage() {} -func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } - -type NinRepNonByteCustomType struct { - Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } -func (*NinRepNonByteCustomType) ProtoMessage() {} -func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } - -type ProtoType struct { - Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *ProtoType) Reset() { *m = ProtoType{} } -func (*ProtoType) ProtoMessage() {} -func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } - -var E_FieldA = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: (*float64)(nil), - Field: 100, - Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA", - Filename: "combos/unsafemarshaler/thetest.proto", -} - -var E_FieldB = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: (*NinOptNative)(nil), - Field: 101, - Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB", - Filename: "combos/unsafemarshaler/thetest.proto", -} - -var E_FieldC = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: (*NinEmbeddedStruct)(nil), - Field: 102, - Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC", - Filename: "combos/unsafemarshaler/thetest.proto", -} - -var E_FieldD = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: ([]int64)(nil), - Field: 104, - Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD", - Filename: "combos/unsafemarshaler/thetest.proto", -} - -var E_FieldE = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: ([]*NinOptNative)(nil), - Field: 105, - Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE", - Filename: "combos/unsafemarshaler/thetest.proto", -} - -var E_FieldA1 = &proto.ExtensionDesc{ - ExtendedType: (*NoExtensionsMap)(nil), - ExtensionType: (*float64)(nil), - Field: 100, - Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1", - Filename: "combos/unsafemarshaler/thetest.proto", -} - -var E_FieldB1 = &proto.ExtensionDesc{ - ExtendedType: (*NoExtensionsMap)(nil), - ExtensionType: (*NinOptNative)(nil), - Field: 101, - Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1", - Filename: "combos/unsafemarshaler/thetest.proto", -} - -var E_FieldC1 = &proto.ExtensionDesc{ - ExtendedType: (*NoExtensionsMap)(nil), - ExtensionType: (*NinEmbeddedStruct)(nil), - Field: 102, - Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1", - Filename: "combos/unsafemarshaler/thetest.proto", -} - -func init() { - proto.RegisterType((*NidOptNative)(nil), "test.NidOptNative") - proto.RegisterType((*NinOptNative)(nil), "test.NinOptNative") - proto.RegisterType((*NidRepNative)(nil), "test.NidRepNative") - proto.RegisterType((*NinRepNative)(nil), "test.NinRepNative") - proto.RegisterType((*NidRepPackedNative)(nil), "test.NidRepPackedNative") - proto.RegisterType((*NinRepPackedNative)(nil), "test.NinRepPackedNative") - proto.RegisterType((*NidOptStruct)(nil), "test.NidOptStruct") - proto.RegisterType((*NinOptStruct)(nil), "test.NinOptStruct") - proto.RegisterType((*NidRepStruct)(nil), "test.NidRepStruct") - proto.RegisterType((*NinRepStruct)(nil), "test.NinRepStruct") - proto.RegisterType((*NidEmbeddedStruct)(nil), "test.NidEmbeddedStruct") - proto.RegisterType((*NinEmbeddedStruct)(nil), "test.NinEmbeddedStruct") - proto.RegisterType((*NidNestedStruct)(nil), "test.NidNestedStruct") - proto.RegisterType((*NinNestedStruct)(nil), "test.NinNestedStruct") - proto.RegisterType((*NidOptCustom)(nil), "test.NidOptCustom") - proto.RegisterType((*CustomDash)(nil), "test.CustomDash") - proto.RegisterType((*NinOptCustom)(nil), "test.NinOptCustom") - proto.RegisterType((*NidRepCustom)(nil), "test.NidRepCustom") - proto.RegisterType((*NinRepCustom)(nil), "test.NinRepCustom") - proto.RegisterType((*NinOptNativeUnion)(nil), "test.NinOptNativeUnion") - proto.RegisterType((*NinOptStructUnion)(nil), "test.NinOptStructUnion") - proto.RegisterType((*NinEmbeddedStructUnion)(nil), "test.NinEmbeddedStructUnion") - proto.RegisterType((*NinNestedStructUnion)(nil), "test.NinNestedStructUnion") - proto.RegisterType((*Tree)(nil), "test.Tree") - proto.RegisterType((*OrBranch)(nil), "test.OrBranch") - proto.RegisterType((*AndBranch)(nil), "test.AndBranch") - proto.RegisterType((*Leaf)(nil), "test.Leaf") - proto.RegisterType((*DeepTree)(nil), "test.DeepTree") - proto.RegisterType((*ADeepBranch)(nil), "test.ADeepBranch") - proto.RegisterType((*AndDeepBranch)(nil), "test.AndDeepBranch") - proto.RegisterType((*DeepLeaf)(nil), "test.DeepLeaf") - proto.RegisterType((*Nil)(nil), "test.Nil") - proto.RegisterType((*NidOptEnum)(nil), "test.NidOptEnum") - proto.RegisterType((*NinOptEnum)(nil), "test.NinOptEnum") - proto.RegisterType((*NidRepEnum)(nil), "test.NidRepEnum") - proto.RegisterType((*NinRepEnum)(nil), "test.NinRepEnum") - proto.RegisterType((*NinOptEnumDefault)(nil), "test.NinOptEnumDefault") - proto.RegisterType((*AnotherNinOptEnum)(nil), "test.AnotherNinOptEnum") - proto.RegisterType((*AnotherNinOptEnumDefault)(nil), "test.AnotherNinOptEnumDefault") - proto.RegisterType((*Timer)(nil), "test.Timer") - proto.RegisterType((*MyExtendable)(nil), "test.MyExtendable") - proto.RegisterType((*OtherExtenable)(nil), "test.OtherExtenable") - proto.RegisterType((*NestedDefinition)(nil), "test.NestedDefinition") - proto.RegisterType((*NestedDefinition_NestedMessage)(nil), "test.NestedDefinition.NestedMessage") - proto.RegisterType((*NestedDefinition_NestedMessage_NestedNestedMsg)(nil), "test.NestedDefinition.NestedMessage.NestedNestedMsg") - proto.RegisterType((*NestedScope)(nil), "test.NestedScope") - proto.RegisterType((*NinOptNativeDefault)(nil), "test.NinOptNativeDefault") - proto.RegisterType((*CustomContainer)(nil), "test.CustomContainer") - proto.RegisterType((*CustomNameNidOptNative)(nil), "test.CustomNameNidOptNative") - proto.RegisterType((*CustomNameNinOptNative)(nil), "test.CustomNameNinOptNative") - proto.RegisterType((*CustomNameNinRepNative)(nil), "test.CustomNameNinRepNative") - proto.RegisterType((*CustomNameNinStruct)(nil), "test.CustomNameNinStruct") - proto.RegisterType((*CustomNameCustomType)(nil), "test.CustomNameCustomType") - proto.RegisterType((*CustomNameNinEmbeddedStructUnion)(nil), "test.CustomNameNinEmbeddedStructUnion") - proto.RegisterType((*CustomNameEnum)(nil), "test.CustomNameEnum") - proto.RegisterType((*NoExtensionsMap)(nil), "test.NoExtensionsMap") - proto.RegisterType((*Unrecognized)(nil), "test.Unrecognized") - proto.RegisterType((*UnrecognizedWithInner)(nil), "test.UnrecognizedWithInner") - proto.RegisterType((*UnrecognizedWithInner_Inner)(nil), "test.UnrecognizedWithInner.Inner") - proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") - proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") - proto.RegisterType((*Node)(nil), "test.Node") - proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") - proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") - proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") - proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") - proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") - proto.RegisterType((*ProtoType)(nil), "test.ProtoType") - proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) - proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) - proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) - proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value) - proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value) - proto.RegisterExtension(E_FieldA) - proto.RegisterExtension(E_FieldB) - proto.RegisterExtension(E_FieldC) - proto.RegisterExtension(E_FieldD) - proto.RegisterExtension(E_FieldE) - proto.RegisterExtension(E_FieldA1) - proto.RegisterExtension(E_FieldB1) - proto.RegisterExtension(E_FieldC1) -} -func (this *NidOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptNative) - if !ok { - that2, ok := that.(NidOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != that1.Field1 { - if this.Field1 < that1.Field1 { - return -1 - } - return 1 - } - if this.Field2 != that1.Field2 { - if this.Field2 < that1.Field2 { - return -1 - } - return 1 - } - if this.Field3 != that1.Field3 { - if this.Field3 < that1.Field3 { - return -1 - } - return 1 - } - if this.Field4 != that1.Field4 { - if this.Field4 < that1.Field4 { - return -1 - } - return 1 - } - if this.Field5 != that1.Field5 { - if this.Field5 < that1.Field5 { - return -1 - } - return 1 - } - if this.Field6 != that1.Field6 { - if this.Field6 < that1.Field6 { - return -1 - } - return 1 - } - if this.Field7 != that1.Field7 { - if this.Field7 < that1.Field7 { - return -1 - } - return 1 - } - if this.Field8 != that1.Field8 { - if this.Field8 < that1.Field8 { - return -1 - } - return 1 - } - if this.Field9 != that1.Field9 { - if this.Field9 < that1.Field9 { - return -1 - } - return 1 - } - if this.Field10 != that1.Field10 { - if this.Field10 < that1.Field10 { - return -1 - } - return 1 - } - if this.Field11 != that1.Field11 { - if this.Field11 < that1.Field11 { - return -1 - } - return 1 - } - if this.Field12 != that1.Field12 { - if this.Field12 < that1.Field12 { - return -1 - } - return 1 - } - if this.Field13 != that1.Field13 { - if !this.Field13 { - return -1 - } - return 1 - } - if this.Field14 != that1.Field14 { - if this.Field14 < that1.Field14 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNative) - if !ok { - that2, ok := that.(NinOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - if *this.Field4 < *that1.Field4 { - return -1 - } - return 1 - } - } else if this.Field4 != nil { - return 1 - } else if that1.Field4 != nil { - return -1 - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - if *this.Field5 < *that1.Field5 { - return -1 - } - return 1 - } - } else if this.Field5 != nil { - return 1 - } else if that1.Field5 != nil { - return -1 - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - if *this.Field8 < *that1.Field8 { - return -1 - } - return 1 - } - } else if this.Field8 != nil { - return 1 - } else if that1.Field8 != nil { - return -1 - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - if *this.Field9 < *that1.Field9 { - return -1 - } - return 1 - } - } else if this.Field9 != nil { - return 1 - } else if that1.Field9 != nil { - return -1 - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - if *this.Field10 < *that1.Field10 { - return -1 - } - return 1 - } - } else if this.Field10 != nil { - return 1 - } else if that1.Field10 != nil { - return -1 - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - if *this.Field11 < *that1.Field11 { - return -1 - } - return 1 - } - } else if this.Field11 != nil { - return 1 - } else if that1.Field11 != nil { - return -1 - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - if *this.Field12 < *that1.Field12 { - return -1 - } - return 1 - } - } else if this.Field12 != nil { - return 1 - } else if that1.Field12 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepNative) - if !ok { - that2, ok := that.(NidRepNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepNative) - if !ok { - that2, ok := that.(NinRepNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepPackedNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepPackedNative) - if !ok { - that2, ok := that.(NidRepPackedNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepPackedNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepPackedNative) - if !ok { - that2, ok := that.(NinRepPackedNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptStruct) - if !ok { - that2, ok := that.(NidOptStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != that1.Field1 { - if this.Field1 < that1.Field1 { - return -1 - } - return 1 - } - if this.Field2 != that1.Field2 { - if this.Field2 < that1.Field2 { - return -1 - } - return 1 - } - if c := this.Field3.Compare(&that1.Field3); c != 0 { - return c - } - if c := this.Field4.Compare(&that1.Field4); c != 0 { - return c - } - if this.Field6 != that1.Field6 { - if this.Field6 < that1.Field6 { - return -1 - } - return 1 - } - if this.Field7 != that1.Field7 { - if this.Field7 < that1.Field7 { - return -1 - } - return 1 - } - if c := this.Field8.Compare(&that1.Field8); c != 0 { - return c - } - if this.Field13 != that1.Field13 { - if !this.Field13 { - return -1 - } - return 1 - } - if this.Field14 != that1.Field14 { - if this.Field14 < that1.Field14 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptStruct) - if !ok { - that2, ok := that.(NinOptStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := this.Field3.Compare(that1.Field3); c != 0 { - return c - } - if c := this.Field4.Compare(that1.Field4); c != 0 { - return c - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if c := this.Field8.Compare(that1.Field8); c != 0 { - return c - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepStruct) - if !ok { - that2, ok := that.(NidRepStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if c := this.Field3[i].Compare(&that1.Field3[i]); c != 0 { - return c - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if c := this.Field4[i].Compare(&that1.Field4[i]); c != 0 { - return c - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if c := this.Field8[i].Compare(&that1.Field8[i]); c != 0 { - return c - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepStruct) - if !ok { - that2, ok := that.(NinRepStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if c := this.Field3[i].Compare(that1.Field3[i]); c != 0 { - return c - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if c := this.Field4[i].Compare(that1.Field4[i]); c != 0 { - return c - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if c := this.Field8[i].Compare(that1.Field8[i]); c != 0 { - return c - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidEmbeddedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidEmbeddedStruct) - if !ok { - that2, ok := that.(NidEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.Field200.Compare(&that1.Field200); c != 0 { - return c - } - if this.Field210 != that1.Field210 { - if !this.Field210 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinEmbeddedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinEmbeddedStruct) - if !ok { - that2, ok := that.(NinEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.Field200.Compare(that1.Field200); c != 0 { - return c - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - if !*this.Field210 { - return -1 - } - return 1 - } - } else if this.Field210 != nil { - return 1 - } else if that1.Field210 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidNestedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidNestedStruct) - if !ok { - that2, ok := that.(NidNestedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(&that1.Field1); c != 0 { - return c - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if c := this.Field2[i].Compare(&that1.Field2[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinNestedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinNestedStruct) - if !ok { - that2, ok := that.(NinNestedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(that1.Field1); c != 0 { - return c - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if c := this.Field2[i].Compare(that1.Field2[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptCustom) - if !ok { - that2, ok := that.(NidOptCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Id.Compare(that1.Id); c != 0 { - return c - } - if c := this.Value.Compare(that1.Value); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomDash) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomDash) - if !ok { - that2, ok := that.(CustomDash) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Value == nil { - if this.Value != nil { - return 1 - } - } else if this.Value == nil { - return -1 - } else if c := this.Value.Compare(*that1.Value); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptCustom) - if !ok { - that2, ok := that.(NinOptCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Id == nil { - if this.Id != nil { - return 1 - } - } else if this.Id == nil { - return -1 - } else if c := this.Id.Compare(*that1.Id); c != 0 { - return c - } - if that1.Value == nil { - if this.Value != nil { - return 1 - } - } else if this.Value == nil { - return -1 - } else if c := this.Value.Compare(*that1.Value); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepCustom) - if !ok { - that2, ok := that.(NidRepCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Id) != len(that1.Id) { - if len(this.Id) < len(that1.Id) { - return -1 - } - return 1 - } - for i := range this.Id { - if c := this.Id[i].Compare(that1.Id[i]); c != 0 { - return c - } - } - if len(this.Value) != len(that1.Value) { - if len(this.Value) < len(that1.Value) { - return -1 - } - return 1 - } - for i := range this.Value { - if c := this.Value[i].Compare(that1.Value[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepCustom) - if !ok { - that2, ok := that.(NinRepCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Id) != len(that1.Id) { - if len(this.Id) < len(that1.Id) { - return -1 - } - return 1 - } - for i := range this.Id { - if c := this.Id[i].Compare(that1.Id[i]); c != 0 { - return c - } - } - if len(this.Value) != len(that1.Value) { - if len(this.Value) < len(that1.Value) { - return -1 - } - return 1 - } - for i := range this.Value { - if c := this.Value[i].Compare(that1.Value[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNativeUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNativeUnion) - if !ok { - that2, ok := that.(NinOptNativeUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - if *this.Field4 < *that1.Field4 { - return -1 - } - return 1 - } - } else if this.Field4 != nil { - return 1 - } else if that1.Field4 != nil { - return -1 - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - if *this.Field5 < *that1.Field5 { - return -1 - } - return 1 - } - } else if this.Field5 != nil { - return 1 - } else if that1.Field5 != nil { - return -1 - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptStructUnion) - if !ok { - that2, ok := that.(NinOptStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := this.Field3.Compare(that1.Field3); c != 0 { - return c - } - if c := this.Field4.Compare(that1.Field4); c != 0 { - return c - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinEmbeddedStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinEmbeddedStructUnion) - if !ok { - that2, ok := that.(NinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.Field200.Compare(that1.Field200); c != 0 { - return c - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - if !*this.Field210 { - return -1 - } - return 1 - } - } else if this.Field210 != nil { - return 1 - } else if that1.Field210 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinNestedStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinNestedStructUnion) - if !ok { - that2, ok := that.(NinNestedStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(that1.Field1); c != 0 { - return c - } - if c := this.Field2.Compare(that1.Field2); c != 0 { - return c - } - if c := this.Field3.Compare(that1.Field3); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Tree) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Tree) - if !ok { - that2, ok := that.(Tree) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Or.Compare(that1.Or); c != 0 { - return c - } - if c := this.And.Compare(that1.And); c != 0 { - return c - } - if c := this.Leaf.Compare(that1.Leaf); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *OrBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*OrBranch) - if !ok { - that2, ok := that.(OrBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Left.Compare(&that1.Left); c != 0 { - return c - } - if c := this.Right.Compare(&that1.Right); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AndBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AndBranch) - if !ok { - that2, ok := that.(AndBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Left.Compare(&that1.Left); c != 0 { - return c - } - if c := this.Right.Compare(&that1.Right); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Leaf) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Leaf) - if !ok { - that2, ok := that.(Leaf) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Value != that1.Value { - if this.Value < that1.Value { - return -1 - } - return 1 - } - if this.StrValue != that1.StrValue { - if this.StrValue < that1.StrValue { - return -1 - } - return 1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *DeepTree) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*DeepTree) - if !ok { - that2, ok := that.(DeepTree) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Down.Compare(that1.Down); c != 0 { - return c - } - if c := this.And.Compare(that1.And); c != 0 { - return c - } - if c := this.Leaf.Compare(that1.Leaf); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *ADeepBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*ADeepBranch) - if !ok { - that2, ok := that.(ADeepBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Down.Compare(&that1.Down); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AndDeepBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AndDeepBranch) - if !ok { - that2, ok := that.(AndDeepBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Left.Compare(&that1.Left); c != 0 { - return c - } - if c := this.Right.Compare(&that1.Right); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *DeepLeaf) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*DeepLeaf) - if !ok { - that2, ok := that.(DeepLeaf) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Tree.Compare(&that1.Tree); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Nil) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Nil) - if !ok { - that2, ok := that.(Nil) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptEnum) - if !ok { - that2, ok := that.(NidOptEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != that1.Field1 { - if this.Field1 < that1.Field1 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptEnum) - if !ok { - that2, ok := that.(NinOptEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepEnum) - if !ok { - that2, ok := that.(NidRepEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepEnum) - if !ok { - that2, ok := that.(NinRepEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptEnumDefault) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptEnumDefault) - if !ok { - that2, ok := that.(NinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AnotherNinOptEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AnotherNinOptEnum) - if !ok { - that2, ok := that.(AnotherNinOptEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AnotherNinOptEnumDefault) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AnotherNinOptEnumDefault) - if !ok { - that2, ok := that.(AnotherNinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Timer) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Timer) - if !ok { - that2, ok := that.(Timer) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Time1 != that1.Time1 { - if this.Time1 < that1.Time1 { - return -1 - } - return 1 - } - if this.Time2 != that1.Time2 { - if this.Time2 < that1.Time2 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.Data, that1.Data); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *MyExtendable) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*MyExtendable) - if !ok { - that2, ok := that.(MyExtendable) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - extkeys := make([]int32, 0, len(thismap)+len(thatmap)) - for k := range thismap { - extkeys = append(extkeys, k) - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - extkeys = append(extkeys, k) - } - } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) - for _, k := range extkeys { - if v, ok := thismap[k]; ok { - if v2, ok := thatmap[k]; ok { - if c := v.Compare(&v2); c != 0 { - return c - } - } else { - return 1 - } - } else { - return -1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *OtherExtenable) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*OtherExtenable) - if !ok { - that2, ok := that.(OtherExtenable) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if *this.Field13 < *that1.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if c := this.M.Compare(that1.M); c != 0 { - return c - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - extkeys := make([]int32, 0, len(thismap)+len(thatmap)) - for k := range thismap { - extkeys = append(extkeys, k) - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - extkeys = append(extkeys, k) - } - } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) - for _, k := range extkeys { - if v, ok := thismap[k]; ok { - if v2, ok := thatmap[k]; ok { - if c := v.Compare(&v2); c != 0 { - return c - } - } else { - return 1 - } - } else { - return -1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedDefinition) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedDefinition) - if !ok { - that2, ok := that.(NestedDefinition) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.EnumField != nil && that1.EnumField != nil { - if *this.EnumField != *that1.EnumField { - if *this.EnumField < *that1.EnumField { - return -1 - } - return 1 - } - } else if this.EnumField != nil { - return 1 - } else if that1.EnumField != nil { - return -1 - } - if c := this.NNM.Compare(that1.NNM); c != 0 { - return c - } - if c := this.NM.Compare(that1.NM); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedDefinition_NestedMessage) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedDefinition_NestedMessage) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.NestedField1 != nil && that1.NestedField1 != nil { - if *this.NestedField1 != *that1.NestedField1 { - if *this.NestedField1 < *that1.NestedField1 { - return -1 - } - return 1 - } - } else if this.NestedField1 != nil { - return 1 - } else if that1.NestedField1 != nil { - return -1 - } - if c := this.NNM.Compare(that1.NNM); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil { - if *this.NestedNestedField1 != *that1.NestedNestedField1 { - if *this.NestedNestedField1 < *that1.NestedNestedField1 { - return -1 - } - return 1 - } - } else if this.NestedNestedField1 != nil { - return 1 - } else if that1.NestedNestedField1 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedScope) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedScope) - if !ok { - that2, ok := that.(NestedScope) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.A.Compare(that1.A); c != 0 { - return c - } - if this.B != nil && that1.B != nil { - if *this.B != *that1.B { - if *this.B < *that1.B { - return -1 - } - return 1 - } - } else if this.B != nil { - return 1 - } else if that1.B != nil { - return -1 - } - if c := this.C.Compare(that1.C); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNativeDefault) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNativeDefault) - if !ok { - that2, ok := that.(NinOptNativeDefault) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - if *this.Field4 < *that1.Field4 { - return -1 - } - return 1 - } - } else if this.Field4 != nil { - return 1 - } else if that1.Field4 != nil { - return -1 - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - if *this.Field5 < *that1.Field5 { - return -1 - } - return 1 - } - } else if this.Field5 != nil { - return 1 - } else if that1.Field5 != nil { - return -1 - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - if *this.Field8 < *that1.Field8 { - return -1 - } - return 1 - } - } else if this.Field8 != nil { - return 1 - } else if that1.Field8 != nil { - return -1 - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - if *this.Field9 < *that1.Field9 { - return -1 - } - return 1 - } - } else if this.Field9 != nil { - return 1 - } else if that1.Field9 != nil { - return -1 - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - if *this.Field10 < *that1.Field10 { - return -1 - } - return 1 - } - } else if this.Field10 != nil { - return 1 - } else if that1.Field10 != nil { - return -1 - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - if *this.Field11 < *that1.Field11 { - return -1 - } - return 1 - } - } else if this.Field11 != nil { - return 1 - } else if that1.Field11 != nil { - return -1 - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - if *this.Field12 < *that1.Field12 { - return -1 - } - return 1 - } - } else if this.Field12 != nil { - return 1 - } else if that1.Field12 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomContainer) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomContainer) - if !ok { - that2, ok := that.(CustomContainer) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.CustomStruct.Compare(&that1.CustomStruct); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNidOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNidOptNative) - if !ok { - that2, ok := that.(CustomNameNidOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != that1.FieldA { - if this.FieldA < that1.FieldA { - return -1 - } - return 1 - } - if this.FieldB != that1.FieldB { - if this.FieldB < that1.FieldB { - return -1 - } - return 1 - } - if this.FieldC != that1.FieldC { - if this.FieldC < that1.FieldC { - return -1 - } - return 1 - } - if this.FieldD != that1.FieldD { - if this.FieldD < that1.FieldD { - return -1 - } - return 1 - } - if this.FieldE != that1.FieldE { - if this.FieldE < that1.FieldE { - return -1 - } - return 1 - } - if this.FieldF != that1.FieldF { - if this.FieldF < that1.FieldF { - return -1 - } - return 1 - } - if this.FieldG != that1.FieldG { - if this.FieldG < that1.FieldG { - return -1 - } - return 1 - } - if this.FieldH != that1.FieldH { - if this.FieldH < that1.FieldH { - return -1 - } - return 1 - } - if this.FieldI != that1.FieldI { - if this.FieldI < that1.FieldI { - return -1 - } - return 1 - } - if this.FieldJ != that1.FieldJ { - if this.FieldJ < that1.FieldJ { - return -1 - } - return 1 - } - if this.FieldK != that1.FieldK { - if this.FieldK < that1.FieldK { - return -1 - } - return 1 - } - if this.FieldL != that1.FieldL { - if this.FieldL < that1.FieldL { - return -1 - } - return 1 - } - if this.FieldM != that1.FieldM { - if !this.FieldM { - return -1 - } - return 1 - } - if this.FieldN != that1.FieldN { - if this.FieldN < that1.FieldN { - return -1 - } - return 1 - } - if c := bytes.Compare(this.FieldO, that1.FieldO); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinOptNative) - if !ok { - that2, ok := that.(CustomNameNinOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - if *this.FieldA < *that1.FieldA { - return -1 - } - return 1 - } - } else if this.FieldA != nil { - return 1 - } else if that1.FieldA != nil { - return -1 - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - if *this.FieldB < *that1.FieldB { - return -1 - } - return 1 - } - } else if this.FieldB != nil { - return 1 - } else if that1.FieldB != nil { - return -1 - } - if this.FieldC != nil && that1.FieldC != nil { - if *this.FieldC != *that1.FieldC { - if *this.FieldC < *that1.FieldC { - return -1 - } - return 1 - } - } else if this.FieldC != nil { - return 1 - } else if that1.FieldC != nil { - return -1 - } - if this.FieldD != nil && that1.FieldD != nil { - if *this.FieldD != *that1.FieldD { - if *this.FieldD < *that1.FieldD { - return -1 - } - return 1 - } - } else if this.FieldD != nil { - return 1 - } else if that1.FieldD != nil { - return -1 - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - if *this.FieldE < *that1.FieldE { - return -1 - } - return 1 - } - } else if this.FieldE != nil { - return 1 - } else if that1.FieldE != nil { - return -1 - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - if *this.FieldF < *that1.FieldF { - return -1 - } - return 1 - } - } else if this.FieldF != nil { - return 1 - } else if that1.FieldF != nil { - return -1 - } - if this.FieldG != nil && that1.FieldG != nil { - if *this.FieldG != *that1.FieldG { - if *this.FieldG < *that1.FieldG { - return -1 - } - return 1 - } - } else if this.FieldG != nil { - return 1 - } else if that1.FieldG != nil { - return -1 - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - if *this.FieldH < *that1.FieldH { - return -1 - } - return 1 - } - } else if this.FieldH != nil { - return 1 - } else if that1.FieldH != nil { - return -1 - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - if *this.FieldI < *that1.FieldI { - return -1 - } - return 1 - } - } else if this.FieldI != nil { - return 1 - } else if that1.FieldI != nil { - return -1 - } - if this.FieldJ != nil && that1.FieldJ != nil { - if *this.FieldJ != *that1.FieldJ { - if *this.FieldJ < *that1.FieldJ { - return -1 - } - return 1 - } - } else if this.FieldJ != nil { - return 1 - } else if that1.FieldJ != nil { - return -1 - } - if this.FieldK != nil && that1.FieldK != nil { - if *this.FieldK != *that1.FieldK { - if *this.FieldK < *that1.FieldK { - return -1 - } - return 1 - } - } else if this.FieldK != nil { - return 1 - } else if that1.FieldK != nil { - return -1 - } - if this.FielL != nil && that1.FielL != nil { - if *this.FielL != *that1.FielL { - if *this.FielL < *that1.FielL { - return -1 - } - return 1 - } - } else if this.FielL != nil { - return 1 - } else if that1.FielL != nil { - return -1 - } - if this.FieldM != nil && that1.FieldM != nil { - if *this.FieldM != *that1.FieldM { - if !*this.FieldM { - return -1 - } - return 1 - } - } else if this.FieldM != nil { - return 1 - } else if that1.FieldM != nil { - return -1 - } - if this.FieldN != nil && that1.FieldN != nil { - if *this.FieldN != *that1.FieldN { - if *this.FieldN < *that1.FieldN { - return -1 - } - return 1 - } - } else if this.FieldN != nil { - return 1 - } else if that1.FieldN != nil { - return -1 - } - if c := bytes.Compare(this.FieldO, that1.FieldO); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinRepNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinRepNative) - if !ok { - that2, ok := that.(CustomNameNinRepNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.FieldA) != len(that1.FieldA) { - if len(this.FieldA) < len(that1.FieldA) { - return -1 - } - return 1 - } - for i := range this.FieldA { - if this.FieldA[i] != that1.FieldA[i] { - if this.FieldA[i] < that1.FieldA[i] { - return -1 - } - return 1 - } - } - if len(this.FieldB) != len(that1.FieldB) { - if len(this.FieldB) < len(that1.FieldB) { - return -1 - } - return 1 - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - if this.FieldB[i] < that1.FieldB[i] { - return -1 - } - return 1 - } - } - if len(this.FieldC) != len(that1.FieldC) { - if len(this.FieldC) < len(that1.FieldC) { - return -1 - } - return 1 - } - for i := range this.FieldC { - if this.FieldC[i] != that1.FieldC[i] { - if this.FieldC[i] < that1.FieldC[i] { - return -1 - } - return 1 - } - } - if len(this.FieldD) != len(that1.FieldD) { - if len(this.FieldD) < len(that1.FieldD) { - return -1 - } - return 1 - } - for i := range this.FieldD { - if this.FieldD[i] != that1.FieldD[i] { - if this.FieldD[i] < that1.FieldD[i] { - return -1 - } - return 1 - } - } - if len(this.FieldE) != len(that1.FieldE) { - if len(this.FieldE) < len(that1.FieldE) { - return -1 - } - return 1 - } - for i := range this.FieldE { - if this.FieldE[i] != that1.FieldE[i] { - if this.FieldE[i] < that1.FieldE[i] { - return -1 - } - return 1 - } - } - if len(this.FieldF) != len(that1.FieldF) { - if len(this.FieldF) < len(that1.FieldF) { - return -1 - } - return 1 - } - for i := range this.FieldF { - if this.FieldF[i] != that1.FieldF[i] { - if this.FieldF[i] < that1.FieldF[i] { - return -1 - } - return 1 - } - } - if len(this.FieldG) != len(that1.FieldG) { - if len(this.FieldG) < len(that1.FieldG) { - return -1 - } - return 1 - } - for i := range this.FieldG { - if this.FieldG[i] != that1.FieldG[i] { - if this.FieldG[i] < that1.FieldG[i] { - return -1 - } - return 1 - } - } - if len(this.FieldH) != len(that1.FieldH) { - if len(this.FieldH) < len(that1.FieldH) { - return -1 - } - return 1 - } - for i := range this.FieldH { - if this.FieldH[i] != that1.FieldH[i] { - if this.FieldH[i] < that1.FieldH[i] { - return -1 - } - return 1 - } - } - if len(this.FieldI) != len(that1.FieldI) { - if len(this.FieldI) < len(that1.FieldI) { - return -1 - } - return 1 - } - for i := range this.FieldI { - if this.FieldI[i] != that1.FieldI[i] { - if this.FieldI[i] < that1.FieldI[i] { - return -1 - } - return 1 - } - } - if len(this.FieldJ) != len(that1.FieldJ) { - if len(this.FieldJ) < len(that1.FieldJ) { - return -1 - } - return 1 - } - for i := range this.FieldJ { - if this.FieldJ[i] != that1.FieldJ[i] { - if this.FieldJ[i] < that1.FieldJ[i] { - return -1 - } - return 1 - } - } - if len(this.FieldK) != len(that1.FieldK) { - if len(this.FieldK) < len(that1.FieldK) { - return -1 - } - return 1 - } - for i := range this.FieldK { - if this.FieldK[i] != that1.FieldK[i] { - if this.FieldK[i] < that1.FieldK[i] { - return -1 - } - return 1 - } - } - if len(this.FieldL) != len(that1.FieldL) { - if len(this.FieldL) < len(that1.FieldL) { - return -1 - } - return 1 - } - for i := range this.FieldL { - if this.FieldL[i] != that1.FieldL[i] { - if this.FieldL[i] < that1.FieldL[i] { - return -1 - } - return 1 - } - } - if len(this.FieldM) != len(that1.FieldM) { - if len(this.FieldM) < len(that1.FieldM) { - return -1 - } - return 1 - } - for i := range this.FieldM { - if this.FieldM[i] != that1.FieldM[i] { - if !this.FieldM[i] { - return -1 - } - return 1 - } - } - if len(this.FieldN) != len(that1.FieldN) { - if len(this.FieldN) < len(that1.FieldN) { - return -1 - } - return 1 - } - for i := range this.FieldN { - if this.FieldN[i] != that1.FieldN[i] { - if this.FieldN[i] < that1.FieldN[i] { - return -1 - } - return 1 - } - } - if len(this.FieldO) != len(that1.FieldO) { - if len(this.FieldO) < len(that1.FieldO) { - return -1 - } - return 1 - } - for i := range this.FieldO { - if c := bytes.Compare(this.FieldO[i], that1.FieldO[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinStruct) - if !ok { - that2, ok := that.(CustomNameNinStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - if *this.FieldA < *that1.FieldA { - return -1 - } - return 1 - } - } else if this.FieldA != nil { - return 1 - } else if that1.FieldA != nil { - return -1 - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - if *this.FieldB < *that1.FieldB { - return -1 - } - return 1 - } - } else if this.FieldB != nil { - return 1 - } else if that1.FieldB != nil { - return -1 - } - if c := this.FieldC.Compare(that1.FieldC); c != 0 { - return c - } - if len(this.FieldD) != len(that1.FieldD) { - if len(this.FieldD) < len(that1.FieldD) { - return -1 - } - return 1 - } - for i := range this.FieldD { - if c := this.FieldD[i].Compare(that1.FieldD[i]); c != 0 { - return c - } - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - if *this.FieldE < *that1.FieldE { - return -1 - } - return 1 - } - } else if this.FieldE != nil { - return 1 - } else if that1.FieldE != nil { - return -1 - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - if *this.FieldF < *that1.FieldF { - return -1 - } - return 1 - } - } else if this.FieldF != nil { - return 1 - } else if that1.FieldF != nil { - return -1 - } - if c := this.FieldG.Compare(that1.FieldG); c != 0 { - return c - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - if !*this.FieldH { - return -1 - } - return 1 - } - } else if this.FieldH != nil { - return 1 - } else if that1.FieldH != nil { - return -1 - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - if *this.FieldI < *that1.FieldI { - return -1 - } - return 1 - } - } else if this.FieldI != nil { - return 1 - } else if that1.FieldI != nil { - return -1 - } - if c := bytes.Compare(this.FieldJ, that1.FieldJ); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameCustomType) - if !ok { - that2, ok := that.(CustomNameCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.FieldA == nil { - if this.FieldA != nil { - return 1 - } - } else if this.FieldA == nil { - return -1 - } else if c := this.FieldA.Compare(*that1.FieldA); c != 0 { - return c - } - if that1.FieldB == nil { - if this.FieldB != nil { - return 1 - } - } else if this.FieldB == nil { - return -1 - } else if c := this.FieldB.Compare(*that1.FieldB); c != 0 { - return c - } - if len(this.FieldC) != len(that1.FieldC) { - if len(this.FieldC) < len(that1.FieldC) { - return -1 - } - return 1 - } - for i := range this.FieldC { - if c := this.FieldC[i].Compare(that1.FieldC[i]); c != 0 { - return c - } - } - if len(this.FieldD) != len(that1.FieldD) { - if len(this.FieldD) < len(that1.FieldD) { - return -1 - } - return 1 - } - for i := range this.FieldD { - if c := this.FieldD[i].Compare(that1.FieldD[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinEmbeddedStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinEmbeddedStructUnion) - if !ok { - that2, ok := that.(CustomNameNinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.FieldA.Compare(that1.FieldA); c != 0 { - return c - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - if !*this.FieldB { - return -1 - } - return 1 - } - } else if this.FieldB != nil { - return 1 - } else if that1.FieldB != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameEnum) - if !ok { - that2, ok := that.(CustomNameEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - if *this.FieldA < *that1.FieldA { - return -1 - } - return 1 - } - } else if this.FieldA != nil { - return 1 - } else if that1.FieldA != nil { - return -1 - } - if len(this.FieldB) != len(that1.FieldB) { - if len(this.FieldB) < len(that1.FieldB) { - return -1 - } - return 1 - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - if this.FieldB[i] < that1.FieldB[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NoExtensionsMap) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NoExtensionsMap) - if !ok { - that2, ok := that.(NoExtensionsMap) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_extensions, that1.XXX_extensions); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Unrecognized) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Unrecognized) - if !ok { - that2, ok := that.(Unrecognized) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - return 0 -} -func (this *UnrecognizedWithInner) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithInner) - if !ok { - that2, ok := that.(UnrecognizedWithInner) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Embedded) != len(that1.Embedded) { - if len(this.Embedded) < len(that1.Embedded) { - return -1 - } - return 1 - } - for i := range this.Embedded { - if c := this.Embedded[i].Compare(that1.Embedded[i]); c != 0 { - return c - } - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *UnrecognizedWithInner_Inner) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithInner_Inner) - if !ok { - that2, ok := that.(UnrecognizedWithInner_Inner) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - return 0 -} -func (this *UnrecognizedWithEmbed) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithEmbed) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.UnrecognizedWithEmbed_Embedded.Compare(&that1.UnrecognizedWithEmbed_Embedded); c != 0 { - return c - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *UnrecognizedWithEmbed_Embedded) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithEmbed_Embedded) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed_Embedded) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - return 0 -} -func (this *Node) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Node) - if !ok { - that2, ok := that.(Node) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Label != nil && that1.Label != nil { - if *this.Label != *that1.Label { - if *this.Label < *that1.Label { - return -1 - } - return 1 - } - } else if this.Label != nil { - return 1 - } else if that1.Label != nil { - return -1 - } - if len(this.Children) != len(that1.Children) { - if len(this.Children) < len(that1.Children) { - return -1 - } - return 1 - } - for i := range this.Children { - if c := this.Children[i].Compare(that1.Children[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NonByteCustomType) - if !ok { - that2, ok := that.(NonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Field1 == nil { - if this.Field1 != nil { - return 1 - } - } else if this.Field1 == nil { - return -1 - } else if c := this.Field1.Compare(*that1.Field1); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptNonByteCustomType) - if !ok { - that2, ok := that.(NidOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(that1.Field1); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNonByteCustomType) - if !ok { - that2, ok := that.(NinOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Field1 == nil { - if this.Field1 != nil { - return 1 - } - } else if this.Field1 == nil { - return -1 - } else if c := this.Field1.Compare(*that1.Field1); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepNonByteCustomType) - if !ok { - that2, ok := that.(NidRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepNonByteCustomType) - if !ok { - that2, ok := that.(NinRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *ProtoType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*ProtoType) - if !ok { - that2, ok := that.(ProtoType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomDash) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNativeUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinNestedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Tree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *OrBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AndBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Leaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *DeepTree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *ADeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AndDeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *DeepLeaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Nil) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AnotherNinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AnotherNinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Timer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *MyExtendable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *OtherExtenable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedDefinition) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedDefinition_NestedMessage) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedScope) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNativeDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomContainer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NoExtensionsMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Unrecognized) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithInner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithInner_Inner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithEmbed) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 6510 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x70, 0x24, 0x57, - 0x75, 0xbf, 0x7a, 0x7a, 0xa4, 0x1d, 0x1d, 0xbd, 0x5a, 0xad, 0xb5, 0x76, 0x2c, 0xaf, 0x25, 0xed, - 0x58, 0x5e, 0xcb, 0xc2, 0xd6, 0x6a, 0xb5, 0xd2, 0x3e, 0x66, 0xb1, 0x5d, 0xf3, 0xda, 0xb5, 0x16, - 0x69, 0x24, 0x5a, 0x12, 0xf6, 0xf2, 0xff, 0x57, 0x4d, 0xf5, 0xce, 0x5c, 0x49, 0x63, 0xcf, 0x74, - 0x0f, 0xd3, 0x2d, 0xdb, 0xf2, 0x87, 0x7f, 0xf9, 0x0f, 0xff, 0x3f, 0x81, 0xa4, 0xf2, 0x24, 0xa9, - 0x00, 0x01, 0x63, 0x48, 0x11, 0x0c, 0xe4, 0x01, 0x09, 0x21, 0x14, 0x95, 0x0a, 0xfe, 0x42, 0xb2, - 0xf9, 0x92, 0x32, 0xf9, 0x94, 0xa2, 0x52, 0x2e, 0xbc, 0xa6, 0x2a, 0x24, 0x71, 0x12, 0x08, 0xae, - 0x82, 0x2a, 0xf3, 0x21, 0x75, 0x5f, 0xdd, 0x7d, 0xef, 0xf4, 0xa8, 0x5b, 0x5e, 0x1b, 0xf8, 0xb2, - 0x3b, 0x73, 0xcf, 0xf9, 0x9d, 0x3e, 0xf7, 0xbc, 0xee, 0xe9, 0x7b, 0xaf, 0x06, 0x5e, 0x5b, 0x86, - 0xe9, 0x5d, 0xdb, 0xde, 0x6d, 0xa0, 0x33, 0xad, 0xb6, 0xed, 0xda, 0x37, 0xf6, 0x77, 0xce, 0xd4, - 0x90, 0x53, 0x6d, 0xd7, 0x5b, 0xae, 0xdd, 0x9e, 0x27, 0x63, 0xfa, 0x08, 0xe5, 0x98, 0xe7, 0x1c, - 0x99, 0x35, 0x18, 0xbd, 0x52, 0x6f, 0xa0, 0xa2, 0xc7, 0xb8, 0x89, 0x5c, 0xfd, 0x22, 0x24, 0x77, - 0xea, 0x0d, 0x94, 0x56, 0xa6, 0xd5, 0xd9, 0x81, 0xc5, 0x99, 0x79, 0x09, 0x34, 0x2f, 0x22, 0x36, - 0xf0, 0xb0, 0x41, 0x10, 0x99, 0xef, 0x27, 0x61, 0x2c, 0x84, 0xaa, 0xeb, 0x90, 0xb4, 0xcc, 0x26, - 0x96, 0xa8, 0xcc, 0xf6, 0x1b, 0xe4, 0xb3, 0x9e, 0x86, 0x63, 0x2d, 0xb3, 0xfa, 0xa4, 0xb9, 0x8b, - 0xd2, 0x09, 0x32, 0xcc, 0xbf, 0xea, 0x93, 0x00, 0x35, 0xd4, 0x42, 0x56, 0x0d, 0x59, 0xd5, 0x83, - 0xb4, 0x3a, 0xad, 0xce, 0xf6, 0x1b, 0x81, 0x11, 0xfd, 0x5d, 0x30, 0xda, 0xda, 0xbf, 0xd1, 0xa8, - 0x57, 0x2b, 0x01, 0x36, 0x98, 0x56, 0x67, 0x7b, 0x0d, 0x8d, 0x12, 0x8a, 0x3e, 0xf3, 0x7d, 0x30, - 0xf2, 0x34, 0x32, 0x9f, 0x0c, 0xb2, 0x0e, 0x10, 0xd6, 0x61, 0x3c, 0x1c, 0x60, 0x2c, 0xc0, 0x60, - 0x13, 0x39, 0x8e, 0xb9, 0x8b, 0x2a, 0xee, 0x41, 0x0b, 0xa5, 0x93, 0x64, 0xf6, 0xd3, 0x1d, 0xb3, - 0x97, 0x67, 0x3e, 0xc0, 0x50, 0x5b, 0x07, 0x2d, 0xa4, 0xe7, 0xa0, 0x1f, 0x59, 0xfb, 0x4d, 0x2a, - 0xa1, 0xb7, 0x8b, 0xfd, 0x4a, 0xd6, 0x7e, 0x53, 0x96, 0x92, 0xc2, 0x30, 0x26, 0xe2, 0x98, 0x83, - 0xda, 0x4f, 0xd5, 0xab, 0x28, 0xdd, 0x47, 0x04, 0xdc, 0xd7, 0x21, 0x60, 0x93, 0xd2, 0x65, 0x19, - 0x1c, 0xa7, 0x17, 0xa0, 0x1f, 0x3d, 0xe3, 0x22, 0xcb, 0xa9, 0xdb, 0x56, 0xfa, 0x18, 0x11, 0x72, - 0x6f, 0x88, 0x17, 0x51, 0xa3, 0x26, 0x8b, 0xf0, 0x71, 0xfa, 0x79, 0x38, 0x66, 0xb7, 0xdc, 0xba, - 0x6d, 0x39, 0xe9, 0xd4, 0xb4, 0x32, 0x3b, 0xb0, 0x78, 0x32, 0x34, 0x10, 0xd6, 0x29, 0x8f, 0xc1, - 0x99, 0xf5, 0x15, 0xd0, 0x1c, 0x7b, 0xbf, 0x5d, 0x45, 0x95, 0xaa, 0x5d, 0x43, 0x95, 0xba, 0xb5, - 0x63, 0xa7, 0xfb, 0x89, 0x80, 0xa9, 0xce, 0x89, 0x10, 0xc6, 0x82, 0x5d, 0x43, 0x2b, 0xd6, 0x8e, - 0x6d, 0x0c, 0x3b, 0xc2, 0x77, 0x7d, 0x1c, 0xfa, 0x9c, 0x03, 0xcb, 0x35, 0x9f, 0x49, 0x0f, 0x92, - 0x08, 0x61, 0xdf, 0x32, 0x3f, 0xe9, 0x85, 0x91, 0x38, 0x21, 0x76, 0x19, 0x7a, 0x77, 0xf0, 0x2c, - 0xd3, 0x89, 0xa3, 0xd8, 0x80, 0x62, 0x44, 0x23, 0xf6, 0xbd, 0x45, 0x23, 0xe6, 0x60, 0xc0, 0x42, - 0x8e, 0x8b, 0x6a, 0x34, 0x22, 0xd4, 0x98, 0x31, 0x05, 0x14, 0xd4, 0x19, 0x52, 0xc9, 0xb7, 0x14, - 0x52, 0x8f, 0xc3, 0x88, 0xa7, 0x52, 0xa5, 0x6d, 0x5a, 0xbb, 0x3c, 0x36, 0xcf, 0x44, 0x69, 0x32, - 0x5f, 0xe2, 0x38, 0x03, 0xc3, 0x8c, 0x61, 0x24, 0x7c, 0xd7, 0x8b, 0x00, 0xb6, 0x85, 0xec, 0x9d, - 0x4a, 0x0d, 0x55, 0x1b, 0xe9, 0x54, 0x17, 0x2b, 0xad, 0x63, 0x96, 0x0e, 0x2b, 0xd9, 0x74, 0xb4, - 0xda, 0xd0, 0x2f, 0xf9, 0xa1, 0x76, 0xac, 0x4b, 0xa4, 0xac, 0xd1, 0x24, 0xeb, 0x88, 0xb6, 0x6d, - 0x18, 0x6e, 0x23, 0x1c, 0xf7, 0xa8, 0xc6, 0x66, 0xd6, 0x4f, 0x94, 0x98, 0x8f, 0x9c, 0x99, 0xc1, - 0x60, 0x74, 0x62, 0x43, 0xed, 0xe0, 0x57, 0xfd, 0x1e, 0xf0, 0x06, 0x2a, 0x24, 0xac, 0x80, 0x54, - 0xa1, 0x41, 0x3e, 0x58, 0x36, 0x9b, 0x68, 0xe2, 0x22, 0x0c, 0x8b, 0xe6, 0xd1, 0x8f, 0x43, 0xaf, - 0xe3, 0x9a, 0x6d, 0x97, 0x44, 0x61, 0xaf, 0x41, 0xbf, 0xe8, 0x1a, 0xa8, 0xc8, 0xaa, 0x91, 0x2a, - 0xd7, 0x6b, 0xe0, 0x8f, 0x13, 0x17, 0x60, 0x48, 0x78, 0x7c, 0x5c, 0x60, 0xe6, 0xe3, 0x7d, 0x70, - 0x3c, 0x2c, 0xe6, 0x42, 0xc3, 0x7f, 0x1c, 0xfa, 0xac, 0xfd, 0xe6, 0x0d, 0xd4, 0x4e, 0xab, 0x44, - 0x02, 0xfb, 0xa6, 0xe7, 0xa0, 0xb7, 0x61, 0xde, 0x40, 0x8d, 0x74, 0x72, 0x5a, 0x99, 0x1d, 0x5e, - 0x7c, 0x57, 0xac, 0xa8, 0x9e, 0x5f, 0xc5, 0x10, 0x83, 0x22, 0xf5, 0x87, 0x21, 0xc9, 0x4a, 0x1c, - 0x96, 0x30, 0x17, 0x4f, 0x02, 0x8e, 0x45, 0x83, 0xe0, 0xf4, 0xbb, 0xa0, 0x1f, 0xff, 0x4f, 0x6d, - 0xdb, 0x47, 0x74, 0x4e, 0xe1, 0x01, 0x6c, 0x57, 0x7d, 0x02, 0x52, 0x24, 0xcc, 0x6a, 0x88, 0x2f, - 0x0d, 0xde, 0x77, 0xec, 0x98, 0x1a, 0xda, 0x31, 0xf7, 0x1b, 0x6e, 0xe5, 0x29, 0xb3, 0xb1, 0x8f, - 0x48, 0xc0, 0xf4, 0x1b, 0x83, 0x6c, 0xf0, 0x7d, 0x78, 0x4c, 0x9f, 0x82, 0x01, 0x1a, 0x95, 0x75, - 0xab, 0x86, 0x9e, 0x21, 0xd5, 0xa7, 0xd7, 0xa0, 0x81, 0xba, 0x82, 0x47, 0xf0, 0xe3, 0x9f, 0x70, - 0x6c, 0x8b, 0xbb, 0x96, 0x3c, 0x02, 0x0f, 0x90, 0xc7, 0x5f, 0x90, 0x0b, 0xdf, 0xdd, 0xe1, 0xd3, - 0x93, 0x63, 0x31, 0xf3, 0xf5, 0x04, 0x24, 0x49, 0xbe, 0x8d, 0xc0, 0xc0, 0xd6, 0xf5, 0x8d, 0x52, - 0xa5, 0xb8, 0xbe, 0x9d, 0x5f, 0x2d, 0x69, 0x8a, 0x3e, 0x0c, 0x40, 0x06, 0xae, 0xac, 0xae, 0xe7, - 0xb6, 0xb4, 0x84, 0xf7, 0x7d, 0xa5, 0xbc, 0x75, 0x7e, 0x49, 0x53, 0x3d, 0xc0, 0x36, 0x1d, 0x48, - 0x06, 0x19, 0xce, 0x2d, 0x6a, 0xbd, 0xba, 0x06, 0x83, 0x54, 0xc0, 0xca, 0xe3, 0xa5, 0xe2, 0xf9, - 0x25, 0xad, 0x4f, 0x1c, 0x39, 0xb7, 0xa8, 0x1d, 0xd3, 0x87, 0xa0, 0x9f, 0x8c, 0xe4, 0xd7, 0xd7, - 0x57, 0xb5, 0x94, 0x27, 0x73, 0x73, 0xcb, 0x58, 0x29, 0x5f, 0xd5, 0xfa, 0x3d, 0x99, 0x57, 0x8d, - 0xf5, 0xed, 0x0d, 0x0d, 0x3c, 0x09, 0x6b, 0xa5, 0xcd, 0xcd, 0xdc, 0xd5, 0x92, 0x36, 0xe0, 0x71, - 0xe4, 0xaf, 0x6f, 0x95, 0x36, 0xb5, 0x41, 0x41, 0xad, 0x73, 0x8b, 0xda, 0x90, 0xf7, 0x88, 0x52, - 0x79, 0x7b, 0x4d, 0x1b, 0xd6, 0x47, 0x61, 0x88, 0x3e, 0x82, 0x2b, 0x31, 0x22, 0x0d, 0x9d, 0x5f, - 0xd2, 0x34, 0x5f, 0x11, 0x2a, 0x65, 0x54, 0x18, 0x38, 0xbf, 0xa4, 0xe9, 0x99, 0x02, 0xf4, 0x92, - 0xe8, 0xd2, 0x75, 0x18, 0x5e, 0xcd, 0xe5, 0x4b, 0xab, 0x95, 0xf5, 0x8d, 0xad, 0x95, 0xf5, 0x72, - 0x6e, 0x55, 0x53, 0xfc, 0x31, 0xa3, 0xf4, 0xde, 0xed, 0x15, 0xa3, 0x54, 0xd4, 0x12, 0xc1, 0xb1, - 0x8d, 0x52, 0x6e, 0xab, 0x54, 0xd4, 0xd4, 0x4c, 0x15, 0x8e, 0x87, 0xd5, 0x99, 0xd0, 0xcc, 0x08, - 0xb8, 0x38, 0xd1, 0xc5, 0xc5, 0x44, 0x56, 0x87, 0x8b, 0x3f, 0xa7, 0xc0, 0x58, 0x48, 0xad, 0x0d, - 0x7d, 0xc8, 0x23, 0xd0, 0x4b, 0x43, 0x94, 0xae, 0x3e, 0xf7, 0x87, 0x16, 0x6d, 0x12, 0xb0, 0x1d, - 0x2b, 0x10, 0xc1, 0x05, 0x57, 0x60, 0xb5, 0xcb, 0x0a, 0x8c, 0x45, 0x74, 0x28, 0xf9, 0x21, 0x05, - 0xd2, 0xdd, 0x64, 0x47, 0x14, 0x8a, 0x84, 0x50, 0x28, 0x2e, 0xcb, 0x0a, 0x9c, 0xea, 0x3e, 0x87, - 0x0e, 0x2d, 0xbe, 0xa0, 0xc0, 0x78, 0x78, 0xa3, 0x12, 0xaa, 0xc3, 0xc3, 0xd0, 0xd7, 0x44, 0xee, - 0x9e, 0xcd, 0x17, 0xeb, 0xd3, 0x21, 0x4b, 0x00, 0x26, 0xcb, 0xb6, 0x62, 0xa8, 0xe0, 0x1a, 0xa2, - 0x76, 0xeb, 0x36, 0xa8, 0x36, 0x1d, 0x9a, 0x7e, 0x34, 0x01, 0x77, 0x84, 0x0a, 0x0f, 0x55, 0xf4, - 0x6e, 0x80, 0xba, 0xd5, 0xda, 0x77, 0xe9, 0x82, 0x4c, 0xeb, 0x53, 0x3f, 0x19, 0x21, 0xb9, 0x8f, - 0x6b, 0xcf, 0xbe, 0xeb, 0xd1, 0x55, 0x42, 0x07, 0x3a, 0x44, 0x18, 0x2e, 0xfa, 0x8a, 0x26, 0x89, - 0xa2, 0x93, 0x5d, 0x66, 0xda, 0xb1, 0xd6, 0x2d, 0x80, 0x56, 0x6d, 0xd4, 0x91, 0xe5, 0x56, 0x1c, - 0xb7, 0x8d, 0xcc, 0x66, 0xdd, 0xda, 0x25, 0x05, 0x38, 0x95, 0xed, 0xdd, 0x31, 0x1b, 0x0e, 0x32, - 0x46, 0x28, 0x79, 0x93, 0x53, 0x31, 0x82, 0xac, 0x32, 0xed, 0x00, 0xa2, 0x4f, 0x40, 0x50, 0xb2, - 0x87, 0xc8, 0x7c, 0xf9, 0x18, 0x0c, 0x04, 0xda, 0x3a, 0xfd, 0x14, 0x0c, 0x3e, 0x61, 0x3e, 0x65, - 0x56, 0x78, 0xab, 0x4e, 0x2d, 0x31, 0x80, 0xc7, 0x36, 0x58, 0xbb, 0xbe, 0x00, 0xc7, 0x09, 0x8b, - 0xbd, 0xef, 0xa2, 0x76, 0xa5, 0xda, 0x30, 0x1d, 0x87, 0x18, 0x2d, 0x45, 0x58, 0x75, 0x4c, 0x5b, - 0xc7, 0xa4, 0x02, 0xa7, 0xe8, 0xcb, 0x30, 0x46, 0x10, 0xcd, 0xfd, 0x86, 0x5b, 0x6f, 0x35, 0x50, - 0x05, 0xbf, 0x3c, 0x38, 0xa4, 0x10, 0x7b, 0x9a, 0x8d, 0x62, 0x8e, 0x35, 0xc6, 0x80, 0x35, 0x72, - 0xf4, 0x22, 0xdc, 0x4d, 0x60, 0xbb, 0xc8, 0x42, 0x6d, 0xd3, 0x45, 0x15, 0xf4, 0x81, 0x7d, 0xb3, - 0xe1, 0x54, 0x4c, 0xab, 0x56, 0xd9, 0x33, 0x9d, 0xbd, 0xf4, 0x71, 0x2c, 0x20, 0x9f, 0x48, 0x2b, - 0xc6, 0x9d, 0x98, 0xf1, 0x2a, 0xe3, 0x2b, 0x11, 0xb6, 0x9c, 0x55, 0x7b, 0xd4, 0x74, 0xf6, 0xf4, - 0x2c, 0x8c, 0x13, 0x29, 0x8e, 0xdb, 0xae, 0x5b, 0xbb, 0x95, 0xea, 0x1e, 0xaa, 0x3e, 0x59, 0xd9, - 0x77, 0x77, 0x2e, 0xa6, 0xef, 0x0a, 0x3e, 0x9f, 0x68, 0xb8, 0x49, 0x78, 0x0a, 0x98, 0x65, 0xdb, - 0xdd, 0xb9, 0xa8, 0x6f, 0xc2, 0x20, 0x76, 0x46, 0xb3, 0xfe, 0x2c, 0xaa, 0xec, 0xd8, 0x6d, 0xb2, - 0xb2, 0x0c, 0x87, 0x64, 0x76, 0xc0, 0x82, 0xf3, 0xeb, 0x0c, 0xb0, 0x66, 0xd7, 0x50, 0xb6, 0x77, - 0x73, 0xa3, 0x54, 0x2a, 0x1a, 0x03, 0x5c, 0xca, 0x15, 0xbb, 0x8d, 0x03, 0x6a, 0xd7, 0xf6, 0x0c, - 0x3c, 0x40, 0x03, 0x6a, 0xd7, 0xe6, 0xe6, 0x5d, 0x86, 0xb1, 0x6a, 0x95, 0xce, 0xb9, 0x5e, 0xad, - 0xb0, 0x16, 0xdf, 0x49, 0x6b, 0x82, 0xb1, 0xaa, 0xd5, 0xab, 0x94, 0x81, 0xc5, 0xb8, 0xa3, 0x5f, - 0x82, 0x3b, 0x7c, 0x63, 0x05, 0x81, 0xa3, 0x1d, 0xb3, 0x94, 0xa1, 0xcb, 0x30, 0xd6, 0x3a, 0xe8, - 0x04, 0xea, 0xc2, 0x13, 0x5b, 0x07, 0x32, 0xec, 0x5e, 0xf2, 0xda, 0xd6, 0x46, 0x55, 0xd3, 0x45, - 0xb5, 0xf4, 0x89, 0x20, 0x77, 0x80, 0xa0, 0x9f, 0x01, 0xad, 0x5a, 0xad, 0x20, 0xcb, 0xbc, 0xd1, - 0x40, 0x15, 0xb3, 0x8d, 0x2c, 0xd3, 0x49, 0x4f, 0x05, 0x99, 0x87, 0xab, 0xd5, 0x12, 0xa1, 0xe6, - 0x08, 0x51, 0x9f, 0x83, 0x51, 0xfb, 0xc6, 0x13, 0x55, 0x1a, 0x59, 0x95, 0x56, 0x1b, 0xed, 0xd4, - 0x9f, 0x49, 0xcf, 0x10, 0x33, 0x8d, 0x60, 0x02, 0x89, 0xab, 0x0d, 0x32, 0xac, 0xdf, 0x0f, 0x5a, - 0xd5, 0xd9, 0x33, 0xdb, 0x2d, 0xb2, 0xb4, 0x3b, 0x2d, 0xb3, 0x8a, 0xd2, 0xf7, 0x52, 0x56, 0x3a, - 0x5e, 0xe6, 0xc3, 0x38, 0xb2, 0x9d, 0xa7, 0xeb, 0x3b, 0x2e, 0x97, 0x78, 0x1f, 0x8d, 0x6c, 0x32, - 0xc6, 0xa4, 0x3d, 0x0e, 0xc7, 0xf7, 0xad, 0xba, 0xe5, 0xa2, 0x76, 0xab, 0x8d, 0x70, 0x13, 0x4f, - 0x33, 0x31, 0xfd, 0x2f, 0xc7, 0xba, 0xb4, 0xe1, 0xdb, 0x41, 0x6e, 0x1a, 0x00, 0xc6, 0xd8, 0x7e, - 0xe7, 0x60, 0x26, 0x0b, 0x83, 0xc1, 0xb8, 0xd0, 0xfb, 0x81, 0x46, 0x86, 0xa6, 0xe0, 0x35, 0xb6, - 0xb0, 0x5e, 0xc4, 0xab, 0xe3, 0xfb, 0x4b, 0x5a, 0x02, 0xaf, 0xd2, 0xab, 0x2b, 0x5b, 0xa5, 0x8a, - 0xb1, 0x5d, 0xde, 0x5a, 0x59, 0x2b, 0x69, 0xea, 0x5c, 0x7f, 0xea, 0x07, 0xc7, 0xb4, 0xe7, 0x9e, - 0x7b, 0xee, 0xb9, 0x44, 0xe6, 0xdb, 0x09, 0x18, 0x16, 0x3b, 0x63, 0xfd, 0xdd, 0x70, 0x82, 0xbf, - 0xc6, 0x3a, 0xc8, 0xad, 0x3c, 0x5d, 0x6f, 0x93, 0x50, 0x6d, 0x9a, 0xb4, 0xb7, 0xf4, 0xac, 0x7c, - 0x9c, 0x71, 0x6d, 0x22, 0xf7, 0xb1, 0x7a, 0x1b, 0x07, 0x62, 0xd3, 0x74, 0xf5, 0x55, 0x98, 0xb2, - 0xec, 0x8a, 0xe3, 0x9a, 0x56, 0xcd, 0x6c, 0xd7, 0x2a, 0xfe, 0x06, 0x42, 0xc5, 0xac, 0x56, 0x91, - 0xe3, 0xd8, 0x74, 0x89, 0xf0, 0xa4, 0x9c, 0xb4, 0xec, 0x4d, 0xc6, 0xec, 0xd7, 0xce, 0x1c, 0x63, - 0x95, 0x22, 0x42, 0xed, 0x16, 0x11, 0x77, 0x41, 0x7f, 0xd3, 0x6c, 0x55, 0x90, 0xe5, 0xb6, 0x0f, - 0x48, 0x3f, 0x97, 0x32, 0x52, 0x4d, 0xb3, 0x55, 0xc2, 0xdf, 0xdf, 0x39, 0x1f, 0x04, 0xed, 0xf8, - 0xcf, 0x2a, 0x0c, 0x06, 0x7b, 0x3a, 0xdc, 0x22, 0x57, 0x49, 0xfd, 0x56, 0x48, 0x86, 0xdf, 0x73, - 0x68, 0x07, 0x38, 0x5f, 0xc0, 0x85, 0x3d, 0xdb, 0x47, 0x3b, 0x2d, 0x83, 0x22, 0xf1, 0xa2, 0x8a, - 0x73, 0x1a, 0xd1, 0xfe, 0x3d, 0x65, 0xb0, 0x6f, 0xfa, 0x55, 0xe8, 0x7b, 0xc2, 0x21, 0xb2, 0xfb, - 0x88, 0xec, 0x99, 0xc3, 0x65, 0x5f, 0xdb, 0x24, 0xc2, 0xfb, 0xaf, 0x6d, 0x56, 0xca, 0xeb, 0xc6, - 0x5a, 0x6e, 0xd5, 0x60, 0x70, 0xfd, 0x4e, 0x48, 0x36, 0xcc, 0x67, 0x0f, 0xc4, 0x25, 0x80, 0x0c, - 0xc5, 0x35, 0xfc, 0x9d, 0x90, 0x7c, 0x1a, 0x99, 0x4f, 0x8a, 0x85, 0x97, 0x0c, 0xbd, 0x83, 0xa1, - 0x7f, 0x06, 0x7a, 0x89, 0xbd, 0x74, 0x00, 0x66, 0x31, 0xad, 0x47, 0x4f, 0x41, 0xb2, 0xb0, 0x6e, - 0xe0, 0xf0, 0xd7, 0x60, 0x90, 0x8e, 0x56, 0x36, 0x56, 0x4a, 0x85, 0x92, 0x96, 0xc8, 0x2c, 0x43, - 0x1f, 0x35, 0x02, 0x4e, 0x0d, 0xcf, 0x0c, 0x5a, 0x0f, 0xfb, 0xca, 0x64, 0x28, 0x9c, 0xba, 0xbd, - 0x96, 0x2f, 0x19, 0x5a, 0x22, 0xe8, 0x5e, 0x07, 0x06, 0x83, 0xed, 0xdc, 0xcf, 0x27, 0xa6, 0xbe, - 0xa9, 0xc0, 0x40, 0xa0, 0x3d, 0xc3, 0x8d, 0x81, 0xd9, 0x68, 0xd8, 0x4f, 0x57, 0xcc, 0x46, 0xdd, - 0x74, 0x58, 0x50, 0x00, 0x19, 0xca, 0xe1, 0x91, 0xb8, 0x4e, 0xfb, 0xb9, 0x28, 0xff, 0xbc, 0x02, - 0x9a, 0xdc, 0xda, 0x49, 0x0a, 0x2a, 0xbf, 0x50, 0x05, 0x3f, 0xa5, 0xc0, 0xb0, 0xd8, 0xcf, 0x49, - 0xea, 0x9d, 0xfa, 0x85, 0xaa, 0xf7, 0xbd, 0x04, 0x0c, 0x09, 0x5d, 0x5c, 0x5c, 0xed, 0x3e, 0x00, - 0xa3, 0xf5, 0x1a, 0x6a, 0xb6, 0x6c, 0x17, 0x59, 0xd5, 0x83, 0x4a, 0x03, 0x3d, 0x85, 0x1a, 0xe9, - 0x0c, 0x29, 0x14, 0x67, 0x0e, 0xef, 0x13, 0xe7, 0x57, 0x7c, 0xdc, 0x2a, 0x86, 0x65, 0xc7, 0x56, - 0x8a, 0xa5, 0xb5, 0x8d, 0xf5, 0xad, 0x52, 0xb9, 0x70, 0xbd, 0xb2, 0x5d, 0x7e, 0x4f, 0x79, 0xfd, - 0xb1, 0xb2, 0xa1, 0xd5, 0x25, 0xb6, 0x77, 0x30, 0xd5, 0x37, 0x40, 0x93, 0x95, 0xd2, 0x4f, 0x40, - 0x98, 0x5a, 0x5a, 0x8f, 0x3e, 0x06, 0x23, 0xe5, 0xf5, 0xca, 0xe6, 0x4a, 0xb1, 0x54, 0x29, 0x5d, - 0xb9, 0x52, 0x2a, 0x6c, 0x6d, 0xd2, 0x17, 0x67, 0x8f, 0x7b, 0x4b, 0x4c, 0xea, 0x4f, 0xaa, 0x30, - 0x16, 0xa2, 0x89, 0x9e, 0x63, 0x3d, 0x3b, 0x7d, 0x8d, 0x78, 0x30, 0x8e, 0xf6, 0xf3, 0xb8, 0x2b, - 0xd8, 0x30, 0xdb, 0x2e, 0x6b, 0xf1, 0xef, 0x07, 0x6c, 0x25, 0xcb, 0xad, 0xef, 0xd4, 0x51, 0x9b, - 0xed, 0x33, 0xd0, 0x46, 0x7e, 0xc4, 0x1f, 0xa7, 0x5b, 0x0d, 0x0f, 0x80, 0xde, 0xb2, 0x9d, 0xba, - 0x5b, 0x7f, 0x0a, 0x55, 0xea, 0x16, 0xdf, 0x94, 0xc0, 0x8d, 0x7d, 0xd2, 0xd0, 0x38, 0x65, 0xc5, - 0x72, 0x3d, 0x6e, 0x0b, 0xed, 0x9a, 0x12, 0x37, 0x2e, 0xe0, 0xaa, 0xa1, 0x71, 0x8a, 0xc7, 0x7d, - 0x0a, 0x06, 0x6b, 0xf6, 0x3e, 0x6e, 0x93, 0x28, 0x1f, 0x5e, 0x2f, 0x14, 0x63, 0x80, 0x8e, 0x79, - 0x2c, 0xac, 0x8f, 0xf5, 0x77, 0x43, 0x06, 0x8d, 0x01, 0x3a, 0x46, 0x59, 0xee, 0x83, 0x11, 0x73, - 0x77, 0xb7, 0x8d, 0x85, 0x73, 0x41, 0xb4, 0x33, 0x1f, 0xf6, 0x86, 0x09, 0xe3, 0xc4, 0x35, 0x48, - 0x71, 0x3b, 0xe0, 0x25, 0x19, 0x5b, 0xa2, 0xd2, 0xa2, 0x7b, 0x52, 0x89, 0xd9, 0x7e, 0x23, 0x65, - 0x71, 0xe2, 0x29, 0x18, 0xac, 0x3b, 0x15, 0x7f, 0x73, 0x34, 0x31, 0x9d, 0x98, 0x4d, 0x19, 0x03, - 0x75, 0xc7, 0xdb, 0x0d, 0xcb, 0x7c, 0x21, 0x01, 0xc3, 0xe2, 0xe6, 0xae, 0x5e, 0x84, 0x54, 0xc3, - 0xae, 0x9a, 0x24, 0xb4, 0xe8, 0xc9, 0xc2, 0x6c, 0xc4, 0x7e, 0xf0, 0xfc, 0x2a, 0xe3, 0x37, 0x3c, - 0xe4, 0xc4, 0x3f, 0x28, 0x90, 0xe2, 0xc3, 0xfa, 0x38, 0x24, 0x5b, 0xa6, 0xbb, 0x47, 0xc4, 0xf5, - 0xe6, 0x13, 0x9a, 0x62, 0x90, 0xef, 0x78, 0xdc, 0x69, 0x99, 0x16, 0x09, 0x01, 0x36, 0x8e, 0xbf, - 0x63, 0xbf, 0x36, 0x90, 0x59, 0x23, 0x6d, 0xbf, 0xdd, 0x6c, 0x22, 0xcb, 0x75, 0xb8, 0x5f, 0xd9, - 0x78, 0x81, 0x0d, 0xeb, 0xef, 0x82, 0x51, 0xb7, 0x6d, 0xd6, 0x1b, 0x02, 0x6f, 0x92, 0xf0, 0x6a, - 0x9c, 0xe0, 0x31, 0x67, 0xe1, 0x4e, 0x2e, 0xb7, 0x86, 0x5c, 0xb3, 0xba, 0x87, 0x6a, 0x3e, 0xa8, - 0x8f, 0xec, 0x1c, 0x9e, 0x60, 0x0c, 0x45, 0x46, 0xe7, 0xd8, 0xcc, 0x77, 0x14, 0x18, 0xe5, 0x2f, - 0x2a, 0x35, 0xcf, 0x58, 0x6b, 0x00, 0xa6, 0x65, 0xd9, 0x6e, 0xd0, 0x5c, 0x9d, 0xa1, 0xdc, 0x81, - 0x9b, 0xcf, 0x79, 0x20, 0x23, 0x20, 0x60, 0xa2, 0x09, 0xe0, 0x53, 0xba, 0x9a, 0x6d, 0x0a, 0x06, - 0xd8, 0xce, 0x3d, 0x39, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x87, 0xf0, 0x1b, 0x8d, 0x7e, 0x1c, 0x7a, - 0x6f, 0xa0, 0xdd, 0xba, 0xc5, 0xf6, 0x13, 0xe9, 0x17, 0xbe, 0x4b, 0x99, 0xf4, 0x76, 0x29, 0xf3, - 0x8f, 0xc3, 0x58, 0xd5, 0x6e, 0xca, 0xea, 0xe6, 0x35, 0xe9, 0xf5, 0xda, 0x79, 0x54, 0x79, 0x3f, - 0xf8, 0x2d, 0xe6, 0xe7, 0x12, 0xea, 0xd5, 0x8d, 0xfc, 0x97, 0x12, 0x13, 0x57, 0x29, 0x6e, 0x83, - 0x4f, 0xd3, 0x40, 0x3b, 0x0d, 0x54, 0xc5, 0xaa, 0xc3, 0x8f, 0x4f, 0xc3, 0x83, 0xbb, 0x75, 0x77, - 0x6f, 0xff, 0xc6, 0x7c, 0xd5, 0x6e, 0x9e, 0xd9, 0xb5, 0x77, 0x6d, 0xff, 0xb8, 0x0b, 0x7f, 0x23, - 0x5f, 0xc8, 0x27, 0x76, 0xe4, 0xd5, 0xef, 0x8d, 0x4e, 0x44, 0x9e, 0x8f, 0x65, 0xcb, 0x30, 0xc6, - 0x98, 0x2b, 0x64, 0xcf, 0x9d, 0xbe, 0x1a, 0xe8, 0x87, 0xee, 0xbb, 0xa4, 0xbf, 0xfa, 0x7d, 0xb2, - 0x56, 0x1b, 0xa3, 0x0c, 0x8a, 0x69, 0xf4, 0x05, 0x22, 0x6b, 0xc0, 0x1d, 0x82, 0x3c, 0x9a, 0x97, - 0xa8, 0x1d, 0x21, 0xf1, 0xdb, 0x4c, 0xe2, 0x58, 0x40, 0xe2, 0x26, 0x83, 0x66, 0x0b, 0x30, 0x74, - 0x14, 0x59, 0x7f, 0xcb, 0x64, 0x0d, 0xa2, 0xa0, 0x90, 0xab, 0x30, 0x42, 0x84, 0x54, 0xf7, 0x1d, - 0xd7, 0x6e, 0x92, 0xa2, 0x77, 0xb8, 0x98, 0xbf, 0xfb, 0x3e, 0x4d, 0x94, 0x61, 0x0c, 0x2b, 0x78, - 0xa8, 0x6c, 0x16, 0xc8, 0x31, 0x43, 0x0d, 0x55, 0x1b, 0x11, 0x12, 0x6e, 0x32, 0x45, 0x3c, 0xfe, - 0xec, 0xfb, 0xe0, 0x38, 0xfe, 0x4c, 0x6a, 0x52, 0x50, 0x93, 0xe8, 0x5d, 0xa6, 0xf4, 0x77, 0x3e, - 0x44, 0x73, 0x71, 0xcc, 0x13, 0x10, 0xd0, 0x29, 0xe0, 0xc5, 0x5d, 0xe4, 0xba, 0xa8, 0xed, 0x54, - 0xcc, 0x46, 0x98, 0x7a, 0x81, 0xd7, 0xf4, 0xf4, 0x27, 0x5e, 0x17, 0xbd, 0x78, 0x95, 0x22, 0x73, - 0x8d, 0x46, 0x76, 0x1b, 0x4e, 0x84, 0x44, 0x45, 0x0c, 0x99, 0x9f, 0x64, 0x32, 0x8f, 0x77, 0x44, - 0x06, 0x16, 0xbb, 0x01, 0x7c, 0xdc, 0xf3, 0x65, 0x0c, 0x99, 0x7f, 0xc0, 0x64, 0xea, 0x0c, 0xcb, - 0x5d, 0x8a, 0x25, 0x5e, 0x83, 0xd1, 0xa7, 0x50, 0xfb, 0x86, 0xed, 0xb0, 0xad, 0x91, 0x18, 0xe2, - 0x3e, 0xc5, 0xc4, 0x8d, 0x30, 0x20, 0xd9, 0x2b, 0xc1, 0xb2, 0x2e, 0x41, 0x6a, 0xc7, 0xac, 0xa2, - 0x18, 0x22, 0x3e, 0xcd, 0x44, 0x1c, 0xc3, 0xfc, 0x18, 0x9a, 0x83, 0xc1, 0x5d, 0x9b, 0x2d, 0x4b, - 0xd1, 0xf0, 0xe7, 0x19, 0x7c, 0x80, 0x63, 0x98, 0x88, 0x96, 0xdd, 0xda, 0x6f, 0xe0, 0x35, 0x2b, - 0x5a, 0xc4, 0x67, 0xb8, 0x08, 0x8e, 0x61, 0x22, 0x8e, 0x60, 0xd6, 0x17, 0xb8, 0x08, 0x27, 0x60, - 0xcf, 0x47, 0x60, 0xc0, 0xb6, 0x1a, 0x07, 0xb6, 0x15, 0x47, 0x89, 0xcf, 0x32, 0x09, 0xc0, 0x20, - 0x58, 0xc0, 0x65, 0xe8, 0x8f, 0xeb, 0x88, 0xcf, 0xbf, 0xce, 0xd3, 0x83, 0x7b, 0xe0, 0x2a, 0x8c, - 0xf0, 0x02, 0x55, 0xb7, 0xad, 0x18, 0x22, 0xfe, 0x88, 0x89, 0x18, 0x0e, 0xc0, 0xd8, 0x34, 0x5c, - 0xe4, 0xb8, 0xbb, 0x28, 0x8e, 0x90, 0x2f, 0xf0, 0x69, 0x30, 0x08, 0x33, 0xe5, 0x0d, 0x64, 0x55, - 0xf7, 0xe2, 0x49, 0x78, 0x91, 0x9b, 0x92, 0x63, 0xb0, 0x88, 0x02, 0x0c, 0x35, 0xcd, 0xb6, 0xb3, - 0x67, 0x36, 0x62, 0xb9, 0xe3, 0x8b, 0x4c, 0xc6, 0xa0, 0x07, 0x62, 0x16, 0xd9, 0xb7, 0x8e, 0x22, - 0xe6, 0x4b, 0xdc, 0x22, 0x01, 0x18, 0x4b, 0x3d, 0xc7, 0x25, 0x1b, 0x50, 0x47, 0x91, 0xf6, 0x65, - 0x9e, 0x7a, 0x14, 0xbb, 0x16, 0x94, 0x78, 0x19, 0xfa, 0x9d, 0xfa, 0xb3, 0xb1, 0xc4, 0xfc, 0x31, - 0xf7, 0x34, 0x01, 0x60, 0xf0, 0x75, 0xb8, 0x33, 0x74, 0x99, 0x88, 0x21, 0xec, 0x4f, 0x98, 0xb0, - 0xf1, 0x90, 0xa5, 0x82, 0x95, 0x84, 0xa3, 0x8a, 0xfc, 0x53, 0x5e, 0x12, 0x90, 0x24, 0x6b, 0x03, - 0xbf, 0x28, 0x38, 0xe6, 0xce, 0xd1, 0xac, 0xf6, 0x67, 0xdc, 0x6a, 0x14, 0x2b, 0x58, 0x6d, 0x0b, - 0xc6, 0x99, 0xc4, 0xa3, 0xf9, 0xf5, 0x2b, 0xbc, 0xb0, 0x52, 0xf4, 0xb6, 0xe8, 0xdd, 0xff, 0x05, - 0x13, 0x9e, 0x39, 0x79, 0x47, 0xea, 0x54, 0x9a, 0x66, 0x2b, 0x86, 0xe4, 0xaf, 0x32, 0xc9, 0xbc, - 0xe2, 0x7b, 0x2d, 0xad, 0xb3, 0x66, 0xb6, 0xb0, 0xf0, 0xc7, 0x21, 0xcd, 0x85, 0xef, 0x5b, 0x6d, - 0x54, 0xb5, 0x77, 0xad, 0xfa, 0xb3, 0xa8, 0x16, 0x43, 0xf4, 0x9f, 0x4b, 0xae, 0xda, 0x0e, 0xc0, - 0xb1, 0xe4, 0x15, 0xd0, 0xbc, 0x5e, 0xa5, 0x52, 0x6f, 0xb6, 0xec, 0xb6, 0x1b, 0x21, 0xf1, 0x2f, - 0xb8, 0xa7, 0x3c, 0xdc, 0x0a, 0x81, 0x65, 0x4b, 0x30, 0x4c, 0xbe, 0xc6, 0x0d, 0xc9, 0xaf, 0x31, - 0x41, 0x43, 0x3e, 0x8a, 0x15, 0x8e, 0xaa, 0xdd, 0x6c, 0x99, 0xed, 0x38, 0xf5, 0xef, 0x2f, 0x79, - 0xe1, 0x60, 0x10, 0x56, 0x38, 0xdc, 0x83, 0x16, 0xc2, 0xab, 0x7d, 0x0c, 0x09, 0x5f, 0xe7, 0x85, - 0x83, 0x63, 0x98, 0x08, 0xde, 0x30, 0xc4, 0x10, 0xf1, 0x57, 0x5c, 0x04, 0xc7, 0x60, 0x11, 0xef, - 0xf5, 0x17, 0xda, 0x36, 0xda, 0xad, 0x3b, 0x6e, 0x9b, 0xf6, 0xc1, 0x87, 0x8b, 0xfa, 0xc6, 0xeb, - 0x62, 0x13, 0x66, 0x04, 0xa0, 0xd9, 0x6b, 0x30, 0x22, 0xb5, 0x18, 0x7a, 0xd4, 0x9d, 0x85, 0xf4, - 0xff, 0x7d, 0x83, 0x15, 0x23, 0xb1, 0xc3, 0xc8, 0xae, 0x62, 0xbf, 0x8b, 0x7d, 0x40, 0xb4, 0xb0, - 0x0f, 0xbd, 0xe1, 0xb9, 0x5e, 0x68, 0x03, 0xb2, 0x57, 0x60, 0x48, 0xe8, 0x01, 0xa2, 0x45, 0xfd, - 0x3f, 0x26, 0x6a, 0x30, 0xd8, 0x02, 0x64, 0x97, 0x21, 0x89, 0xd7, 0xf3, 0x68, 0xf8, 0xff, 0x67, - 0x70, 0xc2, 0x9e, 0x7d, 0x08, 0x52, 0x7c, 0x1d, 0x8f, 0x86, 0x7e, 0x98, 0x41, 0x3d, 0x08, 0x86, - 0xf3, 0x35, 0x3c, 0x1a, 0xfe, 0x2b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfd, 0x5a, - 0x92, 0xd5, 0x61, 0x6e, 0xbb, 0xcb, 0x70, 0x8c, 0x2d, 0xde, 0xd1, 0xe8, 0x8f, 0xb2, 0x87, 0x73, - 0x44, 0xf6, 0x02, 0xf4, 0xc6, 0x34, 0xf8, 0xaf, 0x33, 0x28, 0xe5, 0xcf, 0x16, 0x60, 0x20, 0xb0, - 0x60, 0x47, 0xc3, 0x7f, 0x83, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xa3, 0x05, 0xfc, 0x26, - 0x57, 0x9d, 0x21, 0xb0, 0xd9, 0xf8, 0x5a, 0x1d, 0x8d, 0xfe, 0x2d, 0x6e, 0x75, 0x0e, 0xc9, 0x3e, - 0x02, 0xfd, 0x5e, 0xfd, 0x8d, 0xc6, 0xff, 0x36, 0xc3, 0xfb, 0x18, 0x6c, 0x81, 0x40, 0xfd, 0x8f, - 0x16, 0xf1, 0x3b, 0xdc, 0x02, 0x01, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x96, 0xf4, 0x31, 0x9e, - 0x46, 0xd2, 0x92, 0x8e, 0xbd, 0x49, 0xca, 0x60, 0xb4, 0x88, 0xdf, 0xe5, 0xde, 0x24, 0xfc, 0x58, - 0x0d, 0x79, 0x91, 0x8c, 0x96, 0xf1, 0xfb, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0x6e, 0x80, 0xde, 0xb9, - 0x40, 0x46, 0xcb, 0xfb, 0x38, 0x93, 0x37, 0xda, 0xb1, 0x3e, 0x66, 0x1f, 0x83, 0xf1, 0xf0, 0xc5, - 0x31, 0x5a, 0xea, 0x27, 0xde, 0x90, 0x5e, 0x67, 0x82, 0x6b, 0x63, 0x76, 0xcb, 0xaf, 0xb2, 0xc1, - 0x85, 0x31, 0x5a, 0xec, 0x27, 0xdf, 0x10, 0x0b, 0x6d, 0x70, 0x5d, 0xcc, 0xe6, 0x00, 0xfc, 0x35, - 0x29, 0x5a, 0xd6, 0xa7, 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x92, 0xa2, 0xf1, 0x9f, 0xe6, - 0xa9, 0xc1, 0x10, 0x38, 0x35, 0xf8, 0x6a, 0x14, 0x8d, 0x7e, 0x9e, 0xa7, 0x06, 0x87, 0x64, 0x2f, - 0x43, 0xca, 0xda, 0x6f, 0x34, 0x70, 0x6c, 0xe9, 0x87, 0x5f, 0x23, 0x4a, 0xff, 0xeb, 0x9b, 0x0c, - 0xcc, 0x01, 0xd9, 0x65, 0xe8, 0x45, 0xcd, 0x1b, 0xa8, 0x16, 0x85, 0xfc, 0xb7, 0x37, 0x79, 0x3d, - 0xc1, 0xdc, 0xd9, 0x47, 0x00, 0xe8, 0xcb, 0x34, 0x39, 0x25, 0x8a, 0xc0, 0xfe, 0xfb, 0x9b, 0xec, - 0x86, 0x82, 0x0f, 0xf1, 0x05, 0xd0, 0xfb, 0x0e, 0x87, 0x0b, 0x78, 0x5d, 0x14, 0x40, 0x5e, 0xc0, - 0x2f, 0xc1, 0xb1, 0x27, 0x1c, 0xdb, 0x72, 0xcd, 0xdd, 0x28, 0xf4, 0x7f, 0x30, 0x34, 0xe7, 0xc7, - 0x06, 0x6b, 0xda, 0x6d, 0xe4, 0x9a, 0xbb, 0x4e, 0x14, 0xf6, 0x3f, 0x19, 0xd6, 0x03, 0x60, 0x70, - 0xd5, 0x74, 0xdc, 0x38, 0xf3, 0xfe, 0x2f, 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x24, 0x3a, - 0x88, 0xc2, 0xfe, 0x90, 0x2b, 0xcd, 0xf8, 0xb3, 0x0f, 0x41, 0x3f, 0xfe, 0x48, 0x6f, 0xed, 0x44, - 0x80, 0x7f, 0xc4, 0xc0, 0x3e, 0x02, 0x3f, 0xd9, 0x71, 0x6b, 0x6e, 0x3d, 0xda, 0xd8, 0xff, 0xcd, - 0x3c, 0xcd, 0xf9, 0xb3, 0x39, 0x18, 0x70, 0xdc, 0x5a, 0x6d, 0x9f, 0x75, 0x34, 0x11, 0xf0, 0x1f, - 0xbf, 0xe9, 0xbd, 0xe4, 0x7a, 0x98, 0xfc, 0xa9, 0xf0, 0xcd, 0x3a, 0xb8, 0x6a, 0x5f, 0xb5, 0xe9, - 0x36, 0x1d, 0x7c, 0xa7, 0x01, 0x33, 0x55, 0xbb, 0x79, 0xc3, 0x76, 0xce, 0xd0, 0x82, 0xe2, 0x95, - 0x93, 0x33, 0xee, 0x1e, 0xc2, 0xab, 0x08, 0xdb, 0x6c, 0x4b, 0xe2, 0xcf, 0x13, 0x47, 0xdb, 0xa1, - 0x23, 0x87, 0xaf, 0xe5, 0x3a, 0x56, 0xb2, 0x4c, 0xf6, 0xbf, 0xf5, 0x93, 0xd0, 0x47, 0xd4, 0x3e, - 0x4b, 0xce, 0x98, 0x94, 0x7c, 0xf2, 0xe6, 0x2b, 0x53, 0x3d, 0x06, 0x1b, 0xf3, 0xa8, 0x8b, 0x64, - 0x83, 0x32, 0x21, 0x50, 0x17, 0x3d, 0xea, 0x39, 0xba, 0x47, 0x29, 0x50, 0xcf, 0x79, 0xd4, 0x25, - 0xb2, 0x5b, 0xa9, 0x0a, 0xd4, 0x25, 0x8f, 0xba, 0x4c, 0x76, 0xe4, 0x87, 0x04, 0xea, 0xb2, 0x47, - 0x3d, 0x4f, 0xf6, 0xe1, 0x93, 0x02, 0xf5, 0xbc, 0x47, 0xbd, 0x40, 0xb6, 0xe0, 0x47, 0x05, 0xea, - 0x05, 0x8f, 0x7a, 0x91, 0x6c, 0xbd, 0xeb, 0x02, 0xf5, 0xa2, 0x47, 0xbd, 0x44, 0xee, 0x93, 0x1c, - 0x13, 0xa8, 0x97, 0xf4, 0x49, 0x38, 0x46, 0x67, 0xbe, 0x40, 0xce, 0x69, 0x47, 0x18, 0x99, 0x0f, - 0xfa, 0xf4, 0xb3, 0xe4, 0xee, 0x48, 0x9f, 0x48, 0x3f, 0xeb, 0xd3, 0x17, 0xc9, 0x2d, 0x6a, 0x4d, - 0xa4, 0x2f, 0xfa, 0xf4, 0x73, 0xe9, 0x21, 0x72, 0x7f, 0x46, 0xa0, 0x9f, 0xf3, 0xe9, 0x4b, 0xe9, - 0x61, 0x1c, 0xb9, 0x22, 0x7d, 0xc9, 0xa7, 0x2f, 0xa7, 0x47, 0xa6, 0x95, 0xd9, 0x41, 0x91, 0xbe, - 0x9c, 0xf9, 0x20, 0x71, 0xaf, 0xe5, 0xbb, 0x77, 0x5c, 0x74, 0xaf, 0xe7, 0xd8, 0x71, 0xd1, 0xb1, - 0x9e, 0x4b, 0xc7, 0x45, 0x97, 0x7a, 0xce, 0x1c, 0x17, 0x9d, 0xe9, 0xb9, 0x71, 0x5c, 0x74, 0xa3, - 0xe7, 0xc0, 0x71, 0xd1, 0x81, 0x9e, 0xeb, 0xc6, 0x45, 0xd7, 0x79, 0x4e, 0x1b, 0x17, 0x9d, 0xe6, - 0xb9, 0x6b, 0x5c, 0x74, 0x97, 0xe7, 0xa8, 0xb4, 0xe4, 0x28, 0xdf, 0x45, 0x69, 0xc9, 0x45, 0xbe, - 0x73, 0xd2, 0x92, 0x73, 0x7c, 0xb7, 0xa4, 0x25, 0xb7, 0xf8, 0x0e, 0x49, 0x4b, 0x0e, 0xf1, 0x5d, - 0x91, 0x96, 0x5c, 0xe1, 0x3b, 0x81, 0xe5, 0x98, 0x81, 0x5a, 0x21, 0x39, 0xa6, 0x1e, 0x9a, 0x63, - 0xea, 0xa1, 0x39, 0xa6, 0x1e, 0x9a, 0x63, 0xea, 0xa1, 0x39, 0xa6, 0x1e, 0x9a, 0x63, 0xea, 0xa1, - 0x39, 0xa6, 0x1e, 0x9a, 0x63, 0xea, 0xa1, 0x39, 0xa6, 0x1e, 0x9e, 0x63, 0x6a, 0x44, 0x8e, 0xa9, - 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x5d, 0x73, 0xcc, - 0x77, 0xef, 0xb8, 0xe8, 0xde, 0xd0, 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, - 0x39, 0xa6, 0x76, 0xc9, 0x31, 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x92, 0x63, 0x6a, - 0xb7, 0x1c, 0x53, 0xbb, 0xe6, 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, - 0xb5, 0x6b, 0x8e, 0xa9, 0xc1, 0x1c, 0xfb, 0x6b, 0x15, 0x74, 0x9a, 0x63, 0x1b, 0xe4, 0xa6, 0x0f, - 0x73, 0xc5, 0xa4, 0x94, 0x69, 0x7d, 0xd8, 0x75, 0x9a, 0xef, 0x92, 0x49, 0x29, 0xd7, 0x44, 0xfa, - 0xa2, 0x47, 0xe7, 0xd9, 0x26, 0xd2, 0xcf, 0x79, 0x74, 0x9e, 0x6f, 0x22, 0x7d, 0xc9, 0xa3, 0xf3, - 0x8c, 0x13, 0xe9, 0xcb, 0x1e, 0x9d, 0xe7, 0x9c, 0x48, 0x3f, 0xef, 0xd1, 0x79, 0xd6, 0x89, 0xf4, - 0x0b, 0x1e, 0x9d, 0xe7, 0x9d, 0x48, 0xbf, 0xe8, 0xd1, 0x79, 0xe6, 0x89, 0xf4, 0x4b, 0xfa, 0xb4, - 0x9c, 0x7b, 0x9c, 0xc1, 0x73, 0xed, 0xb4, 0x9c, 0x7d, 0x12, 0xc7, 0x59, 0x9f, 0x83, 0xe7, 0x9f, - 0xc4, 0xb1, 0xe8, 0x73, 0xf0, 0x0c, 0x94, 0x38, 0xce, 0x65, 0x3e, 0x42, 0xdc, 0x67, 0xc9, 0xee, - 0x9b, 0x90, 0xdc, 0x97, 0x08, 0xb8, 0x6e, 0x42, 0x72, 0x5d, 0x22, 0xe0, 0xb6, 0x09, 0xc9, 0x6d, - 0x89, 0x80, 0xcb, 0x26, 0x24, 0x97, 0x25, 0x02, 0xee, 0x9a, 0x90, 0xdc, 0x95, 0x08, 0xb8, 0x6a, - 0x42, 0x72, 0x55, 0x22, 0xe0, 0xa6, 0x09, 0xc9, 0x4d, 0x89, 0x80, 0x8b, 0x26, 0x24, 0x17, 0x25, - 0x02, 0xee, 0x99, 0x90, 0xdc, 0x93, 0x08, 0xb8, 0xe6, 0xa4, 0xec, 0x9a, 0x44, 0xd0, 0x2d, 0x27, - 0x65, 0xb7, 0x24, 0x82, 0x2e, 0x39, 0x29, 0xbb, 0x24, 0x11, 0x74, 0xc7, 0x49, 0xd9, 0x1d, 0x89, - 0xa0, 0x2b, 0x7e, 0x96, 0xe0, 0x1d, 0xe1, 0xa6, 0xdb, 0xde, 0xaf, 0xba, 0xb7, 0xd5, 0x11, 0x2e, - 0x08, 0xed, 0xc3, 0xc0, 0xa2, 0x3e, 0x4f, 0x1a, 0xd6, 0x60, 0xc7, 0x29, 0xad, 0x60, 0x0b, 0x42, - 0x63, 0x11, 0x40, 0x58, 0xe1, 0x88, 0xa5, 0xdb, 0xea, 0x0d, 0x17, 0x84, 0x36, 0x23, 0x5a, 0xbf, - 0x8b, 0xef, 0x78, 0xc7, 0xf6, 0x52, 0x82, 0x77, 0x6c, 0xcc, 0xfc, 0x47, 0xed, 0xd8, 0xe6, 0xa2, - 0x4d, 0xee, 0x19, 0x7b, 0x2e, 0xda, 0xd8, 0x1d, 0xab, 0x4e, 0xdc, 0x0e, 0x6e, 0x2e, 0xda, 0xb4, - 0x9e, 0x51, 0xdf, 0xde, 0x7e, 0x8b, 0x45, 0xb0, 0x81, 0x5a, 0x21, 0x11, 0x7c, 0xd4, 0x7e, 0x6b, - 0x41, 0x28, 0x25, 0x47, 0x8d, 0x60, 0xf5, 0xc8, 0x11, 0x7c, 0xd4, 0xce, 0x6b, 0x41, 0x28, 0x2f, - 0x47, 0x8e, 0xe0, 0x77, 0xa0, 0x1f, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xa8, 0xfd, 0xd0, 0x5c, 0xb4, - 0xc9, 0x43, 0x23, 0x58, 0x3d, 0x42, 0x04, 0xc7, 0xe9, 0x8f, 0xe6, 0xa2, 0x4d, 0x1b, 0x1e, 0xc1, - 0xb7, 0xdd, 0xcd, 0x7c, 0x46, 0x81, 0xd1, 0x72, 0xbd, 0x56, 0x6a, 0xde, 0x40, 0xb5, 0x1a, 0xaa, - 0x31, 0x3b, 0x2e, 0x08, 0x95, 0xa0, 0x8b, 0xab, 0x5f, 0x7e, 0x65, 0xca, 0xb7, 0xf0, 0x32, 0xa4, - 0xa8, 0x4d, 0x17, 0x16, 0xd2, 0x37, 0x95, 0x88, 0x0a, 0xe7, 0xb1, 0xea, 0xa7, 0x38, 0xec, 0xec, - 0x42, 0xfa, 0x1f, 0x95, 0x40, 0x95, 0xf3, 0x86, 0x33, 0x1f, 0x23, 0x1a, 0x5a, 0xb7, 0xad, 0xe1, - 0x99, 0x58, 0x1a, 0x06, 0x74, 0xbb, 0xab, 0x43, 0xb7, 0x80, 0x56, 0xfb, 0x30, 0x52, 0xae, 0xd7, - 0xca, 0xe4, 0xef, 0x77, 0xe3, 0xa8, 0x44, 0x79, 0xa4, 0x7a, 0xb0, 0x20, 0x84, 0x65, 0x10, 0xe1, - 0x85, 0xb4, 0x58, 0x23, 0x32, 0x75, 0xfc, 0x58, 0x4b, 0x78, 0xec, 0x5c, 0xb7, 0xc7, 0xfa, 0x95, - 0xdd, 0x7b, 0xe0, 0x5c, 0xb7, 0x07, 0xfa, 0x39, 0xe4, 0x3d, 0xea, 0x19, 0xbe, 0x38, 0xd3, 0x2b, - 0x37, 0xfa, 0x49, 0x48, 0xac, 0xd0, 0xeb, 0xc0, 0x83, 0xf9, 0x41, 0xac, 0xd4, 0x77, 0x5f, 0x99, - 0x4a, 0x6e, 0xef, 0xd7, 0x6b, 0x46, 0x62, 0xa5, 0xa6, 0x5f, 0x83, 0xde, 0xf7, 0xb1, 0xbf, 0x82, - 0xc3, 0x0c, 0x4b, 0x8c, 0xe1, 0x81, 0xae, 0x7b, 0x44, 0xf8, 0xc1, 0x67, 0xe8, 0x66, 0xe2, 0xfc, - 0x76, 0xdd, 0x72, 0xcf, 0x2e, 0x5e, 0x34, 0xa8, 0x88, 0xcc, 0xff, 0x06, 0xa0, 0xcf, 0x2c, 0x9a, - 0xce, 0x9e, 0x5e, 0xe6, 0x92, 0xe9, 0xa3, 0x2f, 0x7e, 0xf7, 0x95, 0xa9, 0xa5, 0x38, 0x52, 0x1f, - 0xac, 0x99, 0xce, 0xde, 0x83, 0xee, 0x41, 0x0b, 0xcd, 0xe7, 0x0f, 0x5c, 0xe4, 0x70, 0xe9, 0x2d, - 0xbe, 0xea, 0xb1, 0x79, 0xa5, 0x03, 0xf3, 0x4a, 0x09, 0x73, 0xba, 0x22, 0xce, 0x69, 0xe1, 0xad, - 0xce, 0xe7, 0x19, 0xbe, 0x48, 0x48, 0x96, 0x54, 0xa3, 0x2c, 0xa9, 0xde, 0xae, 0x25, 0x5b, 0xbc, - 0x3e, 0x4a, 0x73, 0x55, 0x0f, 0x9b, 0xab, 0x7a, 0x3b, 0x73, 0xfd, 0x09, 0xcd, 0x56, 0x2f, 0x9f, - 0xb6, 0x2d, 0x7a, 0x15, 0xf1, 0x97, 0x6b, 0x2f, 0xe8, 0x6d, 0xed, 0x02, 0xb2, 0xc9, 0x9b, 0x2f, - 0x4c, 0x29, 0x99, 0xcf, 0x24, 0xf8, 0xcc, 0x69, 0x22, 0xbd, 0xb5, 0x99, 0xff, 0xb2, 0xf4, 0x54, - 0xef, 0x84, 0x85, 0x9e, 0x57, 0x60, 0xbc, 0xa3, 0x92, 0x53, 0x33, 0xbd, 0xbd, 0xe5, 0xdc, 0x3a, - 0x6a, 0x39, 0x67, 0x0a, 0x7e, 0x4d, 0x81, 0xe3, 0x52, 0x79, 0xa5, 0xea, 0x9d, 0x91, 0xd4, 0x3b, - 0xd1, 0xf9, 0x24, 0xc2, 0x18, 0xd0, 0x2e, 0xe8, 0x5e, 0x09, 0x10, 0x90, 0xec, 0xf9, 0x7d, 0x49, - 0xf2, 0xfb, 0x49, 0x0f, 0x10, 0x62, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x1b, 0x92, 0x5b, 0x6d, 0x84, - 0xf4, 0x49, 0x48, 0xac, 0xb7, 0x99, 0x86, 0xc3, 0x14, 0xbf, 0xde, 0xce, 0xb7, 0x4d, 0xab, 0xba, - 0x67, 0x24, 0xd6, 0xdb, 0xfa, 0x29, 0x50, 0x73, 0xec, 0x77, 0x06, 0x06, 0x16, 0x47, 0x28, 0x43, - 0xce, 0xaa, 0x31, 0x0e, 0x4c, 0xd3, 0x27, 0x21, 0xb9, 0x8a, 0xcc, 0x1d, 0xa6, 0x04, 0x50, 0x1e, - 0x3c, 0x62, 0x90, 0x71, 0xf6, 0xc0, 0xc7, 0x21, 0xc5, 0x05, 0xeb, 0x33, 0x18, 0xb1, 0xe3, 0xb2, - 0xc7, 0x32, 0x04, 0x56, 0x87, 0xad, 0x5c, 0x84, 0xaa, 0x9f, 0x86, 0x5e, 0xa3, 0xbe, 0xbb, 0xe7, - 0xb2, 0x87, 0x77, 0xb2, 0x51, 0x72, 0xe6, 0x3a, 0xf4, 0x7b, 0x1a, 0xbd, 0xcd, 0xa2, 0x8b, 0x74, - 0x6a, 0xfa, 0x44, 0x70, 0x3d, 0xe1, 0xfb, 0x96, 0x74, 0x48, 0x9f, 0x86, 0xd4, 0xa6, 0xdb, 0xf6, - 0x8b, 0x3e, 0xef, 0x48, 0xbd, 0xd1, 0xcc, 0x07, 0x15, 0x48, 0x15, 0x11, 0x6a, 0x11, 0x83, 0xdf, - 0x0b, 0xc9, 0xa2, 0xfd, 0xb4, 0xc5, 0x14, 0x1c, 0x65, 0x16, 0xc5, 0x64, 0x66, 0x53, 0x42, 0xd6, - 0xef, 0x0d, 0xda, 0x7d, 0xcc, 0xb3, 0x7b, 0x80, 0x8f, 0xd8, 0x3e, 0x23, 0xd8, 0x9e, 0x39, 0x10, - 0x33, 0x75, 0xd8, 0xff, 0x02, 0x0c, 0x04, 0x9e, 0xa2, 0xcf, 0x32, 0x35, 0x12, 0x32, 0x30, 0x68, - 0x2b, 0xcc, 0x91, 0x41, 0x30, 0x24, 0x3c, 0x18, 0x43, 0x03, 0x26, 0xee, 0x02, 0x25, 0x66, 0x9e, - 0x13, 0xcd, 0x1c, 0xce, 0xca, 0x4c, 0xbd, 0x40, 0x6d, 0x44, 0xcc, 0x3d, 0x43, 0x83, 0xb3, 0xbb, - 0x13, 0xf1, 0xe7, 0x4c, 0x2f, 0xa8, 0xe5, 0x7a, 0x23, 0xf3, 0x10, 0x00, 0x4d, 0xf9, 0x92, 0xb5, - 0xdf, 0x94, 0xb2, 0x6e, 0x98, 0x1b, 0x78, 0x6b, 0x0f, 0x6d, 0x21, 0x87, 0xb0, 0x88, 0xfd, 0x14, - 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0xef, 0x8f, 0xc4, 0x87, 0x76, 0x62, 0x98, 0x35, 0x4d, 0x59, - 0xaf, 0x23, 0x37, 0x67, 0xd9, 0xee, 0x1e, 0x6a, 0x4b, 0x88, 0x45, 0xfd, 0x9c, 0x90, 0xb0, 0xc3, - 0x8b, 0x77, 0x79, 0x88, 0xae, 0xa0, 0x73, 0x99, 0xaf, 0x10, 0x05, 0x71, 0x2b, 0xd0, 0x31, 0x41, - 0x35, 0xc6, 0x04, 0xf5, 0xf3, 0x42, 0xff, 0x76, 0x88, 0x9a, 0xd2, 0xab, 0xe5, 0x25, 0xe1, 0x3d, - 0xe7, 0x70, 0x65, 0xc5, 0x77, 0x4c, 0x6e, 0x53, 0xae, 0xf2, 0xfd, 0x91, 0x2a, 0x77, 0xe9, 0x6e, - 0x8f, 0x6a, 0x53, 0x35, 0xae, 0x4d, 0xbf, 0xe9, 0x75, 0x1c, 0xf4, 0x17, 0x1b, 0xc8, 0x0f, 0x84, - 0xe8, 0x0f, 0x44, 0xfa, 0x3e, 0xab, 0x14, 0x3c, 0x55, 0x97, 0xe2, 0xba, 0x3f, 0x9b, 0xc8, 0xe7, - 0x3d, 0x75, 0x2f, 0x1c, 0x21, 0x04, 0xb2, 0x89, 0x42, 0xc1, 0x2b, 0xdb, 0xa9, 0x8f, 0xbc, 0x30, - 0xa5, 0xbc, 0xf8, 0xc2, 0x54, 0x4f, 0xe6, 0x8b, 0x0a, 0x8c, 0x32, 0xce, 0x40, 0xe0, 0x3e, 0x28, - 0x29, 0x7f, 0x07, 0xaf, 0x19, 0x61, 0x16, 0xf8, 0xb9, 0x05, 0xef, 0xb7, 0x15, 0x48, 0x77, 0xe8, - 0xca, 0xed, 0xbd, 0x10, 0x4b, 0xe5, 0xac, 0x52, 0xfa, 0xc5, 0xdb, 0xfc, 0x3a, 0xf4, 0x6e, 0xd5, - 0x9b, 0xa8, 0x8d, 0x57, 0x02, 0xfc, 0x81, 0xaa, 0xcc, 0x0f, 0x73, 0xe8, 0x10, 0xa7, 0x51, 0xe5, - 0x04, 0xda, 0xa2, 0x9e, 0x86, 0x64, 0xd1, 0x74, 0x4d, 0xa2, 0xc1, 0xa0, 0x57, 0x5f, 0x4d, 0xd7, - 0xcc, 0x9c, 0x83, 0xc1, 0xb5, 0x03, 0x72, 0x5f, 0xa6, 0x46, 0xee, 0x82, 0x88, 0xdd, 0x1f, 0xef, - 0x57, 0xcf, 0xce, 0xf5, 0xa6, 0x6a, 0xda, 0x4d, 0x25, 0x9b, 0x24, 0xfa, 0x3c, 0x05, 0xc3, 0xeb, - 0x58, 0x6d, 0x82, 0x13, 0x60, 0xf4, 0xe9, 0xaa, 0x37, 0x79, 0xa9, 0x29, 0x53, 0xfd, 0xa6, 0x6c, - 0x1a, 0x94, 0x35, 0xb1, 0x75, 0x0a, 0xea, 0x61, 0x28, 0x6b, 0x73, 0xc9, 0xd4, 0xb0, 0x36, 0x3a, - 0x97, 0x4c, 0x81, 0x36, 0xc4, 0x9e, 0xfb, 0xf7, 0x2a, 0x68, 0xb4, 0xd5, 0x29, 0xa2, 0x9d, 0xba, - 0x55, 0x77, 0x3b, 0xfb, 0x55, 0x4f, 0x63, 0xfd, 0x11, 0xe8, 0xc7, 0x26, 0xbd, 0xc2, 0x7e, 0x67, - 0x0b, 0x9b, 0xfe, 0x14, 0x6b, 0x51, 0x24, 0x11, 0x6c, 0x80, 0x84, 0x8e, 0x8f, 0xd1, 0xaf, 0x80, - 0x5a, 0x2e, 0xaf, 0xb1, 0xc5, 0x6d, 0xe9, 0x50, 0x28, 0xbb, 0x6e, 0xc3, 0xbe, 0xb1, 0x31, 0x67, - 0xd7, 0xc0, 0x02, 0xf4, 0x25, 0x48, 0x94, 0xd7, 0x58, 0xc3, 0x3b, 0x13, 0x47, 0x8c, 0x91, 0x28, - 0xaf, 0x4d, 0xfc, 0x8d, 0x02, 0x43, 0xc2, 0xa8, 0x9e, 0x81, 0x41, 0x3a, 0x10, 0x98, 0x6e, 0x9f, - 0x21, 0x8c, 0x71, 0x9d, 0x13, 0xb7, 0xa9, 0xf3, 0x44, 0x0e, 0x46, 0xa4, 0x71, 0x7d, 0x1e, 0xf4, - 0xe0, 0x10, 0x53, 0x82, 0xfe, 0x46, 0x51, 0x08, 0x25, 0x73, 0x37, 0x80, 0x6f, 0x57, 0xef, 0xa7, - 0x75, 0xca, 0xa5, 0xcd, 0xad, 0x52, 0x51, 0x53, 0x32, 0x5f, 0x57, 0x60, 0x80, 0xb5, 0xad, 0x55, - 0xbb, 0x85, 0xf4, 0x3c, 0x28, 0x39, 0x16, 0x0f, 0x6f, 0x4d, 0x6f, 0x25, 0xa7, 0x9f, 0x01, 0x25, - 0x1f, 0xdf, 0xd5, 0x4a, 0x5e, 0x5f, 0x04, 0xa5, 0xc0, 0x1c, 0x1c, 0xcf, 0x33, 0x4a, 0x21, 0xf3, - 0x23, 0x15, 0xc6, 0x82, 0x6d, 0x34, 0xaf, 0x27, 0xa7, 0xc4, 0xf7, 0xa6, 0x6c, 0xff, 0xd9, 0xc5, - 0x73, 0x4b, 0xf3, 0xf8, 0x1f, 0x2f, 0x24, 0x4f, 0x89, 0xaf, 0x50, 0x9d, 0x2c, 0x1d, 0xd7, 0x44, - 0xb2, 0xc9, 0x00, 0xb5, 0xe3, 0x9a, 0x88, 0x40, 0xed, 0xb8, 0x26, 0x22, 0x50, 0x3b, 0xae, 0x89, - 0x08, 0xd4, 0x8e, 0xa3, 0x00, 0x81, 0xda, 0x71, 0x4d, 0x44, 0xa0, 0x76, 0x5c, 0x13, 0x11, 0xa8, - 0x9d, 0xd7, 0x44, 0x18, 0xb9, 0xeb, 0x35, 0x11, 0x91, 0xde, 0x79, 0x4d, 0x44, 0xa4, 0x77, 0x5e, - 0x13, 0xc9, 0x26, 0xdd, 0xf6, 0x3e, 0xea, 0x7e, 0xe8, 0x20, 0xe2, 0x0f, 0x7b, 0x07, 0xf4, 0x0b, - 0xf0, 0x3a, 0x8c, 0xd0, 0xfd, 0x88, 0x82, 0x6d, 0xb9, 0x66, 0xdd, 0x42, 0x6d, 0xfd, 0xdd, 0x30, - 0x48, 0x87, 0xe8, 0x5b, 0x4e, 0xd8, 0x5b, 0x20, 0xa5, 0xb3, 0x72, 0x2b, 0x70, 0x67, 0x7e, 0x96, - 0x84, 0x71, 0x3a, 0x50, 0x36, 0x9b, 0x48, 0xb8, 0x64, 0x74, 0x5a, 0x3a, 0x52, 0x1a, 0xc6, 0xf0, - 0x5b, 0xaf, 0x4c, 0xd1, 0xd1, 0x9c, 0x17, 0x4c, 0xa7, 0xa5, 0xc3, 0x25, 0x91, 0xcf, 0x5f, 0x7f, - 0x4e, 0x4b, 0x17, 0x8f, 0x44, 0x3e, 0x6f, 0xb9, 0xf1, 0xf8, 0xf8, 0x15, 0x24, 0x91, 0xaf, 0xe8, - 0x45, 0xd9, 0x69, 0xe9, 0x32, 0x92, 0xc8, 0x57, 0xf2, 0xe2, 0xed, 0xb4, 0x74, 0xf4, 0x24, 0xf2, - 0x5d, 0xf1, 0x22, 0xef, 0xb4, 0x74, 0x08, 0x25, 0xf2, 0x5d, 0xf5, 0x62, 0xf0, 0xb4, 0x74, 0x55, - 0x49, 0xe4, 0x7b, 0xd4, 0x8b, 0xc6, 0xd3, 0xd2, 0xa5, 0x25, 0x91, 0x6f, 0xc5, 0x8b, 0xcb, 0x59, - 0xf9, 0xfa, 0x92, 0xc8, 0x78, 0xcd, 0x8f, 0xd0, 0x59, 0xf9, 0x22, 0x93, 0xc8, 0xf9, 0x1e, 0x3f, - 0x56, 0x67, 0xe5, 0x2b, 0x4d, 0x22, 0xe7, 0xaa, 0x1f, 0xb5, 0xb3, 0xf2, 0x51, 0x99, 0xc8, 0xb9, - 0xe6, 0xc7, 0xef, 0xac, 0x7c, 0x68, 0x26, 0x72, 0x96, 0xfd, 0x48, 0x9e, 0x95, 0x8f, 0xcf, 0x44, - 0xce, 0x75, 0x7f, 0x0f, 0xfd, 0x5b, 0x52, 0xf8, 0x05, 0x2e, 0x41, 0x65, 0xa4, 0xf0, 0x83, 0x90, - 0xd0, 0xcb, 0x48, 0xa1, 0x07, 0x21, 0x61, 0x97, 0x91, 0xc2, 0x0e, 0x42, 0x42, 0x2e, 0x23, 0x85, - 0x1c, 0x84, 0x84, 0x5b, 0x46, 0x0a, 0x37, 0x08, 0x09, 0xb5, 0x8c, 0x14, 0x6a, 0x10, 0x12, 0x66, - 0x19, 0x29, 0xcc, 0x20, 0x24, 0xc4, 0x32, 0x52, 0x88, 0x41, 0x48, 0x78, 0x65, 0xa4, 0xf0, 0x82, - 0x90, 0xd0, 0x9a, 0x91, 0x43, 0x0b, 0xc2, 0xc2, 0x6a, 0x46, 0x0e, 0x2b, 0x08, 0x0b, 0xa9, 0x7b, - 0xe4, 0x90, 0xea, 0xbf, 0xf5, 0xca, 0x54, 0x2f, 0x1e, 0x0a, 0x44, 0xd3, 0x8c, 0x1c, 0x4d, 0x10, - 0x16, 0x49, 0x33, 0x72, 0x24, 0x41, 0x58, 0x14, 0xcd, 0xc8, 0x51, 0x04, 0x61, 0x11, 0xf4, 0x92, - 0x1c, 0x41, 0xfe, 0x15, 0x9f, 0x8c, 0x74, 0xa2, 0x18, 0x15, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0x63, - 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, - 0x31, 0x22, 0x48, 0x8d, 0x13, 0x41, 0x6a, 0xac, 0x08, 0x52, 0xbb, 0x45, 0xd0, 0x8c, 0x7c, 0xe1, - 0x01, 0xc2, 0x0a, 0xd2, 0x8c, 0x7c, 0xf2, 0x19, 0x1d, 0x42, 0x6a, 0xac, 0x10, 0x52, 0xbb, 0x85, - 0xd0, 0xb7, 0x54, 0x18, 0x13, 0x42, 0x88, 0x1d, 0x0f, 0xbd, 0x5d, 0x15, 0xe8, 0x7c, 0x8c, 0xfb, - 0x15, 0x61, 0x31, 0x75, 0x3e, 0xc6, 0x19, 0xf5, 0x61, 0x71, 0xd6, 0x59, 0x85, 0x4a, 0x31, 0xaa, - 0xd0, 0x15, 0x2f, 0x86, 0xce, 0xc7, 0xb8, 0x77, 0xd1, 0x19, 0x7b, 0x17, 0x0f, 0x2b, 0x02, 0x8f, - 0xc6, 0x2a, 0x02, 0x2b, 0xb1, 0x8a, 0xc0, 0x35, 0xdf, 0x83, 0x1f, 0x4e, 0xc0, 0x71, 0xdf, 0x83, - 0xf4, 0x13, 0xf9, 0x3d, 0xa4, 0x4c, 0xe0, 0x84, 0x4a, 0xe7, 0xa7, 0x36, 0x01, 0x37, 0x26, 0x56, - 0x6a, 0xfa, 0x86, 0x78, 0x56, 0x95, 0x3d, 0xea, 0xf9, 0x4d, 0xc0, 0xe3, 0x6c, 0x2f, 0x74, 0x06, - 0xd4, 0x95, 0x9a, 0x43, 0xaa, 0x45, 0xd8, 0x63, 0x0b, 0x06, 0x26, 0xeb, 0x06, 0xf4, 0x11, 0x76, - 0x87, 0xb8, 0xf7, 0x76, 0x1e, 0x5c, 0x34, 0x98, 0xa4, 0xcc, 0x4b, 0x0a, 0x4c, 0x0b, 0xa1, 0xfc, - 0xf6, 0x9c, 0x18, 0x5c, 0x8e, 0x75, 0x62, 0x20, 0x24, 0x88, 0x7f, 0x7a, 0x70, 0x5f, 0xe7, 0x41, - 0x75, 0x30, 0x4b, 0xe4, 0x93, 0x84, 0xff, 0x03, 0xc3, 0xfe, 0x0c, 0xc8, 0x2b, 0xdb, 0x72, 0xf4, - 0x66, 0x66, 0x58, 0x6a, 0x2e, 0x4b, 0x9b, 0x68, 0x87, 0xc2, 0xbc, 0x6c, 0xcd, 0x64, 0x61, 0xa4, - 0x2c, 0xfe, 0xe1, 0x4e, 0xd4, 0x5e, 0x44, 0x0a, 0xb7, 0xe6, 0x37, 0x3f, 0x3b, 0xd5, 0x93, 0x79, - 0x00, 0x06, 0x83, 0x7f, 0x9b, 0x23, 0x01, 0xfb, 0x39, 0x30, 0x9b, 0x7c, 0x19, 0x73, 0xff, 0x9e, - 0x02, 0x77, 0x04, 0xd9, 0x1f, 0xab, 0xbb, 0x7b, 0x2b, 0x16, 0xee, 0xe9, 0x1f, 0x82, 0x14, 0x62, - 0x8e, 0x63, 0x3f, 0x6d, 0xc2, 0x5e, 0x23, 0x43, 0xd9, 0xe7, 0xc9, 0xbf, 0x86, 0x07, 0x91, 0x36, - 0x41, 0xf8, 0x63, 0x17, 0x27, 0xee, 0x85, 0x5e, 0x2a, 0x5f, 0xd4, 0x6b, 0x48, 0xd2, 0xeb, 0xf3, - 0x21, 0x7a, 0x91, 0x38, 0xd2, 0xaf, 0x09, 0x7a, 0x05, 0xde, 0x56, 0x43, 0xd9, 0xe7, 0x79, 0xf0, - 0xe5, 0x53, 0xb8, 0xff, 0x23, 0x11, 0x15, 0xad, 0xe4, 0x2c, 0xa4, 0x4a, 0x32, 0x4f, 0xb8, 0x9e, - 0x45, 0x48, 0x96, 0xed, 0x1a, 0xf9, 0xd1, 0x15, 0xf2, 0xe3, 0xb8, 0xcc, 0xc8, 0xec, 0x97, 0x72, - 0x4f, 0x43, 0xaa, 0xb0, 0x57, 0x6f, 0xd4, 0xda, 0xc8, 0x62, 0x47, 0xf6, 0x6c, 0x07, 0x1d, 0x63, - 0x0c, 0x8f, 0x96, 0x29, 0xc0, 0x68, 0xd9, 0xb6, 0xf2, 0x07, 0x6e, 0xb0, 0x6e, 0xcc, 0x4b, 0x29, - 0xc2, 0x8e, 0x7c, 0xc8, 0x5f, 0x7b, 0x60, 0x86, 0x7c, 0xef, 0x77, 0x5f, 0x99, 0x52, 0xb6, 0xbc, - 0xed, 0xf3, 0x35, 0x38, 0xc1, 0xd2, 0xa7, 0x43, 0xd4, 0x62, 0x94, 0xa8, 0x7e, 0x76, 0x4c, 0x1d, - 0x10, 0xb7, 0x82, 0xc5, 0x59, 0xa1, 0xe2, 0xde, 0x9a, 0x66, 0xb8, 0x29, 0x3a, 0x54, 0x33, 0xf5, - 0x48, 0x9a, 0x85, 0x8a, 0x9b, 0x8f, 0x12, 0x27, 0x69, 0x76, 0x0f, 0xf4, 0x7b, 0xb4, 0x40, 0x34, - 0x04, 0x33, 0x65, 0x71, 0x2e, 0x03, 0x03, 0x81, 0x84, 0xd5, 0x7b, 0x41, 0xc9, 0x69, 0x3d, 0xf8, - 0xbf, 0xbc, 0xa6, 0xe0, 0xff, 0x0a, 0x5a, 0x62, 0xee, 0x5e, 0x18, 0x91, 0xb6, 0x2f, 0x31, 0xa5, - 0xa8, 0x01, 0xfe, 0xaf, 0xa4, 0x0d, 0x4c, 0x24, 0x3f, 0xf2, 0x87, 0x93, 0x3d, 0x73, 0x97, 0x41, - 0xef, 0xdc, 0xe8, 0xd4, 0xfb, 0x20, 0x91, 0xc3, 0x22, 0x4f, 0x40, 0x22, 0x9f, 0xd7, 0x94, 0x89, - 0x91, 0x5f, 0xfd, 0xf4, 0xf4, 0x40, 0x9e, 0xfc, 0xe1, 0xf1, 0x75, 0xe4, 0xe6, 0xf3, 0x0c, 0xfc, - 0x30, 0xdc, 0x11, 0xba, 0x51, 0x8a, 0xf1, 0x85, 0x02, 0xc5, 0x17, 0x8b, 0x1d, 0xf8, 0x62, 0x91, - 0xe0, 0x95, 0x2c, 0x3f, 0x70, 0xce, 0xe9, 0x21, 0x9b, 0x8c, 0xe9, 0x5a, 0xe0, 0x80, 0x3b, 0x97, - 0x7d, 0x98, 0xf1, 0xe6, 0x43, 0x79, 0x51, 0xc4, 0x81, 0x75, 0x3e, 0x5b, 0x60, 0xf8, 0x42, 0x28, - 0x7e, 0x47, 0x3a, 0x55, 0x15, 0x57, 0x08, 0x26, 0xa4, 0xe0, 0x29, 0x5c, 0x0c, 0x15, 0xb2, 0x17, - 0xb8, 0xeb, 0x5e, 0xf4, 0x14, 0x2e, 0x85, 0xf2, 0xd6, 0x23, 0xee, 0x7c, 0x95, 0xb2, 0x67, 0xd8, - 0x22, 0x9f, 0x3b, 0xab, 0xdf, 0xc1, 0x73, 0x54, 0xa8, 0xc0, 0xcc, 0x40, 0x9c, 0x2b, 0x5b, 0x60, - 0x80, 0x7c, 0x57, 0x40, 0x77, 0x2b, 0x71, 0x64, 0xf6, 0x51, 0x26, 0xa4, 0xd0, 0x55, 0x48, 0x84, - 0xa9, 0x38, 0x3c, 0xbf, 0x75, 0xf3, 0xd5, 0xc9, 0x9e, 0x97, 0x5f, 0x9d, 0xec, 0xf9, 0xa7, 0x57, - 0x27, 0x7b, 0xbe, 0xf7, 0xea, 0xa4, 0xf2, 0x83, 0x57, 0x27, 0x95, 0x1f, 0xbe, 0x3a, 0xa9, 0xfc, - 0xf4, 0xd5, 0x49, 0xe5, 0xb9, 0x5b, 0x93, 0xca, 0x8b, 0xb7, 0x26, 0x95, 0xaf, 0xdc, 0x9a, 0x54, - 0xbe, 0x71, 0x6b, 0x52, 0x79, 0xe9, 0xd6, 0xa4, 0x72, 0xf3, 0xd6, 0x64, 0xcf, 0xcb, 0xb7, 0x26, - 0x7b, 0xbe, 0x77, 0x6b, 0x52, 0xf9, 0xc1, 0xad, 0xc9, 0x9e, 0x1f, 0xde, 0x9a, 0x54, 0x7e, 0x7a, - 0x6b, 0x52, 0x79, 0xee, 0xb5, 0xc9, 0x9e, 0x17, 0x5e, 0x9b, 0xec, 0x79, 0xf1, 0xb5, 0x49, 0xe5, - 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x5f, 0x70, 0x1f, 0xb0, 0x64, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (x TheTestEnum) String() string { - s, ok := TheTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x AnotherTestEnum) String() string { - s, ok := AnotherTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x YetAnotherTestEnum) String() string { - s, ok := YetAnotherTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x YetYetAnotherTestEnum) String() string { - s, ok := YetYetAnotherTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x NestedDefinition_NestedEnum) String() string { - s, ok := NestedDefinition_NestedEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (this *NidOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptNative) - if !ok { - that2, ok := that.(NidOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptNative but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field8 != that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field9 != that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - if this.Field10 != that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - if this.Field11 != that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - if this.Field12 != that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptNative) - if !ok { - that2, ok := that.(NidOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - if this.Field2 != that1.Field2 { - return false - } - if this.Field3 != that1.Field3 { - return false - } - if this.Field4 != that1.Field4 { - return false - } - if this.Field5 != that1.Field5 { - return false - } - if this.Field6 != that1.Field6 { - return false - } - if this.Field7 != that1.Field7 { - return false - } - if this.Field8 != that1.Field8 { - return false - } - if this.Field9 != that1.Field9 { - return false - } - if this.Field10 != that1.Field10 { - return false - } - if this.Field11 != that1.Field11 { - return false - } - if this.Field12 != that1.Field12 { - return false - } - if this.Field13 != that1.Field13 { - return false - } - if this.Field14 != that1.Field14 { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNative) - if !ok { - that2, ok := that.(NinOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNative but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4) - } - } else if this.Field4 != nil { - return fmt.Errorf("this.Field4 == nil && that.Field4 != nil") - } else if that1.Field4 != nil { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5) - } - } else if this.Field5 != nil { - return fmt.Errorf("this.Field5 == nil && that.Field5 != nil") - } else if that1.Field5 != nil { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", *this.Field8, *that1.Field8) - } - } else if this.Field8 != nil { - return fmt.Errorf("this.Field8 == nil && that.Field8 != nil") - } else if that1.Field8 != nil { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", *this.Field9, *that1.Field9) - } - } else if this.Field9 != nil { - return fmt.Errorf("this.Field9 == nil && that.Field9 != nil") - } else if that1.Field9 != nil { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", *this.Field10, *that1.Field10) - } - } else if this.Field10 != nil { - return fmt.Errorf("this.Field10 == nil && that.Field10 != nil") - } else if that1.Field10 != nil { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", *this.Field11, *that1.Field11) - } - } else if this.Field11 != nil { - return fmt.Errorf("this.Field11 == nil && that.Field11 != nil") - } else if that1.Field11 != nil { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", *this.Field12, *that1.Field12) - } - } else if this.Field12 != nil { - return fmt.Errorf("this.Field12 == nil && that.Field12 != nil") - } else if that1.Field12 != nil { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNative) - if !ok { - that2, ok := that.(NinOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return false - } - } else if this.Field4 != nil { - return false - } else if that1.Field4 != nil { - return false - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return false - } - } else if this.Field5 != nil { - return false - } else if that1.Field5 != nil { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return false - } - } else if this.Field8 != nil { - return false - } else if that1.Field8 != nil { - return false - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return false - } - } else if this.Field9 != nil { - return false - } else if that1.Field9 != nil { - return false - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return false - } - } else if this.Field10 != nil { - return false - } else if that1.Field10 != nil { - return false - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return false - } - } else if this.Field11 != nil { - return false - } else if that1.Field11 != nil { - return false - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return false - } - } else if this.Field12 != nil { - return false - } else if that1.Field12 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepNative) - if !ok { - that2, ok := that.(NidRepNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepNative) - if !ok { - that2, ok := that.(NidRepNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepNative) - if !ok { - that2, ok := that.(NinRepNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepNative) - if !ok { - that2, ok := that.(NinRepNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepPackedNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepPackedNative) - if !ok { - that2, ok := that.(NidRepPackedNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepPackedNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepPackedNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepPackedNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepPackedNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepPackedNative) - if !ok { - that2, ok := that.(NidRepPackedNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepPackedNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepPackedNative) - if !ok { - that2, ok := that.(NinRepPackedNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepPackedNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepPackedNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepPackedNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepPackedNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepPackedNative) - if !ok { - that2, ok := that.(NinRepPackedNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptStruct) - if !ok { - that2, ok := that.(NidOptStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptStruct but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(&that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !this.Field4.Equal(&that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if !this.Field8.Equal(&that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptStruct) - if !ok { - that2, ok := that.(NidOptStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - if this.Field2 != that1.Field2 { - return false - } - if !this.Field3.Equal(&that1.Field3) { - return false - } - if !this.Field4.Equal(&that1.Field4) { - return false - } - if this.Field6 != that1.Field6 { - return false - } - if this.Field7 != that1.Field7 { - return false - } - if !this.Field8.Equal(&that1.Field8) { - return false - } - if this.Field13 != that1.Field13 { - return false - } - if this.Field14 != that1.Field14 { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptStruct) - if !ok { - that2, ok := that.(NinOptStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptStruct but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !this.Field4.Equal(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if !this.Field8.Equal(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptStruct) - if !ok { - that2, ok := that.(NinOptStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !this.Field3.Equal(that1.Field3) { - return false - } - if !this.Field4.Equal(that1.Field4) { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if !this.Field8.Equal(that1.Field8) { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepStruct) - if !ok { - that2, ok := that.(NidRepStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepStruct but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if !this.Field3[i].Equal(&that1.Field3[i]) { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if !this.Field4[i].Equal(&that1.Field4[i]) { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if !this.Field8[i].Equal(&that1.Field8[i]) { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepStruct) - if !ok { - that2, ok := that.(NidRepStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if !this.Field3[i].Equal(&that1.Field3[i]) { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if !this.Field4[i].Equal(&that1.Field4[i]) { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if !this.Field8[i].Equal(&that1.Field8[i]) { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepStruct) - if !ok { - that2, ok := that.(NinRepStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepStruct but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if !this.Field3[i].Equal(that1.Field3[i]) { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if !this.Field4[i].Equal(that1.Field4[i]) { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if !this.Field8[i].Equal(that1.Field8[i]) { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepStruct) - if !ok { - that2, ok := that.(NinRepStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if !this.Field3[i].Equal(that1.Field3[i]) { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if !this.Field4[i].Equal(that1.Field4[i]) { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if !this.Field8[i].Equal(that1.Field8[i]) { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidEmbeddedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidEmbeddedStruct) - if !ok { - that2, ok := that.(NidEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidEmbeddedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidEmbeddedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidEmbeddedStruct but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.Field200.Equal(&that1.Field200) { - return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200) - } - if this.Field210 != that1.Field210 { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidEmbeddedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidEmbeddedStruct) - if !ok { - that2, ok := that.(NidEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.Field200.Equal(&that1.Field200) { - return false - } - if this.Field210 != that1.Field210 { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinEmbeddedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinEmbeddedStruct) - if !ok { - that2, ok := that.(NinEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinEmbeddedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinEmbeddedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinEmbeddedStruct but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.Field200.Equal(that1.Field200) { - return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200) - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", *this.Field210, *that1.Field210) - } - } else if this.Field210 != nil { - return fmt.Errorf("this.Field210 == nil && that.Field210 != nil") - } else if that1.Field210 != nil { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinEmbeddedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinEmbeddedStruct) - if !ok { - that2, ok := that.(NinEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.Field200.Equal(that1.Field200) { - return false - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return false - } - } else if this.Field210 != nil { - return false - } else if that1.Field210 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidNestedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidNestedStruct) - if !ok { - that2, ok := that.(NidNestedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidNestedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidNestedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidNestedStruct but is not nil && this == nil") - } - if !this.Field1.Equal(&that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if !this.Field2[i].Equal(&that1.Field2[i]) { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidNestedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidNestedStruct) - if !ok { - that2, ok := that.(NidNestedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(&that1.Field1) { - return false - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if !this.Field2[i].Equal(&that1.Field2[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinNestedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinNestedStruct) - if !ok { - that2, ok := that.(NinNestedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinNestedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinNestedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinNestedStruct but is not nil && this == nil") - } - if !this.Field1.Equal(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if !this.Field2[i].Equal(that1.Field2[i]) { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinNestedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinNestedStruct) - if !ok { - that2, ok := that.(NinNestedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(that1.Field1) { - return false - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if !this.Field2[i].Equal(that1.Field2[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptCustom) - if !ok { - that2, ok := that.(NidOptCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptCustom but is not nil && this == nil") - } - if !this.Id.Equal(that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", this.Id, that1.Id) - } - if !this.Value.Equal(that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptCustom) - if !ok { - that2, ok := that.(NidOptCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Id.Equal(that1.Id) { - return false - } - if !this.Value.Equal(that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomDash) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomDash) - if !ok { - that2, ok := that.(CustomDash) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomDash") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomDash but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomDash but is not nil && this == nil") - } - if that1.Value == nil { - if this.Value != nil { - return fmt.Errorf("this.Value != nil && that1.Value == nil") - } - } else if !this.Value.Equal(*that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomDash) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomDash) - if !ok { - that2, ok := that.(CustomDash) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Value == nil { - if this.Value != nil { - return false - } - } else if !this.Value.Equal(*that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptCustom) - if !ok { - that2, ok := that.(NinOptCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptCustom but is not nil && this == nil") - } - if that1.Id == nil { - if this.Id != nil { - return fmt.Errorf("this.Id != nil && that1.Id == nil") - } - } else if !this.Id.Equal(*that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", this.Id, that1.Id) - } - if that1.Value == nil { - if this.Value != nil { - return fmt.Errorf("this.Value != nil && that1.Value == nil") - } - } else if !this.Value.Equal(*that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptCustom) - if !ok { - that2, ok := that.(NinOptCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Id == nil { - if this.Id != nil { - return false - } - } else if !this.Id.Equal(*that1.Id) { - return false - } - if that1.Value == nil { - if this.Value != nil { - return false - } - } else if !this.Value.Equal(*that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepCustom) - if !ok { - that2, ok := that.(NidRepCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepCustom but is not nil && this == nil") - } - if len(this.Id) != len(that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", len(this.Id), len(that1.Id)) - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return fmt.Errorf("Id this[%v](%v) Not Equal that[%v](%v)", i, this.Id[i], i, that1.Id[i]) - } - } - if len(this.Value) != len(that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", len(this.Value), len(that1.Value)) - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return fmt.Errorf("Value this[%v](%v) Not Equal that[%v](%v)", i, this.Value[i], i, that1.Value[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepCustom) - if !ok { - that2, ok := that.(NidRepCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Id) != len(that1.Id) { - return false - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return false - } - } - if len(this.Value) != len(that1.Value) { - return false - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepCustom) - if !ok { - that2, ok := that.(NinRepCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepCustom but is not nil && this == nil") - } - if len(this.Id) != len(that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", len(this.Id), len(that1.Id)) - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return fmt.Errorf("Id this[%v](%v) Not Equal that[%v](%v)", i, this.Id[i], i, that1.Id[i]) - } - } - if len(this.Value) != len(that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", len(this.Value), len(that1.Value)) - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return fmt.Errorf("Value this[%v](%v) Not Equal that[%v](%v)", i, this.Value[i], i, that1.Value[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepCustom) - if !ok { - that2, ok := that.(NinRepCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Id) != len(that1.Id) { - return false - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return false - } - } - if len(this.Value) != len(that1.Value) { - return false - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNativeUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNativeUnion) - if !ok { - that2, ok := that.(NinOptNativeUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNativeUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNativeUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNativeUnion but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4) - } - } else if this.Field4 != nil { - return fmt.Errorf("this.Field4 == nil && that.Field4 != nil") - } else if that1.Field4 != nil { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5) - } - } else if this.Field5 != nil { - return fmt.Errorf("this.Field5 == nil && that.Field5 != nil") - } else if that1.Field5 != nil { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNativeUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNativeUnion) - if !ok { - that2, ok := that.(NinOptNativeUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return false - } - } else if this.Field4 != nil { - return false - } else if that1.Field4 != nil { - return false - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return false - } - } else if this.Field5 != nil { - return false - } else if that1.Field5 != nil { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptStructUnion) - if !ok { - that2, ok := that.(NinOptStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptStructUnion but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !this.Field4.Equal(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptStructUnion) - if !ok { - that2, ok := that.(NinOptStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !this.Field3.Equal(that1.Field3) { - return false - } - if !this.Field4.Equal(that1.Field4) { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinEmbeddedStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinEmbeddedStructUnion) - if !ok { - that2, ok := that.(NinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinEmbeddedStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinEmbeddedStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinEmbeddedStructUnion but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.Field200.Equal(that1.Field200) { - return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200) - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", *this.Field210, *that1.Field210) - } - } else if this.Field210 != nil { - return fmt.Errorf("this.Field210 == nil && that.Field210 != nil") - } else if that1.Field210 != nil { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinEmbeddedStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinEmbeddedStructUnion) - if !ok { - that2, ok := that.(NinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.Field200.Equal(that1.Field200) { - return false - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return false - } - } else if this.Field210 != nil { - return false - } else if that1.Field210 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinNestedStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinNestedStructUnion) - if !ok { - that2, ok := that.(NinNestedStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinNestedStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinNestedStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinNestedStructUnion but is not nil && this == nil") - } - if !this.Field1.Equal(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !this.Field2.Equal(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinNestedStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinNestedStructUnion) - if !ok { - that2, ok := that.(NinNestedStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(that1.Field1) { - return false - } - if !this.Field2.Equal(that1.Field2) { - return false - } - if !this.Field3.Equal(that1.Field3) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Tree) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Tree) - if !ok { - that2, ok := that.(Tree) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Tree") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Tree but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Tree but is not nil && this == nil") - } - if !this.Or.Equal(that1.Or) { - return fmt.Errorf("Or this(%v) Not Equal that(%v)", this.Or, that1.Or) - } - if !this.And.Equal(that1.And) { - return fmt.Errorf("And this(%v) Not Equal that(%v)", this.And, that1.And) - } - if !this.Leaf.Equal(that1.Leaf) { - return fmt.Errorf("Leaf this(%v) Not Equal that(%v)", this.Leaf, that1.Leaf) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Tree) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Tree) - if !ok { - that2, ok := that.(Tree) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Or.Equal(that1.Or) { - return false - } - if !this.And.Equal(that1.And) { - return false - } - if !this.Leaf.Equal(that1.Leaf) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *OrBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OrBranch) - if !ok { - that2, ok := that.(OrBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OrBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OrBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OrBranch but is not nil && this == nil") - } - if !this.Left.Equal(&that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if !this.Right.Equal(&that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *OrBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OrBranch) - if !ok { - that2, ok := that.(OrBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(&that1.Left) { - return false - } - if !this.Right.Equal(&that1.Right) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AndBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AndBranch) - if !ok { - that2, ok := that.(AndBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AndBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AndBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AndBranch but is not nil && this == nil") - } - if !this.Left.Equal(&that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if !this.Right.Equal(&that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AndBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AndBranch) - if !ok { - that2, ok := that.(AndBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(&that1.Left) { - return false - } - if !this.Right.Equal(&that1.Right) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Leaf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Leaf) - if !ok { - that2, ok := that.(Leaf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Leaf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Leaf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Leaf but is not nil && this == nil") - } - if this.Value != that1.Value { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if this.StrValue != that1.StrValue { - return fmt.Errorf("StrValue this(%v) Not Equal that(%v)", this.StrValue, that1.StrValue) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Leaf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Leaf) - if !ok { - that2, ok := that.(Leaf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Value != that1.Value { - return false - } - if this.StrValue != that1.StrValue { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *DeepTree) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*DeepTree) - if !ok { - that2, ok := that.(DeepTree) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *DeepTree") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *DeepTree but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *DeepTree but is not nil && this == nil") - } - if !this.Down.Equal(that1.Down) { - return fmt.Errorf("Down this(%v) Not Equal that(%v)", this.Down, that1.Down) - } - if !this.And.Equal(that1.And) { - return fmt.Errorf("And this(%v) Not Equal that(%v)", this.And, that1.And) - } - if !this.Leaf.Equal(that1.Leaf) { - return fmt.Errorf("Leaf this(%v) Not Equal that(%v)", this.Leaf, that1.Leaf) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *DeepTree) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*DeepTree) - if !ok { - that2, ok := that.(DeepTree) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Down.Equal(that1.Down) { - return false - } - if !this.And.Equal(that1.And) { - return false - } - if !this.Leaf.Equal(that1.Leaf) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *ADeepBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ADeepBranch) - if !ok { - that2, ok := that.(ADeepBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ADeepBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ADeepBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ADeepBranch but is not nil && this == nil") - } - if !this.Down.Equal(&that1.Down) { - return fmt.Errorf("Down this(%v) Not Equal that(%v)", this.Down, that1.Down) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *ADeepBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ADeepBranch) - if !ok { - that2, ok := that.(ADeepBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Down.Equal(&that1.Down) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AndDeepBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AndDeepBranch) - if !ok { - that2, ok := that.(AndDeepBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AndDeepBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AndDeepBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AndDeepBranch but is not nil && this == nil") - } - if !this.Left.Equal(&that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if !this.Right.Equal(&that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AndDeepBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AndDeepBranch) - if !ok { - that2, ok := that.(AndDeepBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(&that1.Left) { - return false - } - if !this.Right.Equal(&that1.Right) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *DeepLeaf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*DeepLeaf) - if !ok { - that2, ok := that.(DeepLeaf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *DeepLeaf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *DeepLeaf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *DeepLeaf but is not nil && this == nil") - } - if !this.Tree.Equal(&that1.Tree) { - return fmt.Errorf("Tree this(%v) Not Equal that(%v)", this.Tree, that1.Tree) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *DeepLeaf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*DeepLeaf) - if !ok { - that2, ok := that.(DeepLeaf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Tree.Equal(&that1.Tree) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Nil) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Nil) - if !ok { - that2, ok := that.(Nil) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Nil") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Nil but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Nil but is not nil && this == nil") - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Nil) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Nil) - if !ok { - that2, ok := that.(Nil) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptEnum) - if !ok { - that2, ok := that.(NidOptEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptEnum but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptEnum) - if !ok { - that2, ok := that.(NidOptEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptEnum) - if !ok { - that2, ok := that.(NinOptEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptEnum but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptEnum) - if !ok { - that2, ok := that.(NinOptEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepEnum) - if !ok { - that2, ok := that.(NidRepEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepEnum but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepEnum) - if !ok { - that2, ok := that.(NidRepEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepEnum) - if !ok { - that2, ok := that.(NinRepEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepEnum but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepEnum) - if !ok { - that2, ok := that.(NinRepEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptEnumDefault) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptEnumDefault) - if !ok { - that2, ok := that.(NinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptEnumDefault") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptEnumDefault but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptEnumDefault but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptEnumDefault) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptEnumDefault) - if !ok { - that2, ok := that.(NinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AnotherNinOptEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AnotherNinOptEnum) - if !ok { - that2, ok := that.(AnotherNinOptEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AnotherNinOptEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AnotherNinOptEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AnotherNinOptEnum but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AnotherNinOptEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AnotherNinOptEnum) - if !ok { - that2, ok := that.(AnotherNinOptEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AnotherNinOptEnumDefault) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AnotherNinOptEnumDefault) - if !ok { - that2, ok := that.(AnotherNinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AnotherNinOptEnumDefault") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AnotherNinOptEnumDefault but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AnotherNinOptEnumDefault but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AnotherNinOptEnumDefault) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AnotherNinOptEnumDefault) - if !ok { - that2, ok := that.(AnotherNinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Timer) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Timer) - if !ok { - that2, ok := that.(Timer) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Timer") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Timer but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Timer but is not nil && this == nil") - } - if this.Time1 != that1.Time1 { - return fmt.Errorf("Time1 this(%v) Not Equal that(%v)", this.Time1, that1.Time1) - } - if this.Time2 != that1.Time2 { - return fmt.Errorf("Time2 this(%v) Not Equal that(%v)", this.Time2, that1.Time2) - } - if !bytes.Equal(this.Data, that1.Data) { - return fmt.Errorf("Data this(%v) Not Equal that(%v)", this.Data, that1.Data) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Timer) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Timer) - if !ok { - that2, ok := that.(Timer) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Time1 != that1.Time1 { - return false - } - if this.Time2 != that1.Time2 { - return false - } - if !bytes.Equal(this.Data, that1.Data) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *MyExtendable) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MyExtendable) - if !ok { - that2, ok := that.(MyExtendable) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MyExtendable") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MyExtendable but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MyExtendable but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) - } - } else { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *MyExtendable) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MyExtendable) - if !ok { - that2, ok := that.(MyExtendable) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return false - } - } else { - return false - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *OtherExtenable) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OtherExtenable) - if !ok { - that2, ok := that.(OtherExtenable) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OtherExtenable") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OtherExtenable but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OtherExtenable but is not nil && this == nil") - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if !this.M.Equal(that1.M) { - return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) - } - } else { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *OtherExtenable) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OtherExtenable) - if !ok { - that2, ok := that.(OtherExtenable) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if !this.M.Equal(that1.M) { - return false - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return false - } - } else { - return false - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedDefinition) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedDefinition) - if !ok { - that2, ok := that.(NestedDefinition) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedDefinition") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedDefinition but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedDefinition but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.EnumField != nil && that1.EnumField != nil { - if *this.EnumField != *that1.EnumField { - return fmt.Errorf("EnumField this(%v) Not Equal that(%v)", *this.EnumField, *that1.EnumField) - } - } else if this.EnumField != nil { - return fmt.Errorf("this.EnumField == nil && that.EnumField != nil") - } else if that1.EnumField != nil { - return fmt.Errorf("EnumField this(%v) Not Equal that(%v)", this.EnumField, that1.EnumField) - } - if !this.NNM.Equal(that1.NNM) { - return fmt.Errorf("NNM this(%v) Not Equal that(%v)", this.NNM, that1.NNM) - } - if !this.NM.Equal(that1.NM) { - return fmt.Errorf("NM this(%v) Not Equal that(%v)", this.NM, that1.NM) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedDefinition) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedDefinition) - if !ok { - that2, ok := that.(NestedDefinition) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.EnumField != nil && that1.EnumField != nil { - if *this.EnumField != *that1.EnumField { - return false - } - } else if this.EnumField != nil { - return false - } else if that1.EnumField != nil { - return false - } - if !this.NNM.Equal(that1.NNM) { - return false - } - if !this.NM.Equal(that1.NM) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedDefinition_NestedMessage) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedDefinition_NestedMessage) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedDefinition_NestedMessage") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedDefinition_NestedMessage but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedDefinition_NestedMessage but is not nil && this == nil") - } - if this.NestedField1 != nil && that1.NestedField1 != nil { - if *this.NestedField1 != *that1.NestedField1 { - return fmt.Errorf("NestedField1 this(%v) Not Equal that(%v)", *this.NestedField1, *that1.NestedField1) - } - } else if this.NestedField1 != nil { - return fmt.Errorf("this.NestedField1 == nil && that.NestedField1 != nil") - } else if that1.NestedField1 != nil { - return fmt.Errorf("NestedField1 this(%v) Not Equal that(%v)", this.NestedField1, that1.NestedField1) - } - if !this.NNM.Equal(that1.NNM) { - return fmt.Errorf("NNM this(%v) Not Equal that(%v)", this.NNM, that1.NNM) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedDefinition_NestedMessage) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedDefinition_NestedMessage) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.NestedField1 != nil && that1.NestedField1 != nil { - if *this.NestedField1 != *that1.NestedField1 { - return false - } - } else if this.NestedField1 != nil { - return false - } else if that1.NestedField1 != nil { - return false - } - if !this.NNM.Equal(that1.NNM) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedDefinition_NestedMessage_NestedNestedMsg") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedDefinition_NestedMessage_NestedNestedMsg but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedDefinition_NestedMessage_NestedNestedMsg but is not nil && this == nil") - } - if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil { - if *this.NestedNestedField1 != *that1.NestedNestedField1 { - return fmt.Errorf("NestedNestedField1 this(%v) Not Equal that(%v)", *this.NestedNestedField1, *that1.NestedNestedField1) - } - } else if this.NestedNestedField1 != nil { - return fmt.Errorf("this.NestedNestedField1 == nil && that.NestedNestedField1 != nil") - } else if that1.NestedNestedField1 != nil { - return fmt.Errorf("NestedNestedField1 this(%v) Not Equal that(%v)", this.NestedNestedField1, that1.NestedNestedField1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil { - if *this.NestedNestedField1 != *that1.NestedNestedField1 { - return false - } - } else if this.NestedNestedField1 != nil { - return false - } else if that1.NestedNestedField1 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedScope) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedScope) - if !ok { - that2, ok := that.(NestedScope) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedScope") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedScope but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedScope but is not nil && this == nil") - } - if !this.A.Equal(that1.A) { - return fmt.Errorf("A this(%v) Not Equal that(%v)", this.A, that1.A) - } - if this.B != nil && that1.B != nil { - if *this.B != *that1.B { - return fmt.Errorf("B this(%v) Not Equal that(%v)", *this.B, *that1.B) - } - } else if this.B != nil { - return fmt.Errorf("this.B == nil && that.B != nil") - } else if that1.B != nil { - return fmt.Errorf("B this(%v) Not Equal that(%v)", this.B, that1.B) - } - if !this.C.Equal(that1.C) { - return fmt.Errorf("C this(%v) Not Equal that(%v)", this.C, that1.C) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedScope) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedScope) - if !ok { - that2, ok := that.(NestedScope) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.A.Equal(that1.A) { - return false - } - if this.B != nil && that1.B != nil { - if *this.B != *that1.B { - return false - } - } else if this.B != nil { - return false - } else if that1.B != nil { - return false - } - if !this.C.Equal(that1.C) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNativeDefault) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNativeDefault) - if !ok { - that2, ok := that.(NinOptNativeDefault) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNativeDefault") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNativeDefault but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNativeDefault but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4) - } - } else if this.Field4 != nil { - return fmt.Errorf("this.Field4 == nil && that.Field4 != nil") - } else if that1.Field4 != nil { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5) - } - } else if this.Field5 != nil { - return fmt.Errorf("this.Field5 == nil && that.Field5 != nil") - } else if that1.Field5 != nil { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", *this.Field8, *that1.Field8) - } - } else if this.Field8 != nil { - return fmt.Errorf("this.Field8 == nil && that.Field8 != nil") - } else if that1.Field8 != nil { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", *this.Field9, *that1.Field9) - } - } else if this.Field9 != nil { - return fmt.Errorf("this.Field9 == nil && that.Field9 != nil") - } else if that1.Field9 != nil { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", *this.Field10, *that1.Field10) - } - } else if this.Field10 != nil { - return fmt.Errorf("this.Field10 == nil && that.Field10 != nil") - } else if that1.Field10 != nil { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", *this.Field11, *that1.Field11) - } - } else if this.Field11 != nil { - return fmt.Errorf("this.Field11 == nil && that.Field11 != nil") - } else if that1.Field11 != nil { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", *this.Field12, *that1.Field12) - } - } else if this.Field12 != nil { - return fmt.Errorf("this.Field12 == nil && that.Field12 != nil") - } else if that1.Field12 != nil { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNativeDefault) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNativeDefault) - if !ok { - that2, ok := that.(NinOptNativeDefault) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return false - } - } else if this.Field4 != nil { - return false - } else if that1.Field4 != nil { - return false - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return false - } - } else if this.Field5 != nil { - return false - } else if that1.Field5 != nil { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return false - } - } else if this.Field8 != nil { - return false - } else if that1.Field8 != nil { - return false - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return false - } - } else if this.Field9 != nil { - return false - } else if that1.Field9 != nil { - return false - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return false - } - } else if this.Field10 != nil { - return false - } else if that1.Field10 != nil { - return false - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return false - } - } else if this.Field11 != nil { - return false - } else if that1.Field11 != nil { - return false - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return false - } - } else if this.Field12 != nil { - return false - } else if that1.Field12 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomContainer) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomContainer) - if !ok { - that2, ok := that.(CustomContainer) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomContainer") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomContainer but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomContainer but is not nil && this == nil") - } - if !this.CustomStruct.Equal(&that1.CustomStruct) { - return fmt.Errorf("CustomStruct this(%v) Not Equal that(%v)", this.CustomStruct, that1.CustomStruct) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomContainer) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomContainer) - if !ok { - that2, ok := that.(CustomContainer) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.CustomStruct.Equal(&that1.CustomStruct) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNidOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNidOptNative) - if !ok { - that2, ok := that.(CustomNameNidOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNidOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNidOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNidOptNative but is not nil && this == nil") - } - if this.FieldA != that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if this.FieldC != that1.FieldC { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC) - } - if this.FieldD != that1.FieldD { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", this.FieldD, that1.FieldD) - } - if this.FieldE != that1.FieldE { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE) - } - if this.FieldF != that1.FieldF { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF) - } - if this.FieldG != that1.FieldG { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG) - } - if this.FieldH != that1.FieldH { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH) - } - if this.FieldI != that1.FieldI { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI) - } - if this.FieldJ != that1.FieldJ { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ) - } - if this.FieldK != that1.FieldK { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", this.FieldK, that1.FieldK) - } - if this.FieldL != that1.FieldL { - return fmt.Errorf("FieldL this(%v) Not Equal that(%v)", this.FieldL, that1.FieldL) - } - if this.FieldM != that1.FieldM { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", this.FieldM, that1.FieldM) - } - if this.FieldN != that1.FieldN { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", this.FieldN, that1.FieldN) - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", this.FieldO, that1.FieldO) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNidOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNidOptNative) - if !ok { - that2, ok := that.(CustomNameNidOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != that1.FieldA { - return false - } - if this.FieldB != that1.FieldB { - return false - } - if this.FieldC != that1.FieldC { - return false - } - if this.FieldD != that1.FieldD { - return false - } - if this.FieldE != that1.FieldE { - return false - } - if this.FieldF != that1.FieldF { - return false - } - if this.FieldG != that1.FieldG { - return false - } - if this.FieldH != that1.FieldH { - return false - } - if this.FieldI != that1.FieldI { - return false - } - if this.FieldJ != that1.FieldJ { - return false - } - if this.FieldK != that1.FieldK { - return false - } - if this.FieldL != that1.FieldL { - return false - } - if this.FieldM != that1.FieldM { - return false - } - if this.FieldN != that1.FieldN { - return false - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinOptNative) - if !ok { - that2, ok := that.(CustomNameNinOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinOptNative but is not nil && this == nil") - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA) - } - } else if this.FieldA != nil { - return fmt.Errorf("this.FieldA == nil && that.FieldA != nil") - } else if that1.FieldA != nil { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB) - } - } else if this.FieldB != nil { - return fmt.Errorf("this.FieldB == nil && that.FieldB != nil") - } else if that1.FieldB != nil { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if this.FieldC != nil && that1.FieldC != nil { - if *this.FieldC != *that1.FieldC { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", *this.FieldC, *that1.FieldC) - } - } else if this.FieldC != nil { - return fmt.Errorf("this.FieldC == nil && that.FieldC != nil") - } else if that1.FieldC != nil { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC) - } - if this.FieldD != nil && that1.FieldD != nil { - if *this.FieldD != *that1.FieldD { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", *this.FieldD, *that1.FieldD) - } - } else if this.FieldD != nil { - return fmt.Errorf("this.FieldD == nil && that.FieldD != nil") - } else if that1.FieldD != nil { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", this.FieldD, that1.FieldD) - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", *this.FieldE, *that1.FieldE) - } - } else if this.FieldE != nil { - return fmt.Errorf("this.FieldE == nil && that.FieldE != nil") - } else if that1.FieldE != nil { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE) - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", *this.FieldF, *that1.FieldF) - } - } else if this.FieldF != nil { - return fmt.Errorf("this.FieldF == nil && that.FieldF != nil") - } else if that1.FieldF != nil { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF) - } - if this.FieldG != nil && that1.FieldG != nil { - if *this.FieldG != *that1.FieldG { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", *this.FieldG, *that1.FieldG) - } - } else if this.FieldG != nil { - return fmt.Errorf("this.FieldG == nil && that.FieldG != nil") - } else if that1.FieldG != nil { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG) - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", *this.FieldH, *that1.FieldH) - } - } else if this.FieldH != nil { - return fmt.Errorf("this.FieldH == nil && that.FieldH != nil") - } else if that1.FieldH != nil { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH) - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", *this.FieldI, *that1.FieldI) - } - } else if this.FieldI != nil { - return fmt.Errorf("this.FieldI == nil && that.FieldI != nil") - } else if that1.FieldI != nil { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI) - } - if this.FieldJ != nil && that1.FieldJ != nil { - if *this.FieldJ != *that1.FieldJ { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", *this.FieldJ, *that1.FieldJ) - } - } else if this.FieldJ != nil { - return fmt.Errorf("this.FieldJ == nil && that.FieldJ != nil") - } else if that1.FieldJ != nil { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ) - } - if this.FieldK != nil && that1.FieldK != nil { - if *this.FieldK != *that1.FieldK { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", *this.FieldK, *that1.FieldK) - } - } else if this.FieldK != nil { - return fmt.Errorf("this.FieldK == nil && that.FieldK != nil") - } else if that1.FieldK != nil { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", this.FieldK, that1.FieldK) - } - if this.FielL != nil && that1.FielL != nil { - if *this.FielL != *that1.FielL { - return fmt.Errorf("FielL this(%v) Not Equal that(%v)", *this.FielL, *that1.FielL) - } - } else if this.FielL != nil { - return fmt.Errorf("this.FielL == nil && that.FielL != nil") - } else if that1.FielL != nil { - return fmt.Errorf("FielL this(%v) Not Equal that(%v)", this.FielL, that1.FielL) - } - if this.FieldM != nil && that1.FieldM != nil { - if *this.FieldM != *that1.FieldM { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", *this.FieldM, *that1.FieldM) - } - } else if this.FieldM != nil { - return fmt.Errorf("this.FieldM == nil && that.FieldM != nil") - } else if that1.FieldM != nil { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", this.FieldM, that1.FieldM) - } - if this.FieldN != nil && that1.FieldN != nil { - if *this.FieldN != *that1.FieldN { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", *this.FieldN, *that1.FieldN) - } - } else if this.FieldN != nil { - return fmt.Errorf("this.FieldN == nil && that.FieldN != nil") - } else if that1.FieldN != nil { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", this.FieldN, that1.FieldN) - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", this.FieldO, that1.FieldO) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinOptNative) - if !ok { - that2, ok := that.(CustomNameNinOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return false - } - } else if this.FieldA != nil { - return false - } else if that1.FieldA != nil { - return false - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return false - } - } else if this.FieldB != nil { - return false - } else if that1.FieldB != nil { - return false - } - if this.FieldC != nil && that1.FieldC != nil { - if *this.FieldC != *that1.FieldC { - return false - } - } else if this.FieldC != nil { - return false - } else if that1.FieldC != nil { - return false - } - if this.FieldD != nil && that1.FieldD != nil { - if *this.FieldD != *that1.FieldD { - return false - } - } else if this.FieldD != nil { - return false - } else if that1.FieldD != nil { - return false - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return false - } - } else if this.FieldE != nil { - return false - } else if that1.FieldE != nil { - return false - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return false - } - } else if this.FieldF != nil { - return false - } else if that1.FieldF != nil { - return false - } - if this.FieldG != nil && that1.FieldG != nil { - if *this.FieldG != *that1.FieldG { - return false - } - } else if this.FieldG != nil { - return false - } else if that1.FieldG != nil { - return false - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return false - } - } else if this.FieldH != nil { - return false - } else if that1.FieldH != nil { - return false - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return false - } - } else if this.FieldI != nil { - return false - } else if that1.FieldI != nil { - return false - } - if this.FieldJ != nil && that1.FieldJ != nil { - if *this.FieldJ != *that1.FieldJ { - return false - } - } else if this.FieldJ != nil { - return false - } else if that1.FieldJ != nil { - return false - } - if this.FieldK != nil && that1.FieldK != nil { - if *this.FieldK != *that1.FieldK { - return false - } - } else if this.FieldK != nil { - return false - } else if that1.FieldK != nil { - return false - } - if this.FielL != nil && that1.FielL != nil { - if *this.FielL != *that1.FielL { - return false - } - } else if this.FielL != nil { - return false - } else if that1.FielL != nil { - return false - } - if this.FieldM != nil && that1.FieldM != nil { - if *this.FieldM != *that1.FieldM { - return false - } - } else if this.FieldM != nil { - return false - } else if that1.FieldM != nil { - return false - } - if this.FieldN != nil && that1.FieldN != nil { - if *this.FieldN != *that1.FieldN { - return false - } - } else if this.FieldN != nil { - return false - } else if that1.FieldN != nil { - return false - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinRepNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinRepNative) - if !ok { - that2, ok := that.(CustomNameNinRepNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinRepNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinRepNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinRepNative but is not nil && this == nil") - } - if len(this.FieldA) != len(that1.FieldA) { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", len(this.FieldA), len(that1.FieldA)) - } - for i := range this.FieldA { - if this.FieldA[i] != that1.FieldA[i] { - return fmt.Errorf("FieldA this[%v](%v) Not Equal that[%v](%v)", i, this.FieldA[i], i, that1.FieldA[i]) - } - } - if len(this.FieldB) != len(that1.FieldB) { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", len(this.FieldB), len(that1.FieldB)) - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return fmt.Errorf("FieldB this[%v](%v) Not Equal that[%v](%v)", i, this.FieldB[i], i, that1.FieldB[i]) - } - } - if len(this.FieldC) != len(that1.FieldC) { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", len(this.FieldC), len(that1.FieldC)) - } - for i := range this.FieldC { - if this.FieldC[i] != that1.FieldC[i] { - return fmt.Errorf("FieldC this[%v](%v) Not Equal that[%v](%v)", i, this.FieldC[i], i, that1.FieldC[i]) - } - } - if len(this.FieldD) != len(that1.FieldD) { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD)) - } - for i := range this.FieldD { - if this.FieldD[i] != that1.FieldD[i] { - return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i]) - } - } - if len(this.FieldE) != len(that1.FieldE) { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", len(this.FieldE), len(that1.FieldE)) - } - for i := range this.FieldE { - if this.FieldE[i] != that1.FieldE[i] { - return fmt.Errorf("FieldE this[%v](%v) Not Equal that[%v](%v)", i, this.FieldE[i], i, that1.FieldE[i]) - } - } - if len(this.FieldF) != len(that1.FieldF) { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", len(this.FieldF), len(that1.FieldF)) - } - for i := range this.FieldF { - if this.FieldF[i] != that1.FieldF[i] { - return fmt.Errorf("FieldF this[%v](%v) Not Equal that[%v](%v)", i, this.FieldF[i], i, that1.FieldF[i]) - } - } - if len(this.FieldG) != len(that1.FieldG) { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", len(this.FieldG), len(that1.FieldG)) - } - for i := range this.FieldG { - if this.FieldG[i] != that1.FieldG[i] { - return fmt.Errorf("FieldG this[%v](%v) Not Equal that[%v](%v)", i, this.FieldG[i], i, that1.FieldG[i]) - } - } - if len(this.FieldH) != len(that1.FieldH) { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", len(this.FieldH), len(that1.FieldH)) - } - for i := range this.FieldH { - if this.FieldH[i] != that1.FieldH[i] { - return fmt.Errorf("FieldH this[%v](%v) Not Equal that[%v](%v)", i, this.FieldH[i], i, that1.FieldH[i]) - } - } - if len(this.FieldI) != len(that1.FieldI) { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", len(this.FieldI), len(that1.FieldI)) - } - for i := range this.FieldI { - if this.FieldI[i] != that1.FieldI[i] { - return fmt.Errorf("FieldI this[%v](%v) Not Equal that[%v](%v)", i, this.FieldI[i], i, that1.FieldI[i]) - } - } - if len(this.FieldJ) != len(that1.FieldJ) { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", len(this.FieldJ), len(that1.FieldJ)) - } - for i := range this.FieldJ { - if this.FieldJ[i] != that1.FieldJ[i] { - return fmt.Errorf("FieldJ this[%v](%v) Not Equal that[%v](%v)", i, this.FieldJ[i], i, that1.FieldJ[i]) - } - } - if len(this.FieldK) != len(that1.FieldK) { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", len(this.FieldK), len(that1.FieldK)) - } - for i := range this.FieldK { - if this.FieldK[i] != that1.FieldK[i] { - return fmt.Errorf("FieldK this[%v](%v) Not Equal that[%v](%v)", i, this.FieldK[i], i, that1.FieldK[i]) - } - } - if len(this.FieldL) != len(that1.FieldL) { - return fmt.Errorf("FieldL this(%v) Not Equal that(%v)", len(this.FieldL), len(that1.FieldL)) - } - for i := range this.FieldL { - if this.FieldL[i] != that1.FieldL[i] { - return fmt.Errorf("FieldL this[%v](%v) Not Equal that[%v](%v)", i, this.FieldL[i], i, that1.FieldL[i]) - } - } - if len(this.FieldM) != len(that1.FieldM) { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", len(this.FieldM), len(that1.FieldM)) - } - for i := range this.FieldM { - if this.FieldM[i] != that1.FieldM[i] { - return fmt.Errorf("FieldM this[%v](%v) Not Equal that[%v](%v)", i, this.FieldM[i], i, that1.FieldM[i]) - } - } - if len(this.FieldN) != len(that1.FieldN) { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", len(this.FieldN), len(that1.FieldN)) - } - for i := range this.FieldN { - if this.FieldN[i] != that1.FieldN[i] { - return fmt.Errorf("FieldN this[%v](%v) Not Equal that[%v](%v)", i, this.FieldN[i], i, that1.FieldN[i]) - } - } - if len(this.FieldO) != len(that1.FieldO) { - return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", len(this.FieldO), len(that1.FieldO)) - } - for i := range this.FieldO { - if !bytes.Equal(this.FieldO[i], that1.FieldO[i]) { - return fmt.Errorf("FieldO this[%v](%v) Not Equal that[%v](%v)", i, this.FieldO[i], i, that1.FieldO[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinRepNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinRepNative) - if !ok { - that2, ok := that.(CustomNameNinRepNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.FieldA) != len(that1.FieldA) { - return false - } - for i := range this.FieldA { - if this.FieldA[i] != that1.FieldA[i] { - return false - } - } - if len(this.FieldB) != len(that1.FieldB) { - return false - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return false - } - } - if len(this.FieldC) != len(that1.FieldC) { - return false - } - for i := range this.FieldC { - if this.FieldC[i] != that1.FieldC[i] { - return false - } - } - if len(this.FieldD) != len(that1.FieldD) { - return false - } - for i := range this.FieldD { - if this.FieldD[i] != that1.FieldD[i] { - return false - } - } - if len(this.FieldE) != len(that1.FieldE) { - return false - } - for i := range this.FieldE { - if this.FieldE[i] != that1.FieldE[i] { - return false - } - } - if len(this.FieldF) != len(that1.FieldF) { - return false - } - for i := range this.FieldF { - if this.FieldF[i] != that1.FieldF[i] { - return false - } - } - if len(this.FieldG) != len(that1.FieldG) { - return false - } - for i := range this.FieldG { - if this.FieldG[i] != that1.FieldG[i] { - return false - } - } - if len(this.FieldH) != len(that1.FieldH) { - return false - } - for i := range this.FieldH { - if this.FieldH[i] != that1.FieldH[i] { - return false - } - } - if len(this.FieldI) != len(that1.FieldI) { - return false - } - for i := range this.FieldI { - if this.FieldI[i] != that1.FieldI[i] { - return false - } - } - if len(this.FieldJ) != len(that1.FieldJ) { - return false - } - for i := range this.FieldJ { - if this.FieldJ[i] != that1.FieldJ[i] { - return false - } - } - if len(this.FieldK) != len(that1.FieldK) { - return false - } - for i := range this.FieldK { - if this.FieldK[i] != that1.FieldK[i] { - return false - } - } - if len(this.FieldL) != len(that1.FieldL) { - return false - } - for i := range this.FieldL { - if this.FieldL[i] != that1.FieldL[i] { - return false - } - } - if len(this.FieldM) != len(that1.FieldM) { - return false - } - for i := range this.FieldM { - if this.FieldM[i] != that1.FieldM[i] { - return false - } - } - if len(this.FieldN) != len(that1.FieldN) { - return false - } - for i := range this.FieldN { - if this.FieldN[i] != that1.FieldN[i] { - return false - } - } - if len(this.FieldO) != len(that1.FieldO) { - return false - } - for i := range this.FieldO { - if !bytes.Equal(this.FieldO[i], that1.FieldO[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinStruct) - if !ok { - that2, ok := that.(CustomNameNinStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinStruct but is not nil && this == nil") - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA) - } - } else if this.FieldA != nil { - return fmt.Errorf("this.FieldA == nil && that.FieldA != nil") - } else if that1.FieldA != nil { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB) - } - } else if this.FieldB != nil { - return fmt.Errorf("this.FieldB == nil && that.FieldB != nil") - } else if that1.FieldB != nil { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if !this.FieldC.Equal(that1.FieldC) { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC) - } - if len(this.FieldD) != len(that1.FieldD) { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD)) - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i]) - } - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", *this.FieldE, *that1.FieldE) - } - } else if this.FieldE != nil { - return fmt.Errorf("this.FieldE == nil && that.FieldE != nil") - } else if that1.FieldE != nil { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE) - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", *this.FieldF, *that1.FieldF) - } - } else if this.FieldF != nil { - return fmt.Errorf("this.FieldF == nil && that.FieldF != nil") - } else if that1.FieldF != nil { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF) - } - if !this.FieldG.Equal(that1.FieldG) { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG) - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", *this.FieldH, *that1.FieldH) - } - } else if this.FieldH != nil { - return fmt.Errorf("this.FieldH == nil && that.FieldH != nil") - } else if that1.FieldH != nil { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH) - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", *this.FieldI, *that1.FieldI) - } - } else if this.FieldI != nil { - return fmt.Errorf("this.FieldI == nil && that.FieldI != nil") - } else if that1.FieldI != nil { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI) - } - if !bytes.Equal(this.FieldJ, that1.FieldJ) { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinStruct) - if !ok { - that2, ok := that.(CustomNameNinStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return false - } - } else if this.FieldA != nil { - return false - } else if that1.FieldA != nil { - return false - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return false - } - } else if this.FieldB != nil { - return false - } else if that1.FieldB != nil { - return false - } - if !this.FieldC.Equal(that1.FieldC) { - return false - } - if len(this.FieldD) != len(that1.FieldD) { - return false - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return false - } - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return false - } - } else if this.FieldE != nil { - return false - } else if that1.FieldE != nil { - return false - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return false - } - } else if this.FieldF != nil { - return false - } else if that1.FieldF != nil { - return false - } - if !this.FieldG.Equal(that1.FieldG) { - return false - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return false - } - } else if this.FieldH != nil { - return false - } else if that1.FieldH != nil { - return false - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return false - } - } else if this.FieldI != nil { - return false - } else if that1.FieldI != nil { - return false - } - if !bytes.Equal(this.FieldJ, that1.FieldJ) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameCustomType) - if !ok { - that2, ok := that.(CustomNameCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameCustomType but is not nil && this == nil") - } - if that1.FieldA == nil { - if this.FieldA != nil { - return fmt.Errorf("this.FieldA != nil && that1.FieldA == nil") - } - } else if !this.FieldA.Equal(*that1.FieldA) { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if that1.FieldB == nil { - if this.FieldB != nil { - return fmt.Errorf("this.FieldB != nil && that1.FieldB == nil") - } - } else if !this.FieldB.Equal(*that1.FieldB) { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if len(this.FieldC) != len(that1.FieldC) { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", len(this.FieldC), len(that1.FieldC)) - } - for i := range this.FieldC { - if !this.FieldC[i].Equal(that1.FieldC[i]) { - return fmt.Errorf("FieldC this[%v](%v) Not Equal that[%v](%v)", i, this.FieldC[i], i, that1.FieldC[i]) - } - } - if len(this.FieldD) != len(that1.FieldD) { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD)) - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameCustomType) - if !ok { - that2, ok := that.(CustomNameCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.FieldA == nil { - if this.FieldA != nil { - return false - } - } else if !this.FieldA.Equal(*that1.FieldA) { - return false - } - if that1.FieldB == nil { - if this.FieldB != nil { - return false - } - } else if !this.FieldB.Equal(*that1.FieldB) { - return false - } - if len(this.FieldC) != len(that1.FieldC) { - return false - } - for i := range this.FieldC { - if !this.FieldC[i].Equal(that1.FieldC[i]) { - return false - } - } - if len(this.FieldD) != len(that1.FieldD) { - return false - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinEmbeddedStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinEmbeddedStructUnion) - if !ok { - that2, ok := that.(CustomNameNinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinEmbeddedStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinEmbeddedStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinEmbeddedStructUnion but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.FieldA.Equal(that1.FieldA) { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB) - } - } else if this.FieldB != nil { - return fmt.Errorf("this.FieldB == nil && that.FieldB != nil") - } else if that1.FieldB != nil { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinEmbeddedStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinEmbeddedStructUnion) - if !ok { - that2, ok := that.(CustomNameNinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.FieldA.Equal(that1.FieldA) { - return false - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return false - } - } else if this.FieldB != nil { - return false - } else if that1.FieldB != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameEnum) - if !ok { - that2, ok := that.(CustomNameEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameEnum but is not nil && this == nil") - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA) - } - } else if this.FieldA != nil { - return fmt.Errorf("this.FieldA == nil && that.FieldA != nil") - } else if that1.FieldA != nil { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if len(this.FieldB) != len(that1.FieldB) { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", len(this.FieldB), len(that1.FieldB)) - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return fmt.Errorf("FieldB this[%v](%v) Not Equal that[%v](%v)", i, this.FieldB[i], i, that1.FieldB[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameEnum) - if !ok { - that2, ok := that.(CustomNameEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return false - } - } else if this.FieldA != nil { - return false - } else if that1.FieldA != nil { - return false - } - if len(this.FieldB) != len(that1.FieldB) { - return false - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NoExtensionsMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NoExtensionsMap) - if !ok { - that2, ok := that.(NoExtensionsMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NoExtensionsMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NoExtensionsMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NoExtensionsMap but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_extensions, that1.XXX_extensions) { - return fmt.Errorf("XXX_extensions this(%v) Not Equal that(%v)", this.XXX_extensions, that1.XXX_extensions) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NoExtensionsMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NoExtensionsMap) - if !ok { - that2, ok := that.(NoExtensionsMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if !bytes.Equal(this.XXX_extensions, that1.XXX_extensions) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Unrecognized) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Unrecognized) - if !ok { - that2, ok := that.(Unrecognized) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Unrecognized") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Unrecognized but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Unrecognized but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *Unrecognized) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Unrecognized) - if !ok { - that2, ok := that.(Unrecognized) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - return true -} -func (this *UnrecognizedWithInner) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithInner) - if !ok { - that2, ok := that.(UnrecognizedWithInner) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithInner") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithInner but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithInner but is not nil && this == nil") - } - if len(this.Embedded) != len(that1.Embedded) { - return fmt.Errorf("Embedded this(%v) Not Equal that(%v)", len(this.Embedded), len(that1.Embedded)) - } - for i := range this.Embedded { - if !this.Embedded[i].Equal(that1.Embedded[i]) { - return fmt.Errorf("Embedded this[%v](%v) Not Equal that[%v](%v)", i, this.Embedded[i], i, that1.Embedded[i]) - } - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *UnrecognizedWithInner) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithInner) - if !ok { - that2, ok := that.(UnrecognizedWithInner) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Embedded) != len(that1.Embedded) { - return false - } - for i := range this.Embedded { - if !this.Embedded[i].Equal(that1.Embedded[i]) { - return false - } - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *UnrecognizedWithInner_Inner) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithInner_Inner) - if !ok { - that2, ok := that.(UnrecognizedWithInner_Inner) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithInner_Inner") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithInner_Inner but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithInner_Inner but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *UnrecognizedWithInner_Inner) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithInner_Inner) - if !ok { - that2, ok := that.(UnrecognizedWithInner_Inner) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - return true -} -func (this *UnrecognizedWithEmbed) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithEmbed) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithEmbed") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithEmbed but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithEmbed but is not nil && this == nil") - } - if !this.UnrecognizedWithEmbed_Embedded.Equal(&that1.UnrecognizedWithEmbed_Embedded) { - return fmt.Errorf("UnrecognizedWithEmbed_Embedded this(%v) Not Equal that(%v)", this.UnrecognizedWithEmbed_Embedded, that1.UnrecognizedWithEmbed_Embedded) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *UnrecognizedWithEmbed) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithEmbed) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.UnrecognizedWithEmbed_Embedded.Equal(&that1.UnrecognizedWithEmbed_Embedded) { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *UnrecognizedWithEmbed_Embedded) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithEmbed_Embedded) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed_Embedded) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithEmbed_Embedded") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithEmbed_Embedded but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithEmbed_Embedded but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *UnrecognizedWithEmbed_Embedded) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithEmbed_Embedded) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed_Embedded) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - return true -} -func (this *Node) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Node) - if !ok { - that2, ok := that.(Node) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Node") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Node but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Node but is not nil && this == nil") - } - if this.Label != nil && that1.Label != nil { - if *this.Label != *that1.Label { - return fmt.Errorf("Label this(%v) Not Equal that(%v)", *this.Label, *that1.Label) - } - } else if this.Label != nil { - return fmt.Errorf("this.Label == nil && that.Label != nil") - } else if that1.Label != nil { - return fmt.Errorf("Label this(%v) Not Equal that(%v)", this.Label, that1.Label) - } - if len(this.Children) != len(that1.Children) { - return fmt.Errorf("Children this(%v) Not Equal that(%v)", len(this.Children), len(that1.Children)) - } - for i := range this.Children { - if !this.Children[i].Equal(that1.Children[i]) { - return fmt.Errorf("Children this[%v](%v) Not Equal that[%v](%v)", i, this.Children[i], i, that1.Children[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Node) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Node) - if !ok { - that2, ok := that.(Node) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Label != nil && that1.Label != nil { - if *this.Label != *that1.Label { - return false - } - } else if this.Label != nil { - return false - } else if that1.Label != nil { - return false - } - if len(this.Children) != len(that1.Children) { - return false - } - for i := range this.Children { - if !this.Children[i].Equal(that1.Children[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NonByteCustomType) - if !ok { - that2, ok := that.(NonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") - } - if that1.Field1 == nil { - if this.Field1 != nil { - return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") - } - } else if !this.Field1.Equal(*that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NonByteCustomType) - if !ok { - that2, ok := that.(NonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Field1 == nil { - if this.Field1 != nil { - return false - } - } else if !this.Field1.Equal(*that1.Field1) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptNonByteCustomType) - if !ok { - that2, ok := that.(NidOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") - } - if !this.Field1.Equal(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptNonByteCustomType) - if !ok { - that2, ok := that.(NidOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(that1.Field1) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNonByteCustomType) - if !ok { - that2, ok := that.(NinOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") - } - if that1.Field1 == nil { - if this.Field1 != nil { - return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") - } - } else if !this.Field1.Equal(*that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNonByteCustomType) - if !ok { - that2, ok := that.(NinOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Field1 == nil { - if this.Field1 != nil { - return false - } - } else if !this.Field1.Equal(*that1.Field1) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepNonByteCustomType) - if !ok { - that2, ok := that.(NidRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepNonByteCustomType) - if !ok { - that2, ok := that.(NidRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepNonByteCustomType) - if !ok { - that2, ok := that.(NinRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepNonByteCustomType) - if !ok { - that2, ok := that.(NinRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *ProtoType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ProtoType) - if !ok { - that2, ok := that.(ProtoType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ProtoType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ProtoType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *ProtoType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ProtoType) - if !ok { - that2, ok := that.(ProtoType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() int32 - GetField4() int64 - GetField5() uint32 - GetField6() uint64 - GetField7() int32 - GetField8() int64 - GetField9() uint32 - GetField10() int32 - GetField11() uint64 - GetField12() int64 - GetField13() bool - GetField14() string - GetField15() []byte -} - -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNativeFromFace(this) -} - -func (this *NidOptNative) GetField1() float64 { - return this.Field1 -} - -func (this *NidOptNative) GetField2() float32 { - return this.Field2 -} - -func (this *NidOptNative) GetField3() int32 { - return this.Field3 -} - -func (this *NidOptNative) GetField4() int64 { - return this.Field4 -} - -func (this *NidOptNative) GetField5() uint32 { - return this.Field5 -} - -func (this *NidOptNative) GetField6() uint64 { - return this.Field6 -} - -func (this *NidOptNative) GetField7() int32 { - return this.Field7 -} - -func (this *NidOptNative) GetField8() int64 { - return this.Field8 -} - -func (this *NidOptNative) GetField9() uint32 { - return this.Field9 -} - -func (this *NidOptNative) GetField10() int32 { - return this.Field10 -} - -func (this *NidOptNative) GetField11() uint64 { - return this.Field11 -} - -func (this *NidOptNative) GetField12() int64 { - return this.Field12 -} - -func (this *NidOptNative) GetField13() bool { - return this.Field13 -} - -func (this *NidOptNative) GetField14() string { - return this.Field14 -} - -func (this *NidOptNative) GetField15() []byte { - return this.Field15 -} - -func NewNidOptNativeFromFace(that NidOptNativeFace) *NidOptNative { - this := &NidOptNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *int32 - GetField4() *int64 - GetField5() *uint32 - GetField6() *uint64 - GetField7() *int32 - GetField8() *int64 - GetField9() *uint32 - GetField10() *int32 - GetField11() *uint64 - GetField12() *int64 - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptNativeFromFace(this) -} - -func (this *NinOptNative) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptNative) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptNative) GetField3() *int32 { - return this.Field3 -} - -func (this *NinOptNative) GetField4() *int64 { - return this.Field4 -} - -func (this *NinOptNative) GetField5() *uint32 { - return this.Field5 -} - -func (this *NinOptNative) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptNative) GetField7() *int32 { - return this.Field7 -} - -func (this *NinOptNative) GetField8() *int64 { - return this.Field8 -} - -func (this *NinOptNative) GetField9() *uint32 { - return this.Field9 -} - -func (this *NinOptNative) GetField10() *int32 { - return this.Field10 -} - -func (this *NinOptNative) GetField11() *uint64 { - return this.Field11 -} - -func (this *NinOptNative) GetField12() *int64 { - return this.Field12 -} - -func (this *NinOptNative) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptNative) GetField14() *string { - return this.Field14 -} - -func (this *NinOptNative) GetField15() []byte { - return this.Field15 -} - -func NewNinOptNativeFromFace(that NinOptNativeFace) *NinOptNative { - this := &NinOptNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NidRepNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepNativeFromFace(this) -} - -func (this *NidRepNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NidRepNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NidRepNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NidRepNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NidRepNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NidRepNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NidRepNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NidRepNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NidRepNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NidRepNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NidRepNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NidRepNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NidRepNative) GetField13() []bool { - return this.Field13 -} - -func (this *NidRepNative) GetField14() []string { - return this.Field14 -} - -func (this *NidRepNative) GetField15() [][]byte { - return this.Field15 -} - -func NewNidRepNativeFromFace(that NidRepNativeFace) *NidRepNative { - this := &NidRepNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NinRepNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepNativeFromFace(this) -} - -func (this *NinRepNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NinRepNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NinRepNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NinRepNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NinRepNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NinRepNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NinRepNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NinRepNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NinRepNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NinRepNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NinRepNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NinRepNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NinRepNative) GetField13() []bool { - return this.Field13 -} - -func (this *NinRepNative) GetField14() []string { - return this.Field14 -} - -func (this *NinRepNative) GetField15() [][]byte { - return this.Field15 -} - -func NewNinRepNativeFromFace(that NinRepNativeFace) *NinRepNative { - this := &NinRepNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool -} - -func (this *NidRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepPackedNativeFromFace(this) -} - -func (this *NidRepPackedNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NidRepPackedNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NidRepPackedNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NidRepPackedNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NidRepPackedNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NidRepPackedNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NidRepPackedNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NidRepPackedNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NidRepPackedNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NidRepPackedNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NidRepPackedNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NidRepPackedNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NidRepPackedNative) GetField13() []bool { - return this.Field13 -} - -func NewNidRepPackedNativeFromFace(that NidRepPackedNativeFace) *NidRepPackedNative { - this := &NidRepPackedNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - return this -} - -type NinRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool -} - -func (this *NinRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepPackedNativeFromFace(this) -} - -func (this *NinRepPackedNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NinRepPackedNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NinRepPackedNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NinRepPackedNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NinRepPackedNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NinRepPackedNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NinRepPackedNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NinRepPackedNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NinRepPackedNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NinRepPackedNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NinRepPackedNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NinRepPackedNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NinRepPackedNative) GetField13() []bool { - return this.Field13 -} - -func NewNinRepPackedNativeFromFace(that NinRepPackedNativeFace) *NinRepPackedNative { - this := &NinRepPackedNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - return this -} - -type NidOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() NidOptNative - GetField4() NinOptNative - GetField6() uint64 - GetField7() int32 - GetField8() NidOptNative - GetField13() bool - GetField14() string - GetField15() []byte -} - -func (this *NidOptStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptStructFromFace(this) -} - -func (this *NidOptStruct) GetField1() float64 { - return this.Field1 -} - -func (this *NidOptStruct) GetField2() float32 { - return this.Field2 -} - -func (this *NidOptStruct) GetField3() NidOptNative { - return this.Field3 -} - -func (this *NidOptStruct) GetField4() NinOptNative { - return this.Field4 -} - -func (this *NidOptStruct) GetField6() uint64 { - return this.Field6 -} - -func (this *NidOptStruct) GetField7() int32 { - return this.Field7 -} - -func (this *NidOptStruct) GetField8() NidOptNative { - return this.Field8 -} - -func (this *NidOptStruct) GetField13() bool { - return this.Field13 -} - -func (this *NidOptStruct) GetField14() string { - return this.Field14 -} - -func (this *NidOptStruct) GetField15() []byte { - return this.Field15 -} - -func NewNidOptStructFromFace(that NidOptStructFace) *NidOptStruct { - this := &NidOptStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *NidOptNative - GetField4() *NinOptNative - GetField6() *uint64 - GetField7() *int32 - GetField8() *NidOptNative - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptStructFromFace(this) -} - -func (this *NinOptStruct) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptStruct) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptStruct) GetField3() *NidOptNative { - return this.Field3 -} - -func (this *NinOptStruct) GetField4() *NinOptNative { - return this.Field4 -} - -func (this *NinOptStruct) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptStruct) GetField7() *int32 { - return this.Field7 -} - -func (this *NinOptStruct) GetField8() *NidOptNative { - return this.Field8 -} - -func (this *NinOptStruct) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptStruct) GetField14() *string { - return this.Field14 -} - -func (this *NinOptStruct) GetField15() []byte { - return this.Field15 -} - -func NewNinOptStructFromFace(that NinOptStructFace) *NinOptStruct { - this := &NinOptStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []NidOptNative - GetField4() []NinOptNative - GetField6() []uint64 - GetField7() []int32 - GetField8() []NidOptNative - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NidRepStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepStructFromFace(this) -} - -func (this *NidRepStruct) GetField1() []float64 { - return this.Field1 -} - -func (this *NidRepStruct) GetField2() []float32 { - return this.Field2 -} - -func (this *NidRepStruct) GetField3() []NidOptNative { - return this.Field3 -} - -func (this *NidRepStruct) GetField4() []NinOptNative { - return this.Field4 -} - -func (this *NidRepStruct) GetField6() []uint64 { - return this.Field6 -} - -func (this *NidRepStruct) GetField7() []int32 { - return this.Field7 -} - -func (this *NidRepStruct) GetField8() []NidOptNative { - return this.Field8 -} - -func (this *NidRepStruct) GetField13() []bool { - return this.Field13 -} - -func (this *NidRepStruct) GetField14() []string { - return this.Field14 -} - -func (this *NidRepStruct) GetField15() [][]byte { - return this.Field15 -} - -func NewNidRepStructFromFace(that NidRepStructFace) *NidRepStruct { - this := &NidRepStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []*NidOptNative - GetField4() []*NinOptNative - GetField6() []uint64 - GetField7() []int32 - GetField8() []*NidOptNative - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NinRepStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepStructFromFace(this) -} - -func (this *NinRepStruct) GetField1() []float64 { - return this.Field1 -} - -func (this *NinRepStruct) GetField2() []float32 { - return this.Field2 -} - -func (this *NinRepStruct) GetField3() []*NidOptNative { - return this.Field3 -} - -func (this *NinRepStruct) GetField4() []*NinOptNative { - return this.Field4 -} - -func (this *NinRepStruct) GetField6() []uint64 { - return this.Field6 -} - -func (this *NinRepStruct) GetField7() []int32 { - return this.Field7 -} - -func (this *NinRepStruct) GetField8() []*NidOptNative { - return this.Field8 -} - -func (this *NinRepStruct) GetField13() []bool { - return this.Field13 -} - -func (this *NinRepStruct) GetField14() []string { - return this.Field14 -} - -func (this *NinRepStruct) GetField15() [][]byte { - return this.Field15 -} - -func NewNinRepStructFromFace(that NinRepStructFace) *NinRepStruct { - this := &NinRepStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetField200() NidOptNative - GetField210() bool -} - -func (this *NidEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidEmbeddedStructFromFace(this) -} - -func (this *NidEmbeddedStruct) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *NidEmbeddedStruct) GetField200() NidOptNative { - return this.Field200 -} - -func (this *NidEmbeddedStruct) GetField210() bool { - return this.Field210 -} - -func NewNidEmbeddedStructFromFace(that NidEmbeddedStructFace) *NidEmbeddedStruct { - this := &NidEmbeddedStruct{} - this.NidOptNative = that.GetNidOptNative() - this.Field200 = that.GetField200() - this.Field210 = that.GetField210() - return this -} - -type NinEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetField200() *NidOptNative - GetField210() *bool -} - -func (this *NinEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinEmbeddedStructFromFace(this) -} - -func (this *NinEmbeddedStruct) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *NinEmbeddedStruct) GetField200() *NidOptNative { - return this.Field200 -} - -func (this *NinEmbeddedStruct) GetField210() *bool { - return this.Field210 -} - -func NewNinEmbeddedStructFromFace(that NinEmbeddedStructFace) *NinEmbeddedStruct { - this := &NinEmbeddedStruct{} - this.NidOptNative = that.GetNidOptNative() - this.Field200 = that.GetField200() - this.Field210 = that.GetField210() - return this -} - -type NidNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() NidOptStruct - GetField2() []NidRepStruct -} - -func (this *NidNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidNestedStructFromFace(this) -} - -func (this *NidNestedStruct) GetField1() NidOptStruct { - return this.Field1 -} - -func (this *NidNestedStruct) GetField2() []NidRepStruct { - return this.Field2 -} - -func NewNidNestedStructFromFace(that NidNestedStructFace) *NidNestedStruct { - this := &NidNestedStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - return this -} - -type NinNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *NinOptStruct - GetField2() []*NinRepStruct -} - -func (this *NinNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinNestedStructFromFace(this) -} - -func (this *NinNestedStruct) GetField1() *NinOptStruct { - return this.Field1 -} - -func (this *NinNestedStruct) GetField2() []*NinRepStruct { - return this.Field2 -} - -func NewNinNestedStructFromFace(that NinNestedStructFace) *NinNestedStruct { - this := &NinNestedStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - return this -} - -type NidOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() Uuid - GetValue() github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NidOptCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptCustomFromFace(this) -} - -func (this *NidOptCustom) GetId() Uuid { - return this.Id -} - -func (this *NidOptCustom) GetValue() github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNidOptCustomFromFace(that NidOptCustomFace) *NidOptCustom { - this := &NidOptCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type CustomDashFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes -} - -func (this *CustomDash) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomDash) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomDashFromFace(this) -} - -func (this *CustomDash) GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes { - return this.Value -} - -func NewCustomDashFromFace(that CustomDashFace) *CustomDash { - this := &CustomDash{} - this.Value = that.GetValue() - return this -} - -type NinOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() *Uuid - GetValue() *github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NinOptCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptCustomFromFace(this) -} - -func (this *NinOptCustom) GetId() *Uuid { - return this.Id -} - -func (this *NinOptCustom) GetValue() *github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNinOptCustomFromFace(that NinOptCustomFace) *NinOptCustom { - this := &NinOptCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type NidRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() []Uuid - GetValue() []github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NidRepCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepCustomFromFace(this) -} - -func (this *NidRepCustom) GetId() []Uuid { - return this.Id -} - -func (this *NidRepCustom) GetValue() []github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNidRepCustomFromFace(that NidRepCustomFace) *NidRepCustom { - this := &NidRepCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type NinRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() []Uuid - GetValue() []github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NinRepCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepCustomFromFace(this) -} - -func (this *NinRepCustom) GetId() []Uuid { - return this.Id -} - -func (this *NinRepCustom) GetValue() []github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNinRepCustomFromFace(that NinRepCustomFace) *NinRepCustom { - this := &NinRepCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type NinOptNativeUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *int32 - GetField4() *int64 - GetField5() *uint32 - GetField6() *uint64 - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptNativeUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptNativeUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptNativeUnionFromFace(this) -} - -func (this *NinOptNativeUnion) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptNativeUnion) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptNativeUnion) GetField3() *int32 { - return this.Field3 -} - -func (this *NinOptNativeUnion) GetField4() *int64 { - return this.Field4 -} - -func (this *NinOptNativeUnion) GetField5() *uint32 { - return this.Field5 -} - -func (this *NinOptNativeUnion) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptNativeUnion) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptNativeUnion) GetField14() *string { - return this.Field14 -} - -func (this *NinOptNativeUnion) GetField15() []byte { - return this.Field15 -} - -func NewNinOptNativeUnionFromFace(that NinOptNativeUnionFace) *NinOptNativeUnion { - this := &NinOptNativeUnion{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinOptStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *NidOptNative - GetField4() *NinOptNative - GetField6() *uint64 - GetField7() *int32 - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptStructUnionFromFace(this) -} - -func (this *NinOptStructUnion) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptStructUnion) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptStructUnion) GetField3() *NidOptNative { - return this.Field3 -} - -func (this *NinOptStructUnion) GetField4() *NinOptNative { - return this.Field4 -} - -func (this *NinOptStructUnion) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptStructUnion) GetField7() *int32 { - return this.Field7 -} - -func (this *NinOptStructUnion) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptStructUnion) GetField14() *string { - return this.Field14 -} - -func (this *NinOptStructUnion) GetField15() []byte { - return this.Field15 -} - -func NewNinOptStructUnionFromFace(that NinOptStructUnionFace) *NinOptStructUnion { - this := &NinOptStructUnion{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetField200() *NinOptNative - GetField210() *bool -} - -func (this *NinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinEmbeddedStructUnionFromFace(this) -} - -func (this *NinEmbeddedStructUnion) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *NinEmbeddedStructUnion) GetField200() *NinOptNative { - return this.Field200 -} - -func (this *NinEmbeddedStructUnion) GetField210() *bool { - return this.Field210 -} - -func NewNinEmbeddedStructUnionFromFace(that NinEmbeddedStructUnionFace) *NinEmbeddedStructUnion { - this := &NinEmbeddedStructUnion{} - this.NidOptNative = that.GetNidOptNative() - this.Field200 = that.GetField200() - this.Field210 = that.GetField210() - return this -} - -type NinNestedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *NinOptNativeUnion - GetField2() *NinOptStructUnion - GetField3() *NinEmbeddedStructUnion -} - -func (this *NinNestedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinNestedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinNestedStructUnionFromFace(this) -} - -func (this *NinNestedStructUnion) GetField1() *NinOptNativeUnion { - return this.Field1 -} - -func (this *NinNestedStructUnion) GetField2() *NinOptStructUnion { - return this.Field2 -} - -func (this *NinNestedStructUnion) GetField3() *NinEmbeddedStructUnion { - return this.Field3 -} - -func NewNinNestedStructUnionFromFace(that NinNestedStructUnionFace) *NinNestedStructUnion { - this := &NinNestedStructUnion{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type TreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetOr() *OrBranch - GetAnd() *AndBranch - GetLeaf() *Leaf -} - -func (this *Tree) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Tree) TestProto() github_com_gogo_protobuf_proto.Message { - return NewTreeFromFace(this) -} - -func (this *Tree) GetOr() *OrBranch { - return this.Or -} - -func (this *Tree) GetAnd() *AndBranch { - return this.And -} - -func (this *Tree) GetLeaf() *Leaf { - return this.Leaf -} - -func NewTreeFromFace(that TreeFace) *Tree { - this := &Tree{} - this.Or = that.GetOr() - this.And = that.GetAnd() - this.Leaf = that.GetLeaf() - return this -} - -type OrBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() Tree - GetRight() Tree -} - -func (this *OrBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *OrBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewOrBranchFromFace(this) -} - -func (this *OrBranch) GetLeft() Tree { - return this.Left -} - -func (this *OrBranch) GetRight() Tree { - return this.Right -} - -func NewOrBranchFromFace(that OrBranchFace) *OrBranch { - this := &OrBranch{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type AndBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() Tree - GetRight() Tree -} - -func (this *AndBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AndBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAndBranchFromFace(this) -} - -func (this *AndBranch) GetLeft() Tree { - return this.Left -} - -func (this *AndBranch) GetRight() Tree { - return this.Right -} - -func NewAndBranchFromFace(that AndBranchFace) *AndBranch { - this := &AndBranch{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type LeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetValue() int64 - GetStrValue() string -} - -func (this *Leaf) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Leaf) TestProto() github_com_gogo_protobuf_proto.Message { - return NewLeafFromFace(this) -} - -func (this *Leaf) GetValue() int64 { - return this.Value -} - -func (this *Leaf) GetStrValue() string { - return this.StrValue -} - -func NewLeafFromFace(that LeafFace) *Leaf { - this := &Leaf{} - this.Value = that.GetValue() - this.StrValue = that.GetStrValue() - return this -} - -type DeepTreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetDown() *ADeepBranch - GetAnd() *AndDeepBranch - GetLeaf() *DeepLeaf -} - -func (this *DeepTree) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *DeepTree) TestProto() github_com_gogo_protobuf_proto.Message { - return NewDeepTreeFromFace(this) -} - -func (this *DeepTree) GetDown() *ADeepBranch { - return this.Down -} - -func (this *DeepTree) GetAnd() *AndDeepBranch { - return this.And -} - -func (this *DeepTree) GetLeaf() *DeepLeaf { - return this.Leaf -} - -func NewDeepTreeFromFace(that DeepTreeFace) *DeepTree { - this := &DeepTree{} - this.Down = that.GetDown() - this.And = that.GetAnd() - this.Leaf = that.GetLeaf() - return this -} - -type ADeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetDown() DeepTree -} - -func (this *ADeepBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ADeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewADeepBranchFromFace(this) -} - -func (this *ADeepBranch) GetDown() DeepTree { - return this.Down -} - -func NewADeepBranchFromFace(that ADeepBranchFace) *ADeepBranch { - this := &ADeepBranch{} - this.Down = that.GetDown() - return this -} - -type AndDeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() DeepTree - GetRight() DeepTree -} - -func (this *AndDeepBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AndDeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAndDeepBranchFromFace(this) -} - -func (this *AndDeepBranch) GetLeft() DeepTree { - return this.Left -} - -func (this *AndDeepBranch) GetRight() DeepTree { - return this.Right -} - -func NewAndDeepBranchFromFace(that AndDeepBranchFace) *AndDeepBranch { - this := &AndDeepBranch{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type DeepLeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetTree() Tree -} - -func (this *DeepLeaf) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *DeepLeaf) TestProto() github_com_gogo_protobuf_proto.Message { - return NewDeepLeafFromFace(this) -} - -func (this *DeepLeaf) GetTree() Tree { - return this.Tree -} - -func NewDeepLeafFromFace(that DeepLeafFace) *DeepLeaf { - this := &DeepLeaf{} - this.Tree = that.GetTree() - return this -} - -type NilFace interface { - Proto() github_com_gogo_protobuf_proto.Message -} - -func (this *Nil) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Nil) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNilFromFace(this) -} - -func NewNilFromFace(that NilFace) *Nil { - this := &Nil{} - return this -} - -type NidOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() TheTestEnum -} - -func (this *NidOptEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptEnumFromFace(this) -} - -func (this *NidOptEnum) GetField1() TheTestEnum { - return this.Field1 -} - -func NewNidOptEnumFromFace(that NidOptEnumFace) *NidOptEnum { - this := &NidOptEnum{} - this.Field1 = that.GetField1() - return this -} - -type NinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *TheTestEnum - GetField2() *YetAnotherTestEnum - GetField3() *YetYetAnotherTestEnum -} - -func (this *NinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptEnumFromFace(this) -} - -func (this *NinOptEnum) GetField1() *TheTestEnum { - return this.Field1 -} - -func (this *NinOptEnum) GetField2() *YetAnotherTestEnum { - return this.Field2 -} - -func (this *NinOptEnum) GetField3() *YetYetAnotherTestEnum { - return this.Field3 -} - -func NewNinOptEnumFromFace(that NinOptEnumFace) *NinOptEnum { - this := &NinOptEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type NidRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []TheTestEnum - GetField2() []YetAnotherTestEnum - GetField3() []YetYetAnotherTestEnum -} - -func (this *NidRepEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepEnumFromFace(this) -} - -func (this *NidRepEnum) GetField1() []TheTestEnum { - return this.Field1 -} - -func (this *NidRepEnum) GetField2() []YetAnotherTestEnum { - return this.Field2 -} - -func (this *NidRepEnum) GetField3() []YetYetAnotherTestEnum { - return this.Field3 -} - -func NewNidRepEnumFromFace(that NidRepEnumFace) *NidRepEnum { - this := &NidRepEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type NinRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []TheTestEnum - GetField2() []YetAnotherTestEnum - GetField3() []YetYetAnotherTestEnum -} - -func (this *NinRepEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepEnumFromFace(this) -} - -func (this *NinRepEnum) GetField1() []TheTestEnum { - return this.Field1 -} - -func (this *NinRepEnum) GetField2() []YetAnotherTestEnum { - return this.Field2 -} - -func (this *NinRepEnum) GetField3() []YetYetAnotherTestEnum { - return this.Field3 -} - -func NewNinRepEnumFromFace(that NinRepEnumFace) *NinRepEnum { - this := &NinRepEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type AnotherNinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *AnotherTestEnum - GetField2() *YetAnotherTestEnum - GetField3() *YetYetAnotherTestEnum -} - -func (this *AnotherNinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AnotherNinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAnotherNinOptEnumFromFace(this) -} - -func (this *AnotherNinOptEnum) GetField1() *AnotherTestEnum { - return this.Field1 -} - -func (this *AnotherNinOptEnum) GetField2() *YetAnotherTestEnum { - return this.Field2 -} - -func (this *AnotherNinOptEnum) GetField3() *YetYetAnotherTestEnum { - return this.Field3 -} - -func NewAnotherNinOptEnumFromFace(that AnotherNinOptEnumFace) *AnotherNinOptEnum { - this := &AnotherNinOptEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type TimerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetTime1() int64 - GetTime2() int64 - GetData() []byte -} - -func (this *Timer) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Timer) TestProto() github_com_gogo_protobuf_proto.Message { - return NewTimerFromFace(this) -} - -func (this *Timer) GetTime1() int64 { - return this.Time1 -} - -func (this *Timer) GetTime2() int64 { - return this.Time2 -} - -func (this *Timer) GetData() []byte { - return this.Data -} - -func NewTimerFromFace(that TimerFace) *Timer { - this := &Timer{} - this.Time1 = that.GetTime1() - this.Time2 = that.GetTime2() - this.Data = that.GetData() - return this -} - -type NestedDefinitionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *int64 - GetEnumField() *NestedDefinition_NestedEnum - GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg - GetNM() *NestedDefinition_NestedMessage -} - -func (this *NestedDefinition) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedDefinition) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedDefinitionFromFace(this) -} - -func (this *NestedDefinition) GetField1() *int64 { - return this.Field1 -} - -func (this *NestedDefinition) GetEnumField() *NestedDefinition_NestedEnum { - return this.EnumField -} - -func (this *NestedDefinition) GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg { - return this.NNM -} - -func (this *NestedDefinition) GetNM() *NestedDefinition_NestedMessage { - return this.NM -} - -func NewNestedDefinitionFromFace(that NestedDefinitionFace) *NestedDefinition { - this := &NestedDefinition{} - this.Field1 = that.GetField1() - this.EnumField = that.GetEnumField() - this.NNM = that.GetNNM() - this.NM = that.GetNM() - return this -} - -type NestedDefinition_NestedMessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNestedField1() *uint64 - GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg -} - -func (this *NestedDefinition_NestedMessage) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedDefinition_NestedMessage) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedDefinition_NestedMessageFromFace(this) -} - -func (this *NestedDefinition_NestedMessage) GetNestedField1() *uint64 { - return this.NestedField1 -} - -func (this *NestedDefinition_NestedMessage) GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg { - return this.NNM -} - -func NewNestedDefinition_NestedMessageFromFace(that NestedDefinition_NestedMessageFace) *NestedDefinition_NestedMessage { - this := &NestedDefinition_NestedMessage{} - this.NestedField1 = that.GetNestedField1() - this.NNM = that.GetNNM() - return this -} - -type NestedDefinition_NestedMessage_NestedNestedMsgFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNestedNestedField1() *string -} - -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(this) -} - -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) GetNestedNestedField1() *string { - return this.NestedNestedField1 -} - -func NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(that NestedDefinition_NestedMessage_NestedNestedMsgFace) *NestedDefinition_NestedMessage_NestedNestedMsg { - this := &NestedDefinition_NestedMessage_NestedNestedMsg{} - this.NestedNestedField1 = that.GetNestedNestedField1() - return this -} - -type NestedScopeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetA() *NestedDefinition_NestedMessage_NestedNestedMsg - GetB() *NestedDefinition_NestedEnum - GetC() *NestedDefinition_NestedMessage -} - -func (this *NestedScope) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedScope) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedScopeFromFace(this) -} - -func (this *NestedScope) GetA() *NestedDefinition_NestedMessage_NestedNestedMsg { - return this.A -} - -func (this *NestedScope) GetB() *NestedDefinition_NestedEnum { - return this.B -} - -func (this *NestedScope) GetC() *NestedDefinition_NestedMessage { - return this.C -} - -func NewNestedScopeFromFace(that NestedScopeFace) *NestedScope { - this := &NestedScope{} - this.A = that.GetA() - this.B = that.GetB() - this.C = that.GetC() - return this -} - -type CustomContainerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetCustomStruct() NidOptCustom -} - -func (this *CustomContainer) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomContainer) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomContainerFromFace(this) -} - -func (this *CustomContainer) GetCustomStruct() NidOptCustom { - return this.CustomStruct -} - -func NewCustomContainerFromFace(that CustomContainerFace) *CustomContainer { - this := &CustomContainer{} - this.CustomStruct = that.GetCustomStruct() - return this -} - -type CustomNameNidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() float64 - GetFieldB() float32 - GetFieldC() int32 - GetFieldD() int64 - GetFieldE() uint32 - GetFieldF() uint64 - GetFieldG() int32 - GetFieldH() int64 - GetFieldI() uint32 - GetFieldJ() int32 - GetFieldK() uint64 - GetFieldL() int64 - GetFieldM() bool - GetFieldN() string - GetFieldO() []byte -} - -func (this *CustomNameNidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNidOptNativeFromFace(this) -} - -func (this *CustomNameNidOptNative) GetFieldA() float64 { - return this.FieldA -} - -func (this *CustomNameNidOptNative) GetFieldB() float32 { - return this.FieldB -} - -func (this *CustomNameNidOptNative) GetFieldC() int32 { - return this.FieldC -} - -func (this *CustomNameNidOptNative) GetFieldD() int64 { - return this.FieldD -} - -func (this *CustomNameNidOptNative) GetFieldE() uint32 { - return this.FieldE -} - -func (this *CustomNameNidOptNative) GetFieldF() uint64 { - return this.FieldF -} - -func (this *CustomNameNidOptNative) GetFieldG() int32 { - return this.FieldG -} - -func (this *CustomNameNidOptNative) GetFieldH() int64 { - return this.FieldH -} - -func (this *CustomNameNidOptNative) GetFieldI() uint32 { - return this.FieldI -} - -func (this *CustomNameNidOptNative) GetFieldJ() int32 { - return this.FieldJ -} - -func (this *CustomNameNidOptNative) GetFieldK() uint64 { - return this.FieldK -} - -func (this *CustomNameNidOptNative) GetFieldL() int64 { - return this.FieldL -} - -func (this *CustomNameNidOptNative) GetFieldM() bool { - return this.FieldM -} - -func (this *CustomNameNidOptNative) GetFieldN() string { - return this.FieldN -} - -func (this *CustomNameNidOptNative) GetFieldO() []byte { - return this.FieldO -} - -func NewCustomNameNidOptNativeFromFace(that CustomNameNidOptNativeFace) *CustomNameNidOptNative { - this := &CustomNameNidOptNative{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - this.FieldK = that.GetFieldK() - this.FieldL = that.GetFieldL() - this.FieldM = that.GetFieldM() - this.FieldN = that.GetFieldN() - this.FieldO = that.GetFieldO() - return this -} - -type CustomNameNinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *float64 - GetFieldB() *float32 - GetFieldC() *int32 - GetFieldD() *int64 - GetFieldE() *uint32 - GetFieldF() *uint64 - GetFieldG() *int32 - GetFieldH() *int64 - GetFieldI() *uint32 - GetFieldJ() *int32 - GetFieldK() *uint64 - GetFielL() *int64 - GetFieldM() *bool - GetFieldN() *string - GetFieldO() []byte -} - -func (this *CustomNameNinOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinOptNativeFromFace(this) -} - -func (this *CustomNameNinOptNative) GetFieldA() *float64 { - return this.FieldA -} - -func (this *CustomNameNinOptNative) GetFieldB() *float32 { - return this.FieldB -} - -func (this *CustomNameNinOptNative) GetFieldC() *int32 { - return this.FieldC -} - -func (this *CustomNameNinOptNative) GetFieldD() *int64 { - return this.FieldD -} - -func (this *CustomNameNinOptNative) GetFieldE() *uint32 { - return this.FieldE -} - -func (this *CustomNameNinOptNative) GetFieldF() *uint64 { - return this.FieldF -} - -func (this *CustomNameNinOptNative) GetFieldG() *int32 { - return this.FieldG -} - -func (this *CustomNameNinOptNative) GetFieldH() *int64 { - return this.FieldH -} - -func (this *CustomNameNinOptNative) GetFieldI() *uint32 { - return this.FieldI -} - -func (this *CustomNameNinOptNative) GetFieldJ() *int32 { - return this.FieldJ -} - -func (this *CustomNameNinOptNative) GetFieldK() *uint64 { - return this.FieldK -} - -func (this *CustomNameNinOptNative) GetFielL() *int64 { - return this.FielL -} - -func (this *CustomNameNinOptNative) GetFieldM() *bool { - return this.FieldM -} - -func (this *CustomNameNinOptNative) GetFieldN() *string { - return this.FieldN -} - -func (this *CustomNameNinOptNative) GetFieldO() []byte { - return this.FieldO -} - -func NewCustomNameNinOptNativeFromFace(that CustomNameNinOptNativeFace) *CustomNameNinOptNative { - this := &CustomNameNinOptNative{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - this.FieldK = that.GetFieldK() - this.FielL = that.GetFielL() - this.FieldM = that.GetFieldM() - this.FieldN = that.GetFieldN() - this.FieldO = that.GetFieldO() - return this -} - -type CustomNameNinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() []float64 - GetFieldB() []float32 - GetFieldC() []int32 - GetFieldD() []int64 - GetFieldE() []uint32 - GetFieldF() []uint64 - GetFieldG() []int32 - GetFieldH() []int64 - GetFieldI() []uint32 - GetFieldJ() []int32 - GetFieldK() []uint64 - GetFieldL() []int64 - GetFieldM() []bool - GetFieldN() []string - GetFieldO() [][]byte -} - -func (this *CustomNameNinRepNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinRepNativeFromFace(this) -} - -func (this *CustomNameNinRepNative) GetFieldA() []float64 { - return this.FieldA -} - -func (this *CustomNameNinRepNative) GetFieldB() []float32 { - return this.FieldB -} - -func (this *CustomNameNinRepNative) GetFieldC() []int32 { - return this.FieldC -} - -func (this *CustomNameNinRepNative) GetFieldD() []int64 { - return this.FieldD -} - -func (this *CustomNameNinRepNative) GetFieldE() []uint32 { - return this.FieldE -} - -func (this *CustomNameNinRepNative) GetFieldF() []uint64 { - return this.FieldF -} - -func (this *CustomNameNinRepNative) GetFieldG() []int32 { - return this.FieldG -} - -func (this *CustomNameNinRepNative) GetFieldH() []int64 { - return this.FieldH -} - -func (this *CustomNameNinRepNative) GetFieldI() []uint32 { - return this.FieldI -} - -func (this *CustomNameNinRepNative) GetFieldJ() []int32 { - return this.FieldJ -} - -func (this *CustomNameNinRepNative) GetFieldK() []uint64 { - return this.FieldK -} - -func (this *CustomNameNinRepNative) GetFieldL() []int64 { - return this.FieldL -} - -func (this *CustomNameNinRepNative) GetFieldM() []bool { - return this.FieldM -} - -func (this *CustomNameNinRepNative) GetFieldN() []string { - return this.FieldN -} - -func (this *CustomNameNinRepNative) GetFieldO() [][]byte { - return this.FieldO -} - -func NewCustomNameNinRepNativeFromFace(that CustomNameNinRepNativeFace) *CustomNameNinRepNative { - this := &CustomNameNinRepNative{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - this.FieldK = that.GetFieldK() - this.FieldL = that.GetFieldL() - this.FieldM = that.GetFieldM() - this.FieldN = that.GetFieldN() - this.FieldO = that.GetFieldO() - return this -} - -type CustomNameNinStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *float64 - GetFieldB() *float32 - GetFieldC() *NidOptNative - GetFieldD() []*NinOptNative - GetFieldE() *uint64 - GetFieldF() *int32 - GetFieldG() *NidOptNative - GetFieldH() *bool - GetFieldI() *string - GetFieldJ() []byte -} - -func (this *CustomNameNinStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinStructFromFace(this) -} - -func (this *CustomNameNinStruct) GetFieldA() *float64 { - return this.FieldA -} - -func (this *CustomNameNinStruct) GetFieldB() *float32 { - return this.FieldB -} - -func (this *CustomNameNinStruct) GetFieldC() *NidOptNative { - return this.FieldC -} - -func (this *CustomNameNinStruct) GetFieldD() []*NinOptNative { - return this.FieldD -} - -func (this *CustomNameNinStruct) GetFieldE() *uint64 { - return this.FieldE -} - -func (this *CustomNameNinStruct) GetFieldF() *int32 { - return this.FieldF -} - -func (this *CustomNameNinStruct) GetFieldG() *NidOptNative { - return this.FieldG -} - -func (this *CustomNameNinStruct) GetFieldH() *bool { - return this.FieldH -} - -func (this *CustomNameNinStruct) GetFieldI() *string { - return this.FieldI -} - -func (this *CustomNameNinStruct) GetFieldJ() []byte { - return this.FieldJ -} - -func NewCustomNameNinStructFromFace(that CustomNameNinStructFace) *CustomNameNinStruct { - this := &CustomNameNinStruct{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - return this -} - -type CustomNameCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *Uuid - GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 - GetFieldC() []Uuid - GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *CustomNameCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameCustomTypeFromFace(this) -} - -func (this *CustomNameCustomType) GetFieldA() *Uuid { - return this.FieldA -} - -func (this *CustomNameCustomType) GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 { - return this.FieldB -} - -func (this *CustomNameCustomType) GetFieldC() []Uuid { - return this.FieldC -} - -func (this *CustomNameCustomType) GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 { - return this.FieldD -} - -func NewCustomNameCustomTypeFromFace(that CustomNameCustomTypeFace) *CustomNameCustomType { - this := &CustomNameCustomType{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - return this -} - -type CustomNameNinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetFieldA() *NinOptNative - GetFieldB() *bool -} - -func (this *CustomNameNinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinEmbeddedStructUnionFromFace(this) -} - -func (this *CustomNameNinEmbeddedStructUnion) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *CustomNameNinEmbeddedStructUnion) GetFieldA() *NinOptNative { - return this.FieldA -} - -func (this *CustomNameNinEmbeddedStructUnion) GetFieldB() *bool { - return this.FieldB -} - -func NewCustomNameNinEmbeddedStructUnionFromFace(that CustomNameNinEmbeddedStructUnionFace) *CustomNameNinEmbeddedStructUnion { - this := &CustomNameNinEmbeddedStructUnion{} - this.NidOptNative = that.GetNidOptNative() - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - return this -} - -type CustomNameEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *TheTestEnum - GetFieldB() []TheTestEnum -} - -func (this *CustomNameEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameEnumFromFace(this) -} - -func (this *CustomNameEnum) GetFieldA() *TheTestEnum { - return this.FieldA -} - -func (this *CustomNameEnum) GetFieldB() []TheTestEnum { - return this.FieldB -} - -func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum { - this := &CustomNameEnum{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - return this -} - -type UnrecognizedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *string -} - -func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedFromFace(this) -} - -func (this *Unrecognized) GetField1() *string { - return this.Field1 -} - -func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized { - this := &Unrecognized{} - this.Field1 = that.GetField1() - return this -} - -type UnrecognizedWithInnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetEmbedded() []*UnrecognizedWithInner_Inner - GetField2() *string -} - -func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithInnerFromFace(this) -} - -func (this *UnrecognizedWithInner) GetEmbedded() []*UnrecognizedWithInner_Inner { - return this.Embedded -} - -func (this *UnrecognizedWithInner) GetField2() *string { - return this.Field2 -} - -func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *UnrecognizedWithInner { - this := &UnrecognizedWithInner{} - this.Embedded = that.GetEmbedded() - this.Field2 = that.GetField2() - return this -} - -type UnrecognizedWithInner_InnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *uint32 -} - -func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithInner_InnerFromFace(this) -} - -func (this *UnrecognizedWithInner_Inner) GetField1() *uint32 { - return this.Field1 -} - -func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace) *UnrecognizedWithInner_Inner { - this := &UnrecognizedWithInner_Inner{} - this.Field1 = that.GetField1() - return this -} - -type UnrecognizedWithEmbedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded - GetField2() *string -} - -func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbedFromFace(this) -} - -func (this *UnrecognizedWithEmbed) GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded { - return this.UnrecognizedWithEmbed_Embedded -} - -func (this *UnrecognizedWithEmbed) GetField2() *string { - return this.Field2 -} - -func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *UnrecognizedWithEmbed { - this := &UnrecognizedWithEmbed{} - this.UnrecognizedWithEmbed_Embedded = that.GetUnrecognizedWithEmbed_Embedded() - this.Field2 = that.GetField2() - return this -} - -type UnrecognizedWithEmbed_EmbeddedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *uint32 -} - -func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) -} - -func (this *UnrecognizedWithEmbed_Embedded) GetField1() *uint32 { - return this.Field1 -} - -func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_EmbeddedFace) *UnrecognizedWithEmbed_Embedded { - this := &UnrecognizedWithEmbed_Embedded{} - this.Field1 = that.GetField1() - return this -} - -type NodeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLabel() *string - GetChildren() []*Node -} - -func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNodeFromFace(this) -} - -func (this *Node) GetLabel() *string { - return this.Label -} - -func (this *Node) GetChildren() []*Node { - return this.Children -} - -func NewNodeFromFace(that NodeFace) *Node { - this := &Node{} - this.Label = that.GetLabel() - this.Children = that.GetChildren() - return this -} - -type NonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *T -} - -func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNonByteCustomTypeFromFace(this) -} - -func (this *NonByteCustomType) GetField1() *T { - return this.Field1 -} - -func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { - this := &NonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NidOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() T -} - -func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNonByteCustomTypeFromFace(this) -} - -func (this *NidOptNonByteCustomType) GetField1() T { - return this.Field1 -} - -func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { - this := &NidOptNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NinOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *T -} - -func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptNonByteCustomTypeFromFace(this) -} - -func (this *NinOptNonByteCustomType) GetField1() *T { - return this.Field1 -} - -func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { - this := &NinOptNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NidRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []T -} - -func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepNonByteCustomTypeFromFace(this) -} - -func (this *NidRepNonByteCustomType) GetField1() []T { - return this.Field1 -} - -func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { - this := &NidRepNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NinRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []T -} - -func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepNonByteCustomTypeFromFace(this) -} - -func (this *NinRepNonByteCustomType) GetField1() []T { - return this.Field1 -} - -func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { - this := &NinRepNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type ProtoTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField2() *string -} - -func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewProtoTypeFromFace(this) -} - -func (this *ProtoType) GetField2() *string { - return this.Field2 -} - -func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { - this := &ProtoType{} - this.Field2 = that.GetField2() - return this -} - -func (this *NidOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NidOptNative{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NinOptNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+valueToGoStringThetest(this.Field8, "int64")+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+valueToGoStringThetest(this.Field9, "uint32")+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+valueToGoStringThetest(this.Field10, "int32")+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+valueToGoStringThetest(this.Field11, "uint64")+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+valueToGoStringThetest(this.Field12, "int64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NidRepNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NinRepNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepPackedNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 17) - s = append(s, "&test.NidRepPackedNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepPackedNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 17) - s = append(s, "&test.NinRepPackedNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NidOptStruct{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - s = append(s, "Field3: "+strings.Replace(this.Field3.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field4: "+strings.Replace(this.Field4.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - s = append(s, "Field8: "+strings.Replace(this.Field8.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NinOptStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NidRepStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NinRepStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidEmbeddedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NidEmbeddedStruct{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - s = append(s, "Field200: "+strings.Replace(this.Field200.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field210: "+fmt.Sprintf("%#v", this.Field210)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinEmbeddedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinEmbeddedStruct{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - if this.Field200 != nil { - s = append(s, "Field200: "+fmt.Sprintf("%#v", this.Field200)+",\n") - } - if this.Field210 != nil { - s = append(s, "Field210: "+valueToGoStringThetest(this.Field210, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidNestedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NidNestedStruct{") - s = append(s, "Field1: "+strings.Replace(this.Field1.GoString(), `&`, ``, 1)+",\n") - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinNestedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NinNestedStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NidOptCustom{") - s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n") - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomDash) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.CustomDash{") - if this.Value != nil { - s = append(s, "Value: "+valueToGoStringThetest(this.Value, "github_com_gogo_protobuf_test_custom_dash_type.Bytes")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NinOptCustom{") - if this.Id != nil { - s = append(s, "Id: "+valueToGoStringThetest(this.Id, "Uuid")+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+valueToGoStringThetest(this.Value, "github_com_gogo_protobuf_test_custom.Uint128")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NidRepCustom{") - if this.Id != nil { - s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NinRepCustom{") - if this.Id != nil { - s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNativeUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 13) - s = append(s, "&test.NinOptNativeUnion{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 13) - s = append(s, "&test.NinOptStructUnion{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinEmbeddedStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinEmbeddedStructUnion{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - if this.Field200 != nil { - s = append(s, "Field200: "+fmt.Sprintf("%#v", this.Field200)+",\n") - } - if this.Field210 != nil { - s = append(s, "Field210: "+valueToGoStringThetest(this.Field210, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinNestedStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinNestedStructUnion{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Tree) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.Tree{") - if this.Or != nil { - s = append(s, "Or: "+fmt.Sprintf("%#v", this.Or)+",\n") - } - if this.And != nil { - s = append(s, "And: "+fmt.Sprintf("%#v", this.And)+",\n") - } - if this.Leaf != nil { - s = append(s, "Leaf: "+fmt.Sprintf("%#v", this.Leaf)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *OrBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.OrBranch{") - s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AndBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.AndBranch{") - s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Leaf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.Leaf{") - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - s = append(s, "StrValue: "+fmt.Sprintf("%#v", this.StrValue)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *DeepTree) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.DeepTree{") - if this.Down != nil { - s = append(s, "Down: "+fmt.Sprintf("%#v", this.Down)+",\n") - } - if this.And != nil { - s = append(s, "And: "+fmt.Sprintf("%#v", this.And)+",\n") - } - if this.Leaf != nil { - s = append(s, "Leaf: "+fmt.Sprintf("%#v", this.Leaf)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ADeepBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.ADeepBranch{") - s = append(s, "Down: "+strings.Replace(this.Down.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AndDeepBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.AndDeepBranch{") - s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *DeepLeaf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.DeepLeaf{") - s = append(s, "Tree: "+strings.Replace(this.Tree.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Nil) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 4) - s = append(s, "&test.Nil{") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NidOptEnum{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinOptEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NidRepEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinRepEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptEnumDefault) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinOptEnumDefault{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AnotherNinOptEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.AnotherNinOptEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AnotherNinOptEnumDefault) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.AnotherNinOptEnumDefault{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Timer) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.Timer{") - s = append(s, "Time1: "+fmt.Sprintf("%#v", this.Time1)+",\n") - s = append(s, "Time2: "+fmt.Sprintf("%#v", this.Time2)+",\n") - s = append(s, "Data: "+fmt.Sprintf("%#v", this.Data)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *MyExtendable) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.MyExtendable{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") - } - s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *OtherExtenable) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.OtherExtenable{") - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "int64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "int64")+",\n") - } - if this.M != nil { - s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") - } - s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedDefinition) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&test.NestedDefinition{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") - } - if this.EnumField != nil { - s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "test.NestedDefinition_NestedEnum")+",\n") - } - if this.NNM != nil { - s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") - } - if this.NM != nil { - s = append(s, "NM: "+fmt.Sprintf("%#v", this.NM)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedDefinition_NestedMessage) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NestedDefinition_NestedMessage{") - if this.NestedField1 != nil { - s = append(s, "NestedField1: "+valueToGoStringThetest(this.NestedField1, "uint64")+",\n") - } - if this.NNM != nil { - s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NestedDefinition_NestedMessage_NestedNestedMsg{") - if this.NestedNestedField1 != nil { - s = append(s, "NestedNestedField1: "+valueToGoStringThetest(this.NestedNestedField1, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedScope) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NestedScope{") - if this.A != nil { - s = append(s, "A: "+fmt.Sprintf("%#v", this.A)+",\n") - } - if this.B != nil { - s = append(s, "B: "+valueToGoStringThetest(this.B, "test.NestedDefinition_NestedEnum")+",\n") - } - if this.C != nil { - s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNativeDefault) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NinOptNativeDefault{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+valueToGoStringThetest(this.Field8, "int64")+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+valueToGoStringThetest(this.Field9, "uint32")+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+valueToGoStringThetest(this.Field10, "int32")+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+valueToGoStringThetest(this.Field11, "uint64")+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+valueToGoStringThetest(this.Field12, "int64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomContainer) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.CustomContainer{") - s = append(s, "CustomStruct: "+strings.Replace(this.CustomStruct.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNidOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.CustomNameNidOptNative{") - s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n") - s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - s = append(s, "FieldE: "+fmt.Sprintf("%#v", this.FieldE)+",\n") - s = append(s, "FieldF: "+fmt.Sprintf("%#v", this.FieldF)+",\n") - s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n") - s = append(s, "FieldH: "+fmt.Sprintf("%#v", this.FieldH)+",\n") - s = append(s, "FieldI: "+fmt.Sprintf("%#v", this.FieldI)+",\n") - s = append(s, "FieldJ: "+fmt.Sprintf("%#v", this.FieldJ)+",\n") - s = append(s, "FieldK: "+fmt.Sprintf("%#v", this.FieldK)+",\n") - s = append(s, "FieldL: "+fmt.Sprintf("%#v", this.FieldL)+",\n") - s = append(s, "FieldM: "+fmt.Sprintf("%#v", this.FieldM)+",\n") - s = append(s, "FieldN: "+fmt.Sprintf("%#v", this.FieldN)+",\n") - s = append(s, "FieldO: "+fmt.Sprintf("%#v", this.FieldO)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.CustomNameNinOptNative{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "float64")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "float32")+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+valueToGoStringThetest(this.FieldC, "int32")+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+valueToGoStringThetest(this.FieldD, "int64")+",\n") - } - if this.FieldE != nil { - s = append(s, "FieldE: "+valueToGoStringThetest(this.FieldE, "uint32")+",\n") - } - if this.FieldF != nil { - s = append(s, "FieldF: "+valueToGoStringThetest(this.FieldF, "uint64")+",\n") - } - if this.FieldG != nil { - s = append(s, "FieldG: "+valueToGoStringThetest(this.FieldG, "int32")+",\n") - } - if this.FieldH != nil { - s = append(s, "FieldH: "+valueToGoStringThetest(this.FieldH, "int64")+",\n") - } - if this.FieldI != nil { - s = append(s, "FieldI: "+valueToGoStringThetest(this.FieldI, "uint32")+",\n") - } - if this.FieldJ != nil { - s = append(s, "FieldJ: "+valueToGoStringThetest(this.FieldJ, "int32")+",\n") - } - if this.FieldK != nil { - s = append(s, "FieldK: "+valueToGoStringThetest(this.FieldK, "uint64")+",\n") - } - if this.FielL != nil { - s = append(s, "FielL: "+valueToGoStringThetest(this.FielL, "int64")+",\n") - } - if this.FieldM != nil { - s = append(s, "FieldM: "+valueToGoStringThetest(this.FieldM, "bool")+",\n") - } - if this.FieldN != nil { - s = append(s, "FieldN: "+valueToGoStringThetest(this.FieldN, "string")+",\n") - } - if this.FieldO != nil { - s = append(s, "FieldO: "+valueToGoStringThetest(this.FieldO, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinRepNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.CustomNameNinRepNative{") - if this.FieldA != nil { - s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - } - if this.FieldE != nil { - s = append(s, "FieldE: "+fmt.Sprintf("%#v", this.FieldE)+",\n") - } - if this.FieldF != nil { - s = append(s, "FieldF: "+fmt.Sprintf("%#v", this.FieldF)+",\n") - } - if this.FieldG != nil { - s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n") - } - if this.FieldH != nil { - s = append(s, "FieldH: "+fmt.Sprintf("%#v", this.FieldH)+",\n") - } - if this.FieldI != nil { - s = append(s, "FieldI: "+fmt.Sprintf("%#v", this.FieldI)+",\n") - } - if this.FieldJ != nil { - s = append(s, "FieldJ: "+fmt.Sprintf("%#v", this.FieldJ)+",\n") - } - if this.FieldK != nil { - s = append(s, "FieldK: "+fmt.Sprintf("%#v", this.FieldK)+",\n") - } - if this.FieldL != nil { - s = append(s, "FieldL: "+fmt.Sprintf("%#v", this.FieldL)+",\n") - } - if this.FieldM != nil { - s = append(s, "FieldM: "+fmt.Sprintf("%#v", this.FieldM)+",\n") - } - if this.FieldN != nil { - s = append(s, "FieldN: "+fmt.Sprintf("%#v", this.FieldN)+",\n") - } - if this.FieldO != nil { - s = append(s, "FieldO: "+fmt.Sprintf("%#v", this.FieldO)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.CustomNameNinStruct{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "float64")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "float32")+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - } - if this.FieldE != nil { - s = append(s, "FieldE: "+valueToGoStringThetest(this.FieldE, "uint64")+",\n") - } - if this.FieldF != nil { - s = append(s, "FieldF: "+valueToGoStringThetest(this.FieldF, "int32")+",\n") - } - if this.FieldG != nil { - s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n") - } - if this.FieldH != nil { - s = append(s, "FieldH: "+valueToGoStringThetest(this.FieldH, "bool")+",\n") - } - if this.FieldI != nil { - s = append(s, "FieldI: "+valueToGoStringThetest(this.FieldI, "string")+",\n") - } - if this.FieldJ != nil { - s = append(s, "FieldJ: "+valueToGoStringThetest(this.FieldJ, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&test.CustomNameCustomType{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "Uuid")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "github_com_gogo_protobuf_test_custom.Uint128")+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinEmbeddedStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.CustomNameNinEmbeddedStructUnion{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - if this.FieldA != nil { - s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.CustomNameEnum{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "test.TheTestEnum")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NoExtensionsMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NoExtensionsMap{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+fmt.Sprintf("%#v", this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Unrecognized) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.Unrecognized{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "string")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithInner) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.UnrecognizedWithInner{") - if this.Embedded != nil { - s = append(s, "Embedded: "+fmt.Sprintf("%#v", this.Embedded)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithInner_Inner) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.UnrecognizedWithInner_Inner{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "uint32")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithEmbed) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.UnrecognizedWithEmbed{") - s = append(s, "UnrecognizedWithEmbed_Embedded: "+strings.Replace(this.UnrecognizedWithEmbed_Embedded.GoString(), `&`, ``, 1)+",\n") - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithEmbed_Embedded) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.UnrecognizedWithEmbed_Embedded{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "uint32")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Node) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.Node{") - if this.Label != nil { - s = append(s, "Label: "+valueToGoStringThetest(this.Label, "string")+",\n") - } - if this.Children != nil { - s = append(s, "Children: "+fmt.Sprintf("%#v", this.Children)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NidOptNonByteCustomType{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NinOptNonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NidRepNonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NinRepNonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ProtoType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.ProtoType{") - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringThetest(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { - e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) - if e == nil { - return "nil" - } - s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "})" - return s -} -func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { - this := &NidOptNative{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - this.Field4 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4 *= -1 - } - this.Field5 = uint32(r.Uint32()) - this.Field6 = uint64(uint64(r.Uint32())) - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - this.Field8 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8 *= -1 - } - this.Field9 = uint32(r.Uint32()) - this.Field10 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10 *= -1 - } - this.Field11 = uint64(uint64(r.Uint32())) - this.Field12 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12 *= -1 - } - this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = string(randStringThetest(r)) - v1 := r.Intn(100) - this.Field15 = make([]byte, v1) - for i := 0; i < v1; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { - this := &NinOptNative{} - if r.Intn(10) != 0 { - v2 := float64(r.Float64()) - if r.Intn(2) == 0 { - v2 *= -1 - } - this.Field1 = &v2 - } - if r.Intn(10) != 0 { - v3 := float32(r.Float32()) - if r.Intn(2) == 0 { - v3 *= -1 - } - this.Field2 = &v3 - } - if r.Intn(10) != 0 { - v4 := int32(r.Int31()) - if r.Intn(2) == 0 { - v4 *= -1 - } - this.Field3 = &v4 - } - if r.Intn(10) != 0 { - v5 := int64(r.Int63()) - if r.Intn(2) == 0 { - v5 *= -1 - } - this.Field4 = &v5 - } - if r.Intn(10) != 0 { - v6 := uint32(r.Uint32()) - this.Field5 = &v6 - } - if r.Intn(10) != 0 { - v7 := uint64(uint64(r.Uint32())) - this.Field6 = &v7 - } - if r.Intn(10) != 0 { - v8 := int32(r.Int31()) - if r.Intn(2) == 0 { - v8 *= -1 - } - this.Field7 = &v8 - } - if r.Intn(10) != 0 { - v9 := int64(r.Int63()) - if r.Intn(2) == 0 { - v9 *= -1 - } - this.Field8 = &v9 - } - if r.Intn(10) != 0 { - v10 := uint32(r.Uint32()) - this.Field9 = &v10 - } - if r.Intn(10) != 0 { - v11 := int32(r.Int31()) - if r.Intn(2) == 0 { - v11 *= -1 - } - this.Field10 = &v11 - } - if r.Intn(10) != 0 { - v12 := uint64(uint64(r.Uint32())) - this.Field11 = &v12 - } - if r.Intn(10) != 0 { - v13 := int64(r.Int63()) - if r.Intn(2) == 0 { - v13 *= -1 - } - this.Field12 = &v13 - } - if r.Intn(10) != 0 { - v14 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v14 - } - if r.Intn(10) != 0 { - v15 := string(randStringThetest(r)) - this.Field14 = &v15 - } - if r.Intn(10) != 0 { - v16 := r.Intn(100) - this.Field15 = make([]byte, v16) - for i := 0; i < v16; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { - this := &NidRepNative{} - if r.Intn(10) != 0 { - v17 := r.Intn(10) - this.Field1 = make([]float64, v17) - for i := 0; i < v17; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v18 := r.Intn(10) - this.Field2 = make([]float32, v18) - for i := 0; i < v18; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v19 := r.Intn(10) - this.Field3 = make([]int32, v19) - for i := 0; i < v19; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v20 := r.Intn(10) - this.Field4 = make([]int64, v20) - for i := 0; i < v20; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v21 := r.Intn(10) - this.Field5 = make([]uint32, v21) - for i := 0; i < v21; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v22 := r.Intn(10) - this.Field6 = make([]uint64, v22) - for i := 0; i < v22; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v23 := r.Intn(10) - this.Field7 = make([]int32, v23) - for i := 0; i < v23; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v24 := r.Intn(10) - this.Field8 = make([]int64, v24) - for i := 0; i < v24; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v25 := r.Intn(10) - this.Field9 = make([]uint32, v25) - for i := 0; i < v25; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v26 := r.Intn(10) - this.Field10 = make([]int32, v26) - for i := 0; i < v26; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v27 := r.Intn(10) - this.Field11 = make([]uint64, v27) - for i := 0; i < v27; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v28 := r.Intn(10) - this.Field12 = make([]int64, v28) - for i := 0; i < v28; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v29 := r.Intn(10) - this.Field13 = make([]bool, v29) - for i := 0; i < v29; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v30 := r.Intn(10) - this.Field14 = make([]string, v30) - for i := 0; i < v30; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v31 := r.Intn(10) - this.Field15 = make([][]byte, v31) - for i := 0; i < v31; i++ { - v32 := r.Intn(100) - this.Field15[i] = make([]byte, v32) - for j := 0; j < v32; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { - this := &NinRepNative{} - if r.Intn(10) != 0 { - v33 := r.Intn(10) - this.Field1 = make([]float64, v33) - for i := 0; i < v33; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v34 := r.Intn(10) - this.Field2 = make([]float32, v34) - for i := 0; i < v34; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v35 := r.Intn(10) - this.Field3 = make([]int32, v35) - for i := 0; i < v35; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.Field4 = make([]int64, v36) - for i := 0; i < v36; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v37 := r.Intn(10) - this.Field5 = make([]uint32, v37) - for i := 0; i < v37; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v38 := r.Intn(10) - this.Field6 = make([]uint64, v38) - for i := 0; i < v38; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v39 := r.Intn(10) - this.Field7 = make([]int32, v39) - for i := 0; i < v39; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v40 := r.Intn(10) - this.Field8 = make([]int64, v40) - for i := 0; i < v40; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v41 := r.Intn(10) - this.Field9 = make([]uint32, v41) - for i := 0; i < v41; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v42 := r.Intn(10) - this.Field10 = make([]int32, v42) - for i := 0; i < v42; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v43 := r.Intn(10) - this.Field11 = make([]uint64, v43) - for i := 0; i < v43; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v44 := r.Intn(10) - this.Field12 = make([]int64, v44) - for i := 0; i < v44; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v45 := r.Intn(10) - this.Field13 = make([]bool, v45) - for i := 0; i < v45; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v46 := r.Intn(10) - this.Field14 = make([]string, v46) - for i := 0; i < v46; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v47 := r.Intn(10) - this.Field15 = make([][]byte, v47) - for i := 0; i < v47; i++ { - v48 := r.Intn(100) - this.Field15[i] = make([]byte, v48) - for j := 0; j < v48; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidRepPackedNative(r randyThetest, easy bool) *NidRepPackedNative { - this := &NidRepPackedNative{} - if r.Intn(10) != 0 { - v49 := r.Intn(10) - this.Field1 = make([]float64, v49) - for i := 0; i < v49; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v50 := r.Intn(10) - this.Field2 = make([]float32, v50) - for i := 0; i < v50; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v51 := r.Intn(10) - this.Field3 = make([]int32, v51) - for i := 0; i < v51; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v52 := r.Intn(10) - this.Field4 = make([]int64, v52) - for i := 0; i < v52; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v53 := r.Intn(10) - this.Field5 = make([]uint32, v53) - for i := 0; i < v53; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v54 := r.Intn(10) - this.Field6 = make([]uint64, v54) - for i := 0; i < v54; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v55 := r.Intn(10) - this.Field7 = make([]int32, v55) - for i := 0; i < v55; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v56 := r.Intn(10) - this.Field8 = make([]int64, v56) - for i := 0; i < v56; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v57 := r.Intn(10) - this.Field9 = make([]uint32, v57) - for i := 0; i < v57; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v58 := r.Intn(10) - this.Field10 = make([]int32, v58) - for i := 0; i < v58; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v59 := r.Intn(10) - this.Field11 = make([]uint64, v59) - for i := 0; i < v59; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v60 := r.Intn(10) - this.Field12 = make([]int64, v60) - for i := 0; i < v60; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v61 := r.Intn(10) - this.Field13 = make([]bool, v61) - for i := 0; i < v61; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 14) - } - return this -} - -func NewPopulatedNinRepPackedNative(r randyThetest, easy bool) *NinRepPackedNative { - this := &NinRepPackedNative{} - if r.Intn(10) != 0 { - v62 := r.Intn(10) - this.Field1 = make([]float64, v62) - for i := 0; i < v62; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v63 := r.Intn(10) - this.Field2 = make([]float32, v63) - for i := 0; i < v63; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v64 := r.Intn(10) - this.Field3 = make([]int32, v64) - for i := 0; i < v64; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v65 := r.Intn(10) - this.Field4 = make([]int64, v65) - for i := 0; i < v65; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v66 := r.Intn(10) - this.Field5 = make([]uint32, v66) - for i := 0; i < v66; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v67 := r.Intn(10) - this.Field6 = make([]uint64, v67) - for i := 0; i < v67; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v68 := r.Intn(10) - this.Field7 = make([]int32, v68) - for i := 0; i < v68; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v69 := r.Intn(10) - this.Field8 = make([]int64, v69) - for i := 0; i < v69; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v70 := r.Intn(10) - this.Field9 = make([]uint32, v70) - for i := 0; i < v70; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v71 := r.Intn(10) - this.Field10 = make([]int32, v71) - for i := 0; i < v71; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v72 := r.Intn(10) - this.Field11 = make([]uint64, v72) - for i := 0; i < v72; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v73 := r.Intn(10) - this.Field12 = make([]int64, v73) - for i := 0; i < v73; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v74 := r.Intn(10) - this.Field13 = make([]bool, v74) - for i := 0; i < v74; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 14) - } - return this -} - -func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { - this := &NidOptStruct{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - v75 := NewPopulatedNidOptNative(r, easy) - this.Field3 = *v75 - v76 := NewPopulatedNinOptNative(r, easy) - this.Field4 = *v76 - this.Field6 = uint64(uint64(r.Uint32())) - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - v77 := NewPopulatedNidOptNative(r, easy) - this.Field8 = *v77 - this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = string(randStringThetest(r)) - v78 := r.Intn(100) - this.Field15 = make([]byte, v78) - for i := 0; i < v78; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { - this := &NinOptStruct{} - if r.Intn(10) != 0 { - v79 := float64(r.Float64()) - if r.Intn(2) == 0 { - v79 *= -1 - } - this.Field1 = &v79 - } - if r.Intn(10) != 0 { - v80 := float32(r.Float32()) - if r.Intn(2) == 0 { - v80 *= -1 - } - this.Field2 = &v80 - } - if r.Intn(10) != 0 { - this.Field3 = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - this.Field4 = NewPopulatedNinOptNative(r, easy) - } - if r.Intn(10) != 0 { - v81 := uint64(uint64(r.Uint32())) - this.Field6 = &v81 - } - if r.Intn(10) != 0 { - v82 := int32(r.Int31()) - if r.Intn(2) == 0 { - v82 *= -1 - } - this.Field7 = &v82 - } - if r.Intn(10) != 0 { - this.Field8 = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v83 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v83 - } - if r.Intn(10) != 0 { - v84 := string(randStringThetest(r)) - this.Field14 = &v84 - } - if r.Intn(10) != 0 { - v85 := r.Intn(100) - this.Field15 = make([]byte, v85) - for i := 0; i < v85; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { - this := &NidRepStruct{} - if r.Intn(10) != 0 { - v86 := r.Intn(10) - this.Field1 = make([]float64, v86) - for i := 0; i < v86; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v87 := r.Intn(10) - this.Field2 = make([]float32, v87) - for i := 0; i < v87; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v88 := r.Intn(5) - this.Field3 = make([]NidOptNative, v88) - for i := 0; i < v88; i++ { - v89 := NewPopulatedNidOptNative(r, easy) - this.Field3[i] = *v89 - } - } - if r.Intn(10) != 0 { - v90 := r.Intn(5) - this.Field4 = make([]NinOptNative, v90) - for i := 0; i < v90; i++ { - v91 := NewPopulatedNinOptNative(r, easy) - this.Field4[i] = *v91 - } - } - if r.Intn(10) != 0 { - v92 := r.Intn(10) - this.Field6 = make([]uint64, v92) - for i := 0; i < v92; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v93 := r.Intn(10) - this.Field7 = make([]int32, v93) - for i := 0; i < v93; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v94 := r.Intn(5) - this.Field8 = make([]NidOptNative, v94) - for i := 0; i < v94; i++ { - v95 := NewPopulatedNidOptNative(r, easy) - this.Field8[i] = *v95 - } - } - if r.Intn(10) != 0 { - v96 := r.Intn(10) - this.Field13 = make([]bool, v96) - for i := 0; i < v96; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v97 := r.Intn(10) - this.Field14 = make([]string, v97) - for i := 0; i < v97; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v98 := r.Intn(10) - this.Field15 = make([][]byte, v98) - for i := 0; i < v98; i++ { - v99 := r.Intn(100) - this.Field15[i] = make([]byte, v99) - for j := 0; j < v99; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { - this := &NinRepStruct{} - if r.Intn(10) != 0 { - v100 := r.Intn(10) - this.Field1 = make([]float64, v100) - for i := 0; i < v100; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v101 := r.Intn(10) - this.Field2 = make([]float32, v101) - for i := 0; i < v101; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v102 := r.Intn(5) - this.Field3 = make([]*NidOptNative, v102) - for i := 0; i < v102; i++ { - this.Field3[i] = NewPopulatedNidOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v103 := r.Intn(5) - this.Field4 = make([]*NinOptNative, v103) - for i := 0; i < v103; i++ { - this.Field4[i] = NewPopulatedNinOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v104 := r.Intn(10) - this.Field6 = make([]uint64, v104) - for i := 0; i < v104; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v105 := r.Intn(10) - this.Field7 = make([]int32, v105) - for i := 0; i < v105; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v106 := r.Intn(5) - this.Field8 = make([]*NidOptNative, v106) - for i := 0; i < v106; i++ { - this.Field8[i] = NewPopulatedNidOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v107 := r.Intn(10) - this.Field13 = make([]bool, v107) - for i := 0; i < v107; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v108 := r.Intn(10) - this.Field14 = make([]string, v108) - for i := 0; i < v108; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v109 := r.Intn(10) - this.Field15 = make([][]byte, v109) - for i := 0; i < v109; i++ { - v110 := r.Intn(100) - this.Field15[i] = make([]byte, v110) - for j := 0; j < v110; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidEmbeddedStruct(r randyThetest, easy bool) *NidEmbeddedStruct { - this := &NidEmbeddedStruct{} - if r.Intn(10) != 0 { - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - } - v111 := NewPopulatedNidOptNative(r, easy) - this.Field200 = *v111 - this.Field210 = bool(bool(r.Intn(2) == 0)) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 211) - } - return this -} - -func NewPopulatedNinEmbeddedStruct(r randyThetest, easy bool) *NinEmbeddedStruct { - this := &NinEmbeddedStruct{} - if r.Intn(10) != 0 { - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - this.Field200 = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v112 := bool(bool(r.Intn(2) == 0)) - this.Field210 = &v112 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 211) - } - return this -} - -func NewPopulatedNidNestedStruct(r randyThetest, easy bool) *NidNestedStruct { - this := &NidNestedStruct{} - v113 := NewPopulatedNidOptStruct(r, easy) - this.Field1 = *v113 - if r.Intn(10) != 0 { - v114 := r.Intn(5) - this.Field2 = make([]NidRepStruct, v114) - for i := 0; i < v114; i++ { - v115 := NewPopulatedNidRepStruct(r, easy) - this.Field2[i] = *v115 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNinNestedStruct(r randyThetest, easy bool) *NinNestedStruct { - this := &NinNestedStruct{} - if r.Intn(10) != 0 { - this.Field1 = NewPopulatedNinOptStruct(r, easy) - } - if r.Intn(10) != 0 { - v116 := r.Intn(5) - this.Field2 = make([]*NinRepStruct, v116) - for i := 0; i < v116; i++ { - this.Field2[i] = NewPopulatedNinRepStruct(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNidOptCustom(r randyThetest, easy bool) *NidOptCustom { - this := &NidOptCustom{} - v117 := NewPopulatedUuid(r) - this.Id = *v117 - v118 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Value = *v118 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedCustomDash(r randyThetest, easy bool) *CustomDash { - this := &CustomDash{} - if r.Intn(10) != 0 { - this.Value = github_com_gogo_protobuf_test_custom_dash_type.NewPopulatedBytes(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinOptCustom(r randyThetest, easy bool) *NinOptCustom { - this := &NinOptCustom{} - if r.Intn(10) != 0 { - this.Id = NewPopulatedUuid(r) - } - if r.Intn(10) != 0 { - this.Value = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNidRepCustom(r randyThetest, easy bool) *NidRepCustom { - this := &NidRepCustom{} - if r.Intn(10) != 0 { - v119 := r.Intn(10) - this.Id = make([]Uuid, v119) - for i := 0; i < v119; i++ { - v120 := NewPopulatedUuid(r) - this.Id[i] = *v120 - } - } - if r.Intn(10) != 0 { - v121 := r.Intn(10) - this.Value = make([]github_com_gogo_protobuf_test_custom.Uint128, v121) - for i := 0; i < v121; i++ { - v122 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Value[i] = *v122 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNinRepCustom(r randyThetest, easy bool) *NinRepCustom { - this := &NinRepCustom{} - if r.Intn(10) != 0 { - v123 := r.Intn(10) - this.Id = make([]Uuid, v123) - for i := 0; i < v123; i++ { - v124 := NewPopulatedUuid(r) - this.Id[i] = *v124 - } - } - if r.Intn(10) != 0 { - v125 := r.Intn(10) - this.Value = make([]github_com_gogo_protobuf_test_custom.Uint128, v125) - for i := 0; i < v125; i++ { - v126 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Value[i] = *v126 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion { - this := &NinOptNativeUnion{} - fieldNum := r.Intn(9) - switch fieldNum { - case 0: - v127 := float64(r.Float64()) - if r.Intn(2) == 0 { - v127 *= -1 - } - this.Field1 = &v127 - case 1: - v128 := float32(r.Float32()) - if r.Intn(2) == 0 { - v128 *= -1 - } - this.Field2 = &v128 - case 2: - v129 := int32(r.Int31()) - if r.Intn(2) == 0 { - v129 *= -1 - } - this.Field3 = &v129 - case 3: - v130 := int64(r.Int63()) - if r.Intn(2) == 0 { - v130 *= -1 - } - this.Field4 = &v130 - case 4: - v131 := uint32(r.Uint32()) - this.Field5 = &v131 - case 5: - v132 := uint64(uint64(r.Uint32())) - this.Field6 = &v132 - case 6: - v133 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v133 - case 7: - v134 := string(randStringThetest(r)) - this.Field14 = &v134 - case 8: - v135 := r.Intn(100) - this.Field15 = make([]byte, v135) - for i := 0; i < v135; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - return this -} - -func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion { - this := &NinOptStructUnion{} - fieldNum := r.Intn(9) - switch fieldNum { - case 0: - v136 := float64(r.Float64()) - if r.Intn(2) == 0 { - v136 *= -1 - } - this.Field1 = &v136 - case 1: - v137 := float32(r.Float32()) - if r.Intn(2) == 0 { - v137 *= -1 - } - this.Field2 = &v137 - case 2: - this.Field3 = NewPopulatedNidOptNative(r, easy) - case 3: - this.Field4 = NewPopulatedNinOptNative(r, easy) - case 4: - v138 := uint64(uint64(r.Uint32())) - this.Field6 = &v138 - case 5: - v139 := int32(r.Int31()) - if r.Intn(2) == 0 { - v139 *= -1 - } - this.Field7 = &v139 - case 6: - v140 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v140 - case 7: - v141 := string(randStringThetest(r)) - this.Field14 = &v141 - case 8: - v142 := r.Intn(100) - this.Field15 = make([]byte, v142) - for i := 0; i < v142; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - return this -} - -func NewPopulatedNinEmbeddedStructUnion(r randyThetest, easy bool) *NinEmbeddedStructUnion { - this := &NinEmbeddedStructUnion{} - fieldNum := r.Intn(3) - switch fieldNum { - case 0: - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - case 1: - this.Field200 = NewPopulatedNinOptNative(r, easy) - case 2: - v143 := bool(bool(r.Intn(2) == 0)) - this.Field210 = &v143 - } - return this -} - -func NewPopulatedNinNestedStructUnion(r randyThetest, easy bool) *NinNestedStructUnion { - this := &NinNestedStructUnion{} - fieldNum := r.Intn(3) - switch fieldNum { - case 0: - this.Field1 = NewPopulatedNinOptNativeUnion(r, easy) - case 1: - this.Field2 = NewPopulatedNinOptStructUnion(r, easy) - case 2: - this.Field3 = NewPopulatedNinEmbeddedStructUnion(r, easy) - } - return this -} - -func NewPopulatedTree(r randyThetest, easy bool) *Tree { - this := &Tree{} - fieldNum := r.Intn(102) - switch fieldNum { - case 0: - this.Or = NewPopulatedOrBranch(r, easy) - case 1: - this.And = NewPopulatedAndBranch(r, easy) - case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101: - this.Leaf = NewPopulatedLeaf(r, easy) - } - return this -} - -func NewPopulatedOrBranch(r randyThetest, easy bool) *OrBranch { - this := &OrBranch{} - v144 := NewPopulatedTree(r, easy) - this.Left = *v144 - v145 := NewPopulatedTree(r, easy) - this.Right = *v145 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedAndBranch(r randyThetest, easy bool) *AndBranch { - this := &AndBranch{} - v146 := NewPopulatedTree(r, easy) - this.Left = *v146 - v147 := NewPopulatedTree(r, easy) - this.Right = *v147 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { - this := &Leaf{} - this.Value = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Value *= -1 - } - this.StrValue = string(randStringThetest(r)) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedDeepTree(r randyThetest, easy bool) *DeepTree { - this := &DeepTree{} - fieldNum := r.Intn(102) - switch fieldNum { - case 0: - this.Down = NewPopulatedADeepBranch(r, easy) - case 1: - this.And = NewPopulatedAndDeepBranch(r, easy) - case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101: - this.Leaf = NewPopulatedDeepLeaf(r, easy) - } - return this -} - -func NewPopulatedADeepBranch(r randyThetest, easy bool) *ADeepBranch { - this := &ADeepBranch{} - v148 := NewPopulatedDeepTree(r, easy) - this.Down = *v148 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedAndDeepBranch(r randyThetest, easy bool) *AndDeepBranch { - this := &AndDeepBranch{} - v149 := NewPopulatedDeepTree(r, easy) - this.Left = *v149 - v150 := NewPopulatedDeepTree(r, easy) - this.Right = *v150 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedDeepLeaf(r randyThetest, easy bool) *DeepLeaf { - this := &DeepLeaf{} - v151 := NewPopulatedTree(r, easy) - this.Tree = *v151 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNil(r randyThetest, easy bool) *Nil { - this := &Nil{} - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 1) - } - return this -} - -func NewPopulatedNidOptEnum(r randyThetest, easy bool) *NidOptEnum { - this := &NidOptEnum{} - this.Field1 = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinOptEnum(r randyThetest, easy bool) *NinOptEnum { - this := &NinOptEnum{} - if r.Intn(10) != 0 { - v152 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - this.Field1 = &v152 - } - if r.Intn(10) != 0 { - v153 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v153 - } - if r.Intn(10) != 0 { - v154 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v154 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNidRepEnum(r randyThetest, easy bool) *NidRepEnum { - this := &NidRepEnum{} - if r.Intn(10) != 0 { - v155 := r.Intn(10) - this.Field1 = make([]TheTestEnum, v155) - for i := 0; i < v155; i++ { - this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v156 := r.Intn(10) - this.Field2 = make([]YetAnotherTestEnum, v156) - for i := 0; i < v156; i++ { - this.Field2[i] = YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if r.Intn(10) != 0 { - v157 := r.Intn(10) - this.Field3 = make([]YetYetAnotherTestEnum, v157) - for i := 0; i < v157; i++ { - this.Field3[i] = YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNinRepEnum(r randyThetest, easy bool) *NinRepEnum { - this := &NinRepEnum{} - if r.Intn(10) != 0 { - v158 := r.Intn(10) - this.Field1 = make([]TheTestEnum, v158) - for i := 0; i < v158; i++ { - this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v159 := r.Intn(10) - this.Field2 = make([]YetAnotherTestEnum, v159) - for i := 0; i < v159; i++ { - this.Field2[i] = YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if r.Intn(10) != 0 { - v160 := r.Intn(10) - this.Field3 = make([]YetYetAnotherTestEnum, v160) - for i := 0; i < v160; i++ { - this.Field3[i] = YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNinOptEnumDefault(r randyThetest, easy bool) *NinOptEnumDefault { - this := &NinOptEnumDefault{} - if r.Intn(10) != 0 { - v161 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - this.Field1 = &v161 - } - if r.Intn(10) != 0 { - v162 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v162 - } - if r.Intn(10) != 0 { - v163 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v163 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedAnotherNinOptEnum(r randyThetest, easy bool) *AnotherNinOptEnum { - this := &AnotherNinOptEnum{} - if r.Intn(10) != 0 { - v164 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)]) - this.Field1 = &v164 - } - if r.Intn(10) != 0 { - v165 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v165 - } - if r.Intn(10) != 0 { - v166 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v166 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedAnotherNinOptEnumDefault(r randyThetest, easy bool) *AnotherNinOptEnumDefault { - this := &AnotherNinOptEnumDefault{} - if r.Intn(10) != 0 { - v167 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)]) - this.Field1 = &v167 - } - if r.Intn(10) != 0 { - v168 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v168 - } - if r.Intn(10) != 0 { - v169 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v169 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedTimer(r randyThetest, easy bool) *Timer { - this := &Timer{} - this.Time1 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Time1 *= -1 - } - this.Time2 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Time2 *= -1 - } - v170 := r.Intn(100) - this.Data = make([]byte, v170) - for i := 0; i < v170; i++ { - this.Data[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { - this := &MyExtendable{} - if r.Intn(10) != 0 { - v171 := int64(r.Int63()) - if r.Intn(2) == 0 { - v171 *= -1 - } - this.Field1 = &v171 - } - if !easy && r.Intn(10) != 0 { - l := r.Intn(5) - for i := 0; i < l; i++ { - fieldNumber := r.Intn(100) + 100 - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 201) - } - return this -} - -func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { - this := &OtherExtenable{} - if r.Intn(10) != 0 { - v172 := int64(r.Int63()) - if r.Intn(2) == 0 { - v172 *= -1 - } - this.Field2 = &v172 - } - if r.Intn(10) != 0 { - v173 := int64(r.Int63()) - if r.Intn(2) == 0 { - v173 *= -1 - } - this.Field13 = &v173 - } - if r.Intn(10) != 0 { - this.M = NewPopulatedMyExtendable(r, easy) - } - if !easy && r.Intn(10) != 0 { - l := r.Intn(5) - for i := 0; i < l; i++ { - eIndex := r.Intn(2) - fieldNumber := 0 - switch eIndex { - case 0: - fieldNumber = r.Intn(3) + 14 - case 1: - fieldNumber = r.Intn(3) + 10 - } - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 18) - } - return this -} - -func NewPopulatedNestedDefinition(r randyThetest, easy bool) *NestedDefinition { - this := &NestedDefinition{} - if r.Intn(10) != 0 { - v174 := int64(r.Int63()) - if r.Intn(2) == 0 { - v174 *= -1 - } - this.Field1 = &v174 - } - if r.Intn(10) != 0 { - v175 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)]) - this.EnumField = &v175 - } - if r.Intn(10) != 0 { - this.NNM = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy) - } - if r.Intn(10) != 0 { - this.NM = NewPopulatedNestedDefinition_NestedMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 5) - } - return this -} - -func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *NestedDefinition_NestedMessage { - this := &NestedDefinition_NestedMessage{} - if r.Intn(10) != 0 { - v176 := uint64(uint64(r.Uint32())) - this.NestedField1 = &v176 - } - if r.Intn(10) != 0 { - this.NNM = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { - this := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if r.Intn(10) != 0 { - v177 := string(randStringThetest(r)) - this.NestedNestedField1 = &v177 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 11) - } - return this -} - -func NewPopulatedNestedScope(r randyThetest, easy bool) *NestedScope { - this := &NestedScope{} - if r.Intn(10) != 0 { - this.A = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy) - } - if r.Intn(10) != 0 { - v178 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)]) - this.B = &v178 - } - if r.Intn(10) != 0 { - this.C = NewPopulatedNestedDefinition_NestedMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDefault { - this := &NinOptNativeDefault{} - if r.Intn(10) != 0 { - v179 := float64(r.Float64()) - if r.Intn(2) == 0 { - v179 *= -1 - } - this.Field1 = &v179 - } - if r.Intn(10) != 0 { - v180 := float32(r.Float32()) - if r.Intn(2) == 0 { - v180 *= -1 - } - this.Field2 = &v180 - } - if r.Intn(10) != 0 { - v181 := int32(r.Int31()) - if r.Intn(2) == 0 { - v181 *= -1 - } - this.Field3 = &v181 - } - if r.Intn(10) != 0 { - v182 := int64(r.Int63()) - if r.Intn(2) == 0 { - v182 *= -1 - } - this.Field4 = &v182 - } - if r.Intn(10) != 0 { - v183 := uint32(r.Uint32()) - this.Field5 = &v183 - } - if r.Intn(10) != 0 { - v184 := uint64(uint64(r.Uint32())) - this.Field6 = &v184 - } - if r.Intn(10) != 0 { - v185 := int32(r.Int31()) - if r.Intn(2) == 0 { - v185 *= -1 - } - this.Field7 = &v185 - } - if r.Intn(10) != 0 { - v186 := int64(r.Int63()) - if r.Intn(2) == 0 { - v186 *= -1 - } - this.Field8 = &v186 - } - if r.Intn(10) != 0 { - v187 := uint32(r.Uint32()) - this.Field9 = &v187 - } - if r.Intn(10) != 0 { - v188 := int32(r.Int31()) - if r.Intn(2) == 0 { - v188 *= -1 - } - this.Field10 = &v188 - } - if r.Intn(10) != 0 { - v189 := uint64(uint64(r.Uint32())) - this.Field11 = &v189 - } - if r.Intn(10) != 0 { - v190 := int64(r.Int63()) - if r.Intn(2) == 0 { - v190 *= -1 - } - this.Field12 = &v190 - } - if r.Intn(10) != 0 { - v191 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v191 - } - if r.Intn(10) != 0 { - v192 := string(randStringThetest(r)) - this.Field14 = &v192 - } - if r.Intn(10) != 0 { - v193 := r.Intn(100) - this.Field15 = make([]byte, v193) - for i := 0; i < v193; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomContainer(r randyThetest, easy bool) *CustomContainer { - this := &CustomContainer{} - v194 := NewPopulatedNidOptCustom(r, easy) - this.CustomStruct = *v194 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNidOptNative { - this := &CustomNameNidOptNative{} - this.FieldA = float64(r.Float64()) - if r.Intn(2) == 0 { - this.FieldA *= -1 - } - this.FieldB = float32(r.Float32()) - if r.Intn(2) == 0 { - this.FieldB *= -1 - } - this.FieldC = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldC *= -1 - } - this.FieldD = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldD *= -1 - } - this.FieldE = uint32(r.Uint32()) - this.FieldF = uint64(uint64(r.Uint32())) - this.FieldG = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldG *= -1 - } - this.FieldH = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldH *= -1 - } - this.FieldI = uint32(r.Uint32()) - this.FieldJ = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldJ *= -1 - } - this.FieldK = uint64(uint64(r.Uint32())) - this.FieldL = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldL *= -1 - } - this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = string(randStringThetest(r)) - v195 := r.Intn(100) - this.FieldO = make([]byte, v195) - for i := 0; i < v195; i++ { - this.FieldO[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNinOptNative { - this := &CustomNameNinOptNative{} - if r.Intn(10) != 0 { - v196 := float64(r.Float64()) - if r.Intn(2) == 0 { - v196 *= -1 - } - this.FieldA = &v196 - } - if r.Intn(10) != 0 { - v197 := float32(r.Float32()) - if r.Intn(2) == 0 { - v197 *= -1 - } - this.FieldB = &v197 - } - if r.Intn(10) != 0 { - v198 := int32(r.Int31()) - if r.Intn(2) == 0 { - v198 *= -1 - } - this.FieldC = &v198 - } - if r.Intn(10) != 0 { - v199 := int64(r.Int63()) - if r.Intn(2) == 0 { - v199 *= -1 - } - this.FieldD = &v199 - } - if r.Intn(10) != 0 { - v200 := uint32(r.Uint32()) - this.FieldE = &v200 - } - if r.Intn(10) != 0 { - v201 := uint64(uint64(r.Uint32())) - this.FieldF = &v201 - } - if r.Intn(10) != 0 { - v202 := int32(r.Int31()) - if r.Intn(2) == 0 { - v202 *= -1 - } - this.FieldG = &v202 - } - if r.Intn(10) != 0 { - v203 := int64(r.Int63()) - if r.Intn(2) == 0 { - v203 *= -1 - } - this.FieldH = &v203 - } - if r.Intn(10) != 0 { - v204 := uint32(r.Uint32()) - this.FieldI = &v204 - } - if r.Intn(10) != 0 { - v205 := int32(r.Int31()) - if r.Intn(2) == 0 { - v205 *= -1 - } - this.FieldJ = &v205 - } - if r.Intn(10) != 0 { - v206 := uint64(uint64(r.Uint32())) - this.FieldK = &v206 - } - if r.Intn(10) != 0 { - v207 := int64(r.Int63()) - if r.Intn(2) == 0 { - v207 *= -1 - } - this.FielL = &v207 - } - if r.Intn(10) != 0 { - v208 := bool(bool(r.Intn(2) == 0)) - this.FieldM = &v208 - } - if r.Intn(10) != 0 { - v209 := string(randStringThetest(r)) - this.FieldN = &v209 - } - if r.Intn(10) != 0 { - v210 := r.Intn(100) - this.FieldO = make([]byte, v210) - for i := 0; i < v210; i++ { - this.FieldO[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNinRepNative { - this := &CustomNameNinRepNative{} - if r.Intn(10) != 0 { - v211 := r.Intn(10) - this.FieldA = make([]float64, v211) - for i := 0; i < v211; i++ { - this.FieldA[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.FieldA[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v212 := r.Intn(10) - this.FieldB = make([]float32, v212) - for i := 0; i < v212; i++ { - this.FieldB[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.FieldB[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v213 := r.Intn(10) - this.FieldC = make([]int32, v213) - for i := 0; i < v213; i++ { - this.FieldC[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldC[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v214 := r.Intn(10) - this.FieldD = make([]int64, v214) - for i := 0; i < v214; i++ { - this.FieldD[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldD[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v215 := r.Intn(10) - this.FieldE = make([]uint32, v215) - for i := 0; i < v215; i++ { - this.FieldE[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v216 := r.Intn(10) - this.FieldF = make([]uint64, v216) - for i := 0; i < v216; i++ { - this.FieldF[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v217 := r.Intn(10) - this.FieldG = make([]int32, v217) - for i := 0; i < v217; i++ { - this.FieldG[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldG[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v218 := r.Intn(10) - this.FieldH = make([]int64, v218) - for i := 0; i < v218; i++ { - this.FieldH[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldH[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v219 := r.Intn(10) - this.FieldI = make([]uint32, v219) - for i := 0; i < v219; i++ { - this.FieldI[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v220 := r.Intn(10) - this.FieldJ = make([]int32, v220) - for i := 0; i < v220; i++ { - this.FieldJ[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldJ[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v221 := r.Intn(10) - this.FieldK = make([]uint64, v221) - for i := 0; i < v221; i++ { - this.FieldK[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v222 := r.Intn(10) - this.FieldL = make([]int64, v222) - for i := 0; i < v222; i++ { - this.FieldL[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldL[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v223 := r.Intn(10) - this.FieldM = make([]bool, v223) - for i := 0; i < v223; i++ { - this.FieldM[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v224 := r.Intn(10) - this.FieldN = make([]string, v224) - for i := 0; i < v224; i++ { - this.FieldN[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v225 := r.Intn(10) - this.FieldO = make([][]byte, v225) - for i := 0; i < v225; i++ { - v226 := r.Intn(100) - this.FieldO[i] = make([]byte, v226) - for j := 0; j < v226; j++ { - this.FieldO[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinStruct { - this := &CustomNameNinStruct{} - if r.Intn(10) != 0 { - v227 := float64(r.Float64()) - if r.Intn(2) == 0 { - v227 *= -1 - } - this.FieldA = &v227 - } - if r.Intn(10) != 0 { - v228 := float32(r.Float32()) - if r.Intn(2) == 0 { - v228 *= -1 - } - this.FieldB = &v228 - } - if r.Intn(10) != 0 { - this.FieldC = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v229 := r.Intn(5) - this.FieldD = make([]*NinOptNative, v229) - for i := 0; i < v229; i++ { - this.FieldD[i] = NewPopulatedNinOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v230 := uint64(uint64(r.Uint32())) - this.FieldE = &v230 - } - if r.Intn(10) != 0 { - v231 := int32(r.Int31()) - if r.Intn(2) == 0 { - v231 *= -1 - } - this.FieldF = &v231 - } - if r.Intn(10) != 0 { - this.FieldG = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v232 := bool(bool(r.Intn(2) == 0)) - this.FieldH = &v232 - } - if r.Intn(10) != 0 { - v233 := string(randStringThetest(r)) - this.FieldI = &v233 - } - if r.Intn(10) != 0 { - v234 := r.Intn(100) - this.FieldJ = make([]byte, v234) - for i := 0; i < v234; i++ { - this.FieldJ[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameCustomType(r randyThetest, easy bool) *CustomNameCustomType { - this := &CustomNameCustomType{} - if r.Intn(10) != 0 { - this.FieldA = NewPopulatedUuid(r) - } - if r.Intn(10) != 0 { - this.FieldB = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - } - if r.Intn(10) != 0 { - v235 := r.Intn(10) - this.FieldC = make([]Uuid, v235) - for i := 0; i < v235; i++ { - v236 := NewPopulatedUuid(r) - this.FieldC[i] = *v236 - } - } - if r.Intn(10) != 0 { - v237 := r.Intn(10) - this.FieldD = make([]github_com_gogo_protobuf_test_custom.Uint128, v237) - for i := 0; i < v237; i++ { - v238 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.FieldD[i] = *v238 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 5) - } - return this -} - -func NewPopulatedCustomNameNinEmbeddedStructUnion(r randyThetest, easy bool) *CustomNameNinEmbeddedStructUnion { - this := &CustomNameNinEmbeddedStructUnion{} - fieldNum := r.Intn(3) - switch fieldNum { - case 0: - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - case 1: - this.FieldA = NewPopulatedNinOptNative(r, easy) - case 2: - v239 := bool(bool(r.Intn(2) == 0)) - this.FieldB = &v239 - } - return this -} - -func NewPopulatedCustomNameEnum(r randyThetest, easy bool) *CustomNameEnum { - this := &CustomNameEnum{} - if r.Intn(10) != 0 { - v240 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - this.FieldA = &v240 - } - if r.Intn(10) != 0 { - v241 := r.Intn(10) - this.FieldB = make([]TheTestEnum, v241) - for i := 0; i < v241; i++ { - this.FieldB[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { - this := &NoExtensionsMap{} - if r.Intn(10) != 0 { - v242 := int64(r.Int63()) - if r.Intn(2) == 0 { - v242 *= -1 - } - this.Field1 = &v242 - } - if !easy && r.Intn(10) != 0 { - l := r.Intn(5) - for i := 0; i < l; i++ { - fieldNumber := r.Intn(100) + 100 - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 201) - } - return this -} - -func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { - this := &Unrecognized{} - if r.Intn(10) != 0 { - v243 := string(randStringThetest(r)) - this.Field1 = &v243 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedWithInner { - this := &UnrecognizedWithInner{} - if r.Intn(10) != 0 { - v244 := r.Intn(5) - this.Embedded = make([]*UnrecognizedWithInner_Inner, v244) - for i := 0; i < v244; i++ { - this.Embedded[i] = NewPopulatedUnrecognizedWithInner_Inner(r, easy) - } - } - if r.Intn(10) != 0 { - v245 := string(randStringThetest(r)) - this.Field2 = &v245 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedUnrecognizedWithInner_Inner(r randyThetest, easy bool) *UnrecognizedWithInner_Inner { - this := &UnrecognizedWithInner_Inner{} - if r.Intn(10) != 0 { - v246 := uint32(r.Uint32()) - this.Field1 = &v246 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedWithEmbed { - this := &UnrecognizedWithEmbed{} - v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) - this.UnrecognizedWithEmbed_Embedded = *v247 - if r.Intn(10) != 0 { - v248 := string(randStringThetest(r)) - this.Field2 = &v248 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *UnrecognizedWithEmbed_Embedded { - this := &UnrecognizedWithEmbed_Embedded{} - if r.Intn(10) != 0 { - v249 := uint32(r.Uint32()) - this.Field1 = &v249 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedNode(r randyThetest, easy bool) *Node { - this := &Node{} - if r.Intn(10) != 0 { - v250 := string(randStringThetest(r)) - this.Label = &v250 - } - if r.Intn(10) == 0 { - v251 := r.Intn(5) - this.Children = make([]*Node, v251) - for i := 0; i < v251; i++ { - this.Children[i] = NewPopulatedNode(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { - this := &NonByteCustomType{} - if r.Intn(10) != 0 { - this.Field1 = NewPopulatedT(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { - this := &NidOptNonByteCustomType{} - v252 := NewPopulatedT(r) - this.Field1 = *v252 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { - this := &NinOptNonByteCustomType{} - if r.Intn(10) != 0 { - this.Field1 = NewPopulatedT(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { - this := &NidRepNonByteCustomType{} - if r.Intn(10) != 0 { - v253 := r.Intn(10) - this.Field1 = make([]T, v253) - for i := 0; i < v253; i++ { - v254 := NewPopulatedT(r) - this.Field1[i] = *v254 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { - this := &NinRepNonByteCustomType{} - if r.Intn(10) != 0 { - v255 := r.Intn(10) - this.Field1 = make([]T, v255) - for i := 0; i < v255; i++ { - v256 := NewPopulatedT(r) - this.Field1[i] = *v256 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { - this := &ProtoType{} - if r.Intn(10) != 0 { - v257 := string(randStringThetest(r)) - this.Field2 = &v257 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -type randyThetest interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneThetest(r randyThetest) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringThetest(r randyThetest) string { - v258 := r.Intn(100) - tmps := make([]rune, v258) - for i := 0; i < v258; i++ { - tmps[i] = randUTF8RuneThetest(r) - } - return string(tmps) -} -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - v259 := r.Int63() - if r.Intn(2) == 0 { - v259 *= -1 - } - dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) - case 1: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *NidOptNative) Size() (n int) { - var l int - _ = l - n += 9 - n += 5 - n += 1 + sovThetest(uint64(m.Field3)) - n += 1 + sovThetest(uint64(m.Field4)) - n += 1 + sovThetest(uint64(m.Field5)) - n += 1 + sovThetest(uint64(m.Field6)) - n += 1 + sozThetest(uint64(m.Field7)) - n += 1 + sozThetest(uint64(m.Field8)) - n += 5 - n += 5 - n += 9 - n += 9 - n += 2 - l = len(m.Field14) - n += 1 + l + sovThetest(uint64(l)) - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNative) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.Field4 != nil { - n += 1 + sovThetest(uint64(*m.Field4)) - } - if m.Field5 != nil { - n += 1 + sovThetest(uint64(*m.Field5)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field8 != nil { - n += 1 + sozThetest(uint64(*m.Field8)) - } - if m.Field9 != nil { - n += 5 - } - if m.Field10 != nil { - n += 5 - } - if m.Field11 != nil { - n += 9 - } - if m.Field12 != nil { - n += 9 - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field5) > 0 { - for _, e := range m.Field5 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field9) > 0 { - n += 5 * len(m.Field9) - } - if len(m.Field10) > 0 { - n += 5 * len(m.Field10) - } - if len(m.Field11) > 0 { - n += 9 * len(m.Field11) - } - if len(m.Field12) > 0 { - n += 9 * len(m.Field12) - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field5) > 0 { - for _, e := range m.Field5 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field9) > 0 { - n += 5 * len(m.Field9) - } - if len(m.Field10) > 0 { - n += 5 * len(m.Field10) - } - if len(m.Field11) > 0 { - n += 9 * len(m.Field11) - } - if len(m.Field12) > 0 { - n += 9 * len(m.Field12) - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepPackedNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 1 + sovThetest(uint64(len(m.Field1)*8)) + len(m.Field1)*8 - } - if len(m.Field2) > 0 { - n += 1 + sovThetest(uint64(len(m.Field2)*4)) + len(m.Field2)*4 - } - if len(m.Field3) > 0 { - l = 0 - for _, e := range m.Field3 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field4) > 0 { - l = 0 - for _, e := range m.Field4 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field5) > 0 { - l = 0 - for _, e := range m.Field5 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field6) > 0 { - l = 0 - for _, e := range m.Field6 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field7) > 0 { - l = 0 - for _, e := range m.Field7 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field8) > 0 { - l = 0 - for _, e := range m.Field8 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field9) > 0 { - n += 1 + sovThetest(uint64(len(m.Field9)*4)) + len(m.Field9)*4 - } - if len(m.Field10) > 0 { - n += 1 + sovThetest(uint64(len(m.Field10)*4)) + len(m.Field10)*4 - } - if len(m.Field11) > 0 { - n += 1 + sovThetest(uint64(len(m.Field11)*8)) + len(m.Field11)*8 - } - if len(m.Field12) > 0 { - n += 1 + sovThetest(uint64(len(m.Field12)*8)) + len(m.Field12)*8 - } - if len(m.Field13) > 0 { - n += 1 + sovThetest(uint64(len(m.Field13))) + len(m.Field13)*1 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepPackedNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 1 + sovThetest(uint64(len(m.Field1)*8)) + len(m.Field1)*8 - } - if len(m.Field2) > 0 { - n += 1 + sovThetest(uint64(len(m.Field2)*4)) + len(m.Field2)*4 - } - if len(m.Field3) > 0 { - l = 0 - for _, e := range m.Field3 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field4) > 0 { - l = 0 - for _, e := range m.Field4 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field5) > 0 { - l = 0 - for _, e := range m.Field5 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field6) > 0 { - l = 0 - for _, e := range m.Field6 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field7) > 0 { - l = 0 - for _, e := range m.Field7 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field8) > 0 { - l = 0 - for _, e := range m.Field8 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field9) > 0 { - n += 1 + sovThetest(uint64(len(m.Field9)*4)) + len(m.Field9)*4 - } - if len(m.Field10) > 0 { - n += 1 + sovThetest(uint64(len(m.Field10)*4)) + len(m.Field10)*4 - } - if len(m.Field11) > 0 { - n += 1 + sovThetest(uint64(len(m.Field11)*8)) + len(m.Field11)*8 - } - if len(m.Field12) > 0 { - n += 1 + sovThetest(uint64(len(m.Field12)*8)) + len(m.Field12)*8 - } - if len(m.Field13) > 0 { - n += 1 + sovThetest(uint64(len(m.Field13))) + len(m.Field13)*1 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptStruct) Size() (n int) { - var l int - _ = l - n += 9 - n += 5 - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Field4.Size() - n += 1 + l + sovThetest(uint64(l)) - n += 1 + sovThetest(uint64(m.Field6)) - n += 1 + sozThetest(uint64(m.Field7)) - l = m.Field8.Size() - n += 1 + l + sovThetest(uint64(l)) - n += 2 - l = len(m.Field14) - n += 1 + l + sovThetest(uint64(l)) - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptStruct) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field4 != nil { - l = m.Field4.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field8 != nil { - l = m.Field8.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepStruct) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepStruct) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidEmbeddedStruct) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - l = m.Field200.Size() - n += 2 + l + sovThetest(uint64(l)) - n += 3 - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinEmbeddedStruct) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field200 != nil { - l = m.Field200.Size() - n += 2 + l + sovThetest(uint64(l)) - } - if m.Field210 != nil { - n += 3 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidNestedStruct) Size() (n int) { - var l int - _ = l - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinNestedStruct) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptCustom) Size() (n int) { - var l int - _ = l - l = m.Id.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Value.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomDash) Size() (n int) { - var l int - _ = l - if m.Value != nil { - l = m.Value.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptCustom) Size() (n int) { - var l int - _ = l - if m.Id != nil { - l = m.Id.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Value != nil { - l = m.Value.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepCustom) Size() (n int) { - var l int - _ = l - if len(m.Id) > 0 { - for _, e := range m.Id { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Value) > 0 { - for _, e := range m.Value { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepCustom) Size() (n int) { - var l int - _ = l - if len(m.Id) > 0 { - for _, e := range m.Id { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Value) > 0 { - for _, e := range m.Value { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNativeUnion) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.Field4 != nil { - n += 1 + sovThetest(uint64(*m.Field4)) - } - if m.Field5 != nil { - n += 1 + sovThetest(uint64(*m.Field5)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptStructUnion) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field4 != nil { - l = m.Field4.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinEmbeddedStructUnion) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field200 != nil { - l = m.Field200.Size() - n += 2 + l + sovThetest(uint64(l)) - } - if m.Field210 != nil { - n += 3 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinNestedStructUnion) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field2 != nil { - l = m.Field2.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field3 != nil { - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Tree) Size() (n int) { - var l int - _ = l - if m.Or != nil { - l = m.Or.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.And != nil { - l = m.And.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Leaf != nil { - l = m.Leaf.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OrBranch) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Right.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AndBranch) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Right.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Leaf) Size() (n int) { - var l int - _ = l - n += 1 + sovThetest(uint64(m.Value)) - l = len(m.StrValue) - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DeepTree) Size() (n int) { - var l int - _ = l - if m.Down != nil { - l = m.Down.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.And != nil { - l = m.And.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Leaf != nil { - l = m.Leaf.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ADeepBranch) Size() (n int) { - var l int - _ = l - l = m.Down.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AndDeepBranch) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Right.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DeepLeaf) Size() (n int) { - var l int - _ = l - l = m.Tree.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Nil) Size() (n int) { - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptEnum) Size() (n int) { - var l int - _ = l - n += 1 + sovThetest(uint64(m.Field1)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptEnum) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepEnum) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepEnum) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptEnumDefault) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AnotherNinOptEnum) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AnotherNinOptEnumDefault) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Timer) Size() (n int) { - var l int - _ = l - n += 9 - n += 9 - if m.Data != nil { - l = len(m.Data) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *MyExtendable) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OtherExtenable) Size() (n int) { - var l int - _ = l - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field13 != nil { - n += 1 + sovThetest(uint64(*m.Field13)) - } - if m.M != nil { - l = m.M.Size() - n += 1 + l + sovThetest(uint64(l)) - } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedDefinition) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.EnumField != nil { - n += 1 + sovThetest(uint64(*m.EnumField)) - } - if m.NNM != nil { - l = m.NNM.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.NM != nil { - l = m.NM.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedDefinition_NestedMessage) Size() (n int) { - var l int - _ = l - if m.NestedField1 != nil { - n += 9 - } - if m.NNM != nil { - l = m.NNM.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Size() (n int) { - var l int - _ = l - if m.NestedNestedField1 != nil { - l = len(*m.NestedNestedField1) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedScope) Size() (n int) { - var l int - _ = l - if m.A != nil { - l = m.A.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.B != nil { - n += 1 + sovThetest(uint64(*m.B)) - } - if m.C != nil { - l = m.C.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNativeDefault) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.Field4 != nil { - n += 1 + sovThetest(uint64(*m.Field4)) - } - if m.Field5 != nil { - n += 1 + sovThetest(uint64(*m.Field5)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field8 != nil { - n += 1 + sozThetest(uint64(*m.Field8)) - } - if m.Field9 != nil { - n += 5 - } - if m.Field10 != nil { - n += 5 - } - if m.Field11 != nil { - n += 9 - } - if m.Field12 != nil { - n += 9 - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomContainer) Size() (n int) { - var l int - _ = l - l = m.CustomStruct.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNidOptNative) Size() (n int) { - var l int - _ = l - n += 9 - n += 5 - n += 1 + sovThetest(uint64(m.FieldC)) - n += 1 + sovThetest(uint64(m.FieldD)) - n += 1 + sovThetest(uint64(m.FieldE)) - n += 1 + sovThetest(uint64(m.FieldF)) - n += 1 + sozThetest(uint64(m.FieldG)) - n += 1 + sozThetest(uint64(m.FieldH)) - n += 5 - n += 5 - n += 9 - n += 9 - n += 2 - l = len(m.FieldN) - n += 1 + l + sovThetest(uint64(l)) - if m.FieldO != nil { - l = len(m.FieldO) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinOptNative) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - n += 9 - } - if m.FieldB != nil { - n += 5 - } - if m.FieldC != nil { - n += 1 + sovThetest(uint64(*m.FieldC)) - } - if m.FieldD != nil { - n += 1 + sovThetest(uint64(*m.FieldD)) - } - if m.FieldE != nil { - n += 1 + sovThetest(uint64(*m.FieldE)) - } - if m.FieldF != nil { - n += 1 + sovThetest(uint64(*m.FieldF)) - } - if m.FieldG != nil { - n += 1 + sozThetest(uint64(*m.FieldG)) - } - if m.FieldH != nil { - n += 1 + sozThetest(uint64(*m.FieldH)) - } - if m.FieldI != nil { - n += 5 - } - if m.FieldJ != nil { - n += 5 - } - if m.FieldK != nil { - n += 9 - } - if m.FielL != nil { - n += 9 - } - if m.FieldM != nil { - n += 2 - } - if m.FieldN != nil { - l = len(*m.FieldN) - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldO != nil { - l = len(m.FieldO) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinRepNative) Size() (n int) { - var l int - _ = l - if len(m.FieldA) > 0 { - n += 9 * len(m.FieldA) - } - if len(m.FieldB) > 0 { - n += 5 * len(m.FieldB) - } - if len(m.FieldC) > 0 { - for _, e := range m.FieldC { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldD) > 0 { - for _, e := range m.FieldD { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldE) > 0 { - for _, e := range m.FieldE { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldF) > 0 { - for _, e := range m.FieldF { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldG) > 0 { - for _, e := range m.FieldG { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.FieldH) > 0 { - for _, e := range m.FieldH { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.FieldI) > 0 { - n += 5 * len(m.FieldI) - } - if len(m.FieldJ) > 0 { - n += 5 * len(m.FieldJ) - } - if len(m.FieldK) > 0 { - n += 9 * len(m.FieldK) - } - if len(m.FieldL) > 0 { - n += 9 * len(m.FieldL) - } - if len(m.FieldM) > 0 { - n += 2 * len(m.FieldM) - } - if len(m.FieldN) > 0 { - for _, s := range m.FieldN { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.FieldO) > 0 { - for _, b := range m.FieldO { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinStruct) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - n += 9 - } - if m.FieldB != nil { - n += 5 - } - if m.FieldC != nil { - l = m.FieldC.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.FieldD) > 0 { - for _, e := range m.FieldD { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.FieldE != nil { - n += 1 + sovThetest(uint64(*m.FieldE)) - } - if m.FieldF != nil { - n += 1 + sozThetest(uint64(*m.FieldF)) - } - if m.FieldG != nil { - l = m.FieldG.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldH != nil { - n += 2 - } - if m.FieldI != nil { - l = len(*m.FieldI) - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldJ != nil { - l = len(m.FieldJ) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameCustomType) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - l = m.FieldA.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldB != nil { - l = m.FieldB.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.FieldC) > 0 { - for _, e := range m.FieldC { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.FieldD) > 0 { - for _, e := range m.FieldD { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinEmbeddedStructUnion) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldA != nil { - l = m.FieldA.Size() - n += 2 + l + sovThetest(uint64(l)) - } - if m.FieldB != nil { - n += 3 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameEnum) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - n += 1 + sovThetest(uint64(*m.FieldA)) - } - if len(m.FieldB) > 0 { - for _, e := range m.FieldB { - n += 1 + sovThetest(uint64(e)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NoExtensionsMap) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.XXX_extensions != nil { - n += len(m.XXX_extensions) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Unrecognized) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = len(*m.Field1) - n += 1 + l + sovThetest(uint64(l)) - } - return n -} - -func (m *UnrecognizedWithInner) Size() (n int) { - var l int - _ = l - if len(m.Embedded) > 0 { - for _, e := range m.Embedded { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *UnrecognizedWithInner_Inner) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - return n -} - -func (m *UnrecognizedWithEmbed) Size() (n int) { - var l int - _ = l - l = m.UnrecognizedWithEmbed_Embedded.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *UnrecognizedWithEmbed_Embedded) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - return n -} - -func (m *Node) Size() (n int) { - var l int - _ = l - if m.Label != nil { - l = len(*m.Label) - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.Children) > 0 { - for _, e := range m.Children { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NonByteCustomType) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptNonByteCustomType) Size() (n int) { - var l int - _ = l - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNonByteCustomType) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepNonByteCustomType) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepNonByteCustomType) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ProtoType) Size() (n int) { - var l int - _ = l - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovThetest(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozThetest(x uint64) (n int) { - return sovThetest(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *NidOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNative{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `Field4:` + valueToStringThetest(this.Field4) + `,`, - `Field5:` + valueToStringThetest(this.Field5) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field8:` + valueToStringThetest(this.Field8) + `,`, - `Field9:` + valueToStringThetest(this.Field9) + `,`, - `Field10:` + valueToStringThetest(this.Field10) + `,`, - `Field11:` + valueToStringThetest(this.Field11) + `,`, - `Field12:` + valueToStringThetest(this.Field12) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepPackedNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepPackedNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepPackedNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepPackedNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptStruct{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + strings.Replace(strings.Replace(this.Field3.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field4:` + strings.Replace(strings.Replace(this.Field4.String(), "NinOptNative", "NinOptNative", 1), `&`, ``, 1) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + strings.Replace(strings.Replace(this.Field8.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptStruct{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`, - `Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field8:` + strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 1) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepStruct{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field4:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1), `&`, ``, 1) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepStruct{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`, - `Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 1) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidEmbeddedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidEmbeddedStruct{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `Field200:` + strings.Replace(strings.Replace(this.Field200.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field210:` + fmt.Sprintf("%v", this.Field210) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinEmbeddedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinEmbeddedStruct{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `Field200:` + strings.Replace(fmt.Sprintf("%v", this.Field200), "NidOptNative", "NidOptNative", 1) + `,`, - `Field210:` + valueToStringThetest(this.Field210) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidNestedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidNestedStruct{`, - `Field1:` + strings.Replace(strings.Replace(this.Field1.String(), "NidOptStruct", "NidOptStruct", 1), `&`, ``, 1) + `,`, - `Field2:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field2), "NidRepStruct", "NidRepStruct", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinNestedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinNestedStruct{`, - `Field1:` + strings.Replace(fmt.Sprintf("%v", this.Field1), "NinOptStruct", "NinOptStruct", 1) + `,`, - `Field2:` + strings.Replace(fmt.Sprintf("%v", this.Field2), "NinRepStruct", "NinRepStruct", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptCustom{`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomDash) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomDash{`, - `Value:` + valueToStringThetest(this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptCustom{`, - `Id:` + valueToStringThetest(this.Id) + `,`, - `Value:` + valueToStringThetest(this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepCustom{`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepCustom{`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNativeUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNativeUnion{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `Field4:` + valueToStringThetest(this.Field4) + `,`, - `Field5:` + valueToStringThetest(this.Field5) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptStructUnion{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`, - `Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinEmbeddedStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinEmbeddedStructUnion{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `Field200:` + strings.Replace(fmt.Sprintf("%v", this.Field200), "NinOptNative", "NinOptNative", 1) + `,`, - `Field210:` + valueToStringThetest(this.Field210) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinNestedStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinNestedStructUnion{`, - `Field1:` + strings.Replace(fmt.Sprintf("%v", this.Field1), "NinOptNativeUnion", "NinOptNativeUnion", 1) + `,`, - `Field2:` + strings.Replace(fmt.Sprintf("%v", this.Field2), "NinOptStructUnion", "NinOptStructUnion", 1) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NinEmbeddedStructUnion", "NinEmbeddedStructUnion", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Tree) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Tree{`, - `Or:` + strings.Replace(fmt.Sprintf("%v", this.Or), "OrBranch", "OrBranch", 1) + `,`, - `And:` + strings.Replace(fmt.Sprintf("%v", this.And), "AndBranch", "AndBranch", 1) + `,`, - `Leaf:` + strings.Replace(fmt.Sprintf("%v", this.Leaf), "Leaf", "Leaf", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *OrBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OrBranch{`, - `Left:` + strings.Replace(strings.Replace(this.Left.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `Right:` + strings.Replace(strings.Replace(this.Right.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AndBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AndBranch{`, - `Left:` + strings.Replace(strings.Replace(this.Left.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `Right:` + strings.Replace(strings.Replace(this.Right.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Leaf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Leaf{`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `StrValue:` + fmt.Sprintf("%v", this.StrValue) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *DeepTree) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeepTree{`, - `Down:` + strings.Replace(fmt.Sprintf("%v", this.Down), "ADeepBranch", "ADeepBranch", 1) + `,`, - `And:` + strings.Replace(fmt.Sprintf("%v", this.And), "AndDeepBranch", "AndDeepBranch", 1) + `,`, - `Leaf:` + strings.Replace(fmt.Sprintf("%v", this.Leaf), "DeepLeaf", "DeepLeaf", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *ADeepBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ADeepBranch{`, - `Down:` + strings.Replace(strings.Replace(this.Down.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AndDeepBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AndDeepBranch{`, - `Left:` + strings.Replace(strings.Replace(this.Left.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`, - `Right:` + strings.Replace(strings.Replace(this.Right.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *DeepLeaf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeepLeaf{`, - `Tree:` + strings.Replace(strings.Replace(this.Tree.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Nil) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Nil{`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptEnum{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptEnum{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepEnum{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepEnum{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptEnumDefault) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptEnumDefault{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AnotherNinOptEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AnotherNinOptEnum{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AnotherNinOptEnumDefault) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AnotherNinOptEnumDefault{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Timer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Timer{`, - `Time1:` + fmt.Sprintf("%v", this.Time1) + `,`, - `Time2:` + fmt.Sprintf("%v", this.Time2) + `,`, - `Data:` + fmt.Sprintf("%v", this.Data) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *MyExtendable) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&MyExtendable{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *OtherExtenable) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OtherExtenable{`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedDefinition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedDefinition{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `EnumField:` + valueToStringThetest(this.EnumField) + `,`, - `NNM:` + strings.Replace(fmt.Sprintf("%v", this.NNM), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`, - `NM:` + strings.Replace(fmt.Sprintf("%v", this.NM), "NestedDefinition_NestedMessage", "NestedDefinition_NestedMessage", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedDefinition_NestedMessage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedDefinition_NestedMessage{`, - `NestedField1:` + valueToStringThetest(this.NestedField1) + `,`, - `NNM:` + strings.Replace(fmt.Sprintf("%v", this.NNM), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedDefinition_NestedMessage_NestedNestedMsg{`, - `NestedNestedField1:` + valueToStringThetest(this.NestedNestedField1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedScope) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedScope{`, - `A:` + strings.Replace(fmt.Sprintf("%v", this.A), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`, - `B:` + valueToStringThetest(this.B) + `,`, - `C:` + strings.Replace(fmt.Sprintf("%v", this.C), "NestedDefinition_NestedMessage", "NestedDefinition_NestedMessage", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNativeDefault) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNativeDefault{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `Field4:` + valueToStringThetest(this.Field4) + `,`, - `Field5:` + valueToStringThetest(this.Field5) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field8:` + valueToStringThetest(this.Field8) + `,`, - `Field9:` + valueToStringThetest(this.Field9) + `,`, - `Field10:` + valueToStringThetest(this.Field10) + `,`, - `Field11:` + valueToStringThetest(this.Field11) + `,`, - `Field12:` + valueToStringThetest(this.Field12) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomContainer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomContainer{`, - `CustomStruct:` + strings.Replace(strings.Replace(this.CustomStruct.String(), "NidOptCustom", "NidOptCustom", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNidOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNidOptNative{`, - `FieldA:` + fmt.Sprintf("%v", this.FieldA) + `,`, - `FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`, - `FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`, - `FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`, - `FieldE:` + fmt.Sprintf("%v", this.FieldE) + `,`, - `FieldF:` + fmt.Sprintf("%v", this.FieldF) + `,`, - `FieldG:` + fmt.Sprintf("%v", this.FieldG) + `,`, - `FieldH:` + fmt.Sprintf("%v", this.FieldH) + `,`, - `FieldI:` + fmt.Sprintf("%v", this.FieldI) + `,`, - `FieldJ:` + fmt.Sprintf("%v", this.FieldJ) + `,`, - `FieldK:` + fmt.Sprintf("%v", this.FieldK) + `,`, - `FieldL:` + fmt.Sprintf("%v", this.FieldL) + `,`, - `FieldM:` + fmt.Sprintf("%v", this.FieldM) + `,`, - `FieldN:` + fmt.Sprintf("%v", this.FieldN) + `,`, - `FieldO:` + fmt.Sprintf("%v", this.FieldO) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinOptNative{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `FieldC:` + valueToStringThetest(this.FieldC) + `,`, - `FieldD:` + valueToStringThetest(this.FieldD) + `,`, - `FieldE:` + valueToStringThetest(this.FieldE) + `,`, - `FieldF:` + valueToStringThetest(this.FieldF) + `,`, - `FieldG:` + valueToStringThetest(this.FieldG) + `,`, - `FieldH:` + valueToStringThetest(this.FieldH) + `,`, - `FieldI:` + valueToStringThetest(this.FieldI) + `,`, - `FieldJ:` + valueToStringThetest(this.FieldJ) + `,`, - `FieldK:` + valueToStringThetest(this.FieldK) + `,`, - `FielL:` + valueToStringThetest(this.FielL) + `,`, - `FieldM:` + valueToStringThetest(this.FieldM) + `,`, - `FieldN:` + valueToStringThetest(this.FieldN) + `,`, - `FieldO:` + valueToStringThetest(this.FieldO) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinRepNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinRepNative{`, - `FieldA:` + fmt.Sprintf("%v", this.FieldA) + `,`, - `FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`, - `FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`, - `FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`, - `FieldE:` + fmt.Sprintf("%v", this.FieldE) + `,`, - `FieldF:` + fmt.Sprintf("%v", this.FieldF) + `,`, - `FieldG:` + fmt.Sprintf("%v", this.FieldG) + `,`, - `FieldH:` + fmt.Sprintf("%v", this.FieldH) + `,`, - `FieldI:` + fmt.Sprintf("%v", this.FieldI) + `,`, - `FieldJ:` + fmt.Sprintf("%v", this.FieldJ) + `,`, - `FieldK:` + fmt.Sprintf("%v", this.FieldK) + `,`, - `FieldL:` + fmt.Sprintf("%v", this.FieldL) + `,`, - `FieldM:` + fmt.Sprintf("%v", this.FieldM) + `,`, - `FieldN:` + fmt.Sprintf("%v", this.FieldN) + `,`, - `FieldO:` + fmt.Sprintf("%v", this.FieldO) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinStruct{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `FieldC:` + strings.Replace(fmt.Sprintf("%v", this.FieldC), "NidOptNative", "NidOptNative", 1) + `,`, - `FieldD:` + strings.Replace(fmt.Sprintf("%v", this.FieldD), "NinOptNative", "NinOptNative", 1) + `,`, - `FieldE:` + valueToStringThetest(this.FieldE) + `,`, - `FieldF:` + valueToStringThetest(this.FieldF) + `,`, - `FieldG:` + strings.Replace(fmt.Sprintf("%v", this.FieldG), "NidOptNative", "NidOptNative", 1) + `,`, - `FieldH:` + valueToStringThetest(this.FieldH) + `,`, - `FieldI:` + valueToStringThetest(this.FieldI) + `,`, - `FieldJ:` + valueToStringThetest(this.FieldJ) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameCustomType{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`, - `FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinEmbeddedStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinEmbeddedStructUnion{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `FieldA:` + strings.Replace(fmt.Sprintf("%v", this.FieldA), "NinOptNative", "NinOptNative", 1) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameEnum{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NoExtensionsMap) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NoExtensionsMap{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Unrecognized) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Unrecognized{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithInner) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithInner{`, - `Embedded:` + strings.Replace(fmt.Sprintf("%v", this.Embedded), "UnrecognizedWithInner_Inner", "UnrecognizedWithInner_Inner", 1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithInner_Inner) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithInner_Inner{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithEmbed) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithEmbed{`, - `UnrecognizedWithEmbed_Embedded:` + strings.Replace(strings.Replace(this.UnrecognizedWithEmbed_Embedded.String(), "UnrecognizedWithEmbed_Embedded", "UnrecognizedWithEmbed_Embedded", 1), `&`, ``, 1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithEmbed_Embedded) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithEmbed_Embedded{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *Node) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Node{`, - `Label:` + valueToStringThetest(this.Label) + `,`, - `Children:` + strings.Replace(fmt.Sprintf("%v", this.Children), "Node", "Node", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NonByteCustomType{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptNonByteCustomType{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNonByteCustomType{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepNonByteCustomType{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepNonByteCustomType{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *ProtoType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ProtoType{`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringThetest(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (this *NinOptNativeUnion) GetValue() interface{} { - if this.Field1 != nil { - return this.Field1 - } - if this.Field2 != nil { - return this.Field2 - } - if this.Field3 != nil { - return this.Field3 - } - if this.Field4 != nil { - return this.Field4 - } - if this.Field5 != nil { - return this.Field5 - } - if this.Field6 != nil { - return this.Field6 - } - if this.Field13 != nil { - return this.Field13 - } - if this.Field14 != nil { - return this.Field14 - } - if this.Field15 != nil { - return this.Field15 - } - return nil -} - -func (this *NinOptNativeUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *float64: - this.Field1 = vt - case *float32: - this.Field2 = vt - case *int32: - this.Field3 = vt - case *int64: - this.Field4 = vt - case *uint32: - this.Field5 = vt - case *uint64: - this.Field6 = vt - case *bool: - this.Field13 = vt - case *string: - this.Field14 = vt - case []byte: - this.Field15 = vt - default: - return false - } - return true -} -func (this *NinOptStructUnion) GetValue() interface{} { - if this.Field1 != nil { - return this.Field1 - } - if this.Field2 != nil { - return this.Field2 - } - if this.Field3 != nil { - return this.Field3 - } - if this.Field4 != nil { - return this.Field4 - } - if this.Field6 != nil { - return this.Field6 - } - if this.Field7 != nil { - return this.Field7 - } - if this.Field13 != nil { - return this.Field13 - } - if this.Field14 != nil { - return this.Field14 - } - if this.Field15 != nil { - return this.Field15 - } - return nil -} - -func (this *NinOptStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *float64: - this.Field1 = vt - case *float32: - this.Field2 = vt - case *NidOptNative: - this.Field3 = vt - case *NinOptNative: - this.Field4 = vt - case *uint64: - this.Field6 = vt - case *int32: - this.Field7 = vt - case *bool: - this.Field13 = vt - case *string: - this.Field14 = vt - case []byte: - this.Field15 = vt - default: - return false - } - return true -} -func (this *NinEmbeddedStructUnion) GetValue() interface{} { - if this.NidOptNative != nil { - return this.NidOptNative - } - if this.Field200 != nil { - return this.Field200 - } - if this.Field210 != nil { - return this.Field210 - } - return nil -} - -func (this *NinEmbeddedStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *NidOptNative: - this.NidOptNative = vt - case *NinOptNative: - this.Field200 = vt - case *bool: - this.Field210 = vt - default: - return false - } - return true -} -func (this *NinNestedStructUnion) GetValue() interface{} { - if this.Field1 != nil { - return this.Field1 - } - if this.Field2 != nil { - return this.Field2 - } - if this.Field3 != nil { - return this.Field3 - } - return nil -} - -func (this *NinNestedStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *NinOptNativeUnion: - this.Field1 = vt - case *NinOptStructUnion: - this.Field2 = vt - case *NinEmbeddedStructUnion: - this.Field3 = vt - default: - this.Field1 = new(NinOptNativeUnion) - if set := this.Field1.SetValue(value); set { - return true - } - this.Field1 = nil - this.Field2 = new(NinOptStructUnion) - if set := this.Field2.SetValue(value); set { - return true - } - this.Field2 = nil - this.Field3 = new(NinEmbeddedStructUnion) - if set := this.Field3.SetValue(value); set { - return true - } - this.Field3 = nil - return false - } - return true -} -func (this *Tree) GetValue() interface{} { - if this.Or != nil { - return this.Or - } - if this.And != nil { - return this.And - } - if this.Leaf != nil { - return this.Leaf - } - return nil -} - -func (this *Tree) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *OrBranch: - this.Or = vt - case *AndBranch: - this.And = vt - case *Leaf: - this.Leaf = vt - default: - return false - } - return true -} -func (this *DeepTree) GetValue() interface{} { - if this.Down != nil { - return this.Down - } - if this.And != nil { - return this.And - } - if this.Leaf != nil { - return this.Leaf - } - return nil -} - -func (this *DeepTree) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *ADeepBranch: - this.Down = vt - case *AndDeepBranch: - this.And = vt - case *DeepLeaf: - this.Leaf = vt - default: - return false - } - return true -} -func (this *CustomNameNinEmbeddedStructUnion) GetValue() interface{} { - if this.NidOptNative != nil { - return this.NidOptNative - } - if this.FieldA != nil { - return this.FieldA - } - if this.FieldB != nil { - return this.FieldB - } - return nil -} - -func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *NidOptNative: - this.NidOptNative = vt - case *NinOptNative: - this.FieldA = vt - case *bool: - this.FieldB = vt - default: - return false - } - return true -} -func (m *NidOptNative) 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 *NidOptNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3)) - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field4)) - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field5)) - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 - i += 4 - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 - i += 4 - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 - i += 8 - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 - i += 8 - dAtA[i] = 0x68 - i++ - if m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) - i += copy(dAtA[i:], m.Field14) - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptNative) 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 *NinOptNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.Field4 != nil { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) - } - if m.Field5 != nil { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field7 != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) - } - if m.Field8 != nil { - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) - } - if m.Field9 != nil { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.Field9 - i += 4 - } - if m.Field10 != nil { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.Field10 - i += 4 - } - if m.Field11 != nil { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.Field11 - i += 8 - } - if m.Field12 != nil { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.Field12 - i += 8 - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepNative) 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 *NidRepNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - for _, num := range m.Field3 { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field4) > 0 { - for _, num := range m.Field4 { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field5) > 0 { - for _, num := range m.Field5 { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field6) > 0 { - for _, num := range m.Field6 { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field7) > 0 { - for _, num := range m.Field7 { - dAtA[i] = 0x38 - i++ - x1 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x1 >= 1<<7 { - dAtA[i] = uint8(uint64(x1)&0x7f | 0x80) - x1 >>= 7 - i++ - } - dAtA[i] = uint8(x1) - i++ - } - } - if len(m.Field8) > 0 { - for _, num := range m.Field8 { - dAtA[i] = 0x40 - i++ - x2 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x2 >= 1<<7 { - dAtA[i] = uint8(uint64(x2)&0x7f | 0x80) - x2 >>= 7 - i++ - } - dAtA[i] = uint8(x2) - i++ - } - } - if len(m.Field9) > 0 { - for _, num := range m.Field9 { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field10) > 0 { - for _, num := range m.Field10 { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field11) > 0 { - for _, num := range m.Field11 { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field12) > 0 { - for _, num := range m.Field12 { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field13) > 0 { - for _, b := range m.Field13 { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - dAtA[i] = 0x72 - 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.Field15) > 0 { - for _, b := range m.Field15 { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepNative) 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 *NinRepNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - for _, num := range m.Field3 { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field4) > 0 { - for _, num := range m.Field4 { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field5) > 0 { - for _, num := range m.Field5 { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field6) > 0 { - for _, num := range m.Field6 { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field7) > 0 { - for _, num := range m.Field7 { - dAtA[i] = 0x38 - i++ - x3 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x3 >= 1<<7 { - dAtA[i] = uint8(uint64(x3)&0x7f | 0x80) - x3 >>= 7 - i++ - } - dAtA[i] = uint8(x3) - i++ - } - } - if len(m.Field8) > 0 { - for _, num := range m.Field8 { - dAtA[i] = 0x40 - i++ - x4 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x4 >= 1<<7 { - dAtA[i] = uint8(uint64(x4)&0x7f | 0x80) - x4 >>= 7 - i++ - } - dAtA[i] = uint8(x4) - i++ - } - } - if len(m.Field9) > 0 { - for _, num := range m.Field9 { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field10) > 0 { - for _, num := range m.Field10 { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field11) > 0 { - for _, num := range m.Field11 { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field12) > 0 { - for _, num := range m.Field12 { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field13) > 0 { - for _, b := range m.Field13 { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - dAtA[i] = 0x72 - 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.Field15) > 0 { - for _, b := range m.Field15 { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepPackedNative) 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 *NidRepPackedNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) - for _, num := range m.Field1 { - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) - for _, num := range m.Field2 { - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - dAtA6 := make([]byte, len(m.Field3)*10) - var j5 int - for _, num1 := range m.Field3 { - num := uint64(num1) - for num >= 1<<7 { - dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j5++ - } - dAtA6[j5] = uint8(num) - j5++ - } - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j5)) - i += copy(dAtA[i:], dAtA6[:j5]) - } - if len(m.Field4) > 0 { - dAtA8 := make([]byte, len(m.Field4)*10) - var j7 int - for _, num1 := range m.Field4 { - num := uint64(num1) - for num >= 1<<7 { - dAtA8[j7] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j7++ - } - dAtA8[j7] = uint8(num) - j7++ - } - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j7)) - i += copy(dAtA[i:], dAtA8[:j7]) - } - if len(m.Field5) > 0 { - dAtA10 := make([]byte, len(m.Field5)*10) - var j9 int - for _, num := range m.Field5 { - for num >= 1<<7 { - dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j9++ - } - dAtA10[j9] = uint8(num) - j9++ - } - dAtA[i] = 0x2a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j9)) - i += copy(dAtA[i:], dAtA10[:j9]) - } - if len(m.Field6) > 0 { - dAtA12 := make([]byte, len(m.Field6)*10) - var j11 int - for _, num := range m.Field6 { - for num >= 1<<7 { - dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j11++ - } - dAtA12[j11] = uint8(num) - j11++ - } - dAtA[i] = 0x32 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j11)) - i += copy(dAtA[i:], dAtA12[:j11]) - } - if len(m.Field7) > 0 { - dAtA13 := make([]byte, len(m.Field7)*5) - var j14 int - for _, num := range m.Field7 { - x15 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x15 >= 1<<7 { - dAtA13[j14] = uint8(uint64(x15)&0x7f | 0x80) - j14++ - x15 >>= 7 - } - dAtA13[j14] = uint8(x15) - j14++ - } - dAtA[i] = 0x3a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j14)) - i += copy(dAtA[i:], dAtA13[:j14]) - } - if len(m.Field8) > 0 { - var j16 int - dAtA18 := make([]byte, len(m.Field8)*10) - for _, num := range m.Field8 { - x17 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x17 >= 1<<7 { - dAtA18[j16] = uint8(uint64(x17)&0x7f | 0x80) - j16++ - x17 >>= 7 - } - dAtA18[j16] = uint8(x17) - j16++ - } - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j16)) - i += copy(dAtA[i:], dAtA18[:j16]) - } - if len(m.Field9) > 0 { - dAtA[i] = 0x4a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) - for _, num := range m.Field9 { - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field10) > 0 { - dAtA[i] = 0x52 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) - for _, num := range m.Field10 { - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field11) > 0 { - dAtA[i] = 0x5a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) - for _, num := range m.Field11 { - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field12) > 0 { - dAtA[i] = 0x62 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) - for _, num := range m.Field12 { - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field13) > 0 { - dAtA[i] = 0x6a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) - for _, b := range m.Field13 { - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepPackedNative) 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 *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field1)*8)) - for _, num := range m.Field1 { - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field2)*4)) - for _, num := range m.Field2 { - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - dAtA20 := make([]byte, len(m.Field3)*10) - var j19 int - for _, num1 := range m.Field3 { - num := uint64(num1) - for num >= 1<<7 { - dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j19++ - } - dAtA20[j19] = uint8(num) - j19++ - } - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j19)) - i += copy(dAtA[i:], dAtA20[:j19]) - } - if len(m.Field4) > 0 { - dAtA22 := make([]byte, len(m.Field4)*10) - var j21 int - for _, num1 := range m.Field4 { - num := uint64(num1) - for num >= 1<<7 { - dAtA22[j21] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j21++ - } - dAtA22[j21] = uint8(num) - j21++ - } - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j21)) - i += copy(dAtA[i:], dAtA22[:j21]) - } - if len(m.Field5) > 0 { - dAtA24 := make([]byte, len(m.Field5)*10) - var j23 int - for _, num := range m.Field5 { - for num >= 1<<7 { - dAtA24[j23] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j23++ - } - dAtA24[j23] = uint8(num) - j23++ - } - dAtA[i] = 0x2a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j23)) - i += copy(dAtA[i:], dAtA24[:j23]) - } - if len(m.Field6) > 0 { - dAtA26 := make([]byte, len(m.Field6)*10) - var j25 int - for _, num := range m.Field6 { - for num >= 1<<7 { - dAtA26[j25] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j25++ - } - dAtA26[j25] = uint8(num) - j25++ - } - dAtA[i] = 0x32 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j25)) - i += copy(dAtA[i:], dAtA26[:j25]) - } - if len(m.Field7) > 0 { - dAtA27 := make([]byte, len(m.Field7)*5) - var j28 int - for _, num := range m.Field7 { - x29 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x29 >= 1<<7 { - dAtA27[j28] = uint8(uint64(x29)&0x7f | 0x80) - j28++ - x29 >>= 7 - } - dAtA27[j28] = uint8(x29) - j28++ - } - dAtA[i] = 0x3a - i++ - i = encodeVarintThetest(dAtA, i, uint64(j28)) - i += copy(dAtA[i:], dAtA27[:j28]) - } - if len(m.Field8) > 0 { - var j30 int - dAtA32 := make([]byte, len(m.Field8)*10) - for _, num := range m.Field8 { - x31 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x31 >= 1<<7 { - dAtA32[j30] = uint8(uint64(x31)&0x7f | 0x80) - j30++ - x31 >>= 7 - } - dAtA32[j30] = uint8(x31) - j30++ - } - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(j30)) - i += copy(dAtA[i:], dAtA32[:j30]) - } - if len(m.Field9) > 0 { - dAtA[i] = 0x4a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field9)*4)) - for _, num := range m.Field9 { - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field10) > 0 { - dAtA[i] = 0x52 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field10)*4)) - for _, num := range m.Field10 { - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field11) > 0 { - dAtA[i] = 0x5a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field11)*8)) - for _, num := range m.Field11 { - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field12) > 0 { - dAtA[i] = 0x62 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field12)*8)) - for _, num := range m.Field12 { - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field13) > 0 { - dAtA[i] = 0x6a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field13))) - for _, b := range m.Field13 { - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidOptStruct) 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 *NidOptStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) - n33, err := m.Field3.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n33 - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) - n34, err := m.Field4.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n34 - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field6)) - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) - n35, err := m.Field8.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n35 - dAtA[i] = 0x68 - i++ - if m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field14))) - i += copy(dAtA[i:], m.Field14) - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptStruct) 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 *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) - n36, err := m.Field3.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n36 - } - if m.Field4 != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) - n37, err := m.Field4.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n37 - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field7 != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) - } - if m.Field8 != nil { - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field8.Size())) - n38, err := m.Field8.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n38 - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepStruct) 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 *NidRepStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - for _, msg := range m.Field3 { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field4) > 0 { - for _, msg := range m.Field4 { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field6) > 0 { - for _, num := range m.Field6 { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field7) > 0 { - for _, num := range m.Field7 { - dAtA[i] = 0x38 - i++ - x39 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x39 >= 1<<7 { - dAtA[i] = uint8(uint64(x39)&0x7f | 0x80) - x39 >>= 7 - i++ - } - dAtA[i] = uint8(x39) - i++ - } - } - if len(m.Field8) > 0 { - for _, msg := range m.Field8 { - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field13) > 0 { - for _, b := range m.Field13 { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - dAtA[i] = 0x72 - 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.Field15) > 0 { - for _, b := range m.Field15 { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepStruct) 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 *NinRepStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.Field3) > 0 { - for _, msg := range m.Field3 { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field4) > 0 { - for _, msg := range m.Field4 { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field6) > 0 { - for _, num := range m.Field6 { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field7) > 0 { - for _, num := range m.Field7 { - dAtA[i] = 0x38 - i++ - x40 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x40 >= 1<<7 { - dAtA[i] = uint8(uint64(x40)&0x7f | 0x80) - x40 >>= 7 - i++ - } - dAtA[i] = uint8(x40) - i++ - } - } - if len(m.Field8) > 0 { - for _, msg := range m.Field8 { - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Field13) > 0 { - for _, b := range m.Field13 { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - dAtA[i] = 0x72 - 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.Field15) > 0 { - for _, b := range m.Field15 { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidEmbeddedStruct) 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 *NidEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NidOptNative != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) - n41, err := m.NidOptNative.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n41 - } - dAtA[i] = 0xc2 - i++ - dAtA[i] = 0xc - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) - n42, err := m.Field200.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n42 - dAtA[i] = 0x90 - i++ - dAtA[i] = 0xd - i++ - if m.Field210 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinEmbeddedStruct) 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 *NinEmbeddedStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NidOptNative != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) - n43, err := m.NidOptNative.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n43 - } - if m.Field200 != nil { - dAtA[i] = 0xc2 - i++ - dAtA[i] = 0xc - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) - n44, err := m.Field200.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n44 - } - if m.Field210 != nil { - dAtA[i] = 0x90 - i++ - dAtA[i] = 0xd - i++ - if *m.Field210 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidNestedStruct) 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 *NidNestedStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n45, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n45 - if len(m.Field2) > 0 { - for _, msg := range m.Field2 { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinNestedStruct) 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 *NinNestedStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n46, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n46 - } - if len(m.Field2) > 0 { - for _, msg := range m.Field2 { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidOptCustom) 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 *NidOptCustom) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) - n47, err := m.Id.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n47 - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) - n48, err := m.Value.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n48 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomDash) 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 *CustomDash) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Value != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) - n49, err := m.Value.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n49 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptCustom) 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 *NinOptCustom) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Id != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Id.Size())) - n50, err := m.Id.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n50 - } - if m.Value != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Value.Size())) - n51, err := m.Value.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n51 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepCustom) 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 *NidRepCustom) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Id) > 0 { - for _, msg := range m.Id { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Value) > 0 { - for _, msg := range m.Value { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepCustom) 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 *NinRepCustom) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Id) > 0 { - for _, msg := range m.Id { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Value) > 0 { - for _, msg := range m.Value { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptNativeUnion) 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 *NinOptNativeUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.Field4 != nil { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) - } - if m.Field5 != nil { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptStructUnion) 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 *NinOptStructUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) - n52, err := m.Field3.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n52 - } - if m.Field4 != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field4.Size())) - n53, err := m.Field4.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n53 - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field7 != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinEmbeddedStructUnion) 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 *NinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NidOptNative != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) - n54, err := m.NidOptNative.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n54 - } - if m.Field200 != nil { - dAtA[i] = 0xc2 - i++ - dAtA[i] = 0xc - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field200.Size())) - n55, err := m.Field200.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n55 - } - if m.Field210 != nil { - dAtA[i] = 0x90 - i++ - dAtA[i] = 0xd - i++ - if *m.Field210 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinNestedStructUnion) 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 *NinNestedStructUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n56, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n56 - } - if m.Field2 != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field2.Size())) - n57, err := m.Field2.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n57 - } - if m.Field3 != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field3.Size())) - n58, err := m.Field3.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n58 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Tree) 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 *Tree) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Or != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Or.Size())) - n59, err := m.Or.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n59 - } - if m.And != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) - n60, err := m.And.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n60 - } - if m.Leaf != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) - n61, err := m.Leaf.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n61 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *OrBranch) 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 *OrBranch) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) - n62, err := m.Left.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n62 - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) - n63, err := m.Right.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n63 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AndBranch) 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 *AndBranch) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) - n64, err := m.Left.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n64 - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) - n65, err := m.Right.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n65 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Leaf) 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 *Leaf) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Value)) - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.StrValue))) - i += copy(dAtA[i:], m.StrValue) - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *DeepTree) 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 *DeepTree) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Down != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) - n66, err := m.Down.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n66 - } - if m.And != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.And.Size())) - n67, err := m.And.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n67 - } - if m.Leaf != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Leaf.Size())) - n68, err := m.Leaf.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n68 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *ADeepBranch) 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 *ADeepBranch) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Down.Size())) - n69, err := m.Down.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n69 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AndDeepBranch) 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 *AndDeepBranch) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Left.Size())) - n70, err := m.Left.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n70 - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Right.Size())) - n71, err := m.Right.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n71 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *DeepLeaf) 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 *DeepLeaf) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Tree.Size())) - n72, err := m.Tree.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n72 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Nil) 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 *Nil) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidOptEnum) 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 *NidOptEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1)) - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptEnum) 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 *NinOptEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepEnum) 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 *NidRepEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field3) > 0 { - for _, num := range m.Field3 { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepEnum) 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 *NinRepEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, num := range m.Field1 { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field2) > 0 { - for _, num := range m.Field2 { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.Field3) > 0 { - for _, num := range m.Field3 { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptEnumDefault) 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 *NinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AnotherNinOptEnum) 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 *AnotherNinOptEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AnotherNinOptEnumDefault) 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 *AnotherNinOptEnumDefault) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Timer) 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 *Timer) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x9 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Time1 - i += 8 - dAtA[i] = 0x11 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Time2 - i += 8 - if m.Data != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Data))) - i += copy(dAtA[i:], m.Data) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *MyExtendable) 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 *MyExtendable) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *OtherExtenable) 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 *OtherExtenable) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.M != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.M.Size())) - n73, err := m.M.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n73 - } - if m.Field2 != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field2)) - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field13)) - } - n, err := github_com_gogo_protobuf_proto.EncodeInternalExtension(m, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NestedDefinition) 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 *NestedDefinition) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.EnumField != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.EnumField)) - } - if m.NNM != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) - n74, err := m.NNM.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n74 - } - if m.NM != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NM.Size())) - n75, err := m.NM.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n75 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NestedDefinition_NestedMessage) 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 *NestedDefinition_NestedMessage) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NestedField1 != nil { - dAtA[i] = 0x9 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.NestedField1 - i += 8 - } - if m.NNM != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NNM.Size())) - n76, err := m.NNM.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n76 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) 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 *NestedDefinition_NestedMessage_NestedNestedMsg) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NestedNestedField1 != nil { - dAtA[i] = 0x52 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.NestedNestedField1))) - i += copy(dAtA[i:], *m.NestedNestedField1) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NestedScope) 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 *NestedScope) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.A != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.A.Size())) - n77, err := m.A.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n77 - } - if m.B != nil { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.B)) - } - if m.C != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.C.Size())) - n78, err := m.C.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n78 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptNativeDefault) 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 *NinOptNativeDefault) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.Field1 - i += 8 - } - if m.Field2 != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.Field2 - i += 4 - } - if m.Field3 != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field3)) - } - if m.Field4 != nil { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field4)) - } - if m.Field5 != nil { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field5)) - } - if m.Field6 != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field6)) - } - if m.Field7 != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) - } - if m.Field8 != nil { - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) - } - if m.Field9 != nil { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.Field9 - i += 4 - } - if m.Field10 != nil { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.Field10 - i += 4 - } - if m.Field11 != nil { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.Field11 - i += 8 - } - if m.Field12 != nil { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.Field12 - i += 8 - } - if m.Field13 != nil { - dAtA[i] = 0x68 - i++ - if *m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Field14 != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field14))) - i += copy(dAtA[i:], *m.Field14) - } - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomContainer) 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 *CustomContainer) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.CustomStruct.Size())) - n79, err := m.CustomStruct.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n79 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNidOptNative) 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 *CustomNameNidOptNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.FieldA - i += 8 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.FieldB - i += 4 - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldC)) - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldD)) - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldE)) - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldF)) - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(m.FieldG)<<1)^uint32((m.FieldG>>31)))) - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(m.FieldH)<<1)^uint64((m.FieldH>>63)))) - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.FieldI - i += 4 - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = m.FieldJ - i += 4 - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.FieldK - i += 8 - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.FieldL - i += 8 - dAtA[i] = 0x68 - i++ - if m.FieldM { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldN))) - i += copy(dAtA[i:], m.FieldN) - if m.FieldO != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) - i += copy(dAtA[i:], m.FieldO) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNinOptNative) 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 *CustomNameNinOptNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.FieldA != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.FieldA - i += 8 - } - if m.FieldB != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.FieldB - i += 4 - } - if m.FieldC != nil { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldC)) - } - if m.FieldD != nil { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldD)) - } - if m.FieldE != nil { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) - } - if m.FieldF != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldF)) - } - if m.FieldG != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldG)<<1)^uint32((*m.FieldG>>31)))) - } - if m.FieldH != nil { - dAtA[i] = 0x40 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint64(*m.FieldH)<<1)^uint64((*m.FieldH>>63)))) - } - if m.FieldI != nil { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = *m.FieldI - i += 4 - } - if m.FieldJ != nil { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = *m.FieldJ - i += 4 - } - if m.FieldK != nil { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = *m.FieldK - i += 8 - } - if m.FielL != nil { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = *m.FielL - i += 8 - } - if m.FieldM != nil { - dAtA[i] = 0x68 - i++ - if *m.FieldM { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.FieldN != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldN))) - i += copy(dAtA[i:], *m.FieldN) - } - if m.FieldO != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldO))) - i += copy(dAtA[i:], m.FieldO) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNinRepNative) 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 *CustomNameNinRepNative) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.FieldA) > 0 { - for _, num := range m.FieldA { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.FieldB) > 0 { - for _, num := range m.FieldB { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.FieldC) > 0 { - for _, num := range m.FieldC { - dAtA[i] = 0x18 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.FieldD) > 0 { - for _, num := range m.FieldD { - dAtA[i] = 0x20 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.FieldE) > 0 { - for _, num := range m.FieldE { - dAtA[i] = 0x28 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.FieldF) > 0 { - for _, num := range m.FieldF { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if len(m.FieldG) > 0 { - for _, num := range m.FieldG { - dAtA[i] = 0x38 - i++ - x80 := (uint32(num) << 1) ^ uint32((num >> 31)) - for x80 >= 1<<7 { - dAtA[i] = uint8(uint64(x80)&0x7f | 0x80) - x80 >>= 7 - i++ - } - dAtA[i] = uint8(x80) - i++ - } - } - if len(m.FieldH) > 0 { - for _, num := range m.FieldH { - dAtA[i] = 0x40 - i++ - x81 := (uint64(num) << 1) ^ uint64((num >> 63)) - for x81 >= 1<<7 { - dAtA[i] = uint8(uint64(x81)&0x7f | 0x80) - x81 >>= 7 - i++ - } - dAtA[i] = uint8(x81) - i++ - } - } - if len(m.FieldI) > 0 { - for _, num := range m.FieldI { - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.FieldJ) > 0 { - for _, num := range m.FieldJ { - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = num - i += 4 - } - } - if len(m.FieldK) > 0 { - for _, num := range m.FieldK { - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.FieldL) > 0 { - for _, num := range m.FieldL { - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = num - i += 8 - } - } - if len(m.FieldM) > 0 { - for _, b := range m.FieldM { - dAtA[i] = 0x68 - i++ - if b { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.FieldN) > 0 { - for _, s := range m.FieldN { - dAtA[i] = 0x72 - 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.FieldO) > 0 { - for _, b := range m.FieldO { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(b))) - i += copy(dAtA[i:], b) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNinStruct) 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 *CustomNameNinStruct) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.FieldA != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.FieldA - i += 8 - } - if m.FieldB != nil { - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = *m.FieldB - i += 4 - } - if m.FieldC != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldC.Size())) - n82, err := m.FieldC.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n82 - } - if len(m.FieldD) > 0 { - for _, msg := range m.FieldD { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.FieldE != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldE)) - } - if m.FieldF != nil { - dAtA[i] = 0x38 - i++ - i = encodeVarintThetest(dAtA, i, uint64((uint32(*m.FieldF)<<1)^uint32((*m.FieldF>>31)))) - } - if m.FieldG != nil { - dAtA[i] = 0x42 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldG.Size())) - n83, err := m.FieldG.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n83 - } - if m.FieldH != nil { - dAtA[i] = 0x68 - i++ - if *m.FieldH { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.FieldI != nil { - dAtA[i] = 0x72 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.FieldI))) - i += copy(dAtA[i:], *m.FieldI) - } - if m.FieldJ != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(m.FieldJ))) - i += copy(dAtA[i:], m.FieldJ) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameCustomType) 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 *CustomNameCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.FieldA != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) - n84, err := m.FieldA.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n84 - } - if m.FieldB != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldB.Size())) - n85, err := m.FieldB.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n85 - } - if len(m.FieldC) > 0 { - for _, msg := range m.FieldC { - dAtA[i] = 0x1a - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.FieldD) > 0 { - for _, msg := range m.FieldD { - dAtA[i] = 0x22 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameNinEmbeddedStructUnion) 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 *CustomNameNinEmbeddedStructUnion) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NidOptNative != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.NidOptNative.Size())) - n86, err := m.NidOptNative.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n86 - } - if m.FieldA != nil { - dAtA[i] = 0xc2 - i++ - dAtA[i] = 0xc - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.FieldA.Size())) - n87, err := m.FieldA.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n87 - } - if m.FieldB != nil { - dAtA[i] = 0x90 - i++ - dAtA[i] = 0xd - i++ - if *m.FieldB { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomNameEnum) 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 *CustomNameEnum) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.FieldA != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.FieldA)) - } - if len(m.FieldB) > 0 { - for _, num := range m.FieldB { - dAtA[i] = 0x10 - i++ - i = encodeVarintThetest(dAtA, i, uint64(num)) - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NoExtensionsMap) 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 *NoExtensionsMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - if m.XXX_extensions != nil { - i += copy(dAtA[i:], m.XXX_extensions) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *Unrecognized) 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 *Unrecognized) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field1))) - i += copy(dAtA[i:], *m.Field1) - } - return i, nil -} - -func (m *UnrecognizedWithInner) 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 *UnrecognizedWithInner) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Embedded) > 0 { - for _, msg := range m.Embedded { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.Field2 != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) - i += copy(dAtA[i:], *m.Field2) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *UnrecognizedWithInner_Inner) 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 *UnrecognizedWithInner_Inner) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - return i, nil -} - -func (m *UnrecognizedWithEmbed) 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 *UnrecognizedWithEmbed) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.UnrecognizedWithEmbed_Embedded.Size())) - n88, err := m.UnrecognizedWithEmbed_Embedded.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n88 - if m.Field2 != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) - i += copy(dAtA[i:], *m.Field2) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *UnrecognizedWithEmbed_Embedded) 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 *UnrecognizedWithEmbed_Embedded) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintThetest(dAtA, i, uint64(*m.Field1)) - } - return i, nil -} - -func (m *Node) 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 *Node) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Label != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Label))) - i += copy(dAtA[i:], *m.Label) - } - if len(m.Children) > 0 { - for _, msg := range m.Children { - dAtA[i] = 0x12 - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NonByteCustomType) 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 *NonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n89, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n89 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidOptNonByteCustomType) 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 *NidOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n90, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n90 - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinOptNonByteCustomType) 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 *NinOptNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field1 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(m.Field1.Size())) - n91, err := m.Field1.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n91 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NidRepNonByteCustomType) 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 *NidRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, msg := range m.Field1 { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *NinRepNonByteCustomType) 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 *NinRepNonByteCustomType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Field1) > 0 { - for _, msg := range m.Field1 { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *ProtoType) 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 *ProtoType) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Field2 != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintThetest(dAtA, i, uint64(len(*m.Field2))) - i += copy(dAtA[i:], *m.Field2) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Thetest(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 encodeFixed32Thetest(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 encodeVarintThetest(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 init() { proto.RegisterFile("combos/unsafemarshaler/thetest.proto", fileDescriptorThetest) } - -var fileDescriptorThetest = []byte{ - // 3089 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, - 0xd5, 0xd7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, - 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, - 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0x57, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, - 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, - 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, - 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, - 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, - 0x30, 0xbf, 0xdb, 0x39, 0xba, 0xdf, 0xe9, 0x2d, 0x9d, 0x18, 0xbd, 0xe6, 0x9e, 0x7e, 0xd4, 0xec, - 0xf6, 0x0e, 0x9a, 0x87, 0x7a, 0x77, 0xc9, 0x3c, 0xd0, 0x4d, 0xbd, 0x67, 0x2e, 0x1e, 0x77, 0x3b, - 0x66, 0x47, 0x4e, 0x58, 0x7f, 0xa7, 0xaf, 0xef, 0xb7, 0xcd, 0x83, 0x93, 0xfb, 0x8b, 0xbb, 0x9d, - 0xa3, 0xa5, 0xfd, 0xce, 0x7e, 0x67, 0xc9, 0x16, 0xde, 0x3f, 0xd9, 0xb3, 0x7f, 0xd9, 0x3f, 0xec, - 0xbf, 0x1c, 0x23, 0xed, 0x9f, 0x18, 0x26, 0xeb, 0xed, 0xd6, 0xf6, 0xb1, 0x59, 0x6f, 0x9a, 0xed, - 0xb7, 0x74, 0x79, 0x16, 0xc6, 0x6e, 0xb5, 0xf5, 0xc3, 0xd6, 0xb2, 0x82, 0x32, 0x28, 0x8b, 0xca, - 0x89, 0xd3, 0xb3, 0xb9, 0x91, 0x06, 0x19, 0xa3, 0xd2, 0x82, 0x22, 0x65, 0x50, 0x56, 0xe2, 0xa4, - 0x05, 0x2a, 0x5d, 0x51, 0x70, 0x06, 0x65, 0x47, 0x39, 0xe9, 0x0a, 0x95, 0x16, 0x95, 0x44, 0x06, - 0x65, 0x31, 0x27, 0x2d, 0x52, 0xe9, 0xaa, 0x32, 0x9a, 0x41, 0xd9, 0x4b, 0x9c, 0x74, 0x95, 0x4a, - 0xd7, 0x94, 0xb1, 0x0c, 0xca, 0x26, 0x38, 0xe9, 0x1a, 0x95, 0xde, 0x50, 0x9e, 0xc9, 0xa0, 0xec, - 0x65, 0x4e, 0x7a, 0x83, 0x4a, 0xd7, 0x95, 0x64, 0x06, 0x65, 0x65, 0x4e, 0xba, 0x4e, 0xa5, 0x37, - 0x95, 0xf1, 0x0c, 0xca, 0x3e, 0xc3, 0x49, 0x6f, 0xca, 0x2a, 0x3c, 0xe3, 0x3c, 0x79, 0x5e, 0x81, - 0x0c, 0xca, 0x4e, 0x13, 0xb1, 0x3b, 0xe8, 0xc9, 0x97, 0x95, 0x89, 0x0c, 0xca, 0x8e, 0xf1, 0xf2, - 0x65, 0x4f, 0x5e, 0x50, 0x26, 0x33, 0x28, 0x9b, 0xe2, 0xe5, 0x05, 0x4f, 0xbe, 0xa2, 0x5c, 0xca, - 0xa0, 0x6c, 0x92, 0x97, 0xaf, 0x78, 0xf2, 0xa2, 0x32, 0x95, 0x41, 0xd9, 0x71, 0x5e, 0x5e, 0xf4, - 0xe4, 0xab, 0xca, 0x74, 0x06, 0x65, 0x27, 0x79, 0xf9, 0xaa, 0xf6, 0xae, 0x0d, 0xaf, 0xe1, 0xc1, - 0x3b, 0xc3, 0xc3, 0x4b, 0x81, 0x9d, 0xe1, 0x81, 0xa5, 0x90, 0xce, 0xf0, 0x90, 0x52, 0x30, 0x67, - 0x78, 0x30, 0x29, 0x8c, 0x33, 0x3c, 0x8c, 0x14, 0xc0, 0x19, 0x1e, 0x40, 0x0a, 0xdd, 0x0c, 0x0f, - 0x1d, 0x05, 0x6d, 0x86, 0x07, 0x8d, 0xc2, 0x35, 0xc3, 0xc3, 0x45, 0x81, 0x52, 0x04, 0xa0, 0x3c, - 0x88, 0x14, 0x01, 0x22, 0x0f, 0x1c, 0x45, 0x00, 0xc7, 0x83, 0x45, 0x11, 0x60, 0xf1, 0x00, 0x51, - 0x04, 0x40, 0x3c, 0x28, 0x14, 0x01, 0x0a, 0x0f, 0x04, 0x92, 0x63, 0x0d, 0xfd, 0x38, 0x20, 0xc7, - 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, 0xc7, 0xf0, 0xc0, 0x1c, - 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x30, 0xc7, 0xf0, 0xe0, 0x1c, 0xc3, 0x11, 0x39, - 0x86, 0x23, 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x8e, 0xc8, 0x31, 0x1c, 0x91, 0x63, 0x38, 0x34, 0xc7, - 0x3c, 0x78, 0x67, 0x78, 0x78, 0x03, 0x73, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, - 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0x90, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0xc3, 0x72, - 0x0c, 0x87, 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, 0x9a, 0x63, 0x38, 0x34, 0xc7, 0x70, 0x68, 0x8e, - 0x61, 0x36, 0xc7, 0xfe, 0x8c, 0x41, 0x76, 0x72, 0xec, 0x4e, 0x73, 0xf7, 0x87, 0x7a, 0x8b, 0x40, - 0xa1, 0x0a, 0x99, 0x36, 0x66, 0x41, 0x97, 0xf2, 0x20, 0x51, 0x85, 0x5c, 0xe3, 0xe5, 0x05, 0x2a, - 0x77, 0xb3, 0x8d, 0x97, 0xaf, 0x50, 0xb9, 0x9b, 0x6f, 0xbc, 0xbc, 0x48, 0xe5, 0x6e, 0xc6, 0xf1, - 0xf2, 0x55, 0x2a, 0x77, 0x73, 0x8e, 0x97, 0xaf, 0x51, 0xb9, 0x9b, 0x75, 0xbc, 0xfc, 0x06, 0x95, - 0xbb, 0x79, 0xc7, 0xcb, 0xd7, 0xa9, 0xdc, 0xcd, 0x3c, 0x5e, 0x7e, 0x53, 0xce, 0x88, 0xb9, 0xe7, - 0x2a, 0x50, 0x68, 0x33, 0x62, 0xf6, 0x09, 0x1a, 0xcb, 0x9e, 0x86, 0x9b, 0x7f, 0x82, 0x46, 0xc1, - 0xd3, 0x70, 0x33, 0x50, 0xd0, 0x58, 0xd1, 0xde, 0xb3, 0xe1, 0x33, 0x44, 0xf8, 0xd2, 0x02, 0x7c, - 0x12, 0x03, 0x5d, 0x5a, 0x80, 0x4e, 0x62, 0x60, 0x4b, 0x0b, 0xb0, 0x49, 0x0c, 0x64, 0x69, 0x01, - 0x32, 0x89, 0x81, 0x2b, 0x2d, 0xc0, 0x25, 0x31, 0x50, 0xa5, 0x05, 0xa8, 0x24, 0x06, 0xa6, 0xb4, - 0x00, 0x93, 0xc4, 0x40, 0x94, 0x16, 0x20, 0x92, 0x18, 0x78, 0xd2, 0x02, 0x3c, 0x12, 0x03, 0xcd, - 0xac, 0x08, 0x8d, 0xc4, 0xc2, 0x32, 0x2b, 0xc2, 0x22, 0xb1, 0x90, 0xcc, 0x8a, 0x90, 0x48, 0x2c, - 0x1c, 0xb3, 0x22, 0x1c, 0x12, 0x0b, 0xc5, 0x97, 0x92, 0xdb, 0x11, 0xbe, 0x69, 0x76, 0x4f, 0x76, - 0xcd, 0x0b, 0x75, 0x84, 0x79, 0xae, 0x7d, 0x98, 0x28, 0xc8, 0x8b, 0x76, 0xc3, 0xca, 0x76, 0x9c, - 0xc2, 0x1b, 0x2c, 0xcf, 0x35, 0x16, 0x8c, 0x85, 0x11, 0x6c, 0x51, 0xbc, 0x50, 0x6f, 0x98, 0xe7, - 0xda, 0x8c, 0x68, 0xff, 0xd6, 0xbf, 0xf2, 0x8e, 0xed, 0x91, 0xe4, 0x76, 0x6c, 0x24, 0xfc, 0xc3, - 0x76, 0x6c, 0xb9, 0xe8, 0x90, 0xd3, 0x60, 0xe7, 0xa2, 0x83, 0xed, 0x7b, 0xeb, 0xc4, 0xed, 0xe0, - 0x72, 0xd1, 0xa1, 0xa5, 0x41, 0x7d, 0xba, 0xfd, 0x16, 0x61, 0x70, 0x43, 0x3f, 0x0e, 0x60, 0xf0, - 0xb0, 0xfd, 0x56, 0x9e, 0x2b, 0x25, 0xc3, 0x32, 0x18, 0x0f, 0xcd, 0xe0, 0x61, 0x3b, 0xaf, 0x3c, - 0x57, 0x5e, 0x86, 0x66, 0xf0, 0x57, 0xd0, 0x0f, 0x11, 0x06, 0x7b, 0xe1, 0x1f, 0xb6, 0x1f, 0xca, - 0x45, 0x87, 0x3c, 0x90, 0xc1, 0x78, 0x08, 0x06, 0xc7, 0xe9, 0x8f, 0x72, 0xd1, 0xa1, 0x0d, 0x66, - 0xf0, 0x85, 0xbb, 0x99, 0xf7, 0x11, 0x5c, 0xae, 0xb7, 0x5b, 0xb5, 0xa3, 0xfb, 0x7a, 0xab, 0xa5, - 0xb7, 0x48, 0x1c, 0xf3, 0x5c, 0x25, 0x08, 0x81, 0xfa, 0xf1, 0xd9, 0x9c, 0x17, 0xe1, 0x55, 0x48, - 0x3a, 0x31, 0xcd, 0xe7, 0x95, 0x53, 0x14, 0x51, 0xe1, 0xa8, 0xaa, 0x7c, 0xd5, 0x35, 0x5b, 0xce, - 0x2b, 0x7f, 0x47, 0x4c, 0x95, 0xa3, 0xc3, 0xda, 0xcf, 0x6d, 0x0f, 0x8d, 0x0b, 0x7b, 0xb8, 0x14, - 0xcb, 0x43, 0xc6, 0xb7, 0x17, 0x7c, 0xbe, 0x31, 0x5e, 0x9d, 0xc0, 0x74, 0xbd, 0xdd, 0xaa, 0xeb, - 0x3d, 0x33, 0x9e, 0x4b, 0x8e, 0x8e, 0x50, 0x0f, 0xf2, 0x1c, 0x2d, 0x59, 0x0b, 0x4a, 0x69, 0xbe, - 0x46, 0x68, 0x6d, 0x6b, 0x59, 0x83, 0x5b, 0x36, 0x17, 0xb6, 0xac, 0x57, 0xd9, 0xe9, 0x82, 0xb9, - 0xb0, 0x05, 0xbd, 0x1c, 0xa2, 0x4b, 0xbd, 0xed, 0xbe, 0x9c, 0x2b, 0x27, 0x3d, 0xb3, 0x73, 0x24, - 0xcf, 0x82, 0xb4, 0xd9, 0xb2, 0xd7, 0x98, 0x2c, 0x4f, 0x5a, 0x4e, 0x7d, 0x7c, 0x36, 0x97, 0xb8, - 0x7b, 0xd2, 0x6e, 0x35, 0xa4, 0xcd, 0x96, 0x7c, 0x1b, 0x46, 0xbf, 0xd3, 0x3c, 0x3c, 0xd1, 0xed, - 0x57, 0xc4, 0x64, 0xb9, 0x48, 0x14, 0x5e, 0x0e, 0xdd, 0x23, 0xb2, 0x16, 0x5e, 0xda, 0xb5, 0xa7, - 0x5e, 0xbc, 0xdb, 0x36, 0xcc, 0xe5, 0xc2, 0x7a, 0xc3, 0x99, 0x42, 0xfb, 0x3e, 0x80, 0xb3, 0x66, - 0xb5, 0xd9, 0x3b, 0x90, 0xeb, 0xee, 0xcc, 0xce, 0xd2, 0xeb, 0x1f, 0x9f, 0xcd, 0x15, 0xe3, 0xcc, - 0x7a, 0xbd, 0xd5, 0xec, 0x1d, 0x5c, 0x37, 0x1f, 0x1c, 0xeb, 0x8b, 0xe5, 0x07, 0xa6, 0xde, 0x73, - 0x67, 0x3f, 0x76, 0xdf, 0x7a, 0xe4, 0xb9, 0x14, 0xe6, 0xb9, 0x92, 0xdc, 0x33, 0xdd, 0xe2, 0x9f, - 0x29, 0xff, 0xa4, 0xcf, 0xf3, 0xb6, 0xfb, 0x92, 0x10, 0x22, 0x89, 0xa3, 0x22, 0x89, 0x2f, 0x1a, - 0xc9, 0x63, 0xb7, 0x3e, 0x0a, 0xcf, 0x8a, 0x07, 0x3d, 0x2b, 0xbe, 0xc8, 0xb3, 0xfe, 0xdb, 0xc9, - 0x56, 0x9a, 0x4f, 0x77, 0x8d, 0x76, 0xc7, 0xf8, 0xda, 0xed, 0x05, 0x3d, 0xd5, 0x2e, 0xa0, 0x94, - 0x38, 0x7d, 0x38, 0x87, 0xb4, 0xf7, 0x25, 0xf7, 0xc9, 0x9d, 0x44, 0x7a, 0xb2, 0x27, 0xff, 0xba, - 0xf4, 0x54, 0x5f, 0x45, 0x84, 0x7e, 0x85, 0x60, 0xc6, 0x57, 0xc9, 0x9d, 0x30, 0x3d, 0xdd, 0x72, - 0x6e, 0x0c, 0x5b, 0xce, 0x89, 0x83, 0xbf, 0x47, 0xf0, 0x9c, 0x50, 0x5e, 0x1d, 0xf7, 0x96, 0x04, - 0xf7, 0x9e, 0xf7, 0xaf, 0x64, 0x2b, 0x32, 0xde, 0xb1, 0xf0, 0x0a, 0x06, 0xcc, 0xcc, 0x14, 0xf7, - 0xa2, 0x80, 0xfb, 0x2c, 0x35, 0x08, 0x08, 0x97, 0xcb, 0x00, 0xe2, 0x76, 0x07, 0x12, 0x3b, 0x5d, - 0x5d, 0x97, 0x55, 0x90, 0xb6, 0xbb, 0xc4, 0xc3, 0x29, 0xc7, 0x7e, 0xbb, 0x5b, 0xee, 0x36, 0x8d, - 0xdd, 0x83, 0x86, 0xb4, 0xdd, 0x95, 0xaf, 0x02, 0xde, 0x30, 0x5a, 0xc4, 0xa3, 0x69, 0x47, 0x61, - 0xc3, 0x68, 0x11, 0x0d, 0x4b, 0x26, 0xab, 0x90, 0x78, 0x43, 0x6f, 0xee, 0x11, 0x27, 0xc0, 0xd1, - 0xb1, 0x46, 0x1a, 0xf6, 0x38, 0x59, 0xf0, 0x7b, 0x90, 0x74, 0x27, 0x96, 0xe7, 0x2d, 0x8b, 0x3d, - 0x93, 0x2c, 0x4b, 0x2c, 0x2c, 0x77, 0xc8, 0x9b, 0xcb, 0x96, 0xca, 0x0b, 0x30, 0xda, 0x68, 0xef, - 0x1f, 0x98, 0x64, 0x71, 0xbf, 0x9a, 0x23, 0xd6, 0xee, 0xc1, 0x38, 0xf5, 0xe8, 0x29, 0x4f, 0x5d, - 0x75, 0x1e, 0x4d, 0x4e, 0xb3, 0xef, 0x13, 0x77, 0xdf, 0xd2, 0x19, 0x92, 0x33, 0x90, 0x7c, 0xd3, - 0xec, 0x7a, 0x45, 0xdf, 0xed, 0x48, 0xe9, 0xa8, 0xf6, 0x2e, 0x82, 0x64, 0x55, 0xd7, 0x8f, 0xed, - 0x80, 0x5f, 0x83, 0x44, 0xb5, 0xf3, 0x23, 0x83, 0x38, 0x78, 0x99, 0x44, 0xd4, 0x12, 0x93, 0x98, - 0xda, 0x62, 0xf9, 0x1a, 0x1b, 0xf7, 0x67, 0x69, 0xdc, 0x19, 0x3d, 0x3b, 0xf6, 0x1a, 0x17, 0x7b, - 0x02, 0xa0, 0xa5, 0xe4, 0x8b, 0xff, 0x0d, 0x98, 0x60, 0x56, 0x91, 0xb3, 0xc4, 0x0d, 0x49, 0x34, - 0x64, 0x63, 0x65, 0x69, 0x68, 0x3a, 0x5c, 0xe2, 0x16, 0xb6, 0x4c, 0x99, 0x10, 0x87, 0x98, 0xda, - 0x61, 0xce, 0xf1, 0x61, 0x0e, 0x56, 0x25, 0xa1, 0xce, 0x3b, 0x31, 0xb2, 0xc3, 0x3d, 0xef, 0x90, - 0x33, 0x1c, 0x44, 0xeb, 0x6f, 0x6d, 0x14, 0x70, 0xbd, 0x7d, 0xa8, 0xbd, 0x0a, 0xe0, 0xa4, 0x7c, - 0xcd, 0x38, 0x39, 0x12, 0xb2, 0x6e, 0xca, 0x0d, 0xf0, 0xce, 0x81, 0xbe, 0xa3, 0xf7, 0x6c, 0x15, - 0xbe, 0x9f, 0xb2, 0x0a, 0x0c, 0x38, 0x29, 0x66, 0xdb, 0xbf, 0x14, 0x69, 0x1f, 0xd8, 0x89, 0x59, - 0xaa, 0x8a, 0xa3, 0x7a, 0x4f, 0x37, 0x37, 0x8c, 0x8e, 0x79, 0xa0, 0x77, 0x05, 0x8b, 0x82, 0xbc, - 0xc2, 0x25, 0xec, 0x54, 0xe1, 0x05, 0x6a, 0x11, 0x6a, 0xb4, 0xa2, 0x7d, 0x68, 0x3b, 0x68, 0xb5, - 0x02, 0xbe, 0x07, 0xc4, 0x31, 0x1e, 0x50, 0x5e, 0xe3, 0xfa, 0xb7, 0x01, 0x6e, 0x0a, 0x9f, 0x96, - 0x37, 0xb9, 0xef, 0x9c, 0xc1, 0xce, 0xf2, 0xdf, 0x98, 0x6e, 0x4c, 0x5d, 0x97, 0x5f, 0x8a, 0x74, - 0x39, 0xa4, 0xbb, 0x1d, 0x36, 0xa6, 0x38, 0x6e, 0x4c, 0xff, 0x44, 0x3b, 0x0e, 0x6b, 0xb8, 0xaa, - 0xef, 0x35, 0x4f, 0x0e, 0x4d, 0xf9, 0xe5, 0x48, 0xec, 0x4b, 0xa8, 0x42, 0x5d, 0x2d, 0xc6, 0x85, - 0xbf, 0x24, 0x95, 0xcb, 0xd4, 0xdd, 0x1b, 0x43, 0x50, 0xa0, 0x24, 0x55, 0x2a, 0xb4, 0x6c, 0x27, - 0xdf, 0x7b, 0x38, 0x87, 0x3e, 0x78, 0x38, 0x37, 0xa2, 0xfd, 0x0e, 0xc1, 0x65, 0xa2, 0xc9, 0x10, - 0xf7, 0xba, 0xe0, 0xfc, 0x15, 0xb7, 0x66, 0x04, 0x45, 0xe0, 0xbf, 0x46, 0xde, 0xbf, 0x22, 0x50, - 0x7c, 0xbe, 0xba, 0xf1, 0xce, 0xc7, 0x72, 0xb9, 0x84, 0x6a, 0xff, 0xfb, 0x98, 0xdf, 0x83, 0xd1, - 0x9d, 0xf6, 0x91, 0xde, 0xb5, 0xde, 0x04, 0xd6, 0x1f, 0x8e, 0xcb, 0xee, 0x61, 0x8e, 0x33, 0xe4, - 0xca, 0x1c, 0xe7, 0x38, 0x59, 0x41, 0x56, 0x20, 0x51, 0x6d, 0x9a, 0x4d, 0xdb, 0x83, 0x49, 0x5a, - 0x5f, 0x9b, 0x66, 0x53, 0x5b, 0x81, 0xc9, 0xad, 0x07, 0xb5, 0xb7, 0x4d, 0xdd, 0x68, 0x35, 0xef, - 0x1f, 0x8a, 0x67, 0xa0, 0x6e, 0xbf, 0xba, 0x9c, 0x1b, 0x4d, 0xb6, 0x52, 0xa7, 0xa8, 0x94, 0xb0, - 0xfd, 0x79, 0x0b, 0xa6, 0xb6, 0x2d, 0xb7, 0x6d, 0x3b, 0xdb, 0x2c, 0x03, 0x68, 0x8b, 0x6f, 0x84, - 0xd8, 0x59, 0x1b, 0x68, 0x4b, 0x68, 0x1f, 0x31, 0x0d, 0x8f, 0xd0, 0xb6, 0x61, 0xda, 0xb6, 0xe5, - 0x12, 0xc9, 0xa9, 0xd4, 0xe5, 0x5c, 0x22, 0x09, 0xa9, 0x4b, 0x64, 0xdd, 0xbf, 0x61, 0x48, 0x39, - 0xad, 0x4e, 0x55, 0xdf, 0x6b, 0x1b, 0x6d, 0xd3, 0xdf, 0xaf, 0x52, 0x8f, 0xe5, 0x6f, 0xc2, 0xb8, - 0x15, 0x52, 0xfb, 0x17, 0x01, 0xec, 0x2a, 0x69, 0x51, 0x84, 0x29, 0xc8, 0x80, 0x4d, 0x1d, 0xcf, - 0x46, 0xbe, 0x05, 0xb8, 0x5e, 0xdf, 0x22, 0x2f, 0xb7, 0xe2, 0x40, 0xd3, 0x2d, 0xbd, 0xd7, 0x6b, - 0xee, 0xeb, 0xe4, 0x17, 0x19, 0xeb, 0xed, 0x37, 0xac, 0x09, 0xe4, 0x22, 0x48, 0xf5, 0x2d, 0xd2, - 0xf0, 0xce, 0xc7, 0x99, 0xa6, 0x21, 0xd5, 0xb7, 0xd2, 0x7f, 0x41, 0x70, 0x89, 0x1b, 0x95, 0x35, - 0x98, 0x74, 0x06, 0x98, 0xc7, 0x1d, 0x6b, 0x70, 0x63, 0xae, 0xcf, 0xd2, 0x05, 0x7d, 0x4e, 0x6f, - 0xc0, 0xb4, 0x30, 0x2e, 0x2f, 0x82, 0xcc, 0x0e, 0x11, 0x27, 0xc0, 0x6e, 0xa8, 0x03, 0x24, 0xda, - 0xff, 0x01, 0x78, 0x71, 0x95, 0xa7, 0x61, 0x62, 0xe7, 0xde, 0x9d, 0xda, 0x0f, 0xea, 0xb5, 0x37, - 0x77, 0x6a, 0xd5, 0x14, 0xd2, 0xfe, 0x80, 0x60, 0x82, 0xb4, 0xad, 0xbb, 0x9d, 0x63, 0x5d, 0x2e, - 0x03, 0xda, 0x20, 0x0c, 0x7a, 0x32, 0xbf, 0xd1, 0x86, 0xbc, 0x04, 0xa8, 0x1c, 0x1f, 0x6a, 0x54, - 0x96, 0x0b, 0x80, 0x2a, 0x04, 0xe0, 0x78, 0xc8, 0xa0, 0x8a, 0xf6, 0x2f, 0x0c, 0xcf, 0xb2, 0x6d, - 0xb4, 0x5b, 0x4f, 0xae, 0xf2, 0xdf, 0x4d, 0xa5, 0xf1, 0xe5, 0xc2, 0x4a, 0x71, 0xd1, 0xfa, 0x87, - 0x52, 0xf2, 0x2a, 0xff, 0x09, 0xe5, 0x57, 0xf1, 0x5d, 0x13, 0x29, 0x25, 0x18, 0xa9, 0xef, 0x9a, - 0x08, 0x27, 0xf5, 0x5d, 0x13, 0xe1, 0xa4, 0xbe, 0x6b, 0x22, 0x9c, 0xd4, 0x77, 0x14, 0xc0, 0x49, - 0x7d, 0xd7, 0x44, 0x38, 0xa9, 0xef, 0x9a, 0x08, 0x27, 0xf5, 0x5f, 0x13, 0x21, 0xe2, 0xd0, 0x6b, - 0x22, 0xbc, 0xdc, 0x7f, 0x4d, 0x84, 0x97, 0xfb, 0xaf, 0x89, 0x94, 0x12, 0x66, 0xf7, 0x44, 0x0f, - 0x3f, 0x74, 0xe0, 0xed, 0x07, 0x7d, 0x03, 0x7a, 0x05, 0x78, 0x1b, 0xa6, 0x9d, 0xfd, 0x88, 0x4a, - 0xc7, 0x30, 0x9b, 0x6d, 0x43, 0xef, 0xca, 0xdf, 0x80, 0x49, 0x67, 0xc8, 0xf9, 0xca, 0x09, 0xfa, - 0x0a, 0x74, 0xe4, 0xa4, 0xdc, 0x72, 0xda, 0xda, 0x97, 0x09, 0x98, 0x71, 0x06, 0xea, 0xcd, 0x23, - 0x9d, 0xbb, 0x64, 0xb4, 0x20, 0x1c, 0x29, 0x4d, 0x59, 0xe6, 0xfd, 0xb3, 0x39, 0x67, 0x74, 0x83, - 0x92, 0x69, 0x41, 0x38, 0x5c, 0xe2, 0xf5, 0xbc, 0xf7, 0xcf, 0x82, 0x70, 0xf1, 0x88, 0xd7, 0xa3, - 0xaf, 0x1b, 0xaa, 0xe7, 0x5e, 0x41, 0xe2, 0xf5, 0xaa, 0x94, 0x65, 0x0b, 0xc2, 0x65, 0x24, 0x5e, - 0xaf, 0x46, 0xf9, 0xb6, 0x20, 0x1c, 0x3d, 0xf1, 0x7a, 0xb7, 0x28, 0xf3, 0x16, 0x84, 0x43, 0x28, - 0x5e, 0xef, 0x5b, 0x94, 0x83, 0x0b, 0xc2, 0x55, 0x25, 0x5e, 0xef, 0x75, 0xca, 0xc6, 0x05, 0xe1, - 0xd2, 0x12, 0xaf, 0xb7, 0x49, 0x79, 0x99, 0x15, 0xaf, 0x2f, 0xf1, 0x8a, 0xb7, 0x3d, 0x86, 0x66, - 0xc5, 0x8b, 0x4c, 0xbc, 0xe6, 0xb7, 0x3d, 0xae, 0x66, 0xc5, 0x2b, 0x4d, 0xbc, 0xe6, 0x1b, 0x1e, - 0x6b, 0xb3, 0xe2, 0x51, 0x19, 0xaf, 0xb9, 0xe5, 0xf1, 0x37, 0x2b, 0x1e, 0x9a, 0xf1, 0x9a, 0x75, - 0x8f, 0xc9, 0x59, 0xf1, 0xf8, 0x8c, 0xd7, 0xdc, 0xf6, 0xf6, 0xd0, 0x3f, 0x12, 0xe8, 0xc7, 0x5c, - 0x82, 0xd2, 0x04, 0xfa, 0x41, 0x00, 0xf5, 0x34, 0x81, 0x7a, 0x10, 0x40, 0x3b, 0x4d, 0xa0, 0x1d, - 0x04, 0x50, 0x4e, 0x13, 0x28, 0x07, 0x01, 0x74, 0xd3, 0x04, 0xba, 0x41, 0x00, 0xd5, 0x34, 0x81, - 0x6a, 0x10, 0x40, 0x33, 0x4d, 0xa0, 0x19, 0x04, 0x50, 0x4c, 0x13, 0x28, 0x06, 0x01, 0xf4, 0xd2, - 0x04, 0x7a, 0x41, 0x00, 0xb5, 0xe6, 0x45, 0x6a, 0x41, 0x10, 0xad, 0xe6, 0x45, 0x5a, 0x41, 0x10, - 0xa5, 0x5e, 0x14, 0x29, 0x35, 0xde, 0x3f, 0x9b, 0x1b, 0xb5, 0x86, 0x18, 0x36, 0xcd, 0x8b, 0x6c, - 0x82, 0x20, 0x26, 0xcd, 0x8b, 0x4c, 0x82, 0x20, 0x16, 0xcd, 0x8b, 0x2c, 0x82, 0x20, 0x06, 0x3d, - 0x12, 0x19, 0xe4, 0x5d, 0xf1, 0xd1, 0x84, 0x13, 0xc5, 0x28, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, - 0x18, 0x84, 0x63, 0x30, 0x08, 0xc7, 0x60, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, 0x38, 0x06, - 0x83, 0x70, 0x1c, 0x06, 0xe1, 0x58, 0x0c, 0xc2, 0x61, 0x0c, 0x9a, 0x17, 0x2f, 0x3c, 0x40, 0x50, - 0x41, 0x9a, 0x17, 0x4f, 0x3e, 0xa3, 0x29, 0x84, 0x63, 0x51, 0x08, 0x87, 0x51, 0xe8, 0x23, 0x0c, - 0xcf, 0x72, 0x14, 0x22, 0xc7, 0x43, 0x4f, 0xab, 0x02, 0xad, 0xc5, 0xb8, 0x5f, 0x11, 0xc4, 0xa9, - 0xb5, 0x18, 0x67, 0xd4, 0x83, 0x78, 0xe6, 0xaf, 0x42, 0xb5, 0x18, 0x55, 0xe8, 0x16, 0xe5, 0xd0, - 0x5a, 0x8c, 0x7b, 0x17, 0x7e, 0xee, 0xad, 0x0f, 0x2a, 0x02, 0xaf, 0xc7, 0x2a, 0x02, 0x9b, 0xb1, - 0x8a, 0xc0, 0x6d, 0x0f, 0xc1, 0x9f, 0x4a, 0xf0, 0x9c, 0x87, 0xa0, 0xf3, 0xd7, 0xce, 0x83, 0x63, - 0xab, 0x04, 0x78, 0x27, 0x54, 0xb2, 0x7b, 0x6a, 0xc3, 0xc0, 0x28, 0x6d, 0xb6, 0xe4, 0x3b, 0xfc, - 0x59, 0x55, 0x69, 0xd8, 0xf3, 0x1b, 0x06, 0x71, 0xb2, 0x17, 0x3a, 0x0f, 0x78, 0xb3, 0xd5, 0xb3, - 0xab, 0x45, 0xd0, 0xb2, 0x95, 0x86, 0x25, 0x96, 0x1b, 0x30, 0x66, 0xab, 0xf7, 0x6c, 0x78, 0x2f, - 0xb2, 0x70, 0xb5, 0x41, 0x66, 0xd2, 0x1e, 0x21, 0xc8, 0x70, 0x54, 0x7e, 0x3a, 0x27, 0x06, 0xaf, - 0xc4, 0x3a, 0x31, 0xe0, 0x12, 0xc4, 0x3b, 0x3d, 0xf8, 0x7f, 0xff, 0x41, 0x35, 0x9b, 0x25, 0xe2, - 0x49, 0xc2, 0x4f, 0x60, 0xca, 0x7b, 0x02, 0xfb, 0x93, 0x6d, 0x35, 0x7a, 0x33, 0x33, 0x28, 0x35, - 0x57, 0x85, 0x4d, 0xb4, 0x81, 0x66, 0x34, 0x5b, 0xb5, 0x12, 0x4c, 0xd7, 0x3b, 0xf6, 0x96, 0x41, - 0xaf, 0xdd, 0x31, 0x7a, 0x5b, 0xcd, 0xe3, 0xa8, 0xbd, 0x88, 0xa4, 0xd5, 0x9a, 0x9f, 0xfe, 0x7a, - 0x6e, 0x44, 0x7b, 0x19, 0x26, 0xef, 0x1a, 0x5d, 0x7d, 0xb7, 0xb3, 0x6f, 0xb4, 0x7f, 0xac, 0xb7, - 0x04, 0xc3, 0x71, 0xd7, 0xb0, 0x94, 0x78, 0x6c, 0x69, 0xff, 0x02, 0xc1, 0x15, 0x56, 0xfd, 0xbb, - 0x6d, 0xf3, 0x60, 0xd3, 0xb0, 0x7a, 0xfa, 0x57, 0x21, 0xa9, 0x13, 0xe0, 0xec, 0x77, 0xd7, 0x84, - 0xfb, 0x19, 0x19, 0xa8, 0xbe, 0x68, 0xff, 0xdb, 0xa0, 0x26, 0xc2, 0x16, 0x87, 0xbb, 0x6c, 0x21, - 0x7d, 0x0d, 0x46, 0x9d, 0xf9, 0x79, 0xbf, 0x2e, 0x09, 0x7e, 0xfd, 0x36, 0xc0, 0x2f, 0x9b, 0x47, - 0xf2, 0x6d, 0xce, 0x2f, 0xe6, 0x6b, 0x35, 0x50, 0x7d, 0xd1, 0x25, 0x5f, 0x39, 0x69, 0xf5, 0x7f, - 0x36, 0xa3, 0xa2, 0x9d, 0xcc, 0x42, 0xb2, 0x26, 0xea, 0x04, 0xfb, 0x59, 0x85, 0x44, 0xbd, 0xd3, - 0xd2, 0xe5, 0xe7, 0x60, 0xf4, 0x8d, 0xe6, 0x7d, 0xfd, 0x90, 0x04, 0xd9, 0xf9, 0x21, 0x2f, 0x40, - 0xb2, 0x72, 0xd0, 0x3e, 0x6c, 0x75, 0x75, 0x83, 0x1c, 0xd9, 0x93, 0x1d, 0x74, 0xcb, 0xa6, 0x41, - 0x65, 0x5a, 0x05, 0x2e, 0xd7, 0x3b, 0x46, 0xf9, 0x81, 0xc9, 0xd6, 0x8d, 0x45, 0x21, 0x45, 0xc8, - 0x91, 0xcf, 0x1d, 0x2b, 0x1b, 0x2d, 0x85, 0xf2, 0xe8, 0xc7, 0x67, 0x73, 0x68, 0x87, 0x6e, 0x9f, - 0x6f, 0xc1, 0xf3, 0x24, 0x7d, 0x7c, 0x53, 0x15, 0xa2, 0xa6, 0x1a, 0x27, 0xc7, 0xd4, 0xcc, 0x74, - 0x9b, 0xd6, 0x74, 0x46, 0xe0, 0x74, 0x4f, 0xe6, 0x99, 0xd5, 0x14, 0x0d, 0xf4, 0x0c, 0x0f, 0xe5, - 0x59, 0xe0, 0x74, 0x8b, 0x51, 0xd3, 0x09, 0x9e, 0xbd, 0x08, 0xe3, 0x54, 0xc6, 0xb0, 0x81, 0xcd, - 0x94, 0x42, 0x4e, 0x83, 0x09, 0x26, 0x61, 0xe5, 0x51, 0x40, 0x1b, 0xa9, 0x11, 0xeb, 0xbf, 0x72, - 0x0a, 0x59, 0xff, 0x55, 0x52, 0x52, 0xee, 0x1a, 0x4c, 0x0b, 0xdb, 0x97, 0x96, 0xa4, 0x9a, 0x02, - 0xeb, 0xbf, 0x5a, 0x6a, 0x22, 0x9d, 0x78, 0xef, 0x37, 0xea, 0x48, 0xee, 0x15, 0x90, 0xfd, 0x1b, - 0x9d, 0xf2, 0x18, 0x48, 0x1b, 0xd6, 0x94, 0xcf, 0x83, 0x54, 0x2e, 0xa7, 0x50, 0x7a, 0xfa, 0x67, - 0xbf, 0xcc, 0x4c, 0x94, 0x75, 0xd3, 0xd4, 0xbb, 0xf7, 0x74, 0xb3, 0x5c, 0x26, 0xc6, 0xaf, 0xc1, - 0x95, 0xc0, 0x8d, 0x52, 0xcb, 0xbe, 0x52, 0x71, 0xec, 0xab, 0x55, 0x9f, 0x7d, 0xb5, 0x6a, 0xdb, - 0xa3, 0x92, 0x7b, 0xe0, 0xbc, 0x21, 0x07, 0x6c, 0x4b, 0x2a, 0x2d, 0xe6, 0x80, 0x7b, 0xa3, 0xf4, - 0x1a, 0xd1, 0x2d, 0x07, 0xea, 0xea, 0x11, 0x07, 0xd6, 0xe5, 0x52, 0x85, 0xd8, 0x57, 0x02, 0xed, - 0xf7, 0x84, 0x53, 0x55, 0xfe, 0x0d, 0x41, 0x26, 0xa9, 0x50, 0x87, 0xab, 0x81, 0x93, 0x1c, 0x30, - 0x77, 0xdd, 0xab, 0xd4, 0xe1, 0x5a, 0xa0, 0x6e, 0x3b, 0xe2, 0xce, 0x57, 0xad, 0xb4, 0x44, 0x5e, - 0xf2, 0x1b, 0xcb, 0xf2, 0x15, 0x37, 0x47, 0xb9, 0x0a, 0x4c, 0x02, 0xe4, 0x6a, 0x95, 0x2a, 0xc4, - 0xa0, 0x1c, 0x6a, 0x10, 0x1e, 0x25, 0xd7, 0xb2, 0xf4, 0x3a, 0x99, 0xa4, 0x12, 0x3a, 0x49, 0x44, - 0xa8, 0x5c, 0xf3, 0xf2, 0xce, 0xe9, 0xb9, 0x3a, 0xf2, 0xf8, 0x5c, 0x1d, 0xf9, 0xc7, 0xb9, 0x3a, - 0xf2, 0xc9, 0xb9, 0x8a, 0x3e, 0x3b, 0x57, 0xd1, 0xe7, 0xe7, 0x2a, 0xfa, 0xe2, 0x5c, 0x45, 0xef, - 0xf4, 0x55, 0xf4, 0x41, 0x5f, 0x45, 0x1f, 0xf6, 0x55, 0xf4, 0xc7, 0xbe, 0x8a, 0x1e, 0xf5, 0x55, - 0x74, 0xda, 0x57, 0x47, 0x1e, 0xf7, 0xd5, 0x91, 0x4f, 0xfa, 0x2a, 0xfa, 0xac, 0xaf, 0x8e, 0x7c, - 0xde, 0x57, 0xd1, 0x17, 0x7d, 0x15, 0xbd, 0xf3, 0xa9, 0x3a, 0xf2, 0xf0, 0x53, 0x75, 0xe4, 0x83, - 0x4f, 0x55, 0xf4, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x1a, 0xc4, 0x7a, 0x51, 0x36, 0x00, - 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.proto b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.proto deleted file mode 100644 index 130bceed7..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetest.proto +++ /dev/null @@ -1,649 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; -package test; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; -option (gogoproto.protosizer_all) = false; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = false; - -option (gogoproto.compare_all) = true; - -message NidOptNative { - optional double Field1 = 1 [(gogoproto.nullable) = false]; - optional float Field2 = 2 [(gogoproto.nullable) = false]; - optional int32 Field3 = 3 [(gogoproto.nullable) = false]; - optional int64 Field4 = 4 [(gogoproto.nullable) = false]; - optional uint32 Field5 = 5 [(gogoproto.nullable) = false]; - optional uint64 Field6 = 6 [(gogoproto.nullable) = false]; - optional sint32 Field7 = 7 [(gogoproto.nullable) = false]; - optional sint64 Field8 = 8 [(gogoproto.nullable) = false]; - optional fixed32 Field9 = 9 [(gogoproto.nullable) = false]; - optional sfixed32 Field10 = 10 [(gogoproto.nullable) = false]; - optional fixed64 Field11 = 11 [(gogoproto.nullable) = false]; - optional sfixed64 Field12 = 12 [(gogoproto.nullable) = false]; - optional bool Field13 = 13 [(gogoproto.nullable) = false]; - optional string Field14 = 14 [(gogoproto.nullable) = false]; - optional bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinOptNative { - optional double Field1 = 1; - optional float Field2 = 2; - optional int32 Field3 = 3; - optional int64 Field4 = 4; - optional uint32 Field5 = 5; - optional uint64 Field6 = 6; - optional sint32 Field7 = 7; - optional sint64 Field8 = 8; - optional fixed32 Field9 = 9; - optional sfixed32 Field10 = 10; - optional fixed64 Field11 = 11; - optional sfixed64 Field12 = 12; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NidRepNative { - repeated double Field1 = 1 [(gogoproto.nullable) = false]; - repeated float Field2 = 2 [(gogoproto.nullable) = false]; - repeated int32 Field3 = 3 [(gogoproto.nullable) = false]; - repeated int64 Field4 = 4 [(gogoproto.nullable) = false]; - repeated uint32 Field5 = 5 [(gogoproto.nullable) = false]; - repeated uint64 Field6 = 6 [(gogoproto.nullable) = false]; - repeated sint32 Field7 = 7 [(gogoproto.nullable) = false]; - repeated sint64 Field8 = 8 [(gogoproto.nullable) = false]; - repeated fixed32 Field9 = 9 [(gogoproto.nullable) = false]; - repeated sfixed32 Field10 = 10 [(gogoproto.nullable) = false]; - repeated fixed64 Field11 = 11 [(gogoproto.nullable) = false]; - repeated sfixed64 Field12 = 12 [(gogoproto.nullable) = false]; - repeated bool Field13 = 13 [(gogoproto.nullable) = false]; - repeated string Field14 = 14 [(gogoproto.nullable) = false]; - repeated bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinRepNative { - repeated double Field1 = 1; - repeated float Field2 = 2; - repeated int32 Field3 = 3; - repeated int64 Field4 = 4; - repeated uint32 Field5 = 5; - repeated uint64 Field6 = 6; - repeated sint32 Field7 = 7; - repeated sint64 Field8 = 8; - repeated fixed32 Field9 = 9; - repeated sfixed32 Field10 = 10; - repeated fixed64 Field11 = 11; - repeated sfixed64 Field12 = 12; - repeated bool Field13 = 13; - repeated string Field14 = 14; - repeated bytes Field15 = 15; -} - -message NidRepPackedNative { - repeated double Field1 = 1 [(gogoproto.nullable) = false, packed = true]; - repeated float Field2 = 2 [(gogoproto.nullable) = false, packed = true]; - repeated int32 Field3 = 3 [(gogoproto.nullable) = false, packed = true]; - repeated int64 Field4 = 4 [(gogoproto.nullable) = false, packed = true]; - repeated uint32 Field5 = 5 [(gogoproto.nullable) = false, packed = true]; - repeated uint64 Field6 = 6 [(gogoproto.nullable) = false, packed = true]; - repeated sint32 Field7 = 7 [(gogoproto.nullable) = false, packed = true]; - repeated sint64 Field8 = 8 [(gogoproto.nullable) = false, packed = true]; - repeated fixed32 Field9 = 9 [(gogoproto.nullable) = false, packed = true]; - repeated sfixed32 Field10 = 10 [(gogoproto.nullable) = false, packed = true]; - repeated fixed64 Field11 = 11 [(gogoproto.nullable) = false, packed = true]; - repeated sfixed64 Field12 = 12 [(gogoproto.nullable) = false, packed = true]; - repeated bool Field13 = 13 [(gogoproto.nullable) = false, packed = true]; -} - -message NinRepPackedNative { - repeated double Field1 = 1 [packed = true]; - repeated float Field2 = 2 [packed = true]; - repeated int32 Field3 = 3 [packed = true]; - repeated int64 Field4 = 4 [packed = true]; - repeated uint32 Field5 = 5 [packed = true]; - repeated uint64 Field6 = 6 [packed = true]; - repeated sint32 Field7 = 7 [packed = true]; - repeated sint64 Field8 = 8 [packed = true]; - repeated fixed32 Field9 = 9 [packed = true]; - repeated sfixed32 Field10 = 10 [packed = true]; - repeated fixed64 Field11 = 11 [packed = true]; - repeated sfixed64 Field12 = 12 [packed = true]; - repeated bool Field13 = 13 [packed = true]; -} - -message NidOptStruct { - optional double Field1 = 1 [(gogoproto.nullable) = false]; - optional float Field2 = 2 [(gogoproto.nullable) = false]; - optional NidOptNative Field3 = 3 [(gogoproto.nullable) = false]; - optional NinOptNative Field4 = 4 [(gogoproto.nullable) = false]; - optional uint64 Field6 = 6 [(gogoproto.nullable) = false]; - optional sint32 Field7 = 7 [(gogoproto.nullable) = false]; - optional NidOptNative Field8 = 8 [(gogoproto.nullable) = false]; - optional bool Field13 = 13 [(gogoproto.nullable) = false]; - optional string Field14 = 14 [(gogoproto.nullable) = false]; - optional bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinOptStruct { - optional double Field1 = 1; - optional float Field2 = 2; - optional NidOptNative Field3 = 3; - optional NinOptNative Field4 = 4; - optional uint64 Field6 = 6; - optional sint32 Field7 = 7; - optional NidOptNative Field8 = 8; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NidRepStruct { - repeated double Field1 = 1 [(gogoproto.nullable) = false]; - repeated float Field2 = 2 [(gogoproto.nullable) = false]; - repeated NidOptNative Field3 = 3 [(gogoproto.nullable) = false]; - repeated NinOptNative Field4 = 4 [(gogoproto.nullable) = false]; - repeated uint64 Field6 = 6 [(gogoproto.nullable) = false]; - repeated sint32 Field7 = 7 [(gogoproto.nullable) = false]; - repeated NidOptNative Field8 = 8 [(gogoproto.nullable) = false]; - repeated bool Field13 = 13 [(gogoproto.nullable) = false]; - repeated string Field14 = 14 [(gogoproto.nullable) = false]; - repeated bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinRepStruct { - repeated double Field1 = 1; - repeated float Field2 = 2; - repeated NidOptNative Field3 = 3; - repeated NinOptNative Field4 = 4; - repeated uint64 Field6 = 6; - repeated sint32 Field7 = 7; - repeated NidOptNative Field8 = 8; - repeated bool Field13 = 13; - repeated string Field14 = 14; - repeated bytes Field15 = 15; -} - -message NidEmbeddedStruct { - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NidOptNative Field200 = 200 [(gogoproto.nullable) = false]; - optional bool Field210 = 210 [(gogoproto.nullable) = false]; -} - -message NinEmbeddedStruct { - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NidOptNative Field200 = 200; - optional bool Field210 = 210; -} - -message NidNestedStruct { - optional NidOptStruct Field1 = 1 [(gogoproto.nullable) = false]; - repeated NidRepStruct Field2 = 2 [(gogoproto.nullable) = false]; -} - -message NinNestedStruct { - optional NinOptStruct Field1 = 1; - repeated NinRepStruct Field2 = 2; -} - -message NidOptCustom { - optional bytes Id = 1 [(gogoproto.customtype) = "Uuid", (gogoproto.nullable) = false]; - optional bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; -} - -message CustomDash { - optional bytes Value = 1 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom-dash-type.Bytes"]; -} - -message NinOptCustom { - optional bytes Id = 1 [(gogoproto.customtype) = "Uuid"]; - optional bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message NidRepCustom { - repeated bytes Id = 1 [(gogoproto.customtype) = "Uuid", (gogoproto.nullable) = false]; - repeated bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; -} - -message NinRepCustom { - repeated bytes Id = 1 [(gogoproto.customtype) = "Uuid"]; - repeated bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message NinOptNativeUnion { - option (gogoproto.onlyone) = true; - optional double Field1 = 1; - optional float Field2 = 2; - optional int32 Field3 = 3; - optional int64 Field4 = 4; - optional uint32 Field5 = 5; - optional uint64 Field6 = 6; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NinOptStructUnion { - option (gogoproto.onlyone) = true; - optional double Field1 = 1; - optional float Field2 = 2; - optional NidOptNative Field3 = 3; - optional NinOptNative Field4 = 4; - optional uint64 Field6 = 6; - optional sint32 Field7 = 7; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NinEmbeddedStructUnion { - option (gogoproto.onlyone) = true; - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NinOptNative Field200 = 200; - optional bool Field210 = 210; -} - -message NinNestedStructUnion { - option (gogoproto.onlyone) = true; - optional NinOptNativeUnion Field1 = 1; - optional NinOptStructUnion Field2 = 2; - optional NinEmbeddedStructUnion Field3 = 3; -} - -message Tree { - option (gogoproto.onlyone) = true; - optional OrBranch Or = 1; - optional AndBranch And = 2; - optional Leaf Leaf = 3; -} - -message OrBranch { - optional Tree Left = 1 [(gogoproto.nullable) = false]; - optional Tree Right = 2 [(gogoproto.nullable) = false]; -} - -message AndBranch { - optional Tree Left = 1 [(gogoproto.nullable) = false]; - optional Tree Right = 2 [(gogoproto.nullable) = false]; -} - -message Leaf { - optional int64 Value = 1 [(gogoproto.nullable) = false]; - optional string StrValue = 2 [(gogoproto.nullable) = false]; -} - -message DeepTree { - option (gogoproto.onlyone) = true; - optional ADeepBranch Down = 1; - optional AndDeepBranch And = 2; - optional DeepLeaf Leaf = 3; -} - -message ADeepBranch { - optional DeepTree Down = 2 [(gogoproto.nullable) = false]; -} - -message AndDeepBranch { - optional DeepTree Left = 1 [(gogoproto.nullable) = false]; - optional DeepTree Right = 2 [(gogoproto.nullable) = false]; -} - -message DeepLeaf { - optional Tree Tree = 1 [(gogoproto.nullable) = false]; -} - -message Nil { - -} - -enum TheTestEnum { - A = 0; - B = 1; - C = 2; -} - -enum AnotherTestEnum { - option (gogoproto.goproto_enum_prefix) = false; - D = 10; - E = 11; -} - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -enum YetAnotherTestEnum { - option (gogoproto.goproto_enum_prefix) = false; - AA = 0; - BB = 1 [(gogoproto.enumvalue_customname) = "BetterYetBB"]; -} - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -enum YetYetAnotherTestEnum { - option (gogoproto.goproto_enum_prefix) = true; - CC = 0; - DD = 1 [(gogoproto.enumvalue_customname) = "BetterYetDD"]; -} - -message NidOptEnum { - optional TheTestEnum Field1 = 1 [(gogoproto.nullable) = false]; -} - -message NinOptEnum { - optional TheTestEnum Field1 = 1; - optional YetAnotherTestEnum Field2 = 2; - optional YetYetAnotherTestEnum Field3 = 3; -} - -message NidRepEnum { - repeated TheTestEnum Field1 = 1 [(gogoproto.nullable) = false]; - repeated YetAnotherTestEnum Field2 = 2 [(gogoproto.nullable) = false]; - repeated YetYetAnotherTestEnum Field3 = 3 [(gogoproto.nullable) = false]; -} - -message NinRepEnum { - repeated TheTestEnum Field1 = 1; - repeated YetAnotherTestEnum Field2 = 2; - repeated YetYetAnotherTestEnum Field3 = 3; -} - -message NinOptEnumDefault { - option (gogoproto.goproto_getters) = true; - option (gogoproto.face) = false; - optional TheTestEnum Field1 = 1 [default=C]; - optional YetAnotherTestEnum Field2 = 2 [default=BB]; - optional YetYetAnotherTestEnum Field3 = 3 [default=CC]; -} - -message AnotherNinOptEnum { - optional AnotherTestEnum Field1 = 1; - optional YetAnotherTestEnum Field2 = 2; - optional YetYetAnotherTestEnum Field3 = 3; -} - -message AnotherNinOptEnumDefault { - option (gogoproto.goproto_getters) = true; - option (gogoproto.face) = false; - optional AnotherTestEnum Field1 = 1 [default=E]; - optional YetAnotherTestEnum Field2 = 2 [default=BB]; - optional YetYetAnotherTestEnum Field3 = 3 [default=CC]; -} - - -message Timer { - optional sfixed64 Time1 = 1 [(gogoproto.nullable) = false]; - optional sfixed64 Time2 = 2 [(gogoproto.nullable) = false]; - optional bytes Data = 3 [(gogoproto.nullable) = false]; -} - -message MyExtendable { - option (gogoproto.face) = false; - optional int64 Field1 = 1; - extensions 100 to 199; -} - -extend MyExtendable { - optional double FieldA = 100; - optional NinOptNative FieldB = 101; - optional NinEmbeddedStruct FieldC = 102; - repeated int64 FieldD = 104; - repeated NinOptNative FieldE = 105; -} - -message OtherExtenable { - option (gogoproto.face) = false; - optional int64 Field2 = 2; - extensions 14 to 16; - optional int64 Field13 = 13; - extensions 10 to 12; - optional MyExtendable M = 1; -} - -message NestedDefinition { - optional int64 Field1 = 1; - message NestedMessage { - optional fixed64 NestedField1 = 1; - optional NestedNestedMsg NNM = 2; - message NestedNestedMsg { - optional string NestedNestedField1 = 10; - } - } - enum NestedEnum { - TYPE_NESTED = 1; - } - optional NestedEnum EnumField = 2; - optional NestedMessage.NestedNestedMsg NNM = 3; - optional NestedMessage NM = 4; -} - -message NestedScope { - optional NestedDefinition.NestedMessage.NestedNestedMsg A = 1; - optional NestedDefinition.NestedEnum B = 2; - optional NestedDefinition.NestedMessage C = 3; -} - -message NinOptNativeDefault { - option (gogoproto.goproto_getters) = true; - option (gogoproto.face) = false; - optional double Field1 = 1 [default = 1234.1234]; - optional float Field2 = 2 [default = 1234.1234]; - optional int32 Field3 = 3 [default = 1234]; - optional int64 Field4 = 4 [default = 1234]; - optional uint32 Field5 = 5 [default = 1234]; - optional uint64 Field6 = 6 [default = 1234]; - optional sint32 Field7 = 7 [default = 1234]; - optional sint64 Field8 = 8 [default = 1234]; - optional fixed32 Field9 = 9 [default = 1234]; - optional sfixed32 Field10 = 10 [default = 1234]; - optional fixed64 Field11 = 11 [default = 1234]; - optional sfixed64 Field12 = 12 [default = 1234]; - optional bool Field13 = 13 [default = true]; - optional string Field14 = 14 [default = "1234"]; - optional bytes Field15 = 15; -} - -message CustomContainer { - optional NidOptCustom CustomStruct = 1 [(gogoproto.nullable) = false]; -} - -message CustomNameNidOptNative { - optional double Field1 = 1 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldA"]; - optional float Field2 = 2 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldB"]; - optional int32 Field3 = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldC"]; - optional int64 Field4 = 4 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldD"]; - optional uint32 Field5 = 5 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldE"]; - optional uint64 Field6 = 6 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldF"]; - optional sint32 Field7 = 7 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldG"]; - optional sint64 Field8 = 8 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldH"]; - optional fixed32 Field9 = 9 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldI"]; - optional sfixed32 Field10 = 10 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldJ"]; - optional fixed64 Field11 = 11 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldK"]; - optional sfixed64 Field12 = 12 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldL"]; - optional bool Field13 = 13 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldM"]; - optional string Field14 = 14 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldN"]; - optional bytes Field15 = 15 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldO"]; -} - -message CustomNameNinOptNative { - optional double Field1 = 1 [(gogoproto.customname) = "FieldA"]; - optional float Field2 = 2 [(gogoproto.customname) = "FieldB"]; - optional int32 Field3 = 3 [(gogoproto.customname) = "FieldC"]; - optional int64 Field4 = 4 [(gogoproto.customname) = "FieldD"]; - optional uint32 Field5 = 5 [(gogoproto.customname) = "FieldE"]; - optional uint64 Field6 = 6 [(gogoproto.customname) = "FieldF"]; - optional sint32 Field7 = 7 [(gogoproto.customname) = "FieldG"]; - optional sint64 Field8 = 8 [(gogoproto.customname) = "FieldH"]; - optional fixed32 Field9 = 9 [(gogoproto.customname) = "FieldI"]; - optional sfixed32 Field10 = 10 [(gogoproto.customname) = "FieldJ"]; - optional fixed64 Field11 = 11 [(gogoproto.customname) = "FieldK"]; - optional sfixed64 Field12 = 12 [(gogoproto.customname) = "FielL"]; - optional bool Field13 = 13 [(gogoproto.customname) = "FieldM"]; - optional string Field14 = 14 [(gogoproto.customname) = "FieldN"]; - optional bytes Field15 = 15 [(gogoproto.customname) = "FieldO"]; -} - -message CustomNameNinRepNative { - repeated double Field1 = 1 [(gogoproto.customname) = "FieldA"]; - repeated float Field2 = 2 [(gogoproto.customname) = "FieldB"]; - repeated int32 Field3 = 3 [(gogoproto.customname) = "FieldC"]; - repeated int64 Field4 = 4 [(gogoproto.customname) = "FieldD"]; - repeated uint32 Field5 = 5 [(gogoproto.customname) = "FieldE"]; - repeated uint64 Field6 = 6 [(gogoproto.customname) = "FieldF"]; - repeated sint32 Field7 = 7 [(gogoproto.customname) = "FieldG"]; - repeated sint64 Field8 = 8 [(gogoproto.customname) = "FieldH"]; - repeated fixed32 Field9 = 9 [(gogoproto.customname) = "FieldI"]; - repeated sfixed32 Field10 = 10 [(gogoproto.customname) = "FieldJ"]; - repeated fixed64 Field11 = 11 [(gogoproto.customname) = "FieldK"]; - repeated sfixed64 Field12 = 12 [(gogoproto.customname) = "FieldL"]; - repeated bool Field13 = 13 [(gogoproto.customname) = "FieldM"]; - repeated string Field14 = 14 [(gogoproto.customname) = "FieldN"]; - repeated bytes Field15 = 15 [(gogoproto.customname) = "FieldO"]; -} - -message CustomNameNinStruct { - optional double Field1 = 1 [(gogoproto.customname) = "FieldA"]; - optional float Field2 = 2 [(gogoproto.customname) = "FieldB"]; - optional NidOptNative Field3 = 3 [(gogoproto.customname) = "FieldC"]; - repeated NinOptNative Field4 = 4 [(gogoproto.customname) = "FieldD"]; - optional uint64 Field6 = 6 [(gogoproto.customname) = "FieldE"]; - optional sint32 Field7 = 7 [(gogoproto.customname) = "FieldF"]; - optional NidOptNative Field8 = 8 [(gogoproto.customname) = "FieldG"]; - optional bool Field13 = 13 [(gogoproto.customname) = "FieldH"]; - optional string Field14 = 14 [(gogoproto.customname) = "FieldI"]; - optional bytes Field15 = 15 [(gogoproto.customname) = "FieldJ"]; -} - -message CustomNameCustomType { - optional bytes Id = 1 [(gogoproto.customname) = "FieldA", (gogoproto.customtype) = "Uuid"]; - optional bytes Value = 2 [(gogoproto.customname) = "FieldB", (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; - repeated bytes Ids = 3 [(gogoproto.customname) = "FieldC", (gogoproto.customtype) = "Uuid"]; - repeated bytes Values = 4 [(gogoproto.customname) = "FieldD", (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message CustomNameNinEmbeddedStructUnion { - option (gogoproto.onlyone) = true; - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NinOptNative Field200 = 200 [(gogoproto.customname) = "FieldA"]; - optional bool Field210 = 210 [(gogoproto.customname) = "FieldB"]; -} - -message CustomNameEnum { - optional TheTestEnum Field1 = 1 [(gogoproto.customname) = "FieldA"]; - repeated TheTestEnum Field2 = 2 [(gogoproto.customname) = "FieldB"]; -} - -message NoExtensionsMap { - option (gogoproto.face) = false; - option (gogoproto.goproto_extensions_map) = false; - optional int64 Field1 = 1; - extensions 100 to 199; -} - -extend NoExtensionsMap { - optional double FieldA1 = 100; - optional NinOptNative FieldB1 = 101; - optional NinEmbeddedStruct FieldC1 = 102; -} - -message Unrecognized { - option (gogoproto.goproto_unrecognized) = false; - optional string Field1 = 1; -} - -message UnrecognizedWithInner { - message Inner { - option (gogoproto.goproto_unrecognized) = false; - optional uint32 Field1 = 1; - } - - repeated Inner embedded = 1; - optional string Field2 = 2; -} - -message UnrecognizedWithEmbed { - message Embedded { - option (gogoproto.goproto_unrecognized) = false; - optional uint32 Field1 = 1; - } - - optional Embedded embedded = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - optional string Field2 = 2; -} - -message Node { - optional string Label = 1; - repeated Node Children = 2; -} - -message NonByteCustomType { - optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; -} - -message NidOptNonByteCustomType { - optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; -} - -message NinOptNonByteCustomType { - optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; -} - -message NidRepNonByteCustomType { - repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; -} - -message NinRepNonByteCustomType { - repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; -} - -message ProtoType { - optional string Field2 = 1; -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetestpb_test.go deleted file mode 100644 index 8ddbe3809..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/thetestpb_test.go +++ /dev/null @@ -1,19040 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/thetest.proto -// DO NOT EDIT! - -/* -Package test is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/thetest.proto - -It has these top-level messages: - NidOptNative - NinOptNative - NidRepNative - NinRepNative - NidRepPackedNative - NinRepPackedNative - NidOptStruct - NinOptStruct - NidRepStruct - NinRepStruct - NidEmbeddedStruct - NinEmbeddedStruct - NidNestedStruct - NinNestedStruct - NidOptCustom - CustomDash - NinOptCustom - NidRepCustom - NinRepCustom - NinOptNativeUnion - NinOptStructUnion - NinEmbeddedStructUnion - NinNestedStructUnion - Tree - OrBranch - AndBranch - Leaf - DeepTree - ADeepBranch - AndDeepBranch - DeepLeaf - Nil - NidOptEnum - NinOptEnum - NidRepEnum - NinRepEnum - NinOptEnumDefault - AnotherNinOptEnum - AnotherNinOptEnumDefault - Timer - MyExtendable - OtherExtenable - NestedDefinition - NestedScope - NinOptNativeDefault - CustomContainer - CustomNameNidOptNative - CustomNameNinOptNative - CustomNameNinRepNative - CustomNameNinStruct - CustomNameCustomType - CustomNameNinEmbeddedStructUnion - CustomNameEnum - NoExtensionsMap - Unrecognized - UnrecognizedWithInner - UnrecognizedWithEmbed - Node - NonByteCustomType - NidOptNonByteCustomType - NinOptNonByteCustomType - NidRepNonByteCustomType - NinRepNonByteCustomType - ProtoType -*/ -package test - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestNidOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepPackedNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepPackedNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepPackedNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepPackedNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepPackedNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepPackedNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepPackedNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepPackedNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidEmbeddedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidEmbeddedStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidEmbeddedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidEmbeddedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinEmbeddedStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinEmbeddedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidNestedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidNestedStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidNestedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidNestedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinNestedStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinNestedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptCustomMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomDashProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomDashMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomDashProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomDash, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomDash(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomDash{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptCustomMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepCustomMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepCustomMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptNativeUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNativeUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNativeUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptStructUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinEmbeddedStructUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinEmbeddedStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinNestedStructUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinNestedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinNestedStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestTreeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestTreeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Tree, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Tree{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOrBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestOrBranchMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkOrBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OrBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOrBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OrBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAndBranchMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAndBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAndBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AndBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestLeafProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestLeafMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Leaf, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Leaf{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepTreeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestDeepTreeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkDeepTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepTree, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedDeepTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &DeepTree{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestADeepBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestADeepBranchMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkADeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ADeepBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedADeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ADeepBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndDeepBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAndDeepBranchMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndDeepBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAndDeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AndDeepBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepLeafProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestDeepLeafMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkDeepLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepLeaf, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedDeepLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &DeepLeaf{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNilProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNilMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNilProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nil, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNil(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNilProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Nil{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumDefaultProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptEnumDefaultMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnumDefault, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptEnumDefault{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAnotherNinOptEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AnotherNinOptEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumDefaultProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAnotherNinOptEnumDefaultMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnumDefault, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AnotherNinOptEnumDefault{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestTimerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestTimerMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkTimerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Timer, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedTimer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkTimerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Timer{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMyExtendableProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMyExtendableMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMyExtendableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MyExtendable, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMyExtendable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MyExtendable{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOtherExtenableProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestOtherExtenableMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OtherExtenable, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOtherExtenable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OtherExtenable{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinitionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedDefinitionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedDefinition(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedDefinition{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessageProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedDefinition_NestedMessageMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedDefinition_NestedMessage{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedScopeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedScopeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedScopeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedScope, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedScope(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedScope{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeDefaultProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptNativeDefaultMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeDefault, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNativeDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNativeDefault{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomContainerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomContainerMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomContainerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomContainer, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomContainer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomContainer{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNidOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNidOptNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNidOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNidOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNinOptNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinRepNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNinRepNativeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinRepNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinRepNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNinStructMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameNinEmbeddedStructUnionMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinEmbeddedStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinEmbeddedStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomNameEnumMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNoExtensionsMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNoExtensionsMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NoExtensionsMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNoExtensionsMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NoExtensionsMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Unrecognized, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognized(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Unrecognized{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInnerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedWithInnerMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithInner{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInner_InnerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedWithInner_InnerMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner_Inner, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner_Inner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithInner_Inner{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedWithEmbedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithEmbed{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUnrecognizedWithEmbed_EmbeddedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed_Embedded, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithEmbed_Embedded{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNodeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNodeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNodeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Node, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNode(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNodeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Node{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidOptNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinOptNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNidRepNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNinRepNonByteCustomTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestProtoTypeMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkProtoTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedProtoType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ProtoType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepPackedNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepPackedNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidEmbeddedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinEmbeddedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidNestedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinNestedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomDashJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomDash{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNativeUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinEmbeddedStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinNestedStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestTreeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Tree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOrBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OrBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAndBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestLeafJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Leaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestDeepTreeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepTree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestADeepBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ADeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAndDeepBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndDeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestDeepLeafJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepLeaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNilJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nil{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptEnumDefaultJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAnotherNinOptEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestTimerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Timer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMyExtendableJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MyExtendable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOtherExtenableJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OtherExtenable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedDefinitionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedDefinition_NestedMessageJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedScopeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedScope{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNativeDefaultJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomContainerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomContainer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNidOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNoExtensionsMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NoExtensionsMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Unrecognized{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithInnerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner_Inner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithEmbedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNodeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Node{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestProtoTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepPackedNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepPackedNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepPackedNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepPackedNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidEmbeddedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidEmbeddedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidNestedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidNestedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomDashProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomDashProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTreeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTreeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOrBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOrBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestLeafProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestLeafProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepTreeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepTreeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestADeepBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestADeepBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndDeepBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndDeepBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepLeafProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepLeafProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNilProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNilProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumDefaultProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTimerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTimerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMyExtendableProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMyExtendableProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOtherExtenableProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOtherExtenableProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinitionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinitionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedScopeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedScopeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeDefaultProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomContainerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomContainerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNidOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinRepNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNoExtensionsMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNoExtensionsMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInnerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNodeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNodeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepPackedNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepPackedNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepPackedNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepPackedNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidEmbeddedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidEmbeddedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinEmbeddedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinEmbeddedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidNestedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidNestedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinNestedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinNestedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomDashCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomDash(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNativeUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNativeUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinEmbeddedStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinEmbeddedStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinNestedStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinNestedStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestTreeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedTree(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestOrBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedOrBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAndBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAndBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestLeafCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedLeaf(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestDeepTreeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedDeepTree(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestADeepBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedADeepBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAndDeepBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAndDeepBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestDeepLeafCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedDeepLeaf(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNilCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNil(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptEnumDefaultCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptEnumDefault(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAnotherNinOptEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAnotherNinOptEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAnotherNinOptEnumDefault(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestTimerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedTimer(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestMyExtendableCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedMyExtendable(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestOtherExtenableCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedOtherExtenable(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedDefinitionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedDefinition(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedDefinition_NestedMessageCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedDefinition_NestedMessage(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedScopeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedScope(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNativeDefaultCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNativeDefault(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomContainerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomContainer(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNidOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNidOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinRepNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinRepNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNoExtensionsMapCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNoExtensionsMap(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognized(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithInnerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithInner(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithEmbedCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNodeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNode(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestProtoTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedProtoType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestThetestDescription(t *testing.T) { - ThetestDescription() -} -func TestNidOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepPackedNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepPackedNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidEmbeddedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinEmbeddedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidNestedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinNestedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomDashVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNativeUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinNestedStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestTreeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOrBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAndBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestLeafVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestDeepTreeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestADeepBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAndDeepBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestDeepLeafVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNilVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestTimerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMyExtendableVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOtherExtenableVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedDefinitionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedScopeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomContainerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNoExtensionsMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNodeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestProtoTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomDashFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptNativeUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinNestedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestOrBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAndBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestDeepTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestADeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAndDeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestDeepLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNilFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAnotherNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestTimerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedDefinitionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedDefinition_NestedMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedScopeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomContainerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithInnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithInner_InnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithEmbedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNodeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestProtoTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomDashGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNativeUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinNestedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestOrBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAndBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestDeepTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestADeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAndDeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestDeepLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNilGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAnotherNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAnotherNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestTimerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestMyExtendableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestOtherExtenableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedDefinitionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedDefinition_NestedMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedScopeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNativeDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomContainerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNoExtensionsMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithInnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithEmbedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNodeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestProtoTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepPackedNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepPackedNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepPackedNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepPackedNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidEmbeddedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidEmbeddedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidNestedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidNestedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomDashSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomDashSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomDash, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomDash(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNativeUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNativeUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinNestedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinNestedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestTreeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Tree, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOrBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOrBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OrBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOrBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAndBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAndBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestLeafSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Leaf, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepTreeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkDeepTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepTree, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedDeepTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestADeepBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkADeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ADeepBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedADeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndDeepBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAndDeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndDeepBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAndDeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepLeafSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkDeepLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepLeaf, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedDeepLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNilSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNilSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nil, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNil(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumDefaultSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnumDefault, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAnotherNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumDefaultSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnumDefault, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestTimerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkTimerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Timer, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedTimer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMyExtendableSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMyExtendableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MyExtendable, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMyExtendable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOtherExtenableSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOtherExtenableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OtherExtenable, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOtherExtenable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinitionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedDefinitionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedDefinition(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessageSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedScopeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedScopeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedScope, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedScope(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeDefaultSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNativeDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeDefault, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNativeDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomContainerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomContainerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomContainer, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomContainer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNidOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNidOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinRepNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinRepNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinEmbeddedStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNoExtensionsMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNoExtensionsMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NoExtensionsMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNoExtensionsMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Unrecognized, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognized(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInnerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInner_InnerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner_Inner, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner_Inner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed_Embedded, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNodeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNodeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Node, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNode(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkProtoTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedProtoType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomDashStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinNestedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestOrBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAndBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestDeepTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestADeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAndDeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestDeepLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNilStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAnotherNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestTimerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestMyExtendableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestOtherExtenableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedDefinitionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedDefinition_NestedMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedScopeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomContainerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNoExtensionsMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithInnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithEmbedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNodeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestProtoTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, true) - v := p.GetValue() - msg := &NinOptNativeUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestNinOptStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, true) - v := p.GetValue() - msg := &NinOptStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - v := p.GetValue() - msg := &NinEmbeddedStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestNinNestedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, true) - v := p.GetValue() - msg := &NinNestedStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, true) - v := p.GetValue() - msg := &Tree{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestDeepTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, true) - v := p.GetValue() - msg := &DeepTree{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestCustomNameNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - v := p.GetValue() - msg := &CustomNameNinEmbeddedStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/uuid.go b/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/uuid.go deleted file mode 100644 index ae349da4a..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafemarshaler/uuid.go +++ /dev/null @@ -1,133 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package test - -import ( - "bytes" - "encoding/hex" - "encoding/json" -) - -func PutLittleEndianUint64(b []byte, offset int, v uint64) { - b[offset] = byte(v) - b[offset+1] = byte(v >> 8) - b[offset+2] = byte(v >> 16) - b[offset+3] = byte(v >> 24) - b[offset+4] = byte(v >> 32) - b[offset+5] = byte(v >> 40) - b[offset+6] = byte(v >> 48) - b[offset+7] = byte(v >> 56) -} - -type Uuid []byte - -func (uuid Uuid) Marshal() ([]byte, error) { - if len(uuid) == 0 { - return nil, nil - } - return []byte(uuid), nil -} - -func (uuid Uuid) MarshalTo(data []byte) (n int, err error) { - if len(uuid) == 0 { - return 0, nil - } - copy(data, uuid) - return 16, nil -} - -func (uuid *Uuid) Unmarshal(data []byte) error { - if len(data) == 0 { - uuid = nil - return nil - } - id := Uuid(make([]byte, 16)) - copy(id, data) - *uuid = id - return nil -} - -func (uuid *Uuid) Size() int { - if uuid == nil { - return 0 - } - if len(*uuid) == 0 { - return 0 - } - return 16 -} - -func (uuid Uuid) MarshalJSON() ([]byte, error) { - s := hex.EncodeToString([]byte(uuid)) - return json.Marshal(s) -} - -func (uuid *Uuid) UnmarshalJSON(data []byte) error { - var s string - err := json.Unmarshal(data, &s) - if err != nil { - return err - } - d, err := hex.DecodeString(s) - if err != nil { - return err - } - *uuid = Uuid(d) - return nil -} - -func (uuid Uuid) Equal(other Uuid) bool { - return bytes.Equal(uuid[0:], other[0:]) -} - -func (uuid Uuid) Compare(other Uuid) int { - return bytes.Compare(uuid[0:], other[0:]) -} - -type int63 interface { - Int63() int64 -} - -func NewPopulatedUuid(r int63) *Uuid { - u := RandV4(r) - return &u -} - -func RandV4(r int63) Uuid { - uuid := make(Uuid, 16) - uuid.RandV4(r) - return uuid -} - -func (uuid Uuid) RandV4(r int63) { - PutLittleEndianUint64(uuid, 0, uint64(r.Int63())) - PutLittleEndianUint64(uuid, 8, uint64(r.Int63())) - uuid[6] = (uuid[6] & 0xf) | 0x40 - uuid[8] = (uuid[8] & 0x3f) | 0x80 -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/bug_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/bug_test.go deleted file mode 100644 index 53f720e96..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/bug_test.go +++ /dev/null @@ -1,252 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package test - -import ( - "fmt" - "math" - "math/rand" - "testing" - "time" - - "github.com/gogo/protobuf/proto" -) - -//http://code.google.com/p/goprotobuf/issues/detail?id=39 -func TestBugUint32VarintSize(t *testing.T) { - temp := uint32(math.MaxUint32) - n := &NinOptNative{} - n.Field5 = &temp - data, err := proto.Marshal(n) - if err != nil { - panic(err) - } - if len(data) != 6 { - t.Fatalf("data should be length 6, but its %#v", data) - } -} - -func TestBugZeroLengthSliceSize(t *testing.T) { - n := &NinRepPackedNative{ - Field8: []int64{}, - } - size := n.Size() - data, err := proto.Marshal(n) - if err != nil { - panic(err) - } - if len(data) != size { - t.Fatalf("expected %v, but got %v", len(data), size) - } -} - -//http://code.google.com/p/goprotobuf/issues/detail?id=40 -func TestBugPackedProtoSize(t *testing.T) { - n := &NinRepPackedNative{ - Field4: []int64{172960727389894724, 2360337516664475010, 860833876131988189, 9068073014890763245, 7794843386260381831, 4023536436053141786, 8992311247496919020, 4330096163611305776, 4490411416244976467, 7873947349172707443, 2754969595834279669, 1360667855926938684, 4771480785172657389, 4875578924966668055, 8070579869808877481, 9128179594766551001, 4630419407064527516, 863844540220372892, 8208727650143073487, 7086117356301045838, 7779695211931506151, 5493835345187563535, 9119767633370806007, 9054342025895349248, 1887303228838508438, 7624573031734528281, 1874668389749611225, 3517684643468970593, 6677697606628877758, 7293473953189936168, 444475066704085538, 8594971141363049302, 1146643249094989673, 733393306232853371, 7721178528893916886, 7784452000911004429, 6436373110242711440, 6897422461738321237, 8772249155667732778, 6211871464311393541, 3061903718310406883, 7845488913176136641, 8342255034663902574, 3443058984649725748, 8410801047334832902, 7496541071517841153, 4305416923521577765, 7814967600020476457, 8671843803465481186, 3490266370361096855, 1447425664719091336, 653218597262334239, 8306243902880091940, 7851896059762409081, 5936760560798954978, 5755724498441478025, 7022701569985035966, 3707709584811468220, 529069456924666920, 7986469043681522462, 3092513330689518836, 5103541550470476202, 3577384161242626406, 3733428084624703294, 8388690542440473117, 3262468785346149388, 8788358556558007570, 5476276940198542020, 7277903243119461239, 5065861426928605020, 7533460976202697734, 1749213838654236956, 557497603941617931, 5496307611456481108, 6444547750062831720, 6992758776744205596, 7356719693428537399, 2896328872476734507, 381447079530132038, 598300737753233118, 3687980626612697715, 7240924191084283349, 8172414415307971170, 4847024388701257185, 2081764168600256551, 3394217778539123488, 6244660626429310923, 8301712215675381614, 5360615125359461174, 8410140945829785773, 3152963269026381373, 6197275282781459633, 4419829061407546410, 6262035523070047537, 2837207483933463885, 2158105736666826128, 8150764172235490711}, - Field7: []int32{249451845, 1409974015, 393609128, 435232428, 1817529040, 91769006, 861170933, 1556185603, 1568580279, 1236375273, 512276621, 693633711, 967580535, 1950715977, 853431462, 1362390253, 159591204, 111900629, 322985263, 279671129, 1592548430, 465651370, 733849989, 1172059400, 1574824441, 263541092, 1271612397, 1520584358, 467078791, 117698716, 1098255064, 2054264846, 1766452305, 1267576395, 1557505617, 1187833560, 956187431, 1970977586, 1160235159, 1610259028, 489585797, 459139078, 566263183, 954319278, 1545018565, 1753946743, 948214318, 422878159, 883926576, 1424009347, 824732372, 1290433180, 80297942, 417294230, 1402647904, 2078392782, 220505045, 787368129, 463781454, 293083578, 808156928, 293976361}, - Field9: []uint32{0xaa4976e8, 0x3da8cc4c, 0x8c470d83, 0x344d964e, 0x5b90925, 0xa4c4d34e, 0x666eff19, 0xc238e552, 0x9be53bb6, 0x56364245, 0x33ee079d, 0x96bf0ede, 0x7941b74f, 0xdb07cb47, 0x6d76d827, 0x9b211d5d, 0x2798adb6, 0xe48b0c3b, 0x87061b21, 0x48f4e4d2, 0x3e5d5c12, 0x5ee91288, 0x336d4f35, 0xe1d44941, 0xc065548d, 0x2953d73f, 0x873af451, 0xfc769db, 0x9f1bf8da, 0x9baafdfc, 0xf1d3d770, 0x5bb5d2b4, 0xc2c67c48, 0x6845c4c1, 0xa48f32b0, 0xbb04bb70, 0xa5b1ca36, 0x8d98356a, 0x2171f654, 0x5ae279b0, 0x6c4a3d6b, 0x4fff5468, 0xcf9bf851, 0x68513614, 0xdbecd9b0, 0x9553ed3c, 0xa494a736, 0x42205438, 0xbf8e5caa, 0xd3283c6, 0x76d20788, 0x9179826f, 0x96b24f85, 0xbc2eacf4, 0xe4afae0b, 0x4bca85cb, 0x35e63b5b, 0xd7ccee0c, 0x2b506bb9, 0xe78e9f44, 0x9ad232f1, 0x99a37335, 0xa5d6ffc8}, - Field11: []uint64{0x53c01ebc, 0x4fb85ba6, 0x8805eea1, 0xb20ec896, 0x93b63410, 0xec7c9492, 0x50765a28, 0x19592106, 0x2ecc59b3, 0x39cd474f, 0xe4c9e47, 0x444f48c5, 0xe7731d32, 0xf3f43975, 0x603caedd, 0xbb05a1af, 0xa808e34e, 0x88580b07, 0x4c96bbd1, 0x730b4ab9, 0xed126e2b, 0x6db48205, 0x154ba1b9, 0xc26bfb6a, 0x389aa052, 0x869d966c, 0x7c86b366, 0xcc8edbcd, 0xfa8d6dad, 0xcf5857d9, 0x2d9cda0f, 0x1218a0b8, 0x41bf997, 0xf0ca65ac, 0xa610d4b9, 0x8d362e28, 0xb7212d87, 0x8e0fe109, 0xbee041d9, 0x759be2f6, 0x35fef4f3, 0xaeacdb71, 0x10888852, 0xf4e28117, 0xe2a14812, 0x73b748dc, 0xd1c3c6b2, 0xfef41bf0, 0xc9b43b62, 0x810e4faa, 0xcaa41c06, 0x1893fe0d, 0xedc7c850, 0xd12b9eaa, 0x467ee1a9, 0xbe84756b, 0xda7b1680, 0xdc069ffe, 0xf1e7e9f9, 0xb3d95370, 0xa92b77df, 0x5693ac41, 0xd04b7287, 0x27aebf15, 0x837b316e, 0x4dbe2263, 0xbab70c67, 0x547dab21, 0x3c346c1f, 0xb8ef0e4e, 0xfe2d03ce, 0xe1d75955, 0xfec1306, 0xba35c23e, 0xb784ed04, 0x2a4e33aa, 0x7e19d09a, 0x3827c1fe, 0xf3a51561, 0xef765e2b, 0xb044256c, 0x62b322be, 0xf34d56be, 0xeb71b369, 0xffe1294f, 0x237fe8d0, 0x77a1473b, 0x239e1196, 0xdd19bf3d, 0x82c91fe1, 0x95361c57, 0xffea3f1b, 0x1a094c84}, - Field12: []int64{8308420747267165049, 3664160795077875961, 7868970059161834817, 7237335984251173739, 5254748003907196506, 3362259627111837480, 430460752854552122, 5119635556501066533, 1277716037866233522, 9185775384759813768, 833932430882717888, 7986528304451297640, 6792233378368656337, 2074207091120609721, 1788723326198279432, 7756514594746453657, 2283775964901597324, 3061497730110517191, 7733947890656120277, 626967303632386244, 7822928600388582821, 3489658753000061230, 168869995163005961, 248814782163480763, 477885608911386247, 4198422415674133867, 3379354662797976109, 9925112544736939, 1486335136459138480, 4561560414032850671, 1010864164014091267, 186722821683803084, 5106357936724819318, 1298160820191228988, 4675403242419953145, 7130634540106489752, 7101280006672440929, 7176058292431955718, 9109875054097770321, 6810974877085322872, 4736707874303993641, 8993135362721382187, 6857881554990254283, 3704748883307461680, 1099360832887634994, 5207691918707192633, 5984721695043995243}, - } - size := proto.Size(n) - data, err := proto.Marshal(n) - if err != nil { - panic(err) - } - if len(data) != size { - t.Fatalf("expected %v, but got %v diff is %v", len(data), size, len(data)-size) - } -} - -func testSize(m interface { - proto.Message - Size() int -}, desc string, expected int) ([]byte, error) { - data, err := proto.Marshal(m) - if err != nil { - return nil, err - } - protoSize := proto.Size(m) - mSize := m.Size() - lenData := len(data) - if protoSize != mSize || protoSize != lenData || mSize != lenData { - return nil, fmt.Errorf("%s proto.Size(m){%d} != m.Size(){%d} != len(data){%d}", desc, protoSize, mSize, lenData) - } - if got := protoSize; got != expected { - return nil, fmt.Errorf("%s proto.Size(m) got %d expected %d", desc, got, expected) - } - if got := mSize; got != expected { - return nil, fmt.Errorf("%s m.Size() got %d expected %d", desc, got, expected) - } - if got := lenData; got != expected { - return nil, fmt.Errorf("%s len(data) got %d expected %d", desc, got, expected) - } - return data, nil -} - -func TestInt32Int64Compatibility(t *testing.T) { - - //test nullable int32 and int64 - - data1, err := testSize(&NinOptNative{ - Field3: proto.Int32(-1), - }, "nullable", 11) - if err != nil { - t.Error(err) - } - //change marshaled data1 to unmarshal into 4th field which is an int64 - data1[0] = uint8(uint32(4 /*fieldNumber*/)<<3 | uint32(0 /*wireType*/)) - u1 := &NinOptNative{} - if err = proto.Unmarshal(data1, u1); err != nil { - t.Error(err) - } - if !u1.Equal(&NinOptNative{ - Field4: proto.Int64(-1), - }) { - t.Error("nullable unmarshaled int32 is not the same int64") - } - - //test non-nullable int32 and int64 - - data2, err := testSize(&NidOptNative{ - Field3: -1, - }, "non nullable", 67) - if err != nil { - t.Error(err) - } - //change marshaled data2 to unmarshal into 4th field which is an int64 - field3 := uint8(uint32(3 /*fieldNumber*/)<<3 | uint32(0 /*wireType*/)) - field4 := uint8(uint32(4 /*fieldNumber*/)<<3 | uint32(0 /*wireType*/)) - for i, c := range data2 { - if c == field4 { - data2[i] = field3 - } else if c == field3 { - data2[i] = field4 - } - } - u2 := &NidOptNative{} - if err = proto.Unmarshal(data2, u2); err != nil { - t.Error(err) - } - if !u2.Equal(&NidOptNative{ - Field4: -1, - }) { - t.Error("non nullable unmarshaled int32 is not the same int64") - } - - //test packed repeated int32 and int64 - - m4 := &NinRepPackedNative{ - Field3: []int32{-1}, - } - data4, err := testSize(m4, "packed", 12) - if err != nil { - t.Error(err) - } - u4 := &NinRepPackedNative{} - if err := proto.Unmarshal(data4, u4); err != nil { - t.Error(err) - } - if err := u4.VerboseEqual(m4); err != nil { - t.Fatalf("%#v", u4) - } - - //test repeated int32 and int64 - - if _, err := testSize(&NinRepNative{ - Field3: []int32{-1}, - }, "repeated", 11); err != nil { - t.Error(err) - } - - t.Logf("tested all") -} - -func TestRepeatedExtensionsMsgsIssue161(t *testing.T) { - r := rand.New(rand.NewSource(time.Now().UnixNano())) - rep := 10 - nins := make([]*NinOptNative, rep) - for i := range nins { - nins[i] = NewPopulatedNinOptNative(r, true) - } - input := &MyExtendable{} - if err := proto.SetExtension(input, E_FieldE, nins); err != nil { - t.Fatal(err) - } - data, err := proto.Marshal(input) - if err != nil { - t.Fatal(err) - } - output := &MyExtendable{} - if err := proto.Unmarshal(data, output); err != nil { - t.Fatal(err) - } - if !input.Equal(output) { - t.Fatal("expected equal") - } - data2, err2 := proto.Marshal(output) - if err2 != nil { - t.Fatal(err2) - } - if len(data) != len(data2) { - t.Fatal("expected equal length buffers") - } -} - -func TestRepeatedExtensionsFieldsIssue161(t *testing.T) { - r := rand.New(rand.NewSource(time.Now().UnixNano())) - rep := 10 - ints := make([]int64, rep) - for i := range ints { - ints[i] = r.Int63() - } - input := &MyExtendable{} - if err := proto.SetExtension(input, E_FieldD, ints); err != nil { - t.Fatal(err) - } - data, err := proto.Marshal(input) - if err != nil { - t.Fatal(err) - } - output := &MyExtendable{} - if err := proto.Unmarshal(data, output); err != nil { - t.Fatal(err) - } - if !input.Equal(output) { - t.Fatal("expected equal") - } - data2, err2 := proto.Marshal(output) - if err2 != nil { - t.Fatal(err2) - } - if len(data) != len(data2) { - t.Fatal("expected equal length buffers") - } -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/t.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/t.go deleted file mode 100644 index c7c292e82..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/t.go +++ /dev/null @@ -1,73 +0,0 @@ -package test - -import ( - "encoding/json" - "strings" - - "github.com/gogo/protobuf/proto" -) - -type T struct { - Data string -} - -func (gt *T) protoType() *ProtoType { - return &ProtoType{ - Field2: >.Data, - } -} - -func (gt T) Equal(other T) bool { - return gt.protoType().Equal(other.protoType()) -} - -func (gt *T) Size() int { - proto := &ProtoType{ - Field2: >.Data, - } - return proto.Size() -} - -func NewPopulatedT(r randyThetest) *T { - data := NewPopulatedProtoType(r, false).Field2 - gt := &T{} - if data != nil { - gt.Data = *data - } - return gt -} - -func (r T) Marshal() ([]byte, error) { - return proto.Marshal(r.protoType()) -} - -func (r *T) Unmarshal(data []byte) error { - pr := &ProtoType{} - err := proto.Unmarshal(data, pr) - if err != nil { - return err - } - - if pr.Field2 != nil { - r.Data = *pr.Field2 - } - return nil -} - -func (gt T) MarshalJSON() ([]byte, error) { - return json.Marshal(gt.Data) -} - -func (gt *T) UnmarshalJSON(data []byte) error { - var s string - err := json.Unmarshal(data, &s) - if err != nil { - return err - } - *gt = T{Data: s} - return nil -} - -func (gt T) Compare(other T) int { - return strings.Compare(gt.Data, other.Data) -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.pb.go deleted file mode 100644 index 7e3b9a08e..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.pb.go +++ /dev/null @@ -1,39590 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/thetest.proto -// DO NOT EDIT! - -/* - Package test is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeunmarshaler/thetest.proto - - It has these top-level messages: - NidOptNative - NinOptNative - NidRepNative - NinRepNative - NidRepPackedNative - NinRepPackedNative - NidOptStruct - NinOptStruct - NidRepStruct - NinRepStruct - NidEmbeddedStruct - NinEmbeddedStruct - NidNestedStruct - NinNestedStruct - NidOptCustom - CustomDash - NinOptCustom - NidRepCustom - NinRepCustom - NinOptNativeUnion - NinOptStructUnion - NinEmbeddedStructUnion - NinNestedStructUnion - Tree - OrBranch - AndBranch - Leaf - DeepTree - ADeepBranch - AndDeepBranch - DeepLeaf - Nil - NidOptEnum - NinOptEnum - NidRepEnum - NinRepEnum - NinOptEnumDefault - AnotherNinOptEnum - AnotherNinOptEnumDefault - Timer - MyExtendable - OtherExtenable - NestedDefinition - NestedScope - NinOptNativeDefault - CustomContainer - CustomNameNidOptNative - CustomNameNinOptNative - CustomNameNinRepNative - CustomNameNinStruct - CustomNameCustomType - CustomNameNinEmbeddedStructUnion - CustomNameEnum - NoExtensionsMap - Unrecognized - UnrecognizedWithInner - UnrecognizedWithEmbed - Node - NonByteCustomType - NidOptNonByteCustomType - NinOptNonByteCustomType - NidRepNonByteCustomType - NinRepNonByteCustomType - ProtoType -*/ -package test - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type" - -import bytes "bytes" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import compress_gzip "compress/gzip" -import io_ioutil "io/ioutil" - -import strconv "strconv" - -import strings "strings" -import sort "sort" -import reflect "reflect" - -import io "io" -import unsafe "unsafe" - -// 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 - -type TheTestEnum int32 - -const ( - A TheTestEnum = 0 - B TheTestEnum = 1 - C TheTestEnum = 2 -) - -var TheTestEnum_name = map[int32]string{ - 0: "A", - 1: "B", - 2: "C", -} -var TheTestEnum_value = map[string]int32{ - "A": 0, - "B": 1, - "C": 2, -} - -func (x TheTestEnum) Enum() *TheTestEnum { - p := new(TheTestEnum) - *p = x - return p -} -func (x TheTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(TheTestEnum_name, int32(x)) -} -func (x *TheTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(TheTestEnum_value, data, "TheTestEnum") - if err != nil { - return err - } - *x = TheTestEnum(value) - return nil -} -func (TheTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } - -type AnotherTestEnum int32 - -const ( - D AnotherTestEnum = 10 - E AnotherTestEnum = 11 -) - -var AnotherTestEnum_name = map[int32]string{ - 10: "D", - 11: "E", -} -var AnotherTestEnum_value = map[string]int32{ - "D": 10, - "E": 11, -} - -func (x AnotherTestEnum) Enum() *AnotherTestEnum { - p := new(AnotherTestEnum) - *p = x - return p -} -func (x AnotherTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(AnotherTestEnum_name, int32(x)) -} -func (x *AnotherTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(AnotherTestEnum_value, data, "AnotherTestEnum") - if err != nil { - return err - } - *x = AnotherTestEnum(value) - return nil -} -func (AnotherTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -type YetAnotherTestEnum int32 - -const ( - AA YetAnotherTestEnum = 0 - BetterYetBB YetAnotherTestEnum = 1 -) - -var YetAnotherTestEnum_name = map[int32]string{ - 0: "AA", - 1: "BB", -} -var YetAnotherTestEnum_value = map[string]int32{ - "AA": 0, - "BB": 1, -} - -func (x YetAnotherTestEnum) Enum() *YetAnotherTestEnum { - p := new(YetAnotherTestEnum) - *p = x - return p -} -func (x YetAnotherTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(YetAnotherTestEnum_name, int32(x)) -} -func (x *YetAnotherTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(YetAnotherTestEnum_value, data, "YetAnotherTestEnum") - if err != nil { - return err - } - *x = YetAnotherTestEnum(value) - return nil -} -func (YetAnotherTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -type YetYetAnotherTestEnum int32 - -const ( - YetYetAnotherTestEnum_CC YetYetAnotherTestEnum = 0 - YetYetAnotherTestEnum_BetterYetDD YetYetAnotherTestEnum = 1 -) - -var YetYetAnotherTestEnum_name = map[int32]string{ - 0: "CC", - 1: "DD", -} -var YetYetAnotherTestEnum_value = map[string]int32{ - "CC": 0, - "DD": 1, -} - -func (x YetYetAnotherTestEnum) Enum() *YetYetAnotherTestEnum { - p := new(YetYetAnotherTestEnum) - *p = x - return p -} -func (x YetYetAnotherTestEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(YetYetAnotherTestEnum_name, int32(x)) -} -func (x *YetYetAnotherTestEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(YetYetAnotherTestEnum_value, data, "YetYetAnotherTestEnum") - if err != nil { - return err - } - *x = YetYetAnotherTestEnum(value) - return nil -} -func (YetYetAnotherTestEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } - -type NestedDefinition_NestedEnum int32 - -const ( - TYPE_NESTED NestedDefinition_NestedEnum = 1 -) - -var NestedDefinition_NestedEnum_name = map[int32]string{ - 1: "TYPE_NESTED", -} -var NestedDefinition_NestedEnum_value = map[string]int32{ - "TYPE_NESTED": 1, -} - -func (x NestedDefinition_NestedEnum) Enum() *NestedDefinition_NestedEnum { - p := new(NestedDefinition_NestedEnum) - *p = x - return p -} -func (x NestedDefinition_NestedEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(NestedDefinition_NestedEnum_name, int32(x)) -} -func (x *NestedDefinition_NestedEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(NestedDefinition_NestedEnum_value, data, "NestedDefinition_NestedEnum") - if err != nil { - return err - } - *x = NestedDefinition_NestedEnum(value) - return nil -} -func (NestedDefinition_NestedEnum) EnumDescriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{42, 0} -} - -type NidOptNative struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` - Field3 int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` - Field4 int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` - Field5 uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` - Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptNative) Reset() { *m = NidOptNative{} } -func (*NidOptNative) ProtoMessage() {} -func (*NidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{0} } - -type NinOptNative struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNative) Reset() { *m = NinOptNative{} } -func (*NinOptNative) ProtoMessage() {} -func (*NinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{1} } - -type NidRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepNative) Reset() { *m = NidRepNative{} } -func (*NidRepNative) ProtoMessage() {} -func (*NidRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{2} } - -type NinRepNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepNative) Reset() { *m = NinRepNative{} } -func (*NinRepNative) ProtoMessage() {} -func (*NinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{3} } - -type NidRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepPackedNative) Reset() { *m = NidRepPackedNative{} } -func (*NidRepPackedNative) ProtoMessage() {} -func (*NidRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{4} } - -type NinRepPackedNative struct { - Field1 []float64 `protobuf:"fixed64,1,rep,packed,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,packed,name=Field2" json:"Field2,omitempty"` - Field3 []int32 `protobuf:"varint,3,rep,packed,name=Field3" json:"Field3,omitempty"` - Field4 []int64 `protobuf:"varint,4,rep,packed,name=Field4" json:"Field4,omitempty"` - Field5 []uint32 `protobuf:"varint,5,rep,packed,name=Field5" json:"Field5,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,packed,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,packed,name=Field7" json:"Field7,omitempty"` - Field8 []int64 `protobuf:"zigzag64,8,rep,packed,name=Field8" json:"Field8,omitempty"` - Field9 []uint32 `protobuf:"fixed32,9,rep,packed,name=Field9" json:"Field9,omitempty"` - Field10 []int32 `protobuf:"fixed32,10,rep,packed,name=Field10" json:"Field10,omitempty"` - Field11 []uint64 `protobuf:"fixed64,11,rep,packed,name=Field11" json:"Field11,omitempty"` - Field12 []int64 `protobuf:"fixed64,12,rep,packed,name=Field12" json:"Field12,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,packed,name=Field13" json:"Field13,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepPackedNative) Reset() { *m = NinRepPackedNative{} } -func (*NinRepPackedNative) ProtoMessage() {} -func (*NinRepPackedNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{5} } - -type NidOptStruct struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` - Field3 NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3"` - Field4 NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4"` - Field6 uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` - Field8 NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8"` - Field13 bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` - Field14 string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptStruct) Reset() { *m = NidOptStruct{} } -func (*NidOptStruct) ProtoMessage() {} -func (*NidOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{6} } - -type NinOptStruct struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - Field8 *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptStruct) Reset() { *m = NinOptStruct{} } -func (*NinOptStruct) ProtoMessage() {} -func (*NinOptStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{7} } - -type NidRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3"` - Field4 []NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepStruct) Reset() { *m = NidRepStruct{} } -func (*NidRepStruct) ProtoMessage() {} -func (*NidRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{8} } - -type NinRepStruct struct { - Field1 []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - Field2 []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - Field3 []*NidOptNative `protobuf:"bytes,3,rep,name=Field3" json:"Field3,omitempty"` - Field4 []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` - Field6 []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - Field7 []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - Field8 []*NidOptNative `protobuf:"bytes,8,rep,name=Field8" json:"Field8,omitempty"` - Field13 []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - Field14 []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - Field15 [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepStruct) Reset() { *m = NinRepStruct{} } -func (*NinRepStruct) ProtoMessage() {} -func (*NinRepStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{9} } - -type NidEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - Field200 NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200"` - Field210 bool `protobuf:"varint,210,opt,name=Field210" json:"Field210"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidEmbeddedStruct) Reset() { *m = NidEmbeddedStruct{} } -func (*NidEmbeddedStruct) ProtoMessage() {} -func (*NidEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{10} } - -type NinEmbeddedStruct struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NidOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinEmbeddedStruct) Reset() { *m = NinEmbeddedStruct{} } -func (*NinEmbeddedStruct) ProtoMessage() {} -func (*NinEmbeddedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{11} } - -type NidNestedStruct struct { - Field1 NidOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1"` - Field2 []NidRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidNestedStruct) Reset() { *m = NidNestedStruct{} } -func (*NidNestedStruct) ProtoMessage() {} -func (*NidNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{12} } - -type NinNestedStruct struct { - Field1 *NinOptStruct `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 []*NinRepStruct `protobuf:"bytes,2,rep,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinNestedStruct) Reset() { *m = NinNestedStruct{} } -func (*NinNestedStruct) ProtoMessage() {} -func (*NinNestedStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{13} } - -type NidOptCustom struct { - Id Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id"` - Value github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptCustom) Reset() { *m = NidOptCustom{} } -func (*NidOptCustom) ProtoMessage() {} -func (*NidOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{14} } - -type CustomDash struct { - Value *github_com_gogo_protobuf_test_custom_dash_type.Bytes `protobuf:"bytes,1,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom-dash-type.Bytes" json:"Value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomDash) Reset() { *m = CustomDash{} } -func (*CustomDash) ProtoMessage() {} -func (*CustomDash) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{15} } - -type NinOptCustom struct { - Id *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` - Value *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptCustom) Reset() { *m = NinOptCustom{} } -func (*NinOptCustom) ProtoMessage() {} -func (*NinOptCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{16} } - -type NidRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepCustom) Reset() { *m = NidRepCustom{} } -func (*NidRepCustom) ProtoMessage() {} -func (*NidRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{17} } - -type NinRepCustom struct { - Id []Uuid `protobuf:"bytes,1,rep,name=Id,customtype=Uuid" json:"Id,omitempty"` - Value []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepCustom) Reset() { *m = NinRepCustom{} } -func (*NinRepCustom) ProtoMessage() {} -func (*NinRepCustom) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{18} } - -type NinOptNativeUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNativeUnion) Reset() { *m = NinOptNativeUnion{} } -func (*NinOptNativeUnion) ProtoMessage() {} -func (*NinOptNativeUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{19} } - -type NinOptStructUnion struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - Field4 *NinOptNative `protobuf:"bytes,4,opt,name=Field4" json:"Field4,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptStructUnion) Reset() { *m = NinOptStructUnion{} } -func (*NinOptStructUnion) ProtoMessage() {} -func (*NinOptStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{20} } - -type NinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - Field200 *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` - Field210 *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinEmbeddedStructUnion) Reset() { *m = NinEmbeddedStructUnion{} } -func (*NinEmbeddedStructUnion) ProtoMessage() {} -func (*NinEmbeddedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{21} } - -type NinNestedStructUnion struct { - Field1 *NinOptNativeUnion `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` - Field2 *NinOptStructUnion `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` - Field3 *NinEmbeddedStructUnion `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinNestedStructUnion) Reset() { *m = NinNestedStructUnion{} } -func (*NinNestedStructUnion) ProtoMessage() {} -func (*NinNestedStructUnion) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{22} } - -type Tree struct { - Or *OrBranch `protobuf:"bytes,1,opt,name=Or" json:"Or,omitempty"` - And *AndBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` - Leaf *Leaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Tree) Reset() { *m = Tree{} } -func (*Tree) ProtoMessage() {} -func (*Tree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{23} } - -type OrBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OrBranch) Reset() { *m = OrBranch{} } -func (*OrBranch) ProtoMessage() {} -func (*OrBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{24} } - -type AndBranch struct { - Left Tree `protobuf:"bytes,1,opt,name=Left" json:"Left"` - Right Tree `protobuf:"bytes,2,opt,name=Right" json:"Right"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AndBranch) Reset() { *m = AndBranch{} } -func (*AndBranch) ProtoMessage() {} -func (*AndBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{25} } - -type Leaf struct { - Value int64 `protobuf:"varint,1,opt,name=Value" json:"Value"` - StrValue string `protobuf:"bytes,2,opt,name=StrValue" json:"StrValue"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Leaf) Reset() { *m = Leaf{} } -func (*Leaf) ProtoMessage() {} -func (*Leaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{26} } - -type DeepTree struct { - Down *ADeepBranch `protobuf:"bytes,1,opt,name=Down" json:"Down,omitempty"` - And *AndDeepBranch `protobuf:"bytes,2,opt,name=And" json:"And,omitempty"` - Leaf *DeepLeaf `protobuf:"bytes,3,opt,name=Leaf" json:"Leaf,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DeepTree) Reset() { *m = DeepTree{} } -func (*DeepTree) ProtoMessage() {} -func (*DeepTree) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{27} } - -type ADeepBranch struct { - Down DeepTree `protobuf:"bytes,2,opt,name=Down" json:"Down"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *ADeepBranch) Reset() { *m = ADeepBranch{} } -func (*ADeepBranch) ProtoMessage() {} -func (*ADeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{28} } - -type AndDeepBranch struct { - Left DeepTree `protobuf:"bytes,1,opt,name=Left" json:"Left"` - Right DeepTree `protobuf:"bytes,2,opt,name=Right" json:"Right"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AndDeepBranch) Reset() { *m = AndDeepBranch{} } -func (*AndDeepBranch) ProtoMessage() {} -func (*AndDeepBranch) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{29} } - -type DeepLeaf struct { - Tree Tree `protobuf:"bytes,1,opt,name=Tree" json:"Tree"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *DeepLeaf) Reset() { *m = DeepLeaf{} } -func (*DeepLeaf) ProtoMessage() {} -func (*DeepLeaf) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{30} } - -type Nil struct { - XXX_unrecognized []byte `json:"-"` -} - -func (m *Nil) Reset() { *m = Nil{} } -func (*Nil) ProtoMessage() {} -func (*Nil) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{31} } - -type NidOptEnum struct { - Field1 TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptEnum) Reset() { *m = NidOptEnum{} } -func (*NidOptEnum) ProtoMessage() {} -func (*NidOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{32} } - -type NinOptEnum struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptEnum) Reset() { *m = NinOptEnum{} } -func (*NinOptEnum) ProtoMessage() {} -func (*NinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{33} } - -type NidRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepEnum) Reset() { *m = NidRepEnum{} } -func (*NidRepEnum) ProtoMessage() {} -func (*NidRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{34} } - -type NinRepEnum struct { - Field1 []TheTestEnum `protobuf:"varint,1,rep,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - Field2 []YetAnotherTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 []YetYetAnotherTestEnum `protobuf:"varint,3,rep,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepEnum) Reset() { *m = NinRepEnum{} } -func (*NinRepEnum) ProtoMessage() {} -func (*NinRepEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{35} } - -type NinOptEnumDefault struct { - Field1 *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum,def=2" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptEnumDefault) Reset() { *m = NinOptEnumDefault{} } -func (*NinOptEnumDefault) ProtoMessage() {} -func (*NinOptEnumDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{36} } - -const Default_NinOptEnumDefault_Field1 TheTestEnum = C -const Default_NinOptEnumDefault_Field2 YetAnotherTestEnum = BetterYetBB -const Default_NinOptEnumDefault_Field3 YetYetAnotherTestEnum = YetYetAnotherTestEnum_CC - -func (m *NinOptEnumDefault) GetField1() TheTestEnum { - if m != nil && m.Field1 != nil { - return *m.Field1 - } - return Default_NinOptEnumDefault_Field1 -} - -func (m *NinOptEnumDefault) GetField2() YetAnotherTestEnum { - if m != nil && m.Field2 != nil { - return *m.Field2 - } - return Default_NinOptEnumDefault_Field2 -} - -func (m *NinOptEnumDefault) GetField3() YetYetAnotherTestEnum { - if m != nil && m.Field3 != nil { - return *m.Field3 - } - return Default_NinOptEnumDefault_Field3 -} - -type AnotherNinOptEnum struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AnotherNinOptEnum) Reset() { *m = AnotherNinOptEnum{} } -func (*AnotherNinOptEnum) ProtoMessage() {} -func (*AnotherNinOptEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{37} } - -type AnotherNinOptEnumDefault struct { - Field1 *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"` - Field2 *YetAnotherTestEnum `protobuf:"varint,2,opt,name=Field2,enum=test.YetAnotherTestEnum,def=1" json:"Field2,omitempty"` - Field3 *YetYetAnotherTestEnum `protobuf:"varint,3,opt,name=Field3,enum=test.YetYetAnotherTestEnum,def=0" json:"Field3,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AnotherNinOptEnumDefault) Reset() { *m = AnotherNinOptEnumDefault{} } -func (*AnotherNinOptEnumDefault) ProtoMessage() {} -func (*AnotherNinOptEnumDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{38} } - -const Default_AnotherNinOptEnumDefault_Field1 AnotherTestEnum = E -const Default_AnotherNinOptEnumDefault_Field2 YetAnotherTestEnum = BetterYetBB -const Default_AnotherNinOptEnumDefault_Field3 YetYetAnotherTestEnum = YetYetAnotherTestEnum_CC - -func (m *AnotherNinOptEnumDefault) GetField1() AnotherTestEnum { - if m != nil && m.Field1 != nil { - return *m.Field1 - } - return Default_AnotherNinOptEnumDefault_Field1 -} - -func (m *AnotherNinOptEnumDefault) GetField2() YetAnotherTestEnum { - if m != nil && m.Field2 != nil { - return *m.Field2 - } - return Default_AnotherNinOptEnumDefault_Field2 -} - -func (m *AnotherNinOptEnumDefault) GetField3() YetYetAnotherTestEnum { - if m != nil && m.Field3 != nil { - return *m.Field3 - } - return Default_AnotherNinOptEnumDefault_Field3 -} - -type Timer struct { - Time1 int64 `protobuf:"fixed64,1,opt,name=Time1" json:"Time1"` - Time2 int64 `protobuf:"fixed64,2,opt,name=Time2" json:"Time2"` - Data []byte `protobuf:"bytes,3,opt,name=Data" json:"Data"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Timer) Reset() { *m = Timer{} } -func (*Timer) ProtoMessage() {} -func (*Timer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{39} } - -type MyExtendable struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` - proto.XXX_InternalExtensions `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *MyExtendable) Reset() { *m = MyExtendable{} } -func (*MyExtendable) ProtoMessage() {} -func (*MyExtendable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{40} } - -var extRange_MyExtendable = []proto.ExtensionRange{ - {Start: 100, End: 199}, -} - -func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_MyExtendable -} - -type OtherExtenable struct { - Field2 *int64 `protobuf:"varint,2,opt,name=Field2" json:"Field2,omitempty"` - Field13 *int64 `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - M *MyExtendable `protobuf:"bytes,1,opt,name=M" json:"M,omitempty"` - proto.XXX_InternalExtensions `json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *OtherExtenable) Reset() { *m = OtherExtenable{} } -func (*OtherExtenable) ProtoMessage() {} -func (*OtherExtenable) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{41} } - -var extRange_OtherExtenable = []proto.ExtensionRange{ - {Start: 14, End: 16}, - {Start: 10, End: 12}, -} - -func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_OtherExtenable -} - -type NestedDefinition struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` - EnumField *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=EnumField,enum=test.NestedDefinition_NestedEnum" json:"EnumField,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,3,opt,name=NNM" json:"NNM,omitempty"` - NM *NestedDefinition_NestedMessage `protobuf:"bytes,4,opt,name=NM" json:"NM,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedDefinition) Reset() { *m = NestedDefinition{} } -func (*NestedDefinition) ProtoMessage() {} -func (*NestedDefinition) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{42} } - -type NestedDefinition_NestedMessage struct { - NestedField1 *uint64 `protobuf:"fixed64,1,opt,name=NestedField1" json:"NestedField1,omitempty"` - NNM *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,2,opt,name=NNM" json:"NNM,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedDefinition_NestedMessage) Reset() { *m = NestedDefinition_NestedMessage{} } -func (*NestedDefinition_NestedMessage) ProtoMessage() {} -func (*NestedDefinition_NestedMessage) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{42, 0} -} - -type NestedDefinition_NestedMessage_NestedNestedMsg struct { - NestedNestedField1 *string `protobuf:"bytes,10,opt,name=NestedNestedField1" json:"NestedNestedField1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Reset() { - *m = NestedDefinition_NestedMessage_NestedNestedMsg{} -} -func (*NestedDefinition_NestedMessage_NestedNestedMsg) ProtoMessage() {} -func (*NestedDefinition_NestedMessage_NestedNestedMsg) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{42, 0, 0} -} - -type NestedScope struct { - A *NestedDefinition_NestedMessage_NestedNestedMsg `protobuf:"bytes,1,opt,name=A" json:"A,omitempty"` - B *NestedDefinition_NestedEnum `protobuf:"varint,2,opt,name=B,enum=test.NestedDefinition_NestedEnum" json:"B,omitempty"` - C *NestedDefinition_NestedMessage `protobuf:"bytes,3,opt,name=C" json:"C,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NestedScope) Reset() { *m = NestedScope{} } -func (*NestedScope) ProtoMessage() {} -func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{43} } - -type NinOptNativeDefault struct { - Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` - Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` - Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` - Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` - Field6 *uint64 `protobuf:"varint,6,opt,name=Field6,def=1234" json:"Field6,omitempty"` - Field7 *int32 `protobuf:"zigzag32,7,opt,name=Field7,def=1234" json:"Field7,omitempty"` - Field8 *int64 `protobuf:"zigzag64,8,opt,name=Field8,def=1234" json:"Field8,omitempty"` - Field9 *uint32 `protobuf:"fixed32,9,opt,name=Field9,def=1234" json:"Field9,omitempty"` - Field10 *int32 `protobuf:"fixed32,10,opt,name=Field10,def=1234" json:"Field10,omitempty"` - Field11 *uint64 `protobuf:"fixed64,11,opt,name=Field11,def=1234" json:"Field11,omitempty"` - Field12 *int64 `protobuf:"fixed64,12,opt,name=Field12,def=1234" json:"Field12,omitempty"` - Field13 *bool `protobuf:"varint,13,opt,name=Field13,def=1" json:"Field13,omitempty"` - Field14 *string `protobuf:"bytes,14,opt,name=Field14,def=1234" json:"Field14,omitempty"` - Field15 []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNativeDefault) Reset() { *m = NinOptNativeDefault{} } -func (*NinOptNativeDefault) ProtoMessage() {} -func (*NinOptNativeDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{44} } - -const Default_NinOptNativeDefault_Field1 float64 = 1234.1234 -const Default_NinOptNativeDefault_Field2 float32 = 1234.1234 -const Default_NinOptNativeDefault_Field3 int32 = 1234 -const Default_NinOptNativeDefault_Field4 int64 = 1234 -const Default_NinOptNativeDefault_Field5 uint32 = 1234 -const Default_NinOptNativeDefault_Field6 uint64 = 1234 -const Default_NinOptNativeDefault_Field7 int32 = 1234 -const Default_NinOptNativeDefault_Field8 int64 = 1234 -const Default_NinOptNativeDefault_Field9 uint32 = 1234 -const Default_NinOptNativeDefault_Field10 int32 = 1234 -const Default_NinOptNativeDefault_Field11 uint64 = 1234 -const Default_NinOptNativeDefault_Field12 int64 = 1234 -const Default_NinOptNativeDefault_Field13 bool = true -const Default_NinOptNativeDefault_Field14 string = "1234" - -func (m *NinOptNativeDefault) GetField1() float64 { - if m != nil && m.Field1 != nil { - return *m.Field1 - } - return Default_NinOptNativeDefault_Field1 -} - -func (m *NinOptNativeDefault) GetField2() float32 { - if m != nil && m.Field2 != nil { - return *m.Field2 - } - return Default_NinOptNativeDefault_Field2 -} - -func (m *NinOptNativeDefault) GetField3() int32 { - if m != nil && m.Field3 != nil { - return *m.Field3 - } - return Default_NinOptNativeDefault_Field3 -} - -func (m *NinOptNativeDefault) GetField4() int64 { - if m != nil && m.Field4 != nil { - return *m.Field4 - } - return Default_NinOptNativeDefault_Field4 -} - -func (m *NinOptNativeDefault) GetField5() uint32 { - if m != nil && m.Field5 != nil { - return *m.Field5 - } - return Default_NinOptNativeDefault_Field5 -} - -func (m *NinOptNativeDefault) GetField6() uint64 { - if m != nil && m.Field6 != nil { - return *m.Field6 - } - return Default_NinOptNativeDefault_Field6 -} - -func (m *NinOptNativeDefault) GetField7() int32 { - if m != nil && m.Field7 != nil { - return *m.Field7 - } - return Default_NinOptNativeDefault_Field7 -} - -func (m *NinOptNativeDefault) GetField8() int64 { - if m != nil && m.Field8 != nil { - return *m.Field8 - } - return Default_NinOptNativeDefault_Field8 -} - -func (m *NinOptNativeDefault) GetField9() uint32 { - if m != nil && m.Field9 != nil { - return *m.Field9 - } - return Default_NinOptNativeDefault_Field9 -} - -func (m *NinOptNativeDefault) GetField10() int32 { - if m != nil && m.Field10 != nil { - return *m.Field10 - } - return Default_NinOptNativeDefault_Field10 -} - -func (m *NinOptNativeDefault) GetField11() uint64 { - if m != nil && m.Field11 != nil { - return *m.Field11 - } - return Default_NinOptNativeDefault_Field11 -} - -func (m *NinOptNativeDefault) GetField12() int64 { - if m != nil && m.Field12 != nil { - return *m.Field12 - } - return Default_NinOptNativeDefault_Field12 -} - -func (m *NinOptNativeDefault) GetField13() bool { - if m != nil && m.Field13 != nil { - return *m.Field13 - } - return Default_NinOptNativeDefault_Field13 -} - -func (m *NinOptNativeDefault) GetField14() string { - if m != nil && m.Field14 != nil { - return *m.Field14 - } - return Default_NinOptNativeDefault_Field14 -} - -func (m *NinOptNativeDefault) GetField15() []byte { - if m != nil { - return m.Field15 - } - return nil -} - -type CustomContainer struct { - CustomStruct NidOptCustom `protobuf:"bytes,1,opt,name=CustomStruct" json:"CustomStruct"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomContainer) Reset() { *m = CustomContainer{} } -func (*CustomContainer) ProtoMessage() {} -func (*CustomContainer) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{45} } - -type CustomNameNidOptNative struct { - FieldA float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1"` - FieldB float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2"` - FieldC int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3"` - FieldD int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4"` - FieldE uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5"` - FieldF uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6"` - FieldG int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7"` - FieldH int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8"` - FieldI uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9"` - FieldJ int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10"` - FieldK uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11"` - FieldL int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12"` - FieldM bool `protobuf:"varint,13,opt,name=Field13" json:"Field13"` - FieldN string `protobuf:"bytes,14,opt,name=Field14" json:"Field14"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNidOptNative) Reset() { *m = CustomNameNidOptNative{} } -func (*CustomNameNidOptNative) ProtoMessage() {} -func (*CustomNameNidOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{46} } - -type CustomNameNinOptNative struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - FieldC *int32 `protobuf:"varint,3,opt,name=Field3" json:"Field3,omitempty"` - FieldD *int64 `protobuf:"varint,4,opt,name=Field4" json:"Field4,omitempty"` - FieldE *uint32 `protobuf:"varint,5,opt,name=Field5" json:"Field5,omitempty"` - FieldF *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - FieldG *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - FieldH *int64 `protobuf:"zigzag64,8,opt,name=Field8" json:"Field8,omitempty"` - FieldI *uint32 `protobuf:"fixed32,9,opt,name=Field9" json:"Field9,omitempty"` - FieldJ *int32 `protobuf:"fixed32,10,opt,name=Field10" json:"Field10,omitempty"` - FieldK *uint64 `protobuf:"fixed64,11,opt,name=Field11" json:"Field11,omitempty"` - FielL *int64 `protobuf:"fixed64,12,opt,name=Field12" json:"Field12,omitempty"` - FieldM *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - FieldN *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - FieldO []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinOptNative) Reset() { *m = CustomNameNinOptNative{} } -func (*CustomNameNinOptNative) ProtoMessage() {} -func (*CustomNameNinOptNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{47} } - -type CustomNameNinRepNative struct { - FieldA []float64 `protobuf:"fixed64,1,rep,name=Field1" json:"Field1,omitempty"` - FieldB []float32 `protobuf:"fixed32,2,rep,name=Field2" json:"Field2,omitempty"` - FieldC []int32 `protobuf:"varint,3,rep,name=Field3" json:"Field3,omitempty"` - FieldD []int64 `protobuf:"varint,4,rep,name=Field4" json:"Field4,omitempty"` - FieldE []uint32 `protobuf:"varint,5,rep,name=Field5" json:"Field5,omitempty"` - FieldF []uint64 `protobuf:"varint,6,rep,name=Field6" json:"Field6,omitempty"` - FieldG []int32 `protobuf:"zigzag32,7,rep,name=Field7" json:"Field7,omitempty"` - FieldH []int64 `protobuf:"zigzag64,8,rep,name=Field8" json:"Field8,omitempty"` - FieldI []uint32 `protobuf:"fixed32,9,rep,name=Field9" json:"Field9,omitempty"` - FieldJ []int32 `protobuf:"fixed32,10,rep,name=Field10" json:"Field10,omitempty"` - FieldK []uint64 `protobuf:"fixed64,11,rep,name=Field11" json:"Field11,omitempty"` - FieldL []int64 `protobuf:"fixed64,12,rep,name=Field12" json:"Field12,omitempty"` - FieldM []bool `protobuf:"varint,13,rep,name=Field13" json:"Field13,omitempty"` - FieldN []string `protobuf:"bytes,14,rep,name=Field14" json:"Field14,omitempty"` - FieldO [][]byte `protobuf:"bytes,15,rep,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinRepNative) Reset() { *m = CustomNameNinRepNative{} } -func (*CustomNameNinRepNative) ProtoMessage() {} -func (*CustomNameNinRepNative) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{48} } - -type CustomNameNinStruct struct { - FieldA *float64 `protobuf:"fixed64,1,opt,name=Field1" json:"Field1,omitempty"` - FieldB *float32 `protobuf:"fixed32,2,opt,name=Field2" json:"Field2,omitempty"` - FieldC *NidOptNative `protobuf:"bytes,3,opt,name=Field3" json:"Field3,omitempty"` - FieldD []*NinOptNative `protobuf:"bytes,4,rep,name=Field4" json:"Field4,omitempty"` - FieldE *uint64 `protobuf:"varint,6,opt,name=Field6" json:"Field6,omitempty"` - FieldF *int32 `protobuf:"zigzag32,7,opt,name=Field7" json:"Field7,omitempty"` - FieldG *NidOptNative `protobuf:"bytes,8,opt,name=Field8" json:"Field8,omitempty"` - FieldH *bool `protobuf:"varint,13,opt,name=Field13" json:"Field13,omitempty"` - FieldI *string `protobuf:"bytes,14,opt,name=Field14" json:"Field14,omitempty"` - FieldJ []byte `protobuf:"bytes,15,opt,name=Field15" json:"Field15,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinStruct) Reset() { *m = CustomNameNinStruct{} } -func (*CustomNameNinStruct) ProtoMessage() {} -func (*CustomNameNinStruct) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{49} } - -type CustomNameCustomType struct { - FieldA *Uuid `protobuf:"bytes,1,opt,name=Id,customtype=Uuid" json:"Id,omitempty"` - FieldB *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=Value,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Value,omitempty"` - FieldC []Uuid `protobuf:"bytes,3,rep,name=Ids,customtype=Uuid" json:"Ids,omitempty"` - FieldD []github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,4,rep,name=Values,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Values,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameCustomType) Reset() { *m = CustomNameCustomType{} } -func (*CustomNameCustomType) ProtoMessage() {} -func (*CustomNameCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{50} } - -type CustomNameNinEmbeddedStructUnion struct { - *NidOptNative `protobuf:"bytes,1,opt,name=Field1,embedded=Field1" json:"Field1,omitempty"` - FieldA *NinOptNative `protobuf:"bytes,200,opt,name=Field200" json:"Field200,omitempty"` - FieldB *bool `protobuf:"varint,210,opt,name=Field210" json:"Field210,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameNinEmbeddedStructUnion) Reset() { *m = CustomNameNinEmbeddedStructUnion{} } -func (*CustomNameNinEmbeddedStructUnion) ProtoMessage() {} -func (*CustomNameNinEmbeddedStructUnion) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{51} -} - -type CustomNameEnum struct { - FieldA *TheTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.TheTestEnum" json:"Field1,omitempty"` - FieldB []TheTestEnum `protobuf:"varint,2,rep,name=Field2,enum=test.TheTestEnum" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomNameEnum) Reset() { *m = CustomNameEnum{} } -func (*CustomNameEnum) ProtoMessage() {} -func (*CustomNameEnum) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{52} } - -type NoExtensionsMap struct { - Field1 *int64 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` - XXX_extensions []byte `protobuf:"bytes,0,opt" json:"-"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NoExtensionsMap) Reset() { *m = NoExtensionsMap{} } -func (*NoExtensionsMap) ProtoMessage() {} -func (*NoExtensionsMap) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{53} } - -var extRange_NoExtensionsMap = []proto.ExtensionRange{ - {Start: 100, End: 199}, -} - -func (*NoExtensionsMap) ExtensionRangeArray() []proto.ExtensionRange { - return extRange_NoExtensionsMap -} -func (m *NoExtensionsMap) GetExtensions() *[]byte { - if m.XXX_extensions == nil { - m.XXX_extensions = make([]byte, 0) - } - return &m.XXX_extensions -} - -type Unrecognized struct { - Field1 *string `protobuf:"bytes,1,opt,name=Field1" json:"Field1,omitempty"` -} - -func (m *Unrecognized) Reset() { *m = Unrecognized{} } -func (*Unrecognized) ProtoMessage() {} -func (*Unrecognized) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{54} } - -type UnrecognizedWithInner struct { - Embedded []*UnrecognizedWithInner_Inner `protobuf:"bytes,1,rep,name=embedded" json:"embedded,omitempty"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *UnrecognizedWithInner) Reset() { *m = UnrecognizedWithInner{} } -func (*UnrecognizedWithInner) ProtoMessage() {} -func (*UnrecognizedWithInner) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{55} } - -type UnrecognizedWithInner_Inner struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` -} - -func (m *UnrecognizedWithInner_Inner) Reset() { *m = UnrecognizedWithInner_Inner{} } -func (*UnrecognizedWithInner_Inner) ProtoMessage() {} -func (*UnrecognizedWithInner_Inner) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{55, 0} -} - -type UnrecognizedWithEmbed struct { - UnrecognizedWithEmbed_Embedded `protobuf:"bytes,1,opt,name=embedded,embedded=embedded" json:"embedded"` - Field2 *string `protobuf:"bytes,2,opt,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *UnrecognizedWithEmbed) Reset() { *m = UnrecognizedWithEmbed{} } -func (*UnrecognizedWithEmbed) ProtoMessage() {} -func (*UnrecognizedWithEmbed) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{56} } - -type UnrecognizedWithEmbed_Embedded struct { - Field1 *uint32 `protobuf:"varint,1,opt,name=Field1" json:"Field1,omitempty"` -} - -func (m *UnrecognizedWithEmbed_Embedded) Reset() { *m = UnrecognizedWithEmbed_Embedded{} } -func (*UnrecognizedWithEmbed_Embedded) ProtoMessage() {} -func (*UnrecognizedWithEmbed_Embedded) Descriptor() ([]byte, []int) { - return fileDescriptorThetest, []int{56, 0} -} - -type Node struct { - Label *string `protobuf:"bytes,1,opt,name=Label" json:"Label,omitempty"` - Children []*Node `protobuf:"bytes,2,rep,name=Children" json:"Children,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Node) Reset() { *m = Node{} } -func (*Node) ProtoMessage() {} -func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{57} } - -type NonByteCustomType struct { - Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NonByteCustomType) Reset() { *m = NonByteCustomType{} } -func (*NonByteCustomType) ProtoMessage() {} -func (*NonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{58} } - -type NidOptNonByteCustomType struct { - Field1 T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidOptNonByteCustomType) Reset() { *m = NidOptNonByteCustomType{} } -func (*NidOptNonByteCustomType) ProtoMessage() {} -func (*NidOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{59} } - -type NinOptNonByteCustomType struct { - Field1 *T `protobuf:"bytes,1,opt,name=Field1,customtype=T" json:"Field1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinOptNonByteCustomType) Reset() { *m = NinOptNonByteCustomType{} } -func (*NinOptNonByteCustomType) ProtoMessage() {} -func (*NinOptNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{60} } - -type NidRepNonByteCustomType struct { - Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NidRepNonByteCustomType) Reset() { *m = NidRepNonByteCustomType{} } -func (*NidRepNonByteCustomType) ProtoMessage() {} -func (*NidRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{61} } - -type NinRepNonByteCustomType struct { - Field1 []T `protobuf:"bytes,1,rep,name=Field1,customtype=T" json:"Field1,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *NinRepNonByteCustomType) Reset() { *m = NinRepNonByteCustomType{} } -func (*NinRepNonByteCustomType) ProtoMessage() {} -func (*NinRepNonByteCustomType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{62} } - -type ProtoType struct { - Field2 *string `protobuf:"bytes,1,opt,name=Field2" json:"Field2,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *ProtoType) Reset() { *m = ProtoType{} } -func (*ProtoType) ProtoMessage() {} -func (*ProtoType) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{63} } - -var E_FieldA = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: (*float64)(nil), - Field: 100, - Name: "test.FieldA", - Tag: "fixed64,100,opt,name=FieldA", - Filename: "combos/unsafeunmarshaler/thetest.proto", -} - -var E_FieldB = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: (*NinOptNative)(nil), - Field: 101, - Name: "test.FieldB", - Tag: "bytes,101,opt,name=FieldB", - Filename: "combos/unsafeunmarshaler/thetest.proto", -} - -var E_FieldC = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: (*NinEmbeddedStruct)(nil), - Field: 102, - Name: "test.FieldC", - Tag: "bytes,102,opt,name=FieldC", - Filename: "combos/unsafeunmarshaler/thetest.proto", -} - -var E_FieldD = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: ([]int64)(nil), - Field: 104, - Name: "test.FieldD", - Tag: "varint,104,rep,name=FieldD", - Filename: "combos/unsafeunmarshaler/thetest.proto", -} - -var E_FieldE = &proto.ExtensionDesc{ - ExtendedType: (*MyExtendable)(nil), - ExtensionType: ([]*NinOptNative)(nil), - Field: 105, - Name: "test.FieldE", - Tag: "bytes,105,rep,name=FieldE", - Filename: "combos/unsafeunmarshaler/thetest.proto", -} - -var E_FieldA1 = &proto.ExtensionDesc{ - ExtendedType: (*NoExtensionsMap)(nil), - ExtensionType: (*float64)(nil), - Field: 100, - Name: "test.FieldA1", - Tag: "fixed64,100,opt,name=FieldA1", - Filename: "combos/unsafeunmarshaler/thetest.proto", -} - -var E_FieldB1 = &proto.ExtensionDesc{ - ExtendedType: (*NoExtensionsMap)(nil), - ExtensionType: (*NinOptNative)(nil), - Field: 101, - Name: "test.FieldB1", - Tag: "bytes,101,opt,name=FieldB1", - Filename: "combos/unsafeunmarshaler/thetest.proto", -} - -var E_FieldC1 = &proto.ExtensionDesc{ - ExtendedType: (*NoExtensionsMap)(nil), - ExtensionType: (*NinEmbeddedStruct)(nil), - Field: 102, - Name: "test.FieldC1", - Tag: "bytes,102,opt,name=FieldC1", - Filename: "combos/unsafeunmarshaler/thetest.proto", -} - -func init() { - proto.RegisterType((*NidOptNative)(nil), "test.NidOptNative") - proto.RegisterType((*NinOptNative)(nil), "test.NinOptNative") - proto.RegisterType((*NidRepNative)(nil), "test.NidRepNative") - proto.RegisterType((*NinRepNative)(nil), "test.NinRepNative") - proto.RegisterType((*NidRepPackedNative)(nil), "test.NidRepPackedNative") - proto.RegisterType((*NinRepPackedNative)(nil), "test.NinRepPackedNative") - proto.RegisterType((*NidOptStruct)(nil), "test.NidOptStruct") - proto.RegisterType((*NinOptStruct)(nil), "test.NinOptStruct") - proto.RegisterType((*NidRepStruct)(nil), "test.NidRepStruct") - proto.RegisterType((*NinRepStruct)(nil), "test.NinRepStruct") - proto.RegisterType((*NidEmbeddedStruct)(nil), "test.NidEmbeddedStruct") - proto.RegisterType((*NinEmbeddedStruct)(nil), "test.NinEmbeddedStruct") - proto.RegisterType((*NidNestedStruct)(nil), "test.NidNestedStruct") - proto.RegisterType((*NinNestedStruct)(nil), "test.NinNestedStruct") - proto.RegisterType((*NidOptCustom)(nil), "test.NidOptCustom") - proto.RegisterType((*CustomDash)(nil), "test.CustomDash") - proto.RegisterType((*NinOptCustom)(nil), "test.NinOptCustom") - proto.RegisterType((*NidRepCustom)(nil), "test.NidRepCustom") - proto.RegisterType((*NinRepCustom)(nil), "test.NinRepCustom") - proto.RegisterType((*NinOptNativeUnion)(nil), "test.NinOptNativeUnion") - proto.RegisterType((*NinOptStructUnion)(nil), "test.NinOptStructUnion") - proto.RegisterType((*NinEmbeddedStructUnion)(nil), "test.NinEmbeddedStructUnion") - proto.RegisterType((*NinNestedStructUnion)(nil), "test.NinNestedStructUnion") - proto.RegisterType((*Tree)(nil), "test.Tree") - proto.RegisterType((*OrBranch)(nil), "test.OrBranch") - proto.RegisterType((*AndBranch)(nil), "test.AndBranch") - proto.RegisterType((*Leaf)(nil), "test.Leaf") - proto.RegisterType((*DeepTree)(nil), "test.DeepTree") - proto.RegisterType((*ADeepBranch)(nil), "test.ADeepBranch") - proto.RegisterType((*AndDeepBranch)(nil), "test.AndDeepBranch") - proto.RegisterType((*DeepLeaf)(nil), "test.DeepLeaf") - proto.RegisterType((*Nil)(nil), "test.Nil") - proto.RegisterType((*NidOptEnum)(nil), "test.NidOptEnum") - proto.RegisterType((*NinOptEnum)(nil), "test.NinOptEnum") - proto.RegisterType((*NidRepEnum)(nil), "test.NidRepEnum") - proto.RegisterType((*NinRepEnum)(nil), "test.NinRepEnum") - proto.RegisterType((*NinOptEnumDefault)(nil), "test.NinOptEnumDefault") - proto.RegisterType((*AnotherNinOptEnum)(nil), "test.AnotherNinOptEnum") - proto.RegisterType((*AnotherNinOptEnumDefault)(nil), "test.AnotherNinOptEnumDefault") - proto.RegisterType((*Timer)(nil), "test.Timer") - proto.RegisterType((*MyExtendable)(nil), "test.MyExtendable") - proto.RegisterType((*OtherExtenable)(nil), "test.OtherExtenable") - proto.RegisterType((*NestedDefinition)(nil), "test.NestedDefinition") - proto.RegisterType((*NestedDefinition_NestedMessage)(nil), "test.NestedDefinition.NestedMessage") - proto.RegisterType((*NestedDefinition_NestedMessage_NestedNestedMsg)(nil), "test.NestedDefinition.NestedMessage.NestedNestedMsg") - proto.RegisterType((*NestedScope)(nil), "test.NestedScope") - proto.RegisterType((*NinOptNativeDefault)(nil), "test.NinOptNativeDefault") - proto.RegisterType((*CustomContainer)(nil), "test.CustomContainer") - proto.RegisterType((*CustomNameNidOptNative)(nil), "test.CustomNameNidOptNative") - proto.RegisterType((*CustomNameNinOptNative)(nil), "test.CustomNameNinOptNative") - proto.RegisterType((*CustomNameNinRepNative)(nil), "test.CustomNameNinRepNative") - proto.RegisterType((*CustomNameNinStruct)(nil), "test.CustomNameNinStruct") - proto.RegisterType((*CustomNameCustomType)(nil), "test.CustomNameCustomType") - proto.RegisterType((*CustomNameNinEmbeddedStructUnion)(nil), "test.CustomNameNinEmbeddedStructUnion") - proto.RegisterType((*CustomNameEnum)(nil), "test.CustomNameEnum") - proto.RegisterType((*NoExtensionsMap)(nil), "test.NoExtensionsMap") - proto.RegisterType((*Unrecognized)(nil), "test.Unrecognized") - proto.RegisterType((*UnrecognizedWithInner)(nil), "test.UnrecognizedWithInner") - proto.RegisterType((*UnrecognizedWithInner_Inner)(nil), "test.UnrecognizedWithInner.Inner") - proto.RegisterType((*UnrecognizedWithEmbed)(nil), "test.UnrecognizedWithEmbed") - proto.RegisterType((*UnrecognizedWithEmbed_Embedded)(nil), "test.UnrecognizedWithEmbed.Embedded") - proto.RegisterType((*Node)(nil), "test.Node") - proto.RegisterType((*NonByteCustomType)(nil), "test.NonByteCustomType") - proto.RegisterType((*NidOptNonByteCustomType)(nil), "test.NidOptNonByteCustomType") - proto.RegisterType((*NinOptNonByteCustomType)(nil), "test.NinOptNonByteCustomType") - proto.RegisterType((*NidRepNonByteCustomType)(nil), "test.NidRepNonByteCustomType") - proto.RegisterType((*NinRepNonByteCustomType)(nil), "test.NinRepNonByteCustomType") - proto.RegisterType((*ProtoType)(nil), "test.ProtoType") - proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value) - proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_value) - proto.RegisterEnum("test.YetAnotherTestEnum", YetAnotherTestEnum_name, YetAnotherTestEnum_value) - proto.RegisterEnum("test.YetYetAnotherTestEnum", YetYetAnotherTestEnum_name, YetYetAnotherTestEnum_value) - proto.RegisterEnum("test.NestedDefinition_NestedEnum", NestedDefinition_NestedEnum_name, NestedDefinition_NestedEnum_value) - proto.RegisterExtension(E_FieldA) - proto.RegisterExtension(E_FieldB) - proto.RegisterExtension(E_FieldC) - proto.RegisterExtension(E_FieldD) - proto.RegisterExtension(E_FieldE) - proto.RegisterExtension(E_FieldA1) - proto.RegisterExtension(E_FieldB1) - proto.RegisterExtension(E_FieldC1) -} -func (this *NidOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptNative) - if !ok { - that2, ok := that.(NidOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != that1.Field1 { - if this.Field1 < that1.Field1 { - return -1 - } - return 1 - } - if this.Field2 != that1.Field2 { - if this.Field2 < that1.Field2 { - return -1 - } - return 1 - } - if this.Field3 != that1.Field3 { - if this.Field3 < that1.Field3 { - return -1 - } - return 1 - } - if this.Field4 != that1.Field4 { - if this.Field4 < that1.Field4 { - return -1 - } - return 1 - } - if this.Field5 != that1.Field5 { - if this.Field5 < that1.Field5 { - return -1 - } - return 1 - } - if this.Field6 != that1.Field6 { - if this.Field6 < that1.Field6 { - return -1 - } - return 1 - } - if this.Field7 != that1.Field7 { - if this.Field7 < that1.Field7 { - return -1 - } - return 1 - } - if this.Field8 != that1.Field8 { - if this.Field8 < that1.Field8 { - return -1 - } - return 1 - } - if this.Field9 != that1.Field9 { - if this.Field9 < that1.Field9 { - return -1 - } - return 1 - } - if this.Field10 != that1.Field10 { - if this.Field10 < that1.Field10 { - return -1 - } - return 1 - } - if this.Field11 != that1.Field11 { - if this.Field11 < that1.Field11 { - return -1 - } - return 1 - } - if this.Field12 != that1.Field12 { - if this.Field12 < that1.Field12 { - return -1 - } - return 1 - } - if this.Field13 != that1.Field13 { - if !this.Field13 { - return -1 - } - return 1 - } - if this.Field14 != that1.Field14 { - if this.Field14 < that1.Field14 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNative) - if !ok { - that2, ok := that.(NinOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - if *this.Field4 < *that1.Field4 { - return -1 - } - return 1 - } - } else if this.Field4 != nil { - return 1 - } else if that1.Field4 != nil { - return -1 - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - if *this.Field5 < *that1.Field5 { - return -1 - } - return 1 - } - } else if this.Field5 != nil { - return 1 - } else if that1.Field5 != nil { - return -1 - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - if *this.Field8 < *that1.Field8 { - return -1 - } - return 1 - } - } else if this.Field8 != nil { - return 1 - } else if that1.Field8 != nil { - return -1 - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - if *this.Field9 < *that1.Field9 { - return -1 - } - return 1 - } - } else if this.Field9 != nil { - return 1 - } else if that1.Field9 != nil { - return -1 - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - if *this.Field10 < *that1.Field10 { - return -1 - } - return 1 - } - } else if this.Field10 != nil { - return 1 - } else if that1.Field10 != nil { - return -1 - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - if *this.Field11 < *that1.Field11 { - return -1 - } - return 1 - } - } else if this.Field11 != nil { - return 1 - } else if that1.Field11 != nil { - return -1 - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - if *this.Field12 < *that1.Field12 { - return -1 - } - return 1 - } - } else if this.Field12 != nil { - return 1 - } else if that1.Field12 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepNative) - if !ok { - that2, ok := that.(NidRepNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepNative) - if !ok { - that2, ok := that.(NinRepNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepPackedNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepPackedNative) - if !ok { - that2, ok := that.(NidRepPackedNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepPackedNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepPackedNative) - if !ok { - that2, ok := that.(NinRepPackedNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - if this.Field4[i] < that1.Field4[i] { - return -1 - } - return 1 - } - } - if len(this.Field5) != len(that1.Field5) { - if len(this.Field5) < len(that1.Field5) { - return -1 - } - return 1 - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - if this.Field5[i] < that1.Field5[i] { - return -1 - } - return 1 - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - if this.Field8[i] < that1.Field8[i] { - return -1 - } - return 1 - } - } - if len(this.Field9) != len(that1.Field9) { - if len(this.Field9) < len(that1.Field9) { - return -1 - } - return 1 - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - if this.Field9[i] < that1.Field9[i] { - return -1 - } - return 1 - } - } - if len(this.Field10) != len(that1.Field10) { - if len(this.Field10) < len(that1.Field10) { - return -1 - } - return 1 - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - if this.Field10[i] < that1.Field10[i] { - return -1 - } - return 1 - } - } - if len(this.Field11) != len(that1.Field11) { - if len(this.Field11) < len(that1.Field11) { - return -1 - } - return 1 - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - if this.Field11[i] < that1.Field11[i] { - return -1 - } - return 1 - } - } - if len(this.Field12) != len(that1.Field12) { - if len(this.Field12) < len(that1.Field12) { - return -1 - } - return 1 - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - if this.Field12[i] < that1.Field12[i] { - return -1 - } - return 1 - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptStruct) - if !ok { - that2, ok := that.(NidOptStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != that1.Field1 { - if this.Field1 < that1.Field1 { - return -1 - } - return 1 - } - if this.Field2 != that1.Field2 { - if this.Field2 < that1.Field2 { - return -1 - } - return 1 - } - if c := this.Field3.Compare(&that1.Field3); c != 0 { - return c - } - if c := this.Field4.Compare(&that1.Field4); c != 0 { - return c - } - if this.Field6 != that1.Field6 { - if this.Field6 < that1.Field6 { - return -1 - } - return 1 - } - if this.Field7 != that1.Field7 { - if this.Field7 < that1.Field7 { - return -1 - } - return 1 - } - if c := this.Field8.Compare(&that1.Field8); c != 0 { - return c - } - if this.Field13 != that1.Field13 { - if !this.Field13 { - return -1 - } - return 1 - } - if this.Field14 != that1.Field14 { - if this.Field14 < that1.Field14 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptStruct) - if !ok { - that2, ok := that.(NinOptStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := this.Field3.Compare(that1.Field3); c != 0 { - return c - } - if c := this.Field4.Compare(that1.Field4); c != 0 { - return c - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if c := this.Field8.Compare(that1.Field8); c != 0 { - return c - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepStruct) - if !ok { - that2, ok := that.(NidRepStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if c := this.Field3[i].Compare(&that1.Field3[i]); c != 0 { - return c - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if c := this.Field4[i].Compare(&that1.Field4[i]); c != 0 { - return c - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if c := this.Field8[i].Compare(&that1.Field8[i]); c != 0 { - return c - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepStruct) - if !ok { - that2, ok := that.(NinRepStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if c := this.Field3[i].Compare(that1.Field3[i]); c != 0 { - return c - } - } - if len(this.Field4) != len(that1.Field4) { - if len(this.Field4) < len(that1.Field4) { - return -1 - } - return 1 - } - for i := range this.Field4 { - if c := this.Field4[i].Compare(that1.Field4[i]); c != 0 { - return c - } - } - if len(this.Field6) != len(that1.Field6) { - if len(this.Field6) < len(that1.Field6) { - return -1 - } - return 1 - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - if this.Field6[i] < that1.Field6[i] { - return -1 - } - return 1 - } - } - if len(this.Field7) != len(that1.Field7) { - if len(this.Field7) < len(that1.Field7) { - return -1 - } - return 1 - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - if this.Field7[i] < that1.Field7[i] { - return -1 - } - return 1 - } - } - if len(this.Field8) != len(that1.Field8) { - if len(this.Field8) < len(that1.Field8) { - return -1 - } - return 1 - } - for i := range this.Field8 { - if c := this.Field8[i].Compare(that1.Field8[i]); c != 0 { - return c - } - } - if len(this.Field13) != len(that1.Field13) { - if len(this.Field13) < len(that1.Field13) { - return -1 - } - return 1 - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - if !this.Field13[i] { - return -1 - } - return 1 - } - } - if len(this.Field14) != len(that1.Field14) { - if len(this.Field14) < len(that1.Field14) { - return -1 - } - return 1 - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - if this.Field14[i] < that1.Field14[i] { - return -1 - } - return 1 - } - } - if len(this.Field15) != len(that1.Field15) { - if len(this.Field15) < len(that1.Field15) { - return -1 - } - return 1 - } - for i := range this.Field15 { - if c := bytes.Compare(this.Field15[i], that1.Field15[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidEmbeddedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidEmbeddedStruct) - if !ok { - that2, ok := that.(NidEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.Field200.Compare(&that1.Field200); c != 0 { - return c - } - if this.Field210 != that1.Field210 { - if !this.Field210 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinEmbeddedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinEmbeddedStruct) - if !ok { - that2, ok := that.(NinEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.Field200.Compare(that1.Field200); c != 0 { - return c - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - if !*this.Field210 { - return -1 - } - return 1 - } - } else if this.Field210 != nil { - return 1 - } else if that1.Field210 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidNestedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidNestedStruct) - if !ok { - that2, ok := that.(NidNestedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(&that1.Field1); c != 0 { - return c - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if c := this.Field2[i].Compare(&that1.Field2[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinNestedStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinNestedStruct) - if !ok { - that2, ok := that.(NinNestedStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(that1.Field1); c != 0 { - return c - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if c := this.Field2[i].Compare(that1.Field2[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptCustom) - if !ok { - that2, ok := that.(NidOptCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Id.Compare(that1.Id); c != 0 { - return c - } - if c := this.Value.Compare(that1.Value); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomDash) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomDash) - if !ok { - that2, ok := that.(CustomDash) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Value == nil { - if this.Value != nil { - return 1 - } - } else if this.Value == nil { - return -1 - } else if c := this.Value.Compare(*that1.Value); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptCustom) - if !ok { - that2, ok := that.(NinOptCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Id == nil { - if this.Id != nil { - return 1 - } - } else if this.Id == nil { - return -1 - } else if c := this.Id.Compare(*that1.Id); c != 0 { - return c - } - if that1.Value == nil { - if this.Value != nil { - return 1 - } - } else if this.Value == nil { - return -1 - } else if c := this.Value.Compare(*that1.Value); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepCustom) - if !ok { - that2, ok := that.(NidRepCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Id) != len(that1.Id) { - if len(this.Id) < len(that1.Id) { - return -1 - } - return 1 - } - for i := range this.Id { - if c := this.Id[i].Compare(that1.Id[i]); c != 0 { - return c - } - } - if len(this.Value) != len(that1.Value) { - if len(this.Value) < len(that1.Value) { - return -1 - } - return 1 - } - for i := range this.Value { - if c := this.Value[i].Compare(that1.Value[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepCustom) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepCustom) - if !ok { - that2, ok := that.(NinRepCustom) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Id) != len(that1.Id) { - if len(this.Id) < len(that1.Id) { - return -1 - } - return 1 - } - for i := range this.Id { - if c := this.Id[i].Compare(that1.Id[i]); c != 0 { - return c - } - } - if len(this.Value) != len(that1.Value) { - if len(this.Value) < len(that1.Value) { - return -1 - } - return 1 - } - for i := range this.Value { - if c := this.Value[i].Compare(that1.Value[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNativeUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNativeUnion) - if !ok { - that2, ok := that.(NinOptNativeUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - if *this.Field4 < *that1.Field4 { - return -1 - } - return 1 - } - } else if this.Field4 != nil { - return 1 - } else if that1.Field4 != nil { - return -1 - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - if *this.Field5 < *that1.Field5 { - return -1 - } - return 1 - } - } else if this.Field5 != nil { - return 1 - } else if that1.Field5 != nil { - return -1 - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptStructUnion) - if !ok { - that2, ok := that.(NinOptStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := this.Field3.Compare(that1.Field3); c != 0 { - return c - } - if c := this.Field4.Compare(that1.Field4); c != 0 { - return c - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinEmbeddedStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinEmbeddedStructUnion) - if !ok { - that2, ok := that.(NinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.Field200.Compare(that1.Field200); c != 0 { - return c - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - if !*this.Field210 { - return -1 - } - return 1 - } - } else if this.Field210 != nil { - return 1 - } else if that1.Field210 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinNestedStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinNestedStructUnion) - if !ok { - that2, ok := that.(NinNestedStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(that1.Field1); c != 0 { - return c - } - if c := this.Field2.Compare(that1.Field2); c != 0 { - return c - } - if c := this.Field3.Compare(that1.Field3); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Tree) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Tree) - if !ok { - that2, ok := that.(Tree) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Or.Compare(that1.Or); c != 0 { - return c - } - if c := this.And.Compare(that1.And); c != 0 { - return c - } - if c := this.Leaf.Compare(that1.Leaf); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *OrBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*OrBranch) - if !ok { - that2, ok := that.(OrBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Left.Compare(&that1.Left); c != 0 { - return c - } - if c := this.Right.Compare(&that1.Right); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AndBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AndBranch) - if !ok { - that2, ok := that.(AndBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Left.Compare(&that1.Left); c != 0 { - return c - } - if c := this.Right.Compare(&that1.Right); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Leaf) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Leaf) - if !ok { - that2, ok := that.(Leaf) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Value != that1.Value { - if this.Value < that1.Value { - return -1 - } - return 1 - } - if this.StrValue != that1.StrValue { - if this.StrValue < that1.StrValue { - return -1 - } - return 1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *DeepTree) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*DeepTree) - if !ok { - that2, ok := that.(DeepTree) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Down.Compare(that1.Down); c != 0 { - return c - } - if c := this.And.Compare(that1.And); c != 0 { - return c - } - if c := this.Leaf.Compare(that1.Leaf); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *ADeepBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*ADeepBranch) - if !ok { - that2, ok := that.(ADeepBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Down.Compare(&that1.Down); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AndDeepBranch) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AndDeepBranch) - if !ok { - that2, ok := that.(AndDeepBranch) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Left.Compare(&that1.Left); c != 0 { - return c - } - if c := this.Right.Compare(&that1.Right); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *DeepLeaf) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*DeepLeaf) - if !ok { - that2, ok := that.(DeepLeaf) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Tree.Compare(&that1.Tree); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Nil) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Nil) - if !ok { - that2, ok := that.(Nil) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptEnum) - if !ok { - that2, ok := that.(NidOptEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != that1.Field1 { - if this.Field1 < that1.Field1 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptEnum) - if !ok { - that2, ok := that.(NinOptEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepEnum) - if !ok { - that2, ok := that.(NidRepEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepEnum) - if !ok { - that2, ok := that.(NinRepEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - if this.Field1[i] < that1.Field1[i] { - return -1 - } - return 1 - } - } - if len(this.Field2) != len(that1.Field2) { - if len(this.Field2) < len(that1.Field2) { - return -1 - } - return 1 - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - if this.Field2[i] < that1.Field2[i] { - return -1 - } - return 1 - } - } - if len(this.Field3) != len(that1.Field3) { - if len(this.Field3) < len(that1.Field3) { - return -1 - } - return 1 - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - if this.Field3[i] < that1.Field3[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptEnumDefault) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptEnumDefault) - if !ok { - that2, ok := that.(NinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AnotherNinOptEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AnotherNinOptEnum) - if !ok { - that2, ok := that.(AnotherNinOptEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *AnotherNinOptEnumDefault) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*AnotherNinOptEnumDefault) - if !ok { - that2, ok := that.(AnotherNinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Timer) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Timer) - if !ok { - that2, ok := that.(Timer) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Time1 != that1.Time1 { - if this.Time1 < that1.Time1 { - return -1 - } - return 1 - } - if this.Time2 != that1.Time2 { - if this.Time2 < that1.Time2 { - return -1 - } - return 1 - } - if c := bytes.Compare(this.Data, that1.Data); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *MyExtendable) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*MyExtendable) - if !ok { - that2, ok := that.(MyExtendable) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - extkeys := make([]int32, 0, len(thismap)+len(thatmap)) - for k := range thismap { - extkeys = append(extkeys, k) - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - extkeys = append(extkeys, k) - } - } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) - for _, k := range extkeys { - if v, ok := thismap[k]; ok { - if v2, ok := thatmap[k]; ok { - if c := v.Compare(&v2); c != 0 { - return c - } - } else { - return 1 - } - } else { - return -1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *OtherExtenable) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*OtherExtenable) - if !ok { - that2, ok := that.(OtherExtenable) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if *this.Field13 < *that1.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if c := this.M.Compare(that1.M); c != 0 { - return c - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - extkeys := make([]int32, 0, len(thismap)+len(thatmap)) - for k := range thismap { - extkeys = append(extkeys, k) - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - extkeys = append(extkeys, k) - } - } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) - for _, k := range extkeys { - if v, ok := thismap[k]; ok { - if v2, ok := thatmap[k]; ok { - if c := v.Compare(&v2); c != 0 { - return c - } - } else { - return 1 - } - } else { - return -1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedDefinition) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedDefinition) - if !ok { - that2, ok := that.(NestedDefinition) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.EnumField != nil && that1.EnumField != nil { - if *this.EnumField != *that1.EnumField { - if *this.EnumField < *that1.EnumField { - return -1 - } - return 1 - } - } else if this.EnumField != nil { - return 1 - } else if that1.EnumField != nil { - return -1 - } - if c := this.NNM.Compare(that1.NNM); c != 0 { - return c - } - if c := this.NM.Compare(that1.NM); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedDefinition_NestedMessage) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedDefinition_NestedMessage) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.NestedField1 != nil && that1.NestedField1 != nil { - if *this.NestedField1 != *that1.NestedField1 { - if *this.NestedField1 < *that1.NestedField1 { - return -1 - } - return 1 - } - } else if this.NestedField1 != nil { - return 1 - } else if that1.NestedField1 != nil { - return -1 - } - if c := this.NNM.Compare(that1.NNM); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil { - if *this.NestedNestedField1 != *that1.NestedNestedField1 { - if *this.NestedNestedField1 < *that1.NestedNestedField1 { - return -1 - } - return 1 - } - } else if this.NestedNestedField1 != nil { - return 1 - } else if that1.NestedNestedField1 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NestedScope) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NestedScope) - if !ok { - that2, ok := that.(NestedScope) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.A.Compare(that1.A); c != 0 { - return c - } - if this.B != nil && that1.B != nil { - if *this.B != *that1.B { - if *this.B < *that1.B { - return -1 - } - return 1 - } - } else if this.B != nil { - return 1 - } else if that1.B != nil { - return -1 - } - if c := this.C.Compare(that1.C); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNativeDefault) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNativeDefault) - if !ok { - that2, ok := that.(NinOptNativeDefault) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - if *this.Field3 < *that1.Field3 { - return -1 - } - return 1 - } - } else if this.Field3 != nil { - return 1 - } else if that1.Field3 != nil { - return -1 - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - if *this.Field4 < *that1.Field4 { - return -1 - } - return 1 - } - } else if this.Field4 != nil { - return 1 - } else if that1.Field4 != nil { - return -1 - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - if *this.Field5 < *that1.Field5 { - return -1 - } - return 1 - } - } else if this.Field5 != nil { - return 1 - } else if that1.Field5 != nil { - return -1 - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - if *this.Field6 < *that1.Field6 { - return -1 - } - return 1 - } - } else if this.Field6 != nil { - return 1 - } else if that1.Field6 != nil { - return -1 - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - if *this.Field7 < *that1.Field7 { - return -1 - } - return 1 - } - } else if this.Field7 != nil { - return 1 - } else if that1.Field7 != nil { - return -1 - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - if *this.Field8 < *that1.Field8 { - return -1 - } - return 1 - } - } else if this.Field8 != nil { - return 1 - } else if that1.Field8 != nil { - return -1 - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - if *this.Field9 < *that1.Field9 { - return -1 - } - return 1 - } - } else if this.Field9 != nil { - return 1 - } else if that1.Field9 != nil { - return -1 - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - if *this.Field10 < *that1.Field10 { - return -1 - } - return 1 - } - } else if this.Field10 != nil { - return 1 - } else if that1.Field10 != nil { - return -1 - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - if *this.Field11 < *that1.Field11 { - return -1 - } - return 1 - } - } else if this.Field11 != nil { - return 1 - } else if that1.Field11 != nil { - return -1 - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - if *this.Field12 < *that1.Field12 { - return -1 - } - return 1 - } - } else if this.Field12 != nil { - return 1 - } else if that1.Field12 != nil { - return -1 - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - if !*this.Field13 { - return -1 - } - return 1 - } - } else if this.Field13 != nil { - return 1 - } else if that1.Field13 != nil { - return -1 - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - if *this.Field14 < *that1.Field14 { - return -1 - } - return 1 - } - } else if this.Field14 != nil { - return 1 - } else if that1.Field14 != nil { - return -1 - } - if c := bytes.Compare(this.Field15, that1.Field15); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomContainer) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomContainer) - if !ok { - that2, ok := that.(CustomContainer) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.CustomStruct.Compare(&that1.CustomStruct); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNidOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNidOptNative) - if !ok { - that2, ok := that.(CustomNameNidOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != that1.FieldA { - if this.FieldA < that1.FieldA { - return -1 - } - return 1 - } - if this.FieldB != that1.FieldB { - if this.FieldB < that1.FieldB { - return -1 - } - return 1 - } - if this.FieldC != that1.FieldC { - if this.FieldC < that1.FieldC { - return -1 - } - return 1 - } - if this.FieldD != that1.FieldD { - if this.FieldD < that1.FieldD { - return -1 - } - return 1 - } - if this.FieldE != that1.FieldE { - if this.FieldE < that1.FieldE { - return -1 - } - return 1 - } - if this.FieldF != that1.FieldF { - if this.FieldF < that1.FieldF { - return -1 - } - return 1 - } - if this.FieldG != that1.FieldG { - if this.FieldG < that1.FieldG { - return -1 - } - return 1 - } - if this.FieldH != that1.FieldH { - if this.FieldH < that1.FieldH { - return -1 - } - return 1 - } - if this.FieldI != that1.FieldI { - if this.FieldI < that1.FieldI { - return -1 - } - return 1 - } - if this.FieldJ != that1.FieldJ { - if this.FieldJ < that1.FieldJ { - return -1 - } - return 1 - } - if this.FieldK != that1.FieldK { - if this.FieldK < that1.FieldK { - return -1 - } - return 1 - } - if this.FieldL != that1.FieldL { - if this.FieldL < that1.FieldL { - return -1 - } - return 1 - } - if this.FieldM != that1.FieldM { - if !this.FieldM { - return -1 - } - return 1 - } - if this.FieldN != that1.FieldN { - if this.FieldN < that1.FieldN { - return -1 - } - return 1 - } - if c := bytes.Compare(this.FieldO, that1.FieldO); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinOptNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinOptNative) - if !ok { - that2, ok := that.(CustomNameNinOptNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - if *this.FieldA < *that1.FieldA { - return -1 - } - return 1 - } - } else if this.FieldA != nil { - return 1 - } else if that1.FieldA != nil { - return -1 - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - if *this.FieldB < *that1.FieldB { - return -1 - } - return 1 - } - } else if this.FieldB != nil { - return 1 - } else if that1.FieldB != nil { - return -1 - } - if this.FieldC != nil && that1.FieldC != nil { - if *this.FieldC != *that1.FieldC { - if *this.FieldC < *that1.FieldC { - return -1 - } - return 1 - } - } else if this.FieldC != nil { - return 1 - } else if that1.FieldC != nil { - return -1 - } - if this.FieldD != nil && that1.FieldD != nil { - if *this.FieldD != *that1.FieldD { - if *this.FieldD < *that1.FieldD { - return -1 - } - return 1 - } - } else if this.FieldD != nil { - return 1 - } else if that1.FieldD != nil { - return -1 - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - if *this.FieldE < *that1.FieldE { - return -1 - } - return 1 - } - } else if this.FieldE != nil { - return 1 - } else if that1.FieldE != nil { - return -1 - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - if *this.FieldF < *that1.FieldF { - return -1 - } - return 1 - } - } else if this.FieldF != nil { - return 1 - } else if that1.FieldF != nil { - return -1 - } - if this.FieldG != nil && that1.FieldG != nil { - if *this.FieldG != *that1.FieldG { - if *this.FieldG < *that1.FieldG { - return -1 - } - return 1 - } - } else if this.FieldG != nil { - return 1 - } else if that1.FieldG != nil { - return -1 - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - if *this.FieldH < *that1.FieldH { - return -1 - } - return 1 - } - } else if this.FieldH != nil { - return 1 - } else if that1.FieldH != nil { - return -1 - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - if *this.FieldI < *that1.FieldI { - return -1 - } - return 1 - } - } else if this.FieldI != nil { - return 1 - } else if that1.FieldI != nil { - return -1 - } - if this.FieldJ != nil && that1.FieldJ != nil { - if *this.FieldJ != *that1.FieldJ { - if *this.FieldJ < *that1.FieldJ { - return -1 - } - return 1 - } - } else if this.FieldJ != nil { - return 1 - } else if that1.FieldJ != nil { - return -1 - } - if this.FieldK != nil && that1.FieldK != nil { - if *this.FieldK != *that1.FieldK { - if *this.FieldK < *that1.FieldK { - return -1 - } - return 1 - } - } else if this.FieldK != nil { - return 1 - } else if that1.FieldK != nil { - return -1 - } - if this.FielL != nil && that1.FielL != nil { - if *this.FielL != *that1.FielL { - if *this.FielL < *that1.FielL { - return -1 - } - return 1 - } - } else if this.FielL != nil { - return 1 - } else if that1.FielL != nil { - return -1 - } - if this.FieldM != nil && that1.FieldM != nil { - if *this.FieldM != *that1.FieldM { - if !*this.FieldM { - return -1 - } - return 1 - } - } else if this.FieldM != nil { - return 1 - } else if that1.FieldM != nil { - return -1 - } - if this.FieldN != nil && that1.FieldN != nil { - if *this.FieldN != *that1.FieldN { - if *this.FieldN < *that1.FieldN { - return -1 - } - return 1 - } - } else if this.FieldN != nil { - return 1 - } else if that1.FieldN != nil { - return -1 - } - if c := bytes.Compare(this.FieldO, that1.FieldO); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinRepNative) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinRepNative) - if !ok { - that2, ok := that.(CustomNameNinRepNative) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.FieldA) != len(that1.FieldA) { - if len(this.FieldA) < len(that1.FieldA) { - return -1 - } - return 1 - } - for i := range this.FieldA { - if this.FieldA[i] != that1.FieldA[i] { - if this.FieldA[i] < that1.FieldA[i] { - return -1 - } - return 1 - } - } - if len(this.FieldB) != len(that1.FieldB) { - if len(this.FieldB) < len(that1.FieldB) { - return -1 - } - return 1 - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - if this.FieldB[i] < that1.FieldB[i] { - return -1 - } - return 1 - } - } - if len(this.FieldC) != len(that1.FieldC) { - if len(this.FieldC) < len(that1.FieldC) { - return -1 - } - return 1 - } - for i := range this.FieldC { - if this.FieldC[i] != that1.FieldC[i] { - if this.FieldC[i] < that1.FieldC[i] { - return -1 - } - return 1 - } - } - if len(this.FieldD) != len(that1.FieldD) { - if len(this.FieldD) < len(that1.FieldD) { - return -1 - } - return 1 - } - for i := range this.FieldD { - if this.FieldD[i] != that1.FieldD[i] { - if this.FieldD[i] < that1.FieldD[i] { - return -1 - } - return 1 - } - } - if len(this.FieldE) != len(that1.FieldE) { - if len(this.FieldE) < len(that1.FieldE) { - return -1 - } - return 1 - } - for i := range this.FieldE { - if this.FieldE[i] != that1.FieldE[i] { - if this.FieldE[i] < that1.FieldE[i] { - return -1 - } - return 1 - } - } - if len(this.FieldF) != len(that1.FieldF) { - if len(this.FieldF) < len(that1.FieldF) { - return -1 - } - return 1 - } - for i := range this.FieldF { - if this.FieldF[i] != that1.FieldF[i] { - if this.FieldF[i] < that1.FieldF[i] { - return -1 - } - return 1 - } - } - if len(this.FieldG) != len(that1.FieldG) { - if len(this.FieldG) < len(that1.FieldG) { - return -1 - } - return 1 - } - for i := range this.FieldG { - if this.FieldG[i] != that1.FieldG[i] { - if this.FieldG[i] < that1.FieldG[i] { - return -1 - } - return 1 - } - } - if len(this.FieldH) != len(that1.FieldH) { - if len(this.FieldH) < len(that1.FieldH) { - return -1 - } - return 1 - } - for i := range this.FieldH { - if this.FieldH[i] != that1.FieldH[i] { - if this.FieldH[i] < that1.FieldH[i] { - return -1 - } - return 1 - } - } - if len(this.FieldI) != len(that1.FieldI) { - if len(this.FieldI) < len(that1.FieldI) { - return -1 - } - return 1 - } - for i := range this.FieldI { - if this.FieldI[i] != that1.FieldI[i] { - if this.FieldI[i] < that1.FieldI[i] { - return -1 - } - return 1 - } - } - if len(this.FieldJ) != len(that1.FieldJ) { - if len(this.FieldJ) < len(that1.FieldJ) { - return -1 - } - return 1 - } - for i := range this.FieldJ { - if this.FieldJ[i] != that1.FieldJ[i] { - if this.FieldJ[i] < that1.FieldJ[i] { - return -1 - } - return 1 - } - } - if len(this.FieldK) != len(that1.FieldK) { - if len(this.FieldK) < len(that1.FieldK) { - return -1 - } - return 1 - } - for i := range this.FieldK { - if this.FieldK[i] != that1.FieldK[i] { - if this.FieldK[i] < that1.FieldK[i] { - return -1 - } - return 1 - } - } - if len(this.FieldL) != len(that1.FieldL) { - if len(this.FieldL) < len(that1.FieldL) { - return -1 - } - return 1 - } - for i := range this.FieldL { - if this.FieldL[i] != that1.FieldL[i] { - if this.FieldL[i] < that1.FieldL[i] { - return -1 - } - return 1 - } - } - if len(this.FieldM) != len(that1.FieldM) { - if len(this.FieldM) < len(that1.FieldM) { - return -1 - } - return 1 - } - for i := range this.FieldM { - if this.FieldM[i] != that1.FieldM[i] { - if !this.FieldM[i] { - return -1 - } - return 1 - } - } - if len(this.FieldN) != len(that1.FieldN) { - if len(this.FieldN) < len(that1.FieldN) { - return -1 - } - return 1 - } - for i := range this.FieldN { - if this.FieldN[i] != that1.FieldN[i] { - if this.FieldN[i] < that1.FieldN[i] { - return -1 - } - return 1 - } - } - if len(this.FieldO) != len(that1.FieldO) { - if len(this.FieldO) < len(that1.FieldO) { - return -1 - } - return 1 - } - for i := range this.FieldO { - if c := bytes.Compare(this.FieldO[i], that1.FieldO[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinStruct) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinStruct) - if !ok { - that2, ok := that.(CustomNameNinStruct) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - if *this.FieldA < *that1.FieldA { - return -1 - } - return 1 - } - } else if this.FieldA != nil { - return 1 - } else if that1.FieldA != nil { - return -1 - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - if *this.FieldB < *that1.FieldB { - return -1 - } - return 1 - } - } else if this.FieldB != nil { - return 1 - } else if that1.FieldB != nil { - return -1 - } - if c := this.FieldC.Compare(that1.FieldC); c != 0 { - return c - } - if len(this.FieldD) != len(that1.FieldD) { - if len(this.FieldD) < len(that1.FieldD) { - return -1 - } - return 1 - } - for i := range this.FieldD { - if c := this.FieldD[i].Compare(that1.FieldD[i]); c != 0 { - return c - } - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - if *this.FieldE < *that1.FieldE { - return -1 - } - return 1 - } - } else if this.FieldE != nil { - return 1 - } else if that1.FieldE != nil { - return -1 - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - if *this.FieldF < *that1.FieldF { - return -1 - } - return 1 - } - } else if this.FieldF != nil { - return 1 - } else if that1.FieldF != nil { - return -1 - } - if c := this.FieldG.Compare(that1.FieldG); c != 0 { - return c - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - if !*this.FieldH { - return -1 - } - return 1 - } - } else if this.FieldH != nil { - return 1 - } else if that1.FieldH != nil { - return -1 - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - if *this.FieldI < *that1.FieldI { - return -1 - } - return 1 - } - } else if this.FieldI != nil { - return 1 - } else if that1.FieldI != nil { - return -1 - } - if c := bytes.Compare(this.FieldJ, that1.FieldJ); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameCustomType) - if !ok { - that2, ok := that.(CustomNameCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.FieldA == nil { - if this.FieldA != nil { - return 1 - } - } else if this.FieldA == nil { - return -1 - } else if c := this.FieldA.Compare(*that1.FieldA); c != 0 { - return c - } - if that1.FieldB == nil { - if this.FieldB != nil { - return 1 - } - } else if this.FieldB == nil { - return -1 - } else if c := this.FieldB.Compare(*that1.FieldB); c != 0 { - return c - } - if len(this.FieldC) != len(that1.FieldC) { - if len(this.FieldC) < len(that1.FieldC) { - return -1 - } - return 1 - } - for i := range this.FieldC { - if c := this.FieldC[i].Compare(that1.FieldC[i]); c != 0 { - return c - } - } - if len(this.FieldD) != len(that1.FieldD) { - if len(this.FieldD) < len(that1.FieldD) { - return -1 - } - return 1 - } - for i := range this.FieldD { - if c := this.FieldD[i].Compare(that1.FieldD[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameNinEmbeddedStructUnion) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameNinEmbeddedStructUnion) - if !ok { - that2, ok := that.(CustomNameNinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NidOptNative.Compare(that1.NidOptNative); c != 0 { - return c - } - if c := this.FieldA.Compare(that1.FieldA); c != 0 { - return c - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - if !*this.FieldB { - return -1 - } - return 1 - } - } else if this.FieldB != nil { - return 1 - } else if that1.FieldB != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *CustomNameEnum) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*CustomNameEnum) - if !ok { - that2, ok := that.(CustomNameEnum) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - if *this.FieldA < *that1.FieldA { - return -1 - } - return 1 - } - } else if this.FieldA != nil { - return 1 - } else if that1.FieldA != nil { - return -1 - } - if len(this.FieldB) != len(that1.FieldB) { - if len(this.FieldB) < len(that1.FieldB) { - return -1 - } - return 1 - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - if this.FieldB[i] < that1.FieldB[i] { - return -1 - } - return 1 - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NoExtensionsMap) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NoExtensionsMap) - if !ok { - that2, ok := that.(NoExtensionsMap) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_extensions, that1.XXX_extensions); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *Unrecognized) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Unrecognized) - if !ok { - that2, ok := that.(Unrecognized) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - return 0 -} -func (this *UnrecognizedWithInner) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithInner) - if !ok { - that2, ok := that.(UnrecognizedWithInner) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Embedded) != len(that1.Embedded) { - if len(this.Embedded) < len(that1.Embedded) { - return -1 - } - return 1 - } - for i := range this.Embedded { - if c := this.Embedded[i].Compare(that1.Embedded[i]); c != 0 { - return c - } - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *UnrecognizedWithInner_Inner) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithInner_Inner) - if !ok { - that2, ok := that.(UnrecognizedWithInner_Inner) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - return 0 -} -func (this *UnrecognizedWithEmbed) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithEmbed) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.UnrecognizedWithEmbed_Embedded.Compare(&that1.UnrecognizedWithEmbed_Embedded); c != 0 { - return c - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *UnrecognizedWithEmbed_Embedded) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*UnrecognizedWithEmbed_Embedded) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed_Embedded) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - if *this.Field1 < *that1.Field1 { - return -1 - } - return 1 - } - } else if this.Field1 != nil { - return 1 - } else if that1.Field1 != nil { - return -1 - } - return 0 -} -func (this *Node) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*Node) - if !ok { - that2, ok := that.(Node) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Label != nil && that1.Label != nil { - if *this.Label != *that1.Label { - if *this.Label < *that1.Label { - return -1 - } - return 1 - } - } else if this.Label != nil { - return 1 - } else if that1.Label != nil { - return -1 - } - if len(this.Children) != len(that1.Children) { - if len(this.Children) < len(that1.Children) { - return -1 - } - return 1 - } - for i := range this.Children { - if c := this.Children[i].Compare(that1.Children[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NonByteCustomType) - if !ok { - that2, ok := that.(NonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Field1 == nil { - if this.Field1 != nil { - return 1 - } - } else if this.Field1 == nil { - return -1 - } else if c := this.Field1.Compare(*that1.Field1); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidOptNonByteCustomType) - if !ok { - that2, ok := that.(NidOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Field1.Compare(that1.Field1); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinOptNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinOptNonByteCustomType) - if !ok { - that2, ok := that.(NinOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if that1.Field1 == nil { - if this.Field1 != nil { - return 1 - } - } else if this.Field1 == nil { - return -1 - } else if c := this.Field1.Compare(*that1.Field1); c != 0 { - return c - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidRepNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NidRepNonByteCustomType) - if !ok { - that2, ok := that.(NidRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NinRepNonByteCustomType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*NinRepNonByteCustomType) - if !ok { - that2, ok := that.(NinRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.Field1) != len(that1.Field1) { - if len(this.Field1) < len(that1.Field1) { - return -1 - } - return 1 - } - for i := range this.Field1 { - if c := this.Field1[i].Compare(that1.Field1[i]); c != 0 { - return c - } - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *ProtoType) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*ProtoType) - if !ok { - that2, ok := that.(ProtoType) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - if *this.Field2 < *that1.Field2 { - return -1 - } - return 1 - } - } else if this.Field2 != nil { - return 1 - } else if that1.Field2 != nil { - return -1 - } - if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 { - return c - } - return 0 -} -func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomDash) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNativeUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinNestedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Tree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *OrBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AndBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Leaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *DeepTree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *ADeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AndDeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *DeepLeaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Nil) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AnotherNinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *AnotherNinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Timer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *MyExtendable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *OtherExtenable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedDefinition) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedDefinition_NestedMessage) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NestedScope) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNativeDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomContainer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *CustomNameEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NoExtensionsMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Unrecognized) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithInner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithInner_Inner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithEmbed) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return ThetestDescription() -} -func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 6508 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5c, 0x6b, 0x70, 0x24, 0x57, - 0x75, 0x56, 0x4f, 0x8f, 0xb4, 0xa3, 0xa3, 0x57, 0xab, 0xb5, 0xd6, 0x8e, 0xe5, 0xb5, 0xa4, 0x1d, - 0xaf, 0xd7, 0xb2, 0xb0, 0xb5, 0x5a, 0xad, 0xb4, 0x8f, 0x59, 0x6c, 0xd7, 0xbc, 0x76, 0xad, 0x45, - 0x1a, 0x89, 0x96, 0x84, 0xbd, 0x24, 0x55, 0x53, 0xbd, 0x33, 0x57, 0xd2, 0xd8, 0x33, 0xdd, 0xc3, - 0x74, 0xcb, 0xb6, 0xfc, 0x23, 0xe5, 0x40, 0x42, 0x20, 0xa9, 0x3c, 0x49, 0x2a, 0x40, 0xc0, 0x18, - 0x52, 0x04, 0x03, 0x79, 0x40, 0x42, 0x08, 0x45, 0xa5, 0x82, 0xff, 0x90, 0x6c, 0xfe, 0xa4, 0x4c, - 0xf2, 0x27, 0x45, 0xa5, 0x5c, 0xec, 0x9a, 0xaa, 0x90, 0xc4, 0x49, 0x20, 0xb8, 0x0a, 0xaa, 0xcc, - 0x8f, 0xd4, 0x7d, 0x75, 0xf7, 0xbd, 0xd3, 0xa3, 0x6e, 0x79, 0x6d, 0xe0, 0xcf, 0xee, 0xcc, 0x3d, - 0xe7, 0x3b, 0x7d, 0xee, 0x79, 0xdd, 0xd3, 0xf7, 0x5e, 0x0d, 0xbc, 0xba, 0x04, 0xd3, 0x3b, 0xb6, - 0xbd, 0xd3, 0x40, 0xa7, 0x5b, 0x6d, 0xdb, 0xb5, 0xaf, 0xef, 0x6d, 0x9f, 0xae, 0x21, 0xa7, 0xda, - 0xae, 0xb7, 0x5c, 0xbb, 0x3d, 0x47, 0xc6, 0xf4, 0x11, 0xca, 0x31, 0xc7, 0x39, 0x32, 0xab, 0x30, - 0x7a, 0xb9, 0xde, 0x40, 0x45, 0x8f, 0x71, 0x03, 0xb9, 0xfa, 0x05, 0x48, 0x6e, 0xd7, 0x1b, 0x28, - 0xad, 0x4c, 0xab, 0x33, 0x03, 0x0b, 0x27, 0xe7, 0x24, 0xd0, 0x9c, 0x88, 0x58, 0xc7, 0xc3, 0x06, - 0x41, 0x64, 0xbe, 0x9b, 0x84, 0xb1, 0x10, 0xaa, 0xae, 0x43, 0xd2, 0x32, 0x9b, 0x58, 0xa2, 0x32, - 0xd3, 0x6f, 0x90, 0xcf, 0x7a, 0x1a, 0x8e, 0xb4, 0xcc, 0xea, 0x93, 0xe6, 0x0e, 0x4a, 0x27, 0xc8, - 0x30, 0xff, 0xaa, 0x4f, 0x02, 0xd4, 0x50, 0x0b, 0x59, 0x35, 0x64, 0x55, 0xf7, 0xd3, 0xea, 0xb4, - 0x3a, 0xd3, 0x6f, 0x04, 0x46, 0xf4, 0x77, 0xc0, 0x68, 0x6b, 0xef, 0x7a, 0xa3, 0x5e, 0xad, 0x04, - 0xd8, 0x60, 0x5a, 0x9d, 0xe9, 0x35, 0x34, 0x4a, 0x28, 0xfa, 0xcc, 0xf7, 0xc1, 0xc8, 0xd3, 0xc8, - 0x7c, 0x32, 0xc8, 0x3a, 0x40, 0x58, 0x87, 0xf1, 0x70, 0x80, 0xb1, 0x00, 0x83, 0x4d, 0xe4, 0x38, - 0xe6, 0x0e, 0xaa, 0xb8, 0xfb, 0x2d, 0x94, 0x4e, 0x92, 0xd9, 0x4f, 0x77, 0xcc, 0x5e, 0x9e, 0xf9, - 0x00, 0x43, 0x6d, 0xee, 0xb7, 0x90, 0x9e, 0x83, 0x7e, 0x64, 0xed, 0x35, 0xa9, 0x84, 0xde, 0x2e, - 0xf6, 0x2b, 0x59, 0x7b, 0x4d, 0x59, 0x4a, 0x0a, 0xc3, 0x98, 0x88, 0x23, 0x0e, 0x6a, 0x3f, 0x55, - 0xaf, 0xa2, 0x74, 0x1f, 0x11, 0x70, 0x5f, 0x87, 0x80, 0x0d, 0x4a, 0x97, 0x65, 0x70, 0x9c, 0x5e, - 0x80, 0x7e, 0xf4, 0x8c, 0x8b, 0x2c, 0xa7, 0x6e, 0x5b, 0xe9, 0x23, 0x44, 0xc8, 0xbd, 0x21, 0x5e, - 0x44, 0x8d, 0x9a, 0x2c, 0xc2, 0xc7, 0xe9, 0xe7, 0xe0, 0x88, 0xdd, 0x72, 0xeb, 0xb6, 0xe5, 0xa4, - 0x53, 0xd3, 0xca, 0xcc, 0xc0, 0xc2, 0xf1, 0xd0, 0x40, 0x58, 0xa3, 0x3c, 0x06, 0x67, 0xd6, 0x97, - 0x41, 0x73, 0xec, 0xbd, 0x76, 0x15, 0x55, 0xaa, 0x76, 0x0d, 0x55, 0xea, 0xd6, 0xb6, 0x9d, 0xee, - 0x27, 0x02, 0xa6, 0x3a, 0x27, 0x42, 0x18, 0x0b, 0x76, 0x0d, 0x2d, 0x5b, 0xdb, 0xb6, 0x31, 0xec, - 0x08, 0xdf, 0xf5, 0x71, 0xe8, 0x73, 0xf6, 0x2d, 0xd7, 0x7c, 0x26, 0x3d, 0x48, 0x22, 0x84, 0x7d, - 0xcb, 0xfc, 0xa8, 0x17, 0x46, 0xe2, 0x84, 0xd8, 0x25, 0xe8, 0xdd, 0xc6, 0xb3, 0x4c, 0x27, 0x0e, - 0x63, 0x03, 0x8a, 0x11, 0x8d, 0xd8, 0xf7, 0x26, 0x8d, 0x98, 0x83, 0x01, 0x0b, 0x39, 0x2e, 0xaa, - 0xd1, 0x88, 0x50, 0x63, 0xc6, 0x14, 0x50, 0x50, 0x67, 0x48, 0x25, 0xdf, 0x54, 0x48, 0x3d, 0x0e, - 0x23, 0x9e, 0x4a, 0x95, 0xb6, 0x69, 0xed, 0xf0, 0xd8, 0x3c, 0x1d, 0xa5, 0xc9, 0x5c, 0x89, 0xe3, - 0x0c, 0x0c, 0x33, 0x86, 0x91, 0xf0, 0x5d, 0x2f, 0x02, 0xd8, 0x16, 0xb2, 0xb7, 0x2b, 0x35, 0x54, - 0x6d, 0xa4, 0x53, 0x5d, 0xac, 0xb4, 0x86, 0x59, 0x3a, 0xac, 0x64, 0xd3, 0xd1, 0x6a, 0x43, 0xbf, - 0xe8, 0x87, 0xda, 0x91, 0x2e, 0x91, 0xb2, 0x4a, 0x93, 0xac, 0x23, 0xda, 0xb6, 0x60, 0xb8, 0x8d, - 0x70, 0xdc, 0xa3, 0x1a, 0x9b, 0x59, 0x3f, 0x51, 0x62, 0x2e, 0x72, 0x66, 0x06, 0x83, 0xd1, 0x89, - 0x0d, 0xb5, 0x83, 0x5f, 0xf5, 0x7b, 0xc0, 0x1b, 0xa8, 0x90, 0xb0, 0x02, 0x52, 0x85, 0x06, 0xf9, - 0x60, 0xd9, 0x6c, 0xa2, 0x89, 0x0b, 0x30, 0x2c, 0x9a, 0x47, 0x3f, 0x0a, 0xbd, 0x8e, 0x6b, 0xb6, - 0x5d, 0x12, 0x85, 0xbd, 0x06, 0xfd, 0xa2, 0x6b, 0xa0, 0x22, 0xab, 0x46, 0xaa, 0x5c, 0xaf, 0x81, - 0x3f, 0x4e, 0x9c, 0x87, 0x21, 0xe1, 0xf1, 0x71, 0x81, 0x99, 0x8f, 0xf6, 0xc1, 0xd1, 0xb0, 0x98, - 0x0b, 0x0d, 0xff, 0x71, 0xe8, 0xb3, 0xf6, 0x9a, 0xd7, 0x51, 0x3b, 0xad, 0x12, 0x09, 0xec, 0x9b, - 0x9e, 0x83, 0xde, 0x86, 0x79, 0x1d, 0x35, 0xd2, 0xc9, 0x69, 0x65, 0x66, 0x78, 0xe1, 0x1d, 0xb1, - 0xa2, 0x7a, 0x6e, 0x05, 0x43, 0x0c, 0x8a, 0xd4, 0x1f, 0x86, 0x24, 0x2b, 0x71, 0x58, 0xc2, 0x6c, - 0x3c, 0x09, 0x38, 0x16, 0x0d, 0x82, 0xd3, 0xef, 0x82, 0x7e, 0xfc, 0x3f, 0xb5, 0x6d, 0x1f, 0xd1, - 0x39, 0x85, 0x07, 0xb0, 0x5d, 0xf5, 0x09, 0x48, 0x91, 0x30, 0xab, 0x21, 0xbe, 0x34, 0x78, 0xdf, - 0xb1, 0x63, 0x6a, 0x68, 0xdb, 0xdc, 0x6b, 0xb8, 0x95, 0xa7, 0xcc, 0xc6, 0x1e, 0x22, 0x01, 0xd3, - 0x6f, 0x0c, 0xb2, 0xc1, 0xf7, 0xe0, 0x31, 0x7d, 0x0a, 0x06, 0x68, 0x54, 0xd6, 0xad, 0x1a, 0x7a, - 0x86, 0x54, 0x9f, 0x5e, 0x83, 0x06, 0xea, 0x32, 0x1e, 0xc1, 0x8f, 0x7f, 0xc2, 0xb1, 0x2d, 0xee, - 0x5a, 0xf2, 0x08, 0x3c, 0x40, 0x1e, 0x7f, 0x5e, 0x2e, 0x7c, 0x77, 0x87, 0x4f, 0x4f, 0x8e, 0xc5, - 0xcc, 0x57, 0x13, 0x90, 0x24, 0xf9, 0x36, 0x02, 0x03, 0x9b, 0xd7, 0xd6, 0x4b, 0x95, 0xe2, 0xda, - 0x56, 0x7e, 0xa5, 0xa4, 0x29, 0xfa, 0x30, 0x00, 0x19, 0xb8, 0xbc, 0xb2, 0x96, 0xdb, 0xd4, 0x12, - 0xde, 0xf7, 0xe5, 0xf2, 0xe6, 0xb9, 0x45, 0x4d, 0xf5, 0x00, 0x5b, 0x74, 0x20, 0x19, 0x64, 0x38, - 0xbb, 0xa0, 0xf5, 0xea, 0x1a, 0x0c, 0x52, 0x01, 0xcb, 0x8f, 0x97, 0x8a, 0xe7, 0x16, 0xb5, 0x3e, - 0x71, 0xe4, 0xec, 0x82, 0x76, 0x44, 0x1f, 0x82, 0x7e, 0x32, 0x92, 0x5f, 0x5b, 0x5b, 0xd1, 0x52, - 0x9e, 0xcc, 0x8d, 0x4d, 0x63, 0xb9, 0x7c, 0x45, 0xeb, 0xf7, 0x64, 0x5e, 0x31, 0xd6, 0xb6, 0xd6, - 0x35, 0xf0, 0x24, 0xac, 0x96, 0x36, 0x36, 0x72, 0x57, 0x4a, 0xda, 0x80, 0xc7, 0x91, 0xbf, 0xb6, - 0x59, 0xda, 0xd0, 0x06, 0x05, 0xb5, 0xce, 0x2e, 0x68, 0x43, 0xde, 0x23, 0x4a, 0xe5, 0xad, 0x55, - 0x6d, 0x58, 0x1f, 0x85, 0x21, 0xfa, 0x08, 0xae, 0xc4, 0x88, 0x34, 0x74, 0x6e, 0x51, 0xd3, 0x7c, - 0x45, 0xa8, 0x94, 0x51, 0x61, 0xe0, 0xdc, 0xa2, 0xa6, 0x67, 0x0a, 0xd0, 0x4b, 0xa2, 0x4b, 0xd7, - 0x61, 0x78, 0x25, 0x97, 0x2f, 0xad, 0x54, 0xd6, 0xd6, 0x37, 0x97, 0xd7, 0xca, 0xb9, 0x15, 0x4d, - 0xf1, 0xc7, 0x8c, 0xd2, 0xbb, 0xb7, 0x96, 0x8d, 0x52, 0x51, 0x4b, 0x04, 0xc7, 0xd6, 0x4b, 0xb9, - 0xcd, 0x52, 0x51, 0x53, 0x33, 0x55, 0x38, 0x1a, 0x56, 0x67, 0x42, 0x33, 0x23, 0xe0, 0xe2, 0x44, - 0x17, 0x17, 0x13, 0x59, 0x1d, 0x2e, 0xfe, 0x8c, 0x02, 0x63, 0x21, 0xb5, 0x36, 0xf4, 0x21, 0x8f, - 0x40, 0x2f, 0x0d, 0x51, 0xba, 0xfa, 0xdc, 0x1f, 0x5a, 0xb4, 0x49, 0xc0, 0x76, 0xac, 0x40, 0x04, - 0x17, 0x5c, 0x81, 0xd5, 0x2e, 0x2b, 0x30, 0x16, 0xd1, 0xa1, 0xe4, 0x07, 0x14, 0x48, 0x77, 0x93, - 0x1d, 0x51, 0x28, 0x12, 0x42, 0xa1, 0xb8, 0x24, 0x2b, 0x70, 0xa2, 0xfb, 0x1c, 0x3a, 0xb4, 0xf8, - 0x9c, 0x02, 0xe3, 0xe1, 0x8d, 0x4a, 0xa8, 0x0e, 0x0f, 0x43, 0x5f, 0x13, 0xb9, 0xbb, 0x36, 0x5f, - 0xac, 0x4f, 0x85, 0x2c, 0x01, 0x98, 0x2c, 0xdb, 0x8a, 0xa1, 0x82, 0x6b, 0x88, 0xda, 0xad, 0xdb, - 0xa0, 0xda, 0x74, 0x68, 0xfa, 0xe1, 0x04, 0xdc, 0x11, 0x2a, 0x3c, 0x54, 0xd1, 0xbb, 0x01, 0xea, - 0x56, 0x6b, 0xcf, 0xa5, 0x0b, 0x32, 0xad, 0x4f, 0xfd, 0x64, 0x84, 0xe4, 0x3e, 0xae, 0x3d, 0x7b, - 0xae, 0x47, 0x57, 0x09, 0x1d, 0xe8, 0x10, 0x61, 0xb8, 0xe0, 0x2b, 0x9a, 0x24, 0x8a, 0x4e, 0x76, - 0x99, 0x69, 0xc7, 0x5a, 0x37, 0x0f, 0x5a, 0xb5, 0x51, 0x47, 0x96, 0x5b, 0x71, 0xdc, 0x36, 0x32, - 0x9b, 0x75, 0x6b, 0x87, 0x14, 0xe0, 0x54, 0xb6, 0x77, 0xdb, 0x6c, 0x38, 0xc8, 0x18, 0xa1, 0xe4, - 0x0d, 0x4e, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x03, 0x88, 0x3e, 0x01, 0x41, 0xc9, 0x1e, 0x22, 0xf3, - 0xc5, 0x23, 0x30, 0x10, 0x68, 0xeb, 0xf4, 0x13, 0x30, 0xf8, 0x84, 0xf9, 0x94, 0x59, 0xe1, 0xad, - 0x3a, 0xb5, 0xc4, 0x00, 0x1e, 0x5b, 0x67, 0xed, 0xfa, 0x3c, 0x1c, 0x25, 0x2c, 0xf6, 0x9e, 0x8b, - 0xda, 0x95, 0x6a, 0xc3, 0x74, 0x1c, 0x62, 0xb4, 0x14, 0x61, 0xd5, 0x31, 0x6d, 0x0d, 0x93, 0x0a, - 0x9c, 0xa2, 0x2f, 0xc1, 0x18, 0x41, 0x34, 0xf7, 0x1a, 0x6e, 0xbd, 0xd5, 0x40, 0x15, 0xfc, 0xf2, - 0xe0, 0x90, 0x42, 0xec, 0x69, 0x36, 0x8a, 0x39, 0x56, 0x19, 0x03, 0xd6, 0xc8, 0xd1, 0x8b, 0x70, - 0x37, 0x81, 0xed, 0x20, 0x0b, 0xb5, 0x4d, 0x17, 0x55, 0xd0, 0xfb, 0xf6, 0xcc, 0x86, 0x53, 0x31, - 0xad, 0x5a, 0x65, 0xd7, 0x74, 0x76, 0xd3, 0x47, 0xb1, 0x80, 0x7c, 0x22, 0xad, 0x18, 0x77, 0x62, - 0xc6, 0x2b, 0x8c, 0xaf, 0x44, 0xd8, 0x72, 0x56, 0xed, 0x51, 0xd3, 0xd9, 0xd5, 0xb3, 0x30, 0x4e, - 0xa4, 0x38, 0x6e, 0xbb, 0x6e, 0xed, 0x54, 0xaa, 0xbb, 0xa8, 0xfa, 0x64, 0x65, 0xcf, 0xdd, 0xbe, - 0x90, 0xbe, 0x2b, 0xf8, 0x7c, 0xa2, 0xe1, 0x06, 0xe1, 0x29, 0x60, 0x96, 0x2d, 0x77, 0xfb, 0x82, - 0xbe, 0x01, 0x83, 0xd8, 0x19, 0xcd, 0xfa, 0xb3, 0xa8, 0xb2, 0x6d, 0xb7, 0xc9, 0xca, 0x32, 0x1c, - 0x92, 0xd9, 0x01, 0x0b, 0xce, 0xad, 0x31, 0xc0, 0xaa, 0x5d, 0x43, 0xd9, 0xde, 0x8d, 0xf5, 0x52, - 0xa9, 0x68, 0x0c, 0x70, 0x29, 0x97, 0xed, 0x36, 0x0e, 0xa8, 0x1d, 0xdb, 0x33, 0xf0, 0x00, 0x0d, - 0xa8, 0x1d, 0x9b, 0x9b, 0x77, 0x09, 0xc6, 0xaa, 0x55, 0x3a, 0xe7, 0x7a, 0xb5, 0xc2, 0x5a, 0x7c, - 0x27, 0xad, 0x09, 0xc6, 0xaa, 0x56, 0xaf, 0x50, 0x06, 0x16, 0xe3, 0x8e, 0x7e, 0x11, 0xee, 0xf0, - 0x8d, 0x15, 0x04, 0x8e, 0x76, 0xcc, 0x52, 0x86, 0x2e, 0xc1, 0x58, 0x6b, 0xbf, 0x13, 0xa8, 0x0b, - 0x4f, 0x6c, 0xed, 0xcb, 0xb0, 0x7b, 0xc9, 0x6b, 0x5b, 0x1b, 0x55, 0x4d, 0x17, 0xd5, 0xd2, 0xc7, - 0x82, 0xdc, 0x01, 0x82, 0x7e, 0x1a, 0xb4, 0x6a, 0xb5, 0x82, 0x2c, 0xf3, 0x7a, 0x03, 0x55, 0xcc, - 0x36, 0xb2, 0x4c, 0x27, 0x3d, 0x15, 0x64, 0x1e, 0xae, 0x56, 0x4b, 0x84, 0x9a, 0x23, 0x44, 0x7d, - 0x16, 0x46, 0xed, 0xeb, 0x4f, 0x54, 0x69, 0x64, 0x55, 0x5a, 0x6d, 0xb4, 0x5d, 0x7f, 0x26, 0x7d, - 0x92, 0x98, 0x69, 0x04, 0x13, 0x48, 0x5c, 0xad, 0x93, 0x61, 0xfd, 0x7e, 0xd0, 0xaa, 0xce, 0xae, - 0xd9, 0x6e, 0x91, 0xa5, 0xdd, 0x69, 0x99, 0x55, 0x94, 0xbe, 0x97, 0xb2, 0xd2, 0xf1, 0x32, 0x1f, - 0xc6, 0x91, 0xed, 0x3c, 0x5d, 0xdf, 0x76, 0xb9, 0xc4, 0xfb, 0x68, 0x64, 0x93, 0x31, 0x26, 0xed, - 0x71, 0x38, 0xba, 0x67, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d, 0x84, 0x9b, 0x78, 0x9a, 0x89, 0xe9, - 0x7f, 0x3f, 0xd2, 0xa5, 0x0d, 0xdf, 0x0a, 0x72, 0xd3, 0x00, 0x30, 0xc6, 0xf6, 0x3a, 0x07, 0x33, - 0x59, 0x18, 0x0c, 0xc6, 0x85, 0xde, 0x0f, 0x34, 0x32, 0x34, 0x05, 0xaf, 0xb1, 0x85, 0xb5, 0x22, - 0x5e, 0x1d, 0xdf, 0x5b, 0xd2, 0x12, 0x78, 0x95, 0x5e, 0x59, 0xde, 0x2c, 0x55, 0x8c, 0xad, 0xf2, - 0xe6, 0xf2, 0x6a, 0x49, 0x53, 0x67, 0xfb, 0x53, 0xdf, 0x3b, 0xa2, 0x3d, 0xf7, 0xdc, 0x73, 0xcf, - 0x25, 0x32, 0xdf, 0x4c, 0xc0, 0xb0, 0xd8, 0x19, 0xeb, 0xef, 0x84, 0x63, 0xfc, 0x35, 0xd6, 0x41, - 0x6e, 0xe5, 0xe9, 0x7a, 0x9b, 0x84, 0x6a, 0xd3, 0xa4, 0xbd, 0xa5, 0x67, 0xe5, 0xa3, 0x8c, 0x6b, - 0x03, 0xb9, 0x8f, 0xd5, 0xdb, 0x38, 0x10, 0x9b, 0xa6, 0xab, 0xaf, 0xc0, 0x94, 0x65, 0x57, 0x1c, - 0xd7, 0xb4, 0x6a, 0x66, 0xbb, 0x56, 0xf1, 0x37, 0x10, 0x2a, 0x66, 0xb5, 0x8a, 0x1c, 0xc7, 0xa6, - 0x4b, 0x84, 0x27, 0xe5, 0xb8, 0x65, 0x6f, 0x30, 0x66, 0xbf, 0x76, 0xe6, 0x18, 0xab, 0x14, 0x11, - 0x6a, 0xb7, 0x88, 0xb8, 0x0b, 0xfa, 0x9b, 0x66, 0xab, 0x82, 0x2c, 0xb7, 0xbd, 0x4f, 0xfa, 0xb9, - 0x94, 0x91, 0x6a, 0x9a, 0xad, 0x12, 0xfe, 0xfe, 0xf6, 0xf9, 0x20, 0x68, 0xc7, 0x7f, 0x53, 0x61, - 0x30, 0xd8, 0xd3, 0xe1, 0x16, 0xb9, 0x4a, 0xea, 0xb7, 0x42, 0x32, 0xfc, 0x9e, 0x03, 0x3b, 0xc0, - 0xb9, 0x02, 0x2e, 0xec, 0xd9, 0x3e, 0xda, 0x69, 0x19, 0x14, 0x89, 0x17, 0x55, 0x9c, 0xd3, 0x88, - 0xf6, 0xef, 0x29, 0x83, 0x7d, 0xd3, 0xaf, 0x40, 0xdf, 0x13, 0x0e, 0x91, 0xdd, 0x47, 0x64, 0x9f, - 0x3c, 0x58, 0xf6, 0xd5, 0x0d, 0x22, 0xbc, 0xff, 0xea, 0x46, 0xa5, 0xbc, 0x66, 0xac, 0xe6, 0x56, - 0x0c, 0x06, 0xd7, 0xef, 0x84, 0x64, 0xc3, 0x7c, 0x76, 0x5f, 0x5c, 0x02, 0xc8, 0x50, 0x5c, 0xc3, - 0xdf, 0x09, 0xc9, 0xa7, 0x91, 0xf9, 0xa4, 0x58, 0x78, 0xc9, 0xd0, 0xdb, 0x18, 0xfa, 0xa7, 0xa1, - 0x97, 0xd8, 0x4b, 0x07, 0x60, 0x16, 0xd3, 0x7a, 0xf4, 0x14, 0x24, 0x0b, 0x6b, 0x06, 0x0e, 0x7f, - 0x0d, 0x06, 0xe9, 0x68, 0x65, 0x7d, 0xb9, 0x54, 0x28, 0x69, 0x89, 0xcc, 0x12, 0xf4, 0x51, 0x23, - 0xe0, 0xd4, 0xf0, 0xcc, 0xa0, 0xf5, 0xb0, 0xaf, 0x4c, 0x86, 0xc2, 0xa9, 0x5b, 0xab, 0xf9, 0x92, - 0xa1, 0x25, 0x82, 0xee, 0x75, 0x60, 0x30, 0xd8, 0xce, 0xfd, 0x74, 0x62, 0xea, 0xeb, 0x0a, 0x0c, - 0x04, 0xda, 0x33, 0xdc, 0x18, 0x98, 0x8d, 0x86, 0xfd, 0x74, 0xc5, 0x6c, 0xd4, 0x4d, 0x87, 0x05, - 0x05, 0x90, 0xa1, 0x1c, 0x1e, 0x89, 0xeb, 0xb4, 0x9f, 0x8a, 0xf2, 0xcf, 0x2b, 0xa0, 0xc9, 0xad, - 0x9d, 0xa4, 0xa0, 0xf2, 0x33, 0x55, 0xf0, 0x13, 0x0a, 0x0c, 0x8b, 0xfd, 0x9c, 0xa4, 0xde, 0x89, - 0x9f, 0xa9, 0x7a, 0xdf, 0x49, 0xc0, 0x90, 0xd0, 0xc5, 0xc5, 0xd5, 0xee, 0x7d, 0x30, 0x5a, 0xaf, - 0xa1, 0x66, 0xcb, 0x76, 0x91, 0x55, 0xdd, 0xaf, 0x34, 0xd0, 0x53, 0xa8, 0x91, 0xce, 0x90, 0x42, - 0x71, 0xfa, 0xe0, 0x3e, 0x71, 0x6e, 0xd9, 0xc7, 0xad, 0x60, 0x58, 0x76, 0x6c, 0xb9, 0x58, 0x5a, - 0x5d, 0x5f, 0xdb, 0x2c, 0x95, 0x0b, 0xd7, 0x2a, 0x5b, 0xe5, 0x77, 0x95, 0xd7, 0x1e, 0x2b, 0x1b, - 0x5a, 0x5d, 0x62, 0x7b, 0x1b, 0x53, 0x7d, 0x1d, 0x34, 0x59, 0x29, 0xfd, 0x18, 0x84, 0xa9, 0xa5, - 0xf5, 0xe8, 0x63, 0x30, 0x52, 0x5e, 0xab, 0x6c, 0x2c, 0x17, 0x4b, 0x95, 0xd2, 0xe5, 0xcb, 0xa5, - 0xc2, 0xe6, 0x06, 0x7d, 0x71, 0xf6, 0xb8, 0x37, 0xc5, 0xa4, 0xfe, 0xb8, 0x0a, 0x63, 0x21, 0x9a, - 0xe8, 0x39, 0xd6, 0xb3, 0xd3, 0xd7, 0x88, 0x07, 0xe3, 0x68, 0x3f, 0x87, 0xbb, 0x82, 0x75, 0xb3, - 0xed, 0xb2, 0x16, 0xff, 0x7e, 0xc0, 0x56, 0xb2, 0xdc, 0xfa, 0x76, 0x1d, 0xb5, 0xd9, 0x3e, 0x03, - 0x6d, 0xe4, 0x47, 0xfc, 0x71, 0xba, 0xd5, 0xf0, 0x00, 0xe8, 0x2d, 0xdb, 0xa9, 0xbb, 0xf5, 0xa7, - 0x50, 0xa5, 0x6e, 0xf1, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, 0x53, 0x96, 0x2d, 0xd7, 0xe3, - 0xb6, 0xd0, 0x8e, 0x29, 0x71, 0xe3, 0x02, 0xae, 0x1a, 0x1a, 0xa7, 0x78, 0xdc, 0x27, 0x60, 0xb0, - 0x66, 0xef, 0xe1, 0x36, 0x89, 0xf2, 0xe1, 0xf5, 0x42, 0x31, 0x06, 0xe8, 0x98, 0xc7, 0xc2, 0xfa, - 0x58, 0x7f, 0x37, 0x64, 0xd0, 0x18, 0xa0, 0x63, 0x94, 0xe5, 0x3e, 0x18, 0x31, 0x77, 0x76, 0xda, - 0x58, 0x38, 0x17, 0x44, 0x3b, 0xf3, 0x61, 0x6f, 0x98, 0x30, 0x4e, 0x5c, 0x85, 0x14, 0xb7, 0x03, - 0x5e, 0x92, 0xb1, 0x25, 0x2a, 0x2d, 0xba, 0x27, 0x95, 0x98, 0xe9, 0x37, 0x52, 0x16, 0x27, 0x9e, - 0x80, 0xc1, 0xba, 0x53, 0xf1, 0x37, 0x47, 0x13, 0xd3, 0x89, 0x99, 0x94, 0x31, 0x50, 0x77, 0xbc, - 0xdd, 0xb0, 0xcc, 0xe7, 0x12, 0x30, 0x2c, 0x6e, 0xee, 0xea, 0x45, 0x48, 0x35, 0xec, 0xaa, 0x49, - 0x42, 0x8b, 0x9e, 0x2c, 0xcc, 0x44, 0xec, 0x07, 0xcf, 0xad, 0x30, 0x7e, 0xc3, 0x43, 0x4e, 0xfc, - 0x93, 0x02, 0x29, 0x3e, 0xac, 0x8f, 0x43, 0xb2, 0x65, 0xba, 0xbb, 0x44, 0x5c, 0x6f, 0x3e, 0xa1, - 0x29, 0x06, 0xf9, 0x8e, 0xc7, 0x9d, 0x96, 0x69, 0x91, 0x10, 0x60, 0xe3, 0xf8, 0x3b, 0xf6, 0x6b, - 0x03, 0x99, 0x35, 0xd2, 0xf6, 0xdb, 0xcd, 0x26, 0xb2, 0x5c, 0x87, 0xfb, 0x95, 0x8d, 0x17, 0xd8, - 0xb0, 0xfe, 0x0e, 0x18, 0x75, 0xdb, 0x66, 0xbd, 0x21, 0xf0, 0x26, 0x09, 0xaf, 0xc6, 0x09, 0x1e, - 0x73, 0x16, 0xee, 0xe4, 0x72, 0x6b, 0xc8, 0x35, 0xab, 0xbb, 0xa8, 0xe6, 0x83, 0xfa, 0xc8, 0xce, - 0xe1, 0x31, 0xc6, 0x50, 0x64, 0x74, 0x8e, 0xcd, 0x7c, 0x4b, 0x81, 0x51, 0xfe, 0xa2, 0x52, 0xf3, - 0x8c, 0xb5, 0x0a, 0x60, 0x5a, 0x96, 0xed, 0x06, 0xcd, 0xd5, 0x19, 0xca, 0x1d, 0xb8, 0xb9, 0x9c, - 0x07, 0x32, 0x02, 0x02, 0x26, 0x9a, 0x00, 0x3e, 0xa5, 0xab, 0xd9, 0xa6, 0x60, 0x80, 0xed, 0xdc, - 0x93, 0xe3, 0x1f, 0xfa, 0x6a, 0x0b, 0x74, 0x08, 0xbf, 0xd1, 0xe8, 0x47, 0xa1, 0xf7, 0x3a, 0xda, - 0xa9, 0x5b, 0x6c, 0x3f, 0x91, 0x7e, 0xe1, 0xbb, 0x94, 0x49, 0x6f, 0x97, 0x32, 0xff, 0x38, 0x8c, - 0x55, 0xed, 0xa6, 0xac, 0x6e, 0x5e, 0x93, 0x5e, 0xaf, 0x9d, 0x47, 0x95, 0xf7, 0x82, 0xdf, 0x62, - 0x7e, 0x26, 0xa1, 0x5e, 0x59, 0xcf, 0x7f, 0x21, 0x31, 0x71, 0x85, 0xe2, 0xd6, 0xf9, 0x34, 0x0d, - 0xb4, 0xdd, 0x40, 0x55, 0xac, 0x3a, 0xfc, 0xf0, 0x14, 0x3c, 0xb8, 0x53, 0x77, 0x77, 0xf7, 0xae, - 0xcf, 0x55, 0xed, 0xe6, 0xe9, 0x1d, 0x7b, 0xc7, 0xf6, 0x8f, 0xbb, 0xf0, 0x37, 0xf2, 0x85, 0x7c, - 0x62, 0x47, 0x5e, 0xfd, 0xde, 0xe8, 0x44, 0xe4, 0xf9, 0x58, 0xb6, 0x0c, 0x63, 0x8c, 0xb9, 0x42, - 0xf6, 0xdc, 0xe9, 0xab, 0x81, 0x7e, 0xe0, 0xbe, 0x4b, 0xfa, 0xcb, 0xdf, 0x25, 0x6b, 0xb5, 0x31, - 0xca, 0xa0, 0x98, 0x46, 0x5f, 0x20, 0xb2, 0x06, 0xdc, 0x21, 0xc8, 0xa3, 0x79, 0x89, 0xda, 0x11, - 0x12, 0xbf, 0xc9, 0x24, 0x8e, 0x05, 0x24, 0x6e, 0x30, 0x68, 0xb6, 0x00, 0x43, 0x87, 0x91, 0xf5, - 0xf7, 0x4c, 0xd6, 0x20, 0x0a, 0x0a, 0xb9, 0x02, 0x23, 0x44, 0x48, 0x75, 0xcf, 0x71, 0xed, 0x26, - 0x29, 0x7a, 0x07, 0x8b, 0xf9, 0x87, 0xef, 0xd2, 0x44, 0x19, 0xc6, 0xb0, 0x82, 0x87, 0xca, 0x66, - 0x81, 0x1c, 0x33, 0xd4, 0x50, 0xb5, 0x11, 0x21, 0xe1, 0x06, 0x53, 0xc4, 0xe3, 0xcf, 0xbe, 0x07, - 0x8e, 0xe2, 0xcf, 0xa4, 0x26, 0x05, 0x35, 0x89, 0xde, 0x65, 0x4a, 0x7f, 0xeb, 0x03, 0x34, 0x17, - 0xc7, 0x3c, 0x01, 0x01, 0x9d, 0x02, 0x5e, 0xdc, 0x41, 0xae, 0x8b, 0xda, 0x4e, 0xc5, 0x6c, 0x84, - 0xa9, 0x17, 0x78, 0x4d, 0x4f, 0x7f, 0xec, 0x35, 0xd1, 0x8b, 0x57, 0x28, 0x32, 0xd7, 0x68, 0x64, - 0xb7, 0xe0, 0x58, 0x48, 0x54, 0xc4, 0x90, 0xf9, 0x71, 0x26, 0xf3, 0x68, 0x47, 0x64, 0x60, 0xb1, - 0xeb, 0xc0, 0xc7, 0x3d, 0x5f, 0xc6, 0x90, 0xf9, 0x47, 0x4c, 0xa6, 0xce, 0xb0, 0xdc, 0xa5, 0x58, - 0xe2, 0x55, 0x18, 0x7d, 0x0a, 0xb5, 0xaf, 0xdb, 0x0e, 0xdb, 0x1a, 0x89, 0x21, 0xee, 0x13, 0x4c, - 0xdc, 0x08, 0x03, 0x92, 0xbd, 0x12, 0x2c, 0xeb, 0x22, 0xa4, 0xb6, 0xcd, 0x2a, 0x8a, 0x21, 0xe2, - 0x93, 0x4c, 0xc4, 0x11, 0xcc, 0x8f, 0xa1, 0x39, 0x18, 0xdc, 0xb1, 0xd9, 0xb2, 0x14, 0x0d, 0x7f, - 0x9e, 0xc1, 0x07, 0x38, 0x86, 0x89, 0x68, 0xd9, 0xad, 0xbd, 0x06, 0x5e, 0xb3, 0xa2, 0x45, 0x7c, - 0x8a, 0x8b, 0xe0, 0x18, 0x26, 0xe2, 0x10, 0x66, 0x7d, 0x81, 0x8b, 0x70, 0x02, 0xf6, 0x7c, 0x04, - 0x06, 0x6c, 0xab, 0xb1, 0x6f, 0x5b, 0x71, 0x94, 0xf8, 0x34, 0x93, 0x00, 0x0c, 0x82, 0x05, 0x5c, - 0x82, 0xfe, 0xb8, 0x8e, 0xf8, 0xec, 0x6b, 0x3c, 0x3d, 0xb8, 0x07, 0xae, 0xc0, 0x08, 0x2f, 0x50, - 0x75, 0xdb, 0x8a, 0x21, 0xe2, 0x4f, 0x98, 0x88, 0xe1, 0x00, 0x8c, 0x4d, 0xc3, 0x45, 0x8e, 0xbb, - 0x83, 0xe2, 0x08, 0xf9, 0x1c, 0x9f, 0x06, 0x83, 0x30, 0x53, 0x5e, 0x47, 0x56, 0x75, 0x37, 0x9e, - 0x84, 0x17, 0xb9, 0x29, 0x39, 0x06, 0x8b, 0x28, 0xc0, 0x50, 0xd3, 0x6c, 0x3b, 0xbb, 0x66, 0x23, - 0x96, 0x3b, 0x3e, 0xcf, 0x64, 0x0c, 0x7a, 0x20, 0x66, 0x91, 0x3d, 0xeb, 0x30, 0x62, 0xbe, 0xc0, - 0x2d, 0x12, 0x80, 0xb1, 0xd4, 0x73, 0x5c, 0xb2, 0x01, 0x75, 0x18, 0x69, 0x5f, 0xe4, 0xa9, 0x47, - 0xb1, 0xab, 0x41, 0x89, 0x97, 0xa0, 0xdf, 0xa9, 0x3f, 0x1b, 0x4b, 0xcc, 0x9f, 0x72, 0x4f, 0x13, - 0x00, 0x06, 0x5f, 0x83, 0x3b, 0x43, 0x97, 0x89, 0x18, 0xc2, 0xfe, 0x8c, 0x09, 0x1b, 0x0f, 0x59, - 0x2a, 0x58, 0x49, 0x38, 0xac, 0xc8, 0x3f, 0xe7, 0x25, 0x01, 0x49, 0xb2, 0xd6, 0xf1, 0x8b, 0x82, - 0x63, 0x6e, 0x1f, 0xce, 0x6a, 0x7f, 0xc1, 0xad, 0x46, 0xb1, 0x82, 0xd5, 0x36, 0x61, 0x9c, 0x49, - 0x3c, 0x9c, 0x5f, 0xbf, 0xc4, 0x0b, 0x2b, 0x45, 0x6f, 0x89, 0xde, 0xfd, 0x05, 0x98, 0xf0, 0xcc, - 0xc9, 0x3b, 0x52, 0xa7, 0xd2, 0x34, 0x5b, 0x31, 0x24, 0x7f, 0x99, 0x49, 0xe6, 0x15, 0xdf, 0x6b, - 0x69, 0x9d, 0x55, 0xb3, 0x85, 0x85, 0x3f, 0x0e, 0x69, 0x2e, 0x7c, 0xcf, 0x6a, 0xa3, 0xaa, 0xbd, - 0x63, 0xd5, 0x9f, 0x45, 0xb5, 0x18, 0xa2, 0xff, 0x52, 0x72, 0xd5, 0x56, 0x00, 0x8e, 0x25, 0x2f, - 0x83, 0xe6, 0xf5, 0x2a, 0x95, 0x7a, 0xb3, 0x65, 0xb7, 0xdd, 0x08, 0x89, 0x7f, 0xc5, 0x3d, 0xe5, - 0xe1, 0x96, 0x09, 0x2c, 0x5b, 0x82, 0x61, 0xf2, 0x35, 0x6e, 0x48, 0x7e, 0x85, 0x09, 0x1a, 0xf2, - 0x51, 0xac, 0x70, 0x54, 0xed, 0x66, 0xcb, 0x6c, 0xc7, 0xa9, 0x7f, 0x7f, 0xcd, 0x0b, 0x07, 0x83, - 0xb0, 0xc2, 0xe1, 0xee, 0xb7, 0x10, 0x5e, 0xed, 0x63, 0x48, 0xf8, 0x2a, 0x2f, 0x1c, 0x1c, 0xc3, - 0x44, 0xf0, 0x86, 0x21, 0x86, 0x88, 0xbf, 0xe1, 0x22, 0x38, 0x06, 0x8b, 0x78, 0xb7, 0xbf, 0xd0, - 0xb6, 0xd1, 0x4e, 0xdd, 0x71, 0xdb, 0xb4, 0x0f, 0x3e, 0x58, 0xd4, 0xd7, 0x5e, 0x13, 0x9b, 0x30, - 0x23, 0x00, 0xcd, 0x5e, 0x85, 0x11, 0xa9, 0xc5, 0xd0, 0xa3, 0xee, 0x2c, 0xa4, 0x7f, 0xf9, 0x75, - 0x56, 0x8c, 0xc4, 0x0e, 0x23, 0xbb, 0x82, 0xfd, 0x2e, 0xf6, 0x01, 0xd1, 0xc2, 0x3e, 0xf0, 0xba, - 0xe7, 0x7a, 0xa1, 0x0d, 0xc8, 0x5e, 0x86, 0x21, 0xa1, 0x07, 0x88, 0x16, 0xf5, 0x2b, 0x4c, 0xd4, - 0x60, 0xb0, 0x05, 0xc8, 0x2e, 0x41, 0x12, 0xaf, 0xe7, 0xd1, 0xf0, 0x5f, 0x65, 0x70, 0xc2, 0x9e, - 0x7d, 0x08, 0x52, 0x7c, 0x1d, 0x8f, 0x86, 0x7e, 0x90, 0x41, 0x3d, 0x08, 0x86, 0xf3, 0x35, 0x3c, - 0x1a, 0xfe, 0x6b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfd, 0x46, 0x92, 0xd5, 0x61, - 0x6e, 0xbb, 0x4b, 0x70, 0x84, 0x2d, 0xde, 0xd1, 0xe8, 0x0f, 0xb3, 0x87, 0x73, 0x44, 0xf6, 0x3c, - 0xf4, 0xc6, 0x34, 0xf8, 0x6f, 0x32, 0x28, 0xe5, 0xcf, 0x16, 0x60, 0x20, 0xb0, 0x60, 0x47, 0xc3, - 0x7f, 0x8b, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xa3, 0x05, 0xfc, 0x36, 0x57, 0x9d, 0x21, - 0xb0, 0xd9, 0xf8, 0x5a, 0x1d, 0x8d, 0xfe, 0x1d, 0x6e, 0x75, 0x0e, 0xc9, 0x3e, 0x02, 0xfd, 0x5e, - 0xfd, 0x8d, 0xc6, 0xff, 0x2e, 0xc3, 0xfb, 0x18, 0x6c, 0x81, 0x40, 0xfd, 0x8f, 0x16, 0xf1, 0x7b, - 0xdc, 0x02, 0x01, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x96, 0xf4, 0x11, 0x9e, 0x46, 0xd2, 0x92, - 0x8e, 0xbd, 0x49, 0xca, 0x60, 0xb4, 0x88, 0xdf, 0xe7, 0xde, 0x24, 0xfc, 0x58, 0x0d, 0x79, 0x91, - 0x8c, 0x96, 0xf1, 0x87, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0xae, 0x83, 0xde, 0xb9, 0x40, 0x46, 0xcb, - 0xfb, 0x28, 0x93, 0x37, 0xda, 0xb1, 0x3e, 0x66, 0x1f, 0x83, 0xf1, 0xf0, 0xc5, 0x31, 0x5a, 0xea, - 0xc7, 0x5e, 0x97, 0x5e, 0x67, 0x82, 0x6b, 0x63, 0x76, 0xd3, 0xaf, 0xb2, 0xc1, 0x85, 0x31, 0x5a, - 0xec, 0xc7, 0x5f, 0x17, 0x0b, 0x6d, 0x70, 0x5d, 0xcc, 0xe6, 0x00, 0xfc, 0x35, 0x29, 0x5a, 0xd6, - 0x27, 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x92, 0xa2, 0xf1, 0x9f, 0xe4, 0xa9, 0xc1, 0x10, - 0x38, 0x35, 0xf8, 0x6a, 0x14, 0x8d, 0x7e, 0x9e, 0xa7, 0x06, 0x87, 0x64, 0x2f, 0x41, 0xca, 0xda, - 0x6b, 0x34, 0x70, 0x6c, 0xe9, 0x07, 0x5f, 0x23, 0x4a, 0xff, 0xc7, 0x1b, 0x0c, 0xcc, 0x01, 0xd9, - 0x25, 0xe8, 0x45, 0xcd, 0xeb, 0xa8, 0x16, 0x85, 0xfc, 0xcf, 0x37, 0x78, 0x3d, 0xc1, 0xdc, 0xd9, - 0x47, 0x00, 0xe8, 0xcb, 0x34, 0x39, 0x25, 0x8a, 0xc0, 0xfe, 0xd7, 0x1b, 0xec, 0x86, 0x82, 0x0f, - 0xf1, 0x05, 0xd0, 0xfb, 0x0e, 0x07, 0x0b, 0x78, 0x4d, 0x14, 0x40, 0x5e, 0xc0, 0x2f, 0xc2, 0x91, - 0x27, 0x1c, 0xdb, 0x72, 0xcd, 0x9d, 0x28, 0xf4, 0x7f, 0x33, 0x34, 0xe7, 0xc7, 0x06, 0x6b, 0xda, - 0x6d, 0xe4, 0x9a, 0x3b, 0x4e, 0x14, 0xf6, 0x7f, 0x18, 0xd6, 0x03, 0x60, 0x70, 0xd5, 0x74, 0xdc, - 0x38, 0xf3, 0xfe, 0x5f, 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x24, 0xda, 0x8f, 0xc2, 0x7e, - 0x9f, 0x2b, 0xcd, 0xf8, 0xb3, 0x0f, 0x41, 0x3f, 0xfe, 0x48, 0x6f, 0xed, 0x44, 0x80, 0x7f, 0xc0, - 0xc0, 0x3e, 0x02, 0x3f, 0xd9, 0x71, 0x6b, 0x6e, 0x3d, 0xda, 0xd8, 0xff, 0xc7, 0x3c, 0xcd, 0xf9, - 0xb3, 0x39, 0x18, 0x70, 0xdc, 0x5a, 0x6d, 0x8f, 0x75, 0x34, 0x11, 0xf0, 0x1f, 0xbe, 0xe1, 0xbd, - 0xe4, 0x7a, 0x98, 0xfc, 0x89, 0xf0, 0xcd, 0x3a, 0xb8, 0x62, 0x5f, 0xb1, 0xe9, 0x36, 0x1d, 0xfc, - 0x4b, 0x03, 0x4e, 0x55, 0xed, 0xe6, 0x75, 0xdb, 0x39, 0x4d, 0x0b, 0x4a, 0xa0, 0x18, 0x9d, 0x76, - 0x77, 0x11, 0x5e, 0x47, 0xd8, 0x76, 0x5b, 0x12, 0x7f, 0x9e, 0x38, 0xdc, 0x1e, 0x1d, 0x39, 0x7e, - 0x2d, 0xd7, 0xb1, 0x9a, 0x65, 0xb2, 0x03, 0xae, 0x1f, 0x87, 0x3e, 0xa2, 0xf8, 0x19, 0x72, 0xca, - 0xa4, 0xe4, 0x93, 0x37, 0x5e, 0x99, 0xea, 0x31, 0xd8, 0x98, 0x47, 0x5d, 0x20, 0x5b, 0x94, 0x09, - 0x81, 0xba, 0xe0, 0x51, 0xcf, 0xd2, 0x5d, 0x4a, 0x81, 0x7a, 0xd6, 0xa3, 0x2e, 0x92, 0xfd, 0x4a, - 0x55, 0xa0, 0x2e, 0x7a, 0xd4, 0x25, 0xb2, 0x27, 0x3f, 0x24, 0x50, 0x97, 0x3c, 0xea, 0x39, 0xb2, - 0x13, 0x9f, 0x14, 0xa8, 0xe7, 0x3c, 0xea, 0x79, 0xb2, 0x09, 0x3f, 0x2a, 0x50, 0xcf, 0x7b, 0xd4, - 0x0b, 0x64, 0xf3, 0x5d, 0x17, 0xa8, 0x17, 0x3c, 0xea, 0x45, 0x72, 0xa3, 0xe4, 0x88, 0x40, 0xbd, - 0xa8, 0x4f, 0xc2, 0x11, 0x3a, 0xf3, 0x79, 0x72, 0x52, 0x3b, 0xc2, 0xc8, 0x7c, 0xd0, 0xa7, 0x9f, - 0x21, 0xb7, 0x47, 0xfa, 0x44, 0xfa, 0x19, 0x9f, 0xbe, 0x40, 0xee, 0x51, 0x6b, 0x22, 0x7d, 0xc1, - 0xa7, 0x9f, 0x4d, 0x0f, 0x91, 0x1b, 0x34, 0x02, 0xfd, 0xac, 0x4f, 0x5f, 0x4c, 0x0f, 0xe3, 0xd8, - 0x15, 0xe9, 0x8b, 0x3e, 0x7d, 0x29, 0x3d, 0x32, 0xad, 0xcc, 0x0c, 0x8a, 0xf4, 0xa5, 0xcc, 0xfb, - 0x89, 0x7b, 0x2d, 0xdf, 0xbd, 0xe3, 0xa2, 0x7b, 0x3d, 0xc7, 0x8e, 0x8b, 0x8e, 0xf5, 0x5c, 0x3a, - 0x2e, 0xba, 0xd4, 0x73, 0xe6, 0xb8, 0xe8, 0x4c, 0xcf, 0x8d, 0xe3, 0xa2, 0x1b, 0x3d, 0x07, 0x8e, - 0x8b, 0x0e, 0xf4, 0x5c, 0x37, 0x2e, 0xba, 0xce, 0x73, 0xda, 0xb8, 0xe8, 0x34, 0xcf, 0x5d, 0xe3, - 0xa2, 0xbb, 0x3c, 0x47, 0xa5, 0x25, 0x47, 0xf9, 0x2e, 0x4a, 0x4b, 0x2e, 0xf2, 0x9d, 0x93, 0x96, - 0x9c, 0xe3, 0xbb, 0x25, 0x2d, 0xb9, 0xc5, 0x77, 0x48, 0x5a, 0x72, 0x88, 0xef, 0x8a, 0xb4, 0xe4, - 0x0a, 0xdf, 0x09, 0x2c, 0xc7, 0x0c, 0xd4, 0x0a, 0xc9, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, - 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, - 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, 0xe0, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, - 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0xed, 0x9a, 0x63, 0xbe, 0x7b, 0xc7, - 0x45, 0xf7, 0x86, 0xe6, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, 0x39, 0xa6, 0x76, 0xc9, 0x31, 0xb5, - 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x92, 0x63, 0x6a, 0x97, 0x1c, 0x53, 0xbb, 0xe5, 0x98, - 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, 0xb5, 0x6b, 0x8e, 0xa9, 0x5d, 0x73, - 0x4c, 0x0d, 0xe6, 0xd8, 0xdf, 0xaa, 0xa0, 0xd3, 0x1c, 0x5b, 0x27, 0x77, 0x7d, 0x98, 0x2b, 0x26, - 0xa5, 0x4c, 0xeb, 0xc3, 0xae, 0xd3, 0x7c, 0x97, 0x4c, 0x4a, 0xb9, 0x26, 0xd2, 0x17, 0x3c, 0x3a, - 0xcf, 0x36, 0x91, 0x7e, 0xd6, 0xa3, 0xf3, 0x7c, 0x13, 0xe9, 0x8b, 0x1e, 0x9d, 0x67, 0x9c, 0x48, - 0x5f, 0xf2, 0xe8, 0x3c, 0xe7, 0x44, 0xfa, 0x39, 0x8f, 0xce, 0xb3, 0x4e, 0xa4, 0x9f, 0xf7, 0xe8, - 0x3c, 0xef, 0x44, 0xfa, 0x05, 0x8f, 0xce, 0x33, 0x4f, 0xa4, 0x5f, 0xd4, 0xa7, 0xe5, 0xdc, 0xe3, - 0x0c, 0x9e, 0x6b, 0xa7, 0xe5, 0xec, 0x93, 0x38, 0xce, 0xf8, 0x1c, 0x3c, 0xff, 0x24, 0x8e, 0x05, - 0x9f, 0x83, 0x67, 0xa0, 0xc4, 0x71, 0x36, 0xf3, 0x21, 0xe2, 0x3e, 0x4b, 0x76, 0xdf, 0x84, 0xe4, - 0xbe, 0x44, 0xc0, 0x75, 0x13, 0x92, 0xeb, 0x12, 0x01, 0xb7, 0x4d, 0x48, 0x6e, 0x4b, 0x04, 0x5c, - 0x36, 0x21, 0xb9, 0x2c, 0x11, 0x70, 0xd7, 0x84, 0xe4, 0xae, 0x44, 0xc0, 0x55, 0x13, 0x92, 0xab, - 0x12, 0x01, 0x37, 0x4d, 0x48, 0x6e, 0x4a, 0x04, 0x5c, 0x34, 0x21, 0xb9, 0x28, 0x11, 0x70, 0xcf, - 0x84, 0xe4, 0x9e, 0x44, 0xc0, 0x35, 0xc7, 0x65, 0xd7, 0x24, 0x82, 0x6e, 0x39, 0x2e, 0xbb, 0x25, - 0x11, 0x74, 0xc9, 0x71, 0xd9, 0x25, 0x89, 0xa0, 0x3b, 0x8e, 0xcb, 0xee, 0x48, 0x04, 0x5d, 0xf1, - 0x93, 0x04, 0xef, 0x08, 0x37, 0xdc, 0xf6, 0x5e, 0xd5, 0xbd, 0xad, 0x8e, 0x70, 0x5e, 0x68, 0x1f, - 0x06, 0x16, 0xf4, 0x39, 0xd2, 0xb0, 0x06, 0x3b, 0x4e, 0x69, 0x05, 0x9b, 0x17, 0x1a, 0x8b, 0x00, - 0xc2, 0x0a, 0x47, 0x2c, 0xde, 0x56, 0x6f, 0x38, 0x2f, 0xb4, 0x19, 0xd1, 0xfa, 0x5d, 0x78, 0xdb, - 0x3b, 0xb6, 0x97, 0x12, 0xbc, 0x63, 0x63, 0xe6, 0x3f, 0x6c, 0xc7, 0x36, 0x1b, 0x6d, 0x72, 0xcf, - 0xd8, 0xb3, 0xd1, 0xc6, 0xee, 0x58, 0x75, 0xe2, 0x76, 0x70, 0xb3, 0xd1, 0xa6, 0xf5, 0x8c, 0xfa, - 0xd6, 0xf6, 0x5b, 0x2c, 0x82, 0x0d, 0xd4, 0x0a, 0x89, 0xe0, 0xc3, 0xf6, 0x5b, 0xf3, 0x42, 0x29, - 0x39, 0x6c, 0x04, 0xab, 0x87, 0x8e, 0xe0, 0xc3, 0x76, 0x5e, 0xf3, 0x42, 0x79, 0x39, 0x74, 0x04, - 0xbf, 0x0d, 0xfd, 0x10, 0x8b, 0x60, 0xdf, 0xfc, 0x87, 0xed, 0x87, 0x66, 0xa3, 0x4d, 0x1e, 0x1a, - 0xc1, 0xea, 0x21, 0x22, 0x38, 0x4e, 0x7f, 0x34, 0x1b, 0x6d, 0xda, 0xf0, 0x08, 0xbe, 0xed, 0x6e, - 0xe6, 0x53, 0x0a, 0x8c, 0x96, 0xeb, 0xb5, 0x52, 0xf3, 0x3a, 0xaa, 0xd5, 0x50, 0x8d, 0xd9, 0x71, - 0x5e, 0xa8, 0x04, 0x5d, 0x5c, 0xfd, 0xf2, 0x2b, 0x53, 0xbe, 0x85, 0x97, 0x20, 0x45, 0x6d, 0x3a, - 0x3f, 0x9f, 0xbe, 0xa1, 0x44, 0x54, 0x38, 0x8f, 0x55, 0x3f, 0xc1, 0x61, 0x67, 0xe6, 0xd3, 0xff, - 0xac, 0x04, 0xaa, 0x9c, 0x37, 0x9c, 0xf9, 0x08, 0xd1, 0xd0, 0xba, 0x6d, 0x0d, 0x4f, 0xc7, 0xd2, - 0x30, 0xa0, 0xdb, 0x5d, 0x1d, 0xba, 0x05, 0xb4, 0xda, 0x83, 0x91, 0x72, 0xbd, 0x56, 0x26, 0x7f, - 0xc1, 0x1b, 0x47, 0x25, 0xca, 0x23, 0xd5, 0x83, 0x79, 0x21, 0x2c, 0x83, 0x08, 0x2f, 0xa4, 0xc5, - 0x1a, 0x91, 0xa9, 0xe3, 0xc7, 0x5a, 0xc2, 0x63, 0x67, 0xbb, 0x3d, 0xd6, 0xaf, 0xec, 0xde, 0x03, - 0x67, 0xbb, 0x3d, 0xd0, 0xcf, 0x21, 0xef, 0x51, 0xcf, 0xf0, 0xc5, 0x99, 0x5e, 0xba, 0xd1, 0x8f, - 0x43, 0x62, 0x99, 0x5e, 0x08, 0x1e, 0xcc, 0x0f, 0x62, 0xa5, 0xbe, 0xfd, 0xca, 0x54, 0x72, 0x6b, - 0xaf, 0x5e, 0x33, 0x12, 0xcb, 0x35, 0xfd, 0x2a, 0xf4, 0xbe, 0x87, 0xfd, 0x1d, 0x1c, 0x66, 0x58, - 0x64, 0x0c, 0x0f, 0x74, 0xdd, 0x23, 0xc2, 0x0f, 0x3e, 0x4d, 0xb7, 0x13, 0xe7, 0xb6, 0xea, 0x96, - 0x7b, 0x66, 0xe1, 0x82, 0x41, 0x45, 0x64, 0x7e, 0x11, 0x80, 0x3e, 0xb3, 0x68, 0x3a, 0xbb, 0x7a, - 0x99, 0x4b, 0xa6, 0x8f, 0xbe, 0xf0, 0xed, 0x57, 0xa6, 0x16, 0xe3, 0x48, 0x7d, 0xb0, 0x66, 0x3a, - 0xbb, 0x0f, 0xba, 0xfb, 0x2d, 0x34, 0x97, 0xdf, 0x77, 0x91, 0xc3, 0xa5, 0xb7, 0xf8, 0xaa, 0xc7, - 0xe6, 0x95, 0x0e, 0xcc, 0x2b, 0x25, 0xcc, 0xe9, 0xb2, 0x38, 0xa7, 0xf9, 0x37, 0x3b, 0x9f, 0x67, - 0xf8, 0x22, 0x21, 0x59, 0x52, 0x8d, 0xb2, 0xa4, 0x7a, 0xbb, 0x96, 0x6c, 0xf1, 0xfa, 0x28, 0xcd, - 0x55, 0x3d, 0x68, 0xae, 0xea, 0xed, 0xcc, 0xf5, 0x47, 0x34, 0x5b, 0xbd, 0x7c, 0xda, 0xb2, 0xe8, - 0x65, 0xc4, 0x9f, 0xaf, 0xbd, 0xa0, 0xb7, 0xb4, 0x0b, 0xc8, 0x26, 0x6f, 0xbc, 0x30, 0xa5, 0x64, - 0x3e, 0x95, 0xe0, 0x33, 0xa7, 0x89, 0xf4, 0xe6, 0x66, 0xfe, 0xf3, 0xd2, 0x53, 0xbd, 0x1d, 0x16, - 0x7a, 0x5e, 0x81, 0xf1, 0x8e, 0x4a, 0x4e, 0xcd, 0xf4, 0xd6, 0x96, 0x73, 0xeb, 0xb0, 0xe5, 0x9c, - 0x29, 0xf8, 0x15, 0x05, 0x8e, 0x4a, 0xe5, 0x95, 0xaa, 0x77, 0x5a, 0x52, 0xef, 0x58, 0xe7, 0x93, - 0x08, 0x63, 0x40, 0xbb, 0xa0, 0x7b, 0x25, 0x40, 0x40, 0xb2, 0xe7, 0xf7, 0x45, 0xc9, 0xef, 0xc7, - 0x3d, 0x40, 0x88, 0xb9, 0x78, 0x04, 0x30, 0xb5, 0x6d, 0x48, 0x6e, 0xb6, 0x11, 0xd2, 0x27, 0x21, - 0xb1, 0xd6, 0x66, 0x1a, 0x0e, 0x53, 0xfc, 0x5a, 0x3b, 0xdf, 0x36, 0xad, 0xea, 0xae, 0x91, 0x58, - 0x6b, 0xeb, 0x27, 0x40, 0xcd, 0xb1, 0x5f, 0x1a, 0x18, 0x58, 0x18, 0xa1, 0x0c, 0x39, 0xab, 0xc6, - 0x38, 0x30, 0x4d, 0x9f, 0x84, 0xe4, 0x0a, 0x32, 0xb7, 0x99, 0x12, 0x40, 0x79, 0xf0, 0x88, 0x41, - 0xc6, 0xd9, 0x03, 0x1f, 0x87, 0x14, 0x17, 0xac, 0x9f, 0xc4, 0x88, 0x6d, 0x97, 0x3d, 0x96, 0x21, - 0xb0, 0x3a, 0x6c, 0xe5, 0x22, 0x54, 0xfd, 0x14, 0xf4, 0x1a, 0xf5, 0x9d, 0x5d, 0x97, 0x3d, 0xbc, - 0x93, 0x8d, 0x92, 0x33, 0xd7, 0xa0, 0xdf, 0xd3, 0xe8, 0x2d, 0x16, 0x5d, 0xa4, 0x53, 0xd3, 0x27, - 0x82, 0xeb, 0x09, 0xdf, 0xb7, 0xa4, 0x43, 0xfa, 0x34, 0xa4, 0x36, 0xdc, 0xb6, 0x5f, 0xf4, 0x79, - 0x47, 0xea, 0x8d, 0x66, 0xde, 0xaf, 0x40, 0xaa, 0x88, 0x50, 0x8b, 0x18, 0xfc, 0x5e, 0x48, 0x16, - 0xed, 0xa7, 0x2d, 0xa6, 0xe0, 0x28, 0xb3, 0x28, 0x26, 0x33, 0x9b, 0x12, 0xb2, 0x7e, 0x6f, 0xd0, - 0xee, 0x63, 0x9e, 0xdd, 0x03, 0x7c, 0xc4, 0xf6, 0x19, 0xc1, 0xf6, 0xcc, 0x81, 0x98, 0xa9, 0xc3, - 0xfe, 0xe7, 0x61, 0x20, 0xf0, 0x14, 0x7d, 0x86, 0xa9, 0x91, 0x90, 0x81, 0x41, 0x5b, 0x61, 0x8e, - 0x0c, 0x82, 0x21, 0xe1, 0xc1, 0x18, 0x1a, 0x30, 0x71, 0x17, 0x28, 0x31, 0xf3, 0xac, 0x68, 0xe6, - 0x70, 0x56, 0x66, 0xea, 0x79, 0x6a, 0x23, 0x62, 0xee, 0x93, 0x34, 0x38, 0xbb, 0x3b, 0x11, 0x7f, - 0xce, 0xf4, 0x82, 0x5a, 0xae, 0x37, 0x32, 0x0f, 0x01, 0xd0, 0x94, 0x2f, 0x59, 0x7b, 0x4d, 0x29, - 0xeb, 0x86, 0xb9, 0x81, 0x37, 0x77, 0xd1, 0x26, 0x72, 0x08, 0x8b, 0xd8, 0x4f, 0xe1, 0x02, 0x03, - 0x34, 0xc5, 0x08, 0xfe, 0xfe, 0x48, 0x7c, 0x68, 0x27, 0x86, 0x59, 0xd3, 0x94, 0xf5, 0x1a, 0x72, - 0x73, 0x96, 0xed, 0xee, 0xa2, 0xb6, 0x84, 0x58, 0xd0, 0xcf, 0x0a, 0x09, 0x3b, 0xbc, 0x70, 0x97, - 0x87, 0xe8, 0x0a, 0x3a, 0x9b, 0xf9, 0x12, 0x51, 0x10, 0xb7, 0x02, 0x1d, 0x13, 0x54, 0x63, 0x4c, - 0x50, 0x3f, 0x27, 0xf4, 0x6f, 0x07, 0xa8, 0x29, 0xbd, 0x5a, 0x5e, 0x14, 0xde, 0x73, 0x0e, 0x56, - 0x56, 0x7c, 0xc7, 0xe4, 0x36, 0xe5, 0x2a, 0xdf, 0x1f, 0xa9, 0x72, 0x97, 0xee, 0xf6, 0xb0, 0x36, - 0x55, 0xe3, 0xda, 0xf4, 0xeb, 0x5e, 0xc7, 0x41, 0x7f, 0xb3, 0x81, 0xfc, 0x44, 0x88, 0xfe, 0x40, - 0xa4, 0xef, 0xb3, 0x4a, 0xc1, 0x53, 0x75, 0x31, 0xae, 0xfb, 0xb3, 0x89, 0x7c, 0xde, 0x53, 0xf7, - 0xfc, 0x21, 0x42, 0x20, 0x9b, 0x28, 0x14, 0xbc, 0xb2, 0x9d, 0xfa, 0xd0, 0x0b, 0x53, 0xca, 0x8b, - 0x2f, 0x4c, 0xf5, 0x64, 0x3e, 0xaf, 0xc0, 0x28, 0xe3, 0x0c, 0x04, 0xee, 0x83, 0x92, 0xf2, 0x77, - 0xf0, 0x9a, 0x11, 0x66, 0x81, 0x9f, 0x5a, 0xf0, 0x7e, 0x53, 0x81, 0x74, 0x87, 0xae, 0xdc, 0xde, - 0xf3, 0xb1, 0x54, 0xce, 0x2a, 0xa5, 0x9f, 0xbd, 0xcd, 0xaf, 0x41, 0xef, 0x66, 0xbd, 0x89, 0xda, - 0x78, 0x25, 0xc0, 0x1f, 0xa8, 0xca, 0xfc, 0x30, 0x87, 0x0e, 0x71, 0x1a, 0x55, 0x4e, 0xa0, 0x2d, - 0xe8, 0x69, 0x48, 0x16, 0x4d, 0xd7, 0x24, 0x1a, 0x0c, 0x7a, 0xf5, 0xd5, 0x74, 0xcd, 0xcc, 0x59, - 0x18, 0x5c, 0xdd, 0x27, 0x37, 0x66, 0x6a, 0xe4, 0x36, 0x88, 0xd8, 0xfd, 0xf1, 0x7e, 0xf5, 0xcc, - 0x6c, 0x6f, 0xaa, 0xa6, 0xdd, 0x50, 0xb2, 0x49, 0xa2, 0xcf, 0x53, 0x30, 0xbc, 0x86, 0xd5, 0x26, - 0x38, 0x01, 0x46, 0x9f, 0xae, 0x7a, 0x93, 0x97, 0x9a, 0x32, 0xd5, 0x6f, 0xca, 0xa6, 0x41, 0x59, - 0x15, 0x5b, 0xa7, 0xa0, 0x1e, 0x86, 0xb2, 0x3a, 0x9b, 0x4c, 0x0d, 0x6b, 0xa3, 0xb3, 0xc9, 0x14, - 0x68, 0x43, 0xec, 0xb9, 0xff, 0xa8, 0x82, 0x46, 0x5b, 0x9d, 0x22, 0xda, 0xae, 0x5b, 0x75, 0xb7, - 0xb3, 0x5f, 0xf5, 0x34, 0xd6, 0x1f, 0x81, 0x7e, 0x6c, 0xd2, 0xcb, 0xec, 0x97, 0xb6, 0xb0, 0xe9, - 0x4f, 0xb0, 0x16, 0x45, 0x12, 0xc1, 0x06, 0x48, 0xe8, 0xf8, 0x18, 0xfd, 0x32, 0xa8, 0xe5, 0xf2, - 0x2a, 0x5b, 0xdc, 0x16, 0x0f, 0x84, 0xb2, 0x0b, 0x37, 0xec, 0x1b, 0x1b, 0x73, 0x76, 0x0c, 0x2c, - 0x40, 0x5f, 0x84, 0x44, 0x79, 0x95, 0x35, 0xbc, 0x27, 0xe3, 0x88, 0x31, 0x12, 0xe5, 0xd5, 0x89, - 0xbf, 0x53, 0x60, 0x48, 0x18, 0xd5, 0x33, 0x30, 0x48, 0x07, 0x02, 0xd3, 0xed, 0x33, 0x84, 0x31, - 0xae, 0x73, 0xe2, 0x36, 0x75, 0x9e, 0xc8, 0xc1, 0x88, 0x34, 0xae, 0xcf, 0x81, 0x1e, 0x1c, 0x62, - 0x4a, 0xd0, 0x5f, 0x29, 0x0a, 0xa1, 0x64, 0xee, 0x06, 0xf0, 0xed, 0xea, 0xfd, 0xb8, 0x4e, 0xb9, - 0xb4, 0xb1, 0x59, 0x2a, 0x6a, 0x4a, 0xe6, 0xab, 0x0a, 0x0c, 0xb0, 0xb6, 0xb5, 0x6a, 0xb7, 0x90, - 0x9e, 0x07, 0x25, 0xc7, 0xe2, 0xe1, 0xcd, 0xe9, 0xad, 0xe4, 0xf4, 0xd3, 0xa0, 0xe4, 0xe3, 0xbb, - 0x5a, 0xc9, 0xeb, 0x0b, 0xa0, 0x14, 0x98, 0x83, 0xe3, 0x79, 0x46, 0x29, 0x64, 0x7e, 0xa0, 0xc2, - 0x58, 0xb0, 0x8d, 0xe6, 0xf5, 0xe4, 0x84, 0xf8, 0xde, 0x94, 0xed, 0x3f, 0xb3, 0x70, 0x76, 0x71, - 0x0e, 0xff, 0xe3, 0x85, 0xe4, 0x09, 0xf1, 0x15, 0xaa, 0x93, 0xa5, 0xe3, 0x9a, 0x48, 0x36, 0x19, - 0xa0, 0x76, 0x5c, 0x13, 0x11, 0xa8, 0x1d, 0xd7, 0x44, 0x04, 0x6a, 0xc7, 0x35, 0x11, 0x81, 0xda, - 0x71, 0x14, 0x20, 0x50, 0x3b, 0xae, 0x89, 0x08, 0xd4, 0x8e, 0x6b, 0x22, 0x02, 0xb5, 0xf3, 0x9a, - 0x08, 0x23, 0x77, 0xbd, 0x26, 0x22, 0xd2, 0x3b, 0xaf, 0x89, 0x88, 0xf4, 0xce, 0x6b, 0x22, 0xd9, - 0xa4, 0xdb, 0xde, 0x43, 0xdd, 0x0f, 0x1d, 0x44, 0xfc, 0x41, 0xef, 0x80, 0x7e, 0x01, 0x5e, 0x83, - 0x11, 0xba, 0x1f, 0x51, 0xb0, 0x2d, 0xd7, 0xac, 0x5b, 0xa8, 0xad, 0xbf, 0x13, 0x06, 0xe9, 0x10, - 0x7d, 0xcb, 0x09, 0x7b, 0x0b, 0xa4, 0x74, 0x56, 0x6e, 0x05, 0xee, 0xcc, 0x4f, 0x92, 0x30, 0x4e, - 0x07, 0xca, 0x66, 0x13, 0x09, 0x97, 0x8c, 0x4e, 0x49, 0x47, 0x4a, 0xc3, 0x18, 0x7e, 0xeb, 0x95, - 0x29, 0x3a, 0x9a, 0xf3, 0x82, 0xe9, 0x94, 0x74, 0xb8, 0x24, 0xf2, 0xf9, 0xeb, 0xcf, 0x29, 0xe9, - 0xe2, 0x91, 0xc8, 0xe7, 0x2d, 0x37, 0x1e, 0x1f, 0xbf, 0x82, 0x24, 0xf2, 0x15, 0xbd, 0x28, 0x3b, - 0x25, 0x5d, 0x46, 0x12, 0xf9, 0x4a, 0x5e, 0xbc, 0x9d, 0x92, 0x8e, 0x9e, 0x44, 0xbe, 0xcb, 0x5e, - 0xe4, 0x9d, 0x92, 0x0e, 0xa1, 0x44, 0xbe, 0x2b, 0x5e, 0x0c, 0x9e, 0x92, 0xae, 0x2a, 0x89, 0x7c, - 0x8f, 0x7a, 0xd1, 0x78, 0x4a, 0xba, 0xb4, 0x24, 0xf2, 0x2d, 0x7b, 0x71, 0x39, 0x23, 0x5f, 0x5f, - 0x12, 0x19, 0xaf, 0xfa, 0x11, 0x3a, 0x23, 0x5f, 0x64, 0x12, 0x39, 0xdf, 0xe5, 0xc7, 0xea, 0x8c, - 0x7c, 0xa5, 0x49, 0xe4, 0x5c, 0xf1, 0xa3, 0x76, 0x46, 0x3e, 0x2a, 0x13, 0x39, 0x57, 0xfd, 0xf8, - 0x9d, 0x91, 0x0f, 0xcd, 0x44, 0xce, 0xb2, 0x1f, 0xc9, 0x33, 0xf2, 0xf1, 0x99, 0xc8, 0xb9, 0xe6, - 0xef, 0xa1, 0x7f, 0x43, 0x0a, 0xbf, 0xc0, 0x25, 0xa8, 0x8c, 0x14, 0x7e, 0x10, 0x12, 0x7a, 0x19, - 0x29, 0xf4, 0x20, 0x24, 0xec, 0x32, 0x52, 0xd8, 0x41, 0x48, 0xc8, 0x65, 0xa4, 0x90, 0x83, 0x90, - 0x70, 0xcb, 0x48, 0xe1, 0x06, 0x21, 0xa1, 0x96, 0x91, 0x42, 0x0d, 0x42, 0xc2, 0x2c, 0x23, 0x85, - 0x19, 0x84, 0x84, 0x58, 0x46, 0x0a, 0x31, 0x08, 0x09, 0xaf, 0x8c, 0x14, 0x5e, 0x10, 0x12, 0x5a, - 0x27, 0xe5, 0xd0, 0x82, 0xb0, 0xb0, 0x3a, 0x29, 0x87, 0x15, 0x84, 0x85, 0xd4, 0x3d, 0x72, 0x48, - 0xf5, 0xdf, 0x7a, 0x65, 0xaa, 0x17, 0x0f, 0x05, 0xa2, 0xe9, 0xa4, 0x1c, 0x4d, 0x10, 0x16, 0x49, - 0x27, 0xe5, 0x48, 0x82, 0xb0, 0x28, 0x3a, 0x29, 0x47, 0x11, 0x84, 0x45, 0xd0, 0x4b, 0x72, 0x04, - 0xf9, 0x57, 0x7c, 0x32, 0xd2, 0x89, 0x62, 0x54, 0x04, 0xa9, 0x31, 0x22, 0x48, 0x8d, 0x11, 0x41, - 0x6a, 0x8c, 0x08, 0x52, 0x63, 0x44, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, - 0x20, 0x35, 0x4e, 0x04, 0xa9, 0xb1, 0x22, 0x48, 0xed, 0x16, 0x41, 0x27, 0xe5, 0x0b, 0x0f, 0x10, - 0x56, 0x90, 0x4e, 0xca, 0x27, 0x9f, 0xd1, 0x21, 0xa4, 0xc6, 0x0a, 0x21, 0xb5, 0x5b, 0x08, 0x7d, - 0x43, 0x85, 0x31, 0x21, 0x84, 0xd8, 0xf1, 0xd0, 0x5b, 0x55, 0x81, 0xce, 0xc5, 0xb8, 0x5f, 0x11, - 0x16, 0x53, 0xe7, 0x62, 0x9c, 0x51, 0x1f, 0x14, 0x67, 0x9d, 0x55, 0xa8, 0x14, 0xa3, 0x0a, 0x5d, - 0xf6, 0x62, 0xe8, 0x5c, 0x8c, 0x7b, 0x17, 0x9d, 0xb1, 0x77, 0xe1, 0xa0, 0x22, 0xf0, 0x68, 0xac, - 0x22, 0xb0, 0x1c, 0xab, 0x08, 0x5c, 0xf5, 0x3d, 0xf8, 0xc1, 0x04, 0x1c, 0xf5, 0x3d, 0x48, 0x3f, - 0x91, 0x5f, 0x44, 0xca, 0x04, 0x4e, 0xa8, 0x74, 0x7e, 0x6a, 0x13, 0x70, 0x63, 0x62, 0xb9, 0xa6, - 0xaf, 0x8b, 0x67, 0x55, 0xd9, 0xc3, 0x9e, 0xdf, 0x04, 0x3c, 0xce, 0xf6, 0x42, 0x4f, 0x82, 0xba, - 0x5c, 0x73, 0x48, 0xb5, 0x08, 0x7b, 0x6c, 0xc1, 0xc0, 0x64, 0xdd, 0x80, 0x3e, 0xc2, 0xee, 0x10, - 0xf7, 0xde, 0xce, 0x83, 0x8b, 0x06, 0x93, 0x94, 0x79, 0x49, 0x81, 0x69, 0x21, 0x94, 0xdf, 0x9a, - 0x13, 0x83, 0x4b, 0xb1, 0x4e, 0x0c, 0x84, 0x04, 0xf1, 0x4f, 0x0f, 0xee, 0xeb, 0x3c, 0xa8, 0x0e, - 0x66, 0x89, 0x7c, 0x92, 0xf0, 0x4b, 0x30, 0xec, 0xcf, 0x80, 0xbc, 0xb2, 0x2d, 0x45, 0x6f, 0x66, - 0x86, 0xa5, 0xe6, 0x92, 0xb4, 0x89, 0x76, 0x20, 0xcc, 0xcb, 0xd6, 0x4c, 0x16, 0x46, 0xca, 0xe2, - 0x9f, 0xee, 0x44, 0xed, 0x45, 0xa4, 0x70, 0x6b, 0x7e, 0xe3, 0xd3, 0x53, 0x3d, 0x99, 0x07, 0x60, - 0x30, 0xf8, 0xd7, 0x39, 0x12, 0xb0, 0x9f, 0x03, 0xb3, 0xc9, 0x97, 0x31, 0xf7, 0x1f, 0x28, 0x70, - 0x47, 0x90, 0xfd, 0xb1, 0xba, 0xbb, 0xbb, 0x6c, 0xe1, 0x9e, 0xfe, 0x21, 0x48, 0x21, 0xe6, 0x38, - 0xf6, 0xe3, 0x26, 0xec, 0x35, 0x32, 0x94, 0x7d, 0x8e, 0xfc, 0x6b, 0x78, 0x10, 0x69, 0x13, 0x84, - 0x3f, 0x76, 0x61, 0xe2, 0x5e, 0xe8, 0xa5, 0xf2, 0x45, 0xbd, 0x86, 0x24, 0xbd, 0x3e, 0x1b, 0xa2, - 0x17, 0x89, 0x23, 0xfd, 0xaa, 0xa0, 0x57, 0xe0, 0x6d, 0x35, 0x94, 0x7d, 0x8e, 0x07, 0x5f, 0x3e, - 0x85, 0xfb, 0x3f, 0x12, 0x51, 0xd1, 0x4a, 0xce, 0x40, 0xaa, 0x24, 0xf3, 0x84, 0xeb, 0x59, 0x84, - 0x64, 0xd9, 0xae, 0x91, 0x9f, 0x5d, 0x21, 0x3f, 0x8f, 0xcb, 0x8c, 0xcc, 0x7e, 0x2b, 0xf7, 0x14, - 0xa4, 0x0a, 0xbb, 0xf5, 0x46, 0xad, 0x8d, 0x2c, 0x76, 0x64, 0xcf, 0x76, 0xd0, 0x31, 0xc6, 0xf0, - 0x68, 0x99, 0x02, 0x8c, 0x96, 0x6d, 0x2b, 0xbf, 0xef, 0x06, 0xeb, 0xc6, 0x9c, 0x94, 0x22, 0xec, - 0xc8, 0x87, 0xfc, 0xbd, 0x07, 0x66, 0xc8, 0xf7, 0x7e, 0xfb, 0x95, 0x29, 0x65, 0xd3, 0xdb, 0x3e, - 0x5f, 0x85, 0x63, 0x2c, 0x7d, 0x3a, 0x44, 0x2d, 0x44, 0x89, 0xea, 0x67, 0xc7, 0xd4, 0x01, 0x71, - 0xcb, 0x58, 0x9c, 0x15, 0x2a, 0xee, 0xcd, 0x69, 0x86, 0x9b, 0xa2, 0x03, 0x35, 0x53, 0x0f, 0xa5, - 0x59, 0xa8, 0xb8, 0xb9, 0x28, 0x71, 0x92, 0x66, 0xf7, 0x40, 0xbf, 0x47, 0x0b, 0x44, 0x43, 0x30, - 0x53, 0x16, 0x66, 0x33, 0x30, 0x10, 0x48, 0x58, 0xbd, 0x17, 0x94, 0x9c, 0xd6, 0x83, 0xff, 0xcb, - 0x6b, 0x0a, 0xfe, 0xaf, 0xa0, 0x25, 0x66, 0xef, 0x85, 0x11, 0x69, 0xfb, 0x12, 0x53, 0x8a, 0x1a, - 0xe0, 0xff, 0x4a, 0xda, 0xc0, 0x44, 0xf2, 0x43, 0x7f, 0x3c, 0xd9, 0x33, 0x7b, 0x09, 0xf4, 0xce, - 0x8d, 0x4e, 0xbd, 0x0f, 0x12, 0x39, 0x2c, 0xf2, 0x18, 0x24, 0xf2, 0x79, 0x4d, 0x99, 0x18, 0xf9, - 0xf5, 0x4f, 0x4e, 0x0f, 0xe4, 0xc9, 0x9f, 0x1e, 0x5f, 0x43, 0x6e, 0x3e, 0xcf, 0xc0, 0x0f, 0xc3, - 0x1d, 0xa1, 0x1b, 0xa5, 0x18, 0x5f, 0x28, 0x50, 0x7c, 0xb1, 0xd8, 0x81, 0x2f, 0x16, 0x09, 0x5e, - 0xc9, 0xf2, 0x03, 0xe7, 0x9c, 0x1e, 0xb2, 0xc9, 0x98, 0xae, 0x05, 0x0e, 0xb8, 0x73, 0xd9, 0x87, - 0x19, 0x6f, 0x3e, 0x94, 0x17, 0x45, 0x1c, 0x58, 0xe7, 0xb3, 0x05, 0x86, 0x2f, 0x84, 0xe2, 0xb7, - 0xa5, 0x53, 0x55, 0x71, 0x85, 0x60, 0x42, 0x0a, 0x9e, 0xc2, 0xc5, 0x50, 0x21, 0xbb, 0x81, 0xbb, - 0xee, 0x45, 0x4f, 0xe1, 0x52, 0x28, 0x6f, 0x3d, 0xe2, 0xce, 0x57, 0x29, 0x7b, 0x9a, 0x2d, 0xf2, - 0xb9, 0x33, 0xfa, 0x1d, 0x3c, 0x47, 0x85, 0x0a, 0xcc, 0x0c, 0xc4, 0xb9, 0xb2, 0x05, 0x06, 0xc8, - 0x77, 0x05, 0x74, 0xb7, 0x12, 0x47, 0x66, 0x1f, 0x65, 0x42, 0x0a, 0x5d, 0x85, 0x44, 0x98, 0x8a, - 0xc3, 0xf3, 0x9b, 0x37, 0x6e, 0x4e, 0xf6, 0xbc, 0x7c, 0x73, 0xb2, 0xe7, 0x5f, 0x6f, 0x4e, 0xf6, - 0x7c, 0xe7, 0xe6, 0xa4, 0xf2, 0xbd, 0x9b, 0x93, 0xca, 0xf7, 0x6f, 0x4e, 0x2a, 0x3f, 0xbe, 0x39, - 0xa9, 0x3c, 0x77, 0x6b, 0x52, 0x79, 0xf1, 0xd6, 0xa4, 0xf2, 0xa5, 0x5b, 0x93, 0xca, 0xd7, 0x6e, - 0x4d, 0x2a, 0x2f, 0xdd, 0x9a, 0x54, 0x6e, 0xdc, 0x9a, 0xec, 0x79, 0xf9, 0xd6, 0x64, 0xcf, 0x77, - 0x6e, 0x4d, 0x2a, 0xdf, 0xbb, 0x35, 0xd9, 0xf3, 0xfd, 0x5b, 0x93, 0xca, 0x8f, 0x6f, 0x4d, 0xf6, - 0x3c, 0xf7, 0xea, 0xa4, 0xf2, 0xc2, 0xab, 0x93, 0x3d, 0x2f, 0xbe, 0x3a, 0xa9, 0xfc, 0x7f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xa5, 0x0b, 0x2b, 0x87, 0xb2, 0x64, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (x TheTestEnum) String() string { - s, ok := TheTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x AnotherTestEnum) String() string { - s, ok := AnotherTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x YetAnotherTestEnum) String() string { - s, ok := YetAnotherTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x YetYetAnotherTestEnum) String() string { - s, ok := YetYetAnotherTestEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x NestedDefinition_NestedEnum) String() string { - s, ok := NestedDefinition_NestedEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (this *NidOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptNative) - if !ok { - that2, ok := that.(NidOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptNative but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field8 != that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field9 != that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - if this.Field10 != that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - if this.Field11 != that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - if this.Field12 != that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptNative) - if !ok { - that2, ok := that.(NidOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - if this.Field2 != that1.Field2 { - return false - } - if this.Field3 != that1.Field3 { - return false - } - if this.Field4 != that1.Field4 { - return false - } - if this.Field5 != that1.Field5 { - return false - } - if this.Field6 != that1.Field6 { - return false - } - if this.Field7 != that1.Field7 { - return false - } - if this.Field8 != that1.Field8 { - return false - } - if this.Field9 != that1.Field9 { - return false - } - if this.Field10 != that1.Field10 { - return false - } - if this.Field11 != that1.Field11 { - return false - } - if this.Field12 != that1.Field12 { - return false - } - if this.Field13 != that1.Field13 { - return false - } - if this.Field14 != that1.Field14 { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNative) - if !ok { - that2, ok := that.(NinOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNative but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4) - } - } else if this.Field4 != nil { - return fmt.Errorf("this.Field4 == nil && that.Field4 != nil") - } else if that1.Field4 != nil { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5) - } - } else if this.Field5 != nil { - return fmt.Errorf("this.Field5 == nil && that.Field5 != nil") - } else if that1.Field5 != nil { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", *this.Field8, *that1.Field8) - } - } else if this.Field8 != nil { - return fmt.Errorf("this.Field8 == nil && that.Field8 != nil") - } else if that1.Field8 != nil { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", *this.Field9, *that1.Field9) - } - } else if this.Field9 != nil { - return fmt.Errorf("this.Field9 == nil && that.Field9 != nil") - } else if that1.Field9 != nil { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", *this.Field10, *that1.Field10) - } - } else if this.Field10 != nil { - return fmt.Errorf("this.Field10 == nil && that.Field10 != nil") - } else if that1.Field10 != nil { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", *this.Field11, *that1.Field11) - } - } else if this.Field11 != nil { - return fmt.Errorf("this.Field11 == nil && that.Field11 != nil") - } else if that1.Field11 != nil { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", *this.Field12, *that1.Field12) - } - } else if this.Field12 != nil { - return fmt.Errorf("this.Field12 == nil && that.Field12 != nil") - } else if that1.Field12 != nil { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNative) - if !ok { - that2, ok := that.(NinOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return false - } - } else if this.Field4 != nil { - return false - } else if that1.Field4 != nil { - return false - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return false - } - } else if this.Field5 != nil { - return false - } else if that1.Field5 != nil { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return false - } - } else if this.Field8 != nil { - return false - } else if that1.Field8 != nil { - return false - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return false - } - } else if this.Field9 != nil { - return false - } else if that1.Field9 != nil { - return false - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return false - } - } else if this.Field10 != nil { - return false - } else if that1.Field10 != nil { - return false - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return false - } - } else if this.Field11 != nil { - return false - } else if that1.Field11 != nil { - return false - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return false - } - } else if this.Field12 != nil { - return false - } else if that1.Field12 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepNative) - if !ok { - that2, ok := that.(NidRepNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepNative) - if !ok { - that2, ok := that.(NidRepNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepNative) - if !ok { - that2, ok := that.(NinRepNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepNative) - if !ok { - that2, ok := that.(NinRepNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepPackedNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepPackedNative) - if !ok { - that2, ok := that.(NidRepPackedNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepPackedNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepPackedNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepPackedNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepPackedNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepPackedNative) - if !ok { - that2, ok := that.(NidRepPackedNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepPackedNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepPackedNative) - if !ok { - that2, ok := that.(NinRepPackedNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepPackedNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepPackedNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepPackedNative but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field5) != len(that1.Field5) { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5)) - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field9) != len(that1.Field9) { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", len(this.Field9), len(that1.Field9)) - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return fmt.Errorf("Field9 this[%v](%v) Not Equal that[%v](%v)", i, this.Field9[i], i, that1.Field9[i]) - } - } - if len(this.Field10) != len(that1.Field10) { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", len(this.Field10), len(that1.Field10)) - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return fmt.Errorf("Field10 this[%v](%v) Not Equal that[%v](%v)", i, this.Field10[i], i, that1.Field10[i]) - } - } - if len(this.Field11) != len(that1.Field11) { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", len(this.Field11), len(that1.Field11)) - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return fmt.Errorf("Field11 this[%v](%v) Not Equal that[%v](%v)", i, this.Field11[i], i, that1.Field11[i]) - } - } - if len(this.Field12) != len(that1.Field12) { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", len(this.Field12), len(that1.Field12)) - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return fmt.Errorf("Field12 this[%v](%v) Not Equal that[%v](%v)", i, this.Field12[i], i, that1.Field12[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepPackedNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepPackedNative) - if !ok { - that2, ok := that.(NinRepPackedNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if this.Field4[i] != that1.Field4[i] { - return false - } - } - if len(this.Field5) != len(that1.Field5) { - return false - } - for i := range this.Field5 { - if this.Field5[i] != that1.Field5[i] { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if this.Field8[i] != that1.Field8[i] { - return false - } - } - if len(this.Field9) != len(that1.Field9) { - return false - } - for i := range this.Field9 { - if this.Field9[i] != that1.Field9[i] { - return false - } - } - if len(this.Field10) != len(that1.Field10) { - return false - } - for i := range this.Field10 { - if this.Field10[i] != that1.Field10[i] { - return false - } - } - if len(this.Field11) != len(that1.Field11) { - return false - } - for i := range this.Field11 { - if this.Field11[i] != that1.Field11[i] { - return false - } - } - if len(this.Field12) != len(that1.Field12) { - return false - } - for i := range this.Field12 { - if this.Field12[i] != that1.Field12[i] { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptStruct) - if !ok { - that2, ok := that.(NidOptStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptStruct but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(&that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !this.Field4.Equal(&that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if !this.Field8.Equal(&that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptStruct) - if !ok { - that2, ok := that.(NidOptStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - if this.Field2 != that1.Field2 { - return false - } - if !this.Field3.Equal(&that1.Field3) { - return false - } - if !this.Field4.Equal(&that1.Field4) { - return false - } - if this.Field6 != that1.Field6 { - return false - } - if this.Field7 != that1.Field7 { - return false - } - if !this.Field8.Equal(&that1.Field8) { - return false - } - if this.Field13 != that1.Field13 { - return false - } - if this.Field14 != that1.Field14 { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptStruct) - if !ok { - that2, ok := that.(NinOptStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptStruct but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !this.Field4.Equal(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if !this.Field8.Equal(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptStruct) - if !ok { - that2, ok := that.(NinOptStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !this.Field3.Equal(that1.Field3) { - return false - } - if !this.Field4.Equal(that1.Field4) { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if !this.Field8.Equal(that1.Field8) { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepStruct) - if !ok { - that2, ok := that.(NidRepStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepStruct but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if !this.Field3[i].Equal(&that1.Field3[i]) { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if !this.Field4[i].Equal(&that1.Field4[i]) { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if !this.Field8[i].Equal(&that1.Field8[i]) { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepStruct) - if !ok { - that2, ok := that.(NidRepStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if !this.Field3[i].Equal(&that1.Field3[i]) { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if !this.Field4[i].Equal(&that1.Field4[i]) { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if !this.Field8[i].Equal(&that1.Field8[i]) { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepStruct) - if !ok { - that2, ok := that.(NinRepStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepStruct but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if !this.Field3[i].Equal(that1.Field3[i]) { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if len(this.Field4) != len(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", len(this.Field4), len(that1.Field4)) - } - for i := range this.Field4 { - if !this.Field4[i].Equal(that1.Field4[i]) { - return fmt.Errorf("Field4 this[%v](%v) Not Equal that[%v](%v)", i, this.Field4[i], i, that1.Field4[i]) - } - } - if len(this.Field6) != len(that1.Field6) { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", len(this.Field6), len(that1.Field6)) - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return fmt.Errorf("Field6 this[%v](%v) Not Equal that[%v](%v)", i, this.Field6[i], i, that1.Field6[i]) - } - } - if len(this.Field7) != len(that1.Field7) { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7)) - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i]) - } - } - if len(this.Field8) != len(that1.Field8) { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", len(this.Field8), len(that1.Field8)) - } - for i := range this.Field8 { - if !this.Field8[i].Equal(that1.Field8[i]) { - return fmt.Errorf("Field8 this[%v](%v) Not Equal that[%v](%v)", i, this.Field8[i], i, that1.Field8[i]) - } - } - if len(this.Field13) != len(that1.Field13) { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", len(this.Field13), len(that1.Field13)) - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return fmt.Errorf("Field13 this[%v](%v) Not Equal that[%v](%v)", i, this.Field13[i], i, that1.Field13[i]) - } - } - if len(this.Field14) != len(that1.Field14) { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", len(this.Field14), len(that1.Field14)) - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return fmt.Errorf("Field14 this[%v](%v) Not Equal that[%v](%v)", i, this.Field14[i], i, that1.Field14[i]) - } - } - if len(this.Field15) != len(that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", len(this.Field15), len(that1.Field15)) - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return fmt.Errorf("Field15 this[%v](%v) Not Equal that[%v](%v)", i, this.Field15[i], i, that1.Field15[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepStruct) - if !ok { - that2, ok := that.(NinRepStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if !this.Field3[i].Equal(that1.Field3[i]) { - return false - } - } - if len(this.Field4) != len(that1.Field4) { - return false - } - for i := range this.Field4 { - if !this.Field4[i].Equal(that1.Field4[i]) { - return false - } - } - if len(this.Field6) != len(that1.Field6) { - return false - } - for i := range this.Field6 { - if this.Field6[i] != that1.Field6[i] { - return false - } - } - if len(this.Field7) != len(that1.Field7) { - return false - } - for i := range this.Field7 { - if this.Field7[i] != that1.Field7[i] { - return false - } - } - if len(this.Field8) != len(that1.Field8) { - return false - } - for i := range this.Field8 { - if !this.Field8[i].Equal(that1.Field8[i]) { - return false - } - } - if len(this.Field13) != len(that1.Field13) { - return false - } - for i := range this.Field13 { - if this.Field13[i] != that1.Field13[i] { - return false - } - } - if len(this.Field14) != len(that1.Field14) { - return false - } - for i := range this.Field14 { - if this.Field14[i] != that1.Field14[i] { - return false - } - } - if len(this.Field15) != len(that1.Field15) { - return false - } - for i := range this.Field15 { - if !bytes.Equal(this.Field15[i], that1.Field15[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidEmbeddedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidEmbeddedStruct) - if !ok { - that2, ok := that.(NidEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidEmbeddedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidEmbeddedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidEmbeddedStruct but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.Field200.Equal(&that1.Field200) { - return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200) - } - if this.Field210 != that1.Field210 { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidEmbeddedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidEmbeddedStruct) - if !ok { - that2, ok := that.(NidEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.Field200.Equal(&that1.Field200) { - return false - } - if this.Field210 != that1.Field210 { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinEmbeddedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinEmbeddedStruct) - if !ok { - that2, ok := that.(NinEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinEmbeddedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinEmbeddedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinEmbeddedStruct but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.Field200.Equal(that1.Field200) { - return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200) - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", *this.Field210, *that1.Field210) - } - } else if this.Field210 != nil { - return fmt.Errorf("this.Field210 == nil && that.Field210 != nil") - } else if that1.Field210 != nil { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinEmbeddedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinEmbeddedStruct) - if !ok { - that2, ok := that.(NinEmbeddedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.Field200.Equal(that1.Field200) { - return false - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return false - } - } else if this.Field210 != nil { - return false - } else if that1.Field210 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidNestedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidNestedStruct) - if !ok { - that2, ok := that.(NidNestedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidNestedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidNestedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidNestedStruct but is not nil && this == nil") - } - if !this.Field1.Equal(&that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if !this.Field2[i].Equal(&that1.Field2[i]) { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidNestedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidNestedStruct) - if !ok { - that2, ok := that.(NidNestedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(&that1.Field1) { - return false - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if !this.Field2[i].Equal(&that1.Field2[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinNestedStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinNestedStruct) - if !ok { - that2, ok := that.(NinNestedStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinNestedStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinNestedStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinNestedStruct but is not nil && this == nil") - } - if !this.Field1.Equal(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if !this.Field2[i].Equal(that1.Field2[i]) { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinNestedStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinNestedStruct) - if !ok { - that2, ok := that.(NinNestedStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(that1.Field1) { - return false - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if !this.Field2[i].Equal(that1.Field2[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptCustom) - if !ok { - that2, ok := that.(NidOptCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptCustom but is not nil && this == nil") - } - if !this.Id.Equal(that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", this.Id, that1.Id) - } - if !this.Value.Equal(that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptCustom) - if !ok { - that2, ok := that.(NidOptCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Id.Equal(that1.Id) { - return false - } - if !this.Value.Equal(that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomDash) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomDash) - if !ok { - that2, ok := that.(CustomDash) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomDash") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomDash but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomDash but is not nil && this == nil") - } - if that1.Value == nil { - if this.Value != nil { - return fmt.Errorf("this.Value != nil && that1.Value == nil") - } - } else if !this.Value.Equal(*that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomDash) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomDash) - if !ok { - that2, ok := that.(CustomDash) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Value == nil { - if this.Value != nil { - return false - } - } else if !this.Value.Equal(*that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptCustom) - if !ok { - that2, ok := that.(NinOptCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptCustom but is not nil && this == nil") - } - if that1.Id == nil { - if this.Id != nil { - return fmt.Errorf("this.Id != nil && that1.Id == nil") - } - } else if !this.Id.Equal(*that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", this.Id, that1.Id) - } - if that1.Value == nil { - if this.Value != nil { - return fmt.Errorf("this.Value != nil && that1.Value == nil") - } - } else if !this.Value.Equal(*that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptCustom) - if !ok { - that2, ok := that.(NinOptCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Id == nil { - if this.Id != nil { - return false - } - } else if !this.Id.Equal(*that1.Id) { - return false - } - if that1.Value == nil { - if this.Value != nil { - return false - } - } else if !this.Value.Equal(*that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepCustom) - if !ok { - that2, ok := that.(NidRepCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepCustom but is not nil && this == nil") - } - if len(this.Id) != len(that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", len(this.Id), len(that1.Id)) - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return fmt.Errorf("Id this[%v](%v) Not Equal that[%v](%v)", i, this.Id[i], i, that1.Id[i]) - } - } - if len(this.Value) != len(that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", len(this.Value), len(that1.Value)) - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return fmt.Errorf("Value this[%v](%v) Not Equal that[%v](%v)", i, this.Value[i], i, that1.Value[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepCustom) - if !ok { - that2, ok := that.(NidRepCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Id) != len(that1.Id) { - return false - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return false - } - } - if len(this.Value) != len(that1.Value) { - return false - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepCustom) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepCustom) - if !ok { - that2, ok := that.(NinRepCustom) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepCustom") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepCustom but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepCustom but is not nil && this == nil") - } - if len(this.Id) != len(that1.Id) { - return fmt.Errorf("Id this(%v) Not Equal that(%v)", len(this.Id), len(that1.Id)) - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return fmt.Errorf("Id this[%v](%v) Not Equal that[%v](%v)", i, this.Id[i], i, that1.Id[i]) - } - } - if len(this.Value) != len(that1.Value) { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", len(this.Value), len(that1.Value)) - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return fmt.Errorf("Value this[%v](%v) Not Equal that[%v](%v)", i, this.Value[i], i, that1.Value[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepCustom) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepCustom) - if !ok { - that2, ok := that.(NinRepCustom) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Id) != len(that1.Id) { - return false - } - for i := range this.Id { - if !this.Id[i].Equal(that1.Id[i]) { - return false - } - } - if len(this.Value) != len(that1.Value) { - return false - } - for i := range this.Value { - if !this.Value[i].Equal(that1.Value[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNativeUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNativeUnion) - if !ok { - that2, ok := that.(NinOptNativeUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNativeUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNativeUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNativeUnion but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4) - } - } else if this.Field4 != nil { - return fmt.Errorf("this.Field4 == nil && that.Field4 != nil") - } else if that1.Field4 != nil { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5) - } - } else if this.Field5 != nil { - return fmt.Errorf("this.Field5 == nil && that.Field5 != nil") - } else if that1.Field5 != nil { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNativeUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNativeUnion) - if !ok { - that2, ok := that.(NinOptNativeUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return false - } - } else if this.Field4 != nil { - return false - } else if that1.Field4 != nil { - return false - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return false - } - } else if this.Field5 != nil { - return false - } else if that1.Field5 != nil { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptStructUnion) - if !ok { - that2, ok := that.(NinOptStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptStructUnion but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !this.Field4.Equal(that1.Field4) { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptStructUnion) - if !ok { - that2, ok := that.(NinOptStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !this.Field3.Equal(that1.Field3) { - return false - } - if !this.Field4.Equal(that1.Field4) { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinEmbeddedStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinEmbeddedStructUnion) - if !ok { - that2, ok := that.(NinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinEmbeddedStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinEmbeddedStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinEmbeddedStructUnion but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.Field200.Equal(that1.Field200) { - return fmt.Errorf("Field200 this(%v) Not Equal that(%v)", this.Field200, that1.Field200) - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", *this.Field210, *that1.Field210) - } - } else if this.Field210 != nil { - return fmt.Errorf("this.Field210 == nil && that.Field210 != nil") - } else if that1.Field210 != nil { - return fmt.Errorf("Field210 this(%v) Not Equal that(%v)", this.Field210, that1.Field210) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinEmbeddedStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinEmbeddedStructUnion) - if !ok { - that2, ok := that.(NinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.Field200.Equal(that1.Field200) { - return false - } - if this.Field210 != nil && that1.Field210 != nil { - if *this.Field210 != *that1.Field210 { - return false - } - } else if this.Field210 != nil { - return false - } else if that1.Field210 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinNestedStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinNestedStructUnion) - if !ok { - that2, ok := that.(NinNestedStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinNestedStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinNestedStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinNestedStructUnion but is not nil && this == nil") - } - if !this.Field1.Equal(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !this.Field2.Equal(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !this.Field3.Equal(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinNestedStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinNestedStructUnion) - if !ok { - that2, ok := that.(NinNestedStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(that1.Field1) { - return false - } - if !this.Field2.Equal(that1.Field2) { - return false - } - if !this.Field3.Equal(that1.Field3) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Tree) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Tree) - if !ok { - that2, ok := that.(Tree) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Tree") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Tree but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Tree but is not nil && this == nil") - } - if !this.Or.Equal(that1.Or) { - return fmt.Errorf("Or this(%v) Not Equal that(%v)", this.Or, that1.Or) - } - if !this.And.Equal(that1.And) { - return fmt.Errorf("And this(%v) Not Equal that(%v)", this.And, that1.And) - } - if !this.Leaf.Equal(that1.Leaf) { - return fmt.Errorf("Leaf this(%v) Not Equal that(%v)", this.Leaf, that1.Leaf) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Tree) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Tree) - if !ok { - that2, ok := that.(Tree) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Or.Equal(that1.Or) { - return false - } - if !this.And.Equal(that1.And) { - return false - } - if !this.Leaf.Equal(that1.Leaf) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *OrBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OrBranch) - if !ok { - that2, ok := that.(OrBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OrBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OrBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OrBranch but is not nil && this == nil") - } - if !this.Left.Equal(&that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if !this.Right.Equal(&that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *OrBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OrBranch) - if !ok { - that2, ok := that.(OrBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(&that1.Left) { - return false - } - if !this.Right.Equal(&that1.Right) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AndBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AndBranch) - if !ok { - that2, ok := that.(AndBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AndBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AndBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AndBranch but is not nil && this == nil") - } - if !this.Left.Equal(&that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if !this.Right.Equal(&that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AndBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AndBranch) - if !ok { - that2, ok := that.(AndBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(&that1.Left) { - return false - } - if !this.Right.Equal(&that1.Right) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Leaf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Leaf) - if !ok { - that2, ok := that.(Leaf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Leaf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Leaf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Leaf but is not nil && this == nil") - } - if this.Value != that1.Value { - return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) - } - if this.StrValue != that1.StrValue { - return fmt.Errorf("StrValue this(%v) Not Equal that(%v)", this.StrValue, that1.StrValue) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Leaf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Leaf) - if !ok { - that2, ok := that.(Leaf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Value != that1.Value { - return false - } - if this.StrValue != that1.StrValue { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *DeepTree) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*DeepTree) - if !ok { - that2, ok := that.(DeepTree) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *DeepTree") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *DeepTree but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *DeepTree but is not nil && this == nil") - } - if !this.Down.Equal(that1.Down) { - return fmt.Errorf("Down this(%v) Not Equal that(%v)", this.Down, that1.Down) - } - if !this.And.Equal(that1.And) { - return fmt.Errorf("And this(%v) Not Equal that(%v)", this.And, that1.And) - } - if !this.Leaf.Equal(that1.Leaf) { - return fmt.Errorf("Leaf this(%v) Not Equal that(%v)", this.Leaf, that1.Leaf) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *DeepTree) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*DeepTree) - if !ok { - that2, ok := that.(DeepTree) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Down.Equal(that1.Down) { - return false - } - if !this.And.Equal(that1.And) { - return false - } - if !this.Leaf.Equal(that1.Leaf) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *ADeepBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ADeepBranch) - if !ok { - that2, ok := that.(ADeepBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ADeepBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ADeepBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ADeepBranch but is not nil && this == nil") - } - if !this.Down.Equal(&that1.Down) { - return fmt.Errorf("Down this(%v) Not Equal that(%v)", this.Down, that1.Down) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *ADeepBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ADeepBranch) - if !ok { - that2, ok := that.(ADeepBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Down.Equal(&that1.Down) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AndDeepBranch) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AndDeepBranch) - if !ok { - that2, ok := that.(AndDeepBranch) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AndDeepBranch") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AndDeepBranch but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AndDeepBranch but is not nil && this == nil") - } - if !this.Left.Equal(&that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if !this.Right.Equal(&that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AndDeepBranch) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AndDeepBranch) - if !ok { - that2, ok := that.(AndDeepBranch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(&that1.Left) { - return false - } - if !this.Right.Equal(&that1.Right) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *DeepLeaf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*DeepLeaf) - if !ok { - that2, ok := that.(DeepLeaf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *DeepLeaf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *DeepLeaf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *DeepLeaf but is not nil && this == nil") - } - if !this.Tree.Equal(&that1.Tree) { - return fmt.Errorf("Tree this(%v) Not Equal that(%v)", this.Tree, that1.Tree) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *DeepLeaf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*DeepLeaf) - if !ok { - that2, ok := that.(DeepLeaf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Tree.Equal(&that1.Tree) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Nil) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Nil) - if !ok { - that2, ok := that.(Nil) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Nil") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Nil but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Nil but is not nil && this == nil") - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Nil) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Nil) - if !ok { - that2, ok := that.(Nil) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptEnum) - if !ok { - that2, ok := that.(NidOptEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptEnum but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptEnum) - if !ok { - that2, ok := that.(NidOptEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptEnum) - if !ok { - that2, ok := that.(NinOptEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptEnum but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptEnum) - if !ok { - that2, ok := that.(NinOptEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepEnum) - if !ok { - that2, ok := that.(NidRepEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepEnum but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepEnum) - if !ok { - that2, ok := that.(NidRepEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepEnum) - if !ok { - that2, ok := that.(NinRepEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepEnum but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if len(this.Field2) != len(that1.Field2) { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2)) - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i]) - } - } - if len(this.Field3) != len(that1.Field3) { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", len(this.Field3), len(that1.Field3)) - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return fmt.Errorf("Field3 this[%v](%v) Not Equal that[%v](%v)", i, this.Field3[i], i, that1.Field3[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepEnum) - if !ok { - that2, ok := that.(NinRepEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if this.Field1[i] != that1.Field1[i] { - return false - } - } - if len(this.Field2) != len(that1.Field2) { - return false - } - for i := range this.Field2 { - if this.Field2[i] != that1.Field2[i] { - return false - } - } - if len(this.Field3) != len(that1.Field3) { - return false - } - for i := range this.Field3 { - if this.Field3[i] != that1.Field3[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptEnumDefault) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptEnumDefault) - if !ok { - that2, ok := that.(NinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptEnumDefault") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptEnumDefault but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptEnumDefault but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptEnumDefault) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptEnumDefault) - if !ok { - that2, ok := that.(NinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AnotherNinOptEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AnotherNinOptEnum) - if !ok { - that2, ok := that.(AnotherNinOptEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AnotherNinOptEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AnotherNinOptEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AnotherNinOptEnum but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AnotherNinOptEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AnotherNinOptEnum) - if !ok { - that2, ok := that.(AnotherNinOptEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AnotherNinOptEnumDefault) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AnotherNinOptEnumDefault) - if !ok { - that2, ok := that.(AnotherNinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AnotherNinOptEnumDefault") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AnotherNinOptEnumDefault but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AnotherNinOptEnumDefault but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AnotherNinOptEnumDefault) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AnotherNinOptEnumDefault) - if !ok { - that2, ok := that.(AnotherNinOptEnumDefault) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Timer) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Timer) - if !ok { - that2, ok := that.(Timer) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Timer") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Timer but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Timer but is not nil && this == nil") - } - if this.Time1 != that1.Time1 { - return fmt.Errorf("Time1 this(%v) Not Equal that(%v)", this.Time1, that1.Time1) - } - if this.Time2 != that1.Time2 { - return fmt.Errorf("Time2 this(%v) Not Equal that(%v)", this.Time2, that1.Time2) - } - if !bytes.Equal(this.Data, that1.Data) { - return fmt.Errorf("Data this(%v) Not Equal that(%v)", this.Data, that1.Data) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Timer) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Timer) - if !ok { - that2, ok := that.(Timer) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Time1 != that1.Time1 { - return false - } - if this.Time2 != that1.Time2 { - return false - } - if !bytes.Equal(this.Data, that1.Data) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *MyExtendable) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MyExtendable) - if !ok { - that2, ok := that.(MyExtendable) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MyExtendable") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MyExtendable but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MyExtendable but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) - } - } else { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *MyExtendable) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MyExtendable) - if !ok { - that2, ok := that.(MyExtendable) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return false - } - } else { - return false - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *OtherExtenable) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OtherExtenable) - if !ok { - that2, ok := that.(OtherExtenable) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OtherExtenable") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OtherExtenable but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OtherExtenable but is not nil && this == nil") - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if !this.M.Equal(that1.M) { - return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return fmt.Errorf("XXX_InternalExtensions this[%v](%v) Not Equal that[%v](%v)", k, thismap[k], k, thatmap[k]) - } - } else { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In that", k) - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return fmt.Errorf("XXX_InternalExtensions[%v] Not In this", k) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *OtherExtenable) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OtherExtenable) - if !ok { - that2, ok := that.(OtherExtenable) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if !this.M.Equal(that1.M) { - return false - } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) - for k, v := range thismap { - if v2, ok := thatmap[k]; ok { - if !v.Equal(&v2) { - return false - } - } else { - return false - } - } - for k := range thatmap { - if _, ok := thismap[k]; !ok { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedDefinition) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedDefinition) - if !ok { - that2, ok := that.(NestedDefinition) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedDefinition") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedDefinition but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedDefinition but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.EnumField != nil && that1.EnumField != nil { - if *this.EnumField != *that1.EnumField { - return fmt.Errorf("EnumField this(%v) Not Equal that(%v)", *this.EnumField, *that1.EnumField) - } - } else if this.EnumField != nil { - return fmt.Errorf("this.EnumField == nil && that.EnumField != nil") - } else if that1.EnumField != nil { - return fmt.Errorf("EnumField this(%v) Not Equal that(%v)", this.EnumField, that1.EnumField) - } - if !this.NNM.Equal(that1.NNM) { - return fmt.Errorf("NNM this(%v) Not Equal that(%v)", this.NNM, that1.NNM) - } - if !this.NM.Equal(that1.NM) { - return fmt.Errorf("NM this(%v) Not Equal that(%v)", this.NM, that1.NM) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedDefinition) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedDefinition) - if !ok { - that2, ok := that.(NestedDefinition) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.EnumField != nil && that1.EnumField != nil { - if *this.EnumField != *that1.EnumField { - return false - } - } else if this.EnumField != nil { - return false - } else if that1.EnumField != nil { - return false - } - if !this.NNM.Equal(that1.NNM) { - return false - } - if !this.NM.Equal(that1.NM) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedDefinition_NestedMessage) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedDefinition_NestedMessage) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedDefinition_NestedMessage") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedDefinition_NestedMessage but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedDefinition_NestedMessage but is not nil && this == nil") - } - if this.NestedField1 != nil && that1.NestedField1 != nil { - if *this.NestedField1 != *that1.NestedField1 { - return fmt.Errorf("NestedField1 this(%v) Not Equal that(%v)", *this.NestedField1, *that1.NestedField1) - } - } else if this.NestedField1 != nil { - return fmt.Errorf("this.NestedField1 == nil && that.NestedField1 != nil") - } else if that1.NestedField1 != nil { - return fmt.Errorf("NestedField1 this(%v) Not Equal that(%v)", this.NestedField1, that1.NestedField1) - } - if !this.NNM.Equal(that1.NNM) { - return fmt.Errorf("NNM this(%v) Not Equal that(%v)", this.NNM, that1.NNM) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedDefinition_NestedMessage) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedDefinition_NestedMessage) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.NestedField1 != nil && that1.NestedField1 != nil { - if *this.NestedField1 != *that1.NestedField1 { - return false - } - } else if this.NestedField1 != nil { - return false - } else if that1.NestedField1 != nil { - return false - } - if !this.NNM.Equal(that1.NNM) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedDefinition_NestedMessage_NestedNestedMsg") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedDefinition_NestedMessage_NestedNestedMsg but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedDefinition_NestedMessage_NestedNestedMsg but is not nil && this == nil") - } - if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil { - if *this.NestedNestedField1 != *that1.NestedNestedField1 { - return fmt.Errorf("NestedNestedField1 this(%v) Not Equal that(%v)", *this.NestedNestedField1, *that1.NestedNestedField1) - } - } else if this.NestedNestedField1 != nil { - return fmt.Errorf("this.NestedNestedField1 == nil && that.NestedNestedField1 != nil") - } else if that1.NestedNestedField1 != nil { - return fmt.Errorf("NestedNestedField1 this(%v) Not Equal that(%v)", this.NestedNestedField1, that1.NestedNestedField1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedDefinition_NestedMessage_NestedNestedMsg) - if !ok { - that2, ok := that.(NestedDefinition_NestedMessage_NestedNestedMsg) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.NestedNestedField1 != nil && that1.NestedNestedField1 != nil { - if *this.NestedNestedField1 != *that1.NestedNestedField1 { - return false - } - } else if this.NestedNestedField1 != nil { - return false - } else if that1.NestedNestedField1 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NestedScope) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NestedScope) - if !ok { - that2, ok := that.(NestedScope) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NestedScope") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NestedScope but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NestedScope but is not nil && this == nil") - } - if !this.A.Equal(that1.A) { - return fmt.Errorf("A this(%v) Not Equal that(%v)", this.A, that1.A) - } - if this.B != nil && that1.B != nil { - if *this.B != *that1.B { - return fmt.Errorf("B this(%v) Not Equal that(%v)", *this.B, *that1.B) - } - } else if this.B != nil { - return fmt.Errorf("this.B == nil && that.B != nil") - } else if that1.B != nil { - return fmt.Errorf("B this(%v) Not Equal that(%v)", this.B, that1.B) - } - if !this.C.Equal(that1.C) { - return fmt.Errorf("C this(%v) Not Equal that(%v)", this.C, that1.C) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NestedScope) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NestedScope) - if !ok { - that2, ok := that.(NestedScope) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.A.Equal(that1.A) { - return false - } - if this.B != nil && that1.B != nil { - if *this.B != *that1.B { - return false - } - } else if this.B != nil { - return false - } else if that1.B != nil { - return false - } - if !this.C.Equal(that1.C) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNativeDefault) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNativeDefault) - if !ok { - that2, ok := that.(NinOptNativeDefault) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNativeDefault") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNativeDefault but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNativeDefault but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3) - } - } else if this.Field3 != nil { - return fmt.Errorf("this.Field3 == nil && that.Field3 != nil") - } else if that1.Field3 != nil { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4) - } - } else if this.Field4 != nil { - return fmt.Errorf("this.Field4 == nil && that.Field4 != nil") - } else if that1.Field4 != nil { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", *this.Field5, *that1.Field5) - } - } else if this.Field5 != nil { - return fmt.Errorf("this.Field5 == nil && that.Field5 != nil") - } else if that1.Field5 != nil { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6) - } - } else if this.Field6 != nil { - return fmt.Errorf("this.Field6 == nil && that.Field6 != nil") - } else if that1.Field6 != nil { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", *this.Field7, *that1.Field7) - } - } else if this.Field7 != nil { - return fmt.Errorf("this.Field7 == nil && that.Field7 != nil") - } else if that1.Field7 != nil { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", *this.Field8, *that1.Field8) - } - } else if this.Field8 != nil { - return fmt.Errorf("this.Field8 == nil && that.Field8 != nil") - } else if that1.Field8 != nil { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", *this.Field9, *that1.Field9) - } - } else if this.Field9 != nil { - return fmt.Errorf("this.Field9 == nil && that.Field9 != nil") - } else if that1.Field9 != nil { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", *this.Field10, *that1.Field10) - } - } else if this.Field10 != nil { - return fmt.Errorf("this.Field10 == nil && that.Field10 != nil") - } else if that1.Field10 != nil { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", *this.Field11, *that1.Field11) - } - } else if this.Field11 != nil { - return fmt.Errorf("this.Field11 == nil && that.Field11 != nil") - } else if that1.Field11 != nil { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", *this.Field12, *that1.Field12) - } - } else if this.Field12 != nil { - return fmt.Errorf("this.Field12 == nil && that.Field12 != nil") - } else if that1.Field12 != nil { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", *this.Field13, *that1.Field13) - } - } else if this.Field13 != nil { - return fmt.Errorf("this.Field13 == nil && that.Field13 != nil") - } else if that1.Field13 != nil { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", *this.Field14, *that1.Field14) - } - } else if this.Field14 != nil { - return fmt.Errorf("this.Field14 == nil && that.Field14 != nil") - } else if that1.Field14 != nil { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNativeDefault) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNativeDefault) - if !ok { - that2, ok := that.(NinOptNativeDefault) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if this.Field3 != nil && that1.Field3 != nil { - if *this.Field3 != *that1.Field3 { - return false - } - } else if this.Field3 != nil { - return false - } else if that1.Field3 != nil { - return false - } - if this.Field4 != nil && that1.Field4 != nil { - if *this.Field4 != *that1.Field4 { - return false - } - } else if this.Field4 != nil { - return false - } else if that1.Field4 != nil { - return false - } - if this.Field5 != nil && that1.Field5 != nil { - if *this.Field5 != *that1.Field5 { - return false - } - } else if this.Field5 != nil { - return false - } else if that1.Field5 != nil { - return false - } - if this.Field6 != nil && that1.Field6 != nil { - if *this.Field6 != *that1.Field6 { - return false - } - } else if this.Field6 != nil { - return false - } else if that1.Field6 != nil { - return false - } - if this.Field7 != nil && that1.Field7 != nil { - if *this.Field7 != *that1.Field7 { - return false - } - } else if this.Field7 != nil { - return false - } else if that1.Field7 != nil { - return false - } - if this.Field8 != nil && that1.Field8 != nil { - if *this.Field8 != *that1.Field8 { - return false - } - } else if this.Field8 != nil { - return false - } else if that1.Field8 != nil { - return false - } - if this.Field9 != nil && that1.Field9 != nil { - if *this.Field9 != *that1.Field9 { - return false - } - } else if this.Field9 != nil { - return false - } else if that1.Field9 != nil { - return false - } - if this.Field10 != nil && that1.Field10 != nil { - if *this.Field10 != *that1.Field10 { - return false - } - } else if this.Field10 != nil { - return false - } else if that1.Field10 != nil { - return false - } - if this.Field11 != nil && that1.Field11 != nil { - if *this.Field11 != *that1.Field11 { - return false - } - } else if this.Field11 != nil { - return false - } else if that1.Field11 != nil { - return false - } - if this.Field12 != nil && that1.Field12 != nil { - if *this.Field12 != *that1.Field12 { - return false - } - } else if this.Field12 != nil { - return false - } else if that1.Field12 != nil { - return false - } - if this.Field13 != nil && that1.Field13 != nil { - if *this.Field13 != *that1.Field13 { - return false - } - } else if this.Field13 != nil { - return false - } else if that1.Field13 != nil { - return false - } - if this.Field14 != nil && that1.Field14 != nil { - if *this.Field14 != *that1.Field14 { - return false - } - } else if this.Field14 != nil { - return false - } else if that1.Field14 != nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomContainer) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomContainer) - if !ok { - that2, ok := that.(CustomContainer) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomContainer") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomContainer but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomContainer but is not nil && this == nil") - } - if !this.CustomStruct.Equal(&that1.CustomStruct) { - return fmt.Errorf("CustomStruct this(%v) Not Equal that(%v)", this.CustomStruct, that1.CustomStruct) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomContainer) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomContainer) - if !ok { - that2, ok := that.(CustomContainer) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.CustomStruct.Equal(&that1.CustomStruct) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNidOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNidOptNative) - if !ok { - that2, ok := that.(CustomNameNidOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNidOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNidOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNidOptNative but is not nil && this == nil") - } - if this.FieldA != that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if this.FieldC != that1.FieldC { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC) - } - if this.FieldD != that1.FieldD { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", this.FieldD, that1.FieldD) - } - if this.FieldE != that1.FieldE { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE) - } - if this.FieldF != that1.FieldF { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF) - } - if this.FieldG != that1.FieldG { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG) - } - if this.FieldH != that1.FieldH { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH) - } - if this.FieldI != that1.FieldI { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI) - } - if this.FieldJ != that1.FieldJ { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ) - } - if this.FieldK != that1.FieldK { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", this.FieldK, that1.FieldK) - } - if this.FieldL != that1.FieldL { - return fmt.Errorf("FieldL this(%v) Not Equal that(%v)", this.FieldL, that1.FieldL) - } - if this.FieldM != that1.FieldM { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", this.FieldM, that1.FieldM) - } - if this.FieldN != that1.FieldN { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", this.FieldN, that1.FieldN) - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", this.FieldO, that1.FieldO) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNidOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNidOptNative) - if !ok { - that2, ok := that.(CustomNameNidOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != that1.FieldA { - return false - } - if this.FieldB != that1.FieldB { - return false - } - if this.FieldC != that1.FieldC { - return false - } - if this.FieldD != that1.FieldD { - return false - } - if this.FieldE != that1.FieldE { - return false - } - if this.FieldF != that1.FieldF { - return false - } - if this.FieldG != that1.FieldG { - return false - } - if this.FieldH != that1.FieldH { - return false - } - if this.FieldI != that1.FieldI { - return false - } - if this.FieldJ != that1.FieldJ { - return false - } - if this.FieldK != that1.FieldK { - return false - } - if this.FieldL != that1.FieldL { - return false - } - if this.FieldM != that1.FieldM { - return false - } - if this.FieldN != that1.FieldN { - return false - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinOptNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinOptNative) - if !ok { - that2, ok := that.(CustomNameNinOptNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinOptNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinOptNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinOptNative but is not nil && this == nil") - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA) - } - } else if this.FieldA != nil { - return fmt.Errorf("this.FieldA == nil && that.FieldA != nil") - } else if that1.FieldA != nil { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB) - } - } else if this.FieldB != nil { - return fmt.Errorf("this.FieldB == nil && that.FieldB != nil") - } else if that1.FieldB != nil { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if this.FieldC != nil && that1.FieldC != nil { - if *this.FieldC != *that1.FieldC { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", *this.FieldC, *that1.FieldC) - } - } else if this.FieldC != nil { - return fmt.Errorf("this.FieldC == nil && that.FieldC != nil") - } else if that1.FieldC != nil { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC) - } - if this.FieldD != nil && that1.FieldD != nil { - if *this.FieldD != *that1.FieldD { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", *this.FieldD, *that1.FieldD) - } - } else if this.FieldD != nil { - return fmt.Errorf("this.FieldD == nil && that.FieldD != nil") - } else if that1.FieldD != nil { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", this.FieldD, that1.FieldD) - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", *this.FieldE, *that1.FieldE) - } - } else if this.FieldE != nil { - return fmt.Errorf("this.FieldE == nil && that.FieldE != nil") - } else if that1.FieldE != nil { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE) - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", *this.FieldF, *that1.FieldF) - } - } else if this.FieldF != nil { - return fmt.Errorf("this.FieldF == nil && that.FieldF != nil") - } else if that1.FieldF != nil { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF) - } - if this.FieldG != nil && that1.FieldG != nil { - if *this.FieldG != *that1.FieldG { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", *this.FieldG, *that1.FieldG) - } - } else if this.FieldG != nil { - return fmt.Errorf("this.FieldG == nil && that.FieldG != nil") - } else if that1.FieldG != nil { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG) - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", *this.FieldH, *that1.FieldH) - } - } else if this.FieldH != nil { - return fmt.Errorf("this.FieldH == nil && that.FieldH != nil") - } else if that1.FieldH != nil { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH) - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", *this.FieldI, *that1.FieldI) - } - } else if this.FieldI != nil { - return fmt.Errorf("this.FieldI == nil && that.FieldI != nil") - } else if that1.FieldI != nil { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI) - } - if this.FieldJ != nil && that1.FieldJ != nil { - if *this.FieldJ != *that1.FieldJ { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", *this.FieldJ, *that1.FieldJ) - } - } else if this.FieldJ != nil { - return fmt.Errorf("this.FieldJ == nil && that.FieldJ != nil") - } else if that1.FieldJ != nil { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ) - } - if this.FieldK != nil && that1.FieldK != nil { - if *this.FieldK != *that1.FieldK { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", *this.FieldK, *that1.FieldK) - } - } else if this.FieldK != nil { - return fmt.Errorf("this.FieldK == nil && that.FieldK != nil") - } else if that1.FieldK != nil { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", this.FieldK, that1.FieldK) - } - if this.FielL != nil && that1.FielL != nil { - if *this.FielL != *that1.FielL { - return fmt.Errorf("FielL this(%v) Not Equal that(%v)", *this.FielL, *that1.FielL) - } - } else if this.FielL != nil { - return fmt.Errorf("this.FielL == nil && that.FielL != nil") - } else if that1.FielL != nil { - return fmt.Errorf("FielL this(%v) Not Equal that(%v)", this.FielL, that1.FielL) - } - if this.FieldM != nil && that1.FieldM != nil { - if *this.FieldM != *that1.FieldM { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", *this.FieldM, *that1.FieldM) - } - } else if this.FieldM != nil { - return fmt.Errorf("this.FieldM == nil && that.FieldM != nil") - } else if that1.FieldM != nil { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", this.FieldM, that1.FieldM) - } - if this.FieldN != nil && that1.FieldN != nil { - if *this.FieldN != *that1.FieldN { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", *this.FieldN, *that1.FieldN) - } - } else if this.FieldN != nil { - return fmt.Errorf("this.FieldN == nil && that.FieldN != nil") - } else if that1.FieldN != nil { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", this.FieldN, that1.FieldN) - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", this.FieldO, that1.FieldO) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinOptNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinOptNative) - if !ok { - that2, ok := that.(CustomNameNinOptNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return false - } - } else if this.FieldA != nil { - return false - } else if that1.FieldA != nil { - return false - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return false - } - } else if this.FieldB != nil { - return false - } else if that1.FieldB != nil { - return false - } - if this.FieldC != nil && that1.FieldC != nil { - if *this.FieldC != *that1.FieldC { - return false - } - } else if this.FieldC != nil { - return false - } else if that1.FieldC != nil { - return false - } - if this.FieldD != nil && that1.FieldD != nil { - if *this.FieldD != *that1.FieldD { - return false - } - } else if this.FieldD != nil { - return false - } else if that1.FieldD != nil { - return false - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return false - } - } else if this.FieldE != nil { - return false - } else if that1.FieldE != nil { - return false - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return false - } - } else if this.FieldF != nil { - return false - } else if that1.FieldF != nil { - return false - } - if this.FieldG != nil && that1.FieldG != nil { - if *this.FieldG != *that1.FieldG { - return false - } - } else if this.FieldG != nil { - return false - } else if that1.FieldG != nil { - return false - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return false - } - } else if this.FieldH != nil { - return false - } else if that1.FieldH != nil { - return false - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return false - } - } else if this.FieldI != nil { - return false - } else if that1.FieldI != nil { - return false - } - if this.FieldJ != nil && that1.FieldJ != nil { - if *this.FieldJ != *that1.FieldJ { - return false - } - } else if this.FieldJ != nil { - return false - } else if that1.FieldJ != nil { - return false - } - if this.FieldK != nil && that1.FieldK != nil { - if *this.FieldK != *that1.FieldK { - return false - } - } else if this.FieldK != nil { - return false - } else if that1.FieldK != nil { - return false - } - if this.FielL != nil && that1.FielL != nil { - if *this.FielL != *that1.FielL { - return false - } - } else if this.FielL != nil { - return false - } else if that1.FielL != nil { - return false - } - if this.FieldM != nil && that1.FieldM != nil { - if *this.FieldM != *that1.FieldM { - return false - } - } else if this.FieldM != nil { - return false - } else if that1.FieldM != nil { - return false - } - if this.FieldN != nil && that1.FieldN != nil { - if *this.FieldN != *that1.FieldN { - return false - } - } else if this.FieldN != nil { - return false - } else if that1.FieldN != nil { - return false - } - if !bytes.Equal(this.FieldO, that1.FieldO) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinRepNative) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinRepNative) - if !ok { - that2, ok := that.(CustomNameNinRepNative) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinRepNative") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinRepNative but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinRepNative but is not nil && this == nil") - } - if len(this.FieldA) != len(that1.FieldA) { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", len(this.FieldA), len(that1.FieldA)) - } - for i := range this.FieldA { - if this.FieldA[i] != that1.FieldA[i] { - return fmt.Errorf("FieldA this[%v](%v) Not Equal that[%v](%v)", i, this.FieldA[i], i, that1.FieldA[i]) - } - } - if len(this.FieldB) != len(that1.FieldB) { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", len(this.FieldB), len(that1.FieldB)) - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return fmt.Errorf("FieldB this[%v](%v) Not Equal that[%v](%v)", i, this.FieldB[i], i, that1.FieldB[i]) - } - } - if len(this.FieldC) != len(that1.FieldC) { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", len(this.FieldC), len(that1.FieldC)) - } - for i := range this.FieldC { - if this.FieldC[i] != that1.FieldC[i] { - return fmt.Errorf("FieldC this[%v](%v) Not Equal that[%v](%v)", i, this.FieldC[i], i, that1.FieldC[i]) - } - } - if len(this.FieldD) != len(that1.FieldD) { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD)) - } - for i := range this.FieldD { - if this.FieldD[i] != that1.FieldD[i] { - return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i]) - } - } - if len(this.FieldE) != len(that1.FieldE) { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", len(this.FieldE), len(that1.FieldE)) - } - for i := range this.FieldE { - if this.FieldE[i] != that1.FieldE[i] { - return fmt.Errorf("FieldE this[%v](%v) Not Equal that[%v](%v)", i, this.FieldE[i], i, that1.FieldE[i]) - } - } - if len(this.FieldF) != len(that1.FieldF) { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", len(this.FieldF), len(that1.FieldF)) - } - for i := range this.FieldF { - if this.FieldF[i] != that1.FieldF[i] { - return fmt.Errorf("FieldF this[%v](%v) Not Equal that[%v](%v)", i, this.FieldF[i], i, that1.FieldF[i]) - } - } - if len(this.FieldG) != len(that1.FieldG) { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", len(this.FieldG), len(that1.FieldG)) - } - for i := range this.FieldG { - if this.FieldG[i] != that1.FieldG[i] { - return fmt.Errorf("FieldG this[%v](%v) Not Equal that[%v](%v)", i, this.FieldG[i], i, that1.FieldG[i]) - } - } - if len(this.FieldH) != len(that1.FieldH) { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", len(this.FieldH), len(that1.FieldH)) - } - for i := range this.FieldH { - if this.FieldH[i] != that1.FieldH[i] { - return fmt.Errorf("FieldH this[%v](%v) Not Equal that[%v](%v)", i, this.FieldH[i], i, that1.FieldH[i]) - } - } - if len(this.FieldI) != len(that1.FieldI) { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", len(this.FieldI), len(that1.FieldI)) - } - for i := range this.FieldI { - if this.FieldI[i] != that1.FieldI[i] { - return fmt.Errorf("FieldI this[%v](%v) Not Equal that[%v](%v)", i, this.FieldI[i], i, that1.FieldI[i]) - } - } - if len(this.FieldJ) != len(that1.FieldJ) { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", len(this.FieldJ), len(that1.FieldJ)) - } - for i := range this.FieldJ { - if this.FieldJ[i] != that1.FieldJ[i] { - return fmt.Errorf("FieldJ this[%v](%v) Not Equal that[%v](%v)", i, this.FieldJ[i], i, that1.FieldJ[i]) - } - } - if len(this.FieldK) != len(that1.FieldK) { - return fmt.Errorf("FieldK this(%v) Not Equal that(%v)", len(this.FieldK), len(that1.FieldK)) - } - for i := range this.FieldK { - if this.FieldK[i] != that1.FieldK[i] { - return fmt.Errorf("FieldK this[%v](%v) Not Equal that[%v](%v)", i, this.FieldK[i], i, that1.FieldK[i]) - } - } - if len(this.FieldL) != len(that1.FieldL) { - return fmt.Errorf("FieldL this(%v) Not Equal that(%v)", len(this.FieldL), len(that1.FieldL)) - } - for i := range this.FieldL { - if this.FieldL[i] != that1.FieldL[i] { - return fmt.Errorf("FieldL this[%v](%v) Not Equal that[%v](%v)", i, this.FieldL[i], i, that1.FieldL[i]) - } - } - if len(this.FieldM) != len(that1.FieldM) { - return fmt.Errorf("FieldM this(%v) Not Equal that(%v)", len(this.FieldM), len(that1.FieldM)) - } - for i := range this.FieldM { - if this.FieldM[i] != that1.FieldM[i] { - return fmt.Errorf("FieldM this[%v](%v) Not Equal that[%v](%v)", i, this.FieldM[i], i, that1.FieldM[i]) - } - } - if len(this.FieldN) != len(that1.FieldN) { - return fmt.Errorf("FieldN this(%v) Not Equal that(%v)", len(this.FieldN), len(that1.FieldN)) - } - for i := range this.FieldN { - if this.FieldN[i] != that1.FieldN[i] { - return fmt.Errorf("FieldN this[%v](%v) Not Equal that[%v](%v)", i, this.FieldN[i], i, that1.FieldN[i]) - } - } - if len(this.FieldO) != len(that1.FieldO) { - return fmt.Errorf("FieldO this(%v) Not Equal that(%v)", len(this.FieldO), len(that1.FieldO)) - } - for i := range this.FieldO { - if !bytes.Equal(this.FieldO[i], that1.FieldO[i]) { - return fmt.Errorf("FieldO this[%v](%v) Not Equal that[%v](%v)", i, this.FieldO[i], i, that1.FieldO[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinRepNative) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinRepNative) - if !ok { - that2, ok := that.(CustomNameNinRepNative) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.FieldA) != len(that1.FieldA) { - return false - } - for i := range this.FieldA { - if this.FieldA[i] != that1.FieldA[i] { - return false - } - } - if len(this.FieldB) != len(that1.FieldB) { - return false - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return false - } - } - if len(this.FieldC) != len(that1.FieldC) { - return false - } - for i := range this.FieldC { - if this.FieldC[i] != that1.FieldC[i] { - return false - } - } - if len(this.FieldD) != len(that1.FieldD) { - return false - } - for i := range this.FieldD { - if this.FieldD[i] != that1.FieldD[i] { - return false - } - } - if len(this.FieldE) != len(that1.FieldE) { - return false - } - for i := range this.FieldE { - if this.FieldE[i] != that1.FieldE[i] { - return false - } - } - if len(this.FieldF) != len(that1.FieldF) { - return false - } - for i := range this.FieldF { - if this.FieldF[i] != that1.FieldF[i] { - return false - } - } - if len(this.FieldG) != len(that1.FieldG) { - return false - } - for i := range this.FieldG { - if this.FieldG[i] != that1.FieldG[i] { - return false - } - } - if len(this.FieldH) != len(that1.FieldH) { - return false - } - for i := range this.FieldH { - if this.FieldH[i] != that1.FieldH[i] { - return false - } - } - if len(this.FieldI) != len(that1.FieldI) { - return false - } - for i := range this.FieldI { - if this.FieldI[i] != that1.FieldI[i] { - return false - } - } - if len(this.FieldJ) != len(that1.FieldJ) { - return false - } - for i := range this.FieldJ { - if this.FieldJ[i] != that1.FieldJ[i] { - return false - } - } - if len(this.FieldK) != len(that1.FieldK) { - return false - } - for i := range this.FieldK { - if this.FieldK[i] != that1.FieldK[i] { - return false - } - } - if len(this.FieldL) != len(that1.FieldL) { - return false - } - for i := range this.FieldL { - if this.FieldL[i] != that1.FieldL[i] { - return false - } - } - if len(this.FieldM) != len(that1.FieldM) { - return false - } - for i := range this.FieldM { - if this.FieldM[i] != that1.FieldM[i] { - return false - } - } - if len(this.FieldN) != len(that1.FieldN) { - return false - } - for i := range this.FieldN { - if this.FieldN[i] != that1.FieldN[i] { - return false - } - } - if len(this.FieldO) != len(that1.FieldO) { - return false - } - for i := range this.FieldO { - if !bytes.Equal(this.FieldO[i], that1.FieldO[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinStruct) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinStruct) - if !ok { - that2, ok := that.(CustomNameNinStruct) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinStruct") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinStruct but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinStruct but is not nil && this == nil") - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA) - } - } else if this.FieldA != nil { - return fmt.Errorf("this.FieldA == nil && that.FieldA != nil") - } else if that1.FieldA != nil { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB) - } - } else if this.FieldB != nil { - return fmt.Errorf("this.FieldB == nil && that.FieldB != nil") - } else if that1.FieldB != nil { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if !this.FieldC.Equal(that1.FieldC) { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", this.FieldC, that1.FieldC) - } - if len(this.FieldD) != len(that1.FieldD) { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD)) - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i]) - } - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", *this.FieldE, *that1.FieldE) - } - } else if this.FieldE != nil { - return fmt.Errorf("this.FieldE == nil && that.FieldE != nil") - } else if that1.FieldE != nil { - return fmt.Errorf("FieldE this(%v) Not Equal that(%v)", this.FieldE, that1.FieldE) - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", *this.FieldF, *that1.FieldF) - } - } else if this.FieldF != nil { - return fmt.Errorf("this.FieldF == nil && that.FieldF != nil") - } else if that1.FieldF != nil { - return fmt.Errorf("FieldF this(%v) Not Equal that(%v)", this.FieldF, that1.FieldF) - } - if !this.FieldG.Equal(that1.FieldG) { - return fmt.Errorf("FieldG this(%v) Not Equal that(%v)", this.FieldG, that1.FieldG) - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", *this.FieldH, *that1.FieldH) - } - } else if this.FieldH != nil { - return fmt.Errorf("this.FieldH == nil && that.FieldH != nil") - } else if that1.FieldH != nil { - return fmt.Errorf("FieldH this(%v) Not Equal that(%v)", this.FieldH, that1.FieldH) - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", *this.FieldI, *that1.FieldI) - } - } else if this.FieldI != nil { - return fmt.Errorf("this.FieldI == nil && that.FieldI != nil") - } else if that1.FieldI != nil { - return fmt.Errorf("FieldI this(%v) Not Equal that(%v)", this.FieldI, that1.FieldI) - } - if !bytes.Equal(this.FieldJ, that1.FieldJ) { - return fmt.Errorf("FieldJ this(%v) Not Equal that(%v)", this.FieldJ, that1.FieldJ) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinStruct) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinStruct) - if !ok { - that2, ok := that.(CustomNameNinStruct) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return false - } - } else if this.FieldA != nil { - return false - } else if that1.FieldA != nil { - return false - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return false - } - } else if this.FieldB != nil { - return false - } else if that1.FieldB != nil { - return false - } - if !this.FieldC.Equal(that1.FieldC) { - return false - } - if len(this.FieldD) != len(that1.FieldD) { - return false - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return false - } - } - if this.FieldE != nil && that1.FieldE != nil { - if *this.FieldE != *that1.FieldE { - return false - } - } else if this.FieldE != nil { - return false - } else if that1.FieldE != nil { - return false - } - if this.FieldF != nil && that1.FieldF != nil { - if *this.FieldF != *that1.FieldF { - return false - } - } else if this.FieldF != nil { - return false - } else if that1.FieldF != nil { - return false - } - if !this.FieldG.Equal(that1.FieldG) { - return false - } - if this.FieldH != nil && that1.FieldH != nil { - if *this.FieldH != *that1.FieldH { - return false - } - } else if this.FieldH != nil { - return false - } else if that1.FieldH != nil { - return false - } - if this.FieldI != nil && that1.FieldI != nil { - if *this.FieldI != *that1.FieldI { - return false - } - } else if this.FieldI != nil { - return false - } else if that1.FieldI != nil { - return false - } - if !bytes.Equal(this.FieldJ, that1.FieldJ) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameCustomType) - if !ok { - that2, ok := that.(CustomNameCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameCustomType but is not nil && this == nil") - } - if that1.FieldA == nil { - if this.FieldA != nil { - return fmt.Errorf("this.FieldA != nil && that1.FieldA == nil") - } - } else if !this.FieldA.Equal(*that1.FieldA) { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if that1.FieldB == nil { - if this.FieldB != nil { - return fmt.Errorf("this.FieldB != nil && that1.FieldB == nil") - } - } else if !this.FieldB.Equal(*that1.FieldB) { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if len(this.FieldC) != len(that1.FieldC) { - return fmt.Errorf("FieldC this(%v) Not Equal that(%v)", len(this.FieldC), len(that1.FieldC)) - } - for i := range this.FieldC { - if !this.FieldC[i].Equal(that1.FieldC[i]) { - return fmt.Errorf("FieldC this[%v](%v) Not Equal that[%v](%v)", i, this.FieldC[i], i, that1.FieldC[i]) - } - } - if len(this.FieldD) != len(that1.FieldD) { - return fmt.Errorf("FieldD this(%v) Not Equal that(%v)", len(this.FieldD), len(that1.FieldD)) - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return fmt.Errorf("FieldD this[%v](%v) Not Equal that[%v](%v)", i, this.FieldD[i], i, that1.FieldD[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameCustomType) - if !ok { - that2, ok := that.(CustomNameCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.FieldA == nil { - if this.FieldA != nil { - return false - } - } else if !this.FieldA.Equal(*that1.FieldA) { - return false - } - if that1.FieldB == nil { - if this.FieldB != nil { - return false - } - } else if !this.FieldB.Equal(*that1.FieldB) { - return false - } - if len(this.FieldC) != len(that1.FieldC) { - return false - } - for i := range this.FieldC { - if !this.FieldC[i].Equal(that1.FieldC[i]) { - return false - } - } - if len(this.FieldD) != len(that1.FieldD) { - return false - } - for i := range this.FieldD { - if !this.FieldD[i].Equal(that1.FieldD[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameNinEmbeddedStructUnion) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameNinEmbeddedStructUnion) - if !ok { - that2, ok := that.(CustomNameNinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameNinEmbeddedStructUnion") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameNinEmbeddedStructUnion but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameNinEmbeddedStructUnion but is not nil && this == nil") - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return fmt.Errorf("NidOptNative this(%v) Not Equal that(%v)", this.NidOptNative, that1.NidOptNative) - } - if !this.FieldA.Equal(that1.FieldA) { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", *this.FieldB, *that1.FieldB) - } - } else if this.FieldB != nil { - return fmt.Errorf("this.FieldB == nil && that.FieldB != nil") - } else if that1.FieldB != nil { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", this.FieldB, that1.FieldB) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameNinEmbeddedStructUnion) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameNinEmbeddedStructUnion) - if !ok { - that2, ok := that.(CustomNameNinEmbeddedStructUnion) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NidOptNative.Equal(that1.NidOptNative) { - return false - } - if !this.FieldA.Equal(that1.FieldA) { - return false - } - if this.FieldB != nil && that1.FieldB != nil { - if *this.FieldB != *that1.FieldB { - return false - } - } else if this.FieldB != nil { - return false - } else if that1.FieldB != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomNameEnum) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomNameEnum) - if !ok { - that2, ok := that.(CustomNameEnum) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomNameEnum") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomNameEnum but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomNameEnum but is not nil && this == nil") - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", *this.FieldA, *that1.FieldA) - } - } else if this.FieldA != nil { - return fmt.Errorf("this.FieldA == nil && that.FieldA != nil") - } else if that1.FieldA != nil { - return fmt.Errorf("FieldA this(%v) Not Equal that(%v)", this.FieldA, that1.FieldA) - } - if len(this.FieldB) != len(that1.FieldB) { - return fmt.Errorf("FieldB this(%v) Not Equal that(%v)", len(this.FieldB), len(that1.FieldB)) - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return fmt.Errorf("FieldB this[%v](%v) Not Equal that[%v](%v)", i, this.FieldB[i], i, that1.FieldB[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomNameEnum) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomNameEnum) - if !ok { - that2, ok := that.(CustomNameEnum) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.FieldA != nil && that1.FieldA != nil { - if *this.FieldA != *that1.FieldA { - return false - } - } else if this.FieldA != nil { - return false - } else if that1.FieldA != nil { - return false - } - if len(this.FieldB) != len(that1.FieldB) { - return false - } - for i := range this.FieldB { - if this.FieldB[i] != that1.FieldB[i] { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NoExtensionsMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NoExtensionsMap) - if !ok { - that2, ok := that.(NoExtensionsMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NoExtensionsMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NoExtensionsMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NoExtensionsMap but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_extensions, that1.XXX_extensions) { - return fmt.Errorf("XXX_extensions this(%v) Not Equal that(%v)", this.XXX_extensions, that1.XXX_extensions) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NoExtensionsMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NoExtensionsMap) - if !ok { - that2, ok := that.(NoExtensionsMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - if !bytes.Equal(this.XXX_extensions, that1.XXX_extensions) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Unrecognized) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Unrecognized) - if !ok { - that2, ok := that.(Unrecognized) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Unrecognized") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Unrecognized but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Unrecognized but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *Unrecognized) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Unrecognized) - if !ok { - that2, ok := that.(Unrecognized) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - return true -} -func (this *UnrecognizedWithInner) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithInner) - if !ok { - that2, ok := that.(UnrecognizedWithInner) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithInner") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithInner but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithInner but is not nil && this == nil") - } - if len(this.Embedded) != len(that1.Embedded) { - return fmt.Errorf("Embedded this(%v) Not Equal that(%v)", len(this.Embedded), len(that1.Embedded)) - } - for i := range this.Embedded { - if !this.Embedded[i].Equal(that1.Embedded[i]) { - return fmt.Errorf("Embedded this[%v](%v) Not Equal that[%v](%v)", i, this.Embedded[i], i, that1.Embedded[i]) - } - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *UnrecognizedWithInner) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithInner) - if !ok { - that2, ok := that.(UnrecognizedWithInner) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Embedded) != len(that1.Embedded) { - return false - } - for i := range this.Embedded { - if !this.Embedded[i].Equal(that1.Embedded[i]) { - return false - } - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *UnrecognizedWithInner_Inner) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithInner_Inner) - if !ok { - that2, ok := that.(UnrecognizedWithInner_Inner) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithInner_Inner") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithInner_Inner but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithInner_Inner but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *UnrecognizedWithInner_Inner) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithInner_Inner) - if !ok { - that2, ok := that.(UnrecognizedWithInner_Inner) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - return true -} -func (this *UnrecognizedWithEmbed) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithEmbed) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithEmbed") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithEmbed but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithEmbed but is not nil && this == nil") - } - if !this.UnrecognizedWithEmbed_Embedded.Equal(&that1.UnrecognizedWithEmbed_Embedded) { - return fmt.Errorf("UnrecognizedWithEmbed_Embedded this(%v) Not Equal that(%v)", this.UnrecognizedWithEmbed_Embedded, that1.UnrecognizedWithEmbed_Embedded) - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *UnrecognizedWithEmbed) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithEmbed) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.UnrecognizedWithEmbed_Embedded.Equal(&that1.UnrecognizedWithEmbed_Embedded) { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *UnrecognizedWithEmbed_Embedded) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*UnrecognizedWithEmbed_Embedded) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed_Embedded) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *UnrecognizedWithEmbed_Embedded") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *UnrecognizedWithEmbed_Embedded but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *UnrecognizedWithEmbed_Embedded but is not nil && this == nil") - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1) - } - } else if this.Field1 != nil { - return fmt.Errorf("this.Field1 == nil && that.Field1 != nil") - } else if that1.Field1 != nil { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *UnrecognizedWithEmbed_Embedded) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*UnrecognizedWithEmbed_Embedded) - if !ok { - that2, ok := that.(UnrecognizedWithEmbed_Embedded) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != nil && that1.Field1 != nil { - if *this.Field1 != *that1.Field1 { - return false - } - } else if this.Field1 != nil { - return false - } else if that1.Field1 != nil { - return false - } - return true -} -func (this *Node) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Node) - if !ok { - that2, ok := that.(Node) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Node") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Node but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Node but is not nil && this == nil") - } - if this.Label != nil && that1.Label != nil { - if *this.Label != *that1.Label { - return fmt.Errorf("Label this(%v) Not Equal that(%v)", *this.Label, *that1.Label) - } - } else if this.Label != nil { - return fmt.Errorf("this.Label == nil && that.Label != nil") - } else if that1.Label != nil { - return fmt.Errorf("Label this(%v) Not Equal that(%v)", this.Label, that1.Label) - } - if len(this.Children) != len(that1.Children) { - return fmt.Errorf("Children this(%v) Not Equal that(%v)", len(this.Children), len(that1.Children)) - } - for i := range this.Children { - if !this.Children[i].Equal(that1.Children[i]) { - return fmt.Errorf("Children this[%v](%v) Not Equal that[%v](%v)", i, this.Children[i], i, that1.Children[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Node) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Node) - if !ok { - that2, ok := that.(Node) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Label != nil && that1.Label != nil { - if *this.Label != *that1.Label { - return false - } - } else if this.Label != nil { - return false - } else if that1.Label != nil { - return false - } - if len(this.Children) != len(that1.Children) { - return false - } - for i := range this.Children { - if !this.Children[i].Equal(that1.Children[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NonByteCustomType) - if !ok { - that2, ok := that.(NonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NonByteCustomType but is not nil && this == nil") - } - if that1.Field1 == nil { - if this.Field1 != nil { - return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") - } - } else if !this.Field1.Equal(*that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NonByteCustomType) - if !ok { - that2, ok := that.(NonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Field1 == nil { - if this.Field1 != nil { - return false - } - } else if !this.Field1.Equal(*that1.Field1) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidOptNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidOptNonByteCustomType) - if !ok { - that2, ok := that.(NidOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidOptNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidOptNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidOptNonByteCustomType but is not nil && this == nil") - } - if !this.Field1.Equal(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidOptNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidOptNonByteCustomType) - if !ok { - that2, ok := that.(NidOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Field1.Equal(that1.Field1) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinOptNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinOptNonByteCustomType) - if !ok { - that2, ok := that.(NinOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinOptNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinOptNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinOptNonByteCustomType but is not nil && this == nil") - } - if that1.Field1 == nil { - if this.Field1 != nil { - return fmt.Errorf("this.Field1 != nil && that1.Field1 == nil") - } - } else if !this.Field1.Equal(*that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinOptNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinOptNonByteCustomType) - if !ok { - that2, ok := that.(NinOptNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Field1 == nil { - if this.Field1 != nil { - return false - } - } else if !this.Field1.Equal(*that1.Field1) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NidRepNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NidRepNonByteCustomType) - if !ok { - that2, ok := that.(NidRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NidRepNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NidRepNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NidRepNonByteCustomType but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NidRepNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NidRepNonByteCustomType) - if !ok { - that2, ok := that.(NidRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *NinRepNonByteCustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NinRepNonByteCustomType) - if !ok { - that2, ok := that.(NinRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NinRepNonByteCustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NinRepNonByteCustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NinRepNonByteCustomType but is not nil && this == nil") - } - if len(this.Field1) != len(that1.Field1) { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", len(this.Field1), len(that1.Field1)) - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return fmt.Errorf("Field1 this[%v](%v) Not Equal that[%v](%v)", i, this.Field1[i], i, that1.Field1[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *NinRepNonByteCustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NinRepNonByteCustomType) - if !ok { - that2, ok := that.(NinRepNonByteCustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Field1) != len(that1.Field1) { - return false - } - for i := range this.Field1 { - if !this.Field1[i].Equal(that1.Field1[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *ProtoType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ProtoType) - if !ok { - that2, ok := that.(ProtoType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ProtoType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ProtoType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ProtoType but is not nil && this == nil") - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2) - } - } else if this.Field2 != nil { - return fmt.Errorf("this.Field2 == nil && that.Field2 != nil") - } else if that1.Field2 != nil { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *ProtoType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ProtoType) - if !ok { - that2, ok := that.(ProtoType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != nil && that1.Field2 != nil { - if *this.Field2 != *that1.Field2 { - return false - } - } else if this.Field2 != nil { - return false - } else if that1.Field2 != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() int32 - GetField4() int64 - GetField5() uint32 - GetField6() uint64 - GetField7() int32 - GetField8() int64 - GetField9() uint32 - GetField10() int32 - GetField11() uint64 - GetField12() int64 - GetField13() bool - GetField14() string - GetField15() []byte -} - -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNativeFromFace(this) -} - -func (this *NidOptNative) GetField1() float64 { - return this.Field1 -} - -func (this *NidOptNative) GetField2() float32 { - return this.Field2 -} - -func (this *NidOptNative) GetField3() int32 { - return this.Field3 -} - -func (this *NidOptNative) GetField4() int64 { - return this.Field4 -} - -func (this *NidOptNative) GetField5() uint32 { - return this.Field5 -} - -func (this *NidOptNative) GetField6() uint64 { - return this.Field6 -} - -func (this *NidOptNative) GetField7() int32 { - return this.Field7 -} - -func (this *NidOptNative) GetField8() int64 { - return this.Field8 -} - -func (this *NidOptNative) GetField9() uint32 { - return this.Field9 -} - -func (this *NidOptNative) GetField10() int32 { - return this.Field10 -} - -func (this *NidOptNative) GetField11() uint64 { - return this.Field11 -} - -func (this *NidOptNative) GetField12() int64 { - return this.Field12 -} - -func (this *NidOptNative) GetField13() bool { - return this.Field13 -} - -func (this *NidOptNative) GetField14() string { - return this.Field14 -} - -func (this *NidOptNative) GetField15() []byte { - return this.Field15 -} - -func NewNidOptNativeFromFace(that NidOptNativeFace) *NidOptNative { - this := &NidOptNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *int32 - GetField4() *int64 - GetField5() *uint32 - GetField6() *uint64 - GetField7() *int32 - GetField8() *int64 - GetField9() *uint32 - GetField10() *int32 - GetField11() *uint64 - GetField12() *int64 - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptNativeFromFace(this) -} - -func (this *NinOptNative) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptNative) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptNative) GetField3() *int32 { - return this.Field3 -} - -func (this *NinOptNative) GetField4() *int64 { - return this.Field4 -} - -func (this *NinOptNative) GetField5() *uint32 { - return this.Field5 -} - -func (this *NinOptNative) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptNative) GetField7() *int32 { - return this.Field7 -} - -func (this *NinOptNative) GetField8() *int64 { - return this.Field8 -} - -func (this *NinOptNative) GetField9() *uint32 { - return this.Field9 -} - -func (this *NinOptNative) GetField10() *int32 { - return this.Field10 -} - -func (this *NinOptNative) GetField11() *uint64 { - return this.Field11 -} - -func (this *NinOptNative) GetField12() *int64 { - return this.Field12 -} - -func (this *NinOptNative) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptNative) GetField14() *string { - return this.Field14 -} - -func (this *NinOptNative) GetField15() []byte { - return this.Field15 -} - -func NewNinOptNativeFromFace(that NinOptNativeFace) *NinOptNative { - this := &NinOptNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NidRepNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepNativeFromFace(this) -} - -func (this *NidRepNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NidRepNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NidRepNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NidRepNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NidRepNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NidRepNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NidRepNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NidRepNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NidRepNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NidRepNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NidRepNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NidRepNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NidRepNative) GetField13() []bool { - return this.Field13 -} - -func (this *NidRepNative) GetField14() []string { - return this.Field14 -} - -func (this *NidRepNative) GetField15() [][]byte { - return this.Field15 -} - -func NewNidRepNativeFromFace(that NidRepNativeFace) *NidRepNative { - this := &NidRepNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NinRepNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepNativeFromFace(this) -} - -func (this *NinRepNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NinRepNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NinRepNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NinRepNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NinRepNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NinRepNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NinRepNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NinRepNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NinRepNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NinRepNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NinRepNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NinRepNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NinRepNative) GetField13() []bool { - return this.Field13 -} - -func (this *NinRepNative) GetField14() []string { - return this.Field14 -} - -func (this *NinRepNative) GetField15() [][]byte { - return this.Field15 -} - -func NewNinRepNativeFromFace(that NinRepNativeFace) *NinRepNative { - this := &NinRepNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool -} - -func (this *NidRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepPackedNativeFromFace(this) -} - -func (this *NidRepPackedNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NidRepPackedNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NidRepPackedNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NidRepPackedNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NidRepPackedNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NidRepPackedNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NidRepPackedNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NidRepPackedNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NidRepPackedNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NidRepPackedNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NidRepPackedNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NidRepPackedNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NidRepPackedNative) GetField13() []bool { - return this.Field13 -} - -func NewNidRepPackedNativeFromFace(that NidRepPackedNativeFace) *NidRepPackedNative { - this := &NidRepPackedNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - return this -} - -type NinRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []int32 - GetField4() []int64 - GetField5() []uint32 - GetField6() []uint64 - GetField7() []int32 - GetField8() []int64 - GetField9() []uint32 - GetField10() []int32 - GetField11() []uint64 - GetField12() []int64 - GetField13() []bool -} - -func (this *NinRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepPackedNativeFromFace(this) -} - -func (this *NinRepPackedNative) GetField1() []float64 { - return this.Field1 -} - -func (this *NinRepPackedNative) GetField2() []float32 { - return this.Field2 -} - -func (this *NinRepPackedNative) GetField3() []int32 { - return this.Field3 -} - -func (this *NinRepPackedNative) GetField4() []int64 { - return this.Field4 -} - -func (this *NinRepPackedNative) GetField5() []uint32 { - return this.Field5 -} - -func (this *NinRepPackedNative) GetField6() []uint64 { - return this.Field6 -} - -func (this *NinRepPackedNative) GetField7() []int32 { - return this.Field7 -} - -func (this *NinRepPackedNative) GetField8() []int64 { - return this.Field8 -} - -func (this *NinRepPackedNative) GetField9() []uint32 { - return this.Field9 -} - -func (this *NinRepPackedNative) GetField10() []int32 { - return this.Field10 -} - -func (this *NinRepPackedNative) GetField11() []uint64 { - return this.Field11 -} - -func (this *NinRepPackedNative) GetField12() []int64 { - return this.Field12 -} - -func (this *NinRepPackedNative) GetField13() []bool { - return this.Field13 -} - -func NewNinRepPackedNativeFromFace(that NinRepPackedNativeFace) *NinRepPackedNative { - this := &NinRepPackedNative{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field9 = that.GetField9() - this.Field10 = that.GetField10() - this.Field11 = that.GetField11() - this.Field12 = that.GetField12() - this.Field13 = that.GetField13() - return this -} - -type NidOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() float64 - GetField2() float32 - GetField3() NidOptNative - GetField4() NinOptNative - GetField6() uint64 - GetField7() int32 - GetField8() NidOptNative - GetField13() bool - GetField14() string - GetField15() []byte -} - -func (this *NidOptStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptStructFromFace(this) -} - -func (this *NidOptStruct) GetField1() float64 { - return this.Field1 -} - -func (this *NidOptStruct) GetField2() float32 { - return this.Field2 -} - -func (this *NidOptStruct) GetField3() NidOptNative { - return this.Field3 -} - -func (this *NidOptStruct) GetField4() NinOptNative { - return this.Field4 -} - -func (this *NidOptStruct) GetField6() uint64 { - return this.Field6 -} - -func (this *NidOptStruct) GetField7() int32 { - return this.Field7 -} - -func (this *NidOptStruct) GetField8() NidOptNative { - return this.Field8 -} - -func (this *NidOptStruct) GetField13() bool { - return this.Field13 -} - -func (this *NidOptStruct) GetField14() string { - return this.Field14 -} - -func (this *NidOptStruct) GetField15() []byte { - return this.Field15 -} - -func NewNidOptStructFromFace(that NidOptStructFace) *NidOptStruct { - this := &NidOptStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *NidOptNative - GetField4() *NinOptNative - GetField6() *uint64 - GetField7() *int32 - GetField8() *NidOptNative - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptStructFromFace(this) -} - -func (this *NinOptStruct) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptStruct) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptStruct) GetField3() *NidOptNative { - return this.Field3 -} - -func (this *NinOptStruct) GetField4() *NinOptNative { - return this.Field4 -} - -func (this *NinOptStruct) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptStruct) GetField7() *int32 { - return this.Field7 -} - -func (this *NinOptStruct) GetField8() *NidOptNative { - return this.Field8 -} - -func (this *NinOptStruct) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptStruct) GetField14() *string { - return this.Field14 -} - -func (this *NinOptStruct) GetField15() []byte { - return this.Field15 -} - -func NewNinOptStructFromFace(that NinOptStructFace) *NinOptStruct { - this := &NinOptStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []NidOptNative - GetField4() []NinOptNative - GetField6() []uint64 - GetField7() []int32 - GetField8() []NidOptNative - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NidRepStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepStructFromFace(this) -} - -func (this *NidRepStruct) GetField1() []float64 { - return this.Field1 -} - -func (this *NidRepStruct) GetField2() []float32 { - return this.Field2 -} - -func (this *NidRepStruct) GetField3() []NidOptNative { - return this.Field3 -} - -func (this *NidRepStruct) GetField4() []NinOptNative { - return this.Field4 -} - -func (this *NidRepStruct) GetField6() []uint64 { - return this.Field6 -} - -func (this *NidRepStruct) GetField7() []int32 { - return this.Field7 -} - -func (this *NidRepStruct) GetField8() []NidOptNative { - return this.Field8 -} - -func (this *NidRepStruct) GetField13() []bool { - return this.Field13 -} - -func (this *NidRepStruct) GetField14() []string { - return this.Field14 -} - -func (this *NidRepStruct) GetField15() [][]byte { - return this.Field15 -} - -func NewNidRepStructFromFace(that NidRepStructFace) *NidRepStruct { - this := &NidRepStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []float64 - GetField2() []float32 - GetField3() []*NidOptNative - GetField4() []*NinOptNative - GetField6() []uint64 - GetField7() []int32 - GetField8() []*NidOptNative - GetField13() []bool - GetField14() []string - GetField15() [][]byte -} - -func (this *NinRepStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepStructFromFace(this) -} - -func (this *NinRepStruct) GetField1() []float64 { - return this.Field1 -} - -func (this *NinRepStruct) GetField2() []float32 { - return this.Field2 -} - -func (this *NinRepStruct) GetField3() []*NidOptNative { - return this.Field3 -} - -func (this *NinRepStruct) GetField4() []*NinOptNative { - return this.Field4 -} - -func (this *NinRepStruct) GetField6() []uint64 { - return this.Field6 -} - -func (this *NinRepStruct) GetField7() []int32 { - return this.Field7 -} - -func (this *NinRepStruct) GetField8() []*NidOptNative { - return this.Field8 -} - -func (this *NinRepStruct) GetField13() []bool { - return this.Field13 -} - -func (this *NinRepStruct) GetField14() []string { - return this.Field14 -} - -func (this *NinRepStruct) GetField15() [][]byte { - return this.Field15 -} - -func NewNinRepStructFromFace(that NinRepStructFace) *NinRepStruct { - this := &NinRepStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field8 = that.GetField8() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NidEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetField200() NidOptNative - GetField210() bool -} - -func (this *NidEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidEmbeddedStructFromFace(this) -} - -func (this *NidEmbeddedStruct) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *NidEmbeddedStruct) GetField200() NidOptNative { - return this.Field200 -} - -func (this *NidEmbeddedStruct) GetField210() bool { - return this.Field210 -} - -func NewNidEmbeddedStructFromFace(that NidEmbeddedStructFace) *NidEmbeddedStruct { - this := &NidEmbeddedStruct{} - this.NidOptNative = that.GetNidOptNative() - this.Field200 = that.GetField200() - this.Field210 = that.GetField210() - return this -} - -type NinEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetField200() *NidOptNative - GetField210() *bool -} - -func (this *NinEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinEmbeddedStructFromFace(this) -} - -func (this *NinEmbeddedStruct) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *NinEmbeddedStruct) GetField200() *NidOptNative { - return this.Field200 -} - -func (this *NinEmbeddedStruct) GetField210() *bool { - return this.Field210 -} - -func NewNinEmbeddedStructFromFace(that NinEmbeddedStructFace) *NinEmbeddedStruct { - this := &NinEmbeddedStruct{} - this.NidOptNative = that.GetNidOptNative() - this.Field200 = that.GetField200() - this.Field210 = that.GetField210() - return this -} - -type NidNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() NidOptStruct - GetField2() []NidRepStruct -} - -func (this *NidNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidNestedStructFromFace(this) -} - -func (this *NidNestedStruct) GetField1() NidOptStruct { - return this.Field1 -} - -func (this *NidNestedStruct) GetField2() []NidRepStruct { - return this.Field2 -} - -func NewNidNestedStructFromFace(that NidNestedStructFace) *NidNestedStruct { - this := &NidNestedStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - return this -} - -type NinNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *NinOptStruct - GetField2() []*NinRepStruct -} - -func (this *NinNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinNestedStructFromFace(this) -} - -func (this *NinNestedStruct) GetField1() *NinOptStruct { - return this.Field1 -} - -func (this *NinNestedStruct) GetField2() []*NinRepStruct { - return this.Field2 -} - -func NewNinNestedStructFromFace(that NinNestedStructFace) *NinNestedStruct { - this := &NinNestedStruct{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - return this -} - -type NidOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() Uuid - GetValue() github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NidOptCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptCustomFromFace(this) -} - -func (this *NidOptCustom) GetId() Uuid { - return this.Id -} - -func (this *NidOptCustom) GetValue() github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNidOptCustomFromFace(that NidOptCustomFace) *NidOptCustom { - this := &NidOptCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type CustomDashFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes -} - -func (this *CustomDash) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomDash) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomDashFromFace(this) -} - -func (this *CustomDash) GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes { - return this.Value -} - -func NewCustomDashFromFace(that CustomDashFace) *CustomDash { - this := &CustomDash{} - this.Value = that.GetValue() - return this -} - -type NinOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() *Uuid - GetValue() *github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NinOptCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptCustomFromFace(this) -} - -func (this *NinOptCustom) GetId() *Uuid { - return this.Id -} - -func (this *NinOptCustom) GetValue() *github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNinOptCustomFromFace(that NinOptCustomFace) *NinOptCustom { - this := &NinOptCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type NidRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() []Uuid - GetValue() []github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NidRepCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepCustomFromFace(this) -} - -func (this *NidRepCustom) GetId() []Uuid { - return this.Id -} - -func (this *NidRepCustom) GetValue() []github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNidRepCustomFromFace(that NidRepCustomFace) *NidRepCustom { - this := &NidRepCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type NinRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetId() []Uuid - GetValue() []github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *NinRepCustom) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepCustomFromFace(this) -} - -func (this *NinRepCustom) GetId() []Uuid { - return this.Id -} - -func (this *NinRepCustom) GetValue() []github_com_gogo_protobuf_test_custom.Uint128 { - return this.Value -} - -func NewNinRepCustomFromFace(that NinRepCustomFace) *NinRepCustom { - this := &NinRepCustom{} - this.Id = that.GetId() - this.Value = that.GetValue() - return this -} - -type NinOptNativeUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *int32 - GetField4() *int64 - GetField5() *uint32 - GetField6() *uint64 - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptNativeUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptNativeUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptNativeUnionFromFace(this) -} - -func (this *NinOptNativeUnion) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptNativeUnion) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptNativeUnion) GetField3() *int32 { - return this.Field3 -} - -func (this *NinOptNativeUnion) GetField4() *int64 { - return this.Field4 -} - -func (this *NinOptNativeUnion) GetField5() *uint32 { - return this.Field5 -} - -func (this *NinOptNativeUnion) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptNativeUnion) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptNativeUnion) GetField14() *string { - return this.Field14 -} - -func (this *NinOptNativeUnion) GetField15() []byte { - return this.Field15 -} - -func NewNinOptNativeUnionFromFace(that NinOptNativeUnionFace) *NinOptNativeUnion { - this := &NinOptNativeUnion{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field5 = that.GetField5() - this.Field6 = that.GetField6() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinOptStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *float64 - GetField2() *float32 - GetField3() *NidOptNative - GetField4() *NinOptNative - GetField6() *uint64 - GetField7() *int32 - GetField13() *bool - GetField14() *string - GetField15() []byte -} - -func (this *NinOptStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptStructUnionFromFace(this) -} - -func (this *NinOptStructUnion) GetField1() *float64 { - return this.Field1 -} - -func (this *NinOptStructUnion) GetField2() *float32 { - return this.Field2 -} - -func (this *NinOptStructUnion) GetField3() *NidOptNative { - return this.Field3 -} - -func (this *NinOptStructUnion) GetField4() *NinOptNative { - return this.Field4 -} - -func (this *NinOptStructUnion) GetField6() *uint64 { - return this.Field6 -} - -func (this *NinOptStructUnion) GetField7() *int32 { - return this.Field7 -} - -func (this *NinOptStructUnion) GetField13() *bool { - return this.Field13 -} - -func (this *NinOptStructUnion) GetField14() *string { - return this.Field14 -} - -func (this *NinOptStructUnion) GetField15() []byte { - return this.Field15 -} - -func NewNinOptStructUnionFromFace(that NinOptStructUnionFace) *NinOptStructUnion { - this := &NinOptStructUnion{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - this.Field4 = that.GetField4() - this.Field6 = that.GetField6() - this.Field7 = that.GetField7() - this.Field13 = that.GetField13() - this.Field14 = that.GetField14() - this.Field15 = that.GetField15() - return this -} - -type NinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetField200() *NinOptNative - GetField210() *bool -} - -func (this *NinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinEmbeddedStructUnionFromFace(this) -} - -func (this *NinEmbeddedStructUnion) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *NinEmbeddedStructUnion) GetField200() *NinOptNative { - return this.Field200 -} - -func (this *NinEmbeddedStructUnion) GetField210() *bool { - return this.Field210 -} - -func NewNinEmbeddedStructUnionFromFace(that NinEmbeddedStructUnionFace) *NinEmbeddedStructUnion { - this := &NinEmbeddedStructUnion{} - this.NidOptNative = that.GetNidOptNative() - this.Field200 = that.GetField200() - this.Field210 = that.GetField210() - return this -} - -type NinNestedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *NinOptNativeUnion - GetField2() *NinOptStructUnion - GetField3() *NinEmbeddedStructUnion -} - -func (this *NinNestedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinNestedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinNestedStructUnionFromFace(this) -} - -func (this *NinNestedStructUnion) GetField1() *NinOptNativeUnion { - return this.Field1 -} - -func (this *NinNestedStructUnion) GetField2() *NinOptStructUnion { - return this.Field2 -} - -func (this *NinNestedStructUnion) GetField3() *NinEmbeddedStructUnion { - return this.Field3 -} - -func NewNinNestedStructUnionFromFace(that NinNestedStructUnionFace) *NinNestedStructUnion { - this := &NinNestedStructUnion{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type TreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetOr() *OrBranch - GetAnd() *AndBranch - GetLeaf() *Leaf -} - -func (this *Tree) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Tree) TestProto() github_com_gogo_protobuf_proto.Message { - return NewTreeFromFace(this) -} - -func (this *Tree) GetOr() *OrBranch { - return this.Or -} - -func (this *Tree) GetAnd() *AndBranch { - return this.And -} - -func (this *Tree) GetLeaf() *Leaf { - return this.Leaf -} - -func NewTreeFromFace(that TreeFace) *Tree { - this := &Tree{} - this.Or = that.GetOr() - this.And = that.GetAnd() - this.Leaf = that.GetLeaf() - return this -} - -type OrBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() Tree - GetRight() Tree -} - -func (this *OrBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *OrBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewOrBranchFromFace(this) -} - -func (this *OrBranch) GetLeft() Tree { - return this.Left -} - -func (this *OrBranch) GetRight() Tree { - return this.Right -} - -func NewOrBranchFromFace(that OrBranchFace) *OrBranch { - this := &OrBranch{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type AndBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() Tree - GetRight() Tree -} - -func (this *AndBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AndBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAndBranchFromFace(this) -} - -func (this *AndBranch) GetLeft() Tree { - return this.Left -} - -func (this *AndBranch) GetRight() Tree { - return this.Right -} - -func NewAndBranchFromFace(that AndBranchFace) *AndBranch { - this := &AndBranch{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type LeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetValue() int64 - GetStrValue() string -} - -func (this *Leaf) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Leaf) TestProto() github_com_gogo_protobuf_proto.Message { - return NewLeafFromFace(this) -} - -func (this *Leaf) GetValue() int64 { - return this.Value -} - -func (this *Leaf) GetStrValue() string { - return this.StrValue -} - -func NewLeafFromFace(that LeafFace) *Leaf { - this := &Leaf{} - this.Value = that.GetValue() - this.StrValue = that.GetStrValue() - return this -} - -type DeepTreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetDown() *ADeepBranch - GetAnd() *AndDeepBranch - GetLeaf() *DeepLeaf -} - -func (this *DeepTree) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *DeepTree) TestProto() github_com_gogo_protobuf_proto.Message { - return NewDeepTreeFromFace(this) -} - -func (this *DeepTree) GetDown() *ADeepBranch { - return this.Down -} - -func (this *DeepTree) GetAnd() *AndDeepBranch { - return this.And -} - -func (this *DeepTree) GetLeaf() *DeepLeaf { - return this.Leaf -} - -func NewDeepTreeFromFace(that DeepTreeFace) *DeepTree { - this := &DeepTree{} - this.Down = that.GetDown() - this.And = that.GetAnd() - this.Leaf = that.GetLeaf() - return this -} - -type ADeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetDown() DeepTree -} - -func (this *ADeepBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ADeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewADeepBranchFromFace(this) -} - -func (this *ADeepBranch) GetDown() DeepTree { - return this.Down -} - -func NewADeepBranchFromFace(that ADeepBranchFace) *ADeepBranch { - this := &ADeepBranch{} - this.Down = that.GetDown() - return this -} - -type AndDeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() DeepTree - GetRight() DeepTree -} - -func (this *AndDeepBranch) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AndDeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAndDeepBranchFromFace(this) -} - -func (this *AndDeepBranch) GetLeft() DeepTree { - return this.Left -} - -func (this *AndDeepBranch) GetRight() DeepTree { - return this.Right -} - -func NewAndDeepBranchFromFace(that AndDeepBranchFace) *AndDeepBranch { - this := &AndDeepBranch{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type DeepLeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetTree() Tree -} - -func (this *DeepLeaf) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *DeepLeaf) TestProto() github_com_gogo_protobuf_proto.Message { - return NewDeepLeafFromFace(this) -} - -func (this *DeepLeaf) GetTree() Tree { - return this.Tree -} - -func NewDeepLeafFromFace(that DeepLeafFace) *DeepLeaf { - this := &DeepLeaf{} - this.Tree = that.GetTree() - return this -} - -type NilFace interface { - Proto() github_com_gogo_protobuf_proto.Message -} - -func (this *Nil) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Nil) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNilFromFace(this) -} - -func NewNilFromFace(that NilFace) *Nil { - this := &Nil{} - return this -} - -type NidOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() TheTestEnum -} - -func (this *NidOptEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptEnumFromFace(this) -} - -func (this *NidOptEnum) GetField1() TheTestEnum { - return this.Field1 -} - -func NewNidOptEnumFromFace(that NidOptEnumFace) *NidOptEnum { - this := &NidOptEnum{} - this.Field1 = that.GetField1() - return this -} - -type NinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *TheTestEnum - GetField2() *YetAnotherTestEnum - GetField3() *YetYetAnotherTestEnum -} - -func (this *NinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptEnumFromFace(this) -} - -func (this *NinOptEnum) GetField1() *TheTestEnum { - return this.Field1 -} - -func (this *NinOptEnum) GetField2() *YetAnotherTestEnum { - return this.Field2 -} - -func (this *NinOptEnum) GetField3() *YetYetAnotherTestEnum { - return this.Field3 -} - -func NewNinOptEnumFromFace(that NinOptEnumFace) *NinOptEnum { - this := &NinOptEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type NidRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []TheTestEnum - GetField2() []YetAnotherTestEnum - GetField3() []YetYetAnotherTestEnum -} - -func (this *NidRepEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepEnumFromFace(this) -} - -func (this *NidRepEnum) GetField1() []TheTestEnum { - return this.Field1 -} - -func (this *NidRepEnum) GetField2() []YetAnotherTestEnum { - return this.Field2 -} - -func (this *NidRepEnum) GetField3() []YetYetAnotherTestEnum { - return this.Field3 -} - -func NewNidRepEnumFromFace(that NidRepEnumFace) *NidRepEnum { - this := &NidRepEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type NinRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []TheTestEnum - GetField2() []YetAnotherTestEnum - GetField3() []YetYetAnotherTestEnum -} - -func (this *NinRepEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepEnumFromFace(this) -} - -func (this *NinRepEnum) GetField1() []TheTestEnum { - return this.Field1 -} - -func (this *NinRepEnum) GetField2() []YetAnotherTestEnum { - return this.Field2 -} - -func (this *NinRepEnum) GetField3() []YetYetAnotherTestEnum { - return this.Field3 -} - -func NewNinRepEnumFromFace(that NinRepEnumFace) *NinRepEnum { - this := &NinRepEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type AnotherNinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *AnotherTestEnum - GetField2() *YetAnotherTestEnum - GetField3() *YetYetAnotherTestEnum -} - -func (this *AnotherNinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AnotherNinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAnotherNinOptEnumFromFace(this) -} - -func (this *AnotherNinOptEnum) GetField1() *AnotherTestEnum { - return this.Field1 -} - -func (this *AnotherNinOptEnum) GetField2() *YetAnotherTestEnum { - return this.Field2 -} - -func (this *AnotherNinOptEnum) GetField3() *YetYetAnotherTestEnum { - return this.Field3 -} - -func NewAnotherNinOptEnumFromFace(that AnotherNinOptEnumFace) *AnotherNinOptEnum { - this := &AnotherNinOptEnum{} - this.Field1 = that.GetField1() - this.Field2 = that.GetField2() - this.Field3 = that.GetField3() - return this -} - -type TimerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetTime1() int64 - GetTime2() int64 - GetData() []byte -} - -func (this *Timer) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Timer) TestProto() github_com_gogo_protobuf_proto.Message { - return NewTimerFromFace(this) -} - -func (this *Timer) GetTime1() int64 { - return this.Time1 -} - -func (this *Timer) GetTime2() int64 { - return this.Time2 -} - -func (this *Timer) GetData() []byte { - return this.Data -} - -func NewTimerFromFace(that TimerFace) *Timer { - this := &Timer{} - this.Time1 = that.GetTime1() - this.Time2 = that.GetTime2() - this.Data = that.GetData() - return this -} - -type NestedDefinitionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *int64 - GetEnumField() *NestedDefinition_NestedEnum - GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg - GetNM() *NestedDefinition_NestedMessage -} - -func (this *NestedDefinition) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedDefinition) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedDefinitionFromFace(this) -} - -func (this *NestedDefinition) GetField1() *int64 { - return this.Field1 -} - -func (this *NestedDefinition) GetEnumField() *NestedDefinition_NestedEnum { - return this.EnumField -} - -func (this *NestedDefinition) GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg { - return this.NNM -} - -func (this *NestedDefinition) GetNM() *NestedDefinition_NestedMessage { - return this.NM -} - -func NewNestedDefinitionFromFace(that NestedDefinitionFace) *NestedDefinition { - this := &NestedDefinition{} - this.Field1 = that.GetField1() - this.EnumField = that.GetEnumField() - this.NNM = that.GetNNM() - this.NM = that.GetNM() - return this -} - -type NestedDefinition_NestedMessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNestedField1() *uint64 - GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg -} - -func (this *NestedDefinition_NestedMessage) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedDefinition_NestedMessage) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedDefinition_NestedMessageFromFace(this) -} - -func (this *NestedDefinition_NestedMessage) GetNestedField1() *uint64 { - return this.NestedField1 -} - -func (this *NestedDefinition_NestedMessage) GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg { - return this.NNM -} - -func NewNestedDefinition_NestedMessageFromFace(that NestedDefinition_NestedMessageFace) *NestedDefinition_NestedMessage { - this := &NestedDefinition_NestedMessage{} - this.NestedField1 = that.GetNestedField1() - this.NNM = that.GetNNM() - return this -} - -type NestedDefinition_NestedMessage_NestedNestedMsgFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNestedNestedField1() *string -} - -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(this) -} - -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) GetNestedNestedField1() *string { - return this.NestedNestedField1 -} - -func NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(that NestedDefinition_NestedMessage_NestedNestedMsgFace) *NestedDefinition_NestedMessage_NestedNestedMsg { - this := &NestedDefinition_NestedMessage_NestedNestedMsg{} - this.NestedNestedField1 = that.GetNestedNestedField1() - return this -} - -type NestedScopeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetA() *NestedDefinition_NestedMessage_NestedNestedMsg - GetB() *NestedDefinition_NestedEnum - GetC() *NestedDefinition_NestedMessage -} - -func (this *NestedScope) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NestedScope) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedScopeFromFace(this) -} - -func (this *NestedScope) GetA() *NestedDefinition_NestedMessage_NestedNestedMsg { - return this.A -} - -func (this *NestedScope) GetB() *NestedDefinition_NestedEnum { - return this.B -} - -func (this *NestedScope) GetC() *NestedDefinition_NestedMessage { - return this.C -} - -func NewNestedScopeFromFace(that NestedScopeFace) *NestedScope { - this := &NestedScope{} - this.A = that.GetA() - this.B = that.GetB() - this.C = that.GetC() - return this -} - -type CustomContainerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetCustomStruct() NidOptCustom -} - -func (this *CustomContainer) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomContainer) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomContainerFromFace(this) -} - -func (this *CustomContainer) GetCustomStruct() NidOptCustom { - return this.CustomStruct -} - -func NewCustomContainerFromFace(that CustomContainerFace) *CustomContainer { - this := &CustomContainer{} - this.CustomStruct = that.GetCustomStruct() - return this -} - -type CustomNameNidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() float64 - GetFieldB() float32 - GetFieldC() int32 - GetFieldD() int64 - GetFieldE() uint32 - GetFieldF() uint64 - GetFieldG() int32 - GetFieldH() int64 - GetFieldI() uint32 - GetFieldJ() int32 - GetFieldK() uint64 - GetFieldL() int64 - GetFieldM() bool - GetFieldN() string - GetFieldO() []byte -} - -func (this *CustomNameNidOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNidOptNativeFromFace(this) -} - -func (this *CustomNameNidOptNative) GetFieldA() float64 { - return this.FieldA -} - -func (this *CustomNameNidOptNative) GetFieldB() float32 { - return this.FieldB -} - -func (this *CustomNameNidOptNative) GetFieldC() int32 { - return this.FieldC -} - -func (this *CustomNameNidOptNative) GetFieldD() int64 { - return this.FieldD -} - -func (this *CustomNameNidOptNative) GetFieldE() uint32 { - return this.FieldE -} - -func (this *CustomNameNidOptNative) GetFieldF() uint64 { - return this.FieldF -} - -func (this *CustomNameNidOptNative) GetFieldG() int32 { - return this.FieldG -} - -func (this *CustomNameNidOptNative) GetFieldH() int64 { - return this.FieldH -} - -func (this *CustomNameNidOptNative) GetFieldI() uint32 { - return this.FieldI -} - -func (this *CustomNameNidOptNative) GetFieldJ() int32 { - return this.FieldJ -} - -func (this *CustomNameNidOptNative) GetFieldK() uint64 { - return this.FieldK -} - -func (this *CustomNameNidOptNative) GetFieldL() int64 { - return this.FieldL -} - -func (this *CustomNameNidOptNative) GetFieldM() bool { - return this.FieldM -} - -func (this *CustomNameNidOptNative) GetFieldN() string { - return this.FieldN -} - -func (this *CustomNameNidOptNative) GetFieldO() []byte { - return this.FieldO -} - -func NewCustomNameNidOptNativeFromFace(that CustomNameNidOptNativeFace) *CustomNameNidOptNative { - this := &CustomNameNidOptNative{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - this.FieldK = that.GetFieldK() - this.FieldL = that.GetFieldL() - this.FieldM = that.GetFieldM() - this.FieldN = that.GetFieldN() - this.FieldO = that.GetFieldO() - return this -} - -type CustomNameNinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *float64 - GetFieldB() *float32 - GetFieldC() *int32 - GetFieldD() *int64 - GetFieldE() *uint32 - GetFieldF() *uint64 - GetFieldG() *int32 - GetFieldH() *int64 - GetFieldI() *uint32 - GetFieldJ() *int32 - GetFieldK() *uint64 - GetFielL() *int64 - GetFieldM() *bool - GetFieldN() *string - GetFieldO() []byte -} - -func (this *CustomNameNinOptNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinOptNativeFromFace(this) -} - -func (this *CustomNameNinOptNative) GetFieldA() *float64 { - return this.FieldA -} - -func (this *CustomNameNinOptNative) GetFieldB() *float32 { - return this.FieldB -} - -func (this *CustomNameNinOptNative) GetFieldC() *int32 { - return this.FieldC -} - -func (this *CustomNameNinOptNative) GetFieldD() *int64 { - return this.FieldD -} - -func (this *CustomNameNinOptNative) GetFieldE() *uint32 { - return this.FieldE -} - -func (this *CustomNameNinOptNative) GetFieldF() *uint64 { - return this.FieldF -} - -func (this *CustomNameNinOptNative) GetFieldG() *int32 { - return this.FieldG -} - -func (this *CustomNameNinOptNative) GetFieldH() *int64 { - return this.FieldH -} - -func (this *CustomNameNinOptNative) GetFieldI() *uint32 { - return this.FieldI -} - -func (this *CustomNameNinOptNative) GetFieldJ() *int32 { - return this.FieldJ -} - -func (this *CustomNameNinOptNative) GetFieldK() *uint64 { - return this.FieldK -} - -func (this *CustomNameNinOptNative) GetFielL() *int64 { - return this.FielL -} - -func (this *CustomNameNinOptNative) GetFieldM() *bool { - return this.FieldM -} - -func (this *CustomNameNinOptNative) GetFieldN() *string { - return this.FieldN -} - -func (this *CustomNameNinOptNative) GetFieldO() []byte { - return this.FieldO -} - -func NewCustomNameNinOptNativeFromFace(that CustomNameNinOptNativeFace) *CustomNameNinOptNative { - this := &CustomNameNinOptNative{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - this.FieldK = that.GetFieldK() - this.FielL = that.GetFielL() - this.FieldM = that.GetFieldM() - this.FieldN = that.GetFieldN() - this.FieldO = that.GetFieldO() - return this -} - -type CustomNameNinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() []float64 - GetFieldB() []float32 - GetFieldC() []int32 - GetFieldD() []int64 - GetFieldE() []uint32 - GetFieldF() []uint64 - GetFieldG() []int32 - GetFieldH() []int64 - GetFieldI() []uint32 - GetFieldJ() []int32 - GetFieldK() []uint64 - GetFieldL() []int64 - GetFieldM() []bool - GetFieldN() []string - GetFieldO() [][]byte -} - -func (this *CustomNameNinRepNative) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinRepNativeFromFace(this) -} - -func (this *CustomNameNinRepNative) GetFieldA() []float64 { - return this.FieldA -} - -func (this *CustomNameNinRepNative) GetFieldB() []float32 { - return this.FieldB -} - -func (this *CustomNameNinRepNative) GetFieldC() []int32 { - return this.FieldC -} - -func (this *CustomNameNinRepNative) GetFieldD() []int64 { - return this.FieldD -} - -func (this *CustomNameNinRepNative) GetFieldE() []uint32 { - return this.FieldE -} - -func (this *CustomNameNinRepNative) GetFieldF() []uint64 { - return this.FieldF -} - -func (this *CustomNameNinRepNative) GetFieldG() []int32 { - return this.FieldG -} - -func (this *CustomNameNinRepNative) GetFieldH() []int64 { - return this.FieldH -} - -func (this *CustomNameNinRepNative) GetFieldI() []uint32 { - return this.FieldI -} - -func (this *CustomNameNinRepNative) GetFieldJ() []int32 { - return this.FieldJ -} - -func (this *CustomNameNinRepNative) GetFieldK() []uint64 { - return this.FieldK -} - -func (this *CustomNameNinRepNative) GetFieldL() []int64 { - return this.FieldL -} - -func (this *CustomNameNinRepNative) GetFieldM() []bool { - return this.FieldM -} - -func (this *CustomNameNinRepNative) GetFieldN() []string { - return this.FieldN -} - -func (this *CustomNameNinRepNative) GetFieldO() [][]byte { - return this.FieldO -} - -func NewCustomNameNinRepNativeFromFace(that CustomNameNinRepNativeFace) *CustomNameNinRepNative { - this := &CustomNameNinRepNative{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - this.FieldK = that.GetFieldK() - this.FieldL = that.GetFieldL() - this.FieldM = that.GetFieldM() - this.FieldN = that.GetFieldN() - this.FieldO = that.GetFieldO() - return this -} - -type CustomNameNinStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *float64 - GetFieldB() *float32 - GetFieldC() *NidOptNative - GetFieldD() []*NinOptNative - GetFieldE() *uint64 - GetFieldF() *int32 - GetFieldG() *NidOptNative - GetFieldH() *bool - GetFieldI() *string - GetFieldJ() []byte -} - -func (this *CustomNameNinStruct) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinStruct) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinStructFromFace(this) -} - -func (this *CustomNameNinStruct) GetFieldA() *float64 { - return this.FieldA -} - -func (this *CustomNameNinStruct) GetFieldB() *float32 { - return this.FieldB -} - -func (this *CustomNameNinStruct) GetFieldC() *NidOptNative { - return this.FieldC -} - -func (this *CustomNameNinStruct) GetFieldD() []*NinOptNative { - return this.FieldD -} - -func (this *CustomNameNinStruct) GetFieldE() *uint64 { - return this.FieldE -} - -func (this *CustomNameNinStruct) GetFieldF() *int32 { - return this.FieldF -} - -func (this *CustomNameNinStruct) GetFieldG() *NidOptNative { - return this.FieldG -} - -func (this *CustomNameNinStruct) GetFieldH() *bool { - return this.FieldH -} - -func (this *CustomNameNinStruct) GetFieldI() *string { - return this.FieldI -} - -func (this *CustomNameNinStruct) GetFieldJ() []byte { - return this.FieldJ -} - -func NewCustomNameNinStructFromFace(that CustomNameNinStructFace) *CustomNameNinStruct { - this := &CustomNameNinStruct{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - this.FieldE = that.GetFieldE() - this.FieldF = that.GetFieldF() - this.FieldG = that.GetFieldG() - this.FieldH = that.GetFieldH() - this.FieldI = that.GetFieldI() - this.FieldJ = that.GetFieldJ() - return this -} - -type CustomNameCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *Uuid - GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 - GetFieldC() []Uuid - GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *CustomNameCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameCustomTypeFromFace(this) -} - -func (this *CustomNameCustomType) GetFieldA() *Uuid { - return this.FieldA -} - -func (this *CustomNameCustomType) GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 { - return this.FieldB -} - -func (this *CustomNameCustomType) GetFieldC() []Uuid { - return this.FieldC -} - -func (this *CustomNameCustomType) GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 { - return this.FieldD -} - -func NewCustomNameCustomTypeFromFace(that CustomNameCustomTypeFace) *CustomNameCustomType { - this := &CustomNameCustomType{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - this.FieldC = that.GetFieldC() - this.FieldD = that.GetFieldD() - return this -} - -type CustomNameNinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNidOptNative() *NidOptNative - GetFieldA() *NinOptNative - GetFieldB() *bool -} - -func (this *CustomNameNinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameNinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameNinEmbeddedStructUnionFromFace(this) -} - -func (this *CustomNameNinEmbeddedStructUnion) GetNidOptNative() *NidOptNative { - return this.NidOptNative -} - -func (this *CustomNameNinEmbeddedStructUnion) GetFieldA() *NinOptNative { - return this.FieldA -} - -func (this *CustomNameNinEmbeddedStructUnion) GetFieldB() *bool { - return this.FieldB -} - -func NewCustomNameNinEmbeddedStructUnionFromFace(that CustomNameNinEmbeddedStructUnionFace) *CustomNameNinEmbeddedStructUnion { - this := &CustomNameNinEmbeddedStructUnion{} - this.NidOptNative = that.GetNidOptNative() - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - return this -} - -type CustomNameEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetFieldA() *TheTestEnum - GetFieldB() []TheTestEnum -} - -func (this *CustomNameEnum) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomNameEnum) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomNameEnumFromFace(this) -} - -func (this *CustomNameEnum) GetFieldA() *TheTestEnum { - return this.FieldA -} - -func (this *CustomNameEnum) GetFieldB() []TheTestEnum { - return this.FieldB -} - -func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum { - this := &CustomNameEnum{} - this.FieldA = that.GetFieldA() - this.FieldB = that.GetFieldB() - return this -} - -type UnrecognizedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *string -} - -func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedFromFace(this) -} - -func (this *Unrecognized) GetField1() *string { - return this.Field1 -} - -func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized { - this := &Unrecognized{} - this.Field1 = that.GetField1() - return this -} - -type UnrecognizedWithInnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetEmbedded() []*UnrecognizedWithInner_Inner - GetField2() *string -} - -func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithInnerFromFace(this) -} - -func (this *UnrecognizedWithInner) GetEmbedded() []*UnrecognizedWithInner_Inner { - return this.Embedded -} - -func (this *UnrecognizedWithInner) GetField2() *string { - return this.Field2 -} - -func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *UnrecognizedWithInner { - this := &UnrecognizedWithInner{} - this.Embedded = that.GetEmbedded() - this.Field2 = that.GetField2() - return this -} - -type UnrecognizedWithInner_InnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *uint32 -} - -func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithInner_InnerFromFace(this) -} - -func (this *UnrecognizedWithInner_Inner) GetField1() *uint32 { - return this.Field1 -} - -func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace) *UnrecognizedWithInner_Inner { - this := &UnrecognizedWithInner_Inner{} - this.Field1 = that.GetField1() - return this -} - -type UnrecognizedWithEmbedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded - GetField2() *string -} - -func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbedFromFace(this) -} - -func (this *UnrecognizedWithEmbed) GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded { - return this.UnrecognizedWithEmbed_Embedded -} - -func (this *UnrecognizedWithEmbed) GetField2() *string { - return this.Field2 -} - -func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *UnrecognizedWithEmbed { - this := &UnrecognizedWithEmbed{} - this.UnrecognizedWithEmbed_Embedded = that.GetUnrecognizedWithEmbed_Embedded() - this.Field2 = that.GetField2() - return this -} - -type UnrecognizedWithEmbed_EmbeddedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *uint32 -} - -func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) -} - -func (this *UnrecognizedWithEmbed_Embedded) GetField1() *uint32 { - return this.Field1 -} - -func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_EmbeddedFace) *UnrecognizedWithEmbed_Embedded { - this := &UnrecognizedWithEmbed_Embedded{} - this.Field1 = that.GetField1() - return this -} - -type NodeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLabel() *string - GetChildren() []*Node -} - -func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNodeFromFace(this) -} - -func (this *Node) GetLabel() *string { - return this.Label -} - -func (this *Node) GetChildren() []*Node { - return this.Children -} - -func NewNodeFromFace(that NodeFace) *Node { - this := &Node{} - this.Label = that.GetLabel() - this.Children = that.GetChildren() - return this -} - -type NonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *T -} - -func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNonByteCustomTypeFromFace(this) -} - -func (this *NonByteCustomType) GetField1() *T { - return this.Field1 -} - -func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType { - this := &NonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NidOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() T -} - -func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidOptNonByteCustomTypeFromFace(this) -} - -func (this *NidOptNonByteCustomType) GetField1() T { - return this.Field1 -} - -func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOptNonByteCustomType { - this := &NidOptNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NinOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() *T -} - -func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinOptNonByteCustomTypeFromFace(this) -} - -func (this *NinOptNonByteCustomType) GetField1() *T { - return this.Field1 -} - -func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOptNonByteCustomType { - this := &NinOptNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NidRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []T -} - -func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNidRepNonByteCustomTypeFromFace(this) -} - -func (this *NidRepNonByteCustomType) GetField1() []T { - return this.Field1 -} - -func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRepNonByteCustomType { - this := &NidRepNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type NinRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField1() []T -} - -func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNinRepNonByteCustomTypeFromFace(this) -} - -func (this *NinRepNonByteCustomType) GetField1() []T { - return this.Field1 -} - -func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRepNonByteCustomType { - this := &NinRepNonByteCustomType{} - this.Field1 = that.GetField1() - return this -} - -type ProtoTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetField2() *string -} - -func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { - return NewProtoTypeFromFace(this) -} - -func (this *ProtoType) GetField2() *string { - return this.Field2 -} - -func NewProtoTypeFromFace(that ProtoTypeFace) *ProtoType { - this := &ProtoType{} - this.Field2 = that.GetField2() - return this -} - -func (this *NidOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NidOptNative{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NinOptNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+valueToGoStringThetest(this.Field8, "int64")+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+valueToGoStringThetest(this.Field9, "uint32")+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+valueToGoStringThetest(this.Field10, "int32")+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+valueToGoStringThetest(this.Field11, "uint64")+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+valueToGoStringThetest(this.Field12, "int64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NidRepNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NinRepNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepPackedNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 17) - s = append(s, "&test.NidRepPackedNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepPackedNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 17) - s = append(s, "&test.NinRepPackedNative{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+fmt.Sprintf("%#v", this.Field9)+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+fmt.Sprintf("%#v", this.Field10)+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+fmt.Sprintf("%#v", this.Field11)+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+fmt.Sprintf("%#v", this.Field12)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NidOptStruct{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - s = append(s, "Field3: "+strings.Replace(this.Field3.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field4: "+strings.Replace(this.Field4.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - s = append(s, "Field8: "+strings.Replace(this.Field8.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NinOptStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NidRepStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.NinRepStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+fmt.Sprintf("%#v", this.Field14)+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+fmt.Sprintf("%#v", this.Field15)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidEmbeddedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NidEmbeddedStruct{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - s = append(s, "Field200: "+strings.Replace(this.Field200.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Field210: "+fmt.Sprintf("%#v", this.Field210)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinEmbeddedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinEmbeddedStruct{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - if this.Field200 != nil { - s = append(s, "Field200: "+fmt.Sprintf("%#v", this.Field200)+",\n") - } - if this.Field210 != nil { - s = append(s, "Field210: "+valueToGoStringThetest(this.Field210, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidNestedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NidNestedStruct{") - s = append(s, "Field1: "+strings.Replace(this.Field1.GoString(), `&`, ``, 1)+",\n") - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinNestedStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NinNestedStruct{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NidOptCustom{") - s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n") - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomDash) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.CustomDash{") - if this.Value != nil { - s = append(s, "Value: "+valueToGoStringThetest(this.Value, "github_com_gogo_protobuf_test_custom_dash_type.Bytes")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NinOptCustom{") - if this.Id != nil { - s = append(s, "Id: "+valueToGoStringThetest(this.Id, "Uuid")+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+valueToGoStringThetest(this.Value, "github_com_gogo_protobuf_test_custom.Uint128")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NidRepCustom{") - if this.Id != nil { - s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepCustom) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NinRepCustom{") - if this.Id != nil { - s = append(s, "Id: "+fmt.Sprintf("%#v", this.Id)+",\n") - } - if this.Value != nil { - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNativeUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 13) - s = append(s, "&test.NinOptNativeUnion{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 13) - s = append(s, "&test.NinOptStructUnion{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinEmbeddedStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinEmbeddedStructUnion{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - if this.Field200 != nil { - s = append(s, "Field200: "+fmt.Sprintf("%#v", this.Field200)+",\n") - } - if this.Field210 != nil { - s = append(s, "Field210: "+valueToGoStringThetest(this.Field210, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinNestedStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinNestedStructUnion{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Tree) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.Tree{") - if this.Or != nil { - s = append(s, "Or: "+fmt.Sprintf("%#v", this.Or)+",\n") - } - if this.And != nil { - s = append(s, "And: "+fmt.Sprintf("%#v", this.And)+",\n") - } - if this.Leaf != nil { - s = append(s, "Leaf: "+fmt.Sprintf("%#v", this.Leaf)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *OrBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.OrBranch{") - s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AndBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.AndBranch{") - s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Leaf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.Leaf{") - s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") - s = append(s, "StrValue: "+fmt.Sprintf("%#v", this.StrValue)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *DeepTree) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.DeepTree{") - if this.Down != nil { - s = append(s, "Down: "+fmt.Sprintf("%#v", this.Down)+",\n") - } - if this.And != nil { - s = append(s, "And: "+fmt.Sprintf("%#v", this.And)+",\n") - } - if this.Leaf != nil { - s = append(s, "Leaf: "+fmt.Sprintf("%#v", this.Leaf)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ADeepBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.ADeepBranch{") - s = append(s, "Down: "+strings.Replace(this.Down.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AndDeepBranch) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.AndDeepBranch{") - s = append(s, "Left: "+strings.Replace(this.Left.GoString(), `&`, ``, 1)+",\n") - s = append(s, "Right: "+strings.Replace(this.Right.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *DeepLeaf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.DeepLeaf{") - s = append(s, "Tree: "+strings.Replace(this.Tree.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Nil) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 4) - s = append(s, "&test.Nil{") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NidOptEnum{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinOptEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NidRepEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinRepEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptEnumDefault) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NinOptEnumDefault{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AnotherNinOptEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.AnotherNinOptEnum{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AnotherNinOptEnumDefault) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.AnotherNinOptEnumDefault{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Timer) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.Timer{") - s = append(s, "Time1: "+fmt.Sprintf("%#v", this.Time1)+",\n") - s = append(s, "Time2: "+fmt.Sprintf("%#v", this.Time2)+",\n") - s = append(s, "Data: "+fmt.Sprintf("%#v", this.Data)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *MyExtendable) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.MyExtendable{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") - } - s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *OtherExtenable) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.OtherExtenable{") - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "int64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "int64")+",\n") - } - if this.M != nil { - s = append(s, "M: "+fmt.Sprintf("%#v", this.M)+",\n") - } - s = append(s, "XXX_InternalExtensions: "+extensionToGoStringThetest(this)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedDefinition) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&test.NestedDefinition{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") - } - if this.EnumField != nil { - s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "test.NestedDefinition_NestedEnum")+",\n") - } - if this.NNM != nil { - s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") - } - if this.NM != nil { - s = append(s, "NM: "+fmt.Sprintf("%#v", this.NM)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedDefinition_NestedMessage) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.NestedDefinition_NestedMessage{") - if this.NestedField1 != nil { - s = append(s, "NestedField1: "+valueToGoStringThetest(this.NestedField1, "uint64")+",\n") - } - if this.NNM != nil { - s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NestedDefinition_NestedMessage_NestedNestedMsg{") - if this.NestedNestedField1 != nil { - s = append(s, "NestedNestedField1: "+valueToGoStringThetest(this.NestedNestedField1, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NestedScope) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.NestedScope{") - if this.A != nil { - s = append(s, "A: "+fmt.Sprintf("%#v", this.A)+",\n") - } - if this.B != nil { - s = append(s, "B: "+valueToGoStringThetest(this.B, "test.NestedDefinition_NestedEnum")+",\n") - } - if this.C != nil { - s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNativeDefault) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.NinOptNativeDefault{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "float64")+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "float32")+",\n") - } - if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "int32")+",\n") - } - if this.Field4 != nil { - s = append(s, "Field4: "+valueToGoStringThetest(this.Field4, "int64")+",\n") - } - if this.Field5 != nil { - s = append(s, "Field5: "+valueToGoStringThetest(this.Field5, "uint32")+",\n") - } - if this.Field6 != nil { - s = append(s, "Field6: "+valueToGoStringThetest(this.Field6, "uint64")+",\n") - } - if this.Field7 != nil { - s = append(s, "Field7: "+valueToGoStringThetest(this.Field7, "int32")+",\n") - } - if this.Field8 != nil { - s = append(s, "Field8: "+valueToGoStringThetest(this.Field8, "int64")+",\n") - } - if this.Field9 != nil { - s = append(s, "Field9: "+valueToGoStringThetest(this.Field9, "uint32")+",\n") - } - if this.Field10 != nil { - s = append(s, "Field10: "+valueToGoStringThetest(this.Field10, "int32")+",\n") - } - if this.Field11 != nil { - s = append(s, "Field11: "+valueToGoStringThetest(this.Field11, "uint64")+",\n") - } - if this.Field12 != nil { - s = append(s, "Field12: "+valueToGoStringThetest(this.Field12, "int64")+",\n") - } - if this.Field13 != nil { - s = append(s, "Field13: "+valueToGoStringThetest(this.Field13, "bool")+",\n") - } - if this.Field14 != nil { - s = append(s, "Field14: "+valueToGoStringThetest(this.Field14, "string")+",\n") - } - if this.Field15 != nil { - s = append(s, "Field15: "+valueToGoStringThetest(this.Field15, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomContainer) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.CustomContainer{") - s = append(s, "CustomStruct: "+strings.Replace(this.CustomStruct.GoString(), `&`, ``, 1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNidOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.CustomNameNidOptNative{") - s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n") - s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - s = append(s, "FieldE: "+fmt.Sprintf("%#v", this.FieldE)+",\n") - s = append(s, "FieldF: "+fmt.Sprintf("%#v", this.FieldF)+",\n") - s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n") - s = append(s, "FieldH: "+fmt.Sprintf("%#v", this.FieldH)+",\n") - s = append(s, "FieldI: "+fmt.Sprintf("%#v", this.FieldI)+",\n") - s = append(s, "FieldJ: "+fmt.Sprintf("%#v", this.FieldJ)+",\n") - s = append(s, "FieldK: "+fmt.Sprintf("%#v", this.FieldK)+",\n") - s = append(s, "FieldL: "+fmt.Sprintf("%#v", this.FieldL)+",\n") - s = append(s, "FieldM: "+fmt.Sprintf("%#v", this.FieldM)+",\n") - s = append(s, "FieldN: "+fmt.Sprintf("%#v", this.FieldN)+",\n") - s = append(s, "FieldO: "+fmt.Sprintf("%#v", this.FieldO)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinOptNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.CustomNameNinOptNative{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "float64")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "float32")+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+valueToGoStringThetest(this.FieldC, "int32")+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+valueToGoStringThetest(this.FieldD, "int64")+",\n") - } - if this.FieldE != nil { - s = append(s, "FieldE: "+valueToGoStringThetest(this.FieldE, "uint32")+",\n") - } - if this.FieldF != nil { - s = append(s, "FieldF: "+valueToGoStringThetest(this.FieldF, "uint64")+",\n") - } - if this.FieldG != nil { - s = append(s, "FieldG: "+valueToGoStringThetest(this.FieldG, "int32")+",\n") - } - if this.FieldH != nil { - s = append(s, "FieldH: "+valueToGoStringThetest(this.FieldH, "int64")+",\n") - } - if this.FieldI != nil { - s = append(s, "FieldI: "+valueToGoStringThetest(this.FieldI, "uint32")+",\n") - } - if this.FieldJ != nil { - s = append(s, "FieldJ: "+valueToGoStringThetest(this.FieldJ, "int32")+",\n") - } - if this.FieldK != nil { - s = append(s, "FieldK: "+valueToGoStringThetest(this.FieldK, "uint64")+",\n") - } - if this.FielL != nil { - s = append(s, "FielL: "+valueToGoStringThetest(this.FielL, "int64")+",\n") - } - if this.FieldM != nil { - s = append(s, "FieldM: "+valueToGoStringThetest(this.FieldM, "bool")+",\n") - } - if this.FieldN != nil { - s = append(s, "FieldN: "+valueToGoStringThetest(this.FieldN, "string")+",\n") - } - if this.FieldO != nil { - s = append(s, "FieldO: "+valueToGoStringThetest(this.FieldO, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinRepNative) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 19) - s = append(s, "&test.CustomNameNinRepNative{") - if this.FieldA != nil { - s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - } - if this.FieldE != nil { - s = append(s, "FieldE: "+fmt.Sprintf("%#v", this.FieldE)+",\n") - } - if this.FieldF != nil { - s = append(s, "FieldF: "+fmt.Sprintf("%#v", this.FieldF)+",\n") - } - if this.FieldG != nil { - s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n") - } - if this.FieldH != nil { - s = append(s, "FieldH: "+fmt.Sprintf("%#v", this.FieldH)+",\n") - } - if this.FieldI != nil { - s = append(s, "FieldI: "+fmt.Sprintf("%#v", this.FieldI)+",\n") - } - if this.FieldJ != nil { - s = append(s, "FieldJ: "+fmt.Sprintf("%#v", this.FieldJ)+",\n") - } - if this.FieldK != nil { - s = append(s, "FieldK: "+fmt.Sprintf("%#v", this.FieldK)+",\n") - } - if this.FieldL != nil { - s = append(s, "FieldL: "+fmt.Sprintf("%#v", this.FieldL)+",\n") - } - if this.FieldM != nil { - s = append(s, "FieldM: "+fmt.Sprintf("%#v", this.FieldM)+",\n") - } - if this.FieldN != nil { - s = append(s, "FieldN: "+fmt.Sprintf("%#v", this.FieldN)+",\n") - } - if this.FieldO != nil { - s = append(s, "FieldO: "+fmt.Sprintf("%#v", this.FieldO)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinStruct) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 14) - s = append(s, "&test.CustomNameNinStruct{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "float64")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "float32")+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - } - if this.FieldE != nil { - s = append(s, "FieldE: "+valueToGoStringThetest(this.FieldE, "uint64")+",\n") - } - if this.FieldF != nil { - s = append(s, "FieldF: "+valueToGoStringThetest(this.FieldF, "int32")+",\n") - } - if this.FieldG != nil { - s = append(s, "FieldG: "+fmt.Sprintf("%#v", this.FieldG)+",\n") - } - if this.FieldH != nil { - s = append(s, "FieldH: "+valueToGoStringThetest(this.FieldH, "bool")+",\n") - } - if this.FieldI != nil { - s = append(s, "FieldI: "+valueToGoStringThetest(this.FieldI, "string")+",\n") - } - if this.FieldJ != nil { - s = append(s, "FieldJ: "+valueToGoStringThetest(this.FieldJ, "byte")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&test.CustomNameCustomType{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "Uuid")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "github_com_gogo_protobuf_test_custom.Uint128")+",\n") - } - if this.FieldC != nil { - s = append(s, "FieldC: "+fmt.Sprintf("%#v", this.FieldC)+",\n") - } - if this.FieldD != nil { - s = append(s, "FieldD: "+fmt.Sprintf("%#v", this.FieldD)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameNinEmbeddedStructUnion) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&test.CustomNameNinEmbeddedStructUnion{") - if this.NidOptNative != nil { - s = append(s, "NidOptNative: "+fmt.Sprintf("%#v", this.NidOptNative)+",\n") - } - if this.FieldA != nil { - s = append(s, "FieldA: "+fmt.Sprintf("%#v", this.FieldA)+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+valueToGoStringThetest(this.FieldB, "bool")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomNameEnum) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.CustomNameEnum{") - if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "test.TheTestEnum")+",\n") - } - if this.FieldB != nil { - s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NoExtensionsMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NoExtensionsMap{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") - } - if this.XXX_extensions != nil { - s = append(s, "XXX_extensions: "+fmt.Sprintf("%#v", this.XXX_extensions)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Unrecognized) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.Unrecognized{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "string")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithInner) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.UnrecognizedWithInner{") - if this.Embedded != nil { - s = append(s, "Embedded: "+fmt.Sprintf("%#v", this.Embedded)+",\n") - } - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithInner_Inner) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.UnrecognizedWithInner_Inner{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "uint32")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithEmbed) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.UnrecognizedWithEmbed{") - s = append(s, "UnrecognizedWithEmbed_Embedded: "+strings.Replace(this.UnrecognizedWithEmbed_Embedded.GoString(), `&`, ``, 1)+",\n") - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *UnrecognizedWithEmbed_Embedded) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.UnrecognizedWithEmbed_Embedded{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "uint32")+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Node) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&test.Node{") - if this.Label != nil { - s = append(s, "Label: "+valueToGoStringThetest(this.Label, "string")+",\n") - } - if this.Children != nil { - s = append(s, "Children: "+fmt.Sprintf("%#v", this.Children)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidOptNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NidOptNonByteCustomType{") - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinOptNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NinOptNonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "T")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NidRepNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NidRepNonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NinRepNonByteCustomType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.NinRepNonByteCustomType{") - if this.Field1 != nil { - s = append(s, "Field1: "+fmt.Sprintf("%#v", this.Field1)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ProtoType) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&test.ProtoType{") - if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringThetest(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { - e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) - if e == nil { - return "nil" - } - s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{" - keys := make([]int, 0, len(e)) - for k := range e { - keys = append(keys, int(k)) - } - sort.Ints(keys) - ss := []string{} - for _, k := range keys { - ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString()) - } - s += strings.Join(ss, ",") + "})" - return s -} -func NewPopulatedNidOptNative(r randyThetest, easy bool) *NidOptNative { - this := &NidOptNative{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - this.Field4 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4 *= -1 - } - this.Field5 = uint32(r.Uint32()) - this.Field6 = uint64(uint64(r.Uint32())) - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - this.Field8 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8 *= -1 - } - this.Field9 = uint32(r.Uint32()) - this.Field10 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10 *= -1 - } - this.Field11 = uint64(uint64(r.Uint32())) - this.Field12 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12 *= -1 - } - this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = string(randStringThetest(r)) - v1 := r.Intn(100) - this.Field15 = make([]byte, v1) - for i := 0; i < v1; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinOptNative(r randyThetest, easy bool) *NinOptNative { - this := &NinOptNative{} - if r.Intn(10) != 0 { - v2 := float64(r.Float64()) - if r.Intn(2) == 0 { - v2 *= -1 - } - this.Field1 = &v2 - } - if r.Intn(10) != 0 { - v3 := float32(r.Float32()) - if r.Intn(2) == 0 { - v3 *= -1 - } - this.Field2 = &v3 - } - if r.Intn(10) != 0 { - v4 := int32(r.Int31()) - if r.Intn(2) == 0 { - v4 *= -1 - } - this.Field3 = &v4 - } - if r.Intn(10) != 0 { - v5 := int64(r.Int63()) - if r.Intn(2) == 0 { - v5 *= -1 - } - this.Field4 = &v5 - } - if r.Intn(10) != 0 { - v6 := uint32(r.Uint32()) - this.Field5 = &v6 - } - if r.Intn(10) != 0 { - v7 := uint64(uint64(r.Uint32())) - this.Field6 = &v7 - } - if r.Intn(10) != 0 { - v8 := int32(r.Int31()) - if r.Intn(2) == 0 { - v8 *= -1 - } - this.Field7 = &v8 - } - if r.Intn(10) != 0 { - v9 := int64(r.Int63()) - if r.Intn(2) == 0 { - v9 *= -1 - } - this.Field8 = &v9 - } - if r.Intn(10) != 0 { - v10 := uint32(r.Uint32()) - this.Field9 = &v10 - } - if r.Intn(10) != 0 { - v11 := int32(r.Int31()) - if r.Intn(2) == 0 { - v11 *= -1 - } - this.Field10 = &v11 - } - if r.Intn(10) != 0 { - v12 := uint64(uint64(r.Uint32())) - this.Field11 = &v12 - } - if r.Intn(10) != 0 { - v13 := int64(r.Int63()) - if r.Intn(2) == 0 { - v13 *= -1 - } - this.Field12 = &v13 - } - if r.Intn(10) != 0 { - v14 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v14 - } - if r.Intn(10) != 0 { - v15 := string(randStringThetest(r)) - this.Field14 = &v15 - } - if r.Intn(10) != 0 { - v16 := r.Intn(100) - this.Field15 = make([]byte, v16) - for i := 0; i < v16; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidRepNative(r randyThetest, easy bool) *NidRepNative { - this := &NidRepNative{} - if r.Intn(10) != 0 { - v17 := r.Intn(10) - this.Field1 = make([]float64, v17) - for i := 0; i < v17; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v18 := r.Intn(10) - this.Field2 = make([]float32, v18) - for i := 0; i < v18; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v19 := r.Intn(10) - this.Field3 = make([]int32, v19) - for i := 0; i < v19; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v20 := r.Intn(10) - this.Field4 = make([]int64, v20) - for i := 0; i < v20; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v21 := r.Intn(10) - this.Field5 = make([]uint32, v21) - for i := 0; i < v21; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v22 := r.Intn(10) - this.Field6 = make([]uint64, v22) - for i := 0; i < v22; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v23 := r.Intn(10) - this.Field7 = make([]int32, v23) - for i := 0; i < v23; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v24 := r.Intn(10) - this.Field8 = make([]int64, v24) - for i := 0; i < v24; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v25 := r.Intn(10) - this.Field9 = make([]uint32, v25) - for i := 0; i < v25; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v26 := r.Intn(10) - this.Field10 = make([]int32, v26) - for i := 0; i < v26; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v27 := r.Intn(10) - this.Field11 = make([]uint64, v27) - for i := 0; i < v27; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v28 := r.Intn(10) - this.Field12 = make([]int64, v28) - for i := 0; i < v28; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v29 := r.Intn(10) - this.Field13 = make([]bool, v29) - for i := 0; i < v29; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v30 := r.Intn(10) - this.Field14 = make([]string, v30) - for i := 0; i < v30; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v31 := r.Intn(10) - this.Field15 = make([][]byte, v31) - for i := 0; i < v31; i++ { - v32 := r.Intn(100) - this.Field15[i] = make([]byte, v32) - for j := 0; j < v32; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinRepNative(r randyThetest, easy bool) *NinRepNative { - this := &NinRepNative{} - if r.Intn(10) != 0 { - v33 := r.Intn(10) - this.Field1 = make([]float64, v33) - for i := 0; i < v33; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v34 := r.Intn(10) - this.Field2 = make([]float32, v34) - for i := 0; i < v34; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v35 := r.Intn(10) - this.Field3 = make([]int32, v35) - for i := 0; i < v35; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.Field4 = make([]int64, v36) - for i := 0; i < v36; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v37 := r.Intn(10) - this.Field5 = make([]uint32, v37) - for i := 0; i < v37; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v38 := r.Intn(10) - this.Field6 = make([]uint64, v38) - for i := 0; i < v38; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v39 := r.Intn(10) - this.Field7 = make([]int32, v39) - for i := 0; i < v39; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v40 := r.Intn(10) - this.Field8 = make([]int64, v40) - for i := 0; i < v40; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v41 := r.Intn(10) - this.Field9 = make([]uint32, v41) - for i := 0; i < v41; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v42 := r.Intn(10) - this.Field10 = make([]int32, v42) - for i := 0; i < v42; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v43 := r.Intn(10) - this.Field11 = make([]uint64, v43) - for i := 0; i < v43; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v44 := r.Intn(10) - this.Field12 = make([]int64, v44) - for i := 0; i < v44; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v45 := r.Intn(10) - this.Field13 = make([]bool, v45) - for i := 0; i < v45; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v46 := r.Intn(10) - this.Field14 = make([]string, v46) - for i := 0; i < v46; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v47 := r.Intn(10) - this.Field15 = make([][]byte, v47) - for i := 0; i < v47; i++ { - v48 := r.Intn(100) - this.Field15[i] = make([]byte, v48) - for j := 0; j < v48; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidRepPackedNative(r randyThetest, easy bool) *NidRepPackedNative { - this := &NidRepPackedNative{} - if r.Intn(10) != 0 { - v49 := r.Intn(10) - this.Field1 = make([]float64, v49) - for i := 0; i < v49; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v50 := r.Intn(10) - this.Field2 = make([]float32, v50) - for i := 0; i < v50; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v51 := r.Intn(10) - this.Field3 = make([]int32, v51) - for i := 0; i < v51; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v52 := r.Intn(10) - this.Field4 = make([]int64, v52) - for i := 0; i < v52; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v53 := r.Intn(10) - this.Field5 = make([]uint32, v53) - for i := 0; i < v53; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v54 := r.Intn(10) - this.Field6 = make([]uint64, v54) - for i := 0; i < v54; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v55 := r.Intn(10) - this.Field7 = make([]int32, v55) - for i := 0; i < v55; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v56 := r.Intn(10) - this.Field8 = make([]int64, v56) - for i := 0; i < v56; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v57 := r.Intn(10) - this.Field9 = make([]uint32, v57) - for i := 0; i < v57; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v58 := r.Intn(10) - this.Field10 = make([]int32, v58) - for i := 0; i < v58; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v59 := r.Intn(10) - this.Field11 = make([]uint64, v59) - for i := 0; i < v59; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v60 := r.Intn(10) - this.Field12 = make([]int64, v60) - for i := 0; i < v60; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v61 := r.Intn(10) - this.Field13 = make([]bool, v61) - for i := 0; i < v61; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 14) - } - return this -} - -func NewPopulatedNinRepPackedNative(r randyThetest, easy bool) *NinRepPackedNative { - this := &NinRepPackedNative{} - if r.Intn(10) != 0 { - v62 := r.Intn(10) - this.Field1 = make([]float64, v62) - for i := 0; i < v62; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v63 := r.Intn(10) - this.Field2 = make([]float32, v63) - for i := 0; i < v63; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v64 := r.Intn(10) - this.Field3 = make([]int32, v64) - for i := 0; i < v64; i++ { - this.Field3[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v65 := r.Intn(10) - this.Field4 = make([]int64, v65) - for i := 0; i < v65; i++ { - this.Field4[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v66 := r.Intn(10) - this.Field5 = make([]uint32, v66) - for i := 0; i < v66; i++ { - this.Field5[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v67 := r.Intn(10) - this.Field6 = make([]uint64, v67) - for i := 0; i < v67; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v68 := r.Intn(10) - this.Field7 = make([]int32, v68) - for i := 0; i < v68; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v69 := r.Intn(10) - this.Field8 = make([]int64, v69) - for i := 0; i < v69; i++ { - this.Field8[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v70 := r.Intn(10) - this.Field9 = make([]uint32, v70) - for i := 0; i < v70; i++ { - this.Field9[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v71 := r.Intn(10) - this.Field10 = make([]int32, v71) - for i := 0; i < v71; i++ { - this.Field10[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v72 := r.Intn(10) - this.Field11 = make([]uint64, v72) - for i := 0; i < v72; i++ { - this.Field11[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v73 := r.Intn(10) - this.Field12 = make([]int64, v73) - for i := 0; i < v73; i++ { - this.Field12[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v74 := r.Intn(10) - this.Field13 = make([]bool, v74) - for i := 0; i < v74; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 14) - } - return this -} - -func NewPopulatedNidOptStruct(r randyThetest, easy bool) *NidOptStruct { - this := &NidOptStruct{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - v75 := NewPopulatedNidOptNative(r, easy) - this.Field3 = *v75 - v76 := NewPopulatedNinOptNative(r, easy) - this.Field4 = *v76 - this.Field6 = uint64(uint64(r.Uint32())) - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - v77 := NewPopulatedNidOptNative(r, easy) - this.Field8 = *v77 - this.Field13 = bool(bool(r.Intn(2) == 0)) - this.Field14 = string(randStringThetest(r)) - v78 := r.Intn(100) - this.Field15 = make([]byte, v78) - for i := 0; i < v78; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinOptStruct(r randyThetest, easy bool) *NinOptStruct { - this := &NinOptStruct{} - if r.Intn(10) != 0 { - v79 := float64(r.Float64()) - if r.Intn(2) == 0 { - v79 *= -1 - } - this.Field1 = &v79 - } - if r.Intn(10) != 0 { - v80 := float32(r.Float32()) - if r.Intn(2) == 0 { - v80 *= -1 - } - this.Field2 = &v80 - } - if r.Intn(10) != 0 { - this.Field3 = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - this.Field4 = NewPopulatedNinOptNative(r, easy) - } - if r.Intn(10) != 0 { - v81 := uint64(uint64(r.Uint32())) - this.Field6 = &v81 - } - if r.Intn(10) != 0 { - v82 := int32(r.Int31()) - if r.Intn(2) == 0 { - v82 *= -1 - } - this.Field7 = &v82 - } - if r.Intn(10) != 0 { - this.Field8 = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v83 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v83 - } - if r.Intn(10) != 0 { - v84 := string(randStringThetest(r)) - this.Field14 = &v84 - } - if r.Intn(10) != 0 { - v85 := r.Intn(100) - this.Field15 = make([]byte, v85) - for i := 0; i < v85; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidRepStruct(r randyThetest, easy bool) *NidRepStruct { - this := &NidRepStruct{} - if r.Intn(10) != 0 { - v86 := r.Intn(10) - this.Field1 = make([]float64, v86) - for i := 0; i < v86; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v87 := r.Intn(10) - this.Field2 = make([]float32, v87) - for i := 0; i < v87; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v88 := r.Intn(5) - this.Field3 = make([]NidOptNative, v88) - for i := 0; i < v88; i++ { - v89 := NewPopulatedNidOptNative(r, easy) - this.Field3[i] = *v89 - } - } - if r.Intn(10) != 0 { - v90 := r.Intn(5) - this.Field4 = make([]NinOptNative, v90) - for i := 0; i < v90; i++ { - v91 := NewPopulatedNinOptNative(r, easy) - this.Field4[i] = *v91 - } - } - if r.Intn(10) != 0 { - v92 := r.Intn(10) - this.Field6 = make([]uint64, v92) - for i := 0; i < v92; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v93 := r.Intn(10) - this.Field7 = make([]int32, v93) - for i := 0; i < v93; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v94 := r.Intn(5) - this.Field8 = make([]NidOptNative, v94) - for i := 0; i < v94; i++ { - v95 := NewPopulatedNidOptNative(r, easy) - this.Field8[i] = *v95 - } - } - if r.Intn(10) != 0 { - v96 := r.Intn(10) - this.Field13 = make([]bool, v96) - for i := 0; i < v96; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v97 := r.Intn(10) - this.Field14 = make([]string, v97) - for i := 0; i < v97; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v98 := r.Intn(10) - this.Field15 = make([][]byte, v98) - for i := 0; i < v98; i++ { - v99 := r.Intn(100) - this.Field15[i] = make([]byte, v99) - for j := 0; j < v99; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNinRepStruct(r randyThetest, easy bool) *NinRepStruct { - this := &NinRepStruct{} - if r.Intn(10) != 0 { - v100 := r.Intn(10) - this.Field1 = make([]float64, v100) - for i := 0; i < v100; i++ { - this.Field1[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v101 := r.Intn(10) - this.Field2 = make([]float32, v101) - for i := 0; i < v101; i++ { - this.Field2[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v102 := r.Intn(5) - this.Field3 = make([]*NidOptNative, v102) - for i := 0; i < v102; i++ { - this.Field3[i] = NewPopulatedNidOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v103 := r.Intn(5) - this.Field4 = make([]*NinOptNative, v103) - for i := 0; i < v103; i++ { - this.Field4[i] = NewPopulatedNinOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v104 := r.Intn(10) - this.Field6 = make([]uint64, v104) - for i := 0; i < v104; i++ { - this.Field6[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v105 := r.Intn(10) - this.Field7 = make([]int32, v105) - for i := 0; i < v105; i++ { - this.Field7[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v106 := r.Intn(5) - this.Field8 = make([]*NidOptNative, v106) - for i := 0; i < v106; i++ { - this.Field8[i] = NewPopulatedNidOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v107 := r.Intn(10) - this.Field13 = make([]bool, v107) - for i := 0; i < v107; i++ { - this.Field13[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v108 := r.Intn(10) - this.Field14 = make([]string, v108) - for i := 0; i < v108; i++ { - this.Field14[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v109 := r.Intn(10) - this.Field15 = make([][]byte, v109) - for i := 0; i < v109; i++ { - v110 := r.Intn(100) - this.Field15[i] = make([]byte, v110) - for j := 0; j < v110; j++ { - this.Field15[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedNidEmbeddedStruct(r randyThetest, easy bool) *NidEmbeddedStruct { - this := &NidEmbeddedStruct{} - if r.Intn(10) != 0 { - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - } - v111 := NewPopulatedNidOptNative(r, easy) - this.Field200 = *v111 - this.Field210 = bool(bool(r.Intn(2) == 0)) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 211) - } - return this -} - -func NewPopulatedNinEmbeddedStruct(r randyThetest, easy bool) *NinEmbeddedStruct { - this := &NinEmbeddedStruct{} - if r.Intn(10) != 0 { - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - this.Field200 = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v112 := bool(bool(r.Intn(2) == 0)) - this.Field210 = &v112 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 211) - } - return this -} - -func NewPopulatedNidNestedStruct(r randyThetest, easy bool) *NidNestedStruct { - this := &NidNestedStruct{} - v113 := NewPopulatedNidOptStruct(r, easy) - this.Field1 = *v113 - if r.Intn(10) != 0 { - v114 := r.Intn(5) - this.Field2 = make([]NidRepStruct, v114) - for i := 0; i < v114; i++ { - v115 := NewPopulatedNidRepStruct(r, easy) - this.Field2[i] = *v115 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNinNestedStruct(r randyThetest, easy bool) *NinNestedStruct { - this := &NinNestedStruct{} - if r.Intn(10) != 0 { - this.Field1 = NewPopulatedNinOptStruct(r, easy) - } - if r.Intn(10) != 0 { - v116 := r.Intn(5) - this.Field2 = make([]*NinRepStruct, v116) - for i := 0; i < v116; i++ { - this.Field2[i] = NewPopulatedNinRepStruct(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNidOptCustom(r randyThetest, easy bool) *NidOptCustom { - this := &NidOptCustom{} - v117 := NewPopulatedUuid(r) - this.Id = *v117 - v118 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Value = *v118 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedCustomDash(r randyThetest, easy bool) *CustomDash { - this := &CustomDash{} - if r.Intn(10) != 0 { - this.Value = github_com_gogo_protobuf_test_custom_dash_type.NewPopulatedBytes(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinOptCustom(r randyThetest, easy bool) *NinOptCustom { - this := &NinOptCustom{} - if r.Intn(10) != 0 { - this.Id = NewPopulatedUuid(r) - } - if r.Intn(10) != 0 { - this.Value = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNidRepCustom(r randyThetest, easy bool) *NidRepCustom { - this := &NidRepCustom{} - if r.Intn(10) != 0 { - v119 := r.Intn(10) - this.Id = make([]Uuid, v119) - for i := 0; i < v119; i++ { - v120 := NewPopulatedUuid(r) - this.Id[i] = *v120 - } - } - if r.Intn(10) != 0 { - v121 := r.Intn(10) - this.Value = make([]github_com_gogo_protobuf_test_custom.Uint128, v121) - for i := 0; i < v121; i++ { - v122 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Value[i] = *v122 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNinRepCustom(r randyThetest, easy bool) *NinRepCustom { - this := &NinRepCustom{} - if r.Intn(10) != 0 { - v123 := r.Intn(10) - this.Id = make([]Uuid, v123) - for i := 0; i < v123; i++ { - v124 := NewPopulatedUuid(r) - this.Id[i] = *v124 - } - } - if r.Intn(10) != 0 { - v125 := r.Intn(10) - this.Value = make([]github_com_gogo_protobuf_test_custom.Uint128, v125) - for i := 0; i < v125; i++ { - v126 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Value[i] = *v126 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNinOptNativeUnion(r randyThetest, easy bool) *NinOptNativeUnion { - this := &NinOptNativeUnion{} - fieldNum := r.Intn(9) - switch fieldNum { - case 0: - v127 := float64(r.Float64()) - if r.Intn(2) == 0 { - v127 *= -1 - } - this.Field1 = &v127 - case 1: - v128 := float32(r.Float32()) - if r.Intn(2) == 0 { - v128 *= -1 - } - this.Field2 = &v128 - case 2: - v129 := int32(r.Int31()) - if r.Intn(2) == 0 { - v129 *= -1 - } - this.Field3 = &v129 - case 3: - v130 := int64(r.Int63()) - if r.Intn(2) == 0 { - v130 *= -1 - } - this.Field4 = &v130 - case 4: - v131 := uint32(r.Uint32()) - this.Field5 = &v131 - case 5: - v132 := uint64(uint64(r.Uint32())) - this.Field6 = &v132 - case 6: - v133 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v133 - case 7: - v134 := string(randStringThetest(r)) - this.Field14 = &v134 - case 8: - v135 := r.Intn(100) - this.Field15 = make([]byte, v135) - for i := 0; i < v135; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - return this -} - -func NewPopulatedNinOptStructUnion(r randyThetest, easy bool) *NinOptStructUnion { - this := &NinOptStructUnion{} - fieldNum := r.Intn(9) - switch fieldNum { - case 0: - v136 := float64(r.Float64()) - if r.Intn(2) == 0 { - v136 *= -1 - } - this.Field1 = &v136 - case 1: - v137 := float32(r.Float32()) - if r.Intn(2) == 0 { - v137 *= -1 - } - this.Field2 = &v137 - case 2: - this.Field3 = NewPopulatedNidOptNative(r, easy) - case 3: - this.Field4 = NewPopulatedNinOptNative(r, easy) - case 4: - v138 := uint64(uint64(r.Uint32())) - this.Field6 = &v138 - case 5: - v139 := int32(r.Int31()) - if r.Intn(2) == 0 { - v139 *= -1 - } - this.Field7 = &v139 - case 6: - v140 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v140 - case 7: - v141 := string(randStringThetest(r)) - this.Field14 = &v141 - case 8: - v142 := r.Intn(100) - this.Field15 = make([]byte, v142) - for i := 0; i < v142; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - return this -} - -func NewPopulatedNinEmbeddedStructUnion(r randyThetest, easy bool) *NinEmbeddedStructUnion { - this := &NinEmbeddedStructUnion{} - fieldNum := r.Intn(3) - switch fieldNum { - case 0: - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - case 1: - this.Field200 = NewPopulatedNinOptNative(r, easy) - case 2: - v143 := bool(bool(r.Intn(2) == 0)) - this.Field210 = &v143 - } - return this -} - -func NewPopulatedNinNestedStructUnion(r randyThetest, easy bool) *NinNestedStructUnion { - this := &NinNestedStructUnion{} - fieldNum := r.Intn(3) - switch fieldNum { - case 0: - this.Field1 = NewPopulatedNinOptNativeUnion(r, easy) - case 1: - this.Field2 = NewPopulatedNinOptStructUnion(r, easy) - case 2: - this.Field3 = NewPopulatedNinEmbeddedStructUnion(r, easy) - } - return this -} - -func NewPopulatedTree(r randyThetest, easy bool) *Tree { - this := &Tree{} - fieldNum := r.Intn(102) - switch fieldNum { - case 0: - this.Or = NewPopulatedOrBranch(r, easy) - case 1: - this.And = NewPopulatedAndBranch(r, easy) - case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101: - this.Leaf = NewPopulatedLeaf(r, easy) - } - return this -} - -func NewPopulatedOrBranch(r randyThetest, easy bool) *OrBranch { - this := &OrBranch{} - v144 := NewPopulatedTree(r, easy) - this.Left = *v144 - v145 := NewPopulatedTree(r, easy) - this.Right = *v145 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedAndBranch(r randyThetest, easy bool) *AndBranch { - this := &AndBranch{} - v146 := NewPopulatedTree(r, easy) - this.Left = *v146 - v147 := NewPopulatedTree(r, easy) - this.Right = *v147 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedLeaf(r randyThetest, easy bool) *Leaf { - this := &Leaf{} - this.Value = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Value *= -1 - } - this.StrValue = string(randStringThetest(r)) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedDeepTree(r randyThetest, easy bool) *DeepTree { - this := &DeepTree{} - fieldNum := r.Intn(102) - switch fieldNum { - case 0: - this.Down = NewPopulatedADeepBranch(r, easy) - case 1: - this.And = NewPopulatedAndDeepBranch(r, easy) - case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101: - this.Leaf = NewPopulatedDeepLeaf(r, easy) - } - return this -} - -func NewPopulatedADeepBranch(r randyThetest, easy bool) *ADeepBranch { - this := &ADeepBranch{} - v148 := NewPopulatedDeepTree(r, easy) - this.Down = *v148 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedAndDeepBranch(r randyThetest, easy bool) *AndDeepBranch { - this := &AndDeepBranch{} - v149 := NewPopulatedDeepTree(r, easy) - this.Left = *v149 - v150 := NewPopulatedDeepTree(r, easy) - this.Right = *v150 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedDeepLeaf(r randyThetest, easy bool) *DeepLeaf { - this := &DeepLeaf{} - v151 := NewPopulatedTree(r, easy) - this.Tree = *v151 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNil(r randyThetest, easy bool) *Nil { - this := &Nil{} - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 1) - } - return this -} - -func NewPopulatedNidOptEnum(r randyThetest, easy bool) *NidOptEnum { - this := &NidOptEnum{} - this.Field1 = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinOptEnum(r randyThetest, easy bool) *NinOptEnum { - this := &NinOptEnum{} - if r.Intn(10) != 0 { - v152 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - this.Field1 = &v152 - } - if r.Intn(10) != 0 { - v153 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v153 - } - if r.Intn(10) != 0 { - v154 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v154 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNidRepEnum(r randyThetest, easy bool) *NidRepEnum { - this := &NidRepEnum{} - if r.Intn(10) != 0 { - v155 := r.Intn(10) - this.Field1 = make([]TheTestEnum, v155) - for i := 0; i < v155; i++ { - this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v156 := r.Intn(10) - this.Field2 = make([]YetAnotherTestEnum, v156) - for i := 0; i < v156; i++ { - this.Field2[i] = YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if r.Intn(10) != 0 { - v157 := r.Intn(10) - this.Field3 = make([]YetYetAnotherTestEnum, v157) - for i := 0; i < v157; i++ { - this.Field3[i] = YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNinRepEnum(r randyThetest, easy bool) *NinRepEnum { - this := &NinRepEnum{} - if r.Intn(10) != 0 { - v158 := r.Intn(10) - this.Field1 = make([]TheTestEnum, v158) - for i := 0; i < v158; i++ { - this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v159 := r.Intn(10) - this.Field2 = make([]YetAnotherTestEnum, v159) - for i := 0; i < v159; i++ { - this.Field2[i] = YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if r.Intn(10) != 0 { - v160 := r.Intn(10) - this.Field3 = make([]YetYetAnotherTestEnum, v160) - for i := 0; i < v160; i++ { - this.Field3[i] = YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNinOptEnumDefault(r randyThetest, easy bool) *NinOptEnumDefault { - this := &NinOptEnumDefault{} - if r.Intn(10) != 0 { - v161 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - this.Field1 = &v161 - } - if r.Intn(10) != 0 { - v162 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v162 - } - if r.Intn(10) != 0 { - v163 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v163 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedAnotherNinOptEnum(r randyThetest, easy bool) *AnotherNinOptEnum { - this := &AnotherNinOptEnum{} - if r.Intn(10) != 0 { - v164 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)]) - this.Field1 = &v164 - } - if r.Intn(10) != 0 { - v165 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v165 - } - if r.Intn(10) != 0 { - v166 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v166 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedAnotherNinOptEnumDefault(r randyThetest, easy bool) *AnotherNinOptEnumDefault { - this := &AnotherNinOptEnumDefault{} - if r.Intn(10) != 0 { - v167 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)]) - this.Field1 = &v167 - } - if r.Intn(10) != 0 { - v168 := YetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field2 = &v168 - } - if r.Intn(10) != 0 { - v169 := YetYetAnotherTestEnum([]int32{0, 1}[r.Intn(2)]) - this.Field3 = &v169 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedTimer(r randyThetest, easy bool) *Timer { - this := &Timer{} - this.Time1 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Time1 *= -1 - } - this.Time2 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Time2 *= -1 - } - v170 := r.Intn(100) - this.Data = make([]byte, v170) - for i := 0; i < v170; i++ { - this.Data[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { - this := &MyExtendable{} - if r.Intn(10) != 0 { - v171 := int64(r.Int63()) - if r.Intn(2) == 0 { - v171 *= -1 - } - this.Field1 = &v171 - } - if !easy && r.Intn(10) != 0 { - l := r.Intn(5) - for i := 0; i < l; i++ { - fieldNumber := r.Intn(100) + 100 - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 201) - } - return this -} - -func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { - this := &OtherExtenable{} - if r.Intn(10) != 0 { - v172 := int64(r.Int63()) - if r.Intn(2) == 0 { - v172 *= -1 - } - this.Field2 = &v172 - } - if r.Intn(10) != 0 { - v173 := int64(r.Int63()) - if r.Intn(2) == 0 { - v173 *= -1 - } - this.Field13 = &v173 - } - if r.Intn(10) != 0 { - this.M = NewPopulatedMyExtendable(r, easy) - } - if !easy && r.Intn(10) != 0 { - l := r.Intn(5) - for i := 0; i < l; i++ { - eIndex := r.Intn(2) - fieldNumber := 0 - switch eIndex { - case 0: - fieldNumber = r.Intn(3) + 14 - case 1: - fieldNumber = r.Intn(3) + 10 - } - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 18) - } - return this -} - -func NewPopulatedNestedDefinition(r randyThetest, easy bool) *NestedDefinition { - this := &NestedDefinition{} - if r.Intn(10) != 0 { - v174 := int64(r.Int63()) - if r.Intn(2) == 0 { - v174 *= -1 - } - this.Field1 = &v174 - } - if r.Intn(10) != 0 { - v175 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)]) - this.EnumField = &v175 - } - if r.Intn(10) != 0 { - this.NNM = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy) - } - if r.Intn(10) != 0 { - this.NM = NewPopulatedNestedDefinition_NestedMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 5) - } - return this -} - -func NewPopulatedNestedDefinition_NestedMessage(r randyThetest, easy bool) *NestedDefinition_NestedMessage { - this := &NestedDefinition_NestedMessage{} - if r.Intn(10) != 0 { - v176 := uint64(uint64(r.Uint32())) - this.NestedField1 = &v176 - } - if r.Intn(10) != 0 { - this.NNM = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r randyThetest, easy bool) *NestedDefinition_NestedMessage_NestedNestedMsg { - this := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if r.Intn(10) != 0 { - v177 := string(randStringThetest(r)) - this.NestedNestedField1 = &v177 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 11) - } - return this -} - -func NewPopulatedNestedScope(r randyThetest, easy bool) *NestedScope { - this := &NestedScope{} - if r.Intn(10) != 0 { - this.A = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(r, easy) - } - if r.Intn(10) != 0 { - v178 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)]) - this.B = &v178 - } - if r.Intn(10) != 0 { - this.C = NewPopulatedNestedDefinition_NestedMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 4) - } - return this -} - -func NewPopulatedNinOptNativeDefault(r randyThetest, easy bool) *NinOptNativeDefault { - this := &NinOptNativeDefault{} - if r.Intn(10) != 0 { - v179 := float64(r.Float64()) - if r.Intn(2) == 0 { - v179 *= -1 - } - this.Field1 = &v179 - } - if r.Intn(10) != 0 { - v180 := float32(r.Float32()) - if r.Intn(2) == 0 { - v180 *= -1 - } - this.Field2 = &v180 - } - if r.Intn(10) != 0 { - v181 := int32(r.Int31()) - if r.Intn(2) == 0 { - v181 *= -1 - } - this.Field3 = &v181 - } - if r.Intn(10) != 0 { - v182 := int64(r.Int63()) - if r.Intn(2) == 0 { - v182 *= -1 - } - this.Field4 = &v182 - } - if r.Intn(10) != 0 { - v183 := uint32(r.Uint32()) - this.Field5 = &v183 - } - if r.Intn(10) != 0 { - v184 := uint64(uint64(r.Uint32())) - this.Field6 = &v184 - } - if r.Intn(10) != 0 { - v185 := int32(r.Int31()) - if r.Intn(2) == 0 { - v185 *= -1 - } - this.Field7 = &v185 - } - if r.Intn(10) != 0 { - v186 := int64(r.Int63()) - if r.Intn(2) == 0 { - v186 *= -1 - } - this.Field8 = &v186 - } - if r.Intn(10) != 0 { - v187 := uint32(r.Uint32()) - this.Field9 = &v187 - } - if r.Intn(10) != 0 { - v188 := int32(r.Int31()) - if r.Intn(2) == 0 { - v188 *= -1 - } - this.Field10 = &v188 - } - if r.Intn(10) != 0 { - v189 := uint64(uint64(r.Uint32())) - this.Field11 = &v189 - } - if r.Intn(10) != 0 { - v190 := int64(r.Int63()) - if r.Intn(2) == 0 { - v190 *= -1 - } - this.Field12 = &v190 - } - if r.Intn(10) != 0 { - v191 := bool(bool(r.Intn(2) == 0)) - this.Field13 = &v191 - } - if r.Intn(10) != 0 { - v192 := string(randStringThetest(r)) - this.Field14 = &v192 - } - if r.Intn(10) != 0 { - v193 := r.Intn(100) - this.Field15 = make([]byte, v193) - for i := 0; i < v193; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomContainer(r randyThetest, easy bool) *CustomContainer { - this := &CustomContainer{} - v194 := NewPopulatedNidOptCustom(r, easy) - this.CustomStruct = *v194 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedCustomNameNidOptNative(r randyThetest, easy bool) *CustomNameNidOptNative { - this := &CustomNameNidOptNative{} - this.FieldA = float64(r.Float64()) - if r.Intn(2) == 0 { - this.FieldA *= -1 - } - this.FieldB = float32(r.Float32()) - if r.Intn(2) == 0 { - this.FieldB *= -1 - } - this.FieldC = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldC *= -1 - } - this.FieldD = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldD *= -1 - } - this.FieldE = uint32(r.Uint32()) - this.FieldF = uint64(uint64(r.Uint32())) - this.FieldG = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldG *= -1 - } - this.FieldH = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldH *= -1 - } - this.FieldI = uint32(r.Uint32()) - this.FieldJ = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldJ *= -1 - } - this.FieldK = uint64(uint64(r.Uint32())) - this.FieldL = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldL *= -1 - } - this.FieldM = bool(bool(r.Intn(2) == 0)) - this.FieldN = string(randStringThetest(r)) - v195 := r.Intn(100) - this.FieldO = make([]byte, v195) - for i := 0; i < v195; i++ { - this.FieldO[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameNinOptNative(r randyThetest, easy bool) *CustomNameNinOptNative { - this := &CustomNameNinOptNative{} - if r.Intn(10) != 0 { - v196 := float64(r.Float64()) - if r.Intn(2) == 0 { - v196 *= -1 - } - this.FieldA = &v196 - } - if r.Intn(10) != 0 { - v197 := float32(r.Float32()) - if r.Intn(2) == 0 { - v197 *= -1 - } - this.FieldB = &v197 - } - if r.Intn(10) != 0 { - v198 := int32(r.Int31()) - if r.Intn(2) == 0 { - v198 *= -1 - } - this.FieldC = &v198 - } - if r.Intn(10) != 0 { - v199 := int64(r.Int63()) - if r.Intn(2) == 0 { - v199 *= -1 - } - this.FieldD = &v199 - } - if r.Intn(10) != 0 { - v200 := uint32(r.Uint32()) - this.FieldE = &v200 - } - if r.Intn(10) != 0 { - v201 := uint64(uint64(r.Uint32())) - this.FieldF = &v201 - } - if r.Intn(10) != 0 { - v202 := int32(r.Int31()) - if r.Intn(2) == 0 { - v202 *= -1 - } - this.FieldG = &v202 - } - if r.Intn(10) != 0 { - v203 := int64(r.Int63()) - if r.Intn(2) == 0 { - v203 *= -1 - } - this.FieldH = &v203 - } - if r.Intn(10) != 0 { - v204 := uint32(r.Uint32()) - this.FieldI = &v204 - } - if r.Intn(10) != 0 { - v205 := int32(r.Int31()) - if r.Intn(2) == 0 { - v205 *= -1 - } - this.FieldJ = &v205 - } - if r.Intn(10) != 0 { - v206 := uint64(uint64(r.Uint32())) - this.FieldK = &v206 - } - if r.Intn(10) != 0 { - v207 := int64(r.Int63()) - if r.Intn(2) == 0 { - v207 *= -1 - } - this.FielL = &v207 - } - if r.Intn(10) != 0 { - v208 := bool(bool(r.Intn(2) == 0)) - this.FieldM = &v208 - } - if r.Intn(10) != 0 { - v209 := string(randStringThetest(r)) - this.FieldN = &v209 - } - if r.Intn(10) != 0 { - v210 := r.Intn(100) - this.FieldO = make([]byte, v210) - for i := 0; i < v210; i++ { - this.FieldO[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameNinRepNative(r randyThetest, easy bool) *CustomNameNinRepNative { - this := &CustomNameNinRepNative{} - if r.Intn(10) != 0 { - v211 := r.Intn(10) - this.FieldA = make([]float64, v211) - for i := 0; i < v211; i++ { - this.FieldA[i] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.FieldA[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v212 := r.Intn(10) - this.FieldB = make([]float32, v212) - for i := 0; i < v212; i++ { - this.FieldB[i] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.FieldB[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v213 := r.Intn(10) - this.FieldC = make([]int32, v213) - for i := 0; i < v213; i++ { - this.FieldC[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldC[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v214 := r.Intn(10) - this.FieldD = make([]int64, v214) - for i := 0; i < v214; i++ { - this.FieldD[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldD[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v215 := r.Intn(10) - this.FieldE = make([]uint32, v215) - for i := 0; i < v215; i++ { - this.FieldE[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v216 := r.Intn(10) - this.FieldF = make([]uint64, v216) - for i := 0; i < v216; i++ { - this.FieldF[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v217 := r.Intn(10) - this.FieldG = make([]int32, v217) - for i := 0; i < v217; i++ { - this.FieldG[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldG[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v218 := r.Intn(10) - this.FieldH = make([]int64, v218) - for i := 0; i < v218; i++ { - this.FieldH[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldH[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v219 := r.Intn(10) - this.FieldI = make([]uint32, v219) - for i := 0; i < v219; i++ { - this.FieldI[i] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v220 := r.Intn(10) - this.FieldJ = make([]int32, v220) - for i := 0; i < v220; i++ { - this.FieldJ[i] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.FieldJ[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v221 := r.Intn(10) - this.FieldK = make([]uint64, v221) - for i := 0; i < v221; i++ { - this.FieldK[i] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v222 := r.Intn(10) - this.FieldL = make([]int64, v222) - for i := 0; i < v222; i++ { - this.FieldL[i] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.FieldL[i] *= -1 - } - } - } - if r.Intn(10) != 0 { - v223 := r.Intn(10) - this.FieldM = make([]bool, v223) - for i := 0; i < v223; i++ { - this.FieldM[i] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v224 := r.Intn(10) - this.FieldN = make([]string, v224) - for i := 0; i < v224; i++ { - this.FieldN[i] = string(randStringThetest(r)) - } - } - if r.Intn(10) != 0 { - v225 := r.Intn(10) - this.FieldO = make([][]byte, v225) - for i := 0; i < v225; i++ { - v226 := r.Intn(100) - this.FieldO[i] = make([]byte, v226) - for j := 0; j < v226; j++ { - this.FieldO[i][j] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameNinStruct(r randyThetest, easy bool) *CustomNameNinStruct { - this := &CustomNameNinStruct{} - if r.Intn(10) != 0 { - v227 := float64(r.Float64()) - if r.Intn(2) == 0 { - v227 *= -1 - } - this.FieldA = &v227 - } - if r.Intn(10) != 0 { - v228 := float32(r.Float32()) - if r.Intn(2) == 0 { - v228 *= -1 - } - this.FieldB = &v228 - } - if r.Intn(10) != 0 { - this.FieldC = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v229 := r.Intn(5) - this.FieldD = make([]*NinOptNative, v229) - for i := 0; i < v229; i++ { - this.FieldD[i] = NewPopulatedNinOptNative(r, easy) - } - } - if r.Intn(10) != 0 { - v230 := uint64(uint64(r.Uint32())) - this.FieldE = &v230 - } - if r.Intn(10) != 0 { - v231 := int32(r.Int31()) - if r.Intn(2) == 0 { - v231 *= -1 - } - this.FieldF = &v231 - } - if r.Intn(10) != 0 { - this.FieldG = NewPopulatedNidOptNative(r, easy) - } - if r.Intn(10) != 0 { - v232 := bool(bool(r.Intn(2) == 0)) - this.FieldH = &v232 - } - if r.Intn(10) != 0 { - v233 := string(randStringThetest(r)) - this.FieldI = &v233 - } - if r.Intn(10) != 0 { - v234 := r.Intn(100) - this.FieldJ = make([]byte, v234) - for i := 0; i < v234; i++ { - this.FieldJ[i] = byte(r.Intn(256)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 16) - } - return this -} - -func NewPopulatedCustomNameCustomType(r randyThetest, easy bool) *CustomNameCustomType { - this := &CustomNameCustomType{} - if r.Intn(10) != 0 { - this.FieldA = NewPopulatedUuid(r) - } - if r.Intn(10) != 0 { - this.FieldB = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - } - if r.Intn(10) != 0 { - v235 := r.Intn(10) - this.FieldC = make([]Uuid, v235) - for i := 0; i < v235; i++ { - v236 := NewPopulatedUuid(r) - this.FieldC[i] = *v236 - } - } - if r.Intn(10) != 0 { - v237 := r.Intn(10) - this.FieldD = make([]github_com_gogo_protobuf_test_custom.Uint128, v237) - for i := 0; i < v237; i++ { - v238 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.FieldD[i] = *v238 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 5) - } - return this -} - -func NewPopulatedCustomNameNinEmbeddedStructUnion(r randyThetest, easy bool) *CustomNameNinEmbeddedStructUnion { - this := &CustomNameNinEmbeddedStructUnion{} - fieldNum := r.Intn(3) - switch fieldNum { - case 0: - this.NidOptNative = NewPopulatedNidOptNative(r, easy) - case 1: - this.FieldA = NewPopulatedNinOptNative(r, easy) - case 2: - v239 := bool(bool(r.Intn(2) == 0)) - this.FieldB = &v239 - } - return this -} - -func NewPopulatedCustomNameEnum(r randyThetest, easy bool) *CustomNameEnum { - this := &CustomNameEnum{} - if r.Intn(10) != 0 { - v240 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - this.FieldA = &v240 - } - if r.Intn(10) != 0 { - v241 := r.Intn(10) - this.FieldB = make([]TheTestEnum, v241) - for i := 0; i < v241; i++ { - this.FieldB[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { - this := &NoExtensionsMap{} - if r.Intn(10) != 0 { - v242 := int64(r.Int63()) - if r.Intn(2) == 0 { - v242 *= -1 - } - this.Field1 = &v242 - } - if !easy && r.Intn(10) != 0 { - l := r.Intn(5) - for i := 0; i < l; i++ { - fieldNumber := r.Intn(100) + 100 - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 201) - } - return this -} - -func NewPopulatedUnrecognized(r randyThetest, easy bool) *Unrecognized { - this := &Unrecognized{} - if r.Intn(10) != 0 { - v243 := string(randStringThetest(r)) - this.Field1 = &v243 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedWithInner { - this := &UnrecognizedWithInner{} - if r.Intn(10) != 0 { - v244 := r.Intn(5) - this.Embedded = make([]*UnrecognizedWithInner_Inner, v244) - for i := 0; i < v244; i++ { - this.Embedded[i] = NewPopulatedUnrecognizedWithInner_Inner(r, easy) - } - } - if r.Intn(10) != 0 { - v245 := string(randStringThetest(r)) - this.Field2 = &v245 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedUnrecognizedWithInner_Inner(r randyThetest, easy bool) *UnrecognizedWithInner_Inner { - this := &UnrecognizedWithInner_Inner{} - if r.Intn(10) != 0 { - v246 := uint32(r.Uint32()) - this.Field1 = &v246 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedWithEmbed { - this := &UnrecognizedWithEmbed{} - v247 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy) - this.UnrecognizedWithEmbed_Embedded = *v247 - if r.Intn(10) != 0 { - v248 := string(randStringThetest(r)) - this.Field2 = &v248 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedUnrecognizedWithEmbed_Embedded(r randyThetest, easy bool) *UnrecognizedWithEmbed_Embedded { - this := &UnrecognizedWithEmbed_Embedded{} - if r.Intn(10) != 0 { - v249 := uint32(r.Uint32()) - this.Field1 = &v249 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedNode(r randyThetest, easy bool) *Node { - this := &Node{} - if r.Intn(10) != 0 { - v250 := string(randStringThetest(r)) - this.Label = &v250 - } - if r.Intn(10) == 0 { - v251 := r.Intn(5) - this.Children = make([]*Node, v251) - for i := 0; i < v251; i++ { - this.Children[i] = NewPopulatedNode(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 3) - } - return this -} - -func NewPopulatedNonByteCustomType(r randyThetest, easy bool) *NonByteCustomType { - this := &NonByteCustomType{} - if r.Intn(10) != 0 { - this.Field1 = NewPopulatedT(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNidOptNonByteCustomType(r randyThetest, easy bool) *NidOptNonByteCustomType { - this := &NidOptNonByteCustomType{} - v252 := NewPopulatedT(r) - this.Field1 = *v252 - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinOptNonByteCustomType(r randyThetest, easy bool) *NinOptNonByteCustomType { - this := &NinOptNonByteCustomType{} - if r.Intn(10) != 0 { - this.Field1 = NewPopulatedT(r) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNidRepNonByteCustomType(r randyThetest, easy bool) *NidRepNonByteCustomType { - this := &NidRepNonByteCustomType{} - if r.Intn(10) != 0 { - v253 := r.Intn(10) - this.Field1 = make([]T, v253) - for i := 0; i < v253; i++ { - v254 := NewPopulatedT(r) - this.Field1[i] = *v254 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedNinRepNonByteCustomType(r randyThetest, easy bool) *NinRepNonByteCustomType { - this := &NinRepNonByteCustomType{} - if r.Intn(10) != 0 { - v255 := r.Intn(10) - this.Field1 = make([]T, v255) - for i := 0; i < v255; i++ { - v256 := NewPopulatedT(r) - this.Field1[i] = *v256 - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -func NewPopulatedProtoType(r randyThetest, easy bool) *ProtoType { - this := &ProtoType{} - if r.Intn(10) != 0 { - v257 := string(randStringThetest(r)) - this.Field2 = &v257 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedThetest(r, 2) - } - return this -} - -type randyThetest interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneThetest(r randyThetest) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringThetest(r randyThetest) string { - v258 := r.Intn(100) - tmps := make([]rune, v258) - for i := 0; i < v258; i++ { - tmps[i] = randUTF8RuneThetest(r) - } - return string(tmps) -} -func randUnrecognizedThetest(r randyThetest, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldThetest(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldThetest(dAtA []byte, r randyThetest, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - v259 := r.Int63() - if r.Intn(2) == 0 { - v259 *= -1 - } - dAtA = encodeVarintPopulateThetest(dAtA, uint64(v259)) - case 1: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateThetest(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateThetest(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateThetest(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *NidOptNative) Size() (n int) { - var l int - _ = l - n += 9 - n += 5 - n += 1 + sovThetest(uint64(m.Field3)) - n += 1 + sovThetest(uint64(m.Field4)) - n += 1 + sovThetest(uint64(m.Field5)) - n += 1 + sovThetest(uint64(m.Field6)) - n += 1 + sozThetest(uint64(m.Field7)) - n += 1 + sozThetest(uint64(m.Field8)) - n += 5 - n += 5 - n += 9 - n += 9 - n += 2 - l = len(m.Field14) - n += 1 + l + sovThetest(uint64(l)) - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNative) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.Field4 != nil { - n += 1 + sovThetest(uint64(*m.Field4)) - } - if m.Field5 != nil { - n += 1 + sovThetest(uint64(*m.Field5)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field8 != nil { - n += 1 + sozThetest(uint64(*m.Field8)) - } - if m.Field9 != nil { - n += 5 - } - if m.Field10 != nil { - n += 5 - } - if m.Field11 != nil { - n += 9 - } - if m.Field12 != nil { - n += 9 - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field5) > 0 { - for _, e := range m.Field5 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field9) > 0 { - n += 5 * len(m.Field9) - } - if len(m.Field10) > 0 { - n += 5 * len(m.Field10) - } - if len(m.Field11) > 0 { - n += 9 * len(m.Field11) - } - if len(m.Field12) > 0 { - n += 9 * len(m.Field12) - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field5) > 0 { - for _, e := range m.Field5 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field9) > 0 { - n += 5 * len(m.Field9) - } - if len(m.Field10) > 0 { - n += 5 * len(m.Field10) - } - if len(m.Field11) > 0 { - n += 9 * len(m.Field11) - } - if len(m.Field12) > 0 { - n += 9 * len(m.Field12) - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepPackedNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 1 + sovThetest(uint64(len(m.Field1)*8)) + len(m.Field1)*8 - } - if len(m.Field2) > 0 { - n += 1 + sovThetest(uint64(len(m.Field2)*4)) + len(m.Field2)*4 - } - if len(m.Field3) > 0 { - l = 0 - for _, e := range m.Field3 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field4) > 0 { - l = 0 - for _, e := range m.Field4 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field5) > 0 { - l = 0 - for _, e := range m.Field5 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field6) > 0 { - l = 0 - for _, e := range m.Field6 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field7) > 0 { - l = 0 - for _, e := range m.Field7 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field8) > 0 { - l = 0 - for _, e := range m.Field8 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field9) > 0 { - n += 1 + sovThetest(uint64(len(m.Field9)*4)) + len(m.Field9)*4 - } - if len(m.Field10) > 0 { - n += 1 + sovThetest(uint64(len(m.Field10)*4)) + len(m.Field10)*4 - } - if len(m.Field11) > 0 { - n += 1 + sovThetest(uint64(len(m.Field11)*8)) + len(m.Field11)*8 - } - if len(m.Field12) > 0 { - n += 1 + sovThetest(uint64(len(m.Field12)*8)) + len(m.Field12)*8 - } - if len(m.Field13) > 0 { - n += 1 + sovThetest(uint64(len(m.Field13))) + len(m.Field13)*1 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepPackedNative) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 1 + sovThetest(uint64(len(m.Field1)*8)) + len(m.Field1)*8 - } - if len(m.Field2) > 0 { - n += 1 + sovThetest(uint64(len(m.Field2)*4)) + len(m.Field2)*4 - } - if len(m.Field3) > 0 { - l = 0 - for _, e := range m.Field3 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field4) > 0 { - l = 0 - for _, e := range m.Field4 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field5) > 0 { - l = 0 - for _, e := range m.Field5 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field6) > 0 { - l = 0 - for _, e := range m.Field6 { - l += sovThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field7) > 0 { - l = 0 - for _, e := range m.Field7 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field8) > 0 { - l = 0 - for _, e := range m.Field8 { - l += sozThetest(uint64(e)) - } - n += 1 + sovThetest(uint64(l)) + l - } - if len(m.Field9) > 0 { - n += 1 + sovThetest(uint64(len(m.Field9)*4)) + len(m.Field9)*4 - } - if len(m.Field10) > 0 { - n += 1 + sovThetest(uint64(len(m.Field10)*4)) + len(m.Field10)*4 - } - if len(m.Field11) > 0 { - n += 1 + sovThetest(uint64(len(m.Field11)*8)) + len(m.Field11)*8 - } - if len(m.Field12) > 0 { - n += 1 + sovThetest(uint64(len(m.Field12)*8)) + len(m.Field12)*8 - } - if len(m.Field13) > 0 { - n += 1 + sovThetest(uint64(len(m.Field13))) + len(m.Field13)*1 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptStruct) Size() (n int) { - var l int - _ = l - n += 9 - n += 5 - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Field4.Size() - n += 1 + l + sovThetest(uint64(l)) - n += 1 + sovThetest(uint64(m.Field6)) - n += 1 + sozThetest(uint64(m.Field7)) - l = m.Field8.Size() - n += 1 + l + sovThetest(uint64(l)) - n += 2 - l = len(m.Field14) - n += 1 + l + sovThetest(uint64(l)) - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptStruct) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field4 != nil { - l = m.Field4.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field8 != nil { - l = m.Field8.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepStruct) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepStruct) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - n += 9 * len(m.Field1) - } - if len(m.Field2) > 0 { - n += 5 * len(m.Field2) - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field4) > 0 { - for _, e := range m.Field4 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field6) > 0 { - for _, e := range m.Field6 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field7) > 0 { - for _, e := range m.Field7 { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.Field8) > 0 { - for _, e := range m.Field8 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field13) > 0 { - n += 2 * len(m.Field13) - } - if len(m.Field14) > 0 { - for _, s := range m.Field14 { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Field15) > 0 { - for _, b := range m.Field15 { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidEmbeddedStruct) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - l = m.Field200.Size() - n += 2 + l + sovThetest(uint64(l)) - n += 3 - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinEmbeddedStruct) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field200 != nil { - l = m.Field200.Size() - n += 2 + l + sovThetest(uint64(l)) - } - if m.Field210 != nil { - n += 3 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidNestedStruct) Size() (n int) { - var l int - _ = l - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinNestedStruct) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptCustom) Size() (n int) { - var l int - _ = l - l = m.Id.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Value.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomDash) Size() (n int) { - var l int - _ = l - if m.Value != nil { - l = m.Value.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptCustom) Size() (n int) { - var l int - _ = l - if m.Id != nil { - l = m.Id.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Value != nil { - l = m.Value.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepCustom) Size() (n int) { - var l int - _ = l - if len(m.Id) > 0 { - for _, e := range m.Id { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Value) > 0 { - for _, e := range m.Value { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepCustom) Size() (n int) { - var l int - _ = l - if len(m.Id) > 0 { - for _, e := range m.Id { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.Value) > 0 { - for _, e := range m.Value { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNativeUnion) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.Field4 != nil { - n += 1 + sovThetest(uint64(*m.Field4)) - } - if m.Field5 != nil { - n += 1 + sovThetest(uint64(*m.Field5)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptStructUnion) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field4 != nil { - l = m.Field4.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinEmbeddedStructUnion) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field200 != nil { - l = m.Field200.Size() - n += 2 + l + sovThetest(uint64(l)) - } - if m.Field210 != nil { - n += 3 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinNestedStructUnion) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field2 != nil { - l = m.Field2.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field3 != nil { - l = m.Field3.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Tree) Size() (n int) { - var l int - _ = l - if m.Or != nil { - l = m.Or.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.And != nil { - l = m.And.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Leaf != nil { - l = m.Leaf.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OrBranch) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Right.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AndBranch) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Right.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Leaf) Size() (n int) { - var l int - _ = l - n += 1 + sovThetest(uint64(m.Value)) - l = len(m.StrValue) - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DeepTree) Size() (n int) { - var l int - _ = l - if m.Down != nil { - l = m.Down.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.And != nil { - l = m.And.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.Leaf != nil { - l = m.Leaf.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ADeepBranch) Size() (n int) { - var l int - _ = l - l = m.Down.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AndDeepBranch) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovThetest(uint64(l)) - l = m.Right.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DeepLeaf) Size() (n int) { - var l int - _ = l - l = m.Tree.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Nil) Size() (n int) { - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptEnum) Size() (n int) { - var l int - _ = l - n += 1 + sovThetest(uint64(m.Field1)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptEnum) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepEnum) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepEnum) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field2) > 0 { - for _, e := range m.Field2 { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.Field3) > 0 { - for _, e := range m.Field3 { - n += 1 + sovThetest(uint64(e)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptEnumDefault) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AnotherNinOptEnum) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AnotherNinOptEnumDefault) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Timer) Size() (n int) { - var l int - _ = l - n += 9 - n += 9 - if m.Data != nil { - l = len(m.Data) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *MyExtendable) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OtherExtenable) Size() (n int) { - var l int - _ = l - if m.Field2 != nil { - n += 1 + sovThetest(uint64(*m.Field2)) - } - if m.Field13 != nil { - n += 1 + sovThetest(uint64(*m.Field13)) - } - if m.M != nil { - l = m.M.Size() - n += 1 + l + sovThetest(uint64(l)) - } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedDefinition) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.EnumField != nil { - n += 1 + sovThetest(uint64(*m.EnumField)) - } - if m.NNM != nil { - l = m.NNM.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.NM != nil { - l = m.NM.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedDefinition_NestedMessage) Size() (n int) { - var l int - _ = l - if m.NestedField1 != nil { - n += 9 - } - if m.NNM != nil { - l = m.NNM.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Size() (n int) { - var l int - _ = l - if m.NestedNestedField1 != nil { - l = len(*m.NestedNestedField1) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NestedScope) Size() (n int) { - var l int - _ = l - if m.A != nil { - l = m.A.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.B != nil { - n += 1 + sovThetest(uint64(*m.B)) - } - if m.C != nil { - l = m.C.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNativeDefault) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 9 - } - if m.Field2 != nil { - n += 5 - } - if m.Field3 != nil { - n += 1 + sovThetest(uint64(*m.Field3)) - } - if m.Field4 != nil { - n += 1 + sovThetest(uint64(*m.Field4)) - } - if m.Field5 != nil { - n += 1 + sovThetest(uint64(*m.Field5)) - } - if m.Field6 != nil { - n += 1 + sovThetest(uint64(*m.Field6)) - } - if m.Field7 != nil { - n += 1 + sozThetest(uint64(*m.Field7)) - } - if m.Field8 != nil { - n += 1 + sozThetest(uint64(*m.Field8)) - } - if m.Field9 != nil { - n += 5 - } - if m.Field10 != nil { - n += 5 - } - if m.Field11 != nil { - n += 9 - } - if m.Field12 != nil { - n += 9 - } - if m.Field13 != nil { - n += 2 - } - if m.Field14 != nil { - l = len(*m.Field14) - n += 1 + l + sovThetest(uint64(l)) - } - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomContainer) Size() (n int) { - var l int - _ = l - l = m.CustomStruct.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNidOptNative) Size() (n int) { - var l int - _ = l - n += 9 - n += 5 - n += 1 + sovThetest(uint64(m.FieldC)) - n += 1 + sovThetest(uint64(m.FieldD)) - n += 1 + sovThetest(uint64(m.FieldE)) - n += 1 + sovThetest(uint64(m.FieldF)) - n += 1 + sozThetest(uint64(m.FieldG)) - n += 1 + sozThetest(uint64(m.FieldH)) - n += 5 - n += 5 - n += 9 - n += 9 - n += 2 - l = len(m.FieldN) - n += 1 + l + sovThetest(uint64(l)) - if m.FieldO != nil { - l = len(m.FieldO) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinOptNative) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - n += 9 - } - if m.FieldB != nil { - n += 5 - } - if m.FieldC != nil { - n += 1 + sovThetest(uint64(*m.FieldC)) - } - if m.FieldD != nil { - n += 1 + sovThetest(uint64(*m.FieldD)) - } - if m.FieldE != nil { - n += 1 + sovThetest(uint64(*m.FieldE)) - } - if m.FieldF != nil { - n += 1 + sovThetest(uint64(*m.FieldF)) - } - if m.FieldG != nil { - n += 1 + sozThetest(uint64(*m.FieldG)) - } - if m.FieldH != nil { - n += 1 + sozThetest(uint64(*m.FieldH)) - } - if m.FieldI != nil { - n += 5 - } - if m.FieldJ != nil { - n += 5 - } - if m.FieldK != nil { - n += 9 - } - if m.FielL != nil { - n += 9 - } - if m.FieldM != nil { - n += 2 - } - if m.FieldN != nil { - l = len(*m.FieldN) - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldO != nil { - l = len(m.FieldO) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinRepNative) Size() (n int) { - var l int - _ = l - if len(m.FieldA) > 0 { - n += 9 * len(m.FieldA) - } - if len(m.FieldB) > 0 { - n += 5 * len(m.FieldB) - } - if len(m.FieldC) > 0 { - for _, e := range m.FieldC { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldD) > 0 { - for _, e := range m.FieldD { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldE) > 0 { - for _, e := range m.FieldE { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldF) > 0 { - for _, e := range m.FieldF { - n += 1 + sovThetest(uint64(e)) - } - } - if len(m.FieldG) > 0 { - for _, e := range m.FieldG { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.FieldH) > 0 { - for _, e := range m.FieldH { - n += 1 + sozThetest(uint64(e)) - } - } - if len(m.FieldI) > 0 { - n += 5 * len(m.FieldI) - } - if len(m.FieldJ) > 0 { - n += 5 * len(m.FieldJ) - } - if len(m.FieldK) > 0 { - n += 9 * len(m.FieldK) - } - if len(m.FieldL) > 0 { - n += 9 * len(m.FieldL) - } - if len(m.FieldM) > 0 { - n += 2 * len(m.FieldM) - } - if len(m.FieldN) > 0 { - for _, s := range m.FieldN { - l = len(s) - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.FieldO) > 0 { - for _, b := range m.FieldO { - l = len(b) - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinStruct) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - n += 9 - } - if m.FieldB != nil { - n += 5 - } - if m.FieldC != nil { - l = m.FieldC.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.FieldD) > 0 { - for _, e := range m.FieldD { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.FieldE != nil { - n += 1 + sovThetest(uint64(*m.FieldE)) - } - if m.FieldF != nil { - n += 1 + sozThetest(uint64(*m.FieldF)) - } - if m.FieldG != nil { - l = m.FieldG.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldH != nil { - n += 2 - } - if m.FieldI != nil { - l = len(*m.FieldI) - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldJ != nil { - l = len(m.FieldJ) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameCustomType) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - l = m.FieldA.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldB != nil { - l = m.FieldB.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.FieldC) > 0 { - for _, e := range m.FieldC { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if len(m.FieldD) > 0 { - for _, e := range m.FieldD { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameNinEmbeddedStructUnion) Size() (n int) { - var l int - _ = l - if m.NidOptNative != nil { - l = m.NidOptNative.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.FieldA != nil { - l = m.FieldA.Size() - n += 2 + l + sovThetest(uint64(l)) - } - if m.FieldB != nil { - n += 3 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomNameEnum) Size() (n int) { - var l int - _ = l - if m.FieldA != nil { - n += 1 + sovThetest(uint64(*m.FieldA)) - } - if len(m.FieldB) > 0 { - for _, e := range m.FieldB { - n += 1 + sovThetest(uint64(e)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NoExtensionsMap) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - if m.XXX_extensions != nil { - n += len(m.XXX_extensions) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Unrecognized) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = len(*m.Field1) - n += 1 + l + sovThetest(uint64(l)) - } - return n -} - -func (m *UnrecognizedWithInner) Size() (n int) { - var l int - _ = l - if len(m.Embedded) > 0 { - for _, e := range m.Embedded { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *UnrecognizedWithInner_Inner) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - return n -} - -func (m *UnrecognizedWithEmbed) Size() (n int) { - var l int - _ = l - l = m.UnrecognizedWithEmbed_Embedded.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *UnrecognizedWithEmbed_Embedded) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - n += 1 + sovThetest(uint64(*m.Field1)) - } - return n -} - -func (m *Node) Size() (n int) { - var l int - _ = l - if m.Label != nil { - l = len(*m.Label) - n += 1 + l + sovThetest(uint64(l)) - } - if len(m.Children) > 0 { - for _, e := range m.Children { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NonByteCustomType) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidOptNonByteCustomType) Size() (n int) { - var l int - _ = l - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinOptNonByteCustomType) Size() (n int) { - var l int - _ = l - if m.Field1 != nil { - l = m.Field1.Size() - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NidRepNonByteCustomType) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *NinRepNonByteCustomType) Size() (n int) { - var l int - _ = l - if len(m.Field1) > 0 { - for _, e := range m.Field1 { - l = e.Size() - n += 1 + l + sovThetest(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ProtoType) Size() (n int) { - var l int - _ = l - if m.Field2 != nil { - l = len(*m.Field2) - n += 1 + l + sovThetest(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovThetest(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozThetest(x uint64) (n int) { - return sovThetest(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *NidOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNative{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `Field4:` + valueToStringThetest(this.Field4) + `,`, - `Field5:` + valueToStringThetest(this.Field5) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field8:` + valueToStringThetest(this.Field8) + `,`, - `Field9:` + valueToStringThetest(this.Field9) + `,`, - `Field10:` + valueToStringThetest(this.Field10) + `,`, - `Field11:` + valueToStringThetest(this.Field11) + `,`, - `Field12:` + valueToStringThetest(this.Field12) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepPackedNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepPackedNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepPackedNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepPackedNative{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptStruct{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + strings.Replace(strings.Replace(this.Field3.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field4:` + strings.Replace(strings.Replace(this.Field4.String(), "NinOptNative", "NinOptNative", 1), `&`, ``, 1) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + strings.Replace(strings.Replace(this.Field8.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptStruct{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`, - `Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field8:` + strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 1) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepStruct{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field4:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1), `&`, ``, 1) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepStruct{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`, - `Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `Field8:` + strings.Replace(fmt.Sprintf("%v", this.Field8), "NidOptNative", "NidOptNative", 1) + `,`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidEmbeddedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidEmbeddedStruct{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `Field200:` + strings.Replace(strings.Replace(this.Field200.String(), "NidOptNative", "NidOptNative", 1), `&`, ``, 1) + `,`, - `Field210:` + fmt.Sprintf("%v", this.Field210) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinEmbeddedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinEmbeddedStruct{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `Field200:` + strings.Replace(fmt.Sprintf("%v", this.Field200), "NidOptNative", "NidOptNative", 1) + `,`, - `Field210:` + valueToStringThetest(this.Field210) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidNestedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidNestedStruct{`, - `Field1:` + strings.Replace(strings.Replace(this.Field1.String(), "NidOptStruct", "NidOptStruct", 1), `&`, ``, 1) + `,`, - `Field2:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Field2), "NidRepStruct", "NidRepStruct", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinNestedStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinNestedStruct{`, - `Field1:` + strings.Replace(fmt.Sprintf("%v", this.Field1), "NinOptStruct", "NinOptStruct", 1) + `,`, - `Field2:` + strings.Replace(fmt.Sprintf("%v", this.Field2), "NinRepStruct", "NinRepStruct", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptCustom{`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomDash) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomDash{`, - `Value:` + valueToStringThetest(this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptCustom{`, - `Id:` + valueToStringThetest(this.Id) + `,`, - `Value:` + valueToStringThetest(this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepCustom{`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepCustom) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepCustom{`, - `Id:` + fmt.Sprintf("%v", this.Id) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNativeUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNativeUnion{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `Field4:` + valueToStringThetest(this.Field4) + `,`, - `Field5:` + valueToStringThetest(this.Field5) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptStructUnion{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NidOptNative", "NidOptNative", 1) + `,`, - `Field4:` + strings.Replace(fmt.Sprintf("%v", this.Field4), "NinOptNative", "NinOptNative", 1) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinEmbeddedStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinEmbeddedStructUnion{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `Field200:` + strings.Replace(fmt.Sprintf("%v", this.Field200), "NinOptNative", "NinOptNative", 1) + `,`, - `Field210:` + valueToStringThetest(this.Field210) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinNestedStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinNestedStructUnion{`, - `Field1:` + strings.Replace(fmt.Sprintf("%v", this.Field1), "NinOptNativeUnion", "NinOptNativeUnion", 1) + `,`, - `Field2:` + strings.Replace(fmt.Sprintf("%v", this.Field2), "NinOptStructUnion", "NinOptStructUnion", 1) + `,`, - `Field3:` + strings.Replace(fmt.Sprintf("%v", this.Field3), "NinEmbeddedStructUnion", "NinEmbeddedStructUnion", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Tree) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Tree{`, - `Or:` + strings.Replace(fmt.Sprintf("%v", this.Or), "OrBranch", "OrBranch", 1) + `,`, - `And:` + strings.Replace(fmt.Sprintf("%v", this.And), "AndBranch", "AndBranch", 1) + `,`, - `Leaf:` + strings.Replace(fmt.Sprintf("%v", this.Leaf), "Leaf", "Leaf", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *OrBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OrBranch{`, - `Left:` + strings.Replace(strings.Replace(this.Left.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `Right:` + strings.Replace(strings.Replace(this.Right.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AndBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AndBranch{`, - `Left:` + strings.Replace(strings.Replace(this.Left.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `Right:` + strings.Replace(strings.Replace(this.Right.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Leaf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Leaf{`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `StrValue:` + fmt.Sprintf("%v", this.StrValue) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *DeepTree) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeepTree{`, - `Down:` + strings.Replace(fmt.Sprintf("%v", this.Down), "ADeepBranch", "ADeepBranch", 1) + `,`, - `And:` + strings.Replace(fmt.Sprintf("%v", this.And), "AndDeepBranch", "AndDeepBranch", 1) + `,`, - `Leaf:` + strings.Replace(fmt.Sprintf("%v", this.Leaf), "DeepLeaf", "DeepLeaf", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *ADeepBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ADeepBranch{`, - `Down:` + strings.Replace(strings.Replace(this.Down.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AndDeepBranch) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AndDeepBranch{`, - `Left:` + strings.Replace(strings.Replace(this.Left.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`, - `Right:` + strings.Replace(strings.Replace(this.Right.String(), "DeepTree", "DeepTree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *DeepLeaf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeepLeaf{`, - `Tree:` + strings.Replace(strings.Replace(this.Tree.String(), "Tree", "Tree", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Nil) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Nil{`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptEnum{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptEnum{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepEnum{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepEnum{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptEnumDefault) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptEnumDefault{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AnotherNinOptEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AnotherNinOptEnum{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AnotherNinOptEnumDefault) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AnotherNinOptEnumDefault{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Timer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Timer{`, - `Time1:` + fmt.Sprintf("%v", this.Time1) + `,`, - `Time2:` + fmt.Sprintf("%v", this.Time2) + `,`, - `Data:` + fmt.Sprintf("%v", this.Data) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *MyExtendable) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&MyExtendable{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *OtherExtenable) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OtherExtenable{`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedDefinition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedDefinition{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `EnumField:` + valueToStringThetest(this.EnumField) + `,`, - `NNM:` + strings.Replace(fmt.Sprintf("%v", this.NNM), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`, - `NM:` + strings.Replace(fmt.Sprintf("%v", this.NM), "NestedDefinition_NestedMessage", "NestedDefinition_NestedMessage", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedDefinition_NestedMessage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedDefinition_NestedMessage{`, - `NestedField1:` + valueToStringThetest(this.NestedField1) + `,`, - `NNM:` + strings.Replace(fmt.Sprintf("%v", this.NNM), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedDefinition_NestedMessage_NestedNestedMsg{`, - `NestedNestedField1:` + valueToStringThetest(this.NestedNestedField1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NestedScope) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NestedScope{`, - `A:` + strings.Replace(fmt.Sprintf("%v", this.A), "NestedDefinition_NestedMessage_NestedNestedMsg", "NestedDefinition_NestedMessage_NestedNestedMsg", 1) + `,`, - `B:` + valueToStringThetest(this.B) + `,`, - `C:` + strings.Replace(fmt.Sprintf("%v", this.C), "NestedDefinition_NestedMessage", "NestedDefinition_NestedMessage", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNativeDefault) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNativeDefault{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `Field3:` + valueToStringThetest(this.Field3) + `,`, - `Field4:` + valueToStringThetest(this.Field4) + `,`, - `Field5:` + valueToStringThetest(this.Field5) + `,`, - `Field6:` + valueToStringThetest(this.Field6) + `,`, - `Field7:` + valueToStringThetest(this.Field7) + `,`, - `Field8:` + valueToStringThetest(this.Field8) + `,`, - `Field9:` + valueToStringThetest(this.Field9) + `,`, - `Field10:` + valueToStringThetest(this.Field10) + `,`, - `Field11:` + valueToStringThetest(this.Field11) + `,`, - `Field12:` + valueToStringThetest(this.Field12) + `,`, - `Field13:` + valueToStringThetest(this.Field13) + `,`, - `Field14:` + valueToStringThetest(this.Field14) + `,`, - `Field15:` + valueToStringThetest(this.Field15) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomContainer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomContainer{`, - `CustomStruct:` + strings.Replace(strings.Replace(this.CustomStruct.String(), "NidOptCustom", "NidOptCustom", 1), `&`, ``, 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNidOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNidOptNative{`, - `FieldA:` + fmt.Sprintf("%v", this.FieldA) + `,`, - `FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`, - `FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`, - `FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`, - `FieldE:` + fmt.Sprintf("%v", this.FieldE) + `,`, - `FieldF:` + fmt.Sprintf("%v", this.FieldF) + `,`, - `FieldG:` + fmt.Sprintf("%v", this.FieldG) + `,`, - `FieldH:` + fmt.Sprintf("%v", this.FieldH) + `,`, - `FieldI:` + fmt.Sprintf("%v", this.FieldI) + `,`, - `FieldJ:` + fmt.Sprintf("%v", this.FieldJ) + `,`, - `FieldK:` + fmt.Sprintf("%v", this.FieldK) + `,`, - `FieldL:` + fmt.Sprintf("%v", this.FieldL) + `,`, - `FieldM:` + fmt.Sprintf("%v", this.FieldM) + `,`, - `FieldN:` + fmt.Sprintf("%v", this.FieldN) + `,`, - `FieldO:` + fmt.Sprintf("%v", this.FieldO) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinOptNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinOptNative{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `FieldC:` + valueToStringThetest(this.FieldC) + `,`, - `FieldD:` + valueToStringThetest(this.FieldD) + `,`, - `FieldE:` + valueToStringThetest(this.FieldE) + `,`, - `FieldF:` + valueToStringThetest(this.FieldF) + `,`, - `FieldG:` + valueToStringThetest(this.FieldG) + `,`, - `FieldH:` + valueToStringThetest(this.FieldH) + `,`, - `FieldI:` + valueToStringThetest(this.FieldI) + `,`, - `FieldJ:` + valueToStringThetest(this.FieldJ) + `,`, - `FieldK:` + valueToStringThetest(this.FieldK) + `,`, - `FielL:` + valueToStringThetest(this.FielL) + `,`, - `FieldM:` + valueToStringThetest(this.FieldM) + `,`, - `FieldN:` + valueToStringThetest(this.FieldN) + `,`, - `FieldO:` + valueToStringThetest(this.FieldO) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinRepNative) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinRepNative{`, - `FieldA:` + fmt.Sprintf("%v", this.FieldA) + `,`, - `FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`, - `FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`, - `FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`, - `FieldE:` + fmt.Sprintf("%v", this.FieldE) + `,`, - `FieldF:` + fmt.Sprintf("%v", this.FieldF) + `,`, - `FieldG:` + fmt.Sprintf("%v", this.FieldG) + `,`, - `FieldH:` + fmt.Sprintf("%v", this.FieldH) + `,`, - `FieldI:` + fmt.Sprintf("%v", this.FieldI) + `,`, - `FieldJ:` + fmt.Sprintf("%v", this.FieldJ) + `,`, - `FieldK:` + fmt.Sprintf("%v", this.FieldK) + `,`, - `FieldL:` + fmt.Sprintf("%v", this.FieldL) + `,`, - `FieldM:` + fmt.Sprintf("%v", this.FieldM) + `,`, - `FieldN:` + fmt.Sprintf("%v", this.FieldN) + `,`, - `FieldO:` + fmt.Sprintf("%v", this.FieldO) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinStruct) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinStruct{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `FieldC:` + strings.Replace(fmt.Sprintf("%v", this.FieldC), "NidOptNative", "NidOptNative", 1) + `,`, - `FieldD:` + strings.Replace(fmt.Sprintf("%v", this.FieldD), "NinOptNative", "NinOptNative", 1) + `,`, - `FieldE:` + valueToStringThetest(this.FieldE) + `,`, - `FieldF:` + valueToStringThetest(this.FieldF) + `,`, - `FieldG:` + strings.Replace(fmt.Sprintf("%v", this.FieldG), "NidOptNative", "NidOptNative", 1) + `,`, - `FieldH:` + valueToStringThetest(this.FieldH) + `,`, - `FieldI:` + valueToStringThetest(this.FieldI) + `,`, - `FieldJ:` + valueToStringThetest(this.FieldJ) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameCustomType{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `FieldC:` + fmt.Sprintf("%v", this.FieldC) + `,`, - `FieldD:` + fmt.Sprintf("%v", this.FieldD) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameNinEmbeddedStructUnion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameNinEmbeddedStructUnion{`, - `NidOptNative:` + strings.Replace(fmt.Sprintf("%v", this.NidOptNative), "NidOptNative", "NidOptNative", 1) + `,`, - `FieldA:` + strings.Replace(fmt.Sprintf("%v", this.FieldA), "NinOptNative", "NinOptNative", 1) + `,`, - `FieldB:` + valueToStringThetest(this.FieldB) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomNameEnum) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomNameEnum{`, - `FieldA:` + valueToStringThetest(this.FieldA) + `,`, - `FieldB:` + fmt.Sprintf("%v", this.FieldB) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NoExtensionsMap) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NoExtensionsMap{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *Unrecognized) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Unrecognized{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithInner) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithInner{`, - `Embedded:` + strings.Replace(fmt.Sprintf("%v", this.Embedded), "UnrecognizedWithInner_Inner", "UnrecognizedWithInner_Inner", 1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithInner_Inner) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithInner_Inner{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithEmbed) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithEmbed{`, - `UnrecognizedWithEmbed_Embedded:` + strings.Replace(strings.Replace(this.UnrecognizedWithEmbed_Embedded.String(), "UnrecognizedWithEmbed_Embedded", "UnrecognizedWithEmbed_Embedded", 1), `&`, ``, 1) + `,`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *UnrecognizedWithEmbed_Embedded) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UnrecognizedWithEmbed_Embedded{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *Node) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Node{`, - `Label:` + valueToStringThetest(this.Label) + `,`, - `Children:` + strings.Replace(fmt.Sprintf("%v", this.Children), "Node", "Node", 1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NonByteCustomType{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidOptNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidOptNonByteCustomType{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinOptNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinOptNonByteCustomType{`, - `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NidRepNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NidRepNonByteCustomType{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *NinRepNonByteCustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NinRepNonByteCustomType{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *ProtoType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ProtoType{`, - `Field2:` + valueToStringThetest(this.Field2) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringThetest(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (this *NinOptNativeUnion) GetValue() interface{} { - if this.Field1 != nil { - return this.Field1 - } - if this.Field2 != nil { - return this.Field2 - } - if this.Field3 != nil { - return this.Field3 - } - if this.Field4 != nil { - return this.Field4 - } - if this.Field5 != nil { - return this.Field5 - } - if this.Field6 != nil { - return this.Field6 - } - if this.Field13 != nil { - return this.Field13 - } - if this.Field14 != nil { - return this.Field14 - } - if this.Field15 != nil { - return this.Field15 - } - return nil -} - -func (this *NinOptNativeUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *float64: - this.Field1 = vt - case *float32: - this.Field2 = vt - case *int32: - this.Field3 = vt - case *int64: - this.Field4 = vt - case *uint32: - this.Field5 = vt - case *uint64: - this.Field6 = vt - case *bool: - this.Field13 = vt - case *string: - this.Field14 = vt - case []byte: - this.Field15 = vt - default: - return false - } - return true -} -func (this *NinOptStructUnion) GetValue() interface{} { - if this.Field1 != nil { - return this.Field1 - } - if this.Field2 != nil { - return this.Field2 - } - if this.Field3 != nil { - return this.Field3 - } - if this.Field4 != nil { - return this.Field4 - } - if this.Field6 != nil { - return this.Field6 - } - if this.Field7 != nil { - return this.Field7 - } - if this.Field13 != nil { - return this.Field13 - } - if this.Field14 != nil { - return this.Field14 - } - if this.Field15 != nil { - return this.Field15 - } - return nil -} - -func (this *NinOptStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *float64: - this.Field1 = vt - case *float32: - this.Field2 = vt - case *NidOptNative: - this.Field3 = vt - case *NinOptNative: - this.Field4 = vt - case *uint64: - this.Field6 = vt - case *int32: - this.Field7 = vt - case *bool: - this.Field13 = vt - case *string: - this.Field14 = vt - case []byte: - this.Field15 = vt - default: - return false - } - return true -} -func (this *NinEmbeddedStructUnion) GetValue() interface{} { - if this.NidOptNative != nil { - return this.NidOptNative - } - if this.Field200 != nil { - return this.Field200 - } - if this.Field210 != nil { - return this.Field210 - } - return nil -} - -func (this *NinEmbeddedStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *NidOptNative: - this.NidOptNative = vt - case *NinOptNative: - this.Field200 = vt - case *bool: - this.Field210 = vt - default: - return false - } - return true -} -func (this *NinNestedStructUnion) GetValue() interface{} { - if this.Field1 != nil { - return this.Field1 - } - if this.Field2 != nil { - return this.Field2 - } - if this.Field3 != nil { - return this.Field3 - } - return nil -} - -func (this *NinNestedStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *NinOptNativeUnion: - this.Field1 = vt - case *NinOptStructUnion: - this.Field2 = vt - case *NinEmbeddedStructUnion: - this.Field3 = vt - default: - this.Field1 = new(NinOptNativeUnion) - if set := this.Field1.SetValue(value); set { - return true - } - this.Field1 = nil - this.Field2 = new(NinOptStructUnion) - if set := this.Field2.SetValue(value); set { - return true - } - this.Field2 = nil - this.Field3 = new(NinEmbeddedStructUnion) - if set := this.Field3.SetValue(value); set { - return true - } - this.Field3 = nil - return false - } - return true -} -func (this *Tree) GetValue() interface{} { - if this.Or != nil { - return this.Or - } - if this.And != nil { - return this.And - } - if this.Leaf != nil { - return this.Leaf - } - return nil -} - -func (this *Tree) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *OrBranch: - this.Or = vt - case *AndBranch: - this.And = vt - case *Leaf: - this.Leaf = vt - default: - return false - } - return true -} -func (this *DeepTree) GetValue() interface{} { - if this.Down != nil { - return this.Down - } - if this.And != nil { - return this.And - } - if this.Leaf != nil { - return this.Leaf - } - return nil -} - -func (this *DeepTree) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *ADeepBranch: - this.Down = vt - case *AndDeepBranch: - this.And = vt - case *DeepLeaf: - this.Leaf = vt - default: - return false - } - return true -} -func (this *CustomNameNinEmbeddedStructUnion) GetValue() interface{} { - if this.NidOptNative != nil { - return this.NidOptNative - } - if this.FieldA != nil { - return this.FieldA - } - if this.FieldB != nil { - return this.FieldB - } - return nil -} - -func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { - switch vt := value.(type) { - case *NidOptNative: - this.NidOptNative = vt - case *NinOptNative: - this.FieldA = vt - case *bool: - this.FieldB = vt - default: - return false - } - return true -} -func (m *NidOptNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - m.Field3 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field3 |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - m.Field4 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field4 |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - m.Field5 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field5 |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - m.Field6 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field6 |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = int64(v) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Field9 = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Field10 = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Field11 = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Field12 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = bool(v != 0) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = &v - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - v2 := int64(v) - m.Field8 = &v2 - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = &v - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = &v - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = &v - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepPackedNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepPackedNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepPackedNative) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepPackedNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = append(m.Field4, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = append(m.Field5, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.Field8 = append(m.Field8, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = append(m.Field9, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = append(m.Field10, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = append(m.Field11, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = append(m.Field12, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidOptStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Field1 = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Field2 = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - m.Field6 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field6 |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = v - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = bool(v != 0) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field3 == nil { - m.Field3 = &NidOptNative{} - } - if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field4 == nil { - m.Field4 = &NinOptNative{} - } - if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field8 == nil { - m.Field8 = &NidOptNative{} - } - if err := m.Field8.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field3 = append(m.Field3, NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field4 = append(m.Field4, NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field8 = append(m.Field8, NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field3 = append(m.Field3, &NidOptNative{}) - if err := m.Field3[len(m.Field3)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field4 = append(m.Field4, &NinOptNative{}) - if err := m.Field4[len(m.Field4)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = append(m.Field6, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = append(m.Field7, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field8 = append(m.Field8, &NidOptNative{}) - if err := m.Field8[len(m.Field8)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = append(m.Field13, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field14 = append(m.Field14, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx)) - copy(m.Field15[len(m.Field15)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidEmbeddedStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NidEmbeddedStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 200: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field210 = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinEmbeddedStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NinEmbeddedStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 200: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field200 == nil { - m.Field200 = &NidOptNative{} - } - if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field210 = &b - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidNestedStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NidNestedStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidNestedStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field2 = append(m.Field2, NidRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinNestedStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: NinNestedStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinNestedStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field1 == nil { - m.Field1 = &NinOptStruct{} - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field2 = append(m.Field2, &NinRepStruct{}) - if err := m.Field2[len(m.Field2)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidOptCustom) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptCustom: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptCustom: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomDash) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomDash: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomDash: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom_dash_type.Bytes - m.Value = &v - if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptCustom) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptCustom: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptCustom: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.Id = &v - if err := m.Id.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.Value = &v - if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepCustom) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepCustom: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepCustom: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepCustom) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepCustom: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepCustom: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.Id = append(m.Id, v) - if err := m.Id[len(m.Id)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.Value = append(m.Value, v) - if err := m.Value[len(m.Value)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptNativeUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptNativeUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptNativeUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = &v - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptStructUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptStructUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptStructUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field3 == nil { - m.Field3 = &NidOptNative{} - } - if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field4 == nil { - m.Field4 = &NinOptNative{} - } - if err := m.Field4.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinEmbeddedStructUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: NinEmbeddedStructUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinEmbeddedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 200: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field200 == nil { - m.Field200 = &NinOptNative{} - } - if err := m.Field200.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field210 = &b - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinNestedStructUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: NinNestedStructUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinNestedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field1 == nil { - m.Field1 = &NinOptNativeUnion{} - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field2 == nil { - m.Field2 = &NinOptStructUnion{} - } - if err := m.Field2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field3 == nil { - m.Field3 = &NinEmbeddedStructUnion{} - } - if err := m.Field3.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Tree) 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 ErrIntOverflowThetestUnsafe - } - 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: Tree: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Tree: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Or", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Or == nil { - m.Or = &OrBranch{} - } - if err := m.Or.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field And", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.And == nil { - m.And = &AndBranch{} - } - if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Leaf", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Leaf == nil { - m.Leaf = &Leaf{} - } - if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OrBranch) 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 ErrIntOverflowThetestUnsafe - } - 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: OrBranch: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OrBranch: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AndBranch) 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 ErrIntOverflowThetestUnsafe - } - 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: AndBranch: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AndBranch: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Leaf) 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 ErrIntOverflowThetestUnsafe - } - 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: Leaf: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Leaf: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - m.Value = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Value |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StrValue", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StrValue = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeepTree) 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 ErrIntOverflowThetestUnsafe - } - 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: DeepTree: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeepTree: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Down", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Down == nil { - m.Down = &ADeepBranch{} - } - if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field And", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.And == nil { - m.And = &AndDeepBranch{} - } - if err := m.And.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Leaf", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Leaf == nil { - m.Leaf = &DeepLeaf{} - } - if err := m.Leaf.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ADeepBranch) 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 ErrIntOverflowThetestUnsafe - } - 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: ADeepBranch: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ADeepBranch: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Down", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Down.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AndDeepBranch) 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 ErrIntOverflowThetestUnsafe - } - 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: AndDeepBranch: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AndDeepBranch: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeepLeaf) 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 ErrIntOverflowThetestUnsafe - } - 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: DeepLeaf: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeepLeaf: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tree", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Tree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Nil) 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 ErrIntOverflowThetestUnsafe - } - 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: Nil: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Nil: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidOptEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - m.Field1 = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Field1 |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 0 { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 0 { - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 0 { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = append(m.Field1, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = append(m.Field1, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - case 2: - if wireType == 0 { - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = append(m.Field2, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = append(m.Field2, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - case 3: - if wireType == 0 { - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = append(m.Field3, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptEnumDefault) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptEnumDefault: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptEnumDefault: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AnotherNinOptEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: AnotherNinOptEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnotherNinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v AnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (AnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AnotherNinOptEnumDefault) 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 ErrIntOverflowThetestUnsafe - } - 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: AnotherNinOptEnumDefault: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnotherNinOptEnumDefault: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v AnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (AnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v YetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v YetYetAnotherTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (YetYetAnotherTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Timer) 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 ErrIntOverflowThetestUnsafe - } - 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: Timer: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Timer: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Time1", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Time1 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 2: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Time2", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.Time2 = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MyExtendable) 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 ErrIntOverflowThetestUnsafe - } - 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: MyExtendable: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MyExtendable: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - default: - if (fieldNum >= 100) && (fieldNum < 200) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OtherExtenable) 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 ErrIntOverflowThetestUnsafe - } - 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: OtherExtenable: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OtherExtenable: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field2 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field13 = &v - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field M", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.M == nil { - m.M = &MyExtendable{} - } - if err := m.M.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - if ((fieldNum >= 14) && (fieldNum < 17)) || ((fieldNum >= 10) && (fieldNum < 13)) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NestedDefinition) 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 ErrIntOverflowThetestUnsafe - } - 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: NestedDefinition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedDefinition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EnumField", wireType) - } - var v NestedDefinition_NestedEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.EnumField = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NNM", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NNM == nil { - m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} - } - if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NM", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NM == nil { - m.NM = &NestedDefinition_NestedMessage{} - } - if err := m.NM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NestedDefinition_NestedMessage) 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 ErrIntOverflowThetestUnsafe - } - 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: NestedMessage: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedMessage: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field NestedField1", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.NestedField1 = &v - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NNM", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NNM == nil { - m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{} - } - if err := m.NNM.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NestedDefinition_NestedMessage_NestedNestedMsg) 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 ErrIntOverflowThetestUnsafe - } - 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: NestedNestedMsg: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedNestedMsg: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NestedNestedField1", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.NestedNestedField1 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NestedScope) 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 ErrIntOverflowThetestUnsafe - } - 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: NestedScope: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedScope: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field A", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.A == nil { - m.A = &NestedDefinition_NestedMessage_NestedNestedMsg{} - } - if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field B", wireType) - } - var v NestedDefinition_NestedEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.B = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field C", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.C == nil { - m.C = &NestedDefinition_NestedMessage{} - } - if err := m.C.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptNativeDefault) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptNativeDefault: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptNativeDefault: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field1 = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field2 = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field3 = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field4 = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field5 = &v - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field6 = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.Field7 = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - v2 := int64(v) - m.Field8 = &v2 - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field9 = &v - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.Field10 = &v - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field11 = &v - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.Field12 = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Field13 = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field14 = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field15 = append(m.Field15[:0], dAtA[iNdEx:postIndex]...) - if m.Field15 == nil { - m.Field15 = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomContainer) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomContainer: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomContainer: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CustomStruct", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CustomStruct.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNidOptNative) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNidOptNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNidOptNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.FieldA = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.FieldB = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - m.FieldC = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FieldC |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - m.FieldD = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FieldD |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) - } - m.FieldE = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FieldE |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) - } - m.FieldF = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FieldF |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = int64(v) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.FieldI = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.FieldJ = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.FieldK = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.FieldL = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldM = bool(v != 0) - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldN = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) - if m.FieldO == nil { - m.FieldO = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNinOptNative) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNinOptNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNinOptNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldA = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldB = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldC = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldD = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldE = &v - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldF = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - v2 := int64(v) - m.FieldH = &v2 - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldI = &v - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldJ = &v - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldK = &v - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FielL", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FielL = &v - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.FieldM = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.FieldN = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldO = append(m.FieldO[:0], dAtA[iNdEx:postIndex]...) - if m.FieldO == nil { - m.FieldO = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNinRepNative) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNinRepNative: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNinRepNative: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 1 { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldA = append(m.FieldA, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldA = append(m.FieldA, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - case 2: - if wireType == 5 { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldB = append(m.FieldB, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldB = append(m.FieldB, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - case 3: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldC = append(m.FieldC, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldC = append(m.FieldC, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - case 4: - if wireType == 0 { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldD = append(m.FieldD, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldD = append(m.FieldD, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - case 5: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldE = append(m.FieldE, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldE = append(m.FieldE, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) - } - case 6: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldF = append(m.FieldF, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldF = append(m.FieldF, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) - } - case 7: - if wireType == 0 { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = append(m.FieldG, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldG = append(m.FieldG, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) - } - case 8: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = append(m.FieldH, int64(v)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.FieldH = append(m.FieldH, int64(v)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) - } - case 9: - if wireType == 5 { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldI = append(m.FieldI, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldI = append(m.FieldI, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) - } - case 10: - if wireType == 5 { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldJ = append(m.FieldJ, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldJ = append(m.FieldJ, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) - } - case 11: - if wireType == 1 { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldK = append(m.FieldK, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldK = append(m.FieldK, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType) - } - case 12: - if wireType == 1 { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldL = append(m.FieldL, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldL = append(m.FieldL, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType) - } - case 13: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldM = append(m.FieldM, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldM = append(m.FieldM, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType) - } - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldN = append(m.FieldN, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldO = append(m.FieldO, make([]byte, postIndex-iNdEx)) - copy(m.FieldO[len(m.FieldO)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNinStruct) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNinStruct: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNinStruct: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.FieldA = &v - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.FieldB = &v - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.FieldC == nil { - m.FieldC = &NidOptNative{} - } - if err := m.FieldC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldD = append(m.FieldD, &NinOptNative{}) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldE = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.FieldF = &v - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.FieldG == nil { - m.FieldG = &NidOptNative{} - } - if err := m.FieldG.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.FieldH = &b - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.FieldI = &s - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldJ = append(m.FieldJ[:0], dAtA[iNdEx:postIndex]...) - if m.FieldJ == nil { - m.FieldJ = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.FieldA = &v - if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.FieldB = &v - if err := m.FieldB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v Uuid - m.FieldC = append(m.FieldC, v) - if err := m.FieldC[len(m.FieldC)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.FieldD = append(m.FieldD, v) - if err := m.FieldD[len(m.FieldD)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameNinEmbeddedStructUnion) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameNinEmbeddedStructUnion: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameNinEmbeddedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NidOptNative == nil { - m.NidOptNative = &NidOptNative{} - } - if err := m.NidOptNative.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 200: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.FieldA == nil { - m.FieldA = &NinOptNative{} - } - if err := m.FieldA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 210: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.FieldB = &b - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomNameEnum) 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 ErrIntOverflowThetestUnsafe - } - 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: CustomNameEnum: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomNameEnum: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType) - } - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldA = &v - case 2: - if wireType == 0 { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldB = append(m.FieldB, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v TheTestEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (TheTestEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.FieldB = append(m.FieldB, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NoExtensionsMap) 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 ErrIntOverflowThetestUnsafe - } - 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: NoExtensionsMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - default: - if (fieldNum >= 100) && (fieldNum < 200) { - var sizeOfWire int - for { - sizeOfWire++ - wire >>= 7 - if wire == 0 { - break - } - } - iNdEx -= sizeOfWire - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) - iNdEx += skippy - } else { - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Unrecognized) 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 ErrIntOverflowThetestUnsafe - } - 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: Unrecognized: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field1 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UnrecognizedWithInner) 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 ErrIntOverflowThetestUnsafe - } - 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: UnrecognizedWithInner: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{}) - if err := m.Embedded[len(m.Embedded)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field2 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UnrecognizedWithInner_Inner) 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 ErrIntOverflowThetestUnsafe - } - 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: Inner: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UnrecognizedWithEmbed) 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 ErrIntOverflowThetestUnsafe - } - 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: UnrecognizedWithEmbed: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field2 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UnrecognizedWithEmbed_Embedded) 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 ErrIntOverflowThetestUnsafe - } - 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: Embedded: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Field1 = &v - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Node) 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 ErrIntOverflowThetestUnsafe - } - 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: Node: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Node: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Label", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Label = &s - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Children = append(m.Children, &Node{}) - if err := m.Children[len(m.Children)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field1 == nil { - m.Field1 = &T{} - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidOptNonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NidOptNonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinOptNonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NinOptNonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinOptNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Field1 == nil { - m.Field1 = &T{} - } - if err := m.Field1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NidRepNonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NidRepNonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NidRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field1 = append(m.Field1, T{}) - if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NinRepNonByteCustomType) 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 ErrIntOverflowThetestUnsafe - } - 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: NinRepNonByteCustomType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NinRepNonByteCustomType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Field1 = append(m.Field1, T{}) - if err := m.Field1[len(m.Field1)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ProtoType) 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 ErrIntOverflowThetestUnsafe - } - 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: ProtoType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ProtoType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowThetestUnsafe - } - 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 ErrInvalidLengthThetestUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Field2 = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipThetestUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthThetestUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipThetestUnsafe(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, ErrIntOverflowThetestUnsafe - } - 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, ErrIntOverflowThetestUnsafe - } - 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, ErrIntOverflowThetestUnsafe - } - 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, ErrInvalidLengthThetestUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowThetestUnsafe - } - 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 := skipThetestUnsafe(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 ( - ErrInvalidLengthThetestUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowThetestUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeunmarshaler/thetest.proto", fileDescriptorThetest) } - -var fileDescriptorThetest = []byte{ - // 3090 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x6c, 0x1b, 0xc7, - 0xd5, 0xd7, 0xec, 0x50, 0x0a, 0xf5, 0x24, 0x4b, 0xf4, 0x26, 0x56, 0x16, 0x8c, 0xbe, 0x15, 0xbd, - 0x91, 0xf5, 0x31, 0x44, 0x2c, 0x51, 0x14, 0x25, 0xcb, 0x4c, 0x93, 0x42, 0xfc, 0xe3, 0x46, 0x6e, - 0x44, 0x19, 0x8c, 0xdc, 0xd6, 0x40, 0x81, 0x82, 0x16, 0x57, 0x12, 0x51, 0x69, 0x29, 0x90, 0xab, - 0x34, 0xee, 0xa1, 0x08, 0x72, 0x28, 0x82, 0x5e, 0x8b, 0x1e, 0xdb, 0xb8, 0x28, 0x0a, 0xa4, 0xb7, - 0x1c, 0x8a, 0xa2, 0x28, 0x8a, 0xc6, 0x97, 0x02, 0xea, 0xcd, 0xe8, 0xa9, 0x08, 0x0a, 0x21, 0x62, - 0x2e, 0x39, 0xa6, 0xa7, 0xe6, 0x90, 0x43, 0xb1, 0xbb, 0xb3, 0xb3, 0x33, 0xb3, 0xbb, 0xdc, 0xa5, - 0xe5, 0xb4, 0xb9, 0xd8, 0xe2, 0xbc, 0xf7, 0x66, 0xde, 0xbe, 0xdf, 0xef, 0xbd, 0x7d, 0x3b, 0x33, - 0xb0, 0xb0, 0xdb, 0x39, 0xba, 0xdf, 0xe9, 0x2d, 0x9d, 0x18, 0xbd, 0xe6, 0x9e, 0x7e, 0x62, 0x1c, - 0x35, 0xbb, 0xbd, 0x83, 0xe6, 0xa1, 0xde, 0x5d, 0x32, 0x0f, 0x74, 0x53, 0xef, 0x99, 0x8b, 0xc7, - 0xdd, 0x8e, 0xd9, 0x91, 0x13, 0xd6, 0xdf, 0xe9, 0xeb, 0xfb, 0x6d, 0xf3, 0xe0, 0xe4, 0xfe, 0xe2, - 0x6e, 0xe7, 0x68, 0x69, 0xbf, 0xb3, 0xdf, 0x59, 0xb2, 0x85, 0xf7, 0x4f, 0xf6, 0xec, 0x5f, 0xf6, - 0x0f, 0xfb, 0x2f, 0xc7, 0x48, 0xfb, 0x27, 0x86, 0xc9, 0x7a, 0xbb, 0xb5, 0x7d, 0x6c, 0xd6, 0x9b, - 0x66, 0xfb, 0x2d, 0x5d, 0x9e, 0x85, 0xb1, 0x5b, 0x6d, 0xfd, 0xb0, 0xb5, 0xac, 0xa0, 0x0c, 0xca, - 0xa2, 0x72, 0xe2, 0xf4, 0x6c, 0x6e, 0xa4, 0x41, 0xc6, 0xa8, 0xb4, 0xa0, 0x48, 0x19, 0x94, 0x95, - 0x38, 0x69, 0x81, 0x4a, 0x57, 0x14, 0x9c, 0x41, 0xd9, 0x51, 0x4e, 0xba, 0x42, 0xa5, 0x45, 0x25, - 0x91, 0x41, 0x59, 0xcc, 0x49, 0x8b, 0x54, 0xba, 0xaa, 0x8c, 0x66, 0x50, 0xf6, 0x12, 0x27, 0x5d, - 0xa5, 0xd2, 0x35, 0x65, 0x2c, 0x83, 0xb2, 0x09, 0x4e, 0xba, 0x46, 0xa5, 0x37, 0x94, 0x67, 0x32, - 0x28, 0x7b, 0x99, 0x93, 0xde, 0xa0, 0xd2, 0x75, 0x25, 0x99, 0x41, 0x59, 0x99, 0x93, 0xae, 0x53, - 0xe9, 0x4d, 0x65, 0x3c, 0x83, 0xb2, 0xcf, 0x70, 0xd2, 0x9b, 0xb2, 0x0a, 0xcf, 0x38, 0x4f, 0x9e, - 0x57, 0x20, 0x83, 0xb2, 0xd3, 0x44, 0xec, 0x0e, 0x7a, 0xf2, 0x65, 0x65, 0x22, 0x83, 0xb2, 0x63, - 0xbc, 0x7c, 0xd9, 0x93, 0x17, 0x94, 0xc9, 0x0c, 0xca, 0xa6, 0x78, 0x79, 0xc1, 0x93, 0xaf, 0x28, - 0x97, 0x32, 0x28, 0x9b, 0xe4, 0xe5, 0x2b, 0x9e, 0xbc, 0xa8, 0x4c, 0x65, 0x50, 0x76, 0x9c, 0x97, - 0x17, 0x3d, 0xf9, 0xaa, 0x32, 0x9d, 0x41, 0xd9, 0x49, 0x5e, 0xbe, 0xaa, 0xbd, 0x6b, 0xc3, 0x6b, - 0x78, 0xf0, 0xce, 0xf0, 0xf0, 0x52, 0x60, 0x67, 0x78, 0x60, 0x29, 0xa4, 0x33, 0x3c, 0xa4, 0x14, - 0xcc, 0x19, 0x1e, 0x4c, 0x0a, 0xe3, 0x0c, 0x0f, 0x23, 0x05, 0x70, 0x86, 0x07, 0x90, 0x42, 0x37, - 0xc3, 0x43, 0x47, 0x41, 0x9b, 0xe1, 0x41, 0xa3, 0x70, 0xcd, 0xf0, 0x70, 0x51, 0xa0, 0x14, 0x01, - 0x28, 0x0f, 0x22, 0x45, 0x80, 0xc8, 0x03, 0x47, 0x11, 0xc0, 0xf1, 0x60, 0x51, 0x04, 0x58, 0x3c, - 0x40, 0x14, 0x01, 0x10, 0x0f, 0x0a, 0x45, 0x80, 0xc2, 0x03, 0x81, 0xe4, 0x58, 0x43, 0x3f, 0x0e, - 0xc8, 0x31, 0x3c, 0x30, 0xc7, 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, - 0x30, 0xc7, 0xf0, 0xc0, 0x1c, 0xc3, 0x03, 0x73, 0x0c, 0x0f, 0xcc, 0x31, 0x3c, 0x38, 0xc7, 0x70, - 0x44, 0x8e, 0xe1, 0x88, 0x1c, 0xc3, 0x11, 0x39, 0x86, 0x23, 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x0e, - 0xcd, 0x31, 0x0f, 0xde, 0x19, 0x1e, 0xde, 0xc0, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, 0x72, 0x0c, - 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, - 0xb0, 0x1c, 0xc3, 0xa1, 0x39, 0x86, 0x43, 0x73, 0x0c, 0x87, 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, - 0x9a, 0x63, 0x98, 0xcd, 0xb1, 0x3f, 0x63, 0x90, 0x9d, 0x1c, 0xbb, 0xd3, 0xdc, 0xfd, 0xa1, 0xde, - 0x22, 0x50, 0xa8, 0x42, 0xa6, 0x8d, 0x59, 0xd0, 0xa5, 0x3c, 0x48, 0x54, 0x21, 0xd7, 0x78, 0x79, - 0x81, 0xca, 0xdd, 0x6c, 0xe3, 0xe5, 0x2b, 0x54, 0xee, 0xe6, 0x1b, 0x2f, 0x2f, 0x52, 0xb9, 0x9b, - 0x71, 0xbc, 0x7c, 0x95, 0xca, 0xdd, 0x9c, 0xe3, 0xe5, 0x6b, 0x54, 0xee, 0x66, 0x1d, 0x2f, 0xbf, - 0x41, 0xe5, 0x6e, 0xde, 0xf1, 0xf2, 0x75, 0x2a, 0x77, 0x33, 0x8f, 0x97, 0xdf, 0x94, 0x33, 0x62, - 0xee, 0xb9, 0x0a, 0x14, 0xda, 0x8c, 0x98, 0x7d, 0x82, 0xc6, 0xb2, 0xa7, 0xe1, 0xe6, 0x9f, 0xa0, - 0x51, 0xf0, 0x34, 0xdc, 0x0c, 0x14, 0x34, 0x56, 0xb4, 0xf7, 0x6c, 0xf8, 0x0c, 0x11, 0xbe, 0xb4, - 0x00, 0x9f, 0xc4, 0x40, 0x97, 0x16, 0xa0, 0x93, 0x18, 0xd8, 0xd2, 0x02, 0x6c, 0x12, 0x03, 0x59, - 0x5a, 0x80, 0x4c, 0x62, 0xe0, 0x4a, 0x0b, 0x70, 0x49, 0x0c, 0x54, 0x69, 0x01, 0x2a, 0x89, 0x81, - 0x29, 0x2d, 0xc0, 0x24, 0x31, 0x10, 0xa5, 0x05, 0x88, 0x24, 0x06, 0x9e, 0xb4, 0x00, 0x8f, 0xc4, - 0x40, 0x33, 0x2b, 0x42, 0x23, 0xb1, 0xb0, 0xcc, 0x8a, 0xb0, 0x48, 0x2c, 0x24, 0xb3, 0x22, 0x24, - 0x12, 0x0b, 0xc7, 0xac, 0x08, 0x87, 0xc4, 0x42, 0xf1, 0xa5, 0xe4, 0x76, 0x84, 0x6f, 0x9a, 0xdd, - 0x93, 0x5d, 0xf3, 0x42, 0x1d, 0x61, 0x9e, 0x6b, 0x1f, 0x26, 0x0a, 0xf2, 0xa2, 0xdd, 0xb0, 0xb2, - 0x1d, 0xa7, 0xf0, 0x06, 0xcb, 0x73, 0x8d, 0x05, 0x63, 0x61, 0x04, 0x5b, 0x14, 0x2f, 0xd4, 0x1b, - 0xe6, 0xb9, 0x36, 0x23, 0xda, 0xbf, 0xf5, 0xaf, 0xbc, 0x63, 0x7b, 0x24, 0xb9, 0x1d, 0x1b, 0x09, - 0xff, 0xb0, 0x1d, 0x5b, 0x2e, 0x3a, 0xe4, 0x34, 0xd8, 0xb9, 0xe8, 0x60, 0xfb, 0xde, 0x3a, 0x71, - 0x3b, 0xb8, 0x5c, 0x74, 0x68, 0x69, 0x50, 0x9f, 0x6e, 0xbf, 0x45, 0x18, 0xdc, 0xd0, 0x8f, 0x03, - 0x18, 0x3c, 0x6c, 0xbf, 0x95, 0xe7, 0x4a, 0xc9, 0xb0, 0x0c, 0xc6, 0x43, 0x33, 0x78, 0xd8, 0xce, - 0x2b, 0xcf, 0x95, 0x97, 0xa1, 0x19, 0xfc, 0x15, 0xf4, 0x43, 0x84, 0xc1, 0x5e, 0xf8, 0x87, 0xed, - 0x87, 0x72, 0xd1, 0x21, 0x0f, 0x64, 0x30, 0x1e, 0x82, 0xc1, 0x71, 0xfa, 0xa3, 0x5c, 0x74, 0x68, - 0x83, 0x19, 0x7c, 0xe1, 0x6e, 0xe6, 0x7d, 0x04, 0x97, 0xeb, 0xed, 0x56, 0xed, 0xe8, 0xbe, 0xde, - 0x6a, 0xe9, 0x2d, 0x12, 0xc7, 0x3c, 0x57, 0x09, 0x42, 0xa0, 0x7e, 0x7c, 0x36, 0xe7, 0x45, 0x78, - 0x15, 0x92, 0x4e, 0x4c, 0xf3, 0x79, 0xe5, 0x14, 0x45, 0x54, 0x38, 0xaa, 0x2a, 0x5f, 0x75, 0xcd, - 0x96, 0xf3, 0xca, 0xdf, 0x11, 0x53, 0xe5, 0xe8, 0xb0, 0xf6, 0x73, 0xdb, 0x43, 0xe3, 0xc2, 0x1e, - 0x2e, 0xc5, 0xf2, 0x90, 0xf1, 0xed, 0x05, 0x9f, 0x6f, 0x8c, 0x57, 0x27, 0x30, 0x5d, 0x6f, 0xb7, - 0xea, 0x7a, 0xcf, 0x8c, 0xe7, 0x92, 0xa3, 0x23, 0xd4, 0x83, 0x3c, 0x47, 0x4b, 0xd6, 0x82, 0x52, - 0x9a, 0xaf, 0x11, 0x5a, 0xdb, 0x5a, 0xd6, 0xe0, 0x96, 0xcd, 0x85, 0x2d, 0xeb, 0x55, 0x76, 0xba, - 0x60, 0x2e, 0x6c, 0x41, 0x2f, 0x87, 0xe8, 0x52, 0x6f, 0xbb, 0x2f, 0xe7, 0xca, 0x49, 0xcf, 0xec, - 0x1c, 0xc9, 0xb3, 0x20, 0x6d, 0xb6, 0xec, 0x35, 0x26, 0xcb, 0x93, 0x96, 0x53, 0x1f, 0x9f, 0xcd, - 0x25, 0xee, 0x9e, 0xb4, 0x5b, 0x0d, 0x69, 0xb3, 0x25, 0xdf, 0x86, 0xd1, 0xef, 0x34, 0x0f, 0x4f, - 0x74, 0xfb, 0x15, 0x31, 0x59, 0x2e, 0x12, 0x85, 0x97, 0x43, 0xf7, 0x88, 0xac, 0x85, 0x97, 0x76, - 0xed, 0xa9, 0x17, 0xef, 0xb6, 0x0d, 0x73, 0xb9, 0xb0, 0xde, 0x70, 0xa6, 0xd0, 0xbe, 0x0f, 0xe0, - 0xac, 0x59, 0x6d, 0xf6, 0x0e, 0xe4, 0xba, 0x3b, 0xb3, 0xb3, 0xf4, 0xfa, 0xc7, 0x67, 0x73, 0xc5, - 0x38, 0xb3, 0x5e, 0x6f, 0x35, 0x7b, 0x07, 0xd7, 0xcd, 0x07, 0xc7, 0xfa, 0x62, 0xf9, 0x81, 0xa9, - 0xf7, 0xdc, 0xd9, 0x8f, 0xdd, 0xb7, 0x1e, 0x79, 0x2e, 0x85, 0x79, 0xae, 0x24, 0xf7, 0x4c, 0xb7, - 0xf8, 0x67, 0xca, 0x3f, 0xe9, 0xf3, 0xbc, 0xed, 0xbe, 0x24, 0x84, 0x48, 0xe2, 0xa8, 0x48, 0xe2, - 0x8b, 0x46, 0xf2, 0xd8, 0xad, 0x8f, 0xc2, 0xb3, 0xe2, 0x41, 0xcf, 0x8a, 0x2f, 0xf2, 0xac, 0xff, - 0x76, 0xb2, 0x95, 0xe6, 0xd3, 0x5d, 0xa3, 0xdd, 0x31, 0xbe, 0x76, 0x7b, 0x41, 0x4f, 0xb5, 0x0b, - 0x28, 0x25, 0x4e, 0x1f, 0xce, 0x21, 0xed, 0x7d, 0xc9, 0x7d, 0x72, 0x27, 0x91, 0x9e, 0xec, 0xc9, - 0xbf, 0x2e, 0x3d, 0xd5, 0x57, 0x11, 0xa1, 0x5f, 0x21, 0x98, 0xf1, 0x55, 0x72, 0x27, 0x4c, 0x4f, - 0xb7, 0x9c, 0x1b, 0xc3, 0x96, 0x73, 0xe2, 0xe0, 0xef, 0x11, 0x3c, 0x27, 0x94, 0x57, 0xc7, 0xbd, - 0x25, 0xc1, 0xbd, 0xe7, 0xfd, 0x2b, 0xd9, 0x8a, 0x8c, 0x77, 0x2c, 0xbc, 0x82, 0x01, 0x33, 0x33, - 0xc5, 0xbd, 0x28, 0xe0, 0x3e, 0x4b, 0x0d, 0x02, 0xc2, 0xe5, 0x32, 0x80, 0xb8, 0xdd, 0x81, 0xc4, - 0x4e, 0x57, 0xd7, 0x65, 0x15, 0xa4, 0xed, 0x2e, 0xf1, 0x70, 0xca, 0xb1, 0xdf, 0xee, 0x96, 0xbb, - 0x4d, 0x63, 0xf7, 0xa0, 0x21, 0x6d, 0x77, 0xe5, 0xab, 0x80, 0x37, 0x8c, 0x16, 0xf1, 0x68, 0xda, - 0x51, 0xd8, 0x30, 0x5a, 0x44, 0xc3, 0x92, 0xc9, 0x2a, 0x24, 0xde, 0xd0, 0x9b, 0x7b, 0xc4, 0x09, - 0x70, 0x74, 0xac, 0x91, 0x86, 0x3d, 0x4e, 0x16, 0xfc, 0x1e, 0x24, 0xdd, 0x89, 0xe5, 0x79, 0xcb, - 0x62, 0xcf, 0x24, 0xcb, 0x12, 0x0b, 0xcb, 0x1d, 0xf2, 0xe6, 0xb2, 0xa5, 0xf2, 0x02, 0x8c, 0x36, - 0xda, 0xfb, 0x07, 0x26, 0x59, 0xdc, 0xaf, 0xe6, 0x88, 0xb5, 0x7b, 0x30, 0x4e, 0x3d, 0x7a, 0xca, - 0x53, 0x57, 0x9d, 0x47, 0x93, 0xd3, 0xec, 0xfb, 0xc4, 0xdd, 0xb7, 0x74, 0x86, 0xe4, 0x0c, 0x24, - 0xdf, 0x34, 0xbb, 0x5e, 0xd1, 0x77, 0x3b, 0x52, 0x3a, 0xaa, 0xbd, 0x8b, 0x20, 0x59, 0xd5, 0xf5, - 0x63, 0x3b, 0xe0, 0xd7, 0x20, 0x51, 0xed, 0xfc, 0xc8, 0x20, 0x0e, 0x5e, 0x26, 0x11, 0xb5, 0xc4, - 0x24, 0xa6, 0xb6, 0x58, 0xbe, 0xc6, 0xc6, 0xfd, 0x59, 0x1a, 0x77, 0x46, 0xcf, 0x8e, 0xbd, 0xc6, - 0xc5, 0x9e, 0x00, 0x68, 0x29, 0xf9, 0xe2, 0x7f, 0x03, 0x26, 0x98, 0x55, 0xe4, 0x2c, 0x71, 0x43, - 0x12, 0x0d, 0xd9, 0x58, 0x59, 0x1a, 0x9a, 0x0e, 0x97, 0xb8, 0x85, 0x2d, 0x53, 0x26, 0xc4, 0x21, - 0xa6, 0x76, 0x98, 0x73, 0x7c, 0x98, 0x83, 0x55, 0x49, 0xa8, 0xf3, 0x4e, 0x8c, 0xec, 0x70, 0xcf, - 0x3b, 0xe4, 0x0c, 0x07, 0xd1, 0xfa, 0x5b, 0x1b, 0x05, 0x5c, 0x6f, 0x1f, 0x6a, 0xaf, 0x02, 0x38, - 0x29, 0x5f, 0x33, 0x4e, 0x8e, 0x84, 0xac, 0x9b, 0x72, 0x03, 0xbc, 0x73, 0xa0, 0xef, 0xe8, 0x3d, - 0x5b, 0x85, 0xef, 0xa7, 0xac, 0x02, 0x03, 0x4e, 0x8a, 0xd9, 0xf6, 0x2f, 0x45, 0xda, 0x07, 0x76, - 0x62, 0x96, 0xaa, 0xe2, 0xa8, 0xde, 0xd3, 0xcd, 0x0d, 0xa3, 0x63, 0x1e, 0xe8, 0x5d, 0xc1, 0xa2, - 0x20, 0xaf, 0x70, 0x09, 0x3b, 0x55, 0x78, 0x81, 0x5a, 0x84, 0x1a, 0xad, 0x68, 0x1f, 0xda, 0x0e, - 0x5a, 0xad, 0x80, 0xef, 0x01, 0x71, 0x8c, 0x07, 0x94, 0xd7, 0xb8, 0xfe, 0x6d, 0x80, 0x9b, 0xc2, - 0xa7, 0xe5, 0x4d, 0xee, 0x3b, 0x67, 0xb0, 0xb3, 0xfc, 0x37, 0xa6, 0x1b, 0x53, 0xd7, 0xe5, 0x97, - 0x22, 0x5d, 0x0e, 0xe9, 0x6e, 0x87, 0x8d, 0x29, 0x8e, 0x1b, 0xd3, 0x3f, 0xd1, 0x8e, 0xc3, 0x1a, - 0xae, 0xea, 0x7b, 0xcd, 0x93, 0x43, 0x53, 0x7e, 0x39, 0x12, 0xfb, 0x12, 0xaa, 0x50, 0x57, 0x8b, - 0x71, 0xe1, 0x2f, 0x49, 0xe5, 0x32, 0x75, 0xf7, 0xc6, 0x10, 0x14, 0x28, 0x49, 0x95, 0x0a, 0x2d, - 0xdb, 0xc9, 0xf7, 0x1e, 0xce, 0xa1, 0x0f, 0x1e, 0xce, 0x8d, 0x68, 0xbf, 0x43, 0x70, 0x99, 0x68, - 0x32, 0xc4, 0xbd, 0x2e, 0x38, 0x7f, 0xc5, 0xad, 0x19, 0x41, 0x11, 0xf8, 0xaf, 0x91, 0xf7, 0xaf, - 0x08, 0x14, 0x9f, 0xaf, 0x6e, 0xbc, 0xf3, 0xb1, 0x5c, 0x2e, 0xa1, 0xda, 0xff, 0x3e, 0xe6, 0xf7, - 0x60, 0x74, 0xa7, 0x7d, 0xa4, 0x77, 0xad, 0x37, 0x81, 0xf5, 0x87, 0xe3, 0xb2, 0x7b, 0x98, 0xe3, - 0x0c, 0xb9, 0x32, 0xc7, 0x39, 0x4e, 0x56, 0x90, 0x15, 0x48, 0x54, 0x9b, 0x66, 0xd3, 0xf6, 0x60, - 0x92, 0xd6, 0xd7, 0xa6, 0xd9, 0xd4, 0x56, 0x60, 0x72, 0xeb, 0x41, 0xed, 0x6d, 0x53, 0x37, 0x5a, - 0xcd, 0xfb, 0x87, 0xe2, 0x19, 0xa8, 0xdb, 0xaf, 0x2e, 0xe7, 0x46, 0x93, 0xad, 0xd4, 0x29, 0x2a, - 0x25, 0x6c, 0x7f, 0xde, 0x82, 0xa9, 0x6d, 0xcb, 0x6d, 0xdb, 0x8e, 0x33, 0x73, 0x56, 0xc7, 0xf4, - 0xe1, 0x85, 0xa6, 0x0c, 0x7b, 0x4d, 0x59, 0x06, 0xd0, 0x16, 0xdf, 0x3a, 0xb1, 0x7e, 0x34, 0xd0, - 0x56, 0x2e, 0x91, 0x9c, 0x4a, 0x5d, 0xce, 0x25, 0x92, 0x90, 0xba, 0x44, 0xd6, 0xfd, 0x1b, 0x86, - 0x94, 0xd3, 0xea, 0x54, 0xf5, 0xbd, 0xb6, 0xd1, 0x36, 0xfd, 0xfd, 0x2a, 0xf5, 0x58, 0xfe, 0x26, - 0x8c, 0x5b, 0x21, 0xb5, 0x7f, 0x11, 0xc0, 0xae, 0x92, 0x16, 0x45, 0x98, 0x82, 0x0c, 0xd8, 0xd4, - 0xf1, 0x6c, 0xe4, 0x5b, 0x80, 0xeb, 0xf5, 0x2d, 0xf2, 0x72, 0x2b, 0x0e, 0x34, 0xdd, 0xd2, 0x7b, - 0xbd, 0xe6, 0xbe, 0x4e, 0x7e, 0x91, 0xb1, 0xde, 0x7e, 0xc3, 0x9a, 0x40, 0x2e, 0x82, 0x54, 0xdf, - 0x22, 0x0d, 0xef, 0x7c, 0x9c, 0x69, 0x1a, 0x52, 0x7d, 0x2b, 0xfd, 0x17, 0x04, 0x97, 0xb8, 0x51, - 0x59, 0x83, 0x49, 0x67, 0x80, 0x79, 0xdc, 0xb1, 0x06, 0x37, 0xe6, 0xfa, 0x2c, 0x5d, 0xd0, 0xe7, - 0xf4, 0x06, 0x4c, 0x0b, 0xe3, 0xf2, 0x22, 0xc8, 0xec, 0x10, 0x71, 0x02, 0xec, 0x86, 0x3a, 0x40, - 0xa2, 0xfd, 0x1f, 0x80, 0x17, 0x57, 0x79, 0x1a, 0x26, 0x76, 0xee, 0xdd, 0xa9, 0xfd, 0xa0, 0x5e, - 0x7b, 0x73, 0xa7, 0x56, 0x4d, 0x21, 0xed, 0x0f, 0x08, 0x26, 0x48, 0xdb, 0xba, 0xdb, 0x39, 0xd6, - 0xe5, 0x32, 0xa0, 0x0d, 0xc2, 0x87, 0x27, 0xf3, 0x1b, 0x6d, 0xc8, 0x4b, 0x80, 0xca, 0xf1, 0xa1, - 0x46, 0x65, 0xb9, 0x00, 0xa8, 0x42, 0x00, 0x8e, 0x87, 0x0c, 0xaa, 0x68, 0xff, 0xc2, 0xf0, 0x2c, - 0xdb, 0x46, 0xbb, 0xf5, 0xe4, 0x2a, 0xff, 0xdd, 0x54, 0x1a, 0x5f, 0x2e, 0xac, 0x14, 0x17, 0xad, - 0x7f, 0x28, 0x25, 0xaf, 0xf2, 0x9f, 0x50, 0x7e, 0x15, 0xdf, 0x35, 0x91, 0x52, 0x82, 0x91, 0xfa, - 0xae, 0x89, 0x70, 0x52, 0xdf, 0x35, 0x11, 0x4e, 0xea, 0xbb, 0x26, 0xc2, 0x49, 0x7d, 0x47, 0x01, - 0x9c, 0xd4, 0x77, 0x4d, 0x84, 0x93, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xff, 0x35, 0x11, 0x22, 0x0e, - 0xbd, 0x26, 0xc2, 0xcb, 0xfd, 0xd7, 0x44, 0x78, 0xb9, 0xff, 0x9a, 0x48, 0x29, 0x61, 0x76, 0x4f, - 0xf4, 0xf0, 0x43, 0x07, 0xde, 0x7e, 0xd0, 0x37, 0xa0, 0x57, 0x80, 0xb7, 0x61, 0xda, 0xd9, 0x8f, - 0xa8, 0x74, 0x0c, 0xb3, 0xd9, 0x36, 0xf4, 0xae, 0xfc, 0x0d, 0x98, 0x74, 0x86, 0x9c, 0xaf, 0x9c, - 0xa0, 0xaf, 0x40, 0x47, 0x4e, 0xca, 0x2d, 0xa7, 0xad, 0x7d, 0x99, 0x80, 0x19, 0x67, 0xa0, 0xde, - 0x3c, 0xd2, 0xb9, 0x4b, 0x46, 0x0b, 0xc2, 0x91, 0xd2, 0x94, 0x65, 0xde, 0x3f, 0x9b, 0x73, 0x46, - 0x37, 0x28, 0x99, 0x16, 0x84, 0xc3, 0x25, 0x5e, 0xcf, 0x7b, 0xff, 0x2c, 0x08, 0x17, 0x8f, 0x78, - 0x3d, 0xfa, 0xba, 0xa1, 0x7a, 0xee, 0x15, 0x24, 0x5e, 0xaf, 0x4a, 0x59, 0xb6, 0x20, 0x5c, 0x46, - 0xe2, 0xf5, 0x6a, 0x94, 0x6f, 0x0b, 0xc2, 0xd1, 0x13, 0xaf, 0x77, 0x8b, 0x32, 0x6f, 0x41, 0x38, - 0x84, 0xe2, 0xf5, 0xbe, 0x45, 0x39, 0xb8, 0x20, 0x5c, 0x55, 0xe2, 0xf5, 0x5e, 0xa7, 0x6c, 0x5c, - 0x10, 0x2e, 0x2d, 0xf1, 0x7a, 0x9b, 0x94, 0x97, 0x59, 0xf1, 0xfa, 0x12, 0xaf, 0x78, 0xdb, 0x63, - 0x68, 0x56, 0xbc, 0xc8, 0xc4, 0x6b, 0x7e, 0xdb, 0xe3, 0x6a, 0x56, 0xbc, 0xd2, 0xc4, 0x6b, 0xbe, - 0xe1, 0xb1, 0x36, 0x2b, 0x1e, 0x95, 0xf1, 0x9a, 0x5b, 0x1e, 0x7f, 0xb3, 0xe2, 0xa1, 0x19, 0xaf, - 0x59, 0xf7, 0x98, 0x9c, 0x15, 0x8f, 0xcf, 0x78, 0xcd, 0x6d, 0x6f, 0x0f, 0xfd, 0x23, 0x81, 0x7e, - 0xcc, 0x25, 0x28, 0x4d, 0xa0, 0x1f, 0x04, 0x50, 0x4f, 0x13, 0xa8, 0x07, 0x01, 0xb4, 0xd3, 0x04, - 0xda, 0x41, 0x00, 0xe5, 0x34, 0x81, 0x72, 0x10, 0x40, 0x37, 0x4d, 0xa0, 0x1b, 0x04, 0x50, 0x4d, - 0x13, 0xa8, 0x06, 0x01, 0x34, 0xd3, 0x04, 0x9a, 0x41, 0x00, 0xc5, 0x34, 0x81, 0x62, 0x10, 0x40, - 0x2f, 0x4d, 0xa0, 0x17, 0x04, 0x50, 0x6b, 0x5e, 0xa4, 0x16, 0x04, 0xd1, 0x6a, 0x5e, 0xa4, 0x15, - 0x04, 0x51, 0xea, 0x45, 0x91, 0x52, 0xe3, 0xfd, 0xb3, 0xb9, 0x51, 0x6b, 0x88, 0x61, 0xd3, 0xbc, - 0xc8, 0x26, 0x08, 0x62, 0xd2, 0xbc, 0xc8, 0x24, 0x08, 0x62, 0xd1, 0xbc, 0xc8, 0x22, 0x08, 0x62, - 0xd0, 0x23, 0x91, 0x41, 0xde, 0x15, 0x1f, 0x4d, 0x38, 0x51, 0x8c, 0x62, 0x10, 0x8e, 0xc1, 0x20, - 0x1c, 0x83, 0x41, 0x38, 0x06, 0x83, 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, 0x18, 0x84, - 0x63, 0x30, 0x08, 0xc7, 0x61, 0x10, 0x8e, 0xc5, 0x20, 0x1c, 0xc6, 0xa0, 0x79, 0xf1, 0xc2, 0x03, - 0x04, 0x15, 0xa4, 0x79, 0xf1, 0xe4, 0x33, 0x9a, 0x42, 0x38, 0x16, 0x85, 0x70, 0x18, 0x85, 0x3e, - 0xc2, 0xf0, 0x2c, 0x47, 0x21, 0x72, 0x3c, 0xf4, 0xb4, 0x2a, 0xd0, 0x5a, 0x8c, 0xfb, 0x15, 0x41, - 0x9c, 0x5a, 0x8b, 0x71, 0x46, 0x3d, 0x88, 0x67, 0xfe, 0x2a, 0x54, 0x8b, 0x51, 0x85, 0x6e, 0x51, - 0x0e, 0xad, 0xc5, 0xb8, 0x77, 0xe1, 0xe7, 0xde, 0xfa, 0xa0, 0x22, 0xf0, 0x7a, 0xac, 0x22, 0xb0, - 0x19, 0xab, 0x08, 0xdc, 0xf6, 0x10, 0xfc, 0xa9, 0x04, 0xcf, 0x79, 0x08, 0x3a, 0x7f, 0xed, 0x3c, - 0x38, 0xb6, 0x4a, 0x80, 0x77, 0x42, 0x25, 0xbb, 0xa7, 0x36, 0x0c, 0x8c, 0xd2, 0x66, 0x4b, 0xbe, - 0xc3, 0x9f, 0x55, 0x95, 0x86, 0x3d, 0xbf, 0x61, 0x10, 0x27, 0x7b, 0xa1, 0xf3, 0x80, 0x37, 0x5b, - 0x3d, 0xbb, 0x5a, 0x04, 0x2d, 0x5b, 0x69, 0x58, 0x62, 0xb9, 0x01, 0x63, 0xb6, 0x7a, 0xcf, 0x86, - 0xf7, 0x22, 0x0b, 0x57, 0x1b, 0x64, 0x26, 0xed, 0x11, 0x82, 0x0c, 0x47, 0xe5, 0xa7, 0x73, 0x62, - 0xf0, 0x4a, 0xac, 0x13, 0x03, 0x2e, 0x41, 0xbc, 0xd3, 0x83, 0xff, 0xf7, 0x1f, 0x54, 0xb3, 0x59, - 0x22, 0x9e, 0x24, 0xfc, 0x04, 0xa6, 0xbc, 0x27, 0xb0, 0x3f, 0xd9, 0x56, 0xa3, 0x37, 0x33, 0x83, - 0x52, 0x73, 0x55, 0xd8, 0x44, 0x1b, 0x68, 0x46, 0xb3, 0x55, 0x2b, 0xc1, 0x74, 0xbd, 0x63, 0x6f, - 0x00, 0xf4, 0xda, 0x1d, 0xa3, 0xb7, 0xd5, 0x3c, 0x8e, 0xda, 0x8b, 0x48, 0x5a, 0xad, 0xf9, 0xe9, - 0xaf, 0xe7, 0x46, 0xb4, 0x97, 0x61, 0xf2, 0xae, 0xd1, 0xd5, 0x77, 0x3b, 0xfb, 0x46, 0xfb, 0xc7, - 0x7a, 0x4b, 0x30, 0x1c, 0x77, 0x0d, 0x4b, 0x89, 0xc7, 0x96, 0xf6, 0x2f, 0x10, 0x5c, 0x61, 0xd5, - 0xbf, 0xdb, 0x36, 0x0f, 0x36, 0x0d, 0xab, 0xa7, 0x7f, 0x15, 0x92, 0x3a, 0x01, 0xce, 0x7e, 0x77, - 0x4d, 0xb8, 0x9f, 0x91, 0x81, 0xea, 0x8b, 0xf6, 0xbf, 0x0d, 0x6a, 0x22, 0x6c, 0x82, 0xb8, 0xcb, - 0x16, 0xd2, 0xd7, 0x60, 0xd4, 0x99, 0x9f, 0xf7, 0xeb, 0x92, 0xe0, 0xd7, 0x6f, 0x03, 0xfc, 0xb2, - 0x79, 0x24, 0xdf, 0xe6, 0xfc, 0x62, 0xbe, 0x56, 0x03, 0xd5, 0x17, 0x5d, 0xf2, 0x95, 0x93, 0x56, - 0xff, 0x67, 0x33, 0x2a, 0xda, 0xc9, 0x2c, 0x24, 0x6b, 0xa2, 0x4e, 0xb0, 0x9f, 0x55, 0x48, 0xd4, - 0x3b, 0x2d, 0x5d, 0x7e, 0x0e, 0x46, 0xdf, 0x68, 0xde, 0xd7, 0x0f, 0x49, 0x90, 0x9d, 0x1f, 0xf2, - 0x02, 0x24, 0x2b, 0x07, 0xed, 0xc3, 0x56, 0x57, 0x37, 0xc8, 0x91, 0x3d, 0xd9, 0x41, 0xb7, 0x6c, - 0x1a, 0x54, 0xa6, 0x55, 0xe0, 0x72, 0xbd, 0x63, 0x94, 0x1f, 0x98, 0x6c, 0xdd, 0x58, 0x14, 0x52, - 0x84, 0x1c, 0xf9, 0xdc, 0xb1, 0xb2, 0xd1, 0x52, 0x28, 0x8f, 0x7e, 0x7c, 0x36, 0x87, 0x76, 0xe8, - 0xf6, 0xf9, 0x16, 0x3c, 0x4f, 0xd2, 0xc7, 0x37, 0x55, 0x21, 0x6a, 0xaa, 0x71, 0x72, 0x4c, 0xcd, - 0x4c, 0xb7, 0x69, 0x4d, 0x67, 0x04, 0x4e, 0xf7, 0x64, 0x9e, 0x59, 0x4d, 0xd1, 0x40, 0xcf, 0xf0, - 0x50, 0x9e, 0x05, 0x4e, 0xb7, 0x18, 0x35, 0x9d, 0xe0, 0xd9, 0x8b, 0x30, 0x4e, 0x65, 0x0c, 0x1b, - 0xd8, 0x4c, 0x29, 0xe4, 0x34, 0x98, 0x60, 0x12, 0x56, 0x1e, 0x05, 0xb4, 0x91, 0x1a, 0xb1, 0xfe, - 0x2b, 0xa7, 0x90, 0xf5, 0x5f, 0x25, 0x25, 0xe5, 0xae, 0xc1, 0xb4, 0xb0, 0x7d, 0x69, 0x49, 0xaa, - 0x29, 0xb0, 0xfe, 0xab, 0xa5, 0x26, 0xd2, 0x89, 0xf7, 0x7e, 0xa3, 0x8e, 0xe4, 0x5e, 0x01, 0xd9, - 0xbf, 0xd1, 0x29, 0x8f, 0x81, 0xb4, 0x61, 0x4d, 0xf9, 0x3c, 0x48, 0xe5, 0x72, 0x0a, 0xa5, 0xa7, - 0x7f, 0xf6, 0xcb, 0xcc, 0x44, 0x59, 0x37, 0x4d, 0xbd, 0x7b, 0x4f, 0x37, 0xcb, 0x65, 0x62, 0xfc, - 0x1a, 0x5c, 0x09, 0xdc, 0x28, 0xb5, 0xec, 0x2b, 0x15, 0xc7, 0xbe, 0x5a, 0xf5, 0xd9, 0x57, 0xab, - 0xb6, 0x3d, 0x2a, 0xb9, 0x07, 0xce, 0x1b, 0x72, 0xc0, 0x26, 0xa3, 0xd2, 0x62, 0x0e, 0xb8, 0x37, - 0x4a, 0xaf, 0x11, 0xdd, 0x72, 0xa0, 0xae, 0x1e, 0x71, 0x60, 0x5d, 0x2e, 0x55, 0x88, 0x7d, 0x25, - 0xd0, 0x7e, 0x4f, 0x38, 0x55, 0xe5, 0xdf, 0x10, 0x64, 0x92, 0x0a, 0x75, 0xb8, 0x1a, 0x38, 0xc9, - 0x01, 0x73, 0xd7, 0xbd, 0x4a, 0x1d, 0xae, 0x05, 0xea, 0xb6, 0x23, 0xee, 0x7c, 0xd5, 0x4a, 0x4b, - 0xe4, 0x25, 0xbf, 0xb1, 0x2c, 0x5f, 0x71, 0x73, 0x94, 0xab, 0xc0, 0x24, 0x40, 0xae, 0x56, 0xa9, - 0x42, 0x0c, 0xca, 0xa1, 0x06, 0xe1, 0x51, 0x72, 0x2d, 0x4b, 0xaf, 0x93, 0x49, 0x2a, 0xa1, 0x93, - 0x44, 0x84, 0xca, 0x35, 0x2f, 0xef, 0x9c, 0x9e, 0xab, 0x23, 0x8f, 0xcf, 0xd5, 0x91, 0x7f, 0x9c, - 0xab, 0x23, 0x9f, 0x9c, 0xab, 0xe8, 0xb3, 0x73, 0x15, 0x7d, 0x7e, 0xae, 0xa2, 0x2f, 0xce, 0x55, - 0xf4, 0x4e, 0x5f, 0x45, 0x1f, 0xf4, 0x55, 0xf4, 0x61, 0x5f, 0x45, 0x7f, 0xec, 0xab, 0xe8, 0x51, - 0x5f, 0x45, 0xa7, 0x7d, 0x75, 0xe4, 0x71, 0x5f, 0x1d, 0xf9, 0xa4, 0xaf, 0xa2, 0xcf, 0xfa, 0xea, - 0xc8, 0xe7, 0x7d, 0x15, 0x7d, 0xd1, 0x57, 0x47, 0xde, 0xf9, 0x54, 0x45, 0x0f, 0x3f, 0x55, 0x47, - 0x3e, 0xf8, 0x54, 0x45, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x69, 0xf7, 0x4c, 0xd6, 0x53, 0x36, - 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.proto b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.proto deleted file mode 100644 index 1b2b42a90..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetest.proto +++ /dev/null @@ -1,649 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; -package test; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; -option (gogoproto.protosizer_all) = false; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = false; -option (gogoproto.unsafe_unmarshaler_all) = true; - -option (gogoproto.compare_all) = true; - -message NidOptNative { - optional double Field1 = 1 [(gogoproto.nullable) = false]; - optional float Field2 = 2 [(gogoproto.nullable) = false]; - optional int32 Field3 = 3 [(gogoproto.nullable) = false]; - optional int64 Field4 = 4 [(gogoproto.nullable) = false]; - optional uint32 Field5 = 5 [(gogoproto.nullable) = false]; - optional uint64 Field6 = 6 [(gogoproto.nullable) = false]; - optional sint32 Field7 = 7 [(gogoproto.nullable) = false]; - optional sint64 Field8 = 8 [(gogoproto.nullable) = false]; - optional fixed32 Field9 = 9 [(gogoproto.nullable) = false]; - optional sfixed32 Field10 = 10 [(gogoproto.nullable) = false]; - optional fixed64 Field11 = 11 [(gogoproto.nullable) = false]; - optional sfixed64 Field12 = 12 [(gogoproto.nullable) = false]; - optional bool Field13 = 13 [(gogoproto.nullable) = false]; - optional string Field14 = 14 [(gogoproto.nullable) = false]; - optional bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinOptNative { - optional double Field1 = 1; - optional float Field2 = 2; - optional int32 Field3 = 3; - optional int64 Field4 = 4; - optional uint32 Field5 = 5; - optional uint64 Field6 = 6; - optional sint32 Field7 = 7; - optional sint64 Field8 = 8; - optional fixed32 Field9 = 9; - optional sfixed32 Field10 = 10; - optional fixed64 Field11 = 11; - optional sfixed64 Field12 = 12; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NidRepNative { - repeated double Field1 = 1 [(gogoproto.nullable) = false]; - repeated float Field2 = 2 [(gogoproto.nullable) = false]; - repeated int32 Field3 = 3 [(gogoproto.nullable) = false]; - repeated int64 Field4 = 4 [(gogoproto.nullable) = false]; - repeated uint32 Field5 = 5 [(gogoproto.nullable) = false]; - repeated uint64 Field6 = 6 [(gogoproto.nullable) = false]; - repeated sint32 Field7 = 7 [(gogoproto.nullable) = false]; - repeated sint64 Field8 = 8 [(gogoproto.nullable) = false]; - repeated fixed32 Field9 = 9 [(gogoproto.nullable) = false]; - repeated sfixed32 Field10 = 10 [(gogoproto.nullable) = false]; - repeated fixed64 Field11 = 11 [(gogoproto.nullable) = false]; - repeated sfixed64 Field12 = 12 [(gogoproto.nullable) = false]; - repeated bool Field13 = 13 [(gogoproto.nullable) = false]; - repeated string Field14 = 14 [(gogoproto.nullable) = false]; - repeated bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinRepNative { - repeated double Field1 = 1; - repeated float Field2 = 2; - repeated int32 Field3 = 3; - repeated int64 Field4 = 4; - repeated uint32 Field5 = 5; - repeated uint64 Field6 = 6; - repeated sint32 Field7 = 7; - repeated sint64 Field8 = 8; - repeated fixed32 Field9 = 9; - repeated sfixed32 Field10 = 10; - repeated fixed64 Field11 = 11; - repeated sfixed64 Field12 = 12; - repeated bool Field13 = 13; - repeated string Field14 = 14; - repeated bytes Field15 = 15; -} - -message NidRepPackedNative { - repeated double Field1 = 1 [(gogoproto.nullable) = false, packed = true]; - repeated float Field2 = 2 [(gogoproto.nullable) = false, packed = true]; - repeated int32 Field3 = 3 [(gogoproto.nullable) = false, packed = true]; - repeated int64 Field4 = 4 [(gogoproto.nullable) = false, packed = true]; - repeated uint32 Field5 = 5 [(gogoproto.nullable) = false, packed = true]; - repeated uint64 Field6 = 6 [(gogoproto.nullable) = false, packed = true]; - repeated sint32 Field7 = 7 [(gogoproto.nullable) = false, packed = true]; - repeated sint64 Field8 = 8 [(gogoproto.nullable) = false, packed = true]; - repeated fixed32 Field9 = 9 [(gogoproto.nullable) = false, packed = true]; - repeated sfixed32 Field10 = 10 [(gogoproto.nullable) = false, packed = true]; - repeated fixed64 Field11 = 11 [(gogoproto.nullable) = false, packed = true]; - repeated sfixed64 Field12 = 12 [(gogoproto.nullable) = false, packed = true]; - repeated bool Field13 = 13 [(gogoproto.nullable) = false, packed = true]; -} - -message NinRepPackedNative { - repeated double Field1 = 1 [packed = true]; - repeated float Field2 = 2 [packed = true]; - repeated int32 Field3 = 3 [packed = true]; - repeated int64 Field4 = 4 [packed = true]; - repeated uint32 Field5 = 5 [packed = true]; - repeated uint64 Field6 = 6 [packed = true]; - repeated sint32 Field7 = 7 [packed = true]; - repeated sint64 Field8 = 8 [packed = true]; - repeated fixed32 Field9 = 9 [packed = true]; - repeated sfixed32 Field10 = 10 [packed = true]; - repeated fixed64 Field11 = 11 [packed = true]; - repeated sfixed64 Field12 = 12 [packed = true]; - repeated bool Field13 = 13 [packed = true]; -} - -message NidOptStruct { - optional double Field1 = 1 [(gogoproto.nullable) = false]; - optional float Field2 = 2 [(gogoproto.nullable) = false]; - optional NidOptNative Field3 = 3 [(gogoproto.nullable) = false]; - optional NinOptNative Field4 = 4 [(gogoproto.nullable) = false]; - optional uint64 Field6 = 6 [(gogoproto.nullable) = false]; - optional sint32 Field7 = 7 [(gogoproto.nullable) = false]; - optional NidOptNative Field8 = 8 [(gogoproto.nullable) = false]; - optional bool Field13 = 13 [(gogoproto.nullable) = false]; - optional string Field14 = 14 [(gogoproto.nullable) = false]; - optional bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinOptStruct { - optional double Field1 = 1; - optional float Field2 = 2; - optional NidOptNative Field3 = 3; - optional NinOptNative Field4 = 4; - optional uint64 Field6 = 6; - optional sint32 Field7 = 7; - optional NidOptNative Field8 = 8; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NidRepStruct { - repeated double Field1 = 1 [(gogoproto.nullable) = false]; - repeated float Field2 = 2 [(gogoproto.nullable) = false]; - repeated NidOptNative Field3 = 3 [(gogoproto.nullable) = false]; - repeated NinOptNative Field4 = 4 [(gogoproto.nullable) = false]; - repeated uint64 Field6 = 6 [(gogoproto.nullable) = false]; - repeated sint32 Field7 = 7 [(gogoproto.nullable) = false]; - repeated NidOptNative Field8 = 8 [(gogoproto.nullable) = false]; - repeated bool Field13 = 13 [(gogoproto.nullable) = false]; - repeated string Field14 = 14 [(gogoproto.nullable) = false]; - repeated bytes Field15 = 15 [(gogoproto.nullable) = false]; -} - -message NinRepStruct { - repeated double Field1 = 1; - repeated float Field2 = 2; - repeated NidOptNative Field3 = 3; - repeated NinOptNative Field4 = 4; - repeated uint64 Field6 = 6; - repeated sint32 Field7 = 7; - repeated NidOptNative Field8 = 8; - repeated bool Field13 = 13; - repeated string Field14 = 14; - repeated bytes Field15 = 15; -} - -message NidEmbeddedStruct { - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NidOptNative Field200 = 200 [(gogoproto.nullable) = false]; - optional bool Field210 = 210 [(gogoproto.nullable) = false]; -} - -message NinEmbeddedStruct { - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NidOptNative Field200 = 200; - optional bool Field210 = 210; -} - -message NidNestedStruct { - optional NidOptStruct Field1 = 1 [(gogoproto.nullable) = false]; - repeated NidRepStruct Field2 = 2 [(gogoproto.nullable) = false]; -} - -message NinNestedStruct { - optional NinOptStruct Field1 = 1; - repeated NinRepStruct Field2 = 2; -} - -message NidOptCustom { - optional bytes Id = 1 [(gogoproto.customtype) = "Uuid", (gogoproto.nullable) = false]; - optional bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; -} - -message CustomDash { - optional bytes Value = 1 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom-dash-type.Bytes"]; -} - -message NinOptCustom { - optional bytes Id = 1 [(gogoproto.customtype) = "Uuid"]; - optional bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message NidRepCustom { - repeated bytes Id = 1 [(gogoproto.customtype) = "Uuid", (gogoproto.nullable) = false]; - repeated bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable) = false]; -} - -message NinRepCustom { - repeated bytes Id = 1 [(gogoproto.customtype) = "Uuid"]; - repeated bytes Value = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message NinOptNativeUnion { - option (gogoproto.onlyone) = true; - optional double Field1 = 1; - optional float Field2 = 2; - optional int32 Field3 = 3; - optional int64 Field4 = 4; - optional uint32 Field5 = 5; - optional uint64 Field6 = 6; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NinOptStructUnion { - option (gogoproto.onlyone) = true; - optional double Field1 = 1; - optional float Field2 = 2; - optional NidOptNative Field3 = 3; - optional NinOptNative Field4 = 4; - optional uint64 Field6 = 6; - optional sint32 Field7 = 7; - optional bool Field13 = 13; - optional string Field14 = 14; - optional bytes Field15 = 15; -} - -message NinEmbeddedStructUnion { - option (gogoproto.onlyone) = true; - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NinOptNative Field200 = 200; - optional bool Field210 = 210; -} - -message NinNestedStructUnion { - option (gogoproto.onlyone) = true; - optional NinOptNativeUnion Field1 = 1; - optional NinOptStructUnion Field2 = 2; - optional NinEmbeddedStructUnion Field3 = 3; -} - -message Tree { - option (gogoproto.onlyone) = true; - optional OrBranch Or = 1; - optional AndBranch And = 2; - optional Leaf Leaf = 3; -} - -message OrBranch { - optional Tree Left = 1 [(gogoproto.nullable) = false]; - optional Tree Right = 2 [(gogoproto.nullable) = false]; -} - -message AndBranch { - optional Tree Left = 1 [(gogoproto.nullable) = false]; - optional Tree Right = 2 [(gogoproto.nullable) = false]; -} - -message Leaf { - optional int64 Value = 1 [(gogoproto.nullable) = false]; - optional string StrValue = 2 [(gogoproto.nullable) = false]; -} - -message DeepTree { - option (gogoproto.onlyone) = true; - optional ADeepBranch Down = 1; - optional AndDeepBranch And = 2; - optional DeepLeaf Leaf = 3; -} - -message ADeepBranch { - optional DeepTree Down = 2 [(gogoproto.nullable) = false]; -} - -message AndDeepBranch { - optional DeepTree Left = 1 [(gogoproto.nullable) = false]; - optional DeepTree Right = 2 [(gogoproto.nullable) = false]; -} - -message DeepLeaf { - optional Tree Tree = 1 [(gogoproto.nullable) = false]; -} - -message Nil { - -} - -enum TheTestEnum { - A = 0; - B = 1; - C = 2; -} - -enum AnotherTestEnum { - option (gogoproto.goproto_enum_prefix) = false; - D = 10; - E = 11; -} - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -enum YetAnotherTestEnum { - option (gogoproto.goproto_enum_prefix) = false; - AA = 0; - BB = 1 [(gogoproto.enumvalue_customname) = "BetterYetBB"]; -} - -// YetAnotherTestEnum is used to test cross-package import of custom name -// fields and default resolution. -enum YetYetAnotherTestEnum { - option (gogoproto.goproto_enum_prefix) = true; - CC = 0; - DD = 1 [(gogoproto.enumvalue_customname) = "BetterYetDD"]; -} - -message NidOptEnum { - optional TheTestEnum Field1 = 1 [(gogoproto.nullable) = false]; -} - -message NinOptEnum { - optional TheTestEnum Field1 = 1; - optional YetAnotherTestEnum Field2 = 2; - optional YetYetAnotherTestEnum Field3 = 3; -} - -message NidRepEnum { - repeated TheTestEnum Field1 = 1 [(gogoproto.nullable) = false]; - repeated YetAnotherTestEnum Field2 = 2 [(gogoproto.nullable) = false]; - repeated YetYetAnotherTestEnum Field3 = 3 [(gogoproto.nullable) = false]; -} - -message NinRepEnum { - repeated TheTestEnum Field1 = 1; - repeated YetAnotherTestEnum Field2 = 2; - repeated YetYetAnotherTestEnum Field3 = 3; -} - -message NinOptEnumDefault { - option (gogoproto.goproto_getters) = true; - option (gogoproto.face) = false; - optional TheTestEnum Field1 = 1 [default=C]; - optional YetAnotherTestEnum Field2 = 2 [default=BB]; - optional YetYetAnotherTestEnum Field3 = 3 [default=CC]; -} - -message AnotherNinOptEnum { - optional AnotherTestEnum Field1 = 1; - optional YetAnotherTestEnum Field2 = 2; - optional YetYetAnotherTestEnum Field3 = 3; -} - -message AnotherNinOptEnumDefault { - option (gogoproto.goproto_getters) = true; - option (gogoproto.face) = false; - optional AnotherTestEnum Field1 = 1 [default=E]; - optional YetAnotherTestEnum Field2 = 2 [default=BB]; - optional YetYetAnotherTestEnum Field3 = 3 [default=CC]; -} - - -message Timer { - optional sfixed64 Time1 = 1 [(gogoproto.nullable) = false]; - optional sfixed64 Time2 = 2 [(gogoproto.nullable) = false]; - optional bytes Data = 3 [(gogoproto.nullable) = false]; -} - -message MyExtendable { - option (gogoproto.face) = false; - optional int64 Field1 = 1; - extensions 100 to 199; -} - -extend MyExtendable { - optional double FieldA = 100; - optional NinOptNative FieldB = 101; - optional NinEmbeddedStruct FieldC = 102; - repeated int64 FieldD = 104; - repeated NinOptNative FieldE = 105; -} - -message OtherExtenable { - option (gogoproto.face) = false; - optional int64 Field2 = 2; - extensions 14 to 16; - optional int64 Field13 = 13; - extensions 10 to 12; - optional MyExtendable M = 1; -} - -message NestedDefinition { - optional int64 Field1 = 1; - message NestedMessage { - optional fixed64 NestedField1 = 1; - optional NestedNestedMsg NNM = 2; - message NestedNestedMsg { - optional string NestedNestedField1 = 10; - } - } - enum NestedEnum { - TYPE_NESTED = 1; - } - optional NestedEnum EnumField = 2; - optional NestedMessage.NestedNestedMsg NNM = 3; - optional NestedMessage NM = 4; -} - -message NestedScope { - optional NestedDefinition.NestedMessage.NestedNestedMsg A = 1; - optional NestedDefinition.NestedEnum B = 2; - optional NestedDefinition.NestedMessage C = 3; -} - -message NinOptNativeDefault { - option (gogoproto.goproto_getters) = true; - option (gogoproto.face) = false; - optional double Field1 = 1 [default = 1234.1234]; - optional float Field2 = 2 [default = 1234.1234]; - optional int32 Field3 = 3 [default = 1234]; - optional int64 Field4 = 4 [default = 1234]; - optional uint32 Field5 = 5 [default = 1234]; - optional uint64 Field6 = 6 [default = 1234]; - optional sint32 Field7 = 7 [default = 1234]; - optional sint64 Field8 = 8 [default = 1234]; - optional fixed32 Field9 = 9 [default = 1234]; - optional sfixed32 Field10 = 10 [default = 1234]; - optional fixed64 Field11 = 11 [default = 1234]; - optional sfixed64 Field12 = 12 [default = 1234]; - optional bool Field13 = 13 [default = true]; - optional string Field14 = 14 [default = "1234"]; - optional bytes Field15 = 15; -} - -message CustomContainer { - optional NidOptCustom CustomStruct = 1 [(gogoproto.nullable) = false]; -} - -message CustomNameNidOptNative { - optional double Field1 = 1 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldA"]; - optional float Field2 = 2 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldB"]; - optional int32 Field3 = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldC"]; - optional int64 Field4 = 4 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldD"]; - optional uint32 Field5 = 5 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldE"]; - optional uint64 Field6 = 6 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldF"]; - optional sint32 Field7 = 7 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldG"]; - optional sint64 Field8 = 8 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldH"]; - optional fixed32 Field9 = 9 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldI"]; - optional sfixed32 Field10 = 10 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldJ"]; - optional fixed64 Field11 = 11 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldK"]; - optional sfixed64 Field12 = 12 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldL"]; - optional bool Field13 = 13 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldM"]; - optional string Field14 = 14 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldN"]; - optional bytes Field15 = 15 [(gogoproto.nullable) = false, (gogoproto.customname) = "FieldO"]; -} - -message CustomNameNinOptNative { - optional double Field1 = 1 [(gogoproto.customname) = "FieldA"]; - optional float Field2 = 2 [(gogoproto.customname) = "FieldB"]; - optional int32 Field3 = 3 [(gogoproto.customname) = "FieldC"]; - optional int64 Field4 = 4 [(gogoproto.customname) = "FieldD"]; - optional uint32 Field5 = 5 [(gogoproto.customname) = "FieldE"]; - optional uint64 Field6 = 6 [(gogoproto.customname) = "FieldF"]; - optional sint32 Field7 = 7 [(gogoproto.customname) = "FieldG"]; - optional sint64 Field8 = 8 [(gogoproto.customname) = "FieldH"]; - optional fixed32 Field9 = 9 [(gogoproto.customname) = "FieldI"]; - optional sfixed32 Field10 = 10 [(gogoproto.customname) = "FieldJ"]; - optional fixed64 Field11 = 11 [(gogoproto.customname) = "FieldK"]; - optional sfixed64 Field12 = 12 [(gogoproto.customname) = "FielL"]; - optional bool Field13 = 13 [(gogoproto.customname) = "FieldM"]; - optional string Field14 = 14 [(gogoproto.customname) = "FieldN"]; - optional bytes Field15 = 15 [(gogoproto.customname) = "FieldO"]; -} - -message CustomNameNinRepNative { - repeated double Field1 = 1 [(gogoproto.customname) = "FieldA"]; - repeated float Field2 = 2 [(gogoproto.customname) = "FieldB"]; - repeated int32 Field3 = 3 [(gogoproto.customname) = "FieldC"]; - repeated int64 Field4 = 4 [(gogoproto.customname) = "FieldD"]; - repeated uint32 Field5 = 5 [(gogoproto.customname) = "FieldE"]; - repeated uint64 Field6 = 6 [(gogoproto.customname) = "FieldF"]; - repeated sint32 Field7 = 7 [(gogoproto.customname) = "FieldG"]; - repeated sint64 Field8 = 8 [(gogoproto.customname) = "FieldH"]; - repeated fixed32 Field9 = 9 [(gogoproto.customname) = "FieldI"]; - repeated sfixed32 Field10 = 10 [(gogoproto.customname) = "FieldJ"]; - repeated fixed64 Field11 = 11 [(gogoproto.customname) = "FieldK"]; - repeated sfixed64 Field12 = 12 [(gogoproto.customname) = "FieldL"]; - repeated bool Field13 = 13 [(gogoproto.customname) = "FieldM"]; - repeated string Field14 = 14 [(gogoproto.customname) = "FieldN"]; - repeated bytes Field15 = 15 [(gogoproto.customname) = "FieldO"]; -} - -message CustomNameNinStruct { - optional double Field1 = 1 [(gogoproto.customname) = "FieldA"]; - optional float Field2 = 2 [(gogoproto.customname) = "FieldB"]; - optional NidOptNative Field3 = 3 [(gogoproto.customname) = "FieldC"]; - repeated NinOptNative Field4 = 4 [(gogoproto.customname) = "FieldD"]; - optional uint64 Field6 = 6 [(gogoproto.customname) = "FieldE"]; - optional sint32 Field7 = 7 [(gogoproto.customname) = "FieldF"]; - optional NidOptNative Field8 = 8 [(gogoproto.customname) = "FieldG"]; - optional bool Field13 = 13 [(gogoproto.customname) = "FieldH"]; - optional string Field14 = 14 [(gogoproto.customname) = "FieldI"]; - optional bytes Field15 = 15 [(gogoproto.customname) = "FieldJ"]; -} - -message CustomNameCustomType { - optional bytes Id = 1 [(gogoproto.customname) = "FieldA", (gogoproto.customtype) = "Uuid"]; - optional bytes Value = 2 [(gogoproto.customname) = "FieldB", (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; - repeated bytes Ids = 3 [(gogoproto.customname) = "FieldC", (gogoproto.customtype) = "Uuid"]; - repeated bytes Values = 4 [(gogoproto.customname) = "FieldD", (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message CustomNameNinEmbeddedStructUnion { - option (gogoproto.onlyone) = true; - optional NidOptNative Field1 = 1 [(gogoproto.embed) = true]; - optional NinOptNative Field200 = 200 [(gogoproto.customname) = "FieldA"]; - optional bool Field210 = 210 [(gogoproto.customname) = "FieldB"]; -} - -message CustomNameEnum { - optional TheTestEnum Field1 = 1 [(gogoproto.customname) = "FieldA"]; - repeated TheTestEnum Field2 = 2 [(gogoproto.customname) = "FieldB"]; -} - -message NoExtensionsMap { - option (gogoproto.face) = false; - option (gogoproto.goproto_extensions_map) = false; - optional int64 Field1 = 1; - extensions 100 to 199; -} - -extend NoExtensionsMap { - optional double FieldA1 = 100; - optional NinOptNative FieldB1 = 101; - optional NinEmbeddedStruct FieldC1 = 102; -} - -message Unrecognized { - option (gogoproto.goproto_unrecognized) = false; - optional string Field1 = 1; -} - -message UnrecognizedWithInner { - message Inner { - option (gogoproto.goproto_unrecognized) = false; - optional uint32 Field1 = 1; - } - - repeated Inner embedded = 1; - optional string Field2 = 2; -} - -message UnrecognizedWithEmbed { - message Embedded { - option (gogoproto.goproto_unrecognized) = false; - optional uint32 Field1 = 1; - } - - optional Embedded embedded = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - optional string Field2 = 2; -} - -message Node { - optional string Label = 1; - repeated Node Children = 2; -} - -message NonByteCustomType { - optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; -} - -message NidOptNonByteCustomType { - optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; -} - -message NinOptNonByteCustomType { - optional ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; -} - -message NidRepNonByteCustomType { - repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T", (gogoproto.nullable) = false]; -} - -message NinRepNonByteCustomType { - repeated ProtoType Field1 = 1 [(gogoproto.customtype) = "T"]; -} - -message ProtoType { - optional string Field2 = 1; -} diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetestpb_test.go deleted file mode 100644 index 453ee602c..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/thetestpb_test.go +++ /dev/null @@ -1,16864 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/thetest.proto -// DO NOT EDIT! - -/* -Package test is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeunmarshaler/thetest.proto - -It has these top-level messages: - NidOptNative - NinOptNative - NidRepNative - NinRepNative - NidRepPackedNative - NinRepPackedNative - NidOptStruct - NinOptStruct - NidRepStruct - NinRepStruct - NidEmbeddedStruct - NinEmbeddedStruct - NidNestedStruct - NinNestedStruct - NidOptCustom - CustomDash - NinOptCustom - NidRepCustom - NinRepCustom - NinOptNativeUnion - NinOptStructUnion - NinEmbeddedStructUnion - NinNestedStructUnion - Tree - OrBranch - AndBranch - Leaf - DeepTree - ADeepBranch - AndDeepBranch - DeepLeaf - Nil - NidOptEnum - NinOptEnum - NidRepEnum - NinRepEnum - NinOptEnumDefault - AnotherNinOptEnum - AnotherNinOptEnumDefault - Timer - MyExtendable - OtherExtenable - NestedDefinition - NestedScope - NinOptNativeDefault - CustomContainer - CustomNameNidOptNative - CustomNameNinOptNative - CustomNameNinRepNative - CustomNameNinStruct - CustomNameCustomType - CustomNameNinEmbeddedStructUnion - CustomNameEnum - NoExtensionsMap - Unrecognized - UnrecognizedWithInner - UnrecognizedWithEmbed - Node - NonByteCustomType - NidOptNonByteCustomType - NinOptNonByteCustomType - NidRepNonByteCustomType - NinRepNonByteCustomType - ProtoType -*/ -package test - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestNidOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepPackedNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepPackedNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepPackedNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepPackedNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepPackedNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepPackedNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidEmbeddedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidEmbeddedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidEmbeddedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinEmbeddedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidNestedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidNestedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidNestedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinNestedStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomDashProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomDashProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomDash, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomDash(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomDash{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepCustomProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepCustom, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepCustom{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNativeUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNativeUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinEmbeddedStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinNestedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinNestedStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestTreeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Tree, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Tree{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOrBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkOrBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OrBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOrBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OrBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkAndBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAndBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AndBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestLeafProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Leaf, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Leaf{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepTreeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkDeepTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepTree, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedDeepTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &DeepTree{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestADeepBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkADeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ADeepBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedADeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ADeepBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndDeepBranchProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndDeepBranch, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAndDeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AndDeepBranch{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepLeafProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkDeepLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepLeaf, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedDeepLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &DeepLeaf{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNilProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNilProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nil, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNil(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNilProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Nil{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumDefaultProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnumDefault, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptEnumDefault{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AnotherNinOptEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumDefaultProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnumDefault, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AnotherNinOptEnumDefault{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestTimerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkTimerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Timer, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedTimer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkTimerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Timer{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMyExtendableProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkMyExtendableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MyExtendable, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMyExtendable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MyExtendable{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOtherExtenableProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OtherExtenable, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOtherExtenable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OtherExtenable{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinitionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedDefinition(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedDefinition{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessageProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedDefinition_NestedMessage{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedScopeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNestedScopeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedScope, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNestedScope(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NestedScope{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeDefaultProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeDefault, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNativeDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNativeDefault{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomContainerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomContainerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomContainer, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomContainer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomContainer{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNidOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNidOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNidOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinOptNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinOptNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinOptNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinRepNativeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinRepNative, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinRepNative{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinStructProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinStruct, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinStruct{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinEmbeddedStructUnion, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameNinEmbeddedStructUnion{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameEnumProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameEnum, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomNameEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomNameEnum{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNoExtensionsMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NoExtensionsMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNoExtensionsMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NoExtensionsMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Unrecognized, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognized(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Unrecognized{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInnerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithInner{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInner_InnerProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner_Inner, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner_Inner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithInner_Inner{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithEmbed{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed_Embedded, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &UnrecognizedWithEmbed_Embedded{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNodeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNodeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Node, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNode(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNodeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Node{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidOptNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinOptNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NidRepNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNonByteCustomTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNonByteCustomType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NinRepNonByteCustomType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkProtoTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoType, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedProtoType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ProtoType{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepPackedNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepPackedNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidEmbeddedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinEmbeddedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidNestedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinNestedStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomDashJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomDash{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepCustomJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNativeUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinEmbeddedStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinNestedStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinNestedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestTreeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Tree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOrBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OrBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAndBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestLeafJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Leaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestDeepTreeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepTree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestADeepBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ADeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAndDeepBranchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AndDeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestDeepLeafJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &DeepLeaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNilJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nil{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptEnumDefaultJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAnotherNinOptEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AnotherNinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestTimerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Timer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMyExtendableJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MyExtendable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOtherExtenableJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OtherExtenable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedDefinitionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedDefinition_NestedMessageJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedScopeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NestedScope{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNativeDefaultJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNativeDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomContainerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomContainer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNidOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinOptNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinRepNativeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinStructJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomNameEnumJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomNameEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNoExtensionsMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NoExtensionsMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Unrecognized{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithInnerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithInner_Inner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithEmbedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNodeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Node{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinOptNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidRepNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NidRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNinRepNonByteCustomTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NinRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestProtoTypeJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNidOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepPackedNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepPackedNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepPackedNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepPackedNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidEmbeddedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidEmbeddedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidNestedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidNestedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomDashProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomDashProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepCustomProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepCustomProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinNestedStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTreeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTreeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOrBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOrBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestLeafProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestLeafProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepTreeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepTreeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestADeepBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestADeepBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndDeepBranchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAndDeepBranchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepLeafProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDeepLeafProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNilProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNilProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumDefaultProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTimerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTimerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMyExtendableProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMyExtendableProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOtherExtenableProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOtherExtenableProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinitionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinitionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedScopeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedScopeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeDefaultProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomContainerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomContainerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNidOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinOptNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinRepNativeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinStructProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinStructProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameEnumProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomNameEnumProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNoExtensionsMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNoExtensionsMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInnerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNodeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNodeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypeProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypeProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNidOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepPackedNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepPackedNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepPackedNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepPackedNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidEmbeddedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidEmbeddedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinEmbeddedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinEmbeddedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidNestedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidNestedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinNestedStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinNestedStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomDashCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomDash(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepCustomCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepCustom(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNativeUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNativeUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinEmbeddedStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinEmbeddedStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinNestedStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinNestedStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestTreeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedTree(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestOrBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedOrBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAndBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAndBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestLeafCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedLeaf(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestDeepTreeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedDeepTree(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestADeepBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedADeepBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAndDeepBranchCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAndDeepBranch(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestDeepLeafCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedDeepLeaf(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNilCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNil(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptEnumDefaultCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptEnumDefault(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAnotherNinOptEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAnotherNinOptEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedAnotherNinOptEnumDefault(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestTimerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedTimer(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestMyExtendableCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedMyExtendable(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestOtherExtenableCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedOtherExtenable(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedDefinitionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedDefinition(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedDefinition_NestedMessageCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedDefinition_NestedMessage(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNestedScopeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNestedScope(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNativeDefaultCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNativeDefault(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomContainerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomContainer(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNidOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNidOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinOptNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinOptNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinRepNativeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinRepNative(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinStructCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinStruct(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestCustomNameEnumCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedCustomNameEnum(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNoExtensionsMapCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNoExtensionsMap(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognized(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithInnerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithInner(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithEmbedCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithEmbed(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNodeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNode(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidOptNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidOptNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinOptNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinOptNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNidRepNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNidRepNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestNinRepNonByteCustomTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedNinRepNonByteCustomType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestProtoTypeCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedProtoType(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestThetestDescription(t *testing.T) { - ThetestDescription() -} -func TestNidOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepPackedNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepPackedNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidEmbeddedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinEmbeddedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidNestedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinNestedStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomDashVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepCustomVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNativeUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinNestedStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestTreeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOrBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAndBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestLeafVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestDeepTreeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestADeepBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAndDeepBranchVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestDeepLeafVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNilVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestTimerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMyExtendableVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOtherExtenableVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedDefinitionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedScopeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomContainerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinStructVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomNameEnumVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNoExtensionsMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNodeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestProtoTypeVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomDashFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptNativeUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinNestedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestOrBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAndBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestDeepTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestADeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAndDeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestDeepLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNilFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAnotherNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestTimerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedDefinitionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedDefinition_NestedMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedScopeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomContainerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomNameEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithInnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithInner_InnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithEmbedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNodeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNinRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestProtoTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomDashGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNativeUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinNestedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestOrBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAndBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestDeepTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestADeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAndDeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestDeepLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNilGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAnotherNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAnotherNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestTimerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestMyExtendableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestOtherExtenableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedDefinitionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedDefinition_NestedMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedScopeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNativeDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomContainerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomNameEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNoExtensionsMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithInnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithEmbedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNodeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNinRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestProtoTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNidOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepPackedNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepPackedNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepPackedNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepPackedNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepPackedNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidEmbeddedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidEmbeddedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinEmbeddedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidNestedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidNestedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinNestedStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomDashSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomDash(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomDashSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomDash, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomDash(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepCustomSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepCustom, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepCustom(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNativeUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNativeUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinEmbeddedStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinEmbeddedStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinNestedStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinNestedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinNestedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinNestedStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinNestedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestTreeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Tree, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOrBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOrBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOrBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OrBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOrBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAndBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAndBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestLeafSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Leaf, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepTreeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkDeepTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepTree, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedDeepTree(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestADeepBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedADeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkADeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ADeepBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedADeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAndDeepBranchSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAndDeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAndDeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AndDeepBranch, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAndDeepBranch(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestDeepLeafSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDeepLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkDeepLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*DeepLeaf, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedDeepLeaf(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNilSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNil(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNilSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nil, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNil(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptEnumDefaultSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptEnumDefault, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAnotherNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAnotherNinOptEnumDefaultSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AnotherNinOptEnumDefault, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAnotherNinOptEnumDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestTimerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTimer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkTimerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Timer, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedTimer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMyExtendableSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMyExtendable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMyExtendableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MyExtendable, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMyExtendable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOtherExtenableSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOtherExtenable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOtherExtenableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OtherExtenable, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOtherExtenable(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinitionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedDefinitionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedDefinition(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessageSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedScopeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNestedScope(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedScopeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NestedScope, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNestedScope(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNativeDefaultSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNativeDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNativeDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNativeDefault, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNativeDefault(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomContainerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomContainer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomContainerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomContainer, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomContainer(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNidOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNidOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNidOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinOptNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinOptNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinOptNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinRepNativeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinRepNative, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinRepNative(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinStructSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinStruct, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinStruct(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameNinEmbeddedStructUnion, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomNameEnumSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomNameEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomNameEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomNameEnum, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomNameEnum(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNoExtensionsMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNoExtensionsMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNoExtensionsMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NoExtensionsMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNoExtensionsMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognized(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Unrecognized, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognized(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInnerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithInner_InnerSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithInner_Inner, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithInner_Inner(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*UnrecognizedWithEmbed_Embedded, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNodeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNode(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNodeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Node, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNode(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidOptNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinOptNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinOptNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinOptNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidRepNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNidRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NidRepNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNidRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNinRepNonByteCustomTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNinRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NinRepNonByteCustomType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNinRepNonByteCustomType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypeSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkProtoTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoType, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedProtoType(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepPackedNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepPackedNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidEmbeddedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidNestedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomDashStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomDash(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepCustom(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinNestedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestOrBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOrBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAndBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedLeaf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestDeepTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestADeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedADeepBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAndDeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAndDeepBranch(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestDeepLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepLeaf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNilStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNil(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptEnumDefault(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAnotherNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestTimerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTimer(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestMyExtendableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMyExtendable(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestOtherExtenableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOtherExtenable(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedDefinitionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedDefinition_NestedMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedScopeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNestedScope(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeDefault(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomContainerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomContainer(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNidOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinOptNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinRepNative(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinStruct(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomNameEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameEnum(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNoExtensionsMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNoExtensionsMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognized(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithInnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithEmbedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNodeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNode(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidOptNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNidRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNidRepNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinRepNonByteCustomType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestProtoTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoType(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNinOptNativeUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptNativeUnion(popr, true) - v := p.GetValue() - msg := &NinOptNativeUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestNinOptStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinOptStructUnion(popr, true) - v := p.GetValue() - msg := &NinOptStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinEmbeddedStructUnion(popr, true) - v := p.GetValue() - msg := &NinEmbeddedStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestNinNestedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNinNestedStructUnion(popr, true) - v := p.GetValue() - msg := &NinNestedStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTree(popr, true) - v := p.GetValue() - msg := &Tree{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestDeepTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedDeepTree(popr, true) - v := p.GetValue() - msg := &DeepTree{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} -func TestCustomNameNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - v := p.GetValue() - msg := &CustomNameNinEmbeddedStructUnion{} - if !msg.SetValue(v) { - t.Fatalf("OnlyOne: Could not set Value") - } - if !p.Equal(msg) { - t.Fatalf("%#v !OnlyOne Equal %#v", msg, p) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/uuid.go b/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/uuid.go deleted file mode 100644 index ae349da4a..000000000 --- a/vendor/github.com/gogo/protobuf/test/combos/unsafeunmarshaler/uuid.go +++ /dev/null @@ -1,133 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package test - -import ( - "bytes" - "encoding/hex" - "encoding/json" -) - -func PutLittleEndianUint64(b []byte, offset int, v uint64) { - b[offset] = byte(v) - b[offset+1] = byte(v >> 8) - b[offset+2] = byte(v >> 16) - b[offset+3] = byte(v >> 24) - b[offset+4] = byte(v >> 32) - b[offset+5] = byte(v >> 40) - b[offset+6] = byte(v >> 48) - b[offset+7] = byte(v >> 56) -} - -type Uuid []byte - -func (uuid Uuid) Marshal() ([]byte, error) { - if len(uuid) == 0 { - return nil, nil - } - return []byte(uuid), nil -} - -func (uuid Uuid) MarshalTo(data []byte) (n int, err error) { - if len(uuid) == 0 { - return 0, nil - } - copy(data, uuid) - return 16, nil -} - -func (uuid *Uuid) Unmarshal(data []byte) error { - if len(data) == 0 { - uuid = nil - return nil - } - id := Uuid(make([]byte, 16)) - copy(id, data) - *uuid = id - return nil -} - -func (uuid *Uuid) Size() int { - if uuid == nil { - return 0 - } - if len(*uuid) == 0 { - return 0 - } - return 16 -} - -func (uuid Uuid) MarshalJSON() ([]byte, error) { - s := hex.EncodeToString([]byte(uuid)) - return json.Marshal(s) -} - -func (uuid *Uuid) UnmarshalJSON(data []byte) error { - var s string - err := json.Unmarshal(data, &s) - if err != nil { - return err - } - d, err := hex.DecodeString(s) - if err != nil { - return err - } - *uuid = Uuid(d) - return nil -} - -func (uuid Uuid) Equal(other Uuid) bool { - return bytes.Equal(uuid[0:], other[0:]) -} - -func (uuid Uuid) Compare(other Uuid) int { - return bytes.Compare(uuid[0:], other[0:]) -} - -type int63 interface { - Int63() int64 -} - -func NewPopulatedUuid(r int63) *Uuid { - u := RandV4(r) - return &u -} - -func RandV4(r int63) Uuid { - uuid := make(Uuid, 16) - uuid.RandV4(r) - return uuid -} - -func (uuid Uuid) RandV4(r int63) { - PutLittleEndianUint64(uuid, 0, uint64(r.Int63())) - PutLittleEndianUint64(uuid, 8, uint64(r.Int63())) - uuid[6] = (uuid[6] & 0xf) | 0x40 - uuid[8] = (uuid[8] & 0x3f) | 0x80 -} diff --git a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go index b30a7145c..222849dc1 100644 --- a/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/custombytesnonstruct/proto.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto.proto -// DO NOT EDIT! /* Package custombytesnonstruct is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/data/data.pb.go b/vendor/github.com/gogo/protobuf/test/data/data.pb.go index 97865299e..9b65a404d 100644 --- a/vendor/github.com/gogo/protobuf/test/data/data.pb.go +++ b/vendor/github.com/gogo/protobuf/test/data/data.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: data.proto -// DO NOT EDIT! /* Package data is a generated protocol buffer package. @@ -153,24 +152,6 @@ func (m *MyMessage) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Data(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 encodeFixed32Data(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 encodeVarintData(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/data/datapb_test.go b/vendor/github.com/gogo/protobuf/test/data/datapb_test.go index 5cb8c9405..d9f656a39 100644 --- a/vendor/github.com/gogo/protobuf/test/data/datapb_test.go +++ b/vendor/github.com/gogo/protobuf/test/data/datapb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: data.proto -// DO NOT EDIT! /* Package data is a generated protocol buffer package. @@ -14,13 +13,12 @@ It has these top-level messages: package data import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -31,14 +29,14 @@ var _ = math.Inf func TestMyMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -59,13 +57,13 @@ func TestMyMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMyMessageMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyMessage(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -77,7 +75,7 @@ func TestMyMessageMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -92,7 +90,7 @@ func TestMyMessageMarshalTo(t *testing.T) { } func BenchmarkMyMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyMessage, 10000) for i := 0; i < 10000; i++ { @@ -100,7 +98,7 @@ func BenchmarkMyMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -110,11 +108,11 @@ func BenchmarkMyMessageProtoMarshal(b *testing.B) { } func BenchmarkMyMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMyMessage(popr, false)) if err != nil { panic(err) } @@ -124,7 +122,7 @@ func BenchmarkMyMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -133,15 +131,15 @@ func BenchmarkMyMessageProtoUnmarshal(b *testing.B) { func TestMyMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -154,11 +152,11 @@ func TestMyMessageJSON(t *testing.T) { } func TestMyMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MyMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -171,11 +169,11 @@ func TestMyMessageProtoText(t *testing.T) { func TestMyMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MyMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -187,14 +185,14 @@ func TestMyMessageProtoCompactText(t *testing.T) { } func TestMyMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MyMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -202,24 +200,24 @@ func TestMyMessageVerboseEqual(t *testing.T) { } } func TestMyMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyMessage(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMyMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -230,14 +228,14 @@ func TestMyMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMyMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyMessage, 1000) for i := 0; i < 1000; i++ { @@ -251,7 +249,7 @@ func BenchmarkMyMessageSize(b *testing.B) { } func TestMyMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyMessage(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go index c4348e01a..1f6919aa5 100644 --- a/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go +++ b/vendor/github.com/gogo/protobuf/test/empty-issue70/empty.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: empty.proto -// DO NOT EDIT! /* Package empty is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go b/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go index 05fdd7bd0..a5afb52f8 100644 --- a/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go +++ b/vendor/github.com/gogo/protobuf/test/enumcustomname/enumcustomname.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: enumcustomname.proto -// DO NOT EDIT! /* Package enumcustomname is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go index 1f11716cc..eb7fcdf77 100644 --- a/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go +++ b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdecl.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: enumdecl.proto -// DO NOT EDIT! /* Package enumdecl is a generated protocol buffer package. @@ -148,24 +147,6 @@ func (m *Message) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Enumdecl(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 encodeFixed32Enumdecl(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 encodeVarintEnumdecl(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl/enumdeclpb_test.go b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdeclpb_test.go index 87cec002f..ac51724ec 100644 --- a/vendor/github.com/gogo/protobuf/test/enumdecl/enumdeclpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/enumdecl/enumdeclpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: enumdecl.proto -// DO NOT EDIT! /* Package enumdecl is a generated protocol buffer package. @@ -14,11 +13,10 @@ It has these top-level messages: package enumdecl import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -30,14 +28,14 @@ var _ = math.Inf func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -58,13 +56,13 @@ func TestMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMessageMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -76,7 +74,7 @@ func TestMessageMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -91,7 +89,7 @@ func TestMessageMarshalTo(t *testing.T) { } func BenchmarkMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 10000) for i := 0; i < 10000; i++ { @@ -99,7 +97,7 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -109,11 +107,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } func BenchmarkMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } @@ -123,7 +121,7 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -132,15 +130,15 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -153,11 +151,11 @@ func TestMessageJSON(t *testing.T) { } func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -170,11 +168,11 @@ func TestMessageProtoText(t *testing.T) { func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -186,14 +184,14 @@ func TestMessageProtoCompactText(t *testing.T) { } func TestMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -202,10 +200,10 @@ func TestMessageVerboseEqual(t *testing.T) { } func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -216,14 +214,14 @@ func TestMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go index c345a8742..050278745 100644 --- a/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go +++ b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclall.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: enumdeclall.proto -// DO NOT EDIT! /* Package enumdeclall is a generated protocol buffer package. @@ -189,24 +188,6 @@ func (m *Message) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Enumdeclall(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 encodeFixed32Enumdeclall(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 encodeVarintEnumdeclall(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclallpb_test.go b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclallpb_test.go index aa5dc3b86..0b1b5b46e 100644 --- a/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclallpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/enumdecl_all/enumdeclallpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: enumdeclall.proto -// DO NOT EDIT! /* Package enumdeclall is a generated protocol buffer package. @@ -14,11 +13,10 @@ It has these top-level messages: package enumdeclall import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -30,14 +28,14 @@ var _ = math.Inf func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -58,13 +56,13 @@ func TestMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMessageMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -76,7 +74,7 @@ func TestMessageMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -91,7 +89,7 @@ func TestMessageMarshalTo(t *testing.T) { } func BenchmarkMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 10000) for i := 0; i < 10000; i++ { @@ -99,7 +97,7 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -109,11 +107,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } func BenchmarkMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } @@ -123,7 +121,7 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -132,15 +130,15 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -153,11 +151,11 @@ func TestMessageJSON(t *testing.T) { } func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -170,11 +168,11 @@ func TestMessageProtoText(t *testing.T) { func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -186,14 +184,14 @@ func TestMessageProtoCompactText(t *testing.T) { } func TestMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -202,10 +200,10 @@ func TestMessageVerboseEqual(t *testing.T) { } func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -216,14 +214,14 @@ func TestMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go b/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go index 767d3a32f..47d4307ab 100644 --- a/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go +++ b/vendor/github.com/gogo/protobuf/test/enumprefix/enumprefix.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: enumprefix.proto -// DO NOT EDIT! /* Package enumprefix is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go index f37356aea..e5978285a 100644 --- a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go +++ b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringer.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: enumstringer.proto -// DO NOT EDIT! /* Package enumstringer is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringerpb_test.go b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringerpb_test.go index 7a13cdb6f..c370ae4da 100644 --- a/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringerpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/enumstringer/enumstringerpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: enumstringer.proto -// DO NOT EDIT! /* Package enumstringer is a generated protocol buffer package. @@ -17,11 +16,10 @@ It has these top-level messages: package enumstringer import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -33,14 +31,14 @@ var _ = math.Inf func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -61,20 +59,20 @@ func TestNidOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -95,20 +93,20 @@ func TestNinOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -129,20 +127,20 @@ func TestNidRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -163,21 +161,21 @@ func TestNinRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNidOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -190,15 +188,15 @@ func TestNidOptEnumJSON(t *testing.T) { } func TestNinOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -211,15 +209,15 @@ func TestNinOptEnumJSON(t *testing.T) { } func TestNidRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -232,15 +230,15 @@ func TestNidRepEnumJSON(t *testing.T) { } func TestNinRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -253,11 +251,11 @@ func TestNinRepEnumJSON(t *testing.T) { } func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -270,11 +268,11 @@ func TestNidOptEnumProtoText(t *testing.T) { func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -287,11 +285,11 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -304,11 +302,11 @@ func TestNinOptEnumProtoText(t *testing.T) { func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -321,11 +319,11 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -338,11 +336,11 @@ func TestNidRepEnumProtoText(t *testing.T) { func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -355,11 +353,11 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -372,11 +370,11 @@ func TestNinRepEnumProtoText(t *testing.T) { func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -388,14 +386,14 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { } func TestNidOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -403,14 +401,14 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -418,14 +416,14 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { } } func TestNidRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -433,14 +431,14 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { } } func TestNinRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { diff --git a/vendor/github.com/gogo/protobuf/test/example/Makefile b/vendor/github.com/gogo/protobuf/test/example/Makefile index e45d8feb3..2fa3b1aed 100644 --- a/vendor/github.com/gogo/protobuf/test/example/Makefile +++ b/vendor/github.com/gogo/protobuf/test/example/Makefile @@ -27,4 +27,4 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. regenerate: - (protoc --proto_path=../../../../../:../../protobuf/:. --gogo_out=. example.proto) + (protoc -I=. -I=../../../../../ -I=../../protobuf/ --gogo_out=. example.proto) diff --git a/vendor/github.com/gogo/protobuf/test/example/example.pb.go b/vendor/github.com/gogo/protobuf/test/example/example.pb.go index 76e648730..1829745eb 100644 --- a/vendor/github.com/gogo/protobuf/test/example/example.pb.go +++ b/vendor/github.com/gogo/protobuf/test/example/example.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: example.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -27,11 +26,10 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" @@ -173,265 +171,272 @@ func init() { proto.RegisterType((*R)(nil), "test.R") proto.RegisterType((*CastType)(nil), "test.CastType") } -func (this *B) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *B) Description() (desc *descriptor.FileDescriptorSet) { return ExampleDescription() } -func ExampleDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func ExampleDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3850 bytes of a gzipped FileDescriptorSet + // 3959 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x6b, 0x70, 0x1b, 0xd7, - 0x75, 0xd6, 0xe2, 0x41, 0x02, 0x07, 0x20, 0xb8, 0xbc, 0xa4, 0x24, 0x88, 0xb6, 0x49, 0x09, 0x7e, - 0xd1, 0xb2, 0x43, 0xa5, 0xb4, 0x24, 0xcb, 0xab, 0x26, 0x1e, 0x00, 0x84, 0x18, 0xa8, 0x7c, 0x65, - 0x41, 0xc4, 0x72, 0xfa, 0x63, 0x67, 0xb9, 0xb8, 0x00, 0x57, 0x5a, 0xec, 0x22, 0xbb, 0x0b, 0x49, - 0xd4, 0x2f, 0x75, 0xdc, 0x57, 0xa6, 0xd3, 0xa6, 0xaf, 0x99, 0x26, 0xae, 0xe3, 0x3a, 0x99, 0x69, - 0xed, 0x26, 0x7d, 0xa5, 0x8f, 0x34, 0xd3, 0x3f, 0xcd, 0x9f, 0xb4, 0xfa, 0xd5, 0x71, 0xfe, 0x75, - 0x3a, 0x1d, 0x8d, 0xad, 0x7a, 0xa6, 0x2f, 0xb7, 0x75, 0x1b, 0xcf, 0xb4, 0x53, 0xff, 0xc9, 0xdc, - 0xd7, 0x62, 0xf1, 0x20, 0x17, 0xcc, 0x8c, 0xe3, 0x5f, 0xe4, 0x3d, 0xf7, 0x7c, 0xdf, 0x9e, 0x3d, - 0xf7, 0xdc, 0x73, 0xce, 0xbd, 0x58, 0xf8, 0xa7, 0x0b, 0x70, 0xba, 0xe5, 0x38, 0x2d, 0x0b, 0x9f, - 0xeb, 0xb8, 0x8e, 0xef, 0xec, 0x76, 0x9b, 0xe7, 0x1a, 0xd8, 0x33, 0x5c, 0xb3, 0xe3, 0x3b, 0xee, - 0x32, 0x95, 0xa1, 0x69, 0xa6, 0xb1, 0x2c, 0x34, 0x0a, 0x1b, 0x30, 0x73, 0xc5, 0xb4, 0xf0, 0x6a, - 0xa0, 0x58, 0xc3, 0x3e, 0xba, 0x04, 0x89, 0xa6, 0x69, 0xe1, 0xbc, 0x74, 0x3a, 0xbe, 0x94, 0x59, - 0x79, 0x6c, 0x79, 0x00, 0xb4, 0xdc, 0x8f, 0xd8, 0x26, 0x62, 0x95, 0x22, 0x0a, 0xef, 0x26, 0x60, - 0x76, 0xc4, 0x2c, 0x42, 0x90, 0xb0, 0xf5, 0x36, 0x61, 0x94, 0x96, 0xd2, 0x2a, 0xfd, 0x1f, 0xe5, - 0x61, 0xb2, 0xa3, 0x1b, 0x37, 0xf4, 0x16, 0xce, 0xc7, 0xa8, 0x58, 0x0c, 0xd1, 0x02, 0x40, 0x03, - 0x77, 0xb0, 0xdd, 0xc0, 0xb6, 0xb1, 0x9f, 0x8f, 0x9f, 0x8e, 0x2f, 0xa5, 0xd5, 0x90, 0x04, 0x3d, - 0x0d, 0x33, 0x9d, 0xee, 0xae, 0x65, 0x1a, 0x5a, 0x48, 0x0d, 0x4e, 0xc7, 0x97, 0x92, 0xaa, 0xcc, - 0x26, 0x56, 0x7b, 0xca, 0x4f, 0xc2, 0xf4, 0x2d, 0xac, 0xdf, 0x08, 0xab, 0x66, 0xa8, 0x6a, 0x8e, - 0x88, 0x43, 0x8a, 0x65, 0xc8, 0xb6, 0xb1, 0xe7, 0xe9, 0x2d, 0xac, 0xf9, 0xfb, 0x1d, 0x9c, 0x4f, - 0xd0, 0xb7, 0x3f, 0x3d, 0xf4, 0xf6, 0x83, 0x6f, 0x9e, 0xe1, 0xa8, 0x9d, 0xfd, 0x0e, 0x46, 0x45, - 0x48, 0x63, 0xbb, 0xdb, 0x66, 0x0c, 0xc9, 0x03, 0xfc, 0x57, 0xb1, 0xbb, 0xed, 0x41, 0x96, 0x14, - 0x81, 0x71, 0x8a, 0x49, 0x0f, 0xbb, 0x37, 0x4d, 0x03, 0xe7, 0x27, 0x28, 0xc1, 0x93, 0x43, 0x04, - 0x35, 0x36, 0x3f, 0xc8, 0x21, 0x70, 0xa8, 0x0c, 0x69, 0x7c, 0xdb, 0xc7, 0xb6, 0x67, 0x3a, 0x76, - 0x7e, 0x92, 0x92, 0x3c, 0x3e, 0x62, 0x15, 0xb1, 0xd5, 0x18, 0xa4, 0xe8, 0xe1, 0xd0, 0x45, 0x98, - 0x74, 0x3a, 0xbe, 0xe9, 0xd8, 0x5e, 0x3e, 0x75, 0x5a, 0x5a, 0xca, 0xac, 0x3c, 0x3c, 0x32, 0x10, - 0xb6, 0x98, 0x8e, 0x2a, 0x94, 0x51, 0x15, 0x64, 0xcf, 0xe9, 0xba, 0x06, 0xd6, 0x0c, 0xa7, 0x81, - 0x35, 0xd3, 0x6e, 0x3a, 0xf9, 0x34, 0x25, 0x58, 0x1c, 0x7e, 0x11, 0xaa, 0x58, 0x76, 0x1a, 0xb8, - 0x6a, 0x37, 0x1d, 0x35, 0xe7, 0xf5, 0x8d, 0xd1, 0x09, 0x98, 0xf0, 0xf6, 0x6d, 0x5f, 0xbf, 0x9d, - 0xcf, 0xd2, 0x08, 0xe1, 0xa3, 0xc2, 0xff, 0x26, 0x61, 0x7a, 0x9c, 0x10, 0xbb, 0x0c, 0xc9, 0x26, - 0x79, 0xcb, 0x7c, 0xec, 0x28, 0x3e, 0x60, 0x98, 0x7e, 0x27, 0x4e, 0xfc, 0x88, 0x4e, 0x2c, 0x42, - 0xc6, 0xc6, 0x9e, 0x8f, 0x1b, 0x2c, 0x22, 0xe2, 0x63, 0xc6, 0x14, 0x30, 0xd0, 0x70, 0x48, 0x25, - 0x7e, 0xa4, 0x90, 0xba, 0x06, 0xd3, 0x81, 0x49, 0x9a, 0xab, 0xdb, 0x2d, 0x11, 0x9b, 0xe7, 0xa2, - 0x2c, 0x59, 0xae, 0x08, 0x9c, 0x4a, 0x60, 0x6a, 0x0e, 0xf7, 0x8d, 0xd1, 0x2a, 0x80, 0x63, 0x63, - 0xa7, 0xa9, 0x35, 0xb0, 0x61, 0xe5, 0x53, 0x07, 0x78, 0x69, 0x8b, 0xa8, 0x0c, 0x79, 0xc9, 0x61, - 0x52, 0xc3, 0x42, 0xcf, 0xf7, 0x42, 0x6d, 0xf2, 0x80, 0x48, 0xd9, 0x60, 0x9b, 0x6c, 0x28, 0xda, - 0xea, 0x90, 0x73, 0x31, 0x89, 0x7b, 0xdc, 0xe0, 0x6f, 0x96, 0xa6, 0x46, 0x2c, 0x47, 0xbe, 0x99, - 0xca, 0x61, 0xec, 0xc5, 0xa6, 0xdc, 0xf0, 0x10, 0x3d, 0x0a, 0x81, 0x40, 0xa3, 0x61, 0x05, 0x34, - 0x0b, 0x65, 0x85, 0x70, 0x53, 0x6f, 0xe3, 0xf9, 0x4b, 0x90, 0xeb, 0x77, 0x0f, 0x9a, 0x83, 0xa4, - 0xe7, 0xeb, 0xae, 0x4f, 0xa3, 0x30, 0xa9, 0xb2, 0x01, 0x92, 0x21, 0x8e, 0xed, 0x06, 0xcd, 0x72, - 0x49, 0x95, 0xfc, 0x3b, 0xff, 0x1c, 0x4c, 0xf5, 0x3d, 0x7e, 0x5c, 0x60, 0xe1, 0xcb, 0x13, 0x30, - 0x37, 0x2a, 0xe6, 0x46, 0x86, 0xff, 0x09, 0x98, 0xb0, 0xbb, 0xed, 0x5d, 0xec, 0xe6, 0xe3, 0x94, - 0x81, 0x8f, 0x50, 0x11, 0x92, 0x96, 0xbe, 0x8b, 0xad, 0x7c, 0xe2, 0xb4, 0xb4, 0x94, 0x5b, 0x79, - 0x7a, 0xac, 0xa8, 0x5e, 0x5e, 0x27, 0x10, 0x95, 0x21, 0xd1, 0xa7, 0x21, 0xc1, 0x53, 0x1c, 0x61, - 0x38, 0x3b, 0x1e, 0x03, 0x89, 0x45, 0x95, 0xe2, 0xd0, 0x43, 0x90, 0x26, 0x7f, 0x99, 0x6f, 0x27, - 0xa8, 0xcd, 0x29, 0x22, 0x20, 0x7e, 0x45, 0xf3, 0x90, 0xa2, 0x61, 0xd6, 0xc0, 0xa2, 0x34, 0x04, - 0x63, 0xb2, 0x30, 0x0d, 0xdc, 0xd4, 0xbb, 0x96, 0xaf, 0xdd, 0xd4, 0xad, 0x2e, 0xa6, 0x01, 0x93, - 0x56, 0xb3, 0x5c, 0xf8, 0x39, 0x22, 0x43, 0x8b, 0x90, 0x61, 0x51, 0x69, 0xda, 0x0d, 0x7c, 0x9b, - 0x66, 0x9f, 0xa4, 0xca, 0x02, 0xb5, 0x4a, 0x24, 0xe4, 0xf1, 0xd7, 0x3d, 0xc7, 0x16, 0x4b, 0x4b, - 0x1f, 0x41, 0x04, 0xf4, 0xf1, 0xcf, 0x0d, 0x26, 0xbe, 0x47, 0x46, 0xbf, 0xde, 0x60, 0x2c, 0x16, - 0xbe, 0x1d, 0x83, 0x04, 0xdd, 0x6f, 0xd3, 0x90, 0xd9, 0x79, 0x69, 0xbb, 0xa2, 0xad, 0x6e, 0xd5, - 0x4b, 0xeb, 0x15, 0x59, 0x42, 0x39, 0x00, 0x2a, 0xb8, 0xb2, 0xbe, 0x55, 0xdc, 0x91, 0x63, 0xc1, - 0xb8, 0xba, 0xb9, 0x73, 0xf1, 0xbc, 0x1c, 0x0f, 0x00, 0x75, 0x26, 0x48, 0x84, 0x15, 0x9e, 0x5d, - 0x91, 0x93, 0x48, 0x86, 0x2c, 0x23, 0xa8, 0x5e, 0xab, 0xac, 0x5e, 0x3c, 0x2f, 0x4f, 0xf4, 0x4b, - 0x9e, 0x5d, 0x91, 0x27, 0xd1, 0x14, 0xa4, 0xa9, 0xa4, 0xb4, 0xb5, 0xb5, 0x2e, 0xa7, 0x02, 0xce, - 0xda, 0x8e, 0x5a, 0xdd, 0x5c, 0x93, 0xd3, 0x01, 0xe7, 0x9a, 0xba, 0x55, 0xdf, 0x96, 0x21, 0x60, - 0xd8, 0xa8, 0xd4, 0x6a, 0xc5, 0xb5, 0x8a, 0x9c, 0x09, 0x34, 0x4a, 0x2f, 0xed, 0x54, 0x6a, 0x72, - 0xb6, 0xcf, 0xac, 0x67, 0x57, 0xe4, 0xa9, 0xe0, 0x11, 0x95, 0xcd, 0xfa, 0x86, 0x9c, 0x43, 0x33, - 0x30, 0xc5, 0x1e, 0x21, 0x8c, 0x98, 0x1e, 0x10, 0x5d, 0x3c, 0x2f, 0xcb, 0x3d, 0x43, 0x18, 0xcb, - 0x4c, 0x9f, 0xe0, 0xe2, 0x79, 0x19, 0x15, 0xca, 0x90, 0xa4, 0xd1, 0x85, 0x10, 0xe4, 0xd6, 0x8b, - 0xa5, 0xca, 0xba, 0xb6, 0xb5, 0xbd, 0x53, 0xdd, 0xda, 0x2c, 0xae, 0xcb, 0x52, 0x4f, 0xa6, 0x56, - 0x3e, 0x5b, 0xaf, 0xaa, 0x95, 0x55, 0x39, 0x16, 0x96, 0x6d, 0x57, 0x8a, 0x3b, 0x95, 0x55, 0x39, - 0x5e, 0x30, 0x60, 0x6e, 0x54, 0x9e, 0x19, 0xb9, 0x33, 0x42, 0x4b, 0x1c, 0x3b, 0x60, 0x89, 0x29, - 0xd7, 0xd0, 0x12, 0x7f, 0x5d, 0x82, 0xd9, 0x11, 0xb9, 0x76, 0xe4, 0x43, 0x5e, 0x80, 0x24, 0x0b, - 0x51, 0x56, 0x7d, 0x9e, 0x1a, 0x99, 0xb4, 0x69, 0xc0, 0x0e, 0x55, 0x20, 0x8a, 0x0b, 0x57, 0xe0, - 0xf8, 0x01, 0x15, 0x98, 0x50, 0x0c, 0x19, 0xf9, 0xb2, 0x04, 0xf9, 0x83, 0xb8, 0x23, 0x12, 0x45, - 0xac, 0x2f, 0x51, 0x5c, 0x1e, 0x34, 0xe0, 0xcc, 0xc1, 0xef, 0x30, 0x64, 0xc5, 0x1b, 0x12, 0x9c, - 0x18, 0xdd, 0xa8, 0x8c, 0xb4, 0xe1, 0xd3, 0x30, 0xd1, 0xc6, 0xfe, 0x9e, 0x23, 0x8a, 0xf5, 0x13, - 0x23, 0x4a, 0x00, 0x99, 0x1e, 0xf4, 0x15, 0x47, 0x85, 0x6b, 0x48, 0xfc, 0xa0, 0x6e, 0x83, 0x59, - 0x33, 0x64, 0xe9, 0x17, 0x63, 0x70, 0x7c, 0x24, 0xf9, 0x48, 0x43, 0x1f, 0x01, 0x30, 0xed, 0x4e, - 0xd7, 0x67, 0x05, 0x99, 0xe5, 0xa7, 0x34, 0x95, 0xd0, 0xbd, 0x4f, 0x72, 0x4f, 0xd7, 0x0f, 0xe6, - 0xe3, 0x74, 0x1e, 0x98, 0x88, 0x2a, 0x5c, 0xea, 0x19, 0x9a, 0xa0, 0x86, 0x2e, 0x1c, 0xf0, 0xa6, - 0x43, 0xb5, 0xee, 0x93, 0x20, 0x1b, 0x96, 0x89, 0x6d, 0x5f, 0xf3, 0x7c, 0x17, 0xeb, 0x6d, 0xd3, - 0x6e, 0xd1, 0x04, 0x9c, 0x52, 0x92, 0x4d, 0xdd, 0xf2, 0xb0, 0x3a, 0xcd, 0xa6, 0x6b, 0x62, 0x96, - 0x20, 0x68, 0x95, 0x71, 0x43, 0x88, 0x89, 0x3e, 0x04, 0x9b, 0x0e, 0x10, 0x85, 0x6f, 0x4e, 0x42, - 0x26, 0xd4, 0xd6, 0xa1, 0x33, 0x90, 0xbd, 0xae, 0xdf, 0xd4, 0x35, 0xd1, 0xaa, 0x33, 0x4f, 0x64, - 0x88, 0x6c, 0x9b, 0xb7, 0xeb, 0x9f, 0x84, 0x39, 0xaa, 0xe2, 0x74, 0x7d, 0xec, 0x6a, 0x86, 0xa5, - 0x7b, 0x1e, 0x75, 0x5a, 0x8a, 0xaa, 0x22, 0x32, 0xb7, 0x45, 0xa6, 0xca, 0x62, 0x06, 0x5d, 0x80, - 0x59, 0x8a, 0x68, 0x77, 0x2d, 0xdf, 0xec, 0x58, 0x58, 0x23, 0x87, 0x07, 0x8f, 0x26, 0xe2, 0xc0, - 0xb2, 0x19, 0xa2, 0xb1, 0xc1, 0x15, 0x88, 0x45, 0x1e, 0x5a, 0x85, 0x47, 0x28, 0xac, 0x85, 0x6d, - 0xec, 0xea, 0x3e, 0xd6, 0xf0, 0x17, 0xba, 0xba, 0xe5, 0x69, 0xba, 0xdd, 0xd0, 0xf6, 0x74, 0x6f, - 0x2f, 0x3f, 0x47, 0x08, 0x4a, 0xb1, 0xbc, 0xa4, 0x9e, 0x22, 0x8a, 0x6b, 0x5c, 0xaf, 0x42, 0xd5, - 0x8a, 0x76, 0xe3, 0x33, 0xba, 0xb7, 0x87, 0x14, 0x38, 0x41, 0x59, 0x3c, 0xdf, 0x35, 0xed, 0x96, - 0x66, 0xec, 0x61, 0xe3, 0x86, 0xd6, 0xf5, 0x9b, 0x97, 0xf2, 0x0f, 0x85, 0x9f, 0x4f, 0x2d, 0xac, - 0x51, 0x9d, 0x32, 0x51, 0xa9, 0xfb, 0xcd, 0x4b, 0xa8, 0x06, 0x59, 0xb2, 0x18, 0x6d, 0xf3, 0x0e, - 0xd6, 0x9a, 0x8e, 0x4b, 0x2b, 0x4b, 0x6e, 0xc4, 0xce, 0x0e, 0x79, 0x70, 0x79, 0x8b, 0x03, 0x36, - 0x9c, 0x06, 0x56, 0x92, 0xb5, 0xed, 0x4a, 0x65, 0x55, 0xcd, 0x08, 0x96, 0x2b, 0x8e, 0x4b, 0x02, - 0xaa, 0xe5, 0x04, 0x0e, 0xce, 0xb0, 0x80, 0x6a, 0x39, 0xc2, 0xbd, 0x17, 0x60, 0xd6, 0x30, 0xd8, - 0x3b, 0x9b, 0x86, 0xc6, 0x5b, 0x7c, 0x2f, 0x2f, 0xf7, 0x39, 0xcb, 0x30, 0xd6, 0x98, 0x02, 0x8f, - 0x71, 0x0f, 0x3d, 0x0f, 0xc7, 0x7b, 0xce, 0x0a, 0x03, 0x67, 0x86, 0xde, 0x72, 0x10, 0x7a, 0x01, - 0x66, 0x3b, 0xfb, 0xc3, 0x40, 0xd4, 0xf7, 0xc4, 0xce, 0xfe, 0x20, 0xec, 0x71, 0x7a, 0x6c, 0x73, - 0xb1, 0xa1, 0xfb, 0xb8, 0x91, 0x3f, 0x19, 0xd6, 0x0e, 0x4d, 0xa0, 0x73, 0x20, 0x1b, 0x86, 0x86, - 0x6d, 0x7d, 0xd7, 0xc2, 0x9a, 0xee, 0x62, 0x5b, 0xf7, 0xf2, 0x8b, 0x61, 0xe5, 0x9c, 0x61, 0x54, - 0xe8, 0x6c, 0x91, 0x4e, 0xa2, 0xb3, 0x30, 0xe3, 0xec, 0x5e, 0x37, 0x58, 0x64, 0x69, 0x1d, 0x17, - 0x37, 0xcd, 0xdb, 0xf9, 0xc7, 0xa8, 0x9b, 0xa6, 0xc9, 0x04, 0x8d, 0xab, 0x6d, 0x2a, 0x46, 0x4f, - 0x81, 0x6c, 0x78, 0x7b, 0xba, 0xdb, 0xa1, 0xa5, 0xdd, 0xeb, 0xe8, 0x06, 0xce, 0x3f, 0xce, 0x54, - 0x99, 0x7c, 0x53, 0x88, 0x49, 0x64, 0x7b, 0xb7, 0xcc, 0xa6, 0x2f, 0x18, 0x9f, 0x64, 0x91, 0x4d, - 0x65, 0x9c, 0xed, 0x1a, 0xcc, 0x75, 0x6d, 0xd3, 0xf6, 0xb1, 0xdb, 0x71, 0x31, 0x69, 0xe2, 0xd9, - 0x4e, 0xcc, 0xff, 0xf3, 0xe4, 0x01, 0x6d, 0x78, 0x3d, 0xac, 0xcd, 0x02, 0x40, 0x9d, 0xed, 0x0e, - 0x0b, 0x0b, 0x0a, 0x64, 0xc3, 0x71, 0x81, 0xd2, 0xc0, 0x22, 0x43, 0x96, 0x48, 0x8d, 0x2d, 0x6f, - 0xad, 0x92, 0xea, 0xf8, 0xf9, 0x8a, 0x1c, 0x23, 0x55, 0x7a, 0xbd, 0xba, 0x53, 0xd1, 0xd4, 0xfa, - 0xe6, 0x4e, 0x75, 0xa3, 0x22, 0xc7, 0xcf, 0xa6, 0x53, 0xff, 0x32, 0x29, 0xdf, 0xbd, 0x7b, 0xf7, - 0x6e, 0xac, 0xf0, 0xbd, 0x18, 0xe4, 0xfa, 0x3b, 0x63, 0xf4, 0x93, 0x70, 0x52, 0x1c, 0x63, 0x3d, - 0xec, 0x6b, 0xb7, 0x4c, 0x97, 0x86, 0x6a, 0x5b, 0x67, 0xbd, 0x65, 0xe0, 0xe5, 0x39, 0xae, 0x55, - 0xc3, 0xfe, 0x8b, 0xa6, 0x4b, 0x02, 0xb1, 0xad, 0xfb, 0x68, 0x1d, 0x16, 0x6d, 0x47, 0xf3, 0x7c, - 0xdd, 0x6e, 0xe8, 0x6e, 0x43, 0xeb, 0x5d, 0x20, 0x68, 0xba, 0x61, 0x60, 0xcf, 0x73, 0x58, 0x89, - 0x08, 0x58, 0x1e, 0xb6, 0x9d, 0x1a, 0x57, 0xee, 0xe5, 0xce, 0x22, 0x57, 0x1d, 0x88, 0x88, 0xf8, - 0x41, 0x11, 0xf1, 0x10, 0xa4, 0xdb, 0x7a, 0x47, 0xc3, 0xb6, 0xef, 0xee, 0xd3, 0x7e, 0x2e, 0xa5, - 0xa6, 0xda, 0x7a, 0xa7, 0x42, 0xc6, 0x1f, 0xdd, 0x1a, 0x84, 0xfd, 0xf8, 0x8f, 0x71, 0xc8, 0x86, - 0x7b, 0x3a, 0xd2, 0x22, 0x1b, 0x34, 0x7f, 0x4b, 0x74, 0x87, 0x3f, 0x7a, 0x68, 0x07, 0xb8, 0x5c, - 0x26, 0x89, 0x5d, 0x99, 0x60, 0x9d, 0x96, 0xca, 0x90, 0xa4, 0xa8, 0x92, 0x3d, 0x8d, 0x59, 0xff, - 0x9e, 0x52, 0xf9, 0x08, 0xad, 0xc1, 0xc4, 0x75, 0x8f, 0x72, 0x4f, 0x50, 0xee, 0xc7, 0x0e, 0xe7, - 0xbe, 0x5a, 0xa3, 0xe4, 0xe9, 0xab, 0x35, 0x6d, 0x73, 0x4b, 0xdd, 0x28, 0xae, 0xab, 0x1c, 0x8e, - 0x4e, 0x41, 0xc2, 0xd2, 0xef, 0xec, 0xf7, 0x97, 0x00, 0x2a, 0x1a, 0xd7, 0xf1, 0xa7, 0x20, 0x71, - 0x0b, 0xeb, 0x37, 0xfa, 0x13, 0x2f, 0x15, 0x7d, 0x84, 0xa1, 0x7f, 0x0e, 0x92, 0xd4, 0x5f, 0x08, - 0x80, 0x7b, 0x4c, 0x3e, 0x86, 0x52, 0x90, 0x28, 0x6f, 0xa9, 0x24, 0xfc, 0x65, 0xc8, 0x32, 0xa9, - 0xb6, 0x5d, 0xad, 0x94, 0x2b, 0x72, 0xac, 0x70, 0x01, 0x26, 0x98, 0x13, 0xc8, 0xd6, 0x08, 0xdc, - 0x20, 0x1f, 0xe3, 0x43, 0xce, 0x21, 0x89, 0xd9, 0xfa, 0x46, 0xa9, 0xa2, 0xca, 0xb1, 0xf0, 0xf2, - 0x7a, 0x90, 0x0d, 0xb7, 0x73, 0x3f, 0x9e, 0x98, 0xfa, 0x2b, 0x09, 0x32, 0xa1, 0xf6, 0x8c, 0x34, - 0x06, 0xba, 0x65, 0x39, 0xb7, 0x34, 0xdd, 0x32, 0x75, 0x8f, 0x07, 0x05, 0x50, 0x51, 0x91, 0x48, - 0xc6, 0x5d, 0xb4, 0x1f, 0x8b, 0xf1, 0xaf, 0x49, 0x20, 0x0f, 0xb6, 0x76, 0x03, 0x06, 0x4a, 0x1f, - 0xab, 0x81, 0xaf, 0x4a, 0x90, 0xeb, 0xef, 0xe7, 0x06, 0xcc, 0x3b, 0xf3, 0xb1, 0x9a, 0xf7, 0x76, - 0x0c, 0xa6, 0xfa, 0xba, 0xb8, 0x71, 0xad, 0xfb, 0x02, 0xcc, 0x98, 0x0d, 0xdc, 0xee, 0x38, 0x3e, - 0xb6, 0x8d, 0x7d, 0xcd, 0xc2, 0x37, 0xb1, 0x95, 0x2f, 0xd0, 0x44, 0x71, 0xee, 0xf0, 0x3e, 0x71, - 0xb9, 0xda, 0xc3, 0xad, 0x13, 0x98, 0x32, 0x5b, 0x5d, 0xad, 0x6c, 0x6c, 0x6f, 0xed, 0x54, 0x36, - 0xcb, 0x2f, 0x69, 0xf5, 0xcd, 0x9f, 0xda, 0xdc, 0x7a, 0x71, 0x53, 0x95, 0xcd, 0x01, 0xb5, 0x8f, - 0x70, 0xab, 0x6f, 0x83, 0x3c, 0x68, 0x14, 0x3a, 0x09, 0xa3, 0xcc, 0x92, 0x8f, 0xa1, 0x59, 0x98, - 0xde, 0xdc, 0xd2, 0x6a, 0xd5, 0xd5, 0x8a, 0x56, 0xb9, 0x72, 0xa5, 0x52, 0xde, 0xa9, 0xb1, 0x83, - 0x73, 0xa0, 0xbd, 0xd3, 0xbf, 0xa9, 0x5f, 0x89, 0xc3, 0xec, 0x08, 0x4b, 0x50, 0x91, 0xf7, 0xec, - 0xec, 0x18, 0xf1, 0x89, 0x71, 0xac, 0x5f, 0x26, 0x5d, 0xc1, 0xb6, 0xee, 0xfa, 0xbc, 0xc5, 0x7f, - 0x0a, 0x88, 0x97, 0x6c, 0xdf, 0x6c, 0x9a, 0xd8, 0xe5, 0xf7, 0x0c, 0xac, 0x91, 0x9f, 0xee, 0xc9, - 0xd9, 0x55, 0xc3, 0x33, 0x80, 0x3a, 0x8e, 0x67, 0xfa, 0xe6, 0x4d, 0xac, 0x99, 0xb6, 0xb8, 0x94, - 0x20, 0x8d, 0x7d, 0x42, 0x95, 0xc5, 0x4c, 0xd5, 0xf6, 0x03, 0x6d, 0x1b, 0xb7, 0xf4, 0x01, 0x6d, - 0x92, 0xc0, 0xe3, 0xaa, 0x2c, 0x66, 0x02, 0xed, 0x33, 0x90, 0x6d, 0x38, 0x5d, 0xd2, 0x26, 0x31, - 0x3d, 0x52, 0x2f, 0x24, 0x35, 0xc3, 0x64, 0x81, 0x0a, 0xef, 0x63, 0x7b, 0xb7, 0x21, 0x59, 0x35, - 0xc3, 0x64, 0x4c, 0xe5, 0x49, 0x98, 0xd6, 0x5b, 0x2d, 0x97, 0x90, 0x0b, 0x22, 0xd6, 0x99, 0xe7, - 0x02, 0x31, 0x55, 0x9c, 0xbf, 0x0a, 0x29, 0xe1, 0x07, 0x52, 0x92, 0x89, 0x27, 0xb4, 0x0e, 0xbb, - 0x93, 0x8a, 0x2d, 0xa5, 0xd5, 0x94, 0x2d, 0x26, 0xcf, 0x40, 0xd6, 0xf4, 0xb4, 0xde, 0xe5, 0x68, - 0xec, 0x74, 0x6c, 0x29, 0xa5, 0x66, 0x4c, 0x2f, 0xb8, 0x0d, 0x2b, 0xbc, 0x11, 0x83, 0x5c, 0xff, - 0xe5, 0x2e, 0x5a, 0x85, 0x94, 0xe5, 0x18, 0x3a, 0x0d, 0x2d, 0xf6, 0xcb, 0xc2, 0x52, 0xc4, 0x7d, - 0xf0, 0xf2, 0x3a, 0xd7, 0x57, 0x03, 0xe4, 0xfc, 0xdf, 0x49, 0x90, 0x12, 0x62, 0x74, 0x02, 0x12, - 0x1d, 0xdd, 0xdf, 0xa3, 0x74, 0xc9, 0x52, 0x4c, 0x96, 0x54, 0x3a, 0x26, 0x72, 0xaf, 0xa3, 0xdb, - 0x34, 0x04, 0xb8, 0x9c, 0x8c, 0xc9, 0xba, 0x5a, 0x58, 0x6f, 0xd0, 0xb6, 0xdf, 0x69, 0xb7, 0xb1, - 0xed, 0x7b, 0x62, 0x5d, 0xb9, 0xbc, 0xcc, 0xc5, 0xe8, 0x69, 0x98, 0xf1, 0x5d, 0xdd, 0xb4, 0xfa, - 0x74, 0x13, 0x54, 0x57, 0x16, 0x13, 0x81, 0xb2, 0x02, 0xa7, 0x04, 0x6f, 0x03, 0xfb, 0xba, 0xb1, - 0x87, 0x1b, 0x3d, 0xd0, 0x04, 0xbd, 0x39, 0x3c, 0xc9, 0x15, 0x56, 0xf9, 0xbc, 0xc0, 0x16, 0xbe, - 0x2f, 0xc1, 0x8c, 0x38, 0xa8, 0x34, 0x02, 0x67, 0x6d, 0x00, 0xe8, 0xb6, 0xed, 0xf8, 0x61, 0x77, - 0x0d, 0x87, 0xf2, 0x10, 0x6e, 0xb9, 0x18, 0x80, 0xd4, 0x10, 0xc1, 0x7c, 0x1b, 0xa0, 0x37, 0x73, - 0xa0, 0xdb, 0x16, 0x21, 0xc3, 0x6f, 0xee, 0xe9, 0xcf, 0x3f, 0xec, 0x68, 0x0b, 0x4c, 0x44, 0x4e, - 0x34, 0x68, 0x0e, 0x92, 0xbb, 0xb8, 0x65, 0xda, 0xfc, 0x3e, 0x91, 0x0d, 0xc4, 0x2d, 0x65, 0x22, - 0xb8, 0xa5, 0x2c, 0x5d, 0x83, 0x59, 0xc3, 0x69, 0x0f, 0x9a, 0x5b, 0x92, 0x07, 0x8e, 0xd7, 0xde, - 0x67, 0xa4, 0xcf, 0x43, 0xaf, 0xc5, 0xfc, 0x7a, 0x2c, 0xbe, 0xb6, 0x5d, 0xfa, 0x46, 0x6c, 0x7e, - 0x8d, 0xe1, 0xb6, 0xc5, 0x6b, 0xaa, 0xb8, 0x69, 0x61, 0x83, 0x98, 0x0e, 0x3f, 0x78, 0x02, 0x3e, - 0xd1, 0x32, 0xfd, 0xbd, 0xee, 0xee, 0xb2, 0xe1, 0xb4, 0xcf, 0xb5, 0x9c, 0x96, 0xd3, 0xfb, 0xb9, - 0x8b, 0x8c, 0xe8, 0x80, 0xfe, 0xc7, 0x7f, 0xf2, 0x4a, 0x07, 0xd2, 0xf9, 0xc8, 0xdf, 0xc7, 0x94, - 0x4d, 0x98, 0xe5, 0xca, 0x1a, 0xbd, 0x73, 0x67, 0x47, 0x03, 0x74, 0xe8, 0xbd, 0x4b, 0xfe, 0x5b, - 0xef, 0xd2, 0x5a, 0xad, 0xce, 0x70, 0x28, 0x99, 0x63, 0x07, 0x08, 0x45, 0x85, 0xe3, 0x7d, 0x7c, - 0x6c, 0x5f, 0x62, 0x37, 0x82, 0xf1, 0x7b, 0x9c, 0x71, 0x36, 0xc4, 0x58, 0xe3, 0x50, 0xa5, 0x0c, - 0x53, 0x47, 0xe1, 0xfa, 0x1b, 0xce, 0x95, 0xc5, 0x61, 0x92, 0x35, 0x98, 0xa6, 0x24, 0x46, 0xd7, - 0xf3, 0x9d, 0x36, 0x4d, 0x7a, 0x87, 0xd3, 0xfc, 0xed, 0xbb, 0x6c, 0xa3, 0xe4, 0x08, 0xac, 0x1c, - 0xa0, 0x14, 0x05, 0xe8, 0xcf, 0x0c, 0x0d, 0x6c, 0x58, 0x11, 0x0c, 0xf7, 0xb8, 0x21, 0x81, 0xbe, - 0xf2, 0x39, 0x98, 0x23, 0xff, 0xd3, 0x9c, 0x14, 0xb6, 0x24, 0xfa, 0x96, 0x29, 0xff, 0xfd, 0x97, - 0xd9, 0x5e, 0x9c, 0x0d, 0x08, 0x42, 0x36, 0x85, 0x56, 0xb1, 0x85, 0x7d, 0x1f, 0xbb, 0x9e, 0xa6, - 0x5b, 0xa3, 0xcc, 0x0b, 0x1d, 0xd3, 0xf3, 0x5f, 0x79, 0xaf, 0x7f, 0x15, 0xd7, 0x18, 0xb2, 0x68, - 0x59, 0x4a, 0x1d, 0x4e, 0x8e, 0x88, 0x8a, 0x31, 0x38, 0x5f, 0xe1, 0x9c, 0x73, 0x43, 0x91, 0x41, - 0x68, 0xb7, 0x41, 0xc8, 0x83, 0xb5, 0x1c, 0x83, 0xf3, 0xb7, 0x39, 0x27, 0xe2, 0x58, 0xb1, 0xa4, - 0x84, 0xf1, 0x2a, 0xcc, 0xdc, 0xc4, 0xee, 0xae, 0xe3, 0xf1, 0xab, 0x91, 0x31, 0xe8, 0x5e, 0xe5, - 0x74, 0xd3, 0x1c, 0x48, 0xef, 0x4a, 0x08, 0xd7, 0xf3, 0x90, 0x6a, 0xea, 0x06, 0x1e, 0x83, 0xe2, - 0xab, 0x9c, 0x62, 0x92, 0xe8, 0x13, 0x68, 0x11, 0xb2, 0x2d, 0x87, 0x97, 0xa5, 0x68, 0xf8, 0x6b, - 0x1c, 0x9e, 0x11, 0x18, 0x4e, 0xd1, 0x71, 0x3a, 0x5d, 0x8b, 0xd4, 0xac, 0x68, 0x8a, 0xdf, 0x11, - 0x14, 0x02, 0xc3, 0x29, 0x8e, 0xe0, 0xd6, 0xd7, 0x05, 0x85, 0x17, 0xf2, 0xe7, 0x0b, 0x90, 0x71, - 0x6c, 0x6b, 0xdf, 0xb1, 0xc7, 0x31, 0xe2, 0x6b, 0x9c, 0x01, 0x38, 0x84, 0x10, 0x5c, 0x86, 0xf4, - 0xb8, 0x0b, 0xf1, 0xbb, 0xef, 0x89, 0xed, 0x21, 0x56, 0x60, 0x0d, 0xa6, 0x45, 0x82, 0x32, 0x1d, - 0x7b, 0x0c, 0x8a, 0xdf, 0xe3, 0x14, 0xb9, 0x10, 0x8c, 0xbf, 0x86, 0x8f, 0x3d, 0xbf, 0x85, 0xc7, - 0x21, 0x79, 0x43, 0xbc, 0x06, 0x87, 0x70, 0x57, 0xee, 0x62, 0xdb, 0xd8, 0x1b, 0x8f, 0xe1, 0x4d, - 0xe1, 0x4a, 0x81, 0x21, 0x14, 0x65, 0x98, 0x6a, 0xeb, 0xae, 0xb7, 0xa7, 0x5b, 0x63, 0x2d, 0xc7, - 0xef, 0x73, 0x8e, 0x6c, 0x00, 0xe2, 0x1e, 0xe9, 0xda, 0x47, 0xa1, 0xf9, 0x86, 0xf0, 0x48, 0x08, - 0xc6, 0xb7, 0x9e, 0xe7, 0xd3, 0x0b, 0xa8, 0xa3, 0xb0, 0x7d, 0x53, 0x6c, 0x3d, 0x86, 0xdd, 0x08, - 0x33, 0x5e, 0x86, 0xb4, 0x67, 0xde, 0x19, 0x8b, 0xe6, 0x0f, 0xc4, 0x4a, 0x53, 0x00, 0x01, 0xbf, - 0x04, 0xa7, 0x46, 0x96, 0x89, 0x31, 0xc8, 0xfe, 0x90, 0x93, 0x9d, 0x18, 0x51, 0x2a, 0x78, 0x4a, - 0x38, 0x2a, 0xe5, 0x1f, 0x89, 0x94, 0x80, 0x07, 0xb8, 0xb6, 0xc9, 0x41, 0xc1, 0xd3, 0x9b, 0x47, - 0xf3, 0xda, 0x1f, 0x0b, 0xaf, 0x31, 0x6c, 0x9f, 0xd7, 0x76, 0xe0, 0x04, 0x67, 0x3c, 0xda, 0xba, - 0xfe, 0x89, 0x48, 0xac, 0x0c, 0x5d, 0xef, 0x5f, 0xdd, 0x9f, 0x86, 0xf9, 0xc0, 0x9d, 0xa2, 0x23, - 0xf5, 0xb4, 0xb6, 0xde, 0x19, 0x83, 0xf9, 0x5b, 0x9c, 0x59, 0x64, 0xfc, 0xa0, 0xa5, 0xf5, 0x36, - 0xf4, 0x0e, 0x21, 0xbf, 0x06, 0x79, 0x41, 0xde, 0xb5, 0x5d, 0x6c, 0x38, 0x2d, 0xdb, 0xbc, 0x83, - 0x1b, 0x63, 0x50, 0xff, 0xe9, 0xc0, 0x52, 0xd5, 0x43, 0x70, 0xc2, 0x5c, 0x05, 0x39, 0xe8, 0x55, - 0x34, 0xb3, 0xdd, 0x71, 0x5c, 0x3f, 0x82, 0xf1, 0xcf, 0xc4, 0x4a, 0x05, 0xb8, 0x2a, 0x85, 0x29, - 0x15, 0xc8, 0xd1, 0xe1, 0xb8, 0x21, 0xf9, 0xe7, 0x9c, 0x68, 0xaa, 0x87, 0xe2, 0x89, 0xc3, 0x70, - 0xda, 0x1d, 0xdd, 0x1d, 0x27, 0xff, 0xfd, 0x85, 0x48, 0x1c, 0x1c, 0xc2, 0x13, 0x87, 0xbf, 0xdf, - 0xc1, 0xa4, 0xda, 0x8f, 0xc1, 0xf0, 0x6d, 0x91, 0x38, 0x04, 0x86, 0x53, 0x88, 0x86, 0x61, 0x0c, - 0x8a, 0xbf, 0x14, 0x14, 0x02, 0x43, 0x28, 0x3e, 0xdb, 0x2b, 0xb4, 0x2e, 0x6e, 0x99, 0x9e, 0xef, - 0xb2, 0x3e, 0xf8, 0x70, 0xaa, 0xef, 0xbc, 0xd7, 0xdf, 0x84, 0xa9, 0x21, 0xa8, 0x72, 0x15, 0xa6, - 0x07, 0x5a, 0x0c, 0x14, 0xf5, 0xcd, 0x42, 0xfe, 0x67, 0x3e, 0xe0, 0xc9, 0xa8, 0xbf, 0xc3, 0x50, - 0xd6, 0xc9, 0xba, 0xf7, 0xf7, 0x01, 0xd1, 0x64, 0x2f, 0x7f, 0x10, 0x2c, 0x7d, 0x5f, 0x1b, 0xa0, - 0x5c, 0x81, 0xa9, 0xbe, 0x1e, 0x20, 0x9a, 0xea, 0x67, 0x39, 0x55, 0x36, 0xdc, 0x02, 0x28, 0x17, - 0x20, 0x41, 0xea, 0x79, 0x34, 0xfc, 0xe7, 0x38, 0x9c, 0xaa, 0x2b, 0x9f, 0x82, 0x94, 0xa8, 0xe3, - 0xd1, 0xd0, 0x9f, 0xe7, 0xd0, 0x00, 0x42, 0xe0, 0xa2, 0x86, 0x47, 0xc3, 0x7f, 0x41, 0xc0, 0x05, - 0x84, 0xc0, 0xc7, 0x77, 0xe1, 0x77, 0x7f, 0x29, 0xc1, 0xf3, 0xb0, 0xf0, 0xdd, 0x65, 0x98, 0xe4, - 0xc5, 0x3b, 0x1a, 0xfd, 0x45, 0xfe, 0x70, 0x81, 0x50, 0x9e, 0x83, 0xe4, 0x98, 0x0e, 0xff, 0x65, - 0x0e, 0x65, 0xfa, 0x4a, 0x19, 0x32, 0xa1, 0x82, 0x1d, 0x0d, 0xff, 0x15, 0x0e, 0x0f, 0xa3, 0x88, - 0xe9, 0xbc, 0x60, 0x47, 0x13, 0x7c, 0x49, 0x98, 0xce, 0x11, 0xc4, 0x6d, 0xa2, 0x56, 0x47, 0xa3, - 0x7f, 0x55, 0x78, 0x5d, 0x40, 0x94, 0x17, 0x20, 0x1d, 0xe4, 0xdf, 0x68, 0xfc, 0xaf, 0x71, 0x7c, - 0x0f, 0x43, 0x3c, 0x10, 0xca, 0xff, 0xd1, 0x14, 0xbf, 0x2e, 0x3c, 0x10, 0x42, 0x91, 0x6d, 0x34, - 0x58, 0xd3, 0xa3, 0x99, 0x7e, 0x43, 0x6c, 0xa3, 0x81, 0x92, 0x4e, 0x56, 0x93, 0xa6, 0xc1, 0x68, - 0x8a, 0xdf, 0x14, 0xab, 0x49, 0xf5, 0x89, 0x19, 0x83, 0x45, 0x32, 0x9a, 0xe3, 0xb7, 0x84, 0x19, - 0x03, 0x35, 0x52, 0xd9, 0x06, 0x34, 0x5c, 0x20, 0xa3, 0xf9, 0xbe, 0xcc, 0xf9, 0x66, 0x86, 0xea, - 0xa3, 0xf2, 0x22, 0x9c, 0x18, 0x5d, 0x1c, 0xa3, 0x59, 0xbf, 0xf2, 0xc1, 0xc0, 0x71, 0x26, 0x5c, - 0x1b, 0x95, 0x9d, 0x5e, 0x96, 0x0d, 0x17, 0xc6, 0x68, 0xda, 0x57, 0x3e, 0xe8, 0x4f, 0xb4, 0xe1, - 0xba, 0xa8, 0x14, 0x01, 0x7a, 0x35, 0x29, 0x9a, 0xeb, 0x55, 0xce, 0x15, 0x02, 0x91, 0xad, 0xc1, - 0x4b, 0x52, 0x34, 0xfe, 0xab, 0x62, 0x6b, 0x70, 0x04, 0xd9, 0x1a, 0xa2, 0x1a, 0x45, 0xa3, 0x5f, - 0x13, 0x5b, 0x43, 0x40, 0x94, 0xcb, 0x90, 0xb2, 0xbb, 0x96, 0x45, 0x62, 0x0b, 0x1d, 0xfe, 0x19, - 0x51, 0xfe, 0x5f, 0x3f, 0xe4, 0x60, 0x01, 0x50, 0x2e, 0x40, 0x12, 0xb7, 0x77, 0x71, 0x23, 0x0a, - 0xf9, 0x6f, 0x1f, 0x8a, 0x7c, 0x42, 0xb4, 0x95, 0x17, 0x00, 0xd8, 0x61, 0x9a, 0xfe, 0x4a, 0x14, - 0x81, 0xfd, 0xf7, 0x0f, 0xf9, 0x17, 0x0a, 0x3d, 0x48, 0x8f, 0x80, 0x7d, 0xef, 0x70, 0x38, 0xc1, - 0x7b, 0xfd, 0x04, 0xf4, 0x00, 0xfe, 0x3c, 0x4c, 0x5e, 0xf7, 0x1c, 0xdb, 0xd7, 0x5b, 0x51, 0xe8, - 0xff, 0xe0, 0x68, 0xa1, 0x4f, 0x1c, 0xd6, 0x76, 0x5c, 0xec, 0xeb, 0x2d, 0x2f, 0x0a, 0xfb, 0x9f, - 0x1c, 0x1b, 0x00, 0x08, 0xd8, 0xd0, 0x3d, 0x7f, 0x9c, 0xf7, 0xfe, 0x2f, 0x01, 0x16, 0x00, 0x62, - 0x34, 0xf9, 0xff, 0x06, 0xde, 0x8f, 0xc2, 0xbe, 0x2f, 0x8c, 0xe6, 0xfa, 0xca, 0xa7, 0x20, 0x4d, - 0xfe, 0x65, 0x5f, 0xed, 0x44, 0x80, 0xff, 0x9b, 0x83, 0x7b, 0x08, 0xf2, 0x64, 0xcf, 0x6f, 0xf8, - 0x66, 0xb4, 0xb3, 0xff, 0x87, 0xaf, 0xb4, 0xd0, 0x57, 0x8a, 0x90, 0xf1, 0xfc, 0x46, 0xa3, 0xcb, - 0x3b, 0x9a, 0x08, 0xf8, 0x0f, 0x3e, 0x0c, 0x0e, 0xb9, 0x01, 0xa6, 0x74, 0x66, 0xf4, 0x65, 0x1d, - 0xac, 0x39, 0x6b, 0x0e, 0xbb, 0xa6, 0x83, 0xbf, 0x4e, 0xc0, 0x14, 0xbe, 0xad, 0xb7, 0x3b, 0x42, - 0x01, 0x25, 0x48, 0xe9, 0x98, 0x3f, 0xda, 0x55, 0x5c, 0xe1, 0x4b, 0x12, 0x48, 0x45, 0xf4, 0x04, - 0x64, 0x56, 0x7b, 0x85, 0x8b, 0x7d, 0x50, 0x52, 0x4a, 0xdc, 0xbb, 0xbf, 0x78, 0x4c, 0x0d, 0x4f, - 0xa0, 0x87, 0x61, 0x62, 0xb3, 0xf7, 0x51, 0x52, 0x9c, 0xab, 0x70, 0x19, 0x52, 0x20, 0x56, 0x65, - 0x3f, 0x92, 0x65, 0x4b, 0x67, 0xc9, 0xcc, 0x3f, 0xdc, 0x5f, 0x2c, 0x1c, 0x68, 0x0e, 0xb1, 0x76, - 0xb9, 0xde, 0x35, 0x1b, 0x6a, 0xac, 0xda, 0x50, 0x52, 0xbf, 0xf8, 0xfa, 0xe2, 0xb1, 0x37, 0x5f, - 0x5f, 0x94, 0x0a, 0x36, 0x48, 0x25, 0xb4, 0x08, 0x52, 0x91, 0x9a, 0x91, 0x59, 0x99, 0x5c, 0xa6, - 0x9a, 0xc5, 0x52, 0x8a, 0x50, 0xbe, 0x75, 0x7f, 0x51, 0x52, 0xa5, 0x22, 0x2a, 0x81, 0xb4, 0x46, - 0xef, 0x92, 0xb3, 0xa5, 0xf3, 0xfc, 0x51, 0xcf, 0x1c, 0xfa, 0xa8, 0x73, 0x6c, 0x2f, 0x2c, 0xd7, - 0x4d, 0xdb, 0xff, 0x89, 0x95, 0x4b, 0xaa, 0xb4, 0xa6, 0x24, 0xde, 0x27, 0xcf, 0x7b, 0x14, 0xa4, - 0x32, 0x5a, 0x80, 0x04, 0x49, 0x4c, 0xf4, 0x91, 0xf1, 0x12, 0x3c, 0xb8, 0xbf, 0x38, 0xb1, 0xb1, - 0x5f, 0x33, 0xef, 0x60, 0x95, 0xca, 0x0b, 0xcf, 0x81, 0x54, 0x47, 0xc7, 0x87, 0x8d, 0x22, 0xa6, - 0x1c, 0x07, 0xa9, 0xc4, 0x3f, 0x59, 0xe3, 0xe2, 0x92, 0x2a, 0x95, 0x94, 0xc4, 0x3d, 0xc2, 0x3e, - 0x0b, 0x52, 0xe5, 0x6c, 0x2a, 0x25, 0xb1, 0x1f, 0x48, 0x94, 0xc4, 0xbd, 0xaf, 0x2d, 0x1e, 0x2b, - 0x3c, 0x05, 0x92, 0x8a, 0x16, 0x00, 0x7a, 0x39, 0x95, 0xd2, 0x4e, 0xa9, 0x21, 0x89, 0x92, 0x78, - 0x8b, 0xa8, 0x3e, 0x0d, 0xa9, 0xb2, 0xee, 0x89, 0xcf, 0x98, 0x92, 0x55, 0xdb, 0x7f, 0x76, 0x85, - 0x5b, 0x99, 0xfe, 0xff, 0xfb, 0x8b, 0x49, 0x93, 0x08, 0x54, 0x26, 0x2f, 0x3d, 0xf3, 0xf7, 0xef, - 0x2c, 0x1c, 0x7b, 0xfb, 0x9d, 0x05, 0xe9, 0xfd, 0x77, 0x16, 0xa4, 0xff, 0x7b, 0x67, 0x41, 0xba, - 0xfb, 0x60, 0x41, 0x7a, 0xf3, 0xc1, 0x82, 0xf4, 0x9d, 0x07, 0x0b, 0xd2, 0x77, 0x1f, 0x2c, 0x48, - 0xf7, 0x1e, 0x2c, 0x48, 0x6f, 0x3d, 0x58, 0x90, 0xde, 0x7e, 0xb0, 0x20, 0xfd, 0x30, 0x00, 0x00, - 0xff, 0xff, 0xbe, 0x52, 0xb0, 0x1d, 0x9e, 0x30, 0x00, 0x00, + 0x75, 0xd6, 0xe2, 0x41, 0x02, 0x07, 0x20, 0xb8, 0xbc, 0xa4, 0x24, 0x88, 0xb1, 0x49, 0x09, 0x7e, + 0x88, 0x92, 0x1d, 0x2a, 0x95, 0xf5, 0x5c, 0x35, 0x71, 0x01, 0x10, 0x62, 0xa0, 0xf2, 0x95, 0x05, + 0x19, 0x3f, 0x32, 0x9d, 0x9d, 0xe5, 0xe2, 0x12, 0x5c, 0x69, 0xb1, 0xbb, 0xd9, 0x5d, 0x48, 0xa2, + 0xa6, 0x3f, 0xd4, 0x71, 0x5f, 0x99, 0x4e, 0x9b, 0xbe, 0x66, 0x92, 0xb8, 0x8e, 0xeb, 0x74, 0xa6, + 0xb5, 0x9b, 0x3e, 0xd3, 0xb4, 0x69, 0xda, 0x3f, 0xcd, 0x9f, 0xb4, 0xfa, 0xd5, 0x71, 0xfe, 0x75, + 0x3a, 0x1d, 0x8d, 0xad, 0x7a, 0xa6, 0x2f, 0xb7, 0x71, 0x5b, 0xff, 0xc8, 0xd4, 0x7f, 0x3a, 0xf7, + 0xb5, 0x58, 0x3c, 0xa8, 0x05, 0x33, 0x63, 0xe7, 0x17, 0xb9, 0xe7, 0x9e, 0xef, 0xdb, 0x73, 0xcf, + 0x3d, 0xf7, 0x9c, 0x73, 0xef, 0x02, 0xbe, 0x7f, 0x19, 0x8e, 0xb7, 0x1c, 0xa7, 0x65, 0xe1, 0x33, + 0xae, 0xe7, 0x04, 0xce, 0x76, 0x67, 0xe7, 0x4c, 0x13, 0xfb, 0x86, 0x67, 0xba, 0x81, 0xe3, 0x2d, + 0x52, 0x19, 0x9a, 0x64, 0x1a, 0x8b, 0x42, 0xa3, 0xb4, 0x0a, 0x53, 0x57, 0x4d, 0x0b, 0x2f, 0x85, + 0x8a, 0x0d, 0x1c, 0xa0, 0x4b, 0x90, 0xda, 0x31, 0x2d, 0x5c, 0x94, 0x8e, 0x27, 0x17, 0x72, 0x67, + 0x1f, 0x5f, 0xec, 0x03, 0x2d, 0xf6, 0x22, 0x36, 0x88, 0x58, 0xa5, 0x88, 0xd2, 0x3b, 0x29, 0x98, + 0x1e, 0x32, 0x8a, 0x10, 0xa4, 0x6c, 0xbd, 0x4d, 0x18, 0xa5, 0x85, 0xac, 0x4a, 0xff, 0x47, 0x45, + 0x18, 0x77, 0x75, 0xe3, 0x86, 0xde, 0xc2, 0xc5, 0x04, 0x15, 0x8b, 0x47, 0x34, 0x07, 0xd0, 0xc4, + 0x2e, 0xb6, 0x9b, 0xd8, 0x36, 0xf6, 0x8a, 0xc9, 0xe3, 0xc9, 0x85, 0xac, 0x1a, 0x91, 0xa0, 0xa7, + 0x60, 0xca, 0xed, 0x6c, 0x5b, 0xa6, 0xa1, 0x45, 0xd4, 0xe0, 0x78, 0x72, 0x21, 0xad, 0xca, 0x6c, + 0x60, 0xa9, 0xab, 0x7c, 0x12, 0x26, 0x6f, 0x61, 0xfd, 0x46, 0x54, 0x35, 0x47, 0x55, 0x0b, 0x44, + 0x1c, 0x51, 0xac, 0x42, 0xbe, 0x8d, 0x7d, 0x5f, 0x6f, 0x61, 0x2d, 0xd8, 0x73, 0x71, 0x31, 0x45, + 0x67, 0x7f, 0x7c, 0x60, 0xf6, 0xfd, 0x33, 0xcf, 0x71, 0xd4, 0xe6, 0x9e, 0x8b, 0x51, 0x19, 0xb2, + 0xd8, 0xee, 0xb4, 0x19, 0x43, 0x7a, 0x1f, 0xff, 0xd5, 0xec, 0x4e, 0xbb, 0x9f, 0x25, 0x43, 0x60, + 0x9c, 0x62, 0xdc, 0xc7, 0xde, 0x4d, 0xd3, 0xc0, 0xc5, 0x31, 0x4a, 0x70, 0x72, 0x80, 0xa0, 0xc1, + 0xc6, 0xfb, 0x39, 0x04, 0x0e, 0x55, 0x21, 0x8b, 0x6f, 0x07, 0xd8, 0xf6, 0x4d, 0xc7, 0x2e, 0x8e, + 0x53, 0x92, 0x27, 0x86, 0xac, 0x22, 0xb6, 0x9a, 0xfd, 0x14, 0x5d, 0x1c, 0xba, 0x00, 0xe3, 0x8e, + 0x1b, 0x98, 0x8e, 0xed, 0x17, 0x33, 0xc7, 0xa5, 0x85, 0xdc, 0xd9, 0x47, 0x86, 0x06, 0xc2, 0x3a, + 0xd3, 0x51, 0x85, 0x32, 0xaa, 0x83, 0xec, 0x3b, 0x1d, 0xcf, 0xc0, 0x9a, 0xe1, 0x34, 0xb1, 0x66, + 0xda, 0x3b, 0x4e, 0x31, 0x4b, 0x09, 0xe6, 0x07, 0x27, 0x42, 0x15, 0xab, 0x4e, 0x13, 0xd7, 0xed, + 0x1d, 0x47, 0x2d, 0xf8, 0x3d, 0xcf, 0xe8, 0x08, 0x8c, 0xf9, 0x7b, 0x76, 0xa0, 0xdf, 0x2e, 0xe6, + 0x69, 0x84, 0xf0, 0xa7, 0xd2, 0x5f, 0x8d, 0xc1, 0xe4, 0x28, 0x21, 0x76, 0x05, 0xd2, 0x3b, 0x64, + 0x96, 0xc5, 0xc4, 0x41, 0x7c, 0xc0, 0x30, 0xbd, 0x4e, 0x1c, 0xfb, 0x21, 0x9d, 0x58, 0x86, 0x9c, + 0x8d, 0xfd, 0x00, 0x37, 0x59, 0x44, 0x24, 0x47, 0x8c, 0x29, 0x60, 0xa0, 0xc1, 0x90, 0x4a, 0xfd, + 0x50, 0x21, 0xf5, 0x3c, 0x4c, 0x86, 0x26, 0x69, 0x9e, 0x6e, 0xb7, 0x44, 0x6c, 0x9e, 0x89, 0xb3, + 0x64, 0xb1, 0x26, 0x70, 0x2a, 0x81, 0xa9, 0x05, 0xdc, 0xf3, 0x8c, 0x96, 0x00, 0x1c, 0x1b, 0x3b, + 0x3b, 0x5a, 0x13, 0x1b, 0x56, 0x31, 0xb3, 0x8f, 0x97, 0xd6, 0x89, 0xca, 0x80, 0x97, 0x1c, 0x26, + 0x35, 0x2c, 0x74, 0xb9, 0x1b, 0x6a, 0xe3, 0xfb, 0x44, 0xca, 0x2a, 0xdb, 0x64, 0x03, 0xd1, 0xb6, + 0x05, 0x05, 0x0f, 0x93, 0xb8, 0xc7, 0x4d, 0x3e, 0xb3, 0x2c, 0x35, 0x62, 0x31, 0x76, 0x66, 0x2a, + 0x87, 0xb1, 0x89, 0x4d, 0x78, 0xd1, 0x47, 0xf4, 0x18, 0x84, 0x02, 0x8d, 0x86, 0x15, 0xd0, 0x2c, + 0x94, 0x17, 0xc2, 0x35, 0xbd, 0x8d, 0x67, 0xef, 0x40, 0xa1, 0xd7, 0x3d, 0x68, 0x06, 0xd2, 0x7e, + 0xa0, 0x7b, 0x01, 0x8d, 0xc2, 0xb4, 0xca, 0x1e, 0x90, 0x0c, 0x49, 0x6c, 0x37, 0x69, 0x96, 0x4b, + 0xab, 0xe4, 0x5f, 0xf4, 0x13, 0xdd, 0x09, 0x27, 0xe9, 0x84, 0x9f, 0x1c, 0x5c, 0xd1, 0x1e, 0xe6, + 0xfe, 0x79, 0xcf, 0x5e, 0x84, 0x89, 0x9e, 0x09, 0x8c, 0xfa, 0xea, 0xd2, 0x4f, 0xc3, 0xe1, 0xa1, + 0xd4, 0xe8, 0x79, 0x98, 0xe9, 0xd8, 0xa6, 0x1d, 0x60, 0xcf, 0xf5, 0x30, 0x89, 0x58, 0xf6, 0xaa, + 0xe2, 0xbf, 0x8c, 0xef, 0x13, 0x73, 0x5b, 0x51, 0x6d, 0xc6, 0xa2, 0x4e, 0x77, 0x06, 0x85, 0xa7, + 0xb3, 0x99, 0x7f, 0x1d, 0x97, 0xef, 0xde, 0xbd, 0x7b, 0x37, 0x51, 0xfa, 0xf2, 0x18, 0xcc, 0x0c, + 0xdb, 0x33, 0x43, 0xb7, 0xef, 0x11, 0x18, 0xb3, 0x3b, 0xed, 0x6d, 0xec, 0x51, 0x27, 0xa5, 0x55, + 0xfe, 0x84, 0xca, 0x90, 0xb6, 0xf4, 0x6d, 0x6c, 0x15, 0x53, 0xc7, 0xa5, 0x85, 0xc2, 0xd9, 0xa7, + 0x46, 0xda, 0x95, 0x8b, 0x2b, 0x04, 0xa2, 0x32, 0x24, 0xfa, 0x14, 0xa4, 0x78, 0x8a, 0x26, 0x0c, + 0xa7, 0x47, 0x63, 0x20, 0x7b, 0x49, 0xa5, 0x38, 0xf4, 0x31, 0xc8, 0x92, 0xbf, 0x2c, 0x36, 0xc6, + 0xa8, 0xcd, 0x19, 0x22, 0x20, 0x71, 0x81, 0x66, 0x21, 0x43, 0xb7, 0x49, 0x13, 0x8b, 0xd2, 0x16, + 0x3e, 0x93, 0xc0, 0x6a, 0xe2, 0x1d, 0xbd, 0x63, 0x05, 0xda, 0x4d, 0xdd, 0xea, 0x60, 0x1a, 0xf0, + 0x59, 0x35, 0xcf, 0x85, 0x9f, 0x25, 0x32, 0x34, 0x0f, 0x39, 0xb6, 0xab, 0x4c, 0xbb, 0x89, 0x6f, + 0xd3, 0xec, 0x99, 0x56, 0xd9, 0x46, 0xab, 0x13, 0x09, 0x79, 0xfd, 0x75, 0xdf, 0xb1, 0x45, 0x68, + 0xd2, 0x57, 0x10, 0x01, 0x7d, 0xfd, 0xc5, 0xfe, 0xc4, 0xfd, 0xe8, 0xf0, 0xe9, 0xf5, 0xc7, 0x54, + 0xe9, 0x5b, 0x09, 0x48, 0xd1, 0x7c, 0x31, 0x09, 0xb9, 0xcd, 0x17, 0x36, 0x6a, 0xda, 0xd2, 0xfa, + 0x56, 0x65, 0xa5, 0x26, 0x4b, 0xa8, 0x00, 0x40, 0x05, 0x57, 0x57, 0xd6, 0xcb, 0x9b, 0x72, 0x22, + 0x7c, 0xae, 0xaf, 0x6d, 0x5e, 0x38, 0x27, 0x27, 0x43, 0xc0, 0x16, 0x13, 0xa4, 0xa2, 0x0a, 0xcf, + 0x9c, 0x95, 0xd3, 0x48, 0x86, 0x3c, 0x23, 0xa8, 0x3f, 0x5f, 0x5b, 0xba, 0x70, 0x4e, 0x1e, 0xeb, + 0x95, 0x3c, 0x73, 0x56, 0x1e, 0x47, 0x13, 0x90, 0xa5, 0x92, 0xca, 0xfa, 0xfa, 0x8a, 0x9c, 0x09, + 0x39, 0x1b, 0x9b, 0x6a, 0x7d, 0x6d, 0x59, 0xce, 0x86, 0x9c, 0xcb, 0xea, 0xfa, 0xd6, 0x86, 0x0c, + 0x21, 0xc3, 0x6a, 0xad, 0xd1, 0x28, 0x2f, 0xd7, 0xe4, 0x5c, 0xa8, 0x51, 0x79, 0x61, 0xb3, 0xd6, + 0x90, 0xf3, 0x3d, 0x66, 0x3d, 0x73, 0x56, 0x9e, 0x08, 0x5f, 0x51, 0x5b, 0xdb, 0x5a, 0x95, 0x0b, + 0x68, 0x0a, 0x26, 0xd8, 0x2b, 0x84, 0x11, 0x93, 0x7d, 0xa2, 0x0b, 0xe7, 0x64, 0xb9, 0x6b, 0x08, + 0x63, 0x99, 0xea, 0x11, 0x5c, 0x38, 0x27, 0xa3, 0x52, 0x15, 0xd2, 0x34, 0xba, 0x10, 0x82, 0xc2, + 0x4a, 0xb9, 0x52, 0x5b, 0xd1, 0xd6, 0x37, 0x36, 0xeb, 0xeb, 0x6b, 0xe5, 0x15, 0x59, 0xea, 0xca, + 0xd4, 0xda, 0x67, 0xb6, 0xea, 0x6a, 0x6d, 0x49, 0x4e, 0x44, 0x65, 0x1b, 0xb5, 0xf2, 0x66, 0x6d, + 0x49, 0x4e, 0x96, 0x0c, 0x98, 0x19, 0x96, 0x27, 0x87, 0xee, 0x8c, 0xc8, 0x12, 0x27, 0xf6, 0x59, + 0x62, 0xca, 0x35, 0xb0, 0xc4, 0xff, 0x9c, 0x80, 0xe9, 0x21, 0xb5, 0x62, 0xe8, 0x4b, 0x9e, 0x85, + 0x34, 0x0b, 0x51, 0x56, 0x3d, 0x4f, 0x0d, 0x2d, 0x3a, 0x34, 0x60, 0x07, 0x2a, 0x28, 0xc5, 0x45, + 0x3b, 0x88, 0xe4, 0x3e, 0x1d, 0x04, 0xa1, 0x18, 0xc8, 0xe9, 0x3f, 0x35, 0x90, 0xd3, 0x59, 0xd9, + 0xbb, 0x30, 0x4a, 0xd9, 0xa3, 0xb2, 0x83, 0xe5, 0xf6, 0xf4, 0x90, 0xdc, 0x7e, 0x05, 0xa6, 0x06, + 0x88, 0x46, 0xce, 0xb1, 0x2f, 0x49, 0x50, 0xdc, 0xcf, 0x39, 0x31, 0x99, 0x2e, 0xd1, 0x93, 0xe9, + 0xae, 0xf4, 0x7b, 0xf0, 0xc4, 0xfe, 0x8b, 0x30, 0xb0, 0xd6, 0xaf, 0x4b, 0x70, 0x64, 0x78, 0xa7, + 0x38, 0xd4, 0x86, 0x4f, 0xc1, 0x58, 0x1b, 0x07, 0xbb, 0x8e, 0xe8, 0x96, 0x9e, 0x1c, 0x52, 0x83, + 0xc9, 0x70, 0xff, 0x62, 0x73, 0x54, 0xb4, 0x88, 0x27, 0xf7, 0x6b, 0xf7, 0x98, 0x35, 0x03, 0x96, + 0x7e, 0x21, 0x01, 0x87, 0x87, 0x92, 0x0f, 0x35, 0xf4, 0x51, 0x00, 0xd3, 0x76, 0x3b, 0x01, 0xeb, + 0x88, 0x58, 0x82, 0xcd, 0x52, 0x09, 0x4d, 0x5e, 0x24, 0x79, 0x76, 0x82, 0x70, 0x3c, 0x49, 0xc7, + 0x81, 0x89, 0xa8, 0xc2, 0xa5, 0xae, 0xa1, 0x29, 0x6a, 0xe8, 0xdc, 0x3e, 0x33, 0x1d, 0x08, 0xcc, + 0x4f, 0x80, 0x6c, 0x58, 0x26, 0xb6, 0x03, 0xcd, 0x0f, 0x3c, 0xac, 0xb7, 0x4d, 0xbb, 0x45, 0x2b, + 0x48, 0x46, 0x49, 0xef, 0xe8, 0x96, 0x8f, 0xd5, 0x49, 0x36, 0xdc, 0x10, 0xa3, 0x04, 0x41, 0x03, + 0xc8, 0x8b, 0x20, 0xc6, 0x7a, 0x10, 0x6c, 0x38, 0x44, 0x94, 0xbe, 0x99, 0x81, 0x5c, 0xa4, 0xaf, + 0x46, 0x27, 0x20, 0x7f, 0x5d, 0xbf, 0xa9, 0x6b, 0xe2, 0xac, 0xc4, 0x3c, 0x91, 0x23, 0xb2, 0x0d, + 0x7e, 0x5e, 0xfa, 0x04, 0xcc, 0x50, 0x15, 0xa7, 0x13, 0x60, 0x4f, 0x33, 0x2c, 0xdd, 0xf7, 0xa9, + 0xd3, 0x32, 0x54, 0x15, 0x91, 0xb1, 0x75, 0x32, 0x54, 0x15, 0x23, 0xe8, 0x3c, 0x4c, 0x53, 0x44, + 0xbb, 0x63, 0x05, 0xa6, 0x6b, 0x61, 0x8d, 0x9c, 0xde, 0x7c, 0x5a, 0x49, 0x42, 0xcb, 0xa6, 0x88, + 0xc6, 0x2a, 0x57, 0x20, 0x16, 0xf9, 0x68, 0x09, 0x1e, 0xa5, 0xb0, 0x16, 0xb6, 0xb1, 0xa7, 0x07, + 0x58, 0xc3, 0x9f, 0xef, 0xe8, 0x96, 0xaf, 0xe9, 0x76, 0x53, 0xdb, 0xd5, 0xfd, 0xdd, 0xe2, 0x0c, + 0x21, 0xa8, 0x24, 0x8a, 0x92, 0x7a, 0x8c, 0x28, 0x2e, 0x73, 0xbd, 0x1a, 0x55, 0x2b, 0xdb, 0xcd, + 0x4f, 0xeb, 0xfe, 0x2e, 0x52, 0xe0, 0x08, 0x65, 0xf1, 0x03, 0xcf, 0xb4, 0x5b, 0x9a, 0xb1, 0x8b, + 0x8d, 0x1b, 0x5a, 0x27, 0xd8, 0xb9, 0x54, 0xfc, 0x58, 0xf4, 0xfd, 0xd4, 0xc2, 0x06, 0xd5, 0xa9, + 0x12, 0x95, 0xad, 0x60, 0xe7, 0x12, 0x6a, 0x40, 0x9e, 0x2c, 0x46, 0xdb, 0xbc, 0x83, 0xb5, 0x1d, + 0xc7, 0xa3, 0xa5, 0xb1, 0x30, 0x24, 0x35, 0x45, 0x3c, 0xb8, 0xb8, 0xce, 0x01, 0xab, 0x4e, 0x13, + 0x2b, 0xe9, 0xc6, 0x46, 0xad, 0xb6, 0xa4, 0xe6, 0x04, 0xcb, 0x55, 0xc7, 0x23, 0x01, 0xd5, 0x72, + 0x42, 0x07, 0xe7, 0x58, 0x40, 0xb5, 0x1c, 0xe1, 0xde, 0xf3, 0x30, 0x6d, 0x18, 0x6c, 0xce, 0xa6, + 0xa1, 0xf1, 0x33, 0x96, 0x5f, 0x94, 0x7b, 0x9c, 0x65, 0x18, 0xcb, 0x4c, 0x81, 0xc7, 0xb8, 0x8f, + 0x2e, 0xc3, 0xe1, 0xae, 0xb3, 0xa2, 0xc0, 0xa9, 0x81, 0x59, 0xf6, 0x43, 0xcf, 0xc3, 0xb4, 0xbb, + 0x37, 0x08, 0x44, 0x3d, 0x6f, 0x74, 0xf7, 0xfa, 0x61, 0x17, 0x61, 0xc6, 0xdd, 0x75, 0x07, 0x71, + 0xa7, 0xa3, 0x38, 0xe4, 0xee, 0xba, 0xfd, 0xc0, 0x27, 0xe8, 0x81, 0xdb, 0xc3, 0x86, 0x1e, 0xe0, + 0x66, 0xf1, 0x68, 0x54, 0x3d, 0x32, 0x80, 0xce, 0x80, 0x6c, 0x18, 0x1a, 0xb6, 0xf5, 0x6d, 0x0b, + 0x6b, 0xba, 0x87, 0x6d, 0xdd, 0x2f, 0xce, 0x47, 0x95, 0x0b, 0x86, 0x51, 0xa3, 0xa3, 0x65, 0x3a, + 0x88, 0x4e, 0xc3, 0x94, 0xb3, 0x7d, 0xdd, 0x60, 0x21, 0xa9, 0xb9, 0x1e, 0xde, 0x31, 0x6f, 0x17, + 0x1f, 0xa7, 0xfe, 0x9d, 0x24, 0x03, 0x34, 0x20, 0x37, 0xa8, 0x18, 0x9d, 0x02, 0xd9, 0xf0, 0x77, + 0x75, 0xcf, 0xa5, 0x39, 0xd9, 0x77, 0x75, 0x03, 0x17, 0x9f, 0x60, 0xaa, 0x4c, 0xbe, 0x26, 0xc4, + 0x64, 0x4b, 0xf8, 0xb7, 0xcc, 0x9d, 0x40, 0x30, 0x9e, 0x64, 0x5b, 0x82, 0xca, 0x38, 0xdb, 0x02, + 0xc8, 0xc4, 0x15, 0x3d, 0x2f, 0x5e, 0xa0, 0x6a, 0x05, 0x77, 0xd7, 0x8d, 0xbe, 0xf7, 0x31, 0x98, + 0x20, 0x9a, 0xdd, 0x97, 0x9e, 0x62, 0x0d, 0x99, 0xbb, 0x1b, 0x79, 0xe3, 0x87, 0xd6, 0x1b, 0x97, + 0x14, 0xc8, 0x47, 0xe3, 0x13, 0x65, 0x81, 0x45, 0xa8, 0x2c, 0x91, 0x66, 0xa5, 0xba, 0xbe, 0x44, + 0xda, 0x8c, 0x17, 0x6b, 0x72, 0x82, 0xb4, 0x3b, 0x2b, 0xf5, 0xcd, 0x9a, 0xa6, 0x6e, 0xad, 0x6d, + 0xd6, 0x57, 0x6b, 0x72, 0x32, 0xda, 0x57, 0x7f, 0x37, 0x01, 0x85, 0xde, 0x23, 0x12, 0xfa, 0x71, + 0x38, 0x2a, 0xee, 0x33, 0x7c, 0x1c, 0x68, 0xb7, 0x4c, 0x8f, 0x6e, 0x99, 0xb6, 0xce, 0xca, 0x57, + 0xb8, 0x68, 0x33, 0x5c, 0xab, 0x81, 0x83, 0xe7, 0x4c, 0x8f, 0x6c, 0x88, 0xb6, 0x1e, 0xa0, 0x15, + 0x98, 0xb7, 0x1d, 0xcd, 0x0f, 0x74, 0xbb, 0xa9, 0x7b, 0x4d, 0xad, 0x7b, 0x93, 0xa4, 0xe9, 0x86, + 0x81, 0x7d, 0xdf, 0x61, 0xa5, 0x2a, 0x64, 0x79, 0xc4, 0x76, 0x1a, 0x5c, 0xb9, 0x9b, 0xc3, 0xcb, + 0x5c, 0xb5, 0x2f, 0xc0, 0x92, 0xfb, 0x05, 0xd8, 0xc7, 0x20, 0xdb, 0xd6, 0x5d, 0x0d, 0xdb, 0x81, + 0xb7, 0x47, 0x1b, 0xe3, 0x8c, 0x9a, 0x69, 0xeb, 0x6e, 0x8d, 0x3c, 0x7f, 0x34, 0xe7, 0x93, 0x7f, + 0x4a, 0x42, 0x3e, 0xda, 0x1c, 0x93, 0xb3, 0x86, 0x41, 0xeb, 0x88, 0x44, 0x33, 0xcd, 0x63, 0x0f, + 0x6d, 0xa5, 0x17, 0xab, 0xa4, 0xc0, 0x28, 0x63, 0xac, 0x65, 0x55, 0x19, 0x92, 0x14, 0x77, 0x92, + 0x5b, 0x30, 0x6b, 0x11, 0x32, 0x2a, 0x7f, 0x42, 0xcb, 0x30, 0x76, 0xdd, 0xa7, 0xdc, 0x63, 0x94, + 0xfb, 0xf1, 0x87, 0x73, 0x5f, 0x6b, 0x50, 0xf2, 0xec, 0xb5, 0x86, 0xb6, 0xb6, 0xae, 0xae, 0x96, + 0x57, 0x54, 0x0e, 0x47, 0xc7, 0x20, 0x65, 0xe9, 0x77, 0xf6, 0x7a, 0x4b, 0x11, 0x15, 0x8d, 0xea, + 0xf8, 0x63, 0x90, 0xba, 0x85, 0xf5, 0x1b, 0xbd, 0x05, 0x80, 0x8a, 0x3e, 0xc4, 0xd0, 0x3f, 0x03, + 0x69, 0xea, 0x2f, 0x04, 0xc0, 0x3d, 0x26, 0x1f, 0x42, 0x19, 0x48, 0x55, 0xd7, 0x55, 0x12, 0xfe, + 0x32, 0xe4, 0x99, 0x54, 0xdb, 0xa8, 0xd7, 0xaa, 0x35, 0x39, 0x51, 0x3a, 0x0f, 0x63, 0xcc, 0x09, + 0x64, 0x6b, 0x84, 0x6e, 0x90, 0x0f, 0xf1, 0x47, 0xce, 0x21, 0x89, 0xd1, 0xad, 0xd5, 0x4a, 0x4d, + 0x95, 0x13, 0xd1, 0xe5, 0xf5, 0x21, 0x1f, 0xed, 0x8b, 0x3f, 0x9a, 0x98, 0xfa, 0x6b, 0x09, 0x72, + 0x91, 0x3e, 0x97, 0x34, 0x28, 0xba, 0x65, 0x39, 0xb7, 0x34, 0xdd, 0x32, 0x75, 0x9f, 0x07, 0x05, + 0x50, 0x51, 0x99, 0x48, 0x46, 0x5d, 0xb4, 0x8f, 0xc4, 0xf8, 0x57, 0x25, 0x90, 0xfb, 0x5b, 0xcc, + 0x3e, 0x03, 0xa5, 0x1f, 0xa9, 0x81, 0xaf, 0x48, 0x50, 0xe8, 0xed, 0x2b, 0xfb, 0xcc, 0x3b, 0xf1, + 0x23, 0x35, 0xef, 0xad, 0x04, 0x4c, 0xf4, 0x74, 0x93, 0xa3, 0x5a, 0xf7, 0x79, 0x98, 0x32, 0x9b, + 0xb8, 0xed, 0x3a, 0x01, 0xb6, 0x8d, 0x3d, 0xcd, 0xc2, 0x37, 0xb1, 0x55, 0x2c, 0xd1, 0x44, 0x71, + 0xe6, 0xe1, 0xfd, 0xea, 0x62, 0xbd, 0x8b, 0x5b, 0x21, 0x30, 0x65, 0xba, 0xbe, 0x54, 0x5b, 0xdd, + 0x58, 0xdf, 0xac, 0xad, 0x55, 0x5f, 0xd0, 0xb6, 0xd6, 0x7e, 0x72, 0x6d, 0xfd, 0xb9, 0x35, 0x55, + 0x36, 0xfb, 0xd4, 0x3e, 0xc4, 0xad, 0xbe, 0x01, 0x72, 0xbf, 0x51, 0xe8, 0x28, 0x0c, 0x33, 0x4b, + 0x3e, 0x84, 0xa6, 0x61, 0x72, 0x6d, 0x5d, 0x6b, 0xd4, 0x97, 0x6a, 0x5a, 0xed, 0xea, 0xd5, 0x5a, + 0x75, 0xb3, 0xc1, 0x6e, 0x20, 0x42, 0xed, 0xcd, 0xde, 0x4d, 0xfd, 0x72, 0x12, 0xa6, 0x87, 0x58, + 0x82, 0xca, 0xfc, 0xec, 0xc0, 0x8e, 0x33, 0x1f, 0x1f, 0xc5, 0xfa, 0x45, 0x52, 0xf2, 0x37, 0x74, + 0x2f, 0xe0, 0x47, 0x8d, 0x53, 0x40, 0xbc, 0x64, 0x07, 0xe6, 0x8e, 0x89, 0x3d, 0x7e, 0x61, 0xc3, + 0x0e, 0x14, 0x93, 0x5d, 0x39, 0xbb, 0xb3, 0x79, 0x1a, 0x90, 0xeb, 0xf8, 0x66, 0x60, 0xde, 0xc4, + 0x9a, 0x69, 0x8b, 0xdb, 0x1d, 0x72, 0xc0, 0x48, 0xa9, 0xb2, 0x18, 0xa9, 0xdb, 0x41, 0xa8, 0x6d, + 0xe3, 0x96, 0xde, 0xa7, 0x4d, 0x12, 0x78, 0x52, 0x95, 0xc5, 0x48, 0xa8, 0x7d, 0x02, 0xf2, 0x4d, + 0xa7, 0x43, 0xba, 0x2e, 0xa6, 0x47, 0xea, 0x85, 0xa4, 0xe6, 0x98, 0x2c, 0x54, 0xe1, 0xfd, 0x74, + 0xf7, 0x5a, 0x29, 0xaf, 0xe6, 0x98, 0x8c, 0xa9, 0x9c, 0x84, 0x49, 0xbd, 0xd5, 0xf2, 0x08, 0xb9, + 0x20, 0x62, 0x27, 0x84, 0x42, 0x28, 0xa6, 0x8a, 0xb3, 0xd7, 0x20, 0x23, 0xfc, 0x40, 0x4a, 0x32, + 0xf1, 0x84, 0xe6, 0xb2, 0x63, 0x6f, 0x62, 0x21, 0xab, 0x66, 0x6c, 0x31, 0x78, 0x02, 0xf2, 0xa6, + 0xaf, 0x75, 0x6f, 0xc9, 0x13, 0xc7, 0x13, 0x0b, 0x19, 0x35, 0x67, 0xfa, 0xe1, 0x0d, 0x63, 0xe9, + 0xf5, 0x04, 0x14, 0x7a, 0x6f, 0xf9, 0xd1, 0x12, 0x64, 0x2c, 0xc7, 0xd0, 0x69, 0x68, 0xb1, 0x4f, + 0x4c, 0x0b, 0x31, 0x1f, 0x06, 0x16, 0x57, 0xb8, 0xbe, 0x1a, 0x22, 0x67, 0xff, 0x5e, 0x82, 0x8c, + 0x10, 0xa3, 0x23, 0x90, 0x72, 0xf5, 0x60, 0x97, 0xd2, 0xa5, 0x2b, 0x09, 0x59, 0x52, 0xe9, 0x33, + 0x91, 0xfb, 0xae, 0x6e, 0xd3, 0x10, 0xe0, 0x72, 0xf2, 0x4c, 0xd6, 0xd5, 0xc2, 0x7a, 0x93, 0x1e, + 0x3f, 0x9c, 0x76, 0x1b, 0xdb, 0x81, 0x2f, 0xd6, 0x95, 0xcb, 0xab, 0x5c, 0x8c, 0x9e, 0x82, 0xa9, + 0xc0, 0xd3, 0x4d, 0xab, 0x47, 0x37, 0x45, 0x75, 0x65, 0x31, 0x10, 0x2a, 0x2b, 0x70, 0x4c, 0xf0, + 0x36, 0x71, 0xa0, 0x1b, 0xbb, 0xb8, 0xd9, 0x05, 0x8d, 0xd1, 0x6b, 0x86, 0xa3, 0x5c, 0x61, 0x89, + 0x8f, 0x0b, 0x6c, 0xe9, 0x7b, 0x12, 0x4c, 0x89, 0x03, 0x53, 0x33, 0x74, 0xd6, 0x2a, 0x80, 0x6e, + 0xdb, 0x4e, 0x10, 0x75, 0xd7, 0x60, 0x28, 0x0f, 0xe0, 0x16, 0xcb, 0x21, 0x48, 0x8d, 0x10, 0xcc, + 0xb6, 0x01, 0xba, 0x23, 0xfb, 0xba, 0x6d, 0x1e, 0x72, 0xfc, 0x13, 0x0e, 0xfd, 0x0e, 0xc8, 0x8e, + 0xd8, 0xc0, 0x44, 0xe4, 0x64, 0x85, 0x66, 0x20, 0xbd, 0x8d, 0x5b, 0xa6, 0xcd, 0x2f, 0x66, 0xd9, + 0x83, 0xb8, 0x08, 0x49, 0x85, 0x17, 0x21, 0x95, 0xcf, 0xc1, 0xb4, 0xe1, 0xb4, 0xfb, 0xcd, 0xad, + 0xc8, 0x7d, 0xc7, 0x7c, 0xff, 0xd3, 0xd2, 0x8b, 0xd0, 0x6d, 0x31, 0x7f, 0x20, 0x49, 0xbf, 0x93, + 0x48, 0x2e, 0x6f, 0x54, 0xbe, 0x9e, 0x98, 0x5d, 0x66, 0xd0, 0x0d, 0x31, 0x53, 0x15, 0xef, 0x58, + 0xd8, 0x20, 0xd6, 0xc3, 0x97, 0x4e, 0xc2, 0xc7, 0x5b, 0x66, 0xb0, 0xdb, 0xd9, 0x5e, 0x34, 0x9c, + 0xf6, 0x99, 0x96, 0xd3, 0x72, 0xba, 0x9f, 0x3e, 0xc9, 0x13, 0x7d, 0xa0, 0xff, 0xf1, 0xcf, 0x9f, + 0xd9, 0x50, 0x3a, 0x1b, 0xfb, 0xad, 0x54, 0x59, 0x83, 0x69, 0xae, 0xac, 0xd1, 0xef, 0x2f, 0xec, + 0x14, 0x81, 0x1e, 0x7a, 0x87, 0x55, 0xfc, 0xc6, 0x3b, 0xb4, 0x5c, 0xab, 0x53, 0x1c, 0x4a, 0xc6, + 0xd8, 0x41, 0x43, 0x51, 0xe1, 0x70, 0x0f, 0x1f, 0xdb, 0x9a, 0xd8, 0x8b, 0x61, 0xfc, 0x2e, 0x67, + 0x9c, 0x8e, 0x30, 0x36, 0x38, 0x54, 0xa9, 0xc2, 0xc4, 0x41, 0xb8, 0xfe, 0x96, 0x73, 0xe5, 0x71, + 0x94, 0x64, 0x19, 0x26, 0x29, 0x89, 0xd1, 0xf1, 0x03, 0xa7, 0x4d, 0xf3, 0xde, 0xc3, 0x69, 0xfe, + 0xee, 0x1d, 0xb6, 0x57, 0x0a, 0x04, 0x56, 0x0d, 0x51, 0x8a, 0x02, 0xf4, 0x93, 0x53, 0x13, 0x1b, + 0x56, 0x0c, 0xc3, 0x3d, 0x6e, 0x48, 0xa8, 0xaf, 0x7c, 0x16, 0x66, 0xc8, 0xff, 0x34, 0x2d, 0x45, + 0x2d, 0x89, 0xbf, 0xf0, 0x2a, 0x7e, 0xef, 0x25, 0xb6, 0x1d, 0xa7, 0x43, 0x82, 0x88, 0x4d, 0x91, + 0x55, 0x6c, 0xe1, 0x20, 0xc0, 0x9e, 0xaf, 0xe9, 0xd6, 0x30, 0xf3, 0x22, 0x37, 0x06, 0xc5, 0xaf, + 0xbc, 0xdb, 0xbb, 0x8a, 0xcb, 0x0c, 0x59, 0xb6, 0x2c, 0x65, 0x0b, 0x8e, 0x0e, 0x89, 0x8a, 0x11, + 0x38, 0x5f, 0xe6, 0x9c, 0x33, 0x03, 0x91, 0x41, 0x68, 0x37, 0x40, 0xc8, 0xc3, 0xb5, 0x1c, 0x81, + 0xf3, 0xb7, 0x38, 0x27, 0xe2, 0x58, 0xb1, 0xa4, 0x84, 0xf1, 0x1a, 0x4c, 0xdd, 0xc4, 0xde, 0xb6, + 0xe3, 0xf3, 0x5b, 0x9a, 0x11, 0xe8, 0x5e, 0xe1, 0x74, 0x93, 0x1c, 0x48, 0xaf, 0x6d, 0x08, 0xd7, + 0x65, 0xc8, 0xec, 0xe8, 0x06, 0x1e, 0x81, 0xe2, 0xab, 0x9c, 0x62, 0x9c, 0xe8, 0x13, 0x68, 0x19, + 0xf2, 0x2d, 0x87, 0x57, 0xa6, 0x78, 0xf8, 0xab, 0x1c, 0x9e, 0x13, 0x18, 0x4e, 0xe1, 0x3a, 0x6e, + 0xc7, 0x22, 0x65, 0x2b, 0x9e, 0xe2, 0xb7, 0x05, 0x85, 0xc0, 0x70, 0x8a, 0x03, 0xb8, 0xf5, 0x35, + 0x41, 0xe1, 0x47, 0xfc, 0xf9, 0x2c, 0xe4, 0x1c, 0xdb, 0xda, 0x73, 0xec, 0x51, 0x8c, 0xf8, 0x1a, + 0x67, 0x00, 0x0e, 0x21, 0x04, 0x57, 0x20, 0x3b, 0xea, 0x42, 0xfc, 0xee, 0xbb, 0x62, 0x7b, 0x88, + 0x15, 0x58, 0x86, 0x49, 0x91, 0xa0, 0x4c, 0xc7, 0x1e, 0x81, 0xe2, 0xf7, 0x38, 0x45, 0x21, 0x02, + 0xe3, 0xd3, 0x08, 0xb0, 0x1f, 0xb4, 0xf0, 0x28, 0x24, 0xaf, 0x8b, 0x69, 0x70, 0x08, 0x77, 0xe5, + 0x36, 0xb6, 0x8d, 0xdd, 0xd1, 0x18, 0xde, 0x10, 0xae, 0x14, 0x18, 0x42, 0x51, 0x85, 0x89, 0xb6, + 0xee, 0xf9, 0xbb, 0xba, 0x35, 0xd2, 0x72, 0xfc, 0x3e, 0xe7, 0xc8, 0x87, 0x20, 0xee, 0x91, 0x8e, + 0x7d, 0x10, 0x9a, 0xaf, 0x0b, 0x8f, 0x44, 0x60, 0x7c, 0xeb, 0xf9, 0x01, 0xbd, 0xd2, 0x3a, 0x08, + 0xdb, 0x1f, 0x88, 0xad, 0xc7, 0xb0, 0xab, 0x51, 0xc6, 0x2b, 0x90, 0xf5, 0xcd, 0x3b, 0x23, 0xd1, + 0xfc, 0xa1, 0x58, 0x69, 0x0a, 0x20, 0xe0, 0x17, 0xe0, 0xd8, 0xd0, 0x32, 0x31, 0x02, 0xd9, 0x1f, + 0x71, 0xb2, 0x23, 0x43, 0x4a, 0x05, 0x4f, 0x09, 0x07, 0xa5, 0xfc, 0x63, 0x91, 0x12, 0x70, 0x1f, + 0xd7, 0x06, 0x39, 0x2b, 0xf8, 0xfa, 0xce, 0xc1, 0xbc, 0xf6, 0x27, 0xc2, 0x6b, 0x0c, 0xdb, 0xe3, + 0xb5, 0x4d, 0x38, 0xc2, 0x19, 0x0f, 0xb6, 0xae, 0x7f, 0x2a, 0x12, 0x2b, 0x43, 0x6f, 0xf5, 0xae, + 0xee, 0xe7, 0x60, 0x36, 0x74, 0xa7, 0x68, 0x4a, 0x7d, 0xad, 0xad, 0xbb, 0x23, 0x30, 0x7f, 0x83, + 0x33, 0x8b, 0x8c, 0x1f, 0x76, 0xb5, 0xfe, 0xaa, 0xee, 0x12, 0xf2, 0xe7, 0xa1, 0x28, 0xc8, 0x3b, + 0xb6, 0x87, 0x0d, 0xa7, 0x65, 0x9b, 0x77, 0x70, 0x73, 0x04, 0xea, 0x3f, 0xeb, 0x5b, 0xaa, 0xad, + 0x08, 0x9c, 0x30, 0xd7, 0x41, 0x0e, 0x7b, 0x15, 0xcd, 0x6c, 0xbb, 0x8e, 0x17, 0xc4, 0x30, 0x7e, + 0x53, 0xac, 0x54, 0x88, 0xab, 0x53, 0x98, 0x52, 0x83, 0x02, 0x7d, 0x1c, 0x35, 0x24, 0xff, 0x9c, + 0x13, 0x4d, 0x74, 0x51, 0x3c, 0x71, 0x18, 0x4e, 0xdb, 0xd5, 0xbd, 0x51, 0xf2, 0xdf, 0x5f, 0x88, + 0xc4, 0xc1, 0x21, 0x3c, 0x71, 0x04, 0x7b, 0x2e, 0x26, 0xd5, 0x7e, 0x04, 0x86, 0x6f, 0x89, 0xc4, + 0x21, 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x23, 0x50, 0xfc, 0xa5, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0x99, + 0x6e, 0xa1, 0xf5, 0x70, 0xcb, 0xf4, 0x03, 0x8f, 0xb5, 0xc2, 0x0f, 0xa7, 0xfa, 0xf6, 0xbb, 0xbd, + 0x4d, 0x98, 0x1a, 0x81, 0x2a, 0xd7, 0x60, 0xb2, 0xaf, 0xc5, 0x40, 0x71, 0xbf, 0x5f, 0x29, 0xfe, + 0xcc, 0xfb, 0x3c, 0x19, 0xf5, 0x76, 0x18, 0xca, 0x0a, 0x59, 0xf7, 0xde, 0x3e, 0x20, 0x9e, 0xec, + 0xa5, 0xf7, 0xc3, 0xa5, 0xef, 0x69, 0x03, 0x94, 0xab, 0x30, 0xd1, 0xd3, 0x03, 0xc4, 0x53, 0xfd, + 0x2c, 0xa7, 0xca, 0x47, 0x5b, 0x00, 0xe5, 0x3c, 0xa4, 0x48, 0x3d, 0x8f, 0x87, 0xff, 0x1c, 0x87, + 0x53, 0x75, 0xe5, 0x93, 0x90, 0x11, 0x75, 0x3c, 0x1e, 0xfa, 0xf3, 0x1c, 0x1a, 0x42, 0x08, 0x5c, + 0xd4, 0xf0, 0x78, 0xf8, 0x2f, 0x08, 0xb8, 0x80, 0x10, 0xf8, 0xe8, 0x2e, 0xfc, 0xce, 0x2f, 0xa5, + 0x78, 0x1e, 0x16, 0xbe, 0xbb, 0x02, 0xe3, 0xbc, 0x78, 0xc7, 0xa3, 0xbf, 0xc0, 0x5f, 0x2e, 0x10, + 0xca, 0x45, 0x48, 0x8f, 0xe8, 0xf0, 0x5f, 0xe6, 0x50, 0xa6, 0xaf, 0x54, 0x21, 0x17, 0x29, 0xd8, + 0xf1, 0xf0, 0x5f, 0xe1, 0xf0, 0x28, 0x8a, 0x98, 0xce, 0x0b, 0x76, 0x3c, 0xc1, 0x17, 0x85, 0xe9, + 0x1c, 0x41, 0xdc, 0x26, 0x6a, 0x75, 0x3c, 0xfa, 0x57, 0x85, 0xd7, 0x05, 0x44, 0x79, 0x16, 0xb2, + 0x61, 0xfe, 0x8d, 0xc7, 0xff, 0x1a, 0xc7, 0x77, 0x31, 0xc4, 0x03, 0x91, 0xfc, 0x1f, 0x4f, 0xf1, + 0xeb, 0xc2, 0x03, 0x11, 0x14, 0xd9, 0x46, 0xfd, 0x35, 0x3d, 0x9e, 0xe9, 0x37, 0xc4, 0x36, 0xea, + 0x2b, 0xe9, 0x64, 0x35, 0x69, 0x1a, 0x8c, 0xa7, 0xf8, 0x4d, 0xb1, 0x9a, 0x54, 0x9f, 0x98, 0xd1, + 0x5f, 0x24, 0xe3, 0x39, 0xbe, 0x24, 0xcc, 0xe8, 0xab, 0x91, 0xca, 0x06, 0xa0, 0xc1, 0x02, 0x19, + 0xcf, 0xf7, 0x65, 0xce, 0x37, 0x35, 0x50, 0x1f, 0x95, 0xe7, 0xe0, 0xc8, 0xf0, 0xe2, 0x18, 0xcf, + 0xfa, 0x95, 0xf7, 0xfb, 0x8e, 0x33, 0xd1, 0xda, 0xa8, 0x6c, 0x76, 0xb3, 0x6c, 0xb4, 0x30, 0xc6, + 0xd3, 0xbe, 0xfc, 0x7e, 0x6f, 0xa2, 0x8d, 0xd6, 0x45, 0xa5, 0x0c, 0xd0, 0xad, 0x49, 0xf1, 0x5c, + 0xaf, 0x70, 0xae, 0x08, 0x88, 0x6c, 0x0d, 0x5e, 0x92, 0xe2, 0xf1, 0x5f, 0x15, 0x5b, 0x83, 0x23, + 0xc8, 0xd6, 0x10, 0xd5, 0x28, 0x1e, 0xfd, 0xaa, 0xd8, 0x1a, 0x02, 0xa2, 0x5c, 0x81, 0x8c, 0xdd, + 0xb1, 0x2c, 0x12, 0x5b, 0xe8, 0xe1, 0x3f, 0xc9, 0x2a, 0xfe, 0xdb, 0x07, 0x1c, 0x2c, 0x00, 0xca, + 0x79, 0x48, 0xe3, 0xf6, 0x36, 0x6e, 0xc6, 0x21, 0xff, 0xfd, 0x03, 0x91, 0x4f, 0x88, 0xb6, 0xf2, + 0x2c, 0x00, 0x3b, 0x4c, 0xd3, 0x0f, 0x45, 0x31, 0xd8, 0xff, 0xf8, 0x80, 0xff, 0x58, 0xa2, 0x0b, + 0xe9, 0x12, 0xb0, 0x9f, 0x5e, 0x3c, 0x9c, 0xe0, 0xdd, 0x5e, 0x02, 0x7a, 0x00, 0xbf, 0x0c, 0xe3, + 0xd7, 0x7d, 0xc7, 0x0e, 0xf4, 0x56, 0x1c, 0xfa, 0x3f, 0x39, 0x5a, 0xe8, 0x13, 0x87, 0xb5, 0x1d, + 0x0f, 0x07, 0x7a, 0xcb, 0x8f, 0xc3, 0xfe, 0x17, 0xc7, 0x86, 0x00, 0x02, 0x36, 0x74, 0x3f, 0x18, + 0x65, 0xde, 0xdf, 0x17, 0x60, 0x01, 0x20, 0x46, 0x93, 0xff, 0x6f, 0xe0, 0xbd, 0x38, 0xec, 0x7b, + 0xc2, 0x68, 0xae, 0xaf, 0x7c, 0x12, 0xb2, 0xe4, 0x5f, 0xf6, 0x0b, 0xa8, 0x18, 0xf0, 0x7f, 0x73, + 0x70, 0x17, 0x41, 0xde, 0xec, 0x07, 0xcd, 0xc0, 0x8c, 0x77, 0xf6, 0xff, 0xf0, 0x95, 0x16, 0xfa, + 0x4a, 0x19, 0x72, 0x7e, 0xd0, 0x6c, 0x76, 0x78, 0x47, 0x13, 0x03, 0xff, 0xdf, 0x0f, 0xc2, 0x43, + 0x6e, 0x88, 0xa9, 0xd4, 0x86, 0xdf, 0xd7, 0xc1, 0xb2, 0xb3, 0xec, 0xb0, 0x9b, 0xba, 0x17, 0x4b, + 0xf1, 0x57, 0x6e, 0xf0, 0x37, 0x29, 0x98, 0xc0, 0xb7, 0xf5, 0xb6, 0x2b, 0x48, 0x50, 0x8a, 0x94, + 0x97, 0xd9, 0x83, 0x5d, 0xd7, 0x95, 0xbe, 0x28, 0x81, 0x54, 0x46, 0x4f, 0x42, 0x6e, 0xa9, 0x5b, + 0xdc, 0xd8, 0xef, 0x5f, 0x2a, 0xa9, 0x7b, 0xf7, 0xe7, 0x0f, 0xa9, 0xd1, 0x01, 0xf4, 0x08, 0x8c, + 0xad, 0x75, 0x7f, 0x43, 0x95, 0xe4, 0x2a, 0x5c, 0x86, 0x14, 0x48, 0xd4, 0xd9, 0xb7, 0xb4, 0x7c, + 0xe5, 0x34, 0x19, 0xf9, 0xc7, 0xfb, 0xf3, 0xfb, 0x4f, 0x85, 0x58, 0xbb, 0xb8, 0xd5, 0x31, 0x9b, + 0x6a, 0xa2, 0xde, 0x54, 0x32, 0xbf, 0xf8, 0xda, 0xfc, 0xa1, 0x37, 0x5e, 0x9b, 0x97, 0x4a, 0x36, + 0x48, 0x15, 0x34, 0x0f, 0x52, 0x99, 0x9a, 0x91, 0x3b, 0x3b, 0xbe, 0x48, 0x35, 0xcb, 0x95, 0x0c, + 0xa1, 0x7c, 0xf3, 0xfe, 0xbc, 0xa4, 0x4a, 0x65, 0x54, 0x01, 0x69, 0x99, 0x5e, 0x39, 0xe7, 0x2b, + 0xe7, 0xf8, 0xab, 0x9e, 0x7e, 0xe8, 0xab, 0xce, 0xb0, 0xfd, 0xb2, 0xb8, 0x65, 0xda, 0xc1, 0x8f, + 0x9d, 0xbd, 0xa4, 0x4a, 0xcb, 0x4a, 0xea, 0x3d, 0xf2, 0xbe, 0xc7, 0x40, 0xaa, 0xa2, 0x39, 0x48, + 0x91, 0xe4, 0x45, 0x5f, 0x99, 0xac, 0xc0, 0x83, 0xfb, 0xf3, 0x63, 0xab, 0x7b, 0x0d, 0xf3, 0x0e, + 0x56, 0xa9, 0xbc, 0x74, 0x11, 0xa4, 0x2d, 0x74, 0x78, 0xd0, 0x28, 0x62, 0xca, 0x61, 0x90, 0x2a, + 0xfc, 0x27, 0x82, 0x5c, 0x5c, 0x51, 0xa5, 0x8a, 0x92, 0xba, 0x47, 0xd8, 0xa7, 0x41, 0xaa, 0x9d, + 0xce, 0x64, 0x24, 0xf6, 0x1d, 0x45, 0x49, 0xdd, 0xfb, 0xda, 0xfc, 0xa1, 0xd2, 0x29, 0x90, 0x54, + 0x34, 0x07, 0xd0, 0xcd, 0xbb, 0x94, 0x76, 0x42, 0x8d, 0x48, 0x94, 0xd4, 0x9b, 0x44, 0xf5, 0x29, + 0xc8, 0x54, 0x75, 0x5f, 0xfc, 0xea, 0x2a, 0x5d, 0xb7, 0x83, 0x67, 0xce, 0x72, 0x2b, 0xb3, 0xff, + 0x77, 0x7f, 0x3e, 0x6d, 0x12, 0x81, 0xca, 0xe4, 0x95, 0xa7, 0xff, 0xe1, 0xed, 0xb9, 0x43, 0x6f, + 0xbd, 0x3d, 0x27, 0xbd, 0xf7, 0xf6, 0x9c, 0xf4, 0x83, 0xb7, 0xe7, 0xa4, 0xbb, 0x0f, 0xe6, 0xa4, + 0x37, 0x1e, 0xcc, 0x49, 0xdf, 0x7e, 0x30, 0x27, 0x7d, 0xe7, 0xc1, 0x9c, 0x74, 0xef, 0xc1, 0x9c, + 0xf4, 0xe6, 0x83, 0x39, 0xe9, 0xad, 0x07, 0x73, 0xd2, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xae, + 0x69, 0x71, 0xec, 0xce, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -964,17 +969,17 @@ func (this *CastType) Equal(that interface{}) bool { } type AFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetDescription() string GetNumber() int64 GetId() github_com_gogo_protobuf_test.Uuid } -func (this *A) Proto() github_com_gogo_protobuf_proto.Message { +func (this *A) Proto() proto.Message { return this } -func (this *A) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *A) TestProto() proto.Message { return NewAFromFace(this) } @@ -1329,24 +1334,6 @@ func (m *CastType) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Example(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 encodeFixed32Example(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 encodeVarintExample(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1427,7 +1414,7 @@ func NewPopulatedE(r randyExample, easy bool) *E { wire = 5 } dAtA := randFieldExample(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } return this @@ -1690,7 +1677,7 @@ func (this *E) String() string { return "nil" } s := strings.Join([]string{`&E{`, - `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -2226,7 +2213,7 @@ func (m *E) Unmarshal(dAtA []byte) error { if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - github_com_gogo_protobuf_proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) + proto.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy]) iNdEx += skippy } else { iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/test/example/examplepb_test.go b/vendor/github.com/gogo/protobuf/test/example/examplepb_test.go index ea17f5f5f..068231783 100644 --- a/vendor/github.com/gogo/protobuf/test/example/examplepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/example/examplepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: example.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -20,13 +19,12 @@ It has these top-level messages: package test import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -37,14 +35,14 @@ var _ = math.Inf func TestAProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -65,13 +63,13 @@ func TestAProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -83,7 +81,7 @@ func TestAMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -98,7 +96,7 @@ func TestAMarshalTo(t *testing.T) { } func BenchmarkAProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*A, 10000) for i := 0; i < 10000; i++ { @@ -106,7 +104,7 @@ func BenchmarkAProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -116,11 +114,11 @@ func BenchmarkAProtoMarshal(b *testing.B) { } func BenchmarkAProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedA(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedA(popr, false)) if err != nil { panic(err) } @@ -130,7 +128,7 @@ func BenchmarkAProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -139,14 +137,14 @@ func BenchmarkAProtoUnmarshal(b *testing.B) { func TestBProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -167,13 +165,13 @@ func TestBProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestBMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -185,7 +183,7 @@ func TestBMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -200,7 +198,7 @@ func TestBMarshalTo(t *testing.T) { } func BenchmarkBProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*B, 10000) for i := 0; i < 10000; i++ { @@ -208,7 +206,7 @@ func BenchmarkBProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -218,11 +216,11 @@ func BenchmarkBProtoMarshal(b *testing.B) { } func BenchmarkBProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedB(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedB(popr, false)) if err != nil { panic(err) } @@ -232,7 +230,7 @@ func BenchmarkBProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -241,14 +239,14 @@ func BenchmarkBProtoUnmarshal(b *testing.B) { func TestCProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -269,13 +267,13 @@ func TestCProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -287,7 +285,7 @@ func TestCMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -302,7 +300,7 @@ func TestCMarshalTo(t *testing.T) { } func BenchmarkCProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*C, 10000) for i := 0; i < 10000; i++ { @@ -310,7 +308,7 @@ func BenchmarkCProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -320,11 +318,11 @@ func BenchmarkCProtoMarshal(b *testing.B) { } func BenchmarkCProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedC(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedC(popr, false)) if err != nil { panic(err) } @@ -334,7 +332,7 @@ func BenchmarkCProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -343,14 +341,14 @@ func BenchmarkCProtoUnmarshal(b *testing.B) { func TestUProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -371,13 +369,13 @@ func TestUProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -389,7 +387,7 @@ func TestUMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -404,7 +402,7 @@ func TestUMarshalTo(t *testing.T) { } func BenchmarkUProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*U, 10000) for i := 0; i < 10000; i++ { @@ -412,7 +410,7 @@ func BenchmarkUProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -422,11 +420,11 @@ func BenchmarkUProtoMarshal(b *testing.B) { } func BenchmarkUProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedU(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedU(popr, false)) if err != nil { panic(err) } @@ -436,7 +434,7 @@ func BenchmarkUProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -445,14 +443,14 @@ func BenchmarkUProtoUnmarshal(b *testing.B) { func TestEProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedE(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &E{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -473,13 +471,13 @@ func TestEProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestEMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedE(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -491,7 +489,7 @@ func TestEMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &E{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -506,7 +504,7 @@ func TestEMarshalTo(t *testing.T) { } func BenchmarkEProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*E, 10000) for i := 0; i < 10000; i++ { @@ -514,7 +512,7 @@ func BenchmarkEProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -524,11 +522,11 @@ func BenchmarkEProtoMarshal(b *testing.B) { } func BenchmarkEProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedE(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedE(popr, false)) if err != nil { panic(err) } @@ -538,7 +536,7 @@ func BenchmarkEProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -547,14 +545,14 @@ func BenchmarkEProtoUnmarshal(b *testing.B) { func TestRProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedR(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &R{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -575,13 +573,13 @@ func TestRProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestRMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedR(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -593,7 +591,7 @@ func TestRMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &R{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -608,7 +606,7 @@ func TestRMarshalTo(t *testing.T) { } func BenchmarkRProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*R, 10000) for i := 0; i < 10000; i++ { @@ -616,7 +614,7 @@ func BenchmarkRProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -626,11 +624,11 @@ func BenchmarkRProtoMarshal(b *testing.B) { } func BenchmarkRProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedR(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedR(popr, false)) if err != nil { panic(err) } @@ -640,7 +638,7 @@ func BenchmarkRProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -649,14 +647,14 @@ func BenchmarkRProtoUnmarshal(b *testing.B) { func TestCastTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CastType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -677,13 +675,13 @@ func TestCastTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCastTypeMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastType(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -695,7 +693,7 @@ func TestCastTypeMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CastType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -710,7 +708,7 @@ func TestCastTypeMarshalTo(t *testing.T) { } func BenchmarkCastTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CastType, 10000) for i := 0; i < 10000; i++ { @@ -718,7 +716,7 @@ func BenchmarkCastTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -728,11 +726,11 @@ func BenchmarkCastTypeProtoMarshal(b *testing.B) { } func BenchmarkCastTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCastType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCastType(popr, false)) if err != nil { panic(err) } @@ -742,7 +740,7 @@ func BenchmarkCastTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -751,15 +749,15 @@ func BenchmarkCastTypeProtoUnmarshal(b *testing.B) { func TestAJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -772,15 +770,15 @@ func TestAJSON(t *testing.T) { } func TestBJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -793,15 +791,15 @@ func TestBJSON(t *testing.T) { } func TestCJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -814,15 +812,15 @@ func TestCJSON(t *testing.T) { } func TestUJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -835,15 +833,15 @@ func TestUJSON(t *testing.T) { } func TestEJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedE(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &E{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -856,15 +854,15 @@ func TestEJSON(t *testing.T) { } func TestRJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedR(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &R{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -877,15 +875,15 @@ func TestRJSON(t *testing.T) { } func TestCastTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CastType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -898,11 +896,11 @@ func TestCastTypeJSON(t *testing.T) { } func TestAProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -915,11 +913,11 @@ func TestAProtoText(t *testing.T) { func TestAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -932,11 +930,11 @@ func TestAProtoCompactText(t *testing.T) { func TestBProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &B{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -949,11 +947,11 @@ func TestBProtoText(t *testing.T) { func TestBProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &B{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -966,11 +964,11 @@ func TestBProtoCompactText(t *testing.T) { func TestCProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &C{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -983,11 +981,11 @@ func TestCProtoText(t *testing.T) { func TestCProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &C{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1000,11 +998,11 @@ func TestCProtoCompactText(t *testing.T) { func TestUProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &U{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1017,11 +1015,11 @@ func TestUProtoText(t *testing.T) { func TestUProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &U{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1034,11 +1032,11 @@ func TestUProtoCompactText(t *testing.T) { func TestEProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedE(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &E{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1051,11 +1049,11 @@ func TestEProtoText(t *testing.T) { func TestEProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedE(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &E{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1068,11 +1066,11 @@ func TestEProtoCompactText(t *testing.T) { func TestRProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedR(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &R{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1085,11 +1083,11 @@ func TestRProtoText(t *testing.T) { func TestRProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedR(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &R{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1102,11 +1100,11 @@ func TestRProtoCompactText(t *testing.T) { func TestCastTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CastType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1119,11 +1117,11 @@ func TestCastTypeProtoText(t *testing.T) { func TestCastTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CastType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1138,14 +1136,14 @@ func TestExampleDescription(t *testing.T) { ExampleDescription() } func TestAVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1153,14 +1151,14 @@ func TestAVerboseEqual(t *testing.T) { } } func TestBVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedB(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1168,14 +1166,14 @@ func TestBVerboseEqual(t *testing.T) { } } func TestCVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedC(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1183,14 +1181,14 @@ func TestCVerboseEqual(t *testing.T) { } } func TestUVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedU(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1198,14 +1196,14 @@ func TestUVerboseEqual(t *testing.T) { } } func TestEVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedE(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &E{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1213,14 +1211,14 @@ func TestEVerboseEqual(t *testing.T) { } } func TestRVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedR(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &R{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1228,14 +1226,14 @@ func TestRVerboseEqual(t *testing.T) { } } func TestCastTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CastType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1243,7 +1241,7 @@ func TestCastTypeVerboseEqual(t *testing.T) { } } func TestAFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1251,102 +1249,102 @@ func TestAFace(t *testing.T) { } } func TestAGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestBGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedB(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedC(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedU(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestEGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedE(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestRGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedR(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCastTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestASize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1357,14 +1355,14 @@ func TestASize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkASize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*A, 1000) for i := 0; i < 1000; i++ { @@ -1379,10 +1377,10 @@ func BenchmarkASize(b *testing.B) { func TestBSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1393,14 +1391,14 @@ func TestBSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkBSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*B, 1000) for i := 0; i < 1000; i++ { @@ -1415,10 +1413,10 @@ func BenchmarkBSize(b *testing.B) { func TestCSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1429,14 +1427,14 @@ func TestCSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*C, 1000) for i := 0; i < 1000; i++ { @@ -1451,10 +1449,10 @@ func BenchmarkCSize(b *testing.B) { func TestUSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1465,14 +1463,14 @@ func TestUSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*U, 1000) for i := 0; i < 1000; i++ { @@ -1487,10 +1485,10 @@ func BenchmarkUSize(b *testing.B) { func TestESize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedE(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1501,14 +1499,14 @@ func TestESize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkESize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*E, 1000) for i := 0; i < 1000; i++ { @@ -1523,10 +1521,10 @@ func BenchmarkESize(b *testing.B) { func TestRSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedR(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1537,14 +1535,14 @@ func TestRSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*R, 1000) for i := 0; i < 1000; i++ { @@ -1559,10 +1557,10 @@ func BenchmarkRSize(b *testing.B) { func TestCastTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCastType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1573,14 +1571,14 @@ func TestCastTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCastTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CastType, 1000) for i := 0; i < 1000; i++ { @@ -1594,7 +1592,7 @@ func BenchmarkCastTypeSize(b *testing.B) { } func TestAStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1603,7 +1601,7 @@ func TestAStringer(t *testing.T) { } } func TestBStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedB(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1612,7 +1610,7 @@ func TestBStringer(t *testing.T) { } } func TestCStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedC(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1621,7 +1619,7 @@ func TestCStringer(t *testing.T) { } } func TestUStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedU(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1630,7 +1628,7 @@ func TestUStringer(t *testing.T) { } } func TestEStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedE(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1639,7 +1637,7 @@ func TestEStringer(t *testing.T) { } } func TestRStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedR(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1648,7 +1646,7 @@ func TestRStringer(t *testing.T) { } } func TestCastTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCastType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1657,7 +1655,7 @@ func TestCastTypeStringer(t *testing.T) { } } func TestUOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedU(popr, true) v := p.GetValue() msg := &U{} diff --git a/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go b/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go index ae12f2969..16c13d92d 100644 --- a/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go +++ b/vendor/github.com/gogo/protobuf/test/filedotname/file.dot.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: file.dot.proto -// DO NOT EDIT! /* Package filedotname is a generated protocol buffer package. @@ -18,11 +17,10 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" @@ -50,253 +48,260 @@ func (*M) Descriptor() ([]byte, []int) { return fileDescriptorFileDot, []int{0} func init() { proto.RegisterType((*M)(nil), "filedotname.M") } -func (this *M) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *M) Description() (desc *descriptor.FileDescriptorSet) { return FileDotDescription() } -func FileDotDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func FileDotDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3657 bytes of a gzipped FileDescriptorSet + // 3767 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, - 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x29, 0x88, 0x8e, 0x21, 0x8a, 0xb1, - 0x63, 0xda, 0x6e, 0xa8, 0x8c, 0x6c, 0xc9, 0xf2, 0xaa, 0x89, 0x06, 0x04, 0x21, 0x06, 0x2a, 0x49, - 0x20, 0x0b, 0x32, 0x96, 0xd2, 0x87, 0x9d, 0xe5, 0xee, 0x05, 0xb8, 0xd2, 0x62, 0x17, 0xd9, 0x5d, - 0x48, 0xa2, 0x9e, 0xd4, 0x71, 0x7f, 0x26, 0xd3, 0xe9, 0x7f, 0x67, 0x9a, 0xb8, 0x8e, 0xdb, 0x66, - 0xa6, 0x75, 0x9a, 0x34, 0x6d, 0xd2, 0x9f, 0x34, 0xd3, 0xa7, 0xbc, 0xa4, 0xf5, 0x53, 0x27, 0x79, - 0xeb, 0x43, 0x1f, 0x2c, 0xc6, 0x33, 0x75, 0x5b, 0xb5, 0x75, 0x1b, 0xcd, 0x34, 0x33, 0x7a, 0xc9, - 0xdc, 0xbf, 0xc5, 0x2e, 0x00, 0x72, 0xc1, 0xcc, 0x38, 0x7e, 0x22, 0xef, 0xb9, 0xe7, 0xfb, 0xf6, - 0xec, 0xb9, 0xe7, 0x9e, 0x73, 0xee, 0x5d, 0xc0, 0x0f, 0x2f, 0xc0, 0x52, 0xdb, 0x71, 0xda, 0x16, - 0x3a, 0xd7, 0x75, 0x1d, 0xdf, 0xd9, 0xeb, 0xb5, 0xce, 0x19, 0xc8, 0xd3, 0x5d, 0xb3, 0xeb, 0x3b, - 0xee, 0x2a, 0x91, 0x49, 0x33, 0x54, 0x63, 0x95, 0x6b, 0x2c, 0x6f, 0xc1, 0xec, 0x55, 0xd3, 0x42, - 0xeb, 0x81, 0x62, 0x13, 0xf9, 0xd2, 0x25, 0x48, 0xb5, 0x4c, 0x0b, 0x15, 0x85, 0xa5, 0xe4, 0x4a, - 0xee, 0xfc, 0xd3, 0xab, 0x03, 0xa0, 0xd5, 0x28, 0xa2, 0x81, 0xc5, 0x0a, 0x41, 0x2c, 0xbf, 0x9b, - 0x82, 0xb9, 0x11, 0xb3, 0x92, 0x04, 0x29, 0x5b, 0xeb, 0x60, 0x46, 0x61, 0x25, 0xab, 0x90, 0xff, - 0xa5, 0x22, 0x4c, 0x75, 0x35, 0xfd, 0x96, 0xd6, 0x46, 0xc5, 0x04, 0x11, 0xf3, 0xa1, 0x54, 0x02, - 0x30, 0x50, 0x17, 0xd9, 0x06, 0xb2, 0xf5, 0x83, 0x62, 0x72, 0x29, 0xb9, 0x92, 0x55, 0x42, 0x12, - 0xe9, 0x05, 0x98, 0xed, 0xf6, 0xf6, 0x2c, 0x53, 0x57, 0x43, 0x6a, 0xb0, 0x94, 0x5c, 0x49, 0x2b, - 0x22, 0x9d, 0x58, 0xef, 0x2b, 0x3f, 0x0b, 0x33, 0x77, 0x90, 0x76, 0x2b, 0xac, 0x9a, 0x23, 0xaa, - 0x05, 0x2c, 0x0e, 0x29, 0x56, 0x20, 0xdf, 0x41, 0x9e, 0xa7, 0xb5, 0x91, 0xea, 0x1f, 0x74, 0x51, - 0x31, 0x45, 0xde, 0x7e, 0x69, 0xe8, 0xed, 0x07, 0xdf, 0x3c, 0xc7, 0x50, 0x3b, 0x07, 0x5d, 0x24, - 0x95, 0x21, 0x8b, 0xec, 0x5e, 0x87, 0x32, 0xa4, 0x8f, 0xf0, 0x5f, 0xd5, 0xee, 0x75, 0x06, 0x59, - 0x32, 0x18, 0xc6, 0x28, 0xa6, 0x3c, 0xe4, 0xde, 0x36, 0x75, 0x54, 0x9c, 0x24, 0x04, 0xcf, 0x0e, - 0x11, 0x34, 0xe9, 0xfc, 0x20, 0x07, 0xc7, 0x49, 0x15, 0xc8, 0xa2, 0xbb, 0x3e, 0xb2, 0x3d, 0xd3, - 0xb1, 0x8b, 0x53, 0x84, 0xe4, 0x99, 0x11, 0xab, 0x88, 0x2c, 0x63, 0x90, 0xa2, 0x8f, 0x93, 0x2e, - 0xc2, 0x94, 0xd3, 0xf5, 0x4d, 0xc7, 0xf6, 0x8a, 0x99, 0x25, 0x61, 0x25, 0x77, 0xfe, 0x23, 0x23, - 0x03, 0xa1, 0x4e, 0x75, 0x14, 0xae, 0x2c, 0xd5, 0x40, 0xf4, 0x9c, 0x9e, 0xab, 0x23, 0x55, 0x77, - 0x0c, 0xa4, 0x9a, 0x76, 0xcb, 0x29, 0x66, 0x09, 0xc1, 0x99, 0xe1, 0x17, 0x21, 0x8a, 0x15, 0xc7, - 0x40, 0x35, 0xbb, 0xe5, 0x28, 0x05, 0x2f, 0x32, 0x96, 0x16, 0x60, 0xd2, 0x3b, 0xb0, 0x7d, 0xed, - 0x6e, 0x31, 0x4f, 0x22, 0x84, 0x8d, 0x96, 0xff, 0x3f, 0x0d, 0x33, 0xe3, 0x84, 0xd8, 0x65, 0x48, - 0xb7, 0xf0, 0x5b, 0x16, 0x13, 0x27, 0xf1, 0x01, 0xc5, 0x44, 0x9d, 0x38, 0xf9, 0x53, 0x3a, 0xb1, - 0x0c, 0x39, 0x1b, 0x79, 0x3e, 0x32, 0x68, 0x44, 0x24, 0xc7, 0x8c, 0x29, 0xa0, 0xa0, 0xe1, 0x90, - 0x4a, 0xfd, 0x54, 0x21, 0x75, 0x1d, 0x66, 0x02, 0x93, 0x54, 0x57, 0xb3, 0xdb, 0x3c, 0x36, 0xcf, - 0xc5, 0x59, 0xb2, 0x5a, 0xe5, 0x38, 0x05, 0xc3, 0x94, 0x02, 0x8a, 0x8c, 0xa5, 0x75, 0x00, 0xc7, - 0x46, 0x4e, 0x4b, 0x35, 0x90, 0x6e, 0x15, 0x33, 0x47, 0x78, 0xa9, 0x8e, 0x55, 0x86, 0xbc, 0xe4, - 0x50, 0xa9, 0x6e, 0x49, 0xaf, 0xf4, 0x43, 0x6d, 0xea, 0x88, 0x48, 0xd9, 0xa2, 0x9b, 0x6c, 0x28, - 0xda, 0x76, 0xa1, 0xe0, 0x22, 0x1c, 0xf7, 0xc8, 0x60, 0x6f, 0x96, 0x25, 0x46, 0xac, 0xc6, 0xbe, - 0x99, 0xc2, 0x60, 0xf4, 0xc5, 0xa6, 0xdd, 0xf0, 0x50, 0xfa, 0x28, 0x04, 0x02, 0x95, 0x84, 0x15, - 0x90, 0x2c, 0x94, 0xe7, 0xc2, 0x6d, 0xad, 0x83, 0x16, 0x2f, 0x41, 0x21, 0xea, 0x1e, 0x69, 0x1e, - 0xd2, 0x9e, 0xaf, 0xb9, 0x3e, 0x89, 0xc2, 0xb4, 0x42, 0x07, 0x92, 0x08, 0x49, 0x64, 0x1b, 0x24, - 0xcb, 0xa5, 0x15, 0xfc, 0xef, 0xe2, 0xcb, 0x30, 0x1d, 0x79, 0xfc, 0xb8, 0xc0, 0xe5, 0x2f, 0x4e, - 0xc2, 0xfc, 0xa8, 0x98, 0x1b, 0x19, 0xfe, 0x0b, 0x30, 0x69, 0xf7, 0x3a, 0x7b, 0xc8, 0x2d, 0x26, - 0x09, 0x03, 0x1b, 0x49, 0x65, 0x48, 0x5b, 0xda, 0x1e, 0xb2, 0x8a, 0xa9, 0x25, 0x61, 0xa5, 0x70, - 0xfe, 0x85, 0xb1, 0xa2, 0x7a, 0x75, 0x13, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x05, 0x29, 0x96, 0xe2, - 0x30, 0xc3, 0xf3, 0xe3, 0x31, 0xe0, 0x58, 0x54, 0x08, 0x4e, 0x7a, 0x12, 0xb2, 0xf8, 0x2f, 0xf5, - 0xed, 0x24, 0xb1, 0x39, 0x83, 0x05, 0xd8, 0xaf, 0xd2, 0x22, 0x64, 0x48, 0x98, 0x19, 0x88, 0x97, - 0x86, 0x60, 0x8c, 0x17, 0xc6, 0x40, 0x2d, 0xad, 0x67, 0xf9, 0xea, 0x6d, 0xcd, 0xea, 0x21, 0x12, - 0x30, 0x59, 0x25, 0xcf, 0x84, 0x9f, 0xc5, 0x32, 0xe9, 0x0c, 0xe4, 0x68, 0x54, 0x9a, 0xb6, 0x81, - 0xee, 0x92, 0xec, 0x93, 0x56, 0x68, 0xa0, 0xd6, 0xb0, 0x04, 0x3f, 0xfe, 0xa6, 0xe7, 0xd8, 0x7c, - 0x69, 0xc9, 0x23, 0xb0, 0x80, 0x3c, 0xfe, 0xe5, 0xc1, 0xc4, 0xf7, 0xd4, 0xe8, 0xd7, 0x1b, 0x8c, - 0xc5, 0xe5, 0x6f, 0x27, 0x20, 0x45, 0xf6, 0xdb, 0x0c, 0xe4, 0x76, 0x6e, 0x34, 0xaa, 0xea, 0x7a, - 0x7d, 0x77, 0x6d, 0xb3, 0x2a, 0x0a, 0x52, 0x01, 0x80, 0x08, 0xae, 0x6e, 0xd6, 0xcb, 0x3b, 0x62, - 0x22, 0x18, 0xd7, 0xb6, 0x77, 0x2e, 0xbe, 0x24, 0x26, 0x03, 0xc0, 0x2e, 0x15, 0xa4, 0xc2, 0x0a, - 0x2f, 0x9e, 0x17, 0xd3, 0x92, 0x08, 0x79, 0x4a, 0x50, 0xbb, 0x5e, 0x5d, 0xbf, 0xf8, 0x92, 0x38, - 0x19, 0x95, 0xbc, 0x78, 0x5e, 0x9c, 0x92, 0xa6, 0x21, 0x4b, 0x24, 0x6b, 0xf5, 0xfa, 0xa6, 0x98, - 0x09, 0x38, 0x9b, 0x3b, 0x4a, 0x6d, 0x7b, 0x43, 0xcc, 0x06, 0x9c, 0x1b, 0x4a, 0x7d, 0xb7, 0x21, - 0x42, 0xc0, 0xb0, 0x55, 0x6d, 0x36, 0xcb, 0x1b, 0x55, 0x31, 0x17, 0x68, 0xac, 0xdd, 0xd8, 0xa9, - 0x36, 0xc5, 0x7c, 0xc4, 0xac, 0x17, 0xcf, 0x8b, 0xd3, 0xc1, 0x23, 0xaa, 0xdb, 0xbb, 0x5b, 0x62, - 0x41, 0x9a, 0x85, 0x69, 0xfa, 0x08, 0x6e, 0xc4, 0xcc, 0x80, 0xe8, 0xe2, 0x4b, 0xa2, 0xd8, 0x37, - 0x84, 0xb2, 0xcc, 0x46, 0x04, 0x17, 0x5f, 0x12, 0xa5, 0xe5, 0x0a, 0xa4, 0x49, 0x74, 0x49, 0x12, - 0x14, 0x36, 0xcb, 0x6b, 0xd5, 0x4d, 0xb5, 0xde, 0xd8, 0xa9, 0xd5, 0xb7, 0xcb, 0x9b, 0xa2, 0xd0, - 0x97, 0x29, 0xd5, 0xcf, 0xec, 0xd6, 0x94, 0xea, 0xba, 0x98, 0x08, 0xcb, 0x1a, 0xd5, 0xf2, 0x4e, - 0x75, 0x5d, 0x4c, 0x2e, 0xeb, 0x30, 0x3f, 0x2a, 0xcf, 0x8c, 0xdc, 0x19, 0xa1, 0x25, 0x4e, 0x1c, - 0xb1, 0xc4, 0x84, 0x6b, 0x68, 0x89, 0xbf, 0x22, 0xc0, 0xdc, 0x88, 0x5c, 0x3b, 0xf2, 0x21, 0x57, - 0x20, 0x4d, 0x43, 0x94, 0x56, 0x9f, 0xe7, 0x46, 0x26, 0x6d, 0x12, 0xb0, 0x43, 0x15, 0x88, 0xe0, - 0xc2, 0x15, 0x38, 0x79, 0x44, 0x05, 0xc6, 0x14, 0x43, 0x46, 0xbe, 0x26, 0x40, 0xf1, 0x28, 0xee, - 0x98, 0x44, 0x91, 0x88, 0x24, 0x8a, 0xcb, 0x83, 0x06, 0x9c, 0x3d, 0xfa, 0x1d, 0x86, 0xac, 0x78, - 0x4b, 0x80, 0x85, 0xd1, 0x8d, 0xca, 0x48, 0x1b, 0x3e, 0x05, 0x93, 0x1d, 0xe4, 0xef, 0x3b, 0xbc, - 0x58, 0x7f, 0x6c, 0x44, 0x09, 0xc0, 0xd3, 0x83, 0xbe, 0x62, 0xa8, 0x70, 0x0d, 0x49, 0x1e, 0xd5, - 0x6d, 0x50, 0x6b, 0x86, 0x2c, 0xfd, 0x42, 0x02, 0x9e, 0x18, 0x49, 0x3e, 0xd2, 0xd0, 0xa7, 0x00, - 0x4c, 0xbb, 0xdb, 0xf3, 0x69, 0x41, 0xa6, 0xf9, 0x29, 0x4b, 0x24, 0x64, 0xef, 0xe3, 0xdc, 0xd3, - 0xf3, 0x83, 0xf9, 0x24, 0x99, 0x07, 0x2a, 0x22, 0x0a, 0x97, 0xfa, 0x86, 0xa6, 0x88, 0xa1, 0xa5, - 0x23, 0xde, 0x74, 0xa8, 0xd6, 0x7d, 0x02, 0x44, 0xdd, 0x32, 0x91, 0xed, 0xab, 0x9e, 0xef, 0x22, - 0xad, 0x63, 0xda, 0x6d, 0x92, 0x80, 0x33, 0x72, 0xba, 0xa5, 0x59, 0x1e, 0x52, 0x66, 0xe8, 0x74, - 0x93, 0xcf, 0x62, 0x04, 0xa9, 0x32, 0x6e, 0x08, 0x31, 0x19, 0x41, 0xd0, 0xe9, 0x00, 0xb1, 0xfc, - 0xf5, 0x29, 0xc8, 0x85, 0xda, 0x3a, 0xe9, 0x2c, 0xe4, 0x6f, 0x6a, 0xb7, 0x35, 0x95, 0xb7, 0xea, - 0xd4, 0x13, 0x39, 0x2c, 0x6b, 0xb0, 0x76, 0xfd, 0x13, 0x30, 0x4f, 0x54, 0x9c, 0x9e, 0x8f, 0x5c, - 0x55, 0xb7, 0x34, 0xcf, 0x23, 0x4e, 0xcb, 0x10, 0x55, 0x09, 0xcf, 0xd5, 0xf1, 0x54, 0x85, 0xcf, - 0x48, 0x17, 0x60, 0x8e, 0x20, 0x3a, 0x3d, 0xcb, 0x37, 0xbb, 0x16, 0x52, 0xf1, 0xe1, 0xc1, 0x23, - 0x89, 0x38, 0xb0, 0x6c, 0x16, 0x6b, 0x6c, 0x31, 0x05, 0x6c, 0x91, 0x27, 0xad, 0xc3, 0x53, 0x04, - 0xd6, 0x46, 0x36, 0x72, 0x35, 0x1f, 0xa9, 0xe8, 0xf3, 0x3d, 0xcd, 0xf2, 0x54, 0xcd, 0x36, 0xd4, - 0x7d, 0xcd, 0xdb, 0x2f, 0xce, 0x63, 0x82, 0xb5, 0x44, 0x51, 0x50, 0x4e, 0x63, 0xc5, 0x0d, 0xa6, - 0x57, 0x25, 0x6a, 0x65, 0xdb, 0xf8, 0xb4, 0xe6, 0xed, 0x4b, 0x32, 0x2c, 0x10, 0x16, 0xcf, 0x77, - 0x4d, 0xbb, 0xad, 0xea, 0xfb, 0x48, 0xbf, 0xa5, 0xf6, 0xfc, 0xd6, 0xa5, 0xe2, 0x93, 0xe1, 0xe7, - 0x13, 0x0b, 0x9b, 0x44, 0xa7, 0x82, 0x55, 0x76, 0xfd, 0xd6, 0x25, 0xa9, 0x09, 0x79, 0xbc, 0x18, - 0x1d, 0xf3, 0x1e, 0x52, 0x5b, 0x8e, 0x4b, 0x2a, 0x4b, 0x61, 0xc4, 0xce, 0x0e, 0x79, 0x70, 0xb5, - 0xce, 0x00, 0x5b, 0x8e, 0x81, 0xe4, 0x74, 0xb3, 0x51, 0xad, 0xae, 0x2b, 0x39, 0xce, 0x72, 0xd5, - 0x71, 0x71, 0x40, 0xb5, 0x9d, 0xc0, 0xc1, 0x39, 0x1a, 0x50, 0x6d, 0x87, 0xbb, 0xf7, 0x02, 0xcc, - 0xe9, 0x3a, 0x7d, 0x67, 0x53, 0x57, 0x59, 0x8b, 0xef, 0x15, 0xc5, 0x88, 0xb3, 0x74, 0x7d, 0x83, - 0x2a, 0xb0, 0x18, 0xf7, 0xa4, 0x57, 0xe0, 0x89, 0xbe, 0xb3, 0xc2, 0xc0, 0xd9, 0xa1, 0xb7, 0x1c, - 0x84, 0x5e, 0x80, 0xb9, 0xee, 0xc1, 0x30, 0x50, 0x8a, 0x3c, 0xb1, 0x7b, 0x30, 0x08, 0x7b, 0x86, - 0x1c, 0xdb, 0x5c, 0xa4, 0x6b, 0x3e, 0x32, 0x8a, 0xa7, 0xc2, 0xda, 0xa1, 0x09, 0xe9, 0x1c, 0x88, - 0xba, 0xae, 0x22, 0x5b, 0xdb, 0xb3, 0x90, 0xaa, 0xb9, 0xc8, 0xd6, 0xbc, 0xe2, 0x99, 0xb0, 0x72, - 0x41, 0xd7, 0xab, 0x64, 0xb6, 0x4c, 0x26, 0xa5, 0xe7, 0x61, 0xd6, 0xd9, 0xbb, 0xa9, 0xd3, 0xc8, - 0x52, 0xbb, 0x2e, 0x6a, 0x99, 0x77, 0x8b, 0x4f, 0x13, 0x37, 0xcd, 0xe0, 0x09, 0x12, 0x57, 0x0d, - 0x22, 0x96, 0x9e, 0x03, 0x51, 0xf7, 0xf6, 0x35, 0xb7, 0x4b, 0x4a, 0xbb, 0xd7, 0xd5, 0x74, 0x54, - 0x7c, 0x86, 0xaa, 0x52, 0xf9, 0x36, 0x17, 0xe3, 0xc8, 0xf6, 0xee, 0x98, 0x2d, 0x9f, 0x33, 0x3e, - 0x4b, 0x23, 0x9b, 0xc8, 0x18, 0xdb, 0x75, 0x98, 0xef, 0xd9, 0xa6, 0xed, 0x23, 0xb7, 0xeb, 0x22, - 0xdc, 0xc4, 0xd3, 0x9d, 0x58, 0xfc, 0xb7, 0xa9, 0x23, 0xda, 0xf0, 0xdd, 0xb0, 0x36, 0x0d, 0x00, - 0x65, 0xae, 0x37, 0x2c, 0x5c, 0x96, 0x21, 0x1f, 0x8e, 0x0b, 0x29, 0x0b, 0x34, 0x32, 0x44, 0x01, - 0xd7, 0xd8, 0x4a, 0x7d, 0x1d, 0x57, 0xc7, 0xcf, 0x55, 0xc5, 0x04, 0xae, 0xd2, 0x9b, 0xb5, 0x9d, - 0xaa, 0xaa, 0xec, 0x6e, 0xef, 0xd4, 0xb6, 0xaa, 0x62, 0xf2, 0xf9, 0x6c, 0xe6, 0xbd, 0x29, 0xf1, - 0xfe, 0xfd, 0xfb, 0xf7, 0x13, 0xcb, 0xdf, 0x4b, 0x40, 0x21, 0xda, 0x19, 0x4b, 0x3f, 0x0f, 0xa7, - 0xf8, 0x31, 0xd6, 0x43, 0xbe, 0x7a, 0xc7, 0x74, 0x49, 0xa8, 0x76, 0x34, 0xda, 0x5b, 0x06, 0x5e, - 0x9e, 0x67, 0x5a, 0x4d, 0xe4, 0xbf, 0x6a, 0xba, 0x38, 0x10, 0x3b, 0x9a, 0x2f, 0x6d, 0xc2, 0x19, - 0xdb, 0x51, 0x3d, 0x5f, 0xb3, 0x0d, 0xcd, 0x35, 0xd4, 0xfe, 0x05, 0x82, 0xaa, 0xe9, 0x3a, 0xf2, - 0x3c, 0x87, 0x96, 0x88, 0x80, 0xe5, 0x23, 0xb6, 0xd3, 0x64, 0xca, 0xfd, 0xdc, 0x59, 0x66, 0xaa, - 0x03, 0x11, 0x91, 0x3c, 0x2a, 0x22, 0x9e, 0x84, 0x6c, 0x47, 0xeb, 0xaa, 0xc8, 0xf6, 0xdd, 0x03, - 0xd2, 0xcf, 0x65, 0x94, 0x4c, 0x47, 0xeb, 0x56, 0xf1, 0xf8, 0x83, 0x5b, 0x83, 0xb0, 0x1f, 0xff, - 0x35, 0x09, 0xf9, 0x70, 0x4f, 0x87, 0x5b, 0x64, 0x9d, 0xe4, 0x6f, 0x81, 0xec, 0xf0, 0x8f, 0x1e, - 0xdb, 0x01, 0xae, 0x56, 0x70, 0x62, 0x97, 0x27, 0x69, 0xa7, 0xa5, 0x50, 0x24, 0x2e, 0xaa, 0x78, - 0x4f, 0x23, 0xda, 0xbf, 0x67, 0x14, 0x36, 0x92, 0x36, 0x60, 0xf2, 0xa6, 0x47, 0xb8, 0x27, 0x09, - 0xf7, 0xd3, 0xc7, 0x73, 0x5f, 0x6b, 0x12, 0xf2, 0xec, 0xb5, 0xa6, 0xba, 0x5d, 0x57, 0xb6, 0xca, - 0x9b, 0x0a, 0x83, 0x4b, 0xa7, 0x21, 0x65, 0x69, 0xf7, 0x0e, 0xa2, 0x25, 0x80, 0x88, 0xc6, 0x75, - 0xfc, 0x69, 0x48, 0xdd, 0x41, 0xda, 0xad, 0x68, 0xe2, 0x25, 0xa2, 0x0f, 0x30, 0xf4, 0xcf, 0x41, - 0x9a, 0xf8, 0x4b, 0x02, 0x60, 0x1e, 0x13, 0x27, 0xa4, 0x0c, 0xa4, 0x2a, 0x75, 0x05, 0x87, 0xbf, - 0x08, 0x79, 0x2a, 0x55, 0x1b, 0xb5, 0x6a, 0xa5, 0x2a, 0x26, 0x96, 0x2f, 0xc0, 0x24, 0x75, 0x02, - 0xde, 0x1a, 0x81, 0x1b, 0xc4, 0x09, 0x36, 0x64, 0x1c, 0x02, 0x9f, 0xdd, 0xdd, 0x5a, 0xab, 0x2a, - 0x62, 0x22, 0xbc, 0xbc, 0x1e, 0xe4, 0xc3, 0xed, 0xdc, 0xcf, 0x26, 0xa6, 0xfe, 0x41, 0x80, 0x5c, - 0xa8, 0x3d, 0xc3, 0x8d, 0x81, 0x66, 0x59, 0xce, 0x1d, 0x55, 0xb3, 0x4c, 0xcd, 0x63, 0x41, 0x01, - 0x44, 0x54, 0xc6, 0x92, 0x71, 0x17, 0xed, 0x67, 0x62, 0xfc, 0x9b, 0x02, 0x88, 0x83, 0xad, 0xdd, - 0x80, 0x81, 0xc2, 0x87, 0x6a, 0xe0, 0x1b, 0x02, 0x14, 0xa2, 0xfd, 0xdc, 0x80, 0x79, 0x67, 0x3f, - 0x54, 0xf3, 0xde, 0x49, 0xc0, 0x74, 0xa4, 0x8b, 0x1b, 0xd7, 0xba, 0xcf, 0xc3, 0xac, 0x69, 0xa0, - 0x4e, 0xd7, 0xf1, 0x91, 0xad, 0x1f, 0xa8, 0x16, 0xba, 0x8d, 0xac, 0xe2, 0x32, 0x49, 0x14, 0xe7, - 0x8e, 0xef, 0x13, 0x57, 0x6b, 0x7d, 0xdc, 0x26, 0x86, 0xc9, 0x73, 0xb5, 0xf5, 0xea, 0x56, 0xa3, - 0xbe, 0x53, 0xdd, 0xae, 0xdc, 0x50, 0x77, 0xb7, 0x7f, 0x61, 0xbb, 0xfe, 0xea, 0xb6, 0x22, 0x9a, - 0x03, 0x6a, 0x1f, 0xe0, 0x56, 0x6f, 0x80, 0x38, 0x68, 0x94, 0x74, 0x0a, 0x46, 0x99, 0x25, 0x4e, - 0x48, 0x73, 0x30, 0xb3, 0x5d, 0x57, 0x9b, 0xb5, 0xf5, 0xaa, 0x5a, 0xbd, 0x7a, 0xb5, 0x5a, 0xd9, - 0x69, 0xd2, 0x83, 0x73, 0xa0, 0xbd, 0x13, 0xdd, 0xd4, 0xaf, 0x27, 0x61, 0x6e, 0x84, 0x25, 0x52, - 0x99, 0xf5, 0xec, 0xf4, 0x18, 0xf1, 0xf1, 0x71, 0xac, 0x5f, 0xc5, 0x5d, 0x41, 0x43, 0x73, 0x7d, - 0xd6, 0xe2, 0x3f, 0x07, 0xd8, 0x4b, 0xb6, 0x6f, 0xb6, 0x4c, 0xe4, 0xb2, 0x7b, 0x06, 0xda, 0xc8, - 0xcf, 0xf4, 0xe5, 0xf4, 0xaa, 0xe1, 0xe7, 0x40, 0xea, 0x3a, 0x9e, 0xe9, 0x9b, 0xb7, 0x91, 0x6a, - 0xda, 0xfc, 0x52, 0x02, 0x37, 0xf6, 0x29, 0x45, 0xe4, 0x33, 0x35, 0xdb, 0x0f, 0xb4, 0x6d, 0xd4, - 0xd6, 0x06, 0xb4, 0x71, 0x02, 0x4f, 0x2a, 0x22, 0x9f, 0x09, 0xb4, 0xcf, 0x42, 0xde, 0x70, 0x7a, - 0xb8, 0x4d, 0xa2, 0x7a, 0xb8, 0x5e, 0x08, 0x4a, 0x8e, 0xca, 0x02, 0x15, 0xd6, 0xc7, 0xf6, 0x6f, - 0x43, 0xf2, 0x4a, 0x8e, 0xca, 0xa8, 0xca, 0xb3, 0x30, 0xa3, 0xb5, 0xdb, 0x2e, 0x26, 0xe7, 0x44, - 0xb4, 0x33, 0x2f, 0x04, 0x62, 0xa2, 0xb8, 0x78, 0x0d, 0x32, 0xdc, 0x0f, 0xb8, 0x24, 0x63, 0x4f, - 0xa8, 0x5d, 0x7a, 0x27, 0x95, 0x58, 0xc9, 0x2a, 0x19, 0x9b, 0x4f, 0x9e, 0x85, 0xbc, 0xe9, 0xa9, - 0xfd, 0xcb, 0xd1, 0xc4, 0x52, 0x62, 0x25, 0xa3, 0xe4, 0x4c, 0x2f, 0xb8, 0x0d, 0x5b, 0x7e, 0x2b, - 0x01, 0x85, 0xe8, 0xe5, 0xae, 0xb4, 0x0e, 0x19, 0xcb, 0xd1, 0x35, 0x12, 0x5a, 0xf4, 0xcb, 0xc2, - 0x4a, 0xcc, 0x7d, 0xf0, 0xea, 0x26, 0xd3, 0x57, 0x02, 0xe4, 0xe2, 0x3f, 0x0b, 0x90, 0xe1, 0x62, - 0x69, 0x01, 0x52, 0x5d, 0xcd, 0xdf, 0x27, 0x74, 0xe9, 0xb5, 0x84, 0x28, 0x28, 0x64, 0x8c, 0xe5, - 0x5e, 0x57, 0xb3, 0x49, 0x08, 0x30, 0x39, 0x1e, 0xe3, 0x75, 0xb5, 0x90, 0x66, 0x90, 0xb6, 0xdf, - 0xe9, 0x74, 0x90, 0xed, 0x7b, 0x7c, 0x5d, 0x99, 0xbc, 0xc2, 0xc4, 0xd2, 0x0b, 0x30, 0xeb, 0xbb, - 0x9a, 0x69, 0x45, 0x74, 0x53, 0x44, 0x57, 0xe4, 0x13, 0x81, 0xb2, 0x0c, 0xa7, 0x39, 0xaf, 0x81, - 0x7c, 0x4d, 0xdf, 0x47, 0x46, 0x1f, 0x34, 0x49, 0x6e, 0x0e, 0x4f, 0x31, 0x85, 0x75, 0x36, 0xcf, - 0xb1, 0xcb, 0x3f, 0x10, 0x60, 0x96, 0x1f, 0x54, 0x8c, 0xc0, 0x59, 0x5b, 0x00, 0x9a, 0x6d, 0x3b, - 0x7e, 0xd8, 0x5d, 0xc3, 0xa1, 0x3c, 0x84, 0x5b, 0x2d, 0x07, 0x20, 0x25, 0x44, 0xb0, 0xd8, 0x01, - 0xe8, 0xcf, 0x1c, 0xe9, 0xb6, 0x33, 0x90, 0x63, 0x37, 0xf7, 0xe4, 0xf3, 0x0f, 0x3d, 0xda, 0x02, - 0x15, 0xe1, 0x13, 0x8d, 0x34, 0x0f, 0xe9, 0x3d, 0xd4, 0x36, 0x6d, 0x76, 0x9f, 0x48, 0x07, 0xfc, - 0x96, 0x32, 0x15, 0xdc, 0x52, 0xae, 0x5d, 0x87, 0x39, 0xdd, 0xe9, 0x0c, 0x9a, 0xbb, 0x26, 0x0e, - 0x1c, 0xaf, 0xbd, 0x4f, 0x0b, 0x9f, 0x83, 0x7e, 0x8b, 0xf9, 0x95, 0x44, 0x72, 0xa3, 0xb1, 0xf6, - 0xb5, 0xc4, 0xe2, 0x06, 0xc5, 0x35, 0xf8, 0x6b, 0x2a, 0xa8, 0x65, 0x21, 0x1d, 0x9b, 0x0e, 0x3f, - 0xfa, 0x18, 0x7c, 0xbc, 0x6d, 0xfa, 0xfb, 0xbd, 0xbd, 0x55, 0xdd, 0xe9, 0x9c, 0x6b, 0x3b, 0x6d, - 0xa7, 0xff, 0xb9, 0x0b, 0x8f, 0xc8, 0x80, 0xfc, 0xc7, 0x3e, 0x79, 0x65, 0x03, 0xe9, 0x62, 0xec, - 0xf7, 0x31, 0x79, 0x1b, 0xe6, 0x98, 0xb2, 0x4a, 0xee, 0xdc, 0xe9, 0xd1, 0x40, 0x3a, 0xf6, 0xde, - 0xa5, 0xf8, 0xad, 0x77, 0x49, 0xad, 0x56, 0x66, 0x19, 0x14, 0xcf, 0xd1, 0x03, 0x84, 0xac, 0xc0, - 0x13, 0x11, 0x3e, 0xba, 0x2f, 0x91, 0x1b, 0xc3, 0xf8, 0x3d, 0xc6, 0x38, 0x17, 0x62, 0x6c, 0x32, - 0xa8, 0x5c, 0x81, 0xe9, 0x93, 0x70, 0xfd, 0x23, 0xe3, 0xca, 0xa3, 0x30, 0xc9, 0x06, 0xcc, 0x10, - 0x12, 0xbd, 0xe7, 0xf9, 0x4e, 0x87, 0x24, 0xbd, 0xe3, 0x69, 0xfe, 0xe9, 0x5d, 0xba, 0x51, 0x0a, - 0x18, 0x56, 0x09, 0x50, 0xb2, 0x0c, 0xe4, 0x33, 0x83, 0x81, 0x74, 0x2b, 0x86, 0xe1, 0x6d, 0x66, - 0x48, 0xa0, 0x2f, 0x7f, 0x16, 0xe6, 0xf1, 0xff, 0x24, 0x27, 0x85, 0x2d, 0x89, 0xbf, 0x65, 0x2a, - 0xfe, 0xe0, 0x35, 0xba, 0x17, 0xe7, 0x02, 0x82, 0x90, 0x4d, 0xa1, 0x55, 0x6c, 0x23, 0xdf, 0x47, - 0xae, 0xa7, 0x6a, 0xd6, 0x28, 0xf3, 0x42, 0xc7, 0xf4, 0xe2, 0x97, 0x1e, 0x46, 0x57, 0x71, 0x83, - 0x22, 0xcb, 0x96, 0x25, 0xef, 0xc2, 0xa9, 0x11, 0x51, 0x31, 0x06, 0xe7, 0xeb, 0x8c, 0x73, 0x7e, - 0x28, 0x32, 0x30, 0x6d, 0x03, 0xb8, 0x3c, 0x58, 0xcb, 0x31, 0x38, 0xff, 0x90, 0x71, 0x4a, 0x0c, - 0xcb, 0x97, 0x14, 0x33, 0x5e, 0x83, 0xd9, 0xdb, 0xc8, 0xdd, 0x73, 0x3c, 0x76, 0x35, 0x32, 0x06, - 0xdd, 0x1b, 0x8c, 0x6e, 0x86, 0x01, 0xc9, 0x5d, 0x09, 0xe6, 0x7a, 0x05, 0x32, 0x2d, 0x4d, 0x47, - 0x63, 0x50, 0x7c, 0x99, 0x51, 0x4c, 0x61, 0x7d, 0x0c, 0x2d, 0x43, 0xbe, 0xed, 0xb0, 0xb2, 0x14, - 0x0f, 0x7f, 0x93, 0xc1, 0x73, 0x1c, 0xc3, 0x28, 0xba, 0x4e, 0xb7, 0x67, 0xe1, 0x9a, 0x15, 0x4f, - 0xf1, 0x47, 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xdc, 0xfa, 0xc7, 0x9c, 0xc2, 0x0b, 0xf9, 0xf3, - 0x0a, 0xe4, 0x1c, 0xdb, 0x3a, 0x70, 0xec, 0x71, 0x8c, 0xf8, 0x13, 0xc6, 0x00, 0x0c, 0x82, 0x09, - 0x2e, 0x43, 0x76, 0xdc, 0x85, 0xf8, 0xd3, 0x87, 0x7c, 0x7b, 0xf0, 0x15, 0xd8, 0x80, 0x19, 0x9e, - 0xa0, 0x4c, 0xc7, 0x1e, 0x83, 0xe2, 0xcf, 0x18, 0x45, 0x21, 0x04, 0x63, 0xaf, 0xe1, 0x23, 0xcf, - 0x6f, 0xa3, 0x71, 0x48, 0xde, 0xe2, 0xaf, 0xc1, 0x20, 0xcc, 0x95, 0x7b, 0xc8, 0xd6, 0xf7, 0xc7, - 0x63, 0xf8, 0x2a, 0x77, 0x25, 0xc7, 0x60, 0x8a, 0x0a, 0x4c, 0x77, 0x34, 0xd7, 0xdb, 0xd7, 0xac, - 0xb1, 0x96, 0xe3, 0xcf, 0x19, 0x47, 0x3e, 0x00, 0x31, 0x8f, 0xf4, 0xec, 0x93, 0xd0, 0x7c, 0x8d, - 0x7b, 0x24, 0x04, 0x63, 0x5b, 0xcf, 0xf3, 0xc9, 0x05, 0xd4, 0x49, 0xd8, 0xbe, 0xce, 0xb7, 0x1e, - 0xc5, 0x6e, 0x85, 0x19, 0x2f, 0x43, 0xd6, 0x33, 0xef, 0x8d, 0x45, 0xf3, 0x17, 0x7c, 0xa5, 0x09, - 0x00, 0x83, 0x6f, 0xc0, 0xe9, 0x91, 0x65, 0x62, 0x0c, 0xb2, 0x6f, 0x30, 0xb2, 0x85, 0x11, 0xa5, - 0x82, 0xa5, 0x84, 0x93, 0x52, 0xfe, 0x25, 0x4f, 0x09, 0x68, 0x80, 0xab, 0x81, 0x0f, 0x0a, 0x9e, - 0xd6, 0x3a, 0x99, 0xd7, 0xfe, 0x8a, 0x7b, 0x8d, 0x62, 0x23, 0x5e, 0xdb, 0x81, 0x05, 0xc6, 0x78, - 0xb2, 0x75, 0xfd, 0x26, 0x4f, 0xac, 0x14, 0xbd, 0x1b, 0x5d, 0xdd, 0x5f, 0x84, 0xc5, 0xc0, 0x9d, - 0xbc, 0x23, 0xf5, 0xd4, 0x8e, 0xd6, 0x1d, 0x83, 0xf9, 0x5b, 0x8c, 0x99, 0x67, 0xfc, 0xa0, 0xa5, - 0xf5, 0xb6, 0xb4, 0x2e, 0x26, 0xbf, 0x0e, 0x45, 0x4e, 0xde, 0xb3, 0x5d, 0xa4, 0x3b, 0x6d, 0xdb, - 0xbc, 0x87, 0x8c, 0x31, 0xa8, 0xff, 0x7a, 0x60, 0xa9, 0x76, 0x43, 0x70, 0xcc, 0x5c, 0x03, 0x31, - 0xe8, 0x55, 0x54, 0xb3, 0xd3, 0x75, 0x5c, 0x3f, 0x86, 0xf1, 0x6f, 0xf8, 0x4a, 0x05, 0xb8, 0x1a, - 0x81, 0xc9, 0x55, 0x28, 0x90, 0xe1, 0xb8, 0x21, 0xf9, 0xb7, 0x8c, 0x68, 0xba, 0x8f, 0x62, 0x89, - 0x43, 0x77, 0x3a, 0x5d, 0xcd, 0x1d, 0x27, 0xff, 0xfd, 0x1d, 0x4f, 0x1c, 0x0c, 0xc2, 0x12, 0x87, - 0x7f, 0xd0, 0x45, 0xb8, 0xda, 0x8f, 0xc1, 0xf0, 0x6d, 0x9e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, - 0x61, 0x0c, 0x8a, 0xbf, 0xe7, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0xd3, 0x2f, 0xb4, 0x2e, 0x6a, 0x9b, - 0x9e, 0xef, 0xd2, 0x3e, 0xf8, 0x78, 0xaa, 0xef, 0x3c, 0x8c, 0x36, 0x61, 0x4a, 0x08, 0x2a, 0x5f, - 0x83, 0x99, 0x81, 0x16, 0x43, 0x8a, 0xfb, 0xcd, 0x42, 0xf1, 0x97, 0x1e, 0xb1, 0x64, 0x14, 0xed, - 0x30, 0xe4, 0x4d, 0xbc, 0xee, 0xd1, 0x3e, 0x20, 0x9e, 0xec, 0xb5, 0x47, 0xc1, 0xd2, 0x47, 0xda, - 0x00, 0xf9, 0x2a, 0x4c, 0x47, 0x7a, 0x80, 0x78, 0xaa, 0x5f, 0x66, 0x54, 0xf9, 0x70, 0x0b, 0x20, - 0x5f, 0x80, 0x14, 0xae, 0xe7, 0xf1, 0xf0, 0x5f, 0x61, 0x70, 0xa2, 0x2e, 0x7f, 0x12, 0x32, 0xbc, - 0x8e, 0xc7, 0x43, 0x7f, 0x95, 0x41, 0x03, 0x08, 0x86, 0xf3, 0x1a, 0x1e, 0x0f, 0xff, 0x35, 0x0e, - 0xe7, 0x10, 0x0c, 0x1f, 0xdf, 0x85, 0xdf, 0xfd, 0xf5, 0x14, 0xcb, 0xc3, 0xdc, 0x77, 0x97, 0x61, - 0x8a, 0x15, 0xef, 0x78, 0xf4, 0x17, 0xd8, 0xc3, 0x39, 0x42, 0x7e, 0x19, 0xd2, 0x63, 0x3a, 0xfc, - 0x37, 0x18, 0x94, 0xea, 0xcb, 0x15, 0xc8, 0x85, 0x0a, 0x76, 0x3c, 0xfc, 0x37, 0x19, 0x3c, 0x8c, - 0xc2, 0xa6, 0xb3, 0x82, 0x1d, 0x4f, 0xf0, 0x5b, 0xdc, 0x74, 0x86, 0xc0, 0x6e, 0xe3, 0xb5, 0x3a, - 0x1e, 0xfd, 0xdb, 0xdc, 0xeb, 0x1c, 0x22, 0x5f, 0x81, 0x6c, 0x90, 0x7f, 0xe3, 0xf1, 0xbf, 0xc3, - 0xf0, 0x7d, 0x0c, 0xf6, 0x40, 0x28, 0xff, 0xc7, 0x53, 0xfc, 0x2e, 0xf7, 0x40, 0x08, 0x85, 0xb7, - 0xd1, 0x60, 0x4d, 0x8f, 0x67, 0xfa, 0x3d, 0xbe, 0x8d, 0x06, 0x4a, 0x3a, 0x5e, 0x4d, 0x92, 0x06, - 0xe3, 0x29, 0x7e, 0x9f, 0xaf, 0x26, 0xd1, 0xc7, 0x66, 0x0c, 0x16, 0xc9, 0x78, 0x8e, 0x3f, 0xe0, - 0x66, 0x0c, 0xd4, 0x48, 0xb9, 0x01, 0xd2, 0x70, 0x81, 0x8c, 0xe7, 0xfb, 0x22, 0xe3, 0x9b, 0x1d, - 0xaa, 0x8f, 0xf2, 0xab, 0xb0, 0x30, 0xba, 0x38, 0xc6, 0xb3, 0x7e, 0xe9, 0xd1, 0xc0, 0x71, 0x26, - 0x5c, 0x1b, 0xe5, 0x9d, 0x7e, 0x96, 0x0d, 0x17, 0xc6, 0x78, 0xda, 0xd7, 0x1f, 0x45, 0x13, 0x6d, - 0xb8, 0x2e, 0xca, 0x65, 0x80, 0x7e, 0x4d, 0x8a, 0xe7, 0x7a, 0x83, 0x71, 0x85, 0x40, 0x78, 0x6b, - 0xb0, 0x92, 0x14, 0x8f, 0xff, 0x32, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0xaf, 0x46, 0xf1, 0xe8, - 0x37, 0xf9, 0xd6, 0xe0, 0x10, 0xf9, 0x32, 0x64, 0xec, 0x9e, 0x65, 0xe1, 0xd8, 0x92, 0x8e, 0xff, - 0x19, 0x51, 0xf1, 0xdf, 0x1f, 0x33, 0x30, 0x07, 0xc8, 0x17, 0x20, 0x8d, 0x3a, 0x7b, 0xc8, 0x88, - 0x43, 0xfe, 0xc7, 0x63, 0x9e, 0x4f, 0xb0, 0xb6, 0x7c, 0x05, 0x80, 0x1e, 0xa6, 0xc9, 0x57, 0xa2, - 0x18, 0xec, 0x7f, 0x3e, 0x66, 0xbf, 0x50, 0xe8, 0x43, 0xfa, 0x04, 0xf4, 0xf7, 0x0e, 0xc7, 0x13, - 0x3c, 0x8c, 0x12, 0x90, 0x03, 0xf8, 0x2b, 0x30, 0x75, 0xd3, 0x73, 0x6c, 0x5f, 0x6b, 0xc7, 0xa1, - 0xff, 0x8b, 0xa1, 0xb9, 0x3e, 0x76, 0x58, 0xc7, 0x71, 0x91, 0xaf, 0xb5, 0xbd, 0x38, 0xec, 0x7f, - 0x33, 0x6c, 0x00, 0xc0, 0x60, 0x5d, 0xf3, 0xfc, 0x71, 0xde, 0xfb, 0x7f, 0x38, 0x98, 0x03, 0xb0, - 0xd1, 0xf8, 0xff, 0x5b, 0xe8, 0x20, 0x0e, 0xfb, 0x3e, 0x37, 0x9a, 0xe9, 0xcb, 0x9f, 0x84, 0x2c, - 0xfe, 0x97, 0xfe, 0x6a, 0x27, 0x06, 0xfc, 0xbf, 0x0c, 0xdc, 0x47, 0xe0, 0x27, 0x7b, 0xbe, 0xe1, - 0x9b, 0xf1, 0xce, 0xfe, 0x3f, 0xb6, 0xd2, 0x5c, 0x5f, 0x2e, 0x43, 0xce, 0xf3, 0x0d, 0xa3, 0xc7, - 0x3a, 0x9a, 0x18, 0xf8, 0x8f, 0x1e, 0x07, 0x87, 0xdc, 0x00, 0xb3, 0x76, 0x76, 0xf4, 0x65, 0x1d, - 0x6c, 0x38, 0x1b, 0x0e, 0xbd, 0xa6, 0x83, 0x6f, 0x08, 0x50, 0x68, 0x99, 0x16, 0x5a, 0x35, 0x1c, - 0x9f, 0x5d, 0xab, 0xe5, 0xf0, 0xd8, 0x70, 0x7c, 0xbc, 0xde, 0x8b, 0x27, 0xbb, 0x92, 0x5b, 0x9e, - 0x05, 0x61, 0x4b, 0xca, 0x83, 0xa0, 0xb1, 0x5f, 0x93, 0x08, 0xda, 0xda, 0xe6, 0xdb, 0x0f, 0x4a, - 0x13, 0xdf, 0x7f, 0x50, 0x9a, 0xf8, 0x97, 0x07, 0xa5, 0x89, 0x77, 0x1e, 0x94, 0x84, 0xf7, 0x1e, - 0x94, 0x84, 0xf7, 0x1f, 0x94, 0x84, 0x1f, 0x3f, 0x28, 0x09, 0xf7, 0x0f, 0x4b, 0xc2, 0x57, 0x0f, - 0x4b, 0xc2, 0x37, 0x0f, 0x4b, 0xc2, 0x77, 0x0e, 0x4b, 0xc2, 0x77, 0x0f, 0x4b, 0xc2, 0xdb, 0x87, - 0xa5, 0x89, 0xef, 0x1f, 0x96, 0x26, 0xde, 0x39, 0x2c, 0x09, 0xef, 0x1d, 0x96, 0x26, 0xde, 0x3f, - 0x2c, 0x09, 0x3f, 0x3e, 0x2c, 0x4d, 0xdc, 0xff, 0x61, 0x69, 0xe2, 0x27, 0x01, 0x00, 0x00, 0xff, - 0xff, 0x7c, 0xbe, 0x1b, 0xf8, 0x0c, 0x2f, 0x00, 0x00, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0x8e, 0x21, 0x89, 0xb6, + 0x23, 0xda, 0x6e, 0xa8, 0x8c, 0x6c, 0xc9, 0x16, 0xd4, 0xc4, 0x05, 0x41, 0x88, 0x81, 0x4a, 0x12, + 0xc8, 0x82, 0x8c, 0x7f, 0x32, 0x9d, 0x9d, 0xe5, 0xee, 0x05, 0xb8, 0xd2, 0x62, 0x77, 0xb3, 0xbb, + 0x90, 0x4c, 0x4d, 0x1f, 0xd4, 0x71, 0x7f, 0x26, 0xd3, 0xe9, 0x7f, 0x67, 0x92, 0xb8, 0x8e, 0xfb, + 0x33, 0xd3, 0x3a, 0x4d, 0x9b, 0x36, 0x69, 0xda, 0x34, 0xed, 0x53, 0x5e, 0xd2, 0xfa, 0xa9, 0x93, + 0xbc, 0xf5, 0xa1, 0x0f, 0x16, 0xe3, 0x99, 0xba, 0xad, 0xdb, 0xb8, 0xad, 0x1f, 0x3c, 0xa3, 0x97, + 0xcc, 0xfd, 0x5b, 0xec, 0x02, 0xa0, 0x76, 0x99, 0x19, 0xdb, 0x4f, 0xe4, 0x9e, 0x7b, 0xbe, 0x6f, + 0xcf, 0x3d, 0xf7, 0xdc, 0x73, 0xce, 0xbd, 0x0b, 0xf8, 0xf1, 0x65, 0x38, 0xd3, 0xb3, 0xed, 0x9e, + 0x89, 0xce, 0x3b, 0xae, 0xed, 0xdb, 0x7b, 0x83, 0xee, 0x79, 0x1d, 0x79, 0x9a, 0x6b, 0x38, 0xbe, + 0xed, 0xae, 0x12, 0x99, 0x34, 0x47, 0x35, 0x56, 0xb9, 0xc6, 0xf2, 0x16, 0xcc, 0x5f, 0x35, 0x4c, + 0xb4, 0x1e, 0x28, 0x76, 0x90, 0x2f, 0x3d, 0x03, 0x99, 0xae, 0x61, 0xa2, 0xb2, 0x70, 0x26, 0xbd, + 0x52, 0xb8, 0xf0, 0xc8, 0xea, 0x08, 0x68, 0x35, 0x8a, 0x68, 0x63, 0xb1, 0x4c, 0x10, 0xcb, 0x6f, + 0x65, 0x60, 0x61, 0xc2, 0xa8, 0x24, 0x41, 0xc6, 0x52, 0xfb, 0x98, 0x51, 0x58, 0xc9, 0xcb, 0xe4, + 0x7f, 0xa9, 0x0c, 0x33, 0x8e, 0xaa, 0xdd, 0x50, 0x7b, 0xa8, 0x9c, 0x22, 0x62, 0xfe, 0x28, 0x55, + 0x00, 0x74, 0xe4, 0x20, 0x4b, 0x47, 0x96, 0x76, 0x50, 0x4e, 0x9f, 0x49, 0xaf, 0xe4, 0xe5, 0x90, + 0x44, 0x7a, 0x02, 0xe6, 0x9d, 0xc1, 0x9e, 0x69, 0x68, 0x4a, 0x48, 0x0d, 0xce, 0xa4, 0x57, 0xb2, + 0xb2, 0x48, 0x07, 0xd6, 0x87, 0xca, 0xe7, 0x60, 0xee, 0x16, 0x52, 0x6f, 0x84, 0x55, 0x0b, 0x44, + 0xb5, 0x84, 0xc5, 0x21, 0xc5, 0x3a, 0x14, 0xfb, 0xc8, 0xf3, 0xd4, 0x1e, 0x52, 0xfc, 0x03, 0x07, + 0x95, 0x33, 0x64, 0xf6, 0x67, 0xc6, 0x66, 0x3f, 0x3a, 0xf3, 0x02, 0x43, 0xed, 0x1c, 0x38, 0x48, + 0xaa, 0x41, 0x1e, 0x59, 0x83, 0x3e, 0x65, 0xc8, 0x1e, 0xe1, 0xbf, 0x86, 0x35, 0xe8, 0x8f, 0xb2, + 0xe4, 0x30, 0x8c, 0x51, 0xcc, 0x78, 0xc8, 0xbd, 0x69, 0x68, 0xa8, 0x3c, 0x4d, 0x08, 0xce, 0x8d, + 0x11, 0x74, 0xe8, 0xf8, 0x28, 0x07, 0xc7, 0x49, 0x75, 0xc8, 0xa3, 0x97, 0x7c, 0x64, 0x79, 0x86, + 0x6d, 0x95, 0x67, 0x08, 0xc9, 0xa3, 0x13, 0x56, 0x11, 0x99, 0xfa, 0x28, 0xc5, 0x10, 0x27, 0x5d, + 0x82, 0x19, 0xdb, 0xf1, 0x0d, 0xdb, 0xf2, 0xca, 0xb9, 0x33, 0xc2, 0x4a, 0xe1, 0xc2, 0xc7, 0x26, + 0x06, 0x42, 0x8b, 0xea, 0xc8, 0x5c, 0x59, 0x6a, 0x82, 0xe8, 0xd9, 0x03, 0x57, 0x43, 0x8a, 0x66, + 0xeb, 0x48, 0x31, 0xac, 0xae, 0x5d, 0xce, 0x13, 0x82, 0xd3, 0xe3, 0x13, 0x21, 0x8a, 0x75, 0x5b, + 0x47, 0x4d, 0xab, 0x6b, 0xcb, 0x25, 0x2f, 0xf2, 0x2c, 0x9d, 0x80, 0x69, 0xef, 0xc0, 0xf2, 0xd5, + 0x97, 0xca, 0x45, 0x12, 0x21, 0xec, 0x69, 0xf9, 0x1f, 0xa6, 0x61, 0x2e, 0x49, 0x88, 0x5d, 0x81, + 0x6c, 0x17, 0xcf, 0xb2, 0x9c, 0x3a, 0x8e, 0x0f, 0x28, 0x26, 0xea, 0xc4, 0xe9, 0x9f, 0xd2, 0x89, + 0x35, 0x28, 0x58, 0xc8, 0xf3, 0x91, 0x4e, 0x23, 0x22, 0x9d, 0x30, 0xa6, 0x80, 0x82, 0xc6, 0x43, + 0x2a, 0xf3, 0x53, 0x85, 0xd4, 0xf3, 0x30, 0x17, 0x98, 0xa4, 0xb8, 0xaa, 0xd5, 0xe3, 0xb1, 0x79, + 0x3e, 0xce, 0x92, 0xd5, 0x06, 0xc7, 0xc9, 0x18, 0x26, 0x97, 0x50, 0xe4, 0x59, 0x5a, 0x07, 0xb0, + 0x2d, 0x64, 0x77, 0x15, 0x1d, 0x69, 0x66, 0x39, 0x77, 0x84, 0x97, 0x5a, 0x58, 0x65, 0xcc, 0x4b, + 0x36, 0x95, 0x6a, 0xa6, 0x74, 0x79, 0x18, 0x6a, 0x33, 0x47, 0x44, 0xca, 0x16, 0xdd, 0x64, 0x63, + 0xd1, 0xb6, 0x0b, 0x25, 0x17, 0xe1, 0xb8, 0x47, 0x3a, 0x9b, 0x59, 0x9e, 0x18, 0xb1, 0x1a, 0x3b, + 0x33, 0x99, 0xc1, 0xe8, 0xc4, 0x66, 0xdd, 0xf0, 0xa3, 0xf4, 0x30, 0x04, 0x02, 0x85, 0x84, 0x15, + 0x90, 0x2c, 0x54, 0xe4, 0xc2, 0x6d, 0xb5, 0x8f, 0x96, 0x6e, 0x43, 0x29, 0xea, 0x1e, 0x69, 0x11, + 0xb2, 0x9e, 0xaf, 0xba, 0x3e, 0x89, 0xc2, 0xac, 0x4c, 0x1f, 0x24, 0x11, 0xd2, 0xc8, 0xd2, 0x49, + 0x96, 0xcb, 0xca, 0xf8, 0x5f, 0xe9, 0xe7, 0x86, 0x13, 0x4e, 0x93, 0x09, 0x7f, 0x7c, 0x7c, 0x45, + 0x23, 0xcc, 0xa3, 0xf3, 0x5e, 0x7a, 0x1a, 0x66, 0x23, 0x13, 0x48, 0xfa, 0xea, 0xe5, 0x5f, 0x84, + 0x07, 0x26, 0x52, 0x4b, 0xcf, 0xc3, 0xe2, 0xc0, 0x32, 0x2c, 0x1f, 0xb9, 0x8e, 0x8b, 0x70, 0xc4, + 0xd2, 0x57, 0x95, 0xff, 0x7d, 0xe6, 0x88, 0x98, 0xdb, 0x0d, 0x6b, 0x53, 0x16, 0x79, 0x61, 0x30, + 0x2e, 0x7c, 0x3c, 0x9f, 0x7b, 0x7b, 0x46, 0xbc, 0x73, 0xe7, 0xce, 0x9d, 0xd4, 0xf2, 0x97, 0xa7, + 0x61, 0x71, 0xd2, 0x9e, 0x99, 0xb8, 0x7d, 0x4f, 0xc0, 0xb4, 0x35, 0xe8, 0xef, 0x21, 0x97, 0x38, + 0x29, 0x2b, 0xb3, 0x27, 0xa9, 0x06, 0x59, 0x53, 0xdd, 0x43, 0x66, 0x39, 0x73, 0x46, 0x58, 0x29, + 0x5d, 0x78, 0x22, 0xd1, 0xae, 0x5c, 0xdd, 0xc4, 0x10, 0x99, 0x22, 0xa5, 0x4f, 0x43, 0x86, 0xa5, + 0x68, 0xcc, 0xf0, 0x78, 0x32, 0x06, 0xbc, 0x97, 0x64, 0x82, 0x93, 0x1e, 0x84, 0x3c, 0xfe, 0x4b, + 0x63, 0x63, 0x9a, 0xd8, 0x9c, 0xc3, 0x02, 0x1c, 0x17, 0xd2, 0x12, 0xe4, 0xc8, 0x36, 0xd1, 0x11, + 0x2f, 0x6d, 0xc1, 0x33, 0x0e, 0x2c, 0x1d, 0x75, 0xd5, 0x81, 0xe9, 0x2b, 0x37, 0x55, 0x73, 0x80, + 0x48, 0xc0, 0xe7, 0xe5, 0x22, 0x13, 0x7e, 0x0e, 0xcb, 0xa4, 0xd3, 0x50, 0xa0, 0xbb, 0xca, 0xb0, + 0x74, 0xf4, 0x12, 0xc9, 0x9e, 0x59, 0x99, 0x6e, 0xb4, 0x26, 0x96, 0xe0, 0xd7, 0x5f, 0xf7, 0x6c, + 0x8b, 0x87, 0x26, 0x79, 0x05, 0x16, 0x90, 0xd7, 0x3f, 0x3d, 0x9a, 0xb8, 0x1f, 0x9a, 0x3c, 0xbd, + 0xd1, 0x98, 0x5a, 0xfe, 0x4e, 0x0a, 0x32, 0x24, 0x5f, 0xcc, 0x41, 0x61, 0xe7, 0x85, 0x76, 0x43, + 0x59, 0x6f, 0xed, 0xae, 0x6d, 0x36, 0x44, 0x41, 0x2a, 0x01, 0x10, 0xc1, 0xd5, 0xcd, 0x56, 0x6d, + 0x47, 0x4c, 0x05, 0xcf, 0xcd, 0xed, 0x9d, 0x4b, 0x4f, 0x89, 0xe9, 0x00, 0xb0, 0x4b, 0x05, 0x99, + 0xb0, 0xc2, 0x93, 0x17, 0xc4, 0xac, 0x24, 0x42, 0x91, 0x12, 0x34, 0x9f, 0x6f, 0xac, 0x5f, 0x7a, + 0x4a, 0x9c, 0x8e, 0x4a, 0x9e, 0xbc, 0x20, 0xce, 0x48, 0xb3, 0x90, 0x27, 0x92, 0xb5, 0x56, 0x6b, + 0x53, 0xcc, 0x05, 0x9c, 0x9d, 0x1d, 0xb9, 0xb9, 0xbd, 0x21, 0xe6, 0x03, 0xce, 0x0d, 0xb9, 0xb5, + 0xdb, 0x16, 0x21, 0x60, 0xd8, 0x6a, 0x74, 0x3a, 0xb5, 0x8d, 0x86, 0x58, 0x08, 0x34, 0xd6, 0x5e, + 0xd8, 0x69, 0x74, 0xc4, 0x62, 0xc4, 0xac, 0x27, 0x2f, 0x88, 0xb3, 0xc1, 0x2b, 0x1a, 0xdb, 0xbb, + 0x5b, 0x62, 0x49, 0x9a, 0x87, 0x59, 0xfa, 0x0a, 0x6e, 0xc4, 0xdc, 0x88, 0xe8, 0xd2, 0x53, 0xa2, + 0x38, 0x34, 0x84, 0xb2, 0xcc, 0x47, 0x04, 0x97, 0x9e, 0x12, 0xa5, 0xe5, 0x3a, 0x64, 0x49, 0x74, + 0x49, 0x12, 0x94, 0x36, 0x6b, 0x6b, 0x8d, 0x4d, 0xa5, 0xd5, 0xde, 0x69, 0xb6, 0xb6, 0x6b, 0x9b, + 0xa2, 0x30, 0x94, 0xc9, 0x8d, 0xcf, 0xee, 0x36, 0xe5, 0xc6, 0xba, 0x98, 0x0a, 0xcb, 0xda, 0x8d, + 0xda, 0x4e, 0x63, 0x5d, 0x4c, 0x2f, 0x6b, 0xb0, 0x38, 0x29, 0x4f, 0x4e, 0xdc, 0x19, 0xa1, 0x25, + 0x4e, 0x1d, 0xb1, 0xc4, 0x84, 0x6b, 0x6c, 0x89, 0x7f, 0x94, 0x82, 0x85, 0x09, 0xb5, 0x62, 0xe2, + 0x4b, 0x9e, 0x85, 0x2c, 0x0d, 0x51, 0x5a, 0x3d, 0x1f, 0x9b, 0x58, 0x74, 0x48, 0xc0, 0x8e, 0x55, + 0x50, 0x82, 0x0b, 0x77, 0x10, 0xe9, 0x23, 0x3a, 0x08, 0x4c, 0x31, 0x96, 0xd3, 0x7f, 0x61, 0x2c, + 0xa7, 0xd3, 0xb2, 0x77, 0x29, 0x49, 0xd9, 0x23, 0xb2, 0xe3, 0xe5, 0xf6, 0xec, 0x84, 0xdc, 0x7e, + 0x05, 0xe6, 0xc7, 0x88, 0x12, 0xe7, 0xd8, 0x97, 0x05, 0x28, 0x1f, 0xe5, 0x9c, 0x98, 0x4c, 0x97, + 0x8a, 0x64, 0xba, 0x2b, 0xa3, 0x1e, 0x3c, 0x7b, 0xf4, 0x22, 0x8c, 0xad, 0xf5, 0xeb, 0x02, 0x9c, + 0x98, 0xdc, 0x29, 0x4e, 0xb4, 0xe1, 0xd3, 0x30, 0xdd, 0x47, 0xfe, 0xbe, 0xcd, 0xbb, 0xa5, 0x8f, + 0x4f, 0xa8, 0xc1, 0x78, 0x78, 0x74, 0xb1, 0x19, 0x2a, 0x5c, 0xc4, 0xd3, 0x47, 0xb5, 0x7b, 0xd4, + 0x9a, 0x31, 0x4b, 0xbf, 0x98, 0x82, 0x07, 0x26, 0x92, 0x4f, 0x34, 0xf4, 0x21, 0x00, 0xc3, 0x72, + 0x06, 0x3e, 0xed, 0x88, 0x68, 0x82, 0xcd, 0x13, 0x09, 0x49, 0x5e, 0x38, 0x79, 0x0e, 0xfc, 0x60, + 0x3c, 0x4d, 0xc6, 0x81, 0x8a, 0x88, 0xc2, 0x33, 0x43, 0x43, 0x33, 0xc4, 0xd0, 0xca, 0x11, 0x33, + 0x1d, 0x0b, 0xcc, 0x4f, 0x82, 0xa8, 0x99, 0x06, 0xb2, 0x7c, 0xc5, 0xf3, 0x5d, 0xa4, 0xf6, 0x0d, + 0xab, 0x47, 0x2a, 0x48, 0xae, 0x9a, 0xed, 0xaa, 0xa6, 0x87, 0xe4, 0x39, 0x3a, 0xdc, 0xe1, 0xa3, + 0x18, 0x41, 0x02, 0xc8, 0x0d, 0x21, 0xa6, 0x23, 0x08, 0x3a, 0x1c, 0x20, 0x96, 0xbf, 0x9d, 0x83, + 0x42, 0xa8, 0xaf, 0x96, 0xce, 0x42, 0xf1, 0xba, 0x7a, 0x53, 0x55, 0xf8, 0x59, 0x89, 0x7a, 0xa2, + 0x80, 0x65, 0x6d, 0x76, 0x5e, 0xfa, 0x24, 0x2c, 0x12, 0x15, 0x7b, 0xe0, 0x23, 0x57, 0xd1, 0x4c, + 0xd5, 0xf3, 0x88, 0xd3, 0x72, 0x44, 0x55, 0xc2, 0x63, 0x2d, 0x3c, 0x54, 0xe7, 0x23, 0xd2, 0x45, + 0x58, 0x20, 0x88, 0xfe, 0xc0, 0xf4, 0x0d, 0xc7, 0x44, 0x0a, 0x3e, 0xbd, 0x79, 0xa4, 0x92, 0x04, + 0x96, 0xcd, 0x63, 0x8d, 0x2d, 0xa6, 0x80, 0x2d, 0xf2, 0xa4, 0x75, 0x78, 0x88, 0xc0, 0x7a, 0xc8, + 0x42, 0xae, 0xea, 0x23, 0x05, 0x7d, 0x61, 0xa0, 0x9a, 0x9e, 0xa2, 0x5a, 0xba, 0xb2, 0xaf, 0x7a, + 0xfb, 0xe5, 0x45, 0x4c, 0xb0, 0x96, 0x2a, 0x0b, 0xf2, 0x29, 0xac, 0xb8, 0xc1, 0xf4, 0x1a, 0x44, + 0xad, 0x66, 0xe9, 0x9f, 0x51, 0xbd, 0x7d, 0xa9, 0x0a, 0x27, 0x08, 0x8b, 0xe7, 0xbb, 0x86, 0xd5, + 0x53, 0xb4, 0x7d, 0xa4, 0xdd, 0x50, 0x06, 0x7e, 0xf7, 0x99, 0xf2, 0x83, 0xe1, 0xf7, 0x13, 0x0b, + 0x3b, 0x44, 0xa7, 0x8e, 0x55, 0x76, 0xfd, 0xee, 0x33, 0x52, 0x07, 0x8a, 0x78, 0x31, 0xfa, 0xc6, + 0x6d, 0xa4, 0x74, 0x6d, 0x97, 0x94, 0xc6, 0xd2, 0x84, 0xd4, 0x14, 0xf2, 0xe0, 0x6a, 0x8b, 0x01, + 0xb6, 0x6c, 0x1d, 0x55, 0xb3, 0x9d, 0x76, 0xa3, 0xb1, 0x2e, 0x17, 0x38, 0xcb, 0x55, 0xdb, 0xc5, + 0x01, 0xd5, 0xb3, 0x03, 0x07, 0x17, 0x68, 0x40, 0xf5, 0x6c, 0xee, 0xde, 0x8b, 0xb0, 0xa0, 0x69, + 0x74, 0xce, 0x86, 0xa6, 0xb0, 0x33, 0x96, 0x57, 0x16, 0x23, 0xce, 0xd2, 0xb4, 0x0d, 0xaa, 0xc0, + 0x62, 0xdc, 0x93, 0x2e, 0xc3, 0x03, 0x43, 0x67, 0x85, 0x81, 0xf3, 0x63, 0xb3, 0x1c, 0x85, 0x5e, + 0x84, 0x05, 0xe7, 0x60, 0x1c, 0x28, 0x45, 0xde, 0xe8, 0x1c, 0x8c, 0xc2, 0x9e, 0x86, 0x45, 0x67, + 0xdf, 0x19, 0xc7, 0x3d, 0x1e, 0xc6, 0x49, 0xce, 0xbe, 0x33, 0x0a, 0x7c, 0x94, 0x1c, 0xb8, 0x5d, + 0xa4, 0xa9, 0x3e, 0xd2, 0xcb, 0x27, 0xc3, 0xea, 0xa1, 0x01, 0xe9, 0x3c, 0x88, 0x9a, 0xa6, 0x20, + 0x4b, 0xdd, 0x33, 0x91, 0xa2, 0xba, 0xc8, 0x52, 0xbd, 0xf2, 0xe9, 0xb0, 0x72, 0x49, 0xd3, 0x1a, + 0x64, 0xb4, 0x46, 0x06, 0xa5, 0xc7, 0x61, 0xde, 0xde, 0xbb, 0xae, 0xd1, 0x90, 0x54, 0x1c, 0x17, + 0x75, 0x8d, 0x97, 0xca, 0x8f, 0x10, 0xff, 0xce, 0xe1, 0x01, 0x12, 0x90, 0x6d, 0x22, 0x96, 0x1e, + 0x03, 0x51, 0xf3, 0xf6, 0x55, 0xd7, 0x21, 0x39, 0xd9, 0x73, 0x54, 0x0d, 0x95, 0x1f, 0xa5, 0xaa, + 0x54, 0xbe, 0xcd, 0xc5, 0x78, 0x4b, 0x78, 0xb7, 0x8c, 0xae, 0xcf, 0x19, 0xcf, 0xd1, 0x2d, 0x41, + 0x64, 0x8c, 0x6d, 0x05, 0x44, 0xec, 0x8a, 0xc8, 0x8b, 0x57, 0x88, 0x5a, 0xc9, 0xd9, 0x77, 0xc2, + 0xef, 0x7d, 0x18, 0x66, 0xb1, 0xe6, 0xf0, 0xa5, 0x8f, 0xd1, 0x86, 0xcc, 0xd9, 0x0f, 0xbd, 0xf1, + 0x03, 0xeb, 0x8d, 0x97, 0xab, 0x50, 0x0c, 0xc7, 0xa7, 0x94, 0x07, 0x1a, 0xa1, 0xa2, 0x80, 0x9b, + 0x95, 0x7a, 0x6b, 0x1d, 0xb7, 0x19, 0x2f, 0x36, 0xc4, 0x14, 0x6e, 0x77, 0x36, 0x9b, 0x3b, 0x0d, + 0x45, 0xde, 0xdd, 0xde, 0x69, 0x6e, 0x35, 0xc4, 0x74, 0xb8, 0xaf, 0xfe, 0x7e, 0x0a, 0x4a, 0xd1, + 0x23, 0x92, 0xf4, 0xb3, 0x70, 0x92, 0xdf, 0x67, 0x78, 0xc8, 0x57, 0x6e, 0x19, 0x2e, 0xd9, 0x32, + 0x7d, 0x95, 0x96, 0xaf, 0x60, 0xd1, 0x16, 0x99, 0x56, 0x07, 0xf9, 0xcf, 0x19, 0x2e, 0xde, 0x10, + 0x7d, 0xd5, 0x97, 0x36, 0xe1, 0xb4, 0x65, 0x2b, 0x9e, 0xaf, 0x5a, 0xba, 0xea, 0xea, 0xca, 0xf0, + 0x26, 0x49, 0x51, 0x35, 0x0d, 0x79, 0x9e, 0x4d, 0x4b, 0x55, 0xc0, 0xf2, 0x31, 0xcb, 0xee, 0x30, + 0xe5, 0x61, 0x0e, 0xaf, 0x31, 0xd5, 0x91, 0x00, 0x4b, 0x1f, 0x15, 0x60, 0x0f, 0x42, 0xbe, 0xaf, + 0x3a, 0x0a, 0xb2, 0x7c, 0xf7, 0x80, 0x34, 0xc6, 0x39, 0x39, 0xd7, 0x57, 0x9d, 0x06, 0x7e, 0xfe, + 0x70, 0xce, 0x27, 0xff, 0x96, 0x86, 0x62, 0xb8, 0x39, 0xc6, 0x67, 0x0d, 0x8d, 0xd4, 0x11, 0x81, + 0x64, 0x9a, 0x87, 0xef, 0xdb, 0x4a, 0xaf, 0xd6, 0x71, 0x81, 0xa9, 0x4e, 0xd3, 0x96, 0x55, 0xa6, + 0x48, 0x5c, 0xdc, 0x71, 0x6e, 0x41, 0xb4, 0x45, 0xc8, 0xc9, 0xec, 0x49, 0xda, 0x80, 0xe9, 0xeb, + 0x1e, 0xe1, 0x9e, 0x26, 0xdc, 0x8f, 0xdc, 0x9f, 0xfb, 0x5a, 0x87, 0x90, 0xe7, 0xaf, 0x75, 0x94, + 0xed, 0x96, 0xbc, 0x55, 0xdb, 0x94, 0x19, 0x5c, 0x3a, 0x05, 0x19, 0x53, 0xbd, 0x7d, 0x10, 0x2d, + 0x45, 0x44, 0x94, 0xd4, 0xf1, 0xa7, 0x20, 0x73, 0x0b, 0xa9, 0x37, 0xa2, 0x05, 0x80, 0x88, 0x3e, + 0xc0, 0xd0, 0x3f, 0x0f, 0x59, 0xe2, 0x2f, 0x09, 0x80, 0x79, 0x4c, 0x9c, 0x92, 0x72, 0x90, 0xa9, + 0xb7, 0x64, 0x1c, 0xfe, 0x22, 0x14, 0xa9, 0x54, 0x69, 0x37, 0x1b, 0xf5, 0x86, 0x98, 0x5a, 0xbe, + 0x08, 0xd3, 0xd4, 0x09, 0x78, 0x6b, 0x04, 0x6e, 0x10, 0xa7, 0xd8, 0x23, 0xe3, 0x10, 0xf8, 0xe8, + 0xee, 0xd6, 0x5a, 0x43, 0x16, 0x53, 0xe1, 0xe5, 0xf5, 0xa0, 0x18, 0xee, 0x8b, 0x3f, 0x9c, 0x98, + 0xfa, 0x47, 0x01, 0x0a, 0xa1, 0x3e, 0x17, 0x37, 0x28, 0xaa, 0x69, 0xda, 0xb7, 0x14, 0xd5, 0x34, + 0x54, 0x8f, 0x05, 0x05, 0x10, 0x51, 0x0d, 0x4b, 0x92, 0x2e, 0xda, 0x87, 0x62, 0xfc, 0x6b, 0x02, + 0x88, 0xa3, 0x2d, 0xe6, 0x88, 0x81, 0xc2, 0x47, 0x6a, 0xe0, 0xab, 0x02, 0x94, 0xa2, 0x7d, 0xe5, + 0x88, 0x79, 0x67, 0x3f, 0x52, 0xf3, 0xde, 0x4c, 0xc1, 0x6c, 0xa4, 0x9b, 0x4c, 0x6a, 0xdd, 0x17, + 0x60, 0xde, 0xd0, 0x51, 0xdf, 0xb1, 0x7d, 0x64, 0x69, 0x07, 0x8a, 0x89, 0x6e, 0x22, 0xb3, 0xbc, + 0x4c, 0x12, 0xc5, 0xf9, 0xfb, 0xf7, 0xab, 0xab, 0xcd, 0x21, 0x6e, 0x13, 0xc3, 0xaa, 0x0b, 0xcd, + 0xf5, 0xc6, 0x56, 0xbb, 0xb5, 0xd3, 0xd8, 0xae, 0xbf, 0xa0, 0xec, 0x6e, 0xff, 0xfc, 0x76, 0xeb, + 0xb9, 0x6d, 0x59, 0x34, 0x46, 0xd4, 0x3e, 0xc0, 0xad, 0xde, 0x06, 0x71, 0xd4, 0x28, 0xe9, 0x24, + 0x4c, 0x32, 0x4b, 0x9c, 0x92, 0x16, 0x60, 0x6e, 0xbb, 0xa5, 0x74, 0x9a, 0xeb, 0x0d, 0xa5, 0x71, + 0xf5, 0x6a, 0xa3, 0xbe, 0xd3, 0xa1, 0x37, 0x10, 0x81, 0xf6, 0x4e, 0x74, 0x53, 0xbf, 0x92, 0x86, + 0x85, 0x09, 0x96, 0x48, 0x35, 0x76, 0x76, 0xa0, 0xc7, 0x99, 0x4f, 0x24, 0xb1, 0x7e, 0x15, 0x97, + 0xfc, 0xb6, 0xea, 0xfa, 0xec, 0xa8, 0xf1, 0x18, 0x60, 0x2f, 0x59, 0xbe, 0xd1, 0x35, 0x90, 0xcb, + 0x2e, 0x6c, 0xe8, 0x81, 0x62, 0x6e, 0x28, 0xa7, 0x77, 0x36, 0x3f, 0x03, 0x92, 0x63, 0x7b, 0x86, + 0x6f, 0xdc, 0x44, 0x8a, 0x61, 0xf1, 0xdb, 0x1d, 0x7c, 0xc0, 0xc8, 0xc8, 0x22, 0x1f, 0x69, 0x5a, + 0x7e, 0xa0, 0x6d, 0xa1, 0x9e, 0x3a, 0xa2, 0x8d, 0x13, 0x78, 0x5a, 0x16, 0xf9, 0x48, 0xa0, 0x7d, + 0x16, 0x8a, 0xba, 0x3d, 0xc0, 0x5d, 0x17, 0xd5, 0xc3, 0xf5, 0x42, 0x90, 0x0b, 0x54, 0x16, 0xa8, + 0xb0, 0x7e, 0x7a, 0x78, 0xad, 0x54, 0x94, 0x0b, 0x54, 0x46, 0x55, 0xce, 0xc1, 0x9c, 0xda, 0xeb, + 0xb9, 0x98, 0x9c, 0x13, 0xd1, 0x13, 0x42, 0x29, 0x10, 0x13, 0xc5, 0xa5, 0x6b, 0x90, 0xe3, 0x7e, + 0xc0, 0x25, 0x19, 0x7b, 0x42, 0x71, 0xe8, 0xb1, 0x37, 0xb5, 0x92, 0x97, 0x73, 0x16, 0x1f, 0x3c, + 0x0b, 0x45, 0xc3, 0x53, 0x86, 0xb7, 0xe4, 0xa9, 0x33, 0xa9, 0x95, 0x9c, 0x5c, 0x30, 0xbc, 0xe0, + 0x86, 0x71, 0xf9, 0xf5, 0x14, 0x94, 0xa2, 0xb7, 0xfc, 0xd2, 0x3a, 0xe4, 0x4c, 0x5b, 0x53, 0x49, + 0x68, 0xd1, 0x4f, 0x4c, 0x2b, 0x31, 0x1f, 0x06, 0x56, 0x37, 0x99, 0xbe, 0x1c, 0x20, 0x97, 0xfe, + 0x45, 0x80, 0x1c, 0x17, 0x4b, 0x27, 0x20, 0xe3, 0xa8, 0xfe, 0x3e, 0xa1, 0xcb, 0xae, 0xa5, 0x44, + 0x41, 0x26, 0xcf, 0x58, 0xee, 0x39, 0xaa, 0x45, 0x42, 0x80, 0xc9, 0xf1, 0x33, 0x5e, 0x57, 0x13, + 0xa9, 0x3a, 0x39, 0x7e, 0xd8, 0xfd, 0x3e, 0xb2, 0x7c, 0x8f, 0xaf, 0x2b, 0x93, 0xd7, 0x99, 0x58, + 0x7a, 0x02, 0xe6, 0x7d, 0x57, 0x35, 0xcc, 0x88, 0x6e, 0x86, 0xe8, 0x8a, 0x7c, 0x20, 0x50, 0xae, + 0xc2, 0x29, 0xce, 0xab, 0x23, 0x5f, 0xd5, 0xf6, 0x91, 0x3e, 0x04, 0x4d, 0x93, 0x6b, 0x86, 0x93, + 0x4c, 0x61, 0x9d, 0x8d, 0x73, 0xec, 0xf2, 0x0f, 0x05, 0x98, 0xe7, 0x07, 0x26, 0x3d, 0x70, 0xd6, + 0x16, 0x80, 0x6a, 0x59, 0xb6, 0x1f, 0x76, 0xd7, 0x78, 0x28, 0x8f, 0xe1, 0x56, 0x6b, 0x01, 0x48, + 0x0e, 0x11, 0x2c, 0xf5, 0x01, 0x86, 0x23, 0x47, 0xba, 0xed, 0x34, 0x14, 0xd8, 0x27, 0x1c, 0xf2, + 0x1d, 0x90, 0x1e, 0xb1, 0x81, 0x8a, 0xf0, 0xc9, 0x4a, 0x5a, 0x84, 0xec, 0x1e, 0xea, 0x19, 0x16, + 0xbb, 0x98, 0xa5, 0x0f, 0xfc, 0x22, 0x24, 0x13, 0x5c, 0x84, 0xac, 0x7d, 0x1e, 0x16, 0x34, 0xbb, + 0x3f, 0x6a, 0xee, 0x9a, 0x38, 0x72, 0xcc, 0xf7, 0x3e, 0x23, 0xbc, 0x08, 0xc3, 0x16, 0xf3, 0x7d, + 0x41, 0xf8, 0x93, 0x54, 0x7a, 0xa3, 0xbd, 0xf6, 0xf5, 0xd4, 0xd2, 0x06, 0x85, 0xb6, 0xf9, 0x4c, + 0x65, 0xd4, 0x35, 0x91, 0x86, 0xad, 0x87, 0x2f, 0x9d, 0x83, 0x4f, 0xf4, 0x0c, 0x7f, 0x7f, 0xb0, + 0xb7, 0xaa, 0xd9, 0xfd, 0xf3, 0x3d, 0xbb, 0x67, 0x0f, 0x3f, 0x7d, 0xe2, 0x27, 0xf2, 0x40, 0xfe, + 0x63, 0x9f, 0x3f, 0xf3, 0x81, 0x74, 0x29, 0xf6, 0x5b, 0x69, 0x75, 0x1b, 0x16, 0x98, 0xb2, 0x42, + 0xbe, 0xbf, 0xd0, 0x53, 0x84, 0x74, 0xdf, 0x3b, 0xac, 0xf2, 0xb7, 0xde, 0x22, 0xe5, 0x5a, 0x9e, + 0x67, 0x50, 0x3c, 0x46, 0x0f, 0x1a, 0x55, 0x19, 0x1e, 0x88, 0xf0, 0xd1, 0xad, 0x89, 0xdc, 0x18, + 0xc6, 0xef, 0x33, 0xc6, 0x85, 0x10, 0x63, 0x87, 0x41, 0xab, 0x75, 0x98, 0x3d, 0x0e, 0xd7, 0x3f, + 0x31, 0xae, 0x22, 0x0a, 0x93, 0x6c, 0xc0, 0x1c, 0x21, 0xd1, 0x06, 0x9e, 0x6f, 0xf7, 0x49, 0xde, + 0xbb, 0x3f, 0xcd, 0x3f, 0xbf, 0x45, 0xf7, 0x4a, 0x09, 0xc3, 0xea, 0x01, 0xaa, 0x5a, 0x05, 0xf2, + 0xc9, 0x49, 0x47, 0x9a, 0x19, 0xc3, 0xf0, 0x06, 0x33, 0x24, 0xd0, 0xaf, 0x7e, 0x0e, 0x16, 0xf1, + 0xff, 0x24, 0x2d, 0x85, 0x2d, 0x89, 0xbf, 0xf0, 0x2a, 0xff, 0xf0, 0x65, 0xba, 0x1d, 0x17, 0x02, + 0x82, 0x90, 0x4d, 0xa1, 0x55, 0xec, 0x21, 0xdf, 0x47, 0xae, 0xa7, 0xa8, 0xe6, 0x24, 0xf3, 0x42, + 0x37, 0x06, 0xe5, 0xaf, 0xbc, 0x13, 0x5d, 0xc5, 0x0d, 0x8a, 0xac, 0x99, 0x66, 0x75, 0x17, 0x4e, + 0x4e, 0x88, 0x8a, 0x04, 0x9c, 0xaf, 0x30, 0xce, 0xc5, 0xb1, 0xc8, 0xc0, 0xb4, 0x6d, 0xe0, 0xf2, + 0x60, 0x2d, 0x13, 0x70, 0xfe, 0x01, 0xe3, 0x94, 0x18, 0x96, 0x2f, 0x29, 0x66, 0xbc, 0x06, 0xf3, + 0x37, 0x91, 0xbb, 0x67, 0x7b, 0xec, 0x96, 0x26, 0x01, 0xdd, 0xab, 0x8c, 0x6e, 0x8e, 0x01, 0xc9, + 0xb5, 0x0d, 0xe6, 0xba, 0x0c, 0xb9, 0xae, 0xaa, 0xa1, 0x04, 0x14, 0x5f, 0x65, 0x14, 0x33, 0x58, + 0x1f, 0x43, 0x6b, 0x50, 0xec, 0xd9, 0xac, 0x32, 0xc5, 0xc3, 0x5f, 0x63, 0xf0, 0x02, 0xc7, 0x30, + 0x0a, 0xc7, 0x76, 0x06, 0x26, 0x2e, 0x5b, 0xf1, 0x14, 0x7f, 0xc8, 0x29, 0x38, 0x86, 0x51, 0x1c, + 0xc3, 0xad, 0x7f, 0xc4, 0x29, 0xbc, 0x90, 0x3f, 0x9f, 0x85, 0x82, 0x6d, 0x99, 0x07, 0xb6, 0x95, + 0xc4, 0x88, 0x3f, 0x66, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x0a, 0xe4, 0x93, 0x2e, 0xc4, 0x9f, 0xbe, + 0xc3, 0xb7, 0x07, 0x5f, 0x81, 0x0d, 0x98, 0xe3, 0x09, 0xca, 0xb0, 0xad, 0x04, 0x14, 0x7f, 0xc6, + 0x28, 0x4a, 0x21, 0x18, 0x9b, 0x86, 0x8f, 0x3c, 0xbf, 0x87, 0x92, 0x90, 0xbc, 0xce, 0xa7, 0xc1, + 0x20, 0xcc, 0x95, 0x7b, 0xc8, 0xd2, 0xf6, 0x93, 0x31, 0x7c, 0x8d, 0xbb, 0x92, 0x63, 0x30, 0x45, + 0x1d, 0x66, 0xfb, 0xaa, 0xeb, 0xed, 0xab, 0x66, 0xa2, 0xe5, 0xf8, 0x73, 0xc6, 0x51, 0x0c, 0x40, + 0xcc, 0x23, 0x03, 0xeb, 0x38, 0x34, 0x5f, 0xe7, 0x1e, 0x09, 0xc1, 0xd8, 0xd6, 0xf3, 0x7c, 0x72, + 0xa5, 0x75, 0x1c, 0xb6, 0xbf, 0xe0, 0x5b, 0x8f, 0x62, 0xb7, 0xc2, 0x8c, 0x57, 0x20, 0xef, 0x19, + 0xb7, 0x13, 0xd1, 0xfc, 0x25, 0x5f, 0x69, 0x02, 0xc0, 0xe0, 0x17, 0xe0, 0xd4, 0xc4, 0x32, 0x91, + 0x80, 0xec, 0x1b, 0x8c, 0xec, 0xc4, 0x84, 0x52, 0xc1, 0x52, 0xc2, 0x71, 0x29, 0xff, 0x8a, 0xa7, + 0x04, 0x34, 0xc2, 0xd5, 0xc6, 0x67, 0x05, 0x4f, 0xed, 0x1e, 0xcf, 0x6b, 0x7f, 0xcd, 0xbd, 0x46, + 0xb1, 0x11, 0xaf, 0xed, 0xc0, 0x09, 0xc6, 0x78, 0xbc, 0x75, 0xfd, 0x26, 0x4f, 0xac, 0x14, 0xbd, + 0x1b, 0x5d, 0xdd, 0xcf, 0xc3, 0x52, 0xe0, 0x4e, 0xde, 0x94, 0x7a, 0x4a, 0x5f, 0x75, 0x12, 0x30, + 0x7f, 0x8b, 0x31, 0xf3, 0x8c, 0x1f, 0x74, 0xb5, 0xde, 0x96, 0xea, 0x60, 0xf2, 0xe7, 0xa1, 0xcc, + 0xc9, 0x07, 0x96, 0x8b, 0x34, 0xbb, 0x67, 0x19, 0xb7, 0x91, 0x9e, 0x80, 0xfa, 0x6f, 0x46, 0x96, + 0x6a, 0x37, 0x04, 0xc7, 0xcc, 0x4d, 0x10, 0x83, 0x5e, 0x45, 0x31, 0xfa, 0x8e, 0xed, 0xfa, 0x31, + 0x8c, 0xdf, 0xe6, 0x2b, 0x15, 0xe0, 0x9a, 0x04, 0x56, 0x6d, 0x40, 0x89, 0x3c, 0x26, 0x0d, 0xc9, + 0xbf, 0x65, 0x44, 0xb3, 0x43, 0x14, 0x4b, 0x1c, 0x9a, 0xdd, 0x77, 0x54, 0x37, 0x49, 0xfe, 0xfb, + 0x3b, 0x9e, 0x38, 0x18, 0x84, 0x25, 0x0e, 0xff, 0xc0, 0x41, 0xb8, 0xda, 0x27, 0x60, 0xf8, 0x0e, + 0x4f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, 0x90, 0x80, 0xe2, 0xef, 0x39, 0x05, 0xc7, 0x60, 0x8a, + 0xcf, 0x0e, 0x0b, 0xad, 0x8b, 0x7a, 0x86, 0xe7, 0xbb, 0xb4, 0x15, 0xbe, 0x3f, 0xd5, 0x77, 0xdf, + 0x89, 0x36, 0x61, 0x72, 0x08, 0x5a, 0xbd, 0x06, 0x73, 0x23, 0x2d, 0x86, 0x14, 0xf7, 0xfb, 0x95, + 0xf2, 0x2f, 0xbd, 0xc7, 0x92, 0x51, 0xb4, 0xc3, 0xa8, 0x6e, 0xe2, 0x75, 0x8f, 0xf6, 0x01, 0xf1, + 0x64, 0x2f, 0xbf, 0x17, 0x2c, 0x7d, 0xa4, 0x0d, 0xa8, 0x5e, 0x85, 0xd9, 0x48, 0x0f, 0x10, 0x4f, + 0xf5, 0xcb, 0x8c, 0xaa, 0x18, 0x6e, 0x01, 0xaa, 0x17, 0x21, 0x83, 0xeb, 0x79, 0x3c, 0xfc, 0x57, + 0x18, 0x9c, 0xa8, 0x57, 0x3f, 0x05, 0x39, 0x5e, 0xc7, 0xe3, 0xa1, 0xbf, 0xca, 0xa0, 0x01, 0x04, + 0xc3, 0x79, 0x0d, 0x8f, 0x87, 0xff, 0x1a, 0x87, 0x73, 0x08, 0x86, 0x27, 0x77, 0xe1, 0xf7, 0x7e, + 0x3d, 0xc3, 0xf2, 0x30, 0xf7, 0xdd, 0x15, 0x98, 0x61, 0xc5, 0x3b, 0x1e, 0xfd, 0x45, 0xf6, 0x72, + 0x8e, 0xa8, 0x3e, 0x0d, 0xd9, 0x84, 0x0e, 0xff, 0x0d, 0x06, 0xa5, 0xfa, 0xd5, 0x3a, 0x14, 0x42, + 0x05, 0x3b, 0x1e, 0xfe, 0x9b, 0x0c, 0x1e, 0x46, 0x61, 0xd3, 0x59, 0xc1, 0x8e, 0x27, 0xf8, 0x2d, + 0x6e, 0x3a, 0x43, 0x60, 0xb7, 0xf1, 0x5a, 0x1d, 0x8f, 0xfe, 0x6d, 0xee, 0x75, 0x0e, 0xa9, 0x3e, + 0x0b, 0xf9, 0x20, 0xff, 0xc6, 0xe3, 0x7f, 0x87, 0xe1, 0x87, 0x18, 0xec, 0x81, 0x50, 0xfe, 0x8f, + 0xa7, 0xf8, 0x5d, 0xee, 0x81, 0x10, 0x0a, 0x6f, 0xa3, 0xd1, 0x9a, 0x1e, 0xcf, 0xf4, 0x7b, 0x7c, + 0x1b, 0x8d, 0x94, 0x74, 0xbc, 0x9a, 0x24, 0x0d, 0xc6, 0x53, 0xfc, 0x3e, 0x5f, 0x4d, 0xa2, 0x8f, + 0xcd, 0x18, 0x2d, 0x92, 0xf1, 0x1c, 0x5f, 0xe2, 0x66, 0x8c, 0xd4, 0xc8, 0x6a, 0x1b, 0xa4, 0xf1, + 0x02, 0x19, 0xcf, 0xf7, 0x65, 0xc6, 0x37, 0x3f, 0x56, 0x1f, 0xab, 0xcf, 0xc1, 0x89, 0xc9, 0xc5, + 0x31, 0x9e, 0xf5, 0x2b, 0xef, 0x8d, 0x1c, 0x67, 0xc2, 0xb5, 0xb1, 0xba, 0x33, 0xcc, 0xb2, 0xe1, + 0xc2, 0x18, 0x4f, 0xfb, 0xca, 0x7b, 0xd1, 0x44, 0x1b, 0xae, 0x8b, 0xd5, 0x1a, 0xc0, 0xb0, 0x26, + 0xc5, 0x73, 0xbd, 0xca, 0xb8, 0x42, 0x20, 0xbc, 0x35, 0x58, 0x49, 0x8a, 0xc7, 0x7f, 0x95, 0x6f, + 0x0d, 0x86, 0xc0, 0x5b, 0x83, 0x57, 0xa3, 0x78, 0xf4, 0x6b, 0x7c, 0x6b, 0x70, 0x48, 0xf5, 0x0a, + 0xe4, 0xac, 0x81, 0x69, 0xe2, 0xd8, 0x92, 0xee, 0xff, 0x93, 0xac, 0xf2, 0x7f, 0xdc, 0x63, 0x60, + 0x0e, 0xa8, 0x5e, 0x84, 0x2c, 0xea, 0xef, 0x21, 0x3d, 0x0e, 0xf9, 0x9f, 0xf7, 0x78, 0x3e, 0xc1, + 0xda, 0xd5, 0x67, 0x01, 0xe8, 0x61, 0x9a, 0x7c, 0x28, 0x8a, 0xc1, 0xfe, 0xd7, 0x3d, 0xf6, 0x63, + 0x89, 0x21, 0x64, 0x48, 0x40, 0x7f, 0x7a, 0x71, 0x7f, 0x82, 0x77, 0xa2, 0x04, 0xe4, 0x00, 0x7e, + 0x19, 0x66, 0xae, 0x7b, 0xb6, 0xe5, 0xab, 0xbd, 0x38, 0xf4, 0x7f, 0x33, 0x34, 0xd7, 0xc7, 0x0e, + 0xeb, 0xdb, 0x2e, 0xf2, 0xd5, 0x9e, 0x17, 0x87, 0xfd, 0x1f, 0x86, 0x0d, 0x00, 0x18, 0xac, 0xa9, + 0x9e, 0x9f, 0x64, 0xde, 0x3f, 0xe6, 0x60, 0x0e, 0xc0, 0x46, 0xe3, 0xff, 0x6f, 0xa0, 0x83, 0x38, + 0xec, 0xbb, 0xdc, 0x68, 0xa6, 0x5f, 0xfd, 0x14, 0xe4, 0xf1, 0xbf, 0xf4, 0x17, 0x50, 0x31, 0xe0, + 0xff, 0x65, 0xe0, 0x21, 0x02, 0xbf, 0xd9, 0xf3, 0x75, 0xdf, 0x88, 0x77, 0xf6, 0xff, 0xb1, 0x95, + 0xe6, 0xfa, 0xd5, 0x1a, 0x14, 0x3c, 0x5f, 0xd7, 0x07, 0xac, 0xa3, 0x89, 0x81, 0xff, 0xff, 0xbd, + 0xe0, 0x90, 0x1b, 0x60, 0xd6, 0x1a, 0x93, 0xef, 0xeb, 0x60, 0xc3, 0xde, 0xb0, 0xe9, 0x4d, 0xdd, + 0x8b, 0xcb, 0xf1, 0x57, 0x6e, 0xf0, 0x0d, 0x01, 0x4a, 0x5d, 0xc3, 0x44, 0xab, 0xba, 0xed, 0xb3, + 0xab, 0xb7, 0x02, 0x7e, 0xd6, 0x6d, 0x1f, 0xc7, 0xc4, 0xd2, 0xf1, 0xae, 0xed, 0x96, 0xe7, 0x41, + 0xd8, 0x92, 0x8a, 0x20, 0xa8, 0xec, 0xc7, 0x2f, 0x82, 0xba, 0xb6, 0xf9, 0xc6, 0xdd, 0xca, 0xd4, + 0x0f, 0xee, 0x56, 0xa6, 0xfe, 0xf5, 0x6e, 0x65, 0xea, 0xcd, 0xbb, 0x15, 0xe1, 0xed, 0xbb, 0x15, + 0xe1, 0xdd, 0xbb, 0x15, 0xe1, 0xfd, 0xbb, 0x15, 0xe1, 0xce, 0x61, 0x45, 0xf8, 0xda, 0x61, 0x45, + 0xf8, 0xe6, 0x61, 0x45, 0xf8, 0xee, 0x61, 0x45, 0xf8, 0xde, 0x61, 0x45, 0x78, 0xe3, 0xb0, 0x32, + 0xf5, 0x83, 0xc3, 0xca, 0xd4, 0x9b, 0x87, 0x15, 0xe1, 0xed, 0xc3, 0xca, 0xd4, 0xbb, 0x87, 0x15, + 0xe1, 0xfd, 0xc3, 0xca, 0xd4, 0x9d, 0x1f, 0x55, 0xa6, 0x7e, 0x12, 0x00, 0x00, 0xff, 0xff, 0x5a, + 0x46, 0xcb, 0x7d, 0x3c, 0x31, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -381,15 +386,15 @@ func (this *M) Equal(that interface{}) bool { } type MFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetA() *string } -func (this *M) Proto() github_com_gogo_protobuf_proto.Message { +func (this *M) Proto() proto.Message { return this } -func (this *M) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *M) TestProto() proto.Message { return NewMFromFace(this) } diff --git a/vendor/github.com/gogo/protobuf/test/filedotname/file.dotpb_test.go b/vendor/github.com/gogo/protobuf/test/filedotname/file.dotpb_test.go index 8031fc9ef..063602822 100644 --- a/vendor/github.com/gogo/protobuf/test/filedotname/file.dotpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/filedotname/file.dotpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: file.dot.proto -// DO NOT EDIT! /* Package filedotname is a generated protocol buffer package. @@ -14,13 +13,12 @@ It has these top-level messages: package filedotname import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -31,14 +29,14 @@ var _ = math.Inf func TestMProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -59,12 +57,12 @@ func TestMProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*M, 10000) for i := 0; i < 10000; i++ { @@ -72,7 +70,7 @@ func BenchmarkMProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -82,11 +80,11 @@ func BenchmarkMProtoMarshal(b *testing.B) { } func BenchmarkMProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedM(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedM(popr, false)) if err != nil { panic(err) } @@ -96,7 +94,7 @@ func BenchmarkMProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -105,15 +103,15 @@ func BenchmarkMProtoUnmarshal(b *testing.B) { func TestMJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &M{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -126,11 +124,11 @@ func TestMJSON(t *testing.T) { } func TestMProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &M{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -143,11 +141,11 @@ func TestMProtoText(t *testing.T) { func TestMProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &M{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -162,14 +160,14 @@ func TestFileDotDescription(t *testing.T) { FileDotDescription() } func TestMVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedM(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &M{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -177,7 +175,7 @@ func TestMVerboseEqual(t *testing.T) { } } func TestMFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedM(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -185,24 +183,24 @@ func TestMFace(t *testing.T) { } } func TestMGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedM(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedM(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -213,14 +211,14 @@ func TestMSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*M, 1000) for i := 0; i < 1000; i++ { @@ -234,7 +232,7 @@ func BenchmarkMSize(b *testing.B) { } func TestMStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedM(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go index 834f11a14..dbf8dc240 100644 --- a/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go +++ b/vendor/github.com/gogo/protobuf/test/fuzztests/fuzz.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: fuzz.proto -// DO NOT EDIT! /* Package fuzztests is a generated protocol buffer package. @@ -24,6 +23,8 @@ import _ "github.com/gogo/protobuf/gogoproto" import strings "strings" import reflect "reflect" +import binary "encoding/binary" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -595,22 +596,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field1)*8)) for _, num := range m.Field1 { f1 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f1) - i++ - dAtA[i] = uint8(f1 >> 8) - i++ - dAtA[i] = uint8(f1 >> 16) - i++ - dAtA[i] = uint8(f1 >> 24) - i++ - dAtA[i] = uint8(f1 >> 32) - i++ - dAtA[i] = uint8(f1 >> 40) - i++ - dAtA[i] = uint8(f1 >> 48) - i++ - dAtA[i] = uint8(f1 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f1)) + i += 8 } } if len(m.Field2) > 0 { @@ -619,14 +606,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field2)*4)) for _, num := range m.Field2 { f2 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f2) - i++ - dAtA[i] = uint8(f2 >> 8) - i++ - dAtA[i] = uint8(f2 >> 16) - i++ - dAtA[i] = uint8(f2 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f2)) + i += 4 } } if len(m.Field3) > 0 { @@ -740,14 +721,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field9)*4)) for _, num := range m.Field9 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field10) > 0 { @@ -755,14 +730,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field10)*4)) for _, num := range m.Field10 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(num)) + i += 4 } } if len(m.Field11) > 0 { @@ -770,22 +739,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field11)*8)) for _, num := range m.Field11 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field12) > 0 { @@ -793,22 +748,8 @@ func (m *NinRepPackedNative) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintFuzz(dAtA, i, uint64(len(m.Field12)*8)) for _, num := range m.Field12 { - dAtA[i] = uint8(num) - i++ - dAtA[i] = uint8(num >> 8) - i++ - dAtA[i] = uint8(num >> 16) - i++ - dAtA[i] = uint8(num >> 24) - i++ - dAtA[i] = uint8(num >> 32) - i++ - dAtA[i] = uint8(num >> 40) - i++ - dAtA[i] = uint8(num >> 48) - i++ - dAtA[i] = uint8(num >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(num)) + i += 8 } } if len(m.Field13) > 0 { @@ -848,12 +789,14 @@ func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Fuzz(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Fuzz(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x18 @@ -888,22 +831,26 @@ func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { if m.Field9 != nil { dAtA[i] = 0x4d i++ - i = encodeFixed32Fuzz(dAtA, i, uint32(*m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field9)) + i += 4 } if m.Field10 != nil { dAtA[i] = 0x55 i++ - i = encodeFixed32Fuzz(dAtA, i, uint32(*m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field10)) + i += 4 } if m.Field11 != nil { dAtA[i] = 0x59 i++ - i = encodeFixed64Fuzz(dAtA, i, uint64(*m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field11)) + i += 8 } if m.Field12 != nil { dAtA[i] = 0x61 i++ - i = encodeFixed64Fuzz(dAtA, i, uint64(*m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field12)) + i += 8 } if m.Field13 != nil { dAtA[i] = 0x68 @@ -951,12 +898,14 @@ func (m *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { if m.Field1 != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Fuzz(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 != nil { dAtA[i] = 0x15 i++ - i = encodeFixed32Fuzz(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 != nil { dAtA[i] = 0x1a @@ -1026,24 +975,6 @@ func (m *NinOptStruct) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Fuzz(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 encodeFixed32Fuzz(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 encodeVarintFuzz(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1333,15 +1264,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -1372,15 +1296,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -1393,11 +1310,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -1428,11 +1342,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -1821,11 +1732,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -1855,11 +1763,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -1871,11 +1776,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -1905,11 +1807,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -1921,15 +1820,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -1959,15 +1851,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -1979,15 +1864,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -2017,15 +1895,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -2152,15 +2023,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -2171,11 +2035,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: @@ -2309,11 +2170,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v case 10: if wireType != 5 { @@ -2323,11 +2181,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v case 11: if wireType != 1 { @@ -2337,15 +2192,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v case 12: if wireType != 1 { @@ -2355,15 +2203,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v case 13: if wireType != 0 { @@ -2506,15 +2347,8 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 case 2: @@ -2525,11 +2359,8 @@ func (m *NinOptStruct) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 case 3: diff --git a/vendor/github.com/gogo/protobuf/test/group/group.pb.go b/vendor/github.com/gogo/protobuf/test/group/group.pb.go index 9938b6608..931e3566c 100644 --- a/vendor/github.com/gogo/protobuf/test/group/group.pb.go +++ b/vendor/github.com/gogo/protobuf/test/group/group.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: group.proto -// DO NOT EDIT! /* Package group is a generated protocol buffer package. @@ -19,11 +18,10 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" @@ -83,263 +81,270 @@ func init() { proto.RegisterType((*Groups2)(nil), "group.Groups2") proto.RegisterType((*Groups2_G)(nil), "group.Groups2.G") } -func (this *Groups1) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Groups1) Description() (desc *descriptor.FileDescriptorSet) { return GroupDescription() } -func (this *Groups1_G) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Groups1_G) Description() (desc *descriptor.FileDescriptorSet) { return GroupDescription() } -func (this *Groups2) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Groups2) Description() (desc *descriptor.FileDescriptorSet) { return GroupDescription() } -func (this *Groups2_G) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Groups2_G) Description() (desc *descriptor.FileDescriptorSet) { return GroupDescription() } -func GroupDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func GroupDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3678 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0xdb, 0xd8, - 0x75, 0x16, 0xf8, 0x23, 0x91, 0x87, 0x14, 0x05, 0x41, 0x5a, 0x99, 0xd6, 0x66, 0x69, 0x59, 0xd9, - 0xcd, 0x6a, 0x77, 0x1b, 0x3a, 0xd1, 0xda, 0x5e, 0x1b, 0x6e, 0xe2, 0xa1, 0x28, 0x9a, 0xa1, 0x2b, - 0x89, 0x0c, 0x28, 0x65, 0xed, 0x74, 0xa6, 0x18, 0x08, 0xbc, 0xa4, 0x60, 0x83, 0x00, 0x03, 0x80, - 0xb6, 0xe5, 0x27, 0x77, 0xb6, 0x3f, 0x93, 0xe9, 0xf4, 0xbf, 0x33, 0x4d, 0xb6, 0x9b, 0x6d, 0x9b, - 0x99, 0x76, 0xd3, 0xa4, 0x3f, 0x49, 0x7f, 0xd2, 0xb4, 0x4f, 0x7d, 0x49, 0xbb, 0x4f, 0x9d, 0xe4, - 0xad, 0x0f, 0x7d, 0x58, 0xbb, 0x3b, 0xd3, 0x3f, 0xb7, 0x4d, 0x1b, 0xcf, 0xb4, 0x33, 0x7e, 0xe9, - 0xdc, 0x3f, 0x10, 0x20, 0x29, 0x81, 0xca, 0xcc, 0x26, 0x4f, 0xe2, 0x3d, 0xf7, 0x7c, 0x1f, 0x0e, - 0xce, 0x3d, 0xf7, 0x9c, 0x73, 0x2f, 0x04, 0xff, 0x74, 0x01, 0x56, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, - 0xb9, 0x9e, 0x63, 0x7b, 0xf6, 0x7e, 0xbf, 0x7d, 0xae, 0x85, 0x5c, 0xdd, 0x31, 0x7a, 0x9e, 0xed, - 0x14, 0x89, 0x4c, 0x9a, 0xa3, 0x1a, 0x45, 0xae, 0xb1, 0xba, 0x0d, 0xf3, 0xd7, 0x0c, 0x13, 0x6d, - 0xfa, 0x8a, 0x4d, 0xe4, 0x49, 0x97, 0x20, 0xd1, 0x36, 0x4c, 0x94, 0x17, 0x56, 0xe2, 0x6b, 0x99, - 0xf5, 0xe7, 0x8b, 0x43, 0xa0, 0x62, 0x18, 0xd1, 0xc0, 0x62, 0x85, 0x20, 0x56, 0xdf, 0x4f, 0xc0, - 0xc2, 0x98, 0x59, 0x49, 0x82, 0x84, 0xa5, 0x75, 0x31, 0xa3, 0xb0, 0x96, 0x56, 0xc8, 0x6f, 0x29, - 0x0f, 0x33, 0x3d, 0x4d, 0xbf, 0xad, 0x75, 0x50, 0x3e, 0x46, 0xc4, 0x7c, 0x28, 0x15, 0x00, 0x5a, - 0xa8, 0x87, 0xac, 0x16, 0xb2, 0xf4, 0xc3, 0x7c, 0x7c, 0x25, 0xbe, 0x96, 0x56, 0x02, 0x12, 0xe9, - 0x15, 0x98, 0xef, 0xf5, 0xf7, 0x4d, 0x43, 0x57, 0x03, 0x6a, 0xb0, 0x12, 0x5f, 0x4b, 0x2a, 0x22, - 0x9d, 0xd8, 0x1c, 0x28, 0xbf, 0x08, 0x73, 0x77, 0x91, 0x76, 0x3b, 0xa8, 0x9a, 0x21, 0xaa, 0x39, - 0x2c, 0x0e, 0x28, 0x96, 0x21, 0xdb, 0x45, 0xae, 0xab, 0x75, 0x90, 0xea, 0x1d, 0xf6, 0x50, 0x3e, - 0x41, 0xde, 0x7e, 0x65, 0xe4, 0xed, 0x87, 0xdf, 0x3c, 0xc3, 0x50, 0xbb, 0x87, 0x3d, 0x24, 0x95, - 0x20, 0x8d, 0xac, 0x7e, 0x97, 0x32, 0x24, 0x8f, 0xf0, 0x5f, 0xc5, 0xea, 0x77, 0x87, 0x59, 0x52, - 0x18, 0xc6, 0x28, 0x66, 0x5c, 0xe4, 0xdc, 0x31, 0x74, 0x94, 0x9f, 0x26, 0x04, 0x2f, 0x8e, 0x10, - 0x34, 0xe9, 0xfc, 0x30, 0x07, 0xc7, 0x49, 0x65, 0x48, 0xa3, 0x7b, 0x1e, 0xb2, 0x5c, 0xc3, 0xb6, - 0xf2, 0x33, 0x84, 0xe4, 0x85, 0x31, 0xab, 0x88, 0xcc, 0xd6, 0x30, 0xc5, 0x00, 0x27, 0x5d, 0x84, - 0x19, 0xbb, 0xe7, 0x19, 0xb6, 0xe5, 0xe6, 0x53, 0x2b, 0xc2, 0x5a, 0x66, 0xfd, 0x43, 0x63, 0x03, - 0xa1, 0x4e, 0x75, 0x14, 0xae, 0x2c, 0xd5, 0x40, 0x74, 0xed, 0xbe, 0xa3, 0x23, 0x55, 0xb7, 0x5b, - 0x48, 0x35, 0xac, 0xb6, 0x9d, 0x4f, 0x13, 0x82, 0x33, 0xa3, 0x2f, 0x42, 0x14, 0xcb, 0x76, 0x0b, - 0xd5, 0xac, 0xb6, 0xad, 0xe4, 0xdc, 0xd0, 0x58, 0x5a, 0x82, 0x69, 0xf7, 0xd0, 0xf2, 0xb4, 0x7b, - 0xf9, 0x2c, 0x89, 0x10, 0x36, 0x5a, 0xfd, 0xdf, 0x24, 0xcc, 0x4d, 0x12, 0x62, 0x57, 0x20, 0xd9, - 0xc6, 0x6f, 0x99, 0x8f, 0x9d, 0xc4, 0x07, 0x14, 0x13, 0x76, 0xe2, 0xf4, 0x0f, 0xe8, 0xc4, 0x12, - 0x64, 0x2c, 0xe4, 0x7a, 0xa8, 0x45, 0x23, 0x22, 0x3e, 0x61, 0x4c, 0x01, 0x05, 0x8d, 0x86, 0x54, - 0xe2, 0x07, 0x0a, 0xa9, 0x1b, 0x30, 0xe7, 0x9b, 0xa4, 0x3a, 0x9a, 0xd5, 0xe1, 0xb1, 0x79, 0x2e, - 0xca, 0x92, 0x62, 0x85, 0xe3, 0x14, 0x0c, 0x53, 0x72, 0x28, 0x34, 0x96, 0x36, 0x01, 0x6c, 0x0b, - 0xd9, 0x6d, 0xb5, 0x85, 0x74, 0x33, 0x9f, 0x3a, 0xc2, 0x4b, 0x75, 0xac, 0x32, 0xe2, 0x25, 0x9b, - 0x4a, 0x75, 0x53, 0xba, 0x3c, 0x08, 0xb5, 0x99, 0x23, 0x22, 0x65, 0x9b, 0x6e, 0xb2, 0x91, 0x68, - 0xdb, 0x83, 0x9c, 0x83, 0x70, 0xdc, 0xa3, 0x16, 0x7b, 0xb3, 0x34, 0x31, 0xa2, 0x18, 0xf9, 0x66, - 0x0a, 0x83, 0xd1, 0x17, 0x9b, 0x75, 0x82, 0x43, 0xe9, 0xc3, 0xe0, 0x0b, 0x54, 0x12, 0x56, 0x40, - 0xb2, 0x50, 0x96, 0x0b, 0x77, 0xb4, 0x2e, 0x5a, 0xbe, 0x04, 0xb9, 0xb0, 0x7b, 0xa4, 0x45, 0x48, - 0xba, 0x9e, 0xe6, 0x78, 0x24, 0x0a, 0x93, 0x0a, 0x1d, 0x48, 0x22, 0xc4, 0x91, 0xd5, 0x22, 0x59, - 0x2e, 0xa9, 0xe0, 0x9f, 0xcb, 0xaf, 0xc1, 0x6c, 0xe8, 0xf1, 0x93, 0x02, 0x57, 0xbf, 0x30, 0x0d, - 0x8b, 0xe3, 0x62, 0x6e, 0x6c, 0xf8, 0x2f, 0xc1, 0xb4, 0xd5, 0xef, 0xee, 0x23, 0x27, 0x1f, 0x27, - 0x0c, 0x6c, 0x24, 0x95, 0x20, 0x69, 0x6a, 0xfb, 0xc8, 0xcc, 0x27, 0x56, 0x84, 0xb5, 0xdc, 0xfa, - 0x2b, 0x13, 0x45, 0x75, 0x71, 0x0b, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x09, 0x09, 0x96, 0xe2, 0x30, - 0xc3, 0xcb, 0x93, 0x31, 0xe0, 0x58, 0x54, 0x08, 0x4e, 0x7a, 0x16, 0xd2, 0xf8, 0x2f, 0xf5, 0xed, - 0x34, 0xb1, 0x39, 0x85, 0x05, 0xd8, 0xaf, 0xd2, 0x32, 0xa4, 0x48, 0x98, 0xb5, 0x10, 0x2f, 0x0d, - 0xfe, 0x18, 0x2f, 0x4c, 0x0b, 0xb5, 0xb5, 0xbe, 0xe9, 0xa9, 0x77, 0x34, 0xb3, 0x8f, 0x48, 0xc0, - 0xa4, 0x95, 0x2c, 0x13, 0x7e, 0x06, 0xcb, 0xa4, 0x33, 0x90, 0xa1, 0x51, 0x69, 0x58, 0x2d, 0x74, - 0x8f, 0x64, 0x9f, 0xa4, 0x42, 0x03, 0xb5, 0x86, 0x25, 0xf8, 0xf1, 0xb7, 0x5c, 0xdb, 0xe2, 0x4b, - 0x4b, 0x1e, 0x81, 0x05, 0xe4, 0xf1, 0xaf, 0x0d, 0x27, 0xbe, 0xe7, 0xc6, 0xbf, 0xde, 0x70, 0x2c, - 0xae, 0x7e, 0x33, 0x06, 0x09, 0xb2, 0xdf, 0xe6, 0x20, 0xb3, 0x7b, 0xb3, 0x51, 0x51, 0x37, 0xeb, - 0x7b, 0x1b, 0x5b, 0x15, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x6d, 0xab, 0x5e, 0xda, 0x15, 0x63, - 0xfe, 0xb8, 0xb6, 0xb3, 0x7b, 0xf1, 0xbc, 0x18, 0xf7, 0x01, 0x7b, 0x54, 0x90, 0x08, 0x2a, 0xbc, - 0xba, 0x2e, 0x26, 0x25, 0x11, 0xb2, 0x94, 0xa0, 0x76, 0xa3, 0xb2, 0x79, 0xf1, 0xbc, 0x38, 0x1d, - 0x96, 0xbc, 0xba, 0x2e, 0xce, 0x48, 0xb3, 0x90, 0x26, 0x92, 0x8d, 0x7a, 0x7d, 0x4b, 0x4c, 0xf9, - 0x9c, 0xcd, 0x5d, 0xa5, 0xb6, 0x53, 0x15, 0xd3, 0x3e, 0x67, 0x55, 0xa9, 0xef, 0x35, 0x44, 0xf0, - 0x19, 0xb6, 0x2b, 0xcd, 0x66, 0xa9, 0x5a, 0x11, 0x33, 0xbe, 0xc6, 0xc6, 0xcd, 0xdd, 0x4a, 0x53, - 0xcc, 0x86, 0xcc, 0x7a, 0x75, 0x5d, 0x9c, 0xf5, 0x1f, 0x51, 0xd9, 0xd9, 0xdb, 0x16, 0x73, 0xd2, - 0x3c, 0xcc, 0xd2, 0x47, 0x70, 0x23, 0xe6, 0x86, 0x44, 0x17, 0xcf, 0x8b, 0xe2, 0xc0, 0x10, 0xca, - 0x32, 0x1f, 0x12, 0x5c, 0x3c, 0x2f, 0x4a, 0xab, 0x65, 0x48, 0x92, 0xe8, 0x92, 0x24, 0xc8, 0x6d, - 0x95, 0x36, 0x2a, 0x5b, 0x6a, 0xbd, 0xb1, 0x5b, 0xab, 0xef, 0x94, 0xb6, 0x44, 0x61, 0x20, 0x53, - 0x2a, 0x9f, 0xde, 0xab, 0x29, 0x95, 0x4d, 0x31, 0x16, 0x94, 0x35, 0x2a, 0xa5, 0xdd, 0xca, 0xa6, - 0x18, 0x5f, 0xd5, 0x61, 0x71, 0x5c, 0x9e, 0x19, 0xbb, 0x33, 0x02, 0x4b, 0x1c, 0x3b, 0x62, 0x89, - 0x09, 0xd7, 0xc8, 0x12, 0x7f, 0x59, 0x80, 0x85, 0x31, 0xb9, 0x76, 0xec, 0x43, 0xae, 0x42, 0x92, - 0x86, 0x28, 0xad, 0x3e, 0x2f, 0x8d, 0x4d, 0xda, 0x24, 0x60, 0x47, 0x2a, 0x10, 0xc1, 0x05, 0x2b, - 0x70, 0xfc, 0x88, 0x0a, 0x8c, 0x29, 0x46, 0x8c, 0x7c, 0x43, 0x80, 0xfc, 0x51, 0xdc, 0x11, 0x89, - 0x22, 0x16, 0x4a, 0x14, 0x57, 0x86, 0x0d, 0x38, 0x7b, 0xf4, 0x3b, 0x8c, 0x58, 0xf1, 0x8e, 0x00, - 0x4b, 0xe3, 0x1b, 0x95, 0xb1, 0x36, 0x7c, 0x12, 0xa6, 0xbb, 0xc8, 0x3b, 0xb0, 0x79, 0xb1, 0xfe, - 0xc8, 0x98, 0x12, 0x80, 0xa7, 0x87, 0x7d, 0xc5, 0x50, 0xc1, 0x1a, 0x12, 0x3f, 0xaa, 0xdb, 0xa0, - 0xd6, 0x8c, 0x58, 0xfa, 0xf9, 0x18, 0x3c, 0x33, 0x96, 0x7c, 0xac, 0xa1, 0xcf, 0x01, 0x18, 0x56, - 0xaf, 0xef, 0xd1, 0x82, 0x4c, 0xf3, 0x53, 0x9a, 0x48, 0xc8, 0xde, 0xc7, 0xb9, 0xa7, 0xef, 0xf9, - 0xf3, 0x71, 0x32, 0x0f, 0x54, 0x44, 0x14, 0x2e, 0x0d, 0x0c, 0x4d, 0x10, 0x43, 0x0b, 0x47, 0xbc, - 0xe9, 0x48, 0xad, 0xfb, 0x18, 0x88, 0xba, 0x69, 0x20, 0xcb, 0x53, 0x5d, 0xcf, 0x41, 0x5a, 0xd7, - 0xb0, 0x3a, 0x24, 0x01, 0xa7, 0xe4, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xcc, 0xd1, 0xe9, 0x26, 0x9f, - 0xc5, 0x08, 0x52, 0x65, 0x9c, 0x00, 0x62, 0x3a, 0x84, 0xa0, 0xd3, 0x3e, 0x62, 0xf5, 0x6b, 0x33, - 0x90, 0x09, 0xb4, 0x75, 0xd2, 0x59, 0xc8, 0xde, 0xd2, 0xee, 0x68, 0x2a, 0x6f, 0xd5, 0xa9, 0x27, - 0x32, 0x58, 0xd6, 0x60, 0xed, 0xfa, 0xc7, 0x60, 0x91, 0xa8, 0xd8, 0x7d, 0x0f, 0x39, 0xaa, 0x6e, - 0x6a, 0xae, 0x4b, 0x9c, 0x96, 0x22, 0xaa, 0x12, 0x9e, 0xab, 0xe3, 0xa9, 0x32, 0x9f, 0x91, 0x2e, - 0xc0, 0x02, 0x41, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0xc3, 0x83, 0x4b, 0x12, 0xb1, - 0x6f, 0xd9, 0x3c, 0xd6, 0xd8, 0x66, 0x0a, 0xd8, 0x22, 0x57, 0xda, 0x84, 0xe7, 0x08, 0xac, 0x83, - 0x2c, 0xe4, 0x68, 0x1e, 0x52, 0xd1, 0xe7, 0xfa, 0x9a, 0xe9, 0xaa, 0x9a, 0xd5, 0x52, 0x0f, 0x34, - 0xf7, 0x20, 0xbf, 0x88, 0x09, 0x36, 0x62, 0x79, 0x41, 0x39, 0x8d, 0x15, 0xab, 0x4c, 0xaf, 0x42, - 0xd4, 0x4a, 0x56, 0xeb, 0x53, 0x9a, 0x7b, 0x20, 0xc9, 0xb0, 0x44, 0x58, 0x5c, 0xcf, 0x31, 0xac, - 0x8e, 0xaa, 0x1f, 0x20, 0xfd, 0xb6, 0xda, 0xf7, 0xda, 0x97, 0xf2, 0xcf, 0x06, 0x9f, 0x4f, 0x2c, - 0x6c, 0x12, 0x9d, 0x32, 0x56, 0xd9, 0xf3, 0xda, 0x97, 0xa4, 0x26, 0x64, 0xf1, 0x62, 0x74, 0x8d, - 0xfb, 0x48, 0x6d, 0xdb, 0x0e, 0xa9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0xe0, 0xc1, 0x62, 0x9d, 0x01, - 0xb6, 0xed, 0x16, 0x92, 0x93, 0xcd, 0x46, 0xa5, 0xb2, 0xa9, 0x64, 0x38, 0xcb, 0x35, 0xdb, 0xc1, - 0x01, 0xd5, 0xb1, 0x7d, 0x07, 0x67, 0x68, 0x40, 0x75, 0x6c, 0xee, 0xde, 0x0b, 0xb0, 0xa0, 0xeb, - 0xf4, 0x9d, 0x0d, 0x5d, 0x65, 0x2d, 0xbe, 0x9b, 0x17, 0x43, 0xce, 0xd2, 0xf5, 0x2a, 0x55, 0x60, - 0x31, 0xee, 0x4a, 0x97, 0xe1, 0x99, 0x81, 0xb3, 0x82, 0xc0, 0xf9, 0x91, 0xb7, 0x1c, 0x86, 0x5e, - 0x80, 0x85, 0xde, 0xe1, 0x28, 0x50, 0x0a, 0x3d, 0xb1, 0x77, 0x38, 0x0c, 0x7b, 0x81, 0x1c, 0xdb, - 0x1c, 0xa4, 0x6b, 0x1e, 0x6a, 0xe5, 0x4f, 0x05, 0xb5, 0x03, 0x13, 0xd2, 0x39, 0x10, 0x75, 0x5d, - 0x45, 0x96, 0xb6, 0x6f, 0x22, 0x55, 0x73, 0x90, 0xa5, 0xb9, 0xf9, 0x33, 0x41, 0xe5, 0x9c, 0xae, - 0x57, 0xc8, 0x6c, 0x89, 0x4c, 0x4a, 0x2f, 0xc3, 0xbc, 0xbd, 0x7f, 0x4b, 0xa7, 0x91, 0xa5, 0xf6, - 0x1c, 0xd4, 0x36, 0xee, 0xe5, 0x9f, 0x27, 0x6e, 0x9a, 0xc3, 0x13, 0x24, 0xae, 0x1a, 0x44, 0x2c, - 0xbd, 0x04, 0xa2, 0xee, 0x1e, 0x68, 0x4e, 0x8f, 0x94, 0x76, 0xb7, 0xa7, 0xe9, 0x28, 0xff, 0x02, - 0x55, 0xa5, 0xf2, 0x1d, 0x2e, 0xc6, 0x91, 0xed, 0xde, 0x35, 0xda, 0x1e, 0x67, 0x7c, 0x91, 0x46, - 0x36, 0x91, 0x31, 0xb6, 0x1b, 0xb0, 0xd8, 0xb7, 0x0c, 0xcb, 0x43, 0x4e, 0xcf, 0x41, 0xb8, 0x89, - 0xa7, 0x3b, 0x31, 0xff, 0xcf, 0x33, 0x47, 0xb4, 0xe1, 0x7b, 0x41, 0x6d, 0x1a, 0x00, 0xca, 0x42, - 0x7f, 0x54, 0xb8, 0x2a, 0x43, 0x36, 0x18, 0x17, 0x52, 0x1a, 0x68, 0x64, 0x88, 0x02, 0xae, 0xb1, - 0xe5, 0xfa, 0x26, 0xae, 0x8e, 0x9f, 0xad, 0x88, 0x31, 0x5c, 0xa5, 0xb7, 0x6a, 0xbb, 0x15, 0x55, - 0xd9, 0xdb, 0xd9, 0xad, 0x6d, 0x57, 0xc4, 0xf8, 0xcb, 0xe9, 0xd4, 0xbf, 0xcc, 0x88, 0x0f, 0x1e, - 0x3c, 0x78, 0x10, 0x5b, 0xfd, 0x76, 0x0c, 0x72, 0xe1, 0xce, 0x58, 0xfa, 0x71, 0x38, 0xc5, 0x8f, - 0xb1, 0x2e, 0xf2, 0xd4, 0xbb, 0x86, 0x43, 0x42, 0xb5, 0xab, 0xd1, 0xde, 0xd2, 0xf7, 0xf2, 0x22, - 0xd3, 0x6a, 0x22, 0xef, 0x75, 0xc3, 0xc1, 0x81, 0xd8, 0xd5, 0x3c, 0x69, 0x0b, 0xce, 0x58, 0xb6, - 0xea, 0x7a, 0x9a, 0xd5, 0xd2, 0x9c, 0x96, 0x3a, 0xb8, 0x40, 0x50, 0x35, 0x5d, 0x47, 0xae, 0x6b, - 0xd3, 0x12, 0xe1, 0xb3, 0x7c, 0xc8, 0xb2, 0x9b, 0x4c, 0x79, 0x90, 0x3b, 0x4b, 0x4c, 0x75, 0x28, - 0x22, 0xe2, 0x47, 0x45, 0xc4, 0xb3, 0x90, 0xee, 0x6a, 0x3d, 0x15, 0x59, 0x9e, 0x73, 0x48, 0xfa, - 0xb9, 0x94, 0x92, 0xea, 0x6a, 0xbd, 0x0a, 0x1e, 0x7f, 0x70, 0x6b, 0x10, 0xf4, 0xe3, 0x3f, 0xc6, - 0x21, 0x1b, 0xec, 0xe9, 0x70, 0x8b, 0xac, 0x93, 0xfc, 0x2d, 0x90, 0x1d, 0xfe, 0xe1, 0x63, 0x3b, - 0xc0, 0x62, 0x19, 0x27, 0x76, 0x79, 0x9a, 0x76, 0x5a, 0x0a, 0x45, 0xe2, 0xa2, 0x8a, 0xf7, 0x34, - 0xa2, 0xfd, 0x7b, 0x4a, 0x61, 0x23, 0xa9, 0x0a, 0xd3, 0xb7, 0x5c, 0xc2, 0x3d, 0x4d, 0xb8, 0x9f, - 0x3f, 0x9e, 0xfb, 0x7a, 0x93, 0x90, 0xa7, 0xaf, 0x37, 0xd5, 0x9d, 0xba, 0xb2, 0x5d, 0xda, 0x52, - 0x18, 0x5c, 0x3a, 0x0d, 0x09, 0x53, 0xbb, 0x7f, 0x18, 0x2e, 0x01, 0x44, 0x34, 0xa9, 0xe3, 0x4f, - 0x43, 0xe2, 0x2e, 0xd2, 0x6e, 0x87, 0x13, 0x2f, 0x11, 0x7d, 0x80, 0xa1, 0x7f, 0x0e, 0x92, 0xc4, - 0x5f, 0x12, 0x00, 0xf3, 0x98, 0x38, 0x25, 0xa5, 0x20, 0x51, 0xae, 0x2b, 0x38, 0xfc, 0x45, 0xc8, - 0x52, 0xa9, 0xda, 0xa8, 0x55, 0xca, 0x15, 0x31, 0xb6, 0x7a, 0x01, 0xa6, 0xa9, 0x13, 0xf0, 0xd6, - 0xf0, 0xdd, 0x20, 0x4e, 0xb1, 0x21, 0xe3, 0x10, 0xf8, 0xec, 0xde, 0xf6, 0x46, 0x45, 0x11, 0x63, - 0xc1, 0xe5, 0x75, 0x21, 0x1b, 0x6c, 0xe7, 0x7e, 0x38, 0x31, 0xf5, 0xd7, 0x02, 0x64, 0x02, 0xed, - 0x19, 0x6e, 0x0c, 0x34, 0xd3, 0xb4, 0xef, 0xaa, 0x9a, 0x69, 0x68, 0x2e, 0x0b, 0x0a, 0x20, 0xa2, - 0x12, 0x96, 0x4c, 0xba, 0x68, 0x3f, 0x14, 0xe3, 0xdf, 0x16, 0x40, 0x1c, 0x6e, 0xed, 0x86, 0x0c, - 0x14, 0x7e, 0xa4, 0x06, 0xbe, 0x25, 0x40, 0x2e, 0xdc, 0xcf, 0x0d, 0x99, 0x77, 0xf6, 0x47, 0x6a, - 0xde, 0x7b, 0x31, 0x98, 0x0d, 0x75, 0x71, 0x93, 0x5a, 0xf7, 0x39, 0x98, 0x37, 0x5a, 0xa8, 0xdb, - 0xb3, 0x3d, 0x64, 0xe9, 0x87, 0xaa, 0x89, 0xee, 0x20, 0x33, 0xbf, 0x4a, 0x12, 0xc5, 0xb9, 0xe3, - 0xfb, 0xc4, 0x62, 0x6d, 0x80, 0xdb, 0xc2, 0x30, 0x79, 0xa1, 0xb6, 0x59, 0xd9, 0x6e, 0xd4, 0x77, - 0x2b, 0x3b, 0xe5, 0x9b, 0xea, 0xde, 0xce, 0x4f, 0xec, 0xd4, 0x5f, 0xdf, 0x51, 0x44, 0x63, 0x48, - 0xed, 0x03, 0xdc, 0xea, 0x0d, 0x10, 0x87, 0x8d, 0x92, 0x4e, 0xc1, 0x38, 0xb3, 0xc4, 0x29, 0x69, - 0x01, 0xe6, 0x76, 0xea, 0x6a, 0xb3, 0xb6, 0x59, 0x51, 0x2b, 0xd7, 0xae, 0x55, 0xca, 0xbb, 0x4d, - 0x7a, 0x70, 0xf6, 0xb5, 0x77, 0xc3, 0x9b, 0xfa, 0xcd, 0x38, 0x2c, 0x8c, 0xb1, 0x44, 0x2a, 0xb1, - 0x9e, 0x9d, 0x1e, 0x23, 0x3e, 0x3a, 0x89, 0xf5, 0x45, 0xdc, 0x15, 0x34, 0x34, 0xc7, 0x63, 0x2d, - 0xfe, 0x4b, 0x80, 0xbd, 0x64, 0x79, 0x46, 0xdb, 0x40, 0x0e, 0xbb, 0x67, 0xa0, 0x8d, 0xfc, 0xdc, - 0x40, 0x4e, 0xaf, 0x1a, 0x7e, 0x0c, 0xa4, 0x9e, 0xed, 0x1a, 0x9e, 0x71, 0x07, 0xa9, 0x86, 0xc5, - 0x2f, 0x25, 0x70, 0x63, 0x9f, 0x50, 0x44, 0x3e, 0x53, 0xb3, 0x3c, 0x5f, 0xdb, 0x42, 0x1d, 0x6d, - 0x48, 0x1b, 0x27, 0xf0, 0xb8, 0x22, 0xf2, 0x19, 0x5f, 0xfb, 0x2c, 0x64, 0x5b, 0x76, 0x1f, 0xb7, - 0x49, 0x54, 0x0f, 0xd7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0xaf, 0xc2, 0xfa, 0xd8, 0xc1, 0x6d, 0x48, - 0x56, 0xc9, 0x50, 0x19, 0x55, 0x79, 0x11, 0xe6, 0xb4, 0x4e, 0xc7, 0xc1, 0xe4, 0x9c, 0x88, 0x76, - 0xe6, 0x39, 0x5f, 0x4c, 0x14, 0x97, 0xaf, 0x43, 0x8a, 0xfb, 0x01, 0x97, 0x64, 0xec, 0x09, 0xb5, - 0x47, 0xef, 0xa4, 0x62, 0x6b, 0x69, 0x25, 0x65, 0xf1, 0xc9, 0xb3, 0x90, 0x35, 0x5c, 0x75, 0x70, - 0x39, 0x1a, 0x5b, 0x89, 0xad, 0xa5, 0x94, 0x8c, 0xe1, 0xfa, 0xb7, 0x61, 0xab, 0xef, 0xc4, 0x20, - 0x17, 0xbe, 0xdc, 0x95, 0x36, 0x21, 0x65, 0xda, 0xba, 0x46, 0x42, 0x8b, 0x7e, 0x59, 0x58, 0x8b, - 0xb8, 0x0f, 0x2e, 0x6e, 0x31, 0x7d, 0xc5, 0x47, 0x2e, 0xff, 0xbd, 0x00, 0x29, 0x2e, 0x96, 0x96, - 0x20, 0xd1, 0xd3, 0xbc, 0x03, 0x42, 0x97, 0xdc, 0x88, 0x89, 0x82, 0x42, 0xc6, 0x58, 0xee, 0xf6, - 0x34, 0x8b, 0x84, 0x00, 0x93, 0xe3, 0x31, 0x5e, 0x57, 0x13, 0x69, 0x2d, 0xd2, 0xf6, 0xdb, 0xdd, - 0x2e, 0xb2, 0x3c, 0x97, 0xaf, 0x2b, 0x93, 0x97, 0x99, 0x58, 0x7a, 0x05, 0xe6, 0x3d, 0x47, 0x33, - 0xcc, 0x90, 0x6e, 0x82, 0xe8, 0x8a, 0x7c, 0xc2, 0x57, 0x96, 0xe1, 0x34, 0xe7, 0x6d, 0x21, 0x4f, - 0xd3, 0x0f, 0x50, 0x6b, 0x00, 0x9a, 0x26, 0x37, 0x87, 0xa7, 0x98, 0xc2, 0x26, 0x9b, 0xe7, 0xd8, - 0xd5, 0xef, 0x0a, 0x30, 0xcf, 0x0f, 0x2a, 0x2d, 0xdf, 0x59, 0xdb, 0x00, 0x9a, 0x65, 0xd9, 0x5e, - 0xd0, 0x5d, 0xa3, 0xa1, 0x3c, 0x82, 0x2b, 0x96, 0x7c, 0x90, 0x12, 0x20, 0x58, 0xee, 0x02, 0x0c, - 0x66, 0x8e, 0x74, 0xdb, 0x19, 0xc8, 0xb0, 0x9b, 0x7b, 0xf2, 0xf9, 0x87, 0x1e, 0x6d, 0x81, 0x8a, - 0xf0, 0x89, 0x46, 0x5a, 0x84, 0xe4, 0x3e, 0xea, 0x18, 0x16, 0xbb, 0x4f, 0xa4, 0x03, 0x7e, 0x4b, - 0x99, 0xf0, 0x6f, 0x29, 0x37, 0x6e, 0xc0, 0x82, 0x6e, 0x77, 0x87, 0xcd, 0xdd, 0x10, 0x87, 0x8e, - 0xd7, 0xee, 0xa7, 0x84, 0xcf, 0xc2, 0xa0, 0xc5, 0xfc, 0x72, 0x2c, 0x5e, 0x6d, 0x6c, 0x7c, 0x35, - 0xb6, 0x5c, 0xa5, 0xb8, 0x06, 0x7f, 0x4d, 0x05, 0xb5, 0x4d, 0xa4, 0x63, 0xd3, 0xe1, 0xfb, 0x1f, - 0x81, 0x8f, 0x76, 0x0c, 0xef, 0xa0, 0xbf, 0x5f, 0xd4, 0xed, 0xee, 0xb9, 0x8e, 0xdd, 0xb1, 0x07, - 0x9f, 0xbb, 0xf0, 0x88, 0x0c, 0xc8, 0x2f, 0xf6, 0xc9, 0x2b, 0xed, 0x4b, 0x97, 0x23, 0xbf, 0x8f, - 0xc9, 0x3b, 0xb0, 0xc0, 0x94, 0x55, 0x72, 0xe7, 0x4e, 0x8f, 0x06, 0xd2, 0xb1, 0xf7, 0x2e, 0xf9, - 0x6f, 0xbc, 0x4f, 0x6a, 0xb5, 0x32, 0xcf, 0xa0, 0x78, 0x8e, 0x1e, 0x20, 0x64, 0x05, 0x9e, 0x09, - 0xf1, 0xd1, 0x7d, 0x89, 0x9c, 0x08, 0xc6, 0x6f, 0x33, 0xc6, 0x85, 0x00, 0x63, 0x93, 0x41, 0xe5, - 0x32, 0xcc, 0x9e, 0x84, 0xeb, 0x6f, 0x19, 0x57, 0x16, 0x05, 0x49, 0xaa, 0x30, 0x47, 0x48, 0xf4, - 0xbe, 0xeb, 0xd9, 0x5d, 0x92, 0xf4, 0x8e, 0xa7, 0xf9, 0xbb, 0xf7, 0xe9, 0x46, 0xc9, 0x61, 0x58, - 0xd9, 0x47, 0xc9, 0x32, 0x90, 0xcf, 0x0c, 0x2d, 0xa4, 0x9b, 0x11, 0x0c, 0xef, 0x32, 0x43, 0x7c, - 0x7d, 0xf9, 0x33, 0xb0, 0x88, 0x7f, 0x93, 0x9c, 0x14, 0xb4, 0x24, 0xfa, 0x96, 0x29, 0xff, 0xdd, - 0x37, 0xe8, 0x5e, 0x5c, 0xf0, 0x09, 0x02, 0x36, 0x05, 0x56, 0xb1, 0x83, 0x3c, 0x0f, 0x39, 0xae, - 0xaa, 0x99, 0xe3, 0xcc, 0x0b, 0x1c, 0xd3, 0xf3, 0x5f, 0x7c, 0x1c, 0x5e, 0xc5, 0x2a, 0x45, 0x96, - 0x4c, 0x53, 0xde, 0x83, 0x53, 0x63, 0xa2, 0x62, 0x02, 0xce, 0x37, 0x19, 0xe7, 0xe2, 0x48, 0x64, - 0x60, 0xda, 0x06, 0x70, 0xb9, 0xbf, 0x96, 0x13, 0x70, 0xfe, 0x16, 0xe3, 0x94, 0x18, 0x96, 0x2f, - 0x29, 0x66, 0xbc, 0x0e, 0xf3, 0x77, 0x90, 0xb3, 0x6f, 0xbb, 0xec, 0x6a, 0x64, 0x02, 0xba, 0xb7, - 0x18, 0xdd, 0x1c, 0x03, 0x92, 0xbb, 0x12, 0xcc, 0x75, 0x19, 0x52, 0x6d, 0x4d, 0x47, 0x13, 0x50, - 0x7c, 0x89, 0x51, 0xcc, 0x60, 0x7d, 0x0c, 0x2d, 0x41, 0xb6, 0x63, 0xb3, 0xb2, 0x14, 0x0d, 0x7f, - 0x9b, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x7a, 0x76, 0xaf, 0x6f, 0xe2, 0x9a, 0x15, 0x4d, 0xf1, 0xdb, - 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xdc, 0xfa, 0x3b, 0x9c, 0xc2, 0x0d, 0xf8, 0xf3, 0x2a, 0x64, - 0x6c, 0xcb, 0x3c, 0xb4, 0xad, 0x49, 0x8c, 0xf8, 0x5d, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0xae, 0x40, - 0x7a, 0xd2, 0x85, 0xf8, 0xbd, 0xc7, 0x7c, 0x7b, 0xf0, 0x15, 0xa8, 0xc2, 0x1c, 0x4f, 0x50, 0x86, - 0x6d, 0x4d, 0x40, 0xf1, 0xfb, 0x8c, 0x22, 0x17, 0x80, 0xb1, 0xd7, 0xf0, 0x90, 0xeb, 0x75, 0xd0, - 0x24, 0x24, 0xef, 0xf0, 0xd7, 0x60, 0x10, 0xe6, 0xca, 0x7d, 0x64, 0xe9, 0x07, 0x93, 0x31, 0x7c, - 0x85, 0xbb, 0x92, 0x63, 0x30, 0x45, 0x19, 0x66, 0xbb, 0x9a, 0xe3, 0x1e, 0x68, 0xe6, 0x44, 0xcb, - 0xf1, 0x07, 0x8c, 0x23, 0xeb, 0x83, 0x98, 0x47, 0xfa, 0xd6, 0x49, 0x68, 0xbe, 0xca, 0x3d, 0x12, - 0x80, 0xb1, 0xad, 0xe7, 0x7a, 0xe4, 0x02, 0xea, 0x24, 0x6c, 0x5f, 0xe3, 0x5b, 0x8f, 0x62, 0xb7, - 0x83, 0x8c, 0x57, 0x20, 0xed, 0x1a, 0xf7, 0x27, 0xa2, 0xf9, 0x43, 0xbe, 0xd2, 0x04, 0x80, 0xc1, - 0x37, 0xe1, 0xf4, 0xd8, 0x32, 0x31, 0x01, 0xd9, 0x1f, 0x31, 0xb2, 0xa5, 0x31, 0xa5, 0x82, 0xa5, - 0x84, 0x93, 0x52, 0xfe, 0x31, 0x4f, 0x09, 0x68, 0x88, 0xab, 0x81, 0x0f, 0x0a, 0xae, 0xd6, 0x3e, - 0x99, 0xd7, 0xfe, 0x84, 0x7b, 0x8d, 0x62, 0x43, 0x5e, 0xdb, 0x85, 0x25, 0xc6, 0x78, 0xb2, 0x75, - 0xfd, 0x3a, 0x4f, 0xac, 0x14, 0xbd, 0x17, 0x5e, 0xdd, 0x9f, 0x84, 0x65, 0xdf, 0x9d, 0xbc, 0x23, - 0x75, 0xd5, 0xae, 0xd6, 0x9b, 0x80, 0xf9, 0x1b, 0x8c, 0x99, 0x67, 0x7c, 0xbf, 0xa5, 0x75, 0xb7, - 0xb5, 0x1e, 0x26, 0xbf, 0x01, 0x79, 0x4e, 0xde, 0xb7, 0x1c, 0xa4, 0xdb, 0x1d, 0xcb, 0xb8, 0x8f, - 0x5a, 0x13, 0x50, 0xff, 0xe9, 0xd0, 0x52, 0xed, 0x05, 0xe0, 0x98, 0xb9, 0x06, 0xa2, 0xdf, 0xab, - 0xa8, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0x9f, 0xf1, 0x95, 0xf2, 0x71, 0x35, 0x02, 0x93, - 0x2b, 0x90, 0x23, 0xc3, 0x49, 0x43, 0xf2, 0xcf, 0x19, 0xd1, 0xec, 0x00, 0xc5, 0x12, 0x87, 0x6e, - 0x77, 0x7b, 0x9a, 0x33, 0x49, 0xfe, 0xfb, 0x0b, 0x9e, 0x38, 0x18, 0x84, 0x25, 0x0e, 0xef, 0xb0, - 0x87, 0x70, 0xb5, 0x9f, 0x80, 0xe1, 0x9b, 0x3c, 0x71, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0xc3, 0x04, - 0x14, 0x7f, 0xc9, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x7a, 0x50, 0x68, 0x1d, 0xd4, 0x31, 0x5c, 0xcf, - 0xa1, 0x7d, 0xf0, 0xf1, 0x54, 0xdf, 0x7a, 0x1c, 0x6e, 0xc2, 0x94, 0x00, 0x54, 0xbe, 0x0e, 0x73, - 0x43, 0x2d, 0x86, 0x14, 0xf5, 0x3f, 0x0b, 0xf9, 0x9f, 0x7e, 0xc2, 0x92, 0x51, 0xb8, 0xc3, 0x90, - 0xb7, 0xf0, 0xba, 0x87, 0xfb, 0x80, 0x68, 0xb2, 0x37, 0x9e, 0xf8, 0x4b, 0x1f, 0x6a, 0x03, 0xe4, - 0x6b, 0x30, 0x1b, 0xea, 0x01, 0xa2, 0xa9, 0x7e, 0x86, 0x51, 0x65, 0x83, 0x2d, 0x80, 0x7c, 0x01, - 0x12, 0xb8, 0x9e, 0x47, 0xc3, 0x7f, 0x96, 0xc1, 0x89, 0xba, 0xfc, 0x09, 0x48, 0xf1, 0x3a, 0x1e, - 0x0d, 0xfd, 0x39, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x6b, 0x78, 0x34, 0xfc, 0xe7, 0x39, 0x9c, 0x43, - 0x30, 0x7c, 0x72, 0x17, 0xfe, 0xcd, 0x2f, 0x24, 0x58, 0x1e, 0xe6, 0xbe, 0xbb, 0x02, 0x33, 0xac, - 0x78, 0x47, 0xa3, 0x3f, 0xcf, 0x1e, 0xce, 0x11, 0xf2, 0x6b, 0x90, 0x9c, 0xd0, 0xe1, 0xbf, 0xc8, - 0xa0, 0x54, 0x5f, 0x2e, 0x43, 0x26, 0x50, 0xb0, 0xa3, 0xe1, 0xbf, 0xc4, 0xe0, 0x41, 0x14, 0x36, - 0x9d, 0x15, 0xec, 0x68, 0x82, 0x5f, 0xe6, 0xa6, 0x33, 0x04, 0x76, 0x1b, 0xaf, 0xd5, 0xd1, 0xe8, - 0x5f, 0xe1, 0x5e, 0xe7, 0x10, 0xf9, 0x2a, 0xa4, 0xfd, 0xfc, 0x1b, 0x8d, 0xff, 0x55, 0x86, 0x1f, - 0x60, 0xb0, 0x07, 0x02, 0xf9, 0x3f, 0x9a, 0xe2, 0xd7, 0xb8, 0x07, 0x02, 0x28, 0xbc, 0x8d, 0x86, - 0x6b, 0x7a, 0x34, 0xd3, 0xaf, 0xf3, 0x6d, 0x34, 0x54, 0xd2, 0xf1, 0x6a, 0x92, 0x34, 0x18, 0x4d, - 0xf1, 0x1b, 0x7c, 0x35, 0x89, 0x3e, 0x36, 0x63, 0xb8, 0x48, 0x46, 0x73, 0xfc, 0x26, 0x37, 0x63, - 0xa8, 0x46, 0xca, 0x0d, 0x90, 0x46, 0x0b, 0x64, 0x34, 0xdf, 0x17, 0x18, 0xdf, 0xfc, 0x48, 0x7d, - 0x94, 0x5f, 0x87, 0xa5, 0xf1, 0xc5, 0x31, 0x9a, 0xf5, 0x8b, 0x4f, 0x86, 0x8e, 0x33, 0xc1, 0xda, - 0x28, 0xef, 0x0e, 0xb2, 0x6c, 0xb0, 0x30, 0x46, 0xd3, 0xbe, 0xf9, 0x24, 0x9c, 0x68, 0x83, 0x75, - 0x51, 0x2e, 0x01, 0x0c, 0x6a, 0x52, 0x34, 0xd7, 0x5b, 0x8c, 0x2b, 0x00, 0xc2, 0x5b, 0x83, 0x95, - 0xa4, 0x68, 0xfc, 0x97, 0xf8, 0xd6, 0x60, 0x08, 0xbc, 0x35, 0x78, 0x35, 0x8a, 0x46, 0xbf, 0xcd, - 0xb7, 0x06, 0x87, 0xc8, 0x57, 0x20, 0x65, 0xf5, 0x4d, 0x13, 0xc7, 0x96, 0x74, 0xfc, 0xbf, 0x11, - 0xe5, 0xff, 0xf5, 0x29, 0x03, 0x73, 0x80, 0x7c, 0x01, 0x92, 0xa8, 0xbb, 0x8f, 0x5a, 0x51, 0xc8, - 0x7f, 0x7b, 0xca, 0xf3, 0x09, 0xd6, 0x96, 0xaf, 0x02, 0xd0, 0xc3, 0x34, 0xf9, 0x4a, 0x14, 0x81, - 0xfd, 0xf7, 0xa7, 0xec, 0x3f, 0x14, 0x06, 0x90, 0x01, 0x01, 0xfd, 0x7f, 0x87, 0xe3, 0x09, 0x1e, - 0x87, 0x09, 0xc8, 0x01, 0xfc, 0x32, 0xcc, 0xdc, 0x72, 0x6d, 0xcb, 0xd3, 0x3a, 0x51, 0xe8, 0xff, - 0x60, 0x68, 0xae, 0x8f, 0x1d, 0xd6, 0xb5, 0x1d, 0xe4, 0x69, 0x1d, 0x37, 0x0a, 0xfb, 0x9f, 0x0c, - 0xeb, 0x03, 0x30, 0x58, 0xd7, 0x5c, 0x6f, 0x92, 0xf7, 0xfe, 0x2f, 0x0e, 0xe6, 0x00, 0x6c, 0x34, - 0xfe, 0x7d, 0x1b, 0x1d, 0x46, 0x61, 0xbf, 0xc7, 0x8d, 0x66, 0xfa, 0xf2, 0x27, 0x20, 0x8d, 0x7f, - 0xd2, 0xff, 0xda, 0x89, 0x00, 0xff, 0x37, 0x03, 0x0f, 0x10, 0xf8, 0xc9, 0xae, 0xd7, 0xf2, 0x8c, - 0x68, 0x67, 0xff, 0x0f, 0x5b, 0x69, 0xae, 0x2f, 0x97, 0x20, 0xe3, 0x7a, 0xad, 0x56, 0x9f, 0x75, - 0x34, 0x11, 0xf0, 0xef, 0x3f, 0xf5, 0x0f, 0xb9, 0x3e, 0x66, 0xe3, 0xec, 0xf8, 0xcb, 0x3a, 0xa8, - 0xda, 0x55, 0x9b, 0x5e, 0xd3, 0xc1, 0x5f, 0xc5, 0x20, 0xd3, 0x71, 0xec, 0x7e, 0x8f, 0xdd, 0xa9, - 0x25, 0xc9, 0x60, 0xf9, 0x64, 0x37, 0x71, 0xab, 0x3f, 0x05, 0x33, 0x55, 0x8c, 0x73, 0x3f, 0x2e, - 0x15, 0x40, 0xe8, 0x90, 0xeb, 0x47, 0x58, 0x17, 0x8b, 0x94, 0x99, 0x4d, 0x15, 0xab, 0x8a, 0xd0, - 0x59, 0x7e, 0x15, 0x84, 0xaa, 0xb4, 0x04, 0xd3, 0xc4, 0xfa, 0x8f, 0x93, 0x4f, 0x4d, 0x71, 0x85, - 0x8d, 0x7c, 0xf9, 0x3a, 0xb9, 0xa1, 0x14, 0x98, 0x7c, 0x7d, 0xc0, 0xbf, 0xce, 0xf9, 0x85, 0x11, - 0xfe, 0xf5, 0x13, 0xf2, 0xc7, 0x07, 0xfc, 0x1b, 0xe7, 0xdf, 0x7d, 0x58, 0x98, 0xfa, 0xce, 0xc3, - 0xc2, 0xd4, 0x3f, 0x3c, 0x2c, 0x4c, 0xbd, 0xf7, 0xb0, 0x20, 0x7c, 0xef, 0x61, 0x41, 0xf8, 0xbf, - 0x87, 0x05, 0xe1, 0xc1, 0xa3, 0x82, 0xf0, 0x95, 0x47, 0x05, 0xe1, 0xeb, 0x8f, 0x0a, 0xc2, 0xb7, - 0x1e, 0x15, 0x84, 0x77, 0x1f, 0x15, 0xa6, 0xbe, 0xf3, 0xa8, 0x30, 0xf5, 0xde, 0xa3, 0xc2, 0xd4, - 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x24, 0xb4, 0xef, 0x98, 0x2f, 0x00, 0x00, + // 3788 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xe6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0x79, 0x49, 0x53, 0x10, 0x1d, 0x53, 0x12, 0x6d, + 0x47, 0xb4, 0xdd, 0x50, 0x09, 0x2d, 0xc9, 0x16, 0xd4, 0xc4, 0x05, 0x41, 0x08, 0x81, 0x4a, 0x12, + 0xc8, 0x82, 0x8c, 0x7f, 0x32, 0xed, 0xce, 0x72, 0x71, 0x01, 0xae, 0xb4, 0xd8, 0xdd, 0xec, 0x2e, + 0x24, 0x53, 0xd3, 0x07, 0x75, 0xdc, 0x9f, 0xc9, 0x74, 0xfa, 0xdf, 0x99, 0x24, 0xae, 0xe3, 0xfe, + 0xcc, 0xb4, 0x4e, 0xd3, 0xbf, 0xa4, 0x69, 0xd3, 0xa4, 0x4f, 0x7d, 0x49, 0xeb, 0xa7, 0x4e, 0xf2, + 0xd6, 0x87, 0x3e, 0x58, 0xaa, 0x67, 0xfa, 0xe7, 0x36, 0x69, 0xeb, 0x87, 0xcc, 0xf8, 0x25, 0x73, + 0xff, 0x16, 0xbb, 0x00, 0xa8, 0x05, 0x33, 0x63, 0xe7, 0x89, 0xd8, 0x73, 0xcf, 0xf7, 0xed, 0xb9, + 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0x77, 0x09, 0xdf, 0xbb, 0x02, 0x67, 0xbb, 0xb6, 0xdd, 0x35, 0xf1, + 0x05, 0xc7, 0xb5, 0x7d, 0xfb, 0xa0, 0xdf, 0xb9, 0xd0, 0xc6, 0x9e, 0xee, 0x1a, 0x8e, 0x6f, 0xbb, + 0xeb, 0x54, 0x86, 0xe6, 0x98, 0xc6, 0xba, 0xd0, 0x58, 0xdd, 0x81, 0xf9, 0x6b, 0x86, 0x89, 0xb7, + 0x02, 0xc5, 0x16, 0xf6, 0xd1, 0xb3, 0x90, 0xea, 0x18, 0x26, 0x2e, 0x4a, 0x67, 0x93, 0x6b, 0xb9, + 0x8d, 0xc7, 0xd6, 0x87, 0x40, 0xeb, 0x51, 0x44, 0x93, 0x88, 0x15, 0x8a, 0x58, 0x7d, 0x3b, 0x05, + 0x0b, 0x63, 0x46, 0x11, 0x82, 0x94, 0xa5, 0xf5, 0x08, 0xa3, 0xb4, 0x96, 0x55, 0xe8, 0x6f, 0x54, + 0x84, 0x19, 0x47, 0xd3, 0x6f, 0x6a, 0x5d, 0x5c, 0x4c, 0x50, 0xb1, 0x78, 0x44, 0x2b, 0x00, 0x6d, + 0xec, 0x60, 0xab, 0x8d, 0x2d, 0xfd, 0xa8, 0x98, 0x3c, 0x9b, 0x5c, 0xcb, 0x2a, 0x21, 0x09, 0x7a, + 0x0a, 0xe6, 0x9d, 0xfe, 0x81, 0x69, 0xe8, 0x6a, 0x48, 0x0d, 0xce, 0x26, 0xd7, 0xd2, 0x8a, 0xcc, + 0x06, 0xb6, 0x06, 0xca, 0xe7, 0x61, 0xee, 0x36, 0xd6, 0x6e, 0x86, 0x55, 0x73, 0x54, 0xb5, 0x40, + 0xc4, 0x21, 0xc5, 0x0a, 0xe4, 0x7b, 0xd8, 0xf3, 0xb4, 0x2e, 0x56, 0xfd, 0x23, 0x07, 0x17, 0x53, + 0x74, 0xf6, 0x67, 0x47, 0x66, 0x3f, 0x3c, 0xf3, 0x1c, 0x47, 0xed, 0x1d, 0x39, 0x18, 0x95, 0x21, + 0x8b, 0xad, 0x7e, 0x8f, 0x31, 0xa4, 0x8f, 0xf1, 0x5f, 0xd5, 0xea, 0xf7, 0x86, 0x59, 0x32, 0x04, + 0xc6, 0x29, 0x66, 0x3c, 0xec, 0xde, 0x32, 0x74, 0x5c, 0x9c, 0xa6, 0x04, 0xe7, 0x47, 0x08, 0x5a, + 0x6c, 0x7c, 0x98, 0x43, 0xe0, 0x50, 0x05, 0xb2, 0xf8, 0x65, 0x1f, 0x5b, 0x9e, 0x61, 0x5b, 0xc5, + 0x19, 0x4a, 0xf2, 0xf8, 0x98, 0x55, 0xc4, 0x66, 0x7b, 0x98, 0x62, 0x80, 0x43, 0x97, 0x61, 0xc6, + 0x76, 0x7c, 0xc3, 0xb6, 0xbc, 0x62, 0xe6, 0xac, 0xb4, 0x96, 0xdb, 0xf8, 0xd0, 0xd8, 0x40, 0x68, + 0x30, 0x1d, 0x45, 0x28, 0xa3, 0x3a, 0xc8, 0x9e, 0xdd, 0x77, 0x75, 0xac, 0xea, 0x76, 0x1b, 0xab, + 0x86, 0xd5, 0xb1, 0x8b, 0x59, 0x4a, 0x70, 0x66, 0x74, 0x22, 0x54, 0xb1, 0x62, 0xb7, 0x71, 0xdd, + 0xea, 0xd8, 0x4a, 0xc1, 0x8b, 0x3c, 0xa3, 0x25, 0x98, 0xf6, 0x8e, 0x2c, 0x5f, 0x7b, 0xb9, 0x98, + 0xa7, 0x11, 0xc2, 0x9f, 0x56, 0xbf, 0x35, 0x0d, 0x73, 0x93, 0x84, 0xd8, 0x55, 0x48, 0x77, 0xc8, + 0x2c, 0x8b, 0x89, 0x93, 0xf8, 0x80, 0x61, 0xa2, 0x4e, 0x9c, 0xfe, 0x11, 0x9d, 0x58, 0x86, 0x9c, + 0x85, 0x3d, 0x1f, 0xb7, 0x59, 0x44, 0x24, 0x27, 0x8c, 0x29, 0x60, 0xa0, 0xd1, 0x90, 0x4a, 0xfd, + 0x48, 0x21, 0xf5, 0x02, 0xcc, 0x05, 0x26, 0xa9, 0xae, 0x66, 0x75, 0x45, 0x6c, 0x5e, 0x88, 0xb3, + 0x64, 0xbd, 0x2a, 0x70, 0x0a, 0x81, 0x29, 0x05, 0x1c, 0x79, 0x46, 0x5b, 0x00, 0xb6, 0x85, 0xed, + 0x8e, 0xda, 0xc6, 0xba, 0x59, 0xcc, 0x1c, 0xe3, 0xa5, 0x06, 0x51, 0x19, 0xf1, 0x92, 0xcd, 0xa4, + 0xba, 0x89, 0xae, 0x0c, 0x42, 0x6d, 0xe6, 0x98, 0x48, 0xd9, 0x61, 0x9b, 0x6c, 0x24, 0xda, 0xf6, + 0xa1, 0xe0, 0x62, 0x12, 0xf7, 0xb8, 0xcd, 0x67, 0x96, 0xa5, 0x46, 0xac, 0xc7, 0xce, 0x4c, 0xe1, + 0x30, 0x36, 0xb1, 0x59, 0x37, 0xfc, 0x88, 0x1e, 0x85, 0x40, 0xa0, 0xd2, 0xb0, 0x02, 0x9a, 0x85, + 0xf2, 0x42, 0xb8, 0xab, 0xf5, 0xf0, 0xf2, 0x1d, 0x28, 0x44, 0xdd, 0x83, 0x16, 0x21, 0xed, 0xf9, + 0x9a, 0xeb, 0xd3, 0x28, 0x4c, 0x2b, 0xec, 0x01, 0xc9, 0x90, 0xc4, 0x56, 0x9b, 0x66, 0xb9, 0xb4, + 0x42, 0x7e, 0xa2, 0x9f, 0x1a, 0x4c, 0x38, 0x49, 0x27, 0xfc, 0xe1, 0xd1, 0x15, 0x8d, 0x30, 0x0f, + 0xcf, 0x7b, 0xf9, 0x19, 0x98, 0x8d, 0x4c, 0x60, 0xd2, 0x57, 0xaf, 0xfe, 0x1c, 0x3c, 0x34, 0x96, + 0x1a, 0xbd, 0x00, 0x8b, 0x7d, 0xcb, 0xb0, 0x7c, 0xec, 0x3a, 0x2e, 0x26, 0x11, 0xcb, 0x5e, 0x55, + 0xfc, 0xb7, 0x99, 0x63, 0x62, 0x6e, 0x3f, 0xac, 0xcd, 0x58, 0x94, 0x85, 0xfe, 0xa8, 0xf0, 0xc9, + 0x6c, 0xe6, 0xdf, 0x67, 0xe4, 0xbb, 0x77, 0xef, 0xde, 0x4d, 0xac, 0x7e, 0x61, 0x1a, 0x16, 0xc7, + 0xed, 0x99, 0xb1, 0xdb, 0x77, 0x09, 0xa6, 0xad, 0x7e, 0xef, 0x00, 0xbb, 0xd4, 0x49, 0x69, 0x85, + 0x3f, 0xa1, 0x32, 0xa4, 0x4d, 0xed, 0x00, 0x9b, 0xc5, 0xd4, 0x59, 0x69, 0xad, 0xb0, 0xf1, 0xd4, + 0x44, 0xbb, 0x72, 0x7d, 0x9b, 0x40, 0x14, 0x86, 0x44, 0x9f, 0x80, 0x14, 0x4f, 0xd1, 0x84, 0xe1, + 0xc9, 0xc9, 0x18, 0xc8, 0x5e, 0x52, 0x28, 0x0e, 0x3d, 0x0c, 0x59, 0xf2, 0x97, 0xc5, 0xc6, 0x34, + 0xb5, 0x39, 0x43, 0x04, 0x24, 0x2e, 0xd0, 0x32, 0x64, 0xe8, 0x36, 0x69, 0x63, 0x51, 0xda, 0x82, + 0x67, 0x12, 0x58, 0x6d, 0xdc, 0xd1, 0xfa, 0xa6, 0xaf, 0xde, 0xd2, 0xcc, 0x3e, 0xa6, 0x01, 0x9f, + 0x55, 0xf2, 0x5c, 0xf8, 0x69, 0x22, 0x43, 0x67, 0x20, 0xc7, 0x76, 0x95, 0x61, 0xb5, 0xf1, 0xcb, + 0x34, 0x7b, 0xa6, 0x15, 0xb6, 0xd1, 0xea, 0x44, 0x42, 0x5e, 0x7f, 0xc3, 0xb3, 0x2d, 0x11, 0x9a, + 0xf4, 0x15, 0x44, 0x40, 0x5f, 0xff, 0xcc, 0x70, 0xe2, 0x7e, 0x64, 0xfc, 0xf4, 0x86, 0x63, 0x6a, + 0xf5, 0x1b, 0x09, 0x48, 0xd1, 0x7c, 0x31, 0x07, 0xb9, 0xbd, 0x17, 0x9b, 0x55, 0x75, 0xab, 0xb1, + 0xbf, 0xb9, 0x5d, 0x95, 0x25, 0x54, 0x00, 0xa0, 0x82, 0x6b, 0xdb, 0x8d, 0xf2, 0x9e, 0x9c, 0x08, + 0x9e, 0xeb, 0xbb, 0x7b, 0x97, 0x2f, 0xca, 0xc9, 0x00, 0xb0, 0xcf, 0x04, 0xa9, 0xb0, 0xc2, 0xd3, + 0x1b, 0x72, 0x1a, 0xc9, 0x90, 0x67, 0x04, 0xf5, 0x17, 0xaa, 0x5b, 0x97, 0x2f, 0xca, 0xd3, 0x51, + 0xc9, 0xd3, 0x1b, 0xf2, 0x0c, 0x9a, 0x85, 0x2c, 0x95, 0x6c, 0x36, 0x1a, 0xdb, 0x72, 0x26, 0xe0, + 0x6c, 0xed, 0x29, 0xf5, 0xdd, 0x9a, 0x9c, 0x0d, 0x38, 0x6b, 0x4a, 0x63, 0xbf, 0x29, 0x43, 0xc0, + 0xb0, 0x53, 0x6d, 0xb5, 0xca, 0xb5, 0xaa, 0x9c, 0x0b, 0x34, 0x36, 0x5f, 0xdc, 0xab, 0xb6, 0xe4, + 0x7c, 0xc4, 0xac, 0xa7, 0x37, 0xe4, 0xd9, 0xe0, 0x15, 0xd5, 0xdd, 0xfd, 0x1d, 0xb9, 0x80, 0xe6, + 0x61, 0x96, 0xbd, 0x42, 0x18, 0x31, 0x37, 0x24, 0xba, 0x7c, 0x51, 0x96, 0x07, 0x86, 0x30, 0x96, + 0xf9, 0x88, 0xe0, 0xf2, 0x45, 0x19, 0xad, 0x56, 0x20, 0x4d, 0xa3, 0x0b, 0x21, 0x28, 0x6c, 0x97, + 0x37, 0xab, 0xdb, 0x6a, 0xa3, 0xb9, 0x57, 0x6f, 0xec, 0x96, 0xb7, 0x65, 0x69, 0x20, 0x53, 0xaa, + 0x9f, 0xda, 0xaf, 0x2b, 0xd5, 0x2d, 0x39, 0x11, 0x96, 0x35, 0xab, 0xe5, 0xbd, 0xea, 0x96, 0x9c, + 0x5c, 0xd5, 0x61, 0x71, 0x5c, 0x9e, 0x1c, 0xbb, 0x33, 0x42, 0x4b, 0x9c, 0x38, 0x66, 0x89, 0x29, + 0xd7, 0xc8, 0x12, 0xff, 0x6b, 0x02, 0x16, 0xc6, 0xd4, 0x8a, 0xb1, 0x2f, 0x79, 0x0e, 0xd2, 0x2c, + 0x44, 0x59, 0xf5, 0x7c, 0x62, 0x6c, 0xd1, 0xa1, 0x01, 0x3b, 0x52, 0x41, 0x29, 0x2e, 0xdc, 0x41, + 0x24, 0x8f, 0xe9, 0x20, 0x08, 0xc5, 0x48, 0x4e, 0xff, 0x99, 0x91, 0x9c, 0xce, 0xca, 0xde, 0xe5, + 0x49, 0xca, 0x1e, 0x95, 0x9d, 0x2c, 0xb7, 0xa7, 0xc7, 0xe4, 0xf6, 0xab, 0x30, 0x3f, 0x42, 0x34, + 0x71, 0x8e, 0x7d, 0x45, 0x82, 0xe2, 0x71, 0xce, 0x89, 0xc9, 0x74, 0x89, 0x48, 0xa6, 0xbb, 0x3a, + 0xec, 0xc1, 0x73, 0xc7, 0x2f, 0xc2, 0xc8, 0x5a, 0xbf, 0x21, 0xc1, 0xd2, 0xf8, 0x4e, 0x71, 0xac, + 0x0d, 0x9f, 0x80, 0xe9, 0x1e, 0xf6, 0x0f, 0x6d, 0xd1, 0x2d, 0x7d, 0x78, 0x4c, 0x0d, 0x26, 0xc3, + 0xc3, 0x8b, 0xcd, 0x51, 0xe1, 0x22, 0x9e, 0x3c, 0xae, 0xdd, 0x63, 0xd6, 0x8c, 0x58, 0xfa, 0xb9, + 0x04, 0x3c, 0x34, 0x96, 0x7c, 0xac, 0xa1, 0x8f, 0x00, 0x18, 0x96, 0xd3, 0xf7, 0x59, 0x47, 0xc4, + 0x12, 0x6c, 0x96, 0x4a, 0x68, 0xf2, 0x22, 0xc9, 0xb3, 0xef, 0x07, 0xe3, 0x49, 0x3a, 0x0e, 0x4c, + 0x44, 0x15, 0x9e, 0x1d, 0x18, 0x9a, 0xa2, 0x86, 0xae, 0x1c, 0x33, 0xd3, 0x91, 0xc0, 0xfc, 0x28, + 0xc8, 0xba, 0x69, 0x60, 0xcb, 0x57, 0x3d, 0xdf, 0xc5, 0x5a, 0xcf, 0xb0, 0xba, 0xb4, 0x82, 0x64, + 0x4a, 0xe9, 0x8e, 0x66, 0x7a, 0x58, 0x99, 0x63, 0xc3, 0x2d, 0x31, 0x4a, 0x10, 0x34, 0x80, 0xdc, + 0x10, 0x62, 0x3a, 0x82, 0x60, 0xc3, 0x01, 0x62, 0xf5, 0xeb, 0x19, 0xc8, 0x85, 0xfa, 0x6a, 0x74, + 0x0e, 0xf2, 0x37, 0xb4, 0x5b, 0x9a, 0x2a, 0xce, 0x4a, 0xcc, 0x13, 0x39, 0x22, 0x6b, 0xf2, 0xf3, + 0xd2, 0x47, 0x61, 0x91, 0xaa, 0xd8, 0x7d, 0x1f, 0xbb, 0xaa, 0x6e, 0x6a, 0x9e, 0x47, 0x9d, 0x96, + 0xa1, 0xaa, 0x88, 0x8c, 0x35, 0xc8, 0x50, 0x45, 0x8c, 0xa0, 0x4b, 0xb0, 0x40, 0x11, 0xbd, 0xbe, + 0xe9, 0x1b, 0x8e, 0x89, 0x55, 0x72, 0x7a, 0xf3, 0x68, 0x25, 0x09, 0x2c, 0x9b, 0x27, 0x1a, 0x3b, + 0x5c, 0x81, 0x58, 0xe4, 0xa1, 0x2d, 0x78, 0x84, 0xc2, 0xba, 0xd8, 0xc2, 0xae, 0xe6, 0x63, 0x15, + 0x7f, 0xb6, 0xaf, 0x99, 0x9e, 0xaa, 0x59, 0x6d, 0xf5, 0x50, 0xf3, 0x0e, 0x8b, 0x8b, 0x84, 0x60, + 0x33, 0x51, 0x94, 0x94, 0xd3, 0x44, 0xb1, 0xc6, 0xf5, 0xaa, 0x54, 0xad, 0x6c, 0xb5, 0x3f, 0xa9, + 0x79, 0x87, 0xa8, 0x04, 0x4b, 0x94, 0xc5, 0xf3, 0x5d, 0xc3, 0xea, 0xaa, 0xfa, 0x21, 0xd6, 0x6f, + 0xaa, 0x7d, 0xbf, 0xf3, 0x6c, 0xf1, 0xe1, 0xf0, 0xfb, 0xa9, 0x85, 0x2d, 0xaa, 0x53, 0x21, 0x2a, + 0xfb, 0x7e, 0xe7, 0x59, 0xd4, 0x82, 0x3c, 0x59, 0x8c, 0x9e, 0x71, 0x07, 0xab, 0x1d, 0xdb, 0xa5, + 0xa5, 0xb1, 0x30, 0x26, 0x35, 0x85, 0x3c, 0xb8, 0xde, 0xe0, 0x80, 0x1d, 0xbb, 0x8d, 0x4b, 0xe9, + 0x56, 0xb3, 0x5a, 0xdd, 0x52, 0x72, 0x82, 0xe5, 0x9a, 0xed, 0x92, 0x80, 0xea, 0xda, 0x81, 0x83, + 0x73, 0x2c, 0xa0, 0xba, 0xb6, 0x70, 0xef, 0x25, 0x58, 0xd0, 0x75, 0x36, 0x67, 0x43, 0x57, 0xf9, + 0x19, 0xcb, 0x2b, 0xca, 0x11, 0x67, 0xe9, 0x7a, 0x8d, 0x29, 0xf0, 0x18, 0xf7, 0xd0, 0x15, 0x78, + 0x68, 0xe0, 0xac, 0x30, 0x70, 0x7e, 0x64, 0x96, 0xc3, 0xd0, 0x4b, 0xb0, 0xe0, 0x1c, 0x8d, 0x02, + 0x51, 0xe4, 0x8d, 0xce, 0xd1, 0x30, 0xec, 0x19, 0x58, 0x74, 0x0e, 0x9d, 0x51, 0xdc, 0x93, 0x61, + 0x1c, 0x72, 0x0e, 0x9d, 0x61, 0xe0, 0xe3, 0xf4, 0xc0, 0xed, 0x62, 0x5d, 0xf3, 0x71, 0xbb, 0x78, + 0x2a, 0xac, 0x1e, 0x1a, 0x40, 0x17, 0x40, 0xd6, 0x75, 0x15, 0x5b, 0xda, 0x81, 0x89, 0x55, 0xcd, + 0xc5, 0x96, 0xe6, 0x15, 0xcf, 0x84, 0x95, 0x0b, 0xba, 0x5e, 0xa5, 0xa3, 0x65, 0x3a, 0x88, 0x9e, + 0x84, 0x79, 0xfb, 0xe0, 0x86, 0xce, 0x42, 0x52, 0x75, 0x5c, 0xdc, 0x31, 0x5e, 0x2e, 0x3e, 0x46, + 0xfd, 0x3b, 0x47, 0x06, 0x68, 0x40, 0x36, 0xa9, 0x18, 0x3d, 0x01, 0xb2, 0xee, 0x1d, 0x6a, 0xae, + 0x43, 0x73, 0xb2, 0xe7, 0x68, 0x3a, 0x2e, 0x3e, 0xce, 0x54, 0x99, 0x7c, 0x57, 0x88, 0xc9, 0x96, + 0xf0, 0x6e, 0x1b, 0x1d, 0x5f, 0x30, 0x9e, 0x67, 0x5b, 0x82, 0xca, 0x38, 0xdb, 0x1a, 0xc8, 0xc4, + 0x15, 0x91, 0x17, 0xaf, 0x51, 0xb5, 0x82, 0x73, 0xe8, 0x84, 0xdf, 0xfb, 0x28, 0xcc, 0x12, 0xcd, + 0xc1, 0x4b, 0x9f, 0x60, 0x0d, 0x99, 0x73, 0x18, 0x7a, 0xe3, 0xfb, 0xd6, 0x1b, 0xaf, 0x96, 0x20, + 0x1f, 0x8e, 0x4f, 0x94, 0x05, 0x16, 0xa1, 0xb2, 0x44, 0x9a, 0x95, 0x4a, 0x63, 0x8b, 0xb4, 0x19, + 0x2f, 0x55, 0xe5, 0x04, 0x69, 0x77, 0xb6, 0xeb, 0x7b, 0x55, 0x55, 0xd9, 0xdf, 0xdd, 0xab, 0xef, + 0x54, 0xe5, 0x64, 0xb8, 0xaf, 0xfe, 0x76, 0x02, 0x0a, 0xd1, 0x23, 0x12, 0xfa, 0x49, 0x38, 0x25, + 0xee, 0x33, 0x3c, 0xec, 0xab, 0xb7, 0x0d, 0x97, 0x6e, 0x99, 0x9e, 0xc6, 0xca, 0x57, 0xb0, 0x68, + 0x8b, 0x5c, 0xab, 0x85, 0xfd, 0xe7, 0x0d, 0x97, 0x6c, 0x88, 0x9e, 0xe6, 0xa3, 0x6d, 0x38, 0x63, + 0xd9, 0xaa, 0xe7, 0x6b, 0x56, 0x5b, 0x73, 0xdb, 0xea, 0xe0, 0x26, 0x49, 0xd5, 0x74, 0x1d, 0x7b, + 0x9e, 0xcd, 0x4a, 0x55, 0xc0, 0xf2, 0x21, 0xcb, 0x6e, 0x71, 0xe5, 0x41, 0x0e, 0x2f, 0x73, 0xd5, + 0xa1, 0x00, 0x4b, 0x1e, 0x17, 0x60, 0x0f, 0x43, 0xb6, 0xa7, 0x39, 0x2a, 0xb6, 0x7c, 0xf7, 0x88, + 0x36, 0xc6, 0x19, 0x25, 0xd3, 0xd3, 0x9c, 0x2a, 0x79, 0xfe, 0x60, 0xce, 0x27, 0xff, 0x92, 0x84, + 0x7c, 0xb8, 0x39, 0x26, 0x67, 0x0d, 0x9d, 0xd6, 0x11, 0x89, 0x66, 0x9a, 0x47, 0x1f, 0xd8, 0x4a, + 0xaf, 0x57, 0x48, 0x81, 0x29, 0x4d, 0xb3, 0x96, 0x55, 0x61, 0x48, 0x52, 0xdc, 0x49, 0x6e, 0xc1, + 0xac, 0x45, 0xc8, 0x28, 0xfc, 0x09, 0xd5, 0x60, 0xfa, 0x86, 0x47, 0xb9, 0xa7, 0x29, 0xf7, 0x63, + 0x0f, 0xe6, 0xbe, 0xde, 0xa2, 0xe4, 0xd9, 0xeb, 0x2d, 0x75, 0xb7, 0xa1, 0xec, 0x94, 0xb7, 0x15, + 0x0e, 0x47, 0xa7, 0x21, 0x65, 0x6a, 0x77, 0x8e, 0xa2, 0xa5, 0x88, 0x8a, 0x26, 0x75, 0xfc, 0x69, + 0x48, 0xdd, 0xc6, 0xda, 0xcd, 0x68, 0x01, 0xa0, 0xa2, 0xf7, 0x31, 0xf4, 0x2f, 0x40, 0x9a, 0xfa, + 0x0b, 0x01, 0x70, 0x8f, 0xc9, 0x53, 0x28, 0x03, 0xa9, 0x4a, 0x43, 0x21, 0xe1, 0x2f, 0x43, 0x9e, + 0x49, 0xd5, 0x66, 0xbd, 0x5a, 0xa9, 0xca, 0x89, 0xd5, 0x4b, 0x30, 0xcd, 0x9c, 0x40, 0xb6, 0x46, + 0xe0, 0x06, 0x79, 0x8a, 0x3f, 0x72, 0x0e, 0x49, 0x8c, 0xee, 0xef, 0x6c, 0x56, 0x15, 0x39, 0x11, + 0x5e, 0x5e, 0x0f, 0xf2, 0xe1, 0xbe, 0xf8, 0x83, 0x89, 0xa9, 0xbf, 0x93, 0x20, 0x17, 0xea, 0x73, + 0x49, 0x83, 0xa2, 0x99, 0xa6, 0x7d, 0x5b, 0xd5, 0x4c, 0x43, 0xf3, 0x78, 0x50, 0x00, 0x15, 0x95, + 0x89, 0x64, 0xd2, 0x45, 0xfb, 0x40, 0x8c, 0x7f, 0x5d, 0x02, 0x79, 0xb8, 0xc5, 0x1c, 0x32, 0x50, + 0xfa, 0xb1, 0x1a, 0xf8, 0x9a, 0x04, 0x85, 0x68, 0x5f, 0x39, 0x64, 0xde, 0xb9, 0x1f, 0xab, 0x79, + 0x6f, 0x25, 0x60, 0x36, 0xd2, 0x4d, 0x4e, 0x6a, 0xdd, 0x67, 0x61, 0xde, 0x68, 0xe3, 0x9e, 0x63, + 0xfb, 0xd8, 0xd2, 0x8f, 0x54, 0x13, 0xdf, 0xc2, 0x66, 0x71, 0x95, 0x26, 0x8a, 0x0b, 0x0f, 0xee, + 0x57, 0xd7, 0xeb, 0x03, 0xdc, 0x36, 0x81, 0x95, 0x16, 0xea, 0x5b, 0xd5, 0x9d, 0x66, 0x63, 0xaf, + 0xba, 0x5b, 0x79, 0x51, 0xdd, 0xdf, 0xfd, 0xe9, 0xdd, 0xc6, 0xf3, 0xbb, 0x8a, 0x6c, 0x0c, 0xa9, + 0xbd, 0x8f, 0x5b, 0xbd, 0x09, 0xf2, 0xb0, 0x51, 0xe8, 0x14, 0x8c, 0x33, 0x4b, 0x9e, 0x42, 0x0b, + 0x30, 0xb7, 0xdb, 0x50, 0x5b, 0xf5, 0xad, 0xaa, 0x5a, 0xbd, 0x76, 0xad, 0x5a, 0xd9, 0x6b, 0xb1, + 0x1b, 0x88, 0x40, 0x7b, 0x2f, 0xba, 0xa9, 0x5f, 0x4d, 0xc2, 0xc2, 0x18, 0x4b, 0x50, 0x99, 0x9f, + 0x1d, 0xd8, 0x71, 0xe6, 0x23, 0x93, 0x58, 0xbf, 0x4e, 0x4a, 0x7e, 0x53, 0x73, 0x7d, 0x7e, 0xd4, + 0x78, 0x02, 0x88, 0x97, 0x2c, 0xdf, 0xe8, 0x18, 0xd8, 0xe5, 0x17, 0x36, 0xec, 0x40, 0x31, 0x37, + 0x90, 0xb3, 0x3b, 0x9b, 0x9f, 0x00, 0xe4, 0xd8, 0x9e, 0xe1, 0x1b, 0xb7, 0xb0, 0x6a, 0x58, 0xe2, + 0x76, 0x87, 0x1c, 0x30, 0x52, 0x8a, 0x2c, 0x46, 0xea, 0x96, 0x1f, 0x68, 0x5b, 0xb8, 0xab, 0x0d, + 0x69, 0x93, 0x04, 0x9e, 0x54, 0x64, 0x31, 0x12, 0x68, 0x9f, 0x83, 0x7c, 0xdb, 0xee, 0x93, 0xae, + 0x8b, 0xe9, 0x91, 0x7a, 0x21, 0x29, 0x39, 0x26, 0x0b, 0x54, 0x78, 0x3f, 0x3d, 0xb8, 0x56, 0xca, + 0x2b, 0x39, 0x26, 0x63, 0x2a, 0xe7, 0x61, 0x4e, 0xeb, 0x76, 0x5d, 0x42, 0x2e, 0x88, 0xd8, 0x09, + 0xa1, 0x10, 0x88, 0xa9, 0xe2, 0xf2, 0x75, 0xc8, 0x08, 0x3f, 0x90, 0x92, 0x4c, 0x3c, 0xa1, 0x3a, + 0xec, 0xd8, 0x9b, 0x58, 0xcb, 0x2a, 0x19, 0x4b, 0x0c, 0x9e, 0x83, 0xbc, 0xe1, 0xa9, 0x83, 0x5b, + 0xf2, 0xc4, 0xd9, 0xc4, 0x5a, 0x46, 0xc9, 0x19, 0x5e, 0x70, 0xc3, 0xb8, 0xfa, 0x46, 0x02, 0x0a, + 0xd1, 0x5b, 0x7e, 0xb4, 0x05, 0x19, 0xd3, 0xd6, 0x35, 0x1a, 0x5a, 0xec, 0x13, 0xd3, 0x5a, 0xcc, + 0x87, 0x81, 0xf5, 0x6d, 0xae, 0xaf, 0x04, 0xc8, 0xe5, 0x7f, 0x92, 0x20, 0x23, 0xc4, 0x68, 0x09, + 0x52, 0x8e, 0xe6, 0x1f, 0x52, 0xba, 0xf4, 0x66, 0x42, 0x96, 0x14, 0xfa, 0x4c, 0xe4, 0x9e, 0xa3, + 0x59, 0x34, 0x04, 0xb8, 0x9c, 0x3c, 0x93, 0x75, 0x35, 0xb1, 0xd6, 0xa6, 0xc7, 0x0f, 0xbb, 0xd7, + 0xc3, 0x96, 0xef, 0x89, 0x75, 0xe5, 0xf2, 0x0a, 0x17, 0xa3, 0xa7, 0x60, 0xde, 0x77, 0x35, 0xc3, + 0x8c, 0xe8, 0xa6, 0xa8, 0xae, 0x2c, 0x06, 0x02, 0xe5, 0x12, 0x9c, 0x16, 0xbc, 0x6d, 0xec, 0x6b, + 0xfa, 0x21, 0x6e, 0x0f, 0x40, 0xd3, 0xf4, 0x9a, 0xe1, 0x14, 0x57, 0xd8, 0xe2, 0xe3, 0x02, 0xbb, + 0xfa, 0x5d, 0x09, 0xe6, 0xc5, 0x81, 0xa9, 0x1d, 0x38, 0x6b, 0x07, 0x40, 0xb3, 0x2c, 0xdb, 0x0f, + 0xbb, 0x6b, 0x34, 0x94, 0x47, 0x70, 0xeb, 0xe5, 0x00, 0xa4, 0x84, 0x08, 0x96, 0x7b, 0x00, 0x83, + 0x91, 0x63, 0xdd, 0x76, 0x06, 0x72, 0xfc, 0x13, 0x0e, 0xfd, 0x0e, 0xc8, 0x8e, 0xd8, 0xc0, 0x44, + 0xe4, 0x64, 0x85, 0x16, 0x21, 0x7d, 0x80, 0xbb, 0x86, 0xc5, 0x2f, 0x66, 0xd9, 0x83, 0xb8, 0x08, + 0x49, 0x05, 0x17, 0x21, 0x9b, 0x9f, 0x81, 0x05, 0xdd, 0xee, 0x0d, 0x9b, 0xbb, 0x29, 0x0f, 0x1d, + 0xf3, 0xbd, 0x4f, 0x4a, 0x2f, 0xc1, 0xa0, 0xc5, 0xfc, 0x81, 0x24, 0xfd, 0x61, 0x22, 0x59, 0x6b, + 0x6e, 0x7e, 0x25, 0xb1, 0x5c, 0x63, 0xd0, 0xa6, 0x98, 0xa9, 0x82, 0x3b, 0x26, 0xd6, 0x89, 0xf5, + 0xf0, 0xf9, 0xf3, 0xf0, 0x91, 0xae, 0xe1, 0x1f, 0xf6, 0x0f, 0xd6, 0x75, 0xbb, 0x77, 0xa1, 0x6b, + 0x77, 0xed, 0xc1, 0xa7, 0x4f, 0xf2, 0x44, 0x1f, 0xe8, 0x2f, 0xfe, 0xf9, 0x33, 0x1b, 0x48, 0x97, + 0x63, 0xbf, 0x95, 0x96, 0x76, 0x61, 0x81, 0x2b, 0xab, 0xf4, 0xfb, 0x0b, 0x3b, 0x45, 0xa0, 0x07, + 0xde, 0x61, 0x15, 0xbf, 0xf6, 0x36, 0x2d, 0xd7, 0xca, 0x3c, 0x87, 0x92, 0x31, 0x76, 0xd0, 0x28, + 0x29, 0xf0, 0x50, 0x84, 0x8f, 0x6d, 0x4d, 0xec, 0xc6, 0x30, 0x7e, 0x9b, 0x33, 0x2e, 0x84, 0x18, + 0x5b, 0x1c, 0x5a, 0xaa, 0xc0, 0xec, 0x49, 0xb8, 0xfe, 0x81, 0x73, 0xe5, 0x71, 0x98, 0xa4, 0x06, + 0x73, 0x94, 0x44, 0xef, 0x7b, 0xbe, 0xdd, 0xa3, 0x79, 0xef, 0xc1, 0x34, 0xff, 0xf8, 0x36, 0xdb, + 0x2b, 0x05, 0x02, 0xab, 0x04, 0xa8, 0x52, 0x09, 0xe8, 0x27, 0xa7, 0x36, 0xd6, 0xcd, 0x18, 0x86, + 0x37, 0xb9, 0x21, 0x81, 0x7e, 0xe9, 0xd3, 0xb0, 0x48, 0x7e, 0xd3, 0xb4, 0x14, 0xb6, 0x24, 0xfe, + 0xc2, 0xab, 0xf8, 0xdd, 0x57, 0xd8, 0x76, 0x5c, 0x08, 0x08, 0x42, 0x36, 0x85, 0x56, 0xb1, 0x8b, + 0x7d, 0x1f, 0xbb, 0x9e, 0xaa, 0x99, 0xe3, 0xcc, 0x0b, 0xdd, 0x18, 0x14, 0xbf, 0xf8, 0x4e, 0x74, + 0x15, 0x6b, 0x0c, 0x59, 0x36, 0xcd, 0xd2, 0x3e, 0x9c, 0x1a, 0x13, 0x15, 0x13, 0x70, 0xbe, 0xca, + 0x39, 0x17, 0x47, 0x22, 0x83, 0xd0, 0x36, 0x41, 0xc8, 0x83, 0xb5, 0x9c, 0x80, 0xf3, 0x77, 0x39, + 0x27, 0xe2, 0x58, 0xb1, 0xa4, 0x84, 0xf1, 0x3a, 0xcc, 0xdf, 0xc2, 0xee, 0x81, 0xed, 0xf1, 0x5b, + 0x9a, 0x09, 0xe8, 0x5e, 0xe3, 0x74, 0x73, 0x1c, 0x48, 0xaf, 0x6d, 0x08, 0xd7, 0x15, 0xc8, 0x74, + 0x34, 0x1d, 0x4f, 0x40, 0xf1, 0x25, 0x4e, 0x31, 0x43, 0xf4, 0x09, 0xb4, 0x0c, 0xf9, 0xae, 0xcd, + 0x2b, 0x53, 0x3c, 0xfc, 0x75, 0x0e, 0xcf, 0x09, 0x0c, 0xa7, 0x70, 0x6c, 0xa7, 0x6f, 0x92, 0xb2, + 0x15, 0x4f, 0xf1, 0x7b, 0x82, 0x42, 0x60, 0x38, 0xc5, 0x09, 0xdc, 0xfa, 0xfb, 0x82, 0xc2, 0x0b, + 0xf9, 0xf3, 0x39, 0xc8, 0xd9, 0x96, 0x79, 0x64, 0x5b, 0x93, 0x18, 0xf1, 0x07, 0x9c, 0x01, 0x38, + 0x84, 0x10, 0x5c, 0x85, 0xec, 0xa4, 0x0b, 0xf1, 0x47, 0xef, 0x88, 0xed, 0x21, 0x56, 0xa0, 0x06, + 0x73, 0x22, 0x41, 0x19, 0xb6, 0x35, 0x01, 0xc5, 0x1f, 0x73, 0x8a, 0x42, 0x08, 0xc6, 0xa7, 0xe1, + 0x63, 0xcf, 0xef, 0xe2, 0x49, 0x48, 0xde, 0x10, 0xd3, 0xe0, 0x10, 0xee, 0xca, 0x03, 0x6c, 0xe9, + 0x87, 0x93, 0x31, 0x7c, 0x59, 0xb8, 0x52, 0x60, 0x08, 0x45, 0x05, 0x66, 0x7b, 0x9a, 0xeb, 0x1d, + 0x6a, 0xe6, 0x44, 0xcb, 0xf1, 0x27, 0x9c, 0x23, 0x1f, 0x80, 0xb8, 0x47, 0xfa, 0xd6, 0x49, 0x68, + 0xbe, 0x22, 0x3c, 0x12, 0x82, 0xf1, 0xad, 0xe7, 0xf9, 0xf4, 0x4a, 0xeb, 0x24, 0x6c, 0x7f, 0x2a, + 0xb6, 0x1e, 0xc3, 0xee, 0x84, 0x19, 0xaf, 0x42, 0xd6, 0x33, 0xee, 0x4c, 0x44, 0xf3, 0x67, 0x62, + 0xa5, 0x29, 0x80, 0x80, 0x5f, 0x84, 0xd3, 0x63, 0xcb, 0xc4, 0x04, 0x64, 0x7f, 0xce, 0xc9, 0x96, + 0xc6, 0x94, 0x0a, 0x9e, 0x12, 0x4e, 0x4a, 0xf9, 0x17, 0x22, 0x25, 0xe0, 0x21, 0xae, 0x26, 0x39, + 0x2b, 0x78, 0x5a, 0xe7, 0x64, 0x5e, 0xfb, 0x4b, 0xe1, 0x35, 0x86, 0x8d, 0x78, 0x6d, 0x0f, 0x96, + 0x38, 0xe3, 0xc9, 0xd6, 0xf5, 0xab, 0x22, 0xb1, 0x32, 0xf4, 0x7e, 0x74, 0x75, 0x3f, 0x03, 0xcb, + 0x81, 0x3b, 0x45, 0x53, 0xea, 0xa9, 0x3d, 0xcd, 0x99, 0x80, 0xf9, 0x6b, 0x9c, 0x59, 0x64, 0xfc, + 0xa0, 0xab, 0xf5, 0x76, 0x34, 0x87, 0x90, 0xbf, 0x00, 0x45, 0x41, 0xde, 0xb7, 0x5c, 0xac, 0xdb, + 0x5d, 0xcb, 0xb8, 0x83, 0xdb, 0x13, 0x50, 0xff, 0xd5, 0xd0, 0x52, 0xed, 0x87, 0xe0, 0x84, 0xb9, + 0x0e, 0x72, 0xd0, 0xab, 0xa8, 0x46, 0xcf, 0xb1, 0x5d, 0x3f, 0x86, 0xf1, 0xeb, 0x62, 0xa5, 0x02, + 0x5c, 0x9d, 0xc2, 0x4a, 0x55, 0x28, 0xd0, 0xc7, 0x49, 0x43, 0xf2, 0xaf, 0x39, 0xd1, 0xec, 0x00, + 0xc5, 0x13, 0x87, 0x6e, 0xf7, 0x1c, 0xcd, 0x9d, 0x24, 0xff, 0xfd, 0x8d, 0x48, 0x1c, 0x1c, 0xc2, + 0x13, 0x87, 0x7f, 0xe4, 0x60, 0x52, 0xed, 0x27, 0x60, 0xf8, 0x86, 0x48, 0x1c, 0x02, 0xc3, 0x29, + 0x44, 0xc3, 0x30, 0x01, 0xc5, 0xdf, 0x0a, 0x0a, 0x81, 0x21, 0x14, 0x9f, 0x1a, 0x14, 0x5a, 0x17, + 0x77, 0x0d, 0xcf, 0x77, 0x59, 0x2b, 0xfc, 0x60, 0xaa, 0x6f, 0xbe, 0x13, 0x6d, 0xc2, 0x94, 0x10, + 0xb4, 0x74, 0x1d, 0xe6, 0x86, 0x5a, 0x0c, 0x14, 0xf7, 0xff, 0x2b, 0xc5, 0x9f, 0x7f, 0x97, 0x27, + 0xa3, 0x68, 0x87, 0x51, 0xda, 0x26, 0xeb, 0x1e, 0xed, 0x03, 0xe2, 0xc9, 0x5e, 0x79, 0x37, 0x58, + 0xfa, 0x48, 0x1b, 0x50, 0xba, 0x06, 0xb3, 0x91, 0x1e, 0x20, 0x9e, 0xea, 0x17, 0x38, 0x55, 0x3e, + 0xdc, 0x02, 0x94, 0x2e, 0x41, 0x8a, 0xd4, 0xf3, 0x78, 0xf8, 0x2f, 0x72, 0x38, 0x55, 0x2f, 0x7d, + 0x1c, 0x32, 0xa2, 0x8e, 0xc7, 0x43, 0x7f, 0x89, 0x43, 0x03, 0x08, 0x81, 0x8b, 0x1a, 0x1e, 0x0f, + 0xff, 0x65, 0x01, 0x17, 0x10, 0x02, 0x9f, 0xdc, 0x85, 0x7f, 0xff, 0x2b, 0x29, 0x9e, 0x87, 0x85, + 0xef, 0xae, 0xc2, 0x0c, 0x2f, 0xde, 0xf1, 0xe8, 0xcf, 0xf1, 0x97, 0x0b, 0x44, 0xe9, 0x19, 0x48, + 0x4f, 0xe8, 0xf0, 0x5f, 0xe5, 0x50, 0xa6, 0x5f, 0xaa, 0x40, 0x2e, 0x54, 0xb0, 0xe3, 0xe1, 0xbf, + 0xc6, 0xe1, 0x61, 0x14, 0x31, 0x9d, 0x17, 0xec, 0x78, 0x82, 0x5f, 0x17, 0xa6, 0x73, 0x04, 0x71, + 0x9b, 0xa8, 0xd5, 0xf1, 0xe8, 0xdf, 0x10, 0x5e, 0x17, 0x90, 0xd2, 0x73, 0x90, 0x0d, 0xf2, 0x6f, + 0x3c, 0xfe, 0x37, 0x39, 0x7e, 0x80, 0x21, 0x1e, 0x08, 0xe5, 0xff, 0x78, 0x8a, 0xdf, 0x12, 0x1e, + 0x08, 0xa1, 0xc8, 0x36, 0x1a, 0xae, 0xe9, 0xf1, 0x4c, 0xbf, 0x2d, 0xb6, 0xd1, 0x50, 0x49, 0x27, + 0xab, 0x49, 0xd3, 0x60, 0x3c, 0xc5, 0xef, 0x88, 0xd5, 0xa4, 0xfa, 0xc4, 0x8c, 0xe1, 0x22, 0x19, + 0xcf, 0xf1, 0x79, 0x61, 0xc6, 0x50, 0x8d, 0x2c, 0x35, 0x01, 0x8d, 0x16, 0xc8, 0x78, 0xbe, 0x2f, + 0x70, 0xbe, 0xf9, 0x91, 0xfa, 0x58, 0x7a, 0x1e, 0x96, 0xc6, 0x17, 0xc7, 0x78, 0xd6, 0x2f, 0xbe, + 0x3b, 0x74, 0x9c, 0x09, 0xd7, 0xc6, 0xd2, 0xde, 0x20, 0xcb, 0x86, 0x0b, 0x63, 0x3c, 0xed, 0xab, + 0xef, 0x46, 0x13, 0x6d, 0xb8, 0x2e, 0x96, 0xca, 0x00, 0x83, 0x9a, 0x14, 0xcf, 0xf5, 0x1a, 0xe7, + 0x0a, 0x81, 0xc8, 0xd6, 0xe0, 0x25, 0x29, 0x1e, 0xff, 0x25, 0xb1, 0x35, 0x38, 0x82, 0x6c, 0x0d, + 0x51, 0x8d, 0xe2, 0xd1, 0xaf, 0x8b, 0xad, 0x21, 0x20, 0xa5, 0xab, 0x90, 0xb1, 0xfa, 0xa6, 0x49, + 0x62, 0x0b, 0x3d, 0xf8, 0x5f, 0xb2, 0x8a, 0xff, 0xf1, 0x1e, 0x07, 0x0b, 0x40, 0xe9, 0x12, 0xa4, + 0x71, 0xef, 0x00, 0xb7, 0xe3, 0x90, 0xff, 0xf9, 0x9e, 0xc8, 0x27, 0x44, 0xbb, 0xf4, 0x1c, 0x00, + 0x3b, 0x4c, 0xd3, 0x0f, 0x45, 0x31, 0xd8, 0xff, 0x7a, 0x8f, 0xff, 0xb3, 0xc4, 0x00, 0x32, 0x20, + 0x60, 0xff, 0x7a, 0xf1, 0x60, 0x82, 0x77, 0xa2, 0x04, 0xf4, 0x00, 0x7e, 0x05, 0x66, 0x6e, 0x78, + 0xb6, 0xe5, 0x6b, 0xdd, 0x38, 0xf4, 0x7f, 0x73, 0xb4, 0xd0, 0x27, 0x0e, 0xeb, 0xd9, 0x2e, 0xf6, + 0xb5, 0xae, 0x17, 0x87, 0xfd, 0x1f, 0x8e, 0x0d, 0x00, 0x04, 0xac, 0x6b, 0x9e, 0x3f, 0xc9, 0xbc, + 0xbf, 0x27, 0xc0, 0x02, 0x40, 0x8c, 0x26, 0xbf, 0x6f, 0xe2, 0xa3, 0x38, 0xec, 0xf7, 0x85, 0xd1, + 0x5c, 0xbf, 0xf4, 0x71, 0xc8, 0x92, 0x9f, 0xec, 0x3f, 0xa0, 0x62, 0xc0, 0xff, 0xcb, 0xc1, 0x03, + 0x04, 0x79, 0xb3, 0xe7, 0xb7, 0x7d, 0x23, 0xde, 0xd9, 0xff, 0xc7, 0x57, 0x5a, 0xe8, 0x97, 0xca, + 0x90, 0xf3, 0xfc, 0x76, 0xbb, 0xcf, 0x3b, 0x9a, 0x18, 0xf8, 0xff, 0xbf, 0x17, 0x1c, 0x72, 0x03, + 0xcc, 0x66, 0x75, 0xfc, 0x7d, 0x1d, 0xd4, 0xec, 0x9a, 0xcd, 0x6e, 0xea, 0x5e, 0x5a, 0x8d, 0xbf, + 0x72, 0x83, 0x6f, 0x25, 0x20, 0xd7, 0x75, 0xed, 0xbe, 0xc3, 0xef, 0xdd, 0xd2, 0xf4, 0x61, 0xf9, + 0x64, 0xb7, 0x75, 0xab, 0x3f, 0x0b, 0x33, 0x35, 0x82, 0xf3, 0x3e, 0x86, 0x56, 0x40, 0xea, 0xd2, + 0x5b, 0x4a, 0xd8, 0x90, 0xd7, 0x19, 0x33, 0x1f, 0x5a, 0xaf, 0x29, 0x52, 0x77, 0xf9, 0x69, 0x90, + 0x6a, 0x68, 0x09, 0xa6, 0xe9, 0x0c, 0x3f, 0x46, 0xbf, 0x48, 0x25, 0x15, 0xfe, 0x14, 0xc8, 0x37, + 0xe8, 0x45, 0xa6, 0xc4, 0xe5, 0x1b, 0x03, 0xfe, 0x0d, 0xc1, 0x2f, 0x8d, 0xf0, 0x6f, 0x9c, 0x90, + 0x3f, 0x39, 0xe0, 0xdf, 0xbc, 0xf8, 0xe6, 0xbd, 0x95, 0xa9, 0xef, 0xdc, 0x5b, 0x99, 0xfa, 0xe7, + 0x7b, 0x2b, 0x53, 0x6f, 0xdd, 0x5b, 0x91, 0xbe, 0x7f, 0x6f, 0x45, 0xfa, 0xc1, 0xbd, 0x15, 0xe9, + 0xee, 0xfd, 0x15, 0xe9, 0xcb, 0xf7, 0x57, 0xa4, 0xaf, 0xde, 0x5f, 0x91, 0xbe, 0x79, 0x7f, 0x45, + 0x7a, 0xf3, 0xfe, 0xca, 0xd4, 0x77, 0xee, 0xaf, 0x4c, 0xbd, 0x75, 0x7f, 0x65, 0xea, 0x87, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x58, 0x09, 0xc3, 0x38, 0xc8, 0x31, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d diff --git a/vendor/github.com/gogo/protobuf/test/group/grouppb_test.go b/vendor/github.com/gogo/protobuf/test/group/grouppb_test.go index 6ae267c78..0ca768486 100644 --- a/vendor/github.com/gogo/protobuf/test/group/grouppb_test.go +++ b/vendor/github.com/gogo/protobuf/test/group/grouppb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: group.proto -// DO NOT EDIT! /* Package group is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package group import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestGroups1Proto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups1(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups1{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,20 +58,20 @@ func TestGroups1Proto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestGroups1_GProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups1_G(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups1_G{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -94,20 +92,20 @@ func TestGroups1_GProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestGroups2Proto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups2(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups2{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -128,20 +126,20 @@ func TestGroups2Proto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestGroups2_GProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups2_G(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups2_G{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -162,21 +160,21 @@ func TestGroups2_GProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestGroups1JSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups1(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups1{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -189,15 +187,15 @@ func TestGroups1JSON(t *testing.T) { } func TestGroups1_GJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups1_G(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups1_G{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -210,15 +208,15 @@ func TestGroups1_GJSON(t *testing.T) { } func TestGroups2JSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups2(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups2{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -231,15 +229,15 @@ func TestGroups2JSON(t *testing.T) { } func TestGroups2_GJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups2_G(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Groups2_G{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -252,11 +250,11 @@ func TestGroups2_GJSON(t *testing.T) { } func TestGroups1ProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups1(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Groups1{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -269,11 +267,11 @@ func TestGroups1ProtoText(t *testing.T) { func TestGroups1ProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups1(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Groups1{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -286,11 +284,11 @@ func TestGroups1ProtoCompactText(t *testing.T) { func TestGroups1_GProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups1_G(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Groups1_G{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -303,11 +301,11 @@ func TestGroups1_GProtoText(t *testing.T) { func TestGroups1_GProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups1_G(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Groups1_G{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -320,11 +318,11 @@ func TestGroups1_GProtoCompactText(t *testing.T) { func TestGroups2ProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups2(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Groups2{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -337,11 +335,11 @@ func TestGroups2ProtoText(t *testing.T) { func TestGroups2ProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups2(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Groups2{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -354,11 +352,11 @@ func TestGroups2ProtoCompactText(t *testing.T) { func TestGroups2_GProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups2_G(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Groups2_G{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -371,11 +369,11 @@ func TestGroups2_GProtoText(t *testing.T) { func TestGroups2_GProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedGroups2_G(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Groups2_G{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -390,14 +388,14 @@ func TestGroupDescription(t *testing.T) { GroupDescription() } func TestGroups1VerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups1(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Groups1{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -405,14 +403,14 @@ func TestGroups1VerboseEqual(t *testing.T) { } } func TestGroups1_GVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups1_G(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Groups1_G{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -420,14 +418,14 @@ func TestGroups1_GVerboseEqual(t *testing.T) { } } func TestGroups2VerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups2(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Groups2{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -435,14 +433,14 @@ func TestGroups2VerboseEqual(t *testing.T) { } } func TestGroups2_GVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups2_G(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Groups2_G{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -450,59 +448,59 @@ func TestGroups2_GVerboseEqual(t *testing.T) { } } func TestGroups1GoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups1(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestGroups1_GGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups1_G(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestGroups2GoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups2(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestGroups2_GGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups2_G(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestGroups1Stringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups1(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -511,7 +509,7 @@ func TestGroups1Stringer(t *testing.T) { } } func TestGroups1_GStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups1_G(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -520,7 +518,7 @@ func TestGroups1_GStringer(t *testing.T) { } } func TestGroups2Stringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups2(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -529,7 +527,7 @@ func TestGroups2Stringer(t *testing.T) { } } func TestGroups2_GStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedGroups2_G(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go b/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go index 137f15d43..78d8f4e68 100644 --- a/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/importdedup/proto.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto.proto -// DO NOT EDIT! /* Package importdedup is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go index 3a68b1f6e..1f24f5d0b 100644 --- a/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/importdedup/subpkg/subproto.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: subpkg/subproto.proto -// DO NOT EDIT! /* Package subpkg is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/Makefile b/vendor/github.com/gogo/protobuf/test/importduplicate/Makefile new file mode 100644 index 000000000..efd3ea248 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/Makefile @@ -0,0 +1,40 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + go install github.com/gogo/protobuf/protoc-min-version + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=:. \ + --proto_path=../../../../../:../../protobuf/:. importduplicate.proto + protoc-min-version --version="3.0.0" --gogo_out=:. \ + --proto_path=../../../../../:../../protobuf/:. sortkeys/sortable.proto + protoc-min-version --version="3.0.0" --gogo_out=:. \ + --proto_path=../../../../../:../../protobuf/:. proto/proto.proto + +test: + go test diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.pb.go b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.pb.go new file mode 100644 index 000000000..d790d214b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.pb.go @@ -0,0 +1,264 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: importduplicate.proto + +/* +Package importduplicate is a generated protocol buffer package. + +It is generated from these files: + importduplicate.proto + +It has these top-level messages: + MapAndSortKeys +*/ +package importduplicate + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import sortkeys "github.com/gogo/protobuf/test/importduplicate/sortkeys" +import proto1 "github.com/gogo/protobuf/test/importduplicate/proto" + +import strings "strings" +import reflect "reflect" +import sortkeys1 "github.com/gogo/protobuf/sortkeys" + +// 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 + +type MapAndSortKeys struct { + Key *sortkeys.Object `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` + KeyValue map[int32]string `protobuf:"bytes,2,rep,name=keyValue" json:"keyValue,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Value *proto1.Subject `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"` +} + +func (m *MapAndSortKeys) Reset() { *m = MapAndSortKeys{} } +func (m *MapAndSortKeys) String() string { return proto.CompactTextString(m) } +func (*MapAndSortKeys) ProtoMessage() {} +func (*MapAndSortKeys) Descriptor() ([]byte, []int) { return fileDescriptorImportduplicate, []int{0} } + +func (m *MapAndSortKeys) GetKey() *sortkeys.Object { + if m != nil { + return m.Key + } + return nil +} + +func (m *MapAndSortKeys) GetKeyValue() map[int32]string { + if m != nil { + return m.KeyValue + } + return nil +} + +func (m *MapAndSortKeys) GetValue() *proto1.Subject { + if m != nil { + return m.Value + } + return nil +} + +func init() { + proto.RegisterType((*MapAndSortKeys)(nil), "importduplicate.MapAndSortKeys") +} +func (this *MapAndSortKeys) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapAndSortKeys) + if !ok { + that2, ok := that.(MapAndSortKeys) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Key.Equal(that1.Key) { + return false + } + if len(this.KeyValue) != len(that1.KeyValue) { + return false + } + for i := range this.KeyValue { + if this.KeyValue[i] != that1.KeyValue[i] { + return false + } + } + if !this.Value.Equal(that1.Value) { + return false + } + return true +} +func (this *MapAndSortKeys) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&importduplicate.MapAndSortKeys{") + if this.Key != nil { + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + } + keysForKeyValue := make([]int32, 0, len(this.KeyValue)) + for k := range this.KeyValue { + keysForKeyValue = append(keysForKeyValue, k) + } + sortkeys1.Int32s(keysForKeyValue) + mapStringForKeyValue := "map[int32]string{" + for _, k := range keysForKeyValue { + mapStringForKeyValue += fmt.Sprintf("%#v: %#v,", k, this.KeyValue[k]) + } + mapStringForKeyValue += "}" + if this.KeyValue != nil { + s = append(s, "KeyValue: "+mapStringForKeyValue+",\n") + } + if this.Value != nil { + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringImportduplicate(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func NewPopulatedMapAndSortKeys(r randyImportduplicate, easy bool) *MapAndSortKeys { + this := &MapAndSortKeys{} + if r.Intn(10) != 0 { + this.Key = sortkeys.NewPopulatedObject(r, easy) + } + if r.Intn(10) != 0 { + v1 := r.Intn(10) + this.KeyValue = make(map[int32]string) + for i := 0; i < v1; i++ { + this.KeyValue[int32(r.Int31())] = randStringImportduplicate(r) + } + } + if r.Intn(10) != 0 { + this.Value = proto1.NewPopulatedSubject(r, easy) + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyImportduplicate interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneImportduplicate(r randyImportduplicate) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringImportduplicate(r randyImportduplicate) string { + v2 := r.Intn(100) + tmps := make([]rune, v2) + for i := 0; i < v2; i++ { + tmps[i] = randUTF8RuneImportduplicate(r) + } + return string(tmps) +} +func randUnrecognizedImportduplicate(r randyImportduplicate, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldImportduplicate(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldImportduplicate(dAtA []byte, r randyImportduplicate, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateImportduplicate(dAtA, uint64(key)) + v3 := r.Int63() + if r.Intn(2) == 0 { + v3 *= -1 + } + dAtA = encodeVarintPopulateImportduplicate(dAtA, uint64(v3)) + case 1: + dAtA = encodeVarintPopulateImportduplicate(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateImportduplicate(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateImportduplicate(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateImportduplicate(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateImportduplicate(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} + +func init() { proto.RegisterFile("importduplicate.proto", fileDescriptorImportduplicate) } + +var fileDescriptorImportduplicate = []byte{ + // 277 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcd, 0xcc, 0x2d, 0xc8, + 0x2f, 0x2a, 0x49, 0x29, 0x2d, 0xc8, 0xc9, 0x4c, 0x4e, 0x2c, 0x49, 0xd5, 0x2b, 0x28, 0xca, 0x2f, + 0xc9, 0x17, 0xe2, 0x47, 0x13, 0x96, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, + 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab, 0x4b, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, + 0x30, 0x0b, 0xa2, 0x5f, 0xca, 0x15, 0xa7, 0xf2, 0x92, 0xd4, 0xe2, 0x12, 0x7d, 0x34, 0xd3, 0xf5, + 0x8b, 0xf3, 0x8b, 0x4a, 0xb2, 0x53, 0x2b, 0x8b, 0xc1, 0x8c, 0xc4, 0xa4, 0x1c, 0xa8, 0x33, 0xa4, + 0xec, 0x49, 0x33, 0x06, 0xe2, 0x0c, 0x30, 0x09, 0x31, 0x40, 0xe9, 0x11, 0x23, 0x17, 0x9f, 0x6f, + 0x62, 0x81, 0x63, 0x5e, 0x4a, 0x70, 0x7e, 0x51, 0x89, 0x77, 0x6a, 0x65, 0xb1, 0x90, 0x12, 0x17, + 0x73, 0x76, 0x6a, 0xa5, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0xb7, 0x91, 0x80, 0x1e, 0xcc, 0x6a, 0x3d, + 0xff, 0xa4, 0xac, 0xd4, 0xe4, 0x92, 0x20, 0x90, 0xa4, 0x90, 0x27, 0x17, 0x47, 0x76, 0x6a, 0x65, + 0x58, 0x62, 0x4e, 0x69, 0xaa, 0x04, 0x93, 0x02, 0xb3, 0x06, 0xb7, 0x91, 0xae, 0x1e, 0x7a, 0x40, + 0xa1, 0x1a, 0xab, 0xe7, 0x0d, 0x55, 0xef, 0x9a, 0x57, 0x52, 0x54, 0x19, 0x04, 0xd7, 0x2e, 0xa4, + 0xc2, 0xc5, 0x5a, 0x06, 0x36, 0x87, 0x19, 0x6c, 0x21, 0x1f, 0xc4, 0x61, 0x7a, 0xc1, 0xa5, 0x10, + 0xeb, 0x20, 0x92, 0x52, 0xd6, 0x5c, 0xbc, 0x28, 0x06, 0x08, 0x09, 0x20, 0x5c, 0xc9, 0x0a, 0x71, + 0x93, 0x08, 0xcc, 0x20, 0x26, 0x05, 0x46, 0x0d, 0x4e, 0xa8, 0x46, 0x2b, 0x26, 0x0b, 0x46, 0x27, + 0x81, 0x0f, 0x0f, 0xe5, 0x18, 0x7f, 0x3c, 0x94, 0x63, 0x5c, 0xf1, 0x48, 0x8e, 0x71, 0xc7, 0x23, + 0x39, 0xc6, 0x24, 0x36, 0xb0, 0x25, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x50, 0xcc, 0xec, + 0x38, 0xde, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.proto b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.proto new file mode 100644 index 000000000..024cc6ecb --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate.proto @@ -0,0 +1,45 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; +package importduplicate; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +import "github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.proto"; +import "github.com/gogo/protobuf/test/importduplicate/proto/proto.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.gostring_all) = true; + +message MapAndSortKeys { + sortkeys.Object key = 1; + map keyValue = 2; + proto.Subject value = 3; +} diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/mytypes.go b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate_test.go similarity index 89% rename from vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/mytypes.go rename to vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate_test.go index 202656eee..be385489c 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicate_test.go @@ -1,6 +1,6 @@ // Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// Copyright (c) 2015, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -26,6 +26,9 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -package castvalue +package importduplicate -type MyWilson Wilson +import testing "testing" + +func TestImportDuplicate(t *testing.T) { +} diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicatepb_test.go b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicatepb_test.go new file mode 100644 index 000000000..03f354114 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/importduplicatepb_test.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: importduplicate.proto + +/* +Package importduplicate is a generated protocol buffer package. + +It is generated from these files: + importduplicate.proto + +It has these top-level messages: + MapAndSortKeys +*/ +package importduplicate + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import _ "github.com/gogo/protobuf/test/importduplicate/sortkeys" +import _ "github.com/gogo/protobuf/test/importduplicate/proto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestMapAndSortKeysProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapAndSortKeys(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapAndSortKeys{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapAndSortKeysJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapAndSortKeys(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapAndSortKeys{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapAndSortKeysProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapAndSortKeys(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &MapAndSortKeys{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapAndSortKeysProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapAndSortKeys(popr, true) + dAtA := proto.CompactTextString(p) + msg := &MapAndSortKeys{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapAndSortKeysGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapAndSortKeys(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.pb.go b/vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.pb.go new file mode 100644 index 000000000..147b8e82c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.pb.go @@ -0,0 +1,180 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: proto/proto.proto + +/* +Package proto is a generated protocol buffer package. + +It is generated from these files: + proto/proto.proto + +It has these top-level messages: + Subject +*/ +package proto + +import proto1 "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import strings "strings" +import reflect "reflect" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto1.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 _ = proto1.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +type Subject struct { +} + +func (m *Subject) Reset() { *m = Subject{} } +func (m *Subject) String() string { return proto1.CompactTextString(m) } +func (*Subject) ProtoMessage() {} +func (*Subject) Descriptor() ([]byte, []int) { return fileDescriptorProto, []int{0} } + +func init() { + proto1.RegisterType((*Subject)(nil), "proto.Subject") +} +func (this *Subject) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Subject) + if !ok { + that2, ok := that.(Subject) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + return true +} +func (this *Subject) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 4) + s = append(s, "&proto.Subject{") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringProto(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func NewPopulatedSubject(r randyProto, easy bool) *Subject { + this := &Subject{} + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyProto interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneProto(r randyProto) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringProto(r randyProto) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneProto(r) + } + return string(tmps) +} +func randUnrecognizedProto(r randyProto, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldProto(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldProto(dAtA []byte, r randyProto, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateProto(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateProto(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateProto(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateProto(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateProto(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateProto(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateProto(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} + +func init() { proto1.RegisterFile("proto/proto.proto", fileDescriptorProto) } + +var fileDescriptorProto = []byte{ + // 103 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2c, 0x28, 0xca, 0x2f, + 0xc9, 0xd7, 0x07, 0x93, 0x7a, 0x60, 0x52, 0x88, 0x15, 0x4c, 0x49, 0xe9, 0xa6, 0x67, 0x96, 0x64, + 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0x43, 0xd5, 0x24, 0x95, 0xa6, 0x81, + 0x79, 0x10, 0x6d, 0x20, 0x16, 0x44, 0x97, 0x12, 0x27, 0x17, 0x7b, 0x70, 0x69, 0x52, 0x56, 0x6a, + 0x72, 0x89, 0x93, 0xc0, 0x87, 0x87, 0x72, 0x8c, 0x3f, 0x1e, 0xca, 0x31, 0xae, 0x78, 0x24, 0xc7, + 0xb8, 0xe3, 0x91, 0x1c, 0x63, 0x12, 0x1b, 0x58, 0x8d, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0xf0, + 0xc4, 0xe7, 0x73, 0x6e, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/mytypes.go b/vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.proto similarity index 80% rename from vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/mytypes.go rename to vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.proto index 202656eee..122e21a45 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/proto/proto.proto @@ -1,6 +1,6 @@ // Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// Copyright (c) 2015, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -26,6 +26,16 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -package castvalue +syntax = "proto3"; +package proto; -type MyWilson Wilson +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.gostring_all) = true; + +message Subject { + +} diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/proto/protopb_test.go b/vendor/github.com/gogo/protobuf/test/importduplicate/proto/protopb_test.go new file mode 100644 index 000000000..4a7f0c8e0 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/proto/protopb_test.go @@ -0,0 +1,121 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: proto/proto.proto + +/* +Package proto is a generated protocol buffer package. + +It is generated from these files: + proto/proto.proto + +It has these top-level messages: + Subject +*/ +package proto + +import testing "testing" +import rand "math/rand" +import time "time" +import proto1 "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto1.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestSubjectProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedSubject(popr, false) + dAtA, err := proto1.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Subject{} + if err := proto1.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto1.Unmarshal(littlefuzz, msg) + } +} + +func TestSubjectJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedSubject(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Subject{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestSubjectProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedSubject(popr, true) + dAtA := proto1.MarshalTextString(p) + msg := &Subject{} + if err := proto1.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestSubjectProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedSubject(popr, true) + dAtA := proto1.CompactTextString(p) + msg := &Subject{} + if err := proto1.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestSubjectGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedSubject(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.pb.go b/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.pb.go new file mode 100644 index 000000000..da3f9dc4f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.pb.go @@ -0,0 +1,181 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: sortkeys/sortable.proto + +/* +Package sortkeys is a generated protocol buffer package. + +It is generated from these files: + sortkeys/sortable.proto + +It has these top-level messages: + Object +*/ +package sortkeys + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import strings "strings" +import reflect "reflect" + +// 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 + +type Object struct { +} + +func (m *Object) Reset() { *m = Object{} } +func (m *Object) String() string { return proto.CompactTextString(m) } +func (*Object) ProtoMessage() {} +func (*Object) Descriptor() ([]byte, []int) { return fileDescriptorSortable, []int{0} } + +func init() { + proto.RegisterType((*Object)(nil), "sortkeys.Object") +} +func (this *Object) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Object) + if !ok { + that2, ok := that.(Object) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + return true +} +func (this *Object) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 4) + s = append(s, "&sortkeys.Object{") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringSortable(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func NewPopulatedObject(r randySortable, easy bool) *Object { + this := &Object{} + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randySortable interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneSortable(r randySortable) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringSortable(r randySortable) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneSortable(r) + } + return string(tmps) +} +func randUnrecognizedSortable(r randySortable, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldSortable(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldSortable(dAtA []byte, r randySortable, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateSortable(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateSortable(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateSortable(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateSortable(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateSortable(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateSortable(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateSortable(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} + +func init() { proto.RegisterFile("sortkeys/sortable.proto", fileDescriptorSortable) } + +var fileDescriptorSortable = []byte{ + // 115 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2f, 0xce, 0x2f, 0x2a, + 0xc9, 0x4e, 0xad, 0x2c, 0xd6, 0x07, 0x31, 0x12, 0x93, 0x72, 0x52, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, + 0xf2, 0x85, 0x38, 0x60, 0x12, 0x52, 0xba, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, + 0xb9, 0xfa, 0xe9, 0xf9, 0xe9, 0xf9, 0xfa, 0x60, 0x05, 0x49, 0xa5, 0x69, 0x60, 0x1e, 0x98, 0x03, + 0x66, 0x41, 0x34, 0x2a, 0x71, 0x70, 0xb1, 0xf9, 0x27, 0x65, 0xa5, 0x26, 0x97, 0x38, 0x09, 0x7c, + 0x78, 0x28, 0xc7, 0xf8, 0xe3, 0xa1, 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, + 0x26, 0xb1, 0x81, 0x95, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x1b, 0xba, 0xd6, 0x76, + 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/mytypes.go b/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.proto similarity index 80% rename from vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/mytypes.go rename to vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.proto index 202656eee..5052b2c3b 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/mytypes.go +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortable.proto @@ -1,6 +1,6 @@ // Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// Copyright (c) 2015, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -26,6 +26,16 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -package castvalue +syntax = "proto3"; +package sortkeys; -type MyWilson Wilson +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.gostring_all) = true; + +message Object { + +} diff --git a/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortablepb_test.go b/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortablepb_test.go new file mode 100644 index 000000000..f039061f2 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/importduplicate/sortkeys/sortablepb_test.go @@ -0,0 +1,121 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: sortkeys/sortable.proto + +/* +Package sortkeys is a generated protocol buffer package. + +It is generated from these files: + sortkeys/sortable.proto + +It has these top-level messages: + Object +*/ +package sortkeys + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestObjectProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Object{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestObjectJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Object{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestObjectProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &Object{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestObjectProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + dAtA := proto.CompactTextString(p) + msg := &Object{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestObjectGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedObject(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go index 4343836b9..cbd5fd058 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/index.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: index.proto -// DO NOT EDIT! /* Package index is a generated protocol buffer package. @@ -142,24 +141,6 @@ func (m *IndexQuery) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Index(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 encodeFixed32Index(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 encodeVarintIndex(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/indexpb_test.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/indexpb_test.go index 00ab4b17f..57d4d9a37 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/indexpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/index/indexpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: index.proto -// DO NOT EDIT! /* Package index is a generated protocol buffer package. @@ -14,11 +13,10 @@ It has these top-level messages: package index import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -30,14 +28,14 @@ var _ = math.Inf func TestIndexQueryProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQuery{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -55,13 +53,13 @@ func TestIndexQueryProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestIndexQueryMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -73,7 +71,7 @@ func TestIndexQueryMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQuery{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -86,15 +84,15 @@ func TestIndexQueryMarshalTo(t *testing.T) { func TestIndexQueryJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQuery{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -104,11 +102,11 @@ func TestIndexQueryJSON(t *testing.T) { } func TestIndexQueryProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &IndexQuery{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -118,11 +116,11 @@ func TestIndexQueryProtoText(t *testing.T) { func TestIndexQueryProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &IndexQuery{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -132,10 +130,10 @@ func TestIndexQueryProtoCompactText(t *testing.T) { func TestIndexQuerySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQuery(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -146,7 +144,7 @@ func TestIndexQuerySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go index f5fb61f73..d180ff466 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximport.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: indeximport.proto -// DO NOT EDIT! /* Package indeximport is a generated protocol buffer package. @@ -125,24 +124,6 @@ func (m *IndexQueries) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Indeximport(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 encodeFixed32Indeximport(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 encodeVarintIndeximport(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximportpb_test.go b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximportpb_test.go index 62133d17f..62712a79f 100644 --- a/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximportpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/indeximport-issue72/indeximportpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: indeximport.proto -// DO NOT EDIT! /* Package indeximport is a generated protocol buffer package. @@ -14,11 +13,10 @@ It has these top-level messages: package indeximport import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/test/indeximport-issue72/index" @@ -31,14 +29,14 @@ var _ = math.Inf func TestIndexQueriesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQueries{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -56,13 +54,13 @@ func TestIndexQueriesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestIndexQueriesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -74,7 +72,7 @@ func TestIndexQueriesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQueries{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -87,15 +85,15 @@ func TestIndexQueriesMarshalTo(t *testing.T) { func TestIndexQueriesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IndexQueries{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -105,11 +103,11 @@ func TestIndexQueriesJSON(t *testing.T) { } func TestIndexQueriesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &IndexQueries{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -119,11 +117,11 @@ func TestIndexQueriesProtoText(t *testing.T) { func TestIndexQueriesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &IndexQueries{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -133,10 +131,10 @@ func TestIndexQueriesProtoCompactText(t *testing.T) { func TestIndexQueriesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIndexQueries(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -147,7 +145,7 @@ func TestIndexQueriesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } diff --git a/vendor/github.com/gogo/protobuf/test/int64support/Makefile b/vendor/github.com/gogo/protobuf/test/int64support/Makefile new file mode 100644 index 000000000..356ac1214 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/int64support/Makefile @@ -0,0 +1,30 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2013, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + (protoc -I=. -I=../../../../../ -I=../../protobuf/ --gogo_out=. object.proto) diff --git a/vendor/github.com/gogo/protobuf/test/int64support/object.pb.go b/vendor/github.com/gogo/protobuf/test/int64support/object.pb.go new file mode 100644 index 000000000..01afae85b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/int64support/object.pb.go @@ -0,0 +1,495 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: object.proto + +/* +Package int64support is a generated protocol buffer package. + +It is generated from these files: + object.proto + +It has these top-level messages: + Object +*/ +package int64support + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +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 + +type Object struct { + OptionalNumber *int64 `protobuf:"varint,1,opt,name=optional_number,json=optionalNumber" json:"optional_number,omitempty"` +} + +func (m *Object) Reset() { *m = Object{} } +func (*Object) ProtoMessage() {} +func (*Object) Descriptor() ([]byte, []int) { return fileDescriptorObject, []int{0} } + +func (m *Object) GetOptionalNumber() int64 { + if m != nil && m.OptionalNumber != nil { + return *m.OptionalNumber + } + return 0 +} + +func init() { + proto.RegisterType((*Object)(nil), "int64support.Object") +} +func (this *Object) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*Object) + if !ok { + that2, ok := that.(Object) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *Object") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *Object but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *Object but is not nil && this == nil") + } + if this.OptionalNumber != nil && that1.OptionalNumber != nil { + if *this.OptionalNumber != *that1.OptionalNumber { + return fmt.Errorf("OptionalNumber this(%v) Not Equal that(%v)", *this.OptionalNumber, *that1.OptionalNumber) + } + } else if this.OptionalNumber != nil { + return fmt.Errorf("this.OptionalNumber == nil && that.OptionalNumber != nil") + } else if that1.OptionalNumber != nil { + return fmt.Errorf("OptionalNumber this(%v) Not Equal that(%v)", this.OptionalNumber, that1.OptionalNumber) + } + return nil +} +func (this *Object) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Object) + if !ok { + that2, ok := that.(Object) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.OptionalNumber != nil && that1.OptionalNumber != nil { + if *this.OptionalNumber != *that1.OptionalNumber { + return false + } + } else if this.OptionalNumber != nil { + return false + } else if that1.OptionalNumber != nil { + return false + } + return true +} +func (this *Object) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&int64support.Object{") + if this.OptionalNumber != nil { + s = append(s, "OptionalNumber: "+valueToGoStringObject(this.OptionalNumber, "int64")+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringObject(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *Object) 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 *Object) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.OptionalNumber != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintObject(dAtA, i, uint64(*m.OptionalNumber)) + } + return i, nil +} + +func encodeVarintObject(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 NewPopulatedObject(r randyObject, easy bool) *Object { + this := &Object{} + if r.Intn(10) != 0 { + v1 := int64(r.Int63()) + if r.Intn(2) == 0 { + v1 *= -1 + } + this.OptionalNumber = &v1 + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyObject interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneObject(r randyObject) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringObject(r randyObject) string { + v2 := r.Intn(100) + tmps := make([]rune, v2) + for i := 0; i < v2; i++ { + tmps[i] = randUTF8RuneObject(r) + } + return string(tmps) +} +func randUnrecognizedObject(r randyObject, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldObject(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldObject(dAtA []byte, r randyObject, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateObject(dAtA, uint64(key)) + v3 := r.Int63() + if r.Intn(2) == 0 { + v3 *= -1 + } + dAtA = encodeVarintPopulateObject(dAtA, uint64(v3)) + case 1: + dAtA = encodeVarintPopulateObject(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateObject(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateObject(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateObject(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateObject(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Object) Size() (n int) { + var l int + _ = l + if m.OptionalNumber != nil { + n += 1 + sovObject(uint64(*m.OptionalNumber)) + } + return n +} + +func sovObject(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozObject(x uint64) (n int) { + return sovObject(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Object) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Object{`, + `OptionalNumber:` + valueToStringObject(this.OptionalNumber) + `,`, + `}`, + }, "") + return s +} +func valueToStringObject(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Object) 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 ErrIntOverflowObject + } + 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: Object: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Object: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OptionalNumber", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowObject + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.OptionalNumber = &v + default: + iNdEx = preIndex + skippy, err := skipObject(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthObject + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipObject(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, ErrIntOverflowObject + } + 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, ErrIntOverflowObject + } + 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, ErrIntOverflowObject + } + 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, ErrInvalidLengthObject + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowObject + } + 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 := skipObject(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 ( + ErrInvalidLengthObject = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowObject = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("object.proto", fileDescriptorObject) } + +var fileDescriptorObject = []byte{ + // 190 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xc9, 0x4f, 0xca, 0x4a, + 0x4d, 0x2e, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0xcc, 0x2b, 0x31, 0x33, 0x29, + 0x2e, 0x2d, 0x28, 0xc8, 0x2f, 0x2a, 0x91, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, + 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, + 0x1c, 0x30, 0x0b, 0xa2, 0x59, 0xc9, 0x90, 0x8b, 0xcd, 0x1f, 0x6c, 0x98, 0x90, 0x3a, 0x17, 0x7f, + 0x7e, 0x41, 0x49, 0x66, 0x7e, 0x5e, 0x62, 0x4e, 0x7c, 0x5e, 0x69, 0x6e, 0x52, 0x6a, 0x91, 0x04, + 0xa3, 0x02, 0xa3, 0x06, 0x73, 0x10, 0x1f, 0x4c, 0xd8, 0x0f, 0x2c, 0xea, 0xe4, 0x75, 0xe1, 0xa1, + 0x1c, 0xc3, 0x8d, 0x87, 0x72, 0x0c, 0x0f, 0x1e, 0xca, 0x31, 0x7e, 0x78, 0x28, 0xc7, 0xf8, 0xe3, + 0xa1, 0x1c, 0x63, 0xc3, 0x23, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x77, 0x3c, 0x92, 0x63, 0x3c, + 0xf0, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, + 0x7c, 0xf1, 0x48, 0x8e, 0xe1, 0xc3, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0xa2, 0x50, 0x5c, + 0x0b, 0x08, 0x00, 0x00, 0xff, 0xff, 0x73, 0x60, 0x3c, 0xd6, 0xca, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/int64support/object.proto b/vendor/github.com/gogo/protobuf/test/int64support/object.proto new file mode 100644 index 000000000..68e256a0c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/int64support/object.proto @@ -0,0 +1,24 @@ +package int64support; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option go_package = "int64support"; +option (gogoproto.benchgen_all) = true; +option (gogoproto.enum_stringer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.goproto_enum_prefix_all) = false; +option (gogoproto.goproto_enum_stringer_all) = false; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.goproto_unrecognized_all) = false; +option (gogoproto.gostring_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.stringer_all) = true; +option (gogoproto.testgen_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.verbose_equal_all) = true; + +message Object { + optional int64 optional_number = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/int64support/object_js.go b/vendor/github.com/gogo/protobuf/test/int64support/object_js.go new file mode 100644 index 000000000..3fb7ea9d8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/int64support/object_js.go @@ -0,0 +1,63 @@ +package int64support + +import ( + "bytes" + "encoding/json" + "fmt" + "strconv" +) + +var ( + _ = json.Marshaler(new(Object)) + _ = json.Unmarshaler(new(Object)) +) + +func (o *Object) MarshalJSON() ([]byte, error) { + if o.OptionalNumber == nil { + return ([]byte)("{}"), nil + } + return ([]byte)(fmt.Sprintf("{\"optional_number\": %d}", *o.OptionalNumber)), nil +} + +func (o *Object) UnmarshalJSON(b []byte) error { + var ( + trim = func(v []byte) []byte { return bytes.Trim(v, " \n\r\t") } + strip = func(v []byte, first, last byte) ([]byte, error) { + x := len(v) + if x < 2 || v[0] != first || v[x-1] != last { + return nil, fmt.Errorf("failed to strip %q and %q from byte sequence", first, last) + } + return v[1 : x-1], nil + } + ) + b, err := strip(trim(b), '{', '}') + if err != nil { + return err + } + // poor man parser: assume the only commas appear between JSON key-value pairs, + // and that object hierarchy is flat + for xf, f := range bytes.Split(b, ([]byte)(",")) { + parts := bytes.SplitN(f, ([]byte)(":"), 2) + if x := len(parts); x != 2 { + if xf == 0 && (x == 0 || (x == 1 && len(trim(parts[0])) == 0)) { + return nil // empty object + } + return fmt.Errorf("failed to parse field-value seperator char ':'") + } + fieldName, err := strip(trim(parts[0]), '"', '"') + if err != nil { + return err + } + if string(fieldName) != "optional_number" { + continue // ignore unknown field + } + fieldValue := trim(parts[1]) + v, err := strconv.ParseInt(string(fieldValue), 10, 64) + if err != nil { + return err + } + o.OptionalNumber = &v + break + } + return nil +} diff --git a/vendor/github.com/gogo/protobuf/test/int64support/object_js_test.go b/vendor/github.com/gogo/protobuf/test/int64support/object_js_test.go new file mode 100644 index 000000000..d769a2841 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/int64support/object_js_test.go @@ -0,0 +1,47 @@ +package int64support + +import ( + "encoding/json" + "testing" +) + +func TestMarshaler(t *testing.T) { + n := int64(1) + b, err := json.Marshal(&Object{&n}) + if err != nil { + t.Fatal(err) + } + const expected = "{\"optional_number\":1}" + if string(b) != expected { + t.Fatalf("expected '%s' instead of '%s'", expected, string(b)) + } + + b, err = json.Marshal(new(Object)) + if err != nil { + t.Fatal(err) + } + const expected2 = "{}" + if string(b) != expected2 { + t.Fatalf("expected '%s' instead of '%s'", expected2, string(b)) + } +} + +func TestUnmarshaler(t *testing.T) { + o := new(Object) + err := json.Unmarshal(([]byte)("{\"optional_number\": 1}"), o) + if err != nil { + t.Fatal(err) + } + if n := o.GetOptionalNumber(); n != 1 { + t.Fatalf("expected 1 instead of %d", n) + } + + o = new(Object) + err = json.Unmarshal(([]byte)("{}"), o) + if err != nil { + t.Fatal(err) + } + if o.OptionalNumber != nil { + t.Fatalf("expected nil OptionalNumber instead of %d", *o.OptionalNumber) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/int64support/objectpb_test.go b/vendor/github.com/gogo/protobuf/test/int64support/objectpb_test.go new file mode 100644 index 000000000..ae7afd07d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/int64support/objectpb_test.go @@ -0,0 +1,261 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: object.proto + +/* +Package int64support is a generated protocol buffer package. + +It is generated from these files: + object.proto + +It has these top-level messages: + Object +*/ +package int64support + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestObjectProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Object{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestObjectMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Object{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkObjectProtoMarshal(b *testing.B) { + popr := rand.New(rand.NewSource(616)) + total := 0 + pops := make([]*Object, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedObject(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkObjectProtoUnmarshal(b *testing.B) { + popr := rand.New(rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := proto.Marshal(NewPopulatedObject(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Object{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestObjectJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Object{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestObjectProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &Object{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestObjectProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + dAtA := proto.CompactTextString(p) + msg := &Object{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestObjectVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedObject(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &Object{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestObjectGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedObject(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestObjectSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkObjectSize(b *testing.B) { + popr := rand.New(rand.NewSource(616)) + total := 0 + pops := make([]*Object, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedObject(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +func TestObjectStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedObject(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go b/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go index ca9029ee3..ddde06b88 100644 --- a/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go +++ b/vendor/github.com/gogo/protobuf/test/issue260/issue260.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: issue260.proto -// DO NOT EDIT! /* Package issue260 is a generated protocol buffer package. @@ -23,7 +22,7 @@ import _ "github.com/gogo/protobuf/types" import time "time" -import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" +import types "github.com/gogo/protobuf/types" import io "io" @@ -352,8 +351,8 @@ func (m *DroppedWithoutGetters) MarshalTo(dAtA []byte) (int, error) { } dAtA[i] = 0x1a i++ - i = encodeVarintIssue260(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) - n1, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) + i = encodeVarintIssue260(dAtA, i, uint64(types.SizeOfStdTime(m.Timestamp))) + n1, err := types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) if err != nil { return 0, err } @@ -390,24 +389,6 @@ func (m *Kept) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Issue260(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 encodeFixed32Issue260(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 encodeVarintIssue260(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -439,7 +420,7 @@ func NewPopulatedDroppedWithoutGetters(r randyIssue260, easy bool) *DroppedWitho if r.Intn(2) == 0 { this.Width *= -1 } - v1 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v1 := types.NewPopulatedStdTime(r, easy) this.Timestamp = *v1 if !easy && r.Intn(10) != 0 { } @@ -552,7 +533,7 @@ func (m *DroppedWithoutGetters) Size() (n int) { if m.Width != 0 { n += 1 + sovIssue260(uint64(m.Width)) } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + l = types.SizeOfStdTime(m.Timestamp) n += 1 + l + sovIssue260(uint64(l)) return n } @@ -774,7 +755,7 @@ func (m *DroppedWithoutGetters) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { + if err := types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/vendor/github.com/gogo/protobuf/test/issue260/issue260pb_test.go b/vendor/github.com/gogo/protobuf/test/issue260/issue260pb_test.go index 22a4efc43..cb45d7ee2 100644 --- a/vendor/github.com/gogo/protobuf/test/issue260/issue260pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/issue260/issue260pb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: issue260.proto -// DO NOT EDIT! /* Package issue260 is a generated protocol buffer package. @@ -16,11 +15,10 @@ It has these top-level messages: package issue260 import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -33,14 +31,14 @@ var _ = math.Inf func TestDroppedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -61,13 +59,13 @@ func TestDroppedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDroppedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -79,7 +77,7 @@ func TestDroppedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -94,7 +92,7 @@ func TestDroppedMarshalTo(t *testing.T) { } func BenchmarkDroppedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Dropped, 10000) for i := 0; i < 10000; i++ { @@ -102,7 +100,7 @@ func BenchmarkDroppedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -112,11 +110,11 @@ func BenchmarkDroppedProtoMarshal(b *testing.B) { } func BenchmarkDroppedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDropped(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDropped(popr, false)) if err != nil { panic(err) } @@ -126,7 +124,7 @@ func BenchmarkDroppedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -135,14 +133,14 @@ func BenchmarkDroppedProtoUnmarshal(b *testing.B) { func TestDroppedWithoutGettersProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -163,13 +161,13 @@ func TestDroppedWithoutGettersProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDroppedWithoutGettersMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -181,7 +179,7 @@ func TestDroppedWithoutGettersMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -196,7 +194,7 @@ func TestDroppedWithoutGettersMarshalTo(t *testing.T) { } func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DroppedWithoutGetters, 10000) for i := 0; i < 10000; i++ { @@ -204,7 +202,7 @@ func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -214,11 +212,11 @@ func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { } func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDroppedWithoutGetters(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDroppedWithoutGetters(popr, false)) if err != nil { panic(err) } @@ -228,7 +226,7 @@ func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -237,14 +235,14 @@ func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { func TestKeptProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Kept{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -265,13 +263,13 @@ func TestKeptProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestKeptMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -283,7 +281,7 @@ func TestKeptMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Kept{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -298,7 +296,7 @@ func TestKeptMarshalTo(t *testing.T) { } func BenchmarkKeptProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Kept, 10000) for i := 0; i < 10000; i++ { @@ -306,7 +304,7 @@ func BenchmarkKeptProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -316,11 +314,11 @@ func BenchmarkKeptProtoMarshal(b *testing.B) { } func BenchmarkKeptProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKept(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedKept(popr, false)) if err != nil { panic(err) } @@ -330,7 +328,7 @@ func BenchmarkKeptProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -339,15 +337,15 @@ func BenchmarkKeptProtoUnmarshal(b *testing.B) { func TestDroppedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Dropped{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -360,15 +358,15 @@ func TestDroppedJSON(t *testing.T) { } func TestDroppedWithoutGettersJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DroppedWithoutGetters{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -381,15 +379,15 @@ func TestDroppedWithoutGettersJSON(t *testing.T) { } func TestKeptJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Kept{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -402,11 +400,11 @@ func TestKeptJSON(t *testing.T) { } func TestDroppedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -419,11 +417,11 @@ func TestDroppedProtoText(t *testing.T) { func TestDroppedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -436,11 +434,11 @@ func TestDroppedProtoCompactText(t *testing.T) { func TestDroppedWithoutGettersProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -453,11 +451,11 @@ func TestDroppedWithoutGettersProtoText(t *testing.T) { func TestDroppedWithoutGettersProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -470,11 +468,11 @@ func TestDroppedWithoutGettersProtoCompactText(t *testing.T) { func TestKeptProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Kept{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -487,11 +485,11 @@ func TestKeptProtoText(t *testing.T) { func TestKeptProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Kept{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -503,14 +501,14 @@ func TestKeptProtoCompactText(t *testing.T) { } func TestDroppedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDropped(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -518,14 +516,14 @@ func TestDroppedVerboseEqual(t *testing.T) { } } func TestDroppedWithoutGettersVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDroppedWithoutGetters(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -533,14 +531,14 @@ func TestDroppedWithoutGettersVerboseEqual(t *testing.T) { } } func TestKeptVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKept(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Kept{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -549,10 +547,10 @@ func TestKeptVerboseEqual(t *testing.T) { } func TestDroppedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -563,14 +561,14 @@ func TestDroppedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDroppedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Dropped, 1000) for i := 0; i < 1000; i++ { @@ -585,10 +583,10 @@ func BenchmarkDroppedSize(b *testing.B) { func TestDroppedWithoutGettersSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -599,14 +597,14 @@ func TestDroppedWithoutGettersSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDroppedWithoutGettersSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DroppedWithoutGetters, 1000) for i := 0; i < 1000; i++ { @@ -621,10 +619,10 @@ func BenchmarkDroppedWithoutGettersSize(b *testing.B) { func TestKeptSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -635,14 +633,14 @@ func TestKeptSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkKeptSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Kept, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/issue260/models.go b/vendor/github.com/gogo/protobuf/test/issue260/models.go index de41a8bb9..6ef03fc92 100644 --- a/vendor/github.com/gogo/protobuf/test/issue260/models.go +++ b/vendor/github.com/gogo/protobuf/test/issue260/models.go @@ -1,12 +1,25 @@ package issue260 -import "time" +import ( + "encoding/json" + "time" + + "github.com/gogo/protobuf/jsonpb" +) type Dropped struct { Name string Age int32 } +func (d *Dropped) UnmarshalJSONPB(u *jsonpb.Unmarshaler, b []byte) error { + return json.Unmarshal(b, d) +} + +func (d *Dropped) MarshalJSONPB(*jsonpb.Marshaler) ([]byte, error) { + return json.Marshal(d) +} + func (d *Dropped) Drop() bool { return true } @@ -17,3 +30,11 @@ type DroppedWithoutGetters struct { Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` NullableTimestamp *time.Time `protobuf:"bytes,4,opt,name=nullable_timestamp,json=nullableTimestamp,stdtime" json:"nullable_timestamp,omitempty"` } + +func (d *DroppedWithoutGetters) UnmarshalJSONPB(u *jsonpb.Unmarshaler, b []byte) error { + return json.Unmarshal(b, d) +} + +func (d *DroppedWithoutGetters) MarshalJSONPB(*jsonpb.Marshaler) ([]byte, error) { + return json.Marshal(d) +} diff --git a/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go b/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go index a85f22f51..c1594fb9e 100644 --- a/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go +++ b/vendor/github.com/gogo/protobuf/test/issue261/issue261.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: issue261.proto -// DO NOT EDIT! /* Package issue261 is a generated protocol buffer package. @@ -23,9 +22,9 @@ import time "time" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" +import types "github.com/gogo/protobuf/types" import io "io" @@ -104,7 +103,7 @@ func (this *MapStdTypes) GoString() string { for k := range this.NullableDuration { keysForNullableDuration = append(keysForNullableDuration, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNullableDuration) + sortkeys.Int32s(keysForNullableDuration) mapStringForNullableDuration := "map[int32]*time.Duration{" for _, k := range keysForNullableDuration { mapStringForNullableDuration += fmt.Sprintf("%#v: %#v,", k, this.NullableDuration[k]) @@ -146,7 +145,7 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { v := m.NullableDuration[k] msgSize := 0 if v != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + msgSize = types.SizeOfStdDuration(*v) msgSize += 1 + sovIssue261(uint64(msgSize)) } mapSize := 1 + sovIssue261(uint64(k)) + msgSize @@ -157,8 +156,8 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { if v != nil { dAtA[i] = 0x12 i++ - i = encodeVarintIssue261(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) - n1, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) + i = encodeVarintIssue261(dAtA, i, uint64(types.SizeOfStdDuration(*v))) + n1, err := types.StdDurationMarshalTo(*v, dAtA[i:]) if err != nil { return 0, err } @@ -169,24 +168,6 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Issue261(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 encodeFixed32Issue261(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 encodeVarintIssue261(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -205,7 +186,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l = types.SizeOfStdDuration(*v) l += 1 + sovIssue261(uint64(l)) } mapEntrySize := 1 + sovIssue261(uint64(k)) + l @@ -236,7 +217,7 @@ func (this *MapStdTypes) String() string { for k := range this.NullableDuration { keysForNullableDuration = append(keysForNullableDuration, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNullableDuration) + sortkeys.Int32s(keysForNullableDuration) mapStringForNullableDuration := "map[int32]*time.Duration{" for _, k := range keysForNullableDuration { mapStringForNullableDuration += fmt.Sprintf("%v: %v,", k, this.NullableDuration[k]) @@ -311,41 +292,14 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIssue261 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIssue261 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.NullableDuration == nil { m.NullableDuration = make(map[int32]*time.Duration) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := new(time.Duration) + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowIssue261 @@ -355,46 +309,73 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowIssue261 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue261 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue261 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthIssue261 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthIssue261 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if err := types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipIssue261(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIssue261 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthIssue261 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthIssue261 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableDuration[mapkey] = mapvalue - } else { - var mapvalue = new(time.Duration) - m.NullableDuration[mapkey] = mapvalue } + m.NullableDuration[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go b/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go index 6afa14455..1f18790ec 100644 --- a/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go +++ b/vendor/github.com/gogo/protobuf/test/issue262/timefail.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: timefail.proto -// DO NOT EDIT! /* Package timefail is a generated protocol buffer package. @@ -24,7 +23,7 @@ import time "time" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" +import types "github.com/gogo/protobuf/types" import io "io" @@ -128,8 +127,8 @@ func (m *TimeFail) MarshalTo(dAtA []byte) (int, error) { if m.TimeTest != nil { dAtA[i] = 0xa i++ - i = encodeVarintTimefail(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.TimeTest))) - n1, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.TimeTest, dAtA[i:]) + i = encodeVarintTimefail(dAtA, i, uint64(types.SizeOfStdTime(*m.TimeTest))) + n1, err := types.StdTimeMarshalTo(*m.TimeTest, dAtA[i:]) if err != nil { return 0, err } @@ -138,24 +137,6 @@ func (m *TimeFail) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Timefail(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 encodeFixed32Timefail(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 encodeVarintTimefail(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -169,7 +150,7 @@ func (m *TimeFail) Size() (n int) { var l int _ = l if m.TimeTest != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.TimeTest) + l = types.SizeOfStdTime(*m.TimeTest) n += 1 + l + sovTimefail(uint64(l)) } return n @@ -264,7 +245,7 @@ func (m *TimeFail) Unmarshal(dAtA []byte) error { if m.TimeTest == nil { m.TimeTest = new(time.Time) } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.TimeTest, dAtA[iNdEx:postIndex]); err != nil { + if err := types.StdTimeUnmarshal(m.TimeTest, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/vendor/github.com/gogo/protobuf/test/issue312/Makefile b/vendor/github.com/gogo/protobuf/test/issue312/Makefile new file mode 100644 index 000000000..db17d4adf --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue312/Makefile @@ -0,0 +1,4 @@ +regenerate: + protoc --proto_path=.:$(GOPATH)/src/:$(GOPATH)/src/github.com/gogo/protobuf/protobuf/ \ + --gogo_out=. issue312.proto + (cd events && make regenerate) diff --git a/vendor/github.com/gogo/protobuf/test/issue312/events/Makefile b/vendor/github.com/gogo/protobuf/test/issue312/events/Makefile new file mode 100644 index 000000000..fc6be53f5 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue312/events/Makefile @@ -0,0 +1,4 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc --proto_path=.:$(GOPATH)/src/:$(GOPATH)/src/github.com/gogo/protobuf/protobuf/ \ + --gogo_out=. events.proto diff --git a/vendor/github.com/gogo/protobuf/test/issue312/events/events.pb.go b/vendor/github.com/gogo/protobuf/test/issue312/events/events.pb.go new file mode 100644 index 000000000..9bb0b587c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue312/events/events.pb.go @@ -0,0 +1,219 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: events.proto + +/* +Package events is a generated protocol buffer package. + +It is generated from these files: + events.proto + +It has these top-level messages: + Subtype +*/ +package events + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import issue312 "github.com/gogo/protobuf/test/issue312" +import _ "github.com/gogo/protobuf/gogoproto" + +import bytes "bytes" + +import strings "strings" +import reflect "reflect" + +// 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 + +type Subtype struct { + State *issue312.TaskState `protobuf:"varint,4,opt,name=state,enum=issue312.TaskState" json:"state,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *Subtype) Reset() { *m = Subtype{} } +func (m *Subtype) String() string { return proto.CompactTextString(m) } +func (*Subtype) ProtoMessage() {} +func (*Subtype) Descriptor() ([]byte, []int) { return fileDescriptorEvents, []int{0} } + +func (m *Subtype) GetState() issue312.TaskState { + if m != nil && m.State != nil { + return *m.State + } + return issue312.TaskState_TASK_STAGING +} + +func init() { + proto.RegisterType((*Subtype)(nil), "issue312.events.Subtype") +} +func (this *Subtype) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Subtype) + if !ok { + that2, ok := that.(Subtype) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.State != nil && that1.State != nil { + if *this.State != *that1.State { + return false + } + } else if this.State != nil { + return false + } else if that1.State != nil { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *Subtype) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&events.Subtype{") + if this.State != nil { + s = append(s, "State: "+valueToGoStringEvents(this.State, "issue312.TaskState")+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringEvents(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func NewPopulatedSubtype(r randyEvents, easy bool) *Subtype { + this := &Subtype{} + if r.Intn(10) != 0 { + v1 := issue312.TaskState([]int32{6, 0, 1}[r.Intn(3)]) + this.State = &v1 + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedEvents(r, 5) + } + return this +} + +type randyEvents interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneEvents(r randyEvents) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringEvents(r randyEvents) string { + v2 := r.Intn(100) + tmps := make([]rune, v2) + for i := 0; i < v2; i++ { + tmps[i] = randUTF8RuneEvents(r) + } + return string(tmps) +} +func randUnrecognizedEvents(r randyEvents, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldEvents(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldEvents(dAtA []byte, r randyEvents, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateEvents(dAtA, uint64(key)) + v3 := r.Int63() + if r.Intn(2) == 0 { + v3 *= -1 + } + dAtA = encodeVarintPopulateEvents(dAtA, uint64(v3)) + case 1: + dAtA = encodeVarintPopulateEvents(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateEvents(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateEvents(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateEvents(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateEvents(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} + +func init() { proto.RegisterFile("events.proto", fileDescriptorEvents) } + +var fileDescriptorEvents = []byte{ + // 162 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x49, 0x2d, 0x4b, 0xcd, + 0x2b, 0x29, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xcf, 0x2c, 0x2e, 0x2e, 0x4d, 0x35, + 0x36, 0x34, 0xd2, 0x83, 0x08, 0x4b, 0x99, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, + 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb, 0x83, 0xd5, 0x25, 0x95, 0xa6, 0xe9, 0x97, 0xa4, 0x16, + 0x97, 0xe8, 0xc3, 0x94, 0xc3, 0x19, 0x10, 0x73, 0xa4, 0x74, 0x71, 0x6a, 0x03, 0xf1, 0xc0, 0x1c, + 0x30, 0x0b, 0xa2, 0x5c, 0xc9, 0x84, 0x8b, 0x3d, 0xb8, 0x34, 0xa9, 0xa4, 0xb2, 0x20, 0x55, 0x48, + 0x93, 0x8b, 0xb5, 0xb8, 0x24, 0xb1, 0x24, 0x55, 0x82, 0x45, 0x81, 0x51, 0x83, 0xcf, 0x48, 0x58, + 0x0f, 0x6e, 0x72, 0x48, 0x62, 0x71, 0x76, 0x30, 0x48, 0x2a, 0x08, 0xa2, 0xc2, 0x49, 0xe2, 0xc3, + 0x43, 0x39, 0xc6, 0x1f, 0x0f, 0xe5, 0x18, 0x57, 0x3c, 0x92, 0x63, 0xdc, 0xf1, 0x48, 0x8e, 0x31, + 0x8a, 0x0d, 0xe2, 0x6a, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x99, 0x76, 0xdc, 0x82, 0xd5, 0x00, + 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/issue312/events/events.proto b/vendor/github.com/gogo/protobuf/test/issue312/events/events.proto new file mode 100644 index 000000000..23bd12999 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue312/events/events.proto @@ -0,0 +1,17 @@ +syntax = "proto2"; + +package issue312.events; + +import "github.com/gogo/protobuf/test/issue312/issue312.proto"; +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option go_package = "events"; +option (gogoproto.gostring_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.testgen_all) = true; + +message Subtype { + optional issue312.TaskState state = 4; +} + diff --git a/vendor/github.com/gogo/protobuf/test/issue312/events/eventspb_test.go b/vendor/github.com/gogo/protobuf/test/issue312/events/eventspb_test.go new file mode 100644 index 000000000..577053695 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue312/events/eventspb_test.go @@ -0,0 +1,122 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: events.proto + +/* +Package events is a generated protocol buffer package. + +It is generated from these files: + events.proto + +It has these top-level messages: + Subtype +*/ +package events + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/test/issue312" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestSubtypeProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedSubtype(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Subtype{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestSubtypeJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedSubtype(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Subtype{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestSubtypeProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedSubtype(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &Subtype{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestSubtypeProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedSubtype(popr, true) + dAtA := proto.CompactTextString(p) + msg := &Subtype{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestSubtypeGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedSubtype(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/issue312/issue312.pb.go b/vendor/github.com/gogo/protobuf/test/issue312/issue312.pb.go new file mode 100644 index 000000000..56a3c511d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue312/issue312.pb.go @@ -0,0 +1,85 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: issue312.proto + +/* +Package issue312 is a generated protocol buffer package. + +It is generated from these files: + issue312.proto + +It has these top-level messages: +*/ +package issue312 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// 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 + +type TaskState int32 + +const ( + TaskState_TASK_STAGING TaskState = 6 + TaskState_TASK_STARTING TaskState = 0 + TaskState_TASK_RUNNING TaskState = 1 +) + +var TaskState_name = map[int32]string{ + 6: "TASK_STAGING", + 0: "TASK_STARTING", + 1: "TASK_RUNNING", +} +var TaskState_value = map[string]int32{ + "TASK_STAGING": 6, + "TASK_STARTING": 0, + "TASK_RUNNING": 1, +} + +func (x TaskState) Enum() *TaskState { + p := new(TaskState) + *p = x + return p +} +func (x TaskState) String() string { + return proto.EnumName(TaskState_name, int32(x)) +} +func (x *TaskState) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(TaskState_value, data, "TaskState") + if err != nil { + return err + } + *x = TaskState(value) + return nil +} +func (TaskState) EnumDescriptor() ([]byte, []int) { return fileDescriptorIssue312, []int{0} } + +func init() { + proto.RegisterEnum("issue312.TaskState", TaskState_name, TaskState_value) +} + +func init() { proto.RegisterFile("issue312.proto", fileDescriptorIssue312) } + +var fileDescriptorIssue312 = []byte{ + // 147 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e, + 0x4d, 0x35, 0x36, 0x34, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74, + 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, + 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0xd4, 0x72, 0xe2, 0xe2, + 0x0c, 0x49, 0x2c, 0xce, 0x0e, 0x2e, 0x49, 0x2c, 0x49, 0x15, 0x12, 0xe0, 0xe2, 0x09, 0x71, 0x0c, + 0xf6, 0x8e, 0x0f, 0x0e, 0x71, 0x74, 0xf7, 0xf4, 0x73, 0x17, 0x60, 0x13, 0x12, 0xe4, 0xe2, 0x85, + 0x89, 0x04, 0x85, 0x80, 0x84, 0x18, 0xe0, 0x8a, 0x82, 0x42, 0xfd, 0xfc, 0x40, 0x22, 0x8c, 0x4e, + 0x52, 0x1f, 0x1e, 0xca, 0x31, 0xfe, 0x78, 0x28, 0xc7, 0xb8, 0xe2, 0x91, 0x1c, 0xe3, 0x8e, 0x47, + 0x72, 0x8c, 0x51, 0x70, 0xe7, 0x00, 0x02, 0x00, 0x00, 0xff, 0xff, 0xaf, 0xdd, 0xde, 0x2a, 0xa9, + 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/issue312/issue312.proto b/vendor/github.com/gogo/protobuf/test/issue312/issue312.proto new file mode 100644 index 000000000..d409d7dfe --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue312/issue312.proto @@ -0,0 +1,17 @@ +syntax = "proto2"; + +package issue312; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option go_package = "issue312"; +option (gogoproto.gostring_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.testgen_all) = true; + +enum TaskState { + TASK_STAGING = 6; + TASK_STARTING = 0; + TASK_RUNNING = 1; +} diff --git a/vendor/github.com/gogo/protobuf/test/issue322/Makefile b/vendor/github.com/gogo/protobuf/test/issue322/Makefile new file mode 100644 index 000000000..c7748e443 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue322/Makefile @@ -0,0 +1,3 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogofast + protoc-min-version --version="3.0.0" --gogofast_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. --proto_path=../../../../../:../../protobuf/:. *.proto diff --git a/vendor/github.com/gogo/protobuf/test/issue322/issue322.pb.go b/vendor/github.com/gogo/protobuf/test/issue322/issue322.pb.go new file mode 100644 index 000000000..22a6501cf --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue322/issue322.pb.go @@ -0,0 +1,592 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: issue322.proto + +/* +Package test is a generated protocol buffer package. + +It is generated from these files: + issue322.proto + +It has these top-level messages: + OneofTest +*/ +package test + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import bytes "bytes" + +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 + +type OneofTest struct { + // Types that are valid to be assigned to Union: + // *OneofTest_I + Union isOneofTest_Union `protobuf_oneof:"union"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *OneofTest) Reset() { *m = OneofTest{} } +func (m *OneofTest) String() string { return proto.CompactTextString(m) } +func (*OneofTest) ProtoMessage() {} +func (*OneofTest) Descriptor() ([]byte, []int) { return fileDescriptorIssue322, []int{0} } + +const Default_OneofTest_I int32 = 4 + +type isOneofTest_Union interface { + isOneofTest_Union() + Equal(interface{}) bool + MarshalTo([]byte) (int, error) + Size() int +} + +type OneofTest_I struct { + I int32 `protobuf:"varint,1,opt,name=i,oneof,def=4"` +} + +func (*OneofTest_I) isOneofTest_Union() {} + +func (m *OneofTest) GetUnion() isOneofTest_Union { + if m != nil { + return m.Union + } + return nil +} + +func (m *OneofTest) GetI() int32 { + if x, ok := m.GetUnion().(*OneofTest_I); ok { + return x.I + } + return Default_OneofTest_I +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OneofTest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OneofTest_OneofMarshaler, _OneofTest_OneofUnmarshaler, _OneofTest_OneofSizer, []interface{}{ + (*OneofTest_I)(nil), + } +} + +func _OneofTest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OneofTest) + // union + switch x := m.Union.(type) { + case *OneofTest_I: + _ = b.EncodeVarint(1<<3 | proto.WireVarint) + _ = b.EncodeVarint(uint64(x.I)) + case nil: + default: + return fmt.Errorf("OneofTest.Union has unexpected type %T", x) + } + return nil +} + +func _OneofTest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OneofTest) + switch tag { + case 1: // union.i + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Union = &OneofTest_I{int32(x)} + return true, err + default: + return false, nil + } +} + +func _OneofTest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OneofTest) + // union + switch x := m.Union.(type) { + case *OneofTest_I: + n += proto.SizeVarint(1<<3 | proto.WireVarint) + n += proto.SizeVarint(uint64(x.I)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*OneofTest)(nil), "test.OneofTest") +} +func (this *OneofTest) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofTest) + if !ok { + that2, ok := that.(OneofTest) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if that1.Union == nil { + if this.Union != nil { + return false + } + } else if this.Union == nil { + return false + } else if !this.Union.Equal(that1.Union) { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} +func (this *OneofTest_I) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*OneofTest_I) + if !ok { + that2, ok := that.(OneofTest_I) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.I != that1.I { + return false + } + return true +} +func (this *OneofTest) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&test.OneofTest{") + if this.Union != nil { + s = append(s, "Union: "+fmt.Sprintf("%#v", this.Union)+",\n") + } + if this.XXX_unrecognized != nil { + s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *OneofTest_I) GoString() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&test.OneofTest_I{` + + `I:` + fmt.Sprintf("%#v", this.I) + `}`}, ", ") + return s +} +func valueToGoStringIssue322(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *OneofTest) 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 *OneofTest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Union != nil { + nn1, err := m.Union.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += nn1 + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *OneofTest_I) MarshalTo(dAtA []byte) (int, error) { + i := 0 + dAtA[i] = 0x8 + i++ + i = encodeVarintIssue322(dAtA, i, uint64(m.I)) + return i, nil +} +func encodeVarintIssue322(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 NewPopulatedOneofTest(r randyIssue322, easy bool) *OneofTest { + this := &OneofTest{} + oneofNumber_Union := []int32{1}[r.Intn(1)] + switch oneofNumber_Union { + case 1: + this.Union = NewPopulatedOneofTest_I(r, easy) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedIssue322(r, 2) + } + return this +} + +func NewPopulatedOneofTest_I(r randyIssue322, easy bool) *OneofTest_I { + this := &OneofTest_I{} + this.I = int32(r.Int31()) + if r.Intn(2) == 0 { + this.I *= -1 + } + return this +} + +type randyIssue322 interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneIssue322(r randyIssue322) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringIssue322(r randyIssue322) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneIssue322(r) + } + return string(tmps) +} +func randUnrecognizedIssue322(r randyIssue322, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldIssue322(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldIssue322(dAtA []byte, r randyIssue322, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateIssue322(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateIssue322(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateIssue322(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateIssue322(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateIssue322(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateIssue322(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateIssue322(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *OneofTest) Size() (n int) { + var l int + _ = l + if m.Union != nil { + n += m.Union.Size() + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *OneofTest_I) Size() (n int) { + var l int + _ = l + n += 1 + sovIssue322(uint64(m.I)) + return n +} + +func sovIssue322(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozIssue322(x uint64) (n int) { + return sovIssue322(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *OneofTest) 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 ErrIntOverflowIssue322 + } + 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: OneofTest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OneofTest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field I", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue322 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Union = &OneofTest_I{v} + default: + iNdEx = preIndex + skippy, err := skipIssue322(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIssue322 + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipIssue322(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, ErrIntOverflowIssue322 + } + 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, ErrIntOverflowIssue322 + } + 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, ErrIntOverflowIssue322 + } + 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, ErrInvalidLengthIssue322 + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue322 + } + 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 := skipIssue322(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 ( + ErrInvalidLengthIssue322 = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIssue322 = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("issue322.proto", fileDescriptorIssue322) } + +var fileDescriptorIssue322 = []byte{ + // 149 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e, + 0x4d, 0x35, 0x36, 0x32, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x29, 0x49, 0x2d, 0x2e, + 0x91, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, + 0xcf, 0xd7, 0x07, 0x4b, 0x26, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0xd1, 0xa4, 0xa4, + 0xce, 0xc5, 0xe9, 0x9f, 0x97, 0x9a, 0x9f, 0x16, 0x92, 0x5a, 0x5c, 0x22, 0x24, 0xc8, 0xc5, 0x98, + 0x29, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6a, 0xc5, 0x68, 0xe2, 0xc1, 0x10, 0xc4, 0x98, 0xe9, 0xc4, + 0xce, 0xc5, 0x5a, 0x9a, 0x97, 0x99, 0x9f, 0xe7, 0x24, 0xf3, 0xe1, 0xa1, 0x1c, 0xe3, 0x8f, 0x87, + 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31, 0xee, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, + 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x64, 0xd7, + 0x6a, 0x8c, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/issue322/issue322.proto b/vendor/github.com/gogo/protobuf/test/issue322/issue322.proto new file mode 100644 index 000000000..e3045de10 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue322/issue322.proto @@ -0,0 +1,15 @@ +syntax = "proto2"; +package test; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.gostring_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.testgen_all) = true; + +message OneofTest { + oneof union { + int32 i = 1 [default = 4]; + } +} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/issue322/issue322pb_test.go b/vendor/github.com/gogo/protobuf/test/issue322/issue322pb_test.go new file mode 100644 index 000000000..4e5550ff5 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue322/issue322pb_test.go @@ -0,0 +1,167 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: issue322.proto + +/* +Package test is a generated protocol buffer package. + +It is generated from these files: + issue322.proto + +It has these top-level messages: + OneofTest +*/ +package test + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestOneofTestProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedOneofTest(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestOneofTestMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedOneofTest(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofTestJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedOneofTest(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &OneofTest{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestOneofTestProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedOneofTest(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &OneofTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofTestProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedOneofTest(popr, true) + dAtA := proto.CompactTextString(p) + msg := &OneofTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestOneofTestGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedOneofTest(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestOneofTestSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedOneofTest(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/issue330/Makefile b/vendor/github.com/gogo/protobuf/test/issue330/Makefile new file mode 100644 index 000000000..e085e13d2 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue330/Makefile @@ -0,0 +1,3 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor:. --proto_path=../../../../../:../../protobuf/:. *.proto diff --git a/vendor/github.com/gogo/protobuf/test/issue330/issue330.pb.go b/vendor/github.com/gogo/protobuf/test/issue330/issue330.pb.go new file mode 100644 index 000000000..dbf98eb3b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue330/issue330.pb.go @@ -0,0 +1,404 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: issue330.proto + +/* +Package issue330 is a generated protocol buffer package. + +It is generated from these files: + issue330.proto + +It has these top-level messages: + Object +*/ +package issue330 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +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 + +type Object struct { + Type TypeIdentifier `protobuf:"varint,1,opt,name=type,proto3,casttype=TypeIdentifier" json:"type,omitempty"` +} + +func (m *Object) Reset() { *m = Object{} } +func (m *Object) String() string { return proto.CompactTextString(m) } +func (*Object) ProtoMessage() {} +func (*Object) Descriptor() ([]byte, []int) { return fileDescriptorIssue330, []int{0} } + +func (m *Object) GetType() TypeIdentifier { + if m != nil { + return m.Type + } + return 0 +} + +func init() { + proto.RegisterType((*Object)(nil), "issue330.Object") +} +func (this *Object) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*Object) + if !ok { + that2, ok := that.(Object) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Type != that1.Type { + return false + } + return true +} +func (m *Object) 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 *Object) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Type != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintIssue330(dAtA, i, uint64(m.Type)) + } + return i, nil +} + +func encodeVarintIssue330(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 NewPopulatedObject(r randyIssue330, easy bool) *Object { + this := &Object{} + this.Type = TypeIdentifier(r.Uint32()) + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyIssue330 interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneIssue330(r randyIssue330) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringIssue330(r randyIssue330) string { + v1 := r.Intn(100) + tmps := make([]rune, v1) + for i := 0; i < v1; i++ { + tmps[i] = randUTF8RuneIssue330(r) + } + return string(tmps) +} +func randUnrecognizedIssue330(r randyIssue330, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldIssue330(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldIssue330(dAtA []byte, r randyIssue330, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateIssue330(dAtA, uint64(key)) + v2 := r.Int63() + if r.Intn(2) == 0 { + v2 *= -1 + } + dAtA = encodeVarintPopulateIssue330(dAtA, uint64(v2)) + case 1: + dAtA = encodeVarintPopulateIssue330(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateIssue330(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateIssue330(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateIssue330(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateIssue330(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *Object) Size() (n int) { + var l int + _ = l + if m.Type != 0 { + n += 1 + sovIssue330(uint64(m.Type)) + } + return n +} + +func sovIssue330(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozIssue330(x uint64) (n int) { + return sovIssue330(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Object) 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 ErrIntOverflowIssue330 + } + 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: Object: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Object: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowIssue330 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= (TypeIdentifier(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipIssue330(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthIssue330 + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipIssue330(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, ErrIntOverflowIssue330 + } + 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, ErrIntOverflowIssue330 + } + 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, ErrIntOverflowIssue330 + } + 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, ErrInvalidLengthIssue330 + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowIssue330 + } + 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 := skipIssue330(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 ( + ErrInvalidLengthIssue330 = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowIssue330 = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("issue330.proto", fileDescriptorIssue330) } + +var fileDescriptorIssue330 = []byte{ + // 158 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcb, 0x2c, 0x2e, 0x2e, + 0x4d, 0x35, 0x36, 0x36, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x80, 0xf1, 0xa5, 0x74, + 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, 0xf3, 0xd3, 0xf3, 0xf5, + 0xc1, 0x0a, 0x92, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x68, 0x54, 0x32, 0xe0, 0x62, + 0xf3, 0x4f, 0xca, 0x4a, 0x4d, 0x2e, 0x11, 0x52, 0xe3, 0x62, 0x29, 0xa9, 0x2c, 0x48, 0x95, 0x60, + 0x54, 0x60, 0xd4, 0xe0, 0x75, 0x12, 0xfa, 0x75, 0x4f, 0x9e, 0x2f, 0xa4, 0xb2, 0x20, 0xd5, 0x33, + 0x25, 0x35, 0xaf, 0x24, 0x33, 0x2d, 0x33, 0xb5, 0x28, 0x08, 0x2c, 0xef, 0x24, 0xf3, 0xe3, 0xa1, + 0x1c, 0xe3, 0x8a, 0x47, 0x72, 0x8c, 0x3b, 0x1e, 0xc9, 0x31, 0x1e, 0x78, 0x24, 0xc7, 0x78, 0xe2, + 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x26, 0xb1, 0x81, 0x8d, 0x35, + 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x41, 0xc2, 0x37, 0xa1, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/issue330/issue330.proto b/vendor/github.com/gogo/protobuf/test/issue330/issue330.proto new file mode 100644 index 000000000..4bfdda457 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue330/issue330.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package issue330; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.benchgen_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.testgen_all) = true; +option (gogoproto.unmarshaler_all) = true; + +message Object { + uint32 type = 1 [(gogoproto.casttype) = "TypeIdentifier"]; +} diff --git a/vendor/github.com/gogo/protobuf/test/issue330/issue330pb_test.go b/vendor/github.com/gogo/protobuf/test/issue330/issue330pb_test.go new file mode 100644 index 000000000..e24c30dda --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue330/issue330pb_test.go @@ -0,0 +1,207 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: issue330.proto + +/* +Package issue330 is a generated protocol buffer package. + +It is generated from these files: + issue330.proto + +It has these top-level messages: + Object +*/ +package issue330 + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestObjectProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Object{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestObjectMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Object{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func BenchmarkObjectProtoMarshal(b *testing.B) { + popr := rand.New(rand.NewSource(616)) + total := 0 + pops := make([]*Object, 10000) + for i := 0; i < 10000; i++ { + pops[i] = NewPopulatedObject(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + dAtA, err := proto.Marshal(pops[i%10000]) + if err != nil { + panic(err) + } + total += len(dAtA) + } + b.SetBytes(int64(total / b.N)) +} + +func BenchmarkObjectProtoUnmarshal(b *testing.B) { + popr := rand.New(rand.NewSource(616)) + total := 0 + datas := make([][]byte, 10000) + for i := 0; i < 10000; i++ { + dAtA, err := proto.Marshal(NewPopulatedObject(popr, false)) + if err != nil { + panic(err) + } + datas[i] = dAtA + } + msg := &Object{} + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += len(datas[i%10000]) + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { + panic(err) + } + } + b.SetBytes(int64(total / b.N)) +} + +func TestObjectJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &Object{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestObjectProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &Object{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestObjectProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + dAtA := proto.CompactTextString(p) + msg := &Object{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestObjectSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedObject(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func BenchmarkObjectSize(b *testing.B) { + popr := rand.New(rand.NewSource(616)) + total := 0 + pops := make([]*Object, 1000) + for i := 0; i < 1000; i++ { + pops[i] = NewPopulatedObject(popr, false) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + total += pops[i%1000].Size() + } + b.SetBytes(int64(total / b.N)) +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/issue330/type.go b/vendor/github.com/gogo/protobuf/test/issue330/type.go new file mode 100644 index 000000000..556b21b87 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/issue330/type.go @@ -0,0 +1,17 @@ +package issue330 + +type TypeIdentifier uint32 + +const ( + UnknownType TypeIdentifier = 0 + UserType TypeIdentifier = 20 +) + +func (t TypeIdentifier) String() string { + switch t { + case 20: + return "User" + default: + return "Unknown" + } +} diff --git a/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go b/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go index 6953a4c4a..f50fcba19 100644 --- a/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/issue34/proto.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto.proto -// DO NOT EDIT! /* Package issue34 is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go b/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go index 8b635cbe1..c13601c03 100644 --- a/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go +++ b/vendor/github.com/gogo/protobuf/test/issue42order/issue42.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: issue42.proto -// DO NOT EDIT! /* Package issue42 is a generated protocol buffer package. @@ -19,6 +18,8 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" +import binary "encoding/binary" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -104,7 +105,8 @@ func (m *UnorderedFields) MarshalTo(dAtA []byte) (int, error) { if m.B != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Issue42(dAtA, i, uint64(*m.B)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.B)) + i += 8 } if m.A != nil { dAtA[i] = 0x50 @@ -135,7 +137,8 @@ func (m *OrderedFields) MarshalTo(dAtA []byte) (int, error) { if m.B != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Issue42(dAtA, i, uint64(*m.B)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.B)) + i += 8 } if m.A != nil { dAtA[i] = 0x50 @@ -148,24 +151,6 @@ func (m *OrderedFields) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Issue42(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 encodeFixed32Issue42(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 encodeVarintIssue42(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -365,15 +350,8 @@ func (m *UnorderedFields) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.B = &v case 10: if wireType != 0 { @@ -454,15 +432,8 @@ func (m *OrderedFields) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.B = &v case 10: if wireType != 0 { diff --git a/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go b/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go index e449983c5..02cefda4a 100644 --- a/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go +++ b/vendor/github.com/gogo/protobuf/test/issue8/proto.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto.proto -// DO NOT EDIT! /* Package proto is a generated protocol buffer package. @@ -21,7 +20,6 @@ import _ "github.com/gogo/protobuf/gogoproto" import bytes "bytes" import io "io" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" // Reference imports to suppress errors if they are not otherwise used. var _ = proto1.Marshal @@ -243,7 +241,7 @@ func (m *Foo) Unmarshal(dAtA []byte) error { } } if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("bar") + return proto1.NewRequiredNotSetError("bar") } if iNdEx > l { diff --git a/vendor/github.com/gogo/protobuf/test/issue8/protopb_test.go b/vendor/github.com/gogo/protobuf/test/issue8/protopb_test.go index 304aaa546..502c16ff5 100644 --- a/vendor/github.com/gogo/protobuf/test/issue8/protopb_test.go +++ b/vendor/github.com/gogo/protobuf/test/issue8/protopb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto.proto -// DO NOT EDIT! /* Package proto is a generated protocol buffer package. @@ -14,11 +13,10 @@ It has these top-level messages: package proto import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto1 "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -30,14 +28,14 @@ var _ = math.Inf func TestFooProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFoo(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto1.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Foo{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto1.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -55,21 +53,21 @@ func TestFooProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto1.Unmarshal(littlefuzz, msg) } } func TestFooJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Foo{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -79,11 +77,11 @@ func TestFooJSON(t *testing.T) { } func TestFooProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto1.MarshalTextString(p) msg := &Foo{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto1.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -93,11 +91,11 @@ func TestFooProtoText(t *testing.T) { func TestFooProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto1.CompactTextString(p) msg := &Foo{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto1.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { diff --git a/vendor/github.com/gogo/protobuf/test/jsonpb-gogo/jsonpb_gogo_test.go b/vendor/github.com/gogo/protobuf/test/jsonpb-gogo/jsonpb_gogo_test.go new file mode 100644 index 000000000..ec2558773 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/jsonpb-gogo/jsonpb_gogo_test.go @@ -0,0 +1,36 @@ +package jsonpb_gogo + +import ( + "testing" + + "github.com/gogo/protobuf/jsonpb" +) + +// customFieldMessage implements protobuf.Message but is not a normal generated message type. +type customFieldMessage struct { + someField string //this is not a proto field +} + +func (m *customFieldMessage) Reset() { + m.someField = "hello" +} + +func (m *customFieldMessage) String() string { + return m.someField +} + +func (m *customFieldMessage) ProtoMessage() { +} + +func TestUnmarshalWithJSONPBUnmarshaler(t *testing.T) { + rawJson := `{}` + marshaler := &jsonpb.Marshaler{} + msg := &customFieldMessage{someField: "Ignore me"} + str, err := marshaler.MarshalToString(msg) + if err != nil { + t.Errorf("an unexpected error occurred when marshaling message: %v", err) + } + if str != rawJson { + t.Errorf("marshaled JSON was incorrect: got %s, wanted %s", str, rawJson) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/Makefile b/vendor/github.com/gogo/protobuf/test/mapdefaults/Makefile new file mode 100644 index 000000000..80a46900c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/Makefile @@ -0,0 +1,33 @@ +# Protocol Buffers for Go with Gadgets +# +# Copyright (c) 2017, The GoGo Authors. All rights reserved. +# http://github.com/gogo/protobuf +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +regenerate: + go install github.com/gogo/protobuf/protoc-gen-combo + go install github.com/gogo/protobuf/protoc-gen-gogofast + protoc-gen-combo --version="3.0.0" --proto_path=../../../../../:../../protobuf/:. --gogo_out=. map.proto + find combos -type d -not -name combos -exec cp map_test.go.in {}/map_test.go \; diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.pb.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.pb.go new file mode 100644 index 000000000..3208ca165 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.pb.go @@ -0,0 +1,1453 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: combos/both/map.proto + +/* + Package mapdefaults is a generated protocol buffer package. + + It is generated from these files: + combos/both/map.proto + + It has these top-level messages: + MapTest + FakeMap + FakeMapEntry +*/ +package mapdefaults + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" +import bytes "bytes" +import ioutil "io/ioutil" + +import strings "strings" +import reflect "reflect" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +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 + +type MapTest struct { + StrStr map[string]string `protobuf:"bytes,1,rep,name=str_str,json=strStr" json:"str_str,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *MapTest) Reset() { *m = MapTest{} } +func (*MapTest) ProtoMessage() {} +func (*MapTest) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{0} } + +type FakeMap struct { + Entries []*FakeMapEntry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` +} + +func (m *FakeMap) Reset() { *m = FakeMap{} } +func (*FakeMap) ProtoMessage() {} +func (*FakeMap) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{1} } + +type FakeMapEntry struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Other string `protobuf:"bytes,3,opt,name=other,proto3" json:"other,omitempty"` +} + +func (m *FakeMapEntry) Reset() { *m = FakeMapEntry{} } +func (*FakeMapEntry) ProtoMessage() {} +func (*FakeMapEntry) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{2} } + +func init() { + proto.RegisterType((*MapTest)(nil), "mapdefaults.MapTest") + proto.RegisterType((*FakeMap)(nil), "mapdefaults.FakeMap") + proto.RegisterType((*FakeMapEntry)(nil), "mapdefaults.FakeMapEntry") +} +func (this *MapTest) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func (this *FakeMap) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func (this *FakeMapEntry) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func MapDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} + var gzipped = []byte{ + // 3869 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0xd6, 0xe2, 0x87, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x24, 0x88, 0x8e, 0x21, 0x0a, 0xb6, + 0x23, 0xda, 0x6e, 0xc0, 0x8c, 0x64, 0xc9, 0x12, 0xd4, 0xd8, 0x05, 0x41, 0x88, 0x81, 0x4a, 0x12, + 0xc8, 0x82, 0x8c, 0x7f, 0x32, 0x9d, 0x9d, 0xe5, 0xe2, 0x02, 0x58, 0x69, 0xb1, 0xbb, 0xd9, 0x5d, + 0x48, 0xa6, 0xa6, 0x33, 0x55, 0xc7, 0xfd, 0x99, 0x4c, 0xa7, 0xff, 0x9d, 0x49, 0xe2, 0x3a, 0xee, + 0xcf, 0x4c, 0xeb, 0x34, 0xfd, 0x73, 0x9a, 0x36, 0x4d, 0xfb, 0xd4, 0x97, 0xb4, 0x7e, 0xea, 0x24, + 0x6f, 0x7d, 0xe8, 0x83, 0xc5, 0x78, 0xa6, 0x69, 0xeb, 0x36, 0x6e, 0xeb, 0x07, 0xcf, 0xf8, 0xa5, + 0x73, 0xff, 0x16, 0xbb, 0x00, 0xa8, 0x05, 0x33, 0x63, 0xfb, 0x89, 0xbc, 0xe7, 0x9e, 0xef, 0xdb, + 0xb3, 0xe7, 0x9e, 0x7b, 0xce, 0xb9, 0x77, 0x01, 0x3f, 0xba, 0x0a, 0x2b, 0x5d, 0xcb, 0xea, 0x1a, + 0x68, 0xcd, 0x76, 0x2c, 0xcf, 0xda, 0x1f, 0x74, 0xd6, 0xda, 0xc8, 0xd5, 0x1c, 0xdd, 0xf6, 0x2c, + 0xa7, 0x44, 0x64, 0xd2, 0x3c, 0xd5, 0x28, 0x71, 0x8d, 0xe2, 0x36, 0x2c, 0x5c, 0xd7, 0x0d, 0xb4, + 0xe1, 0x2b, 0xb6, 0x90, 0x27, 0x5d, 0x81, 0x44, 0x47, 0x37, 0x50, 0x5e, 0x58, 0x89, 0xaf, 0x66, + 0x2e, 0x3c, 0x5a, 0x1a, 0x01, 0x95, 0xc2, 0x88, 0x26, 0x16, 0xcb, 0x04, 0x51, 0x7c, 0x3b, 0x01, + 0x8b, 0x13, 0x66, 0x25, 0x09, 0x12, 0xa6, 0xda, 0xc7, 0x8c, 0xc2, 0x6a, 0x5a, 0x26, 0xff, 0x4b, + 0x79, 0x98, 0xb5, 0x55, 0xed, 0x96, 0xda, 0x45, 0xf9, 0x18, 0x11, 0xf3, 0xa1, 0x54, 0x00, 0x68, + 0x23, 0x1b, 0x99, 0x6d, 0x64, 0x6a, 0x07, 0xf9, 0xf8, 0x4a, 0x7c, 0x35, 0x2d, 0x07, 0x24, 0xd2, + 0x93, 0xb0, 0x60, 0x0f, 0xf6, 0x0d, 0x5d, 0x53, 0x02, 0x6a, 0xb0, 0x12, 0x5f, 0x4d, 0xca, 0x22, + 0x9d, 0xd8, 0x18, 0x2a, 0x9f, 0x87, 0xf9, 0x3b, 0x48, 0xbd, 0x15, 0x54, 0xcd, 0x10, 0xd5, 0x1c, + 0x16, 0x07, 0x14, 0xab, 0x90, 0xed, 0x23, 0xd7, 0x55, 0xbb, 0x48, 0xf1, 0x0e, 0x6c, 0x94, 0x4f, + 0x90, 0xb7, 0x5f, 0x19, 0x7b, 0xfb, 0xd1, 0x37, 0xcf, 0x30, 0xd4, 0xee, 0x81, 0x8d, 0xa4, 0x0a, + 0xa4, 0x91, 0x39, 0xe8, 0x53, 0x86, 0xe4, 0x11, 0xfe, 0xab, 0x99, 0x83, 0xfe, 0x28, 0x4b, 0x0a, + 0xc3, 0x18, 0xc5, 0xac, 0x8b, 0x9c, 0xdb, 0xba, 0x86, 0xf2, 0x33, 0x84, 0xe0, 0xfc, 0x18, 0x41, + 0x8b, 0xce, 0x8f, 0x72, 0x70, 0x9c, 0x54, 0x85, 0x34, 0x7a, 0xc9, 0x43, 0xa6, 0xab, 0x5b, 0x66, + 0x7e, 0x96, 0x90, 0x3c, 0x36, 0x61, 0x15, 0x91, 0xd1, 0x1e, 0xa5, 0x18, 0xe2, 0xa4, 0xcb, 0x30, + 0x6b, 0xd9, 0x9e, 0x6e, 0x99, 0x6e, 0x3e, 0xb5, 0x22, 0xac, 0x66, 0x2e, 0x7c, 0x62, 0x62, 0x20, + 0x34, 0xa8, 0x8e, 0xcc, 0x95, 0xa5, 0x3a, 0x88, 0xae, 0x35, 0x70, 0x34, 0xa4, 0x68, 0x56, 0x1b, + 0x29, 0xba, 0xd9, 0xb1, 0xf2, 0x69, 0x42, 0x70, 0x76, 0xfc, 0x45, 0x88, 0x62, 0xd5, 0x6a, 0xa3, + 0xba, 0xd9, 0xb1, 0xe4, 0x9c, 0x1b, 0x1a, 0x4b, 0xa7, 0x60, 0xc6, 0x3d, 0x30, 0x3d, 0xf5, 0xa5, + 0x7c, 0x96, 0x44, 0x08, 0x1b, 0x15, 0xff, 0x6e, 0x06, 0xe6, 0xa7, 0x09, 0xb1, 0x6b, 0x90, 0xec, + 0xe0, 0xb7, 0xcc, 0xc7, 0x8e, 0xe3, 0x03, 0x8a, 0x09, 0x3b, 0x71, 0xe6, 0xc7, 0x74, 0x62, 0x05, + 0x32, 0x26, 0x72, 0x3d, 0xd4, 0xa6, 0x11, 0x11, 0x9f, 0x32, 0xa6, 0x80, 0x82, 0xc6, 0x43, 0x2a, + 0xf1, 0x63, 0x85, 0xd4, 0xf3, 0x30, 0xef, 0x9b, 0xa4, 0x38, 0xaa, 0xd9, 0xe5, 0xb1, 0xb9, 0x16, + 0x65, 0x49, 0xa9, 0xc6, 0x71, 0x32, 0x86, 0xc9, 0x39, 0x14, 0x1a, 0x4b, 0x1b, 0x00, 0x96, 0x89, + 0xac, 0x8e, 0xd2, 0x46, 0x9a, 0x91, 0x4f, 0x1d, 0xe1, 0xa5, 0x06, 0x56, 0x19, 0xf3, 0x92, 0x45, + 0xa5, 0x9a, 0x21, 0x5d, 0x1d, 0x86, 0xda, 0xec, 0x11, 0x91, 0xb2, 0x4d, 0x37, 0xd9, 0x58, 0xb4, + 0xed, 0x41, 0xce, 0x41, 0x38, 0xee, 0x51, 0x9b, 0xbd, 0x59, 0x9a, 0x18, 0x51, 0x8a, 0x7c, 0x33, + 0x99, 0xc1, 0xe8, 0x8b, 0xcd, 0x39, 0xc1, 0xa1, 0xf4, 0x08, 0xf8, 0x02, 0x85, 0x84, 0x15, 0x90, + 0x2c, 0x94, 0xe5, 0xc2, 0x1d, 0xb5, 0x8f, 0x96, 0xef, 0x42, 0x2e, 0xec, 0x1e, 0x69, 0x09, 0x92, + 0xae, 0xa7, 0x3a, 0x1e, 0x89, 0xc2, 0xa4, 0x4c, 0x07, 0x92, 0x08, 0x71, 0x64, 0xb6, 0x49, 0x96, + 0x4b, 0xca, 0xf8, 0x5f, 0xe9, 0xa7, 0x86, 0x2f, 0x1c, 0x27, 0x2f, 0xfc, 0xc9, 0xf1, 0x15, 0x0d, + 0x31, 0x8f, 0xbe, 0xf7, 0xf2, 0xd3, 0x30, 0x17, 0x7a, 0x81, 0x69, 0x1f, 0x5d, 0xfc, 0x59, 0x38, + 0x39, 0x91, 0x5a, 0x7a, 0x1e, 0x96, 0x06, 0xa6, 0x6e, 0x7a, 0xc8, 0xb1, 0x1d, 0x84, 0x23, 0x96, + 0x3e, 0x2a, 0xff, 0x6f, 0xb3, 0x47, 0xc4, 0xdc, 0x5e, 0x50, 0x9b, 0xb2, 0xc8, 0x8b, 0x83, 0x71, + 0xe1, 0x13, 0xe9, 0xd4, 0x0f, 0x67, 0xc5, 0x7b, 0xf7, 0xee, 0xdd, 0x8b, 0x15, 0xbf, 0x32, 0x03, + 0x4b, 0x93, 0xf6, 0xcc, 0xc4, 0xed, 0x7b, 0x0a, 0x66, 0xcc, 0x41, 0x7f, 0x1f, 0x39, 0xc4, 0x49, + 0x49, 0x99, 0x8d, 0xa4, 0x0a, 0x24, 0x0d, 0x75, 0x1f, 0x19, 0xf9, 0xc4, 0x8a, 0xb0, 0x9a, 0xbb, + 0xf0, 0xe4, 0x54, 0xbb, 0xb2, 0xb4, 0x85, 0x21, 0x32, 0x45, 0x4a, 0xcf, 0x40, 0x82, 0xa5, 0x68, + 0xcc, 0xf0, 0xc4, 0x74, 0x0c, 0x78, 0x2f, 0xc9, 0x04, 0x27, 0x3d, 0x04, 0x69, 0xfc, 0x97, 0xc6, + 0xc6, 0x0c, 0xb1, 0x39, 0x85, 0x05, 0x38, 0x2e, 0xa4, 0x65, 0x48, 0x91, 0x6d, 0xd2, 0x46, 0xbc, + 0xb4, 0xf9, 0x63, 0x1c, 0x58, 0x6d, 0xd4, 0x51, 0x07, 0x86, 0xa7, 0xdc, 0x56, 0x8d, 0x01, 0x22, + 0x01, 0x9f, 0x96, 0xb3, 0x4c, 0xf8, 0x79, 0x2c, 0x93, 0xce, 0x42, 0x86, 0xee, 0x2a, 0xdd, 0x6c, + 0xa3, 0x97, 0x48, 0xf6, 0x4c, 0xca, 0x74, 0xa3, 0xd5, 0xb1, 0x04, 0x3f, 0xfe, 0xa6, 0x6b, 0x99, + 0x3c, 0x34, 0xc9, 0x23, 0xb0, 0x80, 0x3c, 0xfe, 0xe9, 0xd1, 0xc4, 0xfd, 0xf0, 0xe4, 0xd7, 0x1b, + 0x8d, 0xa9, 0xe2, 0xb7, 0x63, 0x90, 0x20, 0xf9, 0x62, 0x1e, 0x32, 0xbb, 0x2f, 0x34, 0x6b, 0xca, + 0x46, 0x63, 0x6f, 0x7d, 0xab, 0x26, 0x0a, 0x52, 0x0e, 0x80, 0x08, 0xae, 0x6f, 0x35, 0x2a, 0xbb, + 0x62, 0xcc, 0x1f, 0xd7, 0x77, 0x76, 0x2f, 0x3f, 0x25, 0xc6, 0x7d, 0xc0, 0x1e, 0x15, 0x24, 0x82, + 0x0a, 0x17, 0x2f, 0x88, 0x49, 0x49, 0x84, 0x2c, 0x25, 0xa8, 0x3f, 0x5f, 0xdb, 0xb8, 0xfc, 0x94, + 0x38, 0x13, 0x96, 0x5c, 0xbc, 0x20, 0xce, 0x4a, 0x73, 0x90, 0x26, 0x92, 0xf5, 0x46, 0x63, 0x4b, + 0x4c, 0xf9, 0x9c, 0xad, 0x5d, 0xb9, 0xbe, 0xb3, 0x29, 0xa6, 0x7d, 0xce, 0x4d, 0xb9, 0xb1, 0xd7, + 0x14, 0xc1, 0x67, 0xd8, 0xae, 0xb5, 0x5a, 0x95, 0xcd, 0x9a, 0x98, 0xf1, 0x35, 0xd6, 0x5f, 0xd8, + 0xad, 0xb5, 0xc4, 0x6c, 0xc8, 0xac, 0x8b, 0x17, 0xc4, 0x39, 0xff, 0x11, 0xb5, 0x9d, 0xbd, 0x6d, + 0x31, 0x27, 0x2d, 0xc0, 0x1c, 0x7d, 0x04, 0x37, 0x62, 0x7e, 0x44, 0x74, 0xf9, 0x29, 0x51, 0x1c, + 0x1a, 0x42, 0x59, 0x16, 0x42, 0x82, 0xcb, 0x4f, 0x89, 0x52, 0xb1, 0x0a, 0x49, 0x12, 0x5d, 0x92, + 0x04, 0xb9, 0xad, 0xca, 0x7a, 0x6d, 0x4b, 0x69, 0x34, 0x77, 0xeb, 0x8d, 0x9d, 0xca, 0x96, 0x28, + 0x0c, 0x65, 0x72, 0xed, 0x73, 0x7b, 0x75, 0xb9, 0xb6, 0x21, 0xc6, 0x82, 0xb2, 0x66, 0xad, 0xb2, + 0x5b, 0xdb, 0x10, 0xe3, 0x45, 0x0d, 0x96, 0x26, 0xe5, 0xc9, 0x89, 0x3b, 0x23, 0xb0, 0xc4, 0xb1, + 0x23, 0x96, 0x98, 0x70, 0x8d, 0x2d, 0xf1, 0x0f, 0x62, 0xb0, 0x38, 0xa1, 0x56, 0x4c, 0x7c, 0xc8, + 0xb3, 0x90, 0xa4, 0x21, 0x4a, 0xab, 0xe7, 0xe3, 0x13, 0x8b, 0x0e, 0x09, 0xd8, 0xb1, 0x0a, 0x4a, + 0x70, 0xc1, 0x0e, 0x22, 0x7e, 0x44, 0x07, 0x81, 0x29, 0xc6, 0x72, 0xfa, 0xcf, 0x8c, 0xe5, 0x74, + 0x5a, 0xf6, 0x2e, 0x4f, 0x53, 0xf6, 0x88, 0xec, 0x78, 0xb9, 0x3d, 0x39, 0x21, 0xb7, 0x5f, 0x83, + 0x85, 0x31, 0xa2, 0xa9, 0x73, 0xec, 0xcb, 0x02, 0xe4, 0x8f, 0x72, 0x4e, 0x44, 0xa6, 0x8b, 0x85, + 0x32, 0xdd, 0xb5, 0x51, 0x0f, 0x9e, 0x3b, 0x7a, 0x11, 0xc6, 0xd6, 0xfa, 0x75, 0x01, 0x4e, 0x4d, + 0xee, 0x14, 0x27, 0xda, 0xf0, 0x0c, 0xcc, 0xf4, 0x91, 0xd7, 0xb3, 0x78, 0xb7, 0xf4, 0xc9, 0x09, + 0x35, 0x18, 0x4f, 0x8f, 0x2e, 0x36, 0x43, 0x05, 0x8b, 0x78, 0xfc, 0xa8, 0x76, 0x8f, 0x5a, 0x33, + 0x66, 0xe9, 0x97, 0x62, 0x70, 0x72, 0x22, 0xf9, 0x44, 0x43, 0x1f, 0x06, 0xd0, 0x4d, 0x7b, 0xe0, + 0xd1, 0x8e, 0x88, 0x26, 0xd8, 0x34, 0x91, 0x90, 0xe4, 0x85, 0x93, 0xe7, 0xc0, 0xf3, 0xe7, 0xe3, + 0x64, 0x1e, 0xa8, 0x88, 0x28, 0x5c, 0x19, 0x1a, 0x9a, 0x20, 0x86, 0x16, 0x8e, 0x78, 0xd3, 0xb1, + 0xc0, 0xfc, 0x34, 0x88, 0x9a, 0xa1, 0x23, 0xd3, 0x53, 0x5c, 0xcf, 0x41, 0x6a, 0x5f, 0x37, 0xbb, + 0xa4, 0x82, 0xa4, 0xca, 0xc9, 0x8e, 0x6a, 0xb8, 0x48, 0x9e, 0xa7, 0xd3, 0x2d, 0x3e, 0x8b, 0x11, + 0x24, 0x80, 0x9c, 0x00, 0x62, 0x26, 0x84, 0xa0, 0xd3, 0x3e, 0xa2, 0xf8, 0xad, 0x14, 0x64, 0x02, + 0x7d, 0xb5, 0x74, 0x0e, 0xb2, 0x37, 0xd5, 0xdb, 0xaa, 0xc2, 0xcf, 0x4a, 0xd4, 0x13, 0x19, 0x2c, + 0x6b, 0xb2, 0xf3, 0xd2, 0xa7, 0x61, 0x89, 0xa8, 0x58, 0x03, 0x0f, 0x39, 0x8a, 0x66, 0xa8, 0xae, + 0x4b, 0x9c, 0x96, 0x22, 0xaa, 0x12, 0x9e, 0x6b, 0xe0, 0xa9, 0x2a, 0x9f, 0x91, 0x2e, 0xc1, 0x22, + 0x41, 0xf4, 0x07, 0x86, 0xa7, 0xdb, 0x06, 0x52, 0xf0, 0xe9, 0xcd, 0x25, 0x95, 0xc4, 0xb7, 0x6c, + 0x01, 0x6b, 0x6c, 0x33, 0x05, 0x6c, 0x91, 0x2b, 0x6d, 0xc0, 0xc3, 0x04, 0xd6, 0x45, 0x26, 0x72, + 0x54, 0x0f, 0x29, 0xe8, 0x8b, 0x03, 0xd5, 0x70, 0x15, 0xd5, 0x6c, 0x2b, 0x3d, 0xd5, 0xed, 0xe5, + 0x97, 0x30, 0xc1, 0x7a, 0x2c, 0x2f, 0xc8, 0x67, 0xb0, 0xe2, 0x26, 0xd3, 0xab, 0x11, 0xb5, 0x8a, + 0xd9, 0xfe, 0xac, 0xea, 0xf6, 0xa4, 0x32, 0x9c, 0x22, 0x2c, 0xae, 0xe7, 0xe8, 0x66, 0x57, 0xd1, + 0x7a, 0x48, 0xbb, 0xa5, 0x0c, 0xbc, 0xce, 0x95, 0xfc, 0x43, 0xc1, 0xe7, 0x13, 0x0b, 0x5b, 0x44, + 0xa7, 0x8a, 0x55, 0xf6, 0xbc, 0xce, 0x15, 0xa9, 0x05, 0x59, 0xbc, 0x18, 0x7d, 0xfd, 0x2e, 0x52, + 0x3a, 0x96, 0x43, 0x4a, 0x63, 0x6e, 0x42, 0x6a, 0x0a, 0x78, 0xb0, 0xd4, 0x60, 0x80, 0x6d, 0xab, + 0x8d, 0xca, 0xc9, 0x56, 0xb3, 0x56, 0xdb, 0x90, 0x33, 0x9c, 0xe5, 0xba, 0xe5, 0xe0, 0x80, 0xea, + 0x5a, 0xbe, 0x83, 0x33, 0x34, 0xa0, 0xba, 0x16, 0x77, 0xef, 0x25, 0x58, 0xd4, 0x34, 0xfa, 0xce, + 0xba, 0xa6, 0xb0, 0x33, 0x96, 0x9b, 0x17, 0x43, 0xce, 0xd2, 0xb4, 0x4d, 0xaa, 0xc0, 0x62, 0xdc, + 0x95, 0xae, 0xc2, 0xc9, 0xa1, 0xb3, 0x82, 0xc0, 0x85, 0xb1, 0xb7, 0x1c, 0x85, 0x5e, 0x82, 0x45, + 0xfb, 0x60, 0x1c, 0x28, 0x85, 0x9e, 0x68, 0x1f, 0x8c, 0xc2, 0x9e, 0x86, 0x25, 0xbb, 0x67, 0x8f, + 0xe3, 0x9e, 0x08, 0xe2, 0x24, 0xbb, 0x67, 0x8f, 0x02, 0x1f, 0x23, 0x07, 0x6e, 0x07, 0x69, 0xaa, + 0x87, 0xda, 0xf9, 0xd3, 0x41, 0xf5, 0xc0, 0x84, 0xb4, 0x06, 0xa2, 0xa6, 0x29, 0xc8, 0x54, 0xf7, + 0x0d, 0xa4, 0xa8, 0x0e, 0x32, 0x55, 0x37, 0x7f, 0x36, 0xa8, 0x9c, 0xd3, 0xb4, 0x1a, 0x99, 0xad, + 0x90, 0x49, 0xe9, 0x09, 0x58, 0xb0, 0xf6, 0x6f, 0x6a, 0x34, 0x24, 0x15, 0xdb, 0x41, 0x1d, 0xfd, + 0xa5, 0xfc, 0xa3, 0xc4, 0xbf, 0xf3, 0x78, 0x82, 0x04, 0x64, 0x93, 0x88, 0xa5, 0xc7, 0x41, 0xd4, + 0xdc, 0x9e, 0xea, 0xd8, 0x24, 0x27, 0xbb, 0xb6, 0xaa, 0xa1, 0xfc, 0x63, 0x54, 0x95, 0xca, 0x77, + 0xb8, 0x18, 0x6f, 0x09, 0xf7, 0x8e, 0xde, 0xf1, 0x38, 0xe3, 0x79, 0xba, 0x25, 0x88, 0x8c, 0xb1, + 0xad, 0x82, 0x88, 0x5d, 0x11, 0x7a, 0xf0, 0x2a, 0x51, 0xcb, 0xd9, 0x3d, 0x3b, 0xf8, 0xdc, 0x47, + 0x60, 0x0e, 0x6b, 0x0e, 0x1f, 0xfa, 0x38, 0x6d, 0xc8, 0xec, 0x5e, 0xe0, 0x89, 0x1f, 0x5a, 0x6f, + 0x5c, 0x2c, 0x43, 0x36, 0x18, 0x9f, 0x52, 0x1a, 0x68, 0x84, 0x8a, 0x02, 0x6e, 0x56, 0xaa, 0x8d, + 0x0d, 0xdc, 0x66, 0xbc, 0x58, 0x13, 0x63, 0xb8, 0xdd, 0xd9, 0xaa, 0xef, 0xd6, 0x14, 0x79, 0x6f, + 0x67, 0xb7, 0xbe, 0x5d, 0x13, 0xe3, 0xc1, 0xbe, 0xfa, 0xbb, 0x31, 0xc8, 0x85, 0x8f, 0x48, 0xd2, + 0x4f, 0xc2, 0x69, 0x7e, 0x9f, 0xe1, 0x22, 0x4f, 0xb9, 0xa3, 0x3b, 0x64, 0xcb, 0xf4, 0x55, 0x5a, + 0xbe, 0xfc, 0x45, 0x5b, 0x62, 0x5a, 0x2d, 0xe4, 0x3d, 0xa7, 0x3b, 0x78, 0x43, 0xf4, 0x55, 0x4f, + 0xda, 0x82, 0xb3, 0xa6, 0xa5, 0xb8, 0x9e, 0x6a, 0xb6, 0x55, 0xa7, 0xad, 0x0c, 0x6f, 0x92, 0x14, + 0x55, 0xd3, 0x90, 0xeb, 0x5a, 0xb4, 0x54, 0xf9, 0x2c, 0x9f, 0x30, 0xad, 0x16, 0x53, 0x1e, 0xe6, + 0xf0, 0x0a, 0x53, 0x1d, 0x09, 0xb0, 0xf8, 0x51, 0x01, 0xf6, 0x10, 0xa4, 0xfb, 0xaa, 0xad, 0x20, + 0xd3, 0x73, 0x0e, 0x48, 0x63, 0x9c, 0x92, 0x53, 0x7d, 0xd5, 0xae, 0xe1, 0xf1, 0x47, 0x73, 0x3e, + 0xf9, 0xd7, 0x38, 0x64, 0x83, 0xcd, 0x31, 0x3e, 0x6b, 0x68, 0xa4, 0x8e, 0x08, 0x24, 0xd3, 0x3c, + 0xf2, 0xc0, 0x56, 0xba, 0x54, 0xc5, 0x05, 0xa6, 0x3c, 0x43, 0x5b, 0x56, 0x99, 0x22, 0x71, 0x71, + 0xc7, 0xb9, 0x05, 0xd1, 0x16, 0x21, 0x25, 0xb3, 0x91, 0xb4, 0x09, 0x33, 0x37, 0x5d, 0xc2, 0x3d, + 0x43, 0xb8, 0x1f, 0x7d, 0x30, 0xf7, 0x8d, 0x16, 0x21, 0x4f, 0xdf, 0x68, 0x29, 0x3b, 0x0d, 0x79, + 0xbb, 0xb2, 0x25, 0x33, 0xb8, 0x74, 0x06, 0x12, 0x86, 0x7a, 0xf7, 0x20, 0x5c, 0x8a, 0x88, 0x68, + 0x5a, 0xc7, 0x9f, 0x81, 0xc4, 0x1d, 0xa4, 0xde, 0x0a, 0x17, 0x00, 0x22, 0xfa, 0x10, 0x43, 0x7f, + 0x0d, 0x92, 0xc4, 0x5f, 0x12, 0x00, 0xf3, 0x98, 0x78, 0x42, 0x4a, 0x41, 0xa2, 0xda, 0x90, 0x71, + 0xf8, 0x8b, 0x90, 0xa5, 0x52, 0xa5, 0x59, 0xaf, 0x55, 0x6b, 0x62, 0xac, 0x78, 0x09, 0x66, 0xa8, + 0x13, 0xf0, 0xd6, 0xf0, 0xdd, 0x20, 0x9e, 0x60, 0x43, 0xc6, 0x21, 0xf0, 0xd9, 0xbd, 0xed, 0xf5, + 0x9a, 0x2c, 0xc6, 0x82, 0xcb, 0xeb, 0x42, 0x36, 0xd8, 0x17, 0x7f, 0x34, 0x31, 0xf5, 0xf7, 0x02, + 0x64, 0x02, 0x7d, 0x2e, 0x6e, 0x50, 0x54, 0xc3, 0xb0, 0xee, 0x28, 0xaa, 0xa1, 0xab, 0x2e, 0x0b, + 0x0a, 0x20, 0xa2, 0x0a, 0x96, 0x4c, 0xbb, 0x68, 0x1f, 0x89, 0xf1, 0xaf, 0x09, 0x20, 0x8e, 0xb6, + 0x98, 0x23, 0x06, 0x0a, 0x1f, 0xab, 0x81, 0xaf, 0x0a, 0x90, 0x0b, 0xf7, 0x95, 0x23, 0xe6, 0x9d, + 0xfb, 0x58, 0xcd, 0x7b, 0x2b, 0x06, 0x73, 0xa1, 0x6e, 0x72, 0x5a, 0xeb, 0xbe, 0x08, 0x0b, 0x7a, + 0x1b, 0xf5, 0x6d, 0xcb, 0x43, 0xa6, 0x76, 0xa0, 0x18, 0xe8, 0x36, 0x32, 0xf2, 0x45, 0x92, 0x28, + 0xd6, 0x1e, 0xdc, 0xaf, 0x96, 0xea, 0x43, 0xdc, 0x16, 0x86, 0x95, 0x17, 0xeb, 0x1b, 0xb5, 0xed, + 0x66, 0x63, 0xb7, 0xb6, 0x53, 0x7d, 0x41, 0xd9, 0xdb, 0xf9, 0xe9, 0x9d, 0xc6, 0x73, 0x3b, 0xb2, + 0xa8, 0x8f, 0xa8, 0x7d, 0x88, 0x5b, 0xbd, 0x09, 0xe2, 0xa8, 0x51, 0xd2, 0x69, 0x98, 0x64, 0x96, + 0x78, 0x42, 0x5a, 0x84, 0xf9, 0x9d, 0x86, 0xd2, 0xaa, 0x6f, 0xd4, 0x94, 0xda, 0xf5, 0xeb, 0xb5, + 0xea, 0x6e, 0x8b, 0xde, 0x40, 0xf8, 0xda, 0xbb, 0xe1, 0x4d, 0xfd, 0x4a, 0x1c, 0x16, 0x27, 0x58, + 0x22, 0x55, 0xd8, 0xd9, 0x81, 0x1e, 0x67, 0x3e, 0x35, 0x8d, 0xf5, 0x25, 0x5c, 0xf2, 0x9b, 0xaa, + 0xe3, 0xb1, 0xa3, 0xc6, 0xe3, 0x80, 0xbd, 0x64, 0x7a, 0x7a, 0x47, 0x47, 0x0e, 0xbb, 0xb0, 0xa1, + 0x07, 0x8a, 0xf9, 0xa1, 0x9c, 0xde, 0xd9, 0xfc, 0x04, 0x48, 0xb6, 0xe5, 0xea, 0x9e, 0x7e, 0x1b, + 0x29, 0xba, 0xc9, 0x6f, 0x77, 0xf0, 0x01, 0x23, 0x21, 0x8b, 0x7c, 0xa6, 0x6e, 0x7a, 0xbe, 0xb6, + 0x89, 0xba, 0xea, 0x88, 0x36, 0x4e, 0xe0, 0x71, 0x59, 0xe4, 0x33, 0xbe, 0xf6, 0x39, 0xc8, 0xb6, + 0xad, 0x01, 0xee, 0xba, 0xa8, 0x1e, 0xae, 0x17, 0x82, 0x9c, 0xa1, 0x32, 0x5f, 0x85, 0xf5, 0xd3, + 0xc3, 0x6b, 0xa5, 0xac, 0x9c, 0xa1, 0x32, 0xaa, 0x72, 0x1e, 0xe6, 0xd5, 0x6e, 0xd7, 0xc1, 0xe4, + 0x9c, 0x88, 0x9e, 0x10, 0x72, 0xbe, 0x98, 0x28, 0x2e, 0xdf, 0x80, 0x14, 0xf7, 0x03, 0x2e, 0xc9, + 0xd8, 0x13, 0x8a, 0x4d, 0x8f, 0xbd, 0xb1, 0xd5, 0xb4, 0x9c, 0x32, 0xf9, 0xe4, 0x39, 0xc8, 0xea, + 0xae, 0x32, 0xbc, 0x25, 0x8f, 0xad, 0xc4, 0x56, 0x53, 0x72, 0x46, 0x77, 0xfd, 0x1b, 0xc6, 0xe2, + 0xeb, 0x31, 0xc8, 0x85, 0x6f, 0xf9, 0xa5, 0x0d, 0x48, 0x19, 0x96, 0xa6, 0x92, 0xd0, 0xa2, 0x9f, + 0x98, 0x56, 0x23, 0x3e, 0x0c, 0x94, 0xb6, 0x98, 0xbe, 0xec, 0x23, 0x97, 0xff, 0x59, 0x80, 0x14, + 0x17, 0x4b, 0xa7, 0x20, 0x61, 0xab, 0x5e, 0x8f, 0xd0, 0x25, 0xd7, 0x63, 0xa2, 0x20, 0x93, 0x31, + 0x96, 0xbb, 0xb6, 0x6a, 0x92, 0x10, 0x60, 0x72, 0x3c, 0xc6, 0xeb, 0x6a, 0x20, 0xb5, 0x4d, 0x8e, + 0x1f, 0x56, 0xbf, 0x8f, 0x4c, 0xcf, 0xe5, 0xeb, 0xca, 0xe4, 0x55, 0x26, 0x96, 0x9e, 0x84, 0x05, + 0xcf, 0x51, 0x75, 0x23, 0xa4, 0x9b, 0x20, 0xba, 0x22, 0x9f, 0xf0, 0x95, 0xcb, 0x70, 0x86, 0xf3, + 0xb6, 0x91, 0xa7, 0x6a, 0x3d, 0xd4, 0x1e, 0x82, 0x66, 0xc8, 0x35, 0xc3, 0x69, 0xa6, 0xb0, 0xc1, + 0xe6, 0x39, 0xb6, 0xf8, 0x7d, 0x01, 0x16, 0xf8, 0x81, 0xa9, 0xed, 0x3b, 0x6b, 0x1b, 0x40, 0x35, + 0x4d, 0xcb, 0x0b, 0xba, 0x6b, 0x3c, 0x94, 0xc7, 0x70, 0xa5, 0x8a, 0x0f, 0x92, 0x03, 0x04, 0xcb, + 0x7d, 0x80, 0xe1, 0xcc, 0x91, 0x6e, 0x3b, 0x0b, 0x19, 0xf6, 0x09, 0x87, 0x7c, 0x07, 0xa4, 0x47, + 0x6c, 0xa0, 0x22, 0x7c, 0xb2, 0x92, 0x96, 0x20, 0xb9, 0x8f, 0xba, 0xba, 0xc9, 0x2e, 0x66, 0xe9, + 0x80, 0x5f, 0x84, 0x24, 0xfc, 0x8b, 0x90, 0xf5, 0x2f, 0xc0, 0xa2, 0x66, 0xf5, 0x47, 0xcd, 0x5d, + 0x17, 0x47, 0x8e, 0xf9, 0xee, 0x67, 0x85, 0x17, 0x61, 0xd8, 0x62, 0xbe, 0x2f, 0x08, 0x7f, 0x18, + 0x8b, 0x6f, 0x36, 0xd7, 0xbf, 0x11, 0x5b, 0xde, 0xa4, 0xd0, 0x26, 0x7f, 0x53, 0x19, 0x75, 0x0c, + 0xa4, 0x61, 0xeb, 0xe1, 0xcb, 0xe7, 0xe1, 0x53, 0x5d, 0xdd, 0xeb, 0x0d, 0xf6, 0x4b, 0x9a, 0xd5, + 0x5f, 0xeb, 0x5a, 0x5d, 0x6b, 0xf8, 0xe9, 0x13, 0x8f, 0xc8, 0x80, 0xfc, 0xc7, 0x3e, 0x7f, 0xa6, + 0x7d, 0xe9, 0x72, 0xe4, 0xb7, 0xd2, 0xf2, 0x0e, 0x2c, 0x32, 0x65, 0x85, 0x7c, 0x7f, 0xa1, 0xa7, + 0x08, 0xe9, 0x81, 0x77, 0x58, 0xf9, 0x6f, 0xbe, 0x4d, 0xca, 0xb5, 0xbc, 0xc0, 0xa0, 0x78, 0x8e, + 0x1e, 0x34, 0xca, 0x32, 0x9c, 0x0c, 0xf1, 0xd1, 0xad, 0x89, 0x9c, 0x08, 0xc6, 0xef, 0x32, 0xc6, + 0xc5, 0x00, 0x63, 0x8b, 0x41, 0xcb, 0x55, 0x98, 0x3b, 0x0e, 0xd7, 0x3f, 0x32, 0xae, 0x2c, 0x0a, + 0x92, 0x6c, 0xc2, 0x3c, 0x21, 0xd1, 0x06, 0xae, 0x67, 0xf5, 0x49, 0xde, 0x7b, 0x30, 0xcd, 0x3f, + 0xbd, 0x4d, 0xf7, 0x4a, 0x0e, 0xc3, 0xaa, 0x3e, 0xaa, 0x5c, 0x06, 0xf2, 0xc9, 0xa9, 0x8d, 0x34, + 0x23, 0x82, 0xe1, 0x4d, 0x66, 0x88, 0xaf, 0x5f, 0xfe, 0x3c, 0x2c, 0xe1, 0xff, 0x49, 0x5a, 0x0a, + 0x5a, 0x12, 0x7d, 0xe1, 0x95, 0xff, 0xfe, 0xcb, 0x74, 0x3b, 0x2e, 0xfa, 0x04, 0x01, 0x9b, 0x02, + 0xab, 0xd8, 0x45, 0x9e, 0x87, 0x1c, 0x57, 0x51, 0x8d, 0x49, 0xe6, 0x05, 0x6e, 0x0c, 0xf2, 0x5f, + 0x7d, 0x27, 0xbc, 0x8a, 0x9b, 0x14, 0x59, 0x31, 0x8c, 0xf2, 0x1e, 0x9c, 0x9e, 0x10, 0x15, 0x53, + 0x70, 0xbe, 0xc2, 0x38, 0x97, 0xc6, 0x22, 0x03, 0xd3, 0x36, 0x81, 0xcb, 0xfd, 0xb5, 0x9c, 0x82, + 0xf3, 0x77, 0x19, 0xa7, 0xc4, 0xb0, 0x7c, 0x49, 0x31, 0xe3, 0x0d, 0x58, 0xb8, 0x8d, 0x9c, 0x7d, + 0xcb, 0x65, 0xb7, 0x34, 0x53, 0xd0, 0xbd, 0xca, 0xe8, 0xe6, 0x19, 0x90, 0x5c, 0xdb, 0x60, 0xae, + 0xab, 0x90, 0xea, 0xa8, 0x1a, 0x9a, 0x82, 0xe2, 0x6b, 0x8c, 0x62, 0x16, 0xeb, 0x63, 0x68, 0x05, + 0xb2, 0x5d, 0x8b, 0x55, 0xa6, 0x68, 0xf8, 0x6b, 0x0c, 0x9e, 0xe1, 0x18, 0x46, 0x61, 0x5b, 0xf6, + 0xc0, 0xc0, 0x65, 0x2b, 0x9a, 0xe2, 0xf7, 0x38, 0x05, 0xc7, 0x30, 0x8a, 0x63, 0xb8, 0xf5, 0xf7, + 0x39, 0x85, 0x1b, 0xf0, 0xe7, 0xb3, 0x90, 0xb1, 0x4c, 0xe3, 0xc0, 0x32, 0xa7, 0x31, 0xe2, 0x0f, + 0x18, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x06, 0xe9, 0x69, 0x17, 0xe2, 0x8f, 0xde, 0xe1, 0xdb, 0x83, + 0xaf, 0xc0, 0x26, 0xcc, 0xf3, 0x04, 0xa5, 0x5b, 0xe6, 0x14, 0x14, 0x7f, 0xcc, 0x28, 0x72, 0x01, + 0x18, 0x7b, 0x0d, 0x0f, 0xb9, 0x5e, 0x17, 0x4d, 0x43, 0xf2, 0x3a, 0x7f, 0x0d, 0x06, 0x61, 0xae, + 0xdc, 0x47, 0xa6, 0xd6, 0x9b, 0x8e, 0xe1, 0xeb, 0xdc, 0x95, 0x1c, 0x83, 0x29, 0xaa, 0x30, 0xd7, + 0x57, 0x1d, 0xb7, 0xa7, 0x1a, 0x53, 0x2d, 0xc7, 0x9f, 0x30, 0x8e, 0xac, 0x0f, 0x62, 0x1e, 0x19, + 0x98, 0xc7, 0xa1, 0xf9, 0x06, 0xf7, 0x48, 0x00, 0xc6, 0xb6, 0x9e, 0xeb, 0x91, 0x2b, 0xad, 0xe3, + 0xb0, 0xfd, 0x29, 0xdf, 0x7a, 0x14, 0xbb, 0x1d, 0x64, 0xbc, 0x06, 0x69, 0x57, 0xbf, 0x3b, 0x15, + 0xcd, 0x9f, 0xf1, 0x95, 0x26, 0x00, 0x0c, 0x7e, 0x01, 0xce, 0x4c, 0x2c, 0x13, 0x53, 0x90, 0xfd, + 0x39, 0x23, 0x3b, 0x35, 0xa1, 0x54, 0xb0, 0x94, 0x70, 0x5c, 0xca, 0xbf, 0xe0, 0x29, 0x01, 0x8d, + 0x70, 0x35, 0xf1, 0x59, 0xc1, 0x55, 0x3b, 0xc7, 0xf3, 0xda, 0x5f, 0x72, 0xaf, 0x51, 0x6c, 0xc8, + 0x6b, 0xbb, 0x70, 0x8a, 0x31, 0x1e, 0x6f, 0x5d, 0xdf, 0xe0, 0x89, 0x95, 0xa2, 0xf7, 0xc2, 0xab, + 0xfb, 0x05, 0x58, 0xf6, 0xdd, 0xc9, 0x9b, 0x52, 0x57, 0xe9, 0xab, 0xf6, 0x14, 0xcc, 0xdf, 0x64, + 0xcc, 0x3c, 0xe3, 0xfb, 0x5d, 0xad, 0xbb, 0xad, 0xda, 0x98, 0xfc, 0x79, 0xc8, 0x73, 0xf2, 0x81, + 0xe9, 0x20, 0xcd, 0xea, 0x9a, 0xfa, 0x5d, 0xd4, 0x9e, 0x82, 0xfa, 0xaf, 0x46, 0x96, 0x6a, 0x2f, + 0x00, 0xc7, 0xcc, 0x75, 0x10, 0xfd, 0x5e, 0x45, 0xd1, 0xfb, 0xb6, 0xe5, 0x78, 0x11, 0x8c, 0xdf, + 0xe2, 0x2b, 0xe5, 0xe3, 0xea, 0x04, 0x56, 0xae, 0x41, 0x8e, 0x0c, 0xa7, 0x0d, 0xc9, 0xbf, 0x66, + 0x44, 0x73, 0x43, 0x14, 0x4b, 0x1c, 0x9a, 0xd5, 0xb7, 0x55, 0x67, 0x9a, 0xfc, 0xf7, 0x37, 0x3c, + 0x71, 0x30, 0x08, 0x4b, 0x1c, 0xde, 0x81, 0x8d, 0x70, 0xb5, 0x9f, 0x82, 0xe1, 0xdb, 0x3c, 0x71, + 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0xc3, 0x14, 0x14, 0x7f, 0xcb, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x6e, + 0x58, 0x68, 0x1d, 0xd4, 0xd5, 0x5d, 0xcf, 0xa1, 0xad, 0xf0, 0x83, 0xa9, 0xbe, 0xf3, 0x4e, 0xb8, + 0x09, 0x93, 0x03, 0xd0, 0xf2, 0x0d, 0x98, 0x1f, 0x69, 0x31, 0xa4, 0xa8, 0xdf, 0xaf, 0xe4, 0x7f, + 0xfe, 0x3d, 0x96, 0x8c, 0xc2, 0x1d, 0x46, 0x79, 0x0b, 0xaf, 0x7b, 0xb8, 0x0f, 0x88, 0x26, 0x7b, + 0xf9, 0x3d, 0x7f, 0xe9, 0x43, 0x6d, 0x40, 0xf9, 0x3a, 0xcc, 0x85, 0x7a, 0x80, 0x68, 0xaa, 0x5f, + 0x60, 0x54, 0xd9, 0x60, 0x0b, 0x50, 0xbe, 0x04, 0x09, 0x5c, 0xcf, 0xa3, 0xe1, 0xbf, 0xc8, 0xe0, + 0x44, 0xbd, 0xfc, 0x19, 0x48, 0xf1, 0x3a, 0x1e, 0x0d, 0xfd, 0x25, 0x06, 0xf5, 0x21, 0x18, 0xce, + 0x6b, 0x78, 0x34, 0xfc, 0x97, 0x39, 0x9c, 0x43, 0x30, 0x7c, 0x7a, 0x17, 0xfe, 0xc3, 0xaf, 0x24, + 0x58, 0x1e, 0xe6, 0xbe, 0xbb, 0x06, 0xb3, 0xac, 0x78, 0x47, 0xa3, 0xbf, 0xc4, 0x1e, 0xce, 0x11, + 0xe5, 0xa7, 0x21, 0x39, 0xa5, 0xc3, 0x7f, 0x95, 0x41, 0xa9, 0x7e, 0xb9, 0x0a, 0x99, 0x40, 0xc1, + 0x8e, 0x86, 0xff, 0x1a, 0x83, 0x07, 0x51, 0xd8, 0x74, 0x56, 0xb0, 0xa3, 0x09, 0x7e, 0x9d, 0x9b, + 0xce, 0x10, 0xd8, 0x6d, 0xbc, 0x56, 0x47, 0xa3, 0x7f, 0x83, 0x7b, 0x9d, 0x43, 0xca, 0xcf, 0x42, + 0xda, 0xcf, 0xbf, 0xd1, 0xf8, 0xdf, 0x64, 0xf8, 0x21, 0x06, 0x7b, 0x20, 0x90, 0xff, 0xa3, 0x29, + 0x7e, 0x8b, 0x7b, 0x20, 0x80, 0xc2, 0xdb, 0x68, 0xb4, 0xa6, 0x47, 0x33, 0xfd, 0x36, 0xdf, 0x46, + 0x23, 0x25, 0x1d, 0xaf, 0x26, 0x49, 0x83, 0xd1, 0x14, 0xbf, 0xc3, 0x57, 0x93, 0xe8, 0x63, 0x33, + 0x46, 0x8b, 0x64, 0x34, 0xc7, 0x97, 0xb9, 0x19, 0x23, 0x35, 0xb2, 0xdc, 0x04, 0x69, 0xbc, 0x40, + 0x46, 0xf3, 0x7d, 0x85, 0xf1, 0x2d, 0x8c, 0xd5, 0xc7, 0xf2, 0x73, 0x70, 0x6a, 0x72, 0x71, 0x8c, + 0x66, 0xfd, 0xea, 0x7b, 0x23, 0xc7, 0x99, 0x60, 0x6d, 0x2c, 0xef, 0x0e, 0xb3, 0x6c, 0xb0, 0x30, + 0x46, 0xd3, 0xbe, 0xf2, 0x5e, 0x38, 0xd1, 0x06, 0xeb, 0x62, 0xb9, 0x02, 0x30, 0xac, 0x49, 0xd1, + 0x5c, 0xaf, 0x32, 0xae, 0x00, 0x08, 0x6f, 0x0d, 0x56, 0x92, 0xa2, 0xf1, 0x5f, 0xe3, 0x5b, 0x83, + 0x21, 0xf0, 0xd6, 0xe0, 0xd5, 0x28, 0x1a, 0xfd, 0x1a, 0xdf, 0x1a, 0x1c, 0x52, 0xbe, 0x06, 0x29, + 0x73, 0x60, 0x18, 0x38, 0xb6, 0xa4, 0x07, 0xff, 0x24, 0x2b, 0xff, 0xef, 0x1f, 0x30, 0x30, 0x07, + 0x94, 0x2f, 0x41, 0x12, 0xf5, 0xf7, 0x51, 0x3b, 0x0a, 0xf9, 0x1f, 0x1f, 0xf0, 0x7c, 0x82, 0xb5, + 0xcb, 0xcf, 0x02, 0xd0, 0xc3, 0x34, 0xf9, 0x50, 0x14, 0x81, 0xfd, 0xcf, 0x0f, 0xd8, 0x8f, 0x25, + 0x86, 0x90, 0x21, 0x01, 0xfd, 0xe9, 0xc5, 0x83, 0x09, 0xde, 0x09, 0x13, 0x90, 0x03, 0xf8, 0x55, + 0x98, 0xbd, 0xe9, 0x5a, 0xa6, 0xa7, 0x76, 0xa3, 0xd0, 0xff, 0xc5, 0xd0, 0x5c, 0x1f, 0x3b, 0xac, + 0x6f, 0x39, 0xc8, 0x53, 0xbb, 0x6e, 0x14, 0xf6, 0xbf, 0x19, 0xd6, 0x07, 0x60, 0xb0, 0xa6, 0xba, + 0xde, 0x34, 0xef, 0xfd, 0x23, 0x0e, 0xe6, 0x00, 0x6c, 0x34, 0xfe, 0xff, 0x16, 0x3a, 0x88, 0xc2, + 0xbe, 0xcb, 0x8d, 0x66, 0xfa, 0xe5, 0xcf, 0x40, 0x1a, 0xff, 0x4b, 0x7f, 0x01, 0x15, 0x01, 0xfe, + 0x1f, 0x06, 0x1e, 0x22, 0xf0, 0x93, 0x5d, 0xaf, 0xed, 0xe9, 0xd1, 0xce, 0xfe, 0x5f, 0xb6, 0xd2, + 0x5c, 0xbf, 0x5c, 0x81, 0x8c, 0xeb, 0xb5, 0xdb, 0x03, 0xd6, 0xd1, 0x44, 0xc0, 0xff, 0xef, 0x03, + 0xff, 0x90, 0xeb, 0x63, 0xd6, 0x6b, 0x93, 0xef, 0xeb, 0x60, 0xd3, 0xda, 0xb4, 0xe8, 0x4d, 0xdd, + 0x8b, 0xc5, 0xe8, 0x2b, 0x37, 0x78, 0x23, 0x0e, 0x27, 0x35, 0xab, 0xbf, 0x6f, 0xb9, 0x6b, 0xfb, + 0x96, 0xd7, 0x5b, 0xeb, 0xab, 0x36, 0xbb, 0x81, 0xcb, 0xf4, 0x55, 0x9b, 0xfd, 0xd4, 0xd1, 0x5d, + 0x3e, 0xde, 0xed, 0x5d, 0xf1, 0xe7, 0x60, 0x76, 0x5b, 0xb5, 0x77, 0x91, 0xeb, 0x49, 0xc4, 0x4b, + 0xe4, 0x37, 0x35, 0xec, 0x4a, 0x74, 0xa5, 0x14, 0x20, 0x2e, 0x31, 0xb5, 0x52, 0xcb, 0x73, 0x5a, + 0x9e, 0x43, 0x3e, 0x1f, 0xcb, 0x33, 0x2e, 0x19, 0x2c, 0x5f, 0x85, 0x4c, 0x40, 0x2c, 0x89, 0x10, + 0xbf, 0x85, 0x0e, 0xd8, 0xaf, 0x6a, 0xf0, 0xbf, 0xd2, 0xd2, 0xf0, 0x67, 0x6f, 0x58, 0x46, 0x07, + 0xe5, 0xd8, 0x15, 0xa1, 0xf8, 0x0c, 0xcc, 0x5e, 0x57, 0x6f, 0xa1, 0x6d, 0xd5, 0x96, 0x2e, 0xc2, + 0x2c, 0x32, 0x3d, 0x47, 0x47, 0x2e, 0x33, 0xe0, 0x4c, 0xc8, 0x00, 0xa6, 0x46, 0x9f, 0xcc, 0x35, + 0x8b, 0x5b, 0x90, 0x0d, 0x4e, 0x4c, 0xfb, 0x6c, 0x2c, 0xb5, 0xbc, 0x1e, 0xfb, 0x19, 0x6c, 0x5a, + 0xa6, 0x83, 0xf5, 0x8d, 0x37, 0xef, 0x17, 0x4e, 0x7c, 0xef, 0x7e, 0xe1, 0xc4, 0xbf, 0xdc, 0x2f, + 0x9c, 0x78, 0xeb, 0x7e, 0x41, 0x78, 0xf7, 0x7e, 0x41, 0x78, 0xff, 0x7e, 0x41, 0xb8, 0x77, 0x58, + 0x10, 0xbe, 0x7e, 0x58, 0x10, 0xde, 0x38, 0x2c, 0x08, 0xdf, 0x39, 0x2c, 0x08, 0x6f, 0x1e, 0x16, + 0x84, 0xef, 0x1d, 0x16, 0x84, 0xb7, 0x0e, 0x0b, 0xc2, 0x0f, 0x0f, 0x0b, 0x27, 0xde, 0x3d, 0x2c, + 0x08, 0xef, 0x1f, 0x16, 0x4e, 0xdc, 0xfb, 0x41, 0xe1, 0xc4, 0xfe, 0x0c, 0xf1, 0xed, 0xc5, 0xff, + 0x0f, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x52, 0x3a, 0xd6, 0x3f, 0x32, 0x00, 0x00, + } + r := bytes.NewReader(gzipped) + gzipr, err := gzip.NewReader(r) + if err != nil { + panic(err) + } + ungzipped, err := ioutil.ReadAll(gzipr) + if err != nil { + panic(err) + } + if err := proto.Unmarshal(ungzipped, d); err != nil { + panic(err) + } + return d +} +func (this *MapTest) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapTest) + if !ok { + that2, ok := that.(MapTest) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapTest") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapTest but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapTest but is not nil && this == nil") + } + if len(this.StrStr) != len(that1.StrStr) { + return fmt.Errorf("StrStr this(%v) Not Equal that(%v)", len(this.StrStr), len(that1.StrStr)) + } + for i := range this.StrStr { + if this.StrStr[i] != that1.StrStr[i] { + return fmt.Errorf("StrStr this[%v](%v) Not Equal that[%v](%v)", i, this.StrStr[i], i, that1.StrStr[i]) + } + } + return nil +} +func (this *MapTest) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapTest) + if !ok { + that2, ok := that.(MapTest) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.StrStr) != len(that1.StrStr) { + return false + } + for i := range this.StrStr { + if this.StrStr[i] != that1.StrStr[i] { + return false + } + } + return true +} +func (this *FakeMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*FakeMap) + if !ok { + that2, ok := that.(FakeMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *FakeMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *FakeMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *FakeMap but is not nil && this == nil") + } + if len(this.Entries) != len(that1.Entries) { + return fmt.Errorf("Entries this(%v) Not Equal that(%v)", len(this.Entries), len(that1.Entries)) + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return fmt.Errorf("Entries this[%v](%v) Not Equal that[%v](%v)", i, this.Entries[i], i, that1.Entries[i]) + } + } + return nil +} +func (this *FakeMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FakeMap) + if !ok { + that2, ok := that.(FakeMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Entries) != len(that1.Entries) { + return false + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return false + } + } + return true +} +func (this *FakeMapEntry) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*FakeMapEntry) + if !ok { + that2, ok := that.(FakeMapEntry) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *FakeMapEntry") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *FakeMapEntry but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *FakeMapEntry but is not nil && this == nil") + } + if this.Key != that1.Key { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", this.Key, that1.Key) + } + if this.Value != that1.Value { + return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) + } + if this.Other != that1.Other { + return fmt.Errorf("Other this(%v) Not Equal that(%v)", this.Other, that1.Other) + } + return nil +} +func (this *FakeMapEntry) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FakeMapEntry) + if !ok { + that2, ok := that.(FakeMapEntry) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Key != that1.Key { + return false + } + if this.Value != that1.Value { + return false + } + if this.Other != that1.Other { + return false + } + return true +} +func (this *MapTest) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&mapdefaults.MapTest{") + keysForStrStr := make([]string, 0, len(this.StrStr)) + for k := range this.StrStr { + keysForStrStr = append(keysForStrStr, k) + } + sortkeys.Strings(keysForStrStr) + mapStringForStrStr := "map[string]string{" + for _, k := range keysForStrStr { + mapStringForStrStr += fmt.Sprintf("%#v: %#v,", k, this.StrStr[k]) + } + mapStringForStrStr += "}" + if this.StrStr != nil { + s = append(s, "StrStr: "+mapStringForStrStr+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FakeMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&mapdefaults.FakeMap{") + if this.Entries != nil { + s = append(s, "Entries: "+fmt.Sprintf("%#v", this.Entries)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FakeMapEntry) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&mapdefaults.FakeMapEntry{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "Other: "+fmt.Sprintf("%#v", this.Other)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringMap(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *MapTest) 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 *MapTest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.StrStr) > 0 { + for k := range m.StrStr { + dAtA[i] = 0xa + i++ + v := m.StrStr[k] + mapSize := 1 + len(k) + sovMap(uint64(len(k))) + 1 + len(v) + sovMap(uint64(len(v))) + i = encodeVarintMap(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMap(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMap(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func (m *FakeMap) 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 *FakeMap) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Entries) > 0 { + for _, msg := range m.Entries { + dAtA[i] = 0xa + i++ + i = encodeVarintMap(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *FakeMapEntry) 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 *FakeMapEntry) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Key) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintMap(dAtA, i, uint64(len(m.Key))) + i += copy(dAtA[i:], m.Key) + } + if len(m.Value) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintMap(dAtA, i, uint64(len(m.Value))) + i += copy(dAtA[i:], m.Value) + } + if len(m.Other) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintMap(dAtA, i, uint64(len(m.Other))) + i += copy(dAtA[i:], m.Other) + } + return i, nil +} + +func encodeVarintMap(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 NewPopulatedMapTest(r randyMap, easy bool) *MapTest { + this := &MapTest{} + if r.Intn(10) != 0 { + v1 := r.Intn(10) + this.StrStr = make(map[string]string) + for i := 0; i < v1; i++ { + this.StrStr[randStringMap(r)] = randStringMap(r) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedFakeMap(r randyMap, easy bool) *FakeMap { + this := &FakeMap{} + if r.Intn(10) != 0 { + v2 := r.Intn(5) + this.Entries = make([]*FakeMapEntry, v2) + for i := 0; i < v2; i++ { + this.Entries[i] = NewPopulatedFakeMapEntry(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedFakeMapEntry(r randyMap, easy bool) *FakeMapEntry { + this := &FakeMapEntry{} + this.Key = string(randStringMap(r)) + this.Value = string(randStringMap(r)) + this.Other = string(randStringMap(r)) + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyMap interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneMap(r randyMap) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringMap(r randyMap) string { + v3 := r.Intn(100) + tmps := make([]rune, v3) + for i := 0; i < v3; i++ { + tmps[i] = randUTF8RuneMap(r) + } + return string(tmps) +} +func randUnrecognizedMap(r randyMap, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldMap(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldMap(dAtA []byte, r randyMap, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + v4 := r.Int63() + if r.Intn(2) == 0 { + v4 *= -1 + } + dAtA = encodeVarintPopulateMap(dAtA, uint64(v4)) + case 1: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateMap(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateMap(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *MapTest) Size() (n int) { + var l int + _ = l + if len(m.StrStr) > 0 { + for k, v := range m.StrStr { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovMap(uint64(len(k))) + 1 + len(v) + sovMap(uint64(len(v))) + n += mapEntrySize + 1 + sovMap(uint64(mapEntrySize)) + } + } + return n +} + +func (m *FakeMap) Size() (n int) { + var l int + _ = l + if len(m.Entries) > 0 { + for _, e := range m.Entries { + l = e.Size() + n += 1 + l + sovMap(uint64(l)) + } + } + return n +} + +func (m *FakeMapEntry) Size() (n int) { + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + l = len(m.Other) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + return n +} + +func sovMap(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozMap(x uint64) (n int) { + return sovMap(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *MapTest) String() string { + if this == nil { + return "nil" + } + keysForStrStr := make([]string, 0, len(this.StrStr)) + for k := range this.StrStr { + keysForStrStr = append(keysForStrStr, k) + } + sortkeys.Strings(keysForStrStr) + mapStringForStrStr := "map[string]string{" + for _, k := range keysForStrStr { + mapStringForStrStr += fmt.Sprintf("%v: %v,", k, this.StrStr[k]) + } + mapStringForStrStr += "}" + s := strings.Join([]string{`&MapTest{`, + `StrStr:` + mapStringForStrStr + `,`, + `}`, + }, "") + return s +} +func (this *FakeMap) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FakeMap{`, + `Entries:` + strings.Replace(fmt.Sprintf("%v", this.Entries), "FakeMapEntry", "FakeMapEntry", 1) + `,`, + `}`, + }, "") + return s +} +func (this *FakeMapEntry) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FakeMapEntry{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `Other:` + fmt.Sprintf("%v", this.Other) + `,`, + `}`, + }, "") + return s +} +func valueToStringMap(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *MapTest) 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 ErrIntOverflowMap + } + 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: MapTest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapTest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StrStr", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMap + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StrStr == nil { + m.StrStr = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMap + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMap + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipMap(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMap + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.StrStr[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMap(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMap + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FakeMap) 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 ErrIntOverflowMap + } + 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: FakeMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FakeMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Entries", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMap + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Entries = append(m.Entries, &FakeMapEntry{}) + if err := m.Entries[len(m.Entries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMap(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMap + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FakeMapEntry) 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 ErrIntOverflowMap + } + 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: FakeMapEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FakeMapEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + 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 ErrInvalidLengthMap + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = 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 ErrIntOverflowMap + } + 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 ErrInvalidLengthMap + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Other", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + 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 ErrInvalidLengthMap + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Other = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMap(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMap + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipMap(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, ErrIntOverflowMap + } + 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, ErrIntOverflowMap + } + 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, ErrIntOverflowMap + } + 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, ErrInvalidLengthMap + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMap + } + 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 := skipMap(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 ( + ErrInvalidLengthMap = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowMap = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("combos/both/map.proto", fileDescriptorMap) } + +var fileDescriptorMap = []byte{ + // 310 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xbf, 0x4f, 0xc2, 0x40, + 0x14, 0xc7, 0xfb, 0x20, 0xd2, 0x78, 0x38, 0x98, 0x46, 0x93, 0xca, 0xf0, 0x42, 0x98, 0x58, 0x6c, + 0x13, 0x59, 0xc4, 0xc1, 0xc1, 0xa8, 0x93, 0x2c, 0xe0, 0x6e, 0xae, 0x78, 0xfc, 0x08, 0x94, 0x6b, + 0xee, 0x5e, 0x4d, 0x98, 0xe4, 0xcf, 0x71, 0x74, 0xf4, 0x4f, 0x60, 0x64, 0x74, 0xa4, 0xe7, 0xe2, + 0xc8, 0xc8, 0x68, 0xb8, 0x62, 0x52, 0x37, 0xb7, 0xf7, 0xf9, 0xde, 0xe7, 0xee, 0x7d, 0x73, 0xec, + 0xb4, 0x2f, 0xe3, 0x48, 0xea, 0x30, 0x92, 0x34, 0x0a, 0x63, 0x9e, 0x04, 0x89, 0x92, 0x24, 0xbd, + 0x6a, 0xcc, 0x93, 0x67, 0x31, 0xe0, 0xe9, 0x94, 0x74, 0xed, 0x7c, 0x38, 0xa6, 0x51, 0x1a, 0x05, + 0x7d, 0x19, 0x87, 0x43, 0x39, 0x94, 0xa1, 0x75, 0xa2, 0x74, 0x60, 0xc9, 0x82, 0x9d, 0xf2, 0xbb, + 0x8d, 0x57, 0xe6, 0x76, 0x78, 0xf2, 0x28, 0x34, 0x79, 0x6d, 0xe6, 0x6a, 0x52, 0x4f, 0x9a, 0x94, + 0x0f, 0xf5, 0x72, 0xb3, 0x7a, 0x51, 0x0f, 0x0a, 0x0f, 0x07, 0x7b, 0x2d, 0xe8, 0x91, 0xea, 0x91, + 0xba, 0x9b, 0x91, 0x9a, 0x77, 0x2b, 0xda, 0x42, 0xad, 0xcd, 0xaa, 0x85, 0xd8, 0x3b, 0x66, 0xe5, + 0x89, 0x98, 0xfb, 0x50, 0x87, 0xe6, 0x61, 0x77, 0x37, 0x7a, 0x27, 0xec, 0xe0, 0x85, 0x4f, 0x53, + 0xe1, 0x97, 0x6c, 0x96, 0xc3, 0x55, 0xe9, 0x12, 0x1a, 0xd7, 0xcc, 0xbd, 0xe7, 0x13, 0xd1, 0xe1, + 0x89, 0xd7, 0x62, 0xae, 0x98, 0x91, 0x1a, 0x0b, 0xbd, 0x2f, 0x70, 0xf6, 0xa7, 0xc0, 0x5e, 0xcb, + 0x37, 0xff, 0x9a, 0x8d, 0x07, 0x76, 0x54, 0x3c, 0xf8, 0xef, 0xee, 0x5d, 0x2a, 0x69, 0x24, 0x94, + 0x5f, 0xce, 0x53, 0x0b, 0x37, 0xb7, 0xcb, 0x0c, 0x9d, 0x55, 0x86, 0xce, 0x67, 0x86, 0xce, 0x3a, + 0x43, 0xd8, 0x64, 0x08, 0xdb, 0x0c, 0x61, 0x61, 0x10, 0xde, 0x0c, 0xc2, 0xbb, 0x41, 0xf8, 0x30, + 0x08, 0x4b, 0x83, 0xb0, 0x32, 0x08, 0x6b, 0x83, 0xf0, 0x6d, 0xd0, 0xd9, 0x18, 0x84, 0xad, 0x41, + 0x67, 0xf1, 0x85, 0x4e, 0x54, 0xb1, 0x7f, 0xdb, 0xfa, 0x09, 0x00, 0x00, 0xff, 0xff, 0x11, 0xc9, + 0x76, 0xfa, 0xb0, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.proto b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.proto new file mode 100644 index 000000000..2de9cdd7f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map.proto @@ -0,0 +1,70 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; +package mapdefaults; + + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.goproto_enum_prefix_all) = false; +option (gogoproto.goproto_getters_all) = false; + +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; +option (gogoproto.stringer_all) = true; +option (gogoproto.gostring_all) = true; +option (gogoproto.description_all) = true; + +option (gogoproto.testgen_all) = true; +option (gogoproto.populate_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; + +option (gogoproto.goproto_enum_stringer_all) = false; +option (gogoproto.enum_stringer_all) = true; + +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; + + +message MapTest { + map str_str = 1; +} + +message FakeMap { + repeated FakeMapEntry entries = 1; +} + +message FakeMapEntry { + string key = 1; + string value = 2; + string other = 3; +} diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map_test.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map_test.go new file mode 100644 index 000000000..9998ead10 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/map_test.go @@ -0,0 +1,180 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package mapdefaults + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestUnmarshalImplicitDefaultKeyValue1(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "foo", + Value: "", + }, + { + Key: "", + Value: "bar", + }, + { + Key: "as", + Value: "df", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 3 { + t.Fatal("StrStr map should have 3 key/value pairs") + } + + val, ok := strStr["foo"] + if !ok { + t.Fatal("\"foo\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"foo\": %s", val) + } + + val, ok = strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "bar" { + t.Fatalf("Unexpected value for \"\": %s", val) + } + + val, ok = strStr["as"] + if !ok { + t.Fatal("\"as\" not found in StrStr map.") + } + if val != "df" { + t.Fatalf("Unexpected value for \"as\": %s", val) + } +} + +func TestUnmarshalImplicitDefaultKeyValue2(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "", + Value: "", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + // Sanity check + if string(serializedMsg) != "\n\x00" { + t.Fatal("Serialized bytes mismatched") + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"\": %s", val) + } +} + +func TestUnmarshalIgnoreUnknownField(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "key", + Value: "value", + Other: "other", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := &MapTest{} + err = proto.Unmarshal(serializedMsg, msg) + + if err != nil { + var pb proto.Message = msg + _, ok := pb.(proto.Unmarshaler) + if !ok { + // non-codegen implementation returns error when extra tags are + // present. + return + } + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr["key"] + if !ok { + t.Fatal("\"key\" not found in StrStr map.") + } + if val != "value" { + t.Fatalf("Unexpected value for \"value\": %s", val) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/mappb_test.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/mappb_test.go new file mode 100644 index 000000000..1bd17f59d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/both/mappb_test.go @@ -0,0 +1,564 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: combos/both/map.proto + +/* +Package mapdefaults is a generated protocol buffer package. + +It is generated from these files: + combos/both/map.proto + +It has these top-level messages: + MapTest + FakeMap + FakeMapEntry +*/ +package mapdefaults + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestMapTestProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapTestMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestFakeMapMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestFakeMapEntryMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapTestJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestFakeMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestFakeMapEntryJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapTestProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &MapTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapTestProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + dAtA := proto.CompactTextString(p) + msg := &MapTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &FakeMap{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + dAtA := proto.CompactTextString(p) + msg := &FakeMap{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &FakeMapEntry{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + dAtA := proto.CompactTextString(p) + msg := &FakeMapEntry{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapDescription(t *testing.T) { + MapDescription() +} +func TestMapTestVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestFakeMapVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestFakeMapEntryVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapTestGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestFakeMapGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestFakeMapEntryGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestMapTestSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestFakeMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestFakeMapEntrySize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestMapTestStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestFakeMapStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestFakeMapEntryStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.pb.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.pb.go new file mode 100644 index 000000000..f90e034dc --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.pb.go @@ -0,0 +1,961 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: combos/marshaler/map.proto + +/* +Package mapdefaults is a generated protocol buffer package. + +It is generated from these files: + combos/marshaler/map.proto + +It has these top-level messages: + MapTest + FakeMap + FakeMapEntry +*/ +package mapdefaults + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" +import bytes "bytes" +import ioutil "io/ioutil" + +import strings "strings" +import reflect "reflect" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +// 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 + +type MapTest struct { + StrStr map[string]string `protobuf:"bytes,1,rep,name=str_str,json=strStr" json:"str_str,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *MapTest) Reset() { *m = MapTest{} } +func (*MapTest) ProtoMessage() {} +func (*MapTest) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{0} } + +type FakeMap struct { + Entries []*FakeMapEntry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` +} + +func (m *FakeMap) Reset() { *m = FakeMap{} } +func (*FakeMap) ProtoMessage() {} +func (*FakeMap) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{1} } + +type FakeMapEntry struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Other string `protobuf:"bytes,3,opt,name=other,proto3" json:"other,omitempty"` +} + +func (m *FakeMapEntry) Reset() { *m = FakeMapEntry{} } +func (*FakeMapEntry) ProtoMessage() {} +func (*FakeMapEntry) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{2} } + +func init() { + proto.RegisterType((*MapTest)(nil), "mapdefaults.MapTest") + proto.RegisterType((*FakeMap)(nil), "mapdefaults.FakeMap") + proto.RegisterType((*FakeMapEntry)(nil), "mapdefaults.FakeMapEntry") +} +func (this *MapTest) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func (this *FakeMap) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func (this *FakeMapEntry) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func MapDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} + var gzipped = []byte{ + // 3870 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0x3f, 0x17, 0x5f, 0x04, 0x0e, 0x40, 0x70, 0xb9, 0xa4, 0x25, 0x88, 0x8e, 0x21, 0x0a, 0xb6, + 0x23, 0xda, 0xfe, 0x07, 0xcc, 0x48, 0x96, 0x2c, 0x41, 0xff, 0xd8, 0x05, 0x41, 0x88, 0x81, 0x4a, + 0x12, 0xc8, 0x82, 0x8c, 0x3f, 0x32, 0x9d, 0x9d, 0xe5, 0xe2, 0x02, 0x5c, 0x69, 0xb1, 0xbb, 0xd9, + 0x5d, 0x48, 0xa6, 0xa6, 0x33, 0x55, 0xc7, 0xfd, 0x98, 0x4c, 0xa7, 0xdf, 0x9d, 0x49, 0xe2, 0x3a, + 0xee, 0xc7, 0x4c, 0xeb, 0x34, 0xfd, 0x4a, 0x9a, 0x26, 0x4d, 0xfb, 0xd4, 0x97, 0xb4, 0x7e, 0xea, + 0x24, 0x6f, 0x7d, 0xe8, 0x83, 0xc5, 0x78, 0xa6, 0x69, 0xeb, 0x36, 0x6e, 0xeb, 0x07, 0xcf, 0xf8, + 0xa5, 0x73, 0xbf, 0x16, 0xbb, 0x00, 0xa8, 0x05, 0x33, 0x63, 0xe7, 0x89, 0xbc, 0xe7, 0x9e, 0xdf, + 0x6f, 0xcf, 0x9e, 0x7b, 0xee, 0x39, 0xe7, 0xde, 0x05, 0xfc, 0xe8, 0x2a, 0xac, 0xf4, 0x2c, 0xab, + 0x67, 0xa0, 0x35, 0xdb, 0xb1, 0x3c, 0x6b, 0x7f, 0xd0, 0x5d, 0xeb, 0x20, 0x57, 0x73, 0x74, 0xdb, + 0xb3, 0x9c, 0x32, 0x91, 0x49, 0xf3, 0x54, 0xa3, 0xcc, 0x35, 0x4a, 0xdb, 0xb0, 0x70, 0x5d, 0x37, + 0xd0, 0x86, 0xaf, 0xd8, 0x46, 0x9e, 0x74, 0x05, 0x12, 0x5d, 0xdd, 0x40, 0x05, 0x61, 0x25, 0xbe, + 0x9a, 0xbd, 0xf0, 0x58, 0x79, 0x04, 0x54, 0x0e, 0x23, 0x5a, 0x58, 0x2c, 0x13, 0x44, 0xe9, 0xed, + 0x04, 0x2c, 0x4e, 0x98, 0x95, 0x24, 0x48, 0x98, 0x6a, 0x1f, 0x33, 0x0a, 0xab, 0x19, 0x99, 0xfc, + 0x2f, 0x15, 0x60, 0xd6, 0x56, 0xb5, 0x5b, 0x6a, 0x0f, 0x15, 0x62, 0x44, 0xcc, 0x87, 0x52, 0x11, + 0xa0, 0x83, 0x6c, 0x64, 0x76, 0x90, 0xa9, 0x1d, 0x16, 0xe2, 0x2b, 0xf1, 0xd5, 0x8c, 0x1c, 0x90, + 0x48, 0x4f, 0xc1, 0x82, 0x3d, 0xd8, 0x37, 0x74, 0x4d, 0x09, 0xa8, 0xc1, 0x4a, 0x7c, 0x35, 0x29, + 0x8b, 0x74, 0x62, 0x63, 0xa8, 0x7c, 0x1e, 0xe6, 0xef, 0x20, 0xf5, 0x56, 0x50, 0x35, 0x4b, 0x54, + 0xf3, 0x58, 0x1c, 0x50, 0xac, 0x41, 0xae, 0x8f, 0x5c, 0x57, 0xed, 0x21, 0xc5, 0x3b, 0xb4, 0x51, + 0x21, 0x41, 0xde, 0x7e, 0x65, 0xec, 0xed, 0x47, 0xdf, 0x3c, 0xcb, 0x50, 0xbb, 0x87, 0x36, 0x92, + 0xaa, 0x90, 0x41, 0xe6, 0xa0, 0x4f, 0x19, 0x92, 0xc7, 0xf8, 0xaf, 0x6e, 0x0e, 0xfa, 0xa3, 0x2c, + 0x69, 0x0c, 0x63, 0x14, 0xb3, 0x2e, 0x72, 0x6e, 0xeb, 0x1a, 0x2a, 0xa4, 0x08, 0xc1, 0xf9, 0x31, + 0x82, 0x36, 0x9d, 0x1f, 0xe5, 0xe0, 0x38, 0xa9, 0x06, 0x19, 0xf4, 0xb2, 0x87, 0x4c, 0x57, 0xb7, + 0xcc, 0xc2, 0x2c, 0x21, 0x79, 0x7c, 0xc2, 0x2a, 0x22, 0xa3, 0x33, 0x4a, 0x31, 0xc4, 0x49, 0x97, + 0x61, 0xd6, 0xb2, 0x3d, 0xdd, 0x32, 0xdd, 0x42, 0x7a, 0x45, 0x58, 0xcd, 0x5e, 0xf8, 0xd8, 0xc4, + 0x40, 0x68, 0x52, 0x1d, 0x99, 0x2b, 0x4b, 0x0d, 0x10, 0x5d, 0x6b, 0xe0, 0x68, 0x48, 0xd1, 0xac, + 0x0e, 0x52, 0x74, 0xb3, 0x6b, 0x15, 0x32, 0x84, 0xe0, 0xec, 0xf8, 0x8b, 0x10, 0xc5, 0x9a, 0xd5, + 0x41, 0x0d, 0xb3, 0x6b, 0xc9, 0x79, 0x37, 0x34, 0x96, 0x4e, 0x41, 0xca, 0x3d, 0x34, 0x3d, 0xf5, + 0xe5, 0x42, 0x8e, 0x44, 0x08, 0x1b, 0x95, 0xfe, 0x36, 0x05, 0xf3, 0xd3, 0x84, 0xd8, 0x35, 0x48, + 0x76, 0xf1, 0x5b, 0x16, 0x62, 0x27, 0xf1, 0x01, 0xc5, 0x84, 0x9d, 0x98, 0xfa, 0x31, 0x9d, 0x58, + 0x85, 0xac, 0x89, 0x5c, 0x0f, 0x75, 0x68, 0x44, 0xc4, 0xa7, 0x8c, 0x29, 0xa0, 0xa0, 0xf1, 0x90, + 0x4a, 0xfc, 0x58, 0x21, 0xf5, 0x02, 0xcc, 0xfb, 0x26, 0x29, 0x8e, 0x6a, 0xf6, 0x78, 0x6c, 0xae, + 0x45, 0x59, 0x52, 0xae, 0x73, 0x9c, 0x8c, 0x61, 0x72, 0x1e, 0x85, 0xc6, 0xd2, 0x06, 0x80, 0x65, + 0x22, 0xab, 0xab, 0x74, 0x90, 0x66, 0x14, 0xd2, 0xc7, 0x78, 0xa9, 0x89, 0x55, 0xc6, 0xbc, 0x64, + 0x51, 0xa9, 0x66, 0x48, 0x57, 0x87, 0xa1, 0x36, 0x7b, 0x4c, 0xa4, 0x6c, 0xd3, 0x4d, 0x36, 0x16, + 0x6d, 0x7b, 0x90, 0x77, 0x10, 0x8e, 0x7b, 0xd4, 0x61, 0x6f, 0x96, 0x21, 0x46, 0x94, 0x23, 0xdf, + 0x4c, 0x66, 0x30, 0xfa, 0x62, 0x73, 0x4e, 0x70, 0x28, 0x3d, 0x0a, 0xbe, 0x40, 0x21, 0x61, 0x05, + 0x24, 0x0b, 0xe5, 0xb8, 0x70, 0x47, 0xed, 0xa3, 0xe5, 0xbb, 0x90, 0x0f, 0xbb, 0x47, 0x5a, 0x82, + 0xa4, 0xeb, 0xa9, 0x8e, 0x47, 0xa2, 0x30, 0x29, 0xd3, 0x81, 0x24, 0x42, 0x1c, 0x99, 0x1d, 0x92, + 0xe5, 0x92, 0x32, 0xfe, 0x57, 0xfa, 0xa9, 0xe1, 0x0b, 0xc7, 0xc9, 0x0b, 0x7f, 0x7c, 0x7c, 0x45, + 0x43, 0xcc, 0xa3, 0xef, 0xbd, 0xfc, 0x0c, 0xcc, 0x85, 0x5e, 0x60, 0xda, 0x47, 0x97, 0x7e, 0x16, + 0x1e, 0x9a, 0x48, 0x2d, 0xbd, 0x00, 0x4b, 0x03, 0x53, 0x37, 0x3d, 0xe4, 0xd8, 0x0e, 0xc2, 0x11, + 0x4b, 0x1f, 0x55, 0xf8, 0xd7, 0xd9, 0x63, 0x62, 0x6e, 0x2f, 0xa8, 0x4d, 0x59, 0xe4, 0xc5, 0xc1, + 0xb8, 0xf0, 0xc9, 0x4c, 0xfa, 0x87, 0xb3, 0xe2, 0xbd, 0x7b, 0xf7, 0xee, 0xc5, 0x4a, 0x5f, 0x4a, + 0xc1, 0xd2, 0xa4, 0x3d, 0x33, 0x71, 0xfb, 0x9e, 0x82, 0x94, 0x39, 0xe8, 0xef, 0x23, 0x87, 0x38, + 0x29, 0x29, 0xb3, 0x91, 0x54, 0x85, 0xa4, 0xa1, 0xee, 0x23, 0xa3, 0x90, 0x58, 0x11, 0x56, 0xf3, + 0x17, 0x9e, 0x9a, 0x6a, 0x57, 0x96, 0xb7, 0x30, 0x44, 0xa6, 0x48, 0xe9, 0x59, 0x48, 0xb0, 0x14, + 0x8d, 0x19, 0x9e, 0x9c, 0x8e, 0x01, 0xef, 0x25, 0x99, 0xe0, 0xa4, 0x87, 0x21, 0x83, 0xff, 0xd2, + 0xd8, 0x48, 0x11, 0x9b, 0xd3, 0x58, 0x80, 0xe3, 0x42, 0x5a, 0x86, 0x34, 0xd9, 0x26, 0x1d, 0xc4, + 0x4b, 0x9b, 0x3f, 0xc6, 0x81, 0xd5, 0x41, 0x5d, 0x75, 0x60, 0x78, 0xca, 0x6d, 0xd5, 0x18, 0x20, + 0x12, 0xf0, 0x19, 0x39, 0xc7, 0x84, 0x9f, 0xc5, 0x32, 0xe9, 0x2c, 0x64, 0xe9, 0xae, 0xd2, 0xcd, + 0x0e, 0x7a, 0x99, 0x64, 0xcf, 0xa4, 0x4c, 0x37, 0x5a, 0x03, 0x4b, 0xf0, 0xe3, 0x6f, 0xba, 0x96, + 0xc9, 0x43, 0x93, 0x3c, 0x02, 0x0b, 0xc8, 0xe3, 0x9f, 0x19, 0x4d, 0xdc, 0x8f, 0x4c, 0x7e, 0xbd, + 0xd1, 0x98, 0x2a, 0x7d, 0x3b, 0x06, 0x09, 0x92, 0x2f, 0xe6, 0x21, 0xbb, 0xfb, 0x62, 0xab, 0xae, + 0x6c, 0x34, 0xf7, 0xd6, 0xb7, 0xea, 0xa2, 0x20, 0xe5, 0x01, 0x88, 0xe0, 0xfa, 0x56, 0xb3, 0xba, + 0x2b, 0xc6, 0xfc, 0x71, 0x63, 0x67, 0xf7, 0xf2, 0xd3, 0x62, 0xdc, 0x07, 0xec, 0x51, 0x41, 0x22, + 0xa8, 0x70, 0xf1, 0x82, 0x98, 0x94, 0x44, 0xc8, 0x51, 0x82, 0xc6, 0x0b, 0xf5, 0x8d, 0xcb, 0x4f, + 0x8b, 0xa9, 0xb0, 0xe4, 0xe2, 0x05, 0x71, 0x56, 0x9a, 0x83, 0x0c, 0x91, 0xac, 0x37, 0x9b, 0x5b, + 0x62, 0xda, 0xe7, 0x6c, 0xef, 0xca, 0x8d, 0x9d, 0x4d, 0x31, 0xe3, 0x73, 0x6e, 0xca, 0xcd, 0xbd, + 0x96, 0x08, 0x3e, 0xc3, 0x76, 0xbd, 0xdd, 0xae, 0x6e, 0xd6, 0xc5, 0xac, 0xaf, 0xb1, 0xfe, 0xe2, + 0x6e, 0xbd, 0x2d, 0xe6, 0x42, 0x66, 0x5d, 0xbc, 0x20, 0xce, 0xf9, 0x8f, 0xa8, 0xef, 0xec, 0x6d, + 0x8b, 0x79, 0x69, 0x01, 0xe6, 0xe8, 0x23, 0xb8, 0x11, 0xf3, 0x23, 0xa2, 0xcb, 0x4f, 0x8b, 0xe2, + 0xd0, 0x10, 0xca, 0xb2, 0x10, 0x12, 0x5c, 0x7e, 0x5a, 0x94, 0x4a, 0x35, 0x48, 0x92, 0xe8, 0x92, + 0x24, 0xc8, 0x6f, 0x55, 0xd7, 0xeb, 0x5b, 0x4a, 0xb3, 0xb5, 0xdb, 0x68, 0xee, 0x54, 0xb7, 0x44, + 0x61, 0x28, 0x93, 0xeb, 0x9f, 0xd9, 0x6b, 0xc8, 0xf5, 0x0d, 0x31, 0x16, 0x94, 0xb5, 0xea, 0xd5, + 0xdd, 0xfa, 0x86, 0x18, 0x2f, 0x69, 0xb0, 0x34, 0x29, 0x4f, 0x4e, 0xdc, 0x19, 0x81, 0x25, 0x8e, + 0x1d, 0xb3, 0xc4, 0x84, 0x6b, 0x6c, 0x89, 0x7f, 0x10, 0x83, 0xc5, 0x09, 0xb5, 0x62, 0xe2, 0x43, + 0x9e, 0x83, 0x24, 0x0d, 0x51, 0x5a, 0x3d, 0x9f, 0x98, 0x58, 0x74, 0x48, 0xc0, 0x8e, 0x55, 0x50, + 0x82, 0x0b, 0x76, 0x10, 0xf1, 0x63, 0x3a, 0x08, 0x4c, 0x31, 0x96, 0xd3, 0x7f, 0x66, 0x2c, 0xa7, + 0xd3, 0xb2, 0x77, 0x79, 0x9a, 0xb2, 0x47, 0x64, 0x27, 0xcb, 0xed, 0xc9, 0x09, 0xb9, 0xfd, 0x1a, + 0x2c, 0x8c, 0x11, 0x4d, 0x9d, 0x63, 0x5f, 0x11, 0xa0, 0x70, 0x9c, 0x73, 0x22, 0x32, 0x5d, 0x2c, + 0x94, 0xe9, 0xae, 0x8d, 0x7a, 0xf0, 0xdc, 0xf1, 0x8b, 0x30, 0xb6, 0xd6, 0x6f, 0x08, 0x70, 0x6a, + 0x72, 0xa7, 0x38, 0xd1, 0x86, 0x67, 0x21, 0xd5, 0x47, 0xde, 0x81, 0xc5, 0xbb, 0xa5, 0x8f, 0x4f, + 0xa8, 0xc1, 0x78, 0x7a, 0x74, 0xb1, 0x19, 0x2a, 0x58, 0xc4, 0xe3, 0xc7, 0xb5, 0x7b, 0xd4, 0x9a, + 0x31, 0x4b, 0xbf, 0x10, 0x83, 0x87, 0x26, 0x92, 0x4f, 0x34, 0xf4, 0x11, 0x00, 0xdd, 0xb4, 0x07, + 0x1e, 0xed, 0x88, 0x68, 0x82, 0xcd, 0x10, 0x09, 0x49, 0x5e, 0x38, 0x79, 0x0e, 0x3c, 0x7f, 0x3e, + 0x4e, 0xe6, 0x81, 0x8a, 0x88, 0xc2, 0x95, 0xa1, 0xa1, 0x09, 0x62, 0x68, 0xf1, 0x98, 0x37, 0x1d, + 0x0b, 0xcc, 0x4f, 0x82, 0xa8, 0x19, 0x3a, 0x32, 0x3d, 0xc5, 0xf5, 0x1c, 0xa4, 0xf6, 0x75, 0xb3, + 0x47, 0x2a, 0x48, 0xba, 0x92, 0xec, 0xaa, 0x86, 0x8b, 0xe4, 0x79, 0x3a, 0xdd, 0xe6, 0xb3, 0x18, + 0x41, 0x02, 0xc8, 0x09, 0x20, 0x52, 0x21, 0x04, 0x9d, 0xf6, 0x11, 0xa5, 0x6f, 0xa6, 0x21, 0x1b, + 0xe8, 0xab, 0xa5, 0x73, 0x90, 0xbb, 0xa9, 0xde, 0x56, 0x15, 0x7e, 0x56, 0xa2, 0x9e, 0xc8, 0x62, + 0x59, 0x8b, 0x9d, 0x97, 0x3e, 0x09, 0x4b, 0x44, 0xc5, 0x1a, 0x78, 0xc8, 0x51, 0x34, 0x43, 0x75, + 0x5d, 0xe2, 0xb4, 0x34, 0x51, 0x95, 0xf0, 0x5c, 0x13, 0x4f, 0xd5, 0xf8, 0x8c, 0x74, 0x09, 0x16, + 0x09, 0xa2, 0x3f, 0x30, 0x3c, 0xdd, 0x36, 0x90, 0x82, 0x4f, 0x6f, 0x2e, 0xa9, 0x24, 0xbe, 0x65, + 0x0b, 0x58, 0x63, 0x9b, 0x29, 0x60, 0x8b, 0x5c, 0x69, 0x03, 0x1e, 0x21, 0xb0, 0x1e, 0x32, 0x91, + 0xa3, 0x7a, 0x48, 0x41, 0x9f, 0x1f, 0xa8, 0x86, 0xab, 0xa8, 0x66, 0x47, 0x39, 0x50, 0xdd, 0x83, + 0xc2, 0x12, 0x26, 0x58, 0x8f, 0x15, 0x04, 0xf9, 0x0c, 0x56, 0xdc, 0x64, 0x7a, 0x75, 0xa2, 0x56, + 0x35, 0x3b, 0x9f, 0x56, 0xdd, 0x03, 0xa9, 0x02, 0xa7, 0x08, 0x8b, 0xeb, 0x39, 0xba, 0xd9, 0x53, + 0xb4, 0x03, 0xa4, 0xdd, 0x52, 0x06, 0x5e, 0xf7, 0x4a, 0xe1, 0xe1, 0xe0, 0xf3, 0x89, 0x85, 0x6d, + 0xa2, 0x53, 0xc3, 0x2a, 0x7b, 0x5e, 0xf7, 0x8a, 0xd4, 0x86, 0x1c, 0x5e, 0x8c, 0xbe, 0x7e, 0x17, + 0x29, 0x5d, 0xcb, 0x21, 0xa5, 0x31, 0x3f, 0x21, 0x35, 0x05, 0x3c, 0x58, 0x6e, 0x32, 0xc0, 0xb6, + 0xd5, 0x41, 0x95, 0x64, 0xbb, 0x55, 0xaf, 0x6f, 0xc8, 0x59, 0xce, 0x72, 0xdd, 0x72, 0x70, 0x40, + 0xf5, 0x2c, 0xdf, 0xc1, 0x59, 0x1a, 0x50, 0x3d, 0x8b, 0xbb, 0xf7, 0x12, 0x2c, 0x6a, 0x1a, 0x7d, + 0x67, 0x5d, 0x53, 0xd8, 0x19, 0xcb, 0x2d, 0x88, 0x21, 0x67, 0x69, 0xda, 0x26, 0x55, 0x60, 0x31, + 0xee, 0x4a, 0x57, 0xe1, 0xa1, 0xa1, 0xb3, 0x82, 0xc0, 0x85, 0xb1, 0xb7, 0x1c, 0x85, 0x5e, 0x82, + 0x45, 0xfb, 0x70, 0x1c, 0x28, 0x85, 0x9e, 0x68, 0x1f, 0x8e, 0xc2, 0x9e, 0x81, 0x25, 0xfb, 0xc0, + 0x1e, 0xc7, 0x3d, 0x19, 0xc4, 0x49, 0xf6, 0x81, 0x3d, 0x0a, 0x7c, 0x9c, 0x1c, 0xb8, 0x1d, 0xa4, + 0xa9, 0x1e, 0xea, 0x14, 0x4e, 0x07, 0xd5, 0x03, 0x13, 0xd2, 0x1a, 0x88, 0x9a, 0xa6, 0x20, 0x53, + 0xdd, 0x37, 0x90, 0xa2, 0x3a, 0xc8, 0x54, 0xdd, 0xc2, 0xd9, 0xa0, 0x72, 0x5e, 0xd3, 0xea, 0x64, + 0xb6, 0x4a, 0x26, 0xa5, 0x27, 0x61, 0xc1, 0xda, 0xbf, 0xa9, 0xd1, 0x90, 0x54, 0x6c, 0x07, 0x75, + 0xf5, 0x97, 0x0b, 0x8f, 0x11, 0xff, 0xce, 0xe3, 0x09, 0x12, 0x90, 0x2d, 0x22, 0x96, 0x9e, 0x00, + 0x51, 0x73, 0x0f, 0x54, 0xc7, 0x26, 0x39, 0xd9, 0xb5, 0x55, 0x0d, 0x15, 0x1e, 0xa7, 0xaa, 0x54, + 0xbe, 0xc3, 0xc5, 0x78, 0x4b, 0xb8, 0x77, 0xf4, 0xae, 0xc7, 0x19, 0xcf, 0xd3, 0x2d, 0x41, 0x64, + 0x8c, 0x6d, 0x15, 0x44, 0xec, 0x8a, 0xd0, 0x83, 0x57, 0x89, 0x5a, 0xde, 0x3e, 0xb0, 0x83, 0xcf, + 0x7d, 0x14, 0xe6, 0xb0, 0xe6, 0xf0, 0xa1, 0x4f, 0xd0, 0x86, 0xcc, 0x3e, 0x08, 0x3c, 0xf1, 0x43, + 0xeb, 0x8d, 0x4b, 0x15, 0xc8, 0x05, 0xe3, 0x53, 0xca, 0x00, 0x8d, 0x50, 0x51, 0xc0, 0xcd, 0x4a, + 0xad, 0xb9, 0x81, 0xdb, 0x8c, 0x97, 0xea, 0x62, 0x0c, 0xb7, 0x3b, 0x5b, 0x8d, 0xdd, 0xba, 0x22, + 0xef, 0xed, 0xec, 0x36, 0xb6, 0xeb, 0x62, 0x3c, 0xd8, 0x57, 0x7f, 0x37, 0x06, 0xf9, 0xf0, 0x11, + 0x49, 0xfa, 0xff, 0x70, 0x9a, 0xdf, 0x67, 0xb8, 0xc8, 0x53, 0xee, 0xe8, 0x0e, 0xd9, 0x32, 0x7d, + 0x95, 0x96, 0x2f, 0x7f, 0xd1, 0x96, 0x98, 0x56, 0x1b, 0x79, 0xcf, 0xeb, 0x0e, 0xde, 0x10, 0x7d, + 0xd5, 0x93, 0xb6, 0xe0, 0xac, 0x69, 0x29, 0xae, 0xa7, 0x9a, 0x1d, 0xd5, 0xe9, 0x28, 0xc3, 0x9b, + 0x24, 0x45, 0xd5, 0x34, 0xe4, 0xba, 0x16, 0x2d, 0x55, 0x3e, 0xcb, 0xc7, 0x4c, 0xab, 0xcd, 0x94, + 0x87, 0x39, 0xbc, 0xca, 0x54, 0x47, 0x02, 0x2c, 0x7e, 0x5c, 0x80, 0x3d, 0x0c, 0x99, 0xbe, 0x6a, + 0x2b, 0xc8, 0xf4, 0x9c, 0x43, 0xd2, 0x18, 0xa7, 0xe5, 0x74, 0x5f, 0xb5, 0xeb, 0x78, 0xfc, 0xd1, + 0x9c, 0x4f, 0xfe, 0x25, 0x0e, 0xb9, 0x60, 0x73, 0x8c, 0xcf, 0x1a, 0x1a, 0xa9, 0x23, 0x02, 0xc9, + 0x34, 0x8f, 0x3e, 0xb0, 0x95, 0x2e, 0xd7, 0x70, 0x81, 0xa9, 0xa4, 0x68, 0xcb, 0x2a, 0x53, 0x24, + 0x2e, 0xee, 0x38, 0xb7, 0x20, 0xda, 0x22, 0xa4, 0x65, 0x36, 0x92, 0x36, 0x21, 0x75, 0xd3, 0x25, + 0xdc, 0x29, 0xc2, 0xfd, 0xd8, 0x83, 0xb9, 0x6f, 0xb4, 0x09, 0x79, 0xe6, 0x46, 0x5b, 0xd9, 0x69, + 0xca, 0xdb, 0xd5, 0x2d, 0x99, 0xc1, 0xa5, 0x33, 0x90, 0x30, 0xd4, 0xbb, 0x87, 0xe1, 0x52, 0x44, + 0x44, 0xd3, 0x3a, 0xfe, 0x0c, 0x24, 0xee, 0x20, 0xf5, 0x56, 0xb8, 0x00, 0x10, 0xd1, 0x87, 0x18, + 0xfa, 0x6b, 0x90, 0x24, 0xfe, 0x92, 0x00, 0x98, 0xc7, 0xc4, 0x19, 0x29, 0x0d, 0x89, 0x5a, 0x53, + 0xc6, 0xe1, 0x2f, 0x42, 0x8e, 0x4a, 0x95, 0x56, 0xa3, 0x5e, 0xab, 0x8b, 0xb1, 0xd2, 0x25, 0x48, + 0x51, 0x27, 0xe0, 0xad, 0xe1, 0xbb, 0x41, 0x9c, 0x61, 0x43, 0xc6, 0x21, 0xf0, 0xd9, 0xbd, 0xed, + 0xf5, 0xba, 0x2c, 0xc6, 0x82, 0xcb, 0xeb, 0x42, 0x2e, 0xd8, 0x17, 0x7f, 0x34, 0x31, 0xf5, 0x77, + 0x02, 0x64, 0x03, 0x7d, 0x2e, 0x6e, 0x50, 0x54, 0xc3, 0xb0, 0xee, 0x28, 0xaa, 0xa1, 0xab, 0x2e, + 0x0b, 0x0a, 0x20, 0xa2, 0x2a, 0x96, 0x4c, 0xbb, 0x68, 0x1f, 0x89, 0xf1, 0xaf, 0x0b, 0x20, 0x8e, + 0xb6, 0x98, 0x23, 0x06, 0x0a, 0x3f, 0x51, 0x03, 0x5f, 0x13, 0x20, 0x1f, 0xee, 0x2b, 0x47, 0xcc, + 0x3b, 0xf7, 0x13, 0x35, 0xef, 0xad, 0x18, 0xcc, 0x85, 0xba, 0xc9, 0x69, 0xad, 0xfb, 0x3c, 0x2c, + 0xe8, 0x1d, 0xd4, 0xb7, 0x2d, 0x0f, 0x99, 0xda, 0xa1, 0x62, 0xa0, 0xdb, 0xc8, 0x28, 0x94, 0x48, + 0xa2, 0x58, 0x7b, 0x70, 0xbf, 0x5a, 0x6e, 0x0c, 0x71, 0x5b, 0x18, 0x56, 0x59, 0x6c, 0x6c, 0xd4, + 0xb7, 0x5b, 0xcd, 0xdd, 0xfa, 0x4e, 0xed, 0x45, 0x65, 0x6f, 0xe7, 0xa7, 0x77, 0x9a, 0xcf, 0xef, + 0xc8, 0xa2, 0x3e, 0xa2, 0xf6, 0x21, 0x6e, 0xf5, 0x16, 0x88, 0xa3, 0x46, 0x49, 0xa7, 0x61, 0x92, + 0x59, 0xe2, 0x8c, 0xb4, 0x08, 0xf3, 0x3b, 0x4d, 0xa5, 0xdd, 0xd8, 0xa8, 0x2b, 0xf5, 0xeb, 0xd7, + 0xeb, 0xb5, 0xdd, 0x36, 0xbd, 0x81, 0xf0, 0xb5, 0x77, 0xc3, 0x9b, 0xfa, 0xd5, 0x38, 0x2c, 0x4e, + 0xb0, 0x44, 0xaa, 0xb2, 0xb3, 0x03, 0x3d, 0xce, 0x7c, 0x62, 0x1a, 0xeb, 0xcb, 0xb8, 0xe4, 0xb7, + 0x54, 0xc7, 0x63, 0x47, 0x8d, 0x27, 0x00, 0x7b, 0xc9, 0xf4, 0xf4, 0xae, 0x8e, 0x1c, 0x76, 0x61, + 0x43, 0x0f, 0x14, 0xf3, 0x43, 0x39, 0xbd, 0xb3, 0xf9, 0x7f, 0x20, 0xd9, 0x96, 0xab, 0x7b, 0xfa, + 0x6d, 0xa4, 0xe8, 0x26, 0xbf, 0xdd, 0xc1, 0x07, 0x8c, 0x84, 0x2c, 0xf2, 0x99, 0x86, 0xe9, 0xf9, + 0xda, 0x26, 0xea, 0xa9, 0x23, 0xda, 0x38, 0x81, 0xc7, 0x65, 0x91, 0xcf, 0xf8, 0xda, 0xe7, 0x20, + 0xd7, 0xb1, 0x06, 0xb8, 0xeb, 0xa2, 0x7a, 0xb8, 0x5e, 0x08, 0x72, 0x96, 0xca, 0x7c, 0x15, 0xd6, + 0x4f, 0x0f, 0xaf, 0x95, 0x72, 0x72, 0x96, 0xca, 0xa8, 0xca, 0x79, 0x98, 0x57, 0x7b, 0x3d, 0x07, + 0x93, 0x73, 0x22, 0x7a, 0x42, 0xc8, 0xfb, 0x62, 0xa2, 0xb8, 0x7c, 0x03, 0xd2, 0xdc, 0x0f, 0xb8, + 0x24, 0x63, 0x4f, 0x28, 0x36, 0x3d, 0xf6, 0xc6, 0x56, 0x33, 0x72, 0xda, 0xe4, 0x93, 0xe7, 0x20, + 0xa7, 0xbb, 0xca, 0xf0, 0x96, 0x3c, 0xb6, 0x12, 0x5b, 0x4d, 0xcb, 0x59, 0xdd, 0xf5, 0x6f, 0x18, + 0x4b, 0x6f, 0xc4, 0x20, 0x1f, 0xbe, 0xe5, 0x97, 0x36, 0x20, 0x6d, 0x58, 0x9a, 0x4a, 0x42, 0x8b, + 0x7e, 0x62, 0x5a, 0x8d, 0xf8, 0x30, 0x50, 0xde, 0x62, 0xfa, 0xb2, 0x8f, 0x5c, 0xfe, 0x27, 0x01, + 0xd2, 0x5c, 0x2c, 0x9d, 0x82, 0x84, 0xad, 0x7a, 0x07, 0x84, 0x2e, 0xb9, 0x1e, 0x13, 0x05, 0x99, + 0x8c, 0xb1, 0xdc, 0xb5, 0x55, 0x93, 0x84, 0x00, 0x93, 0xe3, 0x31, 0x5e, 0x57, 0x03, 0xa9, 0x1d, + 0x72, 0xfc, 0xb0, 0xfa, 0x7d, 0x64, 0x7a, 0x2e, 0x5f, 0x57, 0x26, 0xaf, 0x31, 0xb1, 0xf4, 0x14, + 0x2c, 0x78, 0x8e, 0xaa, 0x1b, 0x21, 0xdd, 0x04, 0xd1, 0x15, 0xf9, 0x84, 0xaf, 0x5c, 0x81, 0x33, + 0x9c, 0xb7, 0x83, 0x3c, 0x55, 0x3b, 0x40, 0x9d, 0x21, 0x28, 0x45, 0xae, 0x19, 0x4e, 0x33, 0x85, + 0x0d, 0x36, 0xcf, 0xb1, 0xa5, 0xef, 0x0b, 0xb0, 0xc0, 0x0f, 0x4c, 0x1d, 0xdf, 0x59, 0xdb, 0x00, + 0xaa, 0x69, 0x5a, 0x5e, 0xd0, 0x5d, 0xe3, 0xa1, 0x3c, 0x86, 0x2b, 0x57, 0x7d, 0x90, 0x1c, 0x20, + 0x58, 0xee, 0x03, 0x0c, 0x67, 0x8e, 0x75, 0xdb, 0x59, 0xc8, 0xb2, 0x4f, 0x38, 0xe4, 0x3b, 0x20, + 0x3d, 0x62, 0x03, 0x15, 0xe1, 0x93, 0x95, 0xb4, 0x04, 0xc9, 0x7d, 0xd4, 0xd3, 0x4d, 0x76, 0x31, + 0x4b, 0x07, 0xfc, 0x22, 0x24, 0xe1, 0x5f, 0x84, 0xac, 0x7f, 0x0e, 0x16, 0x35, 0xab, 0x3f, 0x6a, + 0xee, 0xba, 0x38, 0x72, 0xcc, 0x77, 0x3f, 0x2d, 0xbc, 0x04, 0xc3, 0x16, 0xf3, 0x7d, 0x41, 0xf8, + 0xc3, 0x58, 0x7c, 0xb3, 0xb5, 0xfe, 0xb5, 0xd8, 0xf2, 0x26, 0x85, 0xb6, 0xf8, 0x9b, 0xca, 0xa8, + 0x6b, 0x20, 0x0d, 0x5b, 0x0f, 0x5f, 0x3c, 0x0f, 0x9f, 0xe8, 0xe9, 0xde, 0xc1, 0x60, 0xbf, 0xac, + 0x59, 0xfd, 0xb5, 0x9e, 0xd5, 0xb3, 0x86, 0x9f, 0x3e, 0xf1, 0x88, 0x0c, 0xc8, 0x7f, 0xec, 0xf3, + 0x67, 0xc6, 0x97, 0x2e, 0x47, 0x7e, 0x2b, 0xad, 0xec, 0xc0, 0x22, 0x53, 0x56, 0xc8, 0xf7, 0x17, + 0x7a, 0x8a, 0x90, 0x1e, 0x78, 0x87, 0x55, 0xf8, 0xc6, 0xdb, 0xa4, 0x5c, 0xcb, 0x0b, 0x0c, 0x8a, + 0xe7, 0xe8, 0x41, 0xa3, 0x22, 0xc3, 0x43, 0x21, 0x3e, 0xba, 0x35, 0x91, 0x13, 0xc1, 0xf8, 0x5d, + 0xc6, 0xb8, 0x18, 0x60, 0x6c, 0x33, 0x68, 0xa5, 0x06, 0x73, 0x27, 0xe1, 0xfa, 0x07, 0xc6, 0x95, + 0x43, 0x41, 0x92, 0x4d, 0x98, 0x27, 0x24, 0xda, 0xc0, 0xf5, 0xac, 0x3e, 0xc9, 0x7b, 0x0f, 0xa6, + 0xf9, 0xc7, 0xb7, 0xe9, 0x5e, 0xc9, 0x63, 0x58, 0xcd, 0x47, 0x55, 0x2a, 0x40, 0x3e, 0x39, 0x75, + 0x90, 0x66, 0x44, 0x30, 0xbc, 0xc9, 0x0c, 0xf1, 0xf5, 0x2b, 0x9f, 0x85, 0x25, 0xfc, 0x3f, 0x49, + 0x4b, 0x41, 0x4b, 0xa2, 0x2f, 0xbc, 0x0a, 0xdf, 0x7f, 0x85, 0x6e, 0xc7, 0x45, 0x9f, 0x20, 0x60, + 0x53, 0x60, 0x15, 0x7b, 0xc8, 0xf3, 0x90, 0xe3, 0x2a, 0xaa, 0x31, 0xc9, 0xbc, 0xc0, 0x8d, 0x41, + 0xe1, 0xcb, 0xef, 0x84, 0x57, 0x71, 0x93, 0x22, 0xab, 0x86, 0x51, 0xd9, 0x83, 0xd3, 0x13, 0xa2, + 0x62, 0x0a, 0xce, 0x57, 0x19, 0xe7, 0xd2, 0x58, 0x64, 0x60, 0xda, 0x16, 0x70, 0xb9, 0xbf, 0x96, + 0x53, 0x70, 0xfe, 0x2e, 0xe3, 0x94, 0x18, 0x96, 0x2f, 0x29, 0x66, 0xbc, 0x01, 0x0b, 0xb7, 0x91, + 0xb3, 0x6f, 0xb9, 0xec, 0x96, 0x66, 0x0a, 0xba, 0xd7, 0x18, 0xdd, 0x3c, 0x03, 0x92, 0x6b, 0x1b, + 0xcc, 0x75, 0x15, 0xd2, 0x5d, 0x55, 0x43, 0x53, 0x50, 0x7c, 0x85, 0x51, 0xcc, 0x62, 0x7d, 0x0c, + 0xad, 0x42, 0xae, 0x67, 0xb1, 0xca, 0x14, 0x0d, 0x7f, 0x9d, 0xc1, 0xb3, 0x1c, 0xc3, 0x28, 0x6c, + 0xcb, 0x1e, 0x18, 0xb8, 0x6c, 0x45, 0x53, 0xfc, 0x1e, 0xa7, 0xe0, 0x18, 0x46, 0x71, 0x02, 0xb7, + 0xfe, 0x3e, 0xa7, 0x70, 0x03, 0xfe, 0x7c, 0x0e, 0xb2, 0x96, 0x69, 0x1c, 0x5a, 0xe6, 0x34, 0x46, + 0xfc, 0x01, 0x63, 0x00, 0x06, 0xc1, 0x04, 0xd7, 0x20, 0x33, 0xed, 0x42, 0xfc, 0xd1, 0x3b, 0x7c, + 0x7b, 0xf0, 0x15, 0xd8, 0x84, 0x79, 0x9e, 0xa0, 0x74, 0xcb, 0x9c, 0x82, 0xe2, 0x8f, 0x19, 0x45, + 0x3e, 0x00, 0x63, 0xaf, 0xe1, 0x21, 0xd7, 0xeb, 0xa1, 0x69, 0x48, 0xde, 0xe0, 0xaf, 0xc1, 0x20, + 0xcc, 0x95, 0xfb, 0xc8, 0xd4, 0x0e, 0xa6, 0x63, 0xf8, 0x2a, 0x77, 0x25, 0xc7, 0x60, 0x8a, 0x1a, + 0xcc, 0xf5, 0x55, 0xc7, 0x3d, 0x50, 0x8d, 0xa9, 0x96, 0xe3, 0x4f, 0x18, 0x47, 0xce, 0x07, 0x31, + 0x8f, 0x0c, 0xcc, 0x93, 0xd0, 0x7c, 0x8d, 0x7b, 0x24, 0x00, 0x63, 0x5b, 0xcf, 0xf5, 0xc8, 0x95, + 0xd6, 0x49, 0xd8, 0xfe, 0x94, 0x6f, 0x3d, 0x8a, 0xdd, 0x0e, 0x32, 0x5e, 0x83, 0x8c, 0xab, 0xdf, + 0x9d, 0x8a, 0xe6, 0xcf, 0xf8, 0x4a, 0x13, 0x00, 0x06, 0xbf, 0x08, 0x67, 0x26, 0x96, 0x89, 0x29, + 0xc8, 0xfe, 0x9c, 0x91, 0x9d, 0x9a, 0x50, 0x2a, 0x58, 0x4a, 0x38, 0x29, 0xe5, 0x5f, 0xf0, 0x94, + 0x80, 0x46, 0xb8, 0x5a, 0xf8, 0xac, 0xe0, 0xaa, 0xdd, 0x93, 0x79, 0xed, 0x2f, 0xb9, 0xd7, 0x28, + 0x36, 0xe4, 0xb5, 0x5d, 0x38, 0xc5, 0x18, 0x4f, 0xb6, 0xae, 0x5f, 0xe7, 0x89, 0x95, 0xa2, 0xf7, + 0xc2, 0xab, 0xfb, 0x39, 0x58, 0xf6, 0xdd, 0xc9, 0x9b, 0x52, 0x57, 0xe9, 0xab, 0xf6, 0x14, 0xcc, + 0xdf, 0x60, 0xcc, 0x3c, 0xe3, 0xfb, 0x5d, 0xad, 0xbb, 0xad, 0xda, 0x98, 0xfc, 0x05, 0x28, 0x70, + 0xf2, 0x81, 0xe9, 0x20, 0xcd, 0xea, 0x99, 0xfa, 0x5d, 0xd4, 0x99, 0x82, 0xfa, 0xaf, 0x46, 0x96, + 0x6a, 0x2f, 0x00, 0xc7, 0xcc, 0x0d, 0x10, 0xfd, 0x5e, 0x45, 0xd1, 0xfb, 0xb6, 0xe5, 0x78, 0x11, + 0x8c, 0xdf, 0xe4, 0x2b, 0xe5, 0xe3, 0x1a, 0x04, 0x56, 0xa9, 0x43, 0x9e, 0x0c, 0xa7, 0x0d, 0xc9, + 0xbf, 0x66, 0x44, 0x73, 0x43, 0x14, 0x4b, 0x1c, 0x9a, 0xd5, 0xb7, 0x55, 0x67, 0x9a, 0xfc, 0xf7, + 0x2d, 0x9e, 0x38, 0x18, 0x84, 0x25, 0x0e, 0xef, 0xd0, 0x46, 0xb8, 0xda, 0x4f, 0xc1, 0xf0, 0x6d, + 0x9e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, 0x61, 0x0a, 0x8a, 0xbf, 0xe1, 0x14, 0x1c, 0x83, 0x29, + 0x3e, 0x33, 0x2c, 0xb4, 0x0e, 0xea, 0xe9, 0xae, 0xe7, 0xd0, 0x56, 0xf8, 0xc1, 0x54, 0xdf, 0x79, + 0x27, 0xdc, 0x84, 0xc9, 0x01, 0x68, 0xe5, 0x06, 0xcc, 0x8f, 0xb4, 0x18, 0x52, 0xd4, 0xef, 0x57, + 0x0a, 0x3f, 0xff, 0x1e, 0x4b, 0x46, 0xe1, 0x0e, 0xa3, 0xb2, 0x85, 0xd7, 0x3d, 0xdc, 0x07, 0x44, + 0x93, 0xbd, 0xf2, 0x9e, 0xbf, 0xf4, 0xa1, 0x36, 0xa0, 0x72, 0x1d, 0xe6, 0x42, 0x3d, 0x40, 0x34, + 0xd5, 0x2f, 0x30, 0xaa, 0x5c, 0xb0, 0x05, 0xa8, 0x5c, 0x82, 0x04, 0xae, 0xe7, 0xd1, 0xf0, 0x5f, + 0x64, 0x70, 0xa2, 0x5e, 0xf9, 0x14, 0xa4, 0x79, 0x1d, 0x8f, 0x86, 0xfe, 0x12, 0x83, 0xfa, 0x10, + 0x0c, 0xe7, 0x35, 0x3c, 0x1a, 0xfe, 0xcb, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0xbd, 0x0b, 0xff, 0xfe, + 0x57, 0x12, 0x2c, 0x0f, 0x73, 0xdf, 0x5d, 0x83, 0x59, 0x56, 0xbc, 0xa3, 0xd1, 0x5f, 0x60, 0x0f, + 0xe7, 0x88, 0xca, 0x33, 0x90, 0x9c, 0xd2, 0xe1, 0xbf, 0xca, 0xa0, 0x54, 0xbf, 0x52, 0x83, 0x6c, + 0xa0, 0x60, 0x47, 0xc3, 0x7f, 0x8d, 0xc1, 0x83, 0x28, 0x6c, 0x3a, 0x2b, 0xd8, 0xd1, 0x04, 0xbf, + 0xce, 0x4d, 0x67, 0x08, 0xec, 0x36, 0x5e, 0xab, 0xa3, 0xd1, 0xbf, 0xc1, 0xbd, 0xce, 0x21, 0x95, + 0xe7, 0x20, 0xe3, 0xe7, 0xdf, 0x68, 0xfc, 0x6f, 0x32, 0xfc, 0x10, 0x83, 0x3d, 0x10, 0xc8, 0xff, + 0xd1, 0x14, 0xbf, 0xc5, 0x3d, 0x10, 0x40, 0xe1, 0x6d, 0x34, 0x5a, 0xd3, 0xa3, 0x99, 0x7e, 0x9b, + 0x6f, 0xa3, 0x91, 0x92, 0x8e, 0x57, 0x93, 0xa4, 0xc1, 0x68, 0x8a, 0xdf, 0xe1, 0xab, 0x49, 0xf4, + 0xb1, 0x19, 0xa3, 0x45, 0x32, 0x9a, 0xe3, 0x8b, 0xdc, 0x8c, 0x91, 0x1a, 0x59, 0x69, 0x81, 0x34, + 0x5e, 0x20, 0xa3, 0xf9, 0xbe, 0xc4, 0xf8, 0x16, 0xc6, 0xea, 0x63, 0xe5, 0x79, 0x38, 0x35, 0xb9, + 0x38, 0x46, 0xb3, 0x7e, 0xf9, 0xbd, 0x91, 0xe3, 0x4c, 0xb0, 0x36, 0x56, 0x76, 0x87, 0x59, 0x36, + 0x58, 0x18, 0xa3, 0x69, 0x5f, 0x7d, 0x2f, 0x9c, 0x68, 0x83, 0x75, 0xb1, 0x52, 0x05, 0x18, 0xd6, + 0xa4, 0x68, 0xae, 0xd7, 0x18, 0x57, 0x00, 0x84, 0xb7, 0x06, 0x2b, 0x49, 0xd1, 0xf8, 0xaf, 0xf0, + 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0x6a, 0x14, 0x8d, 0x7e, 0x9d, 0x6f, 0x0d, 0x0e, 0xa9, 0x5c, + 0x83, 0xb4, 0x39, 0x30, 0x0c, 0x1c, 0x5b, 0xd2, 0x83, 0x7f, 0x92, 0x55, 0xf8, 0xb7, 0x0f, 0x18, + 0x98, 0x03, 0x2a, 0x97, 0x20, 0x89, 0xfa, 0xfb, 0xa8, 0x13, 0x85, 0xfc, 0xf7, 0x0f, 0x78, 0x3e, + 0xc1, 0xda, 0x95, 0xe7, 0x00, 0xe8, 0x61, 0x9a, 0x7c, 0x28, 0x8a, 0xc0, 0xfe, 0xc7, 0x07, 0xec, + 0xc7, 0x12, 0x43, 0xc8, 0x90, 0x80, 0xfe, 0xf4, 0xe2, 0xc1, 0x04, 0xef, 0x84, 0x09, 0xc8, 0x01, + 0xfc, 0x2a, 0xcc, 0xde, 0x74, 0x2d, 0xd3, 0x53, 0x7b, 0x51, 0xe8, 0xff, 0x64, 0x68, 0xae, 0x8f, + 0x1d, 0xd6, 0xb7, 0x1c, 0xe4, 0xa9, 0x3d, 0x37, 0x0a, 0xfb, 0x5f, 0x0c, 0xeb, 0x03, 0x30, 0x58, + 0x53, 0x5d, 0x6f, 0x9a, 0xf7, 0xfe, 0x11, 0x07, 0x73, 0x00, 0x36, 0x1a, 0xff, 0x7f, 0x0b, 0x1d, + 0x46, 0x61, 0xdf, 0xe5, 0x46, 0x33, 0xfd, 0xca, 0xa7, 0x20, 0x83, 0xff, 0xa5, 0xbf, 0x80, 0x8a, + 0x00, 0xff, 0x37, 0x03, 0x0f, 0x11, 0xf8, 0xc9, 0xae, 0xd7, 0xf1, 0xf4, 0x68, 0x67, 0xff, 0x0f, + 0x5b, 0x69, 0xae, 0x5f, 0xa9, 0x42, 0xd6, 0xf5, 0x3a, 0x9d, 0x01, 0xeb, 0x68, 0x22, 0xe0, 0xff, + 0xfb, 0x81, 0x7f, 0xc8, 0xf5, 0x31, 0xeb, 0xf5, 0xc9, 0xf7, 0x75, 0xb0, 0x69, 0x6d, 0x5a, 0xf4, + 0xa6, 0xee, 0xa5, 0x52, 0xf4, 0x95, 0x1b, 0x7c, 0x2b, 0x0e, 0xcb, 0x9a, 0xd5, 0xdf, 0xb7, 0xdc, + 0x35, 0x3f, 0xd9, 0xac, 0xf5, 0x55, 0x9b, 0x5d, 0xc3, 0x65, 0xfb, 0xaa, 0xcd, 0x7e, 0xef, 0xe8, + 0x2e, 0x9f, 0xec, 0x0a, 0xaf, 0xf4, 0x73, 0x30, 0xbb, 0xad, 0xda, 0xbb, 0xc8, 0xf5, 0x24, 0xe2, + 0x2a, 0xf2, 0xc3, 0x1a, 0x76, 0x2f, 0xba, 0x52, 0x0e, 0x10, 0x97, 0x99, 0x5a, 0xb9, 0xed, 0x39, + 0x6d, 0xcf, 0x21, 0xdf, 0x90, 0xe5, 0x94, 0x4b, 0x06, 0xcb, 0x57, 0x21, 0x1b, 0x10, 0x4b, 0x22, + 0xc4, 0x6f, 0xa1, 0x43, 0xf6, 0xd3, 0x1a, 0xfc, 0xaf, 0xb4, 0x34, 0xfc, 0xed, 0x1b, 0x96, 0xd1, + 0x41, 0x25, 0x76, 0x45, 0x28, 0x3d, 0x0b, 0xb3, 0xd7, 0xd5, 0x5b, 0x68, 0x5b, 0xb5, 0xa5, 0x8b, + 0x30, 0x8b, 0x4c, 0xcf, 0xd1, 0x91, 0xcb, 0x0c, 0x38, 0x13, 0x32, 0x80, 0xa9, 0xd1, 0x27, 0x73, + 0xcd, 0xd2, 0x16, 0xe4, 0x82, 0x13, 0xd3, 0x3e, 0x1b, 0x4b, 0x2d, 0xef, 0x80, 0xfd, 0x16, 0x36, + 0x23, 0xd3, 0xc1, 0xfa, 0xc6, 0x9b, 0xf7, 0x8b, 0x33, 0xdf, 0xbb, 0x5f, 0x9c, 0xf9, 0xe7, 0xfb, + 0xc5, 0x99, 0xb7, 0xee, 0x17, 0x85, 0x77, 0xef, 0x17, 0x85, 0xf7, 0xef, 0x17, 0x85, 0x7b, 0x47, + 0x45, 0xe1, 0xab, 0x47, 0x45, 0xe1, 0xeb, 0x47, 0x45, 0xe1, 0x3b, 0x47, 0x45, 0xe1, 0xcd, 0xa3, + 0xa2, 0xf0, 0xbd, 0xa3, 0xe2, 0xcc, 0x5b, 0x47, 0x45, 0xe1, 0x87, 0x47, 0xc5, 0x99, 0x77, 0x8f, + 0x8a, 0xc2, 0xfb, 0x47, 0xc5, 0x99, 0x7b, 0x3f, 0x28, 0xce, 0xec, 0xa7, 0x88, 0x6f, 0x2f, 0xfe, + 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf2, 0x01, 0xa4, 0xed, 0x44, 0x32, 0x00, 0x00, + } + r := bytes.NewReader(gzipped) + gzipr, err := gzip.NewReader(r) + if err != nil { + panic(err) + } + ungzipped, err := ioutil.ReadAll(gzipr) + if err != nil { + panic(err) + } + if err := proto.Unmarshal(ungzipped, d); err != nil { + panic(err) + } + return d +} +func (this *MapTest) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapTest) + if !ok { + that2, ok := that.(MapTest) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapTest") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapTest but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapTest but is not nil && this == nil") + } + if len(this.StrStr) != len(that1.StrStr) { + return fmt.Errorf("StrStr this(%v) Not Equal that(%v)", len(this.StrStr), len(that1.StrStr)) + } + for i := range this.StrStr { + if this.StrStr[i] != that1.StrStr[i] { + return fmt.Errorf("StrStr this[%v](%v) Not Equal that[%v](%v)", i, this.StrStr[i], i, that1.StrStr[i]) + } + } + return nil +} +func (this *MapTest) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapTest) + if !ok { + that2, ok := that.(MapTest) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.StrStr) != len(that1.StrStr) { + return false + } + for i := range this.StrStr { + if this.StrStr[i] != that1.StrStr[i] { + return false + } + } + return true +} +func (this *FakeMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*FakeMap) + if !ok { + that2, ok := that.(FakeMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *FakeMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *FakeMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *FakeMap but is not nil && this == nil") + } + if len(this.Entries) != len(that1.Entries) { + return fmt.Errorf("Entries this(%v) Not Equal that(%v)", len(this.Entries), len(that1.Entries)) + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return fmt.Errorf("Entries this[%v](%v) Not Equal that[%v](%v)", i, this.Entries[i], i, that1.Entries[i]) + } + } + return nil +} +func (this *FakeMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FakeMap) + if !ok { + that2, ok := that.(FakeMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Entries) != len(that1.Entries) { + return false + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return false + } + } + return true +} +func (this *FakeMapEntry) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*FakeMapEntry) + if !ok { + that2, ok := that.(FakeMapEntry) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *FakeMapEntry") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *FakeMapEntry but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *FakeMapEntry but is not nil && this == nil") + } + if this.Key != that1.Key { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", this.Key, that1.Key) + } + if this.Value != that1.Value { + return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) + } + if this.Other != that1.Other { + return fmt.Errorf("Other this(%v) Not Equal that(%v)", this.Other, that1.Other) + } + return nil +} +func (this *FakeMapEntry) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FakeMapEntry) + if !ok { + that2, ok := that.(FakeMapEntry) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Key != that1.Key { + return false + } + if this.Value != that1.Value { + return false + } + if this.Other != that1.Other { + return false + } + return true +} +func (this *MapTest) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&mapdefaults.MapTest{") + keysForStrStr := make([]string, 0, len(this.StrStr)) + for k := range this.StrStr { + keysForStrStr = append(keysForStrStr, k) + } + sortkeys.Strings(keysForStrStr) + mapStringForStrStr := "map[string]string{" + for _, k := range keysForStrStr { + mapStringForStrStr += fmt.Sprintf("%#v: %#v,", k, this.StrStr[k]) + } + mapStringForStrStr += "}" + if this.StrStr != nil { + s = append(s, "StrStr: "+mapStringForStrStr+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FakeMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&mapdefaults.FakeMap{") + if this.Entries != nil { + s = append(s, "Entries: "+fmt.Sprintf("%#v", this.Entries)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FakeMapEntry) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&mapdefaults.FakeMapEntry{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "Other: "+fmt.Sprintf("%#v", this.Other)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringMap(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func (m *MapTest) 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 *MapTest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.StrStr) > 0 { + for k := range m.StrStr { + dAtA[i] = 0xa + i++ + v := m.StrStr[k] + mapSize := 1 + len(k) + sovMap(uint64(len(k))) + 1 + len(v) + sovMap(uint64(len(v))) + i = encodeVarintMap(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMap(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMap(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func (m *FakeMap) 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 *FakeMap) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Entries) > 0 { + for _, msg := range m.Entries { + dAtA[i] = 0xa + i++ + i = encodeVarintMap(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *FakeMapEntry) 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 *FakeMapEntry) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Key) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintMap(dAtA, i, uint64(len(m.Key))) + i += copy(dAtA[i:], m.Key) + } + if len(m.Value) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintMap(dAtA, i, uint64(len(m.Value))) + i += copy(dAtA[i:], m.Value) + } + if len(m.Other) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintMap(dAtA, i, uint64(len(m.Other))) + i += copy(dAtA[i:], m.Other) + } + return i, nil +} + +func encodeVarintMap(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 NewPopulatedMapTest(r randyMap, easy bool) *MapTest { + this := &MapTest{} + if r.Intn(10) != 0 { + v1 := r.Intn(10) + this.StrStr = make(map[string]string) + for i := 0; i < v1; i++ { + this.StrStr[randStringMap(r)] = randStringMap(r) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedFakeMap(r randyMap, easy bool) *FakeMap { + this := &FakeMap{} + if r.Intn(10) != 0 { + v2 := r.Intn(5) + this.Entries = make([]*FakeMapEntry, v2) + for i := 0; i < v2; i++ { + this.Entries[i] = NewPopulatedFakeMapEntry(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedFakeMapEntry(r randyMap, easy bool) *FakeMapEntry { + this := &FakeMapEntry{} + this.Key = string(randStringMap(r)) + this.Value = string(randStringMap(r)) + this.Other = string(randStringMap(r)) + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyMap interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneMap(r randyMap) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringMap(r randyMap) string { + v3 := r.Intn(100) + tmps := make([]rune, v3) + for i := 0; i < v3; i++ { + tmps[i] = randUTF8RuneMap(r) + } + return string(tmps) +} +func randUnrecognizedMap(r randyMap, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldMap(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldMap(dAtA []byte, r randyMap, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + v4 := r.Int63() + if r.Intn(2) == 0 { + v4 *= -1 + } + dAtA = encodeVarintPopulateMap(dAtA, uint64(v4)) + case 1: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateMap(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateMap(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *MapTest) Size() (n int) { + var l int + _ = l + if len(m.StrStr) > 0 { + for k, v := range m.StrStr { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovMap(uint64(len(k))) + 1 + len(v) + sovMap(uint64(len(v))) + n += mapEntrySize + 1 + sovMap(uint64(mapEntrySize)) + } + } + return n +} + +func (m *FakeMap) Size() (n int) { + var l int + _ = l + if len(m.Entries) > 0 { + for _, e := range m.Entries { + l = e.Size() + n += 1 + l + sovMap(uint64(l)) + } + } + return n +} + +func (m *FakeMapEntry) Size() (n int) { + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + l = len(m.Other) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + return n +} + +func sovMap(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozMap(x uint64) (n int) { + return sovMap(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *MapTest) String() string { + if this == nil { + return "nil" + } + keysForStrStr := make([]string, 0, len(this.StrStr)) + for k := range this.StrStr { + keysForStrStr = append(keysForStrStr, k) + } + sortkeys.Strings(keysForStrStr) + mapStringForStrStr := "map[string]string{" + for _, k := range keysForStrStr { + mapStringForStrStr += fmt.Sprintf("%v: %v,", k, this.StrStr[k]) + } + mapStringForStrStr += "}" + s := strings.Join([]string{`&MapTest{`, + `StrStr:` + mapStringForStrStr + `,`, + `}`, + }, "") + return s +} +func (this *FakeMap) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FakeMap{`, + `Entries:` + strings.Replace(fmt.Sprintf("%v", this.Entries), "FakeMapEntry", "FakeMapEntry", 1) + `,`, + `}`, + }, "") + return s +} +func (this *FakeMapEntry) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FakeMapEntry{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `Other:` + fmt.Sprintf("%v", this.Other) + `,`, + `}`, + }, "") + return s +} +func valueToStringMap(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} + +func init() { proto.RegisterFile("combos/marshaler/map.proto", fileDescriptorMap) } + +var fileDescriptorMap = []byte{ + // 315 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0x3f, 0x4f, 0x3a, 0x31, + 0x18, 0xc7, 0xfb, 0x40, 0x7e, 0x5c, 0x7e, 0xc5, 0xc1, 0x5c, 0x1c, 0x4e, 0x86, 0x27, 0x84, 0x89, + 0xc5, 0xbb, 0x44, 0x16, 0x71, 0x70, 0x30, 0xea, 0x24, 0x0b, 0xb8, 0x9b, 0x1e, 0x96, 0x3f, 0x81, + 0xa3, 0x97, 0xb6, 0x67, 0xc2, 0x24, 0x2f, 0xc7, 0xd1, 0xd1, 0x97, 0xc0, 0xc8, 0xe8, 0x48, 0xeb, + 0xe2, 0xc8, 0xc8, 0x68, 0xe8, 0x9d, 0xc9, 0xb9, 0xb9, 0x3d, 0x9f, 0x6f, 0x3f, 0xed, 0xf3, 0x4d, + 0x69, 0x63, 0x28, 0x92, 0x58, 0xa8, 0x28, 0x61, 0x52, 0x4d, 0xd8, 0x9c, 0xcb, 0x28, 0x61, 0x69, + 0x98, 0x4a, 0xa1, 0x85, 0x5f, 0x4f, 0x58, 0xfa, 0xc4, 0x47, 0x2c, 0x9b, 0x6b, 0xd5, 0x38, 0x1b, + 0x4f, 0xf5, 0x24, 0x8b, 0xc3, 0xa1, 0x48, 0xa2, 0xb1, 0x18, 0x8b, 0xc8, 0x39, 0x71, 0x36, 0x72, + 0xe4, 0xc0, 0x4d, 0xf9, 0xdd, 0xd6, 0x0b, 0xf5, 0x7a, 0x2c, 0x7d, 0xe0, 0x4a, 0xfb, 0x5d, 0xea, + 0x29, 0x2d, 0x1f, 0x95, 0x96, 0x01, 0x34, 0xab, 0xed, 0xfa, 0x79, 0x33, 0x2c, 0x3d, 0x1c, 0x16, + 0x5a, 0x38, 0xd0, 0x72, 0xa0, 0xe5, 0xed, 0x42, 0xcb, 0x65, 0xbf, 0xa6, 0x1c, 0x34, 0xba, 0xb4, + 0x5e, 0x8a, 0xfd, 0x63, 0x5a, 0x9d, 0xf1, 0x65, 0x00, 0x4d, 0x68, 0xff, 0xef, 0x1f, 0x46, 0xff, + 0x84, 0xfe, 0x7b, 0x66, 0xf3, 0x8c, 0x07, 0x15, 0x97, 0xe5, 0x70, 0x59, 0xb9, 0x80, 0xd6, 0x15, + 0xf5, 0xee, 0xd8, 0x8c, 0xf7, 0x58, 0xea, 0x77, 0xa8, 0xc7, 0x17, 0x5a, 0x4e, 0xb9, 0x2a, 0x0a, + 0x9c, 0xfe, 0x2a, 0x50, 0x68, 0xf9, 0xe6, 0x1f, 0xb3, 0x75, 0x4f, 0x8f, 0xca, 0x07, 0x7f, 0xdd, + 0x7d, 0x48, 0x85, 0x9e, 0x70, 0x19, 0x54, 0xf3, 0xd4, 0xc1, 0xf5, 0xcd, 0xda, 0x20, 0xd9, 0x18, + 0x24, 0x1f, 0x06, 0xc9, 0xd6, 0x20, 0xec, 0x0c, 0xc2, 0xde, 0x20, 0xac, 0x2c, 0xc2, 0xab, 0x45, + 0x78, 0xb3, 0x08, 0xef, 0x16, 0x61, 0x6d, 0x11, 0x36, 0x16, 0xc9, 0xd6, 0x22, 0x7c, 0x59, 0x24, + 0x3b, 0x8b, 0xb0, 0xb7, 0x48, 0x56, 0x9f, 0x48, 0xe2, 0x9a, 0xfb, 0xdb, 0xce, 0x77, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xde, 0x50, 0x18, 0x62, 0xb5, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.proto b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.proto similarity index 78% rename from vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.proto rename to vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.proto index c7d8c83bb..fe9912313 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeboth/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map.proto @@ -1,6 +1,6 @@ // Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// Copyright (c) 2017, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -26,9 +26,9 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -syntax = "proto2"; +syntax = "proto3"; +package mapdefaults; -package castvalue; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; @@ -40,27 +40,31 @@ option (gogoproto.equal_all) = true; option (gogoproto.verbose_equal_all) = true; option (gogoproto.stringer_all) = true; option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; option (gogoproto.description_all) = true; option (gogoproto.testgen_all) = true; option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; +option (gogoproto.marshaler_all) = true; option (gogoproto.sizer_all) = true; option (gogoproto.goproto_enum_stringer_all) = false; option (gogoproto.enum_stringer_all) = true; -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; +option (gogoproto.unsafe_unmarshaler_all) = false; -message Castaway { - map CastMapValueMessage = 1 [(gogoproto.castvalue) = "MyWilson", (gogoproto.nullable) = false]; - map CastMapValueMessageNullable = 2 [(gogoproto.castvalue) = "MyWilson"]; + +message MapTest { + map str_str = 1; +} + +message FakeMap { + repeated FakeMapEntry entries = 1; } -message Wilson { - optional int64 Int64 = 1; +message FakeMapEntry { + string key = 1; + string value = 2; + string other = 3; } diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map_test.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map_test.go new file mode 100644 index 000000000..9998ead10 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/map_test.go @@ -0,0 +1,180 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package mapdefaults + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestUnmarshalImplicitDefaultKeyValue1(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "foo", + Value: "", + }, + { + Key: "", + Value: "bar", + }, + { + Key: "as", + Value: "df", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 3 { + t.Fatal("StrStr map should have 3 key/value pairs") + } + + val, ok := strStr["foo"] + if !ok { + t.Fatal("\"foo\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"foo\": %s", val) + } + + val, ok = strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "bar" { + t.Fatalf("Unexpected value for \"\": %s", val) + } + + val, ok = strStr["as"] + if !ok { + t.Fatal("\"as\" not found in StrStr map.") + } + if val != "df" { + t.Fatalf("Unexpected value for \"as\": %s", val) + } +} + +func TestUnmarshalImplicitDefaultKeyValue2(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "", + Value: "", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + // Sanity check + if string(serializedMsg) != "\n\x00" { + t.Fatal("Serialized bytes mismatched") + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"\": %s", val) + } +} + +func TestUnmarshalIgnoreUnknownField(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "key", + Value: "value", + Other: "other", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := &MapTest{} + err = proto.Unmarshal(serializedMsg, msg) + + if err != nil { + var pb proto.Message = msg + _, ok := pb.(proto.Unmarshaler) + if !ok { + // non-codegen implementation returns error when extra tags are + // present. + return + } + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr["key"] + if !ok { + t.Fatal("\"key\" not found in StrStr map.") + } + if val != "value" { + t.Fatalf("Unexpected value for \"value\": %s", val) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/mappb_test.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/mappb_test.go new file mode 100644 index 000000000..41e962a9c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/marshaler/mappb_test.go @@ -0,0 +1,564 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: combos/marshaler/map.proto + +/* +Package mapdefaults is a generated protocol buffer package. + +It is generated from these files: + combos/marshaler/map.proto + +It has these top-level messages: + MapTest + FakeMap + FakeMapEntry +*/ +package mapdefaults + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestMapTestProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapTestMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestFakeMapMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestFakeMapEntryMarshalTo(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, false) + size := p.Size() + dAtA := make([]byte, size) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + _, err := p.MarshalTo(dAtA) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapTestJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestFakeMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestFakeMapEntryJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapTestProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &MapTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapTestProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + dAtA := proto.CompactTextString(p) + msg := &MapTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &FakeMap{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + dAtA := proto.CompactTextString(p) + msg := &FakeMap{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &FakeMapEntry{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + dAtA := proto.CompactTextString(p) + msg := &FakeMapEntry{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapDescription(t *testing.T) { + MapDescription() +} +func TestMapTestVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestFakeMapVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestFakeMapEntryVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapTestGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestFakeMapGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestFakeMapEntryGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestMapTestSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestFakeMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestFakeMapEntrySize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestMapTestStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestFakeMapStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestFakeMapEntryStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.pb.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.pb.go new file mode 100644 index 000000000..d86e8fb18 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.pb.go @@ -0,0 +1,851 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: combos/neither/map.proto + +/* +Package mapdefaults is a generated protocol buffer package. + +It is generated from these files: + combos/neither/map.proto + +It has these top-level messages: + MapTest + FakeMap + FakeMapEntry +*/ +package mapdefaults + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" +import bytes "bytes" +import ioutil "io/ioutil" + +import strings "strings" +import reflect "reflect" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +// 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 + +type MapTest struct { + StrStr map[string]string `protobuf:"bytes,1,rep,name=str_str,json=strStr" json:"str_str,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *MapTest) Reset() { *m = MapTest{} } +func (*MapTest) ProtoMessage() {} +func (*MapTest) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{0} } + +type FakeMap struct { + Entries []*FakeMapEntry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` +} + +func (m *FakeMap) Reset() { *m = FakeMap{} } +func (*FakeMap) ProtoMessage() {} +func (*FakeMap) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{1} } + +type FakeMapEntry struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Other string `protobuf:"bytes,3,opt,name=other,proto3" json:"other,omitempty"` +} + +func (m *FakeMapEntry) Reset() { *m = FakeMapEntry{} } +func (*FakeMapEntry) ProtoMessage() {} +func (*FakeMapEntry) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{2} } + +func init() { + proto.RegisterType((*MapTest)(nil), "mapdefaults.MapTest") + proto.RegisterType((*FakeMap)(nil), "mapdefaults.FakeMap") + proto.RegisterType((*FakeMapEntry)(nil), "mapdefaults.FakeMapEntry") +} +func (this *MapTest) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func (this *FakeMap) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func (this *FakeMapEntry) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func MapDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} + var gzipped = []byte{ + // 3869 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x70, 0x1b, 0xd7, + 0x75, 0x26, 0xfe, 0x48, 0xe0, 0x00, 0x04, 0x97, 0x97, 0xb4, 0x04, 0x31, 0x31, 0x44, 0xc1, 0x76, + 0x44, 0xdb, 0x0d, 0x99, 0x91, 0x2c, 0x59, 0x82, 0x1a, 0xbb, 0x20, 0x08, 0x31, 0x50, 0x49, 0x02, + 0x59, 0x90, 0xf1, 0x4f, 0xa6, 0xb3, 0xb3, 0x5c, 0x5c, 0x80, 0x2b, 0x2d, 0x76, 0x37, 0xbb, 0x0b, + 0xc9, 0xd4, 0x74, 0xa6, 0xea, 0xb8, 0x3f, 0x93, 0xe9, 0xf4, 0xbf, 0x33, 0x49, 0x5c, 0xc7, 0xfd, + 0x99, 0x69, 0x9d, 0xa6, 0x7f, 0x49, 0xdd, 0xa6, 0x69, 0x9f, 0xfa, 0x92, 0xd6, 0x4f, 0x9d, 0xe4, + 0xad, 0x0f, 0x7d, 0xb0, 0x18, 0xcf, 0x34, 0x6d, 0xdd, 0xc6, 0x6d, 0xfd, 0xe0, 0x19, 0xbf, 0x74, + 0xee, 0xdf, 0x62, 0x17, 0x00, 0xb5, 0x60, 0x66, 0xec, 0x3c, 0x91, 0xf7, 0xdc, 0xf3, 0x7d, 0x7b, + 0xf6, 0xdc, 0x73, 0xcf, 0x39, 0xf7, 0x2e, 0xe0, 0x87, 0x57, 0x61, 0xb9, 0x6b, 0x59, 0x5d, 0x03, + 0xaf, 0xd9, 0x8e, 0xe5, 0x59, 0xfb, 0xfd, 0xce, 0x5a, 0x1b, 0xbb, 0x9a, 0xa3, 0xdb, 0x9e, 0xe5, + 0xac, 0x52, 0x19, 0x9a, 0x63, 0x1a, 0xab, 0x42, 0xa3, 0xb4, 0x0d, 0xf3, 0xd7, 0x75, 0x03, 0x6f, + 0xf8, 0x8a, 0x2d, 0xec, 0xa1, 0x2b, 0x90, 0xec, 0xe8, 0x06, 0x2e, 0xc4, 0x96, 0x13, 0x2b, 0xd9, + 0x0b, 0x8f, 0xae, 0x0e, 0x81, 0x56, 0xc3, 0x88, 0x26, 0x11, 0xcb, 0x14, 0x51, 0x7a, 0x3b, 0x09, + 0x0b, 0x63, 0x66, 0x11, 0x82, 0xa4, 0xa9, 0xf6, 0x08, 0x63, 0x6c, 0x25, 0x23, 0xd3, 0xff, 0x51, + 0x01, 0x66, 0x6c, 0x55, 0xbb, 0xa5, 0x76, 0x71, 0x21, 0x4e, 0xc5, 0x62, 0x88, 0x8a, 0x00, 0x6d, + 0x6c, 0x63, 0xb3, 0x8d, 0x4d, 0xed, 0xb0, 0x90, 0x58, 0x4e, 0xac, 0x64, 0xe4, 0x80, 0x04, 0x3d, + 0x09, 0xf3, 0x76, 0x7f, 0xdf, 0xd0, 0x35, 0x25, 0xa0, 0x06, 0xcb, 0x89, 0x95, 0x94, 0x2c, 0xb1, + 0x89, 0x8d, 0x81, 0xf2, 0x79, 0x98, 0xbb, 0x83, 0xd5, 0x5b, 0x41, 0xd5, 0x2c, 0x55, 0xcd, 0x13, + 0x71, 0x40, 0xb1, 0x0a, 0xb9, 0x1e, 0x76, 0x5d, 0xb5, 0x8b, 0x15, 0xef, 0xd0, 0xc6, 0x85, 0x24, + 0x7d, 0xfb, 0xe5, 0x91, 0xb7, 0x1f, 0x7e, 0xf3, 0x2c, 0x47, 0xed, 0x1e, 0xda, 0x18, 0x55, 0x20, + 0x83, 0xcd, 0x7e, 0x8f, 0x31, 0xa4, 0x8e, 0xf1, 0x5f, 0xcd, 0xec, 0xf7, 0x86, 0x59, 0xd2, 0x04, + 0xc6, 0x29, 0x66, 0x5c, 0xec, 0xdc, 0xd6, 0x35, 0x5c, 0x98, 0xa6, 0x04, 0xe7, 0x47, 0x08, 0x5a, + 0x6c, 0x7e, 0x98, 0x43, 0xe0, 0x50, 0x15, 0x32, 0xf8, 0x25, 0x0f, 0x9b, 0xae, 0x6e, 0x99, 0x85, + 0x19, 0x4a, 0xf2, 0xd8, 0x98, 0x55, 0xc4, 0x46, 0x7b, 0x98, 0x62, 0x80, 0x43, 0x97, 0x61, 0xc6, + 0xb2, 0x3d, 0xdd, 0x32, 0xdd, 0x42, 0x7a, 0x39, 0xb6, 0x92, 0xbd, 0xf0, 0xf1, 0xb1, 0x81, 0xd0, + 0x60, 0x3a, 0xb2, 0x50, 0x46, 0x75, 0x90, 0x5c, 0xab, 0xef, 0x68, 0x58, 0xd1, 0xac, 0x36, 0x56, + 0x74, 0xb3, 0x63, 0x15, 0x32, 0x94, 0xe0, 0xec, 0xe8, 0x8b, 0x50, 0xc5, 0xaa, 0xd5, 0xc6, 0x75, + 0xb3, 0x63, 0xc9, 0x79, 0x37, 0x34, 0x46, 0xa7, 0x60, 0xda, 0x3d, 0x34, 0x3d, 0xf5, 0xa5, 0x42, + 0x8e, 0x46, 0x08, 0x1f, 0x95, 0xfe, 0x6e, 0x1a, 0xe6, 0x26, 0x09, 0xb1, 0x6b, 0x90, 0xea, 0x90, + 0xb7, 0x2c, 0xc4, 0x4f, 0xe2, 0x03, 0x86, 0x09, 0x3b, 0x71, 0xfa, 0x47, 0x74, 0x62, 0x05, 0xb2, + 0x26, 0x76, 0x3d, 0xdc, 0x66, 0x11, 0x91, 0x98, 0x30, 0xa6, 0x80, 0x81, 0x46, 0x43, 0x2a, 0xf9, + 0x23, 0x85, 0xd4, 0xf3, 0x30, 0xe7, 0x9b, 0xa4, 0x38, 0xaa, 0xd9, 0x15, 0xb1, 0xb9, 0x16, 0x65, + 0xc9, 0x6a, 0x4d, 0xe0, 0x64, 0x02, 0x93, 0xf3, 0x38, 0x34, 0x46, 0x1b, 0x00, 0x96, 0x89, 0xad, + 0x8e, 0xd2, 0xc6, 0x9a, 0x51, 0x48, 0x1f, 0xe3, 0xa5, 0x06, 0x51, 0x19, 0xf1, 0x92, 0xc5, 0xa4, + 0x9a, 0x81, 0xae, 0x0e, 0x42, 0x6d, 0xe6, 0x98, 0x48, 0xd9, 0x66, 0x9b, 0x6c, 0x24, 0xda, 0xf6, + 0x20, 0xef, 0x60, 0x12, 0xf7, 0xb8, 0xcd, 0xdf, 0x2c, 0x43, 0x8d, 0x58, 0x8d, 0x7c, 0x33, 0x99, + 0xc3, 0xd8, 0x8b, 0xcd, 0x3a, 0xc1, 0x21, 0x7a, 0x04, 0x7c, 0x81, 0x42, 0xc3, 0x0a, 0x68, 0x16, + 0xca, 0x09, 0xe1, 0x8e, 0xda, 0xc3, 0x4b, 0x77, 0x21, 0x1f, 0x76, 0x0f, 0x5a, 0x84, 0x94, 0xeb, + 0xa9, 0x8e, 0x47, 0xa3, 0x30, 0x25, 0xb3, 0x01, 0x92, 0x20, 0x81, 0xcd, 0x36, 0xcd, 0x72, 0x29, + 0x99, 0xfc, 0x8b, 0x7e, 0x6a, 0xf0, 0xc2, 0x09, 0xfa, 0xc2, 0x9f, 0x18, 0x5d, 0xd1, 0x10, 0xf3, + 0xf0, 0x7b, 0x2f, 0x3d, 0x0d, 0xb3, 0xa1, 0x17, 0x98, 0xf4, 0xd1, 0xa5, 0x9f, 0x85, 0x87, 0xc6, + 0x52, 0xa3, 0xe7, 0x61, 0xb1, 0x6f, 0xea, 0xa6, 0x87, 0x1d, 0xdb, 0xc1, 0x24, 0x62, 0xd9, 0xa3, + 0x0a, 0xff, 0x36, 0x73, 0x4c, 0xcc, 0xed, 0x05, 0xb5, 0x19, 0x8b, 0xbc, 0xd0, 0x1f, 0x15, 0x3e, + 0x91, 0x49, 0xff, 0x60, 0x46, 0xba, 0x77, 0xef, 0xde, 0xbd, 0x78, 0xe9, 0xcb, 0xd3, 0xb0, 0x38, + 0x6e, 0xcf, 0x8c, 0xdd, 0xbe, 0xa7, 0x60, 0xda, 0xec, 0xf7, 0xf6, 0xb1, 0x43, 0x9d, 0x94, 0x92, + 0xf9, 0x08, 0x55, 0x20, 0x65, 0xa8, 0xfb, 0xd8, 0x28, 0x24, 0x97, 0x63, 0x2b, 0xf9, 0x0b, 0x4f, + 0x4e, 0xb4, 0x2b, 0x57, 0xb7, 0x08, 0x44, 0x66, 0x48, 0xf4, 0x0c, 0x24, 0x79, 0x8a, 0x26, 0x0c, + 0x4f, 0x4c, 0xc6, 0x40, 0xf6, 0x92, 0x4c, 0x71, 0xe8, 0x63, 0x90, 0x21, 0x7f, 0x59, 0x6c, 0x4c, + 0x53, 0x9b, 0xd3, 0x44, 0x40, 0xe2, 0x02, 0x2d, 0x41, 0x9a, 0x6e, 0x93, 0x36, 0x16, 0xa5, 0xcd, + 0x1f, 0x93, 0xc0, 0x6a, 0xe3, 0x8e, 0xda, 0x37, 0x3c, 0xe5, 0xb6, 0x6a, 0xf4, 0x31, 0x0d, 0xf8, + 0x8c, 0x9c, 0xe3, 0xc2, 0xcf, 0x11, 0x19, 0x3a, 0x0b, 0x59, 0xb6, 0xab, 0x74, 0xb3, 0x8d, 0x5f, + 0xa2, 0xd9, 0x33, 0x25, 0xb3, 0x8d, 0x56, 0x27, 0x12, 0xf2, 0xf8, 0x9b, 0xae, 0x65, 0x8a, 0xd0, + 0xa4, 0x8f, 0x20, 0x02, 0xfa, 0xf8, 0xa7, 0x87, 0x13, 0xf7, 0xc3, 0xe3, 0x5f, 0x6f, 0x38, 0xa6, + 0x4a, 0xdf, 0x8a, 0x43, 0x92, 0xe6, 0x8b, 0x39, 0xc8, 0xee, 0xbe, 0xd0, 0xac, 0x29, 0x1b, 0x8d, + 0xbd, 0xf5, 0xad, 0x9a, 0x14, 0x43, 0x79, 0x00, 0x2a, 0xb8, 0xbe, 0xd5, 0xa8, 0xec, 0x4a, 0x71, + 0x7f, 0x5c, 0xdf, 0xd9, 0xbd, 0xfc, 0x94, 0x94, 0xf0, 0x01, 0x7b, 0x4c, 0x90, 0x0c, 0x2a, 0x5c, + 0xbc, 0x20, 0xa5, 0x90, 0x04, 0x39, 0x46, 0x50, 0x7f, 0xbe, 0xb6, 0x71, 0xf9, 0x29, 0x69, 0x3a, + 0x2c, 0xb9, 0x78, 0x41, 0x9a, 0x41, 0xb3, 0x90, 0xa1, 0x92, 0xf5, 0x46, 0x63, 0x4b, 0x4a, 0xfb, + 0x9c, 0xad, 0x5d, 0xb9, 0xbe, 0xb3, 0x29, 0x65, 0x7c, 0xce, 0x4d, 0xb9, 0xb1, 0xd7, 0x94, 0xc0, + 0x67, 0xd8, 0xae, 0xb5, 0x5a, 0x95, 0xcd, 0x9a, 0x94, 0xf5, 0x35, 0xd6, 0x5f, 0xd8, 0xad, 0xb5, + 0xa4, 0x5c, 0xc8, 0xac, 0x8b, 0x17, 0xa4, 0x59, 0xff, 0x11, 0xb5, 0x9d, 0xbd, 0x6d, 0x29, 0x8f, + 0xe6, 0x61, 0x96, 0x3d, 0x42, 0x18, 0x31, 0x37, 0x24, 0xba, 0xfc, 0x94, 0x24, 0x0d, 0x0c, 0x61, + 0x2c, 0xf3, 0x21, 0xc1, 0xe5, 0xa7, 0x24, 0x54, 0xaa, 0x42, 0x8a, 0x46, 0x17, 0x42, 0x90, 0xdf, + 0xaa, 0xac, 0xd7, 0xb6, 0x94, 0x46, 0x73, 0xb7, 0xde, 0xd8, 0xa9, 0x6c, 0x49, 0xb1, 0x81, 0x4c, + 0xae, 0x7d, 0x76, 0xaf, 0x2e, 0xd7, 0x36, 0xa4, 0x78, 0x50, 0xd6, 0xac, 0x55, 0x76, 0x6b, 0x1b, + 0x52, 0xa2, 0xa4, 0xc1, 0xe2, 0xb8, 0x3c, 0x39, 0x76, 0x67, 0x04, 0x96, 0x38, 0x7e, 0xcc, 0x12, + 0x53, 0xae, 0x91, 0x25, 0xfe, 0x7e, 0x1c, 0x16, 0xc6, 0xd4, 0x8a, 0xb1, 0x0f, 0x79, 0x16, 0x52, + 0x2c, 0x44, 0x59, 0xf5, 0x7c, 0x7c, 0x6c, 0xd1, 0xa1, 0x01, 0x3b, 0x52, 0x41, 0x29, 0x2e, 0xd8, + 0x41, 0x24, 0x8e, 0xe9, 0x20, 0x08, 0xc5, 0x48, 0x4e, 0xff, 0x99, 0x91, 0x9c, 0xce, 0xca, 0xde, + 0xe5, 0x49, 0xca, 0x1e, 0x95, 0x9d, 0x2c, 0xb7, 0xa7, 0xc6, 0xe4, 0xf6, 0x6b, 0x30, 0x3f, 0x42, + 0x34, 0x71, 0x8e, 0x7d, 0x39, 0x06, 0x85, 0xe3, 0x9c, 0x13, 0x91, 0xe9, 0xe2, 0xa1, 0x4c, 0x77, + 0x6d, 0xd8, 0x83, 0xe7, 0x8e, 0x5f, 0x84, 0x91, 0xb5, 0x7e, 0x3d, 0x06, 0xa7, 0xc6, 0x77, 0x8a, + 0x63, 0x6d, 0x78, 0x06, 0xa6, 0x7b, 0xd8, 0x3b, 0xb0, 0x44, 0xb7, 0xf4, 0x89, 0x31, 0x35, 0x98, + 0x4c, 0x0f, 0x2f, 0x36, 0x47, 0x05, 0x8b, 0x78, 0xe2, 0xb8, 0x76, 0x8f, 0x59, 0x33, 0x62, 0xe9, + 0x17, 0xe3, 0xf0, 0xd0, 0x58, 0xf2, 0xb1, 0x86, 0x3e, 0x0c, 0xa0, 0x9b, 0x76, 0xdf, 0x63, 0x1d, + 0x11, 0x4b, 0xb0, 0x19, 0x2a, 0xa1, 0xc9, 0x8b, 0x24, 0xcf, 0xbe, 0xe7, 0xcf, 0x27, 0xe8, 0x3c, + 0x30, 0x11, 0x55, 0xb8, 0x32, 0x30, 0x34, 0x49, 0x0d, 0x2d, 0x1e, 0xf3, 0xa6, 0x23, 0x81, 0xf9, + 0x29, 0x90, 0x34, 0x43, 0xc7, 0xa6, 0xa7, 0xb8, 0x9e, 0x83, 0xd5, 0x9e, 0x6e, 0x76, 0x69, 0x05, + 0x49, 0x97, 0x53, 0x1d, 0xd5, 0x70, 0xb1, 0x3c, 0xc7, 0xa6, 0x5b, 0x62, 0x96, 0x20, 0x68, 0x00, + 0x39, 0x01, 0xc4, 0x74, 0x08, 0xc1, 0xa6, 0x7d, 0x44, 0xe9, 0x8d, 0x34, 0x64, 0x03, 0x7d, 0x35, + 0x3a, 0x07, 0xb9, 0x9b, 0xea, 0x6d, 0x55, 0x11, 0x67, 0x25, 0xe6, 0x89, 0x2c, 0x91, 0x35, 0xf9, + 0x79, 0xe9, 0x53, 0xb0, 0x48, 0x55, 0xac, 0xbe, 0x87, 0x1d, 0x45, 0x33, 0x54, 0xd7, 0xa5, 0x4e, + 0x4b, 0x53, 0x55, 0x44, 0xe6, 0x1a, 0x64, 0xaa, 0x2a, 0x66, 0xd0, 0x25, 0x58, 0xa0, 0x88, 0x5e, + 0xdf, 0xf0, 0x74, 0xdb, 0xc0, 0x0a, 0x39, 0xbd, 0xb9, 0xb4, 0x92, 0xf8, 0x96, 0xcd, 0x13, 0x8d, + 0x6d, 0xae, 0x40, 0x2c, 0x72, 0xd1, 0x06, 0x3c, 0x4c, 0x61, 0x5d, 0x6c, 0x62, 0x47, 0xf5, 0xb0, + 0x82, 0xbf, 0xd0, 0x57, 0x0d, 0x57, 0x51, 0xcd, 0xb6, 0x72, 0xa0, 0xba, 0x07, 0x85, 0x45, 0x42, + 0xb0, 0x1e, 0x2f, 0xc4, 0xe4, 0x33, 0x44, 0x71, 0x93, 0xeb, 0xd5, 0xa8, 0x5a, 0xc5, 0x6c, 0x7f, + 0x46, 0x75, 0x0f, 0x50, 0x19, 0x4e, 0x51, 0x16, 0xd7, 0x73, 0x74, 0xb3, 0xab, 0x68, 0x07, 0x58, + 0xbb, 0xa5, 0xf4, 0xbd, 0xce, 0x95, 0xc2, 0xc7, 0x82, 0xcf, 0xa7, 0x16, 0xb6, 0xa8, 0x4e, 0x95, + 0xa8, 0xec, 0x79, 0x9d, 0x2b, 0xa8, 0x05, 0x39, 0xb2, 0x18, 0x3d, 0xfd, 0x2e, 0x56, 0x3a, 0x96, + 0x43, 0x4b, 0x63, 0x7e, 0x4c, 0x6a, 0x0a, 0x78, 0x70, 0xb5, 0xc1, 0x01, 0xdb, 0x56, 0x1b, 0x97, + 0x53, 0xad, 0x66, 0xad, 0xb6, 0x21, 0x67, 0x05, 0xcb, 0x75, 0xcb, 0x21, 0x01, 0xd5, 0xb5, 0x7c, + 0x07, 0x67, 0x59, 0x40, 0x75, 0x2d, 0xe1, 0xde, 0x4b, 0xb0, 0xa0, 0x69, 0xec, 0x9d, 0x75, 0x4d, + 0xe1, 0x67, 0x2c, 0xb7, 0x20, 0x85, 0x9c, 0xa5, 0x69, 0x9b, 0x4c, 0x81, 0xc7, 0xb8, 0x8b, 0xae, + 0xc2, 0x43, 0x03, 0x67, 0x05, 0x81, 0xf3, 0x23, 0x6f, 0x39, 0x0c, 0xbd, 0x04, 0x0b, 0xf6, 0xe1, + 0x28, 0x10, 0x85, 0x9e, 0x68, 0x1f, 0x0e, 0xc3, 0x9e, 0x86, 0x45, 0xfb, 0xc0, 0x1e, 0xc5, 0x3d, + 0x11, 0xc4, 0x21, 0xfb, 0xc0, 0x1e, 0x06, 0x3e, 0x46, 0x0f, 0xdc, 0x0e, 0xd6, 0x54, 0x0f, 0xb7, + 0x0b, 0xa7, 0x83, 0xea, 0x81, 0x09, 0xb4, 0x06, 0x92, 0xa6, 0x29, 0xd8, 0x54, 0xf7, 0x0d, 0xac, + 0xa8, 0x0e, 0x36, 0x55, 0xb7, 0x70, 0x36, 0xa8, 0x9c, 0xd7, 0xb4, 0x1a, 0x9d, 0xad, 0xd0, 0x49, + 0xf4, 0x04, 0xcc, 0x5b, 0xfb, 0x37, 0x35, 0x16, 0x92, 0x8a, 0xed, 0xe0, 0x8e, 0xfe, 0x52, 0xe1, + 0x51, 0xea, 0xdf, 0x39, 0x32, 0x41, 0x03, 0xb2, 0x49, 0xc5, 0xe8, 0x71, 0x90, 0x34, 0xf7, 0x40, + 0x75, 0x6c, 0x9a, 0x93, 0x5d, 0x5b, 0xd5, 0x70, 0xe1, 0x31, 0xa6, 0xca, 0xe4, 0x3b, 0x42, 0x4c, + 0xb6, 0x84, 0x7b, 0x47, 0xef, 0x78, 0x82, 0xf1, 0x3c, 0xdb, 0x12, 0x54, 0xc6, 0xd9, 0x56, 0x40, + 0x22, 0xae, 0x08, 0x3d, 0x78, 0x85, 0xaa, 0xe5, 0xed, 0x03, 0x3b, 0xf8, 0xdc, 0x47, 0x60, 0x96, + 0x68, 0x0e, 0x1e, 0xfa, 0x38, 0x6b, 0xc8, 0xec, 0x83, 0xc0, 0x13, 0x3f, 0xb4, 0xde, 0xb8, 0x54, + 0x86, 0x5c, 0x30, 0x3e, 0x51, 0x06, 0x58, 0x84, 0x4a, 0x31, 0xd2, 0xac, 0x54, 0x1b, 0x1b, 0xa4, + 0xcd, 0x78, 0xb1, 0x26, 0xc5, 0x49, 0xbb, 0xb3, 0x55, 0xdf, 0xad, 0x29, 0xf2, 0xde, 0xce, 0x6e, + 0x7d, 0xbb, 0x26, 0x25, 0x82, 0x7d, 0xf5, 0x77, 0xe2, 0x90, 0x0f, 0x1f, 0x91, 0xd0, 0x4f, 0xc2, + 0x69, 0x71, 0x9f, 0xe1, 0x62, 0x4f, 0xb9, 0xa3, 0x3b, 0x74, 0xcb, 0xf4, 0x54, 0x56, 0xbe, 0xfc, + 0x45, 0x5b, 0xe4, 0x5a, 0x2d, 0xec, 0x3d, 0xa7, 0x3b, 0x64, 0x43, 0xf4, 0x54, 0x0f, 0x6d, 0xc1, + 0x59, 0xd3, 0x52, 0x5c, 0x4f, 0x35, 0xdb, 0xaa, 0xd3, 0x56, 0x06, 0x37, 0x49, 0x8a, 0xaa, 0x69, + 0xd8, 0x75, 0x2d, 0x56, 0xaa, 0x7c, 0x96, 0x8f, 0x9b, 0x56, 0x8b, 0x2b, 0x0f, 0x72, 0x78, 0x85, + 0xab, 0x0e, 0x05, 0x58, 0xe2, 0xb8, 0x00, 0xfb, 0x18, 0x64, 0x7a, 0xaa, 0xad, 0x60, 0xd3, 0x73, + 0x0e, 0x69, 0x63, 0x9c, 0x96, 0xd3, 0x3d, 0xd5, 0xae, 0x91, 0xf1, 0x47, 0x73, 0x3e, 0xf9, 0xd7, + 0x04, 0xe4, 0x82, 0xcd, 0x31, 0x39, 0x6b, 0x68, 0xb4, 0x8e, 0xc4, 0x68, 0xa6, 0x79, 0xe4, 0x81, + 0xad, 0xf4, 0x6a, 0x95, 0x14, 0x98, 0xf2, 0x34, 0x6b, 0x59, 0x65, 0x86, 0x24, 0xc5, 0x9d, 0xe4, + 0x16, 0xcc, 0x5a, 0x84, 0xb4, 0xcc, 0x47, 0x68, 0x13, 0xa6, 0x6f, 0xba, 0x94, 0x7b, 0x9a, 0x72, + 0x3f, 0xfa, 0x60, 0xee, 0x1b, 0x2d, 0x4a, 0x9e, 0xb9, 0xd1, 0x52, 0x76, 0x1a, 0xf2, 0x76, 0x65, + 0x4b, 0xe6, 0x70, 0x74, 0x06, 0x92, 0x86, 0x7a, 0xf7, 0x30, 0x5c, 0x8a, 0xa8, 0x68, 0x52, 0xc7, + 0x9f, 0x81, 0xe4, 0x1d, 0xac, 0xde, 0x0a, 0x17, 0x00, 0x2a, 0xfa, 0x10, 0x43, 0x7f, 0x0d, 0x52, + 0xd4, 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x9a, 0x42, 0x69, 0x48, 0x56, 0x1b, 0x32, 0x09, 0x7f, 0x09, + 0x72, 0x4c, 0xaa, 0x34, 0xeb, 0xb5, 0x6a, 0x4d, 0x8a, 0x97, 0x2e, 0xc1, 0x34, 0x73, 0x02, 0xd9, + 0x1a, 0xbe, 0x1b, 0xa4, 0x29, 0x3e, 0xe4, 0x1c, 0x31, 0x31, 0xbb, 0xb7, 0xbd, 0x5e, 0x93, 0xa5, + 0x78, 0x70, 0x79, 0x5d, 0xc8, 0x05, 0xfb, 0xe2, 0x8f, 0x26, 0xa6, 0xfe, 0x3e, 0x06, 0xd9, 0x40, + 0x9f, 0x4b, 0x1a, 0x14, 0xd5, 0x30, 0xac, 0x3b, 0x8a, 0x6a, 0xe8, 0xaa, 0xcb, 0x83, 0x02, 0xa8, + 0xa8, 0x42, 0x24, 0x93, 0x2e, 0xda, 0x47, 0x62, 0xfc, 0x6b, 0x31, 0x90, 0x86, 0x5b, 0xcc, 0x21, + 0x03, 0x63, 0x3f, 0x56, 0x03, 0x5f, 0x8d, 0x41, 0x3e, 0xdc, 0x57, 0x0e, 0x99, 0x77, 0xee, 0xc7, + 0x6a, 0xde, 0x5b, 0x71, 0x98, 0x0d, 0x75, 0x93, 0x93, 0x5a, 0xf7, 0x05, 0x98, 0xd7, 0xdb, 0xb8, + 0x67, 0x5b, 0x1e, 0x36, 0xb5, 0x43, 0xc5, 0xc0, 0xb7, 0xb1, 0x51, 0x28, 0xd1, 0x44, 0xb1, 0xf6, + 0xe0, 0x7e, 0x75, 0xb5, 0x3e, 0xc0, 0x6d, 0x11, 0x58, 0x79, 0xa1, 0xbe, 0x51, 0xdb, 0x6e, 0x36, + 0x76, 0x6b, 0x3b, 0xd5, 0x17, 0x94, 0xbd, 0x9d, 0x9f, 0xde, 0x69, 0x3c, 0xb7, 0x23, 0x4b, 0xfa, + 0x90, 0xda, 0x87, 0xb8, 0xd5, 0x9b, 0x20, 0x0d, 0x1b, 0x85, 0x4e, 0xc3, 0x38, 0xb3, 0xa4, 0x29, + 0xb4, 0x00, 0x73, 0x3b, 0x0d, 0xa5, 0x55, 0xdf, 0xa8, 0x29, 0xb5, 0xeb, 0xd7, 0x6b, 0xd5, 0xdd, + 0x16, 0xbb, 0x81, 0xf0, 0xb5, 0x77, 0xc3, 0x9b, 0xfa, 0x95, 0x04, 0x2c, 0x8c, 0xb1, 0x04, 0x55, + 0xf8, 0xd9, 0x81, 0x1d, 0x67, 0x3e, 0x39, 0x89, 0xf5, 0xab, 0xa4, 0xe4, 0x37, 0x55, 0xc7, 0xe3, + 0x47, 0x8d, 0xc7, 0x81, 0x78, 0xc9, 0xf4, 0xf4, 0x8e, 0x8e, 0x1d, 0x7e, 0x61, 0xc3, 0x0e, 0x14, + 0x73, 0x03, 0x39, 0xbb, 0xb3, 0xf9, 0x09, 0x40, 0xb6, 0xe5, 0xea, 0x9e, 0x7e, 0x1b, 0x2b, 0xba, + 0x29, 0x6e, 0x77, 0xc8, 0x01, 0x23, 0x29, 0x4b, 0x62, 0xa6, 0x6e, 0x7a, 0xbe, 0xb6, 0x89, 0xbb, + 0xea, 0x90, 0x36, 0x49, 0xe0, 0x09, 0x59, 0x12, 0x33, 0xbe, 0xf6, 0x39, 0xc8, 0xb5, 0xad, 0x3e, + 0xe9, 0xba, 0x98, 0x1e, 0xa9, 0x17, 0x31, 0x39, 0xcb, 0x64, 0xbe, 0x0a, 0xef, 0xa7, 0x07, 0xd7, + 0x4a, 0x39, 0x39, 0xcb, 0x64, 0x4c, 0xe5, 0x3c, 0xcc, 0xa9, 0xdd, 0xae, 0x43, 0xc8, 0x05, 0x11, + 0x3b, 0x21, 0xe4, 0x7d, 0x31, 0x55, 0x5c, 0xba, 0x01, 0x69, 0xe1, 0x07, 0x52, 0x92, 0x89, 0x27, + 0x14, 0x9b, 0x1d, 0x7b, 0xe3, 0x2b, 0x19, 0x39, 0x6d, 0x8a, 0xc9, 0x73, 0x90, 0xd3, 0x5d, 0x65, + 0x70, 0x4b, 0x1e, 0x5f, 0x8e, 0xaf, 0xa4, 0xe5, 0xac, 0xee, 0xfa, 0x37, 0x8c, 0xa5, 0xd7, 0xe3, + 0x90, 0x0f, 0xdf, 0xf2, 0xa3, 0x0d, 0x48, 0x1b, 0x96, 0xa6, 0xd2, 0xd0, 0x62, 0x9f, 0x98, 0x56, + 0x22, 0x3e, 0x0c, 0xac, 0x6e, 0x71, 0x7d, 0xd9, 0x47, 0x2e, 0xfd, 0x73, 0x0c, 0xd2, 0x42, 0x8c, + 0x4e, 0x41, 0xd2, 0x56, 0xbd, 0x03, 0x4a, 0x97, 0x5a, 0x8f, 0x4b, 0x31, 0x99, 0x8e, 0x89, 0xdc, + 0xb5, 0x55, 0x93, 0x86, 0x00, 0x97, 0x93, 0x31, 0x59, 0x57, 0x03, 0xab, 0x6d, 0x7a, 0xfc, 0xb0, + 0x7a, 0x3d, 0x6c, 0x7a, 0xae, 0x58, 0x57, 0x2e, 0xaf, 0x72, 0x31, 0x7a, 0x12, 0xe6, 0x3d, 0x47, + 0xd5, 0x8d, 0x90, 0x6e, 0x92, 0xea, 0x4a, 0x62, 0xc2, 0x57, 0x2e, 0xc3, 0x19, 0xc1, 0xdb, 0xc6, + 0x9e, 0xaa, 0x1d, 0xe0, 0xf6, 0x00, 0x34, 0x4d, 0xaf, 0x19, 0x4e, 0x73, 0x85, 0x0d, 0x3e, 0x2f, + 0xb0, 0xa5, 0xef, 0xc5, 0x60, 0x5e, 0x1c, 0x98, 0xda, 0xbe, 0xb3, 0xb6, 0x01, 0x54, 0xd3, 0xb4, + 0xbc, 0xa0, 0xbb, 0x46, 0x43, 0x79, 0x04, 0xb7, 0x5a, 0xf1, 0x41, 0x72, 0x80, 0x60, 0xa9, 0x07, + 0x30, 0x98, 0x39, 0xd6, 0x6d, 0x67, 0x21, 0xcb, 0x3f, 0xe1, 0xd0, 0xef, 0x80, 0xec, 0x88, 0x0d, + 0x4c, 0x44, 0x4e, 0x56, 0x68, 0x11, 0x52, 0xfb, 0xb8, 0xab, 0x9b, 0xfc, 0x62, 0x96, 0x0d, 0xc4, + 0x45, 0x48, 0xd2, 0xbf, 0x08, 0x59, 0xff, 0x3c, 0x2c, 0x68, 0x56, 0x6f, 0xd8, 0xdc, 0x75, 0x69, + 0xe8, 0x98, 0xef, 0x7e, 0x26, 0xf6, 0x22, 0x0c, 0x5a, 0xcc, 0xf7, 0x63, 0xb1, 0x3f, 0x8c, 0x27, + 0x36, 0x9b, 0xeb, 0x5f, 0x8f, 0x2f, 0x6d, 0x32, 0x68, 0x53, 0xbc, 0xa9, 0x8c, 0x3b, 0x06, 0xd6, + 0x88, 0xf5, 0xf0, 0xa5, 0xf3, 0xf0, 0xc9, 0xae, 0xee, 0x1d, 0xf4, 0xf7, 0x57, 0x35, 0xab, 0xb7, + 0xd6, 0xb5, 0xba, 0xd6, 0xe0, 0xd3, 0x27, 0x19, 0xd1, 0x01, 0xfd, 0x8f, 0x7f, 0xfe, 0xcc, 0xf8, + 0xd2, 0xa5, 0xc8, 0x6f, 0xa5, 0xe5, 0x1d, 0x58, 0xe0, 0xca, 0x0a, 0xfd, 0xfe, 0xc2, 0x4e, 0x11, + 0xe8, 0x81, 0x77, 0x58, 0x85, 0x6f, 0xbe, 0x4d, 0xcb, 0xb5, 0x3c, 0xcf, 0xa1, 0x64, 0x8e, 0x1d, + 0x34, 0xca, 0x32, 0x3c, 0x14, 0xe2, 0x63, 0x5b, 0x13, 0x3b, 0x11, 0x8c, 0xdf, 0xe1, 0x8c, 0x0b, + 0x01, 0xc6, 0x16, 0x87, 0x96, 0xab, 0x30, 0x7b, 0x12, 0xae, 0x7f, 0xe4, 0x5c, 0x39, 0x1c, 0x24, + 0xd9, 0x84, 0x39, 0x4a, 0xa2, 0xf5, 0x5d, 0xcf, 0xea, 0xd1, 0xbc, 0xf7, 0x60, 0x9a, 0x7f, 0x7a, + 0x9b, 0xed, 0x95, 0x3c, 0x81, 0x55, 0x7d, 0x54, 0xb9, 0x0c, 0xf4, 0x93, 0x53, 0x1b, 0x6b, 0x46, + 0x04, 0xc3, 0x9b, 0xdc, 0x10, 0x5f, 0xbf, 0xfc, 0x39, 0x58, 0x24, 0xff, 0xd3, 0xb4, 0x14, 0xb4, + 0x24, 0xfa, 0xc2, 0xab, 0xf0, 0xbd, 0x97, 0xd9, 0x76, 0x5c, 0xf0, 0x09, 0x02, 0x36, 0x05, 0x56, + 0xb1, 0x8b, 0x3d, 0x0f, 0x3b, 0xae, 0xa2, 0x1a, 0xe3, 0xcc, 0x0b, 0xdc, 0x18, 0x14, 0xbe, 0xf2, + 0x4e, 0x78, 0x15, 0x37, 0x19, 0xb2, 0x62, 0x18, 0xe5, 0x3d, 0x38, 0x3d, 0x26, 0x2a, 0x26, 0xe0, + 0x7c, 0x85, 0x73, 0x2e, 0x8e, 0x44, 0x06, 0xa1, 0x6d, 0x82, 0x90, 0xfb, 0x6b, 0x39, 0x01, 0xe7, + 0xef, 0x72, 0x4e, 0xc4, 0xb1, 0x62, 0x49, 0x09, 0xe3, 0x0d, 0x98, 0xbf, 0x8d, 0x9d, 0x7d, 0xcb, + 0xe5, 0xb7, 0x34, 0x13, 0xd0, 0xbd, 0xca, 0xe9, 0xe6, 0x38, 0x90, 0x5e, 0xdb, 0x10, 0xae, 0xab, + 0x90, 0xee, 0xa8, 0x1a, 0x9e, 0x80, 0xe2, 0xab, 0x9c, 0x62, 0x86, 0xe8, 0x13, 0x68, 0x05, 0x72, + 0x5d, 0x8b, 0x57, 0xa6, 0x68, 0xf8, 0x6b, 0x1c, 0x9e, 0x15, 0x18, 0x4e, 0x61, 0x5b, 0x76, 0xdf, + 0x20, 0x65, 0x2b, 0x9a, 0xe2, 0xf7, 0x04, 0x85, 0xc0, 0x70, 0x8a, 0x13, 0xb8, 0xf5, 0xf7, 0x05, + 0x85, 0x1b, 0xf0, 0xe7, 0xb3, 0x90, 0xb5, 0x4c, 0xe3, 0xd0, 0x32, 0x27, 0x31, 0xe2, 0x0f, 0x38, + 0x03, 0x70, 0x08, 0x21, 0xb8, 0x06, 0x99, 0x49, 0x17, 0xe2, 0x8f, 0xde, 0x11, 0xdb, 0x43, 0xac, + 0xc0, 0x26, 0xcc, 0x89, 0x04, 0xa5, 0x5b, 0xe6, 0x04, 0x14, 0x7f, 0xcc, 0x29, 0xf2, 0x01, 0x18, + 0x7f, 0x0d, 0x0f, 0xbb, 0x5e, 0x17, 0x4f, 0x42, 0xf2, 0xba, 0x78, 0x0d, 0x0e, 0xe1, 0xae, 0xdc, + 0xc7, 0xa6, 0x76, 0x30, 0x19, 0xc3, 0xd7, 0x84, 0x2b, 0x05, 0x86, 0x50, 0x54, 0x61, 0xb6, 0xa7, + 0x3a, 0xee, 0x81, 0x6a, 0x4c, 0xb4, 0x1c, 0x7f, 0xc2, 0x39, 0x72, 0x3e, 0x88, 0x7b, 0xa4, 0x6f, + 0x9e, 0x84, 0xe6, 0xeb, 0xc2, 0x23, 0x01, 0x18, 0xdf, 0x7a, 0xae, 0x47, 0xaf, 0xb4, 0x4e, 0xc2, + 0xf6, 0xa7, 0x62, 0xeb, 0x31, 0xec, 0x76, 0x90, 0xf1, 0x1a, 0x64, 0x5c, 0xfd, 0xee, 0x44, 0x34, + 0x7f, 0x26, 0x56, 0x9a, 0x02, 0x08, 0xf8, 0x05, 0x38, 0x33, 0xb6, 0x4c, 0x4c, 0x40, 0xf6, 0xe7, + 0x9c, 0xec, 0xd4, 0x98, 0x52, 0xc1, 0x53, 0xc2, 0x49, 0x29, 0xff, 0x42, 0xa4, 0x04, 0x3c, 0xc4, + 0xd5, 0x24, 0x67, 0x05, 0x57, 0xed, 0x9c, 0xcc, 0x6b, 0x7f, 0x29, 0xbc, 0xc6, 0xb0, 0x21, 0xaf, + 0xed, 0xc2, 0x29, 0xce, 0x78, 0xb2, 0x75, 0xfd, 0x86, 0x48, 0xac, 0x0c, 0xbd, 0x17, 0x5e, 0xdd, + 0xcf, 0xc3, 0x92, 0xef, 0x4e, 0xd1, 0x94, 0xba, 0x4a, 0x4f, 0xb5, 0x27, 0x60, 0xfe, 0x26, 0x67, + 0x16, 0x19, 0xdf, 0xef, 0x6a, 0xdd, 0x6d, 0xd5, 0x26, 0xe4, 0xcf, 0x43, 0x41, 0x90, 0xf7, 0x4d, + 0x07, 0x6b, 0x56, 0xd7, 0xd4, 0xef, 0xe2, 0xf6, 0x04, 0xd4, 0x7f, 0x35, 0xb4, 0x54, 0x7b, 0x01, + 0x38, 0x61, 0xae, 0x83, 0xe4, 0xf7, 0x2a, 0x8a, 0xde, 0xb3, 0x2d, 0xc7, 0x8b, 0x60, 0x7c, 0x43, + 0xac, 0x94, 0x8f, 0xab, 0x53, 0x58, 0xb9, 0x06, 0x79, 0x3a, 0x9c, 0x34, 0x24, 0xff, 0x9a, 0x13, + 0xcd, 0x0e, 0x50, 0x3c, 0x71, 0x68, 0x56, 0xcf, 0x56, 0x9d, 0x49, 0xf2, 0xdf, 0xdf, 0x88, 0xc4, + 0xc1, 0x21, 0x3c, 0x71, 0x78, 0x87, 0x36, 0x26, 0xd5, 0x7e, 0x02, 0x86, 0x6f, 0x89, 0xc4, 0x21, + 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x13, 0x50, 0xfc, 0xad, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0xd9, 0x41, + 0xa1, 0x75, 0x70, 0x57, 0x77, 0x3d, 0x87, 0xb5, 0xc2, 0x0f, 0xa6, 0xfa, 0xf6, 0x3b, 0xe1, 0x26, + 0x4c, 0x0e, 0x40, 0xcb, 0x37, 0x60, 0x6e, 0xa8, 0xc5, 0x40, 0x51, 0xbf, 0x5f, 0x29, 0xfc, 0xfc, + 0x7b, 0x3c, 0x19, 0x85, 0x3b, 0x8c, 0xf2, 0x16, 0x59, 0xf7, 0x70, 0x1f, 0x10, 0x4d, 0xf6, 0xf2, + 0x7b, 0xfe, 0xd2, 0x87, 0xda, 0x80, 0xf2, 0x75, 0x98, 0x0d, 0xf5, 0x00, 0xd1, 0x54, 0xbf, 0xc0, + 0xa9, 0x72, 0xc1, 0x16, 0xa0, 0x7c, 0x09, 0x92, 0xa4, 0x9e, 0x47, 0xc3, 0x7f, 0x91, 0xc3, 0xa9, + 0x7a, 0xf9, 0xd3, 0x90, 0x16, 0x75, 0x3c, 0x1a, 0xfa, 0x4b, 0x1c, 0xea, 0x43, 0x08, 0x5c, 0xd4, + 0xf0, 0x68, 0xf8, 0x2f, 0x0b, 0xb8, 0x80, 0x10, 0xf8, 0xe4, 0x2e, 0xfc, 0x87, 0x5f, 0x49, 0xf2, + 0x3c, 0x2c, 0x7c, 0x77, 0x0d, 0x66, 0x78, 0xf1, 0x8e, 0x46, 0x7f, 0x91, 0x3f, 0x5c, 0x20, 0xca, + 0x4f, 0x43, 0x6a, 0x42, 0x87, 0xff, 0x2a, 0x87, 0x32, 0xfd, 0x72, 0x15, 0xb2, 0x81, 0x82, 0x1d, + 0x0d, 0xff, 0x35, 0x0e, 0x0f, 0xa2, 0x88, 0xe9, 0xbc, 0x60, 0x47, 0x13, 0xfc, 0xba, 0x30, 0x9d, + 0x23, 0x88, 0xdb, 0x44, 0xad, 0x8e, 0x46, 0xff, 0x86, 0xf0, 0xba, 0x80, 0x94, 0x9f, 0x85, 0x8c, + 0x9f, 0x7f, 0xa3, 0xf1, 0xbf, 0xc9, 0xf1, 0x03, 0x0c, 0xf1, 0x40, 0x20, 0xff, 0x47, 0x53, 0xfc, + 0x96, 0xf0, 0x40, 0x00, 0x45, 0xb6, 0xd1, 0x70, 0x4d, 0x8f, 0x66, 0xfa, 0x6d, 0xb1, 0x8d, 0x86, + 0x4a, 0x3a, 0x59, 0x4d, 0x9a, 0x06, 0xa3, 0x29, 0x7e, 0x47, 0xac, 0x26, 0xd5, 0x27, 0x66, 0x0c, + 0x17, 0xc9, 0x68, 0x8e, 0x2f, 0x09, 0x33, 0x86, 0x6a, 0x64, 0xb9, 0x09, 0x68, 0xb4, 0x40, 0x46, + 0xf3, 0x7d, 0x99, 0xf3, 0xcd, 0x8f, 0xd4, 0xc7, 0xf2, 0x73, 0x70, 0x6a, 0x7c, 0x71, 0x8c, 0x66, + 0xfd, 0xca, 0x7b, 0x43, 0xc7, 0x99, 0x60, 0x6d, 0x2c, 0xef, 0x0e, 0xb2, 0x6c, 0xb0, 0x30, 0x46, + 0xd3, 0xbe, 0xf2, 0x5e, 0x38, 0xd1, 0x06, 0xeb, 0x62, 0xb9, 0x02, 0x30, 0xa8, 0x49, 0xd1, 0x5c, + 0xaf, 0x72, 0xae, 0x00, 0x88, 0x6c, 0x0d, 0x5e, 0x92, 0xa2, 0xf1, 0x5f, 0x15, 0x5b, 0x83, 0x23, + 0xc8, 0xd6, 0x10, 0xd5, 0x28, 0x1a, 0xfd, 0x9a, 0xd8, 0x1a, 0x02, 0x52, 0xbe, 0x06, 0x69, 0xb3, + 0x6f, 0x18, 0x24, 0xb6, 0xd0, 0x83, 0x7f, 0x92, 0x55, 0xf8, 0xf7, 0x0f, 0x38, 0x58, 0x00, 0xca, + 0x97, 0x20, 0x85, 0x7b, 0xfb, 0xb8, 0x1d, 0x85, 0xfc, 0x8f, 0x0f, 0x44, 0x3e, 0x21, 0xda, 0xe5, + 0x67, 0x01, 0xd8, 0x61, 0x9a, 0x7e, 0x28, 0x8a, 0xc0, 0xfe, 0xe7, 0x07, 0xfc, 0xc7, 0x12, 0x03, + 0xc8, 0x80, 0x80, 0xfd, 0xf4, 0xe2, 0xc1, 0x04, 0xef, 0x84, 0x09, 0xe8, 0x01, 0xfc, 0x2a, 0xcc, + 0xdc, 0x74, 0x2d, 0xd3, 0x53, 0xbb, 0x51, 0xe8, 0xff, 0xe2, 0x68, 0xa1, 0x4f, 0x1c, 0xd6, 0xb3, + 0x1c, 0xec, 0xa9, 0x5d, 0x37, 0x0a, 0xfb, 0xdf, 0x1c, 0xeb, 0x03, 0x08, 0x58, 0x53, 0x5d, 0x6f, + 0x92, 0xf7, 0xfe, 0xa1, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0xfc, 0x7f, 0x0b, 0x1f, 0x46, 0x61, 0xdf, + 0x15, 0x46, 0x73, 0xfd, 0xf2, 0xa7, 0x21, 0x43, 0xfe, 0x65, 0xbf, 0x80, 0x8a, 0x00, 0xff, 0x0f, + 0x07, 0x0f, 0x10, 0xe4, 0xc9, 0xae, 0xd7, 0xf6, 0xf4, 0x68, 0x67, 0xff, 0x2f, 0x5f, 0x69, 0xa1, + 0x5f, 0xae, 0x40, 0xd6, 0xf5, 0xda, 0xed, 0x3e, 0xef, 0x68, 0x22, 0xe0, 0xff, 0xf7, 0x81, 0x7f, + 0xc8, 0xf5, 0x31, 0xeb, 0xb5, 0xf1, 0xf7, 0x75, 0xb0, 0x69, 0x6d, 0x5a, 0xec, 0xa6, 0xee, 0xc5, + 0x52, 0xf4, 0x95, 0x1b, 0xbc, 0x91, 0x80, 0x82, 0x66, 0xf5, 0xf6, 0x2d, 0x77, 0xcd, 0xc4, 0xba, + 0x77, 0x80, 0x9d, 0xb5, 0x9e, 0x6a, 0xf3, 0x4b, 0xb8, 0x6c, 0x4f, 0xb5, 0xf9, 0xaf, 0x1d, 0xdd, + 0xa5, 0x93, 0x5d, 0xe0, 0x95, 0x7e, 0x0e, 0x66, 0xb6, 0x55, 0x7b, 0x17, 0xbb, 0x1e, 0xa2, 0x8e, + 0xa2, 0x3f, 0xab, 0xe1, 0xb7, 0xa2, 0xcb, 0xab, 0x01, 0xe2, 0x55, 0xae, 0xb6, 0xda, 0xf2, 0x9c, + 0x96, 0xe7, 0xd0, 0x2f, 0xc8, 0xf2, 0xb4, 0x4b, 0x07, 0x4b, 0x57, 0x21, 0x1b, 0x10, 0x23, 0x09, + 0x12, 0xb7, 0xf0, 0x21, 0xff, 0x61, 0x0d, 0xf9, 0x17, 0x2d, 0x0e, 0x7e, 0xf9, 0x46, 0x64, 0x6c, + 0x50, 0x8e, 0x5f, 0x89, 0x95, 0x9e, 0x81, 0x99, 0xeb, 0xea, 0x2d, 0xbc, 0xad, 0xda, 0xe8, 0x22, + 0xcc, 0x60, 0xd3, 0x73, 0x74, 0xec, 0x72, 0x03, 0xce, 0x84, 0x0c, 0xe0, 0x6a, 0xec, 0xc9, 0x42, + 0xb3, 0xb4, 0x05, 0xb9, 0xe0, 0xc4, 0xa4, 0xcf, 0x26, 0x52, 0x8b, 0xf8, 0x91, 0xdf, 0x52, 0xb3, + 0xc1, 0xfa, 0xc6, 0x9b, 0xf7, 0x8b, 0x53, 0xdf, 0xbd, 0x5f, 0x9c, 0xfa, 0x97, 0xfb, 0xc5, 0xa9, + 0xb7, 0xee, 0x17, 0x63, 0xef, 0xde, 0x2f, 0xc6, 0xde, 0xbf, 0x5f, 0x8c, 0xdd, 0x3b, 0x2a, 0xc6, + 0xbe, 0x76, 0x54, 0x8c, 0x7d, 0xe3, 0xa8, 0x18, 0xfb, 0xf6, 0x51, 0x31, 0xf6, 0xe6, 0x51, 0x71, + 0xea, 0xbb, 0x47, 0xc5, 0xa9, 0xb7, 0x8e, 0x8a, 0xb1, 0x1f, 0x1c, 0x15, 0xa7, 0xde, 0x3d, 0x2a, + 0xc6, 0xde, 0x3f, 0x2a, 0x4e, 0xdd, 0xfb, 0x7e, 0x71, 0x6a, 0x7f, 0x9a, 0xfa, 0xf6, 0xe2, 0xff, + 0x07, 0x00, 0x00, 0xff, 0xff, 0x8d, 0x94, 0xaa, 0xd5, 0x42, 0x32, 0x00, 0x00, + } + r := bytes.NewReader(gzipped) + gzipr, err := gzip.NewReader(r) + if err != nil { + panic(err) + } + ungzipped, err := ioutil.ReadAll(gzipr) + if err != nil { + panic(err) + } + if err := proto.Unmarshal(ungzipped, d); err != nil { + panic(err) + } + return d +} +func (this *MapTest) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapTest) + if !ok { + that2, ok := that.(MapTest) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapTest") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapTest but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapTest but is not nil && this == nil") + } + if len(this.StrStr) != len(that1.StrStr) { + return fmt.Errorf("StrStr this(%v) Not Equal that(%v)", len(this.StrStr), len(that1.StrStr)) + } + for i := range this.StrStr { + if this.StrStr[i] != that1.StrStr[i] { + return fmt.Errorf("StrStr this[%v](%v) Not Equal that[%v](%v)", i, this.StrStr[i], i, that1.StrStr[i]) + } + } + return nil +} +func (this *MapTest) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapTest) + if !ok { + that2, ok := that.(MapTest) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.StrStr) != len(that1.StrStr) { + return false + } + for i := range this.StrStr { + if this.StrStr[i] != that1.StrStr[i] { + return false + } + } + return true +} +func (this *FakeMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*FakeMap) + if !ok { + that2, ok := that.(FakeMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *FakeMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *FakeMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *FakeMap but is not nil && this == nil") + } + if len(this.Entries) != len(that1.Entries) { + return fmt.Errorf("Entries this(%v) Not Equal that(%v)", len(this.Entries), len(that1.Entries)) + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return fmt.Errorf("Entries this[%v](%v) Not Equal that[%v](%v)", i, this.Entries[i], i, that1.Entries[i]) + } + } + return nil +} +func (this *FakeMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FakeMap) + if !ok { + that2, ok := that.(FakeMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Entries) != len(that1.Entries) { + return false + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return false + } + } + return true +} +func (this *FakeMapEntry) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*FakeMapEntry) + if !ok { + that2, ok := that.(FakeMapEntry) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *FakeMapEntry") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *FakeMapEntry but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *FakeMapEntry but is not nil && this == nil") + } + if this.Key != that1.Key { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", this.Key, that1.Key) + } + if this.Value != that1.Value { + return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) + } + if this.Other != that1.Other { + return fmt.Errorf("Other this(%v) Not Equal that(%v)", this.Other, that1.Other) + } + return nil +} +func (this *FakeMapEntry) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FakeMapEntry) + if !ok { + that2, ok := that.(FakeMapEntry) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Key != that1.Key { + return false + } + if this.Value != that1.Value { + return false + } + if this.Other != that1.Other { + return false + } + return true +} +func (this *MapTest) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&mapdefaults.MapTest{") + keysForStrStr := make([]string, 0, len(this.StrStr)) + for k := range this.StrStr { + keysForStrStr = append(keysForStrStr, k) + } + sortkeys.Strings(keysForStrStr) + mapStringForStrStr := "map[string]string{" + for _, k := range keysForStrStr { + mapStringForStrStr += fmt.Sprintf("%#v: %#v,", k, this.StrStr[k]) + } + mapStringForStrStr += "}" + if this.StrStr != nil { + s = append(s, "StrStr: "+mapStringForStrStr+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FakeMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&mapdefaults.FakeMap{") + if this.Entries != nil { + s = append(s, "Entries: "+fmt.Sprintf("%#v", this.Entries)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FakeMapEntry) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&mapdefaults.FakeMapEntry{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "Other: "+fmt.Sprintf("%#v", this.Other)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringMap(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func NewPopulatedMapTest(r randyMap, easy bool) *MapTest { + this := &MapTest{} + if r.Intn(10) != 0 { + v1 := r.Intn(10) + this.StrStr = make(map[string]string) + for i := 0; i < v1; i++ { + this.StrStr[randStringMap(r)] = randStringMap(r) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedFakeMap(r randyMap, easy bool) *FakeMap { + this := &FakeMap{} + if r.Intn(10) != 0 { + v2 := r.Intn(5) + this.Entries = make([]*FakeMapEntry, v2) + for i := 0; i < v2; i++ { + this.Entries[i] = NewPopulatedFakeMapEntry(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedFakeMapEntry(r randyMap, easy bool) *FakeMapEntry { + this := &FakeMapEntry{} + this.Key = string(randStringMap(r)) + this.Value = string(randStringMap(r)) + this.Other = string(randStringMap(r)) + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyMap interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneMap(r randyMap) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringMap(r randyMap) string { + v3 := r.Intn(100) + tmps := make([]rune, v3) + for i := 0; i < v3; i++ { + tmps[i] = randUTF8RuneMap(r) + } + return string(tmps) +} +func randUnrecognizedMap(r randyMap, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldMap(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldMap(dAtA []byte, r randyMap, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + v4 := r.Int63() + if r.Intn(2) == 0 { + v4 *= -1 + } + dAtA = encodeVarintPopulateMap(dAtA, uint64(v4)) + case 1: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateMap(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateMap(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *MapTest) Size() (n int) { + var l int + _ = l + if len(m.StrStr) > 0 { + for k, v := range m.StrStr { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovMap(uint64(len(k))) + 1 + len(v) + sovMap(uint64(len(v))) + n += mapEntrySize + 1 + sovMap(uint64(mapEntrySize)) + } + } + return n +} + +func (m *FakeMap) Size() (n int) { + var l int + _ = l + if len(m.Entries) > 0 { + for _, e := range m.Entries { + l = e.Size() + n += 1 + l + sovMap(uint64(l)) + } + } + return n +} + +func (m *FakeMapEntry) Size() (n int) { + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + l = len(m.Other) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + return n +} + +func sovMap(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozMap(x uint64) (n int) { + return sovMap(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *MapTest) String() string { + if this == nil { + return "nil" + } + keysForStrStr := make([]string, 0, len(this.StrStr)) + for k := range this.StrStr { + keysForStrStr = append(keysForStrStr, k) + } + sortkeys.Strings(keysForStrStr) + mapStringForStrStr := "map[string]string{" + for _, k := range keysForStrStr { + mapStringForStrStr += fmt.Sprintf("%v: %v,", k, this.StrStr[k]) + } + mapStringForStrStr += "}" + s := strings.Join([]string{`&MapTest{`, + `StrStr:` + mapStringForStrStr + `,`, + `}`, + }, "") + return s +} +func (this *FakeMap) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FakeMap{`, + `Entries:` + strings.Replace(fmt.Sprintf("%v", this.Entries), "FakeMapEntry", "FakeMapEntry", 1) + `,`, + `}`, + }, "") + return s +} +func (this *FakeMapEntry) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FakeMapEntry{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `Other:` + fmt.Sprintf("%v", this.Other) + `,`, + `}`, + }, "") + return s +} +func valueToStringMap(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} + +func init() { proto.RegisterFile("combos/neither/map.proto", fileDescriptorMap) } + +var fileDescriptorMap = []byte{ + // 313 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0x3f, 0x4f, 0x32, 0x41, + 0x10, 0x87, 0x77, 0x20, 0x2f, 0x97, 0x77, 0xb1, 0x30, 0x17, 0x8b, 0x93, 0x62, 0x42, 0xa8, 0x68, + 0xbc, 0x4b, 0xa4, 0x11, 0x0b, 0x0b, 0xa3, 0x56, 0xd2, 0x80, 0xbd, 0xd9, 0xc3, 0xe5, 0x4f, 0xe0, + 0xd8, 0xcb, 0xee, 0x9e, 0x09, 0x95, 0x7c, 0x1c, 0x4b, 0x4b, 0x3f, 0x02, 0x25, 0xa5, 0x25, 0xbb, + 0x36, 0x96, 0x94, 0x94, 0x86, 0xbd, 0x33, 0x39, 0x3b, 0xbb, 0x79, 0x7e, 0xfb, 0xec, 0xcc, 0x64, + 0x68, 0x30, 0x14, 0x49, 0x2c, 0x54, 0xb4, 0xe0, 0x53, 0x3d, 0xe1, 0x32, 0x4a, 0x58, 0x1a, 0xa6, + 0x52, 0x68, 0xe1, 0xd7, 0x13, 0x96, 0x3e, 0xf1, 0x11, 0xcb, 0xe6, 0x5a, 0x35, 0xce, 0xc6, 0x53, + 0x3d, 0xc9, 0xe2, 0x70, 0x28, 0x92, 0x68, 0x2c, 0xc6, 0x22, 0x72, 0x4e, 0x9c, 0x8d, 0x1c, 0x39, + 0x70, 0x55, 0xfe, 0xb7, 0xf5, 0x42, 0xbd, 0x1e, 0x4b, 0x1f, 0xb8, 0xd2, 0x7e, 0x97, 0x7a, 0x4a, + 0xcb, 0x47, 0xa5, 0x65, 0x00, 0xcd, 0x6a, 0xbb, 0x7e, 0xde, 0x0c, 0x4b, 0x8d, 0xc3, 0x42, 0x0b, + 0x07, 0x5a, 0x0e, 0xb4, 0xbc, 0x5d, 0x68, 0xb9, 0xec, 0xd7, 0x94, 0x83, 0x46, 0x97, 0xd6, 0x4b, + 0xb1, 0x7f, 0x4c, 0xab, 0x33, 0xbe, 0x0c, 0xa0, 0x09, 0xed, 0xff, 0xfd, 0x43, 0xe9, 0x9f, 0xd0, + 0x7f, 0xcf, 0x6c, 0x9e, 0xf1, 0xa0, 0xe2, 0xb2, 0x1c, 0x2e, 0x2b, 0x17, 0xd0, 0xba, 0xa2, 0xde, + 0x1d, 0x9b, 0xf1, 0x1e, 0x4b, 0xfd, 0x0e, 0xf5, 0xf8, 0x42, 0xcb, 0x29, 0x57, 0xc5, 0x02, 0xa7, + 0xbf, 0x16, 0x28, 0xb4, 0x7c, 0xf2, 0x8f, 0xd9, 0xba, 0xa7, 0x47, 0xe5, 0x87, 0xbf, 0xce, 0x3e, + 0xa4, 0xe2, 0x70, 0xc7, 0xa0, 0x9a, 0xa7, 0x0e, 0xae, 0x6f, 0xd6, 0x06, 0xc9, 0xc6, 0x20, 0xf9, + 0x30, 0x48, 0xb6, 0x06, 0x61, 0x67, 0x10, 0xf6, 0x06, 0x61, 0x65, 0x11, 0x5e, 0x2d, 0xc2, 0x9b, + 0x45, 0x78, 0xb7, 0x08, 0x6b, 0x8b, 0x64, 0x63, 0x91, 0x6c, 0x2d, 0xc2, 0x97, 0x45, 0xb2, 0xb3, + 0x08, 0x7b, 0x8b, 0x64, 0xf5, 0x89, 0x24, 0xae, 0xb9, 0xdb, 0x76, 0xbe, 0x03, 0x00, 0x00, 0xff, + 0xff, 0x9d, 0x34, 0x83, 0xd1, 0xb3, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.proto b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.proto similarity index 81% rename from vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.proto rename to vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.proto index 4039d3be1..43d5c0dab 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafemarshaler/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map.proto @@ -1,6 +1,6 @@ // Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// Copyright (c) 2017, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -26,9 +26,9 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -syntax = "proto2"; +syntax = "proto3"; +package mapdefaults; -package castvalue; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; @@ -40,12 +40,10 @@ option (gogoproto.equal_all) = true; option (gogoproto.verbose_equal_all) = true; option (gogoproto.stringer_all) = true; option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; option (gogoproto.description_all) = true; option (gogoproto.testgen_all) = true; option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; option (gogoproto.unmarshaler_all) = false; option (gogoproto.marshaler_all) = false; option (gogoproto.sizer_all) = true; @@ -53,14 +51,20 @@ option (gogoproto.sizer_all) = true; option (gogoproto.goproto_enum_stringer_all) = false; option (gogoproto.enum_stringer_all) = true; -option (gogoproto.unsafe_marshaler_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; option (gogoproto.unsafe_unmarshaler_all) = false; -message Castaway { - map CastMapValueMessage = 1 [(gogoproto.castvalue) = "MyWilson", (gogoproto.nullable) = false]; - map CastMapValueMessageNullable = 2 [(gogoproto.castvalue) = "MyWilson"]; + +message MapTest { + map str_str = 1; +} + +message FakeMap { + repeated FakeMapEntry entries = 1; } -message Wilson { - optional int64 Int64 = 1; +message FakeMapEntry { + string key = 1; + string value = 2; + string other = 3; } diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map_test.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map_test.go new file mode 100644 index 000000000..9998ead10 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/map_test.go @@ -0,0 +1,180 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package mapdefaults + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestUnmarshalImplicitDefaultKeyValue1(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "foo", + Value: "", + }, + { + Key: "", + Value: "bar", + }, + { + Key: "as", + Value: "df", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 3 { + t.Fatal("StrStr map should have 3 key/value pairs") + } + + val, ok := strStr["foo"] + if !ok { + t.Fatal("\"foo\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"foo\": %s", val) + } + + val, ok = strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "bar" { + t.Fatalf("Unexpected value for \"\": %s", val) + } + + val, ok = strStr["as"] + if !ok { + t.Fatal("\"as\" not found in StrStr map.") + } + if val != "df" { + t.Fatalf("Unexpected value for \"as\": %s", val) + } +} + +func TestUnmarshalImplicitDefaultKeyValue2(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "", + Value: "", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + // Sanity check + if string(serializedMsg) != "\n\x00" { + t.Fatal("Serialized bytes mismatched") + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"\": %s", val) + } +} + +func TestUnmarshalIgnoreUnknownField(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "key", + Value: "value", + Other: "other", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := &MapTest{} + err = proto.Unmarshal(serializedMsg, msg) + + if err != nil { + var pb proto.Message = msg + _, ok := pb.(proto.Unmarshaler) + if !ok { + // non-codegen implementation returns error when extra tags are + // present. + return + } + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr["key"] + if !ok { + t.Fatal("\"key\" not found in StrStr map.") + } + if val != "value" { + t.Fatalf("Unexpected value for \"value\": %s", val) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/mappb_test.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/mappb_test.go new file mode 100644 index 000000000..e9a2716e2 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/neither/mappb_test.go @@ -0,0 +1,480 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: combos/neither/map.proto + +/* +Package mapdefaults is a generated protocol buffer package. + +It is generated from these files: + combos/neither/map.proto + +It has these top-level messages: + MapTest + FakeMap + FakeMapEntry +*/ +package mapdefaults + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestMapTestProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestFakeMapProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestFakeMapEntryProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapTestJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestFakeMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestFakeMapEntryJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapTestProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &MapTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapTestProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + dAtA := proto.CompactTextString(p) + msg := &MapTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &FakeMap{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + dAtA := proto.CompactTextString(p) + msg := &FakeMap{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &FakeMapEntry{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + dAtA := proto.CompactTextString(p) + msg := &FakeMapEntry{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapDescription(t *testing.T) { + MapDescription() +} +func TestMapTestVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestFakeMapVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestFakeMapEntryVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapTestGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestFakeMapGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestFakeMapEntryGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestMapTestSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestFakeMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestFakeMapEntrySize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestMapTestStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestFakeMapStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestFakeMapEntryStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.pb.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.pb.go new file mode 100644 index 000000000..783bf32a3 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.pb.go @@ -0,0 +1,1343 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: combos/unmarshaler/map.proto + +/* + Package mapdefaults is a generated protocol buffer package. + + It is generated from these files: + combos/unmarshaler/map.proto + + It has these top-level messages: + MapTest + FakeMap + FakeMapEntry +*/ +package mapdefaults + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" +import bytes "bytes" +import ioutil "io/ioutil" + +import strings "strings" +import reflect "reflect" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +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 + +type MapTest struct { + StrStr map[string]string `protobuf:"bytes,1,rep,name=str_str,json=strStr" json:"str_str,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *MapTest) Reset() { *m = MapTest{} } +func (*MapTest) ProtoMessage() {} +func (*MapTest) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{0} } + +type FakeMap struct { + Entries []*FakeMapEntry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` +} + +func (m *FakeMap) Reset() { *m = FakeMap{} } +func (*FakeMap) ProtoMessage() {} +func (*FakeMap) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{1} } + +type FakeMapEntry struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Other string `protobuf:"bytes,3,opt,name=other,proto3" json:"other,omitempty"` +} + +func (m *FakeMapEntry) Reset() { *m = FakeMapEntry{} } +func (*FakeMapEntry) ProtoMessage() {} +func (*FakeMapEntry) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{2} } + +func init() { + proto.RegisterType((*MapTest)(nil), "mapdefaults.MapTest") + proto.RegisterType((*FakeMap)(nil), "mapdefaults.FakeMap") + proto.RegisterType((*FakeMapEntry)(nil), "mapdefaults.FakeMapEntry") +} +func (this *MapTest) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func (this *FakeMap) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func (this *FakeMapEntry) Description() (desc *descriptor.FileDescriptorSet) { + return MapDescription() +} +func MapDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} + var gzipped = []byte{ + // 3868 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5d, 0x6c, 0x23, 0xd7, + 0x75, 0xd6, 0xf0, 0x4f, 0xe4, 0x21, 0x45, 0x8d, 0x46, 0xf2, 0x9a, 0x2b, 0xdb, 0x5c, 0x2d, 0x6d, + 0x67, 0x65, 0xbb, 0xa1, 0x82, 0x5d, 0xef, 0x7a, 0x97, 0xdb, 0xd8, 0xa5, 0x28, 0xae, 0xc2, 0xad, + 0x24, 0x32, 0x43, 0x29, 0xfe, 0x09, 0x8a, 0xc1, 0x68, 0x78, 0x49, 0xcd, 0xee, 0x70, 0x66, 0x32, + 0x33, 0xdc, 0xb5, 0x16, 0x05, 0xba, 0x85, 0xfb, 0x83, 0xa0, 0xe8, 0x7f, 0x81, 0x24, 0xae, 0xe3, + 0xfe, 0x00, 0xad, 0xd3, 0xf4, 0x2f, 0x69, 0xda, 0x24, 0xed, 0x53, 0x5f, 0xd2, 0xfa, 0xa9, 0x48, + 0xde, 0xfa, 0xd0, 0x07, 0xaf, 0x62, 0xa0, 0x69, 0xeb, 0x36, 0x6e, 0xeb, 0x07, 0x03, 0x7e, 0x09, + 0xee, 0xdf, 0x70, 0x86, 0xa4, 0x76, 0xa8, 0x00, 0x76, 0x9e, 0xa4, 0x7b, 0xee, 0xf9, 0xbe, 0x39, + 0x73, 0xee, 0xb9, 0xe7, 0x9c, 0x7b, 0x87, 0xf0, 0xc3, 0x2b, 0xb0, 0xd2, 0xb3, 0xac, 0x9e, 0x81, + 0xd6, 0x6c, 0xc7, 0xf2, 0xac, 0xfd, 0x41, 0x77, 0xad, 0x83, 0x5c, 0xcd, 0xd1, 0x6d, 0xcf, 0x72, + 0xca, 0x44, 0x26, 0xcd, 0x53, 0x8d, 0x32, 0xd7, 0x28, 0x6d, 0xc3, 0xc2, 0x35, 0xdd, 0x40, 0x1b, + 0xbe, 0x62, 0x1b, 0x79, 0xd2, 0x65, 0x48, 0x74, 0x75, 0x03, 0x15, 0x84, 0x95, 0xf8, 0x6a, 0xf6, + 0xfc, 0x63, 0xe5, 0x11, 0x50, 0x39, 0x8c, 0x68, 0x61, 0xb1, 0x4c, 0x10, 0xa5, 0xb7, 0x13, 0xb0, + 0x38, 0x61, 0x56, 0x92, 0x20, 0x61, 0xaa, 0x7d, 0xcc, 0x28, 0xac, 0x66, 0x64, 0xf2, 0xbf, 0x54, + 0x80, 0x59, 0x5b, 0xd5, 0x6e, 0xaa, 0x3d, 0x54, 0x88, 0x11, 0x31, 0x1f, 0x4a, 0x45, 0x80, 0x0e, + 0xb2, 0x91, 0xd9, 0x41, 0xa6, 0x76, 0x58, 0x88, 0xaf, 0xc4, 0x57, 0x33, 0x72, 0x40, 0x22, 0x3d, + 0x05, 0x0b, 0xf6, 0x60, 0xdf, 0xd0, 0x35, 0x25, 0xa0, 0x06, 0x2b, 0xf1, 0xd5, 0xa4, 0x2c, 0xd2, + 0x89, 0x8d, 0xa1, 0xf2, 0x39, 0x98, 0xbf, 0x8d, 0xd4, 0x9b, 0x41, 0xd5, 0x2c, 0x51, 0xcd, 0x63, + 0x71, 0x40, 0xb1, 0x06, 0xb9, 0x3e, 0x72, 0x5d, 0xb5, 0x87, 0x14, 0xef, 0xd0, 0x46, 0x85, 0x04, + 0x79, 0xfb, 0x95, 0xb1, 0xb7, 0x1f, 0x7d, 0xf3, 0x2c, 0x43, 0xed, 0x1e, 0xda, 0x48, 0xaa, 0x42, + 0x06, 0x99, 0x83, 0x3e, 0x65, 0x48, 0x1e, 0xe3, 0xbf, 0xba, 0x39, 0xe8, 0x8f, 0xb2, 0xa4, 0x31, + 0x8c, 0x51, 0xcc, 0xba, 0xc8, 0xb9, 0xa5, 0x6b, 0xa8, 0x90, 0x22, 0x04, 0xe7, 0xc6, 0x08, 0xda, + 0x74, 0x7e, 0x94, 0x83, 0xe3, 0xa4, 0x1a, 0x64, 0xd0, 0xcb, 0x1e, 0x32, 0x5d, 0xdd, 0x32, 0x0b, + 0xb3, 0x84, 0xe4, 0xf1, 0x09, 0xab, 0x88, 0x8c, 0xce, 0x28, 0xc5, 0x10, 0x27, 0x5d, 0x82, 0x59, + 0xcb, 0xf6, 0x74, 0xcb, 0x74, 0x0b, 0xe9, 0x15, 0x61, 0x35, 0x7b, 0xfe, 0xe1, 0x89, 0x81, 0xd0, + 0xa4, 0x3a, 0x32, 0x57, 0x96, 0x1a, 0x20, 0xba, 0xd6, 0xc0, 0xd1, 0x90, 0xa2, 0x59, 0x1d, 0xa4, + 0xe8, 0x66, 0xd7, 0x2a, 0x64, 0x08, 0xc1, 0x99, 0xf1, 0x17, 0x21, 0x8a, 0x35, 0xab, 0x83, 0x1a, + 0x66, 0xd7, 0x92, 0xf3, 0x6e, 0x68, 0x2c, 0x9d, 0x82, 0x94, 0x7b, 0x68, 0x7a, 0xea, 0xcb, 0x85, + 0x1c, 0x89, 0x10, 0x36, 0x2a, 0xfd, 0x7d, 0x0a, 0xe6, 0xa7, 0x09, 0xb1, 0xab, 0x90, 0xec, 0xe2, + 0xb7, 0x2c, 0xc4, 0x4e, 0xe2, 0x03, 0x8a, 0x09, 0x3b, 0x31, 0xf5, 0x63, 0x3a, 0xb1, 0x0a, 0x59, + 0x13, 0xb9, 0x1e, 0xea, 0xd0, 0x88, 0x88, 0x4f, 0x19, 0x53, 0x40, 0x41, 0xe3, 0x21, 0x95, 0xf8, + 0xb1, 0x42, 0xea, 0x05, 0x98, 0xf7, 0x4d, 0x52, 0x1c, 0xd5, 0xec, 0xf1, 0xd8, 0x5c, 0x8b, 0xb2, + 0xa4, 0x5c, 0xe7, 0x38, 0x19, 0xc3, 0xe4, 0x3c, 0x0a, 0x8d, 0xa5, 0x0d, 0x00, 0xcb, 0x44, 0x56, + 0x57, 0xe9, 0x20, 0xcd, 0x28, 0xa4, 0x8f, 0xf1, 0x52, 0x13, 0xab, 0x8c, 0x79, 0xc9, 0xa2, 0x52, + 0xcd, 0x90, 0xae, 0x0c, 0x43, 0x6d, 0xf6, 0x98, 0x48, 0xd9, 0xa6, 0x9b, 0x6c, 0x2c, 0xda, 0xf6, + 0x20, 0xef, 0x20, 0x1c, 0xf7, 0xa8, 0xc3, 0xde, 0x2c, 0x43, 0x8c, 0x28, 0x47, 0xbe, 0x99, 0xcc, + 0x60, 0xf4, 0xc5, 0xe6, 0x9c, 0xe0, 0x50, 0x7a, 0x14, 0x7c, 0x81, 0x42, 0xc2, 0x0a, 0x48, 0x16, + 0xca, 0x71, 0xe1, 0x8e, 0xda, 0x47, 0xcb, 0x77, 0x20, 0x1f, 0x76, 0x8f, 0xb4, 0x04, 0x49, 0xd7, + 0x53, 0x1d, 0x8f, 0x44, 0x61, 0x52, 0xa6, 0x03, 0x49, 0x84, 0x38, 0x32, 0x3b, 0x24, 0xcb, 0x25, + 0x65, 0xfc, 0xaf, 0xf4, 0x33, 0xc3, 0x17, 0x8e, 0x93, 0x17, 0xfe, 0xd8, 0xf8, 0x8a, 0x86, 0x98, + 0x47, 0xdf, 0x7b, 0xf9, 0x19, 0x98, 0x0b, 0xbd, 0xc0, 0xb4, 0x8f, 0x2e, 0xfd, 0x3c, 0x3c, 0x30, + 0x91, 0x5a, 0x7a, 0x01, 0x96, 0x06, 0xa6, 0x6e, 0x7a, 0xc8, 0xb1, 0x1d, 0x84, 0x23, 0x96, 0x3e, + 0xaa, 0xf0, 0xef, 0xb3, 0xc7, 0xc4, 0xdc, 0x5e, 0x50, 0x9b, 0xb2, 0xc8, 0x8b, 0x83, 0x71, 0xe1, + 0x93, 0x99, 0xf4, 0x0f, 0x66, 0xc5, 0xbb, 0x77, 0xef, 0xde, 0x8d, 0x95, 0xbe, 0x98, 0x82, 0xa5, + 0x49, 0x7b, 0x66, 0xe2, 0xf6, 0x3d, 0x05, 0x29, 0x73, 0xd0, 0xdf, 0x47, 0x0e, 0x71, 0x52, 0x52, + 0x66, 0x23, 0xa9, 0x0a, 0x49, 0x43, 0xdd, 0x47, 0x46, 0x21, 0xb1, 0x22, 0xac, 0xe6, 0xcf, 0x3f, + 0x35, 0xd5, 0xae, 0x2c, 0x6f, 0x61, 0x88, 0x4c, 0x91, 0xd2, 0xb3, 0x90, 0x60, 0x29, 0x1a, 0x33, + 0x3c, 0x39, 0x1d, 0x03, 0xde, 0x4b, 0x32, 0xc1, 0x49, 0x0f, 0x41, 0x06, 0xff, 0xa5, 0xb1, 0x91, + 0x22, 0x36, 0xa7, 0xb1, 0x00, 0xc7, 0x85, 0xb4, 0x0c, 0x69, 0xb2, 0x4d, 0x3a, 0x88, 0x97, 0x36, + 0x7f, 0x8c, 0x03, 0xab, 0x83, 0xba, 0xea, 0xc0, 0xf0, 0x94, 0x5b, 0xaa, 0x31, 0x40, 0x24, 0xe0, + 0x33, 0x72, 0x8e, 0x09, 0x3f, 0x83, 0x65, 0xd2, 0x19, 0xc8, 0xd2, 0x5d, 0xa5, 0x9b, 0x1d, 0xf4, + 0x32, 0xc9, 0x9e, 0x49, 0x99, 0x6e, 0xb4, 0x06, 0x96, 0xe0, 0xc7, 0xdf, 0x70, 0x2d, 0x93, 0x87, + 0x26, 0x79, 0x04, 0x16, 0x90, 0xc7, 0x3f, 0x33, 0x9a, 0xb8, 0x1f, 0x99, 0xfc, 0x7a, 0xa3, 0x31, + 0x55, 0xfa, 0x66, 0x0c, 0x12, 0x24, 0x5f, 0xcc, 0x43, 0x76, 0xf7, 0xc5, 0x56, 0x5d, 0xd9, 0x68, + 0xee, 0xad, 0x6f, 0xd5, 0x45, 0x41, 0xca, 0x03, 0x10, 0xc1, 0xb5, 0xad, 0x66, 0x75, 0x57, 0x8c, + 0xf9, 0xe3, 0xc6, 0xce, 0xee, 0xa5, 0xa7, 0xc5, 0xb8, 0x0f, 0xd8, 0xa3, 0x82, 0x44, 0x50, 0xe1, + 0xc2, 0x79, 0x31, 0x29, 0x89, 0x90, 0xa3, 0x04, 0x8d, 0x17, 0xea, 0x1b, 0x97, 0x9e, 0x16, 0x53, + 0x61, 0xc9, 0x85, 0xf3, 0xe2, 0xac, 0x34, 0x07, 0x19, 0x22, 0x59, 0x6f, 0x36, 0xb7, 0xc4, 0xb4, + 0xcf, 0xd9, 0xde, 0x95, 0x1b, 0x3b, 0x9b, 0x62, 0xc6, 0xe7, 0xdc, 0x94, 0x9b, 0x7b, 0x2d, 0x11, + 0x7c, 0x86, 0xed, 0x7a, 0xbb, 0x5d, 0xdd, 0xac, 0x8b, 0x59, 0x5f, 0x63, 0xfd, 0xc5, 0xdd, 0x7a, + 0x5b, 0xcc, 0x85, 0xcc, 0xba, 0x70, 0x5e, 0x9c, 0xf3, 0x1f, 0x51, 0xdf, 0xd9, 0xdb, 0x16, 0xf3, + 0xd2, 0x02, 0xcc, 0xd1, 0x47, 0x70, 0x23, 0xe6, 0x47, 0x44, 0x97, 0x9e, 0x16, 0xc5, 0xa1, 0x21, + 0x94, 0x65, 0x21, 0x24, 0xb8, 0xf4, 0xb4, 0x28, 0x95, 0x6a, 0x90, 0x24, 0xd1, 0x25, 0x49, 0x90, + 0xdf, 0xaa, 0xae, 0xd7, 0xb7, 0x94, 0x66, 0x6b, 0xb7, 0xd1, 0xdc, 0xa9, 0x6e, 0x89, 0xc2, 0x50, + 0x26, 0xd7, 0x3f, 0xbd, 0xd7, 0x90, 0xeb, 0x1b, 0x62, 0x2c, 0x28, 0x6b, 0xd5, 0xab, 0xbb, 0xf5, + 0x0d, 0x31, 0x5e, 0xd2, 0x60, 0x69, 0x52, 0x9e, 0x9c, 0xb8, 0x33, 0x02, 0x4b, 0x1c, 0x3b, 0x66, + 0x89, 0x09, 0xd7, 0xd8, 0x12, 0x7f, 0x3f, 0x06, 0x8b, 0x13, 0x6a, 0xc5, 0xc4, 0x87, 0x3c, 0x07, + 0x49, 0x1a, 0xa2, 0xb4, 0x7a, 0x3e, 0x31, 0xb1, 0xe8, 0x90, 0x80, 0x1d, 0xab, 0xa0, 0x04, 0x17, + 0xec, 0x20, 0xe2, 0xc7, 0x74, 0x10, 0x98, 0x62, 0x2c, 0xa7, 0xff, 0xdc, 0x58, 0x4e, 0xa7, 0x65, + 0xef, 0xd2, 0x34, 0x65, 0x8f, 0xc8, 0x4e, 0x96, 0xdb, 0x93, 0x13, 0x72, 0xfb, 0x55, 0x58, 0x18, + 0x23, 0x9a, 0x3a, 0xc7, 0xbe, 0x22, 0x40, 0xe1, 0x38, 0xe7, 0x44, 0x64, 0xba, 0x58, 0x28, 0xd3, + 0x5d, 0x1d, 0xf5, 0xe0, 0xd9, 0xe3, 0x17, 0x61, 0x6c, 0xad, 0xdf, 0x10, 0xe0, 0xd4, 0xe4, 0x4e, + 0x71, 0xa2, 0x0d, 0xcf, 0x42, 0xaa, 0x8f, 0xbc, 0x03, 0x8b, 0x77, 0x4b, 0x1f, 0x9b, 0x50, 0x83, + 0xf1, 0xf4, 0xe8, 0x62, 0x33, 0x54, 0xb0, 0x88, 0xc7, 0x8f, 0x6b, 0xf7, 0xa8, 0x35, 0x63, 0x96, + 0x7e, 0x3e, 0x06, 0x0f, 0x4c, 0x24, 0x9f, 0x68, 0xe8, 0x23, 0x00, 0xba, 0x69, 0x0f, 0x3c, 0xda, + 0x11, 0xd1, 0x04, 0x9b, 0x21, 0x12, 0x92, 0xbc, 0x70, 0xf2, 0x1c, 0x78, 0xfe, 0x7c, 0x9c, 0xcc, + 0x03, 0x15, 0x11, 0x85, 0xcb, 0x43, 0x43, 0x13, 0xc4, 0xd0, 0xe2, 0x31, 0x6f, 0x3a, 0x16, 0x98, + 0x9f, 0x00, 0x51, 0x33, 0x74, 0x64, 0x7a, 0x8a, 0xeb, 0x39, 0x48, 0xed, 0xeb, 0x66, 0x8f, 0x54, + 0x90, 0x74, 0x25, 0xd9, 0x55, 0x0d, 0x17, 0xc9, 0xf3, 0x74, 0xba, 0xcd, 0x67, 0x31, 0x82, 0x04, + 0x90, 0x13, 0x40, 0xa4, 0x42, 0x08, 0x3a, 0xed, 0x23, 0x4a, 0xdf, 0x48, 0x43, 0x36, 0xd0, 0x57, + 0x4b, 0x67, 0x21, 0x77, 0x43, 0xbd, 0xa5, 0x2a, 0xfc, 0xac, 0x44, 0x3d, 0x91, 0xc5, 0xb2, 0x16, + 0x3b, 0x2f, 0x7d, 0x02, 0x96, 0x88, 0x8a, 0x35, 0xf0, 0x90, 0xa3, 0x68, 0x86, 0xea, 0xba, 0xc4, + 0x69, 0x69, 0xa2, 0x2a, 0xe1, 0xb9, 0x26, 0x9e, 0xaa, 0xf1, 0x19, 0xe9, 0x22, 0x2c, 0x12, 0x44, + 0x7f, 0x60, 0x78, 0xba, 0x6d, 0x20, 0x05, 0x9f, 0xde, 0x5c, 0x52, 0x49, 0x7c, 0xcb, 0x16, 0xb0, + 0xc6, 0x36, 0x53, 0xc0, 0x16, 0xb9, 0xd2, 0x06, 0x3c, 0x42, 0x60, 0x3d, 0x64, 0x22, 0x47, 0xf5, + 0x90, 0x82, 0x3e, 0x37, 0x50, 0x0d, 0x57, 0x51, 0xcd, 0x8e, 0x72, 0xa0, 0xba, 0x07, 0x85, 0x25, + 0x4c, 0xb0, 0x1e, 0x2b, 0x08, 0xf2, 0x69, 0xac, 0xb8, 0xc9, 0xf4, 0xea, 0x44, 0xad, 0x6a, 0x76, + 0x3e, 0xa5, 0xba, 0x07, 0x52, 0x05, 0x4e, 0x11, 0x16, 0xd7, 0x73, 0x74, 0xb3, 0xa7, 0x68, 0x07, + 0x48, 0xbb, 0xa9, 0x0c, 0xbc, 0xee, 0xe5, 0xc2, 0x43, 0xc1, 0xe7, 0x13, 0x0b, 0xdb, 0x44, 0xa7, + 0x86, 0x55, 0xf6, 0xbc, 0xee, 0x65, 0xa9, 0x0d, 0x39, 0xbc, 0x18, 0x7d, 0xfd, 0x0e, 0x52, 0xba, + 0x96, 0x43, 0x4a, 0x63, 0x7e, 0x42, 0x6a, 0x0a, 0x78, 0xb0, 0xdc, 0x64, 0x80, 0x6d, 0xab, 0x83, + 0x2a, 0xc9, 0x76, 0xab, 0x5e, 0xdf, 0x90, 0xb3, 0x9c, 0xe5, 0x9a, 0xe5, 0xe0, 0x80, 0xea, 0x59, + 0xbe, 0x83, 0xb3, 0x34, 0xa0, 0x7a, 0x16, 0x77, 0xef, 0x45, 0x58, 0xd4, 0x34, 0xfa, 0xce, 0xba, + 0xa6, 0xb0, 0x33, 0x96, 0x5b, 0x10, 0x43, 0xce, 0xd2, 0xb4, 0x4d, 0xaa, 0xc0, 0x62, 0xdc, 0x95, + 0xae, 0xc0, 0x03, 0x43, 0x67, 0x05, 0x81, 0x0b, 0x63, 0x6f, 0x39, 0x0a, 0xbd, 0x08, 0x8b, 0xf6, + 0xe1, 0x38, 0x50, 0x0a, 0x3d, 0xd1, 0x3e, 0x1c, 0x85, 0x3d, 0x03, 0x4b, 0xf6, 0x81, 0x3d, 0x8e, + 0x7b, 0x32, 0x88, 0x93, 0xec, 0x03, 0x7b, 0x14, 0xf8, 0x38, 0x39, 0x70, 0x3b, 0x48, 0x53, 0x3d, + 0xd4, 0x29, 0x3c, 0x18, 0x54, 0x0f, 0x4c, 0x48, 0x6b, 0x20, 0x6a, 0x9a, 0x82, 0x4c, 0x75, 0xdf, + 0x40, 0x8a, 0xea, 0x20, 0x53, 0x75, 0x0b, 0x67, 0x82, 0xca, 0x79, 0x4d, 0xab, 0x93, 0xd9, 0x2a, + 0x99, 0x94, 0x9e, 0x84, 0x05, 0x6b, 0xff, 0x86, 0x46, 0x43, 0x52, 0xb1, 0x1d, 0xd4, 0xd5, 0x5f, + 0x2e, 0x3c, 0x46, 0xfc, 0x3b, 0x8f, 0x27, 0x48, 0x40, 0xb6, 0x88, 0x58, 0x7a, 0x02, 0x44, 0xcd, + 0x3d, 0x50, 0x1d, 0x9b, 0xe4, 0x64, 0xd7, 0x56, 0x35, 0x54, 0x78, 0x9c, 0xaa, 0x52, 0xf9, 0x0e, + 0x17, 0xe3, 0x2d, 0xe1, 0xde, 0xd6, 0xbb, 0x1e, 0x67, 0x3c, 0x47, 0xb7, 0x04, 0x91, 0x31, 0xb6, + 0x55, 0x10, 0xb1, 0x2b, 0x42, 0x0f, 0x5e, 0x25, 0x6a, 0x79, 0xfb, 0xc0, 0x0e, 0x3e, 0xf7, 0x51, + 0x98, 0xc3, 0x9a, 0xc3, 0x87, 0x3e, 0x41, 0x1b, 0x32, 0xfb, 0x20, 0xf0, 0xc4, 0x0f, 0xad, 0x37, + 0x2e, 0x55, 0x20, 0x17, 0x8c, 0x4f, 0x29, 0x03, 0x34, 0x42, 0x45, 0x01, 0x37, 0x2b, 0xb5, 0xe6, + 0x06, 0x6e, 0x33, 0x5e, 0xaa, 0x8b, 0x31, 0xdc, 0xee, 0x6c, 0x35, 0x76, 0xeb, 0x8a, 0xbc, 0xb7, + 0xb3, 0xdb, 0xd8, 0xae, 0x8b, 0xf1, 0x60, 0x5f, 0xfd, 0x9d, 0x18, 0xe4, 0xc3, 0x47, 0x24, 0xe9, + 0xa7, 0xe1, 0x41, 0x7e, 0x9f, 0xe1, 0x22, 0x4f, 0xb9, 0xad, 0x3b, 0x64, 0xcb, 0xf4, 0x55, 0x5a, + 0xbe, 0xfc, 0x45, 0x5b, 0x62, 0x5a, 0x6d, 0xe4, 0x3d, 0xaf, 0x3b, 0x78, 0x43, 0xf4, 0x55, 0x4f, + 0xda, 0x82, 0x33, 0xa6, 0xa5, 0xb8, 0x9e, 0x6a, 0x76, 0x54, 0xa7, 0xa3, 0x0c, 0x6f, 0x92, 0x14, + 0x55, 0xd3, 0x90, 0xeb, 0x5a, 0xb4, 0x54, 0xf9, 0x2c, 0x0f, 0x9b, 0x56, 0x9b, 0x29, 0x0f, 0x73, + 0x78, 0x95, 0xa9, 0x8e, 0x04, 0x58, 0xfc, 0xb8, 0x00, 0x7b, 0x08, 0x32, 0x7d, 0xd5, 0x56, 0x90, + 0xe9, 0x39, 0x87, 0xa4, 0x31, 0x4e, 0xcb, 0xe9, 0xbe, 0x6a, 0xd7, 0xf1, 0xf8, 0xa3, 0x39, 0x9f, + 0xfc, 0x5b, 0x1c, 0x72, 0xc1, 0xe6, 0x18, 0x9f, 0x35, 0x34, 0x52, 0x47, 0x04, 0x92, 0x69, 0x1e, + 0xbd, 0x6f, 0x2b, 0x5d, 0xae, 0xe1, 0x02, 0x53, 0x49, 0xd1, 0x96, 0x55, 0xa6, 0x48, 0x5c, 0xdc, + 0x71, 0x6e, 0x41, 0xb4, 0x45, 0x48, 0xcb, 0x6c, 0x24, 0x6d, 0x42, 0xea, 0x86, 0x4b, 0xb8, 0x53, + 0x84, 0xfb, 0xb1, 0xfb, 0x73, 0x5f, 0x6f, 0x13, 0xf2, 0xcc, 0xf5, 0xb6, 0xb2, 0xd3, 0x94, 0xb7, + 0xab, 0x5b, 0x32, 0x83, 0x4b, 0xa7, 0x21, 0x61, 0xa8, 0x77, 0x0e, 0xc3, 0xa5, 0x88, 0x88, 0xa6, + 0x75, 0xfc, 0x69, 0x48, 0xdc, 0x46, 0xea, 0xcd, 0x70, 0x01, 0x20, 0xa2, 0x0f, 0x31, 0xf4, 0xd7, + 0x20, 0x49, 0xfc, 0x25, 0x01, 0x30, 0x8f, 0x89, 0x33, 0x52, 0x1a, 0x12, 0xb5, 0xa6, 0x8c, 0xc3, + 0x5f, 0x84, 0x1c, 0x95, 0x2a, 0xad, 0x46, 0xbd, 0x56, 0x17, 0x63, 0xa5, 0x8b, 0x90, 0xa2, 0x4e, + 0xc0, 0x5b, 0xc3, 0x77, 0x83, 0x38, 0xc3, 0x86, 0x8c, 0x43, 0xe0, 0xb3, 0x7b, 0xdb, 0xeb, 0x75, + 0x59, 0x8c, 0x05, 0x97, 0xd7, 0x85, 0x5c, 0xb0, 0x2f, 0xfe, 0x68, 0x62, 0xea, 0x1f, 0x04, 0xc8, + 0x06, 0xfa, 0x5c, 0xdc, 0xa0, 0xa8, 0x86, 0x61, 0xdd, 0x56, 0x54, 0x43, 0x57, 0x5d, 0x16, 0x14, + 0x40, 0x44, 0x55, 0x2c, 0x99, 0x76, 0xd1, 0x3e, 0x12, 0xe3, 0x5f, 0x17, 0x40, 0x1c, 0x6d, 0x31, + 0x47, 0x0c, 0x14, 0x7e, 0xa2, 0x06, 0xbe, 0x26, 0x40, 0x3e, 0xdc, 0x57, 0x8e, 0x98, 0x77, 0xf6, + 0x27, 0x6a, 0xde, 0x5b, 0x31, 0x98, 0x0b, 0x75, 0x93, 0xd3, 0x5a, 0xf7, 0x39, 0x58, 0xd0, 0x3b, + 0xa8, 0x6f, 0x5b, 0x1e, 0x32, 0xb5, 0x43, 0xc5, 0x40, 0xb7, 0x90, 0x51, 0x28, 0x91, 0x44, 0xb1, + 0x76, 0xff, 0x7e, 0xb5, 0xdc, 0x18, 0xe2, 0xb6, 0x30, 0xac, 0xb2, 0xd8, 0xd8, 0xa8, 0x6f, 0xb7, + 0x9a, 0xbb, 0xf5, 0x9d, 0xda, 0x8b, 0xca, 0xde, 0xce, 0xcf, 0xee, 0x34, 0x9f, 0xdf, 0x91, 0x45, + 0x7d, 0x44, 0xed, 0x43, 0xdc, 0xea, 0x2d, 0x10, 0x47, 0x8d, 0x92, 0x1e, 0x84, 0x49, 0x66, 0x89, + 0x33, 0xd2, 0x22, 0xcc, 0xef, 0x34, 0x95, 0x76, 0x63, 0xa3, 0xae, 0xd4, 0xaf, 0x5d, 0xab, 0xd7, + 0x76, 0xdb, 0xf4, 0x06, 0xc2, 0xd7, 0xde, 0x0d, 0x6f, 0xea, 0x57, 0xe3, 0xb0, 0x38, 0xc1, 0x12, + 0xa9, 0xca, 0xce, 0x0e, 0xf4, 0x38, 0xf3, 0xf1, 0x69, 0xac, 0x2f, 0xe3, 0x92, 0xdf, 0x52, 0x1d, + 0x8f, 0x1d, 0x35, 0x9e, 0x00, 0xec, 0x25, 0xd3, 0xd3, 0xbb, 0x3a, 0x72, 0xd8, 0x85, 0x0d, 0x3d, + 0x50, 0xcc, 0x0f, 0xe5, 0xf4, 0xce, 0xe6, 0xa7, 0x40, 0xb2, 0x2d, 0x57, 0xf7, 0xf4, 0x5b, 0x48, + 0xd1, 0x4d, 0x7e, 0xbb, 0x83, 0x0f, 0x18, 0x09, 0x59, 0xe4, 0x33, 0x0d, 0xd3, 0xf3, 0xb5, 0x4d, + 0xd4, 0x53, 0x47, 0xb4, 0x71, 0x02, 0x8f, 0xcb, 0x22, 0x9f, 0xf1, 0xb5, 0xcf, 0x42, 0xae, 0x63, + 0x0d, 0x70, 0xd7, 0x45, 0xf5, 0x70, 0xbd, 0x10, 0xe4, 0x2c, 0x95, 0xf9, 0x2a, 0xac, 0x9f, 0x1e, + 0x5e, 0x2b, 0xe5, 0xe4, 0x2c, 0x95, 0x51, 0x95, 0x73, 0x30, 0xaf, 0xf6, 0x7a, 0x0e, 0x26, 0xe7, + 0x44, 0xf4, 0x84, 0x90, 0xf7, 0xc5, 0x44, 0x71, 0xf9, 0x3a, 0xa4, 0xb9, 0x1f, 0x70, 0x49, 0xc6, + 0x9e, 0x50, 0x6c, 0x7a, 0xec, 0x8d, 0xad, 0x66, 0xe4, 0xb4, 0xc9, 0x27, 0xcf, 0x42, 0x4e, 0x77, + 0x95, 0xe1, 0x2d, 0x79, 0x6c, 0x25, 0xb6, 0x9a, 0x96, 0xb3, 0xba, 0xeb, 0xdf, 0x30, 0x96, 0xde, + 0x88, 0x41, 0x3e, 0x7c, 0xcb, 0x2f, 0x6d, 0x40, 0xda, 0xb0, 0x34, 0x95, 0x84, 0x16, 0xfd, 0xc4, + 0xb4, 0x1a, 0xf1, 0x61, 0xa0, 0xbc, 0xc5, 0xf4, 0x65, 0x1f, 0xb9, 0xfc, 0x2f, 0x02, 0xa4, 0xb9, + 0x58, 0x3a, 0x05, 0x09, 0x5b, 0xf5, 0x0e, 0x08, 0x5d, 0x72, 0x3d, 0x26, 0x0a, 0x32, 0x19, 0x63, + 0xb9, 0x6b, 0xab, 0x26, 0x09, 0x01, 0x26, 0xc7, 0x63, 0xbc, 0xae, 0x06, 0x52, 0x3b, 0xe4, 0xf8, + 0x61, 0xf5, 0xfb, 0xc8, 0xf4, 0x5c, 0xbe, 0xae, 0x4c, 0x5e, 0x63, 0x62, 0xe9, 0x29, 0x58, 0xf0, + 0x1c, 0x55, 0x37, 0x42, 0xba, 0x09, 0xa2, 0x2b, 0xf2, 0x09, 0x5f, 0xb9, 0x02, 0xa7, 0x39, 0x6f, + 0x07, 0x79, 0xaa, 0x76, 0x80, 0x3a, 0x43, 0x50, 0x8a, 0x5c, 0x33, 0x3c, 0xc8, 0x14, 0x36, 0xd8, + 0x3c, 0xc7, 0x96, 0xbe, 0x27, 0xc0, 0x02, 0x3f, 0x30, 0x75, 0x7c, 0x67, 0x6d, 0x03, 0xa8, 0xa6, + 0x69, 0x79, 0x41, 0x77, 0x8d, 0x87, 0xf2, 0x18, 0xae, 0x5c, 0xf5, 0x41, 0x72, 0x80, 0x60, 0xb9, + 0x0f, 0x30, 0x9c, 0x39, 0xd6, 0x6d, 0x67, 0x20, 0xcb, 0x3e, 0xe1, 0x90, 0xef, 0x80, 0xf4, 0x88, + 0x0d, 0x54, 0x84, 0x4f, 0x56, 0xd2, 0x12, 0x24, 0xf7, 0x51, 0x4f, 0x37, 0xd9, 0xc5, 0x2c, 0x1d, + 0xf0, 0x8b, 0x90, 0x84, 0x7f, 0x11, 0xb2, 0xfe, 0x59, 0x58, 0xd4, 0xac, 0xfe, 0xa8, 0xb9, 0xeb, + 0xe2, 0xc8, 0x31, 0xdf, 0xfd, 0x94, 0xf0, 0x12, 0x0c, 0x5b, 0xcc, 0xf7, 0x05, 0xe1, 0x8f, 0x63, + 0xf1, 0xcd, 0xd6, 0xfa, 0x57, 0x63, 0xcb, 0x9b, 0x14, 0xda, 0xe2, 0x6f, 0x2a, 0xa3, 0xae, 0x81, + 0x34, 0x6c, 0x3d, 0x7c, 0xe1, 0x1c, 0x7c, 0xbc, 0xa7, 0x7b, 0x07, 0x83, 0xfd, 0xb2, 0x66, 0xf5, + 0xd7, 0x7a, 0x56, 0xcf, 0x1a, 0x7e, 0xfa, 0xc4, 0x23, 0x32, 0x20, 0xff, 0xb1, 0xcf, 0x9f, 0x19, + 0x5f, 0xba, 0x1c, 0xf9, 0xad, 0xb4, 0xb2, 0x03, 0x8b, 0x4c, 0x59, 0x21, 0xdf, 0x5f, 0xe8, 0x29, + 0x42, 0xba, 0xef, 0x1d, 0x56, 0xe1, 0xeb, 0x6f, 0x93, 0x72, 0x2d, 0x2f, 0x30, 0x28, 0x9e, 0xa3, + 0x07, 0x8d, 0x8a, 0x0c, 0x0f, 0x84, 0xf8, 0xe8, 0xd6, 0x44, 0x4e, 0x04, 0xe3, 0x77, 0x18, 0xe3, + 0x62, 0x80, 0xb1, 0xcd, 0xa0, 0x95, 0x1a, 0xcc, 0x9d, 0x84, 0xeb, 0x9f, 0x18, 0x57, 0x0e, 0x05, + 0x49, 0x36, 0x61, 0x9e, 0x90, 0x68, 0x03, 0xd7, 0xb3, 0xfa, 0x24, 0xef, 0xdd, 0x9f, 0xe6, 0x9f, + 0xdf, 0xa6, 0x7b, 0x25, 0x8f, 0x61, 0x35, 0x1f, 0x55, 0xa9, 0x00, 0xf9, 0xe4, 0xd4, 0x41, 0x9a, + 0x11, 0xc1, 0xf0, 0x26, 0x33, 0xc4, 0xd7, 0xaf, 0x7c, 0x06, 0x96, 0xf0, 0xff, 0x24, 0x2d, 0x05, + 0x2d, 0x89, 0xbe, 0xf0, 0x2a, 0x7c, 0xef, 0x15, 0xba, 0x1d, 0x17, 0x7d, 0x82, 0x80, 0x4d, 0x81, + 0x55, 0xec, 0x21, 0xcf, 0x43, 0x8e, 0xab, 0xa8, 0xc6, 0x24, 0xf3, 0x02, 0x37, 0x06, 0x85, 0x2f, + 0xbd, 0x13, 0x5e, 0xc5, 0x4d, 0x8a, 0xac, 0x1a, 0x46, 0x65, 0x0f, 0x1e, 0x9c, 0x10, 0x15, 0x53, + 0x70, 0xbe, 0xca, 0x38, 0x97, 0xc6, 0x22, 0x03, 0xd3, 0xb6, 0x80, 0xcb, 0xfd, 0xb5, 0x9c, 0x82, + 0xf3, 0xf7, 0x19, 0xa7, 0xc4, 0xb0, 0x7c, 0x49, 0x31, 0xe3, 0x75, 0x58, 0xb8, 0x85, 0x9c, 0x7d, + 0xcb, 0x65, 0xb7, 0x34, 0x53, 0xd0, 0xbd, 0xc6, 0xe8, 0xe6, 0x19, 0x90, 0x5c, 0xdb, 0x60, 0xae, + 0x2b, 0x90, 0xee, 0xaa, 0x1a, 0x9a, 0x82, 0xe2, 0xcb, 0x8c, 0x62, 0x16, 0xeb, 0x63, 0x68, 0x15, + 0x72, 0x3d, 0x8b, 0x55, 0xa6, 0x68, 0xf8, 0xeb, 0x0c, 0x9e, 0xe5, 0x18, 0x46, 0x61, 0x5b, 0xf6, + 0xc0, 0xc0, 0x65, 0x2b, 0x9a, 0xe2, 0x0f, 0x38, 0x05, 0xc7, 0x30, 0x8a, 0x13, 0xb8, 0xf5, 0x0f, + 0x39, 0x85, 0x1b, 0xf0, 0xe7, 0x73, 0x90, 0xb5, 0x4c, 0xe3, 0xd0, 0x32, 0xa7, 0x31, 0xe2, 0x8f, + 0x18, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x0a, 0x99, 0x69, 0x17, 0xe2, 0x4f, 0xde, 0xe1, 0xdb, 0x83, + 0xaf, 0xc0, 0x26, 0xcc, 0xf3, 0x04, 0xa5, 0x5b, 0xe6, 0x14, 0x14, 0x7f, 0xca, 0x28, 0xf2, 0x01, + 0x18, 0x7b, 0x0d, 0x0f, 0xb9, 0x5e, 0x0f, 0x4d, 0x43, 0xf2, 0x06, 0x7f, 0x0d, 0x06, 0x61, 0xae, + 0xdc, 0x47, 0xa6, 0x76, 0x30, 0x1d, 0xc3, 0x57, 0xb8, 0x2b, 0x39, 0x06, 0x53, 0xd4, 0x60, 0xae, + 0xaf, 0x3a, 0xee, 0x81, 0x6a, 0x4c, 0xb5, 0x1c, 0x7f, 0xc6, 0x38, 0x72, 0x3e, 0x88, 0x79, 0x64, + 0x60, 0x9e, 0x84, 0xe6, 0xab, 0xdc, 0x23, 0x01, 0x18, 0xdb, 0x7a, 0xae, 0x47, 0xae, 0xb4, 0x4e, + 0xc2, 0xf6, 0xe7, 0x7c, 0xeb, 0x51, 0xec, 0x76, 0x90, 0xf1, 0x2a, 0x64, 0x5c, 0xfd, 0xce, 0x54, + 0x34, 0x7f, 0xc1, 0x57, 0x9a, 0x00, 0x30, 0xf8, 0x45, 0x38, 0x3d, 0xb1, 0x4c, 0x4c, 0x41, 0xf6, + 0x97, 0x8c, 0xec, 0xd4, 0x84, 0x52, 0xc1, 0x52, 0xc2, 0x49, 0x29, 0xff, 0x8a, 0xa7, 0x04, 0x34, + 0xc2, 0xd5, 0xc2, 0x67, 0x05, 0x57, 0xed, 0x9e, 0xcc, 0x6b, 0x7f, 0xcd, 0xbd, 0x46, 0xb1, 0x21, + 0xaf, 0xed, 0xc2, 0x29, 0xc6, 0x78, 0xb2, 0x75, 0xfd, 0x1a, 0x4f, 0xac, 0x14, 0xbd, 0x17, 0x5e, + 0xdd, 0xcf, 0xc2, 0xb2, 0xef, 0x4e, 0xde, 0x94, 0xba, 0x4a, 0x5f, 0xb5, 0xa7, 0x60, 0xfe, 0x3a, + 0x63, 0xe6, 0x19, 0xdf, 0xef, 0x6a, 0xdd, 0x6d, 0xd5, 0xc6, 0xe4, 0x2f, 0x40, 0x81, 0x93, 0x0f, + 0x4c, 0x07, 0x69, 0x56, 0xcf, 0xd4, 0xef, 0xa0, 0xce, 0x14, 0xd4, 0x7f, 0x33, 0xb2, 0x54, 0x7b, + 0x01, 0x38, 0x66, 0x6e, 0x80, 0xe8, 0xf7, 0x2a, 0x8a, 0xde, 0xb7, 0x2d, 0xc7, 0x8b, 0x60, 0xfc, + 0x06, 0x5f, 0x29, 0x1f, 0xd7, 0x20, 0xb0, 0x4a, 0x1d, 0xf2, 0x64, 0x38, 0x6d, 0x48, 0xfe, 0x2d, + 0x23, 0x9a, 0x1b, 0xa2, 0x58, 0xe2, 0xd0, 0xac, 0xbe, 0xad, 0x3a, 0xd3, 0xe4, 0xbf, 0xbf, 0xe3, + 0x89, 0x83, 0x41, 0x58, 0xe2, 0xf0, 0x0e, 0x6d, 0x84, 0xab, 0xfd, 0x14, 0x0c, 0xdf, 0xe4, 0x89, + 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0xa6, 0xa0, 0xf8, 0x16, 0xa7, 0xe0, 0x18, 0x4c, 0xf1, 0xe9, + 0x61, 0xa1, 0x75, 0x50, 0x4f, 0x77, 0x3d, 0x87, 0xb6, 0xc2, 0xf7, 0xa7, 0xfa, 0xf6, 0x3b, 0xe1, + 0x26, 0x4c, 0x0e, 0x40, 0x2b, 0xd7, 0x61, 0x7e, 0xa4, 0xc5, 0x90, 0xa2, 0x7e, 0xbf, 0x52, 0xf8, + 0xc5, 0xf7, 0x58, 0x32, 0x0a, 0x77, 0x18, 0x95, 0x2d, 0xbc, 0xee, 0xe1, 0x3e, 0x20, 0x9a, 0xec, + 0x95, 0xf7, 0xfc, 0xa5, 0x0f, 0xb5, 0x01, 0x95, 0x6b, 0x30, 0x17, 0xea, 0x01, 0xa2, 0xa9, 0x7e, + 0x89, 0x51, 0xe5, 0x82, 0x2d, 0x40, 0xe5, 0x22, 0x24, 0x70, 0x3d, 0x8f, 0x86, 0xff, 0x32, 0x83, + 0x13, 0xf5, 0xca, 0x27, 0x21, 0xcd, 0xeb, 0x78, 0x34, 0xf4, 0x57, 0x18, 0xd4, 0x87, 0x60, 0x38, + 0xaf, 0xe1, 0xd1, 0xf0, 0x5f, 0xe5, 0x70, 0x0e, 0xc1, 0xf0, 0xe9, 0x5d, 0xf8, 0x8f, 0xbf, 0x96, + 0x60, 0x79, 0x98, 0xfb, 0xee, 0x2a, 0xcc, 0xb2, 0xe2, 0x1d, 0x8d, 0xfe, 0x3c, 0x7b, 0x38, 0x47, + 0x54, 0x9e, 0x81, 0xe4, 0x94, 0x0e, 0xff, 0x75, 0x06, 0xa5, 0xfa, 0x95, 0x1a, 0x64, 0x03, 0x05, + 0x3b, 0x1a, 0xfe, 0x1b, 0x0c, 0x1e, 0x44, 0x61, 0xd3, 0x59, 0xc1, 0x8e, 0x26, 0xf8, 0x4d, 0x6e, + 0x3a, 0x43, 0x60, 0xb7, 0xf1, 0x5a, 0x1d, 0x8d, 0xfe, 0x2d, 0xee, 0x75, 0x0e, 0xa9, 0x3c, 0x07, + 0x19, 0x3f, 0xff, 0x46, 0xe3, 0x7f, 0x9b, 0xe1, 0x87, 0x18, 0xec, 0x81, 0x40, 0xfe, 0x8f, 0xa6, + 0xf8, 0x1d, 0xee, 0x81, 0x00, 0x0a, 0x6f, 0xa3, 0xd1, 0x9a, 0x1e, 0xcd, 0xf4, 0xbb, 0x7c, 0x1b, + 0x8d, 0x94, 0x74, 0xbc, 0x9a, 0x24, 0x0d, 0x46, 0x53, 0xfc, 0x1e, 0x5f, 0x4d, 0xa2, 0x8f, 0xcd, + 0x18, 0x2d, 0x92, 0xd1, 0x1c, 0x5f, 0xe0, 0x66, 0x8c, 0xd4, 0xc8, 0x4a, 0x0b, 0xa4, 0xf1, 0x02, + 0x19, 0xcd, 0xf7, 0x45, 0xc6, 0xb7, 0x30, 0x56, 0x1f, 0x2b, 0xcf, 0xc3, 0xa9, 0xc9, 0xc5, 0x31, + 0x9a, 0xf5, 0x4b, 0xef, 0x8d, 0x1c, 0x67, 0x82, 0xb5, 0xb1, 0xb2, 0x3b, 0xcc, 0xb2, 0xc1, 0xc2, + 0x18, 0x4d, 0xfb, 0xea, 0x7b, 0xe1, 0x44, 0x1b, 0xac, 0x8b, 0x95, 0x2a, 0xc0, 0xb0, 0x26, 0x45, + 0x73, 0xbd, 0xc6, 0xb8, 0x02, 0x20, 0xbc, 0x35, 0x58, 0x49, 0x8a, 0xc6, 0x7f, 0x99, 0x6f, 0x0d, + 0x86, 0xc0, 0x5b, 0x83, 0x57, 0xa3, 0x68, 0xf4, 0xeb, 0x7c, 0x6b, 0x70, 0x48, 0xe5, 0x2a, 0xa4, + 0xcd, 0x81, 0x61, 0xe0, 0xd8, 0x92, 0xee, 0xff, 0x93, 0xac, 0xc2, 0x7f, 0x7c, 0xc0, 0xc0, 0x1c, + 0x50, 0xb9, 0x08, 0x49, 0xd4, 0xdf, 0x47, 0x9d, 0x28, 0xe4, 0x7f, 0x7e, 0xc0, 0xf3, 0x09, 0xd6, + 0xae, 0x3c, 0x07, 0x40, 0x0f, 0xd3, 0xe4, 0x43, 0x51, 0x04, 0xf6, 0xbf, 0x3e, 0x60, 0x3f, 0x96, + 0x18, 0x42, 0x86, 0x04, 0xf4, 0xa7, 0x17, 0xf7, 0x27, 0x78, 0x27, 0x4c, 0x40, 0x0e, 0xe0, 0x57, + 0x60, 0xf6, 0x86, 0x6b, 0x99, 0x9e, 0xda, 0x8b, 0x42, 0xff, 0x37, 0x43, 0x73, 0x7d, 0xec, 0xb0, + 0xbe, 0xe5, 0x20, 0x4f, 0xed, 0xb9, 0x51, 0xd8, 0xff, 0x61, 0x58, 0x1f, 0x80, 0xc1, 0x9a, 0xea, + 0x7a, 0xd3, 0xbc, 0xf7, 0x0f, 0x39, 0x98, 0x03, 0xb0, 0xd1, 0xf8, 0xff, 0x9b, 0xe8, 0x30, 0x0a, + 0xfb, 0x2e, 0x37, 0x9a, 0xe9, 0x57, 0x3e, 0x09, 0x19, 0xfc, 0x2f, 0xfd, 0x05, 0x54, 0x04, 0xf8, + 0x7f, 0x19, 0x78, 0x88, 0xc0, 0x4f, 0x76, 0xbd, 0x8e, 0xa7, 0x47, 0x3b, 0xfb, 0xff, 0xd8, 0x4a, + 0x73, 0xfd, 0x4a, 0x15, 0xb2, 0xae, 0xd7, 0xe9, 0x0c, 0x58, 0x47, 0x13, 0x01, 0xff, 0xff, 0x0f, + 0xfc, 0x43, 0xae, 0x8f, 0x59, 0xaf, 0x4f, 0xbe, 0xaf, 0x83, 0x4d, 0x6b, 0xd3, 0xa2, 0x37, 0x75, + 0x2f, 0x95, 0xa2, 0xaf, 0xdc, 0xe0, 0x5b, 0x71, 0x78, 0x58, 0xb3, 0xfa, 0xfb, 0x96, 0xbb, 0x16, + 0x48, 0x55, 0x6b, 0x7d, 0xd5, 0x66, 0x17, 0x71, 0xd9, 0xbe, 0x6a, 0xb3, 0x5f, 0x3c, 0xba, 0xcb, + 0x27, 0xbb, 0xc4, 0x2b, 0xfd, 0x02, 0xcc, 0x6e, 0xab, 0xf6, 0x2e, 0x72, 0x3d, 0x89, 0x38, 0x8b, + 0xfc, 0xb4, 0x86, 0xdd, 0x8c, 0xae, 0x94, 0x03, 0xc4, 0x65, 0xa6, 0x56, 0x6e, 0x7b, 0x4e, 0xdb, + 0x73, 0xc8, 0x57, 0x64, 0x39, 0xe5, 0x92, 0xc1, 0xf2, 0x15, 0xc8, 0x06, 0xc4, 0x92, 0x08, 0xf1, + 0x9b, 0xe8, 0x90, 0xfd, 0xb8, 0x06, 0xff, 0x2b, 0x2d, 0x0d, 0x7f, 0xfd, 0x86, 0x65, 0x74, 0x50, + 0x89, 0x5d, 0x16, 0x4a, 0xcf, 0xc2, 0xec, 0x35, 0xf5, 0x26, 0xda, 0x56, 0x6d, 0xe9, 0x02, 0xcc, + 0x22, 0xd3, 0x73, 0x74, 0xe4, 0x32, 0x03, 0x4e, 0x87, 0x0c, 0x60, 0x6a, 0xf4, 0xc9, 0x5c, 0xb3, + 0xb4, 0x05, 0xb9, 0xe0, 0xc4, 0xb4, 0xcf, 0xc6, 0x52, 0xcb, 0x3b, 0x60, 0xbf, 0x86, 0xcd, 0xc8, + 0x74, 0xb0, 0xbe, 0xf1, 0xe6, 0xbd, 0xe2, 0xcc, 0x77, 0xef, 0x15, 0x67, 0xfe, 0xf5, 0x5e, 0x71, + 0xe6, 0xad, 0x7b, 0x45, 0xe1, 0xdd, 0x7b, 0x45, 0xe1, 0xfd, 0x7b, 0x45, 0xe1, 0xee, 0x51, 0x51, + 0xf8, 0xca, 0x51, 0x51, 0xf8, 0xda, 0x51, 0x51, 0xf8, 0xf6, 0x51, 0x51, 0x78, 0xf3, 0xa8, 0x38, + 0xf3, 0xdd, 0xa3, 0xa2, 0xf0, 0xd6, 0x51, 0x51, 0xf8, 0xc1, 0x51, 0x71, 0xe6, 0xdd, 0xa3, 0xa2, + 0xf0, 0xfe, 0x51, 0x71, 0xe6, 0xee, 0xf7, 0x8b, 0x33, 0xfb, 0x29, 0xe2, 0xdb, 0x0b, 0x3f, 0x0a, + 0x00, 0x00, 0xff, 0xff, 0x20, 0x1a, 0x0c, 0x48, 0x46, 0x32, 0x00, 0x00, + } + r := bytes.NewReader(gzipped) + gzipr, err := gzip.NewReader(r) + if err != nil { + panic(err) + } + ungzipped, err := ioutil.ReadAll(gzipr) + if err != nil { + panic(err) + } + if err := proto.Unmarshal(ungzipped, d); err != nil { + panic(err) + } + return d +} +func (this *MapTest) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*MapTest) + if !ok { + that2, ok := that.(MapTest) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *MapTest") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *MapTest but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *MapTest but is not nil && this == nil") + } + if len(this.StrStr) != len(that1.StrStr) { + return fmt.Errorf("StrStr this(%v) Not Equal that(%v)", len(this.StrStr), len(that1.StrStr)) + } + for i := range this.StrStr { + if this.StrStr[i] != that1.StrStr[i] { + return fmt.Errorf("StrStr this[%v](%v) Not Equal that[%v](%v)", i, this.StrStr[i], i, that1.StrStr[i]) + } + } + return nil +} +func (this *MapTest) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*MapTest) + if !ok { + that2, ok := that.(MapTest) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.StrStr) != len(that1.StrStr) { + return false + } + for i := range this.StrStr { + if this.StrStr[i] != that1.StrStr[i] { + return false + } + } + return true +} +func (this *FakeMap) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*FakeMap) + if !ok { + that2, ok := that.(FakeMap) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *FakeMap") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *FakeMap but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *FakeMap but is not nil && this == nil") + } + if len(this.Entries) != len(that1.Entries) { + return fmt.Errorf("Entries this(%v) Not Equal that(%v)", len(this.Entries), len(that1.Entries)) + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return fmt.Errorf("Entries this[%v](%v) Not Equal that[%v](%v)", i, this.Entries[i], i, that1.Entries[i]) + } + } + return nil +} +func (this *FakeMap) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FakeMap) + if !ok { + that2, ok := that.(FakeMap) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if len(this.Entries) != len(that1.Entries) { + return false + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return false + } + } + return true +} +func (this *FakeMapEntry) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*FakeMapEntry) + if !ok { + that2, ok := that.(FakeMapEntry) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *FakeMapEntry") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *FakeMapEntry but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *FakeMapEntry but is not nil && this == nil") + } + if this.Key != that1.Key { + return fmt.Errorf("Key this(%v) Not Equal that(%v)", this.Key, that1.Key) + } + if this.Value != that1.Value { + return fmt.Errorf("Value this(%v) Not Equal that(%v)", this.Value, that1.Value) + } + if this.Other != that1.Other { + return fmt.Errorf("Other this(%v) Not Equal that(%v)", this.Other, that1.Other) + } + return nil +} +func (this *FakeMapEntry) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*FakeMapEntry) + if !ok { + that2, ok := that.(FakeMapEntry) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Key != that1.Key { + return false + } + if this.Value != that1.Value { + return false + } + if this.Other != that1.Other { + return false + } + return true +} +func (this *MapTest) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&mapdefaults.MapTest{") + keysForStrStr := make([]string, 0, len(this.StrStr)) + for k := range this.StrStr { + keysForStrStr = append(keysForStrStr, k) + } + sortkeys.Strings(keysForStrStr) + mapStringForStrStr := "map[string]string{" + for _, k := range keysForStrStr { + mapStringForStrStr += fmt.Sprintf("%#v: %#v,", k, this.StrStr[k]) + } + mapStringForStrStr += "}" + if this.StrStr != nil { + s = append(s, "StrStr: "+mapStringForStrStr+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FakeMap) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 5) + s = append(s, "&mapdefaults.FakeMap{") + if this.Entries != nil { + s = append(s, "Entries: "+fmt.Sprintf("%#v", this.Entries)+",\n") + } + s = append(s, "}") + return strings.Join(s, "") +} +func (this *FakeMapEntry) GoString() string { + if this == nil { + return "nil" + } + s := make([]string, 0, 7) + s = append(s, "&mapdefaults.FakeMapEntry{") + s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") + s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n") + s = append(s, "Other: "+fmt.Sprintf("%#v", this.Other)+",\n") + s = append(s, "}") + return strings.Join(s, "") +} +func valueToGoStringMap(v interface{}, typ string) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) +} +func NewPopulatedMapTest(r randyMap, easy bool) *MapTest { + this := &MapTest{} + if r.Intn(10) != 0 { + v1 := r.Intn(10) + this.StrStr = make(map[string]string) + for i := 0; i < v1; i++ { + this.StrStr[randStringMap(r)] = randStringMap(r) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedFakeMap(r randyMap, easy bool) *FakeMap { + this := &FakeMap{} + if r.Intn(10) != 0 { + v2 := r.Intn(5) + this.Entries = make([]*FakeMapEntry, v2) + for i := 0; i < v2; i++ { + this.Entries[i] = NewPopulatedFakeMapEntry(r, easy) + } + } + if !easy && r.Intn(10) != 0 { + } + return this +} + +func NewPopulatedFakeMapEntry(r randyMap, easy bool) *FakeMapEntry { + this := &FakeMapEntry{} + this.Key = string(randStringMap(r)) + this.Value = string(randStringMap(r)) + this.Other = string(randStringMap(r)) + if !easy && r.Intn(10) != 0 { + } + return this +} + +type randyMap interface { + Float32() float32 + Float64() float64 + Int63() int64 + Int31() int32 + Uint32() uint32 + Intn(n int) int +} + +func randUTF8RuneMap(r randyMap) rune { + ru := r.Intn(62) + if ru < 10 { + return rune(ru + 48) + } else if ru < 36 { + return rune(ru + 55) + } + return rune(ru + 61) +} +func randStringMap(r randyMap) string { + v3 := r.Intn(100) + tmps := make([]rune, v3) + for i := 0; i < v3; i++ { + tmps[i] = randUTF8RuneMap(r) + } + return string(tmps) +} +func randUnrecognizedMap(r randyMap, maxFieldNumber int) (dAtA []byte) { + l := r.Intn(5) + for i := 0; i < l; i++ { + wire := r.Intn(4) + if wire == 3 { + wire = 5 + } + fieldNumber := maxFieldNumber + r.Intn(100) + dAtA = randFieldMap(dAtA, r, fieldNumber, wire) + } + return dAtA +} +func randFieldMap(dAtA []byte, r randyMap, fieldNumber int, wire int) []byte { + key := uint32(fieldNumber)<<3 | uint32(wire) + switch wire { + case 0: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + v4 := r.Int63() + if r.Intn(2) == 0 { + v4 *= -1 + } + dAtA = encodeVarintPopulateMap(dAtA, uint64(v4)) + case 1: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + case 2: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + ll := r.Intn(100) + dAtA = encodeVarintPopulateMap(dAtA, uint64(ll)) + for j := 0; j < ll; j++ { + dAtA = append(dAtA, byte(r.Intn(256))) + } + default: + dAtA = encodeVarintPopulateMap(dAtA, uint64(key)) + dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) + } + return dAtA +} +func encodeVarintPopulateMap(dAtA []byte, v uint64) []byte { + for v >= 1<<7 { + dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) + v >>= 7 + } + dAtA = append(dAtA, uint8(v)) + return dAtA +} +func (m *MapTest) Size() (n int) { + var l int + _ = l + if len(m.StrStr) > 0 { + for k, v := range m.StrStr { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovMap(uint64(len(k))) + 1 + len(v) + sovMap(uint64(len(v))) + n += mapEntrySize + 1 + sovMap(uint64(mapEntrySize)) + } + } + return n +} + +func (m *FakeMap) Size() (n int) { + var l int + _ = l + if len(m.Entries) > 0 { + for _, e := range m.Entries { + l = e.Size() + n += 1 + l + sovMap(uint64(l)) + } + } + return n +} + +func (m *FakeMapEntry) Size() (n int) { + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + l = len(m.Other) + if l > 0 { + n += 1 + l + sovMap(uint64(l)) + } + return n +} + +func sovMap(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozMap(x uint64) (n int) { + return sovMap(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *MapTest) String() string { + if this == nil { + return "nil" + } + keysForStrStr := make([]string, 0, len(this.StrStr)) + for k := range this.StrStr { + keysForStrStr = append(keysForStrStr, k) + } + sortkeys.Strings(keysForStrStr) + mapStringForStrStr := "map[string]string{" + for _, k := range keysForStrStr { + mapStringForStrStr += fmt.Sprintf("%v: %v,", k, this.StrStr[k]) + } + mapStringForStrStr += "}" + s := strings.Join([]string{`&MapTest{`, + `StrStr:` + mapStringForStrStr + `,`, + `}`, + }, "") + return s +} +func (this *FakeMap) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FakeMap{`, + `Entries:` + strings.Replace(fmt.Sprintf("%v", this.Entries), "FakeMapEntry", "FakeMapEntry", 1) + `,`, + `}`, + }, "") + return s +} +func (this *FakeMapEntry) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FakeMapEntry{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `Other:` + fmt.Sprintf("%v", this.Other) + `,`, + `}`, + }, "") + return s +} +func valueToStringMap(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *MapTest) 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 ErrIntOverflowMap + } + 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: MapTest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapTest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StrStr", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMap + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StrStr == nil { + m.StrStr = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMap + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMap + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipMap(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMap + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.StrStr[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMap(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMap + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FakeMap) 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 ErrIntOverflowMap + } + 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: FakeMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FakeMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Entries", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMap + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Entries = append(m.Entries, &FakeMapEntry{}) + if err := m.Entries[len(m.Entries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMap(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMap + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FakeMapEntry) 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 ErrIntOverflowMap + } + 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: FakeMapEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FakeMapEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + 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 ErrInvalidLengthMap + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = 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 ErrIntOverflowMap + } + 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 ErrInvalidLengthMap + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Other", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + 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 ErrInvalidLengthMap + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Other = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMap(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMap + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipMap(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, ErrIntOverflowMap + } + 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, ErrIntOverflowMap + } + 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, ErrIntOverflowMap + } + 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, ErrInvalidLengthMap + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMap + } + 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 := skipMap(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 ( + ErrInvalidLengthMap = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowMap = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("combos/unmarshaler/map.proto", fileDescriptorMap) } + +var fileDescriptorMap = []byte{ + // 315 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xbf, 0x4f, 0x02, 0x31, + 0x14, 0xc7, 0xfb, 0x20, 0x72, 0xb1, 0x38, 0x98, 0x8b, 0xc3, 0x49, 0xcc, 0x0b, 0x61, 0x62, 0xf1, + 0x2e, 0x91, 0x45, 0x1c, 0x1c, 0x8c, 0x3a, 0xc9, 0x02, 0xee, 0xa6, 0x87, 0xe5, 0x47, 0xe0, 0xe8, + 0xa5, 0xed, 0x99, 0x30, 0xc9, 0x9f, 0xe3, 0xe8, 0xe8, 0x9f, 0xc0, 0xc8, 0xe8, 0x48, 0xeb, 0xe2, + 0xc8, 0xc8, 0x68, 0xe8, 0x61, 0x72, 0x6e, 0x6e, 0xef, 0xf3, 0xed, 0xa7, 0x7d, 0xdf, 0x94, 0x9e, + 0xf5, 0x45, 0x12, 0x0b, 0x15, 0x65, 0xb3, 0x84, 0x49, 0x35, 0x62, 0x53, 0x2e, 0xa3, 0x84, 0xa5, + 0x61, 0x2a, 0x85, 0x16, 0x7e, 0x35, 0x61, 0xe9, 0x33, 0x1f, 0xb0, 0x6c, 0xaa, 0x55, 0xed, 0x7c, + 0x38, 0xd6, 0xa3, 0x2c, 0x0e, 0xfb, 0x22, 0x89, 0x86, 0x62, 0x28, 0x22, 0xe7, 0xc4, 0xd9, 0xc0, + 0x91, 0x03, 0x37, 0xe5, 0x77, 0x1b, 0xaf, 0xd4, 0xeb, 0xb0, 0xf4, 0x91, 0x2b, 0xed, 0xb7, 0xa9, + 0xa7, 0xb4, 0x7c, 0x52, 0x5a, 0x06, 0x50, 0x2f, 0x37, 0xab, 0x17, 0xf5, 0xb0, 0xf0, 0x70, 0xb8, + 0xd7, 0xc2, 0x9e, 0x96, 0x3d, 0x2d, 0xef, 0x66, 0x5a, 0xce, 0xbb, 0x15, 0xe5, 0xa0, 0xd6, 0xa6, + 0xd5, 0x42, 0xec, 0x1f, 0xd3, 0xf2, 0x84, 0xcf, 0x03, 0xa8, 0x43, 0xf3, 0xb0, 0xbb, 0x1b, 0xfd, + 0x13, 0x7a, 0xf0, 0xc2, 0xa6, 0x19, 0x0f, 0x4a, 0x2e, 0xcb, 0xe1, 0xaa, 0x74, 0x09, 0x8d, 0x6b, + 0xea, 0xdd, 0xb3, 0x09, 0xef, 0xb0, 0xd4, 0x6f, 0x51, 0x8f, 0xcf, 0xb4, 0x1c, 0x73, 0xb5, 0x2f, + 0x70, 0xfa, 0xa7, 0xc0, 0x5e, 0xcb, 0x37, 0xff, 0x9a, 0x8d, 0x07, 0x7a, 0x54, 0x3c, 0xf8, 0xef, + 0xee, 0x5d, 0x2a, 0xf4, 0x88, 0xcb, 0xa0, 0x9c, 0xa7, 0x0e, 0x6e, 0x6e, 0x97, 0x06, 0xc9, 0xca, + 0x20, 0xf9, 0x34, 0x48, 0xd6, 0x06, 0x61, 0x63, 0x10, 0xb6, 0x06, 0x61, 0x61, 0x11, 0xde, 0x2c, + 0xc2, 0xbb, 0x45, 0xf8, 0xb0, 0x08, 0x4b, 0x8b, 0x64, 0x65, 0x11, 0xd6, 0x16, 0xe1, 0xdb, 0x22, + 0xd9, 0x58, 0x84, 0xad, 0x45, 0xb2, 0xf8, 0x42, 0x12, 0x57, 0xdc, 0xdf, 0xb6, 0x7e, 0x02, 0x00, + 0x00, 0xff, 0xff, 0x44, 0xd1, 0x73, 0x81, 0xb7, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.proto similarity index 77% rename from vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.proto rename to vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.proto index 717dbf2ff..75a379ce4 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.proto +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map.proto @@ -1,6 +1,6 @@ // Protocol Buffers for Go with Gadgets // -// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// Copyright (c) 2017, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -27,8 +27,8 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. syntax = "proto3"; +package mapdefaults; -package one; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; @@ -44,39 +44,27 @@ option (gogoproto.description_all) = true; option (gogoproto.testgen_all) = true; option (gogoproto.populate_all) = true; -option (gogoproto.unmarshaler_all) = false; +option (gogoproto.unmarshaler_all) = true; option (gogoproto.marshaler_all) = false; option (gogoproto.sizer_all) = true; option (gogoproto.goproto_enum_stringer_all) = false; option (gogoproto.enum_stringer_all) = true; -option (gogoproto.unsafe_marshaler_all) = true; +option (gogoproto.unsafe_marshaler_all) = false; option (gogoproto.unsafe_unmarshaler_all) = false; -message Subby { - string sub = 1; -} -message SampleOneOf { - oneof test_oneof { - double Field1 = 1; - float Field2 = 2; - int32 Field3 = 3; - int64 Field4 = 4; - uint32 Field5 = 5; - uint64 Field6 = 6; - sint32 Field7 = 7; - sint64 Field8 = 8; - fixed32 Field9 = 9; - sfixed32 Field10 = 10; - fixed64 Field11 = 11; - sfixed64 Field12 = 12; - bool Field13 = 13; - string Field14 = 14; - bytes Field15 = 15; - Subby sub_message = 16; - } +message MapTest { + map str_str = 1; } +message FakeMap { + repeated FakeMapEntry entries = 1; +} +message FakeMapEntry { + string key = 1; + string value = 2; + string other = 3; +} diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map_test.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map_test.go new file mode 100644 index 000000000..9998ead10 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/map_test.go @@ -0,0 +1,180 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package mapdefaults + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestUnmarshalImplicitDefaultKeyValue1(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "foo", + Value: "", + }, + { + Key: "", + Value: "bar", + }, + { + Key: "as", + Value: "df", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 3 { + t.Fatal("StrStr map should have 3 key/value pairs") + } + + val, ok := strStr["foo"] + if !ok { + t.Fatal("\"foo\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"foo\": %s", val) + } + + val, ok = strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "bar" { + t.Fatalf("Unexpected value for \"\": %s", val) + } + + val, ok = strStr["as"] + if !ok { + t.Fatal("\"as\" not found in StrStr map.") + } + if val != "df" { + t.Fatalf("Unexpected value for \"as\": %s", val) + } +} + +func TestUnmarshalImplicitDefaultKeyValue2(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "", + Value: "", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + // Sanity check + if string(serializedMsg) != "\n\x00" { + t.Fatal("Serialized bytes mismatched") + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"\": %s", val) + } +} + +func TestUnmarshalIgnoreUnknownField(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + { + Key: "key", + Value: "value", + Other: "other", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := &MapTest{} + err = proto.Unmarshal(serializedMsg, msg) + + if err != nil { + var pb proto.Message = msg + _, ok := pb.(proto.Unmarshaler) + if !ok { + // non-codegen implementation returns error when extra tags are + // present. + return + } + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr["key"] + if !ok { + t.Fatal("\"key\" not found in StrStr map.") + } + if val != "value" { + t.Fatalf("Unexpected value for \"value\": %s", val) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/mappb_test.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/mappb_test.go new file mode 100644 index 000000000..d79882b3e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/combos/unmarshaler/mappb_test.go @@ -0,0 +1,480 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: combos/unmarshaler/map.proto + +/* +Package mapdefaults is a generated protocol buffer package. + +It is generated from these files: + combos/unmarshaler/map.proto + +It has these top-level messages: + MapTest + FakeMap + FakeMapEntry +*/ +package mapdefaults + +import testing "testing" +import rand "math/rand" +import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +func TestMapTestProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestFakeMapProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestFakeMapEntryProto(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + littlefuzz := make([]byte, len(dAtA)) + copy(littlefuzz, dAtA) + for i := range dAtA { + dAtA[i] = byte(popr.Intn(256)) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } + if len(littlefuzz) > 0 { + fuzzamount := 100 + for i := 0; i < fuzzamount; i++ { + littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) + littlefuzz = append(littlefuzz, byte(popr.Intn(256))) + } + // shouldn't panic + _ = proto.Unmarshal(littlefuzz, msg) + } +} + +func TestMapTestJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &MapTest{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestFakeMapJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMap{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestFakeMapEntryJSON(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + marshaler := jsonpb.Marshaler{} + jsondata, err := marshaler.MarshalToString(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + msg := &FakeMapEntry{} + err = jsonpb.UnmarshalString(jsondata, msg) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) + } +} +func TestMapTestProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &MapTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapTestProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + dAtA := proto.CompactTextString(p) + msg := &MapTest{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &FakeMap{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + dAtA := proto.CompactTextString(p) + msg := &FakeMap{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProtoText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + dAtA := proto.MarshalTextString(p) + msg := &FakeMapEntry{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestFakeMapEntryProtoCompactText(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + dAtA := proto.CompactTextString(p) + msg := &FakeMapEntry{} + if err := proto.UnmarshalText(dAtA, msg); err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) + } + if !p.Equal(msg) { + t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) + } +} + +func TestMapDescription(t *testing.T) { + MapDescription() +} +func TestMapTestVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &MapTest{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestFakeMapVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &FakeMap{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestFakeMapEntryVerboseEqual(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + dAtA, err := proto.Marshal(p) + if err != nil { + panic(err) + } + msg := &FakeMapEntry{} + if err := proto.Unmarshal(dAtA, msg); err != nil { + panic(err) + } + if err := p.VerboseEqual(msg); err != nil { + t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) + } +} +func TestMapTestGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestFakeMapGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestFakeMapEntryGoString(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + s1 := p.GoString() + s2 := fmt.Sprintf("%#v", p) + if s1 != s2 { + t.Fatalf("GoString want %v got %v", s1, s2) + } + _, err := parser.ParseExpr(s1) + if err != nil { + t.Fatal(err) + } +} +func TestMapTestSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedMapTest(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestFakeMapSize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMap(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestFakeMapEntrySize(t *testing.T) { + seed := time.Now().UnixNano() + popr := rand.New(rand.NewSource(seed)) + p := NewPopulatedFakeMapEntry(popr, true) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) + if err != nil { + t.Fatalf("seed = %d, err = %v", seed, err) + } + size := p.Size() + if len(dAtA) != size { + t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) + } + if size2 != size { + t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) + } + size3 := proto.Size(p) + if size3 != size { + t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) + } +} + +func TestMapTestStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedMapTest(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestFakeMapStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMap(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} +func TestFakeMapEntryStringer(t *testing.T) { + popr := rand.New(rand.NewSource(time.Now().UnixNano())) + p := NewPopulatedFakeMapEntry(popr, false) + s1 := p.String() + s2 := fmt.Sprintf("%v", p) + if s1 != s2 { + t.Fatalf("String want %v got %v", s1, s2) + } +} + +//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/map.pb.go b/vendor/github.com/gogo/protobuf/test/mapdefaults/map.pb.go new file mode 100644 index 000000000..8046683ca --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/map.pb.go @@ -0,0 +1,414 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: map.proto + +/* +Package mapdefaults is a generated protocol buffer package. + +It is generated from these files: + map.proto + +It has these top-level messages: + MapTest +*/ +package mapdefaults + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +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 + +type MapTest struct { + StrStr map[string]string `protobuf:"bytes,1,rep,name=str_str,json=strStr" json:"str_str,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *MapTest) Reset() { *m = MapTest{} } +func (m *MapTest) String() string { return proto.CompactTextString(m) } +func (*MapTest) ProtoMessage() {} +func (*MapTest) Descriptor() ([]byte, []int) { return fileDescriptorMap, []int{0} } + +func (m *MapTest) GetStrStr() map[string]string { + if m != nil { + return m.StrStr + } + return nil +} + +func init() { + proto.RegisterType((*MapTest)(nil), "mapdefaults.MapTest") +} +func (m *MapTest) 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 *MapTest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.StrStr) > 0 { + for k := range m.StrStr { + dAtA[i] = 0xa + i++ + v := m.StrStr[k] + mapSize := 1 + len(k) + sovMap(uint64(len(k))) + 1 + len(v) + sovMap(uint64(len(v))) + i = encodeVarintMap(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintMap(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintMap(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + return i, nil +} + +func encodeFixed64Map(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 encodeFixed32Map(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 encodeVarintMap(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 *MapTest) Size() (n int) { + var l int + _ = l + if len(m.StrStr) > 0 { + for k, v := range m.StrStr { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovMap(uint64(len(k))) + 1 + len(v) + sovMap(uint64(len(v))) + n += mapEntrySize + 1 + sovMap(uint64(mapEntrySize)) + } + } + return n +} + +func sovMap(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozMap(x uint64) (n int) { + return sovMap(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *MapTest) 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 ErrIntOverflowMap + } + 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: MapTest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MapTest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StrStr", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMap + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StrStr == nil { + m.StrStr = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMap + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMap + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMap + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } + } + m.StrStr[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMap(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMap + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipMap(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, ErrIntOverflowMap + } + 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, ErrIntOverflowMap + } + 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, ErrIntOverflowMap + } + 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, ErrInvalidLengthMap + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowMap + } + 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 := skipMap(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 ( + ErrInvalidLengthMap = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowMap = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("map.proto", fileDescriptorMap) } + +var fileDescriptorMap = []byte{ + // 161 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xcc, 0x4d, 0x2c, 0xd0, + 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xce, 0x4d, 0x2c, 0x48, 0x49, 0x4d, 0x4b, 0x2c, 0xcd, + 0x29, 0x29, 0x56, 0xaa, 0xe7, 0x62, 0xf7, 0x4d, 0x2c, 0x08, 0x49, 0x2d, 0x2e, 0x11, 0xb2, 0xe4, + 0x62, 0x2f, 0x2e, 0x29, 0x8a, 0x2f, 0x2e, 0x29, 0x92, 0x60, 0x54, 0x60, 0xd6, 0xe0, 0x36, 0x52, + 0xd0, 0x43, 0x52, 0xa9, 0x07, 0x55, 0xa6, 0x17, 0x5c, 0x52, 0x14, 0x5c, 0x52, 0xe4, 0x9a, 0x57, + 0x52, 0x54, 0x19, 0xc4, 0x56, 0x0c, 0xe6, 0x48, 0x59, 0x72, 0x71, 0x23, 0x09, 0x0b, 0x09, 0x70, + 0x31, 0x67, 0xa7, 0x56, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x06, 0x81, 0x98, 0x42, 0x22, 0x5c, + 0xac, 0x65, 0x89, 0x39, 0xa5, 0xa9, 0x12, 0x4c, 0x60, 0x31, 0x08, 0xc7, 0x8a, 0xc9, 0x82, 0xd1, + 0x89, 0xe7, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x4c, 0x62, + 0x03, 0x3b, 0xd1, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x38, 0xe5, 0x24, 0x74, 0xaf, 0x00, 0x00, + 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.proto b/vendor/github.com/gogo/protobuf/test/mapdefaults/map.proto similarity index 81% rename from vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.proto rename to vendor/github.com/gogo/protobuf/test/mapdefaults/map.proto index 22e94ea35..43d5c0dab 100644 --- a/vendor/github.com/gogo/protobuf/test/castvalue/combos/unsafeunmarshaler/castvalue.proto +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/map.proto @@ -1,6 +1,6 @@ // Protocol Buffers for Go with Gadgets // -// Copyright (c) 2015, The GoGo Authors. All rights reserved. +// Copyright (c) 2017, The GoGo Authors. All rights reserved. // http://github.com/gogo/protobuf // // Redistribution and use in source and binary forms, with or without @@ -26,9 +26,9 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -syntax = "proto2"; +syntax = "proto3"; +package mapdefaults; -package castvalue; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; @@ -40,12 +40,10 @@ option (gogoproto.equal_all) = true; option (gogoproto.verbose_equal_all) = true; option (gogoproto.stringer_all) = true; option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; option (gogoproto.description_all) = true; option (gogoproto.testgen_all) = true; option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; option (gogoproto.unmarshaler_all) = false; option (gogoproto.marshaler_all) = false; option (gogoproto.sizer_all) = true; @@ -54,13 +52,19 @@ option (gogoproto.goproto_enum_stringer_all) = false; option (gogoproto.enum_stringer_all) = true; option (gogoproto.unsafe_marshaler_all) = false; -option (gogoproto.unsafe_unmarshaler_all) = true; +option (gogoproto.unsafe_unmarshaler_all) = false; -message Castaway { - map CastMapValueMessage = 1 [(gogoproto.castvalue) = "MyWilson", (gogoproto.nullable) = false]; - map CastMapValueMessageNullable = 2 [(gogoproto.castvalue) = "MyWilson"]; + +message MapTest { + map str_str = 1; +} + +message FakeMap { + repeated FakeMapEntry entries = 1; } -message Wilson { - optional int64 Int64 = 1; +message FakeMapEntry { + string key = 1; + string value = 2; + string other = 3; } diff --git a/vendor/github.com/gogo/protobuf/test/mapdefaults/map_test.go.in b/vendor/github.com/gogo/protobuf/test/mapdefaults/map_test.go.in new file mode 100644 index 000000000..51e1260c3 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mapdefaults/map_test.go.in @@ -0,0 +1,180 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2017, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package mapdefaults + +import ( + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestUnmarshalImplicitDefaultKeyValue1(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + &FakeMapEntry{ + Key: "foo", + Value: "", + }, + &FakeMapEntry{ + Key: "", + Value: "bar", + }, + &FakeMapEntry{ + Key: "as", + Value: "df", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 3 { + t.Fatal("StrStr map should have 3 key/value pairs") + } + + val, ok := strStr["foo"] + if !ok { + t.Fatal("\"foo\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"foo\": %s", val) + } + + val, ok = strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "bar" { + t.Fatalf("Unexpected value for \"\": %s", val) + } + + val, ok = strStr["as"] + if !ok { + t.Fatal("\"as\" not found in StrStr map.") + } + if val != "df" { + t.Fatalf("Unexpected value for \"as\": %s", val) + } +} + +func TestUnmarshalImplicitDefaultKeyValue2(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + &FakeMapEntry{ + Key: "", + Value: "", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + // Sanity check + if string(serializedMsg) != "\n\x00" { + t.Fatal("Serialized bytes mismatched") + } + + msg := MapTest{} + err = proto.Unmarshal(serializedMsg, &msg) + + if err != nil { + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr[""] + if !ok { + t.Fatal("\"\" not found in StrStr map.") + } + if val != "" { + t.Fatalf("Unexpected value for \"\": %s", val) + } +} + +func TestUnmarshalIgnoreUnknownField(t *testing.T) { + fm := &FakeMap{ + Entries: []*FakeMapEntry{ + &FakeMapEntry{ + Key: "key", + Value: "value", + Other: "other", + }, + }, + } + + serializedMsg, err := proto.Marshal(fm) + if err != nil { + t.Fatalf("Failed to serialize msg: %s", err) + } + + msg := &MapTest{} + err = proto.Unmarshal(serializedMsg, msg) + + if err != nil { + var pb proto.Message = msg + _, ok := pb.(proto.Unmarshaler) + if !ok { + // non-codegen implementation returns error when extra tags are + // present. + return + } + t.Fatalf("Unexpected error: %s", err) + } + + strStr := msg.StrStr + if len(strStr) != 1 { + t.Fatal("StrStr map should have 1 key/value pairs") + } + + val, ok := strStr["key"] + if !ok { + t.Fatal("\"key\" not found in StrStr map.") + } + if val != "value" { + t.Fatalf("Unexpected value for \"value\": %s", val) + } +} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go index f8e42b0a3..66fbd915a 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/mapsproto2.proto -// DO NOT EDIT! /* Package proto2_maps is a generated protocol buffer package. @@ -24,17 +23,18 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strconv "strconv" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +import binary "encoding/binary" import io "io" @@ -164,320 +164,326 @@ func init() { proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) } -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *FloatingPoint) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomMap) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMaps) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMapsOrdered) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func Mapsproto2Description() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4577 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xd6, 0xf0, 0x21, 0x91, 0x87, 0x14, 0x35, 0x1a, 0xc9, 0x6b, 0x5a, 0xb6, 0xa9, 0x5d, 0xf9, - 0x25, 0xaf, 0x6d, 0xc9, 0x96, 0x77, 0xd7, 0x6b, 0x6e, 0x6c, 0x83, 0x92, 0xb8, 0x5a, 0xd9, 0x7a, - 0x65, 0x28, 0xd9, 0x6b, 0x17, 0xc6, 0x74, 0x34, 0xbc, 0xa4, 0xc6, 0x3b, 0x9c, 0xa1, 0x67, 0x86, - 0xeb, 0x95, 0x7f, 0x14, 0x5b, 0xb8, 0x0f, 0x04, 0x45, 0xdf, 0x05, 0xea, 0xb8, 0x8e, 0xdb, 0x04, - 0x68, 0x9d, 0x26, 0x7d, 0x24, 0x7d, 0xa4, 0x41, 0x7f, 0xe5, 0x4f, 0x5a, 0x03, 0x05, 0x8a, 0xe4, - 0x5f, 0x10, 0x04, 0x86, 0x57, 0x31, 0x50, 0xb7, 0x75, 0x5b, 0x37, 0x31, 0xd0, 0x00, 0xfe, 0x53, - 0xdc, 0xd7, 0x70, 0x66, 0x38, 0xe4, 0x50, 0x06, 0x9c, 0xe4, 0x87, 0x7f, 0x49, 0x73, 0xee, 0xf9, - 0xbe, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, 0x73, 0xe6, 0x72, 0xe0, 0x87, 0x67, 0xe1, 0x64, 0xd3, 0xb2, - 0x9a, 0x06, 0x5a, 0x6c, 0xdb, 0x96, 0x6b, 0xed, 0x77, 0x1a, 0x8b, 0x75, 0xe4, 0x68, 0xb6, 0xde, - 0x76, 0x2d, 0x7b, 0x81, 0xc8, 0xa4, 0x09, 0xaa, 0xb1, 0xc0, 0x35, 0xe6, 0x36, 0x61, 0xf2, 0xa2, - 0x6e, 0xa0, 0x55, 0x4f, 0xb1, 0x86, 0x5c, 0xe9, 0x3c, 0xa4, 0x1a, 0xba, 0x81, 0x8a, 0xc2, 0xc9, - 0xe4, 0x7c, 0x6e, 0xe9, 0xce, 0x85, 0x10, 0x68, 0x21, 0x88, 0xd8, 0xc1, 0x62, 0x99, 0x20, 0xe6, - 0xde, 0x4d, 0xc1, 0x54, 0xc4, 0xa8, 0x24, 0x41, 0xca, 0x54, 0x5b, 0x98, 0x51, 0x98, 0xcf, 0xca, - 0xe4, 0x7f, 0xa9, 0x08, 0x63, 0x6d, 0x55, 0xbb, 0xa2, 0x36, 0x51, 0x31, 0x41, 0xc4, 0xfc, 0x51, - 0x2a, 0x01, 0xd4, 0x51, 0x1b, 0x99, 0x75, 0x64, 0x6a, 0x87, 0xc5, 0xe4, 0xc9, 0xe4, 0x7c, 0x56, - 0xf6, 0x49, 0xa4, 0xfb, 0x60, 0xb2, 0xdd, 0xd9, 0x37, 0x74, 0x4d, 0xf1, 0xa9, 0xc1, 0xc9, 0xe4, - 0x7c, 0x5a, 0x16, 0xe9, 0xc0, 0x6a, 0x57, 0xf9, 0x1e, 0x98, 0x78, 0x09, 0xa9, 0x57, 0xfc, 0xaa, - 0x39, 0xa2, 0x5a, 0xc0, 0x62, 0x9f, 0xe2, 0x0a, 0xe4, 0x5b, 0xc8, 0x71, 0xd4, 0x26, 0x52, 0xdc, - 0xc3, 0x36, 0x2a, 0xa6, 0xc8, 0xea, 0x4f, 0xf6, 0xac, 0x3e, 0xbc, 0xf2, 0x1c, 0x43, 0xed, 0x1e, - 0xb6, 0x91, 0x54, 0x81, 0x2c, 0x32, 0x3b, 0x2d, 0xca, 0x90, 0xee, 0xe3, 0xbf, 0xaa, 0xd9, 0x69, - 0x85, 0x59, 0x32, 0x18, 0xc6, 0x28, 0xc6, 0x1c, 0x64, 0x5f, 0xd5, 0x35, 0x54, 0x1c, 0x25, 0x04, - 0xf7, 0xf4, 0x10, 0xd4, 0xe8, 0x78, 0x98, 0x83, 0xe3, 0xa4, 0x15, 0xc8, 0xa2, 0x6b, 0x2e, 0x32, - 0x1d, 0xdd, 0x32, 0x8b, 0x63, 0x84, 0xe4, 0xae, 0x88, 0x5d, 0x44, 0x46, 0x3d, 0x4c, 0xd1, 0xc5, - 0x49, 0xe7, 0x60, 0xcc, 0x6a, 0xbb, 0xba, 0x65, 0x3a, 0xc5, 0xcc, 0x49, 0x61, 0x3e, 0xb7, 0x74, - 0x5b, 0x64, 0x20, 0x6c, 0x53, 0x1d, 0x99, 0x2b, 0x4b, 0xeb, 0x20, 0x3a, 0x56, 0xc7, 0xd6, 0x90, - 0xa2, 0x59, 0x75, 0xa4, 0xe8, 0x66, 0xc3, 0x2a, 0x66, 0x09, 0xc1, 0x6c, 0xef, 0x42, 0x88, 0xe2, - 0x8a, 0x55, 0x47, 0xeb, 0x66, 0xc3, 0x92, 0x0b, 0x4e, 0xe0, 0x59, 0x3a, 0x01, 0xa3, 0xce, 0xa1, - 0xe9, 0xaa, 0xd7, 0x8a, 0x79, 0x12, 0x21, 0xec, 0x69, 0xee, 0xff, 0xd2, 0x30, 0x31, 0x4c, 0x88, - 0x5d, 0x80, 0x74, 0x03, 0xaf, 0xb2, 0x98, 0x38, 0x8e, 0x0f, 0x28, 0x26, 0xe8, 0xc4, 0xd1, 0x8f, - 0xe9, 0xc4, 0x0a, 0xe4, 0x4c, 0xe4, 0xb8, 0xa8, 0x4e, 0x23, 0x22, 0x39, 0x64, 0x4c, 0x01, 0x05, - 0xf5, 0x86, 0x54, 0xea, 0x63, 0x85, 0xd4, 0x65, 0x98, 0xf0, 0x4c, 0x52, 0x6c, 0xd5, 0x6c, 0xf2, - 0xd8, 0x5c, 0x8c, 0xb3, 0x64, 0xa1, 0xca, 0x71, 0x32, 0x86, 0xc9, 0x05, 0x14, 0x78, 0x96, 0x56, - 0x01, 0x2c, 0x13, 0x59, 0x0d, 0xa5, 0x8e, 0x34, 0xa3, 0x98, 0xe9, 0xe3, 0xa5, 0x6d, 0xac, 0xd2, - 0xe3, 0x25, 0x8b, 0x4a, 0x35, 0x43, 0x7a, 0xb4, 0x1b, 0x6a, 0x63, 0x7d, 0x22, 0x65, 0x93, 0x1e, - 0xb2, 0x9e, 0x68, 0xdb, 0x83, 0x82, 0x8d, 0x70, 0xdc, 0xa3, 0x3a, 0x5b, 0x59, 0x96, 0x18, 0xb1, - 0x10, 0xbb, 0x32, 0x99, 0xc1, 0xe8, 0xc2, 0xc6, 0x6d, 0xff, 0xa3, 0x74, 0x07, 0x78, 0x02, 0x85, - 0x84, 0x15, 0x90, 0x2c, 0x94, 0xe7, 0xc2, 0x2d, 0xb5, 0x85, 0x66, 0xce, 0x43, 0x21, 0xe8, 0x1e, - 0x69, 0x1a, 0xd2, 0x8e, 0xab, 0xda, 0x2e, 0x89, 0xc2, 0xb4, 0x4c, 0x1f, 0x24, 0x11, 0x92, 0xc8, - 0xac, 0x93, 0x2c, 0x97, 0x96, 0xf1, 0xbf, 0x33, 0x8f, 0xc0, 0x78, 0x60, 0xfa, 0x61, 0x81, 0x73, - 0xaf, 0x8e, 0xc2, 0x74, 0x54, 0xcc, 0x45, 0x86, 0xff, 0x09, 0x18, 0x35, 0x3b, 0xad, 0x7d, 0x64, - 0x17, 0x93, 0x84, 0x81, 0x3d, 0x49, 0x15, 0x48, 0x1b, 0xea, 0x3e, 0x32, 0x8a, 0xa9, 0x93, 0xc2, - 0x7c, 0x61, 0xe9, 0xbe, 0xa1, 0xa2, 0x7a, 0x61, 0x03, 0x43, 0x64, 0x8a, 0x94, 0x1e, 0x87, 0x14, - 0x4b, 0x71, 0x98, 0xe1, 0xf4, 0x70, 0x0c, 0x38, 0x16, 0x65, 0x82, 0x93, 0x6e, 0x85, 0x2c, 0xfe, - 0x4b, 0x7d, 0x3b, 0x4a, 0x6c, 0xce, 0x60, 0x01, 0xf6, 0xab, 0x34, 0x03, 0x19, 0x12, 0x66, 0x75, - 0xc4, 0x4b, 0x83, 0xf7, 0x8c, 0x37, 0xa6, 0x8e, 0x1a, 0x6a, 0xc7, 0x70, 0x95, 0xab, 0xaa, 0xd1, - 0x41, 0x24, 0x60, 0xb2, 0x72, 0x9e, 0x09, 0x9f, 0xc6, 0x32, 0x69, 0x16, 0x72, 0x34, 0x2a, 0x75, - 0xb3, 0x8e, 0xae, 0x91, 0xec, 0x93, 0x96, 0x69, 0xa0, 0xae, 0x63, 0x09, 0x9e, 0xfe, 0x05, 0xc7, - 0x32, 0xf9, 0xd6, 0x92, 0x29, 0xb0, 0x80, 0x4c, 0xff, 0x48, 0x38, 0xf1, 0xdd, 0x1e, 0xbd, 0xbc, - 0x70, 0x2c, 0xce, 0x7d, 0x23, 0x01, 0x29, 0x72, 0xde, 0x26, 0x20, 0xb7, 0xfb, 0xec, 0x4e, 0x55, - 0x59, 0xdd, 0xde, 0x5b, 0xde, 0xa8, 0x8a, 0x82, 0x54, 0x00, 0x20, 0x82, 0x8b, 0x1b, 0xdb, 0x95, - 0x5d, 0x31, 0xe1, 0x3d, 0xaf, 0x6f, 0xed, 0x9e, 0x3b, 0x23, 0x26, 0x3d, 0xc0, 0x1e, 0x15, 0xa4, - 0xfc, 0x0a, 0x0f, 0x2f, 0x89, 0x69, 0x49, 0x84, 0x3c, 0x25, 0x58, 0xbf, 0x5c, 0x5d, 0x3d, 0x77, - 0x46, 0x1c, 0x0d, 0x4a, 0x1e, 0x5e, 0x12, 0xc7, 0xa4, 0x71, 0xc8, 0x12, 0xc9, 0xf2, 0xf6, 0xf6, - 0x86, 0x98, 0xf1, 0x38, 0x6b, 0xbb, 0xf2, 0xfa, 0xd6, 0x9a, 0x98, 0xf5, 0x38, 0xd7, 0xe4, 0xed, - 0xbd, 0x1d, 0x11, 0x3c, 0x86, 0xcd, 0x6a, 0xad, 0x56, 0x59, 0xab, 0x8a, 0x39, 0x4f, 0x63, 0xf9, - 0xd9, 0xdd, 0x6a, 0x4d, 0xcc, 0x07, 0xcc, 0x7a, 0x78, 0x49, 0x1c, 0xf7, 0xa6, 0xa8, 0x6e, 0xed, - 0x6d, 0x8a, 0x05, 0x69, 0x12, 0xc6, 0xe9, 0x14, 0xdc, 0x88, 0x89, 0x90, 0xe8, 0xdc, 0x19, 0x51, - 0xec, 0x1a, 0x42, 0x59, 0x26, 0x03, 0x82, 0x73, 0x67, 0x44, 0x69, 0x6e, 0x05, 0xd2, 0x24, 0xba, - 0x24, 0x09, 0x0a, 0x1b, 0x95, 0xe5, 0xea, 0x86, 0xb2, 0xbd, 0xb3, 0xbb, 0xbe, 0xbd, 0x55, 0xd9, - 0x10, 0x85, 0xae, 0x4c, 0xae, 0x7e, 0x76, 0x6f, 0x5d, 0xae, 0xae, 0x8a, 0x09, 0xbf, 0x6c, 0xa7, - 0x5a, 0xd9, 0xad, 0xae, 0x8a, 0xc9, 0x39, 0x0d, 0xa6, 0xa3, 0xf2, 0x4c, 0xe4, 0xc9, 0xf0, 0x6d, - 0x71, 0xa2, 0xcf, 0x16, 0x13, 0xae, 0x9e, 0x2d, 0xfe, 0x92, 0x00, 0x53, 0x11, 0xb9, 0x36, 0x72, - 0x92, 0x27, 0x20, 0x4d, 0x43, 0x94, 0x56, 0x9f, 0x7b, 0x23, 0x93, 0x36, 0x09, 0xd8, 0x9e, 0x0a, - 0x44, 0x70, 0xfe, 0x0a, 0x9c, 0xec, 0x53, 0x81, 0x31, 0x45, 0x8f, 0x91, 0xaf, 0x08, 0x50, 0xec, - 0xc7, 0x1d, 0x93, 0x28, 0x12, 0x81, 0x44, 0x71, 0x21, 0x6c, 0xc0, 0xa9, 0xfe, 0x6b, 0xe8, 0xb1, - 0xe2, 0x4d, 0x01, 0x4e, 0x44, 0x37, 0x2a, 0x91, 0x36, 0x3c, 0x0e, 0xa3, 0x2d, 0xe4, 0x1e, 0x58, - 0xbc, 0x58, 0xdf, 0x1d, 0x51, 0x02, 0xf0, 0x70, 0xd8, 0x57, 0x0c, 0xe5, 0xaf, 0x21, 0xc9, 0x7e, - 0xdd, 0x06, 0xb5, 0xa6, 0xc7, 0xd2, 0xcf, 0x25, 0xe0, 0xa6, 0x48, 0xf2, 0x48, 0x43, 0x6f, 0x07, - 0xd0, 0xcd, 0x76, 0xc7, 0xa5, 0x05, 0x99, 0xe6, 0xa7, 0x2c, 0x91, 0x90, 0xb3, 0x8f, 0x73, 0x4f, - 0xc7, 0xf5, 0xc6, 0x93, 0x64, 0x1c, 0xa8, 0x88, 0x28, 0x9c, 0xef, 0x1a, 0x9a, 0x22, 0x86, 0x96, - 0xfa, 0xac, 0xb4, 0xa7, 0xd6, 0x3d, 0x08, 0xa2, 0x66, 0xe8, 0xc8, 0x74, 0x15, 0xc7, 0xb5, 0x91, - 0xda, 0xd2, 0xcd, 0x26, 0x49, 0xc0, 0x99, 0x72, 0xba, 0xa1, 0x1a, 0x0e, 0x92, 0x27, 0xe8, 0x70, - 0x8d, 0x8f, 0x62, 0x04, 0xa9, 0x32, 0xb6, 0x0f, 0x31, 0x1a, 0x40, 0xd0, 0x61, 0x0f, 0x31, 0xf7, - 0xd5, 0x31, 0xc8, 0xf9, 0xda, 0x3a, 0xe9, 0x14, 0xe4, 0x5f, 0x50, 0xaf, 0xaa, 0x0a, 0x6f, 0xd5, - 0xa9, 0x27, 0x72, 0x58, 0xb6, 0xc3, 0xda, 0xf5, 0x07, 0x61, 0x9a, 0xa8, 0x58, 0x1d, 0x17, 0xd9, - 0x8a, 0x66, 0xa8, 0x8e, 0x43, 0x9c, 0x96, 0x21, 0xaa, 0x12, 0x1e, 0xdb, 0xc6, 0x43, 0x2b, 0x7c, - 0x44, 0x3a, 0x0b, 0x53, 0x04, 0xd1, 0xea, 0x18, 0xae, 0xde, 0x36, 0x90, 0x82, 0x5f, 0x1e, 0x1c, - 0x92, 0x88, 0x3d, 0xcb, 0x26, 0xb1, 0xc6, 0x26, 0x53, 0xc0, 0x16, 0x39, 0xd2, 0x2a, 0xdc, 0x4e, - 0x60, 0x4d, 0x64, 0x22, 0x5b, 0x75, 0x91, 0x82, 0x5e, 0xec, 0xa8, 0x86, 0xa3, 0xa8, 0x66, 0x5d, - 0x39, 0x50, 0x9d, 0x83, 0xe2, 0x34, 0x26, 0x58, 0x4e, 0x14, 0x05, 0xf9, 0x16, 0xac, 0xb8, 0xc6, - 0xf4, 0xaa, 0x44, 0xad, 0x62, 0xd6, 0x2f, 0xa9, 0xce, 0x81, 0x54, 0x86, 0x13, 0x84, 0xc5, 0x71, - 0x6d, 0xdd, 0x6c, 0x2a, 0xda, 0x01, 0xd2, 0xae, 0x28, 0x1d, 0xb7, 0x71, 0xbe, 0x78, 0xab, 0x7f, - 0x7e, 0x62, 0x61, 0x8d, 0xe8, 0xac, 0x60, 0x95, 0x3d, 0xb7, 0x71, 0x5e, 0xaa, 0x41, 0x1e, 0x6f, - 0x46, 0x4b, 0x7f, 0x19, 0x29, 0x0d, 0xcb, 0x26, 0x95, 0xa5, 0x10, 0x71, 0xb2, 0x7d, 0x1e, 0x5c, - 0xd8, 0x66, 0x80, 0x4d, 0xab, 0x8e, 0xca, 0xe9, 0xda, 0x4e, 0xb5, 0xba, 0x2a, 0xe7, 0x38, 0xcb, - 0x45, 0xcb, 0xc6, 0x01, 0xd5, 0xb4, 0x3c, 0x07, 0xe7, 0x68, 0x40, 0x35, 0x2d, 0xee, 0xde, 0xb3, - 0x30, 0xa5, 0x69, 0x74, 0xcd, 0xba, 0xa6, 0xb0, 0x16, 0xdf, 0x29, 0x8a, 0x01, 0x67, 0x69, 0xda, - 0x1a, 0x55, 0x60, 0x31, 0xee, 0x48, 0x8f, 0xc2, 0x4d, 0x5d, 0x67, 0xf9, 0x81, 0x93, 0x3d, 0xab, - 0x0c, 0x43, 0xcf, 0xc2, 0x54, 0xfb, 0xb0, 0x17, 0x28, 0x05, 0x66, 0x6c, 0x1f, 0x86, 0x61, 0x77, - 0x91, 0xd7, 0x36, 0x1b, 0x69, 0xaa, 0x8b, 0xea, 0xc5, 0x9b, 0xfd, 0xda, 0xbe, 0x01, 0x69, 0x11, - 0x44, 0x4d, 0x53, 0x90, 0xa9, 0xee, 0x1b, 0x48, 0x51, 0x6d, 0x64, 0xaa, 0x4e, 0x71, 0xd6, 0xaf, - 0x5c, 0xd0, 0xb4, 0x2a, 0x19, 0xad, 0x90, 0x41, 0xe9, 0x34, 0x4c, 0x5a, 0xfb, 0x2f, 0x68, 0x34, - 0xb2, 0x94, 0xb6, 0x8d, 0x1a, 0xfa, 0xb5, 0xe2, 0x9d, 0xc4, 0x4d, 0x13, 0x78, 0x80, 0xc4, 0xd5, - 0x0e, 0x11, 0x4b, 0xf7, 0x82, 0xa8, 0x39, 0x07, 0xaa, 0xdd, 0x26, 0xa5, 0xdd, 0x69, 0xab, 0x1a, - 0x2a, 0xde, 0x45, 0x55, 0xa9, 0x7c, 0x8b, 0x8b, 0x71, 0x64, 0x3b, 0x2f, 0xe9, 0x0d, 0x97, 0x33, - 0xde, 0x43, 0x23, 0x9b, 0xc8, 0x18, 0xdb, 0x65, 0x98, 0xee, 0x98, 0xba, 0xe9, 0x22, 0xbb, 0x6d, - 0x23, 0xdc, 0xc4, 0xd3, 0x93, 0x58, 0xfc, 0xb7, 0xb1, 0x3e, 0x6d, 0xf8, 0x9e, 0x5f, 0x9b, 0x06, - 0x80, 0x3c, 0xd5, 0xe9, 0x15, 0xce, 0x95, 0x21, 0xef, 0x8f, 0x0b, 0x29, 0x0b, 0x34, 0x32, 0x44, - 0x01, 0xd7, 0xd8, 0x95, 0xed, 0x55, 0x5c, 0x1d, 0x9f, 0xab, 0x8a, 0x09, 0x5c, 0xa5, 0x37, 0xd6, - 0x77, 0xab, 0x8a, 0xbc, 0xb7, 0xb5, 0xbb, 0xbe, 0x59, 0x15, 0x93, 0xa7, 0xb3, 0x99, 0xf7, 0xc6, - 0xc4, 0xeb, 0xd7, 0xaf, 0x5f, 0x4f, 0xcc, 0x7d, 0x3b, 0x01, 0x85, 0x60, 0x67, 0x2c, 0x7d, 0x06, - 0x6e, 0xe6, 0xaf, 0xb1, 0x0e, 0x72, 0x95, 0x97, 0x74, 0x9b, 0x84, 0x6a, 0x4b, 0xa5, 0xbd, 0xa5, - 0xe7, 0xe5, 0x69, 0xa6, 0x55, 0x43, 0xee, 0x33, 0xba, 0x8d, 0x03, 0xb1, 0xa5, 0xba, 0xd2, 0x06, - 0xcc, 0x9a, 0x96, 0xe2, 0xb8, 0xaa, 0x59, 0x57, 0xed, 0xba, 0xd2, 0xbd, 0x40, 0x50, 0x54, 0x4d, - 0x43, 0x8e, 0x63, 0xd1, 0x12, 0xe1, 0xb1, 0xdc, 0x66, 0x5a, 0x35, 0xa6, 0xdc, 0xcd, 0x9d, 0x15, - 0xa6, 0x1a, 0x8a, 0x88, 0x64, 0xbf, 0x88, 0xb8, 0x15, 0xb2, 0x2d, 0xb5, 0xad, 0x20, 0xd3, 0xb5, - 0x0f, 0x49, 0x3f, 0x97, 0x91, 0x33, 0x2d, 0xb5, 0x5d, 0xc5, 0xcf, 0x9f, 0xdc, 0x1e, 0xf8, 0xfd, - 0xf8, 0x83, 0x24, 0xe4, 0xfd, 0x3d, 0x1d, 0x6e, 0x91, 0x35, 0x92, 0xbf, 0x05, 0x72, 0xc2, 0xef, - 0x18, 0xd8, 0x01, 0x2e, 0xac, 0xe0, 0xc4, 0x5e, 0x1e, 0xa5, 0x9d, 0x96, 0x4c, 0x91, 0xb8, 0xa8, - 0xe2, 0x33, 0x8d, 0x68, 0xff, 0x9e, 0x91, 0xd9, 0x93, 0xb4, 0x06, 0xa3, 0x2f, 0x38, 0x84, 0x7b, - 0x94, 0x70, 0xdf, 0x39, 0x98, 0xfb, 0xc9, 0x1a, 0x21, 0xcf, 0x3e, 0x59, 0x53, 0xb6, 0xb6, 0xe5, - 0xcd, 0xca, 0x86, 0xcc, 0xe0, 0xd2, 0x2d, 0x90, 0x32, 0xd4, 0x97, 0x0f, 0x83, 0x25, 0x80, 0x88, - 0x86, 0x75, 0xfc, 0x2d, 0x90, 0x7a, 0x09, 0xa9, 0x57, 0x82, 0x89, 0x97, 0x88, 0x3e, 0xc1, 0xd0, - 0x5f, 0x84, 0x34, 0xf1, 0x97, 0x04, 0xc0, 0x3c, 0x26, 0x8e, 0x48, 0x19, 0x48, 0xad, 0x6c, 0xcb, - 0x38, 0xfc, 0x45, 0xc8, 0x53, 0xa9, 0xb2, 0xb3, 0x5e, 0x5d, 0xa9, 0x8a, 0x89, 0xb9, 0xb3, 0x30, - 0x4a, 0x9d, 0x80, 0x8f, 0x86, 0xe7, 0x06, 0x71, 0x84, 0x3d, 0x32, 0x0e, 0x81, 0x8f, 0xee, 0x6d, - 0x2e, 0x57, 0x65, 0x31, 0xe1, 0xdf, 0x5e, 0x07, 0xf2, 0xfe, 0x76, 0xee, 0xa7, 0x13, 0x53, 0xff, - 0x28, 0x40, 0xce, 0xd7, 0x9e, 0xe1, 0xc6, 0x40, 0x35, 0x0c, 0xeb, 0x25, 0x45, 0x35, 0x74, 0xd5, - 0x61, 0x41, 0x01, 0x44, 0x54, 0xc1, 0x92, 0x61, 0x37, 0xed, 0xa7, 0x62, 0xfc, 0x1b, 0x02, 0x88, - 0xe1, 0xd6, 0x2e, 0x64, 0xa0, 0xf0, 0x33, 0x35, 0xf0, 0x75, 0x01, 0x0a, 0xc1, 0x7e, 0x2e, 0x64, - 0xde, 0xa9, 0x9f, 0xa9, 0x79, 0xef, 0x24, 0x60, 0x3c, 0xd0, 0xc5, 0x0d, 0x6b, 0xdd, 0x8b, 0x30, - 0xa9, 0xd7, 0x51, 0xab, 0x6d, 0xb9, 0xc8, 0xd4, 0x0e, 0x15, 0x03, 0x5d, 0x45, 0x46, 0x71, 0x8e, - 0x24, 0x8a, 0xc5, 0xc1, 0x7d, 0xe2, 0xc2, 0x7a, 0x17, 0xb7, 0x81, 0x61, 0xe5, 0xa9, 0xf5, 0xd5, - 0xea, 0xe6, 0xce, 0xf6, 0x6e, 0x75, 0x6b, 0xe5, 0x59, 0x65, 0x6f, 0xeb, 0xa9, 0xad, 0xed, 0x67, - 0xb6, 0x64, 0x51, 0x0f, 0xa9, 0x7d, 0x82, 0x47, 0x7d, 0x07, 0xc4, 0xb0, 0x51, 0xd2, 0xcd, 0x10, - 0x65, 0x96, 0x38, 0x22, 0x4d, 0xc1, 0xc4, 0xd6, 0xb6, 0x52, 0x5b, 0x5f, 0xad, 0x2a, 0xd5, 0x8b, - 0x17, 0xab, 0x2b, 0xbb, 0x35, 0xfa, 0xe2, 0xec, 0x69, 0xef, 0x06, 0x0f, 0xf5, 0x6b, 0x49, 0x98, - 0x8a, 0xb0, 0x44, 0xaa, 0xb0, 0x9e, 0x9d, 0xbe, 0x46, 0x3c, 0x30, 0x8c, 0xf5, 0x0b, 0xb8, 0x2b, - 0xd8, 0x51, 0x6d, 0x97, 0xb5, 0xf8, 0xf7, 0x02, 0xf6, 0x92, 0xe9, 0xea, 0x0d, 0x1d, 0xd9, 0xec, - 0x9e, 0x81, 0x36, 0xf2, 0x13, 0x5d, 0x39, 0xbd, 0x6a, 0xb8, 0x1f, 0xa4, 0xb6, 0xe5, 0xe8, 0xae, - 0x7e, 0x15, 0x29, 0xba, 0xc9, 0x2f, 0x25, 0x70, 0x63, 0x9f, 0x92, 0x45, 0x3e, 0xb2, 0x6e, 0xba, - 0x9e, 0xb6, 0x89, 0x9a, 0x6a, 0x48, 0x1b, 0x27, 0xf0, 0xa4, 0x2c, 0xf2, 0x11, 0x4f, 0xfb, 0x14, - 0xe4, 0xeb, 0x56, 0x07, 0xb7, 0x49, 0x54, 0x0f, 0xd7, 0x0b, 0x41, 0xce, 0x51, 0x99, 0xa7, 0xc2, - 0xfa, 0xd8, 0xee, 0x6d, 0x48, 0x5e, 0xce, 0x51, 0x19, 0x55, 0xb9, 0x07, 0x26, 0xd4, 0x66, 0xd3, - 0xc6, 0xe4, 0x9c, 0x88, 0x76, 0xe6, 0x05, 0x4f, 0x4c, 0x14, 0x67, 0x9e, 0x84, 0x0c, 0xf7, 0x03, - 0x2e, 0xc9, 0xd8, 0x13, 0x4a, 0x9b, 0xde, 0x49, 0x25, 0xe6, 0xb3, 0x72, 0xc6, 0xe4, 0x83, 0xa7, - 0x20, 0xaf, 0x3b, 0x4a, 0xf7, 0x72, 0x34, 0x71, 0x32, 0x31, 0x9f, 0x91, 0x73, 0xba, 0xe3, 0xdd, - 0x86, 0xcd, 0xbd, 0x99, 0x80, 0x42, 0xf0, 0x72, 0x57, 0x5a, 0x85, 0x8c, 0x61, 0x69, 0x2a, 0x09, - 0x2d, 0xfa, 0xcb, 0xc2, 0x7c, 0xcc, 0x7d, 0xf0, 0xc2, 0x06, 0xd3, 0x97, 0x3d, 0xe4, 0xcc, 0xbf, - 0x0a, 0x90, 0xe1, 0x62, 0xe9, 0x04, 0xa4, 0xda, 0xaa, 0x7b, 0x40, 0xe8, 0xd2, 0xcb, 0x09, 0x51, - 0x90, 0xc9, 0x33, 0x96, 0x3b, 0x6d, 0xd5, 0x24, 0x21, 0xc0, 0xe4, 0xf8, 0x19, 0xef, 0xab, 0x81, - 0xd4, 0x3a, 0x69, 0xfb, 0xad, 0x56, 0x0b, 0x99, 0xae, 0xc3, 0xf7, 0x95, 0xc9, 0x57, 0x98, 0x58, - 0xba, 0x0f, 0x26, 0x5d, 0x5b, 0xd5, 0x8d, 0x80, 0x6e, 0x8a, 0xe8, 0x8a, 0x7c, 0xc0, 0x53, 0x2e, - 0xc3, 0x2d, 0x9c, 0xb7, 0x8e, 0x5c, 0x55, 0x3b, 0x40, 0xf5, 0x2e, 0x68, 0x94, 0xdc, 0x1c, 0xde, - 0xcc, 0x14, 0x56, 0xd9, 0x38, 0xc7, 0xce, 0x7d, 0x57, 0x80, 0x49, 0xfe, 0xa2, 0x52, 0xf7, 0x9c, - 0xb5, 0x09, 0xa0, 0x9a, 0xa6, 0xe5, 0xfa, 0xdd, 0xd5, 0x1b, 0xca, 0x3d, 0xb8, 0x85, 0x8a, 0x07, - 0x92, 0x7d, 0x04, 0x33, 0x2d, 0x80, 0xee, 0x48, 0x5f, 0xb7, 0xcd, 0x42, 0x8e, 0xdd, 0xdc, 0x93, - 0x9f, 0x7f, 0xe8, 0xab, 0x2d, 0x50, 0x11, 0x7e, 0xa3, 0x91, 0xa6, 0x21, 0xbd, 0x8f, 0x9a, 0xba, - 0xc9, 0xee, 0x13, 0xe9, 0x03, 0xbf, 0xa5, 0x4c, 0x79, 0xb7, 0x94, 0xcb, 0x97, 0x61, 0x4a, 0xb3, - 0x5a, 0x61, 0x73, 0x97, 0xc5, 0xd0, 0xeb, 0xb5, 0x73, 0x49, 0x78, 0x0e, 0xba, 0x2d, 0xe6, 0x97, - 0x12, 0xc9, 0xb5, 0x9d, 0xe5, 0xaf, 0x24, 0x66, 0xd6, 0x28, 0x6e, 0x87, 0x2f, 0x53, 0x46, 0x0d, - 0x03, 0x69, 0xd8, 0x74, 0xf8, 0xf1, 0xdd, 0xf0, 0x40, 0x53, 0x77, 0x0f, 0x3a, 0xfb, 0x0b, 0x9a, - 0xd5, 0x5a, 0x6c, 0x5a, 0x4d, 0xab, 0xfb, 0x73, 0x17, 0x7e, 0x22, 0x0f, 0xe4, 0x3f, 0xf6, 0x93, - 0x57, 0xd6, 0x93, 0xce, 0xc4, 0xfe, 0x3e, 0x56, 0xde, 0x82, 0x29, 0xa6, 0xac, 0x90, 0x3b, 0x77, - 0xfa, 0x6a, 0x20, 0x0d, 0xbc, 0x77, 0x29, 0x7e, 0xfd, 0x5d, 0x52, 0xab, 0xe5, 0x49, 0x06, 0xc5, - 0x63, 0xf4, 0x05, 0xa2, 0x2c, 0xc3, 0x4d, 0x01, 0x3e, 0x7a, 0x2e, 0x91, 0x1d, 0xc3, 0xf8, 0x6d, - 0xc6, 0x38, 0xe5, 0x63, 0xac, 0x31, 0x68, 0x79, 0x05, 0xc6, 0x8f, 0xc3, 0xf5, 0x4f, 0x8c, 0x2b, - 0x8f, 0xfc, 0x24, 0x6b, 0x30, 0x41, 0x48, 0xb4, 0x8e, 0xe3, 0x5a, 0x2d, 0x92, 0xf4, 0x06, 0xd3, - 0xfc, 0xf3, 0xbb, 0xf4, 0xa0, 0x14, 0x30, 0x6c, 0xc5, 0x43, 0x95, 0xcb, 0x40, 0x7e, 0x66, 0xa8, - 0x23, 0xcd, 0x88, 0x61, 0x78, 0x8b, 0x19, 0xe2, 0xe9, 0x97, 0x9f, 0x86, 0x69, 0xfc, 0x3f, 0xc9, - 0x49, 0x7e, 0x4b, 0xe2, 0x6f, 0x99, 0x8a, 0xdf, 0x7d, 0x85, 0x9e, 0xc5, 0x29, 0x8f, 0xc0, 0x67, - 0x93, 0x6f, 0x17, 0x9b, 0xc8, 0x75, 0x91, 0xed, 0x28, 0xaa, 0x11, 0x65, 0x9e, 0xef, 0x35, 0xbd, - 0xf8, 0xf9, 0xf7, 0x83, 0xbb, 0xb8, 0x46, 0x91, 0x15, 0xc3, 0x28, 0xef, 0xc1, 0xcd, 0x11, 0x51, - 0x31, 0x04, 0xe7, 0x6b, 0x8c, 0x73, 0xba, 0x27, 0x32, 0x30, 0xed, 0x0e, 0x70, 0xb9, 0xb7, 0x97, - 0x43, 0x70, 0xfe, 0x11, 0xe3, 0x94, 0x18, 0x96, 0x6f, 0x29, 0x66, 0x7c, 0x12, 0x26, 0xaf, 0x22, - 0x7b, 0xdf, 0x72, 0xd8, 0xd5, 0xc8, 0x10, 0x74, 0xaf, 0x33, 0xba, 0x09, 0x06, 0x24, 0x77, 0x25, - 0x98, 0xeb, 0x51, 0xc8, 0x34, 0x54, 0x0d, 0x0d, 0x41, 0xf1, 0x05, 0x46, 0x31, 0x86, 0xf5, 0x31, - 0xb4, 0x02, 0xf9, 0xa6, 0xc5, 0xca, 0x52, 0x3c, 0xfc, 0x0d, 0x06, 0xcf, 0x71, 0x0c, 0xa3, 0x68, - 0x5b, 0xed, 0x8e, 0x81, 0x6b, 0x56, 0x3c, 0xc5, 0x1f, 0x73, 0x0a, 0x8e, 0x61, 0x14, 0xc7, 0x70, - 0xeb, 0x9f, 0x70, 0x0a, 0xc7, 0xe7, 0xcf, 0x27, 0x20, 0x67, 0x99, 0xc6, 0xa1, 0x65, 0x0e, 0x63, - 0xc4, 0x17, 0x19, 0x03, 0x30, 0x08, 0x26, 0xb8, 0x00, 0xd9, 0x61, 0x37, 0xe2, 0x4f, 0xdf, 0xe7, - 0xc7, 0x83, 0xef, 0xc0, 0x1a, 0x4c, 0xf0, 0x04, 0xa5, 0x5b, 0xe6, 0x10, 0x14, 0x7f, 0xc6, 0x28, - 0x0a, 0x3e, 0x18, 0x5b, 0x86, 0x8b, 0x1c, 0xb7, 0x89, 0x86, 0x21, 0x79, 0x93, 0x2f, 0x83, 0x41, - 0x98, 0x2b, 0xf7, 0x91, 0xa9, 0x1d, 0x0c, 0xc7, 0xf0, 0x65, 0xee, 0x4a, 0x8e, 0xc1, 0x14, 0x2b, - 0x30, 0xde, 0x52, 0x6d, 0xe7, 0x40, 0x35, 0x86, 0xda, 0x8e, 0x3f, 0x67, 0x1c, 0x79, 0x0f, 0xc4, - 0x3c, 0xd2, 0x31, 0x8f, 0x43, 0xf3, 0x15, 0xee, 0x11, 0x1f, 0x8c, 0x1d, 0x3d, 0xc7, 0x25, 0x17, - 0x50, 0xc7, 0x61, 0xfb, 0x2a, 0x3f, 0x7a, 0x14, 0xbb, 0xe9, 0x67, 0xbc, 0x00, 0x59, 0x47, 0x7f, - 0x79, 0x28, 0x9a, 0xbf, 0xe0, 0x3b, 0x4d, 0x00, 0x18, 0xfc, 0x2c, 0xdc, 0x12, 0x59, 0x26, 0x86, - 0x20, 0xfb, 0x4b, 0x46, 0x76, 0x22, 0xa2, 0x54, 0xb0, 0x94, 0x70, 0x5c, 0xca, 0xbf, 0xe2, 0x29, - 0x01, 0x85, 0xb8, 0x76, 0xf0, 0x8b, 0x82, 0xa3, 0x36, 0x8e, 0xe7, 0xb5, 0xbf, 0xe6, 0x5e, 0xa3, - 0xd8, 0x80, 0xd7, 0x76, 0xe1, 0x04, 0x63, 0x3c, 0xde, 0xbe, 0x7e, 0x8d, 0x27, 0x56, 0x8a, 0xde, - 0x0b, 0xee, 0xee, 0x2f, 0xc0, 0x8c, 0xe7, 0x4e, 0xde, 0x91, 0x3a, 0x4a, 0x4b, 0x6d, 0x0f, 0xc1, - 0xfc, 0x75, 0xc6, 0xcc, 0x33, 0xbe, 0xd7, 0xd2, 0x3a, 0x9b, 0x6a, 0x1b, 0x93, 0x5f, 0x86, 0x22, - 0x27, 0xef, 0x98, 0x36, 0xd2, 0xac, 0xa6, 0xa9, 0xbf, 0x8c, 0xea, 0x43, 0x50, 0xff, 0x4d, 0x68, - 0xab, 0xf6, 0x7c, 0x70, 0xcc, 0xbc, 0x0e, 0xa2, 0xd7, 0xab, 0x28, 0x7a, 0xab, 0x6d, 0xd9, 0x6e, - 0x0c, 0xe3, 0xdf, 0xf2, 0x9d, 0xf2, 0x70, 0xeb, 0x04, 0x56, 0xae, 0x42, 0x81, 0x3c, 0x0e, 0x1b, - 0x92, 0x7f, 0xc7, 0x88, 0xc6, 0xbb, 0x28, 0x96, 0x38, 0x34, 0xab, 0xd5, 0x56, 0xed, 0x61, 0xf2, - 0xdf, 0xdf, 0xf3, 0xc4, 0xc1, 0x20, 0x2c, 0x71, 0xb8, 0x87, 0x6d, 0x84, 0xab, 0xfd, 0x10, 0x0c, - 0xdf, 0xe0, 0x89, 0x83, 0x63, 0x18, 0x05, 0x6f, 0x18, 0x86, 0xa0, 0xf8, 0x07, 0x4e, 0xc1, 0x31, - 0x98, 0xe2, 0xb3, 0xdd, 0x42, 0x6b, 0xa3, 0xa6, 0xee, 0xb8, 0x36, 0xed, 0x83, 0x07, 0x53, 0x7d, - 0xf3, 0xfd, 0x60, 0x13, 0x26, 0xfb, 0xa0, 0xe5, 0x27, 0x61, 0x22, 0xd4, 0x62, 0x48, 0x71, 0xdf, - 0x2c, 0x14, 0x7f, 0xf9, 0x43, 0x96, 0x8c, 0x82, 0x1d, 0x46, 0x79, 0x03, 0xef, 0x7b, 0xb0, 0x0f, - 0x88, 0x27, 0x7b, 0xe5, 0x43, 0x6f, 0xeb, 0x03, 0x6d, 0x40, 0xf9, 0x22, 0x8c, 0x07, 0x7a, 0x80, - 0x78, 0xaa, 0x5f, 0x61, 0x54, 0x79, 0x7f, 0x0b, 0x50, 0x3e, 0x0b, 0x29, 0x5c, 0xcf, 0xe3, 0xe1, - 0xbf, 0xca, 0xe0, 0x44, 0xbd, 0xfc, 0x18, 0x64, 0x78, 0x1d, 0x8f, 0x87, 0xfe, 0x1a, 0x83, 0x7a, - 0x10, 0x0c, 0xe7, 0x35, 0x3c, 0x1e, 0xfe, 0xeb, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0xbc, 0x0b, 0xbf, - 0xf5, 0x1b, 0x29, 0x96, 0x87, 0xb9, 0xef, 0x2e, 0xc0, 0x18, 0x2b, 0xde, 0xf1, 0xe8, 0xcf, 0xb1, - 0xc9, 0x39, 0xa2, 0xfc, 0x08, 0xa4, 0x87, 0x74, 0xf8, 0x6f, 0x32, 0x28, 0xd5, 0x2f, 0xaf, 0x40, - 0xce, 0x57, 0xb0, 0xe3, 0xe1, 0xbf, 0xc5, 0xe0, 0x7e, 0x14, 0x36, 0x9d, 0x15, 0xec, 0x78, 0x82, - 0xdf, 0xe6, 0xa6, 0x33, 0x04, 0x76, 0x1b, 0xaf, 0xd5, 0xf1, 0xe8, 0xdf, 0xe1, 0x5e, 0xe7, 0x90, - 0xf2, 0x13, 0x90, 0xf5, 0xf2, 0x6f, 0x3c, 0xfe, 0x77, 0x19, 0xbe, 0x8b, 0xc1, 0x1e, 0xf0, 0xe5, - 0xff, 0x78, 0x8a, 0xdf, 0xe3, 0x1e, 0xf0, 0xa1, 0xf0, 0x31, 0x0a, 0xd7, 0xf4, 0x78, 0xa6, 0xdf, - 0xe7, 0xc7, 0x28, 0x54, 0xd2, 0xf1, 0x6e, 0x92, 0x34, 0x18, 0x4f, 0xf1, 0x07, 0x7c, 0x37, 0x89, - 0x3e, 0x36, 0x23, 0x5c, 0x24, 0xe3, 0x39, 0xfe, 0x90, 0x9b, 0x11, 0xaa, 0x91, 0xe5, 0x1d, 0x90, - 0x7a, 0x0b, 0x64, 0x3c, 0xdf, 0xab, 0x8c, 0x6f, 0xb2, 0xa7, 0x3e, 0x96, 0x9f, 0x81, 0x13, 0xd1, - 0xc5, 0x31, 0x9e, 0xf5, 0xf3, 0x1f, 0x86, 0x5e, 0x67, 0xfc, 0xb5, 0xb1, 0xbc, 0xdb, 0xcd, 0xb2, - 0xfe, 0xc2, 0x18, 0x4f, 0xfb, 0xda, 0x87, 0xc1, 0x44, 0xeb, 0xaf, 0x8b, 0xe5, 0x0a, 0x40, 0xb7, - 0x26, 0xc5, 0x73, 0xbd, 0xce, 0xb8, 0x7c, 0x20, 0x7c, 0x34, 0x58, 0x49, 0x8a, 0xc7, 0x7f, 0x81, - 0x1f, 0x0d, 0x86, 0xc0, 0x47, 0x83, 0x57, 0xa3, 0x78, 0xf4, 0x1b, 0xfc, 0x68, 0x70, 0x48, 0xf9, - 0x02, 0x64, 0xcc, 0x8e, 0x61, 0xe0, 0xd8, 0x92, 0x06, 0x7f, 0x46, 0x54, 0xfc, 0xf7, 0x8f, 0x18, - 0x98, 0x03, 0xca, 0x67, 0x21, 0x8d, 0x5a, 0xfb, 0xa8, 0x1e, 0x87, 0xfc, 0x8f, 0x8f, 0x78, 0x3e, - 0xc1, 0xda, 0xe5, 0x27, 0x00, 0xe8, 0xcb, 0x34, 0xf9, 0x95, 0x28, 0x06, 0xfb, 0x9f, 0x1f, 0xb1, - 0x2f, 0x14, 0xba, 0x90, 0x2e, 0x01, 0xfd, 0xde, 0x61, 0x30, 0xc1, 0xfb, 0x41, 0x02, 0xf2, 0x02, - 0xfe, 0x28, 0x8c, 0xbd, 0xe0, 0x58, 0xa6, 0xab, 0x36, 0xe3, 0xd0, 0xff, 0xc5, 0xd0, 0x5c, 0x1f, - 0x3b, 0xac, 0x65, 0xd9, 0xc8, 0x55, 0x9b, 0x4e, 0x1c, 0xf6, 0xbf, 0x19, 0xd6, 0x03, 0x60, 0xb0, - 0xa6, 0x3a, 0xee, 0x30, 0xeb, 0xfe, 0x1f, 0x0e, 0xe6, 0x00, 0x6c, 0x34, 0xfe, 0xff, 0x0a, 0x3a, - 0x8c, 0xc3, 0x7e, 0xc0, 0x8d, 0x66, 0xfa, 0xe5, 0xc7, 0x20, 0x8b, 0xff, 0xa5, 0x5f, 0xed, 0xc4, - 0x80, 0xff, 0x97, 0x81, 0xbb, 0x08, 0x3c, 0xb3, 0xe3, 0xd6, 0x5d, 0x3d, 0xde, 0xd9, 0x3f, 0x62, - 0x3b, 0xcd, 0xf5, 0xcb, 0x15, 0xc8, 0x39, 0x6e, 0xbd, 0xde, 0x61, 0x1d, 0x4d, 0x0c, 0xfc, 0xc7, - 0x1f, 0x79, 0x2f, 0xb9, 0x1e, 0x66, 0xf9, 0x54, 0xf4, 0x65, 0x1d, 0xac, 0x59, 0x6b, 0x16, 0xbd, - 0xa6, 0x83, 0x1f, 0x3d, 0x00, 0xb7, 0x69, 0x56, 0x6b, 0xdf, 0x72, 0x16, 0xf7, 0x2d, 0xf7, 0x60, - 0xb1, 0xa5, 0xb6, 0x1d, 0xa2, 0xb8, 0xc4, 0x2e, 0xd9, 0x72, 0xec, 0x09, 0x0f, 0xcc, 0x1c, 0xef, - 0x82, 0x6e, 0xee, 0x76, 0x18, 0xbf, 0x68, 0x58, 0xaa, 0xab, 0x9b, 0xcd, 0x1d, 0x4b, 0x37, 0x5d, - 0x29, 0x0f, 0x42, 0x83, 0xfc, 0xba, 0x24, 0xc8, 0x42, 0x63, 0xee, 0x5f, 0xd2, 0x90, 0xa5, 0x77, - 0x3b, 0x9b, 0x6a, 0x5b, 0xfa, 0x25, 0xc8, 0x6f, 0xb1, 0xe3, 0xf1, 0xd0, 0xd2, 0x79, 0xc7, 0xbb, - 0x48, 0xf6, 0xcd, 0xbf, 0xe0, 0x69, 0x2f, 0xf8, 0x55, 0xc9, 0xaf, 0xc9, 0xcb, 0x0f, 0x7e, 0xff, - 0xed, 0xd9, 0xfb, 0xfb, 0xda, 0x87, 0xeb, 0xe1, 0x22, 0x8d, 0xe3, 0x85, 0x3d, 0xdd, 0x74, 0x1f, - 0x5a, 0x3a, 0x2f, 0x07, 0xe6, 0x93, 0xae, 0x42, 0x86, 0x0d, 0x38, 0xec, 0x07, 0x86, 0x3b, 0xfb, - 0xcc, 0xcd, 0xd5, 0xe8, 0xbc, 0x67, 0xde, 0x7a, 0x7b, 0x76, 0xe4, 0xd8, 0x73, 0x7b, 0x73, 0x49, - 0x2f, 0x42, 0x8e, 0xdb, 0xb1, 0x5e, 0x77, 0xd8, 0x77, 0xc4, 0xf7, 0xc4, 0x2c, 0x7b, 0xbd, 0xce, - 0x66, 0xbf, 0xfb, 0xfb, 0x6f, 0xcf, 0xce, 0x0d, 0x9c, 0x79, 0x61, 0xaf, 0xa3, 0xd7, 0x65, 0xff, - 0x1c, 0xd2, 0xf3, 0x90, 0xc4, 0x53, 0xd1, 0x2f, 0x8e, 0x67, 0xfb, 0x4c, 0xe5, 0x4d, 0x71, 0x9a, - 0x2d, 0x70, 0x98, 0x69, 0x30, 0xef, 0xcc, 0x13, 0x30, 0xd9, 0xb3, 0x3d, 0x92, 0x08, 0xc9, 0x2b, - 0xe8, 0x90, 0x7d, 0x64, 0x84, 0xff, 0x95, 0xa6, 0xbb, 0x1f, 0xd1, 0x09, 0xf3, 0x79, 0xf6, 0x65, - 0x5c, 0x39, 0x71, 0x5e, 0x98, 0xb9, 0x00, 0xe3, 0x01, 0x1f, 0x1f, 0x0b, 0xfc, 0x38, 0x88, 0x61, - 0x2f, 0x1d, 0x0b, 0x7f, 0x0e, 0x32, 0x1f, 0x07, 0x37, 0xf7, 0x3d, 0x09, 0xc6, 0x2a, 0x86, 0xb1, - 0xa9, 0xb6, 0x1d, 0xe9, 0x59, 0x98, 0xa4, 0x5d, 0xfb, 0xae, 0xb5, 0x4a, 0x7e, 0xd2, 0xd9, 0x54, - 0xdb, 0x2c, 0xa0, 0xef, 0x0b, 0xb8, 0x9b, 0x01, 0x16, 0x7a, 0xb4, 0xc9, 0xfc, 0x72, 0x2f, 0x8b, - 0xf4, 0x34, 0x88, 0x5c, 0x48, 0xce, 0x16, 0x66, 0xa6, 0xe1, 0x7a, 0x7a, 0x20, 0x33, 0x57, 0xa6, - 0xc4, 0x3d, 0x1c, 0xd2, 0xe3, 0x90, 0x59, 0x37, 0xdd, 0x87, 0x97, 0x30, 0x1f, 0x8d, 0xc1, 0xb9, - 0x48, 0x3e, 0xae, 0x44, 0x79, 0x3c, 0x0c, 0xc3, 0x9f, 0x3b, 0x83, 0xf1, 0xa9, 0xc1, 0x78, 0xa2, - 0xd4, 0xc5, 0x93, 0x47, 0xa9, 0x02, 0x59, 0xbc, 0xe7, 0xd4, 0x00, 0xfa, 0x09, 0xfb, 0x1d, 0x91, - 0x04, 0x9e, 0x16, 0x65, 0xe8, 0xa2, 0x38, 0x05, 0xb5, 0x61, 0x34, 0x86, 0xc2, 0x67, 0x44, 0x17, - 0x85, 0x29, 0x6a, 0x9e, 0x15, 0x63, 0x03, 0x28, 0x6a, 0x21, 0x2b, 0x6a, 0x7e, 0x2b, 0x6a, 0x9e, - 0x15, 0x99, 0x18, 0x0a, 0xbf, 0x15, 0xde, 0xb3, 0xb4, 0x0a, 0x70, 0x51, 0xbf, 0x86, 0xea, 0xd4, - 0x8c, 0x6c, 0x44, 0x32, 0xe2, 0x1c, 0x5d, 0x35, 0x4a, 0xe2, 0xc3, 0x49, 0x6b, 0x90, 0xab, 0x35, - 0xba, 0x34, 0xc0, 0xbe, 0xe0, 0x8f, 0x34, 0xa5, 0x11, 0xe2, 0xf1, 0x23, 0x3d, 0x73, 0xe8, 0x92, - 0x72, 0x71, 0xe6, 0xf8, 0xd6, 0xe4, 0xc3, 0x75, 0xcd, 0xa1, 0x34, 0xf9, 0x58, 0x73, 0x7c, 0x3c, - 0x7e, 0xa4, 0x74, 0x01, 0xc6, 0x96, 0x2d, 0x0b, 0x6b, 0x16, 0xc7, 0x09, 0xc9, 0xa9, 0x48, 0x12, - 0xa6, 0x43, 0x09, 0x38, 0x82, 0xec, 0x0e, 0x09, 0x7d, 0x0c, 0x2f, 0x0c, 0xda, 0x1d, 0xae, 0xc5, - 0x77, 0x87, 0x3f, 0xfb, 0x4f, 0xe0, 0xf2, 0xa1, 0x8b, 0x70, 0x87, 0x5c, 0x9c, 0x18, 0xe2, 0x04, - 0x72, 0xe5, 0xd0, 0x09, 0xe4, 0x62, 0xa9, 0x06, 0x13, 0x5c, 0x56, 0x35, 0x3b, 0x38, 0x07, 0x17, - 0x45, 0xf6, 0x79, 0xf1, 0x20, 0x5a, 0xa6, 0x4b, 0x59, 0xc3, 0x0c, 0xd2, 0x0e, 0x14, 0xb8, 0x68, - 0xd3, 0x21, 0x8b, 0x9e, 0x8c, 0xa8, 0xab, 0x61, 0x4e, 0xaa, 0x4a, 0x29, 0x43, 0xf8, 0x99, 0x55, - 0x38, 0x11, 0x9d, 0xad, 0xe2, 0xb2, 0xa5, 0xe0, 0xcf, 0xb2, 0x2b, 0x70, 0x53, 0x64, 0x66, 0x8a, - 0x23, 0x49, 0x84, 0xea, 0x44, 0x20, 0x1d, 0xf9, 0xc1, 0xe9, 0x08, 0x70, 0xba, 0x17, 0xdc, 0x0d, - 0x32, 0x3f, 0x38, 0x19, 0x01, 0x4e, 0xfa, 0xc1, 0x9f, 0x81, 0x42, 0x30, 0x0f, 0xf9, 0xd1, 0xe3, - 0x11, 0xe8, 0xf1, 0x08, 0x74, 0xf4, 0xdc, 0xa9, 0x08, 0x74, 0x2a, 0x84, 0xae, 0xf5, 0x9d, 0x7b, - 0x32, 0x02, 0x3d, 0x19, 0x81, 0x8e, 0x9e, 0x5b, 0x8a, 0x40, 0x4b, 0x7e, 0xf4, 0x63, 0x30, 0x11, - 0x4a, 0x39, 0x7e, 0xf8, 0x58, 0x04, 0x7c, 0x2c, 0x54, 0x9b, 0xc3, 0xa9, 0xc6, 0x8f, 0x9f, 0x88, - 0xc0, 0x4f, 0x44, 0x4d, 0x1f, 0x6d, 0xfd, 0x68, 0x04, 0x7c, 0x34, 0x72, 0xfa, 0x68, 0xbc, 0x18, - 0x81, 0x17, 0xfd, 0xf8, 0x32, 0xe4, 0xfd, 0x59, 0xc5, 0x8f, 0xcd, 0x44, 0x60, 0x33, 0x61, 0xbf, - 0x07, 0x52, 0x4a, 0x5c, 0xa4, 0x67, 0xfb, 0x1c, 0x97, 0x40, 0x1a, 0x39, 0x56, 0x67, 0x73, 0x19, - 0xa6, 0xa3, 0x92, 0x46, 0x04, 0xc7, 0x69, 0x3f, 0x47, 0x61, 0x69, 0x3a, 0x90, 0x2c, 0x08, 0xae, - 0xd3, 0xf2, 0x33, 0x3f, 0x0f, 0x53, 0x11, 0xa9, 0x23, 0x82, 0xf8, 0x41, 0x3f, 0x71, 0x6e, 0x69, - 0x26, 0x40, 0x1c, 0x78, 0x57, 0xf0, 0xb7, 0x56, 0x3f, 0x98, 0x82, 0x02, 0x4b, 0x51, 0xdb, 0x76, - 0x1d, 0xd9, 0xa8, 0x2e, 0xfd, 0x62, 0xff, 0x0e, 0x6b, 0x29, 0x2a, 0xb5, 0x31, 0xdc, 0x31, 0x1a, - 0xad, 0xe7, 0xfb, 0x36, 0x5a, 0x0f, 0x0d, 0x33, 0x41, 0x5c, 0xbf, 0x55, 0xed, 0xe9, 0xb7, 0xee, - 0x1d, 0x44, 0xdb, 0xaf, 0xed, 0xaa, 0xf6, 0xb4, 0x5d, 0x71, 0x34, 0x91, 0xdd, 0xd7, 0xa5, 0xde, - 0xee, 0xeb, 0xf4, 0x20, 0x9e, 0xfe, 0x4d, 0xd8, 0xa5, 0xde, 0x26, 0x2c, 0x96, 0x29, 0xba, 0x17, - 0xbb, 0xd4, 0xdb, 0x8b, 0x0d, 0x64, 0xea, 0xdf, 0x92, 0x5d, 0xea, 0x6d, 0xc9, 0x62, 0x99, 0xa2, - 0x3b, 0xb3, 0xa7, 0x22, 0x3a, 0xb3, 0xfb, 0x06, 0x51, 0x0d, 0x6a, 0xd0, 0xb6, 0xa2, 0x1a, 0xb4, - 0xfb, 0x07, 0x1a, 0x36, 0xb0, 0x4f, 0x7b, 0x2a, 0xa2, 0x4f, 0x8b, 0x37, 0xae, 0x4f, 0xbb, 0xb6, - 0x15, 0xd5, 0xae, 0x0d, 0x61, 0x5c, 0xbf, 0xae, 0x6d, 0x39, 0xdc, 0xb5, 0xcd, 0x0f, 0xe2, 0x8a, - 0x6e, 0xde, 0x2e, 0xf5, 0x36, 0x6f, 0xa7, 0xe3, 0xcf, 0x62, 0x54, 0x0f, 0xf7, 0x7c, 0xdf, 0x1e, - 0x6e, 0xa8, 0xc3, 0x1d, 0xd7, 0xca, 0x3d, 0xd7, 0xaf, 0x95, 0x7b, 0x70, 0x18, 0xf6, 0xc1, 0x1d, - 0xdd, 0x33, 0x7d, 0x3a, 0xba, 0xc5, 0x61, 0xa8, 0x3f, 0x6d, 0xec, 0x3e, 0x6d, 0xec, 0x3e, 0x6d, - 0xec, 0x3e, 0x6d, 0xec, 0x7e, 0x3e, 0x1a, 0xbb, 0x72, 0xea, 0xd5, 0x2f, 0xce, 0x0a, 0xa7, 0x4f, - 0xc1, 0x18, 0x9b, 0x5a, 0x1a, 0x85, 0xc4, 0x66, 0x45, 0x1c, 0x21, 0x7f, 0x97, 0x45, 0x81, 0xfc, - 0x5d, 0x11, 0x13, 0xcb, 0x1b, 0x6f, 0xdd, 0x28, 0x8d, 0x7c, 0xe7, 0x46, 0x69, 0xe4, 0x7b, 0x37, - 0x4a, 0x23, 0xef, 0xdc, 0x28, 0x09, 0xef, 0xdd, 0x28, 0x09, 0x1f, 0xdc, 0x28, 0x09, 0x3f, 0xb9, - 0x51, 0x12, 0xae, 0x1f, 0x95, 0x84, 0x2f, 0x1f, 0x95, 0x84, 0xaf, 0x1d, 0x95, 0x84, 0x6f, 0x1e, - 0x95, 0x84, 0x6f, 0x1d, 0x95, 0x84, 0xb7, 0x8e, 0x4a, 0xc2, 0x77, 0x8e, 0x4a, 0xc2, 0x3b, 0x47, - 0x25, 0xe1, 0xbd, 0xa3, 0xd2, 0xc8, 0x07, 0x47, 0x25, 0xe1, 0x27, 0x47, 0xa5, 0x91, 0xeb, 0x3f, - 0x2c, 0x8d, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x81, 0xa4, 0xc6, 0x17, 0x51, 0x45, 0x00, - 0x00, + // 4688 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xde, 0xe1, 0x43, 0x22, 0x0f, 0x29, 0x6a, 0x74, 0x25, 0xaf, 0x69, 0xc5, 0xd6, 0xee, 0xca, + 0x8f, 0x95, 0xd7, 0xb6, 0x64, 0xcb, 0xbb, 0xeb, 0x35, 0x37, 0xb6, 0x4b, 0x49, 0x5c, 0xad, 0x6c, + 0xbd, 0x32, 0x94, 0xfc, 0x0a, 0x8c, 0xe9, 0x68, 0x78, 0x49, 0x8d, 0x97, 0x9c, 0xa1, 0x67, 0x86, + 0x6b, 0xcb, 0x28, 0x8a, 0x2d, 0xdc, 0x07, 0x82, 0xa2, 0xef, 0x02, 0x71, 0x5c, 0xc7, 0x6d, 0x0a, + 0xb4, 0x4e, 0xd3, 0x57, 0xd2, 0xb4, 0x69, 0xda, 0x5f, 0xf9, 0x93, 0xd6, 0x40, 0x81, 0x22, 0xf9, + 0x17, 0x04, 0x81, 0xe1, 0x55, 0x0c, 0xd4, 0x6d, 0xdd, 0xc6, 0x4d, 0xfd, 0xc3, 0x80, 0xff, 0x14, + 0xf7, 0x35, 0x9c, 0x19, 0x0e, 0x39, 0x94, 0x01, 0x3b, 0xfd, 0xe1, 0x5f, 0xab, 0x39, 0xf7, 0x7c, + 0xdf, 0x3d, 0x73, 0xee, 0xb9, 0xe7, 0x9c, 0x7b, 0x87, 0x0b, 0x3f, 0x79, 0x10, 0x4e, 0x36, 0x2c, + 0xab, 0xd1, 0xc4, 0x0b, 0x6d, 0xdb, 0x72, 0xad, 0xbd, 0x4e, 0x7d, 0xa1, 0x86, 0x1d, 0xdd, 0x36, + 0xda, 0xae, 0x65, 0xcf, 0x53, 0x19, 0x1a, 0x67, 0x1a, 0xf3, 0x42, 0x63, 0x76, 0x03, 0x26, 0x2e, + 0x19, 0x4d, 0xbc, 0xe2, 0x29, 0x56, 0xb1, 0x8b, 0x2e, 0x40, 0xaa, 0x6e, 0x34, 0x71, 0x51, 0x3a, + 0x99, 0x9c, 0xcb, 0x2d, 0xde, 0x36, 0x1f, 0x02, 0xcd, 0x07, 0x11, 0xdb, 0x44, 0xac, 0x50, 0xc4, + 0xec, 0xdb, 0x29, 0x98, 0x8c, 0x18, 0x45, 0x08, 0x52, 0xa6, 0xd6, 0x22, 0x8c, 0xd2, 0x5c, 0x56, + 0xa1, 0x7f, 0xa3, 0x22, 0x8c, 0xb6, 0x35, 0xfd, 0x8a, 0xd6, 0xc0, 0xc5, 0x04, 0x15, 0x8b, 0x47, + 0x34, 0x03, 0x50, 0xc3, 0x6d, 0x6c, 0xd6, 0xb0, 0xa9, 0x1f, 0x14, 0x93, 0x27, 0x93, 0x73, 0x59, + 0xc5, 0x27, 0x41, 0x77, 0xc1, 0x44, 0xbb, 0xb3, 0xd7, 0x34, 0x74, 0xd5, 0xa7, 0x06, 0x27, 0x93, + 0x73, 0x69, 0x45, 0x66, 0x03, 0x2b, 0x5d, 0xe5, 0xd3, 0x30, 0xfe, 0x3c, 0xd6, 0xae, 0xf8, 0x55, + 0x73, 0x54, 0xb5, 0x40, 0xc4, 0x3e, 0xc5, 0x65, 0xc8, 0xb7, 0xb0, 0xe3, 0x68, 0x0d, 0xac, 0xba, + 0x07, 0x6d, 0x5c, 0x4c, 0xd1, 0xb7, 0x3f, 0xd9, 0xf3, 0xf6, 0xe1, 0x37, 0xcf, 0x71, 0xd4, 0xce, + 0x41, 0x1b, 0xa3, 0x32, 0x64, 0xb1, 0xd9, 0x69, 0x31, 0x86, 0x74, 0x1f, 0xff, 0x55, 0xcc, 0x4e, + 0x2b, 0xcc, 0x92, 0x21, 0x30, 0x4e, 0x31, 0xea, 0x60, 0xfb, 0xaa, 0xa1, 0xe3, 0xe2, 0x08, 0x25, + 0x38, 0xdd, 0x43, 0x50, 0x65, 0xe3, 0x61, 0x0e, 0x81, 0x43, 0xcb, 0x90, 0xc5, 0x2f, 0xb8, 0xd8, + 0x74, 0x0c, 0xcb, 0x2c, 0x8e, 0x52, 0x92, 0xdb, 0x23, 0x56, 0x11, 0x37, 0x6b, 0x61, 0x8a, 0x2e, + 0x0e, 0x9d, 0x87, 0x51, 0xab, 0xed, 0x1a, 0x96, 0xe9, 0x14, 0x33, 0x27, 0xa5, 0xb9, 0xdc, 0xe2, + 0xcd, 0x91, 0x81, 0xb0, 0xc5, 0x74, 0x14, 0xa1, 0x8c, 0xd6, 0x40, 0x76, 0xac, 0x8e, 0xad, 0x63, + 0x55, 0xb7, 0x6a, 0x58, 0x35, 0xcc, 0xba, 0x55, 0xcc, 0x52, 0x82, 0x13, 0xbd, 0x2f, 0x42, 0x15, + 0x97, 0xad, 0x1a, 0x5e, 0x33, 0xeb, 0x96, 0x52, 0x70, 0x02, 0xcf, 0xe8, 0x38, 0x8c, 0x38, 0x07, + 0xa6, 0xab, 0xbd, 0x50, 0xcc, 0xd3, 0x08, 0xe1, 0x4f, 0xb3, 0xff, 0x30, 0x02, 0xe3, 0xc3, 0x84, + 0xd8, 0x45, 0x48, 0xd7, 0xc9, 0x5b, 0x16, 0x13, 0x47, 0xf1, 0x01, 0xc3, 0x04, 0x9d, 0x38, 0xf2, + 0x11, 0x9d, 0x58, 0x86, 0x9c, 0x89, 0x1d, 0x17, 0xd7, 0x58, 0x44, 0x24, 0x87, 0x8c, 0x29, 0x60, + 0xa0, 0xde, 0x90, 0x4a, 0x7d, 0xa4, 0x90, 0x7a, 0x12, 0xc6, 0x3d, 0x93, 0x54, 0x5b, 0x33, 0x1b, + 0x22, 0x36, 0x17, 0xe2, 0x2c, 0x99, 0xaf, 0x08, 0x9c, 0x42, 0x60, 0x4a, 0x01, 0x07, 0x9e, 0xd1, + 0x0a, 0x80, 0x65, 0x62, 0xab, 0xae, 0xd6, 0xb0, 0xde, 0x2c, 0x66, 0xfa, 0x78, 0x69, 0x8b, 0xa8, + 0xf4, 0x78, 0xc9, 0x62, 0x52, 0xbd, 0x89, 0x1e, 0xec, 0x86, 0xda, 0x68, 0x9f, 0x48, 0xd9, 0x60, + 0x9b, 0xac, 0x27, 0xda, 0x76, 0xa1, 0x60, 0x63, 0x12, 0xf7, 0xb8, 0xc6, 0xdf, 0x2c, 0x4b, 0x8d, + 0x98, 0x8f, 0x7d, 0x33, 0x85, 0xc3, 0xd8, 0x8b, 0x8d, 0xd9, 0xfe, 0x47, 0x74, 0x2b, 0x78, 0x02, + 0x95, 0x86, 0x15, 0xd0, 0x2c, 0x94, 0x17, 0xc2, 0x4d, 0xad, 0x85, 0xa7, 0x5f, 0x84, 0x42, 0xd0, + 0x3d, 0x68, 0x0a, 0xd2, 0x8e, 0xab, 0xd9, 0x2e, 0x8d, 0xc2, 0xb4, 0xc2, 0x1e, 0x90, 0x0c, 0x49, + 0x6c, 0xd6, 0x68, 0x96, 0x4b, 0x2b, 0xe4, 0x4f, 0xf4, 0x73, 0xdd, 0x17, 0x4e, 0xd2, 0x17, 0xbe, + 0xa3, 0x77, 0x45, 0x03, 0xcc, 0xe1, 0xf7, 0x9e, 0x7e, 0x00, 0xc6, 0x02, 0x2f, 0x30, 0xec, 0xd4, + 0xb3, 0xbf, 0x00, 0x37, 0x44, 0x52, 0xa3, 0x27, 0x61, 0xaa, 0x63, 0x1a, 0xa6, 0x8b, 0xed, 0xb6, + 0x8d, 0x49, 0xc4, 0xb2, 0xa9, 0x8a, 0xff, 0x36, 0xda, 0x27, 0xe6, 0x76, 0xfd, 0xda, 0x8c, 0x45, + 0x99, 0xec, 0xf4, 0x0a, 0xcf, 0x64, 0x33, 0xef, 0x8c, 0xca, 0xd7, 0xae, 0x5d, 0xbb, 0x96, 0x98, + 0x7d, 0x79, 0x04, 0xa6, 0xa2, 0xf6, 0x4c, 0xe4, 0xf6, 0x3d, 0x0e, 0x23, 0x66, 0xa7, 0xb5, 0x87, + 0x6d, 0xea, 0xa4, 0xb4, 0xc2, 0x9f, 0x50, 0x19, 0xd2, 0x4d, 0x6d, 0x0f, 0x37, 0x8b, 0xa9, 0x93, + 0xd2, 0x5c, 0x61, 0xf1, 0xae, 0xa1, 0x76, 0xe5, 0xfc, 0x3a, 0x81, 0x28, 0x0c, 0x89, 0x1e, 0x86, + 0x14, 0x4f, 0xd1, 0x84, 0xe1, 0xcc, 0x70, 0x0c, 0x64, 0x2f, 0x29, 0x14, 0x87, 0x3e, 0x03, 0x59, + 0xf2, 0x2f, 0x8b, 0x8d, 0x11, 0x6a, 0x73, 0x86, 0x08, 0x48, 0x5c, 0xa0, 0x69, 0xc8, 0xd0, 0x6d, + 0x52, 0xc3, 0xa2, 0xb4, 0x79, 0xcf, 0x24, 0xb0, 0x6a, 0xb8, 0xae, 0x75, 0x9a, 0xae, 0x7a, 0x55, + 0x6b, 0x76, 0x30, 0x0d, 0xf8, 0xac, 0x92, 0xe7, 0xc2, 0xc7, 0x89, 0x0c, 0x9d, 0x80, 0x1c, 0xdb, + 0x55, 0x86, 0x59, 0xc3, 0x2f, 0xd0, 0xec, 0x99, 0x56, 0xd8, 0x46, 0x5b, 0x23, 0x12, 0x32, 0xfd, + 0xb3, 0x8e, 0x65, 0x8a, 0xd0, 0xa4, 0x53, 0x10, 0x01, 0x9d, 0xfe, 0x81, 0x70, 0xe2, 0xbe, 0x25, + 0xfa, 0xf5, 0xc2, 0x31, 0x35, 0xfb, 0xad, 0x04, 0xa4, 0x68, 0xbe, 0x18, 0x87, 0xdc, 0xce, 0x53, + 0xdb, 0x15, 0x75, 0x65, 0x6b, 0x77, 0x69, 0xbd, 0x22, 0x4b, 0xa8, 0x00, 0x40, 0x05, 0x97, 0xd6, + 0xb7, 0xca, 0x3b, 0x72, 0xc2, 0x7b, 0x5e, 0xdb, 0xdc, 0x39, 0x7f, 0x56, 0x4e, 0x7a, 0x80, 0x5d, + 0x26, 0x48, 0xf9, 0x15, 0xee, 0x5f, 0x94, 0xd3, 0x48, 0x86, 0x3c, 0x23, 0x58, 0x7b, 0xb2, 0xb2, + 0x72, 0xfe, 0xac, 0x3c, 0x12, 0x94, 0xdc, 0xbf, 0x28, 0x8f, 0xa2, 0x31, 0xc8, 0x52, 0xc9, 0xd2, + 0xd6, 0xd6, 0xba, 0x9c, 0xf1, 0x38, 0xab, 0x3b, 0xca, 0xda, 0xe6, 0xaa, 0x9c, 0xf5, 0x38, 0x57, + 0x95, 0xad, 0xdd, 0x6d, 0x19, 0x3c, 0x86, 0x8d, 0x4a, 0xb5, 0x5a, 0x5e, 0xad, 0xc8, 0x39, 0x4f, + 0x63, 0xe9, 0xa9, 0x9d, 0x4a, 0x55, 0xce, 0x07, 0xcc, 0xba, 0x7f, 0x51, 0x1e, 0xf3, 0xa6, 0xa8, + 0x6c, 0xee, 0x6e, 0xc8, 0x05, 0x34, 0x01, 0x63, 0x6c, 0x0a, 0x61, 0xc4, 0x78, 0x48, 0x74, 0xfe, + 0xac, 0x2c, 0x77, 0x0d, 0x61, 0x2c, 0x13, 0x01, 0xc1, 0xf9, 0xb3, 0x32, 0x9a, 0x5d, 0x86, 0x34, + 0x8d, 0x2e, 0x84, 0xa0, 0xb0, 0x5e, 0x5e, 0xaa, 0xac, 0xab, 0x5b, 0xdb, 0x3b, 0x6b, 0x5b, 0x9b, + 0xe5, 0x75, 0x59, 0xea, 0xca, 0x94, 0xca, 0xe7, 0x76, 0xd7, 0x94, 0xca, 0x8a, 0x9c, 0xf0, 0xcb, + 0xb6, 0x2b, 0xe5, 0x9d, 0xca, 0x8a, 0x9c, 0x9c, 0xd5, 0x61, 0x2a, 0x2a, 0x4f, 0x46, 0xee, 0x0c, + 0xdf, 0x12, 0x27, 0xfa, 0x2c, 0x31, 0xe5, 0xea, 0x59, 0xe2, 0x1f, 0x27, 0x60, 0x32, 0xa2, 0x56, + 0x44, 0x4e, 0xf2, 0x08, 0xa4, 0x59, 0x88, 0xb2, 0xea, 0x79, 0x67, 0x64, 0xd1, 0xa1, 0x01, 0xdb, + 0x53, 0x41, 0x29, 0xce, 0xdf, 0x41, 0x24, 0xfb, 0x74, 0x10, 0x84, 0xa2, 0x27, 0xa7, 0x3f, 0xd3, + 0x93, 0xd3, 0x59, 0xd9, 0x3b, 0x3f, 0x4c, 0xd9, 0xa3, 0xb2, 0xa3, 0xe5, 0xf6, 0x74, 0x44, 0x6e, + 0xbf, 0x08, 0x13, 0x3d, 0x44, 0x43, 0xe7, 0xd8, 0x97, 0x24, 0x28, 0xf6, 0x73, 0x4e, 0x4c, 0xa6, + 0x4b, 0x04, 0x32, 0xdd, 0xc5, 0xb0, 0x07, 0x4f, 0xf5, 0x5f, 0x84, 0x9e, 0xb5, 0x7e, 0x5d, 0x82, + 0xe3, 0xd1, 0x9d, 0x62, 0xa4, 0x0d, 0x0f, 0xc3, 0x48, 0x0b, 0xbb, 0xfb, 0x96, 0xe8, 0x96, 0xee, + 0x88, 0xa8, 0xc1, 0x64, 0x38, 0xbc, 0xd8, 0x1c, 0xe5, 0x2f, 0xe2, 0xc9, 0x7e, 0xed, 0x1e, 0xb3, + 0xa6, 0xc7, 0xd2, 0x2f, 0x24, 0xe0, 0x86, 0x48, 0xf2, 0x48, 0x43, 0x6f, 0x01, 0x30, 0xcc, 0x76, + 0xc7, 0x65, 0x1d, 0x11, 0x4b, 0xb0, 0x59, 0x2a, 0xa1, 0xc9, 0x8b, 0x24, 0xcf, 0x8e, 0xeb, 0x8d, + 0x27, 0xe9, 0x38, 0x30, 0x11, 0x55, 0xb8, 0xd0, 0x35, 0x34, 0x45, 0x0d, 0x9d, 0xe9, 0xf3, 0xa6, + 0x3d, 0x81, 0x79, 0x2f, 0xc8, 0x7a, 0xd3, 0xc0, 0xa6, 0xab, 0x3a, 0xae, 0x8d, 0xb5, 0x96, 0x61, + 0x36, 0x68, 0x05, 0xc9, 0x94, 0xd2, 0x75, 0xad, 0xe9, 0x60, 0x65, 0x9c, 0x0d, 0x57, 0xc5, 0x28, + 0x41, 0xd0, 0x00, 0xb2, 0x7d, 0x88, 0x91, 0x00, 0x82, 0x0d, 0x7b, 0x88, 0xd9, 0x6f, 0x66, 0x20, + 0xe7, 0xeb, 0xab, 0xd1, 0x29, 0xc8, 0x3f, 0xab, 0x5d, 0xd5, 0x54, 0x71, 0x56, 0x62, 0x9e, 0xc8, + 0x11, 0xd9, 0x36, 0x3f, 0x2f, 0xdd, 0x0b, 0x53, 0x54, 0xc5, 0xea, 0xb8, 0xd8, 0x56, 0xf5, 0xa6, + 0xe6, 0x38, 0xd4, 0x69, 0x19, 0xaa, 0x8a, 0xc8, 0xd8, 0x16, 0x19, 0x5a, 0x16, 0x23, 0xe8, 0x1c, + 0x4c, 0x52, 0x44, 0xab, 0xd3, 0x74, 0x8d, 0x76, 0x13, 0xab, 0xe4, 0xf4, 0xe6, 0xd0, 0x4a, 0xe2, + 0x59, 0x36, 0x41, 0x34, 0x36, 0xb8, 0x02, 0xb1, 0xc8, 0x41, 0x2b, 0x70, 0x0b, 0x85, 0x35, 0xb0, + 0x89, 0x6d, 0xcd, 0xc5, 0x2a, 0x7e, 0xae, 0xa3, 0x35, 0x1d, 0x55, 0x33, 0x6b, 0xea, 0xbe, 0xe6, + 0xec, 0x17, 0xa7, 0x08, 0xc1, 0x52, 0xa2, 0x28, 0x29, 0x37, 0x11, 0xc5, 0x55, 0xae, 0x57, 0xa1, + 0x6a, 0x65, 0xb3, 0x76, 0x59, 0x73, 0xf6, 0x51, 0x09, 0x8e, 0x53, 0x16, 0xc7, 0xb5, 0x0d, 0xb3, + 0xa1, 0xea, 0xfb, 0x58, 0xbf, 0xa2, 0x76, 0xdc, 0xfa, 0x85, 0xe2, 0x67, 0xfc, 0xf3, 0x53, 0x0b, + 0xab, 0x54, 0x67, 0x99, 0xa8, 0xec, 0xba, 0xf5, 0x0b, 0xa8, 0x0a, 0x79, 0xb2, 0x18, 0x2d, 0xe3, + 0x45, 0xac, 0xd6, 0x2d, 0x9b, 0x96, 0xc6, 0x42, 0x44, 0x6a, 0xf2, 0x79, 0x70, 0x7e, 0x8b, 0x03, + 0x36, 0xac, 0x1a, 0x2e, 0xa5, 0xab, 0xdb, 0x95, 0xca, 0x8a, 0x92, 0x13, 0x2c, 0x97, 0x2c, 0x9b, + 0x04, 0x54, 0xc3, 0xf2, 0x1c, 0x9c, 0x63, 0x01, 0xd5, 0xb0, 0x84, 0x7b, 0xcf, 0xc1, 0xa4, 0xae, + 0xb3, 0x77, 0x36, 0x74, 0x95, 0x9f, 0xb1, 0x9c, 0xa2, 0x1c, 0x70, 0x96, 0xae, 0xaf, 0x32, 0x05, + 0x1e, 0xe3, 0x0e, 0x7a, 0x10, 0x6e, 0xe8, 0x3a, 0xcb, 0x0f, 0x9c, 0xe8, 0x79, 0xcb, 0x30, 0xf4, + 0x1c, 0x4c, 0xb6, 0x0f, 0x7a, 0x81, 0x28, 0x30, 0x63, 0xfb, 0x20, 0x0c, 0x7b, 0x00, 0xa6, 0xda, + 0xfb, 0xed, 0x5e, 0xdc, 0x19, 0x3f, 0x0e, 0xb5, 0xf7, 0xdb, 0x61, 0xe0, 0xed, 0xf4, 0xc0, 0x6d, + 0x63, 0x5d, 0x73, 0x71, 0xad, 0x78, 0xa3, 0x5f, 0xdd, 0x37, 0x80, 0x16, 0x40, 0xd6, 0x75, 0x15, + 0x9b, 0xda, 0x5e, 0x13, 0xab, 0x9a, 0x8d, 0x4d, 0xcd, 0x29, 0x9e, 0xf0, 0x2b, 0x17, 0x74, 0xbd, + 0x42, 0x47, 0xcb, 0x74, 0x10, 0x9d, 0x81, 0x09, 0x6b, 0xef, 0x59, 0x9d, 0x85, 0xa4, 0xda, 0xb6, + 0x71, 0xdd, 0x78, 0xa1, 0x78, 0x1b, 0xf5, 0xef, 0x38, 0x19, 0xa0, 0x01, 0xb9, 0x4d, 0xc5, 0xe8, + 0x4e, 0x90, 0x75, 0x67, 0x5f, 0xb3, 0xdb, 0x34, 0x27, 0x3b, 0x6d, 0x4d, 0xc7, 0xc5, 0xdb, 0x99, + 0x2a, 0x93, 0x6f, 0x0a, 0x31, 0xd9, 0x12, 0xce, 0xf3, 0x46, 0xdd, 0x15, 0x8c, 0xa7, 0xd9, 0x96, + 0xa0, 0x32, 0xce, 0x36, 0x07, 0x32, 0x71, 0x45, 0x60, 0xe2, 0x39, 0xaa, 0x56, 0x68, 0xef, 0xb7, + 0xfd, 0xf3, 0xde, 0x0a, 0x63, 0x44, 0xb3, 0x3b, 0xe9, 0x9d, 0xac, 0x21, 0x6b, 0xef, 0xfb, 0x66, + 0xfc, 0xd8, 0x7a, 0xe3, 0xd9, 0x12, 0xe4, 0xfd, 0xf1, 0x89, 0xb2, 0xc0, 0x22, 0x54, 0x96, 0x48, + 0xb3, 0xb2, 0xbc, 0xb5, 0x42, 0xda, 0x8c, 0xa7, 0x2b, 0x72, 0x82, 0xb4, 0x3b, 0xeb, 0x6b, 0x3b, + 0x15, 0x55, 0xd9, 0xdd, 0xdc, 0x59, 0xdb, 0xa8, 0xc8, 0x49, 0x7f, 0x5f, 0xfd, 0xdd, 0x04, 0x14, + 0x82, 0x47, 0x24, 0xf4, 0x59, 0xb8, 0x51, 0xdc, 0x67, 0x38, 0xd8, 0x55, 0x9f, 0x37, 0x6c, 0xba, + 0x65, 0x5a, 0x1a, 0x2b, 0x5f, 0xde, 0xa2, 0x4d, 0x71, 0xad, 0x2a, 0x76, 0x9f, 0x30, 0x6c, 0xb2, + 0x21, 0x5a, 0x9a, 0x8b, 0xd6, 0xe1, 0x84, 0x69, 0xa9, 0x8e, 0xab, 0x99, 0x35, 0xcd, 0xae, 0xa9, + 0xdd, 0x9b, 0x24, 0x55, 0xd3, 0x75, 0xec, 0x38, 0x16, 0x2b, 0x55, 0x1e, 0xcb, 0xcd, 0xa6, 0x55, + 0xe5, 0xca, 0xdd, 0x1c, 0x5e, 0xe6, 0xaa, 0xa1, 0x00, 0x4b, 0xf6, 0x0b, 0xb0, 0xcf, 0x40, 0xb6, + 0xa5, 0xb5, 0x55, 0x6c, 0xba, 0xf6, 0x01, 0x6d, 0x8c, 0x33, 0x4a, 0xa6, 0xa5, 0xb5, 0x2b, 0xe4, + 0xf9, 0x93, 0x39, 0x9f, 0xfc, 0x28, 0x09, 0x79, 0x7f, 0x73, 0x4c, 0xce, 0x1a, 0x3a, 0xad, 0x23, + 0x12, 0xcd, 0x34, 0xb7, 0x0e, 0x6c, 0xa5, 0xe7, 0x97, 0x49, 0x81, 0x29, 0x8d, 0xb0, 0x96, 0x55, + 0x61, 0x48, 0x52, 0xdc, 0x49, 0x6e, 0xc1, 0xac, 0x45, 0xc8, 0x28, 0xfc, 0x09, 0xad, 0xc2, 0xc8, + 0xb3, 0x0e, 0xe5, 0x1e, 0xa1, 0xdc, 0xb7, 0x0d, 0xe6, 0x7e, 0xb4, 0x4a, 0xc9, 0xb3, 0x8f, 0x56, + 0xd5, 0xcd, 0x2d, 0x65, 0xa3, 0xbc, 0xae, 0x70, 0x38, 0xba, 0x09, 0x52, 0x4d, 0xed, 0xc5, 0x83, + 0x60, 0x29, 0xa2, 0xa2, 0x61, 0x1d, 0x7f, 0x13, 0xa4, 0x9e, 0xc7, 0xda, 0x95, 0x60, 0x01, 0xa0, + 0xa2, 0x8f, 0x31, 0xf4, 0x17, 0x20, 0x4d, 0xfd, 0x85, 0x00, 0xb8, 0xc7, 0xe4, 0x63, 0x28, 0x03, + 0xa9, 0xe5, 0x2d, 0x85, 0x84, 0xbf, 0x0c, 0x79, 0x26, 0x55, 0xb7, 0xd7, 0x2a, 0xcb, 0x15, 0x39, + 0x31, 0x7b, 0x0e, 0x46, 0x98, 0x13, 0xc8, 0xd6, 0xf0, 0xdc, 0x20, 0x1f, 0xe3, 0x8f, 0x9c, 0x43, + 0x12, 0xa3, 0xbb, 0x1b, 0x4b, 0x15, 0x45, 0x4e, 0xf8, 0x97, 0xd7, 0x81, 0xbc, 0xbf, 0x2f, 0xfe, + 0x64, 0x62, 0xea, 0x1f, 0x25, 0xc8, 0xf9, 0xfa, 0x5c, 0xd2, 0xa0, 0x68, 0xcd, 0xa6, 0xf5, 0xbc, + 0xaa, 0x35, 0x0d, 0xcd, 0xe1, 0x41, 0x01, 0x54, 0x54, 0x26, 0x92, 0x61, 0x17, 0xed, 0x13, 0x31, + 0xfe, 0x35, 0x09, 0xe4, 0x70, 0x8b, 0x19, 0x32, 0x50, 0xfa, 0x99, 0x1a, 0xf8, 0xaa, 0x04, 0x85, + 0x60, 0x5f, 0x19, 0x32, 0xef, 0xd4, 0xcf, 0xd4, 0xbc, 0xb7, 0x12, 0x30, 0x16, 0xe8, 0x26, 0x87, + 0xb5, 0xee, 0x39, 0x98, 0x30, 0x6a, 0xb8, 0xd5, 0xb6, 0x5c, 0x6c, 0xea, 0x07, 0x6a, 0x13, 0x5f, + 0xc5, 0xcd, 0xe2, 0x2c, 0x4d, 0x14, 0x0b, 0x83, 0xfb, 0xd5, 0xf9, 0xb5, 0x2e, 0x6e, 0x9d, 0xc0, + 0x4a, 0x93, 0x6b, 0x2b, 0x95, 0x8d, 0xed, 0xad, 0x9d, 0xca, 0xe6, 0xf2, 0x53, 0xea, 0xee, 0xe6, + 0x63, 0x9b, 0x5b, 0x4f, 0x6c, 0x2a, 0xb2, 0x11, 0x52, 0xfb, 0x18, 0xb7, 0xfa, 0x36, 0xc8, 0x61, + 0xa3, 0xd0, 0x8d, 0x10, 0x65, 0x96, 0x7c, 0x0c, 0x4d, 0xc2, 0xf8, 0xe6, 0x96, 0x5a, 0x5d, 0x5b, + 0xa9, 0xa8, 0x95, 0x4b, 0x97, 0x2a, 0xcb, 0x3b, 0x55, 0x76, 0x03, 0xe1, 0x69, 0xef, 0x04, 0x37, + 0xf5, 0x2b, 0x49, 0x98, 0x8c, 0xb0, 0x04, 0x95, 0xf9, 0xd9, 0x81, 0x1d, 0x67, 0xee, 0x19, 0xc6, + 0xfa, 0x79, 0x52, 0xf2, 0xb7, 0x35, 0xdb, 0xe5, 0x47, 0x8d, 0x3b, 0x81, 0x78, 0xc9, 0x74, 0x8d, + 0xba, 0x81, 0x6d, 0x7e, 0x61, 0xc3, 0x0e, 0x14, 0xe3, 0x5d, 0x39, 0xbb, 0xb3, 0xb9, 0x1b, 0x50, + 0xdb, 0x72, 0x0c, 0xd7, 0xb8, 0x8a, 0x55, 0xc3, 0x14, 0xb7, 0x3b, 0xe4, 0x80, 0x91, 0x52, 0x64, + 0x31, 0xb2, 0x66, 0xba, 0x9e, 0xb6, 0x89, 0x1b, 0x5a, 0x48, 0x9b, 0x24, 0xf0, 0xa4, 0x22, 0x8b, + 0x11, 0x4f, 0xfb, 0x14, 0xe4, 0x6b, 0x56, 0x87, 0x74, 0x5d, 0x4c, 0x8f, 0xd4, 0x0b, 0x49, 0xc9, + 0x31, 0x99, 0xa7, 0xc2, 0xfb, 0xe9, 0xee, 0xb5, 0x52, 0x5e, 0xc9, 0x31, 0x19, 0x53, 0x39, 0x0d, + 0xe3, 0x5a, 0xa3, 0x61, 0x13, 0x72, 0x41, 0xc4, 0x4e, 0x08, 0x05, 0x4f, 0x4c, 0x15, 0xa7, 0x1f, + 0x85, 0x8c, 0xf0, 0x03, 0x29, 0xc9, 0xc4, 0x13, 0x6a, 0x9b, 0x1d, 0x7b, 0x13, 0x73, 0x59, 0x25, + 0x63, 0x8a, 0xc1, 0x53, 0x90, 0x37, 0x1c, 0xb5, 0x7b, 0x4b, 0x9e, 0x38, 0x99, 0x98, 0xcb, 0x28, + 0x39, 0xc3, 0xf1, 0x6e, 0x18, 0x67, 0x5f, 0x4f, 0x40, 0x21, 0x78, 0xcb, 0x8f, 0x56, 0x20, 0xd3, + 0xb4, 0x74, 0x8d, 0x86, 0x16, 0xfb, 0xc4, 0x34, 0x17, 0xf3, 0x61, 0x60, 0x7e, 0x9d, 0xeb, 0x2b, + 0x1e, 0x72, 0xfa, 0x5f, 0x25, 0xc8, 0x08, 0x31, 0x3a, 0x0e, 0xa9, 0xb6, 0xe6, 0xee, 0x53, 0xba, + 0xf4, 0x52, 0x42, 0x96, 0x14, 0xfa, 0x4c, 0xe4, 0x4e, 0x5b, 0x33, 0x69, 0x08, 0x70, 0x39, 0x79, + 0x26, 0xeb, 0xda, 0xc4, 0x5a, 0x8d, 0x1e, 0x3f, 0xac, 0x56, 0x0b, 0x9b, 0xae, 0x23, 0xd6, 0x95, + 0xcb, 0x97, 0xb9, 0x18, 0xdd, 0x05, 0x13, 0xae, 0xad, 0x19, 0xcd, 0x80, 0x6e, 0x8a, 0xea, 0xca, + 0x62, 0xc0, 0x53, 0x2e, 0xc1, 0x4d, 0x82, 0xb7, 0x86, 0x5d, 0x4d, 0xdf, 0xc7, 0xb5, 0x2e, 0x68, + 0x84, 0x5e, 0x33, 0xdc, 0xc8, 0x15, 0x56, 0xf8, 0xb8, 0xc0, 0xce, 0x7e, 0x5f, 0x82, 0x09, 0x71, + 0x60, 0xaa, 0x79, 0xce, 0xda, 0x00, 0xd0, 0x4c, 0xd3, 0x72, 0xfd, 0xee, 0xea, 0x0d, 0xe5, 0x1e, + 0xdc, 0x7c, 0xd9, 0x03, 0x29, 0x3e, 0x82, 0xe9, 0x16, 0x40, 0x77, 0xa4, 0xaf, 0xdb, 0x4e, 0x40, + 0x8e, 0x7f, 0xc2, 0xa1, 0xdf, 0x01, 0xd9, 0x11, 0x1b, 0x98, 0x88, 0x9c, 0xac, 0xd0, 0x14, 0xa4, + 0xf7, 0x70, 0xc3, 0x30, 0xf9, 0xc5, 0x2c, 0x7b, 0x10, 0x17, 0x21, 0x29, 0xef, 0x22, 0x64, 0xe9, + 0xf3, 0x30, 0xa9, 0x5b, 0xad, 0xb0, 0xb9, 0x4b, 0x72, 0xe8, 0x98, 0xef, 0x5c, 0x96, 0x9e, 0x86, + 0x6e, 0x8b, 0xf9, 0x81, 0x24, 0xfd, 0x71, 0x22, 0xb9, 0xba, 0xbd, 0xf4, 0xb5, 0xc4, 0xf4, 0x2a, + 0x83, 0x6e, 0x8b, 0x37, 0x55, 0x70, 0xbd, 0x89, 0x75, 0x62, 0x3d, 0x7c, 0xf1, 0x34, 0xdc, 0xd3, + 0x30, 0xdc, 0xfd, 0xce, 0xde, 0xbc, 0x6e, 0xb5, 0x16, 0x1a, 0x56, 0xc3, 0xea, 0x7e, 0xfa, 0x24, + 0x4f, 0xf4, 0x81, 0xfe, 0xc5, 0x3f, 0x7f, 0x66, 0x3d, 0xe9, 0x74, 0xec, 0xb7, 0xd2, 0xd2, 0x26, + 0x4c, 0x72, 0x65, 0x95, 0x7e, 0x7f, 0x61, 0xa7, 0x08, 0x34, 0xf0, 0x0e, 0xab, 0xf8, 0x8d, 0xb7, + 0x69, 0xb9, 0x56, 0x26, 0x38, 0x94, 0x8c, 0xb1, 0x83, 0x46, 0x49, 0x81, 0x1b, 0x02, 0x7c, 0x6c, + 0x6b, 0x62, 0x3b, 0x86, 0xf1, 0xbb, 0x9c, 0x71, 0xd2, 0xc7, 0x58, 0xe5, 0xd0, 0xd2, 0x32, 0x8c, + 0x1d, 0x85, 0xeb, 0x9f, 0x38, 0x57, 0x1e, 0xfb, 0x49, 0x56, 0x61, 0x9c, 0x92, 0xe8, 0x1d, 0xc7, + 0xb5, 0x5a, 0x34, 0xef, 0x0d, 0xa6, 0xf9, 0xe7, 0xb7, 0xd9, 0x5e, 0x29, 0x10, 0xd8, 0xb2, 0x87, + 0x2a, 0x95, 0x80, 0x7e, 0x72, 0xaa, 0x61, 0xbd, 0x19, 0xc3, 0xf0, 0x06, 0x37, 0xc4, 0xd3, 0x2f, + 0x3d, 0x0e, 0x53, 0xe4, 0x6f, 0x9a, 0x96, 0xfc, 0x96, 0xc4, 0x5f, 0x78, 0x15, 0xbf, 0xff, 0x12, + 0xdb, 0x8e, 0x93, 0x1e, 0x81, 0xcf, 0x26, 0xdf, 0x2a, 0x36, 0xb0, 0xeb, 0x62, 0xdb, 0x51, 0xb5, + 0x66, 0x94, 0x79, 0xbe, 0x1b, 0x83, 0xe2, 0x97, 0xde, 0x0d, 0xae, 0xe2, 0x2a, 0x43, 0x96, 0x9b, + 0xcd, 0xd2, 0x2e, 0xdc, 0x18, 0x11, 0x15, 0x43, 0x70, 0xbe, 0xc2, 0x39, 0xa7, 0x7a, 0x22, 0x83, + 0xd0, 0x6e, 0x83, 0x90, 0x7b, 0x6b, 0x39, 0x04, 0xe7, 0x1f, 0x70, 0x4e, 0xc4, 0xb1, 0x62, 0x49, + 0x09, 0xe3, 0xa3, 0x30, 0x71, 0x15, 0xdb, 0x7b, 0x96, 0xc3, 0x6f, 0x69, 0x86, 0xa0, 0x7b, 0x95, + 0xd3, 0x8d, 0x73, 0x20, 0xbd, 0xb6, 0x21, 0x5c, 0x0f, 0x42, 0xa6, 0xae, 0xe9, 0x78, 0x08, 0x8a, + 0x2f, 0x73, 0x8a, 0x51, 0xa2, 0x4f, 0xa0, 0x65, 0xc8, 0x37, 0x2c, 0x5e, 0x99, 0xe2, 0xe1, 0xaf, + 0x71, 0x78, 0x4e, 0x60, 0x38, 0x45, 0xdb, 0x6a, 0x77, 0x9a, 0xa4, 0x6c, 0xc5, 0x53, 0xfc, 0xa1, + 0xa0, 0x10, 0x18, 0x4e, 0x71, 0x04, 0xb7, 0xfe, 0x91, 0xa0, 0x70, 0x7c, 0xfe, 0x7c, 0x04, 0x72, + 0x96, 0xd9, 0x3c, 0xb0, 0xcc, 0x61, 0x8c, 0xf8, 0x0a, 0x67, 0x00, 0x0e, 0x21, 0x04, 0x17, 0x21, + 0x3b, 0xec, 0x42, 0xfc, 0xc9, 0xbb, 0x62, 0x7b, 0x88, 0x15, 0x58, 0x85, 0x71, 0x91, 0xa0, 0x0c, + 0xcb, 0x1c, 0x82, 0xe2, 0x4f, 0x39, 0x45, 0xc1, 0x07, 0xe3, 0xaf, 0xe1, 0x62, 0xc7, 0x6d, 0xe0, + 0x61, 0x48, 0x5e, 0x17, 0xaf, 0xc1, 0x21, 0xdc, 0x95, 0x7b, 0xd8, 0xd4, 0xf7, 0x87, 0x63, 0xf8, + 0xaa, 0x70, 0xa5, 0xc0, 0x10, 0x8a, 0x65, 0x18, 0x6b, 0x69, 0xb6, 0xb3, 0xaf, 0x35, 0x87, 0x5a, + 0x8e, 0x3f, 0xe3, 0x1c, 0x79, 0x0f, 0xc4, 0x3d, 0xd2, 0x31, 0x8f, 0x42, 0xf3, 0x35, 0xe1, 0x11, + 0x1f, 0x8c, 0x6f, 0x3d, 0xc7, 0xa5, 0x57, 0x5a, 0x47, 0x61, 0xfb, 0x73, 0xb1, 0xf5, 0x18, 0x76, + 0xc3, 0xcf, 0x78, 0x11, 0xb2, 0x8e, 0xf1, 0xe2, 0x50, 0x34, 0x7f, 0x21, 0x56, 0x9a, 0x02, 0x08, + 0xf8, 0x29, 0xb8, 0x29, 0xb2, 0x4c, 0x0c, 0x41, 0xf6, 0x97, 0x9c, 0xec, 0x78, 0x44, 0xa9, 0xe0, + 0x29, 0xe1, 0xa8, 0x94, 0x7f, 0x25, 0x52, 0x02, 0x0e, 0x71, 0x6d, 0x93, 0xb3, 0x82, 0xa3, 0xd5, + 0x8f, 0xe6, 0xb5, 0xbf, 0x16, 0x5e, 0x63, 0xd8, 0x80, 0xd7, 0x76, 0xe0, 0x38, 0x67, 0x3c, 0xda, + 0xba, 0x7e, 0x5d, 0x24, 0x56, 0x86, 0xde, 0x0d, 0xae, 0xee, 0xe7, 0x61, 0xda, 0x73, 0xa7, 0x68, + 0x4a, 0x1d, 0xb5, 0xa5, 0xb5, 0x87, 0x60, 0xfe, 0x06, 0x67, 0x16, 0x19, 0xdf, 0xeb, 0x6a, 0x9d, + 0x0d, 0xad, 0x4d, 0xc8, 0x9f, 0x84, 0xa2, 0x20, 0xef, 0x98, 0x36, 0xd6, 0xad, 0x86, 0x69, 0xbc, + 0x88, 0x6b, 0x43, 0x50, 0xff, 0x4d, 0x68, 0xa9, 0x76, 0x7d, 0x70, 0xc2, 0xbc, 0x06, 0xb2, 0xd7, + 0xab, 0xa8, 0x46, 0xab, 0x6d, 0xd9, 0x6e, 0x0c, 0xe3, 0x37, 0xc5, 0x4a, 0x79, 0xb8, 0x35, 0x0a, + 0x2b, 0x55, 0xa0, 0x40, 0x1f, 0x87, 0x0d, 0xc9, 0xbf, 0xe5, 0x44, 0x63, 0x5d, 0x14, 0x4f, 0x1c, + 0xba, 0xd5, 0x6a, 0x6b, 0xf6, 0x30, 0xf9, 0xef, 0xef, 0x44, 0xe2, 0xe0, 0x10, 0x9e, 0x38, 0xdc, + 0x83, 0x36, 0x26, 0xd5, 0x7e, 0x08, 0x86, 0x6f, 0x89, 0xc4, 0x21, 0x30, 0x9c, 0x42, 0x34, 0x0c, + 0x43, 0x50, 0xfc, 0xbd, 0xa0, 0x10, 0x18, 0x42, 0xf1, 0xb9, 0x6e, 0xa1, 0xb5, 0x71, 0xc3, 0x70, + 0x5c, 0x9b, 0xb5, 0xc2, 0x83, 0xa9, 0xbe, 0xfd, 0x6e, 0xb0, 0x09, 0x53, 0x7c, 0xd0, 0xd2, 0xa3, + 0x30, 0x1e, 0x6a, 0x31, 0x50, 0xdc, 0xef, 0x57, 0x8a, 0xbf, 0xf4, 0x3e, 0x4f, 0x46, 0xc1, 0x0e, + 0xa3, 0xb4, 0x4e, 0xd6, 0x3d, 0xd8, 0x07, 0xc4, 0x93, 0xbd, 0xf4, 0xbe, 0xb7, 0xf4, 0x81, 0x36, + 0xa0, 0x74, 0x09, 0xc6, 0x02, 0x3d, 0x40, 0x3c, 0xd5, 0x2f, 0x73, 0xaa, 0xbc, 0xbf, 0x05, 0x28, + 0x9d, 0x83, 0x14, 0xa9, 0xe7, 0xf1, 0xf0, 0x5f, 0xe1, 0x70, 0xaa, 0x5e, 0x7a, 0x08, 0x32, 0xa2, + 0x8e, 0xc7, 0x43, 0x7f, 0x95, 0x43, 0x3d, 0x08, 0x81, 0x8b, 0x1a, 0x1e, 0x0f, 0xff, 0x35, 0x01, + 0x17, 0x10, 0x02, 0x1f, 0xde, 0x85, 0xdf, 0xf9, 0xf5, 0x14, 0xcf, 0xc3, 0xc2, 0x77, 0x17, 0x61, + 0x94, 0x17, 0xef, 0x78, 0xf4, 0x17, 0xf8, 0xe4, 0x02, 0x51, 0x7a, 0x00, 0xd2, 0x43, 0x3a, 0xfc, + 0x37, 0x38, 0x94, 0xe9, 0x97, 0x96, 0x21, 0xe7, 0x2b, 0xd8, 0xf1, 0xf0, 0xdf, 0xe4, 0x70, 0x3f, + 0x8a, 0x98, 0xce, 0x0b, 0x76, 0x3c, 0xc1, 0x6f, 0x09, 0xd3, 0x39, 0x82, 0xb8, 0x4d, 0xd4, 0xea, + 0x78, 0xf4, 0x6f, 0x0b, 0xaf, 0x0b, 0x48, 0xe9, 0x11, 0xc8, 0x7a, 0xf9, 0x37, 0x1e, 0xff, 0x3b, + 0x1c, 0xdf, 0xc5, 0x10, 0x0f, 0xf8, 0xf2, 0x7f, 0x3c, 0xc5, 0xef, 0x0a, 0x0f, 0xf8, 0x50, 0x64, + 0x1b, 0x85, 0x6b, 0x7a, 0x3c, 0xd3, 0xef, 0x89, 0x6d, 0x14, 0x2a, 0xe9, 0x64, 0x35, 0x69, 0x1a, + 0x8c, 0xa7, 0xf8, 0x7d, 0xb1, 0x9a, 0x54, 0x9f, 0x98, 0x11, 0x2e, 0x92, 0xf1, 0x1c, 0x5f, 0x14, + 0x66, 0x84, 0x6a, 0x64, 0x69, 0x1b, 0x50, 0x6f, 0x81, 0x8c, 0xe7, 0x7b, 0x99, 0xf3, 0x4d, 0xf4, + 0xd4, 0xc7, 0xd2, 0x13, 0x70, 0x3c, 0xba, 0x38, 0xc6, 0xb3, 0x7e, 0xe9, 0xfd, 0xd0, 0x71, 0xc6, + 0x5f, 0x1b, 0x4b, 0x3b, 0xdd, 0x2c, 0xeb, 0x2f, 0x8c, 0xf1, 0xb4, 0xaf, 0xbc, 0x1f, 0x4c, 0xb4, + 0xfe, 0xba, 0x58, 0x2a, 0x03, 0x74, 0x6b, 0x52, 0x3c, 0xd7, 0xab, 0x9c, 0xcb, 0x07, 0x22, 0x5b, + 0x83, 0x97, 0xa4, 0x78, 0xfc, 0x97, 0xc5, 0xd6, 0xe0, 0x08, 0xb2, 0x35, 0x44, 0x35, 0x8a, 0x47, + 0xbf, 0x26, 0xb6, 0x86, 0x80, 0x94, 0x2e, 0x42, 0xc6, 0xec, 0x34, 0x9b, 0x24, 0xb6, 0xd0, 0xe0, + 0x9f, 0x64, 0x15, 0xff, 0xfd, 0x43, 0x0e, 0x16, 0x80, 0xd2, 0x39, 0x48, 0xe3, 0xd6, 0x1e, 0xae, + 0xc5, 0x21, 0xff, 0xe3, 0x43, 0x91, 0x4f, 0x88, 0x76, 0xe9, 0x11, 0x00, 0x76, 0x98, 0xa6, 0x1f, + 0x8a, 0x62, 0xb0, 0xff, 0xf9, 0x21, 0xff, 0xb1, 0x44, 0x17, 0xd2, 0x25, 0x60, 0x3f, 0xbd, 0x18, + 0x4c, 0xf0, 0x6e, 0x90, 0x80, 0x1e, 0xc0, 0x1f, 0x84, 0xd1, 0x67, 0x1d, 0xcb, 0x74, 0xb5, 0x46, + 0x1c, 0xfa, 0xbf, 0x38, 0x5a, 0xe8, 0x13, 0x87, 0xb5, 0x2c, 0x1b, 0xbb, 0x5a, 0xc3, 0x89, 0xc3, + 0xfe, 0x37, 0xc7, 0x7a, 0x00, 0x02, 0xd6, 0x35, 0xc7, 0x1d, 0xe6, 0xbd, 0x7f, 0x22, 0xc0, 0x02, + 0x40, 0x8c, 0x26, 0x7f, 0x5f, 0xc1, 0x07, 0x71, 0xd8, 0xf7, 0x84, 0xd1, 0x5c, 0xbf, 0xf4, 0x10, + 0x64, 0xc9, 0x9f, 0xec, 0x17, 0x50, 0x31, 0xe0, 0xff, 0xe1, 0xe0, 0x2e, 0x82, 0xcc, 0xec, 0xb8, + 0x35, 0xd7, 0x88, 0x77, 0xf6, 0x4f, 0xf9, 0x4a, 0x0b, 0xfd, 0x52, 0x19, 0x72, 0x8e, 0x5b, 0xab, + 0x75, 0x78, 0x47, 0x13, 0x03, 0xff, 0xdf, 0x0f, 0xbd, 0x43, 0xae, 0x87, 0x59, 0xaa, 0x44, 0xdf, + 0xd7, 0xc1, 0xaa, 0xb5, 0x6a, 0xb1, 0x9b, 0xba, 0xa7, 0x67, 0xe3, 0xaf, 0xdc, 0xe0, 0xa7, 0xf7, + 0xc0, 0xcd, 0xba, 0xd5, 0xda, 0xb3, 0x9c, 0x85, 0x3d, 0xcb, 0xdd, 0x5f, 0x68, 0x69, 0x6d, 0x87, + 0x8e, 0x2c, 0xf2, 0x8b, 0xb8, 0x1c, 0x7f, 0x22, 0x03, 0xd3, 0x47, 0xbb, 0xc4, 0x9b, 0xbd, 0x05, + 0xc6, 0x2e, 0x35, 0x2d, 0xcd, 0x35, 0xcc, 0xc6, 0xb6, 0x65, 0x98, 0x2e, 0xca, 0x83, 0x54, 0xa7, + 0x1f, 0xa1, 0x24, 0x45, 0xaa, 0xcf, 0xfe, 0x4b, 0x1a, 0xb2, 0xec, 0xfe, 0x67, 0x43, 0x6b, 0xa3, + 0x5f, 0x84, 0xfc, 0x26, 0xdf, 0x42, 0xf7, 0x2d, 0x5e, 0x70, 0xbc, 0xfb, 0x66, 0xdf, 0xfc, 0xf3, + 0x9e, 0xf6, 0xbc, 0x5f, 0x95, 0x7e, 0x74, 0x5e, 0xba, 0xf7, 0x87, 0x6f, 0x9e, 0xb8, 0xbb, 0xaf, + 0x7d, 0xa4, 0x66, 0x2e, 0xb0, 0x58, 0x9f, 0xdf, 0x35, 0x4c, 0xf7, 0xbe, 0xc5, 0x0b, 0x4a, 0x60, + 0x3e, 0x74, 0x15, 0x32, 0x7c, 0xc0, 0xe1, 0xdf, 0x21, 0x6e, 0xeb, 0x33, 0xb7, 0x50, 0x63, 0xf3, + 0x9e, 0x7d, 0xe3, 0xcd, 0x13, 0xc7, 0x8e, 0x3c, 0xb7, 0x37, 0x17, 0x7a, 0x0e, 0x72, 0xc2, 0x8e, + 0xb5, 0x9a, 0xc3, 0x7f, 0x77, 0x7e, 0x3a, 0xe6, 0xb5, 0xd7, 0x6a, 0x7c, 0xf6, 0x3b, 0x7e, 0xf8, + 0xe6, 0x89, 0xd9, 0x81, 0x33, 0xcf, 0xef, 0x76, 0x8c, 0x9a, 0xe2, 0x9f, 0x03, 0x3d, 0x03, 0x49, + 0x32, 0x15, 0xfb, 0xa9, 0xde, 0x89, 0x3e, 0x53, 0x79, 0x53, 0x9c, 0xe1, 0x2f, 0x38, 0xcc, 0x34, + 0x84, 0x77, 0xfa, 0x11, 0x98, 0xe8, 0x59, 0x1e, 0x24, 0x43, 0xf2, 0x0a, 0x3e, 0xe0, 0xbf, 0x89, + 0x22, 0x7f, 0xa2, 0xa9, 0xee, 0x8f, 0x16, 0xa5, 0xb9, 0x3c, 0xff, 0x25, 0x62, 0x29, 0x71, 0x41, + 0x9a, 0xbe, 0x08, 0x63, 0x01, 0x1f, 0x1f, 0x09, 0xfc, 0x30, 0xc8, 0x61, 0x2f, 0x1d, 0x09, 0x7f, + 0x1e, 0x32, 0x1f, 0x05, 0x37, 0xfb, 0x03, 0x04, 0xa3, 0xe5, 0x66, 0x73, 0x43, 0x6b, 0x3b, 0xe8, + 0x29, 0x98, 0x60, 0x9d, 0xfd, 0x8e, 0xb5, 0x42, 0xbf, 0xfc, 0x6c, 0x68, 0x6d, 0x1e, 0xd0, 0x77, + 0x05, 0xdc, 0xcd, 0x01, 0xf3, 0x3d, 0xda, 0x74, 0x7e, 0xa5, 0x97, 0x05, 0x3d, 0x0e, 0xb2, 0x10, + 0xd2, 0xbd, 0x45, 0x98, 0x59, 0xb8, 0x9e, 0x19, 0xc8, 0x2c, 0x94, 0x19, 0x71, 0x0f, 0x07, 0x7a, + 0x18, 0x32, 0x6b, 0xa6, 0x7b, 0xff, 0x22, 0xe1, 0x63, 0x31, 0x38, 0x1b, 0xc9, 0x27, 0x94, 0x18, + 0x8f, 0x87, 0xe1, 0xf8, 0xf3, 0x67, 0x09, 0x3e, 0x35, 0x18, 0x4f, 0x95, 0xba, 0x78, 0xfa, 0x88, + 0xca, 0x90, 0x25, 0x6b, 0xce, 0x0c, 0x60, 0xff, 0xe5, 0xe1, 0xd6, 0x48, 0x02, 0x4f, 0x8b, 0x31, + 0x74, 0x51, 0x82, 0x82, 0xd9, 0x30, 0x12, 0x43, 0xe1, 0x33, 0xa2, 0x8b, 0x22, 0x14, 0x55, 0xcf, + 0x8a, 0xd1, 0x01, 0x14, 0xd5, 0x90, 0x15, 0x55, 0xbf, 0x15, 0x55, 0xcf, 0x8a, 0x4c, 0x0c, 0x85, + 0xdf, 0x0a, 0xef, 0x19, 0xad, 0x00, 0x5c, 0x32, 0x5e, 0xc0, 0x35, 0x66, 0x46, 0x36, 0x22, 0x19, + 0x09, 0x8e, 0xae, 0x1a, 0x23, 0xf1, 0xe1, 0xd0, 0x2a, 0xe4, 0xaa, 0xf5, 0x2e, 0x0d, 0xf0, 0xff, + 0xf1, 0x11, 0x69, 0x4a, 0x3d, 0xc4, 0xe3, 0x47, 0x7a, 0xe6, 0xb0, 0x57, 0xca, 0xc5, 0x99, 0xe3, + 0x7b, 0x27, 0x1f, 0xae, 0x6b, 0x0e, 0xa3, 0xc9, 0xc7, 0x9a, 0xe3, 0xe3, 0xf1, 0x23, 0xd1, 0x45, + 0x18, 0x5d, 0xb2, 0x2c, 0xa2, 0x59, 0x1c, 0xa3, 0x24, 0xa7, 0x22, 0x49, 0xb8, 0x0e, 0x23, 0x10, + 0x08, 0xba, 0x3a, 0x34, 0xf4, 0x09, 0xbc, 0x30, 0x68, 0x75, 0x84, 0x96, 0x58, 0x1d, 0xf1, 0xec, + 0xdf, 0x81, 0x4b, 0x07, 0x2e, 0x26, 0x5d, 0x74, 0x71, 0x7c, 0x88, 0x1d, 0x28, 0x94, 0x43, 0x3b, + 0x50, 0x88, 0x51, 0x15, 0xc6, 0x85, 0xac, 0x62, 0x76, 0x48, 0x0e, 0x2e, 0xca, 0xfc, 0xe7, 0xdc, + 0x83, 0x68, 0xb9, 0x2e, 0x63, 0x0d, 0x33, 0xa0, 0x6d, 0x28, 0x08, 0xd1, 0x86, 0x43, 0x5f, 0x7a, + 0x22, 0xa2, 0xae, 0x86, 0x39, 0x99, 0x2a, 0xa3, 0x0c, 0xe1, 0xa7, 0x57, 0xe0, 0x78, 0x74, 0xb6, + 0x8a, 0xcb, 0x96, 0x92, 0x3f, 0xcb, 0x2e, 0xc3, 0x0d, 0x91, 0x99, 0x29, 0x8e, 0x24, 0x11, 0xaa, + 0x13, 0x81, 0x74, 0xe4, 0x07, 0xa7, 0x23, 0xc0, 0xe9, 0x5e, 0x70, 0x37, 0xc8, 0xfc, 0xe0, 0x64, + 0x04, 0x38, 0xe9, 0x07, 0x7f, 0x16, 0x0a, 0xc1, 0x3c, 0xe4, 0x47, 0x8f, 0x45, 0xa0, 0xc7, 0x22, + 0xd0, 0xd1, 0x73, 0xa7, 0x22, 0xd0, 0xa9, 0x10, 0xba, 0xda, 0x77, 0xee, 0x89, 0x08, 0xf4, 0x44, + 0x04, 0x3a, 0x7a, 0x6e, 0x14, 0x81, 0x46, 0x7e, 0xf4, 0x43, 0x30, 0x1e, 0x4a, 0x39, 0x7e, 0xf8, + 0x68, 0x04, 0x7c, 0x34, 0x54, 0x9b, 0xc3, 0xa9, 0xc6, 0x8f, 0x1f, 0x8f, 0xc0, 0x8f, 0x47, 0x4d, + 0x1f, 0x6d, 0xfd, 0x48, 0x04, 0x7c, 0x24, 0x72, 0xfa, 0x68, 0xbc, 0x1c, 0x81, 0x97, 0xfd, 0xf8, + 0x12, 0xe4, 0xfd, 0x59, 0xc5, 0x8f, 0xcd, 0x44, 0x60, 0x33, 0x61, 0xbf, 0x07, 0x52, 0x4a, 0x5c, + 0xa4, 0x67, 0xfb, 0x6c, 0x97, 0x40, 0x1a, 0x39, 0x52, 0x67, 0xf3, 0x24, 0x4c, 0x45, 0x25, 0x8d, + 0x08, 0x8e, 0x33, 0x7e, 0x8e, 0xc2, 0xe2, 0x54, 0x20, 0x59, 0x50, 0x5c, 0xa7, 0xe5, 0x67, 0x7e, + 0x06, 0x26, 0x23, 0x52, 0x47, 0x04, 0xf1, 0xbd, 0x7e, 0xe2, 0xdc, 0xe2, 0x74, 0x80, 0x38, 0x70, + 0x56, 0xf0, 0xb7, 0x56, 0x3f, 0x9a, 0x84, 0x02, 0x4f, 0x51, 0x5b, 0x76, 0x0d, 0xdb, 0xb8, 0x86, + 0x7e, 0xbe, 0x7f, 0x87, 0xb5, 0x18, 0x95, 0xda, 0x38, 0xee, 0x08, 0x8d, 0xd6, 0x33, 0x7d, 0x1b, + 0xad, 0xfb, 0x86, 0x99, 0x20, 0xae, 0xdf, 0xaa, 0xf4, 0xf4, 0x5b, 0x77, 0x0e, 0xa2, 0xed, 0xd7, + 0x76, 0x55, 0x7a, 0xda, 0xae, 0x38, 0x9a, 0xc8, 0xee, 0xeb, 0x72, 0x6f, 0xf7, 0x75, 0x66, 0x10, + 0x4f, 0xff, 0x26, 0xec, 0x72, 0x6f, 0x13, 0x16, 0xcb, 0x14, 0xdd, 0x8b, 0x5d, 0xee, 0xed, 0xc5, + 0x06, 0x32, 0xf5, 0x6f, 0xc9, 0x2e, 0xf7, 0xb6, 0x64, 0xb1, 0x4c, 0xd1, 0x9d, 0xd9, 0x63, 0x11, + 0x9d, 0xd9, 0x5d, 0x83, 0xa8, 0x06, 0x35, 0x68, 0x9b, 0x51, 0x0d, 0xda, 0xdd, 0x03, 0x0d, 0x1b, + 0xd8, 0xa7, 0x3d, 0x16, 0xd1, 0xa7, 0xc5, 0x1b, 0xd7, 0xa7, 0x5d, 0xdb, 0x8c, 0x6a, 0xd7, 0x86, + 0x30, 0xae, 0x5f, 0xd7, 0xb6, 0x14, 0xee, 0xda, 0xe6, 0x06, 0x71, 0x45, 0x37, 0x6f, 0x97, 0x7b, + 0x9b, 0xb7, 0x33, 0xf1, 0x7b, 0x31, 0xaa, 0x87, 0x7b, 0xa6, 0x6f, 0x0f, 0x37, 0xd4, 0xe6, 0x8e, + 0x6b, 0xe5, 0x9e, 0xee, 0xd7, 0xca, 0xdd, 0x3b, 0x0c, 0xfb, 0xe0, 0x8e, 0xee, 0x89, 0x3e, 0x1d, + 0xdd, 0xc2, 0x30, 0xd4, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, + 0xff, 0x3f, 0x1a, 0xbb, 0x52, 0xea, 0xe5, 0xaf, 0x9c, 0x90, 0xce, 0x9c, 0x82, 0x51, 0x3e, 0x35, + 0x1a, 0x81, 0xc4, 0x46, 0x59, 0x3e, 0x46, 0xff, 0x5d, 0x92, 0x25, 0xfa, 0xef, 0xb2, 0x9c, 0x58, + 0x5a, 0x7f, 0xe3, 0xfa, 0xcc, 0xb1, 0xef, 0x5d, 0x9f, 0x39, 0xf6, 0x83, 0xeb, 0x33, 0xc7, 0xde, + 0xba, 0x3e, 0x23, 0xbd, 0x73, 0x7d, 0x46, 0x7a, 0xef, 0xfa, 0x8c, 0xf4, 0xc1, 0xf5, 0x19, 0xe9, + 0xda, 0xe1, 0x8c, 0xf4, 0xd5, 0xc3, 0x19, 0xe9, 0xeb, 0x87, 0x33, 0xd2, 0xb7, 0x0f, 0x67, 0xa4, + 0xef, 0x1c, 0xce, 0x48, 0x6f, 0x1c, 0xce, 0x48, 0xdf, 0x3b, 0x9c, 0x91, 0xde, 0x3a, 0x9c, 0x91, + 0xde, 0x39, 0x9c, 0x39, 0xf6, 0xde, 0xe1, 0x8c, 0xf4, 0xc1, 0xe1, 0xcc, 0xb1, 0x6b, 0x3f, 0x9e, + 0x39, 0xf6, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x09, 0x1b, 0x6d, 0x94, 0x81, 0x47, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -1357,15 +1363,15 @@ func (this *AllMapsOrdered) Equal(that interface{}) bool { } type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetF() *float64 } -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) Proto() proto.Message { return this } -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) TestProto() proto.Message { return NewFloatingPointFromFace(this) } @@ -1380,18 +1386,18 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { } type CustomMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid GetIds() map[string]github_com_gogo_protobuf_test.Uuid } -func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomMap) Proto() proto.Message { return this } -func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomMap) TestProto() proto.Message { return NewCustomMapFromFace(this) } @@ -1421,7 +1427,7 @@ func NewCustomMapFromFace(that CustomMapFace) *CustomMap { } type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -1441,11 +1447,11 @@ type AllMapsFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) Proto() proto.Message { return this } -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) TestProto() proto.Message { return NewAllMapsFromFace(this) } @@ -1540,7 +1546,7 @@ func NewAllMapsFromFace(that AllMapsFace) *AllMaps { } type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -1560,11 +1566,11 @@ type AllMapsOrderedFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) Proto() proto.Message { return this } -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) TestProto() proto.Message { return NewAllMapsOrderedFromFace(this) } @@ -1683,7 +1689,7 @@ func (this *CustomMap) GoString() string { for k := range this.Nullable128S { keysForNullable128S = append(keysForNullable128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + sortkeys.Strings(keysForNullable128S) mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForNullable128S { mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) @@ -1696,7 +1702,7 @@ func (this *CustomMap) GoString() string { for k := range this.Uint128S { keysForUint128S = append(keysForUint128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + sortkeys.Strings(keysForUint128S) mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForUint128S { mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) @@ -1709,7 +1715,7 @@ func (this *CustomMap) GoString() string { for k := range this.NullableIds { keysForNullableIds = append(keysForNullableIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + sortkeys.Strings(keysForNullableIds) mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForNullableIds { mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) @@ -1722,7 +1728,7 @@ func (this *CustomMap) GoString() string { for k := range this.Ids { keysForIds = append(keysForIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + sortkeys.Strings(keysForIds) mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForIds { mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) @@ -1747,7 +1753,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -1760,7 +1766,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -1773,7 +1779,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -1786,7 +1792,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -1799,7 +1805,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -1812,7 +1818,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -1825,7 +1831,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -1838,7 +1844,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -1851,7 +1857,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -1864,7 +1870,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -1877,7 +1883,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -1890,7 +1896,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -1903,7 +1909,7 @@ func (this *AllMaps) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -1916,7 +1922,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -1929,7 +1935,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -1942,7 +1948,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -1955,7 +1961,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -1980,7 +1986,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -1993,7 +1999,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2006,7 +2012,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2019,7 +2025,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2032,7 +2038,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2045,7 +2051,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2058,7 +2064,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2071,7 +2077,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2084,7 +2090,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -2097,7 +2103,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -2110,7 +2116,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -2123,7 +2129,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -2136,7 +2142,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -2149,7 +2155,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -2162,7 +2168,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -2175,7 +2181,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -2188,7 +2194,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -2229,7 +2235,8 @@ func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { if m.F != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(*m.F)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.F)))) + i += 8 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -2390,7 +2397,8 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } if len(m.StringToFloatMap) > 0 { @@ -2406,7 +2414,8 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(v)))) + i += 4 } } if len(m.Int32Map) > 0 { @@ -2508,10 +2517,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Sfixed32Map) > 0 { @@ -2523,10 +2534,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Fixed64Map) > 0 { @@ -2538,10 +2551,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.Sfixed64Map) > 0 { @@ -2553,10 +2568,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.BoolMap) > 0 { @@ -2698,7 +2715,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { dAtA[i] = 0xa i++ @@ -2711,7 +2728,8 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } if len(m.StringToFloatMap) > 0 { @@ -2719,7 +2737,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { dAtA[i] = 0x12 i++ @@ -2732,7 +2750,8 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(v)))) + i += 4 } } if len(m.Int32Map) > 0 { @@ -2740,7 +2759,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Int32Map { keysForInt32Map = append(keysForInt32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { dAtA[i] = 0x1a i++ @@ -2760,7 +2779,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Int64Map { keysForInt64Map = append(keysForInt64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { dAtA[i] = 0x22 i++ @@ -2780,7 +2799,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Uint32Map { keysForUint32Map = append(keysForUint32Map, uint32(k)) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { dAtA[i] = 0x2a i++ @@ -2800,7 +2819,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Uint64Map { keysForUint64Map = append(keysForUint64Map, uint64(k)) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { dAtA[i] = 0x32 i++ @@ -2820,7 +2839,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sint32Map { keysForSint32Map = append(keysForSint32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { dAtA[i] = 0x3a i++ @@ -2840,7 +2859,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sint64Map { keysForSint64Map = append(keysForSint64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { dAtA[i] = 0x42 i++ @@ -2860,7 +2879,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, uint32(k)) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { dAtA[i] = 0x4a i++ @@ -2869,10 +2888,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Sfixed32Map) > 0 { @@ -2880,7 +2901,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { dAtA[i] = 0x52 i++ @@ -2889,10 +2910,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Fixed64Map) > 0 { @@ -2900,7 +2923,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, uint64(k)) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { dAtA[i] = 0x5a i++ @@ -2909,10 +2932,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.Sfixed64Map) > 0 { @@ -2920,7 +2945,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { dAtA[i] = 0x62 i++ @@ -2929,10 +2954,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.BoolMap) > 0 { @@ -2940,7 +2967,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.BoolMap { keysForBoolMap = append(keysForBoolMap, bool(k)) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { dAtA[i] = 0x6a i++ @@ -2970,7 +2997,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringMap { keysForStringMap = append(keysForStringMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { dAtA[i] = 0x72 i++ @@ -2992,7 +3019,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { dAtA[i] = 0x7a i++ @@ -3020,7 +3047,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { dAtA[i] = 0x82 i++ @@ -3043,7 +3070,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { dAtA[i] = 0x8a i++ @@ -3079,24 +3106,6 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Mapsproto2(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 encodeFixed32Mapsproto2(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 encodeVarintMapsproto2(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -3976,7 +3985,7 @@ func (this *CustomMap) String() string { for k := range this.Nullable128S { keysForNullable128S = append(keysForNullable128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + sortkeys.Strings(keysForNullable128S) mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForNullable128S { mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) @@ -3986,7 +3995,7 @@ func (this *CustomMap) String() string { for k := range this.Uint128S { keysForUint128S = append(keysForUint128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + sortkeys.Strings(keysForUint128S) mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForUint128S { mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) @@ -3996,7 +4005,7 @@ func (this *CustomMap) String() string { for k := range this.NullableIds { keysForNullableIds = append(keysForNullableIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + sortkeys.Strings(keysForNullableIds) mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForNullableIds { mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) @@ -4006,7 +4015,7 @@ func (this *CustomMap) String() string { for k := range this.Ids { keysForIds = append(keysForIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + sortkeys.Strings(keysForIds) mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForIds { mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) @@ -4030,7 +4039,7 @@ func (this *AllMaps) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -4040,7 +4049,7 @@ func (this *AllMaps) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -4050,7 +4059,7 @@ func (this *AllMaps) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -4060,7 +4069,7 @@ func (this *AllMaps) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -4070,7 +4079,7 @@ func (this *AllMaps) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -4080,7 +4089,7 @@ func (this *AllMaps) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -4090,7 +4099,7 @@ func (this *AllMaps) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -4100,7 +4109,7 @@ func (this *AllMaps) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -4110,7 +4119,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -4120,7 +4129,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -4130,7 +4139,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -4140,7 +4149,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -4150,7 +4159,7 @@ func (this *AllMaps) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -4160,7 +4169,7 @@ func (this *AllMaps) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -4170,7 +4179,7 @@ func (this *AllMaps) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -4180,7 +4189,7 @@ func (this *AllMaps) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -4190,7 +4199,7 @@ func (this *AllMaps) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -4227,7 +4236,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -4237,7 +4246,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -4247,7 +4256,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -4257,7 +4266,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -4267,7 +4276,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -4277,7 +4286,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -4287,7 +4296,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -4297,7 +4306,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -4307,7 +4316,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -4317,7 +4326,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -4327,7 +4336,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -4337,7 +4346,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -4347,7 +4356,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -4357,7 +4366,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -4367,7 +4376,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -4377,7 +4386,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -4387,7 +4396,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -4461,15 +4470,8 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.F = &v2 default: @@ -4549,51 +4551,15 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Nullable128S == nil { m.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4603,45 +4569,82 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) - } else { - var mapvalue *github_com_gogo_protobuf_test_custom.Uint128 - m.Nullable128S[mapkey] = mapvalue } + m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) iNdEx = postIndex case 2: if wireType != 2 { @@ -4669,51 +4672,15 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Uint128S == nil { m.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4723,45 +4690,82 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test_custom.Uint128 - m.Uint128S[mapkey] = mapvalue } + m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) iNdEx = postIndex case 3: if wireType != 2 { @@ -4789,51 +4793,15 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.NullableIds == nil { m.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4843,45 +4811,82 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test.Uuid - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) - } else { - var mapvalue *github_com_gogo_protobuf_test.Uuid - m.NullableIds[mapkey] = mapvalue } + m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) iNdEx = postIndex case 4: if wireType != 2 { @@ -4909,51 +4914,15 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Ids == nil { m.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4963,45 +4932,82 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test.Uuid - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test.Uuid - m.Ids[mapkey] = mapvalue } + m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) iNdEx = postIndex default: iNdEx = preIndex @@ -5080,51 +5086,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5134,30 +5103,62 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue } + m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -5185,51 +5186,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5239,26 +5203,62 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + mapvalue = math.Float32frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue } + m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -5286,41 +5286,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int32Map == nil { m.Int32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5330,31 +5303,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue } + m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -5382,41 +5382,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5426,31 +5399,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue } + m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -5478,41 +5478,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint32Map == nil { m.Uint32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5522,31 +5495,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue } + m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -5574,41 +5574,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint64Map == nil { m.Uint64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5618,31 +5591,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue } + m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -5670,43 +5670,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) if m.Sint32Map == nil { m.Sint32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5716,33 +5687,64 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey = int32(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue = int32(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue } + m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -5770,43 +5772,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) if m.Sint64Map == nil { m.Sint64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5816,33 +5789,64 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue = int64(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue } + m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -5870,35 +5874,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 if m.Fixed32Map == nil { m.Fixed32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5908,25 +5891,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue } + m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -5954,35 +5952,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 if m.Sfixed32Map == nil { m.Sfixed32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5992,25 +5969,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue } + m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6038,39 +6030,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6080,29 +6047,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue } + m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -6130,39 +6108,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 if m.Sfixed64Map == nil { m.Sfixed64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6172,29 +6125,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue } + m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -6222,42 +6186,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) if m.BoolMap == nil { m.BoolMap = make(map[bool]bool) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey bool + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6267,32 +6203,62 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue } + m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -6320,51 +6286,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringMap == nil { m.StringMap = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6374,41 +6303,80 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue } + m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -6436,51 +6404,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6490,42 +6421,81 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue } + m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -6553,51 +6523,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue MapEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6607,31 +6540,69 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue } + m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -6659,51 +6630,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToMsgMap == nil { m.StringToMsgMap = make(map[string]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6713,46 +6647,85 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue } + m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -6831,51 +6804,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6885,30 +6821,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue } + m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -6936,51 +6904,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToFloatMap == nil { m.StringToFloatMap = make(map[string]float32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6990,26 +6921,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + mapvalue = math.Float32frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue } + m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -7037,41 +7004,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int32Map == nil { m.Int32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7081,31 +7021,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue } + m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -7133,41 +7100,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7177,31 +7117,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue } + m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -7229,41 +7196,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Uint32Map == nil { + m.Uint32Map = make(map[uint32]uint32) } var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7273,31 +7213,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue } + m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -7325,41 +7292,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint64Map == nil { m.Uint64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7369,31 +7309,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue } + m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -7421,43 +7388,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) if m.Sint32Map == nil { m.Sint32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7467,33 +7405,64 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey = int32(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue = int32(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue } + m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -7521,43 +7490,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) if m.Sint64Map == nil { m.Sint64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7567,33 +7507,64 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue = int64(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue } + m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -7621,35 +7592,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 if m.Fixed32Map == nil { m.Fixed32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7659,25 +7609,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue } + m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -7705,35 +7670,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 if m.Sfixed32Map == nil { m.Sfixed32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7743,25 +7687,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue } + m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -7789,39 +7748,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7831,29 +7765,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue } + m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -7881,39 +7826,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 if m.Sfixed64Map == nil { m.Sfixed64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7923,29 +7843,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue } + m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -7973,42 +7904,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) if m.BoolMap == nil { m.BoolMap = make(map[bool]bool) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey bool + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -8018,32 +7921,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue } + m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -8071,51 +8004,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringMap == nil { m.StringMap = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -8125,41 +8021,80 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue } + m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -8187,51 +8122,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -8241,42 +8139,81 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue } + m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -8304,51 +8241,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue MapEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -8358,31 +8258,69 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue } + m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -8410,51 +8348,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToMsgMap == nil { m.StringToMsgMap = make(map[string]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -8464,46 +8365,85 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue } + m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2pb_test.go index 6419067e6..9dddf5971 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/both/mapsproto2pb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/mapsproto2.proto -// DO NOT EDIT! /* Package proto2_maps is a generated protocol buffer package. @@ -17,13 +16,12 @@ It has these top-level messages: package proto2_maps import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -34,14 +32,14 @@ var _ = math.Inf func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -62,13 +60,13 @@ func TestFloatingPointProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestFloatingPointMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -80,7 +78,7 @@ func TestFloatingPointMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -95,7 +93,7 @@ func TestFloatingPointMarshalTo(t *testing.T) { } func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 10000) for i := 0; i < 10000; i++ { @@ -103,7 +101,7 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -113,11 +111,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } @@ -127,7 +125,7 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -136,14 +134,14 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { func TestCustomMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -164,13 +162,13 @@ func TestCustomMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -182,7 +180,7 @@ func TestCustomMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -197,7 +195,7 @@ func TestCustomMapMarshalTo(t *testing.T) { } func BenchmarkCustomMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomMap, 10000) for i := 0; i < 10000; i++ { @@ -205,7 +203,7 @@ func BenchmarkCustomMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -215,11 +213,11 @@ func BenchmarkCustomMapProtoMarshal(b *testing.B) { } func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomMap(popr, false)) if err != nil { panic(err) } @@ -229,7 +227,7 @@ func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -238,14 +236,14 @@ func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -266,13 +264,13 @@ func TestAllMapsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllMapsMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -284,7 +282,7 @@ func TestAllMapsMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -299,7 +297,7 @@ func TestAllMapsMarshalTo(t *testing.T) { } func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 10000) for i := 0; i < 10000; i++ { @@ -307,7 +305,7 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -317,11 +315,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } @@ -331,7 +329,7 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -340,14 +338,14 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -368,13 +366,13 @@ func TestAllMapsOrderedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllMapsOrderedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -386,7 +384,7 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -401,7 +399,7 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { } func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 10000) for i := 0; i < 10000; i++ { @@ -409,7 +407,7 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -419,11 +417,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } @@ -433,7 +431,7 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -442,15 +440,15 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { func TestFloatingPointJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -463,15 +461,15 @@ func TestFloatingPointJSON(t *testing.T) { } func TestCustomMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -484,15 +482,15 @@ func TestCustomMapJSON(t *testing.T) { } func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -505,15 +503,15 @@ func TestAllMapsJSON(t *testing.T) { } func TestAllMapsOrderedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -526,11 +524,11 @@ func TestAllMapsOrderedJSON(t *testing.T) { } func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -543,11 +541,11 @@ func TestFloatingPointProtoText(t *testing.T) { func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -560,11 +558,11 @@ func TestFloatingPointProtoCompactText(t *testing.T) { func TestCustomMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -577,11 +575,11 @@ func TestCustomMapProtoText(t *testing.T) { func TestCustomMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -594,11 +592,11 @@ func TestCustomMapProtoCompactText(t *testing.T) { func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -611,11 +609,11 @@ func TestAllMapsProtoText(t *testing.T) { func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -628,11 +626,11 @@ func TestAllMapsProtoCompactText(t *testing.T) { func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -645,11 +643,11 @@ func TestAllMapsOrderedProtoText(t *testing.T) { func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -664,14 +662,14 @@ func TestMapsproto2Description(t *testing.T) { Mapsproto2Description() } func TestFloatingPointVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -679,14 +677,14 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestCustomMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -694,14 +692,14 @@ func TestCustomMapVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -709,14 +707,14 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -724,7 +722,7 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -732,7 +730,7 @@ func TestFloatingPointFace(t *testing.T) { } } func TestCustomMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -740,7 +738,7 @@ func TestCustomMapFace(t *testing.T) { } } func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -748,7 +746,7 @@ func TestAllMapsFace(t *testing.T) { } } func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -756,63 +754,63 @@ func TestAllMapsOrderedFace(t *testing.T) { } } func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestFloatingPointSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -823,14 +821,14 @@ func TestFloatingPointSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 1000) for i := 0; i < 1000; i++ { @@ -845,10 +843,10 @@ func BenchmarkFloatingPointSize(b *testing.B) { func TestCustomMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -859,14 +857,14 @@ func TestCustomMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomMap, 1000) for i := 0; i < 1000; i++ { @@ -881,10 +879,10 @@ func BenchmarkCustomMapSize(b *testing.B) { func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -895,14 +893,14 @@ func TestAllMapsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 1000) for i := 0; i < 1000; i++ { @@ -917,10 +915,10 @@ func BenchmarkAllMapsSize(b *testing.B) { func TestAllMapsOrderedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -931,14 +929,14 @@ func TestAllMapsOrderedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 1000) for i := 0; i < 1000; i++ { @@ -952,7 +950,7 @@ func BenchmarkAllMapsOrderedSize(b *testing.B) { } func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -961,7 +959,7 @@ func TestFloatingPointStringer(t *testing.T) { } } func TestCustomMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -970,7 +968,7 @@ func TestCustomMapStringer(t *testing.T) { } } func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -979,7 +977,7 @@ func TestAllMapsStringer(t *testing.T) { } } func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go index be3e7569c..d836afeb0 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/mapsproto2.proto -// DO NOT EDIT! /* Package proto2_maps is a generated protocol buffer package. @@ -24,17 +23,18 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strconv "strconv" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -162,320 +162,326 @@ func init() { proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) } -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *FloatingPoint) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomMap) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMaps) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMapsOrdered) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func Mapsproto2Description() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4577 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xbf, 0x86, 0x0f, 0x89, 0x3c, 0xa4, 0xa8, 0xd1, 0x95, 0xbc, 0xa6, 0xe5, 0x58, 0xbb, 0x2b, - 0xbf, 0xe4, 0xb5, 0x2d, 0xd9, 0xf2, 0xee, 0x7a, 0xcd, 0x8d, 0x6d, 0x50, 0x12, 0x57, 0x2b, 0x5b, - 0xaf, 0x0c, 0x25, 0x7b, 0xed, 0x3f, 0x8c, 0xf9, 0x8f, 0x86, 0x97, 0xd4, 0x78, 0xc9, 0x19, 0x7a, - 0x66, 0xb8, 0xb6, 0xfc, 0xa1, 0xd8, 0xc2, 0x7d, 0x20, 0x28, 0xfa, 0x2e, 0x50, 0xc7, 0x75, 0xdc, - 0x26, 0x40, 0xeb, 0x34, 0xe9, 0x23, 0xe9, 0x23, 0x0d, 0xfa, 0x29, 0x5f, 0xd2, 0x1a, 0x28, 0x50, - 0x24, 0xdf, 0x82, 0x20, 0x30, 0xbc, 0x8a, 0x81, 0xba, 0xad, 0xdb, 0xba, 0x8d, 0x81, 0x04, 0xf0, - 0x97, 0xe2, 0xbe, 0x86, 0x33, 0xc3, 0x21, 0x87, 0x32, 0xe0, 0xa4, 0x1f, 0xfc, 0x49, 0x9a, 0x73, - 0xcf, 0xef, 0x77, 0xcf, 0x3d, 0xf7, 0xdc, 0x73, 0xce, 0x5c, 0x0e, 0xfc, 0xe8, 0x1c, 0x9c, 0x6a, - 0x58, 0x56, 0xa3, 0x89, 0x17, 0xdb, 0xb6, 0xe5, 0x5a, 0xfb, 0x9d, 0xfa, 0x62, 0x0d, 0x3b, 0xba, - 0x6d, 0xb4, 0x5d, 0xcb, 0x5e, 0xa0, 0x32, 0x34, 0xc1, 0x34, 0x16, 0x84, 0xc6, 0xdc, 0x26, 0x4c, - 0x5e, 0x32, 0x9a, 0x78, 0xd5, 0x53, 0xac, 0x62, 0x17, 0x5d, 0x80, 0x54, 0xdd, 0x68, 0xe2, 0xa2, - 0x74, 0x2a, 0x39, 0x9f, 0x5b, 0xba, 0x63, 0x21, 0x04, 0x5a, 0x08, 0x22, 0x76, 0x88, 0x58, 0xa1, - 0x88, 0xb9, 0x77, 0x53, 0x30, 0x15, 0x31, 0x8a, 0x10, 0xa4, 0x4c, 0xad, 0x45, 0x18, 0xa5, 0xf9, - 0xac, 0x42, 0xff, 0x47, 0x45, 0x18, 0x6b, 0x6b, 0xfa, 0x55, 0xad, 0x81, 0x8b, 0x09, 0x2a, 0x16, - 0x8f, 0x68, 0x16, 0xa0, 0x86, 0xdb, 0xd8, 0xac, 0x61, 0x53, 0x3f, 0x2c, 0x26, 0x4f, 0x25, 0xe7, - 0xb3, 0x8a, 0x4f, 0x82, 0xee, 0x85, 0xc9, 0x76, 0x67, 0xbf, 0x69, 0xe8, 0xaa, 0x4f, 0x0d, 0x4e, - 0x25, 0xe7, 0xd3, 0x8a, 0xcc, 0x06, 0x56, 0xbb, 0xca, 0x77, 0xc3, 0xc4, 0x8b, 0x58, 0xbb, 0xea, - 0x57, 0xcd, 0x51, 0xd5, 0x02, 0x11, 0xfb, 0x14, 0x57, 0x20, 0xdf, 0xc2, 0x8e, 0xa3, 0x35, 0xb0, - 0xea, 0x1e, 0xb6, 0x71, 0x31, 0x45, 0x57, 0x7f, 0xaa, 0x67, 0xf5, 0xe1, 0x95, 0xe7, 0x38, 0x6a, - 0xf7, 0xb0, 0x8d, 0x51, 0x19, 0xb2, 0xd8, 0xec, 0xb4, 0x18, 0x43, 0xba, 0x8f, 0xff, 0x2a, 0x66, - 0xa7, 0x15, 0x66, 0xc9, 0x10, 0x18, 0xa7, 0x18, 0x73, 0xb0, 0x7d, 0xcd, 0xd0, 0x71, 0x71, 0x94, - 0x12, 0xdc, 0xdd, 0x43, 0x50, 0x65, 0xe3, 0x61, 0x0e, 0x81, 0x43, 0x2b, 0x90, 0xc5, 0x2f, 0xb9, - 0xd8, 0x74, 0x0c, 0xcb, 0x2c, 0x8e, 0x51, 0x92, 0x3b, 0x23, 0x76, 0x11, 0x37, 0x6b, 0x61, 0x8a, - 0x2e, 0x0e, 0x9d, 0x87, 0x31, 0xab, 0xed, 0x1a, 0x96, 0xe9, 0x14, 0x33, 0xa7, 0xa4, 0xf9, 0xdc, - 0xd2, 0x67, 0x22, 0x03, 0x61, 0x9b, 0xe9, 0x28, 0x42, 0x19, 0xad, 0x83, 0xec, 0x58, 0x1d, 0x5b, - 0xc7, 0xaa, 0x6e, 0xd5, 0xb0, 0x6a, 0x98, 0x75, 0xab, 0x98, 0xa5, 0x04, 0x27, 0x7b, 0x17, 0x42, - 0x15, 0x57, 0xac, 0x1a, 0x5e, 0x37, 0xeb, 0x96, 0x52, 0x70, 0x02, 0xcf, 0xe8, 0x04, 0x8c, 0x3a, - 0x87, 0xa6, 0xab, 0xbd, 0x54, 0xcc, 0xd3, 0x08, 0xe1, 0x4f, 0x73, 0x3f, 0x49, 0xc3, 0xc4, 0x30, - 0x21, 0x76, 0x11, 0xd2, 0x75, 0xb2, 0xca, 0x62, 0xe2, 0x38, 0x3e, 0x60, 0x98, 0xa0, 0x13, 0x47, - 0x3f, 0xa6, 0x13, 0xcb, 0x90, 0x33, 0xb1, 0xe3, 0xe2, 0x1a, 0x8b, 0x88, 0xe4, 0x90, 0x31, 0x05, - 0x0c, 0xd4, 0x1b, 0x52, 0xa9, 0x8f, 0x15, 0x52, 0x57, 0x60, 0xc2, 0x33, 0x49, 0xb5, 0x35, 0xb3, - 0x21, 0x62, 0x73, 0x31, 0xce, 0x92, 0x85, 0x8a, 0xc0, 0x29, 0x04, 0xa6, 0x14, 0x70, 0xe0, 0x19, - 0xad, 0x02, 0x58, 0x26, 0xb6, 0xea, 0x6a, 0x0d, 0xeb, 0xcd, 0x62, 0xa6, 0x8f, 0x97, 0xb6, 0x89, - 0x4a, 0x8f, 0x97, 0x2c, 0x26, 0xd5, 0x9b, 0xe8, 0x91, 0x6e, 0xa8, 0x8d, 0xf5, 0x89, 0x94, 0x4d, - 0x76, 0xc8, 0x7a, 0xa2, 0x6d, 0x0f, 0x0a, 0x36, 0x26, 0x71, 0x8f, 0x6b, 0x7c, 0x65, 0x59, 0x6a, - 0xc4, 0x42, 0xec, 0xca, 0x14, 0x0e, 0x63, 0x0b, 0x1b, 0xb7, 0xfd, 0x8f, 0xe8, 0x76, 0xf0, 0x04, - 0x2a, 0x0d, 0x2b, 0xa0, 0x59, 0x28, 0x2f, 0x84, 0x5b, 0x5a, 0x0b, 0xcf, 0x5c, 0x80, 0x42, 0xd0, - 0x3d, 0x68, 0x1a, 0xd2, 0x8e, 0xab, 0xd9, 0x2e, 0x8d, 0xc2, 0xb4, 0xc2, 0x1e, 0x90, 0x0c, 0x49, - 0x6c, 0xd6, 0x68, 0x96, 0x4b, 0x2b, 0xe4, 0xdf, 0x99, 0x87, 0x61, 0x3c, 0x30, 0xfd, 0xb0, 0xc0, - 0xb9, 0x57, 0x47, 0x61, 0x3a, 0x2a, 0xe6, 0x22, 0xc3, 0xff, 0x04, 0x8c, 0x9a, 0x9d, 0xd6, 0x3e, - 0xb6, 0x8b, 0x49, 0xca, 0xc0, 0x9f, 0x50, 0x19, 0xd2, 0x4d, 0x6d, 0x1f, 0x37, 0x8b, 0xa9, 0x53, - 0xd2, 0x7c, 0x61, 0xe9, 0xde, 0xa1, 0xa2, 0x7a, 0x61, 0x83, 0x40, 0x14, 0x86, 0x44, 0x8f, 0x41, - 0x8a, 0xa7, 0x38, 0xc2, 0x70, 0x66, 0x38, 0x06, 0x12, 0x8b, 0x0a, 0xc5, 0xa1, 0x5b, 0x21, 0x4b, - 0xfe, 0x32, 0xdf, 0x8e, 0x52, 0x9b, 0x33, 0x44, 0x40, 0xfc, 0x8a, 0x66, 0x20, 0x43, 0xc3, 0xac, - 0x86, 0x45, 0x69, 0xf0, 0x9e, 0xc9, 0xc6, 0xd4, 0x70, 0x5d, 0xeb, 0x34, 0x5d, 0xf5, 0x9a, 0xd6, - 0xec, 0x60, 0x1a, 0x30, 0x59, 0x25, 0xcf, 0x85, 0x4f, 0x11, 0x19, 0x3a, 0x09, 0x39, 0x16, 0x95, - 0x86, 0x59, 0xc3, 0x2f, 0xd1, 0xec, 0x93, 0x56, 0x58, 0xa0, 0xae, 0x13, 0x09, 0x99, 0xfe, 0x79, - 0xc7, 0x32, 0xc5, 0xd6, 0xd2, 0x29, 0x88, 0x80, 0x4e, 0xff, 0x70, 0x38, 0xf1, 0xdd, 0x16, 0xbd, - 0xbc, 0x70, 0x2c, 0xce, 0x7d, 0x33, 0x01, 0x29, 0x7a, 0xde, 0x26, 0x20, 0xb7, 0xfb, 0xcc, 0x4e, - 0x45, 0x5d, 0xdd, 0xde, 0x5b, 0xde, 0xa8, 0xc8, 0x12, 0x2a, 0x00, 0x50, 0xc1, 0xa5, 0x8d, 0xed, - 0xf2, 0xae, 0x9c, 0xf0, 0x9e, 0xd7, 0xb7, 0x76, 0xcf, 0x9f, 0x95, 0x93, 0x1e, 0x60, 0x8f, 0x09, - 0x52, 0x7e, 0x85, 0x87, 0x96, 0xe4, 0x34, 0x92, 0x21, 0xcf, 0x08, 0xd6, 0xaf, 0x54, 0x56, 0xcf, - 0x9f, 0x95, 0x47, 0x83, 0x92, 0x87, 0x96, 0xe4, 0x31, 0x34, 0x0e, 0x59, 0x2a, 0x59, 0xde, 0xde, - 0xde, 0x90, 0x33, 0x1e, 0x67, 0x75, 0x57, 0x59, 0xdf, 0x5a, 0x93, 0xb3, 0x1e, 0xe7, 0x9a, 0xb2, - 0xbd, 0xb7, 0x23, 0x83, 0xc7, 0xb0, 0x59, 0xa9, 0x56, 0xcb, 0x6b, 0x15, 0x39, 0xe7, 0x69, 0x2c, - 0x3f, 0xb3, 0x5b, 0xa9, 0xca, 0xf9, 0x80, 0x59, 0x0f, 0x2d, 0xc9, 0xe3, 0xde, 0x14, 0x95, 0xad, - 0xbd, 0x4d, 0xb9, 0x80, 0x26, 0x61, 0x9c, 0x4d, 0x21, 0x8c, 0x98, 0x08, 0x89, 0xce, 0x9f, 0x95, - 0xe5, 0xae, 0x21, 0x8c, 0x65, 0x32, 0x20, 0x38, 0x7f, 0x56, 0x46, 0x73, 0x2b, 0x90, 0xa6, 0xd1, - 0x85, 0x10, 0x14, 0x36, 0xca, 0xcb, 0x95, 0x0d, 0x75, 0x7b, 0x67, 0x77, 0x7d, 0x7b, 0xab, 0xbc, - 0x21, 0x4b, 0x5d, 0x99, 0x52, 0xf9, 0xdc, 0xde, 0xba, 0x52, 0x59, 0x95, 0x13, 0x7e, 0xd9, 0x4e, - 0xa5, 0xbc, 0x5b, 0x59, 0x95, 0x93, 0x73, 0x3a, 0x4c, 0x47, 0xe5, 0x99, 0xc8, 0x93, 0xe1, 0xdb, - 0xe2, 0x44, 0x9f, 0x2d, 0xa6, 0x5c, 0x3d, 0x5b, 0xfc, 0x65, 0x09, 0xa6, 0x22, 0x72, 0x6d, 0xe4, - 0x24, 0x8f, 0x43, 0x9a, 0x85, 0x28, 0xab, 0x3e, 0xf7, 0x44, 0x26, 0x6d, 0x1a, 0xb0, 0x3d, 0x15, - 0x88, 0xe2, 0xfc, 0x15, 0x38, 0xd9, 0xa7, 0x02, 0x13, 0x8a, 0x1e, 0x23, 0x5f, 0x91, 0xa0, 0xd8, - 0x8f, 0x3b, 0x26, 0x51, 0x24, 0x02, 0x89, 0xe2, 0x62, 0xd8, 0x80, 0xd3, 0xfd, 0xd7, 0xd0, 0x63, - 0xc5, 0x9b, 0x12, 0x9c, 0x88, 0x6e, 0x54, 0x22, 0x6d, 0x78, 0x0c, 0x46, 0x5b, 0xd8, 0x3d, 0xb0, - 0x44, 0xb1, 0xbe, 0x2b, 0xa2, 0x04, 0x90, 0xe1, 0xb0, 0xaf, 0x38, 0xca, 0x5f, 0x43, 0x92, 0xfd, - 0xba, 0x0d, 0x66, 0x4d, 0x8f, 0xa5, 0x9f, 0x4f, 0xc0, 0x4d, 0x91, 0xe4, 0x91, 0x86, 0xde, 0x06, - 0x60, 0x98, 0xed, 0x8e, 0xcb, 0x0a, 0x32, 0xcb, 0x4f, 0x59, 0x2a, 0xa1, 0x67, 0x9f, 0xe4, 0x9e, - 0x8e, 0xeb, 0x8d, 0x27, 0xe9, 0x38, 0x30, 0x11, 0x55, 0xb8, 0xd0, 0x35, 0x34, 0x45, 0x0d, 0x9d, - 0xed, 0xb3, 0xd2, 0x9e, 0x5a, 0xf7, 0x00, 0xc8, 0x7a, 0xd3, 0xc0, 0xa6, 0xab, 0x3a, 0xae, 0x8d, - 0xb5, 0x96, 0x61, 0x36, 0x68, 0x02, 0xce, 0x94, 0xd2, 0x75, 0xad, 0xe9, 0x60, 0x65, 0x82, 0x0d, - 0x57, 0xc5, 0x28, 0x41, 0xd0, 0x2a, 0x63, 0xfb, 0x10, 0xa3, 0x01, 0x04, 0x1b, 0xf6, 0x10, 0x73, - 0x5f, 0x1b, 0x83, 0x9c, 0xaf, 0xad, 0x43, 0xa7, 0x21, 0xff, 0xbc, 0x76, 0x4d, 0x53, 0x45, 0xab, - 0xce, 0x3c, 0x91, 0x23, 0xb2, 0x1d, 0xde, 0xae, 0x3f, 0x00, 0xd3, 0x54, 0xc5, 0xea, 0xb8, 0xd8, - 0x56, 0xf5, 0xa6, 0xe6, 0x38, 0xd4, 0x69, 0x19, 0xaa, 0x8a, 0xc8, 0xd8, 0x36, 0x19, 0x5a, 0x11, - 0x23, 0xe8, 0x1c, 0x4c, 0x51, 0x44, 0xab, 0xd3, 0x74, 0x8d, 0x76, 0x13, 0xab, 0xe4, 0xe5, 0xc1, - 0xa1, 0x89, 0xd8, 0xb3, 0x6c, 0x92, 0x68, 0x6c, 0x72, 0x05, 0x62, 0x91, 0x83, 0x56, 0xe1, 0x36, - 0x0a, 0x6b, 0x60, 0x13, 0xdb, 0x9a, 0x8b, 0x55, 0xfc, 0x42, 0x47, 0x6b, 0x3a, 0xaa, 0x66, 0xd6, - 0xd4, 0x03, 0xcd, 0x39, 0x28, 0x4e, 0x13, 0x82, 0xe5, 0x44, 0x51, 0x52, 0x6e, 0x21, 0x8a, 0x6b, - 0x5c, 0xaf, 0x42, 0xd5, 0xca, 0x66, 0xed, 0xb2, 0xe6, 0x1c, 0xa0, 0x12, 0x9c, 0xa0, 0x2c, 0x8e, - 0x6b, 0x1b, 0x66, 0x43, 0xd5, 0x0f, 0xb0, 0x7e, 0x55, 0xed, 0xb8, 0xf5, 0x0b, 0xc5, 0x5b, 0xfd, - 0xf3, 0x53, 0x0b, 0xab, 0x54, 0x67, 0x85, 0xa8, 0xec, 0xb9, 0xf5, 0x0b, 0xa8, 0x0a, 0x79, 0xb2, - 0x19, 0x2d, 0xe3, 0x65, 0xac, 0xd6, 0x2d, 0x9b, 0x56, 0x96, 0x42, 0xc4, 0xc9, 0xf6, 0x79, 0x70, - 0x61, 0x9b, 0x03, 0x36, 0xad, 0x1a, 0x2e, 0xa5, 0xab, 0x3b, 0x95, 0xca, 0xaa, 0x92, 0x13, 0x2c, - 0x97, 0x2c, 0x9b, 0x04, 0x54, 0xc3, 0xf2, 0x1c, 0x9c, 0x63, 0x01, 0xd5, 0xb0, 0x84, 0x7b, 0xcf, - 0xc1, 0x94, 0xae, 0xb3, 0x35, 0x1b, 0xba, 0xca, 0x5b, 0x7c, 0xa7, 0x28, 0x07, 0x9c, 0xa5, 0xeb, - 0x6b, 0x4c, 0x81, 0xc7, 0xb8, 0x83, 0x1e, 0x81, 0x9b, 0xba, 0xce, 0xf2, 0x03, 0x27, 0x7b, 0x56, - 0x19, 0x86, 0x9e, 0x83, 0xa9, 0xf6, 0x61, 0x2f, 0x10, 0x05, 0x66, 0x6c, 0x1f, 0x86, 0x61, 0x77, - 0xd2, 0xd7, 0x36, 0x1b, 0xeb, 0x9a, 0x8b, 0x6b, 0xc5, 0x9b, 0xfd, 0xda, 0xbe, 0x01, 0xb4, 0x08, - 0xb2, 0xae, 0xab, 0xd8, 0xd4, 0xf6, 0x9b, 0x58, 0xd5, 0x6c, 0x6c, 0x6a, 0x4e, 0xf1, 0xa4, 0x5f, - 0xb9, 0xa0, 0xeb, 0x15, 0x3a, 0x5a, 0xa6, 0x83, 0xe8, 0x0c, 0x4c, 0x5a, 0xfb, 0xcf, 0xeb, 0x2c, - 0xb2, 0xd4, 0xb6, 0x8d, 0xeb, 0xc6, 0x4b, 0xc5, 0x3b, 0xa8, 0x9b, 0x26, 0xc8, 0x00, 0x8d, 0xab, - 0x1d, 0x2a, 0x46, 0xf7, 0x80, 0xac, 0x3b, 0x07, 0x9a, 0xdd, 0xa6, 0xa5, 0xdd, 0x69, 0x6b, 0x3a, - 0x2e, 0xde, 0xc9, 0x54, 0x99, 0x7c, 0x4b, 0x88, 0x49, 0x64, 0x3b, 0x2f, 0x1a, 0x75, 0x57, 0x30, - 0xde, 0xcd, 0x22, 0x9b, 0xca, 0x38, 0xdb, 0x15, 0x98, 0xee, 0x98, 0x86, 0xe9, 0x62, 0xbb, 0x6d, - 0x63, 0xd2, 0xc4, 0xb3, 0x93, 0x58, 0xfc, 0x97, 0xb1, 0x3e, 0x6d, 0xf8, 0x9e, 0x5f, 0x9b, 0x05, - 0x80, 0x32, 0xd5, 0xe9, 0x15, 0xce, 0x95, 0x20, 0xef, 0x8f, 0x0b, 0x94, 0x05, 0x16, 0x19, 0xb2, - 0x44, 0x6a, 0xec, 0xca, 0xf6, 0x2a, 0xa9, 0x8e, 0xcf, 0x56, 0xe4, 0x04, 0xa9, 0xd2, 0x1b, 0xeb, - 0xbb, 0x15, 0x55, 0xd9, 0xdb, 0xda, 0x5d, 0xdf, 0xac, 0xc8, 0xc9, 0x33, 0xd9, 0xcc, 0x7b, 0x63, - 0xf2, 0xf5, 0xeb, 0xd7, 0xaf, 0x27, 0xe6, 0xbe, 0x93, 0x80, 0x42, 0xb0, 0x33, 0x46, 0x9f, 0x85, - 0x9b, 0xc5, 0x6b, 0xac, 0x83, 0x5d, 0xf5, 0x45, 0xc3, 0xa6, 0xa1, 0xda, 0xd2, 0x58, 0x6f, 0xe9, - 0x79, 0x79, 0x9a, 0x6b, 0x55, 0xb1, 0xfb, 0xb4, 0x61, 0x93, 0x40, 0x6c, 0x69, 0x2e, 0xda, 0x80, - 0x93, 0xa6, 0xa5, 0x3a, 0xae, 0x66, 0xd6, 0x34, 0xbb, 0xa6, 0x76, 0x2f, 0x10, 0x54, 0x4d, 0xd7, - 0xb1, 0xe3, 0x58, 0xac, 0x44, 0x78, 0x2c, 0x9f, 0x31, 0xad, 0x2a, 0x57, 0xee, 0xe6, 0xce, 0x32, - 0x57, 0x0d, 0x45, 0x44, 0xb2, 0x5f, 0x44, 0xdc, 0x0a, 0xd9, 0x96, 0xd6, 0x56, 0xb1, 0xe9, 0xda, - 0x87, 0xb4, 0x9f, 0xcb, 0x28, 0x99, 0x96, 0xd6, 0xae, 0x90, 0xe7, 0x4f, 0x6e, 0x0f, 0xfc, 0x7e, - 0xfc, 0x61, 0x12, 0xf2, 0xfe, 0x9e, 0x8e, 0xb4, 0xc8, 0x3a, 0xcd, 0xdf, 0x12, 0x3d, 0xe1, 0xb7, - 0x0f, 0xec, 0x00, 0x17, 0x56, 0x48, 0x62, 0x2f, 0x8d, 0xb2, 0x4e, 0x4b, 0x61, 0x48, 0x52, 0x54, - 0xc9, 0x99, 0xc6, 0xac, 0x7f, 0xcf, 0x28, 0xfc, 0x09, 0xad, 0xc1, 0xe8, 0xf3, 0x0e, 0xe5, 0x1e, - 0xa5, 0xdc, 0x77, 0x0c, 0xe6, 0x7e, 0xa2, 0x4a, 0xc9, 0xb3, 0x4f, 0x54, 0xd5, 0xad, 0x6d, 0x65, - 0xb3, 0xbc, 0xa1, 0x70, 0x38, 0xba, 0x05, 0x52, 0x4d, 0xed, 0xe5, 0xc3, 0x60, 0x09, 0xa0, 0xa2, - 0x61, 0x1d, 0x7f, 0x0b, 0xa4, 0x5e, 0xc4, 0xda, 0xd5, 0x60, 0xe2, 0xa5, 0xa2, 0x4f, 0x30, 0xf4, - 0x17, 0x21, 0x4d, 0xfd, 0x85, 0x00, 0xb8, 0xc7, 0xe4, 0x11, 0x94, 0x81, 0xd4, 0xca, 0xb6, 0x42, - 0xc2, 0x5f, 0x86, 0x3c, 0x93, 0xaa, 0x3b, 0xeb, 0x95, 0x95, 0x8a, 0x9c, 0x98, 0x3b, 0x07, 0xa3, - 0xcc, 0x09, 0xe4, 0x68, 0x78, 0x6e, 0x90, 0x47, 0xf8, 0x23, 0xe7, 0x90, 0xc4, 0xe8, 0xde, 0xe6, - 0x72, 0x45, 0x91, 0x13, 0xfe, 0xed, 0x75, 0x20, 0xef, 0x6f, 0xe7, 0x7e, 0x36, 0x31, 0xf5, 0xf7, - 0x12, 0xe4, 0x7c, 0xed, 0x19, 0x69, 0x0c, 0xb4, 0x66, 0xd3, 0x7a, 0x51, 0xd5, 0x9a, 0x86, 0xe6, - 0xf0, 0xa0, 0x00, 0x2a, 0x2a, 0x13, 0xc9, 0xb0, 0x9b, 0xf6, 0x33, 0x31, 0xfe, 0x0d, 0x09, 0xe4, - 0x70, 0x6b, 0x17, 0x32, 0x50, 0xfa, 0xb9, 0x1a, 0xf8, 0xba, 0x04, 0x85, 0x60, 0x3f, 0x17, 0x32, - 0xef, 0xf4, 0xcf, 0xd5, 0xbc, 0x77, 0x12, 0x30, 0x1e, 0xe8, 0xe2, 0x86, 0xb5, 0xee, 0x05, 0x98, - 0x34, 0x6a, 0xb8, 0xd5, 0xb6, 0x5c, 0x6c, 0xea, 0x87, 0x6a, 0x13, 0x5f, 0xc3, 0xcd, 0xe2, 0x1c, - 0x4d, 0x14, 0x8b, 0x83, 0xfb, 0xc4, 0x85, 0xf5, 0x2e, 0x6e, 0x83, 0xc0, 0x4a, 0x53, 0xeb, 0xab, - 0x95, 0xcd, 0x9d, 0xed, 0xdd, 0xca, 0xd6, 0xca, 0x33, 0xea, 0xde, 0xd6, 0x93, 0x5b, 0xdb, 0x4f, - 0x6f, 0x29, 0xb2, 0x11, 0x52, 0xfb, 0x04, 0x8f, 0xfa, 0x0e, 0xc8, 0x61, 0xa3, 0xd0, 0xcd, 0x10, - 0x65, 0x96, 0x3c, 0x82, 0xa6, 0x60, 0x62, 0x6b, 0x5b, 0xad, 0xae, 0xaf, 0x56, 0xd4, 0xca, 0xa5, - 0x4b, 0x95, 0x95, 0xdd, 0x2a, 0x7b, 0x71, 0xf6, 0xb4, 0x77, 0x83, 0x87, 0xfa, 0xb5, 0x24, 0x4c, - 0x45, 0x58, 0x82, 0xca, 0xbc, 0x67, 0x67, 0xaf, 0x11, 0xf7, 0x0f, 0x63, 0xfd, 0x02, 0xe9, 0x0a, - 0x76, 0x34, 0xdb, 0xe5, 0x2d, 0xfe, 0x3d, 0x40, 0xbc, 0x64, 0xba, 0x46, 0xdd, 0xc0, 0x36, 0xbf, - 0x67, 0x60, 0x8d, 0xfc, 0x44, 0x57, 0xce, 0xae, 0x1a, 0xee, 0x03, 0xd4, 0xb6, 0x1c, 0xc3, 0x35, - 0xae, 0x61, 0xd5, 0x30, 0xc5, 0xa5, 0x04, 0x69, 0xec, 0x53, 0x8a, 0x2c, 0x46, 0xd6, 0x4d, 0xd7, - 0xd3, 0x36, 0x71, 0x43, 0x0b, 0x69, 0x93, 0x04, 0x9e, 0x54, 0x64, 0x31, 0xe2, 0x69, 0x9f, 0x86, - 0x7c, 0xcd, 0xea, 0x90, 0x36, 0x89, 0xe9, 0x91, 0x7a, 0x21, 0x29, 0x39, 0x26, 0xf3, 0x54, 0x78, - 0x1f, 0xdb, 0xbd, 0x0d, 0xc9, 0x2b, 0x39, 0x26, 0x63, 0x2a, 0x77, 0xc3, 0x84, 0xd6, 0x68, 0xd8, - 0x84, 0x5c, 0x10, 0xb1, 0xce, 0xbc, 0xe0, 0x89, 0xa9, 0xe2, 0xcc, 0x13, 0x90, 0x11, 0x7e, 0x20, - 0x25, 0x99, 0x78, 0x42, 0x6d, 0xb3, 0x3b, 0xa9, 0xc4, 0x7c, 0x56, 0xc9, 0x98, 0x62, 0xf0, 0x34, - 0xe4, 0x0d, 0x47, 0xed, 0x5e, 0x8e, 0x26, 0x4e, 0x25, 0xe6, 0x33, 0x4a, 0xce, 0x70, 0xbc, 0xdb, - 0xb0, 0xb9, 0x37, 0x13, 0x50, 0x08, 0x5e, 0xee, 0xa2, 0x55, 0xc8, 0x34, 0x2d, 0x5d, 0xa3, 0xa1, - 0xc5, 0x7e, 0x59, 0x98, 0x8f, 0xb9, 0x0f, 0x5e, 0xd8, 0xe0, 0xfa, 0x8a, 0x87, 0x9c, 0xf9, 0x67, - 0x09, 0x32, 0x42, 0x8c, 0x4e, 0x40, 0xaa, 0xad, 0xb9, 0x07, 0x94, 0x2e, 0xbd, 0x9c, 0x90, 0x25, - 0x85, 0x3e, 0x13, 0xb9, 0xd3, 0xd6, 0x4c, 0x1a, 0x02, 0x5c, 0x4e, 0x9e, 0xc9, 0xbe, 0x36, 0xb1, - 0x56, 0xa3, 0x6d, 0xbf, 0xd5, 0x6a, 0x61, 0xd3, 0x75, 0xc4, 0xbe, 0x72, 0xf9, 0x0a, 0x17, 0xa3, - 0x7b, 0x61, 0xd2, 0xb5, 0x35, 0xa3, 0x19, 0xd0, 0x4d, 0x51, 0x5d, 0x59, 0x0c, 0x78, 0xca, 0x25, - 0xb8, 0x45, 0xf0, 0xd6, 0xb0, 0xab, 0xe9, 0x07, 0xb8, 0xd6, 0x05, 0x8d, 0xd2, 0x9b, 0xc3, 0x9b, - 0xb9, 0xc2, 0x2a, 0x1f, 0x17, 0xd8, 0xb9, 0xef, 0x49, 0x30, 0x29, 0x5e, 0x54, 0x6a, 0x9e, 0xb3, - 0x36, 0x01, 0x34, 0xd3, 0xb4, 0x5c, 0xbf, 0xbb, 0x7a, 0x43, 0xb9, 0x07, 0xb7, 0x50, 0xf6, 0x40, - 0x8a, 0x8f, 0x60, 0xa6, 0x05, 0xd0, 0x1d, 0xe9, 0xeb, 0xb6, 0x93, 0x90, 0xe3, 0x37, 0xf7, 0xf4, - 0xe7, 0x1f, 0xf6, 0x6a, 0x0b, 0x4c, 0x44, 0xde, 0x68, 0xd0, 0x34, 0xa4, 0xf7, 0x71, 0xc3, 0x30, - 0xf9, 0x7d, 0x22, 0x7b, 0x10, 0xb7, 0x94, 0x29, 0xef, 0x96, 0x72, 0xf9, 0x0a, 0x4c, 0xe9, 0x56, - 0x2b, 0x6c, 0xee, 0xb2, 0x1c, 0x7a, 0xbd, 0x76, 0x2e, 0x4b, 0xcf, 0x42, 0xb7, 0xc5, 0xfc, 0x72, - 0x22, 0xb9, 0xb6, 0xb3, 0xfc, 0xd5, 0xc4, 0xcc, 0x1a, 0xc3, 0xed, 0x88, 0x65, 0x2a, 0xb8, 0xde, - 0xc4, 0x3a, 0x31, 0x1d, 0x7e, 0x7c, 0x17, 0xdc, 0xdf, 0x30, 0xdc, 0x83, 0xce, 0xfe, 0x82, 0x6e, - 0xb5, 0x16, 0x1b, 0x56, 0xc3, 0xea, 0xfe, 0xdc, 0x45, 0x9e, 0xe8, 0x03, 0xfd, 0x8f, 0xff, 0xe4, - 0x95, 0xf5, 0xa4, 0x33, 0xb1, 0xbf, 0x8f, 0x95, 0xb6, 0x60, 0x8a, 0x2b, 0xab, 0xf4, 0xce, 0x9d, - 0xbd, 0x1a, 0xa0, 0x81, 0xf7, 0x2e, 0xc5, 0x6f, 0xbc, 0x4b, 0x6b, 0xb5, 0x32, 0xc9, 0xa1, 0x64, - 0x8c, 0xbd, 0x40, 0x94, 0x14, 0xb8, 0x29, 0xc0, 0xc7, 0xce, 0x25, 0xb6, 0x63, 0x18, 0xbf, 0xc3, - 0x19, 0xa7, 0x7c, 0x8c, 0x55, 0x0e, 0x2d, 0xad, 0xc0, 0xf8, 0x71, 0xb8, 0xfe, 0x81, 0x73, 0xe5, - 0xb1, 0x9f, 0x64, 0x0d, 0x26, 0x28, 0x89, 0xde, 0x71, 0x5c, 0xab, 0x45, 0x93, 0xde, 0x60, 0x9a, - 0x7f, 0x7c, 0x97, 0x1d, 0x94, 0x02, 0x81, 0xad, 0x78, 0xa8, 0x52, 0x09, 0xe8, 0xcf, 0x0c, 0x35, - 0xac, 0x37, 0x63, 0x18, 0xde, 0xe2, 0x86, 0x78, 0xfa, 0xa5, 0xa7, 0x60, 0x9a, 0xfc, 0x4f, 0x73, - 0x92, 0xdf, 0x92, 0xf8, 0x5b, 0xa6, 0xe2, 0xf7, 0x5e, 0x61, 0x67, 0x71, 0xca, 0x23, 0xf0, 0xd9, - 0xe4, 0xdb, 0xc5, 0x06, 0x76, 0x5d, 0x6c, 0x3b, 0xaa, 0xd6, 0x8c, 0x32, 0xcf, 0xf7, 0x9a, 0x5e, - 0xfc, 0xc2, 0xfb, 0xc1, 0x5d, 0x5c, 0x63, 0xc8, 0x72, 0xb3, 0x59, 0xda, 0x83, 0x9b, 0x23, 0xa2, - 0x62, 0x08, 0xce, 0xd7, 0x38, 0xe7, 0x74, 0x4f, 0x64, 0x10, 0xda, 0x1d, 0x10, 0x72, 0x6f, 0x2f, - 0x87, 0xe0, 0xfc, 0x03, 0xce, 0x89, 0x38, 0x56, 0x6c, 0x29, 0x61, 0x7c, 0x02, 0x26, 0xaf, 0x61, - 0x7b, 0xdf, 0x72, 0xf8, 0xd5, 0xc8, 0x10, 0x74, 0xaf, 0x73, 0xba, 0x09, 0x0e, 0xa4, 0x77, 0x25, - 0x84, 0xeb, 0x11, 0xc8, 0xd4, 0x35, 0x1d, 0x0f, 0x41, 0xf1, 0x45, 0x4e, 0x31, 0x46, 0xf4, 0x09, - 0xb4, 0x0c, 0xf9, 0x86, 0xc5, 0xcb, 0x52, 0x3c, 0xfc, 0x0d, 0x0e, 0xcf, 0x09, 0x0c, 0xa7, 0x68, - 0x5b, 0xed, 0x4e, 0x93, 0xd4, 0xac, 0x78, 0x8a, 0x3f, 0x14, 0x14, 0x02, 0xc3, 0x29, 0x8e, 0xe1, - 0xd6, 0x3f, 0x12, 0x14, 0x8e, 0xcf, 0x9f, 0x8f, 0x43, 0xce, 0x32, 0x9b, 0x87, 0x96, 0x39, 0x8c, - 0x11, 0x5f, 0xe2, 0x0c, 0xc0, 0x21, 0x84, 0xe0, 0x22, 0x64, 0x87, 0xdd, 0x88, 0x3f, 0x7e, 0x5f, - 0x1c, 0x0f, 0xb1, 0x03, 0x6b, 0x30, 0x21, 0x12, 0x94, 0x61, 0x99, 0x43, 0x50, 0xfc, 0x09, 0xa7, - 0x28, 0xf8, 0x60, 0x7c, 0x19, 0x2e, 0x76, 0xdc, 0x06, 0x1e, 0x86, 0xe4, 0x4d, 0xb1, 0x0c, 0x0e, - 0xe1, 0xae, 0xdc, 0xc7, 0xa6, 0x7e, 0x30, 0x1c, 0xc3, 0x57, 0x84, 0x2b, 0x05, 0x86, 0x50, 0xac, - 0xc0, 0x78, 0x4b, 0xb3, 0x9d, 0x03, 0xad, 0x39, 0xd4, 0x76, 0xfc, 0x29, 0xe7, 0xc8, 0x7b, 0x20, - 0xee, 0x91, 0x8e, 0x79, 0x1c, 0x9a, 0xaf, 0x0a, 0x8f, 0xf8, 0x60, 0xfc, 0xe8, 0x39, 0x2e, 0xbd, - 0x80, 0x3a, 0x0e, 0xdb, 0xd7, 0xc4, 0xd1, 0x63, 0xd8, 0x4d, 0x3f, 0xe3, 0x45, 0xc8, 0x3a, 0xc6, - 0xcb, 0x43, 0xd1, 0xfc, 0x99, 0xd8, 0x69, 0x0a, 0x20, 0xe0, 0x67, 0xe0, 0x96, 0xc8, 0x32, 0x31, - 0x04, 0xd9, 0x9f, 0x73, 0xb2, 0x13, 0x11, 0xa5, 0x82, 0xa7, 0x84, 0xe3, 0x52, 0xfe, 0x85, 0x48, - 0x09, 0x38, 0xc4, 0xb5, 0x43, 0x5e, 0x14, 0x1c, 0xad, 0x7e, 0x3c, 0xaf, 0xfd, 0xa5, 0xf0, 0x1a, - 0xc3, 0x06, 0xbc, 0xb6, 0x0b, 0x27, 0x38, 0xe3, 0xf1, 0xf6, 0xf5, 0xeb, 0x22, 0xb1, 0x32, 0xf4, - 0x5e, 0x70, 0x77, 0xff, 0x1f, 0xcc, 0x78, 0xee, 0x14, 0x1d, 0xa9, 0xa3, 0xb6, 0xb4, 0xf6, 0x10, - 0xcc, 0xdf, 0xe0, 0xcc, 0x22, 0xe3, 0x7b, 0x2d, 0xad, 0xb3, 0xa9, 0xb5, 0x09, 0xf9, 0x15, 0x28, - 0x0a, 0xf2, 0x8e, 0x69, 0x63, 0xdd, 0x6a, 0x98, 0xc6, 0xcb, 0xb8, 0x36, 0x04, 0xf5, 0x5f, 0x85, - 0xb6, 0x6a, 0xcf, 0x07, 0x27, 0xcc, 0xeb, 0x20, 0x7b, 0xbd, 0x8a, 0x6a, 0xb4, 0xda, 0x96, 0xed, - 0xc6, 0x30, 0xfe, 0xb5, 0xd8, 0x29, 0x0f, 0xb7, 0x4e, 0x61, 0xa5, 0x0a, 0x14, 0xe8, 0xe3, 0xb0, - 0x21, 0xf9, 0x37, 0x9c, 0x68, 0xbc, 0x8b, 0xe2, 0x89, 0x43, 0xb7, 0x5a, 0x6d, 0xcd, 0x1e, 0x26, - 0xff, 0xfd, 0xad, 0x48, 0x1c, 0x1c, 0xc2, 0x13, 0x87, 0x7b, 0xd8, 0xc6, 0xa4, 0xda, 0x0f, 0xc1, - 0xf0, 0x4d, 0x91, 0x38, 0x04, 0x86, 0x53, 0x88, 0x86, 0x61, 0x08, 0x8a, 0xbf, 0x13, 0x14, 0x02, - 0x43, 0x28, 0x3e, 0xd7, 0x2d, 0xb4, 0x36, 0x6e, 0x18, 0x8e, 0x6b, 0xb3, 0x3e, 0x78, 0x30, 0xd5, - 0xb7, 0xde, 0x0f, 0x36, 0x61, 0x8a, 0x0f, 0x5a, 0x7a, 0x02, 0x26, 0x42, 0x2d, 0x06, 0x8a, 0xfb, - 0x66, 0xa1, 0xf8, 0x8b, 0x1f, 0xf2, 0x64, 0x14, 0xec, 0x30, 0x4a, 0x1b, 0x64, 0xdf, 0x83, 0x7d, - 0x40, 0x3c, 0xd9, 0x2b, 0x1f, 0x7a, 0x5b, 0x1f, 0x68, 0x03, 0x4a, 0x97, 0x60, 0x3c, 0xd0, 0x03, - 0xc4, 0x53, 0xfd, 0x12, 0xa7, 0xca, 0xfb, 0x5b, 0x80, 0xd2, 0x39, 0x48, 0x91, 0x7a, 0x1e, 0x0f, - 0xff, 0x65, 0x0e, 0xa7, 0xea, 0xa5, 0x47, 0x21, 0x23, 0xea, 0x78, 0x3c, 0xf4, 0x57, 0x38, 0xd4, - 0x83, 0x10, 0xb8, 0xa8, 0xe1, 0xf1, 0xf0, 0x5f, 0x15, 0x70, 0x01, 0x21, 0xf0, 0xe1, 0x5d, 0xf8, - 0xed, 0x5f, 0x4b, 0xf1, 0x3c, 0x2c, 0x7c, 0x77, 0x11, 0xc6, 0x78, 0xf1, 0x8e, 0x47, 0x7f, 0x9e, - 0x4f, 0x2e, 0x10, 0xa5, 0x87, 0x21, 0x3d, 0xa4, 0xc3, 0x7f, 0x9d, 0x43, 0x99, 0x7e, 0x69, 0x05, - 0x72, 0xbe, 0x82, 0x1d, 0x0f, 0xff, 0x0d, 0x0e, 0xf7, 0xa3, 0x88, 0xe9, 0xbc, 0x60, 0xc7, 0x13, - 0xfc, 0xa6, 0x30, 0x9d, 0x23, 0x88, 0xdb, 0x44, 0xad, 0x8e, 0x47, 0xff, 0x96, 0xf0, 0xba, 0x80, - 0x94, 0x1e, 0x87, 0xac, 0x97, 0x7f, 0xe3, 0xf1, 0xbf, 0xcd, 0xf1, 0x5d, 0x0c, 0xf1, 0x80, 0x2f, - 0xff, 0xc7, 0x53, 0xfc, 0x8e, 0xf0, 0x80, 0x0f, 0x45, 0x8e, 0x51, 0xb8, 0xa6, 0xc7, 0x33, 0xfd, - 0xae, 0x38, 0x46, 0xa1, 0x92, 0x4e, 0x76, 0x93, 0xa6, 0xc1, 0x78, 0x8a, 0xdf, 0x13, 0xbb, 0x49, - 0xf5, 0x89, 0x19, 0xe1, 0x22, 0x19, 0xcf, 0xf1, 0xfb, 0xc2, 0x8c, 0x50, 0x8d, 0x2c, 0xed, 0x00, - 0xea, 0x2d, 0x90, 0xf1, 0x7c, 0xaf, 0x72, 0xbe, 0xc9, 0x9e, 0xfa, 0x58, 0x7a, 0x1a, 0x4e, 0x44, - 0x17, 0xc7, 0x78, 0xd6, 0x2f, 0x7c, 0x18, 0x7a, 0x9d, 0xf1, 0xd7, 0xc6, 0xd2, 0x6e, 0x37, 0xcb, - 0xfa, 0x0b, 0x63, 0x3c, 0xed, 0x6b, 0x1f, 0x06, 0x13, 0xad, 0xbf, 0x2e, 0x96, 0xca, 0x00, 0xdd, - 0x9a, 0x14, 0xcf, 0xf5, 0x3a, 0xe7, 0xf2, 0x81, 0xc8, 0xd1, 0xe0, 0x25, 0x29, 0x1e, 0xff, 0x45, - 0x71, 0x34, 0x38, 0x82, 0x1c, 0x0d, 0x51, 0x8d, 0xe2, 0xd1, 0x6f, 0x88, 0xa3, 0x21, 0x20, 0xa5, - 0x8b, 0x90, 0x31, 0x3b, 0xcd, 0x26, 0x89, 0x2d, 0x34, 0xf8, 0x33, 0xa2, 0xe2, 0xbf, 0x7e, 0xc4, - 0xc1, 0x02, 0x50, 0x3a, 0x07, 0x69, 0xdc, 0xda, 0xc7, 0xb5, 0x38, 0xe4, 0xbf, 0x7d, 0x24, 0xf2, - 0x09, 0xd1, 0x2e, 0x3d, 0x0e, 0xc0, 0x5e, 0xa6, 0xe9, 0xaf, 0x44, 0x31, 0xd8, 0x7f, 0xff, 0x88, - 0x7f, 0xa1, 0xd0, 0x85, 0x74, 0x09, 0xd8, 0xf7, 0x0e, 0x83, 0x09, 0xde, 0x0f, 0x12, 0xd0, 0x17, - 0xf0, 0x47, 0x60, 0xec, 0x79, 0xc7, 0x32, 0x5d, 0xad, 0x11, 0x87, 0xfe, 0x0f, 0x8e, 0x16, 0xfa, - 0xc4, 0x61, 0x2d, 0xcb, 0xc6, 0xae, 0xd6, 0x70, 0xe2, 0xb0, 0xff, 0xc9, 0xb1, 0x1e, 0x80, 0x80, - 0x75, 0xcd, 0x71, 0x87, 0x59, 0xf7, 0x7f, 0x09, 0xb0, 0x00, 0x10, 0xa3, 0xc9, 0xff, 0x57, 0xf1, - 0x61, 0x1c, 0xf6, 0x03, 0x61, 0x34, 0xd7, 0x2f, 0x3d, 0x0a, 0x59, 0xf2, 0x2f, 0xfb, 0x6a, 0x27, - 0x06, 0xfc, 0xdf, 0x1c, 0xdc, 0x45, 0x90, 0x99, 0x1d, 0xb7, 0xe6, 0x1a, 0xf1, 0xce, 0xfe, 0x1f, - 0xbe, 0xd3, 0x42, 0xbf, 0x54, 0x86, 0x9c, 0xe3, 0xd6, 0x6a, 0x1d, 0xde, 0xd1, 0xc4, 0xc0, 0x7f, - 0xfc, 0x91, 0xf7, 0x92, 0xeb, 0x61, 0x96, 0x4f, 0x47, 0x5f, 0xd6, 0xc1, 0x9a, 0xb5, 0x66, 0xb1, - 0x6b, 0x3a, 0xf8, 0xc9, 0xfd, 0x70, 0x5a, 0xb7, 0x5a, 0xfb, 0x96, 0xb3, 0xe8, 0x25, 0x92, 0xc5, - 0x96, 0xd6, 0x76, 0xa8, 0xf6, 0x12, 0xbf, 0x69, 0xcb, 0xf1, 0x27, 0x32, 0x30, 0x73, 0xbc, 0x5b, - 0xba, 0xb9, 0xdb, 0x60, 0xfc, 0x52, 0xd3, 0xd2, 0x5c, 0xc3, 0x6c, 0xec, 0x58, 0x86, 0xe9, 0xa2, - 0x3c, 0x48, 0x75, 0xfa, 0x13, 0x93, 0xa4, 0x48, 0xf5, 0xb9, 0x7f, 0x4a, 0x43, 0x96, 0x5d, 0xf0, - 0x6c, 0x6a, 0x6d, 0xf4, 0x0b, 0x90, 0xdf, 0xe2, 0x67, 0xe4, 0xc1, 0xa5, 0x0b, 0x8e, 0x77, 0x9b, - 0xec, 0x9b, 0x7f, 0xc1, 0xd3, 0x5e, 0xf0, 0xab, 0xd2, 0x9f, 0x94, 0x97, 0x1f, 0xf8, 0xc1, 0xdb, - 0x27, 0xef, 0xeb, 0x6b, 0x1f, 0x29, 0x8a, 0x8b, 0x2c, 0x98, 0x17, 0xf6, 0x0c, 0xd3, 0x7d, 0x70, - 0xe9, 0x82, 0x12, 0x98, 0x0f, 0x5d, 0x83, 0x0c, 0x1f, 0x70, 0xf8, 0xaf, 0x0c, 0x77, 0xf4, 0x99, - 0x5b, 0xa8, 0xb1, 0x79, 0xcf, 0xbe, 0xf5, 0xf6, 0xc9, 0x91, 0x63, 0xcf, 0xed, 0xcd, 0x85, 0x5e, - 0x80, 0x9c, 0xb0, 0x63, 0xbd, 0xe6, 0xf0, 0x8f, 0x89, 0xef, 0x8e, 0x59, 0xf6, 0x7a, 0x8d, 0xcf, - 0x7e, 0xd7, 0x0f, 0xde, 0x3e, 0x39, 0x37, 0x70, 0xe6, 0x85, 0xbd, 0x8e, 0x51, 0x53, 0xfc, 0x73, - 0xa0, 0xe7, 0x20, 0x49, 0xa6, 0x62, 0x9f, 0x1d, 0x9f, 0xec, 0x33, 0x95, 0x37, 0xc5, 0x19, 0xbe, - 0xc0, 0x61, 0xa6, 0x21, 0xbc, 0x33, 0x8f, 0xc3, 0x64, 0xcf, 0xf6, 0x20, 0x19, 0x92, 0x57, 0xf1, - 0x21, 0xff, 0xd2, 0x88, 0xfc, 0x8b, 0xa6, 0xbb, 0x5f, 0xd2, 0x49, 0xf3, 0x79, 0xfe, 0x79, 0x5c, - 0x29, 0x71, 0x41, 0x9a, 0xb9, 0x08, 0xe3, 0x01, 0x1f, 0x1f, 0x0b, 0xfc, 0x18, 0xc8, 0x61, 0x2f, - 0x1d, 0x0b, 0x7f, 0x1e, 0x32, 0x1f, 0x07, 0x37, 0xf7, 0x7d, 0x04, 0x63, 0xe5, 0x66, 0x73, 0x53, - 0x6b, 0x3b, 0xe8, 0x19, 0x98, 0x64, 0xad, 0xfb, 0xae, 0xb5, 0x4a, 0x7f, 0xd7, 0xd9, 0xd4, 0xda, - 0x3c, 0xa0, 0xef, 0x0d, 0xb8, 0x9b, 0x03, 0x16, 0x7a, 0xb4, 0xe9, 0xfc, 0x4a, 0x2f, 0x0b, 0x7a, - 0x0a, 0x64, 0x21, 0xa4, 0x67, 0x8b, 0x30, 0xb3, 0x70, 0x3d, 0x33, 0x90, 0x59, 0x28, 0x33, 0xe2, - 0x1e, 0x0e, 0xf4, 0x18, 0x64, 0xd6, 0x4d, 0xf7, 0xa1, 0x25, 0xc2, 0xc7, 0x62, 0x70, 0x2e, 0x92, - 0x4f, 0x28, 0x31, 0x1e, 0x0f, 0xc3, 0xf1, 0xe7, 0xcf, 0x12, 0x7c, 0x6a, 0x30, 0x9e, 0x2a, 0x75, - 0xf1, 0xf4, 0x11, 0x95, 0x21, 0x4b, 0xf6, 0x9c, 0x19, 0xc0, 0xbe, 0x63, 0xbf, 0x3d, 0x92, 0xc0, - 0xd3, 0x62, 0x0c, 0x5d, 0x94, 0xa0, 0x60, 0x36, 0x8c, 0xc6, 0x50, 0xf8, 0x8c, 0xe8, 0xa2, 0x08, - 0x45, 0xd5, 0xb3, 0x62, 0x6c, 0x00, 0x45, 0x35, 0x64, 0x45, 0xd5, 0x6f, 0x45, 0xd5, 0xb3, 0x22, - 0x13, 0x43, 0xe1, 0xb7, 0xc2, 0x7b, 0x46, 0xab, 0x00, 0x97, 0x8c, 0x97, 0x70, 0x8d, 0x99, 0x91, - 0x8d, 0x48, 0x46, 0x82, 0xa3, 0xab, 0xc6, 0x48, 0x7c, 0x38, 0xb4, 0x06, 0xb9, 0x6a, 0xbd, 0x4b, - 0x03, 0xfc, 0x33, 0xfe, 0x48, 0x53, 0xea, 0x21, 0x1e, 0x3f, 0xd2, 0x33, 0x87, 0x2d, 0x29, 0x17, - 0x67, 0x8e, 0x6f, 0x4d, 0x3e, 0x5c, 0xd7, 0x1c, 0x46, 0x93, 0x8f, 0x35, 0xc7, 0xc7, 0xe3, 0x47, - 0xa2, 0x8b, 0x30, 0xb6, 0x6c, 0x59, 0x44, 0xb3, 0x38, 0x4e, 0x49, 0x4e, 0x47, 0x92, 0x70, 0x1d, - 0x46, 0x20, 0x10, 0x74, 0x77, 0x68, 0xe8, 0x13, 0x78, 0x61, 0xd0, 0xee, 0x08, 0x2d, 0xb1, 0x3b, - 0xe2, 0xd9, 0x7f, 0x02, 0x97, 0x0f, 0x5d, 0x4c, 0xda, 0xe4, 0xe2, 0xc4, 0x10, 0x27, 0x50, 0x28, - 0x87, 0x4e, 0xa0, 0x10, 0xa3, 0x2a, 0x4c, 0x08, 0x59, 0xc5, 0xec, 0x90, 0x1c, 0x5c, 0x94, 0xf9, - 0x37, 0xc6, 0x83, 0x68, 0xb9, 0x2e, 0x63, 0x0d, 0x33, 0xa0, 0x1d, 0x28, 0x08, 0xd1, 0xa6, 0x43, - 0x17, 0x3d, 0x19, 0x51, 0x57, 0xc3, 0x9c, 0x4c, 0x95, 0x51, 0x86, 0xf0, 0x33, 0xab, 0x70, 0x22, - 0x3a, 0x5b, 0xc5, 0x65, 0x4b, 0xc9, 0x9f, 0x65, 0x57, 0xe0, 0xa6, 0xc8, 0xcc, 0x14, 0x47, 0x92, - 0x08, 0xd5, 0x89, 0x40, 0x3a, 0xf2, 0x83, 0xd3, 0x11, 0xe0, 0x74, 0x2f, 0xb8, 0x1b, 0x64, 0x7e, - 0x70, 0x32, 0x02, 0x9c, 0xf4, 0x83, 0x3f, 0x0b, 0x85, 0x60, 0x1e, 0xf2, 0xa3, 0xc7, 0x23, 0xd0, - 0xe3, 0x11, 0xe8, 0xe8, 0xb9, 0x53, 0x11, 0xe8, 0x54, 0x08, 0x5d, 0xed, 0x3b, 0xf7, 0x64, 0x04, - 0x7a, 0x32, 0x02, 0x1d, 0x3d, 0x37, 0x8a, 0x40, 0x23, 0x3f, 0xfa, 0x51, 0x98, 0x08, 0xa5, 0x1c, - 0x3f, 0x7c, 0x2c, 0x02, 0x3e, 0x16, 0xaa, 0xcd, 0xe1, 0x54, 0xe3, 0xc7, 0x4f, 0x44, 0xe0, 0x27, - 0xa2, 0xa6, 0x8f, 0xb6, 0x7e, 0x34, 0x02, 0x3e, 0x1a, 0x39, 0x7d, 0x34, 0x5e, 0x8e, 0xc0, 0xcb, - 0x7e, 0x7c, 0x09, 0xf2, 0xfe, 0xac, 0xe2, 0xc7, 0x66, 0x22, 0xb0, 0x99, 0xb0, 0xdf, 0x03, 0x29, - 0x25, 0x2e, 0xd2, 0xb3, 0x7d, 0x8e, 0x4b, 0x20, 0x8d, 0x1c, 0xab, 0xb3, 0xb9, 0x02, 0xd3, 0x51, - 0x49, 0x23, 0x82, 0xe3, 0x8c, 0x9f, 0xa3, 0xb0, 0x34, 0x1d, 0x48, 0x16, 0x14, 0xd7, 0x69, 0xf9, - 0x99, 0x9f, 0x83, 0xa9, 0x88, 0xd4, 0x11, 0x41, 0xfc, 0x80, 0x9f, 0x38, 0xb7, 0x34, 0x13, 0x20, - 0x0e, 0xbc, 0x2b, 0xf8, 0x5b, 0xab, 0x1f, 0x4e, 0x41, 0x81, 0xa7, 0xa8, 0x6d, 0xbb, 0x86, 0x6d, - 0x5c, 0x43, 0xff, 0xbf, 0x7f, 0x87, 0xb5, 0x14, 0x95, 0xda, 0x38, 0xee, 0x18, 0x8d, 0xd6, 0x73, - 0x7d, 0x1b, 0xad, 0x07, 0x87, 0x99, 0x20, 0xae, 0xdf, 0xaa, 0xf4, 0xf4, 0x5b, 0xf7, 0x0c, 0xa2, - 0xed, 0xd7, 0x76, 0x55, 0x7a, 0xda, 0xae, 0x38, 0x9a, 0xc8, 0xee, 0xeb, 0x72, 0x6f, 0xf7, 0x75, - 0x66, 0x10, 0x4f, 0xff, 0x26, 0xec, 0x72, 0x6f, 0x13, 0x16, 0xcb, 0x14, 0xdd, 0x8b, 0x5d, 0xee, - 0xed, 0xc5, 0x06, 0x32, 0xf5, 0x6f, 0xc9, 0x2e, 0xf7, 0xb6, 0x64, 0xb1, 0x4c, 0xd1, 0x9d, 0xd9, - 0x93, 0x11, 0x9d, 0xd9, 0xbd, 0x83, 0xa8, 0x06, 0x35, 0x68, 0x5b, 0x51, 0x0d, 0xda, 0x7d, 0x03, - 0x0d, 0x1b, 0xd8, 0xa7, 0x3d, 0x19, 0xd1, 0xa7, 0xc5, 0x1b, 0xd7, 0xa7, 0x5d, 0xdb, 0x8a, 0x6a, - 0xd7, 0x86, 0x30, 0xae, 0x5f, 0xd7, 0xb6, 0x1c, 0xee, 0xda, 0xe6, 0x07, 0x71, 0x45, 0x37, 0x6f, - 0x97, 0x7b, 0x9b, 0xb7, 0x33, 0xf1, 0x67, 0x31, 0xaa, 0x87, 0x7b, 0xae, 0x6f, 0x0f, 0x37, 0xd4, - 0xe1, 0x8e, 0x6b, 0xe5, 0x9e, 0xed, 0xd7, 0xca, 0x3d, 0x30, 0x0c, 0xfb, 0xe0, 0x8e, 0xee, 0xe9, - 0x3e, 0x1d, 0xdd, 0xe2, 0x30, 0xd4, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, - 0x36, 0x76, 0xff, 0x37, 0x1a, 0xbb, 0x52, 0xea, 0xd5, 0x2f, 0x9d, 0x94, 0xce, 0x9c, 0x86, 0x31, - 0x3e, 0x35, 0x1a, 0x85, 0xc4, 0x66, 0x59, 0x1e, 0xa1, 0x7f, 0x97, 0x65, 0x89, 0xfe, 0x5d, 0x91, - 0x13, 0xcb, 0x1b, 0x6f, 0xdd, 0x98, 0x1d, 0xf9, 0xee, 0x8d, 0xd9, 0x91, 0xef, 0xdf, 0x98, 0x1d, - 0x79, 0xe7, 0xc6, 0xac, 0xf4, 0xde, 0x8d, 0x59, 0xe9, 0x83, 0x1b, 0xb3, 0xd2, 0x4f, 0x6f, 0xcc, - 0x4a, 0xd7, 0x8f, 0x66, 0xa5, 0xaf, 0x1c, 0xcd, 0x4a, 0x5f, 0x3f, 0x9a, 0x95, 0xbe, 0x75, 0x34, - 0x2b, 0x7d, 0xfb, 0x68, 0x56, 0x7a, 0xeb, 0x68, 0x56, 0xfa, 0xee, 0xd1, 0xec, 0xc8, 0x3b, 0x47, - 0xb3, 0xd2, 0x7b, 0x47, 0xb3, 0x23, 0x1f, 0x1c, 0xcd, 0x4a, 0x3f, 0x3d, 0x9a, 0x1d, 0xb9, 0xfe, - 0xa3, 0xd9, 0x91, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x91, 0x69, 0xdc, 0x1d, 0x56, 0x45, 0x00, - 0x00, + // 4687 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xd6, 0xf0, 0x21, 0x91, 0x87, 0x14, 0x35, 0xba, 0x92, 0xd7, 0xb4, 0x1c, 0x6b, 0x77, 0xe5, + 0xc7, 0xca, 0x6b, 0x5b, 0x6b, 0xcb, 0xbb, 0xeb, 0x35, 0x37, 0xb6, 0x4b, 0x49, 0x5c, 0xad, 0x6c, + 0xbd, 0x32, 0x94, 0xfc, 0x0a, 0x8c, 0xe9, 0x68, 0x78, 0x49, 0x8d, 0x97, 0x9c, 0xa1, 0x67, 0x86, + 0x6b, 0xcb, 0x28, 0x8a, 0x2d, 0xdc, 0x07, 0x82, 0xa2, 0xef, 0x02, 0x71, 0x5c, 0xc7, 0x6d, 0x0a, + 0xb4, 0x4e, 0xd3, 0x57, 0xd2, 0xb4, 0x69, 0xda, 0x5f, 0xf9, 0x93, 0xd6, 0x40, 0x81, 0x22, 0xf9, + 0x17, 0x04, 0x81, 0xe1, 0x55, 0x0c, 0xd4, 0x6d, 0xdd, 0xc6, 0x6d, 0x0d, 0xd4, 0x80, 0xff, 0x14, + 0xf7, 0x35, 0x9c, 0x19, 0x0e, 0x39, 0x94, 0x01, 0x3b, 0xfd, 0xe1, 0x5f, 0xab, 0x39, 0xf7, 0x7c, + 0xdf, 0x3d, 0x73, 0xee, 0xb9, 0xe7, 0x9c, 0x7b, 0x87, 0x0b, 0x3f, 0x79, 0x10, 0x4e, 0x34, 0x2c, + 0xab, 0xd1, 0xc4, 0x67, 0xda, 0xb6, 0xe5, 0x5a, 0x7b, 0x9d, 0xfa, 0x99, 0x1a, 0x76, 0x74, 0xdb, + 0x68, 0xbb, 0x96, 0xbd, 0x40, 0x65, 0x68, 0x82, 0x69, 0x2c, 0x08, 0x8d, 0xb9, 0x0d, 0x98, 0xbc, + 0x64, 0x34, 0xf1, 0x8a, 0xa7, 0x58, 0xc5, 0x2e, 0xba, 0x00, 0xa9, 0xba, 0xd1, 0xc4, 0x45, 0xe9, + 0x44, 0x72, 0x3e, 0xb7, 0x78, 0xdb, 0x42, 0x08, 0xb4, 0x10, 0x44, 0x6c, 0x13, 0xb1, 0x42, 0x11, + 0x73, 0x6f, 0xa7, 0x60, 0x2a, 0x62, 0x14, 0x21, 0x48, 0x99, 0x5a, 0x8b, 0x30, 0x4a, 0xf3, 0x59, + 0x85, 0xfe, 0x8d, 0x8a, 0x30, 0xd6, 0xd6, 0xf4, 0x2b, 0x5a, 0x03, 0x17, 0x13, 0x54, 0x2c, 0x1e, + 0xd1, 0x2c, 0x40, 0x0d, 0xb7, 0xb1, 0x59, 0xc3, 0xa6, 0x7e, 0x50, 0x4c, 0x9e, 0x48, 0xce, 0x67, + 0x15, 0x9f, 0x04, 0xdd, 0x05, 0x93, 0xed, 0xce, 0x5e, 0xd3, 0xd0, 0x55, 0x9f, 0x1a, 0x9c, 0x48, + 0xce, 0xa7, 0x15, 0x99, 0x0d, 0xac, 0x74, 0x95, 0x4f, 0xc1, 0xc4, 0xf3, 0x58, 0xbb, 0xe2, 0x57, + 0xcd, 0x51, 0xd5, 0x02, 0x11, 0xfb, 0x14, 0x97, 0x21, 0xdf, 0xc2, 0x8e, 0xa3, 0x35, 0xb0, 0xea, + 0x1e, 0xb4, 0x71, 0x31, 0x45, 0xdf, 0xfe, 0x44, 0xcf, 0xdb, 0x87, 0xdf, 0x3c, 0xc7, 0x51, 0x3b, + 0x07, 0x6d, 0x8c, 0xca, 0x90, 0xc5, 0x66, 0xa7, 0xc5, 0x18, 0xd2, 0x7d, 0xfc, 0x57, 0x31, 0x3b, + 0xad, 0x30, 0x4b, 0x86, 0xc0, 0x38, 0xc5, 0x98, 0x83, 0xed, 0xab, 0x86, 0x8e, 0x8b, 0xa3, 0x94, + 0xe0, 0x54, 0x0f, 0x41, 0x95, 0x8d, 0x87, 0x39, 0x04, 0x0e, 0x2d, 0x43, 0x16, 0xbf, 0xe0, 0x62, + 0xd3, 0x31, 0x2c, 0xb3, 0x38, 0x46, 0x49, 0x6e, 0x8f, 0x58, 0x45, 0xdc, 0xac, 0x85, 0x29, 0xba, + 0x38, 0x74, 0x1e, 0xc6, 0xac, 0xb6, 0x6b, 0x58, 0xa6, 0x53, 0xcc, 0x9c, 0x90, 0xe6, 0x73, 0x8b, + 0x9f, 0x89, 0x0c, 0x84, 0x2d, 0xa6, 0xa3, 0x08, 0x65, 0xb4, 0x06, 0xb2, 0x63, 0x75, 0x6c, 0x1d, + 0xab, 0xba, 0x55, 0xc3, 0xaa, 0x61, 0xd6, 0xad, 0x62, 0x96, 0x12, 0x1c, 0xef, 0x7d, 0x11, 0xaa, + 0xb8, 0x6c, 0xd5, 0xf0, 0x9a, 0x59, 0xb7, 0x94, 0x82, 0x13, 0x78, 0x46, 0xc7, 0x60, 0xd4, 0x39, + 0x30, 0x5d, 0xed, 0x85, 0x62, 0x9e, 0x46, 0x08, 0x7f, 0x9a, 0xfb, 0xbb, 0x51, 0x98, 0x18, 0x26, + 0xc4, 0x2e, 0x42, 0xba, 0x4e, 0xde, 0xb2, 0x98, 0x38, 0x8a, 0x0f, 0x18, 0x26, 0xe8, 0xc4, 0xd1, + 0x8f, 0xe8, 0xc4, 0x32, 0xe4, 0x4c, 0xec, 0xb8, 0xb8, 0xc6, 0x22, 0x22, 0x39, 0x64, 0x4c, 0x01, + 0x03, 0xf5, 0x86, 0x54, 0xea, 0x23, 0x85, 0xd4, 0x93, 0x30, 0xe1, 0x99, 0xa4, 0xda, 0x9a, 0xd9, + 0x10, 0xb1, 0x79, 0x26, 0xce, 0x92, 0x85, 0x8a, 0xc0, 0x29, 0x04, 0xa6, 0x14, 0x70, 0xe0, 0x19, + 0xad, 0x00, 0x58, 0x26, 0xb6, 0xea, 0x6a, 0x0d, 0xeb, 0xcd, 0x62, 0xa6, 0x8f, 0x97, 0xb6, 0x88, + 0x4a, 0x8f, 0x97, 0x2c, 0x26, 0xd5, 0x9b, 0xe8, 0xc1, 0x6e, 0xa8, 0x8d, 0xf5, 0x89, 0x94, 0x0d, + 0xb6, 0xc9, 0x7a, 0xa2, 0x6d, 0x17, 0x0a, 0x36, 0x26, 0x71, 0x8f, 0x6b, 0xfc, 0xcd, 0xb2, 0xd4, + 0x88, 0x85, 0xd8, 0x37, 0x53, 0x38, 0x8c, 0xbd, 0xd8, 0xb8, 0xed, 0x7f, 0x44, 0xb7, 0x82, 0x27, + 0x50, 0x69, 0x58, 0x01, 0xcd, 0x42, 0x79, 0x21, 0xdc, 0xd4, 0x5a, 0x78, 0xe6, 0x45, 0x28, 0x04, + 0xdd, 0x83, 0xa6, 0x21, 0xed, 0xb8, 0x9a, 0xed, 0xd2, 0x28, 0x4c, 0x2b, 0xec, 0x01, 0xc9, 0x90, + 0xc4, 0x66, 0x8d, 0x66, 0xb9, 0xb4, 0x42, 0xfe, 0x44, 0x3f, 0xd3, 0x7d, 0xe1, 0x24, 0x7d, 0xe1, + 0x3b, 0x7a, 0x57, 0x34, 0xc0, 0x1c, 0x7e, 0xef, 0x99, 0x07, 0x60, 0x3c, 0xf0, 0x02, 0xc3, 0x4e, + 0x3d, 0xf7, 0x73, 0x70, 0x43, 0x24, 0x35, 0x7a, 0x12, 0xa6, 0x3b, 0xa6, 0x61, 0xba, 0xd8, 0x6e, + 0xdb, 0x98, 0x44, 0x2c, 0x9b, 0xaa, 0xf8, 0x2f, 0x63, 0x7d, 0x62, 0x6e, 0xd7, 0xaf, 0xcd, 0x58, + 0x94, 0xa9, 0x4e, 0xaf, 0xf0, 0x74, 0x36, 0xf3, 0xce, 0x98, 0x7c, 0xed, 0xda, 0xb5, 0x6b, 0x89, + 0xb9, 0x97, 0x47, 0x61, 0x3a, 0x6a, 0xcf, 0x44, 0x6e, 0xdf, 0x63, 0x30, 0x6a, 0x76, 0x5a, 0x7b, + 0xd8, 0xa6, 0x4e, 0x4a, 0x2b, 0xfc, 0x09, 0x95, 0x21, 0xdd, 0xd4, 0xf6, 0x70, 0xb3, 0x98, 0x3a, + 0x21, 0xcd, 0x17, 0x16, 0xef, 0x1a, 0x6a, 0x57, 0x2e, 0xac, 0x13, 0x88, 0xc2, 0x90, 0xe8, 0x61, + 0x48, 0xf1, 0x14, 0x4d, 0x18, 0x4e, 0x0f, 0xc7, 0x40, 0xf6, 0x92, 0x42, 0x71, 0xe8, 0x66, 0xc8, + 0x92, 0x7f, 0x59, 0x6c, 0x8c, 0x52, 0x9b, 0x33, 0x44, 0x40, 0xe2, 0x02, 0xcd, 0x40, 0x86, 0x6e, + 0x93, 0x1a, 0x16, 0xa5, 0xcd, 0x7b, 0x26, 0x81, 0x55, 0xc3, 0x75, 0xad, 0xd3, 0x74, 0xd5, 0xab, + 0x5a, 0xb3, 0x83, 0x69, 0xc0, 0x67, 0x95, 0x3c, 0x17, 0x3e, 0x4e, 0x64, 0xe8, 0x38, 0xe4, 0xd8, + 0xae, 0x32, 0xcc, 0x1a, 0x7e, 0x81, 0x66, 0xcf, 0xb4, 0xc2, 0x36, 0xda, 0x1a, 0x91, 0x90, 0xe9, + 0x9f, 0x75, 0x2c, 0x53, 0x84, 0x26, 0x9d, 0x82, 0x08, 0xe8, 0xf4, 0x0f, 0x84, 0x13, 0xf7, 0x2d, + 0xd1, 0xaf, 0x17, 0x8e, 0xa9, 0xb9, 0x6f, 0x25, 0x20, 0x45, 0xf3, 0xc5, 0x04, 0xe4, 0x76, 0x9e, + 0xda, 0xae, 0xa8, 0x2b, 0x5b, 0xbb, 0x4b, 0xeb, 0x15, 0x59, 0x42, 0x05, 0x00, 0x2a, 0xb8, 0xb4, + 0xbe, 0x55, 0xde, 0x91, 0x13, 0xde, 0xf3, 0xda, 0xe6, 0xce, 0xf9, 0xb3, 0x72, 0xd2, 0x03, 0xec, + 0x32, 0x41, 0xca, 0xaf, 0x70, 0xff, 0xa2, 0x9c, 0x46, 0x32, 0xe4, 0x19, 0xc1, 0xda, 0x93, 0x95, + 0x95, 0xf3, 0x67, 0xe5, 0xd1, 0xa0, 0xe4, 0xfe, 0x45, 0x79, 0x0c, 0x8d, 0x43, 0x96, 0x4a, 0x96, + 0xb6, 0xb6, 0xd6, 0xe5, 0x8c, 0xc7, 0x59, 0xdd, 0x51, 0xd6, 0x36, 0x57, 0xe5, 0xac, 0xc7, 0xb9, + 0xaa, 0x6c, 0xed, 0x6e, 0xcb, 0xe0, 0x31, 0x6c, 0x54, 0xaa, 0xd5, 0xf2, 0x6a, 0x45, 0xce, 0x79, + 0x1a, 0x4b, 0x4f, 0xed, 0x54, 0xaa, 0x72, 0x3e, 0x60, 0xd6, 0xfd, 0x8b, 0xf2, 0xb8, 0x37, 0x45, + 0x65, 0x73, 0x77, 0x43, 0x2e, 0xa0, 0x49, 0x18, 0x67, 0x53, 0x08, 0x23, 0x26, 0x42, 0xa2, 0xf3, + 0x67, 0x65, 0xb9, 0x6b, 0x08, 0x63, 0x99, 0x0c, 0x08, 0xce, 0x9f, 0x95, 0xd1, 0xdc, 0x32, 0xa4, + 0x69, 0x74, 0x21, 0x04, 0x85, 0xf5, 0xf2, 0x52, 0x65, 0x5d, 0xdd, 0xda, 0xde, 0x59, 0xdb, 0xda, + 0x2c, 0xaf, 0xcb, 0x52, 0x57, 0xa6, 0x54, 0x3e, 0xb7, 0xbb, 0xa6, 0x54, 0x56, 0xe4, 0x84, 0x5f, + 0xb6, 0x5d, 0x29, 0xef, 0x54, 0x56, 0xe4, 0xe4, 0x9c, 0x0e, 0xd3, 0x51, 0x79, 0x32, 0x72, 0x67, + 0xf8, 0x96, 0x38, 0xd1, 0x67, 0x89, 0x29, 0x57, 0xcf, 0x12, 0xff, 0x38, 0x01, 0x53, 0x11, 0xb5, + 0x22, 0x72, 0x92, 0x47, 0x20, 0xcd, 0x42, 0x94, 0x55, 0xcf, 0x3b, 0x23, 0x8b, 0x0e, 0x0d, 0xd8, + 0x9e, 0x0a, 0x4a, 0x71, 0xfe, 0x0e, 0x22, 0xd9, 0xa7, 0x83, 0x20, 0x14, 0x3d, 0x39, 0xfd, 0x99, + 0x9e, 0x9c, 0xce, 0xca, 0xde, 0xf9, 0x61, 0xca, 0x1e, 0x95, 0x1d, 0x2d, 0xb7, 0xa7, 0x23, 0x72, + 0xfb, 0x45, 0x98, 0xec, 0x21, 0x1a, 0x3a, 0xc7, 0xbe, 0x24, 0x41, 0xb1, 0x9f, 0x73, 0x62, 0x32, + 0x5d, 0x22, 0x90, 0xe9, 0x2e, 0x86, 0x3d, 0x78, 0xb2, 0xff, 0x22, 0xf4, 0xac, 0xf5, 0xeb, 0x12, + 0x1c, 0x8b, 0xee, 0x14, 0x23, 0x6d, 0x78, 0x18, 0x46, 0x5b, 0xd8, 0xdd, 0xb7, 0x44, 0xb7, 0x74, + 0x47, 0x44, 0x0d, 0x26, 0xc3, 0xe1, 0xc5, 0xe6, 0x28, 0x7f, 0x11, 0x4f, 0xf6, 0x6b, 0xf7, 0x98, + 0x35, 0x3d, 0x96, 0x7e, 0x21, 0x01, 0x37, 0x44, 0x92, 0x47, 0x1a, 0x7a, 0x0b, 0x80, 0x61, 0xb6, + 0x3b, 0x2e, 0xeb, 0x88, 0x58, 0x82, 0xcd, 0x52, 0x09, 0x4d, 0x5e, 0x24, 0x79, 0x76, 0x5c, 0x6f, + 0x3c, 0x49, 0xc7, 0x81, 0x89, 0xa8, 0xc2, 0x85, 0xae, 0xa1, 0x29, 0x6a, 0xe8, 0x6c, 0x9f, 0x37, + 0xed, 0x09, 0xcc, 0x7b, 0x41, 0xd6, 0x9b, 0x06, 0x36, 0x5d, 0xd5, 0x71, 0x6d, 0xac, 0xb5, 0x0c, + 0xb3, 0x41, 0x2b, 0x48, 0xa6, 0x94, 0xae, 0x6b, 0x4d, 0x07, 0x2b, 0x13, 0x6c, 0xb8, 0x2a, 0x46, + 0x09, 0x82, 0x06, 0x90, 0xed, 0x43, 0x8c, 0x06, 0x10, 0x6c, 0xd8, 0x43, 0xcc, 0x7d, 0x33, 0x03, + 0x39, 0x5f, 0x5f, 0x8d, 0x4e, 0x42, 0xfe, 0x59, 0xed, 0xaa, 0xa6, 0x8a, 0xb3, 0x12, 0xf3, 0x44, + 0x8e, 0xc8, 0xb6, 0xf9, 0x79, 0xe9, 0x5e, 0x98, 0xa6, 0x2a, 0x56, 0xc7, 0xc5, 0xb6, 0xaa, 0x37, + 0x35, 0xc7, 0xa1, 0x4e, 0xcb, 0x50, 0x55, 0x44, 0xc6, 0xb6, 0xc8, 0xd0, 0xb2, 0x18, 0x41, 0xe7, + 0x60, 0x8a, 0x22, 0x5a, 0x9d, 0xa6, 0x6b, 0xb4, 0x9b, 0x58, 0x25, 0xa7, 0x37, 0x87, 0x56, 0x12, + 0xcf, 0xb2, 0x49, 0xa2, 0xb1, 0xc1, 0x15, 0x88, 0x45, 0x0e, 0x5a, 0x81, 0x5b, 0x28, 0xac, 0x81, + 0x4d, 0x6c, 0x6b, 0x2e, 0x56, 0xf1, 0x73, 0x1d, 0xad, 0xe9, 0xa8, 0x9a, 0x59, 0x53, 0xf7, 0x35, + 0x67, 0xbf, 0x38, 0x4d, 0x08, 0x96, 0x12, 0x45, 0x49, 0xb9, 0x89, 0x28, 0xae, 0x72, 0xbd, 0x0a, + 0x55, 0x2b, 0x9b, 0xb5, 0xcb, 0x9a, 0xb3, 0x8f, 0x4a, 0x70, 0x8c, 0xb2, 0x38, 0xae, 0x6d, 0x98, + 0x0d, 0x55, 0xdf, 0xc7, 0xfa, 0x15, 0xb5, 0xe3, 0xd6, 0x2f, 0x14, 0x6f, 0xf6, 0xcf, 0x4f, 0x2d, + 0xac, 0x52, 0x9d, 0x65, 0xa2, 0xb2, 0xeb, 0xd6, 0x2f, 0xa0, 0x2a, 0xe4, 0xc9, 0x62, 0xb4, 0x8c, + 0x17, 0xb1, 0x5a, 0xb7, 0x6c, 0x5a, 0x1a, 0x0b, 0x11, 0xa9, 0xc9, 0xe7, 0xc1, 0x85, 0x2d, 0x0e, + 0xd8, 0xb0, 0x6a, 0xb8, 0x94, 0xae, 0x6e, 0x57, 0x2a, 0x2b, 0x4a, 0x4e, 0xb0, 0x5c, 0xb2, 0x6c, + 0x12, 0x50, 0x0d, 0xcb, 0x73, 0x70, 0x8e, 0x05, 0x54, 0xc3, 0x12, 0xee, 0x3d, 0x07, 0x53, 0xba, + 0xce, 0xde, 0xd9, 0xd0, 0x55, 0x7e, 0xc6, 0x72, 0x8a, 0x72, 0xc0, 0x59, 0xba, 0xbe, 0xca, 0x14, + 0x78, 0x8c, 0x3b, 0xe8, 0x41, 0xb8, 0xa1, 0xeb, 0x2c, 0x3f, 0x70, 0xb2, 0xe7, 0x2d, 0xc3, 0xd0, + 0x73, 0x30, 0xd5, 0x3e, 0xe8, 0x05, 0xa2, 0xc0, 0x8c, 0xed, 0x83, 0x30, 0xec, 0x01, 0x98, 0x6e, + 0xef, 0xb7, 0x7b, 0x71, 0xa7, 0xfd, 0x38, 0xd4, 0xde, 0x6f, 0x87, 0x81, 0xb7, 0xd3, 0x03, 0xb7, + 0x8d, 0x75, 0xcd, 0xc5, 0xb5, 0xe2, 0x8d, 0x7e, 0x75, 0xdf, 0x00, 0x3a, 0x03, 0xb2, 0xae, 0xab, + 0xd8, 0xd4, 0xf6, 0x9a, 0x58, 0xd5, 0x6c, 0x6c, 0x6a, 0x4e, 0xf1, 0xb8, 0x5f, 0xb9, 0xa0, 0xeb, + 0x15, 0x3a, 0x5a, 0xa6, 0x83, 0xe8, 0x34, 0x4c, 0x5a, 0x7b, 0xcf, 0xea, 0x2c, 0x24, 0xd5, 0xb6, + 0x8d, 0xeb, 0xc6, 0x0b, 0xc5, 0xdb, 0xa8, 0x7f, 0x27, 0xc8, 0x00, 0x0d, 0xc8, 0x6d, 0x2a, 0x46, + 0x77, 0x82, 0xac, 0x3b, 0xfb, 0x9a, 0xdd, 0xa6, 0x39, 0xd9, 0x69, 0x6b, 0x3a, 0x2e, 0xde, 0xce, + 0x54, 0x99, 0x7c, 0x53, 0x88, 0xc9, 0x96, 0x70, 0x9e, 0x37, 0xea, 0xae, 0x60, 0x3c, 0xc5, 0xb6, + 0x04, 0x95, 0x71, 0xb6, 0x79, 0x90, 0x89, 0x2b, 0x02, 0x13, 0xcf, 0x53, 0xb5, 0x42, 0x7b, 0xbf, + 0xed, 0x9f, 0xf7, 0x56, 0x18, 0x27, 0x9a, 0xdd, 0x49, 0xef, 0x64, 0x0d, 0x59, 0x7b, 0xdf, 0x37, + 0xe3, 0xc7, 0xd6, 0x1b, 0xcf, 0x95, 0x20, 0xef, 0x8f, 0x4f, 0x94, 0x05, 0x16, 0xa1, 0xb2, 0x44, + 0x9a, 0x95, 0xe5, 0xad, 0x15, 0xd2, 0x66, 0x3c, 0x5d, 0x91, 0x13, 0xa4, 0xdd, 0x59, 0x5f, 0xdb, + 0xa9, 0xa8, 0xca, 0xee, 0xe6, 0xce, 0xda, 0x46, 0x45, 0x4e, 0xfa, 0xfb, 0xea, 0xef, 0x26, 0xa0, + 0x10, 0x3c, 0x22, 0xa1, 0xcf, 0xc2, 0x8d, 0xe2, 0x3e, 0xc3, 0xc1, 0xae, 0xfa, 0xbc, 0x61, 0xd3, + 0x2d, 0xd3, 0xd2, 0x58, 0xf9, 0xf2, 0x16, 0x6d, 0x9a, 0x6b, 0x55, 0xb1, 0xfb, 0x84, 0x61, 0x93, + 0x0d, 0xd1, 0xd2, 0x5c, 0xb4, 0x0e, 0xc7, 0x4d, 0x4b, 0x75, 0x5c, 0xcd, 0xac, 0x69, 0x76, 0x4d, + 0xed, 0xde, 0x24, 0xa9, 0x9a, 0xae, 0x63, 0xc7, 0xb1, 0x58, 0xa9, 0xf2, 0x58, 0x3e, 0x63, 0x5a, + 0x55, 0xae, 0xdc, 0xcd, 0xe1, 0x65, 0xae, 0x1a, 0x0a, 0xb0, 0x64, 0xbf, 0x00, 0xbb, 0x19, 0xb2, + 0x2d, 0xad, 0xad, 0x62, 0xd3, 0xb5, 0x0f, 0x68, 0x63, 0x9c, 0x51, 0x32, 0x2d, 0xad, 0x5d, 0x21, + 0xcf, 0x9f, 0xcc, 0xf9, 0xe4, 0x47, 0x49, 0xc8, 0xfb, 0x9b, 0x63, 0x72, 0xd6, 0xd0, 0x69, 0x1d, + 0x91, 0x68, 0xa6, 0xb9, 0x75, 0x60, 0x2b, 0xbd, 0xb0, 0x4c, 0x0a, 0x4c, 0x69, 0x94, 0xb5, 0xac, + 0x0a, 0x43, 0x92, 0xe2, 0x4e, 0x72, 0x0b, 0x66, 0x2d, 0x42, 0x46, 0xe1, 0x4f, 0x68, 0x15, 0x46, + 0x9f, 0x75, 0x28, 0xf7, 0x28, 0xe5, 0xbe, 0x6d, 0x30, 0xf7, 0xa3, 0x55, 0x4a, 0x9e, 0x7d, 0xb4, + 0xaa, 0x6e, 0x6e, 0x29, 0x1b, 0xe5, 0x75, 0x85, 0xc3, 0xd1, 0x4d, 0x90, 0x6a, 0x6a, 0x2f, 0x1e, + 0x04, 0x4b, 0x11, 0x15, 0x0d, 0xeb, 0xf8, 0x9b, 0x20, 0xf5, 0x3c, 0xd6, 0xae, 0x04, 0x0b, 0x00, + 0x15, 0x7d, 0x8c, 0xa1, 0x7f, 0x06, 0xd2, 0xd4, 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x1e, 0x41, 0x19, + 0x48, 0x2d, 0x6f, 0x29, 0x24, 0xfc, 0x65, 0xc8, 0x33, 0xa9, 0xba, 0xbd, 0x56, 0x59, 0xae, 0xc8, + 0x89, 0xb9, 0x73, 0x30, 0xca, 0x9c, 0x40, 0xb6, 0x86, 0xe7, 0x06, 0x79, 0x84, 0x3f, 0x72, 0x0e, + 0x49, 0x8c, 0xee, 0x6e, 0x2c, 0x55, 0x14, 0x39, 0xe1, 0x5f, 0x5e, 0x07, 0xf2, 0xfe, 0xbe, 0xf8, + 0x93, 0x89, 0xa9, 0xbf, 0x97, 0x20, 0xe7, 0xeb, 0x73, 0x49, 0x83, 0xa2, 0x35, 0x9b, 0xd6, 0xf3, + 0xaa, 0xd6, 0x34, 0x34, 0x87, 0x07, 0x05, 0x50, 0x51, 0x99, 0x48, 0x86, 0x5d, 0xb4, 0x4f, 0xc4, + 0xf8, 0xd7, 0x24, 0x90, 0xc3, 0x2d, 0x66, 0xc8, 0x40, 0xe9, 0xa7, 0x6a, 0xe0, 0xab, 0x12, 0x14, + 0x82, 0x7d, 0x65, 0xc8, 0xbc, 0x93, 0x3f, 0x55, 0xf3, 0xde, 0x4a, 0xc0, 0x78, 0xa0, 0x9b, 0x1c, + 0xd6, 0xba, 0xe7, 0x60, 0xd2, 0xa8, 0xe1, 0x56, 0xdb, 0x72, 0xb1, 0xa9, 0x1f, 0xa8, 0x4d, 0x7c, + 0x15, 0x37, 0x8b, 0x73, 0x34, 0x51, 0x9c, 0x19, 0xdc, 0xaf, 0x2e, 0xac, 0x75, 0x71, 0xeb, 0x04, + 0x56, 0x9a, 0x5a, 0x5b, 0xa9, 0x6c, 0x6c, 0x6f, 0xed, 0x54, 0x36, 0x97, 0x9f, 0x52, 0x77, 0x37, + 0x1f, 0xdb, 0xdc, 0x7a, 0x62, 0x53, 0x91, 0x8d, 0x90, 0xda, 0xc7, 0xb8, 0xd5, 0xb7, 0x41, 0x0e, + 0x1b, 0x85, 0x6e, 0x84, 0x28, 0xb3, 0xe4, 0x11, 0x34, 0x05, 0x13, 0x9b, 0x5b, 0x6a, 0x75, 0x6d, + 0xa5, 0xa2, 0x56, 0x2e, 0x5d, 0xaa, 0x2c, 0xef, 0x54, 0xd9, 0x0d, 0x84, 0xa7, 0xbd, 0x13, 0xdc, + 0xd4, 0xaf, 0x24, 0x61, 0x2a, 0xc2, 0x12, 0x54, 0xe6, 0x67, 0x07, 0x76, 0x9c, 0xb9, 0x67, 0x18, + 0xeb, 0x17, 0x48, 0xc9, 0xdf, 0xd6, 0x6c, 0x97, 0x1f, 0x35, 0xee, 0x04, 0xe2, 0x25, 0xd3, 0x35, + 0xea, 0x06, 0xb6, 0xf9, 0x85, 0x0d, 0x3b, 0x50, 0x4c, 0x74, 0xe5, 0xec, 0xce, 0xe6, 0x6e, 0x40, + 0x6d, 0xcb, 0x31, 0x5c, 0xe3, 0x2a, 0x56, 0x0d, 0x53, 0xdc, 0xee, 0x90, 0x03, 0x46, 0x4a, 0x91, + 0xc5, 0xc8, 0x9a, 0xe9, 0x7a, 0xda, 0x26, 0x6e, 0x68, 0x21, 0x6d, 0x92, 0xc0, 0x93, 0x8a, 0x2c, + 0x46, 0x3c, 0xed, 0x93, 0x90, 0xaf, 0x59, 0x1d, 0xd2, 0x75, 0x31, 0x3d, 0x52, 0x2f, 0x24, 0x25, + 0xc7, 0x64, 0x9e, 0x0a, 0xef, 0xa7, 0xbb, 0xd7, 0x4a, 0x79, 0x25, 0xc7, 0x64, 0x4c, 0xe5, 0x14, + 0x4c, 0x68, 0x8d, 0x86, 0x4d, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0x14, 0x3c, 0x31, 0x55, 0x9c, 0x79, + 0x14, 0x32, 0xc2, 0x0f, 0xa4, 0x24, 0x13, 0x4f, 0xa8, 0x6d, 0x76, 0xec, 0x4d, 0xcc, 0x67, 0x95, + 0x8c, 0x29, 0x06, 0x4f, 0x42, 0xde, 0x70, 0xd4, 0xee, 0x2d, 0x79, 0xe2, 0x44, 0x62, 0x3e, 0xa3, + 0xe4, 0x0c, 0xc7, 0xbb, 0x61, 0x9c, 0x7b, 0x3d, 0x01, 0x85, 0xe0, 0x2d, 0x3f, 0x5a, 0x81, 0x4c, + 0xd3, 0xd2, 0x35, 0x1a, 0x5a, 0xec, 0x13, 0xd3, 0x7c, 0xcc, 0x87, 0x81, 0x85, 0x75, 0xae, 0xaf, + 0x78, 0xc8, 0x99, 0x7f, 0x96, 0x20, 0x23, 0xc4, 0xe8, 0x18, 0xa4, 0xda, 0x9a, 0xbb, 0x4f, 0xe9, + 0xd2, 0x4b, 0x09, 0x59, 0x52, 0xe8, 0x33, 0x91, 0x3b, 0x6d, 0xcd, 0xa4, 0x21, 0xc0, 0xe5, 0xe4, + 0x99, 0xac, 0x6b, 0x13, 0x6b, 0x35, 0x7a, 0xfc, 0xb0, 0x5a, 0x2d, 0x6c, 0xba, 0x8e, 0x58, 0x57, + 0x2e, 0x5f, 0xe6, 0x62, 0x74, 0x17, 0x4c, 0xba, 0xb6, 0x66, 0x34, 0x03, 0xba, 0x29, 0xaa, 0x2b, + 0x8b, 0x01, 0x4f, 0xb9, 0x04, 0x37, 0x09, 0xde, 0x1a, 0x76, 0x35, 0x7d, 0x1f, 0xd7, 0xba, 0xa0, + 0x51, 0x7a, 0xcd, 0x70, 0x23, 0x57, 0x58, 0xe1, 0xe3, 0x02, 0x3b, 0xf7, 0x7d, 0x09, 0x26, 0xc5, + 0x81, 0xa9, 0xe6, 0x39, 0x6b, 0x03, 0x40, 0x33, 0x4d, 0xcb, 0xf5, 0xbb, 0xab, 0x37, 0x94, 0x7b, + 0x70, 0x0b, 0x65, 0x0f, 0xa4, 0xf8, 0x08, 0x66, 0x5a, 0x00, 0xdd, 0x91, 0xbe, 0x6e, 0x3b, 0x0e, + 0x39, 0xfe, 0x09, 0x87, 0x7e, 0x07, 0x64, 0x47, 0x6c, 0x60, 0x22, 0x72, 0xb2, 0x42, 0xd3, 0x90, + 0xde, 0xc3, 0x0d, 0xc3, 0xe4, 0x17, 0xb3, 0xec, 0x41, 0x5c, 0x84, 0xa4, 0xbc, 0x8b, 0x90, 0xa5, + 0xcf, 0xc3, 0x94, 0x6e, 0xb5, 0xc2, 0xe6, 0x2e, 0xc9, 0xa1, 0x63, 0xbe, 0x73, 0x59, 0x7a, 0x1a, + 0xba, 0x2d, 0xe6, 0x07, 0x92, 0xf4, 0x87, 0x89, 0xe4, 0xea, 0xf6, 0xd2, 0xd7, 0x12, 0x33, 0xab, + 0x0c, 0xba, 0x2d, 0xde, 0x54, 0xc1, 0xf5, 0x26, 0xd6, 0x89, 0xf5, 0xf0, 0xc5, 0x53, 0x70, 0x4f, + 0xc3, 0x70, 0xf7, 0x3b, 0x7b, 0x0b, 0xba, 0xd5, 0x3a, 0xd3, 0xb0, 0x1a, 0x56, 0xf7, 0xd3, 0x27, + 0x79, 0xa2, 0x0f, 0xf4, 0x2f, 0xfe, 0xf9, 0x33, 0xeb, 0x49, 0x67, 0x62, 0xbf, 0x95, 0x96, 0x36, + 0x61, 0x8a, 0x2b, 0xab, 0xf4, 0xfb, 0x0b, 0x3b, 0x45, 0xa0, 0x81, 0x77, 0x58, 0xc5, 0x6f, 0xbc, + 0x4d, 0xcb, 0xb5, 0x32, 0xc9, 0xa1, 0x64, 0x8c, 0x1d, 0x34, 0x4a, 0x0a, 0xdc, 0x10, 0xe0, 0x63, + 0x5b, 0x13, 0xdb, 0x31, 0x8c, 0xdf, 0xe5, 0x8c, 0x53, 0x3e, 0xc6, 0x2a, 0x87, 0x96, 0x96, 0x61, + 0xfc, 0x28, 0x5c, 0xff, 0xc0, 0xb9, 0xf2, 0xd8, 0x4f, 0xb2, 0x0a, 0x13, 0x94, 0x44, 0xef, 0x38, + 0xae, 0xd5, 0xa2, 0x79, 0x6f, 0x30, 0xcd, 0x3f, 0xbe, 0xcd, 0xf6, 0x4a, 0x81, 0xc0, 0x96, 0x3d, + 0x54, 0xa9, 0x04, 0xf4, 0x93, 0x53, 0x0d, 0xeb, 0xcd, 0x18, 0x86, 0x37, 0xb8, 0x21, 0x9e, 0x7e, + 0xe9, 0x71, 0x98, 0x26, 0x7f, 0xd3, 0xb4, 0xe4, 0xb7, 0x24, 0xfe, 0xc2, 0xab, 0xf8, 0xfd, 0x97, + 0xd8, 0x76, 0x9c, 0xf2, 0x08, 0x7c, 0x36, 0xf9, 0x56, 0xb1, 0x81, 0x5d, 0x17, 0xdb, 0x8e, 0xaa, + 0x35, 0xa3, 0xcc, 0xf3, 0xdd, 0x18, 0x14, 0xbf, 0xf4, 0x6e, 0x70, 0x15, 0x57, 0x19, 0xb2, 0xdc, + 0x6c, 0x96, 0x76, 0xe1, 0xc6, 0x88, 0xa8, 0x18, 0x82, 0xf3, 0x15, 0xce, 0x39, 0xdd, 0x13, 0x19, + 0x84, 0x76, 0x1b, 0x84, 0xdc, 0x5b, 0xcb, 0x21, 0x38, 0x7f, 0x8f, 0x73, 0x22, 0x8e, 0x15, 0x4b, + 0x4a, 0x18, 0x1f, 0x85, 0xc9, 0xab, 0xd8, 0xde, 0xb3, 0x1c, 0x7e, 0x4b, 0x33, 0x04, 0xdd, 0xab, + 0x9c, 0x6e, 0x82, 0x03, 0xe9, 0xb5, 0x0d, 0xe1, 0x7a, 0x10, 0x32, 0x75, 0x4d, 0xc7, 0x43, 0x50, + 0x7c, 0x99, 0x53, 0x8c, 0x11, 0x7d, 0x02, 0x2d, 0x43, 0xbe, 0x61, 0xf1, 0xca, 0x14, 0x0f, 0x7f, + 0x8d, 0xc3, 0x73, 0x02, 0xc3, 0x29, 0xda, 0x56, 0xbb, 0xd3, 0x24, 0x65, 0x2b, 0x9e, 0xe2, 0xf7, + 0x05, 0x85, 0xc0, 0x70, 0x8a, 0x23, 0xb8, 0xf5, 0x0f, 0x04, 0x85, 0xe3, 0xf3, 0xe7, 0x23, 0x90, + 0xb3, 0xcc, 0xe6, 0x81, 0x65, 0x0e, 0x63, 0xc4, 0x57, 0x38, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x08, + 0xd9, 0x61, 0x17, 0xe2, 0x8f, 0xde, 0x15, 0xdb, 0x43, 0xac, 0xc0, 0x2a, 0x4c, 0x88, 0x04, 0x65, + 0x58, 0xe6, 0x10, 0x14, 0x7f, 0xcc, 0x29, 0x0a, 0x3e, 0x18, 0x7f, 0x0d, 0x17, 0x3b, 0x6e, 0x03, + 0x0f, 0x43, 0xf2, 0xba, 0x78, 0x0d, 0x0e, 0xe1, 0xae, 0xdc, 0xc3, 0xa6, 0xbe, 0x3f, 0x1c, 0xc3, + 0x57, 0x85, 0x2b, 0x05, 0x86, 0x50, 0x2c, 0xc3, 0x78, 0x4b, 0xb3, 0x9d, 0x7d, 0xad, 0x39, 0xd4, + 0x72, 0xfc, 0x09, 0xe7, 0xc8, 0x7b, 0x20, 0xee, 0x91, 0x8e, 0x79, 0x14, 0x9a, 0xaf, 0x09, 0x8f, + 0xf8, 0x60, 0x7c, 0xeb, 0x39, 0x2e, 0xbd, 0xd2, 0x3a, 0x0a, 0xdb, 0x9f, 0x8a, 0xad, 0xc7, 0xb0, + 0x1b, 0x7e, 0xc6, 0x8b, 0x90, 0x75, 0x8c, 0x17, 0x87, 0xa2, 0xf9, 0x33, 0xb1, 0xd2, 0x14, 0x40, + 0xc0, 0x4f, 0xc1, 0x4d, 0x91, 0x65, 0x62, 0x08, 0xb2, 0x3f, 0xe7, 0x64, 0xc7, 0x22, 0x4a, 0x05, + 0x4f, 0x09, 0x47, 0xa5, 0xfc, 0x0b, 0x91, 0x12, 0x70, 0x88, 0x6b, 0x9b, 0x9c, 0x15, 0x1c, 0xad, + 0x7e, 0x34, 0xaf, 0xfd, 0xa5, 0xf0, 0x1a, 0xc3, 0x06, 0xbc, 0xb6, 0x03, 0xc7, 0x38, 0xe3, 0xd1, + 0xd6, 0xf5, 0xeb, 0x22, 0xb1, 0x32, 0xf4, 0x6e, 0x70, 0x75, 0x3f, 0x0f, 0x33, 0x9e, 0x3b, 0x45, + 0x53, 0xea, 0xa8, 0x2d, 0xad, 0x3d, 0x04, 0xf3, 0x37, 0x38, 0xb3, 0xc8, 0xf8, 0x5e, 0x57, 0xeb, + 0x6c, 0x68, 0x6d, 0x42, 0xfe, 0x24, 0x14, 0x05, 0x79, 0xc7, 0xb4, 0xb1, 0x6e, 0x35, 0x4c, 0xe3, + 0x45, 0x5c, 0x1b, 0x82, 0xfa, 0xaf, 0x42, 0x4b, 0xb5, 0xeb, 0x83, 0x13, 0xe6, 0x35, 0x90, 0xbd, + 0x5e, 0x45, 0x35, 0x5a, 0x6d, 0xcb, 0x76, 0x63, 0x18, 0xbf, 0x29, 0x56, 0xca, 0xc3, 0xad, 0x51, + 0x58, 0xa9, 0x02, 0x05, 0xfa, 0x38, 0x6c, 0x48, 0xfe, 0x35, 0x27, 0x1a, 0xef, 0xa2, 0x78, 0xe2, + 0xd0, 0xad, 0x56, 0x5b, 0xb3, 0x87, 0xc9, 0x7f, 0x7f, 0x23, 0x12, 0x07, 0x87, 0xf0, 0xc4, 0xe1, + 0x1e, 0xb4, 0x31, 0xa9, 0xf6, 0x43, 0x30, 0x7c, 0x4b, 0x24, 0x0e, 0x81, 0xe1, 0x14, 0xa2, 0x61, + 0x18, 0x82, 0xe2, 0x6f, 0x05, 0x85, 0xc0, 0x10, 0x8a, 0xcf, 0x75, 0x0b, 0xad, 0x8d, 0x1b, 0x86, + 0xe3, 0xda, 0xac, 0x15, 0x1e, 0x4c, 0xf5, 0xed, 0x77, 0x83, 0x4d, 0x98, 0xe2, 0x83, 0x96, 0x1e, + 0x85, 0x89, 0x50, 0x8b, 0x81, 0xe2, 0x7e, 0xbf, 0x52, 0xfc, 0x85, 0xf7, 0x79, 0x32, 0x0a, 0x76, + 0x18, 0xa5, 0x75, 0xb2, 0xee, 0xc1, 0x3e, 0x20, 0x9e, 0xec, 0xa5, 0xf7, 0xbd, 0xa5, 0x0f, 0xb4, + 0x01, 0xa5, 0x4b, 0x30, 0x1e, 0xe8, 0x01, 0xe2, 0xa9, 0x7e, 0x91, 0x53, 0xe5, 0xfd, 0x2d, 0x40, + 0xe9, 0x1c, 0xa4, 0x48, 0x3d, 0x8f, 0x87, 0xff, 0x12, 0x87, 0x53, 0xf5, 0xd2, 0x43, 0x90, 0x11, + 0x75, 0x3c, 0x1e, 0xfa, 0xcb, 0x1c, 0xea, 0x41, 0x08, 0x5c, 0xd4, 0xf0, 0x78, 0xf8, 0xaf, 0x08, + 0xb8, 0x80, 0x10, 0xf8, 0xf0, 0x2e, 0xfc, 0xce, 0xaf, 0xa6, 0x78, 0x1e, 0x16, 0xbe, 0xbb, 0x08, + 0x63, 0xbc, 0x78, 0xc7, 0xa3, 0xbf, 0xc0, 0x27, 0x17, 0x88, 0xd2, 0x03, 0x90, 0x1e, 0xd2, 0xe1, + 0xbf, 0xc6, 0xa1, 0x4c, 0xbf, 0xb4, 0x0c, 0x39, 0x5f, 0xc1, 0x8e, 0x87, 0xff, 0x3a, 0x87, 0xfb, + 0x51, 0xc4, 0x74, 0x5e, 0xb0, 0xe3, 0x09, 0x7e, 0x43, 0x98, 0xce, 0x11, 0xc4, 0x6d, 0xa2, 0x56, + 0xc7, 0xa3, 0x7f, 0x53, 0x78, 0x5d, 0x40, 0x4a, 0x8f, 0x40, 0xd6, 0xcb, 0xbf, 0xf1, 0xf8, 0xdf, + 0xe2, 0xf8, 0x2e, 0x86, 0x78, 0xc0, 0x97, 0xff, 0xe3, 0x29, 0x7e, 0x5b, 0x78, 0xc0, 0x87, 0x22, + 0xdb, 0x28, 0x5c, 0xd3, 0xe3, 0x99, 0x7e, 0x47, 0x6c, 0xa3, 0x50, 0x49, 0x27, 0xab, 0x49, 0xd3, + 0x60, 0x3c, 0xc5, 0xef, 0x8a, 0xd5, 0xa4, 0xfa, 0xc4, 0x8c, 0x70, 0x91, 0x8c, 0xe7, 0xf8, 0xa2, + 0x30, 0x23, 0x54, 0x23, 0x4b, 0xdb, 0x80, 0x7a, 0x0b, 0x64, 0x3c, 0xdf, 0xcb, 0x9c, 0x6f, 0xb2, + 0xa7, 0x3e, 0x96, 0x9e, 0x80, 0x63, 0xd1, 0xc5, 0x31, 0x9e, 0xf5, 0x4b, 0xef, 0x87, 0x8e, 0x33, + 0xfe, 0xda, 0x58, 0xda, 0xe9, 0x66, 0x59, 0x7f, 0x61, 0x8c, 0xa7, 0x7d, 0xe5, 0xfd, 0x60, 0xa2, + 0xf5, 0xd7, 0xc5, 0x52, 0x19, 0xa0, 0x5b, 0x93, 0xe2, 0xb9, 0x5e, 0xe5, 0x5c, 0x3e, 0x10, 0xd9, + 0x1a, 0xbc, 0x24, 0xc5, 0xe3, 0xbf, 0x2c, 0xb6, 0x06, 0x47, 0x90, 0xad, 0x21, 0xaa, 0x51, 0x3c, + 0xfa, 0x35, 0xb1, 0x35, 0x04, 0xa4, 0x74, 0x11, 0x32, 0x66, 0xa7, 0xd9, 0x24, 0xb1, 0x85, 0x06, + 0xff, 0x24, 0xab, 0xf8, 0xaf, 0x1f, 0x72, 0xb0, 0x00, 0x94, 0xce, 0x41, 0x1a, 0xb7, 0xf6, 0x70, + 0x2d, 0x0e, 0xf9, 0x6f, 0x1f, 0x8a, 0x7c, 0x42, 0xb4, 0x4b, 0x8f, 0x00, 0xb0, 0xc3, 0x34, 0xfd, + 0x50, 0x14, 0x83, 0xfd, 0xf7, 0x0f, 0xf9, 0x8f, 0x25, 0xba, 0x90, 0x2e, 0x01, 0xfb, 0xe9, 0xc5, + 0x60, 0x82, 0x77, 0x83, 0x04, 0xf4, 0x00, 0xfe, 0x20, 0x8c, 0x3d, 0xeb, 0x58, 0xa6, 0xab, 0x35, + 0xe2, 0xd0, 0xff, 0xc1, 0xd1, 0x42, 0x9f, 0x38, 0xac, 0x65, 0xd9, 0xd8, 0xd5, 0x1a, 0x4e, 0x1c, + 0xf6, 0x3f, 0x39, 0xd6, 0x03, 0x10, 0xb0, 0xae, 0x39, 0xee, 0x30, 0xef, 0xfd, 0x13, 0x01, 0x16, + 0x00, 0x62, 0x34, 0xf9, 0xfb, 0x0a, 0x3e, 0x88, 0xc3, 0xbe, 0x27, 0x8c, 0xe6, 0xfa, 0xa5, 0x87, + 0x20, 0x4b, 0xfe, 0x64, 0xbf, 0x80, 0x8a, 0x01, 0xff, 0x17, 0x07, 0x77, 0x11, 0x64, 0x66, 0xc7, + 0xad, 0xb9, 0x46, 0xbc, 0xb3, 0xff, 0x9b, 0xaf, 0xb4, 0xd0, 0x2f, 0x95, 0x21, 0xe7, 0xb8, 0xb5, + 0x5a, 0x87, 0x77, 0x34, 0x31, 0xf0, 0xff, 0xf9, 0xd0, 0x3b, 0xe4, 0x7a, 0x98, 0xa5, 0x4a, 0xf4, + 0x7d, 0x1d, 0xac, 0x5a, 0xab, 0x16, 0xbb, 0xa9, 0x7b, 0x7a, 0x2e, 0xfe, 0xca, 0x0d, 0xfe, 0xf7, + 0x1e, 0x38, 0xa9, 0x5b, 0xad, 0x3d, 0xcb, 0x39, 0xe3, 0x25, 0x9b, 0x33, 0x2d, 0xad, 0xed, 0xd0, + 0xe1, 0x45, 0x7e, 0x1b, 0x97, 0xe3, 0x4f, 0x64, 0x60, 0xe6, 0x68, 0x37, 0x79, 0x73, 0xb7, 0xc0, + 0xf8, 0xa5, 0xa6, 0xa5, 0xb9, 0x86, 0xd9, 0xd8, 0xb6, 0x0c, 0xd3, 0x45, 0x79, 0x90, 0xea, 0xf4, + 0x4b, 0x94, 0xa4, 0x48, 0xf5, 0xb9, 0x7f, 0x4a, 0x43, 0x96, 0x5d, 0x02, 0x6d, 0x68, 0x6d, 0xf4, + 0xf3, 0x90, 0xdf, 0xe4, 0xfb, 0xe8, 0xbe, 0xc5, 0x0b, 0x8e, 0x77, 0xe9, 0xec, 0x9b, 0x7f, 0xc1, + 0xd3, 0x5e, 0xf0, 0xab, 0xd2, 0x2f, 0xcf, 0x4b, 0xf7, 0xfe, 0xf0, 0xcd, 0xe3, 0x77, 0xf7, 0xb5, + 0x8f, 0x14, 0xce, 0x33, 0x2c, 0xe0, 0x17, 0x76, 0x0d, 0xd3, 0xbd, 0x6f, 0xf1, 0x82, 0x12, 0x98, + 0x0f, 0x5d, 0x85, 0x0c, 0x1f, 0x70, 0xf8, 0xc7, 0x88, 0xdb, 0xfa, 0xcc, 0x2d, 0xd4, 0xd8, 0xbc, + 0x67, 0xdf, 0x78, 0xf3, 0xf8, 0xc8, 0x91, 0xe7, 0xf6, 0xe6, 0x42, 0xcf, 0x41, 0x4e, 0xd8, 0xb1, + 0x56, 0x73, 0xf8, 0x8f, 0xcf, 0x4f, 0xc5, 0xbc, 0xf6, 0x5a, 0x8d, 0xcf, 0x7e, 0xc7, 0x0f, 0xdf, + 0x3c, 0x3e, 0x37, 0x70, 0xe6, 0x85, 0xdd, 0x8e, 0x51, 0x53, 0xfc, 0x73, 0xa0, 0x67, 0x20, 0x49, + 0xa6, 0x62, 0xbf, 0xd7, 0x3b, 0xde, 0x67, 0x2a, 0x6f, 0x8a, 0xd3, 0xfc, 0x05, 0x87, 0x99, 0x86, + 0xf0, 0xce, 0x3c, 0x02, 0x93, 0x3d, 0xcb, 0x83, 0x64, 0x48, 0x5e, 0xc1, 0x07, 0xfc, 0x87, 0x51, + 0xe4, 0x4f, 0x34, 0xdd, 0xfd, 0xe5, 0xa2, 0x34, 0x9f, 0xe7, 0x3f, 0x47, 0x2c, 0x25, 0x2e, 0x48, + 0x33, 0x17, 0x61, 0x3c, 0xe0, 0xe3, 0x23, 0x81, 0x1f, 0x06, 0x39, 0xec, 0xa5, 0x23, 0xe1, 0xcf, + 0x43, 0xe6, 0xa3, 0xe0, 0xe6, 0x7e, 0x80, 0x60, 0xac, 0xdc, 0x6c, 0x6e, 0x68, 0x6d, 0x07, 0x3d, + 0x05, 0x93, 0xac, 0xbd, 0xdf, 0xb1, 0x56, 0xe8, 0xe7, 0x9f, 0x0d, 0xad, 0xcd, 0x03, 0xfa, 0xae, + 0x80, 0xbb, 0x39, 0x60, 0xa1, 0x47, 0x9b, 0xce, 0xaf, 0xf4, 0xb2, 0xa0, 0xc7, 0x41, 0x16, 0x42, + 0xba, 0xb7, 0x08, 0x33, 0x0b, 0xd7, 0xd3, 0x03, 0x99, 0x85, 0x32, 0x23, 0xee, 0xe1, 0x40, 0x0f, + 0x43, 0x66, 0xcd, 0x74, 0xef, 0x5f, 0x24, 0x7c, 0x2c, 0x06, 0xe7, 0x22, 0xf9, 0x84, 0x12, 0xe3, + 0xf1, 0x30, 0x1c, 0x7f, 0xfe, 0x2c, 0xc1, 0xa7, 0x06, 0xe3, 0xa9, 0x52, 0x17, 0x4f, 0x1f, 0x51, + 0x19, 0xb2, 0x64, 0xcd, 0x99, 0x01, 0xec, 0xff, 0x3d, 0xdc, 0x1a, 0x49, 0xe0, 0x69, 0x31, 0x86, + 0x2e, 0x4a, 0x50, 0x30, 0x1b, 0x46, 0x63, 0x28, 0x7c, 0x46, 0x74, 0x51, 0x84, 0xa2, 0xea, 0x59, + 0x31, 0x36, 0x80, 0xa2, 0x1a, 0xb2, 0xa2, 0xea, 0xb7, 0xa2, 0xea, 0x59, 0x91, 0x89, 0xa1, 0xf0, + 0x5b, 0xe1, 0x3d, 0xa3, 0x15, 0x80, 0x4b, 0xc6, 0x0b, 0xb8, 0xc6, 0xcc, 0xc8, 0x46, 0x24, 0x23, + 0xc1, 0xd1, 0x55, 0x63, 0x24, 0x3e, 0x1c, 0x5a, 0x85, 0x5c, 0xb5, 0xde, 0xa5, 0x01, 0xfe, 0xdf, + 0x3e, 0x22, 0x4d, 0xa9, 0x87, 0x78, 0xfc, 0x48, 0xcf, 0x1c, 0xf6, 0x4a, 0xb9, 0x38, 0x73, 0x7c, + 0xef, 0xe4, 0xc3, 0x75, 0xcd, 0x61, 0x34, 0xf9, 0x58, 0x73, 0x7c, 0x3c, 0x7e, 0x24, 0xba, 0x08, + 0x63, 0x4b, 0x96, 0x45, 0x34, 0x8b, 0xe3, 0x94, 0xe4, 0x64, 0x24, 0x09, 0xd7, 0x61, 0x04, 0x02, + 0x41, 0x57, 0x87, 0x86, 0x3e, 0x81, 0x17, 0x06, 0xad, 0x8e, 0xd0, 0x12, 0xab, 0x23, 0x9e, 0xfd, + 0x3b, 0x70, 0xe9, 0xc0, 0xc5, 0xa4, 0x95, 0x2e, 0x4e, 0x0c, 0xb1, 0x03, 0x85, 0x72, 0x68, 0x07, + 0x0a, 0x31, 0xaa, 0xc2, 0x84, 0x90, 0x55, 0xcc, 0x0e, 0xc9, 0xc1, 0x45, 0x99, 0xff, 0xa6, 0x7b, + 0x10, 0x2d, 0xd7, 0x65, 0xac, 0x61, 0x06, 0xb4, 0x0d, 0x05, 0x21, 0xda, 0x70, 0xe8, 0x4b, 0x4f, + 0x46, 0xd4, 0xd5, 0x30, 0x27, 0x53, 0x65, 0x94, 0x21, 0xfc, 0xcc, 0x0a, 0x1c, 0x8b, 0xce, 0x56, + 0x71, 0xd9, 0x52, 0xf2, 0x67, 0xd9, 0x65, 0xb8, 0x21, 0x32, 0x33, 0xc5, 0x91, 0x24, 0x42, 0x75, + 0x22, 0x90, 0x8e, 0xfc, 0xe0, 0x74, 0x04, 0x38, 0xdd, 0x0b, 0xee, 0x06, 0x99, 0x1f, 0x9c, 0x8c, + 0x00, 0x27, 0xfd, 0xe0, 0xcf, 0x42, 0x21, 0x98, 0x87, 0xfc, 0xe8, 0xf1, 0x08, 0xf4, 0x78, 0x04, + 0x3a, 0x7a, 0xee, 0x54, 0x04, 0x3a, 0x15, 0x42, 0x57, 0xfb, 0xce, 0x3d, 0x19, 0x81, 0x9e, 0x8c, + 0x40, 0x47, 0xcf, 0x8d, 0x22, 0xd0, 0xc8, 0x8f, 0x7e, 0x08, 0x26, 0x42, 0x29, 0xc7, 0x0f, 0x1f, + 0x8b, 0x80, 0x8f, 0x85, 0x6a, 0x73, 0x38, 0xd5, 0xf8, 0xf1, 0x13, 0x11, 0xf8, 0x89, 0xa8, 0xe9, + 0xa3, 0xad, 0x1f, 0x8d, 0x80, 0x8f, 0x46, 0x4e, 0x1f, 0x8d, 0x97, 0x23, 0xf0, 0xb2, 0x1f, 0x5f, + 0x82, 0xbc, 0x3f, 0xab, 0xf8, 0xb1, 0x99, 0x08, 0x6c, 0x26, 0xec, 0xf7, 0x40, 0x4a, 0x89, 0x8b, + 0xf4, 0x6c, 0x9f, 0xed, 0x12, 0x48, 0x23, 0x47, 0xea, 0x6c, 0x9e, 0x84, 0xe9, 0xa8, 0xa4, 0x11, + 0xc1, 0x71, 0xda, 0xcf, 0x51, 0x58, 0x9c, 0x0e, 0x24, 0x0b, 0x8a, 0xeb, 0xb4, 0xfc, 0xcc, 0xcf, + 0xc0, 0x54, 0x44, 0xea, 0x88, 0x20, 0xbe, 0xd7, 0x4f, 0x9c, 0x5b, 0x9c, 0x09, 0x10, 0x07, 0xce, + 0x0a, 0xfe, 0xd6, 0xea, 0x47, 0x53, 0x50, 0xe0, 0x29, 0x6a, 0xcb, 0xae, 0x61, 0x1b, 0xd7, 0xd0, + 0xcf, 0xf6, 0xef, 0xb0, 0x16, 0xa3, 0x52, 0x1b, 0xc7, 0x1d, 0xa1, 0xd1, 0x7a, 0xa6, 0x6f, 0xa3, + 0x75, 0xdf, 0x30, 0x13, 0xc4, 0xf5, 0x5b, 0x95, 0x9e, 0x7e, 0xeb, 0xce, 0x41, 0xb4, 0xfd, 0xda, + 0xae, 0x4a, 0x4f, 0xdb, 0x15, 0x47, 0x13, 0xd9, 0x7d, 0x5d, 0xee, 0xed, 0xbe, 0x4e, 0x0f, 0xe2, + 0xe9, 0xdf, 0x84, 0x5d, 0xee, 0x6d, 0xc2, 0x62, 0x99, 0xa2, 0x7b, 0xb1, 0xcb, 0xbd, 0xbd, 0xd8, + 0x40, 0xa6, 0xfe, 0x2d, 0xd9, 0xe5, 0xde, 0x96, 0x2c, 0x96, 0x29, 0xba, 0x33, 0x7b, 0x2c, 0xa2, + 0x33, 0xbb, 0x6b, 0x10, 0xd5, 0xa0, 0x06, 0x6d, 0x33, 0xaa, 0x41, 0xbb, 0x7b, 0xa0, 0x61, 0x03, + 0xfb, 0xb4, 0xc7, 0x22, 0xfa, 0xb4, 0x78, 0xe3, 0xfa, 0xb4, 0x6b, 0x9b, 0x51, 0xed, 0xda, 0x10, + 0xc6, 0xf5, 0xeb, 0xda, 0x96, 0xc2, 0x5d, 0xdb, 0xfc, 0x20, 0xae, 0xe8, 0xe6, 0xed, 0x72, 0x6f, + 0xf3, 0x76, 0x3a, 0x7e, 0x2f, 0x46, 0xf5, 0x70, 0xcf, 0xf4, 0xed, 0xe1, 0x86, 0xda, 0xdc, 0x71, + 0xad, 0xdc, 0xd3, 0xfd, 0x5a, 0xb9, 0x7b, 0x87, 0x61, 0x1f, 0xdc, 0xd1, 0x3d, 0xd1, 0xa7, 0xa3, + 0x3b, 0x33, 0x0c, 0xf5, 0xa7, 0x8d, 0xdd, 0xa7, 0x8d, 0xdd, 0xa7, 0x8d, 0xdd, 0xa7, 0x8d, 0xdd, + 0xff, 0x8f, 0xc6, 0xae, 0x94, 0x7a, 0xf9, 0x2b, 0xc7, 0xa5, 0xd3, 0x27, 0x61, 0x8c, 0x4f, 0x8d, + 0x46, 0x21, 0xb1, 0x51, 0x96, 0x47, 0xe8, 0xbf, 0x4b, 0xb2, 0x44, 0xff, 0x5d, 0x96, 0x13, 0x4b, + 0xeb, 0x6f, 0x5c, 0x9f, 0x1d, 0xf9, 0xde, 0xf5, 0xd9, 0x91, 0x1f, 0x5c, 0x9f, 0x1d, 0x79, 0xeb, + 0xfa, 0xac, 0xf4, 0xce, 0xf5, 0x59, 0xe9, 0xbd, 0xeb, 0xb3, 0xd2, 0x07, 0xd7, 0x67, 0xa5, 0x6b, + 0x87, 0xb3, 0xd2, 0x57, 0x0f, 0x67, 0xa5, 0xaf, 0x1f, 0xce, 0x4a, 0xdf, 0x3e, 0x9c, 0x95, 0xbe, + 0x73, 0x38, 0x2b, 0xbd, 0x71, 0x38, 0x2b, 0x7d, 0xef, 0x70, 0x76, 0xe4, 0xad, 0xc3, 0x59, 0xe9, + 0x9d, 0xc3, 0xd9, 0x91, 0xf7, 0x0e, 0x67, 0xa5, 0x0f, 0x0e, 0x67, 0x47, 0xae, 0xfd, 0x78, 0x76, + 0xe4, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x07, 0xb5, 0xd8, 0x1c, 0x86, 0x47, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -1355,15 +1361,15 @@ func (this *AllMapsOrdered) Equal(that interface{}) bool { } type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetF() *float64 } -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) Proto() proto.Message { return this } -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) TestProto() proto.Message { return NewFloatingPointFromFace(this) } @@ -1378,18 +1384,18 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { } type CustomMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid GetIds() map[string]github_com_gogo_protobuf_test.Uuid } -func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomMap) Proto() proto.Message { return this } -func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomMap) TestProto() proto.Message { return NewCustomMapFromFace(this) } @@ -1419,7 +1425,7 @@ func NewCustomMapFromFace(that CustomMapFace) *CustomMap { } type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -1439,11 +1445,11 @@ type AllMapsFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) Proto() proto.Message { return this } -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) TestProto() proto.Message { return NewAllMapsFromFace(this) } @@ -1538,7 +1544,7 @@ func NewAllMapsFromFace(that AllMapsFace) *AllMaps { } type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -1558,11 +1564,11 @@ type AllMapsOrderedFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) Proto() proto.Message { return this } -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) TestProto() proto.Message { return NewAllMapsOrderedFromFace(this) } @@ -1681,7 +1687,7 @@ func (this *CustomMap) GoString() string { for k := range this.Nullable128S { keysForNullable128S = append(keysForNullable128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + sortkeys.Strings(keysForNullable128S) mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForNullable128S { mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) @@ -1694,7 +1700,7 @@ func (this *CustomMap) GoString() string { for k := range this.Uint128S { keysForUint128S = append(keysForUint128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + sortkeys.Strings(keysForUint128S) mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForUint128S { mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) @@ -1707,7 +1713,7 @@ func (this *CustomMap) GoString() string { for k := range this.NullableIds { keysForNullableIds = append(keysForNullableIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + sortkeys.Strings(keysForNullableIds) mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForNullableIds { mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) @@ -1720,7 +1726,7 @@ func (this *CustomMap) GoString() string { for k := range this.Ids { keysForIds = append(keysForIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + sortkeys.Strings(keysForIds) mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForIds { mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) @@ -1745,7 +1751,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -1758,7 +1764,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -1771,7 +1777,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -1784,7 +1790,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -1797,7 +1803,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -1810,7 +1816,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -1823,7 +1829,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -1836,7 +1842,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -1849,7 +1855,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -1862,7 +1868,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -1875,7 +1881,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -1888,7 +1894,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -1901,7 +1907,7 @@ func (this *AllMaps) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -1914,7 +1920,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -1927,7 +1933,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -1940,7 +1946,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -1953,7 +1959,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -1978,7 +1984,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -1991,7 +1997,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2004,7 +2010,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2017,7 +2023,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2030,7 +2036,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2043,7 +2049,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2056,7 +2062,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2069,7 +2075,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2082,7 +2088,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -2095,7 +2101,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -2108,7 +2114,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -2121,7 +2127,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -2134,7 +2140,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -2147,7 +2153,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -2160,7 +2166,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -2173,7 +2179,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -2186,7 +2192,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -2227,7 +2233,8 @@ func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { if m.F != nil { dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(*m.F)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.F)))) + i += 8 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -2388,7 +2395,8 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } if len(m.StringToFloatMap) > 0 { @@ -2404,7 +2412,8 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(v)))) + i += 4 } } if len(m.Int32Map) > 0 { @@ -2506,10 +2515,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Sfixed32Map) > 0 { @@ -2521,10 +2532,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Fixed64Map) > 0 { @@ -2536,10 +2549,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.Sfixed64Map) > 0 { @@ -2551,10 +2566,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.BoolMap) > 0 { @@ -2696,7 +2713,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { dAtA[i] = 0xa i++ @@ -2709,7 +2726,8 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } if len(m.StringToFloatMap) > 0 { @@ -2717,7 +2735,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { dAtA[i] = 0x12 i++ @@ -2730,7 +2748,8 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(v)))) + i += 4 } } if len(m.Int32Map) > 0 { @@ -2738,7 +2757,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Int32Map { keysForInt32Map = append(keysForInt32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { dAtA[i] = 0x1a i++ @@ -2758,7 +2777,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Int64Map { keysForInt64Map = append(keysForInt64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { dAtA[i] = 0x22 i++ @@ -2778,7 +2797,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Uint32Map { keysForUint32Map = append(keysForUint32Map, uint32(k)) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { dAtA[i] = 0x2a i++ @@ -2798,7 +2817,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Uint64Map { keysForUint64Map = append(keysForUint64Map, uint64(k)) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { dAtA[i] = 0x32 i++ @@ -2818,7 +2837,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sint32Map { keysForSint32Map = append(keysForSint32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { dAtA[i] = 0x3a i++ @@ -2838,7 +2857,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sint64Map { keysForSint64Map = append(keysForSint64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { dAtA[i] = 0x42 i++ @@ -2858,7 +2877,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, uint32(k)) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { dAtA[i] = 0x4a i++ @@ -2867,10 +2886,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Sfixed32Map) > 0 { @@ -2878,7 +2899,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { dAtA[i] = 0x52 i++ @@ -2887,10 +2908,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Fixed64Map) > 0 { @@ -2898,7 +2921,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, uint64(k)) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { dAtA[i] = 0x5a i++ @@ -2907,10 +2930,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.Sfixed64Map) > 0 { @@ -2918,7 +2943,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { dAtA[i] = 0x62 i++ @@ -2927,10 +2952,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.BoolMap) > 0 { @@ -2938,7 +2965,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.BoolMap { keysForBoolMap = append(keysForBoolMap, bool(k)) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { dAtA[i] = 0x6a i++ @@ -2968,7 +2995,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringMap { keysForStringMap = append(keysForStringMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { dAtA[i] = 0x72 i++ @@ -2990,7 +3017,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { dAtA[i] = 0x7a i++ @@ -3018,7 +3045,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { dAtA[i] = 0x82 i++ @@ -3041,7 +3068,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { dAtA[i] = 0x8a i++ @@ -3077,24 +3104,6 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Mapsproto2(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 encodeFixed32Mapsproto2(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 encodeVarintMapsproto2(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -3974,7 +3983,7 @@ func (this *CustomMap) String() string { for k := range this.Nullable128S { keysForNullable128S = append(keysForNullable128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + sortkeys.Strings(keysForNullable128S) mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForNullable128S { mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) @@ -3984,7 +3993,7 @@ func (this *CustomMap) String() string { for k := range this.Uint128S { keysForUint128S = append(keysForUint128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + sortkeys.Strings(keysForUint128S) mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForUint128S { mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) @@ -3994,7 +4003,7 @@ func (this *CustomMap) String() string { for k := range this.NullableIds { keysForNullableIds = append(keysForNullableIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + sortkeys.Strings(keysForNullableIds) mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForNullableIds { mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) @@ -4004,7 +4013,7 @@ func (this *CustomMap) String() string { for k := range this.Ids { keysForIds = append(keysForIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + sortkeys.Strings(keysForIds) mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForIds { mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) @@ -4028,7 +4037,7 @@ func (this *AllMaps) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -4038,7 +4047,7 @@ func (this *AllMaps) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -4048,7 +4057,7 @@ func (this *AllMaps) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -4058,7 +4067,7 @@ func (this *AllMaps) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -4068,7 +4077,7 @@ func (this *AllMaps) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -4078,7 +4087,7 @@ func (this *AllMaps) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -4088,7 +4097,7 @@ func (this *AllMaps) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -4098,7 +4107,7 @@ func (this *AllMaps) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -4108,7 +4117,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -4118,7 +4127,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -4128,7 +4137,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -4138,7 +4147,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -4148,7 +4157,7 @@ func (this *AllMaps) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -4158,7 +4167,7 @@ func (this *AllMaps) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -4168,7 +4177,7 @@ func (this *AllMaps) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -4178,7 +4187,7 @@ func (this *AllMaps) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -4188,7 +4197,7 @@ func (this *AllMaps) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -4225,7 +4234,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -4235,7 +4244,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -4245,7 +4254,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -4255,7 +4264,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -4265,7 +4274,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -4275,7 +4284,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -4285,7 +4294,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -4295,7 +4304,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -4305,7 +4314,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -4315,7 +4324,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -4325,7 +4334,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -4335,7 +4344,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -4345,7 +4354,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -4355,7 +4364,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -4365,7 +4374,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -4375,7 +4384,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -4385,7 +4394,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2pb_test.go index 933932eaa..e302f3f97 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/marshaler/mapsproto2pb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/mapsproto2.proto -// DO NOT EDIT! /* Package proto2_maps is a generated protocol buffer package. @@ -17,13 +16,12 @@ It has these top-level messages: package proto2_maps import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -34,14 +32,14 @@ var _ = math.Inf func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -62,13 +60,13 @@ func TestFloatingPointProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestFloatingPointMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -80,7 +78,7 @@ func TestFloatingPointMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -95,7 +93,7 @@ func TestFloatingPointMarshalTo(t *testing.T) { } func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 10000) for i := 0; i < 10000; i++ { @@ -103,7 +101,7 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -113,11 +111,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } @@ -127,7 +125,7 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -136,14 +134,14 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { func TestCustomMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -164,13 +162,13 @@ func TestCustomMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -182,7 +180,7 @@ func TestCustomMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -197,7 +195,7 @@ func TestCustomMapMarshalTo(t *testing.T) { } func BenchmarkCustomMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomMap, 10000) for i := 0; i < 10000; i++ { @@ -205,7 +203,7 @@ func BenchmarkCustomMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -215,11 +213,11 @@ func BenchmarkCustomMapProtoMarshal(b *testing.B) { } func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomMap(popr, false)) if err != nil { panic(err) } @@ -229,7 +227,7 @@ func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -238,14 +236,14 @@ func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -266,13 +264,13 @@ func TestAllMapsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllMapsMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -284,7 +282,7 @@ func TestAllMapsMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -299,7 +297,7 @@ func TestAllMapsMarshalTo(t *testing.T) { } func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 10000) for i := 0; i < 10000; i++ { @@ -307,7 +305,7 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -317,11 +315,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } @@ -331,7 +329,7 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -340,14 +338,14 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -368,13 +366,13 @@ func TestAllMapsOrderedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllMapsOrderedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -386,7 +384,7 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -401,7 +399,7 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { } func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 10000) for i := 0; i < 10000; i++ { @@ -409,7 +407,7 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -419,11 +417,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } @@ -433,7 +431,7 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -442,15 +440,15 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { func TestFloatingPointJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -463,15 +461,15 @@ func TestFloatingPointJSON(t *testing.T) { } func TestCustomMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -484,15 +482,15 @@ func TestCustomMapJSON(t *testing.T) { } func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -505,15 +503,15 @@ func TestAllMapsJSON(t *testing.T) { } func TestAllMapsOrderedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -526,11 +524,11 @@ func TestAllMapsOrderedJSON(t *testing.T) { } func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -543,11 +541,11 @@ func TestFloatingPointProtoText(t *testing.T) { func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -560,11 +558,11 @@ func TestFloatingPointProtoCompactText(t *testing.T) { func TestCustomMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -577,11 +575,11 @@ func TestCustomMapProtoText(t *testing.T) { func TestCustomMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -594,11 +592,11 @@ func TestCustomMapProtoCompactText(t *testing.T) { func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -611,11 +609,11 @@ func TestAllMapsProtoText(t *testing.T) { func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -628,11 +626,11 @@ func TestAllMapsProtoCompactText(t *testing.T) { func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -645,11 +643,11 @@ func TestAllMapsOrderedProtoText(t *testing.T) { func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -664,14 +662,14 @@ func TestMapsproto2Description(t *testing.T) { Mapsproto2Description() } func TestFloatingPointVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -679,14 +677,14 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestCustomMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -694,14 +692,14 @@ func TestCustomMapVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -709,14 +707,14 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -724,7 +722,7 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -732,7 +730,7 @@ func TestFloatingPointFace(t *testing.T) { } } func TestCustomMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -740,7 +738,7 @@ func TestCustomMapFace(t *testing.T) { } } func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -748,7 +746,7 @@ func TestAllMapsFace(t *testing.T) { } } func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -756,63 +754,63 @@ func TestAllMapsOrderedFace(t *testing.T) { } } func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestFloatingPointSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -823,14 +821,14 @@ func TestFloatingPointSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 1000) for i := 0; i < 1000; i++ { @@ -845,10 +843,10 @@ func BenchmarkFloatingPointSize(b *testing.B) { func TestCustomMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -859,14 +857,14 @@ func TestCustomMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomMap, 1000) for i := 0; i < 1000; i++ { @@ -881,10 +879,10 @@ func BenchmarkCustomMapSize(b *testing.B) { func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -895,14 +893,14 @@ func TestAllMapsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 1000) for i := 0; i < 1000; i++ { @@ -917,10 +915,10 @@ func BenchmarkAllMapsSize(b *testing.B) { func TestAllMapsOrderedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -931,14 +929,14 @@ func TestAllMapsOrderedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 1000) for i := 0; i < 1000; i++ { @@ -952,7 +950,7 @@ func BenchmarkAllMapsOrderedSize(b *testing.B) { } func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -961,7 +959,7 @@ func TestFloatingPointStringer(t *testing.T) { } } func TestCustomMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -970,7 +968,7 @@ func TestCustomMapStringer(t *testing.T) { } } func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -979,7 +977,7 @@ func TestAllMapsStringer(t *testing.T) { } } func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go index 5609f29c6..9f0519620 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/mapsproto2.proto -// DO NOT EDIT! /* Package proto2_maps is a generated protocol buffer package. @@ -24,17 +23,16 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strconv "strconv" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -162,320 +160,327 @@ func init() { proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) } -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *FloatingPoint) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomMap) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMaps) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMapsOrdered) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func Mapsproto2Description() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4580 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xbf, 0xf8, 0x92, 0xc8, 0x43, 0x8a, 0x1a, 0x5d, 0xc9, 0x6b, 0x5a, 0x8e, 0xa9, 0x5d, 0xf9, - 0x25, 0xaf, 0x6d, 0xc9, 0x96, 0x77, 0xd7, 0x6b, 0x6e, 0x6c, 0x83, 0x92, 0xb8, 0x5a, 0xd9, 0x7a, - 0x65, 0x28, 0xd9, 0x6b, 0xff, 0x61, 0xcc, 0x7f, 0x34, 0xbc, 0xa4, 0xc6, 0x4b, 0xce, 0xd0, 0x33, - 0xc3, 0xdd, 0x95, 0x3f, 0x14, 0x5b, 0xb8, 0x0f, 0x04, 0x45, 0xdf, 0x05, 0xea, 0xb8, 0x8e, 0xdb, - 0x04, 0x68, 0x9d, 0x26, 0x7d, 0x24, 0x7d, 0xa4, 0x41, 0x3f, 0xe5, 0x4b, 0x5a, 0x03, 0x05, 0x8a, - 0xe4, 0x5b, 0x10, 0x04, 0x86, 0x57, 0x31, 0x50, 0xb7, 0x75, 0x5b, 0xb7, 0x71, 0xd1, 0x00, 0xfe, - 0x52, 0xdc, 0xd7, 0x70, 0x66, 0x38, 0xe4, 0x50, 0x06, 0x9c, 0xf4, 0x83, 0x3f, 0x49, 0x73, 0xee, - 0xf9, 0xfd, 0xee, 0xb9, 0xe7, 0x9e, 0x7b, 0xce, 0x99, 0xcb, 0x81, 0x1f, 0x9d, 0x85, 0x93, 0x0d, - 0xd3, 0x6c, 0x34, 0xf1, 0x62, 0xdb, 0x32, 0x1d, 0x73, 0xbf, 0x53, 0x5f, 0xac, 0x61, 0x5b, 0xb3, - 0xf4, 0xb6, 0x63, 0x5a, 0x0b, 0x54, 0x86, 0x26, 0x98, 0xc6, 0x82, 0xd0, 0x98, 0xdb, 0x84, 0xc9, - 0x8b, 0x7a, 0x13, 0xaf, 0xba, 0x8a, 0x55, 0xec, 0xa0, 0xf3, 0x90, 0xac, 0xeb, 0x4d, 0x5c, 0x88, - 0x9d, 0x4c, 0xcc, 0x67, 0x97, 0xee, 0x5a, 0x08, 0x80, 0x16, 0xfc, 0x88, 0x1d, 0x22, 0x96, 0x29, - 0x62, 0xee, 0xdd, 0x24, 0x4c, 0x85, 0x8c, 0x22, 0x04, 0x49, 0x43, 0x6d, 0x11, 0xc6, 0xd8, 0x7c, - 0x46, 0xa6, 0xff, 0xa3, 0x02, 0x8c, 0xb5, 0x55, 0xed, 0x8a, 0xda, 0xc0, 0x85, 0x38, 0x15, 0x8b, - 0x47, 0x54, 0x04, 0xa8, 0xe1, 0x36, 0x36, 0x6a, 0xd8, 0xd0, 0x0e, 0x0b, 0x89, 0x93, 0x89, 0xf9, - 0x8c, 0xec, 0x91, 0xa0, 0xfb, 0x61, 0xb2, 0xdd, 0xd9, 0x6f, 0xea, 0x9a, 0xe2, 0x51, 0x83, 0x93, - 0x89, 0xf9, 0x94, 0x2c, 0xb1, 0x81, 0xd5, 0xae, 0xf2, 0xbd, 0x30, 0x71, 0x0d, 0xab, 0x57, 0xbc, - 0xaa, 0x59, 0xaa, 0x9a, 0x27, 0x62, 0x8f, 0xe2, 0x0a, 0xe4, 0x5a, 0xd8, 0xb6, 0xd5, 0x06, 0x56, - 0x9c, 0xc3, 0x36, 0x2e, 0x24, 0xe9, 0xea, 0x4f, 0xf6, 0xac, 0x3e, 0xb8, 0xf2, 0x2c, 0x47, 0xed, - 0x1e, 0xb6, 0x31, 0x2a, 0x43, 0x06, 0x1b, 0x9d, 0x16, 0x63, 0x48, 0xf5, 0xf1, 0x5f, 0xc5, 0xe8, - 0xb4, 0x82, 0x2c, 0x69, 0x02, 0xe3, 0x14, 0x63, 0x36, 0xb6, 0xae, 0xea, 0x1a, 0x2e, 0x8c, 0x52, - 0x82, 0x7b, 0x7b, 0x08, 0xaa, 0x6c, 0x3c, 0xc8, 0x21, 0x70, 0x68, 0x05, 0x32, 0xf8, 0xba, 0x83, - 0x0d, 0x5b, 0x37, 0x8d, 0xc2, 0x18, 0x25, 0xb9, 0x3b, 0x64, 0x17, 0x71, 0xb3, 0x16, 0xa4, 0xe8, - 0xe2, 0xd0, 0x39, 0x18, 0x33, 0xdb, 0x8e, 0x6e, 0x1a, 0x76, 0x21, 0x7d, 0x32, 0x36, 0x9f, 0x5d, - 0xfa, 0x4c, 0x68, 0x20, 0x6c, 0x33, 0x1d, 0x59, 0x28, 0xa3, 0x75, 0x90, 0x6c, 0xb3, 0x63, 0x69, - 0x58, 0xd1, 0xcc, 0x1a, 0x56, 0x74, 0xa3, 0x6e, 0x16, 0x32, 0x94, 0x60, 0xb6, 0x77, 0x21, 0x54, - 0x71, 0xc5, 0xac, 0xe1, 0x75, 0xa3, 0x6e, 0xca, 0x79, 0xdb, 0xf7, 0x8c, 0x4e, 0xc0, 0xa8, 0x7d, - 0x68, 0x38, 0xea, 0xf5, 0x42, 0x8e, 0x46, 0x08, 0x7f, 0x9a, 0xfb, 0x9f, 0x14, 0x4c, 0x0c, 0x13, - 0x62, 0x17, 0x20, 0x55, 0x27, 0xab, 0x2c, 0xc4, 0x8f, 0xe3, 0x03, 0x86, 0xf1, 0x3b, 0x71, 0xf4, - 0x63, 0x3a, 0xb1, 0x0c, 0x59, 0x03, 0xdb, 0x0e, 0xae, 0xb1, 0x88, 0x48, 0x0c, 0x19, 0x53, 0xc0, - 0x40, 0xbd, 0x21, 0x95, 0xfc, 0x58, 0x21, 0x75, 0x19, 0x26, 0x5c, 0x93, 0x14, 0x4b, 0x35, 0x1a, - 0x22, 0x36, 0x17, 0xa3, 0x2c, 0x59, 0xa8, 0x08, 0x9c, 0x4c, 0x60, 0x72, 0x1e, 0xfb, 0x9e, 0xd1, - 0x2a, 0x80, 0x69, 0x60, 0xb3, 0xae, 0xd4, 0xb0, 0xd6, 0x2c, 0xa4, 0xfb, 0x78, 0x69, 0x9b, 0xa8, - 0xf4, 0x78, 0xc9, 0x64, 0x52, 0xad, 0x89, 0x1e, 0xeb, 0x86, 0xda, 0x58, 0x9f, 0x48, 0xd9, 0x64, - 0x87, 0xac, 0x27, 0xda, 0xf6, 0x20, 0x6f, 0x61, 0x12, 0xf7, 0xb8, 0xc6, 0x57, 0x96, 0xa1, 0x46, - 0x2c, 0x44, 0xae, 0x4c, 0xe6, 0x30, 0xb6, 0xb0, 0x71, 0xcb, 0xfb, 0x88, 0xee, 0x04, 0x57, 0xa0, - 0xd0, 0xb0, 0x02, 0x9a, 0x85, 0x72, 0x42, 0xb8, 0xa5, 0xb6, 0xf0, 0xcc, 0x79, 0xc8, 0xfb, 0xdd, - 0x83, 0xa6, 0x21, 0x65, 0x3b, 0xaa, 0xe5, 0xd0, 0x28, 0x4c, 0xc9, 0xec, 0x01, 0x49, 0x90, 0xc0, - 0x46, 0x8d, 0x66, 0xb9, 0x94, 0x4c, 0xfe, 0x9d, 0x79, 0x14, 0xc6, 0x7d, 0xd3, 0x0f, 0x0b, 0x9c, - 0x7b, 0x75, 0x14, 0xa6, 0xc3, 0x62, 0x2e, 0x34, 0xfc, 0x4f, 0xc0, 0xa8, 0xd1, 0x69, 0xed, 0x63, - 0xab, 0x90, 0xa0, 0x0c, 0xfc, 0x09, 0x95, 0x21, 0xd5, 0x54, 0xf7, 0x71, 0xb3, 0x90, 0x3c, 0x19, - 0x9b, 0xcf, 0x2f, 0xdd, 0x3f, 0x54, 0x54, 0x2f, 0x6c, 0x10, 0x88, 0xcc, 0x90, 0xe8, 0x09, 0x48, - 0xf2, 0x14, 0x47, 0x18, 0x4e, 0x0f, 0xc7, 0x40, 0x62, 0x51, 0xa6, 0x38, 0x74, 0x3b, 0x64, 0xc8, - 0x5f, 0xe6, 0xdb, 0x51, 0x6a, 0x73, 0x9a, 0x08, 0x88, 0x5f, 0xd1, 0x0c, 0xa4, 0x69, 0x98, 0xd5, - 0xb0, 0x28, 0x0d, 0xee, 0x33, 0xd9, 0x98, 0x1a, 0xae, 0xab, 0x9d, 0xa6, 0xa3, 0x5c, 0x55, 0x9b, - 0x1d, 0x4c, 0x03, 0x26, 0x23, 0xe7, 0xb8, 0xf0, 0x19, 0x22, 0x43, 0xb3, 0x90, 0x65, 0x51, 0xa9, - 0x1b, 0x35, 0x7c, 0x9d, 0x66, 0x9f, 0x94, 0xcc, 0x02, 0x75, 0x9d, 0x48, 0xc8, 0xf4, 0x2f, 0xda, - 0xa6, 0x21, 0xb6, 0x96, 0x4e, 0x41, 0x04, 0x74, 0xfa, 0x47, 0x83, 0x89, 0xef, 0x8e, 0xf0, 0xe5, - 0x05, 0x63, 0x71, 0xee, 0x9b, 0x71, 0x48, 0xd2, 0xf3, 0x36, 0x01, 0xd9, 0xdd, 0xe7, 0x76, 0x2a, - 0xca, 0xea, 0xf6, 0xde, 0xf2, 0x46, 0x45, 0x8a, 0xa1, 0x3c, 0x00, 0x15, 0x5c, 0xdc, 0xd8, 0x2e, - 0xef, 0x4a, 0x71, 0xf7, 0x79, 0x7d, 0x6b, 0xf7, 0xdc, 0x19, 0x29, 0xe1, 0x02, 0xf6, 0x98, 0x20, - 0xe9, 0x55, 0x78, 0x64, 0x49, 0x4a, 0x21, 0x09, 0x72, 0x8c, 0x60, 0xfd, 0x72, 0x65, 0xf5, 0xdc, - 0x19, 0x69, 0xd4, 0x2f, 0x79, 0x64, 0x49, 0x1a, 0x43, 0xe3, 0x90, 0xa1, 0x92, 0xe5, 0xed, 0xed, - 0x0d, 0x29, 0xed, 0x72, 0x56, 0x77, 0xe5, 0xf5, 0xad, 0x35, 0x29, 0xe3, 0x72, 0xae, 0xc9, 0xdb, - 0x7b, 0x3b, 0x12, 0xb8, 0x0c, 0x9b, 0x95, 0x6a, 0xb5, 0xbc, 0x56, 0x91, 0xb2, 0xae, 0xc6, 0xf2, - 0x73, 0xbb, 0x95, 0xaa, 0x94, 0xf3, 0x99, 0xf5, 0xc8, 0x92, 0x34, 0xee, 0x4e, 0x51, 0xd9, 0xda, - 0xdb, 0x94, 0xf2, 0x68, 0x12, 0xc6, 0xd9, 0x14, 0xc2, 0x88, 0x89, 0x80, 0xe8, 0xdc, 0x19, 0x49, - 0xea, 0x1a, 0xc2, 0x58, 0x26, 0x7d, 0x82, 0x73, 0x67, 0x24, 0x34, 0xb7, 0x02, 0x29, 0x1a, 0x5d, - 0x08, 0x41, 0x7e, 0xa3, 0xbc, 0x5c, 0xd9, 0x50, 0xb6, 0x77, 0x76, 0xd7, 0xb7, 0xb7, 0xca, 0x1b, - 0x52, 0xac, 0x2b, 0x93, 0x2b, 0x9f, 0xdb, 0x5b, 0x97, 0x2b, 0xab, 0x52, 0xdc, 0x2b, 0xdb, 0xa9, - 0x94, 0x77, 0x2b, 0xab, 0x52, 0x62, 0x4e, 0x83, 0xe9, 0xb0, 0x3c, 0x13, 0x7a, 0x32, 0x3c, 0x5b, - 0x1c, 0xef, 0xb3, 0xc5, 0x94, 0xab, 0x67, 0x8b, 0xbf, 0x1c, 0x83, 0xa9, 0x90, 0x5c, 0x1b, 0x3a, - 0xc9, 0x93, 0x90, 0x62, 0x21, 0xca, 0xaa, 0xcf, 0x7d, 0xa1, 0x49, 0x9b, 0x06, 0x6c, 0x4f, 0x05, - 0xa2, 0x38, 0x6f, 0x05, 0x4e, 0xf4, 0xa9, 0xc0, 0x84, 0xa2, 0xc7, 0xc8, 0x57, 0x62, 0x50, 0xe8, - 0xc7, 0x1d, 0x91, 0x28, 0xe2, 0xbe, 0x44, 0x71, 0x21, 0x68, 0xc0, 0xa9, 0xfe, 0x6b, 0xe8, 0xb1, - 0xe2, 0xcd, 0x18, 0x9c, 0x08, 0x6f, 0x54, 0x42, 0x6d, 0x78, 0x02, 0x46, 0x5b, 0xd8, 0x39, 0x30, - 0x45, 0xb1, 0xbe, 0x27, 0xa4, 0x04, 0x90, 0xe1, 0xa0, 0xaf, 0x38, 0xca, 0x5b, 0x43, 0x12, 0xfd, - 0xba, 0x0d, 0x66, 0x4d, 0x8f, 0xa5, 0x9f, 0x8f, 0xc3, 0x2d, 0xa1, 0xe4, 0xa1, 0x86, 0xde, 0x01, - 0xa0, 0x1b, 0xed, 0x8e, 0xc3, 0x0a, 0x32, 0xcb, 0x4f, 0x19, 0x2a, 0xa1, 0x67, 0x9f, 0xe4, 0x9e, - 0x8e, 0xe3, 0x8e, 0x27, 0xe8, 0x38, 0x30, 0x11, 0x55, 0x38, 0xdf, 0x35, 0x34, 0x49, 0x0d, 0x2d, - 0xf6, 0x59, 0x69, 0x4f, 0xad, 0x7b, 0x08, 0x24, 0xad, 0xa9, 0x63, 0xc3, 0x51, 0x6c, 0xc7, 0xc2, - 0x6a, 0x4b, 0x37, 0x1a, 0x34, 0x01, 0xa7, 0x4b, 0xa9, 0xba, 0xda, 0xb4, 0xb1, 0x3c, 0xc1, 0x86, - 0xab, 0x62, 0x94, 0x20, 0x68, 0x95, 0xb1, 0x3c, 0x88, 0x51, 0x1f, 0x82, 0x0d, 0xbb, 0x88, 0xb9, - 0xaf, 0x8d, 0x41, 0xd6, 0xd3, 0xd6, 0xa1, 0x53, 0x90, 0x7b, 0x51, 0xbd, 0xaa, 0x2a, 0xa2, 0x55, - 0x67, 0x9e, 0xc8, 0x12, 0xd9, 0x0e, 0x6f, 0xd7, 0x1f, 0x82, 0x69, 0xaa, 0x62, 0x76, 0x1c, 0x6c, - 0x29, 0x5a, 0x53, 0xb5, 0x6d, 0xea, 0xb4, 0x34, 0x55, 0x45, 0x64, 0x6c, 0x9b, 0x0c, 0xad, 0x88, - 0x11, 0x74, 0x16, 0xa6, 0x28, 0xa2, 0xd5, 0x69, 0x3a, 0x7a, 0xbb, 0x89, 0x15, 0xf2, 0xf2, 0x60, - 0xd3, 0x44, 0xec, 0x5a, 0x36, 0x49, 0x34, 0x36, 0xb9, 0x02, 0xb1, 0xc8, 0x46, 0xab, 0x70, 0x07, - 0x85, 0x35, 0xb0, 0x81, 0x2d, 0xd5, 0xc1, 0x0a, 0x7e, 0xa9, 0xa3, 0x36, 0x6d, 0x45, 0x35, 0x6a, - 0xca, 0x81, 0x6a, 0x1f, 0x14, 0xa6, 0x09, 0xc1, 0x72, 0xbc, 0x10, 0x93, 0x6f, 0x23, 0x8a, 0x6b, - 0x5c, 0xaf, 0x42, 0xd5, 0xca, 0x46, 0xed, 0x92, 0x6a, 0x1f, 0xa0, 0x12, 0x9c, 0xa0, 0x2c, 0xb6, - 0x63, 0xe9, 0x46, 0x43, 0xd1, 0x0e, 0xb0, 0x76, 0x45, 0xe9, 0x38, 0xf5, 0xf3, 0x85, 0xdb, 0xbd, - 0xf3, 0x53, 0x0b, 0xab, 0x54, 0x67, 0x85, 0xa8, 0xec, 0x39, 0xf5, 0xf3, 0xa8, 0x0a, 0x39, 0xb2, - 0x19, 0x2d, 0xfd, 0x65, 0xac, 0xd4, 0x4d, 0x8b, 0x56, 0x96, 0x7c, 0xc8, 0xc9, 0xf6, 0x78, 0x70, - 0x61, 0x9b, 0x03, 0x36, 0xcd, 0x1a, 0x2e, 0xa5, 0xaa, 0x3b, 0x95, 0xca, 0xaa, 0x9c, 0x15, 0x2c, - 0x17, 0x4d, 0x8b, 0x04, 0x54, 0xc3, 0x74, 0x1d, 0x9c, 0x65, 0x01, 0xd5, 0x30, 0x85, 0x7b, 0xcf, - 0xc2, 0x94, 0xa6, 0xb1, 0x35, 0xeb, 0x9a, 0xc2, 0x5b, 0x7c, 0xbb, 0x20, 0xf9, 0x9c, 0xa5, 0x69, - 0x6b, 0x4c, 0x81, 0xc7, 0xb8, 0x8d, 0x1e, 0x83, 0x5b, 0xba, 0xce, 0xf2, 0x02, 0x27, 0x7b, 0x56, - 0x19, 0x84, 0x9e, 0x85, 0xa9, 0xf6, 0x61, 0x2f, 0x10, 0xf9, 0x66, 0x6c, 0x1f, 0x06, 0x61, 0x77, - 0xd3, 0xd7, 0x36, 0x0b, 0x6b, 0xaa, 0x83, 0x6b, 0x85, 0x5b, 0xbd, 0xda, 0x9e, 0x01, 0xb4, 0x08, - 0x92, 0xa6, 0x29, 0xd8, 0x50, 0xf7, 0x9b, 0x58, 0x51, 0x2d, 0x6c, 0xa8, 0x76, 0x61, 0xd6, 0xab, - 0x9c, 0xd7, 0xb4, 0x0a, 0x1d, 0x2d, 0xd3, 0x41, 0x74, 0x1a, 0x26, 0xcd, 0xfd, 0x17, 0x35, 0x16, - 0x59, 0x4a, 0xdb, 0xc2, 0x75, 0xfd, 0x7a, 0xe1, 0x2e, 0xea, 0xa6, 0x09, 0x32, 0x40, 0xe3, 0x6a, - 0x87, 0x8a, 0xd1, 0x7d, 0x20, 0x69, 0xf6, 0x81, 0x6a, 0xb5, 0x69, 0x69, 0xb7, 0xdb, 0xaa, 0x86, - 0x0b, 0x77, 0x33, 0x55, 0x26, 0xdf, 0x12, 0x62, 0x12, 0xd9, 0xf6, 0x35, 0xbd, 0xee, 0x08, 0xc6, - 0x7b, 0x59, 0x64, 0x53, 0x19, 0x67, 0xbb, 0x0c, 0xd3, 0x1d, 0x43, 0x37, 0x1c, 0x6c, 0xb5, 0x2d, - 0x4c, 0x9a, 0x78, 0x76, 0x12, 0x0b, 0xff, 0x34, 0xd6, 0xa7, 0x0d, 0xdf, 0xf3, 0x6a, 0xb3, 0x00, - 0x90, 0xa7, 0x3a, 0xbd, 0xc2, 0xb9, 0x12, 0xe4, 0xbc, 0x71, 0x81, 0x32, 0xc0, 0x22, 0x43, 0x8a, - 0x91, 0x1a, 0xbb, 0xb2, 0xbd, 0x4a, 0xaa, 0xe3, 0xf3, 0x15, 0x29, 0x4e, 0xaa, 0xf4, 0xc6, 0xfa, - 0x6e, 0x45, 0x91, 0xf7, 0xb6, 0x76, 0xd7, 0x37, 0x2b, 0x52, 0xe2, 0x74, 0x26, 0xfd, 0xde, 0x98, - 0x74, 0xe3, 0xc6, 0x8d, 0x1b, 0xf1, 0xb9, 0xef, 0xc4, 0x21, 0xef, 0xef, 0x8c, 0xd1, 0x67, 0xe1, - 0x56, 0xf1, 0x1a, 0x6b, 0x63, 0x47, 0xb9, 0xa6, 0x5b, 0x34, 0x54, 0x5b, 0x2a, 0xeb, 0x2d, 0x5d, - 0x2f, 0x4f, 0x73, 0xad, 0x2a, 0x76, 0x9e, 0xd5, 0x2d, 0x12, 0x88, 0x2d, 0xd5, 0x41, 0x1b, 0x30, - 0x6b, 0x98, 0x8a, 0xed, 0xa8, 0x46, 0x4d, 0xb5, 0x6a, 0x4a, 0xf7, 0x02, 0x41, 0x51, 0x35, 0x0d, - 0xdb, 0xb6, 0xc9, 0x4a, 0x84, 0xcb, 0xf2, 0x19, 0xc3, 0xac, 0x72, 0xe5, 0x6e, 0xee, 0x2c, 0x73, - 0xd5, 0x40, 0x44, 0x24, 0xfa, 0x45, 0xc4, 0xed, 0x90, 0x69, 0xa9, 0x6d, 0x05, 0x1b, 0x8e, 0x75, - 0x48, 0xfb, 0xb9, 0xb4, 0x9c, 0x6e, 0xa9, 0xed, 0x0a, 0x79, 0xfe, 0xe4, 0xf6, 0xc0, 0xeb, 0xc7, - 0x1f, 0x26, 0x20, 0xe7, 0xed, 0xe9, 0x48, 0x8b, 0xac, 0xd1, 0xfc, 0x1d, 0xa3, 0x27, 0xfc, 0xce, - 0x81, 0x1d, 0xe0, 0xc2, 0x0a, 0x49, 0xec, 0xa5, 0x51, 0xd6, 0x69, 0xc9, 0x0c, 0x49, 0x8a, 0x2a, - 0x39, 0xd3, 0x98, 0xf5, 0xef, 0x69, 0x99, 0x3f, 0xa1, 0x35, 0x18, 0x7d, 0xd1, 0xa6, 0xdc, 0xa3, - 0x94, 0xfb, 0xae, 0xc1, 0xdc, 0x4f, 0x55, 0x29, 0x79, 0xe6, 0xa9, 0xaa, 0xb2, 0xb5, 0x2d, 0x6f, - 0x96, 0x37, 0x64, 0x0e, 0x47, 0xb7, 0x41, 0xb2, 0xa9, 0xbe, 0x7c, 0xe8, 0x2f, 0x01, 0x54, 0x34, - 0xac, 0xe3, 0x6f, 0x83, 0xe4, 0x35, 0xac, 0x5e, 0xf1, 0x27, 0x5e, 0x2a, 0xfa, 0x04, 0x43, 0x7f, - 0x11, 0x52, 0xd4, 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x1a, 0x41, 0x69, 0x48, 0xae, 0x6c, 0xcb, 0x24, - 0xfc, 0x25, 0xc8, 0x31, 0xa9, 0xb2, 0xb3, 0x5e, 0x59, 0xa9, 0x48, 0xf1, 0xb9, 0xb3, 0x30, 0xca, - 0x9c, 0x40, 0x8e, 0x86, 0xeb, 0x06, 0x69, 0x84, 0x3f, 0x72, 0x8e, 0x98, 0x18, 0xdd, 0xdb, 0x5c, - 0xae, 0xc8, 0x52, 0xdc, 0xbb, 0xbd, 0x36, 0xe4, 0xbc, 0xed, 0xdc, 0x4f, 0x27, 0xa6, 0xfe, 0x36, - 0x06, 0x59, 0x4f, 0x7b, 0x46, 0x1a, 0x03, 0xb5, 0xd9, 0x34, 0xaf, 0x29, 0x6a, 0x53, 0x57, 0x6d, - 0x1e, 0x14, 0x40, 0x45, 0x65, 0x22, 0x19, 0x76, 0xd3, 0x7e, 0x2a, 0xc6, 0xbf, 0x11, 0x03, 0x29, - 0xd8, 0xda, 0x05, 0x0c, 0x8c, 0xfd, 0x4c, 0x0d, 0x7c, 0x3d, 0x06, 0x79, 0x7f, 0x3f, 0x17, 0x30, - 0xef, 0xd4, 0xcf, 0xd4, 0xbc, 0x77, 0xe2, 0x30, 0xee, 0xeb, 0xe2, 0x86, 0xb5, 0xee, 0x25, 0x98, - 0xd4, 0x6b, 0xb8, 0xd5, 0x36, 0x1d, 0x6c, 0x68, 0x87, 0x4a, 0x13, 0x5f, 0xc5, 0xcd, 0xc2, 0x1c, - 0x4d, 0x14, 0x8b, 0x83, 0xfb, 0xc4, 0x85, 0xf5, 0x2e, 0x6e, 0x83, 0xc0, 0x4a, 0x53, 0xeb, 0xab, - 0x95, 0xcd, 0x9d, 0xed, 0xdd, 0xca, 0xd6, 0xca, 0x73, 0xca, 0xde, 0xd6, 0xd3, 0x5b, 0xdb, 0xcf, - 0x6e, 0xc9, 0x92, 0x1e, 0x50, 0xfb, 0x04, 0x8f, 0xfa, 0x0e, 0x48, 0x41, 0xa3, 0xd0, 0xad, 0x10, - 0x66, 0x96, 0x34, 0x82, 0xa6, 0x60, 0x62, 0x6b, 0x5b, 0xa9, 0xae, 0xaf, 0x56, 0x94, 0xca, 0xc5, - 0x8b, 0x95, 0x95, 0xdd, 0x2a, 0x7b, 0x71, 0x76, 0xb5, 0x77, 0xfd, 0x87, 0xfa, 0xb5, 0x04, 0x4c, - 0x85, 0x58, 0x82, 0xca, 0xbc, 0x67, 0x67, 0xaf, 0x11, 0x0f, 0x0e, 0x63, 0xfd, 0x02, 0xe9, 0x0a, - 0x76, 0x54, 0xcb, 0xe1, 0x2d, 0xfe, 0x7d, 0x40, 0xbc, 0x64, 0x38, 0x7a, 0x5d, 0xc7, 0x16, 0xbf, - 0x67, 0x60, 0x8d, 0xfc, 0x44, 0x57, 0xce, 0xae, 0x1a, 0x1e, 0x00, 0xd4, 0x36, 0x6d, 0xdd, 0xd1, - 0xaf, 0x62, 0x45, 0x37, 0xc4, 0xa5, 0x04, 0x69, 0xec, 0x93, 0xb2, 0x24, 0x46, 0xd6, 0x0d, 0xc7, - 0xd5, 0x36, 0x70, 0x43, 0x0d, 0x68, 0x93, 0x04, 0x9e, 0x90, 0x25, 0x31, 0xe2, 0x6a, 0x9f, 0x82, - 0x5c, 0xcd, 0xec, 0x90, 0x36, 0x89, 0xe9, 0x91, 0x7a, 0x11, 0x93, 0xb3, 0x4c, 0xe6, 0xaa, 0xf0, - 0x3e, 0xb6, 0x7b, 0x1b, 0x92, 0x93, 0xb3, 0x4c, 0xc6, 0x54, 0xee, 0x85, 0x09, 0xb5, 0xd1, 0xb0, - 0x08, 0xb9, 0x20, 0x62, 0x9d, 0x79, 0xde, 0x15, 0x53, 0xc5, 0x99, 0xa7, 0x20, 0x2d, 0xfc, 0x40, - 0x4a, 0x32, 0xf1, 0x84, 0xd2, 0x66, 0x77, 0x52, 0xf1, 0xf9, 0x8c, 0x9c, 0x36, 0xc4, 0xe0, 0x29, - 0xc8, 0xe9, 0xb6, 0xd2, 0xbd, 0x1c, 0x8d, 0x9f, 0x8c, 0xcf, 0xa7, 0xe5, 0xac, 0x6e, 0xbb, 0xb7, - 0x61, 0x73, 0x6f, 0xc6, 0x21, 0xef, 0xbf, 0xdc, 0x45, 0xab, 0x90, 0x6e, 0x9a, 0x9a, 0x4a, 0x43, - 0x8b, 0xfd, 0xb2, 0x30, 0x1f, 0x71, 0x1f, 0xbc, 0xb0, 0xc1, 0xf5, 0x65, 0x17, 0x39, 0xf3, 0x8f, - 0x31, 0x48, 0x0b, 0x31, 0x3a, 0x01, 0xc9, 0xb6, 0xea, 0x1c, 0x50, 0xba, 0xd4, 0x72, 0x5c, 0x8a, - 0xc9, 0xf4, 0x99, 0xc8, 0xed, 0xb6, 0x6a, 0xd0, 0x10, 0xe0, 0x72, 0xf2, 0x4c, 0xf6, 0xb5, 0x89, - 0xd5, 0x1a, 0x6d, 0xfb, 0xcd, 0x56, 0x0b, 0x1b, 0x8e, 0x2d, 0xf6, 0x95, 0xcb, 0x57, 0xb8, 0x18, - 0xdd, 0x0f, 0x93, 0x8e, 0xa5, 0xea, 0x4d, 0x9f, 0x6e, 0x92, 0xea, 0x4a, 0x62, 0xc0, 0x55, 0x2e, - 0xc1, 0x6d, 0x82, 0xb7, 0x86, 0x1d, 0x55, 0x3b, 0xc0, 0xb5, 0x2e, 0x68, 0x94, 0xde, 0x1c, 0xde, - 0xca, 0x15, 0x56, 0xf9, 0xb8, 0xc0, 0xce, 0x7d, 0x2f, 0x06, 0x93, 0xe2, 0x45, 0xa5, 0xe6, 0x3a, - 0x6b, 0x13, 0x40, 0x35, 0x0c, 0xd3, 0xf1, 0xba, 0xab, 0x37, 0x94, 0x7b, 0x70, 0x0b, 0x65, 0x17, - 0x24, 0x7b, 0x08, 0x66, 0x5a, 0x00, 0xdd, 0x91, 0xbe, 0x6e, 0x9b, 0x85, 0x2c, 0xbf, 0xb9, 0xa7, - 0x3f, 0xff, 0xb0, 0x57, 0x5b, 0x60, 0x22, 0xf2, 0x46, 0x83, 0xa6, 0x21, 0xb5, 0x8f, 0x1b, 0xba, - 0xc1, 0xef, 0x13, 0xd9, 0x83, 0xb8, 0xa5, 0x4c, 0xba, 0xb7, 0x94, 0xcb, 0x97, 0x61, 0x4a, 0x33, - 0x5b, 0x41, 0x73, 0x97, 0xa5, 0xc0, 0xeb, 0xb5, 0x7d, 0x29, 0xf6, 0x3c, 0x74, 0x5b, 0xcc, 0x2f, - 0xc7, 0x13, 0x6b, 0x3b, 0xcb, 0x5f, 0x8d, 0xcf, 0xac, 0x31, 0xdc, 0x8e, 0x58, 0xa6, 0x8c, 0xeb, - 0x4d, 0xac, 0x11, 0xd3, 0xe1, 0xc7, 0xf7, 0xc0, 0x83, 0x0d, 0xdd, 0x39, 0xe8, 0xec, 0x2f, 0x68, - 0x66, 0x6b, 0xb1, 0x61, 0x36, 0xcc, 0xee, 0xcf, 0x5d, 0xe4, 0x89, 0x3e, 0xd0, 0xff, 0xf8, 0x4f, - 0x5e, 0x19, 0x57, 0x3a, 0x13, 0xf9, 0xfb, 0x58, 0x69, 0x0b, 0xa6, 0xb8, 0xb2, 0x42, 0xef, 0xdc, - 0xd9, 0xab, 0x01, 0x1a, 0x78, 0xef, 0x52, 0xf8, 0xc6, 0xbb, 0xb4, 0x56, 0xcb, 0x93, 0x1c, 0x4a, - 0xc6, 0xd8, 0x0b, 0x44, 0x49, 0x86, 0x5b, 0x7c, 0x7c, 0xec, 0x5c, 0x62, 0x2b, 0x82, 0xf1, 0x3b, - 0x9c, 0x71, 0xca, 0xc3, 0x58, 0xe5, 0xd0, 0xd2, 0x0a, 0x8c, 0x1f, 0x87, 0xeb, 0xef, 0x38, 0x57, - 0x0e, 0x7b, 0x49, 0xd6, 0x60, 0x82, 0x92, 0x68, 0x1d, 0xdb, 0x31, 0x5b, 0x34, 0xe9, 0x0d, 0xa6, - 0xf9, 0xfb, 0x77, 0xd9, 0x41, 0xc9, 0x13, 0xd8, 0x8a, 0x8b, 0x2a, 0x95, 0x80, 0xfe, 0xcc, 0x50, - 0xc3, 0x5a, 0x33, 0x82, 0xe1, 0x2d, 0x6e, 0x88, 0xab, 0x5f, 0x7a, 0x06, 0xa6, 0xc9, 0xff, 0x34, - 0x27, 0x79, 0x2d, 0x89, 0xbe, 0x65, 0x2a, 0x7c, 0xef, 0x15, 0x76, 0x16, 0xa7, 0x5c, 0x02, 0x8f, - 0x4d, 0x9e, 0x5d, 0x6c, 0x60, 0xc7, 0xc1, 0x96, 0xad, 0xa8, 0xcd, 0x30, 0xf3, 0x3c, 0xaf, 0xe9, - 0x85, 0x2f, 0xbc, 0xef, 0xdf, 0xc5, 0x35, 0x86, 0x2c, 0x37, 0x9b, 0xa5, 0x3d, 0xb8, 0x35, 0x24, - 0x2a, 0x86, 0xe0, 0x7c, 0x8d, 0x73, 0x4e, 0xf7, 0x44, 0x06, 0xa1, 0xdd, 0x01, 0x21, 0x77, 0xf7, - 0x72, 0x08, 0xce, 0xdf, 0xe3, 0x9c, 0x88, 0x63, 0xc5, 0x96, 0x12, 0xc6, 0xa7, 0x60, 0xf2, 0x2a, - 0xb6, 0xf6, 0x4d, 0x9b, 0x5f, 0x8d, 0x0c, 0x41, 0xf7, 0x3a, 0xa7, 0x9b, 0xe0, 0x40, 0x7a, 0x57, - 0x42, 0xb8, 0x1e, 0x83, 0x74, 0x5d, 0xd5, 0xf0, 0x10, 0x14, 0x5f, 0xe4, 0x14, 0x63, 0x44, 0x9f, - 0x40, 0xcb, 0x90, 0x6b, 0x98, 0xbc, 0x2c, 0x45, 0xc3, 0xdf, 0xe0, 0xf0, 0xac, 0xc0, 0x70, 0x8a, - 0xb6, 0xd9, 0xee, 0x34, 0x49, 0xcd, 0x8a, 0xa6, 0xf8, 0x7d, 0x41, 0x21, 0x30, 0x9c, 0xe2, 0x18, - 0x6e, 0xfd, 0x03, 0x41, 0x61, 0x7b, 0xfc, 0xf9, 0x24, 0x64, 0x4d, 0xa3, 0x79, 0x68, 0x1a, 0xc3, - 0x18, 0xf1, 0x25, 0xce, 0x00, 0x1c, 0x42, 0x08, 0x2e, 0x40, 0x66, 0xd8, 0x8d, 0xf8, 0xc3, 0xf7, - 0xc5, 0xf1, 0x10, 0x3b, 0xb0, 0x06, 0x13, 0x22, 0x41, 0xe9, 0xa6, 0x31, 0x04, 0xc5, 0x1f, 0x71, - 0x8a, 0xbc, 0x07, 0xc6, 0x97, 0xe1, 0x60, 0xdb, 0x69, 0xe0, 0x61, 0x48, 0xde, 0x14, 0xcb, 0xe0, - 0x10, 0xee, 0xca, 0x7d, 0x6c, 0x68, 0x07, 0xc3, 0x31, 0x7c, 0x45, 0xb8, 0x52, 0x60, 0x08, 0xc5, - 0x0a, 0x8c, 0xb7, 0x54, 0xcb, 0x3e, 0x50, 0x9b, 0x43, 0x6d, 0xc7, 0x1f, 0x73, 0x8e, 0x9c, 0x0b, - 0xe2, 0x1e, 0xe9, 0x18, 0xc7, 0xa1, 0xf9, 0xaa, 0xf0, 0x88, 0x07, 0xc6, 0x8f, 0x9e, 0xed, 0xd0, - 0x0b, 0xa8, 0xe3, 0xb0, 0x7d, 0x4d, 0x1c, 0x3d, 0x86, 0xdd, 0xf4, 0x32, 0x5e, 0x80, 0x8c, 0xad, - 0xbf, 0x3c, 0x14, 0xcd, 0x9f, 0x88, 0x9d, 0xa6, 0x00, 0x02, 0x7e, 0x0e, 0x6e, 0x0b, 0x2d, 0x13, - 0x43, 0x90, 0xfd, 0x29, 0x27, 0x3b, 0x11, 0x52, 0x2a, 0x78, 0x4a, 0x38, 0x2e, 0xe5, 0x9f, 0x89, - 0x94, 0x80, 0x03, 0x5c, 0x3b, 0xe4, 0x45, 0xc1, 0x56, 0xeb, 0xc7, 0xf3, 0xda, 0x9f, 0x0b, 0xaf, - 0x31, 0xac, 0xcf, 0x6b, 0xbb, 0x70, 0x82, 0x33, 0x1e, 0x6f, 0x5f, 0xbf, 0x2e, 0x12, 0x2b, 0x43, - 0xef, 0xf9, 0x77, 0xf7, 0xff, 0xc1, 0x8c, 0xeb, 0x4e, 0xd1, 0x91, 0xda, 0x4a, 0x4b, 0x6d, 0x0f, - 0xc1, 0xfc, 0x0d, 0xce, 0x2c, 0x32, 0xbe, 0xdb, 0xd2, 0xda, 0x9b, 0x6a, 0x9b, 0x90, 0x5f, 0x86, - 0x82, 0x20, 0xef, 0x18, 0x16, 0xd6, 0xcc, 0x86, 0xa1, 0xbf, 0x8c, 0x6b, 0x43, 0x50, 0xff, 0x45, - 0x60, 0xab, 0xf6, 0x3c, 0x70, 0xc2, 0xbc, 0x0e, 0x92, 0xdb, 0xab, 0x28, 0x7a, 0xab, 0x6d, 0x5a, - 0x4e, 0x04, 0xe3, 0x5f, 0x8a, 0x9d, 0x72, 0x71, 0xeb, 0x14, 0x56, 0xaa, 0x40, 0x9e, 0x3e, 0x0e, - 0x1b, 0x92, 0x7f, 0xc5, 0x89, 0xc6, 0xbb, 0x28, 0x9e, 0x38, 0x34, 0xb3, 0xd5, 0x56, 0xad, 0x61, - 0xf2, 0xdf, 0x5f, 0x8b, 0xc4, 0xc1, 0x21, 0x3c, 0x71, 0x38, 0x87, 0x6d, 0x4c, 0xaa, 0xfd, 0x10, - 0x0c, 0xdf, 0x14, 0x89, 0x43, 0x60, 0x38, 0x85, 0x68, 0x18, 0x86, 0xa0, 0xf8, 0x1b, 0x41, 0x21, - 0x30, 0x84, 0xe2, 0x73, 0xdd, 0x42, 0x6b, 0xe1, 0x86, 0x6e, 0x3b, 0x16, 0xeb, 0x83, 0x07, 0x53, - 0x7d, 0xeb, 0x7d, 0x7f, 0x13, 0x26, 0x7b, 0xa0, 0xa5, 0xa7, 0x60, 0x22, 0xd0, 0x62, 0xa0, 0xa8, - 0x6f, 0x16, 0x0a, 0x3f, 0xff, 0x21, 0x4f, 0x46, 0xfe, 0x0e, 0xa3, 0xb4, 0x41, 0xf6, 0xdd, 0xdf, - 0x07, 0x44, 0x93, 0xbd, 0xf2, 0xa1, 0xbb, 0xf5, 0xbe, 0x36, 0xa0, 0x74, 0x11, 0xc6, 0x7d, 0x3d, - 0x40, 0x34, 0xd5, 0x2f, 0x70, 0xaa, 0x9c, 0xb7, 0x05, 0x28, 0x9d, 0x85, 0x24, 0xa9, 0xe7, 0xd1, - 0xf0, 0x5f, 0xe4, 0x70, 0xaa, 0x5e, 0x7a, 0x1c, 0xd2, 0xa2, 0x8e, 0x47, 0x43, 0x7f, 0x89, 0x43, - 0x5d, 0x08, 0x81, 0x8b, 0x1a, 0x1e, 0x0d, 0xff, 0x65, 0x01, 0x17, 0x10, 0x02, 0x1f, 0xde, 0x85, - 0xdf, 0xfe, 0x95, 0x24, 0xcf, 0xc3, 0xc2, 0x77, 0x17, 0x60, 0x8c, 0x17, 0xef, 0x68, 0xf4, 0xe7, - 0xf9, 0xe4, 0x02, 0x51, 0x7a, 0x14, 0x52, 0x43, 0x3a, 0xfc, 0x57, 0x39, 0x94, 0xe9, 0x97, 0x56, - 0x20, 0xeb, 0x29, 0xd8, 0xd1, 0xf0, 0x5f, 0xe3, 0x70, 0x2f, 0x8a, 0x98, 0xce, 0x0b, 0x76, 0x34, - 0xc1, 0xaf, 0x0b, 0xd3, 0x39, 0x82, 0xb8, 0x4d, 0xd4, 0xea, 0x68, 0xf4, 0x6f, 0x08, 0xaf, 0x0b, - 0x48, 0xe9, 0x49, 0xc8, 0xb8, 0xf9, 0x37, 0x1a, 0xff, 0x9b, 0x1c, 0xdf, 0xc5, 0x10, 0x0f, 0x78, - 0xf2, 0x7f, 0x34, 0xc5, 0x6f, 0x09, 0x0f, 0x78, 0x50, 0xe4, 0x18, 0x05, 0x6b, 0x7a, 0x34, 0xd3, - 0x6f, 0x8b, 0x63, 0x14, 0x28, 0xe9, 0x64, 0x37, 0x69, 0x1a, 0x8c, 0xa6, 0xf8, 0x1d, 0xb1, 0x9b, - 0x54, 0x9f, 0x98, 0x11, 0x2c, 0x92, 0xd1, 0x1c, 0xbf, 0x2b, 0xcc, 0x08, 0xd4, 0xc8, 0xd2, 0x0e, - 0xa0, 0xde, 0x02, 0x19, 0xcd, 0xf7, 0x2a, 0xe7, 0x9b, 0xec, 0xa9, 0x8f, 0xa5, 0x67, 0xe1, 0x44, - 0x78, 0x71, 0x8c, 0x66, 0xfd, 0xc2, 0x87, 0x81, 0xd7, 0x19, 0x6f, 0x6d, 0x2c, 0xed, 0x76, 0xb3, - 0xac, 0xb7, 0x30, 0x46, 0xd3, 0xbe, 0xf6, 0xa1, 0x3f, 0xd1, 0x7a, 0xeb, 0x62, 0xa9, 0x0c, 0xd0, - 0xad, 0x49, 0xd1, 0x5c, 0xaf, 0x73, 0x2e, 0x0f, 0x88, 0x1c, 0x0d, 0x5e, 0x92, 0xa2, 0xf1, 0x5f, - 0x14, 0x47, 0x83, 0x23, 0xc8, 0xd1, 0x10, 0xd5, 0x28, 0x1a, 0xfd, 0x86, 0x38, 0x1a, 0x02, 0x52, - 0xba, 0x00, 0x69, 0xa3, 0xd3, 0x6c, 0x92, 0xd8, 0x42, 0x83, 0x3f, 0x23, 0x2a, 0xfc, 0xf3, 0x47, - 0x1c, 0x2c, 0x00, 0xa5, 0xb3, 0x90, 0xc2, 0xad, 0x7d, 0x5c, 0x8b, 0x42, 0xfe, 0xcb, 0x47, 0x22, - 0x9f, 0x10, 0xed, 0xd2, 0x93, 0x00, 0xec, 0x65, 0x9a, 0xfe, 0x4a, 0x14, 0x81, 0xfd, 0xd7, 0x8f, - 0xf8, 0x17, 0x0a, 0x5d, 0x48, 0x97, 0x80, 0x7d, 0xef, 0x30, 0x98, 0xe0, 0x7d, 0x3f, 0x01, 0x7d, - 0x01, 0x7f, 0x0c, 0xc6, 0x5e, 0xb4, 0x4d, 0xc3, 0x51, 0x1b, 0x51, 0xe8, 0x7f, 0xe3, 0x68, 0xa1, - 0x4f, 0x1c, 0xd6, 0x32, 0x2d, 0xec, 0xa8, 0x0d, 0x3b, 0x0a, 0xfb, 0xef, 0x1c, 0xeb, 0x02, 0x08, - 0x58, 0x53, 0x6d, 0x67, 0x98, 0x75, 0xff, 0x87, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0xfc, 0x7f, 0x05, - 0x1f, 0x46, 0x61, 0x3f, 0x10, 0x46, 0x73, 0xfd, 0xd2, 0xe3, 0x90, 0x21, 0xff, 0xb2, 0xaf, 0x76, - 0x22, 0xc0, 0xff, 0xc9, 0xc1, 0x5d, 0x04, 0x99, 0xd9, 0x76, 0x6a, 0x8e, 0x1e, 0xed, 0xec, 0xff, - 0xe2, 0x3b, 0x2d, 0xf4, 0x4b, 0x65, 0xc8, 0xda, 0x4e, 0xad, 0xd6, 0xe1, 0x1d, 0x4d, 0x04, 0xfc, - 0xc7, 0x1f, 0xb9, 0x2f, 0xb9, 0x2e, 0x66, 0xf9, 0x54, 0xf8, 0x65, 0x1d, 0xac, 0x99, 0x6b, 0x26, - 0xbb, 0xa6, 0x83, 0xff, 0x7e, 0x10, 0x66, 0x35, 0xb3, 0xb5, 0x6f, 0xda, 0x8b, 0x06, 0xd6, 0x9d, - 0x03, 0x6c, 0x2d, 0xb6, 0xd4, 0xb6, 0x4d, 0x75, 0x97, 0xf8, 0x3d, 0x5b, 0x96, 0x3f, 0x91, 0x81, - 0x99, 0xe3, 0xdd, 0xd1, 0xcd, 0xdd, 0x01, 0xe3, 0x17, 0x9b, 0xa6, 0xea, 0xe8, 0x46, 0x63, 0xc7, - 0xd4, 0x0d, 0x07, 0xe5, 0x20, 0x56, 0xa7, 0x3f, 0x30, 0xc5, 0xe4, 0x58, 0x7d, 0xee, 0x1f, 0x52, - 0x90, 0x61, 0xd7, 0x3b, 0x9b, 0x6a, 0x1b, 0xfd, 0x1c, 0xe4, 0xb6, 0xf8, 0x09, 0x79, 0x78, 0xe9, - 0xbc, 0xed, 0xde, 0x25, 0x7b, 0xe6, 0x5f, 0x70, 0xb5, 0x17, 0xbc, 0xaa, 0xf4, 0x07, 0xe5, 0xe5, - 0x87, 0x7e, 0xf0, 0xf6, 0xec, 0x03, 0x7d, 0xed, 0x23, 0x25, 0x71, 0x91, 0x85, 0xf2, 0xc2, 0x9e, - 0x6e, 0x38, 0x0f, 0x2f, 0x9d, 0x97, 0x7d, 0xf3, 0xa1, 0xab, 0x90, 0xe6, 0x03, 0x36, 0xff, 0x8d, - 0xe1, 0xae, 0x3e, 0x73, 0x0b, 0x35, 0x36, 0xef, 0x99, 0xb7, 0xde, 0x9e, 0x1d, 0x39, 0xf6, 0xdc, - 0xee, 0x5c, 0xe8, 0x25, 0xc8, 0x0a, 0x3b, 0xd6, 0x6b, 0x36, 0xff, 0x94, 0xf8, 0xde, 0x88, 0x65, - 0xaf, 0xd7, 0xf8, 0xec, 0xf7, 0xfc, 0xe0, 0xed, 0xd9, 0xb9, 0x81, 0x33, 0x2f, 0xec, 0x75, 0xf4, - 0x9a, 0xec, 0x9d, 0x03, 0xbd, 0x00, 0x09, 0x32, 0x15, 0xfb, 0xe8, 0x78, 0xb6, 0xcf, 0x54, 0xee, - 0x14, 0xa7, 0xf9, 0x02, 0x87, 0x99, 0x86, 0xf0, 0xce, 0x3c, 0x09, 0x93, 0x3d, 0xdb, 0x83, 0x24, - 0x48, 0x5c, 0xc1, 0x87, 0xfc, 0x3b, 0x23, 0xf2, 0x2f, 0x9a, 0xee, 0x7e, 0x47, 0x17, 0x9b, 0xcf, - 0xf1, 0x8f, 0xe3, 0x4a, 0xf1, 0xf3, 0xb1, 0x99, 0x0b, 0x30, 0xee, 0xf3, 0xf1, 0xb1, 0xc0, 0x4f, - 0x80, 0x14, 0xf4, 0xd2, 0xb1, 0xf0, 0xe7, 0x20, 0xfd, 0x71, 0x70, 0x73, 0xdf, 0x47, 0x30, 0x56, - 0x6e, 0x36, 0x37, 0xd5, 0xb6, 0x8d, 0x9e, 0x83, 0x49, 0xd6, 0xb8, 0xef, 0x9a, 0xab, 0xf4, 0x57, - 0x9d, 0x4d, 0xb5, 0xcd, 0x03, 0xfa, 0x7e, 0x9f, 0xbb, 0x39, 0x60, 0xa1, 0x47, 0x9b, 0xce, 0x2f, - 0xf7, 0xb2, 0xa0, 0x67, 0x40, 0x12, 0x42, 0x7a, 0xb6, 0x08, 0x33, 0x0b, 0xd7, 0xd3, 0x03, 0x99, - 0x85, 0x32, 0x23, 0xee, 0xe1, 0x40, 0x4f, 0x40, 0x7a, 0xdd, 0x70, 0x1e, 0x59, 0x22, 0x7c, 0x2c, - 0x06, 0xe7, 0x42, 0xf9, 0x84, 0x12, 0xe3, 0x71, 0x31, 0x1c, 0x7f, 0xee, 0x0c, 0xc1, 0x27, 0x07, - 0xe3, 0xa9, 0x52, 0x17, 0x4f, 0x1f, 0x51, 0x19, 0x32, 0x64, 0xcf, 0x99, 0x01, 0xec, 0x2b, 0xf6, - 0x3b, 0x43, 0x09, 0x5c, 0x2d, 0xc6, 0xd0, 0x45, 0x09, 0x0a, 0x66, 0xc3, 0x68, 0x04, 0x85, 0xc7, - 0x88, 0x2e, 0x8a, 0x50, 0x54, 0x5d, 0x2b, 0xc6, 0x06, 0x50, 0x54, 0x03, 0x56, 0x54, 0xbd, 0x56, - 0x54, 0x5d, 0x2b, 0xd2, 0x11, 0x14, 0x5e, 0x2b, 0xdc, 0x67, 0xb4, 0x0a, 0x70, 0x51, 0xbf, 0x8e, - 0x6b, 0xcc, 0x8c, 0x4c, 0x48, 0x32, 0x12, 0x1c, 0x5d, 0x35, 0x46, 0xe2, 0xc1, 0xa1, 0x35, 0xc8, - 0x56, 0xeb, 0x5d, 0x1a, 0xe0, 0x1f, 0xf1, 0x87, 0x9a, 0x52, 0x0f, 0xf0, 0x78, 0x91, 0xae, 0x39, - 0x6c, 0x49, 0xd9, 0x28, 0x73, 0x3c, 0x6b, 0xf2, 0xe0, 0xba, 0xe6, 0x30, 0x9a, 0x5c, 0xa4, 0x39, - 0x1e, 0x1e, 0x2f, 0x12, 0x5d, 0x80, 0xb1, 0x65, 0xd3, 0x24, 0x9a, 0x85, 0x71, 0x4a, 0x72, 0x2a, - 0x94, 0x84, 0xeb, 0x30, 0x02, 0x81, 0xa0, 0xbb, 0x43, 0x43, 0x9f, 0xc0, 0xf3, 0x83, 0x76, 0x47, - 0x68, 0x89, 0xdd, 0x11, 0xcf, 0xde, 0x13, 0xb8, 0x7c, 0xe8, 0x60, 0xd2, 0x24, 0x17, 0x26, 0x86, - 0x38, 0x81, 0x42, 0x39, 0x70, 0x02, 0x85, 0x18, 0x55, 0x61, 0x42, 0xc8, 0x2a, 0x46, 0x87, 0xe4, - 0xe0, 0x82, 0xc4, 0xbf, 0x30, 0x1e, 0x44, 0xcb, 0x75, 0x19, 0x6b, 0x90, 0x01, 0xed, 0x40, 0x5e, - 0x88, 0x36, 0x6d, 0xba, 0xe8, 0xc9, 0x90, 0xba, 0x1a, 0xe4, 0x64, 0xaa, 0x8c, 0x32, 0x80, 0x9f, - 0x59, 0x85, 0x13, 0xe1, 0xd9, 0x2a, 0x2a, 0x5b, 0xc6, 0xbc, 0x59, 0x76, 0x05, 0x6e, 0x09, 0xcd, - 0x4c, 0x51, 0x24, 0xf1, 0x40, 0x9d, 0xf0, 0xa5, 0x23, 0x2f, 0x38, 0x15, 0x02, 0x4e, 0xf5, 0x82, - 0xbb, 0x41, 0xe6, 0x05, 0x27, 0x42, 0xc0, 0x09, 0x2f, 0xf8, 0xb3, 0x90, 0xf7, 0xe7, 0x21, 0x2f, - 0x7a, 0x3c, 0x04, 0x3d, 0x1e, 0x82, 0x0e, 0x9f, 0x3b, 0x19, 0x82, 0x4e, 0x06, 0xd0, 0xd5, 0xbe, - 0x73, 0x4f, 0x86, 0xa0, 0x27, 0x43, 0xd0, 0xe1, 0x73, 0xa3, 0x10, 0x34, 0xf2, 0xa2, 0x1f, 0x87, - 0x89, 0x40, 0xca, 0xf1, 0xc2, 0xc7, 0x42, 0xe0, 0x63, 0x81, 0xda, 0x1c, 0x4c, 0x35, 0x5e, 0xfc, - 0x44, 0x08, 0x7e, 0x22, 0x6c, 0xfa, 0x70, 0xeb, 0x47, 0x43, 0xe0, 0xa3, 0xa1, 0xd3, 0x87, 0xe3, - 0xa5, 0x10, 0xbc, 0xe4, 0xc5, 0x97, 0x20, 0xe7, 0xcd, 0x2a, 0x5e, 0x6c, 0x3a, 0x04, 0x9b, 0x0e, - 0xfa, 0xdd, 0x97, 0x52, 0xa2, 0x22, 0x3d, 0xd3, 0xe7, 0xb8, 0xf8, 0xd2, 0xc8, 0xb1, 0x3a, 0x9b, - 0xcb, 0x30, 0x1d, 0x96, 0x34, 0x42, 0x38, 0x4e, 0x7b, 0x39, 0xf2, 0x4b, 0xd3, 0xbe, 0x64, 0x41, - 0x71, 0x9d, 0x96, 0x97, 0xf9, 0x05, 0x98, 0x0a, 0x49, 0x1d, 0x21, 0xc4, 0x0f, 0x79, 0x89, 0xb3, - 0x4b, 0x33, 0x3e, 0x62, 0xdf, 0xbb, 0x82, 0xb7, 0xb5, 0xfa, 0xe1, 0x14, 0xe4, 0x79, 0x8a, 0xda, - 0xb6, 0x6a, 0xd8, 0xc2, 0x35, 0xf4, 0xff, 0xfb, 0x77, 0x58, 0x4b, 0x61, 0xa9, 0x8d, 0xe3, 0x8e, - 0xd1, 0x68, 0xbd, 0xd0, 0xb7, 0xd1, 0x7a, 0x78, 0x98, 0x09, 0xa2, 0xfa, 0xad, 0x4a, 0x4f, 0xbf, - 0x75, 0xdf, 0x20, 0xda, 0x7e, 0x6d, 0x57, 0xa5, 0xa7, 0xed, 0x8a, 0xa2, 0x09, 0xed, 0xbe, 0x2e, - 0xf5, 0x76, 0x5f, 0xa7, 0x07, 0xf1, 0xf4, 0x6f, 0xc2, 0x2e, 0xf5, 0x36, 0x61, 0x91, 0x4c, 0xe1, - 0xbd, 0xd8, 0xa5, 0xde, 0x5e, 0x6c, 0x20, 0x53, 0xff, 0x96, 0xec, 0x52, 0x6f, 0x4b, 0x16, 0xc9, - 0x14, 0xde, 0x99, 0x3d, 0x1d, 0xd2, 0x99, 0xdd, 0x3f, 0x88, 0x6a, 0x50, 0x83, 0xb6, 0x15, 0xd6, - 0xa0, 0x3d, 0x30, 0xd0, 0xb0, 0x81, 0x7d, 0xda, 0xd3, 0x21, 0x7d, 0x5a, 0xb4, 0x71, 0x7d, 0xda, - 0xb5, 0xad, 0xb0, 0x76, 0x6d, 0x08, 0xe3, 0xfa, 0x75, 0x6d, 0xcb, 0xc1, 0xae, 0x6d, 0x7e, 0x10, - 0x57, 0x78, 0xf3, 0x76, 0xa9, 0xb7, 0x79, 0x3b, 0x1d, 0x7d, 0x16, 0xc3, 0x7a, 0xb8, 0x17, 0xfa, - 0xf6, 0x70, 0x43, 0x1d, 0xee, 0xa8, 0x56, 0xee, 0xf9, 0x7e, 0xad, 0xdc, 0x43, 0xc3, 0xb0, 0x0f, - 0xee, 0xe8, 0x9e, 0xed, 0xd3, 0xd1, 0x2d, 0x0e, 0x43, 0xfd, 0x69, 0x63, 0xf7, 0x69, 0x63, 0xf7, - 0x69, 0x63, 0xf7, 0x69, 0x63, 0xf7, 0x7f, 0xa3, 0xb1, 0x2b, 0x25, 0x5f, 0xfd, 0xd2, 0x6c, 0xec, - 0xf4, 0x29, 0x18, 0xe3, 0x53, 0xa3, 0x51, 0x88, 0x6f, 0x96, 0xa5, 0x11, 0xfa, 0x77, 0x59, 0x8a, - 0xd1, 0xbf, 0x2b, 0x52, 0x7c, 0x79, 0xe3, 0xad, 0x9b, 0xc5, 0x91, 0xef, 0xde, 0x2c, 0x8e, 0x7c, - 0xff, 0x66, 0x71, 0xe4, 0x9d, 0x9b, 0xc5, 0xd8, 0x7b, 0x37, 0x8b, 0xb1, 0x0f, 0x6e, 0x16, 0x63, - 0x3f, 0xb9, 0x59, 0x8c, 0xdd, 0x38, 0x2a, 0xc6, 0xbe, 0x72, 0x54, 0x8c, 0x7d, 0xfd, 0xa8, 0x18, - 0xfb, 0xd6, 0x51, 0x31, 0xf6, 0xed, 0xa3, 0x62, 0xec, 0xad, 0xa3, 0xe2, 0xc8, 0x77, 0x8f, 0x8a, - 0x23, 0xef, 0x1c, 0x15, 0x63, 0xef, 0x1d, 0x15, 0x47, 0x3e, 0x38, 0x2a, 0xc6, 0x7e, 0x72, 0x54, - 0x1c, 0xb9, 0xf1, 0xa3, 0xe2, 0xc8, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x36, 0xa7, 0xef, 0xf4, - 0x54, 0x45, 0x00, 0x00, + // 4690 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xd6, 0xf0, 0x21, 0x91, 0x87, 0x14, 0x35, 0xba, 0x92, 0xd7, 0xb4, 0x1c, 0x4b, 0xbb, 0xf2, + 0x63, 0xe5, 0xb5, 0x2d, 0xd9, 0xf2, 0xee, 0x7a, 0xcd, 0x8d, 0xed, 0x52, 0x12, 0x57, 0x2b, 0x5b, + 0xaf, 0x0c, 0x25, 0xbf, 0x02, 0x63, 0x3a, 0x1a, 0x5e, 0x51, 0xe3, 0x25, 0x67, 0xe8, 0x99, 0xe1, + 0xda, 0x32, 0x8a, 0x62, 0x0b, 0xf7, 0x81, 0xa0, 0xe8, 0xbb, 0x40, 0x1c, 0xd7, 0x71, 0x9b, 0x02, + 0xad, 0xd3, 0xf4, 0x95, 0x34, 0x6d, 0x9a, 0xf6, 0x57, 0xfe, 0xa4, 0x35, 0x50, 0xa0, 0x48, 0xfe, + 0x05, 0x41, 0x60, 0x78, 0x15, 0x03, 0x75, 0x5b, 0xb7, 0x71, 0x5b, 0x17, 0x30, 0xe0, 0x3f, 0xc5, + 0x7d, 0x0d, 0x67, 0x86, 0x43, 0x0e, 0x65, 0xc0, 0x4e, 0x7f, 0xf8, 0xd7, 0x6a, 0xce, 0x3d, 0xdf, + 0x77, 0xcf, 0x9c, 0x7b, 0xee, 0x39, 0xe7, 0xde, 0xe1, 0xc2, 0x4f, 0x1e, 0x84, 0x93, 0x75, 0xcb, + 0xaa, 0x37, 0xf0, 0x42, 0xcb, 0xb6, 0x5c, 0x6b, 0xaf, 0xbd, 0xbf, 0x50, 0xc3, 0x8e, 0x6e, 0x1b, + 0x2d, 0xd7, 0xb2, 0xe7, 0xa9, 0x0c, 0x8d, 0x31, 0x8d, 0x79, 0xa1, 0x31, 0xbb, 0x01, 0xe3, 0x97, + 0x8c, 0x06, 0x5e, 0xf1, 0x14, 0xab, 0xd8, 0x45, 0x17, 0x20, 0xb5, 0x6f, 0x34, 0x70, 0x51, 0x3a, + 0x99, 0x9c, 0xcb, 0x2d, 0xde, 0x36, 0x1f, 0x02, 0xcd, 0x07, 0x11, 0xdb, 0x44, 0xac, 0x50, 0xc4, + 0xec, 0xdb, 0x29, 0x98, 0x88, 0x18, 0x45, 0x08, 0x52, 0xa6, 0xd6, 0x24, 0x8c, 0xd2, 0x5c, 0x56, + 0xa1, 0x7f, 0xa3, 0x22, 0x8c, 0xb4, 0x34, 0xfd, 0x8a, 0x56, 0xc7, 0xc5, 0x04, 0x15, 0x8b, 0x47, + 0x34, 0x0d, 0x50, 0xc3, 0x2d, 0x6c, 0xd6, 0xb0, 0xa9, 0x1f, 0x16, 0x93, 0x27, 0x93, 0x73, 0x59, + 0xc5, 0x27, 0x41, 0x77, 0xc1, 0x78, 0xab, 0xbd, 0xd7, 0x30, 0x74, 0xd5, 0xa7, 0x06, 0x27, 0x93, + 0x73, 0x69, 0x45, 0x66, 0x03, 0x2b, 0x1d, 0xe5, 0xd3, 0x30, 0xf6, 0x3c, 0xd6, 0xae, 0xf8, 0x55, + 0x73, 0x54, 0xb5, 0x40, 0xc4, 0x3e, 0xc5, 0x65, 0xc8, 0x37, 0xb1, 0xe3, 0x68, 0x75, 0xac, 0xba, + 0x87, 0x2d, 0x5c, 0x4c, 0xd1, 0xb7, 0x3f, 0xd9, 0xf5, 0xf6, 0xe1, 0x37, 0xcf, 0x71, 0xd4, 0xce, + 0x61, 0x0b, 0xa3, 0x32, 0x64, 0xb1, 0xd9, 0x6e, 0x32, 0x86, 0x74, 0x0f, 0xff, 0x55, 0xcc, 0x76, + 0x33, 0xcc, 0x92, 0x21, 0x30, 0x4e, 0x31, 0xe2, 0x60, 0xfb, 0xaa, 0xa1, 0xe3, 0xe2, 0x30, 0x25, + 0x38, 0xdd, 0x45, 0x50, 0x65, 0xe3, 0x61, 0x0e, 0x81, 0x43, 0xcb, 0x90, 0xc5, 0x2f, 0xb8, 0xd8, + 0x74, 0x0c, 0xcb, 0x2c, 0x8e, 0x50, 0x92, 0xdb, 0x23, 0x56, 0x11, 0x37, 0x6a, 0x61, 0x8a, 0x0e, + 0x0e, 0x9d, 0x87, 0x11, 0xab, 0xe5, 0x1a, 0x96, 0xe9, 0x14, 0x33, 0x27, 0xa5, 0xb9, 0xdc, 0xe2, + 0x67, 0x22, 0x03, 0x61, 0x8b, 0xe9, 0x28, 0x42, 0x19, 0xad, 0x81, 0xec, 0x58, 0x6d, 0x5b, 0xc7, + 0xaa, 0x6e, 0xd5, 0xb0, 0x6a, 0x98, 0xfb, 0x56, 0x31, 0x4b, 0x09, 0x66, 0xba, 0x5f, 0x84, 0x2a, + 0x2e, 0x5b, 0x35, 0xbc, 0x66, 0xee, 0x5b, 0x4a, 0xc1, 0x09, 0x3c, 0xa3, 0x13, 0x30, 0xec, 0x1c, + 0x9a, 0xae, 0xf6, 0x42, 0x31, 0x4f, 0x23, 0x84, 0x3f, 0xcd, 0xfe, 0xdd, 0x30, 0x8c, 0x0d, 0x12, + 0x62, 0x17, 0x21, 0xbd, 0x4f, 0xde, 0xb2, 0x98, 0x38, 0x8e, 0x0f, 0x18, 0x26, 0xe8, 0xc4, 0xe1, + 0x8f, 0xe8, 0xc4, 0x32, 0xe4, 0x4c, 0xec, 0xb8, 0xb8, 0xc6, 0x22, 0x22, 0x39, 0x60, 0x4c, 0x01, + 0x03, 0x75, 0x87, 0x54, 0xea, 0x23, 0x85, 0xd4, 0x93, 0x30, 0xe6, 0x99, 0xa4, 0xda, 0x9a, 0x59, + 0x17, 0xb1, 0xb9, 0x10, 0x67, 0xc9, 0x7c, 0x45, 0xe0, 0x14, 0x02, 0x53, 0x0a, 0x38, 0xf0, 0x8c, + 0x56, 0x00, 0x2c, 0x13, 0x5b, 0xfb, 0x6a, 0x0d, 0xeb, 0x8d, 0x62, 0xa6, 0x87, 0x97, 0xb6, 0x88, + 0x4a, 0x97, 0x97, 0x2c, 0x26, 0xd5, 0x1b, 0xe8, 0xc1, 0x4e, 0xa8, 0x8d, 0xf4, 0x88, 0x94, 0x0d, + 0xb6, 0xc9, 0xba, 0xa2, 0x6d, 0x17, 0x0a, 0x36, 0x26, 0x71, 0x8f, 0x6b, 0xfc, 0xcd, 0xb2, 0xd4, + 0x88, 0xf9, 0xd8, 0x37, 0x53, 0x38, 0x8c, 0xbd, 0xd8, 0xa8, 0xed, 0x7f, 0x44, 0xb7, 0x82, 0x27, + 0x50, 0x69, 0x58, 0x01, 0xcd, 0x42, 0x79, 0x21, 0xdc, 0xd4, 0x9a, 0x78, 0xea, 0x45, 0x28, 0x04, + 0xdd, 0x83, 0x26, 0x21, 0xed, 0xb8, 0x9a, 0xed, 0xd2, 0x28, 0x4c, 0x2b, 0xec, 0x01, 0xc9, 0x90, + 0xc4, 0x66, 0x8d, 0x66, 0xb9, 0xb4, 0x42, 0xfe, 0x44, 0x3f, 0xd3, 0x79, 0xe1, 0x24, 0x7d, 0xe1, + 0x3b, 0xba, 0x57, 0x34, 0xc0, 0x1c, 0x7e, 0xef, 0xa9, 0x07, 0x60, 0x34, 0xf0, 0x02, 0x83, 0x4e, + 0x3d, 0xfb, 0x73, 0x70, 0x43, 0x24, 0x35, 0x7a, 0x12, 0x26, 0xdb, 0xa6, 0x61, 0xba, 0xd8, 0x6e, + 0xd9, 0x98, 0x44, 0x2c, 0x9b, 0xaa, 0xf8, 0x2f, 0x23, 0x3d, 0x62, 0x6e, 0xd7, 0xaf, 0xcd, 0x58, + 0x94, 0x89, 0x76, 0xb7, 0xf0, 0x4c, 0x36, 0xf3, 0xce, 0x88, 0x7c, 0xed, 0xda, 0xb5, 0x6b, 0x89, + 0xd9, 0x97, 0x87, 0x61, 0x32, 0x6a, 0xcf, 0x44, 0x6e, 0xdf, 0x13, 0x30, 0x6c, 0xb6, 0x9b, 0x7b, + 0xd8, 0xa6, 0x4e, 0x4a, 0x2b, 0xfc, 0x09, 0x95, 0x21, 0xdd, 0xd0, 0xf6, 0x70, 0xa3, 0x98, 0x3a, + 0x29, 0xcd, 0x15, 0x16, 0xef, 0x1a, 0x68, 0x57, 0xce, 0xaf, 0x13, 0x88, 0xc2, 0x90, 0xe8, 0x61, + 0x48, 0xf1, 0x14, 0x4d, 0x18, 0xce, 0x0c, 0xc6, 0x40, 0xf6, 0x92, 0x42, 0x71, 0xe8, 0x66, 0xc8, + 0x92, 0x7f, 0x59, 0x6c, 0x0c, 0x53, 0x9b, 0x33, 0x44, 0x40, 0xe2, 0x02, 0x4d, 0x41, 0x86, 0x6e, + 0x93, 0x1a, 0x16, 0xa5, 0xcd, 0x7b, 0x26, 0x81, 0x55, 0xc3, 0xfb, 0x5a, 0xbb, 0xe1, 0xaa, 0x57, + 0xb5, 0x46, 0x1b, 0xd3, 0x80, 0xcf, 0x2a, 0x79, 0x2e, 0x7c, 0x9c, 0xc8, 0xd0, 0x0c, 0xe4, 0xd8, + 0xae, 0x32, 0xcc, 0x1a, 0x7e, 0x81, 0x66, 0xcf, 0xb4, 0xc2, 0x36, 0xda, 0x1a, 0x91, 0x90, 0xe9, + 0x9f, 0x75, 0x2c, 0x53, 0x84, 0x26, 0x9d, 0x82, 0x08, 0xe8, 0xf4, 0x0f, 0x84, 0x13, 0xf7, 0x2d, + 0xd1, 0xaf, 0x17, 0x8e, 0xa9, 0xd9, 0x6f, 0x25, 0x20, 0x45, 0xf3, 0xc5, 0x18, 0xe4, 0x76, 0x9e, + 0xda, 0xae, 0xa8, 0x2b, 0x5b, 0xbb, 0x4b, 0xeb, 0x15, 0x59, 0x42, 0x05, 0x00, 0x2a, 0xb8, 0xb4, + 0xbe, 0x55, 0xde, 0x91, 0x13, 0xde, 0xf3, 0xda, 0xe6, 0xce, 0xf9, 0xb3, 0x72, 0xd2, 0x03, 0xec, + 0x32, 0x41, 0xca, 0xaf, 0x70, 0xff, 0xa2, 0x9c, 0x46, 0x32, 0xe4, 0x19, 0xc1, 0xda, 0x93, 0x95, + 0x95, 0xf3, 0x67, 0xe5, 0xe1, 0xa0, 0xe4, 0xfe, 0x45, 0x79, 0x04, 0x8d, 0x42, 0x96, 0x4a, 0x96, + 0xb6, 0xb6, 0xd6, 0xe5, 0x8c, 0xc7, 0x59, 0xdd, 0x51, 0xd6, 0x36, 0x57, 0xe5, 0xac, 0xc7, 0xb9, + 0xaa, 0x6c, 0xed, 0x6e, 0xcb, 0xe0, 0x31, 0x6c, 0x54, 0xaa, 0xd5, 0xf2, 0x6a, 0x45, 0xce, 0x79, + 0x1a, 0x4b, 0x4f, 0xed, 0x54, 0xaa, 0x72, 0x3e, 0x60, 0xd6, 0xfd, 0x8b, 0xf2, 0xa8, 0x37, 0x45, + 0x65, 0x73, 0x77, 0x43, 0x2e, 0xa0, 0x71, 0x18, 0x65, 0x53, 0x08, 0x23, 0xc6, 0x42, 0xa2, 0xf3, + 0x67, 0x65, 0xb9, 0x63, 0x08, 0x63, 0x19, 0x0f, 0x08, 0xce, 0x9f, 0x95, 0xd1, 0xec, 0x32, 0xa4, + 0x69, 0x74, 0x21, 0x04, 0x85, 0xf5, 0xf2, 0x52, 0x65, 0x5d, 0xdd, 0xda, 0xde, 0x59, 0xdb, 0xda, + 0x2c, 0xaf, 0xcb, 0x52, 0x47, 0xa6, 0x54, 0x3e, 0xb7, 0xbb, 0xa6, 0x54, 0x56, 0xe4, 0x84, 0x5f, + 0xb6, 0x5d, 0x29, 0xef, 0x54, 0x56, 0xe4, 0xe4, 0xac, 0x0e, 0x93, 0x51, 0x79, 0x32, 0x72, 0x67, + 0xf8, 0x96, 0x38, 0xd1, 0x63, 0x89, 0x29, 0x57, 0xd7, 0x12, 0xff, 0x38, 0x01, 0x13, 0x11, 0xb5, + 0x22, 0x72, 0x92, 0x47, 0x20, 0xcd, 0x42, 0x94, 0x55, 0xcf, 0x3b, 0x23, 0x8b, 0x0e, 0x0d, 0xd8, + 0xae, 0x0a, 0x4a, 0x71, 0xfe, 0x0e, 0x22, 0xd9, 0xa3, 0x83, 0x20, 0x14, 0x5d, 0x39, 0xfd, 0x99, + 0xae, 0x9c, 0xce, 0xca, 0xde, 0xf9, 0x41, 0xca, 0x1e, 0x95, 0x1d, 0x2f, 0xb7, 0xa7, 0x23, 0x72, + 0xfb, 0x45, 0x18, 0xef, 0x22, 0x1a, 0x38, 0xc7, 0xbe, 0x24, 0x41, 0xb1, 0x97, 0x73, 0x62, 0x32, + 0x5d, 0x22, 0x90, 0xe9, 0x2e, 0x86, 0x3d, 0x78, 0xaa, 0xf7, 0x22, 0x74, 0xad, 0xf5, 0xeb, 0x12, + 0x9c, 0x88, 0xee, 0x14, 0x23, 0x6d, 0x78, 0x18, 0x86, 0x9b, 0xd8, 0x3d, 0xb0, 0x44, 0xb7, 0x74, + 0x47, 0x44, 0x0d, 0x26, 0xc3, 0xe1, 0xc5, 0xe6, 0x28, 0x7f, 0x11, 0x4f, 0xf6, 0x6a, 0xf7, 0x98, + 0x35, 0x5d, 0x96, 0x7e, 0x21, 0x01, 0x37, 0x44, 0x92, 0x47, 0x1a, 0x7a, 0x0b, 0x80, 0x61, 0xb6, + 0xda, 0x2e, 0xeb, 0x88, 0x58, 0x82, 0xcd, 0x52, 0x09, 0x4d, 0x5e, 0x24, 0x79, 0xb6, 0x5d, 0x6f, + 0x3c, 0x49, 0xc7, 0x81, 0x89, 0xa8, 0xc2, 0x85, 0x8e, 0xa1, 0x29, 0x6a, 0xe8, 0x74, 0x8f, 0x37, + 0xed, 0x0a, 0xcc, 0x7b, 0x41, 0xd6, 0x1b, 0x06, 0x36, 0x5d, 0xd5, 0x71, 0x6d, 0xac, 0x35, 0x0d, + 0xb3, 0x4e, 0x2b, 0x48, 0xa6, 0x94, 0xde, 0xd7, 0x1a, 0x0e, 0x56, 0xc6, 0xd8, 0x70, 0x55, 0x8c, + 0x12, 0x04, 0x0d, 0x20, 0xdb, 0x87, 0x18, 0x0e, 0x20, 0xd8, 0xb0, 0x87, 0x98, 0xfd, 0x66, 0x06, + 0x72, 0xbe, 0xbe, 0x1a, 0x9d, 0x82, 0xfc, 0xb3, 0xda, 0x55, 0x4d, 0x15, 0x67, 0x25, 0xe6, 0x89, + 0x1c, 0x91, 0x6d, 0xf3, 0xf3, 0xd2, 0xbd, 0x30, 0x49, 0x55, 0xac, 0xb6, 0x8b, 0x6d, 0x55, 0x6f, + 0x68, 0x8e, 0x43, 0x9d, 0x96, 0xa1, 0xaa, 0x88, 0x8c, 0x6d, 0x91, 0xa1, 0x65, 0x31, 0x82, 0xce, + 0xc1, 0x04, 0x45, 0x34, 0xdb, 0x0d, 0xd7, 0x68, 0x35, 0xb0, 0x4a, 0x4e, 0x6f, 0x0e, 0xad, 0x24, + 0x9e, 0x65, 0xe3, 0x44, 0x63, 0x83, 0x2b, 0x10, 0x8b, 0x1c, 0xb4, 0x02, 0xb7, 0x50, 0x58, 0x1d, + 0x9b, 0xd8, 0xd6, 0x5c, 0xac, 0xe2, 0xe7, 0xda, 0x5a, 0xc3, 0x51, 0x35, 0xb3, 0xa6, 0x1e, 0x68, + 0xce, 0x41, 0x71, 0x92, 0x10, 0x2c, 0x25, 0x8a, 0x92, 0x72, 0x13, 0x51, 0x5c, 0xe5, 0x7a, 0x15, + 0xaa, 0x56, 0x36, 0x6b, 0x97, 0x35, 0xe7, 0x00, 0x95, 0xe0, 0x04, 0x65, 0x71, 0x5c, 0xdb, 0x30, + 0xeb, 0xaa, 0x7e, 0x80, 0xf5, 0x2b, 0x6a, 0xdb, 0xdd, 0xbf, 0x50, 0xbc, 0xd9, 0x3f, 0x3f, 0xb5, + 0xb0, 0x4a, 0x75, 0x96, 0x89, 0xca, 0xae, 0xbb, 0x7f, 0x01, 0x55, 0x21, 0x4f, 0x16, 0xa3, 0x69, + 0xbc, 0x88, 0xd5, 0x7d, 0xcb, 0xa6, 0xa5, 0xb1, 0x10, 0x91, 0x9a, 0x7c, 0x1e, 0x9c, 0xdf, 0xe2, + 0x80, 0x0d, 0xab, 0x86, 0x4b, 0xe9, 0xea, 0x76, 0xa5, 0xb2, 0xa2, 0xe4, 0x04, 0xcb, 0x25, 0xcb, + 0x26, 0x01, 0x55, 0xb7, 0x3c, 0x07, 0xe7, 0x58, 0x40, 0xd5, 0x2d, 0xe1, 0xde, 0x73, 0x30, 0xa1, + 0xeb, 0xec, 0x9d, 0x0d, 0x5d, 0xe5, 0x67, 0x2c, 0xa7, 0x28, 0x07, 0x9c, 0xa5, 0xeb, 0xab, 0x4c, + 0x81, 0xc7, 0xb8, 0x83, 0x1e, 0x84, 0x1b, 0x3a, 0xce, 0xf2, 0x03, 0xc7, 0xbb, 0xde, 0x32, 0x0c, + 0x3d, 0x07, 0x13, 0xad, 0xc3, 0x6e, 0x20, 0x0a, 0xcc, 0xd8, 0x3a, 0x0c, 0xc3, 0x1e, 0x80, 0xc9, + 0xd6, 0x41, 0xab, 0x1b, 0x77, 0xc6, 0x8f, 0x43, 0xad, 0x83, 0x56, 0x18, 0x78, 0x3b, 0x3d, 0x70, + 0xdb, 0x58, 0xd7, 0x5c, 0x5c, 0x2b, 0xde, 0xe8, 0x57, 0xf7, 0x0d, 0xa0, 0x05, 0x90, 0x75, 0x5d, + 0xc5, 0xa6, 0xb6, 0xd7, 0xc0, 0xaa, 0x66, 0x63, 0x53, 0x73, 0x8a, 0x33, 0x7e, 0xe5, 0x82, 0xae, + 0x57, 0xe8, 0x68, 0x99, 0x0e, 0xa2, 0x33, 0x30, 0x6e, 0xed, 0x3d, 0xab, 0xb3, 0x90, 0x54, 0x5b, + 0x36, 0xde, 0x37, 0x5e, 0x28, 0xde, 0x46, 0xfd, 0x3b, 0x46, 0x06, 0x68, 0x40, 0x6e, 0x53, 0x31, + 0xba, 0x13, 0x64, 0xdd, 0x39, 0xd0, 0xec, 0x16, 0xcd, 0xc9, 0x4e, 0x4b, 0xd3, 0x71, 0xf1, 0x76, + 0xa6, 0xca, 0xe4, 0x9b, 0x42, 0x4c, 0xb6, 0x84, 0xf3, 0xbc, 0xb1, 0xef, 0x0a, 0xc6, 0xd3, 0x6c, + 0x4b, 0x50, 0x19, 0x67, 0x9b, 0x03, 0x99, 0xb8, 0x22, 0x30, 0xf1, 0x1c, 0x55, 0x2b, 0xb4, 0x0e, + 0x5a, 0xfe, 0x79, 0x6f, 0x85, 0x51, 0xa2, 0xd9, 0x99, 0xf4, 0x4e, 0xd6, 0x90, 0xb5, 0x0e, 0x7c, + 0x33, 0x7e, 0x6c, 0xbd, 0xf1, 0x6c, 0x09, 0xf2, 0xfe, 0xf8, 0x44, 0x59, 0x60, 0x11, 0x2a, 0x4b, + 0xa4, 0x59, 0x59, 0xde, 0x5a, 0x21, 0x6d, 0xc6, 0xd3, 0x15, 0x39, 0x41, 0xda, 0x9d, 0xf5, 0xb5, + 0x9d, 0x8a, 0xaa, 0xec, 0x6e, 0xee, 0xac, 0x6d, 0x54, 0xe4, 0xa4, 0xbf, 0xaf, 0xfe, 0x6e, 0x02, + 0x0a, 0xc1, 0x23, 0x12, 0xfa, 0x2c, 0xdc, 0x28, 0xee, 0x33, 0x1c, 0xec, 0xaa, 0xcf, 0x1b, 0x36, + 0xdd, 0x32, 0x4d, 0x8d, 0x95, 0x2f, 0x6f, 0xd1, 0x26, 0xb9, 0x56, 0x15, 0xbb, 0x4f, 0x18, 0x36, + 0xd9, 0x10, 0x4d, 0xcd, 0x45, 0xeb, 0x30, 0x63, 0x5a, 0xaa, 0xe3, 0x6a, 0x66, 0x4d, 0xb3, 0x6b, + 0x6a, 0xe7, 0x26, 0x49, 0xd5, 0x74, 0x1d, 0x3b, 0x8e, 0xc5, 0x4a, 0x95, 0xc7, 0xf2, 0x19, 0xd3, + 0xaa, 0x72, 0xe5, 0x4e, 0x0e, 0x2f, 0x73, 0xd5, 0x50, 0x80, 0x25, 0x7b, 0x05, 0xd8, 0xcd, 0x90, + 0x6d, 0x6a, 0x2d, 0x15, 0x9b, 0xae, 0x7d, 0x48, 0x1b, 0xe3, 0x8c, 0x92, 0x69, 0x6a, 0xad, 0x0a, + 0x79, 0xfe, 0x64, 0xce, 0x27, 0x3f, 0x4a, 0x42, 0xde, 0xdf, 0x1c, 0x93, 0xb3, 0x86, 0x4e, 0xeb, + 0x88, 0x44, 0x33, 0xcd, 0xad, 0x7d, 0x5b, 0xe9, 0xf9, 0x65, 0x52, 0x60, 0x4a, 0xc3, 0xac, 0x65, + 0x55, 0x18, 0x92, 0x14, 0x77, 0x92, 0x5b, 0x30, 0x6b, 0x11, 0x32, 0x0a, 0x7f, 0x42, 0xab, 0x30, + 0xfc, 0xac, 0x43, 0xb9, 0x87, 0x29, 0xf7, 0x6d, 0xfd, 0xb9, 0x1f, 0xad, 0x52, 0xf2, 0xec, 0xa3, + 0x55, 0x75, 0x73, 0x4b, 0xd9, 0x28, 0xaf, 0x2b, 0x1c, 0x8e, 0x6e, 0x82, 0x54, 0x43, 0x7b, 0xf1, + 0x30, 0x58, 0x8a, 0xa8, 0x68, 0x50, 0xc7, 0xdf, 0x04, 0xa9, 0xe7, 0xb1, 0x76, 0x25, 0x58, 0x00, + 0xa8, 0xe8, 0x63, 0x0c, 0xfd, 0x05, 0x48, 0x53, 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x08, 0x65, + 0x20, 0xb5, 0xbc, 0xa5, 0x90, 0xf0, 0x97, 0x21, 0xcf, 0xa4, 0xea, 0xf6, 0x5a, 0x65, 0xb9, 0x22, + 0x27, 0x66, 0xcf, 0xc1, 0x30, 0x73, 0x02, 0xd9, 0x1a, 0x9e, 0x1b, 0xe4, 0x21, 0xfe, 0xc8, 0x39, + 0x24, 0x31, 0xba, 0xbb, 0xb1, 0x54, 0x51, 0xe4, 0x84, 0x7f, 0x79, 0x1d, 0xc8, 0xfb, 0xfb, 0xe2, + 0x4f, 0x26, 0xa6, 0xfe, 0x5e, 0x82, 0x9c, 0xaf, 0xcf, 0x25, 0x0d, 0x8a, 0xd6, 0x68, 0x58, 0xcf, + 0xab, 0x5a, 0xc3, 0xd0, 0x1c, 0x1e, 0x14, 0x40, 0x45, 0x65, 0x22, 0x19, 0x74, 0xd1, 0x3e, 0x11, + 0xe3, 0x5f, 0x93, 0x40, 0x0e, 0xb7, 0x98, 0x21, 0x03, 0xa5, 0x9f, 0xaa, 0x81, 0xaf, 0x4a, 0x50, + 0x08, 0xf6, 0x95, 0x21, 0xf3, 0x4e, 0xfd, 0x54, 0xcd, 0x7b, 0x2b, 0x01, 0xa3, 0x81, 0x6e, 0x72, + 0x50, 0xeb, 0x9e, 0x83, 0x71, 0xa3, 0x86, 0x9b, 0x2d, 0xcb, 0xc5, 0xa6, 0x7e, 0xa8, 0x36, 0xf0, + 0x55, 0xdc, 0x28, 0xce, 0xd2, 0x44, 0xb1, 0xd0, 0xbf, 0x5f, 0x9d, 0x5f, 0xeb, 0xe0, 0xd6, 0x09, + 0xac, 0x34, 0xb1, 0xb6, 0x52, 0xd9, 0xd8, 0xde, 0xda, 0xa9, 0x6c, 0x2e, 0x3f, 0xa5, 0xee, 0x6e, + 0x3e, 0xb6, 0xb9, 0xf5, 0xc4, 0xa6, 0x22, 0x1b, 0x21, 0xb5, 0x8f, 0x71, 0xab, 0x6f, 0x83, 0x1c, + 0x36, 0x0a, 0xdd, 0x08, 0x51, 0x66, 0xc9, 0x43, 0x68, 0x02, 0xc6, 0x36, 0xb7, 0xd4, 0xea, 0xda, + 0x4a, 0x45, 0xad, 0x5c, 0xba, 0x54, 0x59, 0xde, 0xa9, 0xb2, 0x1b, 0x08, 0x4f, 0x7b, 0x27, 0xb8, + 0xa9, 0x5f, 0x49, 0xc2, 0x44, 0x84, 0x25, 0xa8, 0xcc, 0xcf, 0x0e, 0xec, 0x38, 0x73, 0xcf, 0x20, + 0xd6, 0xcf, 0x93, 0x92, 0xbf, 0xad, 0xd9, 0x2e, 0x3f, 0x6a, 0xdc, 0x09, 0xc4, 0x4b, 0xa6, 0x6b, + 0xec, 0x1b, 0xd8, 0xe6, 0x17, 0x36, 0xec, 0x40, 0x31, 0xd6, 0x91, 0xb3, 0x3b, 0x9b, 0xbb, 0x01, + 0xb5, 0x2c, 0xc7, 0x70, 0x8d, 0xab, 0x58, 0x35, 0x4c, 0x71, 0xbb, 0x43, 0x0e, 0x18, 0x29, 0x45, + 0x16, 0x23, 0x6b, 0xa6, 0xeb, 0x69, 0x9b, 0xb8, 0xae, 0x85, 0xb4, 0x49, 0x02, 0x4f, 0x2a, 0xb2, + 0x18, 0xf1, 0xb4, 0x4f, 0x41, 0xbe, 0x66, 0xb5, 0x49, 0xd7, 0xc5, 0xf4, 0x48, 0xbd, 0x90, 0x94, + 0x1c, 0x93, 0x79, 0x2a, 0xbc, 0x9f, 0xee, 0x5c, 0x2b, 0xe5, 0x95, 0x1c, 0x93, 0x31, 0x95, 0xd3, + 0x30, 0xa6, 0xd5, 0xeb, 0x36, 0x21, 0x17, 0x44, 0xec, 0x84, 0x50, 0xf0, 0xc4, 0x54, 0x71, 0xea, + 0x51, 0xc8, 0x08, 0x3f, 0x90, 0x92, 0x4c, 0x3c, 0xa1, 0xb6, 0xd8, 0xb1, 0x37, 0x31, 0x97, 0x55, + 0x32, 0xa6, 0x18, 0x3c, 0x05, 0x79, 0xc3, 0x51, 0x3b, 0xb7, 0xe4, 0x89, 0x93, 0x89, 0xb9, 0x8c, + 0x92, 0x33, 0x1c, 0xef, 0x86, 0x71, 0xf6, 0xf5, 0x04, 0x14, 0x82, 0xb7, 0xfc, 0x68, 0x05, 0x32, + 0x0d, 0x4b, 0xd7, 0x68, 0x68, 0xb1, 0x4f, 0x4c, 0x73, 0x31, 0x1f, 0x06, 0xe6, 0xd7, 0xb9, 0xbe, + 0xe2, 0x21, 0xa7, 0xfe, 0x59, 0x82, 0x8c, 0x10, 0xa3, 0x13, 0x90, 0x6a, 0x69, 0xee, 0x01, 0xa5, + 0x4b, 0x2f, 0x25, 0x64, 0x49, 0xa1, 0xcf, 0x44, 0xee, 0xb4, 0x34, 0x93, 0x86, 0x00, 0x97, 0x93, + 0x67, 0xb2, 0xae, 0x0d, 0xac, 0xd5, 0xe8, 0xf1, 0xc3, 0x6a, 0x36, 0xb1, 0xe9, 0x3a, 0x62, 0x5d, + 0xb9, 0x7c, 0x99, 0x8b, 0xd1, 0x5d, 0x30, 0xee, 0xda, 0x9a, 0xd1, 0x08, 0xe8, 0xa6, 0xa8, 0xae, + 0x2c, 0x06, 0x3c, 0xe5, 0x12, 0xdc, 0x24, 0x78, 0x6b, 0xd8, 0xd5, 0xf4, 0x03, 0x5c, 0xeb, 0x80, + 0x86, 0xe9, 0x35, 0xc3, 0x8d, 0x5c, 0x61, 0x85, 0x8f, 0x0b, 0xec, 0xec, 0xf7, 0x25, 0x18, 0x17, + 0x07, 0xa6, 0x9a, 0xe7, 0xac, 0x0d, 0x00, 0xcd, 0x34, 0x2d, 0xd7, 0xef, 0xae, 0xee, 0x50, 0xee, + 0xc2, 0xcd, 0x97, 0x3d, 0x90, 0xe2, 0x23, 0x98, 0x6a, 0x02, 0x74, 0x46, 0x7a, 0xba, 0x6d, 0x06, + 0x72, 0xfc, 0x13, 0x0e, 0xfd, 0x0e, 0xc8, 0x8e, 0xd8, 0xc0, 0x44, 0xe4, 0x64, 0x85, 0x26, 0x21, + 0xbd, 0x87, 0xeb, 0x86, 0xc9, 0x2f, 0x66, 0xd9, 0x83, 0xb8, 0x08, 0x49, 0x79, 0x17, 0x21, 0x4b, + 0x9f, 0x87, 0x09, 0xdd, 0x6a, 0x86, 0xcd, 0x5d, 0x92, 0x43, 0xc7, 0x7c, 0xe7, 0xb2, 0xf4, 0x34, + 0x74, 0x5a, 0xcc, 0x0f, 0x24, 0xe9, 0x0f, 0x13, 0xc9, 0xd5, 0xed, 0xa5, 0xaf, 0x25, 0xa6, 0x56, + 0x19, 0x74, 0x5b, 0xbc, 0xa9, 0x82, 0xf7, 0x1b, 0x58, 0x27, 0xd6, 0xc3, 0x17, 0x4f, 0xc3, 0x3d, + 0x75, 0xc3, 0x3d, 0x68, 0xef, 0xcd, 0xeb, 0x56, 0x73, 0xa1, 0x6e, 0xd5, 0xad, 0xce, 0xa7, 0x4f, + 0xf2, 0x44, 0x1f, 0xe8, 0x5f, 0xfc, 0xf3, 0x67, 0xd6, 0x93, 0x4e, 0xc5, 0x7e, 0x2b, 0x2d, 0x6d, + 0xc2, 0x04, 0x57, 0x56, 0xe9, 0xf7, 0x17, 0x76, 0x8a, 0x40, 0x7d, 0xef, 0xb0, 0x8a, 0xdf, 0x78, + 0x9b, 0x96, 0x6b, 0x65, 0x9c, 0x43, 0xc9, 0x18, 0x3b, 0x68, 0x94, 0x14, 0xb8, 0x21, 0xc0, 0xc7, + 0xb6, 0x26, 0xb6, 0x63, 0x18, 0xbf, 0xcb, 0x19, 0x27, 0x7c, 0x8c, 0x55, 0x0e, 0x2d, 0x2d, 0xc3, + 0xe8, 0x71, 0xb8, 0xfe, 0x81, 0x73, 0xe5, 0xb1, 0x9f, 0x64, 0x15, 0xc6, 0x28, 0x89, 0xde, 0x76, + 0x5c, 0xab, 0x49, 0xf3, 0x5e, 0x7f, 0x9a, 0x7f, 0x7c, 0x9b, 0xed, 0x95, 0x02, 0x81, 0x2d, 0x7b, + 0xa8, 0x52, 0x09, 0xe8, 0x27, 0xa7, 0x1a, 0xd6, 0x1b, 0x31, 0x0c, 0x6f, 0x70, 0x43, 0x3c, 0xfd, + 0xd2, 0xe3, 0x30, 0x49, 0xfe, 0xa6, 0x69, 0xc9, 0x6f, 0x49, 0xfc, 0x85, 0x57, 0xf1, 0xfb, 0x2f, + 0xb1, 0xed, 0x38, 0xe1, 0x11, 0xf8, 0x6c, 0xf2, 0xad, 0x62, 0x1d, 0xbb, 0x2e, 0xb6, 0x1d, 0x55, + 0x6b, 0x44, 0x99, 0xe7, 0xbb, 0x31, 0x28, 0x7e, 0xe9, 0xdd, 0xe0, 0x2a, 0xae, 0x32, 0x64, 0xb9, + 0xd1, 0x28, 0xed, 0xc2, 0x8d, 0x11, 0x51, 0x31, 0x00, 0xe7, 0x2b, 0x9c, 0x73, 0xb2, 0x2b, 0x32, + 0x08, 0xed, 0x36, 0x08, 0xb9, 0xb7, 0x96, 0x03, 0x70, 0xfe, 0x1e, 0xe7, 0x44, 0x1c, 0x2b, 0x96, + 0x94, 0x30, 0x3e, 0x0a, 0xe3, 0x57, 0xb1, 0xbd, 0x67, 0x39, 0xfc, 0x96, 0x66, 0x00, 0xba, 0x57, + 0x39, 0xdd, 0x18, 0x07, 0xd2, 0x6b, 0x1b, 0xc2, 0xf5, 0x20, 0x64, 0xf6, 0x35, 0x1d, 0x0f, 0x40, + 0xf1, 0x65, 0x4e, 0x31, 0x42, 0xf4, 0x09, 0xb4, 0x0c, 0xf9, 0xba, 0xc5, 0x2b, 0x53, 0x3c, 0xfc, + 0x35, 0x0e, 0xcf, 0x09, 0x0c, 0xa7, 0x68, 0x59, 0xad, 0x76, 0x83, 0x94, 0xad, 0x78, 0x8a, 0xdf, + 0x17, 0x14, 0x02, 0xc3, 0x29, 0x8e, 0xe1, 0xd6, 0x3f, 0x10, 0x14, 0x8e, 0xcf, 0x9f, 0x8f, 0x40, + 0xce, 0x32, 0x1b, 0x87, 0x96, 0x39, 0x88, 0x11, 0x5f, 0xe1, 0x0c, 0xc0, 0x21, 0x84, 0xe0, 0x22, + 0x64, 0x07, 0x5d, 0x88, 0x3f, 0x7a, 0x57, 0x6c, 0x0f, 0xb1, 0x02, 0xab, 0x30, 0x26, 0x12, 0x94, + 0x61, 0x99, 0x03, 0x50, 0xfc, 0x31, 0xa7, 0x28, 0xf8, 0x60, 0xfc, 0x35, 0x5c, 0xec, 0xb8, 0x75, + 0x3c, 0x08, 0xc9, 0xeb, 0xe2, 0x35, 0x38, 0x84, 0xbb, 0x72, 0x0f, 0x9b, 0xfa, 0xc1, 0x60, 0x0c, + 0x5f, 0x15, 0xae, 0x14, 0x18, 0x42, 0xb1, 0x0c, 0xa3, 0x4d, 0xcd, 0x76, 0x0e, 0xb4, 0xc6, 0x40, + 0xcb, 0xf1, 0x27, 0x9c, 0x23, 0xef, 0x81, 0xb8, 0x47, 0xda, 0xe6, 0x71, 0x68, 0xbe, 0x26, 0x3c, + 0xe2, 0x83, 0xf1, 0xad, 0xe7, 0xb8, 0xf4, 0x4a, 0xeb, 0x38, 0x6c, 0x7f, 0x2a, 0xb6, 0x1e, 0xc3, + 0x6e, 0xf8, 0x19, 0x2f, 0x42, 0xd6, 0x31, 0x5e, 0x1c, 0x88, 0xe6, 0xcf, 0xc4, 0x4a, 0x53, 0x00, + 0x01, 0x3f, 0x05, 0x37, 0x45, 0x96, 0x89, 0x01, 0xc8, 0xfe, 0x9c, 0x93, 0x9d, 0x88, 0x28, 0x15, + 0x3c, 0x25, 0x1c, 0x97, 0xf2, 0x2f, 0x44, 0x4a, 0xc0, 0x21, 0xae, 0x6d, 0x72, 0x56, 0x70, 0xb4, + 0xfd, 0xe3, 0x79, 0xed, 0x2f, 0x85, 0xd7, 0x18, 0x36, 0xe0, 0xb5, 0x1d, 0x38, 0xc1, 0x19, 0x8f, + 0xb7, 0xae, 0x5f, 0x17, 0x89, 0x95, 0xa1, 0x77, 0x83, 0xab, 0xfb, 0x79, 0x98, 0xf2, 0xdc, 0x29, + 0x9a, 0x52, 0x47, 0x6d, 0x6a, 0xad, 0x01, 0x98, 0xbf, 0xc1, 0x99, 0x45, 0xc6, 0xf7, 0xba, 0x5a, + 0x67, 0x43, 0x6b, 0x11, 0xf2, 0x27, 0xa1, 0x28, 0xc8, 0xdb, 0xa6, 0x8d, 0x75, 0xab, 0x6e, 0x1a, + 0x2f, 0xe2, 0xda, 0x00, 0xd4, 0x7f, 0x15, 0x5a, 0xaa, 0x5d, 0x1f, 0x9c, 0x30, 0xaf, 0x81, 0xec, + 0xf5, 0x2a, 0xaa, 0xd1, 0x6c, 0x59, 0xb6, 0x1b, 0xc3, 0xf8, 0x4d, 0xb1, 0x52, 0x1e, 0x6e, 0x8d, + 0xc2, 0x4a, 0x15, 0x28, 0xd0, 0xc7, 0x41, 0x43, 0xf2, 0xaf, 0x39, 0xd1, 0x68, 0x07, 0xc5, 0x13, + 0x87, 0x6e, 0x35, 0x5b, 0x9a, 0x3d, 0x48, 0xfe, 0xfb, 0x1b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, + 0xf7, 0xb0, 0x85, 0x49, 0xb5, 0x1f, 0x80, 0xe1, 0x5b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x0d, + 0xc3, 0x00, 0x14, 0x7f, 0x2b, 0x28, 0x04, 0x86, 0x50, 0x7c, 0xae, 0x53, 0x68, 0x6d, 0x5c, 0x37, + 0x1c, 0xd7, 0x66, 0xad, 0x70, 0x7f, 0xaa, 0x6f, 0xbf, 0x1b, 0x6c, 0xc2, 0x14, 0x1f, 0xb4, 0xf4, + 0x28, 0x8c, 0x85, 0x5a, 0x0c, 0x14, 0xf7, 0xfb, 0x95, 0xe2, 0x2f, 0xbc, 0xcf, 0x93, 0x51, 0xb0, + 0xc3, 0x28, 0xad, 0x93, 0x75, 0x0f, 0xf6, 0x01, 0xf1, 0x64, 0x2f, 0xbd, 0xef, 0x2d, 0x7d, 0xa0, + 0x0d, 0x28, 0x5d, 0x82, 0xd1, 0x40, 0x0f, 0x10, 0x4f, 0xf5, 0x8b, 0x9c, 0x2a, 0xef, 0x6f, 0x01, + 0x4a, 0xe7, 0x20, 0x45, 0xea, 0x79, 0x3c, 0xfc, 0x97, 0x38, 0x9c, 0xaa, 0x97, 0x1e, 0x82, 0x8c, + 0xa8, 0xe3, 0xf1, 0xd0, 0x5f, 0xe6, 0x50, 0x0f, 0x42, 0xe0, 0xa2, 0x86, 0xc7, 0xc3, 0x7f, 0x45, + 0xc0, 0x05, 0x84, 0xc0, 0x07, 0x77, 0xe1, 0x77, 0x7e, 0x35, 0xc5, 0xf3, 0xb0, 0xf0, 0xdd, 0x45, + 0x18, 0xe1, 0xc5, 0x3b, 0x1e, 0xfd, 0x05, 0x3e, 0xb9, 0x40, 0x94, 0x1e, 0x80, 0xf4, 0x80, 0x0e, + 0xff, 0x35, 0x0e, 0x65, 0xfa, 0xa5, 0x65, 0xc8, 0xf9, 0x0a, 0x76, 0x3c, 0xfc, 0xd7, 0x39, 0xdc, + 0x8f, 0x22, 0xa6, 0xf3, 0x82, 0x1d, 0x4f, 0xf0, 0x1b, 0xc2, 0x74, 0x8e, 0x20, 0x6e, 0x13, 0xb5, + 0x3a, 0x1e, 0xfd, 0x9b, 0xc2, 0xeb, 0x02, 0x52, 0x7a, 0x04, 0xb2, 0x5e, 0xfe, 0x8d, 0xc7, 0xff, + 0x16, 0xc7, 0x77, 0x30, 0xc4, 0x03, 0xbe, 0xfc, 0x1f, 0x4f, 0xf1, 0xdb, 0xc2, 0x03, 0x3e, 0x14, + 0xd9, 0x46, 0xe1, 0x9a, 0x1e, 0xcf, 0xf4, 0x3b, 0x62, 0x1b, 0x85, 0x4a, 0x3a, 0x59, 0x4d, 0x9a, + 0x06, 0xe3, 0x29, 0x7e, 0x57, 0xac, 0x26, 0xd5, 0x27, 0x66, 0x84, 0x8b, 0x64, 0x3c, 0xc7, 0x17, + 0x85, 0x19, 0xa1, 0x1a, 0x59, 0xda, 0x06, 0xd4, 0x5d, 0x20, 0xe3, 0xf9, 0x5e, 0xe6, 0x7c, 0xe3, + 0x5d, 0xf5, 0xb1, 0xf4, 0x04, 0x9c, 0x88, 0x2e, 0x8e, 0xf1, 0xac, 0x5f, 0x7a, 0x3f, 0x74, 0x9c, + 0xf1, 0xd7, 0xc6, 0xd2, 0x4e, 0x27, 0xcb, 0xfa, 0x0b, 0x63, 0x3c, 0xed, 0x2b, 0xef, 0x07, 0x13, + 0xad, 0xbf, 0x2e, 0x96, 0xca, 0x00, 0x9d, 0x9a, 0x14, 0xcf, 0xf5, 0x2a, 0xe7, 0xf2, 0x81, 0xc8, + 0xd6, 0xe0, 0x25, 0x29, 0x1e, 0xff, 0x65, 0xb1, 0x35, 0x38, 0x82, 0x6c, 0x0d, 0x51, 0x8d, 0xe2, + 0xd1, 0xaf, 0x89, 0xad, 0x21, 0x20, 0xa5, 0x8b, 0x90, 0x31, 0xdb, 0x8d, 0x06, 0x89, 0x2d, 0xd4, + 0xff, 0x27, 0x59, 0xc5, 0x7f, 0xfd, 0x90, 0x83, 0x05, 0xa0, 0x74, 0x0e, 0xd2, 0xb8, 0xb9, 0x87, + 0x6b, 0x71, 0xc8, 0x7f, 0xfb, 0x50, 0xe4, 0x13, 0xa2, 0x5d, 0x7a, 0x04, 0x80, 0x1d, 0xa6, 0xe9, + 0x87, 0xa2, 0x18, 0xec, 0xbf, 0x7f, 0xc8, 0x7f, 0x2c, 0xd1, 0x81, 0x74, 0x08, 0xd8, 0x4f, 0x2f, + 0xfa, 0x13, 0xbc, 0x1b, 0x24, 0xa0, 0x07, 0xf0, 0x07, 0x61, 0xe4, 0x59, 0xc7, 0x32, 0x5d, 0xad, + 0x1e, 0x87, 0xfe, 0x0f, 0x8e, 0x16, 0xfa, 0xc4, 0x61, 0x4d, 0xcb, 0xc6, 0xae, 0x56, 0x77, 0xe2, + 0xb0, 0xff, 0xc9, 0xb1, 0x1e, 0x80, 0x80, 0x75, 0xcd, 0x71, 0x07, 0x79, 0xef, 0x9f, 0x08, 0xb0, + 0x00, 0x10, 0xa3, 0xc9, 0xdf, 0x57, 0xf0, 0x61, 0x1c, 0xf6, 0x3d, 0x61, 0x34, 0xd7, 0x2f, 0x3d, + 0x04, 0x59, 0xf2, 0x27, 0xfb, 0x05, 0x54, 0x0c, 0xf8, 0xbf, 0x38, 0xb8, 0x83, 0x20, 0x33, 0x3b, + 0x6e, 0xcd, 0x35, 0xe2, 0x9d, 0xfd, 0xdf, 0x7c, 0xa5, 0x85, 0x7e, 0xa9, 0x0c, 0x39, 0xc7, 0xad, + 0xd5, 0xda, 0xbc, 0xa3, 0x89, 0x81, 0xff, 0xcf, 0x87, 0xde, 0x21, 0xd7, 0xc3, 0x2c, 0x55, 0xa2, + 0xef, 0xeb, 0x60, 0xd5, 0x5a, 0xb5, 0xd8, 0x4d, 0xdd, 0xd3, 0xb3, 0xf1, 0x57, 0x6e, 0xf0, 0xbf, + 0xf7, 0xc0, 0x8c, 0x6e, 0x35, 0xf7, 0x2c, 0x67, 0xc1, 0xc4, 0x86, 0x7b, 0x80, 0xed, 0x85, 0xa6, + 0xd6, 0x72, 0xe8, 0xe0, 0x22, 0xbf, 0x8b, 0xcb, 0xf1, 0x27, 0x32, 0x30, 0x75, 0xbc, 0x7b, 0xbc, + 0xd9, 0x5b, 0x60, 0xf4, 0x52, 0xc3, 0xd2, 0x5c, 0xc3, 0xac, 0x6f, 0x5b, 0x86, 0xe9, 0xa2, 0x3c, + 0x48, 0xfb, 0xf4, 0x3b, 0x94, 0xa4, 0x48, 0xfb, 0xb3, 0xff, 0x94, 0x86, 0x2c, 0xbb, 0x02, 0xda, + 0xd0, 0x5a, 0xe8, 0xe7, 0x21, 0xbf, 0xc9, 0x77, 0xd1, 0x7d, 0x8b, 0x17, 0x1c, 0xef, 0xca, 0xd9, + 0x37, 0xff, 0xbc, 0xa7, 0x3d, 0xef, 0x57, 0xa5, 0xdf, 0x9d, 0x97, 0xee, 0xfd, 0xe1, 0x9b, 0x33, + 0x77, 0xf7, 0xb4, 0x8f, 0x94, 0xcd, 0x05, 0x16, 0xee, 0xf3, 0xbb, 0x86, 0xe9, 0xde, 0xb7, 0x78, + 0x41, 0x09, 0xcc, 0x87, 0xae, 0x42, 0x86, 0x0f, 0x38, 0xfc, 0x53, 0xc4, 0x6d, 0x3d, 0xe6, 0x16, + 0x6a, 0x6c, 0xde, 0xb3, 0x6f, 0xbc, 0x39, 0x33, 0x74, 0xec, 0xb9, 0xbd, 0xb9, 0xd0, 0x73, 0x90, + 0x13, 0x76, 0xac, 0xd5, 0x1c, 0xfe, 0xd3, 0xf3, 0xd3, 0x31, 0xaf, 0xbd, 0x56, 0xe3, 0xb3, 0xdf, + 0xf1, 0xc3, 0x37, 0x67, 0x66, 0xfb, 0xce, 0x3c, 0xbf, 0xdb, 0x36, 0x6a, 0x8a, 0x7f, 0x0e, 0xf4, + 0x0c, 0x24, 0xc9, 0x54, 0xec, 0xd7, 0x7a, 0x33, 0x3d, 0xa6, 0xf2, 0xa6, 0x38, 0xc3, 0x5f, 0x70, + 0x90, 0x69, 0x08, 0xef, 0xd4, 0x23, 0x30, 0xde, 0xb5, 0x3c, 0x48, 0x86, 0xe4, 0x15, 0x7c, 0xc8, + 0x7f, 0x16, 0x45, 0xfe, 0x44, 0x93, 0x9d, 0xdf, 0x2d, 0x4a, 0x73, 0x79, 0xfe, 0x63, 0xc4, 0x52, + 0xe2, 0x82, 0x34, 0x75, 0x11, 0x46, 0x03, 0x3e, 0x3e, 0x16, 0xf8, 0x61, 0x90, 0xc3, 0x5e, 0x3a, + 0x16, 0xfe, 0x3c, 0x64, 0x3e, 0x0a, 0x6e, 0xf6, 0x07, 0x08, 0x46, 0xca, 0x8d, 0xc6, 0x86, 0xd6, + 0x72, 0xd0, 0x53, 0x30, 0xce, 0x9a, 0xfb, 0x1d, 0x6b, 0x85, 0x7e, 0xfc, 0xd9, 0xd0, 0x5a, 0x3c, + 0xa0, 0xef, 0x0a, 0xb8, 0x9b, 0x03, 0xe6, 0xbb, 0xb4, 0xe9, 0xfc, 0x4a, 0x37, 0x0b, 0x7a, 0x1c, + 0x64, 0x21, 0xa4, 0x7b, 0x8b, 0x30, 0xb3, 0x70, 0x3d, 0xd3, 0x97, 0x59, 0x28, 0x33, 0xe2, 0x2e, + 0x0e, 0xf4, 0x30, 0x64, 0xd6, 0x4c, 0xf7, 0xfe, 0x45, 0xc2, 0xc7, 0x62, 0x70, 0x36, 0x92, 0x4f, + 0x28, 0x31, 0x1e, 0x0f, 0xc3, 0xf1, 0xe7, 0xcf, 0x12, 0x7c, 0xaa, 0x3f, 0x9e, 0x2a, 0x75, 0xf0, + 0xf4, 0x11, 0x95, 0x21, 0x4b, 0xd6, 0x9c, 0x19, 0xc0, 0xfe, 0xd7, 0xc3, 0xad, 0x91, 0x04, 0x9e, + 0x16, 0x63, 0xe8, 0xa0, 0x04, 0x05, 0xb3, 0x61, 0x38, 0x86, 0xc2, 0x67, 0x44, 0x07, 0x45, 0x28, + 0xaa, 0x9e, 0x15, 0x23, 0x7d, 0x28, 0xaa, 0x21, 0x2b, 0xaa, 0x7e, 0x2b, 0xaa, 0x9e, 0x15, 0x99, + 0x18, 0x0a, 0xbf, 0x15, 0xde, 0x33, 0x5a, 0x01, 0xb8, 0x64, 0xbc, 0x80, 0x6b, 0xcc, 0x8c, 0x6c, + 0x44, 0x32, 0x12, 0x1c, 0x1d, 0x35, 0x46, 0xe2, 0xc3, 0xa1, 0x55, 0xc8, 0x55, 0xf7, 0x3b, 0x34, + 0xc0, 0xff, 0xd3, 0x47, 0xa4, 0x29, 0xfb, 0x21, 0x1e, 0x3f, 0xd2, 0x33, 0x87, 0xbd, 0x52, 0x2e, + 0xce, 0x1c, 0xdf, 0x3b, 0xf9, 0x70, 0x1d, 0x73, 0x18, 0x4d, 0x3e, 0xd6, 0x1c, 0x1f, 0x8f, 0x1f, + 0x89, 0x2e, 0xc2, 0xc8, 0x92, 0x65, 0x11, 0xcd, 0xe2, 0x28, 0x25, 0x39, 0x15, 0x49, 0xc2, 0x75, + 0x18, 0x81, 0x40, 0xd0, 0xd5, 0xa1, 0xa1, 0x4f, 0xe0, 0x85, 0x7e, 0xab, 0x23, 0xb4, 0xc4, 0xea, + 0x88, 0x67, 0xff, 0x0e, 0x5c, 0x3a, 0x74, 0x31, 0x69, 0xa4, 0x8b, 0x63, 0x03, 0xec, 0x40, 0xa1, + 0x1c, 0xda, 0x81, 0x42, 0x8c, 0xaa, 0x30, 0x26, 0x64, 0x15, 0xb3, 0x4d, 0x72, 0x70, 0x51, 0xe6, + 0xbf, 0xe8, 0xee, 0x47, 0xcb, 0x75, 0x19, 0x6b, 0x98, 0x01, 0x6d, 0x43, 0x41, 0x88, 0x36, 0x1c, + 0xfa, 0xd2, 0xe3, 0x11, 0x75, 0x35, 0xcc, 0xc9, 0x54, 0x19, 0x65, 0x08, 0x3f, 0xb5, 0x02, 0x27, + 0xa2, 0xb3, 0x55, 0x5c, 0xb6, 0x94, 0xfc, 0x59, 0x76, 0x19, 0x6e, 0x88, 0xcc, 0x4c, 0x71, 0x24, + 0x89, 0x50, 0x9d, 0x08, 0xa4, 0x23, 0x3f, 0x38, 0x1d, 0x01, 0x4e, 0x77, 0x83, 0x3b, 0x41, 0xe6, + 0x07, 0x27, 0x23, 0xc0, 0x49, 0x3f, 0xf8, 0xb3, 0x50, 0x08, 0xe6, 0x21, 0x3f, 0x7a, 0x34, 0x02, + 0x3d, 0x1a, 0x81, 0x8e, 0x9e, 0x3b, 0x15, 0x81, 0x4e, 0x85, 0xd0, 0xd5, 0x9e, 0x73, 0x8f, 0x47, + 0xa0, 0xc7, 0x23, 0xd0, 0xd1, 0x73, 0xa3, 0x08, 0x34, 0xf2, 0xa3, 0x1f, 0x82, 0xb1, 0x50, 0xca, + 0xf1, 0xc3, 0x47, 0x22, 0xe0, 0x23, 0xa1, 0xda, 0x1c, 0x4e, 0x35, 0x7e, 0xfc, 0x58, 0x04, 0x7e, + 0x2c, 0x6a, 0xfa, 0x68, 0xeb, 0x87, 0x23, 0xe0, 0xc3, 0x91, 0xd3, 0x47, 0xe3, 0xe5, 0x08, 0xbc, + 0xec, 0xc7, 0x97, 0x20, 0xef, 0xcf, 0x2a, 0x7e, 0x6c, 0x26, 0x02, 0x9b, 0x09, 0xfb, 0x3d, 0x90, + 0x52, 0xe2, 0x22, 0x3d, 0xdb, 0x63, 0xbb, 0x04, 0xd2, 0xc8, 0xb1, 0x3a, 0x9b, 0x27, 0x61, 0x32, + 0x2a, 0x69, 0x44, 0x70, 0x9c, 0xf1, 0x73, 0x14, 0x16, 0x27, 0x03, 0xc9, 0x82, 0xe2, 0xda, 0x4d, + 0x3f, 0xf3, 0x33, 0x30, 0x11, 0x91, 0x3a, 0x22, 0x88, 0xef, 0xf5, 0x13, 0xe7, 0x16, 0xa7, 0x02, + 0xc4, 0x81, 0xb3, 0x82, 0xbf, 0xb5, 0xfa, 0xd1, 0x04, 0x14, 0x78, 0x8a, 0xda, 0xb2, 0x6b, 0xd8, + 0xc6, 0x35, 0xf4, 0xb3, 0xbd, 0x3b, 0xac, 0xc5, 0xa8, 0xd4, 0xc6, 0x71, 0xc7, 0x68, 0xb4, 0x9e, + 0xe9, 0xd9, 0x68, 0xdd, 0x37, 0xc8, 0x04, 0x71, 0xfd, 0x56, 0xa5, 0xab, 0xdf, 0xba, 0xb3, 0x1f, + 0x6d, 0xaf, 0xb6, 0xab, 0xd2, 0xd5, 0x76, 0xc5, 0xd1, 0x44, 0x76, 0x5f, 0x97, 0xbb, 0xbb, 0xaf, + 0x33, 0xfd, 0x78, 0x7a, 0x37, 0x61, 0x97, 0xbb, 0x9b, 0xb0, 0x58, 0xa6, 0xe8, 0x5e, 0xec, 0x72, + 0x77, 0x2f, 0xd6, 0x97, 0xa9, 0x77, 0x4b, 0x76, 0xb9, 0xbb, 0x25, 0x8b, 0x65, 0x8a, 0xee, 0xcc, + 0x1e, 0x8b, 0xe8, 0xcc, 0xee, 0xea, 0x47, 0xd5, 0xaf, 0x41, 0xdb, 0x8c, 0x6a, 0xd0, 0xee, 0xee, + 0x6b, 0x58, 0xdf, 0x3e, 0xed, 0xb1, 0x88, 0x3e, 0x2d, 0xde, 0xb8, 0x1e, 0xed, 0xda, 0x66, 0x54, + 0xbb, 0x36, 0x80, 0x71, 0xbd, 0xba, 0xb6, 0xa5, 0x70, 0xd7, 0x36, 0xd7, 0x8f, 0x2b, 0xba, 0x79, + 0xbb, 0xdc, 0xdd, 0xbc, 0x9d, 0x89, 0xdf, 0x8b, 0x51, 0x3d, 0xdc, 0x33, 0x3d, 0x7b, 0xb8, 0x81, + 0x36, 0x77, 0x5c, 0x2b, 0xf7, 0x74, 0xaf, 0x56, 0xee, 0xde, 0x41, 0xd8, 0xfb, 0x77, 0x74, 0x4f, + 0xf4, 0xe8, 0xe8, 0x16, 0x06, 0xa1, 0xfe, 0xb4, 0xb1, 0xfb, 0xb4, 0xb1, 0xfb, 0xb4, 0xb1, 0xfb, + 0xb4, 0xb1, 0xfb, 0xff, 0xd1, 0xd8, 0x95, 0x52, 0x2f, 0x7f, 0x65, 0x46, 0x3a, 0x73, 0x0a, 0x46, + 0xf8, 0xd4, 0x68, 0x18, 0x12, 0x1b, 0x65, 0x79, 0x88, 0xfe, 0xbb, 0x24, 0x4b, 0xf4, 0xdf, 0x65, + 0x39, 0xb1, 0xb4, 0xfe, 0xc6, 0xf5, 0xe9, 0xa1, 0xef, 0x5d, 0x9f, 0x1e, 0xfa, 0xc1, 0xf5, 0xe9, + 0xa1, 0xb7, 0xae, 0x4f, 0x4b, 0xef, 0x5c, 0x9f, 0x96, 0xde, 0xbb, 0x3e, 0x2d, 0x7d, 0x70, 0x7d, + 0x5a, 0xba, 0x76, 0x34, 0x2d, 0x7d, 0xf5, 0x68, 0x5a, 0xfa, 0xfa, 0xd1, 0xb4, 0xf4, 0xed, 0xa3, + 0x69, 0xe9, 0x3b, 0x47, 0xd3, 0xd2, 0x1b, 0x47, 0xd3, 0x43, 0xdf, 0x3b, 0x9a, 0x1e, 0x7a, 0xeb, + 0x68, 0x5a, 0x7a, 0xe7, 0x68, 0x7a, 0xe8, 0xbd, 0xa3, 0x69, 0xe9, 0x83, 0xa3, 0xe9, 0xa1, 0x6b, + 0x3f, 0x9e, 0x1e, 0xfa, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x25, 0x90, 0x39, 0x84, 0x47, + 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -1355,15 +1360,15 @@ func (this *AllMapsOrdered) Equal(that interface{}) bool { } type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetF() *float64 } -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) Proto() proto.Message { return this } -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) TestProto() proto.Message { return NewFloatingPointFromFace(this) } @@ -1378,18 +1383,18 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { } type CustomMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid GetIds() map[string]github_com_gogo_protobuf_test.Uuid } -func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomMap) Proto() proto.Message { return this } -func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomMap) TestProto() proto.Message { return NewCustomMapFromFace(this) } @@ -1419,7 +1424,7 @@ func NewCustomMapFromFace(that CustomMapFace) *CustomMap { } type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -1439,11 +1444,11 @@ type AllMapsFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) Proto() proto.Message { return this } -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) TestProto() proto.Message { return NewAllMapsFromFace(this) } @@ -1538,7 +1543,7 @@ func NewAllMapsFromFace(that AllMapsFace) *AllMaps { } type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -1558,11 +1563,11 @@ type AllMapsOrderedFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) Proto() proto.Message { return this } -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) TestProto() proto.Message { return NewAllMapsOrderedFromFace(this) } @@ -1681,7 +1686,7 @@ func (this *CustomMap) GoString() string { for k := range this.Nullable128S { keysForNullable128S = append(keysForNullable128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + sortkeys.Strings(keysForNullable128S) mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForNullable128S { mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) @@ -1694,7 +1699,7 @@ func (this *CustomMap) GoString() string { for k := range this.Uint128S { keysForUint128S = append(keysForUint128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + sortkeys.Strings(keysForUint128S) mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForUint128S { mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) @@ -1707,7 +1712,7 @@ func (this *CustomMap) GoString() string { for k := range this.NullableIds { keysForNullableIds = append(keysForNullableIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + sortkeys.Strings(keysForNullableIds) mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForNullableIds { mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) @@ -1720,7 +1725,7 @@ func (this *CustomMap) GoString() string { for k := range this.Ids { keysForIds = append(keysForIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + sortkeys.Strings(keysForIds) mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForIds { mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) @@ -1745,7 +1750,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -1758,7 +1763,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -1771,7 +1776,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -1784,7 +1789,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -1797,7 +1802,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -1810,7 +1815,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -1823,7 +1828,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -1836,7 +1841,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -1849,7 +1854,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -1862,7 +1867,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -1875,7 +1880,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -1888,7 +1893,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -1901,7 +1906,7 @@ func (this *AllMaps) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -1914,7 +1919,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -1927,7 +1932,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -1940,7 +1945,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -1953,7 +1958,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -1978,7 +1983,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -1991,7 +1996,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2004,7 +2009,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2017,7 +2022,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2030,7 +2035,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2043,7 +2048,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2056,7 +2061,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2069,7 +2074,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2082,7 +2087,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -2095,7 +2100,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -2108,7 +2113,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -2121,7 +2126,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -2134,7 +2139,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -2147,7 +2152,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -2160,7 +2165,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -2173,7 +2178,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -2186,7 +2191,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -3079,7 +3084,7 @@ func (this *CustomMap) String() string { for k := range this.Nullable128S { keysForNullable128S = append(keysForNullable128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + sortkeys.Strings(keysForNullable128S) mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForNullable128S { mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) @@ -3089,7 +3094,7 @@ func (this *CustomMap) String() string { for k := range this.Uint128S { keysForUint128S = append(keysForUint128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + sortkeys.Strings(keysForUint128S) mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForUint128S { mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) @@ -3099,7 +3104,7 @@ func (this *CustomMap) String() string { for k := range this.NullableIds { keysForNullableIds = append(keysForNullableIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + sortkeys.Strings(keysForNullableIds) mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForNullableIds { mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) @@ -3109,7 +3114,7 @@ func (this *CustomMap) String() string { for k := range this.Ids { keysForIds = append(keysForIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + sortkeys.Strings(keysForIds) mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForIds { mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) @@ -3133,7 +3138,7 @@ func (this *AllMaps) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -3143,7 +3148,7 @@ func (this *AllMaps) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -3153,7 +3158,7 @@ func (this *AllMaps) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -3163,7 +3168,7 @@ func (this *AllMaps) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -3173,7 +3178,7 @@ func (this *AllMaps) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -3183,7 +3188,7 @@ func (this *AllMaps) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -3193,7 +3198,7 @@ func (this *AllMaps) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -3203,7 +3208,7 @@ func (this *AllMaps) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -3213,7 +3218,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -3223,7 +3228,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -3233,7 +3238,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -3243,7 +3248,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -3253,7 +3258,7 @@ func (this *AllMaps) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -3263,7 +3268,7 @@ func (this *AllMaps) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -3273,7 +3278,7 @@ func (this *AllMaps) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -3283,7 +3288,7 @@ func (this *AllMaps) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -3293,7 +3298,7 @@ func (this *AllMaps) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -3330,7 +3335,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -3340,7 +3345,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -3350,7 +3355,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -3360,7 +3365,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -3370,7 +3375,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -3380,7 +3385,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -3390,7 +3395,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -3400,7 +3405,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -3410,7 +3415,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -3420,7 +3425,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -3430,7 +3435,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -3440,7 +3445,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -3450,7 +3455,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -3460,7 +3465,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -3470,7 +3475,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -3480,7 +3485,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -3490,7 +3495,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2pb_test.go index 479c8ce7c..fc7b78285 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/neither/mapsproto2pb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/mapsproto2.proto -// DO NOT EDIT! /* Package proto2_maps is a generated protocol buffer package. @@ -17,13 +16,12 @@ It has these top-level messages: package proto2_maps import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -34,14 +32,14 @@ var _ = math.Inf func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -62,12 +60,12 @@ func TestFloatingPointProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 10000) for i := 0; i < 10000; i++ { @@ -75,7 +73,7 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -85,11 +83,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } @@ -99,7 +97,7 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -108,14 +106,14 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { func TestCustomMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -136,12 +134,12 @@ func TestCustomMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomMap, 10000) for i := 0; i < 10000; i++ { @@ -149,7 +147,7 @@ func BenchmarkCustomMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -159,11 +157,11 @@ func BenchmarkCustomMapProtoMarshal(b *testing.B) { } func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomMap(popr, false)) if err != nil { panic(err) } @@ -173,7 +171,7 @@ func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -182,14 +180,14 @@ func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -210,12 +208,12 @@ func TestAllMapsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 10000) for i := 0; i < 10000; i++ { @@ -223,7 +221,7 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -233,11 +231,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } @@ -247,7 +245,7 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -256,14 +254,14 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -284,12 +282,12 @@ func TestAllMapsOrderedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 10000) for i := 0; i < 10000; i++ { @@ -297,7 +295,7 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -307,11 +305,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } @@ -321,7 +319,7 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -330,15 +328,15 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { func TestFloatingPointJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -351,15 +349,15 @@ func TestFloatingPointJSON(t *testing.T) { } func TestCustomMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -372,15 +370,15 @@ func TestCustomMapJSON(t *testing.T) { } func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -393,15 +391,15 @@ func TestAllMapsJSON(t *testing.T) { } func TestAllMapsOrderedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -414,11 +412,11 @@ func TestAllMapsOrderedJSON(t *testing.T) { } func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -431,11 +429,11 @@ func TestFloatingPointProtoText(t *testing.T) { func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -448,11 +446,11 @@ func TestFloatingPointProtoCompactText(t *testing.T) { func TestCustomMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -465,11 +463,11 @@ func TestCustomMapProtoText(t *testing.T) { func TestCustomMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -482,11 +480,11 @@ func TestCustomMapProtoCompactText(t *testing.T) { func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -499,11 +497,11 @@ func TestAllMapsProtoText(t *testing.T) { func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -516,11 +514,11 @@ func TestAllMapsProtoCompactText(t *testing.T) { func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -533,11 +531,11 @@ func TestAllMapsOrderedProtoText(t *testing.T) { func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -552,14 +550,14 @@ func TestMapsproto2Description(t *testing.T) { Mapsproto2Description() } func TestFloatingPointVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -567,14 +565,14 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestCustomMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -582,14 +580,14 @@ func TestCustomMapVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -597,14 +595,14 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -612,7 +610,7 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -620,7 +618,7 @@ func TestFloatingPointFace(t *testing.T) { } } func TestCustomMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -628,7 +626,7 @@ func TestCustomMapFace(t *testing.T) { } } func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -636,7 +634,7 @@ func TestAllMapsFace(t *testing.T) { } } func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -644,63 +642,63 @@ func TestAllMapsOrderedFace(t *testing.T) { } } func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestFloatingPointSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -711,14 +709,14 @@ func TestFloatingPointSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 1000) for i := 0; i < 1000; i++ { @@ -733,10 +731,10 @@ func BenchmarkFloatingPointSize(b *testing.B) { func TestCustomMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -747,14 +745,14 @@ func TestCustomMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomMap, 1000) for i := 0; i < 1000; i++ { @@ -769,10 +767,10 @@ func BenchmarkCustomMapSize(b *testing.B) { func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -783,14 +781,14 @@ func TestAllMapsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 1000) for i := 0; i < 1000; i++ { @@ -805,10 +803,10 @@ func BenchmarkAllMapsSize(b *testing.B) { func TestAllMapsOrderedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -819,14 +817,14 @@ func TestAllMapsOrderedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 1000) for i := 0; i < 1000; i++ { @@ -840,7 +838,7 @@ func BenchmarkAllMapsOrderedSize(b *testing.B) { } func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -849,7 +847,7 @@ func TestFloatingPointStringer(t *testing.T) { } } func TestCustomMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -858,7 +856,7 @@ func TestCustomMapStringer(t *testing.T) { } } func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -867,7 +865,7 @@ func TestAllMapsStringer(t *testing.T) { } } func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go index e9ccaa873..b7435ca6d 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/mapsproto2.proto -// DO NOT EDIT! /* Package proto2_maps is a generated protocol buffer package. @@ -24,19 +23,19 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strconv "strconv" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" import io "io" +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -164,320 +163,326 @@ func init() { proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) } -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *FloatingPoint) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomMap) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMaps) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMapsOrdered) Description() (desc *descriptor.FileDescriptorSet) { return Mapsproto2Description() } -func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func Mapsproto2Description() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4578 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xbf, 0x86, 0x0f, 0x89, 0x3c, 0xa4, 0xa8, 0xd1, 0x95, 0xbc, 0xa6, 0xe5, 0x58, 0xbb, 0x2b, - 0xbf, 0xe4, 0xb5, 0x2d, 0xd9, 0xf2, 0xee, 0x7a, 0xcd, 0x8d, 0x6d, 0x50, 0x12, 0x57, 0x2b, 0x5b, - 0xaf, 0x0c, 0x25, 0x7b, 0xed, 0x3f, 0x8c, 0xf9, 0x8f, 0x86, 0x97, 0xd4, 0x78, 0xc9, 0x19, 0x7a, - 0x66, 0xb8, 0xb6, 0xfc, 0xa1, 0xd8, 0xc2, 0x7d, 0x20, 0x28, 0xfa, 0x2e, 0x50, 0xc7, 0x75, 0xdc, - 0x26, 0x40, 0xeb, 0x34, 0xe9, 0x23, 0xe9, 0x23, 0x0d, 0xfa, 0x29, 0x5f, 0xd2, 0x1a, 0x28, 0x50, - 0x24, 0xdf, 0x82, 0x20, 0x30, 0xbc, 0x8a, 0x81, 0xba, 0xad, 0xdb, 0xba, 0x8d, 0x81, 0xa6, 0xf0, - 0x97, 0xe2, 0xbe, 0x86, 0x33, 0xc3, 0x21, 0x87, 0x32, 0xe0, 0xa4, 0x1f, 0xfc, 0x49, 0x9a, 0x73, - 0xcf, 0xef, 0x77, 0xcf, 0x3d, 0xf7, 0xdc, 0x73, 0xce, 0x5c, 0x0e, 0xfc, 0xe8, 0x1c, 0x9c, 0x6a, - 0x58, 0x56, 0xa3, 0x89, 0x17, 0xdb, 0xb6, 0xe5, 0x5a, 0xfb, 0x9d, 0xfa, 0x62, 0x0d, 0x3b, 0xba, - 0x6d, 0xb4, 0x5d, 0xcb, 0x5e, 0xa0, 0x32, 0x34, 0xc1, 0x34, 0x16, 0x84, 0xc6, 0xdc, 0x26, 0x4c, - 0x5e, 0x32, 0x9a, 0x78, 0xd5, 0x53, 0xac, 0x62, 0x17, 0x5d, 0x80, 0x54, 0xdd, 0x68, 0xe2, 0xa2, - 0x74, 0x2a, 0x39, 0x9f, 0x5b, 0xba, 0x63, 0x21, 0x04, 0x5a, 0x08, 0x22, 0x76, 0x88, 0x58, 0xa1, - 0x88, 0xb9, 0x77, 0x53, 0x30, 0x15, 0x31, 0x8a, 0x10, 0xa4, 0x4c, 0xad, 0x45, 0x18, 0xa5, 0xf9, - 0xac, 0x42, 0xff, 0x47, 0x45, 0x18, 0x6b, 0x6b, 0xfa, 0x55, 0xad, 0x81, 0x8b, 0x09, 0x2a, 0x16, - 0x8f, 0x68, 0x16, 0xa0, 0x86, 0xdb, 0xd8, 0xac, 0x61, 0x53, 0x3f, 0x2c, 0x26, 0x4f, 0x25, 0xe7, - 0xb3, 0x8a, 0x4f, 0x82, 0xee, 0x85, 0xc9, 0x76, 0x67, 0xbf, 0x69, 0xe8, 0xaa, 0x4f, 0x0d, 0x4e, - 0x25, 0xe7, 0xd3, 0x8a, 0xcc, 0x06, 0x56, 0xbb, 0xca, 0x77, 0xc3, 0xc4, 0x8b, 0x58, 0xbb, 0xea, - 0x57, 0xcd, 0x51, 0xd5, 0x02, 0x11, 0xfb, 0x14, 0x57, 0x20, 0xdf, 0xc2, 0x8e, 0xa3, 0x35, 0xb0, - 0xea, 0x1e, 0xb6, 0x71, 0x31, 0x45, 0x57, 0x7f, 0xaa, 0x67, 0xf5, 0xe1, 0x95, 0xe7, 0x38, 0x6a, - 0xf7, 0xb0, 0x8d, 0x51, 0x19, 0xb2, 0xd8, 0xec, 0xb4, 0x18, 0x43, 0xba, 0x8f, 0xff, 0x2a, 0x66, - 0xa7, 0x15, 0x66, 0xc9, 0x10, 0x18, 0xa7, 0x18, 0x73, 0xb0, 0x7d, 0xcd, 0xd0, 0x71, 0x71, 0x94, - 0x12, 0xdc, 0xdd, 0x43, 0x50, 0x65, 0xe3, 0x61, 0x0e, 0x81, 0x43, 0x2b, 0x90, 0xc5, 0x2f, 0xb9, - 0xd8, 0x74, 0x0c, 0xcb, 0x2c, 0x8e, 0x51, 0x92, 0x3b, 0x23, 0x76, 0x11, 0x37, 0x6b, 0x61, 0x8a, - 0x2e, 0x0e, 0x9d, 0x87, 0x31, 0xab, 0xed, 0x1a, 0x96, 0xe9, 0x14, 0x33, 0xa7, 0xa4, 0xf9, 0xdc, - 0xd2, 0x67, 0x22, 0x03, 0x61, 0x9b, 0xe9, 0x28, 0x42, 0x19, 0xad, 0x83, 0xec, 0x58, 0x1d, 0x5b, - 0xc7, 0xaa, 0x6e, 0xd5, 0xb0, 0x6a, 0x98, 0x75, 0xab, 0x98, 0xa5, 0x04, 0x27, 0x7b, 0x17, 0x42, - 0x15, 0x57, 0xac, 0x1a, 0x5e, 0x37, 0xeb, 0x96, 0x52, 0x70, 0x02, 0xcf, 0xe8, 0x04, 0x8c, 0x3a, - 0x87, 0xa6, 0xab, 0xbd, 0x54, 0xcc, 0xd3, 0x08, 0xe1, 0x4f, 0x73, 0xff, 0x9d, 0x86, 0x89, 0x61, - 0x42, 0xec, 0x22, 0xa4, 0xeb, 0x64, 0x95, 0xc5, 0xc4, 0x71, 0x7c, 0xc0, 0x30, 0x41, 0x27, 0x8e, - 0x7e, 0x4c, 0x27, 0x96, 0x21, 0x67, 0x62, 0xc7, 0xc5, 0x35, 0x16, 0x11, 0xc9, 0x21, 0x63, 0x0a, - 0x18, 0xa8, 0x37, 0xa4, 0x52, 0x1f, 0x2b, 0xa4, 0xae, 0xc0, 0x84, 0x67, 0x92, 0x6a, 0x6b, 0x66, - 0x43, 0xc4, 0xe6, 0x62, 0x9c, 0x25, 0x0b, 0x15, 0x81, 0x53, 0x08, 0x4c, 0x29, 0xe0, 0xc0, 0x33, - 0x5a, 0x05, 0xb0, 0x4c, 0x6c, 0xd5, 0xd5, 0x1a, 0xd6, 0x9b, 0xc5, 0x4c, 0x1f, 0x2f, 0x6d, 0x13, - 0x95, 0x1e, 0x2f, 0x59, 0x4c, 0xaa, 0x37, 0xd1, 0x23, 0xdd, 0x50, 0x1b, 0xeb, 0x13, 0x29, 0x9b, - 0xec, 0x90, 0xf5, 0x44, 0xdb, 0x1e, 0x14, 0x6c, 0x4c, 0xe2, 0x1e, 0xd7, 0xf8, 0xca, 0xb2, 0xd4, - 0x88, 0x85, 0xd8, 0x95, 0x29, 0x1c, 0xc6, 0x16, 0x36, 0x6e, 0xfb, 0x1f, 0xd1, 0xed, 0xe0, 0x09, - 0x54, 0x1a, 0x56, 0x40, 0xb3, 0x50, 0x5e, 0x08, 0xb7, 0xb4, 0x16, 0x9e, 0xb9, 0x00, 0x85, 0xa0, - 0x7b, 0xd0, 0x34, 0xa4, 0x1d, 0x57, 0xb3, 0x5d, 0x1a, 0x85, 0x69, 0x85, 0x3d, 0x20, 0x19, 0x92, - 0xd8, 0xac, 0xd1, 0x2c, 0x97, 0x56, 0xc8, 0xbf, 0x33, 0x0f, 0xc3, 0x78, 0x60, 0xfa, 0x61, 0x81, - 0x73, 0xaf, 0x8e, 0xc2, 0x74, 0x54, 0xcc, 0x45, 0x86, 0xff, 0x09, 0x18, 0x35, 0x3b, 0xad, 0x7d, - 0x6c, 0x17, 0x93, 0x94, 0x81, 0x3f, 0xa1, 0x32, 0xa4, 0x9b, 0xda, 0x3e, 0x6e, 0x16, 0x53, 0xa7, - 0xa4, 0xf9, 0xc2, 0xd2, 0xbd, 0x43, 0x45, 0xf5, 0xc2, 0x06, 0x81, 0x28, 0x0c, 0x89, 0x1e, 0x83, - 0x14, 0x4f, 0x71, 0x84, 0xe1, 0xcc, 0x70, 0x0c, 0x24, 0x16, 0x15, 0x8a, 0x43, 0xb7, 0x42, 0x96, - 0xfc, 0x65, 0xbe, 0x1d, 0xa5, 0x36, 0x67, 0x88, 0x80, 0xf8, 0x15, 0xcd, 0x40, 0x86, 0x86, 0x59, - 0x0d, 0x8b, 0xd2, 0xe0, 0x3d, 0x93, 0x8d, 0xa9, 0xe1, 0xba, 0xd6, 0x69, 0xba, 0xea, 0x35, 0xad, - 0xd9, 0xc1, 0x34, 0x60, 0xb2, 0x4a, 0x9e, 0x0b, 0x9f, 0x22, 0x32, 0x74, 0x12, 0x72, 0x2c, 0x2a, - 0x0d, 0xb3, 0x86, 0x5f, 0xa2, 0xd9, 0x27, 0xad, 0xb0, 0x40, 0x5d, 0x27, 0x12, 0x32, 0xfd, 0xf3, - 0x8e, 0x65, 0x8a, 0xad, 0xa5, 0x53, 0x10, 0x01, 0x9d, 0xfe, 0xe1, 0x70, 0xe2, 0xbb, 0x2d, 0x7a, - 0x79, 0xe1, 0x58, 0x9c, 0xfb, 0x66, 0x02, 0x52, 0xf4, 0xbc, 0x4d, 0x40, 0x6e, 0xf7, 0x99, 0x9d, - 0x8a, 0xba, 0xba, 0xbd, 0xb7, 0xbc, 0x51, 0x91, 0x25, 0x54, 0x00, 0xa0, 0x82, 0x4b, 0x1b, 0xdb, - 0xe5, 0x5d, 0x39, 0xe1, 0x3d, 0xaf, 0x6f, 0xed, 0x9e, 0x3f, 0x2b, 0x27, 0x3d, 0xc0, 0x1e, 0x13, - 0xa4, 0xfc, 0x0a, 0x0f, 0x2d, 0xc9, 0x69, 0x24, 0x43, 0x9e, 0x11, 0xac, 0x5f, 0xa9, 0xac, 0x9e, - 0x3f, 0x2b, 0x8f, 0x06, 0x25, 0x0f, 0x2d, 0xc9, 0x63, 0x68, 0x1c, 0xb2, 0x54, 0xb2, 0xbc, 0xbd, - 0xbd, 0x21, 0x67, 0x3c, 0xce, 0xea, 0xae, 0xb2, 0xbe, 0xb5, 0x26, 0x67, 0x3d, 0xce, 0x35, 0x65, - 0x7b, 0x6f, 0x47, 0x06, 0x8f, 0x61, 0xb3, 0x52, 0xad, 0x96, 0xd7, 0x2a, 0x72, 0xce, 0xd3, 0x58, - 0x7e, 0x66, 0xb7, 0x52, 0x95, 0xf3, 0x01, 0xb3, 0x1e, 0x5a, 0x92, 0xc7, 0xbd, 0x29, 0x2a, 0x5b, - 0x7b, 0x9b, 0x72, 0x01, 0x4d, 0xc2, 0x38, 0x9b, 0x42, 0x18, 0x31, 0x11, 0x12, 0x9d, 0x3f, 0x2b, - 0xcb, 0x5d, 0x43, 0x18, 0xcb, 0x64, 0x40, 0x70, 0xfe, 0xac, 0x8c, 0xe6, 0x56, 0x20, 0x4d, 0xa3, - 0x0b, 0x21, 0x28, 0x6c, 0x94, 0x97, 0x2b, 0x1b, 0xea, 0xf6, 0xce, 0xee, 0xfa, 0xf6, 0x56, 0x79, - 0x43, 0x96, 0xba, 0x32, 0xa5, 0xf2, 0xb9, 0xbd, 0x75, 0xa5, 0xb2, 0x2a, 0x27, 0xfc, 0xb2, 0x9d, - 0x4a, 0x79, 0xb7, 0xb2, 0x2a, 0x27, 0xe7, 0x74, 0x98, 0x8e, 0xca, 0x33, 0x91, 0x27, 0xc3, 0xb7, - 0xc5, 0x89, 0x3e, 0x5b, 0x4c, 0xb9, 0x7a, 0xb6, 0xf8, 0xcb, 0x12, 0x4c, 0x45, 0xe4, 0xda, 0xc8, - 0x49, 0x1e, 0x87, 0x34, 0x0b, 0x51, 0x56, 0x7d, 0xee, 0x89, 0x4c, 0xda, 0x34, 0x60, 0x7b, 0x2a, - 0x10, 0xc5, 0xf9, 0x2b, 0x70, 0xb2, 0x4f, 0x05, 0x26, 0x14, 0x3d, 0x46, 0xbe, 0x22, 0x41, 0xb1, - 0x1f, 0x77, 0x4c, 0xa2, 0x48, 0x04, 0x12, 0xc5, 0xc5, 0xb0, 0x01, 0xa7, 0xfb, 0xaf, 0xa1, 0xc7, - 0x8a, 0x37, 0x25, 0x38, 0x11, 0xdd, 0xa8, 0x44, 0xda, 0xf0, 0x18, 0x8c, 0xb6, 0xb0, 0x7b, 0x60, - 0x89, 0x62, 0x7d, 0x57, 0x44, 0x09, 0x20, 0xc3, 0x61, 0x5f, 0x71, 0x94, 0xbf, 0x86, 0x24, 0xfb, - 0x75, 0x1b, 0xcc, 0x9a, 0x1e, 0x4b, 0x3f, 0x9f, 0x80, 0x9b, 0x22, 0xc9, 0x23, 0x0d, 0xbd, 0x0d, - 0xc0, 0x30, 0xdb, 0x1d, 0x97, 0x15, 0x64, 0x96, 0x9f, 0xb2, 0x54, 0x42, 0xcf, 0x3e, 0xc9, 0x3d, - 0x1d, 0xd7, 0x1b, 0x4f, 0xd2, 0x71, 0x60, 0x22, 0xaa, 0x70, 0xa1, 0x6b, 0x68, 0x8a, 0x1a, 0x3a, - 0xdb, 0x67, 0xa5, 0x3d, 0xb5, 0xee, 0x01, 0x90, 0xf5, 0xa6, 0x81, 0x4d, 0x57, 0x75, 0x5c, 0x1b, - 0x6b, 0x2d, 0xc3, 0x6c, 0xd0, 0x04, 0x9c, 0x29, 0xa5, 0xeb, 0x5a, 0xd3, 0xc1, 0xca, 0x04, 0x1b, - 0xae, 0x8a, 0x51, 0x82, 0xa0, 0x55, 0xc6, 0xf6, 0x21, 0x46, 0x03, 0x08, 0x36, 0xec, 0x21, 0xe6, - 0xbe, 0x36, 0x06, 0x39, 0x5f, 0x5b, 0x87, 0x4e, 0x43, 0xfe, 0x79, 0xed, 0x9a, 0xa6, 0x8a, 0x56, - 0x9d, 0x79, 0x22, 0x47, 0x64, 0x3b, 0xbc, 0x5d, 0x7f, 0x00, 0xa6, 0xa9, 0x8a, 0xd5, 0x71, 0xb1, - 0xad, 0xea, 0x4d, 0xcd, 0x71, 0xa8, 0xd3, 0x32, 0x54, 0x15, 0x91, 0xb1, 0x6d, 0x32, 0xb4, 0x22, - 0x46, 0xd0, 0x39, 0x98, 0xa2, 0x88, 0x56, 0xa7, 0xe9, 0x1a, 0xed, 0x26, 0x56, 0xc9, 0xcb, 0x83, - 0x43, 0x13, 0xb1, 0x67, 0xd9, 0x24, 0xd1, 0xd8, 0xe4, 0x0a, 0xc4, 0x22, 0x07, 0xad, 0xc2, 0x6d, - 0x14, 0xd6, 0xc0, 0x26, 0xb6, 0x35, 0x17, 0xab, 0xf8, 0x85, 0x8e, 0xd6, 0x74, 0x54, 0xcd, 0xac, - 0xa9, 0x07, 0x9a, 0x73, 0x50, 0x9c, 0x26, 0x04, 0xcb, 0x89, 0xa2, 0xa4, 0xdc, 0x42, 0x14, 0xd7, - 0xb8, 0x5e, 0x85, 0xaa, 0x95, 0xcd, 0xda, 0x65, 0xcd, 0x39, 0x40, 0x25, 0x38, 0x41, 0x59, 0x1c, - 0xd7, 0x36, 0xcc, 0x86, 0xaa, 0x1f, 0x60, 0xfd, 0xaa, 0xda, 0x71, 0xeb, 0x17, 0x8a, 0xb7, 0xfa, - 0xe7, 0xa7, 0x16, 0x56, 0xa9, 0xce, 0x0a, 0x51, 0xd9, 0x73, 0xeb, 0x17, 0x50, 0x15, 0xf2, 0x64, - 0x33, 0x5a, 0xc6, 0xcb, 0x58, 0xad, 0x5b, 0x36, 0xad, 0x2c, 0x85, 0x88, 0x93, 0xed, 0xf3, 0xe0, - 0xc2, 0x36, 0x07, 0x6c, 0x5a, 0x35, 0x5c, 0x4a, 0x57, 0x77, 0x2a, 0x95, 0x55, 0x25, 0x27, 0x58, - 0x2e, 0x59, 0x36, 0x09, 0xa8, 0x86, 0xe5, 0x39, 0x38, 0xc7, 0x02, 0xaa, 0x61, 0x09, 0xf7, 0x9e, - 0x83, 0x29, 0x5d, 0x67, 0x6b, 0x36, 0x74, 0x95, 0xb7, 0xf8, 0x4e, 0x51, 0x0e, 0x38, 0x4b, 0xd7, - 0xd7, 0x98, 0x02, 0x8f, 0x71, 0x07, 0x3d, 0x02, 0x37, 0x75, 0x9d, 0xe5, 0x07, 0x4e, 0xf6, 0xac, - 0x32, 0x0c, 0x3d, 0x07, 0x53, 0xed, 0xc3, 0x5e, 0x20, 0x0a, 0xcc, 0xd8, 0x3e, 0x0c, 0xc3, 0xee, - 0xa4, 0xaf, 0x6d, 0x36, 0xd6, 0x35, 0x17, 0xd7, 0x8a, 0x37, 0xfb, 0xb5, 0x7d, 0x03, 0x68, 0x11, - 0x64, 0x5d, 0x57, 0xb1, 0xa9, 0xed, 0x37, 0xb1, 0xaa, 0xd9, 0xd8, 0xd4, 0x9c, 0xe2, 0x49, 0xbf, - 0x72, 0x41, 0xd7, 0x2b, 0x74, 0xb4, 0x4c, 0x07, 0xd1, 0x19, 0x98, 0xb4, 0xf6, 0x9f, 0xd7, 0x59, - 0x64, 0xa9, 0x6d, 0x1b, 0xd7, 0x8d, 0x97, 0x8a, 0x77, 0x50, 0x37, 0x4d, 0x90, 0x01, 0x1a, 0x57, - 0x3b, 0x54, 0x8c, 0xee, 0x01, 0x59, 0x77, 0x0e, 0x34, 0xbb, 0x4d, 0x4b, 0xbb, 0xd3, 0xd6, 0x74, - 0x5c, 0xbc, 0x93, 0xa9, 0x32, 0xf9, 0x96, 0x10, 0x93, 0xc8, 0x76, 0x5e, 0x34, 0xea, 0xae, 0x60, - 0xbc, 0x9b, 0x45, 0x36, 0x95, 0x71, 0xb6, 0x2b, 0x30, 0xdd, 0x31, 0x0d, 0xd3, 0xc5, 0x76, 0xdb, - 0xc6, 0xa4, 0x89, 0x67, 0x27, 0xb1, 0xf8, 0x4f, 0x63, 0x7d, 0xda, 0xf0, 0x3d, 0xbf, 0x36, 0x0b, - 0x00, 0x65, 0xaa, 0xd3, 0x2b, 0x9c, 0x2b, 0x41, 0xde, 0x1f, 0x17, 0x28, 0x0b, 0x2c, 0x32, 0x64, - 0x89, 0xd4, 0xd8, 0x95, 0xed, 0x55, 0x52, 0x1d, 0x9f, 0xad, 0xc8, 0x09, 0x52, 0xa5, 0x37, 0xd6, - 0x77, 0x2b, 0xaa, 0xb2, 0xb7, 0xb5, 0xbb, 0xbe, 0x59, 0x91, 0x93, 0x67, 0xb2, 0x99, 0xf7, 0xc6, - 0xe4, 0xeb, 0xd7, 0xaf, 0x5f, 0x4f, 0xcc, 0x7d, 0x27, 0x01, 0x85, 0x60, 0x67, 0x8c, 0x3e, 0x0b, - 0x37, 0x8b, 0xd7, 0x58, 0x07, 0xbb, 0xea, 0x8b, 0x86, 0x4d, 0x43, 0xb5, 0xa5, 0xb1, 0xde, 0xd2, - 0xf3, 0xf2, 0x34, 0xd7, 0xaa, 0x62, 0xf7, 0x69, 0xc3, 0x26, 0x81, 0xd8, 0xd2, 0x5c, 0xb4, 0x01, - 0x27, 0x4d, 0x4b, 0x75, 0x5c, 0xcd, 0xac, 0x69, 0x76, 0x4d, 0xed, 0x5e, 0x20, 0xa8, 0x9a, 0xae, - 0x63, 0xc7, 0xb1, 0x58, 0x89, 0xf0, 0x58, 0x3e, 0x63, 0x5a, 0x55, 0xae, 0xdc, 0xcd, 0x9d, 0x65, - 0xae, 0x1a, 0x8a, 0x88, 0x64, 0xbf, 0x88, 0xb8, 0x15, 0xb2, 0x2d, 0xad, 0xad, 0x62, 0xd3, 0xb5, - 0x0f, 0x69, 0x3f, 0x97, 0x51, 0x32, 0x2d, 0xad, 0x5d, 0x21, 0xcf, 0x9f, 0xdc, 0x1e, 0xf8, 0xfd, - 0xf8, 0xc3, 0x24, 0xe4, 0xfd, 0x3d, 0x1d, 0x69, 0x91, 0x75, 0x9a, 0xbf, 0x25, 0x7a, 0xc2, 0x6f, - 0x1f, 0xd8, 0x01, 0x2e, 0xac, 0x90, 0xc4, 0x5e, 0x1a, 0x65, 0x9d, 0x96, 0xc2, 0x90, 0xa4, 0xa8, - 0x92, 0x33, 0x8d, 0x59, 0xff, 0x9e, 0x51, 0xf8, 0x13, 0x5a, 0x83, 0xd1, 0xe7, 0x1d, 0xca, 0x3d, - 0x4a, 0xb9, 0xef, 0x18, 0xcc, 0xfd, 0x44, 0x95, 0x92, 0x67, 0x9f, 0xa8, 0xaa, 0x5b, 0xdb, 0xca, - 0x66, 0x79, 0x43, 0xe1, 0x70, 0x74, 0x0b, 0xa4, 0x9a, 0xda, 0xcb, 0x87, 0xc1, 0x12, 0x40, 0x45, - 0xc3, 0x3a, 0xfe, 0x16, 0x48, 0xbd, 0x88, 0xb5, 0xab, 0xc1, 0xc4, 0x4b, 0x45, 0x9f, 0x60, 0xe8, - 0x2f, 0x42, 0x9a, 0xfa, 0x0b, 0x01, 0x70, 0x8f, 0xc9, 0x23, 0x28, 0x03, 0xa9, 0x95, 0x6d, 0x85, - 0x84, 0xbf, 0x0c, 0x79, 0x26, 0x55, 0x77, 0xd6, 0x2b, 0x2b, 0x15, 0x39, 0x31, 0x77, 0x0e, 0x46, - 0x99, 0x13, 0xc8, 0xd1, 0xf0, 0xdc, 0x20, 0x8f, 0xf0, 0x47, 0xce, 0x21, 0x89, 0xd1, 0xbd, 0xcd, - 0xe5, 0x8a, 0x22, 0x27, 0xfc, 0xdb, 0xeb, 0x40, 0xde, 0xdf, 0xce, 0xfd, 0x74, 0x62, 0xea, 0x6f, - 0x25, 0xc8, 0xf9, 0xda, 0x33, 0xd2, 0x18, 0x68, 0xcd, 0xa6, 0xf5, 0xa2, 0xaa, 0x35, 0x0d, 0xcd, - 0xe1, 0x41, 0x01, 0x54, 0x54, 0x26, 0x92, 0x61, 0x37, 0xed, 0xa7, 0x62, 0xfc, 0x1b, 0x12, 0xc8, - 0xe1, 0xd6, 0x2e, 0x64, 0xa0, 0xf4, 0x33, 0x35, 0xf0, 0x75, 0x09, 0x0a, 0xc1, 0x7e, 0x2e, 0x64, - 0xde, 0xe9, 0x9f, 0xa9, 0x79, 0xef, 0x24, 0x60, 0x3c, 0xd0, 0xc5, 0x0d, 0x6b, 0xdd, 0x0b, 0x30, - 0x69, 0xd4, 0x70, 0xab, 0x6d, 0xb9, 0xd8, 0xd4, 0x0f, 0xd5, 0x26, 0xbe, 0x86, 0x9b, 0xc5, 0x39, - 0x9a, 0x28, 0x16, 0x07, 0xf7, 0x89, 0x0b, 0xeb, 0x5d, 0xdc, 0x06, 0x81, 0x95, 0xa6, 0xd6, 0x57, - 0x2b, 0x9b, 0x3b, 0xdb, 0xbb, 0x95, 0xad, 0x95, 0x67, 0xd4, 0xbd, 0xad, 0x27, 0xb7, 0xb6, 0x9f, - 0xde, 0x52, 0x64, 0x23, 0xa4, 0xf6, 0x09, 0x1e, 0xf5, 0x1d, 0x90, 0xc3, 0x46, 0xa1, 0x9b, 0x21, - 0xca, 0x2c, 0x79, 0x04, 0x4d, 0xc1, 0xc4, 0xd6, 0xb6, 0x5a, 0x5d, 0x5f, 0xad, 0xa8, 0x95, 0x4b, - 0x97, 0x2a, 0x2b, 0xbb, 0x55, 0xf6, 0xe2, 0xec, 0x69, 0xef, 0x06, 0x0f, 0xf5, 0x6b, 0x49, 0x98, - 0x8a, 0xb0, 0x04, 0x95, 0x79, 0xcf, 0xce, 0x5e, 0x23, 0xee, 0x1f, 0xc6, 0xfa, 0x05, 0xd2, 0x15, - 0xec, 0x68, 0xb6, 0xcb, 0x5b, 0xfc, 0x7b, 0x80, 0x78, 0xc9, 0x74, 0x8d, 0xba, 0x81, 0x6d, 0x7e, - 0xcf, 0xc0, 0x1a, 0xf9, 0x89, 0xae, 0x9c, 0x5d, 0x35, 0xdc, 0x07, 0xa8, 0x6d, 0x39, 0x86, 0x6b, - 0x5c, 0xc3, 0xaa, 0x61, 0x8a, 0x4b, 0x09, 0xd2, 0xd8, 0xa7, 0x14, 0x59, 0x8c, 0xac, 0x9b, 0xae, - 0xa7, 0x6d, 0xe2, 0x86, 0x16, 0xd2, 0x26, 0x09, 0x3c, 0xa9, 0xc8, 0x62, 0xc4, 0xd3, 0x3e, 0x0d, - 0xf9, 0x9a, 0xd5, 0x21, 0x6d, 0x12, 0xd3, 0x23, 0xf5, 0x42, 0x52, 0x72, 0x4c, 0xe6, 0xa9, 0xf0, - 0x3e, 0xb6, 0x7b, 0x1b, 0x92, 0x57, 0x72, 0x4c, 0xc6, 0x54, 0xee, 0x86, 0x09, 0xad, 0xd1, 0xb0, - 0x09, 0xb9, 0x20, 0x62, 0x9d, 0x79, 0xc1, 0x13, 0x53, 0xc5, 0x99, 0x27, 0x20, 0x23, 0xfc, 0x40, - 0x4a, 0x32, 0xf1, 0x84, 0xda, 0x66, 0x77, 0x52, 0x89, 0xf9, 0xac, 0x92, 0x31, 0xc5, 0xe0, 0x69, - 0xc8, 0x1b, 0x8e, 0xda, 0xbd, 0x1c, 0x4d, 0x9c, 0x4a, 0xcc, 0x67, 0x94, 0x9c, 0xe1, 0x78, 0xb7, - 0x61, 0x73, 0x6f, 0x26, 0xa0, 0x10, 0xbc, 0xdc, 0x45, 0xab, 0x90, 0x69, 0x5a, 0xba, 0x46, 0x43, - 0x8b, 0xfd, 0xb2, 0x30, 0x1f, 0x73, 0x1f, 0xbc, 0xb0, 0xc1, 0xf5, 0x15, 0x0f, 0x39, 0xf3, 0x8f, - 0x12, 0x64, 0x84, 0x18, 0x9d, 0x80, 0x54, 0x5b, 0x73, 0x0f, 0x28, 0x5d, 0x7a, 0x39, 0x21, 0x4b, - 0x0a, 0x7d, 0x26, 0x72, 0xa7, 0xad, 0x99, 0x34, 0x04, 0xb8, 0x9c, 0x3c, 0x93, 0x7d, 0x6d, 0x62, - 0xad, 0x46, 0xdb, 0x7e, 0xab, 0xd5, 0xc2, 0xa6, 0xeb, 0x88, 0x7d, 0xe5, 0xf2, 0x15, 0x2e, 0x46, - 0xf7, 0xc2, 0xa4, 0x6b, 0x6b, 0x46, 0x33, 0xa0, 0x9b, 0xa2, 0xba, 0xb2, 0x18, 0xf0, 0x94, 0x4b, - 0x70, 0x8b, 0xe0, 0xad, 0x61, 0x57, 0xd3, 0x0f, 0x70, 0xad, 0x0b, 0x1a, 0xa5, 0x37, 0x87, 0x37, - 0x73, 0x85, 0x55, 0x3e, 0x2e, 0xb0, 0x73, 0xdf, 0x93, 0x60, 0x52, 0xbc, 0xa8, 0xd4, 0x3c, 0x67, - 0x6d, 0x02, 0x68, 0xa6, 0x69, 0xb9, 0x7e, 0x77, 0xf5, 0x86, 0x72, 0x0f, 0x6e, 0xa1, 0xec, 0x81, - 0x14, 0x1f, 0xc1, 0x4c, 0x0b, 0xa0, 0x3b, 0xd2, 0xd7, 0x6d, 0x27, 0x21, 0xc7, 0x6f, 0xee, 0xe9, - 0xcf, 0x3f, 0xec, 0xd5, 0x16, 0x98, 0x88, 0xbc, 0xd1, 0xa0, 0x69, 0x48, 0xef, 0xe3, 0x86, 0x61, - 0xf2, 0xfb, 0x44, 0xf6, 0x20, 0x6e, 0x29, 0x53, 0xde, 0x2d, 0xe5, 0xf2, 0x15, 0x98, 0xd2, 0xad, - 0x56, 0xd8, 0xdc, 0x65, 0x39, 0xf4, 0x7a, 0xed, 0x5c, 0x96, 0x9e, 0x85, 0x6e, 0x8b, 0xf9, 0xe5, - 0x44, 0x72, 0x6d, 0x67, 0xf9, 0xab, 0x89, 0x99, 0x35, 0x86, 0xdb, 0x11, 0xcb, 0x54, 0x70, 0xbd, - 0x89, 0x75, 0x62, 0x3a, 0xfc, 0xf8, 0x2e, 0xb8, 0xbf, 0x61, 0xb8, 0x07, 0x9d, 0xfd, 0x05, 0xdd, - 0x6a, 0x2d, 0x36, 0xac, 0x86, 0xd5, 0xfd, 0xb9, 0x8b, 0x3c, 0xd1, 0x07, 0xfa, 0x1f, 0xff, 0xc9, - 0x2b, 0xeb, 0x49, 0x67, 0x62, 0x7f, 0x1f, 0x2b, 0x6d, 0xc1, 0x14, 0x57, 0x56, 0xe9, 0x9d, 0x3b, - 0x7b, 0x35, 0x40, 0x03, 0xef, 0x5d, 0x8a, 0xdf, 0x78, 0x97, 0xd6, 0x6a, 0x65, 0x92, 0x43, 0xc9, - 0x18, 0x7b, 0x81, 0x28, 0x29, 0x70, 0x53, 0x80, 0x8f, 0x9d, 0x4b, 0x6c, 0xc7, 0x30, 0x7e, 0x87, - 0x33, 0x4e, 0xf9, 0x18, 0xab, 0x1c, 0x5a, 0x5a, 0x81, 0xf1, 0xe3, 0x70, 0xfd, 0x1d, 0xe7, 0xca, - 0x63, 0x3f, 0xc9, 0x1a, 0x4c, 0x50, 0x12, 0xbd, 0xe3, 0xb8, 0x56, 0x8b, 0x26, 0xbd, 0xc1, 0x34, - 0x7f, 0xff, 0x2e, 0x3b, 0x28, 0x05, 0x02, 0x5b, 0xf1, 0x50, 0xa5, 0x12, 0xd0, 0x9f, 0x19, 0x6a, - 0x58, 0x6f, 0xc6, 0x30, 0xbc, 0xc5, 0x0d, 0xf1, 0xf4, 0x4b, 0x4f, 0xc1, 0x34, 0xf9, 0x9f, 0xe6, - 0x24, 0xbf, 0x25, 0xf1, 0xb7, 0x4c, 0xc5, 0xef, 0xbd, 0xc2, 0xce, 0xe2, 0x94, 0x47, 0xe0, 0xb3, - 0xc9, 0xb7, 0x8b, 0x0d, 0xec, 0xba, 0xd8, 0x76, 0x54, 0xad, 0x19, 0x65, 0x9e, 0xef, 0x35, 0xbd, - 0xf8, 0x85, 0xf7, 0x83, 0xbb, 0xb8, 0xc6, 0x90, 0xe5, 0x66, 0xb3, 0xb4, 0x07, 0x37, 0x47, 0x44, - 0xc5, 0x10, 0x9c, 0xaf, 0x71, 0xce, 0xe9, 0x9e, 0xc8, 0x20, 0xb4, 0x3b, 0x20, 0xe4, 0xde, 0x5e, - 0x0e, 0xc1, 0xf9, 0x7b, 0x9c, 0x13, 0x71, 0xac, 0xd8, 0x52, 0xc2, 0xf8, 0x04, 0x4c, 0x5e, 0xc3, - 0xf6, 0xbe, 0xe5, 0xf0, 0xab, 0x91, 0x21, 0xe8, 0x5e, 0xe7, 0x74, 0x13, 0x1c, 0x48, 0xef, 0x4a, - 0x08, 0xd7, 0x23, 0x90, 0xa9, 0x6b, 0x3a, 0x1e, 0x82, 0xe2, 0x8b, 0x9c, 0x62, 0x8c, 0xe8, 0x13, - 0x68, 0x19, 0xf2, 0x0d, 0x8b, 0x97, 0xa5, 0x78, 0xf8, 0x1b, 0x1c, 0x9e, 0x13, 0x18, 0x4e, 0xd1, - 0xb6, 0xda, 0x9d, 0x26, 0xa9, 0x59, 0xf1, 0x14, 0xbf, 0x2f, 0x28, 0x04, 0x86, 0x53, 0x1c, 0xc3, - 0xad, 0x7f, 0x20, 0x28, 0x1c, 0x9f, 0x3f, 0x1f, 0x87, 0x9c, 0x65, 0x36, 0x0f, 0x2d, 0x73, 0x18, - 0x23, 0xbe, 0xc4, 0x19, 0x80, 0x43, 0x08, 0xc1, 0x45, 0xc8, 0x0e, 0xbb, 0x11, 0x7f, 0xf8, 0xbe, - 0x38, 0x1e, 0x62, 0x07, 0xd6, 0x60, 0x42, 0x24, 0x28, 0xc3, 0x32, 0x87, 0xa0, 0xf8, 0x23, 0x4e, - 0x51, 0xf0, 0xc1, 0xf8, 0x32, 0x5c, 0xec, 0xb8, 0x0d, 0x3c, 0x0c, 0xc9, 0x9b, 0x62, 0x19, 0x1c, - 0xc2, 0x5d, 0xb9, 0x8f, 0x4d, 0xfd, 0x60, 0x38, 0x86, 0xaf, 0x08, 0x57, 0x0a, 0x0c, 0xa1, 0x58, - 0x81, 0xf1, 0x96, 0x66, 0x3b, 0x07, 0x5a, 0x73, 0xa8, 0xed, 0xf8, 0x63, 0xce, 0x91, 0xf7, 0x40, - 0xdc, 0x23, 0x1d, 0xf3, 0x38, 0x34, 0x5f, 0x15, 0x1e, 0xf1, 0xc1, 0xf8, 0xd1, 0x73, 0x5c, 0x7a, - 0x01, 0x75, 0x1c, 0xb6, 0xaf, 0x89, 0xa3, 0xc7, 0xb0, 0x9b, 0x7e, 0xc6, 0x8b, 0x90, 0x75, 0x8c, - 0x97, 0x87, 0xa2, 0xf9, 0x13, 0xb1, 0xd3, 0x14, 0x40, 0xc0, 0xcf, 0xc0, 0x2d, 0x91, 0x65, 0x62, - 0x08, 0xb2, 0x3f, 0xe5, 0x64, 0x27, 0x22, 0x4a, 0x05, 0x4f, 0x09, 0xc7, 0xa5, 0xfc, 0x33, 0x91, - 0x12, 0x70, 0x88, 0x6b, 0x87, 0xbc, 0x28, 0x38, 0x5a, 0xfd, 0x78, 0x5e, 0xfb, 0x73, 0xe1, 0x35, - 0x86, 0x0d, 0x78, 0x6d, 0x17, 0x4e, 0x70, 0xc6, 0xe3, 0xed, 0xeb, 0xd7, 0x45, 0x62, 0x65, 0xe8, - 0xbd, 0xe0, 0xee, 0xfe, 0x3f, 0x98, 0xf1, 0xdc, 0x29, 0x3a, 0x52, 0x47, 0x6d, 0x69, 0xed, 0x21, - 0x98, 0xbf, 0xc1, 0x99, 0x45, 0xc6, 0xf7, 0x5a, 0x5a, 0x67, 0x53, 0x6b, 0x13, 0xf2, 0x2b, 0x50, - 0x14, 0xe4, 0x1d, 0xd3, 0xc6, 0xba, 0xd5, 0x30, 0x8d, 0x97, 0x71, 0x6d, 0x08, 0xea, 0xbf, 0x08, - 0x6d, 0xd5, 0x9e, 0x0f, 0x4e, 0x98, 0xd7, 0x41, 0xf6, 0x7a, 0x15, 0xd5, 0x68, 0xb5, 0x2d, 0xdb, - 0x8d, 0x61, 0xfc, 0x4b, 0xb1, 0x53, 0x1e, 0x6e, 0x9d, 0xc2, 0x4a, 0x15, 0x28, 0xd0, 0xc7, 0x61, - 0x43, 0xf2, 0xaf, 0x38, 0xd1, 0x78, 0x17, 0xc5, 0x13, 0x87, 0x6e, 0xb5, 0xda, 0x9a, 0x3d, 0x4c, - 0xfe, 0xfb, 0x6b, 0x91, 0x38, 0x38, 0x84, 0x27, 0x0e, 0xf7, 0xb0, 0x8d, 0x49, 0xb5, 0x1f, 0x82, - 0xe1, 0x9b, 0x22, 0x71, 0x08, 0x0c, 0xa7, 0x10, 0x0d, 0xc3, 0x10, 0x14, 0x7f, 0x23, 0x28, 0x04, - 0x86, 0x50, 0x7c, 0xae, 0x5b, 0x68, 0x6d, 0xdc, 0x30, 0x1c, 0xd7, 0x66, 0x7d, 0xf0, 0x60, 0xaa, - 0x6f, 0xbd, 0x1f, 0x6c, 0xc2, 0x14, 0x1f, 0xb4, 0xf4, 0x04, 0x4c, 0x84, 0x5a, 0x0c, 0x14, 0xf7, - 0xcd, 0x42, 0xf1, 0xe7, 0x3f, 0xe4, 0xc9, 0x28, 0xd8, 0x61, 0x94, 0x36, 0xc8, 0xbe, 0x07, 0xfb, - 0x80, 0x78, 0xb2, 0x57, 0x3e, 0xf4, 0xb6, 0x3e, 0xd0, 0x06, 0x94, 0x2e, 0xc1, 0x78, 0xa0, 0x07, - 0x88, 0xa7, 0xfa, 0x05, 0x4e, 0x95, 0xf7, 0xb7, 0x00, 0xa5, 0x73, 0x90, 0x22, 0xf5, 0x3c, 0x1e, - 0xfe, 0x8b, 0x1c, 0x4e, 0xd5, 0x4b, 0x8f, 0x42, 0x46, 0xd4, 0xf1, 0x78, 0xe8, 0x2f, 0x71, 0xa8, - 0x07, 0x21, 0x70, 0x51, 0xc3, 0xe3, 0xe1, 0xbf, 0x2c, 0xe0, 0x02, 0x42, 0xe0, 0xc3, 0xbb, 0xf0, - 0xdb, 0xbf, 0x92, 0xe2, 0x79, 0x58, 0xf8, 0xee, 0x22, 0x8c, 0xf1, 0xe2, 0x1d, 0x8f, 0xfe, 0x3c, - 0x9f, 0x5c, 0x20, 0x4a, 0x0f, 0x43, 0x7a, 0x48, 0x87, 0xff, 0x2a, 0x87, 0x32, 0xfd, 0xd2, 0x0a, - 0xe4, 0x7c, 0x05, 0x3b, 0x1e, 0xfe, 0x6b, 0x1c, 0xee, 0x47, 0x11, 0xd3, 0x79, 0xc1, 0x8e, 0x27, - 0xf8, 0x75, 0x61, 0x3a, 0x47, 0x10, 0xb7, 0x89, 0x5a, 0x1d, 0x8f, 0xfe, 0x0d, 0xe1, 0x75, 0x01, - 0x29, 0x3d, 0x0e, 0x59, 0x2f, 0xff, 0xc6, 0xe3, 0x7f, 0x93, 0xe3, 0xbb, 0x18, 0xe2, 0x01, 0x5f, - 0xfe, 0x8f, 0xa7, 0xf8, 0x2d, 0xe1, 0x01, 0x1f, 0x8a, 0x1c, 0xa3, 0x70, 0x4d, 0x8f, 0x67, 0xfa, - 0x6d, 0x71, 0x8c, 0x42, 0x25, 0x9d, 0xec, 0x26, 0x4d, 0x83, 0xf1, 0x14, 0xbf, 0x23, 0x76, 0x93, - 0xea, 0x13, 0x33, 0xc2, 0x45, 0x32, 0x9e, 0xe3, 0x77, 0x85, 0x19, 0xa1, 0x1a, 0x59, 0xda, 0x01, - 0xd4, 0x5b, 0x20, 0xe3, 0xf9, 0x5e, 0xe5, 0x7c, 0x93, 0x3d, 0xf5, 0xb1, 0xf4, 0x34, 0x9c, 0x88, - 0x2e, 0x8e, 0xf1, 0xac, 0x5f, 0xf8, 0x30, 0xf4, 0x3a, 0xe3, 0xaf, 0x8d, 0xa5, 0xdd, 0x6e, 0x96, - 0xf5, 0x17, 0xc6, 0x78, 0xda, 0xd7, 0x3e, 0x0c, 0x26, 0x5a, 0x7f, 0x5d, 0x2c, 0x95, 0x01, 0xba, - 0x35, 0x29, 0x9e, 0xeb, 0x75, 0xce, 0xe5, 0x03, 0x91, 0xa3, 0xc1, 0x4b, 0x52, 0x3c, 0xfe, 0x8b, - 0xe2, 0x68, 0x70, 0x04, 0x39, 0x1a, 0xa2, 0x1a, 0xc5, 0xa3, 0xdf, 0x10, 0x47, 0x43, 0x40, 0x4a, - 0x17, 0x21, 0x63, 0x76, 0x9a, 0x4d, 0x12, 0x5b, 0x68, 0xf0, 0x67, 0x44, 0xc5, 0x7f, 0xfe, 0x88, - 0x83, 0x05, 0xa0, 0x74, 0x0e, 0xd2, 0xb8, 0xb5, 0x8f, 0x6b, 0x71, 0xc8, 0x7f, 0xf9, 0x48, 0xe4, - 0x13, 0xa2, 0x5d, 0x7a, 0x1c, 0x80, 0xbd, 0x4c, 0xd3, 0x5f, 0x89, 0x62, 0xb0, 0xff, 0xfa, 0x11, - 0xff, 0x42, 0xa1, 0x0b, 0xe9, 0x12, 0xb0, 0xef, 0x1d, 0x06, 0x13, 0xbc, 0x1f, 0x24, 0xa0, 0x2f, - 0xe0, 0x8f, 0xc0, 0xd8, 0xf3, 0x8e, 0x65, 0xba, 0x5a, 0x23, 0x0e, 0xfd, 0x6f, 0x1c, 0x2d, 0xf4, - 0x89, 0xc3, 0x5a, 0x96, 0x8d, 0x5d, 0xad, 0xe1, 0xc4, 0x61, 0xff, 0x9d, 0x63, 0x3d, 0x00, 0x01, - 0xeb, 0x9a, 0xe3, 0x0e, 0xb3, 0xee, 0xff, 0x10, 0x60, 0x01, 0x20, 0x46, 0x93, 0xff, 0xaf, 0xe2, - 0xc3, 0x38, 0xec, 0x07, 0xc2, 0x68, 0xae, 0x5f, 0x7a, 0x14, 0xb2, 0xe4, 0x5f, 0xf6, 0xd5, 0x4e, - 0x0c, 0xf8, 0x3f, 0x39, 0xb8, 0x8b, 0x20, 0x33, 0x3b, 0x6e, 0xcd, 0x35, 0xe2, 0x9d, 0xfd, 0x5f, - 0x7c, 0xa7, 0x85, 0x7e, 0xa9, 0x0c, 0x39, 0xc7, 0xad, 0xd5, 0x3a, 0xbc, 0xa3, 0x89, 0x81, 0xff, - 0xf8, 0x23, 0xef, 0x25, 0xd7, 0xc3, 0x2c, 0x9f, 0x8e, 0xbe, 0xac, 0x83, 0x35, 0x6b, 0xcd, 0x62, - 0xd7, 0x74, 0xf0, 0x3f, 0xf7, 0xc3, 0xed, 0xba, 0xd5, 0xda, 0xb7, 0x9c, 0x45, 0x5f, 0x1a, 0x5a, - 0x6c, 0x69, 0x6d, 0x87, 0xea, 0x2f, 0xf1, 0xbb, 0xb6, 0x1c, 0x7f, 0x22, 0x03, 0x33, 0xc7, 0xbb, - 0xa7, 0x9b, 0xbb, 0x0d, 0xc6, 0x2f, 0x35, 0x2d, 0xcd, 0x35, 0xcc, 0xc6, 0x8e, 0x65, 0x98, 0x2e, - 0xca, 0x83, 0x54, 0xa7, 0x3f, 0x32, 0x49, 0x8a, 0x54, 0x9f, 0xfb, 0x87, 0x34, 0x64, 0xd9, 0x15, - 0xcf, 0xa6, 0xd6, 0x46, 0x3f, 0x07, 0xf9, 0x2d, 0x7e, 0x4a, 0x1e, 0x5c, 0xba, 0xe0, 0x78, 0xf7, - 0xc9, 0xbe, 0xf9, 0x17, 0x3c, 0xed, 0x05, 0xbf, 0x2a, 0xfd, 0x51, 0x79, 0xf9, 0x81, 0x1f, 0xbc, - 0x7d, 0xf2, 0xbe, 0xbe, 0xf6, 0x91, 0xb2, 0xb8, 0xc8, 0xc2, 0x79, 0x61, 0xcf, 0x30, 0xdd, 0x07, - 0x97, 0x2e, 0x28, 0x81, 0xf9, 0xd0, 0x35, 0xc8, 0xf0, 0x01, 0x87, 0xff, 0xce, 0x70, 0x47, 0x9f, - 0xb9, 0x85, 0x1a, 0x9b, 0xf7, 0xec, 0x5b, 0x6f, 0x9f, 0x1c, 0x39, 0xf6, 0xdc, 0xde, 0x5c, 0xe8, - 0x05, 0xc8, 0x09, 0x3b, 0xd6, 0x6b, 0x0e, 0xff, 0x9c, 0xf8, 0xee, 0x98, 0x65, 0xaf, 0xd7, 0xf8, - 0xec, 0x77, 0xfd, 0xe0, 0xed, 0x93, 0x73, 0x03, 0x67, 0x5e, 0xd8, 0xeb, 0x18, 0x35, 0xc5, 0x3f, - 0x07, 0x7a, 0x0e, 0x92, 0x64, 0x2a, 0xf6, 0xe1, 0xf1, 0xc9, 0x3e, 0x53, 0x79, 0x53, 0x9c, 0xe1, - 0x0b, 0x1c, 0x66, 0x1a, 0xc2, 0x3b, 0xf3, 0x38, 0x4c, 0xf6, 0x6c, 0x0f, 0x92, 0x21, 0x79, 0x15, - 0x1f, 0xf2, 0x6f, 0x8d, 0xc8, 0xbf, 0x68, 0xba, 0xfb, 0x2d, 0x9d, 0x34, 0x9f, 0xe7, 0x1f, 0xc8, - 0x95, 0x12, 0x17, 0xa4, 0x99, 0x8b, 0x30, 0x1e, 0xf0, 0xf1, 0xb1, 0xc0, 0x8f, 0x81, 0x1c, 0xf6, - 0xd2, 0xb1, 0xf0, 0xe7, 0x21, 0xf3, 0x71, 0x70, 0x73, 0xdf, 0x47, 0x30, 0x56, 0x6e, 0x36, 0x37, - 0xb5, 0xb6, 0x83, 0x9e, 0x81, 0x49, 0xd6, 0xbc, 0xef, 0x5a, 0xab, 0xf4, 0x97, 0x9d, 0x4d, 0xad, - 0xcd, 0x03, 0xfa, 0xde, 0x80, 0xbb, 0x39, 0x60, 0xa1, 0x47, 0x9b, 0xce, 0xaf, 0xf4, 0xb2, 0xa0, - 0xa7, 0x40, 0x16, 0x42, 0x7a, 0xb6, 0x08, 0x33, 0x0b, 0xd7, 0x33, 0x03, 0x99, 0x85, 0x32, 0x23, - 0xee, 0xe1, 0x40, 0x8f, 0x41, 0x66, 0xdd, 0x74, 0x1f, 0x5a, 0x22, 0x7c, 0x2c, 0x06, 0xe7, 0x22, - 0xf9, 0x84, 0x12, 0xe3, 0xf1, 0x30, 0x1c, 0x7f, 0xfe, 0x2c, 0xc1, 0xa7, 0x06, 0xe3, 0xa9, 0x52, - 0x17, 0x4f, 0x1f, 0x51, 0x19, 0xb2, 0x64, 0xcf, 0x99, 0x01, 0xec, 0x4b, 0xf6, 0xdb, 0x23, 0x09, - 0x3c, 0x2d, 0xc6, 0xd0, 0x45, 0x09, 0x0a, 0x66, 0xc3, 0x68, 0x0c, 0x85, 0xcf, 0x88, 0x2e, 0x8a, - 0x50, 0x54, 0x3d, 0x2b, 0xc6, 0x06, 0x50, 0x54, 0x43, 0x56, 0x54, 0xfd, 0x56, 0x54, 0x3d, 0x2b, - 0x32, 0x31, 0x14, 0x7e, 0x2b, 0xbc, 0x67, 0xb4, 0x0a, 0x70, 0xc9, 0x78, 0x09, 0xd7, 0x98, 0x19, - 0xd9, 0x88, 0x64, 0x24, 0x38, 0xba, 0x6a, 0x8c, 0xc4, 0x87, 0x43, 0x6b, 0x90, 0xab, 0xd6, 0xbb, - 0x34, 0xc0, 0x3f, 0xe4, 0x8f, 0x34, 0xa5, 0x1e, 0xe2, 0xf1, 0x23, 0x3d, 0x73, 0xd8, 0x92, 0x72, - 0x71, 0xe6, 0xf8, 0xd6, 0xe4, 0xc3, 0x75, 0xcd, 0x61, 0x34, 0xf9, 0x58, 0x73, 0x7c, 0x3c, 0x7e, - 0x24, 0xba, 0x08, 0x63, 0xcb, 0x96, 0x45, 0x34, 0x8b, 0xe3, 0x94, 0xe4, 0x74, 0x24, 0x09, 0xd7, - 0x61, 0x04, 0x02, 0x41, 0x77, 0x87, 0x86, 0x3e, 0x81, 0x17, 0x06, 0xed, 0x8e, 0xd0, 0x12, 0xbb, - 0x23, 0x9e, 0xfd, 0x27, 0x70, 0xf9, 0xd0, 0xc5, 0xa4, 0x51, 0x2e, 0x4e, 0x0c, 0x71, 0x02, 0x85, - 0x72, 0xe8, 0x04, 0x0a, 0x31, 0xaa, 0xc2, 0x84, 0x90, 0x55, 0xcc, 0x0e, 0xc9, 0xc1, 0x45, 0x99, - 0x7f, 0x65, 0x3c, 0x88, 0x96, 0xeb, 0x32, 0xd6, 0x30, 0x03, 0xda, 0x81, 0x82, 0x10, 0x6d, 0x3a, - 0x74, 0xd1, 0x93, 0x11, 0x75, 0x35, 0xcc, 0xc9, 0x54, 0x19, 0x65, 0x08, 0x3f, 0xb3, 0x0a, 0x27, - 0xa2, 0xb3, 0x55, 0x5c, 0xb6, 0x94, 0xfc, 0x59, 0x76, 0x05, 0x6e, 0x8a, 0xcc, 0x4c, 0x71, 0x24, - 0x89, 0x50, 0x9d, 0x08, 0xa4, 0x23, 0x3f, 0x38, 0x1d, 0x01, 0x4e, 0xf7, 0x82, 0xbb, 0x41, 0xe6, - 0x07, 0x27, 0x23, 0xc0, 0x49, 0x3f, 0xf8, 0xb3, 0x50, 0x08, 0xe6, 0x21, 0x3f, 0x7a, 0x3c, 0x02, - 0x3d, 0x1e, 0x81, 0x8e, 0x9e, 0x3b, 0x15, 0x81, 0x4e, 0x85, 0xd0, 0xd5, 0xbe, 0x73, 0x4f, 0x46, - 0xa0, 0x27, 0x23, 0xd0, 0xd1, 0x73, 0xa3, 0x08, 0x34, 0xf2, 0xa3, 0x1f, 0x85, 0x89, 0x50, 0xca, - 0xf1, 0xc3, 0xc7, 0x22, 0xe0, 0x63, 0xa1, 0xda, 0x1c, 0x4e, 0x35, 0x7e, 0xfc, 0x44, 0x04, 0x7e, - 0x22, 0x6a, 0xfa, 0x68, 0xeb, 0x47, 0x23, 0xe0, 0xa3, 0x91, 0xd3, 0x47, 0xe3, 0xe5, 0x08, 0xbc, - 0xec, 0xc7, 0x97, 0x20, 0xef, 0xcf, 0x2a, 0x7e, 0x6c, 0x26, 0x02, 0x9b, 0x09, 0xfb, 0x3d, 0x90, - 0x52, 0xe2, 0x22, 0x3d, 0xdb, 0xe7, 0xb8, 0x04, 0xd2, 0xc8, 0xb1, 0x3a, 0x9b, 0x2b, 0x30, 0x1d, - 0x95, 0x34, 0x22, 0x38, 0xce, 0xf8, 0x39, 0x0a, 0x4b, 0xd3, 0x81, 0x64, 0x41, 0x71, 0x9d, 0x96, - 0x9f, 0xf9, 0x39, 0x98, 0x8a, 0x48, 0x1d, 0x11, 0xc4, 0x0f, 0xf8, 0x89, 0x73, 0x4b, 0x33, 0x01, - 0xe2, 0xc0, 0xbb, 0x82, 0xbf, 0xb5, 0xfa, 0xe1, 0x14, 0x14, 0x78, 0x8a, 0xda, 0xb6, 0x6b, 0xd8, - 0xc6, 0x35, 0xf4, 0xff, 0xfb, 0x77, 0x58, 0x4b, 0x51, 0xa9, 0x8d, 0xe3, 0x8e, 0xd1, 0x68, 0x3d, - 0xd7, 0xb7, 0xd1, 0x7a, 0x70, 0x98, 0x09, 0xe2, 0xfa, 0xad, 0x4a, 0x4f, 0xbf, 0x75, 0xcf, 0x20, - 0xda, 0x7e, 0x6d, 0x57, 0xa5, 0xa7, 0xed, 0x8a, 0xa3, 0x89, 0xec, 0xbe, 0x2e, 0xf7, 0x76, 0x5f, - 0x67, 0x06, 0xf1, 0xf4, 0x6f, 0xc2, 0x2e, 0xf7, 0x36, 0x61, 0xb1, 0x4c, 0xd1, 0xbd, 0xd8, 0xe5, - 0xde, 0x5e, 0x6c, 0x20, 0x53, 0xff, 0x96, 0xec, 0x72, 0x6f, 0x4b, 0x16, 0xcb, 0x14, 0xdd, 0x99, - 0x3d, 0x19, 0xd1, 0x99, 0xdd, 0x3b, 0x88, 0x6a, 0x50, 0x83, 0xb6, 0x15, 0xd5, 0xa0, 0xdd, 0x37, - 0xd0, 0xb0, 0x81, 0x7d, 0xda, 0x93, 0x11, 0x7d, 0x5a, 0xbc, 0x71, 0x7d, 0xda, 0xb5, 0xad, 0xa8, - 0x76, 0x6d, 0x08, 0xe3, 0xfa, 0x75, 0x6d, 0xcb, 0xe1, 0xae, 0x6d, 0x7e, 0x10, 0x57, 0x74, 0xf3, - 0x76, 0xb9, 0xb7, 0x79, 0x3b, 0x13, 0x7f, 0x16, 0xa3, 0x7a, 0xb8, 0xe7, 0xfa, 0xf6, 0x70, 0x43, - 0x1d, 0xee, 0xb8, 0x56, 0xee, 0xd9, 0x7e, 0xad, 0xdc, 0x03, 0xc3, 0xb0, 0x0f, 0xee, 0xe8, 0x9e, - 0xee, 0xd3, 0xd1, 0x2d, 0x0e, 0x43, 0xfd, 0x69, 0x63, 0xf7, 0x69, 0x63, 0xf7, 0x69, 0x63, 0xf7, - 0x69, 0x63, 0xf7, 0x7f, 0xa3, 0xb1, 0x2b, 0xa5, 0x5e, 0xfd, 0xd2, 0x49, 0xe9, 0xcc, 0x69, 0x18, - 0xe3, 0x53, 0xa3, 0x51, 0x48, 0x6c, 0x96, 0xe5, 0x11, 0xfa, 0x77, 0x59, 0x96, 0xe8, 0xdf, 0x15, - 0x39, 0xb1, 0xbc, 0xf1, 0xd6, 0x8d, 0xd9, 0x91, 0xef, 0xde, 0x98, 0x1d, 0xf9, 0xfe, 0x8d, 0xd9, - 0x91, 0x77, 0x6e, 0xcc, 0x4a, 0xef, 0xdd, 0x98, 0x95, 0x3e, 0xb8, 0x31, 0x2b, 0xfd, 0xe4, 0xc6, - 0xac, 0x74, 0xfd, 0x68, 0x56, 0xfa, 0xca, 0xd1, 0xac, 0xf4, 0xf5, 0xa3, 0x59, 0xe9, 0x5b, 0x47, - 0xb3, 0xd2, 0xb7, 0x8f, 0x66, 0xa5, 0xb7, 0x8e, 0x66, 0x47, 0xbe, 0x7b, 0x34, 0x2b, 0xbd, 0x73, - 0x34, 0x2b, 0xbd, 0x77, 0x34, 0x3b, 0xf2, 0xc1, 0xd1, 0xac, 0xf4, 0x93, 0xa3, 0xd9, 0x91, 0xeb, - 0x3f, 0x9a, 0x1d, 0xf9, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x95, 0x80, 0x4e, 0xc0, 0x58, 0x45, - 0x00, 0x00, + // 4687 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xd6, 0xf0, 0x21, 0x91, 0x87, 0x14, 0x35, 0xba, 0x92, 0xd7, 0xb4, 0x1c, 0x6b, 0x77, 0xe5, + 0xc7, 0xca, 0x6b, 0x5b, 0x6b, 0xcb, 0xbb, 0xeb, 0x35, 0x37, 0xb6, 0x4b, 0x49, 0x5c, 0xad, 0x6c, + 0xbd, 0x32, 0x94, 0xfc, 0x0a, 0x8c, 0xe9, 0x68, 0x78, 0x49, 0x8d, 0x97, 0x9c, 0xa1, 0x67, 0x86, + 0x6b, 0xcb, 0x28, 0x8a, 0x2d, 0xdc, 0x07, 0x82, 0xa2, 0xef, 0x02, 0x71, 0x5c, 0xc7, 0x6d, 0x0a, + 0xb4, 0x4e, 0xd3, 0x57, 0xd2, 0xb4, 0x69, 0xda, 0x5f, 0xf9, 0x93, 0xd6, 0x40, 0x81, 0x22, 0xf9, + 0x17, 0x04, 0x81, 0xe1, 0x55, 0x0c, 0xd4, 0x6d, 0xdd, 0xc6, 0x6d, 0xfd, 0xc3, 0x85, 0xff, 0x14, + 0xf7, 0x35, 0x9c, 0x19, 0x0e, 0x39, 0x94, 0x01, 0x3b, 0xfd, 0xe1, 0x5f, 0xab, 0x39, 0xf7, 0x7c, + 0xdf, 0x3d, 0x73, 0xee, 0xb9, 0xe7, 0x9c, 0x7b, 0x87, 0x0b, 0x3f, 0x79, 0x10, 0x4e, 0x34, 0x2c, + 0xab, 0xd1, 0xc4, 0x67, 0xda, 0xb6, 0xe5, 0x5a, 0x7b, 0x9d, 0xfa, 0x99, 0x1a, 0x76, 0x74, 0xdb, + 0x68, 0xbb, 0x96, 0xbd, 0x40, 0x65, 0x68, 0x82, 0x69, 0x2c, 0x08, 0x8d, 0xb9, 0x0d, 0x98, 0xbc, + 0x64, 0x34, 0xf1, 0x8a, 0xa7, 0x58, 0xc5, 0x2e, 0xba, 0x00, 0xa9, 0xba, 0xd1, 0xc4, 0x45, 0xe9, + 0x44, 0x72, 0x3e, 0xb7, 0x78, 0xdb, 0x42, 0x08, 0xb4, 0x10, 0x44, 0x6c, 0x13, 0xb1, 0x42, 0x11, + 0x73, 0x6f, 0xa7, 0x60, 0x2a, 0x62, 0x14, 0x21, 0x48, 0x99, 0x5a, 0x8b, 0x30, 0x4a, 0xf3, 0x59, + 0x85, 0xfe, 0x8d, 0x8a, 0x30, 0xd6, 0xd6, 0xf4, 0x2b, 0x5a, 0x03, 0x17, 0x13, 0x54, 0x2c, 0x1e, + 0xd1, 0x2c, 0x40, 0x0d, 0xb7, 0xb1, 0x59, 0xc3, 0xa6, 0x7e, 0x50, 0x4c, 0x9e, 0x48, 0xce, 0x67, + 0x15, 0x9f, 0x04, 0xdd, 0x05, 0x93, 0xed, 0xce, 0x5e, 0xd3, 0xd0, 0x55, 0x9f, 0x1a, 0x9c, 0x48, + 0xce, 0xa7, 0x15, 0x99, 0x0d, 0xac, 0x74, 0x95, 0x4f, 0xc1, 0xc4, 0xf3, 0x58, 0xbb, 0xe2, 0x57, + 0xcd, 0x51, 0xd5, 0x02, 0x11, 0xfb, 0x14, 0x97, 0x21, 0xdf, 0xc2, 0x8e, 0xa3, 0x35, 0xb0, 0xea, + 0x1e, 0xb4, 0x71, 0x31, 0x45, 0xdf, 0xfe, 0x44, 0xcf, 0xdb, 0x87, 0xdf, 0x3c, 0xc7, 0x51, 0x3b, + 0x07, 0x6d, 0x8c, 0xca, 0x90, 0xc5, 0x66, 0xa7, 0xc5, 0x18, 0xd2, 0x7d, 0xfc, 0x57, 0x31, 0x3b, + 0xad, 0x30, 0x4b, 0x86, 0xc0, 0x38, 0xc5, 0x98, 0x83, 0xed, 0xab, 0x86, 0x8e, 0x8b, 0xa3, 0x94, + 0xe0, 0x54, 0x0f, 0x41, 0x95, 0x8d, 0x87, 0x39, 0x04, 0x0e, 0x2d, 0x43, 0x16, 0xbf, 0xe0, 0x62, + 0xd3, 0x31, 0x2c, 0xb3, 0x38, 0x46, 0x49, 0x6e, 0x8f, 0x58, 0x45, 0xdc, 0xac, 0x85, 0x29, 0xba, + 0x38, 0x74, 0x1e, 0xc6, 0xac, 0xb6, 0x6b, 0x58, 0xa6, 0x53, 0xcc, 0x9c, 0x90, 0xe6, 0x73, 0x8b, + 0x9f, 0x89, 0x0c, 0x84, 0x2d, 0xa6, 0xa3, 0x08, 0x65, 0xb4, 0x06, 0xb2, 0x63, 0x75, 0x6c, 0x1d, + 0xab, 0xba, 0x55, 0xc3, 0xaa, 0x61, 0xd6, 0xad, 0x62, 0x96, 0x12, 0x1c, 0xef, 0x7d, 0x11, 0xaa, + 0xb8, 0x6c, 0xd5, 0xf0, 0x9a, 0x59, 0xb7, 0x94, 0x82, 0x13, 0x78, 0x46, 0xc7, 0x60, 0xd4, 0x39, + 0x30, 0x5d, 0xed, 0x85, 0x62, 0x9e, 0x46, 0x08, 0x7f, 0x9a, 0xfb, 0xbb, 0x51, 0x98, 0x18, 0x26, + 0xc4, 0x2e, 0x42, 0xba, 0x4e, 0xde, 0xb2, 0x98, 0x38, 0x8a, 0x0f, 0x18, 0x26, 0xe8, 0xc4, 0xd1, + 0x8f, 0xe8, 0xc4, 0x32, 0xe4, 0x4c, 0xec, 0xb8, 0xb8, 0xc6, 0x22, 0x22, 0x39, 0x64, 0x4c, 0x01, + 0x03, 0xf5, 0x86, 0x54, 0xea, 0x23, 0x85, 0xd4, 0x93, 0x30, 0xe1, 0x99, 0xa4, 0xda, 0x9a, 0xd9, + 0x10, 0xb1, 0x79, 0x26, 0xce, 0x92, 0x85, 0x8a, 0xc0, 0x29, 0x04, 0xa6, 0x14, 0x70, 0xe0, 0x19, + 0xad, 0x00, 0x58, 0x26, 0xb6, 0xea, 0x6a, 0x0d, 0xeb, 0xcd, 0x62, 0xa6, 0x8f, 0x97, 0xb6, 0x88, + 0x4a, 0x8f, 0x97, 0x2c, 0x26, 0xd5, 0x9b, 0xe8, 0xc1, 0x6e, 0xa8, 0x8d, 0xf5, 0x89, 0x94, 0x0d, + 0xb6, 0xc9, 0x7a, 0xa2, 0x6d, 0x17, 0x0a, 0x36, 0x26, 0x71, 0x8f, 0x6b, 0xfc, 0xcd, 0xb2, 0xd4, + 0x88, 0x85, 0xd8, 0x37, 0x53, 0x38, 0x8c, 0xbd, 0xd8, 0xb8, 0xed, 0x7f, 0x44, 0xb7, 0x82, 0x27, + 0x50, 0x69, 0x58, 0x01, 0xcd, 0x42, 0x79, 0x21, 0xdc, 0xd4, 0x5a, 0x78, 0xe6, 0x45, 0x28, 0x04, + 0xdd, 0x83, 0xa6, 0x21, 0xed, 0xb8, 0x9a, 0xed, 0xd2, 0x28, 0x4c, 0x2b, 0xec, 0x01, 0xc9, 0x90, + 0xc4, 0x66, 0x8d, 0x66, 0xb9, 0xb4, 0x42, 0xfe, 0x44, 0x3f, 0xd3, 0x7d, 0xe1, 0x24, 0x7d, 0xe1, + 0x3b, 0x7a, 0x57, 0x34, 0xc0, 0x1c, 0x7e, 0xef, 0x99, 0x07, 0x60, 0x3c, 0xf0, 0x02, 0xc3, 0x4e, + 0x3d, 0xf7, 0x73, 0x70, 0x43, 0x24, 0x35, 0x7a, 0x12, 0xa6, 0x3b, 0xa6, 0x61, 0xba, 0xd8, 0x6e, + 0xdb, 0x98, 0x44, 0x2c, 0x9b, 0xaa, 0xf8, 0x2f, 0x63, 0x7d, 0x62, 0x6e, 0xd7, 0xaf, 0xcd, 0x58, + 0x94, 0xa9, 0x4e, 0xaf, 0xf0, 0x74, 0x36, 0xf3, 0xce, 0x98, 0x7c, 0xed, 0xda, 0xb5, 0x6b, 0x89, + 0xb9, 0x97, 0x47, 0x61, 0x3a, 0x6a, 0xcf, 0x44, 0x6e, 0xdf, 0x63, 0x30, 0x6a, 0x76, 0x5a, 0x7b, + 0xd8, 0xa6, 0x4e, 0x4a, 0x2b, 0xfc, 0x09, 0x95, 0x21, 0xdd, 0xd4, 0xf6, 0x70, 0xb3, 0x98, 0x3a, + 0x21, 0xcd, 0x17, 0x16, 0xef, 0x1a, 0x6a, 0x57, 0x2e, 0xac, 0x13, 0x88, 0xc2, 0x90, 0xe8, 0x61, + 0x48, 0xf1, 0x14, 0x4d, 0x18, 0x4e, 0x0f, 0xc7, 0x40, 0xf6, 0x92, 0x42, 0x71, 0xe8, 0x66, 0xc8, + 0x92, 0x7f, 0x59, 0x6c, 0x8c, 0x52, 0x9b, 0x33, 0x44, 0x40, 0xe2, 0x02, 0xcd, 0x40, 0x86, 0x6e, + 0x93, 0x1a, 0x16, 0xa5, 0xcd, 0x7b, 0x26, 0x81, 0x55, 0xc3, 0x75, 0xad, 0xd3, 0x74, 0xd5, 0xab, + 0x5a, 0xb3, 0x83, 0x69, 0xc0, 0x67, 0x95, 0x3c, 0x17, 0x3e, 0x4e, 0x64, 0xe8, 0x38, 0xe4, 0xd8, + 0xae, 0x32, 0xcc, 0x1a, 0x7e, 0x81, 0x66, 0xcf, 0xb4, 0xc2, 0x36, 0xda, 0x1a, 0x91, 0x90, 0xe9, + 0x9f, 0x75, 0x2c, 0x53, 0x84, 0x26, 0x9d, 0x82, 0x08, 0xe8, 0xf4, 0x0f, 0x84, 0x13, 0xf7, 0x2d, + 0xd1, 0xaf, 0x17, 0x8e, 0xa9, 0xb9, 0x6f, 0x25, 0x20, 0x45, 0xf3, 0xc5, 0x04, 0xe4, 0x76, 0x9e, + 0xda, 0xae, 0xa8, 0x2b, 0x5b, 0xbb, 0x4b, 0xeb, 0x15, 0x59, 0x42, 0x05, 0x00, 0x2a, 0xb8, 0xb4, + 0xbe, 0x55, 0xde, 0x91, 0x13, 0xde, 0xf3, 0xda, 0xe6, 0xce, 0xf9, 0xb3, 0x72, 0xd2, 0x03, 0xec, + 0x32, 0x41, 0xca, 0xaf, 0x70, 0xff, 0xa2, 0x9c, 0x46, 0x32, 0xe4, 0x19, 0xc1, 0xda, 0x93, 0x95, + 0x95, 0xf3, 0x67, 0xe5, 0xd1, 0xa0, 0xe4, 0xfe, 0x45, 0x79, 0x0c, 0x8d, 0x43, 0x96, 0x4a, 0x96, + 0xb6, 0xb6, 0xd6, 0xe5, 0x8c, 0xc7, 0x59, 0xdd, 0x51, 0xd6, 0x36, 0x57, 0xe5, 0xac, 0xc7, 0xb9, + 0xaa, 0x6c, 0xed, 0x6e, 0xcb, 0xe0, 0x31, 0x6c, 0x54, 0xaa, 0xd5, 0xf2, 0x6a, 0x45, 0xce, 0x79, + 0x1a, 0x4b, 0x4f, 0xed, 0x54, 0xaa, 0x72, 0x3e, 0x60, 0xd6, 0xfd, 0x8b, 0xf2, 0xb8, 0x37, 0x45, + 0x65, 0x73, 0x77, 0x43, 0x2e, 0xa0, 0x49, 0x18, 0x67, 0x53, 0x08, 0x23, 0x26, 0x42, 0xa2, 0xf3, + 0x67, 0x65, 0xb9, 0x6b, 0x08, 0x63, 0x99, 0x0c, 0x08, 0xce, 0x9f, 0x95, 0xd1, 0xdc, 0x32, 0xa4, + 0x69, 0x74, 0x21, 0x04, 0x85, 0xf5, 0xf2, 0x52, 0x65, 0x5d, 0xdd, 0xda, 0xde, 0x59, 0xdb, 0xda, + 0x2c, 0xaf, 0xcb, 0x52, 0x57, 0xa6, 0x54, 0x3e, 0xb7, 0xbb, 0xa6, 0x54, 0x56, 0xe4, 0x84, 0x5f, + 0xb6, 0x5d, 0x29, 0xef, 0x54, 0x56, 0xe4, 0xe4, 0x9c, 0x0e, 0xd3, 0x51, 0x79, 0x32, 0x72, 0x67, + 0xf8, 0x96, 0x38, 0xd1, 0x67, 0x89, 0x29, 0x57, 0xcf, 0x12, 0xff, 0x38, 0x01, 0x53, 0x11, 0xb5, + 0x22, 0x72, 0x92, 0x47, 0x20, 0xcd, 0x42, 0x94, 0x55, 0xcf, 0x3b, 0x23, 0x8b, 0x0e, 0x0d, 0xd8, + 0x9e, 0x0a, 0x4a, 0x71, 0xfe, 0x0e, 0x22, 0xd9, 0xa7, 0x83, 0x20, 0x14, 0x3d, 0x39, 0xfd, 0x99, + 0x9e, 0x9c, 0xce, 0xca, 0xde, 0xf9, 0x61, 0xca, 0x1e, 0x95, 0x1d, 0x2d, 0xb7, 0xa7, 0x23, 0x72, + 0xfb, 0x45, 0x98, 0xec, 0x21, 0x1a, 0x3a, 0xc7, 0xbe, 0x24, 0x41, 0xb1, 0x9f, 0x73, 0x62, 0x32, + 0x5d, 0x22, 0x90, 0xe9, 0x2e, 0x86, 0x3d, 0x78, 0xb2, 0xff, 0x22, 0xf4, 0xac, 0xf5, 0xeb, 0x12, + 0x1c, 0x8b, 0xee, 0x14, 0x23, 0x6d, 0x78, 0x18, 0x46, 0x5b, 0xd8, 0xdd, 0xb7, 0x44, 0xb7, 0x74, + 0x47, 0x44, 0x0d, 0x26, 0xc3, 0xe1, 0xc5, 0xe6, 0x28, 0x7f, 0x11, 0x4f, 0xf6, 0x6b, 0xf7, 0x98, + 0x35, 0x3d, 0x96, 0x7e, 0x21, 0x01, 0x37, 0x44, 0x92, 0x47, 0x1a, 0x7a, 0x0b, 0x80, 0x61, 0xb6, + 0x3b, 0x2e, 0xeb, 0x88, 0x58, 0x82, 0xcd, 0x52, 0x09, 0x4d, 0x5e, 0x24, 0x79, 0x76, 0x5c, 0x6f, + 0x3c, 0x49, 0xc7, 0x81, 0x89, 0xa8, 0xc2, 0x85, 0xae, 0xa1, 0x29, 0x6a, 0xe8, 0x6c, 0x9f, 0x37, + 0xed, 0x09, 0xcc, 0x7b, 0x41, 0xd6, 0x9b, 0x06, 0x36, 0x5d, 0xd5, 0x71, 0x6d, 0xac, 0xb5, 0x0c, + 0xb3, 0x41, 0x2b, 0x48, 0xa6, 0x94, 0xae, 0x6b, 0x4d, 0x07, 0x2b, 0x13, 0x6c, 0xb8, 0x2a, 0x46, + 0x09, 0x82, 0x06, 0x90, 0xed, 0x43, 0x8c, 0x06, 0x10, 0x6c, 0xd8, 0x43, 0xcc, 0x7d, 0x33, 0x03, + 0x39, 0x5f, 0x5f, 0x8d, 0x4e, 0x42, 0xfe, 0x59, 0xed, 0xaa, 0xa6, 0x8a, 0xb3, 0x12, 0xf3, 0x44, + 0x8e, 0xc8, 0xb6, 0xf9, 0x79, 0xe9, 0x5e, 0x98, 0xa6, 0x2a, 0x56, 0xc7, 0xc5, 0xb6, 0xaa, 0x37, + 0x35, 0xc7, 0xa1, 0x4e, 0xcb, 0x50, 0x55, 0x44, 0xc6, 0xb6, 0xc8, 0xd0, 0xb2, 0x18, 0x41, 0xe7, + 0x60, 0x8a, 0x22, 0x5a, 0x9d, 0xa6, 0x6b, 0xb4, 0x9b, 0x58, 0x25, 0xa7, 0x37, 0x87, 0x56, 0x12, + 0xcf, 0xb2, 0x49, 0xa2, 0xb1, 0xc1, 0x15, 0x88, 0x45, 0x0e, 0x5a, 0x81, 0x5b, 0x28, 0xac, 0x81, + 0x4d, 0x6c, 0x6b, 0x2e, 0x56, 0xf1, 0x73, 0x1d, 0xad, 0xe9, 0xa8, 0x9a, 0x59, 0x53, 0xf7, 0x35, + 0x67, 0xbf, 0x38, 0x4d, 0x08, 0x96, 0x12, 0x45, 0x49, 0xb9, 0x89, 0x28, 0xae, 0x72, 0xbd, 0x0a, + 0x55, 0x2b, 0x9b, 0xb5, 0xcb, 0x9a, 0xb3, 0x8f, 0x4a, 0x70, 0x8c, 0xb2, 0x38, 0xae, 0x6d, 0x98, + 0x0d, 0x55, 0xdf, 0xc7, 0xfa, 0x15, 0xb5, 0xe3, 0xd6, 0x2f, 0x14, 0x6f, 0xf6, 0xcf, 0x4f, 0x2d, + 0xac, 0x52, 0x9d, 0x65, 0xa2, 0xb2, 0xeb, 0xd6, 0x2f, 0xa0, 0x2a, 0xe4, 0xc9, 0x62, 0xb4, 0x8c, + 0x17, 0xb1, 0x5a, 0xb7, 0x6c, 0x5a, 0x1a, 0x0b, 0x11, 0xa9, 0xc9, 0xe7, 0xc1, 0x85, 0x2d, 0x0e, + 0xd8, 0xb0, 0x6a, 0xb8, 0x94, 0xae, 0x6e, 0x57, 0x2a, 0x2b, 0x4a, 0x4e, 0xb0, 0x5c, 0xb2, 0x6c, + 0x12, 0x50, 0x0d, 0xcb, 0x73, 0x70, 0x8e, 0x05, 0x54, 0xc3, 0x12, 0xee, 0x3d, 0x07, 0x53, 0xba, + 0xce, 0xde, 0xd9, 0xd0, 0x55, 0x7e, 0xc6, 0x72, 0x8a, 0x72, 0xc0, 0x59, 0xba, 0xbe, 0xca, 0x14, + 0x78, 0x8c, 0x3b, 0xe8, 0x41, 0xb8, 0xa1, 0xeb, 0x2c, 0x3f, 0x70, 0xb2, 0xe7, 0x2d, 0xc3, 0xd0, + 0x73, 0x30, 0xd5, 0x3e, 0xe8, 0x05, 0xa2, 0xc0, 0x8c, 0xed, 0x83, 0x30, 0xec, 0x01, 0x98, 0x6e, + 0xef, 0xb7, 0x7b, 0x71, 0xa7, 0xfd, 0x38, 0xd4, 0xde, 0x6f, 0x87, 0x81, 0xb7, 0xd3, 0x03, 0xb7, + 0x8d, 0x75, 0xcd, 0xc5, 0xb5, 0xe2, 0x8d, 0x7e, 0x75, 0xdf, 0x00, 0x3a, 0x03, 0xb2, 0xae, 0xab, + 0xd8, 0xd4, 0xf6, 0x9a, 0x58, 0xd5, 0x6c, 0x6c, 0x6a, 0x4e, 0xf1, 0xb8, 0x5f, 0xb9, 0xa0, 0xeb, + 0x15, 0x3a, 0x5a, 0xa6, 0x83, 0xe8, 0x34, 0x4c, 0x5a, 0x7b, 0xcf, 0xea, 0x2c, 0x24, 0xd5, 0xb6, + 0x8d, 0xeb, 0xc6, 0x0b, 0xc5, 0xdb, 0xa8, 0x7f, 0x27, 0xc8, 0x00, 0x0d, 0xc8, 0x6d, 0x2a, 0x46, + 0x77, 0x82, 0xac, 0x3b, 0xfb, 0x9a, 0xdd, 0xa6, 0x39, 0xd9, 0x69, 0x6b, 0x3a, 0x2e, 0xde, 0xce, + 0x54, 0x99, 0x7c, 0x53, 0x88, 0xc9, 0x96, 0x70, 0x9e, 0x37, 0xea, 0xae, 0x60, 0x3c, 0xc5, 0xb6, + 0x04, 0x95, 0x71, 0xb6, 0x79, 0x90, 0x89, 0x2b, 0x02, 0x13, 0xcf, 0x53, 0xb5, 0x42, 0x7b, 0xbf, + 0xed, 0x9f, 0xf7, 0x56, 0x18, 0x27, 0x9a, 0xdd, 0x49, 0xef, 0x64, 0x0d, 0x59, 0x7b, 0xdf, 0x37, + 0xe3, 0xc7, 0xd6, 0x1b, 0xcf, 0x95, 0x20, 0xef, 0x8f, 0x4f, 0x94, 0x05, 0x16, 0xa1, 0xb2, 0x44, + 0x9a, 0x95, 0xe5, 0xad, 0x15, 0xd2, 0x66, 0x3c, 0x5d, 0x91, 0x13, 0xa4, 0xdd, 0x59, 0x5f, 0xdb, + 0xa9, 0xa8, 0xca, 0xee, 0xe6, 0xce, 0xda, 0x46, 0x45, 0x4e, 0xfa, 0xfb, 0xea, 0xef, 0x26, 0xa0, + 0x10, 0x3c, 0x22, 0xa1, 0xcf, 0xc2, 0x8d, 0xe2, 0x3e, 0xc3, 0xc1, 0xae, 0xfa, 0xbc, 0x61, 0xd3, + 0x2d, 0xd3, 0xd2, 0x58, 0xf9, 0xf2, 0x16, 0x6d, 0x9a, 0x6b, 0x55, 0xb1, 0xfb, 0x84, 0x61, 0x93, + 0x0d, 0xd1, 0xd2, 0x5c, 0xb4, 0x0e, 0xc7, 0x4d, 0x4b, 0x75, 0x5c, 0xcd, 0xac, 0x69, 0x76, 0x4d, + 0xed, 0xde, 0x24, 0xa9, 0x9a, 0xae, 0x63, 0xc7, 0xb1, 0x58, 0xa9, 0xf2, 0x58, 0x3e, 0x63, 0x5a, + 0x55, 0xae, 0xdc, 0xcd, 0xe1, 0x65, 0xae, 0x1a, 0x0a, 0xb0, 0x64, 0xbf, 0x00, 0xbb, 0x19, 0xb2, + 0x2d, 0xad, 0xad, 0x62, 0xd3, 0xb5, 0x0f, 0x68, 0x63, 0x9c, 0x51, 0x32, 0x2d, 0xad, 0x5d, 0x21, + 0xcf, 0x9f, 0xcc, 0xf9, 0xe4, 0x47, 0x49, 0xc8, 0xfb, 0x9b, 0x63, 0x72, 0xd6, 0xd0, 0x69, 0x1d, + 0x91, 0x68, 0xa6, 0xb9, 0x75, 0x60, 0x2b, 0xbd, 0xb0, 0x4c, 0x0a, 0x4c, 0x69, 0x94, 0xb5, 0xac, + 0x0a, 0x43, 0x92, 0xe2, 0x4e, 0x72, 0x0b, 0x66, 0x2d, 0x42, 0x46, 0xe1, 0x4f, 0x68, 0x15, 0x46, + 0x9f, 0x75, 0x28, 0xf7, 0x28, 0xe5, 0xbe, 0x6d, 0x30, 0xf7, 0xa3, 0x55, 0x4a, 0x9e, 0x7d, 0xb4, + 0xaa, 0x6e, 0x6e, 0x29, 0x1b, 0xe5, 0x75, 0x85, 0xc3, 0xd1, 0x4d, 0x90, 0x6a, 0x6a, 0x2f, 0x1e, + 0x04, 0x4b, 0x11, 0x15, 0x0d, 0xeb, 0xf8, 0x9b, 0x20, 0xf5, 0x3c, 0xd6, 0xae, 0x04, 0x0b, 0x00, + 0x15, 0x7d, 0x8c, 0xa1, 0x7f, 0x06, 0xd2, 0xd4, 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x1e, 0x41, 0x19, + 0x48, 0x2d, 0x6f, 0x29, 0x24, 0xfc, 0x65, 0xc8, 0x33, 0xa9, 0xba, 0xbd, 0x56, 0x59, 0xae, 0xc8, + 0x89, 0xb9, 0x73, 0x30, 0xca, 0x9c, 0x40, 0xb6, 0x86, 0xe7, 0x06, 0x79, 0x84, 0x3f, 0x72, 0x0e, + 0x49, 0x8c, 0xee, 0x6e, 0x2c, 0x55, 0x14, 0x39, 0xe1, 0x5f, 0x5e, 0x07, 0xf2, 0xfe, 0xbe, 0xf8, + 0x93, 0x89, 0xa9, 0xbf, 0x97, 0x20, 0xe7, 0xeb, 0x73, 0x49, 0x83, 0xa2, 0x35, 0x9b, 0xd6, 0xf3, + 0xaa, 0xd6, 0x34, 0x34, 0x87, 0x07, 0x05, 0x50, 0x51, 0x99, 0x48, 0x86, 0x5d, 0xb4, 0x4f, 0xc4, + 0xf8, 0xd7, 0x24, 0x90, 0xc3, 0x2d, 0x66, 0xc8, 0x40, 0xe9, 0xa7, 0x6a, 0xe0, 0xab, 0x12, 0x14, + 0x82, 0x7d, 0x65, 0xc8, 0xbc, 0x93, 0x3f, 0x55, 0xf3, 0xde, 0x4a, 0xc0, 0x78, 0xa0, 0x9b, 0x1c, + 0xd6, 0xba, 0xe7, 0x60, 0xd2, 0xa8, 0xe1, 0x56, 0xdb, 0x72, 0xb1, 0xa9, 0x1f, 0xa8, 0x4d, 0x7c, + 0x15, 0x37, 0x8b, 0x73, 0x34, 0x51, 0x9c, 0x19, 0xdc, 0xaf, 0x2e, 0xac, 0x75, 0x71, 0xeb, 0x04, + 0x56, 0x9a, 0x5a, 0x5b, 0xa9, 0x6c, 0x6c, 0x6f, 0xed, 0x54, 0x36, 0x97, 0x9f, 0x52, 0x77, 0x37, + 0x1f, 0xdb, 0xdc, 0x7a, 0x62, 0x53, 0x91, 0x8d, 0x90, 0xda, 0xc7, 0xb8, 0xd5, 0xb7, 0x41, 0x0e, + 0x1b, 0x85, 0x6e, 0x84, 0x28, 0xb3, 0xe4, 0x11, 0x34, 0x05, 0x13, 0x9b, 0x5b, 0x6a, 0x75, 0x6d, + 0xa5, 0xa2, 0x56, 0x2e, 0x5d, 0xaa, 0x2c, 0xef, 0x54, 0xd9, 0x0d, 0x84, 0xa7, 0xbd, 0x13, 0xdc, + 0xd4, 0xaf, 0x24, 0x61, 0x2a, 0xc2, 0x12, 0x54, 0xe6, 0x67, 0x07, 0x76, 0x9c, 0xb9, 0x67, 0x18, + 0xeb, 0x17, 0x48, 0xc9, 0xdf, 0xd6, 0x6c, 0x97, 0x1f, 0x35, 0xee, 0x04, 0xe2, 0x25, 0xd3, 0x35, + 0xea, 0x06, 0xb6, 0xf9, 0x85, 0x0d, 0x3b, 0x50, 0x4c, 0x74, 0xe5, 0xec, 0xce, 0xe6, 0x6e, 0x40, + 0x6d, 0xcb, 0x31, 0x5c, 0xe3, 0x2a, 0x56, 0x0d, 0x53, 0xdc, 0xee, 0x90, 0x03, 0x46, 0x4a, 0x91, + 0xc5, 0xc8, 0x9a, 0xe9, 0x7a, 0xda, 0x26, 0x6e, 0x68, 0x21, 0x6d, 0x92, 0xc0, 0x93, 0x8a, 0x2c, + 0x46, 0x3c, 0xed, 0x93, 0x90, 0xaf, 0x59, 0x1d, 0xd2, 0x75, 0x31, 0x3d, 0x52, 0x2f, 0x24, 0x25, + 0xc7, 0x64, 0x9e, 0x0a, 0xef, 0xa7, 0xbb, 0xd7, 0x4a, 0x79, 0x25, 0xc7, 0x64, 0x4c, 0xe5, 0x14, + 0x4c, 0x68, 0x8d, 0x86, 0x4d, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0x14, 0x3c, 0x31, 0x55, 0x9c, 0x79, + 0x14, 0x32, 0xc2, 0x0f, 0xa4, 0x24, 0x13, 0x4f, 0xa8, 0x6d, 0x76, 0xec, 0x4d, 0xcc, 0x67, 0x95, + 0x8c, 0x29, 0x06, 0x4f, 0x42, 0xde, 0x70, 0xd4, 0xee, 0x2d, 0x79, 0xe2, 0x44, 0x62, 0x3e, 0xa3, + 0xe4, 0x0c, 0xc7, 0xbb, 0x61, 0x9c, 0x7b, 0x3d, 0x01, 0x85, 0xe0, 0x2d, 0x3f, 0x5a, 0x81, 0x4c, + 0xd3, 0xd2, 0x35, 0x1a, 0x5a, 0xec, 0x13, 0xd3, 0x7c, 0xcc, 0x87, 0x81, 0x85, 0x75, 0xae, 0xaf, + 0x78, 0xc8, 0x99, 0x7f, 0x96, 0x20, 0x23, 0xc4, 0xe8, 0x18, 0xa4, 0xda, 0x9a, 0xbb, 0x4f, 0xe9, + 0xd2, 0x4b, 0x09, 0x59, 0x52, 0xe8, 0x33, 0x91, 0x3b, 0x6d, 0xcd, 0xa4, 0x21, 0xc0, 0xe5, 0xe4, + 0x99, 0xac, 0x6b, 0x13, 0x6b, 0x35, 0x7a, 0xfc, 0xb0, 0x5a, 0x2d, 0x6c, 0xba, 0x8e, 0x58, 0x57, + 0x2e, 0x5f, 0xe6, 0x62, 0x74, 0x17, 0x4c, 0xba, 0xb6, 0x66, 0x34, 0x03, 0xba, 0x29, 0xaa, 0x2b, + 0x8b, 0x01, 0x4f, 0xb9, 0x04, 0x37, 0x09, 0xde, 0x1a, 0x76, 0x35, 0x7d, 0x1f, 0xd7, 0xba, 0xa0, + 0x51, 0x7a, 0xcd, 0x70, 0x23, 0x57, 0x58, 0xe1, 0xe3, 0x02, 0x3b, 0xf7, 0x7d, 0x09, 0x26, 0xc5, + 0x81, 0xa9, 0xe6, 0x39, 0x6b, 0x03, 0x40, 0x33, 0x4d, 0xcb, 0xf5, 0xbb, 0xab, 0x37, 0x94, 0x7b, + 0x70, 0x0b, 0x65, 0x0f, 0xa4, 0xf8, 0x08, 0x66, 0x5a, 0x00, 0xdd, 0x91, 0xbe, 0x6e, 0x3b, 0x0e, + 0x39, 0xfe, 0x09, 0x87, 0x7e, 0x07, 0x64, 0x47, 0x6c, 0x60, 0x22, 0x72, 0xb2, 0x42, 0xd3, 0x90, + 0xde, 0xc3, 0x0d, 0xc3, 0xe4, 0x17, 0xb3, 0xec, 0x41, 0x5c, 0x84, 0xa4, 0xbc, 0x8b, 0x90, 0xa5, + 0xcf, 0xc3, 0x94, 0x6e, 0xb5, 0xc2, 0xe6, 0x2e, 0xc9, 0xa1, 0x63, 0xbe, 0x73, 0x59, 0x7a, 0x1a, + 0xba, 0x2d, 0xe6, 0x07, 0x92, 0xf4, 0x87, 0x89, 0xe4, 0xea, 0xf6, 0xd2, 0xd7, 0x12, 0x33, 0xab, + 0x0c, 0xba, 0x2d, 0xde, 0x54, 0xc1, 0xf5, 0x26, 0xd6, 0x89, 0xf5, 0xf0, 0xc5, 0x53, 0x70, 0x4f, + 0xc3, 0x70, 0xf7, 0x3b, 0x7b, 0x0b, 0xba, 0xd5, 0x3a, 0xd3, 0xb0, 0x1a, 0x56, 0xf7, 0xd3, 0x27, + 0x79, 0xa2, 0x0f, 0xf4, 0x2f, 0xfe, 0xf9, 0x33, 0xeb, 0x49, 0x67, 0x62, 0xbf, 0x95, 0x96, 0x36, + 0x61, 0x8a, 0x2b, 0xab, 0xf4, 0xfb, 0x0b, 0x3b, 0x45, 0xa0, 0x81, 0x77, 0x58, 0xc5, 0x6f, 0xbc, + 0x4d, 0xcb, 0xb5, 0x32, 0xc9, 0xa1, 0x64, 0x8c, 0x1d, 0x34, 0x4a, 0x0a, 0xdc, 0x10, 0xe0, 0x63, + 0x5b, 0x13, 0xdb, 0x31, 0x8c, 0xdf, 0xe5, 0x8c, 0x53, 0x3e, 0xc6, 0x2a, 0x87, 0x96, 0x96, 0x61, + 0xfc, 0x28, 0x5c, 0xff, 0xc0, 0xb9, 0xf2, 0xd8, 0x4f, 0xb2, 0x0a, 0x13, 0x94, 0x44, 0xef, 0x38, + 0xae, 0xd5, 0xa2, 0x79, 0x6f, 0x30, 0xcd, 0x3f, 0xbe, 0xcd, 0xf6, 0x4a, 0x81, 0xc0, 0x96, 0x3d, + 0x54, 0xa9, 0x04, 0xf4, 0x93, 0x53, 0x0d, 0xeb, 0xcd, 0x18, 0x86, 0x37, 0xb8, 0x21, 0x9e, 0x7e, + 0xe9, 0x71, 0x98, 0x26, 0x7f, 0xd3, 0xb4, 0xe4, 0xb7, 0x24, 0xfe, 0xc2, 0xab, 0xf8, 0xfd, 0x97, + 0xd8, 0x76, 0x9c, 0xf2, 0x08, 0x7c, 0x36, 0xf9, 0x56, 0xb1, 0x81, 0x5d, 0x17, 0xdb, 0x8e, 0xaa, + 0x35, 0xa3, 0xcc, 0xf3, 0xdd, 0x18, 0x14, 0xbf, 0xf4, 0x6e, 0x70, 0x15, 0x57, 0x19, 0xb2, 0xdc, + 0x6c, 0x96, 0x76, 0xe1, 0xc6, 0x88, 0xa8, 0x18, 0x82, 0xf3, 0x15, 0xce, 0x39, 0xdd, 0x13, 0x19, + 0x84, 0x76, 0x1b, 0x84, 0xdc, 0x5b, 0xcb, 0x21, 0x38, 0x7f, 0x8f, 0x73, 0x22, 0x8e, 0x15, 0x4b, + 0x4a, 0x18, 0x1f, 0x85, 0xc9, 0xab, 0xd8, 0xde, 0xb3, 0x1c, 0x7e, 0x4b, 0x33, 0x04, 0xdd, 0xab, + 0x9c, 0x6e, 0x82, 0x03, 0xe9, 0xb5, 0x0d, 0xe1, 0x7a, 0x10, 0x32, 0x75, 0x4d, 0xc7, 0x43, 0x50, + 0x7c, 0x99, 0x53, 0x8c, 0x11, 0x7d, 0x02, 0x2d, 0x43, 0xbe, 0x61, 0xf1, 0xca, 0x14, 0x0f, 0x7f, + 0x8d, 0xc3, 0x73, 0x02, 0xc3, 0x29, 0xda, 0x56, 0xbb, 0xd3, 0x24, 0x65, 0x2b, 0x9e, 0xe2, 0xf7, + 0x05, 0x85, 0xc0, 0x70, 0x8a, 0x23, 0xb8, 0xf5, 0x0f, 0x04, 0x85, 0xe3, 0xf3, 0xe7, 0x23, 0x90, + 0xb3, 0xcc, 0xe6, 0x81, 0x65, 0x0e, 0x63, 0xc4, 0x57, 0x38, 0x03, 0x70, 0x08, 0x21, 0xb8, 0x08, + 0xd9, 0x61, 0x17, 0xe2, 0x8f, 0xde, 0x15, 0xdb, 0x43, 0xac, 0xc0, 0x2a, 0x4c, 0x88, 0x04, 0x65, + 0x58, 0xe6, 0x10, 0x14, 0x7f, 0xcc, 0x29, 0x0a, 0x3e, 0x18, 0x7f, 0x0d, 0x17, 0x3b, 0x6e, 0x03, + 0x0f, 0x43, 0xf2, 0xba, 0x78, 0x0d, 0x0e, 0xe1, 0xae, 0xdc, 0xc3, 0xa6, 0xbe, 0x3f, 0x1c, 0xc3, + 0x57, 0x85, 0x2b, 0x05, 0x86, 0x50, 0x2c, 0xc3, 0x78, 0x4b, 0xb3, 0x9d, 0x7d, 0xad, 0x39, 0xd4, + 0x72, 0xfc, 0x09, 0xe7, 0xc8, 0x7b, 0x20, 0xee, 0x91, 0x8e, 0x79, 0x14, 0x9a, 0xaf, 0x09, 0x8f, + 0xf8, 0x60, 0x7c, 0xeb, 0x39, 0x2e, 0xbd, 0xd2, 0x3a, 0x0a, 0xdb, 0x9f, 0x8a, 0xad, 0xc7, 0xb0, + 0x1b, 0x7e, 0xc6, 0x8b, 0x90, 0x75, 0x8c, 0x17, 0x87, 0xa2, 0xf9, 0x33, 0xb1, 0xd2, 0x14, 0x40, + 0xc0, 0x4f, 0xc1, 0x4d, 0x91, 0x65, 0x62, 0x08, 0xb2, 0x3f, 0xe7, 0x64, 0xc7, 0x22, 0x4a, 0x05, + 0x4f, 0x09, 0x47, 0xa5, 0xfc, 0x0b, 0x91, 0x12, 0x70, 0x88, 0x6b, 0x9b, 0x9c, 0x15, 0x1c, 0xad, + 0x7e, 0x34, 0xaf, 0xfd, 0xa5, 0xf0, 0x1a, 0xc3, 0x06, 0xbc, 0xb6, 0x03, 0xc7, 0x38, 0xe3, 0xd1, + 0xd6, 0xf5, 0xeb, 0x22, 0xb1, 0x32, 0xf4, 0x6e, 0x70, 0x75, 0x3f, 0x0f, 0x33, 0x9e, 0x3b, 0x45, + 0x53, 0xea, 0xa8, 0x2d, 0xad, 0x3d, 0x04, 0xf3, 0x37, 0x38, 0xb3, 0xc8, 0xf8, 0x5e, 0x57, 0xeb, + 0x6c, 0x68, 0x6d, 0x42, 0xfe, 0x24, 0x14, 0x05, 0x79, 0xc7, 0xb4, 0xb1, 0x6e, 0x35, 0x4c, 0xe3, + 0x45, 0x5c, 0x1b, 0x82, 0xfa, 0xaf, 0x42, 0x4b, 0xb5, 0xeb, 0x83, 0x13, 0xe6, 0x35, 0x90, 0xbd, + 0x5e, 0x45, 0x35, 0x5a, 0x6d, 0xcb, 0x76, 0x63, 0x18, 0xbf, 0x29, 0x56, 0xca, 0xc3, 0xad, 0x51, + 0x58, 0xa9, 0x02, 0x05, 0xfa, 0x38, 0x6c, 0x48, 0xfe, 0x35, 0x27, 0x1a, 0xef, 0xa2, 0x78, 0xe2, + 0xd0, 0xad, 0x56, 0x5b, 0xb3, 0x87, 0xc9, 0x7f, 0x7f, 0x23, 0x12, 0x07, 0x87, 0xf0, 0xc4, 0xe1, + 0x1e, 0xb4, 0x31, 0xa9, 0xf6, 0x43, 0x30, 0x7c, 0x4b, 0x24, 0x0e, 0x81, 0xe1, 0x14, 0xa2, 0x61, + 0x18, 0x82, 0xe2, 0x6f, 0x05, 0x85, 0xc0, 0x10, 0x8a, 0xcf, 0x75, 0x0b, 0xad, 0x8d, 0x1b, 0x86, + 0xe3, 0xda, 0xac, 0x15, 0x1e, 0x4c, 0xf5, 0xed, 0x77, 0x83, 0x4d, 0x98, 0xe2, 0x83, 0x96, 0x1e, + 0x85, 0x89, 0x50, 0x8b, 0x81, 0xe2, 0x7e, 0xbf, 0x52, 0xfc, 0x85, 0xf7, 0x79, 0x32, 0x0a, 0x76, + 0x18, 0xa5, 0x75, 0xb2, 0xee, 0xc1, 0x3e, 0x20, 0x9e, 0xec, 0xa5, 0xf7, 0xbd, 0xa5, 0x0f, 0xb4, + 0x01, 0xa5, 0x4b, 0x30, 0x1e, 0xe8, 0x01, 0xe2, 0xa9, 0x7e, 0x91, 0x53, 0xe5, 0xfd, 0x2d, 0x40, + 0xe9, 0x1c, 0xa4, 0x48, 0x3d, 0x8f, 0x87, 0xff, 0x12, 0x87, 0x53, 0xf5, 0xd2, 0x43, 0x90, 0x11, + 0x75, 0x3c, 0x1e, 0xfa, 0xcb, 0x1c, 0xea, 0x41, 0x08, 0x5c, 0xd4, 0xf0, 0x78, 0xf8, 0xaf, 0x08, + 0xb8, 0x80, 0x10, 0xf8, 0xf0, 0x2e, 0xfc, 0xce, 0xaf, 0xa6, 0x78, 0x1e, 0x16, 0xbe, 0xbb, 0x08, + 0x63, 0xbc, 0x78, 0xc7, 0xa3, 0xbf, 0xc0, 0x27, 0x17, 0x88, 0xd2, 0x03, 0x90, 0x1e, 0xd2, 0xe1, + 0xbf, 0xc6, 0xa1, 0x4c, 0xbf, 0xb4, 0x0c, 0x39, 0x5f, 0xc1, 0x8e, 0x87, 0xff, 0x3a, 0x87, 0xfb, + 0x51, 0xc4, 0x74, 0x5e, 0xb0, 0xe3, 0x09, 0x7e, 0x43, 0x98, 0xce, 0x11, 0xc4, 0x6d, 0xa2, 0x56, + 0xc7, 0xa3, 0x7f, 0x53, 0x78, 0x5d, 0x40, 0x4a, 0x8f, 0x40, 0xd6, 0xcb, 0xbf, 0xf1, 0xf8, 0xdf, + 0xe2, 0xf8, 0x2e, 0x86, 0x78, 0xc0, 0x97, 0xff, 0xe3, 0x29, 0x7e, 0x5b, 0x78, 0xc0, 0x87, 0x22, + 0xdb, 0x28, 0x5c, 0xd3, 0xe3, 0x99, 0x7e, 0x47, 0x6c, 0xa3, 0x50, 0x49, 0x27, 0xab, 0x49, 0xd3, + 0x60, 0x3c, 0xc5, 0xef, 0x8a, 0xd5, 0xa4, 0xfa, 0xc4, 0x8c, 0x70, 0x91, 0x8c, 0xe7, 0xf8, 0xa2, + 0x30, 0x23, 0x54, 0x23, 0x4b, 0xdb, 0x80, 0x7a, 0x0b, 0x64, 0x3c, 0xdf, 0xcb, 0x9c, 0x6f, 0xb2, + 0xa7, 0x3e, 0x96, 0x9e, 0x80, 0x63, 0xd1, 0xc5, 0x31, 0x9e, 0xf5, 0x4b, 0xef, 0x87, 0x8e, 0x33, + 0xfe, 0xda, 0x58, 0xda, 0xe9, 0x66, 0x59, 0x7f, 0x61, 0x8c, 0xa7, 0x7d, 0xe5, 0xfd, 0x60, 0xa2, + 0xf5, 0xd7, 0xc5, 0x52, 0x19, 0xa0, 0x5b, 0x93, 0xe2, 0xb9, 0x5e, 0xe5, 0x5c, 0x3e, 0x10, 0xd9, + 0x1a, 0xbc, 0x24, 0xc5, 0xe3, 0xbf, 0x2c, 0xb6, 0x06, 0x47, 0x90, 0xad, 0x21, 0xaa, 0x51, 0x3c, + 0xfa, 0x35, 0xb1, 0x35, 0x04, 0xa4, 0x74, 0x11, 0x32, 0x66, 0xa7, 0xd9, 0x24, 0xb1, 0x85, 0x06, + 0xff, 0x24, 0xab, 0xf8, 0xaf, 0x1f, 0x72, 0xb0, 0x00, 0x94, 0xce, 0x41, 0x1a, 0xb7, 0xf6, 0x70, + 0x2d, 0x0e, 0xf9, 0x6f, 0x1f, 0x8a, 0x7c, 0x42, 0xb4, 0x4b, 0x8f, 0x00, 0xb0, 0xc3, 0x34, 0xfd, + 0x50, 0x14, 0x83, 0xfd, 0xf7, 0x0f, 0xf9, 0x8f, 0x25, 0xba, 0x90, 0x2e, 0x01, 0xfb, 0xe9, 0xc5, + 0x60, 0x82, 0x77, 0x83, 0x04, 0xf4, 0x00, 0xfe, 0x20, 0x8c, 0x3d, 0xeb, 0x58, 0xa6, 0xab, 0x35, + 0xe2, 0xd0, 0xff, 0xc1, 0xd1, 0x42, 0x9f, 0x38, 0xac, 0x65, 0xd9, 0xd8, 0xd5, 0x1a, 0x4e, 0x1c, + 0xf6, 0x3f, 0x39, 0xd6, 0x03, 0x10, 0xb0, 0xae, 0x39, 0xee, 0x30, 0xef, 0xfd, 0x13, 0x01, 0x16, + 0x00, 0x62, 0x34, 0xf9, 0xfb, 0x0a, 0x3e, 0x88, 0xc3, 0xbe, 0x27, 0x8c, 0xe6, 0xfa, 0xa5, 0x87, + 0x20, 0x4b, 0xfe, 0x64, 0xbf, 0x80, 0x8a, 0x01, 0xff, 0x17, 0x07, 0x77, 0x11, 0x64, 0x66, 0xc7, + 0xad, 0xb9, 0x46, 0xbc, 0xb3, 0xff, 0x9b, 0xaf, 0xb4, 0xd0, 0x2f, 0x95, 0x21, 0xe7, 0xb8, 0xb5, + 0x5a, 0x87, 0x77, 0x34, 0x31, 0xf0, 0xff, 0xf9, 0xd0, 0x3b, 0xe4, 0x7a, 0x98, 0xa5, 0x4a, 0xf4, + 0x7d, 0x1d, 0xac, 0x5a, 0xab, 0x16, 0xbb, 0xa9, 0x7b, 0x7a, 0x2e, 0xfe, 0xca, 0x0d, 0xfe, 0xf7, + 0x1e, 0xb8, 0x55, 0xb7, 0x5a, 0x7b, 0x96, 0x73, 0xc6, 0x97, 0xaa, 0xce, 0xb4, 0xb4, 0xb6, 0x43, + 0x15, 0x16, 0xf9, 0x7d, 0x5c, 0x8e, 0x3f, 0x91, 0x81, 0x99, 0xa3, 0xdd, 0xe5, 0xcd, 0xdd, 0x02, + 0xe3, 0x97, 0x9a, 0x96, 0xe6, 0x1a, 0x66, 0x63, 0xdb, 0x32, 0x4c, 0x17, 0xe5, 0x41, 0xaa, 0xd3, + 0x6f, 0x51, 0x92, 0x22, 0xd5, 0xe7, 0xfe, 0x29, 0x0d, 0x59, 0x76, 0x0d, 0xb4, 0xa1, 0xb5, 0xd1, + 0xcf, 0x43, 0x7e, 0x93, 0xef, 0xa4, 0xfb, 0x16, 0x2f, 0x38, 0xde, 0xb5, 0xb3, 0x6f, 0xfe, 0x05, + 0x4f, 0x7b, 0xc1, 0xaf, 0x4a, 0xbf, 0x3d, 0x2f, 0xdd, 0xfb, 0xc3, 0x37, 0x8f, 0xdf, 0xdd, 0xd7, + 0x3e, 0x52, 0x3a, 0xcf, 0xb0, 0x90, 0x5f, 0xd8, 0x35, 0x4c, 0xf7, 0xbe, 0xc5, 0x0b, 0x4a, 0x60, + 0x3e, 0x74, 0x15, 0x32, 0x7c, 0xc0, 0xe1, 0x9f, 0x23, 0x6e, 0xeb, 0x33, 0xb7, 0x50, 0x63, 0xf3, + 0x9e, 0x7d, 0xe3, 0xcd, 0xe3, 0x23, 0x47, 0x9e, 0xdb, 0x9b, 0x0b, 0x3d, 0x07, 0x39, 0x61, 0xc7, + 0x5a, 0xcd, 0xe1, 0x3f, 0x3f, 0x3f, 0x15, 0xf3, 0xda, 0x6b, 0x35, 0x3e, 0xfb, 0x1d, 0x3f, 0x7c, + 0xf3, 0xf8, 0xdc, 0xc0, 0x99, 0x17, 0x76, 0x3b, 0x46, 0x4d, 0xf1, 0xcf, 0x81, 0x9e, 0x81, 0x24, + 0x99, 0x8a, 0xfd, 0x62, 0xef, 0x78, 0x9f, 0xa9, 0xbc, 0x29, 0x4e, 0xf3, 0x17, 0x1c, 0x66, 0x1a, + 0xc2, 0x3b, 0xf3, 0x08, 0x4c, 0xf6, 0x2c, 0x0f, 0x92, 0x21, 0x79, 0x05, 0x1f, 0xf0, 0x9f, 0x46, + 0x91, 0x3f, 0xd1, 0x74, 0xf7, 0xb7, 0x8b, 0xd2, 0x7c, 0x9e, 0xff, 0x20, 0xb1, 0x94, 0xb8, 0x20, + 0xcd, 0x5c, 0x84, 0xf1, 0x80, 0x8f, 0x8f, 0x04, 0x7e, 0x18, 0xe4, 0xb0, 0x97, 0x8e, 0x84, 0x3f, + 0x0f, 0x99, 0x8f, 0x82, 0x9b, 0xfb, 0x01, 0x82, 0xb1, 0x72, 0xb3, 0xb9, 0xa1, 0xb5, 0x1d, 0xf4, + 0x14, 0x4c, 0xb2, 0x06, 0x7f, 0xc7, 0x5a, 0xa1, 0x1f, 0x80, 0x36, 0xb4, 0x36, 0x0f, 0xe8, 0xbb, + 0x02, 0xee, 0xe6, 0x80, 0x85, 0x1e, 0x6d, 0x3a, 0xbf, 0xd2, 0xcb, 0x82, 0x1e, 0x07, 0x59, 0x08, + 0xe9, 0xde, 0x22, 0xcc, 0x2c, 0x5c, 0x4f, 0x0f, 0x64, 0x16, 0xca, 0x8c, 0xb8, 0x87, 0x03, 0x3d, + 0x0c, 0x99, 0x35, 0xd3, 0xbd, 0x7f, 0x91, 0xf0, 0xb1, 0x18, 0x9c, 0x8b, 0xe4, 0x13, 0x4a, 0x8c, + 0xc7, 0xc3, 0x70, 0xfc, 0xf9, 0xb3, 0x04, 0x9f, 0x1a, 0x8c, 0xa7, 0x4a, 0x5d, 0x3c, 0x7d, 0x44, + 0x65, 0xc8, 0x92, 0x35, 0x67, 0x06, 0xb0, 0xff, 0xf9, 0x70, 0x6b, 0x24, 0x81, 0xa7, 0xc5, 0x18, + 0xba, 0x28, 0x41, 0xc1, 0x6c, 0x18, 0x8d, 0xa1, 0xf0, 0x19, 0xd1, 0x45, 0x11, 0x8a, 0xaa, 0x67, + 0xc5, 0xd8, 0x00, 0x8a, 0x6a, 0xc8, 0x8a, 0xaa, 0xdf, 0x8a, 0xaa, 0x67, 0x45, 0x26, 0x86, 0xc2, + 0x6f, 0x85, 0xf7, 0x8c, 0x56, 0x00, 0x2e, 0x19, 0x2f, 0xe0, 0x1a, 0x33, 0x23, 0x1b, 0x91, 0x8c, + 0x04, 0x47, 0x57, 0x8d, 0x91, 0xf8, 0x70, 0x68, 0x15, 0x72, 0xd5, 0x7a, 0x97, 0x06, 0xf8, 0x7f, + 0xfc, 0x88, 0x34, 0xa5, 0x1e, 0xe2, 0xf1, 0x23, 0x3d, 0x73, 0xd8, 0x2b, 0xe5, 0xe2, 0xcc, 0xf1, + 0xbd, 0x93, 0x0f, 0xd7, 0x35, 0x87, 0xd1, 0xe4, 0x63, 0xcd, 0xf1, 0xf1, 0xf8, 0x91, 0xe8, 0x22, + 0x8c, 0x2d, 0x59, 0x16, 0xd1, 0x2c, 0x8e, 0x53, 0x92, 0x93, 0x91, 0x24, 0x5c, 0x87, 0x11, 0x08, + 0x04, 0x5d, 0x1d, 0x1a, 0xfa, 0x04, 0x5e, 0x18, 0xb4, 0x3a, 0x42, 0x4b, 0xac, 0x8e, 0x78, 0xf6, + 0xef, 0xc0, 0xa5, 0x03, 0x17, 0x93, 0x66, 0xba, 0x38, 0x31, 0xc4, 0x0e, 0x14, 0xca, 0xa1, 0x1d, + 0x28, 0xc4, 0xa8, 0x0a, 0x13, 0x42, 0x56, 0x31, 0x3b, 0x24, 0x07, 0x17, 0x65, 0xfe, 0xab, 0xee, + 0x41, 0xb4, 0x5c, 0x97, 0xb1, 0x86, 0x19, 0xd0, 0x36, 0x14, 0x84, 0x68, 0xc3, 0xa1, 0x2f, 0x3d, + 0x19, 0x51, 0x57, 0xc3, 0x9c, 0x4c, 0x95, 0x51, 0x86, 0xf0, 0x33, 0x2b, 0x70, 0x2c, 0x3a, 0x5b, + 0xc5, 0x65, 0x4b, 0xc9, 0x9f, 0x65, 0x97, 0xe1, 0x86, 0xc8, 0xcc, 0x14, 0x47, 0x92, 0x08, 0xd5, + 0x89, 0x40, 0x3a, 0xf2, 0x83, 0xd3, 0x11, 0xe0, 0x74, 0x2f, 0xb8, 0x1b, 0x64, 0x7e, 0x70, 0x32, + 0x02, 0x9c, 0xf4, 0x83, 0x3f, 0x0b, 0x85, 0x60, 0x1e, 0xf2, 0xa3, 0xc7, 0x23, 0xd0, 0xe3, 0x11, + 0xe8, 0xe8, 0xb9, 0x53, 0x11, 0xe8, 0x54, 0x08, 0x5d, 0xed, 0x3b, 0xf7, 0x64, 0x04, 0x7a, 0x32, + 0x02, 0x1d, 0x3d, 0x37, 0x8a, 0x40, 0x23, 0x3f, 0xfa, 0x21, 0x98, 0x08, 0xa5, 0x1c, 0x3f, 0x7c, + 0x2c, 0x02, 0x3e, 0x16, 0xaa, 0xcd, 0xe1, 0x54, 0xe3, 0xc7, 0x4f, 0x44, 0xe0, 0x27, 0xa2, 0xa6, + 0x8f, 0xb6, 0x7e, 0x34, 0x02, 0x3e, 0x1a, 0x39, 0x7d, 0x34, 0x5e, 0x8e, 0xc0, 0xcb, 0x7e, 0x7c, + 0x09, 0xf2, 0xfe, 0xac, 0xe2, 0xc7, 0x66, 0x22, 0xb0, 0x99, 0xb0, 0xdf, 0x03, 0x29, 0x25, 0x2e, + 0xd2, 0xb3, 0x7d, 0xb6, 0x4b, 0x20, 0x8d, 0x1c, 0xa9, 0xb3, 0x79, 0x12, 0xa6, 0xa3, 0x92, 0x46, + 0x04, 0xc7, 0x69, 0x3f, 0x47, 0x61, 0x71, 0x3a, 0x90, 0x2c, 0x28, 0xae, 0xd3, 0xf2, 0x33, 0x3f, + 0x03, 0x53, 0x11, 0xa9, 0x23, 0x82, 0xf8, 0x5e, 0x3f, 0x71, 0x6e, 0x71, 0x26, 0x40, 0x1c, 0x38, + 0x2b, 0xf8, 0x5b, 0xab, 0x1f, 0x4d, 0x41, 0x81, 0xa7, 0xa8, 0x2d, 0xbb, 0x86, 0x6d, 0x5c, 0x43, + 0x3f, 0xdb, 0xbf, 0xc3, 0x5a, 0x8c, 0x4a, 0x6d, 0x1c, 0x77, 0x84, 0x46, 0xeb, 0x99, 0xbe, 0x8d, + 0xd6, 0x7d, 0xc3, 0x4c, 0x10, 0xd7, 0x6f, 0x55, 0x7a, 0xfa, 0xad, 0x3b, 0x07, 0xd1, 0xf6, 0x6b, + 0xbb, 0x2a, 0x3d, 0x6d, 0x57, 0x1c, 0x4d, 0x64, 0xf7, 0x75, 0xb9, 0xb7, 0xfb, 0x3a, 0x3d, 0x88, + 0xa7, 0x7f, 0x13, 0x76, 0xb9, 0xb7, 0x09, 0x8b, 0x65, 0x8a, 0xee, 0xc5, 0x2e, 0xf7, 0xf6, 0x62, + 0x03, 0x99, 0xfa, 0xb7, 0x64, 0x97, 0x7b, 0x5b, 0xb2, 0x58, 0xa6, 0xe8, 0xce, 0xec, 0xb1, 0x88, + 0xce, 0xec, 0xae, 0x41, 0x54, 0x83, 0x1a, 0xb4, 0xcd, 0xa8, 0x06, 0xed, 0xee, 0x81, 0x86, 0x0d, + 0xec, 0xd3, 0x1e, 0x8b, 0xe8, 0xd3, 0xe2, 0x8d, 0xeb, 0xd3, 0xae, 0x6d, 0x46, 0xb5, 0x6b, 0x43, + 0x18, 0xd7, 0xaf, 0x6b, 0x5b, 0x0a, 0x77, 0x6d, 0xf3, 0x83, 0xb8, 0xa2, 0x9b, 0xb7, 0xcb, 0xbd, + 0xcd, 0xdb, 0xe9, 0xf8, 0xbd, 0x18, 0xd5, 0xc3, 0x3d, 0xd3, 0xb7, 0x87, 0x1b, 0x6a, 0x73, 0xc7, + 0xb5, 0x72, 0x4f, 0xf7, 0x6b, 0xe5, 0xee, 0x1d, 0x86, 0x7d, 0x70, 0x47, 0xf7, 0x44, 0x9f, 0x8e, + 0xee, 0xcc, 0x30, 0xd4, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, + 0xff, 0x3f, 0x1a, 0xbb, 0x52, 0xea, 0xe5, 0xaf, 0x1c, 0x97, 0x4e, 0x9f, 0x84, 0x31, 0x3e, 0x35, + 0x1a, 0x85, 0xc4, 0x46, 0x59, 0x1e, 0xa1, 0xff, 0x2e, 0xc9, 0x12, 0xfd, 0x77, 0x59, 0x4e, 0x2c, + 0xad, 0xbf, 0x71, 0x7d, 0x76, 0xe4, 0x7b, 0xd7, 0x67, 0x47, 0x7e, 0x70, 0x7d, 0x76, 0xe4, 0xad, + 0xeb, 0xb3, 0xd2, 0x3b, 0xd7, 0x67, 0xa5, 0xf7, 0xae, 0xcf, 0x4a, 0x1f, 0x5c, 0x9f, 0x95, 0xae, + 0x1d, 0xce, 0x4a, 0x5f, 0x3d, 0x9c, 0x95, 0xbe, 0x7e, 0x38, 0x2b, 0x7d, 0xfb, 0x70, 0x56, 0xfa, + 0xce, 0xe1, 0xac, 0xf4, 0xc6, 0xe1, 0xec, 0xc8, 0xf7, 0x0e, 0x67, 0xa5, 0xb7, 0x0e, 0x67, 0xa5, + 0x77, 0x0e, 0x67, 0x47, 0xde, 0x3b, 0x9c, 0x95, 0x3e, 0x38, 0x9c, 0x1d, 0xb9, 0xf6, 0xe3, 0xd9, + 0x91, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xf2, 0x32, 0x30, 0x68, 0x88, 0x47, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -1357,15 +1362,15 @@ func (this *AllMapsOrdered) Equal(that interface{}) bool { } type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetF() *float64 } -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) Proto() proto.Message { return this } -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) TestProto() proto.Message { return NewFloatingPointFromFace(this) } @@ -1380,18 +1385,18 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { } type CustomMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid GetIds() map[string]github_com_gogo_protobuf_test.Uuid } -func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomMap) Proto() proto.Message { return this } -func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomMap) TestProto() proto.Message { return NewCustomMapFromFace(this) } @@ -1421,7 +1426,7 @@ func NewCustomMapFromFace(that CustomMapFace) *CustomMap { } type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -1441,11 +1446,11 @@ type AllMapsFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) Proto() proto.Message { return this } -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) TestProto() proto.Message { return NewAllMapsFromFace(this) } @@ -1540,7 +1545,7 @@ func NewAllMapsFromFace(that AllMapsFace) *AllMaps { } type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -1560,11 +1565,11 @@ type AllMapsOrderedFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) Proto() proto.Message { return this } -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) TestProto() proto.Message { return NewAllMapsOrderedFromFace(this) } @@ -1683,7 +1688,7 @@ func (this *CustomMap) GoString() string { for k := range this.Nullable128S { keysForNullable128S = append(keysForNullable128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + sortkeys.Strings(keysForNullable128S) mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForNullable128S { mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) @@ -1696,7 +1701,7 @@ func (this *CustomMap) GoString() string { for k := range this.Uint128S { keysForUint128S = append(keysForUint128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + sortkeys.Strings(keysForUint128S) mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForUint128S { mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) @@ -1709,7 +1714,7 @@ func (this *CustomMap) GoString() string { for k := range this.NullableIds { keysForNullableIds = append(keysForNullableIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + sortkeys.Strings(keysForNullableIds) mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForNullableIds { mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) @@ -1722,7 +1727,7 @@ func (this *CustomMap) GoString() string { for k := range this.Ids { keysForIds = append(keysForIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + sortkeys.Strings(keysForIds) mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForIds { mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) @@ -1747,7 +1752,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -1760,7 +1765,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -1773,7 +1778,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -1786,7 +1791,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -1799,7 +1804,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -1812,7 +1817,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -1825,7 +1830,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -1838,7 +1843,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -1851,7 +1856,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -1864,7 +1869,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -1877,7 +1882,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -1890,7 +1895,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -1903,7 +1908,7 @@ func (this *AllMaps) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -1916,7 +1921,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -1929,7 +1934,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -1942,7 +1947,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -1955,7 +1960,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -1980,7 +1985,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -1993,7 +1998,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2006,7 +2011,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2019,7 +2024,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2032,7 +2037,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2045,7 +2050,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2058,7 +2063,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2071,7 +2076,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2084,7 +2089,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -2097,7 +2102,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -2110,7 +2115,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -2123,7 +2128,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -2136,7 +2141,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -2149,7 +2154,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -2162,7 +2167,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -2175,7 +2180,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -2188,7 +2193,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -3081,7 +3086,7 @@ func (this *CustomMap) String() string { for k := range this.Nullable128S { keysForNullable128S = append(keysForNullable128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) + sortkeys.Strings(keysForNullable128S) mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForNullable128S { mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) @@ -3091,7 +3096,7 @@ func (this *CustomMap) String() string { for k := range this.Uint128S { keysForUint128S = append(keysForUint128S, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) + sortkeys.Strings(keysForUint128S) mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" for _, k := range keysForUint128S { mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) @@ -3101,7 +3106,7 @@ func (this *CustomMap) String() string { for k := range this.NullableIds { keysForNullableIds = append(keysForNullableIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) + sortkeys.Strings(keysForNullableIds) mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForNullableIds { mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) @@ -3111,7 +3116,7 @@ func (this *CustomMap) String() string { for k := range this.Ids { keysForIds = append(keysForIds, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) + sortkeys.Strings(keysForIds) mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" for _, k := range keysForIds { mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) @@ -3135,7 +3140,7 @@ func (this *AllMaps) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -3145,7 +3150,7 @@ func (this *AllMaps) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -3155,7 +3160,7 @@ func (this *AllMaps) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -3165,7 +3170,7 @@ func (this *AllMaps) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -3175,7 +3180,7 @@ func (this *AllMaps) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -3185,7 +3190,7 @@ func (this *AllMaps) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -3195,7 +3200,7 @@ func (this *AllMaps) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -3205,7 +3210,7 @@ func (this *AllMaps) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -3215,7 +3220,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -3225,7 +3230,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -3235,7 +3240,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -3245,7 +3250,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -3255,7 +3260,7 @@ func (this *AllMaps) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -3265,7 +3270,7 @@ func (this *AllMaps) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -3275,7 +3280,7 @@ func (this *AllMaps) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -3285,7 +3290,7 @@ func (this *AllMaps) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -3295,7 +3300,7 @@ func (this *AllMaps) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -3332,7 +3337,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -3342,7 +3347,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -3352,7 +3357,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -3362,7 +3367,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -3372,7 +3377,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -3382,7 +3387,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -3392,7 +3397,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -3402,7 +3407,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -3412,7 +3417,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -3422,7 +3427,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -3432,7 +3437,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -3442,7 +3447,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -3452,7 +3457,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -3462,7 +3467,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -3472,7 +3477,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -3482,7 +3487,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -3492,7 +3497,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -3566,15 +3571,8 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.F = &v2 default: @@ -3654,51 +3652,15 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Nullable128S == nil { m.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3708,45 +3670,82 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) - } else { - var mapvalue *github_com_gogo_protobuf_test_custom.Uint128 - m.Nullable128S[mapkey] = mapvalue } + m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) iNdEx = postIndex case 2: if wireType != 2 { @@ -3774,51 +3773,15 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Uint128S == nil { m.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 + var mapvalue = &mapvalue1 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3828,45 +3791,82 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test_custom.Uint128 - m.Uint128S[mapkey] = mapvalue } + m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) iNdEx = postIndex case 3: if wireType != 2 { @@ -3894,51 +3894,15 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.NullableIds == nil { m.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -3948,45 +3912,82 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test.Uuid - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) - } else { - var mapvalue *github_com_gogo_protobuf_test.Uuid - m.NullableIds[mapkey] = mapvalue } + m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) iNdEx = postIndex case 4: if wireType != 2 { @@ -4014,51 +4015,15 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Ids == nil { m.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue1 github_com_gogo_protobuf_test.Uuid + var mapvalue = &mapvalue1 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4068,45 +4033,82 @@ func (m *CustomMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { + return err } + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test.Uuid - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test.Uuid - m.Ids[mapkey] = mapvalue } + m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) iNdEx = postIndex default: iNdEx = preIndex @@ -4185,22 +4187,85 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToDoubleMap == nil { + m.StringToDoubleMap = make(map[string]float64) + } + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - var stringLenmapkey uint64 + m.StringToDoubleMap[mapkey] = mapvalue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4210,26 +4275,26 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthMapsproto2 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4239,34 +4304,66 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + mapvalue = math.Float32frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue } + m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4290,142 +4387,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int32Map == nil { m.Int32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4435,31 +4404,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue } + m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -4487,41 +4483,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4531,31 +4500,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue } + m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -4583,41 +4579,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint32Map == nil { m.Uint32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4627,31 +4596,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue } + m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -4679,41 +4675,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint64Map == nil { m.Uint64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -4723,31 +4692,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue } + m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -4771,323 +4767,18 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if msglen < 0 { return ErrInvalidLengthMapsproto2 } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) + if m.Sint32Map == nil { + m.Sint32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5097,29 +4788,68 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey = int32(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue = int32(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue } + m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex - case 11: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5143,39 +4873,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) + if m.Sint64Map == nil { + m.Sint64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5185,33 +4890,68 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue = int64(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue } + m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex - case 12: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5235,39 +4975,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) + if m.Fixed32Map == nil { + m.Fixed32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5277,33 +4992,44 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue } + m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex - case 13: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5327,42 +5053,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) + if m.Sfixed32Map == nil { + m.Sfixed32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5372,36 +5070,44 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue } + m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex - case 14: + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5425,22 +5131,63 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.Fixed64Map == nil { + m.Fixed64Map = make(map[uint64]uint64) + } + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - var stringLenmapkey uint64 + m.Fixed64Map[mapkey] = mapvalue + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5450,26 +5197,26 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthMapsproto2 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringMap == nil { - m.StringMap = make(map[string]string) + if m.Sfixed64Map == nil { + m.Sfixed64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5479,45 +5226,44 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue } + m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex - case 15: + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5541,22 +5287,85 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.BoolMap == nil { + m.BoolMap = make(map[bool]bool) + } + var mapkey bool + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - var stringLenmapkey uint64 + m.BoolMap[mapkey] = mapvalue + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5566,26 +5375,26 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthMapsproto2 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) + if m.StringMap == nil { + m.StringMap = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5595,46 +5404,84 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue } + m.StringMap[mapkey] = mapvalue iNdEx = postIndex - case 16: + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5658,22 +5505,104 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToBytesMap == nil { + m.StringToBytesMap = make(map[string][]byte) + } + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - var stringLenmapkey uint64 + m.StringToBytesMap[mapkey] = mapvalue + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5683,26 +5612,26 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthMapsproto2 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue MapEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5712,31 +5641,69 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue } + m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -5764,51 +5731,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToMsgMap == nil { m.StringToMsgMap = make(map[string]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5818,46 +5748,85 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue } + m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -5936,51 +5905,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -5990,30 +5922,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue } + m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -6041,51 +6005,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToFloatMap == nil { m.StringToFloatMap = make(map[string]float32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6095,26 +6022,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + mapvalue = math.Float32frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue } + m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -6142,56 +6105,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int32Map == nil { m.Int32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6201,59 +6122,64 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - var mapkey int64 + m.Int32Map[mapkey] = mapvalue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6263,16 +6189,26 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6282,31 +6218,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue } + m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -6334,41 +6297,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint32Map == nil { m.Uint32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6378,31 +6314,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue } + m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -6430,41 +6393,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint64Map == nil { m.Uint64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6474,31 +6410,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue } + m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -6526,43 +6489,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) if m.Sint32Map == nil { m.Sint32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6572,33 +6506,64 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey = int32(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue = int32(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue } + m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -6626,43 +6591,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) if m.Sint64Map == nil { m.Sint64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6672,33 +6608,64 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue = int64(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue } + m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -6726,35 +6693,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 if m.Fixed32Map == nil { m.Fixed32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6764,25 +6710,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue } + m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -6810,35 +6771,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 if m.Sfixed32Map == nil { m.Sfixed32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6848,25 +6788,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue } + m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6889,44 +6844,19 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } if msglen < 0 { return ErrInvalidLengthMapsproto2 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { + } + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -6936,29 +6866,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue } + m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -6986,39 +6927,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 if m.Sfixed64Map == nil { m.Sfixed64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7028,29 +6944,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue } + m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -7078,42 +7005,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) if m.BoolMap == nil { m.BoolMap = make(map[bool]bool) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey bool + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7123,32 +7022,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue } + m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -7176,51 +7105,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringMap == nil { m.StringMap = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7230,41 +7122,80 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue } + m.StringMap[mapkey] = mapvalue iNdEx = postIndex case 15: if wireType != 2 { @@ -7292,51 +7223,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7346,42 +7240,81 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthMapsproto2 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue } + m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -7409,51 +7342,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue MapEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7463,31 +7359,69 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue } + m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -7515,51 +7449,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToMsgMap == nil { m.StringToMsgMap = make(map[string]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMapsproto2 @@ -7569,46 +7466,85 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthMapsproto2 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - if iNdEx >= l { + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMapsproto2 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthMapsproto2 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipMapsproto2(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthMapsproto2 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue } + m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2pb_test.go index baebea704..8e770c030 100644 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unmarshaler/mapsproto2pb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/mapsproto2.proto -// DO NOT EDIT! /* Package proto2_maps is a generated protocol buffer package. @@ -17,13 +16,12 @@ It has these top-level messages: package proto2_maps import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -34,14 +32,14 @@ var _ = math.Inf func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -62,12 +60,12 @@ func TestFloatingPointProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 10000) for i := 0; i < 10000; i++ { @@ -75,7 +73,7 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -85,11 +83,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } @@ -99,7 +97,7 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -108,14 +106,14 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { func TestCustomMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -136,12 +134,12 @@ func TestCustomMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomMap, 10000) for i := 0; i < 10000; i++ { @@ -149,7 +147,7 @@ func BenchmarkCustomMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -159,11 +157,11 @@ func BenchmarkCustomMapProtoMarshal(b *testing.B) { } func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomMap(popr, false)) if err != nil { panic(err) } @@ -173,7 +171,7 @@ func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -182,14 +180,14 @@ func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -210,12 +208,12 @@ func TestAllMapsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 10000) for i := 0; i < 10000; i++ { @@ -223,7 +221,7 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -233,11 +231,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } @@ -247,7 +245,7 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -256,14 +254,14 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -284,12 +282,12 @@ func TestAllMapsOrderedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 10000) for i := 0; i < 10000; i++ { @@ -297,7 +295,7 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -307,11 +305,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } @@ -321,7 +319,7 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -330,15 +328,15 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { func TestFloatingPointJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -351,15 +349,15 @@ func TestFloatingPointJSON(t *testing.T) { } func TestCustomMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -372,15 +370,15 @@ func TestCustomMapJSON(t *testing.T) { } func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -393,15 +391,15 @@ func TestAllMapsJSON(t *testing.T) { } func TestAllMapsOrderedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -414,11 +412,11 @@ func TestAllMapsOrderedJSON(t *testing.T) { } func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -431,11 +429,11 @@ func TestFloatingPointProtoText(t *testing.T) { func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -448,11 +446,11 @@ func TestFloatingPointProtoCompactText(t *testing.T) { func TestCustomMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -465,11 +463,11 @@ func TestCustomMapProtoText(t *testing.T) { func TestCustomMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -482,11 +480,11 @@ func TestCustomMapProtoCompactText(t *testing.T) { func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -499,11 +497,11 @@ func TestAllMapsProtoText(t *testing.T) { func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -516,11 +514,11 @@ func TestAllMapsProtoCompactText(t *testing.T) { func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -533,11 +531,11 @@ func TestAllMapsOrderedProtoText(t *testing.T) { func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -552,14 +550,14 @@ func TestMapsproto2Description(t *testing.T) { Mapsproto2Description() } func TestFloatingPointVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -567,14 +565,14 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestCustomMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -582,14 +580,14 @@ func TestCustomMapVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -597,14 +595,14 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -612,7 +610,7 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -620,7 +618,7 @@ func TestFloatingPointFace(t *testing.T) { } } func TestCustomMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -628,7 +626,7 @@ func TestCustomMapFace(t *testing.T) { } } func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -636,7 +634,7 @@ func TestAllMapsFace(t *testing.T) { } } func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -644,63 +642,63 @@ func TestAllMapsOrderedFace(t *testing.T) { } } func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestFloatingPointSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -711,14 +709,14 @@ func TestFloatingPointSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 1000) for i := 0; i < 1000; i++ { @@ -733,10 +731,10 @@ func BenchmarkFloatingPointSize(b *testing.B) { func TestCustomMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -747,14 +745,14 @@ func TestCustomMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomMap, 1000) for i := 0; i < 1000; i++ { @@ -769,10 +767,10 @@ func BenchmarkCustomMapSize(b *testing.B) { func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -783,14 +781,14 @@ func TestAllMapsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 1000) for i := 0; i < 1000; i++ { @@ -805,10 +803,10 @@ func BenchmarkAllMapsSize(b *testing.B) { func TestAllMapsOrderedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -819,14 +817,14 @@ func TestAllMapsOrderedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 1000) for i := 0; i < 1000; i++ { @@ -840,7 +838,7 @@ func BenchmarkAllMapsOrderedSize(b *testing.B) { } func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -849,7 +847,7 @@ func TestFloatingPointStringer(t *testing.T) { } } func TestCustomMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -858,7 +856,7 @@ func TestCustomMapStringer(t *testing.T) { } } func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -867,7 +865,7 @@ func TestAllMapsStringer(t *testing.T) { } } func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.pb.go deleted file mode 100644 index f27551686..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.pb.go +++ /dev/null @@ -1,8706 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/mapsproto2.proto -// DO NOT EDIT! - -/* - Package proto2_maps is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeboth/mapsproto2.proto - - It has these top-level messages: - FloatingPoint - CustomMap - AllMaps - AllMapsOrdered -*/ -package proto2_maps - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strconv "strconv" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -import unsafe "unsafe" - -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 - -type MapEnum int32 - -const ( - MA MapEnum = 0 - MB MapEnum = 1 - MC MapEnum = 2 -) - -var MapEnum_name = map[int32]string{ - 0: "MA", - 1: "MB", - 2: "MC", -} -var MapEnum_value = map[string]int32{ - "MA": 0, - "MB": 1, - "MC": 2, -} - -func (x MapEnum) Enum() *MapEnum { - p := new(MapEnum) - *p = x - return p -} -func (x MapEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(MapEnum_name, int32(x)) -} -func (x *MapEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(MapEnum_value, data, "MapEnum") - if err != nil { - return err - } - *x = MapEnum(value) - return nil -} -func (MapEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } - -type FloatingPoint struct { - F *float64 `protobuf:"fixed64,1,opt,name=f" json:"f,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } -func (*FloatingPoint) ProtoMessage() {} -func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } - -type CustomMap struct { - Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomMap) Reset() { *m = CustomMap{} } -func (*CustomMap) ProtoMessage() {} -func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } - -type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AllMaps) Reset() { *m = AllMaps{} } -func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } - -type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } -func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } - -func init() { - proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") - proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") - proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") - proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") - proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) -} -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 4578 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xd6, 0xf0, 0x21, 0x91, 0x87, 0x14, 0x35, 0xba, 0x92, 0xd7, 0xb4, 0x12, 0x6b, 0x77, 0xe5, - 0x97, 0xbc, 0xb6, 0x25, 0x5b, 0xde, 0x5d, 0xaf, 0xb9, 0xb1, 0x0d, 0x4a, 0xe2, 0x6a, 0x65, 0xeb, - 0x95, 0xa1, 0x64, 0xaf, 0x5d, 0x18, 0xd3, 0xd1, 0xf0, 0x92, 0x1a, 0x2f, 0x39, 0x43, 0xcf, 0x0c, - 0xd7, 0x96, 0x7f, 0x14, 0x5b, 0xb8, 0x0f, 0x04, 0x45, 0xdf, 0x05, 0xea, 0xb8, 0x8e, 0xdb, 0x04, - 0x68, 0x9d, 0x26, 0x7d, 0x24, 0x7d, 0xa4, 0x41, 0x7f, 0xe5, 0x4f, 0x5a, 0x03, 0x05, 0x8a, 0xe4, - 0x5f, 0x10, 0x04, 0x86, 0x57, 0x31, 0x50, 0xb7, 0x75, 0x5b, 0xb7, 0x31, 0x50, 0x03, 0xfe, 0x53, - 0xdc, 0xd7, 0x70, 0x66, 0x38, 0xe4, 0x50, 0x06, 0x9c, 0xf4, 0x87, 0x7f, 0x49, 0x73, 0xee, 0xf9, - 0xbe, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, 0x73, 0xe6, 0x72, 0xe0, 0xc7, 0xe7, 0xe0, 0x54, 0xc3, 0xb2, - 0x1a, 0x4d, 0xbc, 0xd8, 0xb6, 0x2d, 0xd7, 0xda, 0xef, 0xd4, 0x17, 0x6b, 0xd8, 0xd1, 0x6d, 0xa3, - 0xed, 0x5a, 0xf6, 0x02, 0x95, 0xa1, 0x09, 0xa6, 0xb1, 0x20, 0x34, 0xe6, 0x36, 0x61, 0xf2, 0x92, - 0xd1, 0xc4, 0xab, 0x9e, 0x62, 0x15, 0xbb, 0xe8, 0x02, 0xa4, 0xea, 0x46, 0x13, 0x17, 0xa5, 0x53, - 0xc9, 0xf9, 0xdc, 0xd2, 0xed, 0x0b, 0x21, 0xd0, 0x42, 0x10, 0xb1, 0x43, 0xc4, 0x0a, 0x45, 0xcc, - 0xbd, 0x93, 0x82, 0xa9, 0x88, 0x51, 0x84, 0x20, 0x65, 0x6a, 0x2d, 0xc2, 0x28, 0xcd, 0x67, 0x15, - 0xfa, 0x3f, 0x2a, 0xc2, 0x58, 0x5b, 0xd3, 0xaf, 0x6a, 0x0d, 0x5c, 0x4c, 0x50, 0xb1, 0x78, 0x44, - 0xb3, 0x00, 0x35, 0xdc, 0xc6, 0x66, 0x0d, 0x9b, 0xfa, 0x61, 0x31, 0x79, 0x2a, 0x39, 0x9f, 0x55, - 0x7c, 0x12, 0x74, 0x0f, 0x4c, 0xb6, 0x3b, 0xfb, 0x4d, 0x43, 0x57, 0x7d, 0x6a, 0x70, 0x2a, 0x39, - 0x9f, 0x56, 0x64, 0x36, 0xb0, 0xda, 0x55, 0xbe, 0x0b, 0x26, 0x5e, 0xc0, 0xda, 0x55, 0xbf, 0x6a, - 0x8e, 0xaa, 0x16, 0x88, 0xd8, 0xa7, 0xb8, 0x02, 0xf9, 0x16, 0x76, 0x1c, 0xad, 0x81, 0x55, 0xf7, - 0xb0, 0x8d, 0x8b, 0x29, 0xba, 0xfa, 0x53, 0x3d, 0xab, 0x0f, 0xaf, 0x3c, 0xc7, 0x51, 0xbb, 0x87, - 0x6d, 0x8c, 0xca, 0x90, 0xc5, 0x66, 0xa7, 0xc5, 0x18, 0xd2, 0x7d, 0xfc, 0x57, 0x31, 0x3b, 0xad, - 0x30, 0x4b, 0x86, 0xc0, 0x38, 0xc5, 0x98, 0x83, 0xed, 0x6b, 0x86, 0x8e, 0x8b, 0xa3, 0x94, 0xe0, - 0xae, 0x1e, 0x82, 0x2a, 0x1b, 0x0f, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x2c, 0x7e, 0xd1, 0xc5, 0xa6, - 0x63, 0x58, 0x66, 0x71, 0x8c, 0x92, 0xdc, 0x11, 0xb1, 0x8b, 0xb8, 0x59, 0x0b, 0x53, 0x74, 0x71, - 0xe8, 0x3c, 0x8c, 0x59, 0x6d, 0xd7, 0xb0, 0x4c, 0xa7, 0x98, 0x39, 0x25, 0xcd, 0xe7, 0x96, 0x3e, - 0x1b, 0x19, 0x08, 0xdb, 0x4c, 0x47, 0x11, 0xca, 0x68, 0x1d, 0x64, 0xc7, 0xea, 0xd8, 0x3a, 0x56, - 0x75, 0xab, 0x86, 0x55, 0xc3, 0xac, 0x5b, 0xc5, 0x2c, 0x25, 0x38, 0xd9, 0xbb, 0x10, 0xaa, 0xb8, - 0x62, 0xd5, 0xf0, 0xba, 0x59, 0xb7, 0x94, 0x82, 0x13, 0x78, 0x46, 0x27, 0x60, 0xd4, 0x39, 0x34, - 0x5d, 0xed, 0xc5, 0x62, 0x9e, 0x46, 0x08, 0x7f, 0x9a, 0xfb, 0xdf, 0x34, 0x4c, 0x0c, 0x13, 0x62, - 0x17, 0x21, 0x5d, 0x27, 0xab, 0x2c, 0x26, 0x8e, 0xe3, 0x03, 0x86, 0x09, 0x3a, 0x71, 0xf4, 0x63, - 0x3a, 0xb1, 0x0c, 0x39, 0x13, 0x3b, 0x2e, 0xae, 0xb1, 0x88, 0x48, 0x0e, 0x19, 0x53, 0xc0, 0x40, - 0xbd, 0x21, 0x95, 0xfa, 0x58, 0x21, 0x75, 0x05, 0x26, 0x3c, 0x93, 0x54, 0x5b, 0x33, 0x1b, 0x22, - 0x36, 0x17, 0xe3, 0x2c, 0x59, 0xa8, 0x08, 0x9c, 0x42, 0x60, 0x4a, 0x01, 0x07, 0x9e, 0xd1, 0x2a, - 0x80, 0x65, 0x62, 0xab, 0xae, 0xd6, 0xb0, 0xde, 0x2c, 0x66, 0xfa, 0x78, 0x69, 0x9b, 0xa8, 0xf4, - 0x78, 0xc9, 0x62, 0x52, 0xbd, 0x89, 0x1e, 0xee, 0x86, 0xda, 0x58, 0x9f, 0x48, 0xd9, 0x64, 0x87, - 0xac, 0x27, 0xda, 0xf6, 0xa0, 0x60, 0x63, 0x12, 0xf7, 0xb8, 0xc6, 0x57, 0x96, 0xa5, 0x46, 0x2c, - 0xc4, 0xae, 0x4c, 0xe1, 0x30, 0xb6, 0xb0, 0x71, 0xdb, 0xff, 0x88, 0x6e, 0x03, 0x4f, 0xa0, 0xd2, - 0xb0, 0x02, 0x9a, 0x85, 0xf2, 0x42, 0xb8, 0xa5, 0xb5, 0xf0, 0xcc, 0x05, 0x28, 0x04, 0xdd, 0x83, - 0xa6, 0x21, 0xed, 0xb8, 0x9a, 0xed, 0xd2, 0x28, 0x4c, 0x2b, 0xec, 0x01, 0xc9, 0x90, 0xc4, 0x66, - 0x8d, 0x66, 0xb9, 0xb4, 0x42, 0xfe, 0x9d, 0x79, 0x08, 0xc6, 0x03, 0xd3, 0x0f, 0x0b, 0x9c, 0x7b, - 0x65, 0x14, 0xa6, 0xa3, 0x62, 0x2e, 0x32, 0xfc, 0x4f, 0xc0, 0xa8, 0xd9, 0x69, 0xed, 0x63, 0xbb, - 0x98, 0xa4, 0x0c, 0xfc, 0x09, 0x95, 0x21, 0xdd, 0xd4, 0xf6, 0x71, 0xb3, 0x98, 0x3a, 0x25, 0xcd, - 0x17, 0x96, 0xee, 0x19, 0x2a, 0xaa, 0x17, 0x36, 0x08, 0x44, 0x61, 0x48, 0xf4, 0x28, 0xa4, 0x78, - 0x8a, 0x23, 0x0c, 0x67, 0x86, 0x63, 0x20, 0xb1, 0xa8, 0x50, 0x1c, 0xfa, 0x0c, 0x64, 0xc9, 0x5f, - 0xe6, 0xdb, 0x51, 0x6a, 0x73, 0x86, 0x08, 0x88, 0x5f, 0xd1, 0x0c, 0x64, 0x68, 0x98, 0xd5, 0xb0, - 0x28, 0x0d, 0xde, 0x33, 0xd9, 0x98, 0x1a, 0xae, 0x6b, 0x9d, 0xa6, 0xab, 0x5e, 0xd3, 0x9a, 0x1d, - 0x4c, 0x03, 0x26, 0xab, 0xe4, 0xb9, 0xf0, 0x49, 0x22, 0x43, 0x27, 0x21, 0xc7, 0xa2, 0xd2, 0x30, - 0x6b, 0xf8, 0x45, 0x9a, 0x7d, 0xd2, 0x0a, 0x0b, 0xd4, 0x75, 0x22, 0x21, 0xd3, 0x3f, 0xe7, 0x58, - 0xa6, 0xd8, 0x5a, 0x3a, 0x05, 0x11, 0xd0, 0xe9, 0x1f, 0x0a, 0x27, 0xbe, 0x5b, 0xa3, 0x97, 0x17, - 0x8e, 0xc5, 0xb9, 0x6f, 0x25, 0x20, 0x45, 0xcf, 0xdb, 0x04, 0xe4, 0x76, 0x9f, 0xde, 0xa9, 0xa8, - 0xab, 0xdb, 0x7b, 0xcb, 0x1b, 0x15, 0x59, 0x42, 0x05, 0x00, 0x2a, 0xb8, 0xb4, 0xb1, 0x5d, 0xde, - 0x95, 0x13, 0xde, 0xf3, 0xfa, 0xd6, 0xee, 0xf9, 0xb3, 0x72, 0xd2, 0x03, 0xec, 0x31, 0x41, 0xca, - 0xaf, 0xf0, 0xe0, 0x92, 0x9c, 0x46, 0x32, 0xe4, 0x19, 0xc1, 0xfa, 0x95, 0xca, 0xea, 0xf9, 0xb3, - 0xf2, 0x68, 0x50, 0xf2, 0xe0, 0x92, 0x3c, 0x86, 0xc6, 0x21, 0x4b, 0x25, 0xcb, 0xdb, 0xdb, 0x1b, - 0x72, 0xc6, 0xe3, 0xac, 0xee, 0x2a, 0xeb, 0x5b, 0x6b, 0x72, 0xd6, 0xe3, 0x5c, 0x53, 0xb6, 0xf7, - 0x76, 0x64, 0xf0, 0x18, 0x36, 0x2b, 0xd5, 0x6a, 0x79, 0xad, 0x22, 0xe7, 0x3c, 0x8d, 0xe5, 0xa7, - 0x77, 0x2b, 0x55, 0x39, 0x1f, 0x30, 0xeb, 0xc1, 0x25, 0x79, 0xdc, 0x9b, 0xa2, 0xb2, 0xb5, 0xb7, - 0x29, 0x17, 0xd0, 0x24, 0x8c, 0xb3, 0x29, 0x84, 0x11, 0x13, 0x21, 0xd1, 0xf9, 0xb3, 0xb2, 0xdc, - 0x35, 0x84, 0xb1, 0x4c, 0x06, 0x04, 0xe7, 0xcf, 0xca, 0x68, 0x6e, 0x05, 0xd2, 0x34, 0xba, 0x10, - 0x82, 0xc2, 0x46, 0x79, 0xb9, 0xb2, 0xa1, 0x6e, 0xef, 0xec, 0xae, 0x6f, 0x6f, 0x95, 0x37, 0x64, - 0xa9, 0x2b, 0x53, 0x2a, 0x9f, 0xdf, 0x5b, 0x57, 0x2a, 0xab, 0x72, 0xc2, 0x2f, 0xdb, 0xa9, 0x94, - 0x77, 0x2b, 0xab, 0x72, 0x72, 0x4e, 0x87, 0xe9, 0xa8, 0x3c, 0x13, 0x79, 0x32, 0x7c, 0x5b, 0x9c, - 0xe8, 0xb3, 0xc5, 0x94, 0xab, 0x67, 0x8b, 0xbf, 0x22, 0xc1, 0x54, 0x44, 0xae, 0x8d, 0x9c, 0xe4, - 0x31, 0x48, 0xb3, 0x10, 0x65, 0xd5, 0xe7, 0xee, 0xc8, 0xa4, 0x4d, 0x03, 0xb6, 0xa7, 0x02, 0x51, - 0x9c, 0xbf, 0x02, 0x27, 0xfb, 0x54, 0x60, 0x42, 0xd1, 0x63, 0xe4, 0xcb, 0x12, 0x14, 0xfb, 0x71, - 0xc7, 0x24, 0x8a, 0x44, 0x20, 0x51, 0x5c, 0x0c, 0x1b, 0x70, 0xba, 0xff, 0x1a, 0x7a, 0xac, 0x78, - 0x43, 0x82, 0x13, 0xd1, 0x8d, 0x4a, 0xa4, 0x0d, 0x8f, 0xc2, 0x68, 0x0b, 0xbb, 0x07, 0x96, 0x28, - 0xd6, 0x77, 0x46, 0x94, 0x00, 0x32, 0x1c, 0xf6, 0x15, 0x47, 0xf9, 0x6b, 0x48, 0xb2, 0x5f, 0xb7, - 0xc1, 0xac, 0xe9, 0xb1, 0xf4, 0x0b, 0x09, 0xb8, 0x29, 0x92, 0x3c, 0xd2, 0xd0, 0x5b, 0x01, 0x0c, - 0xb3, 0xdd, 0x71, 0x59, 0x41, 0x66, 0xf9, 0x29, 0x4b, 0x25, 0xf4, 0xec, 0x93, 0xdc, 0xd3, 0x71, - 0xbd, 0xf1, 0x24, 0x1d, 0x07, 0x26, 0xa2, 0x0a, 0x17, 0xba, 0x86, 0xa6, 0xa8, 0xa1, 0xb3, 0x7d, - 0x56, 0xda, 0x53, 0xeb, 0xee, 0x07, 0x59, 0x6f, 0x1a, 0xd8, 0x74, 0x55, 0xc7, 0xb5, 0xb1, 0xd6, - 0x32, 0xcc, 0x06, 0x4d, 0xc0, 0x99, 0x52, 0xba, 0xae, 0x35, 0x1d, 0xac, 0x4c, 0xb0, 0xe1, 0xaa, - 0x18, 0x25, 0x08, 0x5a, 0x65, 0x6c, 0x1f, 0x62, 0x34, 0x80, 0x60, 0xc3, 0x1e, 0x62, 0xee, 0xeb, - 0x63, 0x90, 0xf3, 0xb5, 0x75, 0xe8, 0x34, 0xe4, 0x9f, 0xd3, 0xae, 0x69, 0xaa, 0x68, 0xd5, 0x99, - 0x27, 0x72, 0x44, 0xb6, 0xc3, 0xdb, 0xf5, 0xfb, 0x61, 0x9a, 0xaa, 0x58, 0x1d, 0x17, 0xdb, 0xaa, - 0xde, 0xd4, 0x1c, 0x87, 0x3a, 0x2d, 0x43, 0x55, 0x11, 0x19, 0xdb, 0x26, 0x43, 0x2b, 0x62, 0x04, - 0x9d, 0x83, 0x29, 0x8a, 0x68, 0x75, 0x9a, 0xae, 0xd1, 0x6e, 0x62, 0x95, 0xbc, 0x3c, 0x38, 0x34, - 0x11, 0x7b, 0x96, 0x4d, 0x12, 0x8d, 0x4d, 0xae, 0x40, 0x2c, 0x72, 0xd0, 0x2a, 0xdc, 0x4a, 0x61, - 0x0d, 0x6c, 0x62, 0x5b, 0x73, 0xb1, 0x8a, 0x9f, 0xef, 0x68, 0x4d, 0x47, 0xd5, 0xcc, 0x9a, 0x7a, - 0xa0, 0x39, 0x07, 0xc5, 0x69, 0x42, 0xb0, 0x9c, 0x28, 0x4a, 0xca, 0x2d, 0x44, 0x71, 0x8d, 0xeb, - 0x55, 0xa8, 0x5a, 0xd9, 0xac, 0x5d, 0xd6, 0x9c, 0x03, 0x54, 0x82, 0x13, 0x94, 0xc5, 0x71, 0x6d, - 0xc3, 0x6c, 0xa8, 0xfa, 0x01, 0xd6, 0xaf, 0xaa, 0x1d, 0xb7, 0x7e, 0xa1, 0xf8, 0x19, 0xff, 0xfc, - 0xd4, 0xc2, 0x2a, 0xd5, 0x59, 0x21, 0x2a, 0x7b, 0x6e, 0xfd, 0x02, 0xaa, 0x42, 0x9e, 0x6c, 0x46, - 0xcb, 0x78, 0x09, 0xab, 0x75, 0xcb, 0xa6, 0x95, 0xa5, 0x10, 0x71, 0xb2, 0x7d, 0x1e, 0x5c, 0xd8, - 0xe6, 0x80, 0x4d, 0xab, 0x86, 0x4b, 0xe9, 0xea, 0x4e, 0xa5, 0xb2, 0xaa, 0xe4, 0x04, 0xcb, 0x25, - 0xcb, 0x26, 0x01, 0xd5, 0xb0, 0x3c, 0x07, 0xe7, 0x58, 0x40, 0x35, 0x2c, 0xe1, 0xde, 0x73, 0x30, - 0xa5, 0xeb, 0x6c, 0xcd, 0x86, 0xae, 0xf2, 0x16, 0xdf, 0x29, 0xca, 0x01, 0x67, 0xe9, 0xfa, 0x1a, - 0x53, 0xe0, 0x31, 0xee, 0xa0, 0x87, 0xe1, 0xa6, 0xae, 0xb3, 0xfc, 0xc0, 0xc9, 0x9e, 0x55, 0x86, - 0xa1, 0xe7, 0x60, 0xaa, 0x7d, 0xd8, 0x0b, 0x44, 0x81, 0x19, 0xdb, 0x87, 0x61, 0xd8, 0x1d, 0xf4, - 0xb5, 0xcd, 0xc6, 0xba, 0xe6, 0xe2, 0x5a, 0xf1, 0x66, 0xbf, 0xb6, 0x6f, 0x00, 0x2d, 0x82, 0xac, - 0xeb, 0x2a, 0x36, 0xb5, 0xfd, 0x26, 0x56, 0x35, 0x1b, 0x9b, 0x9a, 0x53, 0x3c, 0xe9, 0x57, 0x2e, - 0xe8, 0x7a, 0x85, 0x8e, 0x96, 0xe9, 0x20, 0x3a, 0x03, 0x93, 0xd6, 0xfe, 0x73, 0x3a, 0x8b, 0x2c, - 0xb5, 0x6d, 0xe3, 0xba, 0xf1, 0x62, 0xf1, 0x76, 0xea, 0xa6, 0x09, 0x32, 0x40, 0xe3, 0x6a, 0x87, - 0x8a, 0xd1, 0xdd, 0x20, 0xeb, 0xce, 0x81, 0x66, 0xb7, 0x69, 0x69, 0x77, 0xda, 0x9a, 0x8e, 0x8b, - 0x77, 0x30, 0x55, 0x26, 0xdf, 0x12, 0x62, 0x12, 0xd9, 0xce, 0x0b, 0x46, 0xdd, 0x15, 0x8c, 0x77, - 0xb1, 0xc8, 0xa6, 0x32, 0xce, 0x76, 0x05, 0xa6, 0x3b, 0xa6, 0x61, 0xba, 0xd8, 0x6e, 0xdb, 0x98, - 0x34, 0xf1, 0xec, 0x24, 0x16, 0xff, 0x65, 0xac, 0x4f, 0x1b, 0xbe, 0xe7, 0xd7, 0x66, 0x01, 0xa0, - 0x4c, 0x75, 0x7a, 0x85, 0x73, 0x25, 0xc8, 0xfb, 0xe3, 0x02, 0x65, 0x81, 0x45, 0x86, 0x2c, 0x91, - 0x1a, 0xbb, 0xb2, 0xbd, 0x4a, 0xaa, 0xe3, 0x33, 0x15, 0x39, 0x41, 0xaa, 0xf4, 0xc6, 0xfa, 0x6e, - 0x45, 0x55, 0xf6, 0xb6, 0x76, 0xd7, 0x37, 0x2b, 0x72, 0xf2, 0x4c, 0x36, 0xf3, 0xee, 0x98, 0x7c, - 0xfd, 0xfa, 0xf5, 0xeb, 0x89, 0xb9, 0xef, 0x26, 0xa0, 0x10, 0xec, 0x8c, 0xd1, 0xe7, 0xe0, 0x66, - 0xf1, 0x1a, 0xeb, 0x60, 0x57, 0x7d, 0xc1, 0xb0, 0x69, 0xa8, 0xb6, 0x34, 0xd6, 0x5b, 0x7a, 0x5e, - 0x9e, 0xe6, 0x5a, 0x55, 0xec, 0x3e, 0x65, 0xd8, 0x24, 0x10, 0x5b, 0x9a, 0x8b, 0x36, 0xe0, 0xa4, - 0x69, 0xa9, 0x8e, 0xab, 0x99, 0x35, 0xcd, 0xae, 0xa9, 0xdd, 0x0b, 0x04, 0x55, 0xd3, 0x75, 0xec, - 0x38, 0x16, 0x2b, 0x11, 0x1e, 0xcb, 0x67, 0x4d, 0xab, 0xca, 0x95, 0xbb, 0xb9, 0xb3, 0xcc, 0x55, - 0x43, 0x11, 0x91, 0xec, 0x17, 0x11, 0x9f, 0x81, 0x6c, 0x4b, 0x6b, 0xab, 0xd8, 0x74, 0xed, 0x43, - 0xda, 0xcf, 0x65, 0x94, 0x4c, 0x4b, 0x6b, 0x57, 0xc8, 0xf3, 0x27, 0xb7, 0x07, 0x7e, 0x3f, 0xfe, - 0x28, 0x09, 0x79, 0x7f, 0x4f, 0x47, 0x5a, 0x64, 0x9d, 0xe6, 0x6f, 0x89, 0x9e, 0xf0, 0xdb, 0x06, - 0x76, 0x80, 0x0b, 0x2b, 0x24, 0xb1, 0x97, 0x46, 0x59, 0xa7, 0xa5, 0x30, 0x24, 0x29, 0xaa, 0xe4, - 0x4c, 0x63, 0xd6, 0xbf, 0x67, 0x14, 0xfe, 0x84, 0xd6, 0x60, 0xf4, 0x39, 0x87, 0x72, 0x8f, 0x52, - 0xee, 0xdb, 0x07, 0x73, 0x3f, 0x5e, 0xa5, 0xe4, 0xd9, 0xc7, 0xab, 0xea, 0xd6, 0xb6, 0xb2, 0x59, - 0xde, 0x50, 0x38, 0x1c, 0xdd, 0x02, 0xa9, 0xa6, 0xf6, 0xd2, 0x61, 0xb0, 0x04, 0x50, 0xd1, 0xb0, - 0x8e, 0xbf, 0x05, 0x52, 0x2f, 0x60, 0xed, 0x6a, 0x30, 0xf1, 0x52, 0xd1, 0x27, 0x18, 0xfa, 0x8b, - 0x90, 0xa6, 0xfe, 0x42, 0x00, 0xdc, 0x63, 0xf2, 0x08, 0xca, 0x40, 0x6a, 0x65, 0x5b, 0x21, 0xe1, - 0x2f, 0x43, 0x9e, 0x49, 0xd5, 0x9d, 0xf5, 0xca, 0x4a, 0x45, 0x4e, 0xcc, 0x9d, 0x83, 0x51, 0xe6, - 0x04, 0x72, 0x34, 0x3c, 0x37, 0xc8, 0x23, 0xfc, 0x91, 0x73, 0x48, 0x62, 0x74, 0x6f, 0x73, 0xb9, - 0xa2, 0xc8, 0x09, 0xff, 0xf6, 0x3a, 0x90, 0xf7, 0xb7, 0x73, 0x3f, 0x9d, 0x98, 0xfa, 0x7b, 0x09, - 0x72, 0xbe, 0xf6, 0x8c, 0x34, 0x06, 0x5a, 0xb3, 0x69, 0xbd, 0xa0, 0x6a, 0x4d, 0x43, 0x73, 0x78, - 0x50, 0x00, 0x15, 0x95, 0x89, 0x64, 0xd8, 0x4d, 0xfb, 0xa9, 0x18, 0xff, 0xba, 0x04, 0x72, 0xb8, - 0xb5, 0x0b, 0x19, 0x28, 0xfd, 0x4c, 0x0d, 0x7c, 0x4d, 0x82, 0x42, 0xb0, 0x9f, 0x0b, 0x99, 0x77, - 0xfa, 0x67, 0x6a, 0xde, 0xdb, 0x09, 0x18, 0x0f, 0x74, 0x71, 0xc3, 0x5a, 0xf7, 0x3c, 0x4c, 0x1a, - 0x35, 0xdc, 0x6a, 0x5b, 0x2e, 0x36, 0xf5, 0x43, 0xb5, 0x89, 0xaf, 0xe1, 0x66, 0x71, 0x8e, 0x26, - 0x8a, 0xc5, 0xc1, 0x7d, 0xe2, 0xc2, 0x7a, 0x17, 0xb7, 0x41, 0x60, 0xa5, 0xa9, 0xf5, 0xd5, 0xca, - 0xe6, 0xce, 0xf6, 0x6e, 0x65, 0x6b, 0xe5, 0x69, 0x75, 0x6f, 0xeb, 0x89, 0xad, 0xed, 0xa7, 0xb6, - 0x14, 0xd9, 0x08, 0xa9, 0x7d, 0x82, 0x47, 0x7d, 0x07, 0xe4, 0xb0, 0x51, 0xe8, 0x66, 0x88, 0x32, - 0x4b, 0x1e, 0x41, 0x53, 0x30, 0xb1, 0xb5, 0xad, 0x56, 0xd7, 0x57, 0x2b, 0x6a, 0xe5, 0xd2, 0xa5, - 0xca, 0xca, 0x6e, 0x95, 0xbd, 0x38, 0x7b, 0xda, 0xbb, 0xc1, 0x43, 0xfd, 0x6a, 0x12, 0xa6, 0x22, - 0x2c, 0x41, 0x65, 0xde, 0xb3, 0xb3, 0xd7, 0x88, 0xfb, 0x86, 0xb1, 0x7e, 0x81, 0x74, 0x05, 0x3b, - 0x9a, 0xed, 0xf2, 0x16, 0xff, 0x6e, 0x20, 0x5e, 0x32, 0x5d, 0xa3, 0x6e, 0x60, 0x9b, 0xdf, 0x33, - 0xb0, 0x46, 0x7e, 0xa2, 0x2b, 0x67, 0x57, 0x0d, 0xf7, 0x02, 0x6a, 0x5b, 0x8e, 0xe1, 0x1a, 0xd7, - 0xb0, 0x6a, 0x98, 0xe2, 0x52, 0x82, 0x34, 0xf6, 0x29, 0x45, 0x16, 0x23, 0xeb, 0xa6, 0xeb, 0x69, - 0x9b, 0xb8, 0xa1, 0x85, 0xb4, 0x49, 0x02, 0x4f, 0x2a, 0xb2, 0x18, 0xf1, 0xb4, 0x4f, 0x43, 0xbe, - 0x66, 0x75, 0x48, 0x9b, 0xc4, 0xf4, 0x48, 0xbd, 0x90, 0x94, 0x1c, 0x93, 0x79, 0x2a, 0xbc, 0x8f, - 0xed, 0xde, 0x86, 0xe4, 0x95, 0x1c, 0x93, 0x31, 0x95, 0xbb, 0x60, 0x42, 0x6b, 0x34, 0x6c, 0x42, - 0x2e, 0x88, 0x58, 0x67, 0x5e, 0xf0, 0xc4, 0x54, 0x71, 0xe6, 0x71, 0xc8, 0x08, 0x3f, 0x90, 0x92, - 0x4c, 0x3c, 0xa1, 0xb6, 0xd9, 0x9d, 0x54, 0x62, 0x3e, 0xab, 0x64, 0x4c, 0x31, 0x78, 0x1a, 0xf2, - 0x86, 0xa3, 0x76, 0x2f, 0x47, 0x13, 0xa7, 0x12, 0xf3, 0x19, 0x25, 0x67, 0x38, 0xde, 0x6d, 0xd8, - 0xdc, 0x1b, 0x09, 0x28, 0x04, 0x2f, 0x77, 0xd1, 0x2a, 0x64, 0x9a, 0x96, 0xae, 0xd1, 0xd0, 0x62, - 0xbf, 0x2c, 0xcc, 0xc7, 0xdc, 0x07, 0x2f, 0x6c, 0x70, 0x7d, 0xc5, 0x43, 0xce, 0xfc, 0xb3, 0x04, - 0x19, 0x21, 0x46, 0x27, 0x20, 0xd5, 0xd6, 0xdc, 0x03, 0x4a, 0x97, 0x5e, 0x4e, 0xc8, 0x92, 0x42, - 0x9f, 0x89, 0xdc, 0x69, 0x6b, 0x26, 0x0d, 0x01, 0x2e, 0x27, 0xcf, 0x64, 0x5f, 0x9b, 0x58, 0xab, - 0xd1, 0xb6, 0xdf, 0x6a, 0xb5, 0xb0, 0xe9, 0x3a, 0x62, 0x5f, 0xb9, 0x7c, 0x85, 0x8b, 0xd1, 0x3d, - 0x30, 0xe9, 0xda, 0x9a, 0xd1, 0x0c, 0xe8, 0xa6, 0xa8, 0xae, 0x2c, 0x06, 0x3c, 0xe5, 0x12, 0xdc, - 0x22, 0x78, 0x6b, 0xd8, 0xd5, 0xf4, 0x03, 0x5c, 0xeb, 0x82, 0x46, 0xe9, 0xcd, 0xe1, 0xcd, 0x5c, - 0x61, 0x95, 0x8f, 0x0b, 0xec, 0xdc, 0xf7, 0x25, 0x98, 0x14, 0x2f, 0x2a, 0x35, 0xcf, 0x59, 0x9b, - 0x00, 0x9a, 0x69, 0x5a, 0xae, 0xdf, 0x5d, 0xbd, 0xa1, 0xdc, 0x83, 0x5b, 0x28, 0x7b, 0x20, 0xc5, - 0x47, 0x30, 0xd3, 0x02, 0xe8, 0x8e, 0xf4, 0x75, 0xdb, 0x49, 0xc8, 0xf1, 0x9b, 0x7b, 0xfa, 0xf3, - 0x0f, 0x7b, 0xb5, 0x05, 0x26, 0x22, 0x6f, 0x34, 0x68, 0x1a, 0xd2, 0xfb, 0xb8, 0x61, 0x98, 0xfc, - 0x3e, 0x91, 0x3d, 0x88, 0x5b, 0xca, 0x94, 0x77, 0x4b, 0xb9, 0x7c, 0x05, 0xa6, 0x74, 0xab, 0x15, - 0x36, 0x77, 0x59, 0x0e, 0xbd, 0x5e, 0x3b, 0x97, 0xa5, 0x67, 0xa0, 0xdb, 0x62, 0x7e, 0x25, 0x91, - 0x5c, 0xdb, 0x59, 0xfe, 0x5a, 0x62, 0x66, 0x8d, 0xe1, 0x76, 0xc4, 0x32, 0x15, 0x5c, 0x6f, 0x62, - 0x9d, 0x98, 0x0e, 0x3f, 0xb9, 0x13, 0xee, 0x6b, 0x18, 0xee, 0x41, 0x67, 0x7f, 0x41, 0xb7, 0x5a, - 0x8b, 0x0d, 0xab, 0x61, 0x75, 0x7f, 0xee, 0x22, 0x4f, 0xf4, 0x81, 0xfe, 0xc7, 0x7f, 0xf2, 0xca, - 0x7a, 0xd2, 0x99, 0xd8, 0xdf, 0xc7, 0x4a, 0x5b, 0x30, 0xc5, 0x95, 0x55, 0x7a, 0xe7, 0xce, 0x5e, - 0x0d, 0xd0, 0xc0, 0x7b, 0x97, 0xe2, 0x37, 0xdf, 0xa1, 0xb5, 0x5a, 0x99, 0xe4, 0x50, 0x32, 0xc6, - 0x5e, 0x20, 0x4a, 0x0a, 0xdc, 0x14, 0xe0, 0x63, 0xe7, 0x12, 0xdb, 0x31, 0x8c, 0xdf, 0xe5, 0x8c, - 0x53, 0x3e, 0xc6, 0x2a, 0x87, 0x96, 0x56, 0x60, 0xfc, 0x38, 0x5c, 0xff, 0xc0, 0xb9, 0xf2, 0xd8, - 0x4f, 0xb2, 0x06, 0x13, 0x94, 0x44, 0xef, 0x38, 0xae, 0xd5, 0xa2, 0x49, 0x6f, 0x30, 0xcd, 0x3f, - 0xbe, 0xc3, 0x0e, 0x4a, 0x81, 0xc0, 0x56, 0x3c, 0x54, 0xa9, 0x04, 0xf4, 0x67, 0x86, 0x1a, 0xd6, - 0x9b, 0x31, 0x0c, 0x6f, 0x72, 0x43, 0x3c, 0xfd, 0xd2, 0x93, 0x30, 0x4d, 0xfe, 0xa7, 0x39, 0xc9, - 0x6f, 0x49, 0xfc, 0x2d, 0x53, 0xf1, 0xfb, 0x2f, 0xb3, 0xb3, 0x38, 0xe5, 0x11, 0xf8, 0x6c, 0xf2, - 0xed, 0x62, 0x03, 0xbb, 0x2e, 0xb6, 0x1d, 0x55, 0x6b, 0x46, 0x99, 0xe7, 0x7b, 0x4d, 0x2f, 0x7e, - 0xf1, 0xbd, 0xe0, 0x2e, 0xae, 0x31, 0x64, 0xb9, 0xd9, 0x2c, 0xed, 0xc1, 0xcd, 0x11, 0x51, 0x31, - 0x04, 0xe7, 0xab, 0x9c, 0x73, 0xba, 0x27, 0x32, 0x08, 0xed, 0x0e, 0x08, 0xb9, 0xb7, 0x97, 0x43, - 0x70, 0xfe, 0x01, 0xe7, 0x44, 0x1c, 0x2b, 0xb6, 0x94, 0x30, 0x3e, 0x0e, 0x93, 0xd7, 0xb0, 0xbd, - 0x6f, 0x39, 0xfc, 0x6a, 0x64, 0x08, 0xba, 0xd7, 0x38, 0xdd, 0x04, 0x07, 0xd2, 0xbb, 0x12, 0xc2, - 0xf5, 0x30, 0x64, 0xea, 0x9a, 0x8e, 0x87, 0xa0, 0xf8, 0x12, 0xa7, 0x18, 0x23, 0xfa, 0x04, 0x5a, - 0x86, 0x7c, 0xc3, 0xe2, 0x65, 0x29, 0x1e, 0xfe, 0x3a, 0x87, 0xe7, 0x04, 0x86, 0x53, 0xb4, 0xad, - 0x76, 0xa7, 0x49, 0x6a, 0x56, 0x3c, 0xc5, 0x1f, 0x0a, 0x0a, 0x81, 0xe1, 0x14, 0xc7, 0x70, 0xeb, - 0x1f, 0x09, 0x0a, 0xc7, 0xe7, 0xcf, 0xc7, 0x20, 0x67, 0x99, 0xcd, 0x43, 0xcb, 0x1c, 0xc6, 0x88, - 0x2f, 0x73, 0x06, 0xe0, 0x10, 0x42, 0x70, 0x11, 0xb2, 0xc3, 0x6e, 0xc4, 0x1f, 0xbf, 0x27, 0x8e, - 0x87, 0xd8, 0x81, 0x35, 0x98, 0x10, 0x09, 0xca, 0xb0, 0xcc, 0x21, 0x28, 0xfe, 0x84, 0x53, 0x14, - 0x7c, 0x30, 0xbe, 0x0c, 0x17, 0x3b, 0x6e, 0x03, 0x0f, 0x43, 0xf2, 0x86, 0x58, 0x06, 0x87, 0x70, - 0x57, 0xee, 0x63, 0x53, 0x3f, 0x18, 0x8e, 0xe1, 0xab, 0xc2, 0x95, 0x02, 0x43, 0x28, 0x56, 0x60, - 0xbc, 0xa5, 0xd9, 0xce, 0x81, 0xd6, 0x1c, 0x6a, 0x3b, 0xfe, 0x94, 0x73, 0xe4, 0x3d, 0x10, 0xf7, - 0x48, 0xc7, 0x3c, 0x0e, 0xcd, 0xd7, 0x84, 0x47, 0x7c, 0x30, 0x7e, 0xf4, 0x1c, 0x97, 0x5e, 0x40, - 0x1d, 0x87, 0xed, 0xeb, 0xe2, 0xe8, 0x31, 0xec, 0xa6, 0x9f, 0xf1, 0x22, 0x64, 0x1d, 0xe3, 0xa5, - 0xa1, 0x68, 0xfe, 0x4c, 0xec, 0x34, 0x05, 0x10, 0xf0, 0xd3, 0x70, 0x4b, 0x64, 0x99, 0x18, 0x82, - 0xec, 0xcf, 0x39, 0xd9, 0x89, 0x88, 0x52, 0xc1, 0x53, 0xc2, 0x71, 0x29, 0xff, 0x42, 0xa4, 0x04, - 0x1c, 0xe2, 0xda, 0x21, 0x2f, 0x0a, 0x8e, 0x56, 0x3f, 0x9e, 0xd7, 0xfe, 0x52, 0x78, 0x8d, 0x61, - 0x03, 0x5e, 0xdb, 0x85, 0x13, 0x9c, 0xf1, 0x78, 0xfb, 0xfa, 0x0d, 0x91, 0x58, 0x19, 0x7a, 0x2f, - 0xb8, 0xbb, 0x3f, 0x07, 0x33, 0x9e, 0x3b, 0x45, 0x47, 0xea, 0xa8, 0x2d, 0xad, 0x3d, 0x04, 0xf3, - 0x37, 0x39, 0xb3, 0xc8, 0xf8, 0x5e, 0x4b, 0xeb, 0x6c, 0x6a, 0x6d, 0x42, 0x7e, 0x05, 0x8a, 0x82, - 0xbc, 0x63, 0xda, 0x58, 0xb7, 0x1a, 0xa6, 0xf1, 0x12, 0xae, 0x0d, 0x41, 0xfd, 0x57, 0xa1, 0xad, - 0xda, 0xf3, 0xc1, 0x09, 0xf3, 0x3a, 0xc8, 0x5e, 0xaf, 0xa2, 0x1a, 0xad, 0xb6, 0x65, 0xbb, 0x31, - 0x8c, 0x7f, 0x2d, 0x76, 0xca, 0xc3, 0xad, 0x53, 0x58, 0xa9, 0x02, 0x05, 0xfa, 0x38, 0x6c, 0x48, - 0xfe, 0x0d, 0x27, 0x1a, 0xef, 0xa2, 0x78, 0xe2, 0xd0, 0xad, 0x56, 0x5b, 0xb3, 0x87, 0xc9, 0x7f, - 0x7f, 0x2b, 0x12, 0x07, 0x87, 0xf0, 0xc4, 0xe1, 0x1e, 0xb6, 0x31, 0xa9, 0xf6, 0x43, 0x30, 0x7c, - 0x4b, 0x24, 0x0e, 0x81, 0xe1, 0x14, 0xa2, 0x61, 0x18, 0x82, 0xe2, 0xef, 0x04, 0x85, 0xc0, 0x10, - 0x8a, 0xcf, 0x77, 0x0b, 0xad, 0x8d, 0x1b, 0x86, 0xe3, 0xda, 0xac, 0x0f, 0x1e, 0x4c, 0xf5, 0xed, - 0xf7, 0x82, 0x4d, 0x98, 0xe2, 0x83, 0x96, 0x1e, 0x87, 0x89, 0x50, 0x8b, 0x81, 0xe2, 0xbe, 0x59, - 0x28, 0xfe, 0xe2, 0x07, 0x3c, 0x19, 0x05, 0x3b, 0x8c, 0xd2, 0x06, 0xd9, 0xf7, 0x60, 0x1f, 0x10, - 0x4f, 0xf6, 0xf2, 0x07, 0xde, 0xd6, 0x07, 0xda, 0x80, 0xd2, 0x25, 0x18, 0x0f, 0xf4, 0x00, 0xf1, - 0x54, 0xbf, 0xc4, 0xa9, 0xf2, 0xfe, 0x16, 0xa0, 0x74, 0x0e, 0x52, 0xa4, 0x9e, 0xc7, 0xc3, 0x7f, - 0x99, 0xc3, 0xa9, 0x7a, 0xe9, 0x11, 0xc8, 0x88, 0x3a, 0x1e, 0x0f, 0xfd, 0x15, 0x0e, 0xf5, 0x20, - 0x04, 0x2e, 0x6a, 0x78, 0x3c, 0xfc, 0x57, 0x05, 0x5c, 0x40, 0x08, 0x7c, 0x78, 0x17, 0x7e, 0xe7, - 0xd7, 0x52, 0x3c, 0x0f, 0x0b, 0xdf, 0x5d, 0x84, 0x31, 0x5e, 0xbc, 0xe3, 0xd1, 0x5f, 0xe0, 0x93, - 0x0b, 0x44, 0xe9, 0x21, 0x48, 0x0f, 0xe9, 0xf0, 0x5f, 0xe7, 0x50, 0xa6, 0x5f, 0x5a, 0x81, 0x9c, - 0xaf, 0x60, 0xc7, 0xc3, 0x7f, 0x83, 0xc3, 0xfd, 0x28, 0x62, 0x3a, 0x2f, 0xd8, 0xf1, 0x04, 0xbf, - 0x29, 0x4c, 0xe7, 0x08, 0xe2, 0x36, 0x51, 0xab, 0xe3, 0xd1, 0xbf, 0x25, 0xbc, 0x2e, 0x20, 0xa5, - 0xc7, 0x20, 0xeb, 0xe5, 0xdf, 0x78, 0xfc, 0x6f, 0x73, 0x7c, 0x17, 0x43, 0x3c, 0xe0, 0xcb, 0xff, - 0xf1, 0x14, 0xbf, 0x23, 0x3c, 0xe0, 0x43, 0x91, 0x63, 0x14, 0xae, 0xe9, 0xf1, 0x4c, 0xbf, 0x2b, - 0x8e, 0x51, 0xa8, 0xa4, 0x93, 0xdd, 0xa4, 0x69, 0x30, 0x9e, 0xe2, 0xf7, 0xc4, 0x6e, 0x52, 0x7d, - 0x62, 0x46, 0xb8, 0x48, 0xc6, 0x73, 0xfc, 0xbe, 0x30, 0x23, 0x54, 0x23, 0x4b, 0x3b, 0x80, 0x7a, - 0x0b, 0x64, 0x3c, 0xdf, 0x2b, 0x9c, 0x6f, 0xb2, 0xa7, 0x3e, 0x96, 0x9e, 0x82, 0x13, 0xd1, 0xc5, - 0x31, 0x9e, 0xf5, 0x8b, 0x1f, 0x84, 0x5e, 0x67, 0xfc, 0xb5, 0xb1, 0xb4, 0xdb, 0xcd, 0xb2, 0xfe, - 0xc2, 0x18, 0x4f, 0xfb, 0xea, 0x07, 0xc1, 0x44, 0xeb, 0xaf, 0x8b, 0xa5, 0x32, 0x40, 0xb7, 0x26, - 0xc5, 0x73, 0xbd, 0xc6, 0xb9, 0x7c, 0x20, 0x72, 0x34, 0x78, 0x49, 0x8a, 0xc7, 0x7f, 0x49, 0x1c, - 0x0d, 0x8e, 0x20, 0x47, 0x43, 0x54, 0xa3, 0x78, 0xf4, 0xeb, 0xe2, 0x68, 0x08, 0x48, 0xe9, 0x22, - 0x64, 0xcc, 0x4e, 0xb3, 0x49, 0x62, 0x0b, 0x0d, 0xfe, 0x8c, 0xa8, 0xf8, 0xaf, 0x1f, 0x71, 0xb0, - 0x00, 0x94, 0xce, 0x41, 0x1a, 0xb7, 0xf6, 0x71, 0x2d, 0x0e, 0xf9, 0x6f, 0x1f, 0x89, 0x7c, 0x42, - 0xb4, 0x4b, 0x8f, 0x01, 0xb0, 0x97, 0x69, 0xfa, 0x2b, 0x51, 0x0c, 0xf6, 0xdf, 0x3f, 0xe2, 0x5f, - 0x28, 0x74, 0x21, 0x5d, 0x02, 0xf6, 0xbd, 0xc3, 0x60, 0x82, 0xf7, 0x82, 0x04, 0xf4, 0x05, 0xfc, - 0x61, 0x18, 0x7b, 0xce, 0xb1, 0x4c, 0x57, 0x6b, 0xc4, 0xa1, 0xff, 0x83, 0xa3, 0x85, 0x3e, 0x71, - 0x58, 0xcb, 0xb2, 0xb1, 0xab, 0x35, 0x9c, 0x38, 0xec, 0x7f, 0x72, 0xac, 0x07, 0x20, 0x60, 0x5d, - 0x73, 0xdc, 0x61, 0xd6, 0xfd, 0x5f, 0x02, 0x2c, 0x00, 0xc4, 0x68, 0xf2, 0xff, 0x55, 0x7c, 0x18, - 0x87, 0x7d, 0x5f, 0x18, 0xcd, 0xf5, 0x4b, 0x8f, 0x40, 0x96, 0xfc, 0xcb, 0xbe, 0xda, 0x89, 0x01, - 0xff, 0x37, 0x07, 0x77, 0x11, 0x64, 0x66, 0xc7, 0xad, 0xb9, 0x46, 0xbc, 0xb3, 0xff, 0x87, 0xef, - 0xb4, 0xd0, 0x2f, 0x95, 0x21, 0xe7, 0xb8, 0xb5, 0x5a, 0x87, 0x77, 0x34, 0x31, 0xf0, 0x9f, 0x7c, - 0xe4, 0xbd, 0xe4, 0x7a, 0x98, 0xe5, 0xd3, 0xd1, 0x97, 0x75, 0xb0, 0x66, 0xad, 0x59, 0xec, 0x9a, - 0x0e, 0x3e, 0xbc, 0x0f, 0xe6, 0x74, 0xab, 0xb5, 0x6f, 0x39, 0x8b, 0x2c, 0xa1, 0xec, 0x5b, 0xee, - 0xc1, 0x62, 0x4b, 0x6b, 0x3b, 0x54, 0x7d, 0x89, 0x5f, 0xb5, 0xe5, 0xf8, 0x13, 0x19, 0x98, 0x39, - 0xde, 0x35, 0xdd, 0xdc, 0xad, 0x30, 0x7e, 0xa9, 0x69, 0x69, 0xae, 0x61, 0x36, 0x76, 0x2c, 0xc3, - 0x74, 0x51, 0x1e, 0xa4, 0x3a, 0xfd, 0x8d, 0x49, 0x52, 0xa4, 0xfa, 0xdc, 0x3f, 0xa5, 0x21, 0xcb, - 0x6e, 0x78, 0x36, 0xb5, 0x36, 0xfa, 0x05, 0xc8, 0x6f, 0xf1, 0x43, 0xf2, 0xc0, 0xd2, 0x05, 0xc7, - 0xbb, 0x4e, 0xf6, 0xcd, 0xbf, 0xe0, 0x69, 0x2f, 0xf8, 0x55, 0xe9, 0x6f, 0xca, 0xcb, 0xf7, 0xff, - 0xf0, 0xad, 0x93, 0xf7, 0xf6, 0xb5, 0x8f, 0x54, 0xc5, 0x45, 0x16, 0xcd, 0x0b, 0x7b, 0x86, 0xe9, - 0x3e, 0xb0, 0x74, 0x41, 0x09, 0xcc, 0x87, 0xae, 0x41, 0x86, 0x0f, 0x38, 0xfc, 0x67, 0x86, 0xdb, - 0xfb, 0xcc, 0x2d, 0xd4, 0xd8, 0xbc, 0x67, 0xdf, 0x7c, 0xeb, 0xe4, 0xc8, 0xb1, 0xe7, 0xf6, 0xe6, - 0x42, 0xcf, 0x43, 0x4e, 0xd8, 0xb1, 0x5e, 0x73, 0xf8, 0xd7, 0xc4, 0x77, 0xc5, 0x2c, 0x7b, 0xbd, - 0xc6, 0x67, 0xbf, 0xf3, 0x87, 0x6f, 0x9d, 0x9c, 0x1b, 0x38, 0xf3, 0xc2, 0x5e, 0xc7, 0xa8, 0x29, - 0xfe, 0x39, 0xd0, 0xb3, 0x90, 0x24, 0x53, 0xb1, 0xef, 0x8e, 0x4f, 0xf6, 0x99, 0xca, 0x9b, 0xe2, - 0x0c, 0x5f, 0xe0, 0x30, 0xd3, 0x10, 0xde, 0x99, 0xc7, 0x60, 0xb2, 0x67, 0x7b, 0x90, 0x0c, 0xc9, - 0xab, 0xf8, 0x90, 0x7f, 0x6a, 0x44, 0xfe, 0x45, 0xd3, 0xdd, 0x4f, 0xe9, 0xa4, 0xf9, 0x3c, 0xff, - 0x3e, 0xae, 0x94, 0xb8, 0x20, 0xcd, 0x5c, 0x84, 0xf1, 0x80, 0x8f, 0x8f, 0x05, 0x7e, 0x14, 0xe4, - 0xb0, 0x97, 0x8e, 0x85, 0x3f, 0x0f, 0x99, 0x8f, 0x83, 0x9b, 0xfb, 0x01, 0x82, 0xb1, 0x72, 0xb3, - 0xb9, 0xa9, 0xb5, 0x1d, 0xf4, 0x34, 0x4c, 0xb2, 0xde, 0x7d, 0xd7, 0x5a, 0xa5, 0x3f, 0xec, 0x6c, - 0x6a, 0x6d, 0x1e, 0xd0, 0xf7, 0x04, 0xdc, 0xcd, 0x01, 0x0b, 0x3d, 0xda, 0x74, 0x7e, 0xa5, 0x97, - 0x05, 0x3d, 0x09, 0xb2, 0x10, 0xd2, 0xb3, 0x45, 0x98, 0x59, 0xb8, 0x9e, 0x19, 0xc8, 0x2c, 0x94, - 0x19, 0x71, 0x0f, 0x07, 0x7a, 0x14, 0x32, 0xeb, 0xa6, 0xfb, 0xe0, 0x12, 0xe1, 0x63, 0x31, 0x38, - 0x17, 0xc9, 0x27, 0x94, 0x18, 0x8f, 0x87, 0xe1, 0xf8, 0xf3, 0x67, 0x09, 0x3e, 0x35, 0x18, 0x4f, - 0x95, 0xba, 0x78, 0xfa, 0x88, 0xca, 0x90, 0x25, 0x7b, 0xce, 0x0c, 0x60, 0x1f, 0xb2, 0xdf, 0x16, - 0x49, 0xe0, 0x69, 0x31, 0x86, 0x2e, 0x4a, 0x50, 0x30, 0x1b, 0x46, 0x63, 0x28, 0x7c, 0x46, 0x74, - 0x51, 0x84, 0xa2, 0xea, 0x59, 0x31, 0x36, 0x80, 0xa2, 0x1a, 0xb2, 0xa2, 0xea, 0xb7, 0xa2, 0xea, - 0x59, 0x91, 0x89, 0xa1, 0xf0, 0x5b, 0xe1, 0x3d, 0xa3, 0x55, 0x80, 0x4b, 0xc6, 0x8b, 0xb8, 0xc6, - 0xcc, 0xc8, 0x46, 0x24, 0x23, 0xc1, 0xd1, 0x55, 0x63, 0x24, 0x3e, 0x1c, 0x5a, 0x83, 0x5c, 0xb5, - 0xde, 0xa5, 0x01, 0xfe, 0x1d, 0x7f, 0xa4, 0x29, 0xf5, 0x10, 0x8f, 0x1f, 0xe9, 0x99, 0xc3, 0x96, - 0x94, 0x8b, 0x33, 0xc7, 0xb7, 0x26, 0x1f, 0xae, 0x6b, 0x0e, 0xa3, 0xc9, 0xc7, 0x9a, 0xe3, 0xe3, - 0xf1, 0x23, 0xd1, 0x45, 0x18, 0x5b, 0xb6, 0x2c, 0xa2, 0x59, 0x1c, 0xa7, 0x24, 0xa7, 0x23, 0x49, - 0xb8, 0x0e, 0x23, 0x10, 0x08, 0xba, 0x3b, 0x34, 0xf4, 0x09, 0xbc, 0x30, 0x68, 0x77, 0x84, 0x96, - 0xd8, 0x1d, 0xf1, 0xec, 0x3f, 0x81, 0xcb, 0x87, 0x2e, 0x26, 0x7d, 0x72, 0x71, 0x62, 0x88, 0x13, - 0x28, 0x94, 0x43, 0x27, 0x50, 0x88, 0x51, 0x15, 0x26, 0x84, 0xac, 0x62, 0x76, 0x48, 0x0e, 0x2e, - 0xca, 0xfc, 0x23, 0xe3, 0x41, 0xb4, 0x5c, 0x97, 0xb1, 0x86, 0x19, 0xd0, 0x0e, 0x14, 0x84, 0x68, - 0xd3, 0xa1, 0x8b, 0x9e, 0x8c, 0xa8, 0xab, 0x61, 0x4e, 0xa6, 0xca, 0x28, 0x43, 0xf8, 0x99, 0x55, - 0x38, 0x11, 0x9d, 0xad, 0xe2, 0xb2, 0xa5, 0xe4, 0xcf, 0xb2, 0x2b, 0x70, 0x53, 0x64, 0x66, 0x8a, - 0x23, 0x49, 0x84, 0xea, 0x44, 0x20, 0x1d, 0xf9, 0xc1, 0xe9, 0x08, 0x70, 0xba, 0x17, 0xdc, 0x0d, - 0x32, 0x3f, 0x38, 0x19, 0x01, 0x4e, 0xfa, 0xc1, 0x9f, 0x83, 0x42, 0x30, 0x0f, 0xf9, 0xd1, 0xe3, - 0x11, 0xe8, 0xf1, 0x08, 0x74, 0xf4, 0xdc, 0xa9, 0x08, 0x74, 0x2a, 0x84, 0xae, 0xf6, 0x9d, 0x7b, - 0x32, 0x02, 0x3d, 0x19, 0x81, 0x8e, 0x9e, 0x1b, 0x45, 0xa0, 0x91, 0x1f, 0xfd, 0x08, 0x4c, 0x84, - 0x52, 0x8e, 0x1f, 0x3e, 0x16, 0x01, 0x1f, 0x0b, 0xd5, 0xe6, 0x70, 0xaa, 0xf1, 0xe3, 0x27, 0x22, - 0xf0, 0x13, 0x51, 0xd3, 0x47, 0x5b, 0x3f, 0x1a, 0x01, 0x1f, 0x8d, 0x9c, 0x3e, 0x1a, 0x2f, 0x47, - 0xe0, 0x65, 0x3f, 0xbe, 0x04, 0x79, 0x7f, 0x56, 0xf1, 0x63, 0x33, 0x11, 0xd8, 0x4c, 0xd8, 0xef, - 0x81, 0x94, 0x12, 0x17, 0xe9, 0xd9, 0x3e, 0xc7, 0x25, 0x90, 0x46, 0x8e, 0xd5, 0xd9, 0x5c, 0x81, - 0xe9, 0xa8, 0xa4, 0x11, 0xc1, 0x71, 0xc6, 0xcf, 0x51, 0x58, 0x9a, 0x0e, 0x24, 0x0b, 0x8a, 0xeb, - 0xb4, 0xfc, 0xcc, 0xcf, 0xc2, 0x54, 0x44, 0xea, 0x88, 0x20, 0xbe, 0xdf, 0x4f, 0x9c, 0x5b, 0x9a, - 0x09, 0x10, 0x07, 0xde, 0x15, 0xfc, 0xad, 0xd5, 0x8f, 0xa6, 0xa0, 0xc0, 0x53, 0xd4, 0xb6, 0x5d, - 0xc3, 0x36, 0xae, 0xa1, 0x9f, 0xef, 0xdf, 0x61, 0x2d, 0x45, 0xa5, 0x36, 0x8e, 0x3b, 0x46, 0xa3, - 0xf5, 0x6c, 0xdf, 0x46, 0xeb, 0x81, 0x61, 0x26, 0x88, 0xeb, 0xb7, 0x2a, 0x3d, 0xfd, 0xd6, 0xdd, - 0x83, 0x68, 0xfb, 0xb5, 0x5d, 0x95, 0x9e, 0xb6, 0x2b, 0x8e, 0x26, 0xb2, 0xfb, 0xba, 0xdc, 0xdb, - 0x7d, 0x9d, 0x19, 0xc4, 0xd3, 0xbf, 0x09, 0xbb, 0xdc, 0xdb, 0x84, 0xc5, 0x32, 0x45, 0xf7, 0x62, - 0x97, 0x7b, 0x7b, 0xb1, 0x81, 0x4c, 0xfd, 0x5b, 0xb2, 0xcb, 0xbd, 0x2d, 0x59, 0x2c, 0x53, 0x74, - 0x67, 0xf6, 0x44, 0x44, 0x67, 0x76, 0xcf, 0x20, 0xaa, 0x41, 0x0d, 0xda, 0x56, 0x54, 0x83, 0x76, - 0xef, 0x40, 0xc3, 0x06, 0xf6, 0x69, 0x4f, 0x44, 0xf4, 0x69, 0xf1, 0xc6, 0xf5, 0x69, 0xd7, 0xb6, - 0xa2, 0xda, 0xb5, 0x21, 0x8c, 0xeb, 0xd7, 0xb5, 0x2d, 0x87, 0xbb, 0xb6, 0xf9, 0x41, 0x5c, 0xd1, - 0xcd, 0xdb, 0xe5, 0xde, 0xe6, 0xed, 0x4c, 0xfc, 0x59, 0x8c, 0xea, 0xe1, 0x9e, 0xed, 0xdb, 0xc3, - 0x0d, 0x75, 0xb8, 0xe3, 0x5a, 0xb9, 0x67, 0xfa, 0xb5, 0x72, 0xf7, 0x0f, 0xc3, 0x3e, 0xb8, 0xa3, - 0x7b, 0xaa, 0x4f, 0x47, 0xb7, 0x38, 0x0c, 0xf5, 0xa7, 0x8d, 0xdd, 0xa7, 0x8d, 0xdd, 0xa7, 0x8d, - 0xdd, 0xa7, 0x8d, 0xdd, 0xff, 0x8f, 0xc6, 0xae, 0x94, 0x7a, 0xe5, 0xcb, 0x27, 0xa5, 0x33, 0xa7, - 0x61, 0x8c, 0x4f, 0x8d, 0x46, 0x21, 0xb1, 0x59, 0x96, 0x47, 0xe8, 0xdf, 0x65, 0x59, 0xa2, 0x7f, - 0x57, 0xe4, 0xc4, 0xf2, 0xc6, 0x9b, 0x37, 0x66, 0x47, 0xbe, 0x77, 0x63, 0x76, 0xe4, 0x07, 0x37, - 0x66, 0x47, 0xde, 0xbe, 0x31, 0x2b, 0xbd, 0x7b, 0x63, 0x56, 0x7a, 0xff, 0xc6, 0xac, 0xf4, 0xe1, - 0x8d, 0x59, 0xe9, 0xfa, 0xd1, 0xac, 0xf4, 0xd5, 0xa3, 0x59, 0xe9, 0x1b, 0x47, 0xb3, 0xd2, 0xb7, - 0x8f, 0x66, 0xa5, 0xef, 0x1c, 0xcd, 0x4a, 0x6f, 0x1e, 0xcd, 0x8e, 0x7c, 0xef, 0x68, 0x76, 0xe4, - 0xed, 0xa3, 0x59, 0xe9, 0xdd, 0xa3, 0xd9, 0x91, 0xf7, 0x8f, 0x66, 0xa5, 0x0f, 0x8f, 0x66, 0xa5, - 0xeb, 0x3f, 0x9e, 0x95, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x23, 0x13, 0x20, 0x9a, 0x57, 0x45, - 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (x MapEnum) String() string { - s, ok := MapEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (this *FloatingPoint) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *FloatingPoint") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *FloatingPoint but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *FloatingPoint but is not nil && this == nil") - } - if this.F != nil && that1.F != nil { - if *this.F != *that1.F { - return fmt.Errorf("F this(%v) Not Equal that(%v)", *this.F, *that1.F) - } - } else if this.F != nil { - return fmt.Errorf("this.F == nil && that.F != nil") - } else if that1.F != nil { - return fmt.Errorf("F this(%v) Not Equal that(%v)", this.F, that1.F) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *FloatingPoint) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.F != nil && that1.F != nil { - if *this.F != *that1.F { - return false - } - } else if this.F != nil { - return false - } else if that1.F != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomMap) - if !ok { - that2, ok := that.(CustomMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") - } - if len(this.Nullable128S) != len(that1.Nullable128S) { - return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) - } - for i := range this.Nullable128S { - if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable - return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) - } - } - if len(this.Uint128S) != len(that1.Uint128S) { - return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) - } - for i := range this.Uint128S { - if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable - return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) - } - } - if len(this.NullableIds) != len(that1.NullableIds) { - return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) - } - for i := range this.NullableIds { - if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable - return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) - } - } - if len(this.Ids) != len(that1.Ids) { - return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) - } - for i := range this.Ids { - if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable - return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomMap) - if !ok { - that2, ok := that.(CustomMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Nullable128S) != len(that1.Nullable128S) { - return false - } - for i := range this.Nullable128S { - if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable - return false - } - } - if len(this.Uint128S) != len(that1.Uint128S) { - return false - } - for i := range this.Uint128S { - if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable - return false - } - } - if len(this.NullableIds) != len(that1.NullableIds) { - return false - } - for i := range this.NullableIds { - if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable - return false - } - } - if len(this.Ids) != len(that1.Ids) { - return false - } - for i := range this.Ids { - if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllMaps) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMaps") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMaps but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMaps but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AllMaps) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllMapsOrdered) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMapsOrdered") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMapsOrdered but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMapsOrdered but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AllMapsOrdered) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetF() *float64 -} - -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { - return NewFloatingPointFromFace(this) -} - -func (this *FloatingPoint) GetF() *float64 { - return this.F -} - -func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { - this := &FloatingPoint{} - this.F = that.GetF() - return this -} - -type CustomMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 - GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 - GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid - GetIds() map[string]github_com_gogo_protobuf_test.Uuid -} - -func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomMapFromFace(this) -} - -func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { - return this.Nullable128S -} - -func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { - return this.Uint128S -} - -func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { - return this.NullableIds -} - -func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { - return this.Ids -} - -func NewCustomMapFromFace(that CustomMapFace) *CustomMap { - this := &CustomMap{} - this.Nullable128S = that.GetNullable128S() - this.Uint128S = that.GetUint128S() - this.NullableIds = that.GetNullableIds() - this.Ids = that.GetIds() - return this -} - -type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsFromFace(this) -} - -func (this *AllMaps) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMaps) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMaps) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMaps) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMaps) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMaps) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMaps) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMaps) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMaps) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMaps) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMaps) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMaps) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMaps) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMaps) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMaps) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMaps) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMaps) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsFromFace(that AllMapsFace) *AllMaps { - this := &AllMaps{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsOrderedFromFace(this) -} - -func (this *AllMapsOrdered) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMapsOrdered) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMapsOrdered) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMapsOrdered) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMapsOrdered) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMapsOrdered) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMapsOrdered) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMapsOrdered) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMapsOrdered) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMapsOrdered) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMapsOrdered) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMapsOrdered) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMapsOrdered) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMapsOrdered) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMapsOrdered) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMapsOrdered) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMapsOrdered) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { - this := &AllMapsOrdered{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -func (this *FloatingPoint) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&proto2_maps.FloatingPoint{") - if this.F != nil { - s = append(s, "F: "+valueToGoStringMapsproto2(this.F, "float64")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&proto2_maps.CustomMap{") - keysForNullable128S := make([]string, 0, len(this.Nullable128S)) - for k := range this.Nullable128S { - keysForNullable128S = append(keysForNullable128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) - mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForNullable128S { - mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) - } - mapStringForNullable128S += "}" - if this.Nullable128S != nil { - s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") - } - keysForUint128S := make([]string, 0, len(this.Uint128S)) - for k := range this.Uint128S { - keysForUint128S = append(keysForUint128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) - mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForUint128S { - mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) - } - mapStringForUint128S += "}" - if this.Uint128S != nil { - s = append(s, "Uint128S: "+mapStringForUint128S+",\n") - } - keysForNullableIds := make([]string, 0, len(this.NullableIds)) - for k := range this.NullableIds { - keysForNullableIds = append(keysForNullableIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) - mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForNullableIds { - mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) - } - mapStringForNullableIds += "}" - if this.NullableIds != nil { - s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") - } - keysForIds := make([]string, 0, len(this.Ids)) - for k := range this.Ids { - keysForIds = append(keysForIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) - mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForIds { - mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) - } - mapStringForIds += "}" - if this.Ids != nil { - s = append(s, "Ids: "+mapStringForIds+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMaps) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&proto2_maps.AllMaps{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMapsOrdered) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&proto2_maps.AllMapsOrdered{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringMapsproto2(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { - this := &FloatingPoint{} - if r.Intn(10) != 0 { - v1 := float64(r.Float64()) - if r.Intn(2) == 0 { - v1 *= -1 - } - this.F = &v1 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 2) - } - return this -} - -func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { - this := &CustomMap{} - if r.Intn(10) != 0 { - v2 := r.Intn(10) - this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) - for i := 0; i < v2; i++ { - this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) - } - } - if r.Intn(10) != 0 { - v3 := r.Intn(10) - this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) - for i := 0; i < v3; i++ { - this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) - } - } - if r.Intn(10) != 0 { - v4 := r.Intn(10) - this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) - for i := 0; i < v4; i++ { - this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) - } - } - if r.Intn(10) != 0 { - v5 := r.Intn(10) - this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) - for i := 0; i < v5; i++ { - this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) - } - return this -} - -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} - if r.Intn(10) != 0 { - v6 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v6; i++ { - v7 := randStringMapsproto2(r) - this.StringToDoubleMap[v7] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v7] *= -1 - } - } - } - if r.Intn(10) != 0 { - v8 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v8; i++ { - v9 := randStringMapsproto2(r) - this.StringToFloatMap[v9] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v9] *= -1 - } - } - } - if r.Intn(10) != 0 { - v10 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v10; i++ { - v11 := int32(r.Int31()) - this.Int32Map[v11] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v11] *= -1 - } - } - } - if r.Intn(10) != 0 { - v12 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v12; i++ { - v13 := int64(r.Int63()) - this.Int64Map[v13] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v13] *= -1 - } - } - } - if r.Intn(10) != 0 { - v14 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v14; i++ { - v15 := uint32(r.Uint32()) - this.Uint32Map[v15] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v16 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v16; i++ { - v17 := uint64(uint64(r.Uint32())) - this.Uint64Map[v17] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v18 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v18; i++ { - v19 := int32(r.Int31()) - this.Sint32Map[v19] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v19] *= -1 - } - } - } - if r.Intn(10) != 0 { - v20 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v20; i++ { - v21 := int64(r.Int63()) - this.Sint64Map[v21] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v21] *= -1 - } - } - } - if r.Intn(10) != 0 { - v22 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v22; i++ { - v23 := uint32(r.Uint32()) - this.Fixed32Map[v23] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v24 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v24; i++ { - v25 := int32(r.Int31()) - this.Sfixed32Map[v25] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v25] *= -1 - } - } - } - if r.Intn(10) != 0 { - v26 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v26; i++ { - v27 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v28 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v28; i++ { - v29 := int64(r.Int63()) - this.Sfixed64Map[v29] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v29] *= -1 - } - } - } - if r.Intn(10) != 0 { - v30 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v30; i++ { - v31 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v32 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v32; i++ { - this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) - } - } - if r.Intn(10) != 0 { - v33 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v33; i++ { - v34 := r.Intn(100) - v35 := randStringMapsproto2(r) - this.StringToBytesMap[v35] = make([]byte, v34) - for i := 0; i < v34; i++ { - this.StringToBytesMap[v35][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v36; i++ { - this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v37 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v37; i++ { - this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 18) - } - return this -} - -func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { - this := &AllMapsOrdered{} - if r.Intn(10) != 0 { - v38 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v38; i++ { - v39 := randStringMapsproto2(r) - this.StringToDoubleMap[v39] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v39] *= -1 - } - } - } - if r.Intn(10) != 0 { - v40 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v40; i++ { - v41 := randStringMapsproto2(r) - this.StringToFloatMap[v41] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v41] *= -1 - } - } - } - if r.Intn(10) != 0 { - v42 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v42; i++ { - v43 := int32(r.Int31()) - this.Int32Map[v43] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v43] *= -1 - } - } - } - if r.Intn(10) != 0 { - v44 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v44; i++ { - v45 := int64(r.Int63()) - this.Int64Map[v45] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v45] *= -1 - } - } - } - if r.Intn(10) != 0 { - v46 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v46; i++ { - v47 := uint32(r.Uint32()) - this.Uint32Map[v47] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v48 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v48; i++ { - v49 := uint64(uint64(r.Uint32())) - this.Uint64Map[v49] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v50 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v50; i++ { - v51 := int32(r.Int31()) - this.Sint32Map[v51] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v51] *= -1 - } - } - } - if r.Intn(10) != 0 { - v52 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v52; i++ { - v53 := int64(r.Int63()) - this.Sint64Map[v53] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v53] *= -1 - } - } - } - if r.Intn(10) != 0 { - v54 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v54; i++ { - v55 := uint32(r.Uint32()) - this.Fixed32Map[v55] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v56 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v56; i++ { - v57 := int32(r.Int31()) - this.Sfixed32Map[v57] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v57] *= -1 - } - } - } - if r.Intn(10) != 0 { - v58 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v58; i++ { - v59 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v60 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v60; i++ { - v61 := int64(r.Int63()) - this.Sfixed64Map[v61] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v61] *= -1 - } - } - } - if r.Intn(10) != 0 { - v62 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v62; i++ { - v63 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v64 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v64; i++ { - this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) - } - } - if r.Intn(10) != 0 { - v65 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v65; i++ { - v66 := r.Intn(100) - v67 := randStringMapsproto2(r) - this.StringToBytesMap[v67] = make([]byte, v66) - for i := 0; i < v66; i++ { - this.StringToBytesMap[v67][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v68 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v68; i++ { - this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v69 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v69; i++ { - this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 18) - } - return this -} - -type randyMapsproto2 interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneMapsproto2(r randyMapsproto2) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringMapsproto2(r randyMapsproto2) string { - v70 := r.Intn(100) - tmps := make([]rune, v70) - for i := 0; i < v70; i++ { - tmps[i] = randUTF8RuneMapsproto2(r) - } - return string(tmps) -} -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - v71 := r.Int63() - if r.Intn(2) == 0 { - v71 *= -1 - } - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) - case 1: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *FloatingPoint) Size() (n int) { - var l int - _ = l - if m.F != nil { - n += 9 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomMap) Size() (n int) { - var l int - _ = l - if len(m.Nullable128S) > 0 { - for k, v := range m.Nullable128S { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint128S) > 0 { - for k, v := range m.Uint128S { - _ = k - _ = v - l = 0 - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.NullableIds) > 0 { - for k, v := range m.NullableIds { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Ids) > 0 { - for k, v := range m.Ids { - _ = k - _ = v - l = 0 - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllMaps) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if v != nil { - l = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllMapsOrdered) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if v != nil { - l = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovMapsproto2(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozMapsproto2(x uint64) (n int) { - return sovMapsproto2(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *FloatingPoint) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&FloatingPoint{`, - `F:` + valueToStringMapsproto2(this.F) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomMap) String() string { - if this == nil { - return "nil" - } - keysForNullable128S := make([]string, 0, len(this.Nullable128S)) - for k := range this.Nullable128S { - keysForNullable128S = append(keysForNullable128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) - mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForNullable128S { - mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) - } - mapStringForNullable128S += "}" - keysForUint128S := make([]string, 0, len(this.Uint128S)) - for k := range this.Uint128S { - keysForUint128S = append(keysForUint128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) - mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForUint128S { - mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) - } - mapStringForUint128S += "}" - keysForNullableIds := make([]string, 0, len(this.NullableIds)) - for k := range this.NullableIds { - keysForNullableIds = append(keysForNullableIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) - mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForNullableIds { - mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) - } - mapStringForNullableIds += "}" - keysForIds := make([]string, 0, len(this.Ids)) - for k := range this.Ids { - keysForIds = append(keysForIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) - mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForIds { - mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) - } - mapStringForIds += "}" - s := strings.Join([]string{`&CustomMap{`, - `Nullable128S:` + mapStringForNullable128S + `,`, - `Uint128S:` + mapStringForUint128S + `,`, - `NullableIds:` + mapStringForNullableIds + `,`, - `Ids:` + mapStringForIds + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllMaps) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMaps{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllMapsOrdered) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMapsOrdered{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringMapsproto2(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *FloatingPoint) 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 *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.F != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.F - i += 8 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomMap) 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 *CustomMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Nullable128S) > 0 { - for k := range m.Nullable128S { - dAtA[i] = 0xa - i++ - v := m.Nullable128S[k] - cSize := 0 - if v != nil { - cSize = v.Size() - cSize += 1 + sovMapsproto2(uint64(cSize)) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n1, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - } - } - if len(m.Uint128S) > 0 { - for k := range m.Uint128S { - dAtA[i] = 0x12 - i++ - v := m.Uint128S[k] - cSize := 0 - cSize = v.Size() - cSize += 1 + sovMapsproto2(uint64(cSize)) - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n2, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - } - if len(m.NullableIds) > 0 { - for k := range m.NullableIds { - dAtA[i] = 0x1a - i++ - v := m.NullableIds[k] - cSize := 0 - if v != nil { - cSize = v.Size() - cSize += 1 + sovMapsproto2(uint64(cSize)) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n3, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - } - } - } - if len(m.Ids) > 0 { - for k := range m.Ids { - dAtA[i] = 0x22 - i++ - v := m.Ids[k] - cSize := 0 - cSize = v.Size() - cSize += 1 + sovMapsproto2(uint64(cSize)) - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n4, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AllMaps) 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 *AllMaps) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k := range m.StringToDoubleMap { - dAtA[i] = 0xa - i++ - v := m.StringToDoubleMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - if len(m.StringToFloatMap) > 0 { - for k := range m.StringToFloatMap { - dAtA[i] = 0x12 - i++ - v := m.StringToFloatMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) - } - } - if len(m.Int32Map) > 0 { - for k := range m.Int32Map { - dAtA[i] = 0x1a - i++ - v := m.Int32Map[k] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Int64Map) > 0 { - for k := range m.Int64Map { - dAtA[i] = 0x22 - i++ - v := m.Int64Map[k] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Uint32Map) > 0 { - for k := range m.Uint32Map { - dAtA[i] = 0x2a - i++ - v := m.Uint32Map[k] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Uint64Map) > 0 { - for k := range m.Uint64Map { - dAtA[i] = 0x32 - i++ - v := m.Uint64Map[k] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Sint32Map) > 0 { - for k := range m.Sint32Map { - dAtA[i] = 0x3a - i++ - v := m.Sint32Map[k] - mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) - } - } - if len(m.Sint64Map) > 0 { - for k := range m.Sint64Map { - dAtA[i] = 0x42 - i++ - v := m.Sint64Map[k] - mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) - } - } - if len(m.Fixed32Map) > 0 { - for k := range m.Fixed32Map { - dAtA[i] = 0x4a - i++ - v := m.Fixed32Map[k] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) - } - } - if len(m.Sfixed32Map) > 0 { - for k := range m.Sfixed32Map { - dAtA[i] = 0x52 - i++ - v := m.Sfixed32Map[k] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) - } - } - if len(m.Fixed64Map) > 0 { - for k := range m.Fixed64Map { - dAtA[i] = 0x5a - i++ - v := m.Fixed64Map[k] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Sfixed64Map) > 0 { - for k := range m.Sfixed64Map { - dAtA[i] = 0x62 - i++ - v := m.Sfixed64Map[k] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.BoolMap) > 0 { - for k := range m.BoolMap { - dAtA[i] = 0x6a - i++ - v := m.BoolMap[k] - mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x10 - i++ - if v { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.StringMap) > 0 { - for k := range m.StringMap { - dAtA[i] = 0x72 - i++ - v := m.StringMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.StringToBytesMap) > 0 { - for k := range m.StringToBytesMap { - dAtA[i] = 0x7a - i++ - v := m.StringToBytesMap[k] - byteSize := 0 - if v != nil { - byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - if len(m.StringToEnumMap) > 0 { - for k := range m.StringToEnumMap { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToEnumMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.StringToMsgMap) > 0 { - for k := range m.StringToMsgMap { - dAtA[i] = 0x8a - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToMsgMap[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovMapsproto2(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n5, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AllMapsOrdered) 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 *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - keysForStringToDoubleMap := make([]string, 0, len(m.StringToDoubleMap)) - for k := range m.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - for _, k := range keysForStringToDoubleMap { - dAtA[i] = 0xa - i++ - v := m.StringToDoubleMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - if len(m.StringToFloatMap) > 0 { - keysForStringToFloatMap := make([]string, 0, len(m.StringToFloatMap)) - for k := range m.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - for _, k := range keysForStringToFloatMap { - dAtA[i] = 0x12 - i++ - v := m.StringToFloatMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) - } - } - if len(m.Int32Map) > 0 { - keysForInt32Map := make([]int32, 0, len(m.Int32Map)) - for k := range m.Int32Map { - keysForInt32Map = append(keysForInt32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - for _, k := range keysForInt32Map { - dAtA[i] = 0x1a - i++ - v := m.Int32Map[int32(k)] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Int64Map) > 0 { - keysForInt64Map := make([]int64, 0, len(m.Int64Map)) - for k := range m.Int64Map { - keysForInt64Map = append(keysForInt64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - for _, k := range keysForInt64Map { - dAtA[i] = 0x22 - i++ - v := m.Int64Map[int64(k)] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Uint32Map) > 0 { - keysForUint32Map := make([]uint32, 0, len(m.Uint32Map)) - for k := range m.Uint32Map { - keysForUint32Map = append(keysForUint32Map, uint32(k)) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - for _, k := range keysForUint32Map { - dAtA[i] = 0x2a - i++ - v := m.Uint32Map[uint32(k)] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Uint64Map) > 0 { - keysForUint64Map := make([]uint64, 0, len(m.Uint64Map)) - for k := range m.Uint64Map { - keysForUint64Map = append(keysForUint64Map, uint64(k)) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - for _, k := range keysForUint64Map { - dAtA[i] = 0x32 - i++ - v := m.Uint64Map[uint64(k)] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Sint32Map) > 0 { - keysForSint32Map := make([]int32, 0, len(m.Sint32Map)) - for k := range m.Sint32Map { - keysForSint32Map = append(keysForSint32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - for _, k := range keysForSint32Map { - dAtA[i] = 0x3a - i++ - v := m.Sint32Map[int32(k)] - mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) - } - } - if len(m.Sint64Map) > 0 { - keysForSint64Map := make([]int64, 0, len(m.Sint64Map)) - for k := range m.Sint64Map { - keysForSint64Map = append(keysForSint64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - for _, k := range keysForSint64Map { - dAtA[i] = 0x42 - i++ - v := m.Sint64Map[int64(k)] - mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) - } - } - if len(m.Fixed32Map) > 0 { - keysForFixed32Map := make([]uint32, 0, len(m.Fixed32Map)) - for k := range m.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, uint32(k)) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - for _, k := range keysForFixed32Map { - dAtA[i] = 0x4a - i++ - v := m.Fixed32Map[uint32(k)] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) - } - } - if len(m.Sfixed32Map) > 0 { - keysForSfixed32Map := make([]int32, 0, len(m.Sfixed32Map)) - for k := range m.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - for _, k := range keysForSfixed32Map { - dAtA[i] = 0x52 - i++ - v := m.Sfixed32Map[int32(k)] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) - } - } - if len(m.Fixed64Map) > 0 { - keysForFixed64Map := make([]uint64, 0, len(m.Fixed64Map)) - for k := range m.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, uint64(k)) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - for _, k := range keysForFixed64Map { - dAtA[i] = 0x5a - i++ - v := m.Fixed64Map[uint64(k)] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Sfixed64Map) > 0 { - keysForSfixed64Map := make([]int64, 0, len(m.Sfixed64Map)) - for k := range m.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - for _, k := range keysForSfixed64Map { - dAtA[i] = 0x62 - i++ - v := m.Sfixed64Map[int64(k)] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.BoolMap) > 0 { - keysForBoolMap := make([]bool, 0, len(m.BoolMap)) - for k := range m.BoolMap { - keysForBoolMap = append(keysForBoolMap, bool(k)) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - for _, k := range keysForBoolMap { - dAtA[i] = 0x6a - i++ - v := m.BoolMap[bool(k)] - mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x10 - i++ - if v { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.StringMap) > 0 { - keysForStringMap := make([]string, 0, len(m.StringMap)) - for k := range m.StringMap { - keysForStringMap = append(keysForStringMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - for _, k := range keysForStringMap { - dAtA[i] = 0x72 - i++ - v := m.StringMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.StringToBytesMap) > 0 { - keysForStringToBytesMap := make([]string, 0, len(m.StringToBytesMap)) - for k := range m.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - for _, k := range keysForStringToBytesMap { - dAtA[i] = 0x7a - i++ - v := m.StringToBytesMap[string(k)] - byteSize := 0 - if v != nil { - byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - if len(m.StringToEnumMap) > 0 { - keysForStringToEnumMap := make([]string, 0, len(m.StringToEnumMap)) - for k := range m.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - for _, k := range keysForStringToEnumMap { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToEnumMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.StringToMsgMap) > 0 { - keysForStringToMsgMap := make([]string, 0, len(m.StringToMsgMap)) - for k := range m.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - for _, k := range keysForStringToMsgMap { - dAtA[i] = 0x8a - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToMsgMap[string(k)] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovMapsproto2(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n6, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 - } - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Mapsproto2(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 encodeFixed32Mapsproto2(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 encodeVarintMapsproto2(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 *FloatingPoint) 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 ErrIntOverflowMapsproto2Unsafe - } - 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: FloatingPoint: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: FloatingPoint: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field F", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.F = &v - default: - iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomMap) 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 ErrIntOverflowMapsproto2Unsafe - } - 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: CustomMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nullable128S", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Nullable128S == nil { - m.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) - } else { - var mapvalue *github_com_gogo_protobuf_test_custom.Uint128 - m.Nullable128S[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint128S", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Uint128S == nil { - m.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test_custom.Uint128 - m.Uint128S[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableIds", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.NullableIds == nil { - m.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test.Uuid - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) - } else { - var mapvalue *github_com_gogo_protobuf_test.Uuid - m.NullableIds[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ids", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Ids == nil { - m.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test.Uuid - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test.Uuid - m.Ids[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllMaps) 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 ErrIntOverflowMapsproto2Unsafe - } - 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: AllMaps: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 17: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToMsgMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllMapsOrdered) 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 ErrIntOverflowMapsproto2Unsafe - } - 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: AllMapsOrdered: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllMapsOrdered: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 17: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToMsgMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipMapsproto2Unsafe(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, ErrIntOverflowMapsproto2Unsafe - } - 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, ErrIntOverflowMapsproto2Unsafe - } - 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, ErrIntOverflowMapsproto2Unsafe - } - 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, ErrInvalidLengthMapsproto2Unsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowMapsproto2Unsafe - } - 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 := skipMapsproto2Unsafe(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 ( - ErrInvalidLengthMapsproto2Unsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowMapsproto2Unsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeboth/mapsproto2.proto", fileDescriptorMapsproto2) } - -var fileDescriptorMapsproto2 = []byte{ - // 1150 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x6f, 0x1a, 0xc7, - 0x1b, 0xc7, 0x19, 0xb0, 0x0d, 0x0c, 0xef, 0x13, 0xff, 0x7e, 0x42, 0x48, 0x1d, 0x1c, 0xfa, 0x46, - 0x48, 0x0a, 0x36, 0x8d, 0x22, 0xcb, 0x69, 0x53, 0x19, 0xdb, 0x29, 0x56, 0x8a, 0x1b, 0x41, 0xd3, - 0x37, 0xc9, 0x52, 0xc1, 0x2c, 0x04, 0x15, 0x58, 0xca, 0xee, 0x46, 0xf5, 0xa5, 0xca, 0x9f, 0xd1, - 0x6b, 0x6f, 0x3d, 0xf6, 0xd8, 0x63, 0x8f, 0x96, 0x7a, 0xc9, 0x31, 0x8a, 0x2a, 0x2b, 0x6c, 0x2f, - 0x39, 0xe6, 0x98, 0x63, 0xb5, 0xb3, 0xbb, 0x30, 0xbb, 0xfb, 0xec, 0x2e, 0xf4, 0xd4, 0x83, 0x4f, - 0x78, 0x96, 0xe7, 0xfb, 0xf9, 0x3e, 0xbb, 0x3b, 0xf3, 0xf0, 0x35, 0x2e, 0x9c, 0x89, 0xa3, 0x8e, - 0x28, 0x55, 0x94, 0xb1, 0xd4, 0xee, 0x09, 0x1d, 0x51, 0x7e, 0x5c, 0x19, 0xb5, 0x27, 0xd2, 0x64, - 0x2a, 0xca, 0x62, 0xb5, 0xcc, 0x3e, 0x48, 0xcc, 0x58, 0x69, 0x5f, 0xe4, 0x3e, 0xe8, 0x0f, 0xe4, - 0xc7, 0x4a, 0xa7, 0x7c, 0x26, 0x8e, 0x2a, 0x7d, 0xb1, 0x2f, 0x56, 0xd8, 0x97, 0x1d, 0xa5, 0xc7, - 0x56, 0x6c, 0xc1, 0xfe, 0xd2, 0xb5, 0x85, 0xb7, 0x70, 0xe2, 0xfe, 0x50, 0x6c, 0xcb, 0x83, 0x71, - 0xff, 0xa1, 0x38, 0x18, 0xcb, 0x24, 0x8e, 0x51, 0x2f, 0x8b, 0xb6, 0x50, 0x11, 0x35, 0x51, 0xaf, - 0xf0, 0xe7, 0x3a, 0x8e, 0x1e, 0x28, 0x92, 0x2c, 0x8e, 0x1a, 0xed, 0x09, 0xf9, 0x09, 0xc7, 0x4f, - 0x94, 0xe1, 0xb0, 0xdd, 0x19, 0x0a, 0x3b, 0xd5, 0x5d, 0x29, 0x8b, 0xb6, 0x42, 0xc5, 0x58, 0xb5, - 0x58, 0xe6, 0xfc, 0xcb, 0xf3, 0xea, 0x32, 0x5f, 0x7a, 0x34, 0x96, 0xa7, 0xe7, 0xb5, 0xed, 0x17, - 0x97, 0xf9, 0x5b, 0xae, 0xfd, 0xc9, 0x82, 0x24, 0x57, 0xce, 0x98, 0xbc, 0xfc, 0x68, 0x30, 0x96, - 0x77, 0xaa, 0xbb, 0x4d, 0x8b, 0x1f, 0x79, 0x82, 0x23, 0xc6, 0x17, 0x52, 0x36, 0xc8, 0xbc, 0xdf, - 0x71, 0xf1, 0x36, 0xcb, 0x74, 0xdf, 0xdb, 0x17, 0x97, 0xf9, 0xc0, 0xca, 0xde, 0x73, 0x2f, 0xf2, - 0x03, 0x8e, 0x99, 0x7d, 0x1c, 0x77, 0xa5, 0x6c, 0x88, 0x59, 0xbf, 0xef, 0x73, 0xdb, 0xc7, 0x5d, - 0xc3, 0xfd, 0xbd, 0x17, 0x97, 0xf9, 0x82, 0xa7, 0x73, 0xf9, 0x91, 0x32, 0xe8, 0x36, 0x79, 0x0f, - 0x72, 0x8a, 0x43, 0x9a, 0xd5, 0x1a, 0xb3, 0xca, 0xbb, 0x58, 0xcd, 0x2d, 0x4a, 0xc6, 0x0d, 0x2e, - 0x63, 0xa3, 0x71, 0x73, 0x9f, 0xe0, 0x8c, 0xe3, 0xf5, 0x90, 0x34, 0x0e, 0x7d, 0x2f, 0x9c, 0xb3, - 0x97, 0x1f, 0x6d, 0x6a, 0x7f, 0x92, 0x4d, 0xbc, 0xfe, 0xa4, 0x3d, 0x54, 0x84, 0x6c, 0x70, 0x0b, - 0x15, 0xe3, 0x4d, 0x7d, 0xb1, 0x17, 0xdc, 0x45, 0xb9, 0xbb, 0x38, 0x61, 0x79, 0xc6, 0x2b, 0x89, - 0xef, 0xe1, 0xb4, 0xfd, 0x29, 0xad, 0xa4, 0xbf, 0x83, 0x23, 0xff, 0x46, 0x57, 0x78, 0x4e, 0x70, - 0x78, 0x7f, 0x38, 0x6c, 0xb4, 0x27, 0x12, 0xf9, 0x06, 0x67, 0x5a, 0xf2, 0x74, 0x30, 0xee, 0x7f, - 0x21, 0x1e, 0x8a, 0x4a, 0x67, 0x28, 0x34, 0xda, 0x13, 0x63, 0x43, 0xdf, 0xb4, 0x3c, 0x6e, 0x43, - 0x50, 0x76, 0x54, 0x33, 0xff, 0xa6, 0x93, 0x42, 0xbe, 0xc4, 0x69, 0xf3, 0x22, 0x3b, 0x5b, 0x1a, - 0x59, 0xdf, 0xae, 0x25, 0x4f, 0xb2, 0x59, 0xac, 0x83, 0x1d, 0x0c, 0x72, 0x0f, 0x47, 0x8e, 0xc7, - 0xf2, 0x87, 0x55, 0x8d, 0xa7, 0xef, 0xc1, 0x02, 0xc8, 0x33, 0x8b, 0x74, 0xce, 0x5c, 0x63, 0xe8, - 0xef, 0xdc, 0xd6, 0xf4, 0x6b, 0xde, 0x7a, 0x56, 0xb4, 0xd0, 0xb3, 0x25, 0xd9, 0xc7, 0x51, 0xed, - 0x9d, 0xeb, 0x0d, 0xac, 0x33, 0xc0, 0xdb, 0x20, 0x60, 0x5e, 0xa5, 0x13, 0x16, 0x2a, 0x13, 0xa1, - 0xf7, 0xb0, 0xe1, 0x83, 0xe0, 0x9a, 0x58, 0xa8, 0x34, 0x44, 0x6b, 0xde, 0x45, 0xd8, 0x03, 0xd1, - 0xb2, 0x75, 0xd1, 0xe2, 0xbb, 0x68, 0xcd, 0xbb, 0x88, 0xf8, 0x20, 0xf8, 0x2e, 0xe6, 0x6b, 0x72, - 0x88, 0xf1, 0xfd, 0xc1, 0x8f, 0x42, 0x57, 0x6f, 0x23, 0x0a, 0x0c, 0x23, 0x93, 0xb1, 0x28, 0xd3, - 0x21, 0x9c, 0x8e, 0x7c, 0x8a, 0x63, 0xad, 0xde, 0x02, 0x83, 0x19, 0xe6, 0x5d, 0xb8, 0x95, 0x9e, - 0x8d, 0xc3, 0x2b, 0xe7, 0xed, 0xe8, 0xb7, 0x14, 0xf3, 0x6b, 0x87, 0xbb, 0x27, 0x4e, 0xb7, 0x68, - 0x47, 0xc7, 0xc4, 0x7d, 0xdb, 0xe1, 0x38, 0xbc, 0x92, 0xdc, 0xc5, 0xe1, 0x9a, 0x28, 0x6a, 0x95, - 0xd9, 0x04, 0x83, 0x5c, 0x07, 0x21, 0x46, 0x8d, 0x0e, 0x30, 0x15, 0xec, 0xed, 0xb0, 0xad, 0xaf, - 0xc9, 0x93, 0x5e, 0x6f, 0xc7, 0xac, 0x32, 0xdf, 0x8e, 0xb9, 0xe6, 0x4f, 0x60, 0xed, 0x5c, 0x16, - 0x24, 0x8d, 0x94, 0x5a, 0xe2, 0x04, 0x9a, 0xc5, 0xb6, 0x13, 0x68, 0x5e, 0x26, 0x2d, 0x9c, 0x32, - 0xaf, 0x1d, 0x8d, 0x15, 0x6d, 0x06, 0x67, 0xd3, 0x0c, 0x7b, 0xc3, 0x13, 0x6b, 0xd4, 0xea, 0x54, - 0x3b, 0x81, 0x3c, 0xc4, 0x49, 0xf3, 0x52, 0x43, 0x62, 0x37, 0x9d, 0x01, 0x7e, 0x57, 0xed, 0x4c, - 0xbd, 0x54, 0x47, 0xda, 0xf4, 0xb9, 0x43, 0xfc, 0x7f, 0x78, 0x5a, 0xf9, 0x4d, 0x4b, 0xc4, 0x4f, - 0xd9, 0x03, 0xfc, 0x3f, 0x70, 0x32, 0xf9, 0x41, 0x82, 0xb6, 0xdf, 0x09, 0xcb, 0x38, 0xe2, 0xc5, - 0xeb, 0x80, 0x78, 0xdd, 0x29, 0x5e, 0x6c, 0x32, 0x5e, 0x1c, 0x02, 0xc4, 0x21, 0x5e, 0xfc, 0x11, - 0x4e, 0x5a, 0xe7, 0x10, 0xaf, 0x4e, 0x00, 0xea, 0x04, 0xa0, 0x86, 0xbd, 0xd7, 0x00, 0xf5, 0x9a, - 0x4d, 0xdd, 0x72, 0xf5, 0xce, 0x00, 0xea, 0x0c, 0xa0, 0x86, 0xbd, 0x09, 0xa0, 0x26, 0xbc, 0xfa, - 0x63, 0x9c, 0xb2, 0x8d, 0x1c, 0x5e, 0x1e, 0x06, 0xe4, 0x61, 0xdb, 0x6f, 0xb3, 0x7d, 0xd4, 0xf0, - 0xfa, 0x14, 0xa0, 0x4f, 0x41, 0xf6, 0x70, 0xf7, 0x1b, 0x80, 0x7c, 0x03, 0xb4, 0x87, 0xf5, 0x69, - 0x40, 0x9f, 0xe6, 0xf5, 0x7b, 0x38, 0xce, 0x4f, 0x15, 0x5e, 0x1b, 0x01, 0xb4, 0x11, 0xfb, 0x73, - 0xb7, 0x8c, 0x14, 0xbf, 0x9d, 0x1e, 0x75, 0x39, 0x2e, 0x96, 0x31, 0xb2, 0x52, 0xb2, 0xf9, 0x1a, - 0x6f, 0x42, 0x43, 0x03, 0x60, 0x94, 0x78, 0x46, 0xb2, 0xba, 0x69, 0x19, 0x16, 0x4c, 0xa7, 0x8c, - 0x78, 0xf2, 0x29, 0xbe, 0x06, 0x8c, 0x0e, 0x00, 0xbc, 0xcd, 0x83, 0x63, 0xd5, 0x9c, 0x05, 0x6c, - 0xf9, 0x5f, 0x81, 0x8f, 0x56, 0x7f, 0x5d, 0xc3, 0x49, 0x63, 0x44, 0x7d, 0x3e, 0xed, 0x0a, 0x53, - 0xa1, 0x4b, 0xbe, 0x73, 0x4f, 0x58, 0x55, 0x68, 0xb4, 0x19, 0xba, 0x15, 0x82, 0xd6, 0xa9, 0x6b, - 0xd0, 0xda, 0x59, 0xc6, 0xc0, 0x2f, 0x6f, 0x1d, 0x39, 0xf2, 0xd6, 0x0d, 0x2f, 0xac, 0x5b, 0xec, - 0x3a, 0x72, 0xc4, 0x2e, 0x3f, 0x0c, 0x98, 0xbe, 0xea, 0xce, 0xf4, 0x55, 0xf2, 0xe2, 0xb8, 0x87, - 0xb0, 0xba, 0x33, 0x84, 0xf9, 0x92, 0xe0, 0x2c, 0x56, 0x77, 0x66, 0x31, 0x4f, 0x92, 0x7b, 0x24, - 0xab, 0x3b, 0x23, 0x99, 0x2f, 0x09, 0x4e, 0x66, 0x0f, 0x80, 0x64, 0x76, 0xd3, 0x0b, 0xe5, 0x15, - 0xd0, 0x4e, 0xa0, 0x80, 0x76, 0xcb, 0xb3, 0x31, 0xcf, 0x9c, 0xf6, 0x00, 0xc8, 0x69, 0xfe, 0xcd, - 0xb9, 0xc4, 0xb5, 0x13, 0x28, 0xae, 0x2d, 0xd1, 0x9c, 0x5b, 0x6a, 0xab, 0xd9, 0x53, 0x5b, 0xd1, - 0x8b, 0x05, 0x87, 0xb7, 0xba, 0x33, 0xbc, 0x95, 0xfc, 0xcf, 0x22, 0x94, 0xe1, 0x4e, 0x5d, 0x33, - 0xdc, 0x52, 0x87, 0xdb, 0x2f, 0xca, 0x7d, 0xeb, 0x16, 0xe5, 0xb6, 0x97, 0xa1, 0x7b, 0x27, 0xba, - 0xaf, 0x5c, 0x12, 0x5d, 0x65, 0x19, 0xf4, 0x55, 0xb0, 0xbb, 0x0a, 0x76, 0x57, 0xc1, 0xee, 0x2a, - 0xd8, 0xfd, 0x37, 0x82, 0xdd, 0xde, 0xda, 0xcf, 0xbf, 0xe4, 0x51, 0xe9, 0x3a, 0x0e, 0x1b, 0xd6, - 0x64, 0x03, 0x07, 0x1b, 0xfb, 0xe9, 0x00, 0xfb, 0xac, 0xa5, 0x11, 0xfb, 0x3c, 0x48, 0x07, 0x6b, - 0x9f, 0x5d, 0xcc, 0x68, 0xe0, 0xd9, 0x8c, 0x06, 0x9e, 0xcf, 0x68, 0xe0, 0xe5, 0x8c, 0xa2, 0x57, - 0x33, 0x8a, 0x5e, 0xcf, 0x28, 0x7a, 0x33, 0xa3, 0xe8, 0xa9, 0x4a, 0xd1, 0xaf, 0x2a, 0x45, 0xbf, - 0xa9, 0x14, 0xfd, 0xae, 0x52, 0xf4, 0x87, 0x4a, 0xd1, 0x85, 0x4a, 0x03, 0xcf, 0x54, 0x1a, 0x78, - 0xa9, 0x52, 0xf4, 0x4a, 0xa5, 0x81, 0xd7, 0x2a, 0x45, 0x6f, 0x54, 0x8a, 0x9e, 0xfe, 0x4d, 0xd1, - 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x97, 0x11, 0x03, 0x1b, 0xf8, 0x16, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.proto deleted file mode 100644 index c98fc2d2e..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2.proto +++ /dev/null @@ -1,124 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; - -package proto2.maps; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message FloatingPoint { - optional double f = 1; -} - -message CustomMap { - map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; - map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; - map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; - map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; -} - -enum MapEnum { - MA = 0; - MB = 1; - MC = 2; -} - -message AllMaps { - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} - -message AllMapsOrdered { - option (gogoproto.stable_marshaler) = true; - - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2_test.go deleted file mode 100644 index 488bc86bf..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2_test.go +++ /dev/null @@ -1,104 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2015, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package proto2_maps - -import ( - "testing" - - "github.com/gogo/protobuf/proto" -) - -func TestNilMaps(t *testing.T) { - m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToMsgMap["a"]; !ok { - t.Error("element not in map") - } else if v != nil { - t.Errorf("element should be nil, but its %v", v) - } -} - -func TestNilMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["a"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} - -func TestEmptyMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["b"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2pb_test.go deleted file mode 100644 index ba3a6a0dd..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeboth/mapsproto2pb_test.go +++ /dev/null @@ -1,1040 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/mapsproto2.proto -// DO NOT EDIT! - -/* -Package proto2_maps is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeboth/mapsproto2.proto - -It has these top-level messages: - FloatingPoint - CustomMap - AllMaps - AllMapsOrdered -*/ -package proto2_maps - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestFloatingPointProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestFloatingPointMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &FloatingPoint{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllMapsMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMaps{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllMapsOrderedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMapsOrdered{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsOrderedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestFloatingPointProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestFloatingPointProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapsproto2Description(t *testing.T) { - Mapsproto2Description() -} -func TestFloatingPointVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsOrderedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestFloatingPointSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.pb.go deleted file mode 100644 index 42993b249..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.pb.go +++ /dev/null @@ -1,4506 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/mapsproto2.proto -// DO NOT EDIT! - -/* -Package proto2_maps is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/mapsproto2.proto - -It has these top-level messages: - FloatingPoint - CustomMap - AllMaps - AllMapsOrdered -*/ -package proto2_maps - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strconv "strconv" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -import unsafe "unsafe" - -// 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 - -type MapEnum int32 - -const ( - MA MapEnum = 0 - MB MapEnum = 1 - MC MapEnum = 2 -) - -var MapEnum_name = map[int32]string{ - 0: "MA", - 1: "MB", - 2: "MC", -} -var MapEnum_value = map[string]int32{ - "MA": 0, - "MB": 1, - "MC": 2, -} - -func (x MapEnum) Enum() *MapEnum { - p := new(MapEnum) - *p = x - return p -} -func (x MapEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(MapEnum_name, int32(x)) -} -func (x *MapEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(MapEnum_value, data, "MapEnum") - if err != nil { - return err - } - *x = MapEnum(value) - return nil -} -func (MapEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } - -type FloatingPoint struct { - F *float64 `protobuf:"fixed64,1,opt,name=f" json:"f,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } -func (*FloatingPoint) ProtoMessage() {} -func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } - -type CustomMap struct { - Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomMap) Reset() { *m = CustomMap{} } -func (*CustomMap) ProtoMessage() {} -func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } - -type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AllMaps) Reset() { *m = AllMaps{} } -func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } - -type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } -func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } - -func init() { - proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") - proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") - proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") - proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") - proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) -} -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 4580 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xbf, 0x86, 0x0f, 0x89, 0x3c, 0xa4, 0xa8, 0xd1, 0x48, 0x5e, 0xd3, 0x72, 0x4c, 0xed, 0xca, - 0x8f, 0x95, 0xd7, 0xb6, 0x64, 0xcb, 0xbb, 0xeb, 0x35, 0x37, 0xb6, 0x41, 0x49, 0x5c, 0xad, 0x6c, - 0xbd, 0x32, 0x94, 0xec, 0xb5, 0xff, 0x30, 0xe6, 0x3f, 0x1a, 0x5e, 0x52, 0xe3, 0x1d, 0xce, 0xd0, - 0x33, 0xc3, 0xf5, 0xca, 0x1f, 0x8a, 0x2d, 0xdc, 0x07, 0x82, 0xa2, 0xef, 0x02, 0x75, 0x5c, 0xc7, - 0x6d, 0x02, 0xb4, 0x4e, 0x93, 0x3e, 0x92, 0x3e, 0xd2, 0xa0, 0x9f, 0xf2, 0x25, 0xad, 0x81, 0x02, - 0x45, 0xf2, 0x2d, 0x08, 0x02, 0xc3, 0xab, 0x18, 0xa8, 0xdb, 0xba, 0xad, 0xdb, 0x18, 0x68, 0x00, - 0xa3, 0x40, 0x71, 0x5f, 0xc3, 0x99, 0xe1, 0x90, 0x43, 0x19, 0x70, 0xd2, 0x0f, 0xfe, 0x24, 0xcd, - 0xb9, 0xe7, 0xf7, 0xbb, 0xe7, 0x9e, 0x7b, 0xee, 0x39, 0x67, 0x2e, 0x07, 0x7e, 0x74, 0x0e, 0x4e, - 0x36, 0x2d, 0xab, 0x69, 0xa0, 0xc5, 0xb6, 0x6d, 0xb9, 0xd6, 0x7e, 0xa7, 0xb1, 0x58, 0x47, 0x8e, - 0x66, 0xeb, 0x6d, 0xd7, 0xb2, 0x17, 0x88, 0x4c, 0x9a, 0xa0, 0x1a, 0x0b, 0x5c, 0x63, 0x6e, 0x13, - 0x26, 0x2f, 0xe9, 0x06, 0x5a, 0xf5, 0x14, 0x6b, 0xc8, 0x95, 0x2e, 0x40, 0xaa, 0xa1, 0x1b, 0xa8, - 0x28, 0x9c, 0x4c, 0xce, 0xe7, 0x96, 0xee, 0x5a, 0x08, 0x81, 0x16, 0x82, 0x88, 0x1d, 0x2c, 0x96, - 0x09, 0x62, 0xee, 0xdd, 0x14, 0x4c, 0x45, 0x8c, 0x4a, 0x12, 0xa4, 0x4c, 0xb5, 0x85, 0x19, 0x85, - 0xf9, 0xac, 0x4c, 0xfe, 0x97, 0x8a, 0x30, 0xd6, 0x56, 0xb5, 0xab, 0x6a, 0x13, 0x15, 0x13, 0x44, - 0xcc, 0x1f, 0xa5, 0x12, 0x40, 0x1d, 0xb5, 0x91, 0x59, 0x47, 0xa6, 0x76, 0x58, 0x4c, 0x9e, 0x4c, - 0xce, 0x67, 0x65, 0x9f, 0x44, 0xba, 0x0f, 0x26, 0xdb, 0x9d, 0x7d, 0x43, 0xd7, 0x14, 0x9f, 0x1a, - 0x9c, 0x4c, 0xce, 0xa7, 0x65, 0x91, 0x0e, 0xac, 0x76, 0x95, 0x4f, 0xc3, 0xc4, 0x4b, 0x48, 0xbd, - 0xea, 0x57, 0xcd, 0x11, 0xd5, 0x02, 0x16, 0xfb, 0x14, 0x57, 0x20, 0xdf, 0x42, 0x8e, 0xa3, 0x36, - 0x91, 0xe2, 0x1e, 0xb6, 0x51, 0x31, 0x45, 0x56, 0x7f, 0xb2, 0x67, 0xf5, 0xe1, 0x95, 0xe7, 0x18, - 0x6a, 0xf7, 0xb0, 0x8d, 0xa4, 0x0a, 0x64, 0x91, 0xd9, 0x69, 0x51, 0x86, 0x74, 0x1f, 0xff, 0x55, - 0xcd, 0x4e, 0x2b, 0xcc, 0x92, 0xc1, 0x30, 0x46, 0x31, 0xe6, 0x20, 0xfb, 0x9a, 0xae, 0xa1, 0xe2, - 0x28, 0x21, 0x38, 0xdd, 0x43, 0x50, 0xa3, 0xe3, 0x61, 0x0e, 0x8e, 0x93, 0x56, 0x20, 0x8b, 0xae, - 0xbb, 0xc8, 0x74, 0x74, 0xcb, 0x2c, 0x8e, 0x11, 0x92, 0xbb, 0x23, 0x76, 0x11, 0x19, 0xf5, 0x30, - 0x45, 0x17, 0x27, 0x9d, 0x87, 0x31, 0xab, 0xed, 0xea, 0x96, 0xe9, 0x14, 0x33, 0x27, 0x85, 0xf9, - 0xdc, 0xd2, 0x67, 0x22, 0x03, 0x61, 0x9b, 0xea, 0xc8, 0x5c, 0x59, 0x5a, 0x07, 0xd1, 0xb1, 0x3a, - 0xb6, 0x86, 0x14, 0xcd, 0xaa, 0x23, 0x45, 0x37, 0x1b, 0x56, 0x31, 0x4b, 0x08, 0x66, 0x7b, 0x17, - 0x42, 0x14, 0x57, 0xac, 0x3a, 0x5a, 0x37, 0x1b, 0x96, 0x5c, 0x70, 0x02, 0xcf, 0xd2, 0x09, 0x18, - 0x75, 0x0e, 0x4d, 0x57, 0xbd, 0x5e, 0xcc, 0x93, 0x08, 0x61, 0x4f, 0x73, 0xff, 0x9d, 0x86, 0x89, - 0x61, 0x42, 0xec, 0x22, 0xa4, 0x1b, 0x78, 0x95, 0xc5, 0xc4, 0x71, 0x7c, 0x40, 0x31, 0x41, 0x27, - 0x8e, 0x7e, 0x4c, 0x27, 0x56, 0x20, 0x67, 0x22, 0xc7, 0x45, 0x75, 0x1a, 0x11, 0xc9, 0x21, 0x63, - 0x0a, 0x28, 0xa8, 0x37, 0xa4, 0x52, 0x1f, 0x2b, 0xa4, 0xae, 0xc0, 0x84, 0x67, 0x92, 0x62, 0xab, - 0x66, 0x93, 0xc7, 0xe6, 0x62, 0x9c, 0x25, 0x0b, 0x55, 0x8e, 0x93, 0x31, 0x4c, 0x2e, 0xa0, 0xc0, - 0xb3, 0xb4, 0x0a, 0x60, 0x99, 0xc8, 0x6a, 0x28, 0x75, 0xa4, 0x19, 0xc5, 0x4c, 0x1f, 0x2f, 0x6d, - 0x63, 0x95, 0x1e, 0x2f, 0x59, 0x54, 0xaa, 0x19, 0xd2, 0xa3, 0xdd, 0x50, 0x1b, 0xeb, 0x13, 0x29, - 0x9b, 0xf4, 0x90, 0xf5, 0x44, 0xdb, 0x1e, 0x14, 0x6c, 0x84, 0xe3, 0x1e, 0xd5, 0xd9, 0xca, 0xb2, - 0xc4, 0x88, 0x85, 0xd8, 0x95, 0xc9, 0x0c, 0x46, 0x17, 0x36, 0x6e, 0xfb, 0x1f, 0xa5, 0x3b, 0xc1, - 0x13, 0x28, 0x24, 0xac, 0x80, 0x64, 0xa1, 0x3c, 0x17, 0x6e, 0xa9, 0x2d, 0x34, 0x73, 0x01, 0x0a, - 0x41, 0xf7, 0x48, 0xd3, 0x90, 0x76, 0x5c, 0xd5, 0x76, 0x49, 0x14, 0xa6, 0x65, 0xfa, 0x20, 0x89, - 0x90, 0x44, 0x66, 0x9d, 0x64, 0xb9, 0xb4, 0x8c, 0xff, 0x9d, 0x79, 0x04, 0xc6, 0x03, 0xd3, 0x0f, - 0x0b, 0x9c, 0x7b, 0x75, 0x14, 0xa6, 0xa3, 0x62, 0x2e, 0x32, 0xfc, 0x4f, 0xc0, 0xa8, 0xd9, 0x69, - 0xed, 0x23, 0xbb, 0x98, 0x24, 0x0c, 0xec, 0x49, 0xaa, 0x40, 0xda, 0x50, 0xf7, 0x91, 0x51, 0x4c, - 0x9d, 0x14, 0xe6, 0x0b, 0x4b, 0xf7, 0x0d, 0x15, 0xd5, 0x0b, 0x1b, 0x18, 0x22, 0x53, 0xa4, 0xf4, - 0x38, 0xa4, 0x58, 0x8a, 0xc3, 0x0c, 0x67, 0x86, 0x63, 0xc0, 0xb1, 0x28, 0x13, 0x9c, 0x74, 0x3b, - 0x64, 0xf1, 0x5f, 0xea, 0xdb, 0x51, 0x62, 0x73, 0x06, 0x0b, 0xb0, 0x5f, 0xa5, 0x19, 0xc8, 0x90, - 0x30, 0xab, 0x23, 0x5e, 0x1a, 0xbc, 0x67, 0xbc, 0x31, 0x75, 0xd4, 0x50, 0x3b, 0x86, 0xab, 0x5c, - 0x53, 0x8d, 0x0e, 0x22, 0x01, 0x93, 0x95, 0xf3, 0x4c, 0xf8, 0x34, 0x96, 0x49, 0xb3, 0x90, 0xa3, - 0x51, 0xa9, 0x9b, 0x75, 0x74, 0x9d, 0x64, 0x9f, 0xb4, 0x4c, 0x03, 0x75, 0x1d, 0x4b, 0xf0, 0xf4, - 0x2f, 0x38, 0x96, 0xc9, 0xb7, 0x96, 0x4c, 0x81, 0x05, 0x64, 0xfa, 0x47, 0xc2, 0x89, 0xef, 0x8e, - 0xe8, 0xe5, 0x85, 0x63, 0x71, 0xee, 0x9b, 0x09, 0x48, 0x91, 0xf3, 0x36, 0x01, 0xb9, 0xdd, 0x67, - 0x77, 0xaa, 0xca, 0xea, 0xf6, 0xde, 0xf2, 0x46, 0x55, 0x14, 0xa4, 0x02, 0x00, 0x11, 0x5c, 0xda, - 0xd8, 0xae, 0xec, 0x8a, 0x09, 0xef, 0x79, 0x7d, 0x6b, 0xf7, 0xfc, 0x59, 0x31, 0xe9, 0x01, 0xf6, - 0xa8, 0x20, 0xe5, 0x57, 0x78, 0x78, 0x49, 0x4c, 0x4b, 0x22, 0xe4, 0x29, 0xc1, 0xfa, 0x95, 0xea, - 0xea, 0xf9, 0xb3, 0xe2, 0x68, 0x50, 0xf2, 0xf0, 0x92, 0x38, 0x26, 0x8d, 0x43, 0x96, 0x48, 0x96, - 0xb7, 0xb7, 0x37, 0xc4, 0x8c, 0xc7, 0x59, 0xdb, 0x95, 0xd7, 0xb7, 0xd6, 0xc4, 0xac, 0xc7, 0xb9, - 0x26, 0x6f, 0xef, 0xed, 0x88, 0xe0, 0x31, 0x6c, 0x56, 0x6b, 0xb5, 0xca, 0x5a, 0x55, 0xcc, 0x79, - 0x1a, 0xcb, 0xcf, 0xee, 0x56, 0x6b, 0x62, 0x3e, 0x60, 0xd6, 0xc3, 0x4b, 0xe2, 0xb8, 0x37, 0x45, - 0x75, 0x6b, 0x6f, 0x53, 0x2c, 0x48, 0x93, 0x30, 0x4e, 0xa7, 0xe0, 0x46, 0x4c, 0x84, 0x44, 0xe7, - 0xcf, 0x8a, 0x62, 0xd7, 0x10, 0xca, 0x32, 0x19, 0x10, 0x9c, 0x3f, 0x2b, 0x4a, 0x73, 0x2b, 0x90, - 0x26, 0xd1, 0x25, 0x49, 0x50, 0xd8, 0xa8, 0x2c, 0x57, 0x37, 0x94, 0xed, 0x9d, 0xdd, 0xf5, 0xed, - 0xad, 0xca, 0x86, 0x28, 0x74, 0x65, 0x72, 0xf5, 0x73, 0x7b, 0xeb, 0x72, 0x75, 0x55, 0x4c, 0xf8, - 0x65, 0x3b, 0xd5, 0xca, 0x6e, 0x75, 0x55, 0x4c, 0xce, 0x69, 0x30, 0x1d, 0x95, 0x67, 0x22, 0x4f, - 0x86, 0x6f, 0x8b, 0x13, 0x7d, 0xb6, 0x98, 0x70, 0xf5, 0x6c, 0xf1, 0x97, 0x05, 0x98, 0x8a, 0xc8, - 0xb5, 0x91, 0x93, 0x3c, 0x01, 0x69, 0x1a, 0xa2, 0xb4, 0xfa, 0xdc, 0x1b, 0x99, 0xb4, 0x49, 0xc0, - 0xf6, 0x54, 0x20, 0x82, 0xf3, 0x57, 0xe0, 0x64, 0x9f, 0x0a, 0x8c, 0x29, 0x7a, 0x8c, 0x7c, 0x45, - 0x80, 0x62, 0x3f, 0xee, 0x98, 0x44, 0x91, 0x08, 0x24, 0x8a, 0x8b, 0x61, 0x03, 0x4e, 0xf5, 0x5f, - 0x43, 0x8f, 0x15, 0x6f, 0x0a, 0x70, 0x22, 0xba, 0x51, 0x89, 0xb4, 0xe1, 0x71, 0x18, 0x6d, 0x21, - 0xf7, 0xc0, 0xe2, 0xc5, 0xfa, 0x9e, 0x88, 0x12, 0x80, 0x87, 0xc3, 0xbe, 0x62, 0x28, 0x7f, 0x0d, - 0x49, 0xf6, 0xeb, 0x36, 0xa8, 0x35, 0x3d, 0x96, 0x7e, 0x3e, 0x01, 0xb7, 0x44, 0x92, 0x47, 0x1a, - 0x7a, 0x07, 0x80, 0x6e, 0xb6, 0x3b, 0x2e, 0x2d, 0xc8, 0x34, 0x3f, 0x65, 0x89, 0x84, 0x9c, 0x7d, - 0x9c, 0x7b, 0x3a, 0xae, 0x37, 0x9e, 0x24, 0xe3, 0x40, 0x45, 0x44, 0xe1, 0x42, 0xd7, 0xd0, 0x14, - 0x31, 0xb4, 0xd4, 0x67, 0xa5, 0x3d, 0xb5, 0xee, 0x41, 0x10, 0x35, 0x43, 0x47, 0xa6, 0xab, 0x38, - 0xae, 0x8d, 0xd4, 0x96, 0x6e, 0x36, 0x49, 0x02, 0xce, 0x94, 0xd3, 0x0d, 0xd5, 0x70, 0x90, 0x3c, - 0x41, 0x87, 0x6b, 0x7c, 0x14, 0x23, 0x48, 0x95, 0xb1, 0x7d, 0x88, 0xd1, 0x00, 0x82, 0x0e, 0x7b, - 0x88, 0xb9, 0xaf, 0x8d, 0x41, 0xce, 0xd7, 0xd6, 0x49, 0xa7, 0x20, 0xff, 0x82, 0x7a, 0x4d, 0x55, - 0x78, 0xab, 0x4e, 0x3d, 0x91, 0xc3, 0xb2, 0x1d, 0xd6, 0xae, 0x3f, 0x08, 0xd3, 0x44, 0xc5, 0xea, - 0xb8, 0xc8, 0x56, 0x34, 0x43, 0x75, 0x1c, 0xe2, 0xb4, 0x0c, 0x51, 0x95, 0xf0, 0xd8, 0x36, 0x1e, - 0x5a, 0xe1, 0x23, 0xd2, 0x39, 0x98, 0x22, 0x88, 0x56, 0xc7, 0x70, 0xf5, 0xb6, 0x81, 0x14, 0xfc, - 0xf2, 0xe0, 0x90, 0x44, 0xec, 0x59, 0x36, 0x89, 0x35, 0x36, 0x99, 0x02, 0xb6, 0xc8, 0x91, 0x56, - 0xe1, 0x0e, 0x02, 0x6b, 0x22, 0x13, 0xd9, 0xaa, 0x8b, 0x14, 0xf4, 0x62, 0x47, 0x35, 0x1c, 0x45, - 0x35, 0xeb, 0xca, 0x81, 0xea, 0x1c, 0x14, 0xa7, 0x31, 0xc1, 0x72, 0xa2, 0x28, 0xc8, 0xb7, 0x61, - 0xc5, 0x35, 0xa6, 0x57, 0x25, 0x6a, 0x15, 0xb3, 0x7e, 0x59, 0x75, 0x0e, 0xa4, 0x32, 0x9c, 0x20, - 0x2c, 0x8e, 0x6b, 0xeb, 0x66, 0x53, 0xd1, 0x0e, 0x90, 0x76, 0x55, 0xe9, 0xb8, 0x8d, 0x0b, 0xc5, - 0xdb, 0xfd, 0xf3, 0x13, 0x0b, 0x6b, 0x44, 0x67, 0x05, 0xab, 0xec, 0xb9, 0x8d, 0x0b, 0x52, 0x0d, - 0xf2, 0x78, 0x33, 0x5a, 0xfa, 0xcb, 0x48, 0x69, 0x58, 0x36, 0xa9, 0x2c, 0x85, 0x88, 0x93, 0xed, - 0xf3, 0xe0, 0xc2, 0x36, 0x03, 0x6c, 0x5a, 0x75, 0x54, 0x4e, 0xd7, 0x76, 0xaa, 0xd5, 0x55, 0x39, - 0xc7, 0x59, 0x2e, 0x59, 0x36, 0x0e, 0xa8, 0xa6, 0xe5, 0x39, 0x38, 0x47, 0x03, 0xaa, 0x69, 0x71, - 0xf7, 0x9e, 0x83, 0x29, 0x4d, 0xa3, 0x6b, 0xd6, 0x35, 0x85, 0xb5, 0xf8, 0x4e, 0x51, 0x0c, 0x38, - 0x4b, 0xd3, 0xd6, 0xa8, 0x02, 0x8b, 0x71, 0x47, 0x7a, 0x14, 0x6e, 0xe9, 0x3a, 0xcb, 0x0f, 0x9c, - 0xec, 0x59, 0x65, 0x18, 0x7a, 0x0e, 0xa6, 0xda, 0x87, 0xbd, 0x40, 0x29, 0x30, 0x63, 0xfb, 0x30, - 0x0c, 0xbb, 0x9b, 0xbc, 0xb6, 0xd9, 0x48, 0x53, 0x5d, 0x54, 0x2f, 0xde, 0xea, 0xd7, 0xf6, 0x0d, - 0x48, 0x8b, 0x20, 0x6a, 0x9a, 0x82, 0x4c, 0x75, 0xdf, 0x40, 0x8a, 0x6a, 0x23, 0x53, 0x75, 0x8a, - 0xb3, 0x7e, 0xe5, 0x82, 0xa6, 0x55, 0xc9, 0x68, 0x85, 0x0c, 0x4a, 0x67, 0x60, 0xd2, 0xda, 0x7f, - 0x41, 0xa3, 0x91, 0xa5, 0xb4, 0x6d, 0xd4, 0xd0, 0xaf, 0x17, 0xef, 0x22, 0x6e, 0x9a, 0xc0, 0x03, - 0x24, 0xae, 0x76, 0x88, 0x58, 0xba, 0x17, 0x44, 0xcd, 0x39, 0x50, 0xed, 0x36, 0x29, 0xed, 0x4e, - 0x5b, 0xd5, 0x50, 0xf1, 0x6e, 0xaa, 0x4a, 0xe5, 0x5b, 0x5c, 0x8c, 0x23, 0xdb, 0x79, 0x49, 0x6f, - 0xb8, 0x9c, 0xf1, 0x34, 0x8d, 0x6c, 0x22, 0x63, 0x6c, 0x57, 0x60, 0xba, 0x63, 0xea, 0xa6, 0x8b, - 0xec, 0xb6, 0x8d, 0x70, 0x13, 0x4f, 0x4f, 0x62, 0xf1, 0x9f, 0xc6, 0xfa, 0xb4, 0xe1, 0x7b, 0x7e, - 0x6d, 0x1a, 0x00, 0xf2, 0x54, 0xa7, 0x57, 0x38, 0x57, 0x86, 0xbc, 0x3f, 0x2e, 0xa4, 0x2c, 0xd0, - 0xc8, 0x10, 0x05, 0x5c, 0x63, 0x57, 0xb6, 0x57, 0x71, 0x75, 0x7c, 0xae, 0x2a, 0x26, 0x70, 0x95, - 0xde, 0x58, 0xdf, 0xad, 0x2a, 0xf2, 0xde, 0xd6, 0xee, 0xfa, 0x66, 0x55, 0x4c, 0x9e, 0xc9, 0x66, - 0xde, 0x1b, 0x13, 0x6f, 0xdc, 0xb8, 0x71, 0x23, 0x31, 0xf7, 0x9d, 0x04, 0x14, 0x82, 0x9d, 0xb1, - 0xf4, 0x59, 0xb8, 0x95, 0xbf, 0xc6, 0x3a, 0xc8, 0x55, 0x5e, 0xd2, 0x6d, 0x12, 0xaa, 0x2d, 0x95, - 0xf6, 0x96, 0x9e, 0x97, 0xa7, 0x99, 0x56, 0x0d, 0xb9, 0xcf, 0xe8, 0x36, 0x0e, 0xc4, 0x96, 0xea, - 0x4a, 0x1b, 0x30, 0x6b, 0x5a, 0x8a, 0xe3, 0xaa, 0x66, 0x5d, 0xb5, 0xeb, 0x4a, 0xf7, 0x02, 0x41, - 0x51, 0x35, 0x0d, 0x39, 0x8e, 0x45, 0x4b, 0x84, 0xc7, 0xf2, 0x19, 0xd3, 0xaa, 0x31, 0xe5, 0x6e, - 0xee, 0xac, 0x30, 0xd5, 0x50, 0x44, 0x24, 0xfb, 0x45, 0xc4, 0xed, 0x90, 0x6d, 0xa9, 0x6d, 0x05, - 0x99, 0xae, 0x7d, 0x48, 0xfa, 0xb9, 0x8c, 0x9c, 0x69, 0xa9, 0xed, 0x2a, 0x7e, 0xfe, 0xe4, 0xf6, - 0xc0, 0xef, 0xc7, 0x1f, 0x26, 0x21, 0xef, 0xef, 0xe9, 0x70, 0x8b, 0xac, 0x91, 0xfc, 0x2d, 0x90, - 0x13, 0x7e, 0xe7, 0xc0, 0x0e, 0x70, 0x61, 0x05, 0x27, 0xf6, 0xf2, 0x28, 0xed, 0xb4, 0x64, 0x8a, - 0xc4, 0x45, 0x15, 0x9f, 0x69, 0x44, 0xfb, 0xf7, 0x8c, 0xcc, 0x9e, 0xa4, 0x35, 0x18, 0x7d, 0xc1, - 0x21, 0xdc, 0xa3, 0x84, 0xfb, 0xae, 0xc1, 0xdc, 0x4f, 0xd6, 0x08, 0x79, 0xf6, 0xc9, 0x9a, 0xb2, - 0xb5, 0x2d, 0x6f, 0x56, 0x36, 0x64, 0x06, 0x97, 0x6e, 0x83, 0x94, 0xa1, 0xbe, 0x7c, 0x18, 0x2c, - 0x01, 0x44, 0x34, 0xac, 0xe3, 0x6f, 0x83, 0xd4, 0x4b, 0x48, 0xbd, 0x1a, 0x4c, 0xbc, 0x44, 0xf4, - 0x09, 0x86, 0xfe, 0x22, 0xa4, 0x89, 0xbf, 0x24, 0x00, 0xe6, 0x31, 0x71, 0x44, 0xca, 0x40, 0x6a, - 0x65, 0x5b, 0xc6, 0xe1, 0x2f, 0x42, 0x9e, 0x4a, 0x95, 0x9d, 0xf5, 0xea, 0x4a, 0x55, 0x4c, 0xcc, - 0x9d, 0x83, 0x51, 0xea, 0x04, 0x7c, 0x34, 0x3c, 0x37, 0x88, 0x23, 0xec, 0x91, 0x71, 0x08, 0x7c, - 0x74, 0x6f, 0x73, 0xb9, 0x2a, 0x8b, 0x09, 0xff, 0xf6, 0x3a, 0x90, 0xf7, 0xb7, 0x73, 0x3f, 0x9d, - 0x98, 0xfa, 0x5b, 0x01, 0x72, 0xbe, 0xf6, 0x0c, 0x37, 0x06, 0xaa, 0x61, 0x58, 0x2f, 0x29, 0xaa, - 0xa1, 0xab, 0x0e, 0x0b, 0x0a, 0x20, 0xa2, 0x0a, 0x96, 0x0c, 0xbb, 0x69, 0x3f, 0x15, 0xe3, 0xdf, - 0x10, 0x40, 0x0c, 0xb7, 0x76, 0x21, 0x03, 0x85, 0x9f, 0xa9, 0x81, 0xaf, 0x0b, 0x50, 0x08, 0xf6, - 0x73, 0x21, 0xf3, 0x4e, 0xfd, 0x4c, 0xcd, 0x7b, 0x27, 0x01, 0xe3, 0x81, 0x2e, 0x6e, 0x58, 0xeb, - 0x5e, 0x84, 0x49, 0xbd, 0x8e, 0x5a, 0x6d, 0xcb, 0x45, 0xa6, 0x76, 0xa8, 0x18, 0xe8, 0x1a, 0x32, - 0x8a, 0x73, 0x24, 0x51, 0x2c, 0x0e, 0xee, 0x13, 0x17, 0xd6, 0xbb, 0xb8, 0x0d, 0x0c, 0x2b, 0x4f, - 0xad, 0xaf, 0x56, 0x37, 0x77, 0xb6, 0x77, 0xab, 0x5b, 0x2b, 0xcf, 0x2a, 0x7b, 0x5b, 0x4f, 0x6d, - 0x6d, 0x3f, 0xb3, 0x25, 0x8b, 0x7a, 0x48, 0xed, 0x13, 0x3c, 0xea, 0x3b, 0x20, 0x86, 0x8d, 0x92, - 0x6e, 0x85, 0x28, 0xb3, 0xc4, 0x11, 0x69, 0x0a, 0x26, 0xb6, 0xb6, 0x95, 0xda, 0xfa, 0x6a, 0x55, - 0xa9, 0x5e, 0xba, 0x54, 0x5d, 0xd9, 0xad, 0xd1, 0x17, 0x67, 0x4f, 0x7b, 0x37, 0x78, 0xa8, 0x5f, - 0x4b, 0xc2, 0x54, 0x84, 0x25, 0x52, 0x85, 0xf5, 0xec, 0xf4, 0x35, 0xe2, 0x81, 0x61, 0xac, 0x5f, - 0xc0, 0x5d, 0xc1, 0x8e, 0x6a, 0xbb, 0xac, 0xc5, 0xbf, 0x17, 0xb0, 0x97, 0x4c, 0x57, 0x6f, 0xe8, - 0xc8, 0x66, 0xf7, 0x0c, 0xb4, 0x91, 0x9f, 0xe8, 0xca, 0xe9, 0x55, 0xc3, 0xfd, 0x20, 0xb5, 0x2d, - 0x47, 0x77, 0xf5, 0x6b, 0x48, 0xd1, 0x4d, 0x7e, 0x29, 0x81, 0x1b, 0xfb, 0x94, 0x2c, 0xf2, 0x91, - 0x75, 0xd3, 0xf5, 0xb4, 0x4d, 0xd4, 0x54, 0x43, 0xda, 0x38, 0x81, 0x27, 0x65, 0x91, 0x8f, 0x78, - 0xda, 0xa7, 0x20, 0x5f, 0xb7, 0x3a, 0xb8, 0x4d, 0xa2, 0x7a, 0xb8, 0x5e, 0x08, 0x72, 0x8e, 0xca, - 0x3c, 0x15, 0xd6, 0xc7, 0x76, 0x6f, 0x43, 0xf2, 0x72, 0x8e, 0xca, 0xa8, 0xca, 0x69, 0x98, 0x50, - 0x9b, 0x4d, 0x1b, 0x93, 0x73, 0x22, 0xda, 0x99, 0x17, 0x3c, 0x31, 0x51, 0x9c, 0x79, 0x12, 0x32, - 0xdc, 0x0f, 0xb8, 0x24, 0x63, 0x4f, 0x28, 0x6d, 0x7a, 0x27, 0x95, 0x98, 0xcf, 0xca, 0x19, 0x93, - 0x0f, 0x9e, 0x82, 0xbc, 0xee, 0x28, 0xdd, 0xcb, 0xd1, 0xc4, 0xc9, 0xc4, 0x7c, 0x46, 0xce, 0xe9, - 0x8e, 0x77, 0x1b, 0x36, 0xf7, 0x66, 0x02, 0x0a, 0xc1, 0xcb, 0x5d, 0x69, 0x15, 0x32, 0x86, 0xa5, - 0xa9, 0x24, 0xb4, 0xe8, 0x2f, 0x0b, 0xf3, 0x31, 0xf7, 0xc1, 0x0b, 0x1b, 0x4c, 0x5f, 0xf6, 0x90, - 0x33, 0xff, 0x28, 0x40, 0x86, 0x8b, 0xa5, 0x13, 0x90, 0x6a, 0xab, 0xee, 0x01, 0xa1, 0x4b, 0x2f, - 0x27, 0x44, 0x41, 0x26, 0xcf, 0x58, 0xee, 0xb4, 0x55, 0x93, 0x84, 0x00, 0x93, 0xe3, 0x67, 0xbc, - 0xaf, 0x06, 0x52, 0xeb, 0xa4, 0xed, 0xb7, 0x5a, 0x2d, 0x64, 0xba, 0x0e, 0xdf, 0x57, 0x26, 0x5f, - 0x61, 0x62, 0xe9, 0x3e, 0x98, 0x74, 0x6d, 0x55, 0x37, 0x02, 0xba, 0x29, 0xa2, 0x2b, 0xf2, 0x01, - 0x4f, 0xb9, 0x0c, 0xb7, 0x71, 0xde, 0x3a, 0x72, 0x55, 0xed, 0x00, 0xd5, 0xbb, 0xa0, 0x51, 0x72, - 0x73, 0x78, 0x2b, 0x53, 0x58, 0x65, 0xe3, 0x1c, 0x3b, 0xf7, 0x3d, 0x01, 0x26, 0xf9, 0x8b, 0x4a, - 0xdd, 0x73, 0xd6, 0x26, 0x80, 0x6a, 0x9a, 0x96, 0xeb, 0x77, 0x57, 0x6f, 0x28, 0xf7, 0xe0, 0x16, - 0x2a, 0x1e, 0x48, 0xf6, 0x11, 0xcc, 0xb4, 0x00, 0xba, 0x23, 0x7d, 0xdd, 0x36, 0x0b, 0x39, 0x76, - 0x73, 0x4f, 0x7e, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x45, 0xf8, 0x8d, 0x46, 0x9a, 0x86, 0xf4, 0x3e, - 0x6a, 0xea, 0x26, 0xbb, 0x4f, 0xa4, 0x0f, 0xfc, 0x96, 0x32, 0xe5, 0xdd, 0x52, 0x2e, 0x5f, 0x81, - 0x29, 0xcd, 0x6a, 0x85, 0xcd, 0x5d, 0x16, 0x43, 0xaf, 0xd7, 0xce, 0x65, 0xe1, 0x39, 0xe8, 0xb6, - 0x98, 0x5f, 0x4e, 0x24, 0xd7, 0x76, 0x96, 0xbf, 0x9a, 0x98, 0x59, 0xa3, 0xb8, 0x1d, 0xbe, 0x4c, - 0x19, 0x35, 0x0c, 0xa4, 0x61, 0xd3, 0xe1, 0xc7, 0xf7, 0xc0, 0x03, 0x4d, 0xdd, 0x3d, 0xe8, 0xec, - 0x2f, 0x68, 0x56, 0x6b, 0xb1, 0x69, 0x35, 0xad, 0xee, 0xcf, 0x5d, 0xf8, 0x89, 0x3c, 0x90, 0xff, - 0xd8, 0x4f, 0x5e, 0x59, 0x4f, 0x3a, 0x13, 0xfb, 0xfb, 0x58, 0x79, 0x0b, 0xa6, 0x98, 0xb2, 0x42, - 0xee, 0xdc, 0xe9, 0xab, 0x81, 0x34, 0xf0, 0xde, 0xa5, 0xf8, 0x8d, 0x77, 0x49, 0xad, 0x96, 0x27, - 0x19, 0x14, 0x8f, 0xd1, 0x17, 0x88, 0xb2, 0x0c, 0xb7, 0x04, 0xf8, 0xe8, 0xb9, 0x44, 0x76, 0x0c, - 0xe3, 0x77, 0x18, 0xe3, 0x94, 0x8f, 0xb1, 0xc6, 0xa0, 0xe5, 0x15, 0x18, 0x3f, 0x0e, 0xd7, 0xdf, - 0x31, 0xae, 0x3c, 0xf2, 0x93, 0xac, 0xc1, 0x04, 0x21, 0xd1, 0x3a, 0x8e, 0x6b, 0xb5, 0x48, 0xd2, - 0x1b, 0x4c, 0xf3, 0xf7, 0xef, 0xd2, 0x83, 0x52, 0xc0, 0xb0, 0x15, 0x0f, 0x55, 0x2e, 0x03, 0xf9, - 0x99, 0xa1, 0x8e, 0x34, 0x23, 0x86, 0xe1, 0x2d, 0x66, 0x88, 0xa7, 0x5f, 0x7e, 0x1a, 0xa6, 0xf1, - 0xff, 0x24, 0x27, 0xf9, 0x2d, 0x89, 0xbf, 0x65, 0x2a, 0x7e, 0xef, 0x15, 0x7a, 0x16, 0xa7, 0x3c, - 0x02, 0x9f, 0x4d, 0xbe, 0x5d, 0x6c, 0x22, 0xd7, 0x45, 0xb6, 0xa3, 0xa8, 0x46, 0x94, 0x79, 0xbe, - 0xd7, 0xf4, 0xe2, 0x17, 0xde, 0x0f, 0xee, 0xe2, 0x1a, 0x45, 0x56, 0x0c, 0xa3, 0xbc, 0x07, 0xb7, - 0x46, 0x44, 0xc5, 0x10, 0x9c, 0xaf, 0x31, 0xce, 0xe9, 0x9e, 0xc8, 0xc0, 0xb4, 0x3b, 0xc0, 0xe5, - 0xde, 0x5e, 0x0e, 0xc1, 0xf9, 0x7b, 0x8c, 0x53, 0x62, 0x58, 0xbe, 0xa5, 0x98, 0xf1, 0x49, 0x98, - 0xbc, 0x86, 0xec, 0x7d, 0xcb, 0x61, 0x57, 0x23, 0x43, 0xd0, 0xbd, 0xce, 0xe8, 0x26, 0x18, 0x90, - 0xdc, 0x95, 0x60, 0xae, 0x47, 0x21, 0xd3, 0x50, 0x35, 0x34, 0x04, 0xc5, 0x17, 0x19, 0xc5, 0x18, - 0xd6, 0xc7, 0xd0, 0x0a, 0xe4, 0x9b, 0x16, 0x2b, 0x4b, 0xf1, 0xf0, 0x37, 0x18, 0x3c, 0xc7, 0x31, - 0x8c, 0xa2, 0x6d, 0xb5, 0x3b, 0x06, 0xae, 0x59, 0xf1, 0x14, 0xbf, 0xcf, 0x29, 0x38, 0x86, 0x51, - 0x1c, 0xc3, 0xad, 0x7f, 0xc0, 0x29, 0x1c, 0x9f, 0x3f, 0x9f, 0x80, 0x9c, 0x65, 0x1a, 0x87, 0x96, - 0x39, 0x8c, 0x11, 0x5f, 0x62, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x22, 0x64, 0x87, 0xdd, 0x88, 0x3f, - 0x7c, 0x9f, 0x1f, 0x0f, 0xbe, 0x03, 0x6b, 0x30, 0xc1, 0x13, 0x94, 0x6e, 0x99, 0x43, 0x50, 0xfc, - 0x11, 0xa3, 0x28, 0xf8, 0x60, 0x6c, 0x19, 0x2e, 0x72, 0xdc, 0x26, 0x1a, 0x86, 0xe4, 0x4d, 0xbe, - 0x0c, 0x06, 0x61, 0xae, 0xdc, 0x47, 0xa6, 0x76, 0x30, 0x1c, 0xc3, 0x57, 0xb8, 0x2b, 0x39, 0x06, - 0x53, 0xac, 0xc0, 0x78, 0x4b, 0xb5, 0x9d, 0x03, 0xd5, 0x18, 0x6a, 0x3b, 0xfe, 0x98, 0x71, 0xe4, - 0x3d, 0x10, 0xf3, 0x48, 0xc7, 0x3c, 0x0e, 0xcd, 0x57, 0xb9, 0x47, 0x7c, 0x30, 0x76, 0xf4, 0x1c, - 0x97, 0x5c, 0x40, 0x1d, 0x87, 0xed, 0x6b, 0xfc, 0xe8, 0x51, 0xec, 0xa6, 0x9f, 0xf1, 0x22, 0x64, - 0x1d, 0xfd, 0xe5, 0xa1, 0x68, 0xfe, 0x84, 0xef, 0x34, 0x01, 0x60, 0xf0, 0xb3, 0x70, 0x5b, 0x64, - 0x99, 0x18, 0x82, 0xec, 0x4f, 0x19, 0xd9, 0x89, 0x88, 0x52, 0xc1, 0x52, 0xc2, 0x71, 0x29, 0xff, - 0x8c, 0xa7, 0x04, 0x14, 0xe2, 0xda, 0xc1, 0x2f, 0x0a, 0x8e, 0xda, 0x38, 0x9e, 0xd7, 0xfe, 0x9c, - 0x7b, 0x8d, 0x62, 0x03, 0x5e, 0xdb, 0x85, 0x13, 0x8c, 0xf1, 0x78, 0xfb, 0xfa, 0x75, 0x9e, 0x58, - 0x29, 0x7a, 0x2f, 0xb8, 0xbb, 0xff, 0x0f, 0x66, 0x3c, 0x77, 0xf2, 0x8e, 0xd4, 0x51, 0x5a, 0x6a, - 0x7b, 0x08, 0xe6, 0x6f, 0x30, 0x66, 0x9e, 0xf1, 0xbd, 0x96, 0xd6, 0xd9, 0x54, 0xdb, 0x98, 0xfc, - 0x0a, 0x14, 0x39, 0x79, 0xc7, 0xb4, 0x91, 0x66, 0x35, 0x4d, 0xfd, 0x65, 0x54, 0x1f, 0x82, 0xfa, - 0x2f, 0x42, 0x5b, 0xb5, 0xe7, 0x83, 0x63, 0xe6, 0x75, 0x10, 0xbd, 0x5e, 0x45, 0xd1, 0x5b, 0x6d, - 0xcb, 0x76, 0x63, 0x18, 0xff, 0x92, 0xef, 0x94, 0x87, 0x5b, 0x27, 0xb0, 0x72, 0x15, 0x0a, 0xe4, - 0x71, 0xd8, 0x90, 0xfc, 0x2b, 0x46, 0x34, 0xde, 0x45, 0xb1, 0xc4, 0xa1, 0x59, 0xad, 0xb6, 0x6a, - 0x0f, 0x93, 0xff, 0xfe, 0x9a, 0x27, 0x0e, 0x06, 0x61, 0x89, 0xc3, 0x3d, 0x6c, 0x23, 0x5c, 0xed, - 0x87, 0x60, 0xf8, 0x26, 0x4f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, 0x30, 0x04, 0xc5, 0xdf, 0x70, - 0x0a, 0x8e, 0xc1, 0x14, 0x9f, 0xeb, 0x16, 0x5a, 0x1b, 0x35, 0x75, 0xc7, 0xb5, 0x69, 0x1f, 0x3c, - 0x98, 0xea, 0x5b, 0xef, 0x07, 0x9b, 0x30, 0xd9, 0x07, 0x2d, 0x3f, 0x09, 0x13, 0xa1, 0x16, 0x43, - 0x8a, 0xfb, 0x66, 0xa1, 0xf8, 0xf3, 0x1f, 0xb2, 0x64, 0x14, 0xec, 0x30, 0xca, 0x1b, 0x78, 0xdf, - 0x83, 0x7d, 0x40, 0x3c, 0xd9, 0x2b, 0x1f, 0x7a, 0x5b, 0x1f, 0x68, 0x03, 0xca, 0x97, 0x60, 0x3c, - 0xd0, 0x03, 0xc4, 0x53, 0xfd, 0x02, 0xa3, 0xca, 0xfb, 0x5b, 0x80, 0xf2, 0x39, 0x48, 0xe1, 0x7a, - 0x1e, 0x0f, 0xff, 0x45, 0x06, 0x27, 0xea, 0xe5, 0xc7, 0x20, 0xc3, 0xeb, 0x78, 0x3c, 0xf4, 0x97, - 0x18, 0xd4, 0x83, 0x60, 0x38, 0xaf, 0xe1, 0xf1, 0xf0, 0x5f, 0xe6, 0x70, 0x0e, 0xc1, 0xf0, 0xe1, - 0x5d, 0xf8, 0xed, 0x5f, 0x49, 0xb1, 0x3c, 0xcc, 0x7d, 0x77, 0x11, 0xc6, 0x58, 0xf1, 0x8e, 0x47, - 0x7f, 0x9e, 0x4d, 0xce, 0x11, 0xe5, 0x47, 0x20, 0x3d, 0xa4, 0xc3, 0x7f, 0x95, 0x41, 0xa9, 0x7e, - 0x79, 0x05, 0x72, 0xbe, 0x82, 0x1d, 0x0f, 0xff, 0x35, 0x06, 0xf7, 0xa3, 0xb0, 0xe9, 0xac, 0x60, - 0xc7, 0x13, 0xfc, 0x3a, 0x37, 0x9d, 0x21, 0xb0, 0xdb, 0x78, 0xad, 0x8e, 0x47, 0xff, 0x06, 0xf7, - 0x3a, 0x87, 0x94, 0x9f, 0x80, 0xac, 0x97, 0x7f, 0xe3, 0xf1, 0xbf, 0xc9, 0xf0, 0x5d, 0x0c, 0xf6, - 0x80, 0x2f, 0xff, 0xc7, 0x53, 0xfc, 0x16, 0xf7, 0x80, 0x0f, 0x85, 0x8f, 0x51, 0xb8, 0xa6, 0xc7, - 0x33, 0xfd, 0x36, 0x3f, 0x46, 0xa1, 0x92, 0x8e, 0x77, 0x93, 0xa4, 0xc1, 0x78, 0x8a, 0xdf, 0xe1, - 0xbb, 0x49, 0xf4, 0xb1, 0x19, 0xe1, 0x22, 0x19, 0xcf, 0xf1, 0xbb, 0xdc, 0x8c, 0x50, 0x8d, 0x2c, - 0xef, 0x80, 0xd4, 0x5b, 0x20, 0xe3, 0xf9, 0x5e, 0x65, 0x7c, 0x93, 0x3d, 0xf5, 0xb1, 0xfc, 0x0c, - 0x9c, 0x88, 0x2e, 0x8e, 0xf1, 0xac, 0x5f, 0xf8, 0x30, 0xf4, 0x3a, 0xe3, 0xaf, 0x8d, 0xe5, 0xdd, - 0x6e, 0x96, 0xf5, 0x17, 0xc6, 0x78, 0xda, 0xd7, 0x3e, 0x0c, 0x26, 0x5a, 0x7f, 0x5d, 0x2c, 0x57, - 0x00, 0xba, 0x35, 0x29, 0x9e, 0xeb, 0x75, 0xc6, 0xe5, 0x03, 0xe1, 0xa3, 0xc1, 0x4a, 0x52, 0x3c, - 0xfe, 0x8b, 0xfc, 0x68, 0x30, 0x04, 0x3e, 0x1a, 0xbc, 0x1a, 0xc5, 0xa3, 0xdf, 0xe0, 0x47, 0x83, - 0x43, 0xca, 0x17, 0x21, 0x63, 0x76, 0x0c, 0x03, 0xc7, 0x96, 0x34, 0xf8, 0x33, 0xa2, 0xe2, 0x3f, - 0x7f, 0xc4, 0xc0, 0x1c, 0x50, 0x3e, 0x07, 0x69, 0xd4, 0xda, 0x47, 0xf5, 0x38, 0xe4, 0xbf, 0x7c, - 0xc4, 0xf3, 0x09, 0xd6, 0x2e, 0x3f, 0x01, 0x40, 0x5f, 0xa6, 0xc9, 0xaf, 0x44, 0x31, 0xd8, 0x7f, - 0xfd, 0x88, 0x7d, 0xa1, 0xd0, 0x85, 0x74, 0x09, 0xe8, 0xf7, 0x0e, 0x83, 0x09, 0xde, 0x0f, 0x12, - 0x90, 0x17, 0xf0, 0x47, 0x61, 0xec, 0x05, 0xc7, 0x32, 0x5d, 0xb5, 0x19, 0x87, 0xfe, 0x37, 0x86, - 0xe6, 0xfa, 0xd8, 0x61, 0x2d, 0xcb, 0x46, 0xae, 0xda, 0x74, 0xe2, 0xb0, 0xff, 0xce, 0xb0, 0x1e, - 0x00, 0x83, 0x35, 0xd5, 0x71, 0x87, 0x59, 0xf7, 0x7f, 0x70, 0x30, 0x07, 0x60, 0xa3, 0xf1, 0xff, - 0x57, 0xd1, 0x61, 0x1c, 0xf6, 0x03, 0x6e, 0x34, 0xd3, 0x2f, 0x3f, 0x06, 0x59, 0xfc, 0x2f, 0xfd, - 0x6a, 0x27, 0x06, 0xfc, 0x9f, 0x0c, 0xdc, 0x45, 0xe0, 0x99, 0x1d, 0xb7, 0xee, 0xea, 0xf1, 0xce, - 0xfe, 0x2f, 0xb6, 0xd3, 0x5c, 0xbf, 0x5c, 0x81, 0x9c, 0xe3, 0xd6, 0xeb, 0x1d, 0xd6, 0xd1, 0xc4, - 0xc0, 0x7f, 0xfc, 0x91, 0xf7, 0x92, 0xeb, 0x61, 0x96, 0x4f, 0x45, 0x5f, 0xd6, 0xc1, 0x9a, 0xb5, - 0x66, 0xd1, 0x6b, 0x3a, 0xf8, 0x9f, 0x07, 0xe0, 0xb4, 0x66, 0xb5, 0xf6, 0x2d, 0x67, 0x91, 0x26, - 0x14, 0x2f, 0x9d, 0x2c, 0xb6, 0xd4, 0xb6, 0x43, 0x30, 0x4b, 0xec, 0xbe, 0x2d, 0xc7, 0x9e, 0xf0, - 0xc0, 0xcc, 0xf1, 0xee, 0xea, 0xe6, 0xee, 0x80, 0xf1, 0x4b, 0x86, 0xa5, 0xba, 0xba, 0xd9, 0xdc, - 0xb1, 0x74, 0xd3, 0x95, 0xf2, 0x20, 0x34, 0xc8, 0x0f, 0x4d, 0x82, 0x2c, 0x34, 0xe6, 0xfe, 0x21, - 0x0d, 0x59, 0x7a, 0xcd, 0xb3, 0xa9, 0xb6, 0xa5, 0x9f, 0x83, 0xfc, 0x16, 0x3b, 0x29, 0x0f, 0x2d, - 0x5d, 0x70, 0xbc, 0x3b, 0x65, 0xdf, 0xfc, 0x0b, 0x9e, 0xf6, 0x82, 0x5f, 0x95, 0xfc, 0xb0, 0xbc, - 0xfc, 0xe0, 0x0f, 0xde, 0x9e, 0xbd, 0xbf, 0xaf, 0x7d, 0xb8, 0x34, 0x2e, 0xd2, 0x90, 0x5e, 0xd8, - 0xd3, 0x4d, 0xf7, 0xa1, 0xa5, 0x0b, 0x72, 0x60, 0x3e, 0xe9, 0x1a, 0x64, 0xd8, 0x80, 0xc3, 0x7e, - 0x6b, 0xb8, 0xab, 0xcf, 0xdc, 0x5c, 0x8d, 0xce, 0x7b, 0xf6, 0xad, 0xb7, 0x67, 0x47, 0x8e, 0x3d, - 0xb7, 0x37, 0x97, 0xf4, 0x22, 0xe4, 0xb8, 0x1d, 0xeb, 0x75, 0x87, 0x7d, 0x52, 0x7c, 0x3a, 0x66, - 0xd9, 0xeb, 0x75, 0x36, 0xfb, 0x3d, 0x3f, 0x78, 0x7b, 0x76, 0x6e, 0xe0, 0xcc, 0x0b, 0x7b, 0x1d, - 0xbd, 0x2e, 0xfb, 0xe7, 0x90, 0x9e, 0x87, 0x24, 0x9e, 0x8a, 0x7e, 0x7c, 0x3c, 0xdb, 0x67, 0x2a, - 0x6f, 0x8a, 0x33, 0x6c, 0x81, 0xc3, 0x4c, 0x83, 0x79, 0x67, 0x9e, 0x80, 0xc9, 0x9e, 0xed, 0x91, - 0x44, 0x48, 0x5e, 0x45, 0x87, 0xec, 0x7b, 0x23, 0xfc, 0xaf, 0x34, 0xdd, 0xfd, 0x9e, 0x4e, 0x98, - 0xcf, 0xb3, 0x8f, 0xe4, 0xca, 0x89, 0x0b, 0xc2, 0xcc, 0x45, 0x18, 0x0f, 0xf8, 0xf8, 0x58, 0xe0, - 0xc7, 0x41, 0x0c, 0x7b, 0xe9, 0x58, 0xf8, 0xf3, 0x90, 0xf9, 0x38, 0xb8, 0xb9, 0xef, 0x4b, 0x30, - 0x56, 0x31, 0x8c, 0x4d, 0xb5, 0xed, 0x48, 0xcf, 0xc2, 0x24, 0x6d, 0xe0, 0x77, 0xad, 0x55, 0xf2, - 0xeb, 0xce, 0xa6, 0xda, 0x66, 0x01, 0x7d, 0x5f, 0xc0, 0xdd, 0x0c, 0xb0, 0xd0, 0xa3, 0x4d, 0xe6, - 0x97, 0x7b, 0x59, 0xa4, 0xa7, 0x41, 0xe4, 0x42, 0x72, 0xb6, 0x30, 0x33, 0x0d, 0xd7, 0x33, 0x03, - 0x99, 0xb9, 0x32, 0x25, 0xee, 0xe1, 0x90, 0x1e, 0x87, 0xcc, 0xba, 0xe9, 0x3e, 0xbc, 0x84, 0xf9, - 0x68, 0x0c, 0xce, 0x45, 0xf2, 0x71, 0x25, 0xca, 0xe3, 0x61, 0x18, 0xfe, 0xfc, 0x59, 0x8c, 0x4f, - 0x0d, 0xc6, 0x13, 0xa5, 0x2e, 0x9e, 0x3c, 0x4a, 0x15, 0xc8, 0xe2, 0x3d, 0xa7, 0x06, 0xd0, 0xaf, - 0xd9, 0xef, 0x8c, 0x24, 0xf0, 0xb4, 0x28, 0x43, 0x17, 0xc5, 0x29, 0xa8, 0x0d, 0xa3, 0x31, 0x14, - 0x3e, 0x23, 0xba, 0x28, 0x4c, 0x51, 0xf3, 0xac, 0x18, 0x1b, 0x40, 0x51, 0x0b, 0x59, 0x51, 0xf3, - 0x5b, 0x51, 0xf3, 0xac, 0xc8, 0xc4, 0x50, 0xf8, 0xad, 0xf0, 0x9e, 0xa5, 0x55, 0x80, 0x4b, 0xfa, - 0x75, 0x54, 0xa7, 0x66, 0x64, 0x23, 0x92, 0x11, 0xe7, 0xe8, 0xaa, 0x51, 0x12, 0x1f, 0x4e, 0x5a, - 0x83, 0x5c, 0xad, 0xd1, 0xa5, 0x01, 0xf6, 0x31, 0x7f, 0xa4, 0x29, 0x8d, 0x10, 0x8f, 0x1f, 0xe9, - 0x99, 0x43, 0x97, 0x94, 0x8b, 0x33, 0xc7, 0xb7, 0x26, 0x1f, 0xae, 0x6b, 0x0e, 0xa5, 0xc9, 0xc7, - 0x9a, 0xe3, 0xe3, 0xf1, 0x23, 0xa5, 0x8b, 0x30, 0xb6, 0x6c, 0x59, 0x58, 0xb3, 0x38, 0x4e, 0x48, - 0x4e, 0x45, 0x92, 0x30, 0x1d, 0x4a, 0xc0, 0x11, 0x64, 0x77, 0x48, 0xe8, 0x63, 0x78, 0x61, 0xd0, - 0xee, 0x70, 0x2d, 0xbe, 0x3b, 0xfc, 0xd9, 0x7f, 0x02, 0x97, 0x0f, 0x5d, 0x84, 0x9b, 0xe5, 0xe2, - 0xc4, 0x10, 0x27, 0x90, 0x2b, 0x87, 0x4e, 0x20, 0x17, 0x4b, 0x35, 0x98, 0xe0, 0xb2, 0xaa, 0xd9, - 0xc1, 0x39, 0xb8, 0x28, 0xb2, 0x2f, 0x8d, 0x07, 0xd1, 0x32, 0x5d, 0xca, 0x1a, 0x66, 0x90, 0x76, - 0xa0, 0xc0, 0x45, 0x9b, 0x0e, 0x59, 0xf4, 0x64, 0x44, 0x5d, 0x0d, 0x73, 0x52, 0x55, 0x4a, 0x19, - 0xc2, 0xcf, 0xac, 0xc2, 0x89, 0xe8, 0x6c, 0x15, 0x97, 0x2d, 0x05, 0x7f, 0x96, 0x5d, 0x81, 0x5b, - 0x22, 0x33, 0x53, 0x1c, 0x49, 0x22, 0x54, 0x27, 0x02, 0xe9, 0xc8, 0x0f, 0x4e, 0x47, 0x80, 0xd3, - 0xbd, 0xe0, 0x6e, 0x90, 0xf9, 0xc1, 0xc9, 0x08, 0x70, 0xd2, 0x0f, 0xfe, 0x2c, 0x14, 0x82, 0x79, - 0xc8, 0x8f, 0x1e, 0x8f, 0x40, 0x8f, 0x47, 0xa0, 0xa3, 0xe7, 0x4e, 0x45, 0xa0, 0x53, 0x21, 0x74, - 0xad, 0xef, 0xdc, 0x93, 0x11, 0xe8, 0xc9, 0x08, 0x74, 0xf4, 0xdc, 0x52, 0x04, 0x5a, 0xf2, 0xa3, - 0x1f, 0x83, 0x89, 0x50, 0xca, 0xf1, 0xc3, 0xc7, 0x22, 0xe0, 0x63, 0xa1, 0xda, 0x1c, 0x4e, 0x35, - 0x7e, 0xfc, 0x44, 0x04, 0x7e, 0x22, 0x6a, 0xfa, 0x68, 0xeb, 0x47, 0x23, 0xe0, 0xa3, 0x91, 0xd3, - 0x47, 0xe3, 0xc5, 0x08, 0xbc, 0xe8, 0xc7, 0x97, 0x21, 0xef, 0xcf, 0x2a, 0x7e, 0x6c, 0x26, 0x02, - 0x9b, 0x09, 0xfb, 0x3d, 0x90, 0x52, 0xe2, 0x22, 0x3d, 0xdb, 0xe7, 0xb8, 0x04, 0xd2, 0xc8, 0xb1, - 0x3a, 0x9b, 0x2b, 0x30, 0x1d, 0x95, 0x34, 0x22, 0x38, 0xce, 0xf8, 0x39, 0x0a, 0x4b, 0xd3, 0x81, - 0x64, 0x41, 0x70, 0x9d, 0x96, 0x9f, 0xf9, 0x79, 0x98, 0x8a, 0x48, 0x1d, 0x11, 0xc4, 0x0f, 0xfa, - 0x89, 0x73, 0x4b, 0x33, 0x01, 0xe2, 0xc0, 0xbb, 0x82, 0xbf, 0xb5, 0xfa, 0xe1, 0x14, 0x14, 0x58, - 0x8a, 0xda, 0xb6, 0xeb, 0xc8, 0x46, 0x75, 0xe9, 0xff, 0xf7, 0xef, 0xb0, 0x96, 0xa2, 0x52, 0x1b, - 0xc3, 0x1d, 0xa3, 0xd1, 0x7a, 0xbe, 0x6f, 0xa3, 0xf5, 0xd0, 0x30, 0x13, 0xc4, 0xf5, 0x5b, 0xd5, - 0x9e, 0x7e, 0xeb, 0xde, 0x41, 0xb4, 0xfd, 0xda, 0xae, 0x6a, 0x4f, 0xdb, 0x15, 0x47, 0x13, 0xd9, - 0x7d, 0x5d, 0xee, 0xed, 0xbe, 0xce, 0x0c, 0xe2, 0xe9, 0xdf, 0x84, 0x5d, 0xee, 0x6d, 0xc2, 0x62, - 0x99, 0xa2, 0x7b, 0xb1, 0xcb, 0xbd, 0xbd, 0xd8, 0x40, 0xa6, 0xfe, 0x2d, 0xd9, 0xe5, 0xde, 0x96, - 0x2c, 0x96, 0x29, 0xba, 0x33, 0x7b, 0x2a, 0xa2, 0x33, 0xbb, 0x6f, 0x10, 0xd5, 0xa0, 0x06, 0x6d, - 0x2b, 0xaa, 0x41, 0xbb, 0x7f, 0xa0, 0x61, 0x03, 0xfb, 0xb4, 0xa7, 0x22, 0xfa, 0xb4, 0x78, 0xe3, - 0xfa, 0xb4, 0x6b, 0x5b, 0x51, 0xed, 0xda, 0x10, 0xc6, 0xf5, 0xeb, 0xda, 0x96, 0xc3, 0x5d, 0xdb, - 0xfc, 0x20, 0xae, 0xe8, 0xe6, 0xed, 0x72, 0x6f, 0xf3, 0x76, 0x26, 0xfe, 0x2c, 0x46, 0xf5, 0x70, - 0xcf, 0xf7, 0xed, 0xe1, 0x86, 0x3a, 0xdc, 0x71, 0xad, 0xdc, 0x73, 0xfd, 0x5a, 0xb9, 0x07, 0x87, - 0x61, 0x1f, 0xdc, 0xd1, 0x3d, 0xd3, 0xa7, 0xa3, 0x5b, 0x1c, 0x86, 0xfa, 0xd3, 0xc6, 0xee, 0xd3, - 0xc6, 0xee, 0xd3, 0xc6, 0xee, 0xd3, 0xc6, 0xee, 0xff, 0x46, 0x63, 0x57, 0x4e, 0xbd, 0xfa, 0xa5, - 0x59, 0xe1, 0xcc, 0x29, 0x18, 0x63, 0x53, 0x4b, 0xa3, 0x90, 0xd8, 0xac, 0x88, 0x23, 0xe4, 0xef, - 0xb2, 0x28, 0x90, 0xbf, 0x2b, 0x62, 0x62, 0x79, 0xe3, 0xad, 0x9b, 0xa5, 0x91, 0xef, 0xde, 0x2c, - 0x8d, 0x7c, 0xff, 0x66, 0x69, 0xe4, 0x9d, 0x9b, 0x25, 0xe1, 0xbd, 0x9b, 0x25, 0xe1, 0x83, 0x9b, - 0x25, 0xe1, 0x27, 0x37, 0x4b, 0xc2, 0x8d, 0xa3, 0x92, 0xf0, 0x95, 0xa3, 0x92, 0xf0, 0xf5, 0xa3, - 0x92, 0xf0, 0xad, 0xa3, 0x92, 0xf0, 0xed, 0xa3, 0x92, 0xf0, 0xd6, 0x51, 0x69, 0xe4, 0xbb, 0x47, - 0xa5, 0x91, 0x77, 0x8e, 0x4a, 0xc2, 0x7b, 0x47, 0xa5, 0x91, 0x0f, 0x8e, 0x4a, 0xc2, 0x4f, 0x8e, - 0x4a, 0xc2, 0x8d, 0x1f, 0x95, 0x46, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0x39, 0x51, 0x04, 0x4e, - 0x5c, 0x45, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (x MapEnum) String() string { - s, ok := MapEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (this *FloatingPoint) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *FloatingPoint") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *FloatingPoint but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *FloatingPoint but is not nil && this == nil") - } - if this.F != nil && that1.F != nil { - if *this.F != *that1.F { - return fmt.Errorf("F this(%v) Not Equal that(%v)", *this.F, *that1.F) - } - } else if this.F != nil { - return fmt.Errorf("this.F == nil && that.F != nil") - } else if that1.F != nil { - return fmt.Errorf("F this(%v) Not Equal that(%v)", this.F, that1.F) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *FloatingPoint) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.F != nil && that1.F != nil { - if *this.F != *that1.F { - return false - } - } else if this.F != nil { - return false - } else if that1.F != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomMap) - if !ok { - that2, ok := that.(CustomMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") - } - if len(this.Nullable128S) != len(that1.Nullable128S) { - return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) - } - for i := range this.Nullable128S { - if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable - return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) - } - } - if len(this.Uint128S) != len(that1.Uint128S) { - return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) - } - for i := range this.Uint128S { - if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable - return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) - } - } - if len(this.NullableIds) != len(that1.NullableIds) { - return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) - } - for i := range this.NullableIds { - if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable - return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) - } - } - if len(this.Ids) != len(that1.Ids) { - return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) - } - for i := range this.Ids { - if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable - return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomMap) - if !ok { - that2, ok := that.(CustomMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Nullable128S) != len(that1.Nullable128S) { - return false - } - for i := range this.Nullable128S { - if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable - return false - } - } - if len(this.Uint128S) != len(that1.Uint128S) { - return false - } - for i := range this.Uint128S { - if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable - return false - } - } - if len(this.NullableIds) != len(that1.NullableIds) { - return false - } - for i := range this.NullableIds { - if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable - return false - } - } - if len(this.Ids) != len(that1.Ids) { - return false - } - for i := range this.Ids { - if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllMaps) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMaps") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMaps but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMaps but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AllMaps) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllMapsOrdered) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMapsOrdered") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMapsOrdered but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMapsOrdered but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AllMapsOrdered) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetF() *float64 -} - -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { - return NewFloatingPointFromFace(this) -} - -func (this *FloatingPoint) GetF() *float64 { - return this.F -} - -func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { - this := &FloatingPoint{} - this.F = that.GetF() - return this -} - -type CustomMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 - GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 - GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid - GetIds() map[string]github_com_gogo_protobuf_test.Uuid -} - -func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomMapFromFace(this) -} - -func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { - return this.Nullable128S -} - -func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { - return this.Uint128S -} - -func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { - return this.NullableIds -} - -func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { - return this.Ids -} - -func NewCustomMapFromFace(that CustomMapFace) *CustomMap { - this := &CustomMap{} - this.Nullable128S = that.GetNullable128S() - this.Uint128S = that.GetUint128S() - this.NullableIds = that.GetNullableIds() - this.Ids = that.GetIds() - return this -} - -type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsFromFace(this) -} - -func (this *AllMaps) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMaps) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMaps) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMaps) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMaps) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMaps) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMaps) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMaps) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMaps) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMaps) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMaps) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMaps) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMaps) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMaps) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMaps) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMaps) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMaps) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsFromFace(that AllMapsFace) *AllMaps { - this := &AllMaps{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsOrderedFromFace(this) -} - -func (this *AllMapsOrdered) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMapsOrdered) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMapsOrdered) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMapsOrdered) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMapsOrdered) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMapsOrdered) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMapsOrdered) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMapsOrdered) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMapsOrdered) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMapsOrdered) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMapsOrdered) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMapsOrdered) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMapsOrdered) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMapsOrdered) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMapsOrdered) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMapsOrdered) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMapsOrdered) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { - this := &AllMapsOrdered{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -func (this *FloatingPoint) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&proto2_maps.FloatingPoint{") - if this.F != nil { - s = append(s, "F: "+valueToGoStringMapsproto2(this.F, "float64")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&proto2_maps.CustomMap{") - keysForNullable128S := make([]string, 0, len(this.Nullable128S)) - for k := range this.Nullable128S { - keysForNullable128S = append(keysForNullable128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) - mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForNullable128S { - mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) - } - mapStringForNullable128S += "}" - if this.Nullable128S != nil { - s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") - } - keysForUint128S := make([]string, 0, len(this.Uint128S)) - for k := range this.Uint128S { - keysForUint128S = append(keysForUint128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) - mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForUint128S { - mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) - } - mapStringForUint128S += "}" - if this.Uint128S != nil { - s = append(s, "Uint128S: "+mapStringForUint128S+",\n") - } - keysForNullableIds := make([]string, 0, len(this.NullableIds)) - for k := range this.NullableIds { - keysForNullableIds = append(keysForNullableIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) - mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForNullableIds { - mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) - } - mapStringForNullableIds += "}" - if this.NullableIds != nil { - s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") - } - keysForIds := make([]string, 0, len(this.Ids)) - for k := range this.Ids { - keysForIds = append(keysForIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) - mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForIds { - mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) - } - mapStringForIds += "}" - if this.Ids != nil { - s = append(s, "Ids: "+mapStringForIds+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMaps) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&proto2_maps.AllMaps{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMapsOrdered) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&proto2_maps.AllMapsOrdered{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringMapsproto2(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { - this := &FloatingPoint{} - if r.Intn(10) != 0 { - v1 := float64(r.Float64()) - if r.Intn(2) == 0 { - v1 *= -1 - } - this.F = &v1 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 2) - } - return this -} - -func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { - this := &CustomMap{} - if r.Intn(10) != 0 { - v2 := r.Intn(10) - this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) - for i := 0; i < v2; i++ { - this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) - } - } - if r.Intn(10) != 0 { - v3 := r.Intn(10) - this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) - for i := 0; i < v3; i++ { - this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) - } - } - if r.Intn(10) != 0 { - v4 := r.Intn(10) - this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) - for i := 0; i < v4; i++ { - this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) - } - } - if r.Intn(10) != 0 { - v5 := r.Intn(10) - this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) - for i := 0; i < v5; i++ { - this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) - } - return this -} - -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} - if r.Intn(10) != 0 { - v6 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v6; i++ { - v7 := randStringMapsproto2(r) - this.StringToDoubleMap[v7] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v7] *= -1 - } - } - } - if r.Intn(10) != 0 { - v8 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v8; i++ { - v9 := randStringMapsproto2(r) - this.StringToFloatMap[v9] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v9] *= -1 - } - } - } - if r.Intn(10) != 0 { - v10 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v10; i++ { - v11 := int32(r.Int31()) - this.Int32Map[v11] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v11] *= -1 - } - } - } - if r.Intn(10) != 0 { - v12 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v12; i++ { - v13 := int64(r.Int63()) - this.Int64Map[v13] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v13] *= -1 - } - } - } - if r.Intn(10) != 0 { - v14 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v14; i++ { - v15 := uint32(r.Uint32()) - this.Uint32Map[v15] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v16 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v16; i++ { - v17 := uint64(uint64(r.Uint32())) - this.Uint64Map[v17] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v18 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v18; i++ { - v19 := int32(r.Int31()) - this.Sint32Map[v19] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v19] *= -1 - } - } - } - if r.Intn(10) != 0 { - v20 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v20; i++ { - v21 := int64(r.Int63()) - this.Sint64Map[v21] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v21] *= -1 - } - } - } - if r.Intn(10) != 0 { - v22 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v22; i++ { - v23 := uint32(r.Uint32()) - this.Fixed32Map[v23] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v24 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v24; i++ { - v25 := int32(r.Int31()) - this.Sfixed32Map[v25] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v25] *= -1 - } - } - } - if r.Intn(10) != 0 { - v26 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v26; i++ { - v27 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v28 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v28; i++ { - v29 := int64(r.Int63()) - this.Sfixed64Map[v29] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v29] *= -1 - } - } - } - if r.Intn(10) != 0 { - v30 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v30; i++ { - v31 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v32 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v32; i++ { - this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) - } - } - if r.Intn(10) != 0 { - v33 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v33; i++ { - v34 := r.Intn(100) - v35 := randStringMapsproto2(r) - this.StringToBytesMap[v35] = make([]byte, v34) - for i := 0; i < v34; i++ { - this.StringToBytesMap[v35][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v36; i++ { - this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v37 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v37; i++ { - this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 18) - } - return this -} - -func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { - this := &AllMapsOrdered{} - if r.Intn(10) != 0 { - v38 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v38; i++ { - v39 := randStringMapsproto2(r) - this.StringToDoubleMap[v39] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v39] *= -1 - } - } - } - if r.Intn(10) != 0 { - v40 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v40; i++ { - v41 := randStringMapsproto2(r) - this.StringToFloatMap[v41] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v41] *= -1 - } - } - } - if r.Intn(10) != 0 { - v42 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v42; i++ { - v43 := int32(r.Int31()) - this.Int32Map[v43] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v43] *= -1 - } - } - } - if r.Intn(10) != 0 { - v44 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v44; i++ { - v45 := int64(r.Int63()) - this.Int64Map[v45] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v45] *= -1 - } - } - } - if r.Intn(10) != 0 { - v46 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v46; i++ { - v47 := uint32(r.Uint32()) - this.Uint32Map[v47] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v48 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v48; i++ { - v49 := uint64(uint64(r.Uint32())) - this.Uint64Map[v49] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v50 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v50; i++ { - v51 := int32(r.Int31()) - this.Sint32Map[v51] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v51] *= -1 - } - } - } - if r.Intn(10) != 0 { - v52 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v52; i++ { - v53 := int64(r.Int63()) - this.Sint64Map[v53] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v53] *= -1 - } - } - } - if r.Intn(10) != 0 { - v54 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v54; i++ { - v55 := uint32(r.Uint32()) - this.Fixed32Map[v55] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v56 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v56; i++ { - v57 := int32(r.Int31()) - this.Sfixed32Map[v57] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v57] *= -1 - } - } - } - if r.Intn(10) != 0 { - v58 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v58; i++ { - v59 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v60 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v60; i++ { - v61 := int64(r.Int63()) - this.Sfixed64Map[v61] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v61] *= -1 - } - } - } - if r.Intn(10) != 0 { - v62 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v62; i++ { - v63 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v64 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v64; i++ { - this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) - } - } - if r.Intn(10) != 0 { - v65 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v65; i++ { - v66 := r.Intn(100) - v67 := randStringMapsproto2(r) - this.StringToBytesMap[v67] = make([]byte, v66) - for i := 0; i < v66; i++ { - this.StringToBytesMap[v67][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v68 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v68; i++ { - this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v69 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v69; i++ { - this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 18) - } - return this -} - -type randyMapsproto2 interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneMapsproto2(r randyMapsproto2) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringMapsproto2(r randyMapsproto2) string { - v70 := r.Intn(100) - tmps := make([]rune, v70) - for i := 0; i < v70; i++ { - tmps[i] = randUTF8RuneMapsproto2(r) - } - return string(tmps) -} -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - v71 := r.Int63() - if r.Intn(2) == 0 { - v71 *= -1 - } - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) - case 1: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *FloatingPoint) Size() (n int) { - var l int - _ = l - if m.F != nil { - n += 9 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomMap) Size() (n int) { - var l int - _ = l - if len(m.Nullable128S) > 0 { - for k, v := range m.Nullable128S { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint128S) > 0 { - for k, v := range m.Uint128S { - _ = k - _ = v - l = 0 - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.NullableIds) > 0 { - for k, v := range m.NullableIds { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Ids) > 0 { - for k, v := range m.Ids { - _ = k - _ = v - l = 0 - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllMaps) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if v != nil { - l = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllMapsOrdered) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if v != nil { - l = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovMapsproto2(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozMapsproto2(x uint64) (n int) { - return sovMapsproto2(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *FloatingPoint) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&FloatingPoint{`, - `F:` + valueToStringMapsproto2(this.F) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomMap) String() string { - if this == nil { - return "nil" - } - keysForNullable128S := make([]string, 0, len(this.Nullable128S)) - for k := range this.Nullable128S { - keysForNullable128S = append(keysForNullable128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) - mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForNullable128S { - mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) - } - mapStringForNullable128S += "}" - keysForUint128S := make([]string, 0, len(this.Uint128S)) - for k := range this.Uint128S { - keysForUint128S = append(keysForUint128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) - mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForUint128S { - mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) - } - mapStringForUint128S += "}" - keysForNullableIds := make([]string, 0, len(this.NullableIds)) - for k := range this.NullableIds { - keysForNullableIds = append(keysForNullableIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) - mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForNullableIds { - mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) - } - mapStringForNullableIds += "}" - keysForIds := make([]string, 0, len(this.Ids)) - for k := range this.Ids { - keysForIds = append(keysForIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) - mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForIds { - mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) - } - mapStringForIds += "}" - s := strings.Join([]string{`&CustomMap{`, - `Nullable128S:` + mapStringForNullable128S + `,`, - `Uint128S:` + mapStringForUint128S + `,`, - `NullableIds:` + mapStringForNullableIds + `,`, - `Ids:` + mapStringForIds + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllMaps) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMaps{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllMapsOrdered) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMapsOrdered{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringMapsproto2(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *FloatingPoint) 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 *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.F != nil { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = *m.F - i += 8 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomMap) 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 *CustomMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Nullable128S) > 0 { - for k := range m.Nullable128S { - dAtA[i] = 0xa - i++ - v := m.Nullable128S[k] - cSize := 0 - if v != nil { - cSize = v.Size() - cSize += 1 + sovMapsproto2(uint64(cSize)) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n1, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - } - } - if len(m.Uint128S) > 0 { - for k := range m.Uint128S { - dAtA[i] = 0x12 - i++ - v := m.Uint128S[k] - cSize := 0 - cSize = v.Size() - cSize += 1 + sovMapsproto2(uint64(cSize)) - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n2, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - } - if len(m.NullableIds) > 0 { - for k := range m.NullableIds { - dAtA[i] = 0x1a - i++ - v := m.NullableIds[k] - cSize := 0 - if v != nil { - cSize = v.Size() - cSize += 1 + sovMapsproto2(uint64(cSize)) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n3, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - } - } - } - if len(m.Ids) > 0 { - for k := range m.Ids { - dAtA[i] = 0x22 - i++ - v := m.Ids[k] - cSize := 0 - cSize = v.Size() - cSize += 1 + sovMapsproto2(uint64(cSize)) - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + cSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n4, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AllMaps) 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 *AllMaps) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k := range m.StringToDoubleMap { - dAtA[i] = 0xa - i++ - v := m.StringToDoubleMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - if len(m.StringToFloatMap) > 0 { - for k := range m.StringToFloatMap { - dAtA[i] = 0x12 - i++ - v := m.StringToFloatMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) - } - } - if len(m.Int32Map) > 0 { - for k := range m.Int32Map { - dAtA[i] = 0x1a - i++ - v := m.Int32Map[k] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Int64Map) > 0 { - for k := range m.Int64Map { - dAtA[i] = 0x22 - i++ - v := m.Int64Map[k] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Uint32Map) > 0 { - for k := range m.Uint32Map { - dAtA[i] = 0x2a - i++ - v := m.Uint32Map[k] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Uint64Map) > 0 { - for k := range m.Uint64Map { - dAtA[i] = 0x32 - i++ - v := m.Uint64Map[k] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Sint32Map) > 0 { - for k := range m.Sint32Map { - dAtA[i] = 0x3a - i++ - v := m.Sint32Map[k] - mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) - } - } - if len(m.Sint64Map) > 0 { - for k := range m.Sint64Map { - dAtA[i] = 0x42 - i++ - v := m.Sint64Map[k] - mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) - } - } - if len(m.Fixed32Map) > 0 { - for k := range m.Fixed32Map { - dAtA[i] = 0x4a - i++ - v := m.Fixed32Map[k] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) - } - } - if len(m.Sfixed32Map) > 0 { - for k := range m.Sfixed32Map { - dAtA[i] = 0x52 - i++ - v := m.Sfixed32Map[k] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) - } - } - if len(m.Fixed64Map) > 0 { - for k := range m.Fixed64Map { - dAtA[i] = 0x5a - i++ - v := m.Fixed64Map[k] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Sfixed64Map) > 0 { - for k := range m.Sfixed64Map { - dAtA[i] = 0x62 - i++ - v := m.Sfixed64Map[k] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.BoolMap) > 0 { - for k := range m.BoolMap { - dAtA[i] = 0x6a - i++ - v := m.BoolMap[k] - mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x10 - i++ - if v { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.StringMap) > 0 { - for k := range m.StringMap { - dAtA[i] = 0x72 - i++ - v := m.StringMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.StringToBytesMap) > 0 { - for k := range m.StringToBytesMap { - dAtA[i] = 0x7a - i++ - v := m.StringToBytesMap[k] - byteSize := 0 - if v != nil { - byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - if len(m.StringToEnumMap) > 0 { - for k := range m.StringToEnumMap { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToEnumMap[k] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.StringToMsgMap) > 0 { - for k := range m.StringToMsgMap { - dAtA[i] = 0x8a - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToMsgMap[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovMapsproto2(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n5, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AllMapsOrdered) 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 *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - keysForStringToDoubleMap := make([]string, 0, len(m.StringToDoubleMap)) - for k := range m.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - for _, k := range keysForStringToDoubleMap { - dAtA[i] = 0xa - i++ - v := m.StringToDoubleMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - if len(m.StringToFloatMap) > 0 { - keysForStringToFloatMap := make([]string, 0, len(m.StringToFloatMap)) - for k := range m.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - for _, k := range keysForStringToFloatMap { - dAtA[i] = 0x12 - i++ - v := m.StringToFloatMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(math.Float32bits(float32(v)))) - } - } - if len(m.Int32Map) > 0 { - keysForInt32Map := make([]int32, 0, len(m.Int32Map)) - for k := range m.Int32Map { - keysForInt32Map = append(keysForInt32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - for _, k := range keysForInt32Map { - dAtA[i] = 0x1a - i++ - v := m.Int32Map[int32(k)] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Int64Map) > 0 { - keysForInt64Map := make([]int64, 0, len(m.Int64Map)) - for k := range m.Int64Map { - keysForInt64Map = append(keysForInt64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - for _, k := range keysForInt64Map { - dAtA[i] = 0x22 - i++ - v := m.Int64Map[int64(k)] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Uint32Map) > 0 { - keysForUint32Map := make([]uint32, 0, len(m.Uint32Map)) - for k := range m.Uint32Map { - keysForUint32Map = append(keysForUint32Map, uint32(k)) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - for _, k := range keysForUint32Map { - dAtA[i] = 0x2a - i++ - v := m.Uint32Map[uint32(k)] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Uint64Map) > 0 { - keysForUint64Map := make([]uint64, 0, len(m.Uint64Map)) - for k := range m.Uint64Map { - keysForUint64Map = append(keysForUint64Map, uint64(k)) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - for _, k := range keysForUint64Map { - dAtA[i] = 0x32 - i++ - v := m.Uint64Map[uint64(k)] - mapSize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Sint32Map) > 0 { - keysForSint32Map := make([]int32, 0, len(m.Sint32Map)) - for k := range m.Sint32Map { - keysForSint32Map = append(keysForSint32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - for _, k := range keysForSint32Map { - dAtA[i] = 0x3a - i++ - v := m.Sint32Map[int32(k)] - mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) - } - } - if len(m.Sint64Map) > 0 { - keysForSint64Map := make([]int64, 0, len(m.Sint64Map)) - for k := range m.Sint64Map { - keysForSint64Map = append(keysForSint64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - for _, k := range keysForSint64Map { - dAtA[i] = 0x42 - i++ - v := m.Sint64Map[int64(k)] - mapSize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) - } - } - if len(m.Fixed32Map) > 0 { - keysForFixed32Map := make([]uint32, 0, len(m.Fixed32Map)) - for k := range m.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, uint32(k)) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - for _, k := range keysForFixed32Map { - dAtA[i] = 0x4a - i++ - v := m.Fixed32Map[uint32(k)] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) - } - } - if len(m.Sfixed32Map) > 0 { - keysForSfixed32Map := make([]int32, 0, len(m.Sfixed32Map)) - for k := range m.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - for _, k := range keysForSfixed32Map { - dAtA[i] = 0x52 - i++ - v := m.Sfixed32Map[int32(k)] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Mapsproto2(dAtA, i, uint32(v)) - } - } - if len(m.Fixed64Map) > 0 { - keysForFixed64Map := make([]uint64, 0, len(m.Fixed64Map)) - for k := range m.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, uint64(k)) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - for _, k := range keysForFixed64Map { - dAtA[i] = 0x5a - i++ - v := m.Fixed64Map[uint64(k)] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.Sfixed64Map) > 0 { - keysForSfixed64Map := make([]int64, 0, len(m.Sfixed64Map)) - for k := range m.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - for _, k := range keysForSfixed64Map { - dAtA[i] = 0x62 - i++ - v := m.Sfixed64Map[int64(k)] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Mapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.BoolMap) > 0 { - keysForBoolMap := make([]bool, 0, len(m.BoolMap)) - for k := range m.BoolMap { - keysForBoolMap = append(keysForBoolMap, bool(k)) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - for _, k := range keysForBoolMap { - dAtA[i] = 0x6a - i++ - v := m.BoolMap[bool(k)] - mapSize := 1 + 1 + 1 + 1 - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x10 - i++ - if v { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.StringMap) > 0 { - keysForStringMap := make([]string, 0, len(m.StringMap)) - for k := range m.StringMap { - keysForStringMap = append(keysForStringMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - for _, k := range keysForStringMap { - dAtA[i] = 0x72 - i++ - v := m.StringMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.StringToBytesMap) > 0 { - keysForStringToBytesMap := make([]string, 0, len(m.StringToBytesMap)) - for k := range m.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - for _, k := range keysForStringToBytesMap { - dAtA[i] = 0x7a - i++ - v := m.StringToBytesMap[string(k)] - byteSize := 0 - if v != nil { - byteSize = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + byteSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - if len(m.StringToEnumMap) > 0 { - keysForStringToEnumMap := make([]string, 0, len(m.StringToEnumMap)) - for k := range m.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - for _, k := range keysForStringToEnumMap { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToEnumMap[string(k)] - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v)) - } - } - if len(m.StringToMsgMap) > 0 { - keysForStringToMsgMap := make([]string, 0, len(m.StringToMsgMap)) - for k := range m.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - for _, k := range keysForStringToMsgMap { - dAtA[i] = 0x8a - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToMsgMap[string(k)] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovMapsproto2(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + msgSize - i = encodeVarintMapsproto2(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintMapsproto2(dAtA, i, uint64(v.Size())) - n6, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 - } - } - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func encodeFixed64Mapsproto2(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 encodeFixed32Mapsproto2(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 encodeVarintMapsproto2(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 init() { proto.RegisterFile("combos/unsafemarshaler/mapsproto2.proto", fileDescriptorMapsproto2) } - -var fileDescriptorMapsproto2 = []byte{ - // 1154 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcd, 0x8f, 0xda, 0x46, - 0x18, 0xc6, 0x19, 0x3e, 0x16, 0x18, 0xbe, 0x27, 0x69, 0x85, 0x90, 0x6a, 0x36, 0xf4, 0x23, 0x84, - 0xa4, 0xb0, 0x4b, 0xa3, 0x68, 0xb5, 0x69, 0x53, 0x2d, 0xbb, 0x9b, 0xb2, 0x4a, 0xd9, 0x46, 0xd0, - 0xf4, 0x4b, 0x5a, 0xa9, 0x66, 0x31, 0x04, 0x15, 0x30, 0xc5, 0x76, 0xd4, 0xbd, 0x54, 0xf9, 0x33, - 0x7a, 0xed, 0xad, 0xc7, 0x1e, 0x7b, 0xec, 0x71, 0xa5, 0x5e, 0x72, 0x8c, 0xa2, 0x6a, 0x15, 0xdc, - 0x4b, 0x8e, 0x39, 0xe6, 0x58, 0x79, 0x6c, 0xc3, 0xd8, 0x7e, 0x6d, 0x43, 0x4f, 0x3d, 0xec, 0x89, - 0x1d, 0xf3, 0x3e, 0xbf, 0xe7, 0xb5, 0x3d, 0xf3, 0xf2, 0x2c, 0xbe, 0x7e, 0x2a, 0x8e, 0xbb, 0xa2, - 0x54, 0x53, 0x26, 0x12, 0xdf, 0x17, 0xc6, 0xfc, 0x4c, 0x7a, 0xcc, 0x8f, 0x84, 0x59, 0x6d, 0xcc, - 0x4f, 0xa5, 0xe9, 0x4c, 0x94, 0xc5, 0x7a, 0x95, 0x7e, 0x90, 0x84, 0xb1, 0xd2, 0xbe, 0x28, 0x7c, - 0x38, 0x18, 0xca, 0x8f, 0x95, 0x6e, 0xf5, 0x54, 0x1c, 0xd7, 0x06, 0xe2, 0x40, 0xac, 0xd1, 0x2f, - 0xbb, 0x4a, 0x9f, 0xae, 0xe8, 0x82, 0xfe, 0xa5, 0x6b, 0x4b, 0xef, 0xe0, 0xd4, 0xfd, 0x91, 0xc8, - 0xcb, 0xc3, 0xc9, 0xe0, 0xa1, 0x38, 0x9c, 0xc8, 0x24, 0x89, 0x51, 0x3f, 0x8f, 0x36, 0x51, 0x19, - 0xb5, 0x51, 0xbf, 0xf4, 0x57, 0x04, 0xc7, 0xf7, 0x15, 0x49, 0x16, 0xc7, 0x2d, 0x7e, 0x4a, 0x7e, - 0xc6, 0xc9, 0x63, 0x65, 0x34, 0xe2, 0xbb, 0x23, 0x61, 0xbb, 0xbe, 0x23, 0xe5, 0xd1, 0x66, 0xa8, - 0x9c, 0xa8, 0x97, 0xab, 0x8c, 0x7f, 0x75, 0x51, 0x5d, 0x65, 0x4b, 0x0f, 0x27, 0xf2, 0xec, 0xac, - 0xb1, 0xf5, 0xe2, 0xa2, 0x78, 0xcb, 0xb5, 0x3f, 0x59, 0x90, 0xe4, 0xda, 0x29, 0x95, 0x57, 0x1f, - 0x0d, 0x27, 0xf2, 0x76, 0x7d, 0xa7, 0x6d, 0xf1, 0x23, 0x4f, 0x70, 0xcc, 0xf8, 0x42, 0xca, 0x07, - 0xa9, 0xf7, 0x7b, 0x2e, 0xde, 0x66, 0x99, 0xee, 0x7b, 0xfb, 0xfc, 0xa2, 0x18, 0x58, 0xdb, 0x7b, - 0xe1, 0x45, 0x7e, 0xc4, 0x09, 0xb3, 0x8f, 0xa3, 0x9e, 0x94, 0x0f, 0x51, 0xeb, 0xeb, 0x3e, 0xb7, - 0x7d, 0xd4, 0x33, 0xdc, 0x3f, 0x78, 0x71, 0x51, 0x2c, 0x79, 0x3a, 0x57, 0x1f, 0x29, 0xc3, 0x5e, - 0x9b, 0xf5, 0x20, 0x27, 0x38, 0xa4, 0x59, 0x85, 0xa9, 0x55, 0xd1, 0xc5, 0x6a, 0x61, 0x51, 0x31, - 0x6e, 0x70, 0x15, 0x1b, 0x8d, 0x5b, 0xf8, 0x14, 0xe7, 0x1c, 0xaf, 0x87, 0x64, 0x71, 0xe8, 0x07, - 0xe1, 0x8c, 0xbe, 0xfc, 0x78, 0x5b, 0xfb, 0x93, 0x5c, 0xc5, 0x91, 0x27, 0xfc, 0x48, 0x11, 0xf2, - 0xc1, 0x4d, 0x54, 0x4e, 0xb6, 0xf5, 0xc5, 0x6e, 0x70, 0x07, 0x15, 0xee, 0xe2, 0x94, 0xe5, 0x19, - 0xaf, 0x25, 0xbe, 0x87, 0xb3, 0xf6, 0xa7, 0xb4, 0x96, 0xfe, 0x0e, 0x8e, 0xfd, 0x17, 0x5d, 0xe9, - 0x39, 0xc1, 0xd1, 0xbd, 0xd1, 0xa8, 0xc5, 0x4f, 0x25, 0xf2, 0x2d, 0xce, 0x75, 0xe4, 0xd9, 0x70, - 0x32, 0xf8, 0x52, 0x3c, 0x10, 0x95, 0xee, 0x48, 0x68, 0xf1, 0x53, 0x63, 0x43, 0xdf, 0xb4, 0x3c, - 0x6e, 0x43, 0x50, 0x75, 0x54, 0x53, 0xff, 0xb6, 0x93, 0x42, 0xbe, 0xc2, 0x59, 0xf3, 0x22, 0x3d, - 0x5b, 0x1a, 0x59, 0xdf, 0xae, 0x15, 0x4f, 0xb2, 0x59, 0xac, 0x83, 0x1d, 0x0c, 0x72, 0x0f, 0xc7, - 0x8e, 0x26, 0xf2, 0x47, 0x75, 0x8d, 0xa7, 0xef, 0xc1, 0x12, 0xc8, 0x33, 0x8b, 0x74, 0xce, 0x42, - 0x63, 0xe8, 0xef, 0xdc, 0xd6, 0xf4, 0x61, 0x6f, 0x3d, 0x2d, 0x5a, 0xea, 0xe9, 0x92, 0xec, 0xe1, - 0xb8, 0xf6, 0xce, 0xf5, 0x06, 0x22, 0x14, 0xf0, 0x2e, 0x08, 0x58, 0x54, 0xe9, 0x84, 0xa5, 0xca, - 0x44, 0xe8, 0x3d, 0x6c, 0xf8, 0x20, 0x98, 0x26, 0x96, 0x2a, 0x0d, 0xd1, 0x59, 0x74, 0x11, 0xf5, - 0x40, 0x74, 0x6c, 0x5d, 0x74, 0xd8, 0x2e, 0x3a, 0x8b, 0x2e, 0x62, 0x3e, 0x08, 0xb6, 0x8b, 0xc5, - 0x9a, 0x1c, 0x60, 0x7c, 0x7f, 0xf8, 0x93, 0xd0, 0xd3, 0xdb, 0x88, 0x03, 0xc3, 0xc8, 0x64, 0x2c, - 0xcb, 0x74, 0x08, 0xa3, 0x23, 0x9f, 0xe1, 0x44, 0xa7, 0xbf, 0xc4, 0x60, 0x8a, 0x79, 0x1f, 0x6e, - 0xa5, 0x6f, 0xe3, 0xb0, 0xca, 0x45, 0x3b, 0xfa, 0x2d, 0x25, 0xfc, 0xda, 0x61, 0xee, 0x89, 0xd1, - 0x2d, 0xdb, 0xd1, 0x31, 0x49, 0xdf, 0x76, 0x18, 0x0e, 0xab, 0x24, 0x77, 0x71, 0xb4, 0x21, 0x8a, - 0x5a, 0x65, 0x3e, 0x45, 0x21, 0xd7, 0x40, 0x88, 0x51, 0xa3, 0x03, 0x4c, 0x05, 0x7d, 0x3b, 0x74, - 0xeb, 0x6b, 0xf2, 0xb4, 0xd7, 0xdb, 0x31, 0xab, 0xcc, 0xb7, 0x63, 0xae, 0xd9, 0x13, 0xd8, 0x38, - 0x93, 0x05, 0x49, 0x23, 0x65, 0x56, 0x38, 0x81, 0x66, 0xb1, 0xed, 0x04, 0x9a, 0x97, 0x49, 0x07, - 0x67, 0xcc, 0x6b, 0x87, 0x13, 0x45, 0x9b, 0xc1, 0xf9, 0x2c, 0xc5, 0xde, 0xf0, 0xc4, 0x1a, 0xb5, - 0x3a, 0xd5, 0x4e, 0x20, 0x0f, 0x71, 0xda, 0xbc, 0xd4, 0x92, 0xe8, 0x4d, 0xe7, 0x80, 0xdf, 0x55, - 0x3b, 0x53, 0x2f, 0xd5, 0x91, 0x36, 0x7d, 0xe1, 0x00, 0xbf, 0x0d, 0x4f, 0x2b, 0xbf, 0x69, 0x89, - 0xd8, 0x29, 0xbb, 0x8f, 0xdf, 0x02, 0x27, 0x93, 0x1f, 0x24, 0x68, 0xfb, 0x9d, 0xb0, 0x8c, 0x23, - 0x56, 0x1c, 0x01, 0xc4, 0x11, 0xa7, 0x78, 0xb9, 0xc9, 0x58, 0x71, 0x08, 0x10, 0x87, 0x58, 0xf1, - 0xc7, 0x38, 0x6d, 0x9d, 0x43, 0xac, 0x3a, 0x05, 0xa8, 0x53, 0x80, 0x1a, 0xf6, 0x0e, 0x03, 0xea, - 0xb0, 0x4d, 0xdd, 0x71, 0xf5, 0xce, 0x01, 0xea, 0x1c, 0xa0, 0x86, 0xbd, 0x09, 0xa0, 0x26, 0xac, - 0xfa, 0x13, 0x9c, 0xb1, 0x8d, 0x1c, 0x56, 0x1e, 0x05, 0xe4, 0x51, 0xdb, 0x6f, 0xb3, 0x7d, 0xd4, - 0xb0, 0xfa, 0x0c, 0xa0, 0xcf, 0x40, 0xf6, 0x70, 0xf7, 0x1b, 0x80, 0x7c, 0x03, 0xb4, 0x87, 0xf5, - 0x59, 0x40, 0x9f, 0x65, 0xf5, 0xbb, 0x38, 0xc9, 0x4e, 0x15, 0x56, 0x1b, 0x03, 0xb4, 0x31, 0xfb, - 0x73, 0xb7, 0x8c, 0x14, 0xbf, 0x9d, 0x1e, 0x77, 0x39, 0x2e, 0x96, 0x31, 0xb2, 0x56, 0xb2, 0xf9, - 0x06, 0x5f, 0x85, 0x86, 0x06, 0xc0, 0xa8, 0xb0, 0x8c, 0x74, 0xfd, 0xaa, 0x65, 0x58, 0x50, 0x9d, - 0x32, 0x66, 0xc9, 0x27, 0xf8, 0x0a, 0x30, 0x3a, 0x00, 0xf0, 0x16, 0x0b, 0x4e, 0xd4, 0x0b, 0x16, - 0xb0, 0xe5, 0x7f, 0x05, 0x36, 0x5a, 0xfd, 0x7d, 0x05, 0xa7, 0x8d, 0x11, 0xf5, 0xc5, 0xac, 0x27, - 0xcc, 0x84, 0x1e, 0xf9, 0xde, 0x3d, 0x61, 0xd5, 0xa1, 0xd1, 0x66, 0xe8, 0xd6, 0x08, 0x5a, 0x27, - 0xae, 0x41, 0x6b, 0x7b, 0x15, 0x03, 0xbf, 0xbc, 0x75, 0xe8, 0xc8, 0x5b, 0x37, 0xbc, 0xb0, 0x6e, - 0xb1, 0xeb, 0xd0, 0x11, 0xbb, 0xfc, 0x30, 0x60, 0xfa, 0x6a, 0x3a, 0xd3, 0x57, 0xc5, 0x8b, 0xe3, - 0x1e, 0xc2, 0x9a, 0xce, 0x10, 0xe6, 0x4b, 0x82, 0xb3, 0x58, 0xd3, 0x99, 0xc5, 0x3c, 0x49, 0xee, - 0x91, 0xac, 0xe9, 0x8c, 0x64, 0xbe, 0x24, 0x38, 0x99, 0x3d, 0x00, 0x92, 0xd9, 0x4d, 0x2f, 0x94, - 0x57, 0x40, 0x3b, 0x86, 0x02, 0xda, 0x2d, 0xcf, 0xc6, 0x3c, 0x73, 0xda, 0x03, 0x20, 0xa7, 0xf9, - 0x37, 0xe7, 0x12, 0xd7, 0x8e, 0xa1, 0xb8, 0xb6, 0x42, 0x73, 0x6e, 0xa9, 0xad, 0x61, 0x4f, 0x6d, - 0x65, 0x2f, 0x16, 0x1c, 0xde, 0x9a, 0xce, 0xf0, 0x56, 0xf1, 0x3f, 0x8b, 0x50, 0x86, 0x3b, 0x71, - 0xcd, 0x70, 0x2b, 0x1d, 0x6e, 0xbf, 0x28, 0xf7, 0x9d, 0x5b, 0x94, 0xdb, 0x5a, 0x85, 0xee, 0x9d, - 0xe8, 0xbe, 0x76, 0x49, 0x74, 0xb5, 0x55, 0xd0, 0x97, 0xc1, 0xee, 0x32, 0xd8, 0x5d, 0x06, 0xbb, - 0xcb, 0x60, 0xf7, 0xff, 0x08, 0x76, 0xbb, 0xe1, 0x5f, 0x7e, 0x2d, 0xa2, 0xca, 0x35, 0x1c, 0x35, - 0xac, 0xc9, 0x06, 0x0e, 0xb6, 0xf6, 0xb2, 0x01, 0xfa, 0xd9, 0xc8, 0x22, 0xfa, 0xb9, 0x9f, 0x0d, - 0x36, 0x3e, 0x3f, 0x9f, 0x73, 0x81, 0x67, 0x73, 0x2e, 0xf0, 0x7c, 0xce, 0x05, 0x5e, 0xce, 0x39, - 0xf4, 0x6a, 0xce, 0xa1, 0xd7, 0x73, 0x0e, 0xbd, 0x99, 0x73, 0xe8, 0xa9, 0xca, 0xa1, 0xdf, 0x54, - 0x0e, 0xfd, 0xae, 0x72, 0xe8, 0x0f, 0x95, 0x43, 0x7f, 0xaa, 0x1c, 0x3a, 0x57, 0xb9, 0xc0, 0x33, - 0x95, 0x0b, 0xbc, 0x54, 0x39, 0xf4, 0x4a, 0xe5, 0x02, 0xaf, 0x55, 0x0e, 0xbd, 0x51, 0x39, 0xf4, - 0xf4, 0x1f, 0x2e, 0xf0, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x93, 0x38, 0xa7, 0x8f, 0xfd, 0x16, - 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.proto deleted file mode 100644 index 1bb8ef5eb..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2.proto +++ /dev/null @@ -1,124 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; - -package proto2.maps; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = false; - -message FloatingPoint { - optional double f = 1; -} - -message CustomMap { - map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; - map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; - map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; - map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; -} - -enum MapEnum { - MA = 0; - MB = 1; - MC = 2; -} - -message AllMaps { - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} - -message AllMapsOrdered { - option (gogoproto.stable_marshaler) = true; - - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2_test.go deleted file mode 100644 index 488bc86bf..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2_test.go +++ /dev/null @@ -1,104 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2015, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package proto2_maps - -import ( - "testing" - - "github.com/gogo/protobuf/proto" -) - -func TestNilMaps(t *testing.T) { - m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToMsgMap["a"]; !ok { - t.Error("element not in map") - } else if v != nil { - t.Errorf("element should be nil, but its %v", v) - } -} - -func TestNilMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["a"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} - -func TestEmptyMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["b"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2pb_test.go deleted file mode 100644 index b59669eb1..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafemarshaler/mapsproto2pb_test.go +++ /dev/null @@ -1,1040 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/mapsproto2.proto -// DO NOT EDIT! - -/* -Package proto2_maps is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/mapsproto2.proto - -It has these top-level messages: - FloatingPoint - CustomMap - AllMaps - AllMapsOrdered -*/ -package proto2_maps - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestFloatingPointProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestFloatingPointMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &FloatingPoint{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkCustomMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllMapsMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMaps{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllMapsOrderedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMapsOrdered{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsOrderedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestFloatingPointProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestFloatingPointProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapsproto2Description(t *testing.T) { - Mapsproto2Description() -} -func TestFloatingPointVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsOrderedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestFloatingPointSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.pb.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.pb.go deleted file mode 100644 index 65d09fb74..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.pb.go +++ /dev/null @@ -1,7810 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/mapsproto2.proto -// DO NOT EDIT! - -/* - Package proto2_maps is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeunmarshaler/mapsproto2.proto - - It has these top-level messages: - FloatingPoint - CustomMap - AllMaps - AllMapsOrdered -*/ -package proto2_maps - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_test "github.com/gogo/protobuf/test" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strconv "strconv" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -import io "io" -import unsafe "unsafe" - -// 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 - -type MapEnum int32 - -const ( - MA MapEnum = 0 - MB MapEnum = 1 - MC MapEnum = 2 -) - -var MapEnum_name = map[int32]string{ - 0: "MA", - 1: "MB", - 2: "MC", -} -var MapEnum_value = map[string]int32{ - "MA": 0, - "MB": 1, - "MC": 2, -} - -func (x MapEnum) Enum() *MapEnum { - p := new(MapEnum) - *p = x - return p -} -func (x MapEnum) MarshalJSON() ([]byte, error) { - return proto.MarshalJSONEnum(MapEnum_name, int32(x)) -} -func (x *MapEnum) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(MapEnum_value, data, "MapEnum") - if err != nil { - return err - } - *x = MapEnum(value) - return nil -} -func (MapEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } - -type FloatingPoint struct { - F *float64 `protobuf:"fixed64,1,opt,name=f" json:"f,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } -func (*FloatingPoint) ProtoMessage() {} -func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{0} } - -type CustomMap struct { - Nullable128S map[string]*github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,rep,name=Nullable128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Nullable128s,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Uint128S map[string]github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,rep,name=Uint128s,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"Uint128s" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - NullableIds map[string]*github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,3,rep,name=NullableIds,customtype=github.com/gogo/protobuf/test.Uuid" json:"NullableIds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Ids map[string]github_com_gogo_protobuf_test.Uuid `protobuf:"bytes,4,rep,name=Ids,customtype=github.com/gogo/protobuf/test.Uuid" json:"Ids" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomMap) Reset() { *m = CustomMap{} } -func (*CustomMap) ProtoMessage() {} -func (*CustomMap) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{1} } - -type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AllMaps) Reset() { *m = AllMaps{} } -func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{2} } - -type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=proto2.maps.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } -func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorMapsproto2, []int{3} } - -func init() { - proto.RegisterType((*FloatingPoint)(nil), "proto2.maps.FloatingPoint") - proto.RegisterType((*CustomMap)(nil), "proto2.maps.CustomMap") - proto.RegisterType((*AllMaps)(nil), "proto2.maps.AllMaps") - proto.RegisterType((*AllMapsOrdered)(nil), "proto2.maps.AllMapsOrdered") - proto.RegisterEnum("proto2.maps.MapEnum", MapEnum_name, MapEnum_value) -} -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func (this *CustomMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Mapsproto2Description() -} -func Mapsproto2Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 4580 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7a, 0x6b, 0x6c, 0x23, 0xd7, - 0x75, 0xbf, 0x86, 0x0f, 0x89, 0x3c, 0xa4, 0xa8, 0xd1, 0x95, 0xbc, 0xa6, 0xe5, 0x58, 0xbb, 0x2b, - 0xbf, 0xe4, 0xb5, 0x2d, 0xd9, 0xf2, 0xee, 0x7a, 0xcd, 0x8d, 0x6d, 0x50, 0x12, 0x57, 0x2b, 0x5b, - 0xaf, 0x0c, 0x25, 0x7b, 0xed, 0x3f, 0x8c, 0xf9, 0x8f, 0x86, 0x97, 0xd4, 0x78, 0xc9, 0x19, 0x7a, - 0x66, 0xb8, 0xb6, 0xfc, 0xa1, 0xd8, 0xc2, 0x7d, 0x20, 0x28, 0xfa, 0x2e, 0x50, 0xc7, 0x75, 0xdc, - 0x26, 0x40, 0xeb, 0x34, 0xe9, 0x23, 0xe9, 0x23, 0x0d, 0xfa, 0x29, 0x5f, 0xd2, 0x1a, 0x28, 0x50, - 0x24, 0xdf, 0x82, 0x20, 0x30, 0xbc, 0x8a, 0x81, 0xba, 0xad, 0xdb, 0xba, 0x8d, 0x81, 0x06, 0xf0, - 0x87, 0x16, 0xf7, 0x35, 0x9c, 0x19, 0x0e, 0x39, 0x94, 0x01, 0x27, 0xfd, 0xe0, 0x4f, 0xd2, 0x9c, - 0x7b, 0x7e, 0xbf, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, 0x73, 0xe6, 0x72, 0xe0, 0x47, 0xe7, 0xe0, 0x54, - 0xc3, 0xb2, 0x1a, 0x4d, 0xbc, 0xd8, 0xb6, 0x2d, 0xd7, 0xda, 0xef, 0xd4, 0x17, 0x6b, 0xd8, 0xd1, - 0x6d, 0xa3, 0xed, 0x5a, 0xf6, 0x02, 0x95, 0xa1, 0x09, 0xa6, 0xb1, 0x20, 0x34, 0xe6, 0x36, 0x61, - 0xf2, 0x92, 0xd1, 0xc4, 0xab, 0x9e, 0x62, 0x15, 0xbb, 0xe8, 0x02, 0xa4, 0xea, 0x46, 0x13, 0x17, - 0xa5, 0x53, 0xc9, 0xf9, 0xdc, 0xd2, 0x1d, 0x0b, 0x21, 0xd0, 0x42, 0x10, 0xb1, 0x43, 0xc4, 0x0a, - 0x45, 0xcc, 0xbd, 0x9b, 0x82, 0xa9, 0x88, 0x51, 0x84, 0x20, 0x65, 0x6a, 0x2d, 0xc2, 0x28, 0xcd, - 0x67, 0x15, 0xfa, 0x3f, 0x2a, 0xc2, 0x58, 0x5b, 0xd3, 0xaf, 0x6a, 0x0d, 0x5c, 0x4c, 0x50, 0xb1, - 0x78, 0x44, 0xb3, 0x00, 0x35, 0xdc, 0xc6, 0x66, 0x0d, 0x9b, 0xfa, 0x61, 0x31, 0x79, 0x2a, 0x39, - 0x9f, 0x55, 0x7c, 0x12, 0x74, 0x2f, 0x4c, 0xb6, 0x3b, 0xfb, 0x4d, 0x43, 0x57, 0x7d, 0x6a, 0x70, - 0x2a, 0x39, 0x9f, 0x56, 0x64, 0x36, 0xb0, 0xda, 0x55, 0xbe, 0x1b, 0x26, 0x5e, 0xc4, 0xda, 0x55, - 0xbf, 0x6a, 0x8e, 0xaa, 0x16, 0x88, 0xd8, 0xa7, 0xb8, 0x02, 0xf9, 0x16, 0x76, 0x1c, 0xad, 0x81, - 0x55, 0xf7, 0xb0, 0x8d, 0x8b, 0x29, 0xba, 0xfa, 0x53, 0x3d, 0xab, 0x0f, 0xaf, 0x3c, 0xc7, 0x51, - 0xbb, 0x87, 0x6d, 0x8c, 0xca, 0x90, 0xc5, 0x66, 0xa7, 0xc5, 0x18, 0xd2, 0x7d, 0xfc, 0x57, 0x31, - 0x3b, 0xad, 0x30, 0x4b, 0x86, 0xc0, 0x38, 0xc5, 0x98, 0x83, 0xed, 0x6b, 0x86, 0x8e, 0x8b, 0xa3, - 0x94, 0xe0, 0xee, 0x1e, 0x82, 0x2a, 0x1b, 0x0f, 0x73, 0x08, 0x1c, 0x5a, 0x81, 0x2c, 0x7e, 0xc9, - 0xc5, 0xa6, 0x63, 0x58, 0x66, 0x71, 0x8c, 0x92, 0xdc, 0x19, 0xb1, 0x8b, 0xb8, 0x59, 0x0b, 0x53, - 0x74, 0x71, 0xe8, 0x3c, 0x8c, 0x59, 0x6d, 0xd7, 0xb0, 0x4c, 0xa7, 0x98, 0x39, 0x25, 0xcd, 0xe7, - 0x96, 0x3e, 0x13, 0x19, 0x08, 0xdb, 0x4c, 0x47, 0x11, 0xca, 0x68, 0x1d, 0x64, 0xc7, 0xea, 0xd8, - 0x3a, 0x56, 0x75, 0xab, 0x86, 0x55, 0xc3, 0xac, 0x5b, 0xc5, 0x2c, 0x25, 0x38, 0xd9, 0xbb, 0x10, - 0xaa, 0xb8, 0x62, 0xd5, 0xf0, 0xba, 0x59, 0xb7, 0x94, 0x82, 0x13, 0x78, 0x46, 0x27, 0x60, 0xd4, - 0x39, 0x34, 0x5d, 0xed, 0xa5, 0x62, 0x9e, 0x46, 0x08, 0x7f, 0x9a, 0xfb, 0xef, 0x34, 0x4c, 0x0c, - 0x13, 0x62, 0x17, 0x21, 0x5d, 0x27, 0xab, 0x2c, 0x26, 0x8e, 0xe3, 0x03, 0x86, 0x09, 0x3a, 0x71, - 0xf4, 0x63, 0x3a, 0xb1, 0x0c, 0x39, 0x13, 0x3b, 0x2e, 0xae, 0xb1, 0x88, 0x48, 0x0e, 0x19, 0x53, - 0xc0, 0x40, 0xbd, 0x21, 0x95, 0xfa, 0x58, 0x21, 0x75, 0x05, 0x26, 0x3c, 0x93, 0x54, 0x5b, 0x33, - 0x1b, 0x22, 0x36, 0x17, 0xe3, 0x2c, 0x59, 0xa8, 0x08, 0x9c, 0x42, 0x60, 0x4a, 0x01, 0x07, 0x9e, - 0xd1, 0x2a, 0x80, 0x65, 0x62, 0xab, 0xae, 0xd6, 0xb0, 0xde, 0x2c, 0x66, 0xfa, 0x78, 0x69, 0x9b, - 0xa8, 0xf4, 0x78, 0xc9, 0x62, 0x52, 0xbd, 0x89, 0x1e, 0xe9, 0x86, 0xda, 0x58, 0x9f, 0x48, 0xd9, - 0x64, 0x87, 0xac, 0x27, 0xda, 0xf6, 0xa0, 0x60, 0x63, 0x12, 0xf7, 0xb8, 0xc6, 0x57, 0x96, 0xa5, - 0x46, 0x2c, 0xc4, 0xae, 0x4c, 0xe1, 0x30, 0xb6, 0xb0, 0x71, 0xdb, 0xff, 0x88, 0x6e, 0x07, 0x4f, - 0xa0, 0xd2, 0xb0, 0x02, 0x9a, 0x85, 0xf2, 0x42, 0xb8, 0xa5, 0xb5, 0xf0, 0xcc, 0x05, 0x28, 0x04, - 0xdd, 0x83, 0xa6, 0x21, 0xed, 0xb8, 0x9a, 0xed, 0xd2, 0x28, 0x4c, 0x2b, 0xec, 0x01, 0xc9, 0x90, - 0xc4, 0x66, 0x8d, 0x66, 0xb9, 0xb4, 0x42, 0xfe, 0x9d, 0x79, 0x18, 0xc6, 0x03, 0xd3, 0x0f, 0x0b, - 0x9c, 0x7b, 0x75, 0x14, 0xa6, 0xa3, 0x62, 0x2e, 0x32, 0xfc, 0x4f, 0xc0, 0xa8, 0xd9, 0x69, 0xed, - 0x63, 0xbb, 0x98, 0xa4, 0x0c, 0xfc, 0x09, 0x95, 0x21, 0xdd, 0xd4, 0xf6, 0x71, 0xb3, 0x98, 0x3a, - 0x25, 0xcd, 0x17, 0x96, 0xee, 0x1d, 0x2a, 0xaa, 0x17, 0x36, 0x08, 0x44, 0x61, 0x48, 0xf4, 0x18, - 0xa4, 0x78, 0x8a, 0x23, 0x0c, 0x67, 0x86, 0x63, 0x20, 0xb1, 0xa8, 0x50, 0x1c, 0xba, 0x15, 0xb2, - 0xe4, 0x2f, 0xf3, 0xed, 0x28, 0xb5, 0x39, 0x43, 0x04, 0xc4, 0xaf, 0x68, 0x06, 0x32, 0x34, 0xcc, - 0x6a, 0x58, 0x94, 0x06, 0xef, 0x99, 0x6c, 0x4c, 0x0d, 0xd7, 0xb5, 0x4e, 0xd3, 0x55, 0xaf, 0x69, - 0xcd, 0x0e, 0xa6, 0x01, 0x93, 0x55, 0xf2, 0x5c, 0xf8, 0x14, 0x91, 0xa1, 0x93, 0x90, 0x63, 0x51, - 0x69, 0x98, 0x35, 0xfc, 0x12, 0xcd, 0x3e, 0x69, 0x85, 0x05, 0xea, 0x3a, 0x91, 0x90, 0xe9, 0x9f, - 0x77, 0x2c, 0x53, 0x6c, 0x2d, 0x9d, 0x82, 0x08, 0xe8, 0xf4, 0x0f, 0x87, 0x13, 0xdf, 0x6d, 0xd1, - 0xcb, 0x0b, 0xc7, 0xe2, 0xdc, 0x37, 0x13, 0x90, 0xa2, 0xe7, 0x6d, 0x02, 0x72, 0xbb, 0xcf, 0xec, - 0x54, 0xd4, 0xd5, 0xed, 0xbd, 0xe5, 0x8d, 0x8a, 0x2c, 0xa1, 0x02, 0x00, 0x15, 0x5c, 0xda, 0xd8, - 0x2e, 0xef, 0xca, 0x09, 0xef, 0x79, 0x7d, 0x6b, 0xf7, 0xfc, 0x59, 0x39, 0xe9, 0x01, 0xf6, 0x98, - 0x20, 0xe5, 0x57, 0x78, 0x68, 0x49, 0x4e, 0x23, 0x19, 0xf2, 0x8c, 0x60, 0xfd, 0x4a, 0x65, 0xf5, - 0xfc, 0x59, 0x79, 0x34, 0x28, 0x79, 0x68, 0x49, 0x1e, 0x43, 0xe3, 0x90, 0xa5, 0x92, 0xe5, 0xed, - 0xed, 0x0d, 0x39, 0xe3, 0x71, 0x56, 0x77, 0x95, 0xf5, 0xad, 0x35, 0x39, 0xeb, 0x71, 0xae, 0x29, - 0xdb, 0x7b, 0x3b, 0x32, 0x78, 0x0c, 0x9b, 0x95, 0x6a, 0xb5, 0xbc, 0x56, 0x91, 0x73, 0x9e, 0xc6, - 0xf2, 0x33, 0xbb, 0x95, 0xaa, 0x9c, 0x0f, 0x98, 0xf5, 0xd0, 0x92, 0x3c, 0xee, 0x4d, 0x51, 0xd9, - 0xda, 0xdb, 0x94, 0x0b, 0x68, 0x12, 0xc6, 0xd9, 0x14, 0xc2, 0x88, 0x89, 0x90, 0xe8, 0xfc, 0x59, - 0x59, 0xee, 0x1a, 0xc2, 0x58, 0x26, 0x03, 0x82, 0xf3, 0x67, 0x65, 0x34, 0xb7, 0x02, 0x69, 0x1a, - 0x5d, 0x08, 0x41, 0x61, 0xa3, 0xbc, 0x5c, 0xd9, 0x50, 0xb7, 0x77, 0x76, 0xd7, 0xb7, 0xb7, 0xca, - 0x1b, 0xb2, 0xd4, 0x95, 0x29, 0x95, 0xcf, 0xed, 0xad, 0x2b, 0x95, 0x55, 0x39, 0xe1, 0x97, 0xed, - 0x54, 0xca, 0xbb, 0x95, 0x55, 0x39, 0x39, 0xa7, 0xc3, 0x74, 0x54, 0x9e, 0x89, 0x3c, 0x19, 0xbe, - 0x2d, 0x4e, 0xf4, 0xd9, 0x62, 0xca, 0xd5, 0xb3, 0xc5, 0x5f, 0x96, 0x60, 0x2a, 0x22, 0xd7, 0x46, - 0x4e, 0xf2, 0x38, 0xa4, 0x59, 0x88, 0xb2, 0xea, 0x73, 0x4f, 0x64, 0xd2, 0xa6, 0x01, 0xdb, 0x53, - 0x81, 0x28, 0xce, 0x5f, 0x81, 0x93, 0x7d, 0x2a, 0x30, 0xa1, 0xe8, 0x31, 0xf2, 0x15, 0x09, 0x8a, - 0xfd, 0xb8, 0x63, 0x12, 0x45, 0x22, 0x90, 0x28, 0x2e, 0x86, 0x0d, 0x38, 0xdd, 0x7f, 0x0d, 0x3d, - 0x56, 0xbc, 0x29, 0xc1, 0x89, 0xe8, 0x46, 0x25, 0xd2, 0x86, 0xc7, 0x60, 0xb4, 0x85, 0xdd, 0x03, - 0x4b, 0x14, 0xeb, 0xbb, 0x22, 0x4a, 0x00, 0x19, 0x0e, 0xfb, 0x8a, 0xa3, 0xfc, 0x35, 0x24, 0xd9, - 0xaf, 0xdb, 0x60, 0xd6, 0xf4, 0x58, 0xfa, 0xf9, 0x04, 0xdc, 0x14, 0x49, 0x1e, 0x69, 0xe8, 0x6d, - 0x00, 0x86, 0xd9, 0xee, 0xb8, 0xac, 0x20, 0xb3, 0xfc, 0x94, 0xa5, 0x12, 0x7a, 0xf6, 0x49, 0xee, - 0xe9, 0xb8, 0xde, 0x78, 0x92, 0x8e, 0x03, 0x13, 0x51, 0x85, 0x0b, 0x5d, 0x43, 0x53, 0xd4, 0xd0, - 0xd9, 0x3e, 0x2b, 0xed, 0xa9, 0x75, 0x0f, 0x80, 0xac, 0x37, 0x0d, 0x6c, 0xba, 0xaa, 0xe3, 0xda, - 0x58, 0x6b, 0x19, 0x66, 0x83, 0x26, 0xe0, 0x4c, 0x29, 0x5d, 0xd7, 0x9a, 0x0e, 0x56, 0x26, 0xd8, - 0x70, 0x55, 0x8c, 0x12, 0x04, 0xad, 0x32, 0xb6, 0x0f, 0x31, 0x1a, 0x40, 0xb0, 0x61, 0x0f, 0x31, - 0xf7, 0xb5, 0x31, 0xc8, 0xf9, 0xda, 0x3a, 0x74, 0x1a, 0xf2, 0xcf, 0x6b, 0xd7, 0x34, 0x55, 0xb4, - 0xea, 0xcc, 0x13, 0x39, 0x22, 0xdb, 0xe1, 0xed, 0xfa, 0x03, 0x30, 0x4d, 0x55, 0xac, 0x8e, 0x8b, - 0x6d, 0x55, 0x6f, 0x6a, 0x8e, 0x43, 0x9d, 0x96, 0xa1, 0xaa, 0x88, 0x8c, 0x6d, 0x93, 0xa1, 0x15, - 0x31, 0x82, 0xce, 0xc1, 0x14, 0x45, 0xb4, 0x3a, 0x4d, 0xd7, 0x68, 0x37, 0xb1, 0x4a, 0x5e, 0x1e, - 0x1c, 0x9a, 0x88, 0x3d, 0xcb, 0x26, 0x89, 0xc6, 0x26, 0x57, 0x20, 0x16, 0x39, 0x68, 0x15, 0x6e, - 0xa3, 0xb0, 0x06, 0x36, 0xb1, 0xad, 0xb9, 0x58, 0xc5, 0x2f, 0x74, 0xb4, 0xa6, 0xa3, 0x6a, 0x66, - 0x4d, 0x3d, 0xd0, 0x9c, 0x83, 0xe2, 0x34, 0x21, 0x58, 0x4e, 0x14, 0x25, 0xe5, 0x16, 0xa2, 0xb8, - 0xc6, 0xf5, 0x2a, 0x54, 0xad, 0x6c, 0xd6, 0x2e, 0x6b, 0xce, 0x01, 0x2a, 0xc1, 0x09, 0xca, 0xe2, - 0xb8, 0xb6, 0x61, 0x36, 0x54, 0xfd, 0x00, 0xeb, 0x57, 0xd5, 0x8e, 0x5b, 0xbf, 0x50, 0xbc, 0xd5, - 0x3f, 0x3f, 0xb5, 0xb0, 0x4a, 0x75, 0x56, 0x88, 0xca, 0x9e, 0x5b, 0xbf, 0x80, 0xaa, 0x90, 0x27, - 0x9b, 0xd1, 0x32, 0x5e, 0xc6, 0x6a, 0xdd, 0xb2, 0x69, 0x65, 0x29, 0x44, 0x9c, 0x6c, 0x9f, 0x07, - 0x17, 0xb6, 0x39, 0x60, 0xd3, 0xaa, 0xe1, 0x52, 0xba, 0xba, 0x53, 0xa9, 0xac, 0x2a, 0x39, 0xc1, - 0x72, 0xc9, 0xb2, 0x49, 0x40, 0x35, 0x2c, 0xcf, 0xc1, 0x39, 0x16, 0x50, 0x0d, 0x4b, 0xb8, 0xf7, - 0x1c, 0x4c, 0xe9, 0x3a, 0x5b, 0xb3, 0xa1, 0xab, 0xbc, 0xc5, 0x77, 0x8a, 0x72, 0xc0, 0x59, 0xba, - 0xbe, 0xc6, 0x14, 0x78, 0x8c, 0x3b, 0xe8, 0x11, 0xb8, 0xa9, 0xeb, 0x2c, 0x3f, 0x70, 0xb2, 0x67, - 0x95, 0x61, 0xe8, 0x39, 0x98, 0x6a, 0x1f, 0xf6, 0x02, 0x51, 0x60, 0xc6, 0xf6, 0x61, 0x18, 0x76, - 0x27, 0x7d, 0x6d, 0xb3, 0xb1, 0xae, 0xb9, 0xb8, 0x56, 0xbc, 0xd9, 0xaf, 0xed, 0x1b, 0x40, 0x8b, - 0x20, 0xeb, 0xba, 0x8a, 0x4d, 0x6d, 0xbf, 0x89, 0x55, 0xcd, 0xc6, 0xa6, 0xe6, 0x14, 0x4f, 0xfa, - 0x95, 0x0b, 0xba, 0x5e, 0xa1, 0xa3, 0x65, 0x3a, 0x88, 0xce, 0xc0, 0xa4, 0xb5, 0xff, 0xbc, 0xce, - 0x22, 0x4b, 0x6d, 0xdb, 0xb8, 0x6e, 0xbc, 0x54, 0xbc, 0x83, 0xba, 0x69, 0x82, 0x0c, 0xd0, 0xb8, - 0xda, 0xa1, 0x62, 0x74, 0x0f, 0xc8, 0xba, 0x73, 0xa0, 0xd9, 0x6d, 0x5a, 0xda, 0x9d, 0xb6, 0xa6, - 0xe3, 0xe2, 0x9d, 0x4c, 0x95, 0xc9, 0xb7, 0x84, 0x98, 0x44, 0xb6, 0xf3, 0xa2, 0x51, 0x77, 0x05, - 0xe3, 0xdd, 0x2c, 0xb2, 0xa9, 0x8c, 0xb3, 0x5d, 0x81, 0xe9, 0x8e, 0x69, 0x98, 0x2e, 0xb6, 0xdb, - 0x36, 0x26, 0x4d, 0x3c, 0x3b, 0x89, 0xc5, 0x7f, 0x1a, 0xeb, 0xd3, 0x86, 0xef, 0xf9, 0xb5, 0x59, - 0x00, 0x28, 0x53, 0x9d, 0x5e, 0xe1, 0x5c, 0x09, 0xf2, 0xfe, 0xb8, 0x40, 0x59, 0x60, 0x91, 0x21, - 0x4b, 0xa4, 0xc6, 0xae, 0x6c, 0xaf, 0x92, 0xea, 0xf8, 0x6c, 0x45, 0x4e, 0x90, 0x2a, 0xbd, 0xb1, - 0xbe, 0x5b, 0x51, 0x95, 0xbd, 0xad, 0xdd, 0xf5, 0xcd, 0x8a, 0x9c, 0x3c, 0x93, 0xcd, 0xbc, 0x37, - 0x26, 0x5f, 0xbf, 0x7e, 0xfd, 0x7a, 0x62, 0xee, 0x3b, 0x09, 0x28, 0x04, 0x3b, 0x63, 0xf4, 0x59, - 0xb8, 0x59, 0xbc, 0xc6, 0x3a, 0xd8, 0x55, 0x5f, 0x34, 0x6c, 0x1a, 0xaa, 0x2d, 0x8d, 0xf5, 0x96, - 0x9e, 0x97, 0xa7, 0xb9, 0x56, 0x15, 0xbb, 0x4f, 0x1b, 0x36, 0x09, 0xc4, 0x96, 0xe6, 0xa2, 0x0d, - 0x38, 0x69, 0x5a, 0xaa, 0xe3, 0x6a, 0x66, 0x4d, 0xb3, 0x6b, 0x6a, 0xf7, 0x02, 0x41, 0xd5, 0x74, - 0x1d, 0x3b, 0x8e, 0xc5, 0x4a, 0x84, 0xc7, 0xf2, 0x19, 0xd3, 0xaa, 0x72, 0xe5, 0x6e, 0xee, 0x2c, - 0x73, 0xd5, 0x50, 0x44, 0x24, 0xfb, 0x45, 0xc4, 0xad, 0x90, 0x6d, 0x69, 0x6d, 0x15, 0x9b, 0xae, - 0x7d, 0x48, 0xfb, 0xb9, 0x8c, 0x92, 0x69, 0x69, 0xed, 0x0a, 0x79, 0xfe, 0xe4, 0xf6, 0xc0, 0xef, - 0xc7, 0x1f, 0x26, 0x21, 0xef, 0xef, 0xe9, 0x48, 0x8b, 0xac, 0xd3, 0xfc, 0x2d, 0xd1, 0x13, 0x7e, - 0xfb, 0xc0, 0x0e, 0x70, 0x61, 0x85, 0x24, 0xf6, 0xd2, 0x28, 0xeb, 0xb4, 0x14, 0x86, 0x24, 0x45, - 0x95, 0x9c, 0x69, 0xcc, 0xfa, 0xf7, 0x8c, 0xc2, 0x9f, 0xd0, 0x1a, 0x8c, 0x3e, 0xef, 0x50, 0xee, - 0x51, 0xca, 0x7d, 0xc7, 0x60, 0xee, 0x27, 0xaa, 0x94, 0x3c, 0xfb, 0x44, 0x55, 0xdd, 0xda, 0x56, - 0x36, 0xcb, 0x1b, 0x0a, 0x87, 0xa3, 0x5b, 0x20, 0xd5, 0xd4, 0x5e, 0x3e, 0x0c, 0x96, 0x00, 0x2a, - 0x1a, 0xd6, 0xf1, 0xb7, 0x40, 0xea, 0x45, 0xac, 0x5d, 0x0d, 0x26, 0x5e, 0x2a, 0xfa, 0x04, 0x43, - 0x7f, 0x11, 0xd2, 0xd4, 0x5f, 0x08, 0x80, 0x7b, 0x4c, 0x1e, 0x41, 0x19, 0x48, 0xad, 0x6c, 0x2b, - 0x24, 0xfc, 0x65, 0xc8, 0x33, 0xa9, 0xba, 0xb3, 0x5e, 0x59, 0xa9, 0xc8, 0x89, 0xb9, 0x73, 0x30, - 0xca, 0x9c, 0x40, 0x8e, 0x86, 0xe7, 0x06, 0x79, 0x84, 0x3f, 0x72, 0x0e, 0x49, 0x8c, 0xee, 0x6d, - 0x2e, 0x57, 0x14, 0x39, 0xe1, 0xdf, 0x5e, 0x07, 0xf2, 0xfe, 0x76, 0xee, 0xa7, 0x13, 0x53, 0x7f, - 0x2b, 0x41, 0xce, 0xd7, 0x9e, 0x91, 0xc6, 0x40, 0x6b, 0x36, 0xad, 0x17, 0x55, 0xad, 0x69, 0x68, - 0x0e, 0x0f, 0x0a, 0xa0, 0xa2, 0x32, 0x91, 0x0c, 0xbb, 0x69, 0x3f, 0x15, 0xe3, 0xdf, 0x90, 0x40, - 0x0e, 0xb7, 0x76, 0x21, 0x03, 0xa5, 0x9f, 0xa9, 0x81, 0xaf, 0x4b, 0x50, 0x08, 0xf6, 0x73, 0x21, - 0xf3, 0x4e, 0xff, 0x4c, 0xcd, 0x7b, 0x27, 0x01, 0xe3, 0x81, 0x2e, 0x6e, 0x58, 0xeb, 0x5e, 0x80, - 0x49, 0xa3, 0x86, 0x5b, 0x6d, 0xcb, 0xc5, 0xa6, 0x7e, 0xa8, 0x36, 0xf1, 0x35, 0xdc, 0x2c, 0xce, - 0xd1, 0x44, 0xb1, 0x38, 0xb8, 0x4f, 0x5c, 0x58, 0xef, 0xe2, 0x36, 0x08, 0xac, 0x34, 0xb5, 0xbe, - 0x5a, 0xd9, 0xdc, 0xd9, 0xde, 0xad, 0x6c, 0xad, 0x3c, 0xa3, 0xee, 0x6d, 0x3d, 0xb9, 0xb5, 0xfd, - 0xf4, 0x96, 0x22, 0x1b, 0x21, 0xb5, 0x4f, 0xf0, 0xa8, 0xef, 0x80, 0x1c, 0x36, 0x0a, 0xdd, 0x0c, - 0x51, 0x66, 0xc9, 0x23, 0x68, 0x0a, 0x26, 0xb6, 0xb6, 0xd5, 0xea, 0xfa, 0x6a, 0x45, 0xad, 0x5c, - 0xba, 0x54, 0x59, 0xd9, 0xad, 0xb2, 0x17, 0x67, 0x4f, 0x7b, 0x37, 0x78, 0xa8, 0x5f, 0x4b, 0xc2, - 0x54, 0x84, 0x25, 0xa8, 0xcc, 0x7b, 0x76, 0xf6, 0x1a, 0x71, 0xff, 0x30, 0xd6, 0x2f, 0x90, 0xae, - 0x60, 0x47, 0xb3, 0x5d, 0xde, 0xe2, 0xdf, 0x03, 0xc4, 0x4b, 0xa6, 0x6b, 0xd4, 0x0d, 0x6c, 0xf3, - 0x7b, 0x06, 0xd6, 0xc8, 0x4f, 0x74, 0xe5, 0xec, 0xaa, 0xe1, 0x3e, 0x40, 0x6d, 0xcb, 0x31, 0x5c, - 0xe3, 0x1a, 0x56, 0x0d, 0x53, 0x5c, 0x4a, 0x90, 0xc6, 0x3e, 0xa5, 0xc8, 0x62, 0x64, 0xdd, 0x74, - 0x3d, 0x6d, 0x13, 0x37, 0xb4, 0x90, 0x36, 0x49, 0xe0, 0x49, 0x45, 0x16, 0x23, 0x9e, 0xf6, 0x69, - 0xc8, 0xd7, 0xac, 0x0e, 0x69, 0x93, 0x98, 0x1e, 0xa9, 0x17, 0x92, 0x92, 0x63, 0x32, 0x4f, 0x85, - 0xf7, 0xb1, 0xdd, 0xdb, 0x90, 0xbc, 0x92, 0x63, 0x32, 0xa6, 0x72, 0x37, 0x4c, 0x68, 0x8d, 0x86, - 0x4d, 0xc8, 0x05, 0x11, 0xeb, 0xcc, 0x0b, 0x9e, 0x98, 0x2a, 0xce, 0x3c, 0x01, 0x19, 0xe1, 0x07, - 0x52, 0x92, 0x89, 0x27, 0xd4, 0x36, 0xbb, 0x93, 0x4a, 0xcc, 0x67, 0x95, 0x8c, 0x29, 0x06, 0x4f, - 0x43, 0xde, 0x70, 0xd4, 0xee, 0xe5, 0x68, 0xe2, 0x54, 0x62, 0x3e, 0xa3, 0xe4, 0x0c, 0xc7, 0xbb, - 0x0d, 0x9b, 0x7b, 0x33, 0x01, 0x85, 0xe0, 0xe5, 0x2e, 0x5a, 0x85, 0x4c, 0xd3, 0xd2, 0x35, 0x1a, - 0x5a, 0xec, 0x97, 0x85, 0xf9, 0x98, 0xfb, 0xe0, 0x85, 0x0d, 0xae, 0xaf, 0x78, 0xc8, 0x99, 0x7f, - 0x94, 0x20, 0x23, 0xc4, 0xe8, 0x04, 0xa4, 0xda, 0x9a, 0x7b, 0x40, 0xe9, 0xd2, 0xcb, 0x09, 0x59, - 0x52, 0xe8, 0x33, 0x91, 0x3b, 0x6d, 0xcd, 0xa4, 0x21, 0xc0, 0xe5, 0xe4, 0x99, 0xec, 0x6b, 0x13, - 0x6b, 0x35, 0xda, 0xf6, 0x5b, 0xad, 0x16, 0x36, 0x5d, 0x47, 0xec, 0x2b, 0x97, 0xaf, 0x70, 0x31, - 0xba, 0x17, 0x26, 0x5d, 0x5b, 0x33, 0x9a, 0x01, 0xdd, 0x14, 0xd5, 0x95, 0xc5, 0x80, 0xa7, 0x5c, - 0x82, 0x5b, 0x04, 0x6f, 0x0d, 0xbb, 0x9a, 0x7e, 0x80, 0x6b, 0x5d, 0xd0, 0x28, 0xbd, 0x39, 0xbc, - 0x99, 0x2b, 0xac, 0xf2, 0x71, 0x81, 0x9d, 0xfb, 0x9e, 0x04, 0x93, 0xe2, 0x45, 0xa5, 0xe6, 0x39, - 0x6b, 0x13, 0x40, 0x33, 0x4d, 0xcb, 0xf5, 0xbb, 0xab, 0x37, 0x94, 0x7b, 0x70, 0x0b, 0x65, 0x0f, - 0xa4, 0xf8, 0x08, 0x66, 0x5a, 0x00, 0xdd, 0x91, 0xbe, 0x6e, 0x3b, 0x09, 0x39, 0x7e, 0x73, 0x4f, - 0x7f, 0xfe, 0x61, 0xaf, 0xb6, 0xc0, 0x44, 0xe4, 0x8d, 0x06, 0x4d, 0x43, 0x7a, 0x1f, 0x37, 0x0c, - 0x93, 0xdf, 0x27, 0xb2, 0x07, 0x71, 0x4b, 0x99, 0xf2, 0x6e, 0x29, 0x97, 0xaf, 0xc0, 0x94, 0x6e, - 0xb5, 0xc2, 0xe6, 0x2e, 0xcb, 0xa1, 0xd7, 0x6b, 0xe7, 0xb2, 0xf4, 0x2c, 0x74, 0x5b, 0xcc, 0x2f, - 0x27, 0x92, 0x6b, 0x3b, 0xcb, 0x5f, 0x4d, 0xcc, 0xac, 0x31, 0xdc, 0x8e, 0x58, 0xa6, 0x82, 0xeb, - 0x4d, 0xac, 0x13, 0xd3, 0xe1, 0xc7, 0x77, 0xc1, 0xfd, 0x0d, 0xc3, 0x3d, 0xe8, 0xec, 0x2f, 0xe8, - 0x56, 0x6b, 0xb1, 0x61, 0x35, 0xac, 0xee, 0xcf, 0x5d, 0xe4, 0x89, 0x3e, 0xd0, 0xff, 0xf8, 0x4f, - 0x5e, 0x59, 0x4f, 0x3a, 0x13, 0xfb, 0xfb, 0x58, 0x69, 0x0b, 0xa6, 0xb8, 0xb2, 0x4a, 0xef, 0xdc, - 0xd9, 0xab, 0x01, 0x1a, 0x78, 0xef, 0x52, 0xfc, 0xc6, 0xbb, 0xb4, 0x56, 0x2b, 0x93, 0x1c, 0x4a, - 0xc6, 0xd8, 0x0b, 0x44, 0x49, 0x81, 0x9b, 0x02, 0x7c, 0xec, 0x5c, 0x62, 0x3b, 0x86, 0xf1, 0x3b, - 0x9c, 0x71, 0xca, 0xc7, 0x58, 0xe5, 0xd0, 0xd2, 0x0a, 0x8c, 0x1f, 0x87, 0xeb, 0xef, 0x38, 0x57, - 0x1e, 0xfb, 0x49, 0xd6, 0x60, 0x82, 0x92, 0xe8, 0x1d, 0xc7, 0xb5, 0x5a, 0x34, 0xe9, 0x0d, 0xa6, - 0xf9, 0xfb, 0x77, 0xd9, 0x41, 0x29, 0x10, 0xd8, 0x8a, 0x87, 0x2a, 0x95, 0x80, 0xfe, 0xcc, 0x50, - 0xc3, 0x7a, 0x33, 0x86, 0xe1, 0x2d, 0x6e, 0x88, 0xa7, 0x5f, 0x7a, 0x0a, 0xa6, 0xc9, 0xff, 0x34, - 0x27, 0xf9, 0x2d, 0x89, 0xbf, 0x65, 0x2a, 0x7e, 0xef, 0x15, 0x76, 0x16, 0xa7, 0x3c, 0x02, 0x9f, - 0x4d, 0xbe, 0x5d, 0x6c, 0x60, 0xd7, 0xc5, 0xb6, 0xa3, 0x6a, 0xcd, 0x28, 0xf3, 0x7c, 0xaf, 0xe9, - 0xc5, 0x2f, 0xbc, 0x1f, 0xdc, 0xc5, 0x35, 0x86, 0x2c, 0x37, 0x9b, 0xa5, 0x3d, 0xb8, 0x39, 0x22, - 0x2a, 0x86, 0xe0, 0x7c, 0x8d, 0x73, 0x4e, 0xf7, 0x44, 0x06, 0xa1, 0xdd, 0x01, 0x21, 0xf7, 0xf6, - 0x72, 0x08, 0xce, 0xdf, 0xe3, 0x9c, 0x88, 0x63, 0xc5, 0x96, 0x12, 0xc6, 0x27, 0x60, 0xf2, 0x1a, - 0xb6, 0xf7, 0x2d, 0x87, 0x5f, 0x8d, 0x0c, 0x41, 0xf7, 0x3a, 0xa7, 0x9b, 0xe0, 0x40, 0x7a, 0x57, - 0x42, 0xb8, 0x1e, 0x81, 0x4c, 0x5d, 0xd3, 0xf1, 0x10, 0x14, 0x5f, 0xe4, 0x14, 0x63, 0x44, 0x9f, - 0x40, 0xcb, 0x90, 0x6f, 0x58, 0xbc, 0x2c, 0xc5, 0xc3, 0xdf, 0xe0, 0xf0, 0x9c, 0xc0, 0x70, 0x8a, - 0xb6, 0xd5, 0xee, 0x34, 0x49, 0xcd, 0x8a, 0xa7, 0xf8, 0x7d, 0x41, 0x21, 0x30, 0x9c, 0xe2, 0x18, - 0x6e, 0xfd, 0x03, 0x41, 0xe1, 0xf8, 0xfc, 0xf9, 0x38, 0xe4, 0x2c, 0xb3, 0x79, 0x68, 0x99, 0xc3, - 0x18, 0xf1, 0x25, 0xce, 0x00, 0x1c, 0x42, 0x08, 0x2e, 0x42, 0x76, 0xd8, 0x8d, 0xf8, 0xc3, 0xf7, - 0xc5, 0xf1, 0x10, 0x3b, 0xb0, 0x06, 0x13, 0x22, 0x41, 0x19, 0x96, 0x39, 0x04, 0xc5, 0x1f, 0x71, - 0x8a, 0x82, 0x0f, 0xc6, 0x97, 0xe1, 0x62, 0xc7, 0x6d, 0xe0, 0x61, 0x48, 0xde, 0x14, 0xcb, 0xe0, - 0x10, 0xee, 0xca, 0x7d, 0x6c, 0xea, 0x07, 0xc3, 0x31, 0x7c, 0x45, 0xb8, 0x52, 0x60, 0x08, 0xc5, - 0x0a, 0x8c, 0xb7, 0x34, 0xdb, 0x39, 0xd0, 0x9a, 0x43, 0x6d, 0xc7, 0x1f, 0x73, 0x8e, 0xbc, 0x07, - 0xe2, 0x1e, 0xe9, 0x98, 0xc7, 0xa1, 0xf9, 0xaa, 0xf0, 0x88, 0x0f, 0xc6, 0x8f, 0x9e, 0xe3, 0xd2, - 0x0b, 0xa8, 0xe3, 0xb0, 0x7d, 0x4d, 0x1c, 0x3d, 0x86, 0xdd, 0xf4, 0x33, 0x5e, 0x84, 0xac, 0x63, - 0xbc, 0x3c, 0x14, 0xcd, 0x9f, 0x88, 0x9d, 0xa6, 0x00, 0x02, 0x7e, 0x06, 0x6e, 0x89, 0x2c, 0x13, - 0x43, 0x90, 0xfd, 0x29, 0x27, 0x3b, 0x11, 0x51, 0x2a, 0x78, 0x4a, 0x38, 0x2e, 0xe5, 0x9f, 0x89, - 0x94, 0x80, 0x43, 0x5c, 0x3b, 0xe4, 0x45, 0xc1, 0xd1, 0xea, 0xc7, 0xf3, 0xda, 0x9f, 0x0b, 0xaf, - 0x31, 0x6c, 0xc0, 0x6b, 0xbb, 0x70, 0x82, 0x33, 0x1e, 0x6f, 0x5f, 0xbf, 0x2e, 0x12, 0x2b, 0x43, - 0xef, 0x05, 0x77, 0xf7, 0xff, 0xc1, 0x8c, 0xe7, 0x4e, 0xd1, 0x91, 0x3a, 0x6a, 0x4b, 0x6b, 0x0f, - 0xc1, 0xfc, 0x0d, 0xce, 0x2c, 0x32, 0xbe, 0xd7, 0xd2, 0x3a, 0x9b, 0x5a, 0x9b, 0x90, 0x5f, 0x81, - 0xa2, 0x20, 0xef, 0x98, 0x36, 0xd6, 0xad, 0x86, 0x69, 0xbc, 0x8c, 0x6b, 0x43, 0x50, 0xff, 0x45, - 0x68, 0xab, 0xf6, 0x7c, 0x70, 0xc2, 0xbc, 0x0e, 0xb2, 0xd7, 0xab, 0xa8, 0x46, 0xab, 0x6d, 0xd9, - 0x6e, 0x0c, 0xe3, 0x5f, 0x8a, 0x9d, 0xf2, 0x70, 0xeb, 0x14, 0x56, 0xaa, 0x40, 0x81, 0x3e, 0x0e, - 0x1b, 0x92, 0x7f, 0xc5, 0x89, 0xc6, 0xbb, 0x28, 0x9e, 0x38, 0x74, 0xab, 0xd5, 0xd6, 0xec, 0x61, - 0xf2, 0xdf, 0x5f, 0x8b, 0xc4, 0xc1, 0x21, 0x3c, 0x71, 0xb8, 0x87, 0x6d, 0x4c, 0xaa, 0xfd, 0x10, - 0x0c, 0xdf, 0x14, 0x89, 0x43, 0x60, 0x38, 0x85, 0x68, 0x18, 0x86, 0xa0, 0xf8, 0x1b, 0x41, 0x21, - 0x30, 0x84, 0xe2, 0x73, 0xdd, 0x42, 0x6b, 0xe3, 0x86, 0xe1, 0xb8, 0x36, 0xeb, 0x83, 0x07, 0x53, - 0x7d, 0xeb, 0xfd, 0x60, 0x13, 0xa6, 0xf8, 0xa0, 0xa5, 0x27, 0x60, 0x22, 0xd4, 0x62, 0xa0, 0xb8, - 0x6f, 0x16, 0x8a, 0x3f, 0xff, 0x21, 0x4f, 0x46, 0xc1, 0x0e, 0xa3, 0xb4, 0x41, 0xf6, 0x3d, 0xd8, - 0x07, 0xc4, 0x93, 0xbd, 0xf2, 0xa1, 0xb7, 0xf5, 0x81, 0x36, 0xa0, 0x74, 0x09, 0xc6, 0x03, 0x3d, - 0x40, 0x3c, 0xd5, 0x2f, 0x70, 0xaa, 0xbc, 0xbf, 0x05, 0x28, 0x9d, 0x83, 0x14, 0xa9, 0xe7, 0xf1, - 0xf0, 0x5f, 0xe4, 0x70, 0xaa, 0x5e, 0x7a, 0x14, 0x32, 0xa2, 0x8e, 0xc7, 0x43, 0x7f, 0x89, 0x43, - 0x3d, 0x08, 0x81, 0x8b, 0x1a, 0x1e, 0x0f, 0xff, 0x65, 0x01, 0x17, 0x10, 0x02, 0x1f, 0xde, 0x85, - 0xdf, 0xfe, 0x95, 0x14, 0xcf, 0xc3, 0xc2, 0x77, 0x17, 0x61, 0x8c, 0x17, 0xef, 0x78, 0xf4, 0xe7, - 0xf9, 0xe4, 0x02, 0x51, 0x7a, 0x18, 0xd2, 0x43, 0x3a, 0xfc, 0x57, 0x39, 0x94, 0xe9, 0x97, 0x56, - 0x20, 0xe7, 0x2b, 0xd8, 0xf1, 0xf0, 0x5f, 0xe3, 0x70, 0x3f, 0x8a, 0x98, 0xce, 0x0b, 0x76, 0x3c, - 0xc1, 0xaf, 0x0b, 0xd3, 0x39, 0x82, 0xb8, 0x4d, 0xd4, 0xea, 0x78, 0xf4, 0x6f, 0x08, 0xaf, 0x0b, - 0x48, 0xe9, 0x71, 0xc8, 0x7a, 0xf9, 0x37, 0x1e, 0xff, 0x9b, 0x1c, 0xdf, 0xc5, 0x10, 0x0f, 0xf8, - 0xf2, 0x7f, 0x3c, 0xc5, 0x6f, 0x09, 0x0f, 0xf8, 0x50, 0xe4, 0x18, 0x85, 0x6b, 0x7a, 0x3c, 0xd3, - 0x6f, 0x8b, 0x63, 0x14, 0x2a, 0xe9, 0x64, 0x37, 0x69, 0x1a, 0x8c, 0xa7, 0xf8, 0x1d, 0xb1, 0x9b, - 0x54, 0x9f, 0x98, 0x11, 0x2e, 0x92, 0xf1, 0x1c, 0xbf, 0x2b, 0xcc, 0x08, 0xd5, 0xc8, 0xd2, 0x0e, - 0xa0, 0xde, 0x02, 0x19, 0xcf, 0xf7, 0x2a, 0xe7, 0x9b, 0xec, 0xa9, 0x8f, 0xa5, 0xa7, 0xe1, 0x44, - 0x74, 0x71, 0x8c, 0x67, 0xfd, 0xc2, 0x87, 0xa1, 0xd7, 0x19, 0x7f, 0x6d, 0x2c, 0xed, 0x76, 0xb3, - 0xac, 0xbf, 0x30, 0xc6, 0xd3, 0xbe, 0xf6, 0x61, 0x30, 0xd1, 0xfa, 0xeb, 0x62, 0xa9, 0x0c, 0xd0, - 0xad, 0x49, 0xf1, 0x5c, 0xaf, 0x73, 0x2e, 0x1f, 0x88, 0x1c, 0x0d, 0x5e, 0x92, 0xe2, 0xf1, 0x5f, - 0x14, 0x47, 0x83, 0x23, 0xc8, 0xd1, 0x10, 0xd5, 0x28, 0x1e, 0xfd, 0x86, 0x38, 0x1a, 0x02, 0x52, - 0xba, 0x08, 0x19, 0xb3, 0xd3, 0x6c, 0x92, 0xd8, 0x42, 0x83, 0x3f, 0x23, 0x2a, 0xfe, 0xf3, 0x47, - 0x1c, 0x2c, 0x00, 0xa5, 0x73, 0x90, 0xc6, 0xad, 0x7d, 0x5c, 0x8b, 0x43, 0xfe, 0xcb, 0x47, 0x22, - 0x9f, 0x10, 0xed, 0xd2, 0xe3, 0x00, 0xec, 0x65, 0x9a, 0xfe, 0x4a, 0x14, 0x83, 0xfd, 0xd7, 0x8f, - 0xf8, 0x17, 0x0a, 0x5d, 0x48, 0x97, 0x80, 0x7d, 0xef, 0x30, 0x98, 0xe0, 0xfd, 0x20, 0x01, 0x7d, - 0x01, 0x7f, 0x04, 0xc6, 0x9e, 0x77, 0x2c, 0xd3, 0xd5, 0x1a, 0x71, 0xe8, 0x7f, 0xe3, 0x68, 0xa1, - 0x4f, 0x1c, 0xd6, 0xb2, 0x6c, 0xec, 0x6a, 0x0d, 0x27, 0x0e, 0xfb, 0xef, 0x1c, 0xeb, 0x01, 0x08, - 0x58, 0xd7, 0x1c, 0x77, 0x98, 0x75, 0xff, 0x87, 0x00, 0x0b, 0x00, 0x31, 0x9a, 0xfc, 0x7f, 0x15, - 0x1f, 0xc6, 0x61, 0x3f, 0x10, 0x46, 0x73, 0xfd, 0xd2, 0xa3, 0x90, 0x25, 0xff, 0xb2, 0xaf, 0x76, - 0x62, 0xc0, 0xff, 0xc9, 0xc1, 0x5d, 0x04, 0x99, 0xd9, 0x71, 0x6b, 0xae, 0x11, 0xef, 0xec, 0xff, - 0xe2, 0x3b, 0x2d, 0xf4, 0x4b, 0x65, 0xc8, 0x39, 0x6e, 0xad, 0xd6, 0xe1, 0x1d, 0x4d, 0x0c, 0xfc, - 0xc7, 0x1f, 0x79, 0x2f, 0xb9, 0x1e, 0x66, 0xf9, 0x74, 0xf4, 0x65, 0x1d, 0xac, 0x59, 0x6b, 0x16, - 0xbb, 0xa6, 0x83, 0xff, 0xb9, 0x1f, 0xee, 0xd1, 0xad, 0xd6, 0xbe, 0xe5, 0x2c, 0xb2, 0x84, 0xe2, - 0x4b, 0x46, 0x8b, 0x2d, 0xad, 0xed, 0x50, 0xd4, 0x12, 0xbf, 0x71, 0xcb, 0xf1, 0x27, 0x32, 0x30, - 0x73, 0xbc, 0xdb, 0xba, 0xb9, 0xdb, 0x60, 0xfc, 0x52, 0xd3, 0xd2, 0x5c, 0xc3, 0x6c, 0xec, 0x58, - 0x86, 0xe9, 0xa2, 0x3c, 0x48, 0x75, 0xfa, 0x53, 0x93, 0xa4, 0x48, 0xf5, 0xb9, 0x7f, 0x48, 0x43, - 0x96, 0x5d, 0xf4, 0x6c, 0x6a, 0x6d, 0xf4, 0x73, 0x90, 0xdf, 0xe2, 0x67, 0xe5, 0xc1, 0xa5, 0x0b, - 0x8e, 0x77, 0xab, 0xec, 0x9b, 0x7f, 0xc1, 0xd3, 0x5e, 0xf0, 0xab, 0xd2, 0x9f, 0x96, 0x97, 0x1f, - 0xf8, 0xc1, 0xdb, 0x27, 0xef, 0xeb, 0x6b, 0x1f, 0x29, 0x8e, 0x8b, 0x2c, 0xa8, 0x17, 0xf6, 0x0c, - 0xd3, 0x7d, 0x70, 0xe9, 0x82, 0x12, 0x98, 0x0f, 0x5d, 0x83, 0x0c, 0x1f, 0x70, 0xf8, 0xaf, 0x0d, - 0x77, 0xf4, 0x99, 0x5b, 0xa8, 0xb1, 0x79, 0xcf, 0xbe, 0xf5, 0xf6, 0xc9, 0x91, 0x63, 0xcf, 0xed, - 0xcd, 0x85, 0x5e, 0x80, 0x9c, 0xb0, 0x63, 0xbd, 0xe6, 0xf0, 0x8f, 0x8a, 0xef, 0x8e, 0x59, 0xf6, - 0x7a, 0x8d, 0xcf, 0x7e, 0xd7, 0x0f, 0xde, 0x3e, 0x39, 0x37, 0x70, 0xe6, 0x85, 0xbd, 0x8e, 0x51, - 0x53, 0xfc, 0x73, 0xa0, 0xe7, 0x20, 0x49, 0xa6, 0x62, 0x9f, 0x1f, 0x9f, 0xec, 0x33, 0x95, 0x37, - 0xc5, 0x19, 0xbe, 0xc0, 0x61, 0xa6, 0x21, 0xbc, 0x33, 0x8f, 0xc3, 0x64, 0xcf, 0xf6, 0x20, 0x19, - 0x92, 0x57, 0xf1, 0x21, 0xff, 0xe2, 0x88, 0xfc, 0x8b, 0xa6, 0xbb, 0x5f, 0xd4, 0x49, 0xf3, 0x79, - 0xfe, 0x99, 0x5c, 0x29, 0x71, 0x41, 0x9a, 0xb9, 0x08, 0xe3, 0x01, 0x1f, 0x1f, 0x0b, 0xfc, 0x18, - 0xc8, 0x61, 0x2f, 0x1d, 0x0b, 0x7f, 0x1e, 0x32, 0x1f, 0x07, 0x37, 0xf7, 0x7d, 0x04, 0x63, 0xe5, - 0x66, 0x73, 0x53, 0x6b, 0x3b, 0xe8, 0x19, 0x98, 0x64, 0x2d, 0xfc, 0xae, 0xb5, 0x4a, 0x7f, 0xdf, - 0xd9, 0xd4, 0xda, 0x3c, 0xa0, 0xef, 0x0d, 0xb8, 0x9b, 0x03, 0x16, 0x7a, 0xb4, 0xe9, 0xfc, 0x4a, - 0x2f, 0x0b, 0x7a, 0x0a, 0x64, 0x21, 0xa4, 0x67, 0x8b, 0x30, 0xb3, 0x70, 0x3d, 0x33, 0x90, 0x59, - 0x28, 0x33, 0xe2, 0x1e, 0x0e, 0xf4, 0x18, 0x64, 0xd6, 0x4d, 0xf7, 0xa1, 0x25, 0xc2, 0xc7, 0x62, - 0x70, 0x2e, 0x92, 0x4f, 0x28, 0x31, 0x1e, 0x0f, 0xc3, 0xf1, 0xe7, 0xcf, 0x12, 0x7c, 0x6a, 0x30, - 0x9e, 0x2a, 0x75, 0xf1, 0xf4, 0x11, 0x95, 0x21, 0x4b, 0xf6, 0x9c, 0x19, 0xc0, 0xbe, 0x67, 0xbf, - 0x3d, 0x92, 0xc0, 0xd3, 0x62, 0x0c, 0x5d, 0x94, 0xa0, 0x60, 0x36, 0x8c, 0xc6, 0x50, 0xf8, 0x8c, - 0xe8, 0xa2, 0x08, 0x45, 0xd5, 0xb3, 0x62, 0x6c, 0x00, 0x45, 0x35, 0x64, 0x45, 0xd5, 0x6f, 0x45, - 0xd5, 0xb3, 0x22, 0x13, 0x43, 0xe1, 0xb7, 0xc2, 0x7b, 0x46, 0xab, 0x00, 0x97, 0x8c, 0x97, 0x70, - 0x8d, 0x99, 0x91, 0x8d, 0x48, 0x46, 0x82, 0xa3, 0xab, 0xc6, 0x48, 0x7c, 0x38, 0xb4, 0x06, 0xb9, - 0x6a, 0xbd, 0x4b, 0x03, 0xfc, 0x73, 0xfe, 0x48, 0x53, 0xea, 0x21, 0x1e, 0x3f, 0xd2, 0x33, 0x87, - 0x2d, 0x29, 0x17, 0x67, 0x8e, 0x6f, 0x4d, 0x3e, 0x5c, 0xd7, 0x1c, 0x46, 0x93, 0x8f, 0x35, 0xc7, - 0xc7, 0xe3, 0x47, 0xa2, 0x8b, 0x30, 0xb6, 0x6c, 0x59, 0x44, 0xb3, 0x38, 0x4e, 0x49, 0x4e, 0x47, - 0x92, 0x70, 0x1d, 0x46, 0x20, 0x10, 0x74, 0x77, 0x68, 0xe8, 0x13, 0x78, 0x61, 0xd0, 0xee, 0x08, - 0x2d, 0xb1, 0x3b, 0xe2, 0xd9, 0x7f, 0x02, 0x97, 0x0f, 0x5d, 0x4c, 0xda, 0xe5, 0xe2, 0xc4, 0x10, - 0x27, 0x50, 0x28, 0x87, 0x4e, 0xa0, 0x10, 0xa3, 0x2a, 0x4c, 0x08, 0x59, 0xc5, 0xec, 0x90, 0x1c, - 0x5c, 0x94, 0xf9, 0xb7, 0xc6, 0x83, 0x68, 0xb9, 0x2e, 0x63, 0x0d, 0x33, 0xa0, 0x1d, 0x28, 0x08, - 0xd1, 0xa6, 0x43, 0x17, 0x3d, 0x19, 0x51, 0x57, 0xc3, 0x9c, 0x4c, 0x95, 0x51, 0x86, 0xf0, 0x33, - 0xab, 0x70, 0x22, 0x3a, 0x5b, 0xc5, 0x65, 0x4b, 0xc9, 0x9f, 0x65, 0x57, 0xe0, 0xa6, 0xc8, 0xcc, - 0x14, 0x47, 0x92, 0x08, 0xd5, 0x89, 0x40, 0x3a, 0xf2, 0x83, 0xd3, 0x11, 0xe0, 0x74, 0x2f, 0xb8, - 0x1b, 0x64, 0x7e, 0x70, 0x32, 0x02, 0x9c, 0xf4, 0x83, 0x3f, 0x0b, 0x85, 0x60, 0x1e, 0xf2, 0xa3, - 0xc7, 0x23, 0xd0, 0xe3, 0x11, 0xe8, 0xe8, 0xb9, 0x53, 0x11, 0xe8, 0x54, 0x08, 0x5d, 0xed, 0x3b, - 0xf7, 0x64, 0x04, 0x7a, 0x32, 0x02, 0x1d, 0x3d, 0x37, 0x8a, 0x40, 0x23, 0x3f, 0xfa, 0x51, 0x98, - 0x08, 0xa5, 0x1c, 0x3f, 0x7c, 0x2c, 0x02, 0x3e, 0x16, 0xaa, 0xcd, 0xe1, 0x54, 0xe3, 0xc7, 0x4f, - 0x44, 0xe0, 0x27, 0xa2, 0xa6, 0x8f, 0xb6, 0x7e, 0x34, 0x02, 0x3e, 0x1a, 0x39, 0x7d, 0x34, 0x5e, - 0x8e, 0xc0, 0xcb, 0x7e, 0x7c, 0x09, 0xf2, 0xfe, 0xac, 0xe2, 0xc7, 0x66, 0x22, 0xb0, 0x99, 0xb0, - 0xdf, 0x03, 0x29, 0x25, 0x2e, 0xd2, 0xb3, 0x7d, 0x8e, 0x4b, 0x20, 0x8d, 0x1c, 0xab, 0xb3, 0xb9, - 0x02, 0xd3, 0x51, 0x49, 0x23, 0x82, 0xe3, 0x8c, 0x9f, 0xa3, 0xb0, 0x34, 0x1d, 0x48, 0x16, 0x14, - 0xd7, 0x69, 0xf9, 0x99, 0x9f, 0x83, 0xa9, 0x88, 0xd4, 0x11, 0x41, 0xfc, 0x80, 0x9f, 0x38, 0xb7, - 0x34, 0x13, 0x20, 0x0e, 0xbc, 0x2b, 0xf8, 0x5b, 0xab, 0x1f, 0x4e, 0x41, 0x81, 0xa7, 0xa8, 0x6d, - 0xbb, 0x86, 0x6d, 0x5c, 0x43, 0xff, 0xbf, 0x7f, 0x87, 0xb5, 0x14, 0x95, 0xda, 0x38, 0xee, 0x18, - 0x8d, 0xd6, 0x73, 0x7d, 0x1b, 0xad, 0x07, 0x87, 0x99, 0x20, 0xae, 0xdf, 0xaa, 0xf4, 0xf4, 0x5b, - 0xf7, 0x0c, 0xa2, 0xed, 0xd7, 0x76, 0x55, 0x7a, 0xda, 0xae, 0x38, 0x9a, 0xc8, 0xee, 0xeb, 0x72, - 0x6f, 0xf7, 0x75, 0x66, 0x10, 0x4f, 0xff, 0x26, 0xec, 0x72, 0x6f, 0x13, 0x16, 0xcb, 0x14, 0xdd, - 0x8b, 0x5d, 0xee, 0xed, 0xc5, 0x06, 0x32, 0xf5, 0x6f, 0xc9, 0x2e, 0xf7, 0xb6, 0x64, 0xb1, 0x4c, - 0xd1, 0x9d, 0xd9, 0x93, 0x11, 0x9d, 0xd9, 0xbd, 0x83, 0xa8, 0x06, 0x35, 0x68, 0x5b, 0x51, 0x0d, - 0xda, 0x7d, 0x03, 0x0d, 0x1b, 0xd8, 0xa7, 0x3d, 0x19, 0xd1, 0xa7, 0xc5, 0x1b, 0xd7, 0xa7, 0x5d, - 0xdb, 0x8a, 0x6a, 0xd7, 0x86, 0x30, 0xae, 0x5f, 0xd7, 0xb6, 0x1c, 0xee, 0xda, 0xe6, 0x07, 0x71, - 0x45, 0x37, 0x6f, 0x97, 0x7b, 0x9b, 0xb7, 0x33, 0xf1, 0x67, 0x31, 0xaa, 0x87, 0x7b, 0xae, 0x6f, - 0x0f, 0x37, 0xd4, 0xe1, 0x8e, 0x6b, 0xe5, 0x9e, 0xed, 0xd7, 0xca, 0x3d, 0x30, 0x0c, 0xfb, 0xe0, - 0x8e, 0xee, 0xe9, 0x3e, 0x1d, 0xdd, 0xe2, 0x30, 0xd4, 0x9f, 0x36, 0x76, 0x9f, 0x36, 0x76, 0x9f, - 0x36, 0x76, 0x9f, 0x36, 0x76, 0xff, 0x37, 0x1a, 0xbb, 0x52, 0xea, 0xd5, 0x2f, 0x9d, 0x94, 0xce, - 0x9c, 0x86, 0x31, 0x3e, 0x35, 0x1a, 0x85, 0xc4, 0x66, 0x59, 0x1e, 0xa1, 0x7f, 0x97, 0x65, 0x89, - 0xfe, 0x5d, 0x91, 0x13, 0xcb, 0x1b, 0x6f, 0xdd, 0x98, 0x1d, 0xf9, 0xee, 0x8d, 0xd9, 0x91, 0xef, - 0xdf, 0x98, 0x1d, 0x79, 0xe7, 0xc6, 0xac, 0xf4, 0xde, 0x8d, 0x59, 0xe9, 0x83, 0x1b, 0xb3, 0xd2, - 0x4f, 0x6e, 0xcc, 0x4a, 0xd7, 0x8f, 0x66, 0xa5, 0xaf, 0x1c, 0xcd, 0x4a, 0x5f, 0x3f, 0x9a, 0x95, - 0xbe, 0x75, 0x34, 0x2b, 0x7d, 0xfb, 0x68, 0x56, 0x7a, 0xeb, 0x68, 0x76, 0xe4, 0xbb, 0x47, 0xb3, - 0x23, 0xef, 0x1c, 0xcd, 0x4a, 0xef, 0x1d, 0xcd, 0x8e, 0x7c, 0x70, 0x34, 0x2b, 0xfd, 0xe4, 0x68, - 0x76, 0xe4, 0xfa, 0x8f, 0x66, 0xa5, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x94, 0x59, 0xbb, 0xb2, - 0x5e, 0x45, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (x MapEnum) String() string { - s, ok := MapEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (this *FloatingPoint) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *FloatingPoint") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *FloatingPoint but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *FloatingPoint but is not nil && this == nil") - } - if this.F != nil && that1.F != nil { - if *this.F != *that1.F { - return fmt.Errorf("F this(%v) Not Equal that(%v)", *this.F, *that1.F) - } - } else if this.F != nil { - return fmt.Errorf("this.F == nil && that.F != nil") - } else if that1.F != nil { - return fmt.Errorf("F this(%v) Not Equal that(%v)", this.F, that1.F) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *FloatingPoint) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.F != nil && that1.F != nil { - if *this.F != *that1.F { - return false - } - } else if this.F != nil { - return false - } else if that1.F != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomMap) - if !ok { - that2, ok := that.(CustomMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomMap but is not nil && this == nil") - } - if len(this.Nullable128S) != len(that1.Nullable128S) { - return fmt.Errorf("Nullable128S this(%v) Not Equal that(%v)", len(this.Nullable128S), len(that1.Nullable128S)) - } - for i := range this.Nullable128S { - if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable - return fmt.Errorf("Nullable128S this[%v](%v) Not Equal that[%v](%v)", i, this.Nullable128S[i], i, that1.Nullable128S[i]) - } - } - if len(this.Uint128S) != len(that1.Uint128S) { - return fmt.Errorf("Uint128S this(%v) Not Equal that(%v)", len(this.Uint128S), len(that1.Uint128S)) - } - for i := range this.Uint128S { - if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable - return fmt.Errorf("Uint128S this[%v](%v) Not Equal that[%v](%v)", i, this.Uint128S[i], i, that1.Uint128S[i]) - } - } - if len(this.NullableIds) != len(that1.NullableIds) { - return fmt.Errorf("NullableIds this(%v) Not Equal that(%v)", len(this.NullableIds), len(that1.NullableIds)) - } - for i := range this.NullableIds { - if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable - return fmt.Errorf("NullableIds this[%v](%v) Not Equal that[%v](%v)", i, this.NullableIds[i], i, that1.NullableIds[i]) - } - } - if len(this.Ids) != len(that1.Ids) { - return fmt.Errorf("Ids this(%v) Not Equal that(%v)", len(this.Ids), len(that1.Ids)) - } - for i := range this.Ids { - if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable - return fmt.Errorf("Ids this[%v](%v) Not Equal that[%v](%v)", i, this.Ids[i], i, that1.Ids[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomMap) - if !ok { - that2, ok := that.(CustomMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Nullable128S) != len(that1.Nullable128S) { - return false - } - for i := range this.Nullable128S { - if !this.Nullable128S[i].Equal(*that1.Nullable128S[i]) { //nullable - return false - } - } - if len(this.Uint128S) != len(that1.Uint128S) { - return false - } - for i := range this.Uint128S { - if !this.Uint128S[i].Equal(that1.Uint128S[i]) { //not nullable - return false - } - } - if len(this.NullableIds) != len(that1.NullableIds) { - return false - } - for i := range this.NullableIds { - if !this.NullableIds[i].Equal(*that1.NullableIds[i]) { //nullable - return false - } - } - if len(this.Ids) != len(that1.Ids) { - return false - } - for i := range this.Ids { - if !this.Ids[i].Equal(that1.Ids[i]) { //not nullable - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllMaps) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMaps") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMaps but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMaps but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AllMaps) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllMapsOrdered) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMapsOrdered") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMapsOrdered but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMapsOrdered but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AllMapsOrdered) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetF() *float64 -} - -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { - return NewFloatingPointFromFace(this) -} - -func (this *FloatingPoint) GetF() *float64 { - return this.F -} - -func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { - this := &FloatingPoint{} - this.F = that.GetF() - return this -} - -type CustomMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 - GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 - GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid - GetIds() map[string]github_com_gogo_protobuf_test.Uuid -} - -func (this *CustomMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *CustomMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewCustomMapFromFace(this) -} - -func (this *CustomMap) GetNullable128S() map[string]*github_com_gogo_protobuf_test_custom.Uint128 { - return this.Nullable128S -} - -func (this *CustomMap) GetUint128S() map[string]github_com_gogo_protobuf_test_custom.Uint128 { - return this.Uint128S -} - -func (this *CustomMap) GetNullableIds() map[string]*github_com_gogo_protobuf_test.Uuid { - return this.NullableIds -} - -func (this *CustomMap) GetIds() map[string]github_com_gogo_protobuf_test.Uuid { - return this.Ids -} - -func NewCustomMapFromFace(that CustomMapFace) *CustomMap { - this := &CustomMap{} - this.Nullable128S = that.GetNullable128S() - this.Uint128S = that.GetUint128S() - this.NullableIds = that.GetNullableIds() - this.Ids = that.GetIds() - return this -} - -type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsFromFace(this) -} - -func (this *AllMaps) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMaps) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMaps) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMaps) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMaps) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMaps) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMaps) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMaps) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMaps) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMaps) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMaps) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMaps) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMaps) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMaps) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMaps) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMaps) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMaps) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsFromFace(that AllMapsFace) *AllMaps { - this := &AllMaps{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsOrderedFromFace(this) -} - -func (this *AllMapsOrdered) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMapsOrdered) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMapsOrdered) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMapsOrdered) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMapsOrdered) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMapsOrdered) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMapsOrdered) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMapsOrdered) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMapsOrdered) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMapsOrdered) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMapsOrdered) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMapsOrdered) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMapsOrdered) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMapsOrdered) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMapsOrdered) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMapsOrdered) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMapsOrdered) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { - this := &AllMapsOrdered{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -func (this *FloatingPoint) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&proto2_maps.FloatingPoint{") - if this.F != nil { - s = append(s, "F: "+valueToGoStringMapsproto2(this.F, "float64")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&proto2_maps.CustomMap{") - keysForNullable128S := make([]string, 0, len(this.Nullable128S)) - for k := range this.Nullable128S { - keysForNullable128S = append(keysForNullable128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) - mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForNullable128S { - mapStringForNullable128S += fmt.Sprintf("%#v: %#v,", k, this.Nullable128S[k]) - } - mapStringForNullable128S += "}" - if this.Nullable128S != nil { - s = append(s, "Nullable128S: "+mapStringForNullable128S+",\n") - } - keysForUint128S := make([]string, 0, len(this.Uint128S)) - for k := range this.Uint128S { - keysForUint128S = append(keysForUint128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) - mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForUint128S { - mapStringForUint128S += fmt.Sprintf("%#v: %#v,", k, this.Uint128S[k]) - } - mapStringForUint128S += "}" - if this.Uint128S != nil { - s = append(s, "Uint128S: "+mapStringForUint128S+",\n") - } - keysForNullableIds := make([]string, 0, len(this.NullableIds)) - for k := range this.NullableIds { - keysForNullableIds = append(keysForNullableIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) - mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForNullableIds { - mapStringForNullableIds += fmt.Sprintf("%#v: %#v,", k, this.NullableIds[k]) - } - mapStringForNullableIds += "}" - if this.NullableIds != nil { - s = append(s, "NullableIds: "+mapStringForNullableIds+",\n") - } - keysForIds := make([]string, 0, len(this.Ids)) - for k := range this.Ids { - keysForIds = append(keysForIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) - mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForIds { - mapStringForIds += fmt.Sprintf("%#v: %#v,", k, this.Ids[k]) - } - mapStringForIds += "}" - if this.Ids != nil { - s = append(s, "Ids: "+mapStringForIds+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMaps) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&proto2_maps.AllMaps{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMapsOrdered) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&proto2_maps.AllMapsOrdered{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringMapsproto2(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedFloatingPoint(r randyMapsproto2, easy bool) *FloatingPoint { - this := &FloatingPoint{} - if r.Intn(10) != 0 { - v1 := float64(r.Float64()) - if r.Intn(2) == 0 { - v1 *= -1 - } - this.F = &v1 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 2) - } - return this -} - -func NewPopulatedCustomMap(r randyMapsproto2, easy bool) *CustomMap { - this := &CustomMap{} - if r.Intn(10) != 0 { - v2 := r.Intn(10) - this.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) - for i := 0; i < v2; i++ { - this.Nullable128S[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test_custom.Uint128)(github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) - } - } - if r.Intn(10) != 0 { - v3 := r.Intn(10) - this.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) - for i := 0; i < v3; i++ { - this.Uint128S[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test_custom.Uint128)(*github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)) - } - } - if r.Intn(10) != 0 { - v4 := r.Intn(10) - this.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) - for i := 0; i < v4; i++ { - this.NullableIds[randStringMapsproto2(r)] = (*github_com_gogo_protobuf_test.Uuid)(github_com_gogo_protobuf_test.NewPopulatedUuid(r)) - } - } - if r.Intn(10) != 0 { - v5 := r.Intn(10) - this.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) - for i := 0; i < v5; i++ { - this.Ids[randStringMapsproto2(r)] = (github_com_gogo_protobuf_test.Uuid)(*github_com_gogo_protobuf_test.NewPopulatedUuid(r)) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 5) - } - return this -} - -func NewPopulatedAllMaps(r randyMapsproto2, easy bool) *AllMaps { - this := &AllMaps{} - if r.Intn(10) != 0 { - v6 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v6; i++ { - v7 := randStringMapsproto2(r) - this.StringToDoubleMap[v7] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v7] *= -1 - } - } - } - if r.Intn(10) != 0 { - v8 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v8; i++ { - v9 := randStringMapsproto2(r) - this.StringToFloatMap[v9] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v9] *= -1 - } - } - } - if r.Intn(10) != 0 { - v10 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v10; i++ { - v11 := int32(r.Int31()) - this.Int32Map[v11] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v11] *= -1 - } - } - } - if r.Intn(10) != 0 { - v12 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v12; i++ { - v13 := int64(r.Int63()) - this.Int64Map[v13] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v13] *= -1 - } - } - } - if r.Intn(10) != 0 { - v14 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v14; i++ { - v15 := uint32(r.Uint32()) - this.Uint32Map[v15] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v16 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v16; i++ { - v17 := uint64(uint64(r.Uint32())) - this.Uint64Map[v17] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v18 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v18; i++ { - v19 := int32(r.Int31()) - this.Sint32Map[v19] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v19] *= -1 - } - } - } - if r.Intn(10) != 0 { - v20 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v20; i++ { - v21 := int64(r.Int63()) - this.Sint64Map[v21] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v21] *= -1 - } - } - } - if r.Intn(10) != 0 { - v22 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v22; i++ { - v23 := uint32(r.Uint32()) - this.Fixed32Map[v23] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v24 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v24; i++ { - v25 := int32(r.Int31()) - this.Sfixed32Map[v25] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v25] *= -1 - } - } - } - if r.Intn(10) != 0 { - v26 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v26; i++ { - v27 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v27] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v28 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v28; i++ { - v29 := int64(r.Int63()) - this.Sfixed64Map[v29] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v29] *= -1 - } - } - } - if r.Intn(10) != 0 { - v30 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v30; i++ { - v31 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v31] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v32 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v32; i++ { - this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) - } - } - if r.Intn(10) != 0 { - v33 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v33; i++ { - v34 := r.Intn(100) - v35 := randStringMapsproto2(r) - this.StringToBytesMap[v35] = make([]byte, v34) - for i := 0; i < v34; i++ { - this.StringToBytesMap[v35][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v36; i++ { - this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v37 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v37; i++ { - this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 18) - } - return this -} - -func NewPopulatedAllMapsOrdered(r randyMapsproto2, easy bool) *AllMapsOrdered { - this := &AllMapsOrdered{} - if r.Intn(10) != 0 { - v38 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v38; i++ { - v39 := randStringMapsproto2(r) - this.StringToDoubleMap[v39] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v39] *= -1 - } - } - } - if r.Intn(10) != 0 { - v40 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v40; i++ { - v41 := randStringMapsproto2(r) - this.StringToFloatMap[v41] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v41] *= -1 - } - } - } - if r.Intn(10) != 0 { - v42 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v42; i++ { - v43 := int32(r.Int31()) - this.Int32Map[v43] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v43] *= -1 - } - } - } - if r.Intn(10) != 0 { - v44 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v44; i++ { - v45 := int64(r.Int63()) - this.Int64Map[v45] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v45] *= -1 - } - } - } - if r.Intn(10) != 0 { - v46 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v46; i++ { - v47 := uint32(r.Uint32()) - this.Uint32Map[v47] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v48 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v48; i++ { - v49 := uint64(uint64(r.Uint32())) - this.Uint64Map[v49] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v50 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v50; i++ { - v51 := int32(r.Int31()) - this.Sint32Map[v51] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v51] *= -1 - } - } - } - if r.Intn(10) != 0 { - v52 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v52; i++ { - v53 := int64(r.Int63()) - this.Sint64Map[v53] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v53] *= -1 - } - } - } - if r.Intn(10) != 0 { - v54 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v54; i++ { - v55 := uint32(r.Uint32()) - this.Fixed32Map[v55] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v56 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v56; i++ { - v57 := int32(r.Int31()) - this.Sfixed32Map[v57] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v57] *= -1 - } - } - } - if r.Intn(10) != 0 { - v58 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v58; i++ { - v59 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v59] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v60 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v60; i++ { - v61 := int64(r.Int63()) - this.Sfixed64Map[v61] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v61] *= -1 - } - } - } - if r.Intn(10) != 0 { - v62 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v62; i++ { - v63 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v63] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v64 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v64; i++ { - this.StringMap[randStringMapsproto2(r)] = randStringMapsproto2(r) - } - } - if r.Intn(10) != 0 { - v65 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v65; i++ { - v66 := r.Intn(100) - v67 := randStringMapsproto2(r) - this.StringToBytesMap[v67] = make([]byte, v66) - for i := 0; i < v66; i++ { - this.StringToBytesMap[v67][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v68 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v68; i++ { - this.StringToEnumMap[randStringMapsproto2(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v69 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v69; i++ { - this.StringToMsgMap[randStringMapsproto2(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedMapsproto2(r, 18) - } - return this -} - -type randyMapsproto2 interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneMapsproto2(r randyMapsproto2) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringMapsproto2(r randyMapsproto2) string { - v70 := r.Intn(100) - tmps := make([]rune, v70) - for i := 0; i < v70; i++ { - tmps[i] = randUTF8RuneMapsproto2(r) - } - return string(tmps) -} -func randUnrecognizedMapsproto2(r randyMapsproto2, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldMapsproto2(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldMapsproto2(dAtA []byte, r randyMapsproto2, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - v71 := r.Int63() - if r.Intn(2) == 0 { - v71 *= -1 - } - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(v71)) - case 1: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateMapsproto2(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateMapsproto2(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *FloatingPoint) Size() (n int) { - var l int - _ = l - if m.F != nil { - n += 9 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomMap) Size() (n int) { - var l int - _ = l - if len(m.Nullable128S) > 0 { - for k, v := range m.Nullable128S { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint128S) > 0 { - for k, v := range m.Uint128S { - _ = k - _ = v - l = 0 - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.NullableIds) > 0 { - for k, v := range m.NullableIds { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Ids) > 0 { - for k, v := range m.Ids { - _ = k - _ = v - l = 0 - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllMaps) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if v != nil { - l = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllMapsOrdered) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovMapsproto2(uint64(k)) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozMapsproto2(uint64(k)) + 1 + sozMapsproto2(uint64(v)) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + len(v) + sovMapsproto2(uint64(len(v))) - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if v != nil { - l = 1 + len(v) + sovMapsproto2(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 1 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + 1 + sovMapsproto2(uint64(v)) - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovMapsproto2(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovMapsproto2(uint64(len(k))) + l - n += mapEntrySize + 2 + sovMapsproto2(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovMapsproto2(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozMapsproto2(x uint64) (n int) { - return sovMapsproto2(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *FloatingPoint) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&FloatingPoint{`, - `F:` + valueToStringMapsproto2(this.F) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomMap) String() string { - if this == nil { - return "nil" - } - keysForNullable128S := make([]string, 0, len(this.Nullable128S)) - for k := range this.Nullable128S { - keysForNullable128S = append(keysForNullable128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullable128S) - mapStringForNullable128S := "map[string]*github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForNullable128S { - mapStringForNullable128S += fmt.Sprintf("%v: %v,", k, this.Nullable128S[k]) - } - mapStringForNullable128S += "}" - keysForUint128S := make([]string, 0, len(this.Uint128S)) - for k := range this.Uint128S { - keysForUint128S = append(keysForUint128S, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUint128S) - mapStringForUint128S := "map[string]github_com_gogo_protobuf_test_custom.Uint128{" - for _, k := range keysForUint128S { - mapStringForUint128S += fmt.Sprintf("%v: %v,", k, this.Uint128S[k]) - } - mapStringForUint128S += "}" - keysForNullableIds := make([]string, 0, len(this.NullableIds)) - for k := range this.NullableIds { - keysForNullableIds = append(keysForNullableIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNullableIds) - mapStringForNullableIds := "map[string]*github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForNullableIds { - mapStringForNullableIds += fmt.Sprintf("%v: %v,", k, this.NullableIds[k]) - } - mapStringForNullableIds += "}" - keysForIds := make([]string, 0, len(this.Ids)) - for k := range this.Ids { - keysForIds = append(keysForIds, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForIds) - mapStringForIds := "map[string]github_com_gogo_protobuf_test.Uuid{" - for _, k := range keysForIds { - mapStringForIds += fmt.Sprintf("%v: %v,", k, this.Ids[k]) - } - mapStringForIds += "}" - s := strings.Join([]string{`&CustomMap{`, - `Nullable128S:` + mapStringForNullable128S + `,`, - `Uint128S:` + mapStringForUint128S + `,`, - `NullableIds:` + mapStringForNullableIds + `,`, - `Ids:` + mapStringForIds + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllMaps) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMaps{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllMapsOrdered) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMapsOrdered{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func valueToStringMapsproto2(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *FloatingPoint) 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 ErrIntOverflowMapsproto2Unsafe - } - 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: FloatingPoint: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: FloatingPoint: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field F", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.F = &v - default: - iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomMap) 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 ErrIntOverflowMapsproto2Unsafe - } - 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: CustomMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nullable128S", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Nullable128S == nil { - m.Nullable128S = make(map[string]*github_com_gogo_protobuf_test_custom.Uint128) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Nullable128S[mapkey] = ((*github_com_gogo_protobuf_test_custom.Uint128)(mapvalue)) - } else { - var mapvalue *github_com_gogo_protobuf_test_custom.Uint128 - m.Nullable128S[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint128S", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Uint128S == nil { - m.Uint128S = make(map[string]github_com_gogo_protobuf_test_custom.Uint128) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test_custom.Uint128 - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Uint128S[mapkey] = ((github_com_gogo_protobuf_test_custom.Uint128)(*mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test_custom.Uint128 - m.Uint128S[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableIds", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.NullableIds == nil { - m.NullableIds = make(map[string]*github_com_gogo_protobuf_test.Uuid) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test.Uuid - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.NullableIds[mapkey] = ((*github_com_gogo_protobuf_test.Uuid)(mapvalue)) - } else { - var mapvalue *github_com_gogo_protobuf_test.Uuid - m.NullableIds[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ids", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Ids == nil { - m.Ids = make(map[string]github_com_gogo_protobuf_test.Uuid) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - var mapvalue1 github_com_gogo_protobuf_test.Uuid - var mapvalue = &mapvalue1 - if err := mapvalue.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil { - return err - } - iNdEx = postbytesIndex - m.Ids[mapkey] = ((github_com_gogo_protobuf_test.Uuid)(*mapvalue)) - } else { - var mapvalue github_com_gogo_protobuf_test.Uuid - m.Ids[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllMaps) 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 ErrIntOverflowMapsproto2Unsafe - } - 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: AllMaps: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 17: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToMsgMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllMapsOrdered) 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 ErrIntOverflowMapsproto2Unsafe - } - 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: AllMapsOrdered: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllMapsOrdered: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 17: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToMsgMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMapsproto2Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipMapsproto2Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthMapsproto2Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipMapsproto2Unsafe(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, ErrIntOverflowMapsproto2Unsafe - } - 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, ErrIntOverflowMapsproto2Unsafe - } - 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, ErrIntOverflowMapsproto2Unsafe - } - 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, ErrInvalidLengthMapsproto2Unsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowMapsproto2Unsafe - } - 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 := skipMapsproto2Unsafe(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 ( - ErrInvalidLengthMapsproto2Unsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowMapsproto2Unsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeunmarshaler/mapsproto2.proto", fileDescriptorMapsproto2) } - -var fileDescriptorMapsproto2 = []byte{ - // 1155 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x97, 0xcf, 0x6f, 0xda, 0x66, - 0x18, 0xc7, 0x79, 0x21, 0x04, 0x78, 0xf9, 0xfd, 0x36, 0x9b, 0x10, 0xd2, 0x4c, 0xca, 0x7e, 0x11, - 0xda, 0x41, 0xc2, 0xaa, 0x2a, 0x4a, 0xb7, 0x4e, 0x21, 0x49, 0x47, 0xd4, 0x91, 0x55, 0xb0, 0xee, - 0x97, 0x14, 0x69, 0x26, 0x18, 0x8a, 0x06, 0x98, 0x61, 0xbb, 0x5a, 0x2e, 0x53, 0xff, 0x8c, 0x5d, - 0x77, 0xdb, 0x71, 0xc7, 0x1d, 0x77, 0x8c, 0xb4, 0x4b, 0x8f, 0x55, 0x35, 0x45, 0xc5, 0xbb, 0xf4, - 0xd8, 0x63, 0x8f, 0x93, 0x5f, 0xdb, 0xf0, 0xda, 0x7e, 0x6c, 0xc3, 0x4e, 0x3d, 0xe4, 0x44, 0x5e, - 0xf3, 0x7c, 0x3f, 0xdf, 0xc7, 0xf6, 0xfb, 0x3e, 0x7c, 0x83, 0xb7, 0xce, 0xc4, 0x51, 0x47, 0x94, - 0xaa, 0xca, 0x58, 0xe2, 0x7b, 0x82, 0x32, 0x1e, 0xf1, 0x53, 0xe9, 0x11, 0x3f, 0x14, 0xa6, 0xd5, - 0x11, 0x3f, 0x91, 0x26, 0x53, 0x51, 0x16, 0x6b, 0x15, 0xfa, 0x41, 0xe2, 0xc6, 0x4a, 0xfb, 0x22, - 0xff, 0x51, 0x7f, 0x20, 0x3f, 0x52, 0x3a, 0x95, 0x33, 0x71, 0x54, 0xed, 0x8b, 0x7d, 0xb1, 0x4a, - 0xbf, 0xec, 0x28, 0x3d, 0xba, 0xa2, 0x0b, 0xfa, 0x97, 0xae, 0x2d, 0xbe, 0x83, 0x93, 0xf7, 0x86, - 0x22, 0x2f, 0x0f, 0xc6, 0xfd, 0x07, 0xe2, 0x60, 0x2c, 0x93, 0x04, 0x46, 0xbd, 0x1c, 0xda, 0x44, - 0x25, 0xd4, 0x42, 0xbd, 0xe2, 0xdf, 0x61, 0x1c, 0x3b, 0x50, 0x24, 0x59, 0x1c, 0x35, 0xf9, 0x09, - 0xf9, 0x05, 0x27, 0x4e, 0x94, 0xe1, 0x90, 0xef, 0x0c, 0x85, 0x9d, 0xda, 0xae, 0x94, 0x43, 0x9b, - 0xa1, 0x52, 0xbc, 0x56, 0xaa, 0x30, 0xfe, 0x95, 0x79, 0x75, 0x85, 0x2d, 0x3d, 0x1a, 0xcb, 0xd3, - 0xf3, 0xfa, 0xf6, 0xf3, 0xcb, 0xc2, 0x4d, 0xd7, 0xfe, 0x64, 0x41, 0x92, 0xab, 0x67, 0x54, 0x5e, - 0x79, 0x38, 0x18, 0xcb, 0x3b, 0xb5, 0xdd, 0x96, 0xc5, 0x8f, 0x3c, 0xc6, 0x51, 0xe3, 0x0b, 0x29, - 0x17, 0xa4, 0xde, 0xef, 0xb9, 0x78, 0x9b, 0x65, 0xba, 0xef, 0xad, 0x8b, 0xcb, 0x42, 0x60, 0x65, - 0xef, 0xb9, 0x17, 0xf9, 0x09, 0xc7, 0xcd, 0x3e, 0x8e, 0xbb, 0x52, 0x2e, 0x44, 0xad, 0x3f, 0xf4, - 0xb9, 0xed, 0xe3, 0xae, 0xe1, 0xfe, 0xc1, 0xf3, 0xcb, 0x42, 0xd1, 0xd3, 0xb9, 0xf2, 0x50, 0x19, - 0x74, 0x5b, 0xac, 0x07, 0x39, 0xc5, 0x21, 0xcd, 0x6a, 0x8d, 0x5a, 0x15, 0x5c, 0xac, 0xe6, 0x16, - 0x65, 0xe3, 0x06, 0x97, 0xb1, 0xd1, 0xb8, 0xf9, 0xcf, 0x70, 0xd6, 0xf1, 0x7a, 0x48, 0x06, 0x87, - 0x7e, 0x14, 0xce, 0xe9, 0xcb, 0x8f, 0xb5, 0xb4, 0x3f, 0xc9, 0x06, 0x0e, 0x3f, 0xe6, 0x87, 0x8a, - 0x90, 0x0b, 0x6e, 0xa2, 0x52, 0xa2, 0xa5, 0x2f, 0xf6, 0x82, 0xbb, 0x28, 0x7f, 0x07, 0x27, 0x2d, - 0xcf, 0x78, 0x25, 0xf1, 0x5d, 0x9c, 0xb1, 0x3f, 0xa5, 0x95, 0xf4, 0xb7, 0x71, 0xf4, 0xff, 0xe8, - 0x8a, 0xcf, 0x08, 0x8e, 0xec, 0x0f, 0x87, 0x4d, 0x7e, 0x22, 0x91, 0xef, 0x70, 0xb6, 0x2d, 0x4f, - 0x07, 0xe3, 0xfe, 0x57, 0xe2, 0xa1, 0xa8, 0x74, 0x86, 0x42, 0x93, 0x9f, 0x18, 0x1b, 0xfa, 0x86, - 0xe5, 0x71, 0x1b, 0x82, 0x8a, 0xa3, 0x9a, 0xfa, 0xb7, 0x9c, 0x14, 0xf2, 0x35, 0xce, 0x98, 0x17, - 0xe9, 0xd9, 0xd2, 0xc8, 0xfa, 0x76, 0x2d, 0x7b, 0x92, 0xcd, 0x62, 0x1d, 0xec, 0x60, 0x90, 0xbb, - 0x38, 0x7a, 0x3c, 0x96, 0x3f, 0xae, 0x69, 0x3c, 0x7d, 0x0f, 0x16, 0x41, 0x9e, 0x59, 0xa4, 0x73, - 0xe6, 0x1a, 0x43, 0x7f, 0xfb, 0x96, 0xa6, 0x5f, 0xf3, 0xd6, 0xd3, 0xa2, 0x85, 0x9e, 0x2e, 0xc9, - 0x3e, 0x8e, 0x69, 0xef, 0x5c, 0x6f, 0x20, 0x4c, 0x01, 0xef, 0x82, 0x80, 0x79, 0x95, 0x4e, 0x58, - 0xa8, 0x4c, 0x84, 0xde, 0xc3, 0xba, 0x0f, 0x82, 0x69, 0x62, 0xa1, 0xd2, 0x10, 0xed, 0x79, 0x17, - 0x11, 0x0f, 0x44, 0xdb, 0xd6, 0x45, 0x9b, 0xed, 0xa2, 0x3d, 0xef, 0x22, 0xea, 0x83, 0x60, 0xbb, - 0x98, 0xaf, 0xc9, 0x21, 0xc6, 0xf7, 0x06, 0x3f, 0x0b, 0x5d, 0xbd, 0x8d, 0x18, 0x30, 0x8c, 0x4c, - 0xc6, 0xa2, 0x4c, 0x87, 0x30, 0x3a, 0xf2, 0x39, 0x8e, 0xb7, 0x7b, 0x0b, 0x0c, 0xa6, 0x98, 0xf7, - 0xe1, 0x56, 0x7a, 0x36, 0x0e, 0xab, 0x9c, 0xb7, 0xa3, 0xdf, 0x52, 0xdc, 0xaf, 0x1d, 0xe6, 0x9e, - 0x18, 0xdd, 0xa2, 0x1d, 0x1d, 0x93, 0xf0, 0x6d, 0x87, 0xe1, 0xb0, 0x4a, 0x72, 0x07, 0x47, 0xea, - 0xa2, 0xa8, 0x55, 0xe6, 0x92, 0x14, 0x72, 0x1d, 0x84, 0x18, 0x35, 0x3a, 0xc0, 0x54, 0xd0, 0xb7, - 0x43, 0xb7, 0xbe, 0x26, 0x4f, 0x79, 0xbd, 0x1d, 0xb3, 0xca, 0x7c, 0x3b, 0xe6, 0x9a, 0x3d, 0x81, - 0xf5, 0x73, 0x59, 0x90, 0x34, 0x52, 0x7a, 0x89, 0x13, 0x68, 0x16, 0xdb, 0x4e, 0xa0, 0x79, 0x99, - 0xb4, 0x71, 0xda, 0xbc, 0x76, 0x34, 0x56, 0xb4, 0x19, 0x9c, 0xcb, 0x50, 0xec, 0x96, 0x27, 0xd6, - 0xa8, 0xd5, 0xa9, 0x76, 0x02, 0x79, 0x80, 0x53, 0xe6, 0xa5, 0xa6, 0x44, 0x6f, 0x3a, 0x0b, 0xfc, - 0xae, 0xda, 0x99, 0x7a, 0xa9, 0x8e, 0xb4, 0xe9, 0xf3, 0x87, 0xf8, 0x6d, 0x78, 0x5a, 0xf9, 0x4d, - 0x4b, 0xc4, 0x4e, 0xd9, 0x03, 0xfc, 0x16, 0x38, 0x99, 0xfc, 0x20, 0x41, 0xdb, 0xef, 0x84, 0x65, - 0x1c, 0xb1, 0xe2, 0x30, 0x20, 0x0e, 0x3b, 0xc5, 0x8b, 0x4d, 0xc6, 0x8a, 0x43, 0x80, 0x38, 0xc4, - 0x8a, 0x3f, 0xc1, 0x29, 0xeb, 0x1c, 0x62, 0xd5, 0x49, 0x40, 0x9d, 0x04, 0xd4, 0xb0, 0xf7, 0x1a, - 0xa0, 0x5e, 0xb3, 0xa9, 0xdb, 0xae, 0xde, 0x59, 0x40, 0x9d, 0x05, 0xd4, 0xb0, 0x37, 0x01, 0xd4, - 0x84, 0x55, 0x7f, 0x8a, 0xd3, 0xb6, 0x91, 0xc3, 0xca, 0x23, 0x80, 0x3c, 0x62, 0xfb, 0x6d, 0xb6, - 0x8f, 0x1a, 0x56, 0x9f, 0x06, 0xf4, 0x69, 0xc8, 0x1e, 0xee, 0x7e, 0x1d, 0x90, 0xaf, 0x83, 0xf6, - 0xb0, 0x3e, 0x03, 0xe8, 0x33, 0xac, 0x7e, 0x0f, 0x27, 0xd8, 0xa9, 0xc2, 0x6a, 0xa3, 0x80, 0x36, - 0x6a, 0x7f, 0xee, 0x96, 0x91, 0xe2, 0xb7, 0xd3, 0x63, 0x2e, 0xc7, 0xc5, 0x32, 0x46, 0x56, 0x4a, - 0x36, 0xdf, 0xe2, 0x0d, 0x68, 0x68, 0x00, 0x8c, 0x32, 0xcb, 0x48, 0xd5, 0x36, 0x2c, 0xc3, 0x82, - 0xea, 0x94, 0x11, 0x4b, 0x3e, 0xc5, 0xd7, 0x80, 0xd1, 0x01, 0x80, 0xb7, 0x59, 0x70, 0xbc, 0x96, - 0xb7, 0x80, 0x2d, 0xff, 0x2b, 0xb0, 0xd1, 0xea, 0x9f, 0x6b, 0x38, 0x65, 0x8c, 0xa8, 0x2f, 0xa7, - 0x5d, 0x61, 0x2a, 0x74, 0xc9, 0x0f, 0xee, 0x09, 0xab, 0x06, 0x8d, 0x36, 0x43, 0xb7, 0x42, 0xd0, - 0x3a, 0x75, 0x0d, 0x5a, 0x3b, 0xcb, 0x18, 0xf8, 0xe5, 0xad, 0x23, 0x47, 0xde, 0xda, 0xf2, 0xc2, - 0xba, 0xc5, 0xae, 0x23, 0x47, 0xec, 0xf2, 0xc3, 0x80, 0xe9, 0xab, 0xe1, 0x4c, 0x5f, 0x65, 0x2f, - 0x8e, 0x7b, 0x08, 0x6b, 0x38, 0x43, 0x98, 0x2f, 0x09, 0xce, 0x62, 0x0d, 0x67, 0x16, 0xf3, 0x24, - 0xb9, 0x47, 0xb2, 0x86, 0x33, 0x92, 0xf9, 0x92, 0xe0, 0x64, 0x76, 0x1f, 0x48, 0x66, 0x37, 0xbc, - 0x50, 0x5e, 0x01, 0xed, 0x04, 0x0a, 0x68, 0x37, 0x3d, 0x1b, 0xf3, 0xcc, 0x69, 0xf7, 0x81, 0x9c, - 0xe6, 0xdf, 0x9c, 0x4b, 0x5c, 0x3b, 0x81, 0xe2, 0xda, 0x12, 0xcd, 0xb9, 0xa5, 0xb6, 0xba, 0x3d, - 0xb5, 0x95, 0xbc, 0x58, 0x70, 0x78, 0x6b, 0x38, 0xc3, 0x5b, 0xd9, 0xff, 0x2c, 0x42, 0x19, 0xee, - 0xd4, 0x35, 0xc3, 0x2d, 0x75, 0xb8, 0xfd, 0xa2, 0xdc, 0xf7, 0x6e, 0x51, 0x6e, 0x7b, 0x19, 0xba, - 0x77, 0xa2, 0xfb, 0xc6, 0x25, 0xd1, 0x55, 0x97, 0x41, 0x5f, 0x05, 0xbb, 0xab, 0x60, 0x77, 0x15, - 0xec, 0xae, 0x82, 0xdd, 0x9b, 0x11, 0xec, 0xf6, 0xd6, 0x7e, 0xfd, 0xad, 0x80, 0xca, 0xd7, 0x71, - 0xc4, 0xb0, 0x26, 0xeb, 0x38, 0xd8, 0xdc, 0xcf, 0x04, 0xe8, 0x67, 0x3d, 0x83, 0xe8, 0xe7, 0x41, - 0x26, 0x58, 0xff, 0xe2, 0x62, 0xc6, 0x05, 0x9e, 0xce, 0xb8, 0xc0, 0xb3, 0x19, 0x17, 0x78, 0x31, - 0xe3, 0xd0, 0xcb, 0x19, 0x87, 0x5e, 0xcd, 0x38, 0xf4, 0x7a, 0xc6, 0xa1, 0x27, 0x2a, 0x87, 0x7e, - 0x57, 0x39, 0xf4, 0x87, 0xca, 0xa1, 0x3f, 0x55, 0x0e, 0xfd, 0xa5, 0x72, 0xe8, 0x42, 0xe5, 0x02, - 0x4f, 0x55, 0x2e, 0xf0, 0x42, 0xe5, 0xd0, 0x4b, 0x95, 0x0b, 0xbc, 0x52, 0x39, 0xf4, 0x5a, 0xe5, - 0x02, 0x4f, 0xfe, 0xe5, 0xd0, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x11, 0x15, 0xb8, 0xae, 0xff, - 0x16, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.proto b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.proto deleted file mode 100644 index b7e520262..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2.proto +++ /dev/null @@ -1,124 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; - -package proto2.maps; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = false; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message FloatingPoint { - optional double f = 1; -} - -message CustomMap { - map Nullable128s = 1 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128"]; - map Uint128s = 2 [(gogoproto.customtype)="github.com/gogo/protobuf/test/custom.Uint128", (gogoproto.nullable)=false]; - map NullableIds = 3 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid"]; - map Ids = 4 [(gogoproto.customtype)="github.com/gogo/protobuf/test.Uuid", (gogoproto.nullable)=false]; -} - -enum MapEnum { - MA = 0; - MB = 1; - MC = 2; -} - -message AllMaps { - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} - -message AllMapsOrdered { - option (gogoproto.stable_marshaler) = true; - - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2_test.go deleted file mode 100644 index 488bc86bf..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2_test.go +++ /dev/null @@ -1,104 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2015, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package proto2_maps - -import ( - "testing" - - "github.com/gogo/protobuf/proto" -) - -func TestNilMaps(t *testing.T) { - m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToMsgMap["a"]; !ok { - t.Error("element not in map") - } else if v != nil { - t.Errorf("element should be nil, but its %v", v) - } -} - -func TestNilMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["a"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} - -func TestEmptyMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["b"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} diff --git a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2pb_test.go b/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2pb_test.go deleted file mode 100644 index 181f75d51..000000000 --- a/vendor/github.com/gogo/protobuf/test/mapsproto2/combos/unsafeunmarshaler/mapsproto2pb_test.go +++ /dev/null @@ -1,912 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/mapsproto2.proto -// DO NOT EDIT! - -/* -Package proto2_maps is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeunmarshaler/mapsproto2.proto - -It has these top-level messages: - FloatingPoint - CustomMap - AllMaps - AllMapsOrdered -*/ -package proto2_maps - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestFloatingPointProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &FloatingPoint{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkCustomMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedCustomMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkCustomMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &CustomMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMaps{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMapsOrdered{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsOrderedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestFloatingPointProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestFloatingPointProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapsproto2Description(t *testing.T) { - Mapsproto2Description() -} -func TestFloatingPointVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsOrderedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestCustomMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestFloatingPointSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestCustomMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkCustomMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*CustomMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedCustomMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/.gitignore b/vendor/github.com/gogo/protobuf/test/mixbench/.gitignore new file mode 100644 index 000000000..95341f35b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mixbench/.gitignore @@ -0,0 +1 @@ +mixbench \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/marshal.txt b/vendor/github.com/gogo/protobuf/test/mixbench/marshal.txt index b35291ce9..58efdca46 100644 --- a/vendor/github.com/gogo/protobuf/test/mixbench/marshal.txt +++ b/vendor/github.com/gogo/protobuf/test/mixbench/marshal.txt @@ -1,49 +1,73 @@ +goos: darwin +goarch: amd64 +pkg: github.com/gogo/protobuf/test +BenchmarkNidOptNativeProtoMarshal-8 2000000 831 ns/op 276.72 MB/s +BenchmarkNinOptNativeProtoMarshal-8 2000000 931 ns/op 224.49 MB/s +BenchmarkNidRepNativeProtoMarshal-8 500000 2341 ns/op 349.71 MB/s +BenchmarkNinRepNativeProtoMarshal-8 500000 2500 ns/op 327.56 MB/s +BenchmarkNidRepPackedNativeProtoMarshal-8 500000 3542 ns/op 105.30 MB/s +BenchmarkNinRepPackedNativeProtoMarshal-8 500000 3571 ns/op 104.44 MB/s +BenchmarkNidOptStructProtoMarshal-8 500000 2386 ns/op 354.44 MB/s +BenchmarkNinOptStructProtoMarshal-8 500000 2361 ns/op 324.30 MB/s +BenchmarkNidRepStructProtoMarshal-8 200000 5585 ns/op 317.40 MB/s +BenchmarkNinRepStructProtoMarshal-8 200000 5608 ns/op 316.16 MB/s +BenchmarkNidEmbeddedStructProtoMarshal-8 1000000 1475 ns/op 327.39 MB/s +BenchmarkNinEmbeddedStructProtoMarshal-8 1000000 1465 ns/op 312.60 MB/s +BenchmarkNidNestedStructProtoMarshal-8 100000 14816 ns/op 278.74 MB/s +BenchmarkNinNestedStructProtoMarshal-8 100000 13744 ns/op 283.03 MB/s +BenchmarkNidOptCustomProtoMarshal-8 3000000 539 ns/op 131.63 MB/s +BenchmarkCustomDashProtoMarshal-8 3000000 474 ns/op 172.86 MB/s +BenchmarkNinOptCustomProtoMarshal-8 3000000 578 ns/op 115.81 MB/s +BenchmarkNidRepCustomProtoMarshal-8 1000000 1700 ns/op 107.04 MB/s +BenchmarkNinRepCustomProtoMarshal-8 1000000 1715 ns/op 106.07 MB/s +BenchmarkNinOptNativeUnionProtoMarshal-8 5000000 346 ns/op 46.17 MB/s +BenchmarkNinOptStructUnionProtoMarshal-8 3000000 518 ns/op 121.60 MB/s +BenchmarkNinEmbeddedStructUnionProtoMarshal-8 2000000 785 ns/op 189.70 MB/s +BenchmarkNinNestedStructUnionProtoMarshal-8 2000000 657 ns/op 118.58 MB/s +BenchmarkTreeProtoMarshal-8 3000000 584 ns/op 176.32 MB/s +BenchmarkOrBranchProtoMarshal-8 2000000 997 ns/op 245.52 MB/s +BenchmarkAndBranchProtoMarshal-8 2000000 982 ns/op 249.36 MB/s +BenchmarkLeafProtoMarshal-8 3000000 453 ns/op 213.86 MB/s +BenchmarkDeepTreeProtoMarshal-8 2000000 822 ns/op 176.28 MB/s +BenchmarkADeepBranchProtoMarshal-8 2000000 931 ns/op 196.52 MB/s +BenchmarkAndDeepBranchProtoMarshal-8 1000000 1515 ns/op 219.09 MB/s +BenchmarkDeepLeafProtoMarshal-8 2000000 696 ns/op 200.89 MB/s +BenchmarkNilProtoMarshal-8 10000000 219 ns/op 159.54 MB/s +BenchmarkNidOptEnumProtoMarshal-8 5000000 275 ns/op 134.49 MB/s +BenchmarkNinOptEnumProtoMarshal-8 5000000 314 ns/op 130.50 MB/s +BenchmarkNidRepEnumProtoMarshal-8 3000000 516 ns/op 114.31 MB/s +BenchmarkNinRepEnumProtoMarshal-8 3000000 516 ns/op 114.21 MB/s +BenchmarkNinOptEnumDefaultProtoMarshal-8 5000000 308 ns/op 132.80 MB/s +BenchmarkAnotherNinOptEnumProtoMarshal-8 5000000 311 ns/op 131.65 MB/s +BenchmarkAnotherNinOptEnumDefaultProtoMarshal-8 5000000 312 ns/op 131.11 MB/s +BenchmarkTimerProtoMarshal-8 3000000 503 ns/op 208.34 MB/s +BenchmarkMyExtendableProtoMarshal-8 2000000 689 ns/op 117.49 MB/s +BenchmarkOtherExtenableProtoMarshal-8 1000000 1356 ns/op 116.48 MB/s +BenchmarkNestedDefinitionProtoMarshal-8 2000000 919 ns/op 252.30 MB/s +BenchmarkNestedDefinition_NestedMessageProtoMarshal-8 3000000 566 ns/op 210.03 MB/s +BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal-8 5000000 395 ns/op 207.58 MB/s +BenchmarkNestedScopeProtoMarshal-8 2000000 840 ns/op 265.32 MB/s +BenchmarkNinOptNativeDefaultProtoMarshal-8 2000000 932 ns/op 224.11 MB/s +BenchmarkCustomContainerProtoMarshal-8 2000000 680 ns/op 160.07 MB/s +BenchmarkCustomNameNidOptNativeProtoMarshal-8 2000000 844 ns/op 272.51 MB/s +BenchmarkCustomNameNinOptNativeProtoMarshal-8 2000000 915 ns/op 228.30 MB/s +BenchmarkCustomNameNinRepNativeProtoMarshal-8 500000 2346 ns/op 348.99 MB/s +BenchmarkCustomNameNinStructProtoMarshal-8 500000 3010 ns/op 318.50 MB/s +BenchmarkCustomNameCustomTypeProtoMarshal-8 1000000 2003 ns/op 106.79 MB/s +BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal-8 2000000 757 ns/op 196.79 MB/s +BenchmarkCustomNameEnumProtoMarshal-8 5000000 375 ns/op 119.68 MB/s +BenchmarkNoExtensionsMapProtoMarshal-8 3000000 423 ns/op 191.12 MB/s +BenchmarkUnrecognizedProtoMarshal-8 5000000 279 ns/op 160.80 MB/s +BenchmarkUnrecognizedWithInnerProtoMarshal-8 3000000 582 ns/op 161.34 MB/s +BenchmarkUnrecognizedWithInner_InnerProtoMarshal-8 10000000 209 ns/op 23.87 MB/s +BenchmarkUnrecognizedWithEmbedProtoMarshal-8 3000000 497 ns/op 178.98 MB/s +BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal-8 10000000 216 ns/op 23.12 MB/s +BenchmarkNodeProtoMarshal-8 3000000 436 ns/op 231.46 MB/s +BenchmarkNonByteCustomTypeProtoMarshal-8 2000000 843 ns/op 93.69 MB/s +BenchmarkNidOptNonByteCustomTypeProtoMarshal-8 2000000 851 ns/op 97.47 MB/s +BenchmarkNinOptNonByteCustomTypeProtoMarshal-8 2000000 857 ns/op 92.15 MB/s +BenchmarkNidRepNonByteCustomTypeProtoMarshal-8 500000 2748 ns/op 83.67 MB/s +BenchmarkNinRepNonByteCustomTypeProtoMarshal-8 500000 2750 ns/op 83.62 MB/s +BenchmarkProtoTypeProtoMarshal-8 5000000 395 ns/op 207.07 MB/s PASS -BenchmarkNidOptNativeProtoMarshal-4 1000000 1912 ns/op 194.48 MB/s -BenchmarkNinOptNativeProtoMarshal-4 1000000 2207 ns/op 154.04 MB/s -BenchmarkNidRepNativeProtoMarshal-4 50000 36321 ns/op 195.12 MB/s -BenchmarkNinRepNativeProtoMarshal-4 50000 36979 ns/op 191.65 MB/s -BenchmarkNidRepPackedNativeProtoMarshal-4 50000 29607 ns/op 115.41 MB/s -BenchmarkNinRepPackedNativeProtoMarshal-4 50000 29781 ns/op 114.73 MB/s -BenchmarkNidOptStructProtoMarshal-4 500000 6986 ns/op 201.40 MB/s -BenchmarkNinOptStructProtoMarshal-4 500000 7044 ns/op 180.14 MB/s -BenchmarkNidRepStructProtoMarshal-4 50000 40141 ns/op 219.87 MB/s -BenchmarkNinRepStructProtoMarshal-4 50000 40930 ns/op 215.63 MB/s -BenchmarkNidEmbeddedStructProtoMarshal-4 500000 4595 ns/op 163.62 MB/s -BenchmarkNinEmbeddedStructProtoMarshal-4 500000 4502 ns/op 158.37 MB/s -BenchmarkNidNestedStructProtoMarshal-4 10000 171850 ns/op 215.28 MB/s -BenchmarkNinNestedStructProtoMarshal-4 10000 150174 ns/op 246.19 MB/s -BenchmarkNidOptCustomProtoMarshal-4 1000000 1867 ns/op 38.02 MB/s -BenchmarkNinOptCustomProtoMarshal-4 1000000 1799 ns/op 37.24 MB/s -BenchmarkNidRepCustomProtoMarshal-4 500000 4120 ns/op 43.93 MB/s -BenchmarkNinRepCustomProtoMarshal-4 500000 4059 ns/op 44.58 MB/s -BenchmarkNinOptNativeUnionProtoMarshal-4 1000000 1316 ns/op 23.54 MB/s -BenchmarkNinOptStructUnionProtoMarshal-4 1000000 1945 ns/op 57.06 MB/s -BenchmarkNinEmbeddedStructUnionProtoMarshal-4 1000000 2861 ns/op 84.22 MB/s -BenchmarkNinNestedStructUnionProtoMarshal-4 1000000 2490 ns/op 52.60 MB/s -BenchmarkTreeProtoMarshal-4 1000000 2293 ns/op 109.89 MB/s -BenchmarkOrBranchProtoMarshal-4 500000 4401 ns/op 124.74 MB/s -BenchmarkAndBranchProtoMarshal-4 500000 4394 ns/op 124.93 MB/s -BenchmarkLeafProtoMarshal-4 1000000 1696 ns/op 142.68 MB/s -BenchmarkDeepTreeProtoMarshal-4 500000 3740 ns/op 79.40 MB/s -BenchmarkADeepBranchProtoMarshal-4 500000 4677 ns/op 71.41 MB/s -BenchmarkAndDeepBranchProtoMarshal-4 500000 6597 ns/op 96.25 MB/s -BenchmarkDeepLeafProtoMarshal-4 500000 3179 ns/op 91.21 MB/s -BenchmarkNilProtoMarshal-4 1000000 1326 ns/op 26.39 MB/s -BenchmarkNidOptEnumProtoMarshal-4 1000000 1360 ns/op 27.20 MB/s -BenchmarkNinOptEnumProtoMarshal-4 1000000 1360 ns/op 26.46 MB/s -BenchmarkNidRepEnumProtoMarshal-4 1000000 1314 ns/op 32.72 MB/s -BenchmarkNinRepEnumProtoMarshal-4 1000000 1311 ns/op 32.78 MB/s -BenchmarkNinOptEnumDefaultProtoMarshal-4 1000000 1349 ns/op 26.67 MB/s -BenchmarkAnotherNinOptEnumProtoMarshal-4 1000000 1369 ns/op 26.29 MB/s -BenchmarkAnotherNinOptEnumDefaultProtoMarshal-4 1000000 1341 ns/op 26.84 MB/s -BenchmarkTimerProtoMarshal-4 1000000 1604 ns/op 65.45 MB/s -BenchmarkMyExtendableProtoMarshal-4 1000000 1545 ns/op 51.75 MB/s -BenchmarkOtherExtenableProtoMarshal-4 1000000 2704 ns/op 58.04 MB/s -BenchmarkNestedDefinitionProtoMarshal-4 500000 4177 ns/op 108.92 MB/s -BenchmarkNestedDefinition_NestedMessageProtoMarshal-4 1000000 2473 ns/op 95.43 MB/s -BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal-4 1000000 1616 ns/op 131.14 MB/s -BenchmarkNestedScopeProtoMarshal-4 500000 4058 ns/op 110.14 MB/s -BenchmarkNinOptNativeDefaultProtoMarshal-4 500000 2863 ns/op 118.72 MB/s -BenchmarkCustomContainerProtoMarshal-4 1000000 2289 ns/op 47.17 MB/s -ok github.com/gogo/protobuf/test/mixbench/testdata 152.674s +ok github.com/gogo/protobuf/test 159.241s diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/marshaler.txt b/vendor/github.com/gogo/protobuf/test/mixbench/marshaler.txt index 08a35975d..e9674c43e 100644 --- a/vendor/github.com/gogo/protobuf/test/mixbench/marshaler.txt +++ b/vendor/github.com/gogo/protobuf/test/mixbench/marshaler.txt @@ -1,49 +1,73 @@ +goos: darwin +goarch: amd64 +pkg: github.com/gogo/protobuf/test/combos/both +BenchmarkNidOptNativeProtoMarshal-8 5000000 240 ns/op 955.07 MB/s +BenchmarkNinOptNativeProtoMarshal-8 5000000 277 ns/op 752.54 MB/s +BenchmarkNidRepNativeProtoMarshal-8 1000000 1074 ns/op 762.27 MB/s +BenchmarkNinRepNativeProtoMarshal-8 1000000 1065 ns/op 768.51 MB/s +BenchmarkNidRepPackedNativeProtoMarshal-8 1000000 1033 ns/op 361.05 MB/s +BenchmarkNinRepPackedNativeProtoMarshal-8 1000000 1018 ns/op 366.08 MB/s +BenchmarkNidOptStructProtoMarshal-8 1000000 1024 ns/op 825.83 MB/s +BenchmarkNinOptStructProtoMarshal-8 2000000 974 ns/op 785.66 MB/s +BenchmarkNidRepStructProtoMarshal-8 500000 2593 ns/op 683.64 MB/s +BenchmarkNinRepStructProtoMarshal-8 500000 2443 ns/op 725.73 MB/s +BenchmarkNidEmbeddedStructProtoMarshal-8 3000000 582 ns/op 829.86 MB/s +BenchmarkNinEmbeddedStructProtoMarshal-8 3000000 557 ns/op 821.40 MB/s +BenchmarkNidNestedStructProtoMarshal-8 200000 7862 ns/op 525.28 MB/s +BenchmarkNinNestedStructProtoMarshal-8 200000 6228 ns/op 624.58 MB/s +BenchmarkNidOptCustomProtoMarshal-8 20000000 95.1 ns/op 746.84 MB/s +BenchmarkCustomDashProtoMarshal-8 20000000 92.5 ns/op 886.08 MB/s +BenchmarkNinOptCustomProtoMarshal-8 20000000 96.2 ns/op 696.51 MB/s +BenchmarkNidRepCustomProtoMarshal-8 5000000 258 ns/op 703.59 MB/s +BenchmarkNinRepCustomProtoMarshal-8 5000000 267 ns/op 679.91 MB/s +BenchmarkNinOptNativeUnionProtoMarshal-8 20000000 68.8 ns/op 232.44 MB/s +BenchmarkNinOptStructUnionProtoMarshal-8 10000000 137 ns/op 457.92 MB/s +BenchmarkNinEmbeddedStructUnionProtoMarshal-8 5000000 259 ns/op 573.18 MB/s +BenchmarkNinNestedStructUnionProtoMarshal-8 10000000 212 ns/op 366.72 MB/s +BenchmarkTreeProtoMarshal-8 10000000 154 ns/op 666.39 MB/s +BenchmarkOrBranchProtoMarshal-8 5000000 353 ns/op 692.18 MB/s +BenchmarkAndBranchProtoMarshal-8 5000000 348 ns/op 703.45 MB/s +BenchmarkLeafProtoMarshal-8 20000000 118 ns/op 820.16 MB/s +BenchmarkDeepTreeProtoMarshal-8 5000000 251 ns/op 576.84 MB/s +BenchmarkADeepBranchProtoMarshal-8 5000000 308 ns/op 594.07 MB/s +BenchmarkAndDeepBranchProtoMarshal-8 2000000 604 ns/op 549.21 MB/s +BenchmarkDeepLeafProtoMarshal-8 10000000 213 ns/op 654.76 MB/s +BenchmarkNilProtoMarshal-8 30000000 50.1 ns/op 698.93 MB/s +BenchmarkNidOptEnumProtoMarshal-8 20000000 61.7 ns/op 599.27 MB/s +BenchmarkNinOptEnumProtoMarshal-8 20000000 77.8 ns/op 527.05 MB/s +BenchmarkNidRepEnumProtoMarshal-8 10000000 186 ns/op 316.64 MB/s +BenchmarkNinRepEnumProtoMarshal-8 10000000 183 ns/op 321.59 MB/s +BenchmarkNinOptEnumDefaultProtoMarshal-8 20000000 77.9 ns/op 526.44 MB/s +BenchmarkAnotherNinOptEnumProtoMarshal-8 20000000 78.9 ns/op 519.95 MB/s +BenchmarkAnotherNinOptEnumDefaultProtoMarshal-8 20000000 78.6 ns/op 521.58 MB/s +BenchmarkTimerProtoMarshal-8 20000000 103 ns/op 1011.39 MB/s +BenchmarkMyExtendableProtoMarshal-8 3000000 515 ns/op 157.02 MB/s +BenchmarkOtherExtenableProtoMarshal-8 2000000 1000 ns/op 157.91 MB/s +BenchmarkNestedDefinitionProtoMarshal-8 5000000 285 ns/op 811.76 MB/s +BenchmarkNestedDefinition_NestedMessageProtoMarshal-8 10000000 142 ns/op 837.36 MB/s +BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal-8 20000000 93.3 ns/op 878.69 MB/s +BenchmarkNestedScopeProtoMarshal-8 5000000 260 ns/op 854.95 MB/s +BenchmarkNinOptNativeDefaultProtoMarshal-8 5000000 277 ns/op 752.14 MB/s +BenchmarkCustomContainerProtoMarshal-8 10000000 141 ns/op 772.49 MB/s +BenchmarkCustomNameNidOptNativeProtoMarshal-8 5000000 242 ns/op 947.27 MB/s +BenchmarkCustomNameNinOptNativeProtoMarshal-8 5000000 276 ns/op 754.67 MB/s +BenchmarkCustomNameNinRepNativeProtoMarshal-8 1000000 1043 ns/op 785.18 MB/s +BenchmarkCustomNameNinStructProtoMarshal-8 1000000 1294 ns/op 740.75 MB/s +BenchmarkCustomNameCustomTypeProtoMarshal-8 5000000 298 ns/op 715.82 MB/s +BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal-8 5000000 255 ns/op 583.23 MB/s +BenchmarkCustomNameEnumProtoMarshal-8 20000000 102 ns/op 441.00 MB/s +BenchmarkNoExtensionsMapProtoMarshal-8 20000000 118 ns/op 684.15 MB/s +BenchmarkUnrecognizedProtoMarshal-8 20000000 66.4 ns/op 677.96 MB/s +BenchmarkUnrecognizedWithInnerProtoMarshal-8 10000000 168 ns/op 557.06 MB/s +BenchmarkUnrecognizedWithInner_InnerProtoMarshal-8 30000000 43.4 ns/op 115.08 MB/s +BenchmarkUnrecognizedWithEmbedProtoMarshal-8 10000000 126 ns/op 704.09 MB/s +BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal-8 30000000 43.7 ns/op 114.32 MB/s +BenchmarkNodeProtoMarshal-8 10000000 121 ns/op 833.02 MB/s +BenchmarkNonByteCustomTypeProtoMarshal-8 10000000 123 ns/op 641.79 MB/s +BenchmarkNidOptNonByteCustomTypeProtoMarshal-8 10000000 130 ns/op 633.95 MB/s +BenchmarkNinOptNonByteCustomTypeProtoMarshal-8 10000000 124 ns/op 636.74 MB/s +BenchmarkNidRepNonByteCustomTypeProtoMarshal-8 5000000 387 ns/op 592.85 MB/s +BenchmarkNinRepNonByteCustomTypeProtoMarshal-8 5000000 390 ns/op 589.05 MB/s +BenchmarkProtoTypeProtoMarshal-8 20000000 94.1 ns/op 871.54 MB/s PASS -BenchmarkNidOptNativeProtoMarshal-4 5000000 558 ns/op 665.90 MB/s -BenchmarkNinOptNativeProtoMarshal-4 5000000 632 ns/op 537.89 MB/s -BenchmarkNidRepNativeProtoMarshal-4 200000 9070 ns/op 781.29 MB/s -BenchmarkNinRepNativeProtoMarshal-4 200000 8943 ns/op 792.42 MB/s -BenchmarkNidRepPackedNativeProtoMarshal-4 200000 8142 ns/op 419.65 MB/s -BenchmarkNinRepPackedNativeProtoMarshal-4 200000 8114 ns/op 421.11 MB/s -BenchmarkNidOptStructProtoMarshal-4 1000000 2018 ns/op 697.03 MB/s -BenchmarkNinOptStructProtoMarshal-4 1000000 1919 ns/op 661.19 MB/s -BenchmarkNidRepStructProtoMarshal-4 100000 11442 ns/op 771.31 MB/s -BenchmarkNinRepStructProtoMarshal-4 200000 10742 ns/op 821.60 MB/s -BenchmarkNidEmbeddedStructProtoMarshal-4 1000000 1203 ns/op 624.73 MB/s -BenchmarkNinEmbeddedStructProtoMarshal-4 1000000 1135 ns/op 627.68 MB/s -BenchmarkNidNestedStructProtoMarshal-4 50000 56182 ns/op 658.50 MB/s -BenchmarkNinNestedStructProtoMarshal-4 50000 49802 ns/op 742.37 MB/s -BenchmarkNidOptCustomProtoMarshal-4 5000000 303 ns/op 233.89 MB/s -BenchmarkNinOptCustomProtoMarshal-4 10000000 280 ns/op 238.94 MB/s -BenchmarkNidRepCustomProtoMarshal-4 5000000 604 ns/op 299.21 MB/s -BenchmarkNinRepCustomProtoMarshal-4 5000000 599 ns/op 301.77 MB/s -BenchmarkNinOptNativeUnionProtoMarshal-4 10000000 196 ns/op 158.04 MB/s -BenchmarkNinOptStructUnionProtoMarshal-4 5000000 384 ns/op 288.81 MB/s -BenchmarkNinEmbeddedStructUnionProtoMarshal-4 5000000 662 ns/op 363.93 MB/s -BenchmarkNinNestedStructUnionProtoMarshal-4 5000000 502 ns/op 260.48 MB/s -BenchmarkTreeProtoMarshal-4 5000000 558 ns/op 451.53 MB/s -BenchmarkOrBranchProtoMarshal-4 2000000 992 ns/op 553.08 MB/s -BenchmarkAndBranchProtoMarshal-4 2000000 998 ns/op 550.04 MB/s -BenchmarkLeafProtoMarshal-4 5000000 523 ns/op 462.20 MB/s -BenchmarkDeepTreeProtoMarshal-4 5000000 691 ns/op 429.41 MB/s -BenchmarkADeepBranchProtoMarshal-4 2000000 787 ns/op 424.31 MB/s -BenchmarkAndDeepBranchProtoMarshal-4 1000000 1329 ns/op 477.67 MB/s -BenchmarkDeepLeafProtoMarshal-4 5000000 639 ns/op 453.35 MB/s -BenchmarkNilProtoMarshal-4 10000000 189 ns/op 184.92 MB/s -BenchmarkNidOptEnumProtoMarshal-4 10000000 216 ns/op 170.86 MB/s -BenchmarkNinOptEnumProtoMarshal-4 10000000 209 ns/op 171.60 MB/s -BenchmarkNidRepEnumProtoMarshal-4 10000000 237 ns/op 180.80 MB/s -BenchmarkNinRepEnumProtoMarshal-4 10000000 235 ns/op 182.93 MB/s -BenchmarkNinOptEnumDefaultProtoMarshal-4 10000000 209 ns/op 171.51 MB/s -BenchmarkAnotherNinOptEnumProtoMarshal-4 10000000 211 ns/op 170.44 MB/s -BenchmarkAnotherNinOptEnumDefaultProtoMarshal-4 10000000 214 ns/op 167.95 MB/s -BenchmarkTimerProtoMarshal-4 5000000 344 ns/op 305.21 MB/s -BenchmarkMyExtendableProtoMarshal-4 5000000 695 ns/op 115.09 MB/s -BenchmarkOtherExtenableProtoMarshal-4 1000000 1295 ns/op 121.15 MB/s -BenchmarkNestedDefinitionProtoMarshal-4 2000000 906 ns/op 501.69 MB/s -BenchmarkNestedDefinition_NestedMessageProtoMarshal-4 5000000 537 ns/op 438.85 MB/s -BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal-4 5000000 479 ns/op 442.52 MB/s -BenchmarkNestedScopeProtoMarshal-4 2000000 862 ns/op 518.19 MB/s -BenchmarkNinOptNativeDefaultProtoMarshal-4 2000000 758 ns/op 448.10 MB/s -BenchmarkCustomContainerProtoMarshal-4 5000000 390 ns/op 276.58 MB/s -ok github.com/gogo/protobuf/test/mixbench/testdata 190.796s +ok github.com/gogo/protobuf/test/combos/both 139.443s diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/mixbench.go b/vendor/github.com/gogo/protobuf/test/mixbench/mixbench.go index b8e447c88..316afa99c 100644 --- a/vendor/github.com/gogo/protobuf/test/mixbench/mixbench.go +++ b/vendor/github.com/gogo/protobuf/test/mixbench/mixbench.go @@ -31,51 +31,11 @@ package main import ( "fmt" "io/ioutil" - "os" "os/exec" - "strings" ) -type MixMatch struct { - Old []string - New []string -} - -func (this *MixMatch) Regenerate() { - fmt.Printf("mixbench\n") - uuidData, err := ioutil.ReadFile("../uuid.go") - if err != nil { - panic(err) - } - if err = ioutil.WriteFile("./testdata/uuid.go", uuidData, 0666); err != nil { - panic(err) - } - data, err := ioutil.ReadFile("../thetest.proto") - if err != nil { - panic(err) - } - content := string(data) - for i, old := range this.Old { - content = strings.Replace(content, old, this.New[i], -1) - } - if err = ioutil.WriteFile("./testdata/thetest.proto", []byte(content), 0666); err != nil { - panic(err) - } - var regenerate = exec.Command("protoc", "--gogo_out=.", "-I=../../:../../protobuf/:../../../../../:.", "./testdata/thetest.proto") - fmt.Printf("regenerating\n") - out, err := regenerate.CombinedOutput() - fmt.Printf("regenerate output: %v\n", string(out)) - if err != nil { - panic(err) - } -} - -func (this *MixMatch) Bench(rgx string, outFileName string) { - if err := os.MkdirAll("./testdata", 0777); err != nil { - panic(err) - } - this.Regenerate() - var test = exec.Command("go", "test", "-test.timeout=20m", "-test.v", "-test.run=XXX", "-test.bench="+rgx, "./testdata/") +func bench(folder, rgx string, outFileName string) { + var test = exec.Command("go", "test", "-test.timeout=20m", "-test.v", "-test.run=XXX", "-test.bench="+rgx, folder) fmt.Printf("benching\n") out, err := test.CombinedOutput() fmt.Printf("bench output: %v\n", string(out)) @@ -85,54 +45,14 @@ func (this *MixMatch) Bench(rgx string, outFileName string) { if err := ioutil.WriteFile(outFileName, out, 0666); err != nil { panic(err) } - if err := os.RemoveAll("./testdata"); err != nil { - panic(err) - } -} - -func NewMixMatch(marshaler, unmarshaler, unsafe_marshaler, unsafe_unmarshaler bool) *MixMatch { - mm := &MixMatch{} - if marshaler { - mm.Old = append(mm.Old, "option (gogoproto.marshaler_all) = false;") - mm.New = append(mm.New, "option (gogoproto.marshaler_all) = true;") - } else { - mm.Old = append(mm.Old, "option (gogoproto.marshaler_all) = true;") - mm.New = append(mm.New, "option (gogoproto.marshaler_all) = false;") - } - if unmarshaler { - mm.Old = append(mm.Old, "option (gogoproto.unmarshaler_all) = false;") - mm.New = append(mm.New, "option (gogoproto.unmarshaler_all) = true;") - } else { - mm.Old = append(mm.Old, "option (gogoproto.unmarshaler_all) = true;") - mm.New = append(mm.New, "option (gogoproto.unmarshaler_all) = false;") - } - if unsafe_marshaler { - mm.Old = append(mm.Old, "option (gogoproto.unsafe_marshaler_all) = false;") - mm.New = append(mm.New, "option (gogoproto.unsafe_marshaler_all) = true;") - } else { - mm.Old = append(mm.Old, "option (gogoproto.unsafe_marshaler_all) = true;") - mm.New = append(mm.New, "option (gogoproto.unsafe_marshaler_all) = false;") - } - if unsafe_unmarshaler { - mm.Old = append(mm.Old, "option (gogoproto.unsafe_unmarshaler_all) = false;") - mm.New = append(mm.New, "option (gogoproto.unsafe_unmarshaler_all) = true;") - } else { - mm.Old = append(mm.Old, "option (gogoproto.unsafe_unmarshaler_all) = true;") - mm.New = append(mm.New, "option (gogoproto.unsafe_unmarshaler_all) = false;") - } - return mm } func main() { - NewMixMatch(true, true, false, false).Bench("ProtoMarshal", "marshaler.txt") - NewMixMatch(false, false, false, false).Bench("ProtoMarshal", "marshal.txt") - NewMixMatch(false, false, true, true).Bench("ProtoMarshal", "unsafe_marshaler.txt") - NewMixMatch(true, true, false, false).Bench("ProtoUnmarshal", "unmarshaler.txt") - NewMixMatch(false, false, false, false).Bench("ProtoUnmarshal", "unmarshal.txt") - NewMixMatch(false, false, true, true).Bench("ProtoUnmarshal", "unsafe_unmarshaler.txt") + bench("./test/combos/both/", "ProtoMarshal", "./test/mixbench/marshaler.txt") + bench("./test/", "ProtoMarshal", "./test/mixbench/marshal.txt") + bench("./test/combos/both/", "ProtoUnmarshal", "./test/mixbench/unmarshaler.txt") + bench("./test/", "ProtoUnmarshal", "./test/mixbench/unmarshal.txt") fmt.Println("Running benchcmp will show the performance difference between using reflect and generated code for marshalling and unmarshalling of protocol buffers") - fmt.Println("$GOROOT/misc/benchcmp marshal.txt marshaler.txt") - fmt.Println("$GOROOT/misc/benchcmp unmarshal.txt unmarshaler.txt") - fmt.Println("$GOROOT/misc/benchcmp marshal.txt unsafe_marshaler.txt") - fmt.Println("$GOROOT/misc/benchcmp unmarshal.txt unsafe_unmarshaler.txt") + fmt.Println("benchcmp ./test/mixbench/marshal.txt ./test/mixbench/marshaler.txt") + fmt.Println("benchcmp ./test/mixbench/unmarshal.txt ./test/mixbench/unmarshaler.txt") } diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/oldmarshaler.txt b/vendor/github.com/gogo/protobuf/test/mixbench/oldmarshaler.txt new file mode 100644 index 000000000..a0cd56a7b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mixbench/oldmarshaler.txt @@ -0,0 +1,73 @@ +goos: darwin +goarch: amd64 +pkg: github.com/gogo/protobuf/test/combos/both +BenchmarkNidOptNativeProtoMarshal-8 5000000 255 ns/op 898.51 MB/s +BenchmarkNinOptNativeProtoMarshal-8 5000000 292 ns/op 714.19 MB/s +BenchmarkNidRepNativeProtoMarshal-8 1000000 1215 ns/op 673.78 MB/s +BenchmarkNinRepNativeProtoMarshal-8 1000000 1129 ns/op 724.87 MB/s +BenchmarkNidRepPackedNativeProtoMarshal-8 1000000 1070 ns/op 348.30 MB/s +BenchmarkNinRepPackedNativeProtoMarshal-8 1000000 1126 ns/op 331.05 MB/s +BenchmarkNidOptStructProtoMarshal-8 1000000 1090 ns/op 775.47 MB/s +BenchmarkNinOptStructProtoMarshal-8 1000000 1077 ns/op 711.02 MB/s +BenchmarkNidRepStructProtoMarshal-8 500000 2826 ns/op 627.36 MB/s +BenchmarkNinRepStructProtoMarshal-8 500000 2585 ns/op 685.69 MB/s +BenchmarkNidEmbeddedStructProtoMarshal-8 2000000 661 ns/op 729.67 MB/s +BenchmarkNinEmbeddedStructProtoMarshal-8 2000000 612 ns/op 747.51 MB/s +BenchmarkNidNestedStructProtoMarshal-8 200000 8685 ns/op 475.50 MB/s +BenchmarkNinNestedStructProtoMarshal-8 200000 7278 ns/op 534.43 MB/s +BenchmarkNidOptCustomProtoMarshal-8 20000000 99.3 ns/op 715.23 MB/s +BenchmarkCustomDashProtoMarshal-8 20000000 94.7 ns/op 866.23 MB/s +BenchmarkNinOptCustomProtoMarshal-8 20000000 100 ns/op 663.46 MB/s +BenchmarkNidRepCustomProtoMarshal-8 5000000 275 ns/op 661.13 MB/s +BenchmarkNinRepCustomProtoMarshal-8 5000000 274 ns/op 662.53 MB/s +BenchmarkNinOptNativeUnionProtoMarshal-8 20000000 74.9 ns/op 213.63 MB/s +BenchmarkNinOptStructUnionProtoMarshal-8 10000000 150 ns/op 417.38 MB/s +BenchmarkNinEmbeddedStructUnionProtoMarshal-8 5000000 273 ns/op 545.04 MB/s +BenchmarkNinNestedStructUnionProtoMarshal-8 10000000 239 ns/op 325.57 MB/s +BenchmarkTreeProtoMarshal-8 10000000 164 ns/op 627.52 MB/s +BenchmarkOrBranchProtoMarshal-8 5000000 384 ns/op 637.63 MB/s +BenchmarkAndBranchProtoMarshal-8 5000000 386 ns/op 633.51 MB/s +BenchmarkLeafProtoMarshal-8 10000000 123 ns/op 786.11 MB/s +BenchmarkDeepTreeProtoMarshal-8 5000000 258 ns/op 561.33 MB/s +BenchmarkADeepBranchProtoMarshal-8 5000000 327 ns/op 559.19 MB/s +BenchmarkAndDeepBranchProtoMarshal-8 2000000 650 ns/op 510.35 MB/s +BenchmarkDeepLeafProtoMarshal-8 10000000 219 ns/op 638.44 MB/s +BenchmarkNilProtoMarshal-8 30000000 51.0 ns/op 686.29 MB/s +BenchmarkNidOptEnumProtoMarshal-8 20000000 62.5 ns/op 591.74 MB/s +BenchmarkNinOptEnumProtoMarshal-8 20000000 78.7 ns/op 521.09 MB/s +BenchmarkNidRepEnumProtoMarshal-8 10000000 186 ns/op 316.21 MB/s +BenchmarkNinRepEnumProtoMarshal-8 10000000 179 ns/op 328.20 MB/s +BenchmarkNinOptEnumDefaultProtoMarshal-8 20000000 81.4 ns/op 503.41 MB/s +BenchmarkAnotherNinOptEnumProtoMarshal-8 20000000 85.7 ns/op 478.31 MB/s +BenchmarkAnotherNinOptEnumDefaultProtoMarshal-8 20000000 83.6 ns/op 490.49 MB/s +BenchmarkTimerProtoMarshal-8 20000000 110 ns/op 952.31 MB/s +BenchmarkMyExtendableProtoMarshal-8 3000000 508 ns/op 159.38 MB/s +BenchmarkOtherExtenableProtoMarshal-8 1000000 1090 ns/op 144.83 MB/s +BenchmarkNestedDefinitionProtoMarshal-8 5000000 302 ns/op 765.71 MB/s +BenchmarkNestedDefinition_NestedMessageProtoMarshal-8 10000000 147 ns/op 805.16 MB/s +BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal-8 20000000 94.4 ns/op 868.83 MB/s +BenchmarkNestedScopeProtoMarshal-8 5000000 275 ns/op 809.77 MB/s +BenchmarkNinOptNativeDefaultProtoMarshal-8 5000000 283 ns/op 737.12 MB/s +BenchmarkCustomContainerProtoMarshal-8 10000000 142 ns/op 765.46 MB/s +BenchmarkCustomNameNidOptNativeProtoMarshal-8 5000000 255 ns/op 900.47 MB/s +BenchmarkCustomNameNinOptNativeProtoMarshal-8 5000000 284 ns/op 735.53 MB/s +BenchmarkCustomNameNinRepNativeProtoMarshal-8 1000000 1056 ns/op 775.01 MB/s +BenchmarkCustomNameNinStructProtoMarshal-8 1000000 1471 ns/op 651.55 MB/s +BenchmarkCustomNameCustomTypeProtoMarshal-8 5000000 304 ns/op 703.60 MB/s +BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal-8 5000000 268 ns/op 554.35 MB/s +BenchmarkCustomNameEnumProtoMarshal-8 20000000 103 ns/op 435.03 MB/s +BenchmarkNoExtensionsMapProtoMarshal-8 20000000 115 ns/op 702.08 MB/s +BenchmarkUnrecognizedProtoMarshal-8 20000000 67.0 ns/op 671.64 MB/s +BenchmarkUnrecognizedWithInnerProtoMarshal-8 10000000 175 ns/op 536.86 MB/s +BenchmarkUnrecognizedWithInner_InnerProtoMarshal-8 30000000 47.6 ns/op 105.15 MB/s +BenchmarkUnrecognizedWithEmbedProtoMarshal-8 10000000 134 ns/op 659.48 MB/s +BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal-8 30000000 47.1 ns/op 106.07 MB/s +BenchmarkNodeProtoMarshal-8 10000000 125 ns/op 804.09 MB/s +BenchmarkNonByteCustomTypeProtoMarshal-8 10000000 131 ns/op 602.08 MB/s +BenchmarkNidOptNonByteCustomTypeProtoMarshal-8 10000000 133 ns/op 623.02 MB/s +BenchmarkNinOptNonByteCustomTypeProtoMarshal-8 10000000 134 ns/op 588.03 MB/s +BenchmarkNidRepNonByteCustomTypeProtoMarshal-8 3000000 402 ns/op 570.96 MB/s +BenchmarkNinRepNonByteCustomTypeProtoMarshal-8 3000000 394 ns/op 583.29 MB/s +BenchmarkProtoTypeProtoMarshal-8 20000000 94.3 ns/op 869.83 MB/s +PASS +ok github.com/gogo/protobuf/test/combos/both 140.308s diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/oldunmarshaler.txt b/vendor/github.com/gogo/protobuf/test/mixbench/oldunmarshaler.txt new file mode 100644 index 000000000..9ad44dce5 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/mixbench/oldunmarshaler.txt @@ -0,0 +1,73 @@ +goos: darwin +goarch: amd64 +pkg: github.com/gogo/protobuf/test/combos/both +BenchmarkNidOptNativeProtoUnmarshal-8 3000000 441 ns/op 520.98 MB/s +BenchmarkNinOptNativeProtoUnmarshal-8 2000000 638 ns/op 327.14 MB/s +BenchmarkNidRepNativeProtoUnmarshal-8 500000 2830 ns/op 289.36 MB/s +BenchmarkNinRepNativeProtoUnmarshal-8 500000 2859 ns/op 286.37 MB/s +BenchmarkNidRepPackedNativeProtoUnmarshal-8 1000000 1813 ns/op 205.67 MB/s +BenchmarkNinRepPackedNativeProtoUnmarshal-8 1000000 1793 ns/op 207.96 MB/s +BenchmarkNidOptStructProtoUnmarshal-8 1000000 1876 ns/op 450.92 MB/s +BenchmarkNinOptStructProtoUnmarshal-8 1000000 1992 ns/op 384.38 MB/s +BenchmarkNidRepStructProtoUnmarshal-8 300000 5234 ns/op 338.72 MB/s +BenchmarkNinRepStructProtoUnmarshal-8 300000 5097 ns/op 347.79 MB/s +BenchmarkNidEmbeddedStructProtoUnmarshal-8 1000000 1077 ns/op 448.06 MB/s +BenchmarkNinEmbeddedStructProtoUnmarshal-8 1000000 1088 ns/op 420.67 MB/s +BenchmarkNidNestedStructProtoUnmarshal-8 100000 11850 ns/op 348.52 MB/s +BenchmarkNinNestedStructProtoUnmarshal-8 200000 11242 ns/op 346.02 MB/s +BenchmarkNidOptCustomProtoUnmarshal-8 10000000 196 ns/op 361.07 MB/s +BenchmarkCustomDashProtoUnmarshal-8 10000000 228 ns/op 359.22 MB/s +BenchmarkNinOptCustomProtoUnmarshal-8 5000000 243 ns/op 275.11 MB/s +BenchmarkNidRepCustomProtoUnmarshal-8 2000000 811 ns/op 224.17 MB/s +BenchmarkNinRepCustomProtoUnmarshal-8 2000000 812 ns/op 223.94 MB/s +BenchmarkNinOptNativeUnionProtoUnmarshal-8 20000000 78.0 ns/op 205.18 MB/s +BenchmarkNinOptStructUnionProtoUnmarshal-8 10000000 198 ns/op 318.01 MB/s +BenchmarkNinEmbeddedStructUnionProtoUnmarshal-8 3000000 465 ns/op 320.00 MB/s +BenchmarkNinNestedStructUnionProtoUnmarshal-8 5000000 329 ns/op 236.72 MB/s +BenchmarkTreeProtoUnmarshal-8 5000000 301 ns/op 341.52 MB/s +BenchmarkOrBranchProtoUnmarshal-8 2000000 788 ns/op 310.72 MB/s +BenchmarkAndBranchProtoUnmarshal-8 2000000 809 ns/op 302.61 MB/s +BenchmarkLeafProtoUnmarshal-8 10000000 226 ns/op 428.13 MB/s +BenchmarkDeepTreeProtoUnmarshal-8 3000000 564 ns/op 256.96 MB/s +BenchmarkADeepBranchProtoUnmarshal-8 2000000 746 ns/op 244.98 MB/s +BenchmarkAndDeepBranchProtoUnmarshal-8 1000000 1262 ns/op 263.05 MB/s +BenchmarkDeepLeafProtoUnmarshal-8 3000000 474 ns/op 294.99 MB/s +BenchmarkNilProtoUnmarshal-8 10000000 139 ns/op 251.16 MB/s +BenchmarkNidOptEnumProtoUnmarshal-8 10000000 145 ns/op 254.37 MB/s +BenchmarkNinOptEnumProtoUnmarshal-8 10000000 204 ns/op 200.49 MB/s +BenchmarkNidRepEnumProtoUnmarshal-8 3000000 453 ns/op 130.01 MB/s +BenchmarkNinRepEnumProtoUnmarshal-8 3000000 444 ns/op 132.65 MB/s +BenchmarkNinOptEnumDefaultProtoUnmarshal-8 10000000 199 ns/op 205.24 MB/s +BenchmarkAnotherNinOptEnumProtoUnmarshal-8 10000000 208 ns/op 196.86 MB/s +BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal-8 10000000 201 ns/op 203.57 MB/s +BenchmarkTimerProtoUnmarshal-8 10000000 235 ns/op 444.92 MB/s +BenchmarkMyExtendableProtoUnmarshal-8 2000000 649 ns/op 124.62 MB/s +BenchmarkOtherExtenableProtoUnmarshal-8 1000000 1348 ns/op 117.15 MB/s +BenchmarkNestedDefinitionProtoUnmarshal-8 2000000 932 ns/op 248.80 MB/s +BenchmarkNestedDefinition_NestedMessageProtoUnmarshal-8 3000000 431 ns/op 275.75 MB/s +BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal-8 10000000 219 ns/op 373.17 MB/s +BenchmarkNestedScopeProtoUnmarshal-8 2000000 907 ns/op 245.63 MB/s +BenchmarkNinOptNativeDefaultProtoUnmarshal-8 2000000 663 ns/op 315.15 MB/s +BenchmarkCustomContainerProtoUnmarshal-8 5000000 350 ns/op 310.78 MB/s +BenchmarkCustomNameNidOptNativeProtoUnmarshal-8 3000000 483 ns/op 475.48 MB/s +BenchmarkCustomNameNinOptNativeProtoUnmarshal-8 2000000 689 ns/op 303.07 MB/s +BenchmarkCustomNameNinRepNativeProtoUnmarshal-8 500000 2845 ns/op 287.79 MB/s +BenchmarkCustomNameNinStructProtoUnmarshal-8 500000 2730 ns/op 351.21 MB/s +BenchmarkCustomNameCustomTypeProtoUnmarshal-8 2000000 934 ns/op 229.08 MB/s +BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal-8 3000000 475 ns/op 313.63 MB/s +BenchmarkCustomNameEnumProtoUnmarshal-8 5000000 271 ns/op 166.03 MB/s +BenchmarkNoExtensionsMapProtoUnmarshal-8 5000000 344 ns/op 234.94 MB/s +BenchmarkUnrecognizedProtoUnmarshal-8 20000000 86.3 ns/op 521.53 MB/s +BenchmarkUnrecognizedWithInnerProtoUnmarshal-8 3000000 411 ns/op 228.40 MB/s +BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal-8 30000000 43.9 ns/op 113.80 MB/s +BenchmarkUnrecognizedWithEmbedProtoUnmarshal-8 5000000 261 ns/op 340.84 MB/s +BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal-8 30000000 43.9 ns/op 113.92 MB/s +BenchmarkNodeProtoUnmarshal-8 5000000 312 ns/op 323.19 MB/s +BenchmarkNonByteCustomTypeProtoUnmarshal-8 5000000 306 ns/op 257.52 MB/s +BenchmarkNidOptNonByteCustomTypeProtoUnmarshal-8 5000000 292 ns/op 283.61 MB/s +BenchmarkNinOptNonByteCustomTypeProtoUnmarshal-8 5000000 307 ns/op 257.00 MB/s +BenchmarkNidRepNonByteCustomTypeProtoUnmarshal-8 1000000 1057 ns/op 217.49 MB/s +BenchmarkNinRepNonByteCustomTypeProtoUnmarshal-8 1000000 1043 ns/op 220.36 MB/s +BenchmarkProtoTypeProtoUnmarshal-8 10000000 221 ns/op 369.64 MB/s +PASS +ok github.com/gogo/protobuf/test/combos/both 152.331s diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/unmarshal.txt b/vendor/github.com/gogo/protobuf/test/mixbench/unmarshal.txt index 2b958fd93..00f352180 100644 --- a/vendor/github.com/gogo/protobuf/test/mixbench/unmarshal.txt +++ b/vendor/github.com/gogo/protobuf/test/mixbench/unmarshal.txt @@ -1,49 +1,73 @@ +goos: darwin +goarch: amd64 +pkg: github.com/gogo/protobuf/test +BenchmarkNidOptNativeProtoUnmarshal-8 2000000 742 ns/op 309.65 MB/s +BenchmarkNinOptNativeProtoUnmarshal-8 2000000 892 ns/op 234.06 MB/s +BenchmarkNidRepNativeProtoUnmarshal-8 300000 3762 ns/op 217.69 MB/s +BenchmarkNinRepNativeProtoUnmarshal-8 500000 3750 ns/op 218.40 MB/s +BenchmarkNidRepPackedNativeProtoUnmarshal-8 1000000 2423 ns/op 153.89 MB/s +BenchmarkNinRepPackedNativeProtoUnmarshal-8 1000000 2356 ns/op 158.30 MB/s +BenchmarkNidOptStructProtoUnmarshal-8 500000 2595 ns/op 326.01 MB/s +BenchmarkNinOptStructProtoUnmarshal-8 500000 2679 ns/op 285.91 MB/s +BenchmarkNidRepStructProtoUnmarshal-8 200000 7477 ns/op 237.11 MB/s +BenchmarkNinRepStructProtoUnmarshal-8 200000 6672 ns/op 265.70 MB/s +BenchmarkNidEmbeddedStructProtoUnmarshal-8 1000000 1634 ns/op 295.59 MB/s +BenchmarkNinEmbeddedStructProtoUnmarshal-8 1000000 1655 ns/op 276.61 MB/s +BenchmarkNidNestedStructProtoUnmarshal-8 100000 16742 ns/op 246.68 MB/s +BenchmarkNinNestedStructProtoUnmarshal-8 100000 14573 ns/op 266.92 MB/s +BenchmarkNidOptCustomProtoUnmarshal-8 2000000 840 ns/op 84.48 MB/s +BenchmarkCustomDashProtoUnmarshal-8 3000000 573 ns/op 142.95 MB/s +BenchmarkNinOptCustomProtoUnmarshal-8 2000000 668 ns/op 100.17 MB/s +BenchmarkNidRepCustomProtoUnmarshal-8 500000 3945 ns/op 46.12 MB/s +BenchmarkNinRepCustomProtoUnmarshal-8 500000 3939 ns/op 46.20 MB/s +BenchmarkNinOptNativeUnionProtoUnmarshal-8 5000000 248 ns/op 64.30 MB/s +BenchmarkNinOptStructUnionProtoUnmarshal-8 3000000 432 ns/op 145.55 MB/s +BenchmarkNinEmbeddedStructUnionProtoUnmarshal-8 2000000 767 ns/op 194.07 MB/s +BenchmarkNinNestedStructUnionProtoUnmarshal-8 2000000 636 ns/op 122.51 MB/s +BenchmarkTreeProtoUnmarshal-8 2000000 649 ns/op 158.50 MB/s +BenchmarkOrBranchProtoUnmarshal-8 1000000 1312 ns/op 186.65 MB/s +BenchmarkAndBranchProtoUnmarshal-8 1000000 1301 ns/op 188.29 MB/s +BenchmarkLeafProtoUnmarshal-8 3000000 490 ns/op 197.62 MB/s +BenchmarkDeepTreeProtoUnmarshal-8 1000000 1059 ns/op 136.83 MB/s +BenchmarkADeepBranchProtoUnmarshal-8 1000000 1253 ns/op 145.96 MB/s +BenchmarkAndDeepBranchProtoUnmarshal-8 1000000 2041 ns/op 162.62 MB/s +BenchmarkDeepLeafProtoUnmarshal-8 2000000 894 ns/op 156.51 MB/s +BenchmarkNilProtoUnmarshal-8 5000000 362 ns/op 96.48 MB/s +BenchmarkNidOptEnumProtoUnmarshal-8 5000000 382 ns/op 96.84 MB/s +BenchmarkNinOptEnumProtoUnmarshal-8 3000000 448 ns/op 91.37 MB/s +BenchmarkNidRepEnumProtoUnmarshal-8 2000000 796 ns/op 74.10 MB/s +BenchmarkNinRepEnumProtoUnmarshal-8 2000000 799 ns/op 73.79 MB/s +BenchmarkNinOptEnumDefaultProtoUnmarshal-8 3000000 452 ns/op 90.59 MB/s +BenchmarkAnotherNinOptEnumProtoUnmarshal-8 3000000 446 ns/op 91.74 MB/s +BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal-8 3000000 451 ns/op 90.73 MB/s +BenchmarkTimerProtoUnmarshal-8 3000000 528 ns/op 198.78 MB/s +BenchmarkMyExtendableProtoUnmarshal-8 1000000 1295 ns/op 62.54 MB/s +BenchmarkOtherExtenableProtoUnmarshal-8 1000000 2420 ns/op 65.28 MB/s +BenchmarkNestedDefinitionProtoUnmarshal-8 1000000 1501 ns/op 154.48 MB/s +BenchmarkNestedDefinition_NestedMessageProtoUnmarshal-8 2000000 861 ns/op 138.09 MB/s +BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal-8 3000000 490 ns/op 167.26 MB/s +BenchmarkNestedScopeProtoUnmarshal-8 1000000 1469 ns/op 151.78 MB/s +BenchmarkNinOptNativeDefaultProtoUnmarshal-8 2000000 933 ns/op 223.93 MB/s +BenchmarkCustomContainerProtoUnmarshal-8 1000000 1141 ns/op 95.48 MB/s +BenchmarkCustomNameNidOptNativeProtoUnmarshal-8 2000000 771 ns/op 298.02 MB/s +BenchmarkCustomNameNinOptNativeProtoUnmarshal-8 2000000 938 ns/op 222.66 MB/s +BenchmarkCustomNameNinRepNativeProtoUnmarshal-8 500000 3820 ns/op 214.37 MB/s +BenchmarkCustomNameNinStructProtoUnmarshal-8 500000 3613 ns/op 265.38 MB/s +BenchmarkCustomNameCustomTypeProtoUnmarshal-8 300000 4301 ns/op 49.76 MB/s +BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal-8 2000000 772 ns/op 192.86 MB/s +BenchmarkCustomNameEnumProtoUnmarshal-8 3000000 569 ns/op 79.04 MB/s +BenchmarkNoExtensionsMapProtoUnmarshal-8 2000000 850 ns/op 95.19 MB/s +BenchmarkUnrecognizedProtoUnmarshal-8 5000000 269 ns/op 166.93 MB/s +BenchmarkUnrecognizedWithInnerProtoUnmarshal-8 2000000 858 ns/op 109.44 MB/s +BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal-8 10000000 221 ns/op 22.56 MB/s +BenchmarkUnrecognizedWithEmbedProtoUnmarshal-8 2000000 605 ns/op 146.89 MB/s +BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal-8 10000000 222 ns/op 22.45 MB/s +BenchmarkNodeProtoUnmarshal-8 2000000 664 ns/op 152.10 MB/s +BenchmarkNonByteCustomTypeProtoUnmarshal-8 2000000 880 ns/op 89.67 MB/s +BenchmarkNidOptNonByteCustomTypeProtoUnmarshal-8 2000000 953 ns/op 87.07 MB/s +BenchmarkNinOptNonByteCustomTypeProtoUnmarshal-8 2000000 893 ns/op 88.46 MB/s +BenchmarkNidRepNonByteCustomTypeProtoUnmarshal-8 500000 3460 ns/op 66.47 MB/s +BenchmarkNinRepNonByteCustomTypeProtoUnmarshal-8 500000 3452 ns/op 66.63 MB/s +BenchmarkProtoTypeProtoUnmarshal-8 3000000 510 ns/op 160.64 MB/s PASS -BenchmarkNidOptNativeProtoUnmarshal-4 1000000 2006 ns/op 185.44 MB/s -BenchmarkNinOptNativeProtoUnmarshal-4 1000000 1960 ns/op 173.41 MB/s -BenchmarkNidRepNativeProtoUnmarshal-4 50000 36241 ns/op 195.55 MB/s -BenchmarkNinRepNativeProtoUnmarshal-4 50000 35648 ns/op 198.80 MB/s -BenchmarkNidRepPackedNativeProtoUnmarshal-4 100000 18641 ns/op 183.30 MB/s -BenchmarkNinRepPackedNativeProtoUnmarshal-4 100000 18398 ns/op 185.72 MB/s -BenchmarkNidOptStructProtoUnmarshal-4 500000 5938 ns/op 236.92 MB/s -BenchmarkNinOptStructProtoUnmarshal-4 500000 5871 ns/op 216.14 MB/s -BenchmarkNidRepStructProtoUnmarshal-4 50000 46237 ns/op 190.88 MB/s -BenchmarkNinRepStructProtoUnmarshal-4 50000 39915 ns/op 221.12 MB/s -BenchmarkNidEmbeddedStructProtoUnmarshal-4 500000 3946 ns/op 190.56 MB/s -BenchmarkNinEmbeddedStructProtoUnmarshal-4 500000 3997 ns/op 178.35 MB/s -BenchmarkNidNestedStructProtoUnmarshal-4 10000 207132 ns/op 178.61 MB/s -BenchmarkNinNestedStructProtoUnmarshal-4 10000 170116 ns/op 217.33 MB/s -BenchmarkNidOptCustomProtoUnmarshal-4 1000000 2321 ns/op 30.58 MB/s -BenchmarkNinOptCustomProtoUnmarshal-4 1000000 1947 ns/op 34.40 MB/s -BenchmarkNidRepCustomProtoUnmarshal-4 200000 7884 ns/op 22.96 MB/s -BenchmarkNinRepCustomProtoUnmarshal-4 200000 7926 ns/op 22.83 MB/s -BenchmarkNinOptNativeUnionProtoUnmarshal-4 1000000 1242 ns/op 24.94 MB/s -BenchmarkNinOptStructUnionProtoUnmarshal-4 1000000 1550 ns/op 71.58 MB/s -BenchmarkNinEmbeddedStructUnionProtoUnmarshal-4 1000000 2209 ns/op 109.07 MB/s -BenchmarkNinNestedStructUnionProtoUnmarshal-4 1000000 1954 ns/op 67.02 MB/s -BenchmarkTreeProtoUnmarshal-4 1000000 1785 ns/op 141.12 MB/s -BenchmarkOrBranchProtoUnmarshal-4 1000000 2769 ns/op 198.23 MB/s -BenchmarkAndBranchProtoUnmarshal-4 500000 2680 ns/op 204.84 MB/s -BenchmarkLeafProtoUnmarshal-4 1000000 1407 ns/op 171.92 MB/s -BenchmarkDeepTreeProtoUnmarshal-4 1000000 2387 ns/op 124.40 MB/s -BenchmarkADeepBranchProtoUnmarshal-4 1000000 2621 ns/op 127.39 MB/s -BenchmarkAndDeepBranchProtoUnmarshal-4 500000 3853 ns/op 164.79 MB/s -BenchmarkDeepLeafProtoUnmarshal-4 1000000 2027 ns/op 143.02 MB/s -BenchmarkNilProtoUnmarshal-4 1000000 1472 ns/op 23.78 MB/s -BenchmarkNidOptEnumProtoUnmarshal-4 1000000 1597 ns/op 23.16 MB/s -BenchmarkNinOptEnumProtoUnmarshal-4 1000000 1557 ns/op 23.12 MB/s -BenchmarkNidRepEnumProtoUnmarshal-4 1000000 1746 ns/op 24.62 MB/s -BenchmarkNinRepEnumProtoUnmarshal-4 1000000 1779 ns/op 24.16 MB/s -BenchmarkNinOptEnumDefaultProtoUnmarshal-4 1000000 1607 ns/op 22.39 MB/s -BenchmarkAnotherNinOptEnumProtoUnmarshal-4 1000000 1545 ns/op 23.29 MB/s -BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal-4 1000000 1578 ns/op 22.81 MB/s -BenchmarkTimerProtoUnmarshal-4 1000000 1572 ns/op 66.79 MB/s -BenchmarkMyExtendableProtoUnmarshal-4 1000000 2610 ns/op 30.64 MB/s -BenchmarkOtherExtenableProtoUnmarshal-4 500000 3792 ns/op 41.40 MB/s -BenchmarkNestedDefinitionProtoUnmarshal-4 500000 2987 ns/op 152.29 MB/s -BenchmarkNestedDefinition_NestedMessageProtoUnmarshal-4 1000000 1898 ns/op 124.30 MB/s -BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal-4 1000000 1326 ns/op 159.87 MB/s -BenchmarkNestedScopeProtoUnmarshal-4 1000000 2956 ns/op 151.20 MB/s -BenchmarkNinOptNativeDefaultProtoUnmarshal-4 1000000 2244 ns/op 151.45 MB/s -BenchmarkCustomContainerProtoUnmarshal-4 1000000 2652 ns/op 40.71 MB/s -ok github.com/gogo/protobuf/test/mixbench/testdata 167.715s +ok github.com/gogo/protobuf/test 160.971s diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/unmarshaler.txt b/vendor/github.com/gogo/protobuf/test/mixbench/unmarshaler.txt index 9c78ef06a..69ca32d62 100644 --- a/vendor/github.com/gogo/protobuf/test/mixbench/unmarshaler.txt +++ b/vendor/github.com/gogo/protobuf/test/mixbench/unmarshaler.txt @@ -1,49 +1,73 @@ +goos: darwin +goarch: amd64 +pkg: github.com/gogo/protobuf/test/combos/both +BenchmarkNidOptNativeProtoUnmarshal-8 3000000 437 ns/op 525.94 MB/s +BenchmarkNinOptNativeProtoUnmarshal-8 2000000 648 ns/op 322.37 MB/s +BenchmarkNidRepNativeProtoUnmarshal-8 500000 2864 ns/op 285.90 MB/s +BenchmarkNinRepNativeProtoUnmarshal-8 500000 2820 ns/op 290.41 MB/s +BenchmarkNidRepPackedNativeProtoUnmarshal-8 1000000 1801 ns/op 207.09 MB/s +BenchmarkNinRepPackedNativeProtoUnmarshal-8 1000000 1813 ns/op 205.70 MB/s +BenchmarkNidOptStructProtoUnmarshal-8 1000000 1839 ns/op 459.88 MB/s +BenchmarkNinOptStructProtoUnmarshal-8 1000000 2018 ns/op 379.50 MB/s +BenchmarkNidRepStructProtoUnmarshal-8 300000 5149 ns/op 344.29 MB/s +BenchmarkNinRepStructProtoUnmarshal-8 300000 5018 ns/op 353.26 MB/s +BenchmarkNidEmbeddedStructProtoUnmarshal-8 1000000 1065 ns/op 453.50 MB/s +BenchmarkNinEmbeddedStructProtoUnmarshal-8 1000000 1079 ns/op 424.46 MB/s +BenchmarkNidNestedStructProtoUnmarshal-8 100000 11788 ns/op 350.34 MB/s +BenchmarkNinNestedStructProtoUnmarshal-8 200000 11113 ns/op 350.03 MB/s +BenchmarkNidOptCustomProtoUnmarshal-8 10000000 199 ns/op 355.77 MB/s +BenchmarkCustomDashProtoUnmarshal-8 10000000 228 ns/op 359.40 MB/s +BenchmarkNinOptCustomProtoUnmarshal-8 5000000 246 ns/op 271.79 MB/s +BenchmarkNidRepCustomProtoUnmarshal-8 2000000 801 ns/op 227.02 MB/s +BenchmarkNinRepCustomProtoUnmarshal-8 2000000 810 ns/op 224.64 MB/s +BenchmarkNinOptNativeUnionProtoUnmarshal-8 20000000 80.9 ns/op 197.77 MB/s +BenchmarkNinOptStructUnionProtoUnmarshal-8 10000000 201 ns/op 311.92 MB/s +BenchmarkNinEmbeddedStructUnionProtoUnmarshal-8 3000000 460 ns/op 323.74 MB/s +BenchmarkNinNestedStructUnionProtoUnmarshal-8 5000000 318 ns/op 245.16 MB/s +BenchmarkTreeProtoUnmarshal-8 5000000 308 ns/op 333.66 MB/s +BenchmarkOrBranchProtoUnmarshal-8 2000000 801 ns/op 305.77 MB/s +BenchmarkAndBranchProtoUnmarshal-8 2000000 786 ns/op 311.55 MB/s +BenchmarkLeafProtoUnmarshal-8 10000000 221 ns/op 437.02 MB/s +BenchmarkDeepTreeProtoUnmarshal-8 3000000 564 ns/op 256.77 MB/s +BenchmarkADeepBranchProtoUnmarshal-8 2000000 734 ns/op 249.07 MB/s +BenchmarkAndDeepBranchProtoUnmarshal-8 1000000 1259 ns/op 263.56 MB/s +BenchmarkDeepLeafProtoUnmarshal-8 3000000 473 ns/op 295.86 MB/s +BenchmarkNilProtoUnmarshal-8 10000000 138 ns/op 252.17 MB/s +BenchmarkNidOptEnumProtoUnmarshal-8 10000000 143 ns/op 258.45 MB/s +BenchmarkNinOptEnumProtoUnmarshal-8 10000000 203 ns/op 201.75 MB/s +BenchmarkNidRepEnumProtoUnmarshal-8 3000000 461 ns/op 127.85 MB/s +BenchmarkNinRepEnumProtoUnmarshal-8 3000000 445 ns/op 132.38 MB/s +BenchmarkNinOptEnumDefaultProtoUnmarshal-8 10000000 199 ns/op 205.22 MB/s +BenchmarkAnotherNinOptEnumProtoUnmarshal-8 10000000 199 ns/op 205.47 MB/s +BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal-8 10000000 203 ns/op 201.78 MB/s +BenchmarkTimerProtoUnmarshal-8 10000000 224 ns/op 468.19 MB/s +BenchmarkMyExtendableProtoUnmarshal-8 2000000 653 ns/op 123.97 MB/s +BenchmarkOtherExtenableProtoUnmarshal-8 1000000 1349 ns/op 117.08 MB/s +BenchmarkNestedDefinitionProtoUnmarshal-8 2000000 936 ns/op 247.70 MB/s +BenchmarkNestedDefinition_NestedMessageProtoUnmarshal-8 3000000 421 ns/op 282.31 MB/s +BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal-8 10000000 224 ns/op 364.55 MB/s +BenchmarkNestedScopeProtoUnmarshal-8 2000000 918 ns/op 242.79 MB/s +BenchmarkNinOptNativeDefaultProtoUnmarshal-8 2000000 663 ns/op 315.02 MB/s +BenchmarkCustomContainerProtoUnmarshal-8 5000000 360 ns/op 302.50 MB/s +BenchmarkCustomNameNidOptNativeProtoUnmarshal-8 3000000 455 ns/op 504.73 MB/s +BenchmarkCustomNameNinOptNativeProtoUnmarshal-8 2000000 667 ns/op 313.20 MB/s +BenchmarkCustomNameNinRepNativeProtoUnmarshal-8 500000 2908 ns/op 281.59 MB/s +BenchmarkCustomNameNinStructProtoUnmarshal-8 500000 2668 ns/op 359.44 MB/s +BenchmarkCustomNameCustomTypeProtoUnmarshal-8 2000000 926 ns/op 231.07 MB/s +BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal-8 3000000 471 ns/op 316.30 MB/s +BenchmarkCustomNameEnumProtoUnmarshal-8 5000000 267 ns/op 168.48 MB/s +BenchmarkNoExtensionsMapProtoUnmarshal-8 5000000 341 ns/op 237.47 MB/s +BenchmarkUnrecognizedProtoUnmarshal-8 20000000 85.0 ns/op 529.53 MB/s +BenchmarkUnrecognizedWithInnerProtoUnmarshal-8 3000000 408 ns/op 230.38 MB/s +BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal-8 30000000 45.5 ns/op 109.87 MB/s +BenchmarkUnrecognizedWithEmbedProtoUnmarshal-8 5000000 261 ns/op 340.78 MB/s +BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal-8 30000000 43.2 ns/op 115.70 MB/s +BenchmarkNodeProtoUnmarshal-8 5000000 310 ns/op 325.74 MB/s +BenchmarkNonByteCustomTypeProtoUnmarshal-8 5000000 310 ns/op 254.37 MB/s +BenchmarkNidOptNonByteCustomTypeProtoUnmarshal-8 5000000 294 ns/op 281.53 MB/s +BenchmarkNinOptNonByteCustomTypeProtoUnmarshal-8 5000000 308 ns/op 256.49 MB/s +BenchmarkNidRepNonByteCustomTypeProtoUnmarshal-8 1000000 1040 ns/op 221.03 MB/s +BenchmarkNinRepNonByteCustomTypeProtoUnmarshal-8 1000000 1039 ns/op 221.20 MB/s +BenchmarkProtoTypeProtoUnmarshal-8 10000000 220 ns/op 372.18 MB/s PASS -BenchmarkNidOptNativeProtoUnmarshal-4 2000000 792 ns/op 469.35 MB/s -BenchmarkNinOptNativeProtoUnmarshal-4 1000000 1167 ns/op 291.16 MB/s -BenchmarkNidRepNativeProtoUnmarshal-4 100000 25302 ns/op 280.09 MB/s -BenchmarkNinRepNativeProtoUnmarshal-4 100000 25069 ns/op 282.70 MB/s -BenchmarkNidRepPackedNativeProtoUnmarshal-4 100000 16569 ns/op 206.22 MB/s -BenchmarkNinRepPackedNativeProtoUnmarshal-4 100000 16323 ns/op 209.33 MB/s -BenchmarkNidOptStructProtoUnmarshal-4 1000000 3107 ns/op 452.75 MB/s -BenchmarkNinOptStructProtoUnmarshal-4 500000 3262 ns/op 388.98 MB/s -BenchmarkNidRepStructProtoUnmarshal-4 100000 26090 ns/op 338.28 MB/s -BenchmarkNinRepStructProtoUnmarshal-4 100000 26086 ns/op 338.34 MB/s -BenchmarkNidEmbeddedStructProtoUnmarshal-4 1000000 1785 ns/op 421.14 MB/s -BenchmarkNinEmbeddedStructProtoUnmarshal-4 1000000 1838 ns/op 387.83 MB/s -BenchmarkNidNestedStructProtoUnmarshal-4 10000 119933 ns/op 308.47 MB/s -BenchmarkNinNestedStructProtoUnmarshal-4 10000 106914 ns/op 345.81 MB/s -BenchmarkNidOptCustomProtoUnmarshal-4 5000000 485 ns/op 146.36 MB/s -BenchmarkNinOptCustomProtoUnmarshal-4 5000000 648 ns/op 103.26 MB/s -BenchmarkNidRepCustomProtoUnmarshal-4 1000000 1743 ns/op 103.83 MB/s -BenchmarkNinRepCustomProtoUnmarshal-4 1000000 1766 ns/op 102.44 MB/s -BenchmarkNinOptNativeUnionProtoUnmarshal-4 10000000 187 ns/op 165.31 MB/s -BenchmarkNinOptStructUnionProtoUnmarshal-4 5000000 519 ns/op 213.49 MB/s -BenchmarkNinEmbeddedStructUnionProtoUnmarshal-4 2000000 971 ns/op 247.99 MB/s -BenchmarkNinNestedStructUnionProtoUnmarshal-4 2000000 801 ns/op 163.54 MB/s -BenchmarkTreeProtoUnmarshal-4 2000000 789 ns/op 319.14 MB/s -BenchmarkOrBranchProtoUnmarshal-4 1000000 1553 ns/op 353.47 MB/s -BenchmarkAndBranchProtoUnmarshal-4 1000000 1552 ns/op 353.60 MB/s -BenchmarkLeafProtoUnmarshal-4 5000000 654 ns/op 369.63 MB/s -BenchmarkDeepTreeProtoUnmarshal-4 1000000 1219 ns/op 243.63 MB/s -BenchmarkADeepBranchProtoUnmarshal-4 1000000 1504 ns/op 222.02 MB/s -BenchmarkAndDeepBranchProtoUnmarshal-4 1000000 2327 ns/op 272.88 MB/s -BenchmarkDeepLeafProtoUnmarshal-4 1000000 1083 ns/op 267.74 MB/s -BenchmarkNilProtoUnmarshal-4 5000000 401 ns/op 87.26 MB/s -BenchmarkNidOptEnumProtoUnmarshal-4 5000000 412 ns/op 89.66 MB/s -BenchmarkNinOptEnumProtoUnmarshal-4 5000000 451 ns/op 79.80 MB/s -BenchmarkNidRepEnumProtoUnmarshal-4 5000000 670 ns/op 64.12 MB/s -BenchmarkNinRepEnumProtoUnmarshal-4 5000000 667 ns/op 64.40 MB/s -BenchmarkNinOptEnumDefaultProtoUnmarshal-4 5000000 450 ns/op 79.88 MB/s -BenchmarkAnotherNinOptEnumProtoUnmarshal-4 5000000 449 ns/op 80.15 MB/s -BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal-4 5000000 448 ns/op 80.24 MB/s -BenchmarkTimerProtoUnmarshal-4 5000000 575 ns/op 182.50 MB/s -BenchmarkMyExtendableProtoUnmarshal-4 1000000 1450 ns/op 55.14 MB/s -BenchmarkOtherExtenableProtoUnmarshal-4 1000000 2567 ns/op 61.15 MB/s -BenchmarkNestedDefinitionProtoUnmarshal-4 1000000 1889 ns/op 240.85 MB/s -BenchmarkNestedDefinition_NestedMessageProtoUnmarshal-4 1000000 1080 ns/op 218.42 MB/s -BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal-4 5000000 693 ns/op 305.86 MB/s -BenchmarkNestedScopeProtoUnmarshal-4 1000000 1843 ns/op 242.49 MB/s -BenchmarkNinOptNativeDefaultProtoUnmarshal-4 1000000 1342 ns/op 253.25 MB/s -BenchmarkCustomContainerProtoUnmarshal-4 2000000 831 ns/op 129.82 MB/s -ok github.com/gogo/protobuf/test/mixbench/testdata 170.829s +ok github.com/gogo/protobuf/test/combos/both 153.117s diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/unsafe_marshaler.txt b/vendor/github.com/gogo/protobuf/test/mixbench/unsafe_marshaler.txt index 8cbf22f4f..424080a83 100644 --- a/vendor/github.com/gogo/protobuf/test/mixbench/unsafe_marshaler.txt +++ b/vendor/github.com/gogo/protobuf/test/mixbench/unsafe_marshaler.txt @@ -1,49 +1,73 @@ +goos: darwin +goarch: amd64 +pkg: github.com/gogo/protobuf/test/combos/unsafeboth +BenchmarkNidOptNativeProtoMarshal-8 10000000 235 ns/op 976.65 MB/s +BenchmarkNinOptNativeProtoMarshal-8 5000000 265 ns/op 788.37 MB/s +BenchmarkNidRepNativeProtoMarshal-8 1000000 1011 ns/op 810.06 MB/s +BenchmarkNinRepNativeProtoMarshal-8 1000000 1004 ns/op 815.63 MB/s +BenchmarkNidRepPackedNativeProtoMarshal-8 2000000 958 ns/op 389.24 MB/s +BenchmarkNinRepPackedNativeProtoMarshal-8 2000000 968 ns/op 385.16 MB/s +BenchmarkNidOptStructProtoMarshal-8 2000000 979 ns/op 863.95 MB/s +BenchmarkNinOptStructProtoMarshal-8 2000000 946 ns/op 808.91 MB/s +BenchmarkNidRepStructProtoMarshal-8 500000 2495 ns/op 710.38 MB/s +BenchmarkNinRepStructProtoMarshal-8 500000 2265 ns/op 782.62 MB/s +BenchmarkNidEmbeddedStructProtoMarshal-8 3000000 561 ns/op 860.52 MB/s +BenchmarkNinEmbeddedStructProtoMarshal-8 3000000 538 ns/op 849.81 MB/s +BenchmarkNidNestedStructProtoMarshal-8 200000 7308 ns/op 565.10 MB/s +BenchmarkNinNestedStructProtoMarshal-8 200000 6016 ns/op 646.61 MB/s +BenchmarkNidOptCustomProtoMarshal-8 20000000 97.3 ns/op 729.87 MB/s +BenchmarkCustomDashProtoMarshal-8 20000000 92.5 ns/op 886.05 MB/s +BenchmarkNinOptCustomProtoMarshal-8 20000000 97.4 ns/op 687.82 MB/s +BenchmarkNidRepCustomProtoMarshal-8 5000000 258 ns/op 705.25 MB/s +BenchmarkNinRepCustomProtoMarshal-8 5000000 258 ns/op 704.21 MB/s +BenchmarkNinOptNativeUnionProtoMarshal-8 20000000 69.0 ns/op 231.80 MB/s +BenchmarkNinOptStructUnionProtoMarshal-8 10000000 138 ns/op 453.62 MB/s +BenchmarkNinEmbeddedStructUnionProtoMarshal-8 5000000 251 ns/op 591.44 MB/s +BenchmarkNinNestedStructUnionProtoMarshal-8 10000000 208 ns/op 373.73 MB/s +BenchmarkTreeProtoMarshal-8 10000000 154 ns/op 664.72 MB/s +BenchmarkOrBranchProtoMarshal-8 5000000 343 ns/op 712.72 MB/s +BenchmarkAndBranchProtoMarshal-8 5000000 344 ns/op 710.24 MB/s +BenchmarkLeafProtoMarshal-8 20000000 117 ns/op 824.42 MB/s +BenchmarkDeepTreeProtoMarshal-8 5000000 247 ns/op 585.23 MB/s +BenchmarkADeepBranchProtoMarshal-8 5000000 301 ns/op 606.06 MB/s +BenchmarkAndDeepBranchProtoMarshal-8 3000000 595 ns/op 557.97 MB/s +BenchmarkDeepLeafProtoMarshal-8 10000000 206 ns/op 676.59 MB/s +BenchmarkNilProtoMarshal-8 30000000 51.2 ns/op 682.93 MB/s +BenchmarkNidOptEnumProtoMarshal-8 20000000 62.0 ns/op 596.44 MB/s +BenchmarkNinOptEnumProtoMarshal-8 20000000 78.6 ns/op 521.93 MB/s +BenchmarkNidRepEnumProtoMarshal-8 10000000 184 ns/op 320.25 MB/s +BenchmarkNinRepEnumProtoMarshal-8 10000000 184 ns/op 319.78 MB/s +BenchmarkNinOptEnumDefaultProtoMarshal-8 20000000 78.1 ns/op 525.05 MB/s +BenchmarkAnotherNinOptEnumProtoMarshal-8 20000000 77.6 ns/op 528.30 MB/s +BenchmarkAnotherNinOptEnumDefaultProtoMarshal-8 20000000 79.1 ns/op 518.59 MB/s +BenchmarkTimerProtoMarshal-8 20000000 103 ns/op 1011.16 MB/s +BenchmarkMyExtendableProtoMarshal-8 3000000 465 ns/op 174.04 MB/s +BenchmarkOtherExtenableProtoMarshal-8 2000000 1028 ns/op 153.66 MB/s +BenchmarkNestedDefinitionProtoMarshal-8 5000000 283 ns/op 818.76 MB/s +BenchmarkNestedDefinition_NestedMessageProtoMarshal-8 10000000 141 ns/op 838.57 MB/s +BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal-8 20000000 94.1 ns/op 871.31 MB/s +BenchmarkNestedScopeProtoMarshal-8 5000000 259 ns/op 857.99 MB/s +BenchmarkNinOptNativeDefaultProtoMarshal-8 5000000 272 ns/op 768.10 MB/s +BenchmarkCustomContainerProtoMarshal-8 10000000 141 ns/op 769.72 MB/s +BenchmarkCustomNameNidOptNativeProtoMarshal-8 10000000 237 ns/op 968.65 MB/s +BenchmarkCustomNameNinOptNativeProtoMarshal-8 5000000 290 ns/op 719.58 MB/s +BenchmarkCustomNameNinRepNativeProtoMarshal-8 1000000 1006 ns/op 813.87 MB/s +BenchmarkCustomNameNinStructProtoMarshal-8 1000000 1296 ns/op 739.54 MB/s +BenchmarkCustomNameCustomTypeProtoMarshal-8 5000000 300 ns/op 712.96 MB/s +BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal-8 5000000 247 ns/op 601.55 MB/s +BenchmarkCustomNameEnumProtoMarshal-8 20000000 107 ns/op 417.49 MB/s +BenchmarkNoExtensionsMapProtoMarshal-8 20000000 116 ns/op 695.54 MB/s +BenchmarkUnrecognizedProtoMarshal-8 20000000 66.8 ns/op 673.51 MB/s +BenchmarkUnrecognizedWithInnerProtoMarshal-8 10000000 171 ns/op 548.84 MB/s +BenchmarkUnrecognizedWithInner_InnerProtoMarshal-8 30000000 46.7 ns/op 107.10 MB/s +BenchmarkUnrecognizedWithEmbedProtoMarshal-8 10000000 126 ns/op 700.99 MB/s +BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal-8 30000000 43.8 ns/op 114.23 MB/s +BenchmarkNodeProtoMarshal-8 10000000 119 ns/op 844.78 MB/s +BenchmarkNonByteCustomTypeProtoMarshal-8 10000000 123 ns/op 639.73 MB/s +BenchmarkNidOptNonByteCustomTypeProtoMarshal-8 10000000 126 ns/op 657.86 MB/s +BenchmarkNinOptNonByteCustomTypeProtoMarshal-8 10000000 123 ns/op 641.02 MB/s +BenchmarkNidRepNonByteCustomTypeProtoMarshal-8 5000000 386 ns/op 595.49 MB/s +BenchmarkNinRepNonByteCustomTypeProtoMarshal-8 5000000 382 ns/op 601.83 MB/s +BenchmarkProtoTypeProtoMarshal-8 20000000 94.3 ns/op 869.89 MB/s PASS -BenchmarkNidOptNativeProtoMarshal-4 5000000 531 ns/op 700.19 MB/s -BenchmarkNinOptNativeProtoMarshal-4 5000000 594 ns/op 572.27 MB/s -BenchmarkNidRepNativeProtoMarshal-4 200000 8087 ns/op 876.29 MB/s -BenchmarkNinRepNativeProtoMarshal-4 500000 8344 ns/op 849.34 MB/s -BenchmarkNidRepPackedNativeProtoMarshal-4 200000 7595 ns/op 449.89 MB/s -BenchmarkNinRepPackedNativeProtoMarshal-4 500000 7342 ns/op 465.38 MB/s -BenchmarkNidOptStructProtoMarshal-4 1000000 1928 ns/op 729.46 MB/s -BenchmarkNinOptStructProtoMarshal-4 1000000 1859 ns/op 682.32 MB/s -BenchmarkNidRepStructProtoMarshal-4 100000 10993 ns/op 802.82 MB/s -BenchmarkNinRepStructProtoMarshal-4 200000 10088 ns/op 874.84 MB/s -BenchmarkNidEmbeddedStructProtoMarshal-4 1000000 1179 ns/op 637.53 MB/s -BenchmarkNinEmbeddedStructProtoMarshal-4 1000000 1077 ns/op 661.58 MB/s -BenchmarkNidNestedStructProtoMarshal-4 50000 53464 ns/op 691.97 MB/s -BenchmarkNinNestedStructProtoMarshal-4 50000 47677 ns/op 775.46 MB/s -BenchmarkNidOptCustomProtoMarshal-4 5000000 303 ns/op 234.13 MB/s -BenchmarkNinOptCustomProtoMarshal-4 10000000 284 ns/op 235.56 MB/s -BenchmarkNidRepCustomProtoMarshal-4 5000000 598 ns/op 302.19 MB/s -BenchmarkNinRepCustomProtoMarshal-4 5000000 593 ns/op 304.87 MB/s -BenchmarkNinOptNativeUnionProtoMarshal-4 10000000 190 ns/op 162.47 MB/s -BenchmarkNinOptStructUnionProtoMarshal-4 5000000 374 ns/op 296.15 MB/s -BenchmarkNinEmbeddedStructUnionProtoMarshal-4 5000000 652 ns/op 369.55 MB/s -BenchmarkNinNestedStructUnionProtoMarshal-4 5000000 474 ns/op 275.97 MB/s -BenchmarkTreeProtoMarshal-4 5000000 567 ns/op 444.16 MB/s -BenchmarkOrBranchProtoMarshal-4 1000000 1007 ns/op 544.72 MB/s -BenchmarkAndBranchProtoMarshal-4 1000000 1061 ns/op 517.27 MB/s -BenchmarkLeafProtoMarshal-4 5000000 511 ns/op 473.41 MB/s -BenchmarkDeepTreeProtoMarshal-4 5000000 716 ns/op 414.59 MB/s -BenchmarkADeepBranchProtoMarshal-4 2000000 811 ns/op 411.60 MB/s -BenchmarkAndDeepBranchProtoMarshal-4 1000000 1324 ns/op 479.34 MB/s -BenchmarkDeepLeafProtoMarshal-4 5000000 636 ns/op 455.66 MB/s -BenchmarkNilProtoMarshal-4 10000000 189 ns/op 184.91 MB/s -BenchmarkNidOptEnumProtoMarshal-4 10000000 211 ns/op 174.55 MB/s -BenchmarkNinOptEnumProtoMarshal-4 10000000 207 ns/op 173.24 MB/s -BenchmarkNidRepEnumProtoMarshal-4 10000000 231 ns/op 185.80 MB/s -BenchmarkNinRepEnumProtoMarshal-4 10000000 230 ns/op 186.79 MB/s -BenchmarkNinOptEnumDefaultProtoMarshal-4 10000000 208 ns/op 172.65 MB/s -BenchmarkAnotherNinOptEnumProtoMarshal-4 10000000 207 ns/op 173.15 MB/s -BenchmarkAnotherNinOptEnumDefaultProtoMarshal-4 10000000 209 ns/op 171.99 MB/s -BenchmarkTimerProtoMarshal-4 5000000 320 ns/op 327.65 MB/s -BenchmarkMyExtendableProtoMarshal-4 5000000 702 ns/op 113.85 MB/s -BenchmarkOtherExtenableProtoMarshal-4 1000000 1329 ns/op 118.07 MB/s -BenchmarkNestedDefinitionProtoMarshal-4 2000000 904 ns/op 502.96 MB/s -BenchmarkNestedDefinition_NestedMessageProtoMarshal-4 5000000 542 ns/op 434.70 MB/s -BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal-4 5000000 465 ns/op 455.00 MB/s -BenchmarkNestedScopeProtoMarshal-4 2000000 857 ns/op 521.49 MB/s -BenchmarkNinOptNativeDefaultProtoMarshal-4 5000000 734 ns/op 462.95 MB/s -BenchmarkCustomContainerProtoMarshal-4 5000000 378 ns/op 285.67 MB/s -ok github.com/gogo/protobuf/test/mixbench/testdata 192.235s +ok github.com/gogo/protobuf/test/combos/unsafeboth 147.234s diff --git a/vendor/github.com/gogo/protobuf/test/mixbench/unsafe_unmarshaler.txt b/vendor/github.com/gogo/protobuf/test/mixbench/unsafe_unmarshaler.txt index 9a85e9361..751009e50 100644 --- a/vendor/github.com/gogo/protobuf/test/mixbench/unsafe_unmarshaler.txt +++ b/vendor/github.com/gogo/protobuf/test/mixbench/unsafe_unmarshaler.txt @@ -1,49 +1,73 @@ +goos: darwin +goarch: amd64 +pkg: github.com/gogo/protobuf/test/combos/unsafeboth +BenchmarkNidOptNativeProtoUnmarshal-8 3000000 425 ns/op 540.14 MB/s +BenchmarkNinOptNativeProtoUnmarshal-8 2000000 612 ns/op 341.01 MB/s +BenchmarkNidRepNativeProtoUnmarshal-8 500000 2884 ns/op 283.98 MB/s +BenchmarkNinRepNativeProtoUnmarshal-8 500000 2809 ns/op 291.49 MB/s +BenchmarkNidRepPackedNativeProtoUnmarshal-8 1000000 1806 ns/op 206.53 MB/s +BenchmarkNinRepPackedNativeProtoUnmarshal-8 1000000 1769 ns/op 210.78 MB/s +BenchmarkNidOptStructProtoUnmarshal-8 1000000 1820 ns/op 464.71 MB/s +BenchmarkNinOptStructProtoUnmarshal-8 1000000 1932 ns/op 396.30 MB/s +BenchmarkNidRepStructProtoUnmarshal-8 300000 5074 ns/op 349.42 MB/s +BenchmarkNinRepStructProtoUnmarshal-8 300000 4891 ns/op 362.49 MB/s +BenchmarkNidEmbeddedStructProtoUnmarshal-8 1000000 1034 ns/op 466.75 MB/s +BenchmarkNinEmbeddedStructProtoUnmarshal-8 1000000 1061 ns/op 431.37 MB/s +BenchmarkNidNestedStructProtoUnmarshal-8 200000 11579 ns/op 356.66 MB/s +BenchmarkNinNestedStructProtoUnmarshal-8 200000 10862 ns/op 358.12 MB/s +BenchmarkNidOptCustomProtoUnmarshal-8 10000000 202 ns/op 350.76 MB/s +BenchmarkCustomDashProtoUnmarshal-8 10000000 228 ns/op 358.70 MB/s +BenchmarkNinOptCustomProtoUnmarshal-8 5000000 245 ns/op 272.41 MB/s +BenchmarkNidRepCustomProtoUnmarshal-8 2000000 810 ns/op 224.66 MB/s +BenchmarkNinRepCustomProtoUnmarshal-8 2000000 812 ns/op 224.11 MB/s +BenchmarkNinOptNativeUnionProtoUnmarshal-8 20000000 73.2 ns/op 218.58 MB/s +BenchmarkNinOptStructUnionProtoUnmarshal-8 10000000 194 ns/op 323.57 MB/s +BenchmarkNinEmbeddedStructUnionProtoUnmarshal-8 3000000 459 ns/op 324.42 MB/s +BenchmarkNinNestedStructUnionProtoUnmarshal-8 5000000 315 ns/op 247.13 MB/s +BenchmarkTreeProtoUnmarshal-8 5000000 307 ns/op 335.37 MB/s +BenchmarkOrBranchProtoUnmarshal-8 2000000 782 ns/op 313.01 MB/s +BenchmarkAndBranchProtoUnmarshal-8 2000000 776 ns/op 315.38 MB/s +BenchmarkLeafProtoUnmarshal-8 10000000 218 ns/op 443.71 MB/s +BenchmarkDeepTreeProtoUnmarshal-8 3000000 565 ns/op 256.61 MB/s +BenchmarkADeepBranchProtoUnmarshal-8 2000000 734 ns/op 249.27 MB/s +BenchmarkAndDeepBranchProtoUnmarshal-8 1000000 1263 ns/op 262.80 MB/s +BenchmarkDeepLeafProtoUnmarshal-8 3000000 476 ns/op 294.03 MB/s +BenchmarkNilProtoUnmarshal-8 10000000 137 ns/op 254.01 MB/s +BenchmarkNidOptEnumProtoUnmarshal-8 10000000 141 ns/op 260.58 MB/s +BenchmarkNinOptEnumProtoUnmarshal-8 10000000 200 ns/op 204.30 MB/s +BenchmarkNidRepEnumProtoUnmarshal-8 3000000 449 ns/op 131.35 MB/s +BenchmarkNinRepEnumProtoUnmarshal-8 3000000 459 ns/op 128.30 MB/s +BenchmarkNinOptEnumDefaultProtoUnmarshal-8 10000000 203 ns/op 201.59 MB/s +BenchmarkAnotherNinOptEnumProtoUnmarshal-8 10000000 201 ns/op 203.75 MB/s +BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal-8 10000000 205 ns/op 199.16 MB/s +BenchmarkTimerProtoUnmarshal-8 10000000 223 ns/op 469.62 MB/s +BenchmarkMyExtendableProtoUnmarshal-8 2000000 654 ns/op 123.72 MB/s +BenchmarkOtherExtenableProtoUnmarshal-8 1000000 1353 ns/op 116.72 MB/s +BenchmarkNestedDefinitionProtoUnmarshal-8 2000000 919 ns/op 252.43 MB/s +BenchmarkNestedDefinition_NestedMessageProtoUnmarshal-8 3000000 427 ns/op 278.50 MB/s +BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal-8 10000000 216 ns/op 378.01 MB/s +BenchmarkNestedScopeProtoUnmarshal-8 2000000 893 ns/op 249.72 MB/s +BenchmarkNinOptNativeDefaultProtoUnmarshal-8 2000000 671 ns/op 311.36 MB/s +BenchmarkCustomContainerProtoUnmarshal-8 5000000 351 ns/op 310.13 MB/s +BenchmarkCustomNameNidOptNativeProtoUnmarshal-8 3000000 446 ns/op 514.92 MB/s +BenchmarkCustomNameNinOptNativeProtoUnmarshal-8 2000000 652 ns/op 320.55 MB/s +BenchmarkCustomNameNinRepNativeProtoUnmarshal-8 500000 2841 ns/op 288.23 MB/s +BenchmarkCustomNameNinStructProtoUnmarshal-8 500000 2639 ns/op 363.30 MB/s +BenchmarkCustomNameCustomTypeProtoUnmarshal-8 2000000 919 ns/op 232.73 MB/s +BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal-8 3000000 461 ns/op 322.60 MB/s +BenchmarkCustomNameEnumProtoUnmarshal-8 5000000 270 ns/op 166.20 MB/s +BenchmarkNoExtensionsMapProtoUnmarshal-8 5000000 353 ns/op 228.99 MB/s +BenchmarkUnrecognizedProtoUnmarshal-8 20000000 85.7 ns/op 525.21 MB/s +BenchmarkUnrecognizedWithInnerProtoUnmarshal-8 3000000 415 ns/op 226.40 MB/s +BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal-8 30000000 42.6 ns/op 117.47 MB/s +BenchmarkUnrecognizedWithEmbedProtoUnmarshal-8 5000000 259 ns/op 343.44 MB/s +BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal-8 30000000 43.2 ns/op 115.84 MB/s +BenchmarkNodeProtoUnmarshal-8 5000000 306 ns/op 329.03 MB/s +BenchmarkNonByteCustomTypeProtoUnmarshal-8 5000000 308 ns/op 256.11 MB/s +BenchmarkNidOptNonByteCustomTypeProtoUnmarshal-8 5000000 292 ns/op 284.10 MB/s +BenchmarkNinOptNonByteCustomTypeProtoUnmarshal-8 5000000 306 ns/op 258.01 MB/s +BenchmarkNidRepNonByteCustomTypeProtoUnmarshal-8 1000000 1049 ns/op 219.19 MB/s +BenchmarkNinRepNonByteCustomTypeProtoUnmarshal-8 1000000 1046 ns/op 219.68 MB/s +BenchmarkProtoTypeProtoUnmarshal-8 10000000 221 ns/op 370.99 MB/s PASS -BenchmarkNidOptNativeProtoUnmarshal-4 2000000 760 ns/op 488.86 MB/s -BenchmarkNinOptNativeProtoUnmarshal-4 1000000 1130 ns/op 300.67 MB/s -BenchmarkNidRepNativeProtoUnmarshal-4 100000 23698 ns/op 299.05 MB/s -BenchmarkNinRepNativeProtoUnmarshal-4 100000 23400 ns/op 302.86 MB/s -BenchmarkNidRepPackedNativeProtoUnmarshal-4 100000 15286 ns/op 223.53 MB/s -BenchmarkNinRepPackedNativeProtoUnmarshal-4 100000 15375 ns/op 222.23 MB/s -BenchmarkNidOptStructProtoUnmarshal-4 1000000 3019 ns/op 466.02 MB/s -BenchmarkNinOptStructProtoUnmarshal-4 500000 3169 ns/op 400.35 MB/s -BenchmarkNidRepStructProtoUnmarshal-4 100000 25167 ns/op 350.69 MB/s -BenchmarkNinRepStructProtoUnmarshal-4 100000 25199 ns/op 350.25 MB/s -BenchmarkNidEmbeddedStructProtoUnmarshal-4 1000000 1714 ns/op 438.65 MB/s -BenchmarkNinEmbeddedStructProtoUnmarshal-4 1000000 1793 ns/op 397.49 MB/s -BenchmarkNidNestedStructProtoUnmarshal-4 10000 115531 ns/op 320.22 MB/s -BenchmarkNinNestedStructProtoUnmarshal-4 10000 109260 ns/op 338.39 MB/s -BenchmarkNidOptCustomProtoUnmarshal-4 5000000 487 ns/op 145.63 MB/s -BenchmarkNinOptCustomProtoUnmarshal-4 5000000 644 ns/op 103.94 MB/s -BenchmarkNidRepCustomProtoUnmarshal-4 1000000 1733 ns/op 104.42 MB/s -BenchmarkNinRepCustomProtoUnmarshal-4 1000000 1734 ns/op 104.34 MB/s -BenchmarkNinOptNativeUnionProtoUnmarshal-4 10000000 186 ns/op 166.02 MB/s -BenchmarkNinOptStructUnionProtoUnmarshal-4 5000000 512 ns/op 216.66 MB/s -BenchmarkNinEmbeddedStructUnionProtoUnmarshal-4 2000000 954 ns/op 252.56 MB/s -BenchmarkNinNestedStructUnionProtoUnmarshal-4 2000000 788 ns/op 166.15 MB/s -BenchmarkTreeProtoUnmarshal-4 2000000 790 ns/op 318.98 MB/s -BenchmarkOrBranchProtoUnmarshal-4 1000000 1553 ns/op 353.43 MB/s -BenchmarkAndBranchProtoUnmarshal-4 1000000 1554 ns/op 353.09 MB/s -BenchmarkLeafProtoUnmarshal-4 5000000 642 ns/op 376.78 MB/s -BenchmarkDeepTreeProtoUnmarshal-4 1000000 1236 ns/op 240.13 MB/s -BenchmarkADeepBranchProtoUnmarshal-4 1000000 1493 ns/op 223.62 MB/s -BenchmarkAndDeepBranchProtoUnmarshal-4 1000000 2327 ns/op 272.81 MB/s -BenchmarkDeepLeafProtoUnmarshal-4 1000000 1068 ns/op 271.46 MB/s -BenchmarkNilProtoUnmarshal-4 5000000 396 ns/op 88.30 MB/s -BenchmarkNidOptEnumProtoUnmarshal-4 5000000 410 ns/op 90.10 MB/s -BenchmarkNinOptEnumProtoUnmarshal-4 5000000 448 ns/op 80.25 MB/s -BenchmarkNidRepEnumProtoUnmarshal-4 5000000 672 ns/op 63.91 MB/s -BenchmarkNinRepEnumProtoUnmarshal-4 5000000 667 ns/op 64.38 MB/s -BenchmarkNinOptEnumDefaultProtoUnmarshal-4 5000000 446 ns/op 80.63 MB/s -BenchmarkAnotherNinOptEnumProtoUnmarshal-4 5000000 449 ns/op 80.09 MB/s -BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal-4 5000000 449 ns/op 80.08 MB/s -BenchmarkTimerProtoUnmarshal-4 5000000 554 ns/op 189.24 MB/s -BenchmarkMyExtendableProtoUnmarshal-4 1000000 1445 ns/op 55.36 MB/s -BenchmarkOtherExtenableProtoUnmarshal-4 1000000 2544 ns/op 61.70 MB/s -BenchmarkNestedDefinitionProtoUnmarshal-4 1000000 1847 ns/op 246.34 MB/s -BenchmarkNestedDefinition_NestedMessageProtoUnmarshal-4 1000000 1071 ns/op 220.23 MB/s -BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal-4 5000000 688 ns/op 308.09 MB/s -BenchmarkNestedScopeProtoUnmarshal-4 1000000 1803 ns/op 247.86 MB/s -BenchmarkNinOptNativeDefaultProtoUnmarshal-4 1000000 1330 ns/op 255.61 MB/s -BenchmarkCustomContainerProtoUnmarshal-4 2000000 803 ns/op 134.48 MB/s -ok github.com/gogo/protobuf/test/mixbench/testdata 168.327s +ok github.com/gogo/protobuf/test/combos/unsafeboth 151.728s diff --git a/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go b/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go index 708b936db..7985d8199 100644 --- a/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go +++ b/vendor/github.com/gogo/protobuf/test/moredefaults/md.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: md.proto -// DO NOT EDIT! /* Package moredefaults is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/moredefaults/mdpb_test.go b/vendor/github.com/gogo/protobuf/test/moredefaults/mdpb_test.go index b60579393..4ca8445d7 100644 --- a/vendor/github.com/gogo/protobuf/test/moredefaults/mdpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/moredefaults/mdpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: md.proto -// DO NOT EDIT! /* Package moredefaults is a generated protocol buffer package. @@ -15,11 +14,10 @@ It has these top-level messages: package moredefaults import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestMoreDefaultsBProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMoreDefaultsB(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MoreDefaultsB{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -57,20 +55,20 @@ func TestMoreDefaultsBProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMoreDefaultsAProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMoreDefaultsA(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MoreDefaultsA{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -88,21 +86,21 @@ func TestMoreDefaultsAProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMoreDefaultsBJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMoreDefaultsB(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MoreDefaultsB{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -112,15 +110,15 @@ func TestMoreDefaultsBJSON(t *testing.T) { } func TestMoreDefaultsAJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMoreDefaultsA(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MoreDefaultsA{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -130,11 +128,11 @@ func TestMoreDefaultsAJSON(t *testing.T) { } func TestMoreDefaultsBProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMoreDefaultsB(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MoreDefaultsB{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -144,11 +142,11 @@ func TestMoreDefaultsBProtoText(t *testing.T) { func TestMoreDefaultsBProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMoreDefaultsB(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MoreDefaultsB{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -158,11 +156,11 @@ func TestMoreDefaultsBProtoCompactText(t *testing.T) { func TestMoreDefaultsAProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMoreDefaultsA(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MoreDefaultsA{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -172,11 +170,11 @@ func TestMoreDefaultsAProtoText(t *testing.T) { func TestMoreDefaultsAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMoreDefaultsA(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MoreDefaultsA{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { diff --git a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go index d6f6fd050..721fe1b55 100644 --- a/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go +++ b/vendor/github.com/gogo/protobuf/test/nopackage/nopackage.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: nopackage.proto -// DO NOT EDIT! /* Package nopackage is a generated protocol buffer package. @@ -17,6 +16,8 @@ import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import binary "encoding/binary" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -77,30 +78,13 @@ func (m *M) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Nopackage(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } return i, nil } -func encodeFixed64Nopackage(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 encodeFixed32Nopackage(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 encodeVarintNopackage(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -192,51 +176,14 @@ func (m *M) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowNopackage - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowNopackage - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthNopackage - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.F == nil { m.F = make(map[string]float64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowNopackage @@ -246,30 +193,62 @@ func (m *M) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNopackage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthNopackage + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipNopackage(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthNopackage + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.F[mapkey] = mapvalue - } else { - var mapvalue float64 - m.F[mapkey] = mapvalue } + m.F[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go index 340c44107..584dd6b6e 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/one.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -24,15 +23,16 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" +import binary "encoding/binary" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -976,286 +976,293 @@ func init() { proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs") proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof") } -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Subby) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *AllTypesOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllTypesOneOf) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *TwoOneofs) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *TwoOneofs) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomOneof) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func OneDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4043 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0xbf, 0xc0, 0x8b, 0x44, 0x1e, 0x52, 0x14, 0x04, 0xc9, 0xbb, 0x58, 0x39, 0xe6, 0xee, 0xd2, - 0x76, 0x2c, 0xdb, 0xb1, 0x64, 0x6b, 0xa5, 0xbd, 0x70, 0xff, 0x89, 0x87, 0xa4, 0xb8, 0x5a, 0xed, - 0x5f, 0x12, 0x15, 0x50, 0x8a, 0xd7, 0xe9, 0x03, 0x06, 0x04, 0x3f, 0x52, 0xd8, 0x05, 0x01, 0x06, - 0x00, 0x77, 0x2d, 0x3f, 0x6d, 0xc7, 0xbd, 0x4c, 0xa6, 0xd3, 0x5b, 0xda, 0x99, 0x26, 0xae, 0xe3, - 0xb6, 0x99, 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, - 0xce, 0x5b, 0xa7, 0xd3, 0xf1, 0x78, 0x15, 0xcf, 0x34, 0x6d, 0xdd, 0xd6, 0x6d, 0xdc, 0x69, 0xa6, - 0x7e, 0xe9, 0x7c, 0x37, 0x00, 0xbc, 0x68, 0x41, 0x65, 0xea, 0xe4, 0x49, 0xfa, 0xce, 0x39, 0xbf, - 0x1f, 0xce, 0x77, 0xbe, 0xf3, 0x7d, 0xe7, 0xe0, 0x23, 0xe0, 0x7b, 0x6b, 0x70, 0xae, 0x6d, 0xdb, - 0x6d, 0x13, 0x2d, 0x77, 0x1d, 0xdb, 0xb3, 0x1b, 0xbd, 0xd6, 0x72, 0x13, 0xb9, 0xba, 0x63, 0x74, - 0x3d, 0xdb, 0x59, 0x22, 0x32, 0x69, 0x86, 0x5a, 0x2c, 0x71, 0x8b, 0xc2, 0x36, 0xcc, 0x5e, 0x33, - 0x4c, 0xb4, 0xee, 0x1b, 0xd6, 0x91, 0x27, 0x5d, 0x86, 0x44, 0xcb, 0x30, 0x91, 0x2c, 0x9c, 0x8b, - 0x2f, 0x66, 0x56, 0x1e, 0x5b, 0x1a, 0x00, 0x2d, 0xf5, 0x23, 0x76, 0xb1, 0x58, 0x21, 0x88, 0xc2, - 0xbb, 0x09, 0x98, 0x1b, 0xa1, 0x95, 0x24, 0x48, 0x58, 0x5a, 0x07, 0x33, 0x0a, 0x8b, 0x69, 0x85, - 0xfc, 0x2f, 0xc9, 0x30, 0xd5, 0xd5, 0xf4, 0xdb, 0x5a, 0x1b, 0xc9, 0x31, 0x22, 0xe6, 0x43, 0x29, - 0x0f, 0xd0, 0x44, 0x5d, 0x64, 0x35, 0x91, 0xa5, 0x1f, 0xca, 0xf1, 0x73, 0xf1, 0xc5, 0xb4, 0x12, - 0x92, 0x48, 0x4f, 0xc3, 0x6c, 0xb7, 0xd7, 0x30, 0x0d, 0x5d, 0x0d, 0x99, 0xc1, 0xb9, 0xf8, 0x62, - 0x52, 0x11, 0xa9, 0x62, 0x3d, 0x30, 0x7e, 0x02, 0x66, 0xee, 0x22, 0xed, 0x76, 0xd8, 0x34, 0x43, - 0x4c, 0x73, 0x58, 0x1c, 0x32, 0xac, 0x40, 0xb6, 0x83, 0x5c, 0x57, 0x6b, 0x23, 0xd5, 0x3b, 0xec, - 0x22, 0x39, 0x41, 0x66, 0x7f, 0x6e, 0x68, 0xf6, 0x83, 0x33, 0xcf, 0x30, 0xd4, 0xde, 0x61, 0x17, - 0x49, 0x25, 0x48, 0x23, 0xab, 0xd7, 0xa1, 0x0c, 0xc9, 0x63, 0xe2, 0x57, 0xb5, 0x7a, 0x9d, 0x41, - 0x96, 0x14, 0x86, 0x31, 0x8a, 0x29, 0x17, 0x39, 0x77, 0x0c, 0x1d, 0xc9, 0x93, 0x84, 0xe0, 0x89, - 0x21, 0x82, 0x3a, 0xd5, 0x0f, 0x72, 0x70, 0x9c, 0x54, 0x81, 0x34, 0x7a, 0xc9, 0x43, 0x96, 0x6b, - 0xd8, 0x96, 0x3c, 0x45, 0x48, 0x1e, 0x1f, 0xb1, 0x8a, 0xc8, 0x6c, 0x0e, 0x52, 0x04, 0x38, 0xe9, - 0x22, 0x4c, 0xd9, 0x5d, 0xcf, 0xb0, 0x2d, 0x57, 0x4e, 0x9d, 0x13, 0x16, 0x33, 0x2b, 0x1f, 0x1b, - 0x99, 0x08, 0x35, 0x6a, 0xa3, 0x70, 0x63, 0x69, 0x13, 0x44, 0xd7, 0xee, 0x39, 0x3a, 0x52, 0x75, - 0xbb, 0x89, 0x54, 0xc3, 0x6a, 0xd9, 0x72, 0x9a, 0x10, 0x9c, 0x1d, 0x9e, 0x08, 0x31, 0xac, 0xd8, - 0x4d, 0xb4, 0x69, 0xb5, 0x6c, 0x25, 0xe7, 0xf6, 0x8d, 0xa5, 0x53, 0x30, 0xe9, 0x1e, 0x5a, 0x9e, - 0xf6, 0x92, 0x9c, 0x25, 0x19, 0xc2, 0x46, 0x85, 0xff, 0x4e, 0xc2, 0xcc, 0x38, 0x29, 0x76, 0x15, - 0x92, 0x2d, 0x3c, 0x4b, 0x39, 0x76, 0x92, 0x18, 0x50, 0x4c, 0x7f, 0x10, 0x27, 0x7f, 0xc4, 0x20, - 0x96, 0x20, 0x63, 0x21, 0xd7, 0x43, 0x4d, 0x9a, 0x11, 0xf1, 0x31, 0x73, 0x0a, 0x28, 0x68, 0x38, - 0xa5, 0x12, 0x3f, 0x52, 0x4a, 0xdd, 0x84, 0x19, 0xdf, 0x25, 0xd5, 0xd1, 0xac, 0x36, 0xcf, 0xcd, - 0xe5, 0x28, 0x4f, 0x96, 0xaa, 0x1c, 0xa7, 0x60, 0x98, 0x92, 0x43, 0x7d, 0x63, 0x69, 0x1d, 0xc0, - 0xb6, 0x90, 0xdd, 0x52, 0x9b, 0x48, 0x37, 0xe5, 0xd4, 0x31, 0x51, 0xaa, 0x61, 0x93, 0xa1, 0x28, - 0xd9, 0x54, 0xaa, 0x9b, 0xd2, 0x95, 0x20, 0xd5, 0xa6, 0x8e, 0xc9, 0x94, 0x6d, 0xba, 0xc9, 0x86, - 0xb2, 0x6d, 0x1f, 0x72, 0x0e, 0xc2, 0x79, 0x8f, 0x9a, 0x6c, 0x66, 0x69, 0xe2, 0xc4, 0x52, 0xe4, - 0xcc, 0x14, 0x06, 0xa3, 0x13, 0x9b, 0x76, 0xc2, 0x43, 0xe9, 0x51, 0xf0, 0x05, 0x2a, 0x49, 0x2b, - 0x20, 0xa7, 0x50, 0x96, 0x0b, 0x77, 0xb4, 0x0e, 0x5a, 0xb8, 0x0c, 0xb9, 0xfe, 0xf0, 0x48, 0xf3, - 0x90, 0x74, 0x3d, 0xcd, 0xf1, 0x48, 0x16, 0x26, 0x15, 0x3a, 0x90, 0x44, 0x88, 0x23, 0xab, 0x49, - 0x4e, 0xb9, 0xa4, 0x82, 0xff, 0x5d, 0xb8, 0x04, 0xd3, 0x7d, 0x8f, 0x1f, 0x17, 0x58, 0xf8, 0xe2, - 0x24, 0xcc, 0x8f, 0xca, 0xb9, 0x91, 0xe9, 0x7f, 0x0a, 0x26, 0xad, 0x5e, 0xa7, 0x81, 0x1c, 0x39, - 0x4e, 0x18, 0xd8, 0x48, 0x2a, 0x41, 0xd2, 0xd4, 0x1a, 0xc8, 0x94, 0x13, 0xe7, 0x84, 0xc5, 0xdc, - 0xca, 0xd3, 0x63, 0x65, 0xf5, 0xd2, 0x16, 0x86, 0x28, 0x14, 0x29, 0x7d, 0x0a, 0x12, 0xec, 0x88, - 0xc3, 0x0c, 0x4f, 0x8d, 0xc7, 0x80, 0x73, 0x51, 0x21, 0x38, 0xe9, 0x61, 0x48, 0xe3, 0xbf, 0x34, - 0xb6, 0x93, 0xc4, 0xe7, 0x14, 0x16, 0xe0, 0xb8, 0x4a, 0x0b, 0x90, 0x22, 0x69, 0xd6, 0x44, 0xbc, - 0x34, 0xf8, 0x63, 0xbc, 0x30, 0x4d, 0xd4, 0xd2, 0x7a, 0xa6, 0xa7, 0xde, 0xd1, 0xcc, 0x1e, 0x22, - 0x09, 0x93, 0x56, 0xb2, 0x4c, 0xf8, 0x19, 0x2c, 0x93, 0xce, 0x42, 0x86, 0x66, 0xa5, 0x61, 0x35, - 0xd1, 0x4b, 0xe4, 0xf4, 0x49, 0x2a, 0x34, 0x51, 0x37, 0xb1, 0x04, 0x3f, 0xfe, 0x96, 0x6b, 0x5b, - 0x7c, 0x69, 0xc9, 0x23, 0xb0, 0x80, 0x3c, 0xfe, 0xd2, 0xe0, 0xc1, 0xf7, 0xc8, 0xe8, 0xe9, 0x0d, - 0xe6, 0x62, 0xe1, 0x5b, 0x31, 0x48, 0x90, 0xfd, 0x36, 0x03, 0x99, 0xbd, 0x17, 0x77, 0xab, 0xea, - 0x7a, 0x6d, 0xbf, 0xbc, 0x55, 0x15, 0x05, 0x29, 0x07, 0x40, 0x04, 0xd7, 0xb6, 0x6a, 0xa5, 0x3d, - 0x31, 0xe6, 0x8f, 0x37, 0x77, 0xf6, 0x2e, 0xae, 0x8a, 0x71, 0x1f, 0xb0, 0x4f, 0x05, 0x89, 0xb0, - 0xc1, 0x85, 0x15, 0x31, 0x29, 0x89, 0x90, 0xa5, 0x04, 0x9b, 0x37, 0xab, 0xeb, 0x17, 0x57, 0xc5, - 0xc9, 0x7e, 0xc9, 0x85, 0x15, 0x71, 0x4a, 0x9a, 0x86, 0x34, 0x91, 0x94, 0x6b, 0xb5, 0x2d, 0x31, - 0xe5, 0x73, 0xd6, 0xf7, 0x94, 0xcd, 0x9d, 0x0d, 0x31, 0xed, 0x73, 0x6e, 0x28, 0xb5, 0xfd, 0x5d, - 0x11, 0x7c, 0x86, 0xed, 0x6a, 0xbd, 0x5e, 0xda, 0xa8, 0x8a, 0x19, 0xdf, 0xa2, 0xfc, 0xe2, 0x5e, - 0xb5, 0x2e, 0x66, 0xfb, 0xdc, 0xba, 0xb0, 0x22, 0x4e, 0xfb, 0x8f, 0xa8, 0xee, 0xec, 0x6f, 0x8b, - 0x39, 0x69, 0x16, 0xa6, 0xe9, 0x23, 0xb8, 0x13, 0x33, 0x03, 0xa2, 0x8b, 0xab, 0xa2, 0x18, 0x38, - 0x42, 0x59, 0x66, 0xfb, 0x04, 0x17, 0x57, 0x45, 0xa9, 0x50, 0x81, 0x24, 0xc9, 0x2e, 0x49, 0x82, - 0xdc, 0x56, 0xa9, 0x5c, 0xdd, 0x52, 0x6b, 0xbb, 0x7b, 0x9b, 0xb5, 0x9d, 0xd2, 0x96, 0x28, 0x04, - 0x32, 0xa5, 0xfa, 0xe9, 0xfd, 0x4d, 0xa5, 0xba, 0x2e, 0xc6, 0xc2, 0xb2, 0xdd, 0x6a, 0x69, 0xaf, - 0xba, 0x2e, 0xc6, 0x0b, 0x3a, 0xcc, 0x8f, 0x3a, 0x67, 0x46, 0xee, 0x8c, 0xd0, 0x12, 0xc7, 0x8e, - 0x59, 0x62, 0xc2, 0x35, 0xb4, 0xc4, 0x5f, 0x11, 0x60, 0x6e, 0xc4, 0x59, 0x3b, 0xf2, 0x21, 0xcf, - 0x43, 0x92, 0xa6, 0x28, 0xad, 0x3e, 0x4f, 0x8e, 0x3c, 0xb4, 0x49, 0xc2, 0x0e, 0x55, 0x20, 0x82, - 0x0b, 0x57, 0xe0, 0xf8, 0x31, 0x15, 0x18, 0x53, 0x0c, 0x39, 0xf9, 0x8a, 0x00, 0xf2, 0x71, 0xdc, - 0x11, 0x07, 0x45, 0xac, 0xef, 0xa0, 0xb8, 0x3a, 0xe8, 0xc0, 0xf9, 0xe3, 0xe7, 0x30, 0xe4, 0xc5, - 0x1b, 0x02, 0x9c, 0x1a, 0xdd, 0xa8, 0x8c, 0xf4, 0xe1, 0x53, 0x30, 0xd9, 0x41, 0xde, 0x81, 0xcd, - 0x8b, 0xf5, 0xc7, 0x47, 0x94, 0x00, 0xac, 0x1e, 0x8c, 0x15, 0x43, 0x85, 0x6b, 0x48, 0xfc, 0xb8, - 0x6e, 0x83, 0x7a, 0x33, 0xe4, 0xe9, 0xe7, 0x63, 0xf0, 0xd0, 0x48, 0xf2, 0x91, 0x8e, 0x3e, 0x02, - 0x60, 0x58, 0xdd, 0x9e, 0x47, 0x0b, 0x32, 0x3d, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0x3e, 0x7b, - 0x7a, 0x9e, 0xaf, 0x8f, 0x13, 0x3d, 0x50, 0x11, 0x31, 0xb8, 0x1c, 0x38, 0x9a, 0x20, 0x8e, 0xe6, - 0x8f, 0x99, 0xe9, 0x50, 0xad, 0x7b, 0x16, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, - 0xad, 0x63, 0x58, 0x6d, 0x72, 0x00, 0xa7, 0x8a, 0xc9, 0x96, 0x66, 0xba, 0x48, 0x99, 0xa1, 0xea, - 0x3a, 0xd7, 0x62, 0x04, 0xa9, 0x32, 0x4e, 0x08, 0x31, 0xd9, 0x87, 0xa0, 0x6a, 0x1f, 0x51, 0xf8, - 0xfa, 0x14, 0x64, 0x42, 0x6d, 0x9d, 0x74, 0x1e, 0xb2, 0xb7, 0xb4, 0x3b, 0x9a, 0xca, 0x5b, 0x75, - 0x1a, 0x89, 0x0c, 0x96, 0xed, 0xb2, 0x76, 0xfd, 0x59, 0x98, 0x27, 0x26, 0x76, 0xcf, 0x43, 0x8e, - 0xaa, 0x9b, 0x9a, 0xeb, 0x92, 0xa0, 0xa5, 0x88, 0xa9, 0x84, 0x75, 0x35, 0xac, 0xaa, 0x70, 0x8d, - 0xb4, 0x06, 0x73, 0x04, 0xd1, 0xe9, 0x99, 0x9e, 0xd1, 0x35, 0x91, 0x8a, 0x5f, 0x1e, 0x5c, 0x72, - 0x10, 0xfb, 0x9e, 0xcd, 0x62, 0x8b, 0x6d, 0x66, 0x80, 0x3d, 0x72, 0xa5, 0x75, 0x78, 0x84, 0xc0, - 0xda, 0xc8, 0x42, 0x8e, 0xe6, 0x21, 0x15, 0x7d, 0xae, 0xa7, 0x99, 0xae, 0xaa, 0x59, 0x4d, 0xf5, - 0x40, 0x73, 0x0f, 0xe4, 0x79, 0x4c, 0x50, 0x8e, 0xc9, 0x82, 0x72, 0x06, 0x1b, 0x6e, 0x30, 0xbb, - 0x2a, 0x31, 0x2b, 0x59, 0xcd, 0xeb, 0x9a, 0x7b, 0x20, 0x15, 0xe1, 0x14, 0x61, 0x71, 0x3d, 0xc7, - 0xb0, 0xda, 0xaa, 0x7e, 0x80, 0xf4, 0xdb, 0x6a, 0xcf, 0x6b, 0x5d, 0x96, 0x1f, 0x0e, 0x3f, 0x9f, - 0x78, 0x58, 0x27, 0x36, 0x15, 0x6c, 0xb2, 0xef, 0xb5, 0x2e, 0x4b, 0x75, 0xc8, 0xe2, 0xc5, 0xe8, - 0x18, 0x2f, 0x23, 0xb5, 0x65, 0x3b, 0xa4, 0xb2, 0xe4, 0x46, 0xec, 0xec, 0x50, 0x04, 0x97, 0x6a, - 0x0c, 0xb0, 0x6d, 0x37, 0x51, 0x31, 0x59, 0xdf, 0xad, 0x56, 0xd7, 0x95, 0x0c, 0x67, 0xb9, 0x66, - 0x3b, 0x38, 0xa1, 0xda, 0xb6, 0x1f, 0xe0, 0x0c, 0x4d, 0xa8, 0xb6, 0xcd, 0xc3, 0xbb, 0x06, 0x73, - 0xba, 0x4e, 0xe7, 0x6c, 0xe8, 0x2a, 0x6b, 0xf1, 0x5d, 0x59, 0xec, 0x0b, 0x96, 0xae, 0x6f, 0x50, - 0x03, 0x96, 0xe3, 0xae, 0x74, 0x05, 0x1e, 0x0a, 0x82, 0x15, 0x06, 0xce, 0x0e, 0xcd, 0x72, 0x10, - 0xba, 0x06, 0x73, 0xdd, 0xc3, 0x61, 0xa0, 0xd4, 0xf7, 0xc4, 0xee, 0xe1, 0x20, 0xec, 0x71, 0xf2, - 0xda, 0xe6, 0x20, 0x5d, 0xf3, 0x50, 0x53, 0x3e, 0x1d, 0xb6, 0x0e, 0x29, 0xa4, 0x65, 0x10, 0x75, - 0x5d, 0x45, 0x96, 0xd6, 0x30, 0x91, 0xaa, 0x39, 0xc8, 0xd2, 0x5c, 0xf9, 0x6c, 0xd8, 0x38, 0xa7, - 0xeb, 0x55, 0xa2, 0x2d, 0x11, 0xa5, 0xf4, 0x14, 0xcc, 0xda, 0x8d, 0x5b, 0x3a, 0xcd, 0x2c, 0xb5, - 0xeb, 0xa0, 0x96, 0xf1, 0x92, 0xfc, 0x18, 0x09, 0xd3, 0x0c, 0x56, 0x90, 0xbc, 0xda, 0x25, 0x62, - 0xe9, 0x49, 0x10, 0x75, 0xf7, 0x40, 0x73, 0xba, 0xa4, 0xb4, 0xbb, 0x5d, 0x4d, 0x47, 0xf2, 0xe3, - 0xd4, 0x94, 0xca, 0x77, 0xb8, 0x18, 0x67, 0xb6, 0x7b, 0xd7, 0x68, 0x79, 0x9c, 0xf1, 0x09, 0x9a, - 0xd9, 0x44, 0xc6, 0xd8, 0x6e, 0xc2, 0x7c, 0xcf, 0x32, 0x2c, 0x0f, 0x39, 0x5d, 0x07, 0xe1, 0x26, - 0x9e, 0xee, 0x44, 0xf9, 0x1f, 0xa7, 0x8e, 0x69, 0xc3, 0xf7, 0xc3, 0xd6, 0x34, 0x01, 0x94, 0xb9, - 0xde, 0xb0, 0xb0, 0x50, 0x84, 0x6c, 0x38, 0x2f, 0xa4, 0x34, 0xd0, 0xcc, 0x10, 0x05, 0x5c, 0x63, - 0x2b, 0xb5, 0x75, 0x5c, 0x1d, 0x3f, 0x5b, 0x15, 0x63, 0xb8, 0x4a, 0x6f, 0x6d, 0xee, 0x55, 0x55, - 0x65, 0x7f, 0x67, 0x6f, 0x73, 0xbb, 0x2a, 0xc6, 0x9f, 0x4a, 0xa7, 0xbe, 0x3f, 0x25, 0xde, 0xbb, - 0x77, 0xef, 0x5e, 0xac, 0xf0, 0x9d, 0x18, 0xe4, 0xfa, 0x3b, 0x63, 0xe9, 0xff, 0xc1, 0x69, 0xfe, - 0x1a, 0xeb, 0x22, 0x4f, 0xbd, 0x6b, 0x38, 0x24, 0x55, 0x3b, 0x1a, 0xed, 0x2d, 0xfd, 0x28, 0xcf, - 0x33, 0xab, 0x3a, 0xf2, 0x5e, 0x30, 0x1c, 0x9c, 0x88, 0x1d, 0xcd, 0x93, 0xb6, 0xe0, 0xac, 0x65, - 0xab, 0xae, 0xa7, 0x59, 0x4d, 0xcd, 0x69, 0xaa, 0xc1, 0x05, 0x82, 0xaa, 0xe9, 0x3a, 0x72, 0x5d, - 0x9b, 0x96, 0x08, 0x9f, 0xe5, 0x63, 0x96, 0x5d, 0x67, 0xc6, 0xc1, 0xd9, 0x59, 0x62, 0xa6, 0x03, - 0x19, 0x11, 0x3f, 0x2e, 0x23, 0x1e, 0x86, 0x74, 0x47, 0xeb, 0xaa, 0xc8, 0xf2, 0x9c, 0x43, 0xd2, - 0xcf, 0xa5, 0x94, 0x54, 0x47, 0xeb, 0x56, 0xf1, 0xf8, 0xa3, 0x5b, 0x83, 0x70, 0x1c, 0xff, 0x21, - 0x0e, 0xd9, 0x70, 0x4f, 0x87, 0x5b, 0x64, 0x9d, 0x9c, 0xdf, 0x02, 0xd9, 0xe1, 0x8f, 0x3e, 0xb0, - 0x03, 0x5c, 0xaa, 0xe0, 0x83, 0xbd, 0x38, 0x49, 0x3b, 0x2d, 0x85, 0x22, 0x71, 0x51, 0xc5, 0x7b, - 0x1a, 0xd1, 0xfe, 0x3d, 0xa5, 0xb0, 0x91, 0xb4, 0x01, 0x93, 0xb7, 0x5c, 0xc2, 0x3d, 0x49, 0xb8, - 0x1f, 0x7b, 0x30, 0xf7, 0x8d, 0x3a, 0x21, 0x4f, 0xdf, 0xa8, 0xab, 0x3b, 0x35, 0x65, 0xbb, 0xb4, - 0xa5, 0x30, 0xb8, 0x74, 0x06, 0x12, 0xa6, 0xf6, 0xf2, 0x61, 0x7f, 0x09, 0x20, 0xa2, 0x71, 0x03, - 0x7f, 0x06, 0x12, 0x77, 0x91, 0x76, 0xbb, 0xff, 0xe0, 0x25, 0xa2, 0x8f, 0x30, 0xf5, 0x97, 0x21, - 0x49, 0xe2, 0x25, 0x01, 0xb0, 0x88, 0x89, 0x13, 0x52, 0x0a, 0x12, 0x95, 0x9a, 0x82, 0xd3, 0x5f, - 0x84, 0x2c, 0x95, 0xaa, 0xbb, 0x9b, 0xd5, 0x4a, 0x55, 0x8c, 0x15, 0xd6, 0x60, 0x92, 0x06, 0x01, - 0x6f, 0x0d, 0x3f, 0x0c, 0xe2, 0x04, 0x1b, 0x32, 0x0e, 0x81, 0x6b, 0xf7, 0xb7, 0xcb, 0x55, 0x45, - 0x8c, 0x85, 0x97, 0xd7, 0x85, 0x6c, 0xb8, 0x9d, 0xfb, 0xf1, 0xe4, 0xd4, 0x5f, 0x0a, 0x90, 0x09, - 0xb5, 0x67, 0xb8, 0x31, 0xd0, 0x4c, 0xd3, 0xbe, 0xab, 0x6a, 0xa6, 0xa1, 0xb9, 0x2c, 0x29, 0x80, - 0x88, 0x4a, 0x58, 0x32, 0xee, 0xa2, 0xfd, 0x58, 0x9c, 0x7f, 0x5d, 0x00, 0x71, 0xb0, 0xb5, 0x1b, - 0x70, 0x50, 0xf8, 0x89, 0x3a, 0xf8, 0x9a, 0x00, 0xb9, 0xfe, 0x7e, 0x6e, 0xc0, 0xbd, 0xf3, 0x3f, - 0x51, 0xf7, 0xde, 0x89, 0xc1, 0x74, 0x5f, 0x17, 0x37, 0xae, 0x77, 0x9f, 0x83, 0x59, 0xa3, 0x89, - 0x3a, 0x5d, 0xdb, 0x43, 0x96, 0x7e, 0xa8, 0x9a, 0xe8, 0x0e, 0x32, 0xe5, 0x02, 0x39, 0x28, 0x96, - 0x1f, 0xdc, 0x27, 0x2e, 0x6d, 0x06, 0xb8, 0x2d, 0x0c, 0x2b, 0xce, 0x6d, 0xae, 0x57, 0xb7, 0x77, - 0x6b, 0x7b, 0xd5, 0x9d, 0xca, 0x8b, 0xea, 0xfe, 0xce, 0xff, 0xdf, 0xa9, 0xbd, 0xb0, 0xa3, 0x88, - 0xc6, 0x80, 0xd9, 0x47, 0xb8, 0xd5, 0x77, 0x41, 0x1c, 0x74, 0x4a, 0x3a, 0x0d, 0xa3, 0xdc, 0x12, - 0x27, 0xa4, 0x39, 0x98, 0xd9, 0xa9, 0xa9, 0xf5, 0xcd, 0xf5, 0xaa, 0x5a, 0xbd, 0x76, 0xad, 0x5a, - 0xd9, 0xab, 0xd3, 0x17, 0x67, 0xdf, 0x7a, 0xaf, 0x7f, 0x53, 0xbf, 0x1a, 0x87, 0xb9, 0x11, 0x9e, - 0x48, 0x25, 0xd6, 0xb3, 0xd3, 0xd7, 0x88, 0x67, 0xc6, 0xf1, 0x7e, 0x09, 0x77, 0x05, 0xbb, 0x9a, - 0xe3, 0xb1, 0x16, 0xff, 0x49, 0xc0, 0x51, 0xb2, 0x3c, 0xa3, 0x65, 0x20, 0x87, 0xdd, 0x33, 0xd0, - 0x46, 0x7e, 0x26, 0x90, 0xd3, 0xab, 0x86, 0x4f, 0x80, 0xd4, 0xb5, 0x5d, 0xc3, 0x33, 0xee, 0x20, - 0xd5, 0xb0, 0xf8, 0xa5, 0x04, 0x6e, 0xec, 0x13, 0x8a, 0xc8, 0x35, 0x9b, 0x96, 0xe7, 0x5b, 0x5b, - 0xa8, 0xad, 0x0d, 0x58, 0xe3, 0x03, 0x3c, 0xae, 0x88, 0x5c, 0xe3, 0x5b, 0x9f, 0x87, 0x6c, 0xd3, - 0xee, 0xe1, 0x36, 0x89, 0xda, 0xe1, 0x7a, 0x21, 0x28, 0x19, 0x2a, 0xf3, 0x4d, 0x58, 0x1f, 0x1b, - 0xdc, 0x86, 0x64, 0x95, 0x0c, 0x95, 0x51, 0x93, 0x27, 0x60, 0x46, 0x6b, 0xb7, 0x1d, 0x4c, 0xce, - 0x89, 0x68, 0x67, 0x9e, 0xf3, 0xc5, 0xc4, 0x70, 0xe1, 0x06, 0xa4, 0x78, 0x1c, 0x70, 0x49, 0xc6, - 0x91, 0x50, 0xbb, 0xf4, 0x4e, 0x2a, 0xb6, 0x98, 0x56, 0x52, 0x16, 0x57, 0x9e, 0x87, 0xac, 0xe1, - 0xaa, 0xc1, 0xe5, 0x68, 0xec, 0x5c, 0x6c, 0x31, 0xa5, 0x64, 0x0c, 0xd7, 0xbf, 0x0d, 0x2b, 0xbc, - 0x11, 0x83, 0x5c, 0xff, 0xe5, 0xae, 0xb4, 0x0e, 0x29, 0xd3, 0xd6, 0x35, 0x92, 0x5a, 0xf4, 0x97, - 0x85, 0xc5, 0x88, 0xfb, 0xe0, 0xa5, 0x2d, 0x66, 0xaf, 0xf8, 0xc8, 0x85, 0xbf, 0x15, 0x20, 0xc5, - 0xc5, 0xd2, 0x29, 0x48, 0x74, 0x35, 0xef, 0x80, 0xd0, 0x25, 0xcb, 0x31, 0x51, 0x50, 0xc8, 0x18, - 0xcb, 0xdd, 0xae, 0x66, 0x91, 0x14, 0x60, 0x72, 0x3c, 0xc6, 0xeb, 0x6a, 0x22, 0xad, 0x49, 0xda, - 0x7e, 0xbb, 0xd3, 0x41, 0x96, 0xe7, 0xf2, 0x75, 0x65, 0xf2, 0x0a, 0x13, 0x4b, 0x4f, 0xc3, 0xac, - 0xe7, 0x68, 0x86, 0xd9, 0x67, 0x9b, 0x20, 0xb6, 0x22, 0x57, 0xf8, 0xc6, 0x45, 0x38, 0xc3, 0x79, - 0x9b, 0xc8, 0xd3, 0xf4, 0x03, 0xd4, 0x0c, 0x40, 0x93, 0xe4, 0xe6, 0xf0, 0x34, 0x33, 0x58, 0x67, - 0x7a, 0x8e, 0x2d, 0x7c, 0x57, 0x80, 0x59, 0xfe, 0xa2, 0xd2, 0xf4, 0x83, 0xb5, 0x0d, 0xa0, 0x59, - 0x96, 0xed, 0x85, 0xc3, 0x35, 0x9c, 0xca, 0x43, 0xb8, 0xa5, 0x92, 0x0f, 0x52, 0x42, 0x04, 0x0b, - 0x1d, 0x80, 0x40, 0x73, 0x6c, 0xd8, 0xce, 0x42, 0x86, 0xdd, 0xdc, 0x93, 0x9f, 0x7f, 0xe8, 0xab, - 0x2d, 0x50, 0x11, 0x7e, 0xa3, 0x91, 0xe6, 0x21, 0xd9, 0x40, 0x6d, 0xc3, 0x62, 0xf7, 0x89, 0x74, - 0xc0, 0x6f, 0x29, 0x13, 0xfe, 0x2d, 0x65, 0xf9, 0x26, 0xcc, 0xe9, 0x76, 0x67, 0xd0, 0xdd, 0xb2, - 0x38, 0xf0, 0x7a, 0xed, 0x5e, 0x17, 0x3e, 0x0b, 0x41, 0x8b, 0xf9, 0x95, 0x58, 0x7c, 0x63, 0xb7, - 0xfc, 0xb5, 0xd8, 0xc2, 0x06, 0xc5, 0xed, 0xf2, 0x69, 0x2a, 0xa8, 0x65, 0x22, 0x1d, 0xbb, 0x0e, - 0x3f, 0xf8, 0x38, 0x3c, 0xd3, 0x36, 0xbc, 0x83, 0x5e, 0x63, 0x49, 0xb7, 0x3b, 0xcb, 0x6d, 0xbb, - 0x6d, 0x07, 0x3f, 0x77, 0xe1, 0x11, 0x19, 0x90, 0xff, 0xd8, 0x4f, 0x5e, 0x69, 0x5f, 0xba, 0x10, - 0xf9, 0xfb, 0x58, 0x71, 0x07, 0xe6, 0x98, 0xb1, 0x4a, 0xee, 0xdc, 0xe9, 0xab, 0x81, 0xf4, 0xc0, - 0x7b, 0x17, 0xf9, 0x9b, 0xef, 0x92, 0x5a, 0xad, 0xcc, 0x32, 0x28, 0xd6, 0xd1, 0x17, 0x88, 0xa2, - 0x02, 0x0f, 0xf5, 0xf1, 0xd1, 0x7d, 0x89, 0x9c, 0x08, 0xc6, 0xef, 0x30, 0xc6, 0xb9, 0x10, 0x63, - 0x9d, 0x41, 0x8b, 0x15, 0x98, 0x3e, 0x09, 0xd7, 0x5f, 0x33, 0xae, 0x2c, 0x0a, 0x93, 0x6c, 0xc0, - 0x0c, 0x21, 0xd1, 0x7b, 0xae, 0x67, 0x77, 0xc8, 0xa1, 0xf7, 0x60, 0x9a, 0xbf, 0x79, 0x97, 0x6e, - 0x94, 0x1c, 0x86, 0x55, 0x7c, 0x54, 0xb1, 0x08, 0xe4, 0x67, 0x86, 0x26, 0xd2, 0xcd, 0x08, 0x86, - 0x37, 0x99, 0x23, 0xbe, 0x7d, 0xf1, 0x33, 0x30, 0x8f, 0xff, 0x27, 0x67, 0x52, 0xd8, 0x93, 0xe8, - 0x5b, 0x26, 0xf9, 0xbb, 0xaf, 0xd0, 0xbd, 0x38, 0xe7, 0x13, 0x84, 0x7c, 0x0a, 0xad, 0x62, 0x1b, - 0x79, 0x1e, 0x72, 0x5c, 0x55, 0x33, 0x47, 0xb9, 0x17, 0x7a, 0x4d, 0x97, 0xbf, 0xf4, 0x5e, 0xff, - 0x2a, 0x6e, 0x50, 0x64, 0xc9, 0x34, 0x8b, 0xfb, 0x70, 0x7a, 0x44, 0x56, 0x8c, 0xc1, 0xf9, 0x2a, - 0xe3, 0x9c, 0x1f, 0xca, 0x0c, 0x4c, 0xbb, 0x0b, 0x5c, 0xee, 0xaf, 0xe5, 0x18, 0x9c, 0xbf, 0xc9, - 0x38, 0x25, 0x86, 0xe5, 0x4b, 0x8a, 0x19, 0x6f, 0xc0, 0xec, 0x1d, 0xe4, 0x34, 0x6c, 0x97, 0x5d, - 0x8d, 0x8c, 0x41, 0xf7, 0x1a, 0xa3, 0x9b, 0x61, 0x40, 0x72, 0x57, 0x82, 0xb9, 0xae, 0x40, 0xaa, - 0xa5, 0xe9, 0x68, 0x0c, 0x8a, 0x2f, 0x33, 0x8a, 0x29, 0x6c, 0x8f, 0xa1, 0x25, 0xc8, 0xb6, 0x6d, - 0x56, 0x96, 0xa2, 0xe1, 0xaf, 0x33, 0x78, 0x86, 0x63, 0x18, 0x45, 0xd7, 0xee, 0xf6, 0x4c, 0x5c, - 0xb3, 0xa2, 0x29, 0x7e, 0x8b, 0x53, 0x70, 0x0c, 0xa3, 0x38, 0x41, 0x58, 0x7f, 0x9b, 0x53, 0xb8, - 0xa1, 0x78, 0x3e, 0x0f, 0x19, 0xdb, 0x32, 0x0f, 0x6d, 0x6b, 0x1c, 0x27, 0x7e, 0x87, 0x31, 0x00, - 0x83, 0x60, 0x82, 0xab, 0x90, 0x1e, 0x77, 0x21, 0x7e, 0xf7, 0x3d, 0xbe, 0x3d, 0xf8, 0x0a, 0x6c, - 0xc0, 0x0c, 0x3f, 0xa0, 0x0c, 0xdb, 0x1a, 0x83, 0xe2, 0xf7, 0x18, 0x45, 0x2e, 0x04, 0x63, 0xd3, - 0xf0, 0x90, 0xeb, 0xb5, 0xd1, 0x38, 0x24, 0x6f, 0xf0, 0x69, 0x30, 0x08, 0x0b, 0x65, 0x03, 0x59, - 0xfa, 0xc1, 0x78, 0x0c, 0x5f, 0xe5, 0xa1, 0xe4, 0x18, 0x4c, 0x51, 0x81, 0xe9, 0x8e, 0xe6, 0xb8, - 0x07, 0x9a, 0x39, 0xd6, 0x72, 0xfc, 0x3e, 0xe3, 0xc8, 0xfa, 0x20, 0x16, 0x91, 0x9e, 0x75, 0x12, - 0x9a, 0xaf, 0xf1, 0x88, 0x84, 0x60, 0x6c, 0xeb, 0xb9, 0x1e, 0xb9, 0x80, 0x3a, 0x09, 0xdb, 0xd7, - 0xf9, 0xd6, 0xa3, 0xd8, 0xed, 0x30, 0xe3, 0x55, 0x48, 0xbb, 0xc6, 0xcb, 0x63, 0xd1, 0xfc, 0x01, - 0x5f, 0x69, 0x02, 0xc0, 0xe0, 0x17, 0xe1, 0xcc, 0xc8, 0x32, 0x31, 0x06, 0xd9, 0x1f, 0x32, 0xb2, - 0x53, 0x23, 0x4a, 0x05, 0x3b, 0x12, 0x4e, 0x4a, 0xf9, 0x47, 0xfc, 0x48, 0x40, 0x03, 0x5c, 0xbb, - 0xf8, 0x45, 0xc1, 0xd5, 0x5a, 0x27, 0x8b, 0xda, 0x1f, 0xf3, 0xa8, 0x51, 0x6c, 0x5f, 0xd4, 0xf6, - 0xe0, 0x14, 0x63, 0x3c, 0xd9, 0xba, 0x7e, 0x83, 0x1f, 0xac, 0x14, 0xbd, 0xdf, 0xbf, 0xba, 0x3f, - 0x05, 0x0b, 0x7e, 0x38, 0x79, 0x47, 0xea, 0xaa, 0x1d, 0xad, 0x3b, 0x06, 0xf3, 0x37, 0x19, 0x33, - 0x3f, 0xf1, 0xfd, 0x96, 0xd6, 0xdd, 0xd6, 0xba, 0x98, 0xfc, 0x26, 0xc8, 0x9c, 0xbc, 0x67, 0x39, - 0x48, 0xb7, 0xdb, 0x96, 0xf1, 0x32, 0x6a, 0x8e, 0x41, 0xfd, 0x27, 0x03, 0x4b, 0xb5, 0x1f, 0x82, - 0x63, 0xe6, 0x4d, 0x10, 0xfd, 0x5e, 0x45, 0x35, 0x3a, 0x5d, 0xdb, 0xf1, 0x22, 0x18, 0xff, 0x94, - 0xaf, 0x94, 0x8f, 0xdb, 0x24, 0xb0, 0x62, 0x15, 0x72, 0x64, 0x38, 0x6e, 0x4a, 0xfe, 0x19, 0x23, - 0x9a, 0x0e, 0x50, 0xec, 0xe0, 0xd0, 0xed, 0x4e, 0x57, 0x73, 0xc6, 0x39, 0xff, 0xfe, 0x9c, 0x1f, - 0x1c, 0x0c, 0xc2, 0x0e, 0x0e, 0xef, 0xb0, 0x8b, 0x70, 0xb5, 0x1f, 0x83, 0xe1, 0x5b, 0xfc, 0xe0, - 0xe0, 0x18, 0x46, 0xc1, 0x1b, 0x86, 0x31, 0x28, 0xfe, 0x82, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x74, - 0x50, 0x68, 0x1d, 0xd4, 0x36, 0x5c, 0xcf, 0xa1, 0x7d, 0xf0, 0x83, 0xa9, 0xbe, 0xfd, 0x5e, 0x7f, - 0x13, 0xa6, 0x84, 0xa0, 0xc5, 0x1b, 0x30, 0x33, 0xd0, 0x62, 0x48, 0x51, 0xdf, 0x2c, 0xc8, 0x3f, - 0xfd, 0x01, 0x3b, 0x8c, 0xfa, 0x3b, 0x8c, 0xe2, 0x16, 0x5e, 0xf7, 0xfe, 0x3e, 0x20, 0x9a, 0xec, - 0x95, 0x0f, 0xfc, 0xa5, 0xef, 0x6b, 0x03, 0x8a, 0xd7, 0x60, 0xba, 0xaf, 0x07, 0x88, 0xa6, 0xfa, - 0x19, 0x46, 0x95, 0x0d, 0xb7, 0x00, 0xc5, 0x35, 0x48, 0xe0, 0x7a, 0x1e, 0x0d, 0xff, 0x59, 0x06, - 0x27, 0xe6, 0xc5, 0x4f, 0x42, 0x8a, 0xd7, 0xf1, 0x68, 0xe8, 0xcf, 0x31, 0xa8, 0x0f, 0xc1, 0x70, - 0x5e, 0xc3, 0xa3, 0xe1, 0x3f, 0xcf, 0xe1, 0x1c, 0x82, 0xe1, 0xe3, 0x87, 0xf0, 0xaf, 0x7e, 0x21, - 0xc1, 0xce, 0x61, 0x1e, 0xbb, 0xab, 0x30, 0xc5, 0x8a, 0x77, 0x34, 0xfa, 0xf3, 0xec, 0xe1, 0x1c, - 0x51, 0xbc, 0x04, 0xc9, 0x31, 0x03, 0xfe, 0x8b, 0x0c, 0x4a, 0xed, 0x8b, 0x15, 0xc8, 0x84, 0x0a, - 0x76, 0x34, 0xfc, 0x97, 0x18, 0x3c, 0x8c, 0xc2, 0xae, 0xb3, 0x82, 0x1d, 0x4d, 0xf0, 0xcb, 0xdc, - 0x75, 0x86, 0xc0, 0x61, 0xe3, 0xb5, 0x3a, 0x1a, 0xfd, 0x2b, 0x3c, 0xea, 0x1c, 0x52, 0x7c, 0x1e, - 0xd2, 0xfe, 0xf9, 0x1b, 0x8d, 0xff, 0x55, 0x86, 0x0f, 0x30, 0x38, 0x02, 0xa1, 0xf3, 0x3f, 0x9a, - 0xe2, 0x0b, 0x3c, 0x02, 0x21, 0x14, 0xde, 0x46, 0x83, 0x35, 0x3d, 0x9a, 0xe9, 0xd7, 0xf8, 0x36, - 0x1a, 0x28, 0xe9, 0x78, 0x35, 0xc9, 0x31, 0x18, 0x4d, 0xf1, 0xeb, 0x7c, 0x35, 0x89, 0x3d, 0x76, - 0x63, 0xb0, 0x48, 0x46, 0x73, 0xfc, 0x06, 0x77, 0x63, 0xa0, 0x46, 0x16, 0x77, 0x41, 0x1a, 0x2e, - 0x90, 0xd1, 0x7c, 0x5f, 0x64, 0x7c, 0xb3, 0x43, 0xf5, 0xb1, 0xf8, 0x02, 0x9c, 0x1a, 0x5d, 0x1c, - 0xa3, 0x59, 0xbf, 0xf4, 0xc1, 0xc0, 0xeb, 0x4c, 0xb8, 0x36, 0x16, 0xf7, 0x82, 0x53, 0x36, 0x5c, - 0x18, 0xa3, 0x69, 0x5f, 0xfd, 0xa0, 0xff, 0xa0, 0x0d, 0xd7, 0xc5, 0x62, 0x09, 0x20, 0xa8, 0x49, - 0xd1, 0x5c, 0xaf, 0x31, 0xae, 0x10, 0x08, 0x6f, 0x0d, 0x56, 0x92, 0xa2, 0xf1, 0x5f, 0xe6, 0x5b, - 0x83, 0x21, 0xf0, 0xd6, 0xe0, 0xd5, 0x28, 0x1a, 0xfd, 0x3a, 0xdf, 0x1a, 0x1c, 0x52, 0xbc, 0x0a, - 0x29, 0xab, 0x67, 0x9a, 0x38, 0xb7, 0xa4, 0x07, 0x7f, 0x46, 0x24, 0xff, 0xd3, 0x87, 0x0c, 0xcc, - 0x01, 0xc5, 0x35, 0x48, 0xa2, 0x4e, 0x03, 0x35, 0xa3, 0x90, 0xff, 0xfc, 0x21, 0x3f, 0x4f, 0xb0, - 0x75, 0xf1, 0x79, 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xcb, 0x87, 0xec, 0x0b, - 0x85, 0x00, 0x12, 0x10, 0xd0, 0xef, 0x1d, 0x1e, 0x4c, 0xf0, 0x5e, 0x3f, 0x01, 0x79, 0x01, 0xbf, - 0x02, 0x53, 0xb7, 0x5c, 0xdb, 0xf2, 0xb4, 0x76, 0x14, 0xfa, 0x5f, 0x19, 0x9a, 0xdb, 0xe3, 0x80, - 0x75, 0x6c, 0x07, 0x79, 0x5a, 0xdb, 0x8d, 0xc2, 0xfe, 0x1b, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x35, - 0xd7, 0x1b, 0x67, 0xde, 0xff, 0xce, 0xc1, 0x1c, 0x80, 0x9d, 0xc6, 0xff, 0xdf, 0x46, 0x87, 0x51, - 0xd8, 0xf7, 0xb9, 0xd3, 0xcc, 0xbe, 0xf8, 0x49, 0x48, 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x11, 0xe0, - 0xff, 0x60, 0xe0, 0x00, 0x81, 0x9f, 0xec, 0x7a, 0x4d, 0xcf, 0x88, 0x0e, 0xf6, 0x7f, 0xb2, 0x95, - 0xe6, 0xf6, 0xc5, 0x12, 0x64, 0x5c, 0xaf, 0xd9, 0xec, 0xb1, 0x8e, 0x26, 0x02, 0xfe, 0x83, 0x0f, - 0xfd, 0x97, 0x5c, 0x1f, 0x53, 0x3e, 0x3f, 0xfa, 0xb2, 0x0e, 0x36, 0xec, 0x0d, 0x9b, 0x5e, 0xd3, - 0xc1, 0x7f, 0xa5, 0xe0, 0x21, 0xdd, 0xee, 0x34, 0x6c, 0x77, 0xb9, 0x61, 0x7b, 0x07, 0xcb, 0xb6, - 0xc5, 0x0c, 0xa5, 0xb8, 0x6d, 0xa1, 0x85, 0x93, 0xdd, 0xc8, 0x15, 0xce, 0x40, 0xb2, 0xde, 0x6b, - 0x34, 0x0e, 0x25, 0x11, 0xe2, 0x6e, 0xaf, 0xc1, 0x3e, 0x29, 0xc1, 0xff, 0x16, 0xde, 0x8e, 0xc3, - 0x74, 0xc9, 0x34, 0xf7, 0x0e, 0xbb, 0xc8, 0xad, 0x59, 0xa8, 0xd6, 0x92, 0x64, 0x98, 0x24, 0x53, - 0x78, 0x8e, 0x98, 0x09, 0xd7, 0x27, 0x14, 0x36, 0xf6, 0x35, 0x2b, 0xe4, 0xa2, 0x32, 0xe6, 0x6b, - 0x56, 0x7c, 0xcd, 0x05, 0x7a, 0x4f, 0xe9, 0x6b, 0x2e, 0xf8, 0x9a, 0x55, 0x72, 0x5b, 0x19, 0xf7, - 0x35, 0xab, 0xbe, 0x66, 0x8d, 0xdc, 0xc6, 0x4f, 0xfb, 0x9a, 0x35, 0x5f, 0x73, 0x91, 0xdc, 0xbf, - 0x27, 0x7c, 0xcd, 0x45, 0x5f, 0x73, 0x89, 0x5c, 0xbb, 0xcf, 0xfa, 0x9a, 0x4b, 0xbe, 0xe6, 0x32, - 0xb9, 0x6a, 0x97, 0x7c, 0xcd, 0x65, 0x5f, 0x73, 0x85, 0x7c, 0x3b, 0x32, 0xe5, 0x6b, 0xae, 0x48, - 0x0b, 0x30, 0x45, 0x67, 0xf6, 0x2c, 0xf9, 0x3d, 0x76, 0xe6, 0xfa, 0x84, 0xc2, 0x05, 0x81, 0xee, - 0x39, 0xf2, 0x7d, 0xc8, 0x64, 0xa0, 0x7b, 0x2e, 0xd0, 0xad, 0x90, 0xaf, 0xa4, 0xc5, 0x40, 0xb7, - 0x12, 0xe8, 0x2e, 0xc8, 0xd3, 0x78, 0xe5, 0x03, 0xdd, 0x85, 0x40, 0xb7, 0x2a, 0xe7, 0xf0, 0x0a, - 0x04, 0xba, 0xd5, 0x40, 0xb7, 0x26, 0xcf, 0x9c, 0x13, 0x16, 0xb3, 0x81, 0x6e, 0x4d, 0x7a, 0x06, - 0x32, 0x6e, 0xaf, 0xa1, 0xb2, 0xcf, 0x07, 0xc8, 0x77, 0x28, 0x99, 0x15, 0x58, 0xc2, 0x39, 0x41, - 0x96, 0xf5, 0xfa, 0x84, 0x02, 0x6e, 0xaf, 0xc1, 0x8e, 0xc6, 0x72, 0x16, 0xc8, 0x4d, 0x82, 0x4a, - 0xbe, 0xbe, 0x2c, 0xbc, 0x25, 0x40, 0x7a, 0xef, 0xae, 0x4d, 0x7e, 0x8d, 0x75, 0xff, 0x8f, 0x17, - 0x97, 0x3b, 0x7d, 0x61, 0x95, 0xfc, 0x60, 0x96, 0xbe, 0x2e, 0x28, 0x5c, 0x10, 0xe8, 0xd6, 0xe4, - 0x47, 0xc9, 0x84, 0x7c, 0xdd, 0x9a, 0xb4, 0x0c, 0xd9, 0xd0, 0x84, 0x56, 0xc8, 0xa7, 0x25, 0xfd, - 0x33, 0x12, 0x94, 0x4c, 0x30, 0xa3, 0x95, 0x72, 0x12, 0x70, 0xda, 0xe3, 0x3f, 0xde, 0x5d, 0xbb, - 0xf0, 0x85, 0x18, 0x64, 0xe8, 0xe5, 0x23, 0x99, 0x15, 0x7e, 0x14, 0x6d, 0xc6, 0x0f, 0x99, 0x1b, - 0x13, 0x0a, 0x17, 0x48, 0x0a, 0x00, 0x35, 0xc5, 0x19, 0x4e, 0x3d, 0x29, 0x3f, 0xfb, 0xf7, 0x6f, - 0x9f, 0xfd, 0xc4, 0xb1, 0x3b, 0x08, 0xc7, 0x6e, 0x99, 0x1e, 0xad, 0x4b, 0xfb, 0x86, 0xe5, 0x3d, - 0xb7, 0x72, 0x19, 0x07, 0x38, 0x60, 0x91, 0xf6, 0x21, 0x55, 0xd1, 0x5c, 0xf2, 0x6d, 0x19, 0x71, - 0x3d, 0x51, 0xbe, 0xf4, 0x3f, 0x6f, 0x9f, 0xbd, 0x10, 0xc1, 0xc8, 0x4e, 0xbd, 0xa5, 0xed, 0x43, - 0xcc, 0x7a, 0x71, 0x15, 0xc3, 0xaf, 0x4f, 0x28, 0x3e, 0x95, 0xb4, 0xc2, 0x5d, 0xdd, 0xd1, 0x3a, - 0xf4, 0x1b, 0x9a, 0x78, 0x59, 0x3c, 0x7a, 0xfb, 0x6c, 0x76, 0xfb, 0x30, 0x90, 0x07, 0xae, 0xe0, - 0x51, 0x39, 0x05, 0x93, 0xd4, 0xd5, 0xf2, 0xfa, 0x9b, 0xf7, 0xf3, 0x13, 0x6f, 0xdd, 0xcf, 0x4f, - 0xfc, 0xdd, 0xfd, 0xfc, 0xc4, 0x3b, 0xf7, 0xf3, 0xc2, 0xfb, 0xf7, 0xf3, 0xc2, 0x0f, 0xef, 0xe7, - 0x85, 0x7b, 0x47, 0x79, 0xe1, 0xab, 0x47, 0x79, 0xe1, 0x1b, 0x47, 0x79, 0xe1, 0xdb, 0x47, 0x79, - 0xe1, 0xcd, 0xa3, 0xbc, 0xf0, 0xd6, 0x51, 0x5e, 0x78, 0xe7, 0x28, 0x2f, 0x7c, 0xff, 0x28, 0x3f, - 0xf1, 0xfe, 0x51, 0x5e, 0xf8, 0xe1, 0x51, 0x7e, 0xe2, 0xde, 0xf7, 0xf2, 0x13, 0xff, 0x1b, 0x00, - 0x00, 0xff, 0xff, 0xb8, 0x5b, 0xbb, 0x19, 0xd4, 0x32, 0x00, 0x00, + // 4152 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x6b, 0x6c, 0x1c, 0xd7, + 0x75, 0xe6, 0xec, 0x83, 0xdc, 0x3d, 0xbb, 0x5c, 0x0e, 0x2f, 0x69, 0x69, 0x45, 0xc7, 0x2b, 0x69, + 0x6d, 0x47, 0xb4, 0x1d, 0x93, 0x36, 0x45, 0xea, 0xb1, 0x6a, 0xe2, 0x2e, 0xc9, 0x15, 0x45, 0x95, + 0xe4, 0x32, 0x43, 0x32, 0x7e, 0x04, 0xc5, 0x60, 0x38, 0x7b, 0xb9, 0x1c, 0x69, 0x76, 0x66, 0x32, + 0x33, 0x2b, 0x99, 0x42, 0x7f, 0xa8, 0x70, 0x1f, 0x08, 0x8a, 0xbe, 0xd2, 0x02, 0x49, 0x5c, 0xc7, + 0x7d, 0x00, 0xad, 0xd3, 0xf4, 0x95, 0x34, 0x6d, 0x9a, 0xf6, 0x57, 0xff, 0xa4, 0xf5, 0xaf, 0xc2, + 0xf9, 0x57, 0x14, 0x85, 0x61, 0x31, 0x06, 0x9a, 0xb6, 0x6e, 0xe3, 0xb6, 0x2e, 0x60, 0xd4, 0x7f, + 0x8a, 0xfb, 0x9a, 0x99, 0x7d, 0x50, 0xb3, 0x0c, 0x62, 0xe7, 0x17, 0x39, 0xe7, 0x9c, 0xef, 0x9b, + 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0x7b, 0xef, 0x0e, 0xfc, 0xe0, 0x32, 0x9c, 0x69, 0xda, 0x76, 0xd3, + 0xc4, 0xb3, 0x8e, 0x6b, 0xfb, 0xf6, 0x6e, 0x7b, 0x6f, 0xb6, 0x81, 0x3d, 0xdd, 0x35, 0x1c, 0xdf, + 0x76, 0x67, 0xa8, 0x0c, 0x8d, 0x31, 0x8b, 0x19, 0x61, 0x51, 0x5e, 0x87, 0xf1, 0xab, 0x86, 0x89, + 0x97, 0x03, 0xc3, 0x2d, 0xec, 0xa3, 0x4b, 0x90, 0xda, 0x33, 0x4c, 0x5c, 0x94, 0xce, 0x24, 0xa7, + 0x73, 0x73, 0x8f, 0xcc, 0x74, 0x81, 0x66, 0x3a, 0x11, 0x9b, 0x44, 0xac, 0x50, 0x44, 0xf9, 0xed, + 0x14, 0x4c, 0xf4, 0xd1, 0x22, 0x04, 0x29, 0x4b, 0x6b, 0x11, 0x46, 0x69, 0x3a, 0xab, 0xd0, 0xff, + 0x51, 0x11, 0x46, 0x1c, 0x4d, 0xbf, 0xa9, 0x35, 0x71, 0x31, 0x41, 0xc5, 0xe2, 0x11, 0x95, 0x00, + 0x1a, 0xd8, 0xc1, 0x56, 0x03, 0x5b, 0xfa, 0x41, 0x31, 0x79, 0x26, 0x39, 0x9d, 0x55, 0x22, 0x12, + 0xf4, 0x04, 0x8c, 0x3b, 0xed, 0x5d, 0xd3, 0xd0, 0xd5, 0x88, 0x19, 0x9c, 0x49, 0x4e, 0xa7, 0x15, + 0x99, 0x29, 0x96, 0x43, 0xe3, 0x73, 0x30, 0x76, 0x1b, 0x6b, 0x37, 0xa3, 0xa6, 0x39, 0x6a, 0x5a, + 0x20, 0xe2, 0x88, 0xe1, 0x12, 0xe4, 0x5b, 0xd8, 0xf3, 0xb4, 0x26, 0x56, 0xfd, 0x03, 0x07, 0x17, + 0x53, 0x74, 0xf4, 0x67, 0x7a, 0x46, 0xdf, 0x3d, 0xf2, 0x1c, 0x47, 0x6d, 0x1f, 0x38, 0x18, 0x55, + 0x21, 0x8b, 0xad, 0x76, 0x8b, 0x31, 0xa4, 0x8f, 0x88, 0x5f, 0xcd, 0x6a, 0xb7, 0xba, 0x59, 0x32, + 0x04, 0xc6, 0x29, 0x46, 0x3c, 0xec, 0xde, 0x32, 0x74, 0x5c, 0x1c, 0xa6, 0x04, 0xe7, 0x7a, 0x08, + 0xb6, 0x98, 0xbe, 0x9b, 0x43, 0xe0, 0xd0, 0x12, 0x64, 0xf1, 0x8b, 0x3e, 0xb6, 0x3c, 0xc3, 0xb6, + 0x8a, 0x23, 0x94, 0xe4, 0xd1, 0x3e, 0xb3, 0x88, 0xcd, 0x46, 0x37, 0x45, 0x88, 0x43, 0x17, 0x60, + 0xc4, 0x76, 0x7c, 0xc3, 0xb6, 0xbc, 0x62, 0xe6, 0x8c, 0x34, 0x9d, 0x9b, 0xfb, 0x58, 0xdf, 0x44, + 0xa8, 0x33, 0x1b, 0x45, 0x18, 0xa3, 0x55, 0x90, 0x3d, 0xbb, 0xed, 0xea, 0x58, 0xd5, 0xed, 0x06, + 0x56, 0x0d, 0x6b, 0xcf, 0x2e, 0x66, 0x29, 0xc1, 0xe9, 0xde, 0x81, 0x50, 0xc3, 0x25, 0xbb, 0x81, + 0x57, 0xad, 0x3d, 0x5b, 0x29, 0x78, 0x1d, 0xcf, 0xe8, 0x04, 0x0c, 0x7b, 0x07, 0x96, 0xaf, 0xbd, + 0x58, 0xcc, 0xd3, 0x0c, 0xe1, 0x4f, 0xe5, 0xbf, 0x1e, 0x86, 0xb1, 0x41, 0x52, 0xec, 0x0a, 0xa4, + 0xf7, 0xc8, 0x28, 0x8b, 0x89, 0xe3, 0xc4, 0x80, 0x61, 0x3a, 0x83, 0x38, 0xfc, 0x43, 0x06, 0xb1, + 0x0a, 0x39, 0x0b, 0x7b, 0x3e, 0x6e, 0xb0, 0x8c, 0x48, 0x0e, 0x98, 0x53, 0xc0, 0x40, 0xbd, 0x29, + 0x95, 0xfa, 0xa1, 0x52, 0xea, 0x39, 0x18, 0x0b, 0x5c, 0x52, 0x5d, 0xcd, 0x6a, 0x8a, 0xdc, 0x9c, + 0x8d, 0xf3, 0x64, 0xa6, 0x26, 0x70, 0x0a, 0x81, 0x29, 0x05, 0xdc, 0xf1, 0x8c, 0x96, 0x01, 0x6c, + 0x0b, 0xdb, 0x7b, 0x6a, 0x03, 0xeb, 0x66, 0x31, 0x73, 0x44, 0x94, 0xea, 0xc4, 0xa4, 0x27, 0x4a, + 0x36, 0x93, 0xea, 0x26, 0xba, 0x1c, 0xa6, 0xda, 0xc8, 0x11, 0x99, 0xb2, 0xce, 0x16, 0x59, 0x4f, + 0xb6, 0xed, 0x40, 0xc1, 0xc5, 0x24, 0xef, 0x71, 0x83, 0x8f, 0x2c, 0x4b, 0x9d, 0x98, 0x89, 0x1d, + 0x99, 0xc2, 0x61, 0x6c, 0x60, 0xa3, 0x6e, 0xf4, 0x11, 0x3d, 0x0c, 0x81, 0x40, 0xa5, 0x69, 0x05, + 0xb4, 0x0a, 0xe5, 0x85, 0x70, 0x43, 0x6b, 0xe1, 0xa9, 0x3b, 0x50, 0xe8, 0x0c, 0x0f, 0x9a, 0x84, + 0xb4, 0xe7, 0x6b, 0xae, 0x4f, 0xb3, 0x30, 0xad, 0xb0, 0x07, 0x24, 0x43, 0x12, 0x5b, 0x0d, 0x5a, + 0xe5, 0xd2, 0x0a, 0xf9, 0x17, 0xfd, 0x64, 0x38, 0xe0, 0x24, 0x1d, 0xf0, 0xc7, 0x7b, 0x67, 0xb4, + 0x83, 0xb9, 0x7b, 0xdc, 0x53, 0x17, 0x61, 0xb4, 0x63, 0x00, 0x83, 0xbe, 0xba, 0xfc, 0x33, 0xf0, + 0x40, 0x5f, 0x6a, 0xf4, 0x1c, 0x4c, 0xb6, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, 0x64, 0x2c, + 0x7b, 0x55, 0xf1, 0x5f, 0x46, 0x8e, 0xc8, 0xb9, 0x9d, 0xa8, 0x35, 0x63, 0x51, 0x26, 0xda, 0xbd, + 0xc2, 0xc7, 0xb3, 0x99, 0xef, 0x8f, 0xc8, 0x77, 0xef, 0xde, 0xbd, 0x9b, 0x28, 0x7f, 0x69, 0x18, + 0x26, 0xfb, 0xad, 0x99, 0xbe, 0xcb, 0xf7, 0x04, 0x0c, 0x5b, 0xed, 0xd6, 0x2e, 0x76, 0x69, 0x90, + 0xd2, 0x0a, 0x7f, 0x42, 0x55, 0x48, 0x9b, 0xda, 0x2e, 0x36, 0x8b, 0xa9, 0x33, 0xd2, 0x74, 0x61, + 0xee, 0x89, 0x81, 0x56, 0xe5, 0xcc, 0x1a, 0x81, 0x28, 0x0c, 0x89, 0x3e, 0x05, 0x29, 0x5e, 0xa2, + 0x09, 0xc3, 0xe3, 0x83, 0x31, 0x90, 0xb5, 0xa4, 0x50, 0x1c, 0x7a, 0x10, 0xb2, 0xe4, 0x2f, 0xcb, + 0x8d, 0x61, 0xea, 0x73, 0x86, 0x08, 0x48, 0x5e, 0xa0, 0x29, 0xc8, 0xd0, 0x65, 0xd2, 0xc0, 0xa2, + 0xb5, 0x05, 0xcf, 0x24, 0xb1, 0x1a, 0x78, 0x4f, 0x6b, 0x9b, 0xbe, 0x7a, 0x4b, 0x33, 0xdb, 0x98, + 0x26, 0x7c, 0x56, 0xc9, 0x73, 0xe1, 0x67, 0x88, 0x0c, 0x9d, 0x86, 0x1c, 0x5b, 0x55, 0x86, 0xd5, + 0xc0, 0x2f, 0xd2, 0xea, 0x99, 0x56, 0xd8, 0x42, 0x5b, 0x25, 0x12, 0xf2, 0xfa, 0x1b, 0x9e, 0x6d, + 0x89, 0xd4, 0xa4, 0xaf, 0x20, 0x02, 0xfa, 0xfa, 0x8b, 0xdd, 0x85, 0xfb, 0xa1, 0xfe, 0xc3, 0xeb, + 0xce, 0xa9, 0xf2, 0xb7, 0x12, 0x90, 0xa2, 0xf5, 0x62, 0x0c, 0x72, 0xdb, 0xcf, 0x6f, 0xd6, 0xd4, + 0xe5, 0xfa, 0xce, 0xe2, 0x5a, 0x4d, 0x96, 0x50, 0x01, 0x80, 0x0a, 0xae, 0xae, 0xd5, 0xab, 0xdb, + 0x72, 0x22, 0x78, 0x5e, 0xdd, 0xd8, 0xbe, 0x30, 0x2f, 0x27, 0x03, 0xc0, 0x0e, 0x13, 0xa4, 0xa2, + 0x06, 0xe7, 0xe7, 0xe4, 0x34, 0x92, 0x21, 0xcf, 0x08, 0x56, 0x9f, 0xab, 0x2d, 0x5f, 0x98, 0x97, + 0x87, 0x3b, 0x25, 0xe7, 0xe7, 0xe4, 0x11, 0x34, 0x0a, 0x59, 0x2a, 0x59, 0xac, 0xd7, 0xd7, 0xe4, + 0x4c, 0xc0, 0xb9, 0xb5, 0xad, 0xac, 0x6e, 0xac, 0xc8, 0xd9, 0x80, 0x73, 0x45, 0xa9, 0xef, 0x6c, + 0xca, 0x10, 0x30, 0xac, 0xd7, 0xb6, 0xb6, 0xaa, 0x2b, 0x35, 0x39, 0x17, 0x58, 0x2c, 0x3e, 0xbf, + 0x5d, 0xdb, 0x92, 0xf3, 0x1d, 0x6e, 0x9d, 0x9f, 0x93, 0x47, 0x83, 0x57, 0xd4, 0x36, 0x76, 0xd6, + 0xe5, 0x02, 0x1a, 0x87, 0x51, 0xf6, 0x0a, 0xe1, 0xc4, 0x58, 0x97, 0xe8, 0xc2, 0xbc, 0x2c, 0x87, + 0x8e, 0x30, 0x96, 0xf1, 0x0e, 0xc1, 0x85, 0x79, 0x19, 0x95, 0x97, 0x20, 0x4d, 0xb3, 0x0b, 0x21, + 0x28, 0xac, 0x55, 0x17, 0x6b, 0x6b, 0x6a, 0x7d, 0x73, 0x7b, 0xb5, 0xbe, 0x51, 0x5d, 0x93, 0xa5, + 0x50, 0xa6, 0xd4, 0x3e, 0xbd, 0xb3, 0xaa, 0xd4, 0x96, 0xe5, 0x44, 0x54, 0xb6, 0x59, 0xab, 0x6e, + 0xd7, 0x96, 0xe5, 0x64, 0x59, 0x87, 0xc9, 0x7e, 0x75, 0xb2, 0xef, 0xca, 0x88, 0x4c, 0x71, 0xe2, + 0x88, 0x29, 0xa6, 0x5c, 0x3d, 0x53, 0xfc, 0xbd, 0x04, 0x4c, 0xf4, 0xe9, 0x15, 0x7d, 0x5f, 0xf2, + 0x0c, 0xa4, 0x59, 0x8a, 0xb2, 0xee, 0xf9, 0x58, 0xdf, 0xa6, 0x43, 0x13, 0xb6, 0xa7, 0x83, 0x52, + 0x5c, 0x74, 0x07, 0x91, 0x3c, 0x62, 0x07, 0x41, 0x28, 0x7a, 0x6a, 0xfa, 0x4f, 0xf7, 0xd4, 0x74, + 0xd6, 0xf6, 0x2e, 0x0c, 0xd2, 0xf6, 0xa8, 0xec, 0x78, 0xb5, 0x3d, 0xdd, 0xa7, 0xb6, 0x5f, 0x81, + 0xf1, 0x1e, 0xa2, 0x81, 0x6b, 0xec, 0x4b, 0x12, 0x14, 0x8f, 0x0a, 0x4e, 0x4c, 0xa5, 0x4b, 0x74, + 0x54, 0xba, 0x2b, 0xdd, 0x11, 0x3c, 0x7b, 0xf4, 0x24, 0xf4, 0xcc, 0xf5, 0x6b, 0x12, 0x9c, 0xe8, + 0xbf, 0x53, 0xec, 0xeb, 0xc3, 0xa7, 0x60, 0xb8, 0x85, 0xfd, 0x7d, 0x5b, 0xec, 0x96, 0x3e, 0xde, + 0xa7, 0x07, 0x13, 0x75, 0xf7, 0x64, 0x73, 0x54, 0xb4, 0x89, 0x27, 0x8f, 0xda, 0xee, 0x31, 0x6f, + 0x7a, 0x3c, 0xfd, 0x7c, 0x02, 0x1e, 0xe8, 0x4b, 0xde, 0xd7, 0xd1, 0x87, 0x00, 0x0c, 0xcb, 0x69, + 0xfb, 0x6c, 0x47, 0xc4, 0x0a, 0x6c, 0x96, 0x4a, 0x68, 0xf1, 0x22, 0xc5, 0xb3, 0xed, 0x07, 0xfa, + 0x24, 0xd5, 0x03, 0x13, 0x51, 0x83, 0x4b, 0xa1, 0xa3, 0x29, 0xea, 0x68, 0xe9, 0x88, 0x91, 0xf6, + 0x24, 0xe6, 0x53, 0x20, 0xeb, 0xa6, 0x81, 0x2d, 0x5f, 0xf5, 0x7c, 0x17, 0x6b, 0x2d, 0xc3, 0x6a, + 0xd2, 0x0e, 0x92, 0xa9, 0xa4, 0xf7, 0x34, 0xd3, 0xc3, 0xca, 0x18, 0x53, 0x6f, 0x09, 0x2d, 0x41, + 0xd0, 0x04, 0x72, 0x23, 0x88, 0xe1, 0x0e, 0x04, 0x53, 0x07, 0x88, 0xf2, 0x37, 0x33, 0x90, 0x8b, + 0xec, 0xab, 0xd1, 0x59, 0xc8, 0xdf, 0xd0, 0x6e, 0x69, 0xaa, 0x38, 0x2b, 0xb1, 0x48, 0xe4, 0x88, + 0x6c, 0x93, 0x9f, 0x97, 0x9e, 0x82, 0x49, 0x6a, 0x62, 0xb7, 0x7d, 0xec, 0xaa, 0xba, 0xa9, 0x79, + 0x1e, 0x0d, 0x5a, 0x86, 0x9a, 0x22, 0xa2, 0xab, 0x13, 0xd5, 0x92, 0xd0, 0xa0, 0x05, 0x98, 0xa0, + 0x88, 0x56, 0xdb, 0xf4, 0x0d, 0xc7, 0xc4, 0x2a, 0x39, 0xbd, 0x79, 0xb4, 0x93, 0x04, 0x9e, 0x8d, + 0x13, 0x8b, 0x75, 0x6e, 0x40, 0x3c, 0xf2, 0xd0, 0x32, 0x3c, 0x44, 0x61, 0x4d, 0x6c, 0x61, 0x57, + 0xf3, 0xb1, 0x8a, 0x3f, 0xd7, 0xd6, 0x4c, 0x4f, 0xd5, 0xac, 0x86, 0xba, 0xaf, 0x79, 0xfb, 0xc5, + 0x49, 0x42, 0xb0, 0x98, 0x28, 0x4a, 0xca, 0x29, 0x62, 0xb8, 0xc2, 0xed, 0x6a, 0xd4, 0xac, 0x6a, + 0x35, 0xae, 0x69, 0xde, 0x3e, 0xaa, 0xc0, 0x09, 0xca, 0xe2, 0xf9, 0xae, 0x61, 0x35, 0x55, 0x7d, + 0x1f, 0xeb, 0x37, 0xd5, 0xb6, 0xbf, 0x77, 0xa9, 0xf8, 0x60, 0xf4, 0xfd, 0xd4, 0xc3, 0x2d, 0x6a, + 0xb3, 0x44, 0x4c, 0x76, 0xfc, 0xbd, 0x4b, 0x68, 0x0b, 0xf2, 0x64, 0x32, 0x5a, 0xc6, 0x1d, 0xac, + 0xee, 0xd9, 0x2e, 0x6d, 0x8d, 0x85, 0x3e, 0xa5, 0x29, 0x12, 0xc1, 0x99, 0x3a, 0x07, 0xac, 0xdb, + 0x0d, 0x5c, 0x49, 0x6f, 0x6d, 0xd6, 0x6a, 0xcb, 0x4a, 0x4e, 0xb0, 0x5c, 0xb5, 0x5d, 0x92, 0x50, + 0x4d, 0x3b, 0x08, 0x70, 0x8e, 0x25, 0x54, 0xd3, 0x16, 0xe1, 0x5d, 0x80, 0x09, 0x5d, 0x67, 0x63, + 0x36, 0x74, 0x95, 0x9f, 0xb1, 0xbc, 0xa2, 0xdc, 0x11, 0x2c, 0x5d, 0x5f, 0x61, 0x06, 0x3c, 0xc7, + 0x3d, 0x74, 0x19, 0x1e, 0x08, 0x83, 0x15, 0x05, 0x8e, 0xf7, 0x8c, 0xb2, 0x1b, 0xba, 0x00, 0x13, + 0xce, 0x41, 0x2f, 0x10, 0x75, 0xbc, 0xd1, 0x39, 0xe8, 0x86, 0x5d, 0x84, 0x49, 0x67, 0xdf, 0xe9, + 0xc5, 0x3d, 0x1e, 0xc5, 0x21, 0x67, 0xdf, 0xe9, 0x06, 0x3e, 0x4a, 0x0f, 0xdc, 0x2e, 0xd6, 0x35, + 0x1f, 0x37, 0x8a, 0x27, 0xa3, 0xe6, 0x11, 0x05, 0x9a, 0x05, 0x59, 0xd7, 0x55, 0x6c, 0x69, 0xbb, + 0x26, 0x56, 0x35, 0x17, 0x5b, 0x9a, 0x57, 0x3c, 0x1d, 0x35, 0x2e, 0xe8, 0x7a, 0x8d, 0x6a, 0xab, + 0x54, 0x89, 0x1e, 0x87, 0x71, 0x7b, 0xf7, 0x86, 0xce, 0x52, 0x52, 0x75, 0x5c, 0xbc, 0x67, 0xbc, + 0x58, 0x7c, 0x84, 0xc6, 0x77, 0x8c, 0x28, 0x68, 0x42, 0x6e, 0x52, 0x31, 0x7a, 0x0c, 0x64, 0xdd, + 0xdb, 0xd7, 0x5c, 0x87, 0xd6, 0x64, 0xcf, 0xd1, 0x74, 0x5c, 0x7c, 0x94, 0x99, 0x32, 0xf9, 0x86, + 0x10, 0x93, 0x25, 0xe1, 0xdd, 0x36, 0xf6, 0x7c, 0xc1, 0x78, 0x8e, 0x2d, 0x09, 0x2a, 0xe3, 0x6c, + 0xd3, 0x20, 0x93, 0x50, 0x74, 0xbc, 0x78, 0x9a, 0x9a, 0x15, 0x9c, 0x7d, 0x27, 0xfa, 0xde, 0x87, + 0x61, 0x94, 0x58, 0x86, 0x2f, 0x7d, 0x8c, 0x6d, 0xc8, 0x9c, 0xfd, 0xc8, 0x1b, 0x3f, 0xb4, 0xbd, + 0x71, 0xb9, 0x02, 0xf9, 0x68, 0x7e, 0xa2, 0x2c, 0xb0, 0x0c, 0x95, 0x25, 0xb2, 0x59, 0x59, 0xaa, + 0x2f, 0x93, 0x6d, 0xc6, 0x0b, 0x35, 0x39, 0x41, 0xb6, 0x3b, 0x6b, 0xab, 0xdb, 0x35, 0x55, 0xd9, + 0xd9, 0xd8, 0x5e, 0x5d, 0xaf, 0xc9, 0xc9, 0xe8, 0xbe, 0xfa, 0x3b, 0x09, 0x28, 0x74, 0x1e, 0x91, + 0xd0, 0x4f, 0xc0, 0x49, 0x71, 0x9f, 0xe1, 0x61, 0x5f, 0xbd, 0x6d, 0xb8, 0x74, 0xc9, 0xb4, 0x34, + 0xd6, 0xbe, 0x82, 0x49, 0x9b, 0xe4, 0x56, 0x5b, 0xd8, 0x7f, 0xd6, 0x70, 0xc9, 0x82, 0x68, 0x69, + 0x3e, 0x5a, 0x83, 0xd3, 0x96, 0xad, 0x7a, 0xbe, 0x66, 0x35, 0x34, 0xb7, 0xa1, 0x86, 0x37, 0x49, + 0xaa, 0xa6, 0xeb, 0xd8, 0xf3, 0x6c, 0xd6, 0xaa, 0x02, 0x96, 0x8f, 0x59, 0xf6, 0x16, 0x37, 0x0e, + 0x6b, 0x78, 0x95, 0x9b, 0x76, 0x25, 0x58, 0xf2, 0xa8, 0x04, 0x7b, 0x10, 0xb2, 0x2d, 0xcd, 0x51, + 0xb1, 0xe5, 0xbb, 0x07, 0x74, 0x63, 0x9c, 0x51, 0x32, 0x2d, 0xcd, 0xa9, 0x91, 0xe7, 0x8f, 0xe6, + 0x7c, 0xf2, 0xcf, 0x49, 0xc8, 0x47, 0x37, 0xc7, 0xe4, 0xac, 0xa1, 0xd3, 0x3e, 0x22, 0xd1, 0x4a, + 0xf3, 0xf0, 0x7d, 0xb7, 0xd2, 0x33, 0x4b, 0xa4, 0xc1, 0x54, 0x86, 0xd9, 0x96, 0x55, 0x61, 0x48, + 0xd2, 0xdc, 0x49, 0x6d, 0xc1, 0x6c, 0x8b, 0x90, 0x51, 0xf8, 0x13, 0x5a, 0x81, 0xe1, 0x1b, 0x1e, + 0xe5, 0x1e, 0xa6, 0xdc, 0x8f, 0xdc, 0x9f, 0xfb, 0xfa, 0x16, 0x25, 0xcf, 0x5e, 0xdf, 0x52, 0x37, + 0xea, 0xca, 0x7a, 0x75, 0x4d, 0xe1, 0x70, 0x74, 0x0a, 0x52, 0xa6, 0x76, 0xe7, 0xa0, 0xb3, 0x15, + 0x51, 0xd1, 0xa0, 0x81, 0x3f, 0x05, 0xa9, 0xdb, 0x58, 0xbb, 0xd9, 0xd9, 0x00, 0xa8, 0xe8, 0x43, + 0x4c, 0xfd, 0x59, 0x48, 0xd3, 0x78, 0x21, 0x00, 0x1e, 0x31, 0x79, 0x08, 0x65, 0x20, 0xb5, 0x54, + 0x57, 0x48, 0xfa, 0xcb, 0x90, 0x67, 0x52, 0x75, 0x73, 0xb5, 0xb6, 0x54, 0x93, 0x13, 0xe5, 0x05, + 0x18, 0x66, 0x41, 0x20, 0x4b, 0x23, 0x08, 0x83, 0x3c, 0xc4, 0x1f, 0x39, 0x87, 0x24, 0xb4, 0x3b, + 0xeb, 0x8b, 0x35, 0x45, 0x4e, 0x44, 0xa7, 0xd7, 0x83, 0x7c, 0x74, 0x5f, 0xfc, 0xd1, 0xe4, 0xd4, + 0xdf, 0x48, 0x90, 0x8b, 0xec, 0x73, 0xc9, 0x06, 0x45, 0x33, 0x4d, 0xfb, 0xb6, 0xaa, 0x99, 0x86, + 0xe6, 0xf1, 0xa4, 0x00, 0x2a, 0xaa, 0x12, 0xc9, 0xa0, 0x93, 0xf6, 0x91, 0x38, 0xff, 0xaa, 0x04, + 0x72, 0xf7, 0x16, 0xb3, 0xcb, 0x41, 0xe9, 0xc7, 0xea, 0xe0, 0x2b, 0x12, 0x14, 0x3a, 0xf7, 0x95, + 0x5d, 0xee, 0x9d, 0xfd, 0xb1, 0xba, 0xf7, 0x56, 0x02, 0x46, 0x3b, 0x76, 0x93, 0x83, 0x7a, 0xf7, + 0x39, 0x18, 0x37, 0x1a, 0xb8, 0xe5, 0xd8, 0x3e, 0xb6, 0xf4, 0x03, 0xd5, 0xc4, 0xb7, 0xb0, 0x59, + 0x2c, 0xd3, 0x42, 0x31, 0x7b, 0xff, 0xfd, 0xea, 0xcc, 0x6a, 0x88, 0x5b, 0x23, 0xb0, 0xca, 0xc4, + 0xea, 0x72, 0x6d, 0x7d, 0xb3, 0xbe, 0x5d, 0xdb, 0x58, 0x7a, 0x5e, 0xdd, 0xd9, 0xf8, 0xa9, 0x8d, + 0xfa, 0xb3, 0x1b, 0x8a, 0x6c, 0x74, 0x99, 0x7d, 0x88, 0x4b, 0x7d, 0x13, 0xe4, 0x6e, 0xa7, 0xd0, + 0x49, 0xe8, 0xe7, 0x96, 0x3c, 0x84, 0x26, 0x60, 0x6c, 0xa3, 0xae, 0x6e, 0xad, 0x2e, 0xd7, 0xd4, + 0xda, 0xd5, 0xab, 0xb5, 0xa5, 0xed, 0x2d, 0x76, 0x03, 0x11, 0x58, 0x6f, 0x77, 0x2e, 0xea, 0x97, + 0x93, 0x30, 0xd1, 0xc7, 0x13, 0x54, 0xe5, 0x67, 0x07, 0x76, 0x9c, 0x79, 0x72, 0x10, 0xef, 0x67, + 0x48, 0xcb, 0xdf, 0xd4, 0x5c, 0x9f, 0x1f, 0x35, 0x1e, 0x03, 0x12, 0x25, 0xcb, 0x37, 0xf6, 0x0c, + 0xec, 0xf2, 0x0b, 0x1b, 0x76, 0xa0, 0x18, 0x0b, 0xe5, 0xec, 0xce, 0xe6, 0x13, 0x80, 0x1c, 0xdb, + 0x33, 0x7c, 0xe3, 0x16, 0x56, 0x0d, 0x4b, 0xdc, 0xee, 0x90, 0x03, 0x46, 0x4a, 0x91, 0x85, 0x66, + 0xd5, 0xf2, 0x03, 0x6b, 0x0b, 0x37, 0xb5, 0x2e, 0x6b, 0x52, 0xc0, 0x93, 0x8a, 0x2c, 0x34, 0x81, + 0xf5, 0x59, 0xc8, 0x37, 0xec, 0x36, 0xd9, 0x75, 0x31, 0x3b, 0xd2, 0x2f, 0x24, 0x25, 0xc7, 0x64, + 0x81, 0x09, 0xdf, 0x4f, 0x87, 0xd7, 0x4a, 0x79, 0x25, 0xc7, 0x64, 0xcc, 0xe4, 0x1c, 0x8c, 0x69, + 0xcd, 0xa6, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0x14, 0x02, 0x31, 0x35, 0x9c, 0xba, 0x0e, 0x19, + 0x11, 0x07, 0xd2, 0x92, 0x49, 0x24, 0x54, 0x87, 0x1d, 0x7b, 0x13, 0xd3, 0x59, 0x25, 0x63, 0x09, + 0xe5, 0x59, 0xc8, 0x1b, 0x9e, 0x1a, 0xde, 0x92, 0x27, 0xce, 0x24, 0xa6, 0x33, 0x4a, 0xce, 0xf0, + 0x82, 0x1b, 0xc6, 0xf2, 0x6b, 0x09, 0x28, 0x74, 0xde, 0xf2, 0xa3, 0x65, 0xc8, 0x98, 0xb6, 0xae, + 0xd1, 0xd4, 0x62, 0x3f, 0x31, 0x4d, 0xc7, 0xfc, 0x30, 0x30, 0xb3, 0xc6, 0xed, 0x95, 0x00, 0x39, + 0xf5, 0x0f, 0x12, 0x64, 0x84, 0x18, 0x9d, 0x80, 0x94, 0xa3, 0xf9, 0xfb, 0x94, 0x2e, 0xbd, 0x98, + 0x90, 0x25, 0x85, 0x3e, 0x13, 0xb9, 0xe7, 0x68, 0x16, 0x4d, 0x01, 0x2e, 0x27, 0xcf, 0x64, 0x5e, + 0x4d, 0xac, 0x35, 0xe8, 0xf1, 0xc3, 0x6e, 0xb5, 0xb0, 0xe5, 0x7b, 0x62, 0x5e, 0xb9, 0x7c, 0x89, + 0x8b, 0xd1, 0x13, 0x30, 0xee, 0xbb, 0x9a, 0x61, 0x76, 0xd8, 0xa6, 0xa8, 0xad, 0x2c, 0x14, 0x81, + 0x71, 0x05, 0x4e, 0x09, 0xde, 0x06, 0xf6, 0x35, 0x7d, 0x1f, 0x37, 0x42, 0xd0, 0x30, 0xbd, 0x66, + 0x38, 0xc9, 0x0d, 0x96, 0xb9, 0x5e, 0x60, 0xcb, 0xdf, 0x95, 0x60, 0x5c, 0x1c, 0x98, 0x1a, 0x41, + 0xb0, 0xd6, 0x01, 0x34, 0xcb, 0xb2, 0xfd, 0x68, 0xb8, 0x7a, 0x53, 0xb9, 0x07, 0x37, 0x53, 0x0d, + 0x40, 0x4a, 0x84, 0x60, 0xaa, 0x05, 0x10, 0x6a, 0x8e, 0x0c, 0xdb, 0x69, 0xc8, 0xf1, 0x9f, 0x70, + 0xe8, 0xef, 0x80, 0xec, 0x88, 0x0d, 0x4c, 0x44, 0x4e, 0x56, 0x68, 0x12, 0xd2, 0xbb, 0xb8, 0x69, + 0x58, 0xfc, 0x62, 0x96, 0x3d, 0x88, 0x8b, 0x90, 0x54, 0x70, 0x11, 0xb2, 0xf8, 0x59, 0x98, 0xd0, + 0xed, 0x56, 0xb7, 0xbb, 0x8b, 0x72, 0xd7, 0x31, 0xdf, 0xbb, 0x26, 0xbd, 0x00, 0xe1, 0x16, 0xf3, + 0x7d, 0x49, 0xfa, 0xbd, 0x44, 0x72, 0x65, 0x73, 0xf1, 0x6b, 0x89, 0xa9, 0x15, 0x06, 0xdd, 0x14, + 0x23, 0x55, 0xf0, 0x9e, 0x89, 0x75, 0xe2, 0x3d, 0x7c, 0xf1, 0x1c, 0x3c, 0xd9, 0x34, 0xfc, 0xfd, + 0xf6, 0xee, 0x8c, 0x6e, 0xb7, 0x66, 0x9b, 0x76, 0xd3, 0x0e, 0x7f, 0xfa, 0x24, 0x4f, 0xf4, 0x81, + 0xfe, 0xc7, 0x7f, 0xfe, 0xcc, 0x06, 0xd2, 0xa9, 0xd8, 0xdf, 0x4a, 0x2b, 0x1b, 0x30, 0xc1, 0x8d, + 0x55, 0xfa, 0xfb, 0x0b, 0x3b, 0x45, 0xa0, 0xfb, 0xde, 0x61, 0x15, 0xbf, 0xf1, 0x36, 0x6d, 0xd7, + 0xca, 0x38, 0x87, 0x12, 0x1d, 0x3b, 0x68, 0x54, 0x14, 0x78, 0xa0, 0x83, 0x8f, 0x2d, 0x4d, 0xec, + 0xc6, 0x30, 0x7e, 0x87, 0x33, 0x4e, 0x44, 0x18, 0xb7, 0x38, 0xb4, 0xb2, 0x04, 0xa3, 0xc7, 0xe1, + 0xfa, 0x3b, 0xce, 0x95, 0xc7, 0x51, 0x92, 0x15, 0x18, 0xa3, 0x24, 0x7a, 0xdb, 0xf3, 0xed, 0x16, + 0xad, 0x7b, 0xf7, 0xa7, 0xf9, 0xfb, 0xb7, 0xd9, 0x5a, 0x29, 0x10, 0xd8, 0x52, 0x80, 0xaa, 0x54, + 0x80, 0xfe, 0xe4, 0xd4, 0xc0, 0xba, 0x19, 0xc3, 0xf0, 0x3a, 0x77, 0x24, 0xb0, 0xaf, 0x7c, 0x06, + 0x26, 0xc9, 0xff, 0xb4, 0x2c, 0x45, 0x3d, 0x89, 0xbf, 0xf0, 0x2a, 0x7e, 0xf7, 0x25, 0xb6, 0x1c, + 0x27, 0x02, 0x82, 0x88, 0x4f, 0x91, 0x59, 0x6c, 0x62, 0xdf, 0xc7, 0xae, 0xa7, 0x6a, 0x66, 0x3f, + 0xf7, 0x22, 0x37, 0x06, 0xc5, 0x2f, 0xbf, 0xd3, 0x39, 0x8b, 0x2b, 0x0c, 0x59, 0x35, 0xcd, 0xca, + 0x0e, 0x9c, 0xec, 0x93, 0x15, 0x03, 0x70, 0xbe, 0xcc, 0x39, 0x27, 0x7b, 0x32, 0x83, 0xd0, 0x6e, + 0x82, 0x90, 0x07, 0x73, 0x39, 0x00, 0xe7, 0x6f, 0x71, 0x4e, 0xc4, 0xb1, 0x62, 0x4a, 0x09, 0xe3, + 0x75, 0x18, 0xbf, 0x85, 0xdd, 0x5d, 0xdb, 0xe3, 0xb7, 0x34, 0x03, 0xd0, 0xbd, 0xc2, 0xe9, 0xc6, + 0x38, 0x90, 0x5e, 0xdb, 0x10, 0xae, 0xcb, 0x90, 0xd9, 0xd3, 0x74, 0x3c, 0x00, 0xc5, 0x57, 0x38, + 0xc5, 0x08, 0xb1, 0x27, 0xd0, 0x2a, 0xe4, 0x9b, 0x36, 0xef, 0x4c, 0xf1, 0xf0, 0x57, 0x39, 0x3c, + 0x27, 0x30, 0x9c, 0xc2, 0xb1, 0x9d, 0xb6, 0x49, 0xda, 0x56, 0x3c, 0xc5, 0x6f, 0x0b, 0x0a, 0x81, + 0xe1, 0x14, 0xc7, 0x08, 0xeb, 0xef, 0x08, 0x0a, 0x2f, 0x12, 0xcf, 0x67, 0x20, 0x67, 0x5b, 0xe6, + 0x81, 0x6d, 0x0d, 0xe2, 0xc4, 0xef, 0x72, 0x06, 0xe0, 0x10, 0x42, 0x70, 0x05, 0xb2, 0x83, 0x4e, + 0xc4, 0xef, 0xbf, 0x23, 0x96, 0x87, 0x98, 0x81, 0x15, 0x18, 0x13, 0x05, 0xca, 0xb0, 0xad, 0x01, + 0x28, 0xfe, 0x80, 0x53, 0x14, 0x22, 0x30, 0x3e, 0x0c, 0x1f, 0x7b, 0x7e, 0x13, 0x0f, 0x42, 0xf2, + 0x9a, 0x18, 0x06, 0x87, 0xf0, 0x50, 0xee, 0x62, 0x4b, 0xdf, 0x1f, 0x8c, 0xe1, 0xab, 0x22, 0x94, + 0x02, 0x43, 0x28, 0x96, 0x60, 0xb4, 0xa5, 0xb9, 0xde, 0xbe, 0x66, 0x0e, 0x34, 0x1d, 0x7f, 0xc8, + 0x39, 0xf2, 0x01, 0x88, 0x47, 0xa4, 0x6d, 0x1d, 0x87, 0xe6, 0x6b, 0x22, 0x22, 0x11, 0x18, 0x5f, + 0x7a, 0x9e, 0x4f, 0xaf, 0xb4, 0x8e, 0xc3, 0xf6, 0x47, 0x62, 0xe9, 0x31, 0xec, 0x7a, 0x94, 0xf1, + 0x0a, 0x64, 0x3d, 0xe3, 0xce, 0x40, 0x34, 0x7f, 0x2c, 0x66, 0x9a, 0x02, 0x08, 0xf8, 0x79, 0x38, + 0xd5, 0xb7, 0x4d, 0x0c, 0x40, 0xf6, 0x27, 0x9c, 0xec, 0x44, 0x9f, 0x56, 0xc1, 0x4b, 0xc2, 0x71, + 0x29, 0xff, 0x54, 0x94, 0x04, 0xdc, 0xc5, 0xb5, 0x49, 0xce, 0x0a, 0x9e, 0xb6, 0x77, 0xbc, 0xa8, + 0xfd, 0x99, 0x88, 0x1a, 0xc3, 0x76, 0x44, 0x6d, 0x1b, 0x4e, 0x70, 0xc6, 0xe3, 0xcd, 0xeb, 0xd7, + 0x45, 0x61, 0x65, 0xe8, 0x9d, 0xce, 0xd9, 0xfd, 0x2c, 0x4c, 0x05, 0xe1, 0x14, 0x9b, 0x52, 0x4f, + 0x6d, 0x69, 0xce, 0x00, 0xcc, 0xdf, 0xe0, 0xcc, 0xa2, 0xe2, 0x07, 0xbb, 0x5a, 0x6f, 0x5d, 0x73, + 0x08, 0xf9, 0x73, 0x50, 0x14, 0xe4, 0x6d, 0xcb, 0xc5, 0xba, 0xdd, 0xb4, 0x8c, 0x3b, 0xb8, 0x31, + 0x00, 0xf5, 0x9f, 0x77, 0x4d, 0xd5, 0x4e, 0x04, 0x4e, 0x98, 0x57, 0x41, 0x0e, 0xf6, 0x2a, 0xaa, + 0xd1, 0x72, 0x6c, 0xd7, 0x8f, 0x61, 0xfc, 0xa6, 0x98, 0xa9, 0x00, 0xb7, 0x4a, 0x61, 0x95, 0x1a, + 0x14, 0xe8, 0xe3, 0xa0, 0x29, 0xf9, 0x17, 0x9c, 0x68, 0x34, 0x44, 0xf1, 0xc2, 0xa1, 0xdb, 0x2d, + 0x47, 0x73, 0x07, 0xa9, 0x7f, 0x7f, 0x29, 0x0a, 0x07, 0x87, 0xf0, 0xc2, 0xe1, 0x1f, 0x38, 0x98, + 0x74, 0xfb, 0x01, 0x18, 0xbe, 0x25, 0x0a, 0x87, 0xc0, 0x70, 0x0a, 0xb1, 0x61, 0x18, 0x80, 0xe2, + 0xaf, 0x04, 0x85, 0xc0, 0x10, 0x8a, 0x4f, 0x87, 0x8d, 0xd6, 0xc5, 0x4d, 0xc3, 0xf3, 0x5d, 0xb6, + 0x15, 0xbe, 0x3f, 0xd5, 0xb7, 0xdf, 0xe9, 0xdc, 0x84, 0x29, 0x11, 0x68, 0xe5, 0x3a, 0x8c, 0x75, + 0x6d, 0x31, 0x50, 0xdc, 0xf7, 0x2b, 0xc5, 0x9f, 0x7d, 0x8f, 0x17, 0xa3, 0xce, 0x1d, 0x46, 0x65, + 0x8d, 0xcc, 0x7b, 0xe7, 0x3e, 0x20, 0x9e, 0xec, 0xa5, 0xf7, 0x82, 0xa9, 0xef, 0xd8, 0x06, 0x54, + 0xae, 0xc2, 0x68, 0xc7, 0x1e, 0x20, 0x9e, 0xea, 0xe7, 0x38, 0x55, 0x3e, 0xba, 0x05, 0xa8, 0x2c, + 0x40, 0x8a, 0xf4, 0xf3, 0x78, 0xf8, 0xcf, 0x73, 0x38, 0x35, 0xaf, 0x7c, 0x12, 0x32, 0xa2, 0x8f, + 0xc7, 0x43, 0x7f, 0x81, 0x43, 0x03, 0x08, 0x81, 0x8b, 0x1e, 0x1e, 0x0f, 0xff, 0x45, 0x01, 0x17, + 0x10, 0x02, 0x1f, 0x3c, 0x84, 0x7f, 0xfb, 0x4b, 0x29, 0x5e, 0x87, 0x45, 0xec, 0xae, 0xc0, 0x08, + 0x6f, 0xde, 0xf1, 0xe8, 0xcf, 0xf3, 0x97, 0x0b, 0x44, 0xe5, 0x22, 0xa4, 0x07, 0x0c, 0xf8, 0x2f, + 0x73, 0x28, 0xb3, 0xaf, 0x2c, 0x41, 0x2e, 0xd2, 0xb0, 0xe3, 0xe1, 0xbf, 0xc2, 0xe1, 0x51, 0x14, + 0x71, 0x9d, 0x37, 0xec, 0x78, 0x82, 0x5f, 0x15, 0xae, 0x73, 0x04, 0x09, 0x9b, 0xe8, 0xd5, 0xf1, + 0xe8, 0x5f, 0x13, 0x51, 0x17, 0x90, 0xca, 0x33, 0x90, 0x0d, 0xea, 0x6f, 0x3c, 0xfe, 0xd7, 0x39, + 0x3e, 0xc4, 0x90, 0x08, 0x44, 0xea, 0x7f, 0x3c, 0xc5, 0x17, 0x44, 0x04, 0x22, 0x28, 0xb2, 0x8c, + 0xba, 0x7b, 0x7a, 0x3c, 0xd3, 0x6f, 0x88, 0x65, 0xd4, 0xd5, 0xd2, 0xc9, 0x6c, 0xd2, 0x32, 0x18, + 0x4f, 0xf1, 0x9b, 0x62, 0x36, 0xa9, 0x3d, 0x71, 0xa3, 0xbb, 0x49, 0xc6, 0x73, 0x7c, 0x51, 0xb8, + 0xd1, 0xd5, 0x23, 0x2b, 0x9b, 0x80, 0x7a, 0x1b, 0x64, 0x3c, 0xdf, 0x97, 0x38, 0xdf, 0x78, 0x4f, + 0x7f, 0xac, 0x3c, 0x0b, 0x27, 0xfa, 0x37, 0xc7, 0x78, 0xd6, 0x2f, 0xbf, 0xd7, 0x75, 0x9c, 0x89, + 0xf6, 0xc6, 0xca, 0x76, 0x58, 0x65, 0xa3, 0x8d, 0x31, 0x9e, 0xf6, 0xe5, 0xf7, 0x3a, 0x0b, 0x6d, + 0xb4, 0x2f, 0x56, 0xaa, 0x00, 0x61, 0x4f, 0x8a, 0xe7, 0x7a, 0x85, 0x73, 0x45, 0x40, 0x64, 0x69, + 0xf0, 0x96, 0x14, 0x8f, 0xff, 0x8a, 0x58, 0x1a, 0x1c, 0x41, 0x96, 0x86, 0xe8, 0x46, 0xf1, 0xe8, + 0x57, 0xc5, 0xd2, 0x10, 0x90, 0xca, 0x15, 0xc8, 0x58, 0x6d, 0xd3, 0x24, 0xb9, 0x85, 0xee, 0xff, + 0x49, 0x56, 0xf1, 0x5f, 0x3f, 0xe0, 0x60, 0x01, 0xa8, 0x2c, 0x40, 0x1a, 0xb7, 0x76, 0x71, 0x23, + 0x0e, 0xf9, 0x6f, 0x1f, 0x88, 0x7a, 0x42, 0xac, 0x2b, 0xcf, 0x00, 0xb0, 0xc3, 0x34, 0xfd, 0xa1, + 0x28, 0x06, 0xfb, 0xef, 0x1f, 0xf0, 0x8f, 0x25, 0x42, 0x48, 0x48, 0xc0, 0x3e, 0xbd, 0xb8, 0x3f, + 0xc1, 0x3b, 0x9d, 0x04, 0xf4, 0x00, 0x7e, 0x19, 0x46, 0x6e, 0x78, 0xb6, 0xe5, 0x6b, 0xcd, 0x38, + 0xf4, 0x7f, 0x70, 0xb4, 0xb0, 0x27, 0x01, 0x6b, 0xd9, 0x2e, 0xf6, 0xb5, 0xa6, 0x17, 0x87, 0xfd, + 0x4f, 0x8e, 0x0d, 0x00, 0x04, 0xac, 0x6b, 0x9e, 0x3f, 0xc8, 0xb8, 0x7f, 0x20, 0xc0, 0x02, 0x40, + 0x9c, 0x26, 0xff, 0xdf, 0xc4, 0x07, 0x71, 0xd8, 0x77, 0x85, 0xd3, 0xdc, 0xbe, 0xf2, 0x49, 0xc8, + 0x92, 0x7f, 0xd9, 0x17, 0x50, 0x31, 0xe0, 0xff, 0xe2, 0xe0, 0x10, 0x41, 0xde, 0xec, 0xf9, 0x0d, + 0xdf, 0x88, 0x0f, 0xf6, 0x7f, 0xf3, 0x99, 0x16, 0xf6, 0x95, 0x2a, 0xe4, 0x3c, 0xbf, 0xd1, 0x68, + 0xf3, 0x1d, 0x4d, 0x0c, 0xfc, 0x7f, 0x3e, 0x08, 0x0e, 0xb9, 0x01, 0x66, 0xb1, 0xd6, 0xff, 0xbe, + 0x0e, 0x56, 0xec, 0x15, 0x9b, 0xdd, 0xd4, 0xbd, 0x50, 0x8e, 0xbf, 0x72, 0x83, 0xff, 0xcd, 0xc0, + 0x03, 0xba, 0xdd, 0xda, 0xb5, 0xbd, 0xd9, 0x5d, 0xdb, 0xdf, 0x9f, 0xb5, 0x2d, 0x4e, 0x86, 0x92, + 0xb6, 0x85, 0xa7, 0x8e, 0x77, 0x6b, 0x57, 0x3e, 0x05, 0xe9, 0xad, 0xf6, 0xee, 0xee, 0x01, 0x92, + 0x21, 0xe9, 0xb5, 0x77, 0xf9, 0x17, 0x30, 0xe4, 0xdf, 0xf2, 0x9b, 0x49, 0x18, 0xad, 0x9a, 0xe6, + 0xf6, 0x81, 0x83, 0xbd, 0xba, 0x85, 0xeb, 0x7b, 0xa8, 0x08, 0xc3, 0x74, 0x98, 0x4f, 0x53, 0x33, + 0xe9, 0xda, 0x90, 0xc2, 0x9f, 0x03, 0xcd, 0x1c, 0xbd, 0xcf, 0x4c, 0x04, 0x9a, 0xb9, 0x40, 0x73, + 0x9e, 0x5d, 0x67, 0x06, 0x9a, 0xf3, 0x81, 0x66, 0x9e, 0x5e, 0x6a, 0x26, 0x03, 0xcd, 0x7c, 0xa0, + 0x59, 0xa0, 0x97, 0xf6, 0xa3, 0x81, 0x66, 0x21, 0xd0, 0x5c, 0xa0, 0xd7, 0xf4, 0xa9, 0x40, 0x73, + 0x21, 0xd0, 0x5c, 0xa4, 0xb7, 0xf3, 0xe3, 0x81, 0xe6, 0x62, 0xa0, 0xb9, 0x44, 0x6f, 0xe4, 0x51, + 0xa0, 0xb9, 0x14, 0x68, 0x2e, 0xd3, 0x4f, 0x5d, 0x46, 0x02, 0xcd, 0x65, 0x34, 0x05, 0x23, 0x6c, + 0x64, 0x4f, 0xd1, 0x9f, 0x6d, 0xc7, 0xae, 0x0d, 0x29, 0x42, 0x10, 0xea, 0x9e, 0xa6, 0x9f, 0xb3, + 0x0c, 0x87, 0xba, 0xa7, 0x43, 0xdd, 0x1c, 0xfd, 0xaa, 0x5e, 0x0e, 0x75, 0x73, 0xa1, 0xee, 0x7c, + 0x71, 0x94, 0x64, 0x47, 0xa8, 0x3b, 0x1f, 0xea, 0xe6, 0x8b, 0x05, 0x32, 0x03, 0xa1, 0x6e, 0x3e, + 0xd4, 0x2d, 0x14, 0xc7, 0xce, 0x48, 0xd3, 0xf9, 0x50, 0xb7, 0x80, 0x9e, 0x84, 0x9c, 0xd7, 0xde, + 0x55, 0xf9, 0x57, 0x06, 0xf4, 0xb3, 0x99, 0xdc, 0x1c, 0xcc, 0x90, 0x9c, 0xa0, 0xd3, 0x7a, 0x6d, + 0x48, 0x01, 0xaf, 0xbd, 0xcb, 0xcb, 0xe7, 0x62, 0x1e, 0xe8, 0x6d, 0x83, 0x4a, 0xbf, 0x76, 0x2d, + 0xbf, 0x21, 0x41, 0x76, 0xfb, 0xb6, 0x4d, 0x7f, 0xb4, 0xf5, 0x7e, 0xc4, 0x93, 0x2b, 0x9c, 0x3e, + 0x3f, 0x4f, 0x7f, 0x57, 0xcb, 0x5e, 0x93, 0x14, 0x21, 0x08, 0x75, 0x0b, 0xc5, 0x87, 0xe9, 0x80, + 0x02, 0xdd, 0x02, 0x9a, 0x85, 0x7c, 0x64, 0x40, 0x73, 0xf4, 0x83, 0x96, 0xce, 0x11, 0x49, 0x4a, + 0x2e, 0x1c, 0xd1, 0xdc, 0x62, 0x1a, 0x48, 0xda, 0x93, 0x3f, 0xfe, 0x6d, 0xbb, 0xfc, 0x85, 0x04, + 0xe4, 0xd8, 0x05, 0x25, 0x1d, 0x15, 0x79, 0x15, 0xdb, 0xb0, 0x1f, 0x70, 0x37, 0x86, 0x14, 0x21, + 0x40, 0x0a, 0x00, 0x33, 0x25, 0x19, 0xce, 0x3c, 0x59, 0x7c, 0xea, 0x9f, 0xde, 0x3c, 0xfd, 0x89, + 0x23, 0x57, 0x10, 0x89, 0xdd, 0x2c, 0x2b, 0xbf, 0x33, 0x3b, 0x86, 0xe5, 0x3f, 0x3d, 0x77, 0x89, + 0x04, 0x38, 0x64, 0x41, 0x3b, 0x90, 0x59, 0xd2, 0x3c, 0xfa, 0x29, 0x1c, 0x75, 0x3d, 0xb5, 0x78, + 0xf1, 0xff, 0xde, 0x3c, 0x7d, 0x3e, 0x86, 0x91, 0x57, 0xc6, 0x99, 0xf5, 0x03, 0xc2, 0x7a, 0x61, + 0x9e, 0xc0, 0xaf, 0x0d, 0x29, 0x01, 0x15, 0x9a, 0x13, 0xae, 0x6e, 0x68, 0x2d, 0xf6, 0xe5, 0x4e, + 0x72, 0x51, 0x3e, 0x7c, 0xf3, 0x74, 0x7e, 0xfd, 0x20, 0x94, 0x87, 0xae, 0x90, 0xa7, 0xc5, 0x0c, + 0x0c, 0x33, 0x57, 0x17, 0x97, 0x5f, 0xbf, 0x57, 0x1a, 0x7a, 0xe3, 0x5e, 0x69, 0xe8, 0x1f, 0xef, + 0x95, 0x86, 0xde, 0xba, 0x57, 0x92, 0xde, 0xbd, 0x57, 0x92, 0xde, 0xbf, 0x57, 0x92, 0xee, 0x1e, + 0x96, 0xa4, 0xaf, 0x1e, 0x96, 0xa4, 0xaf, 0x1f, 0x96, 0xa4, 0x6f, 0x1f, 0x96, 0xa4, 0xd7, 0x0f, + 0x4b, 0xd2, 0x1b, 0x87, 0x25, 0xe9, 0xad, 0xc3, 0x92, 0xf4, 0xfd, 0xc3, 0xd2, 0xd0, 0xbb, 0x87, + 0x25, 0xe9, 0xfd, 0xc3, 0xd2, 0xd0, 0xdd, 0xef, 0x95, 0x86, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, + 0xbb, 0x8f, 0xfb, 0x36, 0x04, 0x35, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -3488,14 +3495,16 @@ func (m *AllTypesOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x9 i++ - i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 return i, nil } func (m *AllTypesOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x15 i++ - i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 return i, nil } func (m *AllTypesOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { @@ -3544,28 +3553,32 @@ func (m *AllTypesOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x4d i++ - i = encodeFixed32One(dAtA, i, uint32(m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9)) + i += 4 return i, nil } func (m *AllTypesOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x55 i++ - i = encodeFixed32One(dAtA, i, uint32(m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10)) + i += 4 return i, nil } func (m *AllTypesOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x59 i++ - i = encodeFixed64One(dAtA, i, uint64(m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11)) + i += 8 return i, nil } func (m *AllTypesOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x61 i++ - i = encodeFixed64One(dAtA, i, uint64(m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12)) + i += 8 return i, nil } func (m *AllTypesOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { @@ -3653,14 +3666,16 @@ func (m *TwoOneofs_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x9 i++ - i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 return i, nil } func (m *TwoOneofs_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x15 i++ - i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 return i, nil } func (m *TwoOneofs_Field3) MarshalTo(dAtA []byte) (int, error) { @@ -3778,24 +3793,6 @@ func (m *CustomOneof_MyCustomName) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintOne(dAtA, i, uint64(m.MyCustomName)) return i, nil } -func encodeFixed64One(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 encodeFixed32One(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 encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -4822,15 +4819,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -4840,11 +4830,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -4976,11 +4963,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field9{v} case 10: if wireType != 5 { @@ -4990,11 +4974,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field10{v} case 11: if wireType != 1 { @@ -5004,15 +4985,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field11{v} case 12: if wireType != 1 { @@ -5022,15 +4996,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field12{v} case 13: if wireType != 0 { @@ -5203,15 +5170,8 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.One = &TwoOneofs_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -5221,11 +5181,8 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.One = &TwoOneofs_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/onepb_test.go index 19bd53449..82925d0cf 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/both/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/both/onepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -17,13 +16,12 @@ It has these top-level messages: package one import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -34,14 +32,14 @@ var _ = math.Inf func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -62,13 +60,13 @@ func TestSubbyProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSubbyMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -80,7 +78,7 @@ func TestSubbyMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -96,14 +94,14 @@ func TestSubbyMarshalTo(t *testing.T) { func TestAllTypesOneOfProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -124,13 +122,13 @@ func TestAllTypesOneOfProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllTypesOneOfMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -142,7 +140,7 @@ func TestAllTypesOneOfMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -158,14 +156,14 @@ func TestAllTypesOneOfMarshalTo(t *testing.T) { func TestTwoOneofsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -186,13 +184,13 @@ func TestTwoOneofsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestTwoOneofsMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -204,7 +202,7 @@ func TestTwoOneofsMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -220,14 +218,14 @@ func TestTwoOneofsMarshalTo(t *testing.T) { func TestCustomOneofProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -248,13 +246,13 @@ func TestCustomOneofProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomOneofMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -266,7 +264,7 @@ func TestCustomOneofMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -282,15 +280,15 @@ func TestCustomOneofMarshalTo(t *testing.T) { func TestSubbyJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -303,15 +301,15 @@ func TestSubbyJSON(t *testing.T) { } func TestAllTypesOneOfJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -324,15 +322,15 @@ func TestAllTypesOneOfJSON(t *testing.T) { } func TestTwoOneofsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -345,15 +343,15 @@ func TestTwoOneofsJSON(t *testing.T) { } func TestCustomOneofJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -366,11 +364,11 @@ func TestCustomOneofJSON(t *testing.T) { } func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -383,11 +381,11 @@ func TestSubbyProtoText(t *testing.T) { func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -400,11 +398,11 @@ func TestSubbyProtoCompactText(t *testing.T) { func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -417,11 +415,11 @@ func TestAllTypesOneOfProtoText(t *testing.T) { func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -434,11 +432,11 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -451,11 +449,11 @@ func TestTwoOneofsProtoText(t *testing.T) { func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -468,11 +466,11 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -485,11 +483,11 @@ func TestCustomOneofProtoText(t *testing.T) { func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -504,14 +502,14 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -519,14 +517,14 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestAllTypesOneOfVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -534,14 +532,14 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { } } func TestTwoOneofsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -549,14 +547,14 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { } } func TestCustomOneofVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -564,63 +562,63 @@ func TestCustomOneofVerboseEqual(t *testing.T) { } } func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllTypesOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTwoOneofsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomOneofGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSubbySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -631,7 +629,7 @@ func TestSubbySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -639,10 +637,10 @@ func TestSubbySize(t *testing.T) { func TestAllTypesOneOfSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -653,7 +651,7 @@ func TestAllTypesOneOfSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -661,10 +659,10 @@ func TestAllTypesOneOfSize(t *testing.T) { func TestTwoOneofsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -675,7 +673,7 @@ func TestTwoOneofsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -683,10 +681,10 @@ func TestTwoOneofsSize(t *testing.T) { func TestCustomOneofSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -697,14 +695,14 @@ func TestCustomOneofSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -713,7 +711,7 @@ func TestSubbyStringer(t *testing.T) { } } func TestAllTypesOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -722,7 +720,7 @@ func TestAllTypesOneOfStringer(t *testing.T) { } } func TestTwoOneofsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -731,7 +729,7 @@ func TestTwoOneofsStringer(t *testing.T) { } } func TestCustomOneofStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go index 6e4e08873..14a2d8e85 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/one.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -24,15 +23,16 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" +import binary "encoding/binary" + // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -974,286 +974,293 @@ func init() { proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs") proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof") } -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Subby) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *AllTypesOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllTypesOneOf) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *TwoOneofs) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *TwoOneofs) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomOneof) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func OneDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4041 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0xbf, 0xc0, 0x8b, 0x44, 0x1e, 0x52, 0x14, 0x04, 0xc9, 0xbb, 0x58, 0x39, 0xe6, 0x6a, 0x69, - 0x3b, 0x96, 0xed, 0x58, 0xb2, 0x75, 0xd9, 0x0b, 0xf7, 0x9f, 0x78, 0x48, 0x8a, 0xab, 0xd5, 0xfe, - 0x25, 0x51, 0x01, 0xa5, 0x78, 0x9d, 0x3e, 0x60, 0x20, 0xf0, 0x23, 0x85, 0x5d, 0x10, 0x60, 0x00, - 0x70, 0xd7, 0xf2, 0xd3, 0x76, 0xdc, 0xcb, 0x64, 0x3a, 0xbd, 0xa5, 0x9d, 0x69, 0xe2, 0x3a, 0x6e, - 0x9b, 0x99, 0xd6, 0x69, 0xd2, 0x4b, 0xd2, 0x4b, 0x9a, 0xe9, 0x53, 0x5f, 0xd2, 0xfa, 0xa9, 0xe3, - 0xbc, 0x75, 0x3a, 0x1d, 0x8f, 0x57, 0xf1, 0x4c, 0xd3, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0xc4, - 0x2f, 0x9d, 0xef, 0x06, 0x80, 0x17, 0x2d, 0xa8, 0x4c, 0x9d, 0x3c, 0x49, 0x38, 0xe7, 0xfc, 0x7e, - 0x38, 0x38, 0xdf, 0xf9, 0xce, 0x39, 0xf8, 0x08, 0xf8, 0xde, 0x1a, 0xcc, 0xb7, 0x6c, 0xbb, 0x65, - 0xa2, 0xa5, 0x8e, 0x63, 0x7b, 0xf6, 0x41, 0xb7, 0xb9, 0xd4, 0x40, 0xae, 0xee, 0x18, 0x1d, 0xcf, - 0x76, 0x16, 0x89, 0x4c, 0x9a, 0xa2, 0x16, 0x8b, 0xdc, 0xa2, 0xb0, 0x0d, 0xd3, 0xd7, 0x0c, 0x13, - 0xad, 0xfb, 0x86, 0x75, 0xe4, 0x49, 0x97, 0x21, 0xd1, 0x34, 0x4c, 0x24, 0x0b, 0xf3, 0xf1, 0x85, - 0xcc, 0xf2, 0x63, 0x8b, 0x7d, 0xa0, 0xc5, 0x5e, 0xc4, 0x2e, 0x16, 0x2b, 0x04, 0x51, 0x78, 0x37, - 0x01, 0x33, 0x43, 0xb4, 0x92, 0x04, 0x09, 0x4b, 0x6b, 0x63, 0x46, 0x61, 0x21, 0xad, 0x90, 0xff, - 0x25, 0x19, 0x26, 0x3a, 0x9a, 0x7e, 0x5b, 0x6b, 0x21, 0x39, 0x46, 0xc4, 0xfc, 0x52, 0xca, 0x03, - 0x34, 0x50, 0x07, 0x59, 0x0d, 0x64, 0xe9, 0x47, 0x72, 0x7c, 0x3e, 0xbe, 0x90, 0x56, 0x42, 0x12, - 0xe9, 0x69, 0x98, 0xee, 0x74, 0x0f, 0x4c, 0x43, 0x57, 0x43, 0x66, 0x30, 0x1f, 0x5f, 0x48, 0x2a, - 0x22, 0x55, 0xac, 0x07, 0xc6, 0x4f, 0xc0, 0xd4, 0x5d, 0xa4, 0xdd, 0x0e, 0x9b, 0x66, 0x88, 0x69, - 0x0e, 0x8b, 0x43, 0x86, 0x15, 0xc8, 0xb6, 0x91, 0xeb, 0x6a, 0x2d, 0xa4, 0x7a, 0x47, 0x1d, 0x24, - 0x27, 0xc8, 0xd3, 0xcf, 0x0f, 0x3c, 0x7d, 0xff, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xa8, 0x83, 0xa4, - 0x12, 0xa4, 0x91, 0xd5, 0x6d, 0x53, 0x86, 0xe4, 0x09, 0xf1, 0xab, 0x5a, 0xdd, 0x76, 0x3f, 0x4b, - 0x0a, 0xc3, 0x18, 0xc5, 0x84, 0x8b, 0x9c, 0x3b, 0x86, 0x8e, 0xe4, 0x71, 0x42, 0xf0, 0xc4, 0x00, - 0x41, 0x9d, 0xea, 0xfb, 0x39, 0x38, 0x4e, 0xaa, 0x40, 0x1a, 0xbd, 0xe4, 0x21, 0xcb, 0x35, 0x6c, - 0x4b, 0x9e, 0x20, 0x24, 0x8f, 0x0f, 0x59, 0x45, 0x64, 0x36, 0xfa, 0x29, 0x02, 0x9c, 0x74, 0x11, - 0x26, 0xec, 0x8e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xe6, 0x85, 0x85, 0xcc, 0xf2, 0xc7, 0x86, 0x26, - 0x42, 0x8d, 0xda, 0x28, 0xdc, 0x58, 0xda, 0x04, 0xd1, 0xb5, 0xbb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, - 0x20, 0xd5, 0xb0, 0x9a, 0xb6, 0x9c, 0x26, 0x04, 0xe7, 0x07, 0x1f, 0x84, 0x18, 0x56, 0xec, 0x06, - 0xda, 0xb4, 0x9a, 0xb6, 0x92, 0x73, 0x7b, 0xae, 0xa5, 0x33, 0x30, 0xee, 0x1e, 0x59, 0x9e, 0xf6, - 0x92, 0x9c, 0x25, 0x19, 0xc2, 0xae, 0x0a, 0xff, 0x93, 0x84, 0xa9, 0x51, 0x52, 0xec, 0x2a, 0x24, - 0x9b, 0xf8, 0x29, 0xe5, 0xd8, 0x69, 0x62, 0x40, 0x31, 0xbd, 0x41, 0x1c, 0xff, 0x31, 0x83, 0x58, - 0x82, 0x8c, 0x85, 0x5c, 0x0f, 0x35, 0x68, 0x46, 0xc4, 0x47, 0xcc, 0x29, 0xa0, 0xa0, 0xc1, 0x94, - 0x4a, 0xfc, 0x58, 0x29, 0x75, 0x13, 0xa6, 0x7c, 0x97, 0x54, 0x47, 0xb3, 0x5a, 0x3c, 0x37, 0x97, - 0xa2, 0x3c, 0x59, 0xac, 0x72, 0x9c, 0x82, 0x61, 0x4a, 0x0e, 0xf5, 0x5c, 0x4b, 0xeb, 0x00, 0xb6, - 0x85, 0xec, 0xa6, 0xda, 0x40, 0xba, 0x29, 0xa7, 0x4e, 0x88, 0x52, 0x0d, 0x9b, 0x0c, 0x44, 0xc9, - 0xa6, 0x52, 0xdd, 0x94, 0xae, 0x04, 0xa9, 0x36, 0x71, 0x42, 0xa6, 0x6c, 0xd3, 0x4d, 0x36, 0x90, - 0x6d, 0xfb, 0x90, 0x73, 0x10, 0xce, 0x7b, 0xd4, 0x60, 0x4f, 0x96, 0x26, 0x4e, 0x2c, 0x46, 0x3e, - 0x99, 0xc2, 0x60, 0xf4, 0xc1, 0x26, 0x9d, 0xf0, 0xa5, 0xf4, 0x28, 0xf8, 0x02, 0x95, 0xa4, 0x15, - 0x90, 0x2a, 0x94, 0xe5, 0xc2, 0x1d, 0xad, 0x8d, 0xe6, 0x2e, 0x43, 0xae, 0x37, 0x3c, 0xd2, 0x2c, - 0x24, 0x5d, 0x4f, 0x73, 0x3c, 0x92, 0x85, 0x49, 0x85, 0x5e, 0x48, 0x22, 0xc4, 0x91, 0xd5, 0x20, - 0x55, 0x2e, 0xa9, 0xe0, 0x7f, 0xe7, 0x2e, 0xc1, 0x64, 0xcf, 0xed, 0x47, 0x05, 0x16, 0xbe, 0x38, - 0x0e, 0xb3, 0xc3, 0x72, 0x6e, 0x68, 0xfa, 0x9f, 0x81, 0x71, 0xab, 0xdb, 0x3e, 0x40, 0x8e, 0x1c, - 0x27, 0x0c, 0xec, 0x4a, 0x2a, 0x41, 0xd2, 0xd4, 0x0e, 0x90, 0x29, 0x27, 0xe6, 0x85, 0x85, 0xdc, - 0xf2, 0xd3, 0x23, 0x65, 0xf5, 0xe2, 0x16, 0x86, 0x28, 0x14, 0x29, 0x7d, 0x0a, 0x12, 0xac, 0xc4, - 0x61, 0x86, 0xa7, 0x46, 0x63, 0xc0, 0xb9, 0xa8, 0x10, 0x9c, 0xf4, 0x30, 0xa4, 0xf1, 0x5f, 0x1a, - 0xdb, 0x71, 0xe2, 0x73, 0x0a, 0x0b, 0x70, 0x5c, 0xa5, 0x39, 0x48, 0x91, 0x34, 0x6b, 0x20, 0xde, - 0x1a, 0xfc, 0x6b, 0xbc, 0x30, 0x0d, 0xd4, 0xd4, 0xba, 0xa6, 0xa7, 0xde, 0xd1, 0xcc, 0x2e, 0x22, - 0x09, 0x93, 0x56, 0xb2, 0x4c, 0xf8, 0x19, 0x2c, 0x93, 0xce, 0x43, 0x86, 0x66, 0xa5, 0x61, 0x35, - 0xd0, 0x4b, 0xa4, 0xfa, 0x24, 0x15, 0x9a, 0xa8, 0x9b, 0x58, 0x82, 0x6f, 0x7f, 0xcb, 0xb5, 0x2d, - 0xbe, 0xb4, 0xe4, 0x16, 0x58, 0x40, 0x6e, 0x7f, 0xa9, 0xbf, 0xf0, 0x3d, 0x32, 0xfc, 0xf1, 0xfa, - 0x73, 0xb1, 0xf0, 0xad, 0x18, 0x24, 0xc8, 0x7e, 0x9b, 0x82, 0xcc, 0xde, 0x8b, 0xbb, 0x55, 0x75, - 0xbd, 0xb6, 0x5f, 0xde, 0xaa, 0x8a, 0x82, 0x94, 0x03, 0x20, 0x82, 0x6b, 0x5b, 0xb5, 0xd2, 0x9e, - 0x18, 0xf3, 0xaf, 0x37, 0x77, 0xf6, 0x2e, 0xae, 0x8a, 0x71, 0x1f, 0xb0, 0x4f, 0x05, 0x89, 0xb0, - 0xc1, 0xca, 0xb2, 0x98, 0x94, 0x44, 0xc8, 0x52, 0x82, 0xcd, 0x9b, 0xd5, 0xf5, 0x8b, 0xab, 0xe2, - 0x78, 0xaf, 0x64, 0x65, 0x59, 0x9c, 0x90, 0x26, 0x21, 0x4d, 0x24, 0xe5, 0x5a, 0x6d, 0x4b, 0x4c, - 0xf9, 0x9c, 0xf5, 0x3d, 0x65, 0x73, 0x67, 0x43, 0x4c, 0xfb, 0x9c, 0x1b, 0x4a, 0x6d, 0x7f, 0x57, - 0x04, 0x9f, 0x61, 0xbb, 0x5a, 0xaf, 0x97, 0x36, 0xaa, 0x62, 0xc6, 0xb7, 0x28, 0xbf, 0xb8, 0x57, - 0xad, 0x8b, 0xd9, 0x1e, 0xb7, 0x56, 0x96, 0xc5, 0x49, 0xff, 0x16, 0xd5, 0x9d, 0xfd, 0x6d, 0x31, - 0x27, 0x4d, 0xc3, 0x24, 0xbd, 0x05, 0x77, 0x62, 0xaa, 0x4f, 0x74, 0x71, 0x55, 0x14, 0x03, 0x47, - 0x28, 0xcb, 0x74, 0x8f, 0xe0, 0xe2, 0xaa, 0x28, 0x15, 0x2a, 0x90, 0x24, 0xd9, 0x25, 0x49, 0x90, - 0xdb, 0x2a, 0x95, 0xab, 0x5b, 0x6a, 0x6d, 0x77, 0x6f, 0xb3, 0xb6, 0x53, 0xda, 0x12, 0x85, 0x40, - 0xa6, 0x54, 0x3f, 0xbd, 0xbf, 0xa9, 0x54, 0xd7, 0xc5, 0x58, 0x58, 0xb6, 0x5b, 0x2d, 0xed, 0x55, - 0xd7, 0xc5, 0x78, 0x41, 0x87, 0xd9, 0x61, 0x75, 0x66, 0xe8, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x84, - 0x25, 0x26, 0x5c, 0x03, 0x4b, 0xfc, 0x15, 0x01, 0x66, 0x86, 0xd4, 0xda, 0xa1, 0x37, 0x79, 0x1e, - 0x92, 0x34, 0x45, 0x69, 0xf7, 0x79, 0x72, 0x68, 0xd1, 0x26, 0x09, 0x3b, 0xd0, 0x81, 0x08, 0x2e, - 0xdc, 0x81, 0xe3, 0x27, 0x74, 0x60, 0x4c, 0x31, 0xe0, 0xe4, 0x2b, 0x02, 0xc8, 0x27, 0x71, 0x47, - 0x14, 0x8a, 0x58, 0x4f, 0xa1, 0xb8, 0xda, 0xef, 0xc0, 0x85, 0x93, 0x9f, 0x61, 0xc0, 0x8b, 0x37, - 0x04, 0x38, 0x33, 0x7c, 0x50, 0x19, 0xea, 0xc3, 0xa7, 0x60, 0xbc, 0x8d, 0xbc, 0x43, 0x9b, 0x37, - 0xeb, 0x8f, 0x0f, 0x69, 0x01, 0x58, 0xdd, 0x1f, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x49, 0xd3, - 0x06, 0xf5, 0x66, 0xc0, 0xd3, 0xcf, 0xc7, 0xe0, 0xa1, 0xa1, 0xe4, 0x43, 0x1d, 0x7d, 0x04, 0xc0, - 0xb0, 0x3a, 0x5d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x5d, - 0xcf, 0xd7, 0xc7, 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x0e, 0x1c, 0x4d, 0x10, 0x47, 0xf3, 0x27, - 0x3c, 0xe9, 0x40, 0xaf, 0x7b, 0x16, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, - 0x6d, 0x58, 0x2d, 0x52, 0x80, 0x53, 0xc5, 0x64, 0x53, 0x33, 0x5d, 0xa4, 0x4c, 0x51, 0x75, 0x9d, - 0x6b, 0x31, 0x82, 0x74, 0x19, 0x27, 0x84, 0x18, 0xef, 0x41, 0x50, 0xb5, 0x8f, 0x28, 0x7c, 0x7d, - 0x02, 0x32, 0xa1, 0xb1, 0x4e, 0xba, 0x00, 0xd9, 0x5b, 0xda, 0x1d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, - 0x44, 0x06, 0xcb, 0x76, 0xd9, 0xb8, 0xfe, 0x2c, 0xcc, 0x12, 0x13, 0xbb, 0xeb, 0x21, 0x47, 0xd5, - 0x4d, 0xcd, 0x75, 0x49, 0xd0, 0x52, 0xc4, 0x54, 0xc2, 0xba, 0x1a, 0x56, 0x55, 0xb8, 0x46, 0x5a, - 0x83, 0x19, 0x82, 0x68, 0x77, 0x4d, 0xcf, 0xe8, 0x98, 0x48, 0xc5, 0x2f, 0x0f, 0x2e, 0x29, 0xc4, - 0xbe, 0x67, 0xd3, 0xd8, 0x62, 0x9b, 0x19, 0x60, 0x8f, 0x5c, 0x69, 0x1d, 0x1e, 0x21, 0xb0, 0x16, - 0xb2, 0x90, 0xa3, 0x79, 0x48, 0x45, 0x9f, 0xeb, 0x6a, 0xa6, 0xab, 0x6a, 0x56, 0x43, 0x3d, 0xd4, - 0xdc, 0x43, 0x79, 0x16, 0x13, 0x94, 0x63, 0xb2, 0xa0, 0x9c, 0xc3, 0x86, 0x1b, 0xcc, 0xae, 0x4a, - 0xcc, 0x4a, 0x56, 0xe3, 0xba, 0xe6, 0x1e, 0x4a, 0x45, 0x38, 0x43, 0x58, 0x5c, 0xcf, 0x31, 0xac, - 0x96, 0xaa, 0x1f, 0x22, 0xfd, 0xb6, 0xda, 0xf5, 0x9a, 0x97, 0xe5, 0x87, 0xc3, 0xf7, 0x27, 0x1e, - 0xd6, 0x89, 0x4d, 0x05, 0x9b, 0xec, 0x7b, 0xcd, 0xcb, 0x52, 0x1d, 0xb2, 0x78, 0x31, 0xda, 0xc6, - 0xcb, 0x48, 0x6d, 0xda, 0x0e, 0xe9, 0x2c, 0xb9, 0x21, 0x3b, 0x3b, 0x14, 0xc1, 0xc5, 0x1a, 0x03, - 0x6c, 0xdb, 0x0d, 0x54, 0x4c, 0xd6, 0x77, 0xab, 0xd5, 0x75, 0x25, 0xc3, 0x59, 0xae, 0xd9, 0x0e, - 0x4e, 0xa8, 0x96, 0xed, 0x07, 0x38, 0x43, 0x13, 0xaa, 0x65, 0xf3, 0xf0, 0xae, 0xc1, 0x8c, 0xae, - 0xd3, 0x67, 0x36, 0x74, 0x95, 0x8d, 0xf8, 0xae, 0x2c, 0xf6, 0x04, 0x4b, 0xd7, 0x37, 0xa8, 0x01, - 0xcb, 0x71, 0x57, 0xba, 0x02, 0x0f, 0x05, 0xc1, 0x0a, 0x03, 0xa7, 0x07, 0x9e, 0xb2, 0x1f, 0xba, - 0x06, 0x33, 0x9d, 0xa3, 0x41, 0xa0, 0xd4, 0x73, 0xc7, 0xce, 0x51, 0x3f, 0xec, 0x71, 0xf2, 0xda, - 0xe6, 0x20, 0x5d, 0xf3, 0x50, 0x43, 0x3e, 0x1b, 0xb6, 0x0e, 0x29, 0xa4, 0x25, 0x10, 0x75, 0x5d, - 0x45, 0x96, 0x76, 0x60, 0x22, 0x55, 0x73, 0x90, 0xa5, 0xb9, 0xf2, 0xf9, 0xb0, 0x71, 0x4e, 0xd7, - 0xab, 0x44, 0x5b, 0x22, 0x4a, 0xe9, 0x29, 0x98, 0xb6, 0x0f, 0x6e, 0xe9, 0x34, 0xb3, 0xd4, 0x8e, - 0x83, 0x9a, 0xc6, 0x4b, 0xf2, 0x63, 0x24, 0x4c, 0x53, 0x58, 0x41, 0xf2, 0x6a, 0x97, 0x88, 0xa5, - 0x27, 0x41, 0xd4, 0xdd, 0x43, 0xcd, 0xe9, 0x90, 0xd6, 0xee, 0x76, 0x34, 0x1d, 0xc9, 0x8f, 0x53, - 0x53, 0x2a, 0xdf, 0xe1, 0x62, 0x9c, 0xd9, 0xee, 0x5d, 0xa3, 0xe9, 0x71, 0xc6, 0x27, 0x68, 0x66, - 0x13, 0x19, 0x63, 0xbb, 0x09, 0xb3, 0x5d, 0xcb, 0xb0, 0x3c, 0xe4, 0x74, 0x1c, 0x84, 0x87, 0x78, - 0xba, 0x13, 0xe5, 0x7f, 0x9e, 0x38, 0x61, 0x0c, 0xdf, 0x0f, 0x5b, 0xd3, 0x04, 0x50, 0x66, 0xba, - 0x83, 0xc2, 0x42, 0x11, 0xb2, 0xe1, 0xbc, 0x90, 0xd2, 0x40, 0x33, 0x43, 0x14, 0x70, 0x8f, 0xad, - 0xd4, 0xd6, 0x71, 0x77, 0xfc, 0x6c, 0x55, 0x8c, 0xe1, 0x2e, 0xbd, 0xb5, 0xb9, 0x57, 0x55, 0x95, - 0xfd, 0x9d, 0xbd, 0xcd, 0xed, 0xaa, 0x18, 0x7f, 0x2a, 0x9d, 0xfa, 0xfe, 0x84, 0x78, 0xef, 0xde, - 0xbd, 0x7b, 0xb1, 0xc2, 0x77, 0x62, 0x90, 0xeb, 0x9d, 0x8c, 0xa5, 0xff, 0x07, 0x67, 0xf9, 0x6b, - 0xac, 0x8b, 0x3c, 0xf5, 0xae, 0xe1, 0x90, 0x54, 0x6d, 0x6b, 0x74, 0xb6, 0xf4, 0xa3, 0x3c, 0xcb, - 0xac, 0xea, 0xc8, 0x7b, 0xc1, 0x70, 0x70, 0x22, 0xb6, 0x35, 0x4f, 0xda, 0x82, 0xf3, 0x96, 0xad, - 0xba, 0x9e, 0x66, 0x35, 0x34, 0xa7, 0xa1, 0x06, 0x07, 0x08, 0xaa, 0xa6, 0xeb, 0xc8, 0x75, 0x6d, - 0xda, 0x22, 0x7c, 0x96, 0x8f, 0x59, 0x76, 0x9d, 0x19, 0x07, 0xb5, 0xb3, 0xc4, 0x4c, 0xfb, 0x32, - 0x22, 0x7e, 0x52, 0x46, 0x3c, 0x0c, 0xe9, 0xb6, 0xd6, 0x51, 0x91, 0xe5, 0x39, 0x47, 0x64, 0x9e, - 0x4b, 0x29, 0xa9, 0xb6, 0xd6, 0xa9, 0xe2, 0xeb, 0x8f, 0x6e, 0x0d, 0xc2, 0x71, 0xfc, 0xa7, 0x38, - 0x64, 0xc3, 0x33, 0x1d, 0x1e, 0x91, 0x75, 0x52, 0xbf, 0x05, 0xb2, 0xc3, 0x1f, 0x7d, 0xe0, 0x04, - 0xb8, 0x58, 0xc1, 0x85, 0xbd, 0x38, 0x4e, 0x27, 0x2d, 0x85, 0x22, 0x71, 0x53, 0xc5, 0x7b, 0x1a, - 0xd1, 0xf9, 0x3d, 0xa5, 0xb0, 0x2b, 0x69, 0x03, 0xc6, 0x6f, 0xb9, 0x84, 0x7b, 0x9c, 0x70, 0x3f, - 0xf6, 0x60, 0xee, 0x1b, 0x75, 0x42, 0x9e, 0xbe, 0x51, 0x57, 0x77, 0x6a, 0xca, 0x76, 0x69, 0x4b, - 0x61, 0x70, 0xe9, 0x1c, 0x24, 0x4c, 0xed, 0xe5, 0xa3, 0xde, 0x16, 0x40, 0x44, 0xa3, 0x06, 0xfe, - 0x1c, 0x24, 0xee, 0x22, 0xed, 0x76, 0x6f, 0xe1, 0x25, 0xa2, 0x8f, 0x30, 0xf5, 0x97, 0x20, 0x49, - 0xe2, 0x25, 0x01, 0xb0, 0x88, 0x89, 0x63, 0x52, 0x0a, 0x12, 0x95, 0x9a, 0x82, 0xd3, 0x5f, 0x84, - 0x2c, 0x95, 0xaa, 0xbb, 0x9b, 0xd5, 0x4a, 0x55, 0x8c, 0x15, 0xd6, 0x60, 0x9c, 0x06, 0x01, 0x6f, - 0x0d, 0x3f, 0x0c, 0xe2, 0x18, 0xbb, 0x64, 0x1c, 0x02, 0xd7, 0xee, 0x6f, 0x97, 0xab, 0x8a, 0x18, - 0x0b, 0x2f, 0xaf, 0x0b, 0xd9, 0xf0, 0x38, 0xf7, 0x93, 0xc9, 0xa9, 0xbf, 0x16, 0x20, 0x13, 0x1a, - 0xcf, 0xf0, 0x60, 0xa0, 0x99, 0xa6, 0x7d, 0x57, 0xd5, 0x4c, 0x43, 0x73, 0x59, 0x52, 0x00, 0x11, - 0x95, 0xb0, 0x64, 0xd4, 0x45, 0xfb, 0x89, 0x38, 0xff, 0xba, 0x00, 0x62, 0xff, 0x68, 0xd7, 0xe7, - 0xa0, 0xf0, 0x53, 0x75, 0xf0, 0x35, 0x01, 0x72, 0xbd, 0xf3, 0x5c, 0x9f, 0x7b, 0x17, 0x7e, 0xaa, - 0xee, 0xbd, 0x13, 0x83, 0xc9, 0x9e, 0x29, 0x6e, 0x54, 0xef, 0x3e, 0x07, 0xd3, 0x46, 0x03, 0xb5, - 0x3b, 0xb6, 0x87, 0x2c, 0xfd, 0x48, 0x35, 0xd1, 0x1d, 0x64, 0xca, 0x05, 0x52, 0x28, 0x96, 0x1e, - 0x3c, 0x27, 0x2e, 0x6e, 0x06, 0xb8, 0x2d, 0x0c, 0x2b, 0xce, 0x6c, 0xae, 0x57, 0xb7, 0x77, 0x6b, - 0x7b, 0xd5, 0x9d, 0xca, 0x8b, 0xea, 0xfe, 0xce, 0xff, 0xdf, 0xa9, 0xbd, 0xb0, 0xa3, 0x88, 0x46, - 0x9f, 0xd9, 0x47, 0xb8, 0xd5, 0x77, 0x41, 0xec, 0x77, 0x4a, 0x3a, 0x0b, 0xc3, 0xdc, 0x12, 0xc7, - 0xa4, 0x19, 0x98, 0xda, 0xa9, 0xa9, 0xf5, 0xcd, 0xf5, 0xaa, 0x5a, 0xbd, 0x76, 0xad, 0x5a, 0xd9, - 0xab, 0xd3, 0x17, 0x67, 0xdf, 0x7a, 0xaf, 0x77, 0x53, 0xbf, 0x1a, 0x87, 0x99, 0x21, 0x9e, 0x48, - 0x25, 0x36, 0xb3, 0xd3, 0xd7, 0x88, 0x67, 0x46, 0xf1, 0x7e, 0x11, 0x4f, 0x05, 0xbb, 0x9a, 0xe3, - 0xb1, 0x11, 0xff, 0x49, 0xc0, 0x51, 0xb2, 0x3c, 0xa3, 0x69, 0x20, 0x87, 0x9d, 0x33, 0xd0, 0x41, - 0x7e, 0x2a, 0x90, 0xd3, 0xa3, 0x86, 0x4f, 0x80, 0xd4, 0xb1, 0x5d, 0xc3, 0x33, 0xee, 0x20, 0xd5, - 0xb0, 0xf8, 0xa1, 0x04, 0x1e, 0xec, 0x13, 0x8a, 0xc8, 0x35, 0x9b, 0x96, 0xe7, 0x5b, 0x5b, 0xa8, - 0xa5, 0xf5, 0x59, 0xe3, 0x02, 0x1e, 0x57, 0x44, 0xae, 0xf1, 0xad, 0x2f, 0x40, 0xb6, 0x61, 0x77, - 0xf1, 0x98, 0x44, 0xed, 0x70, 0xbf, 0x10, 0x94, 0x0c, 0x95, 0xf9, 0x26, 0x6c, 0x8e, 0x0d, 0x4e, - 0x43, 0xb2, 0x4a, 0x86, 0xca, 0xa8, 0xc9, 0x13, 0x30, 0xa5, 0xb5, 0x5a, 0x0e, 0x26, 0xe7, 0x44, - 0x74, 0x32, 0xcf, 0xf9, 0x62, 0x62, 0x38, 0x77, 0x03, 0x52, 0x3c, 0x0e, 0xb8, 0x25, 0xe3, 0x48, - 0xa8, 0x1d, 0x7a, 0x26, 0x15, 0x5b, 0x48, 0x2b, 0x29, 0x8b, 0x2b, 0x2f, 0x40, 0xd6, 0x70, 0xd5, - 0xe0, 0x70, 0x34, 0x36, 0x1f, 0x5b, 0x48, 0x29, 0x19, 0xc3, 0xf5, 0x4f, 0xc3, 0x0a, 0x6f, 0xc4, - 0x20, 0xd7, 0x7b, 0xb8, 0x2b, 0xad, 0x43, 0xca, 0xb4, 0x75, 0x8d, 0xa4, 0x16, 0xfd, 0x65, 0x61, - 0x21, 0xe2, 0x3c, 0x78, 0x71, 0x8b, 0xd9, 0x2b, 0x3e, 0x72, 0xee, 0xef, 0x05, 0x48, 0x71, 0xb1, - 0x74, 0x06, 0x12, 0x1d, 0xcd, 0x3b, 0x24, 0x74, 0xc9, 0x72, 0x4c, 0x14, 0x14, 0x72, 0x8d, 0xe5, - 0x6e, 0x47, 0xb3, 0x48, 0x0a, 0x30, 0x39, 0xbe, 0xc6, 0xeb, 0x6a, 0x22, 0xad, 0x41, 0xc6, 0x7e, - 0xbb, 0xdd, 0x46, 0x96, 0xe7, 0xf2, 0x75, 0x65, 0xf2, 0x0a, 0x13, 0x4b, 0x4f, 0xc3, 0xb4, 0xe7, - 0x68, 0x86, 0xd9, 0x63, 0x9b, 0x20, 0xb6, 0x22, 0x57, 0xf8, 0xc6, 0x45, 0x38, 0xc7, 0x79, 0x1b, - 0xc8, 0xd3, 0xf4, 0x43, 0xd4, 0x08, 0x40, 0xe3, 0xe4, 0xe4, 0xf0, 0x2c, 0x33, 0x58, 0x67, 0x7a, - 0x8e, 0x2d, 0x7c, 0x57, 0x80, 0x69, 0xfe, 0xa2, 0xd2, 0xf0, 0x83, 0xb5, 0x0d, 0xa0, 0x59, 0x96, - 0xed, 0x85, 0xc3, 0x35, 0x98, 0xca, 0x03, 0xb8, 0xc5, 0x92, 0x0f, 0x52, 0x42, 0x04, 0x73, 0x6d, - 0x80, 0x40, 0x73, 0x62, 0xd8, 0xce, 0x43, 0x86, 0x9d, 0xdc, 0x93, 0x9f, 0x7f, 0xe8, 0xab, 0x2d, - 0x50, 0x11, 0x7e, 0xa3, 0x91, 0x66, 0x21, 0x79, 0x80, 0x5a, 0x86, 0xc5, 0xce, 0x13, 0xe9, 0x05, - 0x3f, 0xa5, 0x4c, 0xf8, 0xa7, 0x94, 0xe5, 0x9b, 0x30, 0xa3, 0xdb, 0xed, 0x7e, 0x77, 0xcb, 0x62, - 0xdf, 0xeb, 0xb5, 0x7b, 0x5d, 0xf8, 0x2c, 0x04, 0x23, 0xe6, 0x57, 0x62, 0xf1, 0x8d, 0xdd, 0xf2, - 0xd7, 0x62, 0x73, 0x1b, 0x14, 0xb7, 0xcb, 0x1f, 0x53, 0x41, 0x4d, 0x13, 0xe9, 0xd8, 0x75, 0xf8, - 0xc1, 0xc7, 0xe1, 0x99, 0x96, 0xe1, 0x1d, 0x76, 0x0f, 0x16, 0x75, 0xbb, 0xbd, 0xd4, 0xb2, 0x5b, - 0x76, 0xf0, 0x73, 0x17, 0xbe, 0x22, 0x17, 0xe4, 0x3f, 0xf6, 0x93, 0x57, 0xda, 0x97, 0xce, 0x45, - 0xfe, 0x3e, 0x56, 0xdc, 0x81, 0x19, 0x66, 0xac, 0x92, 0x33, 0x77, 0xfa, 0x6a, 0x20, 0x3d, 0xf0, - 0xdc, 0x45, 0xfe, 0xe6, 0xbb, 0xa4, 0x57, 0x2b, 0xd3, 0x0c, 0x8a, 0x75, 0xf4, 0x05, 0xa2, 0xa8, - 0xc0, 0x43, 0x3d, 0x7c, 0x74, 0x5f, 0x22, 0x27, 0x82, 0xf1, 0x3b, 0x8c, 0x71, 0x26, 0xc4, 0x58, - 0x67, 0xd0, 0x62, 0x05, 0x26, 0x4f, 0xc3, 0xf5, 0xb7, 0x8c, 0x2b, 0x8b, 0xc2, 0x24, 0x1b, 0x30, - 0x45, 0x48, 0xf4, 0xae, 0xeb, 0xd9, 0x6d, 0x52, 0xf4, 0x1e, 0x4c, 0xf3, 0x77, 0xef, 0xd2, 0x8d, - 0x92, 0xc3, 0xb0, 0x8a, 0x8f, 0x2a, 0x16, 0x81, 0xfc, 0xcc, 0xd0, 0x40, 0xba, 0x19, 0xc1, 0xf0, - 0x26, 0x73, 0xc4, 0xb7, 0x2f, 0x7e, 0x06, 0x66, 0xf1, 0xff, 0xa4, 0x26, 0x85, 0x3d, 0x89, 0x3e, - 0x65, 0x92, 0xbf, 0xfb, 0x0a, 0xdd, 0x8b, 0x33, 0x3e, 0x41, 0xc8, 0xa7, 0xd0, 0x2a, 0xb6, 0x90, - 0xe7, 0x21, 0xc7, 0x55, 0x35, 0x73, 0x98, 0x7b, 0xa1, 0xd7, 0x74, 0xf9, 0x4b, 0xef, 0xf5, 0xae, - 0xe2, 0x06, 0x45, 0x96, 0x4c, 0xb3, 0xb8, 0x0f, 0x67, 0x87, 0x64, 0xc5, 0x08, 0x9c, 0xaf, 0x32, - 0xce, 0xd9, 0x81, 0xcc, 0xc0, 0xb4, 0xbb, 0xc0, 0xe5, 0xfe, 0x5a, 0x8e, 0xc0, 0xf9, 0xdb, 0x8c, - 0x53, 0x62, 0x58, 0xbe, 0xa4, 0x98, 0xf1, 0x06, 0x4c, 0xdf, 0x41, 0xce, 0x81, 0xed, 0xb2, 0xa3, - 0x91, 0x11, 0xe8, 0x5e, 0x63, 0x74, 0x53, 0x0c, 0x48, 0xce, 0x4a, 0x30, 0xd7, 0x15, 0x48, 0x35, - 0x35, 0x1d, 0x8d, 0x40, 0xf1, 0x65, 0x46, 0x31, 0x81, 0xed, 0x31, 0xb4, 0x04, 0xd9, 0x96, 0xcd, - 0xda, 0x52, 0x34, 0xfc, 0x75, 0x06, 0xcf, 0x70, 0x0c, 0xa3, 0xe8, 0xd8, 0x9d, 0xae, 0x89, 0x7b, - 0x56, 0x34, 0xc5, 0xef, 0x70, 0x0a, 0x8e, 0x61, 0x14, 0xa7, 0x08, 0xeb, 0xef, 0x72, 0x0a, 0x37, - 0x14, 0xcf, 0xe7, 0x21, 0x63, 0x5b, 0xe6, 0x91, 0x6d, 0x8d, 0xe2, 0xc4, 0xef, 0x31, 0x06, 0x60, - 0x10, 0x4c, 0x70, 0x15, 0xd2, 0xa3, 0x2e, 0xc4, 0xef, 0xbf, 0xc7, 0xb7, 0x07, 0x5f, 0x81, 0x0d, - 0x98, 0xe2, 0x05, 0xca, 0xb0, 0xad, 0x11, 0x28, 0xfe, 0x80, 0x51, 0xe4, 0x42, 0x30, 0xf6, 0x18, - 0x1e, 0x72, 0xbd, 0x16, 0x1a, 0x85, 0xe4, 0x0d, 0xfe, 0x18, 0x0c, 0xc2, 0x42, 0x79, 0x80, 0x2c, - 0xfd, 0x70, 0x34, 0x86, 0xaf, 0xf2, 0x50, 0x72, 0x0c, 0xa6, 0xa8, 0xc0, 0x64, 0x5b, 0x73, 0xdc, - 0x43, 0xcd, 0x1c, 0x69, 0x39, 0xfe, 0x90, 0x71, 0x64, 0x7d, 0x10, 0x8b, 0x48, 0xd7, 0x3a, 0x0d, - 0xcd, 0xd7, 0x78, 0x44, 0x42, 0x30, 0xb6, 0xf5, 0x5c, 0x8f, 0x1c, 0x40, 0x9d, 0x86, 0xed, 0xeb, - 0x7c, 0xeb, 0x51, 0xec, 0x76, 0x98, 0xf1, 0x2a, 0xa4, 0x5d, 0xe3, 0xe5, 0x91, 0x68, 0xfe, 0x88, - 0xaf, 0x34, 0x01, 0x60, 0xf0, 0x8b, 0x70, 0x6e, 0x68, 0x9b, 0x18, 0x81, 0xec, 0x8f, 0x19, 0xd9, - 0x99, 0x21, 0xad, 0x82, 0x95, 0x84, 0xd3, 0x52, 0xfe, 0x09, 0x2f, 0x09, 0xa8, 0x8f, 0x6b, 0x17, - 0xbf, 0x28, 0xb8, 0x5a, 0xf3, 0x74, 0x51, 0xfb, 0x53, 0x1e, 0x35, 0x8a, 0xed, 0x89, 0xda, 0x1e, - 0x9c, 0x61, 0x8c, 0xa7, 0x5b, 0xd7, 0x6f, 0xf0, 0xc2, 0x4a, 0xd1, 0xfb, 0xbd, 0xab, 0xfb, 0x33, - 0x30, 0xe7, 0x87, 0x93, 0x4f, 0xa4, 0xae, 0xda, 0xd6, 0x3a, 0x23, 0x30, 0x7f, 0x93, 0x31, 0xf3, - 0x8a, 0xef, 0x8f, 0xb4, 0xee, 0xb6, 0xd6, 0xc1, 0xe4, 0x37, 0x41, 0xe6, 0xe4, 0x5d, 0xcb, 0x41, - 0xba, 0xdd, 0xb2, 0x8c, 0x97, 0x51, 0x63, 0x04, 0xea, 0x3f, 0xeb, 0x5b, 0xaa, 0xfd, 0x10, 0x1c, - 0x33, 0x6f, 0x82, 0xe8, 0xcf, 0x2a, 0xaa, 0xd1, 0xee, 0xd8, 0x8e, 0x17, 0xc1, 0xf8, 0xe7, 0x7c, - 0xa5, 0x7c, 0xdc, 0x26, 0x81, 0x15, 0xab, 0x90, 0x23, 0x97, 0xa3, 0xa6, 0xe4, 0x5f, 0x30, 0xa2, - 0xc9, 0x00, 0xc5, 0x0a, 0x87, 0x6e, 0xb7, 0x3b, 0x9a, 0x33, 0x4a, 0xfd, 0xfb, 0x4b, 0x5e, 0x38, - 0x18, 0x84, 0x15, 0x0e, 0xef, 0xa8, 0x83, 0x70, 0xb7, 0x1f, 0x81, 0xe1, 0x5b, 0xbc, 0x70, 0x70, - 0x0c, 0xa3, 0xe0, 0x03, 0xc3, 0x08, 0x14, 0x7f, 0xc5, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x3a, 0x68, - 0xb4, 0x0e, 0x6a, 0x19, 0xae, 0xe7, 0xd0, 0x39, 0xf8, 0xc1, 0x54, 0xdf, 0x7e, 0xaf, 0x77, 0x08, - 0x53, 0x42, 0xd0, 0xe2, 0x0d, 0x98, 0xea, 0x1b, 0x31, 0xa4, 0xa8, 0x6f, 0x16, 0xe4, 0x9f, 0xfd, - 0x80, 0x15, 0xa3, 0xde, 0x09, 0xa3, 0xb8, 0x85, 0xd7, 0xbd, 0x77, 0x0e, 0x88, 0x26, 0x7b, 0xe5, - 0x03, 0x7f, 0xe9, 0x7b, 0xc6, 0x80, 0xe2, 0x35, 0x98, 0xec, 0x99, 0x01, 0xa2, 0xa9, 0x7e, 0x8e, - 0x51, 0x65, 0xc3, 0x23, 0x40, 0x71, 0x0d, 0x12, 0xb8, 0x9f, 0x47, 0xc3, 0x7f, 0x9e, 0xc1, 0x89, - 0x79, 0xf1, 0x93, 0x90, 0xe2, 0x7d, 0x3c, 0x1a, 0xfa, 0x0b, 0x0c, 0xea, 0x43, 0x30, 0x9c, 0xf7, - 0xf0, 0x68, 0xf8, 0x2f, 0x72, 0x38, 0x87, 0x60, 0xf8, 0xe8, 0x21, 0xfc, 0x9b, 0x5f, 0x4a, 0xb0, - 0x3a, 0xcc, 0x63, 0x77, 0x15, 0x26, 0x58, 0xf3, 0x8e, 0x46, 0x7f, 0x9e, 0xdd, 0x9c, 0x23, 0x8a, - 0x97, 0x20, 0x39, 0x62, 0xc0, 0x7f, 0x99, 0x41, 0xa9, 0x7d, 0xb1, 0x02, 0x99, 0x50, 0xc3, 0x8e, - 0x86, 0xff, 0x0a, 0x83, 0x87, 0x51, 0xd8, 0x75, 0xd6, 0xb0, 0xa3, 0x09, 0x7e, 0x95, 0xbb, 0xce, - 0x10, 0x38, 0x6c, 0xbc, 0x57, 0x47, 0xa3, 0x7f, 0x8d, 0x47, 0x9d, 0x43, 0x8a, 0xcf, 0x43, 0xda, - 0xaf, 0xbf, 0xd1, 0xf8, 0x5f, 0x67, 0xf8, 0x00, 0x83, 0x23, 0x10, 0xaa, 0xff, 0xd1, 0x14, 0x5f, - 0xe0, 0x11, 0x08, 0xa1, 0xf0, 0x36, 0xea, 0xef, 0xe9, 0xd1, 0x4c, 0xbf, 0xc1, 0xb7, 0x51, 0x5f, - 0x4b, 0xc7, 0xab, 0x49, 0xca, 0x60, 0x34, 0xc5, 0x6f, 0xf2, 0xd5, 0x24, 0xf6, 0xd8, 0x8d, 0xfe, - 0x26, 0x19, 0xcd, 0xf1, 0x5b, 0xdc, 0x8d, 0xbe, 0x1e, 0x59, 0xdc, 0x05, 0x69, 0xb0, 0x41, 0x46, - 0xf3, 0x7d, 0x91, 0xf1, 0x4d, 0x0f, 0xf4, 0xc7, 0xe2, 0x0b, 0x70, 0x66, 0x78, 0x73, 0x8c, 0x66, - 0xfd, 0xd2, 0x07, 0x7d, 0xaf, 0x33, 0xe1, 0xde, 0x58, 0xdc, 0x0b, 0xaa, 0x6c, 0xb8, 0x31, 0x46, - 0xd3, 0xbe, 0xfa, 0x41, 0x6f, 0xa1, 0x0d, 0xf7, 0xc5, 0x62, 0x09, 0x20, 0xe8, 0x49, 0xd1, 0x5c, - 0xaf, 0x31, 0xae, 0x10, 0x08, 0x6f, 0x0d, 0xd6, 0x92, 0xa2, 0xf1, 0x5f, 0xe6, 0x5b, 0x83, 0x21, - 0xf0, 0xd6, 0xe0, 0xdd, 0x28, 0x1a, 0xfd, 0x3a, 0xdf, 0x1a, 0x1c, 0x52, 0xbc, 0x0a, 0x29, 0xab, - 0x6b, 0x9a, 0x38, 0xb7, 0xa4, 0x07, 0x7f, 0x46, 0x24, 0xff, 0xcb, 0x87, 0x0c, 0xcc, 0x01, 0xc5, - 0x35, 0x48, 0xa2, 0xf6, 0x01, 0x6a, 0x44, 0x21, 0xff, 0xf5, 0x43, 0x5e, 0x4f, 0xb0, 0x75, 0xf1, - 0x79, 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xdb, 0x87, 0xec, 0x0b, 0x85, 0x00, - 0x12, 0x10, 0xd0, 0xef, 0x1d, 0x1e, 0x4c, 0xf0, 0x5e, 0x2f, 0x01, 0x79, 0x01, 0xbf, 0x02, 0x13, - 0xb7, 0x5c, 0xdb, 0xf2, 0xb4, 0x56, 0x14, 0xfa, 0xdf, 0x19, 0x9a, 0xdb, 0xe3, 0x80, 0xb5, 0x6d, - 0x07, 0x79, 0x5a, 0xcb, 0x8d, 0xc2, 0xfe, 0x07, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x35, 0xd7, 0x1b, - 0xe5, 0xb9, 0xff, 0x93, 0x83, 0x39, 0x00, 0x3b, 0x8d, 0xff, 0xbf, 0x8d, 0x8e, 0xa2, 0xb0, 0xef, - 0x73, 0xa7, 0x99, 0x7d, 0xf1, 0x93, 0x90, 0xc6, 0xff, 0xd2, 0xaf, 0x76, 0x22, 0xc0, 0xff, 0xc5, - 0xc0, 0x01, 0x02, 0xdf, 0xd9, 0xf5, 0x1a, 0x9e, 0x11, 0x1d, 0xec, 0xff, 0x66, 0x2b, 0xcd, 0xed, - 0x8b, 0x25, 0xc8, 0xb8, 0x5e, 0xa3, 0xd1, 0x65, 0x13, 0x4d, 0x04, 0xfc, 0x07, 0x1f, 0xfa, 0x2f, - 0xb9, 0x3e, 0xa6, 0x7c, 0x61, 0xf8, 0x61, 0x1d, 0x6c, 0xd8, 0x1b, 0x36, 0x3d, 0xa6, 0x83, 0x1f, - 0xa5, 0x60, 0x4e, 0xb7, 0xdb, 0x07, 0xb6, 0xbb, 0xe4, 0x17, 0x92, 0x25, 0xdb, 0x62, 0xd6, 0x52, - 0xdc, 0xb6, 0xd0, 0xdc, 0xe9, 0x8e, 0xe5, 0x0a, 0xe7, 0x20, 0x59, 0xef, 0x1e, 0x1c, 0x1c, 0x49, - 0x22, 0xc4, 0xdd, 0xee, 0x01, 0xfb, 0xae, 0x04, 0xff, 0x5b, 0x78, 0x3b, 0x0e, 0x93, 0x25, 0xd3, - 0xdc, 0x3b, 0xea, 0x20, 0xb7, 0x66, 0xa1, 0x5a, 0x53, 0x92, 0x61, 0x9c, 0x3c, 0xc7, 0x73, 0xc4, - 0x4c, 0xb8, 0x3e, 0xa6, 0xb0, 0x6b, 0x5f, 0xb3, 0x4c, 0x4e, 0x2b, 0x63, 0xbe, 0x66, 0xd9, 0xd7, - 0xac, 0xd0, 0xc3, 0x4a, 0x5f, 0xb3, 0xe2, 0x6b, 0x56, 0xc9, 0x91, 0x65, 0xdc, 0xd7, 0xac, 0xfa, - 0x9a, 0x35, 0x72, 0x24, 0x3f, 0xe9, 0x6b, 0xd6, 0x7c, 0xcd, 0x45, 0x72, 0x08, 0x9f, 0xf0, 0x35, - 0x17, 0x7d, 0xcd, 0x25, 0x72, 0xf6, 0x3e, 0xed, 0x6b, 0x2e, 0xf9, 0x9a, 0xcb, 0xe4, 0xbc, 0x5d, - 0xf2, 0x35, 0x97, 0x7d, 0xcd, 0x15, 0xf2, 0x01, 0xc9, 0x84, 0xaf, 0xb9, 0x22, 0xcd, 0xc1, 0x04, - 0x7d, 0xb2, 0x67, 0xc9, 0x8f, 0xb2, 0x53, 0xd7, 0xc7, 0x14, 0x2e, 0x08, 0x74, 0xcf, 0x91, 0x8f, - 0x44, 0xc6, 0x03, 0xdd, 0x73, 0x81, 0x6e, 0x99, 0x7c, 0x2a, 0x2d, 0x06, 0xba, 0xe5, 0x40, 0xb7, - 0x22, 0x4f, 0xe2, 0xe5, 0x0f, 0x74, 0x2b, 0x81, 0x6e, 0x55, 0xce, 0xe1, 0x15, 0x08, 0x74, 0xab, - 0x81, 0x6e, 0x4d, 0x9e, 0x9a, 0x17, 0x16, 0xb2, 0x81, 0x6e, 0x4d, 0x7a, 0x06, 0x32, 0x6e, 0xf7, - 0x40, 0x65, 0xdf, 0x10, 0x90, 0x8f, 0x51, 0x32, 0xcb, 0xb0, 0x88, 0x73, 0x82, 0x2c, 0xeb, 0xf5, - 0x31, 0x05, 0xdc, 0xee, 0x01, 0xab, 0x8f, 0xe5, 0x2c, 0x90, 0xe3, 0x04, 0x95, 0x7c, 0x82, 0x59, - 0x78, 0x4b, 0x80, 0xf4, 0xde, 0x5d, 0x9b, 0xfc, 0x24, 0xeb, 0xfe, 0x1f, 0x2f, 0x2e, 0x77, 0x7a, - 0x65, 0x95, 0xfc, 0x6a, 0x96, 0xbe, 0x2e, 0x28, 0x5c, 0x10, 0xe8, 0xd6, 0xe4, 0x47, 0xc9, 0x03, - 0xf9, 0xba, 0x35, 0x69, 0x09, 0xb2, 0xa1, 0x07, 0x5a, 0x26, 0xdf, 0x97, 0xf4, 0x3e, 0x91, 0xa0, - 0x64, 0x82, 0x27, 0x5a, 0x2e, 0x27, 0x01, 0xa7, 0x3d, 0xfe, 0xe3, 0xdd, 0xb5, 0x0b, 0x5f, 0x88, - 0x41, 0x86, 0x9e, 0x40, 0x92, 0xa7, 0xc2, 0xb7, 0xa2, 0x13, 0xf9, 0x11, 0x73, 0x63, 0x4c, 0xe1, - 0x02, 0x49, 0x01, 0xa0, 0xa6, 0x38, 0xc3, 0xa9, 0x27, 0xe5, 0x67, 0xff, 0xf1, 0xed, 0xf3, 0x9f, - 0x38, 0x71, 0x07, 0xe1, 0xd8, 0x2d, 0xd1, 0xfa, 0xba, 0xb8, 0x6f, 0x58, 0xde, 0x73, 0xcb, 0x97, - 0x71, 0x80, 0x03, 0x16, 0x69, 0x1f, 0x52, 0x15, 0xcd, 0x25, 0x1f, 0x98, 0x11, 0xd7, 0x13, 0xe5, - 0x4b, 0x3f, 0x7a, 0xfb, 0xfc, 0x4a, 0x04, 0x23, 0x2b, 0x7d, 0x8b, 0xdb, 0x47, 0x98, 0xf5, 0xe2, - 0x2a, 0x86, 0x5f, 0x1f, 0x53, 0x7c, 0x2a, 0x69, 0x99, 0xbb, 0xba, 0xa3, 0xb5, 0xe9, 0x87, 0x34, - 0xf1, 0xb2, 0x78, 0xfc, 0xf6, 0xf9, 0xec, 0xf6, 0x51, 0x20, 0x0f, 0x5c, 0xc1, 0x57, 0xe5, 0x14, - 0x8c, 0x53, 0x57, 0xcb, 0xeb, 0x6f, 0xde, 0xcf, 0x8f, 0xbd, 0x75, 0x3f, 0x3f, 0xf6, 0x0f, 0xf7, - 0xf3, 0x63, 0xef, 0xdc, 0xcf, 0x0b, 0xef, 0xdf, 0xcf, 0x0b, 0x3f, 0xbc, 0x9f, 0x17, 0xee, 0x1d, - 0xe7, 0x85, 0xaf, 0x1e, 0xe7, 0x85, 0x6f, 0x1c, 0xe7, 0x85, 0x6f, 0x1f, 0xe7, 0x85, 0x37, 0x8f, - 0xf3, 0xc2, 0x5b, 0xc7, 0xf9, 0xb1, 0x77, 0x8e, 0xf3, 0xc2, 0xf7, 0x8f, 0xf3, 0x63, 0xef, 0x1f, - 0xe7, 0x85, 0x1f, 0x1e, 0xe7, 0xc7, 0xee, 0x7d, 0x2f, 0x3f, 0xf6, 0xbf, 0x01, 0x00, 0x00, 0xff, - 0xff, 0x91, 0x3b, 0x4f, 0xd7, 0xd9, 0x32, 0x00, 0x00, + // 4151 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x6b, 0x6c, 0x1c, 0xd7, + 0x75, 0xe6, 0xec, 0x83, 0xdc, 0x3d, 0xbb, 0x5c, 0x0e, 0x2f, 0x69, 0x69, 0x45, 0xc7, 0x2b, 0x69, + 0x6d, 0x47, 0xb4, 0x1d, 0x93, 0x36, 0x45, 0xea, 0xb1, 0x6a, 0xe2, 0x2e, 0xc9, 0x15, 0x45, 0x95, + 0xe4, 0x32, 0x43, 0x32, 0x7e, 0x04, 0xc5, 0x60, 0x38, 0x7b, 0xb9, 0x1c, 0x69, 0x76, 0x66, 0x32, + 0x33, 0x2b, 0x99, 0x42, 0x7f, 0xa8, 0x70, 0x1f, 0x08, 0x8a, 0xbe, 0xd2, 0x02, 0x49, 0x5c, 0xc7, + 0x7d, 0x00, 0xad, 0xd3, 0xf4, 0x95, 0x34, 0x6d, 0x9a, 0xf6, 0x57, 0xff, 0xa4, 0xf5, 0xaf, 0xc2, + 0xf9, 0x57, 0x14, 0x85, 0x61, 0x31, 0x06, 0x9a, 0xb6, 0x6e, 0xe3, 0xb6, 0xfe, 0x61, 0xc4, 0x7f, + 0x8a, 0xfb, 0x9a, 0x99, 0x7d, 0x50, 0xb3, 0x0c, 0x62, 0xe7, 0x17, 0x39, 0xe7, 0x9c, 0xef, 0x9b, + 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0x7b, 0xef, 0x0e, 0xfc, 0xe0, 0x32, 0x9c, 0x69, 0xda, 0x76, 0xd3, + 0xc4, 0xb3, 0x8e, 0x6b, 0xfb, 0xf6, 0x6e, 0x7b, 0x6f, 0xb6, 0x81, 0x3d, 0xdd, 0x35, 0x1c, 0xdf, + 0x76, 0x67, 0xa8, 0x0c, 0x8d, 0x31, 0x8b, 0x19, 0x61, 0x51, 0x5e, 0x87, 0xf1, 0xab, 0x86, 0x89, + 0x97, 0x03, 0xc3, 0x2d, 0xec, 0xa3, 0x4b, 0x90, 0xda, 0x33, 0x4c, 0x5c, 0x94, 0xce, 0x24, 0xa7, + 0x73, 0x73, 0x8f, 0xcc, 0x74, 0x81, 0x66, 0x3a, 0x11, 0x9b, 0x44, 0xac, 0x50, 0x44, 0xf9, 0xed, + 0x14, 0x4c, 0xf4, 0xd1, 0x22, 0x04, 0x29, 0x4b, 0x6b, 0x11, 0x46, 0x69, 0x3a, 0xab, 0xd0, 0xff, + 0x51, 0x11, 0x46, 0x1c, 0x4d, 0xbf, 0xa9, 0x35, 0x71, 0x31, 0x41, 0xc5, 0xe2, 0x11, 0x95, 0x00, + 0x1a, 0xd8, 0xc1, 0x56, 0x03, 0x5b, 0xfa, 0x41, 0x31, 0x79, 0x26, 0x39, 0x9d, 0x55, 0x22, 0x12, + 0xf4, 0x04, 0x8c, 0x3b, 0xed, 0x5d, 0xd3, 0xd0, 0xd5, 0x88, 0x19, 0x9c, 0x49, 0x4e, 0xa7, 0x15, + 0x99, 0x29, 0x96, 0x43, 0xe3, 0x73, 0x30, 0x76, 0x1b, 0x6b, 0x37, 0xa3, 0xa6, 0x39, 0x6a, 0x5a, + 0x20, 0xe2, 0x88, 0xe1, 0x12, 0xe4, 0x5b, 0xd8, 0xf3, 0xb4, 0x26, 0x56, 0xfd, 0x03, 0x07, 0x17, + 0x53, 0x74, 0xf4, 0x67, 0x7a, 0x46, 0xdf, 0x3d, 0xf2, 0x1c, 0x47, 0x6d, 0x1f, 0x38, 0x18, 0x55, + 0x21, 0x8b, 0xad, 0x76, 0x8b, 0x31, 0xa4, 0x8f, 0x88, 0x5f, 0xcd, 0x6a, 0xb7, 0xba, 0x59, 0x32, + 0x04, 0xc6, 0x29, 0x46, 0x3c, 0xec, 0xde, 0x32, 0x74, 0x5c, 0x1c, 0xa6, 0x04, 0xe7, 0x7a, 0x08, + 0xb6, 0x98, 0xbe, 0x9b, 0x43, 0xe0, 0xd0, 0x12, 0x64, 0xf1, 0x8b, 0x3e, 0xb6, 0x3c, 0xc3, 0xb6, + 0x8a, 0x23, 0x94, 0xe4, 0xd1, 0x3e, 0xb3, 0x88, 0xcd, 0x46, 0x37, 0x45, 0x88, 0x43, 0x17, 0x60, + 0xc4, 0x76, 0x7c, 0xc3, 0xb6, 0xbc, 0x62, 0xe6, 0x8c, 0x34, 0x9d, 0x9b, 0xfb, 0x58, 0xdf, 0x44, + 0xa8, 0x33, 0x1b, 0x45, 0x18, 0xa3, 0x55, 0x90, 0x3d, 0xbb, 0xed, 0xea, 0x58, 0xd5, 0xed, 0x06, + 0x56, 0x0d, 0x6b, 0xcf, 0x2e, 0x66, 0x29, 0xc1, 0xe9, 0xde, 0x81, 0x50, 0xc3, 0x25, 0xbb, 0x81, + 0x57, 0xad, 0x3d, 0x5b, 0x29, 0x78, 0x1d, 0xcf, 0xe8, 0x04, 0x0c, 0x7b, 0x07, 0x96, 0xaf, 0xbd, + 0x58, 0xcc, 0xd3, 0x0c, 0xe1, 0x4f, 0xe5, 0xbf, 0x1d, 0x86, 0xb1, 0x41, 0x52, 0xec, 0x0a, 0xa4, + 0xf7, 0xc8, 0x28, 0x8b, 0x89, 0xe3, 0xc4, 0x80, 0x61, 0x3a, 0x83, 0x38, 0xfc, 0x23, 0x06, 0xb1, + 0x0a, 0x39, 0x0b, 0x7b, 0x3e, 0x6e, 0xb0, 0x8c, 0x48, 0x0e, 0x98, 0x53, 0xc0, 0x40, 0xbd, 0x29, + 0x95, 0xfa, 0x91, 0x52, 0xea, 0x39, 0x18, 0x0b, 0x5c, 0x52, 0x5d, 0xcd, 0x6a, 0x8a, 0xdc, 0x9c, + 0x8d, 0xf3, 0x64, 0xa6, 0x26, 0x70, 0x0a, 0x81, 0x29, 0x05, 0xdc, 0xf1, 0x8c, 0x96, 0x01, 0x6c, + 0x0b, 0xdb, 0x7b, 0x6a, 0x03, 0xeb, 0x66, 0x31, 0x73, 0x44, 0x94, 0xea, 0xc4, 0xa4, 0x27, 0x4a, + 0x36, 0x93, 0xea, 0x26, 0xba, 0x1c, 0xa6, 0xda, 0xc8, 0x11, 0x99, 0xb2, 0xce, 0x16, 0x59, 0x4f, + 0xb6, 0xed, 0x40, 0xc1, 0xc5, 0x24, 0xef, 0x71, 0x83, 0x8f, 0x2c, 0x4b, 0x9d, 0x98, 0x89, 0x1d, + 0x99, 0xc2, 0x61, 0x6c, 0x60, 0xa3, 0x6e, 0xf4, 0x11, 0x3d, 0x0c, 0x81, 0x40, 0xa5, 0x69, 0x05, + 0xb4, 0x0a, 0xe5, 0x85, 0x70, 0x43, 0x6b, 0xe1, 0xa9, 0x3b, 0x50, 0xe8, 0x0c, 0x0f, 0x9a, 0x84, + 0xb4, 0xe7, 0x6b, 0xae, 0x4f, 0xb3, 0x30, 0xad, 0xb0, 0x07, 0x24, 0x43, 0x12, 0x5b, 0x0d, 0x5a, + 0xe5, 0xd2, 0x0a, 0xf9, 0x17, 0xfd, 0x74, 0x38, 0xe0, 0x24, 0x1d, 0xf0, 0xc7, 0x7b, 0x67, 0xb4, + 0x83, 0xb9, 0x7b, 0xdc, 0x53, 0x17, 0x61, 0xb4, 0x63, 0x00, 0x83, 0xbe, 0xba, 0xfc, 0x73, 0xf0, + 0x40, 0x5f, 0x6a, 0xf4, 0x1c, 0x4c, 0xb6, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, 0x64, 0x2c, + 0x7b, 0x55, 0xf1, 0xdf, 0x46, 0x8e, 0xc8, 0xb9, 0x9d, 0xa8, 0x35, 0x63, 0x51, 0x26, 0xda, 0xbd, + 0xc2, 0xc7, 0xb3, 0x99, 0xef, 0x8f, 0xc8, 0x77, 0xef, 0xde, 0xbd, 0x9b, 0x28, 0x7f, 0x69, 0x18, + 0x26, 0xfb, 0xad, 0x99, 0xbe, 0xcb, 0xf7, 0x04, 0x0c, 0x5b, 0xed, 0xd6, 0x2e, 0x76, 0x69, 0x90, + 0xd2, 0x0a, 0x7f, 0x42, 0x55, 0x48, 0x9b, 0xda, 0x2e, 0x36, 0x8b, 0xa9, 0x33, 0xd2, 0x74, 0x61, + 0xee, 0x89, 0x81, 0x56, 0xe5, 0xcc, 0x1a, 0x81, 0x28, 0x0c, 0x89, 0x3e, 0x05, 0x29, 0x5e, 0xa2, + 0x09, 0xc3, 0xe3, 0x83, 0x31, 0x90, 0xb5, 0xa4, 0x50, 0x1c, 0x7a, 0x10, 0xb2, 0xe4, 0x2f, 0xcb, + 0x8d, 0x61, 0xea, 0x73, 0x86, 0x08, 0x48, 0x5e, 0xa0, 0x29, 0xc8, 0xd0, 0x65, 0xd2, 0xc0, 0xa2, + 0xb5, 0x05, 0xcf, 0x24, 0xb1, 0x1a, 0x78, 0x4f, 0x6b, 0x9b, 0xbe, 0x7a, 0x4b, 0x33, 0xdb, 0x98, + 0x26, 0x7c, 0x56, 0xc9, 0x73, 0xe1, 0x67, 0x88, 0x0c, 0x9d, 0x86, 0x1c, 0x5b, 0x55, 0x86, 0xd5, + 0xc0, 0x2f, 0xd2, 0xea, 0x99, 0x56, 0xd8, 0x42, 0x5b, 0x25, 0x12, 0xf2, 0xfa, 0x1b, 0x9e, 0x6d, + 0x89, 0xd4, 0xa4, 0xaf, 0x20, 0x02, 0xfa, 0xfa, 0x8b, 0xdd, 0x85, 0xfb, 0xa1, 0xfe, 0xc3, 0xeb, + 0xce, 0xa9, 0xf2, 0xb7, 0x12, 0x90, 0xa2, 0xf5, 0x62, 0x0c, 0x72, 0xdb, 0xcf, 0x6f, 0xd6, 0xd4, + 0xe5, 0xfa, 0xce, 0xe2, 0x5a, 0x4d, 0x96, 0x50, 0x01, 0x80, 0x0a, 0xae, 0xae, 0xd5, 0xab, 0xdb, + 0x72, 0x22, 0x78, 0x5e, 0xdd, 0xd8, 0xbe, 0x30, 0x2f, 0x27, 0x03, 0xc0, 0x0e, 0x13, 0xa4, 0xa2, + 0x06, 0xe7, 0xe7, 0xe4, 0x34, 0x92, 0x21, 0xcf, 0x08, 0x56, 0x9f, 0xab, 0x2d, 0x5f, 0x98, 0x97, + 0x87, 0x3b, 0x25, 0xe7, 0xe7, 0xe4, 0x11, 0x34, 0x0a, 0x59, 0x2a, 0x59, 0xac, 0xd7, 0xd7, 0xe4, + 0x4c, 0xc0, 0xb9, 0xb5, 0xad, 0xac, 0x6e, 0xac, 0xc8, 0xd9, 0x80, 0x73, 0x45, 0xa9, 0xef, 0x6c, + 0xca, 0x10, 0x30, 0xac, 0xd7, 0xb6, 0xb6, 0xaa, 0x2b, 0x35, 0x39, 0x17, 0x58, 0x2c, 0x3e, 0xbf, + 0x5d, 0xdb, 0x92, 0xf3, 0x1d, 0x6e, 0x9d, 0x9f, 0x93, 0x47, 0x83, 0x57, 0xd4, 0x36, 0x76, 0xd6, + 0xe5, 0x02, 0x1a, 0x87, 0x51, 0xf6, 0x0a, 0xe1, 0xc4, 0x58, 0x97, 0xe8, 0xc2, 0xbc, 0x2c, 0x87, + 0x8e, 0x30, 0x96, 0xf1, 0x0e, 0xc1, 0x85, 0x79, 0x19, 0x95, 0x97, 0x20, 0x4d, 0xb3, 0x0b, 0x21, + 0x28, 0xac, 0x55, 0x17, 0x6b, 0x6b, 0x6a, 0x7d, 0x73, 0x7b, 0xb5, 0xbe, 0x51, 0x5d, 0x93, 0xa5, + 0x50, 0xa6, 0xd4, 0x3e, 0xbd, 0xb3, 0xaa, 0xd4, 0x96, 0xe5, 0x44, 0x54, 0xb6, 0x59, 0xab, 0x6e, + 0xd7, 0x96, 0xe5, 0x64, 0x59, 0x87, 0xc9, 0x7e, 0x75, 0xb2, 0xef, 0xca, 0x88, 0x4c, 0x71, 0xe2, + 0x88, 0x29, 0xa6, 0x5c, 0x3d, 0x53, 0xfc, 0xbd, 0x04, 0x4c, 0xf4, 0xe9, 0x15, 0x7d, 0x5f, 0xf2, + 0x0c, 0xa4, 0x59, 0x8a, 0xb2, 0xee, 0xf9, 0x58, 0xdf, 0xa6, 0x43, 0x13, 0xb6, 0xa7, 0x83, 0x52, + 0x5c, 0x74, 0x07, 0x91, 0x3c, 0x62, 0x07, 0x41, 0x28, 0x7a, 0x6a, 0xfa, 0xcf, 0xf6, 0xd4, 0x74, + 0xd6, 0xf6, 0x2e, 0x0c, 0xd2, 0xf6, 0xa8, 0xec, 0x78, 0xb5, 0x3d, 0xdd, 0xa7, 0xb6, 0x5f, 0x81, + 0xf1, 0x1e, 0xa2, 0x81, 0x6b, 0xec, 0x4b, 0x12, 0x14, 0x8f, 0x0a, 0x4e, 0x4c, 0xa5, 0x4b, 0x74, + 0x54, 0xba, 0x2b, 0xdd, 0x11, 0x3c, 0x7b, 0xf4, 0x24, 0xf4, 0xcc, 0xf5, 0x6b, 0x12, 0x9c, 0xe8, + 0xbf, 0x53, 0xec, 0xeb, 0xc3, 0xa7, 0x60, 0xb8, 0x85, 0xfd, 0x7d, 0x5b, 0xec, 0x96, 0x3e, 0xde, + 0xa7, 0x07, 0x13, 0x75, 0xf7, 0x64, 0x73, 0x54, 0xb4, 0x89, 0x27, 0x8f, 0xda, 0xee, 0x31, 0x6f, + 0x7a, 0x3c, 0xfd, 0x7c, 0x02, 0x1e, 0xe8, 0x4b, 0xde, 0xd7, 0xd1, 0x87, 0x00, 0x0c, 0xcb, 0x69, + 0xfb, 0x6c, 0x47, 0xc4, 0x0a, 0x6c, 0x96, 0x4a, 0x68, 0xf1, 0x22, 0xc5, 0xb3, 0xed, 0x07, 0xfa, + 0x24, 0xd5, 0x03, 0x13, 0x51, 0x83, 0x4b, 0xa1, 0xa3, 0x29, 0xea, 0x68, 0xe9, 0x88, 0x91, 0xf6, + 0x24, 0xe6, 0x53, 0x20, 0xeb, 0xa6, 0x81, 0x2d, 0x5f, 0xf5, 0x7c, 0x17, 0x6b, 0x2d, 0xc3, 0x6a, + 0xd2, 0x0e, 0x92, 0xa9, 0xa4, 0xf7, 0x34, 0xd3, 0xc3, 0xca, 0x18, 0x53, 0x6f, 0x09, 0x2d, 0x41, + 0xd0, 0x04, 0x72, 0x23, 0x88, 0xe1, 0x0e, 0x04, 0x53, 0x07, 0x88, 0xf2, 0x37, 0x33, 0x90, 0x8b, + 0xec, 0xab, 0xd1, 0x59, 0xc8, 0xdf, 0xd0, 0x6e, 0x69, 0xaa, 0x38, 0x2b, 0xb1, 0x48, 0xe4, 0x88, + 0x6c, 0x93, 0x9f, 0x97, 0x9e, 0x82, 0x49, 0x6a, 0x62, 0xb7, 0x7d, 0xec, 0xaa, 0xba, 0xa9, 0x79, + 0x1e, 0x0d, 0x5a, 0x86, 0x9a, 0x22, 0xa2, 0xab, 0x13, 0xd5, 0x92, 0xd0, 0xa0, 0x05, 0x98, 0xa0, + 0x88, 0x56, 0xdb, 0xf4, 0x0d, 0xc7, 0xc4, 0x2a, 0x39, 0xbd, 0x79, 0xb4, 0x93, 0x04, 0x9e, 0x8d, + 0x13, 0x8b, 0x75, 0x6e, 0x40, 0x3c, 0xf2, 0xd0, 0x32, 0x3c, 0x44, 0x61, 0x4d, 0x6c, 0x61, 0x57, + 0xf3, 0xb1, 0x8a, 0x3f, 0xd7, 0xd6, 0x4c, 0x4f, 0xd5, 0xac, 0x86, 0xba, 0xaf, 0x79, 0xfb, 0xc5, + 0x49, 0x42, 0xb0, 0x98, 0x28, 0x4a, 0xca, 0x29, 0x62, 0xb8, 0xc2, 0xed, 0x6a, 0xd4, 0xac, 0x6a, + 0x35, 0xae, 0x69, 0xde, 0x3e, 0xaa, 0xc0, 0x09, 0xca, 0xe2, 0xf9, 0xae, 0x61, 0x35, 0x55, 0x7d, + 0x1f, 0xeb, 0x37, 0xd5, 0xb6, 0xbf, 0x77, 0xa9, 0xf8, 0x60, 0xf4, 0xfd, 0xd4, 0xc3, 0x2d, 0x6a, + 0xb3, 0x44, 0x4c, 0x76, 0xfc, 0xbd, 0x4b, 0x68, 0x0b, 0xf2, 0x64, 0x32, 0x5a, 0xc6, 0x1d, 0xac, + 0xee, 0xd9, 0x2e, 0x6d, 0x8d, 0x85, 0x3e, 0xa5, 0x29, 0x12, 0xc1, 0x99, 0x3a, 0x07, 0xac, 0xdb, + 0x0d, 0x5c, 0x49, 0x6f, 0x6d, 0xd6, 0x6a, 0xcb, 0x4a, 0x4e, 0xb0, 0x5c, 0xb5, 0x5d, 0x92, 0x50, + 0x4d, 0x3b, 0x08, 0x70, 0x8e, 0x25, 0x54, 0xd3, 0x16, 0xe1, 0x5d, 0x80, 0x09, 0x5d, 0x67, 0x63, + 0x36, 0x74, 0x95, 0x9f, 0xb1, 0xbc, 0xa2, 0xdc, 0x11, 0x2c, 0x5d, 0x5f, 0x61, 0x06, 0x3c, 0xc7, + 0x3d, 0x74, 0x19, 0x1e, 0x08, 0x83, 0x15, 0x05, 0x8e, 0xf7, 0x8c, 0xb2, 0x1b, 0xba, 0x00, 0x13, + 0xce, 0x41, 0x2f, 0x10, 0x75, 0xbc, 0xd1, 0x39, 0xe8, 0x86, 0x5d, 0x84, 0x49, 0x67, 0xdf, 0xe9, + 0xc5, 0x3d, 0x1e, 0xc5, 0x21, 0x67, 0xdf, 0xe9, 0x06, 0x3e, 0x4a, 0x0f, 0xdc, 0x2e, 0xd6, 0x35, + 0x1f, 0x37, 0x8a, 0x27, 0xa3, 0xe6, 0x11, 0x05, 0x9a, 0x05, 0x59, 0xd7, 0x55, 0x6c, 0x69, 0xbb, + 0x26, 0x56, 0x35, 0x17, 0x5b, 0x9a, 0x57, 0x3c, 0x1d, 0x35, 0x2e, 0xe8, 0x7a, 0x8d, 0x6a, 0xab, + 0x54, 0x89, 0x1e, 0x87, 0x71, 0x7b, 0xf7, 0x86, 0xce, 0x52, 0x52, 0x75, 0x5c, 0xbc, 0x67, 0xbc, + 0x58, 0x7c, 0x84, 0xc6, 0x77, 0x8c, 0x28, 0x68, 0x42, 0x6e, 0x52, 0x31, 0x7a, 0x0c, 0x64, 0xdd, + 0xdb, 0xd7, 0x5c, 0x87, 0xd6, 0x64, 0xcf, 0xd1, 0x74, 0x5c, 0x7c, 0x94, 0x99, 0x32, 0xf9, 0x86, + 0x10, 0x93, 0x25, 0xe1, 0xdd, 0x36, 0xf6, 0x7c, 0xc1, 0x78, 0x8e, 0x2d, 0x09, 0x2a, 0xe3, 0x6c, + 0xd3, 0x20, 0x93, 0x50, 0x74, 0xbc, 0x78, 0x9a, 0x9a, 0x15, 0x9c, 0x7d, 0x27, 0xfa, 0xde, 0x87, + 0x61, 0x94, 0x58, 0x86, 0x2f, 0x7d, 0x8c, 0x6d, 0xc8, 0x9c, 0xfd, 0xc8, 0x1b, 0x3f, 0xb4, 0xbd, + 0x71, 0xb9, 0x02, 0xf9, 0x68, 0x7e, 0xa2, 0x2c, 0xb0, 0x0c, 0x95, 0x25, 0xb2, 0x59, 0x59, 0xaa, + 0x2f, 0x93, 0x6d, 0xc6, 0x0b, 0x35, 0x39, 0x41, 0xb6, 0x3b, 0x6b, 0xab, 0xdb, 0x35, 0x55, 0xd9, + 0xd9, 0xd8, 0x5e, 0x5d, 0xaf, 0xc9, 0xc9, 0xe8, 0xbe, 0xfa, 0x3b, 0x09, 0x28, 0x74, 0x1e, 0x91, + 0xd0, 0x4f, 0xc1, 0x49, 0x71, 0x9f, 0xe1, 0x61, 0x5f, 0xbd, 0x6d, 0xb8, 0x74, 0xc9, 0xb4, 0x34, + 0xd6, 0xbe, 0x82, 0x49, 0x9b, 0xe4, 0x56, 0x5b, 0xd8, 0x7f, 0xd6, 0x70, 0xc9, 0x82, 0x68, 0x69, + 0x3e, 0x5a, 0x83, 0xd3, 0x96, 0xad, 0x7a, 0xbe, 0x66, 0x35, 0x34, 0xb7, 0xa1, 0x86, 0x37, 0x49, + 0xaa, 0xa6, 0xeb, 0xd8, 0xf3, 0x6c, 0xd6, 0xaa, 0x02, 0x96, 0x8f, 0x59, 0xf6, 0x16, 0x37, 0x0e, + 0x6b, 0x78, 0x95, 0x9b, 0x76, 0x25, 0x58, 0xf2, 0xa8, 0x04, 0x7b, 0x10, 0xb2, 0x2d, 0xcd, 0x51, + 0xb1, 0xe5, 0xbb, 0x07, 0x74, 0x63, 0x9c, 0x51, 0x32, 0x2d, 0xcd, 0xa9, 0x91, 0xe7, 0x8f, 0xe6, + 0x7c, 0xf2, 0xaf, 0x49, 0xc8, 0x47, 0x37, 0xc7, 0xe4, 0xac, 0xa1, 0xd3, 0x3e, 0x22, 0xd1, 0x4a, + 0xf3, 0xf0, 0x7d, 0xb7, 0xd2, 0x33, 0x4b, 0xa4, 0xc1, 0x54, 0x86, 0xd9, 0x96, 0x55, 0x61, 0x48, + 0xd2, 0xdc, 0x49, 0x6d, 0xc1, 0x6c, 0x8b, 0x90, 0x51, 0xf8, 0x13, 0x5a, 0x81, 0xe1, 0x1b, 0x1e, + 0xe5, 0x1e, 0xa6, 0xdc, 0x8f, 0xdc, 0x9f, 0xfb, 0xfa, 0x16, 0x25, 0xcf, 0x5e, 0xdf, 0x52, 0x37, + 0xea, 0xca, 0x7a, 0x75, 0x4d, 0xe1, 0x70, 0x74, 0x0a, 0x52, 0xa6, 0x76, 0xe7, 0xa0, 0xb3, 0x15, + 0x51, 0xd1, 0xa0, 0x81, 0x3f, 0x05, 0xa9, 0xdb, 0x58, 0xbb, 0xd9, 0xd9, 0x00, 0xa8, 0xe8, 0x43, + 0x4c, 0xfd, 0x59, 0x48, 0xd3, 0x78, 0x21, 0x00, 0x1e, 0x31, 0x79, 0x08, 0x65, 0x20, 0xb5, 0x54, + 0x57, 0x48, 0xfa, 0xcb, 0x90, 0x67, 0x52, 0x75, 0x73, 0xb5, 0xb6, 0x54, 0x93, 0x13, 0xe5, 0x05, + 0x18, 0x66, 0x41, 0x20, 0x4b, 0x23, 0x08, 0x83, 0x3c, 0xc4, 0x1f, 0x39, 0x87, 0x24, 0xb4, 0x3b, + 0xeb, 0x8b, 0x35, 0x45, 0x4e, 0x44, 0xa7, 0xd7, 0x83, 0x7c, 0x74, 0x5f, 0xfc, 0xd1, 0xe4, 0xd4, + 0xdf, 0x49, 0x90, 0x8b, 0xec, 0x73, 0xc9, 0x06, 0x45, 0x33, 0x4d, 0xfb, 0xb6, 0xaa, 0x99, 0x86, + 0xe6, 0xf1, 0xa4, 0x00, 0x2a, 0xaa, 0x12, 0xc9, 0xa0, 0x93, 0xf6, 0x91, 0x38, 0xff, 0xaa, 0x04, + 0x72, 0xf7, 0x16, 0xb3, 0xcb, 0x41, 0xe9, 0x27, 0xea, 0xe0, 0x2b, 0x12, 0x14, 0x3a, 0xf7, 0x95, + 0x5d, 0xee, 0x9d, 0xfd, 0x89, 0xba, 0xf7, 0x56, 0x02, 0x46, 0x3b, 0x76, 0x93, 0x83, 0x7a, 0xf7, + 0x39, 0x18, 0x37, 0x1a, 0xb8, 0xe5, 0xd8, 0x3e, 0xb6, 0xf4, 0x03, 0xd5, 0xc4, 0xb7, 0xb0, 0x59, + 0x2c, 0xd3, 0x42, 0x31, 0x7b, 0xff, 0xfd, 0xea, 0xcc, 0x6a, 0x88, 0x5b, 0x23, 0xb0, 0xca, 0xc4, + 0xea, 0x72, 0x6d, 0x7d, 0xb3, 0xbe, 0x5d, 0xdb, 0x58, 0x7a, 0x5e, 0xdd, 0xd9, 0xf8, 0x99, 0x8d, + 0xfa, 0xb3, 0x1b, 0x8a, 0x6c, 0x74, 0x99, 0x7d, 0x88, 0x4b, 0x7d, 0x13, 0xe4, 0x6e, 0xa7, 0xd0, + 0x49, 0xe8, 0xe7, 0x96, 0x3c, 0x84, 0x26, 0x60, 0x6c, 0xa3, 0xae, 0x6e, 0xad, 0x2e, 0xd7, 0xd4, + 0xda, 0xd5, 0xab, 0xb5, 0xa5, 0xed, 0x2d, 0x76, 0x03, 0x11, 0x58, 0x6f, 0x77, 0x2e, 0xea, 0x97, + 0x93, 0x30, 0xd1, 0xc7, 0x13, 0x54, 0xe5, 0x67, 0x07, 0x76, 0x9c, 0x79, 0x72, 0x10, 0xef, 0x67, + 0x48, 0xcb, 0xdf, 0xd4, 0x5c, 0x9f, 0x1f, 0x35, 0x1e, 0x03, 0x12, 0x25, 0xcb, 0x37, 0xf6, 0x0c, + 0xec, 0xf2, 0x0b, 0x1b, 0x76, 0xa0, 0x18, 0x0b, 0xe5, 0xec, 0xce, 0xe6, 0x13, 0x80, 0x1c, 0xdb, + 0x33, 0x7c, 0xe3, 0x16, 0x56, 0x0d, 0x4b, 0xdc, 0xee, 0x90, 0x03, 0x46, 0x4a, 0x91, 0x85, 0x66, + 0xd5, 0xf2, 0x03, 0x6b, 0x0b, 0x37, 0xb5, 0x2e, 0x6b, 0x52, 0xc0, 0x93, 0x8a, 0x2c, 0x34, 0x81, + 0xf5, 0x59, 0xc8, 0x37, 0xec, 0x36, 0xd9, 0x75, 0x31, 0x3b, 0xd2, 0x2f, 0x24, 0x25, 0xc7, 0x64, + 0x81, 0x09, 0xdf, 0x4f, 0x87, 0xd7, 0x4a, 0x79, 0x25, 0xc7, 0x64, 0xcc, 0xe4, 0x1c, 0x8c, 0x69, + 0xcd, 0xa6, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0x14, 0x02, 0x31, 0x35, 0x9c, 0xba, 0x0e, 0x19, + 0x11, 0x07, 0xd2, 0x92, 0x49, 0x24, 0x54, 0x87, 0x1d, 0x7b, 0x13, 0xd3, 0x59, 0x25, 0x63, 0x09, + 0xe5, 0x59, 0xc8, 0x1b, 0x9e, 0x1a, 0xde, 0x92, 0x27, 0xce, 0x24, 0xa6, 0x33, 0x4a, 0xce, 0xf0, + 0x82, 0x1b, 0xc6, 0xf2, 0x6b, 0x09, 0x28, 0x74, 0xde, 0xf2, 0xa3, 0x65, 0xc8, 0x98, 0xb6, 0xae, + 0xd1, 0xd4, 0x62, 0x3f, 0x31, 0x4d, 0xc7, 0xfc, 0x30, 0x30, 0xb3, 0xc6, 0xed, 0x95, 0x00, 0x39, + 0xf5, 0x4f, 0x12, 0x64, 0x84, 0x18, 0x9d, 0x80, 0x94, 0xa3, 0xf9, 0xfb, 0x94, 0x2e, 0xbd, 0x98, + 0x90, 0x25, 0x85, 0x3e, 0x13, 0xb9, 0xe7, 0x68, 0x16, 0x4d, 0x01, 0x2e, 0x27, 0xcf, 0x64, 0x5e, + 0x4d, 0xac, 0x35, 0xe8, 0xf1, 0xc3, 0x6e, 0xb5, 0xb0, 0xe5, 0x7b, 0x62, 0x5e, 0xb9, 0x7c, 0x89, + 0x8b, 0xd1, 0x13, 0x30, 0xee, 0xbb, 0x9a, 0x61, 0x76, 0xd8, 0xa6, 0xa8, 0xad, 0x2c, 0x14, 0x81, + 0x71, 0x05, 0x4e, 0x09, 0xde, 0x06, 0xf6, 0x35, 0x7d, 0x1f, 0x37, 0x42, 0xd0, 0x30, 0xbd, 0x66, + 0x38, 0xc9, 0x0d, 0x96, 0xb9, 0x5e, 0x60, 0xcb, 0xdf, 0x95, 0x60, 0x5c, 0x1c, 0x98, 0x1a, 0x41, + 0xb0, 0xd6, 0x01, 0x34, 0xcb, 0xb2, 0xfd, 0x68, 0xb8, 0x7a, 0x53, 0xb9, 0x07, 0x37, 0x53, 0x0d, + 0x40, 0x4a, 0x84, 0x60, 0xaa, 0x05, 0x10, 0x6a, 0x8e, 0x0c, 0xdb, 0x69, 0xc8, 0xf1, 0x9f, 0x70, + 0xe8, 0xef, 0x80, 0xec, 0x88, 0x0d, 0x4c, 0x44, 0x4e, 0x56, 0x68, 0x12, 0xd2, 0xbb, 0xb8, 0x69, + 0x58, 0xfc, 0x62, 0x96, 0x3d, 0x88, 0x8b, 0x90, 0x54, 0x70, 0x11, 0xb2, 0xf8, 0x59, 0x98, 0xd0, + 0xed, 0x56, 0xb7, 0xbb, 0x8b, 0x72, 0xd7, 0x31, 0xdf, 0xbb, 0x26, 0xbd, 0x00, 0xe1, 0x16, 0xf3, + 0x7d, 0x49, 0xfa, 0x83, 0x44, 0x72, 0x65, 0x73, 0xf1, 0x6b, 0x89, 0xa9, 0x15, 0x06, 0xdd, 0x14, + 0x23, 0x55, 0xf0, 0x9e, 0x89, 0x75, 0xe2, 0x3d, 0x7c, 0xf1, 0x1c, 0x3c, 0xd9, 0x34, 0xfc, 0xfd, + 0xf6, 0xee, 0x8c, 0x6e, 0xb7, 0x66, 0x9b, 0x76, 0xd3, 0x0e, 0x7f, 0xfa, 0x24, 0x4f, 0xf4, 0x81, + 0xfe, 0xc7, 0x7f, 0xfe, 0xcc, 0x06, 0xd2, 0xa9, 0xd8, 0xdf, 0x4a, 0x2b, 0x1b, 0x30, 0xc1, 0x8d, + 0x55, 0xfa, 0xfb, 0x0b, 0x3b, 0x45, 0xa0, 0xfb, 0xde, 0x61, 0x15, 0xbf, 0xf1, 0x36, 0x6d, 0xd7, + 0xca, 0x38, 0x87, 0x12, 0x1d, 0x3b, 0x68, 0x54, 0x14, 0x78, 0xa0, 0x83, 0x8f, 0x2d, 0x4d, 0xec, + 0xc6, 0x30, 0x7e, 0x87, 0x33, 0x4e, 0x44, 0x18, 0xb7, 0x38, 0xb4, 0xb2, 0x04, 0xa3, 0xc7, 0xe1, + 0xfa, 0x07, 0xce, 0x95, 0xc7, 0x51, 0x92, 0x15, 0x18, 0xa3, 0x24, 0x7a, 0xdb, 0xf3, 0xed, 0x16, + 0xad, 0x7b, 0xf7, 0xa7, 0xf9, 0xc7, 0xb7, 0xd9, 0x5a, 0x29, 0x10, 0xd8, 0x52, 0x80, 0xaa, 0x54, + 0x80, 0xfe, 0xe4, 0xd4, 0xc0, 0xba, 0x19, 0xc3, 0xf0, 0x3a, 0x77, 0x24, 0xb0, 0xaf, 0x7c, 0x06, + 0x26, 0xc9, 0xff, 0xb4, 0x2c, 0x45, 0x3d, 0x89, 0xbf, 0xf0, 0x2a, 0x7e, 0xf7, 0x25, 0xb6, 0x1c, + 0x27, 0x02, 0x82, 0x88, 0x4f, 0x91, 0x59, 0x6c, 0x62, 0xdf, 0xc7, 0xae, 0xa7, 0x6a, 0x66, 0x3f, + 0xf7, 0x22, 0x37, 0x06, 0xc5, 0x2f, 0xbf, 0xd3, 0x39, 0x8b, 0x2b, 0x0c, 0x59, 0x35, 0xcd, 0xca, + 0x0e, 0x9c, 0xec, 0x93, 0x15, 0x03, 0x70, 0xbe, 0xcc, 0x39, 0x27, 0x7b, 0x32, 0x83, 0xd0, 0x6e, + 0x82, 0x90, 0x07, 0x73, 0x39, 0x00, 0xe7, 0xef, 0x70, 0x4e, 0xc4, 0xb1, 0x62, 0x4a, 0x09, 0xe3, + 0x75, 0x18, 0xbf, 0x85, 0xdd, 0x5d, 0xdb, 0xe3, 0xb7, 0x34, 0x03, 0xd0, 0xbd, 0xc2, 0xe9, 0xc6, + 0x38, 0x90, 0x5e, 0xdb, 0x10, 0xae, 0xcb, 0x90, 0xd9, 0xd3, 0x74, 0x3c, 0x00, 0xc5, 0x57, 0x38, + 0xc5, 0x08, 0xb1, 0x27, 0xd0, 0x2a, 0xe4, 0x9b, 0x36, 0xef, 0x4c, 0xf1, 0xf0, 0x57, 0x39, 0x3c, + 0x27, 0x30, 0x9c, 0xc2, 0xb1, 0x9d, 0xb6, 0x49, 0xda, 0x56, 0x3c, 0xc5, 0xef, 0x0a, 0x0a, 0x81, + 0xe1, 0x14, 0xc7, 0x08, 0xeb, 0xef, 0x09, 0x0a, 0x2f, 0x12, 0xcf, 0x67, 0x20, 0x67, 0x5b, 0xe6, + 0x81, 0x6d, 0x0d, 0xe2, 0xc4, 0xef, 0x73, 0x06, 0xe0, 0x10, 0x42, 0x70, 0x05, 0xb2, 0x83, 0x4e, + 0xc4, 0x1f, 0xbe, 0x23, 0x96, 0x87, 0x98, 0x81, 0x15, 0x18, 0x13, 0x05, 0xca, 0xb0, 0xad, 0x01, + 0x28, 0xfe, 0x88, 0x53, 0x14, 0x22, 0x30, 0x3e, 0x0c, 0x1f, 0x7b, 0x7e, 0x13, 0x0f, 0x42, 0xf2, + 0x9a, 0x18, 0x06, 0x87, 0xf0, 0x50, 0xee, 0x62, 0x4b, 0xdf, 0x1f, 0x8c, 0xe1, 0xab, 0x22, 0x94, + 0x02, 0x43, 0x28, 0x96, 0x60, 0xb4, 0xa5, 0xb9, 0xde, 0xbe, 0x66, 0x0e, 0x34, 0x1d, 0x7f, 0xcc, + 0x39, 0xf2, 0x01, 0x88, 0x47, 0xa4, 0x6d, 0x1d, 0x87, 0xe6, 0x6b, 0x22, 0x22, 0x11, 0x18, 0x5f, + 0x7a, 0x9e, 0x4f, 0xaf, 0xb4, 0x8e, 0xc3, 0xf6, 0x27, 0x62, 0xe9, 0x31, 0xec, 0x7a, 0x94, 0xf1, + 0x0a, 0x64, 0x3d, 0xe3, 0xce, 0x40, 0x34, 0x7f, 0x2a, 0x66, 0x9a, 0x02, 0x08, 0xf8, 0x79, 0x38, + 0xd5, 0xb7, 0x4d, 0x0c, 0x40, 0xf6, 0x67, 0x9c, 0xec, 0x44, 0x9f, 0x56, 0xc1, 0x4b, 0xc2, 0x71, + 0x29, 0xff, 0x5c, 0x94, 0x04, 0xdc, 0xc5, 0xb5, 0x49, 0xce, 0x0a, 0x9e, 0xb6, 0x77, 0xbc, 0xa8, + 0xfd, 0x85, 0x88, 0x1a, 0xc3, 0x76, 0x44, 0x6d, 0x1b, 0x4e, 0x70, 0xc6, 0xe3, 0xcd, 0xeb, 0xd7, + 0x45, 0x61, 0x65, 0xe8, 0x9d, 0xce, 0xd9, 0xfd, 0x2c, 0x4c, 0x05, 0xe1, 0x14, 0x9b, 0x52, 0x4f, + 0x6d, 0x69, 0xce, 0x00, 0xcc, 0xdf, 0xe0, 0xcc, 0xa2, 0xe2, 0x07, 0xbb, 0x5a, 0x6f, 0x5d, 0x73, + 0x08, 0xf9, 0x73, 0x50, 0x14, 0xe4, 0x6d, 0xcb, 0xc5, 0xba, 0xdd, 0xb4, 0x8c, 0x3b, 0xb8, 0x31, + 0x00, 0xf5, 0x5f, 0x76, 0x4d, 0xd5, 0x4e, 0x04, 0x4e, 0x98, 0x57, 0x41, 0x0e, 0xf6, 0x2a, 0xaa, + 0xd1, 0x72, 0x6c, 0xd7, 0x8f, 0x61, 0xfc, 0xa6, 0x98, 0xa9, 0x00, 0xb7, 0x4a, 0x61, 0x95, 0x1a, + 0x14, 0xe8, 0xe3, 0xa0, 0x29, 0xf9, 0x57, 0x9c, 0x68, 0x34, 0x44, 0xf1, 0xc2, 0xa1, 0xdb, 0x2d, + 0x47, 0x73, 0x07, 0xa9, 0x7f, 0x7f, 0x2d, 0x0a, 0x07, 0x87, 0xf0, 0xc2, 0xe1, 0x1f, 0x38, 0x98, + 0x74, 0xfb, 0x01, 0x18, 0xbe, 0x25, 0x0a, 0x87, 0xc0, 0x70, 0x0a, 0xb1, 0x61, 0x18, 0x80, 0xe2, + 0x6f, 0x04, 0x85, 0xc0, 0x10, 0x8a, 0x4f, 0x87, 0x8d, 0xd6, 0xc5, 0x4d, 0xc3, 0xf3, 0x5d, 0xb6, + 0x15, 0xbe, 0x3f, 0xd5, 0xb7, 0xdf, 0xe9, 0xdc, 0x84, 0x29, 0x11, 0x68, 0xe5, 0x3a, 0x8c, 0x75, + 0x6d, 0x31, 0x50, 0xdc, 0xf7, 0x2b, 0xc5, 0x9f, 0x7f, 0x8f, 0x17, 0xa3, 0xce, 0x1d, 0x46, 0x65, + 0x8d, 0xcc, 0x7b, 0xe7, 0x3e, 0x20, 0x9e, 0xec, 0xa5, 0xf7, 0x82, 0xa9, 0xef, 0xd8, 0x06, 0x54, + 0xae, 0xc2, 0x68, 0xc7, 0x1e, 0x20, 0x9e, 0xea, 0x17, 0x38, 0x55, 0x3e, 0xba, 0x05, 0xa8, 0x2c, + 0x40, 0x8a, 0xf4, 0xf3, 0x78, 0xf8, 0x2f, 0x72, 0x38, 0x35, 0xaf, 0x7c, 0x12, 0x32, 0xa2, 0x8f, + 0xc7, 0x43, 0x7f, 0x89, 0x43, 0x03, 0x08, 0x81, 0x8b, 0x1e, 0x1e, 0x0f, 0xff, 0x65, 0x01, 0x17, + 0x10, 0x02, 0x1f, 0x3c, 0x84, 0x7f, 0xff, 0x2b, 0x29, 0x5e, 0x87, 0x45, 0xec, 0xae, 0xc0, 0x08, + 0x6f, 0xde, 0xf1, 0xe8, 0xcf, 0xf3, 0x97, 0x0b, 0x44, 0xe5, 0x22, 0xa4, 0x07, 0x0c, 0xf8, 0xaf, + 0x72, 0x28, 0xb3, 0xaf, 0x2c, 0x41, 0x2e, 0xd2, 0xb0, 0xe3, 0xe1, 0xbf, 0xc6, 0xe1, 0x51, 0x14, + 0x71, 0x9d, 0x37, 0xec, 0x78, 0x82, 0x5f, 0x17, 0xae, 0x73, 0x04, 0x09, 0x9b, 0xe8, 0xd5, 0xf1, + 0xe8, 0xdf, 0x10, 0x51, 0x17, 0x90, 0xca, 0x33, 0x90, 0x0d, 0xea, 0x6f, 0x3c, 0xfe, 0x37, 0x39, + 0x3e, 0xc4, 0x90, 0x08, 0x44, 0xea, 0x7f, 0x3c, 0xc5, 0x17, 0x44, 0x04, 0x22, 0x28, 0xb2, 0x8c, + 0xba, 0x7b, 0x7a, 0x3c, 0xd3, 0x6f, 0x89, 0x65, 0xd4, 0xd5, 0xd2, 0xc9, 0x6c, 0xd2, 0x32, 0x18, + 0x4f, 0xf1, 0xdb, 0x62, 0x36, 0xa9, 0x3d, 0x71, 0xa3, 0xbb, 0x49, 0xc6, 0x73, 0x7c, 0x51, 0xb8, + 0xd1, 0xd5, 0x23, 0x2b, 0x9b, 0x80, 0x7a, 0x1b, 0x64, 0x3c, 0xdf, 0x97, 0x38, 0xdf, 0x78, 0x4f, + 0x7f, 0xac, 0x3c, 0x0b, 0x27, 0xfa, 0x37, 0xc7, 0x78, 0xd6, 0x2f, 0xbf, 0xd7, 0x75, 0x9c, 0x89, + 0xf6, 0xc6, 0xca, 0x76, 0x58, 0x65, 0xa3, 0x8d, 0x31, 0x9e, 0xf6, 0xe5, 0xf7, 0x3a, 0x0b, 0x6d, + 0xb4, 0x2f, 0x56, 0xaa, 0x00, 0x61, 0x4f, 0x8a, 0xe7, 0x7a, 0x85, 0x73, 0x45, 0x40, 0x64, 0x69, + 0xf0, 0x96, 0x14, 0x8f, 0xff, 0x8a, 0x58, 0x1a, 0x1c, 0x41, 0x96, 0x86, 0xe8, 0x46, 0xf1, 0xe8, + 0x57, 0xc5, 0xd2, 0x10, 0x90, 0xca, 0x15, 0xc8, 0x58, 0x6d, 0xd3, 0x24, 0xb9, 0x85, 0xee, 0xff, + 0x49, 0x56, 0xf1, 0xdf, 0x3f, 0xe0, 0x60, 0x01, 0xa8, 0x2c, 0x40, 0x1a, 0xb7, 0x76, 0x71, 0x23, + 0x0e, 0xf9, 0x1f, 0x1f, 0x88, 0x7a, 0x42, 0xac, 0x2b, 0xcf, 0x00, 0xb0, 0xc3, 0x34, 0xfd, 0xa1, + 0x28, 0x06, 0xfb, 0x9f, 0x1f, 0xf0, 0x8f, 0x25, 0x42, 0x48, 0x48, 0xc0, 0x3e, 0xbd, 0xb8, 0x3f, + 0xc1, 0x3b, 0x9d, 0x04, 0xf4, 0x00, 0x7e, 0x19, 0x46, 0x6e, 0x78, 0xb6, 0xe5, 0x6b, 0xcd, 0x38, + 0xf4, 0x7f, 0x71, 0xb4, 0xb0, 0x27, 0x01, 0x6b, 0xd9, 0x2e, 0xf6, 0xb5, 0xa6, 0x17, 0x87, 0xfd, + 0x6f, 0x8e, 0x0d, 0x00, 0x04, 0xac, 0x6b, 0x9e, 0x3f, 0xc8, 0xb8, 0x7f, 0x20, 0xc0, 0x02, 0x40, + 0x9c, 0x26, 0xff, 0xdf, 0xc4, 0x07, 0x71, 0xd8, 0x77, 0x85, 0xd3, 0xdc, 0xbe, 0xf2, 0x49, 0xc8, + 0x92, 0x7f, 0xd9, 0x17, 0x50, 0x31, 0xe0, 0xff, 0xe1, 0xe0, 0x10, 0x41, 0xde, 0xec, 0xf9, 0x0d, + 0xdf, 0x88, 0x0f, 0xf6, 0xff, 0xf2, 0x99, 0x16, 0xf6, 0x95, 0x2a, 0xe4, 0x3c, 0xbf, 0xd1, 0x68, + 0xf3, 0x1d, 0x4d, 0x0c, 0xfc, 0xff, 0x3e, 0x08, 0x0e, 0xb9, 0x01, 0x66, 0xb1, 0xd6, 0xff, 0xbe, + 0x0e, 0x56, 0xec, 0x15, 0x9b, 0xdd, 0xd4, 0xbd, 0x50, 0x8e, 0xbf, 0x72, 0x83, 0x1f, 0x66, 0x60, + 0x4a, 0xb7, 0x5b, 0xbb, 0xb6, 0x37, 0x1b, 0x14, 0x9b, 0x59, 0xdb, 0xe2, 0x8c, 0x28, 0x69, 0x5b, + 0x78, 0xea, 0x78, 0x57, 0x77, 0xe5, 0x53, 0x90, 0xde, 0x6a, 0xef, 0xee, 0x1e, 0x20, 0x19, 0x92, + 0x5e, 0x7b, 0x97, 0x7f, 0x06, 0x43, 0xfe, 0x2d, 0xbf, 0x99, 0x84, 0xd1, 0xaa, 0x69, 0x6e, 0x1f, + 0x38, 0xd8, 0xab, 0x5b, 0xb8, 0xbe, 0x87, 0x8a, 0x30, 0x4c, 0xc7, 0xfa, 0x34, 0x35, 0x93, 0xae, + 0x0d, 0x29, 0xfc, 0x39, 0xd0, 0xcc, 0xd1, 0x4b, 0xcd, 0x44, 0xa0, 0x99, 0x0b, 0x34, 0xe7, 0xd9, + 0x9d, 0x66, 0xa0, 0x39, 0x1f, 0x68, 0xe6, 0xe9, 0xcd, 0x66, 0x32, 0xd0, 0xcc, 0x07, 0x9a, 0x05, + 0x7a, 0x73, 0x3f, 0x1a, 0x68, 0x16, 0x02, 0xcd, 0x05, 0x7a, 0x57, 0x9f, 0x0a, 0x34, 0x17, 0x02, + 0xcd, 0x45, 0x7a, 0x45, 0x3f, 0x1e, 0x68, 0x2e, 0x06, 0x9a, 0x4b, 0xf4, 0x5a, 0x1e, 0x05, 0x9a, + 0x4b, 0x81, 0xe6, 0x32, 0xfd, 0xde, 0x65, 0x24, 0xd0, 0x5c, 0x46, 0x53, 0x30, 0xc2, 0x46, 0xf6, + 0x14, 0xfd, 0xed, 0x76, 0xec, 0xda, 0x90, 0x22, 0x04, 0xa1, 0xee, 0x69, 0xfa, 0x4d, 0xcb, 0x70, + 0xa8, 0x7b, 0x3a, 0xd4, 0xcd, 0xd1, 0x4f, 0xeb, 0xe5, 0x50, 0x37, 0x17, 0xea, 0xce, 0x17, 0x47, + 0x49, 0x8a, 0x84, 0xba, 0xf3, 0xa1, 0x6e, 0xbe, 0x58, 0x20, 0x33, 0x10, 0xea, 0xe6, 0x43, 0xdd, + 0x42, 0x71, 0xec, 0x8c, 0x34, 0x9d, 0x0f, 0x75, 0x0b, 0xe8, 0x49, 0xc8, 0x79, 0xed, 0x5d, 0x95, + 0x7f, 0x6a, 0x40, 0xbf, 0x9d, 0xc9, 0xcd, 0xc1, 0x0c, 0xc9, 0x09, 0x3a, 0xad, 0xd7, 0x86, 0x14, + 0xf0, 0xda, 0xbb, 0xbc, 0x86, 0x2e, 0xe6, 0x81, 0x5e, 0x39, 0xa8, 0xf4, 0x93, 0xd7, 0xf2, 0x1b, + 0x12, 0x64, 0xb7, 0x6f, 0xdb, 0xf4, 0x97, 0x5b, 0xef, 0xc7, 0x3c, 0xb9, 0xc2, 0xe9, 0xf3, 0xf3, + 0xf4, 0xc7, 0xb5, 0xec, 0x35, 0x49, 0x11, 0x82, 0x50, 0xb7, 0x50, 0x7c, 0x98, 0x0e, 0x28, 0xd0, + 0x2d, 0xa0, 0x59, 0xc8, 0x47, 0x06, 0x34, 0x47, 0xbf, 0x6a, 0xe9, 0x1c, 0x91, 0xa4, 0xe4, 0xc2, + 0x11, 0xcd, 0x2d, 0xa6, 0x81, 0xa4, 0x3d, 0xf9, 0xe3, 0xdf, 0xb6, 0xcb, 0x5f, 0x48, 0x40, 0x8e, + 0xdd, 0x52, 0xd2, 0x51, 0x91, 0x57, 0xb1, 0x5d, 0xfb, 0x01, 0x77, 0x63, 0x48, 0x11, 0x02, 0xa4, + 0x00, 0x30, 0x53, 0x92, 0xe1, 0xcc, 0x93, 0xc5, 0xa7, 0xfe, 0xe5, 0xcd, 0xd3, 0x9f, 0x38, 0x72, + 0x05, 0x91, 0xd8, 0xcd, 0xb2, 0x1a, 0x3c, 0xb3, 0x63, 0x58, 0xfe, 0xd3, 0x73, 0x97, 0x48, 0x80, + 0x43, 0x16, 0xb4, 0x03, 0x99, 0x25, 0xcd, 0xa3, 0xdf, 0xc3, 0x51, 0xd7, 0x53, 0x8b, 0x17, 0x7f, + 0xf8, 0xe6, 0xe9, 0xf3, 0x31, 0x8c, 0xbc, 0x3c, 0xce, 0xac, 0x1f, 0x10, 0xd6, 0x0b, 0xf3, 0x04, + 0x7e, 0x6d, 0x48, 0x09, 0xa8, 0xd0, 0x9c, 0x70, 0x75, 0x43, 0x6b, 0xb1, 0xcf, 0x77, 0x92, 0x8b, + 0xf2, 0xe1, 0x9b, 0xa7, 0xf3, 0xeb, 0x07, 0xa1, 0x3c, 0x74, 0x85, 0x3c, 0x2d, 0x66, 0x60, 0x98, + 0xb9, 0xba, 0xb8, 0xfc, 0xfa, 0xbd, 0xd2, 0xd0, 0x1b, 0xf7, 0x4a, 0x43, 0xff, 0x7c, 0xaf, 0x34, + 0xf4, 0xd6, 0xbd, 0x92, 0xf4, 0xee, 0xbd, 0x92, 0xf4, 0xfe, 0xbd, 0x92, 0x74, 0xf7, 0xb0, 0x24, + 0x7d, 0xf5, 0xb0, 0x24, 0x7d, 0xfd, 0xb0, 0x24, 0x7d, 0xfb, 0xb0, 0x24, 0xbd, 0x7e, 0x58, 0x92, + 0xde, 0x38, 0x2c, 0x0d, 0xbd, 0x75, 0x58, 0x92, 0xbe, 0x7f, 0x58, 0x1a, 0x7a, 0xf7, 0xb0, 0x24, + 0xbd, 0x7f, 0x58, 0x1a, 0xba, 0xfb, 0xbd, 0xd2, 0xd0, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x22, + 0xda, 0x5f, 0x5b, 0x09, 0x35, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -3486,14 +3493,16 @@ func (m *AllTypesOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x9 i++ - i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 return i, nil } func (m *AllTypesOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x15 i++ - i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 return i, nil } func (m *AllTypesOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { @@ -3542,28 +3551,32 @@ func (m *AllTypesOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x4d i++ - i = encodeFixed32One(dAtA, i, uint32(m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9)) + i += 4 return i, nil } func (m *AllTypesOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x55 i++ - i = encodeFixed32One(dAtA, i, uint32(m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10)) + i += 4 return i, nil } func (m *AllTypesOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x59 i++ - i = encodeFixed64One(dAtA, i, uint64(m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11)) + i += 8 return i, nil } func (m *AllTypesOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x61 i++ - i = encodeFixed64One(dAtA, i, uint64(m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12)) + i += 8 return i, nil } func (m *AllTypesOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { @@ -3651,14 +3664,16 @@ func (m *TwoOneofs_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x9 i++ - i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 return i, nil } func (m *TwoOneofs_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x15 i++ - i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 return i, nil } func (m *TwoOneofs_Field3) MarshalTo(dAtA []byte) (int, error) { @@ -3776,24 +3791,6 @@ func (m *CustomOneof_MyCustomName) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintOne(dAtA, i, uint64(m.MyCustomName)) return i, nil } -func encodeFixed64One(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 encodeFixed32One(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 encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/onepb_test.go index c442b0a76..4e8b9e773 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/marshaler/onepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -17,13 +16,12 @@ It has these top-level messages: package one import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -34,14 +32,14 @@ var _ = math.Inf func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -62,13 +60,13 @@ func TestSubbyProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSubbyMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -80,7 +78,7 @@ func TestSubbyMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -96,14 +94,14 @@ func TestSubbyMarshalTo(t *testing.T) { func TestAllTypesOneOfProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -124,13 +122,13 @@ func TestAllTypesOneOfProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllTypesOneOfMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -142,7 +140,7 @@ func TestAllTypesOneOfMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -158,14 +156,14 @@ func TestAllTypesOneOfMarshalTo(t *testing.T) { func TestTwoOneofsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -186,13 +184,13 @@ func TestTwoOneofsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestTwoOneofsMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -204,7 +202,7 @@ func TestTwoOneofsMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -220,14 +218,14 @@ func TestTwoOneofsMarshalTo(t *testing.T) { func TestCustomOneofProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -248,13 +246,13 @@ func TestCustomOneofProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomOneofMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -266,7 +264,7 @@ func TestCustomOneofMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -282,15 +280,15 @@ func TestCustomOneofMarshalTo(t *testing.T) { func TestSubbyJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -303,15 +301,15 @@ func TestSubbyJSON(t *testing.T) { } func TestAllTypesOneOfJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -324,15 +322,15 @@ func TestAllTypesOneOfJSON(t *testing.T) { } func TestTwoOneofsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -345,15 +343,15 @@ func TestTwoOneofsJSON(t *testing.T) { } func TestCustomOneofJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -366,11 +364,11 @@ func TestCustomOneofJSON(t *testing.T) { } func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -383,11 +381,11 @@ func TestSubbyProtoText(t *testing.T) { func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -400,11 +398,11 @@ func TestSubbyProtoCompactText(t *testing.T) { func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -417,11 +415,11 @@ func TestAllTypesOneOfProtoText(t *testing.T) { func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -434,11 +432,11 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -451,11 +449,11 @@ func TestTwoOneofsProtoText(t *testing.T) { func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -468,11 +466,11 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -485,11 +483,11 @@ func TestCustomOneofProtoText(t *testing.T) { func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -504,14 +502,14 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -519,14 +517,14 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestAllTypesOneOfVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -534,14 +532,14 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { } } func TestTwoOneofsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -549,14 +547,14 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { } } func TestCustomOneofVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -564,63 +562,63 @@ func TestCustomOneofVerboseEqual(t *testing.T) { } } func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllTypesOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTwoOneofsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomOneofGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSubbySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -631,7 +629,7 @@ func TestSubbySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -639,10 +637,10 @@ func TestSubbySize(t *testing.T) { func TestAllTypesOneOfSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -653,7 +651,7 @@ func TestAllTypesOneOfSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -661,10 +659,10 @@ func TestAllTypesOneOfSize(t *testing.T) { func TestTwoOneofsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -675,7 +673,7 @@ func TestTwoOneofsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -683,10 +681,10 @@ func TestTwoOneofsSize(t *testing.T) { func TestCustomOneofSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -697,14 +695,14 @@ func TestCustomOneofSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -713,7 +711,7 @@ func TestSubbyStringer(t *testing.T) { } } func TestAllTypesOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -722,7 +720,7 @@ func TestAllTypesOneOfStringer(t *testing.T) { } } func TestTwoOneofsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -731,7 +729,7 @@ func TestTwoOneofsStringer(t *testing.T) { } } func TestCustomOneofStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go index 04d34106f..a99463319 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/one.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -24,11 +23,10 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" @@ -970,286 +968,293 @@ func init() { proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs") proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof") } -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Subby) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *AllTypesOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllTypesOneOf) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *TwoOneofs) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *TwoOneofs) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomOneof) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func OneDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4043 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x6c, 0x23, 0xe7, - 0x75, 0xd6, 0xf0, 0x22, 0x91, 0x87, 0x14, 0x35, 0x1a, 0x29, 0xbb, 0xb3, 0x72, 0xcc, 0xd5, 0xd2, - 0x76, 0x2c, 0xdb, 0xb1, 0x64, 0xeb, 0xb2, 0x17, 0x6e, 0x13, 0x83, 0xa4, 0xb8, 0x5a, 0x6d, 0x25, - 0x51, 0x19, 0x4a, 0xf1, 0x3a, 0x7d, 0x18, 0x8c, 0x86, 0x3f, 0xa9, 0xd9, 0x1d, 0xce, 0x30, 0x33, - 0xc3, 0x5d, 0xcb, 0x4f, 0x5b, 0xb8, 0x17, 0x04, 0x45, 0x6f, 0x69, 0x81, 0x26, 0xae, 0xe3, 0xb6, - 0x01, 0x5a, 0xa7, 0x49, 0x2f, 0x49, 0x2f, 0x69, 0xd0, 0xa7, 0xbe, 0xa4, 0xf5, 0x53, 0xe1, 0xbc, - 0x15, 0x45, 0x61, 0x78, 0x15, 0x03, 0x4d, 0x5b, 0xb7, 0x75, 0x1b, 0x03, 0x35, 0xea, 0x97, 0xe2, - 0xbf, 0xcd, 0x0c, 0x2f, 0xda, 0xa1, 0x82, 0x3a, 0x79, 0x92, 0xfe, 0x73, 0xce, 0xf7, 0xcd, 0xf9, - 0xcf, 0x7f, 0xfe, 0xff, 0x9c, 0xf9, 0x39, 0xf0, 0xfd, 0x35, 0x98, 0x6f, 0xd9, 0x76, 0xcb, 0x44, - 0x4b, 0x1d, 0xc7, 0xf6, 0xec, 0x83, 0x6e, 0x73, 0xa9, 0x81, 0x5c, 0xdd, 0x31, 0x3a, 0x9e, 0xed, - 0x2c, 0x12, 0x99, 0x34, 0x45, 0x2d, 0x16, 0xb9, 0x45, 0x61, 0x1b, 0xa6, 0xaf, 0x19, 0x26, 0x5a, - 0xf7, 0x0d, 0xeb, 0xc8, 0x93, 0x2e, 0x43, 0xa2, 0x69, 0x98, 0x48, 0x16, 0xe6, 0xe3, 0x0b, 0x99, - 0xe5, 0x47, 0x17, 0xfb, 0x40, 0x8b, 0xbd, 0x88, 0x5d, 0x2c, 0x56, 0x08, 0xa2, 0xf0, 0x4e, 0x02, - 0x66, 0x86, 0x68, 0x25, 0x09, 0x12, 0x96, 0xd6, 0xc6, 0x8c, 0xc2, 0x42, 0x5a, 0x21, 0xff, 0x4b, - 0x32, 0x4c, 0x74, 0x34, 0xfd, 0xb6, 0xd6, 0x42, 0x72, 0x8c, 0x88, 0xf9, 0x50, 0xca, 0x03, 0x34, - 0x50, 0x07, 0x59, 0x0d, 0x64, 0xe9, 0x47, 0x72, 0x7c, 0x3e, 0xbe, 0x90, 0x56, 0x42, 0x12, 0xe9, - 0x29, 0x98, 0xee, 0x74, 0x0f, 0x4c, 0x43, 0x57, 0x43, 0x66, 0x30, 0x1f, 0x5f, 0x48, 0x2a, 0x22, - 0x55, 0xac, 0x07, 0xc6, 0x8f, 0xc3, 0xd4, 0x5d, 0xa4, 0xdd, 0x0e, 0x9b, 0x66, 0x88, 0x69, 0x0e, - 0x8b, 0x43, 0x86, 0x15, 0xc8, 0xb6, 0x91, 0xeb, 0x6a, 0x2d, 0xa4, 0x7a, 0x47, 0x1d, 0x24, 0x27, - 0xc8, 0xec, 0xe7, 0x07, 0x66, 0xdf, 0x3f, 0xf3, 0x0c, 0x43, 0xed, 0x1d, 0x75, 0x90, 0x54, 0x82, - 0x34, 0xb2, 0xba, 0x6d, 0xca, 0x90, 0x3c, 0x21, 0x7e, 0x55, 0xab, 0xdb, 0xee, 0x67, 0x49, 0x61, - 0x18, 0xa3, 0x98, 0x70, 0x91, 0x73, 0xc7, 0xd0, 0x91, 0x3c, 0x4e, 0x08, 0x1e, 0x1f, 0x20, 0xa8, - 0x53, 0x7d, 0x3f, 0x07, 0xc7, 0x49, 0x15, 0x48, 0xa3, 0x17, 0x3d, 0x64, 0xb9, 0x86, 0x6d, 0xc9, - 0x13, 0x84, 0xe4, 0xb1, 0x21, 0xab, 0x88, 0xcc, 0x46, 0x3f, 0x45, 0x80, 0x93, 0x2e, 0xc2, 0x84, - 0xdd, 0xf1, 0x0c, 0xdb, 0x72, 0xe5, 0xd4, 0xbc, 0xb0, 0x90, 0x59, 0xfe, 0xf8, 0xd0, 0x44, 0xa8, - 0x51, 0x1b, 0x85, 0x1b, 0x4b, 0x9b, 0x20, 0xba, 0x76, 0xd7, 0xd1, 0x91, 0xaa, 0xdb, 0x0d, 0xa4, - 0x1a, 0x56, 0xd3, 0x96, 0xd3, 0x84, 0xe0, 0xfc, 0xe0, 0x44, 0x88, 0x61, 0xc5, 0x6e, 0xa0, 0x4d, - 0xab, 0x69, 0x2b, 0x39, 0xb7, 0x67, 0x2c, 0x9d, 0x81, 0x71, 0xf7, 0xc8, 0xf2, 0xb4, 0x17, 0xe5, - 0x2c, 0xc9, 0x10, 0x36, 0x2a, 0xfc, 0x4f, 0x12, 0xa6, 0x46, 0x49, 0xb1, 0xab, 0x90, 0x6c, 0xe2, - 0x59, 0xca, 0xb1, 0xd3, 0xc4, 0x80, 0x62, 0x7a, 0x83, 0x38, 0xfe, 0x23, 0x06, 0xb1, 0x04, 0x19, - 0x0b, 0xb9, 0x1e, 0x6a, 0xd0, 0x8c, 0x88, 0x8f, 0x98, 0x53, 0x40, 0x41, 0x83, 0x29, 0x95, 0xf8, - 0x91, 0x52, 0xea, 0x26, 0x4c, 0xf9, 0x2e, 0xa9, 0x8e, 0x66, 0xb5, 0x78, 0x6e, 0x2e, 0x45, 0x79, - 0xb2, 0x58, 0xe5, 0x38, 0x05, 0xc3, 0x94, 0x1c, 0xea, 0x19, 0x4b, 0xeb, 0x00, 0xb6, 0x85, 0xec, - 0xa6, 0xda, 0x40, 0xba, 0x29, 0xa7, 0x4e, 0x88, 0x52, 0x0d, 0x9b, 0x0c, 0x44, 0xc9, 0xa6, 0x52, - 0xdd, 0x94, 0xae, 0x04, 0xa9, 0x36, 0x71, 0x42, 0xa6, 0x6c, 0xd3, 0x4d, 0x36, 0x90, 0x6d, 0xfb, - 0x90, 0x73, 0x10, 0xce, 0x7b, 0xd4, 0x60, 0x33, 0x4b, 0x13, 0x27, 0x16, 0x23, 0x67, 0xa6, 0x30, - 0x18, 0x9d, 0xd8, 0xa4, 0x13, 0x1e, 0x4a, 0x8f, 0x80, 0x2f, 0x50, 0x49, 0x5a, 0x01, 0x39, 0x85, - 0xb2, 0x5c, 0xb8, 0xa3, 0xb5, 0xd1, 0xdc, 0x65, 0xc8, 0xf5, 0x86, 0x47, 0x9a, 0x85, 0xa4, 0xeb, - 0x69, 0x8e, 0x47, 0xb2, 0x30, 0xa9, 0xd0, 0x81, 0x24, 0x42, 0x1c, 0x59, 0x0d, 0x72, 0xca, 0x25, - 0x15, 0xfc, 0xef, 0xdc, 0x25, 0x98, 0xec, 0x79, 0xfc, 0xa8, 0xc0, 0xc2, 0x97, 0xc6, 0x61, 0x76, - 0x58, 0xce, 0x0d, 0x4d, 0xff, 0x33, 0x30, 0x6e, 0x75, 0xdb, 0x07, 0xc8, 0x91, 0xe3, 0x84, 0x81, - 0x8d, 0xa4, 0x12, 0x24, 0x4d, 0xed, 0x00, 0x99, 0x72, 0x62, 0x5e, 0x58, 0xc8, 0x2d, 0x3f, 0x35, - 0x52, 0x56, 0x2f, 0x6e, 0x61, 0x88, 0x42, 0x91, 0xd2, 0xa7, 0x21, 0xc1, 0x8e, 0x38, 0xcc, 0xf0, - 0xe4, 0x68, 0x0c, 0x38, 0x17, 0x15, 0x82, 0x93, 0x1e, 0x82, 0x34, 0xfe, 0x4b, 0x63, 0x3b, 0x4e, - 0x7c, 0x4e, 0x61, 0x01, 0x8e, 0xab, 0x34, 0x07, 0x29, 0x92, 0x66, 0x0d, 0xc4, 0x4b, 0x83, 0x3f, - 0xc6, 0x0b, 0xd3, 0x40, 0x4d, 0xad, 0x6b, 0x7a, 0xea, 0x1d, 0xcd, 0xec, 0x22, 0x92, 0x30, 0x69, - 0x25, 0xcb, 0x84, 0x9f, 0xc5, 0x32, 0xe9, 0x3c, 0x64, 0x68, 0x56, 0x1a, 0x56, 0x03, 0xbd, 0x48, - 0x4e, 0x9f, 0xa4, 0x42, 0x13, 0x75, 0x13, 0x4b, 0xf0, 0xe3, 0x6f, 0xb9, 0xb6, 0xc5, 0x97, 0x96, - 0x3c, 0x02, 0x0b, 0xc8, 0xe3, 0x2f, 0xf5, 0x1f, 0x7c, 0x0f, 0x0f, 0x9f, 0x5e, 0x7f, 0x2e, 0x16, - 0xbe, 0x1d, 0x83, 0x04, 0xd9, 0x6f, 0x53, 0x90, 0xd9, 0x7b, 0x61, 0xb7, 0xaa, 0xae, 0xd7, 0xf6, - 0xcb, 0x5b, 0x55, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x6d, 0xab, 0x56, 0xda, 0x13, 0x63, 0xfe, - 0x78, 0x73, 0x67, 0xef, 0xe2, 0xaa, 0x18, 0xf7, 0x01, 0xfb, 0x54, 0x90, 0x08, 0x1b, 0xac, 0x2c, - 0x8b, 0x49, 0x49, 0x84, 0x2c, 0x25, 0xd8, 0xbc, 0x59, 0x5d, 0xbf, 0xb8, 0x2a, 0x8e, 0xf7, 0x4a, - 0x56, 0x96, 0xc5, 0x09, 0x69, 0x12, 0xd2, 0x44, 0x52, 0xae, 0xd5, 0xb6, 0xc4, 0x94, 0xcf, 0x59, - 0xdf, 0x53, 0x36, 0x77, 0x36, 0xc4, 0xb4, 0xcf, 0xb9, 0xa1, 0xd4, 0xf6, 0x77, 0x45, 0xf0, 0x19, - 0xb6, 0xab, 0xf5, 0x7a, 0x69, 0xa3, 0x2a, 0x66, 0x7c, 0x8b, 0xf2, 0x0b, 0x7b, 0xd5, 0xba, 0x98, - 0xed, 0x71, 0x6b, 0x65, 0x59, 0x9c, 0xf4, 0x1f, 0x51, 0xdd, 0xd9, 0xdf, 0x16, 0x73, 0xd2, 0x34, - 0x4c, 0xd2, 0x47, 0x70, 0x27, 0xa6, 0xfa, 0x44, 0x17, 0x57, 0x45, 0x31, 0x70, 0x84, 0xb2, 0x4c, - 0xf7, 0x08, 0x2e, 0xae, 0x8a, 0x52, 0xa1, 0x02, 0x49, 0x92, 0x5d, 0x92, 0x04, 0xb9, 0xad, 0x52, - 0xb9, 0xba, 0xa5, 0xd6, 0x76, 0xf7, 0x36, 0x6b, 0x3b, 0xa5, 0x2d, 0x51, 0x08, 0x64, 0x4a, 0xf5, - 0x33, 0xfb, 0x9b, 0x4a, 0x75, 0x5d, 0x8c, 0x85, 0x65, 0xbb, 0xd5, 0xd2, 0x5e, 0x75, 0x5d, 0x8c, - 0x17, 0x74, 0x98, 0x1d, 0x76, 0xce, 0x0c, 0xdd, 0x19, 0xa1, 0x25, 0x8e, 0x9d, 0xb0, 0xc4, 0x84, - 0x6b, 0x60, 0x89, 0xbf, 0x2a, 0xc0, 0xcc, 0x90, 0xb3, 0x76, 0xe8, 0x43, 0x9e, 0x83, 0x24, 0x4d, - 0x51, 0x5a, 0x7d, 0x9e, 0x18, 0x7a, 0x68, 0x93, 0x84, 0x1d, 0xa8, 0x40, 0x04, 0x17, 0xae, 0xc0, - 0xf1, 0x13, 0x2a, 0x30, 0xa6, 0x18, 0x70, 0xf2, 0x65, 0x01, 0xe4, 0x93, 0xb8, 0x23, 0x0e, 0x8a, - 0x58, 0xcf, 0x41, 0x71, 0xb5, 0xdf, 0x81, 0x0b, 0x27, 0xcf, 0x61, 0xc0, 0x8b, 0xd7, 0x05, 0x38, - 0x33, 0xbc, 0x51, 0x19, 0xea, 0xc3, 0xa7, 0x61, 0xbc, 0x8d, 0xbc, 0x43, 0x9b, 0x17, 0xeb, 0x4f, - 0x0c, 0x29, 0x01, 0x58, 0xdd, 0x1f, 0x2b, 0x86, 0x0a, 0xd7, 0x90, 0xf8, 0x49, 0xdd, 0x06, 0xf5, - 0x66, 0xc0, 0xd3, 0x2f, 0xc4, 0xe0, 0x63, 0x43, 0xc9, 0x87, 0x3a, 0xfa, 0x30, 0x80, 0x61, 0x75, - 0xba, 0x1e, 0x2d, 0xc8, 0xf4, 0x7c, 0x4a, 0x13, 0x09, 0xd9, 0xfb, 0xf8, 0xec, 0xe9, 0x7a, 0xbe, - 0x3e, 0x4e, 0xf4, 0x40, 0x45, 0xc4, 0xe0, 0x72, 0xe0, 0x68, 0x82, 0x38, 0x9a, 0x3f, 0x61, 0xa6, - 0x03, 0xb5, 0xee, 0x19, 0x10, 0x75, 0xd3, 0x40, 0x96, 0xa7, 0xba, 0x9e, 0x83, 0xb4, 0xb6, 0x61, - 0xb5, 0xc8, 0x01, 0x9c, 0x2a, 0x26, 0x9b, 0x9a, 0xe9, 0x22, 0x65, 0x8a, 0xaa, 0xeb, 0x5c, 0x8b, - 0x11, 0xa4, 0xca, 0x38, 0x21, 0xc4, 0x78, 0x0f, 0x82, 0xaa, 0x7d, 0x44, 0xe1, 0x1b, 0x13, 0x90, - 0x09, 0xb5, 0x75, 0xd2, 0x05, 0xc8, 0xde, 0xd2, 0xee, 0x68, 0x2a, 0x6f, 0xd5, 0x69, 0x24, 0x32, - 0x58, 0xb6, 0xcb, 0xda, 0xf5, 0x67, 0x60, 0x96, 0x98, 0xd8, 0x5d, 0x0f, 0x39, 0xaa, 0x6e, 0x6a, - 0xae, 0x4b, 0x82, 0x96, 0x22, 0xa6, 0x12, 0xd6, 0xd5, 0xb0, 0xaa, 0xc2, 0x35, 0xd2, 0x1a, 0xcc, - 0x10, 0x44, 0xbb, 0x6b, 0x7a, 0x46, 0xc7, 0x44, 0x2a, 0x7e, 0x79, 0x70, 0xc9, 0x41, 0xec, 0x7b, - 0x36, 0x8d, 0x2d, 0xb6, 0x99, 0x01, 0xf6, 0xc8, 0x95, 0xd6, 0xe1, 0x61, 0x02, 0x6b, 0x21, 0x0b, - 0x39, 0x9a, 0x87, 0x54, 0xf4, 0xf9, 0xae, 0x66, 0xba, 0xaa, 0x66, 0x35, 0xd4, 0x43, 0xcd, 0x3d, - 0x94, 0x67, 0x31, 0x41, 0x39, 0x26, 0x0b, 0xca, 0x39, 0x6c, 0xb8, 0xc1, 0xec, 0xaa, 0xc4, 0xac, - 0x64, 0x35, 0xae, 0x6b, 0xee, 0xa1, 0x54, 0x84, 0x33, 0x84, 0xc5, 0xf5, 0x1c, 0xc3, 0x6a, 0xa9, - 0xfa, 0x21, 0xd2, 0x6f, 0xab, 0x5d, 0xaf, 0x79, 0x59, 0x7e, 0x28, 0xfc, 0x7c, 0xe2, 0x61, 0x9d, - 0xd8, 0x54, 0xb0, 0xc9, 0xbe, 0xd7, 0xbc, 0x2c, 0xd5, 0x21, 0x8b, 0x17, 0xa3, 0x6d, 0xbc, 0x84, - 0xd4, 0xa6, 0xed, 0x90, 0xca, 0x92, 0x1b, 0xb2, 0xb3, 0x43, 0x11, 0x5c, 0xac, 0x31, 0xc0, 0xb6, - 0xdd, 0x40, 0xc5, 0x64, 0x7d, 0xb7, 0x5a, 0x5d, 0x57, 0x32, 0x9c, 0xe5, 0x9a, 0xed, 0xe0, 0x84, - 0x6a, 0xd9, 0x7e, 0x80, 0x33, 0x34, 0xa1, 0x5a, 0x36, 0x0f, 0xef, 0x1a, 0xcc, 0xe8, 0x3a, 0x9d, - 0xb3, 0xa1, 0xab, 0xac, 0xc5, 0x77, 0x65, 0xb1, 0x27, 0x58, 0xba, 0xbe, 0x41, 0x0d, 0x58, 0x8e, - 0xbb, 0xd2, 0x15, 0xf8, 0x58, 0x10, 0xac, 0x30, 0x70, 0x7a, 0x60, 0x96, 0xfd, 0xd0, 0x35, 0x98, - 0xe9, 0x1c, 0x0d, 0x02, 0xa5, 0x9e, 0x27, 0x76, 0x8e, 0xfa, 0x61, 0x8f, 0x91, 0xd7, 0x36, 0x07, - 0xe9, 0x9a, 0x87, 0x1a, 0xf2, 0xd9, 0xb0, 0x75, 0x48, 0x21, 0x2d, 0x81, 0xa8, 0xeb, 0x2a, 0xb2, - 0xb4, 0x03, 0x13, 0xa9, 0x9a, 0x83, 0x2c, 0xcd, 0x95, 0xcf, 0x87, 0x8d, 0x73, 0xba, 0x5e, 0x25, - 0xda, 0x12, 0x51, 0x4a, 0x4f, 0xc2, 0xb4, 0x7d, 0x70, 0x4b, 0xa7, 0x99, 0xa5, 0x76, 0x1c, 0xd4, - 0x34, 0x5e, 0x94, 0x1f, 0x25, 0x61, 0x9a, 0xc2, 0x0a, 0x92, 0x57, 0xbb, 0x44, 0x2c, 0x3d, 0x01, - 0xa2, 0xee, 0x1e, 0x6a, 0x4e, 0x87, 0x94, 0x76, 0xb7, 0xa3, 0xe9, 0x48, 0x7e, 0x8c, 0x9a, 0x52, - 0xf9, 0x0e, 0x17, 0xe3, 0xcc, 0x76, 0xef, 0x1a, 0x4d, 0x8f, 0x33, 0x3e, 0x4e, 0x33, 0x9b, 0xc8, - 0x18, 0xdb, 0x4d, 0x98, 0xed, 0x5a, 0x86, 0xe5, 0x21, 0xa7, 0xe3, 0x20, 0xdc, 0xc4, 0xd3, 0x9d, - 0x28, 0xff, 0xf3, 0xc4, 0x09, 0x6d, 0xf8, 0x7e, 0xd8, 0x9a, 0x26, 0x80, 0x32, 0xd3, 0x1d, 0x14, - 0x16, 0x8a, 0x90, 0x0d, 0xe7, 0x85, 0x94, 0x06, 0x9a, 0x19, 0xa2, 0x80, 0x6b, 0x6c, 0xa5, 0xb6, - 0x8e, 0xab, 0xe3, 0xe7, 0xaa, 0x62, 0x0c, 0x57, 0xe9, 0xad, 0xcd, 0xbd, 0xaa, 0xaa, 0xec, 0xef, - 0xec, 0x6d, 0x6e, 0x57, 0xc5, 0xf8, 0x93, 0xe9, 0xd4, 0x0f, 0x26, 0xc4, 0x7b, 0xf7, 0xee, 0xdd, - 0x8b, 0x15, 0xbe, 0x1b, 0x83, 0x5c, 0x6f, 0x67, 0x2c, 0xfd, 0x14, 0x9c, 0xe5, 0xaf, 0xb1, 0x2e, - 0xf2, 0xd4, 0xbb, 0x86, 0x43, 0x52, 0xb5, 0xad, 0xd1, 0xde, 0xd2, 0x8f, 0xf2, 0x2c, 0xb3, 0xaa, - 0x23, 0xef, 0x79, 0xc3, 0xc1, 0x89, 0xd8, 0xd6, 0x3c, 0x69, 0x0b, 0xce, 0x5b, 0xb6, 0xea, 0x7a, - 0x9a, 0xd5, 0xd0, 0x9c, 0x86, 0x1a, 0x5c, 0x20, 0xa8, 0x9a, 0xae, 0x23, 0xd7, 0xb5, 0x69, 0x89, - 0xf0, 0x59, 0x3e, 0x6e, 0xd9, 0x75, 0x66, 0x1c, 0x9c, 0x9d, 0x25, 0x66, 0xda, 0x97, 0x11, 0xf1, - 0x93, 0x32, 0xe2, 0x21, 0x48, 0xb7, 0xb5, 0x8e, 0x8a, 0x2c, 0xcf, 0x39, 0x22, 0xfd, 0x5c, 0x4a, - 0x49, 0xb5, 0xb5, 0x4e, 0x15, 0x8f, 0x3f, 0xba, 0x35, 0x08, 0xc7, 0xf1, 0x9f, 0xe2, 0x90, 0x0d, - 0xf7, 0x74, 0xb8, 0x45, 0xd6, 0xc9, 0xf9, 0x2d, 0x90, 0x1d, 0xfe, 0xc8, 0x03, 0x3b, 0xc0, 0xc5, - 0x0a, 0x3e, 0xd8, 0x8b, 0xe3, 0xb4, 0xd3, 0x52, 0x28, 0x12, 0x17, 0x55, 0xbc, 0xa7, 0x11, 0xed, - 0xdf, 0x53, 0x0a, 0x1b, 0x49, 0x1b, 0x30, 0x7e, 0xcb, 0x25, 0xdc, 0xe3, 0x84, 0xfb, 0xd1, 0x07, - 0x73, 0xdf, 0xa8, 0x13, 0xf2, 0xf4, 0x8d, 0xba, 0xba, 0x53, 0x53, 0xb6, 0x4b, 0x5b, 0x0a, 0x83, - 0x4b, 0xe7, 0x20, 0x61, 0x6a, 0x2f, 0x1d, 0xf5, 0x96, 0x00, 0x22, 0x1a, 0x35, 0xf0, 0xe7, 0x20, - 0x71, 0x17, 0x69, 0xb7, 0x7b, 0x0f, 0x5e, 0x22, 0xfa, 0x08, 0x53, 0x7f, 0x09, 0x92, 0x24, 0x5e, - 0x12, 0x00, 0x8b, 0x98, 0x38, 0x26, 0xa5, 0x20, 0x51, 0xa9, 0x29, 0x38, 0xfd, 0x45, 0xc8, 0x52, - 0xa9, 0xba, 0xbb, 0x59, 0xad, 0x54, 0xc5, 0x58, 0x61, 0x0d, 0xc6, 0x69, 0x10, 0xf0, 0xd6, 0xf0, - 0xc3, 0x20, 0x8e, 0xb1, 0x21, 0xe3, 0x10, 0xb8, 0x76, 0x7f, 0xbb, 0x5c, 0x55, 0xc4, 0x58, 0x78, - 0x79, 0x5d, 0xc8, 0x86, 0xdb, 0xb9, 0x1f, 0x4f, 0x4e, 0xfd, 0xb5, 0x00, 0x99, 0x50, 0x7b, 0x86, - 0x1b, 0x03, 0xcd, 0x34, 0xed, 0xbb, 0xaa, 0x66, 0x1a, 0x9a, 0xcb, 0x92, 0x02, 0x88, 0xa8, 0x84, - 0x25, 0xa3, 0x2e, 0xda, 0x8f, 0xc5, 0xf9, 0xd7, 0x04, 0x10, 0xfb, 0x5b, 0xbb, 0x3e, 0x07, 0x85, - 0x9f, 0xa8, 0x83, 0xaf, 0x0a, 0x90, 0xeb, 0xed, 0xe7, 0xfa, 0xdc, 0xbb, 0xf0, 0x13, 0x75, 0xef, - 0xed, 0x18, 0x4c, 0xf6, 0x74, 0x71, 0xa3, 0x7a, 0xf7, 0x79, 0x98, 0x36, 0x1a, 0xa8, 0xdd, 0xb1, - 0x3d, 0x64, 0xe9, 0x47, 0xaa, 0x89, 0xee, 0x20, 0x53, 0x2e, 0x90, 0x83, 0x62, 0xe9, 0xc1, 0x7d, - 0xe2, 0xe2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xe2, 0xcc, 0xe6, 0x7a, 0x75, 0x7b, 0xb7, 0xb6, 0x57, - 0xdd, 0xa9, 0xbc, 0xa0, 0xee, 0xef, 0xfc, 0xf4, 0x4e, 0xed, 0xf9, 0x1d, 0x45, 0x34, 0xfa, 0xcc, - 0x3e, 0xc2, 0xad, 0xbe, 0x0b, 0x62, 0xbf, 0x53, 0xd2, 0x59, 0x18, 0xe6, 0x96, 0x38, 0x26, 0xcd, - 0xc0, 0xd4, 0x4e, 0x4d, 0xad, 0x6f, 0xae, 0x57, 0xd5, 0xea, 0xb5, 0x6b, 0xd5, 0xca, 0x5e, 0x9d, - 0xbe, 0x38, 0xfb, 0xd6, 0x7b, 0xbd, 0x9b, 0xfa, 0x95, 0x38, 0xcc, 0x0c, 0xf1, 0x44, 0x2a, 0xb1, - 0x9e, 0x9d, 0xbe, 0x46, 0x3c, 0x3d, 0x8a, 0xf7, 0x8b, 0xb8, 0x2b, 0xd8, 0xd5, 0x1c, 0x8f, 0xb5, - 0xf8, 0x4f, 0x00, 0x8e, 0x92, 0xe5, 0x19, 0x4d, 0x03, 0x39, 0xec, 0x9e, 0x81, 0x36, 0xf2, 0x53, - 0x81, 0x9c, 0x5e, 0x35, 0x7c, 0x12, 0xa4, 0x8e, 0xed, 0x1a, 0x9e, 0x71, 0x07, 0xa9, 0x86, 0xc5, - 0x2f, 0x25, 0x70, 0x63, 0x9f, 0x50, 0x44, 0xae, 0xd9, 0xb4, 0x3c, 0xdf, 0xda, 0x42, 0x2d, 0xad, - 0xcf, 0x1a, 0x1f, 0xe0, 0x71, 0x45, 0xe4, 0x1a, 0xdf, 0xfa, 0x02, 0x64, 0x1b, 0x76, 0x17, 0xb7, - 0x49, 0xd4, 0x0e, 0xd7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0x6f, 0xc2, 0xfa, 0xd8, 0xe0, 0x36, 0x24, - 0xab, 0x64, 0xa8, 0x8c, 0x9a, 0x3c, 0x0e, 0x53, 0x5a, 0xab, 0xe5, 0x60, 0x72, 0x4e, 0x44, 0x3b, - 0xf3, 0x9c, 0x2f, 0x26, 0x86, 0x73, 0x37, 0x20, 0xc5, 0xe3, 0x80, 0x4b, 0x32, 0x8e, 0x84, 0xda, - 0xa1, 0x77, 0x52, 0xb1, 0x85, 0xb4, 0x92, 0xb2, 0xb8, 0xf2, 0x02, 0x64, 0x0d, 0x57, 0x0d, 0x2e, - 0x47, 0x63, 0xf3, 0xb1, 0x85, 0x94, 0x92, 0x31, 0x5c, 0xff, 0x36, 0xac, 0xf0, 0x7a, 0x0c, 0x72, - 0xbd, 0x97, 0xbb, 0xd2, 0x3a, 0xa4, 0x4c, 0x5b, 0xd7, 0x48, 0x6a, 0xd1, 0x5f, 0x16, 0x16, 0x22, - 0xee, 0x83, 0x17, 0xb7, 0x98, 0xbd, 0xe2, 0x23, 0xe7, 0xfe, 0x5e, 0x80, 0x14, 0x17, 0x4b, 0x67, - 0x20, 0xd1, 0xd1, 0xbc, 0x43, 0x42, 0x97, 0x2c, 0xc7, 0x44, 0x41, 0x21, 0x63, 0x2c, 0x77, 0x3b, - 0x9a, 0x45, 0x52, 0x80, 0xc9, 0xf1, 0x18, 0xaf, 0xab, 0x89, 0xb4, 0x06, 0x69, 0xfb, 0xed, 0x76, - 0x1b, 0x59, 0x9e, 0xcb, 0xd7, 0x95, 0xc9, 0x2b, 0x4c, 0x2c, 0x3d, 0x05, 0xd3, 0x9e, 0xa3, 0x19, - 0x66, 0x8f, 0x6d, 0x82, 0xd8, 0x8a, 0x5c, 0xe1, 0x1b, 0x17, 0xe1, 0x1c, 0xe7, 0x6d, 0x20, 0x4f, - 0xd3, 0x0f, 0x51, 0x23, 0x00, 0x8d, 0x93, 0x9b, 0xc3, 0xb3, 0xcc, 0x60, 0x9d, 0xe9, 0x39, 0xb6, - 0xf0, 0x3d, 0x01, 0xa6, 0xf9, 0x8b, 0x4a, 0xc3, 0x0f, 0xd6, 0x36, 0x80, 0x66, 0x59, 0xb6, 0x17, - 0x0e, 0xd7, 0x60, 0x2a, 0x0f, 0xe0, 0x16, 0x4b, 0x3e, 0x48, 0x09, 0x11, 0xcc, 0xb5, 0x01, 0x02, - 0xcd, 0x89, 0x61, 0x3b, 0x0f, 0x19, 0x76, 0x73, 0x4f, 0x7e, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x45, - 0xf8, 0x8d, 0x46, 0x9a, 0x85, 0xe4, 0x01, 0x6a, 0x19, 0x16, 0xbb, 0x4f, 0xa4, 0x03, 0x7e, 0x4b, - 0x99, 0xf0, 0x6f, 0x29, 0xcb, 0x37, 0x61, 0x46, 0xb7, 0xdb, 0xfd, 0xee, 0x96, 0xc5, 0xbe, 0xd7, - 0x6b, 0xf7, 0xba, 0xf0, 0x39, 0x08, 0x5a, 0xcc, 0xaf, 0xc6, 0xe2, 0x1b, 0xbb, 0xe5, 0xaf, 0xc7, - 0xe6, 0x36, 0x28, 0x6e, 0x97, 0x4f, 0x53, 0x41, 0x4d, 0x13, 0xe9, 0xd8, 0x75, 0xf8, 0xe1, 0x27, - 0xe0, 0xe9, 0x96, 0xe1, 0x1d, 0x76, 0x0f, 0x16, 0x75, 0xbb, 0xbd, 0xd4, 0xb2, 0x5b, 0x76, 0xf0, - 0x73, 0x17, 0x1e, 0x91, 0x01, 0xf9, 0x8f, 0xfd, 0xe4, 0x95, 0xf6, 0xa5, 0x73, 0x91, 0xbf, 0x8f, - 0x15, 0x77, 0x60, 0x86, 0x19, 0xab, 0xe4, 0xce, 0x9d, 0xbe, 0x1a, 0x48, 0x0f, 0xbc, 0x77, 0x91, - 0xbf, 0xf5, 0x0e, 0xa9, 0xd5, 0xca, 0x34, 0x83, 0x62, 0x1d, 0x7d, 0x81, 0x28, 0x2a, 0xf0, 0xb1, - 0x1e, 0x3e, 0xba, 0x2f, 0x91, 0x13, 0xc1, 0xf8, 0x5d, 0xc6, 0x38, 0x13, 0x62, 0xac, 0x33, 0x68, - 0xb1, 0x02, 0x93, 0xa7, 0xe1, 0xfa, 0x5b, 0xc6, 0x95, 0x45, 0x61, 0x92, 0x0d, 0x98, 0x22, 0x24, - 0x7a, 0xd7, 0xf5, 0xec, 0x36, 0x39, 0xf4, 0x1e, 0x4c, 0xf3, 0x77, 0xef, 0xd0, 0x8d, 0x92, 0xc3, - 0xb0, 0x8a, 0x8f, 0x2a, 0x16, 0x81, 0xfc, 0xcc, 0xd0, 0x40, 0xba, 0x19, 0xc1, 0xf0, 0x06, 0x73, - 0xc4, 0xb7, 0x2f, 0x7e, 0x16, 0x66, 0xf1, 0xff, 0xe4, 0x4c, 0x0a, 0x7b, 0x12, 0x7d, 0xcb, 0x24, - 0x7f, 0xef, 0x65, 0xba, 0x17, 0x67, 0x7c, 0x82, 0x90, 0x4f, 0xa1, 0x55, 0x6c, 0x21, 0xcf, 0x43, - 0x8e, 0xab, 0x6a, 0xe6, 0x30, 0xf7, 0x42, 0xaf, 0xe9, 0xf2, 0x97, 0xdf, 0xed, 0x5d, 0xc5, 0x0d, - 0x8a, 0x2c, 0x99, 0x66, 0x71, 0x1f, 0xce, 0x0e, 0xc9, 0x8a, 0x11, 0x38, 0x5f, 0x61, 0x9c, 0xb3, - 0x03, 0x99, 0x81, 0x69, 0x77, 0x81, 0xcb, 0xfd, 0xb5, 0x1c, 0x81, 0xf3, 0xb7, 0x19, 0xa7, 0xc4, - 0xb0, 0x7c, 0x49, 0x31, 0xe3, 0x0d, 0x98, 0xbe, 0x83, 0x9c, 0x03, 0xdb, 0x65, 0x57, 0x23, 0x23, - 0xd0, 0xbd, 0xca, 0xe8, 0xa6, 0x18, 0x90, 0xdc, 0x95, 0x60, 0xae, 0x2b, 0x90, 0x6a, 0x6a, 0x3a, - 0x1a, 0x81, 0xe2, 0x2b, 0x8c, 0x62, 0x02, 0xdb, 0x63, 0x68, 0x09, 0xb2, 0x2d, 0x9b, 0x95, 0xa5, - 0x68, 0xf8, 0x6b, 0x0c, 0x9e, 0xe1, 0x18, 0x46, 0xd1, 0xb1, 0x3b, 0x5d, 0x13, 0xd7, 0xac, 0x68, - 0x8a, 0xdf, 0xe1, 0x14, 0x1c, 0xc3, 0x28, 0x4e, 0x11, 0xd6, 0xdf, 0xe5, 0x14, 0x6e, 0x28, 0x9e, - 0xcf, 0x41, 0xc6, 0xb6, 0xcc, 0x23, 0xdb, 0x1a, 0xc5, 0x89, 0xdf, 0x63, 0x0c, 0xc0, 0x20, 0x98, - 0xe0, 0x2a, 0xa4, 0x47, 0x5d, 0x88, 0xdf, 0x7f, 0x97, 0x6f, 0x0f, 0xbe, 0x02, 0x1b, 0x30, 0xc5, - 0x0f, 0x28, 0xc3, 0xb6, 0x46, 0xa0, 0xf8, 0x03, 0x46, 0x91, 0x0b, 0xc1, 0xd8, 0x34, 0x3c, 0xe4, - 0x7a, 0x2d, 0x34, 0x0a, 0xc9, 0xeb, 0x7c, 0x1a, 0x0c, 0xc2, 0x42, 0x79, 0x80, 0x2c, 0xfd, 0x70, - 0x34, 0x86, 0xaf, 0xf1, 0x50, 0x72, 0x0c, 0xa6, 0xa8, 0xc0, 0x64, 0x5b, 0x73, 0xdc, 0x43, 0xcd, - 0x1c, 0x69, 0x39, 0xfe, 0x90, 0x71, 0x64, 0x7d, 0x10, 0x8b, 0x48, 0xd7, 0x3a, 0x0d, 0xcd, 0xd7, - 0x79, 0x44, 0x42, 0x30, 0xb6, 0xf5, 0x5c, 0x8f, 0x5c, 0x40, 0x9d, 0x86, 0xed, 0x1b, 0x7c, 0xeb, - 0x51, 0xec, 0x76, 0x98, 0xf1, 0x2a, 0xa4, 0x5d, 0xe3, 0xa5, 0x91, 0x68, 0xfe, 0x88, 0xaf, 0x34, - 0x01, 0x60, 0xf0, 0x0b, 0x70, 0x6e, 0x68, 0x99, 0x18, 0x81, 0xec, 0x8f, 0x19, 0xd9, 0x99, 0x21, - 0xa5, 0x82, 0x1d, 0x09, 0xa7, 0xa5, 0xfc, 0x13, 0x7e, 0x24, 0xa0, 0x3e, 0xae, 0x5d, 0xfc, 0xa2, - 0xe0, 0x6a, 0xcd, 0xd3, 0x45, 0xed, 0x4f, 0x79, 0xd4, 0x28, 0xb6, 0x27, 0x6a, 0x7b, 0x70, 0x86, - 0x31, 0x9e, 0x6e, 0x5d, 0xbf, 0xc9, 0x0f, 0x56, 0x8a, 0xde, 0xef, 0x5d, 0xdd, 0x9f, 0x81, 0x39, - 0x3f, 0x9c, 0xbc, 0x23, 0x75, 0xd5, 0xb6, 0xd6, 0x19, 0x81, 0xf9, 0x5b, 0x8c, 0x99, 0x9f, 0xf8, - 0x7e, 0x4b, 0xeb, 0x6e, 0x6b, 0x1d, 0x4c, 0x7e, 0x13, 0x64, 0x4e, 0xde, 0xb5, 0x1c, 0xa4, 0xdb, - 0x2d, 0xcb, 0x78, 0x09, 0x35, 0x46, 0xa0, 0xfe, 0xb3, 0xbe, 0xa5, 0xda, 0x0f, 0xc1, 0x31, 0xf3, - 0x26, 0x88, 0x7e, 0xaf, 0xa2, 0x1a, 0xed, 0x8e, 0xed, 0x78, 0x11, 0x8c, 0x7f, 0xce, 0x57, 0xca, - 0xc7, 0x6d, 0x12, 0x58, 0xb1, 0x0a, 0x39, 0x32, 0x1c, 0x35, 0x25, 0xff, 0x82, 0x11, 0x4d, 0x06, - 0x28, 0x76, 0x70, 0xe8, 0x76, 0xbb, 0xa3, 0x39, 0xa3, 0x9c, 0x7f, 0x7f, 0xc9, 0x0f, 0x0e, 0x06, - 0x61, 0x07, 0x87, 0x77, 0xd4, 0x41, 0xb8, 0xda, 0x8f, 0xc0, 0xf0, 0x6d, 0x7e, 0x70, 0x70, 0x0c, - 0xa3, 0xe0, 0x0d, 0xc3, 0x08, 0x14, 0x7f, 0xc5, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x26, 0x28, 0xb4, - 0x0e, 0x6a, 0x19, 0xae, 0xe7, 0xd0, 0x3e, 0xf8, 0xc1, 0x54, 0xdf, 0x79, 0xb7, 0xb7, 0x09, 0x53, - 0x42, 0xd0, 0xe2, 0x0d, 0x98, 0xea, 0x6b, 0x31, 0xa4, 0xa8, 0x6f, 0x16, 0xe4, 0x9f, 0x7d, 0x9f, - 0x1d, 0x46, 0xbd, 0x1d, 0x46, 0x71, 0x0b, 0xaf, 0x7b, 0x6f, 0x1f, 0x10, 0x4d, 0xf6, 0xf2, 0xfb, - 0xfe, 0xd2, 0xf7, 0xb4, 0x01, 0xc5, 0x6b, 0x30, 0xd9, 0xd3, 0x03, 0x44, 0x53, 0xfd, 0x1c, 0xa3, - 0xca, 0x86, 0x5b, 0x80, 0xe2, 0x1a, 0x24, 0x70, 0x3d, 0x8f, 0x86, 0xff, 0x3c, 0x83, 0x13, 0xf3, - 0xe2, 0xa7, 0x20, 0xc5, 0xeb, 0x78, 0x34, 0xf4, 0x17, 0x18, 0xd4, 0x87, 0x60, 0x38, 0xaf, 0xe1, - 0xd1, 0xf0, 0x5f, 0xe4, 0x70, 0x0e, 0xc1, 0xf0, 0xd1, 0x43, 0xf8, 0x37, 0xbf, 0x94, 0x60, 0xe7, - 0x30, 0x8f, 0xdd, 0x55, 0x98, 0x60, 0xc5, 0x3b, 0x1a, 0xfd, 0x05, 0xf6, 0x70, 0x8e, 0x28, 0x5e, - 0x82, 0xe4, 0x88, 0x01, 0xff, 0x65, 0x06, 0xa5, 0xf6, 0xc5, 0x0a, 0x64, 0x42, 0x05, 0x3b, 0x1a, - 0xfe, 0x2b, 0x0c, 0x1e, 0x46, 0x61, 0xd7, 0x59, 0xc1, 0x8e, 0x26, 0xf8, 0x55, 0xee, 0x3a, 0x43, - 0xe0, 0xb0, 0xf1, 0x5a, 0x1d, 0x8d, 0xfe, 0x35, 0x1e, 0x75, 0x0e, 0x29, 0x3e, 0x07, 0x69, 0xff, - 0xfc, 0x8d, 0xc6, 0xff, 0x3a, 0xc3, 0x07, 0x18, 0x1c, 0x81, 0xd0, 0xf9, 0x1f, 0x4d, 0xf1, 0x45, - 0x1e, 0x81, 0x10, 0x0a, 0x6f, 0xa3, 0xfe, 0x9a, 0x1e, 0xcd, 0xf4, 0x1b, 0x7c, 0x1b, 0xf5, 0x95, - 0x74, 0xbc, 0x9a, 0xe4, 0x18, 0x8c, 0xa6, 0xf8, 0x4d, 0xbe, 0x9a, 0xc4, 0x1e, 0xbb, 0xd1, 0x5f, - 0x24, 0xa3, 0x39, 0x7e, 0x8b, 0xbb, 0xd1, 0x57, 0x23, 0x8b, 0xbb, 0x20, 0x0d, 0x16, 0xc8, 0x68, - 0xbe, 0x2f, 0x31, 0xbe, 0xe9, 0x81, 0xfa, 0x58, 0x7c, 0x1e, 0xce, 0x0c, 0x2f, 0x8e, 0xd1, 0xac, - 0x5f, 0x7e, 0xbf, 0xef, 0x75, 0x26, 0x5c, 0x1b, 0x8b, 0x7b, 0xc1, 0x29, 0x1b, 0x2e, 0x8c, 0xd1, - 0xb4, 0xaf, 0xbc, 0xdf, 0x7b, 0xd0, 0x86, 0xeb, 0x62, 0xb1, 0x04, 0x10, 0xd4, 0xa4, 0x68, 0xae, - 0x57, 0x19, 0x57, 0x08, 0x84, 0xb7, 0x06, 0x2b, 0x49, 0xd1, 0xf8, 0xaf, 0xf0, 0xad, 0xc1, 0x10, - 0x78, 0x6b, 0xf0, 0x6a, 0x14, 0x8d, 0x7e, 0x8d, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x85, 0x94, 0xd5, - 0x35, 0x4d, 0x9c, 0x5b, 0xd2, 0x83, 0x3f, 0x23, 0x92, 0xff, 0xe5, 0x43, 0x06, 0xe6, 0x80, 0xe2, - 0x1a, 0x24, 0x51, 0xfb, 0x00, 0x35, 0xa2, 0x90, 0xff, 0xfa, 0x21, 0x3f, 0x4f, 0xb0, 0x75, 0xf1, - 0x39, 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xdb, 0x87, 0xec, 0x0b, 0x85, 0x00, - 0x12, 0x10, 0xd0, 0xef, 0x1d, 0x1e, 0x4c, 0xf0, 0x6e, 0x2f, 0x01, 0x79, 0x01, 0xbf, 0x02, 0x13, - 0xb7, 0x5c, 0xdb, 0xf2, 0xb4, 0x56, 0x14, 0xfa, 0xdf, 0x19, 0x9a, 0xdb, 0xe3, 0x80, 0xb5, 0x6d, - 0x07, 0x79, 0x5a, 0xcb, 0x8d, 0xc2, 0xfe, 0x07, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x35, 0xd7, 0x1b, - 0x65, 0xde, 0xff, 0xc9, 0xc1, 0x1c, 0x80, 0x9d, 0xc6, 0xff, 0xdf, 0x46, 0x47, 0x51, 0xd8, 0xf7, - 0xb8, 0xd3, 0xcc, 0xbe, 0xf8, 0x29, 0x48, 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x11, 0xe0, 0xff, 0x62, - 0xe0, 0x00, 0x81, 0x9f, 0xec, 0x7a, 0x0d, 0xcf, 0x88, 0x0e, 0xf6, 0x7f, 0xb3, 0x95, 0xe6, 0xf6, - 0xc5, 0x12, 0x64, 0x5c, 0xaf, 0xd1, 0xe8, 0xb2, 0x8e, 0x26, 0x02, 0xfe, 0xc3, 0x0f, 0xfd, 0x97, - 0x5c, 0x1f, 0x53, 0xbe, 0x30, 0xfc, 0xb2, 0x0e, 0x36, 0xec, 0x0d, 0x9b, 0x5e, 0xd3, 0xc1, 0x07, - 0x29, 0x90, 0x75, 0xbb, 0x7d, 0x60, 0xbb, 0x4b, 0x16, 0x32, 0xbc, 0x43, 0xe4, 0x2c, 0xd9, 0x16, - 0xb3, 0x95, 0xe2, 0xb6, 0x85, 0xe6, 0x4e, 0x77, 0x29, 0x57, 0x38, 0x07, 0xc9, 0x7a, 0xf7, 0xe0, - 0xe0, 0x48, 0x12, 0x21, 0xee, 0x76, 0x0f, 0xd8, 0x57, 0x25, 0xf8, 0xdf, 0xc2, 0x5b, 0x71, 0x98, - 0x2c, 0x99, 0xe6, 0xde, 0x51, 0x07, 0xb9, 0x35, 0x0b, 0xd5, 0x9a, 0x92, 0x0c, 0xe3, 0x64, 0x16, - 0xcf, 0x12, 0x33, 0xe1, 0xfa, 0x98, 0xc2, 0xc6, 0xbe, 0x66, 0x99, 0xdc, 0x55, 0xc6, 0x7c, 0xcd, - 0xb2, 0xaf, 0x59, 0xa1, 0x57, 0x95, 0xbe, 0x66, 0xc5, 0xd7, 0xac, 0x92, 0x0b, 0xcb, 0xb8, 0xaf, - 0x59, 0xf5, 0x35, 0x6b, 0xe4, 0x42, 0x7e, 0xd2, 0xd7, 0xac, 0xf9, 0x9a, 0x8b, 0xe4, 0x0a, 0x3e, - 0xe1, 0x6b, 0x2e, 0xfa, 0x9a, 0x4b, 0xe4, 0xe6, 0x7d, 0xda, 0xd7, 0x5c, 0xf2, 0x35, 0x97, 0xc9, - 0x6d, 0xbb, 0xe4, 0x6b, 0x2e, 0xfb, 0x9a, 0x2b, 0xe4, 0xf3, 0x91, 0x09, 0x5f, 0x73, 0x45, 0x9a, - 0x83, 0x09, 0x3a, 0xb3, 0x67, 0xc8, 0x4f, 0xb2, 0x53, 0xd7, 0xc7, 0x14, 0x2e, 0x08, 0x74, 0xcf, - 0x92, 0x4f, 0x44, 0xc6, 0x03, 0xdd, 0xb3, 0x81, 0x6e, 0x99, 0x7c, 0x28, 0x2d, 0x06, 0xba, 0xe5, - 0x40, 0xb7, 0x22, 0x4f, 0xe2, 0xc5, 0x0f, 0x74, 0x2b, 0x81, 0x6e, 0x55, 0xce, 0xe1, 0x15, 0x08, - 0x74, 0xab, 0x81, 0x6e, 0x4d, 0x9e, 0x9a, 0x17, 0x16, 0xb2, 0x81, 0x6e, 0x4d, 0x7a, 0x1a, 0x32, - 0x6e, 0xf7, 0x40, 0x65, 0x5f, 0x10, 0x90, 0x4f, 0x51, 0x32, 0xcb, 0xb0, 0x88, 0x73, 0x82, 0x2c, - 0xeb, 0xf5, 0x31, 0x05, 0xdc, 0xee, 0x01, 0x3b, 0x1d, 0xcb, 0x59, 0x20, 0x97, 0x09, 0x2a, 0xf9, - 0x00, 0xb3, 0xf0, 0xa6, 0x00, 0xe9, 0xbd, 0xbb, 0x36, 0xf9, 0x41, 0xd6, 0xfd, 0x7f, 0x5e, 0x5c, - 0xee, 0xf4, 0xca, 0x2a, 0xf9, 0xcd, 0x2c, 0x7d, 0x5d, 0x50, 0xb8, 0x20, 0xd0, 0xad, 0xc9, 0x8f, - 0x90, 0x09, 0xf9, 0xba, 0x35, 0x69, 0x09, 0xb2, 0xa1, 0x09, 0x2d, 0x93, 0xaf, 0x4b, 0x7a, 0x67, - 0x24, 0x28, 0x99, 0x60, 0x46, 0xcb, 0xe5, 0x24, 0xe0, 0xb4, 0xc7, 0x7f, 0xbc, 0xbb, 0x76, 0xe1, - 0x8b, 0x31, 0xc8, 0xd0, 0xfb, 0x47, 0x32, 0x2b, 0xfc, 0x28, 0xda, 0x8f, 0x1f, 0x31, 0x37, 0xc6, - 0x14, 0x2e, 0x90, 0x14, 0x00, 0x6a, 0x8a, 0x33, 0x9c, 0x7a, 0x52, 0x7e, 0xe6, 0x1f, 0xdf, 0x3a, - 0xff, 0xc9, 0x13, 0x77, 0x10, 0x8e, 0xdd, 0x12, 0x3d, 0x5d, 0x17, 0xf7, 0x0d, 0xcb, 0x7b, 0x76, - 0xf9, 0x32, 0x0e, 0x70, 0xc0, 0x22, 0xed, 0x43, 0xaa, 0xa2, 0xb9, 0xe4, 0xf3, 0x32, 0xe2, 0x7a, - 0xa2, 0x7c, 0xe9, 0x7f, 0xdf, 0x3a, 0xbf, 0x12, 0xc1, 0xc8, 0x0e, 0xbe, 0xc5, 0xed, 0x23, 0xcc, - 0x7a, 0x71, 0x15, 0xc3, 0xaf, 0x8f, 0x29, 0x3e, 0x95, 0xb4, 0xcc, 0x5d, 0xdd, 0xd1, 0xda, 0xf4, - 0x33, 0x9a, 0x78, 0x59, 0x3c, 0x7e, 0xeb, 0x7c, 0x76, 0xfb, 0x28, 0x90, 0x07, 0xae, 0xe0, 0x51, - 0x39, 0x05, 0xe3, 0xd4, 0xd5, 0xf2, 0xfa, 0x1b, 0xf7, 0xf3, 0x63, 0x6f, 0xde, 0xcf, 0x8f, 0xfd, - 0xc3, 0xfd, 0xfc, 0xd8, 0xdb, 0xf7, 0xf3, 0xc2, 0x7b, 0xf7, 0xf3, 0xc2, 0x07, 0xf7, 0xf3, 0xc2, - 0xbd, 0xe3, 0xbc, 0xf0, 0xb5, 0xe3, 0xbc, 0xf0, 0xcd, 0xe3, 0xbc, 0xf0, 0x9d, 0xe3, 0xbc, 0xf0, - 0xc6, 0x71, 0x7e, 0xec, 0xcd, 0xe3, 0xfc, 0xd8, 0xdb, 0xc7, 0x79, 0xe1, 0x07, 0xc7, 0xf9, 0xb1, - 0xf7, 0x8e, 0xf3, 0xc2, 0x07, 0xc7, 0xf9, 0xb1, 0x7b, 0xdf, 0xcf, 0x8f, 0xfd, 0x5f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x62, 0x75, 0xc3, 0x94, 0xd7, 0x32, 0x00, 0x00, + // 4154 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x6b, 0x6c, 0x1c, 0xd7, + 0x75, 0xe6, 0xec, 0x83, 0xdc, 0x3d, 0xbb, 0x5c, 0x0e, 0x2f, 0x69, 0x69, 0x45, 0xc7, 0x2b, 0x69, + 0x6d, 0x47, 0xb4, 0x1d, 0x93, 0x36, 0x45, 0xea, 0xb1, 0x6a, 0xe2, 0x2e, 0xc9, 0x15, 0x45, 0x95, + 0xe4, 0x32, 0x43, 0x32, 0x7e, 0x04, 0xc5, 0x60, 0x38, 0x7b, 0xb9, 0x1c, 0x69, 0x76, 0x66, 0x32, + 0x33, 0x2b, 0x99, 0x42, 0x7f, 0xa8, 0x70, 0x1f, 0x08, 0x8a, 0xbe, 0xd2, 0x02, 0x49, 0x5c, 0xc7, + 0x7d, 0x00, 0xad, 0xd3, 0xf4, 0x95, 0x34, 0x6d, 0x9a, 0xf6, 0x57, 0xff, 0xa4, 0xf5, 0xaf, 0xc2, + 0xf9, 0x57, 0x14, 0x85, 0x61, 0x31, 0x06, 0x9a, 0xb6, 0x6e, 0xe3, 0xb6, 0xfe, 0x61, 0xd4, 0x7f, + 0x8a, 0xfb, 0x9a, 0x99, 0x7d, 0x50, 0xb3, 0x0c, 0x6a, 0xfb, 0x17, 0x39, 0xe7, 0x9c, 0xef, 0x9b, + 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0x7b, 0xef, 0x0e, 0xfc, 0xe8, 0x32, 0x9c, 0x69, 0xda, 0x76, 0xd3, + 0xc4, 0xb3, 0x8e, 0x6b, 0xfb, 0xf6, 0x6e, 0x7b, 0x6f, 0xb6, 0x81, 0x3d, 0xdd, 0x35, 0x1c, 0xdf, + 0x76, 0x67, 0xa8, 0x0c, 0x8d, 0x31, 0x8b, 0x19, 0x61, 0x51, 0x5e, 0x87, 0xf1, 0xab, 0x86, 0x89, + 0x97, 0x03, 0xc3, 0x2d, 0xec, 0xa3, 0x4b, 0x90, 0xda, 0x33, 0x4c, 0x5c, 0x94, 0xce, 0x24, 0xa7, + 0x73, 0x73, 0x8f, 0xcc, 0x74, 0x81, 0x66, 0x3a, 0x11, 0x9b, 0x44, 0xac, 0x50, 0x44, 0xf9, 0xed, + 0x14, 0x4c, 0xf4, 0xd1, 0x22, 0x04, 0x29, 0x4b, 0x6b, 0x11, 0x46, 0x69, 0x3a, 0xab, 0xd0, 0xff, + 0x51, 0x11, 0x46, 0x1c, 0x4d, 0xbf, 0xa9, 0x35, 0x71, 0x31, 0x41, 0xc5, 0xe2, 0x11, 0x95, 0x00, + 0x1a, 0xd8, 0xc1, 0x56, 0x03, 0x5b, 0xfa, 0x41, 0x31, 0x79, 0x26, 0x39, 0x9d, 0x55, 0x22, 0x12, + 0xf4, 0x04, 0x8c, 0x3b, 0xed, 0x5d, 0xd3, 0xd0, 0xd5, 0x88, 0x19, 0x9c, 0x49, 0x4e, 0xa7, 0x15, + 0x99, 0x29, 0x96, 0x43, 0xe3, 0x73, 0x30, 0x76, 0x1b, 0x6b, 0x37, 0xa3, 0xa6, 0x39, 0x6a, 0x5a, + 0x20, 0xe2, 0x88, 0xe1, 0x12, 0xe4, 0x5b, 0xd8, 0xf3, 0xb4, 0x26, 0x56, 0xfd, 0x03, 0x07, 0x17, + 0x53, 0x74, 0xf4, 0x67, 0x7a, 0x46, 0xdf, 0x3d, 0xf2, 0x1c, 0x47, 0x6d, 0x1f, 0x38, 0x18, 0x55, + 0x21, 0x8b, 0xad, 0x76, 0x8b, 0x31, 0xa4, 0x8f, 0x88, 0x5f, 0xcd, 0x6a, 0xb7, 0xba, 0x59, 0x32, + 0x04, 0xc6, 0x29, 0x46, 0x3c, 0xec, 0xde, 0x32, 0x74, 0x5c, 0x1c, 0xa6, 0x04, 0xe7, 0x7a, 0x08, + 0xb6, 0x98, 0xbe, 0x9b, 0x43, 0xe0, 0xd0, 0x12, 0x64, 0xf1, 0x8b, 0x3e, 0xb6, 0x3c, 0xc3, 0xb6, + 0x8a, 0x23, 0x94, 0xe4, 0xd1, 0x3e, 0xb3, 0x88, 0xcd, 0x46, 0x37, 0x45, 0x88, 0x43, 0x17, 0x60, + 0xc4, 0x76, 0x7c, 0xc3, 0xb6, 0xbc, 0x62, 0xe6, 0x8c, 0x34, 0x9d, 0x9b, 0xfb, 0x44, 0xdf, 0x44, + 0xa8, 0x33, 0x1b, 0x45, 0x18, 0xa3, 0x55, 0x90, 0x3d, 0xbb, 0xed, 0xea, 0x58, 0xd5, 0xed, 0x06, + 0x56, 0x0d, 0x6b, 0xcf, 0x2e, 0x66, 0x29, 0xc1, 0xe9, 0xde, 0x81, 0x50, 0xc3, 0x25, 0xbb, 0x81, + 0x57, 0xad, 0x3d, 0x5b, 0x29, 0x78, 0x1d, 0xcf, 0xe8, 0x04, 0x0c, 0x7b, 0x07, 0x96, 0xaf, 0xbd, + 0x58, 0xcc, 0xd3, 0x0c, 0xe1, 0x4f, 0xe5, 0xbf, 0x1e, 0x86, 0xb1, 0x41, 0x52, 0xec, 0x0a, 0xa4, + 0xf7, 0xc8, 0x28, 0x8b, 0x89, 0xe3, 0xc4, 0x80, 0x61, 0x3a, 0x83, 0x38, 0xfc, 0x63, 0x06, 0xb1, + 0x0a, 0x39, 0x0b, 0x7b, 0x3e, 0x6e, 0xb0, 0x8c, 0x48, 0x0e, 0x98, 0x53, 0xc0, 0x40, 0xbd, 0x29, + 0x95, 0xfa, 0xb1, 0x52, 0xea, 0x39, 0x18, 0x0b, 0x5c, 0x52, 0x5d, 0xcd, 0x6a, 0x8a, 0xdc, 0x9c, + 0x8d, 0xf3, 0x64, 0xa6, 0x26, 0x70, 0x0a, 0x81, 0x29, 0x05, 0xdc, 0xf1, 0x8c, 0x96, 0x01, 0x6c, + 0x0b, 0xdb, 0x7b, 0x6a, 0x03, 0xeb, 0x66, 0x31, 0x73, 0x44, 0x94, 0xea, 0xc4, 0xa4, 0x27, 0x4a, + 0x36, 0x93, 0xea, 0x26, 0xba, 0x1c, 0xa6, 0xda, 0xc8, 0x11, 0x99, 0xb2, 0xce, 0x16, 0x59, 0x4f, + 0xb6, 0xed, 0x40, 0xc1, 0xc5, 0x24, 0xef, 0x71, 0x83, 0x8f, 0x2c, 0x4b, 0x9d, 0x98, 0x89, 0x1d, + 0x99, 0xc2, 0x61, 0x6c, 0x60, 0xa3, 0x6e, 0xf4, 0x11, 0x3d, 0x0c, 0x81, 0x40, 0xa5, 0x69, 0x05, + 0xb4, 0x0a, 0xe5, 0x85, 0x70, 0x43, 0x6b, 0xe1, 0xa9, 0x3b, 0x50, 0xe8, 0x0c, 0x0f, 0x9a, 0x84, + 0xb4, 0xe7, 0x6b, 0xae, 0x4f, 0xb3, 0x30, 0xad, 0xb0, 0x07, 0x24, 0x43, 0x12, 0x5b, 0x0d, 0x5a, + 0xe5, 0xd2, 0x0a, 0xf9, 0x17, 0xfd, 0x64, 0x38, 0xe0, 0x24, 0x1d, 0xf0, 0x27, 0x7b, 0x67, 0xb4, + 0x83, 0xb9, 0x7b, 0xdc, 0x53, 0x17, 0x61, 0xb4, 0x63, 0x00, 0x83, 0xbe, 0xba, 0xfc, 0x33, 0xf0, + 0x40, 0x5f, 0x6a, 0xf4, 0x1c, 0x4c, 0xb6, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, 0x64, 0x2c, + 0x7b, 0x55, 0xf1, 0x5f, 0x46, 0x8e, 0xc8, 0xb9, 0x9d, 0xa8, 0x35, 0x63, 0x51, 0x26, 0xda, 0xbd, + 0xc2, 0xc7, 0xb3, 0x99, 0x1f, 0x8e, 0xc8, 0x77, 0xef, 0xde, 0xbd, 0x9b, 0x28, 0x7f, 0x65, 0x18, + 0x26, 0xfb, 0xad, 0x99, 0xbe, 0xcb, 0xf7, 0x04, 0x0c, 0x5b, 0xed, 0xd6, 0x2e, 0x76, 0x69, 0x90, + 0xd2, 0x0a, 0x7f, 0x42, 0x55, 0x48, 0x9b, 0xda, 0x2e, 0x36, 0x8b, 0xa9, 0x33, 0xd2, 0x74, 0x61, + 0xee, 0x89, 0x81, 0x56, 0xe5, 0xcc, 0x1a, 0x81, 0x28, 0x0c, 0x89, 0x3e, 0x03, 0x29, 0x5e, 0xa2, + 0x09, 0xc3, 0xe3, 0x83, 0x31, 0x90, 0xb5, 0xa4, 0x50, 0x1c, 0x7a, 0x10, 0xb2, 0xe4, 0x2f, 0xcb, + 0x8d, 0x61, 0xea, 0x73, 0x86, 0x08, 0x48, 0x5e, 0xa0, 0x29, 0xc8, 0xd0, 0x65, 0xd2, 0xc0, 0xa2, + 0xb5, 0x05, 0xcf, 0x24, 0xb1, 0x1a, 0x78, 0x4f, 0x6b, 0x9b, 0xbe, 0x7a, 0x4b, 0x33, 0xdb, 0x98, + 0x26, 0x7c, 0x56, 0xc9, 0x73, 0xe1, 0xe7, 0x88, 0x0c, 0x9d, 0x86, 0x1c, 0x5b, 0x55, 0x86, 0xd5, + 0xc0, 0x2f, 0xd2, 0xea, 0x99, 0x56, 0xd8, 0x42, 0x5b, 0x25, 0x12, 0xf2, 0xfa, 0x1b, 0x9e, 0x6d, + 0x89, 0xd4, 0xa4, 0xaf, 0x20, 0x02, 0xfa, 0xfa, 0x8b, 0xdd, 0x85, 0xfb, 0xa1, 0xfe, 0xc3, 0xeb, + 0xce, 0xa9, 0xf2, 0x77, 0x12, 0x90, 0xa2, 0xf5, 0x62, 0x0c, 0x72, 0xdb, 0xcf, 0x6f, 0xd6, 0xd4, + 0xe5, 0xfa, 0xce, 0xe2, 0x5a, 0x4d, 0x96, 0x50, 0x01, 0x80, 0x0a, 0xae, 0xae, 0xd5, 0xab, 0xdb, + 0x72, 0x22, 0x78, 0x5e, 0xdd, 0xd8, 0xbe, 0x30, 0x2f, 0x27, 0x03, 0xc0, 0x0e, 0x13, 0xa4, 0xa2, + 0x06, 0xe7, 0xe7, 0xe4, 0x34, 0x92, 0x21, 0xcf, 0x08, 0x56, 0x9f, 0xab, 0x2d, 0x5f, 0x98, 0x97, + 0x87, 0x3b, 0x25, 0xe7, 0xe7, 0xe4, 0x11, 0x34, 0x0a, 0x59, 0x2a, 0x59, 0xac, 0xd7, 0xd7, 0xe4, + 0x4c, 0xc0, 0xb9, 0xb5, 0xad, 0xac, 0x6e, 0xac, 0xc8, 0xd9, 0x80, 0x73, 0x45, 0xa9, 0xef, 0x6c, + 0xca, 0x10, 0x30, 0xac, 0xd7, 0xb6, 0xb6, 0xaa, 0x2b, 0x35, 0x39, 0x17, 0x58, 0x2c, 0x3e, 0xbf, + 0x5d, 0xdb, 0x92, 0xf3, 0x1d, 0x6e, 0x9d, 0x9f, 0x93, 0x47, 0x83, 0x57, 0xd4, 0x36, 0x76, 0xd6, + 0xe5, 0x02, 0x1a, 0x87, 0x51, 0xf6, 0x0a, 0xe1, 0xc4, 0x58, 0x97, 0xe8, 0xc2, 0xbc, 0x2c, 0x87, + 0x8e, 0x30, 0x96, 0xf1, 0x0e, 0xc1, 0x85, 0x79, 0x19, 0x95, 0x97, 0x20, 0x4d, 0xb3, 0x0b, 0x21, + 0x28, 0xac, 0x55, 0x17, 0x6b, 0x6b, 0x6a, 0x7d, 0x73, 0x7b, 0xb5, 0xbe, 0x51, 0x5d, 0x93, 0xa5, + 0x50, 0xa6, 0xd4, 0x3e, 0xbb, 0xb3, 0xaa, 0xd4, 0x96, 0xe5, 0x44, 0x54, 0xb6, 0x59, 0xab, 0x6e, + 0xd7, 0x96, 0xe5, 0x64, 0x59, 0x87, 0xc9, 0x7e, 0x75, 0xb2, 0xef, 0xca, 0x88, 0x4c, 0x71, 0xe2, + 0x88, 0x29, 0xa6, 0x5c, 0x3d, 0x53, 0xfc, 0x83, 0x04, 0x4c, 0xf4, 0xe9, 0x15, 0x7d, 0x5f, 0xf2, + 0x0c, 0xa4, 0x59, 0x8a, 0xb2, 0xee, 0xf9, 0x58, 0xdf, 0xa6, 0x43, 0x13, 0xb6, 0xa7, 0x83, 0x52, + 0x5c, 0x74, 0x07, 0x91, 0x3c, 0x62, 0x07, 0x41, 0x28, 0x7a, 0x6a, 0xfa, 0x4f, 0xf7, 0xd4, 0x74, + 0xd6, 0xf6, 0x2e, 0x0c, 0xd2, 0xf6, 0xa8, 0xec, 0x78, 0xb5, 0x3d, 0xdd, 0xa7, 0xb6, 0x5f, 0x81, + 0xf1, 0x1e, 0xa2, 0x81, 0x6b, 0xec, 0x4b, 0x12, 0x14, 0x8f, 0x0a, 0x4e, 0x4c, 0xa5, 0x4b, 0x74, + 0x54, 0xba, 0x2b, 0xdd, 0x11, 0x3c, 0x7b, 0xf4, 0x24, 0xf4, 0xcc, 0xf5, 0x6b, 0x12, 0x9c, 0xe8, + 0xbf, 0x53, 0xec, 0xeb, 0xc3, 0x67, 0x60, 0xb8, 0x85, 0xfd, 0x7d, 0x5b, 0xec, 0x96, 0x3e, 0xd9, + 0xa7, 0x07, 0x13, 0x75, 0xf7, 0x64, 0x73, 0x54, 0xb4, 0x89, 0x27, 0x8f, 0xda, 0xee, 0x31, 0x6f, + 0x7a, 0x3c, 0xfd, 0x62, 0x02, 0x1e, 0xe8, 0x4b, 0xde, 0xd7, 0xd1, 0x87, 0x00, 0x0c, 0xcb, 0x69, + 0xfb, 0x6c, 0x47, 0xc4, 0x0a, 0x6c, 0x96, 0x4a, 0x68, 0xf1, 0x22, 0xc5, 0xb3, 0xed, 0x07, 0xfa, + 0x24, 0xd5, 0x03, 0x13, 0x51, 0x83, 0x4b, 0xa1, 0xa3, 0x29, 0xea, 0x68, 0xe9, 0x88, 0x91, 0xf6, + 0x24, 0xe6, 0x53, 0x20, 0xeb, 0xa6, 0x81, 0x2d, 0x5f, 0xf5, 0x7c, 0x17, 0x6b, 0x2d, 0xc3, 0x6a, + 0xd2, 0x0e, 0x92, 0xa9, 0xa4, 0xf7, 0x34, 0xd3, 0xc3, 0xca, 0x18, 0x53, 0x6f, 0x09, 0x2d, 0x41, + 0xd0, 0x04, 0x72, 0x23, 0x88, 0xe1, 0x0e, 0x04, 0x53, 0x07, 0x88, 0xf2, 0xb7, 0x33, 0x90, 0x8b, + 0xec, 0xab, 0xd1, 0x59, 0xc8, 0xdf, 0xd0, 0x6e, 0x69, 0xaa, 0x38, 0x2b, 0xb1, 0x48, 0xe4, 0x88, + 0x6c, 0x93, 0x9f, 0x97, 0x9e, 0x82, 0x49, 0x6a, 0x62, 0xb7, 0x7d, 0xec, 0xaa, 0xba, 0xa9, 0x79, + 0x1e, 0x0d, 0x5a, 0x86, 0x9a, 0x22, 0xa2, 0xab, 0x13, 0xd5, 0x92, 0xd0, 0xa0, 0x05, 0x98, 0xa0, + 0x88, 0x56, 0xdb, 0xf4, 0x0d, 0xc7, 0xc4, 0x2a, 0x39, 0xbd, 0x79, 0xb4, 0x93, 0x04, 0x9e, 0x8d, + 0x13, 0x8b, 0x75, 0x6e, 0x40, 0x3c, 0xf2, 0xd0, 0x32, 0x3c, 0x44, 0x61, 0x4d, 0x6c, 0x61, 0x57, + 0xf3, 0xb1, 0x8a, 0xbf, 0xd0, 0xd6, 0x4c, 0x4f, 0xd5, 0xac, 0x86, 0xba, 0xaf, 0x79, 0xfb, 0xc5, + 0x49, 0x42, 0xb0, 0x98, 0x28, 0x4a, 0xca, 0x29, 0x62, 0xb8, 0xc2, 0xed, 0x6a, 0xd4, 0xac, 0x6a, + 0x35, 0xae, 0x69, 0xde, 0x3e, 0xaa, 0xc0, 0x09, 0xca, 0xe2, 0xf9, 0xae, 0x61, 0x35, 0x55, 0x7d, + 0x1f, 0xeb, 0x37, 0xd5, 0xb6, 0xbf, 0x77, 0xa9, 0xf8, 0x60, 0xf4, 0xfd, 0xd4, 0xc3, 0x2d, 0x6a, + 0xb3, 0x44, 0x4c, 0x76, 0xfc, 0xbd, 0x4b, 0x68, 0x0b, 0xf2, 0x64, 0x32, 0x5a, 0xc6, 0x1d, 0xac, + 0xee, 0xd9, 0x2e, 0x6d, 0x8d, 0x85, 0x3e, 0xa5, 0x29, 0x12, 0xc1, 0x99, 0x3a, 0x07, 0xac, 0xdb, + 0x0d, 0x5c, 0x49, 0x6f, 0x6d, 0xd6, 0x6a, 0xcb, 0x4a, 0x4e, 0xb0, 0x5c, 0xb5, 0x5d, 0x92, 0x50, + 0x4d, 0x3b, 0x08, 0x70, 0x8e, 0x25, 0x54, 0xd3, 0x16, 0xe1, 0x5d, 0x80, 0x09, 0x5d, 0x67, 0x63, + 0x36, 0x74, 0x95, 0x9f, 0xb1, 0xbc, 0xa2, 0xdc, 0x11, 0x2c, 0x5d, 0x5f, 0x61, 0x06, 0x3c, 0xc7, + 0x3d, 0x74, 0x19, 0x1e, 0x08, 0x83, 0x15, 0x05, 0x8e, 0xf7, 0x8c, 0xb2, 0x1b, 0xba, 0x00, 0x13, + 0xce, 0x41, 0x2f, 0x10, 0x75, 0xbc, 0xd1, 0x39, 0xe8, 0x86, 0x5d, 0x84, 0x49, 0x67, 0xdf, 0xe9, + 0xc5, 0x3d, 0x1e, 0xc5, 0x21, 0x67, 0xdf, 0xe9, 0x06, 0x3e, 0x4a, 0x0f, 0xdc, 0x2e, 0xd6, 0x35, + 0x1f, 0x37, 0x8a, 0x27, 0xa3, 0xe6, 0x11, 0x05, 0x9a, 0x05, 0x59, 0xd7, 0x55, 0x6c, 0x69, 0xbb, + 0x26, 0x56, 0x35, 0x17, 0x5b, 0x9a, 0x57, 0x3c, 0x1d, 0x35, 0x2e, 0xe8, 0x7a, 0x8d, 0x6a, 0xab, + 0x54, 0x89, 0x1e, 0x87, 0x71, 0x7b, 0xf7, 0x86, 0xce, 0x52, 0x52, 0x75, 0x5c, 0xbc, 0x67, 0xbc, + 0x58, 0x7c, 0x84, 0xc6, 0x77, 0x8c, 0x28, 0x68, 0x42, 0x6e, 0x52, 0x31, 0x7a, 0x0c, 0x64, 0xdd, + 0xdb, 0xd7, 0x5c, 0x87, 0xd6, 0x64, 0xcf, 0xd1, 0x74, 0x5c, 0x7c, 0x94, 0x99, 0x32, 0xf9, 0x86, + 0x10, 0x93, 0x25, 0xe1, 0xdd, 0x36, 0xf6, 0x7c, 0xc1, 0x78, 0x8e, 0x2d, 0x09, 0x2a, 0xe3, 0x6c, + 0xd3, 0x20, 0x93, 0x50, 0x74, 0xbc, 0x78, 0x9a, 0x9a, 0x15, 0x9c, 0x7d, 0x27, 0xfa, 0xde, 0x87, + 0x61, 0x94, 0x58, 0x86, 0x2f, 0x7d, 0x8c, 0x6d, 0xc8, 0x9c, 0xfd, 0xc8, 0x1b, 0x3f, 0xb4, 0xbd, + 0x71, 0xb9, 0x02, 0xf9, 0x68, 0x7e, 0xa2, 0x2c, 0xb0, 0x0c, 0x95, 0x25, 0xb2, 0x59, 0x59, 0xaa, + 0x2f, 0x93, 0x6d, 0xc6, 0x0b, 0x35, 0x39, 0x41, 0xb6, 0x3b, 0x6b, 0xab, 0xdb, 0x35, 0x55, 0xd9, + 0xd9, 0xd8, 0x5e, 0x5d, 0xaf, 0xc9, 0xc9, 0xe8, 0xbe, 0xfa, 0x7b, 0x09, 0x28, 0x74, 0x1e, 0x91, + 0xd0, 0x4f, 0xc0, 0x49, 0x71, 0x9f, 0xe1, 0x61, 0x5f, 0xbd, 0x6d, 0xb8, 0x74, 0xc9, 0xb4, 0x34, + 0xd6, 0xbe, 0x82, 0x49, 0x9b, 0xe4, 0x56, 0x5b, 0xd8, 0x7f, 0xd6, 0x70, 0xc9, 0x82, 0x68, 0x69, + 0x3e, 0x5a, 0x83, 0xd3, 0x96, 0xad, 0x7a, 0xbe, 0x66, 0x35, 0x34, 0xb7, 0xa1, 0x86, 0x37, 0x49, + 0xaa, 0xa6, 0xeb, 0xd8, 0xf3, 0x6c, 0xd6, 0xaa, 0x02, 0x96, 0x4f, 0x58, 0xf6, 0x16, 0x37, 0x0e, + 0x6b, 0x78, 0x95, 0x9b, 0x76, 0x25, 0x58, 0xf2, 0xa8, 0x04, 0x7b, 0x10, 0xb2, 0x2d, 0xcd, 0x51, + 0xb1, 0xe5, 0xbb, 0x07, 0x74, 0x63, 0x9c, 0x51, 0x32, 0x2d, 0xcd, 0xa9, 0x91, 0xe7, 0x8f, 0xe6, + 0x7c, 0xf2, 0xcf, 0x49, 0xc8, 0x47, 0x37, 0xc7, 0xe4, 0xac, 0xa1, 0xd3, 0x3e, 0x22, 0xd1, 0x4a, + 0xf3, 0xf0, 0x7d, 0xb7, 0xd2, 0x33, 0x4b, 0xa4, 0xc1, 0x54, 0x86, 0xd9, 0x96, 0x55, 0x61, 0x48, + 0xd2, 0xdc, 0x49, 0x6d, 0xc1, 0x6c, 0x8b, 0x90, 0x51, 0xf8, 0x13, 0x5a, 0x81, 0xe1, 0x1b, 0x1e, + 0xe5, 0x1e, 0xa6, 0xdc, 0x8f, 0xdc, 0x9f, 0xfb, 0xfa, 0x16, 0x25, 0xcf, 0x5e, 0xdf, 0x52, 0x37, + 0xea, 0xca, 0x7a, 0x75, 0x4d, 0xe1, 0x70, 0x74, 0x0a, 0x52, 0xa6, 0x76, 0xe7, 0xa0, 0xb3, 0x15, + 0x51, 0xd1, 0xa0, 0x81, 0x3f, 0x05, 0xa9, 0xdb, 0x58, 0xbb, 0xd9, 0xd9, 0x00, 0xa8, 0xe8, 0x43, + 0x4c, 0xfd, 0x59, 0x48, 0xd3, 0x78, 0x21, 0x00, 0x1e, 0x31, 0x79, 0x08, 0x65, 0x20, 0xb5, 0x54, + 0x57, 0x48, 0xfa, 0xcb, 0x90, 0x67, 0x52, 0x75, 0x73, 0xb5, 0xb6, 0x54, 0x93, 0x13, 0xe5, 0x05, + 0x18, 0x66, 0x41, 0x20, 0x4b, 0x23, 0x08, 0x83, 0x3c, 0xc4, 0x1f, 0x39, 0x87, 0x24, 0xb4, 0x3b, + 0xeb, 0x8b, 0x35, 0x45, 0x4e, 0x44, 0xa7, 0xd7, 0x83, 0x7c, 0x74, 0x5f, 0xfc, 0xd1, 0xe4, 0xd4, + 0xdf, 0x48, 0x90, 0x8b, 0xec, 0x73, 0xc9, 0x06, 0x45, 0x33, 0x4d, 0xfb, 0xb6, 0xaa, 0x99, 0x86, + 0xe6, 0xf1, 0xa4, 0x00, 0x2a, 0xaa, 0x12, 0xc9, 0xa0, 0x93, 0xf6, 0x91, 0x38, 0xff, 0xaa, 0x04, + 0x72, 0xf7, 0x16, 0xb3, 0xcb, 0x41, 0xe9, 0x63, 0x75, 0xf0, 0x15, 0x09, 0x0a, 0x9d, 0xfb, 0xca, + 0x2e, 0xf7, 0xce, 0x7e, 0xac, 0xee, 0xbd, 0x95, 0x80, 0xd1, 0x8e, 0xdd, 0xe4, 0xa0, 0xde, 0x7d, + 0x01, 0xc6, 0x8d, 0x06, 0x6e, 0x39, 0xb6, 0x8f, 0x2d, 0xfd, 0x40, 0x35, 0xf1, 0x2d, 0x6c, 0x16, + 0xcb, 0xb4, 0x50, 0xcc, 0xde, 0x7f, 0xbf, 0x3a, 0xb3, 0x1a, 0xe2, 0xd6, 0x08, 0xac, 0x32, 0xb1, + 0xba, 0x5c, 0x5b, 0xdf, 0xac, 0x6f, 0xd7, 0x36, 0x96, 0x9e, 0x57, 0x77, 0x36, 0x7e, 0x6a, 0xa3, + 0xfe, 0xec, 0x86, 0x22, 0x1b, 0x5d, 0x66, 0x1f, 0xe2, 0x52, 0xdf, 0x04, 0xb9, 0xdb, 0x29, 0x74, + 0x12, 0xfa, 0xb9, 0x25, 0x0f, 0xa1, 0x09, 0x18, 0xdb, 0xa8, 0xab, 0x5b, 0xab, 0xcb, 0x35, 0xb5, + 0x76, 0xf5, 0x6a, 0x6d, 0x69, 0x7b, 0x8b, 0xdd, 0x40, 0x04, 0xd6, 0xdb, 0x9d, 0x8b, 0xfa, 0xe5, + 0x24, 0x4c, 0xf4, 0xf1, 0x04, 0x55, 0xf9, 0xd9, 0x81, 0x1d, 0x67, 0x9e, 0x1c, 0xc4, 0xfb, 0x19, + 0xd2, 0xf2, 0x37, 0x35, 0xd7, 0xe7, 0x47, 0x8d, 0xc7, 0x80, 0x44, 0xc9, 0xf2, 0x8d, 0x3d, 0x03, + 0xbb, 0xfc, 0xc2, 0x86, 0x1d, 0x28, 0xc6, 0x42, 0x39, 0xbb, 0xb3, 0xf9, 0x14, 0x20, 0xc7, 0xf6, + 0x0c, 0xdf, 0xb8, 0x85, 0x55, 0xc3, 0x12, 0xb7, 0x3b, 0xe4, 0x80, 0x91, 0x52, 0x64, 0xa1, 0x59, + 0xb5, 0xfc, 0xc0, 0xda, 0xc2, 0x4d, 0xad, 0xcb, 0x9a, 0x14, 0xf0, 0xa4, 0x22, 0x0b, 0x4d, 0x60, + 0x7d, 0x16, 0xf2, 0x0d, 0xbb, 0x4d, 0x76, 0x5d, 0xcc, 0x8e, 0xf4, 0x0b, 0x49, 0xc9, 0x31, 0x59, + 0x60, 0xc2, 0xf7, 0xd3, 0xe1, 0xb5, 0x52, 0x5e, 0xc9, 0x31, 0x19, 0x33, 0x39, 0x07, 0x63, 0x5a, + 0xb3, 0xe9, 0x12, 0x72, 0x41, 0xc4, 0x4e, 0x08, 0x85, 0x40, 0x4c, 0x0d, 0xa7, 0xae, 0x43, 0x46, + 0xc4, 0x81, 0xb4, 0x64, 0x12, 0x09, 0xd5, 0x61, 0xc7, 0xde, 0xc4, 0x74, 0x56, 0xc9, 0x58, 0x42, + 0x79, 0x16, 0xf2, 0x86, 0xa7, 0x86, 0xb7, 0xe4, 0x89, 0x33, 0x89, 0xe9, 0x8c, 0x92, 0x33, 0xbc, + 0xe0, 0x86, 0xb1, 0xfc, 0x5a, 0x02, 0x0a, 0x9d, 0xb7, 0xfc, 0x68, 0x19, 0x32, 0xa6, 0xad, 0x6b, + 0x34, 0xb5, 0xd8, 0x4f, 0x4c, 0xd3, 0x31, 0x3f, 0x0c, 0xcc, 0xac, 0x71, 0x7b, 0x25, 0x40, 0x4e, + 0xfd, 0x83, 0x04, 0x19, 0x21, 0x46, 0x27, 0x20, 0xe5, 0x68, 0xfe, 0x3e, 0xa5, 0x4b, 0x2f, 0x26, + 0x64, 0x49, 0xa1, 0xcf, 0x44, 0xee, 0x39, 0x9a, 0x45, 0x53, 0x80, 0xcb, 0xc9, 0x33, 0x99, 0x57, + 0x13, 0x6b, 0x0d, 0x7a, 0xfc, 0xb0, 0x5b, 0x2d, 0x6c, 0xf9, 0x9e, 0x98, 0x57, 0x2e, 0x5f, 0xe2, + 0x62, 0xf4, 0x04, 0x8c, 0xfb, 0xae, 0x66, 0x98, 0x1d, 0xb6, 0x29, 0x6a, 0x2b, 0x0b, 0x45, 0x60, + 0x5c, 0x81, 0x53, 0x82, 0xb7, 0x81, 0x7d, 0x4d, 0xdf, 0xc7, 0x8d, 0x10, 0x34, 0x4c, 0xaf, 0x19, + 0x4e, 0x72, 0x83, 0x65, 0xae, 0x17, 0xd8, 0xf2, 0xf7, 0x25, 0x18, 0x17, 0x07, 0xa6, 0x46, 0x10, + 0xac, 0x75, 0x00, 0xcd, 0xb2, 0x6c, 0x3f, 0x1a, 0xae, 0xde, 0x54, 0xee, 0xc1, 0xcd, 0x54, 0x03, + 0x90, 0x12, 0x21, 0x98, 0x6a, 0x01, 0x84, 0x9a, 0x23, 0xc3, 0x76, 0x1a, 0x72, 0xfc, 0x27, 0x1c, + 0xfa, 0x3b, 0x20, 0x3b, 0x62, 0x03, 0x13, 0x91, 0x93, 0x15, 0x9a, 0x84, 0xf4, 0x2e, 0x6e, 0x1a, + 0x16, 0xbf, 0x98, 0x65, 0x0f, 0xe2, 0x22, 0x24, 0x15, 0x5c, 0x84, 0x2c, 0x7e, 0x1e, 0x26, 0x74, + 0xbb, 0xd5, 0xed, 0xee, 0xa2, 0xdc, 0x75, 0xcc, 0xf7, 0xae, 0x49, 0x2f, 0x40, 0xb8, 0xc5, 0x7c, + 0x5f, 0x92, 0x7e, 0x2f, 0x91, 0x5c, 0xd9, 0x5c, 0xfc, 0x46, 0x62, 0x6a, 0x85, 0x41, 0x37, 0xc5, + 0x48, 0x15, 0xbc, 0x67, 0x62, 0x9d, 0x78, 0x0f, 0x5f, 0x3e, 0x07, 0x4f, 0x36, 0x0d, 0x7f, 0xbf, + 0xbd, 0x3b, 0xa3, 0xdb, 0xad, 0xd9, 0xa6, 0xdd, 0xb4, 0xc3, 0x9f, 0x3e, 0xc9, 0x13, 0x7d, 0xa0, + 0xff, 0xf1, 0x9f, 0x3f, 0xb3, 0x81, 0x74, 0x2a, 0xf6, 0xb7, 0xd2, 0xca, 0x06, 0x4c, 0x70, 0x63, + 0x95, 0xfe, 0xfe, 0xc2, 0x4e, 0x11, 0xe8, 0xbe, 0x77, 0x58, 0xc5, 0x6f, 0xbd, 0x4d, 0xdb, 0xb5, + 0x32, 0xce, 0xa1, 0x44, 0xc7, 0x0e, 0x1a, 0x15, 0x05, 0x1e, 0xe8, 0xe0, 0x63, 0x4b, 0x13, 0xbb, + 0x31, 0x8c, 0xdf, 0xe3, 0x8c, 0x13, 0x11, 0xc6, 0x2d, 0x0e, 0xad, 0x2c, 0xc1, 0xe8, 0x71, 0xb8, + 0xfe, 0x8e, 0x73, 0xe5, 0x71, 0x94, 0x64, 0x05, 0xc6, 0x28, 0x89, 0xde, 0xf6, 0x7c, 0xbb, 0x45, + 0xeb, 0xde, 0xfd, 0x69, 0xfe, 0xfe, 0x6d, 0xb6, 0x56, 0x0a, 0x04, 0xb6, 0x14, 0xa0, 0x2a, 0x15, + 0xa0, 0x3f, 0x39, 0x35, 0xb0, 0x6e, 0xc6, 0x30, 0xbc, 0xce, 0x1d, 0x09, 0xec, 0x2b, 0x9f, 0x83, + 0x49, 0xf2, 0x3f, 0x2d, 0x4b, 0x51, 0x4f, 0xe2, 0x2f, 0xbc, 0x8a, 0xdf, 0x7f, 0x89, 0x2d, 0xc7, + 0x89, 0x80, 0x20, 0xe2, 0x53, 0x64, 0x16, 0x9b, 0xd8, 0xf7, 0xb1, 0xeb, 0xa9, 0x9a, 0xd9, 0xcf, + 0xbd, 0xc8, 0x8d, 0x41, 0xf1, 0xab, 0xef, 0x74, 0xce, 0xe2, 0x0a, 0x43, 0x56, 0x4d, 0xb3, 0xb2, + 0x03, 0x27, 0xfb, 0x64, 0xc5, 0x00, 0x9c, 0x2f, 0x73, 0xce, 0xc9, 0x9e, 0xcc, 0x20, 0xb4, 0x9b, + 0x20, 0xe4, 0xc1, 0x5c, 0x0e, 0xc0, 0xf9, 0x5b, 0x9c, 0x13, 0x71, 0xac, 0x98, 0x52, 0xc2, 0x78, + 0x1d, 0xc6, 0x6f, 0x61, 0x77, 0xd7, 0xf6, 0xf8, 0x2d, 0xcd, 0x00, 0x74, 0xaf, 0x70, 0xba, 0x31, + 0x0e, 0xa4, 0xd7, 0x36, 0x84, 0xeb, 0x32, 0x64, 0xf6, 0x34, 0x1d, 0x0f, 0x40, 0xf1, 0x35, 0x4e, + 0x31, 0x42, 0xec, 0x09, 0xb4, 0x0a, 0xf9, 0xa6, 0xcd, 0x3b, 0x53, 0x3c, 0xfc, 0x55, 0x0e, 0xcf, + 0x09, 0x0c, 0xa7, 0x70, 0x6c, 0xa7, 0x6d, 0x92, 0xb6, 0x15, 0x4f, 0xf1, 0xdb, 0x82, 0x42, 0x60, + 0x38, 0xc5, 0x31, 0xc2, 0xfa, 0x3b, 0x82, 0xc2, 0x8b, 0xc4, 0xf3, 0x19, 0xc8, 0xd9, 0x96, 0x79, + 0x60, 0x5b, 0x83, 0x38, 0xf1, 0xbb, 0x9c, 0x01, 0x38, 0x84, 0x10, 0x5c, 0x81, 0xec, 0xa0, 0x13, + 0xf1, 0xfb, 0xef, 0x88, 0xe5, 0x21, 0x66, 0x60, 0x05, 0xc6, 0x44, 0x81, 0x32, 0x6c, 0x6b, 0x00, + 0x8a, 0x3f, 0xe0, 0x14, 0x85, 0x08, 0x8c, 0x0f, 0xc3, 0xc7, 0x9e, 0xdf, 0xc4, 0x83, 0x90, 0xbc, + 0x26, 0x86, 0xc1, 0x21, 0x3c, 0x94, 0xbb, 0xd8, 0xd2, 0xf7, 0x07, 0x63, 0xf8, 0xba, 0x08, 0xa5, + 0xc0, 0x10, 0x8a, 0x25, 0x18, 0x6d, 0x69, 0xae, 0xb7, 0xaf, 0x99, 0x03, 0x4d, 0xc7, 0x1f, 0x72, + 0x8e, 0x7c, 0x00, 0xe2, 0x11, 0x69, 0x5b, 0xc7, 0xa1, 0xf9, 0x86, 0x88, 0x48, 0x04, 0xc6, 0x97, + 0x9e, 0xe7, 0xd3, 0x2b, 0xad, 0xe3, 0xb0, 0xfd, 0x91, 0x58, 0x7a, 0x0c, 0xbb, 0x1e, 0x65, 0xbc, + 0x02, 0x59, 0xcf, 0xb8, 0x33, 0x10, 0xcd, 0x1f, 0x8b, 0x99, 0xa6, 0x00, 0x02, 0x7e, 0x1e, 0x4e, + 0xf5, 0x6d, 0x13, 0x03, 0x90, 0xfd, 0x09, 0x27, 0x3b, 0xd1, 0xa7, 0x55, 0xf0, 0x92, 0x70, 0x5c, + 0xca, 0x3f, 0x15, 0x25, 0x01, 0x77, 0x71, 0x6d, 0x92, 0xb3, 0x82, 0xa7, 0xed, 0x1d, 0x2f, 0x6a, + 0x7f, 0x26, 0xa2, 0xc6, 0xb0, 0x1d, 0x51, 0xdb, 0x86, 0x13, 0x9c, 0xf1, 0x78, 0xf3, 0xfa, 0x4d, + 0x51, 0x58, 0x19, 0x7a, 0xa7, 0x73, 0x76, 0x3f, 0x0f, 0x53, 0x41, 0x38, 0xc5, 0xa6, 0xd4, 0x53, + 0x5b, 0x9a, 0x33, 0x00, 0xf3, 0xb7, 0x38, 0xb3, 0xa8, 0xf8, 0xc1, 0xae, 0xd6, 0x5b, 0xd7, 0x1c, + 0x42, 0xfe, 0x1c, 0x14, 0x05, 0x79, 0xdb, 0x72, 0xb1, 0x6e, 0x37, 0x2d, 0xe3, 0x0e, 0x6e, 0x0c, + 0x40, 0xfd, 0xe7, 0x5d, 0x53, 0xb5, 0x13, 0x81, 0x13, 0xe6, 0x55, 0x90, 0x83, 0xbd, 0x8a, 0x6a, + 0xb4, 0x1c, 0xdb, 0xf5, 0x63, 0x18, 0xbf, 0x2d, 0x66, 0x2a, 0xc0, 0xad, 0x52, 0x58, 0xa5, 0x06, + 0x05, 0xfa, 0x38, 0x68, 0x4a, 0xfe, 0x05, 0x27, 0x1a, 0x0d, 0x51, 0xbc, 0x70, 0xe8, 0x76, 0xcb, + 0xd1, 0xdc, 0x41, 0xea, 0xdf, 0x5f, 0x8a, 0xc2, 0xc1, 0x21, 0xbc, 0x70, 0xf8, 0x07, 0x0e, 0x26, + 0xdd, 0x7e, 0x00, 0x86, 0xef, 0x88, 0xc2, 0x21, 0x30, 0x9c, 0x42, 0x6c, 0x18, 0x06, 0xa0, 0xf8, + 0x2b, 0x41, 0x21, 0x30, 0x84, 0xe2, 0xb3, 0x61, 0xa3, 0x75, 0x71, 0xd3, 0xf0, 0x7c, 0x97, 0x6d, + 0x85, 0xef, 0x4f, 0xf5, 0xdd, 0x77, 0x3a, 0x37, 0x61, 0x4a, 0x04, 0x5a, 0xb9, 0x0e, 0x63, 0x5d, + 0x5b, 0x0c, 0x14, 0xf7, 0xfd, 0x4a, 0xf1, 0x67, 0xdf, 0xe3, 0xc5, 0xa8, 0x73, 0x87, 0x51, 0x59, + 0x23, 0xf3, 0xde, 0xb9, 0x0f, 0x88, 0x27, 0x7b, 0xe9, 0xbd, 0x60, 0xea, 0x3b, 0xb6, 0x01, 0x95, + 0xab, 0x30, 0xda, 0xb1, 0x07, 0x88, 0xa7, 0xfa, 0x39, 0x4e, 0x95, 0x8f, 0x6e, 0x01, 0x2a, 0x0b, + 0x90, 0x22, 0xfd, 0x3c, 0x1e, 0xfe, 0xf3, 0x1c, 0x4e, 0xcd, 0x2b, 0x9f, 0x86, 0x8c, 0xe8, 0xe3, + 0xf1, 0xd0, 0x5f, 0xe0, 0xd0, 0x00, 0x42, 0xe0, 0xa2, 0x87, 0xc7, 0xc3, 0x7f, 0x51, 0xc0, 0x05, + 0x84, 0xc0, 0x07, 0x0f, 0xe1, 0xdf, 0xfe, 0x52, 0x8a, 0xd7, 0x61, 0x11, 0xbb, 0x2b, 0x30, 0xc2, + 0x9b, 0x77, 0x3c, 0xfa, 0x8b, 0xfc, 0xe5, 0x02, 0x51, 0xb9, 0x08, 0xe9, 0x01, 0x03, 0xfe, 0xcb, + 0x1c, 0xca, 0xec, 0x2b, 0x4b, 0x90, 0x8b, 0x34, 0xec, 0x78, 0xf8, 0xaf, 0x70, 0x78, 0x14, 0x45, + 0x5c, 0xe7, 0x0d, 0x3b, 0x9e, 0xe0, 0x57, 0x85, 0xeb, 0x1c, 0x41, 0xc2, 0x26, 0x7a, 0x75, 0x3c, + 0xfa, 0xd7, 0x44, 0xd4, 0x05, 0xa4, 0xf2, 0x0c, 0x64, 0x83, 0xfa, 0x1b, 0x8f, 0xff, 0x75, 0x8e, + 0x0f, 0x31, 0x24, 0x02, 0x91, 0xfa, 0x1f, 0x4f, 0xf1, 0x25, 0x11, 0x81, 0x08, 0x8a, 0x2c, 0xa3, + 0xee, 0x9e, 0x1e, 0xcf, 0xf4, 0x1b, 0x62, 0x19, 0x75, 0xb5, 0x74, 0x32, 0x9b, 0xb4, 0x0c, 0xc6, + 0x53, 0xfc, 0xa6, 0x98, 0x4d, 0x6a, 0x4f, 0xdc, 0xe8, 0x6e, 0x92, 0xf1, 0x1c, 0x5f, 0x16, 0x6e, + 0x74, 0xf5, 0xc8, 0xca, 0x26, 0xa0, 0xde, 0x06, 0x19, 0xcf, 0xf7, 0x15, 0xce, 0x37, 0xde, 0xd3, + 0x1f, 0x2b, 0xcf, 0xc2, 0x89, 0xfe, 0xcd, 0x31, 0x9e, 0xf5, 0xab, 0xef, 0x75, 0x1d, 0x67, 0xa2, + 0xbd, 0xb1, 0xb2, 0x1d, 0x56, 0xd9, 0x68, 0x63, 0x8c, 0xa7, 0x7d, 0xf9, 0xbd, 0xce, 0x42, 0x1b, + 0xed, 0x8b, 0x95, 0x2a, 0x40, 0xd8, 0x93, 0xe2, 0xb9, 0x5e, 0xe1, 0x5c, 0x11, 0x10, 0x59, 0x1a, + 0xbc, 0x25, 0xc5, 0xe3, 0xbf, 0x26, 0x96, 0x06, 0x47, 0x90, 0xa5, 0x21, 0xba, 0x51, 0x3c, 0xfa, + 0x55, 0xb1, 0x34, 0x04, 0xa4, 0x72, 0x05, 0x32, 0x56, 0xdb, 0x34, 0x49, 0x6e, 0xa1, 0xfb, 0x7f, + 0x92, 0x55, 0xfc, 0xd7, 0x0f, 0x38, 0x58, 0x00, 0x2a, 0x0b, 0x90, 0xc6, 0xad, 0x5d, 0xdc, 0x88, + 0x43, 0xfe, 0xdb, 0x07, 0xa2, 0x9e, 0x10, 0xeb, 0xca, 0x33, 0x00, 0xec, 0x30, 0x4d, 0x7f, 0x28, + 0x8a, 0xc1, 0xfe, 0xfb, 0x07, 0xfc, 0x63, 0x89, 0x10, 0x12, 0x12, 0xb0, 0x4f, 0x2f, 0xee, 0x4f, + 0xf0, 0x4e, 0x27, 0x01, 0x3d, 0x80, 0x5f, 0x86, 0x91, 0x1b, 0x9e, 0x6d, 0xf9, 0x5a, 0x33, 0x0e, + 0xfd, 0x1f, 0x1c, 0x2d, 0xec, 0x49, 0xc0, 0x5a, 0xb6, 0x8b, 0x7d, 0xad, 0xe9, 0xc5, 0x61, 0xff, + 0x93, 0x63, 0x03, 0x00, 0x01, 0xeb, 0x9a, 0xe7, 0x0f, 0x32, 0xee, 0x1f, 0x09, 0xb0, 0x00, 0x10, + 0xa7, 0xc9, 0xff, 0x37, 0xf1, 0x41, 0x1c, 0xf6, 0x5d, 0xe1, 0x34, 0xb7, 0xaf, 0x7c, 0x1a, 0xb2, + 0xe4, 0x5f, 0xf6, 0x05, 0x54, 0x0c, 0xf8, 0xbf, 0x38, 0x38, 0x44, 0x90, 0x37, 0x7b, 0x7e, 0xc3, + 0x37, 0xe2, 0x83, 0xfd, 0xdf, 0x7c, 0xa6, 0x85, 0x7d, 0xa5, 0x0a, 0x39, 0xcf, 0x6f, 0x34, 0xda, + 0x7c, 0x47, 0x13, 0x03, 0xff, 0x9f, 0x0f, 0x82, 0x43, 0x6e, 0x80, 0x59, 0xac, 0xf5, 0xbf, 0xaf, + 0x83, 0x15, 0x7b, 0xc5, 0x66, 0x37, 0x75, 0x2f, 0x94, 0xe3, 0xaf, 0xdc, 0xe0, 0xfd, 0x0c, 0x14, + 0x75, 0xbb, 0xb5, 0x6b, 0x7b, 0xb3, 0x16, 0x36, 0xfc, 0x7d, 0xec, 0xce, 0xda, 0x16, 0xe7, 0x43, + 0x49, 0xdb, 0xc2, 0x53, 0xc7, 0xbb, 0xb8, 0x2b, 0x9f, 0x82, 0xf4, 0x56, 0x7b, 0x77, 0xf7, 0x00, + 0xc9, 0x90, 0xf4, 0xda, 0xbb, 0xfc, 0x23, 0x18, 0xf2, 0x6f, 0xf9, 0xcd, 0x24, 0x8c, 0x56, 0x4d, + 0x73, 0xfb, 0xc0, 0xc1, 0x5e, 0xdd, 0xc2, 0xf5, 0x3d, 0x54, 0x84, 0x61, 0x3a, 0xd2, 0xa7, 0xa9, + 0x99, 0x74, 0x6d, 0x48, 0xe1, 0xcf, 0x81, 0x66, 0x8e, 0x5e, 0x69, 0x26, 0x02, 0xcd, 0x5c, 0xa0, + 0x39, 0xcf, 0x6e, 0x34, 0x03, 0xcd, 0xf9, 0x40, 0x33, 0x4f, 0xef, 0x35, 0x93, 0x81, 0x66, 0x3e, + 0xd0, 0x2c, 0xd0, 0x7b, 0xfb, 0xd1, 0x40, 0xb3, 0x10, 0x68, 0x2e, 0xd0, 0x9b, 0xfa, 0x54, 0xa0, + 0xb9, 0x10, 0x68, 0x2e, 0xd2, 0x0b, 0xfa, 0xf1, 0x40, 0x73, 0x31, 0xd0, 0x5c, 0xa2, 0x97, 0xf2, + 0x28, 0xd0, 0x5c, 0x0a, 0x34, 0x97, 0xe9, 0xd7, 0x2e, 0x23, 0x81, 0xe6, 0x32, 0x9a, 0x82, 0x11, + 0x36, 0xb2, 0xa7, 0xe8, 0x2f, 0xb7, 0x63, 0xd7, 0x86, 0x14, 0x21, 0x08, 0x75, 0x4f, 0xd3, 0x2f, + 0x5a, 0x86, 0x43, 0xdd, 0xd3, 0xa1, 0x6e, 0x8e, 0x7e, 0x58, 0x2f, 0x87, 0xba, 0xb9, 0x50, 0x77, + 0xbe, 0x38, 0x4a, 0x12, 0x24, 0xd4, 0x9d, 0x0f, 0x75, 0xf3, 0xc5, 0x02, 0x99, 0x81, 0x50, 0x37, + 0x1f, 0xea, 0x16, 0x8a, 0x63, 0x67, 0xa4, 0xe9, 0x7c, 0xa8, 0x5b, 0x40, 0x4f, 0x42, 0xce, 0x6b, + 0xef, 0xaa, 0xfc, 0x43, 0x03, 0xfa, 0xe5, 0x4c, 0x6e, 0x0e, 0x66, 0x48, 0x4e, 0xd0, 0x69, 0xbd, + 0x36, 0xa4, 0x80, 0xd7, 0xde, 0xe5, 0x15, 0x74, 0x31, 0x0f, 0xf4, 0xc2, 0x41, 0xa5, 0x1f, 0xbc, + 0x96, 0xdf, 0x90, 0x20, 0xbb, 0x7d, 0xdb, 0xa6, 0xbf, 0xdb, 0x7a, 0xff, 0xcf, 0x93, 0x2b, 0x9c, + 0x3e, 0x3f, 0x4f, 0x7f, 0x5a, 0xcb, 0x5e, 0x93, 0x14, 0x21, 0x08, 0x75, 0x0b, 0xc5, 0x87, 0xe9, + 0x80, 0x02, 0xdd, 0x02, 0x9a, 0x85, 0x7c, 0x64, 0x40, 0x73, 0xf4, 0x9b, 0x96, 0xce, 0x11, 0x49, + 0x4a, 0x2e, 0x1c, 0xd1, 0xdc, 0x62, 0x1a, 0x48, 0xda, 0x93, 0x3f, 0xfe, 0x6d, 0xbb, 0xfc, 0xa5, + 0x04, 0xe4, 0xd8, 0x1d, 0x25, 0x1d, 0x15, 0x79, 0x15, 0xdb, 0xb3, 0x1f, 0x70, 0x37, 0x86, 0x14, + 0x21, 0x40, 0x0a, 0x00, 0x33, 0x25, 0x19, 0xce, 0x3c, 0x59, 0x7c, 0xea, 0x9f, 0xde, 0x3c, 0xfd, + 0xa9, 0x23, 0x57, 0x10, 0x89, 0xdd, 0x2c, 0xab, 0xc0, 0x33, 0x3b, 0x86, 0xe5, 0x3f, 0x3d, 0x77, + 0x89, 0x04, 0x38, 0x64, 0x41, 0x3b, 0x90, 0x59, 0xd2, 0x3c, 0xfa, 0x35, 0x1c, 0x75, 0x3d, 0xb5, + 0x78, 0xf1, 0x7f, 0xdf, 0x3c, 0x7d, 0x3e, 0x86, 0x91, 0x17, 0xc7, 0x99, 0xf5, 0x03, 0xc2, 0x7a, + 0x61, 0x9e, 0xc0, 0xaf, 0x0d, 0x29, 0x01, 0x15, 0x9a, 0x13, 0xae, 0x6e, 0x68, 0x2d, 0xf6, 0xf1, + 0x4e, 0x72, 0x51, 0x3e, 0x7c, 0xf3, 0x74, 0x7e, 0xfd, 0x20, 0x94, 0x87, 0xae, 0x90, 0xa7, 0xc5, + 0x0c, 0x0c, 0x33, 0x57, 0x17, 0x97, 0x5f, 0xbf, 0x57, 0x1a, 0x7a, 0xe3, 0x5e, 0x69, 0xe8, 0x1f, + 0xef, 0x95, 0x86, 0xde, 0xba, 0x57, 0x92, 0xde, 0xbd, 0x57, 0x92, 0xde, 0xbf, 0x57, 0x92, 0xee, + 0x1e, 0x96, 0xa4, 0xaf, 0x1f, 0x96, 0xa4, 0x6f, 0x1e, 0x96, 0xa4, 0xef, 0x1e, 0x96, 0xa4, 0xd7, + 0x0f, 0x4b, 0x43, 0x6f, 0x1c, 0x96, 0x86, 0xde, 0x3a, 0x2c, 0x49, 0x3f, 0x3c, 0x2c, 0x0d, 0xbd, + 0x7b, 0x58, 0x92, 0xde, 0x3f, 0x2c, 0x0d, 0xdd, 0xfd, 0x41, 0x69, 0xe8, 0xff, 0x02, 0x00, 0x00, + 0xff, 0xff, 0x9f, 0x8a, 0x0d, 0x05, 0x07, 0x35, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/onepb_test.go index ba30505a2..14b202521 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/neither/onepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -17,13 +16,12 @@ It has these top-level messages: package one import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -34,14 +32,14 @@ var _ = math.Inf func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -62,20 +60,20 @@ func TestSubbyProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllTypesOneOfProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -96,20 +94,20 @@ func TestAllTypesOneOfProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestTwoOneofsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -130,20 +128,20 @@ func TestTwoOneofsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomOneofProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -164,21 +162,21 @@ func TestCustomOneofProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSubbyJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -191,15 +189,15 @@ func TestSubbyJSON(t *testing.T) { } func TestAllTypesOneOfJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -212,15 +210,15 @@ func TestAllTypesOneOfJSON(t *testing.T) { } func TestTwoOneofsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -233,15 +231,15 @@ func TestTwoOneofsJSON(t *testing.T) { } func TestCustomOneofJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -254,11 +252,11 @@ func TestCustomOneofJSON(t *testing.T) { } func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -271,11 +269,11 @@ func TestSubbyProtoText(t *testing.T) { func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -288,11 +286,11 @@ func TestSubbyProtoCompactText(t *testing.T) { func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -305,11 +303,11 @@ func TestAllTypesOneOfProtoText(t *testing.T) { func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -322,11 +320,11 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -339,11 +337,11 @@ func TestTwoOneofsProtoText(t *testing.T) { func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -356,11 +354,11 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -373,11 +371,11 @@ func TestCustomOneofProtoText(t *testing.T) { func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -392,14 +390,14 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -407,14 +405,14 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestAllTypesOneOfVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -422,14 +420,14 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { } } func TestTwoOneofsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -437,14 +435,14 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { } } func TestCustomOneofVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -452,63 +450,63 @@ func TestCustomOneofVerboseEqual(t *testing.T) { } } func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllTypesOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTwoOneofsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomOneofGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSubbySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -519,7 +517,7 @@ func TestSubbySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -527,10 +525,10 @@ func TestSubbySize(t *testing.T) { func TestAllTypesOneOfSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -541,7 +539,7 @@ func TestAllTypesOneOfSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -549,10 +547,10 @@ func TestAllTypesOneOfSize(t *testing.T) { func TestTwoOneofsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -563,7 +561,7 @@ func TestTwoOneofsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -571,10 +569,10 @@ func TestTwoOneofsSize(t *testing.T) { func TestCustomOneofSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -585,14 +583,14 @@ func TestCustomOneofSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -601,7 +599,7 @@ func TestSubbyStringer(t *testing.T) { } } func TestAllTypesOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -610,7 +608,7 @@ func TestAllTypesOneOfStringer(t *testing.T) { } } func TestTwoOneofsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -619,7 +617,7 @@ func TestTwoOneofsStringer(t *testing.T) { } } func TestCustomOneofStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go index 63958ee3a..a6505d037 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/one.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -24,16 +23,16 @@ import _ "github.com/gogo/protobuf/gogoproto" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" import io "io" +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -972,286 +971,293 @@ func init() { proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs") proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof") } -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Subby) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *AllTypesOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllTypesOneOf) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *TwoOneofs) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *TwoOneofs) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomOneof) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func OneDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 4040 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x79, 0x8d, 0x95, 0x6d, 0xae, 0x96, 0xb6, - 0x63, 0xd9, 0x8e, 0x25, 0x5b, 0x97, 0xbd, 0x70, 0x9b, 0x78, 0x48, 0x8a, 0xab, 0xd5, 0x56, 0x12, - 0x15, 0x50, 0x8a, 0xd7, 0xe9, 0x03, 0x06, 0x02, 0x7f, 0x52, 0xd8, 0x05, 0x01, 0x06, 0x00, 0x77, - 0x2d, 0x3f, 0x6d, 0xc7, 0xbd, 0x4c, 0xa6, 0xd3, 0x5b, 0xda, 0x99, 0x26, 0xae, 0xe3, 0xb6, 0x99, - 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xce, 0x5b, - 0xa7, 0xd3, 0xf1, 0x78, 0x15, 0xcf, 0x34, 0x6d, 0xdd, 0xd6, 0x6d, 0x3c, 0xd3, 0x4c, 0xdd, 0x87, - 0xce, 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x26, 0x4e, 0x9e, 0x24, 0x9c, 0x73, 0xbe, 0x0f, 0x07, - 0xe7, 0x3f, 0xff, 0x39, 0x07, 0x3f, 0x01, 0xdf, 0x5d, 0x83, 0xf9, 0x96, 0x6d, 0xb7, 0x4c, 0xb4, - 0xd4, 0x71, 0x6c, 0xcf, 0x3e, 0xe8, 0x36, 0x97, 0x1a, 0xc8, 0xd5, 0x1d, 0xa3, 0xe3, 0xd9, 0xce, - 0x22, 0x91, 0x49, 0x53, 0xd4, 0x62, 0x91, 0x5b, 0x14, 0xb6, 0x61, 0xfa, 0xaa, 0x61, 0xa2, 0x75, - 0xdf, 0xb0, 0x8e, 0x3c, 0xe9, 0x12, 0x24, 0x9a, 0x86, 0x89, 0x64, 0x61, 0x3e, 0xbe, 0x90, 0x59, - 0x7e, 0x6c, 0xb1, 0x0f, 0xb4, 0xd8, 0x8b, 0xd8, 0xc5, 0x62, 0x85, 0x20, 0x0a, 0xef, 0x26, 0x60, - 0x66, 0x88, 0x56, 0x92, 0x20, 0x61, 0x69, 0x6d, 0xcc, 0x28, 0x2c, 0xa4, 0x15, 0xf2, 0xbf, 0x24, - 0xc3, 0x44, 0x47, 0xd3, 0x6f, 0x69, 0x2d, 0x24, 0xc7, 0x88, 0x98, 0x5f, 0x4a, 0x79, 0x80, 0x06, - 0xea, 0x20, 0xab, 0x81, 0x2c, 0xfd, 0x48, 0x8e, 0xcf, 0xc7, 0x17, 0xd2, 0x4a, 0x48, 0x22, 0x3d, - 0x0d, 0xd3, 0x9d, 0xee, 0x81, 0x69, 0xe8, 0x6a, 0xc8, 0x0c, 0xe6, 0xe3, 0x0b, 0x49, 0x45, 0xa4, - 0x8a, 0xf5, 0xc0, 0xf8, 0x09, 0x98, 0xba, 0x83, 0xb4, 0x5b, 0x61, 0xd3, 0x0c, 0x31, 0xcd, 0x61, - 0x71, 0xc8, 0xb0, 0x02, 0xd9, 0x36, 0x72, 0x5d, 0xad, 0x85, 0x54, 0xef, 0xa8, 0x83, 0xe4, 0x04, - 0x79, 0xfa, 0xf9, 0x81, 0xa7, 0xef, 0x7f, 0xf2, 0x0c, 0x43, 0xed, 0x1d, 0x75, 0x90, 0x54, 0x82, - 0x34, 0xb2, 0xba, 0x6d, 0xca, 0x90, 0x3c, 0x21, 0x7e, 0x55, 0xab, 0xdb, 0xee, 0x67, 0x49, 0x61, - 0x18, 0xa3, 0x98, 0x70, 0x91, 0x73, 0xdb, 0xd0, 0x91, 0x3c, 0x4e, 0x08, 0x9e, 0x18, 0x20, 0xa8, - 0x53, 0x7d, 0x3f, 0x07, 0xc7, 0x49, 0x15, 0x48, 0xa3, 0x97, 0x3c, 0x64, 0xb9, 0x86, 0x6d, 0xc9, - 0x13, 0x84, 0xe4, 0xf1, 0x21, 0xab, 0x88, 0xcc, 0x46, 0x3f, 0x45, 0x80, 0x93, 0x2e, 0xc0, 0x84, - 0xdd, 0xf1, 0x0c, 0xdb, 0x72, 0xe5, 0xd4, 0xbc, 0xb0, 0x90, 0x59, 0x7e, 0x78, 0x68, 0x22, 0xd4, - 0xa8, 0x8d, 0xc2, 0x8d, 0xa5, 0x4d, 0x10, 0x5d, 0xbb, 0xeb, 0xe8, 0x48, 0xd5, 0xed, 0x06, 0x52, - 0x0d, 0xab, 0x69, 0xcb, 0x69, 0x42, 0x70, 0x6e, 0xf0, 0x41, 0x88, 0x61, 0xc5, 0x6e, 0xa0, 0x4d, - 0xab, 0x69, 0x2b, 0x39, 0xb7, 0xe7, 0x5a, 0x3a, 0x03, 0xe3, 0xee, 0x91, 0xe5, 0x69, 0x2f, 0xc9, - 0x59, 0x92, 0x21, 0xec, 0xaa, 0xf0, 0x3f, 0x49, 0x98, 0x1a, 0x25, 0xc5, 0xae, 0x40, 0xb2, 0x89, - 0x9f, 0x52, 0x8e, 0x9d, 0x26, 0x06, 0x14, 0xd3, 0x1b, 0xc4, 0xf1, 0x1f, 0x32, 0x88, 0x25, 0xc8, - 0x58, 0xc8, 0xf5, 0x50, 0x83, 0x66, 0x44, 0x7c, 0xc4, 0x9c, 0x02, 0x0a, 0x1a, 0x4c, 0xa9, 0xc4, - 0x0f, 0x95, 0x52, 0x37, 0x60, 0xca, 0x77, 0x49, 0x75, 0x34, 0xab, 0xc5, 0x73, 0x73, 0x29, 0xca, - 0x93, 0xc5, 0x2a, 0xc7, 0x29, 0x18, 0xa6, 0xe4, 0x50, 0xcf, 0xb5, 0xb4, 0x0e, 0x60, 0x5b, 0xc8, - 0x6e, 0xaa, 0x0d, 0xa4, 0x9b, 0x72, 0xea, 0x84, 0x28, 0xd5, 0xb0, 0xc9, 0x40, 0x94, 0x6c, 0x2a, - 0xd5, 0x4d, 0xe9, 0x72, 0x90, 0x6a, 0x13, 0x27, 0x64, 0xca, 0x36, 0xdd, 0x64, 0x03, 0xd9, 0xb6, - 0x0f, 0x39, 0x07, 0xe1, 0xbc, 0x47, 0x0d, 0xf6, 0x64, 0x69, 0xe2, 0xc4, 0x62, 0xe4, 0x93, 0x29, - 0x0c, 0x46, 0x1f, 0x6c, 0xd2, 0x09, 0x5f, 0x4a, 0x8f, 0x82, 0x2f, 0x50, 0x49, 0x5a, 0x01, 0xa9, - 0x42, 0x59, 0x2e, 0xdc, 0xd1, 0xda, 0x68, 0xee, 0x12, 0xe4, 0x7a, 0xc3, 0x23, 0xcd, 0x42, 0xd2, - 0xf5, 0x34, 0xc7, 0x23, 0x59, 0x98, 0x54, 0xe8, 0x85, 0x24, 0x42, 0x1c, 0x59, 0x0d, 0x52, 0xe5, - 0x92, 0x0a, 0xfe, 0x77, 0xee, 0x22, 0x4c, 0xf6, 0xdc, 0x7e, 0x54, 0x60, 0xe1, 0x0b, 0xe3, 0x30, - 0x3b, 0x2c, 0xe7, 0x86, 0xa6, 0xff, 0x19, 0x18, 0xb7, 0xba, 0xed, 0x03, 0xe4, 0xc8, 0x71, 0xc2, - 0xc0, 0xae, 0xa4, 0x12, 0x24, 0x4d, 0xed, 0x00, 0x99, 0x72, 0x62, 0x5e, 0x58, 0xc8, 0x2d, 0x3f, - 0x3d, 0x52, 0x56, 0x2f, 0x6e, 0x61, 0x88, 0x42, 0x91, 0xd2, 0x27, 0x21, 0xc1, 0x4a, 0x1c, 0x66, - 0x78, 0x6a, 0x34, 0x06, 0x9c, 0x8b, 0x0a, 0xc1, 0x49, 0x0f, 0x41, 0x1a, 0xff, 0xa5, 0xb1, 0x1d, - 0x27, 0x3e, 0xa7, 0xb0, 0x00, 0xc7, 0x55, 0x9a, 0x83, 0x14, 0x49, 0xb3, 0x06, 0xe2, 0xad, 0xc1, - 0xbf, 0xc6, 0x0b, 0xd3, 0x40, 0x4d, 0xad, 0x6b, 0x7a, 0xea, 0x6d, 0xcd, 0xec, 0x22, 0x92, 0x30, - 0x69, 0x25, 0xcb, 0x84, 0x9f, 0xc6, 0x32, 0xe9, 0x1c, 0x64, 0x68, 0x56, 0x1a, 0x56, 0x03, 0xbd, - 0x44, 0xaa, 0x4f, 0x52, 0xa1, 0x89, 0xba, 0x89, 0x25, 0xf8, 0xf6, 0x37, 0x5d, 0xdb, 0xe2, 0x4b, - 0x4b, 0x6e, 0x81, 0x05, 0xe4, 0xf6, 0x17, 0xfb, 0x0b, 0xdf, 0x23, 0xc3, 0x1f, 0xaf, 0x3f, 0x17, - 0x0b, 0xdf, 0x8c, 0x41, 0x82, 0xec, 0xb7, 0x29, 0xc8, 0xec, 0xbd, 0xb8, 0x5b, 0x55, 0xd7, 0x6b, - 0xfb, 0xe5, 0xad, 0xaa, 0x28, 0x48, 0x39, 0x00, 0x22, 0xb8, 0xba, 0x55, 0x2b, 0xed, 0x89, 0x31, - 0xff, 0x7a, 0x73, 0x67, 0xef, 0xc2, 0xaa, 0x18, 0xf7, 0x01, 0xfb, 0x54, 0x90, 0x08, 0x1b, 0xac, - 0x2c, 0x8b, 0x49, 0x49, 0x84, 0x2c, 0x25, 0xd8, 0xbc, 0x51, 0x5d, 0xbf, 0xb0, 0x2a, 0x8e, 0xf7, - 0x4a, 0x56, 0x96, 0xc5, 0x09, 0x69, 0x12, 0xd2, 0x44, 0x52, 0xae, 0xd5, 0xb6, 0xc4, 0x94, 0xcf, - 0x59, 0xdf, 0x53, 0x36, 0x77, 0x36, 0xc4, 0xb4, 0xcf, 0xb9, 0xa1, 0xd4, 0xf6, 0x77, 0x45, 0xf0, - 0x19, 0xb6, 0xab, 0xf5, 0x7a, 0x69, 0xa3, 0x2a, 0x66, 0x7c, 0x8b, 0xf2, 0x8b, 0x7b, 0xd5, 0xba, - 0x98, 0xed, 0x71, 0x6b, 0x65, 0x59, 0x9c, 0xf4, 0x6f, 0x51, 0xdd, 0xd9, 0xdf, 0x16, 0x73, 0xd2, - 0x34, 0x4c, 0xd2, 0x5b, 0x70, 0x27, 0xa6, 0xfa, 0x44, 0x17, 0x56, 0x45, 0x31, 0x70, 0x84, 0xb2, - 0x4c, 0xf7, 0x08, 0x2e, 0xac, 0x8a, 0x52, 0xa1, 0x02, 0x49, 0x92, 0x5d, 0x92, 0x04, 0xb9, 0xad, - 0x52, 0xb9, 0xba, 0xa5, 0xd6, 0x76, 0xf7, 0x36, 0x6b, 0x3b, 0xa5, 0x2d, 0x51, 0x08, 0x64, 0x4a, - 0xf5, 0x53, 0xfb, 0x9b, 0x4a, 0x75, 0x5d, 0x8c, 0x85, 0x65, 0xbb, 0xd5, 0xd2, 0x5e, 0x75, 0x5d, - 0x8c, 0x17, 0x74, 0x98, 0x1d, 0x56, 0x67, 0x86, 0xee, 0x8c, 0xd0, 0x12, 0xc7, 0x4e, 0x58, 0x62, - 0xc2, 0x35, 0xb0, 0xc4, 0x5f, 0x16, 0x60, 0x66, 0x48, 0xad, 0x1d, 0x7a, 0x93, 0xe7, 0x21, 0x49, - 0x53, 0x94, 0x76, 0x9f, 0x27, 0x87, 0x16, 0x6d, 0x92, 0xb0, 0x03, 0x1d, 0x88, 0xe0, 0xc2, 0x1d, - 0x38, 0x7e, 0x42, 0x07, 0xc6, 0x14, 0x03, 0x4e, 0xbe, 0x22, 0x80, 0x7c, 0x12, 0x77, 0x44, 0xa1, - 0x88, 0xf5, 0x14, 0x8a, 0x2b, 0xfd, 0x0e, 0x9c, 0x3f, 0xf9, 0x19, 0x06, 0xbc, 0x78, 0x43, 0x80, - 0x33, 0xc3, 0x07, 0x95, 0xa1, 0x3e, 0x7c, 0x12, 0xc6, 0xdb, 0xc8, 0x3b, 0xb4, 0x79, 0xb3, 0xfe, - 0xd8, 0x90, 0x16, 0x80, 0xd5, 0xfd, 0xb1, 0x62, 0xa8, 0x70, 0x0f, 0x89, 0x9f, 0x34, 0x6d, 0x50, - 0x6f, 0x06, 0x3c, 0xfd, 0x5c, 0x0c, 0x1e, 0x18, 0x4a, 0x3e, 0xd4, 0xd1, 0x47, 0x00, 0x0c, 0xab, - 0xd3, 0xf5, 0x68, 0x43, 0xa6, 0xf5, 0x29, 0x4d, 0x24, 0x64, 0xef, 0xe3, 0xda, 0xd3, 0xf5, 0x7c, - 0x7d, 0x9c, 0xe8, 0x81, 0x8a, 0x88, 0xc1, 0xa5, 0xc0, 0xd1, 0x04, 0x71, 0x34, 0x7f, 0xc2, 0x93, - 0x0e, 0xf4, 0xba, 0x67, 0x41, 0xd4, 0x4d, 0x03, 0x59, 0x9e, 0xea, 0x7a, 0x0e, 0xd2, 0xda, 0x86, - 0xd5, 0x22, 0x05, 0x38, 0x55, 0x4c, 0x36, 0x35, 0xd3, 0x45, 0xca, 0x14, 0x55, 0xd7, 0xb9, 0x16, - 0x23, 0x48, 0x97, 0x71, 0x42, 0x88, 0xf1, 0x1e, 0x04, 0x55, 0xfb, 0x88, 0xc2, 0xd7, 0x26, 0x20, - 0x13, 0x1a, 0xeb, 0xa4, 0xf3, 0x90, 0xbd, 0xa9, 0xdd, 0xd6, 0x54, 0x3e, 0xaa, 0xd3, 0x48, 0x64, - 0xb0, 0x6c, 0x97, 0x8d, 0xeb, 0xcf, 0xc2, 0x2c, 0x31, 0xb1, 0xbb, 0x1e, 0x72, 0x54, 0xdd, 0xd4, - 0x5c, 0x97, 0x04, 0x2d, 0x45, 0x4c, 0x25, 0xac, 0xab, 0x61, 0x55, 0x85, 0x6b, 0xa4, 0x35, 0x98, - 0x21, 0x88, 0x76, 0xd7, 0xf4, 0x8c, 0x8e, 0x89, 0x54, 0xfc, 0xf2, 0xe0, 0x92, 0x42, 0xec, 0x7b, - 0x36, 0x8d, 0x2d, 0xb6, 0x99, 0x01, 0xf6, 0xc8, 0x95, 0xd6, 0xe1, 0x11, 0x02, 0x6b, 0x21, 0x0b, - 0x39, 0x9a, 0x87, 0x54, 0xf4, 0xd9, 0xae, 0x66, 0xba, 0xaa, 0x66, 0x35, 0xd4, 0x43, 0xcd, 0x3d, - 0x94, 0x67, 0x31, 0x41, 0x39, 0x26, 0x0b, 0xca, 0x59, 0x6c, 0xb8, 0xc1, 0xec, 0xaa, 0xc4, 0xac, - 0x64, 0x35, 0xae, 0x69, 0xee, 0xa1, 0x54, 0x84, 0x33, 0x84, 0xc5, 0xf5, 0x1c, 0xc3, 0x6a, 0xa9, - 0xfa, 0x21, 0xd2, 0x6f, 0xa9, 0x5d, 0xaf, 0x79, 0x49, 0x7e, 0x28, 0x7c, 0x7f, 0xe2, 0x61, 0x9d, - 0xd8, 0x54, 0xb0, 0xc9, 0xbe, 0xd7, 0xbc, 0x24, 0xd5, 0x21, 0x8b, 0x17, 0xa3, 0x6d, 0xbc, 0x8c, - 0xd4, 0xa6, 0xed, 0x90, 0xce, 0x92, 0x1b, 0xb2, 0xb3, 0x43, 0x11, 0x5c, 0xac, 0x31, 0xc0, 0xb6, - 0xdd, 0x40, 0xc5, 0x64, 0x7d, 0xb7, 0x5a, 0x5d, 0x57, 0x32, 0x9c, 0xe5, 0xaa, 0xed, 0xe0, 0x84, - 0x6a, 0xd9, 0x7e, 0x80, 0x33, 0x34, 0xa1, 0x5a, 0x36, 0x0f, 0xef, 0x1a, 0xcc, 0xe8, 0x3a, 0x7d, - 0x66, 0x43, 0x57, 0xd9, 0x88, 0xef, 0xca, 0x62, 0x4f, 0xb0, 0x74, 0x7d, 0x83, 0x1a, 0xb0, 0x1c, - 0x77, 0xa5, 0xcb, 0xf0, 0x40, 0x10, 0xac, 0x30, 0x70, 0x7a, 0xe0, 0x29, 0xfb, 0xa1, 0x6b, 0x30, - 0xd3, 0x39, 0x1a, 0x04, 0x4a, 0x3d, 0x77, 0xec, 0x1c, 0xf5, 0xc3, 0x1e, 0x27, 0xaf, 0x6d, 0x0e, - 0xd2, 0x35, 0x0f, 0x35, 0xe4, 0x07, 0xc3, 0xd6, 0x21, 0x85, 0xb4, 0x04, 0xa2, 0xae, 0xab, 0xc8, - 0xd2, 0x0e, 0x4c, 0xa4, 0x6a, 0x0e, 0xb2, 0x34, 0x57, 0x3e, 0x17, 0x36, 0xce, 0xe9, 0x7a, 0x95, - 0x68, 0x4b, 0x44, 0x29, 0x3d, 0x05, 0xd3, 0xf6, 0xc1, 0x4d, 0x9d, 0x66, 0x96, 0xda, 0x71, 0x50, - 0xd3, 0x78, 0x49, 0x7e, 0x8c, 0x84, 0x69, 0x0a, 0x2b, 0x48, 0x5e, 0xed, 0x12, 0xb1, 0xf4, 0x24, - 0x88, 0xba, 0x7b, 0xa8, 0x39, 0x1d, 0xd2, 0xda, 0xdd, 0x8e, 0xa6, 0x23, 0xf9, 0x71, 0x6a, 0x4a, - 0xe5, 0x3b, 0x5c, 0x8c, 0x33, 0xdb, 0xbd, 0x63, 0x34, 0x3d, 0xce, 0xf8, 0x04, 0xcd, 0x6c, 0x22, - 0x63, 0x6c, 0x37, 0x60, 0xb6, 0x6b, 0x19, 0x96, 0x87, 0x9c, 0x8e, 0x83, 0xf0, 0x10, 0x4f, 0x77, - 0xa2, 0xfc, 0xcf, 0x13, 0x27, 0x8c, 0xe1, 0xfb, 0x61, 0x6b, 0x9a, 0x00, 0xca, 0x4c, 0x77, 0x50, - 0x58, 0x28, 0x42, 0x36, 0x9c, 0x17, 0x52, 0x1a, 0x68, 0x66, 0x88, 0x02, 0xee, 0xb1, 0x95, 0xda, - 0x3a, 0xee, 0x8e, 0x9f, 0xa9, 0x8a, 0x31, 0xdc, 0xa5, 0xb7, 0x36, 0xf7, 0xaa, 0xaa, 0xb2, 0xbf, - 0xb3, 0xb7, 0xb9, 0x5d, 0x15, 0xe3, 0x4f, 0xa5, 0x53, 0xdf, 0x9b, 0x10, 0xef, 0xde, 0xbd, 0x7b, - 0x37, 0x56, 0xf8, 0x76, 0x0c, 0x72, 0xbd, 0x93, 0xb1, 0xf4, 0x53, 0xf0, 0x20, 0x7f, 0x8d, 0x75, - 0x91, 0xa7, 0xde, 0x31, 0x1c, 0x92, 0xaa, 0x6d, 0x8d, 0xce, 0x96, 0x7e, 0x94, 0x67, 0x99, 0x55, - 0x1d, 0x79, 0x2f, 0x18, 0x0e, 0x4e, 0xc4, 0xb6, 0xe6, 0x49, 0x5b, 0x70, 0xce, 0xb2, 0x55, 0xd7, - 0xd3, 0xac, 0x86, 0xe6, 0x34, 0xd4, 0xe0, 0x00, 0x41, 0xd5, 0x74, 0x1d, 0xb9, 0xae, 0x4d, 0x5b, - 0x84, 0xcf, 0xf2, 0xb0, 0x65, 0xd7, 0x99, 0x71, 0x50, 0x3b, 0x4b, 0xcc, 0xb4, 0x2f, 0x23, 0xe2, - 0x27, 0x65, 0xc4, 0x43, 0x90, 0x6e, 0x6b, 0x1d, 0x15, 0x59, 0x9e, 0x73, 0x44, 0xe6, 0xb9, 0x94, - 0x92, 0x6a, 0x6b, 0x9d, 0x2a, 0xbe, 0xfe, 0xe8, 0xd6, 0x20, 0x1c, 0xc7, 0x7f, 0x8a, 0x43, 0x36, - 0x3c, 0xd3, 0xe1, 0x11, 0x59, 0x27, 0xf5, 0x5b, 0x20, 0x3b, 0xfc, 0xd1, 0xfb, 0x4e, 0x80, 0x8b, - 0x15, 0x5c, 0xd8, 0x8b, 0xe3, 0x74, 0xd2, 0x52, 0x28, 0x12, 0x37, 0x55, 0xbc, 0xa7, 0x11, 0x9d, - 0xdf, 0x53, 0x0a, 0xbb, 0x92, 0x36, 0x60, 0xfc, 0xa6, 0x4b, 0xb8, 0xc7, 0x09, 0xf7, 0x63, 0xf7, - 0xe7, 0xbe, 0x5e, 0x27, 0xe4, 0xe9, 0xeb, 0x75, 0x75, 0xa7, 0xa6, 0x6c, 0x97, 0xb6, 0x14, 0x06, - 0x97, 0xce, 0x42, 0xc2, 0xd4, 0x5e, 0x3e, 0xea, 0x6d, 0x01, 0x44, 0x34, 0x6a, 0xe0, 0xcf, 0x42, - 0xe2, 0x0e, 0xd2, 0x6e, 0xf5, 0x16, 0x5e, 0x22, 0xfa, 0x08, 0x53, 0x7f, 0x09, 0x92, 0x24, 0x5e, - 0x12, 0x00, 0x8b, 0x98, 0x38, 0x26, 0xa5, 0x20, 0x51, 0xa9, 0x29, 0x38, 0xfd, 0x45, 0xc8, 0x52, - 0xa9, 0xba, 0xbb, 0x59, 0xad, 0x54, 0xc5, 0x58, 0x61, 0x0d, 0xc6, 0x69, 0x10, 0xf0, 0xd6, 0xf0, - 0xc3, 0x20, 0x8e, 0xb1, 0x4b, 0xc6, 0x21, 0x70, 0xed, 0xfe, 0x76, 0xb9, 0xaa, 0x88, 0xb1, 0xf0, - 0xf2, 0xba, 0x90, 0x0d, 0x8f, 0x73, 0x3f, 0x9e, 0x9c, 0xfa, 0x6b, 0x01, 0x32, 0xa1, 0xf1, 0x0c, - 0x0f, 0x06, 0x9a, 0x69, 0xda, 0x77, 0x54, 0xcd, 0x34, 0x34, 0x97, 0x25, 0x05, 0x10, 0x51, 0x09, - 0x4b, 0x46, 0x5d, 0xb4, 0x1f, 0x8b, 0xf3, 0xaf, 0x0b, 0x20, 0xf6, 0x8f, 0x76, 0x7d, 0x0e, 0x0a, - 0x3f, 0x51, 0x07, 0x5f, 0x13, 0x20, 0xd7, 0x3b, 0xcf, 0xf5, 0xb9, 0x77, 0xfe, 0x27, 0xea, 0xde, - 0x3b, 0x31, 0x98, 0xec, 0x99, 0xe2, 0x46, 0xf5, 0xee, 0xb3, 0x30, 0x6d, 0x34, 0x50, 0xbb, 0x63, - 0x7b, 0xc8, 0xd2, 0x8f, 0x54, 0x13, 0xdd, 0x46, 0xa6, 0x5c, 0x20, 0x85, 0x62, 0xe9, 0xfe, 0x73, - 0xe2, 0xe2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xe2, 0xcc, 0xe6, 0x7a, 0x75, 0x7b, 0xb7, 0xb6, 0x57, - 0xdd, 0xa9, 0xbc, 0xa8, 0xee, 0xef, 0xfc, 0xf4, 0x4e, 0xed, 0x85, 0x1d, 0x45, 0x34, 0xfa, 0xcc, - 0x3e, 0xc2, 0xad, 0xbe, 0x0b, 0x62, 0xbf, 0x53, 0xd2, 0x83, 0x30, 0xcc, 0x2d, 0x71, 0x4c, 0x9a, - 0x81, 0xa9, 0x9d, 0x9a, 0x5a, 0xdf, 0x5c, 0xaf, 0xaa, 0xd5, 0xab, 0x57, 0xab, 0x95, 0xbd, 0x3a, - 0x7d, 0x71, 0xf6, 0xad, 0xf7, 0x7a, 0x37, 0xf5, 0xab, 0x71, 0x98, 0x19, 0xe2, 0x89, 0x54, 0x62, - 0x33, 0x3b, 0x7d, 0x8d, 0x78, 0x66, 0x14, 0xef, 0x17, 0xf1, 0x54, 0xb0, 0xab, 0x39, 0x1e, 0x1b, - 0xf1, 0x9f, 0x04, 0x1c, 0x25, 0xcb, 0x33, 0x9a, 0x06, 0x72, 0xd8, 0x39, 0x03, 0x1d, 0xe4, 0xa7, - 0x02, 0x39, 0x3d, 0x6a, 0xf8, 0x38, 0x48, 0x1d, 0xdb, 0x35, 0x3c, 0xe3, 0x36, 0x52, 0x0d, 0x8b, - 0x1f, 0x4a, 0xe0, 0xc1, 0x3e, 0xa1, 0x88, 0x5c, 0xb3, 0x69, 0x79, 0xbe, 0xb5, 0x85, 0x5a, 0x5a, - 0x9f, 0x35, 0x2e, 0xe0, 0x71, 0x45, 0xe4, 0x1a, 0xdf, 0xfa, 0x3c, 0x64, 0x1b, 0x76, 0x17, 0x8f, - 0x49, 0xd4, 0x0e, 0xf7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0x6f, 0xc2, 0xe6, 0xd8, 0xe0, 0x34, 0x24, - 0xab, 0x64, 0xa8, 0x8c, 0x9a, 0x3c, 0x01, 0x53, 0x5a, 0xab, 0xe5, 0x60, 0x72, 0x4e, 0x44, 0x27, - 0xf3, 0x9c, 0x2f, 0x26, 0x86, 0x73, 0xd7, 0x21, 0xc5, 0xe3, 0x80, 0x5b, 0x32, 0x8e, 0x84, 0xda, - 0xa1, 0x67, 0x52, 0xb1, 0x85, 0xb4, 0x92, 0xb2, 0xb8, 0xf2, 0x3c, 0x64, 0x0d, 0x57, 0x0d, 0x0e, - 0x47, 0x63, 0xf3, 0xb1, 0x85, 0x94, 0x92, 0x31, 0x5c, 0xff, 0x34, 0xac, 0xf0, 0x46, 0x0c, 0x72, - 0xbd, 0x87, 0xbb, 0xd2, 0x3a, 0xa4, 0x4c, 0x5b, 0xd7, 0x48, 0x6a, 0xd1, 0x5f, 0x16, 0x16, 0x22, - 0xce, 0x83, 0x17, 0xb7, 0x98, 0xbd, 0xe2, 0x23, 0xe7, 0xfe, 0x5e, 0x80, 0x14, 0x17, 0x4b, 0x67, - 0x20, 0xd1, 0xd1, 0xbc, 0x43, 0x42, 0x97, 0x2c, 0xc7, 0x44, 0x41, 0x21, 0xd7, 0x58, 0xee, 0x76, - 0x34, 0x8b, 0xa4, 0x00, 0x93, 0xe3, 0x6b, 0xbc, 0xae, 0x26, 0xd2, 0x1a, 0x64, 0xec, 0xb7, 0xdb, - 0x6d, 0x64, 0x79, 0x2e, 0x5f, 0x57, 0x26, 0xaf, 0x30, 0xb1, 0xf4, 0x34, 0x4c, 0x7b, 0x8e, 0x66, - 0x98, 0x3d, 0xb6, 0x09, 0x62, 0x2b, 0x72, 0x85, 0x6f, 0x5c, 0x84, 0xb3, 0x9c, 0xb7, 0x81, 0x3c, - 0x4d, 0x3f, 0x44, 0x8d, 0x00, 0x34, 0x4e, 0x4e, 0x0e, 0x1f, 0x64, 0x06, 0xeb, 0x4c, 0xcf, 0xb1, - 0x85, 0xef, 0x08, 0x30, 0xcd, 0x5f, 0x54, 0x1a, 0x7e, 0xb0, 0xb6, 0x01, 0x34, 0xcb, 0xb2, 0xbd, - 0x70, 0xb8, 0x06, 0x53, 0x79, 0x00, 0xb7, 0x58, 0xf2, 0x41, 0x4a, 0x88, 0x60, 0xae, 0x0d, 0x10, - 0x68, 0x4e, 0x0c, 0xdb, 0x39, 0xc8, 0xb0, 0x93, 0x7b, 0xf2, 0xf3, 0x0f, 0x7d, 0xb5, 0x05, 0x2a, - 0xc2, 0x6f, 0x34, 0xd2, 0x2c, 0x24, 0x0f, 0x50, 0xcb, 0xb0, 0xd8, 0x79, 0x22, 0xbd, 0xe0, 0xa7, - 0x94, 0x09, 0xff, 0x94, 0xb2, 0x7c, 0x03, 0x66, 0x74, 0xbb, 0xdd, 0xef, 0x6e, 0x59, 0xec, 0x7b, - 0xbd, 0x76, 0xaf, 0x09, 0x9f, 0x81, 0x60, 0xc4, 0xfc, 0x72, 0x2c, 0xbe, 0xb1, 0x5b, 0xfe, 0x6a, - 0x6c, 0x6e, 0x83, 0xe2, 0x76, 0xf9, 0x63, 0x2a, 0xa8, 0x69, 0x22, 0x1d, 0xbb, 0x0e, 0xdf, 0xff, - 0x18, 0x3c, 0xd3, 0x32, 0xbc, 0xc3, 0xee, 0xc1, 0xa2, 0x6e, 0xb7, 0x97, 0x5a, 0x76, 0xcb, 0x0e, - 0x7e, 0xee, 0xc2, 0x57, 0xe4, 0x82, 0xfc, 0xc7, 0x7e, 0xf2, 0x4a, 0xfb, 0xd2, 0xb9, 0xc8, 0xdf, - 0xc7, 0x8a, 0x3b, 0x30, 0xc3, 0x8c, 0x55, 0x72, 0xe6, 0x4e, 0x5f, 0x0d, 0xa4, 0xfb, 0x9e, 0xbb, - 0xc8, 0xdf, 0x78, 0x97, 0xf4, 0x6a, 0x65, 0x9a, 0x41, 0xb1, 0x8e, 0xbe, 0x40, 0x14, 0x15, 0x78, - 0xa0, 0x87, 0x8f, 0xee, 0x4b, 0xe4, 0x44, 0x30, 0x7e, 0x9b, 0x31, 0xce, 0x84, 0x18, 0xeb, 0x0c, - 0x5a, 0xac, 0xc0, 0xe4, 0x69, 0xb8, 0xfe, 0x96, 0x71, 0x65, 0x51, 0x98, 0x64, 0x03, 0xa6, 0x08, - 0x89, 0xde, 0x75, 0x3d, 0xbb, 0x4d, 0x8a, 0xde, 0xfd, 0x69, 0xfe, 0xee, 0x5d, 0xba, 0x51, 0x72, - 0x18, 0x56, 0xf1, 0x51, 0xc5, 0x22, 0x90, 0x9f, 0x19, 0x1a, 0x48, 0x37, 0x23, 0x18, 0xde, 0x64, - 0x8e, 0xf8, 0xf6, 0xc5, 0x4f, 0xc3, 0x2c, 0xfe, 0x9f, 0xd4, 0xa4, 0xb0, 0x27, 0xd1, 0xa7, 0x4c, - 0xf2, 0x77, 0x5e, 0xa1, 0x7b, 0x71, 0xc6, 0x27, 0x08, 0xf9, 0x14, 0x5a, 0xc5, 0x16, 0xf2, 0x3c, - 0xe4, 0xb8, 0xaa, 0x66, 0x0e, 0x73, 0x2f, 0xf4, 0x9a, 0x2e, 0x7f, 0xf1, 0xbd, 0xde, 0x55, 0xdc, - 0xa0, 0xc8, 0x92, 0x69, 0x16, 0xf7, 0xe1, 0xc1, 0x21, 0x59, 0x31, 0x02, 0xe7, 0xab, 0x8c, 0x73, - 0x76, 0x20, 0x33, 0x30, 0xed, 0x2e, 0x70, 0xb9, 0xbf, 0x96, 0x23, 0x70, 0xfe, 0x36, 0xe3, 0x94, - 0x18, 0x96, 0x2f, 0x29, 0x66, 0xbc, 0x0e, 0xd3, 0xb7, 0x91, 0x73, 0x60, 0xbb, 0xec, 0x68, 0x64, - 0x04, 0xba, 0xd7, 0x18, 0xdd, 0x14, 0x03, 0x92, 0xb3, 0x12, 0xcc, 0x75, 0x19, 0x52, 0x4d, 0x4d, - 0x47, 0x23, 0x50, 0x7c, 0x89, 0x51, 0x4c, 0x60, 0x7b, 0x0c, 0x2d, 0x41, 0xb6, 0x65, 0xb3, 0xb6, - 0x14, 0x0d, 0x7f, 0x9d, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x3a, 0x76, 0xa7, 0x6b, 0xe2, 0x9e, 0x15, - 0x4d, 0xf1, 0x3b, 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x29, 0xc2, 0xfa, 0xbb, 0x9c, 0xc2, 0x0d, 0xc5, - 0xf3, 0x79, 0xc8, 0xd8, 0x96, 0x79, 0x64, 0x5b, 0xa3, 0x38, 0xf1, 0x7b, 0x8c, 0x01, 0x18, 0x04, - 0x13, 0x5c, 0x81, 0xf4, 0xa8, 0x0b, 0xf1, 0xfb, 0xef, 0xf1, 0xed, 0xc1, 0x57, 0x60, 0x03, 0xa6, - 0x78, 0x81, 0x32, 0x6c, 0x6b, 0x04, 0x8a, 0x3f, 0x60, 0x14, 0xb9, 0x10, 0x8c, 0x3d, 0x86, 0x87, - 0x5c, 0xaf, 0x85, 0x46, 0x21, 0x79, 0x83, 0x3f, 0x06, 0x83, 0xb0, 0x50, 0x1e, 0x20, 0x4b, 0x3f, - 0x1c, 0x8d, 0xe1, 0x2b, 0x3c, 0x94, 0x1c, 0x83, 0x29, 0x2a, 0x30, 0xd9, 0xd6, 0x1c, 0xf7, 0x50, - 0x33, 0x47, 0x5a, 0x8e, 0x3f, 0x64, 0x1c, 0x59, 0x1f, 0xc4, 0x22, 0xd2, 0xb5, 0x4e, 0x43, 0xf3, - 0x55, 0x1e, 0x91, 0x10, 0x8c, 0x6d, 0x3d, 0xd7, 0x23, 0x07, 0x50, 0xa7, 0x61, 0xfb, 0x1a, 0xdf, - 0x7a, 0x14, 0xbb, 0x1d, 0x66, 0xbc, 0x02, 0x69, 0xd7, 0x78, 0x79, 0x24, 0x9a, 0x3f, 0xe2, 0x2b, - 0x4d, 0x00, 0x18, 0xfc, 0x22, 0x9c, 0x1d, 0xda, 0x26, 0x46, 0x20, 0xfb, 0x63, 0x46, 0x76, 0x66, - 0x48, 0xab, 0x60, 0x25, 0xe1, 0xb4, 0x94, 0x7f, 0xc2, 0x4b, 0x02, 0xea, 0xe3, 0xda, 0xc5, 0x2f, - 0x0a, 0xae, 0xd6, 0x3c, 0x5d, 0xd4, 0xfe, 0x94, 0x47, 0x8d, 0x62, 0x7b, 0xa2, 0xb6, 0x07, 0x67, - 0x18, 0xe3, 0xe9, 0xd6, 0xf5, 0xeb, 0xbc, 0xb0, 0x52, 0xf4, 0x7e, 0xef, 0xea, 0xfe, 0x0c, 0xcc, - 0xf9, 0xe1, 0xe4, 0x13, 0xa9, 0xab, 0xb6, 0xb5, 0xce, 0x08, 0xcc, 0xdf, 0x60, 0xcc, 0xbc, 0xe2, - 0xfb, 0x23, 0xad, 0xbb, 0xad, 0x75, 0x30, 0xf9, 0x0d, 0x90, 0x39, 0x79, 0xd7, 0x72, 0x90, 0x6e, - 0xb7, 0x2c, 0xe3, 0x65, 0xd4, 0x18, 0x81, 0xfa, 0xcf, 0xfa, 0x96, 0x6a, 0x3f, 0x04, 0xc7, 0xcc, - 0x9b, 0x20, 0xfa, 0xb3, 0x8a, 0x6a, 0xb4, 0x3b, 0xb6, 0xe3, 0x45, 0x30, 0xfe, 0x39, 0x5f, 0x29, - 0x1f, 0xb7, 0x49, 0x60, 0xc5, 0x2a, 0xe4, 0xc8, 0xe5, 0xa8, 0x29, 0xf9, 0x17, 0x8c, 0x68, 0x32, - 0x40, 0xb1, 0xc2, 0xa1, 0xdb, 0xed, 0x8e, 0xe6, 0x8c, 0x52, 0xff, 0xfe, 0x92, 0x17, 0x0e, 0x06, - 0x61, 0x85, 0xc3, 0x3b, 0xea, 0x20, 0xdc, 0xed, 0x47, 0x60, 0xf8, 0x26, 0x2f, 0x1c, 0x1c, 0xc3, - 0x28, 0xf8, 0xc0, 0x30, 0x02, 0xc5, 0x5f, 0x71, 0x0a, 0x8e, 0xc1, 0x14, 0x9f, 0x0a, 0x1a, 0xad, - 0x83, 0x5a, 0x86, 0xeb, 0x39, 0x74, 0x0e, 0xbe, 0x3f, 0xd5, 0xb7, 0xde, 0xeb, 0x1d, 0xc2, 0x94, - 0x10, 0xb4, 0x78, 0x1d, 0xa6, 0xfa, 0x46, 0x0c, 0x29, 0xea, 0x9b, 0x05, 0xf9, 0x67, 0x3f, 0x60, - 0xc5, 0xa8, 0x77, 0xc2, 0x28, 0x6e, 0xe1, 0x75, 0xef, 0x9d, 0x03, 0xa2, 0xc9, 0x5e, 0xf9, 0xc0, - 0x5f, 0xfa, 0x9e, 0x31, 0xa0, 0x78, 0x15, 0x26, 0x7b, 0x66, 0x80, 0x68, 0xaa, 0x9f, 0x63, 0x54, - 0xd9, 0xf0, 0x08, 0x50, 0x5c, 0x83, 0x04, 0xee, 0xe7, 0xd1, 0xf0, 0x9f, 0x67, 0x70, 0x62, 0x5e, - 0xfc, 0x04, 0xa4, 0x78, 0x1f, 0x8f, 0x86, 0xfe, 0x02, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x3d, 0x3c, - 0x1a, 0xfe, 0x8b, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0x7a, 0x08, 0xff, 0xe6, 0x97, 0x12, 0xac, 0x0e, - 0xf3, 0xd8, 0x5d, 0x81, 0x09, 0xd6, 0xbc, 0xa3, 0xd1, 0x9f, 0x63, 0x37, 0xe7, 0x88, 0xe2, 0x45, - 0x48, 0x8e, 0x18, 0xf0, 0x5f, 0x66, 0x50, 0x6a, 0x5f, 0xac, 0x40, 0x26, 0xd4, 0xb0, 0xa3, 0xe1, - 0xbf, 0xc2, 0xe0, 0x61, 0x14, 0x76, 0x9d, 0x35, 0xec, 0x68, 0x82, 0x5f, 0xe5, 0xae, 0x33, 0x04, - 0x0e, 0x1b, 0xef, 0xd5, 0xd1, 0xe8, 0x5f, 0xe3, 0x51, 0xe7, 0x90, 0xe2, 0xf3, 0x90, 0xf6, 0xeb, - 0x6f, 0x34, 0xfe, 0xd7, 0x19, 0x3e, 0xc0, 0xe0, 0x08, 0x84, 0xea, 0x7f, 0x34, 0xc5, 0xe7, 0x79, - 0x04, 0x42, 0x28, 0xbc, 0x8d, 0xfa, 0x7b, 0x7a, 0x34, 0xd3, 0x6f, 0xf0, 0x6d, 0xd4, 0xd7, 0xd2, - 0xf1, 0x6a, 0x92, 0x32, 0x18, 0x4d, 0xf1, 0x9b, 0x7c, 0x35, 0x89, 0x3d, 0x76, 0xa3, 0xbf, 0x49, - 0x46, 0x73, 0xfc, 0x16, 0x77, 0xa3, 0xaf, 0x47, 0x16, 0x77, 0x41, 0x1a, 0x6c, 0x90, 0xd1, 0x7c, - 0x5f, 0x60, 0x7c, 0xd3, 0x03, 0xfd, 0xb1, 0xf8, 0x02, 0x9c, 0x19, 0xde, 0x1c, 0xa3, 0x59, 0xbf, - 0xf8, 0x41, 0xdf, 0xeb, 0x4c, 0xb8, 0x37, 0x16, 0xf7, 0x82, 0x2a, 0x1b, 0x6e, 0x8c, 0xd1, 0xb4, - 0xaf, 0x7e, 0xd0, 0x5b, 0x68, 0xc3, 0x7d, 0xb1, 0x58, 0x02, 0x08, 0x7a, 0x52, 0x34, 0xd7, 0x6b, - 0x8c, 0x2b, 0x04, 0xc2, 0x5b, 0x83, 0xb5, 0xa4, 0x68, 0xfc, 0x97, 0xf8, 0xd6, 0x60, 0x08, 0xbc, - 0x35, 0x78, 0x37, 0x8a, 0x46, 0xbf, 0xce, 0xb7, 0x06, 0x87, 0x14, 0xaf, 0x40, 0xca, 0xea, 0x9a, - 0x26, 0xce, 0x2d, 0xe9, 0xfe, 0x9f, 0x11, 0xc9, 0xff, 0xf2, 0x21, 0x03, 0x73, 0x40, 0x71, 0x0d, - 0x92, 0xa8, 0x7d, 0x80, 0x1a, 0x51, 0xc8, 0x7f, 0xfd, 0x90, 0xd7, 0x13, 0x6c, 0x5d, 0x7c, 0x1e, - 0x80, 0xbe, 0x4c, 0x93, 0x5f, 0x89, 0x22, 0xb0, 0xff, 0xf6, 0x21, 0xfb, 0x42, 0x21, 0x80, 0x04, - 0x04, 0xf4, 0x7b, 0x87, 0xfb, 0x13, 0xbc, 0xd7, 0x4b, 0x40, 0x5e, 0xc0, 0x2f, 0xc3, 0xc4, 0x4d, - 0xd7, 0xb6, 0x3c, 0xad, 0x15, 0x85, 0xfe, 0x77, 0x86, 0xe6, 0xf6, 0x38, 0x60, 0x6d, 0xdb, 0x41, - 0x9e, 0xd6, 0x72, 0xa3, 0xb0, 0xff, 0xc1, 0xb0, 0x3e, 0x00, 0x83, 0x75, 0xcd, 0xf5, 0x46, 0x79, - 0xee, 0xff, 0xe4, 0x60, 0x0e, 0xc0, 0x4e, 0xe3, 0xff, 0x6f, 0xa1, 0xa3, 0x28, 0xec, 0xfb, 0xdc, - 0x69, 0x66, 0x5f, 0xfc, 0x04, 0xa4, 0xf1, 0xbf, 0xf4, 0xab, 0x9d, 0x08, 0xf0, 0x7f, 0x31, 0x70, - 0x80, 0xc0, 0x77, 0x76, 0xbd, 0x86, 0x67, 0x44, 0x07, 0xfb, 0xbf, 0xd9, 0x4a, 0x73, 0xfb, 0x62, - 0x09, 0x32, 0xae, 0xd7, 0x68, 0x74, 0xd9, 0x44, 0x13, 0x01, 0xff, 0xfe, 0x87, 0xfe, 0x4b, 0xae, - 0x8f, 0x29, 0x9f, 0x1f, 0x7e, 0x58, 0x07, 0x1b, 0xf6, 0x86, 0x4d, 0x8f, 0xe9, 0xe0, 0xff, 0x52, - 0xf0, 0xb0, 0x6e, 0xb7, 0x0f, 0x6c, 0x77, 0x29, 0x54, 0x86, 0x96, 0x6c, 0x8b, 0xd9, 0x4b, 0x71, - 0xdb, 0x42, 0x73, 0xa7, 0x3b, 0x98, 0x2b, 0x9c, 0x85, 0x64, 0xbd, 0x7b, 0x70, 0x70, 0x24, 0x89, - 0x10, 0x77, 0xbb, 0x07, 0xec, 0xcb, 0x12, 0xfc, 0x6f, 0xe1, 0xed, 0x38, 0x4c, 0x96, 0x4c, 0x73, - 0xef, 0xa8, 0x83, 0xdc, 0x9a, 0x85, 0x6a, 0x4d, 0x49, 0x86, 0x71, 0xf2, 0x24, 0xcf, 0x11, 0x33, - 0xe1, 0xda, 0x98, 0xc2, 0xae, 0x7d, 0xcd, 0x32, 0x39, 0xaf, 0x8c, 0xf9, 0x9a, 0x65, 0x5f, 0xb3, - 0x42, 0x8f, 0x2b, 0x7d, 0xcd, 0x8a, 0xaf, 0x59, 0x25, 0x87, 0x96, 0x71, 0x5f, 0xb3, 0xea, 0x6b, - 0xd6, 0xc8, 0xa1, 0xfc, 0xa4, 0xaf, 0x59, 0xf3, 0x35, 0x17, 0xc8, 0x31, 0x7c, 0xc2, 0xd7, 0x5c, - 0xf0, 0x35, 0x17, 0xc9, 0xe9, 0xfb, 0xb4, 0xaf, 0xb9, 0xe8, 0x6b, 0x2e, 0x91, 0x13, 0x77, 0xc9, - 0xd7, 0x5c, 0xf2, 0x35, 0x97, 0xc9, 0x27, 0x24, 0x13, 0xbe, 0xe6, 0xb2, 0x34, 0x07, 0x13, 0xf4, - 0xc9, 0x9e, 0x25, 0x3f, 0xcb, 0x4e, 0x5d, 0x1b, 0x53, 0xb8, 0x20, 0xd0, 0x3d, 0x47, 0x3e, 0x13, - 0x19, 0x0f, 0x74, 0xcf, 0x05, 0xba, 0x65, 0xf2, 0xb1, 0xb4, 0x18, 0xe8, 0x96, 0x03, 0xdd, 0x8a, - 0x3c, 0x89, 0x13, 0x20, 0xd0, 0xad, 0x04, 0xba, 0x55, 0x39, 0x87, 0x57, 0x20, 0xd0, 0xad, 0x06, - 0xba, 0x35, 0x79, 0x6a, 0x5e, 0x58, 0xc8, 0x06, 0xba, 0x35, 0xe9, 0x19, 0xc8, 0xb8, 0xdd, 0x03, - 0x95, 0x7d, 0x45, 0x40, 0x3e, 0x47, 0xc9, 0x2c, 0xc3, 0x22, 0xce, 0x09, 0xb2, 0xac, 0xd7, 0xc6, - 0x14, 0x70, 0xbb, 0x07, 0xac, 0x42, 0x96, 0xb3, 0x40, 0x0e, 0x14, 0x54, 0xf2, 0x11, 0x66, 0xe1, - 0x2d, 0x01, 0xd2, 0x7b, 0x77, 0x6c, 0xf2, 0xa3, 0xac, 0xfb, 0x23, 0x5e, 0x5c, 0xee, 0xf4, 0xca, - 0x2a, 0xf9, 0xdd, 0x2c, 0x7d, 0x4d, 0x50, 0xb8, 0x20, 0xd0, 0xad, 0xc9, 0x8f, 0x92, 0x07, 0xf2, - 0x75, 0x6b, 0xd2, 0x12, 0x64, 0x43, 0x0f, 0xb4, 0x4c, 0xbe, 0x30, 0xe9, 0x7d, 0x22, 0x41, 0xc9, - 0x04, 0x4f, 0xb4, 0x5c, 0x4e, 0x02, 0x4e, 0x7b, 0xfc, 0xc7, 0xbb, 0x63, 0x17, 0x3e, 0x1f, 0x83, - 0x0c, 0x3d, 0x83, 0x24, 0x4f, 0x85, 0x6f, 0x45, 0x67, 0xf2, 0x23, 0xe6, 0xc6, 0x98, 0xc2, 0x05, - 0x92, 0x02, 0x40, 0x4d, 0x71, 0x86, 0x53, 0x4f, 0xca, 0xcf, 0xfe, 0xe3, 0xdb, 0xe7, 0x3e, 0x7e, - 0xe2, 0x0e, 0xc2, 0xb1, 0x5b, 0xa2, 0x15, 0x76, 0x71, 0xdf, 0xb0, 0xbc, 0xe7, 0x96, 0x2f, 0xe1, - 0x00, 0x07, 0x2c, 0xd2, 0x3e, 0xa4, 0x2a, 0x9a, 0x4b, 0x3e, 0x31, 0x23, 0xae, 0x27, 0xca, 0x17, - 0xff, 0xf7, 0xed, 0x73, 0x2b, 0x11, 0x8c, 0xac, 0xf8, 0x2d, 0x6e, 0x1f, 0x61, 0xd6, 0x0b, 0xab, - 0x18, 0x7e, 0x6d, 0x4c, 0xf1, 0xa9, 0xa4, 0x65, 0xee, 0xea, 0x8e, 0xd6, 0xa6, 0x9f, 0xd2, 0xc4, - 0xcb, 0xe2, 0xf1, 0xdb, 0xe7, 0xb2, 0xdb, 0x47, 0x81, 0x3c, 0x70, 0x05, 0x5f, 0x95, 0x53, 0x30, - 0x4e, 0x5d, 0x2d, 0xaf, 0xbf, 0x79, 0x2f, 0x3f, 0xf6, 0xd6, 0xbd, 0xfc, 0xd8, 0x3f, 0xdc, 0xcb, - 0x8f, 0xbd, 0x73, 0x2f, 0x2f, 0xbc, 0x7f, 0x2f, 0x2f, 0xfc, 0xe0, 0x5e, 0x5e, 0xb8, 0x7b, 0x9c, - 0x17, 0xbe, 0x72, 0x9c, 0x17, 0xbe, 0x7e, 0x9c, 0x17, 0xbe, 0x75, 0x9c, 0x17, 0xde, 0x3c, 0xce, - 0x8f, 0xbd, 0x75, 0x9c, 0x17, 0xde, 0x39, 0xce, 0x0b, 0xdf, 0x3b, 0xce, 0x8f, 0xbd, 0x7f, 0x9c, - 0x17, 0x7e, 0x70, 0x9c, 0x1f, 0xbb, 0xfb, 0xdd, 0xfc, 0xd8, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, - 0xb7, 0xa2, 0x0e, 0xd2, 0xdb, 0x32, 0x00, 0x00, + // 4154 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x6b, 0x6c, 0x1c, 0xd7, + 0x75, 0x3f, 0x67, 0x1f, 0xe4, 0xee, 0xd9, 0xe5, 0x72, 0x78, 0x49, 0x4b, 0x2b, 0xda, 0x5e, 0x49, + 0x6b, 0x3b, 0xa2, 0xed, 0x98, 0xb4, 0x29, 0x52, 0x8f, 0xd5, 0x3f, 0xf1, 0x7f, 0x49, 0xae, 0x28, + 0xaa, 0x24, 0x97, 0x19, 0x92, 0xf1, 0x23, 0x28, 0x06, 0xc3, 0xd9, 0xcb, 0xe5, 0x48, 0xb3, 0x33, + 0x93, 0x99, 0x59, 0xc9, 0x14, 0xfa, 0x41, 0x85, 0xfb, 0x40, 0x50, 0xf4, 0x95, 0x16, 0x48, 0xe2, + 0x3a, 0xee, 0x03, 0x68, 0x9d, 0xa6, 0xaf, 0xa4, 0x69, 0xd3, 0xb4, 0x9f, 0xfa, 0x25, 0xad, 0x3f, + 0x15, 0xce, 0xb7, 0xa2, 0x28, 0x0c, 0x8b, 0x31, 0xd0, 0xb4, 0x75, 0x1b, 0xb7, 0xf5, 0x07, 0xa3, + 0xee, 0x87, 0xe2, 0xbe, 0x66, 0x66, 0x1f, 0xd4, 0x2c, 0x83, 0xda, 0xf9, 0x44, 0xce, 0x39, 0xe7, + 0xf7, 0x9b, 0x73, 0xcf, 0x3d, 0xf7, 0x9c, 0x7b, 0xef, 0x0e, 0xfc, 0xf0, 0x32, 0x9c, 0x69, 0xda, + 0x76, 0xd3, 0xc4, 0xb3, 0x8e, 0x6b, 0xfb, 0xf6, 0x6e, 0x7b, 0x6f, 0xb6, 0x81, 0x3d, 0xdd, 0x35, + 0x1c, 0xdf, 0x76, 0x67, 0xa8, 0x0c, 0x8d, 0x31, 0x8b, 0x19, 0x61, 0x51, 0x5e, 0x87, 0xf1, 0xab, + 0x86, 0x89, 0x97, 0x03, 0xc3, 0x2d, 0xec, 0xa3, 0x4b, 0x90, 0xda, 0x33, 0x4c, 0x5c, 0x94, 0xce, + 0x24, 0xa7, 0x73, 0x73, 0x8f, 0xce, 0x74, 0x81, 0x66, 0x3a, 0x11, 0x9b, 0x44, 0xac, 0x50, 0x44, + 0xf9, 0x9d, 0x14, 0x4c, 0xf4, 0xd1, 0x22, 0x04, 0x29, 0x4b, 0x6b, 0x11, 0x46, 0x69, 0x3a, 0xab, + 0xd0, 0xff, 0x51, 0x11, 0x46, 0x1c, 0x4d, 0xbf, 0xa9, 0x35, 0x71, 0x31, 0x41, 0xc5, 0xe2, 0x11, + 0x95, 0x00, 0x1a, 0xd8, 0xc1, 0x56, 0x03, 0x5b, 0xfa, 0x41, 0x31, 0x79, 0x26, 0x39, 0x9d, 0x55, + 0x22, 0x12, 0xf4, 0x24, 0x8c, 0x3b, 0xed, 0x5d, 0xd3, 0xd0, 0xd5, 0x88, 0x19, 0x9c, 0x49, 0x4e, + 0xa7, 0x15, 0x99, 0x29, 0x96, 0x43, 0xe3, 0x73, 0x30, 0x76, 0x1b, 0x6b, 0x37, 0xa3, 0xa6, 0x39, + 0x6a, 0x5a, 0x20, 0xe2, 0x88, 0xe1, 0x12, 0xe4, 0x5b, 0xd8, 0xf3, 0xb4, 0x26, 0x56, 0xfd, 0x03, + 0x07, 0x17, 0x53, 0x74, 0xf4, 0x67, 0x7a, 0x46, 0xdf, 0x3d, 0xf2, 0x1c, 0x47, 0x6d, 0x1f, 0x38, + 0x18, 0x55, 0x21, 0x8b, 0xad, 0x76, 0x8b, 0x31, 0xa4, 0x8f, 0x88, 0x5f, 0xcd, 0x6a, 0xb7, 0xba, + 0x59, 0x32, 0x04, 0xc6, 0x29, 0x46, 0x3c, 0xec, 0xde, 0x32, 0x74, 0x5c, 0x1c, 0xa6, 0x04, 0xe7, + 0x7a, 0x08, 0xb6, 0x98, 0xbe, 0x9b, 0x43, 0xe0, 0xd0, 0x12, 0x64, 0xf1, 0x4b, 0x3e, 0xb6, 0x3c, + 0xc3, 0xb6, 0x8a, 0x23, 0x94, 0xe4, 0xb1, 0x3e, 0xb3, 0x88, 0xcd, 0x46, 0x37, 0x45, 0x88, 0x43, + 0x17, 0x60, 0xc4, 0x76, 0x7c, 0xc3, 0xb6, 0xbc, 0x62, 0xe6, 0x8c, 0x34, 0x9d, 0x9b, 0x7b, 0xa8, + 0x6f, 0x22, 0xd4, 0x99, 0x8d, 0x22, 0x8c, 0xd1, 0x2a, 0xc8, 0x9e, 0xdd, 0x76, 0x75, 0xac, 0xea, + 0x76, 0x03, 0xab, 0x86, 0xb5, 0x67, 0x17, 0xb3, 0x94, 0xe0, 0x74, 0xef, 0x40, 0xa8, 0xe1, 0x92, + 0xdd, 0xc0, 0xab, 0xd6, 0x9e, 0xad, 0x14, 0xbc, 0x8e, 0x67, 0x74, 0x02, 0x86, 0xbd, 0x03, 0xcb, + 0xd7, 0x5e, 0x2a, 0xe6, 0x69, 0x86, 0xf0, 0xa7, 0xf2, 0x5f, 0x0e, 0xc3, 0xd8, 0x20, 0x29, 0x76, + 0x05, 0xd2, 0x7b, 0x64, 0x94, 0xc5, 0xc4, 0x71, 0x62, 0xc0, 0x30, 0x9d, 0x41, 0x1c, 0xfe, 0x11, + 0x83, 0x58, 0x85, 0x9c, 0x85, 0x3d, 0x1f, 0x37, 0x58, 0x46, 0x24, 0x07, 0xcc, 0x29, 0x60, 0xa0, + 0xde, 0x94, 0x4a, 0xfd, 0x48, 0x29, 0xf5, 0x3c, 0x8c, 0x05, 0x2e, 0xa9, 0xae, 0x66, 0x35, 0x45, + 0x6e, 0xce, 0xc6, 0x79, 0x32, 0x53, 0x13, 0x38, 0x85, 0xc0, 0x94, 0x02, 0xee, 0x78, 0x46, 0xcb, + 0x00, 0xb6, 0x85, 0xed, 0x3d, 0xb5, 0x81, 0x75, 0xb3, 0x98, 0x39, 0x22, 0x4a, 0x75, 0x62, 0xd2, + 0x13, 0x25, 0x9b, 0x49, 0x75, 0x13, 0x5d, 0x0e, 0x53, 0x6d, 0xe4, 0x88, 0x4c, 0x59, 0x67, 0x8b, + 0xac, 0x27, 0xdb, 0x76, 0xa0, 0xe0, 0x62, 0x92, 0xf7, 0xb8, 0xc1, 0x47, 0x96, 0xa5, 0x4e, 0xcc, + 0xc4, 0x8e, 0x4c, 0xe1, 0x30, 0x36, 0xb0, 0x51, 0x37, 0xfa, 0x88, 0x1e, 0x81, 0x40, 0xa0, 0xd2, + 0xb4, 0x02, 0x5a, 0x85, 0xf2, 0x42, 0xb8, 0xa1, 0xb5, 0xf0, 0xd4, 0x1d, 0x28, 0x74, 0x86, 0x07, + 0x4d, 0x42, 0xda, 0xf3, 0x35, 0xd7, 0xa7, 0x59, 0x98, 0x56, 0xd8, 0x03, 0x92, 0x21, 0x89, 0xad, + 0x06, 0xad, 0x72, 0x69, 0x85, 0xfc, 0x8b, 0xfe, 0x7f, 0x38, 0xe0, 0x24, 0x1d, 0xf0, 0x27, 0x7a, + 0x67, 0xb4, 0x83, 0xb9, 0x7b, 0xdc, 0x53, 0x17, 0x61, 0xb4, 0x63, 0x00, 0x83, 0xbe, 0xba, 0xfc, + 0x53, 0xf0, 0x40, 0x5f, 0x6a, 0xf4, 0x3c, 0x4c, 0xb6, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, + 0x64, 0x2c, 0x7b, 0x55, 0xf1, 0x9f, 0x46, 0x8e, 0xc8, 0xb9, 0x9d, 0xa8, 0x35, 0x63, 0x51, 0x26, + 0xda, 0xbd, 0xc2, 0x27, 0xb2, 0x99, 0x1f, 0x8c, 0xc8, 0x77, 0xef, 0xde, 0xbd, 0x9b, 0x28, 0x7f, + 0x79, 0x18, 0x26, 0xfb, 0xad, 0x99, 0xbe, 0xcb, 0xf7, 0x04, 0x0c, 0x5b, 0xed, 0xd6, 0x2e, 0x76, + 0x69, 0x90, 0xd2, 0x0a, 0x7f, 0x42, 0x55, 0x48, 0x9b, 0xda, 0x2e, 0x36, 0x8b, 0xa9, 0x33, 0xd2, + 0x74, 0x61, 0xee, 0xc9, 0x81, 0x56, 0xe5, 0xcc, 0x1a, 0x81, 0x28, 0x0c, 0x89, 0x3e, 0x0d, 0x29, + 0x5e, 0xa2, 0x09, 0xc3, 0x13, 0x83, 0x31, 0x90, 0xb5, 0xa4, 0x50, 0x1c, 0x7a, 0x10, 0xb2, 0xe4, + 0x2f, 0xcb, 0x8d, 0x61, 0xea, 0x73, 0x86, 0x08, 0x48, 0x5e, 0xa0, 0x29, 0xc8, 0xd0, 0x65, 0xd2, + 0xc0, 0xa2, 0xb5, 0x05, 0xcf, 0x24, 0xb1, 0x1a, 0x78, 0x4f, 0x6b, 0x9b, 0xbe, 0x7a, 0x4b, 0x33, + 0xdb, 0x98, 0x26, 0x7c, 0x56, 0xc9, 0x73, 0xe1, 0x67, 0x89, 0x0c, 0x9d, 0x86, 0x1c, 0x5b, 0x55, + 0x86, 0xd5, 0xc0, 0x2f, 0xd1, 0xea, 0x99, 0x56, 0xd8, 0x42, 0x5b, 0x25, 0x12, 0xf2, 0xfa, 0x1b, + 0x9e, 0x6d, 0x89, 0xd4, 0xa4, 0xaf, 0x20, 0x02, 0xfa, 0xfa, 0x8b, 0xdd, 0x85, 0xfb, 0xe1, 0xfe, + 0xc3, 0xeb, 0xce, 0xa9, 0xf2, 0xb7, 0x13, 0x90, 0xa2, 0xf5, 0x62, 0x0c, 0x72, 0xdb, 0x2f, 0x6c, + 0xd6, 0xd4, 0xe5, 0xfa, 0xce, 0xe2, 0x5a, 0x4d, 0x96, 0x50, 0x01, 0x80, 0x0a, 0xae, 0xae, 0xd5, + 0xab, 0xdb, 0x72, 0x22, 0x78, 0x5e, 0xdd, 0xd8, 0xbe, 0x30, 0x2f, 0x27, 0x03, 0xc0, 0x0e, 0x13, + 0xa4, 0xa2, 0x06, 0xe7, 0xe7, 0xe4, 0x34, 0x92, 0x21, 0xcf, 0x08, 0x56, 0x9f, 0xaf, 0x2d, 0x5f, + 0x98, 0x97, 0x87, 0x3b, 0x25, 0xe7, 0xe7, 0xe4, 0x11, 0x34, 0x0a, 0x59, 0x2a, 0x59, 0xac, 0xd7, + 0xd7, 0xe4, 0x4c, 0xc0, 0xb9, 0xb5, 0xad, 0xac, 0x6e, 0xac, 0xc8, 0xd9, 0x80, 0x73, 0x45, 0xa9, + 0xef, 0x6c, 0xca, 0x10, 0x30, 0xac, 0xd7, 0xb6, 0xb6, 0xaa, 0x2b, 0x35, 0x39, 0x17, 0x58, 0x2c, + 0xbe, 0xb0, 0x5d, 0xdb, 0x92, 0xf3, 0x1d, 0x6e, 0x9d, 0x9f, 0x93, 0x47, 0x83, 0x57, 0xd4, 0x36, + 0x76, 0xd6, 0xe5, 0x02, 0x1a, 0x87, 0x51, 0xf6, 0x0a, 0xe1, 0xc4, 0x58, 0x97, 0xe8, 0xc2, 0xbc, + 0x2c, 0x87, 0x8e, 0x30, 0x96, 0xf1, 0x0e, 0xc1, 0x85, 0x79, 0x19, 0x95, 0x97, 0x20, 0x4d, 0xb3, + 0x0b, 0x21, 0x28, 0xac, 0x55, 0x17, 0x6b, 0x6b, 0x6a, 0x7d, 0x73, 0x7b, 0xb5, 0xbe, 0x51, 0x5d, + 0x93, 0xa5, 0x50, 0xa6, 0xd4, 0x3e, 0xb3, 0xb3, 0xaa, 0xd4, 0x96, 0xe5, 0x44, 0x54, 0xb6, 0x59, + 0xab, 0x6e, 0xd7, 0x96, 0xe5, 0x64, 0x59, 0x87, 0xc9, 0x7e, 0x75, 0xb2, 0xef, 0xca, 0x88, 0x4c, + 0x71, 0xe2, 0x88, 0x29, 0xa6, 0x5c, 0x3d, 0x53, 0xfc, 0xfd, 0x04, 0x4c, 0xf4, 0xe9, 0x15, 0x7d, + 0x5f, 0xf2, 0x2c, 0xa4, 0x59, 0x8a, 0xb2, 0xee, 0xf9, 0x78, 0xdf, 0xa6, 0x43, 0x13, 0xb6, 0xa7, + 0x83, 0x52, 0x5c, 0x74, 0x07, 0x91, 0x3c, 0x62, 0x07, 0x41, 0x28, 0x7a, 0x6a, 0xfa, 0x4f, 0xf6, + 0xd4, 0x74, 0xd6, 0xf6, 0x2e, 0x0c, 0xd2, 0xf6, 0xa8, 0xec, 0x78, 0xb5, 0x3d, 0xdd, 0xa7, 0xb6, + 0x5f, 0x81, 0xf1, 0x1e, 0xa2, 0x81, 0x6b, 0xec, 0xcb, 0x12, 0x14, 0x8f, 0x0a, 0x4e, 0x4c, 0xa5, + 0x4b, 0x74, 0x54, 0xba, 0x2b, 0xdd, 0x11, 0x3c, 0x7b, 0xf4, 0x24, 0xf4, 0xcc, 0xf5, 0xeb, 0x12, + 0x9c, 0xe8, 0xbf, 0x53, 0xec, 0xeb, 0xc3, 0xa7, 0x61, 0xb8, 0x85, 0xfd, 0x7d, 0x5b, 0xec, 0x96, + 0x3e, 0xd1, 0xa7, 0x07, 0x13, 0x75, 0xf7, 0x64, 0x73, 0x54, 0xb4, 0x89, 0x27, 0x8f, 0xda, 0xee, + 0x31, 0x6f, 0x7a, 0x3c, 0xfd, 0x42, 0x02, 0x1e, 0xe8, 0x4b, 0xde, 0xd7, 0xd1, 0x87, 0x01, 0x0c, + 0xcb, 0x69, 0xfb, 0x6c, 0x47, 0xc4, 0x0a, 0x6c, 0x96, 0x4a, 0x68, 0xf1, 0x22, 0xc5, 0xb3, 0xed, + 0x07, 0xfa, 0x24, 0xd5, 0x03, 0x13, 0x51, 0x83, 0x4b, 0xa1, 0xa3, 0x29, 0xea, 0x68, 0xe9, 0x88, + 0x91, 0xf6, 0x24, 0xe6, 0xd3, 0x20, 0xeb, 0xa6, 0x81, 0x2d, 0x5f, 0xf5, 0x7c, 0x17, 0x6b, 0x2d, + 0xc3, 0x6a, 0xd2, 0x0e, 0x92, 0xa9, 0xa4, 0xf7, 0x34, 0xd3, 0xc3, 0xca, 0x18, 0x53, 0x6f, 0x09, + 0x2d, 0x41, 0xd0, 0x04, 0x72, 0x23, 0x88, 0xe1, 0x0e, 0x04, 0x53, 0x07, 0x88, 0xf2, 0xb7, 0x32, + 0x90, 0x8b, 0xec, 0xab, 0xd1, 0x59, 0xc8, 0xdf, 0xd0, 0x6e, 0x69, 0xaa, 0x38, 0x2b, 0xb1, 0x48, + 0xe4, 0x88, 0x6c, 0x93, 0x9f, 0x97, 0x9e, 0x86, 0x49, 0x6a, 0x62, 0xb7, 0x7d, 0xec, 0xaa, 0xba, + 0xa9, 0x79, 0x1e, 0x0d, 0x5a, 0x86, 0x9a, 0x22, 0xa2, 0xab, 0x13, 0xd5, 0x92, 0xd0, 0xa0, 0x05, + 0x98, 0xa0, 0x88, 0x56, 0xdb, 0xf4, 0x0d, 0xc7, 0xc4, 0x2a, 0x39, 0xbd, 0x79, 0xb4, 0x93, 0x04, + 0x9e, 0x8d, 0x13, 0x8b, 0x75, 0x6e, 0x40, 0x3c, 0xf2, 0xd0, 0x32, 0x3c, 0x4c, 0x61, 0x4d, 0x6c, + 0x61, 0x57, 0xf3, 0xb1, 0x8a, 0x3f, 0xdf, 0xd6, 0x4c, 0x4f, 0xd5, 0xac, 0x86, 0xba, 0xaf, 0x79, + 0xfb, 0xc5, 0x49, 0x42, 0xb0, 0x98, 0x28, 0x4a, 0xca, 0x29, 0x62, 0xb8, 0xc2, 0xed, 0x6a, 0xd4, + 0xac, 0x6a, 0x35, 0xae, 0x69, 0xde, 0x3e, 0xaa, 0xc0, 0x09, 0xca, 0xe2, 0xf9, 0xae, 0x61, 0x35, + 0x55, 0x7d, 0x1f, 0xeb, 0x37, 0xd5, 0xb6, 0xbf, 0x77, 0xa9, 0xf8, 0x60, 0xf4, 0xfd, 0xd4, 0xc3, + 0x2d, 0x6a, 0xb3, 0x44, 0x4c, 0x76, 0xfc, 0xbd, 0x4b, 0x68, 0x0b, 0xf2, 0x64, 0x32, 0x5a, 0xc6, + 0x1d, 0xac, 0xee, 0xd9, 0x2e, 0x6d, 0x8d, 0x85, 0x3e, 0xa5, 0x29, 0x12, 0xc1, 0x99, 0x3a, 0x07, + 0xac, 0xdb, 0x0d, 0x5c, 0x49, 0x6f, 0x6d, 0xd6, 0x6a, 0xcb, 0x4a, 0x4e, 0xb0, 0x5c, 0xb5, 0x5d, + 0x92, 0x50, 0x4d, 0x3b, 0x08, 0x70, 0x8e, 0x25, 0x54, 0xd3, 0x16, 0xe1, 0x5d, 0x80, 0x09, 0x5d, + 0x67, 0x63, 0x36, 0x74, 0x95, 0x9f, 0xb1, 0xbc, 0xa2, 0xdc, 0x11, 0x2c, 0x5d, 0x5f, 0x61, 0x06, + 0x3c, 0xc7, 0x3d, 0x74, 0x19, 0x1e, 0x08, 0x83, 0x15, 0x05, 0x8e, 0xf7, 0x8c, 0xb2, 0x1b, 0xba, + 0x00, 0x13, 0xce, 0x41, 0x2f, 0x10, 0x75, 0xbc, 0xd1, 0x39, 0xe8, 0x86, 0x5d, 0x84, 0x49, 0x67, + 0xdf, 0xe9, 0xc5, 0x3d, 0x11, 0xc5, 0x21, 0x67, 0xdf, 0xe9, 0x06, 0x3e, 0x46, 0x0f, 0xdc, 0x2e, + 0xd6, 0x35, 0x1f, 0x37, 0x8a, 0x27, 0xa3, 0xe6, 0x11, 0x05, 0x9a, 0x05, 0x59, 0xd7, 0x55, 0x6c, + 0x69, 0xbb, 0x26, 0x56, 0x35, 0x17, 0x5b, 0x9a, 0x57, 0x3c, 0x1d, 0x35, 0x2e, 0xe8, 0x7a, 0x8d, + 0x6a, 0xab, 0x54, 0x89, 0x9e, 0x80, 0x71, 0x7b, 0xf7, 0x86, 0xce, 0x52, 0x52, 0x75, 0x5c, 0xbc, + 0x67, 0xbc, 0x54, 0x7c, 0x94, 0xc6, 0x77, 0x8c, 0x28, 0x68, 0x42, 0x6e, 0x52, 0x31, 0x7a, 0x1c, + 0x64, 0xdd, 0xdb, 0xd7, 0x5c, 0x87, 0xd6, 0x64, 0xcf, 0xd1, 0x74, 0x5c, 0x7c, 0x8c, 0x99, 0x32, + 0xf9, 0x86, 0x10, 0x93, 0x25, 0xe1, 0xdd, 0x36, 0xf6, 0x7c, 0xc1, 0x78, 0x8e, 0x2d, 0x09, 0x2a, + 0xe3, 0x6c, 0xd3, 0x20, 0x93, 0x50, 0x74, 0xbc, 0x78, 0x9a, 0x9a, 0x15, 0x9c, 0x7d, 0x27, 0xfa, + 0xde, 0x47, 0x60, 0x94, 0x58, 0x86, 0x2f, 0x7d, 0x9c, 0x6d, 0xc8, 0x9c, 0xfd, 0xc8, 0x1b, 0x3f, + 0xb2, 0xbd, 0x71, 0xb9, 0x02, 0xf9, 0x68, 0x7e, 0xa2, 0x2c, 0xb0, 0x0c, 0x95, 0x25, 0xb2, 0x59, + 0x59, 0xaa, 0x2f, 0x93, 0x6d, 0xc6, 0x8b, 0x35, 0x39, 0x41, 0xb6, 0x3b, 0x6b, 0xab, 0xdb, 0x35, + 0x55, 0xd9, 0xd9, 0xd8, 0x5e, 0x5d, 0xaf, 0xc9, 0xc9, 0xe8, 0xbe, 0xfa, 0xbb, 0x09, 0x28, 0x74, + 0x1e, 0x91, 0xd0, 0xff, 0x83, 0x93, 0xe2, 0x3e, 0xc3, 0xc3, 0xbe, 0x7a, 0xdb, 0x70, 0xe9, 0x92, + 0x69, 0x69, 0xac, 0x7d, 0x05, 0x93, 0x36, 0xc9, 0xad, 0xb6, 0xb0, 0xff, 0x9c, 0xe1, 0x92, 0x05, + 0xd1, 0xd2, 0x7c, 0xb4, 0x06, 0xa7, 0x2d, 0x5b, 0xf5, 0x7c, 0xcd, 0x6a, 0x68, 0x6e, 0x43, 0x0d, + 0x6f, 0x92, 0x54, 0x4d, 0xd7, 0xb1, 0xe7, 0xd9, 0xac, 0x55, 0x05, 0x2c, 0x0f, 0x59, 0xf6, 0x16, + 0x37, 0x0e, 0x6b, 0x78, 0x95, 0x9b, 0x76, 0x25, 0x58, 0xf2, 0xa8, 0x04, 0x7b, 0x10, 0xb2, 0x2d, + 0xcd, 0x51, 0xb1, 0xe5, 0xbb, 0x07, 0x74, 0x63, 0x9c, 0x51, 0x32, 0x2d, 0xcd, 0xa9, 0x91, 0xe7, + 0x8f, 0xe7, 0x7c, 0xf2, 0x8f, 0x49, 0xc8, 0x47, 0x37, 0xc7, 0xe4, 0xac, 0xa1, 0xd3, 0x3e, 0x22, + 0xd1, 0x4a, 0xf3, 0xc8, 0x7d, 0xb7, 0xd2, 0x33, 0x4b, 0xa4, 0xc1, 0x54, 0x86, 0xd9, 0x96, 0x55, + 0x61, 0x48, 0xd2, 0xdc, 0x49, 0x6d, 0xc1, 0x6c, 0x8b, 0x90, 0x51, 0xf8, 0x13, 0x5a, 0x81, 0xe1, + 0x1b, 0x1e, 0xe5, 0x1e, 0xa6, 0xdc, 0x8f, 0xde, 0x9f, 0xfb, 0xfa, 0x16, 0x25, 0xcf, 0x5e, 0xdf, + 0x52, 0x37, 0xea, 0xca, 0x7a, 0x75, 0x4d, 0xe1, 0x70, 0x74, 0x0a, 0x52, 0xa6, 0x76, 0xe7, 0xa0, + 0xb3, 0x15, 0x51, 0xd1, 0xa0, 0x81, 0x3f, 0x05, 0xa9, 0xdb, 0x58, 0xbb, 0xd9, 0xd9, 0x00, 0xa8, + 0xe8, 0x23, 0x4c, 0xfd, 0x59, 0x48, 0xd3, 0x78, 0x21, 0x00, 0x1e, 0x31, 0x79, 0x08, 0x65, 0x20, + 0xb5, 0x54, 0x57, 0x48, 0xfa, 0xcb, 0x90, 0x67, 0x52, 0x75, 0x73, 0xb5, 0xb6, 0x54, 0x93, 0x13, + 0xe5, 0x05, 0x18, 0x66, 0x41, 0x20, 0x4b, 0x23, 0x08, 0x83, 0x3c, 0xc4, 0x1f, 0x39, 0x87, 0x24, + 0xb4, 0x3b, 0xeb, 0x8b, 0x35, 0x45, 0x4e, 0x44, 0xa7, 0xd7, 0x83, 0x7c, 0x74, 0x5f, 0xfc, 0xf1, + 0xe4, 0xd4, 0x5f, 0x49, 0x90, 0x8b, 0xec, 0x73, 0xc9, 0x06, 0x45, 0x33, 0x4d, 0xfb, 0xb6, 0xaa, + 0x99, 0x86, 0xe6, 0xf1, 0xa4, 0x00, 0x2a, 0xaa, 0x12, 0xc9, 0xa0, 0x93, 0xf6, 0xb1, 0x38, 0xff, + 0x9a, 0x04, 0x72, 0xf7, 0x16, 0xb3, 0xcb, 0x41, 0xe9, 0xc7, 0xea, 0xe0, 0xab, 0x12, 0x14, 0x3a, + 0xf7, 0x95, 0x5d, 0xee, 0x9d, 0xfd, 0xb1, 0xba, 0xf7, 0x76, 0x02, 0x46, 0x3b, 0x76, 0x93, 0x83, + 0x7a, 0xf7, 0x79, 0x18, 0x37, 0x1a, 0xb8, 0xe5, 0xd8, 0x3e, 0xb6, 0xf4, 0x03, 0xd5, 0xc4, 0xb7, + 0xb0, 0x59, 0x2c, 0xd3, 0x42, 0x31, 0x7b, 0xff, 0xfd, 0xea, 0xcc, 0x6a, 0x88, 0x5b, 0x23, 0xb0, + 0xca, 0xc4, 0xea, 0x72, 0x6d, 0x7d, 0xb3, 0xbe, 0x5d, 0xdb, 0x58, 0x7a, 0x41, 0xdd, 0xd9, 0xf8, + 0x89, 0x8d, 0xfa, 0x73, 0x1b, 0x8a, 0x6c, 0x74, 0x99, 0x7d, 0x84, 0x4b, 0x7d, 0x13, 0xe4, 0x6e, + 0xa7, 0xd0, 0x49, 0xe8, 0xe7, 0x96, 0x3c, 0x84, 0x26, 0x60, 0x6c, 0xa3, 0xae, 0x6e, 0xad, 0x2e, + 0xd7, 0xd4, 0xda, 0xd5, 0xab, 0xb5, 0xa5, 0xed, 0x2d, 0x76, 0x03, 0x11, 0x58, 0x6f, 0x77, 0x2e, + 0xea, 0x57, 0x92, 0x30, 0xd1, 0xc7, 0x13, 0x54, 0xe5, 0x67, 0x07, 0x76, 0x9c, 0x79, 0x6a, 0x10, + 0xef, 0x67, 0x48, 0xcb, 0xdf, 0xd4, 0x5c, 0x9f, 0x1f, 0x35, 0x1e, 0x07, 0x12, 0x25, 0xcb, 0x37, + 0xf6, 0x0c, 0xec, 0xf2, 0x0b, 0x1b, 0x76, 0xa0, 0x18, 0x0b, 0xe5, 0xec, 0xce, 0xe6, 0x93, 0x80, + 0x1c, 0xdb, 0x33, 0x7c, 0xe3, 0x16, 0x56, 0x0d, 0x4b, 0xdc, 0xee, 0x90, 0x03, 0x46, 0x4a, 0x91, + 0x85, 0x66, 0xd5, 0xf2, 0x03, 0x6b, 0x0b, 0x37, 0xb5, 0x2e, 0x6b, 0x52, 0xc0, 0x93, 0x8a, 0x2c, + 0x34, 0x81, 0xf5, 0x59, 0xc8, 0x37, 0xec, 0x36, 0xd9, 0x75, 0x31, 0x3b, 0xd2, 0x2f, 0x24, 0x25, + 0xc7, 0x64, 0x81, 0x09, 0xdf, 0x4f, 0x87, 0xd7, 0x4a, 0x79, 0x25, 0xc7, 0x64, 0xcc, 0xe4, 0x1c, + 0x8c, 0x69, 0xcd, 0xa6, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x21, 0x14, 0x02, 0x31, 0x35, 0x9c, 0xba, + 0x0e, 0x19, 0x11, 0x07, 0xd2, 0x92, 0x49, 0x24, 0x54, 0x87, 0x1d, 0x7b, 0x13, 0xd3, 0x59, 0x25, + 0x63, 0x09, 0xe5, 0x59, 0xc8, 0x1b, 0x9e, 0x1a, 0xde, 0x92, 0x27, 0xce, 0x24, 0xa6, 0x33, 0x4a, + 0xce, 0xf0, 0x82, 0x1b, 0xc6, 0xf2, 0xeb, 0x09, 0x28, 0x74, 0xde, 0xf2, 0xa3, 0x65, 0xc8, 0x98, + 0xb6, 0xae, 0xd1, 0xd4, 0x62, 0x3f, 0x31, 0x4d, 0xc7, 0xfc, 0x30, 0x30, 0xb3, 0xc6, 0xed, 0x95, + 0x00, 0x39, 0xf5, 0x77, 0x12, 0x64, 0x84, 0x18, 0x9d, 0x80, 0x94, 0xa3, 0xf9, 0xfb, 0x94, 0x2e, + 0xbd, 0x98, 0x90, 0x25, 0x85, 0x3e, 0x13, 0xb9, 0xe7, 0x68, 0x16, 0x4d, 0x01, 0x2e, 0x27, 0xcf, + 0x64, 0x5e, 0x4d, 0xac, 0x35, 0xe8, 0xf1, 0xc3, 0x6e, 0xb5, 0xb0, 0xe5, 0x7b, 0x62, 0x5e, 0xb9, + 0x7c, 0x89, 0x8b, 0xd1, 0x93, 0x30, 0xee, 0xbb, 0x9a, 0x61, 0x76, 0xd8, 0xa6, 0xa8, 0xad, 0x2c, + 0x14, 0x81, 0x71, 0x05, 0x4e, 0x09, 0xde, 0x06, 0xf6, 0x35, 0x7d, 0x1f, 0x37, 0x42, 0xd0, 0x30, + 0xbd, 0x66, 0x38, 0xc9, 0x0d, 0x96, 0xb9, 0x5e, 0x60, 0xcb, 0xdf, 0x93, 0x60, 0x5c, 0x1c, 0x98, + 0x1a, 0x41, 0xb0, 0xd6, 0x01, 0x34, 0xcb, 0xb2, 0xfd, 0x68, 0xb8, 0x7a, 0x53, 0xb9, 0x07, 0x37, + 0x53, 0x0d, 0x40, 0x4a, 0x84, 0x60, 0xaa, 0x05, 0x10, 0x6a, 0x8e, 0x0c, 0xdb, 0x69, 0xc8, 0xf1, + 0x9f, 0x70, 0xe8, 0xef, 0x80, 0xec, 0x88, 0x0d, 0x4c, 0x44, 0x4e, 0x56, 0x68, 0x12, 0xd2, 0xbb, + 0xb8, 0x69, 0x58, 0xfc, 0x62, 0x96, 0x3d, 0x88, 0x8b, 0x90, 0x54, 0x70, 0x11, 0xb2, 0xf8, 0x39, + 0x98, 0xd0, 0xed, 0x56, 0xb7, 0xbb, 0x8b, 0x72, 0xd7, 0x31, 0xdf, 0xbb, 0x26, 0xbd, 0x08, 0xe1, + 0x16, 0xf3, 0x03, 0x49, 0xfa, 0x9d, 0x44, 0x72, 0x65, 0x73, 0xf1, 0xeb, 0x89, 0xa9, 0x15, 0x06, + 0xdd, 0x14, 0x23, 0x55, 0xf0, 0x9e, 0x89, 0x75, 0xe2, 0x3d, 0x7c, 0xe9, 0x1c, 0x3c, 0xd5, 0x34, + 0xfc, 0xfd, 0xf6, 0xee, 0x8c, 0x6e, 0xb7, 0x66, 0x9b, 0x76, 0xd3, 0x0e, 0x7f, 0xfa, 0x24, 0x4f, + 0xf4, 0x81, 0xfe, 0xc7, 0x7f, 0xfe, 0xcc, 0x06, 0xd2, 0xa9, 0xd8, 0xdf, 0x4a, 0x2b, 0x1b, 0x30, + 0xc1, 0x8d, 0x55, 0xfa, 0xfb, 0x0b, 0x3b, 0x45, 0xa0, 0xfb, 0xde, 0x61, 0x15, 0xbf, 0xf9, 0x0e, + 0x6d, 0xd7, 0xca, 0x38, 0x87, 0x12, 0x1d, 0x3b, 0x68, 0x54, 0x14, 0x78, 0xa0, 0x83, 0x8f, 0x2d, + 0x4d, 0xec, 0xc6, 0x30, 0x7e, 0x97, 0x33, 0x4e, 0x44, 0x18, 0xb7, 0x38, 0xb4, 0xb2, 0x04, 0xa3, + 0xc7, 0xe1, 0xfa, 0x1b, 0xce, 0x95, 0xc7, 0x51, 0x92, 0x15, 0x18, 0xa3, 0x24, 0x7a, 0xdb, 0xf3, + 0xed, 0x16, 0xad, 0x7b, 0xf7, 0xa7, 0xf9, 0xdb, 0x77, 0xd8, 0x5a, 0x29, 0x10, 0xd8, 0x52, 0x80, + 0xaa, 0x54, 0x80, 0xfe, 0xe4, 0xd4, 0xc0, 0xba, 0x19, 0xc3, 0xf0, 0x06, 0x77, 0x24, 0xb0, 0xaf, + 0x7c, 0x16, 0x26, 0xc9, 0xff, 0xb4, 0x2c, 0x45, 0x3d, 0x89, 0xbf, 0xf0, 0x2a, 0x7e, 0xef, 0x65, + 0xb6, 0x1c, 0x27, 0x02, 0x82, 0x88, 0x4f, 0x91, 0x59, 0x6c, 0x62, 0xdf, 0xc7, 0xae, 0xa7, 0x6a, + 0x66, 0x3f, 0xf7, 0x22, 0x37, 0x06, 0xc5, 0xaf, 0xbc, 0xdb, 0x39, 0x8b, 0x2b, 0x0c, 0x59, 0x35, + 0xcd, 0xca, 0x0e, 0x9c, 0xec, 0x93, 0x15, 0x03, 0x70, 0xbe, 0xc2, 0x39, 0x27, 0x7b, 0x32, 0x83, + 0xd0, 0x6e, 0x82, 0x90, 0x07, 0x73, 0x39, 0x00, 0xe7, 0x6f, 0x70, 0x4e, 0xc4, 0xb1, 0x62, 0x4a, + 0x09, 0xe3, 0x75, 0x18, 0xbf, 0x85, 0xdd, 0x5d, 0xdb, 0xe3, 0xb7, 0x34, 0x03, 0xd0, 0xbd, 0xca, + 0xe9, 0xc6, 0x38, 0x90, 0x5e, 0xdb, 0x10, 0xae, 0xcb, 0x90, 0xd9, 0xd3, 0x74, 0x3c, 0x00, 0xc5, + 0x57, 0x39, 0xc5, 0x08, 0xb1, 0x27, 0xd0, 0x2a, 0xe4, 0x9b, 0x36, 0xef, 0x4c, 0xf1, 0xf0, 0xd7, + 0x38, 0x3c, 0x27, 0x30, 0x9c, 0xc2, 0xb1, 0x9d, 0xb6, 0x49, 0xda, 0x56, 0x3c, 0xc5, 0x6f, 0x0a, + 0x0a, 0x81, 0xe1, 0x14, 0xc7, 0x08, 0xeb, 0x6f, 0x09, 0x0a, 0x2f, 0x12, 0xcf, 0x67, 0x21, 0x67, + 0x5b, 0xe6, 0x81, 0x6d, 0x0d, 0xe2, 0xc4, 0x6f, 0x73, 0x06, 0xe0, 0x10, 0x42, 0x70, 0x05, 0xb2, + 0x83, 0x4e, 0xc4, 0xef, 0xbe, 0x2b, 0x96, 0x87, 0x98, 0x81, 0x15, 0x18, 0x13, 0x05, 0xca, 0xb0, + 0xad, 0x01, 0x28, 0x7e, 0x8f, 0x53, 0x14, 0x22, 0x30, 0x3e, 0x0c, 0x1f, 0x7b, 0x7e, 0x13, 0x0f, + 0x42, 0xf2, 0xba, 0x18, 0x06, 0x87, 0xf0, 0x50, 0xee, 0x62, 0x4b, 0xdf, 0x1f, 0x8c, 0xe1, 0x6b, + 0x22, 0x94, 0x02, 0x43, 0x28, 0x96, 0x60, 0xb4, 0xa5, 0xb9, 0xde, 0xbe, 0x66, 0x0e, 0x34, 0x1d, + 0xbf, 0xcf, 0x39, 0xf2, 0x01, 0x88, 0x47, 0xa4, 0x6d, 0x1d, 0x87, 0xe6, 0xeb, 0x22, 0x22, 0x11, + 0x18, 0x5f, 0x7a, 0x9e, 0x4f, 0xaf, 0xb4, 0x8e, 0xc3, 0xf6, 0x07, 0x62, 0xe9, 0x31, 0xec, 0x7a, + 0x94, 0xf1, 0x0a, 0x64, 0x3d, 0xe3, 0xce, 0x40, 0x34, 0x7f, 0x28, 0x66, 0x9a, 0x02, 0x08, 0xf8, + 0x05, 0x38, 0xd5, 0xb7, 0x4d, 0x0c, 0x40, 0xf6, 0x47, 0x9c, 0xec, 0x44, 0x9f, 0x56, 0xc1, 0x4b, + 0xc2, 0x71, 0x29, 0xff, 0x58, 0x94, 0x04, 0xdc, 0xc5, 0xb5, 0x49, 0xce, 0x0a, 0x9e, 0xb6, 0x77, + 0xbc, 0xa8, 0xfd, 0x89, 0x88, 0x1a, 0xc3, 0x76, 0x44, 0x6d, 0x1b, 0x4e, 0x70, 0xc6, 0xe3, 0xcd, + 0xeb, 0x37, 0x44, 0x61, 0x65, 0xe8, 0x9d, 0xce, 0xd9, 0xfd, 0x1c, 0x4c, 0x05, 0xe1, 0x14, 0x9b, + 0x52, 0x4f, 0x6d, 0x69, 0xce, 0x00, 0xcc, 0xdf, 0xe4, 0xcc, 0xa2, 0xe2, 0x07, 0xbb, 0x5a, 0x6f, + 0x5d, 0x73, 0x08, 0xf9, 0xf3, 0x50, 0x14, 0xe4, 0x6d, 0xcb, 0xc5, 0xba, 0xdd, 0xb4, 0x8c, 0x3b, + 0xb8, 0x31, 0x00, 0xf5, 0x9f, 0x76, 0x4d, 0xd5, 0x4e, 0x04, 0x4e, 0x98, 0x57, 0x41, 0x0e, 0xf6, + 0x2a, 0xaa, 0xd1, 0x72, 0x6c, 0xd7, 0x8f, 0x61, 0xfc, 0x96, 0x98, 0xa9, 0x00, 0xb7, 0x4a, 0x61, + 0x95, 0x1a, 0x14, 0xe8, 0xe3, 0xa0, 0x29, 0xf9, 0x67, 0x9c, 0x68, 0x34, 0x44, 0xf1, 0xc2, 0xa1, + 0xdb, 0x2d, 0x47, 0x73, 0x07, 0xa9, 0x7f, 0x7f, 0x2e, 0x0a, 0x07, 0x87, 0xf0, 0xc2, 0xe1, 0x1f, + 0x38, 0x98, 0x74, 0xfb, 0x01, 0x18, 0xbe, 0x2d, 0x0a, 0x87, 0xc0, 0x70, 0x0a, 0xb1, 0x61, 0x18, + 0x80, 0xe2, 0x2f, 0x04, 0x85, 0xc0, 0x10, 0x8a, 0xcf, 0x84, 0x8d, 0xd6, 0xc5, 0x4d, 0xc3, 0xf3, + 0x5d, 0xb6, 0x15, 0xbe, 0x3f, 0xd5, 0x77, 0xde, 0xed, 0xdc, 0x84, 0x29, 0x11, 0x68, 0xe5, 0x3a, + 0x8c, 0x75, 0x6d, 0x31, 0x50, 0xdc, 0xf7, 0x2b, 0xc5, 0x9f, 0x7e, 0x9f, 0x17, 0xa3, 0xce, 0x1d, + 0x46, 0x65, 0x8d, 0xcc, 0x7b, 0xe7, 0x3e, 0x20, 0x9e, 0xec, 0xe5, 0xf7, 0x83, 0xa9, 0xef, 0xd8, + 0x06, 0x54, 0xae, 0xc2, 0x68, 0xc7, 0x1e, 0x20, 0x9e, 0xea, 0x67, 0x38, 0x55, 0x3e, 0xba, 0x05, + 0xa8, 0x2c, 0x40, 0x8a, 0xf4, 0xf3, 0x78, 0xf8, 0xcf, 0x72, 0x38, 0x35, 0xaf, 0x7c, 0x0a, 0x32, + 0xa2, 0x8f, 0xc7, 0x43, 0x7f, 0x8e, 0x43, 0x03, 0x08, 0x81, 0x8b, 0x1e, 0x1e, 0x0f, 0xff, 0x79, + 0x01, 0x17, 0x10, 0x02, 0x1f, 0x3c, 0x84, 0x7f, 0xfd, 0x0b, 0x29, 0x5e, 0x87, 0x45, 0xec, 0xae, + 0xc0, 0x08, 0x6f, 0xde, 0xf1, 0xe8, 0x2f, 0xf0, 0x97, 0x0b, 0x44, 0xe5, 0x22, 0xa4, 0x07, 0x0c, + 0xf8, 0x2f, 0x72, 0x28, 0xb3, 0xaf, 0x2c, 0x41, 0x2e, 0xd2, 0xb0, 0xe3, 0xe1, 0xbf, 0xc4, 0xe1, + 0x51, 0x14, 0x71, 0x9d, 0x37, 0xec, 0x78, 0x82, 0x5f, 0x16, 0xae, 0x73, 0x04, 0x09, 0x9b, 0xe8, + 0xd5, 0xf1, 0xe8, 0x5f, 0x11, 0x51, 0x17, 0x90, 0xca, 0xb3, 0x90, 0x0d, 0xea, 0x6f, 0x3c, 0xfe, + 0x57, 0x39, 0x3e, 0xc4, 0x90, 0x08, 0x44, 0xea, 0x7f, 0x3c, 0xc5, 0x17, 0x45, 0x04, 0x22, 0x28, + 0xb2, 0x8c, 0xba, 0x7b, 0x7a, 0x3c, 0xd3, 0xaf, 0x89, 0x65, 0xd4, 0xd5, 0xd2, 0xc9, 0x6c, 0xd2, + 0x32, 0x18, 0x4f, 0xf1, 0xeb, 0x62, 0x36, 0xa9, 0x3d, 0x71, 0xa3, 0xbb, 0x49, 0xc6, 0x73, 0x7c, + 0x49, 0xb8, 0xd1, 0xd5, 0x23, 0x2b, 0x9b, 0x80, 0x7a, 0x1b, 0x64, 0x3c, 0xdf, 0x97, 0x39, 0xdf, + 0x78, 0x4f, 0x7f, 0xac, 0x3c, 0x07, 0x27, 0xfa, 0x37, 0xc7, 0x78, 0xd6, 0xaf, 0xbc, 0xdf, 0x75, + 0x9c, 0x89, 0xf6, 0xc6, 0xca, 0x76, 0x58, 0x65, 0xa3, 0x8d, 0x31, 0x9e, 0xf6, 0x95, 0xf7, 0x3b, + 0x0b, 0x6d, 0xb4, 0x2f, 0x56, 0xaa, 0x00, 0x61, 0x4f, 0x8a, 0xe7, 0x7a, 0x95, 0x73, 0x45, 0x40, + 0x64, 0x69, 0xf0, 0x96, 0x14, 0x8f, 0xff, 0xaa, 0x58, 0x1a, 0x1c, 0x41, 0x96, 0x86, 0xe8, 0x46, + 0xf1, 0xe8, 0xd7, 0xc4, 0xd2, 0x10, 0x90, 0xca, 0x15, 0xc8, 0x58, 0x6d, 0xd3, 0x24, 0xb9, 0x85, + 0xee, 0xff, 0x49, 0x56, 0xf1, 0x9f, 0x3f, 0xe4, 0x60, 0x01, 0xa8, 0x2c, 0x40, 0x1a, 0xb7, 0x76, + 0x71, 0x23, 0x0e, 0xf9, 0x2f, 0x1f, 0x8a, 0x7a, 0x42, 0xac, 0x2b, 0xcf, 0x02, 0xb0, 0xc3, 0x34, + 0xfd, 0xa1, 0x28, 0x06, 0xfb, 0xaf, 0x1f, 0xf2, 0x8f, 0x25, 0x42, 0x48, 0x48, 0xc0, 0x3e, 0xbd, + 0xb8, 0x3f, 0xc1, 0xbb, 0x9d, 0x04, 0xf4, 0x00, 0x7e, 0x19, 0x46, 0x6e, 0x78, 0xb6, 0xe5, 0x6b, + 0xcd, 0x38, 0xf4, 0xbf, 0x71, 0xb4, 0xb0, 0x27, 0x01, 0x6b, 0xd9, 0x2e, 0xf6, 0xb5, 0xa6, 0x17, + 0x87, 0xfd, 0x77, 0x8e, 0x0d, 0x00, 0x04, 0xac, 0x6b, 0x9e, 0x3f, 0xc8, 0xb8, 0x7f, 0x28, 0xc0, + 0x02, 0x40, 0x9c, 0x26, 0xff, 0xdf, 0xc4, 0x07, 0x71, 0xd8, 0xf7, 0x84, 0xd3, 0xdc, 0xbe, 0xf2, + 0x29, 0xc8, 0x92, 0x7f, 0xd9, 0x17, 0x50, 0x31, 0xe0, 0xff, 0xe0, 0xe0, 0x10, 0x41, 0xde, 0xec, + 0xf9, 0x0d, 0xdf, 0x88, 0x0f, 0xf6, 0x7f, 0xf2, 0x99, 0x16, 0xf6, 0x95, 0x2a, 0xe4, 0x3c, 0xbf, + 0xd1, 0x68, 0xf3, 0x1d, 0x4d, 0x0c, 0xfc, 0xbf, 0x3e, 0x0c, 0x0e, 0xb9, 0x01, 0x66, 0xb1, 0xd6, + 0xff, 0xbe, 0x0e, 0x56, 0xec, 0x15, 0x9b, 0xdd, 0xd4, 0xbd, 0x58, 0x8e, 0xbf, 0x72, 0x83, 0xff, + 0xc9, 0xc0, 0x43, 0xba, 0xdd, 0xda, 0xb5, 0xbd, 0xd9, 0x48, 0xa9, 0x9a, 0xb5, 0x2d, 0xce, 0x89, + 0x92, 0xb6, 0x85, 0xa7, 0x8e, 0x77, 0x79, 0x57, 0x3e, 0x05, 0xe9, 0xad, 0xf6, 0xee, 0xee, 0x01, + 0x92, 0x21, 0xe9, 0xb5, 0x77, 0xf9, 0x87, 0x30, 0xe4, 0xdf, 0xf2, 0x5b, 0x49, 0x18, 0xad, 0x9a, + 0xe6, 0xf6, 0x81, 0x83, 0xbd, 0xba, 0x85, 0xeb, 0x7b, 0xa8, 0x08, 0xc3, 0x74, 0xb4, 0xcf, 0x50, + 0x33, 0xe9, 0xda, 0x90, 0xc2, 0x9f, 0x03, 0xcd, 0x1c, 0xbd, 0xd6, 0x4c, 0x04, 0x9a, 0xb9, 0x40, + 0x73, 0x9e, 0xdd, 0x6a, 0x06, 0x9a, 0xf3, 0x81, 0x66, 0x9e, 0xde, 0x6d, 0x26, 0x03, 0xcd, 0x7c, + 0xa0, 0x59, 0xa0, 0x77, 0xf7, 0xa3, 0x81, 0x66, 0x21, 0xd0, 0x5c, 0xa0, 0xb7, 0xf5, 0xa9, 0x40, + 0x73, 0x21, 0xd0, 0x5c, 0xa4, 0x97, 0xf4, 0xe3, 0x81, 0xe6, 0x62, 0xa0, 0xb9, 0x44, 0x2f, 0xe6, + 0x51, 0xa0, 0xb9, 0x14, 0x68, 0x2e, 0xd3, 0x2f, 0x5e, 0x46, 0x02, 0xcd, 0x65, 0x34, 0x05, 0x23, + 0x6c, 0x64, 0x4f, 0xd3, 0x5f, 0x6f, 0xc7, 0xae, 0x0d, 0x29, 0x42, 0x10, 0xea, 0x9e, 0xa1, 0x5f, + 0xb5, 0x0c, 0x87, 0xba, 0x67, 0x42, 0xdd, 0x1c, 0xfd, 0xb8, 0x5e, 0x0e, 0x75, 0x73, 0xa1, 0xee, + 0x7c, 0x71, 0x94, 0x24, 0x49, 0xa8, 0x3b, 0x1f, 0xea, 0xe6, 0x8b, 0x05, 0x32, 0x03, 0xa1, 0x6e, + 0x3e, 0xd4, 0x2d, 0x14, 0xc7, 0xce, 0x48, 0xd3, 0xf9, 0x50, 0xb7, 0x80, 0x9e, 0x82, 0x9c, 0xd7, + 0xde, 0x55, 0xf9, 0xc7, 0x06, 0xf4, 0xeb, 0x99, 0xdc, 0x1c, 0xcc, 0x90, 0x9c, 0xa0, 0xd3, 0x7a, + 0x6d, 0x48, 0x01, 0xaf, 0xbd, 0xcb, 0xab, 0xe8, 0x62, 0x1e, 0xe8, 0xa5, 0x83, 0x4a, 0x3f, 0x7a, + 0x2d, 0xbf, 0x29, 0x41, 0x76, 0xfb, 0xb6, 0x4d, 0x7f, 0xbb, 0xf5, 0xfe, 0x8f, 0x27, 0x57, 0x38, + 0x7d, 0x7e, 0x9e, 0xfe, 0xbc, 0x96, 0xbd, 0x26, 0x29, 0x42, 0x10, 0xea, 0x16, 0x8a, 0x8f, 0xd0, + 0x01, 0x05, 0xba, 0x05, 0x34, 0x0b, 0xf9, 0xc8, 0x80, 0xe6, 0xe8, 0x77, 0x2d, 0x9d, 0x23, 0x92, + 0x94, 0x5c, 0x38, 0xa2, 0xb9, 0xc5, 0x34, 0x90, 0xb4, 0x27, 0x7f, 0xfc, 0xdb, 0x76, 0xf9, 0x8b, + 0x09, 0xc8, 0xb1, 0x7b, 0x4a, 0x3a, 0x2a, 0xf2, 0x2a, 0xb6, 0x6f, 0x3f, 0xe0, 0x6e, 0x0c, 0x29, + 0x42, 0x80, 0x14, 0x00, 0x66, 0x4a, 0x32, 0x9c, 0x79, 0xb2, 0xf8, 0xf4, 0x3f, 0xbc, 0x75, 0xfa, + 0x93, 0x47, 0xae, 0x20, 0x12, 0xbb, 0x59, 0x56, 0x85, 0x67, 0x76, 0x0c, 0xcb, 0x7f, 0x66, 0xee, + 0x12, 0x09, 0x70, 0xc8, 0x82, 0x76, 0x20, 0xb3, 0xa4, 0x79, 0xf4, 0x8b, 0x38, 0xea, 0x7a, 0x6a, + 0xf1, 0xe2, 0x7f, 0xbf, 0x75, 0xfa, 0x7c, 0x0c, 0x23, 0x2f, 0x90, 0x33, 0xeb, 0x07, 0x84, 0xf5, + 0xc2, 0x3c, 0x81, 0x5f, 0x1b, 0x52, 0x02, 0x2a, 0x34, 0x27, 0x5c, 0xdd, 0xd0, 0x5a, 0xec, 0x03, + 0x9e, 0xe4, 0xa2, 0x7c, 0xf8, 0xd6, 0xe9, 0xfc, 0xfa, 0x41, 0x28, 0x0f, 0x5d, 0x21, 0x4f, 0x8b, + 0x19, 0x18, 0x66, 0xae, 0x2e, 0x2e, 0xbf, 0x71, 0xaf, 0x34, 0xf4, 0xe6, 0xbd, 0xd2, 0xd0, 0xdf, + 0xdf, 0x2b, 0x0d, 0xbd, 0x7d, 0xaf, 0x24, 0xbd, 0x77, 0xaf, 0x24, 0x7d, 0x70, 0xaf, 0x24, 0xdd, + 0x3d, 0x2c, 0x49, 0x5f, 0x3b, 0x2c, 0x49, 0xdf, 0x38, 0x2c, 0x49, 0xdf, 0x39, 0x2c, 0x49, 0x6f, + 0x1c, 0x96, 0x86, 0xde, 0x3c, 0x2c, 0x49, 0x6f, 0x1f, 0x96, 0xa4, 0x1f, 0x1c, 0x96, 0x86, 0xde, + 0x3b, 0x2c, 0x49, 0x1f, 0x1c, 0x96, 0x86, 0xee, 0x7e, 0xbf, 0x34, 0xf4, 0xbf, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x32, 0x01, 0xeb, 0xca, 0x0b, 0x35, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -4442,15 +4448,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -4460,11 +4459,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -4596,11 +4592,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field9{v} case 10: if wireType != 5 { @@ -4610,11 +4603,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.TestOneof = &AllTypesOneOf_Field10{v} case 11: if wireType != 1 { @@ -4624,15 +4614,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field11{v} case 12: if wireType != 1 { @@ -4642,15 +4625,8 @@ func (m *AllTypesOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.TestOneof = &AllTypesOneOf_Field12{v} case 13: if wireType != 0 { @@ -4823,15 +4799,8 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.One = &TwoOneofs_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -4841,11 +4810,8 @@ func (m *TwoOneofs) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.One = &TwoOneofs_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/onepb_test.go index f1181cea8..fa343d463 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof/combos/unmarshaler/onepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -17,13 +16,12 @@ It has these top-level messages: package one import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -34,14 +32,14 @@ var _ = math.Inf func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -62,20 +60,20 @@ func TestSubbyProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllTypesOneOfProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -96,20 +94,20 @@ func TestAllTypesOneOfProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestTwoOneofsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -130,20 +128,20 @@ func TestTwoOneofsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCustomOneofProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -164,21 +162,21 @@ func TestCustomOneofProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSubbyJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -191,15 +189,15 @@ func TestSubbyJSON(t *testing.T) { } func TestAllTypesOneOfJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllTypesOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -212,15 +210,15 @@ func TestAllTypesOneOfJSON(t *testing.T) { } func TestTwoOneofsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &TwoOneofs{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -233,15 +231,15 @@ func TestTwoOneofsJSON(t *testing.T) { } func TestCustomOneofJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomOneof{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -254,11 +252,11 @@ func TestCustomOneofJSON(t *testing.T) { } func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -271,11 +269,11 @@ func TestSubbyProtoText(t *testing.T) { func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -288,11 +286,11 @@ func TestSubbyProtoCompactText(t *testing.T) { func TestAllTypesOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -305,11 +303,11 @@ func TestAllTypesOneOfProtoText(t *testing.T) { func TestAllTypesOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -322,11 +320,11 @@ func TestAllTypesOneOfProtoCompactText(t *testing.T) { func TestTwoOneofsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -339,11 +337,11 @@ func TestTwoOneofsProtoText(t *testing.T) { func TestTwoOneofsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -356,11 +354,11 @@ func TestTwoOneofsProtoCompactText(t *testing.T) { func TestCustomOneofProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -373,11 +371,11 @@ func TestCustomOneofProtoText(t *testing.T) { func TestCustomOneofProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -392,14 +390,14 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -407,14 +405,14 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestAllTypesOneOfVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -422,14 +420,14 @@ func TestAllTypesOneOfVerboseEqual(t *testing.T) { } } func TestTwoOneofsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -437,14 +435,14 @@ func TestTwoOneofsVerboseEqual(t *testing.T) { } } func TestCustomOneofVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -452,63 +450,63 @@ func TestCustomOneofVerboseEqual(t *testing.T) { } } func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllTypesOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTwoOneofsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomOneofGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSubbySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -519,7 +517,7 @@ func TestSubbySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -527,10 +525,10 @@ func TestSubbySize(t *testing.T) { func TestAllTypesOneOfSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllTypesOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -541,7 +539,7 @@ func TestAllTypesOneOfSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -549,10 +547,10 @@ func TestAllTypesOneOfSize(t *testing.T) { func TestTwoOneofsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTwoOneofs(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -563,7 +561,7 @@ func TestTwoOneofsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -571,10 +569,10 @@ func TestTwoOneofsSize(t *testing.T) { func TestCustomOneofSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomOneof(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -585,14 +583,14 @@ func TestCustomOneofSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -601,7 +599,7 @@ func TestSubbyStringer(t *testing.T) { } } func TestAllTypesOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllTypesOneOf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -610,7 +608,7 @@ func TestAllTypesOneOfStringer(t *testing.T) { } } func TestTwoOneofsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTwoOneofs(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -619,7 +617,7 @@ func TestTwoOneofsStringer(t *testing.T) { } } func TestCustomOneofStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomOneof(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.pb.go deleted file mode 100644 index ab5afc6a2..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.pb.go +++ /dev/null @@ -1,5633 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/one.proto -// DO NOT EDIT! - -/* - Package one is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeboth/one.proto - - It has these top-level messages: - Subby - AllTypesOneOf - TwoOneofs - CustomOneof -*/ -package one - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" - -import unsafe "unsafe" - -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 - -type Subby struct { - Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Subby) Reset() { *m = Subby{} } -func (*Subby) ProtoMessage() {} -func (*Subby) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{0} } - -type AllTypesOneOf struct { - // Types that are valid to be assigned to TestOneof: - // *AllTypesOneOf_Field1 - // *AllTypesOneOf_Field2 - // *AllTypesOneOf_Field3 - // *AllTypesOneOf_Field4 - // *AllTypesOneOf_Field5 - // *AllTypesOneOf_Field6 - // *AllTypesOneOf_Field7 - // *AllTypesOneOf_Field8 - // *AllTypesOneOf_Field9 - // *AllTypesOneOf_Field10 - // *AllTypesOneOf_Field11 - // *AllTypesOneOf_Field12 - // *AllTypesOneOf_Field13 - // *AllTypesOneOf_Field14 - // *AllTypesOneOf_Field15 - // *AllTypesOneOf_SubMessage - TestOneof isAllTypesOneOf_TestOneof `protobuf_oneof:"test_oneof"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AllTypesOneOf) Reset() { *m = AllTypesOneOf{} } -func (*AllTypesOneOf) ProtoMessage() {} -func (*AllTypesOneOf) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{1} } - -type isAllTypesOneOf_TestOneof interface { - isAllTypesOneOf_TestOneof() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` -} -type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` -} -type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` -} -type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` -} -type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` -} -type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` -} -type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` -} -type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` -} -type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` -} -type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` -} -type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` -} -type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` -} -type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` -} -type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` -} -type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` -} -type AllTypesOneOf_SubMessage struct { - SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` -} - -func (*AllTypesOneOf_Field1) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field2) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field3) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field4) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field5) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field6) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field7) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field8) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field9) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field10) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field11) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field12) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field13) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field14) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field15) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_SubMessage) isAllTypesOneOf_TestOneof() {} - -func (m *AllTypesOneOf) GetTestOneof() isAllTypesOneOf_TestOneof { - if m != nil { - return m.TestOneof - } - return nil -} - -func (m *AllTypesOneOf) GetField1() float64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field1); ok { - return x.Field1 - } - return 0 -} - -func (m *AllTypesOneOf) GetField2() float32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field2); ok { - return x.Field2 - } - return 0 -} - -func (m *AllTypesOneOf) GetField3() int32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field3); ok { - return x.Field3 - } - return 0 -} - -func (m *AllTypesOneOf) GetField4() int64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field4); ok { - return x.Field4 - } - return 0 -} - -func (m *AllTypesOneOf) GetField5() uint32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field5); ok { - return x.Field5 - } - return 0 -} - -func (m *AllTypesOneOf) GetField6() uint64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field6); ok { - return x.Field6 - } - return 0 -} - -func (m *AllTypesOneOf) GetField7() int32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field7); ok { - return x.Field7 - } - return 0 -} - -func (m *AllTypesOneOf) GetField8() int64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field8); ok { - return x.Field8 - } - return 0 -} - -func (m *AllTypesOneOf) GetField9() uint32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field9); ok { - return x.Field9 - } - return 0 -} - -func (m *AllTypesOneOf) GetField10() int32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field10); ok { - return x.Field10 - } - return 0 -} - -func (m *AllTypesOneOf) GetField11() uint64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field11); ok { - return x.Field11 - } - return 0 -} - -func (m *AllTypesOneOf) GetField12() int64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field12); ok { - return x.Field12 - } - return 0 -} - -func (m *AllTypesOneOf) GetField13() bool { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field13); ok { - return x.Field13 - } - return false -} - -func (m *AllTypesOneOf) GetField14() string { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field14); ok { - return x.Field14 - } - return "" -} - -func (m *AllTypesOneOf) GetField15() []byte { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field15); ok { - return x.Field15 - } - return nil -} - -func (m *AllTypesOneOf) GetSubMessage() *Subby { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_SubMessage); ok { - return x.SubMessage - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*AllTypesOneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _AllTypesOneOf_OneofMarshaler, _AllTypesOneOf_OneofUnmarshaler, _AllTypesOneOf_OneofSizer, []interface{}{ - (*AllTypesOneOf_Field1)(nil), - (*AllTypesOneOf_Field2)(nil), - (*AllTypesOneOf_Field3)(nil), - (*AllTypesOneOf_Field4)(nil), - (*AllTypesOneOf_Field5)(nil), - (*AllTypesOneOf_Field6)(nil), - (*AllTypesOneOf_Field7)(nil), - (*AllTypesOneOf_Field8)(nil), - (*AllTypesOneOf_Field9)(nil), - (*AllTypesOneOf_Field10)(nil), - (*AllTypesOneOf_Field11)(nil), - (*AllTypesOneOf_Field12)(nil), - (*AllTypesOneOf_Field13)(nil), - (*AllTypesOneOf_Field14)(nil), - (*AllTypesOneOf_Field15)(nil), - (*AllTypesOneOf_SubMessage)(nil), - } -} - -func _AllTypesOneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*AllTypesOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *AllTypesOneOf_Field1: - _ = b.EncodeVarint(1<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.Field1)) - case *AllTypesOneOf_Field2: - _ = b.EncodeVarint(2<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2))) - case *AllTypesOneOf_Field3: - _ = b.EncodeVarint(3<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field3)) - case *AllTypesOneOf_Field4: - _ = b.EncodeVarint(4<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field4)) - case *AllTypesOneOf_Field5: - _ = b.EncodeVarint(5<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field5)) - case *AllTypesOneOf_Field6: - _ = b.EncodeVarint(6<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field6)) - case *AllTypesOneOf_Field7: - _ = b.EncodeVarint(7<<3 | proto.WireVarint) - _ = b.EncodeZigzag32(uint64(x.Field7)) - case *AllTypesOneOf_Field8: - _ = b.EncodeVarint(8<<3 | proto.WireVarint) - _ = b.EncodeZigzag64(uint64(x.Field8)) - case *AllTypesOneOf_Field9: - _ = b.EncodeVarint(9<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field9)) - case *AllTypesOneOf_Field10: - _ = b.EncodeVarint(10<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field10)) - case *AllTypesOneOf_Field11: - _ = b.EncodeVarint(11<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field11)) - case *AllTypesOneOf_Field12: - _ = b.EncodeVarint(12<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field12)) - case *AllTypesOneOf_Field13: - t := uint64(0) - if x.Field13 { - t = 1 - } - _ = b.EncodeVarint(13<<3 | proto.WireVarint) - _ = b.EncodeVarint(t) - case *AllTypesOneOf_Field14: - _ = b.EncodeVarint(14<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Field14) - case *AllTypesOneOf_Field15: - _ = b.EncodeVarint(15<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Field15) - case *AllTypesOneOf_SubMessage: - _ = b.EncodeVarint(16<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.SubMessage); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("AllTypesOneOf.TestOneof has unexpected type %T", x) - } - return nil -} - -func _AllTypesOneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*AllTypesOneOf) - switch tag { - case 1: // test_oneof.Field1 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &AllTypesOneOf_Field1{math.Float64frombits(x)} - return true, err - case 2: // test_oneof.Field2 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &AllTypesOneOf_Field2{math.Float32frombits(uint32(x))} - return true, err - case 3: // test_oneof.Field3 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field3{int32(x)} - return true, err - case 4: // test_oneof.Field4 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field4{int64(x)} - return true, err - case 5: // test_oneof.Field5 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field5{uint32(x)} - return true, err - case 6: // test_oneof.Field6 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field6{x} - return true, err - case 7: // test_oneof.Field7 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag32() - m.TestOneof = &AllTypesOneOf_Field7{int32(x)} - return true, err - case 8: // test_oneof.Field8 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag64() - m.TestOneof = &AllTypesOneOf_Field8{int64(x)} - return true, err - case 9: // test_oneof.Field9 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &AllTypesOneOf_Field9{uint32(x)} - return true, err - case 10: // test_oneof.Field10 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &AllTypesOneOf_Field10{int32(x)} - return true, err - case 11: // test_oneof.Field11 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &AllTypesOneOf_Field11{x} - return true, err - case 12: // test_oneof.Field12 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &AllTypesOneOf_Field12{int64(x)} - return true, err - case 13: // test_oneof.Field13 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field13{x != 0} - return true, err - case 14: // test_oneof.Field14 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.TestOneof = &AllTypesOneOf_Field14{x} - return true, err - case 15: // test_oneof.Field15 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.TestOneof = &AllTypesOneOf_Field15{x} - return true, err - case 16: // test_oneof.sub_message - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Subby) - err := b.DecodeMessage(msg) - m.TestOneof = &AllTypesOneOf_SubMessage{msg} - return true, err - default: - return false, nil - } -} - -func _AllTypesOneOf_OneofSizer(msg proto.Message) (n int) { - m := msg.(*AllTypesOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *AllTypesOneOf_Field1: - n += proto.SizeVarint(1<<3 | proto.WireFixed64) - n += 8 - case *AllTypesOneOf_Field2: - n += proto.SizeVarint(2<<3 | proto.WireFixed32) - n += 4 - case *AllTypesOneOf_Field3: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field3)) - case *AllTypesOneOf_Field4: - n += proto.SizeVarint(4<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field4)) - case *AllTypesOneOf_Field5: - n += proto.SizeVarint(5<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field5)) - case *AllTypesOneOf_Field6: - n += proto.SizeVarint(6<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field6)) - case *AllTypesOneOf_Field7: - n += proto.SizeVarint(7<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64((uint32(x.Field7) << 1) ^ uint32((int32(x.Field7) >> 31)))) - case *AllTypesOneOf_Field8: - n += proto.SizeVarint(8<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(uint64(x.Field8<<1) ^ uint64((int64(x.Field8) >> 63)))) - case *AllTypesOneOf_Field9: - n += proto.SizeVarint(9<<3 | proto.WireFixed32) - n += 4 - case *AllTypesOneOf_Field10: - n += proto.SizeVarint(10<<3 | proto.WireFixed32) - n += 4 - case *AllTypesOneOf_Field11: - n += proto.SizeVarint(11<<3 | proto.WireFixed64) - n += 8 - case *AllTypesOneOf_Field12: - n += proto.SizeVarint(12<<3 | proto.WireFixed64) - n += 8 - case *AllTypesOneOf_Field13: - n += proto.SizeVarint(13<<3 | proto.WireVarint) - n += 1 - case *AllTypesOneOf_Field14: - n += proto.SizeVarint(14<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field14))) - n += len(x.Field14) - case *AllTypesOneOf_Field15: - n += proto.SizeVarint(15<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field15))) - n += len(x.Field15) - case *AllTypesOneOf_SubMessage: - s := proto.Size(x.SubMessage) - n += proto.SizeVarint(16<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type TwoOneofs struct { - // Types that are valid to be assigned to One: - // *TwoOneofs_Field1 - // *TwoOneofs_Field2 - // *TwoOneofs_Field3 - One isTwoOneofs_One `protobuf_oneof:"one"` - // Types that are valid to be assigned to Two: - // *TwoOneofs_Field34 - // *TwoOneofs_Field35 - // *TwoOneofs_SubMessage2 - Two isTwoOneofs_Two `protobuf_oneof:"two"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *TwoOneofs) Reset() { *m = TwoOneofs{} } -func (*TwoOneofs) ProtoMessage() {} -func (*TwoOneofs) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{2} } - -type isTwoOneofs_One interface { - isTwoOneofs_One() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} -type isTwoOneofs_Two interface { - isTwoOneofs_Two() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` -} -type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` -} -type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` -} -type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` -} -type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` -} -type TwoOneofs_SubMessage2 struct { - SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` -} - -func (*TwoOneofs_Field1) isTwoOneofs_One() {} -func (*TwoOneofs_Field2) isTwoOneofs_One() {} -func (*TwoOneofs_Field3) isTwoOneofs_One() {} -func (*TwoOneofs_Field34) isTwoOneofs_Two() {} -func (*TwoOneofs_Field35) isTwoOneofs_Two() {} -func (*TwoOneofs_SubMessage2) isTwoOneofs_Two() {} - -func (m *TwoOneofs) GetOne() isTwoOneofs_One { - if m != nil { - return m.One - } - return nil -} -func (m *TwoOneofs) GetTwo() isTwoOneofs_Two { - if m != nil { - return m.Two - } - return nil -} - -func (m *TwoOneofs) GetField1() float64 { - if x, ok := m.GetOne().(*TwoOneofs_Field1); ok { - return x.Field1 - } - return 0 -} - -func (m *TwoOneofs) GetField2() float32 { - if x, ok := m.GetOne().(*TwoOneofs_Field2); ok { - return x.Field2 - } - return 0 -} - -func (m *TwoOneofs) GetField3() int32 { - if x, ok := m.GetOne().(*TwoOneofs_Field3); ok { - return x.Field3 - } - return 0 -} - -func (m *TwoOneofs) GetField34() string { - if x, ok := m.GetTwo().(*TwoOneofs_Field34); ok { - return x.Field34 - } - return "" -} - -func (m *TwoOneofs) GetField35() []byte { - if x, ok := m.GetTwo().(*TwoOneofs_Field35); ok { - return x.Field35 - } - return nil -} - -func (m *TwoOneofs) GetSubMessage2() *Subby { - if x, ok := m.GetTwo().(*TwoOneofs_SubMessage2); ok { - return x.SubMessage2 - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*TwoOneofs) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _TwoOneofs_OneofMarshaler, _TwoOneofs_OneofUnmarshaler, _TwoOneofs_OneofSizer, []interface{}{ - (*TwoOneofs_Field1)(nil), - (*TwoOneofs_Field2)(nil), - (*TwoOneofs_Field3)(nil), - (*TwoOneofs_Field34)(nil), - (*TwoOneofs_Field35)(nil), - (*TwoOneofs_SubMessage2)(nil), - } -} - -func _TwoOneofs_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*TwoOneofs) - // one - switch x := m.One.(type) { - case *TwoOneofs_Field1: - _ = b.EncodeVarint(1<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.Field1)) - case *TwoOneofs_Field2: - _ = b.EncodeVarint(2<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2))) - case *TwoOneofs_Field3: - _ = b.EncodeVarint(3<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field3)) - case nil: - default: - return fmt.Errorf("TwoOneofs.One has unexpected type %T", x) - } - // two - switch x := m.Two.(type) { - case *TwoOneofs_Field34: - _ = b.EncodeVarint(34<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Field34) - case *TwoOneofs_Field35: - _ = b.EncodeVarint(35<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Field35) - case *TwoOneofs_SubMessage2: - _ = b.EncodeVarint(36<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.SubMessage2); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("TwoOneofs.Two has unexpected type %T", x) - } - return nil -} - -func _TwoOneofs_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*TwoOneofs) - switch tag { - case 1: // one.Field1 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.One = &TwoOneofs_Field1{math.Float64frombits(x)} - return true, err - case 2: // one.Field2 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.One = &TwoOneofs_Field2{math.Float32frombits(uint32(x))} - return true, err - case 3: // one.Field3 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.One = &TwoOneofs_Field3{int32(x)} - return true, err - case 34: // two.Field34 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Two = &TwoOneofs_Field34{x} - return true, err - case 35: // two.Field35 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Two = &TwoOneofs_Field35{x} - return true, err - case 36: // two.sub_message2 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Subby) - err := b.DecodeMessage(msg) - m.Two = &TwoOneofs_SubMessage2{msg} - return true, err - default: - return false, nil - } -} - -func _TwoOneofs_OneofSizer(msg proto.Message) (n int) { - m := msg.(*TwoOneofs) - // one - switch x := m.One.(type) { - case *TwoOneofs_Field1: - n += proto.SizeVarint(1<<3 | proto.WireFixed64) - n += 8 - case *TwoOneofs_Field2: - n += proto.SizeVarint(2<<3 | proto.WireFixed32) - n += 4 - case *TwoOneofs_Field3: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field3)) - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - // two - switch x := m.Two.(type) { - case *TwoOneofs_Field34: - n += proto.SizeVarint(34<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field34))) - n += len(x.Field34) - case *TwoOneofs_Field35: - n += proto.SizeVarint(35<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field35))) - n += len(x.Field35) - case *TwoOneofs_SubMessage2: - s := proto.Size(x.SubMessage2) - n += proto.SizeVarint(36<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type CustomOneof struct { - // Types that are valid to be assigned to Custom: - // *CustomOneof_Stringy - // *CustomOneof_CustomType - // *CustomOneof_CastType - // *CustomOneof_MyCustomName - Custom isCustomOneof_Custom `protobuf_oneof:"custom"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomOneof) Reset() { *m = CustomOneof{} } -func (*CustomOneof) ProtoMessage() {} -func (*CustomOneof) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{3} } - -type isCustomOneof_Custom interface { - isCustomOneof_Custom() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` -} -type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` -} -type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` -} -type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` -} - -func (*CustomOneof_Stringy) isCustomOneof_Custom() {} -func (*CustomOneof_CustomType) isCustomOneof_Custom() {} -func (*CustomOneof_CastType) isCustomOneof_Custom() {} -func (*CustomOneof_MyCustomName) isCustomOneof_Custom() {} - -func (m *CustomOneof) GetCustom() isCustomOneof_Custom { - if m != nil { - return m.Custom - } - return nil -} - -func (m *CustomOneof) GetStringy() string { - if x, ok := m.GetCustom().(*CustomOneof_Stringy); ok { - return x.Stringy - } - return "" -} - -func (m *CustomOneof) GetCastType() github_com_gogo_protobuf_test_casttype.MyUint64Type { - if x, ok := m.GetCustom().(*CustomOneof_CastType); ok { - return x.CastType - } - return 0 -} - -func (m *CustomOneof) GetMyCustomName() int64 { - if x, ok := m.GetCustom().(*CustomOneof_MyCustomName); ok { - return x.MyCustomName - } - return 0 -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*CustomOneof) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _CustomOneof_OneofMarshaler, _CustomOneof_OneofUnmarshaler, _CustomOneof_OneofSizer, []interface{}{ - (*CustomOneof_Stringy)(nil), - (*CustomOneof_CustomType)(nil), - (*CustomOneof_CastType)(nil), - (*CustomOneof_MyCustomName)(nil), - } -} - -func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*CustomOneof) - // custom - switch x := m.Custom.(type) { - case *CustomOneof_Stringy: - _ = b.EncodeVarint(34<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Stringy) - case *CustomOneof_CustomType: - _ = b.EncodeVarint(35<<3 | proto.WireBytes) - dAtA, err := x.CustomType.Marshal() - if err != nil { - return err - } - _ = b.EncodeRawBytes(dAtA) - case *CustomOneof_CastType: - _ = b.EncodeVarint(36<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.CastType)) - case *CustomOneof_MyCustomName: - _ = b.EncodeVarint(37<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.MyCustomName)) - case nil: - default: - return fmt.Errorf("CustomOneof.Custom has unexpected type %T", x) - } - return nil -} - -func _CustomOneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*CustomOneof) - switch tag { - case 34: // custom.Stringy - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Custom = &CustomOneof_Stringy{x} - return true, err - case 35: // custom.CustomType - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - if err != nil { - return true, err - } - var cc github_com_gogo_protobuf_test_custom.Uint128 - c := &cc - err = c.Unmarshal(x) - m.Custom = &CustomOneof_CustomType{*c} - return true, err - case 36: // custom.CastType - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Custom = &CustomOneof_CastType{github_com_gogo_protobuf_test_casttype.MyUint64Type(x)} - return true, err - case 37: // custom.CustomName - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Custom = &CustomOneof_MyCustomName{int64(x)} - return true, err - default: - return false, nil - } -} - -func _CustomOneof_OneofSizer(msg proto.Message) (n int) { - m := msg.(*CustomOneof) - // custom - switch x := m.Custom.(type) { - case *CustomOneof_Stringy: - n += proto.SizeVarint(34<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Stringy))) - n += len(x.Stringy) - case *CustomOneof_CustomType: - n += proto.SizeVarint(35<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(x.CustomType.Size())) - n += x.CustomType.Size() - case *CustomOneof_CastType: - n += proto.SizeVarint(36<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.CastType)) - case *CustomOneof_MyCustomName: - n += proto.SizeVarint(37<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.MyCustomName)) - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*Subby)(nil), "one.Subby") - proto.RegisterType((*AllTypesOneOf)(nil), "one.AllTypesOneOf") - proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs") - proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof") -} -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *AllTypesOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *TwoOneofs) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 4043 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x79, 0x8d, 0x95, 0x63, 0xee, 0x2e, 0x6d, - 0xc7, 0xb2, 0x1d, 0x4b, 0xb6, 0x56, 0xda, 0x0b, 0xb7, 0x89, 0x87, 0xa4, 0xb8, 0x5a, 0x6d, 0x25, - 0x51, 0x01, 0xa5, 0x78, 0x9d, 0x3e, 0x60, 0x40, 0xf0, 0x27, 0x85, 0x5d, 0x10, 0x60, 0x00, 0x70, - 0xd7, 0xf2, 0xd3, 0x76, 0xdc, 0xcb, 0x64, 0x3a, 0xbd, 0xa5, 0x9d, 0x69, 0xe2, 0x3a, 0x6e, 0x9b, - 0x99, 0xd6, 0x69, 0xd2, 0x4b, 0xd2, 0x4b, 0x9a, 0xe9, 0x53, 0x5f, 0xd2, 0xfa, 0xa9, 0xe3, 0xbc, - 0x75, 0x3a, 0x1d, 0x8f, 0x57, 0xf1, 0x4c, 0xd3, 0xd6, 0x6d, 0xdd, 0xc6, 0x33, 0xcd, 0x74, 0x5f, - 0x3a, 0xff, 0x0d, 0x00, 0x2f, 0x5a, 0x50, 0x99, 0x3a, 0x79, 0x92, 0x70, 0xce, 0xf9, 0x3e, 0x1c, - 0x9c, 0xff, 0xfc, 0xe7, 0x1c, 0xfc, 0x04, 0x7c, 0x6f, 0x0d, 0xce, 0xb6, 0x6d, 0xbb, 0x6d, 0xa2, - 0xe5, 0xae, 0x63, 0x7b, 0x76, 0xa3, 0xd7, 0x5a, 0x6e, 0x22, 0x57, 0x77, 0x8c, 0xae, 0x67, 0x3b, - 0x4b, 0x44, 0x26, 0xcd, 0x50, 0x8b, 0x25, 0x6e, 0x51, 0xd8, 0x86, 0xd9, 0xab, 0x86, 0x89, 0xd6, - 0x7d, 0xc3, 0x3a, 0xf2, 0xa4, 0x4b, 0x90, 0x68, 0x19, 0x26, 0x92, 0x85, 0xb3, 0xf1, 0xc5, 0xcc, - 0xca, 0xe3, 0x4b, 0x03, 0xa0, 0xa5, 0x7e, 0xc4, 0x2e, 0x16, 0x2b, 0x04, 0x51, 0x78, 0x2f, 0x01, - 0x73, 0x23, 0xb4, 0x92, 0x04, 0x09, 0x4b, 0xeb, 0x60, 0x46, 0x61, 0x31, 0xad, 0x90, 0xff, 0x25, - 0x19, 0xa6, 0xba, 0x9a, 0x7e, 0x4b, 0x6b, 0x23, 0x39, 0x46, 0xc4, 0xfc, 0x52, 0xca, 0x03, 0x34, - 0x51, 0x17, 0x59, 0x4d, 0x64, 0xe9, 0x87, 0x72, 0xfc, 0x6c, 0x7c, 0x31, 0xad, 0x84, 0x24, 0xd2, - 0x33, 0x30, 0xdb, 0xed, 0x35, 0x4c, 0x43, 0x57, 0x43, 0x66, 0x70, 0x36, 0xbe, 0x98, 0x54, 0x44, - 0xaa, 0x58, 0x0f, 0x8c, 0x9f, 0x84, 0x99, 0x3b, 0x48, 0xbb, 0x15, 0x36, 0xcd, 0x10, 0xd3, 0x1c, - 0x16, 0x87, 0x0c, 0x2b, 0x90, 0xed, 0x20, 0xd7, 0xd5, 0xda, 0x48, 0xf5, 0x0e, 0xbb, 0x48, 0x4e, - 0x90, 0xa7, 0x3f, 0x3b, 0xf4, 0xf4, 0x83, 0x4f, 0x9e, 0x61, 0xa8, 0xbd, 0xc3, 0x2e, 0x92, 0x4a, - 0x90, 0x46, 0x56, 0xaf, 0x43, 0x19, 0x92, 0xc7, 0xc4, 0xaf, 0x6a, 0xf5, 0x3a, 0x83, 0x2c, 0x29, - 0x0c, 0x63, 0x14, 0x53, 0x2e, 0x72, 0x6e, 0x1b, 0x3a, 0x92, 0x27, 0x09, 0xc1, 0x93, 0x43, 0x04, - 0x75, 0xaa, 0x1f, 0xe4, 0xe0, 0x38, 0xa9, 0x02, 0x69, 0xf4, 0xb2, 0x87, 0x2c, 0xd7, 0xb0, 0x2d, - 0x79, 0x8a, 0x90, 0x3c, 0x31, 0x62, 0x15, 0x91, 0xd9, 0x1c, 0xa4, 0x08, 0x70, 0xd2, 0x05, 0x98, - 0xb2, 0xbb, 0x9e, 0x61, 0x5b, 0xae, 0x9c, 0x3a, 0x2b, 0x2c, 0x66, 0x56, 0x3e, 0x36, 0x32, 0x11, - 0x6a, 0xd4, 0x46, 0xe1, 0xc6, 0xd2, 0x26, 0x88, 0xae, 0xdd, 0x73, 0x74, 0xa4, 0xea, 0x76, 0x13, - 0xa9, 0x86, 0xd5, 0xb2, 0xe5, 0x34, 0x21, 0x38, 0x33, 0xfc, 0x20, 0xc4, 0xb0, 0x62, 0x37, 0xd1, - 0xa6, 0xd5, 0xb2, 0x95, 0x9c, 0xdb, 0x77, 0x2d, 0x9d, 0x82, 0x49, 0xf7, 0xd0, 0xf2, 0xb4, 0x97, - 0xe5, 0x2c, 0xc9, 0x10, 0x76, 0x55, 0xf8, 0x9f, 0x24, 0xcc, 0x8c, 0x93, 0x62, 0x57, 0x20, 0xd9, - 0xc2, 0x4f, 0x29, 0xc7, 0x4e, 0x12, 0x03, 0x8a, 0xe9, 0x0f, 0xe2, 0xe4, 0x8f, 0x18, 0xc4, 0x12, - 0x64, 0x2c, 0xe4, 0x7a, 0xa8, 0x49, 0x33, 0x22, 0x3e, 0x66, 0x4e, 0x01, 0x05, 0x0d, 0xa7, 0x54, - 0xe2, 0x47, 0x4a, 0xa9, 0x1b, 0x30, 0xe3, 0xbb, 0xa4, 0x3a, 0x9a, 0xd5, 0xe6, 0xb9, 0xb9, 0x1c, - 0xe5, 0xc9, 0x52, 0x95, 0xe3, 0x14, 0x0c, 0x53, 0x72, 0xa8, 0xef, 0x5a, 0x5a, 0x07, 0xb0, 0x2d, - 0x64, 0xb7, 0xd4, 0x26, 0xd2, 0x4d, 0x39, 0x75, 0x4c, 0x94, 0x6a, 0xd8, 0x64, 0x28, 0x4a, 0x36, - 0x95, 0xea, 0xa6, 0x74, 0x39, 0x48, 0xb5, 0xa9, 0x63, 0x32, 0x65, 0x9b, 0x6e, 0xb2, 0xa1, 0x6c, - 0xdb, 0x87, 0x9c, 0x83, 0x70, 0xde, 0xa3, 0x26, 0x7b, 0xb2, 0x34, 0x71, 0x62, 0x29, 0xf2, 0xc9, - 0x14, 0x06, 0xa3, 0x0f, 0x36, 0xed, 0x84, 0x2f, 0xa5, 0xc7, 0xc0, 0x17, 0xa8, 0x24, 0xad, 0x80, - 0x54, 0xa1, 0x2c, 0x17, 0xee, 0x68, 0x1d, 0xb4, 0x70, 0x09, 0x72, 0xfd, 0xe1, 0x91, 0xe6, 0x21, - 0xe9, 0x7a, 0x9a, 0xe3, 0x91, 0x2c, 0x4c, 0x2a, 0xf4, 0x42, 0x12, 0x21, 0x8e, 0xac, 0x26, 0xa9, - 0x72, 0x49, 0x05, 0xff, 0xbb, 0x70, 0x11, 0xa6, 0xfb, 0x6e, 0x3f, 0x2e, 0xb0, 0xf0, 0xc5, 0x49, - 0x98, 0x1f, 0x95, 0x73, 0x23, 0xd3, 0xff, 0x14, 0x4c, 0x5a, 0xbd, 0x4e, 0x03, 0x39, 0x72, 0x9c, - 0x30, 0xb0, 0x2b, 0xa9, 0x04, 0x49, 0x53, 0x6b, 0x20, 0x53, 0x4e, 0x9c, 0x15, 0x16, 0x73, 0x2b, - 0xcf, 0x8c, 0x95, 0xd5, 0x4b, 0x5b, 0x18, 0xa2, 0x50, 0xa4, 0xf4, 0x29, 0x48, 0xb0, 0x12, 0x87, - 0x19, 0x9e, 0x1e, 0x8f, 0x01, 0xe7, 0xa2, 0x42, 0x70, 0xd2, 0x23, 0x90, 0xc6, 0x7f, 0x69, 0x6c, - 0x27, 0x89, 0xcf, 0x29, 0x2c, 0xc0, 0x71, 0x95, 0x16, 0x20, 0x45, 0xd2, 0xac, 0x89, 0x78, 0x6b, - 0xf0, 0xaf, 0xf1, 0xc2, 0x34, 0x51, 0x4b, 0xeb, 0x99, 0x9e, 0x7a, 0x5b, 0x33, 0x7b, 0x88, 0x24, - 0x4c, 0x5a, 0xc9, 0x32, 0xe1, 0x67, 0xb0, 0x4c, 0x3a, 0x03, 0x19, 0x9a, 0x95, 0x86, 0xd5, 0x44, - 0x2f, 0x93, 0xea, 0x93, 0x54, 0x68, 0xa2, 0x6e, 0x62, 0x09, 0xbe, 0xfd, 0x4d, 0xd7, 0xb6, 0xf8, - 0xd2, 0x92, 0x5b, 0x60, 0x01, 0xb9, 0xfd, 0xc5, 0xc1, 0xc2, 0xf7, 0xe8, 0xe8, 0xc7, 0x1b, 0xcc, - 0xc5, 0xc2, 0xb7, 0x62, 0x90, 0x20, 0xfb, 0x6d, 0x06, 0x32, 0x7b, 0x2f, 0xed, 0x56, 0xd5, 0xf5, - 0xda, 0x7e, 0x79, 0xab, 0x2a, 0x0a, 0x52, 0x0e, 0x80, 0x08, 0xae, 0x6e, 0xd5, 0x4a, 0x7b, 0x62, - 0xcc, 0xbf, 0xde, 0xdc, 0xd9, 0xbb, 0xb0, 0x2a, 0xc6, 0x7d, 0xc0, 0x3e, 0x15, 0x24, 0xc2, 0x06, - 0xe7, 0x57, 0xc4, 0xa4, 0x24, 0x42, 0x96, 0x12, 0x6c, 0xde, 0xa8, 0xae, 0x5f, 0x58, 0x15, 0x27, - 0xfb, 0x25, 0xe7, 0x57, 0xc4, 0x29, 0x69, 0x1a, 0xd2, 0x44, 0x52, 0xae, 0xd5, 0xb6, 0xc4, 0x94, - 0xcf, 0x59, 0xdf, 0x53, 0x36, 0x77, 0x36, 0xc4, 0xb4, 0xcf, 0xb9, 0xa1, 0xd4, 0xf6, 0x77, 0x45, - 0xf0, 0x19, 0xb6, 0xab, 0xf5, 0x7a, 0x69, 0xa3, 0x2a, 0x66, 0x7c, 0x8b, 0xf2, 0x4b, 0x7b, 0xd5, - 0xba, 0x98, 0xed, 0x73, 0xeb, 0xfc, 0x8a, 0x38, 0xed, 0xdf, 0xa2, 0xba, 0xb3, 0xbf, 0x2d, 0xe6, - 0xa4, 0x59, 0x98, 0xa6, 0xb7, 0xe0, 0x4e, 0xcc, 0x0c, 0x88, 0x2e, 0xac, 0x8a, 0x62, 0xe0, 0x08, - 0x65, 0x99, 0xed, 0x13, 0x5c, 0x58, 0x15, 0xa5, 0x42, 0x05, 0x92, 0x24, 0xbb, 0x24, 0x09, 0x72, - 0x5b, 0xa5, 0x72, 0x75, 0x4b, 0xad, 0xed, 0xee, 0x6d, 0xd6, 0x76, 0x4a, 0x5b, 0xa2, 0x10, 0xc8, - 0x94, 0xea, 0xa7, 0xf7, 0x37, 0x95, 0xea, 0xba, 0x18, 0x0b, 0xcb, 0x76, 0xab, 0xa5, 0xbd, 0xea, - 0xba, 0x18, 0x2f, 0xe8, 0x30, 0x3f, 0xaa, 0xce, 0x8c, 0xdc, 0x19, 0xa1, 0x25, 0x8e, 0x1d, 0xb3, - 0xc4, 0x84, 0x6b, 0x68, 0x89, 0xbf, 0x22, 0xc0, 0xdc, 0x88, 0x5a, 0x3b, 0xf2, 0x26, 0x2f, 0x40, - 0x92, 0xa6, 0x28, 0xed, 0x3e, 0x4f, 0x8d, 0x2c, 0xda, 0x24, 0x61, 0x87, 0x3a, 0x10, 0xc1, 0x85, - 0x3b, 0x70, 0xfc, 0x98, 0x0e, 0x8c, 0x29, 0x86, 0x9c, 0x7c, 0x55, 0x00, 0xf9, 0x38, 0xee, 0x88, - 0x42, 0x11, 0xeb, 0x2b, 0x14, 0x57, 0x06, 0x1d, 0x38, 0x77, 0xfc, 0x33, 0x0c, 0x79, 0xf1, 0xa6, - 0x00, 0xa7, 0x46, 0x0f, 0x2a, 0x23, 0x7d, 0xf8, 0x14, 0x4c, 0x76, 0x90, 0x77, 0x60, 0xf3, 0x66, - 0xfd, 0xf1, 0x11, 0x2d, 0x00, 0xab, 0x07, 0x63, 0xc5, 0x50, 0xe1, 0x1e, 0x12, 0x3f, 0x6e, 0xda, - 0xa0, 0xde, 0x0c, 0x79, 0xfa, 0xf9, 0x18, 0x3c, 0x34, 0x92, 0x7c, 0xa4, 0xa3, 0x8f, 0x02, 0x18, - 0x56, 0xb7, 0xe7, 0xd1, 0x86, 0x4c, 0xeb, 0x53, 0x9a, 0x48, 0xc8, 0xde, 0xc7, 0xb5, 0xa7, 0xe7, - 0xf9, 0xfa, 0x38, 0xd1, 0x03, 0x15, 0x11, 0x83, 0x4b, 0x81, 0xa3, 0x09, 0xe2, 0x68, 0xfe, 0x98, - 0x27, 0x1d, 0xea, 0x75, 0xcf, 0x81, 0xa8, 0x9b, 0x06, 0xb2, 0x3c, 0xd5, 0xf5, 0x1c, 0xa4, 0x75, - 0x0c, 0xab, 0x4d, 0x0a, 0x70, 0xaa, 0x98, 0x6c, 0x69, 0xa6, 0x8b, 0x94, 0x19, 0xaa, 0xae, 0x73, - 0x2d, 0x46, 0x90, 0x2e, 0xe3, 0x84, 0x10, 0x93, 0x7d, 0x08, 0xaa, 0xf6, 0x11, 0x85, 0xaf, 0x4f, - 0x41, 0x26, 0x34, 0xd6, 0x49, 0xe7, 0x20, 0x7b, 0x53, 0xbb, 0xad, 0xa9, 0x7c, 0x54, 0xa7, 0x91, - 0xc8, 0x60, 0xd9, 0x2e, 0x1b, 0xd7, 0x9f, 0x83, 0x79, 0x62, 0x62, 0xf7, 0x3c, 0xe4, 0xa8, 0xba, - 0xa9, 0xb9, 0x2e, 0x09, 0x5a, 0x8a, 0x98, 0x4a, 0x58, 0x57, 0xc3, 0xaa, 0x0a, 0xd7, 0x48, 0x6b, - 0x30, 0x47, 0x10, 0x9d, 0x9e, 0xe9, 0x19, 0x5d, 0x13, 0xa9, 0xf8, 0xe5, 0xc1, 0x25, 0x85, 0xd8, - 0xf7, 0x6c, 0x16, 0x5b, 0x6c, 0x33, 0x03, 0xec, 0x91, 0x2b, 0xad, 0xc3, 0xa3, 0x04, 0xd6, 0x46, - 0x16, 0x72, 0x34, 0x0f, 0xa9, 0xe8, 0x73, 0x3d, 0xcd, 0x74, 0x55, 0xcd, 0x6a, 0xaa, 0x07, 0x9a, - 0x7b, 0x20, 0xcf, 0x63, 0x82, 0x72, 0x4c, 0x16, 0x94, 0xd3, 0xd8, 0x70, 0x83, 0xd9, 0x55, 0x89, - 0x59, 0xc9, 0x6a, 0x5e, 0xd3, 0xdc, 0x03, 0xa9, 0x08, 0xa7, 0x08, 0x8b, 0xeb, 0x39, 0x86, 0xd5, - 0x56, 0xf5, 0x03, 0xa4, 0xdf, 0x52, 0x7b, 0x5e, 0xeb, 0x92, 0xfc, 0x48, 0xf8, 0xfe, 0xc4, 0xc3, - 0x3a, 0xb1, 0xa9, 0x60, 0x93, 0x7d, 0xaf, 0x75, 0x49, 0xaa, 0x43, 0x16, 0x2f, 0x46, 0xc7, 0x78, - 0x05, 0xa9, 0x2d, 0xdb, 0x21, 0x9d, 0x25, 0x37, 0x62, 0x67, 0x87, 0x22, 0xb8, 0x54, 0x63, 0x80, - 0x6d, 0xbb, 0x89, 0x8a, 0xc9, 0xfa, 0x6e, 0xb5, 0xba, 0xae, 0x64, 0x38, 0xcb, 0x55, 0xdb, 0xc1, - 0x09, 0xd5, 0xb6, 0xfd, 0x00, 0x67, 0x68, 0x42, 0xb5, 0x6d, 0x1e, 0xde, 0x35, 0x98, 0xd3, 0x75, - 0xfa, 0xcc, 0x86, 0xae, 0xb2, 0x11, 0xdf, 0x95, 0xc5, 0xbe, 0x60, 0xe9, 0xfa, 0x06, 0x35, 0x60, - 0x39, 0xee, 0x4a, 0x97, 0xe1, 0xa1, 0x20, 0x58, 0x61, 0xe0, 0xec, 0xd0, 0x53, 0x0e, 0x42, 0xd7, - 0x60, 0xae, 0x7b, 0x38, 0x0c, 0x94, 0xfa, 0xee, 0xd8, 0x3d, 0x1c, 0x84, 0x3d, 0x41, 0x5e, 0xdb, - 0x1c, 0xa4, 0x6b, 0x1e, 0x6a, 0xca, 0x0f, 0x87, 0xad, 0x43, 0x0a, 0x69, 0x19, 0x44, 0x5d, 0x57, - 0x91, 0xa5, 0x35, 0x4c, 0xa4, 0x6a, 0x0e, 0xb2, 0x34, 0x57, 0x3e, 0x13, 0x36, 0xce, 0xe9, 0x7a, - 0x95, 0x68, 0x4b, 0x44, 0x29, 0x3d, 0x0d, 0xb3, 0x76, 0xe3, 0xa6, 0x4e, 0x33, 0x4b, 0xed, 0x3a, - 0xa8, 0x65, 0xbc, 0x2c, 0x3f, 0x4e, 0xc2, 0x34, 0x83, 0x15, 0x24, 0xaf, 0x76, 0x89, 0x58, 0x7a, - 0x0a, 0x44, 0xdd, 0x3d, 0xd0, 0x9c, 0x2e, 0x69, 0xed, 0x6e, 0x57, 0xd3, 0x91, 0xfc, 0x04, 0x35, - 0xa5, 0xf2, 0x1d, 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x31, 0x5a, 0x1e, 0x67, 0x7c, 0x92, 0x66, 0x36, - 0x91, 0x31, 0xb6, 0x1b, 0x30, 0xdf, 0xb3, 0x0c, 0xcb, 0x43, 0x4e, 0xd7, 0x41, 0x78, 0x88, 0xa7, - 0x3b, 0x51, 0xfe, 0xe7, 0xa9, 0x63, 0xc6, 0xf0, 0xfd, 0xb0, 0x35, 0x4d, 0x00, 0x65, 0xae, 0x37, - 0x2c, 0x2c, 0x14, 0x21, 0x1b, 0xce, 0x0b, 0x29, 0x0d, 0x34, 0x33, 0x44, 0x01, 0xf7, 0xd8, 0x4a, - 0x6d, 0x1d, 0x77, 0xc7, 0xcf, 0x56, 0xc5, 0x18, 0xee, 0xd2, 0x5b, 0x9b, 0x7b, 0x55, 0x55, 0xd9, - 0xdf, 0xd9, 0xdb, 0xdc, 0xae, 0x8a, 0xf1, 0xa7, 0xd3, 0xa9, 0xef, 0x4f, 0x89, 0x77, 0xef, 0xde, - 0xbd, 0x1b, 0x2b, 0x7c, 0x27, 0x06, 0xb9, 0xfe, 0xc9, 0x58, 0xfa, 0x29, 0x78, 0x98, 0xbf, 0xc6, - 0xba, 0xc8, 0x53, 0xef, 0x18, 0x0e, 0x49, 0xd5, 0x8e, 0x46, 0x67, 0x4b, 0x3f, 0xca, 0xf3, 0xcc, - 0xaa, 0x8e, 0xbc, 0x17, 0x0d, 0x07, 0x27, 0x62, 0x47, 0xf3, 0xa4, 0x2d, 0x38, 0x63, 0xd9, 0xaa, - 0xeb, 0x69, 0x56, 0x53, 0x73, 0x9a, 0x6a, 0x70, 0x80, 0xa0, 0x6a, 0xba, 0x8e, 0x5c, 0xd7, 0xa6, - 0x2d, 0xc2, 0x67, 0xf9, 0x98, 0x65, 0xd7, 0x99, 0x71, 0x50, 0x3b, 0x4b, 0xcc, 0x74, 0x20, 0x23, - 0xe2, 0xc7, 0x65, 0xc4, 0x23, 0x90, 0xee, 0x68, 0x5d, 0x15, 0x59, 0x9e, 0x73, 0x48, 0xe6, 0xb9, - 0x94, 0x92, 0xea, 0x68, 0xdd, 0x2a, 0xbe, 0xfe, 0xe8, 0xd6, 0x20, 0x1c, 0xc7, 0x7f, 0x8a, 0x43, - 0x36, 0x3c, 0xd3, 0xe1, 0x11, 0x59, 0x27, 0xf5, 0x5b, 0x20, 0x3b, 0xfc, 0xb1, 0x07, 0x4e, 0x80, - 0x4b, 0x15, 0x5c, 0xd8, 0x8b, 0x93, 0x74, 0xd2, 0x52, 0x28, 0x12, 0x37, 0x55, 0xbc, 0xa7, 0x11, - 0x9d, 0xdf, 0x53, 0x0a, 0xbb, 0x92, 0x36, 0x60, 0xf2, 0xa6, 0x4b, 0xb8, 0x27, 0x09, 0xf7, 0xe3, - 0x0f, 0xe6, 0xbe, 0x5e, 0x27, 0xe4, 0xe9, 0xeb, 0x75, 0x75, 0xa7, 0xa6, 0x6c, 0x97, 0xb6, 0x14, - 0x06, 0x97, 0x4e, 0x43, 0xc2, 0xd4, 0x5e, 0x39, 0xec, 0x6f, 0x01, 0x44, 0x34, 0x6e, 0xe0, 0x4f, - 0x43, 0xe2, 0x0e, 0xd2, 0x6e, 0xf5, 0x17, 0x5e, 0x22, 0xfa, 0x08, 0x53, 0x7f, 0x19, 0x92, 0x24, - 0x5e, 0x12, 0x00, 0x8b, 0x98, 0x38, 0x21, 0xa5, 0x20, 0x51, 0xa9, 0x29, 0x38, 0xfd, 0x45, 0xc8, - 0x52, 0xa9, 0xba, 0xbb, 0x59, 0xad, 0x54, 0xc5, 0x58, 0x61, 0x0d, 0x26, 0x69, 0x10, 0xf0, 0xd6, - 0xf0, 0xc3, 0x20, 0x4e, 0xb0, 0x4b, 0xc6, 0x21, 0x70, 0xed, 0xfe, 0x76, 0xb9, 0xaa, 0x88, 0xb1, - 0xf0, 0xf2, 0xba, 0x90, 0x0d, 0x8f, 0x73, 0x3f, 0x9e, 0x9c, 0xfa, 0x6b, 0x01, 0x32, 0xa1, 0xf1, - 0x0c, 0x0f, 0x06, 0x9a, 0x69, 0xda, 0x77, 0x54, 0xcd, 0x34, 0x34, 0x97, 0x25, 0x05, 0x10, 0x51, - 0x09, 0x4b, 0xc6, 0x5d, 0xb4, 0x1f, 0x8b, 0xf3, 0x6f, 0x08, 0x20, 0x0e, 0x8e, 0x76, 0x03, 0x0e, - 0x0a, 0x3f, 0x51, 0x07, 0x5f, 0x17, 0x20, 0xd7, 0x3f, 0xcf, 0x0d, 0xb8, 0x77, 0xee, 0x27, 0xea, - 0xde, 0xbb, 0x31, 0x98, 0xee, 0x9b, 0xe2, 0xc6, 0xf5, 0xee, 0x73, 0x30, 0x6b, 0x34, 0x51, 0xa7, - 0x6b, 0x7b, 0xc8, 0xd2, 0x0f, 0x55, 0x13, 0xdd, 0x46, 0xa6, 0x5c, 0x20, 0x85, 0x62, 0xf9, 0xc1, - 0x73, 0xe2, 0xd2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xe2, 0xdc, 0xe6, 0x7a, 0x75, 0x7b, 0xb7, 0xb6, - 0x57, 0xdd, 0xa9, 0xbc, 0xa4, 0xee, 0xef, 0xfc, 0xf4, 0x4e, 0xed, 0xc5, 0x1d, 0x45, 0x34, 0x06, - 0xcc, 0x3e, 0xc2, 0xad, 0xbe, 0x0b, 0xe2, 0xa0, 0x53, 0xd2, 0xc3, 0x30, 0xca, 0x2d, 0x71, 0x42, - 0x9a, 0x83, 0x99, 0x9d, 0x9a, 0x5a, 0xdf, 0x5c, 0xaf, 0xaa, 0xd5, 0xab, 0x57, 0xab, 0x95, 0xbd, - 0x3a, 0x7d, 0x71, 0xf6, 0xad, 0xf7, 0xfa, 0x37, 0xf5, 0x6b, 0x71, 0x98, 0x1b, 0xe1, 0x89, 0x54, - 0x62, 0x33, 0x3b, 0x7d, 0x8d, 0x78, 0x76, 0x1c, 0xef, 0x97, 0xf0, 0x54, 0xb0, 0xab, 0x39, 0x1e, - 0x1b, 0xf1, 0x9f, 0x02, 0x1c, 0x25, 0xcb, 0x33, 0x5a, 0x06, 0x72, 0xd8, 0x39, 0x03, 0x1d, 0xe4, - 0x67, 0x02, 0x39, 0x3d, 0x6a, 0xf8, 0x04, 0x48, 0x5d, 0xdb, 0x35, 0x3c, 0xe3, 0x36, 0x52, 0x0d, - 0x8b, 0x1f, 0x4a, 0xe0, 0xc1, 0x3e, 0xa1, 0x88, 0x5c, 0xb3, 0x69, 0x79, 0xbe, 0xb5, 0x85, 0xda, - 0xda, 0x80, 0x35, 0x2e, 0xe0, 0x71, 0x45, 0xe4, 0x1a, 0xdf, 0xfa, 0x1c, 0x64, 0x9b, 0x76, 0x0f, - 0x8f, 0x49, 0xd4, 0x0e, 0xf7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0x6f, 0xc2, 0xe6, 0xd8, 0xe0, 0x34, - 0x24, 0xab, 0x64, 0xa8, 0x8c, 0x9a, 0x3c, 0x09, 0x33, 0x5a, 0xbb, 0xed, 0x60, 0x72, 0x4e, 0x44, - 0x27, 0xf3, 0x9c, 0x2f, 0x26, 0x86, 0x0b, 0xd7, 0x21, 0xc5, 0xe3, 0x80, 0x5b, 0x32, 0x8e, 0x84, - 0xda, 0xa5, 0x67, 0x52, 0xb1, 0xc5, 0xb4, 0x92, 0xb2, 0xb8, 0xf2, 0x1c, 0x64, 0x0d, 0x57, 0x0d, - 0x0e, 0x47, 0x63, 0x67, 0x63, 0x8b, 0x29, 0x25, 0x63, 0xb8, 0xfe, 0x69, 0x58, 0xe1, 0xcd, 0x18, - 0xe4, 0xfa, 0x0f, 0x77, 0xa5, 0x75, 0x48, 0x99, 0xb6, 0xae, 0x91, 0xd4, 0xa2, 0xbf, 0x2c, 0x2c, - 0x46, 0x9c, 0x07, 0x2f, 0x6d, 0x31, 0x7b, 0xc5, 0x47, 0x2e, 0xfc, 0xbd, 0x00, 0x29, 0x2e, 0x96, - 0x4e, 0x41, 0xa2, 0xab, 0x79, 0x07, 0x84, 0x2e, 0x59, 0x8e, 0x89, 0x82, 0x42, 0xae, 0xb1, 0xdc, - 0xed, 0x6a, 0x16, 0x49, 0x01, 0x26, 0xc7, 0xd7, 0x78, 0x5d, 0x4d, 0xa4, 0x35, 0xc9, 0xd8, 0x6f, - 0x77, 0x3a, 0xc8, 0xf2, 0x5c, 0xbe, 0xae, 0x4c, 0x5e, 0x61, 0x62, 0xe9, 0x19, 0x98, 0xf5, 0x1c, - 0xcd, 0x30, 0xfb, 0x6c, 0x13, 0xc4, 0x56, 0xe4, 0x0a, 0xdf, 0xb8, 0x08, 0xa7, 0x39, 0x6f, 0x13, - 0x79, 0x9a, 0x7e, 0x80, 0x9a, 0x01, 0x68, 0x92, 0x9c, 0x1c, 0x3e, 0xcc, 0x0c, 0xd6, 0x99, 0x9e, - 0x63, 0x0b, 0xdf, 0x15, 0x60, 0x96, 0xbf, 0xa8, 0x34, 0xfd, 0x60, 0x6d, 0x03, 0x68, 0x96, 0x65, - 0x7b, 0xe1, 0x70, 0x0d, 0xa7, 0xf2, 0x10, 0x6e, 0xa9, 0xe4, 0x83, 0x94, 0x10, 0xc1, 0x42, 0x07, - 0x20, 0xd0, 0x1c, 0x1b, 0xb6, 0x33, 0x90, 0x61, 0x27, 0xf7, 0xe4, 0xe7, 0x1f, 0xfa, 0x6a, 0x0b, - 0x54, 0x84, 0xdf, 0x68, 0xa4, 0x79, 0x48, 0x36, 0x50, 0xdb, 0xb0, 0xd8, 0x79, 0x22, 0xbd, 0xe0, - 0xa7, 0x94, 0x09, 0xff, 0x94, 0xb2, 0x7c, 0x03, 0xe6, 0x74, 0xbb, 0x33, 0xe8, 0x6e, 0x59, 0x1c, - 0x78, 0xbd, 0x76, 0xaf, 0x09, 0x9f, 0x85, 0x60, 0xc4, 0xfc, 0x4a, 0x2c, 0xbe, 0xb1, 0x5b, 0xfe, - 0x5a, 0x6c, 0x61, 0x83, 0xe2, 0x76, 0xf9, 0x63, 0x2a, 0xa8, 0x65, 0x22, 0x1d, 0xbb, 0x0e, 0x3f, - 0xf8, 0x38, 0x3c, 0xdb, 0x36, 0xbc, 0x83, 0x5e, 0x63, 0x49, 0xb7, 0x3b, 0xcb, 0x6d, 0xbb, 0x6d, - 0x07, 0x3f, 0x77, 0xe1, 0x2b, 0x72, 0x41, 0xfe, 0x63, 0x3f, 0x79, 0xa5, 0x7d, 0xe9, 0x42, 0xe4, - 0xef, 0x63, 0xc5, 0x1d, 0x98, 0x63, 0xc6, 0x2a, 0x39, 0x73, 0xa7, 0xaf, 0x06, 0xd2, 0x03, 0xcf, - 0x5d, 0xe4, 0x6f, 0xbe, 0x47, 0x7a, 0xb5, 0x32, 0xcb, 0xa0, 0x58, 0x47, 0x5f, 0x20, 0x8a, 0x0a, - 0x3c, 0xd4, 0xc7, 0x47, 0xf7, 0x25, 0x72, 0x22, 0x18, 0xbf, 0xc3, 0x18, 0xe7, 0x42, 0x8c, 0x75, - 0x06, 0x2d, 0x56, 0x60, 0xfa, 0x24, 0x5c, 0x7f, 0xcb, 0xb8, 0xb2, 0x28, 0x4c, 0xb2, 0x01, 0x33, - 0x84, 0x44, 0xef, 0xb9, 0x9e, 0xdd, 0x21, 0x45, 0xef, 0xc1, 0x34, 0x7f, 0xf7, 0x1e, 0xdd, 0x28, - 0x39, 0x0c, 0xab, 0xf8, 0xa8, 0x62, 0x11, 0xc8, 0xcf, 0x0c, 0x4d, 0xa4, 0x9b, 0x11, 0x0c, 0x6f, - 0x31, 0x47, 0x7c, 0xfb, 0xe2, 0x67, 0x60, 0x1e, 0xff, 0x4f, 0x6a, 0x52, 0xd8, 0x93, 0xe8, 0x53, - 0x26, 0xf9, 0xbb, 0xaf, 0xd2, 0xbd, 0x38, 0xe7, 0x13, 0x84, 0x7c, 0x0a, 0xad, 0x62, 0x1b, 0x79, - 0x1e, 0x72, 0x5c, 0x55, 0x33, 0x47, 0xb9, 0x17, 0x7a, 0x4d, 0x97, 0xbf, 0xf4, 0x7e, 0xff, 0x2a, - 0x6e, 0x50, 0x64, 0xc9, 0x34, 0x8b, 0xfb, 0xf0, 0xf0, 0x88, 0xac, 0x18, 0x83, 0xf3, 0x35, 0xc6, - 0x39, 0x3f, 0x94, 0x19, 0x98, 0x76, 0x17, 0xb8, 0xdc, 0x5f, 0xcb, 0x31, 0x38, 0x7f, 0x9b, 0x71, - 0x4a, 0x0c, 0xcb, 0x97, 0x14, 0x33, 0x5e, 0x87, 0xd9, 0xdb, 0xc8, 0x69, 0xd8, 0x2e, 0x3b, 0x1a, - 0x19, 0x83, 0xee, 0x75, 0x46, 0x37, 0xc3, 0x80, 0xe4, 0xac, 0x04, 0x73, 0x5d, 0x86, 0x54, 0x4b, - 0xd3, 0xd1, 0x18, 0x14, 0x5f, 0x66, 0x14, 0x53, 0xd8, 0x1e, 0x43, 0x4b, 0x90, 0x6d, 0xdb, 0xac, - 0x2d, 0x45, 0xc3, 0xdf, 0x60, 0xf0, 0x0c, 0xc7, 0x30, 0x8a, 0xae, 0xdd, 0xed, 0x99, 0xb8, 0x67, - 0x45, 0x53, 0xfc, 0x0e, 0xa7, 0xe0, 0x18, 0x46, 0x71, 0x82, 0xb0, 0xfe, 0x2e, 0xa7, 0x70, 0x43, - 0xf1, 0x7c, 0x01, 0x32, 0xb6, 0x65, 0x1e, 0xda, 0xd6, 0x38, 0x4e, 0xfc, 0x1e, 0x63, 0x00, 0x06, - 0xc1, 0x04, 0x57, 0x20, 0x3d, 0xee, 0x42, 0xfc, 0xfe, 0xfb, 0x7c, 0x7b, 0xf0, 0x15, 0xd8, 0x80, - 0x19, 0x5e, 0xa0, 0x0c, 0xdb, 0x1a, 0x83, 0xe2, 0x0f, 0x18, 0x45, 0x2e, 0x04, 0x63, 0x8f, 0xe1, - 0x21, 0xd7, 0x6b, 0xa3, 0x71, 0x48, 0xde, 0xe4, 0x8f, 0xc1, 0x20, 0x2c, 0x94, 0x0d, 0x64, 0xe9, - 0x07, 0xe3, 0x31, 0x7c, 0x95, 0x87, 0x92, 0x63, 0x30, 0x45, 0x05, 0xa6, 0x3b, 0x9a, 0xe3, 0x1e, - 0x68, 0xe6, 0x58, 0xcb, 0xf1, 0x87, 0x8c, 0x23, 0xeb, 0x83, 0x58, 0x44, 0x7a, 0xd6, 0x49, 0x68, - 0xbe, 0xc6, 0x23, 0x12, 0x82, 0xb1, 0xad, 0xe7, 0x7a, 0xe4, 0x00, 0xea, 0x24, 0x6c, 0x5f, 0xe7, - 0x5b, 0x8f, 0x62, 0xb7, 0xc3, 0x8c, 0x57, 0x20, 0xed, 0x1a, 0xaf, 0x8c, 0x45, 0xf3, 0x47, 0x7c, - 0xa5, 0x09, 0x00, 0x83, 0x5f, 0x82, 0xd3, 0x23, 0xdb, 0xc4, 0x18, 0x64, 0x7f, 0xcc, 0xc8, 0x4e, - 0x8d, 0x68, 0x15, 0xac, 0x24, 0x9c, 0x94, 0xf2, 0x4f, 0x78, 0x49, 0x40, 0x03, 0x5c, 0xbb, 0xf8, - 0x45, 0xc1, 0xd5, 0x5a, 0x27, 0x8b, 0xda, 0x9f, 0xf2, 0xa8, 0x51, 0x6c, 0x5f, 0xd4, 0xf6, 0xe0, - 0x14, 0x63, 0x3c, 0xd9, 0xba, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0xde, 0xef, 0x5f, 0xdd, 0x9f, 0x81, - 0x05, 0x3f, 0x9c, 0x7c, 0x22, 0x75, 0xd5, 0x8e, 0xd6, 0x1d, 0x83, 0xf9, 0x9b, 0x8c, 0x99, 0x57, - 0x7c, 0x7f, 0xa4, 0x75, 0xb7, 0xb5, 0x2e, 0x26, 0xbf, 0x01, 0x32, 0x27, 0xef, 0x59, 0x0e, 0xd2, - 0xed, 0xb6, 0x65, 0xbc, 0x82, 0x9a, 0x63, 0x50, 0xff, 0xd9, 0xc0, 0x52, 0xed, 0x87, 0xe0, 0x98, - 0x79, 0x13, 0x44, 0x7f, 0x56, 0x51, 0x8d, 0x4e, 0xd7, 0x76, 0xbc, 0x08, 0xc6, 0x3f, 0xe7, 0x2b, - 0xe5, 0xe3, 0x36, 0x09, 0xac, 0x58, 0x85, 0x1c, 0xb9, 0x1c, 0x37, 0x25, 0xff, 0x82, 0x11, 0x4d, - 0x07, 0x28, 0x56, 0x38, 0x74, 0xbb, 0xd3, 0xd5, 0x9c, 0x71, 0xea, 0xdf, 0x5f, 0xf2, 0xc2, 0xc1, - 0x20, 0xac, 0x70, 0x78, 0x87, 0x5d, 0x84, 0xbb, 0xfd, 0x18, 0x0c, 0xdf, 0xe2, 0x85, 0x83, 0x63, - 0x18, 0x05, 0x1f, 0x18, 0xc6, 0xa0, 0xf8, 0x2b, 0x4e, 0xc1, 0x31, 0x98, 0xe2, 0xd3, 0x41, 0xa3, - 0x75, 0x50, 0xdb, 0x70, 0x3d, 0x87, 0xce, 0xc1, 0x0f, 0xa6, 0xfa, 0xf6, 0xfb, 0xfd, 0x43, 0x98, - 0x12, 0x82, 0x16, 0xaf, 0xc3, 0xcc, 0xc0, 0x88, 0x21, 0x45, 0x7d, 0xb3, 0x20, 0xff, 0xec, 0x87, - 0xac, 0x18, 0xf5, 0x4f, 0x18, 0xc5, 0x2d, 0xbc, 0xee, 0xfd, 0x73, 0x40, 0x34, 0xd9, 0xab, 0x1f, - 0xfa, 0x4b, 0xdf, 0x37, 0x06, 0x14, 0xaf, 0xc2, 0x74, 0xdf, 0x0c, 0x10, 0x4d, 0xf5, 0x73, 0x8c, - 0x2a, 0x1b, 0x1e, 0x01, 0x8a, 0x6b, 0x90, 0xc0, 0xfd, 0x3c, 0x1a, 0xfe, 0xf3, 0x0c, 0x4e, 0xcc, - 0x8b, 0x9f, 0x84, 0x14, 0xef, 0xe3, 0xd1, 0xd0, 0x5f, 0x60, 0x50, 0x1f, 0x82, 0xe1, 0xbc, 0x87, - 0x47, 0xc3, 0x7f, 0x91, 0xc3, 0x39, 0x04, 0xc3, 0xc7, 0x0f, 0xe1, 0xdf, 0xfc, 0x52, 0x82, 0xd5, - 0x61, 0x1e, 0xbb, 0x2b, 0x30, 0xc5, 0x9a, 0x77, 0x34, 0xfa, 0xf3, 0xec, 0xe6, 0x1c, 0x51, 0xbc, - 0x08, 0xc9, 0x31, 0x03, 0xfe, 0xcb, 0x0c, 0x4a, 0xed, 0x8b, 0x15, 0xc8, 0x84, 0x1a, 0x76, 0x34, - 0xfc, 0x57, 0x18, 0x3c, 0x8c, 0xc2, 0xae, 0xb3, 0x86, 0x1d, 0x4d, 0xf0, 0xab, 0xdc, 0x75, 0x86, - 0xc0, 0x61, 0xe3, 0xbd, 0x3a, 0x1a, 0xfd, 0x6b, 0x3c, 0xea, 0x1c, 0x52, 0x7c, 0x01, 0xd2, 0x7e, - 0xfd, 0x8d, 0xc6, 0xff, 0x3a, 0xc3, 0x07, 0x18, 0x1c, 0x81, 0x50, 0xfd, 0x8f, 0xa6, 0xf8, 0x02, - 0x8f, 0x40, 0x08, 0x85, 0xb7, 0xd1, 0x60, 0x4f, 0x8f, 0x66, 0xfa, 0x0d, 0xbe, 0x8d, 0x06, 0x5a, - 0x3a, 0x5e, 0x4d, 0x52, 0x06, 0xa3, 0x29, 0x7e, 0x93, 0xaf, 0x26, 0xb1, 0xc7, 0x6e, 0x0c, 0x36, - 0xc9, 0x68, 0x8e, 0xdf, 0xe2, 0x6e, 0x0c, 0xf4, 0xc8, 0xe2, 0x2e, 0x48, 0xc3, 0x0d, 0x32, 0x9a, - 0xef, 0x8b, 0x8c, 0x6f, 0x76, 0xa8, 0x3f, 0x16, 0x5f, 0x84, 0x53, 0xa3, 0x9b, 0x63, 0x34, 0xeb, - 0x97, 0x3e, 0x1c, 0x78, 0x9d, 0x09, 0xf7, 0xc6, 0xe2, 0x5e, 0x50, 0x65, 0xc3, 0x8d, 0x31, 0x9a, - 0xf6, 0xb5, 0x0f, 0xfb, 0x0b, 0x6d, 0xb8, 0x2f, 0x16, 0x4b, 0x00, 0x41, 0x4f, 0x8a, 0xe6, 0x7a, - 0x9d, 0x71, 0x85, 0x40, 0x78, 0x6b, 0xb0, 0x96, 0x14, 0x8d, 0xff, 0x32, 0xdf, 0x1a, 0x0c, 0x81, - 0xb7, 0x06, 0xef, 0x46, 0xd1, 0xe8, 0x37, 0xf8, 0xd6, 0xe0, 0x90, 0xe2, 0x15, 0x48, 0x59, 0x3d, - 0xd3, 0xc4, 0xb9, 0x25, 0x3d, 0xf8, 0x33, 0x22, 0xf9, 0x5f, 0xee, 0x33, 0x30, 0x07, 0x14, 0xd7, - 0x20, 0x89, 0x3a, 0x0d, 0xd4, 0x8c, 0x42, 0xfe, 0xeb, 0x7d, 0x5e, 0x4f, 0xb0, 0x75, 0xf1, 0x05, - 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xdb, 0x7d, 0xf6, 0x85, 0x42, 0x00, 0x09, - 0x08, 0xe8, 0xf7, 0x0e, 0x0f, 0x26, 0x78, 0xbf, 0x9f, 0x80, 0xbc, 0x80, 0x5f, 0x86, 0xa9, 0x9b, - 0xae, 0x6d, 0x79, 0x5a, 0x3b, 0x0a, 0xfd, 0xef, 0x0c, 0xcd, 0xed, 0x71, 0xc0, 0x3a, 0xb6, 0x83, - 0x3c, 0xad, 0xed, 0x46, 0x61, 0xff, 0x83, 0x61, 0x7d, 0x00, 0x06, 0xeb, 0x9a, 0xeb, 0x8d, 0xf3, - 0xdc, 0xff, 0xc9, 0xc1, 0x1c, 0x80, 0x9d, 0xc6, 0xff, 0xdf, 0x42, 0x87, 0x51, 0xd8, 0x0f, 0xb8, - 0xd3, 0xcc, 0xbe, 0xf8, 0x49, 0x48, 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x11, 0xe0, 0xff, 0x62, 0xe0, - 0x00, 0x81, 0xef, 0xec, 0x7a, 0x4d, 0xcf, 0x88, 0x0e, 0xf6, 0x7f, 0xb3, 0x95, 0xe6, 0xf6, 0xc5, - 0x12, 0x64, 0x5c, 0xaf, 0xd9, 0xec, 0xb1, 0x89, 0x26, 0x02, 0xfe, 0x83, 0xfb, 0xfe, 0x4b, 0xae, - 0x8f, 0x29, 0x9f, 0x1b, 0x7d, 0x58, 0x07, 0x1b, 0xf6, 0x86, 0x4d, 0x8f, 0xe9, 0xe0, 0x7e, 0x0a, - 0x1e, 0xd1, 0xed, 0x4e, 0xc3, 0x76, 0x97, 0x69, 0x41, 0x69, 0xd8, 0xde, 0xc1, 0xb2, 0x6d, 0x31, - 0x73, 0x29, 0x6e, 0x5b, 0x68, 0xe1, 0x64, 0xe7, 0x72, 0x85, 0xd3, 0x90, 0xac, 0xf7, 0x1a, 0x8d, - 0x43, 0x49, 0x84, 0xb8, 0xdb, 0x6b, 0xb0, 0x0f, 0x4b, 0xf0, 0xbf, 0x85, 0x77, 0xe2, 0x30, 0x5d, - 0x32, 0xcd, 0xbd, 0xc3, 0x2e, 0x72, 0x6b, 0x16, 0xaa, 0xb5, 0x24, 0x19, 0x26, 0xc9, 0x83, 0x3c, - 0x4f, 0xcc, 0x84, 0x6b, 0x13, 0x0a, 0xbb, 0xf6, 0x35, 0x2b, 0xe4, 0xb8, 0x32, 0xe6, 0x6b, 0x56, - 0x7c, 0xcd, 0x79, 0x7a, 0x5a, 0xe9, 0x6b, 0xce, 0xfb, 0x9a, 0x55, 0x72, 0x66, 0x19, 0xf7, 0x35, - 0xab, 0xbe, 0x66, 0x8d, 0x9c, 0xc9, 0x4f, 0xfb, 0x9a, 0x35, 0x5f, 0x73, 0x81, 0x9c, 0xc2, 0x27, - 0x7c, 0xcd, 0x05, 0x5f, 0x73, 0x91, 0x1c, 0xbe, 0xcf, 0xfa, 0x9a, 0x8b, 0xbe, 0xe6, 0x12, 0x39, - 0x70, 0x97, 0x7c, 0xcd, 0x25, 0x5f, 0x73, 0x99, 0x7c, 0x41, 0x32, 0xe5, 0x6b, 0x2e, 0x4b, 0x0b, - 0x30, 0x45, 0x9f, 0xec, 0x39, 0xf2, 0xab, 0xec, 0xcc, 0xb5, 0x09, 0x85, 0x0b, 0x02, 0xdd, 0xf3, - 0xe4, 0x2b, 0x91, 0xc9, 0x40, 0xf7, 0x7c, 0xa0, 0x5b, 0x21, 0xdf, 0x4a, 0x8b, 0x81, 0x6e, 0x25, - 0xd0, 0x9d, 0x97, 0xa7, 0xf1, 0xfa, 0x07, 0xba, 0xf3, 0x81, 0x6e, 0x55, 0xce, 0xe1, 0x15, 0x08, - 0x74, 0xab, 0x81, 0x6e, 0x4d, 0x9e, 0x39, 0x2b, 0x2c, 0x66, 0x03, 0xdd, 0x9a, 0xf4, 0x2c, 0x64, - 0xdc, 0x5e, 0x43, 0x65, 0x1f, 0x11, 0x90, 0xaf, 0x51, 0x32, 0x2b, 0xb0, 0x84, 0x73, 0x82, 0x2c, - 0xeb, 0xb5, 0x09, 0x05, 0xdc, 0x5e, 0x83, 0x15, 0xc8, 0x72, 0x16, 0xc8, 0x79, 0x82, 0x4a, 0xbe, - 0xc1, 0x2c, 0xbc, 0x2d, 0x40, 0x7a, 0xef, 0x8e, 0x4d, 0x7e, 0x93, 0x75, 0xff, 0x9f, 0x17, 0x97, - 0x3b, 0x7d, 0x7e, 0x95, 0xfc, 0x6c, 0x96, 0xbe, 0x26, 0x28, 0x5c, 0x10, 0xe8, 0xd6, 0xe4, 0xc7, - 0xc8, 0x03, 0xf9, 0xba, 0x35, 0x69, 0x19, 0xb2, 0xa1, 0x07, 0x5a, 0x21, 0x1f, 0x98, 0xf4, 0x3f, - 0x91, 0xa0, 0x64, 0x82, 0x27, 0x5a, 0x29, 0x27, 0x01, 0xa7, 0x3d, 0xfe, 0xe3, 0xdd, 0xb1, 0x0b, - 0x5f, 0x88, 0x41, 0x86, 0x1e, 0x41, 0x92, 0xa7, 0xc2, 0xb7, 0xa2, 0x23, 0xf9, 0x21, 0x73, 0x63, - 0x42, 0xe1, 0x02, 0x49, 0x01, 0xa0, 0xa6, 0x38, 0xc3, 0xa9, 0x27, 0xe5, 0xe7, 0xfe, 0xf1, 0x9d, - 0x33, 0x9f, 0x38, 0x76, 0x07, 0xe1, 0xd8, 0x2d, 0xd3, 0x02, 0xbb, 0xb4, 0x6f, 0x58, 0xde, 0xf3, - 0x2b, 0x97, 0x70, 0x80, 0x03, 0x16, 0x69, 0x1f, 0x52, 0x15, 0xcd, 0x25, 0x5f, 0x98, 0x11, 0xd7, - 0x13, 0xe5, 0x8b, 0xff, 0xfb, 0xce, 0x99, 0xf3, 0x11, 0x8c, 0xac, 0xf6, 0x2d, 0x6d, 0x1f, 0x62, - 0xd6, 0x0b, 0xab, 0x18, 0x7e, 0x6d, 0x42, 0xf1, 0xa9, 0xa4, 0x15, 0xee, 0xea, 0x8e, 0xd6, 0xa1, - 0x5f, 0xd2, 0xc4, 0xcb, 0xe2, 0xd1, 0x3b, 0x67, 0xb2, 0xdb, 0x87, 0x81, 0x3c, 0x70, 0x05, 0x5f, - 0x95, 0x53, 0x30, 0x49, 0x5d, 0x2d, 0xaf, 0xbf, 0x75, 0x2f, 0x3f, 0xf1, 0xf6, 0xbd, 0xfc, 0xc4, - 0x3f, 0xdc, 0xcb, 0x4f, 0xbc, 0x7b, 0x2f, 0x2f, 0x7c, 0x70, 0x2f, 0x2f, 0xfc, 0xf0, 0x5e, 0x5e, - 0xb8, 0x7b, 0x94, 0x17, 0xbe, 0x7a, 0x94, 0x17, 0xbe, 0x71, 0x94, 0x17, 0xbe, 0x7d, 0x94, 0x17, - 0xde, 0x3a, 0xca, 0x4f, 0xbc, 0x7d, 0x94, 0x9f, 0x78, 0xf7, 0x28, 0x2f, 0x7c, 0xff, 0x28, 0x3f, - 0xf1, 0xc1, 0x51, 0x5e, 0xf8, 0xe1, 0x51, 0x5e, 0xb8, 0xfb, 0xbd, 0xbc, 0xf0, 0x7f, 0x01, 0x00, - 0x00, 0xff, 0xff, 0x92, 0x09, 0x9d, 0x38, 0xda, 0x32, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Subby) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Subby") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Subby but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Subby but is not nil && this == nil") - } - if this.Sub != nil && that1.Sub != nil { - if *this.Sub != *that1.Sub { - return fmt.Errorf("Sub this(%v) Not Equal that(%v)", *this.Sub, *that1.Sub) - } - } else if this.Sub != nil { - return fmt.Errorf("this.Sub == nil && that.Sub != nil") - } else if that1.Sub != nil { - return fmt.Errorf("Sub this(%v) Not Equal that(%v)", this.Sub, that1.Sub) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Subby) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Sub != nil && that1.Sub != nil { - if *this.Sub != *that1.Sub { - return false - } - } else if this.Sub != nil { - return false - } else if that1.Sub != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllTypesOneOf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf) - if !ok { - that2, ok := that.(AllTypesOneOf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf but is not nil && this == nil") - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return fmt.Errorf("this.TestOneof != nil && that1.TestOneof == nil") - } - } else if this.TestOneof == nil { - return fmt.Errorf("this.TestOneof == nil && that1.TestOneof != nil") - } else if err := this.TestOneof.VerboseEqual(that1.TestOneof); err != nil { - return err - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AllTypesOneOf_Field1) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field1) - if !ok { - that2, ok := that.(AllTypesOneOf_Field1) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field1") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field1 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field1 but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *AllTypesOneOf_Field2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field2) - if !ok { - that2, ok := that.(AllTypesOneOf_Field2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field2 but is not nil && this == nil") - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - return nil -} -func (this *AllTypesOneOf_Field3) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field3) - if !ok { - that2, ok := that.(AllTypesOneOf_Field3) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field3") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field3 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field3 but is not nil && this == nil") - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - return nil -} -func (this *AllTypesOneOf_Field4) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field4) - if !ok { - that2, ok := that.(AllTypesOneOf_Field4) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field4") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field4 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field4 but is not nil && this == nil") - } - if this.Field4 != that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - return nil -} -func (this *AllTypesOneOf_Field5) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field5) - if !ok { - that2, ok := that.(AllTypesOneOf_Field5) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field5") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field5 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field5 but is not nil && this == nil") - } - if this.Field5 != that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - return nil -} -func (this *AllTypesOneOf_Field6) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field6) - if !ok { - that2, ok := that.(AllTypesOneOf_Field6) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field6") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field6 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field6 but is not nil && this == nil") - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - return nil -} -func (this *AllTypesOneOf_Field7) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field7) - if !ok { - that2, ok := that.(AllTypesOneOf_Field7) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field7") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field7 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field7 but is not nil && this == nil") - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - return nil -} -func (this *AllTypesOneOf_Field8) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field8) - if !ok { - that2, ok := that.(AllTypesOneOf_Field8) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field8") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field8 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field8 but is not nil && this == nil") - } - if this.Field8 != that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - return nil -} -func (this *AllTypesOneOf_Field9) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field9) - if !ok { - that2, ok := that.(AllTypesOneOf_Field9) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field9") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field9 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field9 but is not nil && this == nil") - } - if this.Field9 != that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - return nil -} -func (this *AllTypesOneOf_Field10) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field10) - if !ok { - that2, ok := that.(AllTypesOneOf_Field10) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field10") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field10 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field10 but is not nil && this == nil") - } - if this.Field10 != that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - return nil -} -func (this *AllTypesOneOf_Field11) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field11) - if !ok { - that2, ok := that.(AllTypesOneOf_Field11) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field11") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field11 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field11 but is not nil && this == nil") - } - if this.Field11 != that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - return nil -} -func (this *AllTypesOneOf_Field12) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field12) - if !ok { - that2, ok := that.(AllTypesOneOf_Field12) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field12") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field12 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field12 but is not nil && this == nil") - } - if this.Field12 != that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - return nil -} -func (this *AllTypesOneOf_Field13) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field13) - if !ok { - that2, ok := that.(AllTypesOneOf_Field13) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field13") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field13 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field13 but is not nil && this == nil") - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - return nil -} -func (this *AllTypesOneOf_Field14) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field14) - if !ok { - that2, ok := that.(AllTypesOneOf_Field14) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field14") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field14 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field14 but is not nil && this == nil") - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - return nil -} -func (this *AllTypesOneOf_Field15) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field15) - if !ok { - that2, ok := that.(AllTypesOneOf_Field15) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field15") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field15 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field15 but is not nil && this == nil") - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - return nil -} -func (this *AllTypesOneOf_SubMessage) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_SubMessage) - if !ok { - that2, ok := that.(AllTypesOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_SubMessage") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_SubMessage but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_SubMessage but is not nil && this == nil") - } - if !this.SubMessage.Equal(that1.SubMessage) { - return fmt.Errorf("SubMessage this(%v) Not Equal that(%v)", this.SubMessage, that1.SubMessage) - } - return nil -} -func (this *AllTypesOneOf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf) - if !ok { - that2, ok := that.(AllTypesOneOf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return false - } - } else if this.TestOneof == nil { - return false - } else if !this.TestOneof.Equal(that1.TestOneof) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllTypesOneOf_Field1) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field1) - if !ok { - that2, ok := that.(AllTypesOneOf_Field1) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - return true -} -func (this *AllTypesOneOf_Field2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field2) - if !ok { - that2, ok := that.(AllTypesOneOf_Field2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != that1.Field2 { - return false - } - return true -} -func (this *AllTypesOneOf_Field3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field3) - if !ok { - that2, ok := that.(AllTypesOneOf_Field3) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field3 != that1.Field3 { - return false - } - return true -} -func (this *AllTypesOneOf_Field4) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field4) - if !ok { - that2, ok := that.(AllTypesOneOf_Field4) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field4 != that1.Field4 { - return false - } - return true -} -func (this *AllTypesOneOf_Field5) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field5) - if !ok { - that2, ok := that.(AllTypesOneOf_Field5) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field5 != that1.Field5 { - return false - } - return true -} -func (this *AllTypesOneOf_Field6) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field6) - if !ok { - that2, ok := that.(AllTypesOneOf_Field6) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field6 != that1.Field6 { - return false - } - return true -} -func (this *AllTypesOneOf_Field7) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field7) - if !ok { - that2, ok := that.(AllTypesOneOf_Field7) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field7 != that1.Field7 { - return false - } - return true -} -func (this *AllTypesOneOf_Field8) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field8) - if !ok { - that2, ok := that.(AllTypesOneOf_Field8) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field8 != that1.Field8 { - return false - } - return true -} -func (this *AllTypesOneOf_Field9) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field9) - if !ok { - that2, ok := that.(AllTypesOneOf_Field9) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field9 != that1.Field9 { - return false - } - return true -} -func (this *AllTypesOneOf_Field10) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field10) - if !ok { - that2, ok := that.(AllTypesOneOf_Field10) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field10 != that1.Field10 { - return false - } - return true -} -func (this *AllTypesOneOf_Field11) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field11) - if !ok { - that2, ok := that.(AllTypesOneOf_Field11) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field11 != that1.Field11 { - return false - } - return true -} -func (this *AllTypesOneOf_Field12) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field12) - if !ok { - that2, ok := that.(AllTypesOneOf_Field12) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field12 != that1.Field12 { - return false - } - return true -} -func (this *AllTypesOneOf_Field13) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field13) - if !ok { - that2, ok := that.(AllTypesOneOf_Field13) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field13 != that1.Field13 { - return false - } - return true -} -func (this *AllTypesOneOf_Field14) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field14) - if !ok { - that2, ok := that.(AllTypesOneOf_Field14) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field14 != that1.Field14 { - return false - } - return true -} -func (this *AllTypesOneOf_Field15) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field15) - if !ok { - that2, ok := that.(AllTypesOneOf_Field15) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - return true -} -func (this *AllTypesOneOf_SubMessage) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_SubMessage) - if !ok { - that2, ok := that.(AllTypesOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.SubMessage.Equal(that1.SubMessage) { - return false - } - return true -} -func (this *TwoOneofs) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs) - if !ok { - that2, ok := that.(TwoOneofs) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs but is not nil && this == nil") - } - if that1.One == nil { - if this.One != nil { - return fmt.Errorf("this.One != nil && that1.One == nil") - } - } else if this.One == nil { - return fmt.Errorf("this.One == nil && that1.One != nil") - } else if err := this.One.VerboseEqual(that1.One); err != nil { - return err - } - if that1.Two == nil { - if this.Two != nil { - return fmt.Errorf("this.Two != nil && that1.Two == nil") - } - } else if this.Two == nil { - return fmt.Errorf("this.Two == nil && that1.Two != nil") - } else if err := this.Two.VerboseEqual(that1.Two); err != nil { - return err - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *TwoOneofs_Field1) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field1) - if !ok { - that2, ok := that.(TwoOneofs_Field1) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field1") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field1 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field1 but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *TwoOneofs_Field2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field2) - if !ok { - that2, ok := that.(TwoOneofs_Field2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field2 but is not nil && this == nil") - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - return nil -} -func (this *TwoOneofs_Field3) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field3) - if !ok { - that2, ok := that.(TwoOneofs_Field3) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field3") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field3 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field3 but is not nil && this == nil") - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - return nil -} -func (this *TwoOneofs_Field34) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field34) - if !ok { - that2, ok := that.(TwoOneofs_Field34) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field34") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field34 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field34 but is not nil && this == nil") - } - if this.Field34 != that1.Field34 { - return fmt.Errorf("Field34 this(%v) Not Equal that(%v)", this.Field34, that1.Field34) - } - return nil -} -func (this *TwoOneofs_Field35) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field35) - if !ok { - that2, ok := that.(TwoOneofs_Field35) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field35") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field35 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field35 but is not nil && this == nil") - } - if !bytes.Equal(this.Field35, that1.Field35) { - return fmt.Errorf("Field35 this(%v) Not Equal that(%v)", this.Field35, that1.Field35) - } - return nil -} -func (this *TwoOneofs_SubMessage2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_SubMessage2) - if !ok { - that2, ok := that.(TwoOneofs_SubMessage2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_SubMessage2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_SubMessage2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_SubMessage2 but is not nil && this == nil") - } - if !this.SubMessage2.Equal(that1.SubMessage2) { - return fmt.Errorf("SubMessage2 this(%v) Not Equal that(%v)", this.SubMessage2, that1.SubMessage2) - } - return nil -} -func (this *TwoOneofs) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs) - if !ok { - that2, ok := that.(TwoOneofs) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.One == nil { - if this.One != nil { - return false - } - } else if this.One == nil { - return false - } else if !this.One.Equal(that1.One) { - return false - } - if that1.Two == nil { - if this.Two != nil { - return false - } - } else if this.Two == nil { - return false - } else if !this.Two.Equal(that1.Two) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *TwoOneofs_Field1) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field1) - if !ok { - that2, ok := that.(TwoOneofs_Field1) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - return true -} -func (this *TwoOneofs_Field2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field2) - if !ok { - that2, ok := that.(TwoOneofs_Field2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != that1.Field2 { - return false - } - return true -} -func (this *TwoOneofs_Field3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field3) - if !ok { - that2, ok := that.(TwoOneofs_Field3) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field3 != that1.Field3 { - return false - } - return true -} -func (this *TwoOneofs_Field34) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field34) - if !ok { - that2, ok := that.(TwoOneofs_Field34) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field34 != that1.Field34 { - return false - } - return true -} -func (this *TwoOneofs_Field35) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field35) - if !ok { - that2, ok := that.(TwoOneofs_Field35) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.Field35, that1.Field35) { - return false - } - return true -} -func (this *TwoOneofs_SubMessage2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_SubMessage2) - if !ok { - that2, ok := that.(TwoOneofs_SubMessage2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.SubMessage2.Equal(that1.SubMessage2) { - return false - } - return true -} -func (this *CustomOneof) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof) - if !ok { - that2, ok := that.(CustomOneof) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof but is not nil && this == nil") - } - if that1.Custom == nil { - if this.Custom != nil { - return fmt.Errorf("this.Custom != nil && that1.Custom == nil") - } - } else if this.Custom == nil { - return fmt.Errorf("this.Custom == nil && that1.Custom != nil") - } else if err := this.Custom.VerboseEqual(that1.Custom); err != nil { - return err - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomOneof_Stringy) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_Stringy) - if !ok { - that2, ok := that.(CustomOneof_Stringy) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_Stringy") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_Stringy but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_Stringy but is not nil && this == nil") - } - if this.Stringy != that1.Stringy { - return fmt.Errorf("Stringy this(%v) Not Equal that(%v)", this.Stringy, that1.Stringy) - } - return nil -} -func (this *CustomOneof_CustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_CustomType) - if !ok { - that2, ok := that.(CustomOneof_CustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_CustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_CustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_CustomType but is not nil && this == nil") - } - if !this.CustomType.Equal(that1.CustomType) { - return fmt.Errorf("CustomType this(%v) Not Equal that(%v)", this.CustomType, that1.CustomType) - } - return nil -} -func (this *CustomOneof_CastType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_CastType) - if !ok { - that2, ok := that.(CustomOneof_CastType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_CastType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_CastType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_CastType but is not nil && this == nil") - } - if this.CastType != that1.CastType { - return fmt.Errorf("CastType this(%v) Not Equal that(%v)", this.CastType, that1.CastType) - } - return nil -} -func (this *CustomOneof_MyCustomName) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_MyCustomName) - if !ok { - that2, ok := that.(CustomOneof_MyCustomName) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_MyCustomName") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_MyCustomName but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_MyCustomName but is not nil && this == nil") - } - if this.MyCustomName != that1.MyCustomName { - return fmt.Errorf("MyCustomName this(%v) Not Equal that(%v)", this.MyCustomName, that1.MyCustomName) - } - return nil -} -func (this *CustomOneof) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof) - if !ok { - that2, ok := that.(CustomOneof) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Custom == nil { - if this.Custom != nil { - return false - } - } else if this.Custom == nil { - return false - } else if !this.Custom.Equal(that1.Custom) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomOneof_Stringy) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_Stringy) - if !ok { - that2, ok := that.(CustomOneof_Stringy) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Stringy != that1.Stringy { - return false - } - return true -} -func (this *CustomOneof_CustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_CustomType) - if !ok { - that2, ok := that.(CustomOneof_CustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.CustomType.Equal(that1.CustomType) { - return false - } - return true -} -func (this *CustomOneof_CastType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_CastType) - if !ok { - that2, ok := that.(CustomOneof_CastType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.CastType != that1.CastType { - return false - } - return true -} -func (this *CustomOneof_MyCustomName) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_MyCustomName) - if !ok { - that2, ok := that.(CustomOneof_MyCustomName) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.MyCustomName != that1.MyCustomName { - return false - } - return true -} -func (this *Subby) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&one.Subby{") - if this.Sub != nil { - s = append(s, "Sub: "+valueToGoStringOne(this.Sub, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllTypesOneOf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&one.AllTypesOneOf{") - if this.TestOneof != nil { - s = append(s, "TestOneof: "+fmt.Sprintf("%#v", this.TestOneof)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllTypesOneOf_Field1) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field1{` + - `Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field2{` + - `Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field3) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field3{` + - `Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field4) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field4{` + - `Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field5) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field5{` + - `Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field6) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field6{` + - `Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field7) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field7{` + - `Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field8) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field8{` + - `Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field9) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field9{` + - `Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field10) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field10{` + - `Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field11) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field11{` + - `Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field12) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field12{` + - `Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field13) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field13{` + - `Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field14) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field14{` + - `Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field15) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field15{` + - `Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_SubMessage) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_SubMessage{` + - `SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ") - return s -} -func (this *TwoOneofs) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 10) - s = append(s, "&one.TwoOneofs{") - if this.One != nil { - s = append(s, "One: "+fmt.Sprintf("%#v", this.One)+",\n") - } - if this.Two != nil { - s = append(s, "Two: "+fmt.Sprintf("%#v", this.Two)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *TwoOneofs_Field1) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field1{` + - `Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field2{` + - `Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field3) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field3{` + - `Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field34) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field34{` + - `Field34:` + fmt.Sprintf("%#v", this.Field34) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field35) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field35{` + - `Field35:` + fmt.Sprintf("%#v", this.Field35) + `}`}, ", ") - return s -} -func (this *TwoOneofs_SubMessage2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_SubMessage2{` + - `SubMessage2:` + fmt.Sprintf("%#v", this.SubMessage2) + `}`}, ", ") - return s -} -func (this *CustomOneof) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&one.CustomOneof{") - if this.Custom != nil { - s = append(s, "Custom: "+fmt.Sprintf("%#v", this.Custom)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomOneof_Stringy) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_Stringy{` + - `Stringy:` + fmt.Sprintf("%#v", this.Stringy) + `}`}, ", ") - return s -} -func (this *CustomOneof_CustomType) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_CustomType{` + - `CustomType:` + fmt.Sprintf("%#v", this.CustomType) + `}`}, ", ") - return s -} -func (this *CustomOneof_CastType) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_CastType{` + - `CastType:` + fmt.Sprintf("%#v", this.CastType) + `}`}, ", ") - return s -} -func (this *CustomOneof_MyCustomName) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_MyCustomName{` + - `MyCustomName:` + fmt.Sprintf("%#v", this.MyCustomName) + `}`}, ", ") - return s -} -func valueToGoStringOne(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedSubby(r randyOne, easy bool) *Subby { - this := &Subby{} - if r.Intn(10) != 0 { - v1 := string(randStringOne(r)) - this.Sub = &v1 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 2) - } - return this -} - -func NewPopulatedAllTypesOneOf(r randyOne, easy bool) *AllTypesOneOf { - this := &AllTypesOneOf{} - oneofNumber_TestOneof := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}[r.Intn(16)] - switch oneofNumber_TestOneof { - case 1: - this.TestOneof = NewPopulatedAllTypesOneOf_Field1(r, easy) - case 2: - this.TestOneof = NewPopulatedAllTypesOneOf_Field2(r, easy) - case 3: - this.TestOneof = NewPopulatedAllTypesOneOf_Field3(r, easy) - case 4: - this.TestOneof = NewPopulatedAllTypesOneOf_Field4(r, easy) - case 5: - this.TestOneof = NewPopulatedAllTypesOneOf_Field5(r, easy) - case 6: - this.TestOneof = NewPopulatedAllTypesOneOf_Field6(r, easy) - case 7: - this.TestOneof = NewPopulatedAllTypesOneOf_Field7(r, easy) - case 8: - this.TestOneof = NewPopulatedAllTypesOneOf_Field8(r, easy) - case 9: - this.TestOneof = NewPopulatedAllTypesOneOf_Field9(r, easy) - case 10: - this.TestOneof = NewPopulatedAllTypesOneOf_Field10(r, easy) - case 11: - this.TestOneof = NewPopulatedAllTypesOneOf_Field11(r, easy) - case 12: - this.TestOneof = NewPopulatedAllTypesOneOf_Field12(r, easy) - case 13: - this.TestOneof = NewPopulatedAllTypesOneOf_Field13(r, easy) - case 14: - this.TestOneof = NewPopulatedAllTypesOneOf_Field14(r, easy) - case 15: - this.TestOneof = NewPopulatedAllTypesOneOf_Field15(r, easy) - case 16: - this.TestOneof = NewPopulatedAllTypesOneOf_SubMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 17) - } - return this -} - -func NewPopulatedAllTypesOneOf_Field1(r randyOne, easy bool) *AllTypesOneOf_Field1 { - this := &AllTypesOneOf_Field1{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field2(r randyOne, easy bool) *AllTypesOneOf_Field2 { - this := &AllTypesOneOf_Field2{} - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field3(r randyOne, easy bool) *AllTypesOneOf_Field3 { - this := &AllTypesOneOf_Field3{} - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field4(r randyOne, easy bool) *AllTypesOneOf_Field4 { - this := &AllTypesOneOf_Field4{} - this.Field4 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field5(r randyOne, easy bool) *AllTypesOneOf_Field5 { - this := &AllTypesOneOf_Field5{} - this.Field5 = uint32(r.Uint32()) - return this -} -func NewPopulatedAllTypesOneOf_Field6(r randyOne, easy bool) *AllTypesOneOf_Field6 { - this := &AllTypesOneOf_Field6{} - this.Field6 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedAllTypesOneOf_Field7(r randyOne, easy bool) *AllTypesOneOf_Field7 { - this := &AllTypesOneOf_Field7{} - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field8(r randyOne, easy bool) *AllTypesOneOf_Field8 { - this := &AllTypesOneOf_Field8{} - this.Field8 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field9(r randyOne, easy bool) *AllTypesOneOf_Field9 { - this := &AllTypesOneOf_Field9{} - this.Field9 = uint32(r.Uint32()) - return this -} -func NewPopulatedAllTypesOneOf_Field10(r randyOne, easy bool) *AllTypesOneOf_Field10 { - this := &AllTypesOneOf_Field10{} - this.Field10 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field11(r randyOne, easy bool) *AllTypesOneOf_Field11 { - this := &AllTypesOneOf_Field11{} - this.Field11 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedAllTypesOneOf_Field12(r randyOne, easy bool) *AllTypesOneOf_Field12 { - this := &AllTypesOneOf_Field12{} - this.Field12 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Field13 { - this := &AllTypesOneOf_Field13{} - this.Field13 = bool(bool(r.Intn(2) == 0)) - return this -} -func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { - this := &AllTypesOneOf_Field14{} - this.Field14 = string(randStringOne(r)) - return this -} -func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { - this := &AllTypesOneOf_Field15{} - v2 := r.Intn(100) - this.Field15 = make([]byte, v2) - for i := 0; i < v2; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - return this -} -func NewPopulatedAllTypesOneOf_SubMessage(r randyOne, easy bool) *AllTypesOneOf_SubMessage { - this := &AllTypesOneOf_SubMessage{} - this.SubMessage = NewPopulatedSubby(r, easy) - return this -} -func NewPopulatedTwoOneofs(r randyOne, easy bool) *TwoOneofs { - this := &TwoOneofs{} - oneofNumber_One := []int32{1, 2, 3}[r.Intn(3)] - switch oneofNumber_One { - case 1: - this.One = NewPopulatedTwoOneofs_Field1(r, easy) - case 2: - this.One = NewPopulatedTwoOneofs_Field2(r, easy) - case 3: - this.One = NewPopulatedTwoOneofs_Field3(r, easy) - } - oneofNumber_Two := []int32{34, 35, 36}[r.Intn(3)] - switch oneofNumber_Two { - case 34: - this.Two = NewPopulatedTwoOneofs_Field34(r, easy) - case 35: - this.Two = NewPopulatedTwoOneofs_Field35(r, easy) - case 36: - this.Two = NewPopulatedTwoOneofs_SubMessage2(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 37) - } - return this -} - -func NewPopulatedTwoOneofs_Field1(r randyOne, easy bool) *TwoOneofs_Field1 { - this := &TwoOneofs_Field1{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - return this -} -func NewPopulatedTwoOneofs_Field2(r randyOne, easy bool) *TwoOneofs_Field2 { - this := &TwoOneofs_Field2{} - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - return this -} -func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { - this := &TwoOneofs_Field3{} - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - return this -} -func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { - this := &TwoOneofs_Field34{} - this.Field34 = string(randStringOne(r)) - return this -} -func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { - this := &TwoOneofs_Field35{} - v3 := r.Intn(100) - this.Field35 = make([]byte, v3) - for i := 0; i < v3; i++ { - this.Field35[i] = byte(r.Intn(256)) - } - return this -} -func NewPopulatedTwoOneofs_SubMessage2(r randyOne, easy bool) *TwoOneofs_SubMessage2 { - this := &TwoOneofs_SubMessage2{} - this.SubMessage2 = NewPopulatedSubby(r, easy) - return this -} -func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { - this := &CustomOneof{} - oneofNumber_Custom := []int32{34, 35, 36, 37}[r.Intn(4)] - switch oneofNumber_Custom { - case 34: - this.Custom = NewPopulatedCustomOneof_Stringy(r, easy) - case 35: - this.Custom = NewPopulatedCustomOneof_CustomType(r, easy) - case 36: - this.Custom = NewPopulatedCustomOneof_CastType(r, easy) - case 37: - this.Custom = NewPopulatedCustomOneof_MyCustomName(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 38) - } - return this -} - -func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { - this := &CustomOneof_Stringy{} - this.Stringy = string(randStringOne(r)) - return this -} -func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { - this := &CustomOneof_CustomType{} - v4 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.CustomType = *v4 - return this -} -func NewPopulatedCustomOneof_CastType(r randyOne, easy bool) *CustomOneof_CastType { - this := &CustomOneof_CastType{} - this.CastType = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - return this -} -func NewPopulatedCustomOneof_MyCustomName(r randyOne, easy bool) *CustomOneof_MyCustomName { - this := &CustomOneof_MyCustomName{} - this.MyCustomName = int64(r.Int63()) - if r.Intn(2) == 0 { - this.MyCustomName *= -1 - } - return this -} - -type randyOne interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneOne(r randyOne) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringOne(r randyOne) string { - v5 := r.Intn(100) - tmps := make([]rune, v5) - for i := 0; i < v5; i++ { - tmps[i] = randUTF8RuneOne(r) - } - return string(tmps) -} -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldOne(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - v6 := r.Int63() - if r.Intn(2) == 0 { - v6 *= -1 - } - dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) - case 1: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Subby) Size() (n int) { - var l int - _ = l - if m.Sub != nil { - l = len(*m.Sub) - n += 1 + l + sovOne(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllTypesOneOf) Size() (n int) { - var l int - _ = l - if m.TestOneof != nil { - n += m.TestOneof.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllTypesOneOf_Field1) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *AllTypesOneOf_Field2) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *AllTypesOneOf_Field3) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field3)) - return n -} -func (m *AllTypesOneOf_Field4) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field4)) - return n -} -func (m *AllTypesOneOf_Field5) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field5)) - return n -} -func (m *AllTypesOneOf_Field6) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field6)) - return n -} -func (m *AllTypesOneOf_Field7) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field7)) - return n -} -func (m *AllTypesOneOf_Field8) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field8)) - return n -} -func (m *AllTypesOneOf_Field9) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *AllTypesOneOf_Field10) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *AllTypesOneOf_Field11) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *AllTypesOneOf_Field12) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *AllTypesOneOf_Field13) Size() (n int) { - var l int - _ = l - n += 2 - return n -} -func (m *AllTypesOneOf_Field14) Size() (n int) { - var l int - _ = l - l = len(m.Field14) - n += 1 + l + sovOne(uint64(l)) - return n -} -func (m *AllTypesOneOf_Field15) Size() (n int) { - var l int - _ = l - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovOne(uint64(l)) - } - return n -} -func (m *AllTypesOneOf_SubMessage) Size() (n int) { - var l int - _ = l - if m.SubMessage != nil { - l = m.SubMessage.Size() - n += 2 + l + sovOne(uint64(l)) - } - return n -} -func (m *TwoOneofs) Size() (n int) { - var l int - _ = l - if m.One != nil { - n += m.One.Size() - } - if m.Two != nil { - n += m.Two.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *TwoOneofs_Field1) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *TwoOneofs_Field2) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *TwoOneofs_Field3) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field3)) - return n -} -func (m *TwoOneofs_Field34) Size() (n int) { - var l int - _ = l - l = len(m.Field34) - n += 2 + l + sovOne(uint64(l)) - return n -} -func (m *TwoOneofs_Field35) Size() (n int) { - var l int - _ = l - if m.Field35 != nil { - l = len(m.Field35) - n += 2 + l + sovOne(uint64(l)) - } - return n -} -func (m *TwoOneofs_SubMessage2) Size() (n int) { - var l int - _ = l - if m.SubMessage2 != nil { - l = m.SubMessage2.Size() - n += 2 + l + sovOne(uint64(l)) - } - return n -} -func (m *CustomOneof) Size() (n int) { - var l int - _ = l - if m.Custom != nil { - n += m.Custom.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomOneof_Stringy) Size() (n int) { - var l int - _ = l - l = len(m.Stringy) - n += 2 + l + sovOne(uint64(l)) - return n -} -func (m *CustomOneof_CustomType) Size() (n int) { - var l int - _ = l - l = m.CustomType.Size() - n += 2 + l + sovOne(uint64(l)) - return n -} -func (m *CustomOneof_CastType) Size() (n int) { - var l int - _ = l - n += 2 + sovOne(uint64(m.CastType)) - return n -} -func (m *CustomOneof_MyCustomName) Size() (n int) { - var l int - _ = l - n += 2 + sovOne(uint64(m.MyCustomName)) - return n -} - -func sovOne(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozOne(x uint64) (n int) { - return sovOne(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Subby) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Subby{`, - `Sub:` + valueToStringOne(this.Sub) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf{`, - `TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field1) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field1{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field2{`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field3{`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field4) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field4{`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field5) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field5{`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field6) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field6{`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field7) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field7{`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field8) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field8{`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field9) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field9{`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field10) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field10{`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field11) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field11{`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field12) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field12{`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field13) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field13{`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field14) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field14{`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field15) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field15{`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_SubMessage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_SubMessage{`, - `SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs{`, - `One:` + fmt.Sprintf("%v", this.One) + `,`, - `Two:` + fmt.Sprintf("%v", this.Two) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field1) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field1{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field2{`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field3{`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field34) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field34{`, - `Field34:` + fmt.Sprintf("%v", this.Field34) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field35) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field35{`, - `Field35:` + fmt.Sprintf("%v", this.Field35) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_SubMessage2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_SubMessage2{`, - `SubMessage2:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage2), "Subby", "Subby", 1) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof{`, - `Custom:` + fmt.Sprintf("%v", this.Custom) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_Stringy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_Stringy{`, - `Stringy:` + fmt.Sprintf("%v", this.Stringy) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_CustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_CustomType{`, - `CustomType:` + fmt.Sprintf("%v", this.CustomType) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_CastType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_CastType{`, - `CastType:` + fmt.Sprintf("%v", this.CastType) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_MyCustomName) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_MyCustomName{`, - `MyCustomName:` + fmt.Sprintf("%v", this.MyCustomName) + `,`, - `}`, - }, "") - return s -} -func valueToStringOne(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Subby) 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 *Subby) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Sub != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintOne(dAtA, i, uint64(len(*m.Sub))) - i += copy(dAtA[i:], *m.Sub) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AllTypesOneOf) 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 *AllTypesOneOf) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn1 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AllTypesOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - return i, nil -} -func (m *AllTypesOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - return i, nil -} -func (m *AllTypesOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x18 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field3)) - return i, nil -} -func (m *AllTypesOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x20 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field4)) - return i, nil -} -func (m *AllTypesOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x28 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field5)) - return i, nil -} -func (m *AllTypesOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x30 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field6)) - return i, nil -} -func (m *AllTypesOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x38 - i++ - i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - return i, nil -} -func (m *AllTypesOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x40 - i++ - i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - return i, nil -} -func (m *AllTypesOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 - i += 4 - return i, nil -} -func (m *AllTypesOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 - i += 4 - return i, nil -} -func (m *AllTypesOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 - i += 8 - return i, nil -} -func (m *AllTypesOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 - i += 8 - return i, nil -} -func (m *AllTypesOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x68 - i++ - if m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - return i, nil -} -func (m *AllTypesOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x72 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) - i += copy(dAtA[i:], m.Field14) - return i, nil -} -func (m *AllTypesOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - return i, nil -} -func (m *AllTypesOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.SubMessage != nil { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - return i, nil -} -func (m *TwoOneofs) 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 *TwoOneofs) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.One != nil { - nn3, err := m.One.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn3 - } - if m.Two != nil { - nn4, err := m.Two.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn4 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *TwoOneofs_Field1) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - return i, nil -} -func (m *TwoOneofs_Field2) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - return i, nil -} -func (m *TwoOneofs_Field3) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x18 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field3)) - return i, nil -} -func (m *TwoOneofs_Field34) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x92 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field34))) - i += copy(dAtA[i:], m.Field34) - return i, nil -} -func (m *TwoOneofs_Field35) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Field35 != nil { - dAtA[i] = 0x9a - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field35))) - i += copy(dAtA[i:], m.Field35) - } - return i, nil -} -func (m *TwoOneofs_SubMessage2) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.SubMessage2 != nil { - dAtA[i] = 0xa2 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.SubMessage2.Size())) - n5, err := m.SubMessage2.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - return i, nil -} -func (m *CustomOneof) 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 *CustomOneof) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Custom != nil { - nn6, err := m.Custom.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn6 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomOneof_Stringy) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x92 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Stringy))) - i += copy(dAtA[i:], m.Stringy) - return i, nil -} -func (m *CustomOneof_CustomType) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x9a - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.CustomType.Size())) - n7, err := m.CustomType.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - return i, nil -} -func (m *CustomOneof_CastType) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0xa0 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.CastType)) - return i, nil -} -func (m *CustomOneof_MyCustomName) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0xa8 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.MyCustomName)) - return i, nil -} -func encodeFixed64One(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 encodeFixed32One(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 encodeVarintOne(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 *Subby) 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 ErrIntOverflowOneUnsafe - } - 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: Subby: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Subby: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sub", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Sub = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllTypesOneOf) 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 ErrIntOverflowOneUnsafe - } - 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: AllTypesOneOf: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllTypesOneOf: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &AllTypesOneOf_Field1{v} - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &AllTypesOneOf_Field2{v} - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &AllTypesOneOf_Field3{v} - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &AllTypesOneOf_Field4{v} - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &AllTypesOneOf_Field5{v} - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &AllTypesOneOf_Field6{v} - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.TestOneof = &AllTypesOneOf_Field7{v} - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.TestOneof = &AllTypesOneOf_Field8{int64(v)} - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &AllTypesOneOf_Field9{v} - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &AllTypesOneOf_Field10{v} - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &AllTypesOneOf_Field11{v} - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &AllTypesOneOf_Field12{v} - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.TestOneof = &AllTypesOneOf_Field13{b} - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TestOneof = &AllTypesOneOf_Field14{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := make([]byte, postIndex-iNdEx) - copy(v, dAtA[iNdEx:postIndex]) - m.TestOneof = &AllTypesOneOf_Field15{v} - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubMessage", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Subby{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.TestOneof = &AllTypesOneOf_SubMessage{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TwoOneofs) 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 ErrIntOverflowOneUnsafe - } - 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: TwoOneofs: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TwoOneofs: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.One = &TwoOneofs_Field1{v} - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.One = &TwoOneofs_Field2{v} - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.One = &TwoOneofs_Field3{v} - case 34: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field34", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Two = &TwoOneofs_Field34{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 35: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field35", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := make([]byte, postIndex-iNdEx) - copy(v, dAtA[iNdEx:postIndex]) - m.Two = &TwoOneofs_Field35{v} - iNdEx = postIndex - case 36: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubMessage2", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Subby{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Two = &TwoOneofs_SubMessage2{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomOneof) 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 ErrIntOverflowOneUnsafe - } - 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: CustomOneof: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomOneof: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 34: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stringy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Custom = &CustomOneof_Stringy{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 35: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CustomType", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var vv github_com_gogo_protobuf_test_custom.Uint128 - v := &vv - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Custom = &CustomOneof_CustomType{*v} - iNdEx = postIndex - case 36: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CastType", wireType) - } - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Custom = &CustomOneof_CastType{v} - case 37: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyCustomName", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Custom = &CustomOneof_MyCustomName{v} - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipOneUnsafe(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, ErrIntOverflowOneUnsafe - } - 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, ErrIntOverflowOneUnsafe - } - 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, ErrIntOverflowOneUnsafe - } - 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, ErrInvalidLengthOneUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowOneUnsafe - } - 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 := skipOneUnsafe(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 ( - ErrInvalidLengthOneUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowOneUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeboth/one.proto", fileDescriptorOne) } - -var fileDescriptorOne = []byte{ - // 600 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0x3f, 0x4f, 0xdb, 0x40, - 0x14, 0x00, 0x70, 0x3f, 0x42, 0x42, 0xb8, 0x84, 0x92, 0x7a, 0xba, 0x52, 0xe9, 0x38, 0xa5, 0xad, - 0x74, 0x43, 0x49, 0x88, 0x93, 0xf0, 0x67, 0xac, 0xa9, 0xaa, 0x2c, 0x14, 0xc9, 0xc0, 0x8c, 0x62, - 0x7a, 0x09, 0x91, 0x88, 0x0f, 0x71, 0x67, 0x21, 0x6f, 0x7c, 0x86, 0x7e, 0x8a, 0x8e, 0x1d, 0xfb, - 0x11, 0x18, 0x19, 0xab, 0x0e, 0x11, 0x76, 0x97, 0x8e, 0x8c, 0xa8, 0x53, 0x75, 0x36, 0xb9, 0xab, - 0x54, 0x55, 0x5d, 0x3a, 0xc5, 0xef, 0xfd, 0x7c, 0x2f, 0xef, 0xf9, 0xee, 0xd0, 0xf3, 0x53, 0x31, - 0x0d, 0x85, 0x6c, 0xc7, 0x91, 0x1c, 0x8e, 0x78, 0x28, 0xd4, 0x59, 0x5b, 0x44, 0xbc, 0x75, 0x71, - 0x29, 0x94, 0x70, 0x4b, 0x22, 0xe2, 0x6b, 0x1b, 0xe3, 0x89, 0x3a, 0x8b, 0xc3, 0xd6, 0xa9, 0x98, - 0xb6, 0xc7, 0x62, 0x2c, 0xda, 0xb9, 0x85, 0xf1, 0x28, 0x8f, 0xf2, 0x20, 0x7f, 0x2a, 0xd6, 0x34, - 0x9f, 0xa1, 0xf2, 0x61, 0x1c, 0x86, 0x89, 0xdb, 0x40, 0x25, 0x19, 0x87, 0x18, 0x28, 0xb0, 0xe5, - 0x40, 0x3f, 0x36, 0x67, 0x25, 0xb4, 0xf2, 0xe6, 0xfc, 0xfc, 0x28, 0xb9, 0xe0, 0xf2, 0x20, 0xe2, - 0x07, 0x23, 0x17, 0xa3, 0xca, 0xbb, 0x09, 0x3f, 0xff, 0xd0, 0xc9, 0x5f, 0x83, 0x81, 0x13, 0x3c, - 0xc6, 0x46, 0x3c, 0xbc, 0x40, 0x81, 0x2d, 0x18, 0xf1, 0x8c, 0x74, 0x71, 0x89, 0x02, 0x2b, 0x1b, - 0xe9, 0x1a, 0xe9, 0xe1, 0x45, 0x0a, 0xac, 0x64, 0xa4, 0x67, 0xa4, 0x8f, 0xcb, 0x14, 0xd8, 0x8a, - 0x91, 0xbe, 0x91, 0x2d, 0x5c, 0xa1, 0xc0, 0x16, 0x8d, 0x6c, 0x19, 0xd9, 0xc6, 0x4b, 0x14, 0xd8, - 0x53, 0x23, 0xdb, 0x46, 0x76, 0x70, 0x95, 0x02, 0x73, 0x8d, 0xec, 0x18, 0xd9, 0xc5, 0xcb, 0x14, - 0xd8, 0x92, 0x91, 0x5d, 0x77, 0x0d, 0x2d, 0x15, 0x93, 0x6d, 0x62, 0x44, 0x81, 0xad, 0x0e, 0x9c, - 0x60, 0x9e, 0xb0, 0xd6, 0xc1, 0x35, 0x0a, 0xac, 0x62, 0xad, 0x63, 0xcd, 0xc3, 0x75, 0x0a, 0xac, - 0x61, 0xcd, 0xb3, 0xd6, 0xc5, 0x2b, 0x14, 0x58, 0xd5, 0x5a, 0xd7, 0x5a, 0x0f, 0x3f, 0xd1, 0x3b, - 0x60, 0xad, 0x67, 0xad, 0x8f, 0x57, 0x29, 0xb0, 0xba, 0xb5, 0xbe, 0xbb, 0x81, 0x6a, 0x32, 0x0e, - 0x4f, 0xa6, 0x5c, 0xca, 0xe1, 0x98, 0xe3, 0x06, 0x05, 0x56, 0xf3, 0x50, 0x4b, 0x9f, 0x89, 0x7c, - 0x5b, 0x07, 0x4e, 0x80, 0x64, 0x1c, 0xee, 0x17, 0xee, 0xd7, 0x11, 0x52, 0x5c, 0xaa, 0x13, 0x11, - 0x71, 0x31, 0x6a, 0xde, 0x02, 0x5a, 0x3e, 0xba, 0x12, 0x07, 0x3a, 0x90, 0xff, 0x79, 0x73, 0xe7, - 0x4d, 0x77, 0x7b, 0xb8, 0x99, 0x0f, 0x04, 0xc1, 0x3c, 0x61, 0xad, 0x8f, 0x5f, 0xe4, 0x03, 0x19, - 0xeb, 0xbb, 0x6d, 0x54, 0xff, 0x6d, 0x20, 0x0f, 0xbf, 0xfc, 0x63, 0x22, 0x08, 0x6a, 0x76, 0x22, - 0xcf, 0x2f, 0x23, 0x7d, 0xec, 0xf5, 0x8f, 0xba, 0x12, 0xcd, 0x8f, 0x0b, 0xa8, 0xb6, 0x17, 0x4b, - 0x25, 0xa6, 0xf9, 0x54, 0xfa, 0xaf, 0x0e, 0xd5, 0xe5, 0x24, 0x1a, 0x27, 0x8f, 0x6d, 0x38, 0xc1, - 0x3c, 0xe1, 0x06, 0x08, 0x15, 0xaf, 0xea, 0x13, 0x5e, 0x74, 0xe2, 0x6f, 0x7e, 0x9b, 0xad, 0xbf, - 0xfe, 0xeb, 0x0d, 0xd2, 0xdf, 0xae, 0x7d, 0x9a, 0xaf, 0x69, 0x1d, 0x4f, 0x22, 0xd5, 0xf1, 0x76, - 0xf4, 0x07, 0xb6, 0x55, 0xdc, 0x63, 0x54, 0xdd, 0x1b, 0x4a, 0x95, 0x57, 0xd4, 0xad, 0x2f, 0xfa, - 0xdb, 0x3f, 0x67, 0xeb, 0xdd, 0x7f, 0x54, 0x1c, 0x4a, 0xa5, 0x92, 0x0b, 0xde, 0xda, 0x4f, 0x74, - 0xd5, 0xad, 0x9e, 0x5e, 0x3e, 0x70, 0x02, 0x53, 0xca, 0xf5, 0xe6, 0xad, 0xbe, 0x1f, 0x4e, 0x39, - 0x7e, 0xa5, 0xaf, 0x8b, 0xdf, 0xc8, 0x66, 0xeb, 0xf5, 0xfd, 0xc4, 0xe6, 0x6d, 0x2b, 0x3a, 0xf2, - 0xab, 0xa8, 0x52, 0xb4, 0xea, 0xbf, 0xbd, 0x49, 0x89, 0x73, 0x9b, 0x12, 0xe7, 0x6b, 0x4a, 0x9c, - 0xbb, 0x94, 0xc0, 0x7d, 0x4a, 0xe0, 0x21, 0x25, 0x70, 0x9d, 0x11, 0xf8, 0x94, 0x11, 0xf8, 0x9c, - 0x11, 0xf8, 0x92, 0x11, 0xb8, 0xc9, 0x88, 0x73, 0x9b, 0x11, 0xe7, 0x2e, 0x23, 0xf0, 0x23, 0x23, - 0xce, 0x7d, 0x46, 0xe0, 0x21, 0x23, 0x70, 0xfd, 0x9d, 0xc0, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xa5, 0xf3, 0xa9, 0x7e, 0x7b, 0x04, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.proto deleted file mode 100644 index 3e17abed0..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/one.proto +++ /dev/null @@ -1,103 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; - -package one; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message Subby { - optional string sub = 1; -} - -message AllTypesOneOf { - oneof test_oneof { - double Field1 = 1; - float Field2 = 2; - int32 Field3 = 3; - int64 Field4 = 4; - uint32 Field5 = 5; - uint64 Field6 = 6; - sint32 Field7 = 7; - sint64 Field8 = 8; - fixed32 Field9 = 9; - sfixed32 Field10 = 10; - fixed64 Field11 = 11; - sfixed64 Field12 = 12; - bool Field13 = 13; - string Field14 = 14; - bytes Field15 = 15; - Subby sub_message = 16; - } -} - -message TwoOneofs { - oneof one { - double Field1 = 1; - float Field2 = 2; - int32 Field3 = 3; - } - - oneof two { - string Field34 = 34; - bytes Field35 = 35; - Subby sub_message2 = 36; - } -} - -message CustomOneof { - oneof custom { - string Stringy = 34; - bytes CustomType = 35 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; - uint64 CastType = 36 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - int64 CustomName = 37 [(gogoproto.customname) = "MyCustomName"]; - } -} diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/onepb_test.go deleted file mode 100644 index 09f0c6976..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeboth/onepb_test.go +++ /dev/null @@ -1,792 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/one.proto -// DO NOT EDIT! - -/* -Package one is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeboth/one.proto - -It has these top-level messages: - Subby - AllTypesOneOf - TwoOneofs - CustomOneof -*/ -package one - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestSubbyProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestSubbyMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllTypesOneOfProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllTypesOneOfMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTwoOneofsProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestTwoOneofsMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomOneofProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomOneofMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllTypesOneOfJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllTypesOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestTwoOneofsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &TwoOneofs{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomOneofJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomOneof{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestSubbyProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllTypesOneOfProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllTypesOneOfProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTwoOneofsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTwoOneofsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomOneofProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomOneofProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneDescription(t *testing.T) { - OneDescription() -} -func TestSubbyVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllTypesOneOfVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestTwoOneofsVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomOneofVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllTypesOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllTypesOneOf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestTwoOneofsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTwoOneofs(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomOneofGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomOneof(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestSubbySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestAllTypesOneOfSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestTwoOneofsSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestCustomOneofSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllTypesOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllTypesOneOf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestTwoOneofsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTwoOneofs(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomOneofStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomOneof(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.pb.go deleted file mode 100644 index 5b10110ba..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.pb.go +++ /dev/null @@ -1,4758 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/one.proto -// DO NOT EDIT! - -/* -Package one is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/one.proto - -It has these top-level messages: - Subby - AllTypesOneOf - TwoOneofs - CustomOneof -*/ -package one - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" - -import unsafe "unsafe" - -// 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 - -type Subby struct { - Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Subby) Reset() { *m = Subby{} } -func (*Subby) ProtoMessage() {} -func (*Subby) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{0} } - -type AllTypesOneOf struct { - // Types that are valid to be assigned to TestOneof: - // *AllTypesOneOf_Field1 - // *AllTypesOneOf_Field2 - // *AllTypesOneOf_Field3 - // *AllTypesOneOf_Field4 - // *AllTypesOneOf_Field5 - // *AllTypesOneOf_Field6 - // *AllTypesOneOf_Field7 - // *AllTypesOneOf_Field8 - // *AllTypesOneOf_Field9 - // *AllTypesOneOf_Field10 - // *AllTypesOneOf_Field11 - // *AllTypesOneOf_Field12 - // *AllTypesOneOf_Field13 - // *AllTypesOneOf_Field14 - // *AllTypesOneOf_Field15 - // *AllTypesOneOf_SubMessage - TestOneof isAllTypesOneOf_TestOneof `protobuf_oneof:"test_oneof"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AllTypesOneOf) Reset() { *m = AllTypesOneOf{} } -func (*AllTypesOneOf) ProtoMessage() {} -func (*AllTypesOneOf) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{1} } - -type isAllTypesOneOf_TestOneof interface { - isAllTypesOneOf_TestOneof() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` -} -type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` -} -type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` -} -type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` -} -type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` -} -type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` -} -type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` -} -type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` -} -type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` -} -type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` -} -type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` -} -type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` -} -type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` -} -type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` -} -type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` -} -type AllTypesOneOf_SubMessage struct { - SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` -} - -func (*AllTypesOneOf_Field1) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field2) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field3) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field4) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field5) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field6) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field7) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field8) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field9) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field10) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field11) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field12) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field13) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field14) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field15) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_SubMessage) isAllTypesOneOf_TestOneof() {} - -func (m *AllTypesOneOf) GetTestOneof() isAllTypesOneOf_TestOneof { - if m != nil { - return m.TestOneof - } - return nil -} - -func (m *AllTypesOneOf) GetField1() float64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field1); ok { - return x.Field1 - } - return 0 -} - -func (m *AllTypesOneOf) GetField2() float32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field2); ok { - return x.Field2 - } - return 0 -} - -func (m *AllTypesOneOf) GetField3() int32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field3); ok { - return x.Field3 - } - return 0 -} - -func (m *AllTypesOneOf) GetField4() int64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field4); ok { - return x.Field4 - } - return 0 -} - -func (m *AllTypesOneOf) GetField5() uint32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field5); ok { - return x.Field5 - } - return 0 -} - -func (m *AllTypesOneOf) GetField6() uint64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field6); ok { - return x.Field6 - } - return 0 -} - -func (m *AllTypesOneOf) GetField7() int32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field7); ok { - return x.Field7 - } - return 0 -} - -func (m *AllTypesOneOf) GetField8() int64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field8); ok { - return x.Field8 - } - return 0 -} - -func (m *AllTypesOneOf) GetField9() uint32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field9); ok { - return x.Field9 - } - return 0 -} - -func (m *AllTypesOneOf) GetField10() int32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field10); ok { - return x.Field10 - } - return 0 -} - -func (m *AllTypesOneOf) GetField11() uint64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field11); ok { - return x.Field11 - } - return 0 -} - -func (m *AllTypesOneOf) GetField12() int64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field12); ok { - return x.Field12 - } - return 0 -} - -func (m *AllTypesOneOf) GetField13() bool { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field13); ok { - return x.Field13 - } - return false -} - -func (m *AllTypesOneOf) GetField14() string { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field14); ok { - return x.Field14 - } - return "" -} - -func (m *AllTypesOneOf) GetField15() []byte { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field15); ok { - return x.Field15 - } - return nil -} - -func (m *AllTypesOneOf) GetSubMessage() *Subby { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_SubMessage); ok { - return x.SubMessage - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*AllTypesOneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _AllTypesOneOf_OneofMarshaler, _AllTypesOneOf_OneofUnmarshaler, _AllTypesOneOf_OneofSizer, []interface{}{ - (*AllTypesOneOf_Field1)(nil), - (*AllTypesOneOf_Field2)(nil), - (*AllTypesOneOf_Field3)(nil), - (*AllTypesOneOf_Field4)(nil), - (*AllTypesOneOf_Field5)(nil), - (*AllTypesOneOf_Field6)(nil), - (*AllTypesOneOf_Field7)(nil), - (*AllTypesOneOf_Field8)(nil), - (*AllTypesOneOf_Field9)(nil), - (*AllTypesOneOf_Field10)(nil), - (*AllTypesOneOf_Field11)(nil), - (*AllTypesOneOf_Field12)(nil), - (*AllTypesOneOf_Field13)(nil), - (*AllTypesOneOf_Field14)(nil), - (*AllTypesOneOf_Field15)(nil), - (*AllTypesOneOf_SubMessage)(nil), - } -} - -func _AllTypesOneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*AllTypesOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *AllTypesOneOf_Field1: - _ = b.EncodeVarint(1<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.Field1)) - case *AllTypesOneOf_Field2: - _ = b.EncodeVarint(2<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2))) - case *AllTypesOneOf_Field3: - _ = b.EncodeVarint(3<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field3)) - case *AllTypesOneOf_Field4: - _ = b.EncodeVarint(4<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field4)) - case *AllTypesOneOf_Field5: - _ = b.EncodeVarint(5<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field5)) - case *AllTypesOneOf_Field6: - _ = b.EncodeVarint(6<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field6)) - case *AllTypesOneOf_Field7: - _ = b.EncodeVarint(7<<3 | proto.WireVarint) - _ = b.EncodeZigzag32(uint64(x.Field7)) - case *AllTypesOneOf_Field8: - _ = b.EncodeVarint(8<<3 | proto.WireVarint) - _ = b.EncodeZigzag64(uint64(x.Field8)) - case *AllTypesOneOf_Field9: - _ = b.EncodeVarint(9<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field9)) - case *AllTypesOneOf_Field10: - _ = b.EncodeVarint(10<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field10)) - case *AllTypesOneOf_Field11: - _ = b.EncodeVarint(11<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field11)) - case *AllTypesOneOf_Field12: - _ = b.EncodeVarint(12<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field12)) - case *AllTypesOneOf_Field13: - t := uint64(0) - if x.Field13 { - t = 1 - } - _ = b.EncodeVarint(13<<3 | proto.WireVarint) - _ = b.EncodeVarint(t) - case *AllTypesOneOf_Field14: - _ = b.EncodeVarint(14<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Field14) - case *AllTypesOneOf_Field15: - _ = b.EncodeVarint(15<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Field15) - case *AllTypesOneOf_SubMessage: - _ = b.EncodeVarint(16<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.SubMessage); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("AllTypesOneOf.TestOneof has unexpected type %T", x) - } - return nil -} - -func _AllTypesOneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*AllTypesOneOf) - switch tag { - case 1: // test_oneof.Field1 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &AllTypesOneOf_Field1{math.Float64frombits(x)} - return true, err - case 2: // test_oneof.Field2 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &AllTypesOneOf_Field2{math.Float32frombits(uint32(x))} - return true, err - case 3: // test_oneof.Field3 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field3{int32(x)} - return true, err - case 4: // test_oneof.Field4 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field4{int64(x)} - return true, err - case 5: // test_oneof.Field5 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field5{uint32(x)} - return true, err - case 6: // test_oneof.Field6 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field6{x} - return true, err - case 7: // test_oneof.Field7 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag32() - m.TestOneof = &AllTypesOneOf_Field7{int32(x)} - return true, err - case 8: // test_oneof.Field8 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag64() - m.TestOneof = &AllTypesOneOf_Field8{int64(x)} - return true, err - case 9: // test_oneof.Field9 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &AllTypesOneOf_Field9{uint32(x)} - return true, err - case 10: // test_oneof.Field10 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &AllTypesOneOf_Field10{int32(x)} - return true, err - case 11: // test_oneof.Field11 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &AllTypesOneOf_Field11{x} - return true, err - case 12: // test_oneof.Field12 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &AllTypesOneOf_Field12{int64(x)} - return true, err - case 13: // test_oneof.Field13 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field13{x != 0} - return true, err - case 14: // test_oneof.Field14 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.TestOneof = &AllTypesOneOf_Field14{x} - return true, err - case 15: // test_oneof.Field15 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.TestOneof = &AllTypesOneOf_Field15{x} - return true, err - case 16: // test_oneof.sub_message - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Subby) - err := b.DecodeMessage(msg) - m.TestOneof = &AllTypesOneOf_SubMessage{msg} - return true, err - default: - return false, nil - } -} - -func _AllTypesOneOf_OneofSizer(msg proto.Message) (n int) { - m := msg.(*AllTypesOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *AllTypesOneOf_Field1: - n += proto.SizeVarint(1<<3 | proto.WireFixed64) - n += 8 - case *AllTypesOneOf_Field2: - n += proto.SizeVarint(2<<3 | proto.WireFixed32) - n += 4 - case *AllTypesOneOf_Field3: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field3)) - case *AllTypesOneOf_Field4: - n += proto.SizeVarint(4<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field4)) - case *AllTypesOneOf_Field5: - n += proto.SizeVarint(5<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field5)) - case *AllTypesOneOf_Field6: - n += proto.SizeVarint(6<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field6)) - case *AllTypesOneOf_Field7: - n += proto.SizeVarint(7<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64((uint32(x.Field7) << 1) ^ uint32((int32(x.Field7) >> 31)))) - case *AllTypesOneOf_Field8: - n += proto.SizeVarint(8<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(uint64(x.Field8<<1) ^ uint64((int64(x.Field8) >> 63)))) - case *AllTypesOneOf_Field9: - n += proto.SizeVarint(9<<3 | proto.WireFixed32) - n += 4 - case *AllTypesOneOf_Field10: - n += proto.SizeVarint(10<<3 | proto.WireFixed32) - n += 4 - case *AllTypesOneOf_Field11: - n += proto.SizeVarint(11<<3 | proto.WireFixed64) - n += 8 - case *AllTypesOneOf_Field12: - n += proto.SizeVarint(12<<3 | proto.WireFixed64) - n += 8 - case *AllTypesOneOf_Field13: - n += proto.SizeVarint(13<<3 | proto.WireVarint) - n += 1 - case *AllTypesOneOf_Field14: - n += proto.SizeVarint(14<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field14))) - n += len(x.Field14) - case *AllTypesOneOf_Field15: - n += proto.SizeVarint(15<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field15))) - n += len(x.Field15) - case *AllTypesOneOf_SubMessage: - s := proto.Size(x.SubMessage) - n += proto.SizeVarint(16<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type TwoOneofs struct { - // Types that are valid to be assigned to One: - // *TwoOneofs_Field1 - // *TwoOneofs_Field2 - // *TwoOneofs_Field3 - One isTwoOneofs_One `protobuf_oneof:"one"` - // Types that are valid to be assigned to Two: - // *TwoOneofs_Field34 - // *TwoOneofs_Field35 - // *TwoOneofs_SubMessage2 - Two isTwoOneofs_Two `protobuf_oneof:"two"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *TwoOneofs) Reset() { *m = TwoOneofs{} } -func (*TwoOneofs) ProtoMessage() {} -func (*TwoOneofs) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{2} } - -type isTwoOneofs_One interface { - isTwoOneofs_One() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} -type isTwoOneofs_Two interface { - isTwoOneofs_Two() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` -} -type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` -} -type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` -} -type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` -} -type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` -} -type TwoOneofs_SubMessage2 struct { - SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` -} - -func (*TwoOneofs_Field1) isTwoOneofs_One() {} -func (*TwoOneofs_Field2) isTwoOneofs_One() {} -func (*TwoOneofs_Field3) isTwoOneofs_One() {} -func (*TwoOneofs_Field34) isTwoOneofs_Two() {} -func (*TwoOneofs_Field35) isTwoOneofs_Two() {} -func (*TwoOneofs_SubMessage2) isTwoOneofs_Two() {} - -func (m *TwoOneofs) GetOne() isTwoOneofs_One { - if m != nil { - return m.One - } - return nil -} -func (m *TwoOneofs) GetTwo() isTwoOneofs_Two { - if m != nil { - return m.Two - } - return nil -} - -func (m *TwoOneofs) GetField1() float64 { - if x, ok := m.GetOne().(*TwoOneofs_Field1); ok { - return x.Field1 - } - return 0 -} - -func (m *TwoOneofs) GetField2() float32 { - if x, ok := m.GetOne().(*TwoOneofs_Field2); ok { - return x.Field2 - } - return 0 -} - -func (m *TwoOneofs) GetField3() int32 { - if x, ok := m.GetOne().(*TwoOneofs_Field3); ok { - return x.Field3 - } - return 0 -} - -func (m *TwoOneofs) GetField34() string { - if x, ok := m.GetTwo().(*TwoOneofs_Field34); ok { - return x.Field34 - } - return "" -} - -func (m *TwoOneofs) GetField35() []byte { - if x, ok := m.GetTwo().(*TwoOneofs_Field35); ok { - return x.Field35 - } - return nil -} - -func (m *TwoOneofs) GetSubMessage2() *Subby { - if x, ok := m.GetTwo().(*TwoOneofs_SubMessage2); ok { - return x.SubMessage2 - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*TwoOneofs) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _TwoOneofs_OneofMarshaler, _TwoOneofs_OneofUnmarshaler, _TwoOneofs_OneofSizer, []interface{}{ - (*TwoOneofs_Field1)(nil), - (*TwoOneofs_Field2)(nil), - (*TwoOneofs_Field3)(nil), - (*TwoOneofs_Field34)(nil), - (*TwoOneofs_Field35)(nil), - (*TwoOneofs_SubMessage2)(nil), - } -} - -func _TwoOneofs_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*TwoOneofs) - // one - switch x := m.One.(type) { - case *TwoOneofs_Field1: - _ = b.EncodeVarint(1<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.Field1)) - case *TwoOneofs_Field2: - _ = b.EncodeVarint(2<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2))) - case *TwoOneofs_Field3: - _ = b.EncodeVarint(3<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field3)) - case nil: - default: - return fmt.Errorf("TwoOneofs.One has unexpected type %T", x) - } - // two - switch x := m.Two.(type) { - case *TwoOneofs_Field34: - _ = b.EncodeVarint(34<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Field34) - case *TwoOneofs_Field35: - _ = b.EncodeVarint(35<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Field35) - case *TwoOneofs_SubMessage2: - _ = b.EncodeVarint(36<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.SubMessage2); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("TwoOneofs.Two has unexpected type %T", x) - } - return nil -} - -func _TwoOneofs_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*TwoOneofs) - switch tag { - case 1: // one.Field1 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.One = &TwoOneofs_Field1{math.Float64frombits(x)} - return true, err - case 2: // one.Field2 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.One = &TwoOneofs_Field2{math.Float32frombits(uint32(x))} - return true, err - case 3: // one.Field3 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.One = &TwoOneofs_Field3{int32(x)} - return true, err - case 34: // two.Field34 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Two = &TwoOneofs_Field34{x} - return true, err - case 35: // two.Field35 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Two = &TwoOneofs_Field35{x} - return true, err - case 36: // two.sub_message2 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Subby) - err := b.DecodeMessage(msg) - m.Two = &TwoOneofs_SubMessage2{msg} - return true, err - default: - return false, nil - } -} - -func _TwoOneofs_OneofSizer(msg proto.Message) (n int) { - m := msg.(*TwoOneofs) - // one - switch x := m.One.(type) { - case *TwoOneofs_Field1: - n += proto.SizeVarint(1<<3 | proto.WireFixed64) - n += 8 - case *TwoOneofs_Field2: - n += proto.SizeVarint(2<<3 | proto.WireFixed32) - n += 4 - case *TwoOneofs_Field3: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field3)) - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - // two - switch x := m.Two.(type) { - case *TwoOneofs_Field34: - n += proto.SizeVarint(34<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field34))) - n += len(x.Field34) - case *TwoOneofs_Field35: - n += proto.SizeVarint(35<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field35))) - n += len(x.Field35) - case *TwoOneofs_SubMessage2: - s := proto.Size(x.SubMessage2) - n += proto.SizeVarint(36<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type CustomOneof struct { - // Types that are valid to be assigned to Custom: - // *CustomOneof_Stringy - // *CustomOneof_CustomType - // *CustomOneof_CastType - // *CustomOneof_MyCustomName - Custom isCustomOneof_Custom `protobuf_oneof:"custom"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomOneof) Reset() { *m = CustomOneof{} } -func (*CustomOneof) ProtoMessage() {} -func (*CustomOneof) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{3} } - -type isCustomOneof_Custom interface { - isCustomOneof_Custom() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` -} -type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` -} -type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` -} -type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` -} - -func (*CustomOneof_Stringy) isCustomOneof_Custom() {} -func (*CustomOneof_CustomType) isCustomOneof_Custom() {} -func (*CustomOneof_CastType) isCustomOneof_Custom() {} -func (*CustomOneof_MyCustomName) isCustomOneof_Custom() {} - -func (m *CustomOneof) GetCustom() isCustomOneof_Custom { - if m != nil { - return m.Custom - } - return nil -} - -func (m *CustomOneof) GetStringy() string { - if x, ok := m.GetCustom().(*CustomOneof_Stringy); ok { - return x.Stringy - } - return "" -} - -func (m *CustomOneof) GetCastType() github_com_gogo_protobuf_test_casttype.MyUint64Type { - if x, ok := m.GetCustom().(*CustomOneof_CastType); ok { - return x.CastType - } - return 0 -} - -func (m *CustomOneof) GetMyCustomName() int64 { - if x, ok := m.GetCustom().(*CustomOneof_MyCustomName); ok { - return x.MyCustomName - } - return 0 -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*CustomOneof) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _CustomOneof_OneofMarshaler, _CustomOneof_OneofUnmarshaler, _CustomOneof_OneofSizer, []interface{}{ - (*CustomOneof_Stringy)(nil), - (*CustomOneof_CustomType)(nil), - (*CustomOneof_CastType)(nil), - (*CustomOneof_MyCustomName)(nil), - } -} - -func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*CustomOneof) - // custom - switch x := m.Custom.(type) { - case *CustomOneof_Stringy: - _ = b.EncodeVarint(34<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Stringy) - case *CustomOneof_CustomType: - _ = b.EncodeVarint(35<<3 | proto.WireBytes) - dAtA, err := x.CustomType.Marshal() - if err != nil { - return err - } - _ = b.EncodeRawBytes(dAtA) - case *CustomOneof_CastType: - _ = b.EncodeVarint(36<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.CastType)) - case *CustomOneof_MyCustomName: - _ = b.EncodeVarint(37<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.MyCustomName)) - case nil: - default: - return fmt.Errorf("CustomOneof.Custom has unexpected type %T", x) - } - return nil -} - -func _CustomOneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*CustomOneof) - switch tag { - case 34: // custom.Stringy - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Custom = &CustomOneof_Stringy{x} - return true, err - case 35: // custom.CustomType - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - if err != nil { - return true, err - } - var cc github_com_gogo_protobuf_test_custom.Uint128 - c := &cc - err = c.Unmarshal(x) - m.Custom = &CustomOneof_CustomType{*c} - return true, err - case 36: // custom.CastType - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Custom = &CustomOneof_CastType{github_com_gogo_protobuf_test_casttype.MyUint64Type(x)} - return true, err - case 37: // custom.CustomName - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Custom = &CustomOneof_MyCustomName{int64(x)} - return true, err - default: - return false, nil - } -} - -func _CustomOneof_OneofSizer(msg proto.Message) (n int) { - m := msg.(*CustomOneof) - // custom - switch x := m.Custom.(type) { - case *CustomOneof_Stringy: - n += proto.SizeVarint(34<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Stringy))) - n += len(x.Stringy) - case *CustomOneof_CustomType: - n += proto.SizeVarint(35<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(x.CustomType.Size())) - n += x.CustomType.Size() - case *CustomOneof_CastType: - n += proto.SizeVarint(36<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.CastType)) - case *CustomOneof_MyCustomName: - n += proto.SizeVarint(37<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.MyCustomName)) - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*Subby)(nil), "one.Subby") - proto.RegisterType((*AllTypesOneOf)(nil), "one.AllTypesOneOf") - proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs") - proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof") -} -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *AllTypesOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *TwoOneofs) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 4041 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0x5c, 0x2d, 0x6d, - 0xc7, 0xb2, 0x1d, 0x4b, 0xb6, 0x2e, 0x7b, 0xe1, 0x36, 0xf1, 0x90, 0x14, 0x57, 0xab, 0xad, 0x24, - 0x2a, 0xa0, 0x14, 0xaf, 0xd3, 0x07, 0x0c, 0x04, 0xfe, 0xa4, 0xb0, 0x0b, 0x02, 0x0c, 0x00, 0xee, - 0x5a, 0x7e, 0xda, 0x8e, 0x7b, 0x99, 0x4c, 0xa7, 0xb7, 0xb4, 0x33, 0x4d, 0x5c, 0xc7, 0x6d, 0x33, - 0xd3, 0x3a, 0x4d, 0x7a, 0x49, 0x7a, 0x49, 0x33, 0x7d, 0xea, 0x4b, 0x5a, 0x3f, 0x75, 0x9c, 0xb7, - 0x4e, 0xa7, 0xe3, 0xf1, 0x2a, 0x9e, 0x69, 0xda, 0xba, 0xad, 0xdb, 0x78, 0xa6, 0x99, 0xfa, 0xa5, - 0xf3, 0xdf, 0x00, 0xf0, 0xa2, 0x05, 0x95, 0xa9, 0x93, 0x27, 0x09, 0xe7, 0x9c, 0xef, 0xc3, 0xc1, - 0xf9, 0xcf, 0x7f, 0xce, 0xc1, 0x4f, 0xc0, 0xf7, 0xd6, 0x60, 0xbe, 0x65, 0xdb, 0x2d, 0x13, 0x2d, - 0x75, 0x1c, 0xdb, 0xb3, 0x0f, 0xba, 0xcd, 0xa5, 0x06, 0x72, 0x75, 0xc7, 0xe8, 0x78, 0xb6, 0xb3, - 0x48, 0x64, 0xd2, 0x14, 0xb5, 0x58, 0xe4, 0x16, 0x85, 0x6d, 0x98, 0xbe, 0x66, 0x98, 0x68, 0xdd, - 0x37, 0xac, 0x23, 0x4f, 0xba, 0x0c, 0x89, 0xa6, 0x61, 0x22, 0x59, 0x98, 0x8f, 0x2f, 0x64, 0x96, - 0x1f, 0x5b, 0xec, 0x03, 0x2d, 0xf6, 0x22, 0x76, 0xb1, 0x58, 0x21, 0x88, 0xc2, 0xbb, 0x09, 0x98, - 0x19, 0xa2, 0x95, 0x24, 0x48, 0x58, 0x5a, 0x1b, 0x33, 0x0a, 0x0b, 0x69, 0x85, 0xfc, 0x2f, 0xc9, - 0x30, 0xd1, 0xd1, 0xf4, 0xdb, 0x5a, 0x0b, 0xc9, 0x31, 0x22, 0xe6, 0x97, 0x52, 0x1e, 0xa0, 0x81, - 0x3a, 0xc8, 0x6a, 0x20, 0x4b, 0x3f, 0x92, 0xe3, 0xf3, 0xf1, 0x85, 0xb4, 0x12, 0x92, 0x48, 0x4f, - 0xc3, 0x74, 0xa7, 0x7b, 0x60, 0x1a, 0xba, 0x1a, 0x32, 0x83, 0xf9, 0xf8, 0x42, 0x52, 0x11, 0xa9, - 0x62, 0x3d, 0x30, 0x7e, 0x02, 0xa6, 0xee, 0x22, 0xed, 0x76, 0xd8, 0x34, 0x43, 0x4c, 0x73, 0x58, - 0x1c, 0x32, 0xac, 0x40, 0xb6, 0x8d, 0x5c, 0x57, 0x6b, 0x21, 0xd5, 0x3b, 0xea, 0x20, 0x39, 0x41, - 0x9e, 0x7e, 0x7e, 0xe0, 0xe9, 0xfb, 0x9f, 0x3c, 0xc3, 0x50, 0x7b, 0x47, 0x1d, 0x24, 0x95, 0x20, - 0x8d, 0xac, 0x6e, 0x9b, 0x32, 0x24, 0x4f, 0x88, 0x5f, 0xd5, 0xea, 0xb6, 0xfb, 0x59, 0x52, 0x18, - 0xc6, 0x28, 0x26, 0x5c, 0xe4, 0xdc, 0x31, 0x74, 0x24, 0x8f, 0x13, 0x82, 0x27, 0x06, 0x08, 0xea, - 0x54, 0xdf, 0xcf, 0xc1, 0x71, 0x52, 0x05, 0xd2, 0xe8, 0x25, 0x0f, 0x59, 0xae, 0x61, 0x5b, 0xf2, - 0x04, 0x21, 0x79, 0x7c, 0xc8, 0x2a, 0x22, 0xb3, 0xd1, 0x4f, 0x11, 0xe0, 0xa4, 0x8b, 0x30, 0x61, - 0x77, 0x3c, 0xc3, 0xb6, 0x5c, 0x39, 0x35, 0x2f, 0x2c, 0x64, 0x96, 0x3f, 0x36, 0x34, 0x11, 0x6a, - 0xd4, 0x46, 0xe1, 0xc6, 0xd2, 0x26, 0x88, 0xae, 0xdd, 0x75, 0x74, 0xa4, 0xea, 0x76, 0x03, 0xa9, - 0x86, 0xd5, 0xb4, 0xe5, 0x34, 0x21, 0x38, 0x3f, 0xf8, 0x20, 0xc4, 0xb0, 0x62, 0x37, 0xd0, 0xa6, - 0xd5, 0xb4, 0x95, 0x9c, 0xdb, 0x73, 0x2d, 0x9d, 0x81, 0x71, 0xf7, 0xc8, 0xf2, 0xb4, 0x97, 0xe4, - 0x2c, 0xc9, 0x10, 0x76, 0x55, 0xf8, 0x9f, 0x24, 0x4c, 0x8d, 0x92, 0x62, 0x57, 0x21, 0xd9, 0xc4, - 0x4f, 0x29, 0xc7, 0x4e, 0x13, 0x03, 0x8a, 0xe9, 0x0d, 0xe2, 0xf8, 0x8f, 0x18, 0xc4, 0x12, 0x64, - 0x2c, 0xe4, 0x7a, 0xa8, 0x41, 0x33, 0x22, 0x3e, 0x62, 0x4e, 0x01, 0x05, 0x0d, 0xa6, 0x54, 0xe2, - 0x47, 0x4a, 0xa9, 0x9b, 0x30, 0xe5, 0xbb, 0xa4, 0x3a, 0x9a, 0xd5, 0xe2, 0xb9, 0xb9, 0x14, 0xe5, - 0xc9, 0x62, 0x95, 0xe3, 0x14, 0x0c, 0x53, 0x72, 0xa8, 0xe7, 0x5a, 0x5a, 0x07, 0xb0, 0x2d, 0x64, - 0x37, 0xd5, 0x06, 0xd2, 0x4d, 0x39, 0x75, 0x42, 0x94, 0x6a, 0xd8, 0x64, 0x20, 0x4a, 0x36, 0x95, - 0xea, 0xa6, 0x74, 0x25, 0x48, 0xb5, 0x89, 0x13, 0x32, 0x65, 0x9b, 0x6e, 0xb2, 0x81, 0x6c, 0xdb, - 0x87, 0x9c, 0x83, 0x70, 0xde, 0xa3, 0x06, 0x7b, 0xb2, 0x34, 0x71, 0x62, 0x31, 0xf2, 0xc9, 0x14, - 0x06, 0xa3, 0x0f, 0x36, 0xe9, 0x84, 0x2f, 0xa5, 0x47, 0xc1, 0x17, 0xa8, 0x24, 0xad, 0x80, 0x54, - 0xa1, 0x2c, 0x17, 0xee, 0x68, 0x6d, 0x34, 0x77, 0x19, 0x72, 0xbd, 0xe1, 0x91, 0x66, 0x21, 0xe9, - 0x7a, 0x9a, 0xe3, 0x91, 0x2c, 0x4c, 0x2a, 0xf4, 0x42, 0x12, 0x21, 0x8e, 0xac, 0x06, 0xa9, 0x72, - 0x49, 0x05, 0xff, 0x3b, 0x77, 0x09, 0x26, 0x7b, 0x6e, 0x3f, 0x2a, 0xb0, 0xf0, 0xc5, 0x71, 0x98, - 0x1d, 0x96, 0x73, 0x43, 0xd3, 0xff, 0x0c, 0x8c, 0x5b, 0xdd, 0xf6, 0x01, 0x72, 0xe4, 0x38, 0x61, - 0x60, 0x57, 0x52, 0x09, 0x92, 0xa6, 0x76, 0x80, 0x4c, 0x39, 0x31, 0x2f, 0x2c, 0xe4, 0x96, 0x9f, - 0x1e, 0x29, 0xab, 0x17, 0xb7, 0x30, 0x44, 0xa1, 0x48, 0xe9, 0x53, 0x90, 0x60, 0x25, 0x0e, 0x33, - 0x3c, 0x35, 0x1a, 0x03, 0xce, 0x45, 0x85, 0xe0, 0xa4, 0x87, 0x21, 0x8d, 0xff, 0xd2, 0xd8, 0x8e, - 0x13, 0x9f, 0x53, 0x58, 0x80, 0xe3, 0x2a, 0xcd, 0x41, 0x8a, 0xa4, 0x59, 0x03, 0xf1, 0xd6, 0xe0, - 0x5f, 0xe3, 0x85, 0x69, 0xa0, 0xa6, 0xd6, 0x35, 0x3d, 0xf5, 0x8e, 0x66, 0x76, 0x11, 0x49, 0x98, - 0xb4, 0x92, 0x65, 0xc2, 0xcf, 0x60, 0x99, 0x74, 0x1e, 0x32, 0x34, 0x2b, 0x0d, 0xab, 0x81, 0x5e, - 0x22, 0xd5, 0x27, 0xa9, 0xd0, 0x44, 0xdd, 0xc4, 0x12, 0x7c, 0xfb, 0x5b, 0xae, 0x6d, 0xf1, 0xa5, - 0x25, 0xb7, 0xc0, 0x02, 0x72, 0xfb, 0x4b, 0xfd, 0x85, 0xef, 0x91, 0xe1, 0x8f, 0xd7, 0x9f, 0x8b, - 0x85, 0x6f, 0xc5, 0x20, 0x41, 0xf6, 0xdb, 0x14, 0x64, 0xf6, 0x5e, 0xdc, 0xad, 0xaa, 0xeb, 0xb5, - 0xfd, 0xf2, 0x56, 0x55, 0x14, 0xa4, 0x1c, 0x00, 0x11, 0x5c, 0xdb, 0xaa, 0x95, 0xf6, 0xc4, 0x98, - 0x7f, 0xbd, 0xb9, 0xb3, 0x77, 0x71, 0x55, 0x8c, 0xfb, 0x80, 0x7d, 0x2a, 0x48, 0x84, 0x0d, 0x56, - 0x96, 0xc5, 0xa4, 0x24, 0x42, 0x96, 0x12, 0x6c, 0xde, 0xac, 0xae, 0x5f, 0x5c, 0x15, 0xc7, 0x7b, - 0x25, 0x2b, 0xcb, 0xe2, 0x84, 0x34, 0x09, 0x69, 0x22, 0x29, 0xd7, 0x6a, 0x5b, 0x62, 0xca, 0xe7, - 0xac, 0xef, 0x29, 0x9b, 0x3b, 0x1b, 0x62, 0xda, 0xe7, 0xdc, 0x50, 0x6a, 0xfb, 0xbb, 0x22, 0xf8, - 0x0c, 0xdb, 0xd5, 0x7a, 0xbd, 0xb4, 0x51, 0x15, 0x33, 0xbe, 0x45, 0xf9, 0xc5, 0xbd, 0x6a, 0x5d, - 0xcc, 0xf6, 0xb8, 0xb5, 0xb2, 0x2c, 0x4e, 0xfa, 0xb7, 0xa8, 0xee, 0xec, 0x6f, 0x8b, 0x39, 0x69, - 0x1a, 0x26, 0xe9, 0x2d, 0xb8, 0x13, 0x53, 0x7d, 0xa2, 0x8b, 0xab, 0xa2, 0x18, 0x38, 0x42, 0x59, - 0xa6, 0x7b, 0x04, 0x17, 0x57, 0x45, 0xa9, 0x50, 0x81, 0x24, 0xc9, 0x2e, 0x49, 0x82, 0xdc, 0x56, - 0xa9, 0x5c, 0xdd, 0x52, 0x6b, 0xbb, 0x7b, 0x9b, 0xb5, 0x9d, 0xd2, 0x96, 0x28, 0x04, 0x32, 0xa5, - 0xfa, 0xe9, 0xfd, 0x4d, 0xa5, 0xba, 0x2e, 0xc6, 0xc2, 0xb2, 0xdd, 0x6a, 0x69, 0xaf, 0xba, 0x2e, - 0xc6, 0x0b, 0x3a, 0xcc, 0x0e, 0xab, 0x33, 0x43, 0x77, 0x46, 0x68, 0x89, 0x63, 0x27, 0x2c, 0x31, - 0xe1, 0x1a, 0x58, 0xe2, 0xaf, 0x08, 0x30, 0x33, 0xa4, 0xd6, 0x0e, 0xbd, 0xc9, 0xf3, 0x90, 0xa4, - 0x29, 0x4a, 0xbb, 0xcf, 0x93, 0x43, 0x8b, 0x36, 0x49, 0xd8, 0x81, 0x0e, 0x44, 0x70, 0xe1, 0x0e, - 0x1c, 0x3f, 0xa1, 0x03, 0x63, 0x8a, 0x01, 0x27, 0x5f, 0x11, 0x40, 0x3e, 0x89, 0x3b, 0xa2, 0x50, - 0xc4, 0x7a, 0x0a, 0xc5, 0xd5, 0x7e, 0x07, 0x2e, 0x9c, 0xfc, 0x0c, 0x03, 0x5e, 0xbc, 0x21, 0xc0, - 0x99, 0xe1, 0x83, 0xca, 0x50, 0x1f, 0x3e, 0x05, 0xe3, 0x6d, 0xe4, 0x1d, 0xda, 0xbc, 0x59, 0x7f, - 0x7c, 0x48, 0x0b, 0xc0, 0xea, 0xfe, 0x58, 0x31, 0x54, 0xb8, 0x87, 0xc4, 0x4f, 0x9a, 0x36, 0xa8, - 0x37, 0x03, 0x9e, 0x7e, 0x3e, 0x06, 0x0f, 0x0d, 0x25, 0x1f, 0xea, 0xe8, 0x23, 0x00, 0x86, 0xd5, - 0xe9, 0x7a, 0xb4, 0x21, 0xd3, 0xfa, 0x94, 0x26, 0x12, 0xb2, 0xf7, 0x71, 0xed, 0xe9, 0x7a, 0xbe, - 0x3e, 0x4e, 0xf4, 0x40, 0x45, 0xc4, 0xe0, 0x72, 0xe0, 0x68, 0x82, 0x38, 0x9a, 0x3f, 0xe1, 0x49, - 0x07, 0x7a, 0xdd, 0xb3, 0x20, 0xea, 0xa6, 0x81, 0x2c, 0x4f, 0x75, 0x3d, 0x07, 0x69, 0x6d, 0xc3, - 0x6a, 0x91, 0x02, 0x9c, 0x2a, 0x26, 0x9b, 0x9a, 0xe9, 0x22, 0x65, 0x8a, 0xaa, 0xeb, 0x5c, 0x8b, - 0x11, 0xa4, 0xcb, 0x38, 0x21, 0xc4, 0x78, 0x0f, 0x82, 0xaa, 0x7d, 0x44, 0xe1, 0xeb, 0x13, 0x90, - 0x09, 0x8d, 0x75, 0xd2, 0x05, 0xc8, 0xde, 0xd2, 0xee, 0x68, 0x2a, 0x1f, 0xd5, 0x69, 0x24, 0x32, - 0x58, 0xb6, 0xcb, 0xc6, 0xf5, 0x67, 0x61, 0x96, 0x98, 0xd8, 0x5d, 0x0f, 0x39, 0xaa, 0x6e, 0x6a, - 0xae, 0x4b, 0x82, 0x96, 0x22, 0xa6, 0x12, 0xd6, 0xd5, 0xb0, 0xaa, 0xc2, 0x35, 0xd2, 0x1a, 0xcc, - 0x10, 0x44, 0xbb, 0x6b, 0x7a, 0x46, 0xc7, 0x44, 0x2a, 0x7e, 0x79, 0x70, 0x49, 0x21, 0xf6, 0x3d, - 0x9b, 0xc6, 0x16, 0xdb, 0xcc, 0x00, 0x7b, 0xe4, 0x4a, 0xeb, 0xf0, 0x08, 0x81, 0xb5, 0x90, 0x85, - 0x1c, 0xcd, 0x43, 0x2a, 0xfa, 0x5c, 0x57, 0x33, 0x5d, 0x55, 0xb3, 0x1a, 0xea, 0xa1, 0xe6, 0x1e, - 0xca, 0xb3, 0x98, 0xa0, 0x1c, 0x93, 0x05, 0xe5, 0x1c, 0x36, 0xdc, 0x60, 0x76, 0x55, 0x62, 0x56, - 0xb2, 0x1a, 0xd7, 0x35, 0xf7, 0x50, 0x2a, 0xc2, 0x19, 0xc2, 0xe2, 0x7a, 0x8e, 0x61, 0xb5, 0x54, - 0xfd, 0x10, 0xe9, 0xb7, 0xd5, 0xae, 0xd7, 0xbc, 0x2c, 0x3f, 0x1c, 0xbe, 0x3f, 0xf1, 0xb0, 0x4e, - 0x6c, 0x2a, 0xd8, 0x64, 0xdf, 0x6b, 0x5e, 0x96, 0xea, 0x90, 0xc5, 0x8b, 0xd1, 0x36, 0x5e, 0x46, - 0x6a, 0xd3, 0x76, 0x48, 0x67, 0xc9, 0x0d, 0xd9, 0xd9, 0xa1, 0x08, 0x2e, 0xd6, 0x18, 0x60, 0xdb, - 0x6e, 0xa0, 0x62, 0xb2, 0xbe, 0x5b, 0xad, 0xae, 0x2b, 0x19, 0xce, 0x72, 0xcd, 0x76, 0x70, 0x42, - 0xb5, 0x6c, 0x3f, 0xc0, 0x19, 0x9a, 0x50, 0x2d, 0x9b, 0x87, 0x77, 0x0d, 0x66, 0x74, 0x9d, 0x3e, - 0xb3, 0xa1, 0xab, 0x6c, 0xc4, 0x77, 0x65, 0xb1, 0x27, 0x58, 0xba, 0xbe, 0x41, 0x0d, 0x58, 0x8e, - 0xbb, 0xd2, 0x15, 0x78, 0x28, 0x08, 0x56, 0x18, 0x38, 0x3d, 0xf0, 0x94, 0xfd, 0xd0, 0x35, 0x98, - 0xe9, 0x1c, 0x0d, 0x02, 0xa5, 0x9e, 0x3b, 0x76, 0x8e, 0xfa, 0x61, 0x8f, 0x93, 0xd7, 0x36, 0x07, - 0xe9, 0x9a, 0x87, 0x1a, 0xf2, 0xd9, 0xb0, 0x75, 0x48, 0x21, 0x2d, 0x81, 0xa8, 0xeb, 0x2a, 0xb2, - 0xb4, 0x03, 0x13, 0xa9, 0x9a, 0x83, 0x2c, 0xcd, 0x95, 0xcf, 0x87, 0x8d, 0x73, 0xba, 0x5e, 0x25, - 0xda, 0x12, 0x51, 0x4a, 0x4f, 0xc1, 0xb4, 0x7d, 0x70, 0x4b, 0xa7, 0x99, 0xa5, 0x76, 0x1c, 0xd4, - 0x34, 0x5e, 0x92, 0x1f, 0x23, 0x61, 0x9a, 0xc2, 0x0a, 0x92, 0x57, 0xbb, 0x44, 0x2c, 0x3d, 0x09, - 0xa2, 0xee, 0x1e, 0x6a, 0x4e, 0x87, 0xb4, 0x76, 0xb7, 0xa3, 0xe9, 0x48, 0x7e, 0x9c, 0x9a, 0x52, - 0xf9, 0x0e, 0x17, 0xe3, 0xcc, 0x76, 0xef, 0x1a, 0x4d, 0x8f, 0x33, 0x3e, 0x41, 0x33, 0x9b, 0xc8, - 0x18, 0xdb, 0x4d, 0x98, 0xed, 0x5a, 0x86, 0xe5, 0x21, 0xa7, 0xe3, 0x20, 0x3c, 0xc4, 0xd3, 0x9d, - 0x28, 0xff, 0xf3, 0xc4, 0x09, 0x63, 0xf8, 0x7e, 0xd8, 0x9a, 0x26, 0x80, 0x32, 0xd3, 0x1d, 0x14, - 0x16, 0x8a, 0x90, 0x0d, 0xe7, 0x85, 0x94, 0x06, 0x9a, 0x19, 0xa2, 0x80, 0x7b, 0x6c, 0xa5, 0xb6, - 0x8e, 0xbb, 0xe3, 0x67, 0xab, 0x62, 0x0c, 0x77, 0xe9, 0xad, 0xcd, 0xbd, 0xaa, 0xaa, 0xec, 0xef, - 0xec, 0x6d, 0x6e, 0x57, 0xc5, 0xf8, 0x53, 0xe9, 0xd4, 0xf7, 0x27, 0xc4, 0x7b, 0xf7, 0xee, 0xdd, - 0x8b, 0x15, 0xbe, 0x13, 0x83, 0x5c, 0xef, 0x64, 0x2c, 0xfd, 0x14, 0x9c, 0xe5, 0xaf, 0xb1, 0x2e, - 0xf2, 0xd4, 0xbb, 0x86, 0x43, 0x52, 0xb5, 0xad, 0xd1, 0xd9, 0xd2, 0x8f, 0xf2, 0x2c, 0xb3, 0xaa, - 0x23, 0xef, 0x05, 0xc3, 0xc1, 0x89, 0xd8, 0xd6, 0x3c, 0x69, 0x0b, 0xce, 0x5b, 0xb6, 0xea, 0x7a, - 0x9a, 0xd5, 0xd0, 0x9c, 0x86, 0x1a, 0x1c, 0x20, 0xa8, 0x9a, 0xae, 0x23, 0xd7, 0xb5, 0x69, 0x8b, - 0xf0, 0x59, 0x3e, 0x66, 0xd9, 0x75, 0x66, 0x1c, 0xd4, 0xce, 0x12, 0x33, 0xed, 0xcb, 0x88, 0xf8, - 0x49, 0x19, 0xf1, 0x30, 0xa4, 0xdb, 0x5a, 0x47, 0x45, 0x96, 0xe7, 0x1c, 0x91, 0x79, 0x2e, 0xa5, - 0xa4, 0xda, 0x5a, 0xa7, 0x8a, 0xaf, 0x3f, 0xba, 0x35, 0x08, 0xc7, 0xf1, 0x9f, 0xe2, 0x90, 0x0d, - 0xcf, 0x74, 0x78, 0x44, 0xd6, 0x49, 0xfd, 0x16, 0xc8, 0x0e, 0x7f, 0xf4, 0x81, 0x13, 0xe0, 0x62, - 0x05, 0x17, 0xf6, 0xe2, 0x38, 0x9d, 0xb4, 0x14, 0x8a, 0xc4, 0x4d, 0x15, 0xef, 0x69, 0x44, 0xe7, - 0xf7, 0x94, 0xc2, 0xae, 0xa4, 0x0d, 0x18, 0xbf, 0xe5, 0x12, 0xee, 0x71, 0xc2, 0xfd, 0xd8, 0x83, - 0xb9, 0x6f, 0xd4, 0x09, 0x79, 0xfa, 0x46, 0x5d, 0xdd, 0xa9, 0x29, 0xdb, 0xa5, 0x2d, 0x85, 0xc1, - 0xa5, 0x73, 0x90, 0x30, 0xb5, 0x97, 0x8f, 0x7a, 0x5b, 0x00, 0x11, 0x8d, 0x1a, 0xf8, 0x73, 0x90, - 0xb8, 0x8b, 0xb4, 0xdb, 0xbd, 0x85, 0x97, 0x88, 0x3e, 0xc2, 0xd4, 0x5f, 0x82, 0x24, 0x89, 0x97, - 0x04, 0xc0, 0x22, 0x26, 0x8e, 0x49, 0x29, 0x48, 0x54, 0x6a, 0x0a, 0x4e, 0x7f, 0x11, 0xb2, 0x54, - 0xaa, 0xee, 0x6e, 0x56, 0x2b, 0x55, 0x31, 0x56, 0x58, 0x83, 0x71, 0x1a, 0x04, 0xbc, 0x35, 0xfc, - 0x30, 0x88, 0x63, 0xec, 0x92, 0x71, 0x08, 0x5c, 0xbb, 0xbf, 0x5d, 0xae, 0x2a, 0x62, 0x2c, 0xbc, - 0xbc, 0x2e, 0x64, 0xc3, 0xe3, 0xdc, 0x8f, 0x27, 0xa7, 0xfe, 0x5a, 0x80, 0x4c, 0x68, 0x3c, 0xc3, - 0x83, 0x81, 0x66, 0x9a, 0xf6, 0x5d, 0x55, 0x33, 0x0d, 0xcd, 0x65, 0x49, 0x01, 0x44, 0x54, 0xc2, - 0x92, 0x51, 0x17, 0xed, 0xc7, 0xe2, 0xfc, 0xeb, 0x02, 0x88, 0xfd, 0xa3, 0x5d, 0x9f, 0x83, 0xc2, - 0x4f, 0xd4, 0xc1, 0xd7, 0x04, 0xc8, 0xf5, 0xce, 0x73, 0x7d, 0xee, 0x5d, 0xf8, 0x89, 0xba, 0xf7, - 0x4e, 0x0c, 0x26, 0x7b, 0xa6, 0xb8, 0x51, 0xbd, 0xfb, 0x1c, 0x4c, 0x1b, 0x0d, 0xd4, 0xee, 0xd8, - 0x1e, 0xb2, 0xf4, 0x23, 0xd5, 0x44, 0x77, 0x90, 0x29, 0x17, 0x48, 0xa1, 0x58, 0x7a, 0xf0, 0x9c, - 0xb8, 0xb8, 0x19, 0xe0, 0xb6, 0x30, 0xac, 0x38, 0xb3, 0xb9, 0x5e, 0xdd, 0xde, 0xad, 0xed, 0x55, - 0x77, 0x2a, 0x2f, 0xaa, 0xfb, 0x3b, 0x3f, 0xbd, 0x53, 0x7b, 0x61, 0x47, 0x11, 0x8d, 0x3e, 0xb3, - 0x8f, 0x70, 0xab, 0xef, 0x82, 0xd8, 0xef, 0x94, 0x74, 0x16, 0x86, 0xb9, 0x25, 0x8e, 0x49, 0x33, - 0x30, 0xb5, 0x53, 0x53, 0xeb, 0x9b, 0xeb, 0x55, 0xb5, 0x7a, 0xed, 0x5a, 0xb5, 0xb2, 0x57, 0xa7, - 0x2f, 0xce, 0xbe, 0xf5, 0x5e, 0xef, 0xa6, 0x7e, 0x35, 0x0e, 0x33, 0x43, 0x3c, 0x91, 0x4a, 0x6c, - 0x66, 0xa7, 0xaf, 0x11, 0xcf, 0x8c, 0xe2, 0xfd, 0x22, 0x9e, 0x0a, 0x76, 0x35, 0xc7, 0x63, 0x23, - 0xfe, 0x93, 0x80, 0xa3, 0x64, 0x79, 0x46, 0xd3, 0x40, 0x0e, 0x3b, 0x67, 0xa0, 0x83, 0xfc, 0x54, - 0x20, 0xa7, 0x47, 0x0d, 0x9f, 0x00, 0xa9, 0x63, 0xbb, 0x86, 0x67, 0xdc, 0x41, 0xaa, 0x61, 0xf1, - 0x43, 0x09, 0x3c, 0xd8, 0x27, 0x14, 0x91, 0x6b, 0x36, 0x2d, 0xcf, 0xb7, 0xb6, 0x50, 0x4b, 0xeb, - 0xb3, 0xc6, 0x05, 0x3c, 0xae, 0x88, 0x5c, 0xe3, 0x5b, 0x5f, 0x80, 0x6c, 0xc3, 0xee, 0xe2, 0x31, - 0x89, 0xda, 0xe1, 0x7e, 0x21, 0x28, 0x19, 0x2a, 0xf3, 0x4d, 0xd8, 0x1c, 0x1b, 0x9c, 0x86, 0x64, - 0x95, 0x0c, 0x95, 0x51, 0x93, 0x27, 0x60, 0x4a, 0x6b, 0xb5, 0x1c, 0x4c, 0xce, 0x89, 0xe8, 0x64, - 0x9e, 0xf3, 0xc5, 0xc4, 0x70, 0xee, 0x06, 0xa4, 0x78, 0x1c, 0x70, 0x4b, 0xc6, 0x91, 0x50, 0x3b, - 0xf4, 0x4c, 0x2a, 0xb6, 0x90, 0x56, 0x52, 0x16, 0x57, 0x5e, 0x80, 0xac, 0xe1, 0xaa, 0xc1, 0xe1, - 0x68, 0x6c, 0x3e, 0xb6, 0x90, 0x52, 0x32, 0x86, 0xeb, 0x9f, 0x86, 0x15, 0xde, 0x88, 0x41, 0xae, - 0xf7, 0x70, 0x57, 0x5a, 0x87, 0x94, 0x69, 0xeb, 0x1a, 0x49, 0x2d, 0xfa, 0xcb, 0xc2, 0x42, 0xc4, - 0x79, 0xf0, 0xe2, 0x16, 0xb3, 0x57, 0x7c, 0xe4, 0xdc, 0xdf, 0x0b, 0x90, 0xe2, 0x62, 0xe9, 0x0c, - 0x24, 0x3a, 0x9a, 0x77, 0x48, 0xe8, 0x92, 0xe5, 0x98, 0x28, 0x28, 0xe4, 0x1a, 0xcb, 0xdd, 0x8e, - 0x66, 0x91, 0x14, 0x60, 0x72, 0x7c, 0x8d, 0xd7, 0xd5, 0x44, 0x5a, 0x83, 0x8c, 0xfd, 0x76, 0xbb, - 0x8d, 0x2c, 0xcf, 0xe5, 0xeb, 0xca, 0xe4, 0x15, 0x26, 0x96, 0x9e, 0x86, 0x69, 0xcf, 0xd1, 0x0c, - 0xb3, 0xc7, 0x36, 0x41, 0x6c, 0x45, 0xae, 0xf0, 0x8d, 0x8b, 0x70, 0x8e, 0xf3, 0x36, 0x90, 0xa7, - 0xe9, 0x87, 0xa8, 0x11, 0x80, 0xc6, 0xc9, 0xc9, 0xe1, 0x59, 0x66, 0xb0, 0xce, 0xf4, 0x1c, 0x5b, - 0xf8, 0xae, 0x00, 0xd3, 0xfc, 0x45, 0xa5, 0xe1, 0x07, 0x6b, 0x1b, 0x40, 0xb3, 0x2c, 0xdb, 0x0b, - 0x87, 0x6b, 0x30, 0x95, 0x07, 0x70, 0x8b, 0x25, 0x1f, 0xa4, 0x84, 0x08, 0xe6, 0xda, 0x00, 0x81, - 0xe6, 0xc4, 0xb0, 0x9d, 0x87, 0x0c, 0x3b, 0xb9, 0x27, 0x3f, 0xff, 0xd0, 0x57, 0x5b, 0xa0, 0x22, - 0xfc, 0x46, 0x23, 0xcd, 0x42, 0xf2, 0x00, 0xb5, 0x0c, 0x8b, 0x9d, 0x27, 0xd2, 0x0b, 0x7e, 0x4a, - 0x99, 0xf0, 0x4f, 0x29, 0xcb, 0x37, 0x61, 0x46, 0xb7, 0xdb, 0xfd, 0xee, 0x96, 0xc5, 0xbe, 0xd7, - 0x6b, 0xf7, 0xba, 0xf0, 0x59, 0x08, 0x46, 0xcc, 0xaf, 0xc4, 0xe2, 0x1b, 0xbb, 0xe5, 0xaf, 0xc5, - 0xe6, 0x36, 0x28, 0x6e, 0x97, 0x3f, 0xa6, 0x82, 0x9a, 0x26, 0xd2, 0xb1, 0xeb, 0xf0, 0x83, 0x8f, - 0xc3, 0x33, 0x2d, 0xc3, 0x3b, 0xec, 0x1e, 0x2c, 0xea, 0x76, 0x7b, 0xa9, 0x65, 0xb7, 0xec, 0xe0, - 0xe7, 0x2e, 0x7c, 0x45, 0x2e, 0xc8, 0x7f, 0xec, 0x27, 0xaf, 0xb4, 0x2f, 0x9d, 0x8b, 0xfc, 0x7d, - 0xac, 0xb8, 0x03, 0x33, 0xcc, 0x58, 0x25, 0x67, 0xee, 0xf4, 0xd5, 0x40, 0x7a, 0xe0, 0xb9, 0x8b, - 0xfc, 0xcd, 0x77, 0x49, 0xaf, 0x56, 0xa6, 0x19, 0x14, 0xeb, 0xe8, 0x0b, 0x44, 0x51, 0x81, 0x87, - 0x7a, 0xf8, 0xe8, 0xbe, 0x44, 0x4e, 0x04, 0xe3, 0x77, 0x18, 0xe3, 0x4c, 0x88, 0xb1, 0xce, 0xa0, - 0xc5, 0x0a, 0x4c, 0x9e, 0x86, 0xeb, 0x6f, 0x19, 0x57, 0x16, 0x85, 0x49, 0x36, 0x60, 0x8a, 0x90, - 0xe8, 0x5d, 0xd7, 0xb3, 0xdb, 0xa4, 0xe8, 0x3d, 0x98, 0xe6, 0xef, 0xde, 0xa5, 0x1b, 0x25, 0x87, - 0x61, 0x15, 0x1f, 0x55, 0x2c, 0x02, 0xf9, 0x99, 0xa1, 0x81, 0x74, 0x33, 0x82, 0xe1, 0x4d, 0xe6, - 0x88, 0x6f, 0x5f, 0xfc, 0x0c, 0xcc, 0xe2, 0xff, 0x49, 0x4d, 0x0a, 0x7b, 0x12, 0x7d, 0xca, 0x24, - 0x7f, 0xf7, 0x15, 0xba, 0x17, 0x67, 0x7c, 0x82, 0x90, 0x4f, 0xa1, 0x55, 0x6c, 0x21, 0xcf, 0x43, - 0x8e, 0xab, 0x6a, 0xe6, 0x30, 0xf7, 0x42, 0xaf, 0xe9, 0xf2, 0x97, 0xde, 0xeb, 0x5d, 0xc5, 0x0d, - 0x8a, 0x2c, 0x99, 0x66, 0x71, 0x1f, 0xce, 0x0e, 0xc9, 0x8a, 0x11, 0x38, 0x5f, 0x65, 0x9c, 0xb3, - 0x03, 0x99, 0x81, 0x69, 0x77, 0x81, 0xcb, 0xfd, 0xb5, 0x1c, 0x81, 0xf3, 0xb7, 0x19, 0xa7, 0xc4, - 0xb0, 0x7c, 0x49, 0x31, 0xe3, 0x0d, 0x98, 0xbe, 0x83, 0x9c, 0x03, 0xdb, 0x65, 0x47, 0x23, 0x23, - 0xd0, 0xbd, 0xc6, 0xe8, 0xa6, 0x18, 0x90, 0x9c, 0x95, 0x60, 0xae, 0x2b, 0x90, 0x6a, 0x6a, 0x3a, - 0x1a, 0x81, 0xe2, 0xcb, 0x8c, 0x62, 0x02, 0xdb, 0x63, 0x68, 0x09, 0xb2, 0x2d, 0x9b, 0xb5, 0xa5, - 0x68, 0xf8, 0xeb, 0x0c, 0x9e, 0xe1, 0x18, 0x46, 0xd1, 0xb1, 0x3b, 0x5d, 0x13, 0xf7, 0xac, 0x68, - 0x8a, 0xdf, 0xe1, 0x14, 0x1c, 0xc3, 0x28, 0x4e, 0x11, 0xd6, 0xdf, 0xe5, 0x14, 0x6e, 0x28, 0x9e, - 0xcf, 0x43, 0xc6, 0xb6, 0xcc, 0x23, 0xdb, 0x1a, 0xc5, 0x89, 0xdf, 0x63, 0x0c, 0xc0, 0x20, 0x98, - 0xe0, 0x2a, 0xa4, 0x47, 0x5d, 0x88, 0xdf, 0x7f, 0x8f, 0x6f, 0x0f, 0xbe, 0x02, 0x1b, 0x30, 0xc5, - 0x0b, 0x94, 0x61, 0x5b, 0x23, 0x50, 0xfc, 0x01, 0xa3, 0xc8, 0x85, 0x60, 0xec, 0x31, 0x3c, 0xe4, - 0x7a, 0x2d, 0x34, 0x0a, 0xc9, 0x1b, 0xfc, 0x31, 0x18, 0x84, 0x85, 0xf2, 0x00, 0x59, 0xfa, 0xe1, - 0x68, 0x0c, 0x5f, 0xe5, 0xa1, 0xe4, 0x18, 0x4c, 0x51, 0x81, 0xc9, 0xb6, 0xe6, 0xb8, 0x87, 0x9a, - 0x39, 0xd2, 0x72, 0xfc, 0x21, 0xe3, 0xc8, 0xfa, 0x20, 0x16, 0x91, 0xae, 0x75, 0x1a, 0x9a, 0xaf, - 0xf1, 0x88, 0x84, 0x60, 0x6c, 0xeb, 0xb9, 0x1e, 0x39, 0x80, 0x3a, 0x0d, 0xdb, 0xd7, 0xf9, 0xd6, - 0xa3, 0xd8, 0xed, 0x30, 0xe3, 0x55, 0x48, 0xbb, 0xc6, 0xcb, 0x23, 0xd1, 0xfc, 0x11, 0x5f, 0x69, - 0x02, 0xc0, 0xe0, 0x17, 0xe1, 0xdc, 0xd0, 0x36, 0x31, 0x02, 0xd9, 0x1f, 0x33, 0xb2, 0x33, 0x43, - 0x5a, 0x05, 0x2b, 0x09, 0xa7, 0xa5, 0xfc, 0x13, 0x5e, 0x12, 0x50, 0x1f, 0xd7, 0x2e, 0x7e, 0x51, - 0x70, 0xb5, 0xe6, 0xe9, 0xa2, 0xf6, 0xa7, 0x3c, 0x6a, 0x14, 0xdb, 0x13, 0xb5, 0x3d, 0x38, 0xc3, - 0x18, 0x4f, 0xb7, 0xae, 0xdf, 0xe0, 0x85, 0x95, 0xa2, 0xf7, 0x7b, 0x57, 0xf7, 0x67, 0x60, 0xce, - 0x0f, 0x27, 0x9f, 0x48, 0x5d, 0xb5, 0xad, 0x75, 0x46, 0x60, 0xfe, 0x26, 0x63, 0xe6, 0x15, 0xdf, - 0x1f, 0x69, 0xdd, 0x6d, 0xad, 0x83, 0xc9, 0x6f, 0x82, 0xcc, 0xc9, 0xbb, 0x96, 0x83, 0x74, 0xbb, - 0x65, 0x19, 0x2f, 0xa3, 0xc6, 0x08, 0xd4, 0x7f, 0xd6, 0xb7, 0x54, 0xfb, 0x21, 0x38, 0x66, 0xde, - 0x04, 0xd1, 0x9f, 0x55, 0x54, 0xa3, 0xdd, 0xb1, 0x1d, 0x2f, 0x82, 0xf1, 0xcf, 0xf9, 0x4a, 0xf9, - 0xb8, 0x4d, 0x02, 0x2b, 0x56, 0x21, 0x47, 0x2e, 0x47, 0x4d, 0xc9, 0xbf, 0x60, 0x44, 0x93, 0x01, - 0x8a, 0x15, 0x0e, 0xdd, 0x6e, 0x77, 0x34, 0x67, 0x94, 0xfa, 0xf7, 0x97, 0xbc, 0x70, 0x30, 0x08, - 0x2b, 0x1c, 0xde, 0x51, 0x07, 0xe1, 0x6e, 0x3f, 0x02, 0xc3, 0xb7, 0x78, 0xe1, 0xe0, 0x18, 0x46, - 0xc1, 0x07, 0x86, 0x11, 0x28, 0xfe, 0x8a, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x74, 0xd0, 0x68, 0x1d, - 0xd4, 0x32, 0x5c, 0xcf, 0xa1, 0x73, 0xf0, 0x83, 0xa9, 0xbe, 0xfd, 0x5e, 0xef, 0x10, 0xa6, 0x84, - 0xa0, 0xc5, 0x1b, 0x30, 0xd5, 0x37, 0x62, 0x48, 0x51, 0xdf, 0x2c, 0xc8, 0x3f, 0xfb, 0x01, 0x2b, - 0x46, 0xbd, 0x13, 0x46, 0x71, 0x0b, 0xaf, 0x7b, 0xef, 0x1c, 0x10, 0x4d, 0xf6, 0xca, 0x07, 0xfe, - 0xd2, 0xf7, 0x8c, 0x01, 0xc5, 0x6b, 0x30, 0xd9, 0x33, 0x03, 0x44, 0x53, 0xfd, 0x1c, 0xa3, 0xca, - 0x86, 0x47, 0x80, 0xe2, 0x1a, 0x24, 0x70, 0x3f, 0x8f, 0x86, 0xff, 0x3c, 0x83, 0x13, 0xf3, 0xe2, - 0x27, 0x21, 0xc5, 0xfb, 0x78, 0x34, 0xf4, 0x17, 0x18, 0xd4, 0x87, 0x60, 0x38, 0xef, 0xe1, 0xd1, - 0xf0, 0x5f, 0xe4, 0x70, 0x0e, 0xc1, 0xf0, 0xd1, 0x43, 0xf8, 0x37, 0xbf, 0x94, 0x60, 0x75, 0x98, - 0xc7, 0xee, 0x2a, 0x4c, 0xb0, 0xe6, 0x1d, 0x8d, 0xfe, 0x3c, 0xbb, 0x39, 0x47, 0x14, 0x2f, 0x41, - 0x72, 0xc4, 0x80, 0xff, 0x32, 0x83, 0x52, 0xfb, 0x62, 0x05, 0x32, 0xa1, 0x86, 0x1d, 0x0d, 0xff, - 0x15, 0x06, 0x0f, 0xa3, 0xb0, 0xeb, 0xac, 0x61, 0x47, 0x13, 0xfc, 0x2a, 0x77, 0x9d, 0x21, 0x70, - 0xd8, 0x78, 0xaf, 0x8e, 0x46, 0xff, 0x1a, 0x8f, 0x3a, 0x87, 0x14, 0x9f, 0x87, 0xb4, 0x5f, 0x7f, - 0xa3, 0xf1, 0xbf, 0xce, 0xf0, 0x01, 0x06, 0x47, 0x20, 0x54, 0xff, 0xa3, 0x29, 0xbe, 0xc0, 0x23, - 0x10, 0x42, 0xe1, 0x6d, 0xd4, 0xdf, 0xd3, 0xa3, 0x99, 0x7e, 0x83, 0x6f, 0xa3, 0xbe, 0x96, 0x8e, - 0x57, 0x93, 0x94, 0xc1, 0x68, 0x8a, 0xdf, 0xe4, 0xab, 0x49, 0xec, 0xb1, 0x1b, 0xfd, 0x4d, 0x32, - 0x9a, 0xe3, 0xb7, 0xb8, 0x1b, 0x7d, 0x3d, 0xb2, 0xb8, 0x0b, 0xd2, 0x60, 0x83, 0x8c, 0xe6, 0xfb, - 0x22, 0xe3, 0x9b, 0x1e, 0xe8, 0x8f, 0xc5, 0x17, 0xe0, 0xcc, 0xf0, 0xe6, 0x18, 0xcd, 0xfa, 0xa5, - 0x0f, 0xfa, 0x5e, 0x67, 0xc2, 0xbd, 0xb1, 0xb8, 0x17, 0x54, 0xd9, 0x70, 0x63, 0x8c, 0xa6, 0x7d, - 0xf5, 0x83, 0xde, 0x42, 0x1b, 0xee, 0x8b, 0xc5, 0x12, 0x40, 0xd0, 0x93, 0xa2, 0xb9, 0x5e, 0x63, - 0x5c, 0x21, 0x10, 0xde, 0x1a, 0xac, 0x25, 0x45, 0xe3, 0xbf, 0xcc, 0xb7, 0x06, 0x43, 0xe0, 0xad, - 0xc1, 0xbb, 0x51, 0x34, 0xfa, 0x75, 0xbe, 0x35, 0x38, 0xa4, 0x78, 0x15, 0x52, 0x56, 0xd7, 0x34, - 0x71, 0x6e, 0x49, 0x0f, 0xfe, 0x8c, 0x48, 0xfe, 0x97, 0x0f, 0x19, 0x98, 0x03, 0x8a, 0x6b, 0x90, - 0x44, 0xed, 0x03, 0xd4, 0x88, 0x42, 0xfe, 0xeb, 0x87, 0xbc, 0x9e, 0x60, 0xeb, 0xe2, 0xf3, 0x00, - 0xf4, 0x65, 0x9a, 0xfc, 0x4a, 0x14, 0x81, 0xfd, 0xb7, 0x0f, 0xd9, 0x17, 0x0a, 0x01, 0x24, 0x20, - 0xa0, 0xdf, 0x3b, 0x3c, 0x98, 0xe0, 0xbd, 0x5e, 0x02, 0xf2, 0x02, 0x7e, 0x05, 0x26, 0x6e, 0xb9, - 0xb6, 0xe5, 0x69, 0xad, 0x28, 0xf4, 0xbf, 0x33, 0x34, 0xb7, 0xc7, 0x01, 0x6b, 0xdb, 0x0e, 0xf2, - 0xb4, 0x96, 0x1b, 0x85, 0xfd, 0x0f, 0x86, 0xf5, 0x01, 0x18, 0xac, 0x6b, 0xae, 0x37, 0xca, 0x73, - 0xff, 0x27, 0x07, 0x73, 0x00, 0x76, 0x1a, 0xff, 0x7f, 0x1b, 0x1d, 0x45, 0x61, 0xdf, 0xe7, 0x4e, - 0x33, 0xfb, 0xe2, 0x27, 0x21, 0x8d, 0xff, 0xa5, 0x5f, 0xed, 0x44, 0x80, 0xff, 0x8b, 0x81, 0x03, - 0x04, 0xbe, 0xb3, 0xeb, 0x35, 0x3c, 0x23, 0x3a, 0xd8, 0xff, 0xcd, 0x56, 0x9a, 0xdb, 0x17, 0x4b, - 0x90, 0x71, 0xbd, 0x46, 0xa3, 0xcb, 0x26, 0x9a, 0x08, 0xf8, 0x0f, 0x3e, 0xf4, 0x5f, 0x72, 0x7d, - 0x4c, 0xf9, 0xc2, 0xf0, 0xc3, 0x3a, 0xd8, 0xb0, 0x37, 0x6c, 0x7a, 0x4c, 0x07, 0xf7, 0xd2, 0x30, - 0xaf, 0xdb, 0xed, 0x03, 0xdb, 0x5d, 0xa2, 0x05, 0xc5, 0x2f, 0x27, 0x4b, 0xb6, 0xc5, 0x30, 0x52, - 0xdc, 0xb6, 0xd0, 0xdc, 0xe9, 0x0e, 0xe7, 0x0a, 0xe7, 0x20, 0x59, 0xef, 0x1e, 0x1c, 0x1c, 0x49, - 0x22, 0xc4, 0xdd, 0xee, 0x01, 0xfb, 0xba, 0x04, 0xff, 0x5b, 0x78, 0x3b, 0x0e, 0x93, 0x25, 0xd3, - 0xdc, 0x3b, 0xea, 0x20, 0xb7, 0x66, 0xa1, 0x5a, 0x53, 0x92, 0x61, 0x9c, 0x3c, 0xcd, 0x73, 0xc4, - 0x4c, 0xb8, 0x3e, 0xa6, 0xb0, 0x6b, 0x5f, 0xb3, 0x4c, 0xce, 0x2c, 0x63, 0xbe, 0x66, 0xd9, 0xd7, - 0xac, 0xd0, 0x23, 0x4b, 0x5f, 0xb3, 0xe2, 0x6b, 0x56, 0xc9, 0xc1, 0x65, 0xdc, 0xd7, 0xac, 0xfa, - 0x9a, 0x35, 0x72, 0x30, 0x3f, 0xe9, 0x6b, 0xd6, 0x7c, 0xcd, 0x45, 0x72, 0x14, 0x9f, 0xf0, 0x35, - 0x17, 0x7d, 0xcd, 0x25, 0x72, 0x02, 0x3f, 0xed, 0x6b, 0x2e, 0xf9, 0x9a, 0xcb, 0xe4, 0xd4, 0x5d, - 0xf2, 0x35, 0x97, 0x7d, 0xcd, 0x15, 0xf2, 0x19, 0xc9, 0x84, 0xaf, 0xb9, 0x22, 0xcd, 0xc1, 0x04, - 0x7d, 0xb2, 0x67, 0xc9, 0x4f, 0xb3, 0x53, 0xd7, 0xc7, 0x14, 0x2e, 0x08, 0x74, 0xcf, 0x91, 0x4f, - 0x45, 0xc6, 0x03, 0xdd, 0x73, 0x81, 0x6e, 0x99, 0x7c, 0x30, 0x2d, 0x06, 0xba, 0xe5, 0x40, 0xb7, - 0x22, 0x4f, 0xe2, 0x24, 0x08, 0x74, 0x2b, 0x81, 0x6e, 0x55, 0xce, 0xe1, 0x15, 0x08, 0x74, 0xab, - 0x81, 0x6e, 0x4d, 0x9e, 0x9a, 0x17, 0x16, 0xb2, 0x81, 0x6e, 0x4d, 0x7a, 0x06, 0x32, 0x6e, 0xf7, - 0x40, 0x65, 0x5f, 0x12, 0x90, 0x4f, 0x52, 0x32, 0xcb, 0xb0, 0x88, 0x73, 0x82, 0x2c, 0xeb, 0xf5, - 0x31, 0x05, 0xdc, 0xee, 0x01, 0xab, 0x92, 0xe5, 0x2c, 0x90, 0x43, 0x05, 0x95, 0x7c, 0x88, 0x59, - 0x78, 0x4b, 0x80, 0xf4, 0xde, 0x5d, 0x9b, 0xfc, 0x30, 0xeb, 0xfe, 0x3f, 0x2f, 0x2e, 0x77, 0x7a, - 0x65, 0x95, 0xfc, 0x76, 0x96, 0xbe, 0x2e, 0x28, 0x5c, 0x10, 0xe8, 0xd6, 0xe4, 0x47, 0xc9, 0x03, - 0xf9, 0xba, 0x35, 0x69, 0x09, 0xb2, 0xa1, 0x07, 0x5a, 0x26, 0x5f, 0x99, 0xf4, 0x3e, 0x91, 0xa0, - 0x64, 0x82, 0x27, 0x5a, 0x2e, 0x27, 0x01, 0xa7, 0x3d, 0xfe, 0xe3, 0xdd, 0xb5, 0x0b, 0x5f, 0x88, - 0x41, 0x86, 0x9e, 0x43, 0x92, 0xa7, 0xc2, 0xb7, 0xa2, 0x73, 0xf9, 0x11, 0x73, 0x63, 0x4c, 0xe1, - 0x02, 0x49, 0x01, 0xa0, 0xa6, 0x38, 0xc3, 0xa9, 0x27, 0xe5, 0x67, 0xff, 0xf1, 0xed, 0xf3, 0x9f, - 0x38, 0x71, 0x07, 0xe1, 0xd8, 0x2d, 0xd1, 0x2a, 0xbb, 0xb8, 0x6f, 0x58, 0xde, 0x73, 0xcb, 0x97, - 0x71, 0x80, 0x03, 0x16, 0x69, 0x1f, 0x52, 0x15, 0xcd, 0x25, 0x9f, 0x99, 0x11, 0xd7, 0x13, 0xe5, - 0x4b, 0xff, 0xfb, 0xf6, 0xf9, 0x95, 0x08, 0x46, 0x56, 0x00, 0x17, 0xb7, 0x8f, 0x30, 0xeb, 0xc5, - 0x55, 0x0c, 0xbf, 0x3e, 0xa6, 0xf8, 0x54, 0xd2, 0x32, 0x77, 0x75, 0x47, 0x6b, 0xd3, 0xcf, 0x69, - 0xe2, 0x65, 0xf1, 0xf8, 0xed, 0xf3, 0xd9, 0xed, 0xa3, 0x40, 0x1e, 0xb8, 0x82, 0xaf, 0xca, 0x29, - 0x18, 0xa7, 0xae, 0x96, 0xd7, 0xdf, 0xbc, 0x9f, 0x1f, 0x7b, 0xeb, 0x7e, 0x7e, 0xec, 0x1f, 0xee, - 0xe7, 0xc7, 0xde, 0xb9, 0x9f, 0x17, 0xde, 0xbf, 0x9f, 0x17, 0x7e, 0x78, 0x3f, 0x2f, 0xdc, 0x3b, - 0xce, 0x0b, 0x5f, 0x3d, 0xce, 0x0b, 0xdf, 0x38, 0xce, 0x0b, 0xdf, 0x3e, 0xce, 0x0b, 0x6f, 0x1e, - 0xe7, 0xc7, 0xde, 0x3a, 0xce, 0x8f, 0xbd, 0x73, 0x9c, 0x17, 0xbe, 0x7f, 0x9c, 0x1f, 0x7b, 0xff, - 0x38, 0x2f, 0xfc, 0xf0, 0x38, 0x2f, 0xdc, 0xfb, 0x5e, 0x7e, 0xec, 0xff, 0x02, 0x00, 0x00, 0xff, - 0xff, 0x80, 0x0e, 0x3d, 0x7d, 0xdf, 0x32, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Subby) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Subby") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Subby but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Subby but is not nil && this == nil") - } - if this.Sub != nil && that1.Sub != nil { - if *this.Sub != *that1.Sub { - return fmt.Errorf("Sub this(%v) Not Equal that(%v)", *this.Sub, *that1.Sub) - } - } else if this.Sub != nil { - return fmt.Errorf("this.Sub == nil && that.Sub != nil") - } else if that1.Sub != nil { - return fmt.Errorf("Sub this(%v) Not Equal that(%v)", this.Sub, that1.Sub) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Subby) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Sub != nil && that1.Sub != nil { - if *this.Sub != *that1.Sub { - return false - } - } else if this.Sub != nil { - return false - } else if that1.Sub != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllTypesOneOf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf) - if !ok { - that2, ok := that.(AllTypesOneOf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf but is not nil && this == nil") - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return fmt.Errorf("this.TestOneof != nil && that1.TestOneof == nil") - } - } else if this.TestOneof == nil { - return fmt.Errorf("this.TestOneof == nil && that1.TestOneof != nil") - } else if err := this.TestOneof.VerboseEqual(that1.TestOneof); err != nil { - return err - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AllTypesOneOf_Field1) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field1) - if !ok { - that2, ok := that.(AllTypesOneOf_Field1) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field1") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field1 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field1 but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *AllTypesOneOf_Field2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field2) - if !ok { - that2, ok := that.(AllTypesOneOf_Field2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field2 but is not nil && this == nil") - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - return nil -} -func (this *AllTypesOneOf_Field3) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field3) - if !ok { - that2, ok := that.(AllTypesOneOf_Field3) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field3") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field3 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field3 but is not nil && this == nil") - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - return nil -} -func (this *AllTypesOneOf_Field4) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field4) - if !ok { - that2, ok := that.(AllTypesOneOf_Field4) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field4") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field4 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field4 but is not nil && this == nil") - } - if this.Field4 != that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - return nil -} -func (this *AllTypesOneOf_Field5) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field5) - if !ok { - that2, ok := that.(AllTypesOneOf_Field5) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field5") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field5 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field5 but is not nil && this == nil") - } - if this.Field5 != that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - return nil -} -func (this *AllTypesOneOf_Field6) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field6) - if !ok { - that2, ok := that.(AllTypesOneOf_Field6) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field6") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field6 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field6 but is not nil && this == nil") - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - return nil -} -func (this *AllTypesOneOf_Field7) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field7) - if !ok { - that2, ok := that.(AllTypesOneOf_Field7) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field7") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field7 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field7 but is not nil && this == nil") - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - return nil -} -func (this *AllTypesOneOf_Field8) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field8) - if !ok { - that2, ok := that.(AllTypesOneOf_Field8) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field8") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field8 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field8 but is not nil && this == nil") - } - if this.Field8 != that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - return nil -} -func (this *AllTypesOneOf_Field9) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field9) - if !ok { - that2, ok := that.(AllTypesOneOf_Field9) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field9") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field9 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field9 but is not nil && this == nil") - } - if this.Field9 != that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - return nil -} -func (this *AllTypesOneOf_Field10) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field10) - if !ok { - that2, ok := that.(AllTypesOneOf_Field10) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field10") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field10 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field10 but is not nil && this == nil") - } - if this.Field10 != that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - return nil -} -func (this *AllTypesOneOf_Field11) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field11) - if !ok { - that2, ok := that.(AllTypesOneOf_Field11) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field11") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field11 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field11 but is not nil && this == nil") - } - if this.Field11 != that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - return nil -} -func (this *AllTypesOneOf_Field12) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field12) - if !ok { - that2, ok := that.(AllTypesOneOf_Field12) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field12") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field12 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field12 but is not nil && this == nil") - } - if this.Field12 != that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - return nil -} -func (this *AllTypesOneOf_Field13) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field13) - if !ok { - that2, ok := that.(AllTypesOneOf_Field13) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field13") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field13 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field13 but is not nil && this == nil") - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - return nil -} -func (this *AllTypesOneOf_Field14) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field14) - if !ok { - that2, ok := that.(AllTypesOneOf_Field14) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field14") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field14 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field14 but is not nil && this == nil") - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - return nil -} -func (this *AllTypesOneOf_Field15) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field15) - if !ok { - that2, ok := that.(AllTypesOneOf_Field15) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field15") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field15 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field15 but is not nil && this == nil") - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - return nil -} -func (this *AllTypesOneOf_SubMessage) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_SubMessage) - if !ok { - that2, ok := that.(AllTypesOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_SubMessage") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_SubMessage but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_SubMessage but is not nil && this == nil") - } - if !this.SubMessage.Equal(that1.SubMessage) { - return fmt.Errorf("SubMessage this(%v) Not Equal that(%v)", this.SubMessage, that1.SubMessage) - } - return nil -} -func (this *AllTypesOneOf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf) - if !ok { - that2, ok := that.(AllTypesOneOf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return false - } - } else if this.TestOneof == nil { - return false - } else if !this.TestOneof.Equal(that1.TestOneof) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllTypesOneOf_Field1) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field1) - if !ok { - that2, ok := that.(AllTypesOneOf_Field1) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - return true -} -func (this *AllTypesOneOf_Field2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field2) - if !ok { - that2, ok := that.(AllTypesOneOf_Field2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != that1.Field2 { - return false - } - return true -} -func (this *AllTypesOneOf_Field3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field3) - if !ok { - that2, ok := that.(AllTypesOneOf_Field3) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field3 != that1.Field3 { - return false - } - return true -} -func (this *AllTypesOneOf_Field4) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field4) - if !ok { - that2, ok := that.(AllTypesOneOf_Field4) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field4 != that1.Field4 { - return false - } - return true -} -func (this *AllTypesOneOf_Field5) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field5) - if !ok { - that2, ok := that.(AllTypesOneOf_Field5) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field5 != that1.Field5 { - return false - } - return true -} -func (this *AllTypesOneOf_Field6) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field6) - if !ok { - that2, ok := that.(AllTypesOneOf_Field6) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field6 != that1.Field6 { - return false - } - return true -} -func (this *AllTypesOneOf_Field7) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field7) - if !ok { - that2, ok := that.(AllTypesOneOf_Field7) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field7 != that1.Field7 { - return false - } - return true -} -func (this *AllTypesOneOf_Field8) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field8) - if !ok { - that2, ok := that.(AllTypesOneOf_Field8) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field8 != that1.Field8 { - return false - } - return true -} -func (this *AllTypesOneOf_Field9) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field9) - if !ok { - that2, ok := that.(AllTypesOneOf_Field9) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field9 != that1.Field9 { - return false - } - return true -} -func (this *AllTypesOneOf_Field10) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field10) - if !ok { - that2, ok := that.(AllTypesOneOf_Field10) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field10 != that1.Field10 { - return false - } - return true -} -func (this *AllTypesOneOf_Field11) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field11) - if !ok { - that2, ok := that.(AllTypesOneOf_Field11) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field11 != that1.Field11 { - return false - } - return true -} -func (this *AllTypesOneOf_Field12) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field12) - if !ok { - that2, ok := that.(AllTypesOneOf_Field12) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field12 != that1.Field12 { - return false - } - return true -} -func (this *AllTypesOneOf_Field13) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field13) - if !ok { - that2, ok := that.(AllTypesOneOf_Field13) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field13 != that1.Field13 { - return false - } - return true -} -func (this *AllTypesOneOf_Field14) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field14) - if !ok { - that2, ok := that.(AllTypesOneOf_Field14) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field14 != that1.Field14 { - return false - } - return true -} -func (this *AllTypesOneOf_Field15) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field15) - if !ok { - that2, ok := that.(AllTypesOneOf_Field15) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - return true -} -func (this *AllTypesOneOf_SubMessage) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_SubMessage) - if !ok { - that2, ok := that.(AllTypesOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.SubMessage.Equal(that1.SubMessage) { - return false - } - return true -} -func (this *TwoOneofs) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs) - if !ok { - that2, ok := that.(TwoOneofs) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs but is not nil && this == nil") - } - if that1.One == nil { - if this.One != nil { - return fmt.Errorf("this.One != nil && that1.One == nil") - } - } else if this.One == nil { - return fmt.Errorf("this.One == nil && that1.One != nil") - } else if err := this.One.VerboseEqual(that1.One); err != nil { - return err - } - if that1.Two == nil { - if this.Two != nil { - return fmt.Errorf("this.Two != nil && that1.Two == nil") - } - } else if this.Two == nil { - return fmt.Errorf("this.Two == nil && that1.Two != nil") - } else if err := this.Two.VerboseEqual(that1.Two); err != nil { - return err - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *TwoOneofs_Field1) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field1) - if !ok { - that2, ok := that.(TwoOneofs_Field1) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field1") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field1 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field1 but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *TwoOneofs_Field2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field2) - if !ok { - that2, ok := that.(TwoOneofs_Field2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field2 but is not nil && this == nil") - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - return nil -} -func (this *TwoOneofs_Field3) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field3) - if !ok { - that2, ok := that.(TwoOneofs_Field3) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field3") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field3 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field3 but is not nil && this == nil") - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - return nil -} -func (this *TwoOneofs_Field34) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field34) - if !ok { - that2, ok := that.(TwoOneofs_Field34) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field34") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field34 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field34 but is not nil && this == nil") - } - if this.Field34 != that1.Field34 { - return fmt.Errorf("Field34 this(%v) Not Equal that(%v)", this.Field34, that1.Field34) - } - return nil -} -func (this *TwoOneofs_Field35) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field35) - if !ok { - that2, ok := that.(TwoOneofs_Field35) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field35") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field35 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field35 but is not nil && this == nil") - } - if !bytes.Equal(this.Field35, that1.Field35) { - return fmt.Errorf("Field35 this(%v) Not Equal that(%v)", this.Field35, that1.Field35) - } - return nil -} -func (this *TwoOneofs_SubMessage2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_SubMessage2) - if !ok { - that2, ok := that.(TwoOneofs_SubMessage2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_SubMessage2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_SubMessage2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_SubMessage2 but is not nil && this == nil") - } - if !this.SubMessage2.Equal(that1.SubMessage2) { - return fmt.Errorf("SubMessage2 this(%v) Not Equal that(%v)", this.SubMessage2, that1.SubMessage2) - } - return nil -} -func (this *TwoOneofs) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs) - if !ok { - that2, ok := that.(TwoOneofs) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.One == nil { - if this.One != nil { - return false - } - } else if this.One == nil { - return false - } else if !this.One.Equal(that1.One) { - return false - } - if that1.Two == nil { - if this.Two != nil { - return false - } - } else if this.Two == nil { - return false - } else if !this.Two.Equal(that1.Two) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *TwoOneofs_Field1) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field1) - if !ok { - that2, ok := that.(TwoOneofs_Field1) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - return true -} -func (this *TwoOneofs_Field2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field2) - if !ok { - that2, ok := that.(TwoOneofs_Field2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != that1.Field2 { - return false - } - return true -} -func (this *TwoOneofs_Field3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field3) - if !ok { - that2, ok := that.(TwoOneofs_Field3) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field3 != that1.Field3 { - return false - } - return true -} -func (this *TwoOneofs_Field34) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field34) - if !ok { - that2, ok := that.(TwoOneofs_Field34) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field34 != that1.Field34 { - return false - } - return true -} -func (this *TwoOneofs_Field35) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field35) - if !ok { - that2, ok := that.(TwoOneofs_Field35) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.Field35, that1.Field35) { - return false - } - return true -} -func (this *TwoOneofs_SubMessage2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_SubMessage2) - if !ok { - that2, ok := that.(TwoOneofs_SubMessage2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.SubMessage2.Equal(that1.SubMessage2) { - return false - } - return true -} -func (this *CustomOneof) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof) - if !ok { - that2, ok := that.(CustomOneof) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof but is not nil && this == nil") - } - if that1.Custom == nil { - if this.Custom != nil { - return fmt.Errorf("this.Custom != nil && that1.Custom == nil") - } - } else if this.Custom == nil { - return fmt.Errorf("this.Custom == nil && that1.Custom != nil") - } else if err := this.Custom.VerboseEqual(that1.Custom); err != nil { - return err - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomOneof_Stringy) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_Stringy) - if !ok { - that2, ok := that.(CustomOneof_Stringy) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_Stringy") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_Stringy but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_Stringy but is not nil && this == nil") - } - if this.Stringy != that1.Stringy { - return fmt.Errorf("Stringy this(%v) Not Equal that(%v)", this.Stringy, that1.Stringy) - } - return nil -} -func (this *CustomOneof_CustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_CustomType) - if !ok { - that2, ok := that.(CustomOneof_CustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_CustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_CustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_CustomType but is not nil && this == nil") - } - if !this.CustomType.Equal(that1.CustomType) { - return fmt.Errorf("CustomType this(%v) Not Equal that(%v)", this.CustomType, that1.CustomType) - } - return nil -} -func (this *CustomOneof_CastType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_CastType) - if !ok { - that2, ok := that.(CustomOneof_CastType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_CastType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_CastType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_CastType but is not nil && this == nil") - } - if this.CastType != that1.CastType { - return fmt.Errorf("CastType this(%v) Not Equal that(%v)", this.CastType, that1.CastType) - } - return nil -} -func (this *CustomOneof_MyCustomName) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_MyCustomName) - if !ok { - that2, ok := that.(CustomOneof_MyCustomName) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_MyCustomName") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_MyCustomName but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_MyCustomName but is not nil && this == nil") - } - if this.MyCustomName != that1.MyCustomName { - return fmt.Errorf("MyCustomName this(%v) Not Equal that(%v)", this.MyCustomName, that1.MyCustomName) - } - return nil -} -func (this *CustomOneof) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof) - if !ok { - that2, ok := that.(CustomOneof) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Custom == nil { - if this.Custom != nil { - return false - } - } else if this.Custom == nil { - return false - } else if !this.Custom.Equal(that1.Custom) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomOneof_Stringy) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_Stringy) - if !ok { - that2, ok := that.(CustomOneof_Stringy) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Stringy != that1.Stringy { - return false - } - return true -} -func (this *CustomOneof_CustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_CustomType) - if !ok { - that2, ok := that.(CustomOneof_CustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.CustomType.Equal(that1.CustomType) { - return false - } - return true -} -func (this *CustomOneof_CastType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_CastType) - if !ok { - that2, ok := that.(CustomOneof_CastType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.CastType != that1.CastType { - return false - } - return true -} -func (this *CustomOneof_MyCustomName) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_MyCustomName) - if !ok { - that2, ok := that.(CustomOneof_MyCustomName) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.MyCustomName != that1.MyCustomName { - return false - } - return true -} -func (this *Subby) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&one.Subby{") - if this.Sub != nil { - s = append(s, "Sub: "+valueToGoStringOne(this.Sub, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllTypesOneOf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&one.AllTypesOneOf{") - if this.TestOneof != nil { - s = append(s, "TestOneof: "+fmt.Sprintf("%#v", this.TestOneof)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllTypesOneOf_Field1) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field1{` + - `Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field2{` + - `Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field3) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field3{` + - `Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field4) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field4{` + - `Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field5) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field5{` + - `Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field6) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field6{` + - `Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field7) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field7{` + - `Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field8) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field8{` + - `Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field9) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field9{` + - `Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field10) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field10{` + - `Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field11) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field11{` + - `Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field12) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field12{` + - `Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field13) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field13{` + - `Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field14) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field14{` + - `Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field15) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field15{` + - `Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_SubMessage) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_SubMessage{` + - `SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ") - return s -} -func (this *TwoOneofs) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 10) - s = append(s, "&one.TwoOneofs{") - if this.One != nil { - s = append(s, "One: "+fmt.Sprintf("%#v", this.One)+",\n") - } - if this.Two != nil { - s = append(s, "Two: "+fmt.Sprintf("%#v", this.Two)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *TwoOneofs_Field1) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field1{` + - `Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field2{` + - `Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field3) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field3{` + - `Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field34) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field34{` + - `Field34:` + fmt.Sprintf("%#v", this.Field34) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field35) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field35{` + - `Field35:` + fmt.Sprintf("%#v", this.Field35) + `}`}, ", ") - return s -} -func (this *TwoOneofs_SubMessage2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_SubMessage2{` + - `SubMessage2:` + fmt.Sprintf("%#v", this.SubMessage2) + `}`}, ", ") - return s -} -func (this *CustomOneof) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&one.CustomOneof{") - if this.Custom != nil { - s = append(s, "Custom: "+fmt.Sprintf("%#v", this.Custom)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomOneof_Stringy) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_Stringy{` + - `Stringy:` + fmt.Sprintf("%#v", this.Stringy) + `}`}, ", ") - return s -} -func (this *CustomOneof_CustomType) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_CustomType{` + - `CustomType:` + fmt.Sprintf("%#v", this.CustomType) + `}`}, ", ") - return s -} -func (this *CustomOneof_CastType) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_CastType{` + - `CastType:` + fmt.Sprintf("%#v", this.CastType) + `}`}, ", ") - return s -} -func (this *CustomOneof_MyCustomName) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_MyCustomName{` + - `MyCustomName:` + fmt.Sprintf("%#v", this.MyCustomName) + `}`}, ", ") - return s -} -func valueToGoStringOne(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedSubby(r randyOne, easy bool) *Subby { - this := &Subby{} - if r.Intn(10) != 0 { - v1 := string(randStringOne(r)) - this.Sub = &v1 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 2) - } - return this -} - -func NewPopulatedAllTypesOneOf(r randyOne, easy bool) *AllTypesOneOf { - this := &AllTypesOneOf{} - oneofNumber_TestOneof := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}[r.Intn(16)] - switch oneofNumber_TestOneof { - case 1: - this.TestOneof = NewPopulatedAllTypesOneOf_Field1(r, easy) - case 2: - this.TestOneof = NewPopulatedAllTypesOneOf_Field2(r, easy) - case 3: - this.TestOneof = NewPopulatedAllTypesOneOf_Field3(r, easy) - case 4: - this.TestOneof = NewPopulatedAllTypesOneOf_Field4(r, easy) - case 5: - this.TestOneof = NewPopulatedAllTypesOneOf_Field5(r, easy) - case 6: - this.TestOneof = NewPopulatedAllTypesOneOf_Field6(r, easy) - case 7: - this.TestOneof = NewPopulatedAllTypesOneOf_Field7(r, easy) - case 8: - this.TestOneof = NewPopulatedAllTypesOneOf_Field8(r, easy) - case 9: - this.TestOneof = NewPopulatedAllTypesOneOf_Field9(r, easy) - case 10: - this.TestOneof = NewPopulatedAllTypesOneOf_Field10(r, easy) - case 11: - this.TestOneof = NewPopulatedAllTypesOneOf_Field11(r, easy) - case 12: - this.TestOneof = NewPopulatedAllTypesOneOf_Field12(r, easy) - case 13: - this.TestOneof = NewPopulatedAllTypesOneOf_Field13(r, easy) - case 14: - this.TestOneof = NewPopulatedAllTypesOneOf_Field14(r, easy) - case 15: - this.TestOneof = NewPopulatedAllTypesOneOf_Field15(r, easy) - case 16: - this.TestOneof = NewPopulatedAllTypesOneOf_SubMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 17) - } - return this -} - -func NewPopulatedAllTypesOneOf_Field1(r randyOne, easy bool) *AllTypesOneOf_Field1 { - this := &AllTypesOneOf_Field1{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field2(r randyOne, easy bool) *AllTypesOneOf_Field2 { - this := &AllTypesOneOf_Field2{} - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field3(r randyOne, easy bool) *AllTypesOneOf_Field3 { - this := &AllTypesOneOf_Field3{} - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field4(r randyOne, easy bool) *AllTypesOneOf_Field4 { - this := &AllTypesOneOf_Field4{} - this.Field4 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field5(r randyOne, easy bool) *AllTypesOneOf_Field5 { - this := &AllTypesOneOf_Field5{} - this.Field5 = uint32(r.Uint32()) - return this -} -func NewPopulatedAllTypesOneOf_Field6(r randyOne, easy bool) *AllTypesOneOf_Field6 { - this := &AllTypesOneOf_Field6{} - this.Field6 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedAllTypesOneOf_Field7(r randyOne, easy bool) *AllTypesOneOf_Field7 { - this := &AllTypesOneOf_Field7{} - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field8(r randyOne, easy bool) *AllTypesOneOf_Field8 { - this := &AllTypesOneOf_Field8{} - this.Field8 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field9(r randyOne, easy bool) *AllTypesOneOf_Field9 { - this := &AllTypesOneOf_Field9{} - this.Field9 = uint32(r.Uint32()) - return this -} -func NewPopulatedAllTypesOneOf_Field10(r randyOne, easy bool) *AllTypesOneOf_Field10 { - this := &AllTypesOneOf_Field10{} - this.Field10 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field11(r randyOne, easy bool) *AllTypesOneOf_Field11 { - this := &AllTypesOneOf_Field11{} - this.Field11 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedAllTypesOneOf_Field12(r randyOne, easy bool) *AllTypesOneOf_Field12 { - this := &AllTypesOneOf_Field12{} - this.Field12 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Field13 { - this := &AllTypesOneOf_Field13{} - this.Field13 = bool(bool(r.Intn(2) == 0)) - return this -} -func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { - this := &AllTypesOneOf_Field14{} - this.Field14 = string(randStringOne(r)) - return this -} -func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { - this := &AllTypesOneOf_Field15{} - v2 := r.Intn(100) - this.Field15 = make([]byte, v2) - for i := 0; i < v2; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - return this -} -func NewPopulatedAllTypesOneOf_SubMessage(r randyOne, easy bool) *AllTypesOneOf_SubMessage { - this := &AllTypesOneOf_SubMessage{} - this.SubMessage = NewPopulatedSubby(r, easy) - return this -} -func NewPopulatedTwoOneofs(r randyOne, easy bool) *TwoOneofs { - this := &TwoOneofs{} - oneofNumber_One := []int32{1, 2, 3}[r.Intn(3)] - switch oneofNumber_One { - case 1: - this.One = NewPopulatedTwoOneofs_Field1(r, easy) - case 2: - this.One = NewPopulatedTwoOneofs_Field2(r, easy) - case 3: - this.One = NewPopulatedTwoOneofs_Field3(r, easy) - } - oneofNumber_Two := []int32{34, 35, 36}[r.Intn(3)] - switch oneofNumber_Two { - case 34: - this.Two = NewPopulatedTwoOneofs_Field34(r, easy) - case 35: - this.Two = NewPopulatedTwoOneofs_Field35(r, easy) - case 36: - this.Two = NewPopulatedTwoOneofs_SubMessage2(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 37) - } - return this -} - -func NewPopulatedTwoOneofs_Field1(r randyOne, easy bool) *TwoOneofs_Field1 { - this := &TwoOneofs_Field1{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - return this -} -func NewPopulatedTwoOneofs_Field2(r randyOne, easy bool) *TwoOneofs_Field2 { - this := &TwoOneofs_Field2{} - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - return this -} -func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { - this := &TwoOneofs_Field3{} - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - return this -} -func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { - this := &TwoOneofs_Field34{} - this.Field34 = string(randStringOne(r)) - return this -} -func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { - this := &TwoOneofs_Field35{} - v3 := r.Intn(100) - this.Field35 = make([]byte, v3) - for i := 0; i < v3; i++ { - this.Field35[i] = byte(r.Intn(256)) - } - return this -} -func NewPopulatedTwoOneofs_SubMessage2(r randyOne, easy bool) *TwoOneofs_SubMessage2 { - this := &TwoOneofs_SubMessage2{} - this.SubMessage2 = NewPopulatedSubby(r, easy) - return this -} -func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { - this := &CustomOneof{} - oneofNumber_Custom := []int32{34, 35, 36, 37}[r.Intn(4)] - switch oneofNumber_Custom { - case 34: - this.Custom = NewPopulatedCustomOneof_Stringy(r, easy) - case 35: - this.Custom = NewPopulatedCustomOneof_CustomType(r, easy) - case 36: - this.Custom = NewPopulatedCustomOneof_CastType(r, easy) - case 37: - this.Custom = NewPopulatedCustomOneof_MyCustomName(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 38) - } - return this -} - -func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { - this := &CustomOneof_Stringy{} - this.Stringy = string(randStringOne(r)) - return this -} -func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { - this := &CustomOneof_CustomType{} - v4 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.CustomType = *v4 - return this -} -func NewPopulatedCustomOneof_CastType(r randyOne, easy bool) *CustomOneof_CastType { - this := &CustomOneof_CastType{} - this.CastType = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - return this -} -func NewPopulatedCustomOneof_MyCustomName(r randyOne, easy bool) *CustomOneof_MyCustomName { - this := &CustomOneof_MyCustomName{} - this.MyCustomName = int64(r.Int63()) - if r.Intn(2) == 0 { - this.MyCustomName *= -1 - } - return this -} - -type randyOne interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneOne(r randyOne) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringOne(r randyOne) string { - v5 := r.Intn(100) - tmps := make([]rune, v5) - for i := 0; i < v5; i++ { - tmps[i] = randUTF8RuneOne(r) - } - return string(tmps) -} -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldOne(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - v6 := r.Int63() - if r.Intn(2) == 0 { - v6 *= -1 - } - dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) - case 1: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Subby) Size() (n int) { - var l int - _ = l - if m.Sub != nil { - l = len(*m.Sub) - n += 1 + l + sovOne(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllTypesOneOf) Size() (n int) { - var l int - _ = l - if m.TestOneof != nil { - n += m.TestOneof.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllTypesOneOf_Field1) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *AllTypesOneOf_Field2) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *AllTypesOneOf_Field3) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field3)) - return n -} -func (m *AllTypesOneOf_Field4) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field4)) - return n -} -func (m *AllTypesOneOf_Field5) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field5)) - return n -} -func (m *AllTypesOneOf_Field6) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field6)) - return n -} -func (m *AllTypesOneOf_Field7) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field7)) - return n -} -func (m *AllTypesOneOf_Field8) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field8)) - return n -} -func (m *AllTypesOneOf_Field9) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *AllTypesOneOf_Field10) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *AllTypesOneOf_Field11) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *AllTypesOneOf_Field12) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *AllTypesOneOf_Field13) Size() (n int) { - var l int - _ = l - n += 2 - return n -} -func (m *AllTypesOneOf_Field14) Size() (n int) { - var l int - _ = l - l = len(m.Field14) - n += 1 + l + sovOne(uint64(l)) - return n -} -func (m *AllTypesOneOf_Field15) Size() (n int) { - var l int - _ = l - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovOne(uint64(l)) - } - return n -} -func (m *AllTypesOneOf_SubMessage) Size() (n int) { - var l int - _ = l - if m.SubMessage != nil { - l = m.SubMessage.Size() - n += 2 + l + sovOne(uint64(l)) - } - return n -} -func (m *TwoOneofs) Size() (n int) { - var l int - _ = l - if m.One != nil { - n += m.One.Size() - } - if m.Two != nil { - n += m.Two.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *TwoOneofs_Field1) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *TwoOneofs_Field2) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *TwoOneofs_Field3) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field3)) - return n -} -func (m *TwoOneofs_Field34) Size() (n int) { - var l int - _ = l - l = len(m.Field34) - n += 2 + l + sovOne(uint64(l)) - return n -} -func (m *TwoOneofs_Field35) Size() (n int) { - var l int - _ = l - if m.Field35 != nil { - l = len(m.Field35) - n += 2 + l + sovOne(uint64(l)) - } - return n -} -func (m *TwoOneofs_SubMessage2) Size() (n int) { - var l int - _ = l - if m.SubMessage2 != nil { - l = m.SubMessage2.Size() - n += 2 + l + sovOne(uint64(l)) - } - return n -} -func (m *CustomOneof) Size() (n int) { - var l int - _ = l - if m.Custom != nil { - n += m.Custom.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomOneof_Stringy) Size() (n int) { - var l int - _ = l - l = len(m.Stringy) - n += 2 + l + sovOne(uint64(l)) - return n -} -func (m *CustomOneof_CustomType) Size() (n int) { - var l int - _ = l - l = m.CustomType.Size() - n += 2 + l + sovOne(uint64(l)) - return n -} -func (m *CustomOneof_CastType) Size() (n int) { - var l int - _ = l - n += 2 + sovOne(uint64(m.CastType)) - return n -} -func (m *CustomOneof_MyCustomName) Size() (n int) { - var l int - _ = l - n += 2 + sovOne(uint64(m.MyCustomName)) - return n -} - -func sovOne(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozOne(x uint64) (n int) { - return sovOne(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Subby) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Subby{`, - `Sub:` + valueToStringOne(this.Sub) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf{`, - `TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field1) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field1{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field2{`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field3{`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field4) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field4{`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field5) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field5{`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field6) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field6{`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field7) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field7{`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field8) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field8{`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field9) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field9{`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field10) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field10{`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field11) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field11{`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field12) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field12{`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field13) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field13{`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field14) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field14{`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field15) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field15{`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_SubMessage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_SubMessage{`, - `SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs{`, - `One:` + fmt.Sprintf("%v", this.One) + `,`, - `Two:` + fmt.Sprintf("%v", this.Two) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field1) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field1{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field2{`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field3{`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field34) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field34{`, - `Field34:` + fmt.Sprintf("%v", this.Field34) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field35) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field35{`, - `Field35:` + fmt.Sprintf("%v", this.Field35) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_SubMessage2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_SubMessage2{`, - `SubMessage2:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage2), "Subby", "Subby", 1) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof{`, - `Custom:` + fmt.Sprintf("%v", this.Custom) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_Stringy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_Stringy{`, - `Stringy:` + fmt.Sprintf("%v", this.Stringy) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_CustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_CustomType{`, - `CustomType:` + fmt.Sprintf("%v", this.CustomType) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_CastType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_CastType{`, - `CastType:` + fmt.Sprintf("%v", this.CastType) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_MyCustomName) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_MyCustomName{`, - `MyCustomName:` + fmt.Sprintf("%v", this.MyCustomName) + `,`, - `}`, - }, "") - return s -} -func valueToStringOne(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Subby) 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 *Subby) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Sub != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintOne(dAtA, i, uint64(len(*m.Sub))) - i += copy(dAtA[i:], *m.Sub) - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AllTypesOneOf) 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 *AllTypesOneOf) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn1 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *AllTypesOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - return i, nil -} -func (m *AllTypesOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - return i, nil -} -func (m *AllTypesOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x18 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field3)) - return i, nil -} -func (m *AllTypesOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x20 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field4)) - return i, nil -} -func (m *AllTypesOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x28 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field5)) - return i, nil -} -func (m *AllTypesOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x30 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field6)) - return i, nil -} -func (m *AllTypesOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x38 - i++ - i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - return i, nil -} -func (m *AllTypesOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x40 - i++ - i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - return i, nil -} -func (m *AllTypesOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 - i += 4 - return i, nil -} -func (m *AllTypesOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 - i += 4 - return i, nil -} -func (m *AllTypesOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 - i += 8 - return i, nil -} -func (m *AllTypesOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 - i += 8 - return i, nil -} -func (m *AllTypesOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x68 - i++ - if m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - return i, nil -} -func (m *AllTypesOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x72 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) - i += copy(dAtA[i:], m.Field14) - return i, nil -} -func (m *AllTypesOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - return i, nil -} -func (m *AllTypesOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.SubMessage != nil { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - return i, nil -} -func (m *TwoOneofs) 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 *TwoOneofs) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.One != nil { - nn3, err := m.One.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn3 - } - if m.Two != nil { - nn4, err := m.Two.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn4 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *TwoOneofs_Field1) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - return i, nil -} -func (m *TwoOneofs_Field2) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - return i, nil -} -func (m *TwoOneofs_Field3) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x18 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field3)) - return i, nil -} -func (m *TwoOneofs_Field34) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x92 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field34))) - i += copy(dAtA[i:], m.Field34) - return i, nil -} -func (m *TwoOneofs_Field35) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Field35 != nil { - dAtA[i] = 0x9a - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field35))) - i += copy(dAtA[i:], m.Field35) - } - return i, nil -} -func (m *TwoOneofs_SubMessage2) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.SubMessage2 != nil { - dAtA[i] = 0xa2 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.SubMessage2.Size())) - n5, err := m.SubMessage2.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - return i, nil -} -func (m *CustomOneof) 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 *CustomOneof) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Custom != nil { - nn6, err := m.Custom.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn6 - } - if m.XXX_unrecognized != nil { - i += copy(dAtA[i:], m.XXX_unrecognized) - } - return i, nil -} - -func (m *CustomOneof_Stringy) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x92 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Stringy))) - i += copy(dAtA[i:], m.Stringy) - return i, nil -} -func (m *CustomOneof_CustomType) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x9a - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.CustomType.Size())) - n7, err := m.CustomType.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - return i, nil -} -func (m *CustomOneof_CastType) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0xa0 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.CastType)) - return i, nil -} -func (m *CustomOneof_MyCustomName) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0xa8 - i++ - dAtA[i] = 0x2 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.MyCustomName)) - return i, nil -} -func encodeFixed64One(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 encodeFixed32One(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 encodeVarintOne(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 init() { proto.RegisterFile("combos/unsafemarshaler/one.proto", fileDescriptorOne) } - -var fileDescriptorOne = []byte{ - // 605 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x6e, 0xdb, 0x3c, - 0x10, 0x00, 0x70, 0x5e, 0x1c, 0x3b, 0x0e, 0xed, 0x7c, 0xf1, 0xa7, 0x89, 0xcd, 0xc0, 0x10, 0x6e, - 0x0b, 0x70, 0x68, 0xec, 0x58, 0xb6, 0xf3, 0x67, 0xac, 0x52, 0x14, 0x5e, 0xd2, 0x00, 0x4a, 0x32, - 0x07, 0x52, 0x4a, 0x3b, 0x06, 0x6c, 0x31, 0x30, 0x25, 0x04, 0xde, 0xf2, 0x0c, 0x7d, 0x8a, 0x8e, - 0x1d, 0xfb, 0x08, 0x19, 0x3d, 0x16, 0x1d, 0x8c, 0x58, 0x5d, 0x3a, 0x66, 0x0c, 0x3a, 0x15, 0x94, - 0x62, 0xb2, 0x40, 0x51, 0x74, 0xe9, 0x64, 0xdd, 0xfd, 0xc4, 0xf3, 0x9d, 0x48, 0x62, 0x76, 0x29, - 0xc7, 0xa1, 0x54, 0xcd, 0x24, 0x52, 0x41, 0x5f, 0x8c, 0x83, 0x89, 0xba, 0x0a, 0x46, 0x62, 0xd2, - 0x94, 0x91, 0x68, 0x5c, 0x4f, 0x64, 0x2c, 0x9d, 0x82, 0x8c, 0xc4, 0xd6, 0xce, 0x60, 0x18, 0x5f, - 0x25, 0x61, 0xe3, 0x52, 0x8e, 0x9b, 0x03, 0x39, 0x90, 0xcd, 0xcc, 0xc2, 0xa4, 0x9f, 0x45, 0x59, - 0x90, 0x3d, 0xe5, 0x6b, 0xea, 0xcf, 0x70, 0xf1, 0x34, 0x09, 0xc3, 0xa9, 0x53, 0xc3, 0x05, 0x95, - 0x84, 0x04, 0x18, 0xf0, 0x75, 0x5f, 0x3f, 0xd6, 0xe7, 0x05, 0xbc, 0xf1, 0x7a, 0x34, 0x3a, 0x9b, - 0x5e, 0x0b, 0x75, 0x12, 0x89, 0x93, 0xbe, 0x43, 0x70, 0xe9, 0xed, 0x50, 0x8c, 0xde, 0xb7, 0xb2, - 0xd7, 0xa0, 0x87, 0xfc, 0xa7, 0xd8, 0x88, 0x4b, 0x56, 0x18, 0xf0, 0x15, 0x23, 0xae, 0x91, 0x36, - 0x29, 0x30, 0xe0, 0x45, 0x23, 0x6d, 0x23, 0x1d, 0xb2, 0xca, 0x80, 0x17, 0x8c, 0x74, 0x8c, 0x74, - 0x49, 0x91, 0x01, 0xdf, 0x30, 0xd2, 0x35, 0xb2, 0x47, 0x4a, 0x0c, 0xf8, 0xaa, 0x91, 0x3d, 0x23, - 0xfb, 0x64, 0x8d, 0x01, 0xff, 0xdf, 0xc8, 0xbe, 0x91, 0x03, 0x52, 0x66, 0xc0, 0x1d, 0x23, 0x07, - 0x46, 0x0e, 0xc9, 0x3a, 0x03, 0xbe, 0x66, 0xe4, 0xd0, 0xd9, 0xc2, 0x6b, 0xf9, 0x64, 0xbb, 0x04, - 0x33, 0xe0, 0x9b, 0x3d, 0xe4, 0x2f, 0x13, 0xd6, 0x5a, 0xa4, 0xc2, 0x80, 0x97, 0xac, 0xb5, 0xac, - 0xb9, 0xa4, 0xca, 0x80, 0xd7, 0xac, 0xb9, 0xd6, 0xda, 0x64, 0x83, 0x01, 0x2f, 0x5b, 0x6b, 0x5b, - 0xeb, 0x90, 0xff, 0xf4, 0x0e, 0x58, 0xeb, 0x58, 0xeb, 0x92, 0x4d, 0x06, 0xbc, 0x6a, 0xad, 0xeb, - 0xec, 0xe0, 0x8a, 0x4a, 0xc2, 0x8b, 0xb1, 0x50, 0x2a, 0x18, 0x08, 0x52, 0x63, 0xc0, 0x2b, 0x2e, - 0x6e, 0xe8, 0x33, 0x91, 0x6d, 0x6b, 0x0f, 0xf9, 0x58, 0x25, 0xe1, 0x71, 0xee, 0x5e, 0x15, 0xe3, - 0x58, 0xa8, 0xf8, 0x42, 0x46, 0x42, 0xf6, 0xeb, 0x33, 0xc0, 0xeb, 0x67, 0x37, 0xf2, 0x44, 0x07, - 0xea, 0x1f, 0x6f, 0xee, 0xb2, 0xe9, 0x76, 0x87, 0xd4, 0xb3, 0x81, 0xc0, 0x5f, 0x26, 0xac, 0x75, - 0xc9, 0xf3, 0x6c, 0x20, 0x63, 0x5d, 0xa7, 0x89, 0xab, 0xbf, 0x0c, 0xe4, 0x92, 0x17, 0xbf, 0x4d, - 0x04, 0x7e, 0xc5, 0x4e, 0xe4, 0x7a, 0x45, 0xac, 0x8f, 0xbd, 0xfe, 0x89, 0x6f, 0x64, 0xfd, 0xc3, - 0x0a, 0xae, 0x1c, 0x25, 0x2a, 0x96, 0xe3, 0x6c, 0x2a, 0xfd, 0x57, 0xa7, 0xf1, 0x64, 0x18, 0x0d, - 0xa6, 0x4f, 0x6d, 0x20, 0x7f, 0x99, 0x70, 0x7c, 0x8c, 0xf3, 0x57, 0xf5, 0x09, 0xcf, 0x3b, 0xf1, - 0x76, 0xbf, 0xce, 0xb7, 0x5f, 0xfd, 0xf1, 0x06, 0xe9, 0x6f, 0xd7, 0xbc, 0xcc, 0xd6, 0x34, 0xce, - 0x87, 0x51, 0xdc, 0x72, 0x0f, 0xf4, 0x07, 0xb6, 0x55, 0x9c, 0x73, 0x5c, 0x3e, 0x0a, 0x54, 0x9c, - 0x55, 0xd4, 0xad, 0xaf, 0x7a, 0xfb, 0x3f, 0xe6, 0xdb, 0xed, 0xbf, 0x54, 0x0c, 0x54, 0x1c, 0x4f, - 0xaf, 0x45, 0xe3, 0x78, 0xaa, 0xab, 0xee, 0x75, 0xf4, 0xf2, 0x1e, 0xf2, 0x4d, 0x29, 0xc7, 0x5d, - 0xb6, 0xfa, 0x2e, 0x18, 0x0b, 0xf2, 0x52, 0x5f, 0x17, 0xaf, 0x96, 0xce, 0xb7, 0xab, 0xc7, 0x53, - 0x9b, 0xb7, 0xad, 0xe8, 0xc8, 0x2b, 0xe3, 0x52, 0xde, 0xaa, 0xf7, 0xe6, 0x6e, 0x41, 0xd1, 0x6c, - 0x41, 0xd1, 0x97, 0x05, 0x45, 0xf7, 0x0b, 0x0a, 0x0f, 0x0b, 0x0a, 0x8f, 0x0b, 0x0a, 0xb7, 0x29, - 0x85, 0x8f, 0x29, 0x85, 0x4f, 0x29, 0x85, 0xcf, 0x29, 0x85, 0xbb, 0x94, 0xa2, 0x59, 0x4a, 0xd1, - 0x7d, 0x4a, 0xe1, 0x7b, 0x4a, 0xd1, 0x43, 0x4a, 0xe1, 0x31, 0xa5, 0x70, 0xfb, 0x8d, 0xa2, 0x9f, - 0x01, 0x00, 0x00, 0xff, 0xff, 0xa2, 0xfa, 0x42, 0x4c, 0x80, 0x04, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.proto deleted file mode 100644 index 3d29620a2..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/one.proto +++ /dev/null @@ -1,103 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; - -package one; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = false; - -message Subby { - optional string sub = 1; -} - -message AllTypesOneOf { - oneof test_oneof { - double Field1 = 1; - float Field2 = 2; - int32 Field3 = 3; - int64 Field4 = 4; - uint32 Field5 = 5; - uint64 Field6 = 6; - sint32 Field7 = 7; - sint64 Field8 = 8; - fixed32 Field9 = 9; - sfixed32 Field10 = 10; - fixed64 Field11 = 11; - sfixed64 Field12 = 12; - bool Field13 = 13; - string Field14 = 14; - bytes Field15 = 15; - Subby sub_message = 16; - } -} - -message TwoOneofs { - oneof one { - double Field1 = 1; - float Field2 = 2; - int32 Field3 = 3; - } - - oneof two { - string Field34 = 34; - bytes Field35 = 35; - Subby sub_message2 = 36; - } -} - -message CustomOneof { - oneof custom { - string Stringy = 34; - bytes CustomType = 35 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; - uint64 CastType = 36 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - int64 CustomName = 37 [(gogoproto.customname) = "MyCustomName"]; - } -} diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/onepb_test.go deleted file mode 100644 index becfa0ddc..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafemarshaler/onepb_test.go +++ /dev/null @@ -1,792 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/one.proto -// DO NOT EDIT! - -/* -Package one is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/one.proto - -It has these top-level messages: - Subby - AllTypesOneOf - TwoOneofs - CustomOneof -*/ -package one - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestSubbyProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestSubbyMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllTypesOneOfProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllTypesOneOfMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTwoOneofsProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestTwoOneofsMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomOneofProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomOneofMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllTypesOneOfJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllTypesOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestTwoOneofsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &TwoOneofs{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomOneofJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomOneof{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestSubbyProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllTypesOneOfProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllTypesOneOfProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTwoOneofsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTwoOneofsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomOneofProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomOneofProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneDescription(t *testing.T) { - OneDescription() -} -func TestSubbyVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllTypesOneOfVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestTwoOneofsVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomOneofVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllTypesOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllTypesOneOf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestTwoOneofsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTwoOneofs(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomOneofGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomOneof(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestSubbySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestAllTypesOneOfSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestTwoOneofsSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestCustomOneofSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllTypesOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllTypesOneOf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestTwoOneofsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTwoOneofs(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomOneofStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomOneof(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.pb.go deleted file mode 100644 index b853264c1..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.pb.go +++ /dev/null @@ -1,5244 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/one.proto -// DO NOT EDIT! - -/* - Package one is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeunmarshaler/one.proto - - It has these top-level messages: - Subby - AllTypesOneOf - TwoOneofs - CustomOneof -*/ -package one - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" - -import io "io" -import unsafe "unsafe" - -// 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 - -type Subby struct { - Sub *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *Subby) Reset() { *m = Subby{} } -func (*Subby) ProtoMessage() {} -func (*Subby) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{0} } - -type AllTypesOneOf struct { - // Types that are valid to be assigned to TestOneof: - // *AllTypesOneOf_Field1 - // *AllTypesOneOf_Field2 - // *AllTypesOneOf_Field3 - // *AllTypesOneOf_Field4 - // *AllTypesOneOf_Field5 - // *AllTypesOneOf_Field6 - // *AllTypesOneOf_Field7 - // *AllTypesOneOf_Field8 - // *AllTypesOneOf_Field9 - // *AllTypesOneOf_Field10 - // *AllTypesOneOf_Field11 - // *AllTypesOneOf_Field12 - // *AllTypesOneOf_Field13 - // *AllTypesOneOf_Field14 - // *AllTypesOneOf_Field15 - // *AllTypesOneOf_SubMessage - TestOneof isAllTypesOneOf_TestOneof `protobuf_oneof:"test_oneof"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *AllTypesOneOf) Reset() { *m = AllTypesOneOf{} } -func (*AllTypesOneOf) ProtoMessage() {} -func (*AllTypesOneOf) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{1} } - -type isAllTypesOneOf_TestOneof interface { - isAllTypesOneOf_TestOneof() - Equal(interface{}) bool - VerboseEqual(interface{}) error - Size() int -} - -type AllTypesOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` -} -type AllTypesOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` -} -type AllTypesOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` -} -type AllTypesOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"` -} -type AllTypesOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"` -} -type AllTypesOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"` -} -type AllTypesOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"` -} -type AllTypesOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"` -} -type AllTypesOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"` -} -type AllTypesOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"` -} -type AllTypesOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"` -} -type AllTypesOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"` -} -type AllTypesOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"` -} -type AllTypesOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"` -} -type AllTypesOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"` -} -type AllTypesOneOf_SubMessage struct { - SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` -} - -func (*AllTypesOneOf_Field1) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field2) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field3) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field4) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field5) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field6) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field7) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field8) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field9) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field10) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field11) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field12) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field13) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field14) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_Field15) isAllTypesOneOf_TestOneof() {} -func (*AllTypesOneOf_SubMessage) isAllTypesOneOf_TestOneof() {} - -func (m *AllTypesOneOf) GetTestOneof() isAllTypesOneOf_TestOneof { - if m != nil { - return m.TestOneof - } - return nil -} - -func (m *AllTypesOneOf) GetField1() float64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field1); ok { - return x.Field1 - } - return 0 -} - -func (m *AllTypesOneOf) GetField2() float32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field2); ok { - return x.Field2 - } - return 0 -} - -func (m *AllTypesOneOf) GetField3() int32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field3); ok { - return x.Field3 - } - return 0 -} - -func (m *AllTypesOneOf) GetField4() int64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field4); ok { - return x.Field4 - } - return 0 -} - -func (m *AllTypesOneOf) GetField5() uint32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field5); ok { - return x.Field5 - } - return 0 -} - -func (m *AllTypesOneOf) GetField6() uint64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field6); ok { - return x.Field6 - } - return 0 -} - -func (m *AllTypesOneOf) GetField7() int32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field7); ok { - return x.Field7 - } - return 0 -} - -func (m *AllTypesOneOf) GetField8() int64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field8); ok { - return x.Field8 - } - return 0 -} - -func (m *AllTypesOneOf) GetField9() uint32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field9); ok { - return x.Field9 - } - return 0 -} - -func (m *AllTypesOneOf) GetField10() int32 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field10); ok { - return x.Field10 - } - return 0 -} - -func (m *AllTypesOneOf) GetField11() uint64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field11); ok { - return x.Field11 - } - return 0 -} - -func (m *AllTypesOneOf) GetField12() int64 { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field12); ok { - return x.Field12 - } - return 0 -} - -func (m *AllTypesOneOf) GetField13() bool { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field13); ok { - return x.Field13 - } - return false -} - -func (m *AllTypesOneOf) GetField14() string { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field14); ok { - return x.Field14 - } - return "" -} - -func (m *AllTypesOneOf) GetField15() []byte { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field15); ok { - return x.Field15 - } - return nil -} - -func (m *AllTypesOneOf) GetSubMessage() *Subby { - if x, ok := m.GetTestOneof().(*AllTypesOneOf_SubMessage); ok { - return x.SubMessage - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*AllTypesOneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _AllTypesOneOf_OneofMarshaler, _AllTypesOneOf_OneofUnmarshaler, _AllTypesOneOf_OneofSizer, []interface{}{ - (*AllTypesOneOf_Field1)(nil), - (*AllTypesOneOf_Field2)(nil), - (*AllTypesOneOf_Field3)(nil), - (*AllTypesOneOf_Field4)(nil), - (*AllTypesOneOf_Field5)(nil), - (*AllTypesOneOf_Field6)(nil), - (*AllTypesOneOf_Field7)(nil), - (*AllTypesOneOf_Field8)(nil), - (*AllTypesOneOf_Field9)(nil), - (*AllTypesOneOf_Field10)(nil), - (*AllTypesOneOf_Field11)(nil), - (*AllTypesOneOf_Field12)(nil), - (*AllTypesOneOf_Field13)(nil), - (*AllTypesOneOf_Field14)(nil), - (*AllTypesOneOf_Field15)(nil), - (*AllTypesOneOf_SubMessage)(nil), - } -} - -func _AllTypesOneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*AllTypesOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *AllTypesOneOf_Field1: - _ = b.EncodeVarint(1<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.Field1)) - case *AllTypesOneOf_Field2: - _ = b.EncodeVarint(2<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2))) - case *AllTypesOneOf_Field3: - _ = b.EncodeVarint(3<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field3)) - case *AllTypesOneOf_Field4: - _ = b.EncodeVarint(4<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field4)) - case *AllTypesOneOf_Field5: - _ = b.EncodeVarint(5<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field5)) - case *AllTypesOneOf_Field6: - _ = b.EncodeVarint(6<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field6)) - case *AllTypesOneOf_Field7: - _ = b.EncodeVarint(7<<3 | proto.WireVarint) - _ = b.EncodeZigzag32(uint64(x.Field7)) - case *AllTypesOneOf_Field8: - _ = b.EncodeVarint(8<<3 | proto.WireVarint) - _ = b.EncodeZigzag64(uint64(x.Field8)) - case *AllTypesOneOf_Field9: - _ = b.EncodeVarint(9<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field9)) - case *AllTypesOneOf_Field10: - _ = b.EncodeVarint(10<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field10)) - case *AllTypesOneOf_Field11: - _ = b.EncodeVarint(11<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field11)) - case *AllTypesOneOf_Field12: - _ = b.EncodeVarint(12<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field12)) - case *AllTypesOneOf_Field13: - t := uint64(0) - if x.Field13 { - t = 1 - } - _ = b.EncodeVarint(13<<3 | proto.WireVarint) - _ = b.EncodeVarint(t) - case *AllTypesOneOf_Field14: - _ = b.EncodeVarint(14<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Field14) - case *AllTypesOneOf_Field15: - _ = b.EncodeVarint(15<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Field15) - case *AllTypesOneOf_SubMessage: - _ = b.EncodeVarint(16<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.SubMessage); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("AllTypesOneOf.TestOneof has unexpected type %T", x) - } - return nil -} - -func _AllTypesOneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*AllTypesOneOf) - switch tag { - case 1: // test_oneof.Field1 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &AllTypesOneOf_Field1{math.Float64frombits(x)} - return true, err - case 2: // test_oneof.Field2 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &AllTypesOneOf_Field2{math.Float32frombits(uint32(x))} - return true, err - case 3: // test_oneof.Field3 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field3{int32(x)} - return true, err - case 4: // test_oneof.Field4 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field4{int64(x)} - return true, err - case 5: // test_oneof.Field5 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field5{uint32(x)} - return true, err - case 6: // test_oneof.Field6 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field6{x} - return true, err - case 7: // test_oneof.Field7 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag32() - m.TestOneof = &AllTypesOneOf_Field7{int32(x)} - return true, err - case 8: // test_oneof.Field8 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag64() - m.TestOneof = &AllTypesOneOf_Field8{int64(x)} - return true, err - case 9: // test_oneof.Field9 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &AllTypesOneOf_Field9{uint32(x)} - return true, err - case 10: // test_oneof.Field10 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &AllTypesOneOf_Field10{int32(x)} - return true, err - case 11: // test_oneof.Field11 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &AllTypesOneOf_Field11{x} - return true, err - case 12: // test_oneof.Field12 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &AllTypesOneOf_Field12{int64(x)} - return true, err - case 13: // test_oneof.Field13 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &AllTypesOneOf_Field13{x != 0} - return true, err - case 14: // test_oneof.Field14 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.TestOneof = &AllTypesOneOf_Field14{x} - return true, err - case 15: // test_oneof.Field15 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.TestOneof = &AllTypesOneOf_Field15{x} - return true, err - case 16: // test_oneof.sub_message - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Subby) - err := b.DecodeMessage(msg) - m.TestOneof = &AllTypesOneOf_SubMessage{msg} - return true, err - default: - return false, nil - } -} - -func _AllTypesOneOf_OneofSizer(msg proto.Message) (n int) { - m := msg.(*AllTypesOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *AllTypesOneOf_Field1: - n += proto.SizeVarint(1<<3 | proto.WireFixed64) - n += 8 - case *AllTypesOneOf_Field2: - n += proto.SizeVarint(2<<3 | proto.WireFixed32) - n += 4 - case *AllTypesOneOf_Field3: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field3)) - case *AllTypesOneOf_Field4: - n += proto.SizeVarint(4<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field4)) - case *AllTypesOneOf_Field5: - n += proto.SizeVarint(5<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field5)) - case *AllTypesOneOf_Field6: - n += proto.SizeVarint(6<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field6)) - case *AllTypesOneOf_Field7: - n += proto.SizeVarint(7<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64((uint32(x.Field7) << 1) ^ uint32((int32(x.Field7) >> 31)))) - case *AllTypesOneOf_Field8: - n += proto.SizeVarint(8<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(uint64(x.Field8<<1) ^ uint64((int64(x.Field8) >> 63)))) - case *AllTypesOneOf_Field9: - n += proto.SizeVarint(9<<3 | proto.WireFixed32) - n += 4 - case *AllTypesOneOf_Field10: - n += proto.SizeVarint(10<<3 | proto.WireFixed32) - n += 4 - case *AllTypesOneOf_Field11: - n += proto.SizeVarint(11<<3 | proto.WireFixed64) - n += 8 - case *AllTypesOneOf_Field12: - n += proto.SizeVarint(12<<3 | proto.WireFixed64) - n += 8 - case *AllTypesOneOf_Field13: - n += proto.SizeVarint(13<<3 | proto.WireVarint) - n += 1 - case *AllTypesOneOf_Field14: - n += proto.SizeVarint(14<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field14))) - n += len(x.Field14) - case *AllTypesOneOf_Field15: - n += proto.SizeVarint(15<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field15))) - n += len(x.Field15) - case *AllTypesOneOf_SubMessage: - s := proto.Size(x.SubMessage) - n += proto.SizeVarint(16<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type TwoOneofs struct { - // Types that are valid to be assigned to One: - // *TwoOneofs_Field1 - // *TwoOneofs_Field2 - // *TwoOneofs_Field3 - One isTwoOneofs_One `protobuf_oneof:"one"` - // Types that are valid to be assigned to Two: - // *TwoOneofs_Field34 - // *TwoOneofs_Field35 - // *TwoOneofs_SubMessage2 - Two isTwoOneofs_Two `protobuf_oneof:"two"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *TwoOneofs) Reset() { *m = TwoOneofs{} } -func (*TwoOneofs) ProtoMessage() {} -func (*TwoOneofs) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{2} } - -type isTwoOneofs_One interface { - isTwoOneofs_One() - Equal(interface{}) bool - VerboseEqual(interface{}) error - Size() int -} -type isTwoOneofs_Two interface { - isTwoOneofs_Two() - Equal(interface{}) bool - VerboseEqual(interface{}) error - Size() int -} - -type TwoOneofs_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"` -} -type TwoOneofs_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"` -} -type TwoOneofs_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"` -} -type TwoOneofs_Field34 struct { - Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"` -} -type TwoOneofs_Field35 struct { - Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"` -} -type TwoOneofs_SubMessage2 struct { - SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"` -} - -func (*TwoOneofs_Field1) isTwoOneofs_One() {} -func (*TwoOneofs_Field2) isTwoOneofs_One() {} -func (*TwoOneofs_Field3) isTwoOneofs_One() {} -func (*TwoOneofs_Field34) isTwoOneofs_Two() {} -func (*TwoOneofs_Field35) isTwoOneofs_Two() {} -func (*TwoOneofs_SubMessage2) isTwoOneofs_Two() {} - -func (m *TwoOneofs) GetOne() isTwoOneofs_One { - if m != nil { - return m.One - } - return nil -} -func (m *TwoOneofs) GetTwo() isTwoOneofs_Two { - if m != nil { - return m.Two - } - return nil -} - -func (m *TwoOneofs) GetField1() float64 { - if x, ok := m.GetOne().(*TwoOneofs_Field1); ok { - return x.Field1 - } - return 0 -} - -func (m *TwoOneofs) GetField2() float32 { - if x, ok := m.GetOne().(*TwoOneofs_Field2); ok { - return x.Field2 - } - return 0 -} - -func (m *TwoOneofs) GetField3() int32 { - if x, ok := m.GetOne().(*TwoOneofs_Field3); ok { - return x.Field3 - } - return 0 -} - -func (m *TwoOneofs) GetField34() string { - if x, ok := m.GetTwo().(*TwoOneofs_Field34); ok { - return x.Field34 - } - return "" -} - -func (m *TwoOneofs) GetField35() []byte { - if x, ok := m.GetTwo().(*TwoOneofs_Field35); ok { - return x.Field35 - } - return nil -} - -func (m *TwoOneofs) GetSubMessage2() *Subby { - if x, ok := m.GetTwo().(*TwoOneofs_SubMessage2); ok { - return x.SubMessage2 - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*TwoOneofs) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _TwoOneofs_OneofMarshaler, _TwoOneofs_OneofUnmarshaler, _TwoOneofs_OneofSizer, []interface{}{ - (*TwoOneofs_Field1)(nil), - (*TwoOneofs_Field2)(nil), - (*TwoOneofs_Field3)(nil), - (*TwoOneofs_Field34)(nil), - (*TwoOneofs_Field35)(nil), - (*TwoOneofs_SubMessage2)(nil), - } -} - -func _TwoOneofs_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*TwoOneofs) - // one - switch x := m.One.(type) { - case *TwoOneofs_Field1: - _ = b.EncodeVarint(1<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.Field1)) - case *TwoOneofs_Field2: - _ = b.EncodeVarint(2<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2))) - case *TwoOneofs_Field3: - _ = b.EncodeVarint(3<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field3)) - case nil: - default: - return fmt.Errorf("TwoOneofs.One has unexpected type %T", x) - } - // two - switch x := m.Two.(type) { - case *TwoOneofs_Field34: - _ = b.EncodeVarint(34<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Field34) - case *TwoOneofs_Field35: - _ = b.EncodeVarint(35<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Field35) - case *TwoOneofs_SubMessage2: - _ = b.EncodeVarint(36<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.SubMessage2); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("TwoOneofs.Two has unexpected type %T", x) - } - return nil -} - -func _TwoOneofs_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*TwoOneofs) - switch tag { - case 1: // one.Field1 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.One = &TwoOneofs_Field1{math.Float64frombits(x)} - return true, err - case 2: // one.Field2 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.One = &TwoOneofs_Field2{math.Float32frombits(uint32(x))} - return true, err - case 3: // one.Field3 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.One = &TwoOneofs_Field3{int32(x)} - return true, err - case 34: // two.Field34 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Two = &TwoOneofs_Field34{x} - return true, err - case 35: // two.Field35 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.Two = &TwoOneofs_Field35{x} - return true, err - case 36: // two.sub_message2 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Subby) - err := b.DecodeMessage(msg) - m.Two = &TwoOneofs_SubMessage2{msg} - return true, err - default: - return false, nil - } -} - -func _TwoOneofs_OneofSizer(msg proto.Message) (n int) { - m := msg.(*TwoOneofs) - // one - switch x := m.One.(type) { - case *TwoOneofs_Field1: - n += proto.SizeVarint(1<<3 | proto.WireFixed64) - n += 8 - case *TwoOneofs_Field2: - n += proto.SizeVarint(2<<3 | proto.WireFixed32) - n += 4 - case *TwoOneofs_Field3: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field3)) - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - // two - switch x := m.Two.(type) { - case *TwoOneofs_Field34: - n += proto.SizeVarint(34<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field34))) - n += len(x.Field34) - case *TwoOneofs_Field35: - n += proto.SizeVarint(35<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field35))) - n += len(x.Field35) - case *TwoOneofs_SubMessage2: - s := proto.Size(x.SubMessage2) - n += proto.SizeVarint(36<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type CustomOneof struct { - // Types that are valid to be assigned to Custom: - // *CustomOneof_Stringy - // *CustomOneof_CustomType - // *CustomOneof_CastType - // *CustomOneof_MyCustomName - Custom isCustomOneof_Custom `protobuf_oneof:"custom"` - XXX_unrecognized []byte `json:"-"` -} - -func (m *CustomOneof) Reset() { *m = CustomOneof{} } -func (*CustomOneof) ProtoMessage() {} -func (*CustomOneof) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{3} } - -type isCustomOneof_Custom interface { - isCustomOneof_Custom() - Equal(interface{}) bool - VerboseEqual(interface{}) error - Size() int -} - -type CustomOneof_Stringy struct { - Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"` -} -type CustomOneof_CustomType struct { - CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"` -} -type CustomOneof_CastType struct { - CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"` -} -type CustomOneof_MyCustomName struct { - MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"` -} - -func (*CustomOneof_Stringy) isCustomOneof_Custom() {} -func (*CustomOneof_CustomType) isCustomOneof_Custom() {} -func (*CustomOneof_CastType) isCustomOneof_Custom() {} -func (*CustomOneof_MyCustomName) isCustomOneof_Custom() {} - -func (m *CustomOneof) GetCustom() isCustomOneof_Custom { - if m != nil { - return m.Custom - } - return nil -} - -func (m *CustomOneof) GetStringy() string { - if x, ok := m.GetCustom().(*CustomOneof_Stringy); ok { - return x.Stringy - } - return "" -} - -func (m *CustomOneof) GetCastType() github_com_gogo_protobuf_test_casttype.MyUint64Type { - if x, ok := m.GetCustom().(*CustomOneof_CastType); ok { - return x.CastType - } - return 0 -} - -func (m *CustomOneof) GetMyCustomName() int64 { - if x, ok := m.GetCustom().(*CustomOneof_MyCustomName); ok { - return x.MyCustomName - } - return 0 -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*CustomOneof) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _CustomOneof_OneofMarshaler, _CustomOneof_OneofUnmarshaler, _CustomOneof_OneofSizer, []interface{}{ - (*CustomOneof_Stringy)(nil), - (*CustomOneof_CustomType)(nil), - (*CustomOneof_CastType)(nil), - (*CustomOneof_MyCustomName)(nil), - } -} - -func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*CustomOneof) - // custom - switch x := m.Custom.(type) { - case *CustomOneof_Stringy: - _ = b.EncodeVarint(34<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Stringy) - case *CustomOneof_CustomType: - _ = b.EncodeVarint(35<<3 | proto.WireBytes) - dAtA, err := x.CustomType.Marshal() - if err != nil { - return err - } - _ = b.EncodeRawBytes(dAtA) - case *CustomOneof_CastType: - _ = b.EncodeVarint(36<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.CastType)) - case *CustomOneof_MyCustomName: - _ = b.EncodeVarint(37<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.MyCustomName)) - case nil: - default: - return fmt.Errorf("CustomOneof.Custom has unexpected type %T", x) - } - return nil -} - -func _CustomOneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*CustomOneof) - switch tag { - case 34: // custom.Stringy - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.Custom = &CustomOneof_Stringy{x} - return true, err - case 35: // custom.CustomType - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - if err != nil { - return true, err - } - var cc github_com_gogo_protobuf_test_custom.Uint128 - c := &cc - err = c.Unmarshal(x) - m.Custom = &CustomOneof_CustomType{*c} - return true, err - case 36: // custom.CastType - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Custom = &CustomOneof_CastType{github_com_gogo_protobuf_test_casttype.MyUint64Type(x)} - return true, err - case 37: // custom.CustomName - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Custom = &CustomOneof_MyCustomName{int64(x)} - return true, err - default: - return false, nil - } -} - -func _CustomOneof_OneofSizer(msg proto.Message) (n int) { - m := msg.(*CustomOneof) - // custom - switch x := m.Custom.(type) { - case *CustomOneof_Stringy: - n += proto.SizeVarint(34<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Stringy))) - n += len(x.Stringy) - case *CustomOneof_CustomType: - n += proto.SizeVarint(35<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(x.CustomType.Size())) - n += x.CustomType.Size() - case *CustomOneof_CastType: - n += proto.SizeVarint(36<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.CastType)) - case *CustomOneof_MyCustomName: - n += proto.SizeVarint(37<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.MyCustomName)) - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*Subby)(nil), "one.Subby") - proto.RegisterType((*AllTypesOneOf)(nil), "one.AllTypesOneOf") - proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs") - proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof") -} -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *AllTypesOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *TwoOneofs) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *CustomOneof) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 4043 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0xbf, 0xc0, 0x8b, 0x44, 0x1e, 0x52, 0x14, 0x04, 0xc9, 0xbb, 0x58, 0x39, 0xe6, 0x6a, 0x69, - 0x3b, 0x96, 0xed, 0x58, 0xb2, 0x75, 0xd9, 0x0b, 0xf7, 0x9f, 0x78, 0x48, 0x8a, 0xab, 0xd5, 0xfe, - 0x25, 0x51, 0x01, 0xa5, 0x78, 0x9d, 0x3e, 0x60, 0x20, 0xf0, 0x23, 0x85, 0x5d, 0x10, 0x60, 0x00, - 0x70, 0xd7, 0xf2, 0xd3, 0xb6, 0xee, 0x65, 0x32, 0x9d, 0xde, 0xd2, 0xce, 0x34, 0x71, 0x1d, 0xb7, - 0xcd, 0x4c, 0xeb, 0x34, 0xe9, 0x25, 0xe9, 0x25, 0xcd, 0xf4, 0xa9, 0x2f, 0x69, 0xfd, 0xd4, 0x71, - 0xde, 0x3a, 0x9d, 0x8e, 0xc7, 0xab, 0x78, 0xa6, 0x69, 0xeb, 0xb6, 0x6e, 0xe3, 0x99, 0x66, 0xea, - 0x97, 0xce, 0x77, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0xa6, 0x4e, 0x9e, 0x24, 0x9c, 0x73, 0x7e, 0x3f, - 0x1c, 0x9c, 0xef, 0x7c, 0xe7, 0x1c, 0x7c, 0x04, 0x7c, 0x6f, 0x0d, 0xe6, 0x5b, 0xb6, 0xdd, 0x32, - 0xd1, 0x52, 0xc7, 0xb1, 0x3d, 0xfb, 0xa0, 0xdb, 0x5c, 0x6a, 0x20, 0x57, 0x77, 0x8c, 0x8e, 0x67, - 0x3b, 0x8b, 0x44, 0x26, 0x4d, 0x51, 0x8b, 0x45, 0x6e, 0x51, 0xd8, 0x86, 0xe9, 0x6b, 0x86, 0x89, - 0xd6, 0x7d, 0xc3, 0x3a, 0xf2, 0xa4, 0xcb, 0x90, 0x68, 0x1a, 0x26, 0x92, 0x85, 0xf9, 0xf8, 0x42, - 0x66, 0xf9, 0xb1, 0xc5, 0x3e, 0xd0, 0x62, 0x2f, 0x62, 0x17, 0x8b, 0x15, 0x82, 0x28, 0xbc, 0x9b, - 0x80, 0x99, 0x21, 0x5a, 0x49, 0x82, 0x84, 0xa5, 0xb5, 0x31, 0xa3, 0xb0, 0x90, 0x56, 0xc8, 0xff, - 0x92, 0x0c, 0x13, 0x1d, 0x4d, 0xbf, 0xad, 0xb5, 0x90, 0x1c, 0x23, 0x62, 0x7e, 0x29, 0xe5, 0x01, - 0x1a, 0xa8, 0x83, 0xac, 0x06, 0xb2, 0xf4, 0x23, 0x39, 0x3e, 0x1f, 0x5f, 0x48, 0x2b, 0x21, 0x89, - 0xf4, 0x34, 0x4c, 0x77, 0xba, 0x07, 0xa6, 0xa1, 0xab, 0x21, 0x33, 0x98, 0x8f, 0x2f, 0x24, 0x15, - 0x91, 0x2a, 0xd6, 0x03, 0xe3, 0x27, 0x60, 0xea, 0x2e, 0xd2, 0x6e, 0x87, 0x4d, 0x33, 0xc4, 0x34, - 0x87, 0xc5, 0x21, 0xc3, 0x0a, 0x64, 0xdb, 0xc8, 0x75, 0xb5, 0x16, 0x52, 0xbd, 0xa3, 0x0e, 0x92, - 0x13, 0xe4, 0xe9, 0xe7, 0x07, 0x9e, 0xbe, 0xff, 0xc9, 0x33, 0x0c, 0xb5, 0x77, 0xd4, 0x41, 0x52, - 0x09, 0xd2, 0xc8, 0xea, 0xb6, 0x29, 0x43, 0xf2, 0x84, 0xf8, 0x55, 0xad, 0x6e, 0xbb, 0x9f, 0x25, - 0x85, 0x61, 0x8c, 0x62, 0xc2, 0x45, 0xce, 0x1d, 0x43, 0x47, 0xf2, 0x38, 0x21, 0x78, 0x62, 0x80, - 0xa0, 0x4e, 0xf5, 0xfd, 0x1c, 0x1c, 0x27, 0x55, 0x20, 0x8d, 0x5e, 0xf2, 0x90, 0xe5, 0x1a, 0xb6, - 0x25, 0x4f, 0x10, 0x92, 0xc7, 0x87, 0xac, 0x22, 0x32, 0x1b, 0xfd, 0x14, 0x01, 0x4e, 0xba, 0x08, - 0x13, 0x76, 0xc7, 0x33, 0x6c, 0xcb, 0x95, 0x53, 0xf3, 0xc2, 0x42, 0x66, 0xf9, 0x63, 0x43, 0x13, - 0xa1, 0x46, 0x6d, 0x14, 0x6e, 0x2c, 0x6d, 0x82, 0xe8, 0xda, 0x5d, 0x47, 0x47, 0xaa, 0x6e, 0x37, - 0x90, 0x6a, 0x58, 0x4d, 0x5b, 0x4e, 0x13, 0x82, 0xf3, 0x83, 0x0f, 0x42, 0x0c, 0x2b, 0x76, 0x03, - 0x6d, 0x5a, 0x4d, 0x5b, 0xc9, 0xb9, 0x3d, 0xd7, 0xd2, 0x19, 0x18, 0x77, 0x8f, 0x2c, 0x4f, 0x7b, - 0x49, 0xce, 0x92, 0x0c, 0x61, 0x57, 0x85, 0xff, 0x4e, 0xc2, 0xd4, 0x28, 0x29, 0x76, 0x15, 0x92, - 0x4d, 0xfc, 0x94, 0x72, 0xec, 0x34, 0x31, 0xa0, 0x98, 0xde, 0x20, 0x8e, 0xff, 0x88, 0x41, 0x2c, - 0x41, 0xc6, 0x42, 0xae, 0x87, 0x1a, 0x34, 0x23, 0xe2, 0x23, 0xe6, 0x14, 0x50, 0xd0, 0x60, 0x4a, - 0x25, 0x7e, 0xa4, 0x94, 0xba, 0x09, 0x53, 0xbe, 0x4b, 0xaa, 0xa3, 0x59, 0x2d, 0x9e, 0x9b, 0x4b, - 0x51, 0x9e, 0x2c, 0x56, 0x39, 0x4e, 0xc1, 0x30, 0x25, 0x87, 0x7a, 0xae, 0xa5, 0x75, 0x00, 0xdb, - 0x42, 0x76, 0x53, 0x6d, 0x20, 0xdd, 0x94, 0x53, 0x27, 0x44, 0xa9, 0x86, 0x4d, 0x06, 0xa2, 0x64, - 0x53, 0xa9, 0x6e, 0x4a, 0x57, 0x82, 0x54, 0x9b, 0x38, 0x21, 0x53, 0xb6, 0xe9, 0x26, 0x1b, 0xc8, - 0xb6, 0x7d, 0xc8, 0x39, 0x08, 0xe7, 0x3d, 0x6a, 0xb0, 0x27, 0x4b, 0x13, 0x27, 0x16, 0x23, 0x9f, - 0x4c, 0x61, 0x30, 0xfa, 0x60, 0x93, 0x4e, 0xf8, 0x52, 0x7a, 0x14, 0x7c, 0x81, 0x4a, 0xd2, 0x0a, - 0x48, 0x15, 0xca, 0x72, 0xe1, 0x8e, 0xd6, 0x46, 0x73, 0x97, 0x21, 0xd7, 0x1b, 0x1e, 0x69, 0x16, - 0x92, 0xae, 0xa7, 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x90, - 0x2a, 0x97, 0x54, 0xf0, 0xbf, 0x73, 0x97, 0x60, 0xb2, 0xe7, 0xf6, 0xa3, 0x02, 0x0b, 0x5f, 0x1c, - 0x87, 0xd9, 0x61, 0x39, 0x37, 0x34, 0xfd, 0xcf, 0xc0, 0xb8, 0xd5, 0x6d, 0x1f, 0x20, 0x47, 0x8e, - 0x13, 0x06, 0x76, 0x25, 0x95, 0x20, 0x69, 0x6a, 0x07, 0xc8, 0x94, 0x13, 0xf3, 0xc2, 0x42, 0x6e, - 0xf9, 0xe9, 0x91, 0xb2, 0x7a, 0x71, 0x0b, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x05, 0x09, 0x56, 0xe2, - 0x30, 0xc3, 0x53, 0xa3, 0x31, 0xe0, 0x5c, 0x54, 0x08, 0x4e, 0x7a, 0x18, 0xd2, 0xf8, 0x2f, 0x8d, - 0xed, 0x38, 0xf1, 0x39, 0x85, 0x05, 0x38, 0xae, 0xd2, 0x1c, 0xa4, 0x48, 0x9a, 0x35, 0x10, 0x6f, - 0x0d, 0xfe, 0x35, 0x5e, 0x98, 0x06, 0x6a, 0x6a, 0x5d, 0xd3, 0x53, 0xef, 0x68, 0x66, 0x17, 0x91, - 0x84, 0x49, 0x2b, 0x59, 0x26, 0xfc, 0x0c, 0x96, 0x49, 0xe7, 0x21, 0x43, 0xb3, 0xd2, 0xb0, 0x1a, - 0xe8, 0x25, 0x52, 0x7d, 0x92, 0x0a, 0x4d, 0xd4, 0x4d, 0x2c, 0xc1, 0xb7, 0xbf, 0xe5, 0xda, 0x16, - 0x5f, 0x5a, 0x72, 0x0b, 0x2c, 0x20, 0xb7, 0xbf, 0xd4, 0x5f, 0xf8, 0x1e, 0x19, 0xfe, 0x78, 0xfd, - 0xb9, 0x58, 0xf8, 0x56, 0x0c, 0x12, 0x64, 0xbf, 0x4d, 0x41, 0x66, 0xef, 0xc5, 0xdd, 0xaa, 0xba, - 0x5e, 0xdb, 0x2f, 0x6f, 0x55, 0x45, 0x41, 0xca, 0x01, 0x10, 0xc1, 0xb5, 0xad, 0x5a, 0x69, 0x4f, - 0x8c, 0xf9, 0xd7, 0x9b, 0x3b, 0x7b, 0x17, 0x57, 0xc5, 0xb8, 0x0f, 0xd8, 0xa7, 0x82, 0x44, 0xd8, - 0x60, 0x65, 0x59, 0x4c, 0x4a, 0x22, 0x64, 0x29, 0xc1, 0xe6, 0xcd, 0xea, 0xfa, 0xc5, 0x55, 0x71, - 0xbc, 0x57, 0xb2, 0xb2, 0x2c, 0x4e, 0x48, 0x93, 0x90, 0x26, 0x92, 0x72, 0xad, 0xb6, 0x25, 0xa6, - 0x7c, 0xce, 0xfa, 0x9e, 0xb2, 0xb9, 0xb3, 0x21, 0xa6, 0x7d, 0xce, 0x0d, 0xa5, 0xb6, 0xbf, 0x2b, - 0x82, 0xcf, 0xb0, 0x5d, 0xad, 0xd7, 0x4b, 0x1b, 0x55, 0x31, 0xe3, 0x5b, 0x94, 0x5f, 0xdc, 0xab, - 0xd6, 0xc5, 0x6c, 0x8f, 0x5b, 0x2b, 0xcb, 0xe2, 0xa4, 0x7f, 0x8b, 0xea, 0xce, 0xfe, 0xb6, 0x98, - 0x93, 0xa6, 0x61, 0x92, 0xde, 0x82, 0x3b, 0x31, 0xd5, 0x27, 0xba, 0xb8, 0x2a, 0x8a, 0x81, 0x23, - 0x94, 0x65, 0xba, 0x47, 0x70, 0x71, 0x55, 0x94, 0x0a, 0x15, 0x48, 0x92, 0xec, 0x92, 0x24, 0xc8, - 0x6d, 0x95, 0xca, 0xd5, 0x2d, 0xb5, 0xb6, 0xbb, 0xb7, 0x59, 0xdb, 0x29, 0x6d, 0x89, 0x42, 0x20, - 0x53, 0xaa, 0x9f, 0xde, 0xdf, 0x54, 0xaa, 0xeb, 0x62, 0x2c, 0x2c, 0xdb, 0xad, 0x96, 0xf6, 0xaa, - 0xeb, 0x62, 0xbc, 0xa0, 0xc3, 0xec, 0xb0, 0x3a, 0x33, 0x74, 0x67, 0x84, 0x96, 0x38, 0x76, 0xc2, - 0x12, 0x13, 0xae, 0x81, 0x25, 0xfe, 0x8a, 0x00, 0x33, 0x43, 0x6a, 0xed, 0xd0, 0x9b, 0x3c, 0x0f, - 0x49, 0x9a, 0xa2, 0xb4, 0xfb, 0x3c, 0x39, 0xb4, 0x68, 0x93, 0x84, 0x1d, 0xe8, 0x40, 0x04, 0x17, - 0xee, 0xc0, 0xf1, 0x13, 0x3a, 0x30, 0xa6, 0x18, 0x70, 0xf2, 0x15, 0x01, 0xe4, 0x93, 0xb8, 0x23, - 0x0a, 0x45, 0xac, 0xa7, 0x50, 0x5c, 0xed, 0x77, 0xe0, 0xc2, 0xc9, 0xcf, 0x30, 0xe0, 0xc5, 0x1b, - 0x02, 0x9c, 0x19, 0x3e, 0xa8, 0x0c, 0xf5, 0xe1, 0x53, 0x30, 0xde, 0x46, 0xde, 0xa1, 0xcd, 0x9b, - 0xf5, 0xc7, 0x87, 0xb4, 0x00, 0xac, 0xee, 0x8f, 0x15, 0x43, 0x85, 0x7b, 0x48, 0xfc, 0xa4, 0x69, - 0x83, 0x7a, 0x33, 0xe0, 0xe9, 0xe7, 0x63, 0xf0, 0xd0, 0x50, 0xf2, 0xa1, 0x8e, 0x3e, 0x02, 0x60, - 0x58, 0x9d, 0xae, 0x47, 0x1b, 0x32, 0xad, 0x4f, 0x69, 0x22, 0x21, 0x7b, 0x1f, 0xd7, 0x9e, 0xae, - 0xe7, 0xeb, 0xe3, 0x44, 0x0f, 0x54, 0x44, 0x0c, 0x2e, 0x07, 0x8e, 0x26, 0x88, 0xa3, 0xf9, 0x13, - 0x9e, 0x74, 0xa0, 0xd7, 0x3d, 0x0b, 0xa2, 0x6e, 0x1a, 0xc8, 0xf2, 0x54, 0xd7, 0x73, 0x90, 0xd6, - 0x36, 0xac, 0x16, 0x29, 0xc0, 0xa9, 0x62, 0xb2, 0xa9, 0x99, 0x2e, 0x52, 0xa6, 0xa8, 0xba, 0xce, - 0xb5, 0x18, 0x41, 0xba, 0x8c, 0x13, 0x42, 0x8c, 0xf7, 0x20, 0xa8, 0xda, 0x47, 0x14, 0xbe, 0x3e, - 0x01, 0x99, 0xd0, 0x58, 0x27, 0x5d, 0x80, 0xec, 0x2d, 0xed, 0x8e, 0xa6, 0xf2, 0x51, 0x9d, 0x46, - 0x22, 0x83, 0x65, 0xbb, 0x6c, 0x5c, 0x7f, 0x16, 0x66, 0x89, 0x89, 0xdd, 0xf5, 0x90, 0xa3, 0xea, - 0xa6, 0xe6, 0xba, 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0x2a, 0x5c, 0x23, 0xad, - 0xc1, 0x0c, 0x41, 0xb4, 0xbb, 0xa6, 0x67, 0x74, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, - 0xdf, 0xb3, 0x69, 0x6c, 0xb1, 0xcd, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x0e, 0x8f, 0x10, 0x58, 0x0b, - 0x59, 0xc8, 0xd1, 0x3c, 0xa4, 0xa2, 0xcf, 0x75, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa1, 0x1e, 0x6a, - 0xee, 0xa1, 0x3c, 0x8b, 0x09, 0xca, 0x31, 0x59, 0x50, 0xce, 0x61, 0xc3, 0x0d, 0x66, 0x57, 0x25, - 0x66, 0x25, 0xab, 0x71, 0x5d, 0x73, 0x0f, 0xa5, 0x22, 0x9c, 0x21, 0x2c, 0xae, 0xe7, 0x18, 0x56, - 0x4b, 0xd5, 0x0f, 0x91, 0x7e, 0x5b, 0xed, 0x7a, 0xcd, 0xcb, 0xf2, 0xc3, 0xe1, 0xfb, 0x13, 0x0f, - 0xeb, 0xc4, 0xa6, 0x82, 0x4d, 0xf6, 0xbd, 0xe6, 0x65, 0xa9, 0x0e, 0x59, 0xbc, 0x18, 0x6d, 0xe3, - 0x65, 0xa4, 0x36, 0x6d, 0x87, 0x74, 0x96, 0xdc, 0x90, 0x9d, 0x1d, 0x8a, 0xe0, 0x62, 0x8d, 0x01, - 0xb6, 0xed, 0x06, 0x2a, 0x26, 0xeb, 0xbb, 0xd5, 0xea, 0xba, 0x92, 0xe1, 0x2c, 0xd7, 0x6c, 0x07, - 0x27, 0x54, 0xcb, 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb2, 0x79, 0x78, 0xd7, 0x60, 0x46, 0xd7, - 0xe9, 0x33, 0x1b, 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x7b, 0x82, 0xa5, 0xeb, 0x1b, 0xd4, 0x80, - 0xe5, 0xb8, 0x2b, 0x5d, 0x81, 0x87, 0x82, 0x60, 0x85, 0x81, 0xd3, 0x03, 0x4f, 0xd9, 0x0f, 0x5d, - 0x83, 0x99, 0xce, 0xd1, 0x20, 0x50, 0xea, 0xb9, 0x63, 0xe7, 0xa8, 0x1f, 0xf6, 0x38, 0x79, 0x6d, - 0x73, 0x90, 0xae, 0x79, 0xa8, 0x21, 0x9f, 0x0d, 0x5b, 0x87, 0x14, 0xd2, 0x12, 0x88, 0xba, 0xae, - 0x22, 0x4b, 0x3b, 0x30, 0x91, 0xaa, 0x39, 0xc8, 0xd2, 0x5c, 0xf9, 0x7c, 0xd8, 0x38, 0xa7, 0xeb, - 0x55, 0xa2, 0x2d, 0x11, 0xa5, 0xf4, 0x14, 0x4c, 0xdb, 0x07, 0xb7, 0x74, 0x9a, 0x59, 0x6a, 0xc7, - 0x41, 0x4d, 0xe3, 0x25, 0xf9, 0x31, 0x12, 0xa6, 0x29, 0xac, 0x20, 0x79, 0xb5, 0x4b, 0xc4, 0xd2, - 0x93, 0x20, 0xea, 0xee, 0xa1, 0xe6, 0x74, 0x48, 0x6b, 0x77, 0x3b, 0x9a, 0x8e, 0xe4, 0xc7, 0xa9, - 0x29, 0x95, 0xef, 0x70, 0x31, 0xce, 0x6c, 0xf7, 0xae, 0xd1, 0xf4, 0x38, 0xe3, 0x13, 0x34, 0xb3, - 0x89, 0x8c, 0xb1, 0xdd, 0x84, 0xd9, 0xae, 0x65, 0x58, 0x1e, 0x72, 0x3a, 0x0e, 0xc2, 0x43, 0x3c, - 0xdd, 0x89, 0xf2, 0x3f, 0x4d, 0x9c, 0x30, 0x86, 0xef, 0x87, 0xad, 0x69, 0x02, 0x28, 0x33, 0xdd, - 0x41, 0x61, 0xa1, 0x08, 0xd9, 0x70, 0x5e, 0x48, 0x69, 0xa0, 0x99, 0x21, 0x0a, 0xb8, 0xc7, 0x56, - 0x6a, 0xeb, 0xb8, 0x3b, 0x7e, 0xb6, 0x2a, 0xc6, 0x70, 0x97, 0xde, 0xda, 0xdc, 0xab, 0xaa, 0xca, - 0xfe, 0xce, 0xde, 0xe6, 0x76, 0x55, 0x8c, 0x3f, 0x95, 0x4e, 0x7d, 0x7f, 0x42, 0xbc, 0x77, 0xef, - 0xde, 0xbd, 0x58, 0xe1, 0x3b, 0x31, 0xc8, 0xf5, 0x4e, 0xc6, 0xd2, 0xff, 0x83, 0xb3, 0xfc, 0x35, - 0xd6, 0x45, 0x9e, 0x7a, 0xd7, 0x70, 0x48, 0xaa, 0xb6, 0x35, 0x3a, 0x5b, 0xfa, 0x51, 0x9e, 0x65, - 0x56, 0x75, 0xe4, 0xbd, 0x60, 0x38, 0x38, 0x11, 0xdb, 0x9a, 0x27, 0x6d, 0xc1, 0x79, 0xcb, 0x56, - 0x5d, 0x4f, 0xb3, 0x1a, 0x9a, 0xd3, 0x50, 0x83, 0x03, 0x04, 0x55, 0xd3, 0x75, 0xe4, 0xba, 0x36, - 0x6d, 0x11, 0x3e, 0xcb, 0xc7, 0x2c, 0xbb, 0xce, 0x8c, 0x83, 0xda, 0x59, 0x62, 0xa6, 0x7d, 0x19, - 0x11, 0x3f, 0x29, 0x23, 0x1e, 0x86, 0x74, 0x5b, 0xeb, 0xa8, 0xc8, 0xf2, 0x9c, 0x23, 0x32, 0xcf, - 0xa5, 0x94, 0x54, 0x5b, 0xeb, 0x54, 0xf1, 0xf5, 0x47, 0xb7, 0x06, 0xe1, 0x38, 0xfe, 0x63, 0x1c, - 0xb2, 0xe1, 0x99, 0x0e, 0x8f, 0xc8, 0x3a, 0xa9, 0xdf, 0x02, 0xd9, 0xe1, 0x8f, 0x3e, 0x70, 0x02, - 0x5c, 0xac, 0xe0, 0xc2, 0x5e, 0x1c, 0xa7, 0x93, 0x96, 0x42, 0x91, 0xb8, 0xa9, 0xe2, 0x3d, 0x8d, - 0xe8, 0xfc, 0x9e, 0x52, 0xd8, 0x95, 0xb4, 0x01, 0xe3, 0xb7, 0x5c, 0xc2, 0x3d, 0x4e, 0xb8, 0x1f, - 0x7b, 0x30, 0xf7, 0x8d, 0x3a, 0x21, 0x4f, 0xdf, 0xa8, 0xab, 0x3b, 0x35, 0x65, 0xbb, 0xb4, 0xa5, - 0x30, 0xb8, 0x74, 0x0e, 0x12, 0xa6, 0xf6, 0xf2, 0x51, 0x6f, 0x0b, 0x20, 0xa2, 0x51, 0x03, 0x7f, - 0x0e, 0x12, 0x77, 0x91, 0x76, 0xbb, 0xb7, 0xf0, 0x12, 0xd1, 0x47, 0x98, 0xfa, 0x4b, 0x90, 0x24, - 0xf1, 0x92, 0x00, 0x58, 0xc4, 0xc4, 0x31, 0x29, 0x05, 0x89, 0x4a, 0x4d, 0xc1, 0xe9, 0x2f, 0x42, - 0x96, 0x4a, 0xd5, 0xdd, 0xcd, 0x6a, 0xa5, 0x2a, 0xc6, 0x0a, 0x6b, 0x30, 0x4e, 0x83, 0x80, 0xb7, - 0x86, 0x1f, 0x06, 0x71, 0x8c, 0x5d, 0x32, 0x0e, 0x81, 0x6b, 0xf7, 0xb7, 0xcb, 0x55, 0x45, 0x8c, - 0x85, 0x97, 0xd7, 0x85, 0x6c, 0x78, 0x9c, 0xfb, 0xf1, 0xe4, 0xd4, 0x5f, 0x09, 0x90, 0x09, 0x8d, - 0x67, 0x78, 0x30, 0xd0, 0x4c, 0xd3, 0xbe, 0xab, 0x6a, 0xa6, 0xa1, 0xb9, 0x2c, 0x29, 0x80, 0x88, - 0x4a, 0x58, 0x32, 0xea, 0xa2, 0xfd, 0x58, 0x9c, 0x7f, 0x5d, 0x00, 0xb1, 0x7f, 0xb4, 0xeb, 0x73, - 0x50, 0xf8, 0x89, 0x3a, 0xf8, 0x9a, 0x00, 0xb9, 0xde, 0x79, 0xae, 0xcf, 0xbd, 0x0b, 0x3f, 0x51, - 0xf7, 0xde, 0x89, 0xc1, 0x64, 0xcf, 0x14, 0x37, 0xaa, 0x77, 0x9f, 0x83, 0x69, 0xa3, 0x81, 0xda, - 0x1d, 0xdb, 0x43, 0x96, 0x7e, 0xa4, 0x9a, 0xe8, 0x0e, 0x32, 0xe5, 0x02, 0x29, 0x14, 0x4b, 0x0f, - 0x9e, 0x13, 0x17, 0x37, 0x03, 0xdc, 0x16, 0x86, 0x15, 0x67, 0x36, 0xd7, 0xab, 0xdb, 0xbb, 0xb5, - 0xbd, 0xea, 0x4e, 0xe5, 0x45, 0x75, 0x7f, 0xe7, 0xff, 0xef, 0xd4, 0x5e, 0xd8, 0x51, 0x44, 0xa3, - 0xcf, 0xec, 0x23, 0xdc, 0xea, 0xbb, 0x20, 0xf6, 0x3b, 0x25, 0x9d, 0x85, 0x61, 0x6e, 0x89, 0x63, - 0xd2, 0x0c, 0x4c, 0xed, 0xd4, 0xd4, 0xfa, 0xe6, 0x7a, 0x55, 0xad, 0x5e, 0xbb, 0x56, 0xad, 0xec, - 0xd5, 0xe9, 0x8b, 0xb3, 0x6f, 0xbd, 0xd7, 0xbb, 0xa9, 0x5f, 0x8d, 0xc3, 0xcc, 0x10, 0x4f, 0xa4, - 0x12, 0x9b, 0xd9, 0xe9, 0x6b, 0xc4, 0x33, 0xa3, 0x78, 0xbf, 0x88, 0xa7, 0x82, 0x5d, 0xcd, 0xf1, - 0xd8, 0x88, 0xff, 0x24, 0xe0, 0x28, 0x59, 0x9e, 0xd1, 0x34, 0x90, 0xc3, 0xce, 0x19, 0xe8, 0x20, - 0x3f, 0x15, 0xc8, 0xe9, 0x51, 0xc3, 0x27, 0x40, 0xea, 0xd8, 0xae, 0xe1, 0x19, 0x77, 0x90, 0x6a, - 0x58, 0xfc, 0x50, 0x02, 0x0f, 0xf6, 0x09, 0x45, 0xe4, 0x9a, 0x4d, 0xcb, 0xf3, 0xad, 0x2d, 0xd4, - 0xd2, 0xfa, 0xac, 0x71, 0x01, 0x8f, 0x2b, 0x22, 0xd7, 0xf8, 0xd6, 0x17, 0x20, 0xdb, 0xb0, 0xbb, - 0x78, 0x4c, 0xa2, 0x76, 0xb8, 0x5f, 0x08, 0x4a, 0x86, 0xca, 0x7c, 0x13, 0x36, 0xc7, 0x06, 0xa7, - 0x21, 0x59, 0x25, 0x43, 0x65, 0xd4, 0xe4, 0x09, 0x98, 0xd2, 0x5a, 0x2d, 0x07, 0x93, 0x73, 0x22, - 0x3a, 0x99, 0xe7, 0x7c, 0x31, 0x31, 0x9c, 0xbb, 0x01, 0x29, 0x1e, 0x07, 0xdc, 0x92, 0x71, 0x24, - 0xd4, 0x0e, 0x3d, 0x93, 0x8a, 0x2d, 0xa4, 0x95, 0x94, 0xc5, 0x95, 0x17, 0x20, 0x6b, 0xb8, 0x6a, - 0x70, 0x38, 0x1a, 0x9b, 0x8f, 0x2d, 0xa4, 0x94, 0x8c, 0xe1, 0xfa, 0xa7, 0x61, 0x85, 0x37, 0x62, - 0x90, 0xeb, 0x3d, 0xdc, 0x95, 0xd6, 0x21, 0x65, 0xda, 0xba, 0x46, 0x52, 0x8b, 0xfe, 0xb2, 0xb0, - 0x10, 0x71, 0x1e, 0xbc, 0xb8, 0xc5, 0xec, 0x15, 0x1f, 0x39, 0xf7, 0x77, 0x02, 0xa4, 0xb8, 0x58, - 0x3a, 0x03, 0x89, 0x8e, 0xe6, 0x1d, 0x12, 0xba, 0x64, 0x39, 0x26, 0x0a, 0x0a, 0xb9, 0xc6, 0x72, - 0xb7, 0xa3, 0x59, 0x24, 0x05, 0x98, 0x1c, 0x5f, 0xe3, 0x75, 0x35, 0x91, 0xd6, 0x20, 0x63, 0xbf, - 0xdd, 0x6e, 0x23, 0xcb, 0x73, 0xf9, 0xba, 0x32, 0x79, 0x85, 0x89, 0xa5, 0xa7, 0x61, 0xda, 0x73, - 0x34, 0xc3, 0xec, 0xb1, 0x4d, 0x10, 0x5b, 0x91, 0x2b, 0x7c, 0xe3, 0x22, 0x9c, 0xe3, 0xbc, 0x0d, - 0xe4, 0x69, 0xfa, 0x21, 0x6a, 0x04, 0xa0, 0x71, 0x72, 0x72, 0x78, 0x96, 0x19, 0xac, 0x33, 0x3d, - 0xc7, 0x16, 0xbe, 0x2b, 0xc0, 0x34, 0x7f, 0x51, 0x69, 0xf8, 0xc1, 0xda, 0x06, 0xd0, 0x2c, 0xcb, - 0xf6, 0xc2, 0xe1, 0x1a, 0x4c, 0xe5, 0x01, 0xdc, 0x62, 0xc9, 0x07, 0x29, 0x21, 0x82, 0xb9, 0x36, - 0x40, 0xa0, 0x39, 0x31, 0x6c, 0xe7, 0x21, 0xc3, 0x4e, 0xee, 0xc9, 0xcf, 0x3f, 0xf4, 0xd5, 0x16, - 0xa8, 0x08, 0xbf, 0xd1, 0x48, 0xb3, 0x90, 0x3c, 0x40, 0x2d, 0xc3, 0x62, 0xe7, 0x89, 0xf4, 0x82, - 0x9f, 0x52, 0x26, 0xfc, 0x53, 0xca, 0xf2, 0x4d, 0x98, 0xd1, 0xed, 0x76, 0xbf, 0xbb, 0x65, 0xb1, - 0xef, 0xf5, 0xda, 0xbd, 0x2e, 0x7c, 0x16, 0x82, 0x11, 0xf3, 0x2b, 0xb1, 0xf8, 0xc6, 0x6e, 0xf9, - 0x6b, 0xb1, 0xb9, 0x0d, 0x8a, 0xdb, 0xe5, 0x8f, 0xa9, 0xa0, 0xa6, 0x89, 0x74, 0xec, 0x3a, 0xfc, - 0xe0, 0xe3, 0xf0, 0x4c, 0xcb, 0xf0, 0x0e, 0xbb, 0x07, 0x8b, 0xba, 0xdd, 0x5e, 0x6a, 0xd9, 0x2d, - 0x3b, 0xf8, 0xb9, 0x0b, 0x5f, 0x91, 0x0b, 0xf2, 0x1f, 0xfb, 0xc9, 0x2b, 0xed, 0x4b, 0xe7, 0x22, - 0x7f, 0x1f, 0x2b, 0xee, 0xc0, 0x0c, 0x33, 0x56, 0xc9, 0x99, 0x3b, 0x7d, 0x35, 0x90, 0x1e, 0x78, - 0xee, 0x22, 0x7f, 0xf3, 0x5d, 0xd2, 0xab, 0x95, 0x69, 0x06, 0xc5, 0x3a, 0xfa, 0x02, 0x51, 0x54, - 0xe0, 0xa1, 0x1e, 0x3e, 0xba, 0x2f, 0x91, 0x13, 0xc1, 0xf8, 0x1d, 0xc6, 0x38, 0x13, 0x62, 0xac, - 0x33, 0x68, 0xb1, 0x02, 0x93, 0xa7, 0xe1, 0xfa, 0x1b, 0xc6, 0x95, 0x45, 0x61, 0x92, 0x0d, 0x98, - 0x22, 0x24, 0x7a, 0xd7, 0xf5, 0xec, 0x36, 0x29, 0x7a, 0x0f, 0xa6, 0xf9, 0xdb, 0x77, 0xe9, 0x46, - 0xc9, 0x61, 0x58, 0xc5, 0x47, 0x15, 0x8b, 0x40, 0x7e, 0x66, 0x68, 0x20, 0xdd, 0x8c, 0x60, 0x78, - 0x93, 0x39, 0xe2, 0xdb, 0x17, 0x3f, 0x03, 0xb3, 0xf8, 0x7f, 0x52, 0x93, 0xc2, 0x9e, 0x44, 0x9f, - 0x32, 0xc9, 0xdf, 0x7d, 0x85, 0xee, 0xc5, 0x19, 0x9f, 0x20, 0xe4, 0x53, 0x68, 0x15, 0x5b, 0xc8, - 0xf3, 0x90, 0xe3, 0xaa, 0x9a, 0x39, 0xcc, 0xbd, 0xd0, 0x6b, 0xba, 0xfc, 0xa5, 0xf7, 0x7a, 0x57, - 0x71, 0x83, 0x22, 0x4b, 0xa6, 0x59, 0xdc, 0x87, 0xb3, 0x43, 0xb2, 0x62, 0x04, 0xce, 0x57, 0x19, - 0xe7, 0xec, 0x40, 0x66, 0x60, 0xda, 0x5d, 0xe0, 0x72, 0x7f, 0x2d, 0x47, 0xe0, 0xfc, 0x2d, 0xc6, - 0x29, 0x31, 0x2c, 0x5f, 0x52, 0xcc, 0x78, 0x03, 0xa6, 0xef, 0x20, 0xe7, 0xc0, 0x76, 0xd9, 0xd1, - 0xc8, 0x08, 0x74, 0xaf, 0x31, 0xba, 0x29, 0x06, 0x24, 0x67, 0x25, 0x98, 0xeb, 0x0a, 0xa4, 0x9a, - 0x9a, 0x8e, 0x46, 0xa0, 0xf8, 0x32, 0xa3, 0x98, 0xc0, 0xf6, 0x18, 0x5a, 0x82, 0x6c, 0xcb, 0x66, - 0x6d, 0x29, 0x1a, 0xfe, 0x3a, 0x83, 0x67, 0x38, 0x86, 0x51, 0x74, 0xec, 0x4e, 0xd7, 0xc4, 0x3d, - 0x2b, 0x9a, 0xe2, 0xb7, 0x39, 0x05, 0xc7, 0x30, 0x8a, 0x53, 0x84, 0xf5, 0x77, 0x38, 0x85, 0x1b, - 0x8a, 0xe7, 0xf3, 0x90, 0xb1, 0x2d, 0xf3, 0xc8, 0xb6, 0x46, 0x71, 0xe2, 0x77, 0x19, 0x03, 0x30, - 0x08, 0x26, 0xb8, 0x0a, 0xe9, 0x51, 0x17, 0xe2, 0xf7, 0xde, 0xe3, 0xdb, 0x83, 0xaf, 0xc0, 0x06, - 0x4c, 0xf1, 0x02, 0x65, 0xd8, 0xd6, 0x08, 0x14, 0xbf, 0xcf, 0x28, 0x72, 0x21, 0x18, 0x7b, 0x0c, - 0x0f, 0xb9, 0x5e, 0x0b, 0x8d, 0x42, 0xf2, 0x06, 0x7f, 0x0c, 0x06, 0x61, 0xa1, 0x3c, 0x40, 0x96, - 0x7e, 0x38, 0x1a, 0xc3, 0x57, 0x79, 0x28, 0x39, 0x06, 0x53, 0x54, 0x60, 0xb2, 0xad, 0x39, 0xee, - 0xa1, 0x66, 0x8e, 0xb4, 0x1c, 0x7f, 0xc0, 0x38, 0xb2, 0x3e, 0x88, 0x45, 0xa4, 0x6b, 0x9d, 0x86, - 0xe6, 0x6b, 0x3c, 0x22, 0x21, 0x18, 0xdb, 0x7a, 0xae, 0x47, 0x0e, 0xa0, 0x4e, 0xc3, 0xf6, 0x75, - 0xbe, 0xf5, 0x28, 0x76, 0x3b, 0xcc, 0x78, 0x15, 0xd2, 0xae, 0xf1, 0xf2, 0x48, 0x34, 0x7f, 0xc8, - 0x57, 0x9a, 0x00, 0x30, 0xf8, 0x45, 0x38, 0x37, 0xb4, 0x4d, 0x8c, 0x40, 0xf6, 0x47, 0x8c, 0xec, - 0xcc, 0x90, 0x56, 0xc1, 0x4a, 0xc2, 0x69, 0x29, 0xff, 0x98, 0x97, 0x04, 0xd4, 0xc7, 0xb5, 0x8b, - 0x5f, 0x14, 0x5c, 0xad, 0x79, 0xba, 0xa8, 0xfd, 0x09, 0x8f, 0x1a, 0xc5, 0xf6, 0x44, 0x6d, 0x0f, - 0xce, 0x30, 0xc6, 0xd3, 0xad, 0xeb, 0x37, 0x78, 0x61, 0xa5, 0xe8, 0xfd, 0xde, 0xd5, 0xfd, 0x29, - 0x98, 0xf3, 0xc3, 0xc9, 0x27, 0x52, 0x57, 0x6d, 0x6b, 0x9d, 0x11, 0x98, 0xbf, 0xc9, 0x98, 0x79, - 0xc5, 0xf7, 0x47, 0x5a, 0x77, 0x5b, 0xeb, 0x60, 0xf2, 0x9b, 0x20, 0x73, 0xf2, 0xae, 0xe5, 0x20, - 0xdd, 0x6e, 0x59, 0xc6, 0xcb, 0xa8, 0x31, 0x02, 0xf5, 0x9f, 0xf6, 0x2d, 0xd5, 0x7e, 0x08, 0x8e, - 0x99, 0x37, 0x41, 0xf4, 0x67, 0x15, 0xd5, 0x68, 0x77, 0x6c, 0xc7, 0x8b, 0x60, 0xfc, 0x33, 0xbe, - 0x52, 0x3e, 0x6e, 0x93, 0xc0, 0x8a, 0x55, 0xc8, 0x91, 0xcb, 0x51, 0x53, 0xf2, 0xcf, 0x19, 0xd1, - 0x64, 0x80, 0x62, 0x85, 0x43, 0xb7, 0xdb, 0x1d, 0xcd, 0x19, 0xa5, 0xfe, 0xfd, 0x05, 0x2f, 0x1c, - 0x0c, 0xc2, 0x0a, 0x87, 0x77, 0xd4, 0x41, 0xb8, 0xdb, 0x8f, 0xc0, 0xf0, 0x2d, 0x5e, 0x38, 0x38, - 0x86, 0x51, 0xf0, 0x81, 0x61, 0x04, 0x8a, 0xbf, 0xe4, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x1d, 0x34, - 0x5a, 0x07, 0xb5, 0x0c, 0xd7, 0x73, 0xe8, 0x1c, 0xfc, 0x60, 0xaa, 0x6f, 0xbf, 0xd7, 0x3b, 0x84, - 0x29, 0x21, 0x68, 0xf1, 0x06, 0x4c, 0xf5, 0x8d, 0x18, 0x52, 0xd4, 0x37, 0x0b, 0xf2, 0x4f, 0x7f, - 0xc0, 0x8a, 0x51, 0xef, 0x84, 0x51, 0xdc, 0xc2, 0xeb, 0xde, 0x3b, 0x07, 0x44, 0x93, 0xbd, 0xf2, - 0x81, 0xbf, 0xf4, 0x3d, 0x63, 0x40, 0xf1, 0x1a, 0x4c, 0xf6, 0xcc, 0x00, 0xd1, 0x54, 0x3f, 0xcb, - 0xa8, 0xb2, 0xe1, 0x11, 0xa0, 0xb8, 0x06, 0x09, 0xdc, 0xcf, 0xa3, 0xe1, 0x3f, 0xc7, 0xe0, 0xc4, - 0xbc, 0xf8, 0x49, 0x48, 0xf1, 0x3e, 0x1e, 0x0d, 0xfd, 0x79, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x7b, - 0x78, 0x34, 0xfc, 0x17, 0x38, 0x9c, 0x43, 0x30, 0x7c, 0xf4, 0x10, 0xfe, 0xf5, 0x2f, 0x26, 0x58, - 0x1d, 0xe6, 0xb1, 0xbb, 0x0a, 0x13, 0xac, 0x79, 0x47, 0xa3, 0x3f, 0xcf, 0x6e, 0xce, 0x11, 0xc5, - 0x4b, 0x90, 0x1c, 0x31, 0xe0, 0xbf, 0xc4, 0xa0, 0xd4, 0xbe, 0x58, 0x81, 0x4c, 0xa8, 0x61, 0x47, - 0xc3, 0x7f, 0x99, 0xc1, 0xc3, 0x28, 0xec, 0x3a, 0x6b, 0xd8, 0xd1, 0x04, 0xbf, 0xc2, 0x5d, 0x67, - 0x08, 0x1c, 0x36, 0xde, 0xab, 0xa3, 0xd1, 0xbf, 0xca, 0xa3, 0xce, 0x21, 0xc5, 0xe7, 0x21, 0xed, - 0xd7, 0xdf, 0x68, 0xfc, 0xaf, 0x31, 0x7c, 0x80, 0xc1, 0x11, 0x08, 0xd5, 0xff, 0x68, 0x8a, 0x2f, - 0xf0, 0x08, 0x84, 0x50, 0x78, 0x1b, 0xf5, 0xf7, 0xf4, 0x68, 0xa6, 0x5f, 0xe7, 0xdb, 0xa8, 0xaf, - 0xa5, 0xe3, 0xd5, 0x24, 0x65, 0x30, 0x9a, 0xe2, 0x37, 0xf8, 0x6a, 0x12, 0x7b, 0xec, 0x46, 0x7f, - 0x93, 0x8c, 0xe6, 0xf8, 0x4d, 0xee, 0x46, 0x5f, 0x8f, 0x2c, 0xee, 0x82, 0x34, 0xd8, 0x20, 0xa3, - 0xf9, 0xbe, 0xc8, 0xf8, 0xa6, 0x07, 0xfa, 0x63, 0xf1, 0x05, 0x38, 0x33, 0xbc, 0x39, 0x46, 0xb3, - 0x7e, 0xe9, 0x83, 0xbe, 0xd7, 0x99, 0x70, 0x6f, 0x2c, 0xee, 0x05, 0x55, 0x36, 0xdc, 0x18, 0xa3, - 0x69, 0x5f, 0xfd, 0xa0, 0xb7, 0xd0, 0x86, 0xfb, 0x62, 0xb1, 0x04, 0x10, 0xf4, 0xa4, 0x68, 0xae, - 0xd7, 0x18, 0x57, 0x08, 0x84, 0xb7, 0x06, 0x6b, 0x49, 0xd1, 0xf8, 0x2f, 0xf3, 0xad, 0xc1, 0x10, - 0x78, 0x6b, 0xf0, 0x6e, 0x14, 0x8d, 0x7e, 0x9d, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x85, 0x94, 0xd5, - 0x35, 0x4d, 0x9c, 0x5b, 0xd2, 0x83, 0x3f, 0x23, 0x92, 0xff, 0xf9, 0x43, 0x06, 0xe6, 0x80, 0xe2, - 0x1a, 0x24, 0x51, 0xfb, 0x00, 0x35, 0xa2, 0x90, 0xff, 0xf2, 0x21, 0xaf, 0x27, 0xd8, 0xba, 0xf8, - 0x3c, 0x00, 0x7d, 0x99, 0x26, 0xbf, 0x12, 0x45, 0x60, 0xff, 0xf5, 0x43, 0xf6, 0x85, 0x42, 0x00, - 0x09, 0x08, 0xe8, 0xf7, 0x0e, 0x0f, 0x26, 0x78, 0xaf, 0x97, 0x80, 0xbc, 0x80, 0x5f, 0x81, 0x89, - 0x5b, 0xae, 0x6d, 0x79, 0x5a, 0x2b, 0x0a, 0xfd, 0x6f, 0x0c, 0xcd, 0xed, 0x71, 0xc0, 0xda, 0xb6, - 0x83, 0x3c, 0xad, 0xe5, 0x46, 0x61, 0xff, 0x9d, 0x61, 0x7d, 0x00, 0x06, 0xeb, 0x9a, 0xeb, 0x8d, - 0xf2, 0xdc, 0xff, 0xc1, 0xc1, 0x1c, 0x80, 0x9d, 0xc6, 0xff, 0xdf, 0x46, 0x47, 0x51, 0xd8, 0xf7, - 0xb9, 0xd3, 0xcc, 0xbe, 0xf8, 0x49, 0x48, 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x11, 0xe0, 0xff, 0x64, - 0xe0, 0x00, 0x81, 0xef, 0xec, 0x7a, 0x0d, 0xcf, 0x88, 0x0e, 0xf6, 0x7f, 0xb1, 0x95, 0xe6, 0xf6, - 0xc5, 0x12, 0x64, 0x5c, 0xaf, 0xd1, 0xe8, 0xb2, 0x89, 0x26, 0x02, 0xfe, 0x83, 0x0f, 0xfd, 0x97, - 0x5c, 0x1f, 0x53, 0xbe, 0x30, 0xfc, 0xb0, 0x0e, 0x36, 0xec, 0x0d, 0x9b, 0x1e, 0xd3, 0xc1, 0xcf, - 0xa4, 0xa1, 0xa0, 0xdb, 0xed, 0x03, 0xdb, 0x5d, 0xa2, 0x05, 0x25, 0x54, 0x8c, 0x96, 0x6c, 0x8b, - 0xa1, 0xa4, 0xb8, 0x6d, 0xa1, 0xb9, 0xd3, 0x1d, 0xcf, 0x15, 0xce, 0x41, 0xb2, 0xde, 0x3d, 0x38, - 0x38, 0x92, 0x44, 0x88, 0xbb, 0xdd, 0x03, 0xf6, 0x7d, 0x09, 0xfe, 0xb7, 0xf0, 0x76, 0x1c, 0x26, - 0x4b, 0xa6, 0xb9, 0x77, 0xd4, 0x41, 0x6e, 0xcd, 0x42, 0xb5, 0xa6, 0x24, 0xc3, 0x38, 0x79, 0x9e, - 0xe7, 0x88, 0x99, 0x70, 0x7d, 0x4c, 0x61, 0xd7, 0xbe, 0x66, 0x99, 0x9c, 0x5a, 0xc6, 0x7c, 0xcd, - 0xb2, 0xaf, 0x59, 0xa1, 0x87, 0x96, 0xbe, 0x66, 0xc5, 0xd7, 0xac, 0x92, 0xa3, 0xcb, 0xb8, 0xaf, - 0x59, 0xf5, 0x35, 0x6b, 0xe4, 0x68, 0x7e, 0xd2, 0xd7, 0xac, 0xf9, 0x9a, 0x8b, 0xe4, 0x30, 0x3e, - 0xe1, 0x6b, 0x2e, 0xfa, 0x9a, 0x4b, 0xe4, 0x0c, 0x7e, 0xda, 0xd7, 0x5c, 0xf2, 0x35, 0x97, 0xc9, - 0xb9, 0xbb, 0xe4, 0x6b, 0x2e, 0xfb, 0x9a, 0x2b, 0xe4, 0x43, 0x92, 0x09, 0x5f, 0x73, 0x45, 0x9a, - 0x83, 0x09, 0xfa, 0x64, 0xcf, 0x92, 0x1f, 0x67, 0xa7, 0xae, 0x8f, 0x29, 0x5c, 0x10, 0xe8, 0x9e, - 0x23, 0x1f, 0x8b, 0x8c, 0x07, 0xba, 0xe7, 0x02, 0xdd, 0x32, 0xf9, 0x64, 0x5a, 0x0c, 0x74, 0xcb, - 0x81, 0x6e, 0x45, 0x9e, 0xc4, 0x69, 0x10, 0xe8, 0x56, 0x02, 0xdd, 0xaa, 0x9c, 0xc3, 0x2b, 0x10, - 0xe8, 0x56, 0x03, 0xdd, 0x9a, 0x3c, 0x35, 0x2f, 0x2c, 0x64, 0x03, 0xdd, 0x9a, 0xf4, 0x0c, 0x64, - 0xdc, 0xee, 0x81, 0xca, 0xbe, 0x25, 0x20, 0x1f, 0xa5, 0x64, 0x96, 0x61, 0x11, 0xe7, 0x04, 0x59, - 0xd6, 0xeb, 0x63, 0x0a, 0xb8, 0xdd, 0x03, 0x56, 0x27, 0xcb, 0x59, 0x20, 0xc7, 0x0a, 0x2a, 0xf9, - 0x14, 0xb3, 0xf0, 0x96, 0x00, 0xe9, 0xbd, 0xbb, 0x36, 0xf9, 0x69, 0xd6, 0xfd, 0x3f, 0x5e, 0x5c, - 0xee, 0xf4, 0xca, 0x2a, 0xf9, 0xf5, 0x2c, 0x7d, 0x5d, 0x50, 0xb8, 0x20, 0xd0, 0xad, 0xc9, 0x8f, - 0x92, 0x07, 0xf2, 0x75, 0x6b, 0xd2, 0x12, 0x64, 0x43, 0x0f, 0xb4, 0x4c, 0xbe, 0x33, 0xe9, 0x7d, - 0x22, 0x41, 0xc9, 0x04, 0x4f, 0xb4, 0x5c, 0x4e, 0x02, 0x4e, 0x7b, 0xfc, 0xc7, 0xbb, 0x6b, 0x17, - 0xbe, 0x10, 0x83, 0x0c, 0x3d, 0x89, 0x24, 0x4f, 0x85, 0x6f, 0x45, 0x27, 0xf3, 0x23, 0xe6, 0xc6, - 0x98, 0xc2, 0x05, 0x92, 0x02, 0x40, 0x4d, 0x71, 0x86, 0x53, 0x4f, 0xca, 0xcf, 0xfe, 0xc3, 0xdb, - 0xe7, 0x3f, 0x71, 0xe2, 0x0e, 0xc2, 0xb1, 0x5b, 0xa2, 0x75, 0x76, 0x71, 0xdf, 0xb0, 0xbc, 0xe7, - 0x96, 0x2f, 0xe3, 0x00, 0x07, 0x2c, 0xd2, 0x3e, 0xa4, 0x2a, 0x9a, 0x4b, 0x3e, 0x34, 0x23, 0xae, - 0x27, 0xca, 0x97, 0xfe, 0xe7, 0xed, 0xf3, 0x2b, 0x11, 0x8c, 0xac, 0x04, 0x2e, 0x6e, 0x1f, 0x61, - 0xd6, 0x8b, 0xab, 0x18, 0x7e, 0x7d, 0x4c, 0xf1, 0xa9, 0xa4, 0x65, 0xee, 0xea, 0x8e, 0xd6, 0xa6, - 0x1f, 0xd4, 0xc4, 0xcb, 0xe2, 0xf1, 0xdb, 0xe7, 0xb3, 0xdb, 0x47, 0x81, 0x3c, 0x70, 0x05, 0x5f, - 0x95, 0x53, 0x30, 0x4e, 0x5d, 0x2d, 0xaf, 0xbf, 0x79, 0x3f, 0x3f, 0xf6, 0xd6, 0xfd, 0xfc, 0xd8, - 0xdf, 0xdf, 0xcf, 0x8f, 0xbd, 0x73, 0x3f, 0x2f, 0xbc, 0x7f, 0x3f, 0x2f, 0xfc, 0xf0, 0x7e, 0x5e, - 0xb8, 0x77, 0x9c, 0x17, 0xbe, 0x7a, 0x9c, 0x17, 0xbe, 0x71, 0x9c, 0x17, 0xbe, 0x7d, 0x9c, 0x17, - 0xde, 0x3c, 0xce, 0x8f, 0xbd, 0x75, 0x9c, 0x1f, 0x7b, 0xe7, 0x38, 0x2f, 0x7c, 0xff, 0x38, 0x3f, - 0xf6, 0xfe, 0x71, 0x5e, 0xf8, 0xe1, 0x71, 0x7e, 0xec, 0xde, 0xf7, 0xf2, 0xc2, 0xff, 0x06, 0x00, - 0x00, 0xff, 0xff, 0xf7, 0x0c, 0xfe, 0x1d, 0xe1, 0x32, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Subby) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Subby") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Subby but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Subby but is not nil && this == nil") - } - if this.Sub != nil && that1.Sub != nil { - if *this.Sub != *that1.Sub { - return fmt.Errorf("Sub this(%v) Not Equal that(%v)", *this.Sub, *that1.Sub) - } - } else if this.Sub != nil { - return fmt.Errorf("this.Sub == nil && that.Sub != nil") - } else if that1.Sub != nil { - return fmt.Errorf("Sub this(%v) Not Equal that(%v)", this.Sub, that1.Sub) - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *Subby) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Sub != nil && that1.Sub != nil { - if *this.Sub != *that1.Sub { - return false - } - } else if this.Sub != nil { - return false - } else if that1.Sub != nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllTypesOneOf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf) - if !ok { - that2, ok := that.(AllTypesOneOf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf but is not nil && this == nil") - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return fmt.Errorf("this.TestOneof != nil && that1.TestOneof == nil") - } - } else if this.TestOneof == nil { - return fmt.Errorf("this.TestOneof == nil && that1.TestOneof != nil") - } else if err := this.TestOneof.VerboseEqual(that1.TestOneof); err != nil { - return err - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *AllTypesOneOf_Field1) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field1) - if !ok { - that2, ok := that.(AllTypesOneOf_Field1) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field1") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field1 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field1 but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *AllTypesOneOf_Field2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field2) - if !ok { - that2, ok := that.(AllTypesOneOf_Field2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field2 but is not nil && this == nil") - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - return nil -} -func (this *AllTypesOneOf_Field3) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field3) - if !ok { - that2, ok := that.(AllTypesOneOf_Field3) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field3") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field3 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field3 but is not nil && this == nil") - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - return nil -} -func (this *AllTypesOneOf_Field4) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field4) - if !ok { - that2, ok := that.(AllTypesOneOf_Field4) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field4") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field4 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field4 but is not nil && this == nil") - } - if this.Field4 != that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - return nil -} -func (this *AllTypesOneOf_Field5) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field5) - if !ok { - that2, ok := that.(AllTypesOneOf_Field5) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field5") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field5 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field5 but is not nil && this == nil") - } - if this.Field5 != that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - return nil -} -func (this *AllTypesOneOf_Field6) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field6) - if !ok { - that2, ok := that.(AllTypesOneOf_Field6) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field6") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field6 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field6 but is not nil && this == nil") - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - return nil -} -func (this *AllTypesOneOf_Field7) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field7) - if !ok { - that2, ok := that.(AllTypesOneOf_Field7) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field7") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field7 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field7 but is not nil && this == nil") - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - return nil -} -func (this *AllTypesOneOf_Field8) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field8) - if !ok { - that2, ok := that.(AllTypesOneOf_Field8) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field8") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field8 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field8 but is not nil && this == nil") - } - if this.Field8 != that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - return nil -} -func (this *AllTypesOneOf_Field9) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field9) - if !ok { - that2, ok := that.(AllTypesOneOf_Field9) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field9") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field9 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field9 but is not nil && this == nil") - } - if this.Field9 != that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - return nil -} -func (this *AllTypesOneOf_Field10) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field10) - if !ok { - that2, ok := that.(AllTypesOneOf_Field10) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field10") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field10 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field10 but is not nil && this == nil") - } - if this.Field10 != that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - return nil -} -func (this *AllTypesOneOf_Field11) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field11) - if !ok { - that2, ok := that.(AllTypesOneOf_Field11) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field11") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field11 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field11 but is not nil && this == nil") - } - if this.Field11 != that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - return nil -} -func (this *AllTypesOneOf_Field12) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field12) - if !ok { - that2, ok := that.(AllTypesOneOf_Field12) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field12") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field12 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field12 but is not nil && this == nil") - } - if this.Field12 != that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - return nil -} -func (this *AllTypesOneOf_Field13) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field13) - if !ok { - that2, ok := that.(AllTypesOneOf_Field13) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field13") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field13 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field13 but is not nil && this == nil") - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - return nil -} -func (this *AllTypesOneOf_Field14) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field14) - if !ok { - that2, ok := that.(AllTypesOneOf_Field14) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field14") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field14 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field14 but is not nil && this == nil") - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - return nil -} -func (this *AllTypesOneOf_Field15) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_Field15) - if !ok { - that2, ok := that.(AllTypesOneOf_Field15) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_Field15") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_Field15 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_Field15 but is not nil && this == nil") - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - return nil -} -func (this *AllTypesOneOf_SubMessage) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllTypesOneOf_SubMessage) - if !ok { - that2, ok := that.(AllTypesOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllTypesOneOf_SubMessage") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllTypesOneOf_SubMessage but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllTypesOneOf_SubMessage but is not nil && this == nil") - } - if !this.SubMessage.Equal(that1.SubMessage) { - return fmt.Errorf("SubMessage this(%v) Not Equal that(%v)", this.SubMessage, that1.SubMessage) - } - return nil -} -func (this *AllTypesOneOf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf) - if !ok { - that2, ok := that.(AllTypesOneOf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return false - } - } else if this.TestOneof == nil { - return false - } else if !this.TestOneof.Equal(that1.TestOneof) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *AllTypesOneOf_Field1) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field1) - if !ok { - that2, ok := that.(AllTypesOneOf_Field1) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - return true -} -func (this *AllTypesOneOf_Field2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field2) - if !ok { - that2, ok := that.(AllTypesOneOf_Field2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != that1.Field2 { - return false - } - return true -} -func (this *AllTypesOneOf_Field3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field3) - if !ok { - that2, ok := that.(AllTypesOneOf_Field3) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field3 != that1.Field3 { - return false - } - return true -} -func (this *AllTypesOneOf_Field4) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field4) - if !ok { - that2, ok := that.(AllTypesOneOf_Field4) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field4 != that1.Field4 { - return false - } - return true -} -func (this *AllTypesOneOf_Field5) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field5) - if !ok { - that2, ok := that.(AllTypesOneOf_Field5) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field5 != that1.Field5 { - return false - } - return true -} -func (this *AllTypesOneOf_Field6) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field6) - if !ok { - that2, ok := that.(AllTypesOneOf_Field6) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field6 != that1.Field6 { - return false - } - return true -} -func (this *AllTypesOneOf_Field7) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field7) - if !ok { - that2, ok := that.(AllTypesOneOf_Field7) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field7 != that1.Field7 { - return false - } - return true -} -func (this *AllTypesOneOf_Field8) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field8) - if !ok { - that2, ok := that.(AllTypesOneOf_Field8) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field8 != that1.Field8 { - return false - } - return true -} -func (this *AllTypesOneOf_Field9) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field9) - if !ok { - that2, ok := that.(AllTypesOneOf_Field9) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field9 != that1.Field9 { - return false - } - return true -} -func (this *AllTypesOneOf_Field10) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field10) - if !ok { - that2, ok := that.(AllTypesOneOf_Field10) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field10 != that1.Field10 { - return false - } - return true -} -func (this *AllTypesOneOf_Field11) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field11) - if !ok { - that2, ok := that.(AllTypesOneOf_Field11) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field11 != that1.Field11 { - return false - } - return true -} -func (this *AllTypesOneOf_Field12) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field12) - if !ok { - that2, ok := that.(AllTypesOneOf_Field12) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field12 != that1.Field12 { - return false - } - return true -} -func (this *AllTypesOneOf_Field13) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field13) - if !ok { - that2, ok := that.(AllTypesOneOf_Field13) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field13 != that1.Field13 { - return false - } - return true -} -func (this *AllTypesOneOf_Field14) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field14) - if !ok { - that2, ok := that.(AllTypesOneOf_Field14) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field14 != that1.Field14 { - return false - } - return true -} -func (this *AllTypesOneOf_Field15) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_Field15) - if !ok { - that2, ok := that.(AllTypesOneOf_Field15) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - return true -} -func (this *AllTypesOneOf_SubMessage) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllTypesOneOf_SubMessage) - if !ok { - that2, ok := that.(AllTypesOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.SubMessage.Equal(that1.SubMessage) { - return false - } - return true -} -func (this *TwoOneofs) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs) - if !ok { - that2, ok := that.(TwoOneofs) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs but is not nil && this == nil") - } - if that1.One == nil { - if this.One != nil { - return fmt.Errorf("this.One != nil && that1.One == nil") - } - } else if this.One == nil { - return fmt.Errorf("this.One == nil && that1.One != nil") - } else if err := this.One.VerboseEqual(that1.One); err != nil { - return err - } - if that1.Two == nil { - if this.Two != nil { - return fmt.Errorf("this.Two != nil && that1.Two == nil") - } - } else if this.Two == nil { - return fmt.Errorf("this.Two == nil && that1.Two != nil") - } else if err := this.Two.VerboseEqual(that1.Two); err != nil { - return err - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *TwoOneofs_Field1) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field1) - if !ok { - that2, ok := that.(TwoOneofs_Field1) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field1") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field1 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field1 but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *TwoOneofs_Field2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field2) - if !ok { - that2, ok := that.(TwoOneofs_Field2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field2 but is not nil && this == nil") - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - return nil -} -func (this *TwoOneofs_Field3) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field3) - if !ok { - that2, ok := that.(TwoOneofs_Field3) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field3") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field3 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field3 but is not nil && this == nil") - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - return nil -} -func (this *TwoOneofs_Field34) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field34) - if !ok { - that2, ok := that.(TwoOneofs_Field34) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field34") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field34 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field34 but is not nil && this == nil") - } - if this.Field34 != that1.Field34 { - return fmt.Errorf("Field34 this(%v) Not Equal that(%v)", this.Field34, that1.Field34) - } - return nil -} -func (this *TwoOneofs_Field35) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_Field35) - if !ok { - that2, ok := that.(TwoOneofs_Field35) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_Field35") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_Field35 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_Field35 but is not nil && this == nil") - } - if !bytes.Equal(this.Field35, that1.Field35) { - return fmt.Errorf("Field35 this(%v) Not Equal that(%v)", this.Field35, that1.Field35) - } - return nil -} -func (this *TwoOneofs_SubMessage2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*TwoOneofs_SubMessage2) - if !ok { - that2, ok := that.(TwoOneofs_SubMessage2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *TwoOneofs_SubMessage2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *TwoOneofs_SubMessage2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *TwoOneofs_SubMessage2 but is not nil && this == nil") - } - if !this.SubMessage2.Equal(that1.SubMessage2) { - return fmt.Errorf("SubMessage2 this(%v) Not Equal that(%v)", this.SubMessage2, that1.SubMessage2) - } - return nil -} -func (this *TwoOneofs) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs) - if !ok { - that2, ok := that.(TwoOneofs) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.One == nil { - if this.One != nil { - return false - } - } else if this.One == nil { - return false - } else if !this.One.Equal(that1.One) { - return false - } - if that1.Two == nil { - if this.Two != nil { - return false - } - } else if this.Two == nil { - return false - } else if !this.Two.Equal(that1.Two) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *TwoOneofs_Field1) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field1) - if !ok { - that2, ok := that.(TwoOneofs_Field1) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - return true -} -func (this *TwoOneofs_Field2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field2) - if !ok { - that2, ok := that.(TwoOneofs_Field2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != that1.Field2 { - return false - } - return true -} -func (this *TwoOneofs_Field3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field3) - if !ok { - that2, ok := that.(TwoOneofs_Field3) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field3 != that1.Field3 { - return false - } - return true -} -func (this *TwoOneofs_Field34) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field34) - if !ok { - that2, ok := that.(TwoOneofs_Field34) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field34 != that1.Field34 { - return false - } - return true -} -func (this *TwoOneofs_Field35) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_Field35) - if !ok { - that2, ok := that.(TwoOneofs_Field35) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.Field35, that1.Field35) { - return false - } - return true -} -func (this *TwoOneofs_SubMessage2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*TwoOneofs_SubMessage2) - if !ok { - that2, ok := that.(TwoOneofs_SubMessage2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.SubMessage2.Equal(that1.SubMessage2) { - return false - } - return true -} -func (this *CustomOneof) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof) - if !ok { - that2, ok := that.(CustomOneof) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof but is not nil && this == nil") - } - if that1.Custom == nil { - if this.Custom != nil { - return fmt.Errorf("this.Custom != nil && that1.Custom == nil") - } - } else if this.Custom == nil { - return fmt.Errorf("this.Custom == nil && that1.Custom != nil") - } else if err := this.Custom.VerboseEqual(that1.Custom); err != nil { - return err - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized) - } - return nil -} -func (this *CustomOneof_Stringy) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_Stringy) - if !ok { - that2, ok := that.(CustomOneof_Stringy) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_Stringy") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_Stringy but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_Stringy but is not nil && this == nil") - } - if this.Stringy != that1.Stringy { - return fmt.Errorf("Stringy this(%v) Not Equal that(%v)", this.Stringy, that1.Stringy) - } - return nil -} -func (this *CustomOneof_CustomType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_CustomType) - if !ok { - that2, ok := that.(CustomOneof_CustomType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_CustomType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_CustomType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_CustomType but is not nil && this == nil") - } - if !this.CustomType.Equal(that1.CustomType) { - return fmt.Errorf("CustomType this(%v) Not Equal that(%v)", this.CustomType, that1.CustomType) - } - return nil -} -func (this *CustomOneof_CastType) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_CastType) - if !ok { - that2, ok := that.(CustomOneof_CastType) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_CastType") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_CastType but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_CastType but is not nil && this == nil") - } - if this.CastType != that1.CastType { - return fmt.Errorf("CastType this(%v) Not Equal that(%v)", this.CastType, that1.CastType) - } - return nil -} -func (this *CustomOneof_MyCustomName) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*CustomOneof_MyCustomName) - if !ok { - that2, ok := that.(CustomOneof_MyCustomName) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *CustomOneof_MyCustomName") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *CustomOneof_MyCustomName but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *CustomOneof_MyCustomName but is not nil && this == nil") - } - if this.MyCustomName != that1.MyCustomName { - return fmt.Errorf("MyCustomName this(%v) Not Equal that(%v)", this.MyCustomName, that1.MyCustomName) - } - return nil -} -func (this *CustomOneof) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof) - if !ok { - that2, ok := that.(CustomOneof) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Custom == nil { - if this.Custom != nil { - return false - } - } else if this.Custom == nil { - return false - } else if !this.Custom.Equal(that1.Custom) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *CustomOneof_Stringy) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_Stringy) - if !ok { - that2, ok := that.(CustomOneof_Stringy) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Stringy != that1.Stringy { - return false - } - return true -} -func (this *CustomOneof_CustomType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_CustomType) - if !ok { - that2, ok := that.(CustomOneof_CustomType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.CustomType.Equal(that1.CustomType) { - return false - } - return true -} -func (this *CustomOneof_CastType) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_CastType) - if !ok { - that2, ok := that.(CustomOneof_CastType) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.CastType != that1.CastType { - return false - } - return true -} -func (this *CustomOneof_MyCustomName) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*CustomOneof_MyCustomName) - if !ok { - that2, ok := that.(CustomOneof_MyCustomName) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.MyCustomName != that1.MyCustomName { - return false - } - return true -} -func (this *Subby) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&one.Subby{") - if this.Sub != nil { - s = append(s, "Sub: "+valueToGoStringOne(this.Sub, "string")+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllTypesOneOf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&one.AllTypesOneOf{") - if this.TestOneof != nil { - s = append(s, "TestOneof: "+fmt.Sprintf("%#v", this.TestOneof)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllTypesOneOf_Field1) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field1{` + - `Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field2{` + - `Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field3) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field3{` + - `Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field4) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field4{` + - `Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field5) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field5{` + - `Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field6) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field6{` + - `Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field7) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field7{` + - `Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field8) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field8{` + - `Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field9) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field9{` + - `Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field10) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field10{` + - `Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field11) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field11{` + - `Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field12) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field12{` + - `Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field13) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field13{` + - `Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field14) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field14{` + - `Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_Field15) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_Field15{` + - `Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ") - return s -} -func (this *AllTypesOneOf_SubMessage) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.AllTypesOneOf_SubMessage{` + - `SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ") - return s -} -func (this *TwoOneofs) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 10) - s = append(s, "&one.TwoOneofs{") - if this.One != nil { - s = append(s, "One: "+fmt.Sprintf("%#v", this.One)+",\n") - } - if this.Two != nil { - s = append(s, "Two: "+fmt.Sprintf("%#v", this.Two)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *TwoOneofs_Field1) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field1{` + - `Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field2{` + - `Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field3) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field3{` + - `Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field34) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field34{` + - `Field34:` + fmt.Sprintf("%#v", this.Field34) + `}`}, ", ") - return s -} -func (this *TwoOneofs_Field35) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_Field35{` + - `Field35:` + fmt.Sprintf("%#v", this.Field35) + `}`}, ", ") - return s -} -func (this *TwoOneofs_SubMessage2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.TwoOneofs_SubMessage2{` + - `SubMessage2:` + fmt.Sprintf("%#v", this.SubMessage2) + `}`}, ", ") - return s -} -func (this *CustomOneof) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 8) - s = append(s, "&one.CustomOneof{") - if this.Custom != nil { - s = append(s, "Custom: "+fmt.Sprintf("%#v", this.Custom)+",\n") - } - if this.XXX_unrecognized != nil { - s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *CustomOneof_Stringy) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_Stringy{` + - `Stringy:` + fmt.Sprintf("%#v", this.Stringy) + `}`}, ", ") - return s -} -func (this *CustomOneof_CustomType) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_CustomType{` + - `CustomType:` + fmt.Sprintf("%#v", this.CustomType) + `}`}, ", ") - return s -} -func (this *CustomOneof_CastType) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_CastType{` + - `CastType:` + fmt.Sprintf("%#v", this.CastType) + `}`}, ", ") - return s -} -func (this *CustomOneof_MyCustomName) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.CustomOneof_MyCustomName{` + - `MyCustomName:` + fmt.Sprintf("%#v", this.MyCustomName) + `}`}, ", ") - return s -} -func valueToGoStringOne(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedSubby(r randyOne, easy bool) *Subby { - this := &Subby{} - if r.Intn(10) != 0 { - v1 := string(randStringOne(r)) - this.Sub = &v1 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 2) - } - return this -} - -func NewPopulatedAllTypesOneOf(r randyOne, easy bool) *AllTypesOneOf { - this := &AllTypesOneOf{} - oneofNumber_TestOneof := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}[r.Intn(16)] - switch oneofNumber_TestOneof { - case 1: - this.TestOneof = NewPopulatedAllTypesOneOf_Field1(r, easy) - case 2: - this.TestOneof = NewPopulatedAllTypesOneOf_Field2(r, easy) - case 3: - this.TestOneof = NewPopulatedAllTypesOneOf_Field3(r, easy) - case 4: - this.TestOneof = NewPopulatedAllTypesOneOf_Field4(r, easy) - case 5: - this.TestOneof = NewPopulatedAllTypesOneOf_Field5(r, easy) - case 6: - this.TestOneof = NewPopulatedAllTypesOneOf_Field6(r, easy) - case 7: - this.TestOneof = NewPopulatedAllTypesOneOf_Field7(r, easy) - case 8: - this.TestOneof = NewPopulatedAllTypesOneOf_Field8(r, easy) - case 9: - this.TestOneof = NewPopulatedAllTypesOneOf_Field9(r, easy) - case 10: - this.TestOneof = NewPopulatedAllTypesOneOf_Field10(r, easy) - case 11: - this.TestOneof = NewPopulatedAllTypesOneOf_Field11(r, easy) - case 12: - this.TestOneof = NewPopulatedAllTypesOneOf_Field12(r, easy) - case 13: - this.TestOneof = NewPopulatedAllTypesOneOf_Field13(r, easy) - case 14: - this.TestOneof = NewPopulatedAllTypesOneOf_Field14(r, easy) - case 15: - this.TestOneof = NewPopulatedAllTypesOneOf_Field15(r, easy) - case 16: - this.TestOneof = NewPopulatedAllTypesOneOf_SubMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 17) - } - return this -} - -func NewPopulatedAllTypesOneOf_Field1(r randyOne, easy bool) *AllTypesOneOf_Field1 { - this := &AllTypesOneOf_Field1{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field2(r randyOne, easy bool) *AllTypesOneOf_Field2 { - this := &AllTypesOneOf_Field2{} - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field3(r randyOne, easy bool) *AllTypesOneOf_Field3 { - this := &AllTypesOneOf_Field3{} - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field4(r randyOne, easy bool) *AllTypesOneOf_Field4 { - this := &AllTypesOneOf_Field4{} - this.Field4 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field5(r randyOne, easy bool) *AllTypesOneOf_Field5 { - this := &AllTypesOneOf_Field5{} - this.Field5 = uint32(r.Uint32()) - return this -} -func NewPopulatedAllTypesOneOf_Field6(r randyOne, easy bool) *AllTypesOneOf_Field6 { - this := &AllTypesOneOf_Field6{} - this.Field6 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedAllTypesOneOf_Field7(r randyOne, easy bool) *AllTypesOneOf_Field7 { - this := &AllTypesOneOf_Field7{} - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field8(r randyOne, easy bool) *AllTypesOneOf_Field8 { - this := &AllTypesOneOf_Field8{} - this.Field8 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field9(r randyOne, easy bool) *AllTypesOneOf_Field9 { - this := &AllTypesOneOf_Field9{} - this.Field9 = uint32(r.Uint32()) - return this -} -func NewPopulatedAllTypesOneOf_Field10(r randyOne, easy bool) *AllTypesOneOf_Field10 { - this := &AllTypesOneOf_Field10{} - this.Field10 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field11(r randyOne, easy bool) *AllTypesOneOf_Field11 { - this := &AllTypesOneOf_Field11{} - this.Field11 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedAllTypesOneOf_Field12(r randyOne, easy bool) *AllTypesOneOf_Field12 { - this := &AllTypesOneOf_Field12{} - this.Field12 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12 *= -1 - } - return this -} -func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Field13 { - this := &AllTypesOneOf_Field13{} - this.Field13 = bool(bool(r.Intn(2) == 0)) - return this -} -func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 { - this := &AllTypesOneOf_Field14{} - this.Field14 = string(randStringOne(r)) - return this -} -func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 { - this := &AllTypesOneOf_Field15{} - v2 := r.Intn(100) - this.Field15 = make([]byte, v2) - for i := 0; i < v2; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - return this -} -func NewPopulatedAllTypesOneOf_SubMessage(r randyOne, easy bool) *AllTypesOneOf_SubMessage { - this := &AllTypesOneOf_SubMessage{} - this.SubMessage = NewPopulatedSubby(r, easy) - return this -} -func NewPopulatedTwoOneofs(r randyOne, easy bool) *TwoOneofs { - this := &TwoOneofs{} - oneofNumber_One := []int32{1, 2, 3}[r.Intn(3)] - switch oneofNumber_One { - case 1: - this.One = NewPopulatedTwoOneofs_Field1(r, easy) - case 2: - this.One = NewPopulatedTwoOneofs_Field2(r, easy) - case 3: - this.One = NewPopulatedTwoOneofs_Field3(r, easy) - } - oneofNumber_Two := []int32{34, 35, 36}[r.Intn(3)] - switch oneofNumber_Two { - case 34: - this.Two = NewPopulatedTwoOneofs_Field34(r, easy) - case 35: - this.Two = NewPopulatedTwoOneofs_Field35(r, easy) - case 36: - this.Two = NewPopulatedTwoOneofs_SubMessage2(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 37) - } - return this -} - -func NewPopulatedTwoOneofs_Field1(r randyOne, easy bool) *TwoOneofs_Field1 { - this := &TwoOneofs_Field1{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - return this -} -func NewPopulatedTwoOneofs_Field2(r randyOne, easy bool) *TwoOneofs_Field2 { - this := &TwoOneofs_Field2{} - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - return this -} -func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 { - this := &TwoOneofs_Field3{} - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - return this -} -func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 { - this := &TwoOneofs_Field34{} - this.Field34 = string(randStringOne(r)) - return this -} -func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 { - this := &TwoOneofs_Field35{} - v3 := r.Intn(100) - this.Field35 = make([]byte, v3) - for i := 0; i < v3; i++ { - this.Field35[i] = byte(r.Intn(256)) - } - return this -} -func NewPopulatedTwoOneofs_SubMessage2(r randyOne, easy bool) *TwoOneofs_SubMessage2 { - this := &TwoOneofs_SubMessage2{} - this.SubMessage2 = NewPopulatedSubby(r, easy) - return this -} -func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof { - this := &CustomOneof{} - oneofNumber_Custom := []int32{34, 35, 36, 37}[r.Intn(4)] - switch oneofNumber_Custom { - case 34: - this.Custom = NewPopulatedCustomOneof_Stringy(r, easy) - case 35: - this.Custom = NewPopulatedCustomOneof_CustomType(r, easy) - case 36: - this.Custom = NewPopulatedCustomOneof_CastType(r, easy) - case 37: - this.Custom = NewPopulatedCustomOneof_MyCustomName(r, easy) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedOne(r, 38) - } - return this -} - -func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy { - this := &CustomOneof_Stringy{} - this.Stringy = string(randStringOne(r)) - return this -} -func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType { - this := &CustomOneof_CustomType{} - v4 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.CustomType = *v4 - return this -} -func NewPopulatedCustomOneof_CastType(r randyOne, easy bool) *CustomOneof_CastType { - this := &CustomOneof_CastType{} - this.CastType = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32())) - return this -} -func NewPopulatedCustomOneof_MyCustomName(r randyOne, easy bool) *CustomOneof_MyCustomName { - this := &CustomOneof_MyCustomName{} - this.MyCustomName = int64(r.Int63()) - if r.Intn(2) == 0 { - this.MyCustomName *= -1 - } - return this -} - -type randyOne interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneOne(r randyOne) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringOne(r randyOne) string { - v5 := r.Intn(100) - tmps := make([]rune, v5) - for i := 0; i < v5; i++ { - tmps[i] = randUTF8RuneOne(r) - } - return string(tmps) -} -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldOne(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - v6 := r.Int63() - if r.Intn(2) == 0 { - v6 *= -1 - } - dAtA = encodeVarintPopulateOne(dAtA, uint64(v6)) - case 1: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Subby) Size() (n int) { - var l int - _ = l - if m.Sub != nil { - l = len(*m.Sub) - n += 1 + l + sovOne(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllTypesOneOf) Size() (n int) { - var l int - _ = l - if m.TestOneof != nil { - n += m.TestOneof.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AllTypesOneOf_Field1) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *AllTypesOneOf_Field2) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *AllTypesOneOf_Field3) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field3)) - return n -} -func (m *AllTypesOneOf_Field4) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field4)) - return n -} -func (m *AllTypesOneOf_Field5) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field5)) - return n -} -func (m *AllTypesOneOf_Field6) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field6)) - return n -} -func (m *AllTypesOneOf_Field7) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field7)) - return n -} -func (m *AllTypesOneOf_Field8) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field8)) - return n -} -func (m *AllTypesOneOf_Field9) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *AllTypesOneOf_Field10) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *AllTypesOneOf_Field11) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *AllTypesOneOf_Field12) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *AllTypesOneOf_Field13) Size() (n int) { - var l int - _ = l - n += 2 - return n -} -func (m *AllTypesOneOf_Field14) Size() (n int) { - var l int - _ = l - l = len(m.Field14) - n += 1 + l + sovOne(uint64(l)) - return n -} -func (m *AllTypesOneOf_Field15) Size() (n int) { - var l int - _ = l - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovOne(uint64(l)) - } - return n -} -func (m *AllTypesOneOf_SubMessage) Size() (n int) { - var l int - _ = l - if m.SubMessage != nil { - l = m.SubMessage.Size() - n += 2 + l + sovOne(uint64(l)) - } - return n -} -func (m *TwoOneofs) Size() (n int) { - var l int - _ = l - if m.One != nil { - n += m.One.Size() - } - if m.Two != nil { - n += m.Two.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *TwoOneofs_Field1) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *TwoOneofs_Field2) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *TwoOneofs_Field3) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field3)) - return n -} -func (m *TwoOneofs_Field34) Size() (n int) { - var l int - _ = l - l = len(m.Field34) - n += 2 + l + sovOne(uint64(l)) - return n -} -func (m *TwoOneofs_Field35) Size() (n int) { - var l int - _ = l - if m.Field35 != nil { - l = len(m.Field35) - n += 2 + l + sovOne(uint64(l)) - } - return n -} -func (m *TwoOneofs_SubMessage2) Size() (n int) { - var l int - _ = l - if m.SubMessage2 != nil { - l = m.SubMessage2.Size() - n += 2 + l + sovOne(uint64(l)) - } - return n -} -func (m *CustomOneof) Size() (n int) { - var l int - _ = l - if m.Custom != nil { - n += m.Custom.Size() - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *CustomOneof_Stringy) Size() (n int) { - var l int - _ = l - l = len(m.Stringy) - n += 2 + l + sovOne(uint64(l)) - return n -} -func (m *CustomOneof_CustomType) Size() (n int) { - var l int - _ = l - l = m.CustomType.Size() - n += 2 + l + sovOne(uint64(l)) - return n -} -func (m *CustomOneof_CastType) Size() (n int) { - var l int - _ = l - n += 2 + sovOne(uint64(m.CastType)) - return n -} -func (m *CustomOneof_MyCustomName) Size() (n int) { - var l int - _ = l - n += 2 + sovOne(uint64(m.MyCustomName)) - return n -} - -func sovOne(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozOne(x uint64) (n int) { - return sovOne(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Subby) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Subby{`, - `Sub:` + valueToStringOne(this.Sub) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf{`, - `TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field1) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field1{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field2{`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field3{`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field4) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field4{`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field5) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field5{`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field6) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field6{`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field7) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field7{`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field8) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field8{`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field9) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field9{`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field10) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field10{`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field11) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field11{`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field12) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field12{`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field13) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field13{`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field14) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field14{`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_Field15) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_Field15{`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `}`, - }, "") - return s -} -func (this *AllTypesOneOf_SubMessage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllTypesOneOf_SubMessage{`, - `SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs{`, - `One:` + fmt.Sprintf("%v", this.One) + `,`, - `Two:` + fmt.Sprintf("%v", this.Two) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field1) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field1{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field2{`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field3{`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field34) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field34{`, - `Field34:` + fmt.Sprintf("%v", this.Field34) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_Field35) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_Field35{`, - `Field35:` + fmt.Sprintf("%v", this.Field35) + `,`, - `}`, - }, "") - return s -} -func (this *TwoOneofs_SubMessage2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TwoOneofs_SubMessage2{`, - `SubMessage2:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage2), "Subby", "Subby", 1) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof{`, - `Custom:` + fmt.Sprintf("%v", this.Custom) + `,`, - `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_Stringy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_Stringy{`, - `Stringy:` + fmt.Sprintf("%v", this.Stringy) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_CustomType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_CustomType{`, - `CustomType:` + fmt.Sprintf("%v", this.CustomType) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_CastType) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_CastType{`, - `CastType:` + fmt.Sprintf("%v", this.CastType) + `,`, - `}`, - }, "") - return s -} -func (this *CustomOneof_MyCustomName) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomOneof_MyCustomName{`, - `MyCustomName:` + fmt.Sprintf("%v", this.MyCustomName) + `,`, - `}`, - }, "") - return s -} -func valueToStringOne(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Subby) 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 ErrIntOverflowOneUnsafe - } - 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: Subby: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Subby: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sub", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Sub = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllTypesOneOf) 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 ErrIntOverflowOneUnsafe - } - 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: AllTypesOneOf: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllTypesOneOf: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &AllTypesOneOf_Field1{v} - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &AllTypesOneOf_Field2{v} - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &AllTypesOneOf_Field3{v} - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &AllTypesOneOf_Field4{v} - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &AllTypesOneOf_Field5{v} - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &AllTypesOneOf_Field6{v} - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.TestOneof = &AllTypesOneOf_Field7{v} - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.TestOneof = &AllTypesOneOf_Field8{int64(v)} - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &AllTypesOneOf_Field9{v} - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &AllTypesOneOf_Field10{v} - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &AllTypesOneOf_Field11{v} - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &AllTypesOneOf_Field12{v} - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.TestOneof = &AllTypesOneOf_Field13{b} - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TestOneof = &AllTypesOneOf_Field14{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := make([]byte, postIndex-iNdEx) - copy(v, dAtA[iNdEx:postIndex]) - m.TestOneof = &AllTypesOneOf_Field15{v} - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubMessage", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Subby{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.TestOneof = &AllTypesOneOf_SubMessage{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TwoOneofs) 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 ErrIntOverflowOneUnsafe - } - 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: TwoOneofs: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TwoOneofs: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.One = &TwoOneofs_Field1{v} - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.One = &TwoOneofs_Field2{v} - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.One = &TwoOneofs_Field3{v} - case 34: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field34", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Two = &TwoOneofs_Field34{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 35: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field35", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := make([]byte, postIndex-iNdEx) - copy(v, dAtA[iNdEx:postIndex]) - m.Two = &TwoOneofs_Field35{v} - iNdEx = postIndex - case 36: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubMessage2", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Subby{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Two = &TwoOneofs_SubMessage2{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomOneof) 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 ErrIntOverflowOneUnsafe - } - 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: CustomOneof: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomOneof: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 34: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stringy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Custom = &CustomOneof_Stringy{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 35: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CustomType", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var vv github_com_gogo_protobuf_test_custom.Uint128 - v := &vv - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Custom = &CustomOneof_CustomType{*v} - iNdEx = postIndex - case 36: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CastType", wireType) - } - var v github_com_gogo_protobuf_test_casttype.MyUint64Type - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (github_com_gogo_protobuf_test_casttype.MyUint64Type(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Custom = &CustomOneof_CastType{v} - case 37: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MyCustomName", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Custom = &CustomOneof_MyCustomName{v} - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipOneUnsafe(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, ErrIntOverflowOneUnsafe - } - 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, ErrIntOverflowOneUnsafe - } - 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, ErrIntOverflowOneUnsafe - } - 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, ErrInvalidLengthOneUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowOneUnsafe - } - 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 := skipOneUnsafe(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 ( - ErrInvalidLengthOneUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowOneUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeunmarshaler/one.proto", fileDescriptorOne) } - -var fileDescriptorOne = []byte{ - // 607 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0xd3, 0xbf, 0x6e, 0xdb, 0x3c, - 0x10, 0x00, 0x70, 0x5e, 0x1c, 0x3b, 0x0e, 0xed, 0x7c, 0xf1, 0xa7, 0x89, 0xcd, 0xc0, 0x10, 0x6e, - 0x0b, 0x70, 0x68, 0xec, 0x58, 0xb6, 0xf3, 0x67, 0xac, 0x52, 0x14, 0x5e, 0xd2, 0x00, 0x4a, 0x32, - 0x07, 0x52, 0x4a, 0x3b, 0x06, 0x6c, 0x31, 0x30, 0x25, 0x04, 0xde, 0xf2, 0x0c, 0x7d, 0x8a, 0x8e, - 0x1d, 0xfb, 0x08, 0x19, 0x3d, 0x16, 0x1d, 0x8c, 0x58, 0x5d, 0x3a, 0x66, 0x0c, 0x3a, 0x15, 0x94, - 0x62, 0xb2, 0x40, 0x51, 0x74, 0xe9, 0x64, 0xdd, 0xfd, 0xc4, 0xf3, 0x9d, 0x48, 0xe2, 0xfa, 0xa5, - 0x1c, 0x87, 0x52, 0x35, 0x93, 0x48, 0x05, 0x7d, 0x91, 0x44, 0xe3, 0x60, 0xa2, 0xae, 0x82, 0x91, - 0x98, 0x34, 0x65, 0x24, 0x1a, 0xd7, 0x13, 0x19, 0x4b, 0xa7, 0x20, 0x23, 0xb1, 0xb5, 0x33, 0x18, - 0xc6, 0x57, 0x49, 0xd8, 0xb8, 0x94, 0xe3, 0xe6, 0x40, 0x0e, 0x64, 0x33, 0xb3, 0x30, 0xe9, 0x67, - 0x51, 0x16, 0x64, 0x4f, 0xf9, 0x9a, 0xfa, 0x33, 0x5c, 0x3c, 0x4d, 0xc2, 0x70, 0xea, 0xd4, 0x70, - 0x41, 0x25, 0x21, 0x01, 0x06, 0x7c, 0xdd, 0xd7, 0x8f, 0xf5, 0x79, 0x01, 0x6f, 0xbc, 0x1e, 0x8d, - 0xce, 0xa6, 0xd7, 0x42, 0x9d, 0x44, 0xe2, 0xa4, 0xef, 0x10, 0x5c, 0x7a, 0x3b, 0x14, 0xa3, 0xf7, - 0xad, 0xec, 0x35, 0xe8, 0x21, 0xff, 0x29, 0x36, 0xe2, 0x92, 0x15, 0x06, 0x7c, 0xc5, 0x88, 0x6b, - 0xa4, 0x4d, 0x0a, 0x0c, 0x78, 0xd1, 0x48, 0xdb, 0x48, 0x87, 0xac, 0x32, 0xe0, 0x05, 0x23, 0x1d, - 0x23, 0x5d, 0x52, 0x64, 0xc0, 0x37, 0x8c, 0x74, 0x8d, 0xec, 0x91, 0x12, 0x03, 0xbe, 0x6a, 0x64, - 0xcf, 0xc8, 0x3e, 0x59, 0x63, 0xc0, 0xff, 0x37, 0xb2, 0x6f, 0xe4, 0x80, 0x94, 0x19, 0x70, 0xc7, - 0xc8, 0x81, 0x91, 0x43, 0xb2, 0xce, 0x80, 0xaf, 0x19, 0x39, 0x74, 0xb6, 0xf0, 0x5a, 0x3e, 0xd9, - 0x2e, 0xc1, 0x0c, 0xf8, 0x66, 0x0f, 0xf9, 0xcb, 0x84, 0xb5, 0x16, 0xa9, 0x30, 0xe0, 0x25, 0x6b, - 0x2d, 0x6b, 0x2e, 0xa9, 0x32, 0xe0, 0x35, 0x6b, 0xae, 0xb5, 0x36, 0xd9, 0x60, 0xc0, 0xcb, 0xd6, - 0xda, 0xd6, 0x3a, 0xe4, 0x3f, 0xbd, 0x03, 0xd6, 0x3a, 0xd6, 0xba, 0x64, 0x93, 0x01, 0xaf, 0x5a, - 0xeb, 0x3a, 0x3b, 0xb8, 0xa2, 0x92, 0xf0, 0x62, 0x2c, 0x94, 0x0a, 0x06, 0x82, 0xd4, 0x18, 0xf0, - 0x8a, 0x8b, 0x1b, 0xfa, 0x4c, 0x64, 0xdb, 0xda, 0x43, 0x3e, 0x56, 0x49, 0x78, 0x9c, 0xbb, 0x57, - 0xc5, 0x38, 0x16, 0x2a, 0xbe, 0x90, 0x91, 0x90, 0xfd, 0xfa, 0x0c, 0xf0, 0xfa, 0xd9, 0x8d, 0x3c, - 0xd1, 0x81, 0xfa, 0xc7, 0x9b, 0xbb, 0x6c, 0xba, 0xdd, 0x21, 0xf5, 0x6c, 0x20, 0xf0, 0x97, 0x09, - 0x6b, 0x5d, 0xf2, 0x3c, 0x1b, 0xc8, 0x58, 0xd7, 0x69, 0xe2, 0xea, 0x2f, 0x03, 0xb9, 0xe4, 0xc5, - 0x6f, 0x13, 0x81, 0x5f, 0xb1, 0x13, 0xb9, 0x5e, 0x11, 0xeb, 0x63, 0xaf, 0x7f, 0xe2, 0x1b, 0x59, - 0xff, 0xb0, 0x82, 0x2b, 0x47, 0x89, 0x8a, 0xe5, 0x38, 0x9b, 0x4a, 0xff, 0xd5, 0x69, 0x3c, 0x19, - 0x46, 0x83, 0xe9, 0x53, 0x1b, 0xc8, 0x5f, 0x26, 0x1c, 0x1f, 0xe3, 0xfc, 0x55, 0x7d, 0xc2, 0xf3, - 0x4e, 0xbc, 0xdd, 0xaf, 0xf3, 0xed, 0x57, 0x7f, 0xbc, 0x41, 0xfa, 0xdb, 0x35, 0x2f, 0xb3, 0x35, - 0x8d, 0xf3, 0x61, 0x14, 0xb7, 0xdc, 0x03, 0xfd, 0x81, 0x6d, 0x15, 0xe7, 0x1c, 0x97, 0x8f, 0x02, - 0x15, 0x67, 0x15, 0x75, 0xeb, 0xab, 0xde, 0xfe, 0x8f, 0xf9, 0x76, 0xfb, 0x2f, 0x15, 0x03, 0x15, - 0xc7, 0xd3, 0x6b, 0xd1, 0x38, 0x9e, 0xea, 0xaa, 0x7b, 0x1d, 0xbd, 0xbc, 0x87, 0x7c, 0x53, 0xca, - 0x71, 0x97, 0xad, 0xbe, 0x0b, 0xc6, 0x82, 0xbc, 0xd4, 0xd7, 0xc5, 0xab, 0xa5, 0xf3, 0xed, 0xea, - 0xf1, 0xd4, 0xe6, 0x6d, 0x2b, 0x3a, 0xf2, 0xca, 0xb8, 0x94, 0xb7, 0xea, 0xbd, 0xb9, 0x5b, 0x50, - 0x34, 0x5b, 0x50, 0xf4, 0x65, 0x41, 0xd1, 0xfd, 0x82, 0xc2, 0xc3, 0x82, 0xc2, 0xe3, 0x82, 0xc2, - 0x6d, 0x4a, 0xe1, 0x63, 0x4a, 0xe1, 0x53, 0x4a, 0xe1, 0x73, 0x4a, 0xe1, 0x2e, 0xa5, 0x68, 0x96, - 0x52, 0x74, 0x9f, 0x52, 0xf8, 0x9e, 0x52, 0xf4, 0x90, 0x52, 0x78, 0x4c, 0x29, 0xba, 0xfd, 0x46, - 0xe1, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x46, 0xe3, 0x69, 0xc1, 0x82, 0x04, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.proto deleted file mode 100644 index a27916a09..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/one.proto +++ /dev/null @@ -1,103 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; - -package one; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = false; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message Subby { - optional string sub = 1; -} - -message AllTypesOneOf { - oneof test_oneof { - double Field1 = 1; - float Field2 = 2; - int32 Field3 = 3; - int64 Field4 = 4; - uint32 Field5 = 5; - uint64 Field6 = 6; - sint32 Field7 = 7; - sint64 Field8 = 8; - fixed32 Field9 = 9; - sfixed32 Field10 = 10; - fixed64 Field11 = 11; - sfixed64 Field12 = 12; - bool Field13 = 13; - string Field14 = 14; - bytes Field15 = 15; - Subby sub_message = 16; - } -} - -message TwoOneofs { - oneof one { - double Field1 = 1; - float Field2 = 2; - int32 Field3 = 3; - } - - oneof two { - string Field34 = 34; - bytes Field35 = 35; - Subby sub_message2 = 36; - } -} - -message CustomOneof { - oneof custom { - string Stringy = 34; - bytes CustomType = 35 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; - uint64 CastType = 36 [(gogoproto.casttype) = "github.com/gogo/protobuf/test/casttype.MyUint64Type"]; - int64 CustomName = 37 [(gogoproto.customname) = "MyCustomName"]; - } -} diff --git a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/onepb_test.go deleted file mode 100644 index 18110e332..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof/combos/unsafeunmarshaler/onepb_test.go +++ /dev/null @@ -1,664 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/one.proto -// DO NOT EDIT! - -/* -Package one is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeunmarshaler/one.proto - -It has these top-level messages: - Subby - AllTypesOneOf - TwoOneofs - CustomOneof -*/ -package one - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestSubbyProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllTypesOneOfProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestTwoOneofsProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestCustomOneofProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestSubbyJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllTypesOneOfJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllTypesOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestTwoOneofsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &TwoOneofs{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestCustomOneofJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &CustomOneof{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestSubbyProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllTypesOneOfProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllTypesOneOfProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTwoOneofsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTwoOneofsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomOneofProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestCustomOneofProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneDescription(t *testing.T) { - OneDescription() -} -func TestSubbyVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllTypesOneOfVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllTypesOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllTypesOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestTwoOneofsVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTwoOneofs(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &TwoOneofs{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestCustomOneofVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomOneof(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &CustomOneof{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllTypesOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllTypesOneOf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestTwoOneofsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTwoOneofs(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestCustomOneofGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomOneof(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestSubbySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestAllTypesOneOfSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllTypesOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestTwoOneofsSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedTwoOneofs(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestCustomOneofSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedCustomOneof(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllTypesOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllTypesOneOf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestTwoOneofsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedTwoOneofs(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestCustomOneofStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedCustomOneof(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go index 1d870cbab..86c759b63 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/one.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -19,15 +18,16 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" +import binary "encoding/binary" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -542,269 +542,276 @@ func init() { proto.RegisterType((*Subby)(nil), "one.Subby") proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf") } -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Subby) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *SampleOneOf) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func OneDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3861 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0xdc, 0x5d, 0xc5, - 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, - 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, - 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0x9a, 0xce, 0x34, 0x71, 0x1d, 0xb7, 0xcd, - 0x4c, 0xeb, 0x34, 0xe9, 0x25, 0xe9, 0x25, 0xcd, 0xf4, 0xa9, 0x2f, 0x69, 0xfd, 0xd4, 0x49, 0xde, - 0xfa, 0x90, 0x07, 0xaf, 0xe2, 0x99, 0xa6, 0xad, 0xdb, 0xba, 0x8d, 0x67, 0x9a, 0x19, 0xbf, 0x64, - 0xfe, 0x1b, 0x00, 0x5e, 0xb4, 0xa0, 0x32, 0xe3, 0xf8, 0x49, 0xc2, 0x39, 0xe7, 0xfb, 0x70, 0x70, - 0xfe, 0xf3, 0x9f, 0x73, 0xf0, 0x13, 0xf0, 0x83, 0x75, 0x38, 0xd7, 0xb1, 0xed, 0x8e, 0x89, 0x56, - 0x7b, 0x8e, 0xed, 0xd9, 0xcd, 0x7e, 0x7b, 0xb5, 0x85, 0x5c, 0xdd, 0x31, 0x7a, 0x9e, 0xed, 0xac, - 0x10, 0x99, 0x94, 0xa7, 0x16, 0x2b, 0xdc, 0x62, 0x69, 0x07, 0xe6, 0xae, 0x1b, 0x26, 0xda, 0xf4, - 0x0d, 0x1b, 0xc8, 0x93, 0xae, 0x40, 0xa2, 0x6d, 0x98, 0x48, 0x16, 0xce, 0xc5, 0x97, 0x33, 0x6b, - 0x8f, 0xaf, 0x0c, 0x81, 0x56, 0x06, 0x11, 0x75, 0x2c, 0x56, 0x08, 0x62, 0xe9, 0x9d, 0x04, 0xcc, - 0x8f, 0xd1, 0x4a, 0x12, 0x24, 0x2c, 0xad, 0x8b, 0x19, 0x85, 0xe5, 0xb4, 0x42, 0xfe, 0x97, 0x64, - 0x98, 0xe9, 0x69, 0xfa, 0x1d, 0xad, 0x83, 0xe4, 0x18, 0x11, 0xf3, 0x4b, 0xa9, 0x00, 0xd0, 0x42, - 0x3d, 0x64, 0xb5, 0x90, 0xa5, 0x1f, 0xca, 0xf1, 0x73, 0xf1, 0xe5, 0xb4, 0x12, 0x92, 0x48, 0xcf, - 0xc0, 0x5c, 0xaf, 0xdf, 0x34, 0x0d, 0x5d, 0x0d, 0x99, 0xc1, 0xb9, 0xf8, 0x72, 0x52, 0x11, 0xa9, - 0x62, 0x33, 0x30, 0x7e, 0x12, 0xf2, 0xf7, 0x90, 0x76, 0x27, 0x6c, 0x9a, 0x21, 0xa6, 0x39, 0x2c, - 0x0e, 0x19, 0x96, 0x21, 0xdb, 0x45, 0xae, 0xab, 0x75, 0x90, 0xea, 0x1d, 0xf6, 0x90, 0x9c, 0x20, - 0x4f, 0x7f, 0x6e, 0xe4, 0xe9, 0x87, 0x9f, 0x3c, 0xc3, 0x50, 0x7b, 0x87, 0x3d, 0x24, 0x95, 0x20, - 0x8d, 0xac, 0x7e, 0x97, 0x32, 0x24, 0x8f, 0x89, 0x5f, 0xc5, 0xea, 0x77, 0x87, 0x59, 0x52, 0x18, - 0xc6, 0x28, 0x66, 0x5c, 0xe4, 0xdc, 0x35, 0x74, 0x24, 0x4f, 0x13, 0x82, 0x27, 0x47, 0x08, 0x1a, - 0x54, 0x3f, 0xcc, 0xc1, 0x71, 0x52, 0x19, 0xd2, 0xe8, 0x65, 0x0f, 0x59, 0xae, 0x61, 0x5b, 0xf2, - 0x0c, 0x21, 0x79, 0x62, 0xcc, 0x2a, 0x22, 0xb3, 0x35, 0x4c, 0x11, 0xe0, 0xa4, 0x4b, 0x30, 0x63, - 0xf7, 0x3c, 0xc3, 0xb6, 0x5c, 0x39, 0x75, 0x4e, 0x58, 0xce, 0xac, 0x7d, 0x6c, 0x6c, 0x22, 0xd4, - 0xa8, 0x8d, 0xc2, 0x8d, 0xa5, 0x2a, 0x88, 0xae, 0xdd, 0x77, 0x74, 0xa4, 0xea, 0x76, 0x0b, 0xa9, - 0x86, 0xd5, 0xb6, 0xe5, 0x34, 0x21, 0x38, 0x3b, 0xfa, 0x20, 0xc4, 0xb0, 0x6c, 0xb7, 0x50, 0xd5, - 0x6a, 0xdb, 0x4a, 0xce, 0x1d, 0xb8, 0x96, 0x4e, 0xc1, 0xb4, 0x7b, 0x68, 0x79, 0xda, 0xcb, 0x72, - 0x96, 0x64, 0x08, 0xbb, 0x5a, 0xfa, 0xff, 0x24, 0xe4, 0x27, 0x49, 0xb1, 0x6b, 0x90, 0x6c, 0xe3, - 0xa7, 0x94, 0x63, 0x27, 0x89, 0x01, 0xc5, 0x0c, 0x06, 0x71, 0xfa, 0xa7, 0x0c, 0x62, 0x09, 0x32, - 0x16, 0x72, 0x3d, 0xd4, 0xa2, 0x19, 0x11, 0x9f, 0x30, 0xa7, 0x80, 0x82, 0x46, 0x53, 0x2a, 0xf1, - 0x53, 0xa5, 0xd4, 0x2d, 0xc8, 0xfb, 0x2e, 0xa9, 0x8e, 0x66, 0x75, 0x78, 0x6e, 0xae, 0x46, 0x79, - 0xb2, 0x52, 0xe1, 0x38, 0x05, 0xc3, 0x94, 0x1c, 0x1a, 0xb8, 0x96, 0x36, 0x01, 0x6c, 0x0b, 0xd9, - 0x6d, 0xb5, 0x85, 0x74, 0x53, 0x4e, 0x1d, 0x13, 0xa5, 0x1a, 0x36, 0x19, 0x89, 0x92, 0x4d, 0xa5, - 0xba, 0x29, 0x5d, 0x0d, 0x52, 0x6d, 0xe6, 0x98, 0x4c, 0xd9, 0xa1, 0x9b, 0x6c, 0x24, 0xdb, 0xf6, - 0x21, 0xe7, 0x20, 0x9c, 0xf7, 0xa8, 0xc5, 0x9e, 0x2c, 0x4d, 0x9c, 0x58, 0x89, 0x7c, 0x32, 0x85, - 0xc1, 0xe8, 0x83, 0xcd, 0x3a, 0xe1, 0x4b, 0xe9, 0xe3, 0xe0, 0x0b, 0x54, 0x92, 0x56, 0x40, 0xaa, - 0x50, 0x96, 0x0b, 0x77, 0xb5, 0x2e, 0x5a, 0xbc, 0x02, 0xb9, 0xc1, 0xf0, 0x48, 0x0b, 0x90, 0x74, - 0x3d, 0xcd, 0xf1, 0x48, 0x16, 0x26, 0x15, 0x7a, 0x21, 0x89, 0x10, 0x47, 0x56, 0x8b, 0x54, 0xb9, - 0xa4, 0x82, 0xff, 0x5d, 0xbc, 0x0c, 0xb3, 0x03, 0xb7, 0x9f, 0x14, 0xb8, 0xf4, 0xc5, 0x69, 0x58, - 0x18, 0x97, 0x73, 0x63, 0xd3, 0xff, 0x14, 0x4c, 0x5b, 0xfd, 0x6e, 0x13, 0x39, 0x72, 0x9c, 0x30, - 0xb0, 0x2b, 0xa9, 0x04, 0x49, 0x53, 0x6b, 0x22, 0x53, 0x4e, 0x9c, 0x13, 0x96, 0x73, 0x6b, 0xcf, - 0x4c, 0x94, 0xd5, 0x2b, 0xdb, 0x18, 0xa2, 0x50, 0xa4, 0xf4, 0x29, 0x48, 0xb0, 0x12, 0x87, 0x19, - 0x9e, 0x9e, 0x8c, 0x01, 0xe7, 0xa2, 0x42, 0x70, 0xd2, 0xa3, 0x90, 0xc6, 0x7f, 0x69, 0x6c, 0xa7, - 0x89, 0xcf, 0x29, 0x2c, 0xc0, 0x71, 0x95, 0x16, 0x21, 0x45, 0xd2, 0xac, 0x85, 0x78, 0x6b, 0xf0, - 0xaf, 0xf1, 0xc2, 0xb4, 0x50, 0x5b, 0xeb, 0x9b, 0x9e, 0x7a, 0x57, 0x33, 0xfb, 0x88, 0x24, 0x4c, - 0x5a, 0xc9, 0x32, 0xe1, 0x67, 0xb0, 0x4c, 0x3a, 0x0b, 0x19, 0x9a, 0x95, 0x86, 0xd5, 0x42, 0x2f, - 0x93, 0xea, 0x93, 0x54, 0x68, 0xa2, 0x56, 0xb1, 0x04, 0xdf, 0xfe, 0xb6, 0x6b, 0x5b, 0x7c, 0x69, - 0xc9, 0x2d, 0xb0, 0x80, 0xdc, 0xfe, 0xf2, 0x70, 0xe1, 0x7b, 0x6c, 0xfc, 0xe3, 0x0d, 0xe7, 0xe2, - 0xd2, 0xb7, 0x62, 0x90, 0x20, 0xfb, 0x2d, 0x0f, 0x99, 0xbd, 0x97, 0xea, 0x15, 0x75, 0xb3, 0xb6, - 0xbf, 0xb1, 0x5d, 0x11, 0x05, 0x29, 0x07, 0x40, 0x04, 0xd7, 0xb7, 0x6b, 0xa5, 0x3d, 0x31, 0xe6, - 0x5f, 0x57, 0x77, 0xf7, 0x2e, 0x5d, 0x14, 0xe3, 0x3e, 0x60, 0x9f, 0x0a, 0x12, 0x61, 0x83, 0x0b, - 0x6b, 0x62, 0x52, 0x12, 0x21, 0x4b, 0x09, 0xaa, 0xb7, 0x2a, 0x9b, 0x97, 0x2e, 0x8a, 0xd3, 0x83, - 0x92, 0x0b, 0x6b, 0xe2, 0x8c, 0x34, 0x0b, 0x69, 0x22, 0xd9, 0xa8, 0xd5, 0xb6, 0xc5, 0x94, 0xcf, - 0xd9, 0xd8, 0x53, 0xaa, 0xbb, 0x5b, 0x62, 0xda, 0xe7, 0xdc, 0x52, 0x6a, 0xfb, 0x75, 0x11, 0x7c, - 0x86, 0x9d, 0x4a, 0xa3, 0x51, 0xda, 0xaa, 0x88, 0x19, 0xdf, 0x62, 0xe3, 0xa5, 0xbd, 0x4a, 0x43, - 0xcc, 0x0e, 0xb8, 0x75, 0x61, 0x4d, 0x9c, 0xf5, 0x6f, 0x51, 0xd9, 0xdd, 0xdf, 0x11, 0x73, 0xd2, - 0x1c, 0xcc, 0xd2, 0x5b, 0x70, 0x27, 0xf2, 0x43, 0xa2, 0x4b, 0x17, 0x45, 0x31, 0x70, 0x84, 0xb2, - 0xcc, 0x0d, 0x08, 0x2e, 0x5d, 0x14, 0xa5, 0xa5, 0x32, 0x24, 0x49, 0x76, 0x49, 0x12, 0xe4, 0xb6, - 0x4b, 0x1b, 0x95, 0x6d, 0xb5, 0x56, 0xdf, 0xab, 0xd6, 0x76, 0x4b, 0xdb, 0xa2, 0x10, 0xc8, 0x94, - 0xca, 0xa7, 0xf7, 0xab, 0x4a, 0x65, 0x53, 0x8c, 0x85, 0x65, 0xf5, 0x4a, 0x69, 0xaf, 0xb2, 0x29, - 0xc6, 0x97, 0x74, 0x58, 0x18, 0x57, 0x67, 0xc6, 0xee, 0x8c, 0xd0, 0x12, 0xc7, 0x8e, 0x59, 0x62, - 0xc2, 0x35, 0xb2, 0xc4, 0x5f, 0x11, 0x60, 0x7e, 0x4c, 0xad, 0x1d, 0x7b, 0x93, 0x17, 0x20, 0x49, - 0x53, 0x94, 0x76, 0x9f, 0xa7, 0xc6, 0x16, 0x6d, 0x92, 0xb0, 0x23, 0x1d, 0x88, 0xe0, 0xc2, 0x1d, - 0x38, 0x7e, 0x4c, 0x07, 0xc6, 0x14, 0x23, 0x4e, 0xbe, 0x2a, 0x80, 0x7c, 0x1c, 0x77, 0x44, 0xa1, - 0x88, 0x0d, 0x14, 0x8a, 0x6b, 0xc3, 0x0e, 0x9c, 0x3f, 0xfe, 0x19, 0x46, 0xbc, 0x78, 0x53, 0x80, - 0x53, 0xe3, 0x07, 0x95, 0xb1, 0x3e, 0x7c, 0x0a, 0xa6, 0xbb, 0xc8, 0x3b, 0xb0, 0x79, 0xb3, 0xfe, - 0xc4, 0x98, 0x16, 0x80, 0xd5, 0xc3, 0xb1, 0x62, 0xa8, 0x70, 0x0f, 0x89, 0x1f, 0x37, 0x6d, 0x50, - 0x6f, 0x46, 0x3c, 0xfd, 0x7c, 0x0c, 0x1e, 0x19, 0x4b, 0x3e, 0xd6, 0xd1, 0xc7, 0x00, 0x0c, 0xab, - 0xd7, 0xf7, 0x68, 0x43, 0xa6, 0xf5, 0x29, 0x4d, 0x24, 0x64, 0xef, 0xe3, 0xda, 0xd3, 0xf7, 0x7c, - 0x7d, 0x9c, 0xe8, 0x81, 0x8a, 0x88, 0xc1, 0x95, 0xc0, 0xd1, 0x04, 0x71, 0xb4, 0x70, 0xcc, 0x93, - 0x8e, 0xf4, 0xba, 0xe7, 0x40, 0xd4, 0x4d, 0x03, 0x59, 0x9e, 0xea, 0x7a, 0x0e, 0xd2, 0xba, 0x86, - 0xd5, 0x21, 0x05, 0x38, 0x55, 0x4c, 0xb6, 0x35, 0xd3, 0x45, 0x4a, 0x9e, 0xaa, 0x1b, 0x5c, 0x8b, - 0x11, 0xa4, 0xcb, 0x38, 0x21, 0xc4, 0xf4, 0x00, 0x82, 0xaa, 0x7d, 0xc4, 0xd2, 0xd7, 0x67, 0x20, - 0x13, 0x1a, 0xeb, 0xa4, 0xf3, 0x90, 0xbd, 0xad, 0xdd, 0xd5, 0x54, 0x3e, 0xaa, 0xd3, 0x48, 0x64, - 0xb0, 0xac, 0xce, 0xc6, 0xf5, 0xe7, 0x60, 0x81, 0x98, 0xd8, 0x7d, 0x0f, 0x39, 0xaa, 0x6e, 0x6a, - 0xae, 0x4b, 0x82, 0x96, 0x22, 0xa6, 0x12, 0xd6, 0xd5, 0xb0, 0xaa, 0xcc, 0x35, 0xd2, 0x3a, 0xcc, - 0x13, 0x44, 0xb7, 0x6f, 0x7a, 0x46, 0xcf, 0x44, 0x2a, 0x7e, 0x79, 0x70, 0x49, 0x21, 0xf6, 0x3d, - 0x9b, 0xc3, 0x16, 0x3b, 0xcc, 0x00, 0x7b, 0xe4, 0x4a, 0x9b, 0xf0, 0x18, 0x81, 0x75, 0x90, 0x85, - 0x1c, 0xcd, 0x43, 0x2a, 0xfa, 0x5c, 0x5f, 0x33, 0x5d, 0x55, 0xb3, 0x5a, 0xea, 0x81, 0xe6, 0x1e, - 0xc8, 0x0b, 0x98, 0x60, 0x23, 0x26, 0x0b, 0xca, 0x19, 0x6c, 0xb8, 0xc5, 0xec, 0x2a, 0xc4, 0xac, - 0x64, 0xb5, 0x6e, 0x68, 0xee, 0x81, 0x54, 0x84, 0x53, 0x84, 0xc5, 0xf5, 0x1c, 0xc3, 0xea, 0xa8, - 0xfa, 0x01, 0xd2, 0xef, 0xa8, 0x7d, 0xaf, 0x7d, 0x45, 0x7e, 0x34, 0x7c, 0x7f, 0xe2, 0x61, 0x83, - 0xd8, 0x94, 0xb1, 0xc9, 0xbe, 0xd7, 0xbe, 0x22, 0x35, 0x20, 0x8b, 0x17, 0xa3, 0x6b, 0xbc, 0x82, - 0xd4, 0xb6, 0xed, 0x90, 0xce, 0x92, 0x1b, 0xb3, 0xb3, 0x43, 0x11, 0x5c, 0xa9, 0x31, 0xc0, 0x8e, - 0xdd, 0x42, 0xc5, 0x64, 0xa3, 0x5e, 0xa9, 0x6c, 0x2a, 0x19, 0xce, 0x72, 0xdd, 0x76, 0x70, 0x42, - 0x75, 0x6c, 0x3f, 0xc0, 0x19, 0x9a, 0x50, 0x1d, 0x9b, 0x87, 0x77, 0x1d, 0xe6, 0x75, 0x9d, 0x3e, - 0xb3, 0xa1, 0xab, 0x6c, 0xc4, 0x77, 0x65, 0x71, 0x20, 0x58, 0xba, 0xbe, 0x45, 0x0d, 0x58, 0x8e, - 0xbb, 0xd2, 0x55, 0x78, 0x24, 0x08, 0x56, 0x18, 0x38, 0x37, 0xf2, 0x94, 0xc3, 0xd0, 0x75, 0x98, - 0xef, 0x1d, 0x8e, 0x02, 0xa5, 0x81, 0x3b, 0xf6, 0x0e, 0x87, 0x61, 0x4f, 0x90, 0xd7, 0x36, 0x07, - 0xe9, 0x9a, 0x87, 0x5a, 0xf2, 0xe9, 0xb0, 0x75, 0x48, 0x21, 0xad, 0x82, 0xa8, 0xeb, 0x2a, 0xb2, - 0xb4, 0xa6, 0x89, 0x54, 0xcd, 0x41, 0x96, 0xe6, 0xca, 0x67, 0xc3, 0xc6, 0x39, 0x5d, 0xaf, 0x10, - 0x6d, 0x89, 0x28, 0xa5, 0xa7, 0x61, 0xce, 0x6e, 0xde, 0xd6, 0x69, 0x66, 0xa9, 0x3d, 0x07, 0xb5, - 0x8d, 0x97, 0xe5, 0xc7, 0x49, 0x98, 0xf2, 0x58, 0x41, 0xf2, 0xaa, 0x4e, 0xc4, 0xd2, 0x53, 0x20, - 0xea, 0xee, 0x81, 0xe6, 0xf4, 0x48, 0x6b, 0x77, 0x7b, 0x9a, 0x8e, 0xe4, 0x27, 0xa8, 0x29, 0x95, - 0xef, 0x72, 0x31, 0xce, 0x6c, 0xf7, 0x9e, 0xd1, 0xf6, 0x38, 0xe3, 0x93, 0x34, 0xb3, 0x89, 0x8c, - 0xb1, 0xdd, 0x82, 0x85, 0xbe, 0x65, 0x58, 0x1e, 0x72, 0x7a, 0x0e, 0xc2, 0x43, 0x3c, 0xdd, 0x89, - 0xf2, 0xbf, 0xcd, 0x1c, 0x33, 0x86, 0xef, 0x87, 0xad, 0x69, 0x02, 0x28, 0xf3, 0xfd, 0x51, 0xe1, - 0x52, 0x11, 0xb2, 0xe1, 0xbc, 0x90, 0xd2, 0x40, 0x33, 0x43, 0x14, 0x70, 0x8f, 0x2d, 0xd7, 0x36, - 0x71, 0x77, 0xfc, 0x6c, 0x45, 0x8c, 0xe1, 0x2e, 0xbd, 0x5d, 0xdd, 0xab, 0xa8, 0xca, 0xfe, 0xee, - 0x5e, 0x75, 0xa7, 0x22, 0xc6, 0x9f, 0x4e, 0xa7, 0x7e, 0x38, 0x23, 0xde, 0xbf, 0x7f, 0xff, 0x7e, - 0x6c, 0xe9, 0x3b, 0x31, 0xc8, 0x0d, 0x4e, 0xc6, 0xd2, 0xcf, 0xc3, 0x69, 0xfe, 0x1a, 0xeb, 0x22, - 0x4f, 0xbd, 0x67, 0x38, 0x24, 0x55, 0xbb, 0x1a, 0x9d, 0x2d, 0xfd, 0x28, 0x2f, 0x30, 0xab, 0x06, - 0xf2, 0x5e, 0x34, 0x1c, 0x9c, 0x88, 0x5d, 0xcd, 0x93, 0xb6, 0xe1, 0xac, 0x65, 0xab, 0xae, 0xa7, - 0x59, 0x2d, 0xcd, 0x69, 0xa9, 0xc1, 0x01, 0x82, 0xaa, 0xe9, 0x3a, 0x72, 0x5d, 0x9b, 0xb6, 0x08, - 0x9f, 0xe5, 0x63, 0x96, 0xdd, 0x60, 0xc6, 0x41, 0xed, 0x2c, 0x31, 0xd3, 0xa1, 0x8c, 0x88, 0x1f, - 0x97, 0x11, 0x8f, 0x42, 0xba, 0xab, 0xf5, 0x54, 0x64, 0x79, 0xce, 0x21, 0x99, 0xe7, 0x52, 0x4a, - 0xaa, 0xab, 0xf5, 0x2a, 0xf8, 0xfa, 0xc3, 0x5b, 0x83, 0x70, 0x1c, 0xbf, 0x1f, 0x87, 0x6c, 0x78, - 0xa6, 0xc3, 0x23, 0xb2, 0x4e, 0xea, 0xb7, 0x40, 0x76, 0xf8, 0xc7, 0x1f, 0x3a, 0x01, 0xae, 0x94, - 0x71, 0x61, 0x2f, 0x4e, 0xd3, 0x49, 0x4b, 0xa1, 0x48, 0xdc, 0x54, 0xf1, 0x9e, 0x46, 0x74, 0x7e, - 0x4f, 0x29, 0xec, 0x4a, 0xda, 0x82, 0xe9, 0xdb, 0x2e, 0xe1, 0x9e, 0x26, 0xdc, 0x8f, 0x3f, 0x9c, - 0xfb, 0x66, 0x83, 0x90, 0xa7, 0x6f, 0x36, 0xd4, 0xdd, 0x9a, 0xb2, 0x53, 0xda, 0x56, 0x18, 0x5c, - 0x3a, 0x03, 0x09, 0x53, 0x7b, 0xe5, 0x70, 0xb0, 0x05, 0x10, 0xd1, 0xa4, 0x81, 0x3f, 0x03, 0x89, - 0x7b, 0x48, 0xbb, 0x33, 0x58, 0x78, 0x89, 0xe8, 0x43, 0x4c, 0xfd, 0x55, 0x48, 0x92, 0x78, 0x49, - 0x00, 0x2c, 0x62, 0xe2, 0x94, 0x94, 0x82, 0x44, 0xb9, 0xa6, 0xe0, 0xf4, 0x17, 0x21, 0x4b, 0xa5, - 0x6a, 0xbd, 0x5a, 0x29, 0x57, 0xc4, 0xd8, 0xd2, 0x3a, 0x4c, 0xd3, 0x20, 0xe0, 0xad, 0xe1, 0x87, - 0x41, 0x9c, 0x62, 0x97, 0x8c, 0x43, 0xe0, 0xda, 0xfd, 0x9d, 0x8d, 0x8a, 0x22, 0xc6, 0xc2, 0xcb, - 0xeb, 0x42, 0x36, 0x3c, 0xce, 0xfd, 0x6c, 0x72, 0xea, 0x1f, 0x04, 0xc8, 0x84, 0xc6, 0x33, 0x3c, - 0x18, 0x68, 0xa6, 0x69, 0xdf, 0x53, 0x35, 0xd3, 0xd0, 0x5c, 0x96, 0x14, 0x40, 0x44, 0x25, 0x2c, - 0x99, 0x74, 0xd1, 0x7e, 0x26, 0xce, 0xbf, 0x21, 0x80, 0x38, 0x3c, 0xda, 0x0d, 0x39, 0x28, 0x7c, - 0xa4, 0x0e, 0xbe, 0x2e, 0x40, 0x6e, 0x70, 0x9e, 0x1b, 0x72, 0xef, 0xfc, 0x47, 0xea, 0xde, 0xdb, - 0x31, 0x98, 0x1d, 0x98, 0xe2, 0x26, 0xf5, 0xee, 0x73, 0x30, 0x67, 0xb4, 0x50, 0xb7, 0x67, 0x7b, - 0xc8, 0xd2, 0x0f, 0x55, 0x13, 0xdd, 0x45, 0xa6, 0xbc, 0x44, 0x0a, 0xc5, 0xea, 0xc3, 0xe7, 0xc4, - 0x95, 0x6a, 0x80, 0xdb, 0xc6, 0xb0, 0xe2, 0x7c, 0x75, 0xb3, 0xb2, 0x53, 0xaf, 0xed, 0x55, 0x76, - 0xcb, 0x2f, 0xa9, 0xfb, 0xbb, 0xbf, 0xb0, 0x5b, 0x7b, 0x71, 0x57, 0x11, 0x8d, 0x21, 0xb3, 0x0f, - 0x71, 0xab, 0xd7, 0x41, 0x1c, 0x76, 0x4a, 0x3a, 0x0d, 0xe3, 0xdc, 0x12, 0xa7, 0xa4, 0x79, 0xc8, - 0xef, 0xd6, 0xd4, 0x46, 0x75, 0xb3, 0xa2, 0x56, 0xae, 0x5f, 0xaf, 0x94, 0xf7, 0x1a, 0xf4, 0xc5, - 0xd9, 0xb7, 0xde, 0x1b, 0xdc, 0xd4, 0xaf, 0xc5, 0x61, 0x7e, 0x8c, 0x27, 0x52, 0x89, 0xcd, 0xec, - 0xf4, 0x35, 0xe2, 0xd9, 0x49, 0xbc, 0x5f, 0xc1, 0x53, 0x41, 0x5d, 0x73, 0x3c, 0x36, 0xe2, 0x3f, - 0x05, 0x38, 0x4a, 0x96, 0x67, 0xb4, 0x0d, 0xe4, 0xb0, 0x73, 0x06, 0x3a, 0xc8, 0xe7, 0x03, 0x39, - 0x3d, 0x6a, 0xf8, 0x39, 0x90, 0x7a, 0xb6, 0x6b, 0x78, 0xc6, 0x5d, 0xa4, 0x1a, 0x16, 0x3f, 0x94, - 0xc0, 0x83, 0x7d, 0x42, 0x11, 0xb9, 0xa6, 0x6a, 0x79, 0xbe, 0xb5, 0x85, 0x3a, 0xda, 0x90, 0x35, - 0x2e, 0xe0, 0x71, 0x45, 0xe4, 0x1a, 0xdf, 0xfa, 0x3c, 0x64, 0x5b, 0x76, 0x1f, 0x8f, 0x49, 0xd4, - 0x0e, 0xf7, 0x0b, 0x41, 0xc9, 0x50, 0x99, 0x6f, 0xc2, 0xe6, 0xd8, 0xe0, 0x34, 0x24, 0xab, 0x64, - 0xa8, 0x8c, 0x9a, 0x3c, 0x09, 0x79, 0xad, 0xd3, 0x71, 0x30, 0x39, 0x27, 0xa2, 0x93, 0x79, 0xce, - 0x17, 0x13, 0xc3, 0xc5, 0x9b, 0x90, 0xe2, 0x71, 0xc0, 0x2d, 0x19, 0x47, 0x42, 0xed, 0xd1, 0x33, - 0xa9, 0xd8, 0x72, 0x5a, 0x49, 0x59, 0x5c, 0x79, 0x1e, 0xb2, 0x86, 0xab, 0x06, 0x87, 0xa3, 0xb1, - 0x73, 0xb1, 0xe5, 0x94, 0x92, 0x31, 0x5c, 0xff, 0x34, 0x6c, 0xe9, 0xcd, 0x18, 0xe4, 0x06, 0x0f, - 0x77, 0xa5, 0x4d, 0x48, 0x99, 0xb6, 0xae, 0x91, 0xd4, 0xa2, 0xbf, 0x2c, 0x2c, 0x47, 0x9c, 0x07, - 0xaf, 0x6c, 0x33, 0x7b, 0xc5, 0x47, 0x2e, 0xfe, 0x8b, 0x00, 0x29, 0x2e, 0x96, 0x4e, 0x41, 0xa2, - 0xa7, 0x79, 0x07, 0x84, 0x2e, 0xb9, 0x11, 0x13, 0x05, 0x85, 0x5c, 0x63, 0xb9, 0xdb, 0xd3, 0x2c, - 0x92, 0x02, 0x4c, 0x8e, 0xaf, 0xf1, 0xba, 0x9a, 0x48, 0x6b, 0x91, 0xb1, 0xdf, 0xee, 0x76, 0x91, - 0xe5, 0xb9, 0x7c, 0x5d, 0x99, 0xbc, 0xcc, 0xc4, 0xd2, 0x33, 0x30, 0xe7, 0x39, 0x9a, 0x61, 0x0e, - 0xd8, 0x26, 0x88, 0xad, 0xc8, 0x15, 0xbe, 0x71, 0x11, 0xce, 0x70, 0xde, 0x16, 0xf2, 0x34, 0xfd, - 0x00, 0xb5, 0x02, 0xd0, 0x34, 0x39, 0x39, 0x3c, 0xcd, 0x0c, 0x36, 0x99, 0x9e, 0x63, 0x97, 0xbe, - 0x27, 0xc0, 0x1c, 0x7f, 0x51, 0x69, 0xf9, 0xc1, 0xda, 0x01, 0xd0, 0x2c, 0xcb, 0xf6, 0xc2, 0xe1, - 0x1a, 0x4d, 0xe5, 0x11, 0xdc, 0x4a, 0xc9, 0x07, 0x29, 0x21, 0x82, 0xc5, 0x2e, 0x40, 0xa0, 0x39, - 0x36, 0x6c, 0x67, 0x21, 0xc3, 0x4e, 0xee, 0xc9, 0xcf, 0x3f, 0xf4, 0xd5, 0x16, 0xa8, 0x08, 0xbf, - 0xd1, 0x48, 0x0b, 0x90, 0x6c, 0xa2, 0x8e, 0x61, 0xb1, 0xf3, 0x44, 0x7a, 0xc1, 0x4f, 0x29, 0x13, - 0xfe, 0x29, 0xe5, 0xc6, 0x2d, 0x98, 0xd7, 0xed, 0xee, 0xb0, 0xbb, 0x1b, 0xe2, 0xd0, 0xeb, 0xb5, - 0x7b, 0x43, 0xf8, 0x2c, 0x04, 0x23, 0xe6, 0x57, 0x62, 0xf1, 0xad, 0xfa, 0xc6, 0xd7, 0x62, 0x8b, - 0x5b, 0x14, 0x57, 0xe7, 0x8f, 0xa9, 0xa0, 0xb6, 0x89, 0x74, 0xec, 0x3a, 0xfc, 0xe8, 0x13, 0xf0, - 0x6c, 0xc7, 0xf0, 0x0e, 0xfa, 0xcd, 0x15, 0xdd, 0xee, 0xae, 0x76, 0xec, 0x8e, 0x1d, 0xfc, 0xdc, - 0x85, 0xaf, 0xc8, 0x05, 0xf9, 0x8f, 0xfd, 0xe4, 0x95, 0xf6, 0xa5, 0x8b, 0x91, 0xbf, 0x8f, 0x15, - 0x77, 0x61, 0x9e, 0x19, 0xab, 0xe4, 0xcc, 0x9d, 0xbe, 0x1a, 0x48, 0x0f, 0x3d, 0x77, 0x91, 0xbf, - 0xf9, 0x0e, 0xe9, 0xd5, 0xca, 0x1c, 0x83, 0x62, 0x1d, 0x7d, 0x81, 0x28, 0x2a, 0xf0, 0xc8, 0x00, - 0x1f, 0xdd, 0x97, 0xc8, 0x89, 0x60, 0xfc, 0x0e, 0x63, 0x9c, 0x0f, 0x31, 0x36, 0x18, 0xb4, 0x58, - 0x86, 0xd9, 0x93, 0x70, 0xfd, 0x13, 0xe3, 0xca, 0xa2, 0x30, 0xc9, 0x16, 0xe4, 0x09, 0x89, 0xde, - 0x77, 0x3d, 0xbb, 0x4b, 0x8a, 0xde, 0xc3, 0x69, 0xfe, 0xf9, 0x1d, 0xba, 0x51, 0x72, 0x18, 0x56, - 0xf6, 0x51, 0xc5, 0x22, 0x90, 0x9f, 0x19, 0x5a, 0x48, 0x37, 0x23, 0x18, 0xde, 0x62, 0x8e, 0xf8, - 0xf6, 0xc5, 0xcf, 0xc0, 0x02, 0xfe, 0x9f, 0xd4, 0xa4, 0xb0, 0x27, 0xd1, 0xa7, 0x4c, 0xf2, 0xf7, - 0x5e, 0xa5, 0x7b, 0x71, 0xde, 0x27, 0x08, 0xf9, 0x14, 0x5a, 0xc5, 0x0e, 0xf2, 0x3c, 0xe4, 0xb8, - 0xaa, 0x66, 0x8e, 0x73, 0x2f, 0xf4, 0x9a, 0x2e, 0x7f, 0xe9, 0xdd, 0xc1, 0x55, 0xdc, 0xa2, 0xc8, - 0x92, 0x69, 0x16, 0xf7, 0xe1, 0xf4, 0x98, 0xac, 0x98, 0x80, 0xf3, 0x35, 0xc6, 0xb9, 0x30, 0x92, - 0x19, 0x98, 0xb6, 0x0e, 0x5c, 0xee, 0xaf, 0xe5, 0x04, 0x9c, 0x7f, 0xc0, 0x38, 0x25, 0x86, 0xe5, - 0x4b, 0x8a, 0x19, 0x6f, 0xc2, 0xdc, 0x5d, 0xe4, 0x34, 0x6d, 0x97, 0x1d, 0x8d, 0x4c, 0x40, 0xf7, - 0x3a, 0xa3, 0xcb, 0x33, 0x20, 0x39, 0x2b, 0xc1, 0x5c, 0x57, 0x21, 0xd5, 0xd6, 0x74, 0x34, 0x01, - 0xc5, 0x97, 0x19, 0xc5, 0x0c, 0xb6, 0xc7, 0xd0, 0x12, 0x64, 0x3b, 0x36, 0x6b, 0x4b, 0xd1, 0xf0, - 0x37, 0x18, 0x3c, 0xc3, 0x31, 0x8c, 0xa2, 0x67, 0xf7, 0xfa, 0x26, 0xee, 0x59, 0xd1, 0x14, 0x7f, - 0xc8, 0x29, 0x38, 0x86, 0x51, 0x9c, 0x20, 0xac, 0x7f, 0xc4, 0x29, 0xdc, 0x50, 0x3c, 0x5f, 0x80, - 0x8c, 0x6d, 0x99, 0x87, 0xb6, 0x35, 0x89, 0x13, 0x7f, 0xcc, 0x18, 0x80, 0x41, 0x30, 0xc1, 0x35, - 0x48, 0x4f, 0xba, 0x10, 0x7f, 0xf2, 0x2e, 0xdf, 0x1e, 0x7c, 0x05, 0xb6, 0x20, 0xcf, 0x0b, 0x94, - 0x61, 0x5b, 0x13, 0x50, 0xfc, 0x29, 0xa3, 0xc8, 0x85, 0x60, 0xec, 0x31, 0x3c, 0xe4, 0x7a, 0x1d, - 0x34, 0x09, 0xc9, 0x9b, 0xfc, 0x31, 0x18, 0x84, 0x85, 0xb2, 0x89, 0x2c, 0xfd, 0x60, 0x32, 0x86, - 0xaf, 0xf2, 0x50, 0x72, 0x0c, 0xa6, 0x28, 0xc3, 0x6c, 0x57, 0x73, 0xdc, 0x03, 0xcd, 0x9c, 0x68, - 0x39, 0xfe, 0x8c, 0x71, 0x64, 0x7d, 0x10, 0x8b, 0x48, 0xdf, 0x3a, 0x09, 0xcd, 0xd7, 0x78, 0x44, - 0x42, 0x30, 0xb6, 0xf5, 0x5c, 0x8f, 0x1c, 0x40, 0x9d, 0x84, 0xed, 0xeb, 0x7c, 0xeb, 0x51, 0xec, - 0x4e, 0x98, 0xf1, 0x1a, 0xa4, 0x5d, 0xe3, 0x95, 0x89, 0x68, 0xfe, 0x9c, 0xaf, 0x34, 0x01, 0x60, - 0xf0, 0x4b, 0x70, 0x66, 0x6c, 0x9b, 0x98, 0x80, 0xec, 0x2f, 0x18, 0xd9, 0xa9, 0x31, 0xad, 0x82, - 0x95, 0x84, 0x93, 0x52, 0xfe, 0x25, 0x2f, 0x09, 0x68, 0x88, 0xab, 0x8e, 0x5f, 0x14, 0x5c, 0xad, - 0x7d, 0xb2, 0xa8, 0xfd, 0x15, 0x8f, 0x1a, 0xc5, 0x0e, 0x44, 0x6d, 0x0f, 0x4e, 0x31, 0xc6, 0x93, - 0xad, 0xeb, 0x37, 0x78, 0x61, 0xa5, 0xe8, 0xfd, 0xc1, 0xd5, 0xfd, 0x45, 0x58, 0xf4, 0xc3, 0xc9, - 0x27, 0x52, 0x57, 0xed, 0x6a, 0xbd, 0x09, 0x98, 0xbf, 0xc9, 0x98, 0x79, 0xc5, 0xf7, 0x47, 0x5a, - 0x77, 0x47, 0xeb, 0x61, 0xf2, 0x5b, 0x20, 0x73, 0xf2, 0xbe, 0xe5, 0x20, 0xdd, 0xee, 0x58, 0xc6, - 0x2b, 0xa8, 0x35, 0x01, 0xf5, 0x5f, 0x0f, 0x2d, 0xd5, 0x7e, 0x08, 0x8e, 0x99, 0xab, 0x20, 0xfa, - 0xb3, 0x8a, 0x6a, 0x74, 0x7b, 0xb6, 0xe3, 0x45, 0x30, 0xfe, 0x0d, 0x5f, 0x29, 0x1f, 0x57, 0x25, - 0xb0, 0x62, 0x05, 0x72, 0xe4, 0x72, 0xd2, 0x94, 0xfc, 0x5b, 0x46, 0x34, 0x1b, 0xa0, 0x58, 0xe1, - 0xd0, 0xed, 0x6e, 0x4f, 0x73, 0x26, 0xa9, 0x7f, 0x7f, 0xc7, 0x0b, 0x07, 0x83, 0xb0, 0xc2, 0xe1, - 0x1d, 0xf6, 0x10, 0xee, 0xf6, 0x13, 0x30, 0x7c, 0x8b, 0x17, 0x0e, 0x8e, 0x61, 0x14, 0x7c, 0x60, - 0x98, 0x80, 0xe2, 0xef, 0x39, 0x05, 0xc7, 0x60, 0x8a, 0x4f, 0x07, 0x8d, 0xd6, 0x41, 0x1d, 0xc3, - 0xf5, 0x1c, 0x3a, 0x07, 0x3f, 0x9c, 0xea, 0xdb, 0xef, 0x0e, 0x0e, 0x61, 0x4a, 0x08, 0x5a, 0xbc, - 0x09, 0xf9, 0xa1, 0x11, 0x43, 0x8a, 0xfa, 0x66, 0x41, 0xfe, 0xa5, 0xf7, 0x59, 0x31, 0x1a, 0x9c, - 0x30, 0x8a, 0xdb, 0x78, 0xdd, 0x07, 0xe7, 0x80, 0x68, 0xb2, 0x57, 0xdf, 0xf7, 0x97, 0x7e, 0x60, - 0x0c, 0x28, 0x5e, 0x87, 0xd9, 0x81, 0x19, 0x20, 0x9a, 0xea, 0x97, 0x19, 0x55, 0x36, 0x3c, 0x02, - 0x14, 0xd7, 0x21, 0x81, 0xfb, 0x79, 0x34, 0xfc, 0x57, 0x18, 0x9c, 0x98, 0x17, 0x3f, 0x09, 0x29, - 0xde, 0xc7, 0xa3, 0xa1, 0xbf, 0xca, 0xa0, 0x3e, 0x04, 0xc3, 0x79, 0x0f, 0x8f, 0x86, 0xff, 0x1a, - 0x87, 0x73, 0x08, 0x86, 0x4f, 0x1e, 0xc2, 0x7f, 0xfc, 0xf5, 0x04, 0xab, 0xc3, 0x3c, 0x76, 0xd7, - 0x60, 0x86, 0x35, 0xef, 0x68, 0xf4, 0xe7, 0xd9, 0xcd, 0x39, 0xa2, 0x78, 0x19, 0x92, 0x13, 0x06, - 0xfc, 0x37, 0x18, 0x94, 0xda, 0x17, 0xcb, 0x90, 0x09, 0x35, 0xec, 0x68, 0xf8, 0x6f, 0x32, 0x78, - 0x18, 0x85, 0x5d, 0x67, 0x0d, 0x3b, 0x9a, 0xe0, 0xb7, 0xb8, 0xeb, 0x0c, 0x81, 0xc3, 0xc6, 0x7b, - 0x75, 0x34, 0xfa, 0xb7, 0x79, 0xd4, 0x39, 0xa4, 0xf8, 0x02, 0xa4, 0xfd, 0xfa, 0x1b, 0x8d, 0xff, - 0x1d, 0x86, 0x0f, 0x30, 0x38, 0x02, 0xa1, 0xfa, 0x1f, 0x4d, 0xf1, 0xbb, 0x3c, 0x02, 0x21, 0x14, - 0xde, 0x46, 0xc3, 0x3d, 0x3d, 0x9a, 0xe9, 0x0b, 0x7c, 0x1b, 0x0d, 0xb5, 0x74, 0xbc, 0x9a, 0xa4, - 0x0c, 0x46, 0x53, 0xfc, 0x1e, 0x5f, 0x4d, 0x62, 0x8f, 0xdd, 0x18, 0x6e, 0x92, 0xd1, 0x1c, 0xbf, - 0xcf, 0xdd, 0x18, 0xea, 0x91, 0xc5, 0x3a, 0x48, 0xa3, 0x0d, 0x32, 0x9a, 0xef, 0x8b, 0x8c, 0x6f, - 0x6e, 0xa4, 0x3f, 0x16, 0x5f, 0x84, 0x53, 0xe3, 0x9b, 0x63, 0x34, 0xeb, 0x97, 0xde, 0x1f, 0x7a, - 0x9d, 0x09, 0xf7, 0xc6, 0xe2, 0x5e, 0x50, 0x65, 0xc3, 0x8d, 0x31, 0x9a, 0xf6, 0xb5, 0xf7, 0x07, - 0x0b, 0x6d, 0xb8, 0x2f, 0x16, 0x4b, 0x00, 0x41, 0x4f, 0x8a, 0xe6, 0x7a, 0x9d, 0x71, 0x85, 0x40, - 0x78, 0x6b, 0xb0, 0x96, 0x14, 0x8d, 0xff, 0x32, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0xef, 0x46, - 0xd1, 0xe8, 0x37, 0xf8, 0xd6, 0xe0, 0x90, 0xe2, 0x35, 0x48, 0x59, 0x7d, 0xd3, 0xc4, 0xb9, 0x25, - 0x3d, 0xfc, 0x33, 0x22, 0xf9, 0xdf, 0x3f, 0x60, 0x60, 0x0e, 0x28, 0xae, 0x43, 0x12, 0x75, 0x9b, - 0xa8, 0x15, 0x85, 0xfc, 0x8f, 0x0f, 0x78, 0x3d, 0xc1, 0xd6, 0xc5, 0x17, 0x00, 0xe8, 0xcb, 0x34, - 0xf9, 0x95, 0x28, 0x02, 0xfb, 0x9f, 0x1f, 0xb0, 0x2f, 0x14, 0x02, 0x48, 0x40, 0x40, 0xbf, 0x77, - 0x78, 0x38, 0xc1, 0xbb, 0x83, 0x04, 0xe4, 0x05, 0xfc, 0x2a, 0xcc, 0xdc, 0x76, 0x6d, 0xcb, 0xd3, - 0x3a, 0x51, 0xe8, 0xff, 0x62, 0x68, 0x6e, 0x8f, 0x03, 0xd6, 0xb5, 0x1d, 0xe4, 0x69, 0x1d, 0x37, - 0x0a, 0xfb, 0xdf, 0x0c, 0xeb, 0x03, 0x30, 0x58, 0xd7, 0x5c, 0x6f, 0x92, 0xe7, 0xfe, 0x1f, 0x0e, - 0xe6, 0x00, 0xec, 0x34, 0xfe, 0xff, 0x0e, 0x3a, 0x8c, 0xc2, 0xbe, 0xc7, 0x9d, 0x66, 0xf6, 0xc5, - 0x4f, 0x42, 0x1a, 0xff, 0x4b, 0xbf, 0xda, 0x89, 0x00, 0xff, 0x2f, 0x03, 0x07, 0x08, 0x7c, 0x67, - 0xd7, 0x6b, 0x79, 0x46, 0x74, 0xb0, 0xff, 0x8f, 0xad, 0x34, 0xb7, 0x2f, 0x96, 0x20, 0xe3, 0x7a, - 0xad, 0x56, 0x9f, 0x4d, 0x34, 0x11, 0xf0, 0x1f, 0x7d, 0xe0, 0xbf, 0xe4, 0xfa, 0x98, 0x8d, 0xf3, - 0xe3, 0x0f, 0xeb, 0x60, 0xcb, 0xde, 0xb2, 0xe9, 0x31, 0x1d, 0x7c, 0x21, 0x09, 0x8f, 0xe8, 0x76, - 0xb7, 0x69, 0xbb, 0xab, 0x4d, 0xdb, 0x3b, 0x58, 0xb5, 0x2d, 0x66, 0x28, 0xc5, 0x6d, 0x0b, 0x2d, - 0x9e, 0xec, 0x44, 0x6e, 0xe9, 0x0c, 0x24, 0x1b, 0xfd, 0x66, 0xf3, 0x50, 0x12, 0x21, 0xee, 0xf6, - 0x9b, 0xec, 0x93, 0x12, 0xfc, 0xef, 0xd2, 0xf7, 0xe3, 0x90, 0x69, 0x68, 0xdd, 0x9e, 0x89, 0x6a, - 0x16, 0xaa, 0xb5, 0x25, 0x19, 0xa6, 0xc9, 0x03, 0x3c, 0x4f, 0x8c, 0x84, 0x1b, 0x53, 0x0a, 0xbb, - 0xf6, 0x35, 0x6b, 0xe4, 0x98, 0x32, 0xe6, 0x6b, 0xd6, 0x7c, 0xcd, 0x05, 0x7a, 0x4a, 0xe9, 0x6b, - 0x2e, 0xf8, 0x9a, 0x8b, 0xe4, 0xac, 0x32, 0xee, 0x6b, 0x2e, 0xfa, 0x9a, 0x75, 0x72, 0x16, 0x3f, - 0xeb, 0x6b, 0xd6, 0x7d, 0xcd, 0x25, 0x72, 0xfa, 0x9e, 0xf0, 0x35, 0x97, 0x7c, 0xcd, 0x65, 0x72, - 0xe8, 0x3e, 0xe7, 0x6b, 0x2e, 0xfb, 0x9a, 0x2b, 0xe4, 0xa0, 0x5d, 0xf2, 0x35, 0x57, 0x7c, 0xcd, - 0x55, 0xf2, 0xe5, 0xc8, 0x8c, 0xaf, 0xb9, 0x2a, 0x2d, 0xc2, 0x0c, 0x7d, 0xb2, 0xe7, 0xc8, 0xaf, - 0xb1, 0xf9, 0x1b, 0x53, 0x0a, 0x17, 0x04, 0xba, 0xe7, 0xc9, 0xd7, 0x21, 0xd3, 0x81, 0xee, 0xf9, - 0x40, 0xb7, 0x46, 0xbe, 0x91, 0x16, 0x03, 0xdd, 0x5a, 0xa0, 0xbb, 0x20, 0xcf, 0xe2, 0x75, 0x0f, - 0x74, 0x17, 0x02, 0xdd, 0x45, 0x39, 0x87, 0xe3, 0x1f, 0xe8, 0x2e, 0x06, 0xba, 0x75, 0x39, 0x7f, - 0x4e, 0x58, 0xce, 0x06, 0xba, 0x75, 0xe9, 0x59, 0xc8, 0xb8, 0xfd, 0xa6, 0xca, 0x3e, 0x1e, 0x20, - 0x5f, 0xa1, 0x64, 0xd6, 0x60, 0x05, 0x67, 0x04, 0x59, 0xd4, 0x1b, 0x53, 0x0a, 0xb8, 0xfd, 0x26, - 0x2b, 0x8c, 0x1b, 0x59, 0x20, 0xe7, 0x08, 0x2a, 0xf9, 0xf6, 0x72, 0x63, 0xf3, 0xad, 0x07, 0x85, - 0xa9, 0xef, 0x3e, 0x28, 0x4c, 0xfd, 0xeb, 0x83, 0xc2, 0xd4, 0xdb, 0x0f, 0x0a, 0xc2, 0x7b, 0x0f, - 0x0a, 0xc2, 0x8f, 0x1f, 0x14, 0x84, 0xfb, 0x47, 0x05, 0xe1, 0xab, 0x47, 0x05, 0xe1, 0x1b, 0x47, - 0x05, 0xe1, 0xdb, 0x47, 0x05, 0xe1, 0xad, 0xa3, 0x82, 0xf0, 0xdd, 0xa3, 0x82, 0xf0, 0xf6, 0x51, - 0x41, 0xf8, 0xe1, 0x51, 0x61, 0xea, 0xbd, 0xa3, 0x82, 0xf0, 0xe3, 0xa3, 0xc2, 0xd4, 0xfd, 0x1f, - 0x14, 0xa6, 0x9a, 0xd3, 0x24, 0x8d, 0x2e, 0xfc, 0x24, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xd1, 0x4a, - 0x50, 0xf2, 0x30, 0x00, 0x00, + // 3973 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0x1b, 0xe7, + 0x75, 0xe6, 0xe2, 0x46, 0xe0, 0x00, 0x04, 0x97, 0x4b, 0x4a, 0x82, 0xe8, 0x18, 0xa2, 0x68, 0x3b, + 0xa2, 0xed, 0x9a, 0xb4, 0x29, 0x51, 0x17, 0xa8, 0x89, 0x0b, 0x92, 0x10, 0x45, 0x95, 0x24, 0x90, + 0x05, 0x19, 0x5f, 0x32, 0x9d, 0x9d, 0xc5, 0xe2, 0x07, 0xb8, 0xd2, 0x62, 0x77, 0xb3, 0xbb, 0x90, + 0x4c, 0x4d, 0x1f, 0xd4, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0x9a, 0xce, 0x24, 0x71, 0x1d, 0xf7, 0x32, + 0xd3, 0x3a, 0x4d, 0x6f, 0x49, 0xd3, 0xa6, 0x69, 0x9f, 0xfa, 0x92, 0xd6, 0x4f, 0x9d, 0xe4, 0xad, + 0x0f, 0x79, 0xb0, 0x18, 0xcf, 0x34, 0x6d, 0xdd, 0xc6, 0x6d, 0xfd, 0xe0, 0x19, 0xbd, 0x64, 0xfe, + 0xdb, 0xee, 0xe2, 0x42, 0x2d, 0x98, 0x19, 0xdb, 0x4f, 0xe4, 0x9e, 0x73, 0xbe, 0x6f, 0xff, 0xff, + 0xfc, 0xe7, 0x3f, 0xe7, 0xfc, 0x3f, 0x16, 0x7e, 0x7c, 0x05, 0xe6, 0xda, 0x96, 0xd5, 0x36, 0xd0, + 0x92, 0xed, 0x58, 0x9e, 0xd5, 0xe8, 0xb6, 0x96, 0x9a, 0xc8, 0xd5, 0x1c, 0xdd, 0xf6, 0x2c, 0x67, + 0x91, 0xc8, 0xa4, 0x49, 0x6a, 0xb1, 0xc8, 0x2d, 0xe6, 0xb7, 0x61, 0xea, 0x9a, 0x6e, 0xa0, 0x75, + 0xdf, 0xb0, 0x8e, 0x3c, 0xe9, 0x32, 0x24, 0x5a, 0xba, 0x81, 0x0a, 0xc2, 0x5c, 0x7c, 0x21, 0xbb, + 0xfc, 0xf8, 0x62, 0x1f, 0x68, 0xb1, 0x17, 0x51, 0xc3, 0x62, 0x99, 0x20, 0xe6, 0xdf, 0x49, 0xc0, + 0xf4, 0x10, 0xad, 0x24, 0x41, 0xc2, 0x54, 0x3b, 0x98, 0x51, 0x58, 0xc8, 0xc8, 0xe4, 0x7f, 0xa9, + 0x00, 0xe3, 0xb6, 0xaa, 0xdd, 0x52, 0xdb, 0xa8, 0x10, 0x23, 0x62, 0xfe, 0x28, 0x15, 0x01, 0x9a, + 0xc8, 0x46, 0x66, 0x13, 0x99, 0xda, 0x41, 0x21, 0x3e, 0x17, 0x5f, 0xc8, 0xc8, 0x21, 0x89, 0xf4, + 0x34, 0x4c, 0xd9, 0xdd, 0x86, 0xa1, 0x6b, 0x4a, 0xc8, 0x0c, 0xe6, 0xe2, 0x0b, 0x49, 0x59, 0xa4, + 0x8a, 0xf5, 0xc0, 0xf8, 0x1c, 0x4c, 0xde, 0x41, 0xea, 0xad, 0xb0, 0x69, 0x96, 0x98, 0xe6, 0xb1, + 0x38, 0x64, 0xb8, 0x06, 0xb9, 0x0e, 0x72, 0x5d, 0xb5, 0x8d, 0x14, 0xef, 0xc0, 0x46, 0x85, 0x04, + 0x99, 0xfd, 0xdc, 0xc0, 0xec, 0xfb, 0x67, 0x9e, 0x65, 0xa8, 0xdd, 0x03, 0x1b, 0x49, 0x65, 0xc8, + 0x20, 0xb3, 0xdb, 0xa1, 0x0c, 0xc9, 0x23, 0xfc, 0x57, 0x31, 0xbb, 0x9d, 0x7e, 0x96, 0x34, 0x86, + 0x31, 0x8a, 0x71, 0x17, 0x39, 0xb7, 0x75, 0x0d, 0x15, 0x52, 0x84, 0xe0, 0xdc, 0x00, 0x41, 0x9d, + 0xea, 0xfb, 0x39, 0x38, 0x4e, 0x5a, 0x83, 0x0c, 0x7a, 0xc5, 0x43, 0xa6, 0xab, 0x5b, 0x66, 0x61, + 0x9c, 0x90, 0x3c, 0x31, 0x64, 0x15, 0x91, 0xd1, 0xec, 0xa7, 0x08, 0x70, 0xd2, 0x45, 0x18, 0xb7, + 0x6c, 0x4f, 0xb7, 0x4c, 0xb7, 0x90, 0x9e, 0x13, 0x16, 0xb2, 0xcb, 0x9f, 0x18, 0x1a, 0x08, 0x55, + 0x6a, 0x23, 0x73, 0x63, 0x69, 0x13, 0x44, 0xd7, 0xea, 0x3a, 0x1a, 0x52, 0x34, 0xab, 0x89, 0x14, + 0xdd, 0x6c, 0x59, 0x85, 0x0c, 0x21, 0x38, 0x33, 0x38, 0x11, 0x62, 0xb8, 0x66, 0x35, 0xd1, 0xa6, + 0xd9, 0xb2, 0xe4, 0xbc, 0xdb, 0xf3, 0x2c, 0x9d, 0x84, 0x94, 0x7b, 0x60, 0x7a, 0xea, 0x2b, 0x85, + 0x1c, 0x89, 0x10, 0xf6, 0x34, 0xff, 0x0f, 0x29, 0x98, 0x1c, 0x25, 0xc4, 0xae, 0x42, 0xb2, 0x85, + 0x67, 0x59, 0x88, 0x1d, 0xc7, 0x07, 0x14, 0xd3, 0xeb, 0xc4, 0xd4, 0x4f, 0xe9, 0xc4, 0x32, 0x64, + 0x4d, 0xe4, 0x7a, 0xa8, 0x49, 0x23, 0x22, 0x3e, 0x62, 0x4c, 0x01, 0x05, 0x0d, 0x86, 0x54, 0xe2, + 0xa7, 0x0a, 0xa9, 0x17, 0x61, 0xd2, 0x1f, 0x92, 0xe2, 0xa8, 0x66, 0x9b, 0xc7, 0xe6, 0x52, 0xd4, + 0x48, 0x16, 0x2b, 0x1c, 0x27, 0x63, 0x98, 0x9c, 0x47, 0x3d, 0xcf, 0xd2, 0x3a, 0x80, 0x65, 0x22, + 0xab, 0xa5, 0x34, 0x91, 0x66, 0x14, 0xd2, 0x47, 0x78, 0xa9, 0x8a, 0x4d, 0x06, 0xbc, 0x64, 0x51, + 0xa9, 0x66, 0x48, 0x57, 0x82, 0x50, 0x1b, 0x3f, 0x22, 0x52, 0xb6, 0xe9, 0x26, 0x1b, 0x88, 0xb6, + 0x3d, 0xc8, 0x3b, 0x08, 0xc7, 0x3d, 0x6a, 0xb2, 0x99, 0x65, 0xc8, 0x20, 0x16, 0x23, 0x67, 0x26, + 0x33, 0x18, 0x9d, 0xd8, 0x84, 0x13, 0x7e, 0x94, 0x1e, 0x03, 0x5f, 0xa0, 0x90, 0xb0, 0x02, 0x92, + 0x85, 0x72, 0x5c, 0xb8, 0xa3, 0x76, 0xd0, 0xec, 0x5d, 0xc8, 0xf7, 0xba, 0x47, 0x9a, 0x81, 0xa4, + 0xeb, 0xa9, 0x8e, 0x47, 0xa2, 0x30, 0x29, 0xd3, 0x07, 0x49, 0x84, 0x38, 0x32, 0x9b, 0x24, 0xcb, + 0x25, 0x65, 0xfc, 0xaf, 0xf4, 0x73, 0xc1, 0x84, 0xe3, 0x64, 0xc2, 0x9f, 0x1c, 0x5c, 0xd1, 0x1e, + 0xe6, 0xfe, 0x79, 0xcf, 0x5e, 0x82, 0x89, 0x9e, 0x09, 0x8c, 0xfa, 0xea, 0xf9, 0x5f, 0x84, 0x13, + 0x43, 0xa9, 0xa5, 0x17, 0x61, 0xa6, 0x6b, 0xea, 0xa6, 0x87, 0x1c, 0xdb, 0x41, 0x38, 0x62, 0xe9, + 0xab, 0x0a, 0xff, 0x3e, 0x7e, 0x44, 0xcc, 0xed, 0x85, 0xad, 0x29, 0x8b, 0x3c, 0xdd, 0x1d, 0x14, + 0x3e, 0x95, 0x49, 0xff, 0x68, 0x5c, 0xbc, 0x77, 0xef, 0xde, 0xbd, 0xd8, 0xfc, 0x97, 0x53, 0x30, + 0x33, 0x6c, 0xcf, 0x0c, 0xdd, 0xbe, 0x27, 0x21, 0x65, 0x76, 0x3b, 0x0d, 0xe4, 0x10, 0x27, 0x25, + 0x65, 0xf6, 0x24, 0x95, 0x21, 0x69, 0xa8, 0x0d, 0x64, 0x14, 0x12, 0x73, 0xc2, 0x42, 0x7e, 0xf9, + 0xe9, 0x91, 0x76, 0xe5, 0xe2, 0x16, 0x86, 0xc8, 0x14, 0x29, 0x7d, 0x1a, 0x12, 0x2c, 0x45, 0x63, + 0x86, 0xa7, 0x46, 0x63, 0xc0, 0x7b, 0x49, 0x26, 0x38, 0xe9, 0x11, 0xc8, 0xe0, 0xbf, 0x34, 0x36, + 0x52, 0x64, 0xcc, 0x69, 0x2c, 0xc0, 0x71, 0x21, 0xcd, 0x42, 0x9a, 0x6c, 0x93, 0x26, 0xe2, 0xa5, + 0xcd, 0x7f, 0xc6, 0x81, 0xd5, 0x44, 0x2d, 0xb5, 0x6b, 0x78, 0xca, 0x6d, 0xd5, 0xe8, 0x22, 0x12, + 0xf0, 0x19, 0x39, 0xc7, 0x84, 0x9f, 0xc5, 0x32, 0xe9, 0x0c, 0x64, 0xe9, 0xae, 0xd2, 0xcd, 0x26, + 0x7a, 0x85, 0x64, 0xcf, 0xa4, 0x4c, 0x37, 0xda, 0x26, 0x96, 0xe0, 0xd7, 0xdf, 0x74, 0x2d, 0x93, + 0x87, 0x26, 0x79, 0x05, 0x16, 0x90, 0xd7, 0x5f, 0xea, 0x4f, 0xdc, 0x8f, 0x0e, 0x9f, 0x5e, 0x7f, + 0x4c, 0xcd, 0x7f, 0x3b, 0x06, 0x09, 0x92, 0x2f, 0x26, 0x21, 0xbb, 0xfb, 0x52, 0xad, 0xa2, 0xac, + 0x57, 0xf7, 0x56, 0xb7, 0x2a, 0xa2, 0x20, 0xe5, 0x01, 0x88, 0xe0, 0xda, 0x56, 0xb5, 0xbc, 0x2b, + 0xc6, 0xfc, 0xe7, 0xcd, 0x9d, 0xdd, 0x8b, 0x17, 0xc4, 0xb8, 0x0f, 0xd8, 0xa3, 0x82, 0x44, 0xd8, + 0xe0, 0xfc, 0xb2, 0x98, 0x94, 0x44, 0xc8, 0x51, 0x82, 0xcd, 0x17, 0x2b, 0xeb, 0x17, 0x2f, 0x88, + 0xa9, 0x5e, 0xc9, 0xf9, 0x65, 0x71, 0x5c, 0x9a, 0x80, 0x0c, 0x91, 0xac, 0x56, 0xab, 0x5b, 0x62, + 0xda, 0xe7, 0xac, 0xef, 0xca, 0x9b, 0x3b, 0x1b, 0x62, 0xc6, 0xe7, 0xdc, 0x90, 0xab, 0x7b, 0x35, + 0x11, 0x7c, 0x86, 0xed, 0x4a, 0xbd, 0x5e, 0xde, 0xa8, 0x88, 0x59, 0xdf, 0x62, 0xf5, 0xa5, 0xdd, + 0x4a, 0x5d, 0xcc, 0xf5, 0x0c, 0xeb, 0xfc, 0xb2, 0x38, 0xe1, 0xbf, 0xa2, 0xb2, 0xb3, 0xb7, 0x2d, + 0xe6, 0xa5, 0x29, 0x98, 0xa0, 0xaf, 0xe0, 0x83, 0x98, 0xec, 0x13, 0x5d, 0xbc, 0x20, 0x8a, 0xc1, + 0x40, 0x28, 0xcb, 0x54, 0x8f, 0xe0, 0xe2, 0x05, 0x51, 0x9a, 0x5f, 0x83, 0x24, 0x89, 0x2e, 0x49, + 0x82, 0xfc, 0x56, 0x79, 0xb5, 0xb2, 0xa5, 0x54, 0x6b, 0xbb, 0x9b, 0xd5, 0x9d, 0xf2, 0x96, 0x28, + 0x04, 0x32, 0xb9, 0xf2, 0x99, 0xbd, 0x4d, 0xb9, 0xb2, 0x2e, 0xc6, 0xc2, 0xb2, 0x5a, 0xa5, 0xbc, + 0x5b, 0x59, 0x17, 0xe3, 0xf3, 0x1a, 0xcc, 0x0c, 0xcb, 0x93, 0x43, 0x77, 0x46, 0x68, 0x89, 0x63, + 0x47, 0x2c, 0x31, 0xe1, 0x1a, 0x58, 0xe2, 0x1f, 0xc6, 0x60, 0x7a, 0x48, 0xad, 0x18, 0xfa, 0x92, + 0xe7, 0x21, 0x49, 0x43, 0x94, 0x56, 0xcf, 0x27, 0x87, 0x16, 0x1d, 0x12, 0xb0, 0x03, 0x15, 0x94, + 0xe0, 0xc2, 0x1d, 0x44, 0xfc, 0x88, 0x0e, 0x02, 0x53, 0x0c, 0xe4, 0xf4, 0x5f, 0x18, 0xc8, 0xe9, + 0xb4, 0xec, 0x5d, 0x1c, 0xa5, 0xec, 0x11, 0xd9, 0xf1, 0x72, 0x7b, 0x72, 0x48, 0x6e, 0xbf, 0x0a, + 0x53, 0x03, 0x44, 0x23, 0xe7, 0xd8, 0x57, 0x05, 0x28, 0x1c, 0xe5, 0x9c, 0x88, 0x4c, 0x17, 0xeb, + 0xc9, 0x74, 0x57, 0xfb, 0x3d, 0x78, 0xf6, 0xe8, 0x45, 0x18, 0x58, 0xeb, 0x37, 0x05, 0x38, 0x39, + 0xbc, 0x53, 0x1c, 0x3a, 0x86, 0x4f, 0x43, 0xaa, 0x83, 0xbc, 0x7d, 0x8b, 0x77, 0x4b, 0x9f, 0x1c, + 0x52, 0x83, 0xb1, 0xba, 0x7f, 0xb1, 0x19, 0x2a, 0x5c, 0xc4, 0xe3, 0x47, 0xb5, 0x7b, 0x74, 0x34, + 0x03, 0x23, 0xfd, 0x42, 0x0c, 0x4e, 0x0c, 0x25, 0x1f, 0x3a, 0xd0, 0x47, 0x01, 0x74, 0xd3, 0xee, + 0x7a, 0xb4, 0x23, 0xa2, 0x09, 0x36, 0x43, 0x24, 0x24, 0x79, 0xe1, 0xe4, 0xd9, 0xf5, 0x7c, 0x7d, + 0x9c, 0xe8, 0x81, 0x8a, 0x88, 0xc1, 0xe5, 0x60, 0xa0, 0x09, 0x32, 0xd0, 0xe2, 0x11, 0x33, 0x1d, + 0x08, 0xcc, 0x67, 0x41, 0xd4, 0x0c, 0x1d, 0x99, 0x9e, 0xe2, 0x7a, 0x0e, 0x52, 0x3b, 0xba, 0xd9, + 0x26, 0x15, 0x24, 0x5d, 0x4a, 0xb6, 0x54, 0xc3, 0x45, 0xf2, 0x24, 0x55, 0xd7, 0xb9, 0x16, 0x23, + 0x48, 0x00, 0x39, 0x21, 0x44, 0xaa, 0x07, 0x41, 0xd5, 0x3e, 0x62, 0xfe, 0x5b, 0x69, 0xc8, 0x86, + 0xfa, 0x6a, 0xe9, 0x2c, 0xe4, 0x6e, 0xaa, 0xb7, 0x55, 0x85, 0x9f, 0x95, 0xa8, 0x27, 0xb2, 0x58, + 0x56, 0x63, 0xe7, 0xa5, 0x67, 0x61, 0x86, 0x98, 0x58, 0x5d, 0x0f, 0x39, 0x8a, 0x66, 0xa8, 0xae, + 0x4b, 0x9c, 0x96, 0x26, 0xa6, 0x12, 0xd6, 0x55, 0xb1, 0x6a, 0x8d, 0x6b, 0xa4, 0x15, 0x98, 0x26, + 0x88, 0x4e, 0xd7, 0xf0, 0x74, 0xdb, 0x40, 0x0a, 0x3e, 0xbd, 0xb9, 0xa4, 0x92, 0xf8, 0x23, 0x9b, + 0xc2, 0x16, 0xdb, 0xcc, 0x00, 0x8f, 0xc8, 0x95, 0xd6, 0xe1, 0x51, 0x02, 0x6b, 0x23, 0x13, 0x39, + 0xaa, 0x87, 0x14, 0xf4, 0xf9, 0xae, 0x6a, 0xb8, 0x8a, 0x6a, 0x36, 0x95, 0x7d, 0xd5, 0xdd, 0x2f, + 0xcc, 0x60, 0x82, 0xd5, 0x58, 0x41, 0x90, 0x4f, 0x63, 0xc3, 0x0d, 0x66, 0x57, 0x21, 0x66, 0x65, + 0xb3, 0x79, 0x5d, 0x75, 0xf7, 0xa5, 0x12, 0x9c, 0x24, 0x2c, 0xae, 0xe7, 0xe8, 0x66, 0x5b, 0xd1, + 0xf6, 0x91, 0x76, 0x4b, 0xe9, 0x7a, 0xad, 0xcb, 0x85, 0x47, 0xc2, 0xef, 0x27, 0x23, 0xac, 0x13, + 0x9b, 0x35, 0x6c, 0xb2, 0xe7, 0xb5, 0x2e, 0x4b, 0x75, 0xc8, 0xe1, 0xc5, 0xe8, 0xe8, 0x77, 0x91, + 0xd2, 0xb2, 0x1c, 0x52, 0x1a, 0xf3, 0x43, 0x52, 0x53, 0xc8, 0x83, 0x8b, 0x55, 0x06, 0xd8, 0xb6, + 0x9a, 0xa8, 0x94, 0xac, 0xd7, 0x2a, 0x95, 0x75, 0x39, 0xcb, 0x59, 0xae, 0x59, 0x0e, 0x0e, 0xa8, + 0xb6, 0xe5, 0x3b, 0x38, 0x4b, 0x03, 0xaa, 0x6d, 0x71, 0xf7, 0xae, 0xc0, 0xb4, 0xa6, 0xd1, 0x39, + 0xeb, 0x9a, 0xc2, 0xce, 0x58, 0x6e, 0x41, 0xec, 0x71, 0x96, 0xa6, 0x6d, 0x50, 0x03, 0x16, 0xe3, + 0xae, 0x74, 0x05, 0x4e, 0x04, 0xce, 0x0a, 0x03, 0xa7, 0x06, 0x66, 0xd9, 0x0f, 0x5d, 0x81, 0x69, + 0xfb, 0x60, 0x10, 0x28, 0xf5, 0xbc, 0xd1, 0x3e, 0xe8, 0x87, 0x5d, 0x82, 0x19, 0x7b, 0xdf, 0x1e, + 0xc4, 0x3d, 0x15, 0xc6, 0x49, 0xf6, 0xbe, 0xdd, 0x0f, 0x7c, 0x82, 0x1c, 0xb8, 0x1d, 0xa4, 0xa9, + 0x1e, 0x6a, 0x16, 0x4e, 0x85, 0xcd, 0x43, 0x0a, 0x69, 0x09, 0x44, 0x4d, 0x53, 0x90, 0xa9, 0x36, + 0x0c, 0xa4, 0xa8, 0x0e, 0x32, 0x55, 0xb7, 0x70, 0x26, 0x6c, 0x9c, 0xd7, 0xb4, 0x0a, 0xd1, 0x96, + 0x89, 0x52, 0x7a, 0x0a, 0xa6, 0xac, 0xc6, 0x4d, 0x8d, 0x86, 0xa4, 0x62, 0x3b, 0xa8, 0xa5, 0xbf, + 0x52, 0x78, 0x9c, 0xf8, 0x77, 0x12, 0x2b, 0x48, 0x40, 0xd6, 0x88, 0x58, 0x7a, 0x12, 0x44, 0xcd, + 0xdd, 0x57, 0x1d, 0x9b, 0xe4, 0x64, 0xd7, 0x56, 0x35, 0x54, 0x78, 0x82, 0x9a, 0x52, 0xf9, 0x0e, + 0x17, 0xe3, 0x2d, 0xe1, 0xde, 0xd1, 0x5b, 0x1e, 0x67, 0x3c, 0x47, 0xb7, 0x04, 0x91, 0x31, 0xb6, + 0x05, 0x10, 0xb1, 0x2b, 0x7a, 0x5e, 0xbc, 0x40, 0xcc, 0xf2, 0xf6, 0xbe, 0x1d, 0x7e, 0xef, 0x63, + 0x30, 0x81, 0x2d, 0x83, 0x97, 0x3e, 0x49, 0x1b, 0x32, 0x7b, 0x3f, 0xf4, 0xc6, 0x0f, 0xad, 0x37, + 0x9e, 0x2f, 0x41, 0x2e, 0x1c, 0x9f, 0x52, 0x06, 0x68, 0x84, 0x8a, 0x02, 0x6e, 0x56, 0xd6, 0xaa, + 0xeb, 0xb8, 0xcd, 0x78, 0xb9, 0x22, 0xc6, 0x70, 0xbb, 0xb3, 0xb5, 0xb9, 0x5b, 0x51, 0xe4, 0xbd, + 0x9d, 0xdd, 0xcd, 0xed, 0x8a, 0x18, 0x0f, 0xf7, 0xd5, 0xdf, 0x8d, 0x41, 0xbe, 0xf7, 0x88, 0x24, + 0xfd, 0x2c, 0x9c, 0xe2, 0xf7, 0x19, 0x2e, 0xf2, 0x94, 0x3b, 0xba, 0x43, 0xb6, 0x4c, 0x47, 0xa5, + 0xe5, 0xcb, 0x5f, 0xb4, 0x19, 0x66, 0x55, 0x47, 0xde, 0x0b, 0xba, 0x83, 0x37, 0x44, 0x47, 0xf5, + 0xa4, 0x2d, 0x38, 0x63, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x53, 0x75, 0x9a, 0x4a, 0x70, 0x93, 0xa4, + 0xa8, 0x9a, 0x86, 0x5c, 0xd7, 0xa2, 0xa5, 0xca, 0x67, 0xf9, 0x84, 0x69, 0xd5, 0x99, 0x71, 0x90, + 0xc3, 0xcb, 0xcc, 0xb4, 0x2f, 0xc0, 0xe2, 0x47, 0x05, 0xd8, 0x23, 0x90, 0xe9, 0xa8, 0xb6, 0x82, + 0x4c, 0xcf, 0x39, 0x20, 0x8d, 0x71, 0x5a, 0x4e, 0x77, 0x54, 0xbb, 0x82, 0x9f, 0x3f, 0x9a, 0xf3, + 0xc9, 0x0f, 0xe2, 0x90, 0x0b, 0x37, 0xc7, 0xf8, 0xac, 0xa1, 0x91, 0x3a, 0x22, 0x90, 0x4c, 0xf3, + 0xd8, 0x43, 0x5b, 0xe9, 0xc5, 0x35, 0x5c, 0x60, 0x4a, 0x29, 0xda, 0xb2, 0xca, 0x14, 0x89, 0x8b, + 0x3b, 0xce, 0x2d, 0x88, 0xb6, 0x08, 0x69, 0x99, 0x3d, 0x49, 0x1b, 0x90, 0xba, 0xe9, 0x12, 0xee, + 0x14, 0xe1, 0x7e, 0xfc, 0xe1, 0xdc, 0x37, 0xea, 0x84, 0x3c, 0x73, 0xa3, 0xae, 0xec, 0x54, 0xe5, + 0xed, 0xf2, 0x96, 0xcc, 0xe0, 0xd2, 0x69, 0x48, 0x18, 0xea, 0xdd, 0x83, 0xde, 0x52, 0x44, 0x44, + 0xa3, 0x3a, 0xfe, 0x34, 0x24, 0xee, 0x20, 0xf5, 0x56, 0x6f, 0x01, 0x20, 0xa2, 0x0f, 0x31, 0xf4, + 0x97, 0x20, 0x49, 0xfc, 0x25, 0x01, 0x30, 0x8f, 0x89, 0x63, 0x52, 0x1a, 0x12, 0x6b, 0x55, 0x19, + 0x87, 0xbf, 0x08, 0x39, 0x2a, 0x55, 0x6a, 0x9b, 0x95, 0xb5, 0x8a, 0x18, 0x9b, 0x5f, 0x81, 0x14, + 0x75, 0x02, 0xde, 0x1a, 0xbe, 0x1b, 0xc4, 0x31, 0xf6, 0xc8, 0x38, 0x04, 0xae, 0xdd, 0xdb, 0x5e, + 0xad, 0xc8, 0x62, 0x2c, 0xbc, 0xbc, 0x2e, 0xe4, 0xc2, 0x7d, 0xf1, 0x47, 0x13, 0x53, 0xff, 0x28, + 0x40, 0x36, 0xd4, 0xe7, 0xe2, 0x06, 0x45, 0x35, 0x0c, 0xeb, 0x8e, 0xa2, 0x1a, 0xba, 0xea, 0xb2, + 0xa0, 0x00, 0x22, 0x2a, 0x63, 0xc9, 0xa8, 0x8b, 0xf6, 0x91, 0x0c, 0xfe, 0x0d, 0x01, 0xc4, 0xfe, + 0x16, 0xb3, 0x6f, 0x80, 0xc2, 0xc7, 0x3a, 0xc0, 0xd7, 0x05, 0xc8, 0xf7, 0xf6, 0x95, 0x7d, 0xc3, + 0x3b, 0xfb, 0xb1, 0x0e, 0xef, 0xed, 0x18, 0x4c, 0xf4, 0x74, 0x93, 0xa3, 0x8e, 0xee, 0xf3, 0x30, + 0xa5, 0x37, 0x51, 0xc7, 0xb6, 0x3c, 0x64, 0x6a, 0x07, 0x8a, 0x81, 0x6e, 0x23, 0xa3, 0x30, 0x4f, + 0x12, 0xc5, 0xd2, 0xc3, 0xfb, 0xd5, 0xc5, 0xcd, 0x00, 0xb7, 0x85, 0x61, 0xa5, 0xe9, 0xcd, 0xf5, + 0xca, 0x76, 0xad, 0xba, 0x5b, 0xd9, 0x59, 0x7b, 0x49, 0xd9, 0xdb, 0xf9, 0xf9, 0x9d, 0xea, 0x0b, + 0x3b, 0xb2, 0xa8, 0xf7, 0x99, 0x7d, 0x88, 0x5b, 0xbd, 0x06, 0x62, 0xff, 0xa0, 0xa4, 0x53, 0x30, + 0x6c, 0x58, 0xe2, 0x98, 0x34, 0x0d, 0x93, 0x3b, 0x55, 0xa5, 0xbe, 0xb9, 0x5e, 0x51, 0x2a, 0xd7, + 0xae, 0x55, 0xd6, 0x76, 0xeb, 0xf4, 0x06, 0xc2, 0xb7, 0xde, 0xed, 0xdd, 0xd4, 0xaf, 0xc5, 0x61, + 0x7a, 0xc8, 0x48, 0xa4, 0x32, 0x3b, 0x3b, 0xd0, 0xe3, 0xcc, 0x33, 0xa3, 0x8c, 0x7e, 0x11, 0x97, + 0xfc, 0x9a, 0xea, 0x78, 0xec, 0xa8, 0xf1, 0x24, 0x60, 0x2f, 0x99, 0x9e, 0xde, 0xd2, 0x91, 0xc3, + 0x2e, 0x6c, 0xe8, 0x81, 0x62, 0x32, 0x90, 0xd3, 0x3b, 0x9b, 0x9f, 0x01, 0xc9, 0xb6, 0x5c, 0xdd, + 0xd3, 0x6f, 0x23, 0x45, 0x37, 0xf9, 0xed, 0x0e, 0x3e, 0x60, 0x24, 0x64, 0x91, 0x6b, 0x36, 0x4d, + 0xcf, 0xb7, 0x36, 0x51, 0x5b, 0xed, 0xb3, 0xc6, 0x09, 0x3c, 0x2e, 0x8b, 0x5c, 0xe3, 0x5b, 0x9f, + 0x85, 0x5c, 0xd3, 0xea, 0xe2, 0xae, 0x8b, 0xda, 0xe1, 0x7a, 0x21, 0xc8, 0x59, 0x2a, 0xf3, 0x4d, + 0x58, 0x3f, 0x1d, 0x5c, 0x2b, 0xe5, 0xe4, 0x2c, 0x95, 0x51, 0x93, 0x73, 0x30, 0xa9, 0xb6, 0xdb, + 0x0e, 0x26, 0xe7, 0x44, 0xf4, 0x84, 0x90, 0xf7, 0xc5, 0xc4, 0x70, 0xf6, 0x06, 0xa4, 0xb9, 0x1f, + 0x70, 0x49, 0xc6, 0x9e, 0x50, 0x6c, 0x7a, 0xec, 0x8d, 0x2d, 0x64, 0xe4, 0xb4, 0xc9, 0x95, 0x67, + 0x21, 0xa7, 0xbb, 0x4a, 0x70, 0x4b, 0x1e, 0x9b, 0x8b, 0x2d, 0xa4, 0xe5, 0xac, 0xee, 0xfa, 0x37, + 0x8c, 0xf3, 0x6f, 0xc6, 0x20, 0xdf, 0x7b, 0xcb, 0x2f, 0xad, 0x43, 0xda, 0xb0, 0x34, 0x95, 0x84, + 0x16, 0xfd, 0x89, 0x69, 0x21, 0xe2, 0x87, 0x81, 0xc5, 0x2d, 0x66, 0x2f, 0xfb, 0xc8, 0xd9, 0x7f, + 0x15, 0x20, 0xcd, 0xc5, 0xd2, 0x49, 0x48, 0xd8, 0xaa, 0xb7, 0x4f, 0xe8, 0x92, 0xab, 0x31, 0x51, + 0x90, 0xc9, 0x33, 0x96, 0xbb, 0xb6, 0x6a, 0x92, 0x10, 0x60, 0x72, 0xfc, 0x8c, 0xd7, 0xd5, 0x40, + 0x6a, 0x93, 0x1c, 0x3f, 0xac, 0x4e, 0x07, 0x99, 0x9e, 0xcb, 0xd7, 0x95, 0xc9, 0xd7, 0x98, 0x58, + 0x7a, 0x1a, 0xa6, 0x3c, 0x47, 0xd5, 0x8d, 0x1e, 0xdb, 0x04, 0xb1, 0x15, 0xb9, 0xc2, 0x37, 0x2e, + 0xc1, 0x69, 0xce, 0xdb, 0x44, 0x9e, 0xaa, 0xed, 0xa3, 0x66, 0x00, 0x4a, 0x91, 0x6b, 0x86, 0x53, + 0xcc, 0x60, 0x9d, 0xe9, 0x39, 0x76, 0xfe, 0xfb, 0x02, 0x4c, 0xf1, 0x03, 0x53, 0xd3, 0x77, 0xd6, + 0x36, 0x80, 0x6a, 0x9a, 0x96, 0x17, 0x76, 0xd7, 0x60, 0x28, 0x0f, 0xe0, 0x16, 0xcb, 0x3e, 0x48, + 0x0e, 0x11, 0xcc, 0x76, 0x00, 0x02, 0xcd, 0x91, 0x6e, 0x3b, 0x03, 0x59, 0xf6, 0x13, 0x0e, 0xf9, + 0x1d, 0x90, 0x1e, 0xb1, 0x81, 0x8a, 0xf0, 0xc9, 0x4a, 0x9a, 0x81, 0x64, 0x03, 0xb5, 0x75, 0x93, + 0x5d, 0xcc, 0xd2, 0x07, 0x7e, 0x11, 0x92, 0xf0, 0x2f, 0x42, 0x56, 0x3f, 0x07, 0xd3, 0x9a, 0xd5, + 0xe9, 0x1f, 0xee, 0xaa, 0xd8, 0x77, 0xcc, 0x77, 0xaf, 0x0b, 0x2f, 0x43, 0xd0, 0x62, 0x7e, 0x20, + 0x08, 0x7f, 0x1c, 0x8b, 0x6f, 0xd4, 0x56, 0xbf, 0x1e, 0x9b, 0xdd, 0xa0, 0xd0, 0x1a, 0x9f, 0xa9, + 0x8c, 0x5a, 0x06, 0xd2, 0xf0, 0xe8, 0xe1, 0x4b, 0xe7, 0xe0, 0x99, 0xb6, 0xee, 0xed, 0x77, 0x1b, + 0x8b, 0x9a, 0xd5, 0x59, 0x6a, 0x5b, 0x6d, 0x2b, 0xf8, 0xe9, 0x13, 0x3f, 0x91, 0x07, 0xf2, 0x1f, + 0xfb, 0xf9, 0x33, 0xe3, 0x4b, 0x67, 0x23, 0x7f, 0x2b, 0x2d, 0xed, 0xc0, 0x34, 0x33, 0x56, 0xc8, + 0xef, 0x2f, 0xf4, 0x14, 0x21, 0x3d, 0xf4, 0x0e, 0xab, 0xf0, 0xcd, 0x77, 0x48, 0xb9, 0x96, 0xa7, + 0x18, 0x14, 0xeb, 0xe8, 0x41, 0xa3, 0x24, 0xc3, 0x89, 0x1e, 0x3e, 0xba, 0x35, 0x91, 0x13, 0xc1, + 0xf8, 0x5d, 0xc6, 0x38, 0x1d, 0x62, 0xac, 0x33, 0x68, 0x69, 0x0d, 0x26, 0x8e, 0xc3, 0xf5, 0xcf, + 0x8c, 0x2b, 0x87, 0xc2, 0x24, 0x1b, 0x30, 0x49, 0x48, 0xb4, 0xae, 0xeb, 0x59, 0x1d, 0x92, 0xf7, + 0x1e, 0x4e, 0xf3, 0x2f, 0xef, 0xd0, 0xbd, 0x92, 0xc7, 0xb0, 0x35, 0x1f, 0x55, 0x2a, 0x01, 0xf9, + 0xc9, 0xa9, 0x89, 0x34, 0x23, 0x82, 0xe1, 0x2d, 0x36, 0x10, 0xdf, 0xbe, 0xf4, 0x59, 0x98, 0xc1, + 0xff, 0x93, 0xb4, 0x14, 0x1e, 0x49, 0xf4, 0x85, 0x57, 0xe1, 0xfb, 0xaf, 0xd2, 0xed, 0x38, 0xed, + 0x13, 0x84, 0xc6, 0x14, 0x5a, 0xc5, 0x36, 0xf2, 0x3c, 0xe4, 0xb8, 0x8a, 0x6a, 0x0c, 0x1b, 0x5e, + 0xe8, 0xc6, 0xa0, 0xf0, 0x95, 0x77, 0x7b, 0x57, 0x71, 0x83, 0x22, 0xcb, 0x86, 0x51, 0xda, 0x83, + 0x53, 0x43, 0xa2, 0x62, 0x04, 0xce, 0xd7, 0x18, 0xe7, 0xcc, 0x40, 0x64, 0x60, 0xda, 0x1a, 0x70, + 0xb9, 0xbf, 0x96, 0x23, 0x70, 0xfe, 0x3e, 0xe3, 0x94, 0x18, 0x96, 0x2f, 0x29, 0x66, 0xbc, 0x01, + 0x53, 0xb7, 0x91, 0xd3, 0xb0, 0x5c, 0x76, 0x4b, 0x33, 0x02, 0xdd, 0xeb, 0x8c, 0x6e, 0x92, 0x01, + 0xc9, 0xb5, 0x0d, 0xe6, 0xba, 0x02, 0xe9, 0x96, 0xaa, 0xa1, 0x11, 0x28, 0xbe, 0xca, 0x28, 0xc6, + 0xb1, 0x3d, 0x86, 0x96, 0x21, 0xd7, 0xb6, 0x58, 0x65, 0x8a, 0x86, 0xbf, 0xc1, 0xe0, 0x59, 0x8e, + 0x61, 0x14, 0xb6, 0x65, 0x77, 0x0d, 0x5c, 0xb6, 0xa2, 0x29, 0xfe, 0x80, 0x53, 0x70, 0x0c, 0xa3, + 0x38, 0x86, 0x5b, 0xff, 0x90, 0x53, 0xb8, 0x21, 0x7f, 0x3e, 0x0f, 0x59, 0xcb, 0x34, 0x0e, 0x2c, + 0x73, 0x94, 0x41, 0xfc, 0x11, 0x63, 0x00, 0x06, 0xc1, 0x04, 0x57, 0x21, 0x33, 0xea, 0x42, 0xfc, + 0xc9, 0xbb, 0x7c, 0x7b, 0xf0, 0x15, 0xd8, 0x80, 0x49, 0x9e, 0xa0, 0x74, 0xcb, 0x1c, 0x81, 0xe2, + 0x4f, 0x19, 0x45, 0x3e, 0x04, 0x63, 0xd3, 0xf0, 0x90, 0xeb, 0xb5, 0xd1, 0x28, 0x24, 0x6f, 0xf2, + 0x69, 0x30, 0x08, 0x73, 0x65, 0x03, 0x99, 0xda, 0xfe, 0x68, 0x0c, 0x5f, 0xe3, 0xae, 0xe4, 0x18, + 0x4c, 0xb1, 0x06, 0x13, 0x1d, 0xd5, 0x71, 0xf7, 0x55, 0x63, 0xa4, 0xe5, 0xf8, 0x33, 0xc6, 0x91, + 0xf3, 0x41, 0xcc, 0x23, 0x5d, 0xf3, 0x38, 0x34, 0x5f, 0xe7, 0x1e, 0x09, 0xc1, 0xd8, 0xd6, 0x73, + 0x3d, 0x72, 0xa5, 0x75, 0x1c, 0xb6, 0x3f, 0xe7, 0x5b, 0x8f, 0x62, 0xb7, 0xc3, 0x8c, 0x57, 0x21, + 0xe3, 0xea, 0x77, 0x47, 0xa2, 0xf9, 0x0b, 0xbe, 0xd2, 0x04, 0x80, 0xc1, 0x2f, 0xc1, 0xe9, 0xa1, + 0x65, 0x62, 0x04, 0xb2, 0xbf, 0x64, 0x64, 0x27, 0x87, 0x94, 0x0a, 0x96, 0x12, 0x8e, 0x4b, 0xf9, + 0x57, 0x3c, 0x25, 0xa0, 0x3e, 0xae, 0x1a, 0x3e, 0x2b, 0xb8, 0x6a, 0xeb, 0x78, 0x5e, 0xfb, 0x6b, + 0xee, 0x35, 0x8a, 0xed, 0xf1, 0xda, 0x2e, 0x9c, 0x64, 0x8c, 0xc7, 0x5b, 0xd7, 0x6f, 0xf0, 0xc4, + 0x4a, 0xd1, 0x7b, 0xbd, 0xab, 0xfb, 0x39, 0x98, 0xf5, 0xdd, 0xc9, 0x9b, 0x52, 0x57, 0xe9, 0xa8, + 0xf6, 0x08, 0xcc, 0xdf, 0x64, 0xcc, 0x3c, 0xe3, 0xfb, 0x5d, 0xad, 0xbb, 0xad, 0xda, 0x98, 0xfc, + 0x45, 0x28, 0x70, 0xf2, 0xae, 0xe9, 0x20, 0xcd, 0x6a, 0x9b, 0xfa, 0x5d, 0xd4, 0x1c, 0x81, 0xfa, + 0x6f, 0xfa, 0x96, 0x6a, 0x2f, 0x04, 0xc7, 0xcc, 0x9b, 0x20, 0xfa, 0xbd, 0x8a, 0xa2, 0x77, 0x6c, + 0xcb, 0xf1, 0x22, 0x18, 0xbf, 0xc5, 0x57, 0xca, 0xc7, 0x6d, 0x12, 0x58, 0xa9, 0x02, 0x79, 0xf2, + 0x38, 0x6a, 0x48, 0xfe, 0x2d, 0x23, 0x9a, 0x08, 0x50, 0x2c, 0x71, 0x68, 0x56, 0xc7, 0x56, 0x9d, + 0x51, 0xf2, 0xdf, 0xdf, 0xf1, 0xc4, 0xc1, 0x20, 0x2c, 0x71, 0x78, 0x07, 0x36, 0xc2, 0xd5, 0x7e, + 0x04, 0x86, 0x6f, 0xf3, 0xc4, 0xc1, 0x31, 0x8c, 0x82, 0x37, 0x0c, 0x23, 0x50, 0xfc, 0x3d, 0xa7, + 0xe0, 0x18, 0x4c, 0xf1, 0x99, 0xa0, 0xd0, 0x3a, 0xa8, 0xad, 0xbb, 0x9e, 0x43, 0x5b, 0xe1, 0x87, + 0x53, 0x7d, 0xe7, 0xdd, 0xde, 0x26, 0x4c, 0x0e, 0x41, 0x4b, 0x37, 0x60, 0xb2, 0xaf, 0xc5, 0x90, + 0xa2, 0xbe, 0x5f, 0x29, 0xfc, 0xd2, 0xfb, 0x2c, 0x19, 0xf5, 0x76, 0x18, 0xa5, 0x2d, 0xbc, 0xee, + 0xbd, 0x7d, 0x40, 0x34, 0xd9, 0xab, 0xef, 0xfb, 0x4b, 0xdf, 0xd3, 0x06, 0x94, 0xae, 0xc1, 0x44, + 0x4f, 0x0f, 0x10, 0x4d, 0xf5, 0xcb, 0x8c, 0x2a, 0x17, 0x6e, 0x01, 0x4a, 0x2b, 0x90, 0xc0, 0xf5, + 0x3c, 0x1a, 0xfe, 0x2b, 0x0c, 0x4e, 0xcc, 0x4b, 0x9f, 0x82, 0x34, 0xaf, 0xe3, 0xd1, 0xd0, 0x5f, + 0x65, 0x50, 0x1f, 0x82, 0xe1, 0xbc, 0x86, 0x47, 0xc3, 0x7f, 0x8d, 0xc3, 0x39, 0x04, 0xc3, 0x47, + 0x77, 0xe1, 0x3f, 0xfd, 0x7a, 0x82, 0xe5, 0x61, 0xee, 0xbb, 0xab, 0x30, 0xce, 0x8a, 0x77, 0x34, + 0xfa, 0x0b, 0xec, 0xe5, 0x1c, 0x51, 0xba, 0x04, 0xc9, 0x11, 0x1d, 0xfe, 0x1b, 0x0c, 0x4a, 0xed, + 0x4b, 0x6b, 0x90, 0x0d, 0x15, 0xec, 0x68, 0xf8, 0x6f, 0x32, 0x78, 0x18, 0x85, 0x87, 0xce, 0x0a, + 0x76, 0x34, 0xc1, 0x6f, 0xf1, 0xa1, 0x33, 0x04, 0x76, 0x1b, 0xaf, 0xd5, 0xd1, 0xe8, 0xdf, 0xe6, + 0x5e, 0xe7, 0x90, 0xd2, 0xf3, 0x90, 0xf1, 0xf3, 0x6f, 0x34, 0xfe, 0x77, 0x18, 0x3e, 0xc0, 0x60, + 0x0f, 0x84, 0xf2, 0x7f, 0x34, 0xc5, 0xef, 0x72, 0x0f, 0x84, 0x50, 0x78, 0x1b, 0xf5, 0xd7, 0xf4, + 0x68, 0xa6, 0x2f, 0xf2, 0x6d, 0xd4, 0x57, 0xd2, 0xf1, 0x6a, 0x92, 0x34, 0x18, 0x4d, 0xf1, 0x7b, + 0x7c, 0x35, 0x89, 0x3d, 0x1e, 0x46, 0x7f, 0x91, 0x8c, 0xe6, 0xf8, 0x12, 0x1f, 0x46, 0x5f, 0x8d, + 0x2c, 0xd5, 0x40, 0x1a, 0x2c, 0x90, 0xd1, 0x7c, 0x5f, 0x66, 0x7c, 0x53, 0x03, 0xf5, 0xb1, 0xf4, + 0x02, 0x9c, 0x1c, 0x5e, 0x1c, 0xa3, 0x59, 0xbf, 0xf2, 0x7e, 0xdf, 0x71, 0x26, 0x5c, 0x1b, 0x4b, + 0xbb, 0x41, 0x96, 0x0d, 0x17, 0xc6, 0x68, 0xda, 0xd7, 0xde, 0xef, 0x4d, 0xb4, 0xe1, 0xba, 0x58, + 0x2a, 0x03, 0x04, 0x35, 0x29, 0x9a, 0xeb, 0x75, 0xc6, 0x15, 0x02, 0xe1, 0xad, 0xc1, 0x4a, 0x52, + 0x34, 0xfe, 0xab, 0x7c, 0x6b, 0x30, 0x04, 0xde, 0x1a, 0xbc, 0x1a, 0x45, 0xa3, 0xdf, 0xe0, 0x5b, + 0x83, 0x43, 0x4a, 0x57, 0x21, 0x6d, 0x76, 0x0d, 0x03, 0xc7, 0x96, 0xf4, 0xf0, 0x4f, 0xb2, 0x0a, + 0xff, 0xf1, 0x80, 0x81, 0x39, 0xa0, 0xb4, 0x02, 0x49, 0xd4, 0x69, 0xa0, 0x66, 0x14, 0xf2, 0x3f, + 0x1f, 0xf0, 0x7c, 0x82, 0xad, 0x4b, 0xcf, 0x03, 0xd0, 0xc3, 0x34, 0xf9, 0xa1, 0x28, 0x02, 0xfb, + 0x5f, 0x0f, 0xd8, 0xc7, 0x12, 0x01, 0x24, 0x20, 0xa0, 0x9f, 0x5e, 0x3c, 0x9c, 0xe0, 0xdd, 0x5e, + 0x02, 0x72, 0x00, 0xbf, 0x02, 0xe3, 0x37, 0x5d, 0xcb, 0xf4, 0xd4, 0x76, 0x14, 0xfa, 0xbf, 0x19, + 0x9a, 0xdb, 0x63, 0x87, 0x75, 0x2c, 0x07, 0x79, 0x6a, 0xdb, 0x8d, 0xc2, 0xfe, 0x0f, 0xc3, 0xfa, + 0x00, 0x0c, 0xd6, 0x54, 0xd7, 0x1b, 0x65, 0xde, 0x3f, 0xe6, 0x60, 0x0e, 0xc0, 0x83, 0xc6, 0xff, + 0xdf, 0x42, 0x07, 0x51, 0xd8, 0xf7, 0xf8, 0xa0, 0x99, 0x7d, 0xe9, 0x53, 0x90, 0xc1, 0xff, 0xd2, + 0x2f, 0xa0, 0x22, 0xc0, 0xff, 0xcb, 0xc0, 0x01, 0x02, 0xbf, 0xd9, 0xf5, 0x9a, 0x9e, 0x1e, 0xed, + 0xec, 0xff, 0x63, 0x2b, 0xcd, 0xed, 0x4b, 0x65, 0xc8, 0xba, 0x5e, 0xb3, 0xd9, 0x65, 0x1d, 0x4d, + 0x04, 0xfc, 0xff, 0x1f, 0xf8, 0x87, 0x5c, 0x1f, 0xb3, 0x5a, 0x19, 0x7e, 0x5f, 0x07, 0x1b, 0xd6, + 0x86, 0x45, 0x6f, 0xea, 0x5e, 0x9e, 0x8f, 0xbe, 0x72, 0x83, 0x2f, 0x26, 0xe1, 0x84, 0x66, 0x75, + 0x1a, 0x96, 0xbb, 0xd4, 0xb0, 0xbc, 0xfd, 0x25, 0xcb, 0x64, 0x64, 0x52, 0xdc, 0x32, 0xd1, 0xec, + 0xf1, 0x6e, 0xed, 0xe6, 0x4f, 0x43, 0xb2, 0xde, 0x6d, 0x34, 0x0e, 0x24, 0x11, 0xe2, 0x6e, 0xb7, + 0xc1, 0xbe, 0x80, 0xc1, 0xff, 0xce, 0xff, 0x20, 0x0e, 0xd9, 0xba, 0xda, 0xb1, 0x0d, 0x54, 0x35, + 0x51, 0xb5, 0x25, 0x15, 0x20, 0x45, 0x26, 0xf9, 0x1c, 0x31, 0x12, 0xae, 0x8f, 0xc9, 0xec, 0xd9, + 0xd7, 0x2c, 0x93, 0xdb, 0xcc, 0x98, 0xaf, 0x59, 0xf6, 0x35, 0xe7, 0xe9, 0x65, 0xa6, 0xaf, 0x39, + 0xef, 0x6b, 0x2e, 0x90, 0x2b, 0xcd, 0xb8, 0xaf, 0xb9, 0xe0, 0x6b, 0x56, 0xc8, 0x95, 0xfd, 0x84, + 0xaf, 0x59, 0xf1, 0x35, 0x17, 0xc9, 0x25, 0x7d, 0xc2, 0xd7, 0x5c, 0xf4, 0x35, 0x97, 0xc8, 0xdd, + 0xfc, 0x94, 0xaf, 0xb9, 0xe4, 0x6b, 0x2e, 0x93, 0xfb, 0x78, 0xc9, 0xd7, 0x5c, 0xf6, 0x35, 0x57, + 0xc8, 0x87, 0x2e, 0xe3, 0xbe, 0xe6, 0x8a, 0x34, 0x0b, 0xe3, 0x74, 0x66, 0xcf, 0x92, 0x1f, 0x6d, + 0x27, 0xaf, 0x8f, 0xc9, 0x5c, 0x10, 0xe8, 0x9e, 0x23, 0x1f, 0xb3, 0xa4, 0x02, 0xdd, 0x73, 0x81, + 0x6e, 0x99, 0x7c, 0x53, 0x2f, 0x06, 0xba, 0xe5, 0x40, 0x77, 0xbe, 0x30, 0x81, 0x63, 0x23, 0xd0, + 0x9d, 0x0f, 0x74, 0x17, 0x0a, 0x79, 0xec, 0xff, 0x40, 0x77, 0x21, 0xd0, 0xad, 0x14, 0x26, 0xe7, + 0x84, 0x85, 0x5c, 0xa0, 0x5b, 0x91, 0x9e, 0x81, 0xac, 0xdb, 0x6d, 0x28, 0xec, 0x1b, 0x03, 0xf2, + 0xd1, 0x4c, 0x76, 0x19, 0x16, 0x71, 0x44, 0x90, 0x45, 0xbd, 0x3e, 0x26, 0x83, 0xdb, 0x6d, 0xb0, + 0xe4, 0xb9, 0x9a, 0x03, 0x72, 0xd7, 0xa0, 0x90, 0x6f, 0x5d, 0x57, 0xd7, 0xdf, 0xba, 0x5f, 0x1c, + 0xfb, 0xde, 0xfd, 0xe2, 0xd8, 0xbf, 0xdd, 0x2f, 0x8e, 0xbd, 0x7d, 0xbf, 0x28, 0xbc, 0x77, 0xbf, + 0x28, 0x7c, 0x70, 0xbf, 0x28, 0xdc, 0x3b, 0x2c, 0x0a, 0x5f, 0x3b, 0x2c, 0x0a, 0xdf, 0x38, 0x2c, + 0x0a, 0xdf, 0x39, 0x2c, 0x0a, 0x6f, 0x1d, 0x16, 0x85, 0xef, 0x1d, 0x16, 0x85, 0xb7, 0x0f, 0x8b, + 0xc2, 0x8f, 0x0e, 0x8b, 0x63, 0xef, 0x1d, 0x16, 0x85, 0x0f, 0x0e, 0x8b, 0x63, 0xf7, 0x7e, 0x58, + 0x1c, 0x6b, 0xa4, 0x48, 0x18, 0x9d, 0xff, 0x49, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5c, 0xa6, 0x37, + 0xb3, 0x22, 0x33, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -2112,14 +2119,16 @@ func (m *SampleOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x9 i++ - i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 return i, nil } func (m *SampleOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x15 i++ - i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 return i, nil } func (m *SampleOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { @@ -2168,28 +2177,32 @@ func (m *SampleOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x4d i++ - i = encodeFixed32One(dAtA, i, uint32(m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9)) + i += 4 return i, nil } func (m *SampleOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x55 i++ - i = encodeFixed32One(dAtA, i, uint32(m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10)) + i += 4 return i, nil } func (m *SampleOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x59 i++ - i = encodeFixed64One(dAtA, i, uint64(m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11)) + i += 8 return i, nil } func (m *SampleOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x61 i++ - i = encodeFixed64One(dAtA, i, uint64(m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12)) + i += 8 return i, nil } func (m *SampleOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { @@ -2238,24 +2251,6 @@ func (m *SampleOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { } return i, nil } -func encodeFixed64One(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 encodeFixed32One(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 encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2936,15 +2931,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -2954,11 +2942,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -3090,11 +3075,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field9{v} case 10: if wireType != 5 { @@ -3104,11 +3086,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field10{v} case 11: if wireType != 1 { @@ -3118,15 +3097,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field11{v} case 12: if wireType != 1 { @@ -3136,15 +3108,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field12{v} case 13: if wireType != 0 { diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/onepb_test.go index ec354a096..663f7c9d8 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/both/onepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package one import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,13 +58,13 @@ func TestSubbyProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSubbyMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -78,7 +76,7 @@ func TestSubbyMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -94,14 +92,14 @@ func TestSubbyMarshalTo(t *testing.T) { func TestSampleOneOfProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -122,13 +120,13 @@ func TestSampleOneOfProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSampleOneOfMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -140,7 +138,7 @@ func TestSampleOneOfMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -156,15 +154,15 @@ func TestSampleOneOfMarshalTo(t *testing.T) { func TestSubbyJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -177,15 +175,15 @@ func TestSubbyJSON(t *testing.T) { } func TestSampleOneOfJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -198,11 +196,11 @@ func TestSampleOneOfJSON(t *testing.T) { } func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -215,11 +213,11 @@ func TestSubbyProtoText(t *testing.T) { func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -232,11 +230,11 @@ func TestSubbyProtoCompactText(t *testing.T) { func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -249,11 +247,11 @@ func TestSampleOneOfProtoText(t *testing.T) { func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -268,14 +266,14 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -283,14 +281,14 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestSampleOneOfVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -298,37 +296,37 @@ func TestSampleOneOfVerboseEqual(t *testing.T) { } } func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSampleOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSubbySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -339,7 +337,7 @@ func TestSubbySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -347,10 +345,10 @@ func TestSubbySize(t *testing.T) { func TestSampleOneOfSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -361,14 +359,14 @@ func TestSampleOneOfSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -377,7 +375,7 @@ func TestSubbyStringer(t *testing.T) { } } func TestSampleOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go index 7d9877f31..e010b1293 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/one.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -19,15 +18,16 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" +import binary "encoding/binary" + // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -540,269 +540,276 @@ func init() { proto.RegisterType((*Subby)(nil), "one.Subby") proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf") } -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Subby) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *SampleOneOf) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func OneDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3860 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0xdc, 0x5d, 0xc5, - 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, - 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, - 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0xde, 0x99, 0x3a, 0xae, 0xe3, 0xb6, 0x99, - 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, - 0x1f, 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xce, - 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x66, 0x1c, 0x3f, 0x49, 0x38, 0xe7, 0x7c, 0x1f, 0x0e, 0xce, - 0x7f, 0xfe, 0x73, 0x0e, 0x7e, 0x02, 0x7e, 0xb0, 0x0e, 0xe7, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, 0x6a, - 0xcf, 0xb1, 0x3d, 0xbb, 0xd9, 0x6f, 0xaf, 0xb6, 0x90, 0xab, 0x3b, 0x46, 0xcf, 0xb3, 0x9d, 0x15, - 0x22, 0x93, 0xf2, 0xd4, 0x62, 0x85, 0x5b, 0x2c, 0xed, 0xc0, 0xdc, 0x75, 0xc3, 0x44, 0x9b, 0xbe, - 0x61, 0x03, 0x79, 0xd2, 0x15, 0x48, 0xb4, 0x0d, 0x13, 0xc9, 0xc2, 0xb9, 0xf8, 0x72, 0x66, 0xed, - 0xf1, 0x95, 0x21, 0xd0, 0xca, 0x20, 0xa2, 0x8e, 0xc5, 0x0a, 0x41, 0x2c, 0xbd, 0x9b, 0x80, 0xf9, - 0x31, 0x5a, 0x49, 0x82, 0x84, 0xa5, 0x75, 0x31, 0xa3, 0xb0, 0x9c, 0x56, 0xc8, 0xff, 0x92, 0x0c, - 0x33, 0x3d, 0x4d, 0xbf, 0xa3, 0x75, 0x90, 0x1c, 0x23, 0x62, 0x7e, 0x29, 0x15, 0x00, 0x5a, 0xa8, - 0x87, 0xac, 0x16, 0xb2, 0xf4, 0x43, 0x39, 0x7e, 0x2e, 0xbe, 0x9c, 0x56, 0x42, 0x12, 0xe9, 0x19, - 0x98, 0xeb, 0xf5, 0x9b, 0xa6, 0xa1, 0xab, 0x21, 0x33, 0x38, 0x17, 0x5f, 0x4e, 0x2a, 0x22, 0x55, - 0x6c, 0x06, 0xc6, 0x4f, 0x42, 0xfe, 0x1e, 0xd2, 0xee, 0x84, 0x4d, 0x33, 0xc4, 0x34, 0x87, 0xc5, - 0x21, 0xc3, 0x32, 0x64, 0xbb, 0xc8, 0x75, 0xb5, 0x0e, 0x52, 0xbd, 0xc3, 0x1e, 0x92, 0x13, 0xe4, - 0xe9, 0xcf, 0x8d, 0x3c, 0xfd, 0xf0, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xb0, 0x87, 0xa4, 0x12, 0xa4, - 0x91, 0xd5, 0xef, 0x52, 0x86, 0xe4, 0x31, 0xf1, 0xab, 0x58, 0xfd, 0xee, 0x30, 0x4b, 0x0a, 0xc3, - 0x18, 0xc5, 0x8c, 0x8b, 0x9c, 0xbb, 0x86, 0x8e, 0xe4, 0x69, 0x42, 0xf0, 0xe4, 0x08, 0x41, 0x83, - 0xea, 0x87, 0x39, 0x38, 0x4e, 0x2a, 0x43, 0x1a, 0xbd, 0xec, 0x21, 0xcb, 0x35, 0x6c, 0x4b, 0x9e, - 0x21, 0x24, 0x4f, 0x8c, 0x59, 0x45, 0x64, 0xb6, 0x86, 0x29, 0x02, 0x9c, 0x74, 0x09, 0x66, 0xec, - 0x9e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xce, 0x09, 0xcb, 0x99, 0xb5, 0x4f, 0x8c, 0x4d, 0x84, 0x1a, - 0xb5, 0x51, 0xb8, 0xb1, 0x54, 0x05, 0xd1, 0xb5, 0xfb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, 0x21, 0xd5, - 0xb0, 0xda, 0xb6, 0x9c, 0x26, 0x04, 0x67, 0x47, 0x1f, 0x84, 0x18, 0x96, 0xed, 0x16, 0xaa, 0x5a, - 0x6d, 0x5b, 0xc9, 0xb9, 0x03, 0xd7, 0xd2, 0x29, 0x98, 0x76, 0x0f, 0x2d, 0x4f, 0x7b, 0x59, 0xce, - 0x92, 0x0c, 0x61, 0x57, 0x4b, 0xff, 0x97, 0x84, 0xfc, 0x24, 0x29, 0x76, 0x0d, 0x92, 0x6d, 0xfc, - 0x94, 0x72, 0xec, 0x24, 0x31, 0xa0, 0x98, 0xc1, 0x20, 0x4e, 0xff, 0x84, 0x41, 0x2c, 0x41, 0xc6, - 0x42, 0xae, 0x87, 0x5a, 0x34, 0x23, 0xe2, 0x13, 0xe6, 0x14, 0x50, 0xd0, 0x68, 0x4a, 0x25, 0x7e, - 0xa2, 0x94, 0xba, 0x05, 0x79, 0xdf, 0x25, 0xd5, 0xd1, 0xac, 0x0e, 0xcf, 0xcd, 0xd5, 0x28, 0x4f, - 0x56, 0x2a, 0x1c, 0xa7, 0x60, 0x98, 0x92, 0x43, 0x03, 0xd7, 0xd2, 0x26, 0x80, 0x6d, 0x21, 0xbb, - 0xad, 0xb6, 0x90, 0x6e, 0xca, 0xa9, 0x63, 0xa2, 0x54, 0xc3, 0x26, 0x23, 0x51, 0xb2, 0xa9, 0x54, - 0x37, 0xa5, 0xab, 0x41, 0xaa, 0xcd, 0x1c, 0x93, 0x29, 0x3b, 0x74, 0x93, 0x8d, 0x64, 0xdb, 0x3e, - 0xe4, 0x1c, 0x84, 0xf3, 0x1e, 0xb5, 0xd8, 0x93, 0xa5, 0x89, 0x13, 0x2b, 0x91, 0x4f, 0xa6, 0x30, - 0x18, 0x7d, 0xb0, 0x59, 0x27, 0x7c, 0x29, 0x7d, 0x12, 0x7c, 0x81, 0x4a, 0xd2, 0x0a, 0x48, 0x15, - 0xca, 0x72, 0xe1, 0xae, 0xd6, 0x45, 0x8b, 0x57, 0x20, 0x37, 0x18, 0x1e, 0x69, 0x01, 0x92, 0xae, - 0xa7, 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x91, 0x2a, 0x97, - 0x54, 0xf0, 0xbf, 0x8b, 0x97, 0x61, 0x76, 0xe0, 0xf6, 0x93, 0x02, 0x97, 0x5e, 0x9b, 0x86, 0x85, - 0x71, 0x39, 0x37, 0x36, 0xfd, 0x4f, 0xc1, 0xb4, 0xd5, 0xef, 0x36, 0x91, 0x23, 0xc7, 0x09, 0x03, - 0xbb, 0x92, 0x4a, 0x90, 0x34, 0xb5, 0x26, 0x32, 0xe5, 0xc4, 0x39, 0x61, 0x39, 0xb7, 0xf6, 0xcc, - 0x44, 0x59, 0xbd, 0xb2, 0x8d, 0x21, 0x0a, 0x45, 0x4a, 0x9f, 0x81, 0x04, 0x2b, 0x71, 0x98, 0xe1, - 0xe9, 0xc9, 0x18, 0x70, 0x2e, 0x2a, 0x04, 0x27, 0x3d, 0x0a, 0x69, 0xfc, 0x97, 0xc6, 0x76, 0x9a, - 0xf8, 0x9c, 0xc2, 0x02, 0x1c, 0x57, 0x69, 0x11, 0x52, 0x24, 0xcd, 0x5a, 0x88, 0xb7, 0x06, 0xff, - 0x1a, 0x2f, 0x4c, 0x0b, 0xb5, 0xb5, 0xbe, 0xe9, 0xa9, 0x77, 0x35, 0xb3, 0x8f, 0x48, 0xc2, 0xa4, - 0x95, 0x2c, 0x13, 0x7e, 0x0e, 0xcb, 0xa4, 0xb3, 0x90, 0xa1, 0x59, 0x69, 0x58, 0x2d, 0xf4, 0x32, - 0xa9, 0x3e, 0x49, 0x85, 0x26, 0x6a, 0x15, 0x4b, 0xf0, 0xed, 0x6f, 0xbb, 0xb6, 0xc5, 0x97, 0x96, - 0xdc, 0x02, 0x0b, 0xc8, 0xed, 0x2f, 0x0f, 0x17, 0xbe, 0xc7, 0xc6, 0x3f, 0xde, 0x70, 0x2e, 0x2e, - 0x7d, 0x2b, 0x06, 0x09, 0xb2, 0xdf, 0xf2, 0x90, 0xd9, 0x7b, 0xa9, 0x5e, 0x51, 0x37, 0x6b, 0xfb, - 0x1b, 0xdb, 0x15, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x7d, 0xbb, 0x56, 0xda, 0x13, 0x63, 0xfe, - 0x75, 0x75, 0x77, 0xef, 0xd2, 0x45, 0x31, 0xee, 0x03, 0xf6, 0xa9, 0x20, 0x11, 0x36, 0xb8, 0xb0, - 0x26, 0x26, 0x25, 0x11, 0xb2, 0x94, 0xa0, 0x7a, 0xab, 0xb2, 0x79, 0xe9, 0xa2, 0x38, 0x3d, 0x28, - 0xb9, 0xb0, 0x26, 0xce, 0x48, 0xb3, 0x90, 0x26, 0x92, 0x8d, 0x5a, 0x6d, 0x5b, 0x4c, 0xf9, 0x9c, - 0x8d, 0x3d, 0xa5, 0xba, 0xbb, 0x25, 0xa6, 0x7d, 0xce, 0x2d, 0xa5, 0xb6, 0x5f, 0x17, 0xc1, 0x67, - 0xd8, 0xa9, 0x34, 0x1a, 0xa5, 0xad, 0x8a, 0x98, 0xf1, 0x2d, 0x36, 0x5e, 0xda, 0xab, 0x34, 0xc4, - 0xec, 0x80, 0x5b, 0x17, 0xd6, 0xc4, 0x59, 0xff, 0x16, 0x95, 0xdd, 0xfd, 0x1d, 0x31, 0x27, 0xcd, - 0xc1, 0x2c, 0xbd, 0x05, 0x77, 0x22, 0x3f, 0x24, 0xba, 0x74, 0x51, 0x14, 0x03, 0x47, 0x28, 0xcb, - 0xdc, 0x80, 0xe0, 0xd2, 0x45, 0x51, 0x5a, 0x2a, 0x43, 0x92, 0x64, 0x97, 0x24, 0x41, 0x6e, 0xbb, - 0xb4, 0x51, 0xd9, 0x56, 0x6b, 0xf5, 0xbd, 0x6a, 0x6d, 0xb7, 0xb4, 0x2d, 0x0a, 0x81, 0x4c, 0xa9, - 0x7c, 0x76, 0xbf, 0xaa, 0x54, 0x36, 0xc5, 0x58, 0x58, 0x56, 0xaf, 0x94, 0xf6, 0x2a, 0x9b, 0x62, - 0x7c, 0x49, 0x87, 0x85, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x98, 0x25, 0x26, - 0x5c, 0x23, 0x4b, 0xfc, 0x15, 0x01, 0xe6, 0xc7, 0xd4, 0xda, 0xb1, 0x37, 0x79, 0x01, 0x92, 0x34, - 0x45, 0x69, 0xf7, 0x79, 0x6a, 0x6c, 0xd1, 0x26, 0x09, 0x3b, 0xd2, 0x81, 0x08, 0x2e, 0xdc, 0x81, - 0xe3, 0xc7, 0x74, 0x60, 0x4c, 0x31, 0xe2, 0xe4, 0xab, 0x02, 0xc8, 0xc7, 0x71, 0x47, 0x14, 0x8a, - 0xd8, 0x40, 0xa1, 0xb8, 0x36, 0xec, 0xc0, 0xf9, 0xe3, 0x9f, 0x61, 0xc4, 0x8b, 0xb7, 0x04, 0x38, - 0x35, 0x7e, 0x50, 0x19, 0xeb, 0xc3, 0x67, 0x60, 0xba, 0x8b, 0xbc, 0x03, 0x9b, 0x37, 0xeb, 0x4f, - 0x8d, 0x69, 0x01, 0x58, 0x3d, 0x1c, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x71, 0xd3, 0x06, 0xf5, - 0x66, 0xc4, 0xd3, 0x2f, 0xc6, 0xe0, 0x91, 0xb1, 0xe4, 0x63, 0x1d, 0x7d, 0x0c, 0xc0, 0xb0, 0x7a, - 0x7d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x7d, 0xcf, 0xd7, - 0xc7, 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x09, 0x1c, 0x4d, 0x10, 0x47, 0x0b, 0xc7, 0x3c, 0xe9, - 0x48, 0xaf, 0x7b, 0x0e, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, 0x6b, 0x58, - 0x1d, 0x52, 0x80, 0x53, 0xc5, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xe4, 0xa9, 0xba, 0xc1, 0xb5, 0x18, - 0x41, 0xba, 0x8c, 0x13, 0x42, 0x4c, 0x0f, 0x20, 0xa8, 0xda, 0x47, 0x2c, 0x7d, 0x7d, 0x06, 0x32, - 0xa1, 0xb1, 0x4e, 0x3a, 0x0f, 0xd9, 0xdb, 0xda, 0x5d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, 0x44, 0x06, - 0xcb, 0xea, 0x6c, 0x5c, 0x7f, 0x0e, 0x16, 0x88, 0x89, 0xdd, 0xf7, 0x90, 0xa3, 0xea, 0xa6, 0xe6, - 0xba, 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0xca, 0x5c, 0x23, 0xad, 0xc3, 0x3c, - 0x41, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, 0xdf, 0xb3, - 0x39, 0x6c, 0xb1, 0xc3, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x09, 0x8f, 0x11, 0x58, 0x07, 0x59, 0xc8, - 0xd1, 0x3c, 0xa4, 0xa2, 0x2f, 0xf4, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa5, 0x1e, 0x68, 0xee, 0x81, - 0xbc, 0x80, 0x09, 0x36, 0x62, 0xb2, 0xa0, 0x9c, 0xc1, 0x86, 0x5b, 0xcc, 0xae, 0x42, 0xcc, 0x4a, - 0x56, 0xeb, 0x86, 0xe6, 0x1e, 0x48, 0x45, 0x38, 0x45, 0x58, 0x5c, 0xcf, 0x31, 0xac, 0x8e, 0xaa, - 0x1f, 0x20, 0xfd, 0x8e, 0xda, 0xf7, 0xda, 0x57, 0xe4, 0x47, 0xc3, 0xf7, 0x27, 0x1e, 0x36, 0x88, - 0x4d, 0x19, 0x9b, 0xec, 0x7b, 0xed, 0x2b, 0x52, 0x03, 0xb2, 0x78, 0x31, 0xba, 0xc6, 0x2b, 0x48, - 0x6d, 0xdb, 0x0e, 0xe9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0x14, 0xc1, 0x95, 0x1a, 0x03, 0xec, 0xd8, - 0x2d, 0x54, 0x4c, 0x36, 0xea, 0x95, 0xca, 0xa6, 0x92, 0xe1, 0x2c, 0xd7, 0x6d, 0x07, 0x27, 0x54, - 0xc7, 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb1, 0x79, 0x78, 0xd7, 0x61, 0x5e, 0xd7, 0xe9, 0x33, - 0x1b, 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x07, 0x82, 0xa5, 0xeb, 0x5b, 0xd4, 0x80, 0xe5, 0xb8, - 0x2b, 0x5d, 0x85, 0x47, 0x82, 0x60, 0x85, 0x81, 0x73, 0x23, 0x4f, 0x39, 0x0c, 0x5d, 0x87, 0xf9, - 0xde, 0xe1, 0x28, 0x50, 0x1a, 0xb8, 0x63, 0xef, 0x70, 0x18, 0xf6, 0x04, 0x79, 0x6d, 0x73, 0x90, - 0xae, 0x79, 0xa8, 0x25, 0x9f, 0x0e, 0x5b, 0x87, 0x14, 0xd2, 0x2a, 0x88, 0xba, 0xae, 0x22, 0x4b, - 0x6b, 0x9a, 0x48, 0xd5, 0x1c, 0x64, 0x69, 0xae, 0x7c, 0x36, 0x6c, 0x9c, 0xd3, 0xf5, 0x0a, 0xd1, - 0x96, 0x88, 0x52, 0x7a, 0x1a, 0xe6, 0xec, 0xe6, 0x6d, 0x9d, 0x66, 0x96, 0xda, 0x73, 0x50, 0xdb, - 0x78, 0x59, 0x7e, 0x9c, 0x84, 0x29, 0x8f, 0x15, 0x24, 0xaf, 0xea, 0x44, 0x2c, 0x3d, 0x05, 0xa2, - 0xee, 0x1e, 0x68, 0x4e, 0x8f, 0xb4, 0x76, 0xb7, 0xa7, 0xe9, 0x48, 0x7e, 0x82, 0x9a, 0x52, 0xf9, - 0x2e, 0x17, 0xe3, 0xcc, 0x76, 0xef, 0x19, 0x6d, 0x8f, 0x33, 0x3e, 0x49, 0x33, 0x9b, 0xc8, 0x18, - 0xdb, 0x2d, 0x58, 0xe8, 0x5b, 0x86, 0xe5, 0x21, 0xa7, 0xe7, 0x20, 0x3c, 0xc4, 0xd3, 0x9d, 0x28, - 0xff, 0xeb, 0xcc, 0x31, 0x63, 0xf8, 0x7e, 0xd8, 0x9a, 0x26, 0x80, 0x32, 0xdf, 0x1f, 0x15, 0x2e, - 0x15, 0x21, 0x1b, 0xce, 0x0b, 0x29, 0x0d, 0x34, 0x33, 0x44, 0x01, 0xf7, 0xd8, 0x72, 0x6d, 0x13, - 0x77, 0xc7, 0xcf, 0x57, 0xc4, 0x18, 0xee, 0xd2, 0xdb, 0xd5, 0xbd, 0x8a, 0xaa, 0xec, 0xef, 0xee, - 0x55, 0x77, 0x2a, 0x62, 0xfc, 0xe9, 0x74, 0xea, 0x87, 0x33, 0xe2, 0xfd, 0xfb, 0xf7, 0xef, 0xc7, - 0x96, 0xbe, 0x13, 0x83, 0xdc, 0xe0, 0x64, 0x2c, 0xfd, 0x2c, 0x9c, 0xe6, 0xaf, 0xb1, 0x2e, 0xf2, - 0xd4, 0x7b, 0x86, 0x43, 0x52, 0xb5, 0xab, 0xd1, 0xd9, 0xd2, 0x8f, 0xf2, 0x02, 0xb3, 0x6a, 0x20, - 0xef, 0x45, 0xc3, 0xc1, 0x89, 0xd8, 0xd5, 0x3c, 0x69, 0x1b, 0xce, 0x5a, 0xb6, 0xea, 0x7a, 0x9a, - 0xd5, 0xd2, 0x9c, 0x96, 0x1a, 0x1c, 0x20, 0xa8, 0x9a, 0xae, 0x23, 0xd7, 0xb5, 0x69, 0x8b, 0xf0, - 0x59, 0x3e, 0x61, 0xd9, 0x0d, 0x66, 0x1c, 0xd4, 0xce, 0x12, 0x33, 0x1d, 0xca, 0x88, 0xf8, 0x71, - 0x19, 0xf1, 0x28, 0xa4, 0xbb, 0x5a, 0x4f, 0x45, 0x96, 0xe7, 0x1c, 0x92, 0x79, 0x2e, 0xa5, 0xa4, - 0xba, 0x5a, 0xaf, 0x82, 0xaf, 0x3f, 0xba, 0x35, 0x08, 0xc7, 0xf1, 0xfb, 0x71, 0xc8, 0x86, 0x67, - 0x3a, 0x3c, 0x22, 0xeb, 0xa4, 0x7e, 0x0b, 0x64, 0x87, 0x7f, 0xf2, 0xa1, 0x13, 0xe0, 0x4a, 0x19, - 0x17, 0xf6, 0xe2, 0x34, 0x9d, 0xb4, 0x14, 0x8a, 0xc4, 0x4d, 0x15, 0xef, 0x69, 0x44, 0xe7, 0xf7, - 0x94, 0xc2, 0xae, 0xa4, 0x2d, 0x98, 0xbe, 0xed, 0x12, 0xee, 0x69, 0xc2, 0xfd, 0xf8, 0xc3, 0xb9, - 0x6f, 0x36, 0x08, 0x79, 0xfa, 0x66, 0x43, 0xdd, 0xad, 0x29, 0x3b, 0xa5, 0x6d, 0x85, 0xc1, 0xa5, - 0x33, 0x90, 0x30, 0xb5, 0x57, 0x0e, 0x07, 0x5b, 0x00, 0x11, 0x4d, 0x1a, 0xf8, 0x33, 0x90, 0xb8, - 0x87, 0xb4, 0x3b, 0x83, 0x85, 0x97, 0x88, 0x3e, 0xc2, 0xd4, 0x5f, 0x85, 0x24, 0x89, 0x97, 0x04, - 0xc0, 0x22, 0x26, 0x4e, 0x49, 0x29, 0x48, 0x94, 0x6b, 0x0a, 0x4e, 0x7f, 0x11, 0xb2, 0x54, 0xaa, - 0xd6, 0xab, 0x95, 0x72, 0x45, 0x8c, 0x2d, 0xad, 0xc3, 0x34, 0x0d, 0x02, 0xde, 0x1a, 0x7e, 0x18, - 0xc4, 0x29, 0x76, 0xc9, 0x38, 0x04, 0xae, 0xdd, 0xdf, 0xd9, 0xa8, 0x28, 0x62, 0x2c, 0xbc, 0xbc, - 0x2e, 0x64, 0xc3, 0xe3, 0xdc, 0x4f, 0x27, 0xa7, 0xfe, 0x5e, 0x80, 0x4c, 0x68, 0x3c, 0xc3, 0x83, - 0x81, 0x66, 0x9a, 0xf6, 0x3d, 0x55, 0x33, 0x0d, 0xcd, 0x65, 0x49, 0x01, 0x44, 0x54, 0xc2, 0x92, - 0x49, 0x17, 0xed, 0xa7, 0xe2, 0xfc, 0x9b, 0x02, 0x88, 0xc3, 0xa3, 0xdd, 0x90, 0x83, 0xc2, 0xc7, - 0xea, 0xe0, 0x1b, 0x02, 0xe4, 0x06, 0xe7, 0xb9, 0x21, 0xf7, 0xce, 0x7f, 0xac, 0xee, 0xbd, 0x13, - 0x83, 0xd9, 0x81, 0x29, 0x6e, 0x52, 0xef, 0xbe, 0x00, 0x73, 0x46, 0x0b, 0x75, 0x7b, 0xb6, 0x87, - 0x2c, 0xfd, 0x50, 0x35, 0xd1, 0x5d, 0x64, 0xca, 0x4b, 0xa4, 0x50, 0xac, 0x3e, 0x7c, 0x4e, 0x5c, - 0xa9, 0x06, 0xb8, 0x6d, 0x0c, 0x2b, 0xce, 0x57, 0x37, 0x2b, 0x3b, 0xf5, 0xda, 0x5e, 0x65, 0xb7, - 0xfc, 0x92, 0xba, 0xbf, 0xfb, 0x73, 0xbb, 0xb5, 0x17, 0x77, 0x15, 0xd1, 0x18, 0x32, 0xfb, 0x08, - 0xb7, 0x7a, 0x1d, 0xc4, 0x61, 0xa7, 0xa4, 0xd3, 0x30, 0xce, 0x2d, 0x71, 0x4a, 0x9a, 0x87, 0xfc, - 0x6e, 0x4d, 0x6d, 0x54, 0x37, 0x2b, 0x6a, 0xe5, 0xfa, 0xf5, 0x4a, 0x79, 0xaf, 0x41, 0x5f, 0x9c, - 0x7d, 0xeb, 0xbd, 0xc1, 0x4d, 0xfd, 0x7a, 0x1c, 0xe6, 0xc7, 0x78, 0x22, 0x95, 0xd8, 0xcc, 0x4e, - 0x5f, 0x23, 0x9e, 0x9d, 0xc4, 0xfb, 0x15, 0x3c, 0x15, 0xd4, 0x35, 0xc7, 0x63, 0x23, 0xfe, 0x53, - 0x80, 0xa3, 0x64, 0x79, 0x46, 0xdb, 0x40, 0x0e, 0x3b, 0x67, 0xa0, 0x83, 0x7c, 0x3e, 0x90, 0xd3, - 0xa3, 0x86, 0x9f, 0x01, 0xa9, 0x67, 0xbb, 0x86, 0x67, 0xdc, 0x45, 0xaa, 0x61, 0xf1, 0x43, 0x09, - 0x3c, 0xd8, 0x27, 0x14, 0x91, 0x6b, 0xaa, 0x96, 0xe7, 0x5b, 0x5b, 0xa8, 0xa3, 0x0d, 0x59, 0xe3, - 0x02, 0x1e, 0x57, 0x44, 0xae, 0xf1, 0xad, 0xcf, 0x43, 0xb6, 0x65, 0xf7, 0xf1, 0x98, 0x44, 0xed, - 0x70, 0xbf, 0x10, 0x94, 0x0c, 0x95, 0xf9, 0x26, 0x6c, 0x8e, 0x0d, 0x4e, 0x43, 0xb2, 0x4a, 0x86, - 0xca, 0xa8, 0xc9, 0x93, 0x90, 0xd7, 0x3a, 0x1d, 0x07, 0x93, 0x73, 0x22, 0x3a, 0x99, 0xe7, 0x7c, - 0x31, 0x31, 0x5c, 0xbc, 0x09, 0x29, 0x1e, 0x07, 0xdc, 0x92, 0x71, 0x24, 0xd4, 0x1e, 0x3d, 0x93, - 0x8a, 0x2d, 0xa7, 0x95, 0x94, 0xc5, 0x95, 0xe7, 0x21, 0x6b, 0xb8, 0x6a, 0x70, 0x38, 0x1a, 0x3b, - 0x17, 0x5b, 0x4e, 0x29, 0x19, 0xc3, 0xf5, 0x4f, 0xc3, 0x96, 0xde, 0x8a, 0x41, 0x6e, 0xf0, 0x70, - 0x57, 0xda, 0x84, 0x94, 0x69, 0xeb, 0x1a, 0x49, 0x2d, 0xfa, 0xcb, 0xc2, 0x72, 0xc4, 0x79, 0xf0, - 0xca, 0x36, 0xb3, 0x57, 0x7c, 0xe4, 0xe2, 0x3f, 0x0b, 0x90, 0xe2, 0x62, 0xe9, 0x14, 0x24, 0x7a, - 0x9a, 0x77, 0x40, 0xe8, 0x92, 0x1b, 0x31, 0x51, 0x50, 0xc8, 0x35, 0x96, 0xbb, 0x3d, 0xcd, 0x22, - 0x29, 0xc0, 0xe4, 0xf8, 0x1a, 0xaf, 0xab, 0x89, 0xb4, 0x16, 0x19, 0xfb, 0xed, 0x6e, 0x17, 0x59, - 0x9e, 0xcb, 0xd7, 0x95, 0xc9, 0xcb, 0x4c, 0x2c, 0x3d, 0x03, 0x73, 0x9e, 0xa3, 0x19, 0xe6, 0x80, - 0x6d, 0x82, 0xd8, 0x8a, 0x5c, 0xe1, 0x1b, 0x17, 0xe1, 0x0c, 0xe7, 0x6d, 0x21, 0x4f, 0xd3, 0x0f, - 0x50, 0x2b, 0x00, 0x4d, 0x93, 0x93, 0xc3, 0xd3, 0xcc, 0x60, 0x93, 0xe9, 0x39, 0x76, 0xe9, 0x7b, - 0x02, 0xcc, 0xf1, 0x17, 0x95, 0x96, 0x1f, 0xac, 0x1d, 0x00, 0xcd, 0xb2, 0x6c, 0x2f, 0x1c, 0xae, - 0xd1, 0x54, 0x1e, 0xc1, 0xad, 0x94, 0x7c, 0x90, 0x12, 0x22, 0x58, 0xec, 0x02, 0x04, 0x9a, 0x63, - 0xc3, 0x76, 0x16, 0x32, 0xec, 0xe4, 0x9e, 0xfc, 0xfc, 0x43, 0x5f, 0x6d, 0x81, 0x8a, 0xf0, 0x1b, - 0x8d, 0xb4, 0x00, 0xc9, 0x26, 0xea, 0x18, 0x16, 0x3b, 0x4f, 0xa4, 0x17, 0xfc, 0x94, 0x32, 0xe1, - 0x9f, 0x52, 0x6e, 0xdc, 0x82, 0x79, 0xdd, 0xee, 0x0e, 0xbb, 0xbb, 0x21, 0x0e, 0xbd, 0x5e, 0xbb, - 0x37, 0x84, 0xcf, 0x43, 0x30, 0x62, 0x7e, 0x25, 0x16, 0xdf, 0xaa, 0x6f, 0x7c, 0x2d, 0xb6, 0xb8, - 0x45, 0x71, 0x75, 0xfe, 0x98, 0x0a, 0x6a, 0x9b, 0x48, 0xc7, 0xae, 0xc3, 0x8f, 0x3e, 0x05, 0xcf, - 0x76, 0x0c, 0xef, 0xa0, 0xdf, 0x5c, 0xd1, 0xed, 0xee, 0x6a, 0xc7, 0xee, 0xd8, 0xc1, 0xcf, 0x5d, - 0xf8, 0x8a, 0x5c, 0x90, 0xff, 0xd8, 0x4f, 0x5e, 0x69, 0x5f, 0xba, 0x18, 0xf9, 0xfb, 0x58, 0x71, - 0x17, 0xe6, 0x99, 0xb1, 0x4a, 0xce, 0xdc, 0xe9, 0xab, 0x81, 0xf4, 0xd0, 0x73, 0x17, 0xf9, 0x9b, - 0xef, 0x92, 0x5e, 0xad, 0xcc, 0x31, 0x28, 0xd6, 0xd1, 0x17, 0x88, 0xa2, 0x02, 0x8f, 0x0c, 0xf0, - 0xd1, 0x7d, 0x89, 0x9c, 0x08, 0xc6, 0xef, 0x30, 0xc6, 0xf9, 0x10, 0x63, 0x83, 0x41, 0x8b, 0x65, - 0x98, 0x3d, 0x09, 0xd7, 0x3f, 0x32, 0xae, 0x2c, 0x0a, 0x93, 0x6c, 0x41, 0x9e, 0x90, 0xe8, 0x7d, - 0xd7, 0xb3, 0xbb, 0xa4, 0xe8, 0x3d, 0x9c, 0xe6, 0x9f, 0xde, 0xa5, 0x1b, 0x25, 0x87, 0x61, 0x65, - 0x1f, 0x55, 0x2c, 0x02, 0xf9, 0x99, 0xa1, 0x85, 0x74, 0x33, 0x82, 0xe1, 0x6d, 0xe6, 0x88, 0x6f, - 0x5f, 0xfc, 0x1c, 0x2c, 0xe0, 0xff, 0x49, 0x4d, 0x0a, 0x7b, 0x12, 0x7d, 0xca, 0x24, 0x7f, 0xef, - 0x55, 0xba, 0x17, 0xe7, 0x7d, 0x82, 0x90, 0x4f, 0xa1, 0x55, 0xec, 0x20, 0xcf, 0x43, 0x8e, 0xab, - 0x6a, 0xe6, 0x38, 0xf7, 0x42, 0xaf, 0xe9, 0xf2, 0x97, 0xde, 0x1b, 0x5c, 0xc5, 0x2d, 0x8a, 0x2c, - 0x99, 0x66, 0x71, 0x1f, 0x4e, 0x8f, 0xc9, 0x8a, 0x09, 0x38, 0x5f, 0x67, 0x9c, 0x0b, 0x23, 0x99, - 0x81, 0x69, 0xeb, 0xc0, 0xe5, 0xfe, 0x5a, 0x4e, 0xc0, 0xf9, 0xfb, 0x8c, 0x53, 0x62, 0x58, 0xbe, - 0xa4, 0x98, 0xf1, 0x26, 0xcc, 0xdd, 0x45, 0x4e, 0xd3, 0x76, 0xd9, 0xd1, 0xc8, 0x04, 0x74, 0x6f, - 0x30, 0xba, 0x3c, 0x03, 0x92, 0xb3, 0x12, 0xcc, 0x75, 0x15, 0x52, 0x6d, 0x4d, 0x47, 0x13, 0x50, - 0x7c, 0x99, 0x51, 0xcc, 0x60, 0x7b, 0x0c, 0x2d, 0x41, 0xb6, 0x63, 0xb3, 0xb6, 0x14, 0x0d, 0x7f, - 0x93, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x7a, 0x76, 0xaf, 0x6f, 0xe2, 0x9e, 0x15, 0x4d, 0xf1, 0x07, - 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xc2, 0xfa, 0x87, 0x9c, 0xc2, 0x0d, 0xc5, 0xf3, 0x05, 0xc8, - 0xd8, 0x96, 0x79, 0x68, 0x5b, 0x93, 0x38, 0xf1, 0x47, 0x8c, 0x01, 0x18, 0x04, 0x13, 0x5c, 0x83, - 0xf4, 0xa4, 0x0b, 0xf1, 0xc7, 0xef, 0xf1, 0xed, 0xc1, 0x57, 0x60, 0x0b, 0xf2, 0xbc, 0x40, 0x19, - 0xb6, 0x35, 0x01, 0xc5, 0x9f, 0x30, 0x8a, 0x5c, 0x08, 0xc6, 0x1e, 0xc3, 0x43, 0xae, 0xd7, 0x41, - 0x93, 0x90, 0xbc, 0xc5, 0x1f, 0x83, 0x41, 0x58, 0x28, 0x9b, 0xc8, 0xd2, 0x0f, 0x26, 0x63, 0xf8, - 0x2a, 0x0f, 0x25, 0xc7, 0x60, 0x8a, 0x32, 0xcc, 0x76, 0x35, 0xc7, 0x3d, 0xd0, 0xcc, 0x89, 0x96, - 0xe3, 0x4f, 0x19, 0x47, 0xd6, 0x07, 0xb1, 0x88, 0xf4, 0xad, 0x93, 0xd0, 0x7c, 0x8d, 0x47, 0x24, - 0x04, 0x63, 0x5b, 0xcf, 0xf5, 0xc8, 0x01, 0xd4, 0x49, 0xd8, 0xbe, 0xce, 0xb7, 0x1e, 0xc5, 0xee, - 0x84, 0x19, 0xaf, 0x41, 0xda, 0x35, 0x5e, 0x99, 0x88, 0xe6, 0xcf, 0xf8, 0x4a, 0x13, 0x00, 0x06, - 0xbf, 0x04, 0x67, 0xc6, 0xb6, 0x89, 0x09, 0xc8, 0xfe, 0x9c, 0x91, 0x9d, 0x1a, 0xd3, 0x2a, 0x58, - 0x49, 0x38, 0x29, 0xe5, 0x5f, 0xf0, 0x92, 0x80, 0x86, 0xb8, 0xea, 0xf8, 0x45, 0xc1, 0xd5, 0xda, - 0x27, 0x8b, 0xda, 0x5f, 0xf2, 0xa8, 0x51, 0xec, 0x40, 0xd4, 0xf6, 0xe0, 0x14, 0x63, 0x3c, 0xd9, - 0xba, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0xde, 0x1f, 0x5c, 0xdd, 0x9f, 0x87, 0x45, 0x3f, 0x9c, 0x7c, - 0x22, 0x75, 0xd5, 0xae, 0xd6, 0x9b, 0x80, 0xf9, 0x9b, 0x8c, 0x99, 0x57, 0x7c, 0x7f, 0xa4, 0x75, - 0x77, 0xb4, 0x1e, 0x26, 0xbf, 0x05, 0x32, 0x27, 0xef, 0x5b, 0x0e, 0xd2, 0xed, 0x8e, 0x65, 0xbc, - 0x82, 0x5a, 0x13, 0x50, 0xff, 0xd5, 0xd0, 0x52, 0xed, 0x87, 0xe0, 0x98, 0xb9, 0x0a, 0xa2, 0x3f, - 0xab, 0xa8, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0x5f, 0xf3, 0x95, 0xf2, 0x71, 0x55, 0x02, - 0x2b, 0x56, 0x20, 0x47, 0x2e, 0x27, 0x4d, 0xc9, 0xbf, 0x61, 0x44, 0xb3, 0x01, 0x8a, 0x15, 0x0e, - 0xdd, 0xee, 0xf6, 0x34, 0x67, 0x92, 0xfa, 0xf7, 0xb7, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, 0xde, - 0x61, 0x0f, 0xe1, 0x6e, 0x3f, 0x01, 0xc3, 0xb7, 0x78, 0xe1, 0xe0, 0x18, 0x46, 0xc1, 0x07, 0x86, - 0x09, 0x28, 0xfe, 0x8e, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x6c, 0xd0, 0x68, 0x1d, 0xd4, 0x31, 0x5c, - 0xcf, 0xa1, 0x73, 0xf0, 0xc3, 0xa9, 0xbe, 0xfd, 0xde, 0xe0, 0x10, 0xa6, 0x84, 0xa0, 0xc5, 0x9b, - 0x90, 0x1f, 0x1a, 0x31, 0xa4, 0xa8, 0x6f, 0x16, 0xe4, 0x5f, 0xf8, 0x80, 0x15, 0xa3, 0xc1, 0x09, - 0xa3, 0xb8, 0x8d, 0xd7, 0x7d, 0x70, 0x0e, 0x88, 0x26, 0x7b, 0xf5, 0x03, 0x7f, 0xe9, 0x07, 0xc6, - 0x80, 0xe2, 0x75, 0x98, 0x1d, 0x98, 0x01, 0xa2, 0xa9, 0x7e, 0x91, 0x51, 0x65, 0xc3, 0x23, 0x40, - 0x71, 0x1d, 0x12, 0xb8, 0x9f, 0x47, 0xc3, 0x7f, 0x89, 0xc1, 0x89, 0x79, 0xf1, 0xd3, 0x90, 0xe2, - 0x7d, 0x3c, 0x1a, 0xfa, 0xcb, 0x0c, 0xea, 0x43, 0x30, 0x9c, 0xf7, 0xf0, 0x68, 0xf8, 0xaf, 0x70, - 0x38, 0x87, 0x60, 0xf8, 0xe4, 0x21, 0xfc, 0x87, 0x5f, 0x4d, 0xb0, 0x3a, 0xcc, 0x63, 0x77, 0x0d, - 0x66, 0x58, 0xf3, 0x8e, 0x46, 0x7f, 0x91, 0xdd, 0x9c, 0x23, 0x8a, 0x97, 0x21, 0x39, 0x61, 0xc0, - 0x7f, 0x8d, 0x41, 0xa9, 0x7d, 0xb1, 0x0c, 0x99, 0x50, 0xc3, 0x8e, 0x86, 0xff, 0x3a, 0x83, 0x87, - 0x51, 0xd8, 0x75, 0xd6, 0xb0, 0xa3, 0x09, 0x7e, 0x83, 0xbb, 0xce, 0x10, 0x38, 0x6c, 0xbc, 0x57, - 0x47, 0xa3, 0x7f, 0x93, 0x47, 0x9d, 0x43, 0x8a, 0x2f, 0x40, 0xda, 0xaf, 0xbf, 0xd1, 0xf8, 0xdf, - 0x62, 0xf8, 0x00, 0x83, 0x23, 0x10, 0xaa, 0xff, 0xd1, 0x14, 0xbf, 0xcd, 0x23, 0x10, 0x42, 0xe1, - 0x6d, 0x34, 0xdc, 0xd3, 0xa3, 0x99, 0x7e, 0x87, 0x6f, 0xa3, 0xa1, 0x96, 0x8e, 0x57, 0x93, 0x94, - 0xc1, 0x68, 0x8a, 0xdf, 0xe5, 0xab, 0x49, 0xec, 0xb1, 0x1b, 0xc3, 0x4d, 0x32, 0x9a, 0xe3, 0xf7, - 0xb8, 0x1b, 0x43, 0x3d, 0xb2, 0x58, 0x07, 0x69, 0xb4, 0x41, 0x46, 0xf3, 0xbd, 0xc6, 0xf8, 0xe6, - 0x46, 0xfa, 0x63, 0xf1, 0x45, 0x38, 0x35, 0xbe, 0x39, 0x46, 0xb3, 0x7e, 0xe9, 0x83, 0xa1, 0xd7, - 0x99, 0x70, 0x6f, 0x2c, 0xee, 0x05, 0x55, 0x36, 0xdc, 0x18, 0xa3, 0x69, 0x5f, 0xff, 0x60, 0xb0, - 0xd0, 0x86, 0xfb, 0x62, 0xb1, 0x04, 0x10, 0xf4, 0xa4, 0x68, 0xae, 0x37, 0x18, 0x57, 0x08, 0x84, - 0xb7, 0x06, 0x6b, 0x49, 0xd1, 0xf8, 0x2f, 0xf3, 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0x6e, 0x14, - 0x8d, 0x7e, 0x93, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x83, 0x94, 0xd5, 0x37, 0x4d, 0x9c, 0x5b, 0xd2, - 0xc3, 0x3f, 0x23, 0x92, 0xff, 0xed, 0x43, 0x06, 0xe6, 0x80, 0xe2, 0x3a, 0x24, 0x51, 0xb7, 0x89, - 0x5a, 0x51, 0xc8, 0x7f, 0xff, 0x90, 0xd7, 0x13, 0x6c, 0x5d, 0x7c, 0x01, 0x80, 0xbe, 0x4c, 0x93, - 0x5f, 0x89, 0x22, 0xb0, 0xff, 0xf1, 0x21, 0xfb, 0x42, 0x21, 0x80, 0x04, 0x04, 0xf4, 0x7b, 0x87, - 0x87, 0x13, 0xbc, 0x37, 0x48, 0x40, 0x5e, 0xc0, 0xaf, 0xc2, 0xcc, 0x6d, 0xd7, 0xb6, 0x3c, 0xad, - 0x13, 0x85, 0xfe, 0x4f, 0x86, 0xe6, 0xf6, 0x38, 0x60, 0x5d, 0xdb, 0x41, 0x9e, 0xd6, 0x71, 0xa3, - 0xb0, 0xff, 0xc5, 0xb0, 0x3e, 0x00, 0x83, 0x75, 0xcd, 0xf5, 0x26, 0x79, 0xee, 0xff, 0xe6, 0x60, - 0x0e, 0xc0, 0x4e, 0xe3, 0xff, 0xef, 0xa0, 0xc3, 0x28, 0xec, 0xfb, 0xdc, 0x69, 0x66, 0x5f, 0xfc, - 0x34, 0xa4, 0xf1, 0xbf, 0xf4, 0xab, 0x9d, 0x08, 0xf0, 0xff, 0x30, 0x70, 0x80, 0xc0, 0x77, 0x76, - 0xbd, 0x96, 0x67, 0x44, 0x07, 0xfb, 0x7f, 0xd9, 0x4a, 0x73, 0xfb, 0x62, 0x09, 0x32, 0xae, 0xd7, - 0x6a, 0xf5, 0xd9, 0x44, 0x13, 0x01, 0xff, 0xd1, 0x87, 0xfe, 0x4b, 0xae, 0x8f, 0xd9, 0x38, 0x3f, - 0xfe, 0xb0, 0x0e, 0xb6, 0xec, 0x2d, 0x9b, 0x1e, 0xd3, 0xc1, 0x6b, 0x49, 0x58, 0xd4, 0xed, 0x6e, - 0xd3, 0x76, 0x57, 0xfd, 0x42, 0xb2, 0x6a, 0x5b, 0xcc, 0x5a, 0x8a, 0xdb, 0x16, 0x5a, 0x3c, 0xd9, - 0xb1, 0xdc, 0xd2, 0x19, 0x48, 0x36, 0xfa, 0xcd, 0xe6, 0xa1, 0x24, 0x42, 0xdc, 0xed, 0x37, 0xd9, - 0x77, 0x25, 0xf8, 0xdf, 0xa5, 0xef, 0xc7, 0x21, 0xd3, 0xd0, 0xba, 0x3d, 0x13, 0xd5, 0x2c, 0x54, - 0x6b, 0x4b, 0x32, 0x4c, 0x93, 0xa7, 0x78, 0x9e, 0x18, 0x09, 0x37, 0xa6, 0x14, 0x76, 0xed, 0x6b, - 0xd6, 0xc8, 0x59, 0x65, 0xcc, 0xd7, 0xac, 0xf9, 0x9a, 0x0b, 0xf4, 0xa8, 0xd2, 0xd7, 0x5c, 0xf0, - 0x35, 0x17, 0xc9, 0x81, 0x65, 0xdc, 0xd7, 0x5c, 0xf4, 0x35, 0xeb, 0xe4, 0x40, 0x7e, 0xd6, 0xd7, - 0xac, 0xfb, 0x9a, 0x4b, 0xe4, 0x08, 0x3e, 0xe1, 0x6b, 0x2e, 0xf9, 0x9a, 0xcb, 0xe4, 0xe4, 0x7d, - 0xce, 0xd7, 0x5c, 0xf6, 0x35, 0x57, 0xc8, 0x69, 0xbb, 0xe4, 0x6b, 0xae, 0xf8, 0x9a, 0xab, 0xe4, - 0xf3, 0x91, 0x19, 0x5f, 0x73, 0x55, 0x5a, 0x84, 0x19, 0xfa, 0x64, 0xcf, 0x91, 0x9f, 0x64, 0xf3, - 0x37, 0xa6, 0x14, 0x2e, 0x08, 0x74, 0xcf, 0x93, 0x4f, 0x44, 0xa6, 0x03, 0xdd, 0xf3, 0x81, 0x6e, - 0x8d, 0x7c, 0x28, 0x2d, 0x06, 0xba, 0xb5, 0x40, 0x77, 0x41, 0x9e, 0xc5, 0x8b, 0x1f, 0xe8, 0x2e, - 0x04, 0xba, 0x8b, 0x72, 0x0e, 0xc7, 0x3f, 0xd0, 0x5d, 0x0c, 0x74, 0xeb, 0x72, 0xfe, 0x9c, 0xb0, - 0x9c, 0x0d, 0x74, 0xeb, 0xd2, 0xb3, 0x90, 0x71, 0xfb, 0x4d, 0x95, 0x7d, 0x41, 0x40, 0x3e, 0x45, - 0xc9, 0xac, 0xc1, 0x0a, 0xce, 0x08, 0xb2, 0xa8, 0x37, 0xa6, 0x14, 0x70, 0xfb, 0x4d, 0x56, 0x1d, - 0x37, 0xb2, 0x40, 0x0e, 0x13, 0x54, 0xf2, 0x01, 0xe6, 0xc6, 0xe6, 0xdb, 0x0f, 0x0a, 0x53, 0xdf, - 0x7d, 0x50, 0x98, 0xfa, 0x97, 0x07, 0x85, 0xa9, 0x77, 0x1e, 0x14, 0x84, 0xf7, 0x1f, 0x14, 0x84, - 0x1f, 0x3f, 0x28, 0x08, 0xf7, 0x8f, 0x0a, 0xc2, 0x57, 0x8f, 0x0a, 0xc2, 0x37, 0x8e, 0x0a, 0xc2, - 0xb7, 0x8f, 0x0a, 0xc2, 0xdb, 0x47, 0x05, 0xe1, 0xbb, 0x47, 0x85, 0xa9, 0x77, 0x8e, 0x0a, 0xc2, - 0x0f, 0x8f, 0x0a, 0x53, 0xef, 0x1f, 0x15, 0x84, 0x1f, 0x1f, 0x15, 0xa6, 0xee, 0xff, 0xa0, 0x30, - 0xd5, 0x9c, 0x26, 0x69, 0x74, 0xe1, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xd7, 0x6c, 0xda, 0xdb, - 0xf7, 0x30, 0x00, 0x00, + // 3971 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0x1b, 0xd7, + 0x79, 0x26, 0xae, 0x04, 0x7e, 0x80, 0xe0, 0xf2, 0x90, 0x96, 0x20, 0x3a, 0x86, 0x24, 0xda, 0x8e, + 0x68, 0xbb, 0x26, 0x6d, 0x4a, 0xd4, 0x05, 0x6a, 0xe2, 0x82, 0x24, 0x44, 0x51, 0x25, 0x09, 0x66, + 0x41, 0xc6, 0x97, 0x4c, 0x67, 0x67, 0xb1, 0x38, 0x00, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, 0x92, + 0xa9, 0xe9, 0x83, 0x3a, 0xee, 0x65, 0x32, 0x9d, 0xde, 0x3b, 0x13, 0xc7, 0x75, 0xdc, 0xcb, 0x4c, + 0xeb, 0x34, 0xbd, 0x25, 0x4d, 0x9b, 0xa6, 0x7d, 0xea, 0x4b, 0x5a, 0x3f, 0x75, 0x92, 0xb7, 0x3e, + 0xe4, 0xc1, 0x62, 0x3c, 0xd3, 0xb4, 0x75, 0x1b, 0xb7, 0xf5, 0x83, 0x67, 0xfc, 0xd2, 0x39, 0xb7, + 0xdd, 0xc5, 0x85, 0x5a, 0x30, 0x33, 0xb6, 0x9f, 0xc8, 0xfd, 0xff, 0xff, 0xfb, 0xf6, 0x9c, 0xff, + 0xfc, 0xe7, 0xff, 0xff, 0x73, 0xb0, 0xf0, 0xe3, 0x2b, 0x70, 0xa6, 0x6d, 0x59, 0x6d, 0x03, 0x2f, + 0xda, 0x8e, 0xe5, 0x59, 0x8d, 0x6e, 0x6b, 0xb1, 0x89, 0x5d, 0xcd, 0xd1, 0x6d, 0xcf, 0x72, 0x16, + 0xa8, 0x0c, 0x4d, 0x32, 0x8b, 0x05, 0x61, 0x31, 0xb7, 0x05, 0x53, 0xd7, 0x74, 0x03, 0xaf, 0xf9, + 0x86, 0x75, 0xec, 0xa1, 0xcb, 0x90, 0x6c, 0xe9, 0x06, 0x2e, 0xc6, 0xce, 0x24, 0xe6, 0x73, 0x4b, + 0x8f, 0x2d, 0xf4, 0x81, 0x16, 0x7a, 0x11, 0x3b, 0x44, 0x2c, 0x53, 0xc4, 0xdc, 0x3b, 0x49, 0x98, + 0x1e, 0xa2, 0x45, 0x08, 0x92, 0xa6, 0xda, 0x21, 0x8c, 0xb1, 0xf9, 0xac, 0x4c, 0xff, 0x47, 0x45, + 0x18, 0xb7, 0x55, 0xed, 0x96, 0xda, 0xc6, 0xc5, 0x38, 0x15, 0x8b, 0x47, 0x54, 0x02, 0x68, 0x62, + 0x1b, 0x9b, 0x4d, 0x6c, 0x6a, 0x07, 0xc5, 0xc4, 0x99, 0xc4, 0x7c, 0x56, 0x0e, 0x49, 0xd0, 0x53, + 0x30, 0x65, 0x77, 0x1b, 0x86, 0xae, 0x29, 0x21, 0x33, 0x38, 0x93, 0x98, 0x4f, 0xc9, 0x12, 0x53, + 0xac, 0x05, 0xc6, 0xe7, 0x60, 0xf2, 0x0e, 0x56, 0x6f, 0x85, 0x4d, 0x73, 0xd4, 0xb4, 0x40, 0xc4, + 0x21, 0xc3, 0x55, 0xc8, 0x77, 0xb0, 0xeb, 0xaa, 0x6d, 0xac, 0x78, 0x07, 0x36, 0x2e, 0x26, 0xe9, + 0xec, 0xcf, 0x0c, 0xcc, 0xbe, 0x7f, 0xe6, 0x39, 0x8e, 0xda, 0x3d, 0xb0, 0x31, 0xaa, 0x40, 0x16, + 0x9b, 0xdd, 0x0e, 0x63, 0x48, 0x1d, 0xe1, 0xbf, 0xaa, 0xd9, 0xed, 0xf4, 0xb3, 0x64, 0x08, 0x8c, + 0x53, 0x8c, 0xbb, 0xd8, 0xb9, 0xad, 0x6b, 0xb8, 0x98, 0xa6, 0x04, 0xe7, 0x06, 0x08, 0xea, 0x4c, + 0xdf, 0xcf, 0x21, 0x70, 0x68, 0x15, 0xb2, 0xf8, 0x65, 0x0f, 0x9b, 0xae, 0x6e, 0x99, 0xc5, 0x71, + 0x4a, 0xf2, 0xf8, 0x90, 0x55, 0xc4, 0x46, 0xb3, 0x9f, 0x22, 0xc0, 0xa1, 0x8b, 0x30, 0x6e, 0xd9, + 0x9e, 0x6e, 0x99, 0x6e, 0x31, 0x73, 0x26, 0x36, 0x9f, 0x5b, 0xfa, 0xd4, 0xd0, 0x40, 0xa8, 0x31, + 0x1b, 0x59, 0x18, 0xa3, 0x0d, 0x90, 0x5c, 0xab, 0xeb, 0x68, 0x58, 0xd1, 0xac, 0x26, 0x56, 0x74, + 0xb3, 0x65, 0x15, 0xb3, 0x94, 0xe0, 0xf4, 0xe0, 0x44, 0xa8, 0xe1, 0xaa, 0xd5, 0xc4, 0x1b, 0x66, + 0xcb, 0x92, 0x0b, 0x6e, 0xcf, 0x33, 0x3a, 0x01, 0x69, 0xf7, 0xc0, 0xf4, 0xd4, 0x97, 0x8b, 0x79, + 0x1a, 0x21, 0xfc, 0x69, 0xee, 0xef, 0xd3, 0x30, 0x39, 0x4a, 0x88, 0x5d, 0x85, 0x54, 0x8b, 0xcc, + 0xb2, 0x18, 0x3f, 0x8e, 0x0f, 0x18, 0xa6, 0xd7, 0x89, 0xe9, 0x9f, 0xd0, 0x89, 0x15, 0xc8, 0x99, + 0xd8, 0xf5, 0x70, 0x93, 0x45, 0x44, 0x62, 0xc4, 0x98, 0x02, 0x06, 0x1a, 0x0c, 0xa9, 0xe4, 0x4f, + 0x14, 0x52, 0x2f, 0xc0, 0xa4, 0x3f, 0x24, 0xc5, 0x51, 0xcd, 0xb6, 0x88, 0xcd, 0xc5, 0xa8, 0x91, + 0x2c, 0x54, 0x05, 0x4e, 0x26, 0x30, 0xb9, 0x80, 0x7b, 0x9e, 0xd1, 0x1a, 0x80, 0x65, 0x62, 0xab, + 0xa5, 0x34, 0xb1, 0x66, 0x14, 0x33, 0x47, 0x78, 0xa9, 0x46, 0x4c, 0x06, 0xbc, 0x64, 0x31, 0xa9, + 0x66, 0xa0, 0x2b, 0x41, 0xa8, 0x8d, 0x1f, 0x11, 0x29, 0x5b, 0x6c, 0x93, 0x0d, 0x44, 0xdb, 0x1e, + 0x14, 0x1c, 0x4c, 0xe2, 0x1e, 0x37, 0xf9, 0xcc, 0xb2, 0x74, 0x10, 0x0b, 0x91, 0x33, 0x93, 0x39, + 0x8c, 0x4d, 0x6c, 0xc2, 0x09, 0x3f, 0xa2, 0x47, 0xc1, 0x17, 0x28, 0x34, 0xac, 0x80, 0x66, 0xa1, + 0xbc, 0x10, 0x6e, 0xab, 0x1d, 0x3c, 0x7b, 0x17, 0x0a, 0xbd, 0xee, 0x41, 0x33, 0x90, 0x72, 0x3d, + 0xd5, 0xf1, 0x68, 0x14, 0xa6, 0x64, 0xf6, 0x80, 0x24, 0x48, 0x60, 0xb3, 0x49, 0xb3, 0x5c, 0x4a, + 0x26, 0xff, 0xa2, 0x9f, 0x09, 0x26, 0x9c, 0xa0, 0x13, 0xfe, 0xf4, 0xe0, 0x8a, 0xf6, 0x30, 0xf7, + 0xcf, 0x7b, 0xf6, 0x12, 0x4c, 0xf4, 0x4c, 0x60, 0xd4, 0x57, 0xcf, 0xfd, 0x3c, 0x3c, 0x34, 0x94, + 0x1a, 0xbd, 0x00, 0x33, 0x5d, 0x53, 0x37, 0x3d, 0xec, 0xd8, 0x0e, 0x26, 0x11, 0xcb, 0x5e, 0x55, + 0xfc, 0xb7, 0xf1, 0x23, 0x62, 0x6e, 0x2f, 0x6c, 0xcd, 0x58, 0xe4, 0xe9, 0xee, 0xa0, 0xf0, 0xc9, + 0x6c, 0xe6, 0x47, 0xe3, 0xd2, 0xbd, 0x7b, 0xf7, 0xee, 0xc5, 0xe7, 0x5e, 0x4d, 0xc3, 0xcc, 0xb0, + 0x3d, 0x33, 0x74, 0xfb, 0x9e, 0x80, 0xb4, 0xd9, 0xed, 0x34, 0xb0, 0x43, 0x9d, 0x94, 0x92, 0xf9, + 0x13, 0xaa, 0x40, 0xca, 0x50, 0x1b, 0xd8, 0x28, 0x26, 0xcf, 0xc4, 0xe6, 0x0b, 0x4b, 0x4f, 0x8d, + 0xb4, 0x2b, 0x17, 0x36, 0x09, 0x44, 0x66, 0x48, 0xf4, 0x59, 0x48, 0xf2, 0x14, 0x4d, 0x18, 0x9e, + 0x1c, 0x8d, 0x81, 0xec, 0x25, 0x99, 0xe2, 0xd0, 0xc3, 0x90, 0x25, 0x7f, 0x59, 0x6c, 0xa4, 0xe9, + 0x98, 0x33, 0x44, 0x40, 0xe2, 0x02, 0xcd, 0x42, 0x86, 0x6e, 0x93, 0x26, 0x16, 0xa5, 0xcd, 0x7f, + 0x26, 0x81, 0xd5, 0xc4, 0x2d, 0xb5, 0x6b, 0x78, 0xca, 0x6d, 0xd5, 0xe8, 0x62, 0x1a, 0xf0, 0x59, + 0x39, 0xcf, 0x85, 0x9f, 0x27, 0x32, 0x74, 0x1a, 0x72, 0x6c, 0x57, 0xe9, 0x66, 0x13, 0xbf, 0x4c, + 0xb3, 0x67, 0x4a, 0x66, 0x1b, 0x6d, 0x83, 0x48, 0xc8, 0xeb, 0x6f, 0xba, 0x96, 0x29, 0x42, 0x93, + 0xbe, 0x82, 0x08, 0xe8, 0xeb, 0x2f, 0xf5, 0x27, 0xee, 0x47, 0x86, 0x4f, 0xaf, 0x3f, 0xa6, 0xe6, + 0xbe, 0x1d, 0x87, 0x24, 0xcd, 0x17, 0x93, 0x90, 0xdb, 0x7d, 0x71, 0xa7, 0xaa, 0xac, 0xd5, 0xf6, + 0x56, 0x36, 0xab, 0x52, 0x0c, 0x15, 0x00, 0xa8, 0xe0, 0xda, 0x66, 0xad, 0xb2, 0x2b, 0xc5, 0xfd, + 0xe7, 0x8d, 0xed, 0xdd, 0x8b, 0x17, 0xa4, 0x84, 0x0f, 0xd8, 0x63, 0x82, 0x64, 0xd8, 0xe0, 0xfc, + 0x92, 0x94, 0x42, 0x12, 0xe4, 0x19, 0xc1, 0xc6, 0x0b, 0xd5, 0xb5, 0x8b, 0x17, 0xa4, 0x74, 0xaf, + 0xe4, 0xfc, 0x92, 0x34, 0x8e, 0x26, 0x20, 0x4b, 0x25, 0x2b, 0xb5, 0xda, 0xa6, 0x94, 0xf1, 0x39, + 0xeb, 0xbb, 0xf2, 0xc6, 0xf6, 0xba, 0x94, 0xf5, 0x39, 0xd7, 0xe5, 0xda, 0xde, 0x8e, 0x04, 0x3e, + 0xc3, 0x56, 0xb5, 0x5e, 0xaf, 0xac, 0x57, 0xa5, 0x9c, 0x6f, 0xb1, 0xf2, 0xe2, 0x6e, 0xb5, 0x2e, + 0xe5, 0x7b, 0x86, 0x75, 0x7e, 0x49, 0x9a, 0xf0, 0x5f, 0x51, 0xdd, 0xde, 0xdb, 0x92, 0x0a, 0x68, + 0x0a, 0x26, 0xd8, 0x2b, 0xc4, 0x20, 0x26, 0xfb, 0x44, 0x17, 0x2f, 0x48, 0x52, 0x30, 0x10, 0xc6, + 0x32, 0xd5, 0x23, 0xb8, 0x78, 0x41, 0x42, 0x73, 0xab, 0x90, 0xa2, 0xd1, 0x85, 0x10, 0x14, 0x36, + 0x2b, 0x2b, 0xd5, 0x4d, 0xa5, 0xb6, 0xb3, 0xbb, 0x51, 0xdb, 0xae, 0x6c, 0x4a, 0xb1, 0x40, 0x26, + 0x57, 0x3f, 0xb7, 0xb7, 0x21, 0x57, 0xd7, 0xa4, 0x78, 0x58, 0xb6, 0x53, 0xad, 0xec, 0x56, 0xd7, + 0xa4, 0xc4, 0x9c, 0x06, 0x33, 0xc3, 0xf2, 0xe4, 0xd0, 0x9d, 0x11, 0x5a, 0xe2, 0xf8, 0x11, 0x4b, + 0x4c, 0xb9, 0x06, 0x96, 0xf8, 0x87, 0x71, 0x98, 0x1e, 0x52, 0x2b, 0x86, 0xbe, 0xe4, 0x39, 0x48, + 0xb1, 0x10, 0x65, 0xd5, 0xf3, 0x89, 0xa1, 0x45, 0x87, 0x06, 0xec, 0x40, 0x05, 0xa5, 0xb8, 0x70, + 0x07, 0x91, 0x38, 0xa2, 0x83, 0x20, 0x14, 0x03, 0x39, 0xfd, 0xe7, 0x06, 0x72, 0x3a, 0x2b, 0x7b, + 0x17, 0x47, 0x29, 0x7b, 0x54, 0x76, 0xbc, 0xdc, 0x9e, 0x1a, 0x92, 0xdb, 0xaf, 0xc2, 0xd4, 0x00, + 0xd1, 0xc8, 0x39, 0xf6, 0x95, 0x18, 0x14, 0x8f, 0x72, 0x4e, 0x44, 0xa6, 0x8b, 0xf7, 0x64, 0xba, + 0xab, 0xfd, 0x1e, 0x3c, 0x7b, 0xf4, 0x22, 0x0c, 0xac, 0xf5, 0x9b, 0x31, 0x38, 0x31, 0xbc, 0x53, + 0x1c, 0x3a, 0x86, 0xcf, 0x42, 0xba, 0x83, 0xbd, 0x7d, 0x4b, 0x74, 0x4b, 0x9f, 0x1e, 0x52, 0x83, + 0x89, 0xba, 0x7f, 0xb1, 0x39, 0x2a, 0x5c, 0xc4, 0x13, 0x47, 0xb5, 0x7b, 0x6c, 0x34, 0x03, 0x23, + 0xfd, 0x52, 0x1c, 0x1e, 0x1a, 0x4a, 0x3e, 0x74, 0xa0, 0x8f, 0x00, 0xe8, 0xa6, 0xdd, 0xf5, 0x58, + 0x47, 0xc4, 0x12, 0x6c, 0x96, 0x4a, 0x68, 0xf2, 0x22, 0xc9, 0xb3, 0xeb, 0xf9, 0xfa, 0x04, 0xd5, + 0x03, 0x13, 0x51, 0x83, 0xcb, 0xc1, 0x40, 0x93, 0x74, 0xa0, 0xa5, 0x23, 0x66, 0x3a, 0x10, 0x98, + 0xcf, 0x80, 0xa4, 0x19, 0x3a, 0x36, 0x3d, 0xc5, 0xf5, 0x1c, 0xac, 0x76, 0x74, 0xb3, 0x4d, 0x2b, + 0x48, 0xa6, 0x9c, 0x6a, 0xa9, 0x86, 0x8b, 0xe5, 0x49, 0xa6, 0xae, 0x0b, 0x2d, 0x41, 0xd0, 0x00, + 0x72, 0x42, 0x88, 0x74, 0x0f, 0x82, 0xa9, 0x7d, 0xc4, 0xdc, 0xb7, 0x32, 0x90, 0x0b, 0xf5, 0xd5, + 0xe8, 0x2c, 0xe4, 0x6f, 0xaa, 0xb7, 0x55, 0x45, 0x9c, 0x95, 0x98, 0x27, 0x72, 0x44, 0xb6, 0xc3, + 0xcf, 0x4b, 0xcf, 0xc0, 0x0c, 0x35, 0xb1, 0xba, 0x1e, 0x76, 0x14, 0xcd, 0x50, 0x5d, 0x97, 0x3a, + 0x2d, 0x43, 0x4d, 0x11, 0xd1, 0xd5, 0x88, 0x6a, 0x55, 0x68, 0xd0, 0x32, 0x4c, 0x53, 0x44, 0xa7, + 0x6b, 0x78, 0xba, 0x6d, 0x60, 0x85, 0x9c, 0xde, 0x5c, 0x5a, 0x49, 0xfc, 0x91, 0x4d, 0x11, 0x8b, + 0x2d, 0x6e, 0x40, 0x46, 0xe4, 0xa2, 0x35, 0x78, 0x84, 0xc2, 0xda, 0xd8, 0xc4, 0x8e, 0xea, 0x61, + 0x05, 0x7f, 0xb1, 0xab, 0x1a, 0xae, 0xa2, 0x9a, 0x4d, 0x65, 0x5f, 0x75, 0xf7, 0x8b, 0x33, 0x84, + 0x60, 0x25, 0x5e, 0x8c, 0xc9, 0xa7, 0x88, 0xe1, 0x3a, 0xb7, 0xab, 0x52, 0xb3, 0x8a, 0xd9, 0xbc, + 0xae, 0xba, 0xfb, 0xa8, 0x0c, 0x27, 0x28, 0x8b, 0xeb, 0x39, 0xba, 0xd9, 0x56, 0xb4, 0x7d, 0xac, + 0xdd, 0x52, 0xba, 0x5e, 0xeb, 0x72, 0xf1, 0xe1, 0xf0, 0xfb, 0xe9, 0x08, 0xeb, 0xd4, 0x66, 0x95, + 0x98, 0xec, 0x79, 0xad, 0xcb, 0xa8, 0x0e, 0x79, 0xb2, 0x18, 0x1d, 0xfd, 0x2e, 0x56, 0x5a, 0x96, + 0x43, 0x4b, 0x63, 0x61, 0x48, 0x6a, 0x0a, 0x79, 0x70, 0xa1, 0xc6, 0x01, 0x5b, 0x56, 0x13, 0x97, + 0x53, 0xf5, 0x9d, 0x6a, 0x75, 0x4d, 0xce, 0x09, 0x96, 0x6b, 0x96, 0x43, 0x02, 0xaa, 0x6d, 0xf9, + 0x0e, 0xce, 0xb1, 0x80, 0x6a, 0x5b, 0xc2, 0xbd, 0xcb, 0x30, 0xad, 0x69, 0x6c, 0xce, 0xba, 0xa6, + 0xf0, 0x33, 0x96, 0x5b, 0x94, 0x7a, 0x9c, 0xa5, 0x69, 0xeb, 0xcc, 0x80, 0xc7, 0xb8, 0x8b, 0xae, + 0xc0, 0x43, 0x81, 0xb3, 0xc2, 0xc0, 0xa9, 0x81, 0x59, 0xf6, 0x43, 0x97, 0x61, 0xda, 0x3e, 0x18, + 0x04, 0xa2, 0x9e, 0x37, 0xda, 0x07, 0xfd, 0xb0, 0x4b, 0x30, 0x63, 0xef, 0xdb, 0x83, 0xb8, 0x27, + 0xc3, 0x38, 0x64, 0xef, 0xdb, 0xfd, 0xc0, 0xc7, 0xe9, 0x81, 0xdb, 0xc1, 0x9a, 0xea, 0xe1, 0x66, + 0xf1, 0x64, 0xd8, 0x3c, 0xa4, 0x40, 0x8b, 0x20, 0x69, 0x9a, 0x82, 0x4d, 0xb5, 0x61, 0x60, 0x45, + 0x75, 0xb0, 0xa9, 0xba, 0xc5, 0xd3, 0x61, 0xe3, 0x82, 0xa6, 0x55, 0xa9, 0xb6, 0x42, 0x95, 0xe8, + 0x49, 0x98, 0xb2, 0x1a, 0x37, 0x35, 0x16, 0x92, 0x8a, 0xed, 0xe0, 0x96, 0xfe, 0x72, 0xf1, 0x31, + 0xea, 0xdf, 0x49, 0xa2, 0xa0, 0x01, 0xb9, 0x43, 0xc5, 0xe8, 0x09, 0x90, 0x34, 0x77, 0x5f, 0x75, + 0x6c, 0x9a, 0x93, 0x5d, 0x5b, 0xd5, 0x70, 0xf1, 0x71, 0x66, 0xca, 0xe4, 0xdb, 0x42, 0x4c, 0xb6, + 0x84, 0x7b, 0x47, 0x6f, 0x79, 0x82, 0xf1, 0x1c, 0xdb, 0x12, 0x54, 0xc6, 0xd9, 0xe6, 0x41, 0x22, + 0xae, 0xe8, 0x79, 0xf1, 0x3c, 0x35, 0x2b, 0xd8, 0xfb, 0x76, 0xf8, 0xbd, 0x8f, 0xc2, 0x04, 0xb1, + 0x0c, 0x5e, 0xfa, 0x04, 0x6b, 0xc8, 0xec, 0xfd, 0xd0, 0x1b, 0x3f, 0xb2, 0xde, 0x78, 0xae, 0x0c, + 0xf9, 0x70, 0x7c, 0xa2, 0x2c, 0xb0, 0x08, 0x95, 0x62, 0xa4, 0x59, 0x59, 0xad, 0xad, 0x91, 0x36, + 0xe3, 0xa5, 0xaa, 0x14, 0x27, 0xed, 0xce, 0xe6, 0xc6, 0x6e, 0x55, 0x91, 0xf7, 0xb6, 0x77, 0x37, + 0xb6, 0xaa, 0x52, 0x22, 0xdc, 0x57, 0x7f, 0x37, 0x0e, 0x85, 0xde, 0x23, 0x12, 0xfa, 0x69, 0x38, + 0x29, 0xee, 0x33, 0x5c, 0xec, 0x29, 0x77, 0x74, 0x87, 0x6e, 0x99, 0x8e, 0xca, 0xca, 0x97, 0xbf, + 0x68, 0x33, 0xdc, 0xaa, 0x8e, 0xbd, 0xe7, 0x75, 0x87, 0x6c, 0x88, 0x8e, 0xea, 0xa1, 0x4d, 0x38, + 0x6d, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x53, 0x75, 0x9a, 0x4a, 0x70, 0x93, 0xa4, 0xa8, 0x9a, 0x86, + 0x5d, 0xd7, 0x62, 0xa5, 0xca, 0x67, 0xf9, 0x94, 0x69, 0xd5, 0xb9, 0x71, 0x90, 0xc3, 0x2b, 0xdc, + 0xb4, 0x2f, 0xc0, 0x12, 0x47, 0x05, 0xd8, 0xc3, 0x90, 0xed, 0xa8, 0xb6, 0x82, 0x4d, 0xcf, 0x39, + 0xa0, 0x8d, 0x71, 0x46, 0xce, 0x74, 0x54, 0xbb, 0x4a, 0x9e, 0x3f, 0x9e, 0xf3, 0xc9, 0x0f, 0x12, + 0x90, 0x0f, 0x37, 0xc7, 0xe4, 0xac, 0xa1, 0xd1, 0x3a, 0x12, 0xa3, 0x99, 0xe6, 0xd1, 0x07, 0xb6, + 0xd2, 0x0b, 0xab, 0xa4, 0xc0, 0x94, 0xd3, 0xac, 0x65, 0x95, 0x19, 0x92, 0x14, 0x77, 0x92, 0x5b, + 0x30, 0x6b, 0x11, 0x32, 0x32, 0x7f, 0x42, 0xeb, 0x90, 0xbe, 0xe9, 0x52, 0xee, 0x34, 0xe5, 0x7e, + 0xec, 0xc1, 0xdc, 0x37, 0xea, 0x94, 0x3c, 0x7b, 0xa3, 0xae, 0x6c, 0xd7, 0xe4, 0xad, 0xca, 0xa6, + 0xcc, 0xe1, 0xe8, 0x14, 0x24, 0x0d, 0xf5, 0xee, 0x41, 0x6f, 0x29, 0xa2, 0xa2, 0x51, 0x1d, 0x7f, + 0x0a, 0x92, 0x77, 0xb0, 0x7a, 0xab, 0xb7, 0x00, 0x50, 0xd1, 0x47, 0x18, 0xfa, 0x8b, 0x90, 0xa2, + 0xfe, 0x42, 0x00, 0xdc, 0x63, 0xd2, 0x18, 0xca, 0x40, 0x72, 0xb5, 0x26, 0x93, 0xf0, 0x97, 0x20, + 0xcf, 0xa4, 0xca, 0xce, 0x46, 0x75, 0xb5, 0x2a, 0xc5, 0xe7, 0x96, 0x21, 0xcd, 0x9c, 0x40, 0xb6, + 0x86, 0xef, 0x06, 0x69, 0x8c, 0x3f, 0x72, 0x8e, 0x98, 0xd0, 0xee, 0x6d, 0xad, 0x54, 0x65, 0x29, + 0x1e, 0x5e, 0x5e, 0x17, 0xf2, 0xe1, 0xbe, 0xf8, 0xe3, 0x89, 0xa9, 0x7f, 0x88, 0x41, 0x2e, 0xd4, + 0xe7, 0x92, 0x06, 0x45, 0x35, 0x0c, 0xeb, 0x8e, 0xa2, 0x1a, 0xba, 0xea, 0xf2, 0xa0, 0x00, 0x2a, + 0xaa, 0x10, 0xc9, 0xa8, 0x8b, 0xf6, 0xb1, 0x0c, 0xfe, 0x8d, 0x18, 0x48, 0xfd, 0x2d, 0x66, 0xdf, + 0x00, 0x63, 0x9f, 0xe8, 0x00, 0x5f, 0x8f, 0x41, 0xa1, 0xb7, 0xaf, 0xec, 0x1b, 0xde, 0xd9, 0x4f, + 0x74, 0x78, 0x6f, 0xc7, 0x61, 0xa2, 0xa7, 0x9b, 0x1c, 0x75, 0x74, 0x5f, 0x84, 0x29, 0xbd, 0x89, + 0x3b, 0xb6, 0xe5, 0x61, 0x53, 0x3b, 0x50, 0x0c, 0x7c, 0x1b, 0x1b, 0xc5, 0x39, 0x9a, 0x28, 0x16, + 0x1f, 0xdc, 0xaf, 0x2e, 0x6c, 0x04, 0xb8, 0x4d, 0x02, 0x2b, 0x4f, 0x6f, 0xac, 0x55, 0xb7, 0x76, + 0x6a, 0xbb, 0xd5, 0xed, 0xd5, 0x17, 0x95, 0xbd, 0xed, 0x9f, 0xdd, 0xae, 0x3d, 0xbf, 0x2d, 0x4b, + 0x7a, 0x9f, 0xd9, 0x47, 0xb8, 0xd5, 0x77, 0x40, 0xea, 0x1f, 0x14, 0x3a, 0x09, 0xc3, 0x86, 0x25, + 0x8d, 0xa1, 0x69, 0x98, 0xdc, 0xae, 0x29, 0xf5, 0x8d, 0xb5, 0xaa, 0x52, 0xbd, 0x76, 0xad, 0xba, + 0xba, 0x5b, 0x67, 0x37, 0x10, 0xbe, 0xf5, 0x6e, 0xef, 0xa6, 0x7e, 0x2d, 0x01, 0xd3, 0x43, 0x46, + 0x82, 0x2a, 0xfc, 0xec, 0xc0, 0x8e, 0x33, 0x4f, 0x8f, 0x32, 0xfa, 0x05, 0x52, 0xf2, 0x77, 0x54, + 0xc7, 0xe3, 0x47, 0x8d, 0x27, 0x80, 0x78, 0xc9, 0xf4, 0xf4, 0x96, 0x8e, 0x1d, 0x7e, 0x61, 0xc3, + 0x0e, 0x14, 0x93, 0x81, 0x9c, 0xdd, 0xd9, 0xfc, 0x14, 0x20, 0xdb, 0x72, 0x75, 0x4f, 0xbf, 0x8d, + 0x15, 0xdd, 0x14, 0xb7, 0x3b, 0xe4, 0x80, 0x91, 0x94, 0x25, 0xa1, 0xd9, 0x30, 0x3d, 0xdf, 0xda, + 0xc4, 0x6d, 0xb5, 0xcf, 0x9a, 0x24, 0xf0, 0x84, 0x2c, 0x09, 0x8d, 0x6f, 0x7d, 0x16, 0xf2, 0x4d, + 0xab, 0x4b, 0xba, 0x2e, 0x66, 0x47, 0xea, 0x45, 0x4c, 0xce, 0x31, 0x99, 0x6f, 0xc2, 0xfb, 0xe9, + 0xe0, 0x5a, 0x29, 0x2f, 0xe7, 0x98, 0x8c, 0x99, 0x9c, 0x83, 0x49, 0xb5, 0xdd, 0x76, 0x08, 0xb9, + 0x20, 0x62, 0x27, 0x84, 0x82, 0x2f, 0xa6, 0x86, 0xb3, 0x37, 0x20, 0x23, 0xfc, 0x40, 0x4a, 0x32, + 0xf1, 0x84, 0x62, 0xb3, 0x63, 0x6f, 0x7c, 0x3e, 0x2b, 0x67, 0x4c, 0xa1, 0x3c, 0x0b, 0x79, 0xdd, + 0x55, 0x82, 0x5b, 0xf2, 0xf8, 0x99, 0xf8, 0x7c, 0x46, 0xce, 0xe9, 0xae, 0x7f, 0xc3, 0x38, 0xf7, + 0x66, 0x1c, 0x0a, 0xbd, 0xb7, 0xfc, 0x68, 0x0d, 0x32, 0x86, 0xa5, 0xa9, 0x34, 0xb4, 0xd8, 0x4f, + 0x4c, 0xf3, 0x11, 0x3f, 0x0c, 0x2c, 0x6c, 0x72, 0x7b, 0xd9, 0x47, 0xce, 0xfe, 0x4b, 0x0c, 0x32, + 0x42, 0x8c, 0x4e, 0x40, 0xd2, 0x56, 0xbd, 0x7d, 0x4a, 0x97, 0x5a, 0x89, 0x4b, 0x31, 0x99, 0x3e, + 0x13, 0xb9, 0x6b, 0xab, 0x26, 0x0d, 0x01, 0x2e, 0x27, 0xcf, 0x64, 0x5d, 0x0d, 0xac, 0x36, 0xe9, + 0xf1, 0xc3, 0xea, 0x74, 0xb0, 0xe9, 0xb9, 0x62, 0x5d, 0xb9, 0x7c, 0x95, 0x8b, 0xd1, 0x53, 0x30, + 0xe5, 0x39, 0xaa, 0x6e, 0xf4, 0xd8, 0x26, 0xa9, 0xad, 0x24, 0x14, 0xbe, 0x71, 0x19, 0x4e, 0x09, + 0xde, 0x26, 0xf6, 0x54, 0x6d, 0x1f, 0x37, 0x03, 0x50, 0x9a, 0x5e, 0x33, 0x9c, 0xe4, 0x06, 0x6b, + 0x5c, 0x2f, 0xb0, 0x73, 0xdf, 0x8f, 0xc1, 0x94, 0x38, 0x30, 0x35, 0x7d, 0x67, 0x6d, 0x01, 0xa8, + 0xa6, 0x69, 0x79, 0x61, 0x77, 0x0d, 0x86, 0xf2, 0x00, 0x6e, 0xa1, 0xe2, 0x83, 0xe4, 0x10, 0xc1, + 0x6c, 0x07, 0x20, 0xd0, 0x1c, 0xe9, 0xb6, 0xd3, 0x90, 0xe3, 0x3f, 0xe1, 0xd0, 0xdf, 0x01, 0xd9, + 0x11, 0x1b, 0x98, 0x88, 0x9c, 0xac, 0xd0, 0x0c, 0xa4, 0x1a, 0xb8, 0xad, 0x9b, 0xfc, 0x62, 0x96, + 0x3d, 0x88, 0x8b, 0x90, 0xa4, 0x7f, 0x11, 0xb2, 0xf2, 0x05, 0x98, 0xd6, 0xac, 0x4e, 0xff, 0x70, + 0x57, 0xa4, 0xbe, 0x63, 0xbe, 0x7b, 0x3d, 0xf6, 0x12, 0x04, 0x2d, 0xe6, 0x07, 0xb1, 0xd8, 0x1f, + 0xc5, 0x13, 0xeb, 0x3b, 0x2b, 0x5f, 0x8f, 0xcf, 0xae, 0x33, 0xe8, 0x8e, 0x98, 0xa9, 0x8c, 0x5b, + 0x06, 0xd6, 0xc8, 0xe8, 0xe1, 0xcb, 0xe7, 0xe0, 0xe9, 0xb6, 0xee, 0xed, 0x77, 0x1b, 0x0b, 0x9a, + 0xd5, 0x59, 0x6c, 0x5b, 0x6d, 0x2b, 0xf8, 0xe9, 0x93, 0x3c, 0xd1, 0x07, 0xfa, 0x1f, 0xff, 0xf9, + 0x33, 0xeb, 0x4b, 0x67, 0x23, 0x7f, 0x2b, 0x2d, 0x6f, 0xc3, 0x34, 0x37, 0x56, 0xe8, 0xef, 0x2f, + 0xec, 0x14, 0x81, 0x1e, 0x78, 0x87, 0x55, 0xfc, 0xe6, 0x3b, 0xb4, 0x5c, 0xcb, 0x53, 0x1c, 0x4a, + 0x74, 0xec, 0xa0, 0x51, 0x96, 0xe1, 0xa1, 0x1e, 0x3e, 0xb6, 0x35, 0xb1, 0x13, 0xc1, 0xf8, 0x5d, + 0xce, 0x38, 0x1d, 0x62, 0xac, 0x73, 0x68, 0x79, 0x15, 0x26, 0x8e, 0xc3, 0xf5, 0x4f, 0x9c, 0x2b, + 0x8f, 0xc3, 0x24, 0xeb, 0x30, 0x49, 0x49, 0xb4, 0xae, 0xeb, 0x59, 0x1d, 0x9a, 0xf7, 0x1e, 0x4c, + 0xf3, 0xcf, 0xef, 0xb0, 0xbd, 0x52, 0x20, 0xb0, 0x55, 0x1f, 0x55, 0x2e, 0x03, 0xfd, 0xc9, 0xa9, + 0x89, 0x35, 0x23, 0x82, 0xe1, 0x2d, 0x3e, 0x10, 0xdf, 0xbe, 0xfc, 0x79, 0x98, 0x21, 0xff, 0xd3, + 0xb4, 0x14, 0x1e, 0x49, 0xf4, 0x85, 0x57, 0xf1, 0xfb, 0xaf, 0xb0, 0xed, 0x38, 0xed, 0x13, 0x84, + 0xc6, 0x14, 0x5a, 0xc5, 0x36, 0xf6, 0x3c, 0xec, 0xb8, 0x8a, 0x6a, 0x0c, 0x1b, 0x5e, 0xe8, 0xc6, + 0xa0, 0xf8, 0x95, 0x77, 0x7b, 0x57, 0x71, 0x9d, 0x21, 0x2b, 0x86, 0x51, 0xde, 0x83, 0x93, 0x43, + 0xa2, 0x62, 0x04, 0xce, 0xd7, 0x38, 0xe7, 0xcc, 0x40, 0x64, 0x10, 0xda, 0x1d, 0x10, 0x72, 0x7f, + 0x2d, 0x47, 0xe0, 0xfc, 0x3d, 0xce, 0x89, 0x38, 0x56, 0x2c, 0x29, 0x61, 0xbc, 0x01, 0x53, 0xb7, + 0xb1, 0xd3, 0xb0, 0x5c, 0x7e, 0x4b, 0x33, 0x02, 0xdd, 0xeb, 0x9c, 0x6e, 0x92, 0x03, 0xe9, 0xb5, + 0x0d, 0xe1, 0xba, 0x02, 0x99, 0x96, 0xaa, 0xe1, 0x11, 0x28, 0xbe, 0xca, 0x29, 0xc6, 0x89, 0x3d, + 0x81, 0x56, 0x20, 0xdf, 0xb6, 0x78, 0x65, 0x8a, 0x86, 0xbf, 0xc1, 0xe1, 0x39, 0x81, 0xe1, 0x14, + 0xb6, 0x65, 0x77, 0x0d, 0x52, 0xb6, 0xa2, 0x29, 0x7e, 0x5f, 0x50, 0x08, 0x0c, 0xa7, 0x38, 0x86, + 0x5b, 0xff, 0x40, 0x50, 0xb8, 0x21, 0x7f, 0x3e, 0x07, 0x39, 0xcb, 0x34, 0x0e, 0x2c, 0x73, 0x94, + 0x41, 0xfc, 0x21, 0x67, 0x00, 0x0e, 0x21, 0x04, 0x57, 0x21, 0x3b, 0xea, 0x42, 0xfc, 0xf1, 0xbb, + 0x62, 0x7b, 0x88, 0x15, 0x58, 0x87, 0x49, 0x91, 0xa0, 0x74, 0xcb, 0x1c, 0x81, 0xe2, 0x4f, 0x38, + 0x45, 0x21, 0x04, 0xe3, 0xd3, 0xf0, 0xb0, 0xeb, 0xb5, 0xf1, 0x28, 0x24, 0x6f, 0x8a, 0x69, 0x70, + 0x08, 0x77, 0x65, 0x03, 0x9b, 0xda, 0xfe, 0x68, 0x0c, 0x5f, 0x13, 0xae, 0x14, 0x18, 0x42, 0xb1, + 0x0a, 0x13, 0x1d, 0xd5, 0x71, 0xf7, 0x55, 0x63, 0xa4, 0xe5, 0xf8, 0x53, 0xce, 0x91, 0xf7, 0x41, + 0xdc, 0x23, 0x5d, 0xf3, 0x38, 0x34, 0x5f, 0x17, 0x1e, 0x09, 0xc1, 0xf8, 0xd6, 0x73, 0x3d, 0x7a, + 0xa5, 0x75, 0x1c, 0xb6, 0x3f, 0x13, 0x5b, 0x8f, 0x61, 0xb7, 0xc2, 0x8c, 0x57, 0x21, 0xeb, 0xea, + 0x77, 0x47, 0xa2, 0xf9, 0x73, 0xb1, 0xd2, 0x14, 0x40, 0xc0, 0x2f, 0xc2, 0xa9, 0xa1, 0x65, 0x62, + 0x04, 0xb2, 0xbf, 0xe0, 0x64, 0x27, 0x86, 0x94, 0x0a, 0x9e, 0x12, 0x8e, 0x4b, 0xf9, 0x97, 0x22, + 0x25, 0xe0, 0x3e, 0xae, 0x1d, 0x72, 0x56, 0x70, 0xd5, 0xd6, 0xf1, 0xbc, 0xf6, 0x57, 0xc2, 0x6b, + 0x0c, 0xdb, 0xe3, 0xb5, 0x5d, 0x38, 0xc1, 0x19, 0x8f, 0xb7, 0xae, 0xdf, 0x10, 0x89, 0x95, 0xa1, + 0xf7, 0x7a, 0x57, 0xf7, 0x0b, 0x30, 0xeb, 0xbb, 0x53, 0x34, 0xa5, 0xae, 0xd2, 0x51, 0xed, 0x11, + 0x98, 0xbf, 0xc9, 0x99, 0x45, 0xc6, 0xf7, 0xbb, 0x5a, 0x77, 0x4b, 0xb5, 0x09, 0xf9, 0x0b, 0x50, + 0x14, 0xe4, 0x5d, 0xd3, 0xc1, 0x9a, 0xd5, 0x36, 0xf5, 0xbb, 0xb8, 0x39, 0x02, 0xf5, 0x5f, 0xf7, + 0x2d, 0xd5, 0x5e, 0x08, 0x4e, 0x98, 0x37, 0x40, 0xf2, 0x7b, 0x15, 0x45, 0xef, 0xd8, 0x96, 0xe3, + 0x45, 0x30, 0x7e, 0x4b, 0xac, 0x94, 0x8f, 0xdb, 0xa0, 0xb0, 0x72, 0x15, 0x0a, 0xf4, 0x71, 0xd4, + 0x90, 0xfc, 0x1b, 0x4e, 0x34, 0x11, 0xa0, 0x78, 0xe2, 0xd0, 0xac, 0x8e, 0xad, 0x3a, 0xa3, 0xe4, + 0xbf, 0xbf, 0x15, 0x89, 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x0e, 0x6c, 0x4c, 0xaa, 0xfd, 0x08, 0x0c, + 0xdf, 0x16, 0x89, 0x43, 0x60, 0x38, 0x85, 0x68, 0x18, 0x46, 0xa0, 0xf8, 0x3b, 0x41, 0x21, 0x30, + 0x84, 0xe2, 0x73, 0x41, 0xa1, 0x75, 0x70, 0x5b, 0x77, 0x3d, 0x87, 0xb5, 0xc2, 0x0f, 0xa6, 0xfa, + 0xce, 0xbb, 0xbd, 0x4d, 0x98, 0x1c, 0x82, 0x96, 0x6f, 0xc0, 0x64, 0x5f, 0x8b, 0x81, 0xa2, 0xbe, + 0x5f, 0x29, 0xfe, 0xc2, 0xfb, 0x3c, 0x19, 0xf5, 0x76, 0x18, 0xe5, 0x4d, 0xb2, 0xee, 0xbd, 0x7d, + 0x40, 0x34, 0xd9, 0x2b, 0xef, 0xfb, 0x4b, 0xdf, 0xd3, 0x06, 0x94, 0xaf, 0xc1, 0x44, 0x4f, 0x0f, + 0x10, 0x4d, 0xf5, 0x8b, 0x9c, 0x2a, 0x1f, 0x6e, 0x01, 0xca, 0xcb, 0x90, 0x24, 0xf5, 0x3c, 0x1a, + 0xfe, 0x4b, 0x1c, 0x4e, 0xcd, 0xcb, 0x9f, 0x81, 0x8c, 0xa8, 0xe3, 0xd1, 0xd0, 0x5f, 0xe6, 0x50, + 0x1f, 0x42, 0xe0, 0xa2, 0x86, 0x47, 0xc3, 0x7f, 0x45, 0xc0, 0x05, 0x84, 0xc0, 0x47, 0x77, 0xe1, + 0x3f, 0xfe, 0x6a, 0x92, 0xe7, 0x61, 0xe1, 0xbb, 0xab, 0x30, 0xce, 0x8b, 0x77, 0x34, 0xfa, 0x4b, + 0xfc, 0xe5, 0x02, 0x51, 0xbe, 0x04, 0xa9, 0x11, 0x1d, 0xfe, 0x6b, 0x1c, 0xca, 0xec, 0xcb, 0xab, + 0x90, 0x0b, 0x15, 0xec, 0x68, 0xf8, 0xaf, 0x73, 0x78, 0x18, 0x45, 0x86, 0xce, 0x0b, 0x76, 0x34, + 0xc1, 0x6f, 0x88, 0xa1, 0x73, 0x04, 0x71, 0x9b, 0xa8, 0xd5, 0xd1, 0xe8, 0xdf, 0x14, 0x5e, 0x17, + 0x90, 0xf2, 0x73, 0x90, 0xf5, 0xf3, 0x6f, 0x34, 0xfe, 0xb7, 0x38, 0x3e, 0xc0, 0x10, 0x0f, 0x84, + 0xf2, 0x7f, 0x34, 0xc5, 0x6f, 0x0b, 0x0f, 0x84, 0x50, 0x64, 0x1b, 0xf5, 0xd7, 0xf4, 0x68, 0xa6, + 0xdf, 0x11, 0xdb, 0xa8, 0xaf, 0xa4, 0x93, 0xd5, 0xa4, 0x69, 0x30, 0x9a, 0xe2, 0x77, 0xc5, 0x6a, + 0x52, 0x7b, 0x32, 0x8c, 0xfe, 0x22, 0x19, 0xcd, 0xf1, 0x65, 0x31, 0x8c, 0xbe, 0x1a, 0x59, 0xde, + 0x01, 0x34, 0x58, 0x20, 0xa3, 0xf9, 0x5e, 0xe5, 0x7c, 0x53, 0x03, 0xf5, 0xb1, 0xfc, 0x3c, 0x9c, + 0x18, 0x5e, 0x1c, 0xa3, 0x59, 0xbf, 0xf2, 0x7e, 0xdf, 0x71, 0x26, 0x5c, 0x1b, 0xcb, 0xbb, 0x41, + 0x96, 0x0d, 0x17, 0xc6, 0x68, 0xda, 0xd7, 0xde, 0xef, 0x4d, 0xb4, 0xe1, 0xba, 0x58, 0xae, 0x00, + 0x04, 0x35, 0x29, 0x9a, 0xeb, 0x75, 0xce, 0x15, 0x02, 0x91, 0xad, 0xc1, 0x4b, 0x52, 0x34, 0xfe, + 0xab, 0x62, 0x6b, 0x70, 0x04, 0xd9, 0x1a, 0xa2, 0x1a, 0x45, 0xa3, 0xdf, 0x10, 0x5b, 0x43, 0x40, + 0xca, 0x57, 0x21, 0x63, 0x76, 0x0d, 0x83, 0xc4, 0x16, 0x7a, 0xf0, 0x27, 0x59, 0xc5, 0x7f, 0xff, + 0x90, 0x83, 0x05, 0xa0, 0xbc, 0x0c, 0x29, 0xdc, 0x69, 0xe0, 0x66, 0x14, 0xf2, 0x3f, 0x3e, 0x14, + 0xf9, 0x84, 0x58, 0x97, 0x9f, 0x03, 0x60, 0x87, 0x69, 0xfa, 0x43, 0x51, 0x04, 0xf6, 0x3f, 0x3f, + 0xe4, 0x1f, 0x4b, 0x04, 0x90, 0x80, 0x80, 0x7d, 0x7a, 0xf1, 0x60, 0x82, 0x77, 0x7b, 0x09, 0xe8, + 0x01, 0xfc, 0x0a, 0x8c, 0xdf, 0x74, 0x2d, 0xd3, 0x53, 0xdb, 0x51, 0xe8, 0xff, 0xe2, 0x68, 0x61, + 0x4f, 0x1c, 0xd6, 0xb1, 0x1c, 0xec, 0xa9, 0x6d, 0x37, 0x0a, 0xfb, 0xdf, 0x1c, 0xeb, 0x03, 0x08, + 0x58, 0x53, 0x5d, 0x6f, 0x94, 0x79, 0xff, 0x58, 0x80, 0x05, 0x80, 0x0c, 0x9a, 0xfc, 0x7f, 0x0b, + 0x1f, 0x44, 0x61, 0xdf, 0x13, 0x83, 0xe6, 0xf6, 0xe5, 0xcf, 0x40, 0x96, 0xfc, 0xcb, 0xbe, 0x80, + 0x8a, 0x00, 0xff, 0x0f, 0x07, 0x07, 0x08, 0xf2, 0x66, 0xd7, 0x6b, 0x7a, 0x7a, 0xb4, 0xb3, 0xff, + 0x97, 0xaf, 0xb4, 0xb0, 0x2f, 0x57, 0x20, 0xe7, 0x7a, 0xcd, 0x66, 0x97, 0x77, 0x34, 0x11, 0xf0, + 0xff, 0xfb, 0xd0, 0x3f, 0xe4, 0xfa, 0x98, 0x95, 0xea, 0xf0, 0xfb, 0x3a, 0x58, 0xb7, 0xd6, 0x2d, + 0x76, 0x53, 0xf7, 0xd2, 0x5c, 0xf4, 0x95, 0x1b, 0xbc, 0x9a, 0x82, 0x59, 0xcd, 0xea, 0x34, 0x2c, + 0x77, 0xd1, 0x4f, 0x36, 0x8b, 0x96, 0xc9, 0x19, 0x51, 0xc2, 0x32, 0xf1, 0xec, 0xf1, 0xae, 0xee, + 0xe6, 0x4e, 0x41, 0xaa, 0xde, 0x6d, 0x34, 0x0e, 0x90, 0x04, 0x09, 0xb7, 0xdb, 0xe0, 0x9f, 0xc1, + 0x90, 0x7f, 0xe7, 0x7e, 0x90, 0x80, 0x5c, 0x5d, 0xed, 0xd8, 0x06, 0xae, 0x99, 0xb8, 0xd6, 0x42, + 0x45, 0x48, 0xd3, 0x99, 0x3e, 0x4b, 0x8d, 0x62, 0xd7, 0xc7, 0x64, 0xfe, 0xec, 0x6b, 0x96, 0xe8, + 0x95, 0x66, 0xdc, 0xd7, 0x2c, 0xf9, 0x9a, 0xf3, 0xec, 0x46, 0xd3, 0xd7, 0x9c, 0xf7, 0x35, 0x17, + 0xe8, 0xbd, 0x66, 0xc2, 0xd7, 0x5c, 0xf0, 0x35, 0xcb, 0xf4, 0xde, 0x7e, 0xc2, 0xd7, 0x2c, 0xfb, + 0x9a, 0x8b, 0xf4, 0xa6, 0x3e, 0xe9, 0x6b, 0x2e, 0xfa, 0x9a, 0x4b, 0xf4, 0x82, 0x7e, 0xca, 0xd7, + 0x5c, 0xf2, 0x35, 0x97, 0xe9, 0xa5, 0x3c, 0xf2, 0x35, 0x97, 0x7d, 0xcd, 0x15, 0xfa, 0xb5, 0xcb, + 0xb8, 0xaf, 0xb9, 0x82, 0x66, 0x61, 0x9c, 0xcd, 0xec, 0x19, 0xfa, 0xcb, 0xed, 0xe4, 0xf5, 0x31, + 0x59, 0x08, 0x02, 0xdd, 0xb3, 0xf4, 0x8b, 0x96, 0x74, 0xa0, 0x7b, 0x36, 0xd0, 0x2d, 0xd1, 0x0f, + 0xeb, 0xa5, 0x40, 0xb7, 0x14, 0xe8, 0xce, 0x17, 0x27, 0x48, 0x80, 0x04, 0xba, 0xf3, 0x81, 0xee, + 0x42, 0xb1, 0x40, 0xfc, 0x1f, 0xe8, 0x2e, 0x04, 0xba, 0xe5, 0xe2, 0xe4, 0x99, 0xd8, 0x7c, 0x3e, + 0xd0, 0x2d, 0xa3, 0xa7, 0x21, 0xe7, 0x76, 0x1b, 0x0a, 0xff, 0xd0, 0x80, 0x7e, 0x39, 0x93, 0x5b, + 0x82, 0x05, 0x12, 0x11, 0x74, 0x51, 0xaf, 0x8f, 0xc9, 0xe0, 0x76, 0x1b, 0x3c, 0x83, 0xae, 0xe4, + 0x81, 0x5e, 0x38, 0x28, 0xf4, 0x83, 0xd7, 0x95, 0xb5, 0xb7, 0xee, 0x97, 0xc6, 0xbe, 0x77, 0xbf, + 0x34, 0xf6, 0xaf, 0xf7, 0x4b, 0x63, 0x6f, 0xdf, 0x2f, 0xc5, 0xde, 0xbb, 0x5f, 0x8a, 0x7d, 0x70, + 0xbf, 0x14, 0xbb, 0x77, 0x58, 0x8a, 0x7d, 0xed, 0xb0, 0x14, 0xfb, 0xc6, 0x61, 0x29, 0xf6, 0x9d, + 0xc3, 0x52, 0xec, 0xad, 0xc3, 0x52, 0xec, 0x7b, 0x87, 0xa5, 0xb1, 0xb7, 0x0f, 0x4b, 0xb1, 0x1f, + 0x1d, 0x96, 0xc6, 0xde, 0x3b, 0x2c, 0xc5, 0x3e, 0x38, 0x2c, 0x8d, 0xdd, 0xfb, 0x61, 0x69, 0xac, + 0x91, 0xa6, 0x61, 0x74, 0xfe, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x7e, 0x5a, 0x08, 0x8b, 0x27, + 0x33, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -2110,14 +2117,16 @@ func (m *SampleOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x9 i++ - i = encodeFixed64One(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 return i, nil } func (m *SampleOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x15 i++ - i = encodeFixed32One(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 return i, nil } func (m *SampleOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { @@ -2166,28 +2175,32 @@ func (m *SampleOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x4d i++ - i = encodeFixed32One(dAtA, i, uint32(m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9)) + i += 4 return i, nil } func (m *SampleOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x55 i++ - i = encodeFixed32One(dAtA, i, uint32(m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10)) + i += 4 return i, nil } func (m *SampleOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x59 i++ - i = encodeFixed64One(dAtA, i, uint64(m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11)) + i += 8 return i, nil } func (m *SampleOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x61 i++ - i = encodeFixed64One(dAtA, i, uint64(m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12)) + i += 8 return i, nil } func (m *SampleOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { @@ -2236,24 +2249,6 @@ func (m *SampleOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { } return i, nil } -func encodeFixed64One(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 encodeFixed32One(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 encodeVarintOne(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/onepb_test.go index 0eebdc146..db9c7982f 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/marshaler/onepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package one import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,13 +58,13 @@ func TestSubbyProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSubbyMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -78,7 +76,7 @@ func TestSubbyMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -94,14 +92,14 @@ func TestSubbyMarshalTo(t *testing.T) { func TestSampleOneOfProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -122,13 +120,13 @@ func TestSampleOneOfProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSampleOneOfMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -140,7 +138,7 @@ func TestSampleOneOfMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -156,15 +154,15 @@ func TestSampleOneOfMarshalTo(t *testing.T) { func TestSubbyJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -177,15 +175,15 @@ func TestSubbyJSON(t *testing.T) { } func TestSampleOneOfJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -198,11 +196,11 @@ func TestSampleOneOfJSON(t *testing.T) { } func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -215,11 +213,11 @@ func TestSubbyProtoText(t *testing.T) { func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -232,11 +230,11 @@ func TestSubbyProtoCompactText(t *testing.T) { func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -249,11 +247,11 @@ func TestSampleOneOfProtoText(t *testing.T) { func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -268,14 +266,14 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -283,14 +281,14 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestSampleOneOfVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -298,37 +296,37 @@ func TestSampleOneOfVerboseEqual(t *testing.T) { } } func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSampleOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSubbySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -339,7 +337,7 @@ func TestSubbySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -347,10 +345,10 @@ func TestSubbySize(t *testing.T) { func TestSampleOneOfSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -361,14 +359,14 @@ func TestSampleOneOfSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -377,7 +375,7 @@ func TestSubbyStringer(t *testing.T) { } } func TestSampleOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go index b45017847..bcb46d723 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/one.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -19,11 +18,10 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" @@ -539,269 +537,276 @@ func init() { proto.RegisterType((*Subby)(nil), "one.Subby") proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf") } -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Subby) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *SampleOneOf) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func OneDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3862 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0xaf, 0x22, 0x0f, 0x29, 0x12, 0x82, 0xe4, 0x5d, 0xac, 0x1c, 0x73, 0xb5, 0x8a, 0x1d, - 0xcb, 0x76, 0x2d, 0xd9, 0xda, 0xd5, 0x5e, 0xb8, 0x4d, 0x3c, 0x14, 0xc5, 0xd5, 0x72, 0x2b, 0x89, - 0x0c, 0x28, 0xc5, 0xeb, 0xf4, 0x01, 0x03, 0x82, 0x3f, 0x29, 0xec, 0x82, 0x00, 0x03, 0x80, 0xbb, - 0x96, 0x9f, 0xb6, 0xe3, 0x5e, 0x26, 0xd3, 0xe9, 0xbd, 0xd3, 0x26, 0xae, 0xe3, 0xb6, 0x99, 0x69, - 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, 0x1f, - 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xcc, 0x7f, - 0x03, 0xc0, 0x8b, 0x04, 0x2a, 0x33, 0x8e, 0x9f, 0x24, 0x9c, 0x73, 0xbe, 0x0f, 0x07, 0xe7, 0x3f, - 0xff, 0x39, 0x07, 0x3f, 0x01, 0xdf, 0x5f, 0x87, 0xc5, 0x8e, 0x65, 0x75, 0x0c, 0xb4, 0xda, 0xb3, - 0x2d, 0xd7, 0x6a, 0xf6, 0xdb, 0xab, 0x2d, 0xe4, 0x68, 0xb6, 0xde, 0x73, 0x2d, 0x7b, 0x85, 0xc8, - 0xc4, 0x3c, 0xb5, 0x58, 0xe1, 0x16, 0x4b, 0x3b, 0x30, 0x7b, 0x43, 0x37, 0xd0, 0xa6, 0x67, 0xd8, - 0x40, 0xae, 0x78, 0x15, 0xe2, 0x6d, 0xdd, 0x40, 0x52, 0x64, 0x31, 0xb6, 0x9c, 0x59, 0x7b, 0x7c, - 0x65, 0x08, 0xb4, 0x32, 0x88, 0xa8, 0x63, 0xb1, 0x4c, 0x10, 0x4b, 0xef, 0xc4, 0x61, 0x6e, 0x8c, - 0x56, 0x14, 0x21, 0x6e, 0xaa, 0x5d, 0xcc, 0x18, 0x59, 0x4e, 0xcb, 0xe4, 0x7f, 0x51, 0x82, 0xe9, - 0x9e, 0xaa, 0xdd, 0x55, 0x3b, 0x48, 0x8a, 0x12, 0x31, 0xbf, 0x14, 0x0b, 0x00, 0x2d, 0xd4, 0x43, - 0x66, 0x0b, 0x99, 0xda, 0xa1, 0x14, 0x5b, 0x8c, 0x2d, 0xa7, 0xe5, 0x80, 0x44, 0x7c, 0x06, 0x66, - 0x7b, 0xfd, 0xa6, 0xa1, 0x6b, 0x4a, 0xc0, 0x0c, 0x16, 0x63, 0xcb, 0x09, 0x59, 0xa0, 0x8a, 0x4d, - 0xdf, 0xf8, 0x49, 0xc8, 0xdf, 0x47, 0xea, 0xdd, 0xa0, 0x69, 0x86, 0x98, 0xe6, 0xb0, 0x38, 0x60, - 0x58, 0x86, 0x6c, 0x17, 0x39, 0x8e, 0xda, 0x41, 0x8a, 0x7b, 0xd8, 0x43, 0x52, 0x9c, 0x3c, 0xfd, - 0xe2, 0xc8, 0xd3, 0x0f, 0x3f, 0x79, 0x86, 0xa1, 0xf6, 0x0e, 0x7b, 0x48, 0x2c, 0x41, 0x1a, 0x99, - 0xfd, 0x2e, 0x65, 0x48, 0x1c, 0x13, 0xbf, 0x8a, 0xd9, 0xef, 0x0e, 0xb3, 0xa4, 0x30, 0x8c, 0x51, - 0x4c, 0x3b, 0xc8, 0xbe, 0xa7, 0x6b, 0x48, 0x4a, 0x12, 0x82, 0x27, 0x47, 0x08, 0x1a, 0x54, 0x3f, - 0xcc, 0xc1, 0x71, 0x62, 0x19, 0xd2, 0xe8, 0x65, 0x17, 0x99, 0x8e, 0x6e, 0x99, 0xd2, 0x34, 0x21, - 0x79, 0x62, 0xcc, 0x2a, 0x22, 0xa3, 0x35, 0x4c, 0xe1, 0xe3, 0xc4, 0xcb, 0x30, 0x6d, 0xf5, 0x5c, - 0xdd, 0x32, 0x1d, 0x29, 0xb5, 0x18, 0x59, 0xce, 0xac, 0x7d, 0x6c, 0x6c, 0x22, 0xd4, 0xa8, 0x8d, - 0xcc, 0x8d, 0xc5, 0x2a, 0x08, 0x8e, 0xd5, 0xb7, 0x35, 0xa4, 0x68, 0x56, 0x0b, 0x29, 0xba, 0xd9, - 0xb6, 0xa4, 0x34, 0x21, 0x38, 0x3f, 0xfa, 0x20, 0xc4, 0xb0, 0x6c, 0xb5, 0x50, 0xd5, 0x6c, 0x5b, - 0x72, 0xce, 0x19, 0xb8, 0x16, 0xcf, 0x40, 0xd2, 0x39, 0x34, 0x5d, 0xf5, 0x65, 0x29, 0x4b, 0x32, - 0x84, 0x5d, 0x2d, 0xfd, 0x7f, 0x02, 0xf2, 0x93, 0xa4, 0xd8, 0x75, 0x48, 0xb4, 0xf1, 0x53, 0x4a, - 0xd1, 0xd3, 0xc4, 0x80, 0x62, 0x06, 0x83, 0x98, 0xfc, 0x09, 0x83, 0x58, 0x82, 0x8c, 0x89, 0x1c, - 0x17, 0xb5, 0x68, 0x46, 0xc4, 0x26, 0xcc, 0x29, 0xa0, 0xa0, 0xd1, 0x94, 0x8a, 0xff, 0x44, 0x29, - 0x75, 0x1b, 0xf2, 0x9e, 0x4b, 0x8a, 0xad, 0x9a, 0x1d, 0x9e, 0x9b, 0xab, 0x61, 0x9e, 0xac, 0x54, - 0x38, 0x4e, 0xc6, 0x30, 0x39, 0x87, 0x06, 0xae, 0xc5, 0x4d, 0x00, 0xcb, 0x44, 0x56, 0x5b, 0x69, - 0x21, 0xcd, 0x90, 0x52, 0xc7, 0x44, 0xa9, 0x86, 0x4d, 0x46, 0xa2, 0x64, 0x51, 0xa9, 0x66, 0x88, - 0xd7, 0xfc, 0x54, 0x9b, 0x3e, 0x26, 0x53, 0x76, 0xe8, 0x26, 0x1b, 0xc9, 0xb6, 0x7d, 0xc8, 0xd9, - 0x08, 0xe7, 0x3d, 0x6a, 0xb1, 0x27, 0x4b, 0x13, 0x27, 0x56, 0x42, 0x9f, 0x4c, 0x66, 0x30, 0xfa, - 0x60, 0x33, 0x76, 0xf0, 0x52, 0xfc, 0x38, 0x78, 0x02, 0x85, 0xa4, 0x15, 0x90, 0x2a, 0x94, 0xe5, - 0xc2, 0x5d, 0xb5, 0x8b, 0x16, 0xae, 0x42, 0x6e, 0x30, 0x3c, 0xe2, 0x3c, 0x24, 0x1c, 0x57, 0xb5, - 0x5d, 0x92, 0x85, 0x09, 0x99, 0x5e, 0x88, 0x02, 0xc4, 0x90, 0xd9, 0x22, 0x55, 0x2e, 0x21, 0xe3, - 0x7f, 0x17, 0xae, 0xc0, 0xcc, 0xc0, 0xed, 0x27, 0x05, 0x2e, 0x7d, 0x21, 0x09, 0xf3, 0xe3, 0x72, - 0x6e, 0x6c, 0xfa, 0x9f, 0x81, 0xa4, 0xd9, 0xef, 0x36, 0x91, 0x2d, 0xc5, 0x08, 0x03, 0xbb, 0x12, - 0x4b, 0x90, 0x30, 0xd4, 0x26, 0x32, 0xa4, 0xf8, 0x62, 0x64, 0x39, 0xb7, 0xf6, 0xcc, 0x44, 0x59, - 0xbd, 0xb2, 0x8d, 0x21, 0x32, 0x45, 0x8a, 0x9f, 0x82, 0x38, 0x2b, 0x71, 0x98, 0xe1, 0xe9, 0xc9, - 0x18, 0x70, 0x2e, 0xca, 0x04, 0x27, 0x3e, 0x0a, 0x69, 0xfc, 0x97, 0xc6, 0x36, 0x49, 0x7c, 0x4e, - 0x61, 0x01, 0x8e, 0xab, 0xb8, 0x00, 0x29, 0x92, 0x66, 0x2d, 0xc4, 0x5b, 0x83, 0x77, 0x8d, 0x17, - 0xa6, 0x85, 0xda, 0x6a, 0xdf, 0x70, 0x95, 0x7b, 0xaa, 0xd1, 0x47, 0x24, 0x61, 0xd2, 0x72, 0x96, - 0x09, 0x3f, 0x83, 0x65, 0xe2, 0x79, 0xc8, 0xd0, 0xac, 0xd4, 0xcd, 0x16, 0x7a, 0x99, 0x54, 0x9f, - 0x84, 0x4c, 0x13, 0xb5, 0x8a, 0x25, 0xf8, 0xf6, 0x77, 0x1c, 0xcb, 0xe4, 0x4b, 0x4b, 0x6e, 0x81, - 0x05, 0xe4, 0xf6, 0x57, 0x86, 0x0b, 0xdf, 0x63, 0xe3, 0x1f, 0x6f, 0x38, 0x17, 0x97, 0xbe, 0x19, - 0x85, 0x38, 0xd9, 0x6f, 0x79, 0xc8, 0xec, 0xbd, 0x54, 0xaf, 0x28, 0x9b, 0xb5, 0xfd, 0x8d, 0xed, - 0x8a, 0x10, 0x11, 0x73, 0x00, 0x44, 0x70, 0x63, 0xbb, 0x56, 0xda, 0x13, 0xa2, 0xde, 0x75, 0x75, - 0x77, 0xef, 0xf2, 0x25, 0x21, 0xe6, 0x01, 0xf6, 0xa9, 0x20, 0x1e, 0x34, 0xb8, 0xb8, 0x26, 0x24, - 0x44, 0x01, 0xb2, 0x94, 0xa0, 0x7a, 0xbb, 0xb2, 0x79, 0xf9, 0x92, 0x90, 0x1c, 0x94, 0x5c, 0x5c, - 0x13, 0xa6, 0xc5, 0x19, 0x48, 0x13, 0xc9, 0x46, 0xad, 0xb6, 0x2d, 0xa4, 0x3c, 0xce, 0xc6, 0x9e, - 0x5c, 0xdd, 0xdd, 0x12, 0xd2, 0x1e, 0xe7, 0x96, 0x5c, 0xdb, 0xaf, 0x0b, 0xe0, 0x31, 0xec, 0x54, - 0x1a, 0x8d, 0xd2, 0x56, 0x45, 0xc8, 0x78, 0x16, 0x1b, 0x2f, 0xed, 0x55, 0x1a, 0x42, 0x76, 0xc0, - 0xad, 0x8b, 0x6b, 0xc2, 0x8c, 0x77, 0x8b, 0xca, 0xee, 0xfe, 0x8e, 0x90, 0x13, 0x67, 0x61, 0x86, - 0xde, 0x82, 0x3b, 0x91, 0x1f, 0x12, 0x5d, 0xbe, 0x24, 0x08, 0xbe, 0x23, 0x94, 0x65, 0x76, 0x40, - 0x70, 0xf9, 0x92, 0x20, 0x2e, 0x95, 0x21, 0x41, 0xb2, 0x4b, 0x14, 0x21, 0xb7, 0x5d, 0xda, 0xa8, - 0x6c, 0x2b, 0xb5, 0xfa, 0x5e, 0xb5, 0xb6, 0x5b, 0xda, 0x16, 0x22, 0xbe, 0x4c, 0xae, 0x7c, 0x7a, - 0xbf, 0x2a, 0x57, 0x36, 0x85, 0x68, 0x50, 0x56, 0xaf, 0x94, 0xf6, 0x2a, 0x9b, 0x42, 0x6c, 0x49, - 0x83, 0xf9, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2c, 0x71, 0xf4, 0x98, 0x25, 0x26, 0x5c, 0x23, - 0x4b, 0xfc, 0xe5, 0x08, 0xcc, 0x8d, 0xa9, 0xb5, 0x63, 0x6f, 0xf2, 0x02, 0x24, 0x68, 0x8a, 0xd2, - 0xee, 0xf3, 0xd4, 0xd8, 0xa2, 0x4d, 0x12, 0x76, 0xa4, 0x03, 0x11, 0x5c, 0xb0, 0x03, 0xc7, 0x8e, - 0xe9, 0xc0, 0x98, 0x62, 0xc4, 0xc9, 0x57, 0x23, 0x20, 0x1d, 0xc7, 0x1d, 0x52, 0x28, 0xa2, 0x03, - 0x85, 0xe2, 0xfa, 0xb0, 0x03, 0x17, 0x8e, 0x7f, 0x86, 0x11, 0x2f, 0xde, 0x8c, 0xc0, 0x99, 0xf1, - 0x83, 0xca, 0x58, 0x1f, 0x3e, 0x05, 0xc9, 0x2e, 0x72, 0x0f, 0x2c, 0xde, 0xac, 0x3f, 0x31, 0xa6, - 0x05, 0x60, 0xf5, 0x70, 0xac, 0x18, 0x2a, 0xd8, 0x43, 0x62, 0xc7, 0x4d, 0x1b, 0xd4, 0x9b, 0x11, - 0x4f, 0x3f, 0x1f, 0x85, 0x47, 0xc6, 0x92, 0x8f, 0x75, 0xf4, 0x31, 0x00, 0xdd, 0xec, 0xf5, 0x5d, - 0xda, 0x90, 0x69, 0x7d, 0x4a, 0x13, 0x09, 0xd9, 0xfb, 0xb8, 0xf6, 0xf4, 0x5d, 0x4f, 0x1f, 0x23, - 0x7a, 0xa0, 0x22, 0x62, 0x70, 0xd5, 0x77, 0x34, 0x4e, 0x1c, 0x2d, 0x1c, 0xf3, 0xa4, 0x23, 0xbd, - 0xee, 0x39, 0x10, 0x34, 0x43, 0x47, 0xa6, 0xab, 0x38, 0xae, 0x8d, 0xd4, 0xae, 0x6e, 0x76, 0x48, - 0x01, 0x4e, 0x15, 0x13, 0x6d, 0xd5, 0x70, 0x90, 0x9c, 0xa7, 0xea, 0x06, 0xd7, 0x62, 0x04, 0xe9, - 0x32, 0x76, 0x00, 0x91, 0x1c, 0x40, 0x50, 0xb5, 0x87, 0x58, 0xfa, 0xda, 0x34, 0x64, 0x02, 0x63, - 0x9d, 0x78, 0x01, 0xb2, 0x77, 0xd4, 0x7b, 0xaa, 0xc2, 0x47, 0x75, 0x1a, 0x89, 0x0c, 0x96, 0xd5, - 0xd9, 0xb8, 0xfe, 0x1c, 0xcc, 0x13, 0x13, 0xab, 0xef, 0x22, 0x5b, 0xd1, 0x0c, 0xd5, 0x71, 0x48, - 0xd0, 0x52, 0xc4, 0x54, 0xc4, 0xba, 0x1a, 0x56, 0x95, 0xb9, 0x46, 0x5c, 0x87, 0x39, 0x82, 0xe8, - 0xf6, 0x0d, 0x57, 0xef, 0x19, 0x48, 0xc1, 0x2f, 0x0f, 0x0e, 0x29, 0xc4, 0x9e, 0x67, 0xb3, 0xd8, - 0x62, 0x87, 0x19, 0x60, 0x8f, 0x1c, 0x71, 0x13, 0x1e, 0x23, 0xb0, 0x0e, 0x32, 0x91, 0xad, 0xba, - 0x48, 0x41, 0x9f, 0xeb, 0xab, 0x86, 0xa3, 0xa8, 0x66, 0x4b, 0x39, 0x50, 0x9d, 0x03, 0x69, 0x1e, - 0x13, 0x6c, 0x44, 0xa5, 0x88, 0x7c, 0x0e, 0x1b, 0x6e, 0x31, 0xbb, 0x0a, 0x31, 0x2b, 0x99, 0xad, - 0x9b, 0xaa, 0x73, 0x20, 0x16, 0xe1, 0x0c, 0x61, 0x71, 0x5c, 0x5b, 0x37, 0x3b, 0x8a, 0x76, 0x80, - 0xb4, 0xbb, 0x4a, 0xdf, 0x6d, 0x5f, 0x95, 0x1e, 0x0d, 0xde, 0x9f, 0x78, 0xd8, 0x20, 0x36, 0x65, - 0x6c, 0xb2, 0xef, 0xb6, 0xaf, 0x8a, 0x0d, 0xc8, 0xe2, 0xc5, 0xe8, 0xea, 0xaf, 0x20, 0xa5, 0x6d, - 0xd9, 0xa4, 0xb3, 0xe4, 0xc6, 0xec, 0xec, 0x40, 0x04, 0x57, 0x6a, 0x0c, 0xb0, 0x63, 0xb5, 0x50, - 0x31, 0xd1, 0xa8, 0x57, 0x2a, 0x9b, 0x72, 0x86, 0xb3, 0xdc, 0xb0, 0x6c, 0x9c, 0x50, 0x1d, 0xcb, - 0x0b, 0x70, 0x86, 0x26, 0x54, 0xc7, 0xe2, 0xe1, 0x5d, 0x87, 0x39, 0x4d, 0xa3, 0xcf, 0xac, 0x6b, - 0x0a, 0x1b, 0xf1, 0x1d, 0x49, 0x18, 0x08, 0x96, 0xa6, 0x6d, 0x51, 0x03, 0x96, 0xe3, 0x8e, 0x78, - 0x0d, 0x1e, 0xf1, 0x83, 0x15, 0x04, 0xce, 0x8e, 0x3c, 0xe5, 0x30, 0x74, 0x1d, 0xe6, 0x7a, 0x87, - 0xa3, 0x40, 0x71, 0xe0, 0x8e, 0xbd, 0xc3, 0x61, 0xd8, 0x13, 0xe4, 0xb5, 0xcd, 0x46, 0x9a, 0xea, - 0xa2, 0x96, 0x74, 0x36, 0x68, 0x1d, 0x50, 0x88, 0xab, 0x20, 0x68, 0x9a, 0x82, 0x4c, 0xb5, 0x69, - 0x20, 0x45, 0xb5, 0x91, 0xa9, 0x3a, 0xd2, 0xf9, 0xa0, 0x71, 0x4e, 0xd3, 0x2a, 0x44, 0x5b, 0x22, - 0x4a, 0xf1, 0x69, 0x98, 0xb5, 0x9a, 0x77, 0x34, 0x9a, 0x59, 0x4a, 0xcf, 0x46, 0x6d, 0xfd, 0x65, - 0xe9, 0x71, 0x12, 0xa6, 0x3c, 0x56, 0x90, 0xbc, 0xaa, 0x13, 0xb1, 0xf8, 0x14, 0x08, 0x9a, 0x73, - 0xa0, 0xda, 0x3d, 0xd2, 0xda, 0x9d, 0x9e, 0xaa, 0x21, 0xe9, 0x09, 0x6a, 0x4a, 0xe5, 0xbb, 0x5c, - 0x8c, 0x33, 0xdb, 0xb9, 0xaf, 0xb7, 0x5d, 0xce, 0xf8, 0x24, 0xcd, 0x6c, 0x22, 0x63, 0x6c, 0xb7, - 0x61, 0xbe, 0x6f, 0xea, 0xa6, 0x8b, 0xec, 0x9e, 0x8d, 0xf0, 0x10, 0x4f, 0x77, 0xa2, 0xf4, 0x6f, - 0xd3, 0xc7, 0x8c, 0xe1, 0xfb, 0x41, 0x6b, 0x9a, 0x00, 0xf2, 0x5c, 0x7f, 0x54, 0xb8, 0x54, 0x84, - 0x6c, 0x30, 0x2f, 0xc4, 0x34, 0xd0, 0xcc, 0x10, 0x22, 0xb8, 0xc7, 0x96, 0x6b, 0x9b, 0xb8, 0x3b, - 0x7e, 0xb6, 0x22, 0x44, 0x71, 0x97, 0xde, 0xae, 0xee, 0x55, 0x14, 0x79, 0x7f, 0x77, 0xaf, 0xba, - 0x53, 0x11, 0x62, 0x4f, 0xa7, 0x53, 0x3f, 0x98, 0x16, 0x1e, 0x3c, 0x78, 0xf0, 0x20, 0xba, 0xf4, - 0xed, 0x28, 0xe4, 0x06, 0x27, 0x63, 0xf1, 0x67, 0xe1, 0x2c, 0x7f, 0x8d, 0x75, 0x90, 0xab, 0xdc, - 0xd7, 0x6d, 0x92, 0xaa, 0x5d, 0x95, 0xce, 0x96, 0x5e, 0x94, 0xe7, 0x99, 0x55, 0x03, 0xb9, 0x2f, - 0xea, 0x36, 0x4e, 0xc4, 0xae, 0xea, 0x8a, 0xdb, 0x70, 0xde, 0xb4, 0x14, 0xc7, 0x55, 0xcd, 0x96, - 0x6a, 0xb7, 0x14, 0xff, 0x00, 0x41, 0x51, 0x35, 0x0d, 0x39, 0x8e, 0x45, 0x5b, 0x84, 0xc7, 0xf2, - 0x31, 0xd3, 0x6a, 0x30, 0x63, 0xbf, 0x76, 0x96, 0x98, 0xe9, 0x50, 0x46, 0xc4, 0x8e, 0xcb, 0x88, - 0x47, 0x21, 0xdd, 0x55, 0x7b, 0x0a, 0x32, 0x5d, 0xfb, 0x90, 0xcc, 0x73, 0x29, 0x39, 0xd5, 0x55, - 0x7b, 0x15, 0x7c, 0xfd, 0xe1, 0xad, 0x41, 0x30, 0x8e, 0xdf, 0x8b, 0x41, 0x36, 0x38, 0xd3, 0xe1, - 0x11, 0x59, 0x23, 0xf5, 0x3b, 0x42, 0x76, 0xf8, 0xc7, 0x4f, 0x9c, 0x00, 0x57, 0xca, 0xb8, 0xb0, - 0x17, 0x93, 0x74, 0xd2, 0x92, 0x29, 0x12, 0x37, 0x55, 0xbc, 0xa7, 0x11, 0x9d, 0xdf, 0x53, 0x32, - 0xbb, 0x12, 0xb7, 0x20, 0x79, 0xc7, 0x21, 0xdc, 0x49, 0xc2, 0xfd, 0xf8, 0xc9, 0xdc, 0xb7, 0x1a, - 0x84, 0x3c, 0x7d, 0xab, 0xa1, 0xec, 0xd6, 0xe4, 0x9d, 0xd2, 0xb6, 0xcc, 0xe0, 0xe2, 0x39, 0x88, - 0x1b, 0xea, 0x2b, 0x87, 0x83, 0x2d, 0x80, 0x88, 0x26, 0x0d, 0xfc, 0x39, 0x88, 0xdf, 0x47, 0xea, - 0xdd, 0xc1, 0xc2, 0x4b, 0x44, 0x1f, 0x62, 0xea, 0xaf, 0x42, 0x82, 0xc4, 0x4b, 0x04, 0x60, 0x11, - 0x13, 0xa6, 0xc4, 0x14, 0xc4, 0xcb, 0x35, 0x19, 0xa7, 0xbf, 0x00, 0x59, 0x2a, 0x55, 0xea, 0xd5, - 0x4a, 0xb9, 0x22, 0x44, 0x97, 0xd6, 0x21, 0x49, 0x83, 0x80, 0xb7, 0x86, 0x17, 0x06, 0x61, 0x8a, - 0x5d, 0x32, 0x8e, 0x08, 0xd7, 0xee, 0xef, 0x6c, 0x54, 0x64, 0x21, 0x1a, 0x5c, 0x5e, 0x07, 0xb2, - 0xc1, 0x71, 0xee, 0xa7, 0x93, 0x53, 0xff, 0x10, 0x81, 0x4c, 0x60, 0x3c, 0xc3, 0x83, 0x81, 0x6a, - 0x18, 0xd6, 0x7d, 0x45, 0x35, 0x74, 0xd5, 0x61, 0x49, 0x01, 0x44, 0x54, 0xc2, 0x92, 0x49, 0x17, - 0xed, 0xa7, 0xe2, 0xfc, 0x1b, 0x11, 0x10, 0x86, 0x47, 0xbb, 0x21, 0x07, 0x23, 0x1f, 0xa9, 0x83, - 0xaf, 0x47, 0x20, 0x37, 0x38, 0xcf, 0x0d, 0xb9, 0x77, 0xe1, 0x23, 0x75, 0xef, 0xed, 0x28, 0xcc, - 0x0c, 0x4c, 0x71, 0x93, 0x7a, 0xf7, 0x39, 0x98, 0xd5, 0x5b, 0xa8, 0xdb, 0xb3, 0x5c, 0x64, 0x6a, - 0x87, 0x8a, 0x81, 0xee, 0x21, 0x43, 0x5a, 0x22, 0x85, 0x62, 0xf5, 0xe4, 0x39, 0x71, 0xa5, 0xea, - 0xe3, 0xb6, 0x31, 0xac, 0x38, 0x57, 0xdd, 0xac, 0xec, 0xd4, 0x6b, 0x7b, 0x95, 0xdd, 0xf2, 0x4b, - 0xca, 0xfe, 0xee, 0xcf, 0xed, 0xd6, 0x5e, 0xdc, 0x95, 0x05, 0x7d, 0xc8, 0xec, 0x43, 0xdc, 0xea, - 0x75, 0x10, 0x86, 0x9d, 0x12, 0xcf, 0xc2, 0x38, 0xb7, 0x84, 0x29, 0x71, 0x0e, 0xf2, 0xbb, 0x35, - 0xa5, 0x51, 0xdd, 0xac, 0x28, 0x95, 0x1b, 0x37, 0x2a, 0xe5, 0xbd, 0x06, 0x7d, 0x71, 0xf6, 0xac, - 0xf7, 0x06, 0x37, 0xf5, 0x6b, 0x31, 0x98, 0x1b, 0xe3, 0x89, 0x58, 0x62, 0x33, 0x3b, 0x7d, 0x8d, - 0x78, 0x76, 0x12, 0xef, 0x57, 0xf0, 0x54, 0x50, 0x57, 0x6d, 0x97, 0x8d, 0xf8, 0x4f, 0x01, 0x8e, - 0x92, 0xe9, 0xea, 0x6d, 0x1d, 0xd9, 0xec, 0x9c, 0x81, 0x0e, 0xf2, 0x79, 0x5f, 0x4e, 0x8f, 0x1a, - 0x7e, 0x06, 0xc4, 0x9e, 0xe5, 0xe8, 0xae, 0x7e, 0x0f, 0x29, 0xba, 0xc9, 0x0f, 0x25, 0xf0, 0x60, - 0x1f, 0x97, 0x05, 0xae, 0xa9, 0x9a, 0xae, 0x67, 0x6d, 0xa2, 0x8e, 0x3a, 0x64, 0x8d, 0x0b, 0x78, - 0x4c, 0x16, 0xb8, 0xc6, 0xb3, 0xbe, 0x00, 0xd9, 0x96, 0xd5, 0xc7, 0x63, 0x12, 0xb5, 0xc3, 0xfd, - 0x22, 0x22, 0x67, 0xa8, 0xcc, 0x33, 0x61, 0x73, 0xac, 0x7f, 0x1a, 0x92, 0x95, 0x33, 0x54, 0x46, - 0x4d, 0x9e, 0x84, 0xbc, 0xda, 0xe9, 0xd8, 0x98, 0x9c, 0x13, 0xd1, 0xc9, 0x3c, 0xe7, 0x89, 0x89, - 0xe1, 0xc2, 0x2d, 0x48, 0xf1, 0x38, 0xe0, 0x96, 0x8c, 0x23, 0xa1, 0xf4, 0xe8, 0x99, 0x54, 0x74, - 0x39, 0x2d, 0xa7, 0x4c, 0xae, 0xbc, 0x00, 0x59, 0xdd, 0x51, 0xfc, 0xc3, 0xd1, 0xe8, 0x62, 0x74, - 0x39, 0x25, 0x67, 0x74, 0xc7, 0x3b, 0x0d, 0x5b, 0x7a, 0x33, 0x0a, 0xb9, 0xc1, 0xc3, 0x5d, 0x71, - 0x13, 0x52, 0x86, 0xa5, 0xa9, 0x24, 0xb5, 0xe8, 0x2f, 0x0b, 0xcb, 0x21, 0xe7, 0xc1, 0x2b, 0xdb, - 0xcc, 0x5e, 0xf6, 0x90, 0x0b, 0xff, 0x12, 0x81, 0x14, 0x17, 0x8b, 0x67, 0x20, 0xde, 0x53, 0xdd, - 0x03, 0x42, 0x97, 0xd8, 0x88, 0x0a, 0x11, 0x99, 0x5c, 0x63, 0xb9, 0xd3, 0x53, 0x4d, 0x92, 0x02, - 0x4c, 0x8e, 0xaf, 0xf1, 0xba, 0x1a, 0x48, 0x6d, 0x91, 0xb1, 0xdf, 0xea, 0x76, 0x91, 0xe9, 0x3a, - 0x7c, 0x5d, 0x99, 0xbc, 0xcc, 0xc4, 0xe2, 0x33, 0x30, 0xeb, 0xda, 0xaa, 0x6e, 0x0c, 0xd8, 0xc6, - 0x89, 0xad, 0xc0, 0x15, 0x9e, 0x71, 0x11, 0xce, 0x71, 0xde, 0x16, 0x72, 0x55, 0xed, 0x00, 0xb5, - 0x7c, 0x50, 0x92, 0x9c, 0x1c, 0x9e, 0x65, 0x06, 0x9b, 0x4c, 0xcf, 0xb1, 0x4b, 0xdf, 0x8d, 0xc0, - 0x2c, 0x7f, 0x51, 0x69, 0x79, 0xc1, 0xda, 0x01, 0x50, 0x4d, 0xd3, 0x72, 0x83, 0xe1, 0x1a, 0x4d, - 0xe5, 0x11, 0xdc, 0x4a, 0xc9, 0x03, 0xc9, 0x01, 0x82, 0x85, 0x2e, 0x80, 0xaf, 0x39, 0x36, 0x6c, - 0xe7, 0x21, 0xc3, 0x4e, 0xee, 0xc9, 0xcf, 0x3f, 0xf4, 0xd5, 0x16, 0xa8, 0x08, 0xbf, 0xd1, 0x88, - 0xf3, 0x90, 0x68, 0xa2, 0x8e, 0x6e, 0xb2, 0xf3, 0x44, 0x7a, 0xc1, 0x4f, 0x29, 0xe3, 0xde, 0x29, - 0xe5, 0xc6, 0x6d, 0x98, 0xd3, 0xac, 0xee, 0xb0, 0xbb, 0x1b, 0xc2, 0xd0, 0xeb, 0xb5, 0x73, 0x33, - 0xf2, 0x59, 0xf0, 0x47, 0xcc, 0x2f, 0x47, 0x63, 0x5b, 0xf5, 0x8d, 0xaf, 0x46, 0x17, 0xb6, 0x28, - 0xae, 0xce, 0x1f, 0x53, 0x46, 0x6d, 0x03, 0x69, 0xd8, 0x75, 0xf8, 0xe1, 0x27, 0xe0, 0xd9, 0x8e, - 0xee, 0x1e, 0xf4, 0x9b, 0x2b, 0x9a, 0xd5, 0x5d, 0xed, 0x58, 0x1d, 0xcb, 0xff, 0xb9, 0x0b, 0x5f, - 0x91, 0x0b, 0xf2, 0x1f, 0xfb, 0xc9, 0x2b, 0xed, 0x49, 0x17, 0x42, 0x7f, 0x1f, 0x2b, 0xee, 0xc2, - 0x1c, 0x33, 0x56, 0xc8, 0x99, 0x3b, 0x7d, 0x35, 0x10, 0x4f, 0x3c, 0x77, 0x91, 0xbe, 0xf1, 0x0e, - 0xe9, 0xd5, 0xf2, 0x2c, 0x83, 0x62, 0x1d, 0x7d, 0x81, 0x28, 0xca, 0xf0, 0xc8, 0x00, 0x1f, 0xdd, - 0x97, 0xc8, 0x0e, 0x61, 0xfc, 0x36, 0x63, 0x9c, 0x0b, 0x30, 0x36, 0x18, 0xb4, 0x58, 0x86, 0x99, - 0xd3, 0x70, 0xfd, 0x13, 0xe3, 0xca, 0xa2, 0x20, 0xc9, 0x16, 0xe4, 0x09, 0x89, 0xd6, 0x77, 0x5c, - 0xab, 0x4b, 0x8a, 0xde, 0xc9, 0x34, 0xff, 0xfc, 0x0e, 0xdd, 0x28, 0x39, 0x0c, 0x2b, 0x7b, 0xa8, - 0x62, 0x11, 0xc8, 0xcf, 0x0c, 0x2d, 0xa4, 0x19, 0x21, 0x0c, 0x6f, 0x31, 0x47, 0x3c, 0xfb, 0xe2, - 0x67, 0x60, 0x1e, 0xff, 0x4f, 0x6a, 0x52, 0xd0, 0x93, 0xf0, 0x53, 0x26, 0xe9, 0xbb, 0xaf, 0xd2, - 0xbd, 0x38, 0xe7, 0x11, 0x04, 0x7c, 0x0a, 0xac, 0x62, 0x07, 0xb9, 0x2e, 0xb2, 0x1d, 0x45, 0x35, - 0xc6, 0xb9, 0x17, 0x78, 0x4d, 0x97, 0xbe, 0xf8, 0xee, 0xe0, 0x2a, 0x6e, 0x51, 0x64, 0xc9, 0x30, - 0x8a, 0xfb, 0x70, 0x76, 0x4c, 0x56, 0x4c, 0xc0, 0xf9, 0x1a, 0xe3, 0x9c, 0x1f, 0xc9, 0x0c, 0x4c, - 0x5b, 0x07, 0x2e, 0xf7, 0xd6, 0x72, 0x02, 0xce, 0x3f, 0x60, 0x9c, 0x22, 0xc3, 0xf2, 0x25, 0xc5, - 0x8c, 0xb7, 0x60, 0xf6, 0x1e, 0xb2, 0x9b, 0x96, 0xc3, 0x8e, 0x46, 0x26, 0xa0, 0x7b, 0x9d, 0xd1, - 0xe5, 0x19, 0x90, 0x9c, 0x95, 0x60, 0xae, 0x6b, 0x90, 0x6a, 0xab, 0x1a, 0x9a, 0x80, 0xe2, 0x4b, - 0x8c, 0x62, 0x1a, 0xdb, 0x63, 0x68, 0x09, 0xb2, 0x1d, 0x8b, 0xb5, 0xa5, 0x70, 0xf8, 0x1b, 0x0c, - 0x9e, 0xe1, 0x18, 0x46, 0xd1, 0xb3, 0x7a, 0x7d, 0x03, 0xf7, 0xac, 0x70, 0x8a, 0x3f, 0xe4, 0x14, - 0x1c, 0xc3, 0x28, 0x4e, 0x11, 0xd6, 0x3f, 0xe2, 0x14, 0x4e, 0x20, 0x9e, 0x2f, 0x40, 0xc6, 0x32, - 0x8d, 0x43, 0xcb, 0x9c, 0xc4, 0x89, 0x3f, 0x66, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x3a, 0xa4, 0x27, - 0x5d, 0x88, 0x3f, 0x79, 0x97, 0x6f, 0x0f, 0xbe, 0x02, 0x5b, 0x90, 0xe7, 0x05, 0x4a, 0xb7, 0xcc, - 0x09, 0x28, 0xfe, 0x94, 0x51, 0xe4, 0x02, 0x30, 0xf6, 0x18, 0x2e, 0x72, 0xdc, 0x0e, 0x9a, 0x84, - 0xe4, 0x4d, 0xfe, 0x18, 0x0c, 0xc2, 0x42, 0xd9, 0x44, 0xa6, 0x76, 0x30, 0x19, 0xc3, 0x57, 0x78, - 0x28, 0x39, 0x06, 0x53, 0x94, 0x61, 0xa6, 0xab, 0xda, 0xce, 0x81, 0x6a, 0x4c, 0xb4, 0x1c, 0x7f, - 0xc6, 0x38, 0xb2, 0x1e, 0x88, 0x45, 0xa4, 0x6f, 0x9e, 0x86, 0xe6, 0xab, 0x3c, 0x22, 0x01, 0x18, - 0xdb, 0x7a, 0x8e, 0x4b, 0x0e, 0xa0, 0x4e, 0xc3, 0xf6, 0x35, 0xbe, 0xf5, 0x28, 0x76, 0x27, 0xc8, - 0x78, 0x1d, 0xd2, 0x8e, 0xfe, 0xca, 0x44, 0x34, 0x7f, 0xce, 0x57, 0x9a, 0x00, 0x30, 0xf8, 0x25, - 0x38, 0x37, 0xb6, 0x4d, 0x4c, 0x40, 0xf6, 0x17, 0x8c, 0xec, 0xcc, 0x98, 0x56, 0xc1, 0x4a, 0xc2, - 0x69, 0x29, 0xff, 0x92, 0x97, 0x04, 0x34, 0xc4, 0x55, 0xc7, 0x2f, 0x0a, 0x8e, 0xda, 0x3e, 0x5d, - 0xd4, 0xfe, 0x8a, 0x47, 0x8d, 0x62, 0x07, 0xa2, 0xb6, 0x07, 0x67, 0x18, 0xe3, 0xe9, 0xd6, 0xf5, - 0xeb, 0xbc, 0xb0, 0x52, 0xf4, 0xfe, 0xe0, 0xea, 0xfe, 0x3c, 0x2c, 0x78, 0xe1, 0xe4, 0x13, 0xa9, - 0xa3, 0x74, 0xd5, 0xde, 0x04, 0xcc, 0xdf, 0x60, 0xcc, 0xbc, 0xe2, 0x7b, 0x23, 0xad, 0xb3, 0xa3, - 0xf6, 0x30, 0xf9, 0x6d, 0x90, 0x38, 0x79, 0xdf, 0xb4, 0x91, 0x66, 0x75, 0x4c, 0xfd, 0x15, 0xd4, - 0x9a, 0x80, 0xfa, 0xaf, 0x87, 0x96, 0x6a, 0x3f, 0x00, 0xc7, 0xcc, 0x55, 0x10, 0xbc, 0x59, 0x45, - 0xd1, 0xbb, 0x3d, 0xcb, 0x76, 0x43, 0x18, 0xff, 0x86, 0xaf, 0x94, 0x87, 0xab, 0x12, 0x58, 0xb1, - 0x02, 0x39, 0x72, 0x39, 0x69, 0x4a, 0xfe, 0x2d, 0x23, 0x9a, 0xf1, 0x51, 0xac, 0x70, 0x68, 0x56, - 0xb7, 0xa7, 0xda, 0x93, 0xd4, 0xbf, 0xbf, 0xe3, 0x85, 0x83, 0x41, 0x58, 0xe1, 0x70, 0x0f, 0x7b, - 0x08, 0x77, 0xfb, 0x09, 0x18, 0xbe, 0xc9, 0x0b, 0x07, 0xc7, 0x30, 0x0a, 0x3e, 0x30, 0x4c, 0x40, - 0xf1, 0xf7, 0x9c, 0x82, 0x63, 0x30, 0xc5, 0xa7, 0xfd, 0x46, 0x6b, 0xa3, 0x8e, 0xee, 0xb8, 0x36, - 0x9d, 0x83, 0x4f, 0xa6, 0xfa, 0xd6, 0xbb, 0x83, 0x43, 0x98, 0x1c, 0x80, 0x16, 0x6f, 0x41, 0x7e, - 0x68, 0xc4, 0x10, 0xc3, 0xbe, 0x59, 0x90, 0x7e, 0xe1, 0x7d, 0x56, 0x8c, 0x06, 0x27, 0x8c, 0xe2, - 0x36, 0x5e, 0xf7, 0xc1, 0x39, 0x20, 0x9c, 0xec, 0xd5, 0xf7, 0xbd, 0xa5, 0x1f, 0x18, 0x03, 0x8a, - 0x37, 0x60, 0x66, 0x60, 0x06, 0x08, 0xa7, 0xfa, 0x45, 0x46, 0x95, 0x0d, 0x8e, 0x00, 0xc5, 0x75, - 0x88, 0xe3, 0x7e, 0x1e, 0x0e, 0xff, 0x25, 0x06, 0x27, 0xe6, 0xc5, 0x4f, 0x42, 0x8a, 0xf7, 0xf1, - 0x70, 0xe8, 0x2f, 0x33, 0xa8, 0x07, 0xc1, 0x70, 0xde, 0xc3, 0xc3, 0xe1, 0xbf, 0xc2, 0xe1, 0x1c, - 0x82, 0xe1, 0x93, 0x87, 0xf0, 0x1f, 0x7f, 0x35, 0xce, 0xea, 0x30, 0x8f, 0xdd, 0x75, 0x98, 0x66, - 0xcd, 0x3b, 0x1c, 0xfd, 0x79, 0x76, 0x73, 0x8e, 0x28, 0x5e, 0x81, 0xc4, 0x84, 0x01, 0xff, 0x35, - 0x06, 0xa5, 0xf6, 0xc5, 0x32, 0x64, 0x02, 0x0d, 0x3b, 0x1c, 0xfe, 0xeb, 0x0c, 0x1e, 0x44, 0x61, - 0xd7, 0x59, 0xc3, 0x0e, 0x27, 0xf8, 0x0d, 0xee, 0x3a, 0x43, 0xe0, 0xb0, 0xf1, 0x5e, 0x1d, 0x8e, - 0xfe, 0x4d, 0x1e, 0x75, 0x0e, 0x29, 0xbe, 0x00, 0x69, 0xaf, 0xfe, 0x86, 0xe3, 0x7f, 0x8b, 0xe1, - 0x7d, 0x0c, 0x8e, 0x40, 0xa0, 0xfe, 0x87, 0x53, 0xfc, 0x36, 0x8f, 0x40, 0x00, 0x85, 0xb7, 0xd1, - 0x70, 0x4f, 0x0f, 0x67, 0xfa, 0x1d, 0xbe, 0x8d, 0x86, 0x5a, 0x3a, 0x5e, 0x4d, 0x52, 0x06, 0xc3, - 0x29, 0x7e, 0x97, 0xaf, 0x26, 0xb1, 0xc7, 0x6e, 0x0c, 0x37, 0xc9, 0x70, 0x8e, 0xdf, 0xe7, 0x6e, - 0x0c, 0xf5, 0xc8, 0x62, 0x1d, 0xc4, 0xd1, 0x06, 0x19, 0xce, 0xf7, 0x05, 0xc6, 0x37, 0x3b, 0xd2, - 0x1f, 0x8b, 0x2f, 0xc2, 0x99, 0xf1, 0xcd, 0x31, 0x9c, 0xf5, 0x8b, 0xef, 0x0f, 0xbd, 0xce, 0x04, - 0x7b, 0x63, 0x71, 0xcf, 0xaf, 0xb2, 0xc1, 0xc6, 0x18, 0x4e, 0xfb, 0xda, 0xfb, 0x83, 0x85, 0x36, - 0xd8, 0x17, 0x8b, 0x25, 0x00, 0xbf, 0x27, 0x85, 0x73, 0xbd, 0xce, 0xb8, 0x02, 0x20, 0xbc, 0x35, - 0x58, 0x4b, 0x0a, 0xc7, 0x7f, 0x89, 0x6f, 0x0d, 0x86, 0xc0, 0x5b, 0x83, 0x77, 0xa3, 0x70, 0xf4, - 0x1b, 0x7c, 0x6b, 0x70, 0x48, 0xf1, 0x3a, 0xa4, 0xcc, 0xbe, 0x61, 0xe0, 0xdc, 0x12, 0x4f, 0xfe, - 0x8c, 0x48, 0xfa, 0xf7, 0x0f, 0x18, 0x98, 0x03, 0x8a, 0xeb, 0x90, 0x40, 0xdd, 0x26, 0x6a, 0x85, - 0x21, 0xff, 0xe3, 0x03, 0x5e, 0x4f, 0xb0, 0x75, 0xf1, 0x05, 0x00, 0xfa, 0x32, 0x4d, 0x7e, 0x25, - 0x0a, 0xc1, 0xfe, 0xe7, 0x07, 0xec, 0x0b, 0x05, 0x1f, 0xe2, 0x13, 0xd0, 0xef, 0x1d, 0x4e, 0x26, - 0x78, 0x77, 0x90, 0x80, 0xbc, 0x80, 0x5f, 0x83, 0xe9, 0x3b, 0x8e, 0x65, 0xba, 0x6a, 0x27, 0x0c, - 0xfd, 0x5f, 0x0c, 0xcd, 0xed, 0x71, 0xc0, 0xba, 0x96, 0x8d, 0x5c, 0xb5, 0xe3, 0x84, 0x61, 0xff, - 0x9b, 0x61, 0x3d, 0x00, 0x06, 0x6b, 0xaa, 0xe3, 0x4e, 0xf2, 0xdc, 0xff, 0xc3, 0xc1, 0x1c, 0x80, - 0x9d, 0xc6, 0xff, 0xdf, 0x45, 0x87, 0x61, 0xd8, 0xf7, 0xb8, 0xd3, 0xcc, 0xbe, 0xf8, 0x49, 0x48, - 0xe3, 0x7f, 0xe9, 0x57, 0x3b, 0x21, 0xe0, 0xff, 0x65, 0x60, 0x1f, 0x81, 0xef, 0xec, 0xb8, 0x2d, - 0x57, 0x0f, 0x0f, 0xf6, 0xff, 0xb1, 0x95, 0xe6, 0xf6, 0xc5, 0x12, 0x64, 0x1c, 0xb7, 0xd5, 0xea, - 0xb3, 0x89, 0x26, 0x04, 0xfe, 0xc3, 0x0f, 0xbc, 0x97, 0x5c, 0x0f, 0xb3, 0x71, 0x61, 0xfc, 0x61, - 0x1d, 0x6c, 0x59, 0x5b, 0x16, 0x3d, 0xa6, 0x83, 0xdf, 0x4b, 0x80, 0xa4, 0x59, 0xdd, 0xa6, 0xe5, - 0xac, 0x9a, 0x48, 0x77, 0x0f, 0x90, 0xbd, 0x6a, 0x99, 0xcc, 0x56, 0x8c, 0x59, 0x26, 0x5a, 0x38, - 0xdd, 0xa1, 0xdc, 0xd2, 0x39, 0x48, 0x34, 0xfa, 0xcd, 0xe6, 0xa1, 0x28, 0x40, 0xcc, 0xe9, 0x37, - 0xd9, 0x57, 0x25, 0xf8, 0xdf, 0xa5, 0xef, 0xc5, 0x20, 0xd3, 0x50, 0xbb, 0x3d, 0x03, 0xd5, 0x4c, - 0x54, 0x6b, 0x8b, 0x12, 0x24, 0xc9, 0x33, 0x3c, 0x4f, 0x8c, 0x22, 0x37, 0xa7, 0x64, 0x76, 0xed, - 0x69, 0xd6, 0xc8, 0x49, 0x65, 0xd4, 0xd3, 0xac, 0x79, 0x9a, 0x8b, 0xf4, 0xa0, 0xd2, 0xd3, 0x5c, - 0xf4, 0x34, 0x97, 0xc8, 0x71, 0x65, 0xcc, 0xd3, 0x5c, 0xf2, 0x34, 0xeb, 0xe4, 0x38, 0x7e, 0xc6, - 0xd3, 0xac, 0x7b, 0x9a, 0xcb, 0xe4, 0x00, 0x3e, 0xee, 0x69, 0x2e, 0x7b, 0x9a, 0x2b, 0xe4, 0xdc, - 0x7d, 0xd6, 0xd3, 0x5c, 0xf1, 0x34, 0x57, 0xc9, 0x59, 0xbb, 0xe8, 0x69, 0xae, 0x7a, 0x9a, 0x6b, - 0xe4, 0xe3, 0x91, 0x69, 0x4f, 0x73, 0x4d, 0x5c, 0x80, 0x69, 0xfa, 0x64, 0xcf, 0x91, 0x1f, 0x64, - 0xf3, 0x37, 0xa7, 0x64, 0x2e, 0xf0, 0x75, 0xcf, 0x93, 0x0f, 0x44, 0x92, 0xbe, 0xee, 0x79, 0x5f, - 0xb7, 0x46, 0x3e, 0x93, 0x16, 0x7c, 0xdd, 0x9a, 0xaf, 0xbb, 0x28, 0xcd, 0xe0, 0xa5, 0xf7, 0x75, - 0x17, 0x7d, 0xdd, 0x25, 0x29, 0x87, 0xe3, 0xef, 0xeb, 0x2e, 0xf9, 0xba, 0x75, 0x29, 0xbf, 0x18, - 0x59, 0xce, 0xfa, 0xba, 0x75, 0xf1, 0x59, 0xc8, 0x38, 0xfd, 0xa6, 0xc2, 0xbe, 0x1f, 0x20, 0x1f, - 0xa2, 0x64, 0xd6, 0x60, 0x05, 0x67, 0x04, 0x59, 0xd4, 0x9b, 0x53, 0x32, 0x38, 0xfd, 0x26, 0xab, - 0x8d, 0x1b, 0x59, 0x20, 0x47, 0x09, 0x0a, 0xf9, 0xfc, 0x72, 0x63, 0xf3, 0xad, 0x87, 0x85, 0xa9, - 0xef, 0x3c, 0x2c, 0x4c, 0xfd, 0xeb, 0xc3, 0xc2, 0xd4, 0xdb, 0x0f, 0x0b, 0x91, 0xf7, 0x1e, 0x16, - 0x22, 0x3f, 0x7a, 0x58, 0x88, 0x3c, 0x38, 0x2a, 0x44, 0xbe, 0x72, 0x54, 0x88, 0x7c, 0xfd, 0xa8, - 0x10, 0xf9, 0xd6, 0x51, 0x21, 0xf2, 0xd6, 0x51, 0x61, 0xea, 0x3b, 0x47, 0x85, 0xa9, 0xb7, 0x8f, - 0x0a, 0x91, 0x1f, 0x1c, 0x15, 0xa6, 0xde, 0x3b, 0x2a, 0x44, 0x7e, 0x74, 0x54, 0x98, 0x7a, 0xf0, - 0xfd, 0xc2, 0x54, 0x33, 0x49, 0xd2, 0xe8, 0xe2, 0x8f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x14, 0x1b, - 0x23, 0x42, 0xf5, 0x30, 0x00, 0x00, + // 3974 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0x1b, 0xd7, + 0x79, 0x26, 0xae, 0x04, 0x7e, 0x80, 0xe0, 0xf2, 0x90, 0x96, 0x20, 0x3a, 0x86, 0x24, 0xda, 0x8e, + 0x68, 0xbb, 0x26, 0x6d, 0x4a, 0xd4, 0x05, 0x6a, 0xe2, 0x82, 0x24, 0x44, 0x51, 0x25, 0x09, 0x66, + 0x41, 0xc6, 0x97, 0x4c, 0x67, 0x67, 0xb1, 0x38, 0x00, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, 0x92, + 0xa9, 0xe9, 0x83, 0x3a, 0xee, 0x65, 0x32, 0x9d, 0xde, 0x3b, 0x4d, 0xe2, 0x3a, 0xee, 0x65, 0xa6, + 0x75, 0x9a, 0xde, 0x92, 0xa6, 0x4d, 0xd3, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, 0x1f, + 0xf2, 0x60, 0x31, 0x9e, 0x69, 0xda, 0xba, 0x8d, 0xdb, 0xfa, 0xc1, 0x33, 0x7e, 0xc9, 0x9c, 0xdb, + 0xee, 0xe2, 0x42, 0x2d, 0x98, 0x19, 0xdb, 0x4f, 0xe4, 0xfe, 0xff, 0xff, 0x7d, 0x7b, 0xce, 0x7f, + 0xfe, 0xf3, 0xff, 0xff, 0x39, 0x58, 0xf8, 0xd1, 0x15, 0x38, 0xd3, 0xb6, 0xac, 0xb6, 0x81, 0x17, + 0x6d, 0xc7, 0xf2, 0xac, 0x46, 0xb7, 0xb5, 0xd8, 0xc4, 0xae, 0xe6, 0xe8, 0xb6, 0x67, 0x39, 0x0b, + 0x54, 0x86, 0x26, 0x99, 0xc5, 0x82, 0xb0, 0x98, 0xdb, 0x82, 0xa9, 0x6b, 0xba, 0x81, 0xd7, 0x7c, + 0xc3, 0x3a, 0xf6, 0xd0, 0x65, 0x48, 0xb6, 0x74, 0x03, 0x17, 0x63, 0x67, 0x12, 0xf3, 0xb9, 0xa5, + 0xc7, 0x16, 0xfa, 0x40, 0x0b, 0xbd, 0x88, 0x1d, 0x22, 0x96, 0x29, 0x62, 0xee, 0xed, 0x24, 0x4c, + 0x0f, 0xd1, 0x22, 0x04, 0x49, 0x53, 0xed, 0x10, 0xc6, 0xd8, 0x7c, 0x56, 0xa6, 0xff, 0xa3, 0x22, + 0x8c, 0xdb, 0xaa, 0x76, 0x4b, 0x6d, 0xe3, 0x62, 0x9c, 0x8a, 0xc5, 0x23, 0x2a, 0x01, 0x34, 0xb1, + 0x8d, 0xcd, 0x26, 0x36, 0xb5, 0x83, 0x62, 0xe2, 0x4c, 0x62, 0x3e, 0x2b, 0x87, 0x24, 0xe8, 0x29, + 0x98, 0xb2, 0xbb, 0x0d, 0x43, 0xd7, 0x94, 0x90, 0x19, 0x9c, 0x49, 0xcc, 0xa7, 0x64, 0x89, 0x29, + 0xd6, 0x02, 0xe3, 0x73, 0x30, 0x79, 0x07, 0xab, 0xb7, 0xc2, 0xa6, 0x39, 0x6a, 0x5a, 0x20, 0xe2, + 0x90, 0xe1, 0x2a, 0xe4, 0x3b, 0xd8, 0x75, 0xd5, 0x36, 0x56, 0xbc, 0x03, 0x1b, 0x17, 0x93, 0x74, + 0xf6, 0x67, 0x06, 0x66, 0xdf, 0x3f, 0xf3, 0x1c, 0x47, 0xed, 0x1e, 0xd8, 0x18, 0x55, 0x20, 0x8b, + 0xcd, 0x6e, 0x87, 0x31, 0xa4, 0x8e, 0xf0, 0x5f, 0xd5, 0xec, 0x76, 0xfa, 0x59, 0x32, 0x04, 0xc6, + 0x29, 0xc6, 0x5d, 0xec, 0xdc, 0xd6, 0x35, 0x5c, 0x4c, 0x53, 0x82, 0x73, 0x03, 0x04, 0x75, 0xa6, + 0xef, 0xe7, 0x10, 0x38, 0xb4, 0x0a, 0x59, 0xfc, 0xb2, 0x87, 0x4d, 0x57, 0xb7, 0xcc, 0xe2, 0x38, + 0x25, 0x79, 0x7c, 0xc8, 0x2a, 0x62, 0xa3, 0xd9, 0x4f, 0x11, 0xe0, 0xd0, 0x45, 0x18, 0xb7, 0x6c, + 0x4f, 0xb7, 0x4c, 0xb7, 0x98, 0x39, 0x13, 0x9b, 0xcf, 0x2d, 0x7d, 0x62, 0x68, 0x20, 0xd4, 0x98, + 0x8d, 0x2c, 0x8c, 0xd1, 0x06, 0x48, 0xae, 0xd5, 0x75, 0x34, 0xac, 0x68, 0x56, 0x13, 0x2b, 0xba, + 0xd9, 0xb2, 0x8a, 0x59, 0x4a, 0x70, 0x7a, 0x70, 0x22, 0xd4, 0x70, 0xd5, 0x6a, 0xe2, 0x0d, 0xb3, + 0x65, 0xc9, 0x05, 0xb7, 0xe7, 0x19, 0x9d, 0x80, 0xb4, 0x7b, 0x60, 0x7a, 0xea, 0xcb, 0xc5, 0x3c, + 0x8d, 0x10, 0xfe, 0x34, 0xf7, 0x0f, 0x69, 0x98, 0x1c, 0x25, 0xc4, 0xae, 0x42, 0xaa, 0x45, 0x66, + 0x59, 0x8c, 0x1f, 0xc7, 0x07, 0x0c, 0xd3, 0xeb, 0xc4, 0xf4, 0x4f, 0xe8, 0xc4, 0x0a, 0xe4, 0x4c, + 0xec, 0x7a, 0xb8, 0xc9, 0x22, 0x22, 0x31, 0x62, 0x4c, 0x01, 0x03, 0x0d, 0x86, 0x54, 0xf2, 0x27, + 0x0a, 0xa9, 0x17, 0x60, 0xd2, 0x1f, 0x92, 0xe2, 0xa8, 0x66, 0x5b, 0xc4, 0xe6, 0x62, 0xd4, 0x48, + 0x16, 0xaa, 0x02, 0x27, 0x13, 0x98, 0x5c, 0xc0, 0x3d, 0xcf, 0x68, 0x0d, 0xc0, 0x32, 0xb1, 0xd5, + 0x52, 0x9a, 0x58, 0x33, 0x8a, 0x99, 0x23, 0xbc, 0x54, 0x23, 0x26, 0x03, 0x5e, 0xb2, 0x98, 0x54, + 0x33, 0xd0, 0x95, 0x20, 0xd4, 0xc6, 0x8f, 0x88, 0x94, 0x2d, 0xb6, 0xc9, 0x06, 0xa2, 0x6d, 0x0f, + 0x0a, 0x0e, 0x26, 0x71, 0x8f, 0x9b, 0x7c, 0x66, 0x59, 0x3a, 0x88, 0x85, 0xc8, 0x99, 0xc9, 0x1c, + 0xc6, 0x26, 0x36, 0xe1, 0x84, 0x1f, 0xd1, 0xa3, 0xe0, 0x0b, 0x14, 0x1a, 0x56, 0x40, 0xb3, 0x50, + 0x5e, 0x08, 0xb7, 0xd5, 0x0e, 0x9e, 0xbd, 0x0b, 0x85, 0x5e, 0xf7, 0xa0, 0x19, 0x48, 0xb9, 0x9e, + 0xea, 0x78, 0x34, 0x0a, 0x53, 0x32, 0x7b, 0x40, 0x12, 0x24, 0xb0, 0xd9, 0xa4, 0x59, 0x2e, 0x25, + 0x93, 0x7f, 0xd1, 0xcf, 0x04, 0x13, 0x4e, 0xd0, 0x09, 0x7f, 0x72, 0x70, 0x45, 0x7b, 0x98, 0xfb, + 0xe7, 0x3d, 0x7b, 0x09, 0x26, 0x7a, 0x26, 0x30, 0xea, 0xab, 0xe7, 0x7e, 0x1e, 0x1e, 0x1a, 0x4a, + 0x8d, 0x5e, 0x80, 0x99, 0xae, 0xa9, 0x9b, 0x1e, 0x76, 0x6c, 0x07, 0x93, 0x88, 0x65, 0xaf, 0x2a, + 0xfe, 0xfb, 0xf8, 0x11, 0x31, 0xb7, 0x17, 0xb6, 0x66, 0x2c, 0xf2, 0x74, 0x77, 0x50, 0xf8, 0x64, + 0x36, 0xf3, 0xc3, 0x71, 0xe9, 0xde, 0xbd, 0x7b, 0xf7, 0xe2, 0x73, 0x5f, 0x4a, 0xc3, 0xcc, 0xb0, + 0x3d, 0x33, 0x74, 0xfb, 0x9e, 0x80, 0xb4, 0xd9, 0xed, 0x34, 0xb0, 0x43, 0x9d, 0x94, 0x92, 0xf9, + 0x13, 0xaa, 0x40, 0xca, 0x50, 0x1b, 0xd8, 0x28, 0x26, 0xcf, 0xc4, 0xe6, 0x0b, 0x4b, 0x4f, 0x8d, + 0xb4, 0x2b, 0x17, 0x36, 0x09, 0x44, 0x66, 0x48, 0xf4, 0x69, 0x48, 0xf2, 0x14, 0x4d, 0x18, 0x9e, + 0x1c, 0x8d, 0x81, 0xec, 0x25, 0x99, 0xe2, 0xd0, 0xc3, 0x90, 0x25, 0x7f, 0x59, 0x6c, 0xa4, 0xe9, + 0x98, 0x33, 0x44, 0x40, 0xe2, 0x02, 0xcd, 0x42, 0x86, 0x6e, 0x93, 0x26, 0x16, 0xa5, 0xcd, 0x7f, + 0x26, 0x81, 0xd5, 0xc4, 0x2d, 0xb5, 0x6b, 0x78, 0xca, 0x6d, 0xd5, 0xe8, 0x62, 0x1a, 0xf0, 0x59, + 0x39, 0xcf, 0x85, 0x9f, 0x25, 0x32, 0x74, 0x1a, 0x72, 0x6c, 0x57, 0xe9, 0x66, 0x13, 0xbf, 0x4c, + 0xb3, 0x67, 0x4a, 0x66, 0x1b, 0x6d, 0x83, 0x48, 0xc8, 0xeb, 0x6f, 0xba, 0x96, 0x29, 0x42, 0x93, + 0xbe, 0x82, 0x08, 0xe8, 0xeb, 0x2f, 0xf5, 0x27, 0xee, 0x47, 0x86, 0x4f, 0xaf, 0x3f, 0xa6, 0xe6, + 0xbe, 0x15, 0x87, 0x24, 0xcd, 0x17, 0x93, 0x90, 0xdb, 0x7d, 0x71, 0xa7, 0xaa, 0xac, 0xd5, 0xf6, + 0x56, 0x36, 0xab, 0x52, 0x0c, 0x15, 0x00, 0xa8, 0xe0, 0xda, 0x66, 0xad, 0xb2, 0x2b, 0xc5, 0xfd, + 0xe7, 0x8d, 0xed, 0xdd, 0x8b, 0x17, 0xa4, 0x84, 0x0f, 0xd8, 0x63, 0x82, 0x64, 0xd8, 0xe0, 0xfc, + 0x92, 0x94, 0x42, 0x12, 0xe4, 0x19, 0xc1, 0xc6, 0x0b, 0xd5, 0xb5, 0x8b, 0x17, 0xa4, 0x74, 0xaf, + 0xe4, 0xfc, 0x92, 0x34, 0x8e, 0x26, 0x20, 0x4b, 0x25, 0x2b, 0xb5, 0xda, 0xa6, 0x94, 0xf1, 0x39, + 0xeb, 0xbb, 0xf2, 0xc6, 0xf6, 0xba, 0x94, 0xf5, 0x39, 0xd7, 0xe5, 0xda, 0xde, 0x8e, 0x04, 0x3e, + 0xc3, 0x56, 0xb5, 0x5e, 0xaf, 0xac, 0x57, 0xa5, 0x9c, 0x6f, 0xb1, 0xf2, 0xe2, 0x6e, 0xb5, 0x2e, + 0xe5, 0x7b, 0x86, 0x75, 0x7e, 0x49, 0x9a, 0xf0, 0x5f, 0x51, 0xdd, 0xde, 0xdb, 0x92, 0x0a, 0x68, + 0x0a, 0x26, 0xd8, 0x2b, 0xc4, 0x20, 0x26, 0xfb, 0x44, 0x17, 0x2f, 0x48, 0x52, 0x30, 0x10, 0xc6, + 0x32, 0xd5, 0x23, 0xb8, 0x78, 0x41, 0x42, 0x73, 0xab, 0x90, 0xa2, 0xd1, 0x85, 0x10, 0x14, 0x36, + 0x2b, 0x2b, 0xd5, 0x4d, 0xa5, 0xb6, 0xb3, 0xbb, 0x51, 0xdb, 0xae, 0x6c, 0x4a, 0xb1, 0x40, 0x26, + 0x57, 0x3f, 0xb3, 0xb7, 0x21, 0x57, 0xd7, 0xa4, 0x78, 0x58, 0xb6, 0x53, 0xad, 0xec, 0x56, 0xd7, + 0xa4, 0xc4, 0x9c, 0x06, 0x33, 0xc3, 0xf2, 0xe4, 0xd0, 0x9d, 0x11, 0x5a, 0xe2, 0xf8, 0x11, 0x4b, + 0x4c, 0xb9, 0x06, 0x96, 0xf8, 0x07, 0x71, 0x98, 0x1e, 0x52, 0x2b, 0x86, 0xbe, 0xe4, 0x39, 0x48, + 0xb1, 0x10, 0x65, 0xd5, 0xf3, 0x89, 0xa1, 0x45, 0x87, 0x06, 0xec, 0x40, 0x05, 0xa5, 0xb8, 0x70, + 0x07, 0x91, 0x38, 0xa2, 0x83, 0x20, 0x14, 0x03, 0x39, 0xfd, 0xe7, 0x06, 0x72, 0x3a, 0x2b, 0x7b, + 0x17, 0x47, 0x29, 0x7b, 0x54, 0x76, 0xbc, 0xdc, 0x9e, 0x1a, 0x92, 0xdb, 0xaf, 0xc2, 0xd4, 0x00, + 0xd1, 0xc8, 0x39, 0xf6, 0x95, 0x18, 0x14, 0x8f, 0x72, 0x4e, 0x44, 0xa6, 0x8b, 0xf7, 0x64, 0xba, + 0xab, 0xfd, 0x1e, 0x3c, 0x7b, 0xf4, 0x22, 0x0c, 0xac, 0xf5, 0x1b, 0x31, 0x38, 0x31, 0xbc, 0x53, + 0x1c, 0x3a, 0x86, 0x4f, 0x43, 0xba, 0x83, 0xbd, 0x7d, 0x4b, 0x74, 0x4b, 0x9f, 0x1c, 0x52, 0x83, + 0x89, 0xba, 0x7f, 0xb1, 0x39, 0x2a, 0x5c, 0xc4, 0x13, 0x47, 0xb5, 0x7b, 0x6c, 0x34, 0x03, 0x23, + 0xfd, 0x42, 0x1c, 0x1e, 0x1a, 0x4a, 0x3e, 0x74, 0xa0, 0x8f, 0x00, 0xe8, 0xa6, 0xdd, 0xf5, 0x58, + 0x47, 0xc4, 0x12, 0x6c, 0x96, 0x4a, 0x68, 0xf2, 0x22, 0xc9, 0xb3, 0xeb, 0xf9, 0xfa, 0x04, 0xd5, + 0x03, 0x13, 0x51, 0x83, 0xcb, 0xc1, 0x40, 0x93, 0x74, 0xa0, 0xa5, 0x23, 0x66, 0x3a, 0x10, 0x98, + 0xcf, 0x80, 0xa4, 0x19, 0x3a, 0x36, 0x3d, 0xc5, 0xf5, 0x1c, 0xac, 0x76, 0x74, 0xb3, 0x4d, 0x2b, + 0x48, 0xa6, 0x9c, 0x6a, 0xa9, 0x86, 0x8b, 0xe5, 0x49, 0xa6, 0xae, 0x0b, 0x2d, 0x41, 0xd0, 0x00, + 0x72, 0x42, 0x88, 0x74, 0x0f, 0x82, 0xa9, 0x7d, 0xc4, 0xdc, 0x37, 0x33, 0x90, 0x0b, 0xf5, 0xd5, + 0xe8, 0x2c, 0xe4, 0x6f, 0xaa, 0xb7, 0x55, 0x45, 0x9c, 0x95, 0x98, 0x27, 0x72, 0x44, 0xb6, 0xc3, + 0xcf, 0x4b, 0xcf, 0xc0, 0x0c, 0x35, 0xb1, 0xba, 0x1e, 0x76, 0x14, 0xcd, 0x50, 0x5d, 0x97, 0x3a, + 0x2d, 0x43, 0x4d, 0x11, 0xd1, 0xd5, 0x88, 0x6a, 0x55, 0x68, 0xd0, 0x32, 0x4c, 0x53, 0x44, 0xa7, + 0x6b, 0x78, 0xba, 0x6d, 0x60, 0x85, 0x9c, 0xde, 0x5c, 0x5a, 0x49, 0xfc, 0x91, 0x4d, 0x11, 0x8b, + 0x2d, 0x6e, 0x40, 0x46, 0xe4, 0xa2, 0x35, 0x78, 0x84, 0xc2, 0xda, 0xd8, 0xc4, 0x8e, 0xea, 0x61, + 0x05, 0x7f, 0xbe, 0xab, 0x1a, 0xae, 0xa2, 0x9a, 0x4d, 0x65, 0x5f, 0x75, 0xf7, 0x8b, 0x33, 0x84, + 0x60, 0x25, 0x5e, 0x8c, 0xc9, 0xa7, 0x88, 0xe1, 0x3a, 0xb7, 0xab, 0x52, 0xb3, 0x8a, 0xd9, 0xbc, + 0xae, 0xba, 0xfb, 0xa8, 0x0c, 0x27, 0x28, 0x8b, 0xeb, 0x39, 0xba, 0xd9, 0x56, 0xb4, 0x7d, 0xac, + 0xdd, 0x52, 0xba, 0x5e, 0xeb, 0x72, 0xf1, 0xe1, 0xf0, 0xfb, 0xe9, 0x08, 0xeb, 0xd4, 0x66, 0x95, + 0x98, 0xec, 0x79, 0xad, 0xcb, 0xa8, 0x0e, 0x79, 0xb2, 0x18, 0x1d, 0xfd, 0x2e, 0x56, 0x5a, 0x96, + 0x43, 0x4b, 0x63, 0x61, 0x48, 0x6a, 0x0a, 0x79, 0x70, 0xa1, 0xc6, 0x01, 0x5b, 0x56, 0x13, 0x97, + 0x53, 0xf5, 0x9d, 0x6a, 0x75, 0x4d, 0xce, 0x09, 0x96, 0x6b, 0x96, 0x43, 0x02, 0xaa, 0x6d, 0xf9, + 0x0e, 0xce, 0xb1, 0x80, 0x6a, 0x5b, 0xc2, 0xbd, 0xcb, 0x30, 0xad, 0x69, 0x6c, 0xce, 0xba, 0xa6, + 0xf0, 0x33, 0x96, 0x5b, 0x94, 0x7a, 0x9c, 0xa5, 0x69, 0xeb, 0xcc, 0x80, 0xc7, 0xb8, 0x8b, 0xae, + 0xc0, 0x43, 0x81, 0xb3, 0xc2, 0xc0, 0xa9, 0x81, 0x59, 0xf6, 0x43, 0x97, 0x61, 0xda, 0x3e, 0x18, + 0x04, 0xa2, 0x9e, 0x37, 0xda, 0x07, 0xfd, 0xb0, 0x4b, 0x30, 0x63, 0xef, 0xdb, 0x83, 0xb8, 0x27, + 0xc3, 0x38, 0x64, 0xef, 0xdb, 0xfd, 0xc0, 0xc7, 0xe9, 0x81, 0xdb, 0xc1, 0x9a, 0xea, 0xe1, 0x66, + 0xf1, 0x64, 0xd8, 0x3c, 0xa4, 0x40, 0x8b, 0x20, 0x69, 0x9a, 0x82, 0x4d, 0xb5, 0x61, 0x60, 0x45, + 0x75, 0xb0, 0xa9, 0xba, 0xc5, 0xd3, 0x61, 0xe3, 0x82, 0xa6, 0x55, 0xa9, 0xb6, 0x42, 0x95, 0xe8, + 0x49, 0x98, 0xb2, 0x1a, 0x37, 0x35, 0x16, 0x92, 0x8a, 0xed, 0xe0, 0x96, 0xfe, 0x72, 0xf1, 0x31, + 0xea, 0xdf, 0x49, 0xa2, 0xa0, 0x01, 0xb9, 0x43, 0xc5, 0xe8, 0x09, 0x90, 0x34, 0x77, 0x5f, 0x75, + 0x6c, 0x9a, 0x93, 0x5d, 0x5b, 0xd5, 0x70, 0xf1, 0x71, 0x66, 0xca, 0xe4, 0xdb, 0x42, 0x4c, 0xb6, + 0x84, 0x7b, 0x47, 0x6f, 0x79, 0x82, 0xf1, 0x1c, 0xdb, 0x12, 0x54, 0xc6, 0xd9, 0xe6, 0x41, 0x22, + 0xae, 0xe8, 0x79, 0xf1, 0x3c, 0x35, 0x2b, 0xd8, 0xfb, 0x76, 0xf8, 0xbd, 0x8f, 0xc2, 0x04, 0xb1, + 0x0c, 0x5e, 0xfa, 0x04, 0x6b, 0xc8, 0xec, 0xfd, 0xd0, 0x1b, 0x3f, 0xb4, 0xde, 0x78, 0xae, 0x0c, + 0xf9, 0x70, 0x7c, 0xa2, 0x2c, 0xb0, 0x08, 0x95, 0x62, 0xa4, 0x59, 0x59, 0xad, 0xad, 0x91, 0x36, + 0xe3, 0xa5, 0xaa, 0x14, 0x27, 0xed, 0xce, 0xe6, 0xc6, 0x6e, 0x55, 0x91, 0xf7, 0xb6, 0x77, 0x37, + 0xb6, 0xaa, 0x52, 0x22, 0xdc, 0x57, 0x7f, 0x27, 0x0e, 0x85, 0xde, 0x23, 0x12, 0xfa, 0x69, 0x38, + 0x29, 0xee, 0x33, 0x5c, 0xec, 0x29, 0x77, 0x74, 0x87, 0x6e, 0x99, 0x8e, 0xca, 0xca, 0x97, 0xbf, + 0x68, 0x33, 0xdc, 0xaa, 0x8e, 0xbd, 0xe7, 0x75, 0x87, 0x6c, 0x88, 0x8e, 0xea, 0xa1, 0x4d, 0x38, + 0x6d, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x53, 0x75, 0x9a, 0x4a, 0x70, 0x93, 0xa4, 0xa8, 0x9a, 0x86, + 0x5d, 0xd7, 0x62, 0xa5, 0xca, 0x67, 0xf9, 0x84, 0x69, 0xd5, 0xb9, 0x71, 0x90, 0xc3, 0x2b, 0xdc, + 0xb4, 0x2f, 0xc0, 0x12, 0x47, 0x05, 0xd8, 0xc3, 0x90, 0xed, 0xa8, 0xb6, 0x82, 0x4d, 0xcf, 0x39, + 0xa0, 0x8d, 0x71, 0x46, 0xce, 0x74, 0x54, 0xbb, 0x4a, 0x9e, 0x3f, 0x9a, 0xf3, 0xc9, 0xf7, 0x13, + 0x90, 0x0f, 0x37, 0xc7, 0xe4, 0xac, 0xa1, 0xd1, 0x3a, 0x12, 0xa3, 0x99, 0xe6, 0xd1, 0x07, 0xb6, + 0xd2, 0x0b, 0xab, 0xa4, 0xc0, 0x94, 0xd3, 0xac, 0x65, 0x95, 0x19, 0x92, 0x14, 0x77, 0x92, 0x5b, + 0x30, 0x6b, 0x11, 0x32, 0x32, 0x7f, 0x42, 0xeb, 0x90, 0xbe, 0xe9, 0x52, 0xee, 0x34, 0xe5, 0x7e, + 0xec, 0xc1, 0xdc, 0x37, 0xea, 0x94, 0x3c, 0x7b, 0xa3, 0xae, 0x6c, 0xd7, 0xe4, 0xad, 0xca, 0xa6, + 0xcc, 0xe1, 0xe8, 0x14, 0x24, 0x0d, 0xf5, 0xee, 0x41, 0x6f, 0x29, 0xa2, 0xa2, 0x51, 0x1d, 0x7f, + 0x0a, 0x92, 0x77, 0xb0, 0x7a, 0xab, 0xb7, 0x00, 0x50, 0xd1, 0x87, 0x18, 0xfa, 0x8b, 0x90, 0xa2, + 0xfe, 0x42, 0x00, 0xdc, 0x63, 0xd2, 0x18, 0xca, 0x40, 0x72, 0xb5, 0x26, 0x93, 0xf0, 0x97, 0x20, + 0xcf, 0xa4, 0xca, 0xce, 0x46, 0x75, 0xb5, 0x2a, 0xc5, 0xe7, 0x96, 0x21, 0xcd, 0x9c, 0x40, 0xb6, + 0x86, 0xef, 0x06, 0x69, 0x8c, 0x3f, 0x72, 0x8e, 0x98, 0xd0, 0xee, 0x6d, 0xad, 0x54, 0x65, 0x29, + 0x1e, 0x5e, 0x5e, 0x17, 0xf2, 0xe1, 0xbe, 0xf8, 0xa3, 0x89, 0xa9, 0x7f, 0x8c, 0x41, 0x2e, 0xd4, + 0xe7, 0x92, 0x06, 0x45, 0x35, 0x0c, 0xeb, 0x8e, 0xa2, 0x1a, 0xba, 0xea, 0xf2, 0xa0, 0x00, 0x2a, + 0xaa, 0x10, 0xc9, 0xa8, 0x8b, 0xf6, 0x91, 0x0c, 0xfe, 0xf5, 0x18, 0x48, 0xfd, 0x2d, 0x66, 0xdf, + 0x00, 0x63, 0x1f, 0xeb, 0x00, 0x5f, 0x8b, 0x41, 0xa1, 0xb7, 0xaf, 0xec, 0x1b, 0xde, 0xd9, 0x8f, + 0x75, 0x78, 0x6f, 0xc5, 0x61, 0xa2, 0xa7, 0x9b, 0x1c, 0x75, 0x74, 0x9f, 0x87, 0x29, 0xbd, 0x89, + 0x3b, 0xb6, 0xe5, 0x61, 0x53, 0x3b, 0x50, 0x0c, 0x7c, 0x1b, 0x1b, 0xc5, 0x39, 0x9a, 0x28, 0x16, + 0x1f, 0xdc, 0xaf, 0x2e, 0x6c, 0x04, 0xb8, 0x4d, 0x02, 0x2b, 0x4f, 0x6f, 0xac, 0x55, 0xb7, 0x76, + 0x6a, 0xbb, 0xd5, 0xed, 0xd5, 0x17, 0x95, 0xbd, 0xed, 0x9f, 0xdd, 0xae, 0x3d, 0xbf, 0x2d, 0x4b, + 0x7a, 0x9f, 0xd9, 0x87, 0xb8, 0xd5, 0x77, 0x40, 0xea, 0x1f, 0x14, 0x3a, 0x09, 0xc3, 0x86, 0x25, + 0x8d, 0xa1, 0x69, 0x98, 0xdc, 0xae, 0x29, 0xf5, 0x8d, 0xb5, 0xaa, 0x52, 0xbd, 0x76, 0xad, 0xba, + 0xba, 0x5b, 0x67, 0x37, 0x10, 0xbe, 0xf5, 0x6e, 0xef, 0xa6, 0x7e, 0x35, 0x01, 0xd3, 0x43, 0x46, + 0x82, 0x2a, 0xfc, 0xec, 0xc0, 0x8e, 0x33, 0x4f, 0x8f, 0x32, 0xfa, 0x05, 0x52, 0xf2, 0x77, 0x54, + 0xc7, 0xe3, 0x47, 0x8d, 0x27, 0x80, 0x78, 0xc9, 0xf4, 0xf4, 0x96, 0x8e, 0x1d, 0x7e, 0x61, 0xc3, + 0x0e, 0x14, 0x93, 0x81, 0x9c, 0xdd, 0xd9, 0xfc, 0x14, 0x20, 0xdb, 0x72, 0x75, 0x4f, 0xbf, 0x8d, + 0x15, 0xdd, 0x14, 0xb7, 0x3b, 0xe4, 0x80, 0x91, 0x94, 0x25, 0xa1, 0xd9, 0x30, 0x3d, 0xdf, 0xda, + 0xc4, 0x6d, 0xb5, 0xcf, 0x9a, 0x24, 0xf0, 0x84, 0x2c, 0x09, 0x8d, 0x6f, 0x7d, 0x16, 0xf2, 0x4d, + 0xab, 0x4b, 0xba, 0x2e, 0x66, 0x47, 0xea, 0x45, 0x4c, 0xce, 0x31, 0x99, 0x6f, 0xc2, 0xfb, 0xe9, + 0xe0, 0x5a, 0x29, 0x2f, 0xe7, 0x98, 0x8c, 0x99, 0x9c, 0x83, 0x49, 0xb5, 0xdd, 0x76, 0x08, 0xb9, + 0x20, 0x62, 0x27, 0x84, 0x82, 0x2f, 0xa6, 0x86, 0xb3, 0x37, 0x20, 0x23, 0xfc, 0x40, 0x4a, 0x32, + 0xf1, 0x84, 0x62, 0xb3, 0x63, 0x6f, 0x7c, 0x3e, 0x2b, 0x67, 0x4c, 0xa1, 0x3c, 0x0b, 0x79, 0xdd, + 0x55, 0x82, 0x5b, 0xf2, 0xf8, 0x99, 0xf8, 0x7c, 0x46, 0xce, 0xe9, 0xae, 0x7f, 0xc3, 0x38, 0xf7, + 0x46, 0x1c, 0x0a, 0xbd, 0xb7, 0xfc, 0x68, 0x0d, 0x32, 0x86, 0xa5, 0xa9, 0x34, 0xb4, 0xd8, 0x4f, + 0x4c, 0xf3, 0x11, 0x3f, 0x0c, 0x2c, 0x6c, 0x72, 0x7b, 0xd9, 0x47, 0xce, 0xfe, 0x6b, 0x0c, 0x32, + 0x42, 0x8c, 0x4e, 0x40, 0xd2, 0x56, 0xbd, 0x7d, 0x4a, 0x97, 0x5a, 0x89, 0x4b, 0x31, 0x99, 0x3e, + 0x13, 0xb9, 0x6b, 0xab, 0x26, 0x0d, 0x01, 0x2e, 0x27, 0xcf, 0x64, 0x5d, 0x0d, 0xac, 0x36, 0xe9, + 0xf1, 0xc3, 0xea, 0x74, 0xb0, 0xe9, 0xb9, 0x62, 0x5d, 0xb9, 0x7c, 0x95, 0x8b, 0xd1, 0x53, 0x30, + 0xe5, 0x39, 0xaa, 0x6e, 0xf4, 0xd8, 0x26, 0xa9, 0xad, 0x24, 0x14, 0xbe, 0x71, 0x19, 0x4e, 0x09, + 0xde, 0x26, 0xf6, 0x54, 0x6d, 0x1f, 0x37, 0x03, 0x50, 0x9a, 0x5e, 0x33, 0x9c, 0xe4, 0x06, 0x6b, + 0x5c, 0x2f, 0xb0, 0x73, 0xdf, 0x8b, 0xc1, 0x94, 0x38, 0x30, 0x35, 0x7d, 0x67, 0x6d, 0x01, 0xa8, + 0xa6, 0x69, 0x79, 0x61, 0x77, 0x0d, 0x86, 0xf2, 0x00, 0x6e, 0xa1, 0xe2, 0x83, 0xe4, 0x10, 0xc1, + 0x6c, 0x07, 0x20, 0xd0, 0x1c, 0xe9, 0xb6, 0xd3, 0x90, 0xe3, 0x3f, 0xe1, 0xd0, 0xdf, 0x01, 0xd9, + 0x11, 0x1b, 0x98, 0x88, 0x9c, 0xac, 0xd0, 0x0c, 0xa4, 0x1a, 0xb8, 0xad, 0x9b, 0xfc, 0x62, 0x96, + 0x3d, 0x88, 0x8b, 0x90, 0xa4, 0x7f, 0x11, 0xb2, 0xf2, 0x39, 0x98, 0xd6, 0xac, 0x4e, 0xff, 0x70, + 0x57, 0xa4, 0xbe, 0x63, 0xbe, 0x7b, 0x3d, 0xf6, 0x12, 0x04, 0x2d, 0xe6, 0xfb, 0xb1, 0xd8, 0x1f, + 0xc7, 0x13, 0xeb, 0x3b, 0x2b, 0x5f, 0x8b, 0xcf, 0xae, 0x33, 0xe8, 0x8e, 0x98, 0xa9, 0x8c, 0x5b, + 0x06, 0xd6, 0xc8, 0xe8, 0xe1, 0x8b, 0xe7, 0xe0, 0xe9, 0xb6, 0xee, 0xed, 0x77, 0x1b, 0x0b, 0x9a, + 0xd5, 0x59, 0x6c, 0x5b, 0x6d, 0x2b, 0xf8, 0xe9, 0x93, 0x3c, 0xd1, 0x07, 0xfa, 0x1f, 0xff, 0xf9, + 0x33, 0xeb, 0x4b, 0x67, 0x23, 0x7f, 0x2b, 0x2d, 0x6f, 0xc3, 0x34, 0x37, 0x56, 0xe8, 0xef, 0x2f, + 0xec, 0x14, 0x81, 0x1e, 0x78, 0x87, 0x55, 0xfc, 0xc6, 0xdb, 0xb4, 0x5c, 0xcb, 0x53, 0x1c, 0x4a, + 0x74, 0xec, 0xa0, 0x51, 0x96, 0xe1, 0xa1, 0x1e, 0x3e, 0xb6, 0x35, 0xb1, 0x13, 0xc1, 0xf8, 0x1d, + 0xce, 0x38, 0x1d, 0x62, 0xac, 0x73, 0x68, 0x79, 0x15, 0x26, 0x8e, 0xc3, 0xf5, 0xcf, 0x9c, 0x2b, + 0x8f, 0xc3, 0x24, 0xeb, 0x30, 0x49, 0x49, 0xb4, 0xae, 0xeb, 0x59, 0x1d, 0x9a, 0xf7, 0x1e, 0x4c, + 0xf3, 0x2f, 0x6f, 0xb3, 0xbd, 0x52, 0x20, 0xb0, 0x55, 0x1f, 0x55, 0x2e, 0x03, 0xfd, 0xc9, 0xa9, + 0x89, 0x35, 0x23, 0x82, 0xe1, 0x4d, 0x3e, 0x10, 0xdf, 0xbe, 0xfc, 0x59, 0x98, 0x21, 0xff, 0xd3, + 0xb4, 0x14, 0x1e, 0x49, 0xf4, 0x85, 0x57, 0xf1, 0x7b, 0xaf, 0xb0, 0xed, 0x38, 0xed, 0x13, 0x84, + 0xc6, 0x14, 0x5a, 0xc5, 0x36, 0xf6, 0x3c, 0xec, 0xb8, 0x8a, 0x6a, 0x0c, 0x1b, 0x5e, 0xe8, 0xc6, + 0xa0, 0xf8, 0xe5, 0x77, 0x7a, 0x57, 0x71, 0x9d, 0x21, 0x2b, 0x86, 0x51, 0xde, 0x83, 0x93, 0x43, + 0xa2, 0x62, 0x04, 0xce, 0x57, 0x39, 0xe7, 0xcc, 0x40, 0x64, 0x10, 0xda, 0x1d, 0x10, 0x72, 0x7f, + 0x2d, 0x47, 0xe0, 0xfc, 0x7d, 0xce, 0x89, 0x38, 0x56, 0x2c, 0x29, 0x61, 0xbc, 0x01, 0x53, 0xb7, + 0xb1, 0xd3, 0xb0, 0x5c, 0x7e, 0x4b, 0x33, 0x02, 0xdd, 0x6b, 0x9c, 0x6e, 0x92, 0x03, 0xe9, 0xb5, + 0x0d, 0xe1, 0xba, 0x02, 0x99, 0x96, 0xaa, 0xe1, 0x11, 0x28, 0xbe, 0xc2, 0x29, 0xc6, 0x89, 0x3d, + 0x81, 0x56, 0x20, 0xdf, 0xb6, 0x78, 0x65, 0x8a, 0x86, 0xbf, 0xce, 0xe1, 0x39, 0x81, 0xe1, 0x14, + 0xb6, 0x65, 0x77, 0x0d, 0x52, 0xb6, 0xa2, 0x29, 0xfe, 0x40, 0x50, 0x08, 0x0c, 0xa7, 0x38, 0x86, + 0x5b, 0xff, 0x50, 0x50, 0xb8, 0x21, 0x7f, 0x3e, 0x07, 0x39, 0xcb, 0x34, 0x0e, 0x2c, 0x73, 0x94, + 0x41, 0xfc, 0x11, 0x67, 0x00, 0x0e, 0x21, 0x04, 0x57, 0x21, 0x3b, 0xea, 0x42, 0xfc, 0xc9, 0x3b, + 0x62, 0x7b, 0x88, 0x15, 0x58, 0x87, 0x49, 0x91, 0xa0, 0x74, 0xcb, 0x1c, 0x81, 0xe2, 0x4f, 0x39, + 0x45, 0x21, 0x04, 0xe3, 0xd3, 0xf0, 0xb0, 0xeb, 0xb5, 0xf1, 0x28, 0x24, 0x6f, 0x88, 0x69, 0x70, + 0x08, 0x77, 0x65, 0x03, 0x9b, 0xda, 0xfe, 0x68, 0x0c, 0x5f, 0x15, 0xae, 0x14, 0x18, 0x42, 0xb1, + 0x0a, 0x13, 0x1d, 0xd5, 0x71, 0xf7, 0x55, 0x63, 0xa4, 0xe5, 0xf8, 0x33, 0xce, 0x91, 0xf7, 0x41, + 0xdc, 0x23, 0x5d, 0xf3, 0x38, 0x34, 0x5f, 0x13, 0x1e, 0x09, 0xc1, 0xf8, 0xd6, 0x73, 0x3d, 0x7a, + 0xa5, 0x75, 0x1c, 0xb6, 0x3f, 0x17, 0x5b, 0x8f, 0x61, 0xb7, 0xc2, 0x8c, 0x57, 0x21, 0xeb, 0xea, + 0x77, 0x47, 0xa2, 0xf9, 0x0b, 0xb1, 0xd2, 0x14, 0x40, 0xc0, 0x2f, 0xc2, 0xa9, 0xa1, 0x65, 0x62, + 0x04, 0xb2, 0xbf, 0xe4, 0x64, 0x27, 0x86, 0x94, 0x0a, 0x9e, 0x12, 0x8e, 0x4b, 0xf9, 0x57, 0x22, + 0x25, 0xe0, 0x3e, 0xae, 0x1d, 0x72, 0x56, 0x70, 0xd5, 0xd6, 0xf1, 0xbc, 0xf6, 0xd7, 0xc2, 0x6b, + 0x0c, 0xdb, 0xe3, 0xb5, 0x5d, 0x38, 0xc1, 0x19, 0x8f, 0xb7, 0xae, 0x5f, 0x17, 0x89, 0x95, 0xa1, + 0xf7, 0x7a, 0x57, 0xf7, 0x73, 0x30, 0xeb, 0xbb, 0x53, 0x34, 0xa5, 0xae, 0xd2, 0x51, 0xed, 0x11, + 0x98, 0xbf, 0xc1, 0x99, 0x45, 0xc6, 0xf7, 0xbb, 0x5a, 0x77, 0x4b, 0xb5, 0x09, 0xf9, 0x0b, 0x50, + 0x14, 0xe4, 0x5d, 0xd3, 0xc1, 0x9a, 0xd5, 0x36, 0xf5, 0xbb, 0xb8, 0x39, 0x02, 0xf5, 0xdf, 0xf4, + 0x2d, 0xd5, 0x5e, 0x08, 0x4e, 0x98, 0x37, 0x40, 0xf2, 0x7b, 0x15, 0x45, 0xef, 0xd8, 0x96, 0xe3, + 0x45, 0x30, 0x7e, 0x53, 0xac, 0x94, 0x8f, 0xdb, 0xa0, 0xb0, 0x72, 0x15, 0x0a, 0xf4, 0x71, 0xd4, + 0x90, 0xfc, 0x5b, 0x4e, 0x34, 0x11, 0xa0, 0x78, 0xe2, 0xd0, 0xac, 0x8e, 0xad, 0x3a, 0xa3, 0xe4, + 0xbf, 0xbf, 0x13, 0x89, 0x83, 0x43, 0x78, 0xe2, 0xf0, 0x0e, 0x6c, 0x4c, 0xaa, 0xfd, 0x08, 0x0c, + 0xdf, 0x12, 0x89, 0x43, 0x60, 0x38, 0x85, 0x68, 0x18, 0x46, 0xa0, 0xf8, 0x7b, 0x41, 0x21, 0x30, + 0x84, 0xe2, 0x33, 0x41, 0xa1, 0x75, 0x70, 0x5b, 0x77, 0x3d, 0x87, 0xb5, 0xc2, 0x0f, 0xa6, 0xfa, + 0xf6, 0x3b, 0xbd, 0x4d, 0x98, 0x1c, 0x82, 0x96, 0x6f, 0xc0, 0x64, 0x5f, 0x8b, 0x81, 0xa2, 0xbe, + 0x5f, 0x29, 0xfe, 0xc2, 0x7b, 0x3c, 0x19, 0xf5, 0x76, 0x18, 0xe5, 0x4d, 0xb2, 0xee, 0xbd, 0x7d, + 0x40, 0x34, 0xd9, 0x2b, 0xef, 0xf9, 0x4b, 0xdf, 0xd3, 0x06, 0x94, 0xaf, 0xc1, 0x44, 0x4f, 0x0f, + 0x10, 0x4d, 0xf5, 0x8b, 0x9c, 0x2a, 0x1f, 0x6e, 0x01, 0xca, 0xcb, 0x90, 0x24, 0xf5, 0x3c, 0x1a, + 0xfe, 0x4b, 0x1c, 0x4e, 0xcd, 0xcb, 0x9f, 0x82, 0x8c, 0xa8, 0xe3, 0xd1, 0xd0, 0x5f, 0xe6, 0x50, + 0x1f, 0x42, 0xe0, 0xa2, 0x86, 0x47, 0xc3, 0x7f, 0x45, 0xc0, 0x05, 0x84, 0xc0, 0x47, 0x77, 0xe1, + 0x3f, 0xfd, 0x6a, 0x92, 0xe7, 0x61, 0xe1, 0xbb, 0xab, 0x30, 0xce, 0x8b, 0x77, 0x34, 0xfa, 0x0b, + 0xfc, 0xe5, 0x02, 0x51, 0xbe, 0x04, 0xa9, 0x11, 0x1d, 0xfe, 0x6b, 0x1c, 0xca, 0xec, 0xcb, 0xab, + 0x90, 0x0b, 0x15, 0xec, 0x68, 0xf8, 0xaf, 0x73, 0x78, 0x18, 0x45, 0x86, 0xce, 0x0b, 0x76, 0x34, + 0xc1, 0x6f, 0x88, 0xa1, 0x73, 0x04, 0x71, 0x9b, 0xa8, 0xd5, 0xd1, 0xe8, 0xdf, 0x14, 0x5e, 0x17, + 0x90, 0xf2, 0x73, 0x90, 0xf5, 0xf3, 0x6f, 0x34, 0xfe, 0xb7, 0x38, 0x3e, 0xc0, 0x10, 0x0f, 0x84, + 0xf2, 0x7f, 0x34, 0xc5, 0x6f, 0x0b, 0x0f, 0x84, 0x50, 0x64, 0x1b, 0xf5, 0xd7, 0xf4, 0x68, 0xa6, + 0xdf, 0x11, 0xdb, 0xa8, 0xaf, 0xa4, 0x93, 0xd5, 0xa4, 0x69, 0x30, 0x9a, 0xe2, 0x77, 0xc5, 0x6a, + 0x52, 0x7b, 0x32, 0x8c, 0xfe, 0x22, 0x19, 0xcd, 0xf1, 0x45, 0x31, 0x8c, 0xbe, 0x1a, 0x59, 0xde, + 0x01, 0x34, 0x58, 0x20, 0xa3, 0xf9, 0xbe, 0xc4, 0xf9, 0xa6, 0x06, 0xea, 0x63, 0xf9, 0x79, 0x38, + 0x31, 0xbc, 0x38, 0x46, 0xb3, 0x7e, 0xf9, 0xbd, 0xbe, 0xe3, 0x4c, 0xb8, 0x36, 0x96, 0x77, 0x83, + 0x2c, 0x1b, 0x2e, 0x8c, 0xd1, 0xb4, 0xaf, 0xbe, 0xd7, 0x9b, 0x68, 0xc3, 0x75, 0xb1, 0x5c, 0x01, + 0x08, 0x6a, 0x52, 0x34, 0xd7, 0x6b, 0x9c, 0x2b, 0x04, 0x22, 0x5b, 0x83, 0x97, 0xa4, 0x68, 0xfc, + 0x57, 0xc4, 0xd6, 0xe0, 0x08, 0xb2, 0x35, 0x44, 0x35, 0x8a, 0x46, 0xbf, 0x2e, 0xb6, 0x86, 0x80, + 0x94, 0xaf, 0x42, 0xc6, 0xec, 0x1a, 0x06, 0x89, 0x2d, 0xf4, 0xe0, 0x4f, 0xb2, 0x8a, 0xff, 0xf1, + 0x01, 0x07, 0x0b, 0x40, 0x79, 0x19, 0x52, 0xb8, 0xd3, 0xc0, 0xcd, 0x28, 0xe4, 0x7f, 0x7e, 0x20, + 0xf2, 0x09, 0xb1, 0x2e, 0x3f, 0x07, 0xc0, 0x0e, 0xd3, 0xf4, 0x87, 0xa2, 0x08, 0xec, 0x7f, 0x7d, + 0xc0, 0x3f, 0x96, 0x08, 0x20, 0x01, 0x01, 0xfb, 0xf4, 0xe2, 0xc1, 0x04, 0xef, 0xf4, 0x12, 0xd0, + 0x03, 0xf8, 0x15, 0x18, 0xbf, 0xe9, 0x5a, 0xa6, 0xa7, 0xb6, 0xa3, 0xd0, 0xff, 0xcd, 0xd1, 0xc2, + 0x9e, 0x38, 0xac, 0x63, 0x39, 0xd8, 0x53, 0xdb, 0x6e, 0x14, 0xf6, 0x7f, 0x38, 0xd6, 0x07, 0x10, + 0xb0, 0xa6, 0xba, 0xde, 0x28, 0xf3, 0xfe, 0x91, 0x00, 0x0b, 0x00, 0x19, 0x34, 0xf9, 0xff, 0x16, + 0x3e, 0x88, 0xc2, 0xbe, 0x2b, 0x06, 0xcd, 0xed, 0xcb, 0x9f, 0x82, 0x2c, 0xf9, 0x97, 0x7d, 0x01, + 0x15, 0x01, 0xfe, 0x5f, 0x0e, 0x0e, 0x10, 0xe4, 0xcd, 0xae, 0xd7, 0xf4, 0xf4, 0x68, 0x67, 0xff, + 0x1f, 0x5f, 0x69, 0x61, 0x5f, 0xae, 0x40, 0xce, 0xf5, 0x9a, 0xcd, 0x2e, 0xef, 0x68, 0x22, 0xe0, + 0xff, 0xff, 0x81, 0x7f, 0xc8, 0xf5, 0x31, 0x2b, 0xd5, 0xe1, 0xf7, 0x75, 0xb0, 0x6e, 0xad, 0x5b, + 0xec, 0xa6, 0xee, 0xa5, 0xb9, 0xe8, 0x2b, 0x37, 0xf8, 0xbd, 0x14, 0x14, 0x35, 0xab, 0xd3, 0xb0, + 0xdc, 0x45, 0x13, 0xeb, 0xde, 0x3e, 0x76, 0x16, 0x2d, 0x93, 0xf3, 0xa1, 0x84, 0x65, 0xe2, 0xd9, + 0xe3, 0x5d, 0xdc, 0xcd, 0x9d, 0x82, 0x54, 0xbd, 0xdb, 0x68, 0x1c, 0x20, 0x09, 0x12, 0x6e, 0xb7, + 0xc1, 0x3f, 0x82, 0x21, 0xff, 0xce, 0x7d, 0x3f, 0x01, 0xb9, 0xba, 0xda, 0xb1, 0x0d, 0x5c, 0x33, + 0x71, 0xad, 0x85, 0x8a, 0x90, 0xa6, 0xf3, 0x7c, 0x96, 0x1a, 0xc5, 0xae, 0x8f, 0xc9, 0xfc, 0xd9, + 0xd7, 0x2c, 0xd1, 0x0b, 0xcd, 0xb8, 0xaf, 0x59, 0xf2, 0x35, 0xe7, 0xd9, 0x7d, 0xa6, 0xaf, 0x39, + 0xef, 0x6b, 0x2e, 0xd0, 0x5b, 0xcd, 0x84, 0xaf, 0xb9, 0xe0, 0x6b, 0x96, 0xe9, 0xad, 0xfd, 0x84, + 0xaf, 0x59, 0xf6, 0x35, 0x17, 0xe9, 0x3d, 0x7d, 0xd2, 0xd7, 0x5c, 0xf4, 0x35, 0x97, 0xe8, 0xf5, + 0xfc, 0x94, 0xaf, 0xb9, 0xe4, 0x6b, 0x2e, 0xd3, 0x2b, 0x79, 0xe4, 0x6b, 0x2e, 0xfb, 0x9a, 0x2b, + 0xf4, 0x5b, 0x97, 0x71, 0x5f, 0x73, 0x05, 0xcd, 0xc2, 0x38, 0x9b, 0xd9, 0x33, 0xf4, 0x77, 0xdb, + 0xc9, 0xeb, 0x63, 0xb2, 0x10, 0x04, 0xba, 0x67, 0xe9, 0xf7, 0x2c, 0xe9, 0x40, 0xf7, 0x6c, 0xa0, + 0x5b, 0xa2, 0x9f, 0xd5, 0x4b, 0x81, 0x6e, 0x29, 0xd0, 0x9d, 0x2f, 0x4e, 0x90, 0xf0, 0x08, 0x74, + 0xe7, 0x03, 0xdd, 0x85, 0x62, 0x81, 0xf8, 0x3f, 0xd0, 0x5d, 0x08, 0x74, 0xcb, 0xc5, 0xc9, 0x33, + 0xb1, 0xf9, 0x7c, 0xa0, 0x5b, 0x46, 0x4f, 0x43, 0xce, 0xed, 0x36, 0x14, 0xfe, 0x99, 0x01, 0xfd, + 0x6e, 0x26, 0xb7, 0x04, 0x0b, 0x24, 0x22, 0xe8, 0xa2, 0x5e, 0x1f, 0x93, 0xc1, 0xed, 0x36, 0x78, + 0xfe, 0x5c, 0xc9, 0x03, 0xbd, 0x6e, 0x50, 0xe8, 0xe7, 0xae, 0x2b, 0x6b, 0x6f, 0xde, 0x2f, 0x8d, + 0x7d, 0xf7, 0x7e, 0x69, 0xec, 0xdf, 0xee, 0x97, 0xc6, 0xde, 0xba, 0x5f, 0x8a, 0xbd, 0x7b, 0xbf, + 0x14, 0x7b, 0xff, 0x7e, 0x29, 0x76, 0xef, 0xb0, 0x14, 0xfb, 0xea, 0x61, 0x29, 0xf6, 0xf5, 0xc3, + 0x52, 0xec, 0xdb, 0x87, 0xa5, 0xd8, 0x9b, 0x87, 0xa5, 0xb1, 0xef, 0x1e, 0x96, 0xc6, 0xde, 0x3a, + 0x2c, 0xc5, 0x7e, 0x78, 0x58, 0x1a, 0x7b, 0xf7, 0xb0, 0x14, 0x7b, 0xff, 0xb0, 0x34, 0x76, 0xef, + 0x07, 0xa5, 0xb1, 0x46, 0x9a, 0x86, 0xd1, 0xf9, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xf5, 0x85, + 0x64, 0x08, 0x25, 0x33, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/onepb_test.go index b6811e135..b846e9222 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/neither/onepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package one import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,20 +58,20 @@ func TestSubbyProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSampleOneOfProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -94,21 +92,21 @@ func TestSampleOneOfProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSubbyJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -121,15 +119,15 @@ func TestSubbyJSON(t *testing.T) { } func TestSampleOneOfJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -142,11 +140,11 @@ func TestSampleOneOfJSON(t *testing.T) { } func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -159,11 +157,11 @@ func TestSubbyProtoText(t *testing.T) { func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -176,11 +174,11 @@ func TestSubbyProtoCompactText(t *testing.T) { func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -193,11 +191,11 @@ func TestSampleOneOfProtoText(t *testing.T) { func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -212,14 +210,14 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -227,14 +225,14 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestSampleOneOfVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -242,37 +240,37 @@ func TestSampleOneOfVerboseEqual(t *testing.T) { } } func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSampleOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSubbySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -283,7 +281,7 @@ func TestSubbySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -291,10 +289,10 @@ func TestSubbySize(t *testing.T) { func TestSampleOneOfSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -305,14 +303,14 @@ func TestSampleOneOfSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -321,7 +319,7 @@ func TestSubbyStringer(t *testing.T) { } } func TestSampleOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go index 706092be0..2ae37497e 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/one.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -19,16 +18,16 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" import io "io" +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -541,269 +540,276 @@ func init() { proto.RegisterType((*Subby)(nil), "one.Subby") proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf") } -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Subby) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *SampleOneOf) Description() (desc *descriptor.FileDescriptorSet) { return OneDescription() } -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func OneDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3860 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x17, 0x2b, 0xdb, 0xdc, 0x5d, 0xc5, - 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, - 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, - 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0xde, 0x99, 0x26, 0xae, 0xe3, 0xb6, 0x99, - 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, - 0x1f, 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xce, - 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x66, 0x1c, 0x3f, 0x49, 0x38, 0xe7, 0x7c, 0x1f, 0x0e, 0xce, - 0x7f, 0xfe, 0x73, 0x0e, 0x7e, 0x02, 0x7e, 0xb0, 0x0e, 0xe7, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, 0x6a, - 0xcf, 0xb1, 0x3d, 0xbb, 0xd9, 0x6f, 0xaf, 0xb6, 0x90, 0xab, 0x3b, 0x46, 0xcf, 0xb3, 0x9d, 0x15, - 0x22, 0x93, 0xf2, 0xd4, 0x62, 0x85, 0x5b, 0x2c, 0xed, 0xc0, 0xdc, 0x75, 0xc3, 0x44, 0x9b, 0xbe, - 0x61, 0x03, 0x79, 0xd2, 0x15, 0x48, 0xb4, 0x0d, 0x13, 0xc9, 0xc2, 0xb9, 0xf8, 0x72, 0x66, 0xed, - 0x89, 0x95, 0x21, 0xd0, 0xca, 0x20, 0xa2, 0x8e, 0xc5, 0x0a, 0x41, 0x2c, 0xbd, 0x9b, 0x80, 0xf9, - 0x31, 0x5a, 0x49, 0x82, 0x84, 0xa5, 0x75, 0x31, 0xa3, 0xb0, 0x9c, 0x56, 0xc8, 0xff, 0x92, 0x0c, - 0x33, 0x3d, 0x4d, 0xbf, 0xa3, 0x75, 0x90, 0x1c, 0x23, 0x62, 0x7e, 0x29, 0x15, 0x00, 0x5a, 0xa8, - 0x87, 0xac, 0x16, 0xb2, 0xf4, 0x43, 0x39, 0x7e, 0x2e, 0xbe, 0x9c, 0x56, 0x42, 0x12, 0xe9, 0x59, - 0x98, 0xeb, 0xf5, 0x9b, 0xa6, 0xa1, 0xab, 0x21, 0x33, 0x38, 0x17, 0x5f, 0x4e, 0x2a, 0x22, 0x55, - 0x6c, 0x06, 0xc6, 0x4f, 0x41, 0xfe, 0x1e, 0xd2, 0xee, 0x84, 0x4d, 0x33, 0xc4, 0x34, 0x87, 0xc5, - 0x21, 0xc3, 0x32, 0x64, 0xbb, 0xc8, 0x75, 0xb5, 0x0e, 0x52, 0xbd, 0xc3, 0x1e, 0x92, 0x13, 0xe4, - 0xe9, 0xcf, 0x8d, 0x3c, 0xfd, 0xf0, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xb0, 0x87, 0xa4, 0x12, 0xa4, - 0x91, 0xd5, 0xef, 0x52, 0x86, 0xe4, 0x31, 0xf1, 0xab, 0x58, 0xfd, 0xee, 0x30, 0x4b, 0x0a, 0xc3, - 0x18, 0xc5, 0x8c, 0x8b, 0x9c, 0xbb, 0x86, 0x8e, 0xe4, 0x69, 0x42, 0xf0, 0xd4, 0x08, 0x41, 0x83, - 0xea, 0x87, 0x39, 0x38, 0x4e, 0x2a, 0x43, 0x1a, 0xbd, 0xe2, 0x21, 0xcb, 0x35, 0x6c, 0x4b, 0x9e, - 0x21, 0x24, 0x4f, 0x8e, 0x59, 0x45, 0x64, 0xb6, 0x86, 0x29, 0x02, 0x9c, 0x74, 0x09, 0x66, 0xec, - 0x9e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xce, 0x09, 0xcb, 0x99, 0xb5, 0xc7, 0xc6, 0x26, 0x42, 0x8d, - 0xda, 0x28, 0xdc, 0x58, 0xaa, 0x82, 0xe8, 0xda, 0x7d, 0x47, 0x47, 0xaa, 0x6e, 0xb7, 0x90, 0x6a, - 0x58, 0x6d, 0x5b, 0x4e, 0x13, 0x82, 0xb3, 0xa3, 0x0f, 0x42, 0x0c, 0xcb, 0x76, 0x0b, 0x55, 0xad, - 0xb6, 0xad, 0xe4, 0xdc, 0x81, 0x6b, 0xe9, 0x14, 0x4c, 0xbb, 0x87, 0x96, 0xa7, 0xbd, 0x22, 0x67, - 0x49, 0x86, 0xb0, 0xab, 0xa5, 0xff, 0x4b, 0x42, 0x7e, 0x92, 0x14, 0xbb, 0x06, 0xc9, 0x36, 0x7e, - 0x4a, 0x39, 0x76, 0x92, 0x18, 0x50, 0xcc, 0x60, 0x10, 0xa7, 0x7f, 0xc2, 0x20, 0x96, 0x20, 0x63, - 0x21, 0xd7, 0x43, 0x2d, 0x9a, 0x11, 0xf1, 0x09, 0x73, 0x0a, 0x28, 0x68, 0x34, 0xa5, 0x12, 0x3f, - 0x51, 0x4a, 0xdd, 0x82, 0xbc, 0xef, 0x92, 0xea, 0x68, 0x56, 0x87, 0xe7, 0xe6, 0x6a, 0x94, 0x27, - 0x2b, 0x15, 0x8e, 0x53, 0x30, 0x4c, 0xc9, 0xa1, 0x81, 0x6b, 0x69, 0x13, 0xc0, 0xb6, 0x90, 0xdd, - 0x56, 0x5b, 0x48, 0x37, 0xe5, 0xd4, 0x31, 0x51, 0xaa, 0x61, 0x93, 0x91, 0x28, 0xd9, 0x54, 0xaa, - 0x9b, 0xd2, 0xd5, 0x20, 0xd5, 0x66, 0x8e, 0xc9, 0x94, 0x1d, 0xba, 0xc9, 0x46, 0xb2, 0x6d, 0x1f, - 0x72, 0x0e, 0xc2, 0x79, 0x8f, 0x5a, 0xec, 0xc9, 0xd2, 0xc4, 0x89, 0x95, 0xc8, 0x27, 0x53, 0x18, - 0x8c, 0x3e, 0xd8, 0xac, 0x13, 0xbe, 0x94, 0x3e, 0x01, 0xbe, 0x40, 0x25, 0x69, 0x05, 0xa4, 0x0a, - 0x65, 0xb9, 0x70, 0x57, 0xeb, 0xa2, 0xc5, 0x2b, 0x90, 0x1b, 0x0c, 0x8f, 0xb4, 0x00, 0x49, 0xd7, - 0xd3, 0x1c, 0x8f, 0x64, 0x61, 0x52, 0xa1, 0x17, 0x92, 0x08, 0x71, 0x64, 0xb5, 0x48, 0x95, 0x4b, - 0x2a, 0xf8, 0xdf, 0xc5, 0xcb, 0x30, 0x3b, 0x70, 0xfb, 0x49, 0x81, 0x4b, 0x5f, 0x9c, 0x86, 0x85, - 0x71, 0x39, 0x37, 0x36, 0xfd, 0x4f, 0xc1, 0xb4, 0xd5, 0xef, 0x36, 0x91, 0x23, 0xc7, 0x09, 0x03, - 0xbb, 0x92, 0x4a, 0x90, 0x34, 0xb5, 0x26, 0x32, 0xe5, 0xc4, 0x39, 0x61, 0x39, 0xb7, 0xf6, 0xec, - 0x44, 0x59, 0xbd, 0xb2, 0x8d, 0x21, 0x0a, 0x45, 0x4a, 0x9f, 0x86, 0x04, 0x2b, 0x71, 0x98, 0xe1, - 0x99, 0xc9, 0x18, 0x70, 0x2e, 0x2a, 0x04, 0x27, 0x3d, 0x0a, 0x69, 0xfc, 0x97, 0xc6, 0x76, 0x9a, - 0xf8, 0x9c, 0xc2, 0x02, 0x1c, 0x57, 0x69, 0x11, 0x52, 0x24, 0xcd, 0x5a, 0x88, 0xb7, 0x06, 0xff, - 0x1a, 0x2f, 0x4c, 0x0b, 0xb5, 0xb5, 0xbe, 0xe9, 0xa9, 0x77, 0x35, 0xb3, 0x8f, 0x48, 0xc2, 0xa4, - 0x95, 0x2c, 0x13, 0x7e, 0x16, 0xcb, 0xa4, 0xb3, 0x90, 0xa1, 0x59, 0x69, 0x58, 0x2d, 0xf4, 0x0a, - 0xa9, 0x3e, 0x49, 0x85, 0x26, 0x6a, 0x15, 0x4b, 0xf0, 0xed, 0x6f, 0xbb, 0xb6, 0xc5, 0x97, 0x96, - 0xdc, 0x02, 0x0b, 0xc8, 0xed, 0x2f, 0x0f, 0x17, 0xbe, 0xc7, 0xc7, 0x3f, 0xde, 0x70, 0x2e, 0x2e, - 0x7d, 0x2b, 0x06, 0x09, 0xb2, 0xdf, 0xf2, 0x90, 0xd9, 0x7b, 0xb9, 0x5e, 0x51, 0x37, 0x6b, 0xfb, - 0x1b, 0xdb, 0x15, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x7d, 0xbb, 0x56, 0xda, 0x13, 0x63, 0xfe, - 0x75, 0x75, 0x77, 0xef, 0xd2, 0x45, 0x31, 0xee, 0x03, 0xf6, 0xa9, 0x20, 0x11, 0x36, 0xb8, 0xb0, - 0x26, 0x26, 0x25, 0x11, 0xb2, 0x94, 0xa0, 0x7a, 0xab, 0xb2, 0x79, 0xe9, 0xa2, 0x38, 0x3d, 0x28, - 0xb9, 0xb0, 0x26, 0xce, 0x48, 0xb3, 0x90, 0x26, 0x92, 0x8d, 0x5a, 0x6d, 0x5b, 0x4c, 0xf9, 0x9c, - 0x8d, 0x3d, 0xa5, 0xba, 0xbb, 0x25, 0xa6, 0x7d, 0xce, 0x2d, 0xa5, 0xb6, 0x5f, 0x17, 0xc1, 0x67, - 0xd8, 0xa9, 0x34, 0x1a, 0xa5, 0xad, 0x8a, 0x98, 0xf1, 0x2d, 0x36, 0x5e, 0xde, 0xab, 0x34, 0xc4, - 0xec, 0x80, 0x5b, 0x17, 0xd6, 0xc4, 0x59, 0xff, 0x16, 0x95, 0xdd, 0xfd, 0x1d, 0x31, 0x27, 0xcd, - 0xc1, 0x2c, 0xbd, 0x05, 0x77, 0x22, 0x3f, 0x24, 0xba, 0x74, 0x51, 0x14, 0x03, 0x47, 0x28, 0xcb, - 0xdc, 0x80, 0xe0, 0xd2, 0x45, 0x51, 0x5a, 0x2a, 0x43, 0x92, 0x64, 0x97, 0x24, 0x41, 0x6e, 0xbb, - 0xb4, 0x51, 0xd9, 0x56, 0x6b, 0xf5, 0xbd, 0x6a, 0x6d, 0xb7, 0xb4, 0x2d, 0x0a, 0x81, 0x4c, 0xa9, - 0x7c, 0x66, 0xbf, 0xaa, 0x54, 0x36, 0xc5, 0x58, 0x58, 0x56, 0xaf, 0x94, 0xf6, 0x2a, 0x9b, 0x62, - 0x7c, 0x49, 0x87, 0x85, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x98, 0x25, 0x26, - 0x5c, 0x23, 0x4b, 0xfc, 0x15, 0x01, 0xe6, 0xc7, 0xd4, 0xda, 0xb1, 0x37, 0x79, 0x11, 0x92, 0x34, - 0x45, 0x69, 0xf7, 0x79, 0x7a, 0x6c, 0xd1, 0x26, 0x09, 0x3b, 0xd2, 0x81, 0x08, 0x2e, 0xdc, 0x81, - 0xe3, 0xc7, 0x74, 0x60, 0x4c, 0x31, 0xe2, 0xe4, 0x6b, 0x02, 0xc8, 0xc7, 0x71, 0x47, 0x14, 0x8a, - 0xd8, 0x40, 0xa1, 0xb8, 0x36, 0xec, 0xc0, 0xf9, 0xe3, 0x9f, 0x61, 0xc4, 0x8b, 0xb7, 0x04, 0x38, - 0x35, 0x7e, 0x50, 0x19, 0xeb, 0xc3, 0xa7, 0x61, 0xba, 0x8b, 0xbc, 0x03, 0x9b, 0x37, 0xeb, 0x4f, - 0x8e, 0x69, 0x01, 0x58, 0x3d, 0x1c, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x71, 0xd3, 0x06, 0xf5, - 0x66, 0xc4, 0xd3, 0x2f, 0xc4, 0xe0, 0x91, 0xb1, 0xe4, 0x63, 0x1d, 0x7d, 0x1c, 0xc0, 0xb0, 0x7a, - 0x7d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x7d, 0xcf, 0xd7, - 0xc7, 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x09, 0x1c, 0x4d, 0x10, 0x47, 0x0b, 0xc7, 0x3c, 0xe9, - 0x48, 0xaf, 0x7b, 0x1e, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, 0x6b, 0x58, - 0x1d, 0x52, 0x80, 0x53, 0xc5, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xe4, 0xa9, 0xba, 0xc1, 0xb5, 0x18, - 0x41, 0xba, 0x8c, 0x13, 0x42, 0x4c, 0x0f, 0x20, 0xa8, 0xda, 0x47, 0x2c, 0x7d, 0x7d, 0x06, 0x32, - 0xa1, 0xb1, 0x4e, 0x3a, 0x0f, 0xd9, 0xdb, 0xda, 0x5d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, 0x44, 0x06, - 0xcb, 0xea, 0x6c, 0x5c, 0x7f, 0x1e, 0x16, 0x88, 0x89, 0xdd, 0xf7, 0x90, 0xa3, 0xea, 0xa6, 0xe6, - 0xba, 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0xca, 0x5c, 0x23, 0xad, 0xc3, 0x3c, - 0x41, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, 0xdf, 0xb3, - 0x39, 0x6c, 0xb1, 0xc3, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x09, 0x8f, 0x13, 0x58, 0x07, 0x59, 0xc8, - 0xd1, 0x3c, 0xa4, 0xa2, 0xcf, 0xf7, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa5, 0x1e, 0x68, 0xee, 0x81, - 0xbc, 0x80, 0x09, 0x36, 0x62, 0xb2, 0xa0, 0x9c, 0xc1, 0x86, 0x5b, 0xcc, 0xae, 0x42, 0xcc, 0x4a, - 0x56, 0xeb, 0x86, 0xe6, 0x1e, 0x48, 0x45, 0x38, 0x45, 0x58, 0x5c, 0xcf, 0x31, 0xac, 0x8e, 0xaa, - 0x1f, 0x20, 0xfd, 0x8e, 0xda, 0xf7, 0xda, 0x57, 0xe4, 0x47, 0xc3, 0xf7, 0x27, 0x1e, 0x36, 0x88, - 0x4d, 0x19, 0x9b, 0xec, 0x7b, 0xed, 0x2b, 0x52, 0x03, 0xb2, 0x78, 0x31, 0xba, 0xc6, 0xab, 0x48, - 0x6d, 0xdb, 0x0e, 0xe9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0x14, 0xc1, 0x95, 0x1a, 0x03, 0xec, 0xd8, - 0x2d, 0x54, 0x4c, 0x36, 0xea, 0x95, 0xca, 0xa6, 0x92, 0xe1, 0x2c, 0xd7, 0x6d, 0x07, 0x27, 0x54, - 0xc7, 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb1, 0x79, 0x78, 0xd7, 0x61, 0x5e, 0xd7, 0xe9, 0x33, - 0x1b, 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x07, 0x82, 0xa5, 0xeb, 0x5b, 0xd4, 0x80, 0xe5, 0xb8, - 0x2b, 0x5d, 0x85, 0x47, 0x82, 0x60, 0x85, 0x81, 0x73, 0x23, 0x4f, 0x39, 0x0c, 0x5d, 0x87, 0xf9, - 0xde, 0xe1, 0x28, 0x50, 0x1a, 0xb8, 0x63, 0xef, 0x70, 0x18, 0xf6, 0x24, 0x79, 0x6d, 0x73, 0x90, - 0xae, 0x79, 0xa8, 0x25, 0x9f, 0x0e, 0x5b, 0x87, 0x14, 0xd2, 0x2a, 0x88, 0xba, 0xae, 0x22, 0x4b, - 0x6b, 0x9a, 0x48, 0xd5, 0x1c, 0x64, 0x69, 0xae, 0x7c, 0x36, 0x6c, 0x9c, 0xd3, 0xf5, 0x0a, 0xd1, - 0x96, 0x88, 0x52, 0x7a, 0x06, 0xe6, 0xec, 0xe6, 0x6d, 0x9d, 0x66, 0x96, 0xda, 0x73, 0x50, 0xdb, - 0x78, 0x45, 0x7e, 0x82, 0x84, 0x29, 0x8f, 0x15, 0x24, 0xaf, 0xea, 0x44, 0x2c, 0x3d, 0x0d, 0xa2, - 0xee, 0x1e, 0x68, 0x4e, 0x8f, 0xb4, 0x76, 0xb7, 0xa7, 0xe9, 0x48, 0x7e, 0x92, 0x9a, 0x52, 0xf9, - 0x2e, 0x17, 0xe3, 0xcc, 0x76, 0xef, 0x19, 0x6d, 0x8f, 0x33, 0x3e, 0x45, 0x33, 0x9b, 0xc8, 0x18, - 0xdb, 0x2d, 0x58, 0xe8, 0x5b, 0x86, 0xe5, 0x21, 0xa7, 0xe7, 0x20, 0x3c, 0xc4, 0xd3, 0x9d, 0x28, - 0xff, 0xeb, 0xcc, 0x31, 0x63, 0xf8, 0x7e, 0xd8, 0x9a, 0x26, 0x80, 0x32, 0xdf, 0x1f, 0x15, 0x2e, - 0x15, 0x21, 0x1b, 0xce, 0x0b, 0x29, 0x0d, 0x34, 0x33, 0x44, 0x01, 0xf7, 0xd8, 0x72, 0x6d, 0x13, - 0x77, 0xc7, 0xcf, 0x55, 0xc4, 0x18, 0xee, 0xd2, 0xdb, 0xd5, 0xbd, 0x8a, 0xaa, 0xec, 0xef, 0xee, - 0x55, 0x77, 0x2a, 0x62, 0xfc, 0x99, 0x74, 0xea, 0x87, 0x33, 0xe2, 0xfd, 0xfb, 0xf7, 0xef, 0xc7, - 0x96, 0xbe, 0x13, 0x83, 0xdc, 0xe0, 0x64, 0x2c, 0xfd, 0x2c, 0x9c, 0xe6, 0xaf, 0xb1, 0x2e, 0xf2, - 0xd4, 0x7b, 0x86, 0x43, 0x52, 0xb5, 0xab, 0xd1, 0xd9, 0xd2, 0x8f, 0xf2, 0x02, 0xb3, 0x6a, 0x20, - 0xef, 0x25, 0xc3, 0xc1, 0x89, 0xd8, 0xd5, 0x3c, 0x69, 0x1b, 0xce, 0x5a, 0xb6, 0xea, 0x7a, 0x9a, - 0xd5, 0xd2, 0x9c, 0x96, 0x1a, 0x1c, 0x20, 0xa8, 0x9a, 0xae, 0x23, 0xd7, 0xb5, 0x69, 0x8b, 0xf0, - 0x59, 0x1e, 0xb3, 0xec, 0x06, 0x33, 0x0e, 0x6a, 0x67, 0x89, 0x99, 0x0e, 0x65, 0x44, 0xfc, 0xb8, - 0x8c, 0x78, 0x14, 0xd2, 0x5d, 0xad, 0xa7, 0x22, 0xcb, 0x73, 0x0e, 0xc9, 0x3c, 0x97, 0x52, 0x52, - 0x5d, 0xad, 0x57, 0xc1, 0xd7, 0x1f, 0xdd, 0x1a, 0x84, 0xe3, 0xf8, 0xfd, 0x38, 0x64, 0xc3, 0x33, - 0x1d, 0x1e, 0x91, 0x75, 0x52, 0xbf, 0x05, 0xb2, 0xc3, 0x3f, 0xf1, 0xd0, 0x09, 0x70, 0xa5, 0x8c, - 0x0b, 0x7b, 0x71, 0x9a, 0x4e, 0x5a, 0x0a, 0x45, 0xe2, 0xa6, 0x8a, 0xf7, 0x34, 0xa2, 0xf3, 0x7b, - 0x4a, 0x61, 0x57, 0xd2, 0x16, 0x4c, 0xdf, 0x76, 0x09, 0xf7, 0x34, 0xe1, 0x7e, 0xe2, 0xe1, 0xdc, - 0x37, 0x1b, 0x84, 0x3c, 0x7d, 0xb3, 0xa1, 0xee, 0xd6, 0x94, 0x9d, 0xd2, 0xb6, 0xc2, 0xe0, 0xd2, - 0x19, 0x48, 0x98, 0xda, 0xab, 0x87, 0x83, 0x2d, 0x80, 0x88, 0x26, 0x0d, 0xfc, 0x19, 0x48, 0xdc, - 0x43, 0xda, 0x9d, 0xc1, 0xc2, 0x4b, 0x44, 0x1f, 0x61, 0xea, 0xaf, 0x42, 0x92, 0xc4, 0x4b, 0x02, - 0x60, 0x11, 0x13, 0xa7, 0xa4, 0x14, 0x24, 0xca, 0x35, 0x05, 0xa7, 0xbf, 0x08, 0x59, 0x2a, 0x55, - 0xeb, 0xd5, 0x4a, 0xb9, 0x22, 0xc6, 0x96, 0xd6, 0x61, 0x9a, 0x06, 0x01, 0x6f, 0x0d, 0x3f, 0x0c, - 0xe2, 0x14, 0xbb, 0x64, 0x1c, 0x02, 0xd7, 0xee, 0xef, 0x6c, 0x54, 0x14, 0x31, 0x16, 0x5e, 0x5e, - 0x17, 0xb2, 0xe1, 0x71, 0xee, 0xa7, 0x93, 0x53, 0x7f, 0x2f, 0x40, 0x26, 0x34, 0x9e, 0xe1, 0xc1, - 0x40, 0x33, 0x4d, 0xfb, 0x9e, 0xaa, 0x99, 0x86, 0xe6, 0xb2, 0xa4, 0x00, 0x22, 0x2a, 0x61, 0xc9, - 0xa4, 0x8b, 0xf6, 0x53, 0x71, 0xfe, 0x4d, 0x01, 0xc4, 0xe1, 0xd1, 0x6e, 0xc8, 0x41, 0xe1, 0x63, - 0x75, 0xf0, 0x0d, 0x01, 0x72, 0x83, 0xf3, 0xdc, 0x90, 0x7b, 0xe7, 0x3f, 0x56, 0xf7, 0xde, 0x89, - 0xc1, 0xec, 0xc0, 0x14, 0x37, 0xa9, 0x77, 0x9f, 0x87, 0x39, 0xa3, 0x85, 0xba, 0x3d, 0xdb, 0x43, - 0x96, 0x7e, 0xa8, 0x9a, 0xe8, 0x2e, 0x32, 0xe5, 0x25, 0x52, 0x28, 0x56, 0x1f, 0x3e, 0x27, 0xae, - 0x54, 0x03, 0xdc, 0x36, 0x86, 0x15, 0xe7, 0xab, 0x9b, 0x95, 0x9d, 0x7a, 0x6d, 0xaf, 0xb2, 0x5b, - 0x7e, 0x59, 0xdd, 0xdf, 0xfd, 0xb9, 0xdd, 0xda, 0x4b, 0xbb, 0x8a, 0x68, 0x0c, 0x99, 0x7d, 0x84, - 0x5b, 0xbd, 0x0e, 0xe2, 0xb0, 0x53, 0xd2, 0x69, 0x18, 0xe7, 0x96, 0x38, 0x25, 0xcd, 0x43, 0x7e, - 0xb7, 0xa6, 0x36, 0xaa, 0x9b, 0x15, 0xb5, 0x72, 0xfd, 0x7a, 0xa5, 0xbc, 0xd7, 0xa0, 0x2f, 0xce, - 0xbe, 0xf5, 0xde, 0xe0, 0xa6, 0x7e, 0x3d, 0x0e, 0xf3, 0x63, 0x3c, 0x91, 0x4a, 0x6c, 0x66, 0xa7, - 0xaf, 0x11, 0xcf, 0x4d, 0xe2, 0xfd, 0x0a, 0x9e, 0x0a, 0xea, 0x9a, 0xe3, 0xb1, 0x11, 0xff, 0x69, - 0xc0, 0x51, 0xb2, 0x3c, 0xa3, 0x6d, 0x20, 0x87, 0x9d, 0x33, 0xd0, 0x41, 0x3e, 0x1f, 0xc8, 0xe9, - 0x51, 0xc3, 0xcf, 0x80, 0xd4, 0xb3, 0x5d, 0xc3, 0x33, 0xee, 0x22, 0xd5, 0xb0, 0xf8, 0xa1, 0x04, - 0x1e, 0xec, 0x13, 0x8a, 0xc8, 0x35, 0x55, 0xcb, 0xf3, 0xad, 0x2d, 0xd4, 0xd1, 0x86, 0xac, 0x71, - 0x01, 0x8f, 0x2b, 0x22, 0xd7, 0xf8, 0xd6, 0xe7, 0x21, 0xdb, 0xb2, 0xfb, 0x78, 0x4c, 0xa2, 0x76, - 0xb8, 0x5f, 0x08, 0x4a, 0x86, 0xca, 0x7c, 0x13, 0x36, 0xc7, 0x06, 0xa7, 0x21, 0x59, 0x25, 0x43, - 0x65, 0xd4, 0xe4, 0x29, 0xc8, 0x6b, 0x9d, 0x8e, 0x83, 0xc9, 0x39, 0x11, 0x9d, 0xcc, 0x73, 0xbe, - 0x98, 0x18, 0x2e, 0xde, 0x84, 0x14, 0x8f, 0x03, 0x6e, 0xc9, 0x38, 0x12, 0x6a, 0x8f, 0x9e, 0x49, - 0xc5, 0x96, 0xd3, 0x4a, 0xca, 0xe2, 0xca, 0xf3, 0x90, 0x35, 0x5c, 0x35, 0x38, 0x1c, 0x8d, 0x9d, - 0x8b, 0x2d, 0xa7, 0x94, 0x8c, 0xe1, 0xfa, 0xa7, 0x61, 0x4b, 0x6f, 0xc5, 0x20, 0x37, 0x78, 0xb8, - 0x2b, 0x6d, 0x42, 0xca, 0xb4, 0x75, 0x8d, 0xa4, 0x16, 0xfd, 0x65, 0x61, 0x39, 0xe2, 0x3c, 0x78, - 0x65, 0x9b, 0xd9, 0x2b, 0x3e, 0x72, 0xf1, 0x9f, 0x05, 0x48, 0x71, 0xb1, 0x74, 0x0a, 0x12, 0x3d, - 0xcd, 0x3b, 0x20, 0x74, 0xc9, 0x8d, 0x98, 0x28, 0x28, 0xe4, 0x1a, 0xcb, 0xdd, 0x9e, 0x66, 0x91, - 0x14, 0x60, 0x72, 0x7c, 0x8d, 0xd7, 0xd5, 0x44, 0x5a, 0x8b, 0x8c, 0xfd, 0x76, 0xb7, 0x8b, 0x2c, - 0xcf, 0xe5, 0xeb, 0xca, 0xe4, 0x65, 0x26, 0x96, 0x9e, 0x85, 0x39, 0xcf, 0xd1, 0x0c, 0x73, 0xc0, - 0x36, 0x41, 0x6c, 0x45, 0xae, 0xf0, 0x8d, 0x8b, 0x70, 0x86, 0xf3, 0xb6, 0x90, 0xa7, 0xe9, 0x07, - 0xa8, 0x15, 0x80, 0xa6, 0xc9, 0xc9, 0xe1, 0x69, 0x66, 0xb0, 0xc9, 0xf4, 0x1c, 0xbb, 0xf4, 0x3d, - 0x01, 0xe6, 0xf8, 0x8b, 0x4a, 0xcb, 0x0f, 0xd6, 0x0e, 0x80, 0x66, 0x59, 0xb6, 0x17, 0x0e, 0xd7, - 0x68, 0x2a, 0x8f, 0xe0, 0x56, 0x4a, 0x3e, 0x48, 0x09, 0x11, 0x2c, 0x76, 0x01, 0x02, 0xcd, 0xb1, - 0x61, 0x3b, 0x0b, 0x19, 0x76, 0x72, 0x4f, 0x7e, 0xfe, 0xa1, 0xaf, 0xb6, 0x40, 0x45, 0xf8, 0x8d, - 0x46, 0x5a, 0x80, 0x64, 0x13, 0x75, 0x0c, 0x8b, 0x9d, 0x27, 0xd2, 0x0b, 0x7e, 0x4a, 0x99, 0xf0, - 0x4f, 0x29, 0x37, 0x6e, 0xc1, 0xbc, 0x6e, 0x77, 0x87, 0xdd, 0xdd, 0x10, 0x87, 0x5e, 0xaf, 0xdd, - 0x1b, 0xc2, 0xe7, 0x20, 0x18, 0x31, 0xbf, 0x12, 0x8b, 0x6f, 0xd5, 0x37, 0xbe, 0x16, 0x5b, 0xdc, - 0xa2, 0xb8, 0x3a, 0x7f, 0x4c, 0x05, 0xb5, 0x4d, 0xa4, 0x63, 0xd7, 0xe1, 0x47, 0x9f, 0x84, 0xe7, - 0x3a, 0x86, 0x77, 0xd0, 0x6f, 0xae, 0xe8, 0x76, 0x77, 0xb5, 0x63, 0x77, 0xec, 0xe0, 0xe7, 0x2e, - 0x7c, 0x45, 0x2e, 0xc8, 0x7f, 0xec, 0x27, 0xaf, 0xb4, 0x2f, 0x5d, 0x8c, 0xfc, 0x7d, 0xac, 0xb8, - 0x0b, 0xf3, 0xcc, 0x58, 0x25, 0x67, 0xee, 0xf4, 0xd5, 0x40, 0x7a, 0xe8, 0xb9, 0x8b, 0xfc, 0xcd, - 0x77, 0x49, 0xaf, 0x56, 0xe6, 0x18, 0x14, 0xeb, 0xe8, 0x0b, 0x44, 0x51, 0x81, 0x47, 0x06, 0xf8, - 0xe8, 0xbe, 0x44, 0x4e, 0x04, 0xe3, 0x77, 0x18, 0xe3, 0x7c, 0x88, 0xb1, 0xc1, 0xa0, 0xc5, 0x32, - 0xcc, 0x9e, 0x84, 0xeb, 0x1f, 0x19, 0x57, 0x16, 0x85, 0x49, 0xb6, 0x20, 0x4f, 0x48, 0xf4, 0xbe, - 0xeb, 0xd9, 0x5d, 0x52, 0xf4, 0x1e, 0x4e, 0xf3, 0x4f, 0xef, 0xd2, 0x8d, 0x92, 0xc3, 0xb0, 0xb2, - 0x8f, 0x2a, 0x16, 0x81, 0xfc, 0xcc, 0xd0, 0x42, 0xba, 0x19, 0xc1, 0xf0, 0x36, 0x73, 0xc4, 0xb7, - 0x2f, 0x7e, 0x16, 0x16, 0xf0, 0xff, 0xa4, 0x26, 0x85, 0x3d, 0x89, 0x3e, 0x65, 0x92, 0xbf, 0xf7, - 0x1a, 0xdd, 0x8b, 0xf3, 0x3e, 0x41, 0xc8, 0xa7, 0xd0, 0x2a, 0x76, 0x90, 0xe7, 0x21, 0xc7, 0x55, - 0x35, 0x73, 0x9c, 0x7b, 0xa1, 0xd7, 0x74, 0xf9, 0x4b, 0xef, 0x0d, 0xae, 0xe2, 0x16, 0x45, 0x96, - 0x4c, 0xb3, 0xb8, 0x0f, 0xa7, 0xc7, 0x64, 0xc5, 0x04, 0x9c, 0xaf, 0x33, 0xce, 0x85, 0x91, 0xcc, - 0xc0, 0xb4, 0x75, 0xe0, 0x72, 0x7f, 0x2d, 0x27, 0xe0, 0xfc, 0x7d, 0xc6, 0x29, 0x31, 0x2c, 0x5f, - 0x52, 0xcc, 0x78, 0x13, 0xe6, 0xee, 0x22, 0xa7, 0x69, 0xbb, 0xec, 0x68, 0x64, 0x02, 0xba, 0x37, - 0x18, 0x5d, 0x9e, 0x01, 0xc9, 0x59, 0x09, 0xe6, 0xba, 0x0a, 0xa9, 0xb6, 0xa6, 0xa3, 0x09, 0x28, - 0xbe, 0xcc, 0x28, 0x66, 0xb0, 0x3d, 0x86, 0x96, 0x20, 0xdb, 0xb1, 0x59, 0x5b, 0x8a, 0x86, 0xbf, - 0xc9, 0xe0, 0x19, 0x8e, 0x61, 0x14, 0x3d, 0xbb, 0xd7, 0x37, 0x71, 0xcf, 0x8a, 0xa6, 0xf8, 0x03, - 0x4e, 0xc1, 0x31, 0x8c, 0xe2, 0x04, 0x61, 0xfd, 0x43, 0x4e, 0xe1, 0x86, 0xe2, 0xf9, 0x22, 0x64, - 0x6c, 0xcb, 0x3c, 0xb4, 0xad, 0x49, 0x9c, 0xf8, 0x23, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0xae, 0x41, - 0x7a, 0xd2, 0x85, 0xf8, 0xe3, 0xf7, 0xf8, 0xf6, 0xe0, 0x2b, 0xb0, 0x05, 0x79, 0x5e, 0xa0, 0x0c, - 0xdb, 0x9a, 0x80, 0xe2, 0x4f, 0x18, 0x45, 0x2e, 0x04, 0x63, 0x8f, 0xe1, 0x21, 0xd7, 0xeb, 0xa0, - 0x49, 0x48, 0xde, 0xe2, 0x8f, 0xc1, 0x20, 0x2c, 0x94, 0x4d, 0x64, 0xe9, 0x07, 0x93, 0x31, 0x7c, - 0x95, 0x87, 0x92, 0x63, 0x30, 0x45, 0x19, 0x66, 0xbb, 0x9a, 0xe3, 0x1e, 0x68, 0xe6, 0x44, 0xcb, - 0xf1, 0xa7, 0x8c, 0x23, 0xeb, 0x83, 0x58, 0x44, 0xfa, 0xd6, 0x49, 0x68, 0xbe, 0xc6, 0x23, 0x12, - 0x82, 0xb1, 0xad, 0xe7, 0x7a, 0xe4, 0x00, 0xea, 0x24, 0x6c, 0x5f, 0xe7, 0x5b, 0x8f, 0x62, 0x77, - 0xc2, 0x8c, 0xd7, 0x20, 0xed, 0x1a, 0xaf, 0x4e, 0x44, 0xf3, 0x67, 0x7c, 0xa5, 0x09, 0x00, 0x83, - 0x5f, 0x86, 0x33, 0x63, 0xdb, 0xc4, 0x04, 0x64, 0x7f, 0xce, 0xc8, 0x4e, 0x8d, 0x69, 0x15, 0xac, - 0x24, 0x9c, 0x94, 0xf2, 0x2f, 0x78, 0x49, 0x40, 0x43, 0x5c, 0x75, 0xfc, 0xa2, 0xe0, 0x6a, 0xed, - 0x93, 0x45, 0xed, 0x2f, 0x79, 0xd4, 0x28, 0x76, 0x20, 0x6a, 0x7b, 0x70, 0x8a, 0x31, 0x9e, 0x6c, - 0x5d, 0xbf, 0xc1, 0x0b, 0x2b, 0x45, 0xef, 0x0f, 0xae, 0xee, 0xcf, 0xc3, 0xa2, 0x1f, 0x4e, 0x3e, - 0x91, 0xba, 0x6a, 0x57, 0xeb, 0x4d, 0xc0, 0xfc, 0x4d, 0xc6, 0xcc, 0x2b, 0xbe, 0x3f, 0xd2, 0xba, - 0x3b, 0x5a, 0x0f, 0x93, 0xdf, 0x02, 0x99, 0x93, 0xf7, 0x2d, 0x07, 0xe9, 0x76, 0xc7, 0x32, 0x5e, - 0x45, 0xad, 0x09, 0xa8, 0xff, 0x6a, 0x68, 0xa9, 0xf6, 0x43, 0x70, 0xcc, 0x5c, 0x05, 0xd1, 0x9f, - 0x55, 0x54, 0xa3, 0xdb, 0xb3, 0x1d, 0x2f, 0x82, 0xf1, 0xaf, 0xf9, 0x4a, 0xf9, 0xb8, 0x2a, 0x81, - 0x15, 0x2b, 0x90, 0x23, 0x97, 0x93, 0xa6, 0xe4, 0xdf, 0x30, 0xa2, 0xd9, 0x00, 0xc5, 0x0a, 0x87, - 0x6e, 0x77, 0x7b, 0x9a, 0x33, 0x49, 0xfd, 0xfb, 0x5b, 0x5e, 0x38, 0x18, 0x84, 0x15, 0x0e, 0xef, - 0xb0, 0x87, 0x70, 0xb7, 0x9f, 0x80, 0xe1, 0x5b, 0xbc, 0x70, 0x70, 0x0c, 0xa3, 0xe0, 0x03, 0xc3, - 0x04, 0x14, 0x7f, 0xc7, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x26, 0x68, 0xb4, 0x0e, 0xea, 0x18, 0xae, - 0xe7, 0xd0, 0x39, 0xf8, 0xe1, 0x54, 0xdf, 0x7e, 0x6f, 0x70, 0x08, 0x53, 0x42, 0xd0, 0xe2, 0x4d, - 0xc8, 0x0f, 0x8d, 0x18, 0x52, 0xd4, 0x37, 0x0b, 0xf2, 0x2f, 0x7c, 0xc0, 0x8a, 0xd1, 0xe0, 0x84, - 0x51, 0xdc, 0xc6, 0xeb, 0x3e, 0x38, 0x07, 0x44, 0x93, 0xbd, 0xf6, 0x81, 0xbf, 0xf4, 0x03, 0x63, - 0x40, 0xf1, 0x3a, 0xcc, 0x0e, 0xcc, 0x00, 0xd1, 0x54, 0xbf, 0xc8, 0xa8, 0xb2, 0xe1, 0x11, 0xa0, - 0xb8, 0x0e, 0x09, 0xdc, 0xcf, 0xa3, 0xe1, 0xbf, 0xc4, 0xe0, 0xc4, 0xbc, 0xf8, 0x29, 0x48, 0xf1, - 0x3e, 0x1e, 0x0d, 0xfd, 0x65, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x7b, 0x78, 0x34, 0xfc, 0x57, 0x38, - 0x9c, 0x43, 0x30, 0x7c, 0xf2, 0x10, 0xfe, 0xc3, 0xaf, 0x26, 0x58, 0x1d, 0xe6, 0xb1, 0xbb, 0x06, - 0x33, 0xac, 0x79, 0x47, 0xa3, 0xbf, 0xc0, 0x6e, 0xce, 0x11, 0xc5, 0xcb, 0x90, 0x9c, 0x30, 0xe0, - 0xbf, 0xc6, 0xa0, 0xd4, 0xbe, 0x58, 0x86, 0x4c, 0xa8, 0x61, 0x47, 0xc3, 0x7f, 0x9d, 0xc1, 0xc3, - 0x28, 0xec, 0x3a, 0x6b, 0xd8, 0xd1, 0x04, 0xbf, 0xc1, 0x5d, 0x67, 0x08, 0x1c, 0x36, 0xde, 0xab, - 0xa3, 0xd1, 0xbf, 0xc9, 0xa3, 0xce, 0x21, 0xc5, 0x17, 0x21, 0xed, 0xd7, 0xdf, 0x68, 0xfc, 0x6f, - 0x31, 0x7c, 0x80, 0xc1, 0x11, 0x08, 0xd5, 0xff, 0x68, 0x8a, 0xdf, 0xe6, 0x11, 0x08, 0xa1, 0xf0, - 0x36, 0x1a, 0xee, 0xe9, 0xd1, 0x4c, 0xbf, 0xc3, 0xb7, 0xd1, 0x50, 0x4b, 0xc7, 0xab, 0x49, 0xca, - 0x60, 0x34, 0xc5, 0xef, 0xf2, 0xd5, 0x24, 0xf6, 0xd8, 0x8d, 0xe1, 0x26, 0x19, 0xcd, 0xf1, 0x7b, - 0xdc, 0x8d, 0xa1, 0x1e, 0x59, 0xac, 0x83, 0x34, 0xda, 0x20, 0xa3, 0xf9, 0xbe, 0xc8, 0xf8, 0xe6, - 0x46, 0xfa, 0x63, 0xf1, 0x25, 0x38, 0x35, 0xbe, 0x39, 0x46, 0xb3, 0x7e, 0xe9, 0x83, 0xa1, 0xd7, - 0x99, 0x70, 0x6f, 0x2c, 0xee, 0x05, 0x55, 0x36, 0xdc, 0x18, 0xa3, 0x69, 0x5f, 0xff, 0x60, 0xb0, - 0xd0, 0x86, 0xfb, 0x62, 0xb1, 0x04, 0x10, 0xf4, 0xa4, 0x68, 0xae, 0x37, 0x18, 0x57, 0x08, 0x84, - 0xb7, 0x06, 0x6b, 0x49, 0xd1, 0xf8, 0x2f, 0xf3, 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0x6e, 0x14, - 0x8d, 0x7e, 0x93, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x83, 0x94, 0xd5, 0x37, 0x4d, 0x9c, 0x5b, 0xd2, - 0xc3, 0x3f, 0x23, 0x92, 0xff, 0xed, 0x43, 0x06, 0xe6, 0x80, 0xe2, 0x3a, 0x24, 0x51, 0xb7, 0x89, - 0x5a, 0x51, 0xc8, 0x7f, 0xff, 0x90, 0xd7, 0x13, 0x6c, 0x5d, 0x7c, 0x11, 0x80, 0xbe, 0x4c, 0x93, - 0x5f, 0x89, 0x22, 0xb0, 0xff, 0xf1, 0x21, 0xfb, 0x42, 0x21, 0x80, 0x04, 0x04, 0xf4, 0x7b, 0x87, - 0x87, 0x13, 0xbc, 0x37, 0x48, 0x40, 0x5e, 0xc0, 0xaf, 0xc2, 0xcc, 0x6d, 0xd7, 0xb6, 0x3c, 0xad, - 0x13, 0x85, 0xfe, 0x4f, 0x86, 0xe6, 0xf6, 0x38, 0x60, 0x5d, 0xdb, 0x41, 0x9e, 0xd6, 0x71, 0xa3, - 0xb0, 0xff, 0xc5, 0xb0, 0x3e, 0x00, 0x83, 0x75, 0xcd, 0xf5, 0x26, 0x79, 0xee, 0xff, 0xe6, 0x60, - 0x0e, 0xc0, 0x4e, 0xe3, 0xff, 0xef, 0xa0, 0xc3, 0x28, 0xec, 0xfb, 0xdc, 0x69, 0x66, 0x5f, 0xfc, - 0x14, 0xa4, 0xf1, 0xbf, 0xf4, 0xab, 0x9d, 0x08, 0xf0, 0xff, 0x30, 0x70, 0x80, 0xc0, 0x77, 0x76, - 0xbd, 0x96, 0x67, 0x44, 0x07, 0xfb, 0x7f, 0xd9, 0x4a, 0x73, 0xfb, 0x62, 0x09, 0x32, 0xae, 0xd7, - 0x6a, 0xf5, 0xd9, 0x44, 0x13, 0x01, 0xff, 0xd1, 0x87, 0xfe, 0x4b, 0xae, 0x8f, 0xd9, 0x38, 0x3f, - 0xfe, 0xb0, 0x0e, 0xb6, 0xec, 0x2d, 0x9b, 0x1e, 0xd3, 0xc1, 0xeb, 0x49, 0x78, 0x4c, 0xb7, 0xbb, - 0x4d, 0xdb, 0x5d, 0x0d, 0x95, 0xa1, 0x55, 0xdb, 0x62, 0xf6, 0x52, 0xdc, 0xb6, 0xd0, 0xe2, 0xc9, - 0x0e, 0xe6, 0x96, 0xce, 0x40, 0xb2, 0xd1, 0x6f, 0x36, 0x0f, 0x25, 0x11, 0xe2, 0x6e, 0xbf, 0xc9, - 0xbe, 0x2c, 0xc1, 0xff, 0x2e, 0x7d, 0x3f, 0x0e, 0x99, 0x86, 0xd6, 0xed, 0x99, 0xa8, 0x66, 0xa1, - 0x5a, 0x5b, 0x92, 0x61, 0x9a, 0x3c, 0xc7, 0x0b, 0xc4, 0x48, 0xb8, 0x31, 0xa5, 0xb0, 0x6b, 0x5f, - 0xb3, 0x46, 0x4e, 0x2b, 0x63, 0xbe, 0x66, 0xcd, 0xd7, 0x5c, 0xa0, 0x87, 0x95, 0xbe, 0xe6, 0x82, - 0xaf, 0xb9, 0x48, 0x8e, 0x2c, 0xe3, 0xbe, 0xe6, 0xa2, 0xaf, 0x59, 0x27, 0x47, 0xf2, 0xb3, 0xbe, - 0x66, 0xdd, 0xd7, 0x5c, 0x22, 0x87, 0xf0, 0x09, 0x5f, 0x73, 0xc9, 0xd7, 0x5c, 0x26, 0x67, 0xef, - 0x73, 0xbe, 0xe6, 0xb2, 0xaf, 0xb9, 0x42, 0xce, 0xdb, 0x25, 0x5f, 0x73, 0xc5, 0xd7, 0x5c, 0x25, - 0x1f, 0x90, 0xcc, 0xf8, 0x9a, 0xab, 0xd2, 0x22, 0xcc, 0xd0, 0x27, 0x7b, 0x9e, 0xfc, 0x28, 0x9b, - 0xbf, 0x31, 0xa5, 0x70, 0x41, 0xa0, 0x7b, 0x81, 0x7c, 0x24, 0x32, 0x1d, 0xe8, 0x5e, 0x08, 0x74, - 0x6b, 0xe4, 0x53, 0x69, 0x31, 0xd0, 0xad, 0x05, 0xba, 0x0b, 0xf2, 0x2c, 0x5e, 0xfe, 0x40, 0x77, - 0x21, 0xd0, 0x5d, 0x94, 0x73, 0x38, 0xfe, 0x81, 0xee, 0x62, 0xa0, 0x5b, 0x97, 0xf3, 0xe7, 0x84, - 0xe5, 0x6c, 0xa0, 0x5b, 0x97, 0x9e, 0x83, 0x8c, 0xdb, 0x6f, 0xaa, 0xec, 0x1b, 0x02, 0xf2, 0x31, - 0x4a, 0x66, 0x0d, 0x56, 0x70, 0x46, 0x90, 0x45, 0xbd, 0x31, 0xa5, 0x80, 0xdb, 0x6f, 0xb2, 0xfa, - 0xb8, 0x91, 0x05, 0x72, 0x9c, 0xa0, 0x92, 0x4f, 0x30, 0x37, 0x36, 0xdf, 0x7e, 0x50, 0x98, 0xfa, - 0xee, 0x83, 0xc2, 0xd4, 0xbf, 0x3c, 0x28, 0x4c, 0xbd, 0xf3, 0xa0, 0x20, 0xbc, 0xff, 0xa0, 0x20, - 0xfc, 0xf8, 0x41, 0x41, 0xb8, 0x7f, 0x54, 0x10, 0xbe, 0x7a, 0x54, 0x10, 0xbe, 0x71, 0x54, 0x10, - 0xbe, 0x7d, 0x54, 0x10, 0xde, 0x3e, 0x2a, 0x4c, 0x7d, 0xf7, 0xa8, 0x20, 0xbc, 0x73, 0x54, 0x10, - 0x7e, 0x78, 0x54, 0x98, 0x7a, 0xff, 0xa8, 0x20, 0xfc, 0xf8, 0xa8, 0x30, 0x75, 0xff, 0x07, 0x85, - 0xa9, 0xe6, 0x34, 0x49, 0xa3, 0x0b, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x9e, 0xbb, 0x5a, 0xb4, - 0xf9, 0x30, 0x00, 0x00, + // 3971 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0x1b, 0xd7, + 0x79, 0x26, 0xae, 0x04, 0x7e, 0x80, 0xe0, 0xf2, 0x90, 0x96, 0x20, 0xda, 0x86, 0x24, 0xda, 0x8e, + 0x68, 0xbb, 0x26, 0x6d, 0x4a, 0xd4, 0x05, 0x6a, 0xe2, 0x82, 0x24, 0x44, 0x51, 0x25, 0x09, 0x66, + 0x41, 0xc6, 0x97, 0x4c, 0x67, 0x67, 0xb1, 0x38, 0x00, 0x57, 0x5a, 0xec, 0x6e, 0x76, 0x17, 0x92, + 0xa9, 0xe9, 0x83, 0x3a, 0xee, 0x65, 0x32, 0x9d, 0xde, 0x3b, 0x93, 0xc4, 0x75, 0xdc, 0xcb, 0x4c, + 0xeb, 0x34, 0xbd, 0x25, 0x4d, 0x9b, 0xa6, 0x7d, 0xea, 0x4b, 0x5a, 0x3f, 0x75, 0x92, 0xb7, 0x3e, + 0xe4, 0xc1, 0x62, 0x3c, 0xd3, 0xb4, 0x75, 0x1b, 0xb7, 0xf5, 0x83, 0x67, 0xfc, 0xd2, 0x39, 0xb7, + 0xdd, 0xc5, 0x85, 0x5a, 0x30, 0x33, 0xb6, 0x9f, 0xc8, 0xfd, 0xff, 0xff, 0xfb, 0xf6, 0x9c, 0xff, + 0xfc, 0xe7, 0xff, 0xff, 0x73, 0xb0, 0xf0, 0xe3, 0x2b, 0x70, 0xa6, 0x6d, 0x59, 0x6d, 0x03, 0x2f, + 0xda, 0x8e, 0xe5, 0x59, 0x8d, 0x6e, 0x6b, 0xb1, 0x89, 0x5d, 0xcd, 0xd1, 0x6d, 0xcf, 0x72, 0x16, + 0xa8, 0x0c, 0x4d, 0x32, 0x8b, 0x05, 0x61, 0x31, 0xb7, 0x05, 0x53, 0xd7, 0x74, 0x03, 0xaf, 0xf9, + 0x86, 0x75, 0xec, 0xa1, 0xcb, 0x90, 0x6c, 0xe9, 0x06, 0x2e, 0xc6, 0xce, 0x24, 0xe6, 0x73, 0x4b, + 0x8f, 0x2f, 0xf4, 0x81, 0x16, 0x7a, 0x11, 0x3b, 0x44, 0x2c, 0x53, 0xc4, 0xdc, 0x3b, 0x49, 0x98, + 0x1e, 0xa2, 0x45, 0x08, 0x92, 0xa6, 0xda, 0x21, 0x8c, 0xb1, 0xf9, 0xac, 0x4c, 0xff, 0x47, 0x45, + 0x18, 0xb7, 0x55, 0xed, 0x96, 0xda, 0xc6, 0xc5, 0x38, 0x15, 0x8b, 0x47, 0x54, 0x02, 0x68, 0x62, + 0x1b, 0x9b, 0x4d, 0x6c, 0x6a, 0x07, 0xc5, 0xc4, 0x99, 0xc4, 0x7c, 0x56, 0x0e, 0x49, 0xd0, 0xd3, + 0x30, 0x65, 0x77, 0x1b, 0x86, 0xae, 0x29, 0x21, 0x33, 0x38, 0x93, 0x98, 0x4f, 0xc9, 0x12, 0x53, + 0xac, 0x05, 0xc6, 0xe7, 0x60, 0xf2, 0x0e, 0x56, 0x6f, 0x85, 0x4d, 0x73, 0xd4, 0xb4, 0x40, 0xc4, + 0x21, 0xc3, 0x55, 0xc8, 0x77, 0xb0, 0xeb, 0xaa, 0x6d, 0xac, 0x78, 0x07, 0x36, 0x2e, 0x26, 0xe9, + 0xec, 0xcf, 0x0c, 0xcc, 0xbe, 0x7f, 0xe6, 0x39, 0x8e, 0xda, 0x3d, 0xb0, 0x31, 0xaa, 0x40, 0x16, + 0x9b, 0xdd, 0x0e, 0x63, 0x48, 0x1d, 0xe1, 0xbf, 0xaa, 0xd9, 0xed, 0xf4, 0xb3, 0x64, 0x08, 0x8c, + 0x53, 0x8c, 0xbb, 0xd8, 0xb9, 0xad, 0x6b, 0xb8, 0x98, 0xa6, 0x04, 0xe7, 0x06, 0x08, 0xea, 0x4c, + 0xdf, 0xcf, 0x21, 0x70, 0x68, 0x15, 0xb2, 0xf8, 0x15, 0x0f, 0x9b, 0xae, 0x6e, 0x99, 0xc5, 0x71, + 0x4a, 0xf2, 0xc4, 0x90, 0x55, 0xc4, 0x46, 0xb3, 0x9f, 0x22, 0xc0, 0xa1, 0x8b, 0x30, 0x6e, 0xd9, + 0x9e, 0x6e, 0x99, 0x6e, 0x31, 0x73, 0x26, 0x36, 0x9f, 0x5b, 0x7a, 0x64, 0x68, 0x20, 0xd4, 0x98, + 0x8d, 0x2c, 0x8c, 0xd1, 0x06, 0x48, 0xae, 0xd5, 0x75, 0x34, 0xac, 0x68, 0x56, 0x13, 0x2b, 0xba, + 0xd9, 0xb2, 0x8a, 0x59, 0x4a, 0x70, 0x7a, 0x70, 0x22, 0xd4, 0x70, 0xd5, 0x6a, 0xe2, 0x0d, 0xb3, + 0x65, 0xc9, 0x05, 0xb7, 0xe7, 0x19, 0x9d, 0x80, 0xb4, 0x7b, 0x60, 0x7a, 0xea, 0x2b, 0xc5, 0x3c, + 0x8d, 0x10, 0xfe, 0x34, 0xf7, 0xf7, 0x69, 0x98, 0x1c, 0x25, 0xc4, 0xae, 0x42, 0xaa, 0x45, 0x66, + 0x59, 0x8c, 0x1f, 0xc7, 0x07, 0x0c, 0xd3, 0xeb, 0xc4, 0xf4, 0x4f, 0xe8, 0xc4, 0x0a, 0xe4, 0x4c, + 0xec, 0x7a, 0xb8, 0xc9, 0x22, 0x22, 0x31, 0x62, 0x4c, 0x01, 0x03, 0x0d, 0x86, 0x54, 0xf2, 0x27, + 0x0a, 0xa9, 0x17, 0x61, 0xd2, 0x1f, 0x92, 0xe2, 0xa8, 0x66, 0x5b, 0xc4, 0xe6, 0x62, 0xd4, 0x48, + 0x16, 0xaa, 0x02, 0x27, 0x13, 0x98, 0x5c, 0xc0, 0x3d, 0xcf, 0x68, 0x0d, 0xc0, 0x32, 0xb1, 0xd5, + 0x52, 0x9a, 0x58, 0x33, 0x8a, 0x99, 0x23, 0xbc, 0x54, 0x23, 0x26, 0x03, 0x5e, 0xb2, 0x98, 0x54, + 0x33, 0xd0, 0x95, 0x20, 0xd4, 0xc6, 0x8f, 0x88, 0x94, 0x2d, 0xb6, 0xc9, 0x06, 0xa2, 0x6d, 0x0f, + 0x0a, 0x0e, 0x26, 0x71, 0x8f, 0x9b, 0x7c, 0x66, 0x59, 0x3a, 0x88, 0x85, 0xc8, 0x99, 0xc9, 0x1c, + 0xc6, 0x26, 0x36, 0xe1, 0x84, 0x1f, 0xd1, 0x63, 0xe0, 0x0b, 0x14, 0x1a, 0x56, 0x40, 0xb3, 0x50, + 0x5e, 0x08, 0xb7, 0xd5, 0x0e, 0x9e, 0xbd, 0x0b, 0x85, 0x5e, 0xf7, 0xa0, 0x19, 0x48, 0xb9, 0x9e, + 0xea, 0x78, 0x34, 0x0a, 0x53, 0x32, 0x7b, 0x40, 0x12, 0x24, 0xb0, 0xd9, 0xa4, 0x59, 0x2e, 0x25, + 0x93, 0x7f, 0xd1, 0xcf, 0x04, 0x13, 0x4e, 0xd0, 0x09, 0x7f, 0x6a, 0x70, 0x45, 0x7b, 0x98, 0xfb, + 0xe7, 0x3d, 0x7b, 0x09, 0x26, 0x7a, 0x26, 0x30, 0xea, 0xab, 0xe7, 0x7e, 0x1e, 0x1e, 0x1a, 0x4a, + 0x8d, 0x5e, 0x84, 0x99, 0xae, 0xa9, 0x9b, 0x1e, 0x76, 0x6c, 0x07, 0x93, 0x88, 0x65, 0xaf, 0x2a, + 0xfe, 0xdb, 0xf8, 0x11, 0x31, 0xb7, 0x17, 0xb6, 0x66, 0x2c, 0xf2, 0x74, 0x77, 0x50, 0xf8, 0x54, + 0x36, 0xf3, 0xa3, 0x71, 0xe9, 0xde, 0xbd, 0x7b, 0xf7, 0xe2, 0x73, 0x5f, 0x4e, 0xc3, 0xcc, 0xb0, + 0x3d, 0x33, 0x74, 0xfb, 0x9e, 0x80, 0xb4, 0xd9, 0xed, 0x34, 0xb0, 0x43, 0x9d, 0x94, 0x92, 0xf9, + 0x13, 0xaa, 0x40, 0xca, 0x50, 0x1b, 0xd8, 0x28, 0x26, 0xcf, 0xc4, 0xe6, 0x0b, 0x4b, 0x4f, 0x8f, + 0xb4, 0x2b, 0x17, 0x36, 0x09, 0x44, 0x66, 0x48, 0xf4, 0x19, 0x48, 0xf2, 0x14, 0x4d, 0x18, 0x9e, + 0x1a, 0x8d, 0x81, 0xec, 0x25, 0x99, 0xe2, 0xd0, 0xc3, 0x90, 0x25, 0x7f, 0x59, 0x6c, 0xa4, 0xe9, + 0x98, 0x33, 0x44, 0x40, 0xe2, 0x02, 0xcd, 0x42, 0x86, 0x6e, 0x93, 0x26, 0x16, 0xa5, 0xcd, 0x7f, + 0x26, 0x81, 0xd5, 0xc4, 0x2d, 0xb5, 0x6b, 0x78, 0xca, 0x6d, 0xd5, 0xe8, 0x62, 0x1a, 0xf0, 0x59, + 0x39, 0xcf, 0x85, 0x9f, 0x23, 0x32, 0x74, 0x1a, 0x72, 0x6c, 0x57, 0xe9, 0x66, 0x13, 0xbf, 0x42, + 0xb3, 0x67, 0x4a, 0x66, 0x1b, 0x6d, 0x83, 0x48, 0xc8, 0xeb, 0x6f, 0xba, 0x96, 0x29, 0x42, 0x93, + 0xbe, 0x82, 0x08, 0xe8, 0xeb, 0x2f, 0xf5, 0x27, 0xee, 0x47, 0x87, 0x4f, 0xaf, 0x3f, 0xa6, 0xe6, + 0xbe, 0x1d, 0x87, 0x24, 0xcd, 0x17, 0x93, 0x90, 0xdb, 0x7d, 0x69, 0xa7, 0xaa, 0xac, 0xd5, 0xf6, + 0x56, 0x36, 0xab, 0x52, 0x0c, 0x15, 0x00, 0xa8, 0xe0, 0xda, 0x66, 0xad, 0xb2, 0x2b, 0xc5, 0xfd, + 0xe7, 0x8d, 0xed, 0xdd, 0x8b, 0x17, 0xa4, 0x84, 0x0f, 0xd8, 0x63, 0x82, 0x64, 0xd8, 0xe0, 0xfc, + 0x92, 0x94, 0x42, 0x12, 0xe4, 0x19, 0xc1, 0xc6, 0x8b, 0xd5, 0xb5, 0x8b, 0x17, 0xa4, 0x74, 0xaf, + 0xe4, 0xfc, 0x92, 0x34, 0x8e, 0x26, 0x20, 0x4b, 0x25, 0x2b, 0xb5, 0xda, 0xa6, 0x94, 0xf1, 0x39, + 0xeb, 0xbb, 0xf2, 0xc6, 0xf6, 0xba, 0x94, 0xf5, 0x39, 0xd7, 0xe5, 0xda, 0xde, 0x8e, 0x04, 0x3e, + 0xc3, 0x56, 0xb5, 0x5e, 0xaf, 0xac, 0x57, 0xa5, 0x9c, 0x6f, 0xb1, 0xf2, 0xd2, 0x6e, 0xb5, 0x2e, + 0xe5, 0x7b, 0x86, 0x75, 0x7e, 0x49, 0x9a, 0xf0, 0x5f, 0x51, 0xdd, 0xde, 0xdb, 0x92, 0x0a, 0x68, + 0x0a, 0x26, 0xd8, 0x2b, 0xc4, 0x20, 0x26, 0xfb, 0x44, 0x17, 0x2f, 0x48, 0x52, 0x30, 0x10, 0xc6, + 0x32, 0xd5, 0x23, 0xb8, 0x78, 0x41, 0x42, 0x73, 0xab, 0x90, 0xa2, 0xd1, 0x85, 0x10, 0x14, 0x36, + 0x2b, 0x2b, 0xd5, 0x4d, 0xa5, 0xb6, 0xb3, 0xbb, 0x51, 0xdb, 0xae, 0x6c, 0x4a, 0xb1, 0x40, 0x26, + 0x57, 0x3f, 0xbb, 0xb7, 0x21, 0x57, 0xd7, 0xa4, 0x78, 0x58, 0xb6, 0x53, 0xad, 0xec, 0x56, 0xd7, + 0xa4, 0xc4, 0x9c, 0x06, 0x33, 0xc3, 0xf2, 0xe4, 0xd0, 0x9d, 0x11, 0x5a, 0xe2, 0xf8, 0x11, 0x4b, + 0x4c, 0xb9, 0x06, 0x96, 0xf8, 0x87, 0x71, 0x98, 0x1e, 0x52, 0x2b, 0x86, 0xbe, 0xe4, 0x79, 0x48, + 0xb1, 0x10, 0x65, 0xd5, 0xf3, 0xc9, 0xa1, 0x45, 0x87, 0x06, 0xec, 0x40, 0x05, 0xa5, 0xb8, 0x70, + 0x07, 0x91, 0x38, 0xa2, 0x83, 0x20, 0x14, 0x03, 0x39, 0xfd, 0xe7, 0x06, 0x72, 0x3a, 0x2b, 0x7b, + 0x17, 0x47, 0x29, 0x7b, 0x54, 0x76, 0xbc, 0xdc, 0x9e, 0x1a, 0x92, 0xdb, 0xaf, 0xc2, 0xd4, 0x00, + 0xd1, 0xc8, 0x39, 0xf6, 0xd5, 0x18, 0x14, 0x8f, 0x72, 0x4e, 0x44, 0xa6, 0x8b, 0xf7, 0x64, 0xba, + 0xab, 0xfd, 0x1e, 0x3c, 0x7b, 0xf4, 0x22, 0x0c, 0xac, 0xf5, 0x9b, 0x31, 0x38, 0x31, 0xbc, 0x53, + 0x1c, 0x3a, 0x86, 0xcf, 0x40, 0xba, 0x83, 0xbd, 0x7d, 0x4b, 0x74, 0x4b, 0x9f, 0x1a, 0x52, 0x83, + 0x89, 0xba, 0x7f, 0xb1, 0x39, 0x2a, 0x5c, 0xc4, 0x13, 0x47, 0xb5, 0x7b, 0x6c, 0x34, 0x03, 0x23, + 0xfd, 0x62, 0x1c, 0x1e, 0x1a, 0x4a, 0x3e, 0x74, 0xa0, 0x8f, 0x02, 0xe8, 0xa6, 0xdd, 0xf5, 0x58, + 0x47, 0xc4, 0x12, 0x6c, 0x96, 0x4a, 0x68, 0xf2, 0x22, 0xc9, 0xb3, 0xeb, 0xf9, 0xfa, 0x04, 0xd5, + 0x03, 0x13, 0x51, 0x83, 0xcb, 0xc1, 0x40, 0x93, 0x74, 0xa0, 0xa5, 0x23, 0x66, 0x3a, 0x10, 0x98, + 0xcf, 0x82, 0xa4, 0x19, 0x3a, 0x36, 0x3d, 0xc5, 0xf5, 0x1c, 0xac, 0x76, 0x74, 0xb3, 0x4d, 0x2b, + 0x48, 0xa6, 0x9c, 0x6a, 0xa9, 0x86, 0x8b, 0xe5, 0x49, 0xa6, 0xae, 0x0b, 0x2d, 0x41, 0xd0, 0x00, + 0x72, 0x42, 0x88, 0x74, 0x0f, 0x82, 0xa9, 0x7d, 0xc4, 0xdc, 0xb7, 0x32, 0x90, 0x0b, 0xf5, 0xd5, + 0xe8, 0x2c, 0xe4, 0x6f, 0xaa, 0xb7, 0x55, 0x45, 0x9c, 0x95, 0x98, 0x27, 0x72, 0x44, 0xb6, 0xc3, + 0xcf, 0x4b, 0xcf, 0xc2, 0x0c, 0x35, 0xb1, 0xba, 0x1e, 0x76, 0x14, 0xcd, 0x50, 0x5d, 0x97, 0x3a, + 0x2d, 0x43, 0x4d, 0x11, 0xd1, 0xd5, 0x88, 0x6a, 0x55, 0x68, 0xd0, 0x32, 0x4c, 0x53, 0x44, 0xa7, + 0x6b, 0x78, 0xba, 0x6d, 0x60, 0x85, 0x9c, 0xde, 0x5c, 0x5a, 0x49, 0xfc, 0x91, 0x4d, 0x11, 0x8b, + 0x2d, 0x6e, 0x40, 0x46, 0xe4, 0xa2, 0x35, 0x78, 0x94, 0xc2, 0xda, 0xd8, 0xc4, 0x8e, 0xea, 0x61, + 0x05, 0x7f, 0xa1, 0xab, 0x1a, 0xae, 0xa2, 0x9a, 0x4d, 0x65, 0x5f, 0x75, 0xf7, 0x8b, 0x33, 0x84, + 0x60, 0x25, 0x5e, 0x8c, 0xc9, 0xa7, 0x88, 0xe1, 0x3a, 0xb7, 0xab, 0x52, 0xb3, 0x8a, 0xd9, 0xbc, + 0xae, 0xba, 0xfb, 0xa8, 0x0c, 0x27, 0x28, 0x8b, 0xeb, 0x39, 0xba, 0xd9, 0x56, 0xb4, 0x7d, 0xac, + 0xdd, 0x52, 0xba, 0x5e, 0xeb, 0x72, 0xf1, 0xe1, 0xf0, 0xfb, 0xe9, 0x08, 0xeb, 0xd4, 0x66, 0x95, + 0x98, 0xec, 0x79, 0xad, 0xcb, 0xa8, 0x0e, 0x79, 0xb2, 0x18, 0x1d, 0xfd, 0x2e, 0x56, 0x5a, 0x96, + 0x43, 0x4b, 0x63, 0x61, 0x48, 0x6a, 0x0a, 0x79, 0x70, 0xa1, 0xc6, 0x01, 0x5b, 0x56, 0x13, 0x97, + 0x53, 0xf5, 0x9d, 0x6a, 0x75, 0x4d, 0xce, 0x09, 0x96, 0x6b, 0x96, 0x43, 0x02, 0xaa, 0x6d, 0xf9, + 0x0e, 0xce, 0xb1, 0x80, 0x6a, 0x5b, 0xc2, 0xbd, 0xcb, 0x30, 0xad, 0x69, 0x6c, 0xce, 0xba, 0xa6, + 0xf0, 0x33, 0x96, 0x5b, 0x94, 0x7a, 0x9c, 0xa5, 0x69, 0xeb, 0xcc, 0x80, 0xc7, 0xb8, 0x8b, 0xae, + 0xc0, 0x43, 0x81, 0xb3, 0xc2, 0xc0, 0xa9, 0x81, 0x59, 0xf6, 0x43, 0x97, 0x61, 0xda, 0x3e, 0x18, + 0x04, 0xa2, 0x9e, 0x37, 0xda, 0x07, 0xfd, 0xb0, 0x4b, 0x30, 0x63, 0xef, 0xdb, 0x83, 0xb8, 0xa7, + 0xc2, 0x38, 0x64, 0xef, 0xdb, 0xfd, 0xc0, 0x27, 0xe8, 0x81, 0xdb, 0xc1, 0x9a, 0xea, 0xe1, 0x66, + 0xf1, 0x64, 0xd8, 0x3c, 0xa4, 0x40, 0x8b, 0x20, 0x69, 0x9a, 0x82, 0x4d, 0xb5, 0x61, 0x60, 0x45, + 0x75, 0xb0, 0xa9, 0xba, 0xc5, 0xd3, 0x61, 0xe3, 0x82, 0xa6, 0x55, 0xa9, 0xb6, 0x42, 0x95, 0xe8, + 0x29, 0x98, 0xb2, 0x1a, 0x37, 0x35, 0x16, 0x92, 0x8a, 0xed, 0xe0, 0x96, 0xfe, 0x4a, 0xf1, 0x71, + 0xea, 0xdf, 0x49, 0xa2, 0xa0, 0x01, 0xb9, 0x43, 0xc5, 0xe8, 0x49, 0x90, 0x34, 0x77, 0x5f, 0x75, + 0x6c, 0x9a, 0x93, 0x5d, 0x5b, 0xd5, 0x70, 0xf1, 0x09, 0x66, 0xca, 0xe4, 0xdb, 0x42, 0x4c, 0xb6, + 0x84, 0x7b, 0x47, 0x6f, 0x79, 0x82, 0xf1, 0x1c, 0xdb, 0x12, 0x54, 0xc6, 0xd9, 0xe6, 0x41, 0x22, + 0xae, 0xe8, 0x79, 0xf1, 0x3c, 0x35, 0x2b, 0xd8, 0xfb, 0x76, 0xf8, 0xbd, 0x8f, 0xc1, 0x04, 0xb1, + 0x0c, 0x5e, 0xfa, 0x24, 0x6b, 0xc8, 0xec, 0xfd, 0xd0, 0x1b, 0x3f, 0xb2, 0xde, 0x78, 0xae, 0x0c, + 0xf9, 0x70, 0x7c, 0xa2, 0x2c, 0xb0, 0x08, 0x95, 0x62, 0xa4, 0x59, 0x59, 0xad, 0xad, 0x91, 0x36, + 0xe3, 0xe5, 0xaa, 0x14, 0x27, 0xed, 0xce, 0xe6, 0xc6, 0x6e, 0x55, 0x91, 0xf7, 0xb6, 0x77, 0x37, + 0xb6, 0xaa, 0x52, 0x22, 0xdc, 0x57, 0x7f, 0x37, 0x0e, 0x85, 0xde, 0x23, 0x12, 0xfa, 0x69, 0x38, + 0x29, 0xee, 0x33, 0x5c, 0xec, 0x29, 0x77, 0x74, 0x87, 0x6e, 0x99, 0x8e, 0xca, 0xca, 0x97, 0xbf, + 0x68, 0x33, 0xdc, 0xaa, 0x8e, 0xbd, 0x17, 0x74, 0x87, 0x6c, 0x88, 0x8e, 0xea, 0xa1, 0x4d, 0x38, + 0x6d, 0x5a, 0x8a, 0xeb, 0xa9, 0x66, 0x53, 0x75, 0x9a, 0x4a, 0x70, 0x93, 0xa4, 0xa8, 0x9a, 0x86, + 0x5d, 0xd7, 0x62, 0xa5, 0xca, 0x67, 0x79, 0xc4, 0xb4, 0xea, 0xdc, 0x38, 0xc8, 0xe1, 0x15, 0x6e, + 0xda, 0x17, 0x60, 0x89, 0xa3, 0x02, 0xec, 0x61, 0xc8, 0x76, 0x54, 0x5b, 0xc1, 0xa6, 0xe7, 0x1c, + 0xd0, 0xc6, 0x38, 0x23, 0x67, 0x3a, 0xaa, 0x5d, 0x25, 0xcf, 0x1f, 0xcf, 0xf9, 0xe4, 0x07, 0x09, + 0xc8, 0x87, 0x9b, 0x63, 0x72, 0xd6, 0xd0, 0x68, 0x1d, 0x89, 0xd1, 0x4c, 0xf3, 0xd8, 0x03, 0x5b, + 0xe9, 0x85, 0x55, 0x52, 0x60, 0xca, 0x69, 0xd6, 0xb2, 0xca, 0x0c, 0x49, 0x8a, 0x3b, 0xc9, 0x2d, + 0x98, 0xb5, 0x08, 0x19, 0x99, 0x3f, 0xa1, 0x75, 0x48, 0xdf, 0x74, 0x29, 0x77, 0x9a, 0x72, 0x3f, + 0xfe, 0x60, 0xee, 0x1b, 0x75, 0x4a, 0x9e, 0xbd, 0x51, 0x57, 0xb6, 0x6b, 0xf2, 0x56, 0x65, 0x53, + 0xe6, 0x70, 0x74, 0x0a, 0x92, 0x86, 0x7a, 0xf7, 0xa0, 0xb7, 0x14, 0x51, 0xd1, 0xa8, 0x8e, 0x3f, + 0x05, 0xc9, 0x3b, 0x58, 0xbd, 0xd5, 0x5b, 0x00, 0xa8, 0xe8, 0x23, 0x0c, 0xfd, 0x45, 0x48, 0x51, + 0x7f, 0x21, 0x00, 0xee, 0x31, 0x69, 0x0c, 0x65, 0x20, 0xb9, 0x5a, 0x93, 0x49, 0xf8, 0x4b, 0x90, + 0x67, 0x52, 0x65, 0x67, 0xa3, 0xba, 0x5a, 0x95, 0xe2, 0x73, 0xcb, 0x90, 0x66, 0x4e, 0x20, 0x5b, + 0xc3, 0x77, 0x83, 0x34, 0xc6, 0x1f, 0x39, 0x47, 0x4c, 0x68, 0xf7, 0xb6, 0x56, 0xaa, 0xb2, 0x14, + 0x0f, 0x2f, 0xaf, 0x0b, 0xf9, 0x70, 0x5f, 0xfc, 0xf1, 0xc4, 0xd4, 0x3f, 0xc4, 0x20, 0x17, 0xea, + 0x73, 0x49, 0x83, 0xa2, 0x1a, 0x86, 0x75, 0x47, 0x51, 0x0d, 0x5d, 0x75, 0x79, 0x50, 0x00, 0x15, + 0x55, 0x88, 0x64, 0xd4, 0x45, 0xfb, 0x58, 0x06, 0xff, 0x46, 0x0c, 0xa4, 0xfe, 0x16, 0xb3, 0x6f, + 0x80, 0xb1, 0x4f, 0x74, 0x80, 0xaf, 0xc7, 0xa0, 0xd0, 0xdb, 0x57, 0xf6, 0x0d, 0xef, 0xec, 0x27, + 0x3a, 0xbc, 0xb7, 0xe3, 0x30, 0xd1, 0xd3, 0x4d, 0x8e, 0x3a, 0xba, 0x2f, 0xc0, 0x94, 0xde, 0xc4, + 0x1d, 0xdb, 0xf2, 0xb0, 0xa9, 0x1d, 0x28, 0x06, 0xbe, 0x8d, 0x8d, 0xe2, 0x1c, 0x4d, 0x14, 0x8b, + 0x0f, 0xee, 0x57, 0x17, 0x36, 0x02, 0xdc, 0x26, 0x81, 0x95, 0xa7, 0x37, 0xd6, 0xaa, 0x5b, 0x3b, + 0xb5, 0xdd, 0xea, 0xf6, 0xea, 0x4b, 0xca, 0xde, 0xf6, 0xcf, 0x6e, 0xd7, 0x5e, 0xd8, 0x96, 0x25, + 0xbd, 0xcf, 0xec, 0x23, 0xdc, 0xea, 0x3b, 0x20, 0xf5, 0x0f, 0x0a, 0x9d, 0x84, 0x61, 0xc3, 0x92, + 0xc6, 0xd0, 0x34, 0x4c, 0x6e, 0xd7, 0x94, 0xfa, 0xc6, 0x5a, 0x55, 0xa9, 0x5e, 0xbb, 0x56, 0x5d, + 0xdd, 0xad, 0xb3, 0x1b, 0x08, 0xdf, 0x7a, 0xb7, 0x77, 0x53, 0xbf, 0x96, 0x80, 0xe9, 0x21, 0x23, + 0x41, 0x15, 0x7e, 0x76, 0x60, 0xc7, 0x99, 0x67, 0x46, 0x19, 0xfd, 0x02, 0x29, 0xf9, 0x3b, 0xaa, + 0xe3, 0xf1, 0xa3, 0xc6, 0x93, 0x40, 0xbc, 0x64, 0x7a, 0x7a, 0x4b, 0xc7, 0x0e, 0xbf, 0xb0, 0x61, + 0x07, 0x8a, 0xc9, 0x40, 0xce, 0xee, 0x6c, 0x7e, 0x0a, 0x90, 0x6d, 0xb9, 0xba, 0xa7, 0xdf, 0xc6, + 0x8a, 0x6e, 0x8a, 0xdb, 0x1d, 0x72, 0xc0, 0x48, 0xca, 0x92, 0xd0, 0x6c, 0x98, 0x9e, 0x6f, 0x6d, + 0xe2, 0xb6, 0xda, 0x67, 0x4d, 0x12, 0x78, 0x42, 0x96, 0x84, 0xc6, 0xb7, 0x3e, 0x0b, 0xf9, 0xa6, + 0xd5, 0x25, 0x5d, 0x17, 0xb3, 0x23, 0xf5, 0x22, 0x26, 0xe7, 0x98, 0xcc, 0x37, 0xe1, 0xfd, 0x74, + 0x70, 0xad, 0x94, 0x97, 0x73, 0x4c, 0xc6, 0x4c, 0xce, 0xc1, 0xa4, 0xda, 0x6e, 0x3b, 0x84, 0x5c, + 0x10, 0xb1, 0x13, 0x42, 0xc1, 0x17, 0x53, 0xc3, 0xd9, 0x1b, 0x90, 0x11, 0x7e, 0x20, 0x25, 0x99, + 0x78, 0x42, 0xb1, 0xd9, 0xb1, 0x37, 0x3e, 0x9f, 0x95, 0x33, 0xa6, 0x50, 0x9e, 0x85, 0xbc, 0xee, + 0x2a, 0xc1, 0x2d, 0x79, 0xfc, 0x4c, 0x7c, 0x3e, 0x23, 0xe7, 0x74, 0xd7, 0xbf, 0x61, 0x9c, 0x7b, + 0x33, 0x0e, 0x85, 0xde, 0x5b, 0x7e, 0xb4, 0x06, 0x19, 0xc3, 0xd2, 0x54, 0x1a, 0x5a, 0xec, 0x27, + 0xa6, 0xf9, 0x88, 0x1f, 0x06, 0x16, 0x36, 0xb9, 0xbd, 0xec, 0x23, 0x67, 0xff, 0x25, 0x06, 0x19, + 0x21, 0x46, 0x27, 0x20, 0x69, 0xab, 0xde, 0x3e, 0xa5, 0x4b, 0xad, 0xc4, 0xa5, 0x98, 0x4c, 0x9f, + 0x89, 0xdc, 0xb5, 0x55, 0x93, 0x86, 0x00, 0x97, 0x93, 0x67, 0xb2, 0xae, 0x06, 0x56, 0x9b, 0xf4, + 0xf8, 0x61, 0x75, 0x3a, 0xd8, 0xf4, 0x5c, 0xb1, 0xae, 0x5c, 0xbe, 0xca, 0xc5, 0xe8, 0x69, 0x98, + 0xf2, 0x1c, 0x55, 0x37, 0x7a, 0x6c, 0x93, 0xd4, 0x56, 0x12, 0x0a, 0xdf, 0xb8, 0x0c, 0xa7, 0x04, + 0x6f, 0x13, 0x7b, 0xaa, 0xb6, 0x8f, 0x9b, 0x01, 0x28, 0x4d, 0xaf, 0x19, 0x4e, 0x72, 0x83, 0x35, + 0xae, 0x17, 0xd8, 0xb9, 0xef, 0xc7, 0x60, 0x4a, 0x1c, 0x98, 0x9a, 0xbe, 0xb3, 0xb6, 0x00, 0x54, + 0xd3, 0xb4, 0xbc, 0xb0, 0xbb, 0x06, 0x43, 0x79, 0x00, 0xb7, 0x50, 0xf1, 0x41, 0x72, 0x88, 0x60, + 0xb6, 0x03, 0x10, 0x68, 0x8e, 0x74, 0xdb, 0x69, 0xc8, 0xf1, 0x9f, 0x70, 0xe8, 0xef, 0x80, 0xec, + 0x88, 0x0d, 0x4c, 0x44, 0x4e, 0x56, 0x68, 0x06, 0x52, 0x0d, 0xdc, 0xd6, 0x4d, 0x7e, 0x31, 0xcb, + 0x1e, 0xc4, 0x45, 0x48, 0xd2, 0xbf, 0x08, 0x59, 0xf9, 0x3c, 0x4c, 0x6b, 0x56, 0xa7, 0x7f, 0xb8, + 0x2b, 0x52, 0xdf, 0x31, 0xdf, 0xbd, 0x1e, 0x7b, 0x19, 0x82, 0x16, 0xf3, 0x83, 0x58, 0xec, 0x8f, + 0xe2, 0x89, 0xf5, 0x9d, 0x95, 0xaf, 0xc7, 0x67, 0xd7, 0x19, 0x74, 0x47, 0xcc, 0x54, 0xc6, 0x2d, + 0x03, 0x6b, 0x64, 0xf4, 0xf0, 0xa5, 0x73, 0xf0, 0x4c, 0x5b, 0xf7, 0xf6, 0xbb, 0x8d, 0x05, 0xcd, + 0xea, 0x2c, 0xb6, 0xad, 0xb6, 0x15, 0xfc, 0xf4, 0x49, 0x9e, 0xe8, 0x03, 0xfd, 0x8f, 0xff, 0xfc, + 0x99, 0xf5, 0xa5, 0xb3, 0x91, 0xbf, 0x95, 0x96, 0xb7, 0x61, 0x9a, 0x1b, 0x2b, 0xf4, 0xf7, 0x17, + 0x76, 0x8a, 0x40, 0x0f, 0xbc, 0xc3, 0x2a, 0x7e, 0xf3, 0x1d, 0x5a, 0xae, 0xe5, 0x29, 0x0e, 0x25, + 0x3a, 0x76, 0xd0, 0x28, 0xcb, 0xf0, 0x50, 0x0f, 0x1f, 0xdb, 0x9a, 0xd8, 0x89, 0x60, 0xfc, 0x2e, + 0x67, 0x9c, 0x0e, 0x31, 0xd6, 0x39, 0xb4, 0xbc, 0x0a, 0x13, 0xc7, 0xe1, 0xfa, 0x27, 0xce, 0x95, + 0xc7, 0x61, 0x92, 0x75, 0x98, 0xa4, 0x24, 0x5a, 0xd7, 0xf5, 0xac, 0x0e, 0xcd, 0x7b, 0x0f, 0xa6, + 0xf9, 0xe7, 0x77, 0xd8, 0x5e, 0x29, 0x10, 0xd8, 0xaa, 0x8f, 0x2a, 0x97, 0x81, 0xfe, 0xe4, 0xd4, + 0xc4, 0x9a, 0x11, 0xc1, 0xf0, 0x16, 0x1f, 0x88, 0x6f, 0x5f, 0xfe, 0x1c, 0xcc, 0x90, 0xff, 0x69, + 0x5a, 0x0a, 0x8f, 0x24, 0xfa, 0xc2, 0xab, 0xf8, 0xfd, 0x57, 0xd9, 0x76, 0x9c, 0xf6, 0x09, 0x42, + 0x63, 0x0a, 0xad, 0x62, 0x1b, 0x7b, 0x1e, 0x76, 0x5c, 0x45, 0x35, 0x86, 0x0d, 0x2f, 0x74, 0x63, + 0x50, 0xfc, 0xca, 0xbb, 0xbd, 0xab, 0xb8, 0xce, 0x90, 0x15, 0xc3, 0x28, 0xef, 0xc1, 0xc9, 0x21, + 0x51, 0x31, 0x02, 0xe7, 0x6b, 0x9c, 0x73, 0x66, 0x20, 0x32, 0x08, 0xed, 0x0e, 0x08, 0xb9, 0xbf, + 0x96, 0x23, 0x70, 0xfe, 0x1e, 0xe7, 0x44, 0x1c, 0x2b, 0x96, 0x94, 0x30, 0xde, 0x80, 0xa9, 0xdb, + 0xd8, 0x69, 0x58, 0x2e, 0xbf, 0xa5, 0x19, 0x81, 0xee, 0x75, 0x4e, 0x37, 0xc9, 0x81, 0xf4, 0xda, + 0x86, 0x70, 0x5d, 0x81, 0x4c, 0x4b, 0xd5, 0xf0, 0x08, 0x14, 0x5f, 0xe5, 0x14, 0xe3, 0xc4, 0x9e, + 0x40, 0x2b, 0x90, 0x6f, 0x5b, 0xbc, 0x32, 0x45, 0xc3, 0xdf, 0xe0, 0xf0, 0x9c, 0xc0, 0x70, 0x0a, + 0xdb, 0xb2, 0xbb, 0x06, 0x29, 0x5b, 0xd1, 0x14, 0xbf, 0x2f, 0x28, 0x04, 0x86, 0x53, 0x1c, 0xc3, + 0xad, 0x7f, 0x20, 0x28, 0xdc, 0x90, 0x3f, 0x9f, 0x87, 0x9c, 0x65, 0x1a, 0x07, 0x96, 0x39, 0xca, + 0x20, 0xfe, 0x90, 0x33, 0x00, 0x87, 0x10, 0x82, 0xab, 0x90, 0x1d, 0x75, 0x21, 0xfe, 0xf8, 0x5d, + 0xb1, 0x3d, 0xc4, 0x0a, 0xac, 0xc3, 0xa4, 0x48, 0x50, 0xba, 0x65, 0x8e, 0x40, 0xf1, 0x27, 0x9c, + 0xa2, 0x10, 0x82, 0xf1, 0x69, 0x78, 0xd8, 0xf5, 0xda, 0x78, 0x14, 0x92, 0x37, 0xc5, 0x34, 0x38, + 0x84, 0xbb, 0xb2, 0x81, 0x4d, 0x6d, 0x7f, 0x34, 0x86, 0xaf, 0x09, 0x57, 0x0a, 0x0c, 0xa1, 0x58, + 0x85, 0x89, 0x8e, 0xea, 0xb8, 0xfb, 0xaa, 0x31, 0xd2, 0x72, 0xfc, 0x29, 0xe7, 0xc8, 0xfb, 0x20, + 0xee, 0x91, 0xae, 0x79, 0x1c, 0x9a, 0xaf, 0x0b, 0x8f, 0x84, 0x60, 0x7c, 0xeb, 0xb9, 0x1e, 0xbd, + 0xd2, 0x3a, 0x0e, 0xdb, 0x9f, 0x89, 0xad, 0xc7, 0xb0, 0x5b, 0x61, 0xc6, 0xab, 0x90, 0x75, 0xf5, + 0xbb, 0x23, 0xd1, 0xfc, 0xb9, 0x58, 0x69, 0x0a, 0x20, 0xe0, 0x97, 0xe0, 0xd4, 0xd0, 0x32, 0x31, + 0x02, 0xd9, 0x5f, 0x70, 0xb2, 0x13, 0x43, 0x4a, 0x05, 0x4f, 0x09, 0xc7, 0xa5, 0xfc, 0x4b, 0x91, + 0x12, 0x70, 0x1f, 0xd7, 0x0e, 0x39, 0x2b, 0xb8, 0x6a, 0xeb, 0x78, 0x5e, 0xfb, 0x2b, 0xe1, 0x35, + 0x86, 0xed, 0xf1, 0xda, 0x2e, 0x9c, 0xe0, 0x8c, 0xc7, 0x5b, 0xd7, 0x6f, 0x88, 0xc4, 0xca, 0xd0, + 0x7b, 0xbd, 0xab, 0xfb, 0x79, 0x98, 0xf5, 0xdd, 0x29, 0x9a, 0x52, 0x57, 0xe9, 0xa8, 0xf6, 0x08, + 0xcc, 0xdf, 0xe4, 0xcc, 0x22, 0xe3, 0xfb, 0x5d, 0xad, 0xbb, 0xa5, 0xda, 0x84, 0xfc, 0x45, 0x28, + 0x0a, 0xf2, 0xae, 0xe9, 0x60, 0xcd, 0x6a, 0x9b, 0xfa, 0x5d, 0xdc, 0x1c, 0x81, 0xfa, 0xaf, 0xfb, + 0x96, 0x6a, 0x2f, 0x04, 0x27, 0xcc, 0x1b, 0x20, 0xf9, 0xbd, 0x8a, 0xa2, 0x77, 0x6c, 0xcb, 0xf1, + 0x22, 0x18, 0xbf, 0x25, 0x56, 0xca, 0xc7, 0x6d, 0x50, 0x58, 0xb9, 0x0a, 0x05, 0xfa, 0x38, 0x6a, + 0x48, 0xfe, 0x0d, 0x27, 0x9a, 0x08, 0x50, 0x3c, 0x71, 0x68, 0x56, 0xc7, 0x56, 0x9d, 0x51, 0xf2, + 0xdf, 0xdf, 0x8a, 0xc4, 0xc1, 0x21, 0x3c, 0x71, 0x78, 0x07, 0x36, 0x26, 0xd5, 0x7e, 0x04, 0x86, + 0x6f, 0x8b, 0xc4, 0x21, 0x30, 0x9c, 0x42, 0x34, 0x0c, 0x23, 0x50, 0xfc, 0x9d, 0xa0, 0x10, 0x18, + 0x42, 0xf1, 0xd9, 0xa0, 0xd0, 0x3a, 0xb8, 0xad, 0xbb, 0x9e, 0xc3, 0x5a, 0xe1, 0x07, 0x53, 0x7d, + 0xe7, 0xdd, 0xde, 0x26, 0x4c, 0x0e, 0x41, 0xcb, 0x37, 0x60, 0xb2, 0xaf, 0xc5, 0x40, 0x51, 0xdf, + 0xaf, 0x14, 0x7f, 0xe1, 0x7d, 0x9e, 0x8c, 0x7a, 0x3b, 0x8c, 0xf2, 0x26, 0x59, 0xf7, 0xde, 0x3e, + 0x20, 0x9a, 0xec, 0xd5, 0xf7, 0xfd, 0xa5, 0xef, 0x69, 0x03, 0xca, 0xd7, 0x60, 0xa2, 0xa7, 0x07, + 0x88, 0xa6, 0xfa, 0x45, 0x4e, 0x95, 0x0f, 0xb7, 0x00, 0xe5, 0x65, 0x48, 0x92, 0x7a, 0x1e, 0x0d, + 0xff, 0x25, 0x0e, 0xa7, 0xe6, 0xe5, 0x4f, 0x43, 0x46, 0xd4, 0xf1, 0x68, 0xe8, 0x2f, 0x73, 0xa8, + 0x0f, 0x21, 0x70, 0x51, 0xc3, 0xa3, 0xe1, 0xbf, 0x22, 0xe0, 0x02, 0x42, 0xe0, 0xa3, 0xbb, 0xf0, + 0x1f, 0x7f, 0x35, 0xc9, 0xf3, 0xb0, 0xf0, 0xdd, 0x55, 0x18, 0xe7, 0xc5, 0x3b, 0x1a, 0xfd, 0x45, + 0xfe, 0x72, 0x81, 0x28, 0x5f, 0x82, 0xd4, 0x88, 0x0e, 0xff, 0x35, 0x0e, 0x65, 0xf6, 0xe5, 0x55, + 0xc8, 0x85, 0x0a, 0x76, 0x34, 0xfc, 0xd7, 0x39, 0x3c, 0x8c, 0x22, 0x43, 0xe7, 0x05, 0x3b, 0x9a, + 0xe0, 0x37, 0xc4, 0xd0, 0x39, 0x82, 0xb8, 0x4d, 0xd4, 0xea, 0x68, 0xf4, 0x6f, 0x0a, 0xaf, 0x0b, + 0x48, 0xf9, 0x79, 0xc8, 0xfa, 0xf9, 0x37, 0x1a, 0xff, 0x5b, 0x1c, 0x1f, 0x60, 0x88, 0x07, 0x42, + 0xf9, 0x3f, 0x9a, 0xe2, 0xb7, 0x85, 0x07, 0x42, 0x28, 0xb2, 0x8d, 0xfa, 0x6b, 0x7a, 0x34, 0xd3, + 0xef, 0x88, 0x6d, 0xd4, 0x57, 0xd2, 0xc9, 0x6a, 0xd2, 0x34, 0x18, 0x4d, 0xf1, 0xbb, 0x62, 0x35, + 0xa9, 0x3d, 0x19, 0x46, 0x7f, 0x91, 0x8c, 0xe6, 0xf8, 0x92, 0x18, 0x46, 0x5f, 0x8d, 0x2c, 0xef, + 0x00, 0x1a, 0x2c, 0x90, 0xd1, 0x7c, 0x5f, 0xe6, 0x7c, 0x53, 0x03, 0xf5, 0xb1, 0xfc, 0x02, 0x9c, + 0x18, 0x5e, 0x1c, 0xa3, 0x59, 0xbf, 0xf2, 0x7e, 0xdf, 0x71, 0x26, 0x5c, 0x1b, 0xcb, 0xbb, 0x41, + 0x96, 0x0d, 0x17, 0xc6, 0x68, 0xda, 0xd7, 0xde, 0xef, 0x4d, 0xb4, 0xe1, 0xba, 0x58, 0xae, 0x00, + 0x04, 0x35, 0x29, 0x9a, 0xeb, 0x75, 0xce, 0x15, 0x02, 0x91, 0xad, 0xc1, 0x4b, 0x52, 0x34, 0xfe, + 0xab, 0x62, 0x6b, 0x70, 0x04, 0xd9, 0x1a, 0xa2, 0x1a, 0x45, 0xa3, 0xdf, 0x10, 0x5b, 0x43, 0x40, + 0xca, 0x57, 0x21, 0x63, 0x76, 0x0d, 0x83, 0xc4, 0x16, 0x7a, 0xf0, 0x27, 0x59, 0xc5, 0x7f, 0xff, + 0x90, 0x83, 0x05, 0xa0, 0xbc, 0x0c, 0x29, 0xdc, 0x69, 0xe0, 0x66, 0x14, 0xf2, 0x3f, 0x3e, 0x14, + 0xf9, 0x84, 0x58, 0x97, 0x9f, 0x07, 0x60, 0x87, 0x69, 0xfa, 0x43, 0x51, 0x04, 0xf6, 0x3f, 0x3f, + 0xe4, 0x1f, 0x4b, 0x04, 0x90, 0x80, 0x80, 0x7d, 0x7a, 0xf1, 0x60, 0x82, 0x77, 0x7b, 0x09, 0xe8, + 0x01, 0xfc, 0x0a, 0x8c, 0xdf, 0x74, 0x2d, 0xd3, 0x53, 0xdb, 0x51, 0xe8, 0xff, 0xe2, 0x68, 0x61, + 0x4f, 0x1c, 0xd6, 0xb1, 0x1c, 0xec, 0xa9, 0x6d, 0x37, 0x0a, 0xfb, 0xdf, 0x1c, 0xeb, 0x03, 0x08, + 0x58, 0x53, 0x5d, 0x6f, 0x94, 0x79, 0xff, 0x58, 0x80, 0x05, 0x80, 0x0c, 0x9a, 0xfc, 0x7f, 0x0b, + 0x1f, 0x44, 0x61, 0xdf, 0x13, 0x83, 0xe6, 0xf6, 0xe5, 0x4f, 0x43, 0x96, 0xfc, 0xcb, 0xbe, 0x80, + 0x8a, 0x00, 0xff, 0x0f, 0x07, 0x07, 0x08, 0xf2, 0x66, 0xd7, 0x6b, 0x7a, 0x7a, 0xb4, 0xb3, 0xff, + 0x97, 0xaf, 0xb4, 0xb0, 0x2f, 0x57, 0x20, 0xe7, 0x7a, 0xcd, 0x66, 0x97, 0x77, 0x34, 0x11, 0xf0, + 0xff, 0xfb, 0xd0, 0x3f, 0xe4, 0xfa, 0x98, 0x95, 0xea, 0xf0, 0xfb, 0x3a, 0x58, 0xb7, 0xd6, 0x2d, + 0x76, 0x53, 0xf7, 0xf2, 0x5c, 0xf4, 0x95, 0x1b, 0xbc, 0x96, 0x82, 0x47, 0x34, 0xab, 0xd3, 0xb0, + 0xdc, 0xc5, 0x50, 0xaa, 0x5a, 0xb4, 0x4c, 0xce, 0x89, 0x12, 0x96, 0x89, 0x67, 0x8f, 0x77, 0x79, + 0x37, 0x77, 0x0a, 0x52, 0xf5, 0x6e, 0xa3, 0x71, 0x80, 0x24, 0x48, 0xb8, 0xdd, 0x06, 0xff, 0x10, + 0x86, 0xfc, 0x3b, 0xf7, 0x83, 0x04, 0xe4, 0xea, 0x6a, 0xc7, 0x36, 0x70, 0xcd, 0xc4, 0xb5, 0x16, + 0x2a, 0x42, 0x9a, 0xce, 0xf5, 0x39, 0x6a, 0x14, 0xbb, 0x3e, 0x26, 0xf3, 0x67, 0x5f, 0xb3, 0x44, + 0x2f, 0x35, 0xe3, 0xbe, 0x66, 0xc9, 0xd7, 0x9c, 0x67, 0x77, 0x9a, 0xbe, 0xe6, 0xbc, 0xaf, 0xb9, + 0x40, 0x6f, 0x36, 0x13, 0xbe, 0xe6, 0x82, 0xaf, 0x59, 0xa6, 0x37, 0xf7, 0x13, 0xbe, 0x66, 0xd9, + 0xd7, 0x5c, 0xa4, 0x77, 0xf5, 0x49, 0x5f, 0x73, 0xd1, 0xd7, 0x5c, 0xa2, 0x57, 0xf4, 0x53, 0xbe, + 0xe6, 0x92, 0xaf, 0xb9, 0x4c, 0xaf, 0xe5, 0x91, 0xaf, 0xb9, 0xec, 0x6b, 0xae, 0xd0, 0xef, 0x5d, + 0xc6, 0x7d, 0xcd, 0x15, 0x34, 0x0b, 0xe3, 0x6c, 0x66, 0xcf, 0xd2, 0xdf, 0x6e, 0x27, 0xaf, 0x8f, + 0xc9, 0x42, 0x10, 0xe8, 0x9e, 0xa3, 0xdf, 0xb4, 0xa4, 0x03, 0xdd, 0x73, 0x81, 0x6e, 0x89, 0x7e, + 0x5a, 0x2f, 0x05, 0xba, 0xa5, 0x40, 0x77, 0xbe, 0x38, 0x41, 0x42, 0x24, 0xd0, 0x9d, 0x0f, 0x74, + 0x17, 0x8a, 0x05, 0xe2, 0xff, 0x40, 0x77, 0x21, 0xd0, 0x2d, 0x17, 0x27, 0xcf, 0xc4, 0xe6, 0xf3, + 0x81, 0x6e, 0x19, 0x3d, 0x03, 0x39, 0xb7, 0xdb, 0x50, 0xf8, 0xa7, 0x06, 0xf4, 0xdb, 0x99, 0xdc, + 0x12, 0x2c, 0x90, 0x88, 0xa0, 0x8b, 0x7a, 0x7d, 0x4c, 0x06, 0xb7, 0xdb, 0xe0, 0x39, 0x74, 0x25, + 0x0f, 0xf4, 0xca, 0x41, 0xa1, 0x9f, 0xbc, 0xae, 0xac, 0xbd, 0x75, 0xbf, 0x34, 0xf6, 0xbd, 0xfb, + 0xa5, 0xb1, 0x7f, 0xbd, 0x5f, 0x1a, 0x7b, 0xfb, 0x7e, 0x29, 0xf6, 0xde, 0xfd, 0x52, 0xec, 0x83, + 0xfb, 0xa5, 0xd8, 0xbd, 0xc3, 0x52, 0xec, 0x6b, 0x87, 0xa5, 0xd8, 0x37, 0x0e, 0x4b, 0xb1, 0xef, + 0x1c, 0x96, 0x62, 0x6f, 0x1d, 0x96, 0xc6, 0xbe, 0x77, 0x58, 0x8a, 0xbd, 0x7d, 0x58, 0x8a, 0xfd, + 0xe8, 0xb0, 0x34, 0xf6, 0xde, 0x61, 0x29, 0xf6, 0xc1, 0x61, 0x69, 0xec, 0xde, 0x0f, 0x4b, 0x63, + 0x8d, 0x34, 0x0d, 0xa3, 0xf3, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x75, 0x79, 0x25, 0x04, 0x29, + 0x33, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -2729,15 +2735,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field1{float64(math.Float64frombits(v))} case 2: if wireType != 5 { @@ -2747,11 +2746,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field2{float32(math.Float32frombits(v))} case 3: if wireType != 0 { @@ -2883,11 +2879,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field9{v} case 10: if wireType != 5 { @@ -2897,11 +2890,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.TestOneof = &SampleOneOf_Field10{v} case 11: if wireType != 1 { @@ -2911,15 +2901,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field11{v} case 12: if wireType != 1 { @@ -2929,15 +2912,8 @@ func (m *SampleOneOf) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.TestOneof = &SampleOneOf_Field12{v} case 13: if wireType != 0 { diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/onepb_test.go index ffbaaad87..876e08161 100644 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/onepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unmarshaler/onepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/one.proto -// DO NOT EDIT! /* Package one is a generated protocol buffer package. @@ -15,13 +14,12 @@ It has these top-level messages: package one import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestSubbyProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,20 +58,20 @@ func TestSubbyProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSampleOneOfProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -94,21 +92,21 @@ func TestSampleOneOfProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSubbyJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -121,15 +119,15 @@ func TestSubbyJSON(t *testing.T) { } func TestSampleOneOfJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SampleOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -142,11 +140,11 @@ func TestSampleOneOfJSON(t *testing.T) { } func TestSubbyProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -159,11 +157,11 @@ func TestSubbyProtoText(t *testing.T) { func TestSubbyProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -176,11 +174,11 @@ func TestSubbyProtoCompactText(t *testing.T) { func TestSampleOneOfProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -193,11 +191,11 @@ func TestSampleOneOfProtoText(t *testing.T) { func TestSampleOneOfProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -212,14 +210,14 @@ func TestOneDescription(t *testing.T) { OneDescription() } func TestSubbyVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -227,14 +225,14 @@ func TestSubbyVerboseEqual(t *testing.T) { } } func TestSampleOneOfVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -242,37 +240,37 @@ func TestSampleOneOfVerboseEqual(t *testing.T) { } } func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSampleOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSubbySize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -283,7 +281,7 @@ func TestSubbySize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -291,10 +289,10 @@ func TestSubbySize(t *testing.T) { func TestSampleOneOfSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSampleOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -305,14 +303,14 @@ func TestSampleOneOfSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSubby(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -321,7 +319,7 @@ func TestSubbyStringer(t *testing.T) { } } func TestSampleOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSampleOneOf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.pb.go deleted file mode 100644 index 3fe98be98..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.pb.go +++ /dev/null @@ -1,3395 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/one.proto -// DO NOT EDIT! - -/* - Package one is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeboth/one.proto - - It has these top-level messages: - Subby - SampleOneOf -*/ -package one - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" - -import unsafe "unsafe" - -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 - -type Subby struct { - Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` -} - -func (m *Subby) Reset() { *m = Subby{} } -func (*Subby) ProtoMessage() {} -func (*Subby) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{0} } - -type SampleOneOf struct { - // Types that are valid to be assigned to TestOneof: - // *SampleOneOf_Field1 - // *SampleOneOf_Field2 - // *SampleOneOf_Field3 - // *SampleOneOf_Field4 - // *SampleOneOf_Field5 - // *SampleOneOf_Field6 - // *SampleOneOf_Field7 - // *SampleOneOf_Field8 - // *SampleOneOf_Field9 - // *SampleOneOf_Field10 - // *SampleOneOf_Field11 - // *SampleOneOf_Field12 - // *SampleOneOf_Field13 - // *SampleOneOf_Field14 - // *SampleOneOf_Field15 - // *SampleOneOf_SubMessage - TestOneof isSampleOneOf_TestOneof `protobuf_oneof:"test_oneof"` -} - -func (m *SampleOneOf) Reset() { *m = SampleOneOf{} } -func (*SampleOneOf) ProtoMessage() {} -func (*SampleOneOf) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{1} } - -type isSampleOneOf_TestOneof interface { - isSampleOneOf_TestOneof() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` -} -type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` -} -type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` -} -type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` -} -type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` -} -type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` -} -type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` -} -type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` -} -type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` -} -type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` -} -type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` -} -type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` -} -type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` -} -type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` -} -type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` -} -type SampleOneOf_SubMessage struct { - SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` -} - -func (*SampleOneOf_Field1) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field2) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field3) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field4) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field5) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field6) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field7) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field8) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field9) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field10) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field11) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field12) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field13) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field14) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field15) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_SubMessage) isSampleOneOf_TestOneof() {} - -func (m *SampleOneOf) GetTestOneof() isSampleOneOf_TestOneof { - if m != nil { - return m.TestOneof - } - return nil -} - -func (m *SampleOneOf) GetField1() float64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field1); ok { - return x.Field1 - } - return 0 -} - -func (m *SampleOneOf) GetField2() float32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field2); ok { - return x.Field2 - } - return 0 -} - -func (m *SampleOneOf) GetField3() int32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field3); ok { - return x.Field3 - } - return 0 -} - -func (m *SampleOneOf) GetField4() int64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field4); ok { - return x.Field4 - } - return 0 -} - -func (m *SampleOneOf) GetField5() uint32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field5); ok { - return x.Field5 - } - return 0 -} - -func (m *SampleOneOf) GetField6() uint64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field6); ok { - return x.Field6 - } - return 0 -} - -func (m *SampleOneOf) GetField7() int32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field7); ok { - return x.Field7 - } - return 0 -} - -func (m *SampleOneOf) GetField8() int64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field8); ok { - return x.Field8 - } - return 0 -} - -func (m *SampleOneOf) GetField9() uint32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field9); ok { - return x.Field9 - } - return 0 -} - -func (m *SampleOneOf) GetField10() int32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field10); ok { - return x.Field10 - } - return 0 -} - -func (m *SampleOneOf) GetField11() uint64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field11); ok { - return x.Field11 - } - return 0 -} - -func (m *SampleOneOf) GetField12() int64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field12); ok { - return x.Field12 - } - return 0 -} - -func (m *SampleOneOf) GetField13() bool { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field13); ok { - return x.Field13 - } - return false -} - -func (m *SampleOneOf) GetField14() string { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field14); ok { - return x.Field14 - } - return "" -} - -func (m *SampleOneOf) GetField15() []byte { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field15); ok { - return x.Field15 - } - return nil -} - -func (m *SampleOneOf) GetSubMessage() *Subby { - if x, ok := m.GetTestOneof().(*SampleOneOf_SubMessage); ok { - return x.SubMessage - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*SampleOneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _SampleOneOf_OneofMarshaler, _SampleOneOf_OneofUnmarshaler, _SampleOneOf_OneofSizer, []interface{}{ - (*SampleOneOf_Field1)(nil), - (*SampleOneOf_Field2)(nil), - (*SampleOneOf_Field3)(nil), - (*SampleOneOf_Field4)(nil), - (*SampleOneOf_Field5)(nil), - (*SampleOneOf_Field6)(nil), - (*SampleOneOf_Field7)(nil), - (*SampleOneOf_Field8)(nil), - (*SampleOneOf_Field9)(nil), - (*SampleOneOf_Field10)(nil), - (*SampleOneOf_Field11)(nil), - (*SampleOneOf_Field12)(nil), - (*SampleOneOf_Field13)(nil), - (*SampleOneOf_Field14)(nil), - (*SampleOneOf_Field15)(nil), - (*SampleOneOf_SubMessage)(nil), - } -} - -func _SampleOneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*SampleOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *SampleOneOf_Field1: - _ = b.EncodeVarint(1<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.Field1)) - case *SampleOneOf_Field2: - _ = b.EncodeVarint(2<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2))) - case *SampleOneOf_Field3: - _ = b.EncodeVarint(3<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field3)) - case *SampleOneOf_Field4: - _ = b.EncodeVarint(4<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field4)) - case *SampleOneOf_Field5: - _ = b.EncodeVarint(5<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field5)) - case *SampleOneOf_Field6: - _ = b.EncodeVarint(6<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field6)) - case *SampleOneOf_Field7: - _ = b.EncodeVarint(7<<3 | proto.WireVarint) - _ = b.EncodeZigzag32(uint64(x.Field7)) - case *SampleOneOf_Field8: - _ = b.EncodeVarint(8<<3 | proto.WireVarint) - _ = b.EncodeZigzag64(uint64(x.Field8)) - case *SampleOneOf_Field9: - _ = b.EncodeVarint(9<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field9)) - case *SampleOneOf_Field10: - _ = b.EncodeVarint(10<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field10)) - case *SampleOneOf_Field11: - _ = b.EncodeVarint(11<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field11)) - case *SampleOneOf_Field12: - _ = b.EncodeVarint(12<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field12)) - case *SampleOneOf_Field13: - t := uint64(0) - if x.Field13 { - t = 1 - } - _ = b.EncodeVarint(13<<3 | proto.WireVarint) - _ = b.EncodeVarint(t) - case *SampleOneOf_Field14: - _ = b.EncodeVarint(14<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Field14) - case *SampleOneOf_Field15: - _ = b.EncodeVarint(15<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Field15) - case *SampleOneOf_SubMessage: - _ = b.EncodeVarint(16<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.SubMessage); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("SampleOneOf.TestOneof has unexpected type %T", x) - } - return nil -} - -func _SampleOneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*SampleOneOf) - switch tag { - case 1: // test_oneof.Field1 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &SampleOneOf_Field1{math.Float64frombits(x)} - return true, err - case 2: // test_oneof.Field2 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &SampleOneOf_Field2{math.Float32frombits(uint32(x))} - return true, err - case 3: // test_oneof.Field3 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field3{int32(x)} - return true, err - case 4: // test_oneof.Field4 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field4{int64(x)} - return true, err - case 5: // test_oneof.Field5 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field5{uint32(x)} - return true, err - case 6: // test_oneof.Field6 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field6{x} - return true, err - case 7: // test_oneof.Field7 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag32() - m.TestOneof = &SampleOneOf_Field7{int32(x)} - return true, err - case 8: // test_oneof.Field8 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag64() - m.TestOneof = &SampleOneOf_Field8{int64(x)} - return true, err - case 9: // test_oneof.Field9 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &SampleOneOf_Field9{uint32(x)} - return true, err - case 10: // test_oneof.Field10 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &SampleOneOf_Field10{int32(x)} - return true, err - case 11: // test_oneof.Field11 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &SampleOneOf_Field11{x} - return true, err - case 12: // test_oneof.Field12 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &SampleOneOf_Field12{int64(x)} - return true, err - case 13: // test_oneof.Field13 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field13{x != 0} - return true, err - case 14: // test_oneof.Field14 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.TestOneof = &SampleOneOf_Field14{x} - return true, err - case 15: // test_oneof.Field15 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.TestOneof = &SampleOneOf_Field15{x} - return true, err - case 16: // test_oneof.sub_message - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Subby) - err := b.DecodeMessage(msg) - m.TestOneof = &SampleOneOf_SubMessage{msg} - return true, err - default: - return false, nil - } -} - -func _SampleOneOf_OneofSizer(msg proto.Message) (n int) { - m := msg.(*SampleOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *SampleOneOf_Field1: - n += proto.SizeVarint(1<<3 | proto.WireFixed64) - n += 8 - case *SampleOneOf_Field2: - n += proto.SizeVarint(2<<3 | proto.WireFixed32) - n += 4 - case *SampleOneOf_Field3: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field3)) - case *SampleOneOf_Field4: - n += proto.SizeVarint(4<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field4)) - case *SampleOneOf_Field5: - n += proto.SizeVarint(5<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field5)) - case *SampleOneOf_Field6: - n += proto.SizeVarint(6<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field6)) - case *SampleOneOf_Field7: - n += proto.SizeVarint(7<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64((uint32(x.Field7) << 1) ^ uint32((int32(x.Field7) >> 31)))) - case *SampleOneOf_Field8: - n += proto.SizeVarint(8<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(uint64(x.Field8<<1) ^ uint64((int64(x.Field8) >> 63)))) - case *SampleOneOf_Field9: - n += proto.SizeVarint(9<<3 | proto.WireFixed32) - n += 4 - case *SampleOneOf_Field10: - n += proto.SizeVarint(10<<3 | proto.WireFixed32) - n += 4 - case *SampleOneOf_Field11: - n += proto.SizeVarint(11<<3 | proto.WireFixed64) - n += 8 - case *SampleOneOf_Field12: - n += proto.SizeVarint(12<<3 | proto.WireFixed64) - n += 8 - case *SampleOneOf_Field13: - n += proto.SizeVarint(13<<3 | proto.WireVarint) - n += 1 - case *SampleOneOf_Field14: - n += proto.SizeVarint(14<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field14))) - n += len(x.Field14) - case *SampleOneOf_Field15: - n += proto.SizeVarint(15<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field15))) - n += len(x.Field15) - case *SampleOneOf_SubMessage: - s := proto.Size(x.SubMessage) - n += proto.SizeVarint(16<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*Subby)(nil), "one.Subby") - proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf") -} -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 3863 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0xdc, 0x5d, 0xc5, - 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, - 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, - 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0xde, 0x99, 0xc6, 0xae, 0xe3, 0xb6, 0x99, - 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, - 0x1f, 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xce, - 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x66, 0x1c, 0x3f, 0x49, 0x38, 0xe7, 0x7c, 0x1f, 0x0e, 0xce, - 0x7f, 0xfe, 0x73, 0x0e, 0x7e, 0x02, 0x7e, 0xb0, 0x0e, 0xe7, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, 0x6a, - 0xcf, 0xb1, 0x3d, 0xbb, 0xd9, 0x6f, 0xaf, 0xb6, 0x90, 0xab, 0x3b, 0x46, 0xcf, 0xb3, 0x9d, 0x15, - 0x22, 0x93, 0xf2, 0xd4, 0x62, 0x85, 0x5b, 0x2c, 0xed, 0xc0, 0xdc, 0x75, 0xc3, 0x44, 0x9b, 0xbe, - 0x61, 0x03, 0x79, 0xd2, 0x15, 0x48, 0xb4, 0x0d, 0x13, 0xc9, 0xc2, 0xb9, 0xf8, 0x72, 0x66, 0xed, - 0xf1, 0x95, 0x21, 0xd0, 0xca, 0x20, 0xa2, 0x8e, 0xc5, 0x0a, 0x41, 0x2c, 0xbd, 0x9b, 0x80, 0xf9, - 0x31, 0x5a, 0x49, 0x82, 0x84, 0xa5, 0x75, 0x31, 0xa3, 0xb0, 0x9c, 0x56, 0xc8, 0xff, 0x92, 0x0c, - 0x33, 0x3d, 0x4d, 0xbf, 0xa3, 0x75, 0x90, 0x1c, 0x23, 0x62, 0x7e, 0x29, 0x15, 0x00, 0x5a, 0xa8, - 0x87, 0xac, 0x16, 0xb2, 0xf4, 0x43, 0x39, 0x7e, 0x2e, 0xbe, 0x9c, 0x56, 0x42, 0x12, 0xe9, 0x19, - 0x98, 0xeb, 0xf5, 0x9b, 0xa6, 0xa1, 0xab, 0x21, 0x33, 0x38, 0x17, 0x5f, 0x4e, 0x2a, 0x22, 0x55, - 0x6c, 0x06, 0xc6, 0x4f, 0x42, 0xfe, 0x1e, 0xd2, 0xee, 0x84, 0x4d, 0x33, 0xc4, 0x34, 0x87, 0xc5, - 0x21, 0xc3, 0x32, 0x64, 0xbb, 0xc8, 0x75, 0xb5, 0x0e, 0x52, 0xbd, 0xc3, 0x1e, 0x92, 0x13, 0xe4, - 0xe9, 0xcf, 0x8d, 0x3c, 0xfd, 0xf0, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xb0, 0x87, 0xa4, 0x12, 0xa4, - 0x91, 0xd5, 0xef, 0x52, 0x86, 0xe4, 0x31, 0xf1, 0xab, 0x58, 0xfd, 0xee, 0x30, 0x4b, 0x0a, 0xc3, - 0x18, 0xc5, 0x8c, 0x8b, 0x9c, 0xbb, 0x86, 0x8e, 0xe4, 0x69, 0x42, 0xf0, 0xe4, 0x08, 0x41, 0x83, - 0xea, 0x87, 0x39, 0x38, 0x4e, 0x2a, 0x43, 0x1a, 0xbd, 0xec, 0x21, 0xcb, 0x35, 0x6c, 0x4b, 0x9e, - 0x21, 0x24, 0x4f, 0x8c, 0x59, 0x45, 0x64, 0xb6, 0x86, 0x29, 0x02, 0x9c, 0x74, 0x09, 0x66, 0xec, - 0x9e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xce, 0x09, 0xcb, 0x99, 0xb5, 0x4f, 0x8c, 0x4d, 0x84, 0x1a, - 0xb5, 0x51, 0xb8, 0xb1, 0x54, 0x05, 0xd1, 0xb5, 0xfb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, 0x21, 0xd5, - 0xb0, 0xda, 0xb6, 0x9c, 0x26, 0x04, 0x67, 0x47, 0x1f, 0x84, 0x18, 0x96, 0xed, 0x16, 0xaa, 0x5a, - 0x6d, 0x5b, 0xc9, 0xb9, 0x03, 0xd7, 0xd2, 0x29, 0x98, 0x76, 0x0f, 0x2d, 0x4f, 0x7b, 0x59, 0xce, - 0x92, 0x0c, 0x61, 0x57, 0x4b, 0xff, 0x97, 0x84, 0xfc, 0x24, 0x29, 0x76, 0x0d, 0x92, 0x6d, 0xfc, - 0x94, 0x72, 0xec, 0x24, 0x31, 0xa0, 0x98, 0xc1, 0x20, 0x4e, 0xff, 0x84, 0x41, 0x2c, 0x41, 0xc6, - 0x42, 0xae, 0x87, 0x5a, 0x34, 0x23, 0xe2, 0x13, 0xe6, 0x14, 0x50, 0xd0, 0x68, 0x4a, 0x25, 0x7e, - 0xa2, 0x94, 0xba, 0x05, 0x79, 0xdf, 0x25, 0xd5, 0xd1, 0xac, 0x0e, 0xcf, 0xcd, 0xd5, 0x28, 0x4f, - 0x56, 0x2a, 0x1c, 0xa7, 0x60, 0x98, 0x92, 0x43, 0x03, 0xd7, 0xd2, 0x26, 0x80, 0x6d, 0x21, 0xbb, - 0xad, 0xb6, 0x90, 0x6e, 0xca, 0xa9, 0x63, 0xa2, 0x54, 0xc3, 0x26, 0x23, 0x51, 0xb2, 0xa9, 0x54, - 0x37, 0xa5, 0xab, 0x41, 0xaa, 0xcd, 0x1c, 0x93, 0x29, 0x3b, 0x74, 0x93, 0x8d, 0x64, 0xdb, 0x3e, - 0xe4, 0x1c, 0x84, 0xf3, 0x1e, 0xb5, 0xd8, 0x93, 0xa5, 0x89, 0x13, 0x2b, 0x91, 0x4f, 0xa6, 0x30, - 0x18, 0x7d, 0xb0, 0x59, 0x27, 0x7c, 0x29, 0x7d, 0x12, 0x7c, 0x81, 0x4a, 0xd2, 0x0a, 0x48, 0x15, - 0xca, 0x72, 0xe1, 0xae, 0xd6, 0x45, 0x8b, 0x57, 0x20, 0x37, 0x18, 0x1e, 0x69, 0x01, 0x92, 0xae, - 0xa7, 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x91, 0x2a, 0x97, - 0x54, 0xf0, 0xbf, 0x8b, 0x97, 0x61, 0x76, 0xe0, 0xf6, 0x93, 0x02, 0x97, 0xbe, 0x34, 0x0d, 0x0b, - 0xe3, 0x72, 0x6e, 0x6c, 0xfa, 0x9f, 0x82, 0x69, 0xab, 0xdf, 0x6d, 0x22, 0x47, 0x8e, 0x13, 0x06, - 0x76, 0x25, 0x95, 0x20, 0x69, 0x6a, 0x4d, 0x64, 0xca, 0x89, 0x73, 0xc2, 0x72, 0x6e, 0xed, 0x99, - 0x89, 0xb2, 0x7a, 0x65, 0x1b, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x03, 0x09, 0x56, 0xe2, 0x30, 0xc3, - 0xd3, 0x93, 0x31, 0xe0, 0x5c, 0x54, 0x08, 0x4e, 0x7a, 0x14, 0xd2, 0xf8, 0x2f, 0x8d, 0xed, 0x34, - 0xf1, 0x39, 0x85, 0x05, 0x38, 0xae, 0xd2, 0x22, 0xa4, 0x48, 0x9a, 0xb5, 0x10, 0x6f, 0x0d, 0xfe, - 0x35, 0x5e, 0x98, 0x16, 0x6a, 0x6b, 0x7d, 0xd3, 0x53, 0xef, 0x6a, 0x66, 0x1f, 0x91, 0x84, 0x49, - 0x2b, 0x59, 0x26, 0xfc, 0x1c, 0x96, 0x49, 0x67, 0x21, 0x43, 0xb3, 0xd2, 0xb0, 0x5a, 0xe8, 0x65, - 0x52, 0x7d, 0x92, 0x0a, 0x4d, 0xd4, 0x2a, 0x96, 0xe0, 0xdb, 0xdf, 0x76, 0x6d, 0x8b, 0x2f, 0x2d, - 0xb9, 0x05, 0x16, 0x90, 0xdb, 0x5f, 0x1e, 0x2e, 0x7c, 0x8f, 0x8d, 0x7f, 0xbc, 0xe1, 0x5c, 0x5c, - 0xfa, 0x56, 0x0c, 0x12, 0x64, 0xbf, 0xe5, 0x21, 0xb3, 0xf7, 0x52, 0xbd, 0xa2, 0x6e, 0xd6, 0xf6, - 0x37, 0xb6, 0x2b, 0xa2, 0x20, 0xe5, 0x00, 0x88, 0xe0, 0xfa, 0x76, 0xad, 0xb4, 0x27, 0xc6, 0xfc, - 0xeb, 0xea, 0xee, 0xde, 0xa5, 0x8b, 0x62, 0xdc, 0x07, 0xec, 0x53, 0x41, 0x22, 0x6c, 0x70, 0x61, - 0x4d, 0x4c, 0x4a, 0x22, 0x64, 0x29, 0x41, 0xf5, 0x56, 0x65, 0xf3, 0xd2, 0x45, 0x71, 0x7a, 0x50, - 0x72, 0x61, 0x4d, 0x9c, 0x91, 0x66, 0x21, 0x4d, 0x24, 0x1b, 0xb5, 0xda, 0xb6, 0x98, 0xf2, 0x39, - 0x1b, 0x7b, 0x4a, 0x75, 0x77, 0x4b, 0x4c, 0xfb, 0x9c, 0x5b, 0x4a, 0x6d, 0xbf, 0x2e, 0x82, 0xcf, - 0xb0, 0x53, 0x69, 0x34, 0x4a, 0x5b, 0x15, 0x31, 0xe3, 0x5b, 0x6c, 0xbc, 0xb4, 0x57, 0x69, 0x88, - 0xd9, 0x01, 0xb7, 0x2e, 0xac, 0x89, 0xb3, 0xfe, 0x2d, 0x2a, 0xbb, 0xfb, 0x3b, 0x62, 0x4e, 0x9a, - 0x83, 0x59, 0x7a, 0x0b, 0xee, 0x44, 0x7e, 0x48, 0x74, 0xe9, 0xa2, 0x28, 0x06, 0x8e, 0x50, 0x96, - 0xb9, 0x01, 0xc1, 0xa5, 0x8b, 0xa2, 0xb4, 0x54, 0x86, 0x24, 0xc9, 0x2e, 0x49, 0x82, 0xdc, 0x76, - 0x69, 0xa3, 0xb2, 0xad, 0xd6, 0xea, 0x7b, 0xd5, 0xda, 0x6e, 0x69, 0x5b, 0x14, 0x02, 0x99, 0x52, - 0xf9, 0xec, 0x7e, 0x55, 0xa9, 0x6c, 0x8a, 0xb1, 0xb0, 0xac, 0x5e, 0x29, 0xed, 0x55, 0x36, 0xc5, - 0xf8, 0x92, 0x0e, 0x0b, 0xe3, 0xea, 0xcc, 0xd8, 0x9d, 0x11, 0x5a, 0xe2, 0xd8, 0x31, 0x4b, 0x4c, - 0xb8, 0x46, 0x96, 0xf8, 0x2b, 0x02, 0xcc, 0x8f, 0xa9, 0xb5, 0x63, 0x6f, 0xf2, 0x02, 0x24, 0x69, - 0x8a, 0xd2, 0xee, 0xf3, 0xd4, 0xd8, 0xa2, 0x4d, 0x12, 0x76, 0xa4, 0x03, 0x11, 0x5c, 0xb8, 0x03, - 0xc7, 0x8f, 0xe9, 0xc0, 0x98, 0x62, 0xc4, 0xc9, 0x57, 0x05, 0x90, 0x8f, 0xe3, 0x8e, 0x28, 0x14, - 0xb1, 0x81, 0x42, 0x71, 0x6d, 0xd8, 0x81, 0xf3, 0xc7, 0x3f, 0xc3, 0x88, 0x17, 0x6f, 0x09, 0x70, - 0x6a, 0xfc, 0xa0, 0x32, 0xd6, 0x87, 0xcf, 0xc0, 0x74, 0x17, 0x79, 0x07, 0x36, 0x6f, 0xd6, 0x9f, - 0x1a, 0xd3, 0x02, 0xb0, 0x7a, 0x38, 0x56, 0x0c, 0x15, 0xee, 0x21, 0xf1, 0xe3, 0xa6, 0x0d, 0xea, - 0xcd, 0x88, 0xa7, 0x5f, 0x8c, 0xc1, 0x23, 0x63, 0xc9, 0xc7, 0x3a, 0xfa, 0x18, 0x80, 0x61, 0xf5, - 0xfa, 0x1e, 0x6d, 0xc8, 0xb4, 0x3e, 0xa5, 0x89, 0x84, 0xec, 0x7d, 0x5c, 0x7b, 0xfa, 0x9e, 0xaf, - 0x8f, 0x13, 0x3d, 0x50, 0x11, 0x31, 0xb8, 0x12, 0x38, 0x9a, 0x20, 0x8e, 0x16, 0x8e, 0x79, 0xd2, - 0x91, 0x5e, 0xf7, 0x1c, 0x88, 0xba, 0x69, 0x20, 0xcb, 0x53, 0x5d, 0xcf, 0x41, 0x5a, 0xd7, 0xb0, - 0x3a, 0xa4, 0x00, 0xa7, 0x8a, 0xc9, 0xb6, 0x66, 0xba, 0x48, 0xc9, 0x53, 0x75, 0x83, 0x6b, 0x31, - 0x82, 0x74, 0x19, 0x27, 0x84, 0x98, 0x1e, 0x40, 0x50, 0xb5, 0x8f, 0x58, 0xfa, 0xfa, 0x0c, 0x64, - 0x42, 0x63, 0x9d, 0x74, 0x1e, 0xb2, 0xb7, 0xb5, 0xbb, 0x9a, 0xca, 0x47, 0x75, 0x1a, 0x89, 0x0c, - 0x96, 0xd5, 0xd9, 0xb8, 0xfe, 0x1c, 0x2c, 0x10, 0x13, 0xbb, 0xef, 0x21, 0x47, 0xd5, 0x4d, 0xcd, - 0x75, 0x49, 0xd0, 0x52, 0xc4, 0x54, 0xc2, 0xba, 0x1a, 0x56, 0x95, 0xb9, 0x46, 0x5a, 0x87, 0x79, - 0x82, 0xe8, 0xf6, 0x4d, 0xcf, 0xe8, 0x99, 0x48, 0xc5, 0x2f, 0x0f, 0x2e, 0x29, 0xc4, 0xbe, 0x67, - 0x73, 0xd8, 0x62, 0x87, 0x19, 0x60, 0x8f, 0x5c, 0x69, 0x13, 0x1e, 0x23, 0xb0, 0x0e, 0xb2, 0x90, - 0xa3, 0x79, 0x48, 0x45, 0x5f, 0xe8, 0x6b, 0xa6, 0xab, 0x6a, 0x56, 0x4b, 0x3d, 0xd0, 0xdc, 0x03, - 0x79, 0x01, 0x13, 0x6c, 0xc4, 0x64, 0x41, 0x39, 0x83, 0x0d, 0xb7, 0x98, 0x5d, 0x85, 0x98, 0x95, - 0xac, 0xd6, 0x0d, 0xcd, 0x3d, 0x90, 0x8a, 0x70, 0x8a, 0xb0, 0xb8, 0x9e, 0x63, 0x58, 0x1d, 0x55, - 0x3f, 0x40, 0xfa, 0x1d, 0xb5, 0xef, 0xb5, 0xaf, 0xc8, 0x8f, 0x86, 0xef, 0x4f, 0x3c, 0x6c, 0x10, - 0x9b, 0x32, 0x36, 0xd9, 0xf7, 0xda, 0x57, 0xa4, 0x06, 0x64, 0xf1, 0x62, 0x74, 0x8d, 0x57, 0x90, - 0xda, 0xb6, 0x1d, 0xd2, 0x59, 0x72, 0x63, 0x76, 0x76, 0x28, 0x82, 0x2b, 0x35, 0x06, 0xd8, 0xb1, - 0x5b, 0xa8, 0x98, 0x6c, 0xd4, 0x2b, 0x95, 0x4d, 0x25, 0xc3, 0x59, 0xae, 0xdb, 0x0e, 0x4e, 0xa8, - 0x8e, 0xed, 0x07, 0x38, 0x43, 0x13, 0xaa, 0x63, 0xf3, 0xf0, 0xae, 0xc3, 0xbc, 0xae, 0xd3, 0x67, - 0x36, 0x74, 0x95, 0x8d, 0xf8, 0xae, 0x2c, 0x0e, 0x04, 0x4b, 0xd7, 0xb7, 0xa8, 0x01, 0xcb, 0x71, - 0x57, 0xba, 0x0a, 0x8f, 0x04, 0xc1, 0x0a, 0x03, 0xe7, 0x46, 0x9e, 0x72, 0x18, 0xba, 0x0e, 0xf3, - 0xbd, 0xc3, 0x51, 0xa0, 0x34, 0x70, 0xc7, 0xde, 0xe1, 0x30, 0xec, 0x09, 0xf2, 0xda, 0xe6, 0x20, - 0x5d, 0xf3, 0x50, 0x4b, 0x3e, 0x1d, 0xb6, 0x0e, 0x29, 0xa4, 0x55, 0x10, 0x75, 0x5d, 0x45, 0x96, - 0xd6, 0x34, 0x91, 0xaa, 0x39, 0xc8, 0xd2, 0x5c, 0xf9, 0x6c, 0xd8, 0x38, 0xa7, 0xeb, 0x15, 0xa2, - 0x2d, 0x11, 0xa5, 0xf4, 0x34, 0xcc, 0xd9, 0xcd, 0xdb, 0x3a, 0xcd, 0x2c, 0xb5, 0xe7, 0xa0, 0xb6, - 0xf1, 0xb2, 0xfc, 0x38, 0x09, 0x53, 0x1e, 0x2b, 0x48, 0x5e, 0xd5, 0x89, 0x58, 0x7a, 0x0a, 0x44, - 0xdd, 0x3d, 0xd0, 0x9c, 0x1e, 0x69, 0xed, 0x6e, 0x4f, 0xd3, 0x91, 0xfc, 0x04, 0x35, 0xa5, 0xf2, - 0x5d, 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x33, 0xda, 0x1e, 0x67, 0x7c, 0x92, 0x66, 0x36, 0x91, 0x31, - 0xb6, 0x5b, 0xb0, 0xd0, 0xb7, 0x0c, 0xcb, 0x43, 0x4e, 0xcf, 0x41, 0x78, 0x88, 0xa7, 0x3b, 0x51, - 0xfe, 0xd7, 0x99, 0x63, 0xc6, 0xf0, 0xfd, 0xb0, 0x35, 0x4d, 0x00, 0x65, 0xbe, 0x3f, 0x2a, 0x5c, - 0x2a, 0x42, 0x36, 0x9c, 0x17, 0x52, 0x1a, 0x68, 0x66, 0x88, 0x02, 0xee, 0xb1, 0xe5, 0xda, 0x26, - 0xee, 0x8e, 0x9f, 0xaf, 0x88, 0x31, 0xdc, 0xa5, 0xb7, 0xab, 0x7b, 0x15, 0x55, 0xd9, 0xdf, 0xdd, - 0xab, 0xee, 0x54, 0xc4, 0xf8, 0xd3, 0xe9, 0xd4, 0x0f, 0x67, 0xc4, 0xfb, 0xf7, 0xef, 0xdf, 0x8f, - 0x2d, 0x7d, 0x27, 0x06, 0xb9, 0xc1, 0xc9, 0x58, 0xfa, 0x59, 0x38, 0xcd, 0x5f, 0x63, 0x5d, 0xe4, - 0xa9, 0xf7, 0x0c, 0x87, 0xa4, 0x6a, 0x57, 0xa3, 0xb3, 0xa5, 0x1f, 0xe5, 0x05, 0x66, 0xd5, 0x40, - 0xde, 0x8b, 0x86, 0x83, 0x13, 0xb1, 0xab, 0x79, 0xd2, 0x36, 0x9c, 0xb5, 0x6c, 0xd5, 0xf5, 0x34, - 0xab, 0xa5, 0x39, 0x2d, 0x35, 0x38, 0x40, 0x50, 0x35, 0x5d, 0x47, 0xae, 0x6b, 0xd3, 0x16, 0xe1, - 0xb3, 0x7c, 0xc2, 0xb2, 0x1b, 0xcc, 0x38, 0xa8, 0x9d, 0x25, 0x66, 0x3a, 0x94, 0x11, 0xf1, 0xe3, - 0x32, 0xe2, 0x51, 0x48, 0x77, 0xb5, 0x9e, 0x8a, 0x2c, 0xcf, 0x39, 0x24, 0xf3, 0x5c, 0x4a, 0x49, - 0x75, 0xb5, 0x5e, 0x05, 0x5f, 0x7f, 0x74, 0x6b, 0x10, 0x8e, 0xe3, 0xf7, 0xe3, 0x90, 0x0d, 0xcf, - 0x74, 0x78, 0x44, 0xd6, 0x49, 0xfd, 0x16, 0xc8, 0x0e, 0xff, 0xe4, 0x43, 0x27, 0xc0, 0x95, 0x32, - 0x2e, 0xec, 0xc5, 0x69, 0x3a, 0x69, 0x29, 0x14, 0x89, 0x9b, 0x2a, 0xde, 0xd3, 0x88, 0xce, 0xef, - 0x29, 0x85, 0x5d, 0x49, 0x5b, 0x30, 0x7d, 0xdb, 0x25, 0xdc, 0xd3, 0x84, 0xfb, 0xf1, 0x87, 0x73, - 0xdf, 0x6c, 0x10, 0xf2, 0xf4, 0xcd, 0x86, 0xba, 0x5b, 0x53, 0x76, 0x4a, 0xdb, 0x0a, 0x83, 0x4b, - 0x67, 0x20, 0x61, 0x6a, 0xaf, 0x1c, 0x0e, 0xb6, 0x00, 0x22, 0x9a, 0x34, 0xf0, 0x67, 0x20, 0x71, - 0x0f, 0x69, 0x77, 0x06, 0x0b, 0x2f, 0x11, 0x7d, 0x84, 0xa9, 0xbf, 0x0a, 0x49, 0x12, 0x2f, 0x09, - 0x80, 0x45, 0x4c, 0x9c, 0x92, 0x52, 0x90, 0x28, 0xd7, 0x14, 0x9c, 0xfe, 0x22, 0x64, 0xa9, 0x54, - 0xad, 0x57, 0x2b, 0xe5, 0x8a, 0x18, 0x5b, 0x5a, 0x87, 0x69, 0x1a, 0x04, 0xbc, 0x35, 0xfc, 0x30, - 0x88, 0x53, 0xec, 0x92, 0x71, 0x08, 0x5c, 0xbb, 0xbf, 0xb3, 0x51, 0x51, 0xc4, 0x58, 0x78, 0x79, - 0x5d, 0xc8, 0x86, 0xc7, 0xb9, 0x9f, 0x4e, 0x4e, 0xfd, 0xbd, 0x00, 0x99, 0xd0, 0x78, 0x86, 0x07, - 0x03, 0xcd, 0x34, 0xed, 0x7b, 0xaa, 0x66, 0x1a, 0x9a, 0xcb, 0x92, 0x02, 0x88, 0xa8, 0x84, 0x25, - 0x93, 0x2e, 0xda, 0x4f, 0xc5, 0xf9, 0x37, 0x05, 0x10, 0x87, 0x47, 0xbb, 0x21, 0x07, 0x85, 0x8f, - 0xd5, 0xc1, 0x37, 0x04, 0xc8, 0x0d, 0xce, 0x73, 0x43, 0xee, 0x9d, 0xff, 0x58, 0xdd, 0x7b, 0x27, - 0x06, 0xb3, 0x03, 0x53, 0xdc, 0xa4, 0xde, 0x7d, 0x01, 0xe6, 0x8c, 0x16, 0xea, 0xf6, 0x6c, 0x0f, - 0x59, 0xfa, 0xa1, 0x6a, 0xa2, 0xbb, 0xc8, 0x94, 0x97, 0x48, 0xa1, 0x58, 0x7d, 0xf8, 0x9c, 0xb8, - 0x52, 0x0d, 0x70, 0xdb, 0x18, 0x56, 0x9c, 0xaf, 0x6e, 0x56, 0x76, 0xea, 0xb5, 0xbd, 0xca, 0x6e, - 0xf9, 0x25, 0x75, 0x7f, 0xf7, 0xe7, 0x76, 0x6b, 0x2f, 0xee, 0x2a, 0xa2, 0x31, 0x64, 0xf6, 0x11, - 0x6e, 0xf5, 0x3a, 0x88, 0xc3, 0x4e, 0x49, 0xa7, 0x61, 0x9c, 0x5b, 0xe2, 0x94, 0x34, 0x0f, 0xf9, - 0xdd, 0x9a, 0xda, 0xa8, 0x6e, 0x56, 0xd4, 0xca, 0xf5, 0xeb, 0x95, 0xf2, 0x5e, 0x83, 0xbe, 0x38, - 0xfb, 0xd6, 0x7b, 0x83, 0x9b, 0xfa, 0xf5, 0x38, 0xcc, 0x8f, 0xf1, 0x44, 0x2a, 0xb1, 0x99, 0x9d, - 0xbe, 0x46, 0x3c, 0x3b, 0x89, 0xf7, 0x2b, 0x78, 0x2a, 0xa8, 0x6b, 0x8e, 0xc7, 0x46, 0xfc, 0xa7, - 0x00, 0x47, 0xc9, 0xf2, 0x8c, 0xb6, 0x81, 0x1c, 0x76, 0xce, 0x40, 0x07, 0xf9, 0x7c, 0x20, 0xa7, - 0x47, 0x0d, 0x3f, 0x03, 0x52, 0xcf, 0x76, 0x0d, 0xcf, 0xb8, 0x8b, 0x54, 0xc3, 0xe2, 0x87, 0x12, - 0x78, 0xb0, 0x4f, 0x28, 0x22, 0xd7, 0x54, 0x2d, 0xcf, 0xb7, 0xb6, 0x50, 0x47, 0x1b, 0xb2, 0xc6, - 0x05, 0x3c, 0xae, 0x88, 0x5c, 0xe3, 0x5b, 0x9f, 0x87, 0x6c, 0xcb, 0xee, 0xe3, 0x31, 0x89, 0xda, - 0xe1, 0x7e, 0x21, 0x28, 0x19, 0x2a, 0xf3, 0x4d, 0xd8, 0x1c, 0x1b, 0x9c, 0x86, 0x64, 0x95, 0x0c, - 0x95, 0x51, 0x93, 0x27, 0x21, 0xaf, 0x75, 0x3a, 0x0e, 0x26, 0xe7, 0x44, 0x74, 0x32, 0xcf, 0xf9, - 0x62, 0x62, 0xb8, 0x78, 0x13, 0x52, 0x3c, 0x0e, 0xb8, 0x25, 0xe3, 0x48, 0xa8, 0x3d, 0x7a, 0x26, - 0x15, 0x5b, 0x4e, 0x2b, 0x29, 0x8b, 0x2b, 0xcf, 0x43, 0xd6, 0x70, 0xd5, 0xe0, 0x70, 0x34, 0x76, - 0x2e, 0xb6, 0x9c, 0x52, 0x32, 0x86, 0xeb, 0x9f, 0x86, 0x2d, 0xbd, 0x15, 0x83, 0xdc, 0xe0, 0xe1, - 0xae, 0xb4, 0x09, 0x29, 0xd3, 0xd6, 0x35, 0x92, 0x5a, 0xf4, 0x97, 0x85, 0xe5, 0x88, 0xf3, 0xe0, - 0x95, 0x6d, 0x66, 0xaf, 0xf8, 0xc8, 0xc5, 0x7f, 0x16, 0x20, 0xc5, 0xc5, 0xd2, 0x29, 0x48, 0xf4, - 0x34, 0xef, 0x80, 0xd0, 0x25, 0x37, 0x62, 0xa2, 0xa0, 0x90, 0x6b, 0x2c, 0x77, 0x7b, 0x9a, 0x45, - 0x52, 0x80, 0xc9, 0xf1, 0x35, 0x5e, 0x57, 0x13, 0x69, 0x2d, 0x32, 0xf6, 0xdb, 0xdd, 0x2e, 0xb2, - 0x3c, 0x97, 0xaf, 0x2b, 0x93, 0x97, 0x99, 0x58, 0x7a, 0x06, 0xe6, 0x3c, 0x47, 0x33, 0xcc, 0x01, - 0xdb, 0x04, 0xb1, 0x15, 0xb9, 0xc2, 0x37, 0x2e, 0xc2, 0x19, 0xce, 0xdb, 0x42, 0x9e, 0xa6, 0x1f, - 0xa0, 0x56, 0x00, 0x9a, 0x26, 0x27, 0x87, 0xa7, 0x99, 0xc1, 0x26, 0xd3, 0x73, 0xec, 0xd2, 0xf7, - 0x04, 0x98, 0xe3, 0x2f, 0x2a, 0x2d, 0x3f, 0x58, 0x3b, 0x00, 0x9a, 0x65, 0xd9, 0x5e, 0x38, 0x5c, - 0xa3, 0xa9, 0x3c, 0x82, 0x5b, 0x29, 0xf9, 0x20, 0x25, 0x44, 0xb0, 0xd8, 0x05, 0x08, 0x34, 0xc7, - 0x86, 0xed, 0x2c, 0x64, 0xd8, 0xc9, 0x3d, 0xf9, 0xf9, 0x87, 0xbe, 0xda, 0x02, 0x15, 0xe1, 0x37, - 0x1a, 0x69, 0x01, 0x92, 0x4d, 0xd4, 0x31, 0x2c, 0x76, 0x9e, 0x48, 0x2f, 0xf8, 0x29, 0x65, 0xc2, - 0x3f, 0xa5, 0xdc, 0xb8, 0x05, 0xf3, 0xba, 0xdd, 0x1d, 0x76, 0x77, 0x43, 0x1c, 0x7a, 0xbd, 0x76, - 0x6f, 0x08, 0x9f, 0x87, 0x60, 0xc4, 0xfc, 0x4a, 0x2c, 0xbe, 0x55, 0xdf, 0xf8, 0x5a, 0x6c, 0x71, - 0x8b, 0xe2, 0xea, 0xfc, 0x31, 0x15, 0xd4, 0x36, 0x91, 0x8e, 0x5d, 0x87, 0x1f, 0x7d, 0x0a, 0x9e, - 0xed, 0x18, 0xde, 0x41, 0xbf, 0xb9, 0xa2, 0xdb, 0xdd, 0xd5, 0x8e, 0xdd, 0xb1, 0x83, 0x9f, 0xbb, - 0xf0, 0x15, 0xb9, 0x20, 0xff, 0xb1, 0x9f, 0xbc, 0xd2, 0xbe, 0x74, 0x31, 0xf2, 0xf7, 0xb1, 0xe2, - 0x2e, 0xcc, 0x33, 0x63, 0x95, 0x9c, 0xb9, 0xd3, 0x57, 0x03, 0xe9, 0xa1, 0xe7, 0x2e, 0xf2, 0x37, - 0xdf, 0x25, 0xbd, 0x5a, 0x99, 0x63, 0x50, 0xac, 0xa3, 0x2f, 0x10, 0x45, 0x05, 0x1e, 0x19, 0xe0, - 0xa3, 0xfb, 0x12, 0x39, 0x11, 0x8c, 0xdf, 0x61, 0x8c, 0xf3, 0x21, 0xc6, 0x06, 0x83, 0x16, 0xcb, - 0x30, 0x7b, 0x12, 0xae, 0x7f, 0x64, 0x5c, 0x59, 0x14, 0x26, 0xd9, 0x82, 0x3c, 0x21, 0xd1, 0xfb, - 0xae, 0x67, 0x77, 0x49, 0xd1, 0x7b, 0x38, 0xcd, 0x3f, 0xbd, 0x4b, 0x37, 0x4a, 0x0e, 0xc3, 0xca, - 0x3e, 0xaa, 0x58, 0x04, 0xf2, 0x33, 0x43, 0x0b, 0xe9, 0x66, 0x04, 0xc3, 0xdb, 0xcc, 0x11, 0xdf, - 0xbe, 0xf8, 0x39, 0x58, 0xc0, 0xff, 0x93, 0x9a, 0x14, 0xf6, 0x24, 0xfa, 0x94, 0x49, 0xfe, 0xde, - 0xab, 0x74, 0x2f, 0xce, 0xfb, 0x04, 0x21, 0x9f, 0x42, 0xab, 0xd8, 0x41, 0x9e, 0x87, 0x1c, 0x57, - 0xd5, 0xcc, 0x71, 0xee, 0x85, 0x5e, 0xd3, 0xe5, 0xd7, 0xde, 0x1b, 0x5c, 0xc5, 0x2d, 0x8a, 0x2c, - 0x99, 0x66, 0x71, 0x1f, 0x4e, 0x8f, 0xc9, 0x8a, 0x09, 0x38, 0x5f, 0x67, 0x9c, 0x0b, 0x23, 0x99, - 0x81, 0x69, 0xeb, 0xc0, 0xe5, 0xfe, 0x5a, 0x4e, 0xc0, 0xf9, 0xfb, 0x8c, 0x53, 0x62, 0x58, 0xbe, - 0xa4, 0x98, 0xf1, 0x26, 0xcc, 0xdd, 0x45, 0x4e, 0xd3, 0x76, 0xd9, 0xd1, 0xc8, 0x04, 0x74, 0x6f, - 0x30, 0xba, 0x3c, 0x03, 0x92, 0xb3, 0x12, 0xcc, 0x75, 0x15, 0x52, 0x6d, 0x4d, 0x47, 0x13, 0x50, - 0x7c, 0x99, 0x51, 0xcc, 0x60, 0x7b, 0x0c, 0x2d, 0x41, 0xb6, 0x63, 0xb3, 0xb6, 0x14, 0x0d, 0x7f, - 0x93, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x7a, 0x76, 0xaf, 0x6f, 0xe2, 0x9e, 0x15, 0x4d, 0xf1, 0x07, - 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xc2, 0xfa, 0x87, 0x9c, 0xc2, 0x0d, 0xc5, 0xf3, 0x05, 0xc8, - 0xd8, 0x96, 0x79, 0x68, 0x5b, 0x93, 0x38, 0xf1, 0x47, 0x8c, 0x01, 0x18, 0x04, 0x13, 0x5c, 0x83, - 0xf4, 0xa4, 0x0b, 0xf1, 0xc7, 0xef, 0xf1, 0xed, 0xc1, 0x57, 0x60, 0x0b, 0xf2, 0xbc, 0x40, 0x19, - 0xb6, 0x35, 0x01, 0xc5, 0x9f, 0x30, 0x8a, 0x5c, 0x08, 0xc6, 0x1e, 0xc3, 0x43, 0xae, 0xd7, 0x41, - 0x93, 0x90, 0xbc, 0xc5, 0x1f, 0x83, 0x41, 0x58, 0x28, 0x9b, 0xc8, 0xd2, 0x0f, 0x26, 0x63, 0xf8, - 0x2a, 0x0f, 0x25, 0xc7, 0x60, 0x8a, 0x32, 0xcc, 0x76, 0x35, 0xc7, 0x3d, 0xd0, 0xcc, 0x89, 0x96, - 0xe3, 0x4f, 0x19, 0x47, 0xd6, 0x07, 0xb1, 0x88, 0xf4, 0xad, 0x93, 0xd0, 0x7c, 0x8d, 0x47, 0x24, - 0x04, 0x63, 0x5b, 0xcf, 0xf5, 0xc8, 0x01, 0xd4, 0x49, 0xd8, 0xbe, 0xce, 0xb7, 0x1e, 0xc5, 0xee, - 0x84, 0x19, 0xaf, 0x41, 0xda, 0x35, 0x5e, 0x99, 0x88, 0xe6, 0xcf, 0xf8, 0x4a, 0x13, 0x00, 0x06, - 0xbf, 0x04, 0x67, 0xc6, 0xb6, 0x89, 0x09, 0xc8, 0xfe, 0x9c, 0x91, 0x9d, 0x1a, 0xd3, 0x2a, 0x58, - 0x49, 0x38, 0x29, 0xe5, 0x5f, 0xf0, 0x92, 0x80, 0x86, 0xb8, 0xea, 0xf8, 0x45, 0xc1, 0xd5, 0xda, - 0x27, 0x8b, 0xda, 0x5f, 0xf2, 0xa8, 0x51, 0xec, 0x40, 0xd4, 0xf6, 0xe0, 0x14, 0x63, 0x3c, 0xd9, - 0xba, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0xde, 0x1f, 0x5c, 0xdd, 0x9f, 0x87, 0x45, 0x3f, 0x9c, 0x7c, - 0x22, 0x75, 0xd5, 0xae, 0xd6, 0x9b, 0x80, 0xf9, 0x9b, 0x8c, 0x99, 0x57, 0x7c, 0x7f, 0xa4, 0x75, - 0x77, 0xb4, 0x1e, 0x26, 0xbf, 0x05, 0x32, 0x27, 0xef, 0x5b, 0x0e, 0xd2, 0xed, 0x8e, 0x65, 0xbc, - 0x82, 0x5a, 0x13, 0x50, 0xff, 0xd5, 0xd0, 0x52, 0xed, 0x87, 0xe0, 0x98, 0xb9, 0x0a, 0xa2, 0x3f, - 0xab, 0xa8, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0x5f, 0xf3, 0x95, 0xf2, 0x71, 0x55, 0x02, - 0x2b, 0x56, 0x20, 0x47, 0x2e, 0x27, 0x4d, 0xc9, 0xbf, 0x61, 0x44, 0xb3, 0x01, 0x8a, 0x15, 0x0e, - 0xdd, 0xee, 0xf6, 0x34, 0x67, 0x92, 0xfa, 0xf7, 0xb7, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, 0xde, - 0x61, 0x0f, 0xe1, 0x6e, 0x3f, 0x01, 0xc3, 0xb7, 0x78, 0xe1, 0xe0, 0x18, 0x46, 0xc1, 0x07, 0x86, - 0x09, 0x28, 0xfe, 0x8e, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x6c, 0xd0, 0x68, 0x1d, 0xd4, 0x31, 0x5c, - 0xcf, 0xa1, 0x73, 0xf0, 0xc3, 0xa9, 0xbe, 0xfd, 0xde, 0xe0, 0x10, 0xa6, 0x84, 0xa0, 0xc5, 0x9b, - 0x90, 0x1f, 0x1a, 0x31, 0xa4, 0xa8, 0x6f, 0x16, 0xe4, 0x5f, 0xf8, 0x80, 0x15, 0xa3, 0xc1, 0x09, - 0xa3, 0xb8, 0x8d, 0xd7, 0x7d, 0x70, 0x0e, 0x88, 0x26, 0x7b, 0xf5, 0x03, 0x7f, 0xe9, 0x07, 0xc6, - 0x80, 0xe2, 0x75, 0x98, 0x1d, 0x98, 0x01, 0xa2, 0xa9, 0x7e, 0x91, 0x51, 0x65, 0xc3, 0x23, 0x40, - 0x71, 0x1d, 0x12, 0xb8, 0x9f, 0x47, 0xc3, 0x7f, 0x89, 0xc1, 0x89, 0x79, 0xf1, 0xd3, 0x90, 0xe2, - 0x7d, 0x3c, 0x1a, 0xfa, 0xcb, 0x0c, 0xea, 0x43, 0x30, 0x9c, 0xf7, 0xf0, 0x68, 0xf8, 0xaf, 0x70, - 0x38, 0x87, 0x60, 0xf8, 0xe4, 0x21, 0xfc, 0x87, 0x5f, 0x4d, 0xb0, 0x3a, 0xcc, 0x63, 0x77, 0x0d, - 0x66, 0x58, 0xf3, 0x8e, 0x46, 0x7f, 0x91, 0xdd, 0x9c, 0x23, 0x8a, 0x97, 0x21, 0x39, 0x61, 0xc0, - 0x7f, 0x8d, 0x41, 0xa9, 0x7d, 0xb1, 0x0c, 0x99, 0x50, 0xc3, 0x8e, 0x86, 0xff, 0x3a, 0x83, 0x87, - 0x51, 0xd8, 0x75, 0xd6, 0xb0, 0xa3, 0x09, 0x7e, 0x83, 0xbb, 0xce, 0x10, 0x38, 0x6c, 0xbc, 0x57, - 0x47, 0xa3, 0x7f, 0x93, 0x47, 0x9d, 0x43, 0x8a, 0x2f, 0x40, 0xda, 0xaf, 0xbf, 0xd1, 0xf8, 0xdf, - 0x62, 0xf8, 0x00, 0x83, 0x23, 0x10, 0xaa, 0xff, 0xd1, 0x14, 0xbf, 0xcd, 0x23, 0x10, 0x42, 0xe1, - 0x6d, 0x34, 0xdc, 0xd3, 0xa3, 0x99, 0x7e, 0x87, 0x6f, 0xa3, 0xa1, 0x96, 0x8e, 0x57, 0x93, 0x94, - 0xc1, 0x68, 0x8a, 0xdf, 0xe5, 0xab, 0x49, 0xec, 0xb1, 0x1b, 0xc3, 0x4d, 0x32, 0x9a, 0xe3, 0xf7, - 0xb8, 0x1b, 0x43, 0x3d, 0xb2, 0x58, 0x07, 0x69, 0xb4, 0x41, 0x46, 0xf3, 0x7d, 0x89, 0xf1, 0xcd, - 0x8d, 0xf4, 0xc7, 0xe2, 0x8b, 0x70, 0x6a, 0x7c, 0x73, 0x8c, 0x66, 0x7d, 0xed, 0x83, 0xa1, 0xd7, - 0x99, 0x70, 0x6f, 0x2c, 0xee, 0x05, 0x55, 0x36, 0xdc, 0x18, 0xa3, 0x69, 0x5f, 0xff, 0x60, 0xb0, - 0xd0, 0x86, 0xfb, 0x62, 0xb1, 0x04, 0x10, 0xf4, 0xa4, 0x68, 0xae, 0x37, 0x18, 0x57, 0x08, 0x84, - 0xb7, 0x06, 0x6b, 0x49, 0xd1, 0xf8, 0x2f, 0xf3, 0xad, 0xc1, 0x10, 0x78, 0x6b, 0xf0, 0x6e, 0x14, - 0x8d, 0x7e, 0x93, 0x6f, 0x0d, 0x0e, 0x29, 0x5e, 0x83, 0x94, 0xd5, 0x37, 0x4d, 0x9c, 0x5b, 0xd2, - 0xc3, 0x3f, 0x23, 0x92, 0xff, 0xed, 0x43, 0x06, 0xe6, 0x80, 0xe2, 0x3a, 0x24, 0x51, 0xb7, 0x89, - 0x5a, 0x51, 0xc8, 0x7f, 0xff, 0x90, 0xd7, 0x13, 0x6c, 0x5d, 0x7c, 0x01, 0x80, 0xbe, 0x4c, 0x93, - 0x5f, 0x89, 0x22, 0xb0, 0xff, 0xf1, 0x21, 0xfb, 0x42, 0x21, 0x80, 0x04, 0x04, 0xf4, 0x7b, 0x87, - 0x87, 0x13, 0xbc, 0x37, 0x48, 0x40, 0x5e, 0xc0, 0xaf, 0xc2, 0xcc, 0x6d, 0xd7, 0xb6, 0x3c, 0xad, - 0x13, 0x85, 0xfe, 0x4f, 0x86, 0xe6, 0xf6, 0x38, 0x60, 0x5d, 0xdb, 0x41, 0x9e, 0xd6, 0x71, 0xa3, - 0xb0, 0xff, 0xc5, 0xb0, 0x3e, 0x00, 0x83, 0x75, 0xcd, 0xf5, 0x26, 0x79, 0xee, 0xff, 0xe6, 0x60, - 0x0e, 0xc0, 0x4e, 0xe3, 0xff, 0xef, 0xa0, 0xc3, 0x28, 0xec, 0xfb, 0xdc, 0x69, 0x66, 0x5f, 0xfc, - 0x34, 0xa4, 0xf1, 0xbf, 0xf4, 0xab, 0x9d, 0x08, 0xf0, 0xff, 0x30, 0x70, 0x80, 0xc0, 0x77, 0x76, - 0xbd, 0x96, 0x67, 0x44, 0x07, 0xfb, 0x7f, 0xd9, 0x4a, 0x73, 0xfb, 0x62, 0x09, 0x32, 0xae, 0xd7, - 0x6a, 0xf5, 0xd9, 0x44, 0x13, 0x01, 0xff, 0xd1, 0x87, 0xfe, 0x4b, 0xae, 0x8f, 0xd9, 0x38, 0x3f, - 0xfe, 0xb0, 0x0e, 0xb6, 0xec, 0x2d, 0x9b, 0x1e, 0xd3, 0xc1, 0x6b, 0x49, 0x78, 0x54, 0xb7, 0xbb, - 0x4d, 0xdb, 0x5d, 0xa5, 0x05, 0xa5, 0x69, 0x7b, 0x07, 0xab, 0xb6, 0xc5, 0xcc, 0xa5, 0xb8, 0x6d, - 0xa1, 0xc5, 0x93, 0x9d, 0xcb, 0x2d, 0x9d, 0x81, 0x64, 0xa3, 0xdf, 0x6c, 0x1e, 0x4a, 0x22, 0xc4, - 0xdd, 0x7e, 0x93, 0x7d, 0x58, 0x82, 0xff, 0x5d, 0xfa, 0x7e, 0x1c, 0x32, 0x0d, 0xad, 0xdb, 0x33, - 0x51, 0xcd, 0x42, 0xb5, 0xb6, 0x24, 0xc3, 0x34, 0x79, 0x8c, 0xe7, 0x89, 0x91, 0x70, 0x63, 0x4a, - 0x61, 0xd7, 0xbe, 0x66, 0x8d, 0x1c, 0x56, 0xc6, 0x7c, 0xcd, 0x9a, 0xaf, 0xb9, 0x40, 0xcf, 0x2a, - 0x7d, 0xcd, 0x05, 0x5f, 0x73, 0x91, 0x9c, 0x58, 0xc6, 0x7d, 0xcd, 0x45, 0x5f, 0xb3, 0x4e, 0x4e, - 0xe4, 0x67, 0x7d, 0xcd, 0xba, 0xaf, 0xb9, 0x44, 0xce, 0xe0, 0x13, 0xbe, 0xe6, 0x92, 0xaf, 0xb9, - 0x4c, 0x8e, 0xde, 0xe7, 0x7c, 0xcd, 0x65, 0x5f, 0x73, 0x85, 0x1c, 0xb7, 0x4b, 0xbe, 0xe6, 0x8a, - 0xaf, 0xb9, 0x4a, 0xbe, 0x1f, 0x99, 0xf1, 0x35, 0x57, 0xa5, 0x45, 0x98, 0xa1, 0x4f, 0xf6, 0x1c, - 0xf9, 0x4d, 0x36, 0x7f, 0x63, 0x4a, 0xe1, 0x82, 0x40, 0xf7, 0x3c, 0xf9, 0x46, 0x64, 0x3a, 0xd0, - 0x3d, 0x1f, 0xe8, 0xd6, 0xc8, 0x97, 0xd2, 0x62, 0xa0, 0x5b, 0x0b, 0x74, 0x17, 0xe4, 0x59, 0xbc, - 0xfa, 0x81, 0xee, 0x42, 0xa0, 0xbb, 0x28, 0xe7, 0x70, 0xfc, 0x03, 0xdd, 0xc5, 0x40, 0xb7, 0x2e, - 0xe7, 0xcf, 0x09, 0xcb, 0xd9, 0x40, 0xb7, 0x2e, 0x3d, 0x0b, 0x19, 0xb7, 0xdf, 0x54, 0xd9, 0x27, - 0x04, 0xe4, 0x5b, 0x94, 0xcc, 0x1a, 0xac, 0xe0, 0x8c, 0x20, 0x8b, 0x7a, 0x63, 0x4a, 0x01, 0xb7, - 0xdf, 0x64, 0xe5, 0x71, 0x23, 0x0b, 0xe4, 0x34, 0x41, 0x25, 0x5f, 0x60, 0x6e, 0x6c, 0xbe, 0xfd, - 0xa0, 0x30, 0xf5, 0xdd, 0x07, 0x85, 0xa9, 0x7f, 0x79, 0x50, 0x98, 0x7a, 0xe7, 0x41, 0x41, 0x78, - 0xff, 0x41, 0x41, 0xf8, 0xf1, 0x83, 0x82, 0x70, 0xff, 0xa8, 0x20, 0x7c, 0xf5, 0xa8, 0x20, 0x7c, - 0xe3, 0xa8, 0x20, 0x7c, 0xfb, 0xa8, 0x20, 0xbc, 0x7d, 0x54, 0x98, 0xfa, 0xee, 0x51, 0x61, 0xea, - 0x9d, 0xa3, 0x82, 0xf0, 0xc3, 0xa3, 0xc2, 0xd4, 0xfb, 0x47, 0x05, 0xe1, 0xc7, 0x47, 0x05, 0xe1, - 0xfe, 0x0f, 0x0a, 0x42, 0x73, 0x9a, 0xa4, 0xd1, 0x85, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xb0, - 0x56, 0x8f, 0x6b, 0xf8, 0x30, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Subby) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Subby") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Subby but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Subby but is not nil && this == nil") - } - if this.Sub != that1.Sub { - return fmt.Errorf("Sub this(%v) Not Equal that(%v)", this.Sub, that1.Sub) - } - return nil -} -func (this *Subby) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Sub != that1.Sub { - return false - } - return true -} -func (this *SampleOneOf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf) - if !ok { - that2, ok := that.(SampleOneOf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf but is not nil && this == nil") - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return fmt.Errorf("this.TestOneof != nil && that1.TestOneof == nil") - } - } else if this.TestOneof == nil { - return fmt.Errorf("this.TestOneof == nil && that1.TestOneof != nil") - } else if err := this.TestOneof.VerboseEqual(that1.TestOneof); err != nil { - return err - } - return nil -} -func (this *SampleOneOf_Field1) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field1) - if !ok { - that2, ok := that.(SampleOneOf_Field1) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field1") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field1 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field1 but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *SampleOneOf_Field2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field2) - if !ok { - that2, ok := that.(SampleOneOf_Field2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field2 but is not nil && this == nil") - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - return nil -} -func (this *SampleOneOf_Field3) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field3) - if !ok { - that2, ok := that.(SampleOneOf_Field3) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field3") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field3 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field3 but is not nil && this == nil") - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - return nil -} -func (this *SampleOneOf_Field4) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field4) - if !ok { - that2, ok := that.(SampleOneOf_Field4) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field4") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field4 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field4 but is not nil && this == nil") - } - if this.Field4 != that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - return nil -} -func (this *SampleOneOf_Field5) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field5) - if !ok { - that2, ok := that.(SampleOneOf_Field5) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field5") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field5 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field5 but is not nil && this == nil") - } - if this.Field5 != that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - return nil -} -func (this *SampleOneOf_Field6) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field6) - if !ok { - that2, ok := that.(SampleOneOf_Field6) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field6") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field6 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field6 but is not nil && this == nil") - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - return nil -} -func (this *SampleOneOf_Field7) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field7) - if !ok { - that2, ok := that.(SampleOneOf_Field7) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field7") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field7 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field7 but is not nil && this == nil") - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - return nil -} -func (this *SampleOneOf_Field8) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field8) - if !ok { - that2, ok := that.(SampleOneOf_Field8) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field8") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field8 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field8 but is not nil && this == nil") - } - if this.Field8 != that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - return nil -} -func (this *SampleOneOf_Field9) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field9) - if !ok { - that2, ok := that.(SampleOneOf_Field9) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field9") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field9 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field9 but is not nil && this == nil") - } - if this.Field9 != that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - return nil -} -func (this *SampleOneOf_Field10) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field10) - if !ok { - that2, ok := that.(SampleOneOf_Field10) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field10") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field10 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field10 but is not nil && this == nil") - } - if this.Field10 != that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - return nil -} -func (this *SampleOneOf_Field11) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field11) - if !ok { - that2, ok := that.(SampleOneOf_Field11) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field11") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field11 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field11 but is not nil && this == nil") - } - if this.Field11 != that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - return nil -} -func (this *SampleOneOf_Field12) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field12) - if !ok { - that2, ok := that.(SampleOneOf_Field12) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field12") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field12 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field12 but is not nil && this == nil") - } - if this.Field12 != that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - return nil -} -func (this *SampleOneOf_Field13) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field13) - if !ok { - that2, ok := that.(SampleOneOf_Field13) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field13") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field13 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field13 but is not nil && this == nil") - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - return nil -} -func (this *SampleOneOf_Field14) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field14) - if !ok { - that2, ok := that.(SampleOneOf_Field14) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field14") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field14 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field14 but is not nil && this == nil") - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - return nil -} -func (this *SampleOneOf_Field15) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field15) - if !ok { - that2, ok := that.(SampleOneOf_Field15) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field15") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field15 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field15 but is not nil && this == nil") - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - return nil -} -func (this *SampleOneOf_SubMessage) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_SubMessage) - if !ok { - that2, ok := that.(SampleOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_SubMessage") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_SubMessage but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_SubMessage but is not nil && this == nil") - } - if !this.SubMessage.Equal(that1.SubMessage) { - return fmt.Errorf("SubMessage this(%v) Not Equal that(%v)", this.SubMessage, that1.SubMessage) - } - return nil -} -func (this *SampleOneOf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf) - if !ok { - that2, ok := that.(SampleOneOf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return false - } - } else if this.TestOneof == nil { - return false - } else if !this.TestOneof.Equal(that1.TestOneof) { - return false - } - return true -} -func (this *SampleOneOf_Field1) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field1) - if !ok { - that2, ok := that.(SampleOneOf_Field1) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - return true -} -func (this *SampleOneOf_Field2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field2) - if !ok { - that2, ok := that.(SampleOneOf_Field2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != that1.Field2 { - return false - } - return true -} -func (this *SampleOneOf_Field3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field3) - if !ok { - that2, ok := that.(SampleOneOf_Field3) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field3 != that1.Field3 { - return false - } - return true -} -func (this *SampleOneOf_Field4) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field4) - if !ok { - that2, ok := that.(SampleOneOf_Field4) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field4 != that1.Field4 { - return false - } - return true -} -func (this *SampleOneOf_Field5) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field5) - if !ok { - that2, ok := that.(SampleOneOf_Field5) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field5 != that1.Field5 { - return false - } - return true -} -func (this *SampleOneOf_Field6) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field6) - if !ok { - that2, ok := that.(SampleOneOf_Field6) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field6 != that1.Field6 { - return false - } - return true -} -func (this *SampleOneOf_Field7) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field7) - if !ok { - that2, ok := that.(SampleOneOf_Field7) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field7 != that1.Field7 { - return false - } - return true -} -func (this *SampleOneOf_Field8) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field8) - if !ok { - that2, ok := that.(SampleOneOf_Field8) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field8 != that1.Field8 { - return false - } - return true -} -func (this *SampleOneOf_Field9) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field9) - if !ok { - that2, ok := that.(SampleOneOf_Field9) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field9 != that1.Field9 { - return false - } - return true -} -func (this *SampleOneOf_Field10) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field10) - if !ok { - that2, ok := that.(SampleOneOf_Field10) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field10 != that1.Field10 { - return false - } - return true -} -func (this *SampleOneOf_Field11) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field11) - if !ok { - that2, ok := that.(SampleOneOf_Field11) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field11 != that1.Field11 { - return false - } - return true -} -func (this *SampleOneOf_Field12) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field12) - if !ok { - that2, ok := that.(SampleOneOf_Field12) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field12 != that1.Field12 { - return false - } - return true -} -func (this *SampleOneOf_Field13) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field13) - if !ok { - that2, ok := that.(SampleOneOf_Field13) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field13 != that1.Field13 { - return false - } - return true -} -func (this *SampleOneOf_Field14) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field14) - if !ok { - that2, ok := that.(SampleOneOf_Field14) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field14 != that1.Field14 { - return false - } - return true -} -func (this *SampleOneOf_Field15) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field15) - if !ok { - that2, ok := that.(SampleOneOf_Field15) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - return true -} -func (this *SampleOneOf_SubMessage) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_SubMessage) - if !ok { - that2, ok := that.(SampleOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.SubMessage.Equal(that1.SubMessage) { - return false - } - return true -} -func (this *Subby) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&one.Subby{") - s = append(s, "Sub: "+fmt.Sprintf("%#v", this.Sub)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *SampleOneOf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&one.SampleOneOf{") - if this.TestOneof != nil { - s = append(s, "TestOneof: "+fmt.Sprintf("%#v", this.TestOneof)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *SampleOneOf_Field1) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field1{` + - `Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field2{` + - `Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field3) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field3{` + - `Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field4) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field4{` + - `Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field5) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field5{` + - `Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field6) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field6{` + - `Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field7) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field7{` + - `Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field8) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field8{` + - `Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field9) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field9{` + - `Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field10) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field10{` + - `Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field11) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field11{` + - `Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field12) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field12{` + - `Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field13) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field13{` + - `Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field14) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field14{` + - `Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field15) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field15{` + - `Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ") - return s -} -func (this *SampleOneOf_SubMessage) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_SubMessage{` + - `SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ") - return s -} -func valueToGoStringOne(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedSubby(r randyOne, easy bool) *Subby { - this := &Subby{} - this.Sub = string(randStringOne(r)) - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedSampleOneOf(r randyOne, easy bool) *SampleOneOf { - this := &SampleOneOf{} - oneofNumber_TestOneof := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}[r.Intn(16)] - switch oneofNumber_TestOneof { - case 1: - this.TestOneof = NewPopulatedSampleOneOf_Field1(r, easy) - case 2: - this.TestOneof = NewPopulatedSampleOneOf_Field2(r, easy) - case 3: - this.TestOneof = NewPopulatedSampleOneOf_Field3(r, easy) - case 4: - this.TestOneof = NewPopulatedSampleOneOf_Field4(r, easy) - case 5: - this.TestOneof = NewPopulatedSampleOneOf_Field5(r, easy) - case 6: - this.TestOneof = NewPopulatedSampleOneOf_Field6(r, easy) - case 7: - this.TestOneof = NewPopulatedSampleOneOf_Field7(r, easy) - case 8: - this.TestOneof = NewPopulatedSampleOneOf_Field8(r, easy) - case 9: - this.TestOneof = NewPopulatedSampleOneOf_Field9(r, easy) - case 10: - this.TestOneof = NewPopulatedSampleOneOf_Field10(r, easy) - case 11: - this.TestOneof = NewPopulatedSampleOneOf_Field11(r, easy) - case 12: - this.TestOneof = NewPopulatedSampleOneOf_Field12(r, easy) - case 13: - this.TestOneof = NewPopulatedSampleOneOf_Field13(r, easy) - case 14: - this.TestOneof = NewPopulatedSampleOneOf_Field14(r, easy) - case 15: - this.TestOneof = NewPopulatedSampleOneOf_Field15(r, easy) - case 16: - this.TestOneof = NewPopulatedSampleOneOf_SubMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedSampleOneOf_Field1(r randyOne, easy bool) *SampleOneOf_Field1 { - this := &SampleOneOf_Field1{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field2(r randyOne, easy bool) *SampleOneOf_Field2 { - this := &SampleOneOf_Field2{} - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field3(r randyOne, easy bool) *SampleOneOf_Field3 { - this := &SampleOneOf_Field3{} - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field4(r randyOne, easy bool) *SampleOneOf_Field4 { - this := &SampleOneOf_Field4{} - this.Field4 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field5(r randyOne, easy bool) *SampleOneOf_Field5 { - this := &SampleOneOf_Field5{} - this.Field5 = uint32(r.Uint32()) - return this -} -func NewPopulatedSampleOneOf_Field6(r randyOne, easy bool) *SampleOneOf_Field6 { - this := &SampleOneOf_Field6{} - this.Field6 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedSampleOneOf_Field7(r randyOne, easy bool) *SampleOneOf_Field7 { - this := &SampleOneOf_Field7{} - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field8(r randyOne, easy bool) *SampleOneOf_Field8 { - this := &SampleOneOf_Field8{} - this.Field8 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field9(r randyOne, easy bool) *SampleOneOf_Field9 { - this := &SampleOneOf_Field9{} - this.Field9 = uint32(r.Uint32()) - return this -} -func NewPopulatedSampleOneOf_Field10(r randyOne, easy bool) *SampleOneOf_Field10 { - this := &SampleOneOf_Field10{} - this.Field10 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field11(r randyOne, easy bool) *SampleOneOf_Field11 { - this := &SampleOneOf_Field11{} - this.Field11 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedSampleOneOf_Field12(r randyOne, easy bool) *SampleOneOf_Field12 { - this := &SampleOneOf_Field12{} - this.Field12 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 { - this := &SampleOneOf_Field13{} - this.Field13 = bool(bool(r.Intn(2) == 0)) - return this -} -func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { - this := &SampleOneOf_Field14{} - this.Field14 = string(randStringOne(r)) - return this -} -func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { - this := &SampleOneOf_Field15{} - v1 := r.Intn(100) - this.Field15 = make([]byte, v1) - for i := 0; i < v1; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - return this -} -func NewPopulatedSampleOneOf_SubMessage(r randyOne, easy bool) *SampleOneOf_SubMessage { - this := &SampleOneOf_SubMessage{} - this.SubMessage = NewPopulatedSubby(r, easy) - return this -} - -type randyOne interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneOne(r randyOne) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringOne(r randyOne) string { - v2 := r.Intn(100) - tmps := make([]rune, v2) - for i := 0; i < v2; i++ { - tmps[i] = randUTF8RuneOne(r) - } - return string(tmps) -} -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldOne(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - v3 := r.Int63() - if r.Intn(2) == 0 { - v3 *= -1 - } - dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) - case 1: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Subby) Size() (n int) { - var l int - _ = l - l = len(m.Sub) - if l > 0 { - n += 1 + l + sovOne(uint64(l)) - } - return n -} - -func (m *SampleOneOf) Size() (n int) { - var l int - _ = l - if m.TestOneof != nil { - n += m.TestOneof.Size() - } - return n -} - -func (m *SampleOneOf_Field1) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *SampleOneOf_Field2) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *SampleOneOf_Field3) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field3)) - return n -} -func (m *SampleOneOf_Field4) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field4)) - return n -} -func (m *SampleOneOf_Field5) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field5)) - return n -} -func (m *SampleOneOf_Field6) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field6)) - return n -} -func (m *SampleOneOf_Field7) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field7)) - return n -} -func (m *SampleOneOf_Field8) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field8)) - return n -} -func (m *SampleOneOf_Field9) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *SampleOneOf_Field10) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *SampleOneOf_Field11) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *SampleOneOf_Field12) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *SampleOneOf_Field13) Size() (n int) { - var l int - _ = l - n += 2 - return n -} -func (m *SampleOneOf_Field14) Size() (n int) { - var l int - _ = l - l = len(m.Field14) - n += 1 + l + sovOne(uint64(l)) - return n -} -func (m *SampleOneOf_Field15) Size() (n int) { - var l int - _ = l - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovOne(uint64(l)) - } - return n -} -func (m *SampleOneOf_SubMessage) Size() (n int) { - var l int - _ = l - if m.SubMessage != nil { - l = m.SubMessage.Size() - n += 2 + l + sovOne(uint64(l)) - } - return n -} - -func sovOne(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozOne(x uint64) (n int) { - return sovOne(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Subby) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Subby{`, - `Sub:` + fmt.Sprintf("%v", this.Sub) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf{`, - `TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field1) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field1{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field2{`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field3{`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field4) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field4{`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field5) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field5{`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field6) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field6{`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field7) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field7{`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field8) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field8{`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field9) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field9{`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field10) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field10{`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field11) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field11{`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field12) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field12{`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field13) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field13{`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field14) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field14{`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field15) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field15{`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_SubMessage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_SubMessage{`, - `SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringOne(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Subby) 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 *Subby) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Sub) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Sub))) - i += copy(dAtA[i:], m.Sub) - } - return i, nil -} - -func (m *SampleOneOf) 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 *SampleOneOf) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn1 - } - return i, nil -} - -func (m *SampleOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - return i, nil -} -func (m *SampleOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - return i, nil -} -func (m *SampleOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x18 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field3)) - return i, nil -} -func (m *SampleOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x20 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field4)) - return i, nil -} -func (m *SampleOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x28 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field5)) - return i, nil -} -func (m *SampleOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x30 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field6)) - return i, nil -} -func (m *SampleOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x38 - i++ - i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - return i, nil -} -func (m *SampleOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x40 - i++ - i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - return i, nil -} -func (m *SampleOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 - i += 4 - return i, nil -} -func (m *SampleOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 - i += 4 - return i, nil -} -func (m *SampleOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 - i += 8 - return i, nil -} -func (m *SampleOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 - i += 8 - return i, nil -} -func (m *SampleOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x68 - i++ - if m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - return i, nil -} -func (m *SampleOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x72 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) - i += copy(dAtA[i:], m.Field14) - return i, nil -} -func (m *SampleOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - return i, nil -} -func (m *SampleOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.SubMessage != nil { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - return i, nil -} -func encodeFixed64One(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 encodeFixed32One(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 encodeVarintOne(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 *Subby) 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 ErrIntOverflowOneUnsafe - } - 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: Subby: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Subby: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sub", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sub = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SampleOneOf) 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 ErrIntOverflowOneUnsafe - } - 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: SampleOneOf: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SampleOneOf: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &SampleOneOf_Field1{v} - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &SampleOneOf_Field2{v} - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &SampleOneOf_Field3{v} - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &SampleOneOf_Field4{v} - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &SampleOneOf_Field5{v} - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &SampleOneOf_Field6{v} - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.TestOneof = &SampleOneOf_Field7{v} - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.TestOneof = &SampleOneOf_Field8{int64(v)} - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &SampleOneOf_Field9{v} - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &SampleOneOf_Field10{v} - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &SampleOneOf_Field11{v} - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &SampleOneOf_Field12{v} - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.TestOneof = &SampleOneOf_Field13{b} - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TestOneof = &SampleOneOf_Field14{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := make([]byte, postIndex-iNdEx) - copy(v, dAtA[iNdEx:postIndex]) - m.TestOneof = &SampleOneOf_Field15{v} - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubMessage", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Subby{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.TestOneof = &SampleOneOf_SubMessage{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipOneUnsafe(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, ErrIntOverflowOneUnsafe - } - 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, ErrIntOverflowOneUnsafe - } - 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, ErrIntOverflowOneUnsafe - } - 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, ErrInvalidLengthOneUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowOneUnsafe - } - 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 := skipOneUnsafe(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 ( - ErrInvalidLengthOneUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowOneUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeboth/one.proto", fileDescriptorOne) } - -var fileDescriptorOne = []byte{ - // 408 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31, - 0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0x4a, 0xa5, 0x27, 0x8b, 0xc9, - 0x0b, 0x49, 0x73, 0x97, 0xf0, 0x63, 0x45, 0x55, 0x95, 0xa5, 0x42, 0x0a, 0x7f, 0x00, 0x8a, 0xa9, - 0x13, 0x90, 0xb8, 0x33, 0xea, 0xdd, 0x0d, 0xdd, 0xf8, 0x73, 0x3a, 0x76, 0xec, 0x9f, 0xc0, 0xc8, - 0xd8, 0xa1, 0x03, 0xe7, 0x2e, 0x1d, 0x19, 0x33, 0x56, 0xb9, 0x94, 0xe7, 0xed, 0x7d, 0xfd, 0xb1, - 0x07, 0xdb, 0x5f, 0xf9, 0xfe, 0xda, 0x65, 0xc6, 0x15, 0xc3, 0x2a, 0x2f, 0xe6, 0x0b, 0x6b, 0x5c, - 0x79, 0x33, 0x74, 0xb9, 0x1d, 0xdc, 0x7f, 0x75, 0xa5, 0x8b, 0x23, 0x97, 0xdb, 0x83, 0xa3, 0xe5, - 0x6d, 0x79, 0x53, 0x99, 0xc1, 0xb5, 0xcb, 0x86, 0x4b, 0xb7, 0x74, 0xc3, 0xc6, 0x4c, 0xb5, 0x68, - 0x52, 0x13, 0x9a, 0x69, 0x73, 0xe6, 0xf0, 0x9d, 0x6c, 0x5d, 0x56, 0xc6, 0x7c, 0x8b, 0xfb, 0x32, - 0x2a, 0x2a, 0x83, 0xa0, 0x40, 0xef, 0xce, 0xd6, 0xe3, 0xe1, 0xef, 0x48, 0x76, 0x2f, 0xe7, 0xd9, - 0xfd, 0x9d, 0xbd, 0xc8, 0xed, 0xc5, 0x22, 0x46, 0xd9, 0xfe, 0x74, 0x6b, 0xef, 0xbe, 0x8c, 0x9a, - 0x4d, 0x30, 0x15, 0xb3, 0xff, 0x99, 0x25, 0xc1, 0x2d, 0x05, 0x7a, 0x8b, 0x25, 0x61, 0x49, 0x31, - 0x52, 0xa0, 0x5b, 0x2c, 0x29, 0xcb, 0x18, 0xb7, 0x15, 0xe8, 0x88, 0x65, 0xcc, 0x32, 0xc1, 0x96, - 0x02, 0xbd, 0xc7, 0x32, 0x61, 0x39, 0xc6, 0xb6, 0x02, 0xbd, 0xcd, 0x72, 0xcc, 0x72, 0x82, 0x1d, - 0x05, 0xfa, 0x2d, 0xcb, 0x09, 0xcb, 0x29, 0xee, 0x28, 0xd0, 0x31, 0xcb, 0x29, 0xcb, 0x19, 0xee, - 0x2a, 0xd0, 0x1d, 0x96, 0xb3, 0xf8, 0x40, 0x76, 0x36, 0x37, 0xfb, 0x80, 0x52, 0x81, 0xde, 0x9f, - 0x8a, 0xd9, 0xeb, 0x42, 0xb0, 0x11, 0x76, 0x15, 0xe8, 0x76, 0xb0, 0x51, 0xb0, 0x04, 0x7b, 0x0a, - 0x74, 0x3f, 0x58, 0x12, 0x2c, 0xc5, 0x3d, 0x05, 0x7a, 0x27, 0x58, 0x1a, 0x6c, 0x8c, 0x6f, 0xd6, - 0xef, 0x1f, 0x6c, 0x1c, 0x6c, 0x82, 0xfb, 0x0a, 0x74, 0x2f, 0xd8, 0x24, 0x3e, 0x92, 0xdd, 0xa2, - 0x32, 0x57, 0x99, 0x2d, 0x8a, 0xf9, 0xd2, 0x62, 0x5f, 0x81, 0xee, 0x26, 0x72, 0xb0, 0x6e, 0x44, - 0xf3, 0xa9, 0x53, 0x31, 0x93, 0x45, 0x65, 0x3e, 0x6f, 0xfc, 0xbc, 0x27, 0x65, 0x69, 0x8b, 0xf2, - 0xca, 0xe5, 0xd6, 0x2d, 0xce, 0x3f, 0x3e, 0xd6, 0x24, 0x9e, 0x6a, 0x12, 0xbf, 0x6a, 0x12, 0xcf, - 0x35, 0xc1, 0x4b, 0x4d, 0xb0, 0xaa, 0x09, 0x1e, 0x3c, 0xc1, 0x77, 0x4f, 0xf0, 0xc3, 0x13, 0xfc, - 0xf4, 0x04, 0x8f, 0x9e, 0xc4, 0x93, 0x27, 0xf1, 0xec, 0x09, 0xfe, 0x7a, 0x12, 0x2f, 0x9e, 0x60, - 0xe5, 0x09, 0x1e, 0xfe, 0x10, 0x98, 0x76, 0x53, 0xa3, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x49, 0x11, 0x52, 0x0b, 0x99, 0x02, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.proto deleted file mode 100644 index 8c161fbbc..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/one.proto +++ /dev/null @@ -1,82 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package one; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message Subby { - string sub = 1; -} - -message SampleOneOf { - oneof test_oneof { - double Field1 = 1; - float Field2 = 2; - int32 Field3 = 3; - int64 Field4 = 4; - uint32 Field5 = 5; - uint64 Field6 = 6; - sint32 Field7 = 7; - sint64 Field8 = 8; - fixed32 Field9 = 9; - sfixed32 Field10 = 10; - fixed64 Field11 = 11; - sfixed64 Field12 = 12; - bool Field13 = 13; - string Field14 = 14; - bytes Field15 = 15; - Subby sub_message = 16; - } -} - - diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/onepb_test.go deleted file mode 100644 index 1951ceae5..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeboth/onepb_test.go +++ /dev/null @@ -1,414 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/one.proto -// DO NOT EDIT! - -/* -Package one is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeboth/one.proto - -It has these top-level messages: - Subby - SampleOneOf -*/ -package one - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestSubbyProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestSubbyMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSampleOneOfProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestSampleOneOfMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestSampleOneOfJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &SampleOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestSubbyProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSampleOneOfProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSampleOneOfProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneDescription(t *testing.T) { - OneDescription() -} -func TestSubbyVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestSampleOneOfVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestSampleOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSampleOneOf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestSubbySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestSampleOneOfSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestSampleOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSampleOneOf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.pb.go deleted file mode 100644 index 79eb41fa7..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/one.pb.go +++ /dev/null @@ -1,2860 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/one.proto -// DO NOT EDIT! - -/* -Package one is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/one.proto - -It has these top-level messages: - Subby - SampleOneOf -*/ -package one - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" - -import unsafe "unsafe" - -// 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 - -type Subby struct { - Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` -} - -func (m *Subby) Reset() { *m = Subby{} } -func (*Subby) ProtoMessage() {} -func (*Subby) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{0} } - -type SampleOneOf struct { - // Types that are valid to be assigned to TestOneof: - // *SampleOneOf_Field1 - // *SampleOneOf_Field2 - // *SampleOneOf_Field3 - // *SampleOneOf_Field4 - // *SampleOneOf_Field5 - // *SampleOneOf_Field6 - // *SampleOneOf_Field7 - // *SampleOneOf_Field8 - // *SampleOneOf_Field9 - // *SampleOneOf_Field10 - // *SampleOneOf_Field11 - // *SampleOneOf_Field12 - // *SampleOneOf_Field13 - // *SampleOneOf_Field14 - // *SampleOneOf_Field15 - // *SampleOneOf_SubMessage - TestOneof isSampleOneOf_TestOneof `protobuf_oneof:"test_oneof"` -} - -func (m *SampleOneOf) Reset() { *m = SampleOneOf{} } -func (*SampleOneOf) ProtoMessage() {} -func (*SampleOneOf) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{1} } - -type isSampleOneOf_TestOneof interface { - isSampleOneOf_TestOneof() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` -} -type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` -} -type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` -} -type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` -} -type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` -} -type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` -} -type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` -} -type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` -} -type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` -} -type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` -} -type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` -} -type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` -} -type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` -} -type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` -} -type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` -} -type SampleOneOf_SubMessage struct { - SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` -} - -func (*SampleOneOf_Field1) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field2) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field3) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field4) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field5) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field6) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field7) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field8) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field9) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field10) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field11) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field12) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field13) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field14) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field15) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_SubMessage) isSampleOneOf_TestOneof() {} - -func (m *SampleOneOf) GetTestOneof() isSampleOneOf_TestOneof { - if m != nil { - return m.TestOneof - } - return nil -} - -func (m *SampleOneOf) GetField1() float64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field1); ok { - return x.Field1 - } - return 0 -} - -func (m *SampleOneOf) GetField2() float32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field2); ok { - return x.Field2 - } - return 0 -} - -func (m *SampleOneOf) GetField3() int32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field3); ok { - return x.Field3 - } - return 0 -} - -func (m *SampleOneOf) GetField4() int64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field4); ok { - return x.Field4 - } - return 0 -} - -func (m *SampleOneOf) GetField5() uint32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field5); ok { - return x.Field5 - } - return 0 -} - -func (m *SampleOneOf) GetField6() uint64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field6); ok { - return x.Field6 - } - return 0 -} - -func (m *SampleOneOf) GetField7() int32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field7); ok { - return x.Field7 - } - return 0 -} - -func (m *SampleOneOf) GetField8() int64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field8); ok { - return x.Field8 - } - return 0 -} - -func (m *SampleOneOf) GetField9() uint32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field9); ok { - return x.Field9 - } - return 0 -} - -func (m *SampleOneOf) GetField10() int32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field10); ok { - return x.Field10 - } - return 0 -} - -func (m *SampleOneOf) GetField11() uint64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field11); ok { - return x.Field11 - } - return 0 -} - -func (m *SampleOneOf) GetField12() int64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field12); ok { - return x.Field12 - } - return 0 -} - -func (m *SampleOneOf) GetField13() bool { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field13); ok { - return x.Field13 - } - return false -} - -func (m *SampleOneOf) GetField14() string { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field14); ok { - return x.Field14 - } - return "" -} - -func (m *SampleOneOf) GetField15() []byte { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field15); ok { - return x.Field15 - } - return nil -} - -func (m *SampleOneOf) GetSubMessage() *Subby { - if x, ok := m.GetTestOneof().(*SampleOneOf_SubMessage); ok { - return x.SubMessage - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*SampleOneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _SampleOneOf_OneofMarshaler, _SampleOneOf_OneofUnmarshaler, _SampleOneOf_OneofSizer, []interface{}{ - (*SampleOneOf_Field1)(nil), - (*SampleOneOf_Field2)(nil), - (*SampleOneOf_Field3)(nil), - (*SampleOneOf_Field4)(nil), - (*SampleOneOf_Field5)(nil), - (*SampleOneOf_Field6)(nil), - (*SampleOneOf_Field7)(nil), - (*SampleOneOf_Field8)(nil), - (*SampleOneOf_Field9)(nil), - (*SampleOneOf_Field10)(nil), - (*SampleOneOf_Field11)(nil), - (*SampleOneOf_Field12)(nil), - (*SampleOneOf_Field13)(nil), - (*SampleOneOf_Field14)(nil), - (*SampleOneOf_Field15)(nil), - (*SampleOneOf_SubMessage)(nil), - } -} - -func _SampleOneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*SampleOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *SampleOneOf_Field1: - _ = b.EncodeVarint(1<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.Field1)) - case *SampleOneOf_Field2: - _ = b.EncodeVarint(2<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2))) - case *SampleOneOf_Field3: - _ = b.EncodeVarint(3<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field3)) - case *SampleOneOf_Field4: - _ = b.EncodeVarint(4<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field4)) - case *SampleOneOf_Field5: - _ = b.EncodeVarint(5<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field5)) - case *SampleOneOf_Field6: - _ = b.EncodeVarint(6<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field6)) - case *SampleOneOf_Field7: - _ = b.EncodeVarint(7<<3 | proto.WireVarint) - _ = b.EncodeZigzag32(uint64(x.Field7)) - case *SampleOneOf_Field8: - _ = b.EncodeVarint(8<<3 | proto.WireVarint) - _ = b.EncodeZigzag64(uint64(x.Field8)) - case *SampleOneOf_Field9: - _ = b.EncodeVarint(9<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field9)) - case *SampleOneOf_Field10: - _ = b.EncodeVarint(10<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field10)) - case *SampleOneOf_Field11: - _ = b.EncodeVarint(11<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field11)) - case *SampleOneOf_Field12: - _ = b.EncodeVarint(12<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field12)) - case *SampleOneOf_Field13: - t := uint64(0) - if x.Field13 { - t = 1 - } - _ = b.EncodeVarint(13<<3 | proto.WireVarint) - _ = b.EncodeVarint(t) - case *SampleOneOf_Field14: - _ = b.EncodeVarint(14<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Field14) - case *SampleOneOf_Field15: - _ = b.EncodeVarint(15<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Field15) - case *SampleOneOf_SubMessage: - _ = b.EncodeVarint(16<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.SubMessage); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("SampleOneOf.TestOneof has unexpected type %T", x) - } - return nil -} - -func _SampleOneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*SampleOneOf) - switch tag { - case 1: // test_oneof.Field1 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &SampleOneOf_Field1{math.Float64frombits(x)} - return true, err - case 2: // test_oneof.Field2 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &SampleOneOf_Field2{math.Float32frombits(uint32(x))} - return true, err - case 3: // test_oneof.Field3 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field3{int32(x)} - return true, err - case 4: // test_oneof.Field4 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field4{int64(x)} - return true, err - case 5: // test_oneof.Field5 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field5{uint32(x)} - return true, err - case 6: // test_oneof.Field6 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field6{x} - return true, err - case 7: // test_oneof.Field7 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag32() - m.TestOneof = &SampleOneOf_Field7{int32(x)} - return true, err - case 8: // test_oneof.Field8 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag64() - m.TestOneof = &SampleOneOf_Field8{int64(x)} - return true, err - case 9: // test_oneof.Field9 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &SampleOneOf_Field9{uint32(x)} - return true, err - case 10: // test_oneof.Field10 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &SampleOneOf_Field10{int32(x)} - return true, err - case 11: // test_oneof.Field11 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &SampleOneOf_Field11{x} - return true, err - case 12: // test_oneof.Field12 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &SampleOneOf_Field12{int64(x)} - return true, err - case 13: // test_oneof.Field13 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field13{x != 0} - return true, err - case 14: // test_oneof.Field14 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.TestOneof = &SampleOneOf_Field14{x} - return true, err - case 15: // test_oneof.Field15 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.TestOneof = &SampleOneOf_Field15{x} - return true, err - case 16: // test_oneof.sub_message - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Subby) - err := b.DecodeMessage(msg) - m.TestOneof = &SampleOneOf_SubMessage{msg} - return true, err - default: - return false, nil - } -} - -func _SampleOneOf_OneofSizer(msg proto.Message) (n int) { - m := msg.(*SampleOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *SampleOneOf_Field1: - n += proto.SizeVarint(1<<3 | proto.WireFixed64) - n += 8 - case *SampleOneOf_Field2: - n += proto.SizeVarint(2<<3 | proto.WireFixed32) - n += 4 - case *SampleOneOf_Field3: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field3)) - case *SampleOneOf_Field4: - n += proto.SizeVarint(4<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field4)) - case *SampleOneOf_Field5: - n += proto.SizeVarint(5<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field5)) - case *SampleOneOf_Field6: - n += proto.SizeVarint(6<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field6)) - case *SampleOneOf_Field7: - n += proto.SizeVarint(7<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64((uint32(x.Field7) << 1) ^ uint32((int32(x.Field7) >> 31)))) - case *SampleOneOf_Field8: - n += proto.SizeVarint(8<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(uint64(x.Field8<<1) ^ uint64((int64(x.Field8) >> 63)))) - case *SampleOneOf_Field9: - n += proto.SizeVarint(9<<3 | proto.WireFixed32) - n += 4 - case *SampleOneOf_Field10: - n += proto.SizeVarint(10<<3 | proto.WireFixed32) - n += 4 - case *SampleOneOf_Field11: - n += proto.SizeVarint(11<<3 | proto.WireFixed64) - n += 8 - case *SampleOneOf_Field12: - n += proto.SizeVarint(12<<3 | proto.WireFixed64) - n += 8 - case *SampleOneOf_Field13: - n += proto.SizeVarint(13<<3 | proto.WireVarint) - n += 1 - case *SampleOneOf_Field14: - n += proto.SizeVarint(14<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field14))) - n += len(x.Field14) - case *SampleOneOf_Field15: - n += proto.SizeVarint(15<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field15))) - n += len(x.Field15) - case *SampleOneOf_SubMessage: - s := proto.Size(x.SubMessage) - n += proto.SizeVarint(16<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*Subby)(nil), "one.Subby") - proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf") -} -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 3862 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x84, 0x20, 0x79, 0x8d, 0x95, 0x63, 0xae, 0x56, 0xb1, - 0x63, 0xd9, 0xae, 0x25, 0x5b, 0xbb, 0xda, 0x0b, 0xb7, 0x89, 0x87, 0xa2, 0xb8, 0x5a, 0x6e, 0x25, - 0x91, 0x01, 0xa5, 0x78, 0x9d, 0x3e, 0x60, 0x40, 0xf0, 0x27, 0x85, 0x5d, 0x10, 0x60, 0x00, 0x70, - 0xd7, 0xf2, 0xd3, 0x76, 0xdc, 0xcb, 0x64, 0x3a, 0xbd, 0x77, 0xa6, 0x89, 0xeb, 0xb8, 0x6d, 0x66, - 0x5a, 0xa7, 0x49, 0x2f, 0x49, 0x2f, 0x69, 0xa6, 0x4f, 0x7d, 0x49, 0xeb, 0xa7, 0x4e, 0xf2, 0xd6, - 0x87, 0x3c, 0x78, 0x15, 0xcf, 0x34, 0x6d, 0xdd, 0xd6, 0x6d, 0x3c, 0xd3, 0xcc, 0xf8, 0xa5, 0xf3, - 0xdf, 0x00, 0xf0, 0xa2, 0x05, 0x95, 0x19, 0x27, 0x4f, 0x12, 0xce, 0x39, 0xdf, 0x87, 0x83, 0xf3, - 0x9f, 0xff, 0x9c, 0x83, 0x9f, 0x80, 0xef, 0x6f, 0xc0, 0x52, 0xc7, 0xb6, 0x3b, 0x26, 0x5a, 0xeb, - 0x39, 0xb6, 0x67, 0x37, 0xfb, 0xed, 0xb5, 0x16, 0x72, 0x75, 0xc7, 0xe8, 0x79, 0xb6, 0xb3, 0x4a, - 0x64, 0x52, 0x9e, 0x5a, 0xac, 0x72, 0x8b, 0xe5, 0x5d, 0x98, 0xbb, 0x6e, 0x98, 0x68, 0xcb, 0x37, - 0x6c, 0x20, 0x4f, 0xba, 0x02, 0x89, 0xb6, 0x61, 0x22, 0x59, 0x58, 0x8a, 0xaf, 0x64, 0xd6, 0x9f, - 0x58, 0x1d, 0x02, 0xad, 0x0e, 0x22, 0xea, 0x58, 0xac, 0x10, 0xc4, 0xf2, 0xbb, 0x09, 0x98, 0x1f, - 0xa3, 0x95, 0x24, 0x48, 0x58, 0x5a, 0x17, 0x33, 0x0a, 0x2b, 0x69, 0x85, 0xfc, 0x2f, 0xc9, 0x30, - 0xd3, 0xd3, 0xf4, 0x3b, 0x5a, 0x07, 0xc9, 0x31, 0x22, 0xe6, 0x97, 0x52, 0x01, 0xa0, 0x85, 0x7a, - 0xc8, 0x6a, 0x21, 0x4b, 0x3f, 0x92, 0xe3, 0x4b, 0xf1, 0x95, 0xb4, 0x12, 0x92, 0x48, 0xcf, 0xc2, - 0x5c, 0xaf, 0xdf, 0x34, 0x0d, 0x5d, 0x0d, 0x99, 0xc1, 0x52, 0x7c, 0x25, 0xa9, 0x88, 0x54, 0xb1, - 0x15, 0x18, 0x3f, 0x05, 0xf9, 0x7b, 0x48, 0xbb, 0x13, 0x36, 0xcd, 0x10, 0xd3, 0x1c, 0x16, 0x87, - 0x0c, 0xcb, 0x90, 0xed, 0x22, 0xd7, 0xd5, 0x3a, 0x48, 0xf5, 0x8e, 0x7a, 0x48, 0x4e, 0x90, 0xa7, - 0x5f, 0x1a, 0x79, 0xfa, 0xe1, 0x27, 0xcf, 0x30, 0xd4, 0xfe, 0x51, 0x0f, 0x49, 0x25, 0x48, 0x23, - 0xab, 0xdf, 0xa5, 0x0c, 0xc9, 0x13, 0xe2, 0x57, 0xb1, 0xfa, 0xdd, 0x61, 0x96, 0x14, 0x86, 0x31, - 0x8a, 0x19, 0x17, 0x39, 0x77, 0x0d, 0x1d, 0xc9, 0xd3, 0x84, 0xe0, 0xa9, 0x11, 0x82, 0x06, 0xd5, - 0x0f, 0x73, 0x70, 0x9c, 0x54, 0x86, 0x34, 0x7a, 0xc5, 0x43, 0x96, 0x6b, 0xd8, 0x96, 0x3c, 0x43, - 0x48, 0x9e, 0x1c, 0xb3, 0x8a, 0xc8, 0x6c, 0x0d, 0x53, 0x04, 0x38, 0xe9, 0x12, 0xcc, 0xd8, 0x3d, - 0xcf, 0xb0, 0x2d, 0x57, 0x4e, 0x2d, 0x09, 0x2b, 0x99, 0xf5, 0x8f, 0x8d, 0x4d, 0x84, 0x1a, 0xb5, - 0x51, 0xb8, 0xb1, 0x54, 0x05, 0xd1, 0xb5, 0xfb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, 0x21, 0xd5, 0xb0, - 0xda, 0xb6, 0x9c, 0x26, 0x04, 0xe7, 0x46, 0x1f, 0x84, 0x18, 0x96, 0xed, 0x16, 0xaa, 0x5a, 0x6d, - 0x5b, 0xc9, 0xb9, 0x03, 0xd7, 0xd2, 0x19, 0x98, 0x76, 0x8f, 0x2c, 0x4f, 0x7b, 0x45, 0xce, 0x92, - 0x0c, 0x61, 0x57, 0xcb, 0xff, 0x97, 0x84, 0xfc, 0x24, 0x29, 0x76, 0x0d, 0x92, 0x6d, 0xfc, 0x94, - 0x72, 0xec, 0x34, 0x31, 0xa0, 0x98, 0xc1, 0x20, 0x4e, 0xff, 0x98, 0x41, 0x2c, 0x41, 0xc6, 0x42, - 0xae, 0x87, 0x5a, 0x34, 0x23, 0xe2, 0x13, 0xe6, 0x14, 0x50, 0xd0, 0x68, 0x4a, 0x25, 0x7e, 0xac, - 0x94, 0xba, 0x05, 0x79, 0xdf, 0x25, 0xd5, 0xd1, 0xac, 0x0e, 0xcf, 0xcd, 0xb5, 0x28, 0x4f, 0x56, - 0x2b, 0x1c, 0xa7, 0x60, 0x98, 0x92, 0x43, 0x03, 0xd7, 0xd2, 0x16, 0x80, 0x6d, 0x21, 0xbb, 0xad, - 0xb6, 0x90, 0x6e, 0xca, 0xa9, 0x13, 0xa2, 0x54, 0xc3, 0x26, 0x23, 0x51, 0xb2, 0xa9, 0x54, 0x37, - 0xa5, 0xab, 0x41, 0xaa, 0xcd, 0x9c, 0x90, 0x29, 0xbb, 0x74, 0x93, 0x8d, 0x64, 0xdb, 0x01, 0xe4, - 0x1c, 0x84, 0xf3, 0x1e, 0xb5, 0xd8, 0x93, 0xa5, 0x89, 0x13, 0xab, 0x91, 0x4f, 0xa6, 0x30, 0x18, - 0x7d, 0xb0, 0x59, 0x27, 0x7c, 0x29, 0x7d, 0x1c, 0x7c, 0x81, 0x4a, 0xd2, 0x0a, 0x48, 0x15, 0xca, - 0x72, 0xe1, 0x9e, 0xd6, 0x45, 0x8b, 0x57, 0x20, 0x37, 0x18, 0x1e, 0x69, 0x01, 0x92, 0xae, 0xa7, - 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x91, 0x2a, 0x97, 0x54, - 0xf0, 0xbf, 0x8b, 0x97, 0x61, 0x76, 0xe0, 0xf6, 0x93, 0x02, 0x97, 0xbf, 0x30, 0x0d, 0x0b, 0xe3, - 0x72, 0x6e, 0x6c, 0xfa, 0x9f, 0x81, 0x69, 0xab, 0xdf, 0x6d, 0x22, 0x47, 0x8e, 0x13, 0x06, 0x76, - 0x25, 0x95, 0x20, 0x69, 0x6a, 0x4d, 0x64, 0xca, 0x89, 0x25, 0x61, 0x25, 0xb7, 0xfe, 0xec, 0x44, - 0x59, 0xbd, 0xba, 0x83, 0x21, 0x0a, 0x45, 0x4a, 0x9f, 0x82, 0x04, 0x2b, 0x71, 0x98, 0xe1, 0x99, - 0xc9, 0x18, 0x70, 0x2e, 0x2a, 0x04, 0x27, 0x3d, 0x06, 0x69, 0xfc, 0x97, 0xc6, 0x76, 0x9a, 0xf8, - 0x9c, 0xc2, 0x02, 0x1c, 0x57, 0x69, 0x11, 0x52, 0x24, 0xcd, 0x5a, 0x88, 0xb7, 0x06, 0xff, 0x1a, - 0x2f, 0x4c, 0x0b, 0xb5, 0xb5, 0xbe, 0xe9, 0xa9, 0x77, 0x35, 0xb3, 0x8f, 0x48, 0xc2, 0xa4, 0x95, - 0x2c, 0x13, 0x7e, 0x06, 0xcb, 0xa4, 0x73, 0x90, 0xa1, 0x59, 0x69, 0x58, 0x2d, 0xf4, 0x0a, 0xa9, - 0x3e, 0x49, 0x85, 0x26, 0x6a, 0x15, 0x4b, 0xf0, 0xed, 0x6f, 0xbb, 0xb6, 0xc5, 0x97, 0x96, 0xdc, - 0x02, 0x0b, 0xc8, 0xed, 0x2f, 0x0f, 0x17, 0xbe, 0xc7, 0xc7, 0x3f, 0xde, 0x70, 0x2e, 0x2e, 0x7f, - 0x33, 0x06, 0x09, 0xb2, 0xdf, 0xf2, 0x90, 0xd9, 0x7f, 0xb9, 0x5e, 0x51, 0xb7, 0x6a, 0x07, 0x9b, - 0x3b, 0x15, 0x51, 0x90, 0x72, 0x00, 0x44, 0x70, 0x7d, 0xa7, 0x56, 0xda, 0x17, 0x63, 0xfe, 0x75, - 0x75, 0x6f, 0xff, 0xd2, 0x45, 0x31, 0xee, 0x03, 0x0e, 0xa8, 0x20, 0x11, 0x36, 0xb8, 0xb0, 0x2e, - 0x26, 0x25, 0x11, 0xb2, 0x94, 0xa0, 0x7a, 0xab, 0xb2, 0x75, 0xe9, 0xa2, 0x38, 0x3d, 0x28, 0xb9, - 0xb0, 0x2e, 0xce, 0x48, 0xb3, 0x90, 0x26, 0x92, 0xcd, 0x5a, 0x6d, 0x47, 0x4c, 0xf9, 0x9c, 0x8d, - 0x7d, 0xa5, 0xba, 0xb7, 0x2d, 0xa6, 0x7d, 0xce, 0x6d, 0xa5, 0x76, 0x50, 0x17, 0xc1, 0x67, 0xd8, - 0xad, 0x34, 0x1a, 0xa5, 0xed, 0x8a, 0x98, 0xf1, 0x2d, 0x36, 0x5f, 0xde, 0xaf, 0x34, 0xc4, 0xec, - 0x80, 0x5b, 0x17, 0xd6, 0xc5, 0x59, 0xff, 0x16, 0x95, 0xbd, 0x83, 0x5d, 0x31, 0x27, 0xcd, 0xc1, - 0x2c, 0xbd, 0x05, 0x77, 0x22, 0x3f, 0x24, 0xba, 0x74, 0x51, 0x14, 0x03, 0x47, 0x28, 0xcb, 0xdc, - 0x80, 0xe0, 0xd2, 0x45, 0x51, 0x5a, 0x2e, 0x43, 0x92, 0x64, 0x97, 0x24, 0x41, 0x6e, 0xa7, 0xb4, - 0x59, 0xd9, 0x51, 0x6b, 0xf5, 0xfd, 0x6a, 0x6d, 0xaf, 0xb4, 0x23, 0x0a, 0x81, 0x4c, 0xa9, 0x7c, - 0xfa, 0xa0, 0xaa, 0x54, 0xb6, 0xc4, 0x58, 0x58, 0x56, 0xaf, 0x94, 0xf6, 0x2b, 0x5b, 0x62, 0x7c, - 0x59, 0x87, 0x85, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x84, 0x25, 0x26, 0x5c, - 0x23, 0x4b, 0xfc, 0x65, 0x01, 0xe6, 0xc7, 0xd4, 0xda, 0xb1, 0x37, 0x79, 0x11, 0x92, 0x34, 0x45, - 0x69, 0xf7, 0x79, 0x7a, 0x6c, 0xd1, 0x26, 0x09, 0x3b, 0xd2, 0x81, 0x08, 0x2e, 0xdc, 0x81, 0xe3, - 0x27, 0x74, 0x60, 0x4c, 0x31, 0xe2, 0xe4, 0x6b, 0x02, 0xc8, 0x27, 0x71, 0x47, 0x14, 0x8a, 0xd8, - 0x40, 0xa1, 0xb8, 0x36, 0xec, 0xc0, 0xf9, 0x93, 0x9f, 0x61, 0xc4, 0x8b, 0xb7, 0x04, 0x38, 0x33, - 0x7e, 0x50, 0x19, 0xeb, 0xc3, 0xa7, 0x60, 0xba, 0x8b, 0xbc, 0x43, 0x9b, 0x37, 0xeb, 0x4f, 0x8c, - 0x69, 0x01, 0x58, 0x3d, 0x1c, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x49, 0xd3, 0x06, 0xf5, 0x66, - 0xc4, 0xd3, 0xcf, 0xc7, 0xe0, 0x91, 0xb1, 0xe4, 0x63, 0x1d, 0x7d, 0x1c, 0xc0, 0xb0, 0x7a, 0x7d, - 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x7d, 0xcf, 0xd7, 0xc7, - 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x09, 0x1c, 0x4d, 0x10, 0x47, 0x0b, 0x27, 0x3c, 0xe9, 0x48, - 0xaf, 0x7b, 0x1e, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, 0x6b, 0x58, 0x1d, - 0x52, 0x80, 0x53, 0xc5, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xe4, 0xa9, 0xba, 0xc1, 0xb5, 0x18, 0x41, - 0xba, 0x8c, 0x13, 0x42, 0x4c, 0x0f, 0x20, 0xa8, 0xda, 0x47, 0x2c, 0x7f, 0x6d, 0x06, 0x32, 0xa1, - 0xb1, 0x4e, 0x3a, 0x0f, 0xd9, 0xdb, 0xda, 0x5d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, 0x44, 0x06, 0xcb, - 0xea, 0x6c, 0x5c, 0x7f, 0x1e, 0x16, 0x88, 0x89, 0xdd, 0xf7, 0x90, 0xa3, 0xea, 0xa6, 0xe6, 0xba, - 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0xca, 0x5c, 0x23, 0x6d, 0xc0, 0x3c, 0x41, - 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, 0xdf, 0xb3, 0x39, - 0x6c, 0xb1, 0xcb, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x05, 0x8f, 0x13, 0x58, 0x07, 0x59, 0xc8, 0xd1, - 0x3c, 0xa4, 0xa2, 0xcf, 0xf5, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa5, 0x1e, 0x6a, 0xee, 0xa1, 0xbc, - 0x80, 0x09, 0x36, 0x63, 0xb2, 0xa0, 0x9c, 0xc5, 0x86, 0xdb, 0xcc, 0xae, 0x42, 0xcc, 0x4a, 0x56, - 0xeb, 0x86, 0xe6, 0x1e, 0x4a, 0x45, 0x38, 0x43, 0x58, 0x5c, 0xcf, 0x31, 0xac, 0x8e, 0xaa, 0x1f, - 0x22, 0xfd, 0x8e, 0xda, 0xf7, 0xda, 0x57, 0xe4, 0xc7, 0xc2, 0xf7, 0x27, 0x1e, 0x36, 0x88, 0x4d, - 0x19, 0x9b, 0x1c, 0x78, 0xed, 0x2b, 0x52, 0x03, 0xb2, 0x78, 0x31, 0xba, 0xc6, 0xab, 0x48, 0x6d, - 0xdb, 0x0e, 0xe9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0x14, 0xc1, 0xd5, 0x1a, 0x03, 0xec, 0xda, 0x2d, - 0x54, 0x4c, 0x36, 0xea, 0x95, 0xca, 0x96, 0x92, 0xe1, 0x2c, 0xd7, 0x6d, 0x07, 0x27, 0x54, 0xc7, - 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb1, 0x79, 0x78, 0x37, 0x60, 0x5e, 0xd7, 0xe9, 0x33, 0x1b, - 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x07, 0x82, 0xa5, 0xeb, 0xdb, 0xd4, 0x80, 0xe5, 0xb8, 0x2b, - 0x5d, 0x85, 0x47, 0x82, 0x60, 0x85, 0x81, 0x73, 0x23, 0x4f, 0x39, 0x0c, 0xdd, 0x80, 0xf9, 0xde, - 0xd1, 0x28, 0x50, 0x1a, 0xb8, 0x63, 0xef, 0x68, 0x18, 0xf6, 0x24, 0x79, 0x6d, 0x73, 0x90, 0xae, - 0x79, 0xa8, 0x25, 0x3f, 0x1a, 0xb6, 0x0e, 0x29, 0xa4, 0x35, 0x10, 0x75, 0x5d, 0x45, 0x96, 0xd6, - 0x34, 0x91, 0xaa, 0x39, 0xc8, 0xd2, 0x5c, 0xf9, 0x5c, 0xd8, 0x38, 0xa7, 0xeb, 0x15, 0xa2, 0x2d, - 0x11, 0xa5, 0xf4, 0x0c, 0xcc, 0xd9, 0xcd, 0xdb, 0x3a, 0xcd, 0x2c, 0xb5, 0xe7, 0xa0, 0xb6, 0xf1, - 0x8a, 0xfc, 0x04, 0x09, 0x53, 0x1e, 0x2b, 0x48, 0x5e, 0xd5, 0x89, 0x58, 0x7a, 0x1a, 0x44, 0xdd, - 0x3d, 0xd4, 0x9c, 0x1e, 0x69, 0xed, 0x6e, 0x4f, 0xd3, 0x91, 0xfc, 0x24, 0x35, 0xa5, 0xf2, 0x3d, - 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x33, 0xda, 0x1e, 0x67, 0x7c, 0x8a, 0x66, 0x36, 0x91, 0x31, 0xb6, - 0x5b, 0xb0, 0xd0, 0xb7, 0x0c, 0xcb, 0x43, 0x4e, 0xcf, 0x41, 0x78, 0x88, 0xa7, 0x3b, 0x51, 0xfe, - 0xd7, 0x99, 0x13, 0xc6, 0xf0, 0x83, 0xb0, 0x35, 0x4d, 0x00, 0x65, 0xbe, 0x3f, 0x2a, 0x5c, 0x2e, - 0x42, 0x36, 0x9c, 0x17, 0x52, 0x1a, 0x68, 0x66, 0x88, 0x02, 0xee, 0xb1, 0xe5, 0xda, 0x16, 0xee, - 0x8e, 0x9f, 0xad, 0x88, 0x31, 0xdc, 0xa5, 0x77, 0xaa, 0xfb, 0x15, 0x55, 0x39, 0xd8, 0xdb, 0xaf, - 0xee, 0x56, 0xc4, 0xf8, 0x33, 0xe9, 0xd4, 0x0f, 0x66, 0xc4, 0xfb, 0xf7, 0xef, 0xdf, 0x8f, 0x2d, - 0x7f, 0x3b, 0x06, 0xb9, 0xc1, 0xc9, 0x58, 0xfa, 0x59, 0x78, 0x94, 0xbf, 0xc6, 0xba, 0xc8, 0x53, - 0xef, 0x19, 0x0e, 0x49, 0xd5, 0xae, 0x46, 0x67, 0x4b, 0x3f, 0xca, 0x0b, 0xcc, 0xaa, 0x81, 0xbc, - 0x97, 0x0c, 0x07, 0x27, 0x62, 0x57, 0xf3, 0xa4, 0x1d, 0x38, 0x67, 0xd9, 0xaa, 0xeb, 0x69, 0x56, - 0x4b, 0x73, 0x5a, 0x6a, 0x70, 0x80, 0xa0, 0x6a, 0xba, 0x8e, 0x5c, 0xd7, 0xa6, 0x2d, 0xc2, 0x67, - 0xf9, 0x98, 0x65, 0x37, 0x98, 0x71, 0x50, 0x3b, 0x4b, 0xcc, 0x74, 0x28, 0x23, 0xe2, 0x27, 0x65, - 0xc4, 0x63, 0x90, 0xee, 0x6a, 0x3d, 0x15, 0x59, 0x9e, 0x73, 0x44, 0xe6, 0xb9, 0x94, 0x92, 0xea, - 0x6a, 0xbd, 0x0a, 0xbe, 0xfe, 0xe8, 0xd6, 0x20, 0x1c, 0xc7, 0xef, 0xc5, 0x21, 0x1b, 0x9e, 0xe9, - 0xf0, 0x88, 0xac, 0x93, 0xfa, 0x2d, 0x90, 0x1d, 0xfe, 0xf1, 0x87, 0x4e, 0x80, 0xab, 0x65, 0x5c, - 0xd8, 0x8b, 0xd3, 0x74, 0xd2, 0x52, 0x28, 0x12, 0x37, 0x55, 0xbc, 0xa7, 0x11, 0x9d, 0xdf, 0x53, - 0x0a, 0xbb, 0x92, 0xb6, 0x61, 0xfa, 0xb6, 0x4b, 0xb8, 0xa7, 0x09, 0xf7, 0x13, 0x0f, 0xe7, 0xbe, - 0xd9, 0x20, 0xe4, 0xe9, 0x9b, 0x0d, 0x75, 0xaf, 0xa6, 0xec, 0x96, 0x76, 0x14, 0x06, 0x97, 0xce, - 0x42, 0xc2, 0xd4, 0x5e, 0x3d, 0x1a, 0x6c, 0x01, 0x44, 0x34, 0x69, 0xe0, 0xcf, 0x42, 0xe2, 0x1e, - 0xd2, 0xee, 0x0c, 0x16, 0x5e, 0x22, 0xfa, 0x08, 0x53, 0x7f, 0x0d, 0x92, 0x24, 0x5e, 0x12, 0x00, - 0x8b, 0x98, 0x38, 0x25, 0xa5, 0x20, 0x51, 0xae, 0x29, 0x38, 0xfd, 0x45, 0xc8, 0x52, 0xa9, 0x5a, - 0xaf, 0x56, 0xca, 0x15, 0x31, 0xb6, 0xbc, 0x01, 0xd3, 0x34, 0x08, 0x78, 0x6b, 0xf8, 0x61, 0x10, - 0xa7, 0xd8, 0x25, 0xe3, 0x10, 0xb8, 0xf6, 0x60, 0x77, 0xb3, 0xa2, 0x88, 0xb1, 0xf0, 0xf2, 0xba, - 0x90, 0x0d, 0x8f, 0x73, 0x3f, 0x99, 0x9c, 0xfa, 0x7b, 0x01, 0x32, 0xa1, 0xf1, 0x0c, 0x0f, 0x06, - 0x9a, 0x69, 0xda, 0xf7, 0x54, 0xcd, 0x34, 0x34, 0x97, 0x25, 0x05, 0x10, 0x51, 0x09, 0x4b, 0x26, - 0x5d, 0xb4, 0x9f, 0x88, 0xf3, 0x6f, 0x0a, 0x20, 0x0e, 0x8f, 0x76, 0x43, 0x0e, 0x0a, 0x3f, 0x55, - 0x07, 0xdf, 0x10, 0x20, 0x37, 0x38, 0xcf, 0x0d, 0xb9, 0x77, 0xfe, 0xa7, 0xea, 0xde, 0x3b, 0x31, - 0x98, 0x1d, 0x98, 0xe2, 0x26, 0xf5, 0xee, 0x73, 0x30, 0x67, 0xb4, 0x50, 0xb7, 0x67, 0x7b, 0xc8, - 0xd2, 0x8f, 0x54, 0x13, 0xdd, 0x45, 0xa6, 0xbc, 0x4c, 0x0a, 0xc5, 0xda, 0xc3, 0xe7, 0xc4, 0xd5, - 0x6a, 0x80, 0xdb, 0xc1, 0xb0, 0xe2, 0x7c, 0x75, 0xab, 0xb2, 0x5b, 0xaf, 0xed, 0x57, 0xf6, 0xca, - 0x2f, 0xab, 0x07, 0x7b, 0x3f, 0xb7, 0x57, 0x7b, 0x69, 0x4f, 0x11, 0x8d, 0x21, 0xb3, 0x8f, 0x70, - 0xab, 0xd7, 0x41, 0x1c, 0x76, 0x4a, 0x7a, 0x14, 0xc6, 0xb9, 0x25, 0x4e, 0x49, 0xf3, 0x90, 0xdf, - 0xab, 0xa9, 0x8d, 0xea, 0x56, 0x45, 0xad, 0x5c, 0xbf, 0x5e, 0x29, 0xef, 0x37, 0xe8, 0x8b, 0xb3, - 0x6f, 0xbd, 0x3f, 0xb8, 0xa9, 0x5f, 0x8f, 0xc3, 0xfc, 0x18, 0x4f, 0xa4, 0x12, 0x9b, 0xd9, 0xe9, - 0x6b, 0xc4, 0x73, 0x93, 0x78, 0xbf, 0x8a, 0xa7, 0x82, 0xba, 0xe6, 0x78, 0x6c, 0xc4, 0x7f, 0x1a, - 0x70, 0x94, 0x2c, 0xcf, 0x68, 0x1b, 0xc8, 0x61, 0xe7, 0x0c, 0x74, 0x90, 0xcf, 0x07, 0x72, 0x7a, - 0xd4, 0xf0, 0x33, 0x20, 0xf5, 0x6c, 0xd7, 0xf0, 0x8c, 0xbb, 0x48, 0x35, 0x2c, 0x7e, 0x28, 0x81, - 0x07, 0xfb, 0x84, 0x22, 0x72, 0x4d, 0xd5, 0xf2, 0x7c, 0x6b, 0x0b, 0x75, 0xb4, 0x21, 0x6b, 0x5c, - 0xc0, 0xe3, 0x8a, 0xc8, 0x35, 0xbe, 0xf5, 0x79, 0xc8, 0xb6, 0xec, 0x3e, 0x1e, 0x93, 0xa8, 0x1d, - 0xee, 0x17, 0x82, 0x92, 0xa1, 0x32, 0xdf, 0x84, 0xcd, 0xb1, 0xc1, 0x69, 0x48, 0x56, 0xc9, 0x50, - 0x19, 0x35, 0x79, 0x0a, 0xf2, 0x5a, 0xa7, 0xe3, 0x60, 0x72, 0x4e, 0x44, 0x27, 0xf3, 0x9c, 0x2f, - 0x26, 0x86, 0x8b, 0x37, 0x21, 0xc5, 0xe3, 0x80, 0x5b, 0x32, 0x8e, 0x84, 0xda, 0xa3, 0x67, 0x52, - 0xb1, 0x95, 0xb4, 0x92, 0xb2, 0xb8, 0xf2, 0x3c, 0x64, 0x0d, 0x57, 0x0d, 0x0e, 0x47, 0x63, 0x4b, - 0xb1, 0x95, 0x94, 0x92, 0x31, 0x5c, 0xff, 0x34, 0x6c, 0xf9, 0xad, 0x18, 0xe4, 0x06, 0x0f, 0x77, - 0xa5, 0x2d, 0x48, 0x99, 0xb6, 0xae, 0x91, 0xd4, 0xa2, 0xbf, 0x2c, 0xac, 0x44, 0x9c, 0x07, 0xaf, - 0xee, 0x30, 0x7b, 0xc5, 0x47, 0x2e, 0xfe, 0xb3, 0x00, 0x29, 0x2e, 0x96, 0xce, 0x40, 0xa2, 0xa7, - 0x79, 0x87, 0x84, 0x2e, 0xb9, 0x19, 0x13, 0x05, 0x85, 0x5c, 0x63, 0xb9, 0xdb, 0xd3, 0x2c, 0x92, - 0x02, 0x4c, 0x8e, 0xaf, 0xf1, 0xba, 0x9a, 0x48, 0x6b, 0x91, 0xb1, 0xdf, 0xee, 0x76, 0x91, 0xe5, - 0xb9, 0x7c, 0x5d, 0x99, 0xbc, 0xcc, 0xc4, 0xd2, 0xb3, 0x30, 0xe7, 0x39, 0x9a, 0x61, 0x0e, 0xd8, - 0x26, 0x88, 0xad, 0xc8, 0x15, 0xbe, 0x71, 0x11, 0xce, 0x72, 0xde, 0x16, 0xf2, 0x34, 0xfd, 0x10, - 0xb5, 0x02, 0xd0, 0x34, 0x39, 0x39, 0x7c, 0x94, 0x19, 0x6c, 0x31, 0x3d, 0xc7, 0x2e, 0x7f, 0x57, - 0x80, 0x39, 0xfe, 0xa2, 0xd2, 0xf2, 0x83, 0xb5, 0x0b, 0xa0, 0x59, 0x96, 0xed, 0x85, 0xc3, 0x35, - 0x9a, 0xca, 0x23, 0xb8, 0xd5, 0x92, 0x0f, 0x52, 0x42, 0x04, 0x8b, 0x5d, 0x80, 0x40, 0x73, 0x62, - 0xd8, 0xce, 0x41, 0x86, 0x9d, 0xdc, 0x93, 0x9f, 0x7f, 0xe8, 0xab, 0x2d, 0x50, 0x11, 0x7e, 0xa3, - 0x91, 0x16, 0x20, 0xd9, 0x44, 0x1d, 0xc3, 0x62, 0xe7, 0x89, 0xf4, 0x82, 0x9f, 0x52, 0x26, 0xfc, - 0x53, 0xca, 0xcd, 0x5b, 0x30, 0xaf, 0xdb, 0xdd, 0x61, 0x77, 0x37, 0xc5, 0xa1, 0xd7, 0x6b, 0xf7, - 0x86, 0xf0, 0x59, 0x08, 0x46, 0xcc, 0x2f, 0xc7, 0xe2, 0xdb, 0xf5, 0xcd, 0xaf, 0xc6, 0x16, 0xb7, - 0x29, 0xae, 0xce, 0x1f, 0x53, 0x41, 0x6d, 0x13, 0xe9, 0xd8, 0x75, 0xf8, 0xe1, 0x27, 0xe0, 0xb9, - 0x8e, 0xe1, 0x1d, 0xf6, 0x9b, 0xab, 0xba, 0xdd, 0x5d, 0xeb, 0xd8, 0x1d, 0x3b, 0xf8, 0xb9, 0x0b, - 0x5f, 0x91, 0x0b, 0xf2, 0x1f, 0xfb, 0xc9, 0x2b, 0xed, 0x4b, 0x17, 0x23, 0x7f, 0x1f, 0x2b, 0xee, - 0xc1, 0x3c, 0x33, 0x56, 0xc9, 0x99, 0x3b, 0x7d, 0x35, 0x90, 0x1e, 0x7a, 0xee, 0x22, 0x7f, 0xe3, - 0x5d, 0xd2, 0xab, 0x95, 0x39, 0x06, 0xc5, 0x3a, 0xfa, 0x02, 0x51, 0x54, 0xe0, 0x91, 0x01, 0x3e, - 0xba, 0x2f, 0x91, 0x13, 0xc1, 0xf8, 0x6d, 0xc6, 0x38, 0x1f, 0x62, 0x6c, 0x30, 0x68, 0xb1, 0x0c, - 0xb3, 0xa7, 0xe1, 0xfa, 0x47, 0xc6, 0x95, 0x45, 0x61, 0x92, 0x6d, 0xc8, 0x13, 0x12, 0xbd, 0xef, - 0x7a, 0x76, 0x97, 0x14, 0xbd, 0x87, 0xd3, 0xfc, 0xd3, 0xbb, 0x74, 0xa3, 0xe4, 0x30, 0xac, 0xec, - 0xa3, 0x8a, 0x45, 0x20, 0x3f, 0x33, 0xb4, 0x90, 0x6e, 0x46, 0x30, 0xbc, 0xcd, 0x1c, 0xf1, 0xed, - 0x8b, 0x9f, 0x81, 0x05, 0xfc, 0x3f, 0xa9, 0x49, 0x61, 0x4f, 0xa2, 0x4f, 0x99, 0xe4, 0xef, 0xbe, - 0x46, 0xf7, 0xe2, 0xbc, 0x4f, 0x10, 0xf2, 0x29, 0xb4, 0x8a, 0x1d, 0xe4, 0x79, 0xc8, 0x71, 0x55, - 0xcd, 0x1c, 0xe7, 0x5e, 0xe8, 0x35, 0x5d, 0xfe, 0xe2, 0x7b, 0x83, 0xab, 0xb8, 0x4d, 0x91, 0x25, - 0xd3, 0x2c, 0x1e, 0xc0, 0xa3, 0x63, 0xb2, 0x62, 0x02, 0xce, 0xd7, 0x19, 0xe7, 0xc2, 0x48, 0x66, - 0x60, 0xda, 0x3a, 0x70, 0xb9, 0xbf, 0x96, 0x13, 0x70, 0xfe, 0x3e, 0xe3, 0x94, 0x18, 0x96, 0x2f, - 0x29, 0x66, 0xbc, 0x09, 0x73, 0x77, 0x91, 0xd3, 0xb4, 0x5d, 0x76, 0x34, 0x32, 0x01, 0xdd, 0x1b, - 0x8c, 0x2e, 0xcf, 0x80, 0xe4, 0xac, 0x04, 0x73, 0x5d, 0x85, 0x54, 0x5b, 0xd3, 0xd1, 0x04, 0x14, - 0x5f, 0x62, 0x14, 0x33, 0xd8, 0x1e, 0x43, 0x4b, 0x90, 0xed, 0xd8, 0xac, 0x2d, 0x45, 0xc3, 0xdf, - 0x64, 0xf0, 0x0c, 0xc7, 0x30, 0x8a, 0x9e, 0xdd, 0xeb, 0x9b, 0xb8, 0x67, 0x45, 0x53, 0xfc, 0x01, - 0xa7, 0xe0, 0x18, 0x46, 0x71, 0x8a, 0xb0, 0xfe, 0x21, 0xa7, 0x70, 0x43, 0xf1, 0x7c, 0x11, 0x32, - 0xb6, 0x65, 0x1e, 0xd9, 0xd6, 0x24, 0x4e, 0xfc, 0x11, 0x63, 0x00, 0x06, 0xc1, 0x04, 0xd7, 0x20, - 0x3d, 0xe9, 0x42, 0xfc, 0xf1, 0x7b, 0x7c, 0x7b, 0xf0, 0x15, 0xd8, 0x86, 0x3c, 0x2f, 0x50, 0x86, - 0x6d, 0x4d, 0x40, 0xf1, 0x27, 0x8c, 0x22, 0x17, 0x82, 0xb1, 0xc7, 0xf0, 0x90, 0xeb, 0x75, 0xd0, - 0x24, 0x24, 0x6f, 0xf1, 0xc7, 0x60, 0x10, 0x16, 0xca, 0x26, 0xb2, 0xf4, 0xc3, 0xc9, 0x18, 0xbe, - 0xc2, 0x43, 0xc9, 0x31, 0x98, 0xa2, 0x0c, 0xb3, 0x5d, 0xcd, 0x71, 0x0f, 0x35, 0x73, 0xa2, 0xe5, - 0xf8, 0x53, 0xc6, 0x91, 0xf5, 0x41, 0x2c, 0x22, 0x7d, 0xeb, 0x34, 0x34, 0x5f, 0xe5, 0x11, 0x09, - 0xc1, 0xd8, 0xd6, 0x73, 0x3d, 0x72, 0x00, 0x75, 0x1a, 0xb6, 0xaf, 0xf1, 0xad, 0x47, 0xb1, 0xbb, - 0x61, 0xc6, 0x6b, 0x90, 0x76, 0x8d, 0x57, 0x27, 0xa2, 0xf9, 0x33, 0xbe, 0xd2, 0x04, 0x80, 0xc1, - 0x2f, 0xc3, 0xd9, 0xb1, 0x6d, 0x62, 0x02, 0xb2, 0x3f, 0x67, 0x64, 0x67, 0xc6, 0xb4, 0x0a, 0x56, - 0x12, 0x4e, 0x4b, 0xf9, 0x17, 0xbc, 0x24, 0xa0, 0x21, 0xae, 0x3a, 0x7e, 0x51, 0x70, 0xb5, 0xf6, - 0xe9, 0xa2, 0xf6, 0x97, 0x3c, 0x6a, 0x14, 0x3b, 0x10, 0xb5, 0x7d, 0x38, 0xc3, 0x18, 0x4f, 0xb7, - 0xae, 0x5f, 0xe7, 0x85, 0x95, 0xa2, 0x0f, 0x06, 0x57, 0xf7, 0xe7, 0x61, 0xd1, 0x0f, 0x27, 0x9f, - 0x48, 0x5d, 0xb5, 0xab, 0xf5, 0x26, 0x60, 0xfe, 0x06, 0x63, 0xe6, 0x15, 0xdf, 0x1f, 0x69, 0xdd, - 0x5d, 0xad, 0x87, 0xc9, 0x6f, 0x81, 0xcc, 0xc9, 0xfb, 0x96, 0x83, 0x74, 0xbb, 0x63, 0x19, 0xaf, - 0xa2, 0xd6, 0x04, 0xd4, 0x7f, 0x35, 0xb4, 0x54, 0x07, 0x21, 0x38, 0x66, 0xae, 0x82, 0xe8, 0xcf, - 0x2a, 0xaa, 0xd1, 0xed, 0xd9, 0x8e, 0x17, 0xc1, 0xf8, 0xd7, 0x7c, 0xa5, 0x7c, 0x5c, 0x95, 0xc0, - 0x8a, 0x15, 0xc8, 0x91, 0xcb, 0x49, 0x53, 0xf2, 0x6f, 0x18, 0xd1, 0x6c, 0x80, 0x62, 0x85, 0x43, - 0xb7, 0xbb, 0x3d, 0xcd, 0x99, 0xa4, 0xfe, 0xfd, 0x2d, 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, 0x77, - 0xd4, 0x43, 0xb8, 0xdb, 0x4f, 0xc0, 0xf0, 0x4d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x81, 0x61, - 0x02, 0x8a, 0xbf, 0xe3, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x1d, 0x34, 0x5a, 0x07, 0x75, 0x0c, 0xd7, - 0x73, 0xe8, 0x1c, 0xfc, 0x70, 0xaa, 0x6f, 0xbd, 0x37, 0x38, 0x84, 0x29, 0x21, 0x68, 0xf1, 0x26, - 0xe4, 0x87, 0x46, 0x0c, 0x29, 0xea, 0x9b, 0x05, 0xf9, 0x17, 0x3e, 0x60, 0xc5, 0x68, 0x70, 0xc2, - 0x28, 0xee, 0xe0, 0x75, 0x1f, 0x9c, 0x03, 0xa2, 0xc9, 0x5e, 0xfb, 0xc0, 0x5f, 0xfa, 0x81, 0x31, - 0xa0, 0x78, 0x1d, 0x66, 0x07, 0x66, 0x80, 0x68, 0xaa, 0x5f, 0x64, 0x54, 0xd9, 0xf0, 0x08, 0x50, - 0xdc, 0x80, 0x04, 0xee, 0xe7, 0xd1, 0xf0, 0x5f, 0x62, 0x70, 0x62, 0x5e, 0xfc, 0x24, 0xa4, 0x78, - 0x1f, 0x8f, 0x86, 0xfe, 0x32, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x3d, 0x3c, 0x1a, 0xfe, 0x2b, 0x1c, - 0xce, 0x21, 0x18, 0x3e, 0x79, 0x08, 0xff, 0xe1, 0x57, 0x13, 0xac, 0x0e, 0xf3, 0xd8, 0x5d, 0x83, - 0x19, 0xd6, 0xbc, 0xa3, 0xd1, 0x9f, 0x67, 0x37, 0xe7, 0x88, 0xe2, 0x65, 0x48, 0x4e, 0x18, 0xf0, - 0x5f, 0x63, 0x50, 0x6a, 0x5f, 0x2c, 0x43, 0x26, 0xd4, 0xb0, 0xa3, 0xe1, 0xbf, 0xce, 0xe0, 0x61, - 0x14, 0x76, 0x9d, 0x35, 0xec, 0x68, 0x82, 0xdf, 0xe0, 0xae, 0x33, 0x04, 0x0e, 0x1b, 0xef, 0xd5, - 0xd1, 0xe8, 0xdf, 0xe4, 0x51, 0xe7, 0x90, 0xe2, 0x8b, 0x90, 0xf6, 0xeb, 0x6f, 0x34, 0xfe, 0xb7, - 0x18, 0x3e, 0xc0, 0xe0, 0x08, 0x84, 0xea, 0x7f, 0x34, 0xc5, 0x6f, 0xf3, 0x08, 0x84, 0x50, 0x78, - 0x1b, 0x0d, 0xf7, 0xf4, 0x68, 0xa6, 0xdf, 0xe1, 0xdb, 0x68, 0xa8, 0xa5, 0xe3, 0xd5, 0x24, 0x65, - 0x30, 0x9a, 0xe2, 0x77, 0xf9, 0x6a, 0x12, 0x7b, 0xec, 0xc6, 0x70, 0x93, 0x8c, 0xe6, 0xf8, 0x3d, - 0xee, 0xc6, 0x50, 0x8f, 0x2c, 0xd6, 0x41, 0x1a, 0x6d, 0x90, 0xd1, 0x7c, 0x5f, 0x60, 0x7c, 0x73, - 0x23, 0xfd, 0xb1, 0xf8, 0x12, 0x9c, 0x19, 0xdf, 0x1c, 0xa3, 0x59, 0xbf, 0xf8, 0xc1, 0xd0, 0xeb, - 0x4c, 0xb8, 0x37, 0x16, 0xf7, 0x83, 0x2a, 0x1b, 0x6e, 0x8c, 0xd1, 0xb4, 0xaf, 0x7f, 0x30, 0x58, - 0x68, 0xc3, 0x7d, 0xb1, 0x58, 0x02, 0x08, 0x7a, 0x52, 0x34, 0xd7, 0x1b, 0x8c, 0x2b, 0x04, 0xc2, - 0x5b, 0x83, 0xb5, 0xa4, 0x68, 0xfc, 0x97, 0xf8, 0xd6, 0x60, 0x08, 0xbc, 0x35, 0x78, 0x37, 0x8a, - 0x46, 0xbf, 0xc9, 0xb7, 0x06, 0x87, 0x14, 0xaf, 0x41, 0xca, 0xea, 0x9b, 0x26, 0xce, 0x2d, 0xe9, - 0xe1, 0x9f, 0x11, 0xc9, 0xff, 0xf6, 0x21, 0x03, 0x73, 0x40, 0x71, 0x03, 0x92, 0xa8, 0xdb, 0x44, - 0xad, 0x28, 0xe4, 0xbf, 0x7f, 0xc8, 0xeb, 0x09, 0xb6, 0x2e, 0xbe, 0x08, 0x40, 0x5f, 0xa6, 0xc9, - 0xaf, 0x44, 0x11, 0xd8, 0xff, 0xf8, 0x90, 0x7d, 0xa1, 0x10, 0x40, 0x02, 0x02, 0xfa, 0xbd, 0xc3, - 0xc3, 0x09, 0xde, 0x1b, 0x24, 0x20, 0x2f, 0xe0, 0x57, 0x61, 0xe6, 0xb6, 0x6b, 0x5b, 0x9e, 0xd6, - 0x89, 0x42, 0xff, 0x27, 0x43, 0x73, 0x7b, 0x1c, 0xb0, 0xae, 0xed, 0x20, 0x4f, 0xeb, 0xb8, 0x51, - 0xd8, 0xff, 0x62, 0x58, 0x1f, 0x80, 0xc1, 0xba, 0xe6, 0x7a, 0x93, 0x3c, 0xf7, 0x7f, 0x73, 0x30, - 0x07, 0x60, 0xa7, 0xf1, 0xff, 0x77, 0xd0, 0x51, 0x14, 0xf6, 0x7d, 0xee, 0x34, 0xb3, 0x2f, 0x7e, - 0x12, 0xd2, 0xf8, 0x5f, 0xfa, 0xd5, 0x4e, 0x04, 0xf8, 0x7f, 0x18, 0x38, 0x40, 0xe0, 0x3b, 0xbb, - 0x5e, 0xcb, 0x33, 0xa2, 0x83, 0xfd, 0xbf, 0x6c, 0xa5, 0xb9, 0x7d, 0xb1, 0x04, 0x19, 0xd7, 0x6b, - 0xb5, 0xfa, 0x6c, 0xa2, 0x89, 0x80, 0xff, 0xf0, 0x43, 0xff, 0x25, 0xd7, 0xc7, 0x6c, 0x9e, 0x1f, - 0x7f, 0x58, 0x07, 0xdb, 0xf6, 0xb6, 0x4d, 0x8f, 0xe9, 0xe0, 0xcd, 0x24, 0x2c, 0xe9, 0x76, 0xb7, - 0x69, 0xbb, 0x6b, 0xb4, 0xa0, 0xf8, 0xe5, 0x64, 0xcd, 0xb6, 0x18, 0x46, 0x8a, 0xdb, 0x16, 0x5a, - 0x3c, 0xdd, 0xe1, 0xdc, 0xf2, 0x59, 0x48, 0x36, 0xfa, 0xcd, 0xe6, 0x91, 0x24, 0x42, 0xdc, 0xed, - 0x37, 0xd9, 0xd7, 0x25, 0xf8, 0xdf, 0xe5, 0xef, 0xc5, 0x21, 0xd3, 0xd0, 0xba, 0x3d, 0x13, 0xd5, - 0x2c, 0x54, 0x6b, 0x4b, 0x32, 0x4c, 0x93, 0x67, 0x79, 0x81, 0x18, 0x09, 0x37, 0xa6, 0x14, 0x76, - 0xed, 0x6b, 0xd6, 0xc9, 0x89, 0x65, 0xcc, 0xd7, 0xac, 0xfb, 0x9a, 0x0b, 0xf4, 0xc0, 0xd2, 0xd7, - 0x5c, 0xf0, 0x35, 0x17, 0xc9, 0xb1, 0x65, 0xdc, 0xd7, 0x5c, 0xf4, 0x35, 0x1b, 0xe4, 0x58, 0x7e, - 0xd6, 0xd7, 0x6c, 0xf8, 0x9a, 0x4b, 0xe4, 0x20, 0x3e, 0xe1, 0x6b, 0x2e, 0xf9, 0x9a, 0xcb, 0xe4, - 0xfc, 0x7d, 0xce, 0xd7, 0x5c, 0xf6, 0x35, 0x57, 0xc8, 0x99, 0xbb, 0xe4, 0x6b, 0xae, 0xf8, 0x9a, - 0xab, 0xe4, 0x23, 0x92, 0x19, 0x5f, 0x73, 0x55, 0x5a, 0x84, 0x19, 0xfa, 0x64, 0xcf, 0x93, 0x1f, - 0x66, 0xf3, 0x37, 0xa6, 0x14, 0x2e, 0x08, 0x74, 0x2f, 0x90, 0x0f, 0x45, 0xa6, 0x03, 0xdd, 0x0b, - 0x81, 0x6e, 0x9d, 0x7c, 0x2e, 0x2d, 0x06, 0xba, 0xf5, 0x40, 0x77, 0x41, 0x9e, 0xc5, 0x29, 0x10, - 0xe8, 0x2e, 0x04, 0xba, 0x8b, 0x72, 0x0e, 0xc7, 0x3f, 0xd0, 0x5d, 0x0c, 0x74, 0x1b, 0x72, 0x7e, - 0x49, 0x58, 0xc9, 0x06, 0xba, 0x0d, 0xe9, 0x39, 0xc8, 0xb8, 0xfd, 0xa6, 0xca, 0xbe, 0x23, 0x20, - 0x1f, 0xa4, 0x64, 0xd6, 0x61, 0x15, 0x67, 0x04, 0x59, 0xd4, 0x1b, 0x53, 0x0a, 0xb8, 0xfd, 0x26, - 0xab, 0x91, 0x9b, 0x59, 0x20, 0x47, 0x0a, 0x2a, 0xf9, 0x0c, 0x73, 0x73, 0xeb, 0xed, 0x07, 0x85, - 0xa9, 0xef, 0x3c, 0x28, 0x4c, 0xfd, 0xcb, 0x83, 0xc2, 0xd4, 0x3b, 0x0f, 0x0a, 0xc2, 0xfb, 0x0f, - 0x0a, 0xc2, 0x8f, 0x1e, 0x14, 0x84, 0xfb, 0xc7, 0x05, 0xe1, 0x2b, 0xc7, 0x05, 0xe1, 0xeb, 0xc7, - 0x05, 0xe1, 0x5b, 0xc7, 0x05, 0xe1, 0xed, 0xe3, 0xc2, 0xd4, 0x77, 0x8e, 0x0b, 0x53, 0xef, 0x1c, - 0x17, 0x84, 0x1f, 0x1c, 0x17, 0xa6, 0xde, 0x3f, 0x2e, 0x08, 0x3f, 0x3a, 0x2e, 0x08, 0xf7, 0xbf, - 0x5f, 0x98, 0x6a, 0x4e, 0x93, 0x34, 0xba, 0xf0, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0f, 0xd9, - 0xa8, 0x3d, 0xfd, 0x30, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Subby) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Subby") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Subby but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Subby but is not nil && this == nil") - } - if this.Sub != that1.Sub { - return fmt.Errorf("Sub this(%v) Not Equal that(%v)", this.Sub, that1.Sub) - } - return nil -} -func (this *Subby) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Sub != that1.Sub { - return false - } - return true -} -func (this *SampleOneOf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf) - if !ok { - that2, ok := that.(SampleOneOf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf but is not nil && this == nil") - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return fmt.Errorf("this.TestOneof != nil && that1.TestOneof == nil") - } - } else if this.TestOneof == nil { - return fmt.Errorf("this.TestOneof == nil && that1.TestOneof != nil") - } else if err := this.TestOneof.VerboseEqual(that1.TestOneof); err != nil { - return err - } - return nil -} -func (this *SampleOneOf_Field1) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field1) - if !ok { - that2, ok := that.(SampleOneOf_Field1) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field1") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field1 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field1 but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *SampleOneOf_Field2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field2) - if !ok { - that2, ok := that.(SampleOneOf_Field2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field2 but is not nil && this == nil") - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - return nil -} -func (this *SampleOneOf_Field3) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field3) - if !ok { - that2, ok := that.(SampleOneOf_Field3) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field3") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field3 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field3 but is not nil && this == nil") - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - return nil -} -func (this *SampleOneOf_Field4) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field4) - if !ok { - that2, ok := that.(SampleOneOf_Field4) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field4") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field4 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field4 but is not nil && this == nil") - } - if this.Field4 != that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - return nil -} -func (this *SampleOneOf_Field5) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field5) - if !ok { - that2, ok := that.(SampleOneOf_Field5) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field5") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field5 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field5 but is not nil && this == nil") - } - if this.Field5 != that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - return nil -} -func (this *SampleOneOf_Field6) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field6) - if !ok { - that2, ok := that.(SampleOneOf_Field6) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field6") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field6 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field6 but is not nil && this == nil") - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - return nil -} -func (this *SampleOneOf_Field7) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field7) - if !ok { - that2, ok := that.(SampleOneOf_Field7) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field7") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field7 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field7 but is not nil && this == nil") - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - return nil -} -func (this *SampleOneOf_Field8) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field8) - if !ok { - that2, ok := that.(SampleOneOf_Field8) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field8") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field8 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field8 but is not nil && this == nil") - } - if this.Field8 != that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - return nil -} -func (this *SampleOneOf_Field9) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field9) - if !ok { - that2, ok := that.(SampleOneOf_Field9) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field9") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field9 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field9 but is not nil && this == nil") - } - if this.Field9 != that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - return nil -} -func (this *SampleOneOf_Field10) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field10) - if !ok { - that2, ok := that.(SampleOneOf_Field10) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field10") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field10 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field10 but is not nil && this == nil") - } - if this.Field10 != that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - return nil -} -func (this *SampleOneOf_Field11) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field11) - if !ok { - that2, ok := that.(SampleOneOf_Field11) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field11") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field11 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field11 but is not nil && this == nil") - } - if this.Field11 != that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - return nil -} -func (this *SampleOneOf_Field12) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field12) - if !ok { - that2, ok := that.(SampleOneOf_Field12) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field12") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field12 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field12 but is not nil && this == nil") - } - if this.Field12 != that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - return nil -} -func (this *SampleOneOf_Field13) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field13) - if !ok { - that2, ok := that.(SampleOneOf_Field13) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field13") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field13 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field13 but is not nil && this == nil") - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - return nil -} -func (this *SampleOneOf_Field14) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field14) - if !ok { - that2, ok := that.(SampleOneOf_Field14) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field14") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field14 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field14 but is not nil && this == nil") - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - return nil -} -func (this *SampleOneOf_Field15) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field15) - if !ok { - that2, ok := that.(SampleOneOf_Field15) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field15") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field15 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field15 but is not nil && this == nil") - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - return nil -} -func (this *SampleOneOf_SubMessage) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_SubMessage) - if !ok { - that2, ok := that.(SampleOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_SubMessage") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_SubMessage but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_SubMessage but is not nil && this == nil") - } - if !this.SubMessage.Equal(that1.SubMessage) { - return fmt.Errorf("SubMessage this(%v) Not Equal that(%v)", this.SubMessage, that1.SubMessage) - } - return nil -} -func (this *SampleOneOf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf) - if !ok { - that2, ok := that.(SampleOneOf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return false - } - } else if this.TestOneof == nil { - return false - } else if !this.TestOneof.Equal(that1.TestOneof) { - return false - } - return true -} -func (this *SampleOneOf_Field1) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field1) - if !ok { - that2, ok := that.(SampleOneOf_Field1) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - return true -} -func (this *SampleOneOf_Field2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field2) - if !ok { - that2, ok := that.(SampleOneOf_Field2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != that1.Field2 { - return false - } - return true -} -func (this *SampleOneOf_Field3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field3) - if !ok { - that2, ok := that.(SampleOneOf_Field3) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field3 != that1.Field3 { - return false - } - return true -} -func (this *SampleOneOf_Field4) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field4) - if !ok { - that2, ok := that.(SampleOneOf_Field4) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field4 != that1.Field4 { - return false - } - return true -} -func (this *SampleOneOf_Field5) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field5) - if !ok { - that2, ok := that.(SampleOneOf_Field5) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field5 != that1.Field5 { - return false - } - return true -} -func (this *SampleOneOf_Field6) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field6) - if !ok { - that2, ok := that.(SampleOneOf_Field6) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field6 != that1.Field6 { - return false - } - return true -} -func (this *SampleOneOf_Field7) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field7) - if !ok { - that2, ok := that.(SampleOneOf_Field7) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field7 != that1.Field7 { - return false - } - return true -} -func (this *SampleOneOf_Field8) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field8) - if !ok { - that2, ok := that.(SampleOneOf_Field8) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field8 != that1.Field8 { - return false - } - return true -} -func (this *SampleOneOf_Field9) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field9) - if !ok { - that2, ok := that.(SampleOneOf_Field9) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field9 != that1.Field9 { - return false - } - return true -} -func (this *SampleOneOf_Field10) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field10) - if !ok { - that2, ok := that.(SampleOneOf_Field10) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field10 != that1.Field10 { - return false - } - return true -} -func (this *SampleOneOf_Field11) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field11) - if !ok { - that2, ok := that.(SampleOneOf_Field11) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field11 != that1.Field11 { - return false - } - return true -} -func (this *SampleOneOf_Field12) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field12) - if !ok { - that2, ok := that.(SampleOneOf_Field12) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field12 != that1.Field12 { - return false - } - return true -} -func (this *SampleOneOf_Field13) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field13) - if !ok { - that2, ok := that.(SampleOneOf_Field13) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field13 != that1.Field13 { - return false - } - return true -} -func (this *SampleOneOf_Field14) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field14) - if !ok { - that2, ok := that.(SampleOneOf_Field14) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field14 != that1.Field14 { - return false - } - return true -} -func (this *SampleOneOf_Field15) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field15) - if !ok { - that2, ok := that.(SampleOneOf_Field15) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - return true -} -func (this *SampleOneOf_SubMessage) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_SubMessage) - if !ok { - that2, ok := that.(SampleOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.SubMessage.Equal(that1.SubMessage) { - return false - } - return true -} -func (this *Subby) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&one.Subby{") - s = append(s, "Sub: "+fmt.Sprintf("%#v", this.Sub)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *SampleOneOf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&one.SampleOneOf{") - if this.TestOneof != nil { - s = append(s, "TestOneof: "+fmt.Sprintf("%#v", this.TestOneof)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *SampleOneOf_Field1) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field1{` + - `Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field2{` + - `Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field3) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field3{` + - `Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field4) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field4{` + - `Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field5) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field5{` + - `Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field6) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field6{` + - `Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field7) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field7{` + - `Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field8) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field8{` + - `Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field9) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field9{` + - `Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field10) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field10{` + - `Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field11) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field11{` + - `Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field12) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field12{` + - `Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field13) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field13{` + - `Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field14) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field14{` + - `Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field15) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field15{` + - `Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ") - return s -} -func (this *SampleOneOf_SubMessage) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_SubMessage{` + - `SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ") - return s -} -func valueToGoStringOne(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedSubby(r randyOne, easy bool) *Subby { - this := &Subby{} - this.Sub = string(randStringOne(r)) - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedSampleOneOf(r randyOne, easy bool) *SampleOneOf { - this := &SampleOneOf{} - oneofNumber_TestOneof := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}[r.Intn(16)] - switch oneofNumber_TestOneof { - case 1: - this.TestOneof = NewPopulatedSampleOneOf_Field1(r, easy) - case 2: - this.TestOneof = NewPopulatedSampleOneOf_Field2(r, easy) - case 3: - this.TestOneof = NewPopulatedSampleOneOf_Field3(r, easy) - case 4: - this.TestOneof = NewPopulatedSampleOneOf_Field4(r, easy) - case 5: - this.TestOneof = NewPopulatedSampleOneOf_Field5(r, easy) - case 6: - this.TestOneof = NewPopulatedSampleOneOf_Field6(r, easy) - case 7: - this.TestOneof = NewPopulatedSampleOneOf_Field7(r, easy) - case 8: - this.TestOneof = NewPopulatedSampleOneOf_Field8(r, easy) - case 9: - this.TestOneof = NewPopulatedSampleOneOf_Field9(r, easy) - case 10: - this.TestOneof = NewPopulatedSampleOneOf_Field10(r, easy) - case 11: - this.TestOneof = NewPopulatedSampleOneOf_Field11(r, easy) - case 12: - this.TestOneof = NewPopulatedSampleOneOf_Field12(r, easy) - case 13: - this.TestOneof = NewPopulatedSampleOneOf_Field13(r, easy) - case 14: - this.TestOneof = NewPopulatedSampleOneOf_Field14(r, easy) - case 15: - this.TestOneof = NewPopulatedSampleOneOf_Field15(r, easy) - case 16: - this.TestOneof = NewPopulatedSampleOneOf_SubMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedSampleOneOf_Field1(r randyOne, easy bool) *SampleOneOf_Field1 { - this := &SampleOneOf_Field1{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field2(r randyOne, easy bool) *SampleOneOf_Field2 { - this := &SampleOneOf_Field2{} - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field3(r randyOne, easy bool) *SampleOneOf_Field3 { - this := &SampleOneOf_Field3{} - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field4(r randyOne, easy bool) *SampleOneOf_Field4 { - this := &SampleOneOf_Field4{} - this.Field4 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field5(r randyOne, easy bool) *SampleOneOf_Field5 { - this := &SampleOneOf_Field5{} - this.Field5 = uint32(r.Uint32()) - return this -} -func NewPopulatedSampleOneOf_Field6(r randyOne, easy bool) *SampleOneOf_Field6 { - this := &SampleOneOf_Field6{} - this.Field6 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedSampleOneOf_Field7(r randyOne, easy bool) *SampleOneOf_Field7 { - this := &SampleOneOf_Field7{} - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field8(r randyOne, easy bool) *SampleOneOf_Field8 { - this := &SampleOneOf_Field8{} - this.Field8 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field9(r randyOne, easy bool) *SampleOneOf_Field9 { - this := &SampleOneOf_Field9{} - this.Field9 = uint32(r.Uint32()) - return this -} -func NewPopulatedSampleOneOf_Field10(r randyOne, easy bool) *SampleOneOf_Field10 { - this := &SampleOneOf_Field10{} - this.Field10 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field11(r randyOne, easy bool) *SampleOneOf_Field11 { - this := &SampleOneOf_Field11{} - this.Field11 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedSampleOneOf_Field12(r randyOne, easy bool) *SampleOneOf_Field12 { - this := &SampleOneOf_Field12{} - this.Field12 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 { - this := &SampleOneOf_Field13{} - this.Field13 = bool(bool(r.Intn(2) == 0)) - return this -} -func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { - this := &SampleOneOf_Field14{} - this.Field14 = string(randStringOne(r)) - return this -} -func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { - this := &SampleOneOf_Field15{} - v1 := r.Intn(100) - this.Field15 = make([]byte, v1) - for i := 0; i < v1; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - return this -} -func NewPopulatedSampleOneOf_SubMessage(r randyOne, easy bool) *SampleOneOf_SubMessage { - this := &SampleOneOf_SubMessage{} - this.SubMessage = NewPopulatedSubby(r, easy) - return this -} - -type randyOne interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneOne(r randyOne) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringOne(r randyOne) string { - v2 := r.Intn(100) - tmps := make([]rune, v2) - for i := 0; i < v2; i++ { - tmps[i] = randUTF8RuneOne(r) - } - return string(tmps) -} -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldOne(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - v3 := r.Int63() - if r.Intn(2) == 0 { - v3 *= -1 - } - dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) - case 1: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Subby) Size() (n int) { - var l int - _ = l - l = len(m.Sub) - if l > 0 { - n += 1 + l + sovOne(uint64(l)) - } - return n -} - -func (m *SampleOneOf) Size() (n int) { - var l int - _ = l - if m.TestOneof != nil { - n += m.TestOneof.Size() - } - return n -} - -func (m *SampleOneOf_Field1) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *SampleOneOf_Field2) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *SampleOneOf_Field3) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field3)) - return n -} -func (m *SampleOneOf_Field4) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field4)) - return n -} -func (m *SampleOneOf_Field5) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field5)) - return n -} -func (m *SampleOneOf_Field6) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field6)) - return n -} -func (m *SampleOneOf_Field7) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field7)) - return n -} -func (m *SampleOneOf_Field8) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field8)) - return n -} -func (m *SampleOneOf_Field9) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *SampleOneOf_Field10) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *SampleOneOf_Field11) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *SampleOneOf_Field12) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *SampleOneOf_Field13) Size() (n int) { - var l int - _ = l - n += 2 - return n -} -func (m *SampleOneOf_Field14) Size() (n int) { - var l int - _ = l - l = len(m.Field14) - n += 1 + l + sovOne(uint64(l)) - return n -} -func (m *SampleOneOf_Field15) Size() (n int) { - var l int - _ = l - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovOne(uint64(l)) - } - return n -} -func (m *SampleOneOf_SubMessage) Size() (n int) { - var l int - _ = l - if m.SubMessage != nil { - l = m.SubMessage.Size() - n += 2 + l + sovOne(uint64(l)) - } - return n -} - -func sovOne(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozOne(x uint64) (n int) { - return sovOne(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Subby) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Subby{`, - `Sub:` + fmt.Sprintf("%v", this.Sub) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf{`, - `TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field1) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field1{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field2{`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field3{`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field4) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field4{`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field5) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field5{`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field6) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field6{`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field7) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field7{`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field8) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field8{`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field9) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field9{`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field10) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field10{`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field11) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field11{`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field12) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field12{`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field13) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field13{`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field14) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field14{`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field15) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field15{`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_SubMessage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_SubMessage{`, - `SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringOne(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Subby) 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 *Subby) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Sub) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Sub))) - i += copy(dAtA[i:], m.Sub) - } - return i, nil -} - -func (m *SampleOneOf) 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 *SampleOneOf) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.TestOneof != nil { - nn1, err := m.TestOneof.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn1 - } - return i, nil -} - -func (m *SampleOneOf_Field1) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.Field1 - i += 8 - return i, nil -} -func (m *SampleOneOf_Field2) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x15 - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Field2 - i += 4 - return i, nil -} -func (m *SampleOneOf_Field3) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x18 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field3)) - return i, nil -} -func (m *SampleOneOf_Field4) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x20 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field4)) - return i, nil -} -func (m *SampleOneOf_Field5) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x28 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field5)) - return i, nil -} -func (m *SampleOneOf_Field6) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x30 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.Field6)) - return i, nil -} -func (m *SampleOneOf_Field7) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x38 - i++ - i = encodeVarintOne(dAtA, i, uint64((uint32(m.Field7)<<1)^uint32((m.Field7>>31)))) - return i, nil -} -func (m *SampleOneOf_Field8) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x40 - i++ - i = encodeVarintOne(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) - return i, nil -} -func (m *SampleOneOf_Field9) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x4d - i++ - *(*uint32)(unsafe.Pointer(&dAtA[i])) = m.Field9 - i += 4 - return i, nil -} -func (m *SampleOneOf_Field10) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x55 - i++ - *(*int32)(unsafe.Pointer(&dAtA[i])) = m.Field10 - i += 4 - return i, nil -} -func (m *SampleOneOf_Field11) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x59 - i++ - *(*uint64)(unsafe.Pointer(&dAtA[i])) = m.Field11 - i += 8 - return i, nil -} -func (m *SampleOneOf_Field12) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x61 - i++ - *(*int64)(unsafe.Pointer(&dAtA[i])) = m.Field12 - i += 8 - return i, nil -} -func (m *SampleOneOf_Field13) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x68 - i++ - if m.Field13 { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - return i, nil -} -func (m *SampleOneOf_Field14) MarshalTo(dAtA []byte) (int, error) { - i := 0 - dAtA[i] = 0x72 - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field14))) - i += copy(dAtA[i:], m.Field14) - return i, nil -} -func (m *SampleOneOf_Field15) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Field15 != nil { - dAtA[i] = 0x7a - i++ - i = encodeVarintOne(dAtA, i, uint64(len(m.Field15))) - i += copy(dAtA[i:], m.Field15) - } - return i, nil -} -func (m *SampleOneOf_SubMessage) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.SubMessage != nil { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintOne(dAtA, i, uint64(m.SubMessage.Size())) - n2, err := m.SubMessage.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - return i, nil -} -func encodeFixed64One(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 encodeFixed32One(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 encodeVarintOne(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 init() { proto.RegisterFile("combos/unsafemarshaler/one.proto", fileDescriptorOne) } - -var fileDescriptorOne = []byte{ - // 411 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0x3f, 0x4f, 0x1b, 0x31, - 0x18, 0x06, 0x70, 0xbf, 0x1c, 0x49, 0xc0, 0x09, 0x25, 0xbd, 0xe9, 0x2d, 0xc3, 0x2b, 0x8b, 0xc9, - 0x0b, 0x49, 0x73, 0x97, 0xf0, 0x67, 0x45, 0x55, 0x95, 0xa5, 0x42, 0x0a, 0x1f, 0x00, 0x9d, 0xa9, - 0x13, 0x90, 0x72, 0x67, 0x14, 0xdf, 0x0d, 0xdd, 0xf8, 0x38, 0x1d, 0x3b, 0xf6, 0x23, 0x30, 0x32, - 0x76, 0xe8, 0xc0, 0xb9, 0x4b, 0x47, 0xc6, 0x8c, 0x55, 0x2e, 0xc5, 0xde, 0xde, 0xc7, 0x3f, 0x7b, - 0xb0, 0xfd, 0x70, 0x71, 0x6b, 0x72, 0x65, 0xec, 0xb0, 0x2a, 0x6c, 0x36, 0xd7, 0x79, 0xb6, 0xb2, - 0x77, 0xd9, 0x52, 0xaf, 0x86, 0xa6, 0xd0, 0x83, 0x87, 0x95, 0x29, 0x4d, 0x1c, 0x99, 0x42, 0x1f, - 0x9d, 0x2c, 0xee, 0xcb, 0xbb, 0x4a, 0x0d, 0x6e, 0x4d, 0x3e, 0x5c, 0x98, 0x85, 0x19, 0x36, 0xa6, - 0xaa, 0x79, 0x93, 0x9a, 0xd0, 0x4c, 0xdb, 0x33, 0xc7, 0x1f, 0x78, 0xeb, 0xba, 0x52, 0xea, 0x5b, - 0xdc, 0xe7, 0x91, 0xad, 0x14, 0x82, 0x00, 0xb9, 0x3f, 0xdb, 0x8c, 0xc7, 0xbf, 0x23, 0xde, 0xbd, - 0xce, 0xf2, 0x87, 0xa5, 0xbe, 0x2a, 0xf4, 0xd5, 0x3c, 0x46, 0xde, 0xfe, 0x7c, 0xaf, 0x97, 0x5f, - 0x47, 0xcd, 0x26, 0x98, 0xb2, 0xd9, 0xff, 0xec, 0x25, 0xc1, 0x1d, 0x01, 0x72, 0xc7, 0x4b, 0xe2, - 0x25, 0xc5, 0x48, 0x80, 0x6c, 0x79, 0x49, 0xbd, 0x8c, 0x71, 0x57, 0x80, 0x8c, 0xbc, 0x8c, 0xbd, - 0x4c, 0xb0, 0x25, 0x40, 0x1e, 0x78, 0x99, 0x78, 0x39, 0xc5, 0xb6, 0x00, 0xb9, 0xeb, 0xe5, 0xd4, - 0xcb, 0x19, 0x76, 0x04, 0xc8, 0xf7, 0x5e, 0xce, 0xbc, 0x9c, 0xe3, 0x9e, 0x00, 0x19, 0x7b, 0x39, - 0xf7, 0x72, 0x81, 0xfb, 0x02, 0x64, 0xc7, 0xcb, 0x45, 0x7c, 0xc4, 0x3b, 0xdb, 0x9b, 0x7d, 0x44, - 0x2e, 0x40, 0x1e, 0x4e, 0xd9, 0xec, 0x6d, 0x21, 0xd8, 0x08, 0xbb, 0x02, 0x64, 0x3b, 0xd8, 0x28, - 0x58, 0x82, 0x3d, 0x01, 0xb2, 0x1f, 0x2c, 0x09, 0x96, 0xe2, 0x81, 0x00, 0xb9, 0x17, 0x2c, 0x0d, - 0x36, 0xc6, 0x77, 0x9b, 0xf7, 0x0f, 0x36, 0x0e, 0x36, 0xc1, 0x43, 0x01, 0xb2, 0x17, 0x6c, 0x12, - 0x9f, 0xf0, 0xae, 0xad, 0xd4, 0x4d, 0xae, 0xad, 0xcd, 0x16, 0x1a, 0xfb, 0x02, 0x64, 0x37, 0xe1, - 0x83, 0x4d, 0x23, 0x9a, 0x4f, 0x9d, 0xb2, 0x19, 0xb7, 0x95, 0xfa, 0xb2, 0xf5, 0xcb, 0x1e, 0xe7, - 0xa5, 0xb6, 0xe5, 0x8d, 0x29, 0xb4, 0x99, 0x5f, 0x7e, 0x7a, 0xaa, 0x89, 0x3d, 0xd7, 0xc4, 0x7e, - 0xd5, 0xc4, 0x5e, 0x6a, 0x82, 0xd7, 0x9a, 0x60, 0x5d, 0x13, 0x3c, 0x3a, 0x82, 0xef, 0x8e, 0xe0, - 0x87, 0x23, 0xf8, 0xe9, 0x08, 0x9e, 0x1c, 0xb1, 0x67, 0x47, 0xec, 0xc5, 0x11, 0xfc, 0x75, 0xc4, - 0x5e, 0x1d, 0xc1, 0xda, 0x11, 0x3c, 0xfe, 0x21, 0xa6, 0xda, 0x4d, 0x8d, 0xd2, 0x7f, 0x01, 0x00, - 0x00, 0xff, 0xff, 0x20, 0xce, 0x90, 0x27, 0x9e, 0x02, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/onepb_test.go deleted file mode 100644 index f705abc4e..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafemarshaler/onepb_test.go +++ /dev/null @@ -1,414 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/one.proto -// DO NOT EDIT! - -/* -Package one is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/one.proto - -It has these top-level messages: - Subby - SampleOneOf -*/ -package one - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestSubbyProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestSubbyMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSampleOneOfProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestSampleOneOfMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestSampleOneOfJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &SampleOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestSubbyProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSampleOneOfProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSampleOneOfProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneDescription(t *testing.T) { - OneDescription() -} -func TestSubbyVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestSampleOneOfVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestSampleOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSampleOneOf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestSubbySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestSampleOneOfSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestSampleOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSampleOneOf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.pb.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.pb.go deleted file mode 100644 index fc75b6660..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.pb.go +++ /dev/null @@ -1,3181 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/one.proto -// DO NOT EDIT! - -/* - Package one is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeunmarshaler/one.proto - - It has these top-level messages: - Subby - SampleOneOf -*/ -package one - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strings "strings" -import reflect "reflect" - -import io "io" -import unsafe "unsafe" - -// 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 - -type Subby struct { - Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"` -} - -func (m *Subby) Reset() { *m = Subby{} } -func (*Subby) ProtoMessage() {} -func (*Subby) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{0} } - -type SampleOneOf struct { - // Types that are valid to be assigned to TestOneof: - // *SampleOneOf_Field1 - // *SampleOneOf_Field2 - // *SampleOneOf_Field3 - // *SampleOneOf_Field4 - // *SampleOneOf_Field5 - // *SampleOneOf_Field6 - // *SampleOneOf_Field7 - // *SampleOneOf_Field8 - // *SampleOneOf_Field9 - // *SampleOneOf_Field10 - // *SampleOneOf_Field11 - // *SampleOneOf_Field12 - // *SampleOneOf_Field13 - // *SampleOneOf_Field14 - // *SampleOneOf_Field15 - // *SampleOneOf_SubMessage - TestOneof isSampleOneOf_TestOneof `protobuf_oneof:"test_oneof"` -} - -func (m *SampleOneOf) Reset() { *m = SampleOneOf{} } -func (*SampleOneOf) ProtoMessage() {} -func (*SampleOneOf) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{1} } - -type isSampleOneOf_TestOneof interface { - isSampleOneOf_TestOneof() - Equal(interface{}) bool - VerboseEqual(interface{}) error - Size() int -} - -type SampleOneOf_Field1 struct { - Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"` -} -type SampleOneOf_Field2 struct { - Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"` -} -type SampleOneOf_Field3 struct { - Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"` -} -type SampleOneOf_Field4 struct { - Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"` -} -type SampleOneOf_Field5 struct { - Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"` -} -type SampleOneOf_Field6 struct { - Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"` -} -type SampleOneOf_Field7 struct { - Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"` -} -type SampleOneOf_Field8 struct { - Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"` -} -type SampleOneOf_Field9 struct { - Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"` -} -type SampleOneOf_Field10 struct { - Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"` -} -type SampleOneOf_Field11 struct { - Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"` -} -type SampleOneOf_Field12 struct { - Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"` -} -type SampleOneOf_Field13 struct { - Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"` -} -type SampleOneOf_Field14 struct { - Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"` -} -type SampleOneOf_Field15 struct { - Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"` -} -type SampleOneOf_SubMessage struct { - SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"` -} - -func (*SampleOneOf_Field1) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field2) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field3) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field4) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field5) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field6) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field7) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field8) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field9) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field10) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field11) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field12) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field13) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field14) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_Field15) isSampleOneOf_TestOneof() {} -func (*SampleOneOf_SubMessage) isSampleOneOf_TestOneof() {} - -func (m *SampleOneOf) GetTestOneof() isSampleOneOf_TestOneof { - if m != nil { - return m.TestOneof - } - return nil -} - -func (m *SampleOneOf) GetField1() float64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field1); ok { - return x.Field1 - } - return 0 -} - -func (m *SampleOneOf) GetField2() float32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field2); ok { - return x.Field2 - } - return 0 -} - -func (m *SampleOneOf) GetField3() int32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field3); ok { - return x.Field3 - } - return 0 -} - -func (m *SampleOneOf) GetField4() int64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field4); ok { - return x.Field4 - } - return 0 -} - -func (m *SampleOneOf) GetField5() uint32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field5); ok { - return x.Field5 - } - return 0 -} - -func (m *SampleOneOf) GetField6() uint64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field6); ok { - return x.Field6 - } - return 0 -} - -func (m *SampleOneOf) GetField7() int32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field7); ok { - return x.Field7 - } - return 0 -} - -func (m *SampleOneOf) GetField8() int64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field8); ok { - return x.Field8 - } - return 0 -} - -func (m *SampleOneOf) GetField9() uint32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field9); ok { - return x.Field9 - } - return 0 -} - -func (m *SampleOneOf) GetField10() int32 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field10); ok { - return x.Field10 - } - return 0 -} - -func (m *SampleOneOf) GetField11() uint64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field11); ok { - return x.Field11 - } - return 0 -} - -func (m *SampleOneOf) GetField12() int64 { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field12); ok { - return x.Field12 - } - return 0 -} - -func (m *SampleOneOf) GetField13() bool { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field13); ok { - return x.Field13 - } - return false -} - -func (m *SampleOneOf) GetField14() string { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field14); ok { - return x.Field14 - } - return "" -} - -func (m *SampleOneOf) GetField15() []byte { - if x, ok := m.GetTestOneof().(*SampleOneOf_Field15); ok { - return x.Field15 - } - return nil -} - -func (m *SampleOneOf) GetSubMessage() *Subby { - if x, ok := m.GetTestOneof().(*SampleOneOf_SubMessage); ok { - return x.SubMessage - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*SampleOneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _SampleOneOf_OneofMarshaler, _SampleOneOf_OneofUnmarshaler, _SampleOneOf_OneofSizer, []interface{}{ - (*SampleOneOf_Field1)(nil), - (*SampleOneOf_Field2)(nil), - (*SampleOneOf_Field3)(nil), - (*SampleOneOf_Field4)(nil), - (*SampleOneOf_Field5)(nil), - (*SampleOneOf_Field6)(nil), - (*SampleOneOf_Field7)(nil), - (*SampleOneOf_Field8)(nil), - (*SampleOneOf_Field9)(nil), - (*SampleOneOf_Field10)(nil), - (*SampleOneOf_Field11)(nil), - (*SampleOneOf_Field12)(nil), - (*SampleOneOf_Field13)(nil), - (*SampleOneOf_Field14)(nil), - (*SampleOneOf_Field15)(nil), - (*SampleOneOf_SubMessage)(nil), - } -} - -func _SampleOneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*SampleOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *SampleOneOf_Field1: - _ = b.EncodeVarint(1<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(math.Float64bits(x.Field1)) - case *SampleOneOf_Field2: - _ = b.EncodeVarint(2<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2))) - case *SampleOneOf_Field3: - _ = b.EncodeVarint(3<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field3)) - case *SampleOneOf_Field4: - _ = b.EncodeVarint(4<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field4)) - case *SampleOneOf_Field5: - _ = b.EncodeVarint(5<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field5)) - case *SampleOneOf_Field6: - _ = b.EncodeVarint(6<<3 | proto.WireVarint) - _ = b.EncodeVarint(uint64(x.Field6)) - case *SampleOneOf_Field7: - _ = b.EncodeVarint(7<<3 | proto.WireVarint) - _ = b.EncodeZigzag32(uint64(x.Field7)) - case *SampleOneOf_Field8: - _ = b.EncodeVarint(8<<3 | proto.WireVarint) - _ = b.EncodeZigzag64(uint64(x.Field8)) - case *SampleOneOf_Field9: - _ = b.EncodeVarint(9<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field9)) - case *SampleOneOf_Field10: - _ = b.EncodeVarint(10<<3 | proto.WireFixed32) - _ = b.EncodeFixed32(uint64(x.Field10)) - case *SampleOneOf_Field11: - _ = b.EncodeVarint(11<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field11)) - case *SampleOneOf_Field12: - _ = b.EncodeVarint(12<<3 | proto.WireFixed64) - _ = b.EncodeFixed64(uint64(x.Field12)) - case *SampleOneOf_Field13: - t := uint64(0) - if x.Field13 { - t = 1 - } - _ = b.EncodeVarint(13<<3 | proto.WireVarint) - _ = b.EncodeVarint(t) - case *SampleOneOf_Field14: - _ = b.EncodeVarint(14<<3 | proto.WireBytes) - _ = b.EncodeStringBytes(x.Field14) - case *SampleOneOf_Field15: - _ = b.EncodeVarint(15<<3 | proto.WireBytes) - _ = b.EncodeRawBytes(x.Field15) - case *SampleOneOf_SubMessage: - _ = b.EncodeVarint(16<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.SubMessage); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("SampleOneOf.TestOneof has unexpected type %T", x) - } - return nil -} - -func _SampleOneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*SampleOneOf) - switch tag { - case 1: // test_oneof.Field1 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &SampleOneOf_Field1{math.Float64frombits(x)} - return true, err - case 2: // test_oneof.Field2 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &SampleOneOf_Field2{math.Float32frombits(uint32(x))} - return true, err - case 3: // test_oneof.Field3 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field3{int32(x)} - return true, err - case 4: // test_oneof.Field4 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field4{int64(x)} - return true, err - case 5: // test_oneof.Field5 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field5{uint32(x)} - return true, err - case 6: // test_oneof.Field6 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field6{x} - return true, err - case 7: // test_oneof.Field7 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag32() - m.TestOneof = &SampleOneOf_Field7{int32(x)} - return true, err - case 8: // test_oneof.Field8 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeZigzag64() - m.TestOneof = &SampleOneOf_Field8{int64(x)} - return true, err - case 9: // test_oneof.Field9 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &SampleOneOf_Field9{uint32(x)} - return true, err - case 10: // test_oneof.Field10 - if wire != proto.WireFixed32 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed32() - m.TestOneof = &SampleOneOf_Field10{int32(x)} - return true, err - case 11: // test_oneof.Field11 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &SampleOneOf_Field11{x} - return true, err - case 12: // test_oneof.Field12 - if wire != proto.WireFixed64 { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeFixed64() - m.TestOneof = &SampleOneOf_Field12{int64(x)} - return true, err - case 13: // test_oneof.Field13 - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.TestOneof = &SampleOneOf_Field13{x != 0} - return true, err - case 14: // test_oneof.Field14 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeStringBytes() - m.TestOneof = &SampleOneOf_Field14{x} - return true, err - case 15: // test_oneof.Field15 - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - m.TestOneof = &SampleOneOf_Field15{x} - return true, err - case 16: // test_oneof.sub_message - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Subby) - err := b.DecodeMessage(msg) - m.TestOneof = &SampleOneOf_SubMessage{msg} - return true, err - default: - return false, nil - } -} - -func _SampleOneOf_OneofSizer(msg proto.Message) (n int) { - m := msg.(*SampleOneOf) - // test_oneof - switch x := m.TestOneof.(type) { - case *SampleOneOf_Field1: - n += proto.SizeVarint(1<<3 | proto.WireFixed64) - n += 8 - case *SampleOneOf_Field2: - n += proto.SizeVarint(2<<3 | proto.WireFixed32) - n += 4 - case *SampleOneOf_Field3: - n += proto.SizeVarint(3<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field3)) - case *SampleOneOf_Field4: - n += proto.SizeVarint(4<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field4)) - case *SampleOneOf_Field5: - n += proto.SizeVarint(5<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field5)) - case *SampleOneOf_Field6: - n += proto.SizeVarint(6<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(x.Field6)) - case *SampleOneOf_Field7: - n += proto.SizeVarint(7<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64((uint32(x.Field7) << 1) ^ uint32((int32(x.Field7) >> 31)))) - case *SampleOneOf_Field8: - n += proto.SizeVarint(8<<3 | proto.WireVarint) - n += proto.SizeVarint(uint64(uint64(x.Field8<<1) ^ uint64((int64(x.Field8) >> 63)))) - case *SampleOneOf_Field9: - n += proto.SizeVarint(9<<3 | proto.WireFixed32) - n += 4 - case *SampleOneOf_Field10: - n += proto.SizeVarint(10<<3 | proto.WireFixed32) - n += 4 - case *SampleOneOf_Field11: - n += proto.SizeVarint(11<<3 | proto.WireFixed64) - n += 8 - case *SampleOneOf_Field12: - n += proto.SizeVarint(12<<3 | proto.WireFixed64) - n += 8 - case *SampleOneOf_Field13: - n += proto.SizeVarint(13<<3 | proto.WireVarint) - n += 1 - case *SampleOneOf_Field14: - n += proto.SizeVarint(14<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field14))) - n += len(x.Field14) - case *SampleOneOf_Field15: - n += proto.SizeVarint(15<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(len(x.Field15))) - n += len(x.Field15) - case *SampleOneOf_SubMessage: - s := proto.Size(x.SubMessage) - n += proto.SizeVarint(16<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*Subby)(nil), "one.Subby") - proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf") -} -func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return OneDescription() -} -func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 3862 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x79, 0x17, 0x2b, 0xc7, 0xdc, 0x5d, 0xc6, - 0x8e, 0x65, 0xbb, 0x96, 0x6c, 0xed, 0x6a, 0x2f, 0xdc, 0x26, 0x1e, 0x8a, 0xe2, 0x6a, 0xb9, 0x95, - 0x44, 0x06, 0x94, 0xe2, 0x75, 0xfa, 0x80, 0x01, 0xc1, 0x9f, 0x14, 0x76, 0x41, 0x80, 0x01, 0xc0, - 0x5d, 0xcb, 0x4f, 0xdb, 0x71, 0x2f, 0x93, 0xe9, 0xf4, 0xde, 0x99, 0x26, 0xae, 0xe3, 0xa6, 0x99, - 0x69, 0x9d, 0x26, 0xbd, 0x24, 0xbd, 0xa4, 0x99, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, - 0x1f, 0xf2, 0xe0, 0x55, 0x3c, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf1, 0x4c, 0x33, 0xe3, 0x97, 0xcc, - 0x7f, 0x03, 0xc0, 0x8b, 0x16, 0x54, 0x66, 0x1c, 0x3f, 0x49, 0x38, 0xe7, 0x7c, 0x1f, 0x0e, 0xce, - 0x7f, 0xfe, 0x73, 0x0e, 0x7e, 0x02, 0x7e, 0xb0, 0x0e, 0xe7, 0x3a, 0xb6, 0xdd, 0x31, 0xd1, 0x6a, - 0xcf, 0xb1, 0x3d, 0xbb, 0xd9, 0x6f, 0xaf, 0xb6, 0x90, 0xab, 0x3b, 0x46, 0xcf, 0xb3, 0x9d, 0x15, - 0x22, 0x93, 0xe6, 0xa8, 0xc5, 0x0a, 0xb7, 0x28, 0xec, 0xc0, 0xfc, 0x75, 0xc3, 0x44, 0x9b, 0xbe, - 0x61, 0x03, 0x79, 0xd2, 0x15, 0x48, 0xb4, 0x0d, 0x13, 0xc9, 0xc2, 0xb9, 0xf8, 0x72, 0x66, 0xed, - 0xf1, 0x95, 0x21, 0xd0, 0xca, 0x20, 0xa2, 0x8e, 0xc5, 0x0a, 0x41, 0x14, 0xde, 0x49, 0xc0, 0xc2, - 0x18, 0xad, 0x24, 0x41, 0xc2, 0xd2, 0xba, 0x98, 0x51, 0x58, 0x4e, 0x2b, 0xe4, 0x7f, 0x49, 0x86, - 0x99, 0x9e, 0xa6, 0xdf, 0xd1, 0x3a, 0x48, 0x8e, 0x11, 0x31, 0xbf, 0x94, 0xf2, 0x00, 0x2d, 0xd4, - 0x43, 0x56, 0x0b, 0x59, 0xfa, 0xa1, 0x1c, 0x3f, 0x17, 0x5f, 0x4e, 0x2b, 0x21, 0x89, 0xf4, 0x0c, - 0xcc, 0xf7, 0xfa, 0x4d, 0xd3, 0xd0, 0xd5, 0x90, 0x19, 0x9c, 0x8b, 0x2f, 0x27, 0x15, 0x91, 0x2a, - 0x36, 0x03, 0xe3, 0x27, 0x61, 0xee, 0x1e, 0xd2, 0xee, 0x84, 0x4d, 0x33, 0xc4, 0x34, 0x87, 0xc5, - 0x21, 0xc3, 0x32, 0x64, 0xbb, 0xc8, 0x75, 0xb5, 0x0e, 0x52, 0xbd, 0xc3, 0x1e, 0x92, 0x13, 0xe4, - 0xe9, 0xcf, 0x8d, 0x3c, 0xfd, 0xf0, 0x93, 0x67, 0x18, 0x6a, 0xef, 0xb0, 0x87, 0xa4, 0x12, 0xa4, - 0x91, 0xd5, 0xef, 0x52, 0x86, 0xe4, 0x31, 0xf1, 0xab, 0x58, 0xfd, 0xee, 0x30, 0x4b, 0x0a, 0xc3, - 0x18, 0xc5, 0x8c, 0x8b, 0x9c, 0xbb, 0x86, 0x8e, 0xe4, 0x69, 0x42, 0xf0, 0xe4, 0x08, 0x41, 0x83, - 0xea, 0x87, 0x39, 0x38, 0x4e, 0x2a, 0x43, 0x1a, 0xbd, 0xec, 0x21, 0xcb, 0x35, 0x6c, 0x4b, 0x9e, - 0x21, 0x24, 0x4f, 0x8c, 0x59, 0x45, 0x64, 0xb6, 0x86, 0x29, 0x02, 0x9c, 0x74, 0x09, 0x66, 0xec, - 0x9e, 0x67, 0xd8, 0x96, 0x2b, 0xa7, 0xce, 0x09, 0xcb, 0x99, 0xb5, 0x8f, 0x8d, 0x4d, 0x84, 0x1a, - 0xb5, 0x51, 0xb8, 0xb1, 0x54, 0x05, 0xd1, 0xb5, 0xfb, 0x8e, 0x8e, 0x54, 0xdd, 0x6e, 0x21, 0xd5, - 0xb0, 0xda, 0xb6, 0x9c, 0x26, 0x04, 0x67, 0x47, 0x1f, 0x84, 0x18, 0x96, 0xed, 0x16, 0xaa, 0x5a, - 0x6d, 0x5b, 0xc9, 0xb9, 0x03, 0xd7, 0xd2, 0x29, 0x98, 0x76, 0x0f, 0x2d, 0x4f, 0x7b, 0x59, 0xce, - 0x92, 0x0c, 0x61, 0x57, 0x85, 0xff, 0x4f, 0xc2, 0xdc, 0x24, 0x29, 0x76, 0x0d, 0x92, 0x6d, 0xfc, - 0x94, 0x72, 0xec, 0x24, 0x31, 0xa0, 0x98, 0xc1, 0x20, 0x4e, 0xff, 0x94, 0x41, 0x2c, 0x41, 0xc6, - 0x42, 0xae, 0x87, 0x5a, 0x34, 0x23, 0xe2, 0x13, 0xe6, 0x14, 0x50, 0xd0, 0x68, 0x4a, 0x25, 0x7e, - 0xaa, 0x94, 0xba, 0x05, 0x73, 0xbe, 0x4b, 0xaa, 0xa3, 0x59, 0x1d, 0x9e, 0x9b, 0xab, 0x51, 0x9e, - 0xac, 0x54, 0x38, 0x4e, 0xc1, 0x30, 0x25, 0x87, 0x06, 0xae, 0xa5, 0x4d, 0x00, 0xdb, 0x42, 0x76, - 0x5b, 0x6d, 0x21, 0xdd, 0x94, 0x53, 0xc7, 0x44, 0xa9, 0x86, 0x4d, 0x46, 0xa2, 0x64, 0x53, 0xa9, - 0x6e, 0x4a, 0x57, 0x83, 0x54, 0x9b, 0x39, 0x26, 0x53, 0x76, 0xe8, 0x26, 0x1b, 0xc9, 0xb6, 0x7d, - 0xc8, 0x39, 0x08, 0xe7, 0x3d, 0x6a, 0xb1, 0x27, 0x4b, 0x13, 0x27, 0x56, 0x22, 0x9f, 0x4c, 0x61, - 0x30, 0xfa, 0x60, 0xb3, 0x4e, 0xf8, 0x52, 0xfa, 0x38, 0xf8, 0x02, 0x95, 0xa4, 0x15, 0x90, 0x2a, - 0x94, 0xe5, 0xc2, 0x5d, 0xad, 0x8b, 0x96, 0xae, 0x40, 0x6e, 0x30, 0x3c, 0xd2, 0x22, 0x24, 0x5d, - 0x4f, 0x73, 0x3c, 0x92, 0x85, 0x49, 0x85, 0x5e, 0x48, 0x22, 0xc4, 0x91, 0xd5, 0x22, 0x55, 0x2e, - 0xa9, 0xe0, 0x7f, 0x97, 0x2e, 0xc3, 0xec, 0xc0, 0xed, 0x27, 0x05, 0x16, 0xbe, 0x30, 0x0d, 0x8b, - 0xe3, 0x72, 0x6e, 0x6c, 0xfa, 0x9f, 0x82, 0x69, 0xab, 0xdf, 0x6d, 0x22, 0x47, 0x8e, 0x13, 0x06, - 0x76, 0x25, 0x95, 0x20, 0x69, 0x6a, 0x4d, 0x64, 0xca, 0x89, 0x73, 0xc2, 0x72, 0x6e, 0xed, 0x99, - 0x89, 0xb2, 0x7a, 0x65, 0x1b, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x05, 0x09, 0x56, 0xe2, 0x30, 0xc3, - 0xd3, 0x93, 0x31, 0xe0, 0x5c, 0x54, 0x08, 0x4e, 0x7a, 0x14, 0xd2, 0xf8, 0x2f, 0x8d, 0xed, 0x34, - 0xf1, 0x39, 0x85, 0x05, 0x38, 0xae, 0xd2, 0x12, 0xa4, 0x48, 0x9a, 0xb5, 0x10, 0x6f, 0x0d, 0xfe, - 0x35, 0x5e, 0x98, 0x16, 0x6a, 0x6b, 0x7d, 0xd3, 0x53, 0xef, 0x6a, 0x66, 0x1f, 0x91, 0x84, 0x49, - 0x2b, 0x59, 0x26, 0xfc, 0x0c, 0x96, 0x49, 0x67, 0x21, 0x43, 0xb3, 0xd2, 0xb0, 0x5a, 0xe8, 0x65, - 0x52, 0x7d, 0x92, 0x0a, 0x4d, 0xd4, 0x2a, 0x96, 0xe0, 0xdb, 0xdf, 0x76, 0x6d, 0x8b, 0x2f, 0x2d, - 0xb9, 0x05, 0x16, 0x90, 0xdb, 0x5f, 0x1e, 0x2e, 0x7c, 0x8f, 0x8d, 0x7f, 0xbc, 0xe1, 0x5c, 0x2c, - 0x7c, 0x2b, 0x06, 0x09, 0xb2, 0xdf, 0xe6, 0x20, 0xb3, 0xf7, 0x52, 0xbd, 0xa2, 0x6e, 0xd6, 0xf6, - 0x37, 0xb6, 0x2b, 0xa2, 0x20, 0xe5, 0x00, 0x88, 0xe0, 0xfa, 0x76, 0xad, 0xb4, 0x27, 0xc6, 0xfc, - 0xeb, 0xea, 0xee, 0xde, 0xa5, 0x8b, 0x62, 0xdc, 0x07, 0xec, 0x53, 0x41, 0x22, 0x6c, 0x70, 0x61, - 0x4d, 0x4c, 0x4a, 0x22, 0x64, 0x29, 0x41, 0xf5, 0x56, 0x65, 0xf3, 0xd2, 0x45, 0x71, 0x7a, 0x50, - 0x72, 0x61, 0x4d, 0x9c, 0x91, 0x66, 0x21, 0x4d, 0x24, 0x1b, 0xb5, 0xda, 0xb6, 0x98, 0xf2, 0x39, - 0x1b, 0x7b, 0x4a, 0x75, 0x77, 0x4b, 0x4c, 0xfb, 0x9c, 0x5b, 0x4a, 0x6d, 0xbf, 0x2e, 0x82, 0xcf, - 0xb0, 0x53, 0x69, 0x34, 0x4a, 0x5b, 0x15, 0x31, 0xe3, 0x5b, 0x6c, 0xbc, 0xb4, 0x57, 0x69, 0x88, - 0xd9, 0x01, 0xb7, 0x2e, 0xac, 0x89, 0xb3, 0xfe, 0x2d, 0x2a, 0xbb, 0xfb, 0x3b, 0x62, 0x4e, 0x9a, - 0x87, 0x59, 0x7a, 0x0b, 0xee, 0xc4, 0xdc, 0x90, 0xe8, 0xd2, 0x45, 0x51, 0x0c, 0x1c, 0xa1, 0x2c, - 0xf3, 0x03, 0x82, 0x4b, 0x17, 0x45, 0xa9, 0x50, 0x86, 0x24, 0xc9, 0x2e, 0x49, 0x82, 0xdc, 0x76, - 0x69, 0xa3, 0xb2, 0xad, 0xd6, 0xea, 0x7b, 0xd5, 0xda, 0x6e, 0x69, 0x5b, 0x14, 0x02, 0x99, 0x52, - 0xf9, 0xf4, 0x7e, 0x55, 0xa9, 0x6c, 0x8a, 0xb1, 0xb0, 0xac, 0x5e, 0x29, 0xed, 0x55, 0x36, 0xc5, - 0x78, 0x41, 0x87, 0xc5, 0x71, 0x75, 0x66, 0xec, 0xce, 0x08, 0x2d, 0x71, 0xec, 0x98, 0x25, 0x26, - 0x5c, 0x23, 0x4b, 0xfc, 0x15, 0x01, 0x16, 0xc6, 0xd4, 0xda, 0xb1, 0x37, 0x79, 0x01, 0x92, 0x34, - 0x45, 0x69, 0xf7, 0x79, 0x6a, 0x6c, 0xd1, 0x26, 0x09, 0x3b, 0xd2, 0x81, 0x08, 0x2e, 0xdc, 0x81, - 0xe3, 0xc7, 0x74, 0x60, 0x4c, 0x31, 0xe2, 0xe4, 0xab, 0x02, 0xc8, 0xc7, 0x71, 0x47, 0x14, 0x8a, - 0xd8, 0x40, 0xa1, 0xb8, 0x36, 0xec, 0xc0, 0xf9, 0xe3, 0x9f, 0x61, 0xc4, 0x8b, 0x37, 0x05, 0x38, - 0x35, 0x7e, 0x50, 0x19, 0xeb, 0xc3, 0xa7, 0x60, 0xba, 0x8b, 0xbc, 0x03, 0x9b, 0x37, 0xeb, 0x4f, - 0x8c, 0x69, 0x01, 0x58, 0x3d, 0x1c, 0x2b, 0x86, 0x0a, 0xf7, 0x90, 0xf8, 0x71, 0xd3, 0x06, 0xf5, - 0x66, 0xc4, 0xd3, 0xcf, 0xc7, 0xe0, 0x91, 0xb1, 0xe4, 0x63, 0x1d, 0x7d, 0x0c, 0xc0, 0xb0, 0x7a, - 0x7d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x7d, 0xcf, 0xd7, - 0xc7, 0x89, 0x1e, 0xa8, 0x88, 0x18, 0x5c, 0x09, 0x1c, 0x4d, 0x10, 0x47, 0xf3, 0xc7, 0x3c, 0xe9, - 0x48, 0xaf, 0x7b, 0x0e, 0x44, 0xdd, 0x34, 0x90, 0xe5, 0xa9, 0xae, 0xe7, 0x20, 0xad, 0x6b, 0x58, - 0x1d, 0x52, 0x80, 0x53, 0xc5, 0x64, 0x5b, 0x33, 0x5d, 0xa4, 0xcc, 0x51, 0x75, 0x83, 0x6b, 0x31, - 0x82, 0x74, 0x19, 0x27, 0x84, 0x98, 0x1e, 0x40, 0x50, 0xb5, 0x8f, 0x28, 0x7c, 0x7d, 0x06, 0x32, - 0xa1, 0xb1, 0x4e, 0x3a, 0x0f, 0xd9, 0xdb, 0xda, 0x5d, 0x4d, 0xe5, 0xa3, 0x3a, 0x8d, 0x44, 0x06, - 0xcb, 0xea, 0x6c, 0x5c, 0x7f, 0x0e, 0x16, 0x89, 0x89, 0xdd, 0xf7, 0x90, 0xa3, 0xea, 0xa6, 0xe6, - 0xba, 0x24, 0x68, 0x29, 0x62, 0x2a, 0x61, 0x5d, 0x0d, 0xab, 0xca, 0x5c, 0x23, 0xad, 0xc3, 0x02, - 0x41, 0x74, 0xfb, 0xa6, 0x67, 0xf4, 0x4c, 0xa4, 0xe2, 0x97, 0x07, 0x97, 0x14, 0x62, 0xdf, 0xb3, - 0x79, 0x6c, 0xb1, 0xc3, 0x0c, 0xb0, 0x47, 0xae, 0xb4, 0x09, 0x8f, 0x11, 0x58, 0x07, 0x59, 0xc8, - 0xd1, 0x3c, 0xa4, 0xa2, 0xcf, 0xf5, 0x35, 0xd3, 0x55, 0x35, 0xab, 0xa5, 0x1e, 0x68, 0xee, 0x81, - 0xbc, 0x88, 0x09, 0x36, 0x62, 0xb2, 0xa0, 0x9c, 0xc1, 0x86, 0x5b, 0xcc, 0xae, 0x42, 0xcc, 0x4a, - 0x56, 0xeb, 0x86, 0xe6, 0x1e, 0x48, 0x45, 0x38, 0x45, 0x58, 0x5c, 0xcf, 0x31, 0xac, 0x8e, 0xaa, - 0x1f, 0x20, 0xfd, 0x8e, 0xda, 0xf7, 0xda, 0x57, 0xe4, 0x47, 0xc3, 0xf7, 0x27, 0x1e, 0x36, 0x88, - 0x4d, 0x19, 0x9b, 0xec, 0x7b, 0xed, 0x2b, 0x52, 0x03, 0xb2, 0x78, 0x31, 0xba, 0xc6, 0x2b, 0x48, - 0x6d, 0xdb, 0x0e, 0xe9, 0x2c, 0xb9, 0x31, 0x3b, 0x3b, 0x14, 0xc1, 0x95, 0x1a, 0x03, 0xec, 0xd8, - 0x2d, 0x54, 0x4c, 0x36, 0xea, 0x95, 0xca, 0xa6, 0x92, 0xe1, 0x2c, 0xd7, 0x6d, 0x07, 0x27, 0x54, - 0xc7, 0xf6, 0x03, 0x9c, 0xa1, 0x09, 0xd5, 0xb1, 0x79, 0x78, 0xd7, 0x61, 0x41, 0xd7, 0xe9, 0x33, - 0x1b, 0xba, 0xca, 0x46, 0x7c, 0x57, 0x16, 0x07, 0x82, 0xa5, 0xeb, 0x5b, 0xd4, 0x80, 0xe5, 0xb8, - 0x2b, 0x5d, 0x85, 0x47, 0x82, 0x60, 0x85, 0x81, 0xf3, 0x23, 0x4f, 0x39, 0x0c, 0x5d, 0x87, 0x85, - 0xde, 0xe1, 0x28, 0x50, 0x1a, 0xb8, 0x63, 0xef, 0x70, 0x18, 0xf6, 0x04, 0x79, 0x6d, 0x73, 0x90, - 0xae, 0x79, 0xa8, 0x25, 0x9f, 0x0e, 0x5b, 0x87, 0x14, 0xd2, 0x2a, 0x88, 0xba, 0xae, 0x22, 0x4b, - 0x6b, 0x9a, 0x48, 0xd5, 0x1c, 0x64, 0x69, 0xae, 0x7c, 0x36, 0x6c, 0x9c, 0xd3, 0xf5, 0x0a, 0xd1, - 0x96, 0x88, 0x52, 0x7a, 0x1a, 0xe6, 0xed, 0xe6, 0x6d, 0x9d, 0x66, 0x96, 0xda, 0x73, 0x50, 0xdb, - 0x78, 0x59, 0x7e, 0x9c, 0x84, 0x69, 0x0e, 0x2b, 0x48, 0x5e, 0xd5, 0x89, 0x58, 0x7a, 0x0a, 0x44, - 0xdd, 0x3d, 0xd0, 0x9c, 0x1e, 0x69, 0xed, 0x6e, 0x4f, 0xd3, 0x91, 0xfc, 0x04, 0x35, 0xa5, 0xf2, - 0x5d, 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x33, 0xda, 0x1e, 0x67, 0x7c, 0x92, 0x66, 0x36, 0x91, 0x31, - 0xb6, 0x5b, 0xb0, 0xd8, 0xb7, 0x0c, 0xcb, 0x43, 0x4e, 0xcf, 0x41, 0x78, 0x88, 0xa7, 0x3b, 0x51, - 0xfe, 0xb7, 0x99, 0x63, 0xc6, 0xf0, 0xfd, 0xb0, 0x35, 0x4d, 0x00, 0x65, 0xa1, 0x3f, 0x2a, 0x2c, - 0x14, 0x21, 0x1b, 0xce, 0x0b, 0x29, 0x0d, 0x34, 0x33, 0x44, 0x01, 0xf7, 0xd8, 0x72, 0x6d, 0x13, - 0x77, 0xc7, 0xcf, 0x56, 0xc4, 0x18, 0xee, 0xd2, 0xdb, 0xd5, 0xbd, 0x8a, 0xaa, 0xec, 0xef, 0xee, - 0x55, 0x77, 0x2a, 0x62, 0xfc, 0xe9, 0x74, 0xea, 0x87, 0x33, 0xe2, 0xfd, 0xfb, 0xf7, 0xef, 0xc7, - 0x0a, 0xdf, 0x89, 0x41, 0x6e, 0x70, 0x32, 0x96, 0x7e, 0x1e, 0x4e, 0xf3, 0xd7, 0x58, 0x17, 0x79, - 0xea, 0x3d, 0xc3, 0x21, 0xa9, 0xda, 0xd5, 0xe8, 0x6c, 0xe9, 0x47, 0x79, 0x91, 0x59, 0x35, 0x90, - 0xf7, 0xa2, 0xe1, 0xe0, 0x44, 0xec, 0x6a, 0x9e, 0xb4, 0x0d, 0x67, 0x2d, 0x5b, 0x75, 0x3d, 0xcd, - 0x6a, 0x69, 0x4e, 0x4b, 0x0d, 0x0e, 0x10, 0x54, 0x4d, 0xd7, 0x91, 0xeb, 0xda, 0xb4, 0x45, 0xf8, - 0x2c, 0x1f, 0xb3, 0xec, 0x06, 0x33, 0x0e, 0x6a, 0x67, 0x89, 0x99, 0x0e, 0x65, 0x44, 0xfc, 0xb8, - 0x8c, 0x78, 0x14, 0xd2, 0x5d, 0xad, 0xa7, 0x22, 0xcb, 0x73, 0x0e, 0xc9, 0x3c, 0x97, 0x52, 0x52, - 0x5d, 0xad, 0x57, 0xc1, 0xd7, 0x1f, 0xde, 0x1a, 0x84, 0xe3, 0xf8, 0xfd, 0x38, 0x64, 0xc3, 0x33, - 0x1d, 0x1e, 0x91, 0x75, 0x52, 0xbf, 0x05, 0xb2, 0xc3, 0x3f, 0xfe, 0xd0, 0x09, 0x70, 0xa5, 0x8c, - 0x0b, 0x7b, 0x71, 0x9a, 0x4e, 0x5a, 0x0a, 0x45, 0xe2, 0xa6, 0x8a, 0xf7, 0x34, 0xa2, 0xf3, 0x7b, - 0x4a, 0x61, 0x57, 0xd2, 0x16, 0x4c, 0xdf, 0x76, 0x09, 0xf7, 0x34, 0xe1, 0x7e, 0xfc, 0xe1, 0xdc, - 0x37, 0x1b, 0x84, 0x3c, 0x7d, 0xb3, 0xa1, 0xee, 0xd6, 0x94, 0x9d, 0xd2, 0xb6, 0xc2, 0xe0, 0xd2, - 0x19, 0x48, 0x98, 0xda, 0x2b, 0x87, 0x83, 0x2d, 0x80, 0x88, 0x26, 0x0d, 0xfc, 0x19, 0x48, 0xdc, - 0x43, 0xda, 0x9d, 0xc1, 0xc2, 0x4b, 0x44, 0x1f, 0x62, 0xea, 0xaf, 0x42, 0x92, 0xc4, 0x4b, 0x02, - 0x60, 0x11, 0x13, 0xa7, 0xa4, 0x14, 0x24, 0xca, 0x35, 0x05, 0xa7, 0xbf, 0x08, 0x59, 0x2a, 0x55, - 0xeb, 0xd5, 0x4a, 0xb9, 0x22, 0xc6, 0x0a, 0xeb, 0x30, 0x4d, 0x83, 0x80, 0xb7, 0x86, 0x1f, 0x06, - 0x71, 0x8a, 0x5d, 0x32, 0x0e, 0x81, 0x6b, 0xf7, 0x77, 0x36, 0x2a, 0x8a, 0x18, 0x0b, 0x2f, 0xaf, - 0x0b, 0xd9, 0xf0, 0x38, 0xf7, 0xb3, 0xc9, 0xa9, 0x7f, 0x10, 0x20, 0x13, 0x1a, 0xcf, 0xf0, 0x60, - 0xa0, 0x99, 0xa6, 0x7d, 0x4f, 0xd5, 0x4c, 0x43, 0x73, 0x59, 0x52, 0x00, 0x11, 0x95, 0xb0, 0x64, - 0xd2, 0x45, 0xfb, 0x99, 0x38, 0xff, 0x86, 0x00, 0xe2, 0xf0, 0x68, 0x37, 0xe4, 0xa0, 0xf0, 0x91, - 0x3a, 0xf8, 0xba, 0x00, 0xb9, 0xc1, 0x79, 0x6e, 0xc8, 0xbd, 0xf3, 0x1f, 0xa9, 0x7b, 0x6f, 0xc7, - 0x60, 0x76, 0x60, 0x8a, 0x9b, 0xd4, 0xbb, 0xcf, 0xc1, 0xbc, 0xd1, 0x42, 0xdd, 0x9e, 0xed, 0x21, - 0x4b, 0x3f, 0x54, 0x4d, 0x74, 0x17, 0x99, 0x72, 0x81, 0x14, 0x8a, 0xd5, 0x87, 0xcf, 0x89, 0x2b, - 0xd5, 0x00, 0xb7, 0x8d, 0x61, 0xc5, 0x85, 0xea, 0x66, 0x65, 0xa7, 0x5e, 0xdb, 0xab, 0xec, 0x96, - 0x5f, 0x52, 0xf7, 0x77, 0x7f, 0x61, 0xb7, 0xf6, 0xe2, 0xae, 0x22, 0x1a, 0x43, 0x66, 0x1f, 0xe2, - 0x56, 0xaf, 0x83, 0x38, 0xec, 0x94, 0x74, 0x1a, 0xc6, 0xb9, 0x25, 0x4e, 0x49, 0x0b, 0x30, 0xb7, - 0x5b, 0x53, 0x1b, 0xd5, 0xcd, 0x8a, 0x5a, 0xb9, 0x7e, 0xbd, 0x52, 0xde, 0x6b, 0xd0, 0x17, 0x67, - 0xdf, 0x7a, 0x6f, 0x70, 0x53, 0xbf, 0x16, 0x87, 0x85, 0x31, 0x9e, 0x48, 0x25, 0x36, 0xb3, 0xd3, - 0xd7, 0x88, 0x67, 0x27, 0xf1, 0x7e, 0x05, 0x4f, 0x05, 0x75, 0xcd, 0xf1, 0xd8, 0x88, 0xff, 0x14, - 0xe0, 0x28, 0x59, 0x9e, 0xd1, 0x36, 0x90, 0xc3, 0xce, 0x19, 0xe8, 0x20, 0x3f, 0x17, 0xc8, 0xe9, - 0x51, 0xc3, 0xcf, 0x81, 0xd4, 0xb3, 0x5d, 0xc3, 0x33, 0xee, 0x22, 0xd5, 0xb0, 0xf8, 0xa1, 0x04, - 0x1e, 0xec, 0x13, 0x8a, 0xc8, 0x35, 0x55, 0xcb, 0xf3, 0xad, 0x2d, 0xd4, 0xd1, 0x86, 0xac, 0x71, - 0x01, 0x8f, 0x2b, 0x22, 0xd7, 0xf8, 0xd6, 0xe7, 0x21, 0xdb, 0xb2, 0xfb, 0x78, 0x4c, 0xa2, 0x76, - 0xb8, 0x5f, 0x08, 0x4a, 0x86, 0xca, 0x7c, 0x13, 0x36, 0xc7, 0x06, 0xa7, 0x21, 0x59, 0x25, 0x43, - 0x65, 0xd4, 0xe4, 0x49, 0x98, 0xd3, 0x3a, 0x1d, 0x07, 0x93, 0x73, 0x22, 0x3a, 0x99, 0xe7, 0x7c, - 0x31, 0x31, 0x5c, 0xba, 0x09, 0x29, 0x1e, 0x07, 0xdc, 0x92, 0x71, 0x24, 0xd4, 0x1e, 0x3d, 0x93, - 0x8a, 0x2d, 0xa7, 0x95, 0x94, 0xc5, 0x95, 0xe7, 0x21, 0x6b, 0xb8, 0x6a, 0x70, 0x38, 0x1a, 0x3b, - 0x17, 0x5b, 0x4e, 0x29, 0x19, 0xc3, 0xf5, 0x4f, 0xc3, 0x0a, 0x6f, 0xc6, 0x20, 0x37, 0x78, 0xb8, - 0x2b, 0x6d, 0x42, 0xca, 0xb4, 0x75, 0x8d, 0xa4, 0x16, 0xfd, 0x65, 0x61, 0x39, 0xe2, 0x3c, 0x78, - 0x65, 0x9b, 0xd9, 0x2b, 0x3e, 0x72, 0xe9, 0x5f, 0x04, 0x48, 0x71, 0xb1, 0x74, 0x0a, 0x12, 0x3d, - 0xcd, 0x3b, 0x20, 0x74, 0xc9, 0x8d, 0x98, 0x28, 0x28, 0xe4, 0x1a, 0xcb, 0xdd, 0x9e, 0x66, 0x91, - 0x14, 0x60, 0x72, 0x7c, 0x8d, 0xd7, 0xd5, 0x44, 0x5a, 0x8b, 0x8c, 0xfd, 0x76, 0xb7, 0x8b, 0x2c, - 0xcf, 0xe5, 0xeb, 0xca, 0xe4, 0x65, 0x26, 0x96, 0x9e, 0x81, 0x79, 0xcf, 0xd1, 0x0c, 0x73, 0xc0, - 0x36, 0x41, 0x6c, 0x45, 0xae, 0xf0, 0x8d, 0x8b, 0x70, 0x86, 0xf3, 0xb6, 0x90, 0xa7, 0xe9, 0x07, - 0xa8, 0x15, 0x80, 0xa6, 0xc9, 0xc9, 0xe1, 0x69, 0x66, 0xb0, 0xc9, 0xf4, 0x1c, 0x5b, 0xf8, 0x9e, - 0x00, 0xf3, 0xfc, 0x45, 0xa5, 0xe5, 0x07, 0x6b, 0x07, 0x40, 0xb3, 0x2c, 0xdb, 0x0b, 0x87, 0x6b, - 0x34, 0x95, 0x47, 0x70, 0x2b, 0x25, 0x1f, 0xa4, 0x84, 0x08, 0x96, 0xba, 0x00, 0x81, 0xe6, 0xd8, - 0xb0, 0x9d, 0x85, 0x0c, 0x3b, 0xb9, 0x27, 0x3f, 0xff, 0xd0, 0x57, 0x5b, 0xa0, 0x22, 0xfc, 0x46, - 0x23, 0x2d, 0x42, 0xb2, 0x89, 0x3a, 0x86, 0xc5, 0xce, 0x13, 0xe9, 0x05, 0x3f, 0xa5, 0x4c, 0xf8, - 0xa7, 0x94, 0x1b, 0xb7, 0x60, 0x41, 0xb7, 0xbb, 0xc3, 0xee, 0x6e, 0x88, 0x43, 0xaf, 0xd7, 0xee, - 0x0d, 0xe1, 0xb3, 0x10, 0x8c, 0x98, 0x5f, 0x89, 0xc5, 0xb7, 0xea, 0x1b, 0x5f, 0x8b, 0x2d, 0x6d, - 0x51, 0x5c, 0x9d, 0x3f, 0xa6, 0x82, 0xda, 0x26, 0xd2, 0xb1, 0xeb, 0xf0, 0xa3, 0x4f, 0xc0, 0xb3, - 0x1d, 0xc3, 0x3b, 0xe8, 0x37, 0x57, 0x74, 0xbb, 0xbb, 0xda, 0xb1, 0x3b, 0x76, 0xf0, 0x73, 0x17, - 0xbe, 0x22, 0x17, 0xe4, 0x3f, 0xf6, 0x93, 0x57, 0xda, 0x97, 0x2e, 0x45, 0xfe, 0x3e, 0x56, 0xdc, - 0x85, 0x05, 0x66, 0xac, 0x92, 0x33, 0x77, 0xfa, 0x6a, 0x20, 0x3d, 0xf4, 0xdc, 0x45, 0xfe, 0xe6, - 0x3b, 0xa4, 0x57, 0x2b, 0xf3, 0x0c, 0x8a, 0x75, 0xf4, 0x05, 0xa2, 0xa8, 0xc0, 0x23, 0x03, 0x7c, - 0x74, 0x5f, 0x22, 0x27, 0x82, 0xf1, 0x3b, 0x8c, 0x71, 0x21, 0xc4, 0xd8, 0x60, 0xd0, 0x62, 0x19, - 0x66, 0x4f, 0xc2, 0xf5, 0x4f, 0x8c, 0x2b, 0x8b, 0xc2, 0x24, 0x5b, 0x30, 0x47, 0x48, 0xf4, 0xbe, - 0xeb, 0xd9, 0x5d, 0x52, 0xf4, 0x1e, 0x4e, 0xf3, 0xcf, 0xef, 0xd0, 0x8d, 0x92, 0xc3, 0xb0, 0xb2, - 0x8f, 0x2a, 0x16, 0x81, 0xfc, 0xcc, 0xd0, 0x42, 0xba, 0x19, 0xc1, 0xf0, 0x16, 0x73, 0xc4, 0xb7, - 0x2f, 0x7e, 0x06, 0x16, 0xf1, 0xff, 0xa4, 0x26, 0x85, 0x3d, 0x89, 0x3e, 0x65, 0x92, 0xbf, 0xf7, - 0x2a, 0xdd, 0x8b, 0x0b, 0x3e, 0x41, 0xc8, 0xa7, 0xd0, 0x2a, 0x76, 0x90, 0xe7, 0x21, 0xc7, 0x55, - 0x35, 0x73, 0x9c, 0x7b, 0xa1, 0xd7, 0x74, 0xf9, 0x8b, 0xef, 0x0e, 0xae, 0xe2, 0x16, 0x45, 0x96, - 0x4c, 0xb3, 0xb8, 0x0f, 0xa7, 0xc7, 0x64, 0xc5, 0x04, 0x9c, 0xaf, 0x31, 0xce, 0xc5, 0x91, 0xcc, - 0xc0, 0xb4, 0x75, 0xe0, 0x72, 0x7f, 0x2d, 0x27, 0xe0, 0xfc, 0x43, 0xc6, 0x29, 0x31, 0x2c, 0x5f, - 0x52, 0xcc, 0x78, 0x13, 0xe6, 0xef, 0x22, 0xa7, 0x69, 0xbb, 0xec, 0x68, 0x64, 0x02, 0xba, 0xd7, - 0x19, 0xdd, 0x1c, 0x03, 0x92, 0xb3, 0x12, 0xcc, 0x75, 0x15, 0x52, 0x6d, 0x4d, 0x47, 0x13, 0x50, - 0x7c, 0x89, 0x51, 0xcc, 0x60, 0x7b, 0x0c, 0x2d, 0x41, 0xb6, 0x63, 0xb3, 0xb6, 0x14, 0x0d, 0x7f, - 0x83, 0xc1, 0x33, 0x1c, 0xc3, 0x28, 0x7a, 0x76, 0xaf, 0x6f, 0xe2, 0x9e, 0x15, 0x4d, 0xf1, 0x47, - 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x09, 0xc2, 0xfa, 0x65, 0x4e, 0xe1, 0x86, 0xe2, 0xf9, 0x02, 0x64, - 0x6c, 0xcb, 0x3c, 0xb4, 0xad, 0x49, 0x9c, 0xf8, 0x63, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0xae, 0x41, - 0x7a, 0xd2, 0x85, 0xf8, 0x93, 0x77, 0xf9, 0xf6, 0xe0, 0x2b, 0xb0, 0x05, 0x73, 0xbc, 0x40, 0x19, - 0xb6, 0x35, 0x01, 0xc5, 0x9f, 0x32, 0x8a, 0x5c, 0x08, 0xc6, 0x1e, 0xc3, 0x43, 0xae, 0xd7, 0x41, - 0x93, 0x90, 0xbc, 0xc9, 0x1f, 0x83, 0x41, 0x58, 0x28, 0x9b, 0xc8, 0xd2, 0x0f, 0x26, 0x63, 0xf8, - 0x2a, 0x0f, 0x25, 0xc7, 0x60, 0x8a, 0x32, 0xcc, 0x76, 0x35, 0xc7, 0x3d, 0xd0, 0xcc, 0x89, 0x96, - 0xe3, 0xcf, 0x18, 0x47, 0xd6, 0x07, 0xb1, 0x88, 0xf4, 0xad, 0x93, 0xd0, 0x7c, 0x8d, 0x47, 0x24, - 0x04, 0x63, 0x5b, 0xcf, 0xf5, 0xc8, 0x01, 0xd4, 0x49, 0xd8, 0xbe, 0xce, 0xb7, 0x1e, 0xc5, 0xee, - 0x84, 0x19, 0xaf, 0x41, 0xda, 0x35, 0x5e, 0x99, 0x88, 0xe6, 0xcf, 0xf9, 0x4a, 0x13, 0x00, 0x06, - 0xbf, 0x04, 0x67, 0xc6, 0xb6, 0x89, 0x09, 0xc8, 0xfe, 0x82, 0x91, 0x9d, 0x1a, 0xd3, 0x2a, 0x58, - 0x49, 0x38, 0x29, 0xe5, 0x5f, 0xf2, 0x92, 0x80, 0x86, 0xb8, 0xea, 0xf8, 0x45, 0xc1, 0xd5, 0xda, - 0x27, 0x8b, 0xda, 0x5f, 0xf1, 0xa8, 0x51, 0xec, 0x40, 0xd4, 0xf6, 0xe0, 0x14, 0x63, 0x3c, 0xd9, - 0xba, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0xde, 0x1f, 0x5c, 0xdd, 0x5f, 0x84, 0x25, 0x3f, 0x9c, 0x7c, - 0x22, 0x75, 0xd5, 0xae, 0xd6, 0x9b, 0x80, 0xf9, 0x9b, 0x8c, 0x99, 0x57, 0x7c, 0x7f, 0xa4, 0x75, - 0x77, 0xb4, 0x1e, 0x26, 0xbf, 0x05, 0x32, 0x27, 0xef, 0x5b, 0x0e, 0xd2, 0xed, 0x8e, 0x65, 0xbc, - 0x82, 0x5a, 0x13, 0x50, 0xff, 0xf5, 0xd0, 0x52, 0xed, 0x87, 0xe0, 0x98, 0xb9, 0x0a, 0xa2, 0x3f, - 0xab, 0xa8, 0x46, 0xb7, 0x67, 0x3b, 0x5e, 0x04, 0xe3, 0xdf, 0xf0, 0x95, 0xf2, 0x71, 0x55, 0x02, - 0x2b, 0x56, 0x20, 0x47, 0x2e, 0x27, 0x4d, 0xc9, 0xbf, 0x65, 0x44, 0xb3, 0x01, 0x8a, 0x15, 0x0e, - 0xdd, 0xee, 0xf6, 0x34, 0x67, 0x92, 0xfa, 0xf7, 0x77, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, 0xde, - 0x61, 0x0f, 0xe1, 0x6e, 0x3f, 0x01, 0xc3, 0xb7, 0x78, 0xe1, 0xe0, 0x18, 0x46, 0xc1, 0x07, 0x86, - 0x09, 0x28, 0xfe, 0x9e, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x74, 0xd0, 0x68, 0x1d, 0xd4, 0x31, 0x5c, - 0xcf, 0xa1, 0x73, 0xf0, 0xc3, 0xa9, 0xbe, 0xfd, 0xee, 0xe0, 0x10, 0xa6, 0x84, 0xa0, 0xc5, 0x9b, - 0x30, 0x37, 0x34, 0x62, 0x48, 0x51, 0xdf, 0x2c, 0xc8, 0xbf, 0xf4, 0x3e, 0x2b, 0x46, 0x83, 0x13, - 0x46, 0x71, 0x1b, 0xaf, 0xfb, 0xe0, 0x1c, 0x10, 0x4d, 0xf6, 0xea, 0xfb, 0xfe, 0xd2, 0x0f, 0x8c, - 0x01, 0xc5, 0xeb, 0x30, 0x3b, 0x30, 0x03, 0x44, 0x53, 0xfd, 0x32, 0xa3, 0xca, 0x86, 0x47, 0x80, - 0xe2, 0x3a, 0x24, 0x70, 0x3f, 0x8f, 0x86, 0xff, 0x0a, 0x83, 0x13, 0xf3, 0xe2, 0x27, 0x21, 0xc5, - 0xfb, 0x78, 0x34, 0xf4, 0x57, 0x19, 0xd4, 0x87, 0x60, 0x38, 0xef, 0xe1, 0xd1, 0xf0, 0x5f, 0xe3, - 0x70, 0x0e, 0xc1, 0xf0, 0xc9, 0x43, 0xf8, 0x8f, 0xbf, 0x9e, 0x60, 0x75, 0x98, 0xc7, 0xee, 0x1a, - 0xcc, 0xb0, 0xe6, 0x1d, 0x8d, 0xfe, 0x3c, 0xbb, 0x39, 0x47, 0x14, 0x2f, 0x43, 0x72, 0xc2, 0x80, - 0xff, 0x06, 0x83, 0x52, 0xfb, 0x62, 0x19, 0x32, 0xa1, 0x86, 0x1d, 0x0d, 0xff, 0x4d, 0x06, 0x0f, - 0xa3, 0xb0, 0xeb, 0xac, 0x61, 0x47, 0x13, 0xfc, 0x16, 0x77, 0x9d, 0x21, 0x70, 0xd8, 0x78, 0xaf, - 0x8e, 0x46, 0xff, 0x36, 0x8f, 0x3a, 0x87, 0x14, 0x5f, 0x80, 0xb4, 0x5f, 0x7f, 0xa3, 0xf1, 0xbf, - 0xc3, 0xf0, 0x01, 0x06, 0x47, 0x20, 0x54, 0xff, 0xa3, 0x29, 0x7e, 0x97, 0x47, 0x20, 0x84, 0xc2, - 0xdb, 0x68, 0xb8, 0xa7, 0x47, 0x33, 0xfd, 0x1e, 0xdf, 0x46, 0x43, 0x2d, 0x1d, 0xaf, 0x26, 0x29, - 0x83, 0xd1, 0x14, 0xbf, 0xcf, 0x57, 0x93, 0xd8, 0x63, 0x37, 0x86, 0x9b, 0x64, 0x34, 0xc7, 0x1f, - 0x70, 0x37, 0x86, 0x7a, 0x64, 0xb1, 0x0e, 0xd2, 0x68, 0x83, 0x8c, 0xe6, 0xfb, 0x02, 0xe3, 0x9b, - 0x1f, 0xe9, 0x8f, 0xc5, 0x17, 0xe1, 0xd4, 0xf8, 0xe6, 0x18, 0xcd, 0xfa, 0xc5, 0xf7, 0x87, 0x5e, - 0x67, 0xc2, 0xbd, 0xb1, 0xb8, 0x17, 0x54, 0xd9, 0x70, 0x63, 0x8c, 0xa6, 0x7d, 0xed, 0xfd, 0xc1, - 0x42, 0x1b, 0xee, 0x8b, 0xc5, 0x12, 0x40, 0xd0, 0x93, 0xa2, 0xb9, 0x5e, 0x67, 0x5c, 0x21, 0x10, - 0xde, 0x1a, 0xac, 0x25, 0x45, 0xe3, 0xbf, 0xc4, 0xb7, 0x06, 0x43, 0xe0, 0xad, 0xc1, 0xbb, 0x51, - 0x34, 0xfa, 0x0d, 0xbe, 0x35, 0x38, 0xa4, 0x78, 0x0d, 0x52, 0x56, 0xdf, 0x34, 0x71, 0x6e, 0x49, - 0x0f, 0xff, 0x8c, 0x48, 0xfe, 0xf7, 0x0f, 0x18, 0x98, 0x03, 0x8a, 0xeb, 0x90, 0x44, 0xdd, 0x26, - 0x6a, 0x45, 0x21, 0xff, 0xe3, 0x03, 0x5e, 0x4f, 0xb0, 0x75, 0xf1, 0x05, 0x00, 0xfa, 0x32, 0x4d, - 0x7e, 0x25, 0x8a, 0xc0, 0xfe, 0xe7, 0x07, 0xec, 0x0b, 0x85, 0x00, 0x12, 0x10, 0xd0, 0xef, 0x1d, - 0x1e, 0x4e, 0xf0, 0xee, 0x20, 0x01, 0x79, 0x01, 0xbf, 0x0a, 0x33, 0xb7, 0x5d, 0xdb, 0xf2, 0xb4, - 0x4e, 0x14, 0xfa, 0xbf, 0x18, 0x9a, 0xdb, 0xe3, 0x80, 0x75, 0x6d, 0x07, 0x79, 0x5a, 0xc7, 0x8d, - 0xc2, 0xfe, 0x37, 0xc3, 0xfa, 0x00, 0x0c, 0xd6, 0x35, 0xd7, 0x9b, 0xe4, 0xb9, 0xff, 0x87, 0x83, - 0x39, 0x00, 0x3b, 0x8d, 0xff, 0xbf, 0x83, 0x0e, 0xa3, 0xb0, 0xef, 0x71, 0xa7, 0x99, 0x7d, 0xf1, - 0x93, 0x90, 0xc6, 0xff, 0xd2, 0xaf, 0x76, 0x22, 0xc0, 0xff, 0xcb, 0xc0, 0x01, 0x02, 0xdf, 0xd9, - 0xf5, 0x5a, 0x9e, 0x11, 0x1d, 0xec, 0xff, 0x63, 0x2b, 0xcd, 0xed, 0x8b, 0x25, 0xc8, 0xb8, 0x5e, - 0xab, 0xd5, 0x67, 0x13, 0x4d, 0x04, 0xfc, 0x47, 0x1f, 0xf8, 0x2f, 0xb9, 0x3e, 0x66, 0xe3, 0xfc, - 0xf8, 0xc3, 0x3a, 0xd8, 0xb2, 0xb7, 0x6c, 0x7a, 0x4c, 0x07, 0x5f, 0x4e, 0x42, 0x41, 0xb7, 0xbb, - 0x4d, 0xdb, 0x5d, 0xa5, 0x05, 0x25, 0x54, 0x8c, 0x56, 0x6d, 0x8b, 0xa1, 0xa4, 0xb8, 0x6d, 0xa1, - 0xa5, 0x93, 0x1d, 0xcf, 0x15, 0xce, 0x40, 0xb2, 0xd1, 0x6f, 0x36, 0x0f, 0x25, 0x11, 0xe2, 0x6e, - 0xbf, 0xc9, 0xbe, 0x2f, 0xc1, 0xff, 0x16, 0xbe, 0x1f, 0x87, 0x4c, 0x43, 0xeb, 0xf6, 0x4c, 0x54, - 0xb3, 0x50, 0xad, 0x2d, 0xc9, 0x30, 0x4d, 0x9e, 0xe6, 0x79, 0x62, 0x24, 0xdc, 0x98, 0x52, 0xd8, - 0xb5, 0xaf, 0x59, 0x23, 0x67, 0x96, 0x31, 0x5f, 0xb3, 0xe6, 0x6b, 0x2e, 0xd0, 0x23, 0x4b, 0x5f, - 0x73, 0xc1, 0xd7, 0x5c, 0x24, 0x07, 0x97, 0x71, 0x5f, 0x73, 0xd1, 0xd7, 0xac, 0x93, 0x83, 0xf9, - 0x59, 0x5f, 0xb3, 0xee, 0x6b, 0x2e, 0x91, 0xa3, 0xf8, 0x84, 0xaf, 0xb9, 0xe4, 0x6b, 0x2e, 0x93, - 0x13, 0xf8, 0x79, 0x5f, 0x73, 0xd9, 0xd7, 0x5c, 0x21, 0xa7, 0xee, 0x92, 0xaf, 0xb9, 0xe2, 0x6b, - 0xae, 0x92, 0xcf, 0x48, 0x66, 0x7c, 0xcd, 0x55, 0x69, 0x09, 0x66, 0xe8, 0x93, 0x3d, 0x47, 0x7e, - 0x9a, 0x9d, 0xbb, 0x31, 0xa5, 0x70, 0x41, 0xa0, 0x7b, 0x9e, 0x7c, 0x2a, 0x32, 0x1d, 0xe8, 0x9e, - 0x0f, 0x74, 0x6b, 0xe4, 0x83, 0x69, 0x31, 0xd0, 0xad, 0x05, 0xba, 0x0b, 0xf2, 0x2c, 0x4e, 0x82, - 0x40, 0x77, 0x21, 0xd0, 0x5d, 0x94, 0x73, 0x38, 0xfe, 0x81, 0xee, 0x62, 0xa0, 0x5b, 0x97, 0xe7, - 0xce, 0x09, 0xcb, 0xd9, 0x40, 0xb7, 0x2e, 0x3d, 0x0b, 0x19, 0xb7, 0xdf, 0x54, 0xd9, 0x97, 0x04, - 0xe4, 0x93, 0x94, 0xcc, 0x1a, 0xac, 0xe0, 0x8c, 0x20, 0x8b, 0x7a, 0x63, 0x4a, 0x01, 0xb7, 0xdf, - 0x64, 0x55, 0x72, 0x23, 0x0b, 0xe4, 0x50, 0x41, 0x25, 0x1f, 0x62, 0x6e, 0x6c, 0xbe, 0xf5, 0x20, - 0x3f, 0xf5, 0xdd, 0x07, 0xf9, 0xa9, 0x7f, 0x7d, 0x90, 0x9f, 0x7a, 0xfb, 0x41, 0x5e, 0x78, 0xef, - 0x41, 0x5e, 0xf8, 0xf1, 0x83, 0xbc, 0x70, 0xff, 0x28, 0x2f, 0x7c, 0xf5, 0x28, 0x2f, 0x7c, 0xe3, - 0x28, 0x2f, 0x7c, 0xfb, 0x28, 0x2f, 0xbc, 0x75, 0x94, 0x9f, 0xfa, 0xee, 0x51, 0x7e, 0xea, 0xed, - 0xa3, 0xbc, 0xf0, 0xc3, 0xa3, 0xfc, 0xd4, 0x7b, 0x47, 0x79, 0xe1, 0xc7, 0x47, 0xf9, 0xa9, 0xfb, - 0x3f, 0xc8, 0x0b, 0xcd, 0x69, 0x92, 0x46, 0x17, 0x7e, 0x12, 0x00, 0x00, 0xff, 0xff, 0xb7, 0xf9, - 0x54, 0x78, 0xff, 0x30, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (this *Subby) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Subby") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Subby but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Subby but is not nil && this == nil") - } - if this.Sub != that1.Sub { - return fmt.Errorf("Sub this(%v) Not Equal that(%v)", this.Sub, that1.Sub) - } - return nil -} -func (this *Subby) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Subby) - if !ok { - that2, ok := that.(Subby) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Sub != that1.Sub { - return false - } - return true -} -func (this *SampleOneOf) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf) - if !ok { - that2, ok := that.(SampleOneOf) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf but is not nil && this == nil") - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return fmt.Errorf("this.TestOneof != nil && that1.TestOneof == nil") - } - } else if this.TestOneof == nil { - return fmt.Errorf("this.TestOneof == nil && that1.TestOneof != nil") - } else if err := this.TestOneof.VerboseEqual(that1.TestOneof); err != nil { - return err - } - return nil -} -func (this *SampleOneOf_Field1) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field1) - if !ok { - that2, ok := that.(SampleOneOf_Field1) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field1") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field1 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field1 but is not nil && this == nil") - } - if this.Field1 != that1.Field1 { - return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) - } - return nil -} -func (this *SampleOneOf_Field2) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field2) - if !ok { - that2, ok := that.(SampleOneOf_Field2) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field2") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field2 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field2 but is not nil && this == nil") - } - if this.Field2 != that1.Field2 { - return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2) - } - return nil -} -func (this *SampleOneOf_Field3) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field3) - if !ok { - that2, ok := that.(SampleOneOf_Field3) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field3") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field3 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field3 but is not nil && this == nil") - } - if this.Field3 != that1.Field3 { - return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3) - } - return nil -} -func (this *SampleOneOf_Field4) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field4) - if !ok { - that2, ok := that.(SampleOneOf_Field4) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field4") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field4 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field4 but is not nil && this == nil") - } - if this.Field4 != that1.Field4 { - return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4) - } - return nil -} -func (this *SampleOneOf_Field5) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field5) - if !ok { - that2, ok := that.(SampleOneOf_Field5) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field5") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field5 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field5 but is not nil && this == nil") - } - if this.Field5 != that1.Field5 { - return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5) - } - return nil -} -func (this *SampleOneOf_Field6) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field6) - if !ok { - that2, ok := that.(SampleOneOf_Field6) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field6") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field6 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field6 but is not nil && this == nil") - } - if this.Field6 != that1.Field6 { - return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6) - } - return nil -} -func (this *SampleOneOf_Field7) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field7) - if !ok { - that2, ok := that.(SampleOneOf_Field7) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field7") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field7 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field7 but is not nil && this == nil") - } - if this.Field7 != that1.Field7 { - return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7) - } - return nil -} -func (this *SampleOneOf_Field8) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field8) - if !ok { - that2, ok := that.(SampleOneOf_Field8) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field8") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field8 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field8 but is not nil && this == nil") - } - if this.Field8 != that1.Field8 { - return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8) - } - return nil -} -func (this *SampleOneOf_Field9) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field9) - if !ok { - that2, ok := that.(SampleOneOf_Field9) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field9") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field9 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field9 but is not nil && this == nil") - } - if this.Field9 != that1.Field9 { - return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9) - } - return nil -} -func (this *SampleOneOf_Field10) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field10) - if !ok { - that2, ok := that.(SampleOneOf_Field10) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field10") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field10 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field10 but is not nil && this == nil") - } - if this.Field10 != that1.Field10 { - return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10) - } - return nil -} -func (this *SampleOneOf_Field11) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field11) - if !ok { - that2, ok := that.(SampleOneOf_Field11) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field11") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field11 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field11 but is not nil && this == nil") - } - if this.Field11 != that1.Field11 { - return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11) - } - return nil -} -func (this *SampleOneOf_Field12) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field12) - if !ok { - that2, ok := that.(SampleOneOf_Field12) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field12") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field12 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field12 but is not nil && this == nil") - } - if this.Field12 != that1.Field12 { - return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12) - } - return nil -} -func (this *SampleOneOf_Field13) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field13) - if !ok { - that2, ok := that.(SampleOneOf_Field13) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field13") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field13 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field13 but is not nil && this == nil") - } - if this.Field13 != that1.Field13 { - return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13) - } - return nil -} -func (this *SampleOneOf_Field14) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field14) - if !ok { - that2, ok := that.(SampleOneOf_Field14) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field14") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field14 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field14 but is not nil && this == nil") - } - if this.Field14 != that1.Field14 { - return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14) - } - return nil -} -func (this *SampleOneOf_Field15) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_Field15) - if !ok { - that2, ok := that.(SampleOneOf_Field15) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_Field15") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_Field15 but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_Field15 but is not nil && this == nil") - } - if !bytes.Equal(this.Field15, that1.Field15) { - return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15) - } - return nil -} -func (this *SampleOneOf_SubMessage) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*SampleOneOf_SubMessage) - if !ok { - that2, ok := that.(SampleOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *SampleOneOf_SubMessage") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *SampleOneOf_SubMessage but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *SampleOneOf_SubMessage but is not nil && this == nil") - } - if !this.SubMessage.Equal(that1.SubMessage) { - return fmt.Errorf("SubMessage this(%v) Not Equal that(%v)", this.SubMessage, that1.SubMessage) - } - return nil -} -func (this *SampleOneOf) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf) - if !ok { - that2, ok := that.(SampleOneOf) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.TestOneof == nil { - if this.TestOneof != nil { - return false - } - } else if this.TestOneof == nil { - return false - } else if !this.TestOneof.Equal(that1.TestOneof) { - return false - } - return true -} -func (this *SampleOneOf_Field1) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field1) - if !ok { - that2, ok := that.(SampleOneOf_Field1) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field1 != that1.Field1 { - return false - } - return true -} -func (this *SampleOneOf_Field2) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field2) - if !ok { - that2, ok := that.(SampleOneOf_Field2) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field2 != that1.Field2 { - return false - } - return true -} -func (this *SampleOneOf_Field3) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field3) - if !ok { - that2, ok := that.(SampleOneOf_Field3) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field3 != that1.Field3 { - return false - } - return true -} -func (this *SampleOneOf_Field4) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field4) - if !ok { - that2, ok := that.(SampleOneOf_Field4) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field4 != that1.Field4 { - return false - } - return true -} -func (this *SampleOneOf_Field5) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field5) - if !ok { - that2, ok := that.(SampleOneOf_Field5) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field5 != that1.Field5 { - return false - } - return true -} -func (this *SampleOneOf_Field6) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field6) - if !ok { - that2, ok := that.(SampleOneOf_Field6) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field6 != that1.Field6 { - return false - } - return true -} -func (this *SampleOneOf_Field7) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field7) - if !ok { - that2, ok := that.(SampleOneOf_Field7) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field7 != that1.Field7 { - return false - } - return true -} -func (this *SampleOneOf_Field8) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field8) - if !ok { - that2, ok := that.(SampleOneOf_Field8) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field8 != that1.Field8 { - return false - } - return true -} -func (this *SampleOneOf_Field9) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field9) - if !ok { - that2, ok := that.(SampleOneOf_Field9) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field9 != that1.Field9 { - return false - } - return true -} -func (this *SampleOneOf_Field10) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field10) - if !ok { - that2, ok := that.(SampleOneOf_Field10) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field10 != that1.Field10 { - return false - } - return true -} -func (this *SampleOneOf_Field11) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field11) - if !ok { - that2, ok := that.(SampleOneOf_Field11) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field11 != that1.Field11 { - return false - } - return true -} -func (this *SampleOneOf_Field12) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field12) - if !ok { - that2, ok := that.(SampleOneOf_Field12) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field12 != that1.Field12 { - return false - } - return true -} -func (this *SampleOneOf_Field13) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field13) - if !ok { - that2, ok := that.(SampleOneOf_Field13) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field13 != that1.Field13 { - return false - } - return true -} -func (this *SampleOneOf_Field14) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field14) - if !ok { - that2, ok := that.(SampleOneOf_Field14) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Field14 != that1.Field14 { - return false - } - return true -} -func (this *SampleOneOf_Field15) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_Field15) - if !ok { - that2, ok := that.(SampleOneOf_Field15) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !bytes.Equal(this.Field15, that1.Field15) { - return false - } - return true -} -func (this *SampleOneOf_SubMessage) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*SampleOneOf_SubMessage) - if !ok { - that2, ok := that.(SampleOneOf_SubMessage) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.SubMessage.Equal(that1.SubMessage) { - return false - } - return true -} -func (this *Subby) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&one.Subby{") - s = append(s, "Sub: "+fmt.Sprintf("%#v", this.Sub)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *SampleOneOf) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 20) - s = append(s, "&one.SampleOneOf{") - if this.TestOneof != nil { - s = append(s, "TestOneof: "+fmt.Sprintf("%#v", this.TestOneof)+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *SampleOneOf_Field1) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field1{` + - `Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field2) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field2{` + - `Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field3) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field3{` + - `Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field4) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field4{` + - `Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field5) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field5{` + - `Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field6) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field6{` + - `Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field7) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field7{` + - `Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field8) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field8{` + - `Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field9) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field9{` + - `Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field10) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field10{` + - `Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field11) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field11{` + - `Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field12) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field12{` + - `Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field13) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field13{` + - `Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field14) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field14{` + - `Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ") - return s -} -func (this *SampleOneOf_Field15) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_Field15{` + - `Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ") - return s -} -func (this *SampleOneOf_SubMessage) GoString() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&one.SampleOneOf_SubMessage{` + - `SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ") - return s -} -func valueToGoStringOne(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedSubby(r randyOne, easy bool) *Subby { - this := &Subby{} - this.Sub = string(randStringOne(r)) - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedSampleOneOf(r randyOne, easy bool) *SampleOneOf { - this := &SampleOneOf{} - oneofNumber_TestOneof := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}[r.Intn(16)] - switch oneofNumber_TestOneof { - case 1: - this.TestOneof = NewPopulatedSampleOneOf_Field1(r, easy) - case 2: - this.TestOneof = NewPopulatedSampleOneOf_Field2(r, easy) - case 3: - this.TestOneof = NewPopulatedSampleOneOf_Field3(r, easy) - case 4: - this.TestOneof = NewPopulatedSampleOneOf_Field4(r, easy) - case 5: - this.TestOneof = NewPopulatedSampleOneOf_Field5(r, easy) - case 6: - this.TestOneof = NewPopulatedSampleOneOf_Field6(r, easy) - case 7: - this.TestOneof = NewPopulatedSampleOneOf_Field7(r, easy) - case 8: - this.TestOneof = NewPopulatedSampleOneOf_Field8(r, easy) - case 9: - this.TestOneof = NewPopulatedSampleOneOf_Field9(r, easy) - case 10: - this.TestOneof = NewPopulatedSampleOneOf_Field10(r, easy) - case 11: - this.TestOneof = NewPopulatedSampleOneOf_Field11(r, easy) - case 12: - this.TestOneof = NewPopulatedSampleOneOf_Field12(r, easy) - case 13: - this.TestOneof = NewPopulatedSampleOneOf_Field13(r, easy) - case 14: - this.TestOneof = NewPopulatedSampleOneOf_Field14(r, easy) - case 15: - this.TestOneof = NewPopulatedSampleOneOf_Field15(r, easy) - case 16: - this.TestOneof = NewPopulatedSampleOneOf_SubMessage(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedSampleOneOf_Field1(r randyOne, easy bool) *SampleOneOf_Field1 { - this := &SampleOneOf_Field1{} - this.Field1 = float64(r.Float64()) - if r.Intn(2) == 0 { - this.Field1 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field2(r randyOne, easy bool) *SampleOneOf_Field2 { - this := &SampleOneOf_Field2{} - this.Field2 = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Field2 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field3(r randyOne, easy bool) *SampleOneOf_Field3 { - this := &SampleOneOf_Field3{} - this.Field3 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field3 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field4(r randyOne, easy bool) *SampleOneOf_Field4 { - this := &SampleOneOf_Field4{} - this.Field4 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field4 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field5(r randyOne, easy bool) *SampleOneOf_Field5 { - this := &SampleOneOf_Field5{} - this.Field5 = uint32(r.Uint32()) - return this -} -func NewPopulatedSampleOneOf_Field6(r randyOne, easy bool) *SampleOneOf_Field6 { - this := &SampleOneOf_Field6{} - this.Field6 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedSampleOneOf_Field7(r randyOne, easy bool) *SampleOneOf_Field7 { - this := &SampleOneOf_Field7{} - this.Field7 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field7 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field8(r randyOne, easy bool) *SampleOneOf_Field8 { - this := &SampleOneOf_Field8{} - this.Field8 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field8 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field9(r randyOne, easy bool) *SampleOneOf_Field9 { - this := &SampleOneOf_Field9{} - this.Field9 = uint32(r.Uint32()) - return this -} -func NewPopulatedSampleOneOf_Field10(r randyOne, easy bool) *SampleOneOf_Field10 { - this := &SampleOneOf_Field10{} - this.Field10 = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Field10 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field11(r randyOne, easy bool) *SampleOneOf_Field11 { - this := &SampleOneOf_Field11{} - this.Field11 = uint64(uint64(r.Uint32())) - return this -} -func NewPopulatedSampleOneOf_Field12(r randyOne, easy bool) *SampleOneOf_Field12 { - this := &SampleOneOf_Field12{} - this.Field12 = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Field12 *= -1 - } - return this -} -func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 { - this := &SampleOneOf_Field13{} - this.Field13 = bool(bool(r.Intn(2) == 0)) - return this -} -func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 { - this := &SampleOneOf_Field14{} - this.Field14 = string(randStringOne(r)) - return this -} -func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 { - this := &SampleOneOf_Field15{} - v1 := r.Intn(100) - this.Field15 = make([]byte, v1) - for i := 0; i < v1; i++ { - this.Field15[i] = byte(r.Intn(256)) - } - return this -} -func NewPopulatedSampleOneOf_SubMessage(r randyOne, easy bool) *SampleOneOf_SubMessage { - this := &SampleOneOf_SubMessage{} - this.SubMessage = NewPopulatedSubby(r, easy) - return this -} - -type randyOne interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneOne(r randyOne) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringOne(r randyOne) string { - v2 := r.Intn(100) - tmps := make([]rune, v2) - for i := 0; i < v2; i++ { - tmps[i] = randUTF8RuneOne(r) - } - return string(tmps) -} -func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldOne(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - v3 := r.Int63() - if r.Intn(2) == 0 { - v3 *= -1 - } - dAtA = encodeVarintPopulateOne(dAtA, uint64(v3)) - case 1: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateOne(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateOne(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Subby) Size() (n int) { - var l int - _ = l - l = len(m.Sub) - if l > 0 { - n += 1 + l + sovOne(uint64(l)) - } - return n -} - -func (m *SampleOneOf) Size() (n int) { - var l int - _ = l - if m.TestOneof != nil { - n += m.TestOneof.Size() - } - return n -} - -func (m *SampleOneOf_Field1) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *SampleOneOf_Field2) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *SampleOneOf_Field3) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field3)) - return n -} -func (m *SampleOneOf_Field4) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field4)) - return n -} -func (m *SampleOneOf_Field5) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field5)) - return n -} -func (m *SampleOneOf_Field6) Size() (n int) { - var l int - _ = l - n += 1 + sovOne(uint64(m.Field6)) - return n -} -func (m *SampleOneOf_Field7) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field7)) - return n -} -func (m *SampleOneOf_Field8) Size() (n int) { - var l int - _ = l - n += 1 + sozOne(uint64(m.Field8)) - return n -} -func (m *SampleOneOf_Field9) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *SampleOneOf_Field10) Size() (n int) { - var l int - _ = l - n += 5 - return n -} -func (m *SampleOneOf_Field11) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *SampleOneOf_Field12) Size() (n int) { - var l int - _ = l - n += 9 - return n -} -func (m *SampleOneOf_Field13) Size() (n int) { - var l int - _ = l - n += 2 - return n -} -func (m *SampleOneOf_Field14) Size() (n int) { - var l int - _ = l - l = len(m.Field14) - n += 1 + l + sovOne(uint64(l)) - return n -} -func (m *SampleOneOf_Field15) Size() (n int) { - var l int - _ = l - if m.Field15 != nil { - l = len(m.Field15) - n += 1 + l + sovOne(uint64(l)) - } - return n -} -func (m *SampleOneOf_SubMessage) Size() (n int) { - var l int - _ = l - if m.SubMessage != nil { - l = m.SubMessage.Size() - n += 2 + l + sovOne(uint64(l)) - } - return n -} - -func sovOne(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozOne(x uint64) (n int) { - return sovOne(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Subby) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Subby{`, - `Sub:` + fmt.Sprintf("%v", this.Sub) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf{`, - `TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field1) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field1{`, - `Field1:` + fmt.Sprintf("%v", this.Field1) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field2) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field2{`, - `Field2:` + fmt.Sprintf("%v", this.Field2) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field3) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field3{`, - `Field3:` + fmt.Sprintf("%v", this.Field3) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field4) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field4{`, - `Field4:` + fmt.Sprintf("%v", this.Field4) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field5) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field5{`, - `Field5:` + fmt.Sprintf("%v", this.Field5) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field6) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field6{`, - `Field6:` + fmt.Sprintf("%v", this.Field6) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field7) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field7{`, - `Field7:` + fmt.Sprintf("%v", this.Field7) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field8) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field8{`, - `Field8:` + fmt.Sprintf("%v", this.Field8) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field9) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field9{`, - `Field9:` + fmt.Sprintf("%v", this.Field9) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field10) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field10{`, - `Field10:` + fmt.Sprintf("%v", this.Field10) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field11) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field11{`, - `Field11:` + fmt.Sprintf("%v", this.Field11) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field12) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field12{`, - `Field12:` + fmt.Sprintf("%v", this.Field12) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field13) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field13{`, - `Field13:` + fmt.Sprintf("%v", this.Field13) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field14) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field14{`, - `Field14:` + fmt.Sprintf("%v", this.Field14) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_Field15) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_Field15{`, - `Field15:` + fmt.Sprintf("%v", this.Field15) + `,`, - `}`, - }, "") - return s -} -func (this *SampleOneOf_SubMessage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SampleOneOf_SubMessage{`, - `SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringOne(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Subby) 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 ErrIntOverflowOneUnsafe - } - 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: Subby: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Subby: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sub", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sub = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SampleOneOf) 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 ErrIntOverflowOneUnsafe - } - 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: SampleOneOf: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SampleOneOf: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) - } - var v float64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &SampleOneOf_Field1{v} - case 2: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) - } - var v float32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &SampleOneOf_Field2{v} - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &SampleOneOf_Field3{v} - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &SampleOneOf_Field4{v} - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &SampleOneOf_Field5{v} - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TestOneof = &SampleOneOf_Field6{v} - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) - m.TestOneof = &SampleOneOf_Field7{v} - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType) - } - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) - m.TestOneof = &SampleOneOf_Field8{int64(v)} - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType) - } - var v uint32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &SampleOneOf_Field9{v} - case 10: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType) - } - var v int32 - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - m.TestOneof = &SampleOneOf_Field10{v} - case 11: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType) - } - var v uint64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &SampleOneOf_Field11{v} - case 12: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType) - } - var v int64 - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - m.TestOneof = &SampleOneOf_Field12{v} - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.TestOneof = &SampleOneOf_Field13{b} - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - 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 ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TestOneof = &SampleOneOf_Field14{string(dAtA[iNdEx:postIndex])} - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := make([]byte, postIndex-iNdEx) - copy(v, dAtA[iNdEx:postIndex]) - m.TestOneof = &SampleOneOf_Field15{v} - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubMessage", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOneUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthOneUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &Subby{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.TestOneof = &SampleOneOf_SubMessage{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipOneUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthOneUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipOneUnsafe(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, ErrIntOverflowOneUnsafe - } - 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, ErrIntOverflowOneUnsafe - } - 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, ErrIntOverflowOneUnsafe - } - 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, ErrInvalidLengthOneUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowOneUnsafe - } - 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 := skipOneUnsafe(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 ( - ErrInvalidLengthOneUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowOneUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeunmarshaler/one.proto", fileDescriptorOne) } - -var fileDescriptorOne = []byte{ - // 413 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0x3f, 0x4f, 0x1b, 0x31, - 0x18, 0x06, 0x70, 0xbf, 0x1c, 0x49, 0xc0, 0x09, 0x25, 0xbd, 0xe9, 0x2d, 0xc3, 0x2b, 0x2b, 0x93, - 0x17, 0x92, 0xe6, 0x2e, 0xe1, 0xcf, 0x8a, 0xaa, 0x2a, 0x4b, 0x85, 0x14, 0x3e, 0x00, 0x3a, 0x53, - 0x27, 0x20, 0xe5, 0xce, 0x28, 0xbe, 0x1b, 0xba, 0xf1, 0x71, 0x3a, 0x76, 0xec, 0x47, 0x60, 0x64, - 0xec, 0xd0, 0x81, 0x73, 0x97, 0x8e, 0x8c, 0x8c, 0x55, 0x2e, 0xc5, 0xde, 0xde, 0xc7, 0x3f, 0x7b, - 0xb0, 0xfd, 0xf0, 0xc1, 0x8d, 0xc9, 0x95, 0xb1, 0xa3, 0xaa, 0xb0, 0xd9, 0x42, 0x57, 0x45, 0x9e, - 0xad, 0xed, 0x6d, 0xb6, 0xd2, 0xeb, 0x91, 0x29, 0xf4, 0xf0, 0x7e, 0x6d, 0x4a, 0x13, 0x47, 0xa6, - 0xd0, 0x47, 0xc7, 0xcb, 0xbb, 0xf2, 0xb6, 0x52, 0xc3, 0x1b, 0x93, 0x8f, 0x96, 0x66, 0x69, 0x46, - 0x8d, 0xa9, 0x6a, 0xd1, 0xa4, 0x26, 0x34, 0xd3, 0xf6, 0xcc, 0xe0, 0x03, 0x6f, 0x5d, 0x55, 0x4a, - 0x7d, 0x8b, 0xfb, 0x3c, 0xb2, 0x95, 0x42, 0x10, 0x20, 0xf7, 0xe7, 0x9b, 0x71, 0xf0, 0x3b, 0xe2, - 0xdd, 0xab, 0x2c, 0xbf, 0x5f, 0xe9, 0xcb, 0x42, 0x5f, 0x2e, 0x62, 0xe4, 0xed, 0xcf, 0x77, 0x7a, - 0xf5, 0x75, 0xdc, 0x6c, 0x82, 0x19, 0x9b, 0xff, 0xcf, 0x5e, 0x12, 0xdc, 0x11, 0x20, 0x77, 0xbc, - 0x24, 0x5e, 0x52, 0x8c, 0x04, 0xc8, 0x96, 0x97, 0xd4, 0xcb, 0x04, 0x77, 0x05, 0xc8, 0xc8, 0xcb, - 0xc4, 0xcb, 0x14, 0x5b, 0x02, 0xe4, 0x81, 0x97, 0xa9, 0x97, 0x13, 0x6c, 0x0b, 0x90, 0xbb, 0x5e, - 0x4e, 0xbc, 0x9c, 0x62, 0x47, 0x80, 0x7c, 0xef, 0xe5, 0xd4, 0xcb, 0x19, 0xee, 0x09, 0x90, 0xb1, - 0x97, 0x33, 0x2f, 0xe7, 0xb8, 0x2f, 0x40, 0x76, 0xbc, 0x9c, 0xc7, 0x47, 0xbc, 0xb3, 0xbd, 0xd9, - 0x47, 0xe4, 0x02, 0xe4, 0xe1, 0x8c, 0xcd, 0xdf, 0x16, 0x82, 0x8d, 0xb1, 0x2b, 0x40, 0xb6, 0x83, - 0x8d, 0x83, 0x25, 0xd8, 0x13, 0x20, 0xfb, 0xc1, 0x92, 0x60, 0x29, 0x1e, 0x08, 0x90, 0x7b, 0xc1, - 0xd2, 0x60, 0x13, 0x7c, 0xb7, 0x79, 0xff, 0x60, 0x93, 0x60, 0x53, 0x3c, 0x14, 0x20, 0x7b, 0xc1, - 0xa6, 0xf1, 0x31, 0xef, 0xda, 0x4a, 0x5d, 0xe7, 0xda, 0xda, 0x6c, 0xa9, 0xb1, 0x2f, 0x40, 0x76, - 0x13, 0x3e, 0xdc, 0x34, 0xa2, 0xf9, 0xd4, 0x19, 0x9b, 0x73, 0x5b, 0xa9, 0x2f, 0x5b, 0xbf, 0xe8, - 0x71, 0x5e, 0x6a, 0x5b, 0x5e, 0x9b, 0x42, 0x9b, 0xc5, 0xc5, 0xa7, 0xc7, 0x9a, 0xd8, 0x53, 0x4d, - 0xec, 0x57, 0x4d, 0xec, 0xb9, 0x26, 0x78, 0xa9, 0x09, 0x5e, 0x6b, 0x82, 0x07, 0x47, 0xf0, 0xdd, - 0x11, 0xfc, 0x70, 0x04, 0x3f, 0x1d, 0xc1, 0xa3, 0x23, 0xf6, 0xe4, 0x88, 0x3d, 0x3b, 0x82, 0xbf, - 0x8e, 0xd8, 0x8b, 0x23, 0x78, 0x75, 0xc4, 0x1e, 0xfe, 0x10, 0xa8, 0x76, 0x53, 0xa3, 0xf4, 0x5f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x1a, 0xd7, 0x6a, 0xc3, 0xa0, 0x02, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.proto b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.proto deleted file mode 100644 index a9e711373..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/one.proto +++ /dev/null @@ -1,82 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package one; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = false; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message Subby { - string sub = 1; -} - -message SampleOneOf { - oneof test_oneof { - double Field1 = 1; - float Field2 = 2; - int32 Field3 = 3; - int64 Field4 = 4; - uint32 Field5 = 5; - uint64 Field6 = 6; - sint32 Field7 = 7; - sint64 Field8 = 8; - fixed32 Field9 = 9; - sfixed32 Field10 = 10; - fixed64 Field11 = 11; - sfixed64 Field12 = 12; - bool Field13 = 13; - string Field14 = 14; - bytes Field15 = 15; - Subby sub_message = 16; - } -} - - diff --git a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/onepb_test.go b/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/onepb_test.go deleted file mode 100644 index eb664495b..000000000 --- a/vendor/github.com/gogo/protobuf/test/oneof3/combos/unsafeunmarshaler/onepb_test.go +++ /dev/null @@ -1,350 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/one.proto -// DO NOT EDIT! - -/* -Package one is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeunmarshaler/one.proto - -It has these top-level messages: - Subby - SampleOneOf -*/ -package one - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestSubbyProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestSampleOneOfProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestSubbyJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Subby{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestSampleOneOfJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &SampleOneOf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestSubbyProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSubbyProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSampleOneOfProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestSampleOneOfProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneDescription(t *testing.T) { - OneDescription() -} -func TestSubbyVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Subby{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestSampleOneOfVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSampleOneOf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &SampleOneOf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestSubbyGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestSampleOneOfGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSampleOneOf(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestSubbySize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSubby(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestSampleOneOfSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedSampleOneOf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func TestSubbyStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSubby(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestSampleOneOfStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedSampleOneOf(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go index 6592cfddb..626bea5e7 100644 --- a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go +++ b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembed.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: oneofembed.proto -// DO NOT EDIT! /* Package proto is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembedpb_test.go b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembedpb_test.go index 974c657ef..e5af25de8 100644 --- a/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembedpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/oneofembed/oneofembedpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: oneofembed.proto -// DO NOT EDIT! /* Package proto is a generated protocol buffer package. @@ -15,11 +14,10 @@ It has these top-level messages: package proto import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto1 "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -31,14 +29,14 @@ var _ = math.Inf func TestFooProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFoo(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto1.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Foo{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto1.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -56,20 +54,20 @@ func TestFooProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto1.Unmarshal(littlefuzz, msg) } } func TestBarProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBar(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto1.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Bar{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto1.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -87,21 +85,21 @@ func TestBarProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto1.Unmarshal(littlefuzz, msg) } } func TestFooJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Foo{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -111,15 +109,15 @@ func TestFooJSON(t *testing.T) { } func TestBarJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBar(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Bar{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -129,11 +127,11 @@ func TestBarJSON(t *testing.T) { } func TestFooProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto1.MarshalTextString(p) msg := &Foo{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto1.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -143,11 +141,11 @@ func TestFooProtoText(t *testing.T) { func TestFooProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFoo(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto1.CompactTextString(p) msg := &Foo{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto1.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -157,11 +155,11 @@ func TestFooProtoCompactText(t *testing.T) { func TestBarProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBar(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto1.MarshalTextString(p) msg := &Bar{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto1.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -171,11 +169,11 @@ func TestBarProtoText(t *testing.T) { func TestBarProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBar(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto1.CompactTextString(p) msg := &Bar{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto1.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { diff --git a/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go b/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go index f909f5eae..a62dae7b2 100644 --- a/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go +++ b/vendor/github.com/gogo/protobuf/test/packed/packed.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: packed.proto -// DO NOT EDIT! /* Package packed is a generated protocol buffer package. @@ -22,8 +21,7 @@ import math "math" import _ "github.com/gogo/protobuf/gogoproto" import io "io" - -import unsafe "unsafe" +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -1093,15 +1091,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -1132,15 +1123,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -1153,11 +1137,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -1188,11 +1169,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -1581,11 +1559,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -1615,11 +1590,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -1631,11 +1603,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -1665,11 +1634,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -1681,15 +1647,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -1719,15 +1678,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -1739,15 +1691,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -1777,15 +1722,8 @@ func (m *NinRepNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -1910,15 +1848,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } else if wireType == 2 { @@ -1949,15 +1880,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = append(m.Field1, v2) } @@ -1970,11 +1894,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -2005,11 +1926,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -2398,11 +2316,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int @@ -2432,11 +2347,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = append(m.Field9, v) } } else { @@ -2448,11 +2360,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int @@ -2482,11 +2391,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = append(m.Field10, v) } } else { @@ -2498,15 +2404,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int @@ -2536,15 +2435,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = append(m.Field11, v) } } else { @@ -2556,15 +2448,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int @@ -2594,15 +2479,8 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = append(m.Field12, v) } } else { @@ -2692,111 +2570,6 @@ func (m *NinRepPackedNative) Unmarshal(dAtA []byte) error { } return nil } -func skipPacked(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, ErrIntOverflowPacked - } - 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, ErrIntOverflowPacked - } - 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, ErrIntOverflowPacked - } - 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, ErrInvalidLengthPacked - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowPacked - } - 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 := skipPacked(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 ( - ErrInvalidLengthPacked = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowPacked = fmt.Errorf("proto: integer overflow") -) - func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -2805,7 +2578,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2828,18 +2601,19 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType == 1 { - var v float64 - if iNdEx+8 > l { + var v uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field1 = append(m.Field1, v) + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2852,38 +2626,40 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { + var v uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field1 = append(m.Field1, v) + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) } } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: if wireType == 5 { - var v float32 - if iNdEx+4 > l { + var v uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field2 = append(m.Field2, v) + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2896,20 +2672,21 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { + var v uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field2 = append(m.Field2, v) + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) } } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) @@ -2919,7 +2696,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2936,7 +2713,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2949,7 +2726,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -2959,7 +2736,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2981,7 +2758,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -2998,7 +2775,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3011,7 +2788,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3021,7 +2798,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3043,7 +2820,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3060,7 +2837,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3073,7 +2850,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3083,7 +2860,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3105,7 +2882,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3122,7 +2899,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3135,7 +2912,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3145,7 +2922,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3167,7 +2944,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3185,7 +2962,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3198,7 +2975,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3208,7 +2985,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3231,7 +3008,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3249,7 +3026,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3262,7 +3039,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3272,7 +3049,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3293,17 +3070,17 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { case 9: if wireType == 5 { var v uint32 - if iNdEx+4 > l { + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3316,7 +3093,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3324,10 +3101,10 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } for iNdEx < postIndex { var v uint32 - if iNdEx+4 > l { + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 m.Field9 = append(m.Field9, v) } @@ -3337,17 +3114,17 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { case 10: if wireType == 5 { var v int32 - if iNdEx+4 > l { + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3360,7 +3137,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3368,10 +3145,10 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } for iNdEx < postIndex { var v int32 - if iNdEx+4 > l { + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 m.Field10 = append(m.Field10, v) } @@ -3381,17 +3158,17 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { case 11: if wireType == 1 { var v uint64 - if iNdEx+8 > l { + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3404,7 +3181,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3412,10 +3189,10 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } for iNdEx < postIndex { var v uint64 - if iNdEx+8 > l { + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 m.Field11 = append(m.Field11, v) } @@ -3425,17 +3202,17 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { case 12: if wireType == 1 { var v int64 - if iNdEx+8 > l { + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3448,7 +3225,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3456,10 +3233,10 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } for iNdEx < postIndex { var v int64 - if iNdEx+8 > l { + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 m.Field12 = append(m.Field12, v) } @@ -3471,7 +3248,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3488,7 +3265,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3501,7 +3278,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3511,7 +3288,7 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3530,12 +3307,12 @@ func (m *NinRepNativeUnsafe) Unmarshal(dAtA []byte) error { } default: iNdEx = preIndex - skippy, err := skipPackedUnsafe(dAtA[iNdEx:]) + skippy, err := skipPacked(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -3558,7 +3335,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3581,18 +3358,19 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType == 1 { - var v float64 - if iNdEx+8 > l { + var v uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field1 = append(m.Field1, v) + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3605,38 +3383,40 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v float64 - if iNdEx+8 > l { + var v uint64 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field1 = append(m.Field1, v) + v2 := float64(math.Float64frombits(v)) + m.Field1 = append(m.Field1, v2) } } else { return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType) } case 2: if wireType == 5 { - var v float32 - if iNdEx+4 > l { + var v uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field2 = append(m.Field2, v) + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3649,20 +3429,21 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { return io.ErrUnexpectedEOF } for iNdEx < postIndex { - var v float32 - if iNdEx+4 > l { + var v uint32 + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field2 = append(m.Field2, v) + v2 := float32(math.Float32frombits(v)) + m.Field2 = append(m.Field2, v2) } } else { return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType) @@ -3672,7 +3453,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3689,7 +3470,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3702,7 +3483,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3712,7 +3493,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3734,7 +3515,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3751,7 +3532,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3764,7 +3545,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3774,7 +3555,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v int64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3796,7 +3577,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3813,7 +3594,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3826,7 +3607,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3836,7 +3617,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3858,7 +3639,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3875,7 +3656,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3888,7 +3669,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3898,7 +3679,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3920,7 +3701,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3938,7 +3719,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3951,7 +3732,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -3961,7 +3742,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -3984,7 +3765,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4002,7 +3783,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4015,7 +3796,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -4025,7 +3806,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4046,17 +3827,17 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { case 9: if wireType == 5 { var v uint32 - if iNdEx+4 > l { + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 m.Field9 = append(m.Field9, v) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4069,7 +3850,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -4077,10 +3858,10 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } for iNdEx < postIndex { var v uint32 - if iNdEx+4 > l { + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 m.Field9 = append(m.Field9, v) } @@ -4090,17 +3871,17 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { case 10: if wireType == 5 { var v int32 - if iNdEx+4 > l { + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 m.Field10 = append(m.Field10, v) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4113,7 +3894,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -4121,10 +3902,10 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } for iNdEx < postIndex { var v int32 - if iNdEx+4 > l { + if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } - v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx])) + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 m.Field10 = append(m.Field10, v) } @@ -4134,17 +3915,17 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { case 11: if wireType == 1 { var v uint64 - if iNdEx+8 > l { + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 m.Field11 = append(m.Field11, v) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4157,7 +3938,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -4165,10 +3946,10 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } for iNdEx < postIndex { var v uint64 - if iNdEx+8 > l { + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx])) + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 m.Field11 = append(m.Field11, v) } @@ -4178,17 +3959,17 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { case 12: if wireType == 1 { var v int64 - if iNdEx+8 > l { + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 m.Field12 = append(m.Field12, v) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4201,7 +3982,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -4209,10 +3990,10 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } for iNdEx < postIndex { var v int64 - if iNdEx+8 > l { + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx])) + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 m.Field12 = append(m.Field12, v) } @@ -4224,7 +4005,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4241,7 +4022,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var packedLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4254,7 +4035,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } } if packedLen < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } postIndex := iNdEx + packedLen if postIndex > l { @@ -4264,7 +4045,7 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowPackedUnsafe + return ErrIntOverflowPacked } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -4283,12 +4064,12 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } default: iNdEx = preIndex - skippy, err := skipPackedUnsafe(dAtA[iNdEx:]) + skippy, err := skipPacked(dAtA[iNdEx:]) if err != nil { return err } if skippy < 0 { - return ErrInvalidLengthPackedUnsafe + return ErrInvalidLengthPacked } if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF @@ -4303,14 +4084,14 @@ func (m *NinRepPackedNativeUnsafe) Unmarshal(dAtA []byte) error { } return nil } -func skipPackedUnsafe(dAtA []byte) (n int, err error) { +func skipPacked(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, ErrIntOverflowPackedUnsafe + return 0, ErrIntOverflowPacked } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -4327,7 +4108,7 @@ func skipPackedUnsafe(dAtA []byte) (n int, err error) { case 0: for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowPackedUnsafe + return 0, ErrIntOverflowPacked } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -4345,7 +4126,7 @@ func skipPackedUnsafe(dAtA []byte) (n int, err error) { var length int for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowPackedUnsafe + return 0, ErrIntOverflowPacked } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -4359,7 +4140,7 @@ func skipPackedUnsafe(dAtA []byte) (n int, err error) { } iNdEx += length if length < 0 { - return 0, ErrInvalidLengthPackedUnsafe + return 0, ErrInvalidLengthPacked } return iNdEx, nil case 3: @@ -4368,7 +4149,7 @@ func skipPackedUnsafe(dAtA []byte) (n int, err error) { var start int = iNdEx for shift := uint(0); ; shift += 7 { if shift >= 64 { - return 0, ErrIntOverflowPackedUnsafe + return 0, ErrIntOverflowPacked } if iNdEx >= l { return 0, io.ErrUnexpectedEOF @@ -4384,7 +4165,7 @@ func skipPackedUnsafe(dAtA []byte) (n int, err error) { if innerWireType == 4 { break } - next, err := skipPackedUnsafe(dAtA[start:]) + next, err := skipPacked(dAtA[start:]) if err != nil { return 0, err } @@ -4404,8 +4185,8 @@ func skipPackedUnsafe(dAtA []byte) (n int, err error) { } var ( - ErrInvalidLengthPackedUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowPackedUnsafe = fmt.Errorf("proto: integer overflow") + ErrInvalidLengthPacked = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowPacked = fmt.Errorf("proto: integer overflow") ) func init() { proto.RegisterFile("packed.proto", fileDescriptorPacked) } diff --git a/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go b/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go index a149e4c39..fe190bde1 100644 --- a/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go +++ b/vendor/github.com/gogo/protobuf/test/proto3extension/proto3ext.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto3ext.proto -// DO NOT EDIT! /* Package proto3extension is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go b/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go index ea113f413..53bf3b612 100644 --- a/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go +++ b/vendor/github.com/gogo/protobuf/test/protosize/protosize.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: protosize.proto -// DO NOT EDIT! /* Package protosize is a generated protocol buffer package. @@ -190,24 +189,6 @@ func (m *SizeMessage) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Protosize(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 encodeFixed32Protosize(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 encodeVarintProtosize(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/protosize/protosizepb_test.go b/vendor/github.com/gogo/protobuf/test/protosize/protosizepb_test.go index 176f5a128..a242d3a91 100644 --- a/vendor/github.com/gogo/protobuf/test/protosize/protosizepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/protosize/protosizepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: protosize.proto -// DO NOT EDIT! /* Package protosize is a generated protocol buffer package. @@ -14,11 +13,10 @@ It has these top-level messages: package protosize import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -30,14 +28,14 @@ var _ = math.Inf func TestSizeMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -55,13 +53,13 @@ func TestSizeMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSizeMessageMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, false) size := p.ProtoSize() dAtA := make([]byte, size) @@ -73,7 +71,7 @@ func TestSizeMessageMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -86,15 +84,15 @@ func TestSizeMessageMarshalTo(t *testing.T) { func TestSizeMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -104,11 +102,11 @@ func TestSizeMessageJSON(t *testing.T) { } func TestSizeMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -118,11 +116,11 @@ func TestSizeMessageProtoText(t *testing.T) { func TestSizeMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -132,10 +130,10 @@ func TestSizeMessageProtoCompactText(t *testing.T) { func TestSizeMessageProtoSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -146,7 +144,7 @@ func TestSizeMessageProtoSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } diff --git a/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go b/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go index 8acbc63ed..4427e67b8 100644 --- a/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go +++ b/vendor/github.com/gogo/protobuf/test/required/requiredexample.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: requiredexample.proto -// DO NOT EDIT! /* Package required is a generated protocol buffer package. @@ -21,7 +20,7 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import binary "encoding/binary" import io "io" @@ -368,7 +367,7 @@ func (m *RequiredExample) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if m.TheRequiredString == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("theRequiredString") + return 0, proto.NewRequiredNotSetError("theRequiredString") } else { dAtA[i] = 0xa i++ @@ -419,10 +418,12 @@ func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { _ = l dAtA[i] = 0x9 i++ - i = encodeFixed64Requiredexample(dAtA, i, uint64(math.Float64bits(float64(m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Field1)))) + i += 8 dAtA[i] = 0x15 i++ - i = encodeFixed32Requiredexample(dAtA, i, uint32(math.Float32bits(float32(m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Field2)))) + i += 4 dAtA[i] = 0x18 i++ i = encodeVarintRequiredexample(dAtA, i, uint64(m.Field3)) @@ -443,16 +444,20 @@ func (m *NidOptNative) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintRequiredexample(dAtA, i, uint64((uint64(m.Field8)<<1)^uint64((m.Field8>>63)))) dAtA[i] = 0x4d i++ - i = encodeFixed32Requiredexample(dAtA, i, uint32(m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field9)) + i += 4 dAtA[i] = 0x55 i++ - i = encodeFixed32Requiredexample(dAtA, i, uint32(m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.Field10)) + i += 4 dAtA[i] = 0x59 i++ - i = encodeFixed64Requiredexample(dAtA, i, uint64(m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field11)) + i += 8 dAtA[i] = 0x61 i++ - i = encodeFixed64Requiredexample(dAtA, i, uint64(m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Field12)) + i += 8 dAtA[i] = 0x68 i++ if m.Field13 { @@ -493,91 +498,97 @@ func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if m.Field1 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field1") + return 0, proto.NewRequiredNotSetError("Field1") } else { dAtA[i] = 0x9 i++ - i = encodeFixed64Requiredexample(dAtA, i, uint64(math.Float64bits(float64(*m.Field1)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field1)))) + i += 8 } if m.Field2 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field2") + return 0, proto.NewRequiredNotSetError("Field2") } else { dAtA[i] = 0x15 i++ - i = encodeFixed32Requiredexample(dAtA, i, uint32(math.Float32bits(float32(*m.Field2)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.Field2)))) + i += 4 } if m.Field3 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field3") + return 0, proto.NewRequiredNotSetError("Field3") } else { dAtA[i] = 0x18 i++ i = encodeVarintRequiredexample(dAtA, i, uint64(*m.Field3)) } if m.Field4 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field4") + return 0, proto.NewRequiredNotSetError("Field4") } else { dAtA[i] = 0x20 i++ i = encodeVarintRequiredexample(dAtA, i, uint64(*m.Field4)) } if m.Field5 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field5") + return 0, proto.NewRequiredNotSetError("Field5") } else { dAtA[i] = 0x28 i++ i = encodeVarintRequiredexample(dAtA, i, uint64(*m.Field5)) } if m.Field6 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field6") + return 0, proto.NewRequiredNotSetError("Field6") } else { dAtA[i] = 0x30 i++ i = encodeVarintRequiredexample(dAtA, i, uint64(*m.Field6)) } if m.Field7 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field7") + return 0, proto.NewRequiredNotSetError("Field7") } else { dAtA[i] = 0x38 i++ i = encodeVarintRequiredexample(dAtA, i, uint64((uint32(*m.Field7)<<1)^uint32((*m.Field7>>31)))) } if m.Field8 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field8") + return 0, proto.NewRequiredNotSetError("Field8") } else { dAtA[i] = 0x40 i++ i = encodeVarintRequiredexample(dAtA, i, uint64((uint64(*m.Field8)<<1)^uint64((*m.Field8>>63)))) } if m.Field9 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field9") + return 0, proto.NewRequiredNotSetError("Field9") } else { dAtA[i] = 0x4d i++ - i = encodeFixed32Requiredexample(dAtA, i, uint32(*m.Field9)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field9)) + i += 4 } if m.Field10 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field10") + return 0, proto.NewRequiredNotSetError("Field10") } else { dAtA[i] = 0x55 i++ - i = encodeFixed32Requiredexample(dAtA, i, uint32(*m.Field10)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(*m.Field10)) + i += 4 } if m.Field11 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field11") + return 0, proto.NewRequiredNotSetError("Field11") } else { dAtA[i] = 0x59 i++ - i = encodeFixed64Requiredexample(dAtA, i, uint64(*m.Field11)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field11)) + i += 8 } if m.Field12 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field12") + return 0, proto.NewRequiredNotSetError("Field12") } else { dAtA[i] = 0x61 i++ - i = encodeFixed64Requiredexample(dAtA, i, uint64(*m.Field12)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(*m.Field12)) + i += 8 } if m.Field13 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field13") + return 0, proto.NewRequiredNotSetError("Field13") } else { dAtA[i] = 0x68 i++ @@ -589,7 +600,7 @@ func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { i++ } if m.Field14 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field14") + return 0, proto.NewRequiredNotSetError("Field14") } else { dAtA[i] = 0x72 i++ @@ -597,7 +608,7 @@ func (m *NinOptNative) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], *m.Field14) } if m.Field15 == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field15") + return 0, proto.NewRequiredNotSetError("Field15") } else { dAtA[i] = 0x7a i++ @@ -643,24 +654,6 @@ func (m *NestedNinOptNative) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Requiredexample(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 encodeFixed32Requiredexample(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 encodeVarintRequiredexample(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1166,7 +1159,7 @@ func (m *RequiredExample) Unmarshal(dAtA []byte) error { } } if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("theRequiredString") + return proto.NewRequiredNotSetError("theRequiredString") } if iNdEx > l { @@ -1212,15 +1205,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field1 = float64(math.Float64frombits(v)) hasFields[0] |= uint64(0x00000001) case 2: @@ -1231,11 +1217,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field2 = float32(math.Float32frombits(v)) hasFields[0] |= uint64(0x00000002) case 3: @@ -1370,11 +1353,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.Field9 = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field9 = uint32(dAtA[iNdEx-4]) - m.Field9 |= uint32(dAtA[iNdEx-3]) << 8 - m.Field9 |= uint32(dAtA[iNdEx-2]) << 16 - m.Field9 |= uint32(dAtA[iNdEx-1]) << 24 hasFields[0] |= uint64(0x00000100) case 10: if wireType != 5 { @@ -1384,11 +1364,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.Field10 = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Field10 = int32(dAtA[iNdEx-4]) - m.Field10 |= int32(dAtA[iNdEx-3]) << 8 - m.Field10 |= int32(dAtA[iNdEx-2]) << 16 - m.Field10 |= int32(dAtA[iNdEx-1]) << 24 hasFields[0] |= uint64(0x00000200) case 11: if wireType != 1 { @@ -1398,15 +1375,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Field11 = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field11 = uint64(dAtA[iNdEx-8]) - m.Field11 |= uint64(dAtA[iNdEx-7]) << 8 - m.Field11 |= uint64(dAtA[iNdEx-6]) << 16 - m.Field11 |= uint64(dAtA[iNdEx-5]) << 24 - m.Field11 |= uint64(dAtA[iNdEx-4]) << 32 - m.Field11 |= uint64(dAtA[iNdEx-3]) << 40 - m.Field11 |= uint64(dAtA[iNdEx-2]) << 48 - m.Field11 |= uint64(dAtA[iNdEx-1]) << 56 hasFields[0] |= uint64(0x00000400) case 12: if wireType != 1 { @@ -1416,15 +1386,8 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Field12 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Field12 = int64(dAtA[iNdEx-8]) - m.Field12 |= int64(dAtA[iNdEx-7]) << 8 - m.Field12 |= int64(dAtA[iNdEx-6]) << 16 - m.Field12 |= int64(dAtA[iNdEx-5]) << 24 - m.Field12 |= int64(dAtA[iNdEx-4]) << 32 - m.Field12 |= int64(dAtA[iNdEx-3]) << 40 - m.Field12 |= int64(dAtA[iNdEx-2]) << 48 - m.Field12 |= int64(dAtA[iNdEx-1]) << 56 hasFields[0] |= uint64(0x00000800) case 13: if wireType != 0 { @@ -1526,49 +1489,49 @@ func (m *NidOptNative) Unmarshal(dAtA []byte) error { } } if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field1") + return proto.NewRequiredNotSetError("Field1") } if hasFields[0]&uint64(0x00000002) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field2") + return proto.NewRequiredNotSetError("Field2") } if hasFields[0]&uint64(0x00000004) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field3") + return proto.NewRequiredNotSetError("Field3") } if hasFields[0]&uint64(0x00000008) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field4") + return proto.NewRequiredNotSetError("Field4") } if hasFields[0]&uint64(0x00000010) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field5") + return proto.NewRequiredNotSetError("Field5") } if hasFields[0]&uint64(0x00000020) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field6") + return proto.NewRequiredNotSetError("Field6") } if hasFields[0]&uint64(0x00000040) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field7") + return proto.NewRequiredNotSetError("Field7") } if hasFields[0]&uint64(0x00000080) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field8") + return proto.NewRequiredNotSetError("Field8") } if hasFields[0]&uint64(0x00000100) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field9") + return proto.NewRequiredNotSetError("Field9") } if hasFields[0]&uint64(0x00000200) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field10") + return proto.NewRequiredNotSetError("Field10") } if hasFields[0]&uint64(0x00000400) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field11") + return proto.NewRequiredNotSetError("Field11") } if hasFields[0]&uint64(0x00000800) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field12") + return proto.NewRequiredNotSetError("Field12") } if hasFields[0]&uint64(0x00001000) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field13") + return proto.NewRequiredNotSetError("Field13") } if hasFields[0]&uint64(0x00002000) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field14") + return proto.NewRequiredNotSetError("Field14") } if hasFields[0]&uint64(0x00004000) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field15") + return proto.NewRequiredNotSetError("Field15") } if iNdEx > l { @@ -1614,15 +1577,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field1 = &v2 hasFields[0] |= uint64(0x00000001) @@ -1634,11 +1590,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field2 = &v2 hasFields[0] |= uint64(0x00000002) @@ -1779,11 +1732,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Field9 = &v hasFields[0] |= uint64(0x00000100) case 10: @@ -1794,11 +1744,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = int32(dAtA[iNdEx-4]) - v |= int32(dAtA[iNdEx-3]) << 8 - v |= int32(dAtA[iNdEx-2]) << 16 - v |= int32(dAtA[iNdEx-1]) << 24 m.Field10 = &v hasFields[0] |= uint64(0x00000200) case 11: @@ -1809,15 +1756,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Field11 = &v hasFields[0] |= uint64(0x00000400) case 12: @@ -1828,15 +1768,8 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = int64(dAtA[iNdEx-8]) - v |= int64(dAtA[iNdEx-7]) << 8 - v |= int64(dAtA[iNdEx-6]) << 16 - v |= int64(dAtA[iNdEx-5]) << 24 - v |= int64(dAtA[iNdEx-4]) << 32 - v |= int64(dAtA[iNdEx-3]) << 40 - v |= int64(dAtA[iNdEx-2]) << 48 - v |= int64(dAtA[iNdEx-1]) << 56 m.Field12 = &v hasFields[0] |= uint64(0x00000800) case 13: @@ -1941,49 +1874,49 @@ func (m *NinOptNative) Unmarshal(dAtA []byte) error { } } if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field1") + return proto.NewRequiredNotSetError("Field1") } if hasFields[0]&uint64(0x00000002) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field2") + return proto.NewRequiredNotSetError("Field2") } if hasFields[0]&uint64(0x00000004) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field3") + return proto.NewRequiredNotSetError("Field3") } if hasFields[0]&uint64(0x00000008) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field4") + return proto.NewRequiredNotSetError("Field4") } if hasFields[0]&uint64(0x00000010) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field5") + return proto.NewRequiredNotSetError("Field5") } if hasFields[0]&uint64(0x00000020) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field6") + return proto.NewRequiredNotSetError("Field6") } if hasFields[0]&uint64(0x00000040) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field7") + return proto.NewRequiredNotSetError("Field7") } if hasFields[0]&uint64(0x00000080) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field8") + return proto.NewRequiredNotSetError("Field8") } if hasFields[0]&uint64(0x00000100) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field9") + return proto.NewRequiredNotSetError("Field9") } if hasFields[0]&uint64(0x00000200) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field10") + return proto.NewRequiredNotSetError("Field10") } if hasFields[0]&uint64(0x00000400) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field11") + return proto.NewRequiredNotSetError("Field11") } if hasFields[0]&uint64(0x00000800) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field12") + return proto.NewRequiredNotSetError("Field12") } if hasFields[0]&uint64(0x00001000) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field13") + return proto.NewRequiredNotSetError("Field13") } if hasFields[0]&uint64(0x00002000) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field14") + return proto.NewRequiredNotSetError("Field14") } if hasFields[0]&uint64(0x00004000) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Field15") + return proto.NewRequiredNotSetError("Field15") } if iNdEx > l { diff --git a/vendor/github.com/gogo/protobuf/test/sizerconflict/doc.go b/vendor/github.com/gogo/protobuf/test/sizerconflict/doc.go new file mode 100644 index 000000000..66ef52c40 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/sizerconflict/doc.go @@ -0,0 +1 @@ +package sizerconflict diff --git a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go index 86110ab32..5bc88d618 100644 --- a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go +++ b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscore.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: sizeunderscore.proto -// DO NOT EDIT! /* Package sizeunderscore is a generated protocol buffer package. @@ -168,24 +167,6 @@ func (m *SizeMessage) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Sizeunderscore(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 encodeFixed32Sizeunderscore(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 encodeVarintSizeunderscore(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscorepb_test.go b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscorepb_test.go index 22ae66fa6..c499477d8 100644 --- a/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscorepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/sizeunderscore/sizeunderscorepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: sizeunderscore.proto -// DO NOT EDIT! /* Package sizeunderscore is a generated protocol buffer package. @@ -14,11 +13,10 @@ It has these top-level messages: package sizeunderscore import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -30,14 +28,14 @@ var _ = math.Inf func TestSizeMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -55,13 +53,13 @@ func TestSizeMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestSizeMessageMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -73,7 +71,7 @@ func TestSizeMessageMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -86,15 +84,15 @@ func TestSizeMessageMarshalTo(t *testing.T) { func TestSizeMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &SizeMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -104,11 +102,11 @@ func TestSizeMessageJSON(t *testing.T) { } func TestSizeMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -118,11 +116,11 @@ func TestSizeMessageProtoText(t *testing.T) { func TestSizeMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &SizeMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if !p.Equal(msg) { @@ -132,10 +130,10 @@ func TestSizeMessageProtoCompactText(t *testing.T) { func TestSizeMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSizeMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -146,7 +144,7 @@ func TestSizeMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } diff --git a/vendor/github.com/gogo/protobuf/test/stdtypes/Makefile b/vendor/github.com/gogo/protobuf/test/stdtypes/Makefile index c04ae11b2..82c4c8c0b 100644 --- a/vendor/github.com/gogo/protobuf/test/stdtypes/Makefile +++ b/vendor/github.com/gogo/protobuf/test/stdtypes/Makefile @@ -35,3 +35,5 @@ regenerate: :. \ --proto_path=../../../../../:../../protobuf/:. stdtypes.proto +test: + go test -race -run=TestConcurrentTextMarshal . \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/stdtypes/concurrency_test.go b/vendor/github.com/gogo/protobuf/test/stdtypes/concurrency_test.go new file mode 100644 index 000000000..fd1181fff --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/stdtypes/concurrency_test.go @@ -0,0 +1,31 @@ +package stdtypes + +import ( + "io/ioutil" + "sync" + "testing" + + "github.com/gogo/protobuf/proto" +) + +func TestConcurrentTextMarshal(t *testing.T) { + // Verify that there are no race conditions when calling + // TextMarshaler.Marshal on a protobuf message that contains a StdDuration + + std := StdTypes{} + var wg sync.WaitGroup + + tm := proto.TextMarshaler{} + + for i := 0; i < 2; i++ { + wg.Add(1) + go func() { + defer wg.Done() + err := tm.Marshal(ioutil.Discard, &std) + if err != nil { + t.Fatal(err) + } + }() + } + wg.Wait() +} diff --git a/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go index 90ccdb3d2..a761f752d 100644 --- a/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go +++ b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypes.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: stdtypes.proto -// DO NOT EDIT! /* Package stdtypes is a generated protocol buffer package. @@ -28,7 +27,9 @@ import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +import types "github.com/gogo/protobuf/types" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -894,7 +895,7 @@ func (this *MapStdTypes) GoString() string { for k := range this.NullableTimestamp { keysForNullableTimestamp = append(keysForNullableTimestamp, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNullableTimestamp) + sortkeys.Int32s(keysForNullableTimestamp) mapStringForNullableTimestamp := "map[int32]*time.Time{" for _, k := range keysForNullableTimestamp { mapStringForNullableTimestamp += fmt.Sprintf("%#v: %#v,", k, this.NullableTimestamp[k]) @@ -907,7 +908,7 @@ func (this *MapStdTypes) GoString() string { for k := range this.Timestamp { keysForTimestamp = append(keysForTimestamp, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForTimestamp) + sortkeys.Int32s(keysForTimestamp) mapStringForTimestamp := "map[int32]time.Time{" for _, k := range keysForTimestamp { mapStringForTimestamp += fmt.Sprintf("%#v: %#v,", k, this.Timestamp[k]) @@ -920,7 +921,7 @@ func (this *MapStdTypes) GoString() string { for k := range this.NullableDuration { keysForNullableDuration = append(keysForNullableDuration, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNullableDuration) + sortkeys.Int32s(keysForNullableDuration) mapStringForNullableDuration := "map[int32]*time.Duration{" for _, k := range keysForNullableDuration { mapStringForNullableDuration += fmt.Sprintf("%#v: %#v,", k, this.NullableDuration[k]) @@ -933,7 +934,7 @@ func (this *MapStdTypes) GoString() string { for k := range this.Duration { keysForDuration = append(keysForDuration, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForDuration) + sortkeys.Int32s(keysForDuration) mapStringForDuration := "map[int32]time.Duration{" for _, k := range keysForDuration { mapStringForDuration += fmt.Sprintf("%#v: %#v,", k, this.Duration[k]) @@ -984,14 +985,14 @@ func valueToGoStringStdtypes(v interface{}, typ string) string { func NewPopulatedStdTypes(r randyStdtypes, easy bool) *StdTypes { this := &StdTypes{} if r.Intn(10) != 0 { - this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp = types.NewPopulatedStdTime(r, easy) } if r.Intn(10) != 0 { - this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration = types.NewPopulatedStdDuration(r, easy) } - v1 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v1 := types.NewPopulatedStdTime(r, easy) this.Timestamp = *v1 - v2 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v2 := types.NewPopulatedStdDuration(r, easy) this.Duration = *v2 if !easy && r.Intn(10) != 0 { } @@ -1004,21 +1005,21 @@ func NewPopulatedRepStdTypes(r randyStdtypes, easy bool) *RepStdTypes { v3 := r.Intn(5) this.NullableTimestamps = make([]*time.Time, v3) for i := 0; i < v3; i++ { - this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamps[i] = types.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v4 := r.Intn(5) this.NullableDurations = make([]*time.Duration, v4) for i := 0; i < v4; i++ { - this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDurations[i] = types.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v5 := r.Intn(5) this.Timestamps = make([]time.Time, v5) for i := 0; i < v5; i++ { - v6 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v6 := types.NewPopulatedStdTime(r, easy) this.Timestamps[i] = *v6 } } @@ -1026,7 +1027,7 @@ func NewPopulatedRepStdTypes(r randyStdtypes, easy bool) *RepStdTypes { v7 := r.Intn(5) this.Durations = make([]time.Duration, v7) for i := 0; i < v7; i++ { - v8 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v8 := types.NewPopulatedStdDuration(r, easy) this.Durations[i] = *v8 } } @@ -1041,28 +1042,28 @@ func NewPopulatedMapStdTypes(r randyStdtypes, easy bool) *MapStdTypes { v9 := r.Intn(10) this.NullableTimestamp = make(map[int32]*time.Time) for i := 0; i < v9; i++ { - this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp[int32(r.Int31())] = types.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v10 := r.Intn(10) this.Timestamp = make(map[int32]time.Time) for i := 0; i < v10; i++ { - this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp[int32(r.Int31())] = *types.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v11 := r.Intn(10) this.NullableDuration = make(map[int32]*time.Duration) for i := 0; i < v11; i++ { - this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration[int32(r.Int31())] = types.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v12 := r.Intn(10) this.Duration = make(map[int32]time.Duration) for i := 0; i < v12; i++ { - this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration[int32(r.Int31())] = *types.NewPopulatedStdDuration(r, easy) } } if !easy && r.Intn(10) != 0 { @@ -1086,12 +1087,12 @@ func NewPopulatedOneofStdTypes(r randyStdtypes, easy bool) *OneofStdTypes { func NewPopulatedOneofStdTypes_Timestamp(r randyStdtypes, easy bool) *OneofStdTypes_Timestamp { this := &OneofStdTypes_Timestamp{} - this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = types.NewPopulatedStdTime(r, easy) return this } func NewPopulatedOneofStdTypes_Duration(r randyStdtypes, easy bool) *OneofStdTypes_Duration { this := &OneofStdTypes_Duration{} - this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = types.NewPopulatedStdDuration(r, easy) return this } @@ -1171,16 +1172,16 @@ func (m *StdTypes) Size() (n int) { var l int _ = l if m.NullableTimestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + l = types.SizeOfStdTime(*m.NullableTimestamp) n += 1 + l + sovStdtypes(uint64(l)) } if m.NullableDuration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + l = types.SizeOfStdDuration(*m.NullableDuration) n += 1 + l + sovStdtypes(uint64(l)) } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + l = types.SizeOfStdTime(m.Timestamp) n += 1 + l + sovStdtypes(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + l = types.SizeOfStdDuration(m.Duration) n += 1 + l + sovStdtypes(uint64(l)) return n } @@ -1190,25 +1191,25 @@ func (m *RepStdTypes) Size() (n int) { _ = l if len(m.NullableTimestamps) > 0 { for _, e := range m.NullableTimestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + l = types.SizeOfStdTime(*e) n += 1 + l + sovStdtypes(uint64(l)) } } if len(m.NullableDurations) > 0 { for _, e := range m.NullableDurations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + l = types.SizeOfStdDuration(*e) n += 1 + l + sovStdtypes(uint64(l)) } } if len(m.Timestamps) > 0 { for _, e := range m.Timestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + l = types.SizeOfStdTime(e) n += 1 + l + sovStdtypes(uint64(l)) } } if len(m.Durations) > 0 { for _, e := range m.Durations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + l = types.SizeOfStdDuration(e) n += 1 + l + sovStdtypes(uint64(l)) } } @@ -1224,7 +1225,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l = types.SizeOfStdTime(*v) l += 1 + sovStdtypes(uint64(l)) } mapEntrySize := 1 + sovStdtypes(uint64(k)) + l @@ -1235,7 +1236,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Timestamp { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + l = types.SizeOfStdTime(v) mapEntrySize := 1 + sovStdtypes(uint64(k)) + 1 + l + sovStdtypes(uint64(l)) n += mapEntrySize + 1 + sovStdtypes(uint64(mapEntrySize)) } @@ -1246,7 +1247,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l = types.SizeOfStdDuration(*v) l += 1 + sovStdtypes(uint64(l)) } mapEntrySize := 1 + sovStdtypes(uint64(k)) + l @@ -1257,7 +1258,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Duration { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + l = types.SizeOfStdDuration(v) mapEntrySize := 1 + sovStdtypes(uint64(k)) + 1 + l + sovStdtypes(uint64(l)) n += mapEntrySize + 1 + sovStdtypes(uint64(mapEntrySize)) } @@ -1278,7 +1279,7 @@ func (m *OneofStdTypes_Timestamp) Size() (n int) { var l int _ = l if m.Timestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + l = types.SizeOfStdTime(*m.Timestamp) n += 1 + l + sovStdtypes(uint64(l)) } return n @@ -1287,7 +1288,7 @@ func (m *OneofStdTypes_Duration) Size() (n int) { var l int _ = l if m.Duration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + l = types.SizeOfStdDuration(*m.Duration) n += 1 + l + sovStdtypes(uint64(l)) } return n diff --git a/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypespb_test.go b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypespb_test.go index 4ecfa3cb0..86885c929 100644 --- a/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypespb_test.go +++ b/vendor/github.com/gogo/protobuf/test/stdtypes/stdtypespb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: stdtypes.proto -// DO NOT EDIT! /* Package stdtypes is a generated protocol buffer package. @@ -17,13 +16,12 @@ It has these top-level messages: package stdtypes import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" import _ "github.com/gogo/protobuf/types" @@ -36,14 +34,14 @@ var _ = math.Inf func TestStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -64,12 +62,12 @@ func TestStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 10000) for i := 0; i < 10000; i++ { @@ -77,7 +75,7 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -87,11 +85,11 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedStdTypes(popr, false)) if err != nil { panic(err) } @@ -101,7 +99,7 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -110,14 +108,14 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { func TestRepStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -138,12 +136,12 @@ func TestRepStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -151,7 +149,7 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -161,11 +159,11 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedRepStdTypes(popr, false)) if err != nil { panic(err) } @@ -175,7 +173,7 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -184,14 +182,14 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { func TestMapStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -212,12 +210,12 @@ func TestMapStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -225,7 +223,7 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -235,11 +233,11 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMapStdTypes(popr, false)) if err != nil { panic(err) } @@ -249,7 +247,7 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -258,14 +256,14 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { func TestOneofStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -286,12 +284,12 @@ func TestOneofStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -299,7 +297,7 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -309,11 +307,11 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) if err != nil { panic(err) } @@ -323,7 +321,7 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -332,15 +330,15 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { func TestStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -353,15 +351,15 @@ func TestStdTypesJSON(t *testing.T) { } func TestRepStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -374,15 +372,15 @@ func TestRepStdTypesJSON(t *testing.T) { } func TestMapStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -395,15 +393,15 @@ func TestMapStdTypesJSON(t *testing.T) { } func TestOneofStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -416,11 +414,11 @@ func TestOneofStdTypesJSON(t *testing.T) { } func TestStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -433,11 +431,11 @@ func TestStdTypesProtoText(t *testing.T) { func TestStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -450,11 +448,11 @@ func TestStdTypesProtoCompactText(t *testing.T) { func TestRepStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -467,11 +465,11 @@ func TestRepStdTypesProtoText(t *testing.T) { func TestRepStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -484,11 +482,11 @@ func TestRepStdTypesProtoCompactText(t *testing.T) { func TestMapStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -501,11 +499,11 @@ func TestMapStdTypesProtoText(t *testing.T) { func TestMapStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -518,11 +516,11 @@ func TestMapStdTypesProtoCompactText(t *testing.T) { func TestOneofStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -535,11 +533,11 @@ func TestOneofStdTypesProtoText(t *testing.T) { func TestOneofStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -551,14 +549,14 @@ func TestOneofStdTypesProtoCompactText(t *testing.T) { } func TestStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -566,14 +564,14 @@ func TestStdTypesVerboseEqual(t *testing.T) { } } func TestRepStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -581,14 +579,14 @@ func TestRepStdTypesVerboseEqual(t *testing.T) { } } func TestMapStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -596,14 +594,14 @@ func TestMapStdTypesVerboseEqual(t *testing.T) { } } func TestOneofStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -611,63 +609,63 @@ func TestOneofStdTypesVerboseEqual(t *testing.T) { } } func TestStdTypesGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedStdTypes(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestRepStdTypesGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepStdTypes(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMapStdTypesGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapStdTypes(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOneofStdTypesGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofStdTypes(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -678,14 +676,14 @@ func TestStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 1000) for i := 0; i < 1000; i++ { @@ -700,10 +698,10 @@ func BenchmarkStdTypesSize(b *testing.B) { func TestRepStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -714,14 +712,14 @@ func TestRepStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRepStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -736,10 +734,10 @@ func BenchmarkRepStdTypesSize(b *testing.B) { func TestMapStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -750,14 +748,14 @@ func TestMapStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMapStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -772,10 +770,10 @@ func BenchmarkMapStdTypesSize(b *testing.B) { func TestOneofStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -786,14 +784,14 @@ func TestOneofStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOneofStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/tags/tags.pb.go b/vendor/github.com/gogo/protobuf/test/tags/tags.pb.go index c16055ec2..2cda68912 100644 --- a/vendor/github.com/gogo/protobuf/test/tags/tags.pb.go +++ b/vendor/github.com/gogo/protobuf/test/tags/tags.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: tags.proto -// DO NOT EDIT! /* Package tags is a generated protocol buffer package. diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go index 84a32bd4a..b3367dd7c 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/theproto3.proto -// DO NOT EDIT! /* Package theproto3 is a generated protocol buffer package. @@ -29,17 +28,18 @@ import test "github.com/gogo/protobuf/test/combos/both" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strconv "strconv" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +import binary "encoding/binary" import io "io" @@ -240,541 +240,548 @@ func init() { proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } -func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Message) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *Nested) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Nested) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMaps) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMapsOrdered) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *MessageWithMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *MessageWithMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *FloatingPoint) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *Uint128Pair) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Uint128Pair) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ContainsNestedMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ContainsNestedMap_NestedMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NotPacked) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func Theproto3Description() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7833 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, - 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, - 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x90, 0x73, 0xc1, 0x58, 0x52, 0x00, 0x10, 0x1c, 0x71, - 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0xeb, 0x54, 0x50, 0x4d, 0xe0, 0x90, 0x6c, 0x09, 0xe8, 0xc6, - 0xa2, 0x1b, 0x92, 0xe8, 0x87, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xa4, 0x72, 0xdd, 0xa4, 0xe2, 0x75, - 0x7c, 0x91, 0x37, 0xb5, 0xb1, 0x77, 0x37, 0x17, 0xaf, 0xb3, 0x71, 0xb6, 0xb6, 0x52, 0x59, 0xe5, - 0xc1, 0xc9, 0xe4, 0x25, 0xe5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0xbb, 0x2a, 0x4e, 0xe2, - 0x24, 0xde, 0xac, 0xab, 0x76, 0xab, 0xbc, 0x0f, 0x5b, 0xe7, 0xd6, 0xdd, 0xe7, 0xa0, 0x81, 0x06, - 0x47, 0x92, 0xed, 0x07, 0xbd, 0xcc, 0xa0, 0xcf, 0xf9, 0xbf, 0xaf, 0xff, 0xfe, 0x6f, 0xe7, 0xef, - 0xd3, 0x0d, 0x10, 0xbe, 0xb7, 0x06, 0x17, 0x8e, 0x1d, 0xe7, 0xb8, 0x81, 0xae, 0xb4, 0xda, 0x8e, - 0xe7, 0x1c, 0x76, 0x8e, 0xae, 0xd4, 0x91, 0x5b, 0x6b, 0x5b, 0x2d, 0xcf, 0x69, 0x2f, 0x91, 0x31, - 0x7d, 0x92, 0x4a, 0x2c, 0x71, 0x89, 0xdc, 0x36, 0x4c, 0x6d, 0x58, 0x0d, 0xb4, 0xee, 0x0b, 0xee, - 0x21, 0x4f, 0xbf, 0x09, 0xc9, 0x23, 0xab, 0x81, 0xb2, 0xca, 0x05, 0x75, 0x21, 0xbd, 0x72, 0x69, - 0x49, 0x02, 0x2d, 0x89, 0x88, 0x5d, 0x3c, 0x6c, 0x10, 0x44, 0xee, 0xfb, 0x49, 0x98, 0x8e, 0x98, - 0xd5, 0x75, 0x48, 0xda, 0x66, 0x13, 0x33, 0x2a, 0x0b, 0x63, 0x06, 0xf9, 0xac, 0x67, 0x61, 0xb4, - 0x65, 0xd6, 0x5e, 0x35, 0x8f, 0x51, 0x36, 0x41, 0x86, 0xf9, 0xa1, 0x3e, 0x07, 0x50, 0x47, 0x2d, - 0x64, 0xd7, 0x91, 0x5d, 0x3b, 0xcd, 0xaa, 0x17, 0xd4, 0x85, 0x31, 0x23, 0x34, 0xa2, 0x7f, 0x04, - 0xa6, 0x5a, 0x9d, 0xc3, 0x86, 0x55, 0xab, 0x86, 0xc4, 0xe0, 0x82, 0xba, 0x30, 0x6c, 0x68, 0x74, - 0x62, 0x3d, 0x10, 0x7e, 0x1a, 0x26, 0x5f, 0x47, 0xe6, 0xab, 0x61, 0xd1, 0x34, 0x11, 0x9d, 0xc0, - 0xc3, 0x21, 0xc1, 0x12, 0x64, 0x9a, 0xc8, 0x75, 0xcd, 0x63, 0x54, 0xf5, 0x4e, 0x5b, 0x28, 0x9b, - 0x24, 0x57, 0x7f, 0xa1, 0xeb, 0xea, 0xe5, 0x2b, 0x4f, 0x33, 0xd4, 0xfe, 0x69, 0x0b, 0xe9, 0x05, - 0x18, 0x43, 0x76, 0xa7, 0x49, 0x19, 0x86, 0x7b, 0xd8, 0xaf, 0x6c, 0x77, 0x9a, 0x32, 0x4b, 0x0a, - 0xc3, 0x18, 0xc5, 0xa8, 0x8b, 0xda, 0xaf, 0x59, 0x35, 0x94, 0x1d, 0x21, 0x04, 0x4f, 0x77, 0x11, - 0xec, 0xd1, 0x79, 0x99, 0x83, 0xe3, 0xf4, 0x12, 0x8c, 0xa1, 0x37, 0x3c, 0x64, 0xbb, 0x96, 0x63, - 0x67, 0x47, 0x09, 0xc9, 0x53, 0x11, 0x5e, 0x44, 0x8d, 0xba, 0x4c, 0x11, 0xe0, 0xf4, 0xeb, 0x30, - 0xea, 0xb4, 0x3c, 0xcb, 0xb1, 0xdd, 0x6c, 0xea, 0x82, 0xb2, 0x90, 0x5e, 0x39, 0x1f, 0x19, 0x08, - 0x3b, 0x54, 0xc6, 0xe0, 0xc2, 0xfa, 0x26, 0x68, 0xae, 0xd3, 0x69, 0xd7, 0x50, 0xb5, 0xe6, 0xd4, - 0x51, 0xd5, 0xb2, 0x8f, 0x9c, 0xec, 0x18, 0x21, 0x98, 0xef, 0xbe, 0x10, 0x22, 0x58, 0x72, 0xea, - 0x68, 0xd3, 0x3e, 0x72, 0x8c, 0x09, 0x57, 0x38, 0xd6, 0x67, 0x60, 0xc4, 0x3d, 0xb5, 0x3d, 0xf3, - 0x8d, 0x6c, 0x86, 0x44, 0x08, 0x3b, 0xca, 0xfd, 0xc9, 0x30, 0x4c, 0x0e, 0x12, 0x62, 0xb7, 0x61, - 0xf8, 0x08, 0x5f, 0x65, 0x36, 0x71, 0x16, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0x91, 0x87, 0x34, 0x62, - 0x01, 0xd2, 0x36, 0x72, 0x3d, 0x54, 0xa7, 0x11, 0xa1, 0x0e, 0x18, 0x53, 0x40, 0x41, 0xdd, 0x21, - 0x95, 0x7c, 0xa8, 0x90, 0x7a, 0x19, 0x26, 0x7d, 0x95, 0xaa, 0x6d, 0xd3, 0x3e, 0xe6, 0xb1, 0x79, - 0x25, 0x4e, 0x93, 0xa5, 0x32, 0xc7, 0x19, 0x18, 0x66, 0x4c, 0x20, 0xe1, 0x58, 0x5f, 0x07, 0x70, - 0x6c, 0xe4, 0x1c, 0x55, 0xeb, 0xa8, 0xd6, 0xc8, 0xa6, 0x7a, 0x58, 0x69, 0x07, 0x8b, 0x74, 0x59, - 0xc9, 0xa1, 0xa3, 0xb5, 0x86, 0x7e, 0x2b, 0x08, 0xb5, 0xd1, 0x1e, 0x91, 0xb2, 0x4d, 0x93, 0xac, - 0x2b, 0xda, 0x0e, 0x60, 0xa2, 0x8d, 0x70, 0xdc, 0xa3, 0x3a, 0xbb, 0xb2, 0x31, 0xa2, 0xc4, 0x52, - 0xec, 0x95, 0x19, 0x0c, 0x46, 0x2f, 0x6c, 0xbc, 0x1d, 0x3e, 0xd4, 0x9f, 0x04, 0x7f, 0xa0, 0x4a, - 0xc2, 0x0a, 0x48, 0x15, 0xca, 0xf0, 0xc1, 0x8a, 0xd9, 0x44, 0xb3, 0x37, 0x61, 0x42, 0x34, 0x8f, - 0x7e, 0x0e, 0x86, 0x5d, 0xcf, 0x6c, 0x7b, 0x24, 0x0a, 0x87, 0x0d, 0x7a, 0xa0, 0x6b, 0xa0, 0x22, - 0xbb, 0x4e, 0xaa, 0xdc, 0xb0, 0x81, 0x3f, 0xce, 0xde, 0x80, 0x71, 0xe1, 0xf4, 0x83, 0x02, 0x73, - 0x9f, 0x1b, 0x81, 0x73, 0x51, 0x31, 0x17, 0x19, 0xfe, 0x33, 0x30, 0x62, 0x77, 0x9a, 0x87, 0xa8, - 0x9d, 0x55, 0x09, 0x03, 0x3b, 0xd2, 0x0b, 0x30, 0xdc, 0x30, 0x0f, 0x51, 0x23, 0x9b, 0xbc, 0xa0, - 0x2c, 0x4c, 0xac, 0x7c, 0x64, 0xa0, 0xa8, 0x5e, 0xda, 0xc2, 0x10, 0x83, 0x22, 0xf5, 0xe7, 0x21, - 0xc9, 0x4a, 0x1c, 0x66, 0x58, 0x1c, 0x8c, 0x01, 0xc7, 0xa2, 0x41, 0x70, 0xfa, 0xe3, 0x30, 0x86, - 0xff, 0xa7, 0xb6, 0x1d, 0x21, 0x3a, 0xa7, 0xf0, 0x00, 0xb6, 0xab, 0x3e, 0x0b, 0x29, 0x12, 0x66, - 0x75, 0xc4, 0x97, 0x06, 0xff, 0x18, 0x3b, 0xa6, 0x8e, 0x8e, 0xcc, 0x4e, 0xc3, 0xab, 0xbe, 0x66, - 0x36, 0x3a, 0x88, 0x04, 0xcc, 0x98, 0x91, 0x61, 0x83, 0x9f, 0xc4, 0x63, 0xfa, 0x3c, 0xa4, 0x69, - 0x54, 0x5a, 0x76, 0x1d, 0xbd, 0x41, 0xaa, 0xcf, 0xb0, 0x41, 0x03, 0x75, 0x13, 0x8f, 0xe0, 0xd3, - 0xbf, 0xe2, 0x3a, 0x36, 0x77, 0x2d, 0x39, 0x05, 0x1e, 0x20, 0xa7, 0xbf, 0x21, 0x17, 0xbe, 0x27, - 0xa2, 0x2f, 0x4f, 0x8e, 0xc5, 0xdc, 0x37, 0x13, 0x90, 0x24, 0xf9, 0x36, 0x09, 0xe9, 0xfd, 0x7b, - 0xbb, 0xe5, 0xea, 0xfa, 0xce, 0x41, 0x71, 0xab, 0xac, 0x29, 0xfa, 0x04, 0x00, 0x19, 0xd8, 0xd8, - 0xda, 0x29, 0xec, 0x6b, 0x09, 0xff, 0x78, 0xb3, 0xb2, 0x7f, 0x7d, 0x55, 0x53, 0x7d, 0xc0, 0x01, - 0x1d, 0x48, 0x86, 0x05, 0xae, 0xad, 0x68, 0xc3, 0xba, 0x06, 0x19, 0x4a, 0xb0, 0xf9, 0x72, 0x79, - 0xfd, 0xfa, 0xaa, 0x36, 0x22, 0x8e, 0x5c, 0x5b, 0xd1, 0x46, 0xf5, 0x71, 0x18, 0x23, 0x23, 0xc5, - 0x9d, 0x9d, 0x2d, 0x2d, 0xe5, 0x73, 0xee, 0xed, 0x1b, 0x9b, 0x95, 0x3b, 0xda, 0x98, 0xcf, 0x79, - 0xc7, 0xd8, 0x39, 0xd8, 0xd5, 0xc0, 0x67, 0xd8, 0x2e, 0xef, 0xed, 0x15, 0xee, 0x94, 0xb5, 0xb4, - 0x2f, 0x51, 0xbc, 0xb7, 0x5f, 0xde, 0xd3, 0x32, 0x82, 0x5a, 0xd7, 0x56, 0xb4, 0x71, 0xff, 0x14, - 0xe5, 0xca, 0xc1, 0xb6, 0x36, 0xa1, 0x4f, 0xc1, 0x38, 0x3d, 0x05, 0x57, 0x62, 0x52, 0x1a, 0xba, - 0xbe, 0xaa, 0x69, 0x81, 0x22, 0x94, 0x65, 0x4a, 0x18, 0xb8, 0xbe, 0xaa, 0xe9, 0xb9, 0x12, 0x0c, - 0x93, 0xe8, 0xd2, 0x75, 0x98, 0xd8, 0x2a, 0x14, 0xcb, 0x5b, 0xd5, 0x9d, 0xdd, 0xfd, 0xcd, 0x9d, - 0x4a, 0x61, 0x4b, 0x53, 0x82, 0x31, 0xa3, 0xfc, 0x89, 0x83, 0x4d, 0xa3, 0xbc, 0xae, 0x25, 0xc2, - 0x63, 0xbb, 0xe5, 0xc2, 0x7e, 0x79, 0x5d, 0x53, 0x73, 0x35, 0x38, 0x17, 0x55, 0x67, 0x22, 0x33, - 0x23, 0xe4, 0xe2, 0x44, 0x0f, 0x17, 0x13, 0xae, 0x2e, 0x17, 0xff, 0xba, 0x02, 0xd3, 0x11, 0xb5, - 0x36, 0xf2, 0x24, 0x2f, 0xc0, 0x30, 0x0d, 0x51, 0xba, 0xfa, 0x3c, 0x13, 0x59, 0xb4, 0x49, 0xc0, - 0x76, 0xad, 0x40, 0x04, 0x17, 0x5e, 0x81, 0xd5, 0x1e, 0x2b, 0x30, 0xa6, 0xe8, 0x52, 0xf2, 0x33, - 0x0a, 0x64, 0x7b, 0x71, 0xc7, 0x14, 0x8a, 0x84, 0x50, 0x28, 0x6e, 0xcb, 0x0a, 0x5c, 0xec, 0x7d, - 0x0d, 0x5d, 0x5a, 0x7c, 0x55, 0x81, 0x99, 0xe8, 0x46, 0x25, 0x52, 0x87, 0xe7, 0x61, 0xa4, 0x89, - 0xbc, 0x13, 0x87, 0x2f, 0xd6, 0x97, 0x23, 0x96, 0x00, 0x3c, 0x2d, 0xdb, 0x8a, 0xa1, 0xc2, 0x6b, - 0x88, 0xda, 0xab, 0xdb, 0xa0, 0xda, 0x74, 0x69, 0xfa, 0x2b, 0x09, 0x78, 0x24, 0x92, 0x3c, 0x52, - 0xd1, 0x27, 0x00, 0x2c, 0xbb, 0xd5, 0xf1, 0xe8, 0x82, 0x4c, 0xeb, 0xd3, 0x18, 0x19, 0x21, 0xb9, - 0x8f, 0x6b, 0x4f, 0xc7, 0xf3, 0xe7, 0x55, 0x32, 0x0f, 0x74, 0x88, 0x08, 0xdc, 0x0c, 0x14, 0x4d, - 0x12, 0x45, 0xe7, 0x7a, 0x5c, 0x69, 0xd7, 0x5a, 0xb7, 0x0c, 0x5a, 0xad, 0x61, 0x21, 0xdb, 0xab, - 0xba, 0x5e, 0x1b, 0x99, 0x4d, 0xcb, 0x3e, 0x26, 0x05, 0x38, 0x95, 0x1f, 0x3e, 0x32, 0x1b, 0x2e, - 0x32, 0x26, 0xe9, 0xf4, 0x1e, 0x9f, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x43, 0x88, 0x11, 0x01, 0x41, - 0xa7, 0x7d, 0x44, 0xee, 0xb7, 0x47, 0x21, 0x1d, 0x6a, 0xeb, 0xf4, 0x8b, 0x90, 0x79, 0xc5, 0x7c, - 0xcd, 0xac, 0xf2, 0x56, 0x9d, 0x5a, 0x22, 0x8d, 0xc7, 0x76, 0x59, 0xbb, 0xbe, 0x0c, 0xe7, 0x88, - 0x88, 0xd3, 0xf1, 0x50, 0xbb, 0x5a, 0x6b, 0x98, 0xae, 0x4b, 0x8c, 0x96, 0x22, 0xa2, 0x3a, 0x9e, - 0xdb, 0xc1, 0x53, 0x25, 0x3e, 0xa3, 0xaf, 0xc1, 0x34, 0x41, 0x34, 0x3b, 0x0d, 0xcf, 0x6a, 0x35, - 0x50, 0x15, 0xdf, 0x3c, 0xb8, 0xa4, 0x10, 0xfb, 0x9a, 0x4d, 0x61, 0x89, 0x6d, 0x26, 0x80, 0x35, - 0x72, 0xf5, 0x75, 0x78, 0x82, 0xc0, 0x8e, 0x91, 0x8d, 0xda, 0xa6, 0x87, 0xaa, 0xe8, 0x17, 0x3b, - 0x66, 0xc3, 0xad, 0x9a, 0x76, 0xbd, 0x7a, 0x62, 0xba, 0x27, 0xd9, 0x73, 0x98, 0xa0, 0x98, 0xc8, - 0x2a, 0xc6, 0x63, 0x58, 0xf0, 0x0e, 0x93, 0x2b, 0x13, 0xb1, 0x82, 0x5d, 0x7f, 0xd1, 0x74, 0x4f, - 0xf4, 0x3c, 0xcc, 0x10, 0x16, 0xd7, 0x6b, 0x5b, 0xf6, 0x71, 0xb5, 0x76, 0x82, 0x6a, 0xaf, 0x56, - 0x3b, 0xde, 0xd1, 0xcd, 0xec, 0xe3, 0xe1, 0xf3, 0x13, 0x0d, 0xf7, 0x88, 0x4c, 0x09, 0x8b, 0x1c, - 0x78, 0x47, 0x37, 0xf5, 0x3d, 0xc8, 0x60, 0x67, 0x34, 0xad, 0x4f, 0xa3, 0xea, 0x91, 0xd3, 0x26, - 0x2b, 0xcb, 0x44, 0x44, 0x66, 0x87, 0x2c, 0xb8, 0xb4, 0xc3, 0x00, 0xdb, 0x4e, 0x1d, 0xe5, 0x87, - 0xf7, 0x76, 0xcb, 0xe5, 0x75, 0x23, 0xcd, 0x59, 0x36, 0x9c, 0x36, 0x0e, 0xa8, 0x63, 0xc7, 0x37, - 0x70, 0x9a, 0x06, 0xd4, 0xb1, 0xc3, 0xcd, 0xbb, 0x06, 0xd3, 0xb5, 0x1a, 0xbd, 0x66, 0xab, 0x56, - 0x65, 0x2d, 0xbe, 0x9b, 0xd5, 0x04, 0x63, 0xd5, 0x6a, 0x77, 0xa8, 0x00, 0x8b, 0x71, 0x57, 0xbf, - 0x05, 0x8f, 0x04, 0xc6, 0x0a, 0x03, 0xa7, 0xba, 0xae, 0x52, 0x86, 0xae, 0xc1, 0x74, 0xeb, 0xb4, - 0x1b, 0xa8, 0x0b, 0x67, 0x6c, 0x9d, 0xca, 0xb0, 0xa7, 0xc8, 0x6d, 0x5b, 0x1b, 0xd5, 0x4c, 0x0f, - 0xd5, 0xb3, 0x8f, 0x86, 0xa5, 0x43, 0x13, 0xfa, 0x15, 0xd0, 0x6a, 0xb5, 0x2a, 0xb2, 0xcd, 0xc3, - 0x06, 0xaa, 0x9a, 0x6d, 0x64, 0x9b, 0x6e, 0x76, 0x3e, 0x2c, 0x3c, 0x51, 0xab, 0x95, 0xc9, 0x6c, - 0x81, 0x4c, 0xea, 0x8b, 0x30, 0xe5, 0x1c, 0xbe, 0x52, 0xa3, 0x91, 0x55, 0x6d, 0xb5, 0xd1, 0x91, - 0xf5, 0x46, 0xf6, 0x12, 0x31, 0xd3, 0x24, 0x9e, 0x20, 0x71, 0xb5, 0x4b, 0x86, 0xf5, 0x67, 0x40, - 0xab, 0xb9, 0x27, 0x66, 0xbb, 0x45, 0x96, 0x76, 0xb7, 0x65, 0xd6, 0x50, 0xf6, 0x29, 0x2a, 0x4a, - 0xc7, 0x2b, 0x7c, 0x18, 0x47, 0xb6, 0xfb, 0xba, 0x75, 0xe4, 0x71, 0xc6, 0xa7, 0x69, 0x64, 0x93, - 0x31, 0xc6, 0xf6, 0x32, 0x9c, 0xeb, 0xd8, 0x96, 0xed, 0xa1, 0x76, 0xab, 0x8d, 0x70, 0x13, 0x4f, - 0x33, 0x31, 0xfb, 0x3f, 0x46, 0x7b, 0xb4, 0xe1, 0x07, 0x61, 0x69, 0x1a, 0x00, 0xc6, 0x74, 0xa7, - 0x7b, 0x30, 0x97, 0x87, 0x4c, 0x38, 0x2e, 0xf4, 0x31, 0xa0, 0x91, 0xa1, 0x29, 0x78, 0x8d, 0x2d, - 0xed, 0xac, 0xe3, 0xd5, 0xf1, 0x17, 0xca, 0x5a, 0x02, 0xaf, 0xd2, 0x5b, 0x9b, 0xfb, 0xe5, 0xaa, - 0x71, 0x50, 0xd9, 0xdf, 0xdc, 0x2e, 0x6b, 0xea, 0xe2, 0x58, 0xea, 0x07, 0xa3, 0xda, 0x9b, 0x6f, - 0xbe, 0xf9, 0x66, 0x22, 0xf7, 0xad, 0x04, 0x4c, 0x88, 0x9d, 0xb1, 0xfe, 0x31, 0x78, 0x94, 0xdf, - 0xc6, 0xba, 0xc8, 0xab, 0xbe, 0x6e, 0xb5, 0x49, 0xa8, 0x36, 0x4d, 0xda, 0x5b, 0xfa, 0x56, 0x3e, - 0xc7, 0xa4, 0xf6, 0x90, 0xf7, 0x92, 0xd5, 0xc6, 0x81, 0xd8, 0x34, 0x3d, 0x7d, 0x0b, 0xe6, 0x6d, - 0xa7, 0xea, 0x7a, 0xa6, 0x5d, 0x37, 0xdb, 0xf5, 0x6a, 0xb0, 0x81, 0x50, 0x35, 0x6b, 0x35, 0xe4, - 0xba, 0x0e, 0x5d, 0x22, 0x7c, 0x96, 0xf3, 0xb6, 0xb3, 0xc7, 0x84, 0x83, 0xda, 0x59, 0x60, 0xa2, - 0x52, 0x44, 0xa8, 0xbd, 0x22, 0xe2, 0x71, 0x18, 0x6b, 0x9a, 0xad, 0x2a, 0xb2, 0xbd, 0xf6, 0x29, - 0xe9, 0xe7, 0x52, 0x46, 0xaa, 0x69, 0xb6, 0xca, 0xf8, 0xf8, 0x83, 0xf3, 0x41, 0xd8, 0x8e, 0xff, - 0x5d, 0x85, 0x4c, 0xb8, 0xa7, 0xc3, 0x2d, 0x72, 0x8d, 0xd4, 0x6f, 0x85, 0x64, 0xf8, 0x93, 0x7d, - 0x3b, 0xc0, 0xa5, 0x12, 0x2e, 0xec, 0xf9, 0x11, 0xda, 0x69, 0x19, 0x14, 0x89, 0x17, 0x55, 0x9c, - 0xd3, 0x88, 0xf6, 0xef, 0x29, 0x83, 0x1d, 0xe9, 0x77, 0x60, 0xe4, 0x15, 0x97, 0x70, 0x8f, 0x10, - 0xee, 0x4b, 0xfd, 0xb9, 0xef, 0xee, 0x11, 0xf2, 0xb1, 0xbb, 0x7b, 0xd5, 0xca, 0x8e, 0xb1, 0x5d, - 0xd8, 0x32, 0x18, 0x5c, 0x7f, 0x0c, 0x92, 0x0d, 0xf3, 0xd3, 0xa7, 0xe2, 0x12, 0x40, 0x86, 0x06, - 0x35, 0xfc, 0x63, 0x90, 0x7c, 0x1d, 0x99, 0xaf, 0x8a, 0x85, 0x97, 0x0c, 0x7d, 0x80, 0xa1, 0x7f, - 0x05, 0x86, 0x89, 0xbd, 0x74, 0x00, 0x66, 0x31, 0x6d, 0x48, 0x4f, 0x41, 0xb2, 0xb4, 0x63, 0xe0, - 0xf0, 0xd7, 0x20, 0x43, 0x47, 0xab, 0xbb, 0x9b, 0xe5, 0x52, 0x59, 0x4b, 0xe4, 0xd6, 0x60, 0x84, - 0x1a, 0x01, 0xa7, 0x86, 0x6f, 0x06, 0x6d, 0x88, 0x1d, 0x32, 0x0e, 0x85, 0xcf, 0x1e, 0x6c, 0x17, - 0xcb, 0x86, 0x96, 0x08, 0xbb, 0xd7, 0x85, 0x4c, 0xb8, 0x9d, 0xfb, 0xe9, 0xc4, 0xd4, 0xef, 0x2b, - 0x90, 0x0e, 0xb5, 0x67, 0xb8, 0x31, 0x30, 0x1b, 0x0d, 0xe7, 0xf5, 0xaa, 0xd9, 0xb0, 0x4c, 0x97, - 0x05, 0x05, 0x90, 0xa1, 0x02, 0x1e, 0x19, 0xd4, 0x69, 0x3f, 0x15, 0xe5, 0xbf, 0xa4, 0x80, 0x26, - 0xb7, 0x76, 0x92, 0x82, 0xca, 0xcf, 0x54, 0xc1, 0x2f, 0x28, 0x30, 0x21, 0xf6, 0x73, 0x92, 0x7a, - 0x17, 0x7f, 0xa6, 0xea, 0x7d, 0x37, 0x01, 0xe3, 0x42, 0x17, 0x37, 0xa8, 0x76, 0xbf, 0x08, 0x53, - 0x56, 0x1d, 0x35, 0x5b, 0x8e, 0x87, 0xec, 0xda, 0x69, 0xb5, 0x81, 0x5e, 0x43, 0x8d, 0x6c, 0x8e, - 0x14, 0x8a, 0x2b, 0xfd, 0xfb, 0xc4, 0xa5, 0xcd, 0x00, 0xb7, 0x85, 0x61, 0xf9, 0xe9, 0xcd, 0xf5, - 0xf2, 0xf6, 0xee, 0xce, 0x7e, 0xb9, 0x52, 0xba, 0x57, 0x3d, 0xa8, 0x7c, 0xbc, 0xb2, 0xf3, 0x52, - 0xc5, 0xd0, 0x2c, 0x49, 0xec, 0x03, 0x4c, 0xf5, 0x5d, 0xd0, 0x64, 0xa5, 0xf4, 0x47, 0x21, 0x4a, - 0x2d, 0x6d, 0x48, 0x9f, 0x86, 0xc9, 0xca, 0x4e, 0x75, 0x6f, 0x73, 0xbd, 0x5c, 0x2d, 0x6f, 0x6c, - 0x94, 0x4b, 0xfb, 0x7b, 0xf4, 0xc6, 0xd9, 0x97, 0xde, 0x17, 0x93, 0xfa, 0xf3, 0x2a, 0x4c, 0x47, - 0x68, 0xa2, 0x17, 0x58, 0xcf, 0x4e, 0x6f, 0x23, 0x9e, 0x1d, 0x44, 0xfb, 0x25, 0xdc, 0x15, 0xec, - 0x9a, 0x6d, 0x8f, 0xb5, 0xf8, 0xcf, 0x00, 0xb6, 0x92, 0xed, 0x59, 0x47, 0x16, 0x6a, 0xb3, 0x7d, - 0x06, 0xda, 0xc8, 0x4f, 0x06, 0xe3, 0x74, 0xab, 0xe1, 0xa3, 0xa0, 0xb7, 0x1c, 0xd7, 0xf2, 0xac, - 0xd7, 0x50, 0xd5, 0xb2, 0xf9, 0xa6, 0x04, 0x6e, 0xec, 0x93, 0x86, 0xc6, 0x67, 0x36, 0x6d, 0xcf, - 0x97, 0xb6, 0xd1, 0xb1, 0x29, 0x49, 0xe3, 0x02, 0xae, 0x1a, 0x1a, 0x9f, 0xf1, 0xa5, 0x2f, 0x42, - 0xa6, 0xee, 0x74, 0x70, 0x9b, 0x44, 0xe5, 0xf0, 0x7a, 0xa1, 0x18, 0x69, 0x3a, 0xe6, 0x8b, 0xb0, - 0x3e, 0x36, 0xd8, 0x0d, 0xc9, 0x18, 0x69, 0x3a, 0x46, 0x45, 0x9e, 0x86, 0x49, 0xf3, 0xf8, 0xb8, - 0x8d, 0xc9, 0x39, 0x11, 0xed, 0xcc, 0x27, 0xfc, 0x61, 0x22, 0x38, 0x7b, 0x17, 0x52, 0xdc, 0x0e, - 0x78, 0x49, 0xc6, 0x96, 0xa8, 0xb6, 0xe8, 0x9e, 0x54, 0x62, 0x61, 0xcc, 0x48, 0xd9, 0x7c, 0xf2, - 0x22, 0x64, 0x2c, 0xb7, 0x1a, 0x6c, 0x8e, 0x26, 0x2e, 0x24, 0x16, 0x52, 0x46, 0xda, 0x72, 0xfd, - 0xdd, 0xb0, 0xdc, 0x57, 0x13, 0x30, 0x21, 0x6e, 0xee, 0xea, 0xeb, 0x90, 0x6a, 0x38, 0x35, 0x93, - 0x84, 0x16, 0x7d, 0xb2, 0xb0, 0x10, 0xb3, 0x1f, 0xbc, 0xb4, 0xc5, 0xe4, 0x0d, 0x1f, 0x39, 0xfb, - 0x9f, 0x15, 0x48, 0xf1, 0x61, 0x7d, 0x06, 0x92, 0x2d, 0xd3, 0x3b, 0x21, 0x74, 0xc3, 0xc5, 0x84, - 0xa6, 0x18, 0xe4, 0x18, 0x8f, 0xbb, 0x2d, 0xd3, 0x26, 0x21, 0xc0, 0xc6, 0xf1, 0x31, 0xf6, 0x6b, - 0x03, 0x99, 0x75, 0xd2, 0xf6, 0x3b, 0xcd, 0x26, 0xb2, 0x3d, 0x97, 0xfb, 0x95, 0x8d, 0x97, 0xd8, - 0xb0, 0xfe, 0x11, 0x98, 0xf2, 0xda, 0xa6, 0xd5, 0x10, 0x64, 0x93, 0x44, 0x56, 0xe3, 0x13, 0xbe, - 0x70, 0x1e, 0x1e, 0xe3, 0xbc, 0x75, 0xe4, 0x99, 0xb5, 0x13, 0x54, 0x0f, 0x40, 0x23, 0x64, 0xe7, - 0xf0, 0x51, 0x26, 0xb0, 0xce, 0xe6, 0x39, 0x36, 0xf7, 0x87, 0x0a, 0x4c, 0xf1, 0x1b, 0x95, 0xba, - 0x6f, 0xac, 0x6d, 0x00, 0xd3, 0xb6, 0x1d, 0x2f, 0x6c, 0xae, 0xee, 0x50, 0xee, 0xc2, 0x2d, 0x15, - 0x7c, 0x90, 0x11, 0x22, 0x98, 0x6d, 0x02, 0x04, 0x33, 0x3d, 0xcd, 0x36, 0x0f, 0x69, 0xb6, 0x73, - 0x4f, 0x1e, 0xff, 0xd0, 0x5b, 0x5b, 0xa0, 0x43, 0xf8, 0x8e, 0x46, 0x3f, 0x07, 0xc3, 0x87, 0xe8, - 0xd8, 0xb2, 0xd9, 0x7e, 0x22, 0x3d, 0xe0, 0xbb, 0x94, 0x49, 0x7f, 0x97, 0xb2, 0xf8, 0x32, 0x4c, - 0xd7, 0x9c, 0xa6, 0xac, 0x6e, 0x51, 0x93, 0x6e, 0xaf, 0xdd, 0x17, 0x95, 0x5f, 0x80, 0xa0, 0xc5, - 0xfc, 0xf5, 0x84, 0x7a, 0x67, 0xb7, 0xf8, 0x5b, 0x89, 0xd9, 0x3b, 0x14, 0xb7, 0xcb, 0x2f, 0xd3, - 0x40, 0x47, 0x0d, 0x54, 0xc3, 0xaa, 0xc3, 0x1f, 0x5f, 0x86, 0x67, 0x8f, 0x2d, 0xef, 0xa4, 0x73, - 0xb8, 0x54, 0x73, 0x9a, 0x57, 0x8e, 0x9d, 0x63, 0x27, 0x78, 0xdc, 0x85, 0x8f, 0xc8, 0x01, 0xf9, - 0xc4, 0x1e, 0x79, 0x8d, 0xf9, 0xa3, 0xb3, 0xb1, 0xcf, 0xc7, 0xf2, 0x15, 0x98, 0x66, 0xc2, 0x55, - 0xb2, 0xe7, 0x4e, 0x6f, 0x0d, 0xf4, 0xbe, 0xfb, 0x2e, 0xd9, 0xdf, 0xf9, 0x3e, 0x59, 0xab, 0x8d, - 0x29, 0x06, 0xc5, 0x73, 0xf4, 0x06, 0x22, 0x6f, 0xc0, 0x23, 0x02, 0x1f, 0xcd, 0x4b, 0xd4, 0x8e, - 0x61, 0xfc, 0x16, 0x63, 0x9c, 0x0e, 0x31, 0xee, 0x31, 0x68, 0xbe, 0x04, 0xe3, 0x67, 0xe1, 0xfa, - 0x0f, 0x8c, 0x2b, 0x83, 0xc2, 0x24, 0x77, 0x60, 0x92, 0x90, 0xd4, 0x3a, 0xae, 0xe7, 0x34, 0x49, - 0xd1, 0xeb, 0x4f, 0xf3, 0x1f, 0xbf, 0x4f, 0x13, 0x65, 0x02, 0xc3, 0x4a, 0x3e, 0x2a, 0x9f, 0x07, - 0xf2, 0x98, 0xa1, 0x8e, 0x6a, 0x8d, 0x18, 0x86, 0xfb, 0x4c, 0x11, 0x5f, 0x3e, 0xff, 0x49, 0x38, - 0x87, 0x3f, 0x93, 0x9a, 0x14, 0xd6, 0x24, 0x7e, 0x97, 0x29, 0xfb, 0x87, 0x9f, 0xa1, 0xb9, 0x38, - 0xed, 0x13, 0x84, 0x74, 0x0a, 0x79, 0xf1, 0x18, 0x79, 0x1e, 0x6a, 0xbb, 0x55, 0xb3, 0x11, 0xa5, - 0x5e, 0xe8, 0x36, 0x3d, 0xfb, 0x6b, 0x3f, 0x14, 0xbd, 0x78, 0x87, 0x22, 0x0b, 0x8d, 0x46, 0xfe, - 0x00, 0x1e, 0x8d, 0x88, 0x8a, 0x01, 0x38, 0x3f, 0xcf, 0x38, 0xcf, 0x75, 0x45, 0x06, 0xa6, 0xdd, - 0x05, 0x3e, 0xee, 0xfb, 0x72, 0x00, 0xce, 0x7f, 0xcc, 0x38, 0x75, 0x86, 0xe5, 0x2e, 0xc5, 0x8c, - 0x77, 0x61, 0xea, 0x35, 0xd4, 0x3e, 0x74, 0x5c, 0xb6, 0x35, 0x32, 0x00, 0xdd, 0x17, 0x18, 0xdd, - 0x24, 0x03, 0x92, 0xbd, 0x12, 0xcc, 0x75, 0x0b, 0x52, 0x47, 0x66, 0x0d, 0x0d, 0x40, 0xf1, 0x45, - 0x46, 0x31, 0x8a, 0xe5, 0x31, 0xb4, 0x00, 0x99, 0x63, 0x87, 0x2d, 0x4b, 0xf1, 0xf0, 0x2f, 0x31, - 0x78, 0x9a, 0x63, 0x18, 0x45, 0xcb, 0x69, 0x75, 0x1a, 0x78, 0xcd, 0x8a, 0xa7, 0xf8, 0x32, 0xa7, - 0xe0, 0x18, 0x46, 0x71, 0x06, 0xb3, 0xbe, 0xc5, 0x29, 0xdc, 0x90, 0x3d, 0x5f, 0x80, 0xb4, 0x63, - 0x37, 0x4e, 0x1d, 0x7b, 0x10, 0x25, 0xbe, 0xc2, 0x18, 0x80, 0x41, 0x30, 0xc1, 0x6d, 0x18, 0x1b, - 0xd4, 0x11, 0xbf, 0xf1, 0x43, 0x9e, 0x1e, 0xdc, 0x03, 0x77, 0x60, 0x92, 0x17, 0x28, 0xcb, 0xb1, - 0x07, 0xa0, 0xf8, 0xa7, 0x8c, 0x62, 0x22, 0x04, 0x63, 0x97, 0xe1, 0x21, 0xd7, 0x3b, 0x46, 0x83, - 0x90, 0x7c, 0x95, 0x5f, 0x06, 0x83, 0x30, 0x53, 0x1e, 0x22, 0xbb, 0x76, 0x32, 0x18, 0xc3, 0xd7, - 0xb8, 0x29, 0x39, 0x06, 0x53, 0x94, 0x60, 0xbc, 0x69, 0xb6, 0xdd, 0x13, 0xb3, 0x31, 0x90, 0x3b, - 0x7e, 0x93, 0x71, 0x64, 0x7c, 0x10, 0xb3, 0x48, 0xc7, 0x3e, 0x0b, 0xcd, 0x6f, 0x71, 0x8b, 0x84, - 0x60, 0x2c, 0xf5, 0x5c, 0x8f, 0x6c, 0x40, 0x9d, 0x85, 0xed, 0xb7, 0x79, 0xea, 0x51, 0xec, 0x76, - 0x98, 0xf1, 0x36, 0x8c, 0xb9, 0xd6, 0xa7, 0x07, 0xa2, 0xf9, 0x67, 0xdc, 0xd3, 0x04, 0x80, 0xc1, - 0xf7, 0xe0, 0xb1, 0xc8, 0x65, 0x62, 0x00, 0xb2, 0x7f, 0xce, 0xc8, 0x66, 0x22, 0x96, 0x0a, 0x56, - 0x12, 0xce, 0x4a, 0xf9, 0x2f, 0x78, 0x49, 0x40, 0x12, 0xd7, 0x2e, 0xbe, 0x51, 0x70, 0xcd, 0xa3, - 0xb3, 0x59, 0xed, 0x5f, 0x72, 0xab, 0x51, 0xac, 0x60, 0xb5, 0x7d, 0x98, 0x61, 0x8c, 0x67, 0xf3, - 0xeb, 0xd7, 0x79, 0x61, 0xa5, 0xe8, 0x03, 0xd1, 0xbb, 0x9f, 0x82, 0x59, 0xdf, 0x9c, 0xbc, 0x23, - 0x75, 0xab, 0x4d, 0xb3, 0x35, 0x00, 0xf3, 0xef, 0x30, 0x66, 0x5e, 0xf1, 0xfd, 0x96, 0xd6, 0xdd, - 0x36, 0x5b, 0x98, 0xfc, 0x65, 0xc8, 0x72, 0xf2, 0x8e, 0xdd, 0x46, 0x35, 0xe7, 0xd8, 0xb6, 0x3e, - 0x8d, 0xea, 0x03, 0x50, 0x7f, 0x43, 0x72, 0xd5, 0x41, 0x08, 0x8e, 0x99, 0x37, 0x41, 0xf3, 0x7b, - 0x95, 0xaa, 0xd5, 0x6c, 0x39, 0x6d, 0x2f, 0x86, 0xf1, 0x5f, 0x71, 0x4f, 0xf9, 0xb8, 0x4d, 0x02, - 0xcb, 0x97, 0x61, 0x82, 0x1c, 0x0e, 0x1a, 0x92, 0xbf, 0xcb, 0x88, 0xc6, 0x03, 0x14, 0x2b, 0x1c, - 0x35, 0xa7, 0xd9, 0x32, 0xdb, 0x83, 0xd4, 0xbf, 0x7f, 0xcd, 0x0b, 0x07, 0x83, 0xb0, 0xc2, 0xe1, - 0x9d, 0xb6, 0x10, 0x5e, 0xed, 0x07, 0x60, 0xf8, 0x26, 0x2f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, - 0x30, 0x00, 0xc5, 0xbf, 0xe1, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x11, 0x2c, 0xb4, 0x6d, 0x74, 0x6c, - 0xb9, 0x5e, 0x9b, 0xf6, 0xc1, 0xfd, 0xa9, 0x7e, 0xef, 0x87, 0x62, 0x13, 0x66, 0x84, 0xa0, 0xf9, - 0xbb, 0x30, 0x29, 0xb5, 0x18, 0x7a, 0xdc, 0x3b, 0x0b, 0xd9, 0xbf, 0xf2, 0x63, 0x56, 0x8c, 0xc4, - 0x0e, 0x23, 0xbf, 0x85, 0xfd, 0x2e, 0xf6, 0x01, 0xf1, 0x64, 0x9f, 0xf9, 0xb1, 0xef, 0x7a, 0xa1, - 0x0d, 0xc8, 0x6f, 0xc0, 0xb8, 0xd0, 0x03, 0xc4, 0x53, 0xfd, 0x55, 0x46, 0x95, 0x09, 0xb7, 0x00, - 0xf9, 0x35, 0x48, 0xe2, 0xf5, 0x3c, 0x1e, 0xfe, 0xd7, 0x18, 0x9c, 0x88, 0xe7, 0x9f, 0x83, 0x14, - 0x5f, 0xc7, 0xe3, 0xa1, 0xbf, 0xcc, 0xa0, 0x3e, 0x04, 0xc3, 0xf9, 0x1a, 0x1e, 0x0f, 0xff, 0xeb, - 0x1c, 0xce, 0x21, 0x18, 0x3e, 0xb8, 0x09, 0xdf, 0xfe, 0x9b, 0x49, 0x56, 0x87, 0xb9, 0xed, 0x6e, - 0xc3, 0x28, 0x5b, 0xbc, 0xe3, 0xd1, 0xbf, 0xc2, 0x4e, 0xce, 0x11, 0xf9, 0x1b, 0x30, 0x3c, 0xa0, - 0xc1, 0xff, 0x16, 0x83, 0x52, 0xf9, 0x7c, 0x09, 0xd2, 0xa1, 0x05, 0x3b, 0x1e, 0xfe, 0xb7, 0x19, - 0x3c, 0x8c, 0xc2, 0xaa, 0xb3, 0x05, 0x3b, 0x9e, 0xe0, 0xef, 0x70, 0xd5, 0x19, 0x02, 0x9b, 0x8d, - 0xaf, 0xd5, 0xf1, 0xe8, 0xbf, 0xcb, 0xad, 0xce, 0x21, 0xf9, 0x17, 0x60, 0xcc, 0xaf, 0xbf, 0xf1, - 0xf8, 0xbf, 0xc7, 0xf0, 0x01, 0x06, 0x5b, 0x20, 0x54, 0xff, 0xe3, 0x29, 0xfe, 0x3e, 0xb7, 0x40, - 0x08, 0x85, 0xd3, 0x48, 0x5e, 0xd3, 0xe3, 0x99, 0x7e, 0x95, 0xa7, 0x91, 0xb4, 0xa4, 0x63, 0x6f, - 0x92, 0x32, 0x18, 0x4f, 0xf1, 0x0f, 0xb8, 0x37, 0x89, 0x3c, 0x56, 0x43, 0x5e, 0x24, 0xe3, 0x39, - 0xfe, 0x11, 0x57, 0x43, 0x5a, 0x23, 0xf3, 0xbb, 0xa0, 0x77, 0x2f, 0x90, 0xf1, 0x7c, 0x9f, 0x63, - 0x7c, 0x53, 0x5d, 0xeb, 0x63, 0xfe, 0x25, 0x98, 0x89, 0x5e, 0x1c, 0xe3, 0x59, 0x7f, 0xed, 0xc7, - 0xd2, 0xed, 0x4c, 0x78, 0x6d, 0xcc, 0xef, 0x07, 0x55, 0x36, 0xbc, 0x30, 0xc6, 0xd3, 0x7e, 0xfe, - 0xc7, 0x62, 0xa1, 0x0d, 0xaf, 0x8b, 0xf9, 0x02, 0x40, 0xb0, 0x26, 0xc5, 0x73, 0x7d, 0x81, 0x71, - 0x85, 0x40, 0x38, 0x35, 0xd8, 0x92, 0x14, 0x8f, 0xff, 0x22, 0x4f, 0x0d, 0x86, 0xc0, 0xa9, 0xc1, - 0x57, 0xa3, 0x78, 0xf4, 0x97, 0x78, 0x6a, 0x70, 0x48, 0xfe, 0x36, 0xa4, 0xec, 0x4e, 0xa3, 0x81, - 0x63, 0x4b, 0xef, 0xff, 0x1a, 0x51, 0xf6, 0x7f, 0xfe, 0x84, 0x81, 0x39, 0x20, 0xbf, 0x06, 0xc3, - 0xa8, 0x79, 0x88, 0xea, 0x71, 0xc8, 0xff, 0xf5, 0x13, 0x5e, 0x4f, 0xb0, 0x74, 0xfe, 0x05, 0x00, - 0x7a, 0x33, 0x4d, 0x9e, 0x12, 0xc5, 0x60, 0xff, 0xf7, 0x4f, 0xd8, 0x1b, 0x0a, 0x01, 0x24, 0x20, - 0xa0, 0xef, 0x3b, 0xf4, 0x27, 0xf8, 0xa1, 0x48, 0x40, 0x6e, 0xc0, 0x6f, 0xc1, 0xe8, 0x2b, 0xae, - 0x63, 0x7b, 0xe6, 0x71, 0x1c, 0xfa, 0xff, 0x30, 0x34, 0x97, 0xc7, 0x06, 0x6b, 0x3a, 0x6d, 0xe4, - 0x99, 0xc7, 0x6e, 0x1c, 0xf6, 0xff, 0x32, 0xac, 0x0f, 0xc0, 0xe0, 0x9a, 0xe9, 0x7a, 0x83, 0x5c, - 0xf7, 0xff, 0xe3, 0x60, 0x0e, 0xc0, 0x4a, 0xe3, 0xcf, 0xaf, 0xa2, 0xd3, 0x38, 0xec, 0x8f, 0xb8, - 0xd2, 0x4c, 0x3e, 0xff, 0x1c, 0x8c, 0xe1, 0x8f, 0xf4, 0xad, 0x9d, 0x18, 0xf0, 0x1f, 0x31, 0x70, - 0x80, 0xc0, 0x67, 0x76, 0xbd, 0xba, 0x67, 0xc5, 0x1b, 0xfb, 0xff, 0x33, 0x4f, 0x73, 0xf9, 0x7c, - 0x01, 0xd2, 0xae, 0x57, 0xaf, 0x77, 0x58, 0x47, 0x13, 0x03, 0xff, 0xe3, 0x9f, 0xf8, 0x37, 0xb9, - 0x3e, 0xa6, 0x78, 0x31, 0x7a, 0xb3, 0x0e, 0xee, 0x38, 0x77, 0x1c, 0xba, 0x4d, 0x07, 0xdf, 0x6f, - 0xc0, 0x8d, 0x9e, 0xbb, 0x6e, 0x78, 0x11, 0xb9, 0x52, 0x73, 0x9a, 0x87, 0x8e, 0x7b, 0xe5, 0xd0, - 0xf1, 0x4e, 0xae, 0x78, 0x27, 0x08, 0x8f, 0xb1, 0xfd, 0xb7, 0x24, 0xfe, 0x3c, 0x7b, 0xb6, 0x4d, - 0x3b, 0xf2, 0x3c, 0xb6, 0x62, 0x61, 0xbd, 0x2b, 0x64, 0x4b, 0x5c, 0x3f, 0x0f, 0x23, 0xe4, 0x4a, - 0xae, 0x92, 0xc7, 0x4e, 0x4a, 0x31, 0x79, 0xff, 0x9d, 0xf9, 0x21, 0x83, 0x8d, 0xf9, 0xb3, 0x2b, - 0x64, 0xcf, 0x32, 0x21, 0xcc, 0xae, 0xf8, 0xb3, 0xd7, 0xe8, 0xb6, 0xa5, 0x30, 0x7b, 0xcd, 0x9f, - 0x5d, 0x25, 0x1b, 0x98, 0xaa, 0x30, 0xbb, 0xea, 0xcf, 0xae, 0x91, 0x4d, 0xfa, 0x71, 0x61, 0x76, - 0xcd, 0x9f, 0xbd, 0x4e, 0xb6, 0xe6, 0x93, 0xc2, 0xec, 0x75, 0x7f, 0xf6, 0x06, 0xd9, 0x95, 0x9f, - 0x12, 0x66, 0x6f, 0xf8, 0xb3, 0x37, 0xc9, 0x6e, 0xbc, 0x2e, 0xcc, 0xde, 0xf4, 0x67, 0x6f, 0x91, - 0x57, 0x4c, 0x46, 0x85, 0xd9, 0x5b, 0xfa, 0x1c, 0x8c, 0xd2, 0x2b, 0x5f, 0x26, 0x8f, 0x6e, 0x27, - 0xd9, 0x34, 0x1f, 0x0c, 0xe6, 0xaf, 0x92, 0xd7, 0x49, 0x46, 0xc4, 0xf9, 0xab, 0xc1, 0xfc, 0x0a, - 0x79, 0xb1, 0x5a, 0x13, 0xe7, 0x57, 0x82, 0xf9, 0x6b, 0xd9, 0x71, 0xf2, 0x4a, 0x8d, 0x30, 0x7f, - 0x2d, 0x98, 0x5f, 0xcd, 0x4e, 0xe0, 0x60, 0x16, 0xe7, 0x57, 0x83, 0xf9, 0xb5, 0xec, 0xe4, 0x05, - 0x65, 0x21, 0x23, 0xce, 0xaf, 0xe5, 0x7e, 0x89, 0xb8, 0xd7, 0x0e, 0xdc, 0x3b, 0x23, 0xba, 0xd7, - 0x77, 0xec, 0x8c, 0xe8, 0x58, 0xdf, 0xa5, 0x33, 0xa2, 0x4b, 0x7d, 0x67, 0xce, 0x88, 0xce, 0xf4, - 0xdd, 0x38, 0x23, 0xba, 0xd1, 0x77, 0xe0, 0x8c, 0xe8, 0x40, 0xdf, 0x75, 0x33, 0xa2, 0xeb, 0x7c, - 0xa7, 0xcd, 0x88, 0x4e, 0xf3, 0xdd, 0x35, 0x23, 0xba, 0xcb, 0x77, 0x54, 0x56, 0x72, 0x54, 0xe0, - 0xa2, 0xac, 0xe4, 0xa2, 0xc0, 0x39, 0x59, 0xc9, 0x39, 0x81, 0x5b, 0xb2, 0x92, 0x5b, 0x02, 0x87, - 0x64, 0x25, 0x87, 0x04, 0xae, 0xc8, 0x4a, 0xae, 0x08, 0x9c, 0xc0, 0x72, 0xcc, 0x40, 0xad, 0x88, - 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, - 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe7, 0x98, - 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, - 0x6a, 0xcf, 0x1c, 0x0b, 0xdc, 0x3b, 0x23, 0xba, 0x37, 0x32, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, - 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, - 0x7b, 0xe4, 0x98, 0xda, 0x2b, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, - 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0x38, 0xc7, 0xfe, 0xad, 0x0a, 0x3a, 0xcd, 0xb1, - 0x5d, 0xf2, 0xf2, 0x0f, 0x73, 0xc5, 0x9c, 0x94, 0x69, 0x23, 0xd8, 0x75, 0x5a, 0xe0, 0x92, 0x39, - 0x29, 0xd7, 0xc4, 0xf9, 0x15, 0x7f, 0x9e, 0x67, 0x9b, 0x38, 0x7f, 0xcd, 0x9f, 0xe7, 0xf9, 0x26, - 0xce, 0xaf, 0xfa, 0xf3, 0x3c, 0xe3, 0xc4, 0xf9, 0x35, 0x7f, 0x9e, 0xe7, 0x9c, 0x38, 0x7f, 0xdd, - 0x9f, 0xe7, 0x59, 0x27, 0xce, 0xdf, 0xf0, 0xe7, 0x79, 0xde, 0x89, 0xf3, 0x37, 0xfd, 0x79, 0x9e, - 0x79, 0xe2, 0xfc, 0x2d, 0xfd, 0x82, 0x9c, 0x7b, 0x5c, 0xc0, 0x77, 0xed, 0x05, 0x39, 0xfb, 0x24, - 0x89, 0xab, 0x81, 0x04, 0xcf, 0x3f, 0x49, 0x62, 0x25, 0x90, 0xe0, 0x19, 0x28, 0x49, 0x5c, 0xcb, - 0x7d, 0x96, 0xb8, 0xcf, 0x96, 0xdd, 0x37, 0x2b, 0xb9, 0x2f, 0x11, 0x72, 0xdd, 0xac, 0xe4, 0xba, - 0x44, 0xc8, 0x6d, 0xb3, 0x92, 0xdb, 0x12, 0x21, 0x97, 0xcd, 0x4a, 0x2e, 0x4b, 0x84, 0xdc, 0x35, - 0x2b, 0xb9, 0x2b, 0x11, 0x72, 0xd5, 0xac, 0xe4, 0xaa, 0x44, 0xc8, 0x4d, 0xb3, 0x92, 0x9b, 0x12, - 0x21, 0x17, 0xcd, 0x4a, 0x2e, 0x4a, 0x84, 0xdc, 0x33, 0x2b, 0xb9, 0x27, 0x11, 0x72, 0xcd, 0x79, - 0xd9, 0x35, 0x89, 0xb0, 0x5b, 0xce, 0xcb, 0x6e, 0x49, 0x84, 0x5d, 0x72, 0x5e, 0x76, 0x49, 0x22, - 0xec, 0x8e, 0xf3, 0xb2, 0x3b, 0x12, 0x61, 0x57, 0xfc, 0x59, 0x82, 0x77, 0x84, 0x7b, 0x5e, 0xbb, - 0x53, 0xf3, 0xde, 0x53, 0x47, 0xb8, 0x2c, 0xb4, 0x0f, 0xe9, 0x15, 0x7d, 0x89, 0x34, 0xac, 0xe1, - 0x8e, 0x53, 0x5a, 0xc1, 0x96, 0x85, 0xc6, 0x22, 0x84, 0xb0, 0xa3, 0x11, 0xab, 0xef, 0xa9, 0x37, - 0x5c, 0x16, 0xda, 0x8c, 0x78, 0xfd, 0x6e, 0x7e, 0xe0, 0x1d, 0xdb, 0xdb, 0x09, 0xde, 0xb1, 0x31, - 0xf3, 0x9f, 0xb5, 0x63, 0x5b, 0x8c, 0x37, 0xb9, 0x6f, 0xec, 0xc5, 0x78, 0x63, 0x77, 0xad, 0x3a, - 0x83, 0x76, 0x70, 0x8b, 0xf1, 0xa6, 0xf5, 0x8d, 0xfa, 0xfe, 0xf6, 0x5b, 0x2c, 0x82, 0x0d, 0xd4, - 0x8a, 0x88, 0xe0, 0xb3, 0xf6, 0x5b, 0xcb, 0x42, 0x29, 0x39, 0x6b, 0x04, 0xab, 0x67, 0x8e, 0xe0, - 0xb3, 0x76, 0x5e, 0xcb, 0x42, 0x79, 0x39, 0x73, 0x04, 0x7f, 0x00, 0xfd, 0x10, 0x8b, 0xe0, 0xc0, - 0xfc, 0x67, 0xed, 0x87, 0x16, 0xe3, 0x4d, 0x1e, 0x19, 0xc1, 0xea, 0x19, 0x22, 0x78, 0x90, 0xfe, - 0x68, 0x31, 0xde, 0xb4, 0xd1, 0x11, 0xfc, 0x9e, 0xbb, 0x99, 0x2f, 0x2b, 0x30, 0x55, 0xb1, 0xea, - 0xe5, 0xe6, 0x21, 0xaa, 0xd7, 0x51, 0x9d, 0xd9, 0x71, 0x59, 0xa8, 0x04, 0x3d, 0x5c, 0xfd, 0xed, - 0x77, 0xe6, 0x03, 0x0b, 0xaf, 0x41, 0x8a, 0xda, 0x74, 0x79, 0x39, 0x7b, 0x5f, 0x89, 0xa9, 0x70, - 0xbe, 0xa8, 0x7e, 0x91, 0xc3, 0xae, 0x2e, 0x67, 0xff, 0x8b, 0x12, 0xaa, 0x72, 0xfe, 0x70, 0xee, - 0x57, 0x89, 0x86, 0xf6, 0x7b, 0xd6, 0xf0, 0xca, 0x40, 0x1a, 0x86, 0x74, 0x7b, 0xbc, 0x4b, 0xb7, - 0x90, 0x56, 0x1d, 0x98, 0xac, 0x58, 0xf5, 0x0a, 0xf9, 0x4a, 0xef, 0x20, 0x2a, 0x51, 0x19, 0xa9, - 0x1e, 0x2c, 0x0b, 0x61, 0x19, 0x46, 0xf8, 0x21, 0x2d, 0xd6, 0x88, 0x9c, 0x85, 0x4f, 0x6b, 0x0b, - 0xa7, 0x5d, 0xec, 0x75, 0xda, 0xa0, 0xb2, 0xfb, 0x27, 0x5c, 0xec, 0x75, 0xc2, 0x20, 0x87, 0xfc, - 0x53, 0xbd, 0xc1, 0x17, 0x67, 0xfa, 0x16, 0x8e, 0x7e, 0x1e, 0x12, 0x9b, 0xf4, 0x0d, 0xe1, 0x4c, - 0x31, 0x83, 0x95, 0xfa, 0xce, 0x3b, 0xf3, 0xc9, 0x83, 0x8e, 0x55, 0x37, 0x12, 0x9b, 0x75, 0xfd, - 0x2e, 0x0c, 0x7f, 0x92, 0x7d, 0x31, 0x0e, 0x0b, 0xac, 0x32, 0x81, 0x8f, 0xc6, 0x6c, 0x31, 0x11, - 0xea, 0xa5, 0x03, 0xcb, 0xf6, 0xae, 0xae, 0xdc, 0x34, 0x28, 0x45, 0xee, 0x2f, 0x02, 0xd0, 0x73, - 0xae, 0x9b, 0xee, 0x89, 0x5e, 0xe1, 0xcc, 0xf4, 0xd4, 0x37, 0xbf, 0xf3, 0xce, 0xfc, 0xea, 0x20, - 0xac, 0xcf, 0xd6, 0x4d, 0xf7, 0xe4, 0x59, 0xef, 0xb4, 0x85, 0x96, 0x8a, 0xa7, 0x1e, 0x72, 0x39, - 0x7b, 0x8b, 0xaf, 0x7a, 0xec, 0xba, 0xb2, 0xa1, 0xeb, 0x4a, 0x09, 0xd7, 0xb4, 0x21, 0x5e, 0xd3, - 0xf2, 0xc3, 0x5e, 0xcf, 0x1b, 0x7c, 0x91, 0x90, 0x2c, 0xa9, 0xc6, 0x59, 0x52, 0x7d, 0xaf, 0x96, - 0x6c, 0xf1, 0xfa, 0x28, 0x5d, 0xab, 0xda, 0xef, 0x5a, 0xd5, 0xf7, 0x72, 0xad, 0x7f, 0x42, 0xb3, - 0xd5, 0xcf, 0xa7, 0x03, 0x9b, 0xbe, 0x9d, 0xf8, 0xf3, 0xb5, 0x17, 0xf4, 0xbe, 0x76, 0x01, 0xf9, - 0xe4, 0xfd, 0xb7, 0xe6, 0x95, 0xdc, 0x97, 0x13, 0xfc, 0xca, 0x69, 0x22, 0x3d, 0xdc, 0x95, 0xff, - 0xbc, 0xf4, 0x54, 0x1f, 0x84, 0x85, 0xbe, 0xa4, 0xc0, 0x4c, 0x57, 0x25, 0xa7, 0x66, 0x7a, 0x7f, - 0xcb, 0xb9, 0x7d, 0xd6, 0x72, 0xce, 0x14, 0xfc, 0x5d, 0x05, 0xce, 0x49, 0xe5, 0x95, 0xaa, 0x77, - 0x45, 0x52, 0xef, 0xd1, 0xee, 0x33, 0x11, 0xc1, 0x90, 0x76, 0x61, 0xf7, 0x4a, 0x80, 0x10, 0xb3, - 0xef, 0xf7, 0x55, 0xc9, 0xef, 0xe7, 0x7d, 0x40, 0x84, 0xb9, 0x78, 0x04, 0x30, 0xb5, 0x1d, 0x48, - 0xee, 0xb7, 0x11, 0xd2, 0xe7, 0x20, 0xb1, 0xd3, 0x66, 0x1a, 0x4e, 0x50, 0xfc, 0x4e, 0xbb, 0xd8, - 0x36, 0xed, 0xda, 0x89, 0x91, 0xd8, 0x69, 0xeb, 0x17, 0x41, 0x2d, 0xb0, 0x9f, 0x1e, 0x48, 0xaf, - 0x4c, 0x52, 0x81, 0x82, 0x5d, 0x67, 0x12, 0x78, 0x4e, 0x9f, 0x83, 0xe4, 0x16, 0x32, 0x8f, 0x98, - 0x12, 0x40, 0x65, 0xf0, 0x88, 0x41, 0xc6, 0xd9, 0x09, 0x5f, 0x86, 0x14, 0x27, 0xd6, 0x2f, 0x61, - 0xc4, 0x91, 0xc7, 0x4e, 0xcb, 0x10, 0x58, 0x1d, 0xb6, 0x72, 0x91, 0x59, 0xfd, 0x32, 0x0c, 0x1b, - 0xd6, 0xf1, 0x89, 0xc7, 0x4e, 0xde, 0x2d, 0x46, 0xa7, 0x73, 0xf7, 0x60, 0xcc, 0xd7, 0xe8, 0x7d, - 0xa6, 0x5e, 0xa7, 0x97, 0xa6, 0xcf, 0x86, 0xd7, 0x13, 0xbe, 0x6f, 0x49, 0x87, 0xf4, 0x0b, 0x90, - 0xda, 0xf3, 0xda, 0x41, 0xd1, 0xe7, 0x1d, 0xa9, 0x3f, 0x9a, 0xfb, 0x25, 0x05, 0x52, 0xeb, 0x08, - 0xb5, 0x88, 0xc1, 0x9f, 0x82, 0xe4, 0xba, 0xf3, 0xba, 0xcd, 0x14, 0x9c, 0x62, 0x16, 0xc5, 0xd3, - 0xcc, 0xa6, 0x64, 0x5a, 0x7f, 0x2a, 0x6c, 0xf7, 0x69, 0xdf, 0xee, 0x21, 0x39, 0x62, 0xfb, 0x9c, - 0x60, 0x7b, 0xe6, 0x40, 0x2c, 0xd4, 0x65, 0xff, 0x1b, 0x90, 0x0e, 0x9d, 0x45, 0x5f, 0x60, 0x6a, - 0x24, 0x64, 0x60, 0xd8, 0x56, 0x58, 0x22, 0x87, 0x60, 0x5c, 0x38, 0x31, 0x86, 0x86, 0x4c, 0xdc, - 0x03, 0x4a, 0xcc, 0xbc, 0x28, 0x9a, 0x39, 0x5a, 0x94, 0x99, 0x7a, 0x99, 0xda, 0x88, 0x98, 0xfb, - 0x12, 0x0d, 0xce, 0xde, 0x4e, 0xc4, 0x9f, 0x73, 0xc3, 0xa0, 0x56, 0xac, 0x46, 0xee, 0x39, 0x00, - 0x9a, 0xf2, 0x65, 0xbb, 0xd3, 0x94, 0xb2, 0x6e, 0x82, 0x1b, 0x78, 0xff, 0x04, 0xed, 0x23, 0x97, - 0x88, 0x88, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0x9f, 0x89, 0xc5, 0x47, 0x76, 0x62, - 0x58, 0x34, 0x4b, 0x45, 0xef, 0x21, 0xaf, 0x60, 0x3b, 0xde, 0x09, 0x6a, 0x4b, 0x88, 0x15, 0xfd, - 0x9a, 0x90, 0xb0, 0x13, 0x2b, 0x8f, 0xfb, 0x88, 0x9e, 0xa0, 0x6b, 0xb9, 0xaf, 0x13, 0x05, 0x71, - 0x2b, 0xd0, 0x75, 0x81, 0xea, 0x00, 0x17, 0xa8, 0x5f, 0x17, 0xfa, 0xb7, 0x3e, 0x6a, 0x4a, 0xb7, - 0x96, 0xb7, 0x84, 0xfb, 0x9c, 0xfe, 0xca, 0x8a, 0xf7, 0x98, 0xdc, 0xa6, 0x5c, 0xe5, 0x67, 0x62, - 0x55, 0xee, 0xd1, 0xdd, 0x9e, 0xd5, 0xa6, 0xea, 0xa0, 0x36, 0xfd, 0x7d, 0xbf, 0xe3, 0xa0, 0x3f, - 0xe2, 0x40, 0x7e, 0x33, 0x44, 0xff, 0x68, 0xac, 0xef, 0xf3, 0x4a, 0xc9, 0x57, 0x75, 0x75, 0x50, - 0xf7, 0xe7, 0x13, 0xc5, 0xa2, 0xaf, 0xee, 0x8d, 0x33, 0x84, 0x40, 0x3e, 0x51, 0x2a, 0xf9, 0x65, - 0x3b, 0xf5, 0xd9, 0xb7, 0xe6, 0x95, 0xaf, 0xbd, 0x35, 0x3f, 0x94, 0xfb, 0x4d, 0x05, 0xa6, 0x98, - 0x64, 0x28, 0x70, 0x9f, 0x95, 0x94, 0x7f, 0x84, 0xd7, 0x8c, 0x28, 0x0b, 0xfc, 0xd4, 0x82, 0xf7, - 0x5b, 0x0a, 0x64, 0xbb, 0x74, 0xe5, 0xf6, 0x5e, 0x1e, 0x48, 0xe5, 0xbc, 0x52, 0xfe, 0xd9, 0xdb, - 0xfc, 0x1e, 0x0c, 0xef, 0x5b, 0x4d, 0xd4, 0xc6, 0x2b, 0x01, 0xfe, 0x40, 0x55, 0xe6, 0x0f, 0x73, - 0xe8, 0x10, 0x9f, 0xa3, 0xca, 0x09, 0x73, 0x2b, 0x7a, 0x16, 0x92, 0xeb, 0xa6, 0x67, 0x12, 0x0d, - 0x32, 0x7e, 0x7d, 0x35, 0x3d, 0x33, 0x77, 0x0d, 0x32, 0xdb, 0xa7, 0xe4, 0x15, 0x9a, 0x3a, 0x79, - 0x3d, 0x44, 0xec, 0xfe, 0x78, 0xbf, 0x7a, 0x75, 0x71, 0x38, 0x55, 0xd7, 0xee, 0x2b, 0xf9, 0x24, - 0xd1, 0xe7, 0x35, 0x98, 0xd8, 0xc1, 0x6a, 0x13, 0x1c, 0x81, 0x5d, 0x00, 0x65, 0x5b, 0x6c, 0x84, - 0xc2, 0xac, 0x86, 0xb2, 0x2d, 0xb5, 0x8f, 0xaa, 0x6f, 0x1e, 0xa9, 0x6d, 0x53, 0xfd, 0xb6, 0x6d, - 0x31, 0x99, 0x9a, 0xd0, 0xa6, 0x16, 0x93, 0x29, 0xd0, 0xc6, 0xd9, 0x79, 0xff, 0x93, 0x0a, 0x1a, - 0x6d, 0x75, 0xd6, 0xd1, 0x91, 0x65, 0x5b, 0x5e, 0x77, 0xbf, 0xea, 0x6b, 0xac, 0xbf, 0x00, 0x63, - 0xd8, 0xa4, 0x1b, 0xec, 0xa7, 0xb7, 0xb0, 0xe9, 0x2f, 0xb2, 0x16, 0x45, 0xa2, 0x60, 0x03, 0x24, - 0x74, 0x02, 0x8c, 0xbe, 0x01, 0x6a, 0xa5, 0xb2, 0xcd, 0x16, 0xb7, 0xd5, 0xbe, 0x50, 0xf6, 0x06, - 0x0e, 0x3b, 0x62, 0x63, 0xee, 0xb1, 0x81, 0x09, 0xf4, 0x55, 0x48, 0x54, 0xb6, 0x59, 0xc3, 0x7b, - 0x69, 0x10, 0x1a, 0x23, 0x51, 0xd9, 0x9e, 0xfd, 0x77, 0x0a, 0x8c, 0x0b, 0xa3, 0x7a, 0x0e, 0x32, - 0x74, 0x20, 0x74, 0xb9, 0x23, 0x86, 0x30, 0xc6, 0x75, 0x4e, 0xbc, 0x47, 0x9d, 0x67, 0x0b, 0x30, - 0x29, 0x8d, 0xeb, 0x4b, 0xa0, 0x87, 0x87, 0x98, 0x12, 0xf4, 0x67, 0x8b, 0x22, 0x66, 0x72, 0x4f, - 0x00, 0x04, 0x76, 0xf5, 0x7f, 0x6d, 0xa7, 0x52, 0xde, 0xdb, 0x2f, 0xaf, 0x6b, 0x4a, 0xee, 0x9b, - 0x0a, 0xa4, 0x59, 0xdb, 0x5a, 0x73, 0x5a, 0x48, 0x2f, 0x82, 0x52, 0x60, 0x11, 0xf4, 0x70, 0x7a, - 0x2b, 0x05, 0xfd, 0x0a, 0x28, 0xc5, 0xc1, 0x5d, 0xad, 0x14, 0xf5, 0x15, 0x50, 0x4a, 0xcc, 0xc1, - 0x83, 0x79, 0x46, 0x29, 0xe5, 0xfe, 0x48, 0x85, 0xe9, 0x70, 0x1b, 0xcd, 0xeb, 0xc9, 0x45, 0xf1, - 0xbe, 0x29, 0x3f, 0x76, 0x75, 0xe5, 0xda, 0xea, 0x12, 0xfe, 0xc7, 0x0f, 0xc9, 0x8b, 0xe2, 0x2d, - 0x54, 0xb7, 0x48, 0xd7, 0x6b, 0x22, 0xf9, 0x64, 0x68, 0xb6, 0xeb, 0x35, 0x11, 0x61, 0xb6, 0xeb, - 0x35, 0x11, 0x61, 0xb6, 0xeb, 0x35, 0x11, 0x61, 0xb6, 0xeb, 0x51, 0x80, 0x30, 0xdb, 0xf5, 0x9a, - 0x88, 0x30, 0xdb, 0xf5, 0x9a, 0x88, 0x30, 0xdb, 0xfd, 0x9a, 0x08, 0x9b, 0xee, 0xf9, 0x9a, 0x88, - 0x38, 0xdf, 0xfd, 0x9a, 0x88, 0x38, 0xdf, 0xfd, 0x9a, 0x48, 0x3e, 0xe9, 0xb5, 0x3b, 0xa8, 0xf7, - 0x43, 0x07, 0x11, 0xdf, 0xef, 0x1e, 0x30, 0x28, 0xc0, 0x3b, 0x30, 0x49, 0xf7, 0x23, 0x4a, 0x8e, - 0xed, 0x99, 0x96, 0x8d, 0xda, 0xfa, 0xc7, 0x20, 0x43, 0x87, 0xe8, 0x5d, 0x4e, 0xd4, 0x5d, 0x20, - 0x9d, 0x67, 0xe5, 0x56, 0x90, 0xce, 0xfd, 0x59, 0x12, 0x66, 0xe8, 0x40, 0xc5, 0x6c, 0x22, 0xe1, - 0x25, 0xa3, 0xcb, 0xd2, 0x23, 0xa5, 0x09, 0x0c, 0x7f, 0xf0, 0xce, 0x3c, 0x1d, 0x2d, 0xf8, 0xc1, - 0x74, 0x59, 0x7a, 0xb8, 0x24, 0xca, 0x05, 0xeb, 0xcf, 0x65, 0xe9, 0xc5, 0x23, 0x51, 0xce, 0x5f, - 0x6e, 0x7c, 0x39, 0xfe, 0x0a, 0x92, 0x28, 0xb7, 0xee, 0x47, 0xd9, 0x65, 0xe9, 0x65, 0x24, 0x51, - 0xae, 0xec, 0xc7, 0xdb, 0x65, 0xe9, 0xd1, 0x93, 0x28, 0xb7, 0xe1, 0x47, 0xde, 0x65, 0xe9, 0x21, - 0x94, 0x28, 0x77, 0xc7, 0x8f, 0xc1, 0xcb, 0xd2, 0xab, 0x4a, 0xa2, 0xdc, 0x8b, 0x7e, 0x34, 0x5e, - 0x96, 0x5e, 0x5a, 0x12, 0xe5, 0x36, 0xfd, 0xb8, 0x5c, 0x90, 0x5f, 0x5f, 0x12, 0x05, 0xef, 0x06, - 0x11, 0xba, 0x20, 0xbf, 0xc8, 0x24, 0x4a, 0x7e, 0x3c, 0x88, 0xd5, 0x05, 0xf9, 0x95, 0x26, 0x51, - 0x72, 0x2b, 0x88, 0xda, 0x05, 0xf9, 0x51, 0x99, 0x28, 0xb9, 0x1d, 0xc4, 0xef, 0x82, 0xfc, 0xd0, - 0x4c, 0x94, 0xac, 0x04, 0x91, 0xbc, 0x20, 0x3f, 0x3e, 0x13, 0x25, 0x77, 0x82, 0x3d, 0xf4, 0x3f, - 0x90, 0xc2, 0x2f, 0xf4, 0x12, 0x54, 0x4e, 0x0a, 0x3f, 0x88, 0x08, 0xbd, 0x9c, 0x14, 0x7a, 0x10, - 0x11, 0x76, 0x39, 0x29, 0xec, 0x20, 0x22, 0xe4, 0x72, 0x52, 0xc8, 0x41, 0x44, 0xb8, 0xe5, 0xa4, - 0x70, 0x83, 0x88, 0x50, 0xcb, 0x49, 0xa1, 0x06, 0x11, 0x61, 0x96, 0x93, 0xc2, 0x0c, 0x22, 0x42, - 0x2c, 0x27, 0x85, 0x18, 0x44, 0x84, 0x57, 0x4e, 0x0a, 0x2f, 0x88, 0x08, 0xad, 0x4b, 0x72, 0x68, - 0x41, 0x54, 0x58, 0x5d, 0x92, 0xc3, 0x0a, 0xa2, 0x42, 0xea, 0x49, 0x39, 0xa4, 0xc6, 0x1e, 0xbc, - 0x33, 0x3f, 0x8c, 0x87, 0x42, 0xd1, 0x74, 0x49, 0x8e, 0x26, 0x88, 0x8a, 0xa4, 0x4b, 0x72, 0x24, - 0x41, 0x54, 0x14, 0x5d, 0x92, 0xa3, 0x08, 0xa2, 0x22, 0xe8, 0x6d, 0x39, 0x82, 0x82, 0x57, 0x7c, - 0x72, 0xd2, 0x13, 0xc5, 0xb8, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, - 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, - 0x90, 0x08, 0x52, 0x07, 0x8a, 0x20, 0xb5, 0x57, 0x04, 0x5d, 0x92, 0x5f, 0x78, 0x80, 0xa8, 0x82, - 0x74, 0x49, 0x7e, 0xf2, 0x19, 0x1f, 0x42, 0xea, 0x40, 0x21, 0xa4, 0xf6, 0x0a, 0xa1, 0x3f, 0x50, - 0x61, 0x5a, 0x08, 0x21, 0xf6, 0x78, 0xe8, 0xfd, 0xaa, 0x40, 0xd7, 0x07, 0x78, 0xbf, 0x22, 0x2a, - 0xa6, 0xae, 0x0f, 0xf0, 0x8c, 0xba, 0x5f, 0x9c, 0x75, 0x57, 0xa1, 0xf2, 0x00, 0x55, 0x68, 0xc3, - 0x8f, 0xa1, 0xeb, 0x03, 0xbc, 0x77, 0xd1, 0x1d, 0x7b, 0x37, 0xfb, 0x15, 0x81, 0x17, 0x07, 0x2a, - 0x02, 0x9b, 0x03, 0x15, 0x81, 0xbb, 0x81, 0x07, 0x7f, 0x39, 0x01, 0xe7, 0x02, 0x0f, 0xd2, 0x4f, - 0xe4, 0x27, 0x92, 0x72, 0xa1, 0x27, 0x54, 0x3a, 0x7f, 0x6a, 0x13, 0x72, 0x63, 0x62, 0xb3, 0xae, - 0xef, 0x8a, 0xcf, 0xaa, 0xf2, 0x67, 0x7d, 0x7e, 0x13, 0xf2, 0x38, 0xdb, 0x0b, 0xbd, 0x04, 0xea, - 0x66, 0xdd, 0x25, 0xd5, 0x22, 0xea, 0xb4, 0x25, 0x03, 0x4f, 0xeb, 0x06, 0x8c, 0x10, 0x71, 0x97, - 0xb8, 0xf7, 0xbd, 0x9c, 0x78, 0xdd, 0x60, 0x4c, 0xb9, 0xb7, 0x15, 0xb8, 0x20, 0x84, 0xf2, 0xfb, - 0xf3, 0xc4, 0xe0, 0xf6, 0x40, 0x4f, 0x0c, 0x84, 0x04, 0x09, 0x9e, 0x1e, 0x3c, 0xdd, 0xfd, 0xa0, - 0x3a, 0x9c, 0x25, 0xf2, 0x93, 0x84, 0xbf, 0x0c, 0x13, 0xc1, 0x15, 0x90, 0x5b, 0xb6, 0xb5, 0xf8, - 0xcd, 0xcc, 0xa8, 0xd4, 0x5c, 0x93, 0x36, 0xd1, 0xfa, 0xc2, 0xfc, 0x6c, 0xcd, 0xe5, 0x61, 0xb2, - 0x22, 0x7e, 0x97, 0x27, 0x6e, 0x2f, 0x22, 0x85, 0x5b, 0xf3, 0xfb, 0x5f, 0x99, 0x1f, 0xca, 0x7d, - 0x14, 0x32, 0xe1, 0xaf, 0xeb, 0x48, 0xc0, 0x31, 0x0e, 0xcc, 0x27, 0xbf, 0x8d, 0xa5, 0xff, 0xa1, - 0x02, 0x8f, 0x84, 0xc5, 0x5f, 0xb2, 0xbc, 0x93, 0x4d, 0x1b, 0xf7, 0xf4, 0xcf, 0x41, 0x0a, 0x31, - 0xc7, 0xb1, 0x5f, 0x3b, 0x61, 0xb7, 0x91, 0x91, 0xe2, 0x4b, 0xe4, 0x5f, 0xc3, 0x87, 0x48, 0x5b, - 0x1c, 0xfc, 0xb4, 0x2b, 0xb3, 0x4f, 0xc1, 0x30, 0xe5, 0x17, 0xf5, 0x1a, 0x97, 0xf4, 0xfa, 0x8d, - 0x08, 0xbd, 0x48, 0x1c, 0xe9, 0x77, 0x05, 0xbd, 0x42, 0x77, 0xab, 0x91, 0xe2, 0x4b, 0x3c, 0xf8, - 0x8a, 0x29, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x57, 0x72, 0x01, 0x52, 0x65, 0x59, 0x26, 0x5a, 0xcf, - 0x75, 0x48, 0x56, 0x9c, 0x3a, 0xf9, 0x1d, 0x16, 0xf2, 0x7b, 0xb9, 0xcc, 0xc8, 0xec, 0xc7, 0x73, - 0x2f, 0x43, 0xaa, 0x74, 0x62, 0x35, 0xea, 0x6d, 0x64, 0xb3, 0x47, 0xf6, 0x6c, 0x07, 0x1d, 0x63, - 0x0c, 0x7f, 0x2e, 0x57, 0x82, 0xa9, 0x8a, 0x63, 0x17, 0x4f, 0xbd, 0x70, 0xdd, 0x58, 0x92, 0x52, - 0x84, 0x3d, 0xf2, 0x21, 0x5f, 0x00, 0xc1, 0x02, 0xc5, 0xe1, 0xef, 0xbc, 0x33, 0xaf, 0xec, 0xfb, - 0xdb, 0xe7, 0xdb, 0xf0, 0x28, 0x4b, 0x9f, 0x2e, 0xaa, 0x95, 0x38, 0xaa, 0x31, 0xf6, 0x98, 0x3a, - 0x44, 0xb7, 0x89, 0xe9, 0xec, 0x48, 0xba, 0x87, 0xd3, 0x0c, 0x37, 0x45, 0x7d, 0x35, 0x53, 0xcf, - 0xa4, 0x59, 0x24, 0xdd, 0x52, 0x1c, 0x9d, 0xa4, 0xd9, 0x93, 0x30, 0xe6, 0xcf, 0x85, 0xa2, 0x21, - 0x9c, 0x29, 0x2b, 0x8b, 0x39, 0x48, 0x87, 0x12, 0x56, 0x1f, 0x06, 0xa5, 0xa0, 0x0d, 0xe1, 0xff, - 0x8a, 0x9a, 0x82, 0xff, 0x2b, 0x69, 0x89, 0xc5, 0xa7, 0x60, 0x52, 0xda, 0xbe, 0xc4, 0x33, 0xeb, - 0x1a, 0xe0, 0xff, 0xca, 0x5a, 0x7a, 0x36, 0xf9, 0xd9, 0x7f, 0x32, 0x37, 0xb4, 0x78, 0x1b, 0xf4, - 0xee, 0x8d, 0x4e, 0x7d, 0x04, 0x12, 0x05, 0x4c, 0xf9, 0x28, 0x24, 0x8a, 0x45, 0x4d, 0x99, 0x9d, - 0xfc, 0x1b, 0x5f, 0xbc, 0x90, 0x2e, 0x92, 0xef, 0x22, 0xdf, 0x43, 0x5e, 0xb1, 0xc8, 0xc0, 0xcf, - 0xc3, 0x23, 0x91, 0x1b, 0xa5, 0x18, 0x5f, 0x2a, 0x51, 0xfc, 0xfa, 0x7a, 0x17, 0x7e, 0x7d, 0x9d, - 0xe0, 0x95, 0x3c, 0x7f, 0xe0, 0x5c, 0xd0, 0x23, 0xb6, 0x25, 0xb3, 0xf5, 0xd0, 0x03, 0xee, 0x42, - 0xfe, 0x79, 0x26, 0x5b, 0x8c, 0x94, 0x45, 0x31, 0x0f, 0xac, 0x8b, 0xf9, 0x12, 0xc3, 0x97, 0x22, - 0xf1, 0x47, 0xd2, 0x53, 0x55, 0x71, 0x85, 0x60, 0x24, 0x25, 0x5f, 0xe1, 0xf5, 0x48, 0x92, 0x93, - 0xd0, 0xbb, 0xee, 0xeb, 0xbe, 0xc2, 0xe5, 0x48, 0x59, 0x2b, 0xe6, 0x9d, 0xaf, 0x72, 0xfe, 0x0a, - 0x5b, 0xe4, 0x0b, 0x57, 0xf5, 0x47, 0x78, 0x8e, 0x0a, 0x15, 0x98, 0x19, 0x88, 0x4b, 0xe5, 0x4b, - 0x0c, 0x50, 0xec, 0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0xbf, 0xc8, 0x48, 0x4a, 0x3d, 0x49, 0x62, - 0x4c, 0xc5, 0xe1, 0xc5, 0xfd, 0xfb, 0xef, 0xce, 0x0d, 0x7d, 0xfb, 0xdd, 0xb9, 0xa1, 0xff, 0xf6, - 0xee, 0xdc, 0xd0, 0x77, 0xdf, 0x9d, 0x53, 0x7e, 0xf0, 0xee, 0x9c, 0xf2, 0xa3, 0x77, 0xe7, 0x94, - 0x3f, 0x7d, 0x77, 0x4e, 0x79, 0xf3, 0xc1, 0x9c, 0xf2, 0xb5, 0x07, 0x73, 0xca, 0xd7, 0x1f, 0xcc, - 0x29, 0xbf, 0xf7, 0x60, 0x4e, 0x79, 0xfb, 0xc1, 0x9c, 0x72, 0xff, 0xc1, 0x9c, 0xf2, 0xed, 0x07, - 0x73, 0xca, 0x77, 0x1f, 0xcc, 0x29, 0x3f, 0x78, 0x30, 0x37, 0xf4, 0xa3, 0x07, 0x73, 0xca, 0x9f, - 0x3e, 0x98, 0x1b, 0x7a, 0xf3, 0x7b, 0x73, 0x43, 0x6f, 0x7d, 0x6f, 0x6e, 0xe8, 0x6b, 0xdf, 0x9b, - 0x53, 0xe0, 0xbb, 0xab, 0xf0, 0xb8, 0xf4, 0x45, 0x32, 0xd2, 0x0d, 0x5c, 0xe3, 0x3f, 0xe5, 0xe4, - 0x0f, 0x9c, 0xf1, 0xfb, 0x64, 0xb3, 0x0f, 0xfb, 0xed, 0xb5, 0xdc, 0xbf, 0x1f, 0x86, 0x51, 0xbe, - 0x0b, 0x1c, 0xf5, 0x63, 0xd0, 0x6b, 0x90, 0x3a, 0xb1, 0x1a, 0x66, 0xdb, 0xf2, 0x4e, 0xd9, 0xf6, - 0xe7, 0x63, 0x4b, 0x81, 0xda, 0x7c, 0xc3, 0xf4, 0xc5, 0x4e, 0xd3, 0xe9, 0xb4, 0x0d, 0x5f, 0x54, - 0xbf, 0x00, 0x99, 0x13, 0x64, 0x1d, 0x9f, 0x78, 0x55, 0xcb, 0xae, 0xd6, 0x9a, 0xa4, 0x4d, 0x1e, - 0x37, 0x80, 0x8e, 0x6d, 0xda, 0xa5, 0x26, 0x3e, 0x59, 0xdd, 0xf4, 0x4c, 0x72, 0x7b, 0x9e, 0x31, - 0xc8, 0x67, 0xfd, 0x22, 0x64, 0xda, 0xc8, 0xed, 0x34, 0xbc, 0x6a, 0xcd, 0xe9, 0xd8, 0x1e, 0x69, - 0x64, 0x55, 0x23, 0x4d, 0xc7, 0x4a, 0x78, 0x48, 0x7f, 0x12, 0xc6, 0xbd, 0x76, 0x07, 0x55, 0xdd, - 0x9a, 0xe3, 0xb9, 0x4d, 0xd3, 0x26, 0x8d, 0x6c, 0xca, 0xc8, 0xe0, 0xc1, 0x3d, 0x36, 0x46, 0xfe, - 0xd8, 0x40, 0xcd, 0x69, 0x23, 0x72, 0x1f, 0x9d, 0x30, 0xe8, 0x81, 0xae, 0x81, 0xfa, 0x2a, 0x3a, - 0x25, 0x77, 0x6a, 0x49, 0x03, 0x7f, 0xd4, 0x9f, 0x81, 0x11, 0xfa, 0x77, 0x28, 0x48, 0x5b, 0x4d, - 0x1e, 0x5a, 0xfb, 0x97, 0x46, 0x37, 0x67, 0x0d, 0x26, 0xa0, 0xdf, 0x82, 0x51, 0x0f, 0xb5, 0xdb, - 0xa6, 0x65, 0x93, 0xbb, 0xa6, 0xf4, 0xca, 0x7c, 0x84, 0x19, 0xf6, 0xa9, 0x04, 0xf9, 0x5d, 0x57, - 0x83, 0xcb, 0xeb, 0x6b, 0x90, 0x21, 0x72, 0x2b, 0x55, 0xfa, 0xb7, 0x3a, 0xd2, 0x3d, 0x03, 0x39, - 0x4d, 0xe5, 0xf8, 0x33, 0x02, 0x0e, 0xa3, 0xbf, 0x69, 0x37, 0x4e, 0x4e, 0xfb, 0x64, 0xc4, 0x69, - 0x49, 0xcd, 0x5d, 0x21, 0xfd, 0x22, 0x3d, 0x35, 0xe3, 0xa1, 0xbf, 0x7a, 0xb7, 0x0d, 0x99, 0xb0, - 0x5e, 0xdc, 0x0c, 0xb4, 0xef, 0x21, 0x66, 0x78, 0x3a, 0xf8, 0x1d, 0xf7, 0x1e, 0x56, 0xa0, 0xf3, - 0xf9, 0xc4, 0x4d, 0x65, 0x76, 0x17, 0x34, 0xf9, 0x7c, 0x11, 0x94, 0x97, 0x45, 0x4a, 0x2d, 0x7c, - 0xb1, 0x64, 0x87, 0x3c, 0x60, 0xcc, 0xbd, 0x00, 0x23, 0x34, 0x7e, 0xf4, 0x34, 0x8c, 0x06, 0x3f, - 0x97, 0x98, 0x82, 0xe4, 0xee, 0x41, 0x65, 0x8f, 0xfe, 0xee, 0xe9, 0xde, 0x56, 0x61, 0x77, 0x6f, - 0x7f, 0xb3, 0xf4, 0x71, 0x2d, 0xa1, 0x4f, 0x42, 0xba, 0xb8, 0xb9, 0xb5, 0x55, 0x2d, 0x16, 0x36, - 0xb7, 0xca, 0xf7, 0x34, 0x35, 0x37, 0x07, 0x23, 0x54, 0x4f, 0xf2, 0xfb, 0x6d, 0x1d, 0xdb, 0x3e, - 0xe5, 0x7d, 0x03, 0x39, 0xc8, 0x7d, 0x43, 0x87, 0xd1, 0x42, 0xa3, 0xb1, 0x6d, 0xb6, 0x5c, 0xfd, - 0x25, 0x98, 0xa2, 0xbf, 0x24, 0xb1, 0xef, 0xac, 0x93, 0x9f, 0x19, 0xc4, 0x55, 0x41, 0x61, 0xbf, - 0x5f, 0x1f, 0x5c, 0x37, 0x13, 0x5f, 0xea, 0x92, 0xa5, 0x06, 0xee, 0xe6, 0xd0, 0xf7, 0x41, 0xe3, - 0x83, 0x1b, 0x0d, 0xc7, 0xf4, 0x30, 0x6f, 0x82, 0xfd, 0x0a, 0x60, 0x6f, 0x5e, 0x2e, 0x4a, 0x69, - 0xbb, 0x18, 0xf4, 0x8f, 0x41, 0x6a, 0xd3, 0xf6, 0xae, 0xad, 0x60, 0x36, 0xfe, 0xb7, 0x55, 0xba, - 0xd9, 0xb8, 0x08, 0x65, 0xf1, 0x11, 0x0c, 0x7d, 0x7d, 0x15, 0xa3, 0x93, 0xfd, 0xd0, 0x44, 0x24, - 0x40, 0x93, 0x43, 0xfd, 0x05, 0x18, 0xc3, 0xb7, 0x25, 0xf4, 0xe4, 0xc3, 0xbc, 0x67, 0xed, 0x82, - 0xfb, 0x32, 0x14, 0x1f, 0x60, 0x38, 0x01, 0x3d, 0xff, 0x48, 0x5f, 0x82, 0x90, 0x02, 0x01, 0x06, - 0x13, 0xec, 0xf9, 0x1a, 0x8c, 0xf6, 0x24, 0xd8, 0x93, 0x34, 0xd8, 0x0b, 0x6b, 0xb0, 0xe7, 0x6b, - 0x90, 0xea, 0x4b, 0x10, 0xd6, 0xc0, 0x3f, 0xd6, 0x8b, 0x00, 0x1b, 0xd6, 0x1b, 0xa8, 0x4e, 0x55, - 0xa0, 0x7f, 0x79, 0x25, 0x17, 0xc1, 0x10, 0x08, 0x51, 0x8a, 0x10, 0x4a, 0x2f, 0x43, 0x7a, 0xef, - 0x28, 0x20, 0x81, 0xae, 0x3c, 0xf6, 0xd5, 0x38, 0x92, 0x58, 0xc2, 0x38, 0x5f, 0x15, 0x7a, 0x31, - 0xe9, 0xfe, 0xaa, 0x84, 0xae, 0x26, 0x84, 0x0a, 0x54, 0xa1, 0x24, 0x99, 0x18, 0x55, 0x42, 0x2c, - 0x61, 0x1c, 0x2e, 0x86, 0x45, 0xc7, 0xc1, 0x92, 0xac, 0x2a, 0xcd, 0x47, 0x50, 0x30, 0x09, 0x56, - 0x0c, 0xd9, 0x11, 0xf1, 0x08, 0x09, 0x72, 0x0c, 0x9e, 0xe8, 0xed, 0x11, 0x2e, 0xc3, 0x3d, 0xc2, - 0x8f, 0xc3, 0x79, 0x46, 0xde, 0x64, 0xc5, 0x3c, 0x93, 0xb1, 0x79, 0xc6, 0x45, 0xa5, 0x3c, 0xe3, - 0xc3, 0xfa, 0x27, 0x60, 0x92, 0x8f, 0xe1, 0xf2, 0x84, 0x49, 0x35, 0xf6, 0xb7, 0xa9, 0x7a, 0x93, - 0x32, 0x49, 0xca, 0x29, 0xe3, 0xf5, 0x0a, 0x4c, 0xf0, 0xa1, 0x6d, 0x97, 0x5c, 0xee, 0x14, 0xfb, - 0xbb, 0x0f, 0xbd, 0x19, 0xa9, 0x20, 0x25, 0x94, 0xd0, 0xb3, 0xeb, 0x30, 0x13, 0x5d, 0x8d, 0xc2, - 0xe5, 0x77, 0x8c, 0x96, 0xdf, 0x73, 0xe1, 0xf2, 0xab, 0x84, 0xcb, 0x77, 0x09, 0x1e, 0x89, 0xac, - 0x3d, 0x71, 0x24, 0x89, 0x30, 0xc9, 0x6d, 0x18, 0x17, 0x4a, 0x4e, 0x18, 0x3c, 0x1c, 0x01, 0x1e, - 0xee, 0x06, 0x07, 0xa1, 0x15, 0xb1, 0x7a, 0x08, 0x60, 0x35, 0x0c, 0xfe, 0x18, 0x4c, 0x88, 0xf5, - 0x26, 0x8c, 0x1e, 0x8f, 0x40, 0x8f, 0x47, 0xa0, 0xa3, 0xcf, 0x9d, 0x8c, 0x40, 0x27, 0x25, 0xf4, - 0x5e, 0xcf, 0x73, 0x4f, 0x45, 0xa0, 0xa7, 0x22, 0xd0, 0xd1, 0xe7, 0xd6, 0x23, 0xd0, 0x7a, 0x18, - 0xfd, 0x1c, 0x4c, 0x4a, 0x25, 0x26, 0x0c, 0x1f, 0x8d, 0x80, 0x8f, 0x86, 0xe1, 0xcf, 0x83, 0x26, - 0x17, 0x97, 0x30, 0x7e, 0x32, 0x02, 0x3f, 0x19, 0x75, 0xfa, 0x68, 0xed, 0x47, 0x22, 0xe0, 0x23, - 0x91, 0xa7, 0x8f, 0xc6, 0x6b, 0x11, 0x78, 0x2d, 0x8c, 0xcf, 0x43, 0x26, 0x5c, 0x4d, 0xc2, 0xd8, - 0x54, 0x04, 0x36, 0x25, 0xdb, 0x5d, 0x28, 0x26, 0x71, 0x91, 0x3e, 0xd6, 0x23, 0x5d, 0x84, 0x12, - 0x12, 0x47, 0x92, 0x09, 0x93, 0x7c, 0x12, 0xce, 0x45, 0x95, 0x8c, 0x08, 0x8e, 0x85, 0x30, 0xc7, - 0x04, 0xee, 0x11, 0x83, 0x66, 0xcf, 0x6c, 0x49, 0x8d, 0xd3, 0xec, 0xa7, 0x60, 0x3a, 0xa2, 0x70, - 0x44, 0xd0, 0x2e, 0x89, 0xdd, 0x58, 0x36, 0x44, 0x4b, 0x8a, 0x80, 0x65, 0x1f, 0xef, 0x3a, 0x96, - 0xed, 0x85, 0xbb, 0xb2, 0x6f, 0x4e, 0xc3, 0x04, 0x2b, 0x4f, 0x3b, 0xed, 0x3a, 0x6a, 0xa3, 0xba, - 0xfe, 0x97, 0x7a, 0xf7, 0x4e, 0xcb, 0xdd, 0x45, 0x8d, 0xa1, 0xce, 0xd0, 0x42, 0x7d, 0xaa, 0x67, - 0x0b, 0x75, 0x25, 0x9e, 0x3e, 0xae, 0x93, 0x2a, 0x75, 0x75, 0x52, 0x4f, 0xf7, 0x26, 0xed, 0xd5, - 0x50, 0x95, 0xba, 0x1a, 0xaa, 0xfe, 0x24, 0x91, 0x7d, 0xd5, 0x46, 0x77, 0x5f, 0xb5, 0xd0, 0x9b, - 0xa5, 0x77, 0x7b, 0xb5, 0xd1, 0xdd, 0x5e, 0xc5, 0xf0, 0x44, 0x77, 0x59, 0x1b, 0xdd, 0x5d, 0x56, - 0x1f, 0x9e, 0xde, 0xcd, 0xd6, 0x46, 0x77, 0xb3, 0x15, 0xc3, 0x13, 0xdd, 0x73, 0x6d, 0x46, 0xf4, - 0x5c, 0xcf, 0xf4, 0x26, 0xea, 0xd7, 0x7a, 0x6d, 0x45, 0xb5, 0x5e, 0x8b, 0x7d, 0x94, 0xea, 0xdb, - 0x81, 0x6d, 0x46, 0x74, 0x60, 0x71, 0x8a, 0xf5, 0x68, 0xc4, 0xb6, 0xa2, 0x1a, 0xb1, 0x58, 0xc5, - 0x7a, 0xf5, 0x63, 0x7f, 0x41, 0xee, 0xc7, 0x2e, 0xf7, 0x66, 0x8a, 0x6e, 0xcb, 0x36, 0xba, 0xdb, - 0xb2, 0x85, 0xb8, 0x9c, 0x8b, 0xea, 0xce, 0x3e, 0xd5, 0xb3, 0x3b, 0x1b, 0x20, 0x85, 0xe3, 0x9a, - 0xb4, 0x97, 0x7b, 0x35, 0x69, 0x4b, 0xf1, 0xdc, 0xfd, 0x7b, 0xb5, 0x83, 0x1e, 0xbd, 0xda, 0xb3, - 0xf1, 0xc4, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, 0x6c, 0x3f, 0xfb, - 0x96, 0x2d, 0x9f, 0xfc, 0xdc, 0x57, 0xe6, 0x95, 0xdc, 0x7f, 0x55, 0xfd, 0x3f, 0x99, 0xf5, 0x92, - 0xe5, 0x9d, 0xe0, 0xf2, 0xb6, 0x0d, 0x19, 0xf2, 0xc7, 0x2e, 0x9a, 0x66, 0xab, 0x65, 0xd9, 0xc7, - 0xac, 0x67, 0x5b, 0xec, 0xde, 0x4a, 0x64, 0x00, 0xf2, 0xe7, 0x42, 0xb6, 0xa9, 0x30, 0x5b, 0x6e, - 0xec, 0x60, 0x44, 0xbf, 0x0b, 0xe9, 0xa6, 0x7b, 0xec, 0xb3, 0x25, 0xba, 0x16, 0x42, 0x89, 0x8d, - 0x5e, 0x69, 0x40, 0x06, 0x4d, 0x7f, 0x00, 0xab, 0x76, 0x78, 0xea, 0x05, 0xaa, 0xa9, 0x71, 0xaa, - 0x61, 0x9f, 0x8a, 0xaa, 0x1d, 0x06, 0x23, 0x38, 0x6c, 0x65, 0xdd, 0xe3, 0x2a, 0x9d, 0x10, 0x3c, - 0x2f, 0xc1, 0xa4, 0xa4, 0x6d, 0x44, 0xce, 0x3f, 0x84, 0x6f, 0xb0, 0x62, 0xb2, 0xe6, 0x71, 0x39, - 0x11, 0x0e, 0xc8, 0xdc, 0x13, 0x30, 0x2e, 0x70, 0xeb, 0x19, 0x50, 0x8e, 0xd8, 0xd7, 0x28, 0x95, - 0xa3, 0xdc, 0x97, 0x15, 0x48, 0xb3, 0x77, 0x08, 0x76, 0x4d, 0xab, 0xad, 0xbf, 0x08, 0xc9, 0x06, - 0xff, 0x2a, 0xd3, 0xc3, 0x7e, 0x6d, 0x96, 0x30, 0xe8, 0x1b, 0x30, 0xdc, 0xf6, 0xbf, 0xea, 0xf4, - 0x50, 0xdf, 0x85, 0x25, 0xf0, 0xdc, 0x7d, 0x05, 0xa6, 0xd8, 0x2b, 0xae, 0x2e, 0x7b, 0xf1, 0xd9, - 0x6c, 0xcd, 0x7e, 0x43, 0x81, 0x31, 0xff, 0x48, 0x3f, 0x84, 0x09, 0xff, 0x80, 0xbe, 0x5c, 0x4f, - 0x23, 0x35, 0x1f, 0xb2, 0x70, 0x17, 0xc7, 0x52, 0xc4, 0x27, 0xfa, 0x14, 0x8a, 0xae, 0xc9, 0xe2, - 0xe0, 0x6c, 0x01, 0xa6, 0x23, 0xc4, 0xce, 0xb2, 0x20, 0xe7, 0x2e, 0xc2, 0x58, 0xc5, 0xf1, 0xe8, - 0x2f, 0xe6, 0xe8, 0xe7, 0x42, 0x4f, 0x15, 0x8a, 0x09, 0x6d, 0x88, 0x80, 0x17, 0x2f, 0xc2, 0x28, - 0xcb, 0x7e, 0x7d, 0x04, 0x12, 0xdb, 0x05, 0x6d, 0x88, 0xfc, 0x5f, 0xd4, 0x14, 0xf2, 0x7f, 0x49, - 0x4b, 0x14, 0xb7, 0xde, 0xcf, 0x47, 0x4c, 0x87, 0x23, 0xd4, 0x3c, 0x7f, 0x1e, 0x00, 0x00, 0xff, - 0xff, 0x71, 0x6f, 0x41, 0x4f, 0x26, 0x7f, 0x00, 0x00, + // 7946 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x5b, 0x70, 0x23, 0xd7, + 0x99, 0x1f, 0x3e, 0x8d, 0x06, 0x49, 0xf0, 0x03, 0x48, 0x36, 0x9b, 0x33, 0x14, 0x44, 0x8d, 0xc8, + 0x19, 0x68, 0x34, 0xa2, 0x68, 0x8b, 0x33, 0xc3, 0xe1, 0xdc, 0x30, 0x96, 0xb4, 0x00, 0x08, 0x8e, + 0x38, 0xe6, 0xcd, 0x4d, 0xd2, 0xd2, 0x58, 0xff, 0x7f, 0x50, 0x4d, 0xe0, 0x90, 0x84, 0x04, 0x74, + 0x63, 0xd1, 0x0d, 0x49, 0x54, 0xa5, 0x52, 0xca, 0x3a, 0xd9, 0x78, 0x93, 0xca, 0x75, 0x93, 0x5a, + 0xaf, 0xe3, 0x8b, 0x9c, 0xd4, 0xc6, 0xde, 0xcd, 0xcd, 0xeb, 0xdd, 0x38, 0x9b, 0xad, 0x54, 0x56, + 0x79, 0x70, 0x32, 0x79, 0x49, 0x79, 0x93, 0x97, 0x94, 0x2b, 0xa5, 0xb2, 0xc6, 0x4e, 0xc5, 0x49, + 0x9c, 0xac, 0xb3, 0x71, 0x55, 0x5c, 0xe5, 0x7d, 0x48, 0x9d, 0x5b, 0xf7, 0x39, 0x07, 0x0d, 0x34, + 0x38, 0x92, 0xec, 0x7d, 0xf0, 0xcb, 0x0c, 0xfa, 0x9c, 0xef, 0xf7, 0xeb, 0xaf, 0xbf, 0xdb, 0xf9, + 0xfa, 0x74, 0x03, 0x84, 0x3f, 0xba, 0x05, 0xe7, 0x0e, 0x5d, 0xf7, 0xb0, 0x81, 0x2e, 0xb5, 0xda, + 0xae, 0xef, 0xee, 0x77, 0x0e, 0x2e, 0xd5, 0x90, 0x57, 0x6d, 0xd7, 0x5b, 0xbe, 0xdb, 0x5e, 0x24, + 0x63, 0xe6, 0x04, 0x95, 0x58, 0xe4, 0x12, 0xb9, 0x0d, 0x98, 0x5c, 0xad, 0x37, 0xd0, 0x4a, 0x20, + 0xb8, 0x83, 0x7c, 0xf3, 0x26, 0x24, 0x0f, 0xea, 0x0d, 0x94, 0xd5, 0xce, 0xe9, 0xf3, 0xe9, 0xa5, + 0x0b, 0x8b, 0x0a, 0x68, 0x51, 0x46, 0x6c, 0xe3, 0x61, 0x8b, 0x20, 0x72, 0xdf, 0x4b, 0xc2, 0x54, + 0xc4, 0xac, 0x69, 0x42, 0xd2, 0xb1, 0x9b, 0x98, 0x51, 0x9b, 0x1f, 0xb5, 0xc8, 0x67, 0x33, 0x0b, + 0x23, 0x2d, 0xbb, 0xfa, 0xaa, 0x7d, 0x88, 0xb2, 0x09, 0x32, 0xcc, 0x0f, 0xcd, 0x59, 0x80, 0x1a, + 0x6a, 0x21, 0xa7, 0x86, 0x9c, 0xea, 0x71, 0x56, 0x3f, 0xa7, 0xcf, 0x8f, 0x5a, 0xc2, 0x88, 0xf9, + 0x11, 0x98, 0x6c, 0x75, 0xf6, 0x1b, 0xf5, 0x6a, 0x45, 0x10, 0x83, 0x73, 0xfa, 0xfc, 0x90, 0x65, + 0xd0, 0x89, 0x95, 0x50, 0xf8, 0x29, 0x98, 0x78, 0x1d, 0xd9, 0xaf, 0x8a, 0xa2, 0x69, 0x22, 0x3a, + 0x8e, 0x87, 0x05, 0xc1, 0x12, 0x64, 0x9a, 0xc8, 0xf3, 0xec, 0x43, 0x54, 0xf1, 0x8f, 0x5b, 0x28, + 0x9b, 0x24, 0x57, 0x7f, 0xae, 0xeb, 0xea, 0xd5, 0x2b, 0x4f, 0x33, 0xd4, 0xee, 0x71, 0x0b, 0x99, + 0x05, 0x18, 0x45, 0x4e, 0xa7, 0x49, 0x19, 0x86, 0x7a, 0xd8, 0xaf, 0xec, 0x74, 0x9a, 0x2a, 0x4b, + 0x0a, 0xc3, 0x18, 0xc5, 0x88, 0x87, 0xda, 0xaf, 0xd5, 0xab, 0x28, 0x3b, 0x4c, 0x08, 0x9e, 0xea, + 0x22, 0xd8, 0xa1, 0xf3, 0x2a, 0x07, 0xc7, 0x99, 0x25, 0x18, 0x45, 0x6f, 0xf8, 0xc8, 0xf1, 0xea, + 0xae, 0x93, 0x1d, 0x21, 0x24, 0x4f, 0x46, 0x78, 0x11, 0x35, 0x6a, 0x2a, 0x45, 0x88, 0x33, 0xaf, + 0xc3, 0x88, 0xdb, 0xf2, 0xeb, 0xae, 0xe3, 0x65, 0x53, 0xe7, 0xb4, 0xf9, 0xf4, 0xd2, 0xd9, 0xc8, + 0x40, 0xd8, 0xa2, 0x32, 0x16, 0x17, 0x36, 0xd7, 0xc0, 0xf0, 0xdc, 0x4e, 0xbb, 0x8a, 0x2a, 0x55, + 0xb7, 0x86, 0x2a, 0x75, 0xe7, 0xc0, 0xcd, 0x8e, 0x12, 0x82, 0xb9, 0xee, 0x0b, 0x21, 0x82, 0x25, + 0xb7, 0x86, 0xd6, 0x9c, 0x03, 0xd7, 0x1a, 0xf7, 0xa4, 0x63, 0x73, 0x1a, 0x86, 0xbd, 0x63, 0xc7, + 0xb7, 0xdf, 0xc8, 0x66, 0x48, 0x84, 0xb0, 0xa3, 0xdc, 0xbf, 0x18, 0x86, 0x89, 0x41, 0x42, 0xec, + 0x36, 0x0c, 0x1d, 0xe0, 0xab, 0xcc, 0x26, 0x4e, 0x62, 0x03, 0x8a, 0x91, 0x8d, 0x38, 0xfc, 0x90, + 0x46, 0x2c, 0x40, 0xda, 0x41, 0x9e, 0x8f, 0x6a, 0x34, 0x22, 0xf4, 0x01, 0x63, 0x0a, 0x28, 0xa8, + 0x3b, 0xa4, 0x92, 0x0f, 0x15, 0x52, 0x2f, 0xc1, 0x44, 0xa0, 0x52, 0xa5, 0x6d, 0x3b, 0x87, 0x3c, + 0x36, 0x2f, 0xc5, 0x69, 0xb2, 0x58, 0xe6, 0x38, 0x0b, 0xc3, 0xac, 0x71, 0x24, 0x1d, 0x9b, 0x2b, + 0x00, 0xae, 0x83, 0xdc, 0x83, 0x4a, 0x0d, 0x55, 0x1b, 0xd9, 0x54, 0x0f, 0x2b, 0x6d, 0x61, 0x91, + 0x2e, 0x2b, 0xb9, 0x74, 0xb4, 0xda, 0x30, 0x6f, 0x85, 0xa1, 0x36, 0xd2, 0x23, 0x52, 0x36, 0x68, + 0x92, 0x75, 0x45, 0xdb, 0x1e, 0x8c, 0xb7, 0x11, 0x8e, 0x7b, 0x54, 0x63, 0x57, 0x36, 0x4a, 0x94, + 0x58, 0x8c, 0xbd, 0x32, 0x8b, 0xc1, 0xe8, 0x85, 0x8d, 0xb5, 0xc5, 0x43, 0xf3, 0x09, 0x08, 0x06, + 0x2a, 0x24, 0xac, 0x80, 0x54, 0xa1, 0x0c, 0x1f, 0xdc, 0xb4, 0x9b, 0x68, 0xe6, 0x4d, 0x18, 0x97, + 0xcd, 0x63, 0x9e, 0x86, 0x21, 0xcf, 0xb7, 0xdb, 0x3e, 0x89, 0xc2, 0x21, 0x8b, 0x1e, 0x98, 0x06, + 0xe8, 0xc8, 0xa9, 0x91, 0x2a, 0x37, 0x64, 0xe1, 0x8f, 0xe6, 0x2f, 0x84, 0x17, 0xac, 0x93, 0x0b, + 0xbe, 0xd8, 0xed, 0x51, 0x89, 0x59, 0xbd, 0xee, 0x99, 0x1b, 0x30, 0x26, 0x5d, 0xc0, 0xa0, 0xa7, + 0xce, 0xfd, 0x59, 0x38, 0x13, 0x49, 0x6d, 0xbe, 0x04, 0xa7, 0x3b, 0x4e, 0xdd, 0xf1, 0x51, 0xbb, + 0xd5, 0x46, 0x38, 0x62, 0xe9, 0xa9, 0xb2, 0xff, 0x75, 0xa4, 0x47, 0xcc, 0xed, 0x89, 0xd2, 0x94, + 0xc5, 0x9a, 0xea, 0x74, 0x0f, 0x2e, 0x8c, 0xa6, 0xbe, 0x3f, 0x62, 0xbc, 0xf5, 0xd6, 0x5b, 0x6f, + 0x25, 0x72, 0x9f, 0x1d, 0x86, 0xd3, 0x51, 0x39, 0x13, 0x99, 0xbe, 0xd3, 0x30, 0xec, 0x74, 0x9a, + 0xfb, 0xa8, 0x4d, 0x8c, 0x34, 0x64, 0xb1, 0x23, 0xb3, 0x00, 0x43, 0x0d, 0x7b, 0x1f, 0x35, 0xb2, + 0xc9, 0x73, 0xda, 0xfc, 0xf8, 0xd2, 0x47, 0x06, 0xca, 0xca, 0xc5, 0x75, 0x0c, 0xb1, 0x28, 0xd2, + 0x7c, 0x0e, 0x92, 0xac, 0x44, 0x63, 0x86, 0x85, 0xc1, 0x18, 0x70, 0x2e, 0x59, 0x04, 0x67, 0x3e, + 0x06, 0xa3, 0xf8, 0x7f, 0x1a, 0x1b, 0xc3, 0x44, 0xe7, 0x14, 0x1e, 0xc0, 0x71, 0x61, 0xce, 0x40, + 0x8a, 0xa4, 0x49, 0x0d, 0xf1, 0xa5, 0x2d, 0x38, 0xc6, 0x81, 0x55, 0x43, 0x07, 0x76, 0xa7, 0xe1, + 0x57, 0x5e, 0xb3, 0x1b, 0x1d, 0x44, 0x02, 0x7e, 0xd4, 0xca, 0xb0, 0xc1, 0x4f, 0xe2, 0x31, 0x73, + 0x0e, 0xd2, 0x34, 0xab, 0xea, 0x4e, 0x0d, 0xbd, 0x41, 0xaa, 0xe7, 0x90, 0x45, 0x13, 0x6d, 0x0d, + 0x8f, 0xe0, 0xd3, 0xbf, 0xe2, 0xb9, 0x0e, 0x0f, 0x4d, 0x72, 0x0a, 0x3c, 0x40, 0x4e, 0x7f, 0x43, + 0x2d, 0xdc, 0x8f, 0x47, 0x5f, 0x9e, 0x1a, 0x53, 0xb9, 0x6f, 0x24, 0x20, 0x49, 0xea, 0xc5, 0x04, + 0xa4, 0x77, 0xef, 0x6d, 0x97, 0x2b, 0x2b, 0x5b, 0x7b, 0xc5, 0xf5, 0xb2, 0xa1, 0x99, 0xe3, 0x00, + 0x64, 0x60, 0x75, 0x7d, 0xab, 0xb0, 0x6b, 0x24, 0x82, 0xe3, 0xb5, 0xcd, 0xdd, 0xeb, 0xcb, 0x86, + 0x1e, 0x00, 0xf6, 0xe8, 0x40, 0x52, 0x14, 0xb8, 0xba, 0x64, 0x0c, 0x99, 0x06, 0x64, 0x28, 0xc1, + 0xda, 0x4b, 0xe5, 0x95, 0xeb, 0xcb, 0xc6, 0xb0, 0x3c, 0x72, 0x75, 0xc9, 0x18, 0x31, 0xc7, 0x60, + 0x94, 0x8c, 0x14, 0xb7, 0xb6, 0xd6, 0x8d, 0x54, 0xc0, 0xb9, 0xb3, 0x6b, 0xad, 0x6d, 0xde, 0x31, + 0x46, 0x03, 0xce, 0x3b, 0xd6, 0xd6, 0xde, 0xb6, 0x01, 0x01, 0xc3, 0x46, 0x79, 0x67, 0xa7, 0x70, + 0xa7, 0x6c, 0xa4, 0x03, 0x89, 0xe2, 0xbd, 0xdd, 0xf2, 0x8e, 0x91, 0x91, 0xd4, 0xba, 0xba, 0x64, + 0x8c, 0x05, 0xa7, 0x28, 0x6f, 0xee, 0x6d, 0x18, 0xe3, 0xe6, 0x24, 0x8c, 0xd1, 0x53, 0x70, 0x25, + 0x26, 0x94, 0xa1, 0xeb, 0xcb, 0x86, 0x11, 0x2a, 0x42, 0x59, 0x26, 0xa5, 0x81, 0xeb, 0xcb, 0x86, + 0x99, 0x2b, 0xc1, 0x10, 0x89, 0x2e, 0xd3, 0x84, 0xf1, 0xf5, 0x42, 0xb1, 0xbc, 0x5e, 0xd9, 0xda, + 0xde, 0x5d, 0xdb, 0xda, 0x2c, 0xac, 0x1b, 0x5a, 0x38, 0x66, 0x95, 0x3f, 0xb1, 0xb7, 0x66, 0x95, + 0x57, 0x8c, 0x84, 0x38, 0xb6, 0x5d, 0x2e, 0xec, 0x96, 0x57, 0x0c, 0x3d, 0x57, 0x85, 0xd3, 0x51, + 0x75, 0x32, 0x32, 0x33, 0x04, 0x17, 0x27, 0x7a, 0xb8, 0x98, 0x70, 0x75, 0xb9, 0xf8, 0xbb, 0x09, + 0x98, 0x8a, 0x58, 0x2b, 0x22, 0x4f, 0xf2, 0x3c, 0x0c, 0xd1, 0x10, 0xa5, 0xab, 0xe7, 0xd3, 0x91, + 0x8b, 0x0e, 0x09, 0xd8, 0xae, 0x15, 0x94, 0xe0, 0xc4, 0x0e, 0x42, 0xef, 0xd1, 0x41, 0x60, 0x8a, + 0xae, 0x9a, 0xfe, 0xff, 0x77, 0xd5, 0x74, 0xba, 0xec, 0x5d, 0x1f, 0x64, 0xd9, 0x23, 0x63, 0x27, + 0xab, 0xed, 0x43, 0x11, 0xb5, 0xfd, 0x36, 0x4c, 0x76, 0x11, 0x0d, 0x5c, 0x63, 0x3f, 0xad, 0x41, + 0xb6, 0x97, 0x71, 0x62, 0x2a, 0x5d, 0x42, 0xaa, 0x74, 0xb7, 0x55, 0x0b, 0x9e, 0xef, 0xed, 0x84, + 0x2e, 0x5f, 0x7f, 0x45, 0x83, 0xe9, 0xe8, 0x4e, 0x31, 0x52, 0x87, 0xe7, 0x60, 0xb8, 0x89, 0xfc, + 0x23, 0x97, 0x77, 0x4b, 0x17, 0x23, 0xd6, 0x60, 0x3c, 0xad, 0x3a, 0x9b, 0xa1, 0xc4, 0x45, 0x5c, + 0xef, 0xd5, 0xee, 0x51, 0x6d, 0xba, 0x34, 0xfd, 0x95, 0x04, 0x9c, 0x89, 0x24, 0x8f, 0x54, 0xf4, + 0x71, 0x80, 0xba, 0xd3, 0xea, 0xf8, 0xb4, 0x23, 0xa2, 0x05, 0x76, 0x94, 0x8c, 0x90, 0xe2, 0x85, + 0x8b, 0x67, 0xc7, 0x0f, 0xe6, 0x75, 0x32, 0x0f, 0x74, 0x88, 0x08, 0xdc, 0x0c, 0x15, 0x4d, 0x12, + 0x45, 0x67, 0x7b, 0x5c, 0x69, 0x57, 0x60, 0x5e, 0x06, 0xa3, 0xda, 0xa8, 0x23, 0xc7, 0xaf, 0x78, + 0x7e, 0x1b, 0xd9, 0xcd, 0xba, 0x73, 0x48, 0x56, 0x90, 0x54, 0x7e, 0xe8, 0xc0, 0x6e, 0x78, 0xc8, + 0x9a, 0xa0, 0xd3, 0x3b, 0x7c, 0x16, 0x23, 0x48, 0x00, 0xb5, 0x05, 0xc4, 0xb0, 0x84, 0xa0, 0xd3, + 0x01, 0x22, 0xf7, 0x3b, 0x29, 0x48, 0x0b, 0x7d, 0xb5, 0x79, 0x1e, 0x32, 0xaf, 0xd8, 0xaf, 0xd9, + 0x15, 0x7e, 0xaf, 0x44, 0x2d, 0x91, 0xc6, 0x63, 0xdb, 0xec, 0x7e, 0xe9, 0x32, 0x9c, 0x26, 0x22, + 0x6e, 0xc7, 0x47, 0xed, 0x4a, 0xb5, 0x61, 0x7b, 0x1e, 0x31, 0x5a, 0x8a, 0x88, 0x9a, 0x78, 0x6e, + 0x0b, 0x4f, 0x95, 0xf8, 0x8c, 0x79, 0x0d, 0xa6, 0x08, 0xa2, 0xd9, 0x69, 0xf8, 0xf5, 0x56, 0x03, + 0x55, 0xf0, 0xdd, 0x9b, 0x47, 0x56, 0x92, 0x40, 0xb3, 0x49, 0x2c, 0xb1, 0xc1, 0x04, 0xb0, 0x46, + 0x9e, 0xb9, 0x02, 0x8f, 0x13, 0xd8, 0x21, 0x72, 0x50, 0xdb, 0xf6, 0x51, 0x05, 0xfd, 0x62, 0xc7, + 0x6e, 0x78, 0x15, 0xdb, 0xa9, 0x55, 0x8e, 0x6c, 0xef, 0x28, 0x7b, 0x1a, 0x13, 0x14, 0x13, 0x59, + 0xcd, 0x7a, 0x14, 0x0b, 0xde, 0x61, 0x72, 0x65, 0x22, 0x56, 0x70, 0x6a, 0x2f, 0xd8, 0xde, 0x91, + 0x99, 0x87, 0x69, 0xc2, 0xe2, 0xf9, 0xed, 0xba, 0x73, 0x58, 0xa9, 0x1e, 0xa1, 0xea, 0xab, 0x95, + 0x8e, 0x7f, 0x70, 0x33, 0xfb, 0x98, 0x78, 0x7e, 0xa2, 0xe1, 0x0e, 0x91, 0x29, 0x61, 0x91, 0x3d, + 0xff, 0xe0, 0xa6, 0xb9, 0x03, 0x19, 0xec, 0x8c, 0x66, 0xfd, 0x4d, 0x54, 0x39, 0x70, 0xdb, 0x64, + 0x69, 0x1c, 0x8f, 0x28, 0x4d, 0x82, 0x05, 0x17, 0xb7, 0x18, 0x60, 0xc3, 0xad, 0xa1, 0xfc, 0xd0, + 0xce, 0x76, 0xb9, 0xbc, 0x62, 0xa5, 0x39, 0xcb, 0xaa, 0xdb, 0xc6, 0x01, 0x75, 0xe8, 0x06, 0x06, + 0x4e, 0xd3, 0x80, 0x3a, 0x74, 0xb9, 0x79, 0xaf, 0xc1, 0x54, 0xb5, 0x4a, 0xaf, 0xb9, 0x5e, 0xad, + 0xb0, 0x7b, 0x2c, 0x2f, 0x6b, 0x48, 0xc6, 0xaa, 0x56, 0xef, 0x50, 0x01, 0x16, 0xe3, 0x9e, 0x79, + 0x0b, 0xce, 0x84, 0xc6, 0x12, 0x81, 0x93, 0x5d, 0x57, 0xa9, 0x42, 0xaf, 0xc1, 0x54, 0xeb, 0xb8, + 0x1b, 0x68, 0x4a, 0x67, 0x6c, 0x1d, 0xab, 0xb0, 0x1b, 0x70, 0xba, 0x75, 0xd4, 0xea, 0xc6, 0x2d, + 0x88, 0x38, 0xb3, 0x75, 0xd4, 0x52, 0x81, 0x4f, 0x92, 0x1b, 0xee, 0x36, 0xaa, 0xda, 0x3e, 0xaa, + 0x65, 0x1f, 0x11, 0xc5, 0x85, 0x09, 0xf3, 0x12, 0x18, 0xd5, 0x6a, 0x05, 0x39, 0xf6, 0x7e, 0x03, + 0x55, 0xec, 0x36, 0x72, 0x6c, 0x2f, 0x3b, 0x27, 0x0a, 0x8f, 0x57, 0xab, 0x65, 0x32, 0x5b, 0x20, + 0x93, 0xe6, 0x02, 0x4c, 0xba, 0xfb, 0xaf, 0x54, 0x69, 0x48, 0x56, 0x5a, 0x6d, 0x74, 0x50, 0x7f, + 0x23, 0x7b, 0x81, 0xd8, 0x77, 0x02, 0x4f, 0x90, 0x80, 0xdc, 0x26, 0xc3, 0xe6, 0xd3, 0x60, 0x54, + 0xbd, 0x23, 0xbb, 0xdd, 0x22, 0x35, 0xd9, 0x6b, 0xd9, 0x55, 0x94, 0x7d, 0x92, 0x8a, 0xd2, 0xf1, + 0x4d, 0x3e, 0x8c, 0x53, 0xc2, 0x7b, 0xbd, 0x7e, 0xe0, 0x73, 0xc6, 0xa7, 0x68, 0x4a, 0x90, 0x31, + 0xc6, 0x36, 0x0f, 0x06, 0x36, 0x85, 0x74, 0xe2, 0x79, 0x22, 0x36, 0xde, 0x3a, 0x6a, 0x89, 0xe7, + 0x7d, 0x02, 0xc6, 0xb0, 0x64, 0x78, 0xd2, 0xa7, 0x69, 0x43, 0xd6, 0x3a, 0x12, 0xce, 0xf8, 0xa1, + 0xf5, 0xc6, 0xb9, 0x3c, 0x64, 0xc4, 0xf8, 0x34, 0x47, 0x81, 0x46, 0xa8, 0xa1, 0xe1, 0x66, 0xa5, + 0xb4, 0xb5, 0x82, 0xdb, 0x8c, 0x4f, 0x95, 0x8d, 0x04, 0x6e, 0x77, 0xd6, 0xd7, 0x76, 0xcb, 0x15, + 0x6b, 0x6f, 0x73, 0x77, 0x6d, 0xa3, 0x6c, 0xe8, 0x62, 0x5f, 0xfd, 0xcd, 0x04, 0x8c, 0xcb, 0xb7, + 0x48, 0xe6, 0xc7, 0xe0, 0x11, 0xbe, 0x9f, 0xe1, 0x21, 0xbf, 0xf2, 0x7a, 0xbd, 0x4d, 0x52, 0xa6, + 0x69, 0xd3, 0xe5, 0x2b, 0x70, 0xda, 0x69, 0x26, 0xb5, 0x83, 0xfc, 0x17, 0xeb, 0x6d, 0x9c, 0x10, + 0x4d, 0xdb, 0x37, 0xd7, 0x61, 0xce, 0x71, 0x2b, 0x9e, 0x6f, 0x3b, 0x35, 0xbb, 0x5d, 0xab, 0x84, + 0x3b, 0x49, 0x15, 0xbb, 0x5a, 0x45, 0x9e, 0xe7, 0xd2, 0xa5, 0x2a, 0x60, 0x39, 0xeb, 0xb8, 0x3b, + 0x4c, 0x38, 0xac, 0xe1, 0x05, 0x26, 0xaa, 0x04, 0x98, 0xde, 0x2b, 0xc0, 0x1e, 0x83, 0xd1, 0xa6, + 0xdd, 0xaa, 0x20, 0xc7, 0x6f, 0x1f, 0x93, 0xc6, 0x38, 0x65, 0xa5, 0x9a, 0x76, 0xab, 0x8c, 0x8f, + 0x7f, 0x3a, 0xf7, 0x27, 0xff, 0x59, 0x87, 0x8c, 0xd8, 0x1c, 0xe3, 0x7b, 0x8d, 0x2a, 0x59, 0x47, + 0x34, 0x52, 0x69, 0x9e, 0xe8, 0xdb, 0x4a, 0x2f, 0x96, 0xf0, 0x02, 0x93, 0x1f, 0xa6, 0x2d, 0xab, + 0x45, 0x91, 0x78, 0x71, 0xc7, 0xb5, 0x05, 0xd1, 0x16, 0x21, 0x65, 0xb1, 0x23, 0xf3, 0x0e, 0x0c, + 0xbf, 0xe2, 0x11, 0xee, 0x61, 0xc2, 0x7d, 0xa1, 0x3f, 0xf7, 0xdd, 0x1d, 0x42, 0x3e, 0x7a, 0x77, + 0xa7, 0xb2, 0xb9, 0x65, 0x6d, 0x14, 0xd6, 0x2d, 0x06, 0x37, 0x1f, 0x85, 0x64, 0xc3, 0x7e, 0xf3, + 0x58, 0x5e, 0x8a, 0xc8, 0xd0, 0xa0, 0x86, 0x7f, 0x14, 0x92, 0xaf, 0x23, 0xfb, 0x55, 0x79, 0x01, + 0x20, 0x43, 0x1f, 0x62, 0xe8, 0x5f, 0x82, 0x21, 0x62, 0x2f, 0x13, 0x80, 0x59, 0xcc, 0x38, 0x65, + 0xa6, 0x20, 0x59, 0xda, 0xb2, 0x70, 0xf8, 0x1b, 0x90, 0xa1, 0xa3, 0x95, 0xed, 0xb5, 0x72, 0xa9, + 0x6c, 0x24, 0x72, 0xd7, 0x60, 0x98, 0x1a, 0x01, 0xa7, 0x46, 0x60, 0x06, 0xe3, 0x14, 0x3b, 0x64, + 0x1c, 0x1a, 0x9f, 0xdd, 0xdb, 0x28, 0x96, 0x2d, 0x23, 0x21, 0xba, 0xd7, 0x83, 0x8c, 0xd8, 0x17, + 0xff, 0x74, 0x62, 0xea, 0xf7, 0x35, 0x48, 0x0b, 0x7d, 0x2e, 0x6e, 0x50, 0xec, 0x46, 0xc3, 0x7d, + 0xbd, 0x62, 0x37, 0xea, 0xb6, 0xc7, 0x82, 0x02, 0xc8, 0x50, 0x01, 0x8f, 0x0c, 0xea, 0xb4, 0x9f, + 0x8a, 0xf2, 0x5f, 0xd4, 0xc0, 0x50, 0x5b, 0x4c, 0x45, 0x41, 0xed, 0x67, 0xaa, 0xe0, 0xe7, 0x35, + 0x18, 0x97, 0xfb, 0x4a, 0x45, 0xbd, 0xf3, 0x3f, 0x53, 0xf5, 0xbe, 0x93, 0x80, 0x31, 0xa9, 0x9b, + 0x1c, 0x54, 0xbb, 0x5f, 0x84, 0xc9, 0x7a, 0x0d, 0x35, 0x5b, 0xae, 0x8f, 0x9c, 0xea, 0x71, 0xa5, + 0x81, 0x5e, 0x43, 0x8d, 0x6c, 0x8e, 0x14, 0x8a, 0x4b, 0xfd, 0xfb, 0xd5, 0xc5, 0xb5, 0x10, 0xb7, + 0x8e, 0x61, 0xf9, 0xa9, 0xb5, 0x95, 0xf2, 0xc6, 0xf6, 0xd6, 0x6e, 0x79, 0xb3, 0x74, 0xaf, 0xb2, + 0xb7, 0xf9, 0xf1, 0xcd, 0xad, 0x17, 0x37, 0x2d, 0xa3, 0xae, 0x88, 0x7d, 0x88, 0xa9, 0xbe, 0x0d, + 0x86, 0xaa, 0x94, 0xf9, 0x08, 0x44, 0xa9, 0x65, 0x9c, 0x32, 0xa7, 0x60, 0x62, 0x73, 0xab, 0xb2, + 0xb3, 0xb6, 0x52, 0xae, 0x94, 0x57, 0x57, 0xcb, 0xa5, 0xdd, 0x1d, 0xba, 0x03, 0x11, 0x48, 0xef, + 0xca, 0x49, 0xfd, 0x39, 0x1d, 0xa6, 0x22, 0x34, 0x31, 0x0b, 0xec, 0xde, 0x81, 0xde, 0xce, 0x3c, + 0x33, 0x88, 0xf6, 0x8b, 0x78, 0xc9, 0xdf, 0xb6, 0xdb, 0x3e, 0xbb, 0xd5, 0x78, 0x1a, 0xb0, 0x95, + 0x1c, 0xbf, 0x7e, 0x50, 0x47, 0x6d, 0xb6, 0x61, 0x43, 0x6f, 0x28, 0x26, 0xc2, 0x71, 0xba, 0x67, + 0xf3, 0x51, 0x30, 0x5b, 0xae, 0x57, 0xf7, 0xeb, 0xaf, 0xa1, 0x4a, 0xdd, 0xe1, 0xbb, 0x3b, 0xf8, + 0x06, 0x23, 0x69, 0x19, 0x7c, 0x66, 0xcd, 0xf1, 0x03, 0x69, 0x07, 0x1d, 0xda, 0x8a, 0x34, 0x2e, + 0xe0, 0xba, 0x65, 0xf0, 0x99, 0x40, 0xfa, 0x3c, 0x64, 0x6a, 0x6e, 0x07, 0x77, 0x5d, 0x54, 0x0e, + 0xaf, 0x17, 0x9a, 0x95, 0xa6, 0x63, 0x81, 0x08, 0xeb, 0xa7, 0xc3, 0x6d, 0xa5, 0x8c, 0x95, 0xa6, + 0x63, 0x54, 0xe4, 0x29, 0x98, 0xb0, 0x0f, 0x0f, 0xdb, 0x98, 0x9c, 0x13, 0xd1, 0x3b, 0x84, 0xf1, + 0x60, 0x98, 0x08, 0xce, 0xdc, 0x85, 0x14, 0xb7, 0x03, 0x5e, 0x92, 0xb1, 0x25, 0x2a, 0x2d, 0x7a, + 0xdb, 0x9b, 0x98, 0x1f, 0xb5, 0x52, 0x0e, 0x9f, 0x3c, 0x0f, 0x99, 0xba, 0x57, 0x09, 0x77, 0xc9, + 0x13, 0xe7, 0x12, 0xf3, 0x29, 0x2b, 0x5d, 0xf7, 0x82, 0x1d, 0xc6, 0xdc, 0x57, 0x12, 0x30, 0x2e, + 0xef, 0xf2, 0x9b, 0x2b, 0x90, 0x6a, 0xb8, 0x55, 0x9b, 0x84, 0x16, 0x7d, 0xc4, 0x34, 0x1f, 0xf3, + 0x60, 0x60, 0x71, 0x9d, 0xc9, 0x5b, 0x01, 0x72, 0xe6, 0xdf, 0x6b, 0x90, 0xe2, 0xc3, 0xe6, 0x34, + 0x24, 0x5b, 0xb6, 0x7f, 0x44, 0xe8, 0x86, 0x8a, 0x09, 0x43, 0xb3, 0xc8, 0x31, 0x1e, 0xf7, 0x5a, + 0xb6, 0x43, 0x42, 0x80, 0x8d, 0xe3, 0x63, 0xec, 0xd7, 0x06, 0xb2, 0x6b, 0xe4, 0xf6, 0xc3, 0x6d, + 0x36, 0x91, 0xe3, 0x7b, 0xdc, 0xaf, 0x6c, 0xbc, 0xc4, 0x86, 0xcd, 0x8f, 0xc0, 0xa4, 0xdf, 0xb6, + 0xeb, 0x0d, 0x49, 0x36, 0x49, 0x64, 0x0d, 0x3e, 0x11, 0x08, 0xe7, 0xe1, 0x51, 0xce, 0x5b, 0x43, + 0xbe, 0x5d, 0x3d, 0x42, 0xb5, 0x10, 0x34, 0x4c, 0xb6, 0x19, 0x1e, 0x61, 0x02, 0x2b, 0x6c, 0x9e, + 0x63, 0x73, 0x7f, 0xa8, 0xc1, 0x24, 0xbf, 0x61, 0xaa, 0x05, 0xc6, 0xda, 0x00, 0xb0, 0x1d, 0xc7, + 0xf5, 0x45, 0x73, 0x75, 0x87, 0x72, 0x17, 0x6e, 0xb1, 0x10, 0x80, 0x2c, 0x81, 0x60, 0xa6, 0x09, + 0x10, 0xce, 0xf4, 0x34, 0xdb, 0x1c, 0xa4, 0xd9, 0x23, 0x1c, 0xf2, 0x1c, 0x90, 0xde, 0x62, 0x03, + 0x1d, 0xc2, 0x77, 0x56, 0xe6, 0x69, 0x18, 0xda, 0x47, 0x87, 0x75, 0x87, 0x6d, 0xcc, 0xd2, 0x03, + 0xbe, 0x11, 0x92, 0x0c, 0x36, 0x42, 0x8a, 0x2f, 0xc3, 0x54, 0xd5, 0x6d, 0xaa, 0xea, 0x16, 0x0d, + 0xe5, 0x36, 0xdf, 0x7b, 0x41, 0xfb, 0x14, 0x84, 0x2d, 0xe6, 0x8f, 0x35, 0xed, 0xef, 0x25, 0xf4, + 0x3b, 0xdb, 0xc5, 0xdf, 0x4a, 0xcc, 0xdc, 0xa1, 0xd0, 0x6d, 0x7e, 0xa5, 0x16, 0x3a, 0x68, 0xa0, + 0x2a, 0xd6, 0x1e, 0x7e, 0xed, 0x29, 0x78, 0xe6, 0xb0, 0xee, 0x1f, 0x75, 0xf6, 0x17, 0xab, 0x6e, + 0xf3, 0xd2, 0xa1, 0x7b, 0xe8, 0x86, 0x8f, 0x3e, 0xf1, 0x11, 0x39, 0x20, 0x9f, 0xd8, 0xe3, 0xcf, + 0xd1, 0x60, 0x74, 0x26, 0xf6, 0x59, 0x69, 0x7e, 0x13, 0xa6, 0x98, 0x70, 0x85, 0x3c, 0x7f, 0xa1, + 0x77, 0x11, 0x66, 0xdf, 0x3d, 0xac, 0xec, 0x6f, 0x7f, 0x8f, 0x2c, 0xd7, 0xd6, 0x24, 0x83, 0xe2, + 0x39, 0x7a, 0xa3, 0x91, 0xb7, 0xe0, 0x8c, 0xc4, 0x47, 0x53, 0x13, 0xb5, 0x63, 0x18, 0xbf, 0xc9, + 0x18, 0xa7, 0x04, 0xc6, 0x1d, 0x06, 0xcd, 0x97, 0x60, 0xec, 0x24, 0x5c, 0xff, 0x86, 0x71, 0x65, + 0x90, 0x48, 0x72, 0x07, 0x26, 0x08, 0x49, 0xb5, 0xe3, 0xf9, 0x6e, 0x93, 0xd4, 0xbd, 0xfe, 0x34, + 0xff, 0xf6, 0x7b, 0x34, 0x57, 0xc6, 0x31, 0xac, 0x14, 0xa0, 0xf2, 0x79, 0x20, 0x8f, 0x9c, 0x6a, + 0xa8, 0xda, 0x88, 0x61, 0xb8, 0xcf, 0x14, 0x09, 0xe4, 0xf3, 0x9f, 0x84, 0xd3, 0xf8, 0x33, 0x29, + 0x4b, 0xa2, 0x26, 0xf1, 0x1b, 0x5e, 0xd9, 0x3f, 0xfc, 0x34, 0x4d, 0xc7, 0xa9, 0x80, 0x40, 0xd0, + 0x49, 0xf0, 0xe2, 0x21, 0xf2, 0x7d, 0xd4, 0xf6, 0x2a, 0x76, 0x23, 0x4a, 0x3d, 0x61, 0xc7, 0x20, + 0xfb, 0xeb, 0x3f, 0x90, 0xbd, 0x78, 0x87, 0x22, 0x0b, 0x8d, 0x46, 0x7e, 0x0f, 0x1e, 0x89, 0x88, + 0x8a, 0x01, 0x38, 0x3f, 0xc7, 0x38, 0x4f, 0x77, 0x45, 0x06, 0xa6, 0xdd, 0x06, 0x3e, 0x1e, 0xf8, + 0x72, 0x00, 0xce, 0xbf, 0xcb, 0x38, 0x4d, 0x86, 0xe5, 0x2e, 0xc5, 0x8c, 0x77, 0x61, 0xf2, 0x35, + 0xd4, 0xde, 0x77, 0x3d, 0xb6, 0x4b, 0x33, 0x00, 0xdd, 0xe7, 0x19, 0xdd, 0x04, 0x03, 0x92, 0x6d, + 0x1b, 0xcc, 0x75, 0x0b, 0x52, 0x07, 0x76, 0x15, 0x0d, 0x40, 0xf1, 0x05, 0x46, 0x31, 0x82, 0xe5, + 0x31, 0xb4, 0x00, 0x99, 0x43, 0x97, 0xad, 0x4c, 0xf1, 0xf0, 0x2f, 0x32, 0x78, 0x9a, 0x63, 0x18, + 0x45, 0xcb, 0x6d, 0x75, 0x1a, 0x78, 0xd9, 0x8a, 0xa7, 0xf8, 0x12, 0xa7, 0xe0, 0x18, 0x46, 0x71, + 0x02, 0xb3, 0xbe, 0xcd, 0x29, 0x3c, 0xc1, 0x9e, 0xcf, 0x43, 0xda, 0x75, 0x1a, 0xc7, 0xae, 0x33, + 0x88, 0x12, 0x5f, 0x66, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x36, 0x8c, 0x0e, 0xea, 0x88, 0xdf, 0xf8, + 0x01, 0x4f, 0x0f, 0xee, 0x81, 0x3b, 0x30, 0xc1, 0x0b, 0x54, 0xdd, 0x75, 0x06, 0xa0, 0xf8, 0x07, + 0x8c, 0x62, 0x5c, 0x80, 0xb1, 0xcb, 0xf0, 0x91, 0xe7, 0x1f, 0xa2, 0x41, 0x48, 0xbe, 0xc2, 0x2f, + 0x83, 0x41, 0x98, 0x29, 0xf7, 0x91, 0x53, 0x3d, 0x1a, 0x8c, 0xe1, 0xab, 0xdc, 0x94, 0x1c, 0x83, + 0x29, 0x4a, 0x30, 0xd6, 0xb4, 0xdb, 0xde, 0x91, 0xdd, 0x18, 0xc8, 0x1d, 0xbf, 0xc9, 0x38, 0x32, + 0x01, 0x88, 0x59, 0xa4, 0xe3, 0x9c, 0x84, 0xe6, 0xb7, 0xb8, 0x45, 0x04, 0x18, 0x4b, 0x3d, 0xcf, + 0x27, 0x5b, 0x5a, 0x27, 0x61, 0xfb, 0x87, 0x3c, 0xf5, 0x28, 0x76, 0x43, 0x64, 0xbc, 0x0d, 0xa3, + 0x5e, 0xfd, 0xcd, 0x81, 0x68, 0xfe, 0x11, 0xf7, 0x34, 0x01, 0x60, 0xf0, 0x3d, 0x78, 0x34, 0x72, + 0x99, 0x18, 0x80, 0xec, 0x1f, 0x33, 0xb2, 0xe9, 0x88, 0xa5, 0x82, 0x95, 0x84, 0x93, 0x52, 0xfe, + 0x13, 0x5e, 0x12, 0x90, 0xc2, 0xb5, 0x8d, 0xef, 0x15, 0x3c, 0xfb, 0xe0, 0x64, 0x56, 0xfb, 0xa7, + 0xdc, 0x6a, 0x14, 0x2b, 0x59, 0x6d, 0x17, 0xa6, 0x19, 0xe3, 0xc9, 0xfc, 0xfa, 0x35, 0x5e, 0x58, + 0x29, 0x7a, 0x4f, 0xf6, 0xee, 0xcb, 0x30, 0x13, 0x98, 0x93, 0x37, 0xa5, 0x5e, 0xa5, 0x69, 0xb7, + 0x06, 0x60, 0xfe, 0x6d, 0xc6, 0xcc, 0x2b, 0x7e, 0xd0, 0xd5, 0x7a, 0x1b, 0x76, 0x0b, 0x93, 0xbf, + 0x04, 0x59, 0x4e, 0xde, 0x71, 0xda, 0xa8, 0xea, 0x1e, 0x3a, 0xf5, 0x37, 0x51, 0x6d, 0x00, 0xea, + 0xaf, 0x2b, 0xae, 0xda, 0x13, 0xe0, 0x98, 0x79, 0x0d, 0x8c, 0xa0, 0x57, 0xa9, 0xd4, 0x9b, 0x2d, + 0xb7, 0xed, 0xc7, 0x30, 0xfe, 0x0e, 0xf7, 0x54, 0x80, 0x5b, 0x23, 0xb0, 0x7c, 0x19, 0xc6, 0xc9, + 0xe1, 0xa0, 0x21, 0xf9, 0xbb, 0x8c, 0x68, 0x2c, 0x44, 0xb1, 0xc2, 0x51, 0x75, 0x9b, 0x2d, 0xbb, + 0x3d, 0x48, 0xfd, 0xfb, 0x67, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, 0xfe, 0x71, 0x0b, 0xe1, 0xd5, + 0x7e, 0x00, 0x86, 0x6f, 0xf0, 0xc2, 0xc1, 0x31, 0x8c, 0x82, 0x37, 0x0c, 0x03, 0x50, 0xfc, 0x73, + 0x4e, 0xc1, 0x31, 0x98, 0xe2, 0x13, 0xe1, 0x42, 0xdb, 0x46, 0x87, 0x75, 0xcf, 0x6f, 0xd3, 0x56, + 0xb8, 0x3f, 0xd5, 0xef, 0xfd, 0x40, 0x6e, 0xc2, 0x2c, 0x01, 0x9a, 0xbf, 0x0b, 0x13, 0x4a, 0x8b, + 0x61, 0xc6, 0xbd, 0xbf, 0x92, 0xfd, 0xf3, 0x3f, 0x62, 0xc5, 0x48, 0xee, 0x30, 0xf2, 0xeb, 0xd8, + 0xef, 0x72, 0x1f, 0x10, 0x4f, 0xf6, 0xe9, 0x1f, 0x05, 0xae, 0x97, 0xda, 0x80, 0xfc, 0x2a, 0x8c, + 0x49, 0x3d, 0x40, 0x3c, 0xd5, 0x5f, 0x60, 0x54, 0x19, 0xb1, 0x05, 0xc8, 0x5f, 0x83, 0x24, 0x5e, + 0xcf, 0xe3, 0xe1, 0x7f, 0x91, 0xc1, 0x89, 0x78, 0xfe, 0x59, 0x48, 0xf1, 0x75, 0x3c, 0x1e, 0xfa, + 0xcb, 0x0c, 0x1a, 0x40, 0x30, 0x9c, 0xaf, 0xe1, 0xf1, 0xf0, 0xbf, 0xc4, 0xe1, 0x1c, 0x82, 0xe1, + 0x83, 0x9b, 0xf0, 0x9d, 0xbf, 0x92, 0x64, 0x75, 0x98, 0xdb, 0xee, 0x36, 0x8c, 0xb0, 0xc5, 0x3b, + 0x1e, 0xfd, 0x2b, 0xec, 0xe4, 0x1c, 0x91, 0xbf, 0x01, 0x43, 0x03, 0x1a, 0xfc, 0xaf, 0x32, 0x28, + 0x95, 0xcf, 0x97, 0x20, 0x2d, 0x2c, 0xd8, 0xf1, 0xf0, 0xbf, 0xc6, 0xe0, 0x22, 0x0a, 0xab, 0xce, + 0x16, 0xec, 0x78, 0x82, 0xbf, 0xce, 0x55, 0x67, 0x08, 0x6c, 0x36, 0xbe, 0x56, 0xc7, 0xa3, 0xff, + 0x06, 0xb7, 0x3a, 0x87, 0xe4, 0x9f, 0x87, 0xd1, 0xa0, 0xfe, 0xc6, 0xe3, 0xff, 0x26, 0xc3, 0x87, + 0x18, 0x6c, 0x01, 0xa1, 0xfe, 0xc7, 0x53, 0xfc, 0x2d, 0x6e, 0x01, 0x01, 0x85, 0xd3, 0x48, 0x5d, + 0xd3, 0xe3, 0x99, 0x7e, 0x95, 0xa7, 0x91, 0xb2, 0xa4, 0x63, 0x6f, 0x92, 0x32, 0x18, 0x4f, 0xf1, + 0xb7, 0xb9, 0x37, 0x89, 0x3c, 0x56, 0x43, 0x5d, 0x24, 0xe3, 0x39, 0x7e, 0x8d, 0xab, 0xa1, 0xac, + 0x91, 0xf9, 0x6d, 0x30, 0xbb, 0x17, 0xc8, 0x78, 0xbe, 0xcf, 0x32, 0xbe, 0xc9, 0xae, 0xf5, 0x31, + 0xff, 0x22, 0x4c, 0x47, 0x2f, 0x8e, 0xf1, 0xac, 0xbf, 0xfe, 0x23, 0xe5, 0x76, 0x46, 0x5c, 0x1b, + 0xf3, 0xbb, 0x61, 0x95, 0x15, 0x17, 0xc6, 0x78, 0xda, 0xcf, 0xfd, 0x48, 0x2e, 0xb4, 0xe2, 0xba, + 0x98, 0x2f, 0x00, 0x84, 0x6b, 0x52, 0x3c, 0xd7, 0xe7, 0x19, 0x97, 0x00, 0xc2, 0xa9, 0xc1, 0x96, + 0xa4, 0x78, 0xfc, 0x17, 0x78, 0x6a, 0x30, 0x04, 0x4e, 0x0d, 0xbe, 0x1a, 0xc5, 0xa3, 0xbf, 0xc8, + 0x53, 0x83, 0x43, 0xf2, 0xb7, 0x21, 0xe5, 0x74, 0x1a, 0x0d, 0x1c, 0x5b, 0x66, 0xff, 0x57, 0xb2, + 0xb2, 0xff, 0xed, 0x27, 0x0c, 0xcc, 0x01, 0xf9, 0x6b, 0x30, 0x84, 0x9a, 0xfb, 0xa8, 0x16, 0x87, + 0xfc, 0xef, 0x3f, 0xe1, 0xf5, 0x04, 0x4b, 0xe7, 0x9f, 0x07, 0xa0, 0x37, 0xd3, 0xe4, 0x41, 0x51, + 0x0c, 0xf6, 0x7f, 0xfc, 0x84, 0xbd, 0x2c, 0x11, 0x42, 0x42, 0x02, 0xfa, 0xea, 0x45, 0x7f, 0x82, + 0x1f, 0xc8, 0x04, 0xe4, 0x06, 0xfc, 0x16, 0x8c, 0xbc, 0xe2, 0xb9, 0x8e, 0x6f, 0x1f, 0xc6, 0xa1, + 0xff, 0x27, 0x43, 0x73, 0x79, 0x6c, 0xb0, 0xa6, 0xdb, 0x46, 0xbe, 0x7d, 0xe8, 0xc5, 0x61, 0xff, + 0x17, 0xc3, 0x06, 0x00, 0x0c, 0xae, 0xda, 0x9e, 0x3f, 0xc8, 0x75, 0xff, 0x11, 0x07, 0x73, 0x00, + 0x56, 0x1a, 0x7f, 0x7e, 0x15, 0x1d, 0xc7, 0x61, 0x7f, 0xc8, 0x95, 0x66, 0xf2, 0xf9, 0x67, 0x61, + 0x14, 0x7f, 0xa4, 0x6f, 0x40, 0xc5, 0x80, 0xff, 0x37, 0x03, 0x87, 0x08, 0x7c, 0x66, 0xcf, 0xaf, + 0xf9, 0xf5, 0x78, 0x63, 0xff, 0x31, 0xf3, 0x34, 0x97, 0xcf, 0x17, 0x20, 0xed, 0xf9, 0xb5, 0x5a, + 0x87, 0x75, 0x34, 0x31, 0xf0, 0xff, 0xf3, 0x93, 0xe0, 0x26, 0x37, 0xc0, 0x14, 0xcb, 0xd1, 0xfb, + 0x75, 0x70, 0xc7, 0xbd, 0xe3, 0xd2, 0x9d, 0xba, 0x4f, 0xe5, 0xe2, 0xb7, 0xdc, 0xe0, 0xbf, 0x34, + 0xe0, 0x46, 0x4f, 0x31, 0xbc, 0xd0, 0x5c, 0xaa, 0xba, 0xcd, 0x7d, 0xd7, 0xbb, 0xb4, 0xef, 0xfa, + 0x47, 0x97, 0xfc, 0x23, 0x84, 0xc7, 0xd8, 0x1e, 0x5d, 0x12, 0x7f, 0x9e, 0x39, 0xd9, 0xc6, 0x1e, + 0x79, 0x6c, 0xbb, 0x59, 0xc7, 0xd7, 0xb6, 0x49, 0x76, 0xce, 0xcd, 0xb3, 0x30, 0x4c, 0xae, 0xf6, + 0x0a, 0x79, 0x3a, 0xa5, 0x15, 0x93, 0xf7, 0xdf, 0x9d, 0x3b, 0x65, 0xb1, 0xb1, 0x60, 0x76, 0x89, + 0x6c, 0x6d, 0x26, 0xa4, 0xd9, 0xa5, 0x60, 0xf6, 0x2a, 0xdd, 0xdd, 0x94, 0x66, 0xaf, 0x06, 0xb3, + 0xcb, 0x64, 0x9f, 0x53, 0x97, 0x66, 0x97, 0x83, 0xd9, 0x6b, 0x64, 0x2f, 0x7f, 0x4c, 0x9a, 0xbd, + 0x16, 0xcc, 0x5e, 0x27, 0x3b, 0xf8, 0x49, 0x69, 0xf6, 0x7a, 0x30, 0x7b, 0x83, 0x6c, 0xde, 0x4f, + 0x4a, 0xb3, 0x37, 0x82, 0xd9, 0x9b, 0x64, 0xd3, 0xde, 0x94, 0x66, 0x6f, 0x06, 0xb3, 0xb7, 0xc8, + 0x1b, 0x31, 0x23, 0xd2, 0xec, 0x2d, 0x73, 0x16, 0x46, 0xe8, 0x95, 0x5f, 0x26, 0x4f, 0x78, 0x27, + 0xd8, 0x34, 0x1f, 0x0c, 0xe7, 0xaf, 0x90, 0xb7, 0x5f, 0x86, 0xe5, 0xf9, 0x2b, 0xe1, 0xfc, 0x12, + 0x79, 0x11, 0xdf, 0x90, 0xe7, 0x97, 0xc2, 0xf9, 0xab, 0xd9, 0x31, 0xf2, 0x06, 0x90, 0x34, 0x7f, + 0x35, 0x9c, 0x5f, 0xce, 0x8e, 0xe3, 0x80, 0x97, 0xe7, 0x97, 0xc3, 0xf9, 0x6b, 0xd9, 0x89, 0x73, + 0xda, 0x7c, 0x46, 0x9e, 0xbf, 0x96, 0xfb, 0x25, 0xe2, 0x5e, 0x27, 0x74, 0xef, 0xb4, 0xec, 0xde, + 0xc0, 0xb1, 0xd3, 0xb2, 0x63, 0x03, 0x97, 0x4e, 0xcb, 0x2e, 0x0d, 0x9c, 0x39, 0x2d, 0x3b, 0x33, + 0x70, 0xe3, 0xb4, 0xec, 0xc6, 0xc0, 0x81, 0xd3, 0xb2, 0x03, 0x03, 0xd7, 0x4d, 0xcb, 0xae, 0x0b, + 0x9c, 0x36, 0x2d, 0x3b, 0x2d, 0x70, 0xd7, 0xb4, 0xec, 0xae, 0xc0, 0x51, 0x59, 0xc5, 0x51, 0xa1, + 0x8b, 0xb2, 0x8a, 0x8b, 0x42, 0xe7, 0x64, 0x15, 0xe7, 0x84, 0x6e, 0xc9, 0x2a, 0x6e, 0x09, 0x1d, + 0x92, 0x55, 0x1c, 0x12, 0xba, 0x22, 0xab, 0xb8, 0x22, 0x74, 0x02, 0xcb, 0x31, 0x0b, 0xb5, 0x22, + 0x72, 0x4c, 0xef, 0x9b, 0x63, 0x7a, 0xdf, 0x1c, 0xd3, 0xfb, 0xe6, 0x98, 0xde, 0x37, 0xc7, 0xf4, + 0xbe, 0x39, 0xa6, 0xf7, 0xcd, 0x31, 0xbd, 0x6f, 0x8e, 0xe9, 0x7d, 0x73, 0x4c, 0xef, 0x9f, 0x63, + 0x7a, 0x4c, 0x8e, 0xe9, 0x31, 0x39, 0xa6, 0xc7, 0xe4, 0x98, 0x1e, 0x93, 0x63, 0x7a, 0x4c, 0x8e, + 0xe9, 0x3d, 0x73, 0x2c, 0x74, 0xef, 0xb4, 0xec, 0xde, 0xc8, 0x1c, 0xd3, 0x7b, 0xe4, 0x98, 0xde, + 0x23, 0xc7, 0xf4, 0x1e, 0x39, 0xa6, 0xf7, 0xc8, 0x31, 0xbd, 0x47, 0x8e, 0xe9, 0x3d, 0x72, 0x4c, + 0xef, 0x91, 0x63, 0x7a, 0xaf, 0x1c, 0xd3, 0x7b, 0xe6, 0x98, 0xde, 0x33, 0xc7, 0xf4, 0x9e, 0x39, + 0xa6, 0xf7, 0xcc, 0x31, 0xbd, 0x67, 0x8e, 0xe9, 0x62, 0x8e, 0xfd, 0x4b, 0x1d, 0x4c, 0x9a, 0x63, + 0xdb, 0xe4, 0x1d, 0x21, 0xe6, 0x8a, 0x59, 0x25, 0xd3, 0x86, 0xb1, 0xeb, 0x8c, 0xd0, 0x25, 0xb3, + 0x4a, 0xae, 0xc9, 0xf3, 0x4b, 0xc1, 0x3c, 0xcf, 0x36, 0x79, 0xfe, 0x6a, 0x30, 0xcf, 0xf3, 0x4d, + 0x9e, 0x5f, 0x0e, 0xe6, 0x79, 0xc6, 0xc9, 0xf3, 0xd7, 0x82, 0x79, 0x9e, 0x73, 0xf2, 0xfc, 0xf5, + 0x60, 0x9e, 0x67, 0x9d, 0x3c, 0x7f, 0x23, 0x98, 0xe7, 0x79, 0x27, 0xcf, 0xdf, 0x0c, 0xe6, 0x79, + 0xe6, 0xc9, 0xf3, 0xb7, 0xcc, 0x73, 0x6a, 0xee, 0x71, 0x81, 0xc0, 0xb5, 0xe7, 0xd4, 0xec, 0x53, + 0x24, 0xae, 0x84, 0x12, 0x3c, 0xff, 0x14, 0x89, 0xa5, 0x50, 0x82, 0x67, 0xa0, 0x22, 0x71, 0x35, + 0xf7, 0x19, 0xe2, 0x3e, 0x47, 0x75, 0xdf, 0x8c, 0xe2, 0xbe, 0x84, 0xe0, 0xba, 0x19, 0xc5, 0x75, + 0x09, 0xc1, 0x6d, 0x33, 0x8a, 0xdb, 0x12, 0x82, 0xcb, 0x66, 0x14, 0x97, 0x25, 0x04, 0x77, 0xcd, + 0x28, 0xee, 0x4a, 0x08, 0xae, 0x9a, 0x51, 0x5c, 0x95, 0x10, 0xdc, 0x34, 0xa3, 0xb8, 0x29, 0x21, + 0xb8, 0x68, 0x46, 0x71, 0x51, 0x42, 0x70, 0xcf, 0x8c, 0xe2, 0x9e, 0x84, 0xe0, 0x9a, 0xb3, 0xaa, + 0x6b, 0x12, 0xa2, 0x5b, 0xce, 0xaa, 0x6e, 0x49, 0x88, 0x2e, 0x39, 0xab, 0xba, 0x24, 0x21, 0xba, + 0xe3, 0xac, 0xea, 0x8e, 0x84, 0xe8, 0x8a, 0x3f, 0x49, 0xf0, 0x8e, 0x70, 0xc7, 0x6f, 0x77, 0xaa, + 0xfe, 0xfb, 0xea, 0x08, 0x2f, 0x4b, 0xed, 0x43, 0x7a, 0xc9, 0x5c, 0x24, 0x0d, 0xab, 0xd8, 0x71, + 0x2a, 0x2b, 0xd8, 0x65, 0xa9, 0xb1, 0x10, 0x10, 0x4e, 0x34, 0x62, 0xf9, 0x7d, 0xf5, 0x86, 0x97, + 0xa5, 0x36, 0x23, 0x5e, 0xbf, 0x9b, 0x1f, 0x7a, 0xc7, 0xf6, 0x4e, 0x82, 0x77, 0x6c, 0xcc, 0xfc, + 0x27, 0xed, 0xd8, 0x16, 0xe2, 0x4d, 0x1e, 0x18, 0x7b, 0x21, 0xde, 0xd8, 0x5d, 0xab, 0xce, 0xa0, + 0x1d, 0xdc, 0x42, 0xbc, 0x69, 0x03, 0xa3, 0x7e, 0xb0, 0xfd, 0x16, 0x8b, 0x60, 0x0b, 0xb5, 0x22, + 0x22, 0xf8, 0xa4, 0xfd, 0xd6, 0x65, 0xa9, 0x94, 0x9c, 0x34, 0x82, 0xf5, 0x13, 0x47, 0xf0, 0x49, + 0x3b, 0xaf, 0xcb, 0x52, 0x79, 0x39, 0x71, 0x04, 0x7f, 0x08, 0xfd, 0x10, 0x8b, 0xe0, 0xd0, 0xfc, + 0x27, 0xed, 0x87, 0x16, 0xe2, 0x4d, 0x1e, 0x19, 0xc1, 0xfa, 0x09, 0x22, 0x78, 0x90, 0xfe, 0x68, + 0x21, 0xde, 0xb4, 0xd1, 0x11, 0xfc, 0xbe, 0xbb, 0x99, 0x2f, 0x69, 0x30, 0xb9, 0x59, 0xaf, 0x95, + 0x9b, 0xfb, 0xa8, 0x56, 0x43, 0x35, 0x66, 0xc7, 0xcb, 0x52, 0x25, 0xe8, 0xe1, 0xea, 0x6f, 0xbd, + 0x3b, 0x17, 0x5a, 0xf8, 0x1a, 0xa4, 0xa8, 0x4d, 0x2f, 0x5f, 0xce, 0xde, 0xd7, 0x62, 0x2a, 0x5c, + 0x20, 0x6a, 0x9e, 0xe7, 0xb0, 0x2b, 0x97, 0xb3, 0xff, 0x41, 0x13, 0xaa, 0x5c, 0x30, 0x9c, 0xfb, + 0x55, 0xa2, 0xa1, 0xf3, 0xbe, 0x35, 0xbc, 0x34, 0x90, 0x86, 0x82, 0x6e, 0x8f, 0x75, 0xe9, 0x26, + 0x68, 0xd5, 0x81, 0x89, 0xcd, 0x7a, 0x6d, 0x93, 0x7c, 0x05, 0x7c, 0x10, 0x95, 0xa8, 0x8c, 0x52, + 0x0f, 0x2e, 0x4b, 0x61, 0x29, 0x22, 0x82, 0x90, 0x96, 0x6b, 0x44, 0xae, 0x8e, 0x4f, 0xeb, 0x48, + 0xa7, 0x5d, 0xe8, 0x75, 0xda, 0xb0, 0xb2, 0x07, 0x27, 0x5c, 0xe8, 0x75, 0xc2, 0x30, 0x87, 0x82, + 0x53, 0xbd, 0xc1, 0x17, 0x67, 0xfa, 0xa6, 0x8e, 0x79, 0x16, 0x12, 0x6b, 0xf4, 0x45, 0xe2, 0x4c, + 0x31, 0x83, 0x95, 0xfa, 0xf6, 0xbb, 0x73, 0xc9, 0xbd, 0x4e, 0xbd, 0x66, 0x25, 0xd6, 0x6a, 0xe6, + 0x5d, 0x18, 0xfa, 0x24, 0xfb, 0x22, 0x22, 0x16, 0x58, 0x66, 0x02, 0x1f, 0x8d, 0xd9, 0x62, 0x22, + 0xd4, 0x8b, 0x7b, 0x75, 0xc7, 0xbf, 0xb2, 0x74, 0xd3, 0xa2, 0x14, 0xb9, 0xff, 0x0f, 0x80, 0x9e, + 0x73, 0xc5, 0xf6, 0x8e, 0xcc, 0x4d, 0xce, 0x4c, 0x4f, 0x7d, 0xf3, 0xdb, 0xef, 0xce, 0x2d, 0x0f, + 0xc2, 0xfa, 0x4c, 0xcd, 0xf6, 0x8e, 0x9e, 0xf1, 0x8f, 0x5b, 0x68, 0xb1, 0x78, 0xec, 0x23, 0x8f, + 0xb3, 0xb7, 0xf8, 0xaa, 0xc7, 0xae, 0x2b, 0x2b, 0x5c, 0x57, 0x4a, 0xba, 0xa6, 0x55, 0xf9, 0x9a, + 0x2e, 0x3f, 0xec, 0xf5, 0xbc, 0xc1, 0x17, 0x09, 0xc5, 0x92, 0x7a, 0x9c, 0x25, 0xf5, 0xf7, 0x6b, + 0xc9, 0x16, 0xaf, 0x8f, 0xca, 0xb5, 0xea, 0xfd, 0xae, 0x55, 0x7f, 0x3f, 0xd7, 0xfa, 0x7f, 0x69, + 0xb6, 0x06, 0xf9, 0xb4, 0xe7, 0xd0, 0x97, 0x18, 0xff, 0x74, 0xed, 0x05, 0x7d, 0xa0, 0x5d, 0x40, + 0x3e, 0x79, 0xff, 0xed, 0x39, 0x2d, 0xf7, 0xa5, 0x04, 0xbf, 0x72, 0x9a, 0x48, 0x0f, 0x77, 0xe5, + 0x7f, 0x5a, 0x7a, 0xaa, 0x0f, 0xc3, 0x42, 0x5f, 0xd4, 0x60, 0xba, 0xab, 0x92, 0x53, 0x33, 0x7d, + 0xb0, 0xe5, 0xdc, 0x39, 0x69, 0x39, 0x67, 0x0a, 0xfe, 0xae, 0x06, 0xa7, 0x95, 0xf2, 0x4a, 0xd5, + 0xbb, 0xa4, 0xa8, 0xf7, 0x48, 0xf7, 0x99, 0x88, 0xa0, 0xa0, 0x9d, 0xe8, 0x5e, 0x05, 0x20, 0x30, + 0x07, 0x7e, 0x5f, 0x56, 0xfc, 0x7e, 0x36, 0x00, 0x44, 0x98, 0x8b, 0x47, 0x00, 0x53, 0xdb, 0x85, + 0xe4, 0x6e, 0x1b, 0x21, 0x73, 0x16, 0x12, 0x5b, 0x6d, 0xa6, 0xe1, 0x38, 0xc5, 0x6f, 0xb5, 0x8b, + 0x6d, 0xdb, 0xa9, 0x1e, 0x59, 0x89, 0xad, 0xb6, 0x79, 0x1e, 0xf4, 0x02, 0xfb, 0x12, 0x74, 0x7a, + 0x69, 0x82, 0x0a, 0x14, 0x9c, 0x1a, 0x93, 0xc0, 0x73, 0xe6, 0x2c, 0x24, 0xd7, 0x91, 0x7d, 0xc0, + 0x94, 0x00, 0x2a, 0x83, 0x47, 0x2c, 0x32, 0xce, 0x4e, 0xf8, 0x12, 0xa4, 0x38, 0xb1, 0x79, 0x01, + 0x23, 0x0e, 0x7c, 0x76, 0x5a, 0x86, 0xc0, 0xea, 0xb0, 0x95, 0x8b, 0xcc, 0x9a, 0x17, 0x61, 0xc8, + 0xaa, 0x1f, 0x1e, 0xf9, 0xec, 0xe4, 0xdd, 0x62, 0x74, 0x3a, 0x77, 0x0f, 0x46, 0x03, 0x8d, 0x3e, + 0x60, 0xea, 0x15, 0x7a, 0x69, 0xe6, 0x8c, 0xb8, 0x9e, 0xf0, 0x7d, 0x4b, 0x3a, 0x64, 0x9e, 0x83, + 0xd4, 0x8e, 0xdf, 0x0e, 0x8b, 0x3e, 0xef, 0x48, 0x83, 0xd1, 0xdc, 0x2f, 0x69, 0x90, 0x5a, 0x41, + 0xa8, 0x45, 0x0c, 0xfe, 0x24, 0x24, 0x57, 0xdc, 0xd7, 0x1d, 0xa6, 0xe0, 0x24, 0xb3, 0x28, 0x9e, + 0x66, 0x36, 0x25, 0xd3, 0xe6, 0x93, 0xa2, 0xdd, 0xa7, 0x02, 0xbb, 0x0b, 0x72, 0xc4, 0xf6, 0x39, + 0xc9, 0xf6, 0xcc, 0x81, 0x58, 0xa8, 0xcb, 0xfe, 0x37, 0x20, 0x2d, 0x9c, 0xc5, 0x9c, 0x67, 0x6a, + 0x24, 0x54, 0xa0, 0x68, 0x2b, 0x2c, 0x91, 0x43, 0x30, 0x26, 0x9d, 0x18, 0x43, 0x05, 0x13, 0xf7, + 0x80, 0x12, 0x33, 0x2f, 0xc8, 0x66, 0x8e, 0x16, 0x65, 0xa6, 0xbe, 0x4c, 0x6d, 0x44, 0xcc, 0x7d, + 0x81, 0x06, 0x67, 0x6f, 0x27, 0xe2, 0xcf, 0xb9, 0x21, 0xd0, 0x37, 0xeb, 0x8d, 0xdc, 0xb3, 0x00, + 0x34, 0xe5, 0xcb, 0x4e, 0xa7, 0xa9, 0x64, 0xdd, 0x38, 0x37, 0xf0, 0xee, 0x11, 0xda, 0x45, 0x1e, + 0x11, 0x91, 0xfb, 0x29, 0x5c, 0x60, 0x80, 0xa6, 0x18, 0xc1, 0x3f, 0x1d, 0x8b, 0x8f, 0xec, 0xc4, + 0xb0, 0x68, 0x96, 0x8a, 0xde, 0x43, 0x7e, 0xc1, 0x71, 0xfd, 0x23, 0xd4, 0x56, 0x10, 0x4b, 0xe6, + 0x55, 0x29, 0x61, 0xc7, 0x97, 0x1e, 0x0b, 0x10, 0x3d, 0x41, 0x57, 0x73, 0x5f, 0x23, 0x0a, 0xe2, + 0x56, 0xa0, 0xeb, 0x02, 0xf5, 0x01, 0x2e, 0xd0, 0xbc, 0x2e, 0xf5, 0x6f, 0x7d, 0xd4, 0x54, 0x6e, + 0x2d, 0x6f, 0x49, 0xf7, 0x39, 0xfd, 0x95, 0x95, 0xef, 0x31, 0xb9, 0x4d, 0xb9, 0xca, 0x4f, 0xc7, + 0xaa, 0xdc, 0xa3, 0xbb, 0x3d, 0xa9, 0x4d, 0xf5, 0x41, 0x6d, 0xfa, 0xfb, 0x41, 0xc7, 0x41, 0x7f, + 0x69, 0x82, 0xfc, 0x46, 0x8b, 0xf9, 0xd1, 0x58, 0xdf, 0xe7, 0xb5, 0x52, 0xa0, 0xea, 0xf2, 0xa0, + 0xee, 0xcf, 0x27, 0x8a, 0xc5, 0x40, 0xdd, 0x1b, 0x27, 0x08, 0x81, 0x7c, 0xa2, 0x54, 0x0a, 0xca, + 0x76, 0xea, 0x33, 0x6f, 0xcf, 0x69, 0x5f, 0x7d, 0x7b, 0xee, 0x54, 0xee, 0x37, 0x35, 0x98, 0x64, + 0x92, 0x42, 0xe0, 0x3e, 0xa3, 0x28, 0x7f, 0x86, 0xd7, 0x8c, 0x28, 0x0b, 0xfc, 0xd4, 0x82, 0xf7, + 0x9b, 0x1a, 0x64, 0xbb, 0x74, 0xe5, 0xf6, 0xbe, 0x3c, 0x90, 0xca, 0x79, 0xad, 0xfc, 0xb3, 0xb7, + 0xf9, 0x3d, 0x18, 0xda, 0xad, 0x37, 0x51, 0x1b, 0xaf, 0x04, 0xf8, 0x03, 0x55, 0x99, 0x3f, 0xcc, + 0xa1, 0x43, 0x7c, 0x8e, 0x2a, 0x27, 0xcd, 0x2d, 0x99, 0x59, 0x48, 0xae, 0xd8, 0xbe, 0x4d, 0x34, + 0xc8, 0x04, 0xf5, 0xd5, 0xf6, 0xed, 0xdc, 0x55, 0xc8, 0x6c, 0x1c, 0x93, 0xd7, 0x6c, 0x6a, 0xe4, + 0x15, 0x12, 0xb9, 0xfb, 0xe3, 0xfd, 0xea, 0x95, 0x85, 0xa1, 0x54, 0xcd, 0xb8, 0xaf, 0xe5, 0x93, + 0x44, 0x9f, 0xd7, 0x60, 0x7c, 0x0b, 0xab, 0x4d, 0x70, 0x04, 0x76, 0x0e, 0xb4, 0x0d, 0xb9, 0x11, + 0x12, 0x59, 0x2d, 0x6d, 0x43, 0x69, 0x1f, 0xf5, 0xc0, 0x3c, 0x4a, 0xdb, 0xa6, 0x07, 0x6d, 0xdb, + 0x42, 0x32, 0x35, 0x6e, 0x4c, 0x2e, 0x24, 0x53, 0x60, 0x8c, 0xb1, 0xf3, 0xfe, 0x3b, 0x1d, 0x0c, + 0xda, 0xea, 0xac, 0xa0, 0x83, 0xba, 0x53, 0xf7, 0xbb, 0xfb, 0xd5, 0x40, 0x63, 0xf3, 0x79, 0x18, + 0xc5, 0x26, 0x5d, 0x65, 0x3f, 0xd5, 0x86, 0x4d, 0x7f, 0x9e, 0xb5, 0x28, 0x0a, 0x05, 0x1b, 0x20, + 0xa1, 0x13, 0x62, 0xcc, 0x55, 0xd0, 0x37, 0x37, 0x37, 0xd8, 0xe2, 0xb6, 0xdc, 0x17, 0xca, 0xde, + 0xd2, 0x61, 0x47, 0x6c, 0xcc, 0x3b, 0xb4, 0x30, 0x81, 0xb9, 0x0c, 0x89, 0xcd, 0x0d, 0xd6, 0xf0, + 0x5e, 0x18, 0x84, 0xc6, 0x4a, 0x6c, 0x6e, 0xcc, 0xfc, 0x2b, 0x0d, 0xc6, 0xa4, 0x51, 0x33, 0x07, + 0x19, 0x3a, 0x20, 0x5c, 0xee, 0xb0, 0x25, 0x8d, 0x71, 0x9d, 0x13, 0xef, 0x53, 0xe7, 0x99, 0x02, + 0x4c, 0x28, 0xe3, 0xe6, 0x22, 0x98, 0xe2, 0x10, 0x53, 0x82, 0xfe, 0x4c, 0x54, 0xc4, 0x4c, 0xee, + 0x71, 0x80, 0xd0, 0xae, 0xc1, 0xaf, 0x1b, 0x6d, 0x96, 0x77, 0x76, 0xcb, 0x2b, 0x86, 0x96, 0xfb, + 0x86, 0x06, 0x69, 0xd6, 0xb6, 0x56, 0xdd, 0x16, 0x32, 0x8b, 0xa0, 0x15, 0x58, 0x04, 0x3d, 0x9c, + 0xde, 0x5a, 0xc1, 0xbc, 0x04, 0x5a, 0x71, 0x70, 0x57, 0x6b, 0x45, 0x73, 0x09, 0xb4, 0x12, 0x73, + 0xf0, 0x60, 0x9e, 0xd1, 0x4a, 0xb9, 0x3f, 0xd6, 0x61, 0x4a, 0x6c, 0xa3, 0x79, 0x3d, 0x39, 0x2f, + 0xdf, 0x37, 0xe5, 0x47, 0xaf, 0x2c, 0x5d, 0x5d, 0x5e, 0xc4, 0xff, 0x04, 0x21, 0x99, 0x93, 0x6f, + 0xa1, 0xf2, 0x10, 0x88, 0x5c, 0xe9, 0xf5, 0x9e, 0x48, 0x3e, 0x29, 0x30, 0x74, 0xbd, 0x27, 0x22, + 0xcd, 0x76, 0xbd, 0x27, 0x22, 0xcd, 0x76, 0xbd, 0x27, 0x22, 0xcd, 0x76, 0x3d, 0x0b, 0x90, 0x66, + 0xbb, 0xde, 0x13, 0x91, 0x66, 0xbb, 0xde, 0x13, 0x91, 0x66, 0xbb, 0xdf, 0x13, 0x61, 0xd3, 0x3d, + 0xdf, 0x13, 0x91, 0xe7, 0xbb, 0xdf, 0x13, 0x91, 0xe7, 0xbb, 0xdf, 0x13, 0xc9, 0x27, 0xfd, 0x76, + 0x07, 0xf5, 0x7e, 0xea, 0x20, 0xe3, 0xfb, 0xdd, 0x04, 0x86, 0x15, 0x78, 0x0b, 0x26, 0xe8, 0x86, + 0x44, 0xc9, 0x75, 0x7c, 0xbb, 0xee, 0xa0, 0xb6, 0xf9, 0x31, 0xc8, 0xd0, 0x21, 0x7a, 0x9b, 0x13, + 0x75, 0x1b, 0x48, 0xe7, 0x59, 0xbd, 0x95, 0xa4, 0x73, 0x7f, 0x92, 0x84, 0x69, 0x3a, 0xb0, 0x69, + 0x37, 0x91, 0xf4, 0x96, 0xd1, 0x45, 0xe5, 0x99, 0xd2, 0x38, 0x86, 0x3f, 0x78, 0x77, 0x8e, 0x8e, + 0x16, 0x82, 0x68, 0xba, 0xa8, 0x3c, 0x5d, 0x92, 0xe5, 0xc2, 0x05, 0xe8, 0xa2, 0xf2, 0xe6, 0x91, + 0x2c, 0x17, 0xac, 0x37, 0x81, 0x1c, 0x7f, 0x07, 0x49, 0x96, 0x5b, 0x09, 0xa2, 0xec, 0xa2, 0xf2, + 0x36, 0x92, 0x2c, 0x57, 0x0e, 0xe2, 0xed, 0xa2, 0xf2, 0xec, 0x49, 0x96, 0x5b, 0x0d, 0x22, 0xef, + 0xa2, 0xf2, 0x14, 0x4a, 0x96, 0xbb, 0x13, 0xc4, 0xe0, 0x45, 0xe5, 0x5d, 0x25, 0x59, 0xee, 0x85, + 0x20, 0x1a, 0x2f, 0x2a, 0x6f, 0x2d, 0xc9, 0x72, 0x6b, 0x41, 0x5c, 0xce, 0xab, 0xef, 0x2f, 0xc9, + 0x82, 0x77, 0xc3, 0x08, 0x9d, 0x57, 0xdf, 0x64, 0x92, 0x25, 0x3f, 0x1e, 0xc6, 0xea, 0xbc, 0xfa, + 0x4e, 0x93, 0x2c, 0xb9, 0x1e, 0x46, 0xed, 0xbc, 0xfa, 0xac, 0x4c, 0x96, 0xdc, 0x08, 0xe3, 0x77, + 0x5e, 0x7d, 0x6a, 0x26, 0x4b, 0x6e, 0x86, 0x91, 0x3c, 0xaf, 0x3e, 0x3f, 0x93, 0x25, 0xb7, 0xc2, + 0x4d, 0xf4, 0x3f, 0x50, 0xc2, 0x4f, 0x78, 0x0b, 0x2a, 0xa7, 0x84, 0x1f, 0x44, 0x84, 0x9e, 0x52, + 0xc8, 0x04, 0x99, 0x30, 0xec, 0x72, 0x4a, 0xd8, 0x41, 0x44, 0xc8, 0xe5, 0x94, 0x90, 0x83, 0x88, + 0x70, 0xcb, 0x29, 0xe1, 0x06, 0x11, 0xa1, 0x96, 0x53, 0x42, 0x0d, 0x22, 0xc2, 0x2c, 0xa7, 0x84, + 0x19, 0x44, 0x84, 0x58, 0x4e, 0x09, 0x31, 0x88, 0x08, 0xaf, 0x9c, 0x12, 0x5e, 0x10, 0x11, 0x5a, + 0x17, 0xd4, 0xd0, 0x82, 0xa8, 0xb0, 0xba, 0xa0, 0x86, 0x15, 0x44, 0x85, 0xd4, 0x13, 0x6a, 0x48, + 0x8d, 0x3e, 0x78, 0x77, 0x6e, 0x08, 0x0f, 0x09, 0xd1, 0x74, 0x41, 0x8d, 0x26, 0x88, 0x8a, 0xa4, + 0x0b, 0x6a, 0x24, 0x41, 0x54, 0x14, 0x5d, 0x50, 0xa3, 0x08, 0xa2, 0x22, 0xe8, 0x1d, 0x35, 0x82, + 0xc2, 0x77, 0x7c, 0x72, 0xca, 0x23, 0xc5, 0xb8, 0x08, 0xd2, 0x07, 0x88, 0x20, 0x7d, 0x80, 0x08, + 0xd2, 0x07, 0x88, 0x20, 0x7d, 0x80, 0x08, 0xd2, 0x07, 0x88, 0x20, 0x7d, 0x80, 0x08, 0xd2, 0x07, + 0x88, 0x20, 0x7d, 0x90, 0x08, 0xd2, 0x07, 0x8a, 0x20, 0xbd, 0x57, 0x04, 0x5d, 0x50, 0xdf, 0x78, + 0x80, 0xa8, 0x82, 0x74, 0x41, 0x7d, 0xf4, 0x19, 0x1f, 0x42, 0xfa, 0x40, 0x21, 0xa4, 0xf7, 0x0a, + 0xa1, 0x3f, 0xd0, 0x61, 0x4a, 0x0a, 0x21, 0xf6, 0x7c, 0xe8, 0x83, 0xaa, 0x40, 0xd7, 0x07, 0x78, + 0xc1, 0x22, 0x2a, 0xa6, 0xae, 0x0f, 0xf0, 0x90, 0xba, 0x5f, 0x9c, 0x75, 0x57, 0xa1, 0xf2, 0x00, + 0x55, 0x68, 0x35, 0x88, 0xa1, 0xeb, 0x03, 0xbc, 0x78, 0xd1, 0x1d, 0x7b, 0x37, 0xfb, 0x15, 0x81, + 0x17, 0x06, 0x2a, 0x02, 0x6b, 0x03, 0x15, 0x81, 0xbb, 0xa1, 0x07, 0x7f, 0x39, 0x01, 0xa7, 0x43, + 0x0f, 0xd2, 0x4f, 0xe4, 0xa7, 0x94, 0x72, 0xc2, 0x23, 0x2a, 0x93, 0x3f, 0xb6, 0x11, 0xdc, 0x98, + 0x58, 0xab, 0x99, 0xdb, 0xf2, 0xc3, 0xaa, 0xfc, 0x49, 0x1f, 0xe0, 0x08, 0x1e, 0x67, 0x9b, 0xa1, + 0x17, 0x40, 0x5f, 0xab, 0x79, 0xa4, 0x5a, 0x44, 0x9d, 0xb6, 0x64, 0xe1, 0x69, 0xd3, 0x82, 0x61, + 0x22, 0xee, 0x11, 0xf7, 0xbe, 0x9f, 0x13, 0xaf, 0x58, 0x8c, 0x29, 0xf7, 0x8e, 0x06, 0xe7, 0xa4, + 0x50, 0xfe, 0x60, 0x1e, 0x19, 0xdc, 0x1e, 0xe8, 0x91, 0x81, 0x94, 0x20, 0xe1, 0xe3, 0x83, 0xa7, + 0xba, 0x9f, 0x54, 0x8b, 0x59, 0xa2, 0x3e, 0x4a, 0xf8, 0x73, 0x30, 0x1e, 0x5e, 0x01, 0xb9, 0x67, + 0xbb, 0x16, 0xbf, 0x9b, 0x19, 0x95, 0x9a, 0xd7, 0x94, 0x5d, 0xb4, 0xbe, 0xb0, 0x20, 0x5b, 0x73, + 0x79, 0x98, 0xd8, 0x94, 0xbf, 0xf0, 0x13, 0xb7, 0x19, 0x91, 0xc2, 0xad, 0xf9, 0xfd, 0x2f, 0xcf, + 0x9d, 0xca, 0x7d, 0x14, 0x32, 0xe2, 0x77, 0x7a, 0x14, 0xe0, 0x28, 0x07, 0xe6, 0x93, 0xdf, 0xc2, + 0xd2, 0x7f, 0x47, 0x83, 0x33, 0xa2, 0xf8, 0x8b, 0x75, 0xff, 0x68, 0xcd, 0xc1, 0x3d, 0xfd, 0xb3, + 0x90, 0x42, 0xcc, 0x71, 0xec, 0x57, 0x51, 0xd8, 0x7d, 0x64, 0xa4, 0xf8, 0x22, 0xf9, 0xd7, 0x0a, + 0x20, 0xca, 0x1e, 0x07, 0x3f, 0xed, 0xd2, 0xcc, 0x93, 0x30, 0x44, 0xf9, 0x65, 0xbd, 0xc6, 0x14, + 0xbd, 0x7e, 0x23, 0x42, 0x2f, 0x12, 0x47, 0xe6, 0x5d, 0x49, 0x2f, 0xe1, 0x76, 0x35, 0x52, 0x7c, + 0x91, 0x07, 0x5f, 0x31, 0x85, 0xfb, 0x3f, 0x12, 0x51, 0xf1, 0x4a, 0xce, 0x43, 0xaa, 0xac, 0xca, + 0x44, 0xeb, 0xb9, 0x02, 0xc9, 0x4d, 0xb7, 0x46, 0x7e, 0xaf, 0x85, 0xfc, 0x40, 0x31, 0x33, 0x32, + 0xfb, 0xb5, 0xe2, 0x8b, 0x90, 0x2a, 0x1d, 0xd5, 0x1b, 0xb5, 0x36, 0x72, 0xd8, 0x33, 0x7b, 0xb6, + 0x85, 0x8e, 0x31, 0x56, 0x30, 0x97, 0x2b, 0xc1, 0xe4, 0xa6, 0xeb, 0x14, 0x8f, 0x7d, 0xb1, 0x6e, + 0x2c, 0x2a, 0x29, 0xc2, 0x9e, 0xf9, 0x90, 0x6f, 0x89, 0x60, 0x81, 0xe2, 0xd0, 0xb7, 0xdf, 0x9d, + 0xd3, 0x76, 0x83, 0xfd, 0xf3, 0x0d, 0x78, 0x84, 0xa5, 0x4f, 0x17, 0xd5, 0x52, 0x1c, 0xd5, 0x28, + 0x7b, 0x4e, 0x2d, 0xd0, 0xad, 0x61, 0x3a, 0x27, 0x92, 0xee, 0xe1, 0x34, 0xc3, 0x4d, 0x51, 0x5f, + 0xcd, 0xf4, 0x13, 0x69, 0x16, 0x49, 0xb7, 0x18, 0x47, 0xa7, 0x68, 0xf6, 0x04, 0x8c, 0x06, 0x73, + 0x42, 0x34, 0x88, 0x99, 0xb2, 0xb4, 0x90, 0x83, 0xb4, 0x90, 0xb0, 0xe6, 0x10, 0x68, 0x05, 0xe3, + 0x14, 0xfe, 0xaf, 0x68, 0x68, 0xf8, 0xbf, 0x92, 0x91, 0x58, 0x78, 0x12, 0x26, 0x94, 0xfd, 0x4b, + 0x3c, 0xb3, 0x62, 0x00, 0xfe, 0xaf, 0x6c, 0xa4, 0x67, 0x92, 0x9f, 0xf9, 0xfb, 0xb3, 0xa7, 0x16, + 0x6e, 0x83, 0xd9, 0xbd, 0xd3, 0x69, 0x0e, 0x43, 0xa2, 0x80, 0x29, 0x1f, 0x81, 0x44, 0xb1, 0x68, + 0x68, 0x33, 0x13, 0x7f, 0xf9, 0x0b, 0xe7, 0xd2, 0x45, 0xf2, 0x85, 0xe5, 0x7b, 0xc8, 0x2f, 0x16, + 0x19, 0xf8, 0x39, 0x38, 0x13, 0xb9, 0x53, 0x8a, 0xf1, 0xa5, 0x12, 0xc5, 0xaf, 0xac, 0x74, 0xe1, + 0x57, 0x56, 0x08, 0x5e, 0xcb, 0xf3, 0x27, 0xce, 0x05, 0x33, 0x62, 0x5f, 0x32, 0x5b, 0x13, 0x9e, + 0x70, 0x17, 0xf2, 0xcf, 0x31, 0xd9, 0x62, 0xa4, 0x2c, 0x8a, 0x79, 0x62, 0x5d, 0xcc, 0x97, 0x18, + 0xbe, 0x14, 0x89, 0x3f, 0x50, 0x1e, 0xab, 0xca, 0x2b, 0x04, 0x23, 0x29, 0x05, 0x0a, 0xaf, 0x44, + 0x92, 0x1c, 0x09, 0x2f, 0xbb, 0xaf, 0x04, 0x0a, 0x97, 0x23, 0x65, 0xeb, 0x31, 0x2f, 0x7d, 0x95, + 0xf3, 0x97, 0xd8, 0x22, 0x5f, 0xb8, 0x62, 0x9e, 0xe1, 0x39, 0x2a, 0x55, 0x60, 0x66, 0x20, 0x2e, + 0x95, 0x2f, 0x31, 0x40, 0xb1, 0x27, 0xa0, 0xb7, 0x95, 0x38, 0x32, 0xff, 0x02, 0x23, 0x29, 0xf5, + 0x24, 0x89, 0x31, 0x15, 0x87, 0x17, 0x77, 0xef, 0xbf, 0x37, 0x7b, 0xea, 0x5b, 0xef, 0xcd, 0x9e, + 0xfa, 0x4f, 0xef, 0xcd, 0x9e, 0xfa, 0xce, 0x7b, 0xb3, 0xda, 0xf7, 0xdf, 0x9b, 0xd5, 0x7e, 0xf8, + 0xde, 0xac, 0xf6, 0xe3, 0xf7, 0x66, 0xb5, 0xb7, 0x1e, 0xcc, 0x6a, 0x5f, 0x7d, 0x30, 0xab, 0x7d, + 0xed, 0xc1, 0xac, 0xf6, 0x7b, 0x0f, 0x66, 0xb5, 0x77, 0x1e, 0xcc, 0x6a, 0xf7, 0x1f, 0xcc, 0x6a, + 0xdf, 0x7a, 0x30, 0xab, 0x7d, 0xe7, 0xc1, 0xac, 0xf6, 0xfd, 0x07, 0xb3, 0xa7, 0x7e, 0xf8, 0x60, + 0x56, 0xfb, 0xf1, 0x83, 0xd9, 0x53, 0x6f, 0x7d, 0x77, 0xf6, 0xd4, 0xdb, 0xdf, 0x9d, 0x3d, 0xf5, + 0xd5, 0xef, 0xce, 0x6a, 0xf0, 0x9d, 0x65, 0x78, 0x4c, 0xf9, 0x26, 0x19, 0xe9, 0x06, 0xae, 0xf2, + 0xdf, 0x7b, 0x0a, 0x06, 0x4e, 0xf8, 0x85, 0xb2, 0x99, 0x87, 0xfd, 0xfa, 0x5a, 0xee, 0x5f, 0x0f, + 0xc1, 0x08, 0xdf, 0x06, 0x8e, 0xfa, 0xf1, 0xea, 0x6b, 0x90, 0x3a, 0xaa, 0x37, 0xec, 0x76, 0xdd, + 0x3f, 0x66, 0xfb, 0x9f, 0x8f, 0x2e, 0x86, 0x6a, 0xf3, 0x1d, 0xd3, 0x17, 0x3a, 0x4d, 0xb7, 0xd3, + 0xb6, 0x02, 0x51, 0xf3, 0x1c, 0x64, 0x8e, 0x50, 0xfd, 0xf0, 0xc8, 0xaf, 0xd4, 0x9d, 0x4a, 0xb5, + 0x49, 0xda, 0xe4, 0x31, 0x0b, 0xe8, 0xd8, 0x9a, 0x53, 0x6a, 0xe2, 0x93, 0xd5, 0x6c, 0xdf, 0x26, + 0xb7, 0xe7, 0x19, 0x8b, 0x7c, 0x36, 0xcf, 0x43, 0xa6, 0x8d, 0xbc, 0x4e, 0xc3, 0xaf, 0x54, 0xdd, + 0x8e, 0xe3, 0x93, 0x46, 0x56, 0xb7, 0xd2, 0x74, 0xac, 0x84, 0x87, 0xcc, 0x27, 0x60, 0xcc, 0x6f, + 0x77, 0x50, 0xc5, 0xab, 0xba, 0xbe, 0xd7, 0xb4, 0x1d, 0xd2, 0xc8, 0xa6, 0xac, 0x0c, 0x1e, 0xdc, + 0x61, 0x63, 0xe4, 0x77, 0xcf, 0xab, 0x6e, 0x1b, 0x91, 0xfb, 0xe8, 0x84, 0x45, 0x0f, 0x4c, 0x03, + 0xf4, 0x57, 0xd1, 0x31, 0xb9, 0x53, 0x4b, 0x5a, 0xf8, 0xa3, 0xf9, 0x34, 0x0c, 0xd3, 0x3f, 0x5c, + 0x42, 0xda, 0x6a, 0xf2, 0xd4, 0x3a, 0xb8, 0x34, 0xba, 0x3b, 0x6b, 0x31, 0x01, 0xf3, 0x16, 0x8c, + 0xf8, 0xa8, 0xdd, 0xb6, 0xeb, 0x0e, 0xb9, 0x6b, 0x4a, 0x2f, 0xcd, 0x45, 0x98, 0x61, 0x97, 0x4a, + 0x90, 0xdf, 0x7f, 0xb5, 0xb8, 0xbc, 0x79, 0x0d, 0x32, 0x44, 0x6e, 0xa9, 0x42, 0xff, 0xb8, 0x4b, + 0xba, 0x67, 0x20, 0xa7, 0xa9, 0x1c, 0x7f, 0x48, 0xc0, 0x61, 0xf4, 0xb7, 0xef, 0xc6, 0xc8, 0x69, + 0x9f, 0x88, 0x38, 0x2d, 0xa9, 0xb9, 0x4b, 0xa4, 0x5f, 0xa4, 0xa7, 0x66, 0x3c, 0xf4, 0xd7, 0xf1, + 0x36, 0x20, 0x23, 0xea, 0xc5, 0xcd, 0x40, 0xfb, 0x1e, 0x62, 0x86, 0xa7, 0xc2, 0x1f, 0xce, 0xef, + 0x61, 0x05, 0x3a, 0x9f, 0x4f, 0xdc, 0xd4, 0x66, 0xb6, 0xc1, 0x50, 0xcf, 0x17, 0x41, 0x79, 0x51, + 0xa6, 0x34, 0xc4, 0x8b, 0x25, 0x5b, 0xe4, 0x21, 0x63, 0xee, 0x79, 0x18, 0xa6, 0xf1, 0x63, 0xa6, + 0x61, 0x24, 0xfc, 0x59, 0xc5, 0x14, 0x24, 0xb7, 0xf7, 0x36, 0x77, 0xe8, 0xef, 0xa3, 0xee, 0xac, + 0x17, 0xb6, 0x77, 0x76, 0xd7, 0x4a, 0x1f, 0x37, 0x12, 0xe6, 0x04, 0xa4, 0x8b, 0x6b, 0xeb, 0xeb, + 0x95, 0x62, 0x61, 0x6d, 0xbd, 0x7c, 0xcf, 0xd0, 0x73, 0xb3, 0x30, 0x4c, 0xf5, 0x24, 0xbf, 0xf3, + 0xd6, 0x71, 0x9c, 0x63, 0xde, 0x37, 0x90, 0x83, 0xdc, 0xd7, 0x4d, 0x18, 0x29, 0x34, 0x1a, 0x1b, + 0x76, 0xcb, 0x33, 0x5f, 0x84, 0x49, 0xfa, 0x73, 0x13, 0xbb, 0xee, 0x0a, 0xf9, 0x39, 0x42, 0x5c, + 0x15, 0x34, 0xf6, 0x07, 0x03, 0xc2, 0xeb, 0x66, 0xe2, 0x8b, 0x5d, 0xb2, 0xd4, 0xc0, 0xdd, 0x1c, + 0xe6, 0x2e, 0x18, 0x7c, 0x70, 0xb5, 0xe1, 0xda, 0x3e, 0xe6, 0x4d, 0xb0, 0x5f, 0x0b, 0xec, 0xcd, + 0xcb, 0x45, 0x29, 0x6d, 0x17, 0x83, 0xf9, 0x31, 0x48, 0xad, 0x39, 0xfe, 0xd5, 0x25, 0xcc, 0xc6, + 0xff, 0x18, 0x4f, 0x37, 0x1b, 0x17, 0xa1, 0x2c, 0x01, 0x82, 0xa1, 0xaf, 0x2f, 0x63, 0x74, 0xb2, + 0x1f, 0x9a, 0x88, 0x84, 0x68, 0x72, 0x68, 0x3e, 0x0f, 0xa3, 0xf8, 0xb6, 0x84, 0x9e, 0x7c, 0x88, + 0xf7, 0xac, 0x5d, 0xf0, 0x40, 0x86, 0xe2, 0x43, 0x0c, 0x27, 0xa0, 0xe7, 0x1f, 0xee, 0x4b, 0x20, + 0x28, 0x10, 0x62, 0x30, 0xc1, 0x4e, 0xa0, 0xc1, 0x48, 0x4f, 0x82, 0x1d, 0x45, 0x83, 0x1d, 0x51, + 0x83, 0x9d, 0x40, 0x83, 0x54, 0x5f, 0x02, 0x51, 0x83, 0xe0, 0xd8, 0x2c, 0x02, 0xac, 0xd6, 0xdf, + 0x40, 0x35, 0xaa, 0x02, 0xfd, 0x53, 0x3d, 0xb9, 0x08, 0x86, 0x50, 0x88, 0x52, 0x08, 0x28, 0xb3, + 0x0c, 0xe9, 0x9d, 0x83, 0x90, 0x04, 0xba, 0xf2, 0x38, 0x50, 0xe3, 0x40, 0x61, 0x11, 0x71, 0x81, + 0x2a, 0xf4, 0x62, 0xd2, 0xfd, 0x55, 0x11, 0xae, 0x46, 0x40, 0x85, 0xaa, 0x50, 0x92, 0x4c, 0x8c, + 0x2a, 0x02, 0x8b, 0x88, 0xc3, 0xc5, 0xb0, 0xe8, 0xba, 0x58, 0x92, 0x55, 0xa5, 0xb9, 0x08, 0x0a, + 0x26, 0xc1, 0x8a, 0x21, 0x3b, 0x22, 0x1e, 0x21, 0x41, 0x8e, 0xc1, 0xe3, 0xbd, 0x3d, 0xc2, 0x65, + 0xb8, 0x47, 0xf8, 0xb1, 0x98, 0x67, 0xe4, 0x55, 0x56, 0xcc, 0x33, 0x11, 0x9b, 0x67, 0x5c, 0x54, + 0xc9, 0x33, 0x3e, 0x6c, 0x7e, 0x02, 0x26, 0xf8, 0x18, 0x2e, 0x4f, 0x98, 0xd4, 0x60, 0x7f, 0xcc, + 0xac, 0x37, 0x29, 0x93, 0xa4, 0x9c, 0x2a, 0xde, 0xdc, 0x84, 0x71, 0x3e, 0xb4, 0xe1, 0x91, 0xcb, + 0x9d, 0x64, 0x7f, 0xa7, 0xa2, 0x37, 0x23, 0x15, 0xa4, 0x84, 0x0a, 0x7a, 0x66, 0x05, 0xa6, 0xa3, + 0xab, 0x91, 0x58, 0x7e, 0x47, 0x69, 0xf9, 0x3d, 0x2d, 0x96, 0x5f, 0x4d, 0x2c, 0xdf, 0x25, 0x38, + 0x13, 0x59, 0x7b, 0xe2, 0x48, 0x12, 0x22, 0xc9, 0x6d, 0x18, 0x93, 0x4a, 0x8e, 0x08, 0x1e, 0x8a, + 0x00, 0x0f, 0x75, 0x83, 0xc3, 0xd0, 0x8a, 0x58, 0x3d, 0x24, 0xb0, 0x2e, 0x82, 0x3f, 0x06, 0xe3, + 0x72, 0xbd, 0x11, 0xd1, 0x63, 0x11, 0xe8, 0xb1, 0x08, 0x74, 0xf4, 0xb9, 0x93, 0x11, 0xe8, 0xa4, + 0x82, 0xde, 0xe9, 0x79, 0xee, 0xc9, 0x08, 0xf4, 0x64, 0x04, 0x3a, 0xfa, 0xdc, 0x66, 0x04, 0xda, + 0x14, 0xd1, 0xcf, 0xc2, 0x84, 0x52, 0x62, 0x44, 0xf8, 0x48, 0x04, 0x7c, 0x44, 0x84, 0x3f, 0x07, + 0x86, 0x5a, 0x5c, 0x44, 0xfc, 0x44, 0x04, 0x7e, 0x22, 0xea, 0xf4, 0xd1, 0xda, 0x0f, 0x47, 0xc0, + 0x87, 0x23, 0x4f, 0x1f, 0x8d, 0x37, 0x22, 0xf0, 0x86, 0x88, 0xcf, 0x43, 0x46, 0xac, 0x26, 0x22, + 0x36, 0x15, 0x81, 0x4d, 0xa9, 0x76, 0x97, 0x8a, 0x49, 0x5c, 0xa4, 0x8f, 0xf6, 0x48, 0x17, 0xa9, + 0x84, 0xc4, 0x91, 0x64, 0x44, 0x92, 0x4f, 0xc2, 0xe9, 0xa8, 0x92, 0x11, 0xc1, 0x31, 0x2f, 0x72, + 0x8c, 0xe3, 0x1e, 0x31, 0x6c, 0xf6, 0xec, 0x96, 0xd2, 0x38, 0xcd, 0xbc, 0x0c, 0x53, 0x11, 0x85, + 0x23, 0x82, 0x76, 0x51, 0xee, 0xc6, 0xb2, 0x02, 0x2d, 0x29, 0x02, 0x75, 0xe7, 0x70, 0xdb, 0xad, + 0x3b, 0xbe, 0xd8, 0x95, 0x7d, 0x63, 0x0a, 0xc6, 0x59, 0x79, 0xda, 0x6a, 0xd7, 0x50, 0x1b, 0xd5, + 0xcc, 0x3f, 0xd3, 0xbb, 0x77, 0xba, 0xdc, 0x5d, 0xd4, 0x18, 0xea, 0x04, 0x2d, 0xd4, 0xcb, 0x3d, + 0x5b, 0xa8, 0x4b, 0xf1, 0xf4, 0x71, 0x9d, 0x54, 0xa9, 0xab, 0x93, 0x7a, 0xaa, 0x37, 0x69, 0xaf, + 0x86, 0xaa, 0xd4, 0xd5, 0x50, 0xf5, 0x27, 0x89, 0xec, 0xab, 0x56, 0xbb, 0xfb, 0xaa, 0xf9, 0xde, + 0x2c, 0xbd, 0xdb, 0xab, 0xd5, 0xee, 0xf6, 0x2a, 0x86, 0x27, 0xba, 0xcb, 0x5a, 0xed, 0xee, 0xb2, + 0xfa, 0xf0, 0xf4, 0x6e, 0xb6, 0x56, 0xbb, 0x9b, 0xad, 0x18, 0x9e, 0xe8, 0x9e, 0x6b, 0x2d, 0xa2, + 0xe7, 0x7a, 0xba, 0x37, 0x51, 0xbf, 0xd6, 0x6b, 0x3d, 0xaa, 0xf5, 0x5a, 0xe8, 0xa3, 0x54, 0xdf, + 0x0e, 0x6c, 0x2d, 0xa2, 0x03, 0x8b, 0x53, 0xac, 0x47, 0x23, 0xb6, 0x1e, 0xd5, 0x88, 0xc5, 0x2a, + 0xd6, 0xab, 0x1f, 0xfb, 0x05, 0xb5, 0x1f, 0xbb, 0xd8, 0x9b, 0x29, 0xba, 0x2d, 0x5b, 0xed, 0x6e, + 0xcb, 0xe6, 0xe3, 0x72, 0x2e, 0xaa, 0x3b, 0x7b, 0xb9, 0x67, 0x77, 0x36, 0x40, 0x0a, 0xc7, 0x35, + 0x69, 0x2f, 0xf5, 0x6a, 0xd2, 0x16, 0xe3, 0xb9, 0xfb, 0xf7, 0x6a, 0x7b, 0x3d, 0x7a, 0xb5, 0x67, + 0xe2, 0x89, 0x7f, 0xde, 0xb2, 0xfd, 0xbc, 0x65, 0xfb, 0x79, 0xcb, 0xf6, 0xf3, 0x96, 0xed, 0x67, + 0xdf, 0xb2, 0xe5, 0x93, 0x9f, 0xfd, 0xf2, 0x9c, 0x96, 0xfb, 0x8f, 0x7a, 0xf0, 0xa7, 0xb5, 0x5e, + 0xac, 0xfb, 0x47, 0xb8, 0xbc, 0x6d, 0x40, 0x86, 0xfc, 0x51, 0x8c, 0xa6, 0xdd, 0x6a, 0xd5, 0x9d, + 0x43, 0xd6, 0xb3, 0x2d, 0x74, 0x6f, 0x25, 0x32, 0x00, 0xf9, 0xb3, 0x22, 0x1b, 0x54, 0x98, 0x2d, + 0x37, 0x4e, 0x38, 0x62, 0xde, 0x85, 0x74, 0xd3, 0x3b, 0x0c, 0xd8, 0x12, 0x5d, 0x0b, 0xa1, 0xc2, + 0x46, 0xaf, 0x34, 0x24, 0x83, 0x66, 0x30, 0x80, 0x55, 0xdb, 0x3f, 0xf6, 0x43, 0xd5, 0xf4, 0x38, + 0xd5, 0xb0, 0x4f, 0x65, 0xd5, 0xf6, 0xc3, 0x11, 0x1c, 0xb6, 0xaa, 0xee, 0x71, 0x95, 0x4e, 0x0a, + 0x9e, 0x17, 0x61, 0x42, 0xd1, 0x36, 0x22, 0xe7, 0x1f, 0xc2, 0x37, 0x58, 0x31, 0x55, 0xf3, 0xb8, + 0x9c, 0x10, 0x03, 0x32, 0xf7, 0x38, 0x8c, 0x49, 0xdc, 0x66, 0x06, 0xb4, 0x03, 0xf6, 0x3d, 0x4a, + 0xed, 0x20, 0xf7, 0x25, 0x0d, 0xd2, 0xec, 0x1d, 0x82, 0x6d, 0xbb, 0xde, 0x36, 0x5f, 0x80, 0x64, + 0x83, 0x7f, 0x97, 0xe9, 0x61, 0xbf, 0x37, 0x4b, 0x18, 0xcc, 0x55, 0x18, 0x6a, 0x07, 0xdf, 0x75, + 0x7a, 0xa8, 0x2f, 0xc3, 0x12, 0x78, 0xee, 0xbe, 0x06, 0x93, 0xec, 0x15, 0x57, 0x8f, 0xbd, 0xf9, + 0x6c, 0xb7, 0x66, 0xbe, 0xae, 0xc1, 0x68, 0x70, 0x64, 0xee, 0xc3, 0x78, 0x70, 0x40, 0xdf, 0xae, + 0xa7, 0x91, 0x9a, 0x17, 0x2c, 0xdc, 0xc5, 0xb1, 0x18, 0xf1, 0x89, 0x3e, 0x85, 0xa2, 0x6b, 0xb2, + 0x3c, 0x38, 0x53, 0x80, 0xa9, 0x08, 0xb1, 0x93, 0x2c, 0xc8, 0xb9, 0xf3, 0x30, 0xba, 0xe9, 0xfa, + 0xf4, 0x27, 0x73, 0xcc, 0xd3, 0xc2, 0x53, 0x85, 0x62, 0xc2, 0x38, 0x45, 0xc0, 0x0b, 0xe7, 0x61, + 0x84, 0x65, 0xbf, 0x39, 0x0c, 0x89, 0x8d, 0x82, 0x71, 0x8a, 0xfc, 0x5f, 0x34, 0x34, 0xf2, 0x7f, + 0xc9, 0x48, 0x14, 0xd7, 0x3f, 0xc8, 0x47, 0x4c, 0xfb, 0xc3, 0xd4, 0x3c, 0xff, 0x2f, 0x00, 0x00, + 0xff, 0xff, 0xf9, 0x34, 0xbb, 0x28, 0x57, 0x81, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -2093,7 +2100,7 @@ func (this *NotPacked) Equal(that interface{}) bool { } type MessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetName() string GetHilarity() Message_Humour GetHeightInCm() uint32 @@ -2108,11 +2115,11 @@ type MessageFace interface { GetProto2Value() map[int64]*test.NinOptEnum } -func (this *Message) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Message) Proto() proto.Message { return this } -func (this *Message) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Message) TestProto() proto.Message { return NewMessageFromFace(this) } @@ -2182,15 +2189,15 @@ func NewMessageFromFace(that MessageFace) *Message { } type NestedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetBunny() string } -func (this *Nested) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Nested) Proto() proto.Message { return this } -func (this *Nested) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Nested) TestProto() proto.Message { return NewNestedFromFace(this) } @@ -2205,7 +2212,7 @@ func NewNestedFromFace(that NestedFace) *Nested { } type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -2225,11 +2232,11 @@ type AllMapsFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) Proto() proto.Message { return this } -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) TestProto() proto.Message { return NewAllMapsFromFace(this) } @@ -2324,7 +2331,7 @@ func NewAllMapsFromFace(that AllMapsFace) *AllMaps { } type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -2344,11 +2351,11 @@ type AllMapsOrderedFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) Proto() proto.Message { return this } -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) TestProto() proto.Message { return NewAllMapsOrderedFromFace(this) } @@ -2443,17 +2450,17 @@ func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { } type MessageWithMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNameMapping() map[int32]string GetMsgMapping() map[int64]*FloatingPoint GetByteMapping() map[bool][]byte } -func (this *MessageWithMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *MessageWithMap) Proto() proto.Message { return this } -func (this *MessageWithMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *MessageWithMap) TestProto() proto.Message { return NewMessageWithMapFromFace(this) } @@ -2478,15 +2485,15 @@ func NewMessageWithMapFromFace(that MessageWithMapFace) *MessageWithMap { } type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetF() float64 } -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) Proto() proto.Message { return this } -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) TestProto() proto.Message { return NewFloatingPointFromFace(this) } @@ -2501,16 +2508,16 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { } type Uint128PairFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() github_com_gogo_protobuf_test_custom.Uint128 GetRight() *github_com_gogo_protobuf_test_custom.Uint128 } -func (this *Uint128Pair) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Uint128Pair) Proto() proto.Message { return this } -func (this *Uint128Pair) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Uint128Pair) TestProto() proto.Message { return NewUint128PairFromFace(this) } @@ -2530,14 +2537,14 @@ func NewUint128PairFromFace(that Uint128PairFace) *Uint128Pair { } type ContainsNestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message } -func (this *ContainsNestedMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap) Proto() proto.Message { return this } -func (this *ContainsNestedMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap) TestProto() proto.Message { return NewContainsNestedMapFromFace(this) } @@ -2547,15 +2554,15 @@ func NewContainsNestedMapFromFace(that ContainsNestedMapFace) *ContainsNestedMap } type ContainsNestedMap_NestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedMapField() map[string]float64 } -func (this *ContainsNestedMap_NestedMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap_NestedMap) Proto() proto.Message { return this } -func (this *ContainsNestedMap_NestedMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap_NestedMap) TestProto() proto.Message { return NewContainsNestedMap_NestedMapFromFace(this) } @@ -2570,15 +2577,15 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace } type NotPackedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetKey() []uint64 } -func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NotPacked) Proto() proto.Message { return this } -func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NotPacked) TestProto() proto.Message { return NewNotPackedFromFace(this) } @@ -2613,7 +2620,7 @@ func (this *Message) GoString() string { for k := range this.Terrain { keysForTerrain = append(keysForTerrain, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) + sortkeys.Int64s(keysForTerrain) mapStringForTerrain := "map[int64]*Nested{" for _, k := range keysForTerrain { mapStringForTerrain += fmt.Sprintf("%#v: %#v,", k, this.Terrain[k]) @@ -2629,7 +2636,7 @@ func (this *Message) GoString() string { for k := range this.Proto2Value { keysForProto2Value = append(keysForProto2Value, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) + sortkeys.Int64s(keysForProto2Value) mapStringForProto2Value := "map[int64]*test.NinOptEnum{" for _, k := range keysForProto2Value { mapStringForProto2Value += fmt.Sprintf("%#v: %#v,", k, this.Proto2Value[k]) @@ -2661,7 +2668,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -2674,7 +2681,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2687,7 +2694,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2700,7 +2707,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2713,7 +2720,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2726,7 +2733,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2739,7 +2746,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2752,7 +2759,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2765,7 +2772,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -2778,7 +2785,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -2791,7 +2798,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -2804,7 +2811,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -2817,7 +2824,7 @@ func (this *AllMaps) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -2830,7 +2837,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -2843,7 +2850,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -2856,7 +2863,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -2869,7 +2876,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -2891,7 +2898,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -2904,7 +2911,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2917,7 +2924,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2930,7 +2937,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2943,7 +2950,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2956,7 +2963,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2969,7 +2976,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2982,7 +2989,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2995,7 +3002,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -3008,7 +3015,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -3021,7 +3028,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -3034,7 +3041,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -3047,7 +3054,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -3060,7 +3067,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -3073,7 +3080,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -3086,7 +3093,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -3099,7 +3106,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -3121,7 +3128,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.NameMapping { keysForNameMapping = append(keysForNameMapping, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) + sortkeys.Int32s(keysForNameMapping) mapStringForNameMapping := "map[int32]string{" for _, k := range keysForNameMapping { mapStringForNameMapping += fmt.Sprintf("%#v: %#v,", k, this.NameMapping[k]) @@ -3134,7 +3141,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.MsgMapping { keysForMsgMapping = append(keysForMsgMapping, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) + sortkeys.Int64s(keysForMsgMapping) mapStringForMsgMapping := "map[int64]*FloatingPoint{" for _, k := range keysForMsgMapping { mapStringForMsgMapping += fmt.Sprintf("%#v: %#v,", k, this.MsgMapping[k]) @@ -3147,7 +3154,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.ByteMapping { keysForByteMapping = append(keysForByteMapping, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) + sortkeys.Bools(keysForByteMapping) mapStringForByteMapping := "map[bool][]byte{" for _, k := range keysForByteMapping { mapStringForByteMapping += fmt.Sprintf("%#v: %#v,", k, this.ByteMapping[k]) @@ -3199,7 +3206,7 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { for k := range this.NestedMapField { keysForNestedMapField = append(keysForNestedMapField, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) + sortkeys.Strings(keysForNestedMapField) mapStringForNestedMapField := "map[string]float64{" for _, k := range keysForNestedMapField { mapStringForNestedMapField += fmt.Sprintf("%#v: %#v,", k, this.NestedMapField[k]) @@ -3311,7 +3318,8 @@ func (m *Message) MarshalTo(dAtA []byte) (int, error) { if m.Score != 0 { dAtA[i] = 0x4d i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(m.Score)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Score)))) + i += 4 } if len(m.Terrain) > 0 { for k := range m.Terrain { @@ -3432,7 +3440,8 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } if len(m.StringToFloatMap) > 0 { @@ -3448,7 +3457,8 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(v)))) + i += 4 } } if len(m.Int32Map) > 0 { @@ -3550,10 +3560,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Sfixed32Map) > 0 { @@ -3565,10 +3577,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Fixed64Map) > 0 { @@ -3580,10 +3594,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.Sfixed64Map) > 0 { @@ -3595,10 +3611,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.BoolMap) > 0 { @@ -3737,7 +3755,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { dAtA[i] = 0xa i++ @@ -3750,7 +3768,8 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } if len(m.StringToFloatMap) > 0 { @@ -3758,7 +3777,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { dAtA[i] = 0x12 i++ @@ -3771,7 +3790,8 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(v)))) + i += 4 } } if len(m.Int32Map) > 0 { @@ -3779,7 +3799,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Int32Map { keysForInt32Map = append(keysForInt32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { dAtA[i] = 0x1a i++ @@ -3799,7 +3819,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Int64Map { keysForInt64Map = append(keysForInt64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { dAtA[i] = 0x22 i++ @@ -3819,7 +3839,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Uint32Map { keysForUint32Map = append(keysForUint32Map, uint32(k)) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { dAtA[i] = 0x2a i++ @@ -3839,7 +3859,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Uint64Map { keysForUint64Map = append(keysForUint64Map, uint64(k)) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { dAtA[i] = 0x32 i++ @@ -3859,7 +3879,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sint32Map { keysForSint32Map = append(keysForSint32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { dAtA[i] = 0x3a i++ @@ -3879,7 +3899,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sint64Map { keysForSint64Map = append(keysForSint64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { dAtA[i] = 0x42 i++ @@ -3899,7 +3919,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, uint32(k)) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { dAtA[i] = 0x4a i++ @@ -3908,10 +3928,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Sfixed32Map) > 0 { @@ -3919,7 +3941,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { dAtA[i] = 0x52 i++ @@ -3928,10 +3950,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Fixed64Map) > 0 { @@ -3939,7 +3963,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, uint64(k)) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { dAtA[i] = 0x5a i++ @@ -3948,10 +3972,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.Sfixed64Map) > 0 { @@ -3959,7 +3985,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { dAtA[i] = 0x62 i++ @@ -3968,10 +3994,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.BoolMap) > 0 { @@ -3979,7 +4007,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.BoolMap { keysForBoolMap = append(keysForBoolMap, bool(k)) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { dAtA[i] = 0x6a i++ @@ -4009,7 +4037,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringMap { keysForStringMap = append(keysForStringMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { dAtA[i] = 0x72 i++ @@ -4031,7 +4059,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { dAtA[i] = 0x7a i++ @@ -4059,7 +4087,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { dAtA[i] = 0x82 i++ @@ -4082,7 +4110,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { dAtA[i] = 0x8a i++ @@ -4221,7 +4249,8 @@ func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { if m.F != 0 { dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(m.F)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.F)))) + i += 8 } return i, nil } @@ -4308,7 +4337,8 @@ func (m *ContainsNestedMap_NestedMap) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } return i, nil @@ -4339,24 +4369,6 @@ func (m *NotPacked) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Theproto3(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 encodeFixed32Theproto3(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 encodeVarintTheproto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -5416,7 +5428,7 @@ func (this *Message) String() string { for k := range this.Terrain { keysForTerrain = append(keysForTerrain, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) + sortkeys.Int64s(keysForTerrain) mapStringForTerrain := "map[int64]*Nested{" for _, k := range keysForTerrain { mapStringForTerrain += fmt.Sprintf("%v: %v,", k, this.Terrain[k]) @@ -5426,7 +5438,7 @@ func (this *Message) String() string { for k := range this.Proto2Value { keysForProto2Value = append(keysForProto2Value, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) + sortkeys.Int64s(keysForProto2Value) mapStringForProto2Value := "map[int64]*test.NinOptEnum{" for _, k := range keysForProto2Value { mapStringForProto2Value += fmt.Sprintf("%v: %v,", k, this.Proto2Value[k]) @@ -5467,7 +5479,7 @@ func (this *AllMaps) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -5477,7 +5489,7 @@ func (this *AllMaps) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -5487,7 +5499,7 @@ func (this *AllMaps) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -5497,7 +5509,7 @@ func (this *AllMaps) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -5507,7 +5519,7 @@ func (this *AllMaps) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -5517,7 +5529,7 @@ func (this *AllMaps) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -5527,7 +5539,7 @@ func (this *AllMaps) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -5537,7 +5549,7 @@ func (this *AllMaps) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -5547,7 +5559,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -5557,7 +5569,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -5567,7 +5579,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -5577,7 +5589,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -5587,7 +5599,7 @@ func (this *AllMaps) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -5597,7 +5609,7 @@ func (this *AllMaps) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -5607,7 +5619,7 @@ func (this *AllMaps) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -5617,7 +5629,7 @@ func (this *AllMaps) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -5627,7 +5639,7 @@ func (this *AllMaps) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -5663,7 +5675,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -5673,7 +5685,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -5683,7 +5695,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -5693,7 +5705,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -5703,7 +5715,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -5713,7 +5725,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -5723,7 +5735,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -5733,7 +5745,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -5743,7 +5755,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -5753,7 +5765,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -5763,7 +5775,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -5773,7 +5785,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -5783,7 +5795,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -5793,7 +5805,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -5803,7 +5815,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -5813,7 +5825,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -5823,7 +5835,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -5859,7 +5871,7 @@ func (this *MessageWithMap) String() string { for k := range this.NameMapping { keysForNameMapping = append(keysForNameMapping, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) + sortkeys.Int32s(keysForNameMapping) mapStringForNameMapping := "map[int32]string{" for _, k := range keysForNameMapping { mapStringForNameMapping += fmt.Sprintf("%v: %v,", k, this.NameMapping[k]) @@ -5869,7 +5881,7 @@ func (this *MessageWithMap) String() string { for k := range this.MsgMapping { keysForMsgMapping = append(keysForMsgMapping, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) + sortkeys.Int64s(keysForMsgMapping) mapStringForMsgMapping := "map[int64]*FloatingPoint{" for _, k := range keysForMsgMapping { mapStringForMsgMapping += fmt.Sprintf("%v: %v,", k, this.MsgMapping[k]) @@ -5879,7 +5891,7 @@ func (this *MessageWithMap) String() string { for k := range this.ByteMapping { keysForByteMapping = append(keysForByteMapping, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) + sortkeys.Bools(keysForByteMapping) mapStringForByteMapping := "map[bool][]byte{" for _, k := range keysForByteMapping { mapStringForByteMapping += fmt.Sprintf("%v: %v,", k, this.ByteMapping[k]) @@ -5931,7 +5943,7 @@ func (this *ContainsNestedMap_NestedMap) String() string { for k := range this.NestedMapField { keysForNestedMapField = append(keysForNestedMapField, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) + sortkeys.Strings(keysForNestedMapField) mapStringForNestedMapField := "map[string]float64{" for _, k := range keysForNestedMapField { mapStringForNestedMapField += fmt.Sprintf("%v: %v,", k, this.NestedMapField[k]) @@ -6230,11 +6242,8 @@ func (m *Message) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Score = float32(math.Float32frombits(v)) case 10: if wireType != 2 { @@ -6262,41 +6271,14 @@ func (m *Message) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Terrain == nil { m.Terrain = make(map[int64]*Nested) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue *Nested + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6306,46 +6288,74 @@ func (m *Message) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Nested{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Nested{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Terrain[mapkey] = mapvalue - } else { - var mapvalue *Nested - m.Terrain[mapkey] = mapvalue } + m.Terrain[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6406,41 +6416,14 @@ func (m *Message) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Proto2Value == nil { m.Proto2Value = make(map[int64]*test.NinOptEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue *test.NinOptEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6450,46 +6433,74 @@ func (m *Message) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &test.NinOptEnum{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &test.NinOptEnum{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Proto2Value[mapkey] = mapvalue - } else { - var mapvalue *test.NinOptEnum - m.Proto2Value[mapkey] = mapvalue } + m.Proto2Value[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -6646,51 +6657,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6700,30 +6674,62 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue } + m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -6751,51 +6757,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToFloatMap == nil { m.StringToFloatMap = make(map[string]float32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6805,54 +6774,68 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + mapvalue = math.Float32frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF + m.StringToFloatMap[mapkey] = mapvalue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) } - var keykey uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6862,31 +6845,26 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + if msglen < 0 { + return ErrInvalidLengthTheproto3 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF } if m.Int32Map == nil { m.Int32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6896,31 +6874,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue } + m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -6948,41 +6953,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6992,31 +6970,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue } + m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -7044,41 +7049,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint32Map == nil { m.Uint32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7088,31 +7066,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue } + m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -7140,41 +7145,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint64Map == nil { m.Uint64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7184,31 +7162,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue } + m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -7236,43 +7241,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) if m.Sint32Map == nil { m.Sint32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7282,33 +7258,64 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey = int32(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue = int32(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue } + m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -7336,43 +7343,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) if m.Sint64Map == nil { m.Sint64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7382,33 +7360,64 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue = int64(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue } + m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -7436,35 +7445,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 if m.Fixed32Map == nil { m.Fixed32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7474,25 +7462,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } + m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -7520,35 +7523,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 if m.Sfixed32Map == nil { m.Sfixed32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7558,25 +7540,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue } + m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -7604,39 +7601,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7646,29 +7618,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue } + m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -7696,39 +7679,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 if m.Sfixed64Map == nil { m.Sfixed64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7738,29 +7696,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue } + m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -7788,42 +7757,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) if m.BoolMap == nil { m.BoolMap = make(map[bool]bool) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey bool + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7833,32 +7774,62 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue } + m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -7886,51 +7857,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringMap == nil { m.StringMap = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7940,84 +7874,86 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - var stringLenmapkey uint64 + m.StringMap[mapkey] = mapvalue + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8027,26 +7963,26 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthTheproto3 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8056,42 +7992,81 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue } + m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -8119,51 +8094,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue MapEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8173,31 +8111,69 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue } + m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -8225,51 +8201,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToMsgMap == nil { m.StringToMsgMap = make(map[string]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8279,46 +8218,85 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue } + m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -8371,47 +8349,10 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) } - var stringLenmapkey uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8421,26 +8362,26 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthTheproto3 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8450,30 +8391,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue } + m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -8501,51 +8474,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToFloatMap == nil { m.StringToFloatMap = make(map[string]float32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8555,26 +8491,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + mapvalue = math.Float32frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue } + m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -8602,41 +8574,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int32Map == nil { m.Int32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8646,31 +8591,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue } + m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -8698,41 +8670,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8742,31 +8687,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue } + m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -8794,56 +8766,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint32Map == nil { m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 + } + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8853,16 +8783,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } + m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -8890,41 +8862,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint64Map == nil { m.Uint64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8934,31 +8879,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue } + m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -8986,43 +8958,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) if m.Sint32Map == nil { m.Sint32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9032,33 +8975,64 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey = int32(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue = int32(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue } + m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -9086,43 +9060,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) if m.Sint64Map == nil { m.Sint64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9132,33 +9077,64 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue = int64(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue } + m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -9186,35 +9162,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 if m.Fixed32Map == nil { m.Fixed32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9224,25 +9179,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue } + m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -9270,35 +9240,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 if m.Sfixed32Map == nil { m.Sfixed32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9308,25 +9257,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue } + m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -9354,39 +9318,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9396,29 +9335,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue } + m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -9446,39 +9396,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 if m.Sfixed64Map == nil { m.Sfixed64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9488,29 +9413,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue } + m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -9538,42 +9474,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) if m.BoolMap == nil { m.BoolMap = make(map[bool]bool) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey bool + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9583,32 +9491,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue } + m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -9636,51 +9574,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringMap == nil { m.StringMap = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9690,84 +9591,86 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } } - var stringLenmapkey uint64 + m.StringMap[mapkey] = mapvalue + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9777,26 +9680,26 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthTheproto3 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9806,42 +9709,81 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue } + m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -9869,51 +9811,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue MapEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9923,31 +9828,69 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue } + m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -9975,51 +9918,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToMsgMap == nil { m.StringToMsgMap = make(map[string]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -10029,46 +9935,85 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue } + m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -10116,52 +10061,15 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { if wireType == 4 { return fmt.Errorf("proto: MessageWithMap: wiretype end group for non-group") } - if fieldNum <= 0 { - return fmt.Errorf("proto: MessageWithMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NameMapping", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if fieldNum <= 0 { + return fmt.Errorf("proto: MessageWithMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NameMapping", wireType) } - var mapkey int32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -10171,16 +10079,26 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthTheproto3 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } if m.NameMapping == nil { m.NameMapping = make(map[int32]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -10190,41 +10108,69 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.NameMapping[mapkey] = mapvalue - } else { - var mapvalue string - m.NameMapping[mapkey] = mapvalue } + m.NameMapping[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -10252,43 +10198,14 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) if m.MsgMapping == nil { m.MsgMapping = make(map[int64]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -10298,46 +10215,77 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MsgMapping[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.MsgMapping[mapkey] = mapvalue } + m.MsgMapping[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -10365,42 +10313,14 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) if m.ByteMapping == nil { m.ByteMapping = make(map[bool][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey bool + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -10410,42 +10330,72 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.ByteMapping[mapkey] = mapvalue - } else { - var mapvalue []byte - m.ByteMapping[mapkey] = mapvalue } + m.ByteMapping[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -10505,15 +10455,8 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.F = float64(math.Float64frombits(v)) default: iNdEx = preIndex @@ -10753,51 +10696,14 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.NestedMapField == nil { m.NestedMapField = make(map[string]float64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -10807,30 +10713,62 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.NestedMapField[mapkey] = mapvalue - } else { - var mapvalue float64 - m.NestedMapField[mapkey] = mapvalue } + m.NestedMapField[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3pb_test.go index f13f1d886..ca8a80a5e 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/both/theproto3pb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/theproto3.proto -// DO NOT EDIT! /* Package theproto3 is a generated protocol buffer package. @@ -22,13 +21,12 @@ It has these top-level messages: package theproto3 import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" import _ "github.com/gogo/protobuf/test/combos/both" @@ -40,14 +38,14 @@ var _ = math.Inf func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -68,13 +66,13 @@ func TestMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMessageMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -86,7 +84,7 @@ func TestMessageMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -101,7 +99,7 @@ func TestMessageMarshalTo(t *testing.T) { } func BenchmarkMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 10000) for i := 0; i < 10000; i++ { @@ -109,7 +107,7 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -119,11 +117,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } func BenchmarkMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } @@ -133,7 +131,7 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -142,14 +140,14 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { func TestNestedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -170,13 +168,13 @@ func TestNestedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -188,7 +186,7 @@ func TestNestedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -203,7 +201,7 @@ func TestNestedMarshalTo(t *testing.T) { } func BenchmarkNestedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nested, 10000) for i := 0; i < 10000; i++ { @@ -211,7 +209,7 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -221,11 +219,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } func BenchmarkNestedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } @@ -235,7 +233,7 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -244,14 +242,14 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -272,13 +270,13 @@ func TestAllMapsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllMapsMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -290,7 +288,7 @@ func TestAllMapsMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -305,7 +303,7 @@ func TestAllMapsMarshalTo(t *testing.T) { } func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 10000) for i := 0; i < 10000; i++ { @@ -313,7 +311,7 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -323,11 +321,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } @@ -337,7 +335,7 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -346,14 +344,14 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -374,13 +372,13 @@ func TestAllMapsOrderedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllMapsOrderedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -392,7 +390,7 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -407,7 +405,7 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { } func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 10000) for i := 0; i < 10000; i++ { @@ -415,7 +413,7 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -425,11 +423,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } @@ -439,7 +437,7 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -448,14 +446,14 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { func TestMessageWithMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -476,13 +474,13 @@ func TestMessageWithMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMessageWithMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -494,7 +492,7 @@ func TestMessageWithMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -509,7 +507,7 @@ func TestMessageWithMapMarshalTo(t *testing.T) { } func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MessageWithMap, 10000) for i := 0; i < 10000; i++ { @@ -517,7 +515,7 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -527,11 +525,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } @@ -541,7 +539,7 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -550,14 +548,14 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -578,13 +576,13 @@ func TestFloatingPointProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestFloatingPointMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -596,7 +594,7 @@ func TestFloatingPointMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -611,7 +609,7 @@ func TestFloatingPointMarshalTo(t *testing.T) { } func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 10000) for i := 0; i < 10000; i++ { @@ -619,7 +617,7 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -629,11 +627,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } @@ -643,7 +641,7 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -652,14 +650,14 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { func TestUint128PairProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -680,13 +678,13 @@ func TestUint128PairProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUint128PairMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -698,7 +696,7 @@ func TestUint128PairMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -713,7 +711,7 @@ func TestUint128PairMarshalTo(t *testing.T) { } func BenchmarkUint128PairProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Uint128Pair, 10000) for i := 0; i < 10000; i++ { @@ -721,7 +719,7 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -731,11 +729,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } @@ -745,7 +743,7 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -754,14 +752,14 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { func TestContainsNestedMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -782,13 +780,13 @@ func TestContainsNestedMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestContainsNestedMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -800,7 +798,7 @@ func TestContainsNestedMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -815,7 +813,7 @@ func TestContainsNestedMapMarshalTo(t *testing.T) { } func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap, 10000) for i := 0; i < 10000; i++ { @@ -823,7 +821,7 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -833,11 +831,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } @@ -847,7 +845,7 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -856,14 +854,14 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { func TestContainsNestedMap_NestedMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -884,13 +882,13 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -902,7 +900,7 @@ func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -917,7 +915,7 @@ func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { } func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap_NestedMap, 10000) for i := 0; i < 10000; i++ { @@ -925,7 +923,7 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -935,11 +933,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } @@ -949,7 +947,7 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -958,14 +956,14 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { func TestNotPackedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -986,13 +984,13 @@ func TestNotPackedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNotPackedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1004,7 +1002,7 @@ func TestNotPackedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1019,7 +1017,7 @@ func TestNotPackedMarshalTo(t *testing.T) { } func BenchmarkNotPackedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NotPacked, 10000) for i := 0; i < 10000; i++ { @@ -1027,7 +1025,7 @@ func BenchmarkNotPackedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1037,11 +1035,11 @@ func BenchmarkNotPackedProtoMarshal(b *testing.B) { } func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNotPacked(popr, false)) if err != nil { panic(err) } @@ -1051,7 +1049,7 @@ func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1060,15 +1058,15 @@ func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1081,15 +1079,15 @@ func TestMessageJSON(t *testing.T) { } func TestNestedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1102,15 +1100,15 @@ func TestNestedJSON(t *testing.T) { } func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1123,15 +1121,15 @@ func TestAllMapsJSON(t *testing.T) { } func TestAllMapsOrderedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1144,15 +1142,15 @@ func TestAllMapsOrderedJSON(t *testing.T) { } func TestMessageWithMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1165,15 +1163,15 @@ func TestMessageWithMapJSON(t *testing.T) { } func TestFloatingPointJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1186,15 +1184,15 @@ func TestFloatingPointJSON(t *testing.T) { } func TestUint128PairJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1207,15 +1205,15 @@ func TestUint128PairJSON(t *testing.T) { } func TestContainsNestedMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1228,15 +1226,15 @@ func TestContainsNestedMapJSON(t *testing.T) { } func TestContainsNestedMap_NestedMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1249,15 +1247,15 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { } func TestNotPackedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1270,11 +1268,11 @@ func TestNotPackedJSON(t *testing.T) { } func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1287,11 +1285,11 @@ func TestMessageProtoText(t *testing.T) { func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1304,11 +1302,11 @@ func TestMessageProtoCompactText(t *testing.T) { func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1321,11 +1319,11 @@ func TestNestedProtoText(t *testing.T) { func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1338,11 +1336,11 @@ func TestNestedProtoCompactText(t *testing.T) { func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1355,11 +1353,11 @@ func TestAllMapsProtoText(t *testing.T) { func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1372,11 +1370,11 @@ func TestAllMapsProtoCompactText(t *testing.T) { func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1389,11 +1387,11 @@ func TestAllMapsOrderedProtoText(t *testing.T) { func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1406,11 +1404,11 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1423,11 +1421,11 @@ func TestMessageWithMapProtoText(t *testing.T) { func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1440,11 +1438,11 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1457,11 +1455,11 @@ func TestFloatingPointProtoText(t *testing.T) { func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1474,11 +1472,11 @@ func TestFloatingPointProtoCompactText(t *testing.T) { func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1491,11 +1489,11 @@ func TestUint128PairProtoText(t *testing.T) { func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1508,11 +1506,11 @@ func TestUint128PairProtoCompactText(t *testing.T) { func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1525,11 +1523,11 @@ func TestContainsNestedMapProtoText(t *testing.T) { func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1542,11 +1540,11 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1559,11 +1557,11 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1576,11 +1574,11 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { func TestNotPackedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1593,11 +1591,11 @@ func TestNotPackedProtoText(t *testing.T) { func TestNotPackedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1612,14 +1610,14 @@ func TestTheproto3Description(t *testing.T) { Theproto3Description() } func TestMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1627,14 +1625,14 @@ func TestMessageVerboseEqual(t *testing.T) { } } func TestNestedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1642,14 +1640,14 @@ func TestNestedVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1657,14 +1655,14 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1672,14 +1670,14 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestMessageWithMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1687,14 +1685,14 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { } } func TestFloatingPointVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1702,14 +1700,14 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestUint128PairVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1717,14 +1715,14 @@ func TestUint128PairVerboseEqual(t *testing.T) { } } func TestContainsNestedMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1732,14 +1730,14 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { } } func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1747,14 +1745,14 @@ func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { } } func TestNotPackedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1762,7 +1760,7 @@ func TestNotPackedVerboseEqual(t *testing.T) { } } func TestMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1770,7 +1768,7 @@ func TestMessageFace(t *testing.T) { } } func TestNestedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1778,7 +1776,7 @@ func TestNestedFace(t *testing.T) { } } func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1786,7 +1784,7 @@ func TestAllMapsFace(t *testing.T) { } } func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1794,7 +1792,7 @@ func TestAllMapsOrderedFace(t *testing.T) { } } func TestMessageWithMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1802,7 +1800,7 @@ func TestMessageWithMapFace(t *testing.T) { } } func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1810,7 +1808,7 @@ func TestFloatingPointFace(t *testing.T) { } } func TestUint128PairFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1818,7 +1816,7 @@ func TestUint128PairFace(t *testing.T) { } } func TestContainsNestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1826,7 +1824,7 @@ func TestContainsNestedMapFace(t *testing.T) { } } func TestContainsNestedMap_NestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1834,7 +1832,7 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { } } func TestNotPackedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1842,141 +1840,141 @@ func TestNotPackedFace(t *testing.T) { } } func TestMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMessageWithMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUint128PairGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestContainsNestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestContainsNestedMap_NestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNotPackedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1987,14 +1985,14 @@ func TestMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 1000) for i := 0; i < 1000; i++ { @@ -2009,10 +2007,10 @@ func BenchmarkMessageSize(b *testing.B) { func TestNestedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2023,14 +2021,14 @@ func TestNestedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nested, 1000) for i := 0; i < 1000; i++ { @@ -2045,10 +2043,10 @@ func BenchmarkNestedSize(b *testing.B) { func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2059,14 +2057,14 @@ func TestAllMapsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 1000) for i := 0; i < 1000; i++ { @@ -2081,10 +2079,10 @@ func BenchmarkAllMapsSize(b *testing.B) { func TestAllMapsOrderedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2095,14 +2093,14 @@ func TestAllMapsOrderedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 1000) for i := 0; i < 1000; i++ { @@ -2117,10 +2115,10 @@ func BenchmarkAllMapsOrderedSize(b *testing.B) { func TestMessageWithMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2131,14 +2129,14 @@ func TestMessageWithMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageWithMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MessageWithMap, 1000) for i := 0; i < 1000; i++ { @@ -2153,10 +2151,10 @@ func BenchmarkMessageWithMapSize(b *testing.B) { func TestFloatingPointSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2167,14 +2165,14 @@ func TestFloatingPointSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 1000) for i := 0; i < 1000; i++ { @@ -2189,10 +2187,10 @@ func BenchmarkFloatingPointSize(b *testing.B) { func TestUint128PairSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2203,14 +2201,14 @@ func TestUint128PairSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUint128PairSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Uint128Pair, 1000) for i := 0; i < 1000; i++ { @@ -2225,10 +2223,10 @@ func BenchmarkUint128PairSize(b *testing.B) { func TestContainsNestedMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2239,14 +2237,14 @@ func TestContainsNestedMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkContainsNestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap, 1000) for i := 0; i < 1000; i++ { @@ -2261,10 +2259,10 @@ func BenchmarkContainsNestedMapSize(b *testing.B) { func TestContainsNestedMap_NestedMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2275,14 +2273,14 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap_NestedMap, 1000) for i := 0; i < 1000; i++ { @@ -2297,10 +2295,10 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { func TestNotPackedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2311,14 +2309,14 @@ func TestNotPackedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNotPackedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NotPacked, 1000) for i := 0; i < 1000; i++ { @@ -2332,7 +2330,7 @@ func BenchmarkNotPackedSize(b *testing.B) { } func TestMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2341,7 +2339,7 @@ func TestMessageStringer(t *testing.T) { } } func TestNestedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2350,7 +2348,7 @@ func TestNestedStringer(t *testing.T) { } } func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2359,7 +2357,7 @@ func TestAllMapsStringer(t *testing.T) { } } func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2368,7 +2366,7 @@ func TestAllMapsOrderedStringer(t *testing.T) { } } func TestMessageWithMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2377,7 +2375,7 @@ func TestMessageWithMapStringer(t *testing.T) { } } func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2386,7 +2384,7 @@ func TestFloatingPointStringer(t *testing.T) { } } func TestUint128PairStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2395,7 +2393,7 @@ func TestUint128PairStringer(t *testing.T) { } } func TestContainsNestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2404,7 +2402,7 @@ func TestContainsNestedMapStringer(t *testing.T) { } } func TestContainsNestedMap_NestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2413,7 +2411,7 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { } } func TestNotPackedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go index 18f9996c4..01b507dbb 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/theproto3.proto -// DO NOT EDIT! /* Package theproto3 is a generated protocol buffer package. @@ -29,17 +28,18 @@ import test "github.com/gogo/protobuf/test/combos/both" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strconv "strconv" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -238,542 +238,549 @@ func init() { proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } -func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Message) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *Nested) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Nested) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMaps) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMapsOrdered) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *MessageWithMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *MessageWithMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *FloatingPoint) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *Uint128Pair) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Uint128Pair) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ContainsNestedMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ContainsNestedMap_NestedMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NotPacked) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func Theproto3Description() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7844 bytes of a gzipped FileDescriptorSet + // 7955 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, - 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, - 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x90, 0x73, 0xc1, 0x58, 0x52, 0x00, 0x10, 0x1c, 0x71, - 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0xeb, 0x54, 0x50, 0x4d, 0xe0, 0x90, 0x6c, 0x09, 0xe8, 0xc6, - 0xa2, 0x1b, 0x92, 0xe8, 0x87, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xa4, 0x72, 0xdd, 0xa4, 0xe2, 0x75, - 0x7c, 0x91, 0x37, 0xb5, 0xb1, 0x77, 0x37, 0x17, 0xaf, 0xb3, 0x71, 0xb6, 0xb6, 0x52, 0x59, 0xe5, - 0xc1, 0xc9, 0xe4, 0x25, 0xe5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0x3b, 0x15, 0x27, 0x71, - 0x12, 0x6f, 0xd6, 0x55, 0xbb, 0x55, 0xde, 0x87, 0xd4, 0xb9, 0x75, 0xf7, 0x39, 0x68, 0xa0, 0xc1, - 0x91, 0x64, 0xfb, 0x41, 0x2f, 0x33, 0xe8, 0x73, 0xfe, 0xef, 0xeb, 0xbf, 0xff, 0xdb, 0xf9, 0xfb, - 0x74, 0x03, 0x84, 0xef, 0xad, 0xc1, 0x85, 0x63, 0xc7, 0x39, 0x6e, 0xa0, 0x2b, 0xad, 0xb6, 0xe3, - 0x39, 0x87, 0x9d, 0xa3, 0x2b, 0x75, 0xe4, 0xd6, 0xda, 0x56, 0xcb, 0x73, 0xda, 0x4b, 0x64, 0x4c, - 0x9f, 0xa4, 0x12, 0x4b, 0x5c, 0x22, 0xb7, 0x0d, 0x53, 0x1b, 0x56, 0x03, 0xad, 0xfb, 0x82, 0x7b, - 0xc8, 0xd3, 0x6f, 0x42, 0xf2, 0xc8, 0x6a, 0xa0, 0xac, 0x72, 0x41, 0x5d, 0x48, 0xaf, 0x5c, 0x5a, - 0x92, 0x40, 0x4b, 0x22, 0x62, 0x17, 0x0f, 0x1b, 0x04, 0x91, 0xfb, 0x7e, 0x12, 0xa6, 0x23, 0x66, - 0x75, 0x1d, 0x92, 0xb6, 0xd9, 0xc4, 0x8c, 0xca, 0xc2, 0x98, 0x41, 0x3e, 0xeb, 0x59, 0x18, 0x6d, - 0x99, 0xb5, 0x57, 0xcd, 0x63, 0x94, 0x4d, 0x90, 0x61, 0x7e, 0xa8, 0xcf, 0x01, 0xd4, 0x51, 0x0b, - 0xd9, 0x75, 0x64, 0xd7, 0x4e, 0xb3, 0xea, 0x05, 0x75, 0x61, 0xcc, 0x08, 0x8d, 0xe8, 0x1f, 0x81, - 0xa9, 0x56, 0xe7, 0xb0, 0x61, 0xd5, 0xaa, 0x21, 0x31, 0xb8, 0xa0, 0x2e, 0x0c, 0x1b, 0x1a, 0x9d, - 0x58, 0x0f, 0x84, 0x9f, 0x86, 0xc9, 0xd7, 0x91, 0xf9, 0x6a, 0x58, 0x34, 0x4d, 0x44, 0x27, 0xf0, - 0x70, 0x48, 0xb0, 0x04, 0x99, 0x26, 0x72, 0x5d, 0xf3, 0x18, 0x55, 0xbd, 0xd3, 0x16, 0xca, 0x26, - 0xc9, 0xd5, 0x5f, 0xe8, 0xba, 0x7a, 0xf9, 0xca, 0xd3, 0x0c, 0xb5, 0x7f, 0xda, 0x42, 0x7a, 0x01, - 0xc6, 0x90, 0xdd, 0x69, 0x52, 0x86, 0xe1, 0x1e, 0xf6, 0x2b, 0xdb, 0x9d, 0xa6, 0xcc, 0x92, 0xc2, - 0x30, 0x46, 0x31, 0xea, 0xa2, 0xf6, 0x6b, 0x56, 0x0d, 0x65, 0x47, 0x08, 0xc1, 0xd3, 0x5d, 0x04, - 0x7b, 0x74, 0x5e, 0xe6, 0xe0, 0x38, 0xbd, 0x04, 0x63, 0xe8, 0x0d, 0x0f, 0xd9, 0xae, 0xe5, 0xd8, - 0xd9, 0x51, 0x42, 0xf2, 0x54, 0x84, 0x17, 0x51, 0xa3, 0x2e, 0x53, 0x04, 0x38, 0xfd, 0x3a, 0x8c, - 0x3a, 0x2d, 0xcf, 0x72, 0x6c, 0x37, 0x9b, 0xba, 0xa0, 0x2c, 0xa4, 0x57, 0xce, 0x47, 0x06, 0xc2, - 0x0e, 0x95, 0x31, 0xb8, 0xb0, 0xbe, 0x09, 0x9a, 0xeb, 0x74, 0xda, 0x35, 0x54, 0xad, 0x39, 0x75, - 0x54, 0xb5, 0xec, 0x23, 0x27, 0x3b, 0x46, 0x08, 0xe6, 0xbb, 0x2f, 0x84, 0x08, 0x96, 0x9c, 0x3a, - 0xda, 0xb4, 0x8f, 0x1c, 0x63, 0xc2, 0x15, 0x8e, 0xf5, 0x19, 0x18, 0x71, 0x4f, 0x6d, 0xcf, 0x7c, - 0x23, 0x9b, 0x21, 0x11, 0xc2, 0x8e, 0x72, 0x7f, 0x32, 0x0c, 0x93, 0x83, 0x84, 0xd8, 0x6d, 0x18, - 0x3e, 0xc2, 0x57, 0x99, 0x4d, 0x9c, 0xc5, 0x06, 0x14, 0x23, 0x1a, 0x71, 0xe4, 0x21, 0x8d, 0x58, - 0x80, 0xb4, 0x8d, 0x5c, 0x0f, 0xd5, 0x69, 0x44, 0xa8, 0x03, 0xc6, 0x14, 0x50, 0x50, 0x77, 0x48, - 0x25, 0x1f, 0x2a, 0xa4, 0x5e, 0x86, 0x49, 0x5f, 0xa5, 0x6a, 0xdb, 0xb4, 0x8f, 0x79, 0x6c, 0x5e, - 0x89, 0xd3, 0x64, 0xa9, 0xcc, 0x71, 0x06, 0x86, 0x19, 0x13, 0x48, 0x38, 0xd6, 0xd7, 0x01, 0x1c, - 0x1b, 0x39, 0x47, 0xd5, 0x3a, 0xaa, 0x35, 0xb2, 0xa9, 0x1e, 0x56, 0xda, 0xc1, 0x22, 0x5d, 0x56, - 0x72, 0xe8, 0x68, 0xad, 0xa1, 0xdf, 0x0a, 0x42, 0x6d, 0xb4, 0x47, 0xa4, 0x6c, 0xd3, 0x24, 0xeb, - 0x8a, 0xb6, 0x03, 0x98, 0x68, 0x23, 0x1c, 0xf7, 0xa8, 0xce, 0xae, 0x6c, 0x8c, 0x28, 0xb1, 0x14, - 0x7b, 0x65, 0x06, 0x83, 0xd1, 0x0b, 0x1b, 0x6f, 0x87, 0x0f, 0xf5, 0x27, 0xc1, 0x1f, 0xa8, 0x92, - 0xb0, 0x02, 0x52, 0x85, 0x32, 0x7c, 0xb0, 0x62, 0x36, 0xd1, 0xec, 0x4d, 0x98, 0x10, 0xcd, 0xa3, - 0x9f, 0x83, 0x61, 0xd7, 0x33, 0xdb, 0x1e, 0x89, 0xc2, 0x61, 0x83, 0x1e, 0xe8, 0x1a, 0xa8, 0xc8, - 0xae, 0x93, 0x2a, 0x37, 0x6c, 0xe0, 0x8f, 0xb3, 0x37, 0x60, 0x5c, 0x38, 0xfd, 0xa0, 0xc0, 0xdc, - 0xe7, 0x46, 0xe0, 0x5c, 0x54, 0xcc, 0x45, 0x86, 0xff, 0x0c, 0x8c, 0xd8, 0x9d, 0xe6, 0x21, 0x6a, - 0x67, 0x55, 0xc2, 0xc0, 0x8e, 0xf4, 0x02, 0x0c, 0x37, 0xcc, 0x43, 0xd4, 0xc8, 0x26, 0x2f, 0x28, - 0x0b, 0x13, 0x2b, 0x1f, 0x19, 0x28, 0xaa, 0x97, 0xb6, 0x30, 0xc4, 0xa0, 0x48, 0xfd, 0x79, 0x48, - 0xb2, 0x12, 0x87, 0x19, 0x16, 0x07, 0x63, 0xc0, 0xb1, 0x68, 0x10, 0x9c, 0xfe, 0x38, 0x8c, 0xe1, - 0xff, 0xa9, 0x6d, 0x47, 0x88, 0xce, 0x29, 0x3c, 0x80, 0xed, 0xaa, 0xcf, 0x42, 0x8a, 0x84, 0x59, - 0x1d, 0xf1, 0xa5, 0xc1, 0x3f, 0xc6, 0x8e, 0xa9, 0xa3, 0x23, 0xb3, 0xd3, 0xf0, 0xaa, 0xaf, 0x99, - 0x8d, 0x0e, 0x22, 0x01, 0x33, 0x66, 0x64, 0xd8, 0xe0, 0x27, 0xf1, 0x98, 0x3e, 0x0f, 0x69, 0x1a, - 0x95, 0x96, 0x5d, 0x47, 0x6f, 0x90, 0xea, 0x33, 0x6c, 0xd0, 0x40, 0xdd, 0xc4, 0x23, 0xf8, 0xf4, - 0xaf, 0xb8, 0x8e, 0xcd, 0x5d, 0x4b, 0x4e, 0x81, 0x07, 0xc8, 0xe9, 0x6f, 0xc8, 0x85, 0xef, 0x89, - 0xe8, 0xcb, 0x93, 0x63, 0x31, 0xf7, 0xcd, 0x04, 0x24, 0x49, 0xbe, 0x4d, 0x42, 0x7a, 0xff, 0xde, - 0x6e, 0xb9, 0xba, 0xbe, 0x73, 0x50, 0xdc, 0x2a, 0x6b, 0x8a, 0x3e, 0x01, 0x40, 0x06, 0x36, 0xb6, - 0x76, 0x0a, 0xfb, 0x5a, 0xc2, 0x3f, 0xde, 0xac, 0xec, 0x5f, 0x5f, 0xd5, 0x54, 0x1f, 0x70, 0x40, - 0x07, 0x92, 0x61, 0x81, 0x6b, 0x2b, 0xda, 0xb0, 0xae, 0x41, 0x86, 0x12, 0x6c, 0xbe, 0x5c, 0x5e, - 0xbf, 0xbe, 0xaa, 0x8d, 0x88, 0x23, 0xd7, 0x56, 0xb4, 0x51, 0x7d, 0x1c, 0xc6, 0xc8, 0x48, 0x71, - 0x67, 0x67, 0x4b, 0x4b, 0xf9, 0x9c, 0x7b, 0xfb, 0xc6, 0x66, 0xe5, 0x8e, 0x36, 0xe6, 0x73, 0xde, - 0x31, 0x76, 0x0e, 0x76, 0x35, 0xf0, 0x19, 0xb6, 0xcb, 0x7b, 0x7b, 0x85, 0x3b, 0x65, 0x2d, 0xed, - 0x4b, 0x14, 0xef, 0xed, 0x97, 0xf7, 0xb4, 0x8c, 0xa0, 0xd6, 0xb5, 0x15, 0x6d, 0xdc, 0x3f, 0x45, - 0xb9, 0x72, 0xb0, 0xad, 0x4d, 0xe8, 0x53, 0x30, 0x4e, 0x4f, 0xc1, 0x95, 0x98, 0x94, 0x86, 0xae, - 0xaf, 0x6a, 0x5a, 0xa0, 0x08, 0x65, 0x99, 0x12, 0x06, 0xae, 0xaf, 0x6a, 0x7a, 0xae, 0x04, 0xc3, - 0x24, 0xba, 0x74, 0x1d, 0x26, 0xb6, 0x0a, 0xc5, 0xf2, 0x56, 0x75, 0x67, 0x77, 0x7f, 0x73, 0xa7, - 0x52, 0xd8, 0xd2, 0x94, 0x60, 0xcc, 0x28, 0x7f, 0xe2, 0x60, 0xd3, 0x28, 0xaf, 0x6b, 0x89, 0xf0, - 0xd8, 0x6e, 0xb9, 0xb0, 0x5f, 0x5e, 0xd7, 0xd4, 0x5c, 0x0d, 0xce, 0x45, 0xd5, 0x99, 0xc8, 0xcc, - 0x08, 0xb9, 0x38, 0xd1, 0xc3, 0xc5, 0x84, 0xab, 0xcb, 0xc5, 0xbf, 0xae, 0xc0, 0x74, 0x44, 0xad, - 0x8d, 0x3c, 0xc9, 0x0b, 0x30, 0x4c, 0x43, 0x94, 0xae, 0x3e, 0xcf, 0x44, 0x16, 0x6d, 0x12, 0xb0, - 0x5d, 0x2b, 0x10, 0xc1, 0x85, 0x57, 0x60, 0xb5, 0xc7, 0x0a, 0x8c, 0x29, 0xba, 0x94, 0xfc, 0x8c, - 0x02, 0xd9, 0x5e, 0xdc, 0x31, 0x85, 0x22, 0x21, 0x14, 0x8a, 0xdb, 0xb2, 0x02, 0x17, 0x7b, 0x5f, - 0x43, 0x97, 0x16, 0x5f, 0x55, 0x60, 0x26, 0xba, 0x51, 0x89, 0xd4, 0xe1, 0x79, 0x18, 0x69, 0x22, - 0xef, 0xc4, 0xe1, 0x8b, 0xf5, 0xe5, 0x88, 0x25, 0x00, 0x4f, 0xcb, 0xb6, 0x62, 0xa8, 0xf0, 0x1a, - 0xa2, 0xf6, 0xea, 0x36, 0xa8, 0x36, 0x5d, 0x9a, 0xfe, 0x4a, 0x02, 0x1e, 0x89, 0x24, 0x8f, 0x54, - 0xf4, 0x09, 0x00, 0xcb, 0x6e, 0x75, 0x3c, 0xba, 0x20, 0xd3, 0xfa, 0x34, 0x46, 0x46, 0x48, 0xee, - 0xe3, 0xda, 0xd3, 0xf1, 0xfc, 0x79, 0x95, 0xcc, 0x03, 0x1d, 0x22, 0x02, 0x37, 0x03, 0x45, 0x93, - 0x44, 0xd1, 0xb9, 0x1e, 0x57, 0xda, 0xb5, 0xd6, 0x2d, 0x83, 0x56, 0x6b, 0x58, 0xc8, 0xf6, 0xaa, - 0xae, 0xd7, 0x46, 0x66, 0xd3, 0xb2, 0x8f, 0x49, 0x01, 0x4e, 0xe5, 0x87, 0x8f, 0xcc, 0x86, 0x8b, - 0x8c, 0x49, 0x3a, 0xbd, 0xc7, 0x67, 0x31, 0x82, 0xac, 0x32, 0xed, 0x10, 0x62, 0x44, 0x40, 0xd0, - 0x69, 0x1f, 0x91, 0xfb, 0xed, 0x51, 0x48, 0x87, 0xda, 0x3a, 0xfd, 0x22, 0x64, 0x5e, 0x31, 0x5f, - 0x33, 0xab, 0xbc, 0x55, 0xa7, 0x96, 0x48, 0xe3, 0xb1, 0x5d, 0xd6, 0xae, 0x2f, 0xc3, 0x39, 0x22, - 0xe2, 0x74, 0x3c, 0xd4, 0xae, 0xd6, 0x1a, 0xa6, 0xeb, 0x12, 0xa3, 0xa5, 0x88, 0xa8, 0x8e, 0xe7, - 0x76, 0xf0, 0x54, 0x89, 0xcf, 0xe8, 0x6b, 0x30, 0x4d, 0x10, 0xcd, 0x4e, 0xc3, 0xb3, 0x5a, 0x0d, - 0x54, 0xc5, 0x37, 0x0f, 0x2e, 0x29, 0xc4, 0xbe, 0x66, 0x53, 0x58, 0x62, 0x9b, 0x09, 0x60, 0x8d, - 0x5c, 0x7d, 0x1d, 0x9e, 0x20, 0xb0, 0x63, 0x64, 0xa3, 0xb6, 0xe9, 0xa1, 0x2a, 0xfa, 0xc5, 0x8e, - 0xd9, 0x70, 0xab, 0xa6, 0x5d, 0xaf, 0x9e, 0x98, 0xee, 0x49, 0xf6, 0x1c, 0x26, 0x28, 0x26, 0xb2, - 0x8a, 0xf1, 0x18, 0x16, 0xbc, 0xc3, 0xe4, 0xca, 0x44, 0xac, 0x60, 0xd7, 0x5f, 0x34, 0xdd, 0x13, - 0x3d, 0x0f, 0x33, 0x84, 0xc5, 0xf5, 0xda, 0x96, 0x7d, 0x5c, 0xad, 0x9d, 0xa0, 0xda, 0xab, 0xd5, - 0x8e, 0x77, 0x74, 0x33, 0xfb, 0x78, 0xf8, 0xfc, 0x44, 0xc3, 0x3d, 0x22, 0x53, 0xc2, 0x22, 0x07, - 0xde, 0xd1, 0x4d, 0x7d, 0x0f, 0x32, 0xd8, 0x19, 0x4d, 0xeb, 0xd3, 0xa8, 0x7a, 0xe4, 0xb4, 0xc9, - 0xca, 0x32, 0x11, 0x91, 0xd9, 0x21, 0x0b, 0x2e, 0xed, 0x30, 0xc0, 0xb6, 0x53, 0x47, 0xf9, 0xe1, - 0xbd, 0xdd, 0x72, 0x79, 0xdd, 0x48, 0x73, 0x96, 0x0d, 0xa7, 0x8d, 0x03, 0xea, 0xd8, 0xf1, 0x0d, - 0x9c, 0xa6, 0x01, 0x75, 0xec, 0x70, 0xf3, 0xae, 0xc1, 0x74, 0xad, 0x46, 0xaf, 0xd9, 0xaa, 0x55, - 0x59, 0x8b, 0xef, 0x66, 0x35, 0xc1, 0x58, 0xb5, 0xda, 0x1d, 0x2a, 0xc0, 0x62, 0xdc, 0xd5, 0x6f, - 0xc1, 0x23, 0x81, 0xb1, 0xc2, 0xc0, 0xa9, 0xae, 0xab, 0x94, 0xa1, 0x6b, 0x30, 0xdd, 0x3a, 0xed, - 0x06, 0xea, 0xc2, 0x19, 0x5b, 0xa7, 0x32, 0xec, 0x29, 0x72, 0xdb, 0xd6, 0x46, 0x35, 0xd3, 0x43, - 0xf5, 0xec, 0xa3, 0x61, 0xe9, 0xd0, 0x84, 0x7e, 0x05, 0xb4, 0x5a, 0xad, 0x8a, 0x6c, 0xf3, 0xb0, - 0x81, 0xaa, 0x66, 0x1b, 0xd9, 0xa6, 0x9b, 0x9d, 0x0f, 0x0b, 0x4f, 0xd4, 0x6a, 0x65, 0x32, 0x5b, - 0x20, 0x93, 0xfa, 0x22, 0x4c, 0x39, 0x87, 0xaf, 0xd4, 0x68, 0x64, 0x55, 0x5b, 0x6d, 0x74, 0x64, - 0xbd, 0x91, 0xbd, 0x44, 0xcc, 0x34, 0x89, 0x27, 0x48, 0x5c, 0xed, 0x92, 0x61, 0xfd, 0x19, 0xd0, - 0x6a, 0xee, 0x89, 0xd9, 0x6e, 0x91, 0xa5, 0xdd, 0x6d, 0x99, 0x35, 0x94, 0x7d, 0x8a, 0x8a, 0xd2, - 0xf1, 0x0a, 0x1f, 0xc6, 0x91, 0xed, 0xbe, 0x6e, 0x1d, 0x79, 0x9c, 0xf1, 0x69, 0x1a, 0xd9, 0x64, - 0x8c, 0xb1, 0xbd, 0x0c, 0xe7, 0x3a, 0xb6, 0x65, 0x7b, 0xa8, 0xdd, 0x6a, 0x23, 0xdc, 0xc4, 0xd3, - 0x4c, 0xcc, 0xfe, 0xf7, 0xd1, 0x1e, 0x6d, 0xf8, 0x41, 0x58, 0x9a, 0x06, 0x80, 0x31, 0xdd, 0xe9, - 0x1e, 0xcc, 0xe5, 0x21, 0x13, 0x8e, 0x0b, 0x7d, 0x0c, 0x68, 0x64, 0x68, 0x0a, 0x5e, 0x63, 0x4b, - 0x3b, 0xeb, 0x78, 0x75, 0xfc, 0x85, 0xb2, 0x96, 0xc0, 0xab, 0xf4, 0xd6, 0xe6, 0x7e, 0xb9, 0x6a, - 0x1c, 0x54, 0xf6, 0x37, 0xb7, 0xcb, 0x9a, 0xba, 0x38, 0x96, 0xfa, 0xc1, 0xa8, 0xf6, 0xe6, 0x9b, - 0x6f, 0xbe, 0x99, 0xc8, 0x7d, 0x2b, 0x01, 0x13, 0x62, 0x67, 0xac, 0x7f, 0x0c, 0x1e, 0xe5, 0xb7, - 0xb1, 0x2e, 0xf2, 0xaa, 0xaf, 0x5b, 0x6d, 0x12, 0xaa, 0x4d, 0x93, 0xf6, 0x96, 0xbe, 0x95, 0xcf, - 0x31, 0xa9, 0x3d, 0xe4, 0xbd, 0x64, 0xb5, 0x71, 0x20, 0x36, 0x4d, 0x4f, 0xdf, 0x82, 0x79, 0xdb, - 0xa9, 0xba, 0x9e, 0x69, 0xd7, 0xcd, 0x76, 0xbd, 0x1a, 0x6c, 0x20, 0x54, 0xcd, 0x5a, 0x0d, 0xb9, - 0xae, 0x43, 0x97, 0x08, 0x9f, 0xe5, 0xbc, 0xed, 0xec, 0x31, 0xe1, 0xa0, 0x76, 0x16, 0x98, 0xa8, - 0x14, 0x11, 0x6a, 0xaf, 0x88, 0x78, 0x1c, 0xc6, 0x9a, 0x66, 0xab, 0x8a, 0x6c, 0xaf, 0x7d, 0x4a, - 0xfa, 0xb9, 0x94, 0x91, 0x6a, 0x9a, 0xad, 0x32, 0x3e, 0xfe, 0xe0, 0x7c, 0x10, 0xb6, 0xe3, 0x7f, - 0x55, 0x21, 0x13, 0xee, 0xe9, 0x70, 0x8b, 0x5c, 0x23, 0xf5, 0x5b, 0x21, 0x19, 0xfe, 0x64, 0xdf, - 0x0e, 0x70, 0xa9, 0x84, 0x0b, 0x7b, 0x7e, 0x84, 0x76, 0x5a, 0x06, 0x45, 0xe2, 0x45, 0x15, 0xe7, - 0x34, 0xa2, 0xfd, 0x7b, 0xca, 0x60, 0x47, 0xfa, 0x1d, 0x18, 0x79, 0xc5, 0x25, 0xdc, 0x23, 0x84, - 0xfb, 0x52, 0x7f, 0xee, 0xbb, 0x7b, 0x84, 0x7c, 0xec, 0xee, 0x5e, 0xb5, 0xb2, 0x63, 0x6c, 0x17, - 0xb6, 0x0c, 0x06, 0xd7, 0x1f, 0x83, 0x64, 0xc3, 0xfc, 0xf4, 0xa9, 0xb8, 0x04, 0x90, 0xa1, 0x41, - 0x0d, 0xff, 0x18, 0x24, 0x5f, 0x47, 0xe6, 0xab, 0x62, 0xe1, 0x25, 0x43, 0x1f, 0x60, 0xe8, 0x5f, - 0x81, 0x61, 0x62, 0x2f, 0x1d, 0x80, 0x59, 0x4c, 0x1b, 0xd2, 0x53, 0x90, 0x2c, 0xed, 0x18, 0x38, - 0xfc, 0x35, 0xc8, 0xd0, 0xd1, 0xea, 0xee, 0x66, 0xb9, 0x54, 0xd6, 0x12, 0xb9, 0x35, 0x18, 0xa1, - 0x46, 0xc0, 0xa9, 0xe1, 0x9b, 0x41, 0x1b, 0x62, 0x87, 0x8c, 0x43, 0xe1, 0xb3, 0x07, 0xdb, 0xc5, - 0xb2, 0xa1, 0x25, 0xc2, 0xee, 0x75, 0x21, 0x13, 0x6e, 0xe7, 0x7e, 0x3a, 0x31, 0xf5, 0xfb, 0x0a, - 0xa4, 0x43, 0xed, 0x19, 0x6e, 0x0c, 0xcc, 0x46, 0xc3, 0x79, 0xbd, 0x6a, 0x36, 0x2c, 0xd3, 0x65, - 0x41, 0x01, 0x64, 0xa8, 0x80, 0x47, 0x06, 0x75, 0xda, 0x4f, 0x45, 0xf9, 0x2f, 0x29, 0xa0, 0xc9, - 0xad, 0x9d, 0xa4, 0xa0, 0xf2, 0x33, 0x55, 0xf0, 0x0b, 0x0a, 0x4c, 0x88, 0xfd, 0x9c, 0xa4, 0xde, - 0xc5, 0x9f, 0xa9, 0x7a, 0xdf, 0x4d, 0xc0, 0xb8, 0xd0, 0xc5, 0x0d, 0xaa, 0xdd, 0x2f, 0xc2, 0x94, - 0x55, 0x47, 0xcd, 0x96, 0xe3, 0x21, 0xbb, 0x76, 0x5a, 0x6d, 0xa0, 0xd7, 0x50, 0x23, 0x9b, 0x23, - 0x85, 0xe2, 0x4a, 0xff, 0x3e, 0x71, 0x69, 0x33, 0xc0, 0x6d, 0x61, 0x58, 0x7e, 0x7a, 0x73, 0xbd, - 0xbc, 0xbd, 0xbb, 0xb3, 0x5f, 0xae, 0x94, 0xee, 0x55, 0x0f, 0x2a, 0x1f, 0xaf, 0xec, 0xbc, 0x54, - 0x31, 0x34, 0x4b, 0x12, 0xfb, 0x00, 0x53, 0x7d, 0x17, 0x34, 0x59, 0x29, 0xfd, 0x51, 0x88, 0x52, - 0x4b, 0x1b, 0xd2, 0xa7, 0x61, 0xb2, 0xb2, 0x53, 0xdd, 0xdb, 0x5c, 0x2f, 0x57, 0xcb, 0x1b, 0x1b, - 0xe5, 0xd2, 0xfe, 0x1e, 0xbd, 0x71, 0xf6, 0xa5, 0xf7, 0xc5, 0xa4, 0xfe, 0xbc, 0x0a, 0xd3, 0x11, - 0x9a, 0xe8, 0x05, 0xd6, 0xb3, 0xd3, 0xdb, 0x88, 0x67, 0x07, 0xd1, 0x7e, 0x09, 0x77, 0x05, 0xbb, - 0x66, 0xdb, 0x63, 0x2d, 0xfe, 0x33, 0x80, 0xad, 0x64, 0x7b, 0xd6, 0x91, 0x85, 0xda, 0x6c, 0x9f, - 0x81, 0x36, 0xf2, 0x93, 0xc1, 0x38, 0xdd, 0x6a, 0xf8, 0x28, 0xe8, 0x2d, 0xc7, 0xb5, 0x3c, 0xeb, - 0x35, 0x54, 0xb5, 0x6c, 0xbe, 0x29, 0x81, 0x1b, 0xfb, 0xa4, 0xa1, 0xf1, 0x99, 0x4d, 0xdb, 0xf3, - 0xa5, 0x6d, 0x74, 0x6c, 0x4a, 0xd2, 0xb8, 0x80, 0xab, 0x86, 0xc6, 0x67, 0x7c, 0xe9, 0x8b, 0x90, - 0xa9, 0x3b, 0x1d, 0xdc, 0x26, 0x51, 0x39, 0xbc, 0x5e, 0x28, 0x46, 0x9a, 0x8e, 0xf9, 0x22, 0xac, - 0x8f, 0x0d, 0x76, 0x43, 0x32, 0x46, 0x9a, 0x8e, 0x51, 0x91, 0xa7, 0x61, 0xd2, 0x3c, 0x3e, 0x6e, - 0x63, 0x72, 0x4e, 0x44, 0x3b, 0xf3, 0x09, 0x7f, 0x98, 0x08, 0xce, 0xde, 0x85, 0x14, 0xb7, 0x03, - 0x5e, 0x92, 0xb1, 0x25, 0xaa, 0x2d, 0xba, 0x27, 0x95, 0x58, 0x18, 0x33, 0x52, 0x36, 0x9f, 0xbc, - 0x08, 0x19, 0xcb, 0xad, 0x06, 0x9b, 0xa3, 0x89, 0x0b, 0x89, 0x85, 0x94, 0x91, 0xb6, 0x5c, 0x7f, - 0x37, 0x2c, 0xf7, 0xd5, 0x04, 0x4c, 0x88, 0x9b, 0xbb, 0xfa, 0x3a, 0xa4, 0x1a, 0x4e, 0xcd, 0x24, - 0xa1, 0x45, 0x9f, 0x2c, 0x2c, 0xc4, 0xec, 0x07, 0x2f, 0x6d, 0x31, 0x79, 0xc3, 0x47, 0xce, 0xfe, - 0x47, 0x05, 0x52, 0x7c, 0x58, 0x9f, 0x81, 0x64, 0xcb, 0xf4, 0x4e, 0x08, 0xdd, 0x70, 0x31, 0xa1, - 0x29, 0x06, 0x39, 0xc6, 0xe3, 0x6e, 0xcb, 0xb4, 0x49, 0x08, 0xb0, 0x71, 0x7c, 0x8c, 0xfd, 0xda, - 0x40, 0x66, 0x9d, 0xb4, 0xfd, 0x4e, 0xb3, 0x89, 0x6c, 0xcf, 0xe5, 0x7e, 0x65, 0xe3, 0x25, 0x36, - 0xac, 0x7f, 0x04, 0xa6, 0xbc, 0xb6, 0x69, 0x35, 0x04, 0xd9, 0x24, 0x91, 0xd5, 0xf8, 0x84, 0x2f, - 0x9c, 0x87, 0xc7, 0x38, 0x6f, 0x1d, 0x79, 0x66, 0xed, 0x04, 0xd5, 0x03, 0xd0, 0x08, 0xd9, 0x39, - 0x7c, 0x94, 0x09, 0xac, 0xb3, 0x79, 0x8e, 0xcd, 0xfd, 0xa1, 0x02, 0x53, 0xfc, 0x46, 0xa5, 0xee, - 0x1b, 0x6b, 0x1b, 0xc0, 0xb4, 0x6d, 0xc7, 0x0b, 0x9b, 0xab, 0x3b, 0x94, 0xbb, 0x70, 0x4b, 0x05, - 0x1f, 0x64, 0x84, 0x08, 0x66, 0x9b, 0x00, 0xc1, 0x4c, 0x4f, 0xb3, 0xcd, 0x43, 0x9a, 0xed, 0xdc, - 0x93, 0xc7, 0x3f, 0xf4, 0xd6, 0x16, 0xe8, 0x10, 0xbe, 0xa3, 0xd1, 0xcf, 0xc1, 0xf0, 0x21, 0x3a, - 0xb6, 0x6c, 0xb6, 0x9f, 0x48, 0x0f, 0xf8, 0x2e, 0x65, 0xd2, 0xdf, 0xa5, 0x2c, 0xbe, 0x0c, 0xd3, - 0x35, 0xa7, 0x29, 0xab, 0x5b, 0xd4, 0xa4, 0xdb, 0x6b, 0xf7, 0x45, 0xe5, 0x17, 0x20, 0x68, 0x31, - 0x7f, 0x3d, 0xa1, 0xde, 0xd9, 0x2d, 0xfe, 0x56, 0x62, 0xf6, 0x0e, 0xc5, 0xed, 0xf2, 0xcb, 0x34, - 0xd0, 0x51, 0x03, 0xd5, 0xb0, 0xea, 0xf0, 0xc7, 0x97, 0xe1, 0xd9, 0x63, 0xcb, 0x3b, 0xe9, 0x1c, - 0x2e, 0xd5, 0x9c, 0xe6, 0x95, 0x63, 0xe7, 0xd8, 0x09, 0x1e, 0x77, 0xe1, 0x23, 0x72, 0x40, 0x3e, - 0xb1, 0x47, 0x5e, 0x63, 0xfe, 0xe8, 0x6c, 0xec, 0xf3, 0xb1, 0x7c, 0x05, 0xa6, 0x99, 0x70, 0x95, - 0xec, 0xb9, 0xd3, 0x5b, 0x03, 0xbd, 0xef, 0xbe, 0x4b, 0xf6, 0x77, 0xbe, 0x4f, 0xd6, 0x6a, 0x63, - 0x8a, 0x41, 0xf1, 0x1c, 0xbd, 0x81, 0xc8, 0x1b, 0xf0, 0x88, 0xc0, 0x47, 0xf3, 0x12, 0xb5, 0x63, - 0x18, 0xbf, 0xc5, 0x18, 0xa7, 0x43, 0x8c, 0x7b, 0x0c, 0x9a, 0x2f, 0xc1, 0xf8, 0x59, 0xb8, 0xfe, - 0x1d, 0xe3, 0xca, 0xa0, 0x30, 0xc9, 0x1d, 0x98, 0x24, 0x24, 0xb5, 0x8e, 0xeb, 0x39, 0x4d, 0x52, - 0xf4, 0xfa, 0xd3, 0xfc, 0xfb, 0xef, 0xd3, 0x44, 0x99, 0xc0, 0xb0, 0x92, 0x8f, 0xca, 0xe7, 0x81, - 0x3c, 0x66, 0xa8, 0xa3, 0x5a, 0x23, 0x86, 0xe1, 0x3e, 0x53, 0xc4, 0x97, 0xcf, 0x7f, 0x12, 0xce, - 0xe1, 0xcf, 0xa4, 0x26, 0x85, 0x35, 0x89, 0xdf, 0x65, 0xca, 0xfe, 0xe1, 0x67, 0x68, 0x2e, 0x4e, - 0xfb, 0x04, 0x21, 0x9d, 0x42, 0x5e, 0x3c, 0x46, 0x9e, 0x87, 0xda, 0x6e, 0xd5, 0x6c, 0x44, 0xa9, - 0x17, 0xba, 0x4d, 0xcf, 0xfe, 0xda, 0x0f, 0x45, 0x2f, 0xde, 0xa1, 0xc8, 0x42, 0xa3, 0x91, 0x3f, - 0x80, 0x47, 0x23, 0xa2, 0x62, 0x00, 0xce, 0xcf, 0x33, 0xce, 0x73, 0x5d, 0x91, 0x81, 0x69, 0x77, - 0x81, 0x8f, 0xfb, 0xbe, 0x1c, 0x80, 0xf3, 0x1f, 0x32, 0x4e, 0x9d, 0x61, 0xb9, 0x4b, 0x31, 0xe3, - 0x5d, 0x98, 0x7a, 0x0d, 0xb5, 0x0f, 0x1d, 0x97, 0x6d, 0x8d, 0x0c, 0x40, 0xf7, 0x05, 0x46, 0x37, - 0xc9, 0x80, 0x64, 0xaf, 0x04, 0x73, 0xdd, 0x82, 0xd4, 0x91, 0x59, 0x43, 0x03, 0x50, 0x7c, 0x91, - 0x51, 0x8c, 0x62, 0x79, 0x0c, 0x2d, 0x40, 0xe6, 0xd8, 0x61, 0xcb, 0x52, 0x3c, 0xfc, 0x4b, 0x0c, - 0x9e, 0xe6, 0x18, 0x46, 0xd1, 0x72, 0x5a, 0x9d, 0x06, 0x5e, 0xb3, 0xe2, 0x29, 0xbe, 0xcc, 0x29, - 0x38, 0x86, 0x51, 0x9c, 0xc1, 0xac, 0x6f, 0x71, 0x0a, 0x37, 0x64, 0xcf, 0x17, 0x20, 0xed, 0xd8, - 0x8d, 0x53, 0xc7, 0x1e, 0x44, 0x89, 0xaf, 0x30, 0x06, 0x60, 0x10, 0x4c, 0x70, 0x1b, 0xc6, 0x06, - 0x75, 0xc4, 0x6f, 0xfc, 0x90, 0xa7, 0x07, 0xf7, 0xc0, 0x1d, 0x98, 0xe4, 0x05, 0xca, 0x72, 0xec, - 0x01, 0x28, 0xfe, 0x31, 0xa3, 0x98, 0x08, 0xc1, 0xd8, 0x65, 0x78, 0xc8, 0xf5, 0x8e, 0xd1, 0x20, - 0x24, 0x5f, 0xe5, 0x97, 0xc1, 0x20, 0xcc, 0x94, 0x87, 0xc8, 0xae, 0x9d, 0x0c, 0xc6, 0xf0, 0x35, - 0x6e, 0x4a, 0x8e, 0xc1, 0x14, 0x25, 0x18, 0x6f, 0x9a, 0x6d, 0xf7, 0xc4, 0x6c, 0x0c, 0xe4, 0x8e, - 0xdf, 0x64, 0x1c, 0x19, 0x1f, 0xc4, 0x2c, 0xd2, 0xb1, 0xcf, 0x42, 0xf3, 0x5b, 0xdc, 0x22, 0x21, - 0x18, 0x4b, 0x3d, 0xd7, 0x23, 0x1b, 0x50, 0x67, 0x61, 0xfb, 0x6d, 0x9e, 0x7a, 0x14, 0xbb, 0x1d, - 0x66, 0xbc, 0x0d, 0x63, 0xae, 0xf5, 0xe9, 0x81, 0x68, 0xfe, 0x09, 0xf7, 0x34, 0x01, 0x60, 0xf0, - 0x3d, 0x78, 0x2c, 0x72, 0x99, 0x18, 0x80, 0xec, 0x9f, 0x32, 0xb2, 0x99, 0x88, 0xa5, 0x82, 0x95, - 0x84, 0xb3, 0x52, 0xfe, 0x33, 0x5e, 0x12, 0x90, 0xc4, 0xb5, 0x8b, 0x6f, 0x14, 0x5c, 0xf3, 0xe8, - 0x6c, 0x56, 0xfb, 0xe7, 0xdc, 0x6a, 0x14, 0x2b, 0x58, 0x6d, 0x1f, 0x66, 0x18, 0xe3, 0xd9, 0xfc, - 0xfa, 0x75, 0x5e, 0x58, 0x29, 0xfa, 0x40, 0xf4, 0xee, 0xa7, 0x60, 0xd6, 0x37, 0x27, 0xef, 0x48, - 0xdd, 0x6a, 0xd3, 0x6c, 0x0d, 0xc0, 0xfc, 0x3b, 0x8c, 0x99, 0x57, 0x7c, 0xbf, 0xa5, 0x75, 0xb7, - 0xcd, 0x16, 0x26, 0x7f, 0x19, 0xb2, 0x9c, 0xbc, 0x63, 0xb7, 0x51, 0xcd, 0x39, 0xb6, 0xad, 0x4f, - 0xa3, 0xfa, 0x00, 0xd4, 0xdf, 0x90, 0x5c, 0x75, 0x10, 0x82, 0x63, 0xe6, 0x4d, 0xd0, 0xfc, 0x5e, - 0xa5, 0x6a, 0x35, 0x5b, 0x4e, 0xdb, 0x8b, 0x61, 0xfc, 0x17, 0xdc, 0x53, 0x3e, 0x6e, 0x93, 0xc0, - 0xf2, 0x65, 0x98, 0x20, 0x87, 0x83, 0x86, 0xe4, 0xef, 0x32, 0xa2, 0xf1, 0x00, 0xc5, 0x0a, 0x47, - 0xcd, 0x69, 0xb6, 0xcc, 0xf6, 0x20, 0xf5, 0xef, 0x5f, 0xf2, 0xc2, 0xc1, 0x20, 0xac, 0x70, 0x78, - 0xa7, 0x2d, 0x84, 0x57, 0xfb, 0x01, 0x18, 0xbe, 0xc9, 0x0b, 0x07, 0xc7, 0x30, 0x0a, 0xde, 0x30, - 0x0c, 0x40, 0xf1, 0xaf, 0x38, 0x05, 0xc7, 0x60, 0x8a, 0x4f, 0x04, 0x0b, 0x6d, 0x1b, 0x1d, 0x5b, - 0xae, 0xd7, 0xa6, 0x7d, 0x70, 0x7f, 0xaa, 0xdf, 0xfb, 0xa1, 0xd8, 0x84, 0x19, 0x21, 0x68, 0xfe, - 0x2e, 0x4c, 0x4a, 0x2d, 0x86, 0x1e, 0xf7, 0xce, 0x42, 0xf6, 0x2f, 0xfd, 0x98, 0x15, 0x23, 0xb1, - 0xc3, 0xc8, 0x6f, 0x61, 0xbf, 0x8b, 0x7d, 0x40, 0x3c, 0xd9, 0x67, 0x7e, 0xec, 0xbb, 0x5e, 0x68, - 0x03, 0xf2, 0x1b, 0x30, 0x2e, 0xf4, 0x00, 0xf1, 0x54, 0x7f, 0x99, 0x51, 0x65, 0xc2, 0x2d, 0x40, - 0x7e, 0x0d, 0x92, 0x78, 0x3d, 0x8f, 0x87, 0xff, 0x15, 0x06, 0x27, 0xe2, 0xf9, 0xe7, 0x20, 0xc5, - 0xd7, 0xf1, 0x78, 0xe8, 0x2f, 0x33, 0xa8, 0x0f, 0xc1, 0x70, 0xbe, 0x86, 0xc7, 0xc3, 0xff, 0x2a, - 0x87, 0x73, 0x08, 0x86, 0x0f, 0x6e, 0xc2, 0xb7, 0xff, 0x7a, 0x92, 0xd5, 0x61, 0x6e, 0xbb, 0xdb, - 0x30, 0xca, 0x16, 0xef, 0x78, 0xf4, 0xaf, 0xb0, 0x93, 0x73, 0x44, 0xfe, 0x06, 0x0c, 0x0f, 0x68, - 0xf0, 0xbf, 0xc1, 0xa0, 0x54, 0x3e, 0x5f, 0x82, 0x74, 0x68, 0xc1, 0x8e, 0x87, 0xff, 0x4d, 0x06, - 0x0f, 0xa3, 0xb0, 0xea, 0x6c, 0xc1, 0x8e, 0x27, 0xf8, 0x5b, 0x5c, 0x75, 0x86, 0xc0, 0x66, 0xe3, - 0x6b, 0x75, 0x3c, 0xfa, 0x6f, 0x73, 0xab, 0x73, 0x48, 0xfe, 0x05, 0x18, 0xf3, 0xeb, 0x6f, 0x3c, - 0xfe, 0xef, 0x30, 0x7c, 0x80, 0xc1, 0x16, 0x08, 0xd5, 0xff, 0x78, 0x8a, 0xbf, 0xcb, 0x2d, 0x10, - 0x42, 0xe1, 0x34, 0x92, 0xd7, 0xf4, 0x78, 0xa6, 0x5f, 0xe5, 0x69, 0x24, 0x2d, 0xe9, 0xd8, 0x9b, - 0xa4, 0x0c, 0xc6, 0x53, 0xfc, 0x3d, 0xee, 0x4d, 0x22, 0x8f, 0xd5, 0x90, 0x17, 0xc9, 0x78, 0x8e, - 0x7f, 0xc0, 0xd5, 0x90, 0xd6, 0xc8, 0xfc, 0x2e, 0xe8, 0xdd, 0x0b, 0x64, 0x3c, 0xdf, 0xe7, 0x18, - 0xdf, 0x54, 0xd7, 0xfa, 0x98, 0x7f, 0x09, 0x66, 0xa2, 0x17, 0xc7, 0x78, 0xd6, 0x5f, 0xfb, 0xb1, - 0x74, 0x3b, 0x13, 0x5e, 0x1b, 0xf3, 0xfb, 0x41, 0x95, 0x0d, 0x2f, 0x8c, 0xf1, 0xb4, 0x9f, 0xff, - 0xb1, 0x58, 0x68, 0xc3, 0xeb, 0x62, 0xbe, 0x00, 0x10, 0xac, 0x49, 0xf1, 0x5c, 0x5f, 0x60, 0x5c, - 0x21, 0x10, 0x4e, 0x0d, 0xb6, 0x24, 0xc5, 0xe3, 0xbf, 0xc8, 0x53, 0x83, 0x21, 0x70, 0x6a, 0xf0, - 0xd5, 0x28, 0x1e, 0xfd, 0x25, 0x9e, 0x1a, 0x1c, 0x92, 0xbf, 0x0d, 0x29, 0xbb, 0xd3, 0x68, 0xe0, - 0xd8, 0xd2, 0xfb, 0xbf, 0x46, 0x94, 0xfd, 0x1f, 0x3f, 0x61, 0x60, 0x0e, 0xc8, 0xaf, 0xc1, 0x30, - 0x6a, 0x1e, 0xa2, 0x7a, 0x1c, 0xf2, 0x7f, 0xfe, 0x84, 0xd7, 0x13, 0x2c, 0x9d, 0x7f, 0x01, 0x80, - 0xde, 0x4c, 0x93, 0xa7, 0x44, 0x31, 0xd8, 0xff, 0xf5, 0x13, 0xf6, 0x86, 0x42, 0x00, 0x09, 0x08, - 0xe8, 0xfb, 0x0e, 0xfd, 0x09, 0x7e, 0x28, 0x12, 0x90, 0x1b, 0xf0, 0x5b, 0x30, 0xfa, 0x8a, 0xeb, - 0xd8, 0x9e, 0x79, 0x1c, 0x87, 0xfe, 0xdf, 0x0c, 0xcd, 0xe5, 0xb1, 0xc1, 0x9a, 0x4e, 0x1b, 0x79, - 0xe6, 0xb1, 0x1b, 0x87, 0xfd, 0x3f, 0x0c, 0xeb, 0x03, 0x30, 0xb8, 0x66, 0xba, 0xde, 0x20, 0xd7, - 0xfd, 0x7f, 0x39, 0x98, 0x03, 0xb0, 0xd2, 0xf8, 0xf3, 0xab, 0xe8, 0x34, 0x0e, 0xfb, 0x23, 0xae, - 0x34, 0x93, 0xcf, 0x3f, 0x07, 0x63, 0xf8, 0x23, 0x7d, 0x6b, 0x27, 0x06, 0xfc, 0x47, 0x0c, 0x1c, - 0x20, 0xf0, 0x99, 0x5d, 0xaf, 0xee, 0x59, 0xf1, 0xc6, 0xfe, 0x7f, 0xcc, 0xd3, 0x5c, 0x3e, 0x5f, - 0x80, 0xb4, 0xeb, 0xd5, 0xeb, 0x1d, 0xd6, 0xd1, 0xc4, 0xc0, 0xff, 0xf8, 0x27, 0xfe, 0x4d, 0xae, - 0x8f, 0x29, 0x5e, 0x8c, 0xde, 0xac, 0x83, 0x3b, 0xce, 0x1d, 0x87, 0x6e, 0xd3, 0xc1, 0xf7, 0x1b, - 0x70, 0xa3, 0xe7, 0xae, 0x1b, 0x5e, 0x44, 0xae, 0xd4, 0x9c, 0xe6, 0xa1, 0xe3, 0x5e, 0x39, 0x74, - 0xbc, 0x93, 0x2b, 0xde, 0x09, 0xc2, 0x63, 0x6c, 0xff, 0x2d, 0x89, 0x3f, 0xcf, 0x9e, 0x6d, 0xd3, - 0x8e, 0x3c, 0x8f, 0xad, 0x58, 0x58, 0xef, 0x0a, 0xd9, 0x12, 0xd7, 0xcf, 0xc3, 0x08, 0xb9, 0x92, - 0xab, 0xe4, 0xb1, 0x93, 0x52, 0x4c, 0xde, 0x7f, 0x67, 0x7e, 0xc8, 0x60, 0x63, 0xfe, 0xec, 0x0a, - 0xd9, 0xb3, 0x4c, 0x08, 0xb3, 0x2b, 0xfe, 0xec, 0x35, 0xba, 0x6d, 0x29, 0xcc, 0x5e, 0xf3, 0x67, - 0x57, 0xc9, 0x06, 0xa6, 0x2a, 0xcc, 0xae, 0xfa, 0xb3, 0x6b, 0x64, 0x93, 0x7e, 0x5c, 0x98, 0x5d, - 0xf3, 0x67, 0xaf, 0x93, 0xad, 0xf9, 0xa4, 0x30, 0x7b, 0xdd, 0x9f, 0xbd, 0x41, 0x76, 0xe5, 0xa7, - 0x84, 0xd9, 0x1b, 0xfe, 0xec, 0x4d, 0xb2, 0x1b, 0xaf, 0x0b, 0xb3, 0x37, 0xfd, 0xd9, 0x5b, 0xe4, - 0x15, 0x93, 0x51, 0x61, 0xf6, 0x96, 0x3e, 0x07, 0xa3, 0xf4, 0xca, 0x97, 0xc9, 0xa3, 0xdb, 0x49, - 0x36, 0xcd, 0x07, 0x83, 0xf9, 0xab, 0xe4, 0x75, 0x92, 0x11, 0x71, 0xfe, 0x6a, 0x30, 0xbf, 0x42, - 0x5e, 0xac, 0xd6, 0xc4, 0xf9, 0x95, 0x60, 0xfe, 0x5a, 0x76, 0x9c, 0xbc, 0x52, 0x23, 0xcc, 0x5f, - 0x0b, 0xe6, 0x57, 0xb3, 0x13, 0x38, 0x98, 0xc5, 0xf9, 0xd5, 0x60, 0x7e, 0x2d, 0x3b, 0x79, 0x41, - 0x59, 0xc8, 0x88, 0xf3, 0x6b, 0xb9, 0x5f, 0x22, 0xee, 0xb5, 0x03, 0xf7, 0xce, 0x88, 0xee, 0xf5, - 0x1d, 0x3b, 0x23, 0x3a, 0xd6, 0x77, 0xe9, 0x8c, 0xe8, 0x52, 0xdf, 0x99, 0x33, 0xa2, 0x33, 0x7d, - 0x37, 0xce, 0x88, 0x6e, 0xf4, 0x1d, 0x38, 0x23, 0x3a, 0xd0, 0x77, 0xdd, 0x8c, 0xe8, 0x3a, 0xdf, - 0x69, 0x33, 0xa2, 0xd3, 0x7c, 0x77, 0xcd, 0x88, 0xee, 0xf2, 0x1d, 0x95, 0x95, 0x1c, 0x15, 0xb8, - 0x28, 0x2b, 0xb9, 0x28, 0x70, 0x4e, 0x56, 0x72, 0x4e, 0xe0, 0x96, 0xac, 0xe4, 0x96, 0xc0, 0x21, - 0x59, 0xc9, 0x21, 0x81, 0x2b, 0xb2, 0x92, 0x2b, 0x02, 0x27, 0xb0, 0x1c, 0x33, 0x50, 0x2b, 0x22, + 0x99, 0x1e, 0x1b, 0x0d, 0x90, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x67, 0x28, 0x88, 0x1a, 0x91, 0x1c, + 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x70, 0x6e, 0x18, 0x4b, 0x5a, 0x00, 0x04, 0x47, 0x1c, + 0x93, 0x20, 0xdd, 0x24, 0x2d, 0x8d, 0x95, 0x04, 0xd5, 0x04, 0x0e, 0x49, 0x48, 0x40, 0x37, 0x16, + 0xdd, 0x90, 0x44, 0x55, 0x2a, 0xa5, 0xac, 0x93, 0x8d, 0x37, 0xa9, 0x5c, 0x37, 0xa9, 0xf5, 0x3a, + 0xbe, 0xc8, 0x49, 0x6d, 0xec, 0xdd, 0xdc, 0xbc, 0xde, 0x8d, 0xb3, 0xd9, 0x4a, 0x65, 0x95, 0x07, + 0x27, 0x93, 0x97, 0x94, 0x37, 0x79, 0x49, 0xb9, 0x52, 0x2a, 0x6b, 0xec, 0xad, 0x38, 0x89, 0x93, + 0x75, 0x36, 0xae, 0x8a, 0xab, 0xbc, 0x0f, 0xa9, 0x73, 0xeb, 0x3e, 0xa7, 0xd1, 0x40, 0x83, 0x33, + 0x92, 0xed, 0x07, 0xbd, 0xcc, 0xa0, 0xcf, 0xf9, 0xbf, 0xaf, 0xff, 0xfe, 0x6f, 0xe7, 0xef, 0xd3, + 0x0d, 0x10, 0xfe, 0xf8, 0x26, 0xcc, 0x1f, 0xd9, 0xf6, 0x51, 0x03, 0x5d, 0x6a, 0xb5, 0x6d, 0xd7, + 0x3e, 0xe8, 0x1c, 0x5e, 0xaa, 0x21, 0xa7, 0xda, 0xae, 0xb7, 0x5c, 0xbb, 0xbd, 0x44, 0xc6, 0xf4, + 0x09, 0x2a, 0xb1, 0xc4, 0x25, 0xb2, 0x5b, 0x30, 0xb9, 0x5e, 0x6f, 0xa0, 0x35, 0x4f, 0x70, 0x17, + 0xb9, 0xfa, 0x0d, 0x88, 0x1f, 0xd6, 0x1b, 0x28, 0xa3, 0xcc, 0xab, 0x0b, 0xa9, 0x95, 0x0b, 0x4b, + 0x01, 0xd0, 0x92, 0x8c, 0xd8, 0xc1, 0xc3, 0x06, 0x41, 0x64, 0xbf, 0x17, 0x87, 0xa9, 0x90, 0x59, + 0x5d, 0x87, 0xb8, 0x65, 0x36, 0x31, 0xa3, 0xb2, 0x30, 0x6a, 0x90, 0xcf, 0x7a, 0x06, 0x46, 0x5a, + 0x66, 0xf5, 0x55, 0xf3, 0x08, 0x65, 0x62, 0x64, 0x98, 0x1f, 0xea, 0xb3, 0x00, 0x35, 0xd4, 0x42, + 0x56, 0x0d, 0x59, 0xd5, 0x93, 0x8c, 0x3a, 0xaf, 0x2e, 0x8c, 0x1a, 0xc2, 0x88, 0xfe, 0x11, 0x98, + 0x6c, 0x75, 0x0e, 0x1a, 0xf5, 0x6a, 0x45, 0x10, 0x83, 0x79, 0x75, 0x21, 0x61, 0x68, 0x74, 0x62, + 0xcd, 0x17, 0x7e, 0x0a, 0x26, 0x5e, 0x47, 0xe6, 0xab, 0xa2, 0x68, 0x8a, 0x88, 0x8e, 0xe3, 0x61, + 0x41, 0xb0, 0x08, 0xe9, 0x26, 0x72, 0x1c, 0xf3, 0x08, 0x55, 0xdc, 0x93, 0x16, 0xca, 0xc4, 0xc9, + 0xd5, 0xcf, 0x77, 0x5d, 0x7d, 0xf0, 0xca, 0x53, 0x0c, 0xb5, 0x77, 0xd2, 0x42, 0x7a, 0x1e, 0x46, + 0x91, 0xd5, 0x69, 0x52, 0x86, 0x44, 0x0f, 0xfb, 0x95, 0xac, 0x4e, 0x33, 0xc8, 0x92, 0xc4, 0x30, + 0x46, 0x31, 0xe2, 0xa0, 0xf6, 0x6b, 0xf5, 0x2a, 0xca, 0x0c, 0x13, 0x82, 0xa7, 0xba, 0x08, 0x76, + 0xe9, 0x7c, 0x90, 0x83, 0xe3, 0xf4, 0x22, 0x8c, 0xa2, 0x37, 0x5c, 0x64, 0x39, 0x75, 0xdb, 0xca, + 0x8c, 0x10, 0x92, 0x27, 0x43, 0xbc, 0x88, 0x1a, 0xb5, 0x20, 0x85, 0x8f, 0xd3, 0xaf, 0xc1, 0x88, + 0xdd, 0x72, 0xeb, 0xb6, 0xe5, 0x64, 0x92, 0xf3, 0xca, 0x42, 0x6a, 0xe5, 0x5c, 0x68, 0x20, 0x6c, + 0x53, 0x19, 0x83, 0x0b, 0xeb, 0x1b, 0xa0, 0x39, 0x76, 0xa7, 0x5d, 0x45, 0x95, 0xaa, 0x5d, 0x43, + 0x95, 0xba, 0x75, 0x68, 0x67, 0x46, 0x09, 0xc1, 0x5c, 0xf7, 0x85, 0x10, 0xc1, 0xa2, 0x5d, 0x43, + 0x1b, 0xd6, 0xa1, 0x6d, 0x8c, 0x3b, 0xd2, 0xb1, 0x3e, 0x0d, 0xc3, 0xce, 0x89, 0xe5, 0x9a, 0x6f, + 0x64, 0xd2, 0x24, 0x42, 0xd8, 0x51, 0xf6, 0x5f, 0x0d, 0xc3, 0xc4, 0x20, 0x21, 0x76, 0x0b, 0x12, + 0x87, 0xf8, 0x2a, 0x33, 0xb1, 0xd3, 0xd8, 0x80, 0x62, 0x64, 0x23, 0x0e, 0x3f, 0xa0, 0x11, 0xf3, + 0x90, 0xb2, 0x90, 0xe3, 0xa2, 0x1a, 0x8d, 0x08, 0x75, 0xc0, 0x98, 0x02, 0x0a, 0xea, 0x0e, 0xa9, + 0xf8, 0x03, 0x85, 0xd4, 0x4b, 0x30, 0xe1, 0xa9, 0x54, 0x69, 0x9b, 0xd6, 0x11, 0x8f, 0xcd, 0x4b, + 0x51, 0x9a, 0x2c, 0x95, 0x38, 0xce, 0xc0, 0x30, 0x63, 0x1c, 0x49, 0xc7, 0xfa, 0x1a, 0x80, 0x6d, + 0x21, 0xfb, 0xb0, 0x52, 0x43, 0xd5, 0x46, 0x26, 0xd9, 0xc3, 0x4a, 0xdb, 0x58, 0xa4, 0xcb, 0x4a, + 0x36, 0x1d, 0xad, 0x36, 0xf4, 0x9b, 0x7e, 0xa8, 0x8d, 0xf4, 0x88, 0x94, 0x2d, 0x9a, 0x64, 0x5d, + 0xd1, 0xb6, 0x0f, 0xe3, 0x6d, 0x84, 0xe3, 0x1e, 0xd5, 0xd8, 0x95, 0x8d, 0x12, 0x25, 0x96, 0x22, + 0xaf, 0xcc, 0x60, 0x30, 0x7a, 0x61, 0x63, 0x6d, 0xf1, 0x50, 0x7f, 0x02, 0xbc, 0x81, 0x0a, 0x09, + 0x2b, 0x20, 0x55, 0x28, 0xcd, 0x07, 0xcb, 0x66, 0x13, 0xcd, 0xbc, 0x09, 0xe3, 0xb2, 0x79, 0xf4, + 0x33, 0x90, 0x70, 0x5c, 0xb3, 0xed, 0x92, 0x28, 0x4c, 0x18, 0xf4, 0x40, 0xd7, 0x40, 0x45, 0x56, + 0x8d, 0x54, 0xb9, 0x84, 0x81, 0x3f, 0xea, 0xbf, 0xe0, 0x5f, 0xb0, 0x4a, 0x2e, 0xf8, 0x62, 0xb7, + 0x47, 0x25, 0xe6, 0xe0, 0x75, 0xcf, 0x5c, 0x87, 0x31, 0xe9, 0x02, 0x06, 0x3d, 0x75, 0xf6, 0xcf, + 0xc3, 0xd9, 0x50, 0x6a, 0xfd, 0x25, 0x38, 0xd3, 0xb1, 0xea, 0x96, 0x8b, 0xda, 0xad, 0x36, 0xc2, + 0x11, 0x4b, 0x4f, 0x95, 0xf9, 0x6f, 0x23, 0x3d, 0x62, 0x6e, 0x5f, 0x94, 0xa6, 0x2c, 0xc6, 0x54, + 0xa7, 0x7b, 0x70, 0x71, 0x34, 0xf9, 0xfd, 0x11, 0xed, 0xad, 0xb7, 0xde, 0x7a, 0x2b, 0x96, 0xfd, + 0xec, 0x30, 0x9c, 0x09, 0xcb, 0x99, 0xd0, 0xf4, 0x9d, 0x86, 0x61, 0xab, 0xd3, 0x3c, 0x40, 0x6d, + 0x62, 0xa4, 0x84, 0xc1, 0x8e, 0xf4, 0x3c, 0x24, 0x1a, 0xe6, 0x01, 0x6a, 0x64, 0xe2, 0xf3, 0xca, + 0xc2, 0xf8, 0xca, 0x47, 0x06, 0xca, 0xca, 0xa5, 0x4d, 0x0c, 0x31, 0x28, 0x52, 0x7f, 0x0e, 0xe2, + 0xac, 0x44, 0x63, 0x86, 0xc5, 0xc1, 0x18, 0x70, 0x2e, 0x19, 0x04, 0xa7, 0x3f, 0x06, 0xa3, 0xf8, + 0x7f, 0x1a, 0x1b, 0xc3, 0x44, 0xe7, 0x24, 0x1e, 0xc0, 0x71, 0xa1, 0xcf, 0x40, 0x92, 0xa4, 0x49, + 0x0d, 0xf1, 0xa5, 0xcd, 0x3b, 0xc6, 0x81, 0x55, 0x43, 0x87, 0x66, 0xa7, 0xe1, 0x56, 0x5e, 0x33, + 0x1b, 0x1d, 0x44, 0x02, 0x7e, 0xd4, 0x48, 0xb3, 0xc1, 0x4f, 0xe2, 0x31, 0x7d, 0x0e, 0x52, 0x34, + 0xab, 0xea, 0x56, 0x0d, 0xbd, 0x41, 0xaa, 0x67, 0xc2, 0xa0, 0x89, 0xb6, 0x81, 0x47, 0xf0, 0xe9, + 0x5f, 0x71, 0x6c, 0x8b, 0x87, 0x26, 0x39, 0x05, 0x1e, 0x20, 0xa7, 0xbf, 0x1e, 0x2c, 0xdc, 0x8f, + 0x87, 0x5f, 0x5e, 0x30, 0xa6, 0xb2, 0xdf, 0x88, 0x41, 0x9c, 0xd4, 0x8b, 0x09, 0x48, 0xed, 0xdd, + 0xdd, 0x29, 0x55, 0xd6, 0xb6, 0xf7, 0x0b, 0x9b, 0x25, 0x4d, 0xd1, 0xc7, 0x01, 0xc8, 0xc0, 0xfa, + 0xe6, 0x76, 0x7e, 0x4f, 0x8b, 0x79, 0xc7, 0x1b, 0xe5, 0xbd, 0x6b, 0xab, 0x9a, 0xea, 0x01, 0xf6, + 0xe9, 0x40, 0x5c, 0x14, 0xb8, 0xb2, 0xa2, 0x25, 0x74, 0x0d, 0xd2, 0x94, 0x60, 0xe3, 0xa5, 0xd2, + 0xda, 0xb5, 0x55, 0x6d, 0x58, 0x1e, 0xb9, 0xb2, 0xa2, 0x8d, 0xe8, 0x63, 0x30, 0x4a, 0x46, 0x0a, + 0xdb, 0xdb, 0x9b, 0x5a, 0xd2, 0xe3, 0xdc, 0xdd, 0x33, 0x36, 0xca, 0xb7, 0xb5, 0x51, 0x8f, 0xf3, + 0xb6, 0xb1, 0xbd, 0xbf, 0xa3, 0x81, 0xc7, 0xb0, 0x55, 0xda, 0xdd, 0xcd, 0xdf, 0x2e, 0x69, 0x29, + 0x4f, 0xa2, 0x70, 0x77, 0xaf, 0xb4, 0xab, 0xa5, 0x25, 0xb5, 0xae, 0xac, 0x68, 0x63, 0xde, 0x29, + 0x4a, 0xe5, 0xfd, 0x2d, 0x6d, 0x5c, 0x9f, 0x84, 0x31, 0x7a, 0x0a, 0xae, 0xc4, 0x44, 0x60, 0xe8, + 0xda, 0xaa, 0xa6, 0xf9, 0x8a, 0x50, 0x96, 0x49, 0x69, 0xe0, 0xda, 0xaa, 0xa6, 0x67, 0x8b, 0x90, + 0x20, 0xd1, 0xa5, 0xeb, 0x30, 0xbe, 0x99, 0x2f, 0x94, 0x36, 0x2b, 0xdb, 0x3b, 0x7b, 0x1b, 0xdb, + 0xe5, 0xfc, 0xa6, 0xa6, 0xf8, 0x63, 0x46, 0xe9, 0x13, 0xfb, 0x1b, 0x46, 0x69, 0x4d, 0x8b, 0x89, + 0x63, 0x3b, 0xa5, 0xfc, 0x5e, 0x69, 0x4d, 0x53, 0xb3, 0x55, 0x38, 0x13, 0x56, 0x27, 0x43, 0x33, + 0x43, 0x70, 0x71, 0xac, 0x87, 0x8b, 0x09, 0x57, 0x97, 0x8b, 0xbf, 0x1b, 0x83, 0xa9, 0x90, 0xb5, + 0x22, 0xf4, 0x24, 0xcf, 0x43, 0x82, 0x86, 0x28, 0x5d, 0x3d, 0x9f, 0x0e, 0x5d, 0x74, 0x48, 0xc0, + 0x76, 0xad, 0xa0, 0x04, 0x27, 0x76, 0x10, 0x6a, 0x8f, 0x0e, 0x02, 0x53, 0x74, 0xd5, 0xf4, 0x3f, + 0xdb, 0x55, 0xd3, 0xe9, 0xb2, 0x77, 0x6d, 0x90, 0x65, 0x8f, 0x8c, 0x9d, 0xae, 0xb6, 0x27, 0x42, + 0x6a, 0xfb, 0x2d, 0x98, 0xec, 0x22, 0x1a, 0xb8, 0xc6, 0x7e, 0x5a, 0x81, 0x4c, 0x2f, 0xe3, 0x44, + 0x54, 0xba, 0x98, 0x54, 0xe9, 0x6e, 0x05, 0x2d, 0x78, 0xbe, 0xb7, 0x13, 0xba, 0x7c, 0xfd, 0x15, + 0x05, 0xa6, 0xc3, 0x3b, 0xc5, 0x50, 0x1d, 0x9e, 0x83, 0xe1, 0x26, 0x72, 0x8f, 0x6d, 0xde, 0x2d, + 0x5d, 0x0c, 0x59, 0x83, 0xf1, 0x74, 0xd0, 0xd9, 0x0c, 0x25, 0x2e, 0xe2, 0x6a, 0xaf, 0x76, 0x8f, + 0x6a, 0xd3, 0xa5, 0xe9, 0xaf, 0xc4, 0xe0, 0x6c, 0x28, 0x79, 0xa8, 0xa2, 0x8f, 0x03, 0xd4, 0xad, + 0x56, 0xc7, 0xa5, 0x1d, 0x11, 0x2d, 0xb0, 0xa3, 0x64, 0x84, 0x14, 0x2f, 0x5c, 0x3c, 0x3b, 0xae, + 0x37, 0xaf, 0x92, 0x79, 0xa0, 0x43, 0x44, 0xe0, 0x86, 0xaf, 0x68, 0x9c, 0x28, 0x3a, 0xdb, 0xe3, + 0x4a, 0xbb, 0x02, 0x73, 0x19, 0xb4, 0x6a, 0xa3, 0x8e, 0x2c, 0xb7, 0xe2, 0xb8, 0x6d, 0x64, 0x36, + 0xeb, 0xd6, 0x11, 0x59, 0x41, 0x92, 0xb9, 0xc4, 0xa1, 0xd9, 0x70, 0x90, 0x31, 0x41, 0xa7, 0x77, + 0xf9, 0x2c, 0x46, 0x90, 0x00, 0x6a, 0x0b, 0x88, 0x61, 0x09, 0x41, 0xa7, 0x3d, 0x44, 0xf6, 0x77, + 0x92, 0x90, 0x12, 0xfa, 0x6a, 0xfd, 0x3c, 0xa4, 0x5f, 0x31, 0x5f, 0x33, 0x2b, 0xfc, 0x5e, 0x89, + 0x5a, 0x22, 0x85, 0xc7, 0x76, 0xd8, 0xfd, 0xd2, 0x32, 0x9c, 0x21, 0x22, 0x76, 0xc7, 0x45, 0xed, + 0x4a, 0xb5, 0x61, 0x3a, 0x0e, 0x31, 0x5a, 0x92, 0x88, 0xea, 0x78, 0x6e, 0x1b, 0x4f, 0x15, 0xf9, + 0x8c, 0x7e, 0x15, 0xa6, 0x08, 0xa2, 0xd9, 0x69, 0xb8, 0xf5, 0x56, 0x03, 0x55, 0xf0, 0xdd, 0x9b, + 0x43, 0x56, 0x12, 0x4f, 0xb3, 0x49, 0x2c, 0xb1, 0xc5, 0x04, 0xb0, 0x46, 0x8e, 0xbe, 0x06, 0x8f, + 0x13, 0xd8, 0x11, 0xb2, 0x50, 0xdb, 0x74, 0x51, 0x05, 0xfd, 0x62, 0xc7, 0x6c, 0x38, 0x15, 0xd3, + 0xaa, 0x55, 0x8e, 0x4d, 0xe7, 0x38, 0x73, 0x06, 0x13, 0x14, 0x62, 0x19, 0xc5, 0x78, 0x14, 0x0b, + 0xde, 0x66, 0x72, 0x25, 0x22, 0x96, 0xb7, 0x6a, 0x2f, 0x98, 0xce, 0xb1, 0x9e, 0x83, 0x69, 0xc2, + 0xe2, 0xb8, 0xed, 0xba, 0x75, 0x54, 0xa9, 0x1e, 0xa3, 0xea, 0xab, 0x95, 0x8e, 0x7b, 0x78, 0x23, + 0xf3, 0x98, 0x78, 0x7e, 0xa2, 0xe1, 0x2e, 0x91, 0x29, 0x62, 0x91, 0x7d, 0xf7, 0xf0, 0x86, 0xbe, + 0x0b, 0x69, 0xec, 0x8c, 0x66, 0xfd, 0x4d, 0x54, 0x39, 0xb4, 0xdb, 0x64, 0x69, 0x1c, 0x0f, 0x29, + 0x4d, 0x82, 0x05, 0x97, 0xb6, 0x19, 0x60, 0xcb, 0xae, 0xa1, 0x5c, 0x62, 0x77, 0xa7, 0x54, 0x5a, + 0x33, 0x52, 0x9c, 0x65, 0xdd, 0x6e, 0xe3, 0x80, 0x3a, 0xb2, 0x3d, 0x03, 0xa7, 0x68, 0x40, 0x1d, + 0xd9, 0xdc, 0xbc, 0x57, 0x61, 0xaa, 0x5a, 0xa5, 0xd7, 0x5c, 0xaf, 0x56, 0xd8, 0x3d, 0x96, 0x93, + 0xd1, 0x24, 0x63, 0x55, 0xab, 0xb7, 0xa9, 0x00, 0x8b, 0x71, 0x47, 0xbf, 0x09, 0x67, 0x7d, 0x63, + 0x89, 0xc0, 0xc9, 0xae, 0xab, 0x0c, 0x42, 0xaf, 0xc2, 0x54, 0xeb, 0xa4, 0x1b, 0xa8, 0x4b, 0x67, + 0x6c, 0x9d, 0x04, 0x61, 0xd7, 0xe1, 0x4c, 0xeb, 0xb8, 0xd5, 0x8d, 0x5b, 0x14, 0x71, 0x7a, 0xeb, + 0xb8, 0x15, 0x04, 0x3e, 0x49, 0x6e, 0xb8, 0xdb, 0xa8, 0x6a, 0xba, 0xa8, 0x96, 0x79, 0x44, 0x14, + 0x17, 0x26, 0xf4, 0x4b, 0xa0, 0x55, 0xab, 0x15, 0x64, 0x99, 0x07, 0x0d, 0x54, 0x31, 0xdb, 0xc8, + 0x32, 0x9d, 0xcc, 0x9c, 0x28, 0x3c, 0x5e, 0xad, 0x96, 0xc8, 0x6c, 0x9e, 0x4c, 0xea, 0x8b, 0x30, + 0x69, 0x1f, 0xbc, 0x52, 0xa5, 0x21, 0x59, 0x69, 0xb5, 0xd1, 0x61, 0xfd, 0x8d, 0xcc, 0x05, 0x62, + 0xdf, 0x09, 0x3c, 0x41, 0x02, 0x72, 0x87, 0x0c, 0xeb, 0x4f, 0x83, 0x56, 0x75, 0x8e, 0xcd, 0x76, + 0x8b, 0xd4, 0x64, 0xa7, 0x65, 0x56, 0x51, 0xe6, 0x49, 0x2a, 0x4a, 0xc7, 0xcb, 0x7c, 0x18, 0xa7, + 0x84, 0xf3, 0x7a, 0xfd, 0xd0, 0xe5, 0x8c, 0x4f, 0xd1, 0x94, 0x20, 0x63, 0x8c, 0x6d, 0x01, 0x34, + 0x6c, 0x0a, 0xe9, 0xc4, 0x0b, 0x44, 0x6c, 0xbc, 0x75, 0xdc, 0x12, 0xcf, 0xfb, 0x04, 0x8c, 0x61, + 0x49, 0xff, 0xa4, 0x4f, 0xd3, 0x86, 0xac, 0x75, 0x2c, 0x9c, 0xf1, 0x03, 0xeb, 0x8d, 0xb3, 0x39, + 0x48, 0x8b, 0xf1, 0xa9, 0x8f, 0x02, 0x8d, 0x50, 0x4d, 0xc1, 0xcd, 0x4a, 0x71, 0x7b, 0x0d, 0xb7, + 0x19, 0x9f, 0x2a, 0x69, 0x31, 0xdc, 0xee, 0x6c, 0x6e, 0xec, 0x95, 0x2a, 0xc6, 0x7e, 0x79, 0x6f, + 0x63, 0xab, 0xa4, 0xa9, 0x62, 0x5f, 0xfd, 0xcd, 0x18, 0x8c, 0xcb, 0xb7, 0x48, 0xfa, 0xc7, 0xe0, + 0x11, 0xbe, 0x9f, 0xe1, 0x20, 0xb7, 0xf2, 0x7a, 0xbd, 0x4d, 0x52, 0xa6, 0x69, 0xd2, 0xe5, 0xcb, + 0x73, 0xda, 0x19, 0x26, 0xb5, 0x8b, 0xdc, 0x17, 0xeb, 0x6d, 0x9c, 0x10, 0x4d, 0xd3, 0xd5, 0x37, + 0x61, 0xce, 0xb2, 0x2b, 0x8e, 0x6b, 0x5a, 0x35, 0xb3, 0x5d, 0xab, 0xf8, 0x3b, 0x49, 0x15, 0xb3, + 0x5a, 0x45, 0x8e, 0x63, 0xd3, 0xa5, 0xca, 0x63, 0x39, 0x67, 0xd9, 0xbb, 0x4c, 0xd8, 0xaf, 0xe1, + 0x79, 0x26, 0x1a, 0x08, 0x30, 0xb5, 0x57, 0x80, 0x3d, 0x06, 0xa3, 0x4d, 0xb3, 0x55, 0x41, 0x96, + 0xdb, 0x3e, 0x21, 0x8d, 0x71, 0xd2, 0x48, 0x36, 0xcd, 0x56, 0x09, 0x1f, 0xff, 0x74, 0xee, 0x4f, + 0xfe, 0xab, 0x0a, 0x69, 0xb1, 0x39, 0xc6, 0xf7, 0x1a, 0x55, 0xb2, 0x8e, 0x28, 0xa4, 0xd2, 0x3c, + 0xd1, 0xb7, 0x95, 0x5e, 0x2a, 0xe2, 0x05, 0x26, 0x37, 0x4c, 0x5b, 0x56, 0x83, 0x22, 0xf1, 0xe2, + 0x8e, 0x6b, 0x0b, 0xa2, 0x2d, 0x42, 0xd2, 0x60, 0x47, 0xfa, 0x6d, 0x18, 0x7e, 0xc5, 0x21, 0xdc, + 0xc3, 0x84, 0xfb, 0x42, 0x7f, 0xee, 0x3b, 0xbb, 0x84, 0x7c, 0xf4, 0xce, 0x6e, 0xa5, 0xbc, 0x6d, + 0x6c, 0xe5, 0x37, 0x0d, 0x06, 0xd7, 0x1f, 0x85, 0x78, 0xc3, 0x7c, 0xf3, 0x44, 0x5e, 0x8a, 0xc8, + 0xd0, 0xa0, 0x86, 0x7f, 0x14, 0xe2, 0xaf, 0x23, 0xf3, 0x55, 0x79, 0x01, 0x20, 0x43, 0x1f, 0x60, + 0xe8, 0x5f, 0x82, 0x04, 0xb1, 0x97, 0x0e, 0xc0, 0x2c, 0xa6, 0x0d, 0xe9, 0x49, 0x88, 0x17, 0xb7, + 0x0d, 0x1c, 0xfe, 0x1a, 0xa4, 0xe9, 0x68, 0x65, 0x67, 0xa3, 0x54, 0x2c, 0x69, 0xb1, 0xec, 0x55, + 0x18, 0xa6, 0x46, 0xc0, 0xa9, 0xe1, 0x99, 0x41, 0x1b, 0x62, 0x87, 0x8c, 0x43, 0xe1, 0xb3, 0xfb, + 0x5b, 0x85, 0x92, 0xa1, 0xc5, 0x44, 0xf7, 0x3a, 0x90, 0x16, 0xfb, 0xe2, 0x9f, 0x4e, 0x4c, 0xfd, + 0xbe, 0x02, 0x29, 0xa1, 0xcf, 0xc5, 0x0d, 0x8a, 0xd9, 0x68, 0xd8, 0xaf, 0x57, 0xcc, 0x46, 0xdd, + 0x74, 0x58, 0x50, 0x00, 0x19, 0xca, 0xe3, 0x91, 0x41, 0x9d, 0xf6, 0x53, 0x51, 0xfe, 0x8b, 0x0a, + 0x68, 0xc1, 0x16, 0x33, 0xa0, 0xa0, 0xf2, 0x33, 0x55, 0xf0, 0xf3, 0x0a, 0x8c, 0xcb, 0x7d, 0x65, + 0x40, 0xbd, 0xf3, 0x3f, 0x53, 0xf5, 0xbe, 0x13, 0x83, 0x31, 0xa9, 0x9b, 0x1c, 0x54, 0xbb, 0x5f, + 0x84, 0xc9, 0x7a, 0x0d, 0x35, 0x5b, 0xb6, 0x8b, 0xac, 0xea, 0x49, 0xa5, 0x81, 0x5e, 0x43, 0x8d, + 0x4c, 0x96, 0x14, 0x8a, 0x4b, 0xfd, 0xfb, 0xd5, 0xa5, 0x0d, 0x1f, 0xb7, 0x89, 0x61, 0xb9, 0xa9, + 0x8d, 0xb5, 0xd2, 0xd6, 0xce, 0xf6, 0x5e, 0xa9, 0x5c, 0xbc, 0x5b, 0xd9, 0x2f, 0x7f, 0xbc, 0xbc, + 0xfd, 0x62, 0xd9, 0xd0, 0xea, 0x01, 0xb1, 0x0f, 0x30, 0xd5, 0x77, 0x40, 0x0b, 0x2a, 0xa5, 0x3f, + 0x02, 0x61, 0x6a, 0x69, 0x43, 0xfa, 0x14, 0x4c, 0x94, 0xb7, 0x2b, 0xbb, 0x1b, 0x6b, 0xa5, 0x4a, + 0x69, 0x7d, 0xbd, 0x54, 0xdc, 0xdb, 0xa5, 0x3b, 0x10, 0x9e, 0xf4, 0x9e, 0x9c, 0xd4, 0x9f, 0x53, + 0x61, 0x2a, 0x44, 0x13, 0x3d, 0xcf, 0xee, 0x1d, 0xe8, 0xed, 0xcc, 0x33, 0x83, 0x68, 0xbf, 0x84, + 0x97, 0xfc, 0x1d, 0xb3, 0xed, 0xb2, 0x5b, 0x8d, 0xa7, 0x01, 0x5b, 0xc9, 0x72, 0xeb, 0x87, 0x75, + 0xd4, 0x66, 0x1b, 0x36, 0xf4, 0x86, 0x62, 0xc2, 0x1f, 0xa7, 0x7b, 0x36, 0x1f, 0x05, 0xbd, 0x65, + 0x3b, 0x75, 0xb7, 0xfe, 0x1a, 0xaa, 0xd4, 0x2d, 0xbe, 0xbb, 0x83, 0x6f, 0x30, 0xe2, 0x86, 0xc6, + 0x67, 0x36, 0x2c, 0xd7, 0x93, 0xb6, 0xd0, 0x91, 0x19, 0x90, 0xc6, 0x05, 0x5c, 0x35, 0x34, 0x3e, + 0xe3, 0x49, 0x9f, 0x87, 0x74, 0xcd, 0xee, 0xe0, 0xae, 0x8b, 0xca, 0xe1, 0xf5, 0x42, 0x31, 0x52, + 0x74, 0xcc, 0x13, 0x61, 0xfd, 0xb4, 0xbf, 0xad, 0x94, 0x36, 0x52, 0x74, 0x8c, 0x8a, 0x3c, 0x05, + 0x13, 0xe6, 0xd1, 0x51, 0x1b, 0x93, 0x73, 0x22, 0x7a, 0x87, 0x30, 0xee, 0x0d, 0x13, 0xc1, 0x99, + 0x3b, 0x90, 0xe4, 0x76, 0xc0, 0x4b, 0x32, 0xb6, 0x44, 0xa5, 0x45, 0x6f, 0x7b, 0x63, 0x0b, 0xa3, + 0x46, 0xd2, 0xe2, 0x93, 0xe7, 0x21, 0x5d, 0x77, 0x2a, 0xfe, 0x2e, 0x79, 0x6c, 0x3e, 0xb6, 0x90, + 0x34, 0x52, 0x75, 0xc7, 0xdb, 0x61, 0xcc, 0x7e, 0x25, 0x06, 0xe3, 0xf2, 0x2e, 0xbf, 0xbe, 0x06, + 0xc9, 0x86, 0x5d, 0x35, 0x49, 0x68, 0xd1, 0x47, 0x4c, 0x0b, 0x11, 0x0f, 0x06, 0x96, 0x36, 0x99, + 0xbc, 0xe1, 0x21, 0x67, 0xfe, 0xa3, 0x02, 0x49, 0x3e, 0xac, 0x4f, 0x43, 0xbc, 0x65, 0xba, 0xc7, + 0x84, 0x2e, 0x51, 0x88, 0x69, 0x8a, 0x41, 0x8e, 0xf1, 0xb8, 0xd3, 0x32, 0x2d, 0x12, 0x02, 0x6c, + 0x1c, 0x1f, 0x63, 0xbf, 0x36, 0x90, 0x59, 0x23, 0xb7, 0x1f, 0x76, 0xb3, 0x89, 0x2c, 0xd7, 0xe1, + 0x7e, 0x65, 0xe3, 0x45, 0x36, 0xac, 0x7f, 0x04, 0x26, 0xdd, 0xb6, 0x59, 0x6f, 0x48, 0xb2, 0x71, + 0x22, 0xab, 0xf1, 0x09, 0x4f, 0x38, 0x07, 0x8f, 0x72, 0xde, 0x1a, 0x72, 0xcd, 0xea, 0x31, 0xaa, + 0xf9, 0xa0, 0x61, 0xb2, 0xcd, 0xf0, 0x08, 0x13, 0x58, 0x63, 0xf3, 0x1c, 0x9b, 0xfd, 0x43, 0x05, + 0x26, 0xf9, 0x0d, 0x53, 0xcd, 0x33, 0xd6, 0x16, 0x80, 0x69, 0x59, 0xb6, 0x2b, 0x9a, 0xab, 0x3b, + 0x94, 0xbb, 0x70, 0x4b, 0x79, 0x0f, 0x64, 0x08, 0x04, 0x33, 0x4d, 0x00, 0x7f, 0xa6, 0xa7, 0xd9, + 0xe6, 0x20, 0xc5, 0x1e, 0xe1, 0x90, 0xe7, 0x80, 0xf4, 0x16, 0x1b, 0xe8, 0x10, 0xbe, 0xb3, 0xd2, + 0xcf, 0x40, 0xe2, 0x00, 0x1d, 0xd5, 0x2d, 0xb6, 0x31, 0x4b, 0x0f, 0xf8, 0x46, 0x48, 0xdc, 0xdb, + 0x08, 0x29, 0xbc, 0x0c, 0x53, 0x55, 0xbb, 0x19, 0x54, 0xb7, 0xa0, 0x05, 0x6e, 0xf3, 0x9d, 0x17, + 0x94, 0x4f, 0x81, 0xdf, 0x62, 0xfe, 0x58, 0x51, 0xfe, 0x41, 0x4c, 0xbd, 0xbd, 0x53, 0xf8, 0xad, + 0xd8, 0xcc, 0x6d, 0x0a, 0xdd, 0xe1, 0x57, 0x6a, 0xa0, 0xc3, 0x06, 0xaa, 0x62, 0xed, 0xe1, 0xd7, + 0x9e, 0x82, 0x67, 0x8e, 0xea, 0xee, 0x71, 0xe7, 0x60, 0xa9, 0x6a, 0x37, 0x2f, 0x1d, 0xd9, 0x47, + 0xb6, 0xff, 0xe8, 0x13, 0x1f, 0x91, 0x03, 0xf2, 0x89, 0x3d, 0xfe, 0x1c, 0xf5, 0x46, 0x67, 0x22, + 0x9f, 0x95, 0xe6, 0xca, 0x30, 0xc5, 0x84, 0x2b, 0xe4, 0xf9, 0x0b, 0xbd, 0x8b, 0xd0, 0xfb, 0xee, + 0x61, 0x65, 0x7e, 0xfb, 0x7b, 0x64, 0xb9, 0x36, 0x26, 0x19, 0x14, 0xcf, 0xd1, 0x1b, 0x8d, 0x9c, + 0x01, 0x67, 0x25, 0x3e, 0x9a, 0x9a, 0xa8, 0x1d, 0xc1, 0xf8, 0x4d, 0xc6, 0x38, 0x25, 0x30, 0xee, + 0x32, 0x68, 0xae, 0x08, 0x63, 0xa7, 0xe1, 0xfa, 0x77, 0x8c, 0x2b, 0x8d, 0x44, 0x92, 0xdb, 0x30, + 0x41, 0x48, 0xaa, 0x1d, 0xc7, 0xb5, 0x9b, 0xa4, 0xee, 0xf5, 0xa7, 0xf9, 0xf7, 0xdf, 0xa3, 0xb9, + 0x32, 0x8e, 0x61, 0x45, 0x0f, 0x95, 0xcb, 0x01, 0x79, 0xe4, 0x54, 0x43, 0xd5, 0x46, 0x04, 0xc3, + 0x3d, 0xa6, 0x88, 0x27, 0x9f, 0xfb, 0x24, 0x9c, 0xc1, 0x9f, 0x49, 0x59, 0x12, 0x35, 0x89, 0xde, + 0xf0, 0xca, 0xfc, 0xe1, 0xa7, 0x69, 0x3a, 0x4e, 0x79, 0x04, 0x82, 0x4e, 0x82, 0x17, 0x8f, 0x90, + 0xeb, 0xa2, 0xb6, 0x53, 0x31, 0x1b, 0x61, 0xea, 0x09, 0x3b, 0x06, 0x99, 0x5f, 0xff, 0x81, 0xec, + 0xc5, 0xdb, 0x14, 0x99, 0x6f, 0x34, 0x72, 0xfb, 0xf0, 0x48, 0x48, 0x54, 0x0c, 0xc0, 0xf9, 0x39, + 0xc6, 0x79, 0xa6, 0x2b, 0x32, 0x30, 0xed, 0x0e, 0xf0, 0x71, 0xcf, 0x97, 0x03, 0x70, 0xfe, 0x7d, + 0xc6, 0xa9, 0x33, 0x2c, 0x77, 0x29, 0x66, 0xbc, 0x03, 0x93, 0xaf, 0xa1, 0xf6, 0x81, 0xed, 0xb0, + 0x5d, 0x9a, 0x01, 0xe8, 0x3e, 0xcf, 0xe8, 0x26, 0x18, 0x90, 0x6c, 0xdb, 0x60, 0xae, 0x9b, 0x90, + 0x3c, 0x34, 0xab, 0x68, 0x00, 0x8a, 0x2f, 0x30, 0x8a, 0x11, 0x2c, 0x8f, 0xa1, 0x79, 0x48, 0x1f, + 0xd9, 0x6c, 0x65, 0x8a, 0x86, 0x7f, 0x91, 0xc1, 0x53, 0x1c, 0xc3, 0x28, 0x5a, 0x76, 0xab, 0xd3, + 0xc0, 0xcb, 0x56, 0x34, 0xc5, 0x97, 0x38, 0x05, 0xc7, 0x30, 0x8a, 0x53, 0x98, 0xf5, 0x6d, 0x4e, + 0xe1, 0x08, 0xf6, 0x7c, 0x1e, 0x52, 0xb6, 0xd5, 0x38, 0xb1, 0xad, 0x41, 0x94, 0xf8, 0x32, 0x63, + 0x00, 0x06, 0xc1, 0x04, 0xb7, 0x60, 0x74, 0x50, 0x47, 0xfc, 0xc6, 0x0f, 0x78, 0x7a, 0x70, 0x0f, + 0xdc, 0x86, 0x09, 0x5e, 0xa0, 0xea, 0xb6, 0x35, 0x00, 0xc5, 0x3f, 0x62, 0x14, 0xe3, 0x02, 0x8c, + 0x5d, 0x86, 0x8b, 0x1c, 0xf7, 0x08, 0x0d, 0x42, 0xf2, 0x15, 0x7e, 0x19, 0x0c, 0xc2, 0x4c, 0x79, + 0x80, 0xac, 0xea, 0xf1, 0x60, 0x0c, 0x5f, 0xe5, 0xa6, 0xe4, 0x18, 0x4c, 0x51, 0x84, 0xb1, 0xa6, + 0xd9, 0x76, 0x8e, 0xcd, 0xc6, 0x40, 0xee, 0xf8, 0x4d, 0xc6, 0x91, 0xf6, 0x40, 0xcc, 0x22, 0x1d, + 0xeb, 0x34, 0x34, 0xbf, 0xc5, 0x2d, 0x22, 0xc0, 0x58, 0xea, 0x39, 0x2e, 0xd9, 0xd2, 0x3a, 0x0d, + 0xdb, 0x3f, 0xe6, 0xa9, 0x47, 0xb1, 0x5b, 0x22, 0xe3, 0x2d, 0x18, 0x75, 0xea, 0x6f, 0x0e, 0x44, + 0xf3, 0x4f, 0xb8, 0xa7, 0x09, 0x00, 0x83, 0xef, 0xc2, 0xa3, 0xa1, 0xcb, 0xc4, 0x00, 0x64, 0xff, + 0x94, 0x91, 0x4d, 0x87, 0x2c, 0x15, 0xac, 0x24, 0x9c, 0x96, 0xf2, 0x9f, 0xf1, 0x92, 0x80, 0x02, + 0x5c, 0x3b, 0xf8, 0x5e, 0xc1, 0x31, 0x0f, 0x4f, 0x67, 0xb5, 0x7f, 0xce, 0xad, 0x46, 0xb1, 0x92, + 0xd5, 0xf6, 0x60, 0x9a, 0x31, 0x9e, 0xce, 0xaf, 0x5f, 0xe3, 0x85, 0x95, 0xa2, 0xf7, 0x65, 0xef, + 0xbe, 0x0c, 0x33, 0x9e, 0x39, 0x79, 0x53, 0xea, 0x54, 0x9a, 0x66, 0x6b, 0x00, 0xe6, 0xdf, 0x66, + 0xcc, 0xbc, 0xe2, 0x7b, 0x5d, 0xad, 0xb3, 0x65, 0xb6, 0x30, 0xf9, 0x4b, 0x90, 0xe1, 0xe4, 0x1d, + 0xab, 0x8d, 0xaa, 0xf6, 0x91, 0x55, 0x7f, 0x13, 0xd5, 0x06, 0xa0, 0xfe, 0x7a, 0xc0, 0x55, 0xfb, + 0x02, 0x1c, 0x33, 0x6f, 0x80, 0xe6, 0xf5, 0x2a, 0x95, 0x7a, 0xb3, 0x65, 0xb7, 0xdd, 0x08, 0xc6, + 0xdf, 0xe1, 0x9e, 0xf2, 0x70, 0x1b, 0x04, 0x96, 0x2b, 0xc1, 0x38, 0x39, 0x1c, 0x34, 0x24, 0x7f, + 0x97, 0x11, 0x8d, 0xf9, 0x28, 0x56, 0x38, 0xaa, 0x76, 0xb3, 0x65, 0xb6, 0x07, 0xa9, 0x7f, 0xff, + 0x82, 0x17, 0x0e, 0x06, 0x61, 0x85, 0xc3, 0x3d, 0x69, 0x21, 0xbc, 0xda, 0x0f, 0xc0, 0xf0, 0x0d, + 0x5e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, 0x61, 0x00, 0x8a, 0x7f, 0xc9, 0x29, 0x38, 0x06, 0x53, + 0x7c, 0xc2, 0x5f, 0x68, 0xdb, 0xe8, 0xa8, 0xee, 0xb8, 0x6d, 0xda, 0x0a, 0xf7, 0xa7, 0xfa, 0xbd, + 0x1f, 0xc8, 0x4d, 0x98, 0x21, 0x40, 0x73, 0x77, 0x60, 0x22, 0xd0, 0x62, 0xe8, 0x51, 0xef, 0xaf, + 0x64, 0xfe, 0xe2, 0x8f, 0x58, 0x31, 0x92, 0x3b, 0x8c, 0xdc, 0x26, 0xf6, 0xbb, 0xdc, 0x07, 0x44, + 0x93, 0x7d, 0xfa, 0x47, 0x9e, 0xeb, 0xa5, 0x36, 0x20, 0xb7, 0x0e, 0x63, 0x52, 0x0f, 0x10, 0x4d, + 0xf5, 0x97, 0x18, 0x55, 0x5a, 0x6c, 0x01, 0x72, 0x57, 0x21, 0x8e, 0xd7, 0xf3, 0x68, 0xf8, 0x5f, + 0x66, 0x70, 0x22, 0x9e, 0x7b, 0x16, 0x92, 0x7c, 0x1d, 0x8f, 0x86, 0xfe, 0x32, 0x83, 0x7a, 0x10, + 0x0c, 0xe7, 0x6b, 0x78, 0x34, 0xfc, 0xaf, 0x70, 0x38, 0x87, 0x60, 0xf8, 0xe0, 0x26, 0x7c, 0xe7, + 0xaf, 0xc5, 0x59, 0x1d, 0xe6, 0xb6, 0xbb, 0x05, 0x23, 0x6c, 0xf1, 0x8e, 0x46, 0xff, 0x0a, 0x3b, + 0x39, 0x47, 0xe4, 0xae, 0x43, 0x62, 0x40, 0x83, 0xff, 0x75, 0x06, 0xa5, 0xf2, 0xb9, 0x22, 0xa4, + 0x84, 0x05, 0x3b, 0x1a, 0xfe, 0x37, 0x18, 0x5c, 0x44, 0x61, 0xd5, 0xd9, 0x82, 0x1d, 0x4d, 0xf0, + 0x37, 0xb9, 0xea, 0x0c, 0x81, 0xcd, 0xc6, 0xd7, 0xea, 0x68, 0xf4, 0xdf, 0xe2, 0x56, 0xe7, 0x90, + 0xdc, 0xf3, 0x30, 0xea, 0xd5, 0xdf, 0x68, 0xfc, 0xdf, 0x66, 0x78, 0x1f, 0x83, 0x2d, 0x20, 0xd4, + 0xff, 0x68, 0x8a, 0xbf, 0xc3, 0x2d, 0x20, 0xa0, 0x70, 0x1a, 0x05, 0xd7, 0xf4, 0x68, 0xa6, 0x5f, + 0xe5, 0x69, 0x14, 0x58, 0xd2, 0xb1, 0x37, 0x49, 0x19, 0x8c, 0xa6, 0xf8, 0xbb, 0xdc, 0x9b, 0x44, + 0x1e, 0xab, 0x11, 0x5c, 0x24, 0xa3, 0x39, 0x7e, 0x8d, 0xab, 0x11, 0x58, 0x23, 0x73, 0x3b, 0xa0, + 0x77, 0x2f, 0x90, 0xd1, 0x7c, 0x9f, 0x65, 0x7c, 0x93, 0x5d, 0xeb, 0x63, 0xee, 0x45, 0x98, 0x0e, + 0x5f, 0x1c, 0xa3, 0x59, 0x7f, 0xfd, 0x47, 0x81, 0xdb, 0x19, 0x71, 0x6d, 0xcc, 0xed, 0xf9, 0x55, + 0x56, 0x5c, 0x18, 0xa3, 0x69, 0x3f, 0xf7, 0x23, 0xb9, 0xd0, 0x8a, 0xeb, 0x62, 0x2e, 0x0f, 0xe0, + 0xaf, 0x49, 0xd1, 0x5c, 0x9f, 0x67, 0x5c, 0x02, 0x08, 0xa7, 0x06, 0x5b, 0x92, 0xa2, 0xf1, 0x5f, + 0xe0, 0xa9, 0xc1, 0x10, 0x38, 0x35, 0xf8, 0x6a, 0x14, 0x8d, 0xfe, 0x22, 0x4f, 0x0d, 0x0e, 0xc9, + 0xdd, 0x82, 0xa4, 0xd5, 0x69, 0x34, 0x70, 0x6c, 0xe9, 0xfd, 0x5f, 0xc9, 0xca, 0xfc, 0xf7, 0x9f, + 0x30, 0x30, 0x07, 0xe4, 0xae, 0x42, 0x02, 0x35, 0x0f, 0x50, 0x2d, 0x0a, 0xf9, 0x3f, 0x7e, 0xc2, + 0xeb, 0x09, 0x96, 0xce, 0x3d, 0x0f, 0x40, 0x6f, 0xa6, 0xc9, 0x83, 0xa2, 0x08, 0xec, 0xff, 0xfc, + 0x09, 0x7b, 0x59, 0xc2, 0x87, 0xf8, 0x04, 0xf4, 0xd5, 0x8b, 0xfe, 0x04, 0x3f, 0x90, 0x09, 0xc8, + 0x0d, 0xf8, 0x4d, 0x18, 0x79, 0xc5, 0xb1, 0x2d, 0xd7, 0x3c, 0x8a, 0x42, 0xff, 0x2f, 0x86, 0xe6, + 0xf2, 0xd8, 0x60, 0x4d, 0xbb, 0x8d, 0x5c, 0xf3, 0xc8, 0x89, 0xc2, 0xfe, 0x6f, 0x86, 0xf5, 0x00, + 0x18, 0x5c, 0x35, 0x1d, 0x77, 0x90, 0xeb, 0xfe, 0x63, 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, + 0x2a, 0x3a, 0x89, 0xc2, 0xfe, 0x90, 0x2b, 0xcd, 0xe4, 0x73, 0xcf, 0xc2, 0x28, 0xfe, 0x48, 0xdf, + 0x80, 0x8a, 0x00, 0xff, 0x1f, 0x06, 0xf6, 0x11, 0xf8, 0xcc, 0x8e, 0x5b, 0x73, 0xeb, 0xd1, 0xc6, + 0xfe, 0x13, 0xe6, 0x69, 0x2e, 0x9f, 0xcb, 0x43, 0xca, 0x71, 0x6b, 0xb5, 0x0e, 0xeb, 0x68, 0x22, + 0xe0, 0xff, 0xf7, 0x27, 0xde, 0x4d, 0xae, 0x87, 0x29, 0x94, 0xc2, 0xf7, 0xeb, 0xe0, 0xb6, 0x7d, + 0xdb, 0xa6, 0x3b, 0x75, 0x9f, 0xca, 0x46, 0x6f, 0xb9, 0xc1, 0x1f, 0x35, 0xe0, 0x7a, 0x4f, 0x31, + 0xbc, 0xd0, 0x5c, 0xaa, 0xda, 0xcd, 0x03, 0xdb, 0xb9, 0x74, 0x60, 0xbb, 0xc7, 0x97, 0xdc, 0x63, + 0x84, 0xc7, 0xd8, 0x1e, 0x5d, 0x1c, 0x7f, 0x9e, 0x39, 0xdd, 0xc6, 0x1e, 0x79, 0x6c, 0x5b, 0xae, + 0xe3, 0x6b, 0x2b, 0x93, 0x9d, 0x73, 0xfd, 0x1c, 0x0c, 0x93, 0xab, 0xbd, 0x4c, 0x9e, 0x4e, 0x29, + 0x85, 0xf8, 0xbd, 0x77, 0xe7, 0x86, 0x0c, 0x36, 0xe6, 0xcd, 0xae, 0x90, 0xad, 0xcd, 0x98, 0x34, + 0xbb, 0xe2, 0xcd, 0x5e, 0xa1, 0xbb, 0x9b, 0xd2, 0xec, 0x15, 0x6f, 0x76, 0x95, 0xec, 0x73, 0xaa, + 0xd2, 0xec, 0xaa, 0x37, 0x7b, 0x95, 0xec, 0xe5, 0x8f, 0x49, 0xb3, 0x57, 0xbd, 0xd9, 0x6b, 0x64, + 0x07, 0x3f, 0x2e, 0xcd, 0x5e, 0xf3, 0x66, 0xaf, 0x93, 0xcd, 0xfb, 0x49, 0x69, 0xf6, 0xba, 0x37, + 0x7b, 0x83, 0x6c, 0xda, 0xeb, 0xd2, 0xec, 0x0d, 0x6f, 0xf6, 0x26, 0x79, 0x23, 0x66, 0x44, 0x9a, + 0xbd, 0xa9, 0xcf, 0xc2, 0x08, 0xbd, 0xf2, 0x65, 0xf2, 0x84, 0x77, 0x82, 0x4d, 0xf3, 0x41, 0x7f, + 0xfe, 0x32, 0x79, 0xfb, 0x65, 0x58, 0x9e, 0xbf, 0xec, 0xcf, 0xaf, 0x90, 0x17, 0xf1, 0x35, 0x79, + 0x7e, 0xc5, 0x9f, 0xbf, 0x92, 0x19, 0x23, 0x6f, 0x00, 0x49, 0xf3, 0x57, 0xfc, 0xf9, 0xd5, 0xcc, + 0x38, 0x0e, 0x78, 0x79, 0x7e, 0xd5, 0x9f, 0xbf, 0x9a, 0x99, 0x98, 0x57, 0x16, 0xd2, 0xf2, 0xfc, + 0xd5, 0xec, 0x2f, 0x11, 0xf7, 0x5a, 0xbe, 0x7b, 0xa7, 0x65, 0xf7, 0x7a, 0x8e, 0x9d, 0x96, 0x1d, + 0xeb, 0xb9, 0x74, 0x5a, 0x76, 0xa9, 0xe7, 0xcc, 0x69, 0xd9, 0x99, 0x9e, 0x1b, 0xa7, 0x65, 0x37, + 0x7a, 0x0e, 0x9c, 0x96, 0x1d, 0xe8, 0xb9, 0x6e, 0x5a, 0x76, 0x9d, 0xe7, 0xb4, 0x69, 0xd9, 0x69, + 0x9e, 0xbb, 0xa6, 0x65, 0x77, 0x79, 0x8e, 0xca, 0x04, 0x1c, 0xe5, 0xbb, 0x28, 0x13, 0x70, 0x91, + 0xef, 0x9c, 0x4c, 0xc0, 0x39, 0xbe, 0x5b, 0x32, 0x01, 0xb7, 0xf8, 0x0e, 0xc9, 0x04, 0x1c, 0xe2, + 0xbb, 0x22, 0x13, 0x70, 0x85, 0xef, 0x04, 0x96, 0x63, 0x06, 0x6a, 0x85, 0xe4, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, - 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xfe, 0x39, 0xa6, - 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, - 0xda, 0x33, 0xc7, 0x02, 0xf7, 0xce, 0x88, 0xee, 0x8d, 0xcc, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, + 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x3f, 0xc7, 0xd4, 0x88, 0x1c, 0x53, + 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x7b, 0xe6, 0x98, + 0xef, 0xde, 0x69, 0xd9, 0xbd, 0xa1, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, - 0x1e, 0x39, 0xa6, 0xf6, 0xca, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, - 0x6a, 0xcf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0x1a, 0xce, 0xb1, 0x7f, 0xad, 0x82, 0x4e, 0x73, 0x6c, - 0x97, 0xbc, 0xfc, 0xc3, 0x5c, 0x31, 0x27, 0x65, 0xda, 0x08, 0x76, 0x9d, 0x16, 0xb8, 0x64, 0x4e, - 0xca, 0x35, 0x71, 0x7e, 0xc5, 0x9f, 0xe7, 0xd9, 0x26, 0xce, 0x5f, 0xf3, 0xe7, 0x79, 0xbe, 0x89, - 0xf3, 0xab, 0xfe, 0x3c, 0xcf, 0x38, 0x71, 0x7e, 0xcd, 0x9f, 0xe7, 0x39, 0x27, 0xce, 0x5f, 0xf7, - 0xe7, 0x79, 0xd6, 0x89, 0xf3, 0x37, 0xfc, 0x79, 0x9e, 0x77, 0xe2, 0xfc, 0x4d, 0x7f, 0x9e, 0x67, - 0x9e, 0x38, 0x7f, 0x4b, 0xbf, 0x20, 0xe7, 0x1e, 0x17, 0xf0, 0x5d, 0x7b, 0x41, 0xce, 0x3e, 0x49, - 0xe2, 0x6a, 0x20, 0xc1, 0xf3, 0x4f, 0x92, 0x58, 0x09, 0x24, 0x78, 0x06, 0x4a, 0x12, 0xd7, 0x72, - 0x9f, 0x25, 0xee, 0xb3, 0x65, 0xf7, 0xcd, 0x4a, 0xee, 0x4b, 0x84, 0x5c, 0x37, 0x2b, 0xb9, 0x2e, - 0x11, 0x72, 0xdb, 0xac, 0xe4, 0xb6, 0x44, 0xc8, 0x65, 0xb3, 0x92, 0xcb, 0x12, 0x21, 0x77, 0xcd, - 0x4a, 0xee, 0x4a, 0x84, 0x5c, 0x35, 0x2b, 0xb9, 0x2a, 0x11, 0x72, 0xd3, 0xac, 0xe4, 0xa6, 0x44, - 0xc8, 0x45, 0xb3, 0x92, 0x8b, 0x12, 0x21, 0xf7, 0xcc, 0x4a, 0xee, 0x49, 0x84, 0x5c, 0x73, 0x5e, - 0x76, 0x4d, 0x22, 0xec, 0x96, 0xf3, 0xb2, 0x5b, 0x12, 0x61, 0x97, 0x9c, 0x97, 0x5d, 0x92, 0x08, - 0xbb, 0xe3, 0xbc, 0xec, 0x8e, 0x44, 0xd8, 0x15, 0x7f, 0x96, 0xe0, 0x1d, 0xe1, 0x9e, 0xd7, 0xee, - 0xd4, 0xbc, 0xf7, 0xd4, 0x11, 0x2e, 0x0b, 0xed, 0x43, 0x7a, 0x45, 0x5f, 0x22, 0x0d, 0x6b, 0xb8, - 0xe3, 0x94, 0x56, 0xb0, 0x65, 0xa1, 0xb1, 0x08, 0x21, 0xec, 0x68, 0xc4, 0xea, 0x7b, 0xea, 0x0d, - 0x97, 0x85, 0x36, 0x23, 0x5e, 0xbf, 0x9b, 0x1f, 0x78, 0xc7, 0xf6, 0x76, 0x82, 0x77, 0x6c, 0xcc, - 0xfc, 0x67, 0xed, 0xd8, 0x16, 0xe3, 0x4d, 0xee, 0x1b, 0x7b, 0x31, 0xde, 0xd8, 0x5d, 0xab, 0xce, - 0xa0, 0x1d, 0xdc, 0x62, 0xbc, 0x69, 0x7d, 0xa3, 0xbe, 0xbf, 0xfd, 0x16, 0x8b, 0x60, 0x03, 0xb5, - 0x22, 0x22, 0xf8, 0xac, 0xfd, 0xd6, 0xb2, 0x50, 0x4a, 0xce, 0x1a, 0xc1, 0xea, 0x99, 0x23, 0xf8, - 0xac, 0x9d, 0xd7, 0xb2, 0x50, 0x5e, 0xce, 0x1c, 0xc1, 0x1f, 0x40, 0x3f, 0xc4, 0x22, 0x38, 0x30, - 0xff, 0x59, 0xfb, 0xa1, 0xc5, 0x78, 0x93, 0x47, 0x46, 0xb0, 0x7a, 0x86, 0x08, 0x1e, 0xa4, 0x3f, - 0x5a, 0x8c, 0x37, 0x6d, 0x74, 0x04, 0xbf, 0xe7, 0x6e, 0xe6, 0xcb, 0x0a, 0x4c, 0x55, 0xac, 0x7a, - 0xb9, 0x79, 0x88, 0xea, 0x75, 0x54, 0x67, 0x76, 0x5c, 0x16, 0x2a, 0x41, 0x0f, 0x57, 0x7f, 0xfb, - 0x9d, 0xf9, 0xc0, 0xc2, 0x6b, 0x90, 0xa2, 0x36, 0x5d, 0x5e, 0xce, 0xde, 0x57, 0x62, 0x2a, 0x9c, - 0x2f, 0xaa, 0x5f, 0xe4, 0xb0, 0xab, 0xcb, 0xd9, 0xff, 0xa4, 0x84, 0xaa, 0x9c, 0x3f, 0x9c, 0xfb, - 0x55, 0xa2, 0xa1, 0xfd, 0x9e, 0x35, 0xbc, 0x32, 0x90, 0x86, 0x21, 0xdd, 0x1e, 0xef, 0xd2, 0x2d, - 0xa4, 0x55, 0x07, 0x26, 0x2b, 0x56, 0xbd, 0x42, 0xbe, 0xd2, 0x3b, 0x88, 0x4a, 0x54, 0x46, 0xaa, - 0x07, 0xcb, 0x42, 0x58, 0x86, 0x11, 0x7e, 0x48, 0x8b, 0x35, 0x22, 0x67, 0xe1, 0xd3, 0xda, 0xc2, - 0x69, 0x17, 0x7b, 0x9d, 0x36, 0xa8, 0xec, 0xfe, 0x09, 0x17, 0x7b, 0x9d, 0x30, 0xc8, 0x21, 0xff, - 0x54, 0x6f, 0xf0, 0xc5, 0x99, 0xbe, 0x85, 0xa3, 0x9f, 0x87, 0xc4, 0x26, 0x7d, 0x43, 0x38, 0x53, - 0xcc, 0x60, 0xa5, 0xbe, 0xf3, 0xce, 0x7c, 0xf2, 0xa0, 0x63, 0xd5, 0x8d, 0xc4, 0x66, 0x5d, 0xbf, - 0x0b, 0xc3, 0x9f, 0x64, 0x5f, 0x8c, 0xc3, 0x02, 0xab, 0x4c, 0xe0, 0xa3, 0x31, 0x5b, 0x4c, 0x84, - 0x7a, 0xe9, 0xc0, 0xb2, 0xbd, 0xab, 0x2b, 0x37, 0x0d, 0x4a, 0x91, 0xfb, 0xf3, 0x00, 0xf4, 0x9c, - 0xeb, 0xa6, 0x7b, 0xa2, 0x57, 0x38, 0x33, 0x3d, 0xf5, 0xcd, 0xef, 0xbc, 0x33, 0xbf, 0x3a, 0x08, - 0xeb, 0xb3, 0x75, 0xd3, 0x3d, 0x79, 0xd6, 0x3b, 0x6d, 0xa1, 0xa5, 0xe2, 0xa9, 0x87, 0x5c, 0xce, - 0xde, 0xe2, 0xab, 0x1e, 0xbb, 0xae, 0x6c, 0xe8, 0xba, 0x52, 0xc2, 0x35, 0x6d, 0x88, 0xd7, 0xb4, - 0xfc, 0xb0, 0xd7, 0xf3, 0x06, 0x5f, 0x24, 0x24, 0x4b, 0xaa, 0x71, 0x96, 0x54, 0xdf, 0xab, 0x25, - 0x5b, 0xbc, 0x3e, 0x4a, 0xd7, 0xaa, 0xf6, 0xbb, 0x56, 0xf5, 0xbd, 0x5c, 0xeb, 0x9f, 0xd0, 0x6c, - 0xf5, 0xf3, 0xe9, 0xc0, 0xa6, 0x6f, 0x27, 0xfe, 0x7c, 0xed, 0x05, 0xbd, 0xaf, 0x5d, 0x40, 0x3e, - 0x79, 0xff, 0xad, 0x79, 0x25, 0xf7, 0xe5, 0x04, 0xbf, 0x72, 0x9a, 0x48, 0x0f, 0x77, 0xe5, 0x3f, - 0x2f, 0x3d, 0xd5, 0x07, 0x61, 0xa1, 0x2f, 0x29, 0x30, 0xd3, 0x55, 0xc9, 0xa9, 0x99, 0xde, 0xdf, - 0x72, 0x6e, 0x9f, 0xb5, 0x9c, 0x33, 0x05, 0x7f, 0x57, 0x81, 0x73, 0x52, 0x79, 0xa5, 0xea, 0x5d, - 0x91, 0xd4, 0x7b, 0xb4, 0xfb, 0x4c, 0x44, 0x30, 0xa4, 0x5d, 0xd8, 0xbd, 0x12, 0x20, 0xc4, 0xec, - 0xfb, 0x7d, 0x55, 0xf2, 0xfb, 0x79, 0x1f, 0x10, 0x61, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x07, 0x92, - 0xfb, 0x6d, 0x84, 0xf4, 0x39, 0x48, 0xec, 0xb4, 0x99, 0x86, 0x13, 0x14, 0xbf, 0xd3, 0x2e, 0xb6, - 0x4d, 0xbb, 0x76, 0x62, 0x24, 0x76, 0xda, 0xfa, 0x45, 0x50, 0x0b, 0xec, 0xa7, 0x07, 0xd2, 0x2b, - 0x93, 0x54, 0xa0, 0x60, 0xd7, 0x99, 0x04, 0x9e, 0xd3, 0xe7, 0x20, 0xb9, 0x85, 0xcc, 0x23, 0xa6, - 0x04, 0x50, 0x19, 0x3c, 0x62, 0x90, 0x71, 0x76, 0xc2, 0x97, 0x21, 0xc5, 0x89, 0xf5, 0x4b, 0x18, - 0x71, 0xe4, 0xb1, 0xd3, 0x32, 0x04, 0x56, 0x87, 0xad, 0x5c, 0x64, 0x56, 0xbf, 0x0c, 0xc3, 0x86, - 0x75, 0x7c, 0xe2, 0xb1, 0x93, 0x77, 0x8b, 0xd1, 0xe9, 0xdc, 0x3d, 0x18, 0xf3, 0x35, 0x7a, 0x9f, - 0xa9, 0xd7, 0xe9, 0xa5, 0xe9, 0xb3, 0xe1, 0xf5, 0x84, 0xef, 0x5b, 0xd2, 0x21, 0xfd, 0x02, 0xa4, - 0xf6, 0xbc, 0x76, 0x50, 0xf4, 0x79, 0x47, 0xea, 0x8f, 0xe6, 0x7e, 0x49, 0x81, 0xd4, 0x3a, 0x42, - 0x2d, 0x62, 0xf0, 0xa7, 0x20, 0xb9, 0xee, 0xbc, 0x6e, 0x33, 0x05, 0xa7, 0x98, 0x45, 0xf1, 0x34, - 0xb3, 0x29, 0x99, 0xd6, 0x9f, 0x0a, 0xdb, 0x7d, 0xda, 0xb7, 0x7b, 0x48, 0x8e, 0xd8, 0x3e, 0x27, - 0xd8, 0x9e, 0x39, 0x10, 0x0b, 0x75, 0xd9, 0xff, 0x06, 0xa4, 0x43, 0x67, 0xd1, 0x17, 0x98, 0x1a, - 0x09, 0x19, 0x18, 0xb6, 0x15, 0x96, 0xc8, 0x21, 0x18, 0x17, 0x4e, 0x8c, 0xa1, 0x21, 0x13, 0xf7, - 0x80, 0x12, 0x33, 0x2f, 0x8a, 0x66, 0x8e, 0x16, 0x65, 0xa6, 0x5e, 0xa6, 0x36, 0x22, 0xe6, 0xbe, - 0x44, 0x83, 0xb3, 0xb7, 0x13, 0xf1, 0xe7, 0xdc, 0x30, 0xa8, 0x15, 0xab, 0x91, 0x7b, 0x0e, 0x80, - 0xa6, 0x7c, 0xd9, 0xee, 0x34, 0xa5, 0xac, 0x9b, 0xe0, 0x06, 0xde, 0x3f, 0x41, 0xfb, 0xc8, 0x25, - 0x22, 0x62, 0x3f, 0x85, 0x0b, 0x0c, 0xd0, 0x14, 0x23, 0xf8, 0x67, 0x62, 0xf1, 0x91, 0x9d, 0x18, - 0x16, 0xcd, 0x52, 0xd1, 0x7b, 0xc8, 0x2b, 0xd8, 0x8e, 0x77, 0x82, 0xda, 0x12, 0x62, 0x45, 0xbf, - 0x26, 0x24, 0xec, 0xc4, 0xca, 0xe3, 0x3e, 0xa2, 0x27, 0xe8, 0x5a, 0xee, 0xeb, 0x44, 0x41, 0xdc, - 0x0a, 0x74, 0x5d, 0xa0, 0x3a, 0xc0, 0x05, 0xea, 0xd7, 0x85, 0xfe, 0xad, 0x8f, 0x9a, 0xd2, 0xad, - 0xe5, 0x2d, 0xe1, 0x3e, 0xa7, 0xbf, 0xb2, 0xe2, 0x3d, 0x26, 0xb7, 0x29, 0x57, 0xf9, 0x99, 0x58, - 0x95, 0x7b, 0x74, 0xb7, 0x67, 0xb5, 0xa9, 0x3a, 0xa8, 0x4d, 0x7f, 0xdf, 0xef, 0x38, 0xe8, 0x8f, - 0x38, 0x90, 0xdf, 0x0c, 0xd1, 0x3f, 0x1a, 0xeb, 0xfb, 0xbc, 0x52, 0xf2, 0x55, 0x5d, 0x1d, 0xd4, - 0xfd, 0xf9, 0x44, 0xb1, 0xe8, 0xab, 0x7b, 0xe3, 0x0c, 0x21, 0x90, 0x4f, 0x94, 0x4a, 0x7e, 0xd9, - 0x4e, 0x7d, 0xf6, 0xad, 0x79, 0xe5, 0x6b, 0x6f, 0xcd, 0x0f, 0xe5, 0x7e, 0x53, 0x81, 0x29, 0x26, - 0x19, 0x0a, 0xdc, 0x67, 0x25, 0xe5, 0x1f, 0xe1, 0x35, 0x23, 0xca, 0x02, 0x3f, 0xb5, 0xe0, 0xfd, - 0x96, 0x02, 0xd9, 0x2e, 0x5d, 0xb9, 0xbd, 0x97, 0x07, 0x52, 0x39, 0xaf, 0x94, 0x7f, 0xf6, 0x36, - 0xbf, 0x07, 0xc3, 0xfb, 0x56, 0x13, 0xb5, 0xf1, 0x4a, 0x80, 0x3f, 0x50, 0x95, 0xf9, 0xc3, 0x1c, - 0x3a, 0xc4, 0xe7, 0xa8, 0x72, 0xc2, 0xdc, 0x8a, 0x9e, 0x85, 0xe4, 0xba, 0xe9, 0x99, 0x44, 0x83, - 0x8c, 0x5f, 0x5f, 0x4d, 0xcf, 0xcc, 0x5d, 0x83, 0xcc, 0xf6, 0x29, 0x79, 0x85, 0xa6, 0x4e, 0x5e, - 0x0f, 0x11, 0xbb, 0x3f, 0xde, 0xaf, 0x5e, 0x5d, 0x1c, 0x4e, 0xd5, 0xb5, 0xfb, 0x4a, 0x3e, 0x49, - 0xf4, 0x79, 0x0d, 0x26, 0x76, 0xb0, 0xda, 0x04, 0x47, 0x60, 0x17, 0x40, 0xd9, 0x16, 0x1b, 0xa1, - 0x30, 0xab, 0xa1, 0x6c, 0x4b, 0xed, 0xa3, 0xea, 0x9b, 0x47, 0x6a, 0xdb, 0x54, 0xbf, 0x6d, 0x5b, - 0x4c, 0xa6, 0x26, 0xb4, 0xa9, 0xc5, 0x64, 0x0a, 0xb4, 0x71, 0x76, 0xde, 0xff, 0xa0, 0x82, 0x46, - 0x5b, 0x9d, 0x75, 0x74, 0x64, 0xd9, 0x96, 0xd7, 0xdd, 0xaf, 0xfa, 0x1a, 0xeb, 0x2f, 0xc0, 0x18, - 0x36, 0xe9, 0x06, 0xfb, 0xe9, 0x2d, 0x6c, 0xfa, 0x8b, 0xac, 0x45, 0x91, 0x28, 0xd8, 0x00, 0x09, - 0x9d, 0x00, 0xa3, 0x6f, 0x80, 0x5a, 0xa9, 0x6c, 0xb3, 0xc5, 0x6d, 0xb5, 0x2f, 0x94, 0xbd, 0x81, - 0xc3, 0x8e, 0xd8, 0x98, 0x7b, 0x6c, 0x60, 0x02, 0x7d, 0x15, 0x12, 0x95, 0x6d, 0xd6, 0xf0, 0x5e, - 0x1a, 0x84, 0xc6, 0x48, 0x54, 0xb6, 0x67, 0xff, 0x8d, 0x02, 0xe3, 0xc2, 0xa8, 0x9e, 0x83, 0x0c, - 0x1d, 0x08, 0x5d, 0xee, 0x88, 0x21, 0x8c, 0x71, 0x9d, 0x13, 0xef, 0x51, 0xe7, 0xd9, 0x02, 0x4c, - 0x4a, 0xe3, 0xfa, 0x12, 0xe8, 0xe1, 0x21, 0xa6, 0x04, 0xfd, 0xd9, 0xa2, 0x88, 0x99, 0xdc, 0x13, - 0x00, 0x81, 0x5d, 0xfd, 0x5f, 0xdb, 0xa9, 0x94, 0xf7, 0xf6, 0xcb, 0xeb, 0x9a, 0x92, 0xfb, 0xa6, - 0x02, 0x69, 0xd6, 0xb6, 0xd6, 0x9c, 0x16, 0xd2, 0x8b, 0xa0, 0x14, 0x58, 0x04, 0x3d, 0x9c, 0xde, - 0x4a, 0x41, 0xbf, 0x02, 0x4a, 0x71, 0x70, 0x57, 0x2b, 0x45, 0x7d, 0x05, 0x94, 0x12, 0x73, 0xf0, - 0x60, 0x9e, 0x51, 0x4a, 0xb9, 0x3f, 0x52, 0x61, 0x3a, 0xdc, 0x46, 0xf3, 0x7a, 0x72, 0x51, 0xbc, - 0x6f, 0xca, 0x8f, 0x5d, 0x5d, 0xb9, 0xb6, 0xba, 0x84, 0xff, 0xf1, 0x43, 0xf2, 0xa2, 0x78, 0x0b, - 0xd5, 0x2d, 0xd2, 0xf5, 0x9a, 0x48, 0x3e, 0x19, 0x9a, 0xed, 0x7a, 0x4d, 0x44, 0x98, 0xed, 0x7a, - 0x4d, 0x44, 0x98, 0xed, 0x7a, 0x4d, 0x44, 0x98, 0xed, 0x7a, 0x14, 0x20, 0xcc, 0x76, 0xbd, 0x26, - 0x22, 0xcc, 0x76, 0xbd, 0x26, 0x22, 0xcc, 0x76, 0xbf, 0x26, 0xc2, 0xa6, 0x7b, 0xbe, 0x26, 0x22, - 0xce, 0x77, 0xbf, 0x26, 0x22, 0xce, 0x77, 0xbf, 0x26, 0x92, 0x4f, 0x7a, 0xed, 0x0e, 0xea, 0xfd, - 0xd0, 0x41, 0xc4, 0xf7, 0xbb, 0x07, 0x0c, 0x0a, 0xf0, 0x0e, 0x4c, 0xd2, 0xfd, 0x88, 0x92, 0x63, - 0x7b, 0xa6, 0x65, 0xa3, 0xb6, 0xfe, 0x31, 0xc8, 0xd0, 0x21, 0x7a, 0x97, 0x13, 0x75, 0x17, 0x48, - 0xe7, 0x59, 0xb9, 0x15, 0xa4, 0x73, 0x7f, 0x96, 0x84, 0x19, 0x3a, 0x50, 0x31, 0x9b, 0x48, 0x78, - 0xc9, 0xe8, 0xb2, 0xf4, 0x48, 0x69, 0x02, 0xc3, 0x1f, 0xbc, 0x33, 0x4f, 0x47, 0x0b, 0x7e, 0x30, - 0x5d, 0x96, 0x1e, 0x2e, 0x89, 0x72, 0xc1, 0xfa, 0x73, 0x59, 0x7a, 0xf1, 0x48, 0x94, 0xf3, 0x97, - 0x1b, 0x5f, 0x8e, 0xbf, 0x82, 0x24, 0xca, 0xad, 0xfb, 0x51, 0x76, 0x59, 0x7a, 0x19, 0x49, 0x94, - 0x2b, 0xfb, 0xf1, 0x76, 0x59, 0x7a, 0xf4, 0x24, 0xca, 0x6d, 0xf8, 0x91, 0x77, 0x59, 0x7a, 0x08, - 0x25, 0xca, 0xdd, 0xf1, 0x63, 0xf0, 0xb2, 0xf4, 0xaa, 0x92, 0x28, 0xf7, 0xa2, 0x1f, 0x8d, 0x97, - 0xa5, 0x97, 0x96, 0x44, 0xb9, 0x4d, 0x3f, 0x2e, 0x17, 0xe4, 0xd7, 0x97, 0x44, 0xc1, 0xbb, 0x41, - 0x84, 0x2e, 0xc8, 0x2f, 0x32, 0x89, 0x92, 0x1f, 0x0f, 0x62, 0x75, 0x41, 0x7e, 0xa5, 0x49, 0x94, - 0xdc, 0x0a, 0xa2, 0x76, 0x41, 0x7e, 0x54, 0x26, 0x4a, 0x6e, 0x07, 0xf1, 0xbb, 0x20, 0x3f, 0x34, - 0x13, 0x25, 0x2b, 0x41, 0x24, 0x2f, 0xc8, 0x8f, 0xcf, 0x44, 0xc9, 0x9d, 0x60, 0x0f, 0xfd, 0x0f, - 0xa4, 0xf0, 0x0b, 0xbd, 0x04, 0x95, 0x93, 0xc2, 0x0f, 0x22, 0x42, 0x2f, 0x27, 0x85, 0x1e, 0x44, - 0x84, 0x5d, 0x4e, 0x0a, 0x3b, 0x88, 0x08, 0xb9, 0x9c, 0x14, 0x72, 0x10, 0x11, 0x6e, 0x39, 0x29, - 0xdc, 0x20, 0x22, 0xd4, 0x72, 0x52, 0xa8, 0x41, 0x44, 0x98, 0xe5, 0xa4, 0x30, 0x83, 0x88, 0x10, - 0xcb, 0x49, 0x21, 0x06, 0x11, 0xe1, 0x95, 0x93, 0xc2, 0x0b, 0x22, 0x42, 0xeb, 0x92, 0x1c, 0x5a, - 0x10, 0x15, 0x56, 0x97, 0xe4, 0xb0, 0x82, 0xa8, 0x90, 0x7a, 0x52, 0x0e, 0xa9, 0xb1, 0x07, 0xef, - 0xcc, 0x0f, 0xe3, 0xa1, 0x50, 0x34, 0x5d, 0x92, 0xa3, 0x09, 0xa2, 0x22, 0xe9, 0x92, 0x1c, 0x49, - 0x10, 0x15, 0x45, 0x97, 0xe4, 0x28, 0x82, 0xa8, 0x08, 0x7a, 0x5b, 0x8e, 0xa0, 0xe0, 0x15, 0x9f, - 0x9c, 0xf4, 0x44, 0x31, 0x2e, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, - 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, - 0x24, 0x82, 0xd4, 0x81, 0x22, 0x48, 0xed, 0x15, 0x41, 0x97, 0xe4, 0x17, 0x1e, 0x20, 0xaa, 0x20, - 0x5d, 0x92, 0x9f, 0x7c, 0xc6, 0x87, 0x90, 0x3a, 0x50, 0x08, 0xa9, 0xbd, 0x42, 0xe8, 0x0f, 0x54, - 0x98, 0x16, 0x42, 0x88, 0x3d, 0x1e, 0x7a, 0xbf, 0x2a, 0xd0, 0xf5, 0x01, 0xde, 0xaf, 0x88, 0x8a, - 0xa9, 0xeb, 0x03, 0x3c, 0xa3, 0xee, 0x17, 0x67, 0xdd, 0x55, 0xa8, 0x3c, 0x40, 0x15, 0xda, 0xf0, - 0x63, 0xe8, 0xfa, 0x00, 0xef, 0x5d, 0x74, 0xc7, 0xde, 0xcd, 0x7e, 0x45, 0xe0, 0xc5, 0x81, 0x8a, - 0xc0, 0xe6, 0x40, 0x45, 0xe0, 0x6e, 0xe0, 0xc1, 0x5f, 0x4e, 0xc0, 0xb9, 0xc0, 0x83, 0xf4, 0x13, - 0xf9, 0x89, 0xa4, 0x5c, 0xe8, 0x09, 0x95, 0xce, 0x9f, 0xda, 0x84, 0xdc, 0x98, 0xd8, 0xac, 0xeb, - 0xbb, 0xe2, 0xb3, 0xaa, 0xfc, 0x59, 0x9f, 0xdf, 0x84, 0x3c, 0xce, 0xf6, 0x42, 0x2f, 0x81, 0xba, - 0x59, 0x77, 0x49, 0xb5, 0x88, 0x3a, 0x6d, 0xc9, 0xc0, 0xd3, 0xba, 0x01, 0x23, 0x44, 0xdc, 0x25, - 0xee, 0x7d, 0x2f, 0x27, 0x5e, 0x37, 0x18, 0x53, 0xee, 0x6d, 0x05, 0x2e, 0x08, 0xa1, 0xfc, 0xfe, - 0x3c, 0x31, 0xb8, 0x3d, 0xd0, 0x13, 0x03, 0x21, 0x41, 0x82, 0xa7, 0x07, 0x4f, 0x77, 0x3f, 0xa8, - 0x0e, 0x67, 0x89, 0xfc, 0x24, 0xe1, 0x2f, 0xc2, 0x44, 0x70, 0x05, 0xe4, 0x96, 0x6d, 0x2d, 0x7e, - 0x33, 0x33, 0x2a, 0x35, 0xd7, 0xa4, 0x4d, 0xb4, 0xbe, 0x30, 0x3f, 0x5b, 0x73, 0x79, 0x98, 0xac, - 0x88, 0xdf, 0xe5, 0x89, 0xdb, 0x8b, 0x48, 0xe1, 0xd6, 0xfc, 0xfe, 0x57, 0xe6, 0x87, 0x72, 0x1f, - 0x85, 0x4c, 0xf8, 0xeb, 0x3a, 0x12, 0x70, 0x8c, 0x03, 0xf3, 0xc9, 0x6f, 0x63, 0xe9, 0xbf, 0xaf, - 0xc0, 0x23, 0x61, 0xf1, 0x97, 0x2c, 0xef, 0x64, 0xd3, 0xc6, 0x3d, 0xfd, 0x73, 0x90, 0x42, 0xcc, - 0x71, 0xec, 0xd7, 0x4e, 0xd8, 0x6d, 0x64, 0xa4, 0xf8, 0x12, 0xf9, 0xd7, 0xf0, 0x21, 0xd2, 0x16, - 0x07, 0x3f, 0xed, 0xca, 0xec, 0x53, 0x30, 0x4c, 0xf9, 0x45, 0xbd, 0xc6, 0x25, 0xbd, 0x7e, 0x23, - 0x42, 0x2f, 0x12, 0x47, 0xfa, 0x5d, 0x41, 0xaf, 0xd0, 0xdd, 0x6a, 0xa4, 0xf8, 0x12, 0x0f, 0xbe, - 0x62, 0x0a, 0xf7, 0x7f, 0x24, 0xa2, 0xe2, 0x95, 0x5c, 0x80, 0x54, 0x59, 0x96, 0x89, 0xd6, 0x73, - 0x1d, 0x92, 0x15, 0xa7, 0x4e, 0x7e, 0x87, 0x85, 0xfc, 0x5e, 0x2e, 0x33, 0x32, 0xfb, 0xf1, 0xdc, - 0xcb, 0x90, 0x2a, 0x9d, 0x58, 0x8d, 0x7a, 0x1b, 0xd9, 0xec, 0x91, 0x3d, 0xdb, 0x41, 0xc7, 0x18, - 0xc3, 0x9f, 0xcb, 0x95, 0x60, 0xaa, 0xe2, 0xd8, 0xc5, 0x53, 0x2f, 0x5c, 0x37, 0x96, 0xa4, 0x14, - 0x61, 0x8f, 0x7c, 0xc8, 0x17, 0x40, 0xb0, 0x40, 0x71, 0xf8, 0x3b, 0xef, 0xcc, 0x2b, 0xfb, 0xfe, - 0xf6, 0xf9, 0x36, 0x3c, 0xca, 0xd2, 0xa7, 0x8b, 0x6a, 0x25, 0x8e, 0x6a, 0x8c, 0x3d, 0xa6, 0x0e, - 0xd1, 0x6d, 0x62, 0x3a, 0x3b, 0x92, 0xee, 0xe1, 0x34, 0xc3, 0x4d, 0x51, 0x5f, 0xcd, 0xd4, 0x33, - 0x69, 0x16, 0x49, 0xb7, 0x14, 0x47, 0x27, 0x69, 0xf6, 0x24, 0x8c, 0xf9, 0x73, 0xa1, 0x68, 0x08, - 0x67, 0xca, 0xca, 0x62, 0x0e, 0xd2, 0xa1, 0x84, 0xd5, 0x87, 0x41, 0x29, 0x68, 0x43, 0xf8, 0xbf, - 0xa2, 0xa6, 0xe0, 0xff, 0x4a, 0x5a, 0x62, 0xf1, 0x29, 0x98, 0x94, 0xb6, 0x2f, 0xf1, 0xcc, 0xba, - 0x06, 0xf8, 0xbf, 0xb2, 0x96, 0x9e, 0x4d, 0x7e, 0xf6, 0x1f, 0xcd, 0x0d, 0x2d, 0xde, 0x06, 0xbd, - 0x7b, 0xa3, 0x53, 0x1f, 0x81, 0x44, 0x01, 0x53, 0x3e, 0x0a, 0x89, 0x62, 0x51, 0x53, 0x66, 0x27, - 0xff, 0xda, 0x17, 0x2f, 0xa4, 0x8b, 0xe4, 0xbb, 0xc8, 0xf7, 0x90, 0x57, 0x2c, 0x32, 0xf0, 0xf3, - 0xf0, 0x48, 0xe4, 0x46, 0x29, 0xc6, 0x97, 0x4a, 0x14, 0xbf, 0xbe, 0xde, 0x85, 0x5f, 0x5f, 0x27, - 0x78, 0x25, 0xcf, 0x1f, 0x38, 0x17, 0xf4, 0x88, 0x6d, 0xc9, 0x6c, 0x3d, 0xf4, 0x80, 0xbb, 0x90, - 0x7f, 0x9e, 0xc9, 0x16, 0x23, 0x65, 0x51, 0xcc, 0x03, 0xeb, 0x62, 0xbe, 0xc4, 0xf0, 0xa5, 0x48, - 0xfc, 0x91, 0xf4, 0x54, 0x55, 0x5c, 0x21, 0x18, 0x49, 0xc9, 0x57, 0x78, 0x3d, 0x92, 0xe4, 0x24, - 0xf4, 0xae, 0xfb, 0xba, 0xaf, 0x70, 0x39, 0x52, 0xd6, 0x8a, 0x79, 0xe7, 0xab, 0x9c, 0xbf, 0xc2, - 0x16, 0xf9, 0xc2, 0x55, 0xfd, 0x11, 0x9e, 0xa3, 0x42, 0x05, 0x66, 0x06, 0xe2, 0x52, 0xf9, 0x12, - 0x03, 0x14, 0x7b, 0x02, 0x7a, 0x5b, 0x89, 0x23, 0xf3, 0x2f, 0x32, 0x92, 0x52, 0x4f, 0x92, 0x18, - 0x53, 0x71, 0x78, 0x71, 0xff, 0xfe, 0xbb, 0x73, 0x43, 0xdf, 0x7e, 0x77, 0x6e, 0xe8, 0xbf, 0xbc, - 0x3b, 0x37, 0xf4, 0xdd, 0x77, 0xe7, 0x94, 0x1f, 0xbc, 0x3b, 0xa7, 0xfc, 0xe8, 0xdd, 0x39, 0xe5, - 0x4f, 0xdf, 0x9d, 0x53, 0xde, 0x7c, 0x30, 0xa7, 0x7c, 0xed, 0xc1, 0x9c, 0xf2, 0xf5, 0x07, 0x73, - 0xca, 0xef, 0x3d, 0x98, 0x53, 0xde, 0x7e, 0x30, 0xa7, 0xdc, 0x7f, 0x30, 0xa7, 0x7c, 0xfb, 0xc1, - 0x9c, 0xf2, 0xdd, 0x07, 0x73, 0xca, 0x0f, 0x1e, 0xcc, 0x0d, 0xfd, 0xe8, 0xc1, 0x9c, 0xf2, 0xa7, - 0x0f, 0xe6, 0x86, 0xde, 0xfc, 0xde, 0xdc, 0xd0, 0x5b, 0xdf, 0x9b, 0x1b, 0xfa, 0xda, 0xf7, 0xe6, - 0x14, 0xf8, 0x6f, 0xab, 0x70, 0x81, 0x7d, 0x91, 0xcc, 0xff, 0xbe, 0xea, 0x15, 0xef, 0x04, 0x91, - 0x96, 0xe0, 0x1a, 0xff, 0x3d, 0x27, 0x7f, 0xe0, 0x8c, 0x5f, 0x2a, 0x9b, 0x7d, 0xd8, 0xaf, 0xb0, - 0xe5, 0xfe, 0xed, 0x30, 0x8c, 0xf2, 0xad, 0xe0, 0xa8, 0x5f, 0x84, 0x5e, 0x83, 0xd4, 0x89, 0xd5, - 0x30, 0xdb, 0x96, 0x77, 0xca, 0xf6, 0x40, 0x1f, 0x5b, 0x0a, 0xd4, 0xe6, 0xbb, 0xa6, 0x2f, 0x76, - 0x9a, 0x4e, 0xa7, 0x6d, 0xf8, 0xa2, 0xfa, 0x05, 0xc8, 0x9c, 0x20, 0xeb, 0xf8, 0xc4, 0xab, 0x5a, - 0x76, 0xb5, 0xd6, 0x24, 0xbd, 0xf2, 0xb8, 0x01, 0x74, 0x6c, 0xd3, 0x2e, 0x35, 0xf1, 0xc9, 0xea, - 0xa6, 0x67, 0x92, 0x7b, 0xf4, 0x8c, 0x41, 0x3e, 0xeb, 0x17, 0x21, 0xd3, 0x46, 0x6e, 0xa7, 0xe1, - 0x55, 0x6b, 0x4e, 0xc7, 0xf6, 0x48, 0x37, 0xab, 0x1a, 0x69, 0x3a, 0x56, 0xc2, 0x43, 0xfa, 0x93, - 0x30, 0xee, 0xb5, 0x3b, 0xa8, 0xea, 0xd6, 0x1c, 0xcf, 0x6d, 0x9a, 0x36, 0xe9, 0x66, 0x53, 0x46, - 0x06, 0x0f, 0xee, 0xb1, 0x31, 0xf2, 0x17, 0x07, 0x6a, 0x4e, 0x1b, 0x91, 0x9b, 0xe9, 0x84, 0x41, - 0x0f, 0x74, 0x0d, 0xd4, 0x57, 0xd1, 0x29, 0xb9, 0x5d, 0x4b, 0x1a, 0xf8, 0xa3, 0xfe, 0x0c, 0x8c, - 0xd0, 0x3f, 0x46, 0x41, 0x7a, 0x6b, 0xf2, 0xe4, 0xda, 0xbf, 0x34, 0xba, 0x43, 0x6b, 0x30, 0x01, - 0xfd, 0x16, 0x8c, 0x7a, 0xa8, 0xdd, 0x36, 0x2d, 0x9b, 0xdc, 0x3a, 0xa5, 0x57, 0xe6, 0x23, 0xcc, - 0xb0, 0x4f, 0x25, 0xc8, 0x8f, 0xbb, 0x1a, 0x5c, 0x5e, 0x5f, 0x83, 0x0c, 0x91, 0x5b, 0xa9, 0xd2, - 0x3f, 0xd8, 0x91, 0xee, 0x19, 0xcd, 0x69, 0x2a, 0xc7, 0x1f, 0x14, 0x70, 0x18, 0xfd, 0x61, 0xbb, - 0x71, 0x72, 0xda, 0x27, 0x23, 0x4e, 0x4b, 0x0a, 0xef, 0x0a, 0x69, 0x1a, 0xe9, 0xa9, 0x19, 0x0f, - 0xfd, 0xe9, 0xbb, 0x6d, 0xc8, 0x84, 0xf5, 0xe2, 0x66, 0xa0, 0xcd, 0x0f, 0x31, 0xc3, 0xd3, 0xc1, - 0x8f, 0xb9, 0xf7, 0xb0, 0x02, 0x9d, 0xcf, 0x27, 0x6e, 0x2a, 0xb3, 0xbb, 0xa0, 0xc9, 0xe7, 0x8b, - 0xa0, 0xbc, 0x2c, 0x52, 0x6a, 0xe1, 0x8b, 0x25, 0xdb, 0xe4, 0x01, 0x63, 0xee, 0x05, 0x18, 0xa1, - 0xf1, 0xa3, 0xa7, 0x61, 0x34, 0xf8, 0xcd, 0xc4, 0x14, 0x24, 0x77, 0x0f, 0x2a, 0x7b, 0xf4, 0xc7, - 0x4f, 0xf7, 0xb6, 0x0a, 0xbb, 0x7b, 0xfb, 0x9b, 0xa5, 0x8f, 0x6b, 0x09, 0x7d, 0x12, 0xd2, 0xc5, - 0xcd, 0xad, 0xad, 0x6a, 0xb1, 0xb0, 0xb9, 0x55, 0xbe, 0xa7, 0xa9, 0xb9, 0x39, 0x18, 0xa1, 0x7a, - 0x92, 0x1f, 0x71, 0xeb, 0xd8, 0xf6, 0x29, 0x6f, 0x1e, 0xc8, 0x41, 0xee, 0x1b, 0x3a, 0x8c, 0x16, - 0x1a, 0x8d, 0x6d, 0xb3, 0xe5, 0xea, 0x2f, 0xc1, 0x14, 0xfd, 0x39, 0x89, 0x7d, 0x67, 0x9d, 0xfc, - 0xd6, 0x20, 0x2e, 0x0d, 0x0a, 0xfb, 0x11, 0xfb, 0xe0, 0xba, 0x99, 0xf8, 0x52, 0x97, 0x2c, 0x35, - 0x70, 0x37, 0x87, 0xbe, 0x0f, 0x1a, 0x1f, 0xdc, 0x68, 0x38, 0xa6, 0x87, 0x79, 0x13, 0xec, 0xa7, - 0x00, 0x7b, 0xf3, 0x72, 0x51, 0x4a, 0xdb, 0xc5, 0xa0, 0x7f, 0x0c, 0x52, 0x9b, 0xb6, 0x77, 0x6d, - 0x05, 0xb3, 0xf1, 0x3f, 0xb0, 0xd2, 0xcd, 0xc6, 0x45, 0x28, 0x8b, 0x8f, 0x60, 0xe8, 0xeb, 0xab, - 0x18, 0x9d, 0xec, 0x87, 0x26, 0x22, 0x01, 0x9a, 0x1c, 0xea, 0x2f, 0xc0, 0x18, 0xbe, 0x37, 0xa1, - 0x27, 0x1f, 0xe6, 0x8d, 0x6b, 0x17, 0xdc, 0x97, 0xa1, 0xf8, 0x00, 0xc3, 0x09, 0xe8, 0xf9, 0x47, - 0xfa, 0x12, 0x84, 0x14, 0x08, 0x30, 0x98, 0x60, 0xcf, 0xd7, 0x60, 0xb4, 0x27, 0xc1, 0x9e, 0xa4, - 0xc1, 0x5e, 0x58, 0x83, 0x3d, 0x5f, 0x83, 0x54, 0x5f, 0x82, 0xb0, 0x06, 0xfe, 0xb1, 0x5e, 0x04, - 0xd8, 0xb0, 0xde, 0x40, 0x75, 0xaa, 0x02, 0xfd, 0xf3, 0x2b, 0xb9, 0x08, 0x86, 0x40, 0x88, 0x52, - 0x84, 0x50, 0x7a, 0x19, 0xd2, 0x7b, 0x47, 0x01, 0x09, 0x74, 0xe5, 0xb1, 0xaf, 0xc6, 0x91, 0xc4, - 0x12, 0xc6, 0xf9, 0xaa, 0xd0, 0x8b, 0x49, 0xf7, 0x57, 0x25, 0x74, 0x35, 0x21, 0x54, 0xa0, 0x0a, - 0x25, 0xc9, 0xc4, 0xa8, 0x12, 0x62, 0x09, 0xe3, 0x70, 0x31, 0x2c, 0x3a, 0x0e, 0x96, 0x64, 0x55, - 0x69, 0x3e, 0x82, 0x82, 0x49, 0xb0, 0x62, 0xc8, 0x8e, 0x88, 0x47, 0x48, 0x90, 0x63, 0xf0, 0x44, - 0x6f, 0x8f, 0x70, 0x19, 0xee, 0x11, 0x7e, 0x1c, 0xce, 0x33, 0xf2, 0x3a, 0x2b, 0xe6, 0x99, 0x8c, - 0xcd, 0x33, 0x2e, 0x2a, 0xe5, 0x19, 0x1f, 0xd6, 0x3f, 0x01, 0x93, 0x7c, 0x0c, 0x97, 0x27, 0x4c, - 0xaa, 0xb1, 0x3f, 0x50, 0xd5, 0x9b, 0x94, 0x49, 0x52, 0x4e, 0x19, 0xaf, 0x57, 0x60, 0x82, 0x0f, - 0x6d, 0xbb, 0xe4, 0x72, 0xa7, 0xd8, 0x1f, 0x7f, 0xe8, 0xcd, 0x48, 0x05, 0x29, 0xa1, 0x84, 0x9e, - 0x5d, 0x87, 0x99, 0xe8, 0x6a, 0x14, 0x2e, 0xbf, 0x63, 0xb4, 0xfc, 0x9e, 0x0b, 0x97, 0x5f, 0x25, - 0x5c, 0xbe, 0x4b, 0xf0, 0x48, 0x64, 0xed, 0x89, 0x23, 0x49, 0x84, 0x49, 0x6e, 0xc3, 0xb8, 0x50, - 0x72, 0xc2, 0xe0, 0xe1, 0x08, 0xf0, 0x70, 0x37, 0x38, 0x08, 0xad, 0x88, 0xd5, 0x43, 0x00, 0xab, - 0x61, 0xf0, 0xc7, 0x60, 0x42, 0xac, 0x37, 0x61, 0xf4, 0x78, 0x04, 0x7a, 0x3c, 0x02, 0x1d, 0x7d, - 0xee, 0x64, 0x04, 0x3a, 0x29, 0xa1, 0xf7, 0x7a, 0x9e, 0x7b, 0x2a, 0x02, 0x3d, 0x15, 0x81, 0x8e, - 0x3e, 0xb7, 0x1e, 0x81, 0xd6, 0xc3, 0xe8, 0xe7, 0x60, 0x52, 0x2a, 0x31, 0x61, 0xf8, 0x68, 0x04, - 0x7c, 0x34, 0x0c, 0x7f, 0x1e, 0x34, 0xb9, 0xb8, 0x84, 0xf1, 0x93, 0x11, 0xf8, 0xc9, 0xa8, 0xd3, - 0x47, 0x6b, 0x3f, 0x12, 0x01, 0x1f, 0x89, 0x3c, 0x7d, 0x34, 0x5e, 0x8b, 0xc0, 0x6b, 0x61, 0x7c, - 0x1e, 0x32, 0xe1, 0x6a, 0x12, 0xc6, 0xa6, 0x22, 0xb0, 0x29, 0xd9, 0xee, 0x42, 0x31, 0x89, 0x8b, - 0xf4, 0xb1, 0x1e, 0xe9, 0x22, 0x94, 0x90, 0x38, 0x92, 0x4c, 0x98, 0xe4, 0x93, 0x70, 0x2e, 0xaa, - 0x64, 0x44, 0x70, 0x2c, 0x84, 0x39, 0x26, 0x70, 0x8f, 0x18, 0x34, 0x7b, 0x66, 0x4b, 0x6a, 0x9c, - 0x66, 0x3f, 0x05, 0xd3, 0x11, 0x85, 0x23, 0x82, 0x76, 0x49, 0xec, 0xc6, 0xb2, 0x21, 0x5a, 0x52, - 0x04, 0x2c, 0xfb, 0x78, 0xd7, 0xb1, 0x6c, 0x2f, 0xdc, 0x95, 0x7d, 0x73, 0x1a, 0x26, 0x58, 0x79, - 0xda, 0x69, 0xd7, 0x51, 0x1b, 0xd5, 0xf5, 0xbf, 0xd0, 0xbb, 0x77, 0x5a, 0xee, 0x2e, 0x6a, 0x0c, - 0x75, 0x86, 0x16, 0xea, 0x53, 0x3d, 0x5b, 0xa8, 0x2b, 0xf1, 0xf4, 0x71, 0x9d, 0x54, 0xa9, 0xab, - 0x93, 0x7a, 0xba, 0x37, 0x69, 0xaf, 0x86, 0xaa, 0xd4, 0xd5, 0x50, 0xf5, 0x27, 0x89, 0xec, 0xab, - 0x36, 0xba, 0xfb, 0xaa, 0x85, 0xde, 0x2c, 0xbd, 0xdb, 0xab, 0x8d, 0xee, 0xf6, 0x2a, 0x86, 0x27, - 0xba, 0xcb, 0xda, 0xe8, 0xee, 0xb2, 0xfa, 0xf0, 0xf4, 0x6e, 0xb6, 0x36, 0xba, 0x9b, 0xad, 0x18, - 0x9e, 0xe8, 0x9e, 0x6b, 0x33, 0xa2, 0xe7, 0x7a, 0xa6, 0x37, 0x51, 0xbf, 0xd6, 0x6b, 0x2b, 0xaa, - 0xf5, 0x5a, 0xec, 0xa3, 0x54, 0xdf, 0x0e, 0x6c, 0x33, 0xa2, 0x03, 0x8b, 0x53, 0xac, 0x47, 0x23, - 0xb6, 0x15, 0xd5, 0x88, 0xc5, 0x2a, 0xd6, 0xab, 0x1f, 0xfb, 0x73, 0x72, 0x3f, 0x76, 0xb9, 0x37, - 0x53, 0x74, 0x5b, 0xb6, 0xd1, 0xdd, 0x96, 0x2d, 0xc4, 0xe5, 0x5c, 0x54, 0x77, 0xf6, 0xa9, 0x9e, - 0xdd, 0xd9, 0x00, 0x29, 0x1c, 0xd7, 0xa4, 0xbd, 0xdc, 0xab, 0x49, 0x5b, 0x8a, 0xe7, 0xee, 0xdf, - 0xab, 0x1d, 0xf4, 0xe8, 0xd5, 0x9e, 0x8d, 0x27, 0xfe, 0xb0, 0x65, 0xfb, 0xb0, 0x65, 0xfb, 0xb0, - 0x65, 0xfb, 0xb0, 0x65, 0xfb, 0xd9, 0xb7, 0x6c, 0xf9, 0xe4, 0xe7, 0xbe, 0x32, 0xaf, 0xe4, 0xfe, - 0xb3, 0xea, 0xff, 0xdd, 0xac, 0x97, 0x2c, 0xef, 0x04, 0x97, 0xb7, 0x6d, 0xc8, 0x90, 0xbf, 0x78, - 0xd1, 0x34, 0x5b, 0x2d, 0xcb, 0x3e, 0x66, 0x3d, 0xdb, 0x62, 0xf7, 0x56, 0x22, 0x03, 0x90, 0xbf, - 0x19, 0xb2, 0x4d, 0x85, 0xd9, 0x72, 0x63, 0x07, 0x23, 0xfa, 0x5d, 0x48, 0x37, 0xdd, 0x63, 0x9f, - 0x2d, 0xd1, 0xb5, 0x10, 0x4a, 0x6c, 0xf4, 0x4a, 0x03, 0x32, 0x68, 0xfa, 0x03, 0x58, 0xb5, 0xc3, - 0x53, 0x2f, 0x50, 0x4d, 0x8d, 0x53, 0x0d, 0xfb, 0x54, 0x54, 0xed, 0x30, 0x18, 0xc1, 0x61, 0x2b, - 0xeb, 0x1e, 0x57, 0xe9, 0x84, 0xe0, 0x79, 0x09, 0x26, 0x25, 0x6d, 0x23, 0x72, 0xfe, 0x21, 0x7c, - 0x83, 0x15, 0x93, 0x35, 0x8f, 0xcb, 0x89, 0x70, 0x40, 0xe6, 0x9e, 0x80, 0x71, 0x81, 0x5b, 0xcf, - 0x80, 0x72, 0xc4, 0xbe, 0x4b, 0xa9, 0x1c, 0xe5, 0xbe, 0xac, 0x40, 0x9a, 0xbd, 0x48, 0xb0, 0x6b, - 0x5a, 0x6d, 0xfd, 0x45, 0x48, 0x36, 0xf8, 0xf7, 0x99, 0x1e, 0xf6, 0xbb, 0xb3, 0x84, 0x41, 0xdf, - 0x80, 0xe1, 0xb6, 0xff, 0x7d, 0xa7, 0x87, 0xfa, 0x42, 0x2c, 0x81, 0xe7, 0xee, 0x2b, 0x30, 0xc5, - 0xde, 0x73, 0x75, 0xd9, 0xdb, 0xcf, 0x66, 0x6b, 0xf6, 0x1b, 0x0a, 0x8c, 0xf9, 0x47, 0xfa, 0x21, - 0x4c, 0xf8, 0x07, 0xf4, 0x0d, 0x7b, 0x1a, 0xa9, 0xf9, 0x90, 0x85, 0xbb, 0x38, 0x96, 0x22, 0x3e, - 0xd1, 0x47, 0x51, 0x74, 0x4d, 0x16, 0x07, 0x67, 0x0b, 0x30, 0x1d, 0x21, 0x76, 0x96, 0x05, 0x39, - 0x77, 0x11, 0xc6, 0x2a, 0x8e, 0x47, 0x7f, 0x36, 0x47, 0x3f, 0x17, 0x7a, 0xaa, 0x50, 0x4c, 0x68, - 0x43, 0x04, 0xbc, 0x78, 0x11, 0x46, 0x59, 0xf6, 0xeb, 0x23, 0x90, 0xd8, 0x2e, 0x68, 0x43, 0xe4, - 0xff, 0xa2, 0xa6, 0x90, 0xff, 0x4b, 0x5a, 0xa2, 0xb8, 0xf5, 0x90, 0xcf, 0x99, 0x86, 0xa2, 0x9e, - 0x33, 0x1d, 0x8e, 0x50, 0xf3, 0xfc, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x52, 0xe1, 0x83, 0x22, - 0x2b, 0x7f, 0x00, 0x00, + 0x5e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, + 0x6a, 0xcf, 0x1c, 0x53, 0xc5, 0x1c, 0xfb, 0xd7, 0x2a, 0xe8, 0x34, 0xc7, 0x76, 0xc8, 0x3b, 0x42, + 0xcc, 0x15, 0xb3, 0x81, 0x4c, 0x1b, 0xc6, 0xae, 0xd3, 0x7c, 0x97, 0xcc, 0x06, 0x72, 0x4d, 0x9e, + 0x5f, 0xf1, 0xe6, 0x79, 0xb6, 0xc9, 0xf3, 0x57, 0xbc, 0x79, 0x9e, 0x6f, 0xf2, 0xfc, 0xaa, 0x37, + 0xcf, 0x33, 0x4e, 0x9e, 0xbf, 0xea, 0xcd, 0xf3, 0x9c, 0x93, 0xe7, 0xaf, 0x79, 0xf3, 0x3c, 0xeb, + 0xe4, 0xf9, 0xeb, 0xde, 0x3c, 0xcf, 0x3b, 0x79, 0xfe, 0x86, 0x37, 0xcf, 0x33, 0x4f, 0x9e, 0xbf, + 0xa9, 0xcf, 0x07, 0x73, 0x8f, 0x0b, 0x78, 0xae, 0x9d, 0x0f, 0x66, 0x5f, 0x40, 0xe2, 0xb2, 0x2f, + 0xc1, 0xf3, 0x2f, 0x20, 0xb1, 0xe2, 0x4b, 0xf0, 0x0c, 0x0c, 0x48, 0x5c, 0xc9, 0x7e, 0x86, 0xb8, + 0xcf, 0x0a, 0xba, 0x6f, 0x26, 0xe0, 0xbe, 0x98, 0xe0, 0xba, 0x99, 0x80, 0xeb, 0x62, 0x82, 0xdb, + 0x66, 0x02, 0x6e, 0x8b, 0x09, 0x2e, 0x9b, 0x09, 0xb8, 0x2c, 0x26, 0xb8, 0x6b, 0x26, 0xe0, 0xae, + 0x98, 0xe0, 0xaa, 0x99, 0x80, 0xab, 0x62, 0x82, 0x9b, 0x66, 0x02, 0x6e, 0x8a, 0x09, 0x2e, 0x9a, + 0x09, 0xb8, 0x28, 0x26, 0xb8, 0x67, 0x26, 0xe0, 0x9e, 0x98, 0xe0, 0x9a, 0x73, 0x41, 0xd7, 0xc4, + 0x44, 0xb7, 0x9c, 0x0b, 0xba, 0x25, 0x26, 0xba, 0xe4, 0x5c, 0xd0, 0x25, 0x31, 0xd1, 0x1d, 0xe7, + 0x82, 0xee, 0x88, 0x89, 0xae, 0xf8, 0xd3, 0x18, 0xef, 0x08, 0x77, 0xdd, 0x76, 0xa7, 0xea, 0x3e, + 0x54, 0x47, 0xb8, 0x2c, 0xb5, 0x0f, 0xa9, 0x15, 0x7d, 0x89, 0x34, 0xac, 0x62, 0xc7, 0x19, 0x58, + 0xc1, 0x96, 0xa5, 0xc6, 0x42, 0x40, 0x58, 0xe1, 0x88, 0xd5, 0x87, 0xea, 0x0d, 0x97, 0xa5, 0x36, + 0x23, 0x5a, 0xbf, 0x1b, 0x1f, 0x78, 0xc7, 0xf6, 0x4e, 0x8c, 0x77, 0x6c, 0xcc, 0xfc, 0xa7, 0xed, + 0xd8, 0x16, 0xa3, 0x4d, 0xee, 0x19, 0x7b, 0x31, 0xda, 0xd8, 0x5d, 0xab, 0xce, 0xa0, 0x1d, 0xdc, + 0x62, 0xb4, 0x69, 0x3d, 0xa3, 0xbe, 0xbf, 0xfd, 0x16, 0x8b, 0x60, 0x03, 0xb5, 0x42, 0x22, 0xf8, + 0xb4, 0xfd, 0xd6, 0xb2, 0x54, 0x4a, 0x4e, 0x1b, 0xc1, 0xea, 0xa9, 0x23, 0xf8, 0xb4, 0x9d, 0xd7, + 0xb2, 0x54, 0x5e, 0x4e, 0x1d, 0xc1, 0x1f, 0x40, 0x3f, 0xc4, 0x22, 0xd8, 0x37, 0xff, 0x69, 0xfb, + 0xa1, 0xc5, 0x68, 0x93, 0x87, 0x46, 0xb0, 0x7a, 0x8a, 0x08, 0x1e, 0xa4, 0x3f, 0x5a, 0x8c, 0x36, + 0x6d, 0x78, 0x04, 0x3f, 0x74, 0x37, 0xf3, 0x25, 0x05, 0x26, 0xcb, 0xf5, 0x5a, 0xa9, 0x79, 0x80, + 0x6a, 0x35, 0x54, 0x63, 0x76, 0x5c, 0x96, 0x2a, 0x41, 0x0f, 0x57, 0x7f, 0xeb, 0xdd, 0x39, 0xdf, + 0xc2, 0x57, 0x21, 0x49, 0x6d, 0xba, 0xbc, 0x9c, 0xb9, 0xa7, 0x44, 0x54, 0x38, 0x4f, 0x54, 0x3f, + 0xcf, 0x61, 0x97, 0x97, 0x33, 0xff, 0x49, 0x11, 0xaa, 0x9c, 0x37, 0x9c, 0xfd, 0x55, 0xa2, 0xa1, + 0xf5, 0xd0, 0x1a, 0x5e, 0x1a, 0x48, 0x43, 0x41, 0xb7, 0xc7, 0xba, 0x74, 0x13, 0xb4, 0xea, 0xc0, + 0x44, 0xb9, 0x5e, 0x2b, 0x93, 0xaf, 0x80, 0x0f, 0xa2, 0x12, 0x95, 0x09, 0xd4, 0x83, 0x65, 0x29, + 0x2c, 0x45, 0x84, 0x17, 0xd2, 0x72, 0x8d, 0xc8, 0xd6, 0xf1, 0x69, 0x2d, 0xe9, 0xb4, 0x8b, 0xbd, + 0x4e, 0xeb, 0x57, 0x76, 0xef, 0x84, 0x8b, 0xbd, 0x4e, 0xe8, 0xe7, 0x90, 0x77, 0xaa, 0x37, 0xf8, + 0xe2, 0x4c, 0xdf, 0xd4, 0xd1, 0xcf, 0x41, 0x6c, 0x83, 0xbe, 0x48, 0x9c, 0x2e, 0xa4, 0xb1, 0x52, + 0xdf, 0x7e, 0x77, 0x2e, 0xbe, 0xdf, 0xa9, 0xd7, 0x8c, 0xd8, 0x46, 0x4d, 0xbf, 0x03, 0x89, 0x4f, + 0xb2, 0x2f, 0x22, 0x62, 0x81, 0x55, 0x26, 0xf0, 0xd1, 0x88, 0x2d, 0x26, 0x42, 0xbd, 0xb4, 0x5f, + 0xb7, 0xdc, 0xcb, 0x2b, 0x37, 0x0c, 0x4a, 0x91, 0xfd, 0x33, 0x00, 0xf4, 0x9c, 0x6b, 0xa6, 0x73, + 0xac, 0x97, 0x39, 0x33, 0x3d, 0xf5, 0x8d, 0x6f, 0xbf, 0x3b, 0xb7, 0x3a, 0x08, 0xeb, 0x33, 0x35, + 0xd3, 0x39, 0x7e, 0xc6, 0x3d, 0x69, 0xa1, 0xa5, 0xc2, 0x89, 0x8b, 0x1c, 0xce, 0xde, 0xe2, 0xab, + 0x1e, 0xbb, 0xae, 0x8c, 0x70, 0x5d, 0x49, 0xe9, 0x9a, 0xd6, 0xe5, 0x6b, 0x5a, 0x7e, 0xd0, 0xeb, + 0x79, 0x83, 0x2f, 0x12, 0x01, 0x4b, 0xaa, 0x51, 0x96, 0x54, 0x1f, 0xd6, 0x92, 0x2d, 0x5e, 0x1f, + 0x03, 0xd7, 0xaa, 0xf6, 0xbb, 0x56, 0xf5, 0x61, 0xae, 0xf5, 0xff, 0xd1, 0x6c, 0xf5, 0xf2, 0x69, + 0xdf, 0xa2, 0x2f, 0x31, 0xfe, 0x7c, 0xed, 0x05, 0xbd, 0xaf, 0x5d, 0x40, 0x2e, 0x7e, 0xef, 0xed, + 0x39, 0x25, 0xfb, 0xa5, 0x18, 0xbf, 0x72, 0x9a, 0x48, 0x0f, 0x76, 0xe5, 0x3f, 0x2f, 0x3d, 0xd5, + 0x07, 0x61, 0xa1, 0x2f, 0x2a, 0x30, 0xdd, 0x55, 0xc9, 0xa9, 0x99, 0xde, 0xdf, 0x72, 0x6e, 0x9d, + 0xb6, 0x9c, 0x33, 0x05, 0x7f, 0x57, 0x81, 0x33, 0x81, 0xf2, 0x4a, 0xd5, 0xbb, 0x14, 0x50, 0xef, + 0x91, 0xee, 0x33, 0x11, 0x41, 0x41, 0x3b, 0xd1, 0xbd, 0x01, 0x80, 0xc0, 0xec, 0xf9, 0x7d, 0x35, + 0xe0, 0xf7, 0x73, 0x1e, 0x20, 0xc4, 0x5c, 0x3c, 0x02, 0x98, 0xda, 0x36, 0xc4, 0xf7, 0xda, 0x08, + 0xe9, 0xb3, 0x10, 0xdb, 0x6e, 0x33, 0x0d, 0xc7, 0x29, 0x7e, 0xbb, 0x5d, 0x68, 0x9b, 0x56, 0xf5, + 0xd8, 0x88, 0x6d, 0xb7, 0xf5, 0xf3, 0xa0, 0xe6, 0xd9, 0x97, 0xa0, 0x53, 0x2b, 0x13, 0x54, 0x20, + 0x6f, 0xd5, 0x98, 0x04, 0x9e, 0xd3, 0x67, 0x21, 0xbe, 0x89, 0xcc, 0x43, 0xa6, 0x04, 0x50, 0x19, + 0x3c, 0x62, 0x90, 0x71, 0x76, 0xc2, 0x97, 0x20, 0xc9, 0x89, 0xf5, 0x0b, 0x18, 0x71, 0xe8, 0xb2, + 0xd3, 0x32, 0x04, 0x56, 0x87, 0xad, 0x5c, 0x64, 0x56, 0xbf, 0x08, 0x09, 0xa3, 0x7e, 0x74, 0xec, + 0xb2, 0x93, 0x77, 0x8b, 0xd1, 0xe9, 0xec, 0x5d, 0x18, 0xf5, 0x34, 0x7a, 0x9f, 0xa9, 0xd7, 0xe8, + 0xa5, 0xe9, 0x33, 0xe2, 0x7a, 0xc2, 0xf7, 0x2d, 0xe9, 0x90, 0x3e, 0x0f, 0xc9, 0x5d, 0xb7, 0xed, + 0x17, 0x7d, 0xde, 0x91, 0x7a, 0xa3, 0xd9, 0x5f, 0x52, 0x20, 0xb9, 0x86, 0x50, 0x8b, 0x18, 0xfc, + 0x49, 0x88, 0xaf, 0xd9, 0xaf, 0x5b, 0x4c, 0xc1, 0x49, 0x66, 0x51, 0x3c, 0xcd, 0x6c, 0x4a, 0xa6, + 0xf5, 0x27, 0x45, 0xbb, 0x4f, 0x79, 0x76, 0x17, 0xe4, 0x88, 0xed, 0xb3, 0x92, 0xed, 0x99, 0x03, + 0xb1, 0x50, 0x97, 0xfd, 0xaf, 0x43, 0x4a, 0x38, 0x8b, 0xbe, 0xc0, 0xd4, 0x88, 0x05, 0x81, 0xa2, + 0xad, 0xb0, 0x44, 0x16, 0xc1, 0x98, 0x74, 0x62, 0x0c, 0x15, 0x4c, 0xdc, 0x03, 0x4a, 0xcc, 0xbc, + 0x28, 0x9b, 0x39, 0x5c, 0x94, 0x99, 0x7a, 0x99, 0xda, 0x88, 0x98, 0xfb, 0x02, 0x0d, 0xce, 0xde, + 0x4e, 0xc4, 0x9f, 0xb3, 0x09, 0x50, 0xcb, 0xf5, 0x46, 0xf6, 0x59, 0x00, 0x9a, 0xf2, 0x25, 0xab, + 0xd3, 0x0c, 0x64, 0xdd, 0x38, 0x37, 0xf0, 0xde, 0x31, 0xda, 0x43, 0x0e, 0x11, 0x91, 0xfb, 0x29, + 0x5c, 0x60, 0x80, 0xa6, 0x18, 0xc1, 0x3f, 0x1d, 0x89, 0x0f, 0xed, 0xc4, 0xb0, 0x68, 0x86, 0x8a, + 0xde, 0x45, 0x6e, 0xde, 0xb2, 0xdd, 0x63, 0xd4, 0x0e, 0x20, 0x56, 0xf4, 0x2b, 0x52, 0xc2, 0x8e, + 0xaf, 0x3c, 0xe6, 0x21, 0x7a, 0x82, 0xae, 0x64, 0xbf, 0x46, 0x14, 0xc4, 0xad, 0x40, 0xd7, 0x05, + 0xaa, 0x03, 0x5c, 0xa0, 0x7e, 0x4d, 0xea, 0xdf, 0xfa, 0xa8, 0x19, 0xb8, 0xb5, 0xbc, 0x29, 0xdd, + 0xe7, 0xf4, 0x57, 0x56, 0xbe, 0xc7, 0xe4, 0x36, 0xe5, 0x2a, 0x3f, 0x1d, 0xa9, 0x72, 0x8f, 0xee, + 0xf6, 0xb4, 0x36, 0x55, 0x07, 0xb5, 0xe9, 0xef, 0x7b, 0x1d, 0x07, 0xfd, 0xa5, 0x09, 0xf2, 0x1b, + 0x2d, 0xfa, 0x47, 0x23, 0x7d, 0x9f, 0x53, 0x8a, 0x9e, 0xaa, 0xab, 0x83, 0xba, 0x3f, 0x17, 0x2b, + 0x14, 0x3c, 0x75, 0xaf, 0x9f, 0x22, 0x04, 0x72, 0xb1, 0x62, 0xd1, 0x2b, 0xdb, 0xc9, 0xcf, 0xbc, + 0x3d, 0xa7, 0x7c, 0xf5, 0xed, 0xb9, 0xa1, 0xec, 0x6f, 0x2a, 0x30, 0xc9, 0x24, 0x85, 0xc0, 0x7d, + 0x26, 0xa0, 0xfc, 0x59, 0x5e, 0x33, 0xc2, 0x2c, 0xf0, 0x53, 0x0b, 0xde, 0x6f, 0x2a, 0x90, 0xe9, + 0xd2, 0x95, 0xdb, 0x7b, 0x79, 0x20, 0x95, 0x73, 0x4a, 0xe9, 0x67, 0x6f, 0xf3, 0xbb, 0x90, 0xd8, + 0xab, 0x37, 0x51, 0x1b, 0xaf, 0x04, 0xf8, 0x03, 0x55, 0x99, 0x3f, 0xcc, 0xa1, 0x43, 0x7c, 0x8e, + 0x2a, 0x27, 0xcd, 0xad, 0xe8, 0x19, 0x88, 0xaf, 0x99, 0xae, 0x49, 0x34, 0x48, 0x7b, 0xf5, 0xd5, + 0x74, 0xcd, 0xec, 0x15, 0x48, 0x6f, 0x9d, 0x90, 0xd7, 0x6c, 0x6a, 0xe4, 0x15, 0x12, 0xb9, 0xfb, + 0xe3, 0xfd, 0xea, 0xe5, 0xc5, 0x44, 0xb2, 0xa6, 0xdd, 0x53, 0x72, 0x71, 0xa2, 0xcf, 0x6b, 0x30, + 0xbe, 0x8d, 0xd5, 0x26, 0x38, 0x02, 0x9b, 0x07, 0x65, 0x4b, 0x6e, 0x84, 0x44, 0x56, 0x43, 0xd9, + 0x0a, 0xb4, 0x8f, 0xaa, 0x67, 0x9e, 0x40, 0xdb, 0xa6, 0x7a, 0x6d, 0xdb, 0x62, 0x3c, 0x39, 0xae, + 0x4d, 0x2e, 0xc6, 0x93, 0xa0, 0x8d, 0xb1, 0xf3, 0xfe, 0x07, 0x15, 0x34, 0xda, 0xea, 0xac, 0xa1, + 0xc3, 0xba, 0x55, 0x77, 0xbb, 0xfb, 0x55, 0x4f, 0x63, 0xfd, 0x79, 0x18, 0xc5, 0x26, 0x5d, 0x67, + 0x3f, 0xd5, 0x86, 0x4d, 0x7f, 0x9e, 0xb5, 0x28, 0x01, 0x0a, 0x36, 0x40, 0x42, 0xc7, 0xc7, 0xe8, + 0xeb, 0xa0, 0x96, 0xcb, 0x5b, 0x6c, 0x71, 0x5b, 0xed, 0x0b, 0x65, 0x6f, 0xe9, 0xb0, 0x23, 0x36, + 0xe6, 0x1c, 0x19, 0x98, 0x40, 0x5f, 0x85, 0x58, 0x79, 0x8b, 0x35, 0xbc, 0x17, 0x06, 0xa1, 0x31, + 0x62, 0xe5, 0xad, 0x99, 0x7f, 0xa3, 0xc0, 0x98, 0x34, 0xaa, 0x67, 0x21, 0x4d, 0x07, 0x84, 0xcb, + 0x1d, 0x36, 0xa4, 0x31, 0xae, 0x73, 0xec, 0x21, 0x75, 0x9e, 0xc9, 0xc3, 0x44, 0x60, 0x5c, 0x5f, + 0x02, 0x5d, 0x1c, 0x62, 0x4a, 0xd0, 0x9f, 0x89, 0x0a, 0x99, 0xc9, 0x3e, 0x0e, 0xe0, 0xdb, 0xd5, + 0xfb, 0x75, 0xa3, 0x72, 0x69, 0x77, 0xaf, 0xb4, 0xa6, 0x29, 0xd9, 0x6f, 0x28, 0x90, 0x62, 0x6d, + 0x6b, 0xd5, 0x6e, 0x21, 0xbd, 0x00, 0x4a, 0x9e, 0x45, 0xd0, 0x83, 0xe9, 0xad, 0xe4, 0xf5, 0x4b, + 0xa0, 0x14, 0x06, 0x77, 0xb5, 0x52, 0xd0, 0x57, 0x40, 0x29, 0x32, 0x07, 0x0f, 0xe6, 0x19, 0xa5, + 0x98, 0xfd, 0x13, 0x15, 0xa6, 0xc4, 0x36, 0x9a, 0xd7, 0x93, 0xf3, 0xf2, 0x7d, 0x53, 0x6e, 0xf4, + 0xf2, 0xca, 0x95, 0xd5, 0x25, 0xfc, 0x8f, 0x17, 0x92, 0x59, 0xf9, 0x16, 0x2a, 0x07, 0x9e, 0xc8, + 0xe5, 0x5e, 0xef, 0x89, 0xe4, 0xe2, 0x02, 0x43, 0xd7, 0x7b, 0x22, 0xd2, 0x6c, 0xd7, 0x7b, 0x22, + 0xd2, 0x6c, 0xd7, 0x7b, 0x22, 0xd2, 0x6c, 0xd7, 0xb3, 0x00, 0x69, 0xb6, 0xeb, 0x3d, 0x11, 0x69, + 0xb6, 0xeb, 0x3d, 0x11, 0x69, 0xb6, 0xfb, 0x3d, 0x11, 0x36, 0xdd, 0xf3, 0x3d, 0x11, 0x79, 0xbe, + 0xfb, 0x3d, 0x11, 0x79, 0xbe, 0xfb, 0x3d, 0x91, 0x5c, 0xdc, 0x6d, 0x77, 0x50, 0xef, 0xa7, 0x0e, + 0x32, 0xbe, 0xdf, 0x4d, 0xa0, 0x5f, 0x81, 0xb7, 0x61, 0x82, 0x6e, 0x48, 0x14, 0x6d, 0xcb, 0x35, + 0xeb, 0x16, 0x6a, 0xeb, 0x1f, 0x83, 0x34, 0x1d, 0xa2, 0xb7, 0x39, 0x61, 0xb7, 0x81, 0x74, 0x9e, + 0xd5, 0x5b, 0x49, 0x3a, 0xfb, 0xa7, 0x71, 0x98, 0xa6, 0x03, 0x65, 0xb3, 0x89, 0xa4, 0xb7, 0x8c, + 0x2e, 0x06, 0x9e, 0x29, 0x8d, 0x63, 0xf8, 0xfd, 0x77, 0xe7, 0xe8, 0x68, 0xde, 0x8b, 0xa6, 0x8b, + 0x81, 0xa7, 0x4b, 0xb2, 0x9c, 0xbf, 0x00, 0x5d, 0x0c, 0xbc, 0x79, 0x24, 0xcb, 0x79, 0xeb, 0x8d, + 0x27, 0xc7, 0xdf, 0x41, 0x92, 0xe5, 0xd6, 0xbc, 0x28, 0xbb, 0x18, 0x78, 0x1b, 0x49, 0x96, 0x2b, + 0x79, 0xf1, 0x76, 0x31, 0xf0, 0xec, 0x49, 0x96, 0x5b, 0xf7, 0x22, 0xef, 0x62, 0xe0, 0x29, 0x94, + 0x2c, 0x77, 0xdb, 0x8b, 0xc1, 0x8b, 0x81, 0x77, 0x95, 0x64, 0xb9, 0x17, 0xbc, 0x68, 0xbc, 0x18, + 0x78, 0x6b, 0x49, 0x96, 0xdb, 0xf0, 0xe2, 0x72, 0x21, 0xf8, 0xfe, 0x92, 0x2c, 0x78, 0xc7, 0x8f, + 0xd0, 0x85, 0xe0, 0x9b, 0x4c, 0xb2, 0xe4, 0xc7, 0xfd, 0x58, 0x5d, 0x08, 0xbe, 0xd3, 0x24, 0x4b, + 0x6e, 0xfa, 0x51, 0xbb, 0x10, 0x7c, 0x56, 0x26, 0x4b, 0x6e, 0xf9, 0xf1, 0xbb, 0x10, 0x7c, 0x6a, + 0x26, 0x4b, 0x96, 0xfd, 0x48, 0x5e, 0x08, 0x3e, 0x3f, 0x93, 0x25, 0xb7, 0xfd, 0x4d, 0xf4, 0x3f, + 0x08, 0x84, 0x9f, 0xf0, 0x16, 0x54, 0x36, 0x10, 0x7e, 0x10, 0x12, 0x7a, 0x81, 0x42, 0x26, 0xc8, + 0xf8, 0x61, 0x97, 0x0d, 0x84, 0x1d, 0x84, 0x84, 0x5c, 0x36, 0x10, 0x72, 0x10, 0x12, 0x6e, 0xd9, + 0x40, 0xb8, 0x41, 0x48, 0xa8, 0x65, 0x03, 0xa1, 0x06, 0x21, 0x61, 0x96, 0x0d, 0x84, 0x19, 0x84, + 0x84, 0x58, 0x36, 0x10, 0x62, 0x10, 0x12, 0x5e, 0xd9, 0x40, 0x78, 0x41, 0x48, 0x68, 0x5d, 0x08, + 0x86, 0x16, 0x84, 0x85, 0xd5, 0x85, 0x60, 0x58, 0x41, 0x58, 0x48, 0x3d, 0x11, 0x0c, 0xa9, 0xd1, + 0xfb, 0xef, 0xce, 0x25, 0xf0, 0x90, 0x10, 0x4d, 0x17, 0x82, 0xd1, 0x04, 0x61, 0x91, 0x74, 0x21, + 0x18, 0x49, 0x10, 0x16, 0x45, 0x17, 0x82, 0x51, 0x04, 0x61, 0x11, 0xf4, 0x4e, 0x30, 0x82, 0xfc, + 0x77, 0x7c, 0xb2, 0x81, 0x47, 0x8a, 0x51, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, + 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, + 0x41, 0xea, 0x20, 0x11, 0xa4, 0x0e, 0x14, 0x41, 0x6a, 0xaf, 0x08, 0xba, 0x10, 0x7c, 0xe3, 0x01, + 0xc2, 0x0a, 0xd2, 0x85, 0xe0, 0xa3, 0xcf, 0xe8, 0x10, 0x52, 0x07, 0x0a, 0x21, 0xb5, 0x57, 0x08, + 0xfd, 0x81, 0x0a, 0x53, 0x52, 0x08, 0xb1, 0xe7, 0x43, 0xef, 0x57, 0x05, 0xba, 0x36, 0xc0, 0x0b, + 0x16, 0x61, 0x31, 0x75, 0x6d, 0x80, 0x87, 0xd4, 0xfd, 0xe2, 0xac, 0xbb, 0x0a, 0x95, 0x06, 0xa8, + 0x42, 0xeb, 0x5e, 0x0c, 0x5d, 0x1b, 0xe0, 0xc5, 0x8b, 0xee, 0xd8, 0xbb, 0xd1, 0xaf, 0x08, 0xbc, + 0x30, 0x50, 0x11, 0xd8, 0x18, 0xa8, 0x08, 0xdc, 0xf1, 0x3d, 0xf8, 0xcb, 0x31, 0x38, 0xe3, 0x7b, + 0x90, 0x7e, 0x22, 0x3f, 0xa5, 0x94, 0x15, 0x1e, 0x51, 0xe9, 0xfc, 0xb1, 0x8d, 0xe0, 0xc6, 0xd8, + 0x46, 0x4d, 0xdf, 0x91, 0x1f, 0x56, 0xe5, 0x4e, 0xfb, 0x00, 0x47, 0xf0, 0x38, 0xdb, 0x0c, 0xbd, + 0x00, 0xea, 0x46, 0xcd, 0x21, 0xd5, 0x22, 0xec, 0xb4, 0x45, 0x03, 0x4f, 0xeb, 0x06, 0x0c, 0x13, + 0x71, 0x87, 0xb8, 0xf7, 0x61, 0x4e, 0xbc, 0x66, 0x30, 0xa6, 0xec, 0x3b, 0x0a, 0xcc, 0x4b, 0xa1, + 0xfc, 0xfe, 0x3c, 0x32, 0xb8, 0x35, 0xd0, 0x23, 0x03, 0x29, 0x41, 0xfc, 0xc7, 0x07, 0x4f, 0x75, + 0x3f, 0xa9, 0x16, 0xb3, 0x24, 0xf8, 0x28, 0xe1, 0x2f, 0xc0, 0xb8, 0x7f, 0x05, 0xe4, 0x9e, 0xed, + 0x6a, 0xf4, 0x6e, 0x66, 0x58, 0x6a, 0x5e, 0x0d, 0xec, 0xa2, 0xf5, 0x85, 0x79, 0xd9, 0x9a, 0xcd, + 0xc1, 0x44, 0x59, 0xfe, 0xc2, 0x4f, 0xd4, 0x66, 0x44, 0x12, 0xb7, 0xe6, 0xf7, 0xbe, 0x3c, 0x37, + 0x94, 0xfd, 0x28, 0xa4, 0xc5, 0xef, 0xf4, 0x04, 0x80, 0xa3, 0x1c, 0x98, 0x8b, 0x7f, 0x0b, 0x4b, + 0xff, 0x3d, 0x05, 0xce, 0x8a, 0xe2, 0x2f, 0xd6, 0xdd, 0xe3, 0x0d, 0x0b, 0xf7, 0xf4, 0xcf, 0x42, + 0x12, 0x31, 0xc7, 0xb1, 0x5f, 0x45, 0x61, 0xf7, 0x91, 0xa1, 0xe2, 0x4b, 0xe4, 0x5f, 0xc3, 0x83, + 0x04, 0xf6, 0x38, 0xf8, 0x69, 0x57, 0x66, 0x9e, 0x84, 0x04, 0xe5, 0x97, 0xf5, 0x1a, 0x0b, 0xe8, + 0xf5, 0x1b, 0x21, 0x7a, 0x91, 0x38, 0xd2, 0xef, 0x48, 0x7a, 0x09, 0xb7, 0xab, 0xa1, 0xe2, 0x4b, + 0x3c, 0xf8, 0x0a, 0x49, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x56, 0x72, 0x01, 0x92, 0xa5, 0xa0, 0x4c, + 0xb8, 0x9e, 0x6b, 0x10, 0x2f, 0xdb, 0x35, 0xf2, 0x7b, 0x2d, 0xe4, 0x07, 0x8a, 0x99, 0x91, 0xd9, + 0xaf, 0x15, 0x5f, 0x84, 0x64, 0xf1, 0xb8, 0xde, 0xa8, 0xb5, 0x91, 0xc5, 0x9e, 0xd9, 0xb3, 0x2d, + 0x74, 0x8c, 0x31, 0xbc, 0xb9, 0x6c, 0x11, 0x26, 0xcb, 0xb6, 0x55, 0x38, 0x71, 0xc5, 0xba, 0xb1, + 0x14, 0x48, 0x11, 0xf6, 0xcc, 0x87, 0x7c, 0x4b, 0x04, 0x0b, 0x14, 0x12, 0xdf, 0x7e, 0x77, 0x4e, + 0xd9, 0xf3, 0xf6, 0xcf, 0xb7, 0xe0, 0x11, 0x96, 0x3e, 0x5d, 0x54, 0x2b, 0x51, 0x54, 0xa3, 0xec, + 0x39, 0xb5, 0x40, 0xb7, 0x81, 0xe9, 0xac, 0x50, 0xba, 0x07, 0xd3, 0x0c, 0x37, 0x45, 0x7d, 0x35, + 0x53, 0x4f, 0xa5, 0x59, 0x28, 0xdd, 0x52, 0x14, 0x5d, 0x40, 0xb3, 0x27, 0x60, 0xd4, 0x9b, 0x13, + 0xa2, 0x41, 0xcc, 0x94, 0x95, 0xc5, 0x2c, 0xa4, 0x84, 0x84, 0xd5, 0x13, 0xa0, 0xe4, 0xb5, 0x21, + 0xfc, 0x5f, 0x41, 0x53, 0xf0, 0x7f, 0x45, 0x2d, 0xb6, 0xf8, 0x24, 0x4c, 0x04, 0xf6, 0x2f, 0xf1, + 0xcc, 0x9a, 0x06, 0xf8, 0xbf, 0x92, 0x96, 0x9a, 0x89, 0x7f, 0xe6, 0x1f, 0xce, 0x0e, 0x2d, 0xde, + 0x02, 0xbd, 0x7b, 0xa7, 0x53, 0x1f, 0x86, 0x58, 0x1e, 0x53, 0x3e, 0x02, 0xb1, 0x42, 0x41, 0x53, + 0x66, 0x26, 0xfe, 0xea, 0x17, 0xe6, 0x53, 0x05, 0xf2, 0x85, 0xe5, 0xbb, 0xc8, 0x2d, 0x14, 0x18, + 0xf8, 0x39, 0x38, 0x1b, 0xba, 0x53, 0x8a, 0xf1, 0xc5, 0x22, 0xc5, 0xaf, 0xad, 0x75, 0xe1, 0xd7, + 0xd6, 0x08, 0x5e, 0xc9, 0xf1, 0x27, 0xce, 0x79, 0x3d, 0x64, 0x5f, 0x32, 0x53, 0x13, 0x9e, 0x70, + 0xe7, 0x73, 0xcf, 0x31, 0xd9, 0x42, 0xa8, 0x2c, 0x8a, 0x78, 0x62, 0x5d, 0xc8, 0x15, 0x19, 0xbe, + 0x18, 0x8a, 0x3f, 0x0c, 0x3c, 0x56, 0x95, 0x57, 0x08, 0x46, 0x52, 0xf4, 0x14, 0x5e, 0x0b, 0x25, + 0x39, 0x16, 0x5e, 0x76, 0x5f, 0xf3, 0x14, 0x2e, 0x85, 0xca, 0xd6, 0x23, 0x5e, 0xfa, 0x2a, 0xe5, + 0x2e, 0xb1, 0x45, 0x3e, 0x7f, 0x59, 0x3f, 0xcb, 0x73, 0x54, 0xaa, 0xc0, 0xcc, 0x40, 0x5c, 0x2a, + 0x57, 0x64, 0x80, 0x42, 0x4f, 0x40, 0x6f, 0x2b, 0x71, 0x64, 0xee, 0x05, 0x46, 0x52, 0xec, 0x49, + 0x12, 0x61, 0x2a, 0x0e, 0x2f, 0xec, 0xdd, 0x7b, 0x6f, 0x76, 0xe8, 0x5b, 0xef, 0xcd, 0x0e, 0xfd, + 0x97, 0xf7, 0x66, 0x87, 0xbe, 0xf3, 0xde, 0xac, 0xf2, 0xfd, 0xf7, 0x66, 0x95, 0x1f, 0xbe, 0x37, + 0xab, 0xfc, 0xf8, 0xbd, 0x59, 0xe5, 0xad, 0xfb, 0xb3, 0xca, 0x57, 0xef, 0xcf, 0x2a, 0x5f, 0xbb, + 0x3f, 0xab, 0xfc, 0xde, 0xfd, 0x59, 0xe5, 0x9d, 0xfb, 0xb3, 0xca, 0xbd, 0xfb, 0xb3, 0xca, 0xb7, + 0xee, 0xcf, 0x2a, 0xdf, 0xb9, 0x3f, 0xab, 0x7c, 0xff, 0xfe, 0xec, 0xd0, 0x0f, 0xef, 0xcf, 0x2a, + 0x3f, 0xbe, 0x3f, 0x3b, 0xf4, 0xd6, 0x77, 0x67, 0x87, 0xde, 0xfe, 0xee, 0xec, 0xd0, 0x57, 0xbf, + 0x3b, 0xab, 0xc0, 0x1f, 0xad, 0xc2, 0x3c, 0xfb, 0x26, 0x99, 0xf7, 0xa5, 0xd6, 0x4b, 0xee, 0x31, + 0x22, 0x2d, 0xc1, 0x15, 0xfe, 0xa3, 0x4f, 0xde, 0xc0, 0x29, 0xbf, 0x55, 0x36, 0xf3, 0xa0, 0xdf, + 0x61, 0xcb, 0xfe, 0xdb, 0x04, 0x8c, 0xf0, 0xbd, 0xe0, 0xb0, 0x5f, 0xb0, 0xbe, 0x0a, 0xc9, 0xe3, + 0x7a, 0xc3, 0x6c, 0xd7, 0xdd, 0x13, 0xb6, 0x09, 0xfa, 0xe8, 0x92, 0xaf, 0x36, 0xdf, 0x36, 0x7d, + 0xa1, 0xd3, 0xb4, 0x3b, 0x6d, 0xc3, 0x13, 0xd5, 0xe7, 0x21, 0x7d, 0x8c, 0xea, 0x47, 0xc7, 0x6e, + 0xa5, 0x6e, 0x55, 0xaa, 0x4d, 0xd2, 0x2b, 0x8f, 0x19, 0x40, 0xc7, 0x36, 0xac, 0x62, 0x13, 0x9f, + 0xac, 0x66, 0xba, 0x26, 0xb9, 0x47, 0x4f, 0x1b, 0xe4, 0xb3, 0x7e, 0x1e, 0xd2, 0x6d, 0xe4, 0x74, + 0x1a, 0x6e, 0xa5, 0x6a, 0x77, 0x2c, 0x97, 0x74, 0xb3, 0xaa, 0x91, 0xa2, 0x63, 0x45, 0x3c, 0xa4, + 0x3f, 0x01, 0x63, 0x6e, 0xbb, 0x83, 0x2a, 0x4e, 0xd5, 0x76, 0x9d, 0xa6, 0x69, 0x91, 0x6e, 0x36, + 0x69, 0xa4, 0xf1, 0xe0, 0x2e, 0x1b, 0x23, 0x3f, 0x7e, 0x5e, 0xb5, 0xdb, 0x88, 0xdc, 0x4c, 0xc7, + 0x0c, 0x7a, 0xa0, 0x6b, 0xa0, 0xbe, 0x8a, 0x4e, 0xc8, 0xed, 0x5a, 0xdc, 0xc0, 0x1f, 0xf5, 0xa7, + 0x61, 0x98, 0xfe, 0xf5, 0x12, 0xd2, 0x5b, 0x93, 0x47, 0xd7, 0xde, 0xa5, 0xd1, 0x2d, 0x5a, 0x83, + 0x09, 0xe8, 0x37, 0x61, 0xc4, 0x45, 0xed, 0xb6, 0x59, 0xb7, 0xc8, 0xad, 0x53, 0x6a, 0x65, 0x2e, + 0xc4, 0x0c, 0x7b, 0x54, 0x82, 0xfc, 0x08, 0xac, 0xc1, 0xe5, 0xf5, 0xab, 0x90, 0x26, 0x72, 0x2b, + 0x15, 0xfa, 0x17, 0x5e, 0x52, 0x3d, 0xa3, 0x39, 0x45, 0xe5, 0xf8, 0x93, 0x02, 0x0e, 0xa3, 0x3f, + 0x80, 0x37, 0x46, 0x4e, 0xfb, 0x44, 0xc8, 0x69, 0x49, 0xe1, 0x5d, 0x21, 0x4d, 0x23, 0x3d, 0x35, + 0xe3, 0xa1, 0x3f, 0x91, 0xb7, 0x05, 0x69, 0x51, 0x2f, 0x6e, 0x06, 0xda, 0xfc, 0x10, 0x33, 0x3c, + 0xe5, 0xff, 0x7a, 0x7e, 0x0f, 0x2b, 0xd0, 0xf9, 0x5c, 0xec, 0x86, 0x32, 0xb3, 0x03, 0x5a, 0xf0, + 0x7c, 0x21, 0x94, 0x17, 0x65, 0x4a, 0x4d, 0xbc, 0x58, 0xb2, 0x4f, 0xee, 0x33, 0x66, 0x9f, 0x87, + 0x61, 0x1a, 0x3f, 0x7a, 0x0a, 0x46, 0xfc, 0xdf, 0x56, 0x4c, 0x42, 0x7c, 0x67, 0xbf, 0xbc, 0x4b, + 0x7f, 0x24, 0x75, 0x77, 0x33, 0xbf, 0xb3, 0xbb, 0xb7, 0x51, 0xfc, 0xb8, 0x16, 0xd3, 0x27, 0x20, + 0x55, 0xd8, 0xd8, 0xdc, 0xac, 0x14, 0xf2, 0x1b, 0x9b, 0xa5, 0xbb, 0x9a, 0x9a, 0x9d, 0x85, 0x61, + 0xaa, 0x27, 0xf9, 0xb1, 0xb7, 0x8e, 0x65, 0x9d, 0xf0, 0xe6, 0x81, 0x1c, 0x64, 0xbf, 0xae, 0xc3, + 0x48, 0xbe, 0xd1, 0xd8, 0x32, 0x5b, 0x8e, 0xfe, 0x22, 0x4c, 0xd2, 0xdf, 0x9c, 0xd8, 0xb3, 0xd7, + 0xc8, 0x6f, 0x12, 0xe2, 0xd2, 0xa0, 0xb0, 0xbf, 0x1a, 0xe0, 0x5f, 0x37, 0x13, 0x5f, 0xea, 0x92, + 0xa5, 0x06, 0xee, 0xe6, 0xd0, 0xf7, 0x40, 0xe3, 0x83, 0xeb, 0x0d, 0xdb, 0x74, 0x31, 0x6f, 0x8c, + 0xfd, 0x64, 0x60, 0x6f, 0x5e, 0x2e, 0x4a, 0x69, 0xbb, 0x18, 0xf4, 0x8f, 0x41, 0x72, 0xc3, 0x72, + 0xaf, 0xac, 0x60, 0x36, 0xfe, 0x17, 0x79, 0xba, 0xd9, 0xb8, 0x08, 0x65, 0xf1, 0x10, 0x0c, 0x7d, + 0x6d, 0x15, 0xa3, 0xe3, 0xfd, 0xd0, 0x44, 0xc4, 0x47, 0x93, 0x43, 0xfd, 0x79, 0x18, 0xc5, 0xf7, + 0x26, 0xf4, 0xe4, 0x09, 0xde, 0xb8, 0x76, 0xc1, 0x3d, 0x19, 0x8a, 0xf7, 0x31, 0x9c, 0x80, 0x9e, + 0x7f, 0xb8, 0x2f, 0x81, 0xa0, 0x80, 0x8f, 0xc1, 0x04, 0xbb, 0x9e, 0x06, 0x23, 0x3d, 0x09, 0x76, + 0x03, 0x1a, 0xec, 0x8a, 0x1a, 0xec, 0x7a, 0x1a, 0x24, 0xfb, 0x12, 0x88, 0x1a, 0x78, 0xc7, 0x7a, + 0x01, 0x60, 0xbd, 0xfe, 0x06, 0xaa, 0x51, 0x15, 0xe8, 0xdf, 0xeb, 0xc9, 0x86, 0x30, 0xf8, 0x42, + 0x94, 0x42, 0x40, 0xe9, 0x25, 0x48, 0xed, 0x1e, 0xfa, 0x24, 0xd0, 0x95, 0xc7, 0x9e, 0x1a, 0x87, + 0x01, 0x16, 0x11, 0xe7, 0xa9, 0x42, 0x2f, 0x26, 0xd5, 0x5f, 0x15, 0xe1, 0x6a, 0x04, 0x94, 0xaf, + 0x0a, 0x25, 0x49, 0x47, 0xa8, 0x22, 0xb0, 0x88, 0x38, 0x5c, 0x0c, 0x0b, 0xb6, 0x8d, 0x25, 0x59, + 0x55, 0x9a, 0x0b, 0xa1, 0x60, 0x12, 0xac, 0x18, 0xb2, 0x23, 0xe2, 0x11, 0x12, 0xe4, 0x18, 0x3c, + 0xde, 0xdb, 0x23, 0x5c, 0x86, 0x7b, 0x84, 0x1f, 0x8b, 0x79, 0x46, 0xde, 0x67, 0xc5, 0x3c, 0x13, + 0x91, 0x79, 0xc6, 0x45, 0x03, 0x79, 0xc6, 0x87, 0xf5, 0x4f, 0xc0, 0x04, 0x1f, 0xc3, 0xe5, 0x09, + 0x93, 0x6a, 0xec, 0x2f, 0x9a, 0xf5, 0x26, 0x65, 0x92, 0x94, 0x33, 0x88, 0xd7, 0xcb, 0x30, 0xce, + 0x87, 0xb6, 0x1c, 0x72, 0xb9, 0x93, 0xec, 0x8f, 0x55, 0xf4, 0x66, 0xa4, 0x82, 0x94, 0x30, 0x80, + 0x9e, 0x59, 0x83, 0xe9, 0xf0, 0x6a, 0x24, 0x96, 0xdf, 0x51, 0x5a, 0x7e, 0xcf, 0x88, 0xe5, 0x57, + 0x11, 0xcb, 0x77, 0x11, 0xce, 0x86, 0xd6, 0x9e, 0x28, 0x92, 0x98, 0x48, 0x72, 0x0b, 0xc6, 0xa4, + 0x92, 0x23, 0x82, 0x13, 0x21, 0xe0, 0x44, 0x37, 0xd8, 0x0f, 0xad, 0x90, 0xd5, 0x43, 0x02, 0xab, + 0x22, 0xf8, 0x63, 0x30, 0x2e, 0xd7, 0x1b, 0x11, 0x3d, 0x16, 0x82, 0x1e, 0x0b, 0x41, 0x87, 0x9f, + 0x3b, 0x1e, 0x82, 0x8e, 0x07, 0xd0, 0xbb, 0x3d, 0xcf, 0x3d, 0x19, 0x82, 0x9e, 0x0c, 0x41, 0x87, + 0x9f, 0x5b, 0x0f, 0x41, 0xeb, 0x22, 0xfa, 0x59, 0x98, 0x08, 0x94, 0x18, 0x11, 0x3e, 0x12, 0x02, + 0x1f, 0x11, 0xe1, 0xcf, 0x81, 0x16, 0x2c, 0x2e, 0x22, 0x7e, 0x22, 0x04, 0x3f, 0x11, 0x76, 0xfa, + 0x70, 0xed, 0x87, 0x43, 0xe0, 0xc3, 0xa1, 0xa7, 0x0f, 0xc7, 0x6b, 0x21, 0x78, 0x4d, 0xc4, 0xe7, + 0x20, 0x2d, 0x56, 0x13, 0x11, 0x9b, 0x0c, 0xc1, 0x26, 0x83, 0x76, 0x97, 0x8a, 0x49, 0x54, 0xa4, + 0x8f, 0xf6, 0x48, 0x17, 0xa9, 0x84, 0x44, 0x91, 0xa4, 0x45, 0x92, 0x4f, 0xc2, 0x99, 0xb0, 0x92, + 0x11, 0xc2, 0xb1, 0x20, 0x72, 0x8c, 0xe3, 0x1e, 0xd1, 0x6f, 0xf6, 0xcc, 0x56, 0xa0, 0x71, 0x9a, + 0x79, 0x19, 0xa6, 0x42, 0x0a, 0x47, 0x08, 0xed, 0x92, 0xdc, 0x8d, 0x65, 0x04, 0x5a, 0x52, 0x04, + 0xea, 0xd6, 0xd1, 0x8e, 0x5d, 0xb7, 0x5c, 0xb1, 0x2b, 0xfb, 0xc6, 0x14, 0x8c, 0xb3, 0xf2, 0xb4, + 0xdd, 0xae, 0xa1, 0x36, 0xaa, 0xe9, 0x7f, 0xae, 0x77, 0xef, 0xb4, 0xdc, 0x5d, 0xd4, 0x18, 0xea, + 0x14, 0x2d, 0xd4, 0xcb, 0x3d, 0x5b, 0xa8, 0x4b, 0xd1, 0xf4, 0x51, 0x9d, 0x54, 0xb1, 0xab, 0x93, + 0x7a, 0xaa, 0x37, 0x69, 0xaf, 0x86, 0xaa, 0xd8, 0xd5, 0x50, 0xf5, 0x27, 0x09, 0xed, 0xab, 0xd6, + 0xbb, 0xfb, 0xaa, 0x85, 0xde, 0x2c, 0xbd, 0xdb, 0xab, 0xf5, 0xee, 0xf6, 0x2a, 0x82, 0x27, 0xbc, + 0xcb, 0x5a, 0xef, 0xee, 0xb2, 0xfa, 0xf0, 0xf4, 0x6e, 0xb6, 0xd6, 0xbb, 0x9b, 0xad, 0x08, 0x9e, + 0xf0, 0x9e, 0x6b, 0x23, 0xa4, 0xe7, 0x7a, 0xba, 0x37, 0x51, 0xbf, 0xd6, 0x6b, 0x33, 0xac, 0xf5, + 0x5a, 0xec, 0xa3, 0x54, 0xdf, 0x0e, 0x6c, 0x23, 0xa4, 0x03, 0x8b, 0x52, 0xac, 0x47, 0x23, 0xb6, + 0x19, 0xd6, 0x88, 0x45, 0x2a, 0xd6, 0xab, 0x1f, 0xfb, 0x85, 0x60, 0x3f, 0x76, 0xb1, 0x37, 0x53, + 0x78, 0x5b, 0xb6, 0xde, 0xdd, 0x96, 0x2d, 0x44, 0xe5, 0x5c, 0x58, 0x77, 0xf6, 0x72, 0xcf, 0xee, + 0x6c, 0x80, 0x14, 0x8e, 0x6a, 0xd2, 0x5e, 0xea, 0xd5, 0xa4, 0x2d, 0x45, 0x73, 0xf7, 0xef, 0xd5, + 0xf6, 0x7b, 0xf4, 0x6a, 0xcf, 0x44, 0x13, 0x7f, 0xd8, 0xb2, 0x7d, 0xd8, 0xb2, 0x7d, 0xd8, 0xb2, + 0x7d, 0xd8, 0xb2, 0xfd, 0xec, 0x5b, 0xb6, 0x5c, 0xfc, 0xb3, 0x5f, 0x9e, 0x53, 0xb2, 0xff, 0x59, + 0xf5, 0xfe, 0xbe, 0xd6, 0x8b, 0x75, 0xf7, 0x18, 0x97, 0xb7, 0x2d, 0x48, 0x93, 0xbf, 0x8c, 0xd1, + 0x34, 0x5b, 0xad, 0xba, 0x75, 0xc4, 0x7a, 0xb6, 0xc5, 0xee, 0xad, 0x44, 0x06, 0x20, 0x7f, 0x5b, + 0x64, 0x8b, 0x0a, 0xb3, 0xe5, 0xc6, 0xf2, 0x47, 0xf4, 0x3b, 0x90, 0x6a, 0x3a, 0x47, 0x1e, 0x5b, + 0xac, 0x6b, 0x21, 0x0c, 0xb0, 0xd1, 0x2b, 0xf5, 0xc9, 0xa0, 0xe9, 0x0d, 0x60, 0xd5, 0x0e, 0x4e, + 0x5c, 0x5f, 0x35, 0x35, 0x4a, 0x35, 0xec, 0x53, 0x59, 0xb5, 0x03, 0x7f, 0x04, 0x87, 0x6d, 0x50, + 0xf7, 0xa8, 0x4a, 0x27, 0x05, 0xcf, 0x8b, 0x30, 0x11, 0xd0, 0x36, 0x24, 0xe7, 0x1f, 0xc0, 0x37, + 0x58, 0xb1, 0xa0, 0xe6, 0x51, 0x39, 0x21, 0x06, 0x64, 0xf6, 0x71, 0x18, 0x93, 0xb8, 0xf5, 0x34, + 0x28, 0x87, 0xec, 0xcb, 0x94, 0xca, 0x61, 0xf6, 0x4b, 0x0a, 0xa4, 0xd8, 0x8b, 0x04, 0x3b, 0x66, + 0xbd, 0xad, 0xbf, 0x00, 0xf1, 0x06, 0xff, 0x42, 0xd3, 0x83, 0x7e, 0x79, 0x96, 0x30, 0xe8, 0xeb, + 0x90, 0x68, 0x7b, 0x5f, 0x78, 0x7a, 0xa0, 0x6f, 0xc4, 0x12, 0x78, 0xf6, 0x9e, 0x02, 0x93, 0xec, + 0x3d, 0x57, 0x87, 0xbd, 0xfe, 0x6c, 0xb6, 0x66, 0xbe, 0xae, 0xc0, 0xa8, 0x77, 0xa4, 0x1f, 0xc0, + 0xb8, 0x77, 0x40, 0x5f, 0xb1, 0xa7, 0x91, 0x9a, 0x13, 0x2c, 0xdc, 0xc5, 0xb1, 0x14, 0xf2, 0x89, + 0x3e, 0x8a, 0xa2, 0x6b, 0xb2, 0x3c, 0x38, 0x93, 0x87, 0xa9, 0x10, 0xb1, 0xd3, 0x2c, 0xc8, 0xd9, + 0xf3, 0x30, 0x5a, 0xb6, 0x5d, 0xfa, 0xbb, 0x39, 0xfa, 0x19, 0xe1, 0xa9, 0x42, 0x21, 0xa6, 0x0d, + 0x11, 0xf0, 0xe2, 0x79, 0x18, 0x61, 0xd9, 0xaf, 0x0f, 0x43, 0x6c, 0x2b, 0xaf, 0x0d, 0x91, 0xff, + 0x0b, 0x9a, 0x42, 0xfe, 0x2f, 0x6a, 0xb1, 0xc2, 0xe6, 0x03, 0x3e, 0x67, 0x1a, 0x0a, 0x7b, 0xce, + 0x74, 0x30, 0x4c, 0xcd, 0xf3, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xc4, 0x99, 0xf6, 0x2d, 0x5c, + 0x81, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -2092,7 +2099,7 @@ func (this *NotPacked) Equal(that interface{}) bool { } type MessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetName() string GetHilarity() Message_Humour GetHeightInCm() uint32 @@ -2107,11 +2114,11 @@ type MessageFace interface { GetProto2Value() map[int64]*test.NinOptEnum } -func (this *Message) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Message) Proto() proto.Message { return this } -func (this *Message) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Message) TestProto() proto.Message { return NewMessageFromFace(this) } @@ -2181,15 +2188,15 @@ func NewMessageFromFace(that MessageFace) *Message { } type NestedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetBunny() string } -func (this *Nested) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Nested) Proto() proto.Message { return this } -func (this *Nested) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Nested) TestProto() proto.Message { return NewNestedFromFace(this) } @@ -2204,7 +2211,7 @@ func NewNestedFromFace(that NestedFace) *Nested { } type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -2224,11 +2231,11 @@ type AllMapsFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) Proto() proto.Message { return this } -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) TestProto() proto.Message { return NewAllMapsFromFace(this) } @@ -2323,7 +2330,7 @@ func NewAllMapsFromFace(that AllMapsFace) *AllMaps { } type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -2343,11 +2350,11 @@ type AllMapsOrderedFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) Proto() proto.Message { return this } -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) TestProto() proto.Message { return NewAllMapsOrderedFromFace(this) } @@ -2442,17 +2449,17 @@ func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { } type MessageWithMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNameMapping() map[int32]string GetMsgMapping() map[int64]*FloatingPoint GetByteMapping() map[bool][]byte } -func (this *MessageWithMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *MessageWithMap) Proto() proto.Message { return this } -func (this *MessageWithMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *MessageWithMap) TestProto() proto.Message { return NewMessageWithMapFromFace(this) } @@ -2477,15 +2484,15 @@ func NewMessageWithMapFromFace(that MessageWithMapFace) *MessageWithMap { } type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetF() float64 } -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) Proto() proto.Message { return this } -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) TestProto() proto.Message { return NewFloatingPointFromFace(this) } @@ -2500,16 +2507,16 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { } type Uint128PairFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() github_com_gogo_protobuf_test_custom.Uint128 GetRight() *github_com_gogo_protobuf_test_custom.Uint128 } -func (this *Uint128Pair) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Uint128Pair) Proto() proto.Message { return this } -func (this *Uint128Pair) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Uint128Pair) TestProto() proto.Message { return NewUint128PairFromFace(this) } @@ -2529,14 +2536,14 @@ func NewUint128PairFromFace(that Uint128PairFace) *Uint128Pair { } type ContainsNestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message } -func (this *ContainsNestedMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap) Proto() proto.Message { return this } -func (this *ContainsNestedMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap) TestProto() proto.Message { return NewContainsNestedMapFromFace(this) } @@ -2546,15 +2553,15 @@ func NewContainsNestedMapFromFace(that ContainsNestedMapFace) *ContainsNestedMap } type ContainsNestedMap_NestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedMapField() map[string]float64 } -func (this *ContainsNestedMap_NestedMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap_NestedMap) Proto() proto.Message { return this } -func (this *ContainsNestedMap_NestedMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap_NestedMap) TestProto() proto.Message { return NewContainsNestedMap_NestedMapFromFace(this) } @@ -2569,15 +2576,15 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace } type NotPackedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetKey() []uint64 } -func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NotPacked) Proto() proto.Message { return this } -func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NotPacked) TestProto() proto.Message { return NewNotPackedFromFace(this) } @@ -2612,7 +2619,7 @@ func (this *Message) GoString() string { for k := range this.Terrain { keysForTerrain = append(keysForTerrain, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) + sortkeys.Int64s(keysForTerrain) mapStringForTerrain := "map[int64]*Nested{" for _, k := range keysForTerrain { mapStringForTerrain += fmt.Sprintf("%#v: %#v,", k, this.Terrain[k]) @@ -2628,7 +2635,7 @@ func (this *Message) GoString() string { for k := range this.Proto2Value { keysForProto2Value = append(keysForProto2Value, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) + sortkeys.Int64s(keysForProto2Value) mapStringForProto2Value := "map[int64]*test.NinOptEnum{" for _, k := range keysForProto2Value { mapStringForProto2Value += fmt.Sprintf("%#v: %#v,", k, this.Proto2Value[k]) @@ -2660,7 +2667,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -2673,7 +2680,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2686,7 +2693,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2699,7 +2706,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2712,7 +2719,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2725,7 +2732,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2738,7 +2745,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2751,7 +2758,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2764,7 +2771,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -2777,7 +2784,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -2790,7 +2797,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -2803,7 +2810,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -2816,7 +2823,7 @@ func (this *AllMaps) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -2829,7 +2836,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -2842,7 +2849,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -2855,7 +2862,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -2868,7 +2875,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -2890,7 +2897,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -2903,7 +2910,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2916,7 +2923,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2929,7 +2936,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2942,7 +2949,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2955,7 +2962,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2968,7 +2975,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2981,7 +2988,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2994,7 +3001,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -3007,7 +3014,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -3020,7 +3027,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -3033,7 +3040,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -3046,7 +3053,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -3059,7 +3066,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -3072,7 +3079,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -3085,7 +3092,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -3098,7 +3105,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -3120,7 +3127,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.NameMapping { keysForNameMapping = append(keysForNameMapping, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) + sortkeys.Int32s(keysForNameMapping) mapStringForNameMapping := "map[int32]string{" for _, k := range keysForNameMapping { mapStringForNameMapping += fmt.Sprintf("%#v: %#v,", k, this.NameMapping[k]) @@ -3133,7 +3140,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.MsgMapping { keysForMsgMapping = append(keysForMsgMapping, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) + sortkeys.Int64s(keysForMsgMapping) mapStringForMsgMapping := "map[int64]*FloatingPoint{" for _, k := range keysForMsgMapping { mapStringForMsgMapping += fmt.Sprintf("%#v: %#v,", k, this.MsgMapping[k]) @@ -3146,7 +3153,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.ByteMapping { keysForByteMapping = append(keysForByteMapping, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) + sortkeys.Bools(keysForByteMapping) mapStringForByteMapping := "map[bool][]byte{" for _, k := range keysForByteMapping { mapStringForByteMapping += fmt.Sprintf("%#v: %#v,", k, this.ByteMapping[k]) @@ -3198,7 +3205,7 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { for k := range this.NestedMapField { keysForNestedMapField = append(keysForNestedMapField, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) + sortkeys.Strings(keysForNestedMapField) mapStringForNestedMapField := "map[string]float64{" for _, k := range keysForNestedMapField { mapStringForNestedMapField += fmt.Sprintf("%#v: %#v,", k, this.NestedMapField[k]) @@ -3310,7 +3317,8 @@ func (m *Message) MarshalTo(dAtA []byte) (int, error) { if m.Score != 0 { dAtA[i] = 0x4d i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(m.Score)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Score)))) + i += 4 } if len(m.Terrain) > 0 { for k := range m.Terrain { @@ -3431,7 +3439,8 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } if len(m.StringToFloatMap) > 0 { @@ -3447,7 +3456,8 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(v)))) + i += 4 } } if len(m.Int32Map) > 0 { @@ -3549,10 +3559,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Sfixed32Map) > 0 { @@ -3564,10 +3576,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Fixed64Map) > 0 { @@ -3579,10 +3593,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.Sfixed64Map) > 0 { @@ -3594,10 +3610,12 @@ func (m *AllMaps) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.BoolMap) > 0 { @@ -3736,7 +3754,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) for _, k := range keysForStringToDoubleMap { dAtA[i] = 0xa i++ @@ -3749,7 +3767,8 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } if len(m.StringToFloatMap) > 0 { @@ -3757,7 +3776,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) for _, k := range keysForStringToFloatMap { dAtA[i] = 0x12 i++ @@ -3770,7 +3789,8 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(v)))) + i += 4 } } if len(m.Int32Map) > 0 { @@ -3778,7 +3798,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Int32Map { keysForInt32Map = append(keysForInt32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) for _, k := range keysForInt32Map { dAtA[i] = 0x1a i++ @@ -3798,7 +3818,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Int64Map { keysForInt64Map = append(keysForInt64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) for _, k := range keysForInt64Map { dAtA[i] = 0x22 i++ @@ -3818,7 +3838,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Uint32Map { keysForUint32Map = append(keysForUint32Map, uint32(k)) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) for _, k := range keysForUint32Map { dAtA[i] = 0x2a i++ @@ -3838,7 +3858,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Uint64Map { keysForUint64Map = append(keysForUint64Map, uint64(k)) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) for _, k := range keysForUint64Map { dAtA[i] = 0x32 i++ @@ -3858,7 +3878,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sint32Map { keysForSint32Map = append(keysForSint32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) for _, k := range keysForSint32Map { dAtA[i] = 0x3a i++ @@ -3878,7 +3898,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sint64Map { keysForSint64Map = append(keysForSint64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) for _, k := range keysForSint64Map { dAtA[i] = 0x42 i++ @@ -3898,7 +3918,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, uint32(k)) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) for _, k := range keysForFixed32Map { dAtA[i] = 0x4a i++ @@ -3907,10 +3927,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Sfixed32Map) > 0 { @@ -3918,7 +3940,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, int32(k)) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) for _, k := range keysForSfixed32Map { dAtA[i] = 0x52 i++ @@ -3927,10 +3949,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0xd i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(k)) + i += 4 dAtA[i] = 0x15 i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(v)) + i += 4 } } if len(m.Fixed64Map) > 0 { @@ -3938,7 +3962,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, uint64(k)) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) for _, k := range keysForFixed64Map { dAtA[i] = 0x5a i++ @@ -3947,10 +3971,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.Sfixed64Map) > 0 { @@ -3958,7 +3984,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, int64(k)) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) for _, k := range keysForSfixed64Map { dAtA[i] = 0x62 i++ @@ -3967,10 +3993,12 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(k)) + i += 8 dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(v)) + i += 8 } } if len(m.BoolMap) > 0 { @@ -3978,7 +4006,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.BoolMap { keysForBoolMap = append(keysForBoolMap, bool(k)) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) for _, k := range keysForBoolMap { dAtA[i] = 0x6a i++ @@ -4008,7 +4036,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringMap { keysForStringMap = append(keysForStringMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) for _, k := range keysForStringMap { dAtA[i] = 0x72 i++ @@ -4030,7 +4058,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) for _, k := range keysForStringToBytesMap { dAtA[i] = 0x7a i++ @@ -4058,7 +4086,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) for _, k := range keysForStringToEnumMap { dAtA[i] = 0x82 i++ @@ -4081,7 +4109,7 @@ func (m *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { for k := range m.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, string(k)) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) for _, k := range keysForStringToMsgMap { dAtA[i] = 0x8a i++ @@ -4220,7 +4248,8 @@ func (m *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { if m.F != 0 { dAtA[i] = 0x9 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(m.F)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.F)))) + i += 8 } return i, nil } @@ -4307,7 +4336,8 @@ func (m *ContainsNestedMap_NestedMap) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], k) dAtA[i] = 0x11 i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(v)))) + i += 8 } } return i, nil @@ -4338,24 +4368,6 @@ func (m *NotPacked) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Theproto3(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 encodeFixed32Theproto3(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 encodeVarintTheproto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -5415,7 +5427,7 @@ func (this *Message) String() string { for k := range this.Terrain { keysForTerrain = append(keysForTerrain, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) + sortkeys.Int64s(keysForTerrain) mapStringForTerrain := "map[int64]*Nested{" for _, k := range keysForTerrain { mapStringForTerrain += fmt.Sprintf("%v: %v,", k, this.Terrain[k]) @@ -5425,7 +5437,7 @@ func (this *Message) String() string { for k := range this.Proto2Value { keysForProto2Value = append(keysForProto2Value, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) + sortkeys.Int64s(keysForProto2Value) mapStringForProto2Value := "map[int64]*test.NinOptEnum{" for _, k := range keysForProto2Value { mapStringForProto2Value += fmt.Sprintf("%v: %v,", k, this.Proto2Value[k]) @@ -5466,7 +5478,7 @@ func (this *AllMaps) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -5476,7 +5488,7 @@ func (this *AllMaps) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -5486,7 +5498,7 @@ func (this *AllMaps) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -5496,7 +5508,7 @@ func (this *AllMaps) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -5506,7 +5518,7 @@ func (this *AllMaps) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -5516,7 +5528,7 @@ func (this *AllMaps) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -5526,7 +5538,7 @@ func (this *AllMaps) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -5536,7 +5548,7 @@ func (this *AllMaps) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -5546,7 +5558,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -5556,7 +5568,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -5566,7 +5578,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -5576,7 +5588,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -5586,7 +5598,7 @@ func (this *AllMaps) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -5596,7 +5608,7 @@ func (this *AllMaps) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -5606,7 +5618,7 @@ func (this *AllMaps) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -5616,7 +5628,7 @@ func (this *AllMaps) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -5626,7 +5638,7 @@ func (this *AllMaps) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -5662,7 +5674,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -5672,7 +5684,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -5682,7 +5694,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -5692,7 +5704,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -5702,7 +5714,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -5712,7 +5724,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -5722,7 +5734,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -5732,7 +5744,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -5742,7 +5754,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -5752,7 +5764,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -5762,7 +5774,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -5772,7 +5784,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -5782,7 +5794,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -5792,7 +5804,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -5802,7 +5814,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -5812,7 +5824,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -5822,7 +5834,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -5858,7 +5870,7 @@ func (this *MessageWithMap) String() string { for k := range this.NameMapping { keysForNameMapping = append(keysForNameMapping, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) + sortkeys.Int32s(keysForNameMapping) mapStringForNameMapping := "map[int32]string{" for _, k := range keysForNameMapping { mapStringForNameMapping += fmt.Sprintf("%v: %v,", k, this.NameMapping[k]) @@ -5868,7 +5880,7 @@ func (this *MessageWithMap) String() string { for k := range this.MsgMapping { keysForMsgMapping = append(keysForMsgMapping, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) + sortkeys.Int64s(keysForMsgMapping) mapStringForMsgMapping := "map[int64]*FloatingPoint{" for _, k := range keysForMsgMapping { mapStringForMsgMapping += fmt.Sprintf("%v: %v,", k, this.MsgMapping[k]) @@ -5878,7 +5890,7 @@ func (this *MessageWithMap) String() string { for k := range this.ByteMapping { keysForByteMapping = append(keysForByteMapping, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) + sortkeys.Bools(keysForByteMapping) mapStringForByteMapping := "map[bool][]byte{" for _, k := range keysForByteMapping { mapStringForByteMapping += fmt.Sprintf("%v: %v,", k, this.ByteMapping[k]) @@ -5930,7 +5942,7 @@ func (this *ContainsNestedMap_NestedMap) String() string { for k := range this.NestedMapField { keysForNestedMapField = append(keysForNestedMapField, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) + sortkeys.Strings(keysForNestedMapField) mapStringForNestedMapField := "map[string]float64{" for _, k := range keysForNestedMapField { mapStringForNestedMapField += fmt.Sprintf("%v: %v,", k, this.NestedMapField[k]) diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3pb_test.go index 03ef19c01..d66aeb5bc 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/marshaler/theproto3pb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/theproto3.proto -// DO NOT EDIT! /* Package theproto3 is a generated protocol buffer package. @@ -22,13 +21,12 @@ It has these top-level messages: package theproto3 import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" import _ "github.com/gogo/protobuf/test/combos/both" @@ -40,14 +38,14 @@ var _ = math.Inf func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -68,13 +66,13 @@ func TestMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMessageMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -86,7 +84,7 @@ func TestMessageMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -101,7 +99,7 @@ func TestMessageMarshalTo(t *testing.T) { } func BenchmarkMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 10000) for i := 0; i < 10000; i++ { @@ -109,7 +107,7 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -119,11 +117,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } func BenchmarkMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } @@ -133,7 +131,7 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -142,14 +140,14 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { func TestNestedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -170,13 +168,13 @@ func TestNestedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNestedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -188,7 +186,7 @@ func TestNestedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -203,7 +201,7 @@ func TestNestedMarshalTo(t *testing.T) { } func BenchmarkNestedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nested, 10000) for i := 0; i < 10000; i++ { @@ -211,7 +209,7 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -221,11 +219,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } func BenchmarkNestedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } @@ -235,7 +233,7 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -244,14 +242,14 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -272,13 +270,13 @@ func TestAllMapsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllMapsMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -290,7 +288,7 @@ func TestAllMapsMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -305,7 +303,7 @@ func TestAllMapsMarshalTo(t *testing.T) { } func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 10000) for i := 0; i < 10000; i++ { @@ -313,7 +311,7 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -323,11 +321,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } @@ -337,7 +335,7 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -346,14 +344,14 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -374,13 +372,13 @@ func TestAllMapsOrderedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAllMapsOrderedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -392,7 +390,7 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -407,7 +405,7 @@ func TestAllMapsOrderedMarshalTo(t *testing.T) { } func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 10000) for i := 0; i < 10000; i++ { @@ -415,7 +413,7 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -425,11 +423,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } @@ -439,7 +437,7 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -448,14 +446,14 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { func TestMessageWithMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -476,13 +474,13 @@ func TestMessageWithMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMessageWithMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -494,7 +492,7 @@ func TestMessageWithMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -509,7 +507,7 @@ func TestMessageWithMapMarshalTo(t *testing.T) { } func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MessageWithMap, 10000) for i := 0; i < 10000; i++ { @@ -517,7 +515,7 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -527,11 +525,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } @@ -541,7 +539,7 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -550,14 +548,14 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -578,13 +576,13 @@ func TestFloatingPointProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestFloatingPointMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -596,7 +594,7 @@ func TestFloatingPointMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -611,7 +609,7 @@ func TestFloatingPointMarshalTo(t *testing.T) { } func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 10000) for i := 0; i < 10000; i++ { @@ -619,7 +617,7 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -629,11 +627,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } @@ -643,7 +641,7 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -652,14 +650,14 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { func TestUint128PairProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -680,13 +678,13 @@ func TestUint128PairProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUint128PairMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -698,7 +696,7 @@ func TestUint128PairMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -713,7 +711,7 @@ func TestUint128PairMarshalTo(t *testing.T) { } func BenchmarkUint128PairProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Uint128Pair, 10000) for i := 0; i < 10000; i++ { @@ -721,7 +719,7 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -731,11 +729,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } @@ -745,7 +743,7 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -754,14 +752,14 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { func TestContainsNestedMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -782,13 +780,13 @@ func TestContainsNestedMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestContainsNestedMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -800,7 +798,7 @@ func TestContainsNestedMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -815,7 +813,7 @@ func TestContainsNestedMapMarshalTo(t *testing.T) { } func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap, 10000) for i := 0; i < 10000; i++ { @@ -823,7 +821,7 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -833,11 +831,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } @@ -847,7 +845,7 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -856,14 +854,14 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { func TestContainsNestedMap_NestedMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -884,13 +882,13 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -902,7 +900,7 @@ func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -917,7 +915,7 @@ func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { } func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap_NestedMap, 10000) for i := 0; i < 10000; i++ { @@ -925,7 +923,7 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -935,11 +933,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } @@ -949,7 +947,7 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -958,14 +956,14 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { func TestNotPackedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -986,13 +984,13 @@ func TestNotPackedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNotPackedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -1004,7 +1002,7 @@ func TestNotPackedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -1019,7 +1017,7 @@ func TestNotPackedMarshalTo(t *testing.T) { } func BenchmarkNotPackedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NotPacked, 10000) for i := 0; i < 10000; i++ { @@ -1027,7 +1025,7 @@ func BenchmarkNotPackedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1037,11 +1035,11 @@ func BenchmarkNotPackedProtoMarshal(b *testing.B) { } func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNotPacked(popr, false)) if err != nil { panic(err) } @@ -1051,7 +1049,7 @@ func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1060,15 +1058,15 @@ func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1081,15 +1079,15 @@ func TestMessageJSON(t *testing.T) { } func TestNestedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1102,15 +1100,15 @@ func TestNestedJSON(t *testing.T) { } func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1123,15 +1121,15 @@ func TestAllMapsJSON(t *testing.T) { } func TestAllMapsOrderedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1144,15 +1142,15 @@ func TestAllMapsOrderedJSON(t *testing.T) { } func TestMessageWithMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1165,15 +1163,15 @@ func TestMessageWithMapJSON(t *testing.T) { } func TestFloatingPointJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1186,15 +1184,15 @@ func TestFloatingPointJSON(t *testing.T) { } func TestUint128PairJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1207,15 +1205,15 @@ func TestUint128PairJSON(t *testing.T) { } func TestContainsNestedMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1228,15 +1226,15 @@ func TestContainsNestedMapJSON(t *testing.T) { } func TestContainsNestedMap_NestedMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1249,15 +1247,15 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { } func TestNotPackedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1270,11 +1268,11 @@ func TestNotPackedJSON(t *testing.T) { } func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1287,11 +1285,11 @@ func TestMessageProtoText(t *testing.T) { func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1304,11 +1302,11 @@ func TestMessageProtoCompactText(t *testing.T) { func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1321,11 +1319,11 @@ func TestNestedProtoText(t *testing.T) { func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1338,11 +1336,11 @@ func TestNestedProtoCompactText(t *testing.T) { func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1355,11 +1353,11 @@ func TestAllMapsProtoText(t *testing.T) { func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1372,11 +1370,11 @@ func TestAllMapsProtoCompactText(t *testing.T) { func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1389,11 +1387,11 @@ func TestAllMapsOrderedProtoText(t *testing.T) { func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1406,11 +1404,11 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1423,11 +1421,11 @@ func TestMessageWithMapProtoText(t *testing.T) { func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1440,11 +1438,11 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1457,11 +1455,11 @@ func TestFloatingPointProtoText(t *testing.T) { func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1474,11 +1472,11 @@ func TestFloatingPointProtoCompactText(t *testing.T) { func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1491,11 +1489,11 @@ func TestUint128PairProtoText(t *testing.T) { func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1508,11 +1506,11 @@ func TestUint128PairProtoCompactText(t *testing.T) { func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1525,11 +1523,11 @@ func TestContainsNestedMapProtoText(t *testing.T) { func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1542,11 +1540,11 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1559,11 +1557,11 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1576,11 +1574,11 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { func TestNotPackedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1593,11 +1591,11 @@ func TestNotPackedProtoText(t *testing.T) { func TestNotPackedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1612,14 +1610,14 @@ func TestTheproto3Description(t *testing.T) { Theproto3Description() } func TestMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1627,14 +1625,14 @@ func TestMessageVerboseEqual(t *testing.T) { } } func TestNestedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1642,14 +1640,14 @@ func TestNestedVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1657,14 +1655,14 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1672,14 +1670,14 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestMessageWithMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1687,14 +1685,14 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { } } func TestFloatingPointVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1702,14 +1700,14 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestUint128PairVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1717,14 +1715,14 @@ func TestUint128PairVerboseEqual(t *testing.T) { } } func TestContainsNestedMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1732,14 +1730,14 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { } } func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1747,14 +1745,14 @@ func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { } } func TestNotPackedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1762,7 +1760,7 @@ func TestNotPackedVerboseEqual(t *testing.T) { } } func TestMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1770,7 +1768,7 @@ func TestMessageFace(t *testing.T) { } } func TestNestedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1778,7 +1776,7 @@ func TestNestedFace(t *testing.T) { } } func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1786,7 +1784,7 @@ func TestAllMapsFace(t *testing.T) { } } func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1794,7 +1792,7 @@ func TestAllMapsOrderedFace(t *testing.T) { } } func TestMessageWithMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1802,7 +1800,7 @@ func TestMessageWithMapFace(t *testing.T) { } } func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1810,7 +1808,7 @@ func TestFloatingPointFace(t *testing.T) { } } func TestUint128PairFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1818,7 +1816,7 @@ func TestUint128PairFace(t *testing.T) { } } func TestContainsNestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1826,7 +1824,7 @@ func TestContainsNestedMapFace(t *testing.T) { } } func TestContainsNestedMap_NestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1834,7 +1832,7 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { } } func TestNotPackedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1842,141 +1840,141 @@ func TestNotPackedFace(t *testing.T) { } } func TestMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMessageWithMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUint128PairGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestContainsNestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestContainsNestedMap_NestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNotPackedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1987,14 +1985,14 @@ func TestMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 1000) for i := 0; i < 1000; i++ { @@ -2009,10 +2007,10 @@ func BenchmarkMessageSize(b *testing.B) { func TestNestedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2023,14 +2021,14 @@ func TestNestedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nested, 1000) for i := 0; i < 1000; i++ { @@ -2045,10 +2043,10 @@ func BenchmarkNestedSize(b *testing.B) { func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2059,14 +2057,14 @@ func TestAllMapsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 1000) for i := 0; i < 1000; i++ { @@ -2081,10 +2079,10 @@ func BenchmarkAllMapsSize(b *testing.B) { func TestAllMapsOrderedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2095,14 +2093,14 @@ func TestAllMapsOrderedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 1000) for i := 0; i < 1000; i++ { @@ -2117,10 +2115,10 @@ func BenchmarkAllMapsOrderedSize(b *testing.B) { func TestMessageWithMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2131,14 +2129,14 @@ func TestMessageWithMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageWithMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MessageWithMap, 1000) for i := 0; i < 1000; i++ { @@ -2153,10 +2151,10 @@ func BenchmarkMessageWithMapSize(b *testing.B) { func TestFloatingPointSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2167,14 +2165,14 @@ func TestFloatingPointSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 1000) for i := 0; i < 1000; i++ { @@ -2189,10 +2187,10 @@ func BenchmarkFloatingPointSize(b *testing.B) { func TestUint128PairSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2203,14 +2201,14 @@ func TestUint128PairSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUint128PairSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Uint128Pair, 1000) for i := 0; i < 1000; i++ { @@ -2225,10 +2223,10 @@ func BenchmarkUint128PairSize(b *testing.B) { func TestContainsNestedMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2239,14 +2237,14 @@ func TestContainsNestedMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkContainsNestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap, 1000) for i := 0; i < 1000; i++ { @@ -2261,10 +2259,10 @@ func BenchmarkContainsNestedMapSize(b *testing.B) { func TestContainsNestedMap_NestedMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2275,14 +2273,14 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap_NestedMap, 1000) for i := 0; i < 1000; i++ { @@ -2297,10 +2295,10 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { func TestNotPackedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2311,14 +2309,14 @@ func TestNotPackedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNotPackedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NotPacked, 1000) for i := 0; i < 1000; i++ { @@ -2332,7 +2330,7 @@ func BenchmarkNotPackedSize(b *testing.B) { } func TestMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2341,7 +2339,7 @@ func TestMessageStringer(t *testing.T) { } } func TestNestedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2350,7 +2348,7 @@ func TestNestedStringer(t *testing.T) { } } func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2359,7 +2357,7 @@ func TestAllMapsStringer(t *testing.T) { } } func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2368,7 +2366,7 @@ func TestAllMapsOrderedStringer(t *testing.T) { } } func TestMessageWithMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2377,7 +2375,7 @@ func TestMessageWithMapStringer(t *testing.T) { } } func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2386,7 +2384,7 @@ func TestFloatingPointStringer(t *testing.T) { } } func TestUint128PairStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2395,7 +2393,7 @@ func TestUint128PairStringer(t *testing.T) { } } func TestContainsNestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2404,7 +2402,7 @@ func TestContainsNestedMapStringer(t *testing.T) { } } func TestContainsNestedMap_NestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2413,7 +2411,7 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { } } func TestNotPackedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go index 55ac30e4a..9c440d22d 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/theproto3.proto -// DO NOT EDIT! /* Package theproto3 is a generated protocol buffer package. @@ -29,17 +28,16 @@ import test "github.com/gogo/protobuf/test/combos/both" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strconv "strconv" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -238,542 +236,549 @@ func init() { proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } -func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Message) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *Nested) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Nested) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMaps) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMapsOrdered) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *MessageWithMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *MessageWithMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *FloatingPoint) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *Uint128Pair) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Uint128Pair) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ContainsNestedMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ContainsNestedMap_NestedMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NotPacked) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func Theproto3Description() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7851 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x5b, 0x70, 0x23, 0xd7, - 0x99, 0x1f, 0xce, 0x46, 0x83, 0x24, 0xf8, 0x01, 0x24, 0x9b, 0xcd, 0x11, 0x05, 0x51, 0x23, 0x72, - 0x06, 0x1a, 0x8d, 0x28, 0xda, 0xe2, 0x70, 0x38, 0xe4, 0x5c, 0x30, 0x96, 0xf4, 0x07, 0x40, 0x70, - 0xc4, 0x31, 0x09, 0xd2, 0x4d, 0xd2, 0xd2, 0xac, 0xff, 0x15, 0x54, 0x13, 0x38, 0x24, 0x5b, 0x02, - 0xba, 0xb1, 0xe8, 0x86, 0x24, 0xfa, 0x21, 0xa5, 0xac, 0x93, 0x8d, 0x37, 0xa9, 0x5c, 0x37, 0xa9, - 0x78, 0x1d, 0x5f, 0xe4, 0x4d, 0x6d, 0xec, 0xdd, 0xcd, 0xc5, 0xeb, 0x6c, 0x9c, 0xad, 0xad, 0x54, - 0x56, 0x79, 0x70, 0x32, 0x79, 0x49, 0x69, 0x93, 0x97, 0x94, 0x2b, 0xa5, 0xb2, 0x46, 0xae, 0x8a, - 0x93, 0x38, 0x89, 0x37, 0xeb, 0xaa, 0xdd, 0x2a, 0xef, 0x43, 0xea, 0xdc, 0xba, 0xfb, 0x1c, 0x34, - 0xd0, 0xe0, 0x48, 0xb2, 0xf7, 0xc1, 0x2f, 0x33, 0xe8, 0x73, 0xbe, 0xdf, 0xaf, 0xbf, 0xfe, 0x6e, - 0xe7, 0xeb, 0xd3, 0x0d, 0x10, 0xde, 0x5f, 0x83, 0x0b, 0xc7, 0x8e, 0x73, 0xdc, 0x40, 0x57, 0x5a, - 0x6d, 0xc7, 0x73, 0x0e, 0x3b, 0x47, 0x57, 0xea, 0xc8, 0xad, 0xb5, 0xad, 0x96, 0xe7, 0xb4, 0x97, - 0xc8, 0x98, 0x3e, 0x49, 0x25, 0x96, 0xb8, 0x44, 0x6e, 0x1b, 0xa6, 0x36, 0xac, 0x06, 0x5a, 0xf7, - 0x05, 0xf7, 0x90, 0xa7, 0xdf, 0x84, 0xe4, 0x91, 0xd5, 0x40, 0x59, 0xe5, 0x82, 0xba, 0x90, 0x5e, - 0xb9, 0xb4, 0x24, 0x81, 0x96, 0x44, 0xc4, 0x2e, 0x1e, 0x36, 0x08, 0x22, 0xf7, 0xfd, 0x24, 0x4c, - 0x47, 0xcc, 0xea, 0x3a, 0x24, 0x6d, 0xb3, 0x89, 0x19, 0x95, 0x85, 0x31, 0x83, 0x7c, 0xd6, 0xb3, - 0x30, 0xda, 0x32, 0x6b, 0xaf, 0x9a, 0xc7, 0x28, 0x9b, 0x20, 0xc3, 0xfc, 0x50, 0x9f, 0x03, 0xa8, - 0xa3, 0x16, 0xb2, 0xeb, 0xc8, 0xae, 0x9d, 0x66, 0xd5, 0x0b, 0xea, 0xc2, 0x98, 0x11, 0x1a, 0xd1, - 0x3f, 0x06, 0x53, 0xad, 0xce, 0x61, 0xc3, 0xaa, 0x55, 0x43, 0x62, 0x70, 0x41, 0x5d, 0x18, 0x36, - 0x34, 0x3a, 0xb1, 0x1e, 0x08, 0x3f, 0x0d, 0x93, 0xaf, 0x23, 0xf3, 0xd5, 0xb0, 0x68, 0x9a, 0x88, - 0x4e, 0xe0, 0xe1, 0x90, 0x60, 0x09, 0x32, 0x4d, 0xe4, 0xba, 0xe6, 0x31, 0xaa, 0x7a, 0xa7, 0x2d, - 0x94, 0x4d, 0x92, 0xab, 0xbf, 0xd0, 0x75, 0xf5, 0xf2, 0x95, 0xa7, 0x19, 0x6a, 0xff, 0xb4, 0x85, - 0xf4, 0x02, 0x8c, 0x21, 0xbb, 0xd3, 0xa4, 0x0c, 0xc3, 0x3d, 0xec, 0x57, 0xb6, 0x3b, 0x4d, 0x99, - 0x25, 0x85, 0x61, 0x8c, 0x62, 0xd4, 0x45, 0xed, 0xd7, 0xac, 0x1a, 0xca, 0x8e, 0x10, 0x82, 0xa7, - 0xbb, 0x08, 0xf6, 0xe8, 0xbc, 0xcc, 0xc1, 0x71, 0x7a, 0x09, 0xc6, 0xd0, 0x1b, 0x1e, 0xb2, 0x5d, - 0xcb, 0xb1, 0xb3, 0xa3, 0x84, 0xe4, 0xa9, 0x08, 0x2f, 0xa2, 0x46, 0x5d, 0xa6, 0x08, 0x70, 0xfa, - 0x75, 0x18, 0x75, 0x5a, 0x9e, 0xe5, 0xd8, 0x6e, 0x36, 0x75, 0x41, 0x59, 0x48, 0xaf, 0x9c, 0x8f, - 0x0c, 0x84, 0x1d, 0x2a, 0x63, 0x70, 0x61, 0x7d, 0x13, 0x34, 0xd7, 0xe9, 0xb4, 0x6b, 0xa8, 0x5a, - 0x73, 0xea, 0xa8, 0x6a, 0xd9, 0x47, 0x4e, 0x76, 0x8c, 0x10, 0xcc, 0x77, 0x5f, 0x08, 0x11, 0x2c, - 0x39, 0x75, 0xb4, 0x69, 0x1f, 0x39, 0xc6, 0x84, 0x2b, 0x1c, 0xeb, 0x33, 0x30, 0xe2, 0x9e, 0xda, - 0x9e, 0xf9, 0x46, 0x36, 0x43, 0x22, 0x84, 0x1d, 0xe5, 0xfe, 0x64, 0x18, 0x26, 0x07, 0x09, 0xb1, - 0xdb, 0x30, 0x7c, 0x84, 0xaf, 0x32, 0x9b, 0x38, 0x8b, 0x0d, 0x28, 0x46, 0x34, 0xe2, 0xc8, 0x43, - 0x1a, 0xb1, 0x00, 0x69, 0x1b, 0xb9, 0x1e, 0xaa, 0xd3, 0x88, 0x50, 0x07, 0x8c, 0x29, 0xa0, 0xa0, - 0xee, 0x90, 0x4a, 0x3e, 0x54, 0x48, 0xbd, 0x0c, 0x93, 0xbe, 0x4a, 0xd5, 0xb6, 0x69, 0x1f, 0xf3, - 0xd8, 0xbc, 0x12, 0xa7, 0xc9, 0x52, 0x99, 0xe3, 0x0c, 0x0c, 0x33, 0x26, 0x90, 0x70, 0xac, 0xaf, - 0x03, 0x38, 0x36, 0x72, 0x8e, 0xaa, 0x75, 0x54, 0x6b, 0x64, 0x53, 0x3d, 0xac, 0xb4, 0x83, 0x45, - 0xba, 0xac, 0xe4, 0xd0, 0xd1, 0x5a, 0x43, 0xbf, 0x15, 0x84, 0xda, 0x68, 0x8f, 0x48, 0xd9, 0xa6, - 0x49, 0xd6, 0x15, 0x6d, 0x07, 0x30, 0xd1, 0x46, 0x38, 0xee, 0x51, 0x9d, 0x5d, 0xd9, 0x18, 0x51, - 0x62, 0x29, 0xf6, 0xca, 0x0c, 0x06, 0xa3, 0x17, 0x36, 0xde, 0x0e, 0x1f, 0xea, 0x4f, 0x82, 0x3f, - 0x50, 0x25, 0x61, 0x05, 0xa4, 0x0a, 0x65, 0xf8, 0x60, 0xc5, 0x6c, 0xa2, 0xd9, 0x9b, 0x30, 0x21, - 0x9a, 0x47, 0x3f, 0x07, 0xc3, 0xae, 0x67, 0xb6, 0x3d, 0x12, 0x85, 0xc3, 0x06, 0x3d, 0xd0, 0x35, - 0x50, 0x91, 0x5d, 0x27, 0x55, 0x6e, 0xd8, 0xc0, 0x1f, 0x67, 0x6f, 0xc0, 0xb8, 0x70, 0xfa, 0x41, - 0x81, 0xb9, 0x2f, 0x8c, 0xc0, 0xb9, 0xa8, 0x98, 0x8b, 0x0c, 0xff, 0x19, 0x18, 0xb1, 0x3b, 0xcd, - 0x43, 0xd4, 0xce, 0xaa, 0x84, 0x81, 0x1d, 0xe9, 0x05, 0x18, 0x6e, 0x98, 0x87, 0xa8, 0x91, 0x4d, - 0x5e, 0x50, 0x16, 0x26, 0x56, 0x3e, 0x36, 0x50, 0x54, 0x2f, 0x6d, 0x61, 0x88, 0x41, 0x91, 0xfa, - 0xf3, 0x90, 0x64, 0x25, 0x0e, 0x33, 0x2c, 0x0e, 0xc6, 0x80, 0x63, 0xd1, 0x20, 0x38, 0xfd, 0x71, - 0x18, 0xc3, 0xff, 0x53, 0xdb, 0x8e, 0x10, 0x9d, 0x53, 0x78, 0x00, 0xdb, 0x55, 0x9f, 0x85, 0x14, - 0x09, 0xb3, 0x3a, 0xe2, 0x4b, 0x83, 0x7f, 0x8c, 0x1d, 0x53, 0x47, 0x47, 0x66, 0xa7, 0xe1, 0x55, - 0x5f, 0x33, 0x1b, 0x1d, 0x44, 0x02, 0x66, 0xcc, 0xc8, 0xb0, 0xc1, 0x4f, 0xe3, 0x31, 0x7d, 0x1e, - 0xd2, 0x34, 0x2a, 0x2d, 0xbb, 0x8e, 0xde, 0x20, 0xd5, 0x67, 0xd8, 0xa0, 0x81, 0xba, 0x89, 0x47, - 0xf0, 0xe9, 0x5f, 0x71, 0x1d, 0x9b, 0xbb, 0x96, 0x9c, 0x02, 0x0f, 0x90, 0xd3, 0xdf, 0x90, 0x0b, - 0xdf, 0x13, 0xd1, 0x97, 0x27, 0xc7, 0x62, 0xee, 0xdb, 0x09, 0x48, 0x92, 0x7c, 0x9b, 0x84, 0xf4, - 0xfe, 0xbd, 0xdd, 0x72, 0x75, 0x7d, 0xe7, 0xa0, 0xb8, 0x55, 0xd6, 0x14, 0x7d, 0x02, 0x80, 0x0c, - 0x6c, 0x6c, 0xed, 0x14, 0xf6, 0xb5, 0x84, 0x7f, 0xbc, 0x59, 0xd9, 0xbf, 0xbe, 0xaa, 0xa9, 0x3e, - 0xe0, 0x80, 0x0e, 0x24, 0xc3, 0x02, 0xd7, 0x56, 0xb4, 0x61, 0x5d, 0x83, 0x0c, 0x25, 0xd8, 0x7c, - 0xb9, 0xbc, 0x7e, 0x7d, 0x55, 0x1b, 0x11, 0x47, 0xae, 0xad, 0x68, 0xa3, 0xfa, 0x38, 0x8c, 0x91, - 0x91, 0xe2, 0xce, 0xce, 0x96, 0x96, 0xf2, 0x39, 0xf7, 0xf6, 0x8d, 0xcd, 0xca, 0x1d, 0x6d, 0xcc, - 0xe7, 0xbc, 0x63, 0xec, 0x1c, 0xec, 0x6a, 0xe0, 0x33, 0x6c, 0x97, 0xf7, 0xf6, 0x0a, 0x77, 0xca, - 0x5a, 0xda, 0x97, 0x28, 0xde, 0xdb, 0x2f, 0xef, 0x69, 0x19, 0x41, 0xad, 0x6b, 0x2b, 0xda, 0xb8, - 0x7f, 0x8a, 0x72, 0xe5, 0x60, 0x5b, 0x9b, 0xd0, 0xa7, 0x60, 0x9c, 0x9e, 0x82, 0x2b, 0x31, 0x29, - 0x0d, 0x5d, 0x5f, 0xd5, 0xb4, 0x40, 0x11, 0xca, 0x32, 0x25, 0x0c, 0x5c, 0x5f, 0xd5, 0xf4, 0x5c, - 0x09, 0x86, 0x49, 0x74, 0xe9, 0x3a, 0x4c, 0x6c, 0x15, 0x8a, 0xe5, 0xad, 0xea, 0xce, 0xee, 0xfe, - 0xe6, 0x4e, 0xa5, 0xb0, 0xa5, 0x29, 0xc1, 0x98, 0x51, 0xfe, 0xd4, 0xc1, 0xa6, 0x51, 0x5e, 0xd7, - 0x12, 0xe1, 0xb1, 0xdd, 0x72, 0x61, 0xbf, 0xbc, 0xae, 0xa9, 0xb9, 0x1a, 0x9c, 0x8b, 0xaa, 0x33, - 0x91, 0x99, 0x11, 0x72, 0x71, 0xa2, 0x87, 0x8b, 0x09, 0x57, 0x97, 0x8b, 0x7f, 0x5d, 0x81, 0xe9, - 0x88, 0x5a, 0x1b, 0x79, 0x92, 0x17, 0x60, 0x98, 0x86, 0x28, 0x5d, 0x7d, 0x9e, 0x89, 0x2c, 0xda, - 0x24, 0x60, 0xbb, 0x56, 0x20, 0x82, 0x0b, 0xaf, 0xc0, 0x6a, 0x8f, 0x15, 0x18, 0x53, 0x74, 0x29, - 0xf9, 0x39, 0x05, 0xb2, 0xbd, 0xb8, 0x63, 0x0a, 0x45, 0x42, 0x28, 0x14, 0xb7, 0x65, 0x05, 0x2e, - 0xf6, 0xbe, 0x86, 0x2e, 0x2d, 0xbe, 0xae, 0xc0, 0x4c, 0x74, 0xa3, 0x12, 0xa9, 0xc3, 0xf3, 0x30, - 0xd2, 0x44, 0xde, 0x89, 0xc3, 0x17, 0xeb, 0xcb, 0x11, 0x4b, 0x00, 0x9e, 0x96, 0x6d, 0xc5, 0x50, - 0xe1, 0x35, 0x44, 0xed, 0xd5, 0x6d, 0x50, 0x6d, 0xba, 0x34, 0xfd, 0x95, 0x04, 0x3c, 0x12, 0x49, - 0x1e, 0xa9, 0xe8, 0x13, 0x00, 0x96, 0xdd, 0xea, 0x78, 0x74, 0x41, 0xa6, 0xf5, 0x69, 0x8c, 0x8c, - 0x90, 0xdc, 0xc7, 0xb5, 0xa7, 0xe3, 0xf9, 0xf3, 0x2a, 0x99, 0x07, 0x3a, 0x44, 0x04, 0x6e, 0x06, - 0x8a, 0x26, 0x89, 0xa2, 0x73, 0x3d, 0xae, 0xb4, 0x6b, 0xad, 0x5b, 0x06, 0xad, 0xd6, 0xb0, 0x90, - 0xed, 0x55, 0x5d, 0xaf, 0x8d, 0xcc, 0xa6, 0x65, 0x1f, 0x93, 0x02, 0x9c, 0xca, 0x0f, 0x1f, 0x99, - 0x0d, 0x17, 0x19, 0x93, 0x74, 0x7a, 0x8f, 0xcf, 0x62, 0x04, 0x59, 0x65, 0xda, 0x21, 0xc4, 0x88, - 0x80, 0xa0, 0xd3, 0x3e, 0x22, 0xf7, 0xdb, 0xa3, 0x90, 0x0e, 0xb5, 0x75, 0xfa, 0x45, 0xc8, 0xbc, - 0x62, 0xbe, 0x66, 0x56, 0x79, 0xab, 0x4e, 0x2d, 0x91, 0xc6, 0x63, 0xbb, 0xac, 0x5d, 0x5f, 0x86, - 0x73, 0x44, 0xc4, 0xe9, 0x78, 0xa8, 0x5d, 0xad, 0x35, 0x4c, 0xd7, 0x25, 0x46, 0x4b, 0x11, 0x51, - 0x1d, 0xcf, 0xed, 0xe0, 0xa9, 0x12, 0x9f, 0xd1, 0xd7, 0x60, 0x9a, 0x20, 0x9a, 0x9d, 0x86, 0x67, - 0xb5, 0x1a, 0xa8, 0x8a, 0x6f, 0x1e, 0x5c, 0x52, 0x88, 0x7d, 0xcd, 0xa6, 0xb0, 0xc4, 0x36, 0x13, - 0xc0, 0x1a, 0xb9, 0xfa, 0x3a, 0x3c, 0x41, 0x60, 0xc7, 0xc8, 0x46, 0x6d, 0xd3, 0x43, 0x55, 0xf4, - 0x8b, 0x1d, 0xb3, 0xe1, 0x56, 0x4d, 0xbb, 0x5e, 0x3d, 0x31, 0xdd, 0x93, 0xec, 0x39, 0x4c, 0x50, - 0x4c, 0x64, 0x15, 0xe3, 0x31, 0x2c, 0x78, 0x87, 0xc9, 0x95, 0x89, 0x58, 0xc1, 0xae, 0xbf, 0x68, - 0xba, 0x27, 0x7a, 0x1e, 0x66, 0x08, 0x8b, 0xeb, 0xb5, 0x2d, 0xfb, 0xb8, 0x5a, 0x3b, 0x41, 0xb5, - 0x57, 0xab, 0x1d, 0xef, 0xe8, 0x66, 0xf6, 0xf1, 0xf0, 0xf9, 0x89, 0x86, 0x7b, 0x44, 0xa6, 0x84, - 0x45, 0x0e, 0xbc, 0xa3, 0x9b, 0xfa, 0x1e, 0x64, 0xb0, 0x33, 0x9a, 0xd6, 0x67, 0x51, 0xf5, 0xc8, - 0x69, 0x93, 0x95, 0x65, 0x22, 0x22, 0xb3, 0x43, 0x16, 0x5c, 0xda, 0x61, 0x80, 0x6d, 0xa7, 0x8e, - 0xf2, 0xc3, 0x7b, 0xbb, 0xe5, 0xf2, 0xba, 0x91, 0xe6, 0x2c, 0x1b, 0x4e, 0x1b, 0x07, 0xd4, 0xb1, - 0xe3, 0x1b, 0x38, 0x4d, 0x03, 0xea, 0xd8, 0xe1, 0xe6, 0x5d, 0x83, 0xe9, 0x5a, 0x8d, 0x5e, 0xb3, - 0x55, 0xab, 0xb2, 0x16, 0xdf, 0xcd, 0x6a, 0x82, 0xb1, 0x6a, 0xb5, 0x3b, 0x54, 0x80, 0xc5, 0xb8, - 0xab, 0xdf, 0x82, 0x47, 0x02, 0x63, 0x85, 0x81, 0x53, 0x5d, 0x57, 0x29, 0x43, 0xd7, 0x60, 0xba, - 0x75, 0xda, 0x0d, 0xd4, 0x85, 0x33, 0xb6, 0x4e, 0x65, 0xd8, 0x53, 0xe4, 0xb6, 0xad, 0x8d, 0x6a, - 0xa6, 0x87, 0xea, 0xd9, 0x47, 0xc3, 0xd2, 0xa1, 0x09, 0xfd, 0x0a, 0x68, 0xb5, 0x5a, 0x15, 0xd9, - 0xe6, 0x61, 0x03, 0x55, 0xcd, 0x36, 0xb2, 0x4d, 0x37, 0x3b, 0x1f, 0x16, 0x9e, 0xa8, 0xd5, 0xca, - 0x64, 0xb6, 0x40, 0x26, 0xf5, 0x45, 0x98, 0x72, 0x0e, 0x5f, 0xa9, 0xd1, 0xc8, 0xaa, 0xb6, 0xda, - 0xe8, 0xc8, 0x7a, 0x23, 0x7b, 0x89, 0x98, 0x69, 0x12, 0x4f, 0x90, 0xb8, 0xda, 0x25, 0xc3, 0xfa, - 0x33, 0xa0, 0xd5, 0xdc, 0x13, 0xb3, 0xdd, 0x22, 0x4b, 0xbb, 0xdb, 0x32, 0x6b, 0x28, 0xfb, 0x14, - 0x15, 0xa5, 0xe3, 0x15, 0x3e, 0x8c, 0x23, 0xdb, 0x7d, 0xdd, 0x3a, 0xf2, 0x38, 0xe3, 0xd3, 0x34, - 0xb2, 0xc9, 0x18, 0x63, 0x7b, 0x19, 0xce, 0x75, 0x6c, 0xcb, 0xf6, 0x50, 0xbb, 0xd5, 0x46, 0xb8, - 0x89, 0xa7, 0x99, 0x98, 0xfd, 0x6f, 0xa3, 0x3d, 0xda, 0xf0, 0x83, 0xb0, 0x34, 0x0d, 0x00, 0x63, - 0xba, 0xd3, 0x3d, 0x98, 0xcb, 0x43, 0x26, 0x1c, 0x17, 0xfa, 0x18, 0xd0, 0xc8, 0xd0, 0x14, 0xbc, - 0xc6, 0x96, 0x76, 0xd6, 0xf1, 0xea, 0xf8, 0x0b, 0x65, 0x2d, 0x81, 0x57, 0xe9, 0xad, 0xcd, 0xfd, - 0x72, 0xd5, 0x38, 0xa8, 0xec, 0x6f, 0x6e, 0x97, 0x35, 0x75, 0x71, 0x2c, 0xf5, 0x83, 0x51, 0xed, - 0xcd, 0x37, 0xdf, 0x7c, 0x33, 0x91, 0xfb, 0x4e, 0x02, 0x26, 0xc4, 0xce, 0x58, 0xff, 0x04, 0x3c, - 0xca, 0x6f, 0x63, 0x5d, 0xe4, 0x55, 0x5f, 0xb7, 0xda, 0x24, 0x54, 0x9b, 0x26, 0xed, 0x2d, 0x7d, - 0x2b, 0x9f, 0x63, 0x52, 0x7b, 0xc8, 0x7b, 0xc9, 0x6a, 0xe3, 0x40, 0x6c, 0x9a, 0x9e, 0xbe, 0x05, - 0xf3, 0xb6, 0x53, 0x75, 0x3d, 0xd3, 0xae, 0x9b, 0xed, 0x7a, 0x35, 0xd8, 0x40, 0xa8, 0x9a, 0xb5, - 0x1a, 0x72, 0x5d, 0x87, 0x2e, 0x11, 0x3e, 0xcb, 0x79, 0xdb, 0xd9, 0x63, 0xc2, 0x41, 0xed, 0x2c, - 0x30, 0x51, 0x29, 0x22, 0xd4, 0x5e, 0x11, 0xf1, 0x38, 0x8c, 0x35, 0xcd, 0x56, 0x15, 0xd9, 0x5e, - 0xfb, 0x94, 0xf4, 0x73, 0x29, 0x23, 0xd5, 0x34, 0x5b, 0x65, 0x7c, 0xfc, 0xd1, 0xf9, 0x20, 0x6c, - 0xc7, 0xff, 0xaa, 0x42, 0x26, 0xdc, 0xd3, 0xe1, 0x16, 0xb9, 0x46, 0xea, 0xb7, 0x42, 0x32, 0xfc, - 0xc9, 0xbe, 0x1d, 0xe0, 0x52, 0x09, 0x17, 0xf6, 0xfc, 0x08, 0xed, 0xb4, 0x0c, 0x8a, 0xc4, 0x8b, - 0x2a, 0xce, 0x69, 0x44, 0xfb, 0xf7, 0x94, 0xc1, 0x8e, 0xf4, 0x3b, 0x30, 0xf2, 0x8a, 0x4b, 0xb8, - 0x47, 0x08, 0xf7, 0xa5, 0xfe, 0xdc, 0x77, 0xf7, 0x08, 0xf9, 0xd8, 0xdd, 0xbd, 0x6a, 0x65, 0xc7, - 0xd8, 0x2e, 0x6c, 0x19, 0x0c, 0xae, 0x3f, 0x06, 0xc9, 0x86, 0xf9, 0xd9, 0x53, 0x71, 0x09, 0x20, - 0x43, 0x83, 0x1a, 0xfe, 0x31, 0x48, 0xbe, 0x8e, 0xcc, 0x57, 0xc5, 0xc2, 0x4b, 0x86, 0x3e, 0xc2, - 0xd0, 0xbf, 0x02, 0xc3, 0xc4, 0x5e, 0x3a, 0x00, 0xb3, 0x98, 0x36, 0xa4, 0xa7, 0x20, 0x59, 0xda, - 0x31, 0x70, 0xf8, 0x6b, 0x90, 0xa1, 0xa3, 0xd5, 0xdd, 0xcd, 0x72, 0xa9, 0xac, 0x25, 0x72, 0x6b, - 0x30, 0x42, 0x8d, 0x80, 0x53, 0xc3, 0x37, 0x83, 0x36, 0xc4, 0x0e, 0x19, 0x87, 0xc2, 0x67, 0x0f, - 0xb6, 0x8b, 0x65, 0x43, 0x4b, 0x84, 0xdd, 0xeb, 0x42, 0x26, 0xdc, 0xce, 0xfd, 0x74, 0x62, 0xea, - 0xf7, 0x15, 0x48, 0x87, 0xda, 0x33, 0xdc, 0x18, 0x98, 0x8d, 0x86, 0xf3, 0x7a, 0xd5, 0x6c, 0x58, - 0xa6, 0xcb, 0x82, 0x02, 0xc8, 0x50, 0x01, 0x8f, 0x0c, 0xea, 0xb4, 0x9f, 0x8a, 0xf2, 0x5f, 0x51, - 0x40, 0x93, 0x5b, 0x3b, 0x49, 0x41, 0xe5, 0x67, 0xaa, 0xe0, 0x97, 0x14, 0x98, 0x10, 0xfb, 0x39, - 0x49, 0xbd, 0x8b, 0x3f, 0x53, 0xf5, 0xbe, 0x97, 0x80, 0x71, 0xa1, 0x8b, 0x1b, 0x54, 0xbb, 0x5f, - 0x84, 0x29, 0xab, 0x8e, 0x9a, 0x2d, 0xc7, 0x43, 0x76, 0xed, 0xb4, 0xda, 0x40, 0xaf, 0xa1, 0x46, - 0x36, 0x47, 0x0a, 0xc5, 0x95, 0xfe, 0x7d, 0xe2, 0xd2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xfc, 0xf4, - 0xe6, 0x7a, 0x79, 0x7b, 0x77, 0x67, 0xbf, 0x5c, 0x29, 0xdd, 0xab, 0x1e, 0x54, 0x3e, 0x59, 0xd9, - 0x79, 0xa9, 0x62, 0x68, 0x96, 0x24, 0xf6, 0x11, 0xa6, 0xfa, 0x2e, 0x68, 0xb2, 0x52, 0xfa, 0xa3, - 0x10, 0xa5, 0x96, 0x36, 0xa4, 0x4f, 0xc3, 0x64, 0x65, 0xa7, 0xba, 0xb7, 0xb9, 0x5e, 0xae, 0x96, - 0x37, 0x36, 0xca, 0xa5, 0xfd, 0x3d, 0x7a, 0xe3, 0xec, 0x4b, 0xef, 0x8b, 0x49, 0xfd, 0x45, 0x15, - 0xa6, 0x23, 0x34, 0xd1, 0x0b, 0xac, 0x67, 0xa7, 0xb7, 0x11, 0xcf, 0x0e, 0xa2, 0xfd, 0x12, 0xee, - 0x0a, 0x76, 0xcd, 0xb6, 0xc7, 0x5a, 0xfc, 0x67, 0x00, 0x5b, 0xc9, 0xf6, 0xac, 0x23, 0x0b, 0xb5, - 0xd9, 0x3e, 0x03, 0x6d, 0xe4, 0x27, 0x83, 0x71, 0xba, 0xd5, 0xf0, 0x71, 0xd0, 0x5b, 0x8e, 0x6b, - 0x79, 0xd6, 0x6b, 0xa8, 0x6a, 0xd9, 0x7c, 0x53, 0x02, 0x37, 0xf6, 0x49, 0x43, 0xe3, 0x33, 0x9b, - 0xb6, 0xe7, 0x4b, 0xdb, 0xe8, 0xd8, 0x94, 0xa4, 0x71, 0x01, 0x57, 0x0d, 0x8d, 0xcf, 0xf8, 0xd2, - 0x17, 0x21, 0x53, 0x77, 0x3a, 0xb8, 0x4d, 0xa2, 0x72, 0x78, 0xbd, 0x50, 0x8c, 0x34, 0x1d, 0xf3, - 0x45, 0x58, 0x1f, 0x1b, 0xec, 0x86, 0x64, 0x8c, 0x34, 0x1d, 0xa3, 0x22, 0x4f, 0xc3, 0xa4, 0x79, - 0x7c, 0xdc, 0xc6, 0xe4, 0x9c, 0x88, 0x76, 0xe6, 0x13, 0xfe, 0x30, 0x11, 0x9c, 0xbd, 0x0b, 0x29, - 0x6e, 0x07, 0xbc, 0x24, 0x63, 0x4b, 0x54, 0x5b, 0x74, 0x4f, 0x2a, 0xb1, 0x30, 0x66, 0xa4, 0x6c, - 0x3e, 0x79, 0x11, 0x32, 0x96, 0x5b, 0x0d, 0x36, 0x47, 0x13, 0x17, 0x12, 0x0b, 0x29, 0x23, 0x6d, - 0xb9, 0xfe, 0x6e, 0x58, 0xee, 0xeb, 0x09, 0x98, 0x10, 0x37, 0x77, 0xf5, 0x75, 0x48, 0x35, 0x9c, - 0x9a, 0x49, 0x42, 0x8b, 0x3e, 0x59, 0x58, 0x88, 0xd9, 0x0f, 0x5e, 0xda, 0x62, 0xf2, 0x86, 0x8f, - 0x9c, 0xfd, 0x8f, 0x0a, 0xa4, 0xf8, 0xb0, 0x3e, 0x03, 0xc9, 0x96, 0xe9, 0x9d, 0x10, 0xba, 0xe1, - 0x62, 0x42, 0x53, 0x0c, 0x72, 0x8c, 0xc7, 0xdd, 0x96, 0x69, 0x93, 0x10, 0x60, 0xe3, 0xf8, 0x18, - 0xfb, 0xb5, 0x81, 0xcc, 0x3a, 0x69, 0xfb, 0x9d, 0x66, 0x13, 0xd9, 0x9e, 0xcb, 0xfd, 0xca, 0xc6, - 0x4b, 0x6c, 0x58, 0xff, 0x18, 0x4c, 0x79, 0x6d, 0xd3, 0x6a, 0x08, 0xb2, 0x49, 0x22, 0xab, 0xf1, - 0x09, 0x5f, 0x38, 0x0f, 0x8f, 0x71, 0xde, 0x3a, 0xf2, 0xcc, 0xda, 0x09, 0xaa, 0x07, 0xa0, 0x11, - 0xb2, 0x73, 0xf8, 0x28, 0x13, 0x58, 0x67, 0xf3, 0x1c, 0x9b, 0xfb, 0x43, 0x05, 0xa6, 0xf8, 0x8d, - 0x4a, 0xdd, 0x37, 0xd6, 0x36, 0x80, 0x69, 0xdb, 0x8e, 0x17, 0x36, 0x57, 0x77, 0x28, 0x77, 0xe1, - 0x96, 0x0a, 0x3e, 0xc8, 0x08, 0x11, 0xcc, 0x36, 0x01, 0x82, 0x99, 0x9e, 0x66, 0x9b, 0x87, 0x34, - 0xdb, 0xb9, 0x27, 0x8f, 0x7f, 0xe8, 0xad, 0x2d, 0xd0, 0x21, 0x7c, 0x47, 0xa3, 0x9f, 0x83, 0xe1, - 0x43, 0x74, 0x6c, 0xd9, 0x6c, 0x3f, 0x91, 0x1e, 0xf0, 0x5d, 0xca, 0xa4, 0xbf, 0x4b, 0x59, 0x7c, - 0x19, 0xa6, 0x6b, 0x4e, 0x53, 0x56, 0xb7, 0xa8, 0x49, 0xb7, 0xd7, 0xee, 0x8b, 0xca, 0x2f, 0x40, - 0xd0, 0x62, 0xfe, 0x7a, 0x42, 0xbd, 0xb3, 0x5b, 0xfc, 0xad, 0xc4, 0xec, 0x1d, 0x8a, 0xdb, 0xe5, - 0x97, 0x69, 0xa0, 0xa3, 0x06, 0xaa, 0x61, 0xd5, 0xe1, 0x8f, 0x2f, 0xc3, 0xb3, 0xc7, 0x96, 0x77, - 0xd2, 0x39, 0x5c, 0xaa, 0x39, 0xcd, 0x2b, 0xc7, 0xce, 0xb1, 0x13, 0x3c, 0xee, 0xc2, 0x47, 0xe4, - 0x80, 0x7c, 0x62, 0x8f, 0xbc, 0xc6, 0xfc, 0xd1, 0xd9, 0xd8, 0xe7, 0x63, 0xf9, 0x0a, 0x4c, 0x33, - 0xe1, 0x2a, 0xd9, 0x73, 0xa7, 0xb7, 0x06, 0x7a, 0xdf, 0x7d, 0x97, 0xec, 0xef, 0x7c, 0x9f, 0xac, - 0xd5, 0xc6, 0x14, 0x83, 0xe2, 0x39, 0x7a, 0x03, 0x91, 0x37, 0xe0, 0x11, 0x81, 0x8f, 0xe6, 0x25, - 0x6a, 0xc7, 0x30, 0x7e, 0x87, 0x31, 0x4e, 0x87, 0x18, 0xf7, 0x18, 0x34, 0x5f, 0x82, 0xf1, 0xb3, - 0x70, 0xfd, 0x3b, 0xc6, 0x95, 0x41, 0x61, 0x92, 0x3b, 0x30, 0x49, 0x48, 0x6a, 0x1d, 0xd7, 0x73, - 0x9a, 0xa4, 0xe8, 0xf5, 0xa7, 0xf9, 0xf7, 0xdf, 0xa7, 0x89, 0x32, 0x81, 0x61, 0x25, 0x1f, 0x95, - 0xcf, 0x03, 0x79, 0xcc, 0x50, 0x47, 0xb5, 0x46, 0x0c, 0xc3, 0x7d, 0xa6, 0x88, 0x2f, 0x9f, 0xff, - 0x34, 0x9c, 0xc3, 0x9f, 0x49, 0x4d, 0x0a, 0x6b, 0x12, 0xbf, 0xcb, 0x94, 0xfd, 0xc3, 0xcf, 0xd1, - 0x5c, 0x9c, 0xf6, 0x09, 0x42, 0x3a, 0x85, 0xbc, 0x78, 0x8c, 0x3c, 0x0f, 0xb5, 0xdd, 0xaa, 0xd9, - 0x88, 0x52, 0x2f, 0x74, 0x9b, 0x9e, 0xfd, 0xb5, 0x1f, 0x8a, 0x5e, 0xbc, 0x43, 0x91, 0x85, 0x46, - 0x23, 0x7f, 0x00, 0x8f, 0x46, 0x44, 0xc5, 0x00, 0x9c, 0x5f, 0x64, 0x9c, 0xe7, 0xba, 0x22, 0x03, - 0xd3, 0xee, 0x02, 0x1f, 0xf7, 0x7d, 0x39, 0x00, 0xe7, 0x3f, 0x64, 0x9c, 0x3a, 0xc3, 0x72, 0x97, - 0x62, 0xc6, 0xbb, 0x30, 0xf5, 0x1a, 0x6a, 0x1f, 0x3a, 0x2e, 0xdb, 0x1a, 0x19, 0x80, 0xee, 0x4b, - 0x8c, 0x6e, 0x92, 0x01, 0xc9, 0x5e, 0x09, 0xe6, 0xba, 0x05, 0xa9, 0x23, 0xb3, 0x86, 0x06, 0xa0, - 0xf8, 0x32, 0xa3, 0x18, 0xc5, 0xf2, 0x18, 0x5a, 0x80, 0xcc, 0xb1, 0xc3, 0x96, 0xa5, 0x78, 0xf8, - 0x57, 0x18, 0x3c, 0xcd, 0x31, 0x8c, 0xa2, 0xe5, 0xb4, 0x3a, 0x0d, 0xbc, 0x66, 0xc5, 0x53, 0x7c, - 0x95, 0x53, 0x70, 0x0c, 0xa3, 0x38, 0x83, 0x59, 0xdf, 0xe2, 0x14, 0x6e, 0xc8, 0x9e, 0x2f, 0x40, - 0xda, 0xb1, 0x1b, 0xa7, 0x8e, 0x3d, 0x88, 0x12, 0x5f, 0x63, 0x0c, 0xc0, 0x20, 0x98, 0xe0, 0x36, - 0x8c, 0x0d, 0xea, 0x88, 0xdf, 0xf8, 0x21, 0x4f, 0x0f, 0xee, 0x81, 0x3b, 0x30, 0xc9, 0x0b, 0x94, - 0xe5, 0xd8, 0x03, 0x50, 0xfc, 0x63, 0x46, 0x31, 0x11, 0x82, 0xb1, 0xcb, 0xf0, 0x90, 0xeb, 0x1d, - 0xa3, 0x41, 0x48, 0xbe, 0xce, 0x2f, 0x83, 0x41, 0x98, 0x29, 0x0f, 0x91, 0x5d, 0x3b, 0x19, 0x8c, - 0xe1, 0x1b, 0xdc, 0x94, 0x1c, 0x83, 0x29, 0x4a, 0x30, 0xde, 0x34, 0xdb, 0xee, 0x89, 0xd9, 0x18, - 0xc8, 0x1d, 0xbf, 0xc9, 0x38, 0x32, 0x3e, 0x88, 0x59, 0xa4, 0x63, 0x9f, 0x85, 0xe6, 0xb7, 0xb8, - 0x45, 0x42, 0x30, 0x96, 0x7a, 0xae, 0x47, 0x36, 0xa0, 0xce, 0xc2, 0xf6, 0xdb, 0x3c, 0xf5, 0x28, - 0x76, 0x3b, 0xcc, 0x78, 0x1b, 0xc6, 0x5c, 0xeb, 0xb3, 0x03, 0xd1, 0xfc, 0x13, 0xee, 0x69, 0x02, - 0xc0, 0xe0, 0x7b, 0xf0, 0x58, 0xe4, 0x32, 0x31, 0x00, 0xd9, 0x3f, 0x65, 0x64, 0x33, 0x11, 0x4b, - 0x05, 0x2b, 0x09, 0x67, 0xa5, 0xfc, 0x67, 0xbc, 0x24, 0x20, 0x89, 0x6b, 0x17, 0xdf, 0x28, 0xb8, - 0xe6, 0xd1, 0xd9, 0xac, 0xf6, 0xcf, 0xb9, 0xd5, 0x28, 0x56, 0xb0, 0xda, 0x3e, 0xcc, 0x30, 0xc6, - 0xb3, 0xf9, 0xf5, 0x9b, 0xbc, 0xb0, 0x52, 0xf4, 0x81, 0xe8, 0xdd, 0xcf, 0xc0, 0xac, 0x6f, 0x4e, - 0xde, 0x91, 0xba, 0xd5, 0xa6, 0xd9, 0x1a, 0x80, 0xf9, 0x77, 0x18, 0x33, 0xaf, 0xf8, 0x7e, 0x4b, - 0xeb, 0x6e, 0x9b, 0x2d, 0x4c, 0xfe, 0x32, 0x64, 0x39, 0x79, 0xc7, 0x6e, 0xa3, 0x9a, 0x73, 0x6c, - 0x5b, 0x9f, 0x45, 0xf5, 0x01, 0xa8, 0xbf, 0x25, 0xb9, 0xea, 0x20, 0x04, 0xc7, 0xcc, 0x9b, 0xa0, - 0xf9, 0xbd, 0x4a, 0xd5, 0x6a, 0xb6, 0x9c, 0xb6, 0x17, 0xc3, 0xf8, 0x2f, 0xb8, 0xa7, 0x7c, 0xdc, - 0x26, 0x81, 0xe5, 0xcb, 0x30, 0x41, 0x0e, 0x07, 0x0d, 0xc9, 0xdf, 0x65, 0x44, 0xe3, 0x01, 0x8a, - 0x15, 0x8e, 0x9a, 0xd3, 0x6c, 0x99, 0xed, 0x41, 0xea, 0xdf, 0xbf, 0xe4, 0x85, 0x83, 0x41, 0x58, - 0xe1, 0xf0, 0x4e, 0x5b, 0x08, 0xaf, 0xf6, 0x03, 0x30, 0x7c, 0x9b, 0x17, 0x0e, 0x8e, 0x61, 0x14, - 0xbc, 0x61, 0x18, 0x80, 0xe2, 0x5f, 0x71, 0x0a, 0x8e, 0xc1, 0x14, 0x9f, 0x0a, 0x16, 0xda, 0x36, - 0x3a, 0xb6, 0x5c, 0xaf, 0x4d, 0xfb, 0xe0, 0xfe, 0x54, 0xbf, 0xf7, 0x43, 0xb1, 0x09, 0x33, 0x42, - 0xd0, 0xfc, 0x5d, 0x98, 0x94, 0x5a, 0x0c, 0x3d, 0xee, 0x9d, 0x85, 0xec, 0x5f, 0xfa, 0x31, 0x2b, - 0x46, 0x62, 0x87, 0x91, 0xdf, 0xc2, 0x7e, 0x17, 0xfb, 0x80, 0x78, 0xb2, 0xcf, 0xfd, 0xd8, 0x77, - 0xbd, 0xd0, 0x06, 0xe4, 0x37, 0x60, 0x5c, 0xe8, 0x01, 0xe2, 0xa9, 0xfe, 0x32, 0xa3, 0xca, 0x84, - 0x5b, 0x80, 0xfc, 0x1a, 0x24, 0xf1, 0x7a, 0x1e, 0x0f, 0xff, 0x2b, 0x0c, 0x4e, 0xc4, 0xf3, 0xcf, - 0x41, 0x8a, 0xaf, 0xe3, 0xf1, 0xd0, 0x5f, 0x66, 0x50, 0x1f, 0x82, 0xe1, 0x7c, 0x0d, 0x8f, 0x87, - 0xff, 0x55, 0x0e, 0xe7, 0x10, 0x0c, 0x1f, 0xdc, 0x84, 0x6f, 0xff, 0xf5, 0x24, 0xab, 0xc3, 0xdc, - 0x76, 0xb7, 0x61, 0x94, 0x2d, 0xde, 0xf1, 0xe8, 0x5f, 0x61, 0x27, 0xe7, 0x88, 0xfc, 0x0d, 0x18, - 0x1e, 0xd0, 0xe0, 0x7f, 0x83, 0x41, 0xa9, 0x7c, 0xbe, 0x04, 0xe9, 0xd0, 0x82, 0x1d, 0x0f, 0xff, - 0x9b, 0x0c, 0x1e, 0x46, 0x61, 0xd5, 0xd9, 0x82, 0x1d, 0x4f, 0xf0, 0xb7, 0xb8, 0xea, 0x0c, 0x81, - 0xcd, 0xc6, 0xd7, 0xea, 0x78, 0xf4, 0xdf, 0xe6, 0x56, 0xe7, 0x90, 0xfc, 0x0b, 0x30, 0xe6, 0xd7, - 0xdf, 0x78, 0xfc, 0xdf, 0x61, 0xf8, 0x00, 0x83, 0x2d, 0x10, 0xaa, 0xff, 0xf1, 0x14, 0x7f, 0x97, - 0x5b, 0x20, 0x84, 0xc2, 0x69, 0x24, 0xaf, 0xe9, 0xf1, 0x4c, 0xbf, 0xca, 0xd3, 0x48, 0x5a, 0xd2, - 0xb1, 0x37, 0x49, 0x19, 0x8c, 0xa7, 0xf8, 0x7b, 0xdc, 0x9b, 0x44, 0x1e, 0xab, 0x21, 0x2f, 0x92, - 0xf1, 0x1c, 0xff, 0x80, 0xab, 0x21, 0xad, 0x91, 0xf9, 0x5d, 0xd0, 0xbb, 0x17, 0xc8, 0x78, 0xbe, - 0x2f, 0x30, 0xbe, 0xa9, 0xae, 0xf5, 0x31, 0xff, 0x12, 0xcc, 0x44, 0x2f, 0x8e, 0xf1, 0xac, 0xbf, - 0xf6, 0x63, 0xe9, 0x76, 0x26, 0xbc, 0x36, 0xe6, 0xf7, 0x83, 0x2a, 0x1b, 0x5e, 0x18, 0xe3, 0x69, - 0xbf, 0xf8, 0x63, 0xb1, 0xd0, 0x86, 0xd7, 0xc5, 0x7c, 0x01, 0x20, 0x58, 0x93, 0xe2, 0xb9, 0xbe, - 0xc4, 0xb8, 0x42, 0x20, 0x9c, 0x1a, 0x6c, 0x49, 0x8a, 0xc7, 0x7f, 0x99, 0xa7, 0x06, 0x43, 0xe0, - 0xd4, 0xe0, 0xab, 0x51, 0x3c, 0xfa, 0x2b, 0x3c, 0x35, 0x38, 0x24, 0x7f, 0x1b, 0x52, 0x76, 0xa7, - 0xd1, 0xc0, 0xb1, 0xa5, 0xf7, 0x7f, 0x8d, 0x28, 0xfb, 0xdf, 0x7f, 0xc2, 0xc0, 0x1c, 0x90, 0x5f, - 0x83, 0x61, 0xd4, 0x3c, 0x44, 0xf5, 0x38, 0xe4, 0xff, 0xf8, 0x09, 0xaf, 0x27, 0x58, 0x3a, 0xff, - 0x02, 0x00, 0xbd, 0x99, 0x26, 0x4f, 0x89, 0x62, 0xb0, 0xff, 0xf3, 0x27, 0xec, 0x0d, 0x85, 0x00, - 0x12, 0x10, 0xd0, 0xf7, 0x1d, 0xfa, 0x13, 0xfc, 0x50, 0x24, 0x20, 0x37, 0xe0, 0xb7, 0x60, 0xf4, - 0x15, 0xd7, 0xb1, 0x3d, 0xf3, 0x38, 0x0e, 0xfd, 0xbf, 0x18, 0x9a, 0xcb, 0x63, 0x83, 0x35, 0x9d, - 0x36, 0xf2, 0xcc, 0x63, 0x37, 0x0e, 0xfb, 0xbf, 0x19, 0xd6, 0x07, 0x60, 0x70, 0xcd, 0x74, 0xbd, - 0x41, 0xae, 0xfb, 0xff, 0x70, 0x30, 0x07, 0x60, 0xa5, 0xf1, 0xe7, 0x57, 0xd1, 0x69, 0x1c, 0xf6, - 0x47, 0x5c, 0x69, 0x26, 0x9f, 0x7f, 0x0e, 0xc6, 0xf0, 0x47, 0xfa, 0xd6, 0x4e, 0x0c, 0xf8, 0x8f, - 0x18, 0x38, 0x40, 0xe0, 0x33, 0xbb, 0x5e, 0xdd, 0xb3, 0xe2, 0x8d, 0xfd, 0x7f, 0x99, 0xa7, 0xb9, - 0x7c, 0xbe, 0x00, 0x69, 0xd7, 0xab, 0xd7, 0x3b, 0xac, 0xa3, 0x89, 0x81, 0xff, 0xf1, 0x4f, 0xfc, - 0x9b, 0x5c, 0x1f, 0x53, 0xbc, 0x18, 0xbd, 0x59, 0x07, 0x77, 0x9c, 0x3b, 0x0e, 0xdd, 0xa6, 0x83, - 0xef, 0x37, 0xe0, 0x46, 0xcf, 0x5d, 0x37, 0xbc, 0x88, 0x5c, 0xa9, 0x39, 0xcd, 0x43, 0xc7, 0xbd, - 0x72, 0xe8, 0x78, 0x27, 0x57, 0xbc, 0x13, 0x84, 0xc7, 0xd8, 0xfe, 0x5b, 0x12, 0x7f, 0x9e, 0x3d, - 0xdb, 0xa6, 0x1d, 0x79, 0x1e, 0x5b, 0xb1, 0xb0, 0xde, 0x15, 0xb2, 0x25, 0xae, 0x9f, 0x87, 0x11, - 0x72, 0x25, 0x57, 0xc9, 0x63, 0x27, 0xa5, 0x98, 0xbc, 0xff, 0xee, 0xfc, 0x90, 0xc1, 0xc6, 0xfc, - 0xd9, 0x15, 0xb2, 0x67, 0x99, 0x10, 0x66, 0x57, 0xfc, 0xd9, 0x6b, 0x74, 0xdb, 0x52, 0x98, 0xbd, - 0xe6, 0xcf, 0xae, 0x92, 0x0d, 0x4c, 0x55, 0x98, 0x5d, 0xf5, 0x67, 0xd7, 0xc8, 0x26, 0xfd, 0xb8, - 0x30, 0xbb, 0xe6, 0xcf, 0x5e, 0x27, 0x5b, 0xf3, 0x49, 0x61, 0xf6, 0xba, 0x3f, 0x7b, 0x83, 0xec, - 0xca, 0x4f, 0x09, 0xb3, 0x37, 0xfc, 0xd9, 0x9b, 0x64, 0x37, 0x5e, 0x17, 0x66, 0x6f, 0xfa, 0xb3, - 0xb7, 0xc8, 0x2b, 0x26, 0xa3, 0xc2, 0xec, 0x2d, 0x7d, 0x0e, 0x46, 0xe9, 0x95, 0x2f, 0x93, 0x47, - 0xb7, 0x93, 0x6c, 0x9a, 0x0f, 0x06, 0xf3, 0x57, 0xc9, 0xeb, 0x24, 0x23, 0xe2, 0xfc, 0xd5, 0x60, - 0x7e, 0x85, 0xbc, 0x58, 0xad, 0x89, 0xf3, 0x2b, 0xc1, 0xfc, 0xb5, 0xec, 0x38, 0x79, 0xa5, 0x46, - 0x98, 0xbf, 0x16, 0xcc, 0xaf, 0x66, 0x27, 0x70, 0x30, 0x8b, 0xf3, 0xab, 0xc1, 0xfc, 0x5a, 0x76, - 0xf2, 0x82, 0xb2, 0x90, 0x11, 0xe7, 0xd7, 0x72, 0xbf, 0x44, 0xdc, 0x6b, 0x07, 0xee, 0x9d, 0x11, - 0xdd, 0xeb, 0x3b, 0x76, 0x46, 0x74, 0xac, 0xef, 0xd2, 0x19, 0xd1, 0xa5, 0xbe, 0x33, 0x67, 0x44, - 0x67, 0xfa, 0x6e, 0x9c, 0x11, 0xdd, 0xe8, 0x3b, 0x70, 0x46, 0x74, 0xa0, 0xef, 0xba, 0x19, 0xd1, - 0x75, 0xbe, 0xd3, 0x66, 0x44, 0xa7, 0xf9, 0xee, 0x9a, 0x11, 0xdd, 0xe5, 0x3b, 0x2a, 0x2b, 0x39, - 0x2a, 0x70, 0x51, 0x56, 0x72, 0x51, 0xe0, 0x9c, 0xac, 0xe4, 0x9c, 0xc0, 0x2d, 0x59, 0xc9, 0x2d, - 0x81, 0x43, 0xb2, 0x92, 0x43, 0x02, 0x57, 0x64, 0x25, 0x57, 0x04, 0x4e, 0x60, 0x39, 0x66, 0xa0, - 0x56, 0x44, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, - 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0xfd, - 0x73, 0x4c, 0x8d, 0xc9, 0x31, 0x35, 0x26, 0xc7, 0xd4, 0x98, 0x1c, 0x53, 0x63, 0x72, 0x4c, 0x8d, - 0xc9, 0x31, 0xb5, 0x67, 0x8e, 0x05, 0xee, 0x9d, 0x11, 0xdd, 0x1b, 0x99, 0x63, 0x6a, 0x8f, 0x1c, - 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, - 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x95, 0x63, 0x6a, 0xcf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, - 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0x35, 0x9c, 0x63, 0xff, 0x5a, 0x05, 0x9d, - 0xe6, 0xd8, 0x2e, 0x79, 0xf9, 0x87, 0xb9, 0x62, 0x4e, 0xca, 0xb4, 0x11, 0xec, 0x3a, 0x2d, 0x70, - 0xc9, 0x9c, 0x94, 0x6b, 0xe2, 0xfc, 0x8a, 0x3f, 0xcf, 0xb3, 0x4d, 0x9c, 0xbf, 0xe6, 0xcf, 0xf3, - 0x7c, 0x13, 0xe7, 0x57, 0xfd, 0x79, 0x9e, 0x71, 0xe2, 0xfc, 0x9a, 0x3f, 0xcf, 0x73, 0x4e, 0x9c, - 0xbf, 0xee, 0xcf, 0xf3, 0xac, 0x13, 0xe7, 0x6f, 0xf8, 0xf3, 0x3c, 0xef, 0xc4, 0xf9, 0x9b, 0xfe, - 0x3c, 0xcf, 0x3c, 0x71, 0xfe, 0x96, 0x7e, 0x41, 0xce, 0x3d, 0x2e, 0xe0, 0xbb, 0xf6, 0x82, 0x9c, - 0x7d, 0x92, 0xc4, 0xd5, 0x40, 0x82, 0xe7, 0x9f, 0x24, 0xb1, 0x12, 0x48, 0xf0, 0x0c, 0x94, 0x24, - 0xae, 0xe5, 0x3e, 0x4f, 0xdc, 0x67, 0xcb, 0xee, 0x9b, 0x95, 0xdc, 0x97, 0x08, 0xb9, 0x6e, 0x56, - 0x72, 0x5d, 0x22, 0xe4, 0xb6, 0x59, 0xc9, 0x6d, 0x89, 0x90, 0xcb, 0x66, 0x25, 0x97, 0x25, 0x42, - 0xee, 0x9a, 0x95, 0xdc, 0x95, 0x08, 0xb9, 0x6a, 0x56, 0x72, 0x55, 0x22, 0xe4, 0xa6, 0x59, 0xc9, - 0x4d, 0x89, 0x90, 0x8b, 0x66, 0x25, 0x17, 0x25, 0x42, 0xee, 0x99, 0x95, 0xdc, 0x93, 0x08, 0xb9, - 0xe6, 0xbc, 0xec, 0x9a, 0x44, 0xd8, 0x2d, 0xe7, 0x65, 0xb7, 0x24, 0xc2, 0x2e, 0x39, 0x2f, 0xbb, - 0x24, 0x11, 0x76, 0xc7, 0x79, 0xd9, 0x1d, 0x89, 0xb0, 0x2b, 0xfe, 0x2c, 0xc1, 0x3b, 0xc2, 0x3d, - 0xaf, 0xdd, 0xa9, 0x79, 0x1f, 0xa8, 0x23, 0x5c, 0x16, 0xda, 0x87, 0xf4, 0x8a, 0xbe, 0x44, 0x1a, - 0xd6, 0x70, 0xc7, 0x29, 0xad, 0x60, 0xcb, 0x42, 0x63, 0x11, 0x42, 0xd8, 0xd1, 0x88, 0xd5, 0x0f, - 0xd4, 0x1b, 0x2e, 0x0b, 0x6d, 0x46, 0xbc, 0x7e, 0x37, 0x3f, 0xf2, 0x8e, 0xed, 0xed, 0x04, 0xef, - 0xd8, 0x98, 0xf9, 0xcf, 0xda, 0xb1, 0x2d, 0xc6, 0x9b, 0xdc, 0x37, 0xf6, 0x62, 0xbc, 0xb1, 0xbb, - 0x56, 0x9d, 0x41, 0x3b, 0xb8, 0xc5, 0x78, 0xd3, 0xfa, 0x46, 0xfd, 0x70, 0xfb, 0x2d, 0x16, 0xc1, - 0x06, 0x6a, 0x45, 0x44, 0xf0, 0x59, 0xfb, 0xad, 0x65, 0xa1, 0x94, 0x9c, 0x35, 0x82, 0xd5, 0x33, - 0x47, 0xf0, 0x59, 0x3b, 0xaf, 0x65, 0xa1, 0xbc, 0x9c, 0x39, 0x82, 0x3f, 0x82, 0x7e, 0x88, 0x45, - 0x70, 0x60, 0xfe, 0xb3, 0xf6, 0x43, 0x8b, 0xf1, 0x26, 0x8f, 0x8c, 0x60, 0xf5, 0x0c, 0x11, 0x3c, - 0x48, 0x7f, 0xb4, 0x18, 0x6f, 0xda, 0xe8, 0x08, 0xfe, 0xc0, 0xdd, 0xcc, 0x57, 0x15, 0x98, 0xaa, - 0x58, 0xf5, 0x72, 0xf3, 0x10, 0xd5, 0xeb, 0xa8, 0xce, 0xec, 0xb8, 0x2c, 0x54, 0x82, 0x1e, 0xae, - 0x7e, 0xe7, 0xdd, 0xf9, 0xc0, 0xc2, 0x6b, 0x90, 0xa2, 0x36, 0x5d, 0x5e, 0xce, 0xde, 0x57, 0x62, - 0x2a, 0x9c, 0x2f, 0xaa, 0x5f, 0xe4, 0xb0, 0xab, 0xcb, 0xd9, 0xff, 0xa4, 0x84, 0xaa, 0x9c, 0x3f, - 0x9c, 0xfb, 0x55, 0xa2, 0xa1, 0xfd, 0x81, 0x35, 0xbc, 0x32, 0x90, 0x86, 0x21, 0xdd, 0x1e, 0xef, - 0xd2, 0x2d, 0xa4, 0x55, 0x07, 0x26, 0x2b, 0x56, 0xbd, 0x42, 0xbe, 0xd2, 0x3b, 0x88, 0x4a, 0x54, - 0x46, 0xaa, 0x07, 0xcb, 0x42, 0x58, 0x86, 0x11, 0x7e, 0x48, 0x8b, 0x35, 0x22, 0x67, 0xe1, 0xd3, - 0xda, 0xc2, 0x69, 0x17, 0x7b, 0x9d, 0x36, 0xa8, 0xec, 0xfe, 0x09, 0x17, 0x7b, 0x9d, 0x30, 0xc8, - 0x21, 0xff, 0x54, 0x6f, 0xf0, 0xc5, 0x99, 0xbe, 0x85, 0xa3, 0x9f, 0x87, 0xc4, 0x26, 0x7d, 0x43, - 0x38, 0x53, 0xcc, 0x60, 0xa5, 0xbe, 0xfb, 0xee, 0x7c, 0xf2, 0xa0, 0x63, 0xd5, 0x8d, 0xc4, 0x66, - 0x5d, 0xbf, 0x0b, 0xc3, 0x9f, 0x66, 0x5f, 0x8c, 0xc3, 0x02, 0xab, 0x4c, 0xe0, 0xe3, 0x31, 0x5b, - 0x4c, 0x84, 0x7a, 0xe9, 0xc0, 0xb2, 0xbd, 0xab, 0x2b, 0x37, 0x0d, 0x4a, 0x91, 0xfb, 0xff, 0x01, - 0xe8, 0x39, 0xd7, 0x4d, 0xf7, 0x44, 0xaf, 0x70, 0x66, 0x7a, 0xea, 0x9b, 0xdf, 0x7d, 0x77, 0x7e, - 0x75, 0x10, 0xd6, 0x67, 0xeb, 0xa6, 0x7b, 0xf2, 0xac, 0x77, 0xda, 0x42, 0x4b, 0xc5, 0x53, 0x0f, - 0xb9, 0x9c, 0xbd, 0xc5, 0x57, 0x3d, 0x76, 0x5d, 0xd9, 0xd0, 0x75, 0xa5, 0x84, 0x6b, 0xda, 0x10, - 0xaf, 0x69, 0xf9, 0x61, 0xaf, 0xe7, 0x0d, 0xbe, 0x48, 0x48, 0x96, 0x54, 0xe3, 0x2c, 0xa9, 0x7e, - 0x50, 0x4b, 0xb6, 0x78, 0x7d, 0x94, 0xae, 0x55, 0xed, 0x77, 0xad, 0xea, 0x07, 0xb9, 0xd6, 0x3f, - 0xa1, 0xd9, 0xea, 0xe7, 0xd3, 0x81, 0x4d, 0xdf, 0x4e, 0xfc, 0xf3, 0xb5, 0x17, 0xf4, 0xa1, 0x76, - 0x01, 0xf9, 0xe4, 0xfd, 0xb7, 0xe6, 0x95, 0xdc, 0x57, 0x13, 0xfc, 0xca, 0x69, 0x22, 0x3d, 0xdc, - 0x95, 0xff, 0x79, 0xe9, 0xa9, 0x3e, 0x0a, 0x0b, 0x7d, 0x45, 0x81, 0x99, 0xae, 0x4a, 0x4e, 0xcd, - 0xf4, 0xe1, 0x96, 0x73, 0xfb, 0xac, 0xe5, 0x9c, 0x29, 0xf8, 0xbb, 0x0a, 0x9c, 0x93, 0xca, 0x2b, - 0x55, 0xef, 0x8a, 0xa4, 0xde, 0xa3, 0xdd, 0x67, 0x22, 0x82, 0x21, 0xed, 0xc2, 0xee, 0x95, 0x00, - 0x21, 0x66, 0xdf, 0xef, 0xab, 0x92, 0xdf, 0xcf, 0xfb, 0x80, 0x08, 0x73, 0xf1, 0x08, 0x60, 0x6a, - 0x3b, 0x90, 0xdc, 0x6f, 0x23, 0xa4, 0xcf, 0x41, 0x62, 0xa7, 0xcd, 0x34, 0x9c, 0xa0, 0xf8, 0x9d, - 0x76, 0xb1, 0x6d, 0xda, 0xb5, 0x13, 0x23, 0xb1, 0xd3, 0xd6, 0x2f, 0x82, 0x5a, 0x60, 0x3f, 0x3d, - 0x90, 0x5e, 0x99, 0xa4, 0x02, 0x05, 0xbb, 0xce, 0x24, 0xf0, 0x9c, 0x3e, 0x07, 0xc9, 0x2d, 0x64, - 0x1e, 0x31, 0x25, 0x80, 0xca, 0xe0, 0x11, 0x83, 0x8c, 0xb3, 0x13, 0xbe, 0x0c, 0x29, 0x4e, 0xac, - 0x5f, 0xc2, 0x88, 0x23, 0x8f, 0x9d, 0x96, 0x21, 0xb0, 0x3a, 0x6c, 0xe5, 0x22, 0xb3, 0xfa, 0x65, - 0x18, 0x36, 0xac, 0xe3, 0x13, 0x8f, 0x9d, 0xbc, 0x5b, 0x8c, 0x4e, 0xe7, 0xee, 0xc1, 0x98, 0xaf, - 0xd1, 0x87, 0x4c, 0xbd, 0x4e, 0x2f, 0x4d, 0x9f, 0x0d, 0xaf, 0x27, 0x7c, 0xdf, 0x92, 0x0e, 0xe9, - 0x17, 0x20, 0xb5, 0xe7, 0xb5, 0x83, 0xa2, 0xcf, 0x3b, 0x52, 0x7f, 0x34, 0xf7, 0x4b, 0x0a, 0xa4, - 0xd6, 0x11, 0x6a, 0x11, 0x83, 0x3f, 0x05, 0xc9, 0x75, 0xe7, 0x75, 0x9b, 0x29, 0x38, 0xc5, 0x2c, - 0x8a, 0xa7, 0x99, 0x4d, 0xc9, 0xb4, 0xfe, 0x54, 0xd8, 0xee, 0xd3, 0xbe, 0xdd, 0x43, 0x72, 0xc4, - 0xf6, 0x39, 0xc1, 0xf6, 0xcc, 0x81, 0x58, 0xa8, 0xcb, 0xfe, 0x37, 0x20, 0x1d, 0x3a, 0x8b, 0xbe, - 0xc0, 0xd4, 0x48, 0xc8, 0xc0, 0xb0, 0xad, 0xb0, 0x44, 0x0e, 0xc1, 0xb8, 0x70, 0x62, 0x0c, 0x0d, - 0x99, 0xb8, 0x07, 0x94, 0x98, 0x79, 0x51, 0x34, 0x73, 0xb4, 0x28, 0x33, 0xf5, 0x32, 0xb5, 0x11, - 0x31, 0xf7, 0x25, 0x1a, 0x9c, 0xbd, 0x9d, 0x88, 0x3f, 0xe7, 0x86, 0x41, 0xad, 0x58, 0x8d, 0xdc, - 0x73, 0x00, 0x34, 0xe5, 0xcb, 0x76, 0xa7, 0x29, 0x65, 0xdd, 0x04, 0x37, 0xf0, 0xfe, 0x09, 0xda, - 0x47, 0x2e, 0x11, 0x11, 0xfb, 0x29, 0x5c, 0x60, 0x80, 0xa6, 0x18, 0xc1, 0x3f, 0x13, 0x8b, 0x8f, - 0xec, 0xc4, 0xb0, 0x68, 0x96, 0x8a, 0xde, 0x43, 0x5e, 0xc1, 0x76, 0xbc, 0x13, 0xd4, 0x96, 0x10, - 0x2b, 0xfa, 0x35, 0x21, 0x61, 0x27, 0x56, 0x1e, 0xf7, 0x11, 0x3d, 0x41, 0xd7, 0x72, 0xdf, 0x24, - 0x0a, 0xe2, 0x56, 0xa0, 0xeb, 0x02, 0xd5, 0x01, 0x2e, 0x50, 0xbf, 0x2e, 0xf4, 0x6f, 0x7d, 0xd4, - 0x94, 0x6e, 0x2d, 0x6f, 0x09, 0xf7, 0x39, 0xfd, 0x95, 0x15, 0xef, 0x31, 0xb9, 0x4d, 0xb9, 0xca, - 0xcf, 0xc4, 0xaa, 0xdc, 0xa3, 0xbb, 0x3d, 0xab, 0x4d, 0xd5, 0x41, 0x6d, 0xfa, 0xfb, 0x7e, 0xc7, - 0x41, 0x7f, 0xc4, 0x81, 0xfc, 0x66, 0x88, 0xfe, 0xf1, 0x58, 0xdf, 0xe7, 0x95, 0x92, 0xaf, 0xea, - 0xea, 0xa0, 0xee, 0xcf, 0x27, 0x8a, 0x45, 0x5f, 0xdd, 0x1b, 0x67, 0x08, 0x81, 0x7c, 0xa2, 0x54, - 0xf2, 0xcb, 0x76, 0xea, 0xf3, 0x6f, 0xcd, 0x2b, 0xdf, 0x78, 0x6b, 0x7e, 0x28, 0xf7, 0x9b, 0x0a, - 0x4c, 0x31, 0xc9, 0x50, 0xe0, 0x3e, 0x2b, 0x29, 0xff, 0x08, 0xaf, 0x19, 0x51, 0x16, 0xf8, 0xa9, - 0x05, 0xef, 0x77, 0x14, 0xc8, 0x76, 0xe9, 0xca, 0xed, 0xbd, 0x3c, 0x90, 0xca, 0x79, 0xa5, 0xfc, - 0xb3, 0xb7, 0xf9, 0x3d, 0x18, 0xde, 0xb7, 0x9a, 0xa8, 0x8d, 0x57, 0x02, 0xfc, 0x81, 0xaa, 0xcc, - 0x1f, 0xe6, 0xd0, 0x21, 0x3e, 0x47, 0x95, 0x13, 0xe6, 0x56, 0xf4, 0x2c, 0x24, 0xd7, 0x4d, 0xcf, - 0x24, 0x1a, 0x64, 0xfc, 0xfa, 0x6a, 0x7a, 0x66, 0xee, 0x1a, 0x64, 0xb6, 0x4f, 0xc9, 0x2b, 0x34, - 0x75, 0xf2, 0x7a, 0x88, 0xd8, 0xfd, 0xf1, 0x7e, 0xf5, 0xea, 0xe2, 0x70, 0xaa, 0xae, 0xdd, 0x57, - 0xf2, 0x49, 0xa2, 0xcf, 0x6b, 0x30, 0xb1, 0x83, 0xd5, 0x26, 0x38, 0x02, 0xbb, 0x00, 0xca, 0xb6, - 0xd8, 0x08, 0x85, 0x59, 0x0d, 0x65, 0x5b, 0x6a, 0x1f, 0x55, 0xdf, 0x3c, 0x52, 0xdb, 0xa6, 0xfa, - 0x6d, 0xdb, 0x62, 0x32, 0x35, 0xa1, 0x4d, 0x2d, 0x26, 0x53, 0xa0, 0x8d, 0xb3, 0xf3, 0xfe, 0x07, - 0x15, 0x34, 0xda, 0xea, 0xac, 0xa3, 0x23, 0xcb, 0xb6, 0xbc, 0xee, 0x7e, 0xd5, 0xd7, 0x58, 0x7f, - 0x01, 0xc6, 0xb0, 0x49, 0x37, 0xd8, 0x4f, 0x6f, 0x61, 0xd3, 0x5f, 0x64, 0x2d, 0x8a, 0x44, 0xc1, - 0x06, 0x48, 0xe8, 0x04, 0x18, 0x7d, 0x03, 0xd4, 0x4a, 0x65, 0x9b, 0x2d, 0x6e, 0xab, 0x7d, 0xa1, - 0xec, 0x0d, 0x1c, 0x76, 0xc4, 0xc6, 0xdc, 0x63, 0x03, 0x13, 0xe8, 0xab, 0x90, 0xa8, 0x6c, 0xb3, - 0x86, 0xf7, 0xd2, 0x20, 0x34, 0x46, 0xa2, 0xb2, 0x3d, 0xfb, 0x6f, 0x14, 0x18, 0x17, 0x46, 0xf5, - 0x1c, 0x64, 0xe8, 0x40, 0xe8, 0x72, 0x47, 0x0c, 0x61, 0x8c, 0xeb, 0x9c, 0xf8, 0x80, 0x3a, 0xcf, - 0x16, 0x60, 0x52, 0x1a, 0xd7, 0x97, 0x40, 0x0f, 0x0f, 0x31, 0x25, 0xe8, 0xcf, 0x16, 0x45, 0xcc, - 0xe4, 0x9e, 0x00, 0x08, 0xec, 0xea, 0xff, 0xda, 0x4e, 0xa5, 0xbc, 0xb7, 0x5f, 0x5e, 0xd7, 0x94, - 0xdc, 0xb7, 0x15, 0x48, 0xb3, 0xb6, 0xb5, 0xe6, 0xb4, 0x90, 0x5e, 0x04, 0xa5, 0xc0, 0x22, 0xe8, - 0xe1, 0xf4, 0x56, 0x0a, 0xfa, 0x15, 0x50, 0x8a, 0x83, 0xbb, 0x5a, 0x29, 0xea, 0x2b, 0xa0, 0x94, - 0x98, 0x83, 0x07, 0xf3, 0x8c, 0x52, 0xca, 0xfd, 0x91, 0x0a, 0xd3, 0xe1, 0x36, 0x9a, 0xd7, 0x93, - 0x8b, 0xe2, 0x7d, 0x53, 0x7e, 0xec, 0xea, 0xca, 0xb5, 0xd5, 0x25, 0xfc, 0x8f, 0x1f, 0x92, 0x17, - 0xc5, 0x5b, 0xa8, 0x6e, 0x91, 0xae, 0xd7, 0x44, 0xf2, 0xc9, 0xd0, 0x6c, 0xd7, 0x6b, 0x22, 0xc2, - 0x6c, 0xd7, 0x6b, 0x22, 0xc2, 0x6c, 0xd7, 0x6b, 0x22, 0xc2, 0x6c, 0xd7, 0xa3, 0x00, 0x61, 0xb6, - 0xeb, 0x35, 0x11, 0x61, 0xb6, 0xeb, 0x35, 0x11, 0x61, 0xb6, 0xfb, 0x35, 0x11, 0x36, 0xdd, 0xf3, - 0x35, 0x11, 0x71, 0xbe, 0xfb, 0x35, 0x11, 0x71, 0xbe, 0xfb, 0x35, 0x91, 0x7c, 0xd2, 0x6b, 0x77, - 0x50, 0xef, 0x87, 0x0e, 0x22, 0xbe, 0xdf, 0x3d, 0x60, 0x50, 0x80, 0x77, 0x60, 0x92, 0xee, 0x47, - 0x94, 0x1c, 0xdb, 0x33, 0x2d, 0x1b, 0xb5, 0xf5, 0x4f, 0x40, 0x86, 0x0e, 0xd1, 0xbb, 0x9c, 0xa8, - 0xbb, 0x40, 0x3a, 0xcf, 0xca, 0xad, 0x20, 0x9d, 0xfb, 0xb3, 0x24, 0xcc, 0xd0, 0x81, 0x8a, 0xd9, - 0x44, 0xc2, 0x4b, 0x46, 0x97, 0xa5, 0x47, 0x4a, 0x13, 0x18, 0xfe, 0xe0, 0xdd, 0x79, 0x3a, 0x5a, - 0xf0, 0x83, 0xe9, 0xb2, 0xf4, 0x70, 0x49, 0x94, 0x0b, 0xd6, 0x9f, 0xcb, 0xd2, 0x8b, 0x47, 0xa2, - 0x9c, 0xbf, 0xdc, 0xf8, 0x72, 0xfc, 0x15, 0x24, 0x51, 0x6e, 0xdd, 0x8f, 0xb2, 0xcb, 0xd2, 0xcb, - 0x48, 0xa2, 0x5c, 0xd9, 0x8f, 0xb7, 0xcb, 0xd2, 0xa3, 0x27, 0x51, 0x6e, 0xc3, 0x8f, 0xbc, 0xcb, - 0xd2, 0x43, 0x28, 0x51, 0xee, 0x8e, 0x1f, 0x83, 0x97, 0xa5, 0x57, 0x95, 0x44, 0xb9, 0x17, 0xfd, - 0x68, 0xbc, 0x2c, 0xbd, 0xb4, 0x24, 0xca, 0x6d, 0xfa, 0x71, 0xb9, 0x20, 0xbf, 0xbe, 0x24, 0x0a, - 0xde, 0x0d, 0x22, 0x74, 0x41, 0x7e, 0x91, 0x49, 0x94, 0xfc, 0x64, 0x10, 0xab, 0x0b, 0xf2, 0x2b, - 0x4d, 0xa2, 0xe4, 0x56, 0x10, 0xb5, 0x0b, 0xf2, 0xa3, 0x32, 0x51, 0x72, 0x3b, 0x88, 0xdf, 0x05, - 0xf9, 0xa1, 0x99, 0x28, 0x59, 0x09, 0x22, 0x79, 0x41, 0x7e, 0x7c, 0x26, 0x4a, 0xee, 0x04, 0x7b, - 0xe8, 0x7f, 0x20, 0x85, 0x5f, 0xe8, 0x25, 0xa8, 0x9c, 0x14, 0x7e, 0x10, 0x11, 0x7a, 0x39, 0x29, - 0xf4, 0x20, 0x22, 0xec, 0x72, 0x52, 0xd8, 0x41, 0x44, 0xc8, 0xe5, 0xa4, 0x90, 0x83, 0x88, 0x70, - 0xcb, 0x49, 0xe1, 0x06, 0x11, 0xa1, 0x96, 0x93, 0x42, 0x0d, 0x22, 0xc2, 0x2c, 0x27, 0x85, 0x19, - 0x44, 0x84, 0x58, 0x4e, 0x0a, 0x31, 0x88, 0x08, 0xaf, 0x9c, 0x14, 0x5e, 0x10, 0x11, 0x5a, 0x97, - 0xe4, 0xd0, 0x82, 0xa8, 0xb0, 0xba, 0x24, 0x87, 0x15, 0x44, 0x85, 0xd4, 0x93, 0x72, 0x48, 0x8d, - 0x3d, 0x78, 0x77, 0x7e, 0x18, 0x0f, 0x85, 0xa2, 0xe9, 0x92, 0x1c, 0x4d, 0x10, 0x15, 0x49, 0x97, - 0xe4, 0x48, 0x82, 0xa8, 0x28, 0xba, 0x24, 0x47, 0x11, 0x44, 0x45, 0xd0, 0xdb, 0x72, 0x04, 0x05, - 0xaf, 0xf8, 0xe4, 0xa4, 0x27, 0x8a, 0x71, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, - 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, - 0x41, 0xea, 0x20, 0x11, 0xa4, 0x0e, 0x14, 0x41, 0x6a, 0xaf, 0x08, 0xba, 0x24, 0xbf, 0xf0, 0x00, - 0x51, 0x05, 0xe9, 0x92, 0xfc, 0xe4, 0x33, 0x3e, 0x84, 0xd4, 0x81, 0x42, 0x48, 0xed, 0x15, 0x42, - 0x7f, 0xa0, 0xc2, 0xb4, 0x10, 0x42, 0xec, 0xf1, 0xd0, 0x87, 0x55, 0x81, 0xae, 0x0f, 0xf0, 0x7e, - 0x45, 0x54, 0x4c, 0x5d, 0x1f, 0xe0, 0x19, 0x75, 0xbf, 0x38, 0xeb, 0xae, 0x42, 0xe5, 0x01, 0xaa, - 0xd0, 0x86, 0x1f, 0x43, 0xd7, 0x07, 0x78, 0xef, 0xa2, 0x3b, 0xf6, 0x6e, 0xf6, 0x2b, 0x02, 0x2f, - 0x0e, 0x54, 0x04, 0x36, 0x07, 0x2a, 0x02, 0x77, 0x03, 0x0f, 0xfe, 0x72, 0x02, 0xce, 0x05, 0x1e, - 0xa4, 0x9f, 0xc8, 0x4f, 0x24, 0xe5, 0x42, 0x4f, 0xa8, 0x74, 0xfe, 0xd4, 0x26, 0xe4, 0xc6, 0xc4, - 0x66, 0x5d, 0xdf, 0x15, 0x9f, 0x55, 0xe5, 0xcf, 0xfa, 0xfc, 0x26, 0xe4, 0x71, 0xb6, 0x17, 0x7a, - 0x09, 0xd4, 0xcd, 0xba, 0x4b, 0xaa, 0x45, 0xd4, 0x69, 0x4b, 0x06, 0x9e, 0xd6, 0x0d, 0x18, 0x21, - 0xe2, 0x2e, 0x71, 0xef, 0x07, 0x39, 0xf1, 0xba, 0xc1, 0x98, 0x72, 0x6f, 0x2b, 0x70, 0x41, 0x08, - 0xe5, 0x0f, 0xe7, 0x89, 0xc1, 0xed, 0x81, 0x9e, 0x18, 0x08, 0x09, 0x12, 0x3c, 0x3d, 0x78, 0xba, - 0xfb, 0x41, 0x75, 0x38, 0x4b, 0xe4, 0x27, 0x09, 0x7f, 0x11, 0x26, 0x82, 0x2b, 0x20, 0xb7, 0x6c, - 0x6b, 0xf1, 0x9b, 0x99, 0x51, 0xa9, 0xb9, 0x26, 0x6d, 0xa2, 0xf5, 0x85, 0xf9, 0xd9, 0x9a, 0xcb, - 0xc3, 0x64, 0x45, 0xfc, 0x2e, 0x4f, 0xdc, 0x5e, 0x44, 0x0a, 0xb7, 0xe6, 0xf7, 0xbf, 0x36, 0x3f, - 0x94, 0xfb, 0x38, 0x64, 0xc2, 0x5f, 0xd7, 0x91, 0x80, 0x63, 0x1c, 0x98, 0x4f, 0xbe, 0x83, 0xa5, - 0xff, 0xbe, 0x02, 0x8f, 0x84, 0xc5, 0x5f, 0xb2, 0xbc, 0x93, 0x4d, 0x1b, 0xf7, 0xf4, 0xcf, 0x41, - 0x0a, 0x31, 0xc7, 0xb1, 0x5f, 0x3b, 0x61, 0xb7, 0x91, 0x91, 0xe2, 0x4b, 0xe4, 0x5f, 0xc3, 0x87, - 0x48, 0x5b, 0x1c, 0xfc, 0xb4, 0x2b, 0xb3, 0x4f, 0xc1, 0x30, 0xe5, 0x17, 0xf5, 0x1a, 0x97, 0xf4, - 0xfa, 0x8d, 0x08, 0xbd, 0x48, 0x1c, 0xe9, 0x77, 0x05, 0xbd, 0x42, 0x77, 0xab, 0x91, 0xe2, 0x4b, - 0x3c, 0xf8, 0x8a, 0x29, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x57, 0x72, 0x01, 0x52, 0x65, 0x59, 0x26, - 0x5a, 0xcf, 0x75, 0x48, 0x56, 0x9c, 0x3a, 0xf9, 0x1d, 0x16, 0xf2, 0x7b, 0xb9, 0xcc, 0xc8, 0xec, - 0xc7, 0x73, 0x2f, 0x43, 0xaa, 0x74, 0x62, 0x35, 0xea, 0x6d, 0x64, 0xb3, 0x47, 0xf6, 0x6c, 0x07, - 0x1d, 0x63, 0x0c, 0x7f, 0x2e, 0x57, 0x82, 0xa9, 0x8a, 0x63, 0x17, 0x4f, 0xbd, 0x70, 0xdd, 0x58, - 0x92, 0x52, 0x84, 0x3d, 0xf2, 0x21, 0x5f, 0x00, 0xc1, 0x02, 0xc5, 0xe1, 0xef, 0xbe, 0x3b, 0xaf, - 0xec, 0xfb, 0xdb, 0xe7, 0xdb, 0xf0, 0x28, 0x4b, 0x9f, 0x2e, 0xaa, 0x95, 0x38, 0xaa, 0x31, 0xf6, - 0x98, 0x3a, 0x44, 0xb7, 0x89, 0xe9, 0xec, 0x48, 0xba, 0x87, 0xd3, 0x0c, 0x37, 0x45, 0x7d, 0x35, - 0x53, 0xcf, 0xa4, 0x59, 0x24, 0xdd, 0x52, 0x1c, 0x9d, 0xa4, 0xd9, 0x93, 0x30, 0xe6, 0xcf, 0x85, - 0xa2, 0x21, 0x9c, 0x29, 0x2b, 0x8b, 0x39, 0x48, 0x87, 0x12, 0x56, 0x1f, 0x06, 0xa5, 0xa0, 0x0d, - 0xe1, 0xff, 0x8a, 0x9a, 0x82, 0xff, 0x2b, 0x69, 0x89, 0xc5, 0xa7, 0x60, 0x52, 0xda, 0xbe, 0xc4, - 0x33, 0xeb, 0x1a, 0xe0, 0xff, 0xca, 0x5a, 0x7a, 0x36, 0xf9, 0xf9, 0x7f, 0x34, 0x37, 0xb4, 0x78, - 0x1b, 0xf4, 0xee, 0x8d, 0x4e, 0x7d, 0x04, 0x12, 0x05, 0x4c, 0xf9, 0x28, 0x24, 0x8a, 0x45, 0x4d, - 0x99, 0x9d, 0xfc, 0x6b, 0x5f, 0xbe, 0x90, 0x2e, 0x92, 0xef, 0x22, 0xdf, 0x43, 0x5e, 0xb1, 0xc8, - 0xc0, 0xcf, 0xc3, 0x23, 0x91, 0x1b, 0xa5, 0x18, 0x5f, 0x2a, 0x51, 0xfc, 0xfa, 0x7a, 0x17, 0x7e, - 0x7d, 0x9d, 0xe0, 0x95, 0x3c, 0x7f, 0xe0, 0x5c, 0xd0, 0x23, 0xb6, 0x25, 0xb3, 0xf5, 0xd0, 0x03, - 0xee, 0x42, 0xfe, 0x79, 0x26, 0x5b, 0x8c, 0x94, 0x45, 0x31, 0x0f, 0xac, 0x8b, 0xf9, 0x12, 0xc3, - 0x97, 0x22, 0xf1, 0x47, 0xd2, 0x53, 0x55, 0x71, 0x85, 0x60, 0x24, 0x25, 0x5f, 0xe1, 0xf5, 0x48, - 0x92, 0x93, 0xd0, 0xbb, 0xee, 0xeb, 0xbe, 0xc2, 0xe5, 0x48, 0x59, 0x2b, 0xe6, 0x9d, 0xaf, 0x72, - 0xfe, 0x0a, 0x5b, 0xe4, 0x0b, 0x57, 0xf5, 0x47, 0x78, 0x8e, 0x0a, 0x15, 0x98, 0x19, 0x88, 0x4b, - 0xe5, 0x4b, 0x0c, 0x50, 0xec, 0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0xbf, 0xc8, 0x48, 0x4a, 0x3d, - 0x49, 0x62, 0x4c, 0xc5, 0xe1, 0xc5, 0xfd, 0xfb, 0xef, 0xcd, 0x0d, 0xbd, 0xf3, 0xde, 0xdc, 0xd0, - 0x7f, 0x79, 0x6f, 0x6e, 0xe8, 0x7b, 0xef, 0xcd, 0x29, 0x3f, 0x78, 0x6f, 0x4e, 0xf9, 0xd1, 0x7b, - 0x73, 0xca, 0x9f, 0xbe, 0x37, 0xa7, 0xbc, 0xf9, 0x60, 0x4e, 0xf9, 0xc6, 0x83, 0x39, 0xe5, 0x9b, - 0x0f, 0xe6, 0x94, 0xdf, 0x7b, 0x30, 0xa7, 0xbc, 0xfd, 0x60, 0x4e, 0xb9, 0xff, 0x60, 0x4e, 0x79, - 0xe7, 0xc1, 0x9c, 0xf2, 0xbd, 0x07, 0x73, 0xca, 0x0f, 0x1e, 0xcc, 0x0d, 0xfd, 0xe8, 0xc1, 0x9c, - 0xf2, 0xa7, 0x0f, 0xe6, 0x86, 0xde, 0x7c, 0x7f, 0x6e, 0xe8, 0xad, 0xf7, 0xe7, 0x86, 0xbe, 0xf1, - 0xfe, 0x9c, 0x02, 0xef, 0xaf, 0xc2, 0x1c, 0xfb, 0x22, 0x99, 0x8d, 0x2c, 0x1c, 0x74, 0x57, 0xbc, - 0x13, 0x44, 0x1a, 0x82, 0x6b, 0xfc, 0xd7, 0x9c, 0xfc, 0x81, 0x33, 0x7e, 0xa5, 0x6c, 0xf6, 0x61, - 0xbf, 0xc0, 0x96, 0xfb, 0xb7, 0xc3, 0x30, 0xca, 0x37, 0x82, 0xa3, 0x7e, 0x0f, 0x7a, 0x0d, 0x52, - 0x27, 0x56, 0xc3, 0x6c, 0x5b, 0xde, 0x29, 0xdb, 0x01, 0x7d, 0x6c, 0x29, 0x50, 0x9b, 0xef, 0x99, - 0xbe, 0xd8, 0x69, 0x3a, 0x9d, 0xb6, 0xe1, 0x8b, 0xea, 0x17, 0x20, 0x73, 0x82, 0xac, 0xe3, 0x13, - 0xaf, 0x6a, 0xd9, 0xd5, 0x5a, 0x93, 0x74, 0xca, 0xe3, 0x06, 0xd0, 0xb1, 0x4d, 0xbb, 0xd4, 0xc4, - 0x27, 0xab, 0x9b, 0x9e, 0x49, 0xee, 0xd0, 0x33, 0x06, 0xf9, 0xac, 0x5f, 0x84, 0x4c, 0x1b, 0xb9, - 0x9d, 0x86, 0x57, 0xad, 0x39, 0x1d, 0xdb, 0x23, 0xbd, 0xac, 0x6a, 0xa4, 0xe9, 0x58, 0x09, 0x0f, - 0xe9, 0x4f, 0xc2, 0xb8, 0xd7, 0xee, 0xa0, 0xaa, 0x5b, 0x73, 0x3c, 0xb7, 0x69, 0xda, 0xa4, 0x97, - 0x4d, 0x19, 0x19, 0x3c, 0xb8, 0xc7, 0xc6, 0xc8, 0xdf, 0x1b, 0xa8, 0x39, 0x6d, 0x44, 0x6e, 0xa5, - 0x13, 0x06, 0x3d, 0xd0, 0x35, 0x50, 0x5f, 0x45, 0xa7, 0xe4, 0x66, 0x2d, 0x69, 0xe0, 0x8f, 0xfa, - 0x33, 0x30, 0x42, 0xff, 0x14, 0x05, 0xe9, 0xac, 0xc9, 0x73, 0x6b, 0xff, 0xd2, 0xe8, 0xfe, 0xac, - 0xc1, 0x04, 0xf4, 0x5b, 0x30, 0xea, 0xa1, 0x76, 0xdb, 0xb4, 0x6c, 0x72, 0xe3, 0x94, 0x5e, 0x99, - 0x8f, 0x30, 0xc3, 0x3e, 0x95, 0x20, 0x3f, 0xed, 0x6a, 0x70, 0x79, 0x7d, 0x0d, 0x32, 0x44, 0x6e, - 0xa5, 0x4a, 0xff, 0x5c, 0x47, 0xba, 0x67, 0x2c, 0xa7, 0xa9, 0x1c, 0x7f, 0x4c, 0xc0, 0x61, 0xf4, - 0x67, 0xed, 0xc6, 0xc9, 0x69, 0x9f, 0x8c, 0x38, 0x2d, 0x29, 0xbb, 0x2b, 0xa4, 0x65, 0xa4, 0xa7, - 0x66, 0x3c, 0xf4, 0x87, 0xef, 0xb6, 0x21, 0x13, 0xd6, 0x8b, 0x9b, 0x81, 0xb6, 0x3e, 0xc4, 0x0c, - 0x4f, 0x07, 0x3f, 0xe5, 0xde, 0xc3, 0x0a, 0x74, 0x3e, 0x9f, 0xb8, 0xa9, 0xcc, 0xee, 0x82, 0x26, - 0x9f, 0x2f, 0x82, 0xf2, 0xb2, 0x48, 0xa9, 0x85, 0x2f, 0x96, 0x6c, 0x92, 0x07, 0x8c, 0xb9, 0x17, - 0x60, 0x84, 0xc6, 0x8f, 0x9e, 0x86, 0xd1, 0xe0, 0x17, 0x13, 0x53, 0x90, 0xdc, 0x3d, 0xa8, 0xec, - 0xd1, 0x9f, 0x3e, 0xdd, 0xdb, 0x2a, 0xec, 0xee, 0xed, 0x6f, 0x96, 0x3e, 0xa9, 0x25, 0xf4, 0x49, - 0x48, 0x17, 0x37, 0xb7, 0xb6, 0xaa, 0xc5, 0xc2, 0xe6, 0x56, 0xf9, 0x9e, 0xa6, 0xe6, 0xe6, 0x60, - 0x84, 0xea, 0x49, 0x7e, 0xc2, 0xad, 0x63, 0xdb, 0xa7, 0xbc, 0x75, 0x20, 0x07, 0xb9, 0x6f, 0xe9, - 0x30, 0x5a, 0x68, 0x34, 0xb6, 0xcd, 0x96, 0xab, 0xbf, 0x04, 0x53, 0xf4, 0xc7, 0x24, 0xf6, 0x9d, - 0x75, 0xf2, 0x4b, 0x83, 0xb8, 0x30, 0x28, 0xec, 0x27, 0xec, 0x83, 0xeb, 0x66, 0xe2, 0x4b, 0x5d, - 0xb2, 0xd4, 0xc0, 0xdd, 0x1c, 0xfa, 0x3e, 0x68, 0x7c, 0x70, 0xa3, 0xe1, 0x98, 0x1e, 0xe6, 0x4d, - 0xb0, 0x1f, 0x02, 0xec, 0xcd, 0xcb, 0x45, 0x29, 0x6d, 0x17, 0x83, 0xfe, 0x09, 0x48, 0x6d, 0xda, - 0xde, 0xb5, 0x15, 0xcc, 0xc6, 0xff, 0xbc, 0x4a, 0x37, 0x1b, 0x17, 0xa1, 0x2c, 0x3e, 0x82, 0xa1, - 0xaf, 0xaf, 0x62, 0x74, 0xb2, 0x1f, 0x9a, 0x88, 0x04, 0x68, 0x72, 0xa8, 0xbf, 0x00, 0x63, 0xf8, - 0xce, 0x84, 0x9e, 0x7c, 0x98, 0xb7, 0xad, 0x5d, 0x70, 0x5f, 0x86, 0xe2, 0x03, 0x0c, 0x27, 0xa0, - 0xe7, 0x1f, 0xe9, 0x4b, 0x10, 0x52, 0x20, 0xc0, 0x60, 0x82, 0x3d, 0x5f, 0x83, 0xd1, 0x9e, 0x04, - 0x7b, 0x92, 0x06, 0x7b, 0x61, 0x0d, 0xf6, 0x7c, 0x0d, 0x52, 0x7d, 0x09, 0xc2, 0x1a, 0xf8, 0xc7, - 0x7a, 0x11, 0x60, 0xc3, 0x7a, 0x03, 0xd5, 0xa9, 0x0a, 0xf4, 0x8f, 0xaf, 0xe4, 0x22, 0x18, 0x02, - 0x21, 0x4a, 0x11, 0x42, 0xe9, 0x65, 0x48, 0xef, 0x1d, 0x05, 0x24, 0xd0, 0x95, 0xc7, 0xbe, 0x1a, - 0x47, 0x12, 0x4b, 0x18, 0xe7, 0xab, 0x42, 0x2f, 0x26, 0xdd, 0x5f, 0x95, 0xd0, 0xd5, 0x84, 0x50, - 0x81, 0x2a, 0x94, 0x24, 0x13, 0xa3, 0x4a, 0x88, 0x25, 0x8c, 0xc3, 0xc5, 0xb0, 0xe8, 0x38, 0x58, + // 7961 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, + 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x67, 0x28, 0x88, 0x1a, 0x91, 0x33, + 0xd0, 0x68, 0x44, 0xd1, 0x16, 0x67, 0x86, 0xc3, 0xb9, 0x61, 0x2c, 0x69, 0x01, 0x10, 0x1c, 0x71, + 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0x56, 0x12, 0x54, 0x13, 0x38, 0x24, 0x5b, 0x02, 0xba, 0xb1, + 0xe8, 0x86, 0x24, 0xaa, 0x52, 0x29, 0x65, 0x9d, 0x6c, 0xbc, 0x49, 0xe5, 0xba, 0x49, 0xad, 0xd7, + 0xf1, 0x45, 0x4e, 0x6a, 0x63, 0xef, 0xe6, 0xe6, 0xf5, 0x6e, 0x9c, 0xcd, 0x56, 0x2a, 0xab, 0x3c, + 0x38, 0x99, 0xbc, 0xa4, 0xb4, 0xc9, 0x4b, 0xca, 0x95, 0x52, 0x59, 0x23, 0xa7, 0xe2, 0x24, 0x4e, + 0xd6, 0xd9, 0xb8, 0x2a, 0xae, 0xf2, 0x3e, 0x6c, 0x9d, 0x5b, 0xf7, 0x39, 0x8d, 0x06, 0x1a, 0x1c, + 0x49, 0xb6, 0x1f, 0xf4, 0x32, 0x83, 0x3e, 0xe7, 0xff, 0xbe, 0xfe, 0xfb, 0xbf, 0x9d, 0xbf, 0x4f, + 0x37, 0x40, 0xf8, 0xa3, 0x9b, 0x70, 0xf6, 0xd0, 0x71, 0x0e, 0x1b, 0xe8, 0x62, 0xab, 0xed, 0x78, + 0xce, 0x7e, 0xe7, 0xe0, 0x62, 0x1d, 0xb9, 0xb5, 0xb6, 0xd5, 0xf2, 0x9c, 0xf6, 0x12, 0x19, 0xd3, + 0x27, 0xa9, 0xc4, 0x12, 0x97, 0xc8, 0x6d, 0xc2, 0xd4, 0x9a, 0xd5, 0x40, 0xab, 0xbe, 0xe0, 0x0e, + 0xf2, 0xf4, 0x1b, 0x90, 0x3c, 0xb0, 0x1a, 0x28, 0xab, 0x9c, 0x55, 0x17, 0xd2, 0xcb, 0xe7, 0x97, + 0x42, 0xa0, 0x25, 0x19, 0xb1, 0x8d, 0x87, 0x0d, 0x82, 0xc8, 0x7d, 0x2f, 0x09, 0xd3, 0x11, 0xb3, + 0xba, 0x0e, 0x49, 0xdb, 0x6c, 0x62, 0x46, 0x65, 0x61, 0xcc, 0x20, 0x9f, 0xf5, 0x2c, 0x8c, 0xb6, + 0xcc, 0xda, 0xcb, 0xe6, 0x21, 0xca, 0x26, 0xc8, 0x30, 0x3f, 0xd4, 0xe7, 0x00, 0xea, 0xa8, 0x85, + 0xec, 0x3a, 0xb2, 0x6b, 0xc7, 0x59, 0xf5, 0xac, 0xba, 0x30, 0x66, 0x08, 0x23, 0xfa, 0xc7, 0x60, + 0xaa, 0xd5, 0xd9, 0x6f, 0x58, 0xb5, 0xaa, 0x20, 0x06, 0x67, 0xd5, 0x85, 0x61, 0x43, 0xa3, 0x13, + 0xab, 0x81, 0xf0, 0x13, 0x30, 0xf9, 0x2a, 0x32, 0x5f, 0x16, 0x45, 0xd3, 0x44, 0x74, 0x02, 0x0f, + 0x0b, 0x82, 0x25, 0xc8, 0x34, 0x91, 0xeb, 0x9a, 0x87, 0xa8, 0xea, 0x1d, 0xb7, 0x50, 0x36, 0x49, + 0xae, 0xfe, 0x6c, 0xd7, 0xd5, 0x87, 0xaf, 0x3c, 0xcd, 0x50, 0xbb, 0xc7, 0x2d, 0xa4, 0x17, 0x60, + 0x0c, 0xd9, 0x9d, 0x26, 0x65, 0x18, 0xee, 0x61, 0xbf, 0xb2, 0xdd, 0x69, 0x86, 0x59, 0x52, 0x18, + 0xc6, 0x28, 0x46, 0x5d, 0xd4, 0x7e, 0xc5, 0xaa, 0xa1, 0xec, 0x08, 0x21, 0x78, 0xa2, 0x8b, 0x60, + 0x87, 0xce, 0x87, 0x39, 0x38, 0x4e, 0x2f, 0xc1, 0x18, 0x7a, 0xcd, 0x43, 0xb6, 0x6b, 0x39, 0x76, + 0x76, 0x94, 0x90, 0x3c, 0x1e, 0xe1, 0x45, 0xd4, 0xa8, 0x87, 0x29, 0x02, 0x9c, 0x7e, 0x0d, 0x46, + 0x9d, 0x96, 0x67, 0x39, 0xb6, 0x9b, 0x4d, 0x9d, 0x55, 0x16, 0xd2, 0xcb, 0x67, 0x22, 0x03, 0x61, + 0x8b, 0xca, 0x18, 0x5c, 0x58, 0x5f, 0x07, 0xcd, 0x75, 0x3a, 0xed, 0x1a, 0xaa, 0xd6, 0x9c, 0x3a, + 0xaa, 0x5a, 0xf6, 0x81, 0x93, 0x1d, 0x23, 0x04, 0xf3, 0xdd, 0x17, 0x42, 0x04, 0x4b, 0x4e, 0x1d, + 0xad, 0xdb, 0x07, 0x8e, 0x31, 0xe1, 0x4a, 0xc7, 0xfa, 0x0c, 0x8c, 0xb8, 0xc7, 0xb6, 0x67, 0xbe, + 0x96, 0xcd, 0x90, 0x08, 0x61, 0x47, 0xb9, 0x7f, 0x35, 0x02, 0x93, 0x83, 0x84, 0xd8, 0x2d, 0x18, + 0x3e, 0xc0, 0x57, 0x99, 0x4d, 0x9c, 0xc4, 0x06, 0x14, 0x23, 0x1b, 0x71, 0xe4, 0x01, 0x8d, 0x58, + 0x80, 0xb4, 0x8d, 0x5c, 0x0f, 0xd5, 0x69, 0x44, 0xa8, 0x03, 0xc6, 0x14, 0x50, 0x50, 0x77, 0x48, + 0x25, 0x1f, 0x28, 0xa4, 0x5e, 0x80, 0x49, 0x5f, 0xa5, 0x6a, 0xdb, 0xb4, 0x0f, 0x79, 0x6c, 0x5e, + 0x8c, 0xd3, 0x64, 0xa9, 0xcc, 0x71, 0x06, 0x86, 0x19, 0x13, 0x48, 0x3a, 0xd6, 0x57, 0x01, 0x1c, + 0x1b, 0x39, 0x07, 0xd5, 0x3a, 0xaa, 0x35, 0xb2, 0xa9, 0x1e, 0x56, 0xda, 0xc2, 0x22, 0x5d, 0x56, + 0x72, 0xe8, 0x68, 0xad, 0xa1, 0xdf, 0x0c, 0x42, 0x6d, 0xb4, 0x47, 0xa4, 0x6c, 0xd2, 0x24, 0xeb, + 0x8a, 0xb6, 0x3d, 0x98, 0x68, 0x23, 0x1c, 0xf7, 0xa8, 0xce, 0xae, 0x6c, 0x8c, 0x28, 0xb1, 0x14, + 0x7b, 0x65, 0x06, 0x83, 0xd1, 0x0b, 0x1b, 0x6f, 0x8b, 0x87, 0xfa, 0x63, 0xe0, 0x0f, 0x54, 0x49, + 0x58, 0x01, 0xa9, 0x42, 0x19, 0x3e, 0x58, 0x31, 0x9b, 0x68, 0xf6, 0x75, 0x98, 0x90, 0xcd, 0xa3, + 0x9f, 0x82, 0x61, 0xd7, 0x33, 0xdb, 0x1e, 0x89, 0xc2, 0x61, 0x83, 0x1e, 0xe8, 0x1a, 0xa8, 0xc8, + 0xae, 0x93, 0x2a, 0x37, 0x6c, 0xe0, 0x8f, 0xfa, 0x2f, 0x04, 0x17, 0xac, 0x92, 0x0b, 0xbe, 0xd0, + 0xed, 0x51, 0x89, 0x39, 0x7c, 0xdd, 0xb3, 0xd7, 0x61, 0x5c, 0xba, 0x80, 0x41, 0x4f, 0x9d, 0xfb, + 0xf3, 0x70, 0x3a, 0x92, 0x5a, 0x7f, 0x01, 0x4e, 0x75, 0x6c, 0xcb, 0xf6, 0x50, 0xbb, 0xd5, 0x46, + 0x38, 0x62, 0xe9, 0xa9, 0xb2, 0xff, 0x7d, 0xb4, 0x47, 0xcc, 0xed, 0x89, 0xd2, 0x94, 0xc5, 0x98, + 0xee, 0x74, 0x0f, 0x2e, 0x8e, 0xa5, 0xbe, 0x3f, 0xaa, 0xbd, 0xf1, 0xc6, 0x1b, 0x6f, 0x24, 0x72, + 0x9f, 0x1f, 0x81, 0x53, 0x51, 0x39, 0x13, 0x99, 0xbe, 0x33, 0x30, 0x62, 0x77, 0x9a, 0xfb, 0xa8, + 0x4d, 0x8c, 0x34, 0x6c, 0xb0, 0x23, 0xbd, 0x00, 0xc3, 0x0d, 0x73, 0x1f, 0x35, 0xb2, 0xc9, 0xb3, + 0xca, 0xc2, 0xc4, 0xf2, 0xc7, 0x06, 0xca, 0xca, 0xa5, 0x0d, 0x0c, 0x31, 0x28, 0x52, 0x7f, 0x06, + 0x92, 0xac, 0x44, 0x63, 0x86, 0xc5, 0xc1, 0x18, 0x70, 0x2e, 0x19, 0x04, 0xa7, 0x3f, 0x02, 0x63, + 0xf8, 0x7f, 0x1a, 0x1b, 0x23, 0x44, 0xe7, 0x14, 0x1e, 0xc0, 0x71, 0xa1, 0xcf, 0x42, 0x8a, 0xa4, + 0x49, 0x1d, 0xf1, 0xa5, 0xcd, 0x3f, 0xc6, 0x81, 0x55, 0x47, 0x07, 0x66, 0xa7, 0xe1, 0x55, 0x5f, + 0x31, 0x1b, 0x1d, 0x44, 0x02, 0x7e, 0xcc, 0xc8, 0xb0, 0xc1, 0x4f, 0xe3, 0x31, 0x7d, 0x1e, 0xd2, + 0x34, 0xab, 0x2c, 0xbb, 0x8e, 0x5e, 0x23, 0xd5, 0x73, 0xd8, 0xa0, 0x89, 0xb6, 0x8e, 0x47, 0xf0, + 0xe9, 0x5f, 0x72, 0x1d, 0x9b, 0x87, 0x26, 0x39, 0x05, 0x1e, 0x20, 0xa7, 0xbf, 0x1e, 0x2e, 0xdc, + 0x8f, 0x46, 0x5f, 0x5e, 0x38, 0xa6, 0x72, 0xdf, 0x4a, 0x40, 0x92, 0xd4, 0x8b, 0x49, 0x48, 0xef, + 0xde, 0xdd, 0x2e, 0x57, 0x57, 0xb7, 0xf6, 0x8a, 0x1b, 0x65, 0x4d, 0xd1, 0x27, 0x00, 0xc8, 0xc0, + 0xda, 0xc6, 0x56, 0x61, 0x57, 0x4b, 0xf8, 0xc7, 0xeb, 0x95, 0xdd, 0x6b, 0x2b, 0x9a, 0xea, 0x03, + 0xf6, 0xe8, 0x40, 0x52, 0x14, 0xb8, 0xb2, 0xac, 0x0d, 0xeb, 0x1a, 0x64, 0x28, 0xc1, 0xfa, 0x0b, + 0xe5, 0xd5, 0x6b, 0x2b, 0xda, 0x88, 0x3c, 0x72, 0x65, 0x59, 0x1b, 0xd5, 0xc7, 0x61, 0x8c, 0x8c, + 0x14, 0xb7, 0xb6, 0x36, 0xb4, 0x94, 0xcf, 0xb9, 0xb3, 0x6b, 0xac, 0x57, 0x6e, 0x6b, 0x63, 0x3e, + 0xe7, 0x6d, 0x63, 0x6b, 0x6f, 0x5b, 0x03, 0x9f, 0x61, 0xb3, 0xbc, 0xb3, 0x53, 0xb8, 0x5d, 0xd6, + 0xd2, 0xbe, 0x44, 0xf1, 0xee, 0x6e, 0x79, 0x47, 0xcb, 0x48, 0x6a, 0x5d, 0x59, 0xd6, 0xc6, 0xfd, + 0x53, 0x94, 0x2b, 0x7b, 0x9b, 0xda, 0x84, 0x3e, 0x05, 0xe3, 0xf4, 0x14, 0x5c, 0x89, 0xc9, 0xd0, + 0xd0, 0xb5, 0x15, 0x4d, 0x0b, 0x14, 0xa1, 0x2c, 0x53, 0xd2, 0xc0, 0xb5, 0x15, 0x4d, 0xcf, 0x95, + 0x60, 0x98, 0x44, 0x97, 0xae, 0xc3, 0xc4, 0x46, 0xa1, 0x58, 0xde, 0xa8, 0x6e, 0x6d, 0xef, 0xae, + 0x6f, 0x55, 0x0a, 0x1b, 0x9a, 0x12, 0x8c, 0x19, 0xe5, 0x4f, 0xed, 0xad, 0x1b, 0xe5, 0x55, 0x2d, + 0x21, 0x8e, 0x6d, 0x97, 0x0b, 0xbb, 0xe5, 0x55, 0x4d, 0xcd, 0xd5, 0xe0, 0x54, 0x54, 0x9d, 0x8c, + 0xcc, 0x0c, 0xc1, 0xc5, 0x89, 0x1e, 0x2e, 0x26, 0x5c, 0x5d, 0x2e, 0x7e, 0x2f, 0x01, 0xd3, 0x11, + 0x6b, 0x45, 0xe4, 0x49, 0x9e, 0x85, 0x61, 0x1a, 0xa2, 0x74, 0xf5, 0x7c, 0x32, 0x72, 0xd1, 0x21, + 0x01, 0xdb, 0xb5, 0x82, 0x12, 0x9c, 0xd8, 0x41, 0xa8, 0x3d, 0x3a, 0x08, 0x4c, 0xd1, 0x55, 0xd3, + 0xff, 0x6c, 0x57, 0x4d, 0xa7, 0xcb, 0xde, 0xb5, 0x41, 0x96, 0x3d, 0x32, 0x76, 0xb2, 0xda, 0x3e, + 0x1c, 0x51, 0xdb, 0x6f, 0xc1, 0x54, 0x17, 0xd1, 0xc0, 0x35, 0xf6, 0xb3, 0x0a, 0x64, 0x7b, 0x19, + 0x27, 0xa6, 0xd2, 0x25, 0xa4, 0x4a, 0x77, 0x2b, 0x6c, 0xc1, 0x73, 0xbd, 0x9d, 0xd0, 0xe5, 0xeb, + 0xaf, 0x29, 0x30, 0x13, 0xdd, 0x29, 0x46, 0xea, 0xf0, 0x0c, 0x8c, 0x34, 0x91, 0x77, 0xe4, 0xf0, + 0x6e, 0xe9, 0x42, 0xc4, 0x1a, 0x8c, 0xa7, 0xc3, 0xce, 0x66, 0x28, 0x71, 0x11, 0x57, 0x7b, 0xb5, + 0x7b, 0x54, 0x9b, 0x2e, 0x4d, 0x7f, 0x25, 0x01, 0xa7, 0x23, 0xc9, 0x23, 0x15, 0x7d, 0x14, 0xc0, + 0xb2, 0x5b, 0x1d, 0x8f, 0x76, 0x44, 0xb4, 0xc0, 0x8e, 0x91, 0x11, 0x52, 0xbc, 0x70, 0xf1, 0xec, + 0x78, 0xfe, 0xbc, 0x4a, 0xe6, 0x81, 0x0e, 0x11, 0x81, 0x1b, 0x81, 0xa2, 0x49, 0xa2, 0xe8, 0x5c, + 0x8f, 0x2b, 0xed, 0x0a, 0xcc, 0x4b, 0xa0, 0xd5, 0x1a, 0x16, 0xb2, 0xbd, 0xaa, 0xeb, 0xb5, 0x91, + 0xd9, 0xb4, 0xec, 0x43, 0xb2, 0x82, 0xa4, 0xf2, 0xc3, 0x07, 0x66, 0xc3, 0x45, 0xc6, 0x24, 0x9d, + 0xde, 0xe1, 0xb3, 0x18, 0x41, 0x02, 0xa8, 0x2d, 0x20, 0x46, 0x24, 0x04, 0x9d, 0xf6, 0x11, 0xb9, + 0xdf, 0x49, 0x41, 0x5a, 0xe8, 0xab, 0xf5, 0x73, 0x90, 0x79, 0xc9, 0x7c, 0xc5, 0xac, 0xf2, 0x7b, + 0x25, 0x6a, 0x89, 0x34, 0x1e, 0xdb, 0x66, 0xf7, 0x4b, 0x97, 0xe0, 0x14, 0x11, 0x71, 0x3a, 0x1e, + 0x6a, 0x57, 0x6b, 0x0d, 0xd3, 0x75, 0x89, 0xd1, 0x52, 0x44, 0x54, 0xc7, 0x73, 0x5b, 0x78, 0xaa, + 0xc4, 0x67, 0xf4, 0xab, 0x30, 0x4d, 0x10, 0xcd, 0x4e, 0xc3, 0xb3, 0x5a, 0x0d, 0x54, 0xc5, 0x77, + 0x6f, 0x2e, 0x59, 0x49, 0x7c, 0xcd, 0xa6, 0xb0, 0xc4, 0x26, 0x13, 0xc0, 0x1a, 0xb9, 0xfa, 0x2a, + 0x3c, 0x4a, 0x60, 0x87, 0xc8, 0x46, 0x6d, 0xd3, 0x43, 0x55, 0xf4, 0x8b, 0x1d, 0xb3, 0xe1, 0x56, + 0x4d, 0xbb, 0x5e, 0x3d, 0x32, 0xdd, 0xa3, 0xec, 0x29, 0x4c, 0x50, 0x4c, 0x64, 0x15, 0xe3, 0x61, + 0x2c, 0x78, 0x9b, 0xc9, 0x95, 0x89, 0x58, 0xc1, 0xae, 0x3f, 0x67, 0xba, 0x47, 0x7a, 0x1e, 0x66, + 0x08, 0x8b, 0xeb, 0xb5, 0x2d, 0xfb, 0xb0, 0x5a, 0x3b, 0x42, 0xb5, 0x97, 0xab, 0x1d, 0xef, 0xe0, + 0x46, 0xf6, 0x11, 0xf1, 0xfc, 0x44, 0xc3, 0x1d, 0x22, 0x53, 0xc2, 0x22, 0x7b, 0xde, 0xc1, 0x0d, + 0x7d, 0x07, 0x32, 0xd8, 0x19, 0x4d, 0xeb, 0x75, 0x54, 0x3d, 0x70, 0xda, 0x64, 0x69, 0x9c, 0x88, + 0x28, 0x4d, 0x82, 0x05, 0x97, 0xb6, 0x18, 0x60, 0xd3, 0xa9, 0xa3, 0xfc, 0xf0, 0xce, 0x76, 0xb9, + 0xbc, 0x6a, 0xa4, 0x39, 0xcb, 0x9a, 0xd3, 0xc6, 0x01, 0x75, 0xe8, 0xf8, 0x06, 0x4e, 0xd3, 0x80, + 0x3a, 0x74, 0xb8, 0x79, 0xaf, 0xc2, 0x74, 0xad, 0x46, 0xaf, 0xd9, 0xaa, 0x55, 0xd9, 0x3d, 0x96, + 0x9b, 0xd5, 0x24, 0x63, 0xd5, 0x6a, 0xb7, 0xa9, 0x00, 0x8b, 0x71, 0x57, 0xbf, 0x09, 0xa7, 0x03, + 0x63, 0x89, 0xc0, 0xa9, 0xae, 0xab, 0x0c, 0x43, 0xaf, 0xc2, 0x74, 0xeb, 0xb8, 0x1b, 0xa8, 0x4b, + 0x67, 0x6c, 0x1d, 0x87, 0x61, 0xd7, 0xe1, 0x54, 0xeb, 0xa8, 0xd5, 0x8d, 0x5b, 0x14, 0x71, 0x7a, + 0xeb, 0xa8, 0x15, 0x06, 0x3e, 0x4e, 0x6e, 0xb8, 0xdb, 0xa8, 0x66, 0x7a, 0xa8, 0x9e, 0x7d, 0x48, + 0x14, 0x17, 0x26, 0xf4, 0x8b, 0xa0, 0xd5, 0x6a, 0x55, 0x64, 0x9b, 0xfb, 0x0d, 0x54, 0x35, 0xdb, + 0xc8, 0x36, 0xdd, 0xec, 0xbc, 0x28, 0x3c, 0x51, 0xab, 0x95, 0xc9, 0x6c, 0x81, 0x4c, 0xea, 0x8b, + 0x30, 0xe5, 0xec, 0xbf, 0x54, 0xa3, 0x21, 0x59, 0x6d, 0xb5, 0xd1, 0x81, 0xf5, 0x5a, 0xf6, 0x3c, + 0xb1, 0xef, 0x24, 0x9e, 0x20, 0x01, 0xb9, 0x4d, 0x86, 0xf5, 0x27, 0x41, 0xab, 0xb9, 0x47, 0x66, + 0xbb, 0x45, 0x6a, 0xb2, 0xdb, 0x32, 0x6b, 0x28, 0xfb, 0x38, 0x15, 0xa5, 0xe3, 0x15, 0x3e, 0x8c, + 0x53, 0xc2, 0x7d, 0xd5, 0x3a, 0xf0, 0x38, 0xe3, 0x13, 0x34, 0x25, 0xc8, 0x18, 0x63, 0x5b, 0x00, + 0x0d, 0x9b, 0x42, 0x3a, 0xf1, 0x02, 0x11, 0x9b, 0x68, 0x1d, 0xb5, 0xc4, 0xf3, 0x3e, 0x06, 0xe3, + 0x58, 0x32, 0x38, 0xe9, 0x93, 0xb4, 0x21, 0x6b, 0x1d, 0x09, 0x67, 0xfc, 0xd0, 0x7a, 0xe3, 0x5c, + 0x1e, 0x32, 0x62, 0x7c, 0xea, 0x63, 0x40, 0x23, 0x54, 0x53, 0x70, 0xb3, 0x52, 0xda, 0x5a, 0xc5, + 0x6d, 0xc6, 0x67, 0xca, 0x5a, 0x02, 0xb7, 0x3b, 0x1b, 0xeb, 0xbb, 0xe5, 0xaa, 0xb1, 0x57, 0xd9, + 0x5d, 0xdf, 0x2c, 0x6b, 0xaa, 0xd8, 0x57, 0x7f, 0x3b, 0x01, 0x13, 0xf2, 0x2d, 0x92, 0xfe, 0x09, + 0x78, 0x88, 0xef, 0x67, 0xb8, 0xc8, 0xab, 0xbe, 0x6a, 0xb5, 0x49, 0xca, 0x34, 0x4d, 0xba, 0x7c, + 0xf9, 0x4e, 0x3b, 0xc5, 0xa4, 0x76, 0x90, 0xf7, 0xbc, 0xd5, 0xc6, 0x09, 0xd1, 0x34, 0x3d, 0x7d, + 0x03, 0xe6, 0x6d, 0xa7, 0xea, 0x7a, 0xa6, 0x5d, 0x37, 0xdb, 0xf5, 0x6a, 0xb0, 0x93, 0x54, 0x35, + 0x6b, 0x35, 0xe4, 0xba, 0x0e, 0x5d, 0xaa, 0x7c, 0x96, 0x33, 0xb6, 0xb3, 0xc3, 0x84, 0x83, 0x1a, + 0x5e, 0x60, 0xa2, 0xa1, 0x00, 0x53, 0x7b, 0x05, 0xd8, 0x23, 0x30, 0xd6, 0x34, 0x5b, 0x55, 0x64, + 0x7b, 0xed, 0x63, 0xd2, 0x18, 0xa7, 0x8c, 0x54, 0xd3, 0x6c, 0x95, 0xf1, 0xf1, 0x4f, 0xe7, 0xfe, + 0xe4, 0xbf, 0xaa, 0x90, 0x11, 0x9b, 0x63, 0x7c, 0xaf, 0x51, 0x23, 0xeb, 0x88, 0x42, 0x2a, 0xcd, + 0x63, 0x7d, 0x5b, 0xe9, 0xa5, 0x12, 0x5e, 0x60, 0xf2, 0x23, 0xb4, 0x65, 0x35, 0x28, 0x12, 0x2f, + 0xee, 0xb8, 0xb6, 0x20, 0xda, 0x22, 0xa4, 0x0c, 0x76, 0xa4, 0xdf, 0x86, 0x91, 0x97, 0x5c, 0xc2, + 0x3d, 0x42, 0xb8, 0xcf, 0xf7, 0xe7, 0xbe, 0xb3, 0x43, 0xc8, 0xc7, 0xee, 0xec, 0x54, 0x2b, 0x5b, + 0xc6, 0x66, 0x61, 0xc3, 0x60, 0x70, 0xfd, 0x61, 0x48, 0x36, 0xcc, 0xd7, 0x8f, 0xe5, 0xa5, 0x88, + 0x0c, 0x0d, 0x6a, 0xf8, 0x87, 0x21, 0xf9, 0x2a, 0x32, 0x5f, 0x96, 0x17, 0x00, 0x32, 0xf4, 0x21, + 0x86, 0xfe, 0x45, 0x18, 0x26, 0xf6, 0xd2, 0x01, 0x98, 0xc5, 0xb4, 0x21, 0x3d, 0x05, 0xc9, 0xd2, + 0x96, 0x81, 0xc3, 0x5f, 0x83, 0x0c, 0x1d, 0xad, 0x6e, 0xaf, 0x97, 0x4b, 0x65, 0x2d, 0x91, 0xbb, + 0x0a, 0x23, 0xd4, 0x08, 0x38, 0x35, 0x7c, 0x33, 0x68, 0x43, 0xec, 0x90, 0x71, 0x28, 0x7c, 0x76, + 0x6f, 0xb3, 0x58, 0x36, 0xb4, 0x84, 0xe8, 0x5e, 0x17, 0x32, 0x62, 0x5f, 0xfc, 0xd3, 0x89, 0xa9, + 0xdf, 0x57, 0x20, 0x2d, 0xf4, 0xb9, 0xb8, 0x41, 0x31, 0x1b, 0x0d, 0xe7, 0xd5, 0xaa, 0xd9, 0xb0, + 0x4c, 0x97, 0x05, 0x05, 0x90, 0xa1, 0x02, 0x1e, 0x19, 0xd4, 0x69, 0x3f, 0x15, 0xe5, 0xbf, 0xac, + 0x80, 0x16, 0x6e, 0x31, 0x43, 0x0a, 0x2a, 0x3f, 0x53, 0x05, 0xbf, 0xa8, 0xc0, 0x84, 0xdc, 0x57, + 0x86, 0xd4, 0x3b, 0xf7, 0x33, 0x55, 0xef, 0xbb, 0x09, 0x18, 0x97, 0xba, 0xc9, 0x41, 0xb5, 0xfb, + 0x45, 0x98, 0xb2, 0xea, 0xa8, 0xd9, 0x72, 0x3c, 0x64, 0xd7, 0x8e, 0xab, 0x0d, 0xf4, 0x0a, 0x6a, + 0x64, 0x73, 0xa4, 0x50, 0x5c, 0xec, 0xdf, 0xaf, 0x2e, 0xad, 0x07, 0xb8, 0x0d, 0x0c, 0xcb, 0x4f, + 0xaf, 0xaf, 0x96, 0x37, 0xb7, 0xb7, 0x76, 0xcb, 0x95, 0xd2, 0xdd, 0xea, 0x5e, 0xe5, 0x93, 0x95, + 0xad, 0xe7, 0x2b, 0x86, 0x66, 0x85, 0xc4, 0x3e, 0xc4, 0x54, 0xdf, 0x06, 0x2d, 0xac, 0x94, 0xfe, + 0x10, 0x44, 0xa9, 0xa5, 0x0d, 0xe9, 0xd3, 0x30, 0x59, 0xd9, 0xaa, 0xee, 0xac, 0xaf, 0x96, 0xab, + 0xe5, 0xb5, 0xb5, 0x72, 0x69, 0x77, 0x87, 0xee, 0x40, 0xf8, 0xd2, 0xbb, 0x72, 0x52, 0x7f, 0x41, + 0x85, 0xe9, 0x08, 0x4d, 0xf4, 0x02, 0xbb, 0x77, 0xa0, 0xb7, 0x33, 0x4f, 0x0d, 0xa2, 0xfd, 0x12, + 0x5e, 0xf2, 0xb7, 0xcd, 0xb6, 0xc7, 0x6e, 0x35, 0x9e, 0x04, 0x6c, 0x25, 0xdb, 0xb3, 0x0e, 0x2c, + 0xd4, 0x66, 0x1b, 0x36, 0xf4, 0x86, 0x62, 0x32, 0x18, 0xa7, 0x7b, 0x36, 0x1f, 0x07, 0xbd, 0xe5, + 0xb8, 0x96, 0x67, 0xbd, 0x82, 0xaa, 0x96, 0xcd, 0x77, 0x77, 0xf0, 0x0d, 0x46, 0xd2, 0xd0, 0xf8, + 0xcc, 0xba, 0xed, 0xf9, 0xd2, 0x36, 0x3a, 0x34, 0x43, 0xd2, 0xb8, 0x80, 0xab, 0x86, 0xc6, 0x67, + 0x7c, 0xe9, 0x73, 0x90, 0xa9, 0x3b, 0x1d, 0xdc, 0x75, 0x51, 0x39, 0xbc, 0x5e, 0x28, 0x46, 0x9a, + 0x8e, 0xf9, 0x22, 0xac, 0x9f, 0x0e, 0xb6, 0x95, 0x32, 0x46, 0x9a, 0x8e, 0x51, 0x91, 0x27, 0x60, + 0xd2, 0x3c, 0x3c, 0x6c, 0x63, 0x72, 0x4e, 0x44, 0xef, 0x10, 0x26, 0xfc, 0x61, 0x22, 0x38, 0x7b, + 0x07, 0x52, 0xdc, 0x0e, 0x78, 0x49, 0xc6, 0x96, 0xa8, 0xb6, 0xe8, 0x6d, 0x6f, 0x62, 0x61, 0xcc, + 0x48, 0xd9, 0x7c, 0xf2, 0x1c, 0x64, 0x2c, 0xb7, 0x1a, 0xec, 0x92, 0x27, 0xce, 0x26, 0x16, 0x52, + 0x46, 0xda, 0x72, 0xfd, 0x1d, 0xc6, 0xdc, 0xd7, 0x12, 0x30, 0x21, 0xef, 0xf2, 0xeb, 0xab, 0x90, + 0x6a, 0x38, 0x35, 0x93, 0x84, 0x16, 0x7d, 0xc4, 0xb4, 0x10, 0xf3, 0x60, 0x60, 0x69, 0x83, 0xc9, + 0x1b, 0x3e, 0x72, 0xf6, 0x3f, 0x2a, 0x90, 0xe2, 0xc3, 0xfa, 0x0c, 0x24, 0x5b, 0xa6, 0x77, 0x44, + 0xe8, 0x86, 0x8b, 0x09, 0x4d, 0x31, 0xc8, 0x31, 0x1e, 0x77, 0x5b, 0xa6, 0x4d, 0x42, 0x80, 0x8d, + 0xe3, 0x63, 0xec, 0xd7, 0x06, 0x32, 0xeb, 0xe4, 0xf6, 0xc3, 0x69, 0x36, 0x91, 0xed, 0xb9, 0xdc, + 0xaf, 0x6c, 0xbc, 0xc4, 0x86, 0xf5, 0x8f, 0xc1, 0x94, 0xd7, 0x36, 0xad, 0x86, 0x24, 0x9b, 0x24, + 0xb2, 0x1a, 0x9f, 0xf0, 0x85, 0xf3, 0xf0, 0x30, 0xe7, 0xad, 0x23, 0xcf, 0xac, 0x1d, 0xa1, 0x7a, + 0x00, 0x1a, 0x21, 0xdb, 0x0c, 0x0f, 0x31, 0x81, 0x55, 0x36, 0xcf, 0xb1, 0xb9, 0x3f, 0x54, 0x60, + 0x8a, 0xdf, 0x30, 0xd5, 0x7d, 0x63, 0x6d, 0x02, 0x98, 0xb6, 0xed, 0x78, 0xa2, 0xb9, 0xba, 0x43, + 0xb9, 0x0b, 0xb7, 0x54, 0xf0, 0x41, 0x86, 0x40, 0x30, 0xdb, 0x04, 0x08, 0x66, 0x7a, 0x9a, 0x6d, + 0x1e, 0xd2, 0xec, 0x11, 0x0e, 0x79, 0x0e, 0x48, 0x6f, 0xb1, 0x81, 0x0e, 0xe1, 0x3b, 0x2b, 0xfd, + 0x14, 0x0c, 0xef, 0xa3, 0x43, 0xcb, 0x66, 0x1b, 0xb3, 0xf4, 0x80, 0x6f, 0x84, 0x24, 0xfd, 0x8d, + 0x90, 0xe2, 0x8b, 0x30, 0x5d, 0x73, 0x9a, 0x61, 0x75, 0x8b, 0x5a, 0xe8, 0x36, 0xdf, 0x7d, 0x4e, + 0xf9, 0x0c, 0x04, 0x2d, 0xe6, 0x8f, 0x15, 0xe5, 0x1f, 0x24, 0xd4, 0xdb, 0xdb, 0xc5, 0xdf, 0x4a, + 0xcc, 0xde, 0xa6, 0xd0, 0x6d, 0x7e, 0xa5, 0x06, 0x3a, 0x68, 0xa0, 0x1a, 0xd6, 0x1e, 0x7e, 0xed, + 0x09, 0x78, 0xea, 0xd0, 0xf2, 0x8e, 0x3a, 0xfb, 0x4b, 0x35, 0xa7, 0x79, 0xf1, 0xd0, 0x39, 0x74, + 0x82, 0x47, 0x9f, 0xf8, 0x88, 0x1c, 0x90, 0x4f, 0xec, 0xf1, 0xe7, 0x98, 0x3f, 0x3a, 0x1b, 0xfb, + 0xac, 0x34, 0x5f, 0x81, 0x69, 0x26, 0x5c, 0x25, 0xcf, 0x5f, 0xe8, 0x5d, 0x84, 0xde, 0x77, 0x0f, + 0x2b, 0xfb, 0xdb, 0xdf, 0x23, 0xcb, 0xb5, 0x31, 0xc5, 0xa0, 0x78, 0x8e, 0xde, 0x68, 0xe4, 0x0d, + 0x38, 0x2d, 0xf1, 0xd1, 0xd4, 0x44, 0xed, 0x18, 0xc6, 0x6f, 0x33, 0xc6, 0x69, 0x81, 0x71, 0x87, + 0x41, 0xf3, 0x25, 0x18, 0x3f, 0x09, 0xd7, 0xbf, 0x63, 0x5c, 0x19, 0x24, 0x92, 0xdc, 0x86, 0x49, + 0x42, 0x52, 0xeb, 0xb8, 0x9e, 0xd3, 0x24, 0x75, 0xaf, 0x3f, 0xcd, 0xbf, 0xff, 0x1e, 0xcd, 0x95, + 0x09, 0x0c, 0x2b, 0xf9, 0xa8, 0x7c, 0x1e, 0xc8, 0x23, 0xa7, 0x3a, 0xaa, 0x35, 0x62, 0x18, 0xee, + 0x31, 0x45, 0x7c, 0xf9, 0xfc, 0xa7, 0xe1, 0x14, 0xfe, 0x4c, 0xca, 0x92, 0xa8, 0x49, 0xfc, 0x86, + 0x57, 0xf6, 0x0f, 0x3f, 0x4b, 0xd3, 0x71, 0xda, 0x27, 0x10, 0x74, 0x12, 0xbc, 0x78, 0x88, 0x3c, + 0x0f, 0xb5, 0xdd, 0xaa, 0xd9, 0x88, 0x52, 0x4f, 0xd8, 0x31, 0xc8, 0xfe, 0xfa, 0x0f, 0x64, 0x2f, + 0xde, 0xa6, 0xc8, 0x42, 0xa3, 0x91, 0xdf, 0x83, 0x87, 0x22, 0xa2, 0x62, 0x00, 0xce, 0x2f, 0x30, + 0xce, 0x53, 0x5d, 0x91, 0x81, 0x69, 0xb7, 0x81, 0x8f, 0xfb, 0xbe, 0x1c, 0x80, 0xf3, 0xef, 0x33, + 0x4e, 0x9d, 0x61, 0xb9, 0x4b, 0x31, 0xe3, 0x1d, 0x98, 0x7a, 0x05, 0xb5, 0xf7, 0x1d, 0x97, 0xed, + 0xd2, 0x0c, 0x40, 0xf7, 0x45, 0x46, 0x37, 0xc9, 0x80, 0x64, 0xdb, 0x06, 0x73, 0xdd, 0x84, 0xd4, + 0x81, 0x59, 0x43, 0x03, 0x50, 0x7c, 0x89, 0x51, 0x8c, 0x62, 0x79, 0x0c, 0x2d, 0x40, 0xe6, 0xd0, + 0x61, 0x2b, 0x53, 0x3c, 0xfc, 0xcb, 0x0c, 0x9e, 0xe6, 0x18, 0x46, 0xd1, 0x72, 0x5a, 0x9d, 0x06, + 0x5e, 0xb6, 0xe2, 0x29, 0xbe, 0xc2, 0x29, 0x38, 0x86, 0x51, 0x9c, 0xc0, 0xac, 0x6f, 0x72, 0x0a, + 0x57, 0xb0, 0xe7, 0xb3, 0x90, 0x76, 0xec, 0xc6, 0xb1, 0x63, 0x0f, 0xa2, 0xc4, 0x57, 0x19, 0x03, + 0x30, 0x08, 0x26, 0xb8, 0x05, 0x63, 0x83, 0x3a, 0xe2, 0x37, 0x7e, 0xc0, 0xd3, 0x83, 0x7b, 0xe0, + 0x36, 0x4c, 0xf2, 0x02, 0x65, 0x39, 0xf6, 0x00, 0x14, 0xff, 0x88, 0x51, 0x4c, 0x08, 0x30, 0x76, + 0x19, 0x1e, 0x72, 0xbd, 0x43, 0x34, 0x08, 0xc9, 0xd7, 0xf8, 0x65, 0x30, 0x08, 0x33, 0xe5, 0x3e, + 0xb2, 0x6b, 0x47, 0x83, 0x31, 0x7c, 0x9d, 0x9b, 0x92, 0x63, 0x30, 0x45, 0x09, 0xc6, 0x9b, 0x66, + 0xdb, 0x3d, 0x32, 0x1b, 0x03, 0xb9, 0xe3, 0x37, 0x19, 0x47, 0xc6, 0x07, 0x31, 0x8b, 0x74, 0xec, + 0x93, 0xd0, 0xfc, 0x16, 0xb7, 0x88, 0x00, 0x63, 0xa9, 0xe7, 0x7a, 0x64, 0x4b, 0xeb, 0x24, 0x6c, + 0xff, 0x98, 0xa7, 0x1e, 0xc5, 0x6e, 0x8a, 0x8c, 0xb7, 0x60, 0xcc, 0xb5, 0x5e, 0x1f, 0x88, 0xe6, + 0x9f, 0x70, 0x4f, 0x13, 0x00, 0x06, 0xdf, 0x85, 0x87, 0x23, 0x97, 0x89, 0x01, 0xc8, 0xfe, 0x29, + 0x23, 0x9b, 0x89, 0x58, 0x2a, 0x58, 0x49, 0x38, 0x29, 0xe5, 0x3f, 0xe3, 0x25, 0x01, 0x85, 0xb8, + 0xb6, 0xf1, 0xbd, 0x82, 0x6b, 0x1e, 0x9c, 0xcc, 0x6a, 0xff, 0x9c, 0x5b, 0x8d, 0x62, 0x25, 0xab, + 0xed, 0xc2, 0x0c, 0x63, 0x3c, 0x99, 0x5f, 0xbf, 0xc1, 0x0b, 0x2b, 0x45, 0xef, 0xc9, 0xde, 0x7d, + 0x11, 0x66, 0x7d, 0x73, 0xf2, 0xa6, 0xd4, 0xad, 0x36, 0xcd, 0xd6, 0x00, 0xcc, 0xbf, 0xcd, 0x98, + 0x79, 0xc5, 0xf7, 0xbb, 0x5a, 0x77, 0xd3, 0x6c, 0x61, 0xf2, 0x17, 0x20, 0xcb, 0xc9, 0x3b, 0x76, + 0x1b, 0xd5, 0x9c, 0x43, 0xdb, 0x7a, 0x1d, 0xd5, 0x07, 0xa0, 0xfe, 0x66, 0xc8, 0x55, 0x7b, 0x02, + 0x1c, 0x33, 0xaf, 0x83, 0xe6, 0xf7, 0x2a, 0x55, 0xab, 0xd9, 0x72, 0xda, 0x5e, 0x0c, 0xe3, 0xef, + 0x70, 0x4f, 0xf9, 0xb8, 0x75, 0x02, 0xcb, 0x97, 0x61, 0x82, 0x1c, 0x0e, 0x1a, 0x92, 0xbf, 0xcb, + 0x88, 0xc6, 0x03, 0x14, 0x2b, 0x1c, 0x35, 0xa7, 0xd9, 0x32, 0xdb, 0x83, 0xd4, 0xbf, 0x7f, 0xc1, + 0x0b, 0x07, 0x83, 0xb0, 0xc2, 0xe1, 0x1d, 0xb7, 0x10, 0x5e, 0xed, 0x07, 0x60, 0xf8, 0x16, 0x2f, + 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, 0x30, 0x00, 0xc5, 0xbf, 0xe4, 0x14, 0x1c, 0x83, 0x29, 0x3e, + 0x15, 0x2c, 0xb4, 0x6d, 0x74, 0x68, 0xb9, 0x5e, 0x9b, 0xb6, 0xc2, 0xfd, 0xa9, 0x7e, 0xef, 0x07, + 0x72, 0x13, 0x66, 0x08, 0xd0, 0xfc, 0x1d, 0x98, 0x0c, 0xb5, 0x18, 0x7a, 0xdc, 0xfb, 0x2b, 0xd9, + 0xbf, 0xf8, 0x23, 0x56, 0x8c, 0xe4, 0x0e, 0x23, 0xbf, 0x81, 0xfd, 0x2e, 0xf7, 0x01, 0xf1, 0x64, + 0x9f, 0xfd, 0x91, 0xef, 0x7a, 0xa9, 0x0d, 0xc8, 0xaf, 0xc1, 0xb8, 0xd4, 0x03, 0xc4, 0x53, 0xfd, + 0x25, 0x46, 0x95, 0x11, 0x5b, 0x80, 0xfc, 0x55, 0x48, 0xe2, 0xf5, 0x3c, 0x1e, 0xfe, 0x97, 0x19, + 0x9c, 0x88, 0xe7, 0x9f, 0x86, 0x14, 0x5f, 0xc7, 0xe3, 0xa1, 0xbf, 0xcc, 0xa0, 0x3e, 0x04, 0xc3, + 0xf9, 0x1a, 0x1e, 0x0f, 0xff, 0x2b, 0x1c, 0xce, 0x21, 0x18, 0x3e, 0xb8, 0x09, 0xdf, 0xfa, 0x6b, + 0x49, 0x56, 0x87, 0xb9, 0xed, 0x6e, 0xc1, 0x28, 0x5b, 0xbc, 0xe3, 0xd1, 0xbf, 0xc2, 0x4e, 0xce, + 0x11, 0xf9, 0xeb, 0x30, 0x3c, 0xa0, 0xc1, 0xff, 0x3a, 0x83, 0x52, 0xf9, 0x7c, 0x09, 0xd2, 0xc2, + 0x82, 0x1d, 0x0f, 0xff, 0x1b, 0x0c, 0x2e, 0xa2, 0xb0, 0xea, 0x6c, 0xc1, 0x8e, 0x27, 0xf8, 0x9b, + 0x5c, 0x75, 0x86, 0xc0, 0x66, 0xe3, 0x6b, 0x75, 0x3c, 0xfa, 0x6f, 0x71, 0xab, 0x73, 0x48, 0xfe, + 0x59, 0x18, 0xf3, 0xeb, 0x6f, 0x3c, 0xfe, 0x6f, 0x33, 0x7c, 0x80, 0xc1, 0x16, 0x10, 0xea, 0x7f, + 0x3c, 0xc5, 0xdf, 0xe1, 0x16, 0x10, 0x50, 0x38, 0x8d, 0xc2, 0x6b, 0x7a, 0x3c, 0xd3, 0xaf, 0xf2, + 0x34, 0x0a, 0x2d, 0xe9, 0xd8, 0x9b, 0xa4, 0x0c, 0xc6, 0x53, 0xfc, 0x5d, 0xee, 0x4d, 0x22, 0x8f, + 0xd5, 0x08, 0x2f, 0x92, 0xf1, 0x1c, 0xbf, 0xc6, 0xd5, 0x08, 0xad, 0x91, 0xf9, 0x6d, 0xd0, 0xbb, + 0x17, 0xc8, 0x78, 0xbe, 0xcf, 0x33, 0xbe, 0xa9, 0xae, 0xf5, 0x31, 0xff, 0x3c, 0xcc, 0x44, 0x2f, + 0x8e, 0xf1, 0xac, 0xbf, 0xfe, 0xa3, 0xd0, 0xed, 0x8c, 0xb8, 0x36, 0xe6, 0x77, 0x83, 0x2a, 0x2b, + 0x2e, 0x8c, 0xf1, 0xb4, 0x5f, 0xf8, 0x91, 0x5c, 0x68, 0xc5, 0x75, 0x31, 0x5f, 0x00, 0x08, 0xd6, + 0xa4, 0x78, 0xae, 0x2f, 0x32, 0x2e, 0x01, 0x84, 0x53, 0x83, 0x2d, 0x49, 0xf1, 0xf8, 0x2f, 0xf1, + 0xd4, 0x60, 0x08, 0x9c, 0x1a, 0x7c, 0x35, 0x8a, 0x47, 0x7f, 0x99, 0xa7, 0x06, 0x87, 0xe4, 0x6f, + 0x41, 0xca, 0xee, 0x34, 0x1a, 0x38, 0xb6, 0xf4, 0xfe, 0xaf, 0x64, 0x65, 0xff, 0xc7, 0x4f, 0x18, + 0x98, 0x03, 0xf2, 0x57, 0x61, 0x18, 0x35, 0xf7, 0x51, 0x3d, 0x0e, 0xf9, 0x3f, 0x7f, 0xc2, 0xeb, + 0x09, 0x96, 0xce, 0x3f, 0x0b, 0x40, 0x6f, 0xa6, 0xc9, 0x83, 0xa2, 0x18, 0xec, 0xff, 0xfa, 0x09, + 0x7b, 0x59, 0x22, 0x80, 0x04, 0x04, 0xf4, 0xd5, 0x8b, 0xfe, 0x04, 0x3f, 0x90, 0x09, 0xc8, 0x0d, + 0xf8, 0x4d, 0x18, 0x7d, 0xc9, 0x75, 0x6c, 0xcf, 0x3c, 0x8c, 0x43, 0xff, 0x6f, 0x86, 0xe6, 0xf2, + 0xd8, 0x60, 0x4d, 0xa7, 0x8d, 0x3c, 0xf3, 0xd0, 0x8d, 0xc3, 0xfe, 0x1f, 0x86, 0xf5, 0x01, 0x18, + 0x5c, 0x33, 0x5d, 0x6f, 0x90, 0xeb, 0xfe, 0x23, 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x32, + 0x3a, 0x8e, 0xc3, 0xfe, 0x90, 0x2b, 0xcd, 0xe4, 0xf3, 0x4f, 0xc3, 0x18, 0xfe, 0x48, 0xdf, 0x80, + 0x8a, 0x01, 0xff, 0x5f, 0x06, 0x0e, 0x10, 0xf8, 0xcc, 0xae, 0x57, 0xf7, 0xac, 0x78, 0x63, 0xff, + 0x31, 0xf3, 0x34, 0x97, 0xcf, 0x17, 0x20, 0xed, 0x7a, 0xf5, 0x7a, 0x87, 0x75, 0x34, 0x31, 0xf0, + 0xff, 0xf7, 0x13, 0xff, 0x26, 0xd7, 0xc7, 0x14, 0xcb, 0xd1, 0xfb, 0x75, 0x70, 0xdb, 0xb9, 0xed, + 0xd0, 0x9d, 0xba, 0xcf, 0xe4, 0xe2, 0xb7, 0xdc, 0xe0, 0xbf, 0x35, 0xe0, 0x7a, 0x4f, 0x31, 0xbc, + 0xd0, 0x5c, 0xac, 0x39, 0xcd, 0x7d, 0xc7, 0xbd, 0xb8, 0xef, 0x78, 0x47, 0x17, 0xbd, 0x23, 0x84, + 0xc7, 0xd8, 0x1e, 0x5d, 0x12, 0x7f, 0x9e, 0x3d, 0xd9, 0xc6, 0x1e, 0x79, 0x6c, 0x5b, 0xb1, 0xf0, + 0xb5, 0x55, 0xc8, 0xce, 0xb9, 0x7e, 0x06, 0x46, 0xc8, 0xd5, 0x5e, 0x26, 0x4f, 0xa7, 0x94, 0x62, + 0xf2, 0xde, 0x3b, 0xf3, 0x43, 0x06, 0x1b, 0xf3, 0x67, 0x97, 0xc9, 0xd6, 0x66, 0x42, 0x9a, 0x5d, + 0xf6, 0x67, 0xaf, 0xd0, 0xdd, 0x4d, 0x69, 0xf6, 0x8a, 0x3f, 0xbb, 0x42, 0xf6, 0x39, 0x55, 0x69, + 0x76, 0xc5, 0x9f, 0xbd, 0x4a, 0xf6, 0xf2, 0xc7, 0xa5, 0xd9, 0xab, 0xfe, 0xec, 0x35, 0xb2, 0x83, + 0x9f, 0x94, 0x66, 0xaf, 0xf9, 0xb3, 0xd7, 0xc9, 0xe6, 0xfd, 0x94, 0x34, 0x7b, 0xdd, 0x9f, 0xbd, + 0x41, 0x36, 0xed, 0x75, 0x69, 0xf6, 0x86, 0x3f, 0x7b, 0x93, 0xbc, 0x11, 0x33, 0x2a, 0xcd, 0xde, + 0xd4, 0xe7, 0x60, 0x94, 0x5e, 0xf9, 0x25, 0xf2, 0x84, 0x77, 0x92, 0x4d, 0xf3, 0xc1, 0x60, 0xfe, + 0x32, 0x79, 0xfb, 0x65, 0x44, 0x9e, 0xbf, 0x1c, 0xcc, 0x2f, 0x93, 0x17, 0xf1, 0x35, 0x79, 0x7e, + 0x39, 0x98, 0xbf, 0x92, 0x1d, 0x27, 0x6f, 0x00, 0x49, 0xf3, 0x57, 0x82, 0xf9, 0x95, 0xec, 0x04, + 0x0e, 0x78, 0x79, 0x7e, 0x25, 0x98, 0xbf, 0x9a, 0x9d, 0x3c, 0xab, 0x2c, 0x64, 0xe4, 0xf9, 0xab, + 0xb9, 0x5f, 0x22, 0xee, 0xb5, 0x03, 0xf7, 0xce, 0xc8, 0xee, 0xf5, 0x1d, 0x3b, 0x23, 0x3b, 0xd6, + 0x77, 0xe9, 0x8c, 0xec, 0x52, 0xdf, 0x99, 0x33, 0xb2, 0x33, 0x7d, 0x37, 0xce, 0xc8, 0x6e, 0xf4, + 0x1d, 0x38, 0x23, 0x3b, 0xd0, 0x77, 0xdd, 0x8c, 0xec, 0x3a, 0xdf, 0x69, 0x33, 0xb2, 0xd3, 0x7c, + 0x77, 0xcd, 0xc8, 0xee, 0xf2, 0x1d, 0x95, 0x0d, 0x39, 0x2a, 0x70, 0x51, 0x36, 0xe4, 0xa2, 0xc0, + 0x39, 0xd9, 0x90, 0x73, 0x02, 0xb7, 0x64, 0x43, 0x6e, 0x09, 0x1c, 0x92, 0x0d, 0x39, 0x24, 0x70, + 0x45, 0x36, 0xe4, 0x8a, 0xc0, 0x09, 0x2c, 0xc7, 0x0c, 0xd4, 0x8a, 0xc8, 0x31, 0xb5, 0x6f, 0x8e, + 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, + 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x7f, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, + 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xf6, 0xcc, 0xb1, 0xc0, + 0xbd, 0x33, 0xb2, 0x7b, 0x23, 0x73, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, + 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0xbd, + 0x72, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, + 0x9e, 0x39, 0xa6, 0x8a, 0x39, 0xf6, 0xaf, 0x55, 0xd0, 0x69, 0x8e, 0x6d, 0x93, 0x77, 0x84, 0x98, + 0x2b, 0xe6, 0x42, 0x99, 0x36, 0x82, 0x5d, 0xa7, 0x05, 0x2e, 0x99, 0x0b, 0xe5, 0x9a, 0x3c, 0xbf, + 0xec, 0xcf, 0xf3, 0x6c, 0x93, 0xe7, 0xaf, 0xf8, 0xf3, 0x3c, 0xdf, 0xe4, 0xf9, 0x15, 0x7f, 0x9e, + 0x67, 0x9c, 0x3c, 0x7f, 0xd5, 0x9f, 0xe7, 0x39, 0x27, 0xcf, 0x5f, 0xf3, 0xe7, 0x79, 0xd6, 0xc9, + 0xf3, 0xd7, 0xfd, 0x79, 0x9e, 0x77, 0xf2, 0xfc, 0x0d, 0x7f, 0x9e, 0x67, 0x9e, 0x3c, 0x7f, 0x53, + 0x3f, 0x1b, 0xce, 0x3d, 0x2e, 0xe0, 0xbb, 0xf6, 0x6c, 0x38, 0xfb, 0x42, 0x12, 0x97, 0x03, 0x09, + 0x9e, 0x7f, 0x21, 0x89, 0xe5, 0x40, 0x82, 0x67, 0x60, 0x48, 0xe2, 0x4a, 0xee, 0x73, 0xc4, 0x7d, + 0x76, 0xd8, 0x7d, 0xb3, 0x21, 0xf7, 0x25, 0x04, 0xd7, 0xcd, 0x86, 0x5c, 0x97, 0x10, 0xdc, 0x36, + 0x1b, 0x72, 0x5b, 0x42, 0x70, 0xd9, 0x6c, 0xc8, 0x65, 0x09, 0xc1, 0x5d, 0xb3, 0x21, 0x77, 0x25, + 0x04, 0x57, 0xcd, 0x86, 0x5c, 0x95, 0x10, 0xdc, 0x34, 0x1b, 0x72, 0x53, 0x42, 0x70, 0xd1, 0x6c, + 0xc8, 0x45, 0x09, 0xc1, 0x3d, 0xb3, 0x21, 0xf7, 0x24, 0x04, 0xd7, 0x9c, 0x09, 0xbb, 0x26, 0x21, + 0xba, 0xe5, 0x4c, 0xd8, 0x2d, 0x09, 0xd1, 0x25, 0x67, 0xc2, 0x2e, 0x49, 0x88, 0xee, 0x38, 0x13, + 0x76, 0x47, 0x42, 0x74, 0xc5, 0x9f, 0x24, 0x78, 0x47, 0xb8, 0xe3, 0xb5, 0x3b, 0x35, 0xef, 0x7d, + 0x75, 0x84, 0x97, 0xa4, 0xf6, 0x21, 0xbd, 0xac, 0x2f, 0x91, 0x86, 0x55, 0xec, 0x38, 0x43, 0x2b, + 0xd8, 0x25, 0xa9, 0xb1, 0x10, 0x10, 0x76, 0x34, 0x62, 0xe5, 0x7d, 0xf5, 0x86, 0x97, 0xa4, 0x36, + 0x23, 0x5e, 0xbf, 0x1b, 0x1f, 0x7a, 0xc7, 0xf6, 0x56, 0x82, 0x77, 0x6c, 0xcc, 0xfc, 0x27, 0xed, + 0xd8, 0x16, 0xe3, 0x4d, 0xee, 0x1b, 0x7b, 0x31, 0xde, 0xd8, 0x5d, 0xab, 0xce, 0xa0, 0x1d, 0xdc, + 0x62, 0xbc, 0x69, 0x7d, 0xa3, 0x7e, 0xb0, 0xfd, 0x16, 0x8b, 0x60, 0x03, 0xb5, 0x22, 0x22, 0xf8, + 0xa4, 0xfd, 0xd6, 0x25, 0xa9, 0x94, 0x9c, 0x34, 0x82, 0xd5, 0x13, 0x47, 0xf0, 0x49, 0x3b, 0xaf, + 0x4b, 0x52, 0x79, 0x39, 0x71, 0x04, 0x7f, 0x08, 0xfd, 0x10, 0x8b, 0xe0, 0xc0, 0xfc, 0x27, 0xed, + 0x87, 0x16, 0xe3, 0x4d, 0x1e, 0x19, 0xc1, 0xea, 0x09, 0x22, 0x78, 0x90, 0xfe, 0x68, 0x31, 0xde, + 0xb4, 0xd1, 0x11, 0xfc, 0xbe, 0xbb, 0x99, 0xaf, 0x28, 0x30, 0x55, 0xb1, 0xea, 0xe5, 0xe6, 0x3e, + 0xaa, 0xd7, 0x51, 0x9d, 0xd9, 0xf1, 0x92, 0x54, 0x09, 0x7a, 0xb8, 0xfa, 0xed, 0x77, 0xe6, 0x03, + 0x0b, 0x5f, 0x85, 0x14, 0xb5, 0xe9, 0xa5, 0x4b, 0xd9, 0x7b, 0x4a, 0x4c, 0x85, 0xf3, 0x45, 0xf5, + 0x73, 0x1c, 0x76, 0xf9, 0x52, 0xf6, 0x3f, 0x29, 0x42, 0x95, 0xf3, 0x87, 0x73, 0xbf, 0x4a, 0x34, + 0xb4, 0xdf, 0xb7, 0x86, 0x17, 0x07, 0xd2, 0x50, 0xd0, 0xed, 0x91, 0x2e, 0xdd, 0x04, 0xad, 0x3a, + 0x30, 0x59, 0xb1, 0xea, 0x15, 0xf2, 0x15, 0xf0, 0x41, 0x54, 0xa2, 0x32, 0xa1, 0x7a, 0x70, 0x49, + 0x0a, 0x4b, 0x11, 0xe1, 0x87, 0xb4, 0x5c, 0x23, 0x72, 0x16, 0x3e, 0xad, 0x2d, 0x9d, 0x76, 0xb1, + 0xd7, 0x69, 0x83, 0xca, 0xee, 0x9f, 0x70, 0xb1, 0xd7, 0x09, 0x83, 0x1c, 0xf2, 0x4f, 0xf5, 0x1a, + 0x5f, 0x9c, 0xe9, 0x9b, 0x3a, 0xfa, 0x19, 0x48, 0xac, 0xd3, 0x17, 0x89, 0x33, 0xc5, 0x0c, 0x56, + 0xea, 0x3b, 0xef, 0xcc, 0x27, 0xf7, 0x3a, 0x56, 0xdd, 0x48, 0xac, 0xd7, 0xf5, 0x3b, 0x30, 0xfc, + 0x69, 0xf6, 0x45, 0x44, 0x2c, 0xb0, 0xc2, 0x04, 0x3e, 0x1e, 0xb3, 0xc5, 0x44, 0xa8, 0x97, 0xf6, + 0x2c, 0xdb, 0xbb, 0xbc, 0x7c, 0xc3, 0xa0, 0x14, 0xb9, 0x3f, 0x03, 0x40, 0xcf, 0xb9, 0x6a, 0xba, + 0x47, 0x7a, 0x85, 0x33, 0xd3, 0x53, 0xdf, 0xf8, 0xce, 0x3b, 0xf3, 0x2b, 0x83, 0xb0, 0x3e, 0x55, + 0x37, 0xdd, 0xa3, 0xa7, 0xbc, 0xe3, 0x16, 0x5a, 0x2a, 0x1e, 0x7b, 0xc8, 0xe5, 0xec, 0x2d, 0xbe, + 0xea, 0xb1, 0xeb, 0xca, 0x0a, 0xd7, 0x95, 0x92, 0xae, 0x69, 0x4d, 0xbe, 0xa6, 0x4b, 0x0f, 0x7a, + 0x3d, 0xaf, 0xf1, 0x45, 0x22, 0x64, 0x49, 0x35, 0xce, 0x92, 0xea, 0xfb, 0xb5, 0x64, 0x8b, 0xd7, + 0xc7, 0xd0, 0xb5, 0xaa, 0xfd, 0xae, 0x55, 0x7d, 0x3f, 0xd7, 0xfa, 0xff, 0x69, 0xb6, 0xfa, 0xf9, + 0xb4, 0x67, 0xd3, 0x97, 0x18, 0x7f, 0xbe, 0xf6, 0x82, 0x3e, 0xd0, 0x2e, 0x20, 0x9f, 0xbc, 0xf7, + 0xe6, 0xbc, 0x92, 0xfb, 0x4a, 0x82, 0x5f, 0x39, 0x4d, 0xa4, 0x07, 0xbb, 0xf2, 0x9f, 0x97, 0x9e, + 0xea, 0xc3, 0xb0, 0xd0, 0x97, 0x15, 0x98, 0xe9, 0xaa, 0xe4, 0xd4, 0x4c, 0x1f, 0x6c, 0x39, 0xb7, + 0x4f, 0x5a, 0xce, 0x99, 0x82, 0xbf, 0xab, 0xc0, 0xa9, 0x50, 0x79, 0xa5, 0xea, 0x5d, 0x0c, 0xa9, + 0xf7, 0x50, 0xf7, 0x99, 0x88, 0xa0, 0xa0, 0x9d, 0xe8, 0xde, 0x10, 0x40, 0x60, 0xf6, 0xfd, 0xbe, + 0x12, 0xf2, 0xfb, 0x19, 0x1f, 0x10, 0x61, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x07, 0x92, 0xbb, 0x6d, + 0x84, 0xf4, 0x39, 0x48, 0x6c, 0xb5, 0x99, 0x86, 0x13, 0x14, 0xbf, 0xd5, 0x2e, 0xb6, 0x4d, 0xbb, + 0x76, 0x64, 0x24, 0xb6, 0xda, 0xfa, 0x39, 0x50, 0x0b, 0xec, 0x4b, 0xd0, 0xe9, 0xe5, 0x49, 0x2a, + 0x50, 0xb0, 0xeb, 0x4c, 0x02, 0xcf, 0xe9, 0x73, 0x90, 0xdc, 0x40, 0xe6, 0x01, 0x53, 0x02, 0xa8, + 0x0c, 0x1e, 0x31, 0xc8, 0x38, 0x3b, 0xe1, 0x0b, 0x90, 0xe2, 0xc4, 0xfa, 0x79, 0x8c, 0x38, 0xf0, + 0xd8, 0x69, 0x19, 0x02, 0xab, 0xc3, 0x56, 0x2e, 0x32, 0xab, 0x5f, 0x80, 0x61, 0xc3, 0x3a, 0x3c, + 0xf2, 0xd8, 0xc9, 0xbb, 0xc5, 0xe8, 0x74, 0xee, 0x2e, 0x8c, 0xf9, 0x1a, 0x7d, 0xc0, 0xd4, 0xab, + 0xf4, 0xd2, 0xf4, 0x59, 0x71, 0x3d, 0xe1, 0xfb, 0x96, 0x74, 0x48, 0x3f, 0x0b, 0xa9, 0x1d, 0xaf, + 0x1d, 0x14, 0x7d, 0xde, 0x91, 0xfa, 0xa3, 0xb9, 0x5f, 0x52, 0x20, 0xb5, 0x8a, 0x50, 0x8b, 0x18, + 0xfc, 0x71, 0x48, 0xae, 0x3a, 0xaf, 0xda, 0x4c, 0xc1, 0x29, 0x66, 0x51, 0x3c, 0xcd, 0x6c, 0x4a, + 0xa6, 0xf5, 0xc7, 0x45, 0xbb, 0x4f, 0xfb, 0x76, 0x17, 0xe4, 0x88, 0xed, 0x73, 0x92, 0xed, 0x99, + 0x03, 0xb1, 0x50, 0x97, 0xfd, 0xaf, 0x43, 0x5a, 0x38, 0x8b, 0xbe, 0xc0, 0xd4, 0x48, 0x84, 0x81, + 0xa2, 0xad, 0xb0, 0x44, 0x0e, 0xc1, 0xb8, 0x74, 0x62, 0x0c, 0x15, 0x4c, 0xdc, 0x03, 0x4a, 0xcc, + 0xbc, 0x28, 0x9b, 0x39, 0x5a, 0x94, 0x99, 0xfa, 0x12, 0xb5, 0x11, 0x31, 0xf7, 0x79, 0x1a, 0x9c, + 0xbd, 0x9d, 0x88, 0x3f, 0xe7, 0x86, 0x41, 0xad, 0x58, 0x8d, 0xdc, 0xd3, 0x00, 0x34, 0xe5, 0xcb, + 0x76, 0xa7, 0x19, 0xca, 0xba, 0x09, 0x6e, 0xe0, 0xdd, 0x23, 0xb4, 0x8b, 0x5c, 0x22, 0x22, 0xf7, + 0x53, 0xb8, 0xc0, 0x00, 0x4d, 0x31, 0x82, 0x7f, 0x32, 0x16, 0x1f, 0xd9, 0x89, 0x61, 0xd1, 0x2c, + 0x15, 0xbd, 0x8b, 0xbc, 0x82, 0xed, 0x78, 0x47, 0xa8, 0x1d, 0x42, 0x2c, 0xeb, 0x57, 0xa4, 0x84, + 0x9d, 0x58, 0x7e, 0xc4, 0x47, 0xf4, 0x04, 0x5d, 0xc9, 0x7d, 0x83, 0x28, 0x88, 0x5b, 0x81, 0xae, + 0x0b, 0x54, 0x07, 0xb8, 0x40, 0xfd, 0x9a, 0xd4, 0xbf, 0xf5, 0x51, 0x33, 0x74, 0x6b, 0x79, 0x53, + 0xba, 0xcf, 0xe9, 0xaf, 0xac, 0x7c, 0x8f, 0xc9, 0x6d, 0xca, 0x55, 0x7e, 0x32, 0x56, 0xe5, 0x1e, + 0xdd, 0xed, 0x49, 0x6d, 0xaa, 0x0e, 0x6a, 0xd3, 0xdf, 0xf7, 0x3b, 0x0e, 0xfa, 0x4b, 0x13, 0xe4, + 0x37, 0x5a, 0xf4, 0x8f, 0xc7, 0xfa, 0x3e, 0xaf, 0x94, 0x7c, 0x55, 0x57, 0x06, 0x75, 0x7f, 0x3e, + 0x51, 0x2c, 0xfa, 0xea, 0x5e, 0x3f, 0x41, 0x08, 0xe4, 0x13, 0xa5, 0x92, 0x5f, 0xb6, 0x53, 0x9f, + 0x7b, 0x73, 0x5e, 0xf9, 0xfa, 0x9b, 0xf3, 0x43, 0xb9, 0xdf, 0x54, 0x60, 0x8a, 0x49, 0x0a, 0x81, + 0xfb, 0x54, 0x48, 0xf9, 0xd3, 0xbc, 0x66, 0x44, 0x59, 0xe0, 0xa7, 0x16, 0xbc, 0xdf, 0x56, 0x20, + 0xdb, 0xa5, 0x2b, 0xb7, 0xf7, 0xa5, 0x81, 0x54, 0xce, 0x2b, 0xe5, 0x9f, 0xbd, 0xcd, 0xef, 0xc2, + 0xf0, 0xae, 0xd5, 0x44, 0x6d, 0xbc, 0x12, 0xe0, 0x0f, 0x54, 0x65, 0xfe, 0x30, 0x87, 0x0e, 0xf1, + 0x39, 0xaa, 0x9c, 0x34, 0xb7, 0xac, 0x67, 0x21, 0xb9, 0x6a, 0x7a, 0x26, 0xd1, 0x20, 0xe3, 0xd7, + 0x57, 0xd3, 0x33, 0x73, 0x57, 0x20, 0xb3, 0x79, 0x4c, 0x5e, 0xb3, 0xa9, 0x93, 0x57, 0x48, 0xe4, + 0xee, 0x8f, 0xf7, 0xab, 0x97, 0x17, 0x87, 0x53, 0x75, 0xed, 0x9e, 0x92, 0x4f, 0x12, 0x7d, 0x5e, + 0x81, 0x89, 0x2d, 0xac, 0x36, 0xc1, 0x11, 0xd8, 0x59, 0x50, 0x36, 0xe5, 0x46, 0x48, 0x64, 0x35, + 0x94, 0xcd, 0x50, 0xfb, 0xa8, 0xfa, 0xe6, 0x09, 0xb5, 0x6d, 0xaa, 0xdf, 0xb6, 0x2d, 0x26, 0x53, + 0x13, 0xda, 0xd4, 0x62, 0x32, 0x05, 0xda, 0x38, 0x3b, 0xef, 0x7f, 0x50, 0x41, 0xa3, 0xad, 0xce, + 0x2a, 0x3a, 0xb0, 0x6c, 0xcb, 0xeb, 0xee, 0x57, 0x7d, 0x8d, 0xf5, 0x67, 0x61, 0x0c, 0x9b, 0x74, + 0x8d, 0xfd, 0x54, 0x1b, 0x36, 0xfd, 0x39, 0xd6, 0xa2, 0x84, 0x28, 0xd8, 0x00, 0x09, 0x9d, 0x00, + 0xa3, 0xaf, 0x81, 0x5a, 0xa9, 0x6c, 0xb2, 0xc5, 0x6d, 0xa5, 0x2f, 0x94, 0xbd, 0xa5, 0xc3, 0x8e, + 0xd8, 0x98, 0x7b, 0x68, 0x60, 0x02, 0x7d, 0x05, 0x12, 0x95, 0x4d, 0xd6, 0xf0, 0x9e, 0x1f, 0x84, + 0xc6, 0x48, 0x54, 0x36, 0x67, 0xff, 0x8d, 0x02, 0xe3, 0xd2, 0xa8, 0x9e, 0x83, 0x0c, 0x1d, 0x10, + 0x2e, 0x77, 0xc4, 0x90, 0xc6, 0xb8, 0xce, 0x89, 0xf7, 0xa9, 0xf3, 0x6c, 0x01, 0x26, 0x43, 0xe3, + 0xfa, 0x12, 0xe8, 0xe2, 0x10, 0x53, 0x82, 0xfe, 0x4c, 0x54, 0xc4, 0x4c, 0xee, 0x51, 0x80, 0xc0, + 0xae, 0xfe, 0xaf, 0x1b, 0x55, 0xca, 0x3b, 0xbb, 0xe5, 0x55, 0x4d, 0xc9, 0x7d, 0x4b, 0x81, 0x34, + 0x6b, 0x5b, 0x6b, 0x4e, 0x0b, 0xe9, 0x45, 0x50, 0x0a, 0x2c, 0x82, 0x1e, 0x4c, 0x6f, 0xa5, 0xa0, + 0x5f, 0x04, 0xa5, 0x38, 0xb8, 0xab, 0x95, 0xa2, 0xbe, 0x0c, 0x4a, 0x89, 0x39, 0x78, 0x30, 0xcf, + 0x28, 0xa5, 0xdc, 0x1f, 0xab, 0x30, 0x2d, 0xb6, 0xd1, 0xbc, 0x9e, 0x9c, 0x93, 0xef, 0x9b, 0xf2, + 0x63, 0x97, 0x97, 0xaf, 0xac, 0x2c, 0xe1, 0x7f, 0xfc, 0x90, 0xcc, 0xc9, 0xb7, 0x50, 0x79, 0xf0, + 0x45, 0x2e, 0xf7, 0x7a, 0x4f, 0x24, 0x9f, 0x14, 0x18, 0xba, 0xde, 0x13, 0x91, 0x66, 0xbb, 0xde, + 0x13, 0x91, 0x66, 0xbb, 0xde, 0x13, 0x91, 0x66, 0xbb, 0x9e, 0x05, 0x48, 0xb3, 0x5d, 0xef, 0x89, + 0x48, 0xb3, 0x5d, 0xef, 0x89, 0x48, 0xb3, 0xdd, 0xef, 0x89, 0xb0, 0xe9, 0x9e, 0xef, 0x89, 0xc8, + 0xf3, 0xdd, 0xef, 0x89, 0xc8, 0xf3, 0xdd, 0xef, 0x89, 0xe4, 0x93, 0x5e, 0xbb, 0x83, 0x7a, 0x3f, + 0x75, 0x90, 0xf1, 0xfd, 0x6e, 0x02, 0x83, 0x0a, 0xbc, 0x05, 0x93, 0x74, 0x43, 0xa2, 0xe4, 0xd8, + 0x9e, 0x69, 0xd9, 0xa8, 0xad, 0x7f, 0x02, 0x32, 0x74, 0x88, 0xde, 0xe6, 0x44, 0xdd, 0x06, 0xd2, + 0x79, 0x56, 0x6f, 0x25, 0xe9, 0xdc, 0x9f, 0x24, 0x61, 0x86, 0x0e, 0x54, 0xcc, 0x26, 0x92, 0xde, + 0x32, 0xba, 0x10, 0x7a, 0xa6, 0x34, 0x81, 0xe1, 0xf7, 0xdf, 0x99, 0xa7, 0xa3, 0x05, 0x3f, 0x9a, + 0x2e, 0x84, 0x9e, 0x2e, 0xc9, 0x72, 0xc1, 0x02, 0x74, 0x21, 0xf4, 0xe6, 0x91, 0x2c, 0xe7, 0xaf, + 0x37, 0xbe, 0x1c, 0x7f, 0x07, 0x49, 0x96, 0x5b, 0xf5, 0xa3, 0xec, 0x42, 0xe8, 0x6d, 0x24, 0x59, + 0xae, 0xec, 0xc7, 0xdb, 0x85, 0xd0, 0xb3, 0x27, 0x59, 0x6e, 0xcd, 0x8f, 0xbc, 0x0b, 0xa1, 0xa7, + 0x50, 0xb2, 0xdc, 0x6d, 0x3f, 0x06, 0x2f, 0x84, 0xde, 0x55, 0x92, 0xe5, 0x9e, 0xf3, 0xa3, 0xf1, + 0x42, 0xe8, 0xad, 0x25, 0x59, 0x6e, 0xdd, 0x8f, 0xcb, 0x85, 0xf0, 0xfb, 0x4b, 0xb2, 0xe0, 0x9d, + 0x20, 0x42, 0x17, 0xc2, 0x6f, 0x32, 0xc9, 0x92, 0x9f, 0x0c, 0x62, 0x75, 0x21, 0xfc, 0x4e, 0x93, + 0x2c, 0xb9, 0x11, 0x44, 0xed, 0x42, 0xf8, 0x59, 0x99, 0x2c, 0xb9, 0x19, 0xc4, 0xef, 0x42, 0xf8, + 0xa9, 0x99, 0x2c, 0x59, 0x09, 0x22, 0x79, 0x21, 0xfc, 0xfc, 0x4c, 0x96, 0xdc, 0x0a, 0x36, 0xd1, + 0xff, 0x20, 0x14, 0x7e, 0xc2, 0x5b, 0x50, 0xb9, 0x50, 0xf8, 0x41, 0x44, 0xe8, 0x85, 0x0a, 0x99, + 0x20, 0x13, 0x84, 0x5d, 0x2e, 0x14, 0x76, 0x10, 0x11, 0x72, 0xb9, 0x50, 0xc8, 0x41, 0x44, 0xb8, + 0xe5, 0x42, 0xe1, 0x06, 0x11, 0xa1, 0x96, 0x0b, 0x85, 0x1a, 0x44, 0x84, 0x59, 0x2e, 0x14, 0x66, + 0x10, 0x11, 0x62, 0xb9, 0x50, 0x88, 0x41, 0x44, 0x78, 0xe5, 0x42, 0xe1, 0x05, 0x11, 0xa1, 0x75, + 0x3e, 0x1c, 0x5a, 0x10, 0x15, 0x56, 0xe7, 0xc3, 0x61, 0x05, 0x51, 0x21, 0xf5, 0x58, 0x38, 0xa4, + 0xc6, 0xee, 0xbf, 0x33, 0x3f, 0x8c, 0x87, 0x84, 0x68, 0x3a, 0x1f, 0x8e, 0x26, 0x88, 0x8a, 0xa4, + 0xf3, 0xe1, 0x48, 0x82, 0xa8, 0x28, 0x3a, 0x1f, 0x8e, 0x22, 0x88, 0x8a, 0xa0, 0xb7, 0xc2, 0x11, + 0x14, 0xbc, 0xe3, 0x93, 0x0b, 0x3d, 0x52, 0x8c, 0x8b, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, + 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, + 0x80, 0x08, 0x52, 0x07, 0x89, 0x20, 0x75, 0xa0, 0x08, 0x52, 0x7b, 0x45, 0xd0, 0xf9, 0xf0, 0x1b, + 0x0f, 0x10, 0x55, 0x90, 0xce, 0x87, 0x1f, 0x7d, 0xc6, 0x87, 0x90, 0x3a, 0x50, 0x08, 0xa9, 0xbd, + 0x42, 0xe8, 0x0f, 0x54, 0x98, 0x96, 0x42, 0x88, 0x3d, 0x1f, 0xfa, 0xa0, 0x2a, 0xd0, 0xb5, 0x01, + 0x5e, 0xb0, 0x88, 0x8a, 0xa9, 0x6b, 0x03, 0x3c, 0xa4, 0xee, 0x17, 0x67, 0xdd, 0x55, 0xa8, 0x3c, + 0x40, 0x15, 0x5a, 0xf3, 0x63, 0xe8, 0xda, 0x00, 0x2f, 0x5e, 0x74, 0xc7, 0xde, 0x8d, 0x7e, 0x45, + 0xe0, 0xb9, 0x81, 0x8a, 0xc0, 0xfa, 0x40, 0x45, 0xe0, 0x4e, 0xe0, 0xc1, 0x5f, 0x4e, 0xc0, 0xa9, + 0xc0, 0x83, 0xf4, 0x13, 0xf9, 0x29, 0xa5, 0x9c, 0xf0, 0x88, 0x4a, 0xe7, 0x8f, 0x6d, 0x04, 0x37, + 0x26, 0xd6, 0xeb, 0xfa, 0xb6, 0xfc, 0xb0, 0x2a, 0x7f, 0xd2, 0x07, 0x38, 0x82, 0xc7, 0xd9, 0x66, + 0xe8, 0x79, 0x50, 0xd7, 0xeb, 0x2e, 0xa9, 0x16, 0x51, 0xa7, 0x2d, 0x19, 0x78, 0x5a, 0x37, 0x60, + 0x84, 0x88, 0xbb, 0xc4, 0xbd, 0xef, 0xe7, 0xc4, 0xab, 0x06, 0x63, 0xca, 0xbd, 0xa5, 0xc0, 0x59, + 0x29, 0x94, 0x3f, 0x98, 0x47, 0x06, 0xb7, 0x06, 0x7a, 0x64, 0x20, 0x25, 0x48, 0xf0, 0xf8, 0xe0, + 0x89, 0xee, 0x27, 0xd5, 0x62, 0x96, 0x84, 0x1f, 0x25, 0xfc, 0x05, 0x98, 0x08, 0xae, 0x80, 0xdc, + 0xb3, 0x5d, 0x8d, 0xdf, 0xcd, 0x8c, 0x4a, 0xcd, 0xab, 0xa1, 0x5d, 0xb4, 0xbe, 0x30, 0x3f, 0x5b, + 0x73, 0x79, 0x98, 0xac, 0xc8, 0x5f, 0xf8, 0x89, 0xdb, 0x8c, 0x48, 0xe1, 0xd6, 0xfc, 0xde, 0x57, + 0xe7, 0x87, 0x72, 0x1f, 0x87, 0x8c, 0xf8, 0x9d, 0x9e, 0x10, 0x70, 0x8c, 0x03, 0xf3, 0xc9, 0xb7, + 0xb1, 0xf4, 0xdf, 0x53, 0xe0, 0xb4, 0x28, 0xfe, 0xbc, 0xe5, 0x1d, 0xad, 0xdb, 0xb8, 0xa7, 0x7f, + 0x1a, 0x52, 0x88, 0x39, 0x8e, 0xfd, 0x2a, 0x0a, 0xbb, 0x8f, 0x8c, 0x14, 0x5f, 0x22, 0xff, 0x1a, + 0x3e, 0x24, 0xb4, 0xc7, 0xc1, 0x4f, 0xbb, 0x3c, 0xfb, 0x38, 0x0c, 0x53, 0x7e, 0x59, 0xaf, 0xf1, + 0x90, 0x5e, 0xbf, 0x11, 0xa1, 0x17, 0x89, 0x23, 0xfd, 0x8e, 0xa4, 0x97, 0x70, 0xbb, 0x1a, 0x29, + 0xbe, 0xc4, 0x83, 0xaf, 0x98, 0xc2, 0xfd, 0x1f, 0x89, 0xa8, 0x78, 0x25, 0x17, 0x20, 0x55, 0x0e, + 0xcb, 0x44, 0xeb, 0xb9, 0x0a, 0xc9, 0x8a, 0x53, 0x27, 0xbf, 0xd7, 0x42, 0x7e, 0xa0, 0x98, 0x19, + 0x99, 0xfd, 0x5a, 0xf1, 0x05, 0x48, 0x95, 0x8e, 0xac, 0x46, 0xbd, 0x8d, 0x6c, 0xf6, 0xcc, 0x9e, + 0x6d, 0xa1, 0x63, 0x8c, 0xe1, 0xcf, 0xe5, 0x4a, 0x30, 0x55, 0x71, 0xec, 0xe2, 0xb1, 0x27, 0xd6, + 0x8d, 0xa5, 0x50, 0x8a, 0xb0, 0x67, 0x3e, 0xe4, 0x5b, 0x22, 0x58, 0xa0, 0x38, 0xfc, 0x9d, 0x77, + 0xe6, 0x95, 0x5d, 0x7f, 0xff, 0x7c, 0x13, 0x1e, 0x62, 0xe9, 0xd3, 0x45, 0xb5, 0x1c, 0x47, 0x35, + 0xc6, 0x9e, 0x53, 0x0b, 0x74, 0xeb, 0x98, 0xce, 0x8e, 0xa4, 0x7b, 0x30, 0xcd, 0x70, 0x53, 0xd4, + 0x57, 0x33, 0xf5, 0x44, 0x9a, 0x45, 0xd2, 0x2d, 0xc5, 0xd1, 0x85, 0x34, 0x7b, 0x0c, 0xc6, 0xfc, + 0x39, 0x21, 0x1a, 0xc4, 0x4c, 0x59, 0x5e, 0xcc, 0x41, 0x5a, 0x48, 0x58, 0x7d, 0x18, 0x94, 0x82, + 0x36, 0x84, 0xff, 0x2b, 0x6a, 0x0a, 0xfe, 0xaf, 0xa4, 0x25, 0x16, 0x1f, 0x87, 0xc9, 0xd0, 0xfe, + 0x25, 0x9e, 0x59, 0xd5, 0x00, 0xff, 0x57, 0xd6, 0xd2, 0xb3, 0xc9, 0xcf, 0xfd, 0xc3, 0xb9, 0xa1, + 0xc5, 0x5b, 0xa0, 0x77, 0xef, 0x74, 0xea, 0x23, 0x90, 0x28, 0x60, 0xca, 0x87, 0x20, 0x51, 0x2c, + 0x6a, 0xca, 0xec, 0xe4, 0x5f, 0xfd, 0xd2, 0xd9, 0x74, 0x91, 0x7c, 0x61, 0xf9, 0x2e, 0xf2, 0x8a, + 0x45, 0x06, 0x7e, 0x06, 0x4e, 0x47, 0xee, 0x94, 0x62, 0x7c, 0xa9, 0x44, 0xf1, 0xab, 0xab, 0x5d, + 0xf8, 0xd5, 0x55, 0x82, 0x57, 0xf2, 0xfc, 0x89, 0x73, 0x41, 0x8f, 0xd8, 0x97, 0xcc, 0xd6, 0x85, + 0x27, 0xdc, 0x85, 0xfc, 0x33, 0x4c, 0xb6, 0x18, 0x29, 0x8b, 0x62, 0x9e, 0x58, 0x17, 0xf3, 0x25, + 0x86, 0x2f, 0x45, 0xe2, 0x0f, 0x42, 0x8f, 0x55, 0xe5, 0x15, 0x82, 0x91, 0x94, 0x7c, 0x85, 0x57, + 0x23, 0x49, 0x8e, 0x84, 0x97, 0xdd, 0x57, 0x7d, 0x85, 0xcb, 0x91, 0xb2, 0x56, 0xcc, 0x4b, 0x5f, + 0xe5, 0xfc, 0x45, 0xb6, 0xc8, 0x17, 0x2e, 0xeb, 0xa7, 0x79, 0x8e, 0x4a, 0x15, 0x98, 0x19, 0x88, + 0x4b, 0xe5, 0x4b, 0x0c, 0x50, 0xec, 0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0x3f, 0xc7, 0x48, 0x4a, + 0x3d, 0x49, 0x62, 0x4c, 0xc5, 0xe1, 0xc5, 0xdd, 0x7b, 0xef, 0xce, 0x0d, 0xbd, 0xfd, 0xee, 0xdc, + 0xd0, 0x7f, 0x79, 0x77, 0x6e, 0xe8, 0xbb, 0xef, 0xce, 0x29, 0xdf, 0x7f, 0x77, 0x4e, 0xf9, 0xe1, + 0xbb, 0x73, 0xca, 0x8f, 0xdf, 0x9d, 0x53, 0xde, 0xb8, 0x3f, 0xa7, 0x7c, 0xfd, 0xfe, 0x9c, 0xf2, + 0x8d, 0xfb, 0x73, 0xca, 0xef, 0xdd, 0x9f, 0x53, 0xde, 0xba, 0x3f, 0xa7, 0xdc, 0xbb, 0x3f, 0xa7, + 0xbc, 0x7d, 0x7f, 0x4e, 0xf9, 0xee, 0xfd, 0x39, 0xe5, 0xfb, 0xf7, 0xe7, 0x86, 0x7e, 0x78, 0x7f, + 0x4e, 0xf9, 0xf1, 0xfd, 0xb9, 0xa1, 0x37, 0xde, 0x9b, 0x1b, 0x7a, 0xf3, 0xbd, 0xb9, 0xa1, 0xaf, + 0xbf, 0x37, 0xa7, 0xc0, 0x7b, 0x2b, 0x30, 0xc7, 0xbe, 0x49, 0x66, 0x23, 0x0b, 0x07, 0xdd, 0x45, + 0xef, 0x08, 0x91, 0x86, 0xe0, 0x0a, 0xff, 0xc9, 0x27, 0x7f, 0xe0, 0x84, 0xdf, 0x29, 0x9b, 0x7d, + 0xd0, 0x6f, 0xb0, 0xe5, 0xfe, 0xed, 0x30, 0x8c, 0xf2, 0x9d, 0xe0, 0xa8, 0xdf, 0xaf, 0xbe, 0x0a, + 0xa9, 0x23, 0xab, 0x61, 0xb6, 0x2d, 0xef, 0x98, 0x6d, 0x81, 0x3e, 0xbc, 0x14, 0xa8, 0xcd, 0x37, + 0x4d, 0x9f, 0xeb, 0x34, 0x9d, 0x4e, 0xdb, 0xf0, 0x45, 0xf5, 0xb3, 0x90, 0x39, 0x42, 0xd6, 0xe1, + 0x91, 0x57, 0xb5, 0xec, 0x6a, 0xad, 0x49, 0x3a, 0xe5, 0x71, 0x03, 0xe8, 0xd8, 0xba, 0x5d, 0x6a, + 0xe2, 0x93, 0xd5, 0x4d, 0xcf, 0x24, 0x77, 0xe8, 0x19, 0x83, 0x7c, 0xd6, 0xcf, 0x41, 0xa6, 0x8d, + 0xdc, 0x4e, 0xc3, 0xab, 0xd6, 0x9c, 0x8e, 0xed, 0x91, 0x5e, 0x56, 0x35, 0xd2, 0x74, 0xac, 0x84, + 0x87, 0xf4, 0xc7, 0x60, 0xdc, 0x6b, 0x77, 0x50, 0xd5, 0xad, 0x39, 0x9e, 0xdb, 0x34, 0x6d, 0xd2, + 0xcb, 0xa6, 0x8c, 0x0c, 0x1e, 0xdc, 0x61, 0x63, 0xe4, 0xa7, 0xcf, 0x6b, 0x4e, 0x1b, 0x91, 0x5b, + 0xe9, 0x84, 0x41, 0x0f, 0x74, 0x0d, 0xd4, 0x97, 0xd1, 0x31, 0xb9, 0x59, 0x4b, 0x1a, 0xf8, 0xa3, + 0xfe, 0x24, 0x8c, 0xd0, 0xbf, 0x5d, 0x42, 0x3a, 0x6b, 0xf2, 0xe0, 0xda, 0xbf, 0x34, 0xba, 0x41, + 0x6b, 0x30, 0x01, 0xfd, 0x26, 0x8c, 0x7a, 0xa8, 0xdd, 0x36, 0x2d, 0x9b, 0xdc, 0x38, 0xa5, 0x97, + 0xe7, 0x23, 0xcc, 0xb0, 0x4b, 0x25, 0xc8, 0x4f, 0xc0, 0x1a, 0x5c, 0x5e, 0xbf, 0x0a, 0x19, 0x22, + 0xb7, 0x5c, 0xa5, 0x7f, 0xdf, 0x25, 0xdd, 0x33, 0x96, 0xd3, 0x54, 0x8e, 0x3f, 0x27, 0xe0, 0x30, + 0xfa, 0xf3, 0x77, 0xe3, 0xe4, 0xb4, 0x8f, 0x45, 0x9c, 0x96, 0x94, 0xdd, 0x65, 0xd2, 0x32, 0xd2, + 0x53, 0x33, 0x1e, 0xfa, 0x03, 0x79, 0x9b, 0x90, 0x11, 0xf5, 0xe2, 0x66, 0xa0, 0xad, 0x0f, 0x31, + 0xc3, 0x13, 0xc1, 0x6f, 0xe7, 0xf7, 0xb0, 0x02, 0x9d, 0xcf, 0x27, 0x6e, 0x28, 0xb3, 0xdb, 0xa0, + 0x85, 0xcf, 0x17, 0x41, 0x79, 0x41, 0xa6, 0xd4, 0xc4, 0x8b, 0x25, 0xbb, 0xe4, 0x01, 0x63, 0xee, + 0x59, 0x18, 0xa1, 0xf1, 0xa3, 0xa7, 0x61, 0x34, 0xf8, 0x65, 0xc5, 0x14, 0x24, 0xb7, 0xf7, 0x2a, + 0x3b, 0xf4, 0x27, 0x52, 0x77, 0x36, 0x0a, 0xdb, 0x3b, 0xbb, 0xeb, 0xa5, 0x4f, 0x6a, 0x09, 0x7d, + 0x12, 0xd2, 0xc5, 0xf5, 0x8d, 0x8d, 0x6a, 0xb1, 0xb0, 0xbe, 0x51, 0xbe, 0xab, 0xa9, 0xb9, 0x39, + 0x18, 0xa1, 0x7a, 0x92, 0x9f, 0x7a, 0xeb, 0xd8, 0xf6, 0x31, 0x6f, 0x1d, 0xc8, 0x41, 0xee, 0x9b, + 0x3a, 0x8c, 0x16, 0x1a, 0x8d, 0x4d, 0xb3, 0xe5, 0xea, 0xcf, 0xc3, 0x14, 0xfd, 0xc5, 0x89, 0x5d, + 0x67, 0x95, 0xfc, 0x22, 0x21, 0x2e, 0x0c, 0x0a, 0xfb, 0x9b, 0x01, 0xc1, 0x75, 0x33, 0xf1, 0xa5, + 0x2e, 0x59, 0x6a, 0xe0, 0x6e, 0x0e, 0x7d, 0x17, 0x34, 0x3e, 0xb8, 0xd6, 0x70, 0x4c, 0x0f, 0xf3, + 0x26, 0xd8, 0x0f, 0x06, 0xf6, 0xe6, 0xe5, 0xa2, 0x94, 0xb6, 0x8b, 0x41, 0xff, 0x04, 0xa4, 0xd6, + 0x6d, 0xef, 0xca, 0x32, 0x66, 0xe3, 0x7f, 0x8f, 0xa7, 0x9b, 0x8d, 0x8b, 0x50, 0x16, 0x1f, 0xc1, + 0xd0, 0xd7, 0x56, 0x30, 0x3a, 0xd9, 0x0f, 0x4d, 0x44, 0x02, 0x34, 0x39, 0xd4, 0x9f, 0x85, 0x31, + 0x7c, 0x67, 0x42, 0x4f, 0x3e, 0xcc, 0xdb, 0xd6, 0x2e, 0xb8, 0x2f, 0x43, 0xf1, 0x01, 0x86, 0x13, + 0xd0, 0xf3, 0x8f, 0xf4, 0x25, 0x10, 0x14, 0x08, 0x30, 0x98, 0x60, 0xc7, 0xd7, 0x60, 0xb4, 0x27, + 0xc1, 0x4e, 0x48, 0x83, 0x1d, 0x51, 0x83, 0x1d, 0x5f, 0x83, 0x54, 0x5f, 0x02, 0x51, 0x03, 0xff, + 0x58, 0x2f, 0x02, 0xac, 0x59, 0xaf, 0xa1, 0x3a, 0x55, 0x81, 0xfe, 0xb5, 0x9e, 0x5c, 0x04, 0x43, + 0x20, 0x44, 0x29, 0x04, 0x94, 0x5e, 0x86, 0xf4, 0xce, 0x41, 0x40, 0x02, 0x5d, 0x79, 0xec, 0xab, + 0x71, 0x10, 0x62, 0x11, 0x71, 0xbe, 0x2a, 0xf4, 0x62, 0xd2, 0xfd, 0x55, 0x11, 0xae, 0x46, 0x40, + 0x05, 0xaa, 0x50, 0x92, 0x4c, 0x8c, 0x2a, 0x02, 0x8b, 0x88, 0xc3, 0xc5, 0xb0, 0xe8, 0x38, 0x58, 0x92, 0x55, 0xa5, 0xf9, 0x08, 0x0a, 0x26, 0xc1, 0x8a, 0x21, 0x3b, 0x22, 0x1e, 0x21, 0x41, 0x8e, - 0xc1, 0x13, 0xbd, 0x3d, 0xc2, 0x65, 0xb8, 0x47, 0xf8, 0x71, 0x38, 0xcf, 0xc8, 0xcb, 0xac, 0x98, - 0x67, 0x32, 0x36, 0xcf, 0xb8, 0xa8, 0x94, 0x67, 0x7c, 0x58, 0xff, 0x14, 0x4c, 0xf2, 0x31, 0x5c, - 0x9e, 0x30, 0xa9, 0xc6, 0xfe, 0x3c, 0x55, 0x6f, 0x52, 0x26, 0x49, 0x39, 0x65, 0xbc, 0x5e, 0x81, - 0x09, 0x3e, 0xb4, 0xed, 0x92, 0xcb, 0x9d, 0x62, 0x7f, 0xfa, 0xa1, 0x37, 0x23, 0x15, 0xa4, 0x84, - 0x12, 0x7a, 0x76, 0x1d, 0x66, 0xa2, 0xab, 0x51, 0xb8, 0xfc, 0x8e, 0xd1, 0xf2, 0x7b, 0x2e, 0x5c, - 0x7e, 0x95, 0x70, 0xf9, 0x2e, 0xc1, 0x23, 0x91, 0xb5, 0x27, 0x8e, 0x24, 0x11, 0x26, 0xb9, 0x0d, - 0xe3, 0x42, 0xc9, 0x09, 0x83, 0x87, 0x23, 0xc0, 0xc3, 0xdd, 0xe0, 0x20, 0xb4, 0x22, 0x56, 0x0f, - 0x01, 0xac, 0x86, 0xc1, 0x9f, 0x80, 0x09, 0xb1, 0xde, 0x84, 0xd1, 0xe3, 0x11, 0xe8, 0xf1, 0x08, - 0x74, 0xf4, 0xb9, 0x93, 0x11, 0xe8, 0xa4, 0x84, 0xde, 0xeb, 0x79, 0xee, 0xa9, 0x08, 0xf4, 0x54, - 0x04, 0x3a, 0xfa, 0xdc, 0x7a, 0x04, 0x5a, 0x0f, 0xa3, 0x9f, 0x83, 0x49, 0xa9, 0xc4, 0x84, 0xe1, - 0xa3, 0x11, 0xf0, 0xd1, 0x30, 0xfc, 0x79, 0xd0, 0xe4, 0xe2, 0x12, 0xc6, 0x4f, 0x46, 0xe0, 0x27, - 0xa3, 0x4e, 0x1f, 0xad, 0xfd, 0x48, 0x04, 0x7c, 0x24, 0xf2, 0xf4, 0xd1, 0x78, 0x2d, 0x02, 0xaf, - 0x85, 0xf1, 0x79, 0xc8, 0x84, 0xab, 0x49, 0x18, 0x9b, 0x8a, 0xc0, 0xa6, 0x64, 0xbb, 0x0b, 0xc5, - 0x24, 0x2e, 0xd2, 0xc7, 0x7a, 0xa4, 0x8b, 0x50, 0x42, 0xe2, 0x48, 0x32, 0x61, 0x92, 0x4f, 0xc3, - 0xb9, 0xa8, 0x92, 0x11, 0xc1, 0xb1, 0x10, 0xe6, 0x98, 0xc0, 0x3d, 0x62, 0xd0, 0xec, 0x99, 0x2d, - 0xa9, 0x71, 0x9a, 0xfd, 0x0c, 0x4c, 0x47, 0x14, 0x8e, 0x08, 0xda, 0x25, 0xb1, 0x1b, 0xcb, 0x86, - 0x68, 0x49, 0x11, 0xb0, 0xec, 0xe3, 0x5d, 0xc7, 0xb2, 0xbd, 0x70, 0x57, 0xf6, 0xed, 0x69, 0x98, - 0x60, 0xe5, 0x69, 0xa7, 0x5d, 0x47, 0x6d, 0x54, 0xd7, 0xff, 0x42, 0xef, 0xde, 0x69, 0xb9, 0xbb, - 0xa8, 0x31, 0xd4, 0x19, 0x5a, 0xa8, 0xcf, 0xf4, 0x6c, 0xa1, 0xae, 0xc4, 0xd3, 0xc7, 0x75, 0x52, - 0xa5, 0xae, 0x4e, 0xea, 0xe9, 0xde, 0xa4, 0xbd, 0x1a, 0xaa, 0x52, 0x57, 0x43, 0xd5, 0x9f, 0x24, - 0xb2, 0xaf, 0xda, 0xe8, 0xee, 0xab, 0x16, 0x7a, 0xb3, 0xf4, 0x6e, 0xaf, 0x36, 0xba, 0xdb, 0xab, - 0x18, 0x9e, 0xe8, 0x2e, 0x6b, 0xa3, 0xbb, 0xcb, 0xea, 0xc3, 0xd3, 0xbb, 0xd9, 0xda, 0xe8, 0x6e, - 0xb6, 0x62, 0x78, 0xa2, 0x7b, 0xae, 0xcd, 0x88, 0x9e, 0xeb, 0x99, 0xde, 0x44, 0xfd, 0x5a, 0xaf, - 0xad, 0xa8, 0xd6, 0x6b, 0xb1, 0x8f, 0x52, 0x7d, 0x3b, 0xb0, 0xcd, 0x88, 0x0e, 0x2c, 0x4e, 0xb1, - 0x1e, 0x8d, 0xd8, 0x56, 0x54, 0x23, 0x16, 0xab, 0x58, 0xaf, 0x7e, 0xec, 0xff, 0x93, 0xfb, 0xb1, - 0xcb, 0xbd, 0x99, 0xa2, 0xdb, 0xb2, 0x8d, 0xee, 0xb6, 0x6c, 0x21, 0x2e, 0xe7, 0xa2, 0xba, 0xb3, - 0xcf, 0xf4, 0xec, 0xce, 0x06, 0x48, 0xe1, 0xb8, 0x26, 0xed, 0xe5, 0x5e, 0x4d, 0xda, 0x52, 0x3c, - 0x77, 0xff, 0x5e, 0xed, 0xa0, 0x47, 0xaf, 0xf6, 0x6c, 0x3c, 0xf1, 0xcf, 0x5b, 0xb6, 0x9f, 0xb7, - 0x6c, 0x3f, 0x6f, 0xd9, 0x7e, 0xde, 0xb2, 0xfd, 0xec, 0x5b, 0xb6, 0x7c, 0xf2, 0x0b, 0x5f, 0x9b, - 0x57, 0x72, 0xff, 0x59, 0xf5, 0xff, 0x6a, 0xd6, 0x4b, 0x96, 0x77, 0x82, 0xcb, 0xdb, 0x36, 0x64, - 0xc8, 0xdf, 0xbb, 0x68, 0x9a, 0xad, 0x96, 0x65, 0x1f, 0xb3, 0x9e, 0x6d, 0xb1, 0x7b, 0x2b, 0x91, - 0x01, 0xc8, 0x5f, 0x0c, 0xd9, 0xa6, 0xc2, 0x6c, 0xb9, 0xb1, 0x83, 0x11, 0xfd, 0x2e, 0xa4, 0x9b, - 0xee, 0xb1, 0xcf, 0x96, 0xe8, 0x5a, 0x08, 0x25, 0x36, 0x7a, 0xa5, 0x01, 0x19, 0x34, 0xfd, 0x01, - 0xac, 0xda, 0xe1, 0xa9, 0x17, 0xa8, 0xa6, 0xc6, 0xa9, 0x86, 0x7d, 0x2a, 0xaa, 0x76, 0x18, 0x8c, - 0xe0, 0xb0, 0x95, 0x75, 0x8f, 0xab, 0x74, 0x42, 0xf0, 0xbc, 0x04, 0x93, 0x92, 0xb6, 0x11, 0x39, - 0xff, 0x10, 0xbe, 0xc1, 0x8a, 0xc9, 0x9a, 0xc7, 0xe5, 0x44, 0x38, 0x20, 0x73, 0x4f, 0xc0, 0xb8, - 0xc0, 0xad, 0x67, 0x40, 0x39, 0x62, 0xdf, 0xa4, 0x54, 0x8e, 0x72, 0x5f, 0x55, 0x20, 0xcd, 0x5e, - 0x23, 0xd8, 0x35, 0xad, 0xb6, 0xfe, 0x22, 0x24, 0x1b, 0xfc, 0xdb, 0x4c, 0x0f, 0xfb, 0xcd, 0x59, - 0xc2, 0xa0, 0x6f, 0xc0, 0x70, 0xdb, 0xff, 0xb6, 0xd3, 0x43, 0x7d, 0x1d, 0x96, 0xc0, 0x73, 0xf7, - 0x15, 0x98, 0x62, 0x6f, 0xb9, 0xba, 0xec, 0xdd, 0x67, 0xb3, 0x35, 0xfb, 0x2d, 0x05, 0xc6, 0xfc, - 0x23, 0xfd, 0x10, 0x26, 0xfc, 0x03, 0xfa, 0x7e, 0x3d, 0x8d, 0xd4, 0x7c, 0xc8, 0xc2, 0x5d, 0x1c, - 0x4b, 0x11, 0x9f, 0xe8, 0x83, 0x28, 0xba, 0x26, 0x8b, 0x83, 0xb3, 0x05, 0x98, 0x8e, 0x10, 0x3b, - 0xcb, 0x82, 0x9c, 0xbb, 0x08, 0x63, 0x15, 0xc7, 0xa3, 0x3f, 0x9a, 0xa3, 0x9f, 0x0b, 0x3d, 0x55, - 0x28, 0x26, 0xb4, 0x21, 0x02, 0x5e, 0xbc, 0x08, 0xa3, 0x2c, 0xfb, 0xf5, 0x11, 0x48, 0x6c, 0x17, - 0xb4, 0x21, 0xf2, 0x7f, 0x51, 0x53, 0xc8, 0xff, 0x25, 0x2d, 0x51, 0xdc, 0x7a, 0x88, 0xa7, 0x4c, - 0x43, 0xef, 0x3c, 0x98, 0x1b, 0x8a, 0x7a, 0xca, 0x74, 0x38, 0x42, 0xcd, 0xf3, 0xff, 0x02, 0x00, - 0x00, 0xff, 0xff, 0x5e, 0xb7, 0x73, 0xce, 0x29, 0x7f, 0x00, 0x00, + 0xc1, 0x13, 0xbd, 0x3d, 0xc2, 0x65, 0xb8, 0x47, 0xf8, 0xb1, 0x98, 0x67, 0xe4, 0x6d, 0x56, 0xcc, + 0x33, 0x19, 0x9b, 0x67, 0x5c, 0x34, 0x94, 0x67, 0x7c, 0x58, 0xff, 0x14, 0x4c, 0xf2, 0x31, 0x5c, + 0x9e, 0x30, 0xa9, 0xc6, 0xfe, 0x9e, 0x59, 0x6f, 0x52, 0x26, 0x49, 0x39, 0xc3, 0x78, 0xbd, 0x02, + 0x13, 0x7c, 0x68, 0xd3, 0x25, 0x97, 0x3b, 0xc5, 0xfe, 0x54, 0x45, 0x6f, 0x46, 0x2a, 0x48, 0x09, + 0x43, 0xe8, 0xd9, 0x55, 0x98, 0x89, 0xae, 0x46, 0x62, 0xf9, 0x1d, 0xa3, 0xe5, 0xf7, 0x94, 0x58, + 0x7e, 0x15, 0xb1, 0x7c, 0x97, 0xe0, 0x74, 0x64, 0xed, 0x89, 0x23, 0x49, 0x88, 0x24, 0xb7, 0x60, + 0x5c, 0x2a, 0x39, 0x22, 0x78, 0x38, 0x02, 0x3c, 0xdc, 0x0d, 0x0e, 0x42, 0x2b, 0x62, 0xf5, 0x90, + 0xc0, 0xaa, 0x08, 0xfe, 0x04, 0x4c, 0xc8, 0xf5, 0x46, 0x44, 0x8f, 0x47, 0xa0, 0xc7, 0x23, 0xd0, + 0xd1, 0xe7, 0x4e, 0x46, 0xa0, 0x93, 0x21, 0xf4, 0x4e, 0xcf, 0x73, 0x4f, 0x45, 0xa0, 0xa7, 0x22, + 0xd0, 0xd1, 0xe7, 0xd6, 0x23, 0xd0, 0xba, 0x88, 0x7e, 0x1a, 0x26, 0x43, 0x25, 0x46, 0x84, 0x8f, + 0x46, 0xc0, 0x47, 0x45, 0xf8, 0x33, 0xa0, 0x85, 0x8b, 0x8b, 0x88, 0x9f, 0x8c, 0xc0, 0x4f, 0x46, + 0x9d, 0x3e, 0x5a, 0xfb, 0x91, 0x08, 0xf8, 0x48, 0xe4, 0xe9, 0xa3, 0xf1, 0x5a, 0x04, 0x5e, 0x13, + 0xf1, 0x79, 0xc8, 0x88, 0xd5, 0x44, 0xc4, 0xa6, 0x22, 0xb0, 0xa9, 0xb0, 0xdd, 0xa5, 0x62, 0x12, + 0x17, 0xe9, 0x63, 0x3d, 0xd2, 0x45, 0x2a, 0x21, 0x71, 0x24, 0x19, 0x91, 0xe4, 0xd3, 0x70, 0x2a, + 0xaa, 0x64, 0x44, 0x70, 0x2c, 0x88, 0x1c, 0x13, 0xb8, 0x47, 0x0c, 0x9a, 0x3d, 0xb3, 0x15, 0x6a, + 0x9c, 0x66, 0x5f, 0x84, 0xe9, 0x88, 0xc2, 0x11, 0x41, 0xbb, 0x24, 0x77, 0x63, 0x59, 0x81, 0x96, + 0x14, 0x01, 0xcb, 0x3e, 0xdc, 0x76, 0x2c, 0xdb, 0x13, 0xbb, 0xb2, 0x6f, 0x4d, 0xc3, 0x04, 0x2b, + 0x4f, 0x5b, 0xed, 0x3a, 0x6a, 0xa3, 0xba, 0xfe, 0xe7, 0x7a, 0xf7, 0x4e, 0x97, 0xba, 0x8b, 0x1a, + 0x43, 0x9d, 0xa0, 0x85, 0x7a, 0xb1, 0x67, 0x0b, 0x75, 0x31, 0x9e, 0x3e, 0xae, 0x93, 0x2a, 0x75, + 0x75, 0x52, 0x4f, 0xf4, 0x26, 0xed, 0xd5, 0x50, 0x95, 0xba, 0x1a, 0xaa, 0xfe, 0x24, 0x91, 0x7d, + 0xd5, 0x5a, 0x77, 0x5f, 0xb5, 0xd0, 0x9b, 0xa5, 0x77, 0x7b, 0xb5, 0xd6, 0xdd, 0x5e, 0xc5, 0xf0, + 0x44, 0x77, 0x59, 0x6b, 0xdd, 0x5d, 0x56, 0x1f, 0x9e, 0xde, 0xcd, 0xd6, 0x5a, 0x77, 0xb3, 0x15, + 0xc3, 0x13, 0xdd, 0x73, 0xad, 0x47, 0xf4, 0x5c, 0x4f, 0xf6, 0x26, 0xea, 0xd7, 0x7a, 0x6d, 0x44, + 0xb5, 0x5e, 0x8b, 0x7d, 0x94, 0xea, 0xdb, 0x81, 0xad, 0x47, 0x74, 0x60, 0x71, 0x8a, 0xf5, 0x68, + 0xc4, 0x36, 0xa2, 0x1a, 0xb1, 0x58, 0xc5, 0x7a, 0xf5, 0x63, 0xbf, 0x10, 0xee, 0xc7, 0x2e, 0xf4, + 0x66, 0x8a, 0x6e, 0xcb, 0xd6, 0xba, 0xdb, 0xb2, 0x85, 0xb8, 0x9c, 0x8b, 0xea, 0xce, 0x5e, 0xec, + 0xd9, 0x9d, 0x0d, 0x90, 0xc2, 0x71, 0x4d, 0xda, 0x0b, 0xbd, 0x9a, 0xb4, 0xa5, 0x78, 0xee, 0xfe, + 0xbd, 0xda, 0x5e, 0x8f, 0x5e, 0xed, 0xa9, 0x78, 0xe2, 0x8f, 0x5a, 0xb6, 0x8f, 0x5a, 0xb6, 0x8f, + 0x5a, 0xb6, 0x8f, 0x5a, 0xb6, 0x9f, 0x7d, 0xcb, 0x96, 0x4f, 0x7e, 0xfe, 0xab, 0xf3, 0x4a, 0xee, + 0x3f, 0xab, 0xfe, 0x5f, 0xd7, 0x7a, 0xde, 0xf2, 0x8e, 0x70, 0x79, 0xdb, 0x84, 0x0c, 0xf9, 0xbb, + 0x18, 0x4d, 0xb3, 0xd5, 0xb2, 0xec, 0x43, 0xd6, 0xb3, 0x2d, 0x76, 0x6f, 0x25, 0x32, 0x00, 0xf9, + 0xcb, 0x22, 0x9b, 0x54, 0x98, 0x2d, 0x37, 0x76, 0x30, 0xa2, 0xdf, 0x81, 0x74, 0xd3, 0x3d, 0xf4, + 0xd9, 0x12, 0x5d, 0x0b, 0x61, 0x88, 0x8d, 0x5e, 0x69, 0x40, 0x06, 0x4d, 0x7f, 0x00, 0xab, 0xb6, + 0x7f, 0xec, 0x05, 0xaa, 0xa9, 0x71, 0xaa, 0x61, 0x9f, 0xca, 0xaa, 0xed, 0x07, 0x23, 0x38, 0x6c, + 0xc3, 0xba, 0xc7, 0x55, 0x3a, 0x29, 0x78, 0x9e, 0x87, 0xc9, 0x90, 0xb6, 0x11, 0x39, 0xff, 0x00, + 0xbe, 0xc1, 0x8a, 0x85, 0x35, 0x8f, 0xcb, 0x09, 0x31, 0x20, 0x73, 0x8f, 0xc2, 0xb8, 0xc4, 0xad, + 0x67, 0x40, 0x39, 0x60, 0x5f, 0xa5, 0x54, 0x0e, 0x72, 0x5f, 0x51, 0x20, 0xcd, 0x5e, 0x23, 0xd8, + 0x36, 0xad, 0xb6, 0xfe, 0x1c, 0x24, 0x1b, 0xfc, 0xeb, 0x4c, 0x0f, 0xfa, 0xd5, 0x59, 0xc2, 0xa0, + 0xaf, 0xc1, 0x70, 0xdb, 0xff, 0xba, 0xd3, 0x03, 0x7d, 0x1f, 0x96, 0xc0, 0x73, 0xf7, 0x14, 0x98, + 0x62, 0x6f, 0xb9, 0xba, 0xec, 0xe5, 0x67, 0xb3, 0x35, 0xfb, 0x4d, 0x05, 0xc6, 0xfc, 0x23, 0x7d, + 0x1f, 0x26, 0xfc, 0x03, 0xfa, 0x82, 0x3d, 0x8d, 0xd4, 0xbc, 0x60, 0xe1, 0x2e, 0x8e, 0xa5, 0x88, + 0x4f, 0xf4, 0x41, 0x14, 0x5d, 0x93, 0xe5, 0xc1, 0xd9, 0x02, 0x4c, 0x47, 0x88, 0x9d, 0x64, 0x41, + 0xce, 0x9d, 0x83, 0xb1, 0x8a, 0xe3, 0xd1, 0x5f, 0xcd, 0xd1, 0x4f, 0x09, 0x4f, 0x15, 0x8a, 0x09, + 0x6d, 0x88, 0x80, 0x17, 0xcf, 0xc1, 0x28, 0xcb, 0x7e, 0x7d, 0x04, 0x12, 0x9b, 0x05, 0x6d, 0x88, + 0xfc, 0x5f, 0xd4, 0x14, 0xf2, 0x7f, 0x49, 0x4b, 0x14, 0x37, 0x1e, 0xe0, 0x29, 0xd3, 0xd0, 0xdb, + 0xf7, 0xe7, 0x86, 0xa2, 0x9e, 0x32, 0xed, 0x8f, 0x50, 0xf3, 0xfc, 0x69, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x9c, 0x62, 0x72, 0x25, 0x5a, 0x81, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -2092,7 +2097,7 @@ func (this *NotPacked) Equal(that interface{}) bool { } type MessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetName() string GetHilarity() Message_Humour GetHeightInCm() uint32 @@ -2107,11 +2112,11 @@ type MessageFace interface { GetProto2Value() map[int64]*test.NinOptEnum } -func (this *Message) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Message) Proto() proto.Message { return this } -func (this *Message) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Message) TestProto() proto.Message { return NewMessageFromFace(this) } @@ -2181,15 +2186,15 @@ func NewMessageFromFace(that MessageFace) *Message { } type NestedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetBunny() string } -func (this *Nested) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Nested) Proto() proto.Message { return this } -func (this *Nested) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Nested) TestProto() proto.Message { return NewNestedFromFace(this) } @@ -2204,7 +2209,7 @@ func NewNestedFromFace(that NestedFace) *Nested { } type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -2224,11 +2229,11 @@ type AllMapsFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) Proto() proto.Message { return this } -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) TestProto() proto.Message { return NewAllMapsFromFace(this) } @@ -2323,7 +2328,7 @@ func NewAllMapsFromFace(that AllMapsFace) *AllMaps { } type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -2343,11 +2348,11 @@ type AllMapsOrderedFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) Proto() proto.Message { return this } -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) TestProto() proto.Message { return NewAllMapsOrderedFromFace(this) } @@ -2442,17 +2447,17 @@ func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { } type MessageWithMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNameMapping() map[int32]string GetMsgMapping() map[int64]*FloatingPoint GetByteMapping() map[bool][]byte } -func (this *MessageWithMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *MessageWithMap) Proto() proto.Message { return this } -func (this *MessageWithMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *MessageWithMap) TestProto() proto.Message { return NewMessageWithMapFromFace(this) } @@ -2477,15 +2482,15 @@ func NewMessageWithMapFromFace(that MessageWithMapFace) *MessageWithMap { } type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetF() float64 } -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) Proto() proto.Message { return this } -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) TestProto() proto.Message { return NewFloatingPointFromFace(this) } @@ -2500,16 +2505,16 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { } type Uint128PairFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() github_com_gogo_protobuf_test_custom.Uint128 GetRight() *github_com_gogo_protobuf_test_custom.Uint128 } -func (this *Uint128Pair) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Uint128Pair) Proto() proto.Message { return this } -func (this *Uint128Pair) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Uint128Pair) TestProto() proto.Message { return NewUint128PairFromFace(this) } @@ -2529,14 +2534,14 @@ func NewUint128PairFromFace(that Uint128PairFace) *Uint128Pair { } type ContainsNestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message } -func (this *ContainsNestedMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap) Proto() proto.Message { return this } -func (this *ContainsNestedMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap) TestProto() proto.Message { return NewContainsNestedMapFromFace(this) } @@ -2546,15 +2551,15 @@ func NewContainsNestedMapFromFace(that ContainsNestedMapFace) *ContainsNestedMap } type ContainsNestedMap_NestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedMapField() map[string]float64 } -func (this *ContainsNestedMap_NestedMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap_NestedMap) Proto() proto.Message { return this } -func (this *ContainsNestedMap_NestedMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap_NestedMap) TestProto() proto.Message { return NewContainsNestedMap_NestedMapFromFace(this) } @@ -2569,15 +2574,15 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace } type NotPackedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetKey() []uint64 } -func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NotPacked) Proto() proto.Message { return this } -func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NotPacked) TestProto() proto.Message { return NewNotPackedFromFace(this) } @@ -2612,7 +2617,7 @@ func (this *Message) GoString() string { for k := range this.Terrain { keysForTerrain = append(keysForTerrain, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) + sortkeys.Int64s(keysForTerrain) mapStringForTerrain := "map[int64]*Nested{" for _, k := range keysForTerrain { mapStringForTerrain += fmt.Sprintf("%#v: %#v,", k, this.Terrain[k]) @@ -2628,7 +2633,7 @@ func (this *Message) GoString() string { for k := range this.Proto2Value { keysForProto2Value = append(keysForProto2Value, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) + sortkeys.Int64s(keysForProto2Value) mapStringForProto2Value := "map[int64]*test.NinOptEnum{" for _, k := range keysForProto2Value { mapStringForProto2Value += fmt.Sprintf("%#v: %#v,", k, this.Proto2Value[k]) @@ -2660,7 +2665,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -2673,7 +2678,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2686,7 +2691,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2699,7 +2704,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2712,7 +2717,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2725,7 +2730,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2738,7 +2743,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2751,7 +2756,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2764,7 +2769,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -2777,7 +2782,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -2790,7 +2795,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -2803,7 +2808,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -2816,7 +2821,7 @@ func (this *AllMaps) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -2829,7 +2834,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -2842,7 +2847,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -2855,7 +2860,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -2868,7 +2873,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -2890,7 +2895,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -2903,7 +2908,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2916,7 +2921,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2929,7 +2934,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2942,7 +2947,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2955,7 +2960,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2968,7 +2973,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2981,7 +2986,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2994,7 +2999,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -3007,7 +3012,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -3020,7 +3025,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -3033,7 +3038,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -3046,7 +3051,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -3059,7 +3064,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -3072,7 +3077,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -3085,7 +3090,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -3098,7 +3103,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -3120,7 +3125,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.NameMapping { keysForNameMapping = append(keysForNameMapping, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) + sortkeys.Int32s(keysForNameMapping) mapStringForNameMapping := "map[int32]string{" for _, k := range keysForNameMapping { mapStringForNameMapping += fmt.Sprintf("%#v: %#v,", k, this.NameMapping[k]) @@ -3133,7 +3138,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.MsgMapping { keysForMsgMapping = append(keysForMsgMapping, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) + sortkeys.Int64s(keysForMsgMapping) mapStringForMsgMapping := "map[int64]*FloatingPoint{" for _, k := range keysForMsgMapping { mapStringForMsgMapping += fmt.Sprintf("%#v: %#v,", k, this.MsgMapping[k]) @@ -3146,7 +3151,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.ByteMapping { keysForByteMapping = append(keysForByteMapping, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) + sortkeys.Bools(keysForByteMapping) mapStringForByteMapping := "map[bool][]byte{" for _, k := range keysForByteMapping { mapStringForByteMapping += fmt.Sprintf("%#v: %#v,", k, this.ByteMapping[k]) @@ -3198,7 +3203,7 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { for k := range this.NestedMapField { keysForNestedMapField = append(keysForNestedMapField, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) + sortkeys.Strings(keysForNestedMapField) mapStringForNestedMapField := "map[string]float64{" for _, k := range keysForNestedMapField { mapStringForNestedMapField += fmt.Sprintf("%#v: %#v,", k, this.NestedMapField[k]) @@ -4278,7 +4283,7 @@ func (this *Message) String() string { for k := range this.Terrain { keysForTerrain = append(keysForTerrain, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) + sortkeys.Int64s(keysForTerrain) mapStringForTerrain := "map[int64]*Nested{" for _, k := range keysForTerrain { mapStringForTerrain += fmt.Sprintf("%v: %v,", k, this.Terrain[k]) @@ -4288,7 +4293,7 @@ func (this *Message) String() string { for k := range this.Proto2Value { keysForProto2Value = append(keysForProto2Value, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) + sortkeys.Int64s(keysForProto2Value) mapStringForProto2Value := "map[int64]*test.NinOptEnum{" for _, k := range keysForProto2Value { mapStringForProto2Value += fmt.Sprintf("%v: %v,", k, this.Proto2Value[k]) @@ -4329,7 +4334,7 @@ func (this *AllMaps) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -4339,7 +4344,7 @@ func (this *AllMaps) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -4349,7 +4354,7 @@ func (this *AllMaps) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -4359,7 +4364,7 @@ func (this *AllMaps) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -4369,7 +4374,7 @@ func (this *AllMaps) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -4379,7 +4384,7 @@ func (this *AllMaps) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -4389,7 +4394,7 @@ func (this *AllMaps) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -4399,7 +4404,7 @@ func (this *AllMaps) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -4409,7 +4414,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -4419,7 +4424,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -4429,7 +4434,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -4439,7 +4444,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -4449,7 +4454,7 @@ func (this *AllMaps) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -4459,7 +4464,7 @@ func (this *AllMaps) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -4469,7 +4474,7 @@ func (this *AllMaps) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -4479,7 +4484,7 @@ func (this *AllMaps) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -4489,7 +4494,7 @@ func (this *AllMaps) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -4525,7 +4530,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -4535,7 +4540,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -4545,7 +4550,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -4555,7 +4560,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -4565,7 +4570,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -4575,7 +4580,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -4585,7 +4590,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -4595,7 +4600,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -4605,7 +4610,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -4615,7 +4620,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -4625,7 +4630,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -4635,7 +4640,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -4645,7 +4650,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -4655,7 +4660,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -4665,7 +4670,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -4675,7 +4680,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -4685,7 +4690,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -4721,7 +4726,7 @@ func (this *MessageWithMap) String() string { for k := range this.NameMapping { keysForNameMapping = append(keysForNameMapping, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) + sortkeys.Int32s(keysForNameMapping) mapStringForNameMapping := "map[int32]string{" for _, k := range keysForNameMapping { mapStringForNameMapping += fmt.Sprintf("%v: %v,", k, this.NameMapping[k]) @@ -4731,7 +4736,7 @@ func (this *MessageWithMap) String() string { for k := range this.MsgMapping { keysForMsgMapping = append(keysForMsgMapping, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) + sortkeys.Int64s(keysForMsgMapping) mapStringForMsgMapping := "map[int64]*FloatingPoint{" for _, k := range keysForMsgMapping { mapStringForMsgMapping += fmt.Sprintf("%v: %v,", k, this.MsgMapping[k]) @@ -4741,7 +4746,7 @@ func (this *MessageWithMap) String() string { for k := range this.ByteMapping { keysForByteMapping = append(keysForByteMapping, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) + sortkeys.Bools(keysForByteMapping) mapStringForByteMapping := "map[bool][]byte{" for _, k := range keysForByteMapping { mapStringForByteMapping += fmt.Sprintf("%v: %v,", k, this.ByteMapping[k]) @@ -4793,7 +4798,7 @@ func (this *ContainsNestedMap_NestedMap) String() string { for k := range this.NestedMapField { keysForNestedMapField = append(keysForNestedMapField, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) + sortkeys.Strings(keysForNestedMapField) mapStringForNestedMapField := "map[string]float64{" for _, k := range keysForNestedMapField { mapStringForNestedMapField += fmt.Sprintf("%v: %v,", k, this.NestedMapField[k]) diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3pb_test.go index 49d51b0d6..508713dc3 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/neither/theproto3pb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/theproto3.proto -// DO NOT EDIT! /* Package theproto3 is a generated protocol buffer package. @@ -22,13 +21,12 @@ It has these top-level messages: package theproto3 import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" import _ "github.com/gogo/protobuf/test/combos/both" @@ -40,14 +38,14 @@ var _ = math.Inf func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -68,12 +66,12 @@ func TestMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 10000) for i := 0; i < 10000; i++ { @@ -81,7 +79,7 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -91,11 +89,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } func BenchmarkMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } @@ -105,7 +103,7 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -114,14 +112,14 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { func TestNestedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -142,12 +140,12 @@ func TestNestedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nested, 10000) for i := 0; i < 10000; i++ { @@ -155,7 +153,7 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -165,11 +163,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } func BenchmarkNestedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } @@ -179,7 +177,7 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -188,14 +186,14 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -216,12 +214,12 @@ func TestAllMapsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 10000) for i := 0; i < 10000; i++ { @@ -229,7 +227,7 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -239,11 +237,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } @@ -253,7 +251,7 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -262,14 +260,14 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -290,12 +288,12 @@ func TestAllMapsOrderedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 10000) for i := 0; i < 10000; i++ { @@ -303,7 +301,7 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -313,11 +311,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } @@ -327,7 +325,7 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -336,14 +334,14 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { func TestMessageWithMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -364,12 +362,12 @@ func TestMessageWithMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MessageWithMap, 10000) for i := 0; i < 10000; i++ { @@ -377,7 +375,7 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -387,11 +385,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } @@ -401,7 +399,7 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -410,14 +408,14 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -438,12 +436,12 @@ func TestFloatingPointProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 10000) for i := 0; i < 10000; i++ { @@ -451,7 +449,7 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -461,11 +459,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } @@ -475,7 +473,7 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -484,14 +482,14 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { func TestUint128PairProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -512,12 +510,12 @@ func TestUint128PairProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUint128PairProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Uint128Pair, 10000) for i := 0; i < 10000; i++ { @@ -525,7 +523,7 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -535,11 +533,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } @@ -549,7 +547,7 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -558,14 +556,14 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { func TestContainsNestedMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -586,12 +584,12 @@ func TestContainsNestedMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap, 10000) for i := 0; i < 10000; i++ { @@ -599,7 +597,7 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -609,11 +607,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } @@ -623,7 +621,7 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -632,14 +630,14 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { func TestContainsNestedMap_NestedMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -660,12 +658,12 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap_NestedMap, 10000) for i := 0; i < 10000; i++ { @@ -673,7 +671,7 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -683,11 +681,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } @@ -697,7 +695,7 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -706,14 +704,14 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { func TestNotPackedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -734,12 +732,12 @@ func TestNotPackedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNotPackedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NotPacked, 10000) for i := 0; i < 10000; i++ { @@ -747,7 +745,7 @@ func BenchmarkNotPackedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -757,11 +755,11 @@ func BenchmarkNotPackedProtoMarshal(b *testing.B) { } func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNotPacked(popr, false)) if err != nil { panic(err) } @@ -771,7 +769,7 @@ func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -780,15 +778,15 @@ func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -801,15 +799,15 @@ func TestMessageJSON(t *testing.T) { } func TestNestedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -822,15 +820,15 @@ func TestNestedJSON(t *testing.T) { } func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -843,15 +841,15 @@ func TestAllMapsJSON(t *testing.T) { } func TestAllMapsOrderedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -864,15 +862,15 @@ func TestAllMapsOrderedJSON(t *testing.T) { } func TestMessageWithMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -885,15 +883,15 @@ func TestMessageWithMapJSON(t *testing.T) { } func TestFloatingPointJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -906,15 +904,15 @@ func TestFloatingPointJSON(t *testing.T) { } func TestUint128PairJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -927,15 +925,15 @@ func TestUint128PairJSON(t *testing.T) { } func TestContainsNestedMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -948,15 +946,15 @@ func TestContainsNestedMapJSON(t *testing.T) { } func TestContainsNestedMap_NestedMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -969,15 +967,15 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { } func TestNotPackedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -990,11 +988,11 @@ func TestNotPackedJSON(t *testing.T) { } func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1007,11 +1005,11 @@ func TestMessageProtoText(t *testing.T) { func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1024,11 +1022,11 @@ func TestMessageProtoCompactText(t *testing.T) { func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1041,11 +1039,11 @@ func TestNestedProtoText(t *testing.T) { func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1058,11 +1056,11 @@ func TestNestedProtoCompactText(t *testing.T) { func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1075,11 +1073,11 @@ func TestAllMapsProtoText(t *testing.T) { func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1092,11 +1090,11 @@ func TestAllMapsProtoCompactText(t *testing.T) { func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1109,11 +1107,11 @@ func TestAllMapsOrderedProtoText(t *testing.T) { func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1126,11 +1124,11 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1143,11 +1141,11 @@ func TestMessageWithMapProtoText(t *testing.T) { func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1160,11 +1158,11 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1177,11 +1175,11 @@ func TestFloatingPointProtoText(t *testing.T) { func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1194,11 +1192,11 @@ func TestFloatingPointProtoCompactText(t *testing.T) { func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1211,11 +1209,11 @@ func TestUint128PairProtoText(t *testing.T) { func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1228,11 +1226,11 @@ func TestUint128PairProtoCompactText(t *testing.T) { func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1245,11 +1243,11 @@ func TestContainsNestedMapProtoText(t *testing.T) { func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1262,11 +1260,11 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1279,11 +1277,11 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1296,11 +1294,11 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { func TestNotPackedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1313,11 +1311,11 @@ func TestNotPackedProtoText(t *testing.T) { func TestNotPackedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1332,14 +1330,14 @@ func TestTheproto3Description(t *testing.T) { Theproto3Description() } func TestMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1347,14 +1345,14 @@ func TestMessageVerboseEqual(t *testing.T) { } } func TestNestedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1362,14 +1360,14 @@ func TestNestedVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1377,14 +1375,14 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1392,14 +1390,14 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestMessageWithMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1407,14 +1405,14 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { } } func TestFloatingPointVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1422,14 +1420,14 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestUint128PairVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1437,14 +1435,14 @@ func TestUint128PairVerboseEqual(t *testing.T) { } } func TestContainsNestedMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1452,14 +1450,14 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { } } func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1467,14 +1465,14 @@ func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { } } func TestNotPackedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1482,7 +1480,7 @@ func TestNotPackedVerboseEqual(t *testing.T) { } } func TestMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1490,7 +1488,7 @@ func TestMessageFace(t *testing.T) { } } func TestNestedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1498,7 +1496,7 @@ func TestNestedFace(t *testing.T) { } } func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1506,7 +1504,7 @@ func TestAllMapsFace(t *testing.T) { } } func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1514,7 +1512,7 @@ func TestAllMapsOrderedFace(t *testing.T) { } } func TestMessageWithMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1522,7 +1520,7 @@ func TestMessageWithMapFace(t *testing.T) { } } func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1530,7 +1528,7 @@ func TestFloatingPointFace(t *testing.T) { } } func TestUint128PairFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1538,7 +1536,7 @@ func TestUint128PairFace(t *testing.T) { } } func TestContainsNestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1546,7 +1544,7 @@ func TestContainsNestedMapFace(t *testing.T) { } } func TestContainsNestedMap_NestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1554,7 +1552,7 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { } } func TestNotPackedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1562,141 +1560,141 @@ func TestNotPackedFace(t *testing.T) { } } func TestMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMessageWithMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUint128PairGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestContainsNestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestContainsNestedMap_NestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNotPackedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1707,14 +1705,14 @@ func TestMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 1000) for i := 0; i < 1000; i++ { @@ -1729,10 +1727,10 @@ func BenchmarkMessageSize(b *testing.B) { func TestNestedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1743,14 +1741,14 @@ func TestNestedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nested, 1000) for i := 0; i < 1000; i++ { @@ -1765,10 +1763,10 @@ func BenchmarkNestedSize(b *testing.B) { func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1779,14 +1777,14 @@ func TestAllMapsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 1000) for i := 0; i < 1000; i++ { @@ -1801,10 +1799,10 @@ func BenchmarkAllMapsSize(b *testing.B) { func TestAllMapsOrderedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1815,14 +1813,14 @@ func TestAllMapsOrderedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 1000) for i := 0; i < 1000; i++ { @@ -1837,10 +1835,10 @@ func BenchmarkAllMapsOrderedSize(b *testing.B) { func TestMessageWithMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1851,14 +1849,14 @@ func TestMessageWithMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageWithMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MessageWithMap, 1000) for i := 0; i < 1000; i++ { @@ -1873,10 +1871,10 @@ func BenchmarkMessageWithMapSize(b *testing.B) { func TestFloatingPointSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1887,14 +1885,14 @@ func TestFloatingPointSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 1000) for i := 0; i < 1000; i++ { @@ -1909,10 +1907,10 @@ func BenchmarkFloatingPointSize(b *testing.B) { func TestUint128PairSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1923,14 +1921,14 @@ func TestUint128PairSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUint128PairSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Uint128Pair, 1000) for i := 0; i < 1000; i++ { @@ -1945,10 +1943,10 @@ func BenchmarkUint128PairSize(b *testing.B) { func TestContainsNestedMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1959,14 +1957,14 @@ func TestContainsNestedMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkContainsNestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap, 1000) for i := 0; i < 1000; i++ { @@ -1981,10 +1979,10 @@ func BenchmarkContainsNestedMapSize(b *testing.B) { func TestContainsNestedMap_NestedMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1995,14 +1993,14 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap_NestedMap, 1000) for i := 0; i < 1000; i++ { @@ -2017,10 +2015,10 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { func TestNotPackedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2031,14 +2029,14 @@ func TestNotPackedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNotPackedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NotPacked, 1000) for i := 0; i < 1000; i++ { @@ -2052,7 +2050,7 @@ func BenchmarkNotPackedSize(b *testing.B) { } func TestMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2061,7 +2059,7 @@ func TestMessageStringer(t *testing.T) { } } func TestNestedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2070,7 +2068,7 @@ func TestNestedStringer(t *testing.T) { } } func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2079,7 +2077,7 @@ func TestAllMapsStringer(t *testing.T) { } } func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2088,7 +2086,7 @@ func TestAllMapsOrderedStringer(t *testing.T) { } } func TestMessageWithMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2097,7 +2095,7 @@ func TestMessageWithMapStringer(t *testing.T) { } } func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2106,7 +2104,7 @@ func TestFloatingPointStringer(t *testing.T) { } } func TestUint128PairStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2115,7 +2113,7 @@ func TestUint128PairStringer(t *testing.T) { } } func TestContainsNestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2124,7 +2122,7 @@ func TestContainsNestedMapStringer(t *testing.T) { } } func TestContainsNestedMap_NestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2133,7 +2131,7 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { } } func TestNotPackedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go index 2735ac7b5..e9a180522 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/theproto3.proto -// DO NOT EDIT! /* Package theproto3 is a generated protocol buffer package. @@ -29,19 +28,19 @@ import test "github.com/gogo/protobuf/test/combos/both" import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strconv "strconv" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" import io "io" +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -240,542 +239,549 @@ func init() { proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) } -func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Message) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *Nested) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Nested) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMaps) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AllMapsOrdered) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *MessageWithMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *MessageWithMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *FloatingPoint) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *Uint128Pair) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Uint128Pair) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ContainsNestedMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ContainsNestedMap_NestedMap) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NotPacked) Description() (desc *descriptor.FileDescriptorSet) { return Theproto3Description() } -func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func Theproto3Description() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 7844 bytes of a gzipped FileDescriptorSet + // 7955 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, - 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, - 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x90, 0x73, 0xc1, 0x58, 0x52, 0x00, 0x10, 0x1c, 0x71, - 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0xeb, 0x54, 0x50, 0x4d, 0xe0, 0x90, 0x6c, 0x09, 0xe8, 0xc6, - 0xa2, 0x1b, 0x92, 0xe8, 0x87, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xa4, 0x72, 0xdd, 0xa4, 0xe2, 0x75, - 0x7c, 0x91, 0x37, 0xb5, 0xb1, 0x77, 0x37, 0x17, 0xaf, 0xb3, 0x71, 0xb6, 0xb6, 0x52, 0x59, 0xe5, - 0xc1, 0xc9, 0xe4, 0x25, 0xe5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0xbb, 0x6a, 0x9d, 0xc4, - 0x49, 0xbc, 0x59, 0x57, 0xed, 0x56, 0x79, 0x1f, 0x52, 0xe7, 0xd6, 0x7d, 0x4e, 0xa3, 0x81, 0x06, - 0x47, 0x92, 0xed, 0x07, 0xbd, 0xcc, 0xa0, 0xcf, 0xf9, 0xbf, 0xaf, 0xff, 0xfe, 0x6f, 0xe7, 0xef, - 0xd3, 0x0d, 0x10, 0xbe, 0xb7, 0x06, 0x17, 0x8e, 0x1d, 0xe7, 0xb8, 0x81, 0xae, 0xb4, 0xda, 0x8e, - 0xe7, 0x1c, 0x76, 0x8e, 0xae, 0xd4, 0x91, 0x5b, 0x6b, 0x5b, 0x2d, 0xcf, 0x69, 0x2f, 0x91, 0x31, - 0x7d, 0x92, 0x4a, 0x2c, 0x71, 0x89, 0xdc, 0x36, 0x4c, 0x6d, 0x58, 0x0d, 0xb4, 0xee, 0x0b, 0xee, - 0x21, 0x4f, 0xbf, 0x09, 0xc9, 0x23, 0xab, 0x81, 0xb2, 0xca, 0x05, 0x75, 0x21, 0xbd, 0x72, 0x69, - 0x29, 0x04, 0x5a, 0x92, 0x11, 0xbb, 0x78, 0xd8, 0x20, 0x88, 0xdc, 0xf7, 0x93, 0x30, 0x1d, 0x31, - 0xab, 0xeb, 0x90, 0xb4, 0xcd, 0x26, 0x66, 0x54, 0x16, 0xc6, 0x0c, 0xf2, 0x59, 0xcf, 0xc2, 0x68, - 0xcb, 0xac, 0xbd, 0x6a, 0x1e, 0xa3, 0x6c, 0x82, 0x0c, 0xf3, 0x43, 0x7d, 0x0e, 0xa0, 0x8e, 0x5a, - 0xc8, 0xae, 0x23, 0xbb, 0x76, 0x9a, 0x55, 0x2f, 0xa8, 0x0b, 0x63, 0x86, 0x30, 0xa2, 0x7f, 0x04, - 0xa6, 0x5a, 0x9d, 0xc3, 0x86, 0x55, 0xab, 0x0a, 0x62, 0x70, 0x41, 0x5d, 0x18, 0x36, 0x34, 0x3a, - 0xb1, 0x1e, 0x08, 0x3f, 0x0d, 0x93, 0xaf, 0x23, 0xf3, 0x55, 0x51, 0x34, 0x4d, 0x44, 0x27, 0xf0, - 0xb0, 0x20, 0x58, 0x82, 0x4c, 0x13, 0xb9, 0xae, 0x79, 0x8c, 0xaa, 0xde, 0x69, 0x0b, 0x65, 0x93, - 0xe4, 0xea, 0x2f, 0x74, 0x5d, 0x7d, 0xf8, 0xca, 0xd3, 0x0c, 0xb5, 0x7f, 0xda, 0x42, 0x7a, 0x01, - 0xc6, 0x90, 0xdd, 0x69, 0x52, 0x86, 0xe1, 0x1e, 0xf6, 0x2b, 0xdb, 0x9d, 0x66, 0x98, 0x25, 0x85, - 0x61, 0x8c, 0x62, 0xd4, 0x45, 0xed, 0xd7, 0xac, 0x1a, 0xca, 0x8e, 0x10, 0x82, 0xa7, 0xbb, 0x08, - 0xf6, 0xe8, 0x7c, 0x98, 0x83, 0xe3, 0xf4, 0x12, 0x8c, 0xa1, 0x37, 0x3c, 0x64, 0xbb, 0x96, 0x63, - 0x67, 0x47, 0x09, 0xc9, 0x53, 0x11, 0x5e, 0x44, 0x8d, 0x7a, 0x98, 0x22, 0xc0, 0xe9, 0xd7, 0x61, - 0xd4, 0x69, 0x79, 0x96, 0x63, 0xbb, 0xd9, 0xd4, 0x05, 0x65, 0x21, 0xbd, 0x72, 0x3e, 0x32, 0x10, - 0x76, 0xa8, 0x8c, 0xc1, 0x85, 0xf5, 0x4d, 0xd0, 0x5c, 0xa7, 0xd3, 0xae, 0xa1, 0x6a, 0xcd, 0xa9, - 0xa3, 0xaa, 0x65, 0x1f, 0x39, 0xd9, 0x31, 0x42, 0x30, 0xdf, 0x7d, 0x21, 0x44, 0xb0, 0xe4, 0xd4, - 0xd1, 0xa6, 0x7d, 0xe4, 0x18, 0x13, 0xae, 0x74, 0xac, 0xcf, 0xc0, 0x88, 0x7b, 0x6a, 0x7b, 0xe6, - 0x1b, 0xd9, 0x0c, 0x89, 0x10, 0x76, 0x94, 0xfb, 0xd3, 0x61, 0x98, 0x1c, 0x24, 0xc4, 0x6e, 0xc3, - 0xf0, 0x11, 0xbe, 0xca, 0x6c, 0xe2, 0x2c, 0x36, 0xa0, 0x18, 0xd9, 0x88, 0x23, 0x0f, 0x69, 0xc4, - 0x02, 0xa4, 0x6d, 0xe4, 0x7a, 0xa8, 0x4e, 0x23, 0x42, 0x1d, 0x30, 0xa6, 0x80, 0x82, 0xba, 0x43, - 0x2a, 0xf9, 0x50, 0x21, 0xf5, 0x32, 0x4c, 0xfa, 0x2a, 0x55, 0xdb, 0xa6, 0x7d, 0xcc, 0x63, 0xf3, - 0x4a, 0x9c, 0x26, 0x4b, 0x65, 0x8e, 0x33, 0x30, 0xcc, 0x98, 0x40, 0xd2, 0xb1, 0xbe, 0x0e, 0xe0, - 0xd8, 0xc8, 0x39, 0xaa, 0xd6, 0x51, 0xad, 0x91, 0x4d, 0xf5, 0xb0, 0xd2, 0x0e, 0x16, 0xe9, 0xb2, - 0x92, 0x43, 0x47, 0x6b, 0x0d, 0xfd, 0x56, 0x10, 0x6a, 0xa3, 0x3d, 0x22, 0x65, 0x9b, 0x26, 0x59, - 0x57, 0xb4, 0x1d, 0xc0, 0x44, 0x1b, 0xe1, 0xb8, 0x47, 0x75, 0x76, 0x65, 0x63, 0x44, 0x89, 0xa5, - 0xd8, 0x2b, 0x33, 0x18, 0x8c, 0x5e, 0xd8, 0x78, 0x5b, 0x3c, 0xd4, 0x9f, 0x04, 0x7f, 0xa0, 0x4a, - 0xc2, 0x0a, 0x48, 0x15, 0xca, 0xf0, 0xc1, 0x8a, 0xd9, 0x44, 0xb3, 0x37, 0x61, 0x42, 0x36, 0x8f, - 0x7e, 0x0e, 0x86, 0x5d, 0xcf, 0x6c, 0x7b, 0x24, 0x0a, 0x87, 0x0d, 0x7a, 0xa0, 0x6b, 0xa0, 0x22, - 0xbb, 0x4e, 0xaa, 0xdc, 0xb0, 0x81, 0x3f, 0xce, 0xde, 0x80, 0x71, 0xe9, 0xf4, 0x83, 0x02, 0x73, - 0x9f, 0x1b, 0x81, 0x73, 0x51, 0x31, 0x17, 0x19, 0xfe, 0x33, 0x30, 0x62, 0x77, 0x9a, 0x87, 0xa8, - 0x9d, 0x55, 0x09, 0x03, 0x3b, 0xd2, 0x0b, 0x30, 0xdc, 0x30, 0x0f, 0x51, 0x23, 0x9b, 0xbc, 0xa0, - 0x2c, 0x4c, 0xac, 0x7c, 0x64, 0xa0, 0xa8, 0x5e, 0xda, 0xc2, 0x10, 0x83, 0x22, 0xf5, 0xe7, 0x21, - 0xc9, 0x4a, 0x1c, 0x66, 0x58, 0x1c, 0x8c, 0x01, 0xc7, 0xa2, 0x41, 0x70, 0xfa, 0xe3, 0x30, 0x86, - 0xff, 0xa7, 0xb6, 0x1d, 0x21, 0x3a, 0xa7, 0xf0, 0x00, 0xb6, 0xab, 0x3e, 0x0b, 0x29, 0x12, 0x66, - 0x75, 0xc4, 0x97, 0x06, 0xff, 0x18, 0x3b, 0xa6, 0x8e, 0x8e, 0xcc, 0x4e, 0xc3, 0xab, 0xbe, 0x66, - 0x36, 0x3a, 0x88, 0x04, 0xcc, 0x98, 0x91, 0x61, 0x83, 0x9f, 0xc4, 0x63, 0xfa, 0x3c, 0xa4, 0x69, - 0x54, 0x5a, 0x76, 0x1d, 0xbd, 0x41, 0xaa, 0xcf, 0xb0, 0x41, 0x03, 0x75, 0x13, 0x8f, 0xe0, 0xd3, - 0xbf, 0xe2, 0x3a, 0x36, 0x77, 0x2d, 0x39, 0x05, 0x1e, 0x20, 0xa7, 0xbf, 0x11, 0x2e, 0x7c, 0x4f, - 0x44, 0x5f, 0x5e, 0x38, 0x16, 0x73, 0xdf, 0x4c, 0x40, 0x92, 0xe4, 0xdb, 0x24, 0xa4, 0xf7, 0xef, - 0xed, 0x96, 0xab, 0xeb, 0x3b, 0x07, 0xc5, 0xad, 0xb2, 0xa6, 0xe8, 0x13, 0x00, 0x64, 0x60, 0x63, - 0x6b, 0xa7, 0xb0, 0xaf, 0x25, 0xfc, 0xe3, 0xcd, 0xca, 0xfe, 0xf5, 0x55, 0x4d, 0xf5, 0x01, 0x07, - 0x74, 0x20, 0x29, 0x0a, 0x5c, 0x5b, 0xd1, 0x86, 0x75, 0x0d, 0x32, 0x94, 0x60, 0xf3, 0xe5, 0xf2, - 0xfa, 0xf5, 0x55, 0x6d, 0x44, 0x1e, 0xb9, 0xb6, 0xa2, 0x8d, 0xea, 0xe3, 0x30, 0x46, 0x46, 0x8a, - 0x3b, 0x3b, 0x5b, 0x5a, 0xca, 0xe7, 0xdc, 0xdb, 0x37, 0x36, 0x2b, 0x77, 0xb4, 0x31, 0x9f, 0xf3, - 0x8e, 0xb1, 0x73, 0xb0, 0xab, 0x81, 0xcf, 0xb0, 0x5d, 0xde, 0xdb, 0x2b, 0xdc, 0x29, 0x6b, 0x69, - 0x5f, 0xa2, 0x78, 0x6f, 0xbf, 0xbc, 0xa7, 0x65, 0x24, 0xb5, 0xae, 0xad, 0x68, 0xe3, 0xfe, 0x29, - 0xca, 0x95, 0x83, 0x6d, 0x6d, 0x42, 0x9f, 0x82, 0x71, 0x7a, 0x0a, 0xae, 0xc4, 0x64, 0x68, 0xe8, - 0xfa, 0xaa, 0xa6, 0x05, 0x8a, 0x50, 0x96, 0x29, 0x69, 0xe0, 0xfa, 0xaa, 0xa6, 0xe7, 0x4a, 0x30, - 0x4c, 0xa2, 0x4b, 0xd7, 0x61, 0x62, 0xab, 0x50, 0x2c, 0x6f, 0x55, 0x77, 0x76, 0xf7, 0x37, 0x77, - 0x2a, 0x85, 0x2d, 0x4d, 0x09, 0xc6, 0x8c, 0xf2, 0x27, 0x0e, 0x36, 0x8d, 0xf2, 0xba, 0x96, 0x10, - 0xc7, 0x76, 0xcb, 0x85, 0xfd, 0xf2, 0xba, 0xa6, 0xe6, 0x6a, 0x70, 0x2e, 0xaa, 0xce, 0x44, 0x66, - 0x86, 0xe0, 0xe2, 0x44, 0x0f, 0x17, 0x13, 0xae, 0x2e, 0x17, 0xff, 0xba, 0x02, 0xd3, 0x11, 0xb5, - 0x36, 0xf2, 0x24, 0x2f, 0xc0, 0x30, 0x0d, 0x51, 0xba, 0xfa, 0x3c, 0x13, 0x59, 0xb4, 0x49, 0xc0, - 0x76, 0xad, 0x40, 0x04, 0x27, 0xae, 0xc0, 0x6a, 0x8f, 0x15, 0x18, 0x53, 0x74, 0x29, 0xf9, 0x19, - 0x05, 0xb2, 0xbd, 0xb8, 0x63, 0x0a, 0x45, 0x42, 0x2a, 0x14, 0xb7, 0xc3, 0x0a, 0x5c, 0xec, 0x7d, - 0x0d, 0x5d, 0x5a, 0x7c, 0x55, 0x81, 0x99, 0xe8, 0x46, 0x25, 0x52, 0x87, 0xe7, 0x61, 0xa4, 0x89, - 0xbc, 0x13, 0x87, 0x2f, 0xd6, 0x97, 0x23, 0x96, 0x00, 0x3c, 0x1d, 0xb6, 0x15, 0x43, 0x89, 0x6b, - 0x88, 0xda, 0xab, 0xdb, 0xa0, 0xda, 0x74, 0x69, 0xfa, 0x2b, 0x09, 0x78, 0x24, 0x92, 0x3c, 0x52, - 0xd1, 0x27, 0x00, 0x2c, 0xbb, 0xd5, 0xf1, 0xe8, 0x82, 0x4c, 0xeb, 0xd3, 0x18, 0x19, 0x21, 0xb9, - 0x8f, 0x6b, 0x4f, 0xc7, 0xf3, 0xe7, 0x55, 0x32, 0x0f, 0x74, 0x88, 0x08, 0xdc, 0x0c, 0x14, 0x4d, - 0x12, 0x45, 0xe7, 0x7a, 0x5c, 0x69, 0xd7, 0x5a, 0xb7, 0x0c, 0x5a, 0xad, 0x61, 0x21, 0xdb, 0xab, - 0xba, 0x5e, 0x1b, 0x99, 0x4d, 0xcb, 0x3e, 0x26, 0x05, 0x38, 0x95, 0x1f, 0x3e, 0x32, 0x1b, 0x2e, - 0x32, 0x26, 0xe9, 0xf4, 0x1e, 0x9f, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x05, 0xc4, 0x88, 0x84, 0xa0, - 0xd3, 0x3e, 0x22, 0xf7, 0xdb, 0xa3, 0x90, 0x16, 0xda, 0x3a, 0xfd, 0x22, 0x64, 0x5e, 0x31, 0x5f, - 0x33, 0xab, 0xbc, 0x55, 0xa7, 0x96, 0x48, 0xe3, 0xb1, 0x5d, 0xd6, 0xae, 0x2f, 0xc3, 0x39, 0x22, - 0xe2, 0x74, 0x3c, 0xd4, 0xae, 0xd6, 0x1a, 0xa6, 0xeb, 0x12, 0xa3, 0xa5, 0x88, 0xa8, 0x8e, 0xe7, - 0x76, 0xf0, 0x54, 0x89, 0xcf, 0xe8, 0x6b, 0x30, 0x4d, 0x10, 0xcd, 0x4e, 0xc3, 0xb3, 0x5a, 0x0d, - 0x54, 0xc5, 0x37, 0x0f, 0x2e, 0x29, 0xc4, 0xbe, 0x66, 0x53, 0x58, 0x62, 0x9b, 0x09, 0x60, 0x8d, - 0x5c, 0x7d, 0x1d, 0x9e, 0x20, 0xb0, 0x63, 0x64, 0xa3, 0xb6, 0xe9, 0xa1, 0x2a, 0xfa, 0xc5, 0x8e, - 0xd9, 0x70, 0xab, 0xa6, 0x5d, 0xaf, 0x9e, 0x98, 0xee, 0x49, 0xf6, 0x1c, 0x26, 0x28, 0x26, 0xb2, - 0x8a, 0xf1, 0x18, 0x16, 0xbc, 0xc3, 0xe4, 0xca, 0x44, 0xac, 0x60, 0xd7, 0x5f, 0x34, 0xdd, 0x13, - 0x3d, 0x0f, 0x33, 0x84, 0xc5, 0xf5, 0xda, 0x96, 0x7d, 0x5c, 0xad, 0x9d, 0xa0, 0xda, 0xab, 0xd5, - 0x8e, 0x77, 0x74, 0x33, 0xfb, 0xb8, 0x78, 0x7e, 0xa2, 0xe1, 0x1e, 0x91, 0x29, 0x61, 0x91, 0x03, - 0xef, 0xe8, 0xa6, 0xbe, 0x07, 0x19, 0xec, 0x8c, 0xa6, 0xf5, 0x69, 0x54, 0x3d, 0x72, 0xda, 0x64, - 0x65, 0x99, 0x88, 0xc8, 0x6c, 0xc1, 0x82, 0x4b, 0x3b, 0x0c, 0xb0, 0xed, 0xd4, 0x51, 0x7e, 0x78, - 0x6f, 0xb7, 0x5c, 0x5e, 0x37, 0xd2, 0x9c, 0x65, 0xc3, 0x69, 0xe3, 0x80, 0x3a, 0x76, 0x7c, 0x03, - 0xa7, 0x69, 0x40, 0x1d, 0x3b, 0xdc, 0xbc, 0x6b, 0x30, 0x5d, 0xab, 0xd1, 0x6b, 0xb6, 0x6a, 0x55, - 0xd6, 0xe2, 0xbb, 0x59, 0x4d, 0x32, 0x56, 0xad, 0x76, 0x87, 0x0a, 0xb0, 0x18, 0x77, 0xf5, 0x5b, - 0xf0, 0x48, 0x60, 0x2c, 0x11, 0x38, 0xd5, 0x75, 0x95, 0x61, 0xe8, 0x1a, 0x4c, 0xb7, 0x4e, 0xbb, - 0x81, 0xba, 0x74, 0xc6, 0xd6, 0x69, 0x18, 0xf6, 0x14, 0xb9, 0x6d, 0x6b, 0xa3, 0x9a, 0xe9, 0xa1, - 0x7a, 0xf6, 0x51, 0x51, 0x5a, 0x98, 0xd0, 0xaf, 0x80, 0x56, 0xab, 0x55, 0x91, 0x6d, 0x1e, 0x36, - 0x50, 0xd5, 0x6c, 0x23, 0xdb, 0x74, 0xb3, 0xf3, 0xa2, 0xf0, 0x44, 0xad, 0x56, 0x26, 0xb3, 0x05, - 0x32, 0xa9, 0x2f, 0xc2, 0x94, 0x73, 0xf8, 0x4a, 0x8d, 0x46, 0x56, 0xb5, 0xd5, 0x46, 0x47, 0xd6, - 0x1b, 0xd9, 0x4b, 0xc4, 0x4c, 0x93, 0x78, 0x82, 0xc4, 0xd5, 0x2e, 0x19, 0xd6, 0x9f, 0x01, 0xad, - 0xe6, 0x9e, 0x98, 0xed, 0x16, 0x59, 0xda, 0xdd, 0x96, 0x59, 0x43, 0xd9, 0xa7, 0xa8, 0x28, 0x1d, - 0xaf, 0xf0, 0x61, 0x1c, 0xd9, 0xee, 0xeb, 0xd6, 0x91, 0xc7, 0x19, 0x9f, 0xa6, 0x91, 0x4d, 0xc6, - 0x18, 0xdb, 0xcb, 0x70, 0xae, 0x63, 0x5b, 0xb6, 0x87, 0xda, 0xad, 0x36, 0xc2, 0x4d, 0x3c, 0xcd, - 0xc4, 0xec, 0x1f, 0x8d, 0xf6, 0x68, 0xc3, 0x0f, 0x44, 0x69, 0x1a, 0x00, 0xc6, 0x74, 0xa7, 0x7b, - 0x30, 0x97, 0x87, 0x8c, 0x18, 0x17, 0xfa, 0x18, 0xd0, 0xc8, 0xd0, 0x14, 0xbc, 0xc6, 0x96, 0x76, - 0xd6, 0xf1, 0xea, 0xf8, 0x0b, 0x65, 0x2d, 0x81, 0x57, 0xe9, 0xad, 0xcd, 0xfd, 0x72, 0xd5, 0x38, - 0xa8, 0xec, 0x6f, 0x6e, 0x97, 0x35, 0x75, 0x71, 0x2c, 0xf5, 0x83, 0x51, 0xed, 0xcd, 0x37, 0xdf, - 0x7c, 0x33, 0x91, 0xfb, 0x56, 0x02, 0x26, 0xe4, 0xce, 0x58, 0xff, 0x18, 0x3c, 0xca, 0x6f, 0x63, - 0x5d, 0xe4, 0x55, 0x5f, 0xb7, 0xda, 0x24, 0x54, 0x9b, 0x26, 0xed, 0x2d, 0x7d, 0x2b, 0x9f, 0x63, - 0x52, 0x7b, 0xc8, 0x7b, 0xc9, 0x6a, 0xe3, 0x40, 0x6c, 0x9a, 0x9e, 0xbe, 0x05, 0xf3, 0xb6, 0x53, - 0x75, 0x3d, 0xd3, 0xae, 0x9b, 0xed, 0x7a, 0x35, 0xd8, 0x40, 0xa8, 0x9a, 0xb5, 0x1a, 0x72, 0x5d, - 0x87, 0x2e, 0x11, 0x3e, 0xcb, 0x79, 0xdb, 0xd9, 0x63, 0xc2, 0x41, 0xed, 0x2c, 0x30, 0xd1, 0x50, - 0x44, 0xa8, 0xbd, 0x22, 0xe2, 0x71, 0x18, 0x6b, 0x9a, 0xad, 0x2a, 0xb2, 0xbd, 0xf6, 0x29, 0xe9, - 0xe7, 0x52, 0x46, 0xaa, 0x69, 0xb6, 0xca, 0xf8, 0xf8, 0x83, 0xf3, 0x81, 0x68, 0xc7, 0xff, 0xae, - 0x42, 0x46, 0xec, 0xe9, 0x70, 0x8b, 0x5c, 0x23, 0xf5, 0x5b, 0x21, 0x19, 0xfe, 0x64, 0xdf, 0x0e, - 0x70, 0xa9, 0x84, 0x0b, 0x7b, 0x7e, 0x84, 0x76, 0x5a, 0x06, 0x45, 0xe2, 0x45, 0x15, 0xe7, 0x34, - 0xa2, 0xfd, 0x7b, 0xca, 0x60, 0x47, 0xfa, 0x1d, 0x18, 0x79, 0xc5, 0x25, 0xdc, 0x23, 0x84, 0xfb, - 0x52, 0x7f, 0xee, 0xbb, 0x7b, 0x84, 0x7c, 0xec, 0xee, 0x5e, 0xb5, 0xb2, 0x63, 0x6c, 0x17, 0xb6, - 0x0c, 0x06, 0xd7, 0x1f, 0x83, 0x64, 0xc3, 0xfc, 0xf4, 0xa9, 0xbc, 0x04, 0x90, 0xa1, 0x41, 0x0d, - 0xff, 0x18, 0x24, 0x5f, 0x47, 0xe6, 0xab, 0x72, 0xe1, 0x25, 0x43, 0x1f, 0x60, 0xe8, 0x5f, 0x81, - 0x61, 0x62, 0x2f, 0x1d, 0x80, 0x59, 0x4c, 0x1b, 0xd2, 0x53, 0x90, 0x2c, 0xed, 0x18, 0x38, 0xfc, - 0x35, 0xc8, 0xd0, 0xd1, 0xea, 0xee, 0x66, 0xb9, 0x54, 0xd6, 0x12, 0xb9, 0x35, 0x18, 0xa1, 0x46, - 0xc0, 0xa9, 0xe1, 0x9b, 0x41, 0x1b, 0x62, 0x87, 0x8c, 0x43, 0xe1, 0xb3, 0x07, 0xdb, 0xc5, 0xb2, - 0xa1, 0x25, 0x44, 0xf7, 0xba, 0x90, 0x11, 0xdb, 0xb9, 0x9f, 0x4e, 0x4c, 0xfd, 0xbe, 0x02, 0x69, - 0xa1, 0x3d, 0xc3, 0x8d, 0x81, 0xd9, 0x68, 0x38, 0xaf, 0x57, 0xcd, 0x86, 0x65, 0xba, 0x2c, 0x28, - 0x80, 0x0c, 0x15, 0xf0, 0xc8, 0xa0, 0x4e, 0xfb, 0xa9, 0x28, 0xff, 0x25, 0x05, 0xb4, 0x70, 0x6b, - 0x17, 0x52, 0x50, 0xf9, 0x99, 0x2a, 0xf8, 0x05, 0x05, 0x26, 0xe4, 0x7e, 0x2e, 0xa4, 0xde, 0xc5, - 0x9f, 0xa9, 0x7a, 0xdf, 0x4d, 0xc0, 0xb8, 0xd4, 0xc5, 0x0d, 0xaa, 0xdd, 0x2f, 0xc2, 0x94, 0x55, - 0x47, 0xcd, 0x96, 0xe3, 0x21, 0xbb, 0x76, 0x5a, 0x6d, 0xa0, 0xd7, 0x50, 0x23, 0x9b, 0x23, 0x85, - 0xe2, 0x4a, 0xff, 0x3e, 0x71, 0x69, 0x33, 0xc0, 0x6d, 0x61, 0x58, 0x7e, 0x7a, 0x73, 0xbd, 0xbc, - 0xbd, 0xbb, 0xb3, 0x5f, 0xae, 0x94, 0xee, 0x55, 0x0f, 0x2a, 0x1f, 0xaf, 0xec, 0xbc, 0x54, 0x31, - 0x34, 0x2b, 0x24, 0xf6, 0x01, 0xa6, 0xfa, 0x2e, 0x68, 0x61, 0xa5, 0xf4, 0x47, 0x21, 0x4a, 0x2d, - 0x6d, 0x48, 0x9f, 0x86, 0xc9, 0xca, 0x4e, 0x75, 0x6f, 0x73, 0xbd, 0x5c, 0x2d, 0x6f, 0x6c, 0x94, - 0x4b, 0xfb, 0x7b, 0xf4, 0xc6, 0xd9, 0x97, 0xde, 0x97, 0x93, 0xfa, 0xf3, 0x2a, 0x4c, 0x47, 0x68, - 0xa2, 0x17, 0x58, 0xcf, 0x4e, 0x6f, 0x23, 0x9e, 0x1d, 0x44, 0xfb, 0x25, 0xdc, 0x15, 0xec, 0x9a, - 0x6d, 0x8f, 0xb5, 0xf8, 0xcf, 0x00, 0xb6, 0x92, 0xed, 0x59, 0x47, 0x16, 0x6a, 0xb3, 0x7d, 0x06, - 0xda, 0xc8, 0x4f, 0x06, 0xe3, 0x74, 0xab, 0xe1, 0xa3, 0xa0, 0xb7, 0x1c, 0xd7, 0xf2, 0xac, 0xd7, - 0x50, 0xd5, 0xb2, 0xf9, 0xa6, 0x04, 0x6e, 0xec, 0x93, 0x86, 0xc6, 0x67, 0x36, 0x6d, 0xcf, 0x97, - 0xb6, 0xd1, 0xb1, 0x19, 0x92, 0xc6, 0x05, 0x5c, 0x35, 0x34, 0x3e, 0xe3, 0x4b, 0x5f, 0x84, 0x4c, - 0xdd, 0xe9, 0xe0, 0x36, 0x89, 0xca, 0xe1, 0xf5, 0x42, 0x31, 0xd2, 0x74, 0xcc, 0x17, 0x61, 0x7d, - 0x6c, 0xb0, 0x1b, 0x92, 0x31, 0xd2, 0x74, 0x8c, 0x8a, 0x3c, 0x0d, 0x93, 0xe6, 0xf1, 0x71, 0x1b, - 0x93, 0x73, 0x22, 0xda, 0x99, 0x4f, 0xf8, 0xc3, 0x44, 0x70, 0xf6, 0x2e, 0xa4, 0xb8, 0x1d, 0xf0, - 0x92, 0x8c, 0x2d, 0x51, 0x6d, 0xd1, 0x3d, 0xa9, 0xc4, 0xc2, 0x98, 0x91, 0xb2, 0xf9, 0xe4, 0x45, - 0xc8, 0x58, 0x6e, 0x35, 0xd8, 0x1c, 0x4d, 0x5c, 0x48, 0x2c, 0xa4, 0x8c, 0xb4, 0xe5, 0xfa, 0xbb, - 0x61, 0xb9, 0xaf, 0x26, 0x60, 0x42, 0xde, 0xdc, 0xd5, 0xd7, 0x21, 0xd5, 0x70, 0x6a, 0x26, 0x09, - 0x2d, 0xfa, 0x64, 0x61, 0x21, 0x66, 0x3f, 0x78, 0x69, 0x8b, 0xc9, 0x1b, 0x3e, 0x72, 0xf6, 0x3f, - 0x2b, 0x90, 0xe2, 0xc3, 0xfa, 0x0c, 0x24, 0x5b, 0xa6, 0x77, 0x42, 0xe8, 0x86, 0x8b, 0x09, 0x4d, - 0x31, 0xc8, 0x31, 0x1e, 0x77, 0x5b, 0xa6, 0x4d, 0x42, 0x80, 0x8d, 0xe3, 0x63, 0xec, 0xd7, 0x06, - 0x32, 0xeb, 0xa4, 0xed, 0x77, 0x9a, 0x4d, 0x64, 0x7b, 0x2e, 0xf7, 0x2b, 0x1b, 0x2f, 0xb1, 0x61, - 0xfd, 0x23, 0x30, 0xe5, 0xb5, 0x4d, 0xab, 0x21, 0xc9, 0x26, 0x89, 0xac, 0xc6, 0x27, 0x7c, 0xe1, - 0x3c, 0x3c, 0xc6, 0x79, 0xeb, 0xc8, 0x33, 0x6b, 0x27, 0xa8, 0x1e, 0x80, 0x46, 0xc8, 0xce, 0xe1, - 0xa3, 0x4c, 0x60, 0x9d, 0xcd, 0x73, 0x6c, 0xee, 0x0f, 0x15, 0x98, 0xe2, 0x37, 0x2a, 0x75, 0xdf, - 0x58, 0xdb, 0x00, 0xa6, 0x6d, 0x3b, 0x9e, 0x68, 0xae, 0xee, 0x50, 0xee, 0xc2, 0x2d, 0x15, 0x7c, - 0x90, 0x21, 0x10, 0xcc, 0x36, 0x01, 0x82, 0x99, 0x9e, 0x66, 0x9b, 0x87, 0x34, 0xdb, 0xb9, 0x27, - 0x8f, 0x7f, 0xe8, 0xad, 0x2d, 0xd0, 0x21, 0x7c, 0x47, 0xa3, 0x9f, 0x83, 0xe1, 0x43, 0x74, 0x6c, - 0xd9, 0x6c, 0x3f, 0x91, 0x1e, 0xf0, 0x5d, 0xca, 0xa4, 0xbf, 0x4b, 0x59, 0x7c, 0x19, 0xa6, 0x6b, - 0x4e, 0x33, 0xac, 0x6e, 0x51, 0x0b, 0xdd, 0x5e, 0xbb, 0x2f, 0x2a, 0xbf, 0x00, 0x41, 0x8b, 0xf9, - 0xeb, 0x09, 0xf5, 0xce, 0x6e, 0xf1, 0xb7, 0x12, 0xb3, 0x77, 0x28, 0x6e, 0x97, 0x5f, 0xa6, 0x81, - 0x8e, 0x1a, 0xa8, 0x86, 0x55, 0x87, 0x3f, 0xb9, 0x0c, 0xcf, 0x1e, 0x5b, 0xde, 0x49, 0xe7, 0x70, - 0xa9, 0xe6, 0x34, 0xaf, 0x1c, 0x3b, 0xc7, 0x4e, 0xf0, 0xb8, 0x0b, 0x1f, 0x91, 0x03, 0xf2, 0x89, - 0x3d, 0xf2, 0x1a, 0xf3, 0x47, 0x67, 0x63, 0x9f, 0x8f, 0xe5, 0x2b, 0x30, 0xcd, 0x84, 0xab, 0x64, - 0xcf, 0x9d, 0xde, 0x1a, 0xe8, 0x7d, 0xf7, 0x5d, 0xb2, 0xbf, 0xf3, 0x7d, 0xb2, 0x56, 0x1b, 0x53, - 0x0c, 0x8a, 0xe7, 0xe8, 0x0d, 0x44, 0xde, 0x80, 0x47, 0x24, 0x3e, 0x9a, 0x97, 0xa8, 0x1d, 0xc3, - 0xf8, 0x2d, 0xc6, 0x38, 0x2d, 0x30, 0xee, 0x31, 0x68, 0xbe, 0x04, 0xe3, 0x67, 0xe1, 0xfa, 0x0f, - 0x8c, 0x2b, 0x83, 0x44, 0x92, 0x3b, 0x30, 0x49, 0x48, 0x6a, 0x1d, 0xd7, 0x73, 0x9a, 0xa4, 0xe8, - 0xf5, 0xa7, 0xf9, 0x8f, 0xdf, 0xa7, 0x89, 0x32, 0x81, 0x61, 0x25, 0x1f, 0x95, 0xcf, 0x03, 0x79, - 0xcc, 0x50, 0x47, 0xb5, 0x46, 0x0c, 0xc3, 0x7d, 0xa6, 0x88, 0x2f, 0x9f, 0xff, 0x24, 0x9c, 0xc3, - 0x9f, 0x49, 0x4d, 0x12, 0x35, 0x89, 0xdf, 0x65, 0xca, 0xfe, 0xe1, 0x67, 0x68, 0x2e, 0x4e, 0xfb, - 0x04, 0x82, 0x4e, 0x82, 0x17, 0x8f, 0x91, 0xe7, 0xa1, 0xb6, 0x5b, 0x35, 0x1b, 0x51, 0xea, 0x09, - 0xb7, 0xe9, 0xd9, 0x5f, 0xfb, 0xa1, 0xec, 0xc5, 0x3b, 0x14, 0x59, 0x68, 0x34, 0xf2, 0x07, 0xf0, - 0x68, 0x44, 0x54, 0x0c, 0xc0, 0xf9, 0x79, 0xc6, 0x79, 0xae, 0x2b, 0x32, 0x30, 0xed, 0x2e, 0xf0, - 0x71, 0xdf, 0x97, 0x03, 0x70, 0xfe, 0x63, 0xc6, 0xa9, 0x33, 0x2c, 0x77, 0x29, 0x66, 0xbc, 0x0b, - 0x53, 0xaf, 0xa1, 0xf6, 0xa1, 0xe3, 0xb2, 0xad, 0x91, 0x01, 0xe8, 0xbe, 0xc0, 0xe8, 0x26, 0x19, - 0x90, 0xec, 0x95, 0x60, 0xae, 0x5b, 0x90, 0x3a, 0x32, 0x6b, 0x68, 0x00, 0x8a, 0x2f, 0x32, 0x8a, - 0x51, 0x2c, 0x8f, 0xa1, 0x05, 0xc8, 0x1c, 0x3b, 0x6c, 0x59, 0x8a, 0x87, 0x7f, 0x89, 0xc1, 0xd3, - 0x1c, 0xc3, 0x28, 0x5a, 0x4e, 0xab, 0xd3, 0xc0, 0x6b, 0x56, 0x3c, 0xc5, 0x97, 0x39, 0x05, 0xc7, - 0x30, 0x8a, 0x33, 0x98, 0xf5, 0x2d, 0x4e, 0xe1, 0x0a, 0xf6, 0x7c, 0x01, 0xd2, 0x8e, 0xdd, 0x38, - 0x75, 0xec, 0x41, 0x94, 0xf8, 0x0a, 0x63, 0x00, 0x06, 0xc1, 0x04, 0xb7, 0x61, 0x6c, 0x50, 0x47, - 0xfc, 0xc6, 0x0f, 0x79, 0x7a, 0x70, 0x0f, 0xdc, 0x81, 0x49, 0x5e, 0xa0, 0x2c, 0xc7, 0x1e, 0x80, - 0xe2, 0x9f, 0x32, 0x8a, 0x09, 0x01, 0xc6, 0x2e, 0xc3, 0x43, 0xae, 0x77, 0x8c, 0x06, 0x21, 0xf9, - 0x2a, 0xbf, 0x0c, 0x06, 0x61, 0xa6, 0x3c, 0x44, 0x76, 0xed, 0x64, 0x30, 0x86, 0xaf, 0x71, 0x53, - 0x72, 0x0c, 0xa6, 0x28, 0xc1, 0x78, 0xd3, 0x6c, 0xbb, 0x27, 0x66, 0x63, 0x20, 0x77, 0xfc, 0x26, - 0xe3, 0xc8, 0xf8, 0x20, 0x66, 0x91, 0x8e, 0x7d, 0x16, 0x9a, 0xdf, 0xe2, 0x16, 0x11, 0x60, 0x2c, - 0xf5, 0x5c, 0x8f, 0x6c, 0x40, 0x9d, 0x85, 0xed, 0xb7, 0x79, 0xea, 0x51, 0xec, 0xb6, 0xc8, 0x78, - 0x1b, 0xc6, 0x5c, 0xeb, 0xd3, 0x03, 0xd1, 0xfc, 0x33, 0xee, 0x69, 0x02, 0xc0, 0xe0, 0x7b, 0xf0, - 0x58, 0xe4, 0x32, 0x31, 0x00, 0xd9, 0x3f, 0x67, 0x64, 0x33, 0x11, 0x4b, 0x05, 0x2b, 0x09, 0x67, - 0xa5, 0xfc, 0x17, 0xbc, 0x24, 0xa0, 0x10, 0xd7, 0x2e, 0xbe, 0x51, 0x70, 0xcd, 0xa3, 0xb3, 0x59, - 0xed, 0x5f, 0x72, 0xab, 0x51, 0xac, 0x64, 0xb5, 0x7d, 0x98, 0x61, 0x8c, 0x67, 0xf3, 0xeb, 0xd7, - 0x79, 0x61, 0xa5, 0xe8, 0x03, 0xd9, 0xbb, 0x9f, 0x82, 0x59, 0xdf, 0x9c, 0xbc, 0x23, 0x75, 0xab, - 0x4d, 0xb3, 0x35, 0x00, 0xf3, 0xef, 0x30, 0x66, 0x5e, 0xf1, 0xfd, 0x96, 0xd6, 0xdd, 0x36, 0x5b, - 0x98, 0xfc, 0x65, 0xc8, 0x72, 0xf2, 0x8e, 0xdd, 0x46, 0x35, 0xe7, 0xd8, 0xb6, 0x3e, 0x8d, 0xea, - 0x03, 0x50, 0x7f, 0x23, 0xe4, 0xaa, 0x03, 0x01, 0x8e, 0x99, 0x37, 0x41, 0xf3, 0x7b, 0x95, 0xaa, - 0xd5, 0x6c, 0x39, 0x6d, 0x2f, 0x86, 0xf1, 0x5f, 0x71, 0x4f, 0xf9, 0xb8, 0x4d, 0x02, 0xcb, 0x97, - 0x61, 0x82, 0x1c, 0x0e, 0x1a, 0x92, 0xbf, 0xcb, 0x88, 0xc6, 0x03, 0x14, 0x2b, 0x1c, 0x35, 0xa7, - 0xd9, 0x32, 0xdb, 0x83, 0xd4, 0xbf, 0x7f, 0xcd, 0x0b, 0x07, 0x83, 0xb0, 0xc2, 0xe1, 0x9d, 0xb6, - 0x10, 0x5e, 0xed, 0x07, 0x60, 0xf8, 0x26, 0x2f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, 0x30, 0x00, - 0xc5, 0xbf, 0xe1, 0x14, 0x1c, 0x83, 0x29, 0x3e, 0x11, 0x2c, 0xb4, 0x6d, 0x74, 0x6c, 0xb9, 0x5e, - 0x9b, 0xf6, 0xc1, 0xfd, 0xa9, 0x7e, 0xef, 0x87, 0x72, 0x13, 0x66, 0x08, 0xd0, 0xfc, 0x5d, 0x98, - 0x0c, 0xb5, 0x18, 0x7a, 0xdc, 0x3b, 0x0b, 0xd9, 0xbf, 0xf2, 0x63, 0x56, 0x8c, 0xe4, 0x0e, 0x23, - 0xbf, 0x85, 0xfd, 0x2e, 0xf7, 0x01, 0xf1, 0x64, 0x9f, 0xf9, 0xb1, 0xef, 0x7a, 0xa9, 0x0d, 0xc8, - 0x6f, 0xc0, 0xb8, 0xd4, 0x03, 0xc4, 0x53, 0xfd, 0x55, 0x46, 0x95, 0x11, 0x5b, 0x80, 0xfc, 0x1a, - 0x24, 0xf1, 0x7a, 0x1e, 0x0f, 0xff, 0x6b, 0x0c, 0x4e, 0xc4, 0xf3, 0xcf, 0x41, 0x8a, 0xaf, 0xe3, - 0xf1, 0xd0, 0x5f, 0x66, 0x50, 0x1f, 0x82, 0xe1, 0x7c, 0x0d, 0x8f, 0x87, 0xff, 0x75, 0x0e, 0xe7, - 0x10, 0x0c, 0x1f, 0xdc, 0x84, 0x6f, 0xff, 0xcd, 0x24, 0xab, 0xc3, 0xdc, 0x76, 0xb7, 0x61, 0x94, - 0x2d, 0xde, 0xf1, 0xe8, 0x5f, 0x61, 0x27, 0xe7, 0x88, 0xfc, 0x0d, 0x18, 0x1e, 0xd0, 0xe0, 0x7f, - 0x8b, 0x41, 0xa9, 0x7c, 0xbe, 0x04, 0x69, 0x61, 0xc1, 0x8e, 0x87, 0xff, 0x6d, 0x06, 0x17, 0x51, - 0x58, 0x75, 0xb6, 0x60, 0xc7, 0x13, 0xfc, 0x1d, 0xae, 0x3a, 0x43, 0x60, 0xb3, 0xf1, 0xb5, 0x3a, - 0x1e, 0xfd, 0x77, 0xb9, 0xd5, 0x39, 0x24, 0xff, 0x02, 0x8c, 0xf9, 0xf5, 0x37, 0x1e, 0xff, 0xf7, - 0x18, 0x3e, 0xc0, 0x60, 0x0b, 0x08, 0xf5, 0x3f, 0x9e, 0xe2, 0xef, 0x73, 0x0b, 0x08, 0x28, 0x9c, - 0x46, 0xe1, 0x35, 0x3d, 0x9e, 0xe9, 0x57, 0x79, 0x1a, 0x85, 0x96, 0x74, 0xec, 0x4d, 0x52, 0x06, - 0xe3, 0x29, 0xfe, 0x01, 0xf7, 0x26, 0x91, 0xc7, 0x6a, 0x84, 0x17, 0xc9, 0x78, 0x8e, 0x7f, 0xc4, - 0xd5, 0x08, 0xad, 0x91, 0xf9, 0x5d, 0xd0, 0xbb, 0x17, 0xc8, 0x78, 0xbe, 0xcf, 0x31, 0xbe, 0xa9, - 0xae, 0xf5, 0x31, 0xff, 0x12, 0xcc, 0x44, 0x2f, 0x8e, 0xf1, 0xac, 0xbf, 0xf6, 0xe3, 0xd0, 0xed, - 0x8c, 0xb8, 0x36, 0xe6, 0xf7, 0x83, 0x2a, 0x2b, 0x2e, 0x8c, 0xf1, 0xb4, 0x9f, 0xff, 0xb1, 0x5c, - 0x68, 0xc5, 0x75, 0x31, 0x5f, 0x00, 0x08, 0xd6, 0xa4, 0x78, 0xae, 0x2f, 0x30, 0x2e, 0x01, 0x84, - 0x53, 0x83, 0x2d, 0x49, 0xf1, 0xf8, 0x2f, 0xf2, 0xd4, 0x60, 0x08, 0x9c, 0x1a, 0x7c, 0x35, 0x8a, - 0x47, 0x7f, 0x89, 0xa7, 0x06, 0x87, 0xe4, 0x6f, 0x43, 0xca, 0xee, 0x34, 0x1a, 0x38, 0xb6, 0xf4, - 0xfe, 0xaf, 0x11, 0x65, 0xff, 0xc7, 0x4f, 0x18, 0x98, 0x03, 0xf2, 0x6b, 0x30, 0x8c, 0x9a, 0x87, - 0xa8, 0x1e, 0x87, 0xfc, 0x9f, 0x3f, 0xe1, 0xf5, 0x04, 0x4b, 0xe7, 0x5f, 0x00, 0xa0, 0x37, 0xd3, - 0xe4, 0x29, 0x51, 0x0c, 0xf6, 0x7f, 0xfd, 0x84, 0xbd, 0xa1, 0x10, 0x40, 0x02, 0x02, 0xfa, 0xbe, - 0x43, 0x7f, 0x82, 0x1f, 0xca, 0x04, 0xe4, 0x06, 0xfc, 0x16, 0x8c, 0xbe, 0xe2, 0x3a, 0xb6, 0x67, - 0x1e, 0xc7, 0xa1, 0xff, 0x37, 0x43, 0x73, 0x79, 0x6c, 0xb0, 0xa6, 0xd3, 0x46, 0x9e, 0x79, 0xec, - 0xc6, 0x61, 0xff, 0x0f, 0xc3, 0xfa, 0x00, 0x0c, 0xae, 0x99, 0xae, 0x37, 0xc8, 0x75, 0xff, 0x5f, - 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x2a, 0x3a, 0x8d, 0xc3, 0xfe, 0x88, 0x2b, 0xcd, 0xe4, - 0xf3, 0xcf, 0xc1, 0x18, 0xfe, 0x48, 0xdf, 0xda, 0x89, 0x01, 0xff, 0x31, 0x03, 0x07, 0x08, 0x7c, - 0x66, 0xd7, 0xab, 0x7b, 0x56, 0xbc, 0xb1, 0xff, 0x1f, 0xf3, 0x34, 0x97, 0xcf, 0x17, 0x20, 0xed, - 0x7a, 0xf5, 0x7a, 0x87, 0x75, 0x34, 0x31, 0xf0, 0x3f, 0xf9, 0x89, 0x7f, 0x93, 0xeb, 0x63, 0x8a, - 0x17, 0xa3, 0x37, 0xeb, 0xe0, 0x8e, 0x73, 0xc7, 0xa1, 0xdb, 0x74, 0xf0, 0xfd, 0x06, 0xdc, 0xe8, - 0xb9, 0xeb, 0x86, 0x17, 0x91, 0x2b, 0x35, 0xa7, 0x79, 0xe8, 0xb8, 0x57, 0x0e, 0x1d, 0xef, 0xe4, - 0x8a, 0x77, 0x82, 0xf0, 0x18, 0xdb, 0x7f, 0x4b, 0xe2, 0xcf, 0xb3, 0x67, 0xdb, 0xb4, 0x23, 0xcf, - 0x63, 0x2b, 0x16, 0xd6, 0xbb, 0x42, 0xb6, 0xc4, 0xf5, 0xf3, 0x30, 0x42, 0xae, 0xe4, 0x2a, 0x79, - 0xec, 0xa4, 0x14, 0x93, 0xf7, 0xdf, 0x99, 0x1f, 0x32, 0xd8, 0x98, 0x3f, 0xbb, 0x42, 0xf6, 0x2c, - 0x13, 0xd2, 0xec, 0x8a, 0x3f, 0x7b, 0x8d, 0x6e, 0x5b, 0x4a, 0xb3, 0xd7, 0xfc, 0xd9, 0x55, 0xb2, - 0x81, 0xa9, 0x4a, 0xb3, 0xab, 0xfe, 0xec, 0x1a, 0xd9, 0xa4, 0x1f, 0x97, 0x66, 0xd7, 0xfc, 0xd9, - 0xeb, 0x64, 0x6b, 0x3e, 0x29, 0xcd, 0x5e, 0xf7, 0x67, 0x6f, 0x90, 0x5d, 0xf9, 0x29, 0x69, 0xf6, - 0x86, 0x3f, 0x7b, 0x93, 0xec, 0xc6, 0xeb, 0xd2, 0xec, 0x4d, 0x7f, 0xf6, 0x16, 0x79, 0xc5, 0x64, - 0x54, 0x9a, 0xbd, 0xa5, 0xcf, 0xc1, 0x28, 0xbd, 0xf2, 0x65, 0xf2, 0xe8, 0x76, 0x92, 0x4d, 0xf3, - 0xc1, 0x60, 0xfe, 0x2a, 0x79, 0x9d, 0x64, 0x44, 0x9e, 0xbf, 0x1a, 0xcc, 0xaf, 0x90, 0x17, 0xab, - 0x35, 0x79, 0x7e, 0x25, 0x98, 0xbf, 0x96, 0x1d, 0x27, 0xaf, 0xd4, 0x48, 0xf3, 0xd7, 0x82, 0xf9, - 0xd5, 0xec, 0x04, 0x0e, 0x66, 0x79, 0x7e, 0x35, 0x98, 0x5f, 0xcb, 0x4e, 0x5e, 0x50, 0x16, 0x32, - 0xf2, 0xfc, 0x5a, 0xee, 0x97, 0x88, 0x7b, 0xed, 0xc0, 0xbd, 0x33, 0xb2, 0x7b, 0x7d, 0xc7, 0xce, - 0xc8, 0x8e, 0xf5, 0x5d, 0x3a, 0x23, 0xbb, 0xd4, 0x77, 0xe6, 0x8c, 0xec, 0x4c, 0xdf, 0x8d, 0x33, - 0xb2, 0x1b, 0x7d, 0x07, 0xce, 0xc8, 0x0e, 0xf4, 0x5d, 0x37, 0x23, 0xbb, 0xce, 0x77, 0xda, 0x8c, - 0xec, 0x34, 0xdf, 0x5d, 0x33, 0xb2, 0xbb, 0x7c, 0x47, 0x65, 0x43, 0x8e, 0x0a, 0x5c, 0x94, 0x0d, - 0xb9, 0x28, 0x70, 0x4e, 0x36, 0xe4, 0x9c, 0xc0, 0x2d, 0xd9, 0x90, 0x5b, 0x02, 0x87, 0x64, 0x43, - 0x0e, 0x09, 0x5c, 0x91, 0x0d, 0xb9, 0x22, 0x70, 0x02, 0xcb, 0x31, 0x03, 0xb5, 0x22, 0x72, 0x4c, - 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, - 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9f, 0x63, 0x6a, 0x4c, - 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x3d, - 0x73, 0x2c, 0x70, 0xef, 0x8c, 0xec, 0xde, 0xc8, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, - 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, - 0x63, 0x6a, 0xaf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, - 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x62, 0x8e, 0xfd, 0x5b, 0x15, 0x74, 0x9a, 0x63, 0xbb, 0xe4, - 0xe5, 0x1f, 0xe6, 0x8a, 0xb9, 0x50, 0xa6, 0x8d, 0x60, 0xd7, 0x69, 0x81, 0x4b, 0xe6, 0x42, 0xb9, - 0x26, 0xcf, 0xaf, 0xf8, 0xf3, 0x3c, 0xdb, 0xe4, 0xf9, 0x6b, 0xfe, 0x3c, 0xcf, 0x37, 0x79, 0x7e, - 0xd5, 0x9f, 0xe7, 0x19, 0x27, 0xcf, 0xaf, 0xf9, 0xf3, 0x3c, 0xe7, 0xe4, 0xf9, 0xeb, 0xfe, 0x3c, - 0xcf, 0x3a, 0x79, 0xfe, 0x86, 0x3f, 0xcf, 0xf3, 0x4e, 0x9e, 0xbf, 0xe9, 0xcf, 0xf3, 0xcc, 0x93, - 0xe7, 0x6f, 0xe9, 0x17, 0xc2, 0xb9, 0xc7, 0x05, 0x7c, 0xd7, 0x5e, 0x08, 0x67, 0x5f, 0x48, 0xe2, - 0x6a, 0x20, 0xc1, 0xf3, 0x2f, 0x24, 0xb1, 0x12, 0x48, 0xf0, 0x0c, 0x0c, 0x49, 0x5c, 0xcb, 0x7d, - 0x96, 0xb8, 0xcf, 0x0e, 0xbb, 0x6f, 0x36, 0xe4, 0xbe, 0x84, 0xe0, 0xba, 0xd9, 0x90, 0xeb, 0x12, - 0x82, 0xdb, 0x66, 0x43, 0x6e, 0x4b, 0x08, 0x2e, 0x9b, 0x0d, 0xb9, 0x2c, 0x21, 0xb8, 0x6b, 0x36, - 0xe4, 0xae, 0x84, 0xe0, 0xaa, 0xd9, 0x90, 0xab, 0x12, 0x82, 0x9b, 0x66, 0x43, 0x6e, 0x4a, 0x08, - 0x2e, 0x9a, 0x0d, 0xb9, 0x28, 0x21, 0xb8, 0x67, 0x36, 0xe4, 0x9e, 0x84, 0xe0, 0x9a, 0xf3, 0x61, - 0xd7, 0x24, 0x44, 0xb7, 0x9c, 0x0f, 0xbb, 0x25, 0x21, 0xba, 0xe4, 0x7c, 0xd8, 0x25, 0x09, 0xd1, - 0x1d, 0xe7, 0xc3, 0xee, 0x48, 0x88, 0xae, 0xf8, 0xf3, 0x04, 0xef, 0x08, 0xf7, 0xbc, 0x76, 0xa7, - 0xe6, 0xbd, 0xa7, 0x8e, 0x70, 0x59, 0x6a, 0x1f, 0xd2, 0x2b, 0xfa, 0x12, 0x69, 0x58, 0xc5, 0x8e, - 0x33, 0xb4, 0x82, 0x2d, 0x4b, 0x8d, 0x85, 0x80, 0xb0, 0xa3, 0x11, 0xab, 0xef, 0xa9, 0x37, 0x5c, - 0x96, 0xda, 0x8c, 0x78, 0xfd, 0x6e, 0x7e, 0xe0, 0x1d, 0xdb, 0xdb, 0x09, 0xde, 0xb1, 0x31, 0xf3, - 0x9f, 0xb5, 0x63, 0x5b, 0x8c, 0x37, 0xb9, 0x6f, 0xec, 0xc5, 0x78, 0x63, 0x77, 0xad, 0x3a, 0x83, - 0x76, 0x70, 0x8b, 0xf1, 0xa6, 0xf5, 0x8d, 0xfa, 0xfe, 0xf6, 0x5b, 0x2c, 0x82, 0x0d, 0xd4, 0x8a, - 0x88, 0xe0, 0xb3, 0xf6, 0x5b, 0xcb, 0x52, 0x29, 0x39, 0x6b, 0x04, 0xab, 0x67, 0x8e, 0xe0, 0xb3, - 0x76, 0x5e, 0xcb, 0x52, 0x79, 0x39, 0x73, 0x04, 0x7f, 0x00, 0xfd, 0x10, 0x8b, 0xe0, 0xc0, 0xfc, - 0x67, 0xed, 0x87, 0x16, 0xe3, 0x4d, 0x1e, 0x19, 0xc1, 0xea, 0x19, 0x22, 0x78, 0x90, 0xfe, 0x68, - 0x31, 0xde, 0xb4, 0xd1, 0x11, 0xfc, 0x9e, 0xbb, 0x99, 0x2f, 0x2b, 0x30, 0x55, 0xb1, 0xea, 0xe5, - 0xe6, 0x21, 0xaa, 0xd7, 0x51, 0x9d, 0xd9, 0x71, 0x59, 0xaa, 0x04, 0x3d, 0x5c, 0xfd, 0xed, 0x77, - 0xe6, 0x03, 0x0b, 0xaf, 0x41, 0x8a, 0xda, 0x74, 0x79, 0x39, 0x7b, 0x5f, 0x89, 0xa9, 0x70, 0xbe, - 0xa8, 0x7e, 0x91, 0xc3, 0xae, 0x2e, 0x67, 0xff, 0x8b, 0x22, 0x54, 0x39, 0x7f, 0x38, 0xf7, 0xab, - 0x44, 0x43, 0xfb, 0x3d, 0x6b, 0x78, 0x65, 0x20, 0x0d, 0x05, 0xdd, 0x1e, 0xef, 0xd2, 0x4d, 0xd0, - 0xaa, 0x03, 0x93, 0x15, 0xab, 0x5e, 0x21, 0x5f, 0xe9, 0x1d, 0x44, 0x25, 0x2a, 0x13, 0xaa, 0x07, - 0xcb, 0x52, 0x58, 0x8a, 0x08, 0x3f, 0xa4, 0xe5, 0x1a, 0x91, 0xb3, 0xf0, 0x69, 0x6d, 0xe9, 0xb4, - 0x8b, 0xbd, 0x4e, 0x1b, 0x54, 0x76, 0xff, 0x84, 0x8b, 0xbd, 0x4e, 0x18, 0xe4, 0x90, 0x7f, 0xaa, - 0x37, 0xf8, 0xe2, 0x4c, 0xdf, 0xc2, 0xd1, 0xcf, 0x43, 0x62, 0x93, 0xbe, 0x21, 0x9c, 0x29, 0x66, - 0xb0, 0x52, 0xdf, 0x79, 0x67, 0x3e, 0x79, 0xd0, 0xb1, 0xea, 0x46, 0x62, 0xb3, 0xae, 0xdf, 0x85, - 0xe1, 0x4f, 0xb2, 0x2f, 0xc6, 0x61, 0x81, 0x55, 0x26, 0xf0, 0xd1, 0x98, 0x2d, 0x26, 0x42, 0xbd, - 0x74, 0x60, 0xd9, 0xde, 0xd5, 0x95, 0x9b, 0x06, 0xa5, 0xc8, 0xfd, 0x45, 0x00, 0x7a, 0xce, 0x75, - 0xd3, 0x3d, 0xd1, 0x2b, 0x9c, 0x99, 0x9e, 0xfa, 0xe6, 0x77, 0xde, 0x99, 0x5f, 0x1d, 0x84, 0xf5, - 0xd9, 0xba, 0xe9, 0x9e, 0x3c, 0xeb, 0x9d, 0xb6, 0xd0, 0x52, 0xf1, 0xd4, 0x43, 0x2e, 0x67, 0x6f, - 0xf1, 0x55, 0x8f, 0x5d, 0x57, 0x56, 0xb8, 0xae, 0x94, 0x74, 0x4d, 0x1b, 0xf2, 0x35, 0x2d, 0x3f, - 0xec, 0xf5, 0xbc, 0xc1, 0x17, 0x89, 0x90, 0x25, 0xd5, 0x38, 0x4b, 0xaa, 0xef, 0xd5, 0x92, 0x2d, - 0x5e, 0x1f, 0x43, 0xd7, 0xaa, 0xf6, 0xbb, 0x56, 0xf5, 0xbd, 0x5c, 0xeb, 0x9f, 0xd2, 0x6c, 0xf5, - 0xf3, 0xe9, 0xc0, 0xa6, 0x6f, 0x27, 0xfe, 0x7c, 0xed, 0x05, 0xbd, 0xaf, 0x5d, 0x40, 0x3e, 0x79, - 0xff, 0xad, 0x79, 0x25, 0xf7, 0xe5, 0x04, 0xbf, 0x72, 0x9a, 0x48, 0x0f, 0x77, 0xe5, 0x3f, 0x2f, - 0x3d, 0xd5, 0x07, 0x61, 0xa1, 0x2f, 0x29, 0x30, 0xd3, 0x55, 0xc9, 0xa9, 0x99, 0xde, 0xdf, 0x72, - 0x6e, 0x9f, 0xb5, 0x9c, 0x33, 0x05, 0x7f, 0x57, 0x81, 0x73, 0xa1, 0xf2, 0x4a, 0xd5, 0xbb, 0x12, - 0x52, 0xef, 0xd1, 0xee, 0x33, 0x11, 0x41, 0x41, 0x3b, 0xd1, 0xbd, 0x21, 0x80, 0xc0, 0xec, 0xfb, - 0x7d, 0x35, 0xe4, 0xf7, 0xf3, 0x3e, 0x20, 0xc2, 0x5c, 0x3c, 0x02, 0x98, 0xda, 0x0e, 0x24, 0xf7, - 0xdb, 0x08, 0xe9, 0x73, 0x90, 0xd8, 0x69, 0x33, 0x0d, 0x27, 0x28, 0x7e, 0xa7, 0x5d, 0x6c, 0x9b, - 0x76, 0xed, 0xc4, 0x48, 0xec, 0xb4, 0xf5, 0x8b, 0xa0, 0x16, 0xd8, 0x4f, 0x0f, 0xa4, 0x57, 0x26, - 0xa9, 0x40, 0xc1, 0xae, 0x33, 0x09, 0x3c, 0xa7, 0xcf, 0x41, 0x72, 0x0b, 0x99, 0x47, 0x4c, 0x09, - 0xa0, 0x32, 0x78, 0xc4, 0x20, 0xe3, 0xec, 0x84, 0x2f, 0x43, 0x8a, 0x13, 0xeb, 0x97, 0x30, 0xe2, - 0xc8, 0x63, 0xa7, 0x65, 0x08, 0xac, 0x0e, 0x5b, 0xb9, 0xc8, 0xac, 0x7e, 0x19, 0x86, 0x0d, 0xeb, - 0xf8, 0xc4, 0x63, 0x27, 0xef, 0x16, 0xa3, 0xd3, 0xb9, 0x7b, 0x30, 0xe6, 0x6b, 0xf4, 0x3e, 0x53, - 0xaf, 0xd3, 0x4b, 0xd3, 0x67, 0xc5, 0xf5, 0x84, 0xef, 0x5b, 0xd2, 0x21, 0xfd, 0x02, 0xa4, 0xf6, - 0xbc, 0x76, 0x50, 0xf4, 0x79, 0x47, 0xea, 0x8f, 0xe6, 0x7e, 0x49, 0x81, 0xd4, 0x3a, 0x42, 0x2d, - 0x62, 0xf0, 0xa7, 0x20, 0xb9, 0xee, 0xbc, 0x6e, 0x33, 0x05, 0xa7, 0x98, 0x45, 0xf1, 0x34, 0xb3, - 0x29, 0x99, 0xd6, 0x9f, 0x12, 0xed, 0x3e, 0xed, 0xdb, 0x5d, 0x90, 0x23, 0xb6, 0xcf, 0x49, 0xb6, - 0x67, 0x0e, 0xc4, 0x42, 0x5d, 0xf6, 0xbf, 0x01, 0x69, 0xe1, 0x2c, 0xfa, 0x02, 0x53, 0x23, 0x11, - 0x06, 0x8a, 0xb6, 0xc2, 0x12, 0x39, 0x04, 0xe3, 0xd2, 0x89, 0x31, 0x54, 0x30, 0x71, 0x0f, 0x28, - 0x31, 0xf3, 0xa2, 0x6c, 0xe6, 0x68, 0x51, 0x66, 0xea, 0x65, 0x6a, 0x23, 0x62, 0xee, 0x4b, 0x34, - 0x38, 0x7b, 0x3b, 0x11, 0x7f, 0xce, 0x0d, 0x83, 0x5a, 0xb1, 0x1a, 0xb9, 0xe7, 0x00, 0x68, 0xca, - 0x97, 0xed, 0x4e, 0x33, 0x94, 0x75, 0x13, 0xdc, 0xc0, 0xfb, 0x27, 0x68, 0x1f, 0xb9, 0x44, 0x44, - 0xee, 0xa7, 0x70, 0x81, 0x01, 0x9a, 0x62, 0x04, 0xff, 0x4c, 0x2c, 0x3e, 0xb2, 0x13, 0xc3, 0xa2, - 0x59, 0x2a, 0x7a, 0x0f, 0x79, 0x05, 0xdb, 0xf1, 0x4e, 0x50, 0x3b, 0x84, 0x58, 0xd1, 0xaf, 0x49, - 0x09, 0x3b, 0xb1, 0xf2, 0xb8, 0x8f, 0xe8, 0x09, 0xba, 0x96, 0xfb, 0x3a, 0x51, 0x10, 0xb7, 0x02, - 0x5d, 0x17, 0xa8, 0x0e, 0x70, 0x81, 0xfa, 0x75, 0xa9, 0x7f, 0xeb, 0xa3, 0x66, 0xe8, 0xd6, 0xf2, - 0x96, 0x74, 0x9f, 0xd3, 0x5f, 0x59, 0xf9, 0x1e, 0x93, 0xdb, 0x94, 0xab, 0xfc, 0x4c, 0xac, 0xca, - 0x3d, 0xba, 0xdb, 0xb3, 0xda, 0x54, 0x1d, 0xd4, 0xa6, 0xbf, 0xef, 0x77, 0x1c, 0xf4, 0x47, 0x1c, - 0xc8, 0x6f, 0x86, 0xe8, 0x1f, 0x8d, 0xf5, 0x7d, 0x5e, 0x29, 0xf9, 0xaa, 0xae, 0x0e, 0xea, 0xfe, - 0x7c, 0xa2, 0x58, 0xf4, 0xd5, 0xbd, 0x71, 0x86, 0x10, 0xc8, 0x27, 0x4a, 0x25, 0xbf, 0x6c, 0xa7, - 0x3e, 0xfb, 0xd6, 0xbc, 0xf2, 0xb5, 0xb7, 0xe6, 0x87, 0x72, 0xbf, 0xa9, 0xc0, 0x14, 0x93, 0x14, - 0x02, 0xf7, 0xd9, 0x90, 0xf2, 0x8f, 0xf0, 0x9a, 0x11, 0x65, 0x81, 0x9f, 0x5a, 0xf0, 0x7e, 0x4b, - 0x81, 0x6c, 0x97, 0xae, 0xdc, 0xde, 0xcb, 0x03, 0xa9, 0x9c, 0x57, 0xca, 0x3f, 0x7b, 0x9b, 0xdf, - 0x83, 0xe1, 0x7d, 0xab, 0x89, 0xda, 0x78, 0x25, 0xc0, 0x1f, 0xa8, 0xca, 0xfc, 0x61, 0x0e, 0x1d, - 0xe2, 0x73, 0x54, 0x39, 0x69, 0x6e, 0x45, 0xcf, 0x42, 0x72, 0xdd, 0xf4, 0x4c, 0xa2, 0x41, 0xc6, - 0xaf, 0xaf, 0xa6, 0x67, 0xe6, 0xae, 0x41, 0x66, 0xfb, 0x94, 0xbc, 0x42, 0x53, 0x27, 0xaf, 0x87, - 0xc8, 0xdd, 0x1f, 0xef, 0x57, 0xaf, 0x2e, 0x0e, 0xa7, 0xea, 0xda, 0x7d, 0x25, 0x9f, 0x24, 0xfa, - 0xbc, 0x06, 0x13, 0x3b, 0x58, 0x6d, 0x82, 0x23, 0xb0, 0x0b, 0xa0, 0x6c, 0xcb, 0x8d, 0x90, 0xc8, - 0x6a, 0x28, 0xdb, 0xa1, 0xf6, 0x51, 0xf5, 0xcd, 0x13, 0x6a, 0xdb, 0x54, 0xbf, 0x6d, 0x5b, 0x4c, - 0xa6, 0x26, 0xb4, 0xa9, 0xc5, 0x64, 0x0a, 0xb4, 0x71, 0x76, 0xde, 0xff, 0xa4, 0x82, 0x46, 0x5b, - 0x9d, 0x75, 0x74, 0x64, 0xd9, 0x96, 0xd7, 0xdd, 0xaf, 0xfa, 0x1a, 0xeb, 0x2f, 0xc0, 0x18, 0x36, - 0xe9, 0x06, 0xfb, 0xe9, 0x2d, 0x6c, 0xfa, 0x8b, 0xac, 0x45, 0x09, 0x51, 0xb0, 0x01, 0x12, 0x3a, - 0x01, 0x46, 0xdf, 0x00, 0xb5, 0x52, 0xd9, 0x66, 0x8b, 0xdb, 0x6a, 0x5f, 0x28, 0x7b, 0x03, 0x87, - 0x1d, 0xb1, 0x31, 0xf7, 0xd8, 0xc0, 0x04, 0xfa, 0x2a, 0x24, 0x2a, 0xdb, 0xac, 0xe1, 0xbd, 0x34, - 0x08, 0x8d, 0x91, 0xa8, 0x6c, 0xcf, 0xfe, 0x3b, 0x05, 0xc6, 0xa5, 0x51, 0x3d, 0x07, 0x19, 0x3a, - 0x20, 0x5c, 0xee, 0x88, 0x21, 0x8d, 0x71, 0x9d, 0x13, 0xef, 0x51, 0xe7, 0xd9, 0x02, 0x4c, 0x86, - 0xc6, 0xf5, 0x25, 0xd0, 0xc5, 0x21, 0xa6, 0x04, 0xfd, 0xd9, 0xa2, 0x88, 0x99, 0xdc, 0x13, 0x00, - 0x81, 0x5d, 0xfd, 0x5f, 0xdb, 0xa9, 0x94, 0xf7, 0xf6, 0xcb, 0xeb, 0x9a, 0x92, 0xfb, 0xa6, 0x02, - 0x69, 0xd6, 0xb6, 0xd6, 0x9c, 0x16, 0xd2, 0x8b, 0xa0, 0x14, 0x58, 0x04, 0x3d, 0x9c, 0xde, 0x4a, - 0x41, 0xbf, 0x02, 0x4a, 0x71, 0x70, 0x57, 0x2b, 0x45, 0x7d, 0x05, 0x94, 0x12, 0x73, 0xf0, 0x60, - 0x9e, 0x51, 0x4a, 0xb9, 0x3f, 0x56, 0x61, 0x5a, 0x6c, 0xa3, 0x79, 0x3d, 0xb9, 0x28, 0xdf, 0x37, - 0xe5, 0xc7, 0xae, 0xae, 0x5c, 0x5b, 0x5d, 0xc2, 0xff, 0xf8, 0x21, 0x79, 0x51, 0xbe, 0x85, 0xea, - 0x16, 0xe9, 0x7a, 0x4d, 0x24, 0x9f, 0x14, 0x66, 0xbb, 0x5e, 0x13, 0x91, 0x66, 0xbb, 0x5e, 0x13, - 0x91, 0x66, 0xbb, 0x5e, 0x13, 0x91, 0x66, 0xbb, 0x1e, 0x05, 0x48, 0xb3, 0x5d, 0xaf, 0x89, 0x48, - 0xb3, 0x5d, 0xaf, 0x89, 0x48, 0xb3, 0xdd, 0xaf, 0x89, 0xb0, 0xe9, 0x9e, 0xaf, 0x89, 0xc8, 0xf3, - 0xdd, 0xaf, 0x89, 0xc8, 0xf3, 0xdd, 0xaf, 0x89, 0xe4, 0x93, 0x5e, 0xbb, 0x83, 0x7a, 0x3f, 0x74, - 0x90, 0xf1, 0xfd, 0xee, 0x01, 0x83, 0x02, 0xbc, 0x03, 0x93, 0x74, 0x3f, 0xa2, 0xe4, 0xd8, 0x9e, - 0x69, 0xd9, 0xa8, 0xad, 0x7f, 0x0c, 0x32, 0x74, 0x88, 0xde, 0xe5, 0x44, 0xdd, 0x05, 0xd2, 0x79, - 0x56, 0x6e, 0x25, 0xe9, 0xdc, 0x9f, 0x27, 0x61, 0x86, 0x0e, 0x54, 0xcc, 0x26, 0x92, 0x5e, 0x32, - 0xba, 0x1c, 0x7a, 0xa4, 0x34, 0x81, 0xe1, 0x0f, 0xde, 0x99, 0xa7, 0xa3, 0x05, 0x3f, 0x98, 0x2e, - 0x87, 0x1e, 0x2e, 0xc9, 0x72, 0xc1, 0xfa, 0x73, 0x39, 0xf4, 0xe2, 0x91, 0x2c, 0xe7, 0x2f, 0x37, - 0xbe, 0x1c, 0x7f, 0x05, 0x49, 0x96, 0x5b, 0xf7, 0xa3, 0xec, 0x72, 0xe8, 0x65, 0x24, 0x59, 0xae, - 0xec, 0xc7, 0xdb, 0xe5, 0xd0, 0xa3, 0x27, 0x59, 0x6e, 0xc3, 0x8f, 0xbc, 0xcb, 0xa1, 0x87, 0x50, - 0xb2, 0xdc, 0x1d, 0x3f, 0x06, 0x2f, 0x87, 0x5e, 0x55, 0x92, 0xe5, 0x5e, 0xf4, 0xa3, 0xf1, 0x72, - 0xe8, 0xa5, 0x25, 0x59, 0x6e, 0xd3, 0x8f, 0xcb, 0x85, 0xf0, 0xeb, 0x4b, 0xb2, 0xe0, 0xdd, 0x20, - 0x42, 0x17, 0xc2, 0x2f, 0x32, 0xc9, 0x92, 0x1f, 0x0f, 0x62, 0x75, 0x21, 0xfc, 0x4a, 0x93, 0x2c, - 0xb9, 0x15, 0x44, 0xed, 0x42, 0xf8, 0x51, 0x99, 0x2c, 0xb9, 0x1d, 0xc4, 0xef, 0x42, 0xf8, 0xa1, - 0x99, 0x2c, 0x59, 0x09, 0x22, 0x79, 0x21, 0xfc, 0xf8, 0x4c, 0x96, 0xdc, 0x09, 0xf6, 0xd0, 0xff, - 0x20, 0x14, 0x7e, 0xc2, 0x4b, 0x50, 0xb9, 0x50, 0xf8, 0x41, 0x44, 0xe8, 0xe5, 0x42, 0xa1, 0x07, - 0x11, 0x61, 0x97, 0x0b, 0x85, 0x1d, 0x44, 0x84, 0x5c, 0x2e, 0x14, 0x72, 0x10, 0x11, 0x6e, 0xb9, - 0x50, 0xb8, 0x41, 0x44, 0xa8, 0xe5, 0x42, 0xa1, 0x06, 0x11, 0x61, 0x96, 0x0b, 0x85, 0x19, 0x44, - 0x84, 0x58, 0x2e, 0x14, 0x62, 0x10, 0x11, 0x5e, 0xb9, 0x50, 0x78, 0x41, 0x44, 0x68, 0x5d, 0x0a, - 0x87, 0x16, 0x44, 0x85, 0xd5, 0xa5, 0x70, 0x58, 0x41, 0x54, 0x48, 0x3d, 0x19, 0x0e, 0xa9, 0xb1, - 0x07, 0xef, 0xcc, 0x0f, 0xe3, 0x21, 0x21, 0x9a, 0x2e, 0x85, 0xa3, 0x09, 0xa2, 0x22, 0xe9, 0x52, - 0x38, 0x92, 0x20, 0x2a, 0x8a, 0x2e, 0x85, 0xa3, 0x08, 0xa2, 0x22, 0xe8, 0xed, 0x70, 0x04, 0x05, - 0xaf, 0xf8, 0xe4, 0x42, 0x4f, 0x14, 0xe3, 0x22, 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, - 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, 0x20, 0x82, 0xd4, 0x01, 0x22, 0x48, 0x1d, 0x20, - 0x82, 0xd4, 0x41, 0x22, 0x48, 0x1d, 0x28, 0x82, 0xd4, 0x5e, 0x11, 0x74, 0x29, 0xfc, 0xc2, 0x03, - 0x44, 0x15, 0xa4, 0x4b, 0xe1, 0x27, 0x9f, 0xf1, 0x21, 0xa4, 0x0e, 0x14, 0x42, 0x6a, 0xaf, 0x10, - 0xfa, 0x03, 0x15, 0xa6, 0xa5, 0x10, 0x62, 0x8f, 0x87, 0xde, 0xaf, 0x0a, 0x74, 0x7d, 0x80, 0xf7, - 0x2b, 0xa2, 0x62, 0xea, 0xfa, 0x00, 0xcf, 0xa8, 0xfb, 0xc5, 0x59, 0x77, 0x15, 0x2a, 0x0f, 0x50, - 0x85, 0x36, 0xfc, 0x18, 0xba, 0x3e, 0xc0, 0x7b, 0x17, 0xdd, 0xb1, 0x77, 0xb3, 0x5f, 0x11, 0x78, - 0x71, 0xa0, 0x22, 0xb0, 0x39, 0x50, 0x11, 0xb8, 0x1b, 0x78, 0xf0, 0x97, 0x13, 0x70, 0x2e, 0xf0, - 0x20, 0xfd, 0x44, 0x7e, 0x22, 0x29, 0x27, 0x3c, 0xa1, 0xd2, 0xf9, 0x53, 0x1b, 0xc1, 0x8d, 0x89, - 0xcd, 0xba, 0xbe, 0x2b, 0x3f, 0xab, 0xca, 0x9f, 0xf5, 0xf9, 0x8d, 0xe0, 0x71, 0xb6, 0x17, 0x7a, - 0x09, 0xd4, 0xcd, 0xba, 0x4b, 0xaa, 0x45, 0xd4, 0x69, 0x4b, 0x06, 0x9e, 0xd6, 0x0d, 0x18, 0x21, - 0xe2, 0x2e, 0x71, 0xef, 0x7b, 0x39, 0xf1, 0xba, 0xc1, 0x98, 0x72, 0x6f, 0x2b, 0x70, 0x41, 0x0a, - 0xe5, 0xf7, 0xe7, 0x89, 0xc1, 0xed, 0x81, 0x9e, 0x18, 0x48, 0x09, 0x12, 0x3c, 0x3d, 0x78, 0xba, - 0xfb, 0x41, 0xb5, 0x98, 0x25, 0xe1, 0x27, 0x09, 0x7f, 0x19, 0x26, 0x82, 0x2b, 0x20, 0xb7, 0x6c, - 0x6b, 0xf1, 0x9b, 0x99, 0x51, 0xa9, 0xb9, 0x16, 0xda, 0x44, 0xeb, 0x0b, 0xf3, 0xb3, 0x35, 0x97, - 0x87, 0xc9, 0x8a, 0xfc, 0x5d, 0x9e, 0xb8, 0xbd, 0x88, 0x14, 0x6e, 0xcd, 0xef, 0x7f, 0x65, 0x7e, - 0x28, 0xf7, 0x51, 0xc8, 0x88, 0x5f, 0xd7, 0x09, 0x01, 0xc7, 0x38, 0x30, 0x9f, 0xfc, 0x36, 0x96, - 0xfe, 0x87, 0x0a, 0x3c, 0x22, 0x8a, 0xbf, 0x64, 0x79, 0x27, 0x9b, 0x36, 0xee, 0xe9, 0x9f, 0x83, - 0x14, 0x62, 0x8e, 0x63, 0xbf, 0x76, 0xc2, 0x6e, 0x23, 0x23, 0xc5, 0x97, 0xc8, 0xbf, 0x86, 0x0f, - 0x09, 0x6d, 0x71, 0xf0, 0xd3, 0xae, 0xcc, 0x3e, 0x05, 0xc3, 0x94, 0x5f, 0xd6, 0x6b, 0x3c, 0xa4, - 0xd7, 0x6f, 0x44, 0xe8, 0x45, 0xe2, 0x48, 0xbf, 0x2b, 0xe9, 0x25, 0xdc, 0xad, 0x46, 0x8a, 0x2f, - 0xf1, 0xe0, 0x2b, 0xa6, 0x70, 0xff, 0x47, 0x22, 0x2a, 0x5e, 0xc9, 0x05, 0x48, 0x95, 0xc3, 0x32, - 0xd1, 0x7a, 0xae, 0x43, 0xb2, 0xe2, 0xd4, 0xc9, 0xef, 0xb0, 0x90, 0xdf, 0xcb, 0x65, 0x46, 0x66, - 0x3f, 0x9e, 0x7b, 0x19, 0x52, 0xa5, 0x13, 0xab, 0x51, 0x6f, 0x23, 0x9b, 0x3d, 0xb2, 0x67, 0x3b, - 0xe8, 0x18, 0x63, 0xf8, 0x73, 0xb9, 0x12, 0x4c, 0x55, 0x1c, 0xbb, 0x78, 0xea, 0x89, 0x75, 0x63, - 0x29, 0x94, 0x22, 0xec, 0x91, 0x0f, 0xf9, 0x02, 0x08, 0x16, 0x28, 0x0e, 0x7f, 0xe7, 0x9d, 0x79, - 0x65, 0xdf, 0xdf, 0x3e, 0xdf, 0x86, 0x47, 0x59, 0xfa, 0x74, 0x51, 0xad, 0xc4, 0x51, 0x8d, 0xb1, - 0xc7, 0xd4, 0x02, 0xdd, 0x26, 0xa6, 0xb3, 0x23, 0xe9, 0x1e, 0x4e, 0x33, 0xdc, 0x14, 0xf5, 0xd5, - 0x4c, 0x3d, 0x93, 0x66, 0x91, 0x74, 0x4b, 0x71, 0x74, 0x21, 0xcd, 0x9e, 0x84, 0x31, 0x7f, 0x4e, - 0x88, 0x06, 0x31, 0x53, 0x56, 0x16, 0x73, 0x90, 0x16, 0x12, 0x56, 0x1f, 0x06, 0xa5, 0xa0, 0x0d, - 0xe1, 0xff, 0x8a, 0x9a, 0x82, 0xff, 0x2b, 0x69, 0x89, 0xc5, 0xa7, 0x60, 0x32, 0xb4, 0x7d, 0x89, - 0x67, 0xd6, 0x35, 0xc0, 0xff, 0x95, 0xb5, 0xf4, 0x6c, 0xf2, 0xb3, 0xff, 0x64, 0x6e, 0x68, 0xf1, - 0x36, 0xe8, 0xdd, 0x1b, 0x9d, 0xfa, 0x08, 0x24, 0x0a, 0x98, 0xf2, 0x51, 0x48, 0x14, 0x8b, 0x9a, - 0x32, 0x3b, 0xf9, 0x37, 0xbe, 0x78, 0x21, 0x5d, 0x24, 0xdf, 0x45, 0xbe, 0x87, 0xbc, 0x62, 0x91, - 0x81, 0x9f, 0x87, 0x47, 0x22, 0x37, 0x4a, 0x31, 0xbe, 0x54, 0xa2, 0xf8, 0xf5, 0xf5, 0x2e, 0xfc, - 0xfa, 0x3a, 0xc1, 0x2b, 0x79, 0xfe, 0xc0, 0xb9, 0xa0, 0x47, 0x6c, 0x4b, 0x66, 0xeb, 0xc2, 0x03, - 0xee, 0x42, 0xfe, 0x79, 0x26, 0x5b, 0x8c, 0x94, 0x45, 0x31, 0x0f, 0xac, 0x8b, 0xf9, 0x12, 0xc3, - 0x97, 0x22, 0xf1, 0x47, 0xa1, 0xa7, 0xaa, 0xf2, 0x0a, 0xc1, 0x48, 0x4a, 0xbe, 0xc2, 0xeb, 0x91, - 0x24, 0x27, 0xc2, 0xbb, 0xee, 0xeb, 0xbe, 0xc2, 0xe5, 0x48, 0x59, 0x2b, 0xe6, 0x9d, 0xaf, 0x72, - 0xfe, 0x0a, 0x5b, 0xe4, 0x0b, 0x57, 0xf5, 0x47, 0x78, 0x8e, 0x4a, 0x15, 0x98, 0x19, 0x88, 0x4b, - 0xe5, 0x4b, 0x0c, 0x50, 0xec, 0x09, 0xe8, 0x6d, 0x25, 0x8e, 0xcc, 0xbf, 0xc8, 0x48, 0x4a, 0x3d, - 0x49, 0x62, 0x4c, 0xc5, 0xe1, 0xc5, 0xfd, 0xfb, 0xef, 0xce, 0x0d, 0x7d, 0xfb, 0xdd, 0xb9, 0xa1, - 0xff, 0xf6, 0xee, 0xdc, 0xd0, 0x77, 0xdf, 0x9d, 0x53, 0x7e, 0xf0, 0xee, 0x9c, 0xf2, 0xa3, 0x77, - 0xe7, 0x94, 0x3f, 0x7b, 0x77, 0x4e, 0x79, 0xf3, 0xc1, 0x9c, 0xf2, 0xb5, 0x07, 0x73, 0xca, 0xd7, - 0x1f, 0xcc, 0x29, 0xbf, 0xf7, 0x60, 0x4e, 0x79, 0xfb, 0xc1, 0x9c, 0x72, 0xff, 0xc1, 0x9c, 0xf2, - 0xed, 0x07, 0x73, 0xca, 0x77, 0x1f, 0xcc, 0x29, 0x3f, 0x78, 0x30, 0x37, 0xf4, 0xa3, 0x07, 0x73, - 0xca, 0x9f, 0x3d, 0x98, 0x1b, 0x7a, 0xf3, 0x7b, 0x73, 0x43, 0x6f, 0x7d, 0x6f, 0x6e, 0xe8, 0x6b, - 0xdf, 0x9b, 0x53, 0xe0, 0x8f, 0x56, 0x21, 0xc7, 0xbe, 0x48, 0x26, 0x7c, 0xdb, 0xf5, 0x8a, 0x77, - 0x82, 0x48, 0x53, 0x70, 0x8d, 0xff, 0xa2, 0x93, 0x3f, 0x70, 0xc6, 0xaf, 0x95, 0xcd, 0x3e, 0xec, - 0x97, 0xd8, 0x72, 0xff, 0x7e, 0x18, 0x46, 0xf9, 0x66, 0x70, 0xd4, 0x6f, 0x42, 0xaf, 0x41, 0xea, - 0xc4, 0x6a, 0x98, 0x6d, 0xcb, 0x3b, 0x65, 0xbb, 0xa0, 0x8f, 0x2d, 0x05, 0x6a, 0xf3, 0x7d, 0xd3, - 0x17, 0x3b, 0x4d, 0xa7, 0xd3, 0x36, 0x7c, 0x51, 0xfd, 0x02, 0x64, 0x4e, 0x90, 0x75, 0x7c, 0xe2, - 0x55, 0x2d, 0xbb, 0x5a, 0x6b, 0x92, 0x6e, 0x79, 0xdc, 0x00, 0x3a, 0xb6, 0x69, 0x97, 0x9a, 0xf8, - 0x64, 0x75, 0xd3, 0x33, 0xc9, 0x5d, 0x7a, 0xc6, 0x20, 0x9f, 0xf5, 0x8b, 0x90, 0x69, 0x23, 0xb7, - 0xd3, 0xf0, 0xaa, 0x35, 0xa7, 0x63, 0x7b, 0xa4, 0x9f, 0x55, 0x8d, 0x34, 0x1d, 0x2b, 0xe1, 0x21, - 0xfd, 0x49, 0x18, 0xf7, 0xda, 0x1d, 0x54, 0x75, 0x6b, 0x8e, 0xe7, 0x36, 0x4d, 0x9b, 0xf4, 0xb3, - 0x29, 0x23, 0x83, 0x07, 0xf7, 0xd8, 0x18, 0xf9, 0x9b, 0x03, 0x35, 0xa7, 0x8d, 0xc8, 0xed, 0x74, - 0xc2, 0xa0, 0x07, 0xba, 0x06, 0xea, 0xab, 0xe8, 0x94, 0xdc, 0xb0, 0x25, 0x0d, 0xfc, 0x51, 0x7f, - 0x06, 0x46, 0xe8, 0x9f, 0xa3, 0x20, 0xdd, 0x35, 0x79, 0x76, 0xed, 0x5f, 0x1a, 0xdd, 0xa3, 0x35, - 0x98, 0x80, 0x7e, 0x0b, 0x46, 0x3d, 0xd4, 0x6e, 0x9b, 0x96, 0x4d, 0x6e, 0x9e, 0xd2, 0x2b, 0xf3, - 0x11, 0x66, 0xd8, 0xa7, 0x12, 0xe4, 0xe7, 0x5d, 0x0d, 0x2e, 0xaf, 0xaf, 0x41, 0x86, 0xc8, 0xad, - 0x54, 0xe9, 0x9f, 0xec, 0x48, 0xf7, 0x8c, 0xe7, 0x34, 0x95, 0xe3, 0x8f, 0x0a, 0x38, 0x8c, 0xfe, - 0xb4, 0xdd, 0x38, 0x39, 0xed, 0x93, 0x11, 0xa7, 0x25, 0xa5, 0x77, 0x85, 0xb4, 0x8d, 0xf4, 0xd4, - 0x8c, 0x87, 0xfe, 0xf8, 0xdd, 0x36, 0x64, 0x44, 0xbd, 0xb8, 0x19, 0x68, 0xfb, 0x43, 0xcc, 0xf0, - 0x74, 0xf0, 0x73, 0xee, 0x3d, 0xac, 0x40, 0xe7, 0xf3, 0x89, 0x9b, 0xca, 0xec, 0x2e, 0x68, 0xe1, - 0xf3, 0x45, 0x50, 0x5e, 0x96, 0x29, 0x35, 0xf1, 0x62, 0xc9, 0x46, 0x79, 0xc0, 0x98, 0x7b, 0x01, - 0x46, 0x68, 0xfc, 0xe8, 0x69, 0x18, 0x0d, 0x7e, 0x35, 0x31, 0x05, 0xc9, 0xdd, 0x83, 0xca, 0x1e, - 0xfd, 0xf9, 0xd3, 0xbd, 0xad, 0xc2, 0xee, 0xde, 0xfe, 0x66, 0xe9, 0xe3, 0x5a, 0x42, 0x9f, 0x84, - 0x74, 0x71, 0x73, 0x6b, 0xab, 0x5a, 0x2c, 0x6c, 0x6e, 0x95, 0xef, 0x69, 0x6a, 0x6e, 0x0e, 0x46, - 0xa8, 0x9e, 0xe4, 0x67, 0xdc, 0x3a, 0xb6, 0x7d, 0xca, 0xdb, 0x07, 0x72, 0x90, 0xfb, 0x86, 0x0e, - 0xa3, 0x85, 0x46, 0x63, 0xdb, 0x6c, 0xb9, 0xfa, 0x4b, 0x30, 0x45, 0x7f, 0x50, 0x62, 0xdf, 0x59, - 0x27, 0xbf, 0x36, 0x88, 0x8b, 0x83, 0xc2, 0x7e, 0xc6, 0x3e, 0xb8, 0x6e, 0x26, 0xbe, 0xd4, 0x25, - 0x4b, 0x0d, 0xdc, 0xcd, 0xa1, 0xef, 0x83, 0xc6, 0x07, 0x37, 0x1a, 0x8e, 0xe9, 0x61, 0xde, 0x04, - 0xfb, 0x31, 0xc0, 0xde, 0xbc, 0x5c, 0x94, 0xd2, 0x76, 0x31, 0xe8, 0x1f, 0x83, 0xd4, 0xa6, 0xed, - 0x5d, 0x5b, 0xc1, 0x6c, 0xfc, 0x4f, 0xac, 0x74, 0xb3, 0x71, 0x11, 0xca, 0xe2, 0x23, 0x18, 0xfa, - 0xfa, 0x2a, 0x46, 0x27, 0xfb, 0xa1, 0x89, 0x48, 0x80, 0x26, 0x87, 0xfa, 0x0b, 0x30, 0x86, 0xef, - 0x4e, 0xe8, 0xc9, 0x87, 0x79, 0xeb, 0xda, 0x05, 0xf7, 0x65, 0x28, 0x3e, 0xc0, 0x70, 0x02, 0x7a, - 0xfe, 0x91, 0xbe, 0x04, 0x82, 0x02, 0x01, 0x06, 0x13, 0xec, 0xf9, 0x1a, 0x8c, 0xf6, 0x24, 0xd8, - 0x0b, 0x69, 0xb0, 0x27, 0x6a, 0xb0, 0xe7, 0x6b, 0x90, 0xea, 0x4b, 0x20, 0x6a, 0xe0, 0x1f, 0xeb, - 0x45, 0x80, 0x0d, 0xeb, 0x0d, 0x54, 0xa7, 0x2a, 0xd0, 0x3f, 0xc0, 0x92, 0x8b, 0x60, 0x08, 0x84, - 0x28, 0x85, 0x80, 0xd2, 0xcb, 0x90, 0xde, 0x3b, 0x0a, 0x48, 0xa0, 0x2b, 0x8f, 0x7d, 0x35, 0x8e, - 0x42, 0x2c, 0x22, 0xce, 0x57, 0x85, 0x5e, 0x4c, 0xba, 0xbf, 0x2a, 0xc2, 0xd5, 0x08, 0xa8, 0x40, - 0x15, 0x4a, 0x92, 0x89, 0x51, 0x45, 0x60, 0x11, 0x71, 0xb8, 0x18, 0x16, 0x1d, 0x07, 0x4b, 0xb2, - 0xaa, 0x34, 0x1f, 0x41, 0xc1, 0x24, 0x58, 0x31, 0x64, 0x47, 0xc4, 0x23, 0x24, 0xc8, 0x31, 0x78, - 0xa2, 0xb7, 0x47, 0xb8, 0x0c, 0xf7, 0x08, 0x3f, 0x16, 0xf3, 0x8c, 0xbc, 0xd0, 0x8a, 0x79, 0x26, - 0x63, 0xf3, 0x8c, 0x8b, 0x86, 0xf2, 0x8c, 0x0f, 0xeb, 0x9f, 0x80, 0x49, 0x3e, 0x86, 0xcb, 0x13, - 0x26, 0xd5, 0xd8, 0x9f, 0xa8, 0xea, 0x4d, 0xca, 0x24, 0x29, 0x67, 0x18, 0xaf, 0x57, 0x60, 0x82, - 0x0f, 0x6d, 0xbb, 0xe4, 0x72, 0xa7, 0xd8, 0x9f, 0x7f, 0xe8, 0xcd, 0x48, 0x05, 0x29, 0x61, 0x08, - 0x3d, 0xbb, 0x0e, 0x33, 0xd1, 0xd5, 0x48, 0x2c, 0xbf, 0x63, 0xb4, 0xfc, 0x9e, 0x13, 0xcb, 0xaf, - 0x22, 0x96, 0xef, 0x12, 0x3c, 0x12, 0x59, 0x7b, 0xe2, 0x48, 0x12, 0x22, 0xc9, 0x6d, 0x18, 0x97, - 0x4a, 0x8e, 0x08, 0x1e, 0x8e, 0x00, 0x0f, 0x77, 0x83, 0x83, 0xd0, 0x8a, 0x58, 0x3d, 0x24, 0xb0, - 0x2a, 0x82, 0x3f, 0x06, 0x13, 0x72, 0xbd, 0x11, 0xd1, 0xe3, 0x11, 0xe8, 0xf1, 0x08, 0x74, 0xf4, - 0xb9, 0x93, 0x11, 0xe8, 0x64, 0x08, 0xbd, 0xd7, 0xf3, 0xdc, 0x53, 0x11, 0xe8, 0xa9, 0x08, 0x74, - 0xf4, 0xb9, 0xf5, 0x08, 0xb4, 0x2e, 0xa2, 0x9f, 0x83, 0xc9, 0x50, 0x89, 0x11, 0xe1, 0xa3, 0x11, - 0xf0, 0x51, 0x11, 0xfe, 0x3c, 0x68, 0xe1, 0xe2, 0x22, 0xe2, 0x27, 0x23, 0xf0, 0x93, 0x51, 0xa7, - 0x8f, 0xd6, 0x7e, 0x24, 0x02, 0x3e, 0x12, 0x79, 0xfa, 0x68, 0xbc, 0x16, 0x81, 0xd7, 0x44, 0x7c, - 0x1e, 0x32, 0x62, 0x35, 0x11, 0xb1, 0xa9, 0x08, 0x6c, 0x2a, 0x6c, 0x77, 0xa9, 0x98, 0xc4, 0x45, - 0xfa, 0x58, 0x8f, 0x74, 0x91, 0x4a, 0x48, 0x1c, 0x49, 0x46, 0x24, 0xf9, 0x24, 0x9c, 0x8b, 0x2a, - 0x19, 0x11, 0x1c, 0x0b, 0x22, 0xc7, 0x04, 0xee, 0x11, 0x83, 0x66, 0xcf, 0x6c, 0x85, 0x1a, 0xa7, - 0xd9, 0x4f, 0xc1, 0x74, 0x44, 0xe1, 0x88, 0xa0, 0x5d, 0x92, 0xbb, 0xb1, 0xac, 0x40, 0x4b, 0x8a, - 0x80, 0x65, 0x1f, 0xef, 0x3a, 0x96, 0xed, 0x89, 0x5d, 0xd9, 0x37, 0xa7, 0x61, 0x82, 0x95, 0xa7, - 0x9d, 0x76, 0x1d, 0xb5, 0x51, 0x5d, 0xff, 0x4b, 0xbd, 0x7b, 0xa7, 0xe5, 0xee, 0xa2, 0xc6, 0x50, - 0x67, 0x68, 0xa1, 0x3e, 0xd5, 0xb3, 0x85, 0xba, 0x12, 0x4f, 0x1f, 0xd7, 0x49, 0x95, 0xba, 0x3a, - 0xa9, 0xa7, 0x7b, 0x93, 0xf6, 0x6a, 0xa8, 0x4a, 0x5d, 0x0d, 0x55, 0x7f, 0x92, 0xc8, 0xbe, 0x6a, - 0xa3, 0xbb, 0xaf, 0x5a, 0xe8, 0xcd, 0xd2, 0xbb, 0xbd, 0xda, 0xe8, 0x6e, 0xaf, 0x62, 0x78, 0xa2, - 0xbb, 0xac, 0x8d, 0xee, 0x2e, 0xab, 0x0f, 0x4f, 0xef, 0x66, 0x6b, 0xa3, 0xbb, 0xd9, 0x8a, 0xe1, - 0x89, 0xee, 0xb9, 0x36, 0x23, 0x7a, 0xae, 0x67, 0x7a, 0x13, 0xf5, 0x6b, 0xbd, 0xb6, 0xa2, 0x5a, - 0xaf, 0xc5, 0x3e, 0x4a, 0xf5, 0xed, 0xc0, 0x36, 0x23, 0x3a, 0xb0, 0x38, 0xc5, 0x7a, 0x34, 0x62, - 0x5b, 0x51, 0x8d, 0x58, 0xac, 0x62, 0xbd, 0xfa, 0xb1, 0xbf, 0x10, 0xee, 0xc7, 0x2e, 0xf7, 0x66, - 0x8a, 0x6e, 0xcb, 0x36, 0xba, 0xdb, 0xb2, 0x85, 0xb8, 0x9c, 0x8b, 0xea, 0xce, 0x3e, 0xd5, 0xb3, - 0x3b, 0x1b, 0x20, 0x85, 0xe3, 0x9a, 0xb4, 0x97, 0x7b, 0x35, 0x69, 0x4b, 0xf1, 0xdc, 0xfd, 0x7b, - 0xb5, 0x83, 0x1e, 0xbd, 0xda, 0xb3, 0xf1, 0xc4, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, 0x6c, 0x1f, 0xb6, - 0x6c, 0x1f, 0xb6, 0x6c, 0x3f, 0xfb, 0x96, 0x2d, 0x9f, 0xfc, 0xdc, 0x57, 0xe6, 0x95, 0xdc, 0x7f, - 0x55, 0xfd, 0xbf, 0x9c, 0xf5, 0x92, 0xe5, 0x9d, 0xe0, 0xf2, 0xb6, 0x0d, 0x19, 0xf2, 0x37, 0x2f, - 0x9a, 0x66, 0xab, 0x65, 0xd9, 0xc7, 0xac, 0x67, 0x5b, 0xec, 0xde, 0x4a, 0x64, 0x00, 0xf2, 0x57, - 0x43, 0xb6, 0xa9, 0x30, 0x5b, 0x6e, 0xec, 0x60, 0x44, 0xbf, 0x0b, 0xe9, 0xa6, 0x7b, 0xec, 0xb3, - 0x25, 0xba, 0x16, 0xc2, 0x10, 0x1b, 0xbd, 0xd2, 0x80, 0x0c, 0x9a, 0xfe, 0x00, 0x56, 0xed, 0xf0, - 0xd4, 0x0b, 0x54, 0x53, 0xe3, 0x54, 0xc3, 0x3e, 0x95, 0x55, 0x3b, 0x0c, 0x46, 0x70, 0xd8, 0x86, - 0x75, 0x8f, 0xab, 0x74, 0x52, 0xf0, 0xbc, 0x04, 0x93, 0x21, 0x6d, 0x23, 0x72, 0xfe, 0x21, 0x7c, - 0x83, 0x15, 0x0b, 0x6b, 0x1e, 0x97, 0x13, 0x62, 0x40, 0xe6, 0x9e, 0x80, 0x71, 0x89, 0x5b, 0xcf, - 0x80, 0x72, 0xc4, 0xbe, 0x4d, 0xa9, 0x1c, 0xe5, 0xbe, 0xac, 0x40, 0x9a, 0xbd, 0x4a, 0xb0, 0x6b, - 0x5a, 0x6d, 0xfd, 0x45, 0x48, 0x36, 0xf8, 0x37, 0x9a, 0x1e, 0xf6, 0xdb, 0xb3, 0x84, 0x41, 0xdf, - 0x80, 0xe1, 0xb6, 0xff, 0x8d, 0xa7, 0x87, 0xfa, 0x4a, 0x2c, 0x81, 0xe7, 0xee, 0x2b, 0x30, 0xc5, - 0xde, 0x74, 0x75, 0xd9, 0xfb, 0xcf, 0x66, 0x6b, 0xf6, 0x1b, 0x0a, 0x8c, 0xf9, 0x47, 0xfa, 0x21, - 0x4c, 0xf8, 0x07, 0xf4, 0x1d, 0x7b, 0x1a, 0xa9, 0x79, 0xc1, 0xc2, 0x5d, 0x1c, 0x4b, 0x11, 0x9f, - 0xe8, 0xc3, 0x28, 0xba, 0x26, 0xcb, 0x83, 0xb3, 0x05, 0x98, 0x8e, 0x10, 0x3b, 0xcb, 0x82, 0x9c, - 0xbb, 0x08, 0x63, 0x15, 0xc7, 0xa3, 0x3f, 0x9c, 0xa3, 0x9f, 0x13, 0x9e, 0x2a, 0x14, 0x13, 0xda, - 0x10, 0x01, 0x2f, 0x5e, 0x84, 0x51, 0x96, 0xfd, 0xfa, 0x08, 0x24, 0xb6, 0x0b, 0xda, 0x10, 0xf9, - 0xbf, 0xa8, 0x29, 0xe4, 0xff, 0x92, 0x96, 0x28, 0x6e, 0x3d, 0xc4, 0x93, 0xa6, 0xa1, 0x5e, 0x4f, - 0x9a, 0x0e, 0x47, 0xa8, 0x79, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa4, 0xc2, 0xb8, 0x10, - 0x2d, 0x7f, 0x00, 0x00, + 0x99, 0x1e, 0x1b, 0x0d, 0x90, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x67, 0x28, 0x88, 0x1a, 0x91, 0x33, + 0xd0, 0x68, 0x44, 0x71, 0x2d, 0x0e, 0x87, 0xc3, 0xb9, 0x61, 0x2c, 0x69, 0x71, 0xe3, 0x88, 0x63, + 0x12, 0xa4, 0x9b, 0xa4, 0xa5, 0xb1, 0x92, 0xa0, 0x9a, 0xc0, 0x21, 0x09, 0x09, 0xe8, 0xc6, 0xa2, + 0x1b, 0x92, 0xa8, 0x4a, 0xa5, 0x94, 0x75, 0xb2, 0xf1, 0x26, 0x95, 0xeb, 0x26, 0xb5, 0x5e, 0xc7, + 0x17, 0x39, 0xa9, 0x8d, 0xbd, 0x9b, 0x9b, 0xd7, 0xbb, 0x71, 0x36, 0x5b, 0xa9, 0xac, 0xf2, 0xe0, + 0x64, 0xf2, 0x92, 0xf2, 0x26, 0x2f, 0x29, 0x57, 0x4a, 0x65, 0x8d, 0x9d, 0x5a, 0x27, 0x71, 0xb2, + 0xce, 0xc6, 0x55, 0x71, 0x95, 0xf7, 0x21, 0x75, 0x6e, 0xdd, 0xe7, 0x34, 0x1a, 0x68, 0x70, 0x24, + 0xd9, 0xfb, 0xe0, 0x97, 0x19, 0xf4, 0x39, 0xff, 0xf7, 0xf5, 0xdf, 0xff, 0xed, 0xfc, 0x7d, 0xba, + 0x01, 0xc2, 0x1f, 0xdd, 0x82, 0xf3, 0x47, 0xb6, 0x7d, 0xd4, 0x44, 0x97, 0xdb, 0x1d, 0xdb, 0xb5, + 0x0f, 0xba, 0x87, 0x97, 0xeb, 0xc8, 0xa9, 0x75, 0x1a, 0x6d, 0xd7, 0xee, 0x2c, 0x93, 0x31, 0x7d, + 0x8a, 0x4a, 0x2c, 0x73, 0x89, 0xec, 0x16, 0x4c, 0xaf, 0x37, 0x9a, 0xa8, 0xe4, 0x09, 0xee, 0x22, + 0x57, 0xbf, 0x09, 0xf1, 0xc3, 0x46, 0x13, 0x65, 0x94, 0xf3, 0xea, 0x62, 0x6a, 0xf5, 0xe2, 0x72, + 0x00, 0xb4, 0x2c, 0x23, 0x76, 0xf0, 0xb0, 0x41, 0x10, 0xd9, 0xef, 0xc6, 0x61, 0x26, 0x64, 0x56, + 0xd7, 0x21, 0x6e, 0x99, 0x2d, 0xcc, 0xa8, 0x2c, 0x8e, 0x1b, 0xe4, 0xb3, 0x9e, 0x81, 0xb1, 0xb6, + 0x59, 0x7b, 0xd5, 0x3c, 0x42, 0x99, 0x18, 0x19, 0xe6, 0x87, 0xfa, 0x3c, 0x40, 0x1d, 0xb5, 0x91, + 0x55, 0x47, 0x56, 0xed, 0x24, 0xa3, 0x9e, 0x57, 0x17, 0xc7, 0x0d, 0x61, 0x44, 0xff, 0x39, 0x98, + 0x6e, 0x77, 0x0f, 0x9a, 0x8d, 0x5a, 0x55, 0x10, 0x83, 0xf3, 0xea, 0x62, 0xc2, 0xd0, 0xe8, 0x44, + 0xc9, 0x17, 0x7e, 0x0a, 0xa6, 0x5e, 0x47, 0xe6, 0xab, 0xa2, 0x68, 0x8a, 0x88, 0x4e, 0xe2, 0x61, + 0x41, 0xb0, 0x08, 0xe9, 0x16, 0x72, 0x1c, 0xf3, 0x08, 0x55, 0xdd, 0x93, 0x36, 0xca, 0xc4, 0xc9, + 0xd5, 0x9f, 0xef, 0xb9, 0xfa, 0xe0, 0x95, 0xa7, 0x18, 0x6a, 0xef, 0xa4, 0x8d, 0xf4, 0x3c, 0x8c, + 0x23, 0xab, 0xdb, 0xa2, 0x0c, 0x89, 0x3e, 0xf6, 0x2b, 0x5b, 0xdd, 0x56, 0x90, 0x25, 0x89, 0x61, + 0x8c, 0x62, 0xcc, 0x41, 0x9d, 0xd7, 0x1a, 0x35, 0x94, 0x19, 0x25, 0x04, 0x4f, 0xf5, 0x10, 0xec, + 0xd2, 0xf9, 0x20, 0x07, 0xc7, 0xe9, 0x45, 0x18, 0x47, 0x6f, 0xb8, 0xc8, 0x72, 0x1a, 0xb6, 0x95, + 0x19, 0x23, 0x24, 0x4f, 0x86, 0x78, 0x11, 0x35, 0xeb, 0x41, 0x0a, 0x1f, 0xa7, 0x5f, 0x87, 0x31, + 0xbb, 0xed, 0x36, 0x6c, 0xcb, 0xc9, 0x24, 0xcf, 0x2b, 0x8b, 0xa9, 0xd5, 0x73, 0xa1, 0x81, 0xb0, + 0x4d, 0x65, 0x0c, 0x2e, 0xac, 0x6f, 0x80, 0xe6, 0xd8, 0xdd, 0x4e, 0x0d, 0x55, 0x6b, 0x76, 0x1d, + 0x55, 0x1b, 0xd6, 0xa1, 0x9d, 0x19, 0x27, 0x04, 0x0b, 0xbd, 0x17, 0x42, 0x04, 0x8b, 0x76, 0x1d, + 0x6d, 0x58, 0x87, 0xb6, 0x31, 0xe9, 0x48, 0xc7, 0xfa, 0x2c, 0x8c, 0x3a, 0x27, 0x96, 0x6b, 0xbe, + 0x91, 0x49, 0x93, 0x08, 0x61, 0x47, 0xd9, 0x7f, 0x35, 0x0a, 0x53, 0xc3, 0x84, 0xd8, 0x6d, 0x48, + 0x1c, 0xe2, 0xab, 0xcc, 0xc4, 0x4e, 0x63, 0x03, 0x8a, 0x91, 0x8d, 0x38, 0xfa, 0x90, 0x46, 0xcc, + 0x43, 0xca, 0x42, 0x8e, 0x8b, 0xea, 0x34, 0x22, 0xd4, 0x21, 0x63, 0x0a, 0x28, 0xa8, 0x37, 0xa4, + 0xe2, 0x0f, 0x15, 0x52, 0x2f, 0xc1, 0x94, 0xa7, 0x52, 0xb5, 0x63, 0x5a, 0x47, 0x3c, 0x36, 0x2f, + 0x47, 0x69, 0xb2, 0x5c, 0xe6, 0x38, 0x03, 0xc3, 0x8c, 0x49, 0x24, 0x1d, 0xeb, 0x25, 0x00, 0xdb, + 0x42, 0xf6, 0x61, 0xb5, 0x8e, 0x6a, 0xcd, 0x4c, 0xb2, 0x8f, 0x95, 0xb6, 0xb1, 0x48, 0x8f, 0x95, + 0x6c, 0x3a, 0x5a, 0x6b, 0xea, 0xb7, 0xfc, 0x50, 0x1b, 0xeb, 0x13, 0x29, 0x5b, 0x34, 0xc9, 0x7a, + 0xa2, 0x6d, 0x1f, 0x26, 0x3b, 0x08, 0xc7, 0x3d, 0xaa, 0xb3, 0x2b, 0x1b, 0x27, 0x4a, 0x2c, 0x47, + 0x5e, 0x99, 0xc1, 0x60, 0xf4, 0xc2, 0x26, 0x3a, 0xe2, 0xa1, 0xfe, 0x04, 0x78, 0x03, 0x55, 0x12, + 0x56, 0x40, 0xaa, 0x50, 0x9a, 0x0f, 0x56, 0xcc, 0x16, 0x9a, 0x7b, 0x13, 0x26, 0x65, 0xf3, 0xe8, + 0x67, 0x20, 0xe1, 0xb8, 0x66, 0xc7, 0x25, 0x51, 0x98, 0x30, 0xe8, 0x81, 0xae, 0x81, 0x8a, 0xac, + 0x3a, 0xa9, 0x72, 0x09, 0x03, 0x7f, 0xd4, 0x7f, 0xde, 0xbf, 0x60, 0x95, 0x5c, 0xf0, 0xa5, 0x5e, + 0x8f, 0x4a, 0xcc, 0xc1, 0xeb, 0x9e, 0xbb, 0x01, 0x13, 0xd2, 0x05, 0x0c, 0x7b, 0xea, 0xec, 0x9f, + 0x87, 0xb3, 0xa1, 0xd4, 0xfa, 0x4b, 0x70, 0xa6, 0x6b, 0x35, 0x2c, 0x17, 0x75, 0xda, 0x1d, 0x84, + 0x23, 0x96, 0x9e, 0x2a, 0xf3, 0x87, 0x63, 0x7d, 0x62, 0x6e, 0x5f, 0x94, 0xa6, 0x2c, 0xc6, 0x4c, + 0xb7, 0x77, 0x70, 0x69, 0x3c, 0xf9, 0xbd, 0x31, 0xed, 0xad, 0xb7, 0xde, 0x7a, 0x2b, 0x96, 0xfd, + 0xcc, 0x28, 0x9c, 0x09, 0xcb, 0x99, 0xd0, 0xf4, 0x9d, 0x85, 0x51, 0xab, 0xdb, 0x3a, 0x40, 0x1d, + 0x62, 0xa4, 0x84, 0xc1, 0x8e, 0xf4, 0x3c, 0x24, 0x9a, 0xe6, 0x01, 0x6a, 0x66, 0xe2, 0xe7, 0x95, + 0xc5, 0xc9, 0xd5, 0x9f, 0x1b, 0x2a, 0x2b, 0x97, 0x37, 0x31, 0xc4, 0xa0, 0x48, 0xfd, 0x39, 0x88, + 0xb3, 0x12, 0x8d, 0x19, 0x96, 0x86, 0x63, 0xc0, 0xb9, 0x64, 0x10, 0x9c, 0xfe, 0x18, 0x8c, 0xe3, + 0xff, 0x69, 0x6c, 0x8c, 0x12, 0x9d, 0x93, 0x78, 0x00, 0xc7, 0x85, 0x3e, 0x07, 0x49, 0x92, 0x26, + 0x75, 0xc4, 0x97, 0x36, 0xef, 0x18, 0x07, 0x56, 0x1d, 0x1d, 0x9a, 0xdd, 0xa6, 0x5b, 0x7d, 0xcd, + 0x6c, 0x76, 0x11, 0x09, 0xf8, 0x71, 0x23, 0xcd, 0x06, 0x3f, 0x81, 0xc7, 0xf4, 0x05, 0x48, 0xd1, + 0xac, 0x6a, 0x58, 0x75, 0xf4, 0x06, 0xa9, 0x9e, 0x09, 0x83, 0x26, 0xda, 0x06, 0x1e, 0xc1, 0xa7, + 0x7f, 0xc5, 0xb1, 0x2d, 0x1e, 0x9a, 0xe4, 0x14, 0x78, 0x80, 0x9c, 0xfe, 0x46, 0xb0, 0x70, 0x3f, + 0x1e, 0x7e, 0x79, 0xc1, 0x98, 0xca, 0x7e, 0x3d, 0x06, 0x71, 0x52, 0x2f, 0xa6, 0x20, 0xb5, 0x77, + 0x6f, 0xa7, 0x5c, 0x2d, 0x6d, 0xef, 0x17, 0x36, 0xcb, 0x9a, 0xa2, 0x4f, 0x02, 0x90, 0x81, 0xf5, + 0xcd, 0xed, 0xfc, 0x9e, 0x16, 0xf3, 0x8e, 0x37, 0x2a, 0x7b, 0xd7, 0xd7, 0x34, 0xd5, 0x03, 0xec, + 0xd3, 0x81, 0xb8, 0x28, 0x70, 0x75, 0x55, 0x4b, 0xe8, 0x1a, 0xa4, 0x29, 0xc1, 0xc6, 0x4b, 0xe5, + 0xd2, 0xf5, 0x35, 0x6d, 0x54, 0x1e, 0xb9, 0xba, 0xaa, 0x8d, 0xe9, 0x13, 0x30, 0x4e, 0x46, 0x0a, + 0xdb, 0xdb, 0x9b, 0x5a, 0xd2, 0xe3, 0xdc, 0xdd, 0x33, 0x36, 0x2a, 0x77, 0xb4, 0x71, 0x8f, 0xf3, + 0x8e, 0xb1, 0xbd, 0xbf, 0xa3, 0x81, 0xc7, 0xb0, 0x55, 0xde, 0xdd, 0xcd, 0xdf, 0x29, 0x6b, 0x29, + 0x4f, 0xa2, 0x70, 0x6f, 0xaf, 0xbc, 0xab, 0xa5, 0x25, 0xb5, 0xae, 0xae, 0x6a, 0x13, 0xde, 0x29, + 0xca, 0x95, 0xfd, 0x2d, 0x6d, 0x52, 0x9f, 0x86, 0x09, 0x7a, 0x0a, 0xae, 0xc4, 0x54, 0x60, 0xe8, + 0xfa, 0x9a, 0xa6, 0xf9, 0x8a, 0x50, 0x96, 0x69, 0x69, 0xe0, 0xfa, 0x9a, 0xa6, 0x67, 0x8b, 0x90, + 0x20, 0xd1, 0xa5, 0xeb, 0x30, 0xb9, 0x99, 0x2f, 0x94, 0x37, 0xab, 0xdb, 0x3b, 0x7b, 0x1b, 0xdb, + 0x95, 0xfc, 0xa6, 0xa6, 0xf8, 0x63, 0x46, 0xf9, 0xe3, 0xfb, 0x1b, 0x46, 0xb9, 0xa4, 0xc5, 0xc4, + 0xb1, 0x9d, 0x72, 0x7e, 0xaf, 0x5c, 0xd2, 0xd4, 0x6c, 0x0d, 0xce, 0x84, 0xd5, 0xc9, 0xd0, 0xcc, + 0x10, 0x5c, 0x1c, 0xeb, 0xe3, 0x62, 0xc2, 0xd5, 0xe3, 0xe2, 0xef, 0xc4, 0x60, 0x26, 0x64, 0xad, + 0x08, 0x3d, 0xc9, 0xf3, 0x90, 0xa0, 0x21, 0x4a, 0x57, 0xcf, 0xa7, 0x43, 0x17, 0x1d, 0x12, 0xb0, + 0x3d, 0x2b, 0x28, 0xc1, 0x89, 0x1d, 0x84, 0xda, 0xa7, 0x83, 0xc0, 0x14, 0x3d, 0x35, 0xfd, 0xcf, + 0xf6, 0xd4, 0x74, 0xba, 0xec, 0x5d, 0x1f, 0x66, 0xd9, 0x23, 0x63, 0xa7, 0xab, 0xed, 0x89, 0x90, + 0xda, 0x7e, 0x1b, 0xa6, 0x7b, 0x88, 0x86, 0xae, 0xb1, 0x9f, 0x52, 0x20, 0xd3, 0xcf, 0x38, 0x11, + 0x95, 0x2e, 0x26, 0x55, 0xba, 0xdb, 0x41, 0x0b, 0x5e, 0xe8, 0xef, 0x84, 0x1e, 0x5f, 0x7f, 0x59, + 0x81, 0xd9, 0xf0, 0x4e, 0x31, 0x54, 0x87, 0xe7, 0x60, 0xb4, 0x85, 0xdc, 0x63, 0x9b, 0x77, 0x4b, + 0x97, 0x42, 0xd6, 0x60, 0x3c, 0x1d, 0x74, 0x36, 0x43, 0x89, 0x8b, 0xb8, 0xda, 0xaf, 0xdd, 0xa3, + 0xda, 0xf4, 0x68, 0xfa, 0xcb, 0x31, 0x38, 0x1b, 0x4a, 0x1e, 0xaa, 0xe8, 0xe3, 0x00, 0x0d, 0xab, + 0xdd, 0x75, 0x69, 0x47, 0x44, 0x0b, 0xec, 0x38, 0x19, 0x21, 0xc5, 0x0b, 0x17, 0xcf, 0xae, 0xeb, + 0xcd, 0xab, 0x64, 0x1e, 0xe8, 0x10, 0x11, 0xb8, 0xe9, 0x2b, 0x1a, 0x27, 0x8a, 0xce, 0xf7, 0xb9, + 0xd2, 0x9e, 0xc0, 0x5c, 0x01, 0xad, 0xd6, 0x6c, 0x20, 0xcb, 0xad, 0x3a, 0x6e, 0x07, 0x99, 0xad, + 0x86, 0x75, 0x44, 0x56, 0x90, 0x64, 0x2e, 0x71, 0x68, 0x36, 0x1d, 0x64, 0x4c, 0xd1, 0xe9, 0x5d, + 0x3e, 0x8b, 0x11, 0x24, 0x80, 0x3a, 0x02, 0x62, 0x54, 0x42, 0xd0, 0x69, 0x0f, 0x91, 0xfd, 0xed, + 0x24, 0xa4, 0x84, 0xbe, 0x5a, 0xbf, 0x00, 0xe9, 0x57, 0xcc, 0xd7, 0xcc, 0x2a, 0xbf, 0x57, 0xa2, + 0x96, 0x48, 0xe1, 0xb1, 0x1d, 0x76, 0xbf, 0xb4, 0x02, 0x67, 0x88, 0x88, 0xdd, 0x75, 0x51, 0xa7, + 0x5a, 0x6b, 0x9a, 0x8e, 0x43, 0x8c, 0x96, 0x24, 0xa2, 0x3a, 0x9e, 0xdb, 0xc6, 0x53, 0x45, 0x3e, + 0xa3, 0x5f, 0x83, 0x19, 0x82, 0x68, 0x75, 0x9b, 0x6e, 0xa3, 0xdd, 0x44, 0x55, 0x7c, 0xf7, 0xe6, + 0x90, 0x95, 0xc4, 0xd3, 0x6c, 0x1a, 0x4b, 0x6c, 0x31, 0x01, 0xac, 0x91, 0xa3, 0x97, 0xe0, 0x71, + 0x02, 0x3b, 0x42, 0x16, 0xea, 0x98, 0x2e, 0xaa, 0xa2, 0x5f, 0xe8, 0x9a, 0x4d, 0xa7, 0x6a, 0x5a, + 0xf5, 0xea, 0xb1, 0xe9, 0x1c, 0x67, 0xce, 0x60, 0x82, 0x42, 0x2c, 0xa3, 0x18, 0x8f, 0x62, 0xc1, + 0x3b, 0x4c, 0xae, 0x4c, 0xc4, 0xf2, 0x56, 0xfd, 0x05, 0xd3, 0x39, 0xd6, 0x73, 0x30, 0x4b, 0x58, + 0x1c, 0xb7, 0xd3, 0xb0, 0x8e, 0xaa, 0xb5, 0x63, 0x54, 0x7b, 0xb5, 0xda, 0x75, 0x0f, 0x6f, 0x66, + 0x1e, 0x13, 0xcf, 0x4f, 0x34, 0xdc, 0x25, 0x32, 0x45, 0x2c, 0xb2, 0xef, 0x1e, 0xde, 0xd4, 0x77, + 0x21, 0x8d, 0x9d, 0xd1, 0x6a, 0xbc, 0x89, 0xaa, 0x87, 0x76, 0x87, 0x2c, 0x8d, 0x93, 0x21, 0xa5, + 0x49, 0xb0, 0xe0, 0xf2, 0x36, 0x03, 0x6c, 0xd9, 0x75, 0x94, 0x4b, 0xec, 0xee, 0x94, 0xcb, 0x25, + 0x23, 0xc5, 0x59, 0xd6, 0xed, 0x0e, 0x0e, 0xa8, 0x23, 0xdb, 0x33, 0x70, 0x8a, 0x06, 0xd4, 0x91, + 0xcd, 0xcd, 0x7b, 0x0d, 0x66, 0x6a, 0x35, 0x7a, 0xcd, 0x8d, 0x5a, 0x95, 0xdd, 0x63, 0x39, 0x19, + 0x4d, 0x32, 0x56, 0xad, 0x76, 0x87, 0x0a, 0xb0, 0x18, 0x77, 0xf4, 0x5b, 0x70, 0xd6, 0x37, 0x96, + 0x08, 0x9c, 0xee, 0xb9, 0xca, 0x20, 0xf4, 0x1a, 0xcc, 0xb4, 0x4f, 0x7a, 0x81, 0xba, 0x74, 0xc6, + 0xf6, 0x49, 0x10, 0x76, 0x03, 0xce, 0xb4, 0x8f, 0xdb, 0xbd, 0xb8, 0x25, 0x11, 0xa7, 0xb7, 0x8f, + 0xdb, 0x41, 0xe0, 0x93, 0xe4, 0x86, 0xbb, 0x83, 0x6a, 0xa6, 0x8b, 0xea, 0x99, 0x47, 0x44, 0x71, + 0x61, 0x42, 0xbf, 0x0c, 0x5a, 0xad, 0x56, 0x45, 0x96, 0x79, 0xd0, 0x44, 0x55, 0xb3, 0x83, 0x2c, + 0xd3, 0xc9, 0x2c, 0x88, 0xc2, 0x93, 0xb5, 0x5a, 0x99, 0xcc, 0xe6, 0xc9, 0xa4, 0xbe, 0x04, 0xd3, + 0xf6, 0xc1, 0x2b, 0x35, 0x1a, 0x92, 0xd5, 0x76, 0x07, 0x1d, 0x36, 0xde, 0xc8, 0x5c, 0x24, 0xf6, + 0x9d, 0xc2, 0x13, 0x24, 0x20, 0x77, 0xc8, 0xb0, 0xfe, 0x34, 0x68, 0x35, 0xe7, 0xd8, 0xec, 0xb4, + 0x49, 0x4d, 0x76, 0xda, 0x66, 0x0d, 0x65, 0x9e, 0xa4, 0xa2, 0x74, 0xbc, 0xc2, 0x87, 0x71, 0x4a, + 0x38, 0xaf, 0x37, 0x0e, 0x5d, 0xce, 0xf8, 0x14, 0x4d, 0x09, 0x32, 0xc6, 0xd8, 0x16, 0x41, 0xc3, + 0xa6, 0x90, 0x4e, 0xbc, 0x48, 0xc4, 0x26, 0xdb, 0xc7, 0x6d, 0xf1, 0xbc, 0x4f, 0xc0, 0x04, 0x96, + 0xf4, 0x4f, 0xfa, 0x34, 0x6d, 0xc8, 0xda, 0xc7, 0xc2, 0x19, 0x3f, 0xb4, 0xde, 0x38, 0x9b, 0x83, + 0xb4, 0x18, 0x9f, 0xfa, 0x38, 0xd0, 0x08, 0xd5, 0x14, 0xdc, 0xac, 0x14, 0xb7, 0x4b, 0xb8, 0xcd, + 0xf8, 0x64, 0x59, 0x8b, 0xe1, 0x76, 0x67, 0x73, 0x63, 0xaf, 0x5c, 0x35, 0xf6, 0x2b, 0x7b, 0x1b, + 0x5b, 0x65, 0x4d, 0x15, 0xfb, 0xea, 0x6f, 0xc4, 0x60, 0x52, 0xbe, 0x45, 0xd2, 0x3f, 0x0a, 0x8f, + 0xf0, 0xfd, 0x0c, 0x07, 0xb9, 0xd5, 0xd7, 0x1b, 0x1d, 0x92, 0x32, 0x2d, 0x93, 0x2e, 0x5f, 0x9e, + 0xd3, 0xce, 0x30, 0xa9, 0x5d, 0xe4, 0xbe, 0xd8, 0xe8, 0xe0, 0x84, 0x68, 0x99, 0xae, 0xbe, 0x09, + 0x0b, 0x96, 0x5d, 0x75, 0x5c, 0xd3, 0xaa, 0x9b, 0x9d, 0x7a, 0xd5, 0xdf, 0x49, 0xaa, 0x9a, 0xb5, + 0x1a, 0x72, 0x1c, 0x9b, 0x2e, 0x55, 0x1e, 0xcb, 0x39, 0xcb, 0xde, 0x65, 0xc2, 0x7e, 0x0d, 0xcf, + 0x33, 0xd1, 0x40, 0x80, 0xa9, 0xfd, 0x02, 0xec, 0x31, 0x18, 0x6f, 0x99, 0xed, 0x2a, 0xb2, 0xdc, + 0xce, 0x09, 0x69, 0x8c, 0x93, 0x46, 0xb2, 0x65, 0xb6, 0xcb, 0xf8, 0xf8, 0x27, 0x73, 0x7f, 0xf2, + 0x5f, 0x55, 0x48, 0x8b, 0xcd, 0x31, 0xbe, 0xd7, 0xa8, 0x91, 0x75, 0x44, 0x21, 0x95, 0xe6, 0x89, + 0x81, 0xad, 0xf4, 0x72, 0x11, 0x2f, 0x30, 0xb9, 0x51, 0xda, 0xb2, 0x1a, 0x14, 0x89, 0x17, 0x77, + 0x5c, 0x5b, 0x10, 0x6d, 0x11, 0x92, 0x06, 0x3b, 0xd2, 0xef, 0xc0, 0xe8, 0x2b, 0x0e, 0xe1, 0x1e, + 0x25, 0xdc, 0x17, 0x07, 0x73, 0xdf, 0xdd, 0x25, 0xe4, 0xe3, 0x77, 0x77, 0xab, 0x95, 0x6d, 0x63, + 0x2b, 0xbf, 0x69, 0x30, 0xb8, 0xfe, 0x28, 0xc4, 0x9b, 0xe6, 0x9b, 0x27, 0xf2, 0x52, 0x44, 0x86, + 0x86, 0x35, 0xfc, 0xa3, 0x10, 0x7f, 0x1d, 0x99, 0xaf, 0xca, 0x0b, 0x00, 0x19, 0xfa, 0x10, 0x43, + 0xff, 0x32, 0x24, 0x88, 0xbd, 0x74, 0x00, 0x66, 0x31, 0x6d, 0x44, 0x4f, 0x42, 0xbc, 0xb8, 0x6d, + 0xe0, 0xf0, 0xd7, 0x20, 0x4d, 0x47, 0xab, 0x3b, 0x1b, 0xe5, 0x62, 0x59, 0x8b, 0x65, 0xaf, 0xc1, + 0x28, 0x35, 0x02, 0x4e, 0x0d, 0xcf, 0x0c, 0xda, 0x08, 0x3b, 0x64, 0x1c, 0x0a, 0x9f, 0xdd, 0xdf, + 0x2a, 0x94, 0x0d, 0x2d, 0x26, 0xba, 0xd7, 0x81, 0xb4, 0xd8, 0x17, 0xff, 0x64, 0x62, 0xea, 0xf7, + 0x14, 0x48, 0x09, 0x7d, 0x2e, 0x6e, 0x50, 0xcc, 0x66, 0xd3, 0x7e, 0xbd, 0x6a, 0x36, 0x1b, 0xa6, + 0xc3, 0x82, 0x02, 0xc8, 0x50, 0x1e, 0x8f, 0x0c, 0xeb, 0xb4, 0x9f, 0x88, 0xf2, 0x5f, 0x50, 0x40, + 0x0b, 0xb6, 0x98, 0x01, 0x05, 0x95, 0x9f, 0xaa, 0x82, 0x9f, 0x53, 0x60, 0x52, 0xee, 0x2b, 0x03, + 0xea, 0x5d, 0xf8, 0xa9, 0xaa, 0xf7, 0xed, 0x18, 0x4c, 0x48, 0xdd, 0xe4, 0xb0, 0xda, 0xfd, 0x02, + 0x4c, 0x37, 0xea, 0xa8, 0xd5, 0xb6, 0x5d, 0x64, 0xd5, 0x4e, 0xaa, 0x4d, 0xf4, 0x1a, 0x6a, 0x66, + 0xb2, 0xa4, 0x50, 0x5c, 0x1e, 0xdc, 0xaf, 0x2e, 0x6f, 0xf8, 0xb8, 0x4d, 0x0c, 0xcb, 0xcd, 0x6c, + 0x94, 0xca, 0x5b, 0x3b, 0xdb, 0x7b, 0xe5, 0x4a, 0xf1, 0x5e, 0x75, 0xbf, 0xf2, 0xb1, 0xca, 0xf6, + 0x8b, 0x15, 0x43, 0x6b, 0x04, 0xc4, 0x3e, 0xc4, 0x54, 0xdf, 0x01, 0x2d, 0xa8, 0x94, 0xfe, 0x08, + 0x84, 0xa9, 0xa5, 0x8d, 0xe8, 0x33, 0x30, 0x55, 0xd9, 0xae, 0xee, 0x6e, 0x94, 0xca, 0xd5, 0xf2, + 0xfa, 0x7a, 0xb9, 0xb8, 0xb7, 0x4b, 0x77, 0x20, 0x3c, 0xe9, 0x3d, 0x39, 0xa9, 0x3f, 0xab, 0xc2, + 0x4c, 0x88, 0x26, 0x7a, 0x9e, 0xdd, 0x3b, 0xd0, 0xdb, 0x99, 0x67, 0x86, 0xd1, 0x7e, 0x19, 0x2f, + 0xf9, 0x3b, 0x66, 0xc7, 0x65, 0xb7, 0x1a, 0x4f, 0x03, 0xb6, 0x92, 0xe5, 0x36, 0x0e, 0x1b, 0xa8, + 0xc3, 0x36, 0x6c, 0xe8, 0x0d, 0xc5, 0x94, 0x3f, 0x4e, 0xf7, 0x6c, 0x3e, 0x02, 0x7a, 0xdb, 0x76, + 0x1a, 0x6e, 0xe3, 0x35, 0x54, 0x6d, 0x58, 0x7c, 0x77, 0x07, 0xdf, 0x60, 0xc4, 0x0d, 0x8d, 0xcf, + 0x6c, 0x58, 0xae, 0x27, 0x6d, 0xa1, 0x23, 0x33, 0x20, 0x8d, 0x0b, 0xb8, 0x6a, 0x68, 0x7c, 0xc6, + 0x93, 0xbe, 0x00, 0xe9, 0xba, 0xdd, 0xc5, 0x5d, 0x17, 0x95, 0xc3, 0xeb, 0x85, 0x62, 0xa4, 0xe8, + 0x98, 0x27, 0xc2, 0xfa, 0x69, 0x7f, 0x5b, 0x29, 0x6d, 0xa4, 0xe8, 0x18, 0x15, 0x79, 0x0a, 0xa6, + 0xcc, 0xa3, 0xa3, 0x0e, 0x26, 0xe7, 0x44, 0xf4, 0x0e, 0x61, 0xd2, 0x1b, 0x26, 0x82, 0x73, 0x77, + 0x21, 0xc9, 0xed, 0x80, 0x97, 0x64, 0x6c, 0x89, 0x6a, 0x9b, 0xde, 0xf6, 0xc6, 0x16, 0xc7, 0x8d, + 0xa4, 0xc5, 0x27, 0x2f, 0x40, 0xba, 0xe1, 0x54, 0xfd, 0x5d, 0xf2, 0xd8, 0xf9, 0xd8, 0x62, 0xd2, + 0x48, 0x35, 0x1c, 0x6f, 0x87, 0x31, 0xfb, 0xe5, 0x18, 0x4c, 0xca, 0xbb, 0xfc, 0x7a, 0x09, 0x92, + 0x4d, 0xbb, 0x66, 0x92, 0xd0, 0xa2, 0x8f, 0x98, 0x16, 0x23, 0x1e, 0x0c, 0x2c, 0x6f, 0x32, 0x79, + 0xc3, 0x43, 0xce, 0xfd, 0x47, 0x05, 0x92, 0x7c, 0x58, 0x9f, 0x85, 0x78, 0xdb, 0x74, 0x8f, 0x09, + 0x5d, 0xa2, 0x10, 0xd3, 0x14, 0x83, 0x1c, 0xe3, 0x71, 0xa7, 0x6d, 0x5a, 0x24, 0x04, 0xd8, 0x38, + 0x3e, 0xc6, 0x7e, 0x6d, 0x22, 0xb3, 0x4e, 0x6e, 0x3f, 0xec, 0x56, 0x0b, 0x59, 0xae, 0xc3, 0xfd, + 0xca, 0xc6, 0x8b, 0x6c, 0x58, 0xff, 0x39, 0x98, 0x76, 0x3b, 0x66, 0xa3, 0x29, 0xc9, 0xc6, 0x89, + 0xac, 0xc6, 0x27, 0x3c, 0xe1, 0x1c, 0x3c, 0xca, 0x79, 0xeb, 0xc8, 0x35, 0x6b, 0xc7, 0xa8, 0xee, + 0x83, 0x46, 0xc9, 0x36, 0xc3, 0x23, 0x4c, 0xa0, 0xc4, 0xe6, 0x39, 0x36, 0xfb, 0x07, 0x0a, 0x4c, + 0xf3, 0x1b, 0xa6, 0xba, 0x67, 0xac, 0x2d, 0x00, 0xd3, 0xb2, 0x6c, 0x57, 0x34, 0x57, 0x6f, 0x28, + 0xf7, 0xe0, 0x96, 0xf3, 0x1e, 0xc8, 0x10, 0x08, 0xe6, 0x5a, 0x00, 0xfe, 0x4c, 0x5f, 0xb3, 0x2d, + 0x40, 0x8a, 0x3d, 0xc2, 0x21, 0xcf, 0x01, 0xe9, 0x2d, 0x36, 0xd0, 0x21, 0x7c, 0x67, 0xa5, 0x9f, + 0x81, 0xc4, 0x01, 0x3a, 0x6a, 0x58, 0x6c, 0x63, 0x96, 0x1e, 0xf0, 0x8d, 0x90, 0xb8, 0xb7, 0x11, + 0x52, 0x78, 0x19, 0x66, 0x6a, 0x76, 0x2b, 0xa8, 0x6e, 0x41, 0x0b, 0xdc, 0xe6, 0x3b, 0x2f, 0x28, + 0x9f, 0x04, 0xbf, 0xc5, 0xfc, 0x91, 0xa2, 0xfc, 0x83, 0x98, 0x7a, 0x67, 0xa7, 0xf0, 0x9b, 0xb1, + 0xb9, 0x3b, 0x14, 0xba, 0xc3, 0xaf, 0xd4, 0x40, 0x87, 0x4d, 0x54, 0xc3, 0xda, 0xc3, 0xaf, 0x3e, + 0x05, 0xcf, 0x1c, 0x35, 0xdc, 0xe3, 0xee, 0xc1, 0x72, 0xcd, 0x6e, 0x5d, 0x3e, 0xb2, 0x8f, 0x6c, + 0xff, 0xd1, 0x27, 0x3e, 0x22, 0x07, 0xe4, 0x13, 0x7b, 0xfc, 0x39, 0xee, 0x8d, 0xce, 0x45, 0x3e, + 0x2b, 0xcd, 0x55, 0x60, 0x86, 0x09, 0x57, 0xc9, 0xf3, 0x17, 0x7a, 0x17, 0xa1, 0x0f, 0xdc, 0xc3, + 0xca, 0xfc, 0xd6, 0x77, 0xc9, 0x72, 0x6d, 0x4c, 0x33, 0x28, 0x9e, 0xa3, 0x37, 0x1a, 0x39, 0x03, + 0xce, 0x4a, 0x7c, 0x34, 0x35, 0x51, 0x27, 0x82, 0xf1, 0x1b, 0x8c, 0x71, 0x46, 0x60, 0xdc, 0x65, + 0xd0, 0x5c, 0x11, 0x26, 0x4e, 0xc3, 0xf5, 0xef, 0x18, 0x57, 0x1a, 0x89, 0x24, 0x77, 0x60, 0x8a, + 0x90, 0xd4, 0xba, 0x8e, 0x6b, 0xb7, 0x48, 0xdd, 0x1b, 0x4c, 0xf3, 0xef, 0xbf, 0x4b, 0x73, 0x65, + 0x12, 0xc3, 0x8a, 0x1e, 0x2a, 0x97, 0x03, 0xf2, 0xc8, 0xa9, 0x8e, 0x6a, 0xcd, 0x08, 0x86, 0xfb, + 0x4c, 0x11, 0x4f, 0x3e, 0xf7, 0x09, 0x38, 0x83, 0x3f, 0x93, 0xb2, 0x24, 0x6a, 0x12, 0xbd, 0xe1, + 0x95, 0xf9, 0x83, 0x4f, 0xd1, 0x74, 0x9c, 0xf1, 0x08, 0x04, 0x9d, 0x04, 0x2f, 0x1e, 0x21, 0xd7, + 0x45, 0x1d, 0xa7, 0x6a, 0x36, 0xc3, 0xd4, 0x13, 0x76, 0x0c, 0x32, 0xbf, 0xf6, 0x7d, 0xd9, 0x8b, + 0x77, 0x28, 0x32, 0xdf, 0x6c, 0xe6, 0xf6, 0xe1, 0x91, 0x90, 0xa8, 0x18, 0x82, 0xf3, 0xb3, 0x8c, + 0xf3, 0x4c, 0x4f, 0x64, 0x60, 0xda, 0x1d, 0xe0, 0xe3, 0x9e, 0x2f, 0x87, 0xe0, 0xfc, 0xfb, 0x8c, + 0x53, 0x67, 0x58, 0xee, 0x52, 0xcc, 0x78, 0x17, 0xa6, 0x5f, 0x43, 0x9d, 0x03, 0xdb, 0x61, 0xbb, + 0x34, 0x43, 0xd0, 0x7d, 0x8e, 0xd1, 0x4d, 0x31, 0x20, 0xd9, 0xb6, 0xc1, 0x5c, 0xb7, 0x20, 0x79, + 0x68, 0xd6, 0xd0, 0x10, 0x14, 0x9f, 0x67, 0x14, 0x63, 0x58, 0x1e, 0x43, 0xf3, 0x90, 0x3e, 0xb2, + 0xd9, 0xca, 0x14, 0x0d, 0xff, 0x02, 0x83, 0xa7, 0x38, 0x86, 0x51, 0xb4, 0xed, 0x76, 0xb7, 0x89, + 0x97, 0xad, 0x68, 0x8a, 0x2f, 0x72, 0x0a, 0x8e, 0x61, 0x14, 0xa7, 0x30, 0xeb, 0xdb, 0x9c, 0xc2, + 0x11, 0xec, 0xf9, 0x3c, 0xa4, 0x6c, 0xab, 0x79, 0x62, 0x5b, 0xc3, 0x28, 0xf1, 0x25, 0xc6, 0x00, + 0x0c, 0x82, 0x09, 0x6e, 0xc3, 0xf8, 0xb0, 0x8e, 0xf8, 0xf5, 0xef, 0xf3, 0xf4, 0xe0, 0x1e, 0xb8, + 0x03, 0x53, 0xbc, 0x40, 0x35, 0x6c, 0x6b, 0x08, 0x8a, 0x7f, 0xc4, 0x28, 0x26, 0x05, 0x18, 0xbb, + 0x0c, 0x17, 0x39, 0xee, 0x11, 0x1a, 0x86, 0xe4, 0xcb, 0xfc, 0x32, 0x18, 0x84, 0x99, 0xf2, 0x00, + 0x59, 0xb5, 0xe3, 0xe1, 0x18, 0xbe, 0xc2, 0x4d, 0xc9, 0x31, 0x98, 0xa2, 0x08, 0x13, 0x2d, 0xb3, + 0xe3, 0x1c, 0x9b, 0xcd, 0xa1, 0xdc, 0xf1, 0x1b, 0x8c, 0x23, 0xed, 0x81, 0x98, 0x45, 0xba, 0xd6, + 0x69, 0x68, 0x7e, 0x93, 0x5b, 0x44, 0x80, 0xb1, 0xd4, 0x73, 0x5c, 0xb2, 0xa5, 0x75, 0x1a, 0xb6, + 0x7f, 0xcc, 0x53, 0x8f, 0x62, 0xb7, 0x44, 0xc6, 0xdb, 0x30, 0xee, 0x34, 0xde, 0x1c, 0x8a, 0xe6, + 0x9f, 0x70, 0x4f, 0x13, 0x00, 0x06, 0xdf, 0x83, 0x47, 0x43, 0x97, 0x89, 0x21, 0xc8, 0xfe, 0x29, + 0x23, 0x9b, 0x0d, 0x59, 0x2a, 0x58, 0x49, 0x38, 0x2d, 0xe5, 0x3f, 0xe3, 0x25, 0x01, 0x05, 0xb8, + 0x76, 0xf0, 0xbd, 0x82, 0x63, 0x1e, 0x9e, 0xce, 0x6a, 0xff, 0x9c, 0x5b, 0x8d, 0x62, 0x25, 0xab, + 0xed, 0xc1, 0x2c, 0x63, 0x3c, 0x9d, 0x5f, 0xbf, 0xca, 0x0b, 0x2b, 0x45, 0xef, 0xcb, 0xde, 0x7d, + 0x19, 0xe6, 0x3c, 0x73, 0xf2, 0xa6, 0xd4, 0xa9, 0xb6, 0xcc, 0xf6, 0x10, 0xcc, 0xbf, 0xc5, 0x98, + 0x79, 0xc5, 0xf7, 0xba, 0x5a, 0x67, 0xcb, 0x6c, 0x63, 0xf2, 0x97, 0x20, 0xc3, 0xc9, 0xbb, 0x56, + 0x07, 0xd5, 0xec, 0x23, 0xab, 0xf1, 0x26, 0xaa, 0x0f, 0x41, 0xfd, 0xb5, 0x80, 0xab, 0xf6, 0x05, + 0x38, 0x66, 0xde, 0x00, 0xcd, 0xeb, 0x55, 0xaa, 0x8d, 0x56, 0xdb, 0xee, 0xb8, 0x11, 0x8c, 0xbf, + 0xcd, 0x3d, 0xe5, 0xe1, 0x36, 0x08, 0x2c, 0x57, 0x86, 0x49, 0x72, 0x38, 0x6c, 0x48, 0xfe, 0x0e, + 0x23, 0x9a, 0xf0, 0x51, 0xac, 0x70, 0xd4, 0xec, 0x56, 0xdb, 0xec, 0x0c, 0x53, 0xff, 0xfe, 0x05, + 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, 0x7b, 0xd2, 0x46, 0x78, 0xb5, 0x1f, 0x82, 0xe1, 0xeb, 0xbc, + 0x70, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, 0xc3, 0x10, 0x14, 0xff, 0x92, 0x53, 0x70, 0x0c, 0xa6, 0xf8, + 0xb8, 0xbf, 0xd0, 0x76, 0xd0, 0x51, 0xc3, 0x71, 0x3b, 0xb4, 0x15, 0x1e, 0x4c, 0xf5, 0xbb, 0xdf, + 0x97, 0x9b, 0x30, 0x43, 0x80, 0xe6, 0xee, 0xc2, 0x54, 0xa0, 0xc5, 0xd0, 0xa3, 0xde, 0x5f, 0xc9, + 0xfc, 0xc5, 0x1f, 0xb2, 0x62, 0x24, 0x77, 0x18, 0xb9, 0x4d, 0xec, 0x77, 0xb9, 0x0f, 0x88, 0x26, + 0xfb, 0xd4, 0x0f, 0x3d, 0xd7, 0x4b, 0x6d, 0x40, 0x6e, 0x1d, 0x26, 0xa4, 0x1e, 0x20, 0x9a, 0xea, + 0x2f, 0x31, 0xaa, 0xb4, 0xd8, 0x02, 0xe4, 0xae, 0x41, 0x1c, 0xaf, 0xe7, 0xd1, 0xf0, 0xbf, 0xcc, + 0xe0, 0x44, 0x3c, 0xf7, 0x2c, 0x24, 0xf9, 0x3a, 0x1e, 0x0d, 0xfd, 0x25, 0x06, 0xf5, 0x20, 0x18, + 0xce, 0xd7, 0xf0, 0x68, 0xf8, 0x5f, 0xe1, 0x70, 0x0e, 0xc1, 0xf0, 0xe1, 0x4d, 0xf8, 0xce, 0x5f, + 0x8b, 0xb3, 0x3a, 0xcc, 0x6d, 0x77, 0x1b, 0xc6, 0xd8, 0xe2, 0x1d, 0x8d, 0xfe, 0x65, 0x76, 0x72, + 0x8e, 0xc8, 0xdd, 0x80, 0xc4, 0x90, 0x06, 0xff, 0xeb, 0x0c, 0x4a, 0xe5, 0x73, 0x45, 0x48, 0x09, + 0x0b, 0x76, 0x34, 0xfc, 0x6f, 0x30, 0xb8, 0x88, 0xc2, 0xaa, 0xb3, 0x05, 0x3b, 0x9a, 0xe0, 0x6f, + 0x72, 0xd5, 0x19, 0x02, 0x9b, 0x8d, 0xaf, 0xd5, 0xd1, 0xe8, 0xbf, 0xc5, 0xad, 0xce, 0x21, 0xb9, + 0xe7, 0x61, 0xdc, 0xab, 0xbf, 0xd1, 0xf8, 0xbf, 0xcd, 0xf0, 0x3e, 0x06, 0x5b, 0x40, 0xa8, 0xff, + 0xd1, 0x14, 0x7f, 0x87, 0x5b, 0x40, 0x40, 0xe1, 0x34, 0x0a, 0xae, 0xe9, 0xd1, 0x4c, 0xbf, 0xc2, + 0xd3, 0x28, 0xb0, 0xa4, 0x63, 0x6f, 0x92, 0x32, 0x18, 0x4d, 0xf1, 0x77, 0xb9, 0x37, 0x89, 0x3c, + 0x56, 0x23, 0xb8, 0x48, 0x46, 0x73, 0xfc, 0x2a, 0x57, 0x23, 0xb0, 0x46, 0xe6, 0x76, 0x40, 0xef, + 0x5d, 0x20, 0xa3, 0xf9, 0x3e, 0xc3, 0xf8, 0xa6, 0x7b, 0xd6, 0xc7, 0xdc, 0x8b, 0x30, 0x1b, 0xbe, + 0x38, 0x46, 0xb3, 0xfe, 0xda, 0x0f, 0x03, 0xb7, 0x33, 0xe2, 0xda, 0x98, 0xdb, 0xf3, 0xab, 0xac, + 0xb8, 0x30, 0x46, 0xd3, 0x7e, 0xf6, 0x87, 0x72, 0xa1, 0x15, 0xd7, 0xc5, 0x5c, 0x1e, 0xc0, 0x5f, + 0x93, 0xa2, 0xb9, 0x3e, 0xc7, 0xb8, 0x04, 0x10, 0x4e, 0x0d, 0xb6, 0x24, 0x45, 0xe3, 0x3f, 0xcf, + 0x53, 0x83, 0x21, 0x70, 0x6a, 0xf0, 0xd5, 0x28, 0x1a, 0xfd, 0x05, 0x9e, 0x1a, 0x1c, 0x92, 0xbb, + 0x0d, 0x49, 0xab, 0xdb, 0x6c, 0xe2, 0xd8, 0xd2, 0x07, 0xbf, 0x92, 0x95, 0xf9, 0xef, 0x3f, 0x66, + 0x60, 0x0e, 0xc8, 0x5d, 0x83, 0x04, 0x6a, 0x1d, 0xa0, 0x7a, 0x14, 0xf2, 0x7f, 0xfc, 0x98, 0xd7, + 0x13, 0x2c, 0x9d, 0x7b, 0x1e, 0x80, 0xde, 0x4c, 0x93, 0x07, 0x45, 0x11, 0xd8, 0xff, 0xf9, 0x63, + 0xf6, 0xb2, 0x84, 0x0f, 0xf1, 0x09, 0xe8, 0xab, 0x17, 0x83, 0x09, 0xbe, 0x2f, 0x13, 0x90, 0x1b, + 0xf0, 0x5b, 0x30, 0xf6, 0x8a, 0x63, 0x5b, 0xae, 0x79, 0x14, 0x85, 0xfe, 0x5f, 0x0c, 0xcd, 0xe5, + 0xb1, 0xc1, 0x5a, 0x76, 0x07, 0xb9, 0xe6, 0x91, 0x13, 0x85, 0xfd, 0xdf, 0x0c, 0xeb, 0x01, 0x30, + 0xb8, 0x66, 0x3a, 0xee, 0x30, 0xd7, 0xfd, 0x47, 0x1c, 0xcc, 0x01, 0x58, 0x69, 0xfc, 0xf9, 0x55, + 0x74, 0x12, 0x85, 0xfd, 0x01, 0x57, 0x9a, 0xc9, 0xe7, 0x9e, 0x85, 0x71, 0xfc, 0x91, 0xbe, 0x01, + 0x15, 0x01, 0xfe, 0x3f, 0x0c, 0xec, 0x23, 0xf0, 0x99, 0x1d, 0xb7, 0xee, 0x36, 0xa2, 0x8d, 0xfd, + 0xc7, 0xcc, 0xd3, 0x5c, 0x3e, 0x97, 0x87, 0x94, 0xe3, 0xd6, 0xeb, 0x5d, 0xd6, 0xd1, 0x44, 0xc0, + 0xff, 0xef, 0x8f, 0xbd, 0x9b, 0x5c, 0x0f, 0x53, 0x28, 0x87, 0xef, 0xd7, 0xc1, 0x1d, 0xfb, 0x8e, + 0x4d, 0x77, 0xea, 0x3e, 0x99, 0x8d, 0xde, 0x72, 0x83, 0xff, 0xd6, 0x84, 0x1b, 0x7d, 0xc5, 0xf0, + 0x42, 0x73, 0xb9, 0x66, 0xb7, 0x0e, 0x6c, 0xe7, 0xf2, 0x81, 0xed, 0x1e, 0x5f, 0x76, 0x8f, 0x11, + 0x1e, 0x63, 0x7b, 0x74, 0x71, 0xfc, 0x79, 0xee, 0x74, 0x1b, 0x7b, 0xe4, 0xb1, 0x6d, 0xa5, 0x81, + 0xaf, 0xad, 0x42, 0x76, 0xce, 0xf5, 0x73, 0x30, 0x4a, 0xae, 0xf6, 0x0a, 0x79, 0x3a, 0xa5, 0x14, + 0xe2, 0xf7, 0xdf, 0x5d, 0x18, 0x31, 0xd8, 0x98, 0x37, 0xbb, 0x4a, 0xb6, 0x36, 0x63, 0xd2, 0xec, + 0xaa, 0x37, 0x7b, 0x95, 0xee, 0x6e, 0x4a, 0xb3, 0x57, 0xbd, 0xd9, 0x35, 0xb2, 0xcf, 0xa9, 0x4a, + 0xb3, 0x6b, 0xde, 0xec, 0x35, 0xb2, 0x97, 0x3f, 0x21, 0xcd, 0x5e, 0xf3, 0x66, 0xaf, 0x93, 0x1d, + 0xfc, 0xb8, 0x34, 0x7b, 0xdd, 0x9b, 0xbd, 0x41, 0x36, 0xef, 0xa7, 0xa5, 0xd9, 0x1b, 0xde, 0xec, + 0x4d, 0xb2, 0x69, 0xaf, 0x4b, 0xb3, 0x37, 0xbd, 0xd9, 0x5b, 0xe4, 0x8d, 0x98, 0x31, 0x69, 0xf6, + 0x96, 0x3e, 0x0f, 0x63, 0xf4, 0xca, 0x57, 0xc8, 0x13, 0xde, 0x29, 0x36, 0xcd, 0x07, 0xfd, 0xf9, + 0x2b, 0xe4, 0xed, 0x97, 0x51, 0x79, 0xfe, 0x8a, 0x3f, 0xbf, 0x4a, 0x5e, 0xc4, 0xd7, 0xe4, 0xf9, + 0x55, 0x7f, 0xfe, 0x6a, 0x66, 0x82, 0xbc, 0x01, 0x24, 0xcd, 0x5f, 0xf5, 0xe7, 0xd7, 0x32, 0x93, + 0x38, 0xe0, 0xe5, 0xf9, 0x35, 0x7f, 0xfe, 0x5a, 0x66, 0xea, 0xbc, 0xb2, 0x98, 0x96, 0xe7, 0xaf, + 0x65, 0x7f, 0x91, 0xb8, 0xd7, 0xf2, 0xdd, 0x3b, 0x2b, 0xbb, 0xd7, 0x73, 0xec, 0xac, 0xec, 0x58, + 0xcf, 0xa5, 0xb3, 0xb2, 0x4b, 0x3d, 0x67, 0xce, 0xca, 0xce, 0xf4, 0xdc, 0x38, 0x2b, 0xbb, 0xd1, + 0x73, 0xe0, 0xac, 0xec, 0x40, 0xcf, 0x75, 0xb3, 0xb2, 0xeb, 0x3c, 0xa7, 0xcd, 0xca, 0x4e, 0xf3, + 0xdc, 0x35, 0x2b, 0xbb, 0xcb, 0x73, 0x54, 0x26, 0xe0, 0x28, 0xdf, 0x45, 0x99, 0x80, 0x8b, 0x7c, + 0xe7, 0x64, 0x02, 0xce, 0xf1, 0xdd, 0x92, 0x09, 0xb8, 0xc5, 0x77, 0x48, 0x26, 0xe0, 0x10, 0xdf, + 0x15, 0x99, 0x80, 0x2b, 0x7c, 0x27, 0xb0, 0x1c, 0x33, 0x50, 0x3b, 0x24, 0xc7, 0xd4, 0x81, 0x39, + 0xa6, 0x0e, 0xcc, 0x31, 0x75, 0x60, 0x8e, 0xa9, 0x03, 0x73, 0x4c, 0x1d, 0x98, 0x63, 0xea, 0xc0, + 0x1c, 0x53, 0x07, 0xe6, 0x98, 0x3a, 0x30, 0xc7, 0xd4, 0xc1, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, + 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x11, 0x39, 0xa6, 0x46, 0xe4, 0x98, 0xda, 0x37, 0xc7, 0x7c, + 0xf7, 0xce, 0xca, 0xee, 0x0d, 0xcd, 0x31, 0xb5, 0x4f, 0x8e, 0xa9, 0x7d, 0x72, 0x4c, 0xed, 0x93, + 0x63, 0x6a, 0x9f, 0x1c, 0x53, 0xfb, 0xe4, 0x98, 0xda, 0x27, 0xc7, 0xd4, 0x3e, 0x39, 0xa6, 0xf6, + 0xcb, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, + 0xfb, 0xe6, 0x98, 0x2a, 0xe6, 0xd8, 0xbf, 0x56, 0x41, 0xa7, 0x39, 0xb6, 0x43, 0xde, 0x11, 0x62, + 0xae, 0x98, 0x0f, 0x64, 0xda, 0x28, 0x76, 0x9d, 0xe6, 0xbb, 0x64, 0x3e, 0x90, 0x6b, 0xf2, 0xfc, + 0xaa, 0x37, 0xcf, 0xb3, 0x4d, 0x9e, 0xbf, 0xea, 0xcd, 0xf3, 0x7c, 0x93, 0xe7, 0xd7, 0xbc, 0x79, + 0x9e, 0x71, 0xf2, 0xfc, 0x35, 0x6f, 0x9e, 0xe7, 0x9c, 0x3c, 0x7f, 0xdd, 0x9b, 0xe7, 0x59, 0x27, + 0xcf, 0xdf, 0xf0, 0xe6, 0x79, 0xde, 0xc9, 0xf3, 0x37, 0xbd, 0x79, 0x9e, 0x79, 0xf2, 0xfc, 0x2d, + 0xfd, 0x7c, 0x30, 0xf7, 0xb8, 0x80, 0xe7, 0xda, 0xf3, 0xc1, 0xec, 0x0b, 0x48, 0x5c, 0xf1, 0x25, + 0x78, 0xfe, 0x05, 0x24, 0x56, 0x7d, 0x09, 0x9e, 0x81, 0x01, 0x89, 0xab, 0xd9, 0x4f, 0x13, 0xf7, + 0x59, 0x41, 0xf7, 0xcd, 0x05, 0xdc, 0x17, 0x13, 0x5c, 0x37, 0x17, 0x70, 0x5d, 0x4c, 0x70, 0xdb, + 0x5c, 0xc0, 0x6d, 0x31, 0xc1, 0x65, 0x73, 0x01, 0x97, 0xc5, 0x04, 0x77, 0xcd, 0x05, 0xdc, 0x15, + 0x13, 0x5c, 0x35, 0x17, 0x70, 0x55, 0x4c, 0x70, 0xd3, 0x5c, 0xc0, 0x4d, 0x31, 0xc1, 0x45, 0x73, + 0x01, 0x17, 0xc5, 0x04, 0xf7, 0xcc, 0x05, 0xdc, 0x13, 0x13, 0x5c, 0x73, 0x2e, 0xe8, 0x9a, 0x98, + 0xe8, 0x96, 0x73, 0x41, 0xb7, 0xc4, 0x44, 0x97, 0x9c, 0x0b, 0xba, 0x24, 0x26, 0xba, 0xe3, 0x5c, + 0xd0, 0x1d, 0x31, 0xd1, 0x15, 0x7f, 0x12, 0xe3, 0x1d, 0xe1, 0xae, 0xdb, 0xe9, 0xd6, 0xdc, 0xf7, + 0xd5, 0x11, 0xae, 0x48, 0xed, 0x43, 0x6a, 0x55, 0x5f, 0x26, 0x0d, 0xab, 0xd8, 0x71, 0x06, 0x56, + 0xb0, 0x15, 0xa9, 0xb1, 0x10, 0x10, 0x56, 0x38, 0x62, 0xed, 0x7d, 0xf5, 0x86, 0x2b, 0x52, 0x9b, + 0x11, 0xad, 0xdf, 0xcd, 0x0f, 0xbd, 0x63, 0x7b, 0x27, 0xc6, 0x3b, 0x36, 0x66, 0xfe, 0xd3, 0x76, + 0x6c, 0x4b, 0xd1, 0x26, 0xf7, 0x8c, 0xbd, 0x14, 0x6d, 0xec, 0x9e, 0x55, 0x67, 0xd8, 0x0e, 0x6e, + 0x29, 0xda, 0xb4, 0x9e, 0x51, 0x3f, 0xd8, 0x7e, 0x8b, 0x45, 0xb0, 0x81, 0xda, 0x21, 0x11, 0x7c, + 0xda, 0x7e, 0x6b, 0x45, 0x2a, 0x25, 0xa7, 0x8d, 0x60, 0xf5, 0xd4, 0x11, 0x7c, 0xda, 0xce, 0x6b, + 0x45, 0x2a, 0x2f, 0xa7, 0x8e, 0xe0, 0x0f, 0xa1, 0x1f, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xb4, 0xfd, + 0xd0, 0x52, 0xb4, 0xc9, 0x43, 0x23, 0x58, 0x3d, 0x45, 0x04, 0x0f, 0xd3, 0x1f, 0x2d, 0x45, 0x9b, + 0x36, 0x3c, 0x82, 0xdf, 0x77, 0x37, 0xf3, 0x45, 0x05, 0xa6, 0x2b, 0x8d, 0x7a, 0xb9, 0x75, 0x80, + 0xea, 0x75, 0x54, 0x67, 0x76, 0x5c, 0x91, 0x2a, 0x41, 0x1f, 0x57, 0x7f, 0xf3, 0xdd, 0x05, 0xdf, + 0xc2, 0xd7, 0x20, 0x49, 0x6d, 0xba, 0xb2, 0x92, 0xb9, 0xaf, 0x44, 0x54, 0x38, 0x4f, 0x54, 0xbf, + 0xc0, 0x61, 0x57, 0x56, 0x32, 0xff, 0x49, 0x11, 0xaa, 0x9c, 0x37, 0x9c, 0xfd, 0x15, 0xa2, 0xa1, + 0xf5, 0xbe, 0x35, 0xbc, 0x3c, 0x94, 0x86, 0x82, 0x6e, 0x8f, 0xf5, 0xe8, 0x26, 0x68, 0xd5, 0x85, + 0xa9, 0x4a, 0xa3, 0x5e, 0x21, 0x5f, 0x01, 0x1f, 0x46, 0x25, 0x2a, 0x13, 0xa8, 0x07, 0x2b, 0x52, + 0x58, 0x8a, 0x08, 0x2f, 0xa4, 0xe5, 0x1a, 0x91, 0x6d, 0xe0, 0xd3, 0x5a, 0xd2, 0x69, 0x97, 0xfa, + 0x9d, 0xd6, 0xaf, 0xec, 0xde, 0x09, 0x97, 0xfa, 0x9d, 0xd0, 0xcf, 0x21, 0xef, 0x54, 0x6f, 0xf0, + 0xc5, 0x99, 0xbe, 0xa9, 0xa3, 0x9f, 0x83, 0xd8, 0x06, 0x7d, 0x91, 0x38, 0x5d, 0x48, 0x63, 0xa5, + 0xbe, 0xf5, 0xee, 0x42, 0x7c, 0xbf, 0xdb, 0xa8, 0x1b, 0xb1, 0x8d, 0xba, 0x7e, 0x17, 0x12, 0x9f, + 0x60, 0x5f, 0x44, 0xc4, 0x02, 0x6b, 0x4c, 0xe0, 0x23, 0x11, 0x5b, 0x4c, 0x84, 0x7a, 0x79, 0xbf, + 0x61, 0xb9, 0x57, 0x56, 0x6f, 0x1a, 0x94, 0x22, 0xfb, 0x67, 0x00, 0xe8, 0x39, 0x4b, 0xa6, 0x73, + 0xac, 0x57, 0x38, 0x33, 0x3d, 0xf5, 0xcd, 0x6f, 0xbd, 0xbb, 0xb0, 0x36, 0x0c, 0xeb, 0x33, 0x75, + 0xd3, 0x39, 0x7e, 0xc6, 0x3d, 0x69, 0xa3, 0xe5, 0xc2, 0x89, 0x8b, 0x1c, 0xce, 0xde, 0xe6, 0xab, + 0x1e, 0xbb, 0xae, 0x8c, 0x70, 0x5d, 0x49, 0xe9, 0x9a, 0xd6, 0xe5, 0x6b, 0x5a, 0x79, 0xd8, 0xeb, + 0x79, 0x83, 0x2f, 0x12, 0x01, 0x4b, 0xaa, 0x51, 0x96, 0x54, 0xdf, 0xaf, 0x25, 0xdb, 0xbc, 0x3e, + 0x06, 0xae, 0x55, 0x1d, 0x74, 0xad, 0xea, 0xfb, 0xb9, 0xd6, 0xff, 0x47, 0xb3, 0xd5, 0xcb, 0xa7, + 0x7d, 0x8b, 0xbe, 0xc4, 0xf8, 0xa7, 0x6b, 0x2f, 0xe8, 0x03, 0xed, 0x02, 0x72, 0xf1, 0xfb, 0x6f, + 0x2f, 0x28, 0xd9, 0x2f, 0xc6, 0xf8, 0x95, 0xd3, 0x44, 0x7a, 0xb8, 0x2b, 0xff, 0xd3, 0xd2, 0x53, + 0x7d, 0x18, 0x16, 0xfa, 0x82, 0x02, 0xb3, 0x3d, 0x95, 0x9c, 0x9a, 0xe9, 0x83, 0x2d, 0xe7, 0xd6, + 0x69, 0xcb, 0x39, 0x53, 0xf0, 0x77, 0x14, 0x38, 0x13, 0x28, 0xaf, 0x54, 0xbd, 0xcb, 0x01, 0xf5, + 0x1e, 0xe9, 0x3d, 0x13, 0x11, 0x14, 0xb4, 0x13, 0xdd, 0x1b, 0x00, 0x08, 0xcc, 0x9e, 0xdf, 0xd7, + 0x02, 0x7e, 0x3f, 0xe7, 0x01, 0x42, 0xcc, 0xc5, 0x23, 0x80, 0xa9, 0x6d, 0x43, 0x7c, 0xaf, 0x83, + 0x90, 0x3e, 0x0f, 0xb1, 0xed, 0x0e, 0xd3, 0x70, 0x92, 0xe2, 0xb7, 0x3b, 0x85, 0x8e, 0x69, 0xd5, + 0x8e, 0x8d, 0xd8, 0x76, 0x47, 0xbf, 0x00, 0x6a, 0x9e, 0x7d, 0x09, 0x3a, 0xb5, 0x3a, 0x45, 0x05, + 0xf2, 0x56, 0x9d, 0x49, 0xe0, 0x39, 0x7d, 0x1e, 0xe2, 0x9b, 0xc8, 0x3c, 0x64, 0x4a, 0x00, 0x95, + 0xc1, 0x23, 0x06, 0x19, 0x67, 0x27, 0x7c, 0x09, 0x92, 0x9c, 0x58, 0xbf, 0x88, 0x11, 0x87, 0x2e, + 0x3b, 0x2d, 0x43, 0x60, 0x75, 0xd8, 0xca, 0x45, 0x66, 0xf5, 0x4b, 0x90, 0x30, 0x1a, 0x47, 0xc7, + 0x2e, 0x3b, 0x79, 0xaf, 0x18, 0x9d, 0xce, 0xde, 0x83, 0x71, 0x4f, 0xa3, 0x0f, 0x98, 0xba, 0x44, + 0x2f, 0x4d, 0x9f, 0x13, 0xd7, 0x13, 0xbe, 0x6f, 0x49, 0x87, 0xf4, 0xf3, 0x90, 0xdc, 0x75, 0x3b, + 0x7e, 0xd1, 0xe7, 0x1d, 0xa9, 0x37, 0x9a, 0xfd, 0x45, 0x05, 0x92, 0x25, 0x84, 0xda, 0xc4, 0xe0, + 0x4f, 0x42, 0xbc, 0x64, 0xbf, 0x6e, 0x31, 0x05, 0xa7, 0x99, 0x45, 0xf1, 0x34, 0xb3, 0x29, 0x99, + 0xd6, 0x9f, 0x14, 0xed, 0x3e, 0xe3, 0xd9, 0x5d, 0x90, 0x23, 0xb6, 0xcf, 0x4a, 0xb6, 0x67, 0x0e, + 0xc4, 0x42, 0x3d, 0xf6, 0xbf, 0x01, 0x29, 0xe1, 0x2c, 0xfa, 0x22, 0x53, 0x23, 0x16, 0x04, 0x8a, + 0xb6, 0xc2, 0x12, 0x59, 0x04, 0x13, 0xd2, 0x89, 0x31, 0x54, 0x30, 0x71, 0x1f, 0x28, 0x31, 0xf3, + 0x92, 0x6c, 0xe6, 0x70, 0x51, 0x66, 0xea, 0x15, 0x6a, 0x23, 0x62, 0xee, 0x8b, 0x34, 0x38, 0xfb, + 0x3b, 0x11, 0x7f, 0xce, 0x26, 0x40, 0xad, 0x34, 0x9a, 0xd9, 0x67, 0x01, 0x68, 0xca, 0x97, 0xad, + 0x6e, 0x2b, 0x90, 0x75, 0x93, 0xdc, 0xc0, 0x7b, 0xc7, 0x68, 0x0f, 0x39, 0x44, 0x44, 0xee, 0xa7, + 0x70, 0x81, 0x01, 0x9a, 0x62, 0x04, 0xff, 0x74, 0x24, 0x3e, 0xb4, 0x13, 0xc3, 0xa2, 0x19, 0x2a, + 0x7a, 0x0f, 0xb9, 0x79, 0xcb, 0x76, 0x8f, 0x51, 0x27, 0x80, 0x58, 0xd5, 0xaf, 0x4a, 0x09, 0x3b, + 0xb9, 0xfa, 0x98, 0x87, 0xe8, 0x0b, 0xba, 0x9a, 0xfd, 0x2a, 0x51, 0x10, 0xb7, 0x02, 0x3d, 0x17, + 0xa8, 0x0e, 0x71, 0x81, 0xfa, 0x75, 0xa9, 0x7f, 0x1b, 0xa0, 0x66, 0xe0, 0xd6, 0xf2, 0x96, 0x74, + 0x9f, 0x33, 0x58, 0x59, 0xf9, 0x1e, 0x93, 0xdb, 0x94, 0xab, 0xfc, 0x74, 0xa4, 0xca, 0x7d, 0xba, + 0xdb, 0xd3, 0xda, 0x54, 0x1d, 0xd6, 0xa6, 0xbf, 0xe7, 0x75, 0x1c, 0xf4, 0x97, 0x26, 0xc8, 0x6f, + 0xb4, 0xe8, 0x1f, 0x89, 0xf4, 0x7d, 0x4e, 0x29, 0x7a, 0xaa, 0xae, 0x0d, 0xeb, 0xfe, 0x5c, 0xac, + 0x50, 0xf0, 0xd4, 0xbd, 0x71, 0x8a, 0x10, 0xc8, 0xc5, 0x8a, 0x45, 0xaf, 0x6c, 0x27, 0x3f, 0xfd, + 0xf6, 0x82, 0xf2, 0x95, 0xb7, 0x17, 0x46, 0xb2, 0xbf, 0xa1, 0xc0, 0x34, 0x93, 0x14, 0x02, 0xf7, + 0x99, 0x80, 0xf2, 0x67, 0x79, 0xcd, 0x08, 0xb3, 0xc0, 0x4f, 0x2c, 0x78, 0xbf, 0xa1, 0x40, 0xa6, + 0x47, 0x57, 0x6e, 0xef, 0x95, 0xa1, 0x54, 0xce, 0x29, 0xe5, 0x9f, 0xbe, 0xcd, 0xef, 0x41, 0x62, + 0xaf, 0xd1, 0x42, 0x1d, 0xbc, 0x12, 0xe0, 0x0f, 0x54, 0x65, 0xfe, 0x30, 0x87, 0x0e, 0xf1, 0x39, + 0xaa, 0x9c, 0x34, 0xb7, 0xaa, 0x67, 0x20, 0x5e, 0x32, 0x5d, 0x93, 0x68, 0x90, 0xf6, 0xea, 0xab, + 0xe9, 0x9a, 0xd9, 0xab, 0x90, 0xde, 0x3a, 0x21, 0xaf, 0xd9, 0xd4, 0xc9, 0x2b, 0x24, 0x72, 0xf7, + 0xc7, 0xfb, 0xd5, 0x2b, 0x4b, 0x89, 0x64, 0x5d, 0xbb, 0xaf, 0xe4, 0xe2, 0x44, 0x9f, 0xd7, 0x60, + 0x72, 0x1b, 0xab, 0x4d, 0x70, 0x04, 0x76, 0x1e, 0x94, 0x2d, 0xb9, 0x11, 0x12, 0x59, 0x0d, 0x65, + 0x2b, 0xd0, 0x3e, 0xaa, 0x9e, 0x79, 0x02, 0x6d, 0x9b, 0xea, 0xb5, 0x6d, 0x4b, 0xf1, 0xe4, 0xa4, + 0x36, 0xbd, 0x14, 0x4f, 0x82, 0x36, 0xc1, 0xce, 0xfb, 0x1f, 0x54, 0xd0, 0x68, 0xab, 0x53, 0x42, + 0x87, 0x0d, 0xab, 0xe1, 0xf6, 0xf6, 0xab, 0x9e, 0xc6, 0xfa, 0xf3, 0x30, 0x8e, 0x4d, 0xba, 0xce, + 0x7e, 0xaa, 0x0d, 0x9b, 0xfe, 0x02, 0x6b, 0x51, 0x02, 0x14, 0x6c, 0x80, 0x84, 0x8e, 0x8f, 0xd1, + 0xd7, 0x41, 0xad, 0x54, 0xb6, 0xd8, 0xe2, 0xb6, 0x36, 0x10, 0xca, 0xde, 0xd2, 0x61, 0x47, 0x6c, + 0xcc, 0x39, 0x32, 0x30, 0x81, 0xbe, 0x06, 0xb1, 0xca, 0x16, 0x6b, 0x78, 0x2f, 0x0e, 0x43, 0x63, + 0xc4, 0x2a, 0x5b, 0x73, 0xff, 0x46, 0x81, 0x09, 0x69, 0x54, 0xcf, 0x42, 0x9a, 0x0e, 0x08, 0x97, + 0x3b, 0x6a, 0x48, 0x63, 0x5c, 0xe7, 0xd8, 0xfb, 0xd4, 0x79, 0x2e, 0x0f, 0x53, 0x81, 0x71, 0x7d, + 0x19, 0x74, 0x71, 0x88, 0x29, 0x41, 0x7f, 0x26, 0x2a, 0x64, 0x26, 0xfb, 0x38, 0x80, 0x6f, 0x57, + 0xef, 0xd7, 0x8d, 0x2a, 0xe5, 0xdd, 0xbd, 0x72, 0x49, 0x53, 0xb2, 0x5f, 0x57, 0x20, 0xc5, 0xda, + 0xd6, 0x9a, 0xdd, 0x46, 0x7a, 0x01, 0x94, 0x3c, 0x8b, 0xa0, 0x87, 0xd3, 0x5b, 0xc9, 0xeb, 0x97, + 0x41, 0x29, 0x0c, 0xef, 0x6a, 0xa5, 0xa0, 0xaf, 0x82, 0x52, 0x64, 0x0e, 0x1e, 0xce, 0x33, 0x4a, + 0x31, 0xfb, 0xc7, 0x2a, 0xcc, 0x88, 0x6d, 0x34, 0xaf, 0x27, 0x17, 0xe4, 0xfb, 0xa6, 0xdc, 0xf8, + 0x95, 0xd5, 0xab, 0x6b, 0xcb, 0xf8, 0x1f, 0x2f, 0x24, 0xb3, 0xf2, 0x2d, 0x54, 0x0e, 0x3c, 0x91, + 0x2b, 0xfd, 0xde, 0x13, 0xc9, 0xc5, 0x05, 0x86, 0x9e, 0xf7, 0x44, 0xa4, 0xd9, 0x9e, 0xf7, 0x44, + 0xa4, 0xd9, 0x9e, 0xf7, 0x44, 0xa4, 0xd9, 0x9e, 0x67, 0x01, 0xd2, 0x6c, 0xcf, 0x7b, 0x22, 0xd2, + 0x6c, 0xcf, 0x7b, 0x22, 0xd2, 0x6c, 0xef, 0x7b, 0x22, 0x6c, 0xba, 0xef, 0x7b, 0x22, 0xf2, 0x7c, + 0xef, 0x7b, 0x22, 0xf2, 0x7c, 0xef, 0x7b, 0x22, 0xb9, 0xb8, 0xdb, 0xe9, 0xa2, 0xfe, 0x4f, 0x1d, + 0x64, 0xfc, 0xa0, 0x9b, 0x40, 0xbf, 0x02, 0x6f, 0xc3, 0x14, 0xdd, 0x90, 0x28, 0xda, 0x96, 0x6b, + 0x36, 0x2c, 0xd4, 0xd1, 0x3f, 0x0a, 0x69, 0x3a, 0x44, 0x6f, 0x73, 0xc2, 0x6e, 0x03, 0xe9, 0x3c, + 0xab, 0xb7, 0x92, 0x74, 0xf6, 0x4f, 0xe2, 0x30, 0x4b, 0x07, 0x2a, 0x66, 0x0b, 0x49, 0x6f, 0x19, + 0x5d, 0x0a, 0x3c, 0x53, 0x9a, 0xc4, 0xf0, 0x07, 0xef, 0x2e, 0xd0, 0xd1, 0xbc, 0x17, 0x4d, 0x97, + 0x02, 0x4f, 0x97, 0x64, 0x39, 0x7f, 0x01, 0xba, 0x14, 0x78, 0xf3, 0x48, 0x96, 0xf3, 0xd6, 0x1b, + 0x4f, 0x8e, 0xbf, 0x83, 0x24, 0xcb, 0x95, 0xbc, 0x28, 0xbb, 0x14, 0x78, 0x1b, 0x49, 0x96, 0x2b, + 0x7b, 0xf1, 0x76, 0x29, 0xf0, 0xec, 0x49, 0x96, 0x5b, 0xf7, 0x22, 0xef, 0x52, 0xe0, 0x29, 0x94, + 0x2c, 0x77, 0xc7, 0x8b, 0xc1, 0x4b, 0x81, 0x77, 0x95, 0x64, 0xb9, 0x17, 0xbc, 0x68, 0xbc, 0x14, + 0x78, 0x6b, 0x49, 0x96, 0xdb, 0xf0, 0xe2, 0x72, 0x31, 0xf8, 0xfe, 0x92, 0x2c, 0x78, 0xd7, 0x8f, + 0xd0, 0xc5, 0xe0, 0x9b, 0x4c, 0xb2, 0xe4, 0xc7, 0xfc, 0x58, 0x5d, 0x0c, 0xbe, 0xd3, 0x24, 0x4b, + 0x6e, 0xfa, 0x51, 0xbb, 0x18, 0x7c, 0x56, 0x26, 0x4b, 0x6e, 0xf9, 0xf1, 0xbb, 0x18, 0x7c, 0x6a, + 0x26, 0x4b, 0x56, 0xfc, 0x48, 0x5e, 0x0c, 0x3e, 0x3f, 0x93, 0x25, 0xb7, 0xfd, 0x4d, 0xf4, 0xdf, + 0x0f, 0x84, 0x9f, 0xf0, 0x16, 0x54, 0x36, 0x10, 0x7e, 0x10, 0x12, 0x7a, 0x81, 0x42, 0x26, 0xc8, + 0xf8, 0x61, 0x97, 0x0d, 0x84, 0x1d, 0x84, 0x84, 0x5c, 0x36, 0x10, 0x72, 0x10, 0x12, 0x6e, 0xd9, + 0x40, 0xb8, 0x41, 0x48, 0xa8, 0x65, 0x03, 0xa1, 0x06, 0x21, 0x61, 0x96, 0x0d, 0x84, 0x19, 0x84, + 0x84, 0x58, 0x36, 0x10, 0x62, 0x10, 0x12, 0x5e, 0xd9, 0x40, 0x78, 0x41, 0x48, 0x68, 0x5d, 0x0c, + 0x86, 0x16, 0x84, 0x85, 0xd5, 0xc5, 0x60, 0x58, 0x41, 0x58, 0x48, 0x3d, 0x11, 0x0c, 0xa9, 0xf1, + 0x07, 0xef, 0x2e, 0x24, 0xf0, 0x90, 0x10, 0x4d, 0x17, 0x83, 0xd1, 0x04, 0x61, 0x91, 0x74, 0x31, + 0x18, 0x49, 0x10, 0x16, 0x45, 0x17, 0x83, 0x51, 0x04, 0x61, 0x11, 0xf4, 0x4e, 0x30, 0x82, 0xfc, + 0x77, 0x7c, 0xb2, 0x81, 0x47, 0x8a, 0x51, 0x11, 0xa4, 0x0e, 0x11, 0x41, 0xea, 0x10, 0x11, 0xa4, + 0x0e, 0x11, 0x41, 0xea, 0x10, 0x11, 0xa4, 0x0e, 0x11, 0x41, 0xea, 0x10, 0x11, 0xa4, 0x0e, 0x11, + 0x41, 0xea, 0x30, 0x11, 0xa4, 0x0e, 0x15, 0x41, 0x6a, 0xbf, 0x08, 0xba, 0x18, 0x7c, 0xe3, 0x01, + 0xc2, 0x0a, 0xd2, 0xc5, 0xe0, 0xa3, 0xcf, 0xe8, 0x10, 0x52, 0x87, 0x0a, 0x21, 0xb5, 0x5f, 0x08, + 0xfd, 0xbe, 0x0a, 0x33, 0x52, 0x08, 0xb1, 0xe7, 0x43, 0x1f, 0x54, 0x05, 0xba, 0x3e, 0xc4, 0x0b, + 0x16, 0x61, 0x31, 0x75, 0x7d, 0x88, 0x87, 0xd4, 0x83, 0xe2, 0xac, 0xb7, 0x0a, 0x95, 0x87, 0xa8, + 0x42, 0xeb, 0x5e, 0x0c, 0x5d, 0x1f, 0xe2, 0xc5, 0x8b, 0xde, 0xd8, 0xbb, 0x39, 0xa8, 0x08, 0xbc, + 0x30, 0x54, 0x11, 0xd8, 0x18, 0xaa, 0x08, 0xdc, 0xf5, 0x3d, 0xf8, 0x4b, 0x31, 0x38, 0xe3, 0x7b, + 0x90, 0x7e, 0x22, 0x3f, 0xa5, 0x94, 0x15, 0x1e, 0x51, 0xe9, 0xfc, 0xb1, 0x8d, 0xe0, 0xc6, 0xd8, + 0x46, 0x5d, 0xdf, 0x91, 0x1f, 0x56, 0xe5, 0x4e, 0xfb, 0x00, 0x47, 0xf0, 0x38, 0xdb, 0x0c, 0xbd, + 0x08, 0xea, 0x46, 0xdd, 0x21, 0xd5, 0x22, 0xec, 0xb4, 0x45, 0x03, 0x4f, 0xeb, 0x06, 0x8c, 0x12, + 0x71, 0x87, 0xb8, 0xf7, 0xfd, 0x9c, 0xb8, 0x64, 0x30, 0xa6, 0xec, 0x3b, 0x0a, 0x9c, 0x97, 0x42, + 0xf9, 0x83, 0x79, 0x64, 0x70, 0x7b, 0xa8, 0x47, 0x06, 0x52, 0x82, 0xf8, 0x8f, 0x0f, 0x9e, 0xea, + 0x7d, 0x52, 0x2d, 0x66, 0x49, 0xf0, 0x51, 0xc2, 0x5f, 0x80, 0x49, 0xff, 0x0a, 0xc8, 0x3d, 0xdb, + 0xb5, 0xe8, 0xdd, 0xcc, 0xb0, 0xd4, 0xbc, 0x16, 0xd8, 0x45, 0x1b, 0x08, 0xf3, 0xb2, 0x35, 0x9b, + 0x83, 0xa9, 0x8a, 0xfc, 0x85, 0x9f, 0xa8, 0xcd, 0x88, 0x24, 0x6e, 0xcd, 0xef, 0x7f, 0x69, 0x61, + 0x24, 0xfb, 0x11, 0x48, 0x8b, 0xdf, 0xe9, 0x09, 0x00, 0xc7, 0x39, 0x30, 0x17, 0xff, 0x26, 0x96, + 0xfe, 0x7b, 0x0a, 0x9c, 0x15, 0xc5, 0x5f, 0x6c, 0xb8, 0xc7, 0x1b, 0x16, 0xee, 0xe9, 0x9f, 0x85, + 0x24, 0x62, 0x8e, 0x63, 0xbf, 0x8a, 0xc2, 0xee, 0x23, 0x43, 0xc5, 0x97, 0xc9, 0xbf, 0x86, 0x07, + 0x09, 0xec, 0x71, 0xf0, 0xd3, 0xae, 0xce, 0x3d, 0x09, 0x09, 0xca, 0x2f, 0xeb, 0x35, 0x11, 0xd0, + 0xeb, 0xd7, 0x43, 0xf4, 0x22, 0x71, 0xa4, 0xdf, 0x95, 0xf4, 0x12, 0x6e, 0x57, 0x43, 0xc5, 0x97, + 0x79, 0xf0, 0x15, 0x92, 0xb8, 0xff, 0x23, 0x11, 0x15, 0xad, 0xe4, 0x22, 0x24, 0xcb, 0x41, 0x99, + 0x70, 0x3d, 0x4b, 0x10, 0xaf, 0xd8, 0x75, 0xf2, 0x7b, 0x2d, 0xe4, 0x07, 0x8a, 0x99, 0x91, 0xd9, + 0xaf, 0x15, 0x5f, 0x82, 0x64, 0xf1, 0xb8, 0xd1, 0xac, 0x77, 0x90, 0xc5, 0x9e, 0xd9, 0xb3, 0x2d, + 0x74, 0x8c, 0x31, 0xbc, 0xb9, 0x6c, 0x11, 0xa6, 0x2b, 0xb6, 0x55, 0x38, 0x71, 0xc5, 0xba, 0xb1, + 0x1c, 0x48, 0x11, 0xf6, 0xcc, 0x87, 0x7c, 0x4b, 0x04, 0x0b, 0x14, 0x12, 0xdf, 0x7a, 0x77, 0x41, + 0xd9, 0xf3, 0xf6, 0xcf, 0xb7, 0xe0, 0x11, 0x96, 0x3e, 0x3d, 0x54, 0xab, 0x51, 0x54, 0xe3, 0xec, + 0x39, 0xb5, 0x40, 0xb7, 0x81, 0xe9, 0xac, 0x50, 0xba, 0x87, 0xd3, 0x0c, 0x37, 0x45, 0x03, 0x35, + 0x53, 0x4f, 0xa5, 0x59, 0x28, 0xdd, 0x72, 0x14, 0x5d, 0x40, 0xb3, 0x27, 0x60, 0xdc, 0x9b, 0x13, + 0xa2, 0x41, 0xcc, 0x94, 0xd5, 0xa5, 0x2c, 0xa4, 0x84, 0x84, 0xd5, 0x13, 0xa0, 0xe4, 0xb5, 0x11, + 0xfc, 0x5f, 0x41, 0x53, 0xf0, 0x7f, 0x45, 0x2d, 0xb6, 0xf4, 0x24, 0x4c, 0x05, 0xf6, 0x2f, 0xf1, + 0x4c, 0x49, 0x03, 0xfc, 0x5f, 0x59, 0x4b, 0xcd, 0xc5, 0x3f, 0xfd, 0x0f, 0xe7, 0x47, 0x96, 0x6e, + 0x83, 0xde, 0xbb, 0xd3, 0xa9, 0x8f, 0x42, 0x2c, 0x8f, 0x29, 0x1f, 0x81, 0x58, 0xa1, 0xa0, 0x29, + 0x73, 0x53, 0x7f, 0xf5, 0xf3, 0xe7, 0x53, 0x05, 0xf2, 0x85, 0xe5, 0x7b, 0xc8, 0x2d, 0x14, 0x18, + 0xf8, 0x39, 0x38, 0x1b, 0xba, 0x53, 0x8a, 0xf1, 0xc5, 0x22, 0xc5, 0x97, 0x4a, 0x3d, 0xf8, 0x52, + 0x89, 0xe0, 0x95, 0x1c, 0x7f, 0xe2, 0x9c, 0xd7, 0x43, 0xf6, 0x25, 0x33, 0x75, 0xe1, 0x09, 0x77, + 0x3e, 0xf7, 0x1c, 0x93, 0x2d, 0x84, 0xca, 0xa2, 0x88, 0x27, 0xd6, 0x85, 0x5c, 0x91, 0xe1, 0x8b, + 0xa1, 0xf8, 0xc3, 0xc0, 0x63, 0x55, 0x79, 0x85, 0x60, 0x24, 0x45, 0x4f, 0xe1, 0x52, 0x28, 0xc9, + 0xb1, 0xf0, 0xb2, 0x7b, 0xc9, 0x53, 0xb8, 0x1c, 0x2a, 0xdb, 0x88, 0x78, 0xe9, 0xab, 0x9c, 0xbb, + 0xcc, 0x16, 0xf9, 0xfc, 0x15, 0xfd, 0x2c, 0xcf, 0x51, 0xa9, 0x02, 0x33, 0x03, 0x71, 0xa9, 0x5c, + 0x91, 0x01, 0x0a, 0x7d, 0x01, 0xfd, 0xad, 0xc4, 0x91, 0xb9, 0x17, 0x18, 0x49, 0xb1, 0x2f, 0x49, + 0x84, 0xa9, 0x38, 0xbc, 0xb0, 0x77, 0xff, 0xbd, 0xf9, 0x91, 0x6f, 0xbe, 0x37, 0x3f, 0xf2, 0x5f, + 0xde, 0x9b, 0x1f, 0xf9, 0xf6, 0x7b, 0xf3, 0xca, 0xf7, 0xde, 0x9b, 0x57, 0x7e, 0xf0, 0xde, 0xbc, + 0xf2, 0xa3, 0xf7, 0xe6, 0x95, 0xb7, 0x1e, 0xcc, 0x2b, 0x5f, 0x79, 0x30, 0xaf, 0x7c, 0xf5, 0xc1, + 0xbc, 0xf2, 0xbb, 0x0f, 0xe6, 0x95, 0x77, 0x1e, 0xcc, 0x2b, 0xf7, 0x1f, 0xcc, 0x2b, 0xdf, 0x7c, + 0x30, 0xaf, 0x7c, 0xfb, 0xc1, 0xbc, 0xf2, 0xbd, 0x07, 0xf3, 0x23, 0x3f, 0x78, 0x30, 0xaf, 0xfc, + 0xe8, 0xc1, 0xfc, 0xc8, 0x5b, 0xdf, 0x99, 0x1f, 0x79, 0xfb, 0x3b, 0xf3, 0x23, 0x5f, 0xf9, 0xce, + 0xbc, 0x02, 0x7f, 0xb8, 0x06, 0x59, 0xf6, 0x4d, 0x32, 0xe1, 0x2b, 0xb1, 0x97, 0xdd, 0x63, 0x44, + 0x9a, 0x82, 0xab, 0xfc, 0x67, 0x9f, 0xbc, 0x81, 0x53, 0x7e, 0xaf, 0x6c, 0xee, 0x61, 0xbf, 0xc5, + 0x96, 0xfd, 0xb7, 0x09, 0x18, 0xe3, 0xbb, 0xc1, 0x61, 0xbf, 0x61, 0x7d, 0x0d, 0x92, 0xc7, 0x8d, + 0xa6, 0xd9, 0x69, 0xb8, 0x27, 0x6c, 0x1b, 0xf4, 0xd1, 0x65, 0x5f, 0x6d, 0xbe, 0x71, 0xfa, 0x42, + 0xb7, 0x65, 0x77, 0x3b, 0x86, 0x27, 0xaa, 0x9f, 0x87, 0xf4, 0x31, 0x6a, 0x1c, 0x1d, 0xbb, 0xd5, + 0x86, 0x55, 0xad, 0xb5, 0x48, 0xb7, 0x3c, 0x61, 0x00, 0x1d, 0xdb, 0xb0, 0x8a, 0x2d, 0x7c, 0xb2, + 0xba, 0xe9, 0x9a, 0xe4, 0x2e, 0x3d, 0x6d, 0x90, 0xcf, 0xfa, 0x05, 0x48, 0x77, 0x90, 0xd3, 0x6d, + 0xba, 0xd5, 0x9a, 0xdd, 0xb5, 0x5c, 0xd2, 0xcf, 0xaa, 0x46, 0x8a, 0x8e, 0x15, 0xf1, 0x90, 0xfe, + 0x04, 0x4c, 0xb8, 0x9d, 0x2e, 0xaa, 0x3a, 0x35, 0xdb, 0x75, 0x5a, 0xa6, 0x45, 0xfa, 0xd9, 0xa4, + 0x91, 0xc6, 0x83, 0xbb, 0x6c, 0x8c, 0xfc, 0xfc, 0x79, 0xcd, 0xee, 0x20, 0x72, 0x3b, 0x1d, 0x33, + 0xe8, 0x81, 0xae, 0x81, 0xfa, 0x2a, 0x3a, 0x21, 0x37, 0x6c, 0x71, 0x03, 0x7f, 0xd4, 0x9f, 0x86, + 0x51, 0xfa, 0xf7, 0x4b, 0x48, 0x77, 0x4d, 0x1e, 0x5e, 0x7b, 0x97, 0x46, 0x37, 0x69, 0x0d, 0x26, + 0xa0, 0xdf, 0x82, 0x31, 0x17, 0x75, 0x3a, 0x66, 0xc3, 0x22, 0x37, 0x4f, 0xa9, 0xd5, 0x85, 0x10, + 0x33, 0xec, 0x51, 0x09, 0xf2, 0x33, 0xb0, 0x06, 0x97, 0xd7, 0xaf, 0x41, 0x9a, 0xc8, 0xad, 0x56, + 0xe9, 0xdf, 0x78, 0x49, 0xf5, 0x8d, 0xe7, 0x14, 0x95, 0xe3, 0xcf, 0x0a, 0x38, 0x8c, 0xfe, 0x04, + 0xde, 0x04, 0x39, 0xed, 0x13, 0x21, 0xa7, 0x25, 0xa5, 0x77, 0x95, 0xb4, 0x8d, 0xf4, 0xd4, 0x8c, + 0x87, 0xfe, 0x48, 0xde, 0x16, 0xa4, 0x45, 0xbd, 0xb8, 0x19, 0x68, 0xfb, 0x43, 0xcc, 0xf0, 0x94, + 0xff, 0xfb, 0xf9, 0x7d, 0xac, 0x40, 0xe7, 0x73, 0xb1, 0x9b, 0xca, 0xdc, 0x0e, 0x68, 0xc1, 0xf3, + 0x85, 0x50, 0x5e, 0x92, 0x29, 0x35, 0xf1, 0x62, 0xc9, 0x4e, 0xb9, 0xcf, 0x98, 0x7d, 0x1e, 0x46, + 0x69, 0xfc, 0xe8, 0x29, 0x18, 0xf3, 0x7f, 0x5d, 0x31, 0x09, 0xf1, 0x9d, 0xfd, 0xca, 0x2e, 0xfd, + 0x99, 0xd4, 0xdd, 0xcd, 0xfc, 0xce, 0xee, 0xde, 0x46, 0xf1, 0x63, 0x5a, 0x4c, 0x9f, 0x82, 0x54, + 0x61, 0x63, 0x73, 0xb3, 0x5a, 0xc8, 0x6f, 0x6c, 0x96, 0xef, 0x69, 0x6a, 0x76, 0x1e, 0x46, 0xa9, + 0x9e, 0xe4, 0xe7, 0xde, 0xba, 0x96, 0x75, 0xc2, 0xdb, 0x07, 0x72, 0x90, 0xfd, 0x9a, 0x0e, 0x63, + 0xf9, 0x66, 0x73, 0xcb, 0x6c, 0x3b, 0xfa, 0x8b, 0x30, 0x4d, 0x7f, 0x75, 0x62, 0xcf, 0x2e, 0x91, + 0x5f, 0x25, 0xc4, 0xc5, 0x41, 0x61, 0x7f, 0x37, 0xc0, 0xbf, 0x6e, 0x26, 0xbe, 0xdc, 0x23, 0x4b, + 0x0d, 0xdc, 0xcb, 0xa1, 0xef, 0x81, 0xc6, 0x07, 0xd7, 0x9b, 0xb6, 0xe9, 0x62, 0xde, 0x18, 0xfb, + 0xd1, 0xc0, 0xfe, 0xbc, 0x5c, 0x94, 0xd2, 0xf6, 0x30, 0xe8, 0x1f, 0x85, 0xe4, 0x86, 0xe5, 0x5e, + 0x5d, 0xc5, 0x6c, 0xfc, 0x6f, 0xf2, 0xf4, 0xb2, 0x71, 0x11, 0xca, 0xe2, 0x21, 0x18, 0xfa, 0xfa, + 0x1a, 0x46, 0xc7, 0x07, 0xa1, 0x89, 0x88, 0x8f, 0x26, 0x87, 0xfa, 0xf3, 0x30, 0x8e, 0xef, 0x4e, + 0xe8, 0xc9, 0x13, 0xbc, 0x75, 0xed, 0x81, 0x7b, 0x32, 0x14, 0xef, 0x63, 0x38, 0x01, 0x3d, 0xff, + 0xe8, 0x40, 0x02, 0x41, 0x01, 0x1f, 0x83, 0x09, 0x76, 0x3d, 0x0d, 0xc6, 0xfa, 0x12, 0xec, 0x06, + 0x34, 0xd8, 0x15, 0x35, 0xd8, 0xf5, 0x34, 0x48, 0x0e, 0x24, 0x10, 0x35, 0xf0, 0x8e, 0xf5, 0x02, + 0xc0, 0x7a, 0xe3, 0x0d, 0x54, 0xa7, 0x2a, 0xd0, 0xbf, 0xd8, 0x93, 0x0d, 0x61, 0xf0, 0x85, 0x28, + 0x85, 0x80, 0xd2, 0xcb, 0x90, 0xda, 0x3d, 0xf4, 0x49, 0xa0, 0x27, 0x8f, 0x3d, 0x35, 0x0e, 0x03, + 0x2c, 0x22, 0xce, 0x53, 0x85, 0x5e, 0x4c, 0x6a, 0xb0, 0x2a, 0xc2, 0xd5, 0x08, 0x28, 0x5f, 0x15, + 0x4a, 0x92, 0x8e, 0x50, 0x45, 0x60, 0x11, 0x71, 0xb8, 0x18, 0x16, 0x6c, 0x1b, 0x4b, 0xb2, 0xaa, + 0xb4, 0x10, 0x42, 0xc1, 0x24, 0x58, 0x31, 0x64, 0x47, 0xc4, 0x23, 0x24, 0xc8, 0x31, 0x78, 0xb2, + 0xbf, 0x47, 0xb8, 0x0c, 0xf7, 0x08, 0x3f, 0x16, 0xf3, 0x8c, 0xbc, 0xd1, 0x8a, 0x79, 0xa6, 0x22, + 0xf3, 0x8c, 0x8b, 0x06, 0xf2, 0x8c, 0x0f, 0xeb, 0x1f, 0x87, 0x29, 0x3e, 0x86, 0xcb, 0x13, 0x26, + 0xd5, 0xd8, 0xdf, 0x34, 0xeb, 0x4f, 0xca, 0x24, 0x29, 0x67, 0x10, 0xaf, 0x57, 0x60, 0x92, 0x0f, + 0x6d, 0x39, 0xe4, 0x72, 0xa7, 0xd9, 0x9f, 0xab, 0xe8, 0xcf, 0x48, 0x05, 0x29, 0x61, 0x00, 0x3d, + 0x57, 0x82, 0xd9, 0xf0, 0x6a, 0x24, 0x96, 0xdf, 0x71, 0x5a, 0x7e, 0xcf, 0x88, 0xe5, 0x57, 0x11, + 0xcb, 0x77, 0x11, 0xce, 0x86, 0xd6, 0x9e, 0x28, 0x92, 0x98, 0x48, 0x72, 0x1b, 0x26, 0xa4, 0x92, + 0x23, 0x82, 0x13, 0x21, 0xe0, 0x44, 0x2f, 0xd8, 0x0f, 0xad, 0x90, 0xd5, 0x43, 0x02, 0xab, 0x22, + 0xf8, 0xa3, 0x30, 0x29, 0xd7, 0x1b, 0x11, 0x3d, 0x11, 0x82, 0x9e, 0x08, 0x41, 0x87, 0x9f, 0x3b, + 0x1e, 0x82, 0x8e, 0x07, 0xd0, 0xbb, 0x7d, 0xcf, 0x3d, 0x1d, 0x82, 0x9e, 0x0e, 0x41, 0x87, 0x9f, + 0x5b, 0x0f, 0x41, 0xeb, 0x22, 0xfa, 0x59, 0x98, 0x0a, 0x94, 0x18, 0x11, 0x3e, 0x16, 0x02, 0x1f, + 0x13, 0xe1, 0xcf, 0x81, 0x16, 0x2c, 0x2e, 0x22, 0x7e, 0x2a, 0x04, 0x3f, 0x15, 0x76, 0xfa, 0x70, + 0xed, 0x47, 0x43, 0xe0, 0xa3, 0xa1, 0xa7, 0x0f, 0xc7, 0x6b, 0x21, 0x78, 0x4d, 0xc4, 0xe7, 0x20, + 0x2d, 0x56, 0x13, 0x11, 0x9b, 0x0c, 0xc1, 0x26, 0x83, 0x76, 0x97, 0x8a, 0x49, 0x54, 0xa4, 0x8f, + 0xf7, 0x49, 0x17, 0xa9, 0x84, 0x44, 0x91, 0xa4, 0x45, 0x92, 0x4f, 0xc0, 0x99, 0xb0, 0x92, 0x11, + 0xc2, 0xb1, 0x28, 0x72, 0x4c, 0xe2, 0x1e, 0xd1, 0x6f, 0xf6, 0xcc, 0x76, 0xa0, 0x71, 0x9a, 0x7b, + 0x19, 0x66, 0x42, 0x0a, 0x47, 0x08, 0xed, 0xb2, 0xdc, 0x8d, 0x65, 0x04, 0x5a, 0x52, 0x04, 0x1a, + 0xd6, 0xd1, 0x8e, 0xdd, 0xb0, 0x5c, 0xb1, 0x2b, 0xfb, 0xfa, 0x0c, 0x4c, 0xb2, 0xf2, 0xb4, 0xdd, + 0xa9, 0xa3, 0x0e, 0xaa, 0xeb, 0x7f, 0xae, 0x7f, 0xef, 0xb4, 0xd2, 0x5b, 0xd4, 0x18, 0xea, 0x14, + 0x2d, 0xd4, 0xcb, 0x7d, 0x5b, 0xa8, 0xcb, 0xd1, 0xf4, 0x51, 0x9d, 0x54, 0xb1, 0xa7, 0x93, 0x7a, + 0xaa, 0x3f, 0x69, 0xbf, 0x86, 0xaa, 0xd8, 0xd3, 0x50, 0x0d, 0x26, 0x09, 0xed, 0xab, 0xd6, 0x7b, + 0xfb, 0xaa, 0xc5, 0xfe, 0x2c, 0xfd, 0xdb, 0xab, 0xf5, 0xde, 0xf6, 0x2a, 0x82, 0x27, 0xbc, 0xcb, + 0x5a, 0xef, 0xed, 0xb2, 0x06, 0xf0, 0xf4, 0x6f, 0xb6, 0xd6, 0x7b, 0x9b, 0xad, 0x08, 0x9e, 0xf0, + 0x9e, 0x6b, 0x23, 0xa4, 0xe7, 0x7a, 0xba, 0x3f, 0xd1, 0xa0, 0xd6, 0x6b, 0x33, 0xac, 0xf5, 0x5a, + 0x1a, 0xa0, 0xd4, 0xc0, 0x0e, 0x6c, 0x23, 0xa4, 0x03, 0x8b, 0x52, 0xac, 0x4f, 0x23, 0xb6, 0x19, + 0xd6, 0x88, 0x45, 0x2a, 0xd6, 0xaf, 0x1f, 0xfb, 0xf9, 0x60, 0x3f, 0x76, 0xa9, 0x3f, 0x53, 0x78, + 0x5b, 0xb6, 0xde, 0xdb, 0x96, 0x2d, 0x46, 0xe5, 0x5c, 0x58, 0x77, 0xf6, 0x72, 0xdf, 0xee, 0x6c, + 0x88, 0x14, 0x8e, 0x6a, 0xd2, 0x5e, 0xea, 0xd7, 0xa4, 0x2d, 0x47, 0x73, 0x0f, 0xee, 0xd5, 0xf6, + 0xfb, 0xf4, 0x6a, 0xcf, 0x44, 0x13, 0xff, 0xac, 0x65, 0xfb, 0x59, 0xcb, 0xf6, 0xb3, 0x96, 0xed, + 0x67, 0x2d, 0xdb, 0x4f, 0xbf, 0x65, 0xcb, 0xc5, 0x3f, 0xf3, 0xa5, 0x05, 0x25, 0xfb, 0x9f, 0x55, + 0xef, 0x2f, 0x6c, 0xbd, 0xd8, 0x70, 0x8f, 0x71, 0x79, 0xdb, 0x82, 0x34, 0xf9, 0xdb, 0x18, 0x2d, + 0xb3, 0xdd, 0x6e, 0x58, 0x47, 0xac, 0x67, 0x5b, 0xea, 0xdd, 0x4a, 0x64, 0x00, 0xf2, 0xd7, 0x45, + 0xb6, 0xa8, 0x30, 0x5b, 0x6e, 0x2c, 0x7f, 0x44, 0xbf, 0x0b, 0xa9, 0x96, 0x73, 0xe4, 0xb1, 0xc5, + 0x7a, 0x16, 0xc2, 0x00, 0x1b, 0xbd, 0x52, 0x9f, 0x0c, 0x5a, 0xde, 0x00, 0x56, 0xed, 0xe0, 0xc4, + 0xf5, 0x55, 0x53, 0xa3, 0x54, 0xc3, 0x3e, 0x95, 0x55, 0x3b, 0xf0, 0x47, 0x70, 0xd8, 0x06, 0x75, + 0x8f, 0xaa, 0x74, 0x52, 0xf0, 0xbc, 0x08, 0x53, 0x01, 0x6d, 0x43, 0x72, 0xfe, 0x21, 0x7c, 0x83, + 0x15, 0x0b, 0x6a, 0x1e, 0x95, 0x13, 0x62, 0x40, 0x66, 0x1f, 0x87, 0x09, 0x89, 0x5b, 0x4f, 0x83, + 0x72, 0xc8, 0xbe, 0x4e, 0xa9, 0x1c, 0x66, 0xbf, 0xa8, 0x40, 0x8a, 0xbd, 0x4a, 0xb0, 0x63, 0x36, + 0x3a, 0xfa, 0x0b, 0x10, 0x6f, 0xf2, 0xaf, 0x34, 0x3d, 0xec, 0xd7, 0x67, 0x09, 0x83, 0xbe, 0x0e, + 0x89, 0x8e, 0xf7, 0x95, 0xa7, 0x87, 0xfa, 0x4e, 0x2c, 0x81, 0x67, 0xef, 0x2b, 0x30, 0xcd, 0xde, + 0x74, 0x75, 0xd8, 0x0b, 0xd0, 0x66, 0x7b, 0xee, 0x6b, 0x0a, 0x8c, 0x7b, 0x47, 0xfa, 0x01, 0x4c, + 0x7a, 0x07, 0xf4, 0x25, 0x7b, 0x1a, 0xa9, 0x39, 0xc1, 0xc2, 0x3d, 0x1c, 0xcb, 0x21, 0x9f, 0xe8, + 0xc3, 0x28, 0xba, 0x26, 0xcb, 0x83, 0x73, 0x79, 0x98, 0x09, 0x11, 0x3b, 0xcd, 0x82, 0x9c, 0xbd, + 0x00, 0xe3, 0x15, 0xdb, 0xa5, 0xbf, 0x9c, 0xa3, 0x9f, 0x11, 0x9e, 0x2a, 0x14, 0x62, 0xda, 0x08, + 0x01, 0x2f, 0x5d, 0x80, 0x31, 0x96, 0xfd, 0xfa, 0x28, 0xc4, 0xb6, 0xf2, 0xda, 0x08, 0xf9, 0xbf, + 0xa0, 0x29, 0xe4, 0xff, 0xa2, 0x16, 0x2b, 0x6c, 0x3e, 0xc4, 0x93, 0xa6, 0x91, 0x7e, 0x4f, 0x9a, + 0x0e, 0x46, 0xa9, 0x79, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x43, 0x19, 0x7d, 0x69, 0x5e, + 0x81, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -2094,7 +2100,7 @@ func (this *NotPacked) Equal(that interface{}) bool { } type MessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetName() string GetHilarity() Message_Humour GetHeightInCm() uint32 @@ -2109,11 +2115,11 @@ type MessageFace interface { GetProto2Value() map[int64]*test.NinOptEnum } -func (this *Message) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Message) Proto() proto.Message { return this } -func (this *Message) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Message) TestProto() proto.Message { return NewMessageFromFace(this) } @@ -2183,15 +2189,15 @@ func NewMessageFromFace(that MessageFace) *Message { } type NestedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetBunny() string } -func (this *Nested) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Nested) Proto() proto.Message { return this } -func (this *Nested) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Nested) TestProto() proto.Message { return NewNestedFromFace(this) } @@ -2206,7 +2212,7 @@ func NewNestedFromFace(that NestedFace) *Nested { } type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -2226,11 +2232,11 @@ type AllMapsFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) Proto() proto.Message { return this } -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMaps) TestProto() proto.Message { return NewAllMapsFromFace(this) } @@ -2325,7 +2331,7 @@ func NewAllMapsFromFace(that AllMapsFace) *AllMaps { } type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetStringToDoubleMap() map[string]float64 GetStringToFloatMap() map[string]float32 GetInt32Map() map[int32]int32 @@ -2345,11 +2351,11 @@ type AllMapsOrderedFace interface { GetStringToMsgMap() map[string]*FloatingPoint } -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) Proto() proto.Message { return this } -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AllMapsOrdered) TestProto() proto.Message { return NewAllMapsOrderedFromFace(this) } @@ -2444,17 +2450,17 @@ func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { } type MessageWithMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNameMapping() map[int32]string GetMsgMapping() map[int64]*FloatingPoint GetByteMapping() map[bool][]byte } -func (this *MessageWithMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *MessageWithMap) Proto() proto.Message { return this } -func (this *MessageWithMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *MessageWithMap) TestProto() proto.Message { return NewMessageWithMapFromFace(this) } @@ -2479,15 +2485,15 @@ func NewMessageWithMapFromFace(that MessageWithMapFace) *MessageWithMap { } type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetF() float64 } -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) Proto() proto.Message { return this } -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *FloatingPoint) TestProto() proto.Message { return NewFloatingPointFromFace(this) } @@ -2502,16 +2508,16 @@ func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { } type Uint128PairFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() github_com_gogo_protobuf_test_custom.Uint128 GetRight() *github_com_gogo_protobuf_test_custom.Uint128 } -func (this *Uint128Pair) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Uint128Pair) Proto() proto.Message { return this } -func (this *Uint128Pair) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Uint128Pair) TestProto() proto.Message { return NewUint128PairFromFace(this) } @@ -2531,14 +2537,14 @@ func NewUint128PairFromFace(that Uint128PairFace) *Uint128Pair { } type ContainsNestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message } -func (this *ContainsNestedMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap) Proto() proto.Message { return this } -func (this *ContainsNestedMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap) TestProto() proto.Message { return NewContainsNestedMapFromFace(this) } @@ -2548,15 +2554,15 @@ func NewContainsNestedMapFromFace(that ContainsNestedMapFace) *ContainsNestedMap } type ContainsNestedMap_NestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedMapField() map[string]float64 } -func (this *ContainsNestedMap_NestedMap) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap_NestedMap) Proto() proto.Message { return this } -func (this *ContainsNestedMap_NestedMap) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ContainsNestedMap_NestedMap) TestProto() proto.Message { return NewContainsNestedMap_NestedMapFromFace(this) } @@ -2571,15 +2577,15 @@ func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace } type NotPackedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetKey() []uint64 } -func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NotPacked) Proto() proto.Message { return this } -func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NotPacked) TestProto() proto.Message { return NewNotPackedFromFace(this) } @@ -2614,7 +2620,7 @@ func (this *Message) GoString() string { for k := range this.Terrain { keysForTerrain = append(keysForTerrain, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) + sortkeys.Int64s(keysForTerrain) mapStringForTerrain := "map[int64]*Nested{" for _, k := range keysForTerrain { mapStringForTerrain += fmt.Sprintf("%#v: %#v,", k, this.Terrain[k]) @@ -2630,7 +2636,7 @@ func (this *Message) GoString() string { for k := range this.Proto2Value { keysForProto2Value = append(keysForProto2Value, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) + sortkeys.Int64s(keysForProto2Value) mapStringForProto2Value := "map[int64]*test.NinOptEnum{" for _, k := range keysForProto2Value { mapStringForProto2Value += fmt.Sprintf("%#v: %#v,", k, this.Proto2Value[k]) @@ -2662,7 +2668,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -2675,7 +2681,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2688,7 +2694,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2701,7 +2707,7 @@ func (this *AllMaps) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2714,7 +2720,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2727,7 +2733,7 @@ func (this *AllMaps) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2740,7 +2746,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2753,7 +2759,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2766,7 +2772,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -2779,7 +2785,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -2792,7 +2798,7 @@ func (this *AllMaps) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -2805,7 +2811,7 @@ func (this *AllMaps) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -2818,7 +2824,7 @@ func (this *AllMaps) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -2831,7 +2837,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -2844,7 +2850,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -2857,7 +2863,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -2870,7 +2876,7 @@ func (this *AllMaps) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -2892,7 +2898,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) @@ -2905,7 +2911,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) @@ -2918,7 +2924,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) @@ -2931,7 +2937,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) @@ -2944,7 +2950,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) @@ -2957,7 +2963,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) @@ -2970,7 +2976,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) @@ -2983,7 +2989,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) @@ -2996,7 +3002,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) @@ -3009,7 +3015,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) @@ -3022,7 +3028,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) @@ -3035,7 +3041,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) @@ -3048,7 +3054,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) @@ -3061,7 +3067,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) @@ -3074,7 +3080,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) @@ -3087,7 +3093,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) @@ -3100,7 +3106,7 @@ func (this *AllMapsOrdered) GoString() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) @@ -3122,7 +3128,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.NameMapping { keysForNameMapping = append(keysForNameMapping, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) + sortkeys.Int32s(keysForNameMapping) mapStringForNameMapping := "map[int32]string{" for _, k := range keysForNameMapping { mapStringForNameMapping += fmt.Sprintf("%#v: %#v,", k, this.NameMapping[k]) @@ -3135,7 +3141,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.MsgMapping { keysForMsgMapping = append(keysForMsgMapping, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) + sortkeys.Int64s(keysForMsgMapping) mapStringForMsgMapping := "map[int64]*FloatingPoint{" for _, k := range keysForMsgMapping { mapStringForMsgMapping += fmt.Sprintf("%#v: %#v,", k, this.MsgMapping[k]) @@ -3148,7 +3154,7 @@ func (this *MessageWithMap) GoString() string { for k := range this.ByteMapping { keysForByteMapping = append(keysForByteMapping, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) + sortkeys.Bools(keysForByteMapping) mapStringForByteMapping := "map[bool][]byte{" for _, k := range keysForByteMapping { mapStringForByteMapping += fmt.Sprintf("%#v: %#v,", k, this.ByteMapping[k]) @@ -3200,7 +3206,7 @@ func (this *ContainsNestedMap_NestedMap) GoString() string { for k := range this.NestedMapField { keysForNestedMapField = append(keysForNestedMapField, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) + sortkeys.Strings(keysForNestedMapField) mapStringForNestedMapField := "map[string]float64{" for _, k := range keysForNestedMapField { mapStringForNestedMapField += fmt.Sprintf("%#v: %#v,", k, this.NestedMapField[k]) @@ -4280,7 +4286,7 @@ func (this *Message) String() string { for k := range this.Terrain { keysForTerrain = append(keysForTerrain, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) + sortkeys.Int64s(keysForTerrain) mapStringForTerrain := "map[int64]*Nested{" for _, k := range keysForTerrain { mapStringForTerrain += fmt.Sprintf("%v: %v,", k, this.Terrain[k]) @@ -4290,7 +4296,7 @@ func (this *Message) String() string { for k := range this.Proto2Value { keysForProto2Value = append(keysForProto2Value, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) + sortkeys.Int64s(keysForProto2Value) mapStringForProto2Value := "map[int64]*test.NinOptEnum{" for _, k := range keysForProto2Value { mapStringForProto2Value += fmt.Sprintf("%v: %v,", k, this.Proto2Value[k]) @@ -4331,7 +4337,7 @@ func (this *AllMaps) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -4341,7 +4347,7 @@ func (this *AllMaps) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -4351,7 +4357,7 @@ func (this *AllMaps) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -4361,7 +4367,7 @@ func (this *AllMaps) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -4371,7 +4377,7 @@ func (this *AllMaps) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -4381,7 +4387,7 @@ func (this *AllMaps) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -4391,7 +4397,7 @@ func (this *AllMaps) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -4401,7 +4407,7 @@ func (this *AllMaps) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -4411,7 +4417,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -4421,7 +4427,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -4431,7 +4437,7 @@ func (this *AllMaps) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -4441,7 +4447,7 @@ func (this *AllMaps) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -4451,7 +4457,7 @@ func (this *AllMaps) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -4461,7 +4467,7 @@ func (this *AllMaps) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -4471,7 +4477,7 @@ func (this *AllMaps) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -4481,7 +4487,7 @@ func (this *AllMaps) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -4491,7 +4497,7 @@ func (this *AllMaps) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -4527,7 +4533,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToDoubleMap { keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) + sortkeys.Strings(keysForStringToDoubleMap) mapStringForStringToDoubleMap := "map[string]float64{" for _, k := range keysForStringToDoubleMap { mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) @@ -4537,7 +4543,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToFloatMap { keysForStringToFloatMap = append(keysForStringToFloatMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) + sortkeys.Strings(keysForStringToFloatMap) mapStringForStringToFloatMap := "map[string]float32{" for _, k := range keysForStringToFloatMap { mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) @@ -4547,7 +4553,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int32Map { keysForInt32Map = append(keysForInt32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) + sortkeys.Int32s(keysForInt32Map) mapStringForInt32Map := "map[int32]int32{" for _, k := range keysForInt32Map { mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) @@ -4557,7 +4563,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Int64Map { keysForInt64Map = append(keysForInt64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) + sortkeys.Int64s(keysForInt64Map) mapStringForInt64Map := "map[int64]int64{" for _, k := range keysForInt64Map { mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) @@ -4567,7 +4573,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint32Map { keysForUint32Map = append(keysForUint32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) + sortkeys.Uint32s(keysForUint32Map) mapStringForUint32Map := "map[uint32]uint32{" for _, k := range keysForUint32Map { mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) @@ -4577,7 +4583,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Uint64Map { keysForUint64Map = append(keysForUint64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) + sortkeys.Uint64s(keysForUint64Map) mapStringForUint64Map := "map[uint64]uint64{" for _, k := range keysForUint64Map { mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) @@ -4587,7 +4593,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint32Map { keysForSint32Map = append(keysForSint32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) + sortkeys.Int32s(keysForSint32Map) mapStringForSint32Map := "map[int32]int32{" for _, k := range keysForSint32Map { mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) @@ -4597,7 +4603,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sint64Map { keysForSint64Map = append(keysForSint64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) + sortkeys.Int64s(keysForSint64Map) mapStringForSint64Map := "map[int64]int64{" for _, k := range keysForSint64Map { mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) @@ -4607,7 +4613,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed32Map { keysForFixed32Map = append(keysForFixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) + sortkeys.Uint32s(keysForFixed32Map) mapStringForFixed32Map := "map[uint32]uint32{" for _, k := range keysForFixed32Map { mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) @@ -4617,7 +4623,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed32Map { keysForSfixed32Map = append(keysForSfixed32Map, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) + sortkeys.Int32s(keysForSfixed32Map) mapStringForSfixed32Map := "map[int32]int32{" for _, k := range keysForSfixed32Map { mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) @@ -4627,7 +4633,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Fixed64Map { keysForFixed64Map = append(keysForFixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) + sortkeys.Uint64s(keysForFixed64Map) mapStringForFixed64Map := "map[uint64]uint64{" for _, k := range keysForFixed64Map { mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) @@ -4637,7 +4643,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.Sfixed64Map { keysForSfixed64Map = append(keysForSfixed64Map, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) + sortkeys.Int64s(keysForSfixed64Map) mapStringForSfixed64Map := "map[int64]int64{" for _, k := range keysForSfixed64Map { mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) @@ -4647,7 +4653,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.BoolMap { keysForBoolMap = append(keysForBoolMap, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) + sortkeys.Bools(keysForBoolMap) mapStringForBoolMap := "map[bool]bool{" for _, k := range keysForBoolMap { mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) @@ -4657,7 +4663,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringMap { keysForStringMap = append(keysForStringMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) + sortkeys.Strings(keysForStringMap) mapStringForStringMap := "map[string]string{" for _, k := range keysForStringMap { mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) @@ -4667,7 +4673,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToBytesMap { keysForStringToBytesMap = append(keysForStringToBytesMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) + sortkeys.Strings(keysForStringToBytesMap) mapStringForStringToBytesMap := "map[string][]byte{" for _, k := range keysForStringToBytesMap { mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) @@ -4677,7 +4683,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToEnumMap { keysForStringToEnumMap = append(keysForStringToEnumMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) + sortkeys.Strings(keysForStringToEnumMap) mapStringForStringToEnumMap := "map[string]MapEnum{" for _, k := range keysForStringToEnumMap { mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) @@ -4687,7 +4693,7 @@ func (this *AllMapsOrdered) String() string { for k := range this.StringToMsgMap { keysForStringToMsgMap = append(keysForStringToMsgMap, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) + sortkeys.Strings(keysForStringToMsgMap) mapStringForStringToMsgMap := "map[string]*FloatingPoint{" for _, k := range keysForStringToMsgMap { mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) @@ -4723,7 +4729,7 @@ func (this *MessageWithMap) String() string { for k := range this.NameMapping { keysForNameMapping = append(keysForNameMapping, k) } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) + sortkeys.Int32s(keysForNameMapping) mapStringForNameMapping := "map[int32]string{" for _, k := range keysForNameMapping { mapStringForNameMapping += fmt.Sprintf("%v: %v,", k, this.NameMapping[k]) @@ -4733,7 +4739,7 @@ func (this *MessageWithMap) String() string { for k := range this.MsgMapping { keysForMsgMapping = append(keysForMsgMapping, k) } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) + sortkeys.Int64s(keysForMsgMapping) mapStringForMsgMapping := "map[int64]*FloatingPoint{" for _, k := range keysForMsgMapping { mapStringForMsgMapping += fmt.Sprintf("%v: %v,", k, this.MsgMapping[k]) @@ -4743,7 +4749,7 @@ func (this *MessageWithMap) String() string { for k := range this.ByteMapping { keysForByteMapping = append(keysForByteMapping, k) } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) + sortkeys.Bools(keysForByteMapping) mapStringForByteMapping := "map[bool][]byte{" for _, k := range keysForByteMapping { mapStringForByteMapping += fmt.Sprintf("%v: %v,", k, this.ByteMapping[k]) @@ -4795,7 +4801,7 @@ func (this *ContainsNestedMap_NestedMap) String() string { for k := range this.NestedMapField { keysForNestedMapField = append(keysForNestedMapField, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) + sortkeys.Strings(keysForNestedMapField) mapStringForNestedMapField := "map[string]float64{" for _, k := range keysForNestedMapField { mapStringForNestedMapField += fmt.Sprintf("%v: %v,", k, this.NestedMapField[k]) @@ -4999,11 +5005,8 @@ func (m *Message) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Score = float32(math.Float32frombits(v)) case 5: if wireType == 0 { @@ -5126,41 +5129,14 @@ func (m *Message) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Terrain == nil { m.Terrain = make(map[int64]*Nested) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue *Nested + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -5170,46 +5146,74 @@ func (m *Message) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &Nested{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Nested{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Terrain[mapkey] = mapvalue - } else { - var mapvalue *Nested - m.Terrain[mapkey] = mapvalue } + m.Terrain[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -5270,41 +5274,14 @@ func (m *Message) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Proto2Value == nil { m.Proto2Value = make(map[int64]*test.NinOptEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue *test.NinOptEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -5314,46 +5291,74 @@ func (m *Message) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &test.NinOptEnum{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &test.NinOptEnum{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Proto2Value[mapkey] = mapvalue - } else { - var mapvalue *test.NinOptEnum - m.Proto2Value[mapkey] = mapvalue } + m.Proto2Value[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -5510,22 +5515,85 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.StringToDoubleMap == nil { + m.StringToDoubleMap = make(map[string]float64) + } + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - var stringLenmapkey uint64 + m.StringToDoubleMap[mapkey] = mapvalue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -5535,26 +5603,26 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthTheproto3 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) + if m.StringToFloatMap == nil { + m.StringToFloatMap = make(map[string]float32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -5564,34 +5632,66 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + mapvalue = math.Float32frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue } + m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5615,51 +5715,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if m.Int32Map == nil { + m.Int32Map = make(map[int32]int32) } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -5669,122 +5732,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + if skippy < 0 { + return ErrInvalidLengthTheproto3 } - if iNdEx >= l { + if (iNdEx + skippy) > postIndex { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue } + m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -5812,41 +5811,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -5856,31 +5828,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue } + m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -5908,41 +5907,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint32Map == nil { m.Uint32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -5952,31 +5924,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue } + m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -6004,41 +6003,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint64Map == nil { m.Uint64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6048,31 +6020,58 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue } + m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -6100,43 +6099,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) if m.Sint32Map == nil { m.Sint32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6146,33 +6116,64 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey = int32(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue = int32(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue } + m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -6200,43 +6201,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) if m.Sint64Map == nil { m.Sint64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6246,33 +6218,64 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue = int64(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue } + m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -6300,35 +6303,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 if m.Fixed32Map == nil { m.Fixed32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6338,25 +6320,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } + m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -6384,35 +6381,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 if m.Sfixed32Map == nil { m.Sfixed32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6422,25 +6398,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue } + m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -6468,39 +6459,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6510,29 +6476,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue } + m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -6560,39 +6537,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 if m.Sfixed64Map == nil { m.Sfixed64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6602,29 +6554,40 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue } + m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -6652,42 +6615,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) if m.BoolMap == nil { m.BoolMap = make(map[bool]bool) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey bool + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6697,32 +6632,62 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue } + m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -6750,51 +6715,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringMap == nil { m.StringMap = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6804,84 +6732,86 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - var stringLenmapkey uint64 + m.StringMap[mapkey] = mapvalue + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6891,26 +6821,26 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthTheproto3 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -6920,42 +6850,81 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue } + m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -6983,51 +6952,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue MapEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7037,31 +6969,69 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue } + m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -7089,51 +7059,14 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToMsgMap == nil { m.StringToMsgMap = make(map[string]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7143,46 +7076,85 @@ func (m *AllMaps) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue } + m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -7235,47 +7207,10 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) } - var stringLenmapkey uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7285,26 +7220,26 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthTheproto3 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToDoubleMap == nil { m.StringToDoubleMap = make(map[string]float64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7314,30 +7249,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue } + m.StringToDoubleMap[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -7365,51 +7332,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToFloatMap == nil { m.StringToFloatMap = make(map[string]float32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7419,26 +7349,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint32 + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + mapvalue = math.Float32frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue } + m.StringToFloatMap[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -7466,41 +7432,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int32Map == nil { m.Int32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7510,31 +7449,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue } + m.Int32Map[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -7562,41 +7528,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Int64Map == nil { m.Int64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7606,31 +7545,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue } + m.Int64Map[mapkey] = mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -7658,56 +7624,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint32Map == nil { m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 + } + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7717,16 +7641,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } + m.Uint32Map[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -7754,41 +7720,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Uint64Map == nil { m.Uint64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7798,31 +7737,58 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue } + m.Uint64Map[mapkey] = mapvalue iNdEx = postIndex case 7: if wireType != 2 { @@ -7850,43 +7816,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) if m.Sint32Map == nil { m.Sint32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7896,33 +7833,64 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) + mapkey = int32(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break + mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) + mapvalue = int32(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue } + m.Sint32Map[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -7950,43 +7918,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) if m.Sint64Map == nil { m.Sint64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -7996,33 +7935,64 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapvaluetemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) + mapvalue = int64(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue } + m.Sint64Map[mapkey] = mapvalue iNdEx = postIndex case 9: if wireType != 2 { @@ -8050,35 +8020,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 if m.Fixed32Map == nil { m.Fixed32Map = make(map[uint32]uint32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint32 + var mapvalue uint32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8088,25 +8037,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue } + m.Fixed32Map[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { @@ -8134,35 +8098,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 if m.Sfixed32Map == nil { m.Sfixed32Map = make(map[int32]int32) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue int32 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8172,25 +8115,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapkey = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else if fieldNum == 2 { + if (iNdEx + 4) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue } + m.Sfixed32Map[mapkey] = mapvalue iNdEx = postIndex case 11: if wireType != 2 { @@ -8218,39 +8176,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 if m.Fixed64Map == nil { m.Fixed64Map = make(map[uint64]uint64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey uint64 + var mapvalue uint64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8260,29 +8193,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue } + m.Fixed64Map[mapkey] = mapvalue iNdEx = postIndex case 12: if wireType != 2 { @@ -8310,39 +8254,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 if m.Sfixed64Map == nil { m.Sfixed64Map = make(map[int64]int64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8352,29 +8271,40 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapkey = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else if fieldNum == 2 { + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvalue = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue } + m.Sfixed64Map[mapkey] = mapvalue iNdEx = postIndex case 13: if wireType != 2 { @@ -8402,42 +8332,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) if m.BoolMap == nil { m.BoolMap = make(map[bool]bool) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey bool + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8447,32 +8349,62 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue } + m.BoolMap[mapkey] = mapvalue iNdEx = postIndex case 14: if wireType != 2 { @@ -8500,51 +8432,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringMap == nil { m.StringMap = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8554,84 +8449,86 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } } - var stringLenmapkey uint64 + m.StringMap[mapkey] = mapvalue + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8641,26 +8538,26 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + if msglen < 0 { return ErrInvalidLengthTheproto3 } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + msglen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToBytesMap == nil { m.StringToBytesMap = make(map[string][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8670,42 +8567,81 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue } + m.StringToBytesMap[mapkey] = mapvalue iNdEx = postIndex case 16: if wireType != 2 { @@ -8733,51 +8669,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToEnumMap == nil { m.StringToEnumMap = make(map[string]MapEnum) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue MapEnum + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8787,31 +8686,69 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= (MapEnum(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF } + iNdEx += skippy } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue } + m.StringToEnumMap[mapkey] = mapvalue iNdEx = postIndex case 17: if wireType != 2 { @@ -8839,51 +8776,14 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringToMsgMap == nil { m.StringToMsgMap = make(map[string]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -8893,46 +8793,85 @@ func (m *AllMapsOrdered) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue } + m.StringToMsgMap[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -8980,52 +8919,15 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { if wireType == 4 { return fmt.Errorf("proto: MessageWithMap: wiretype end group for non-group") } - if fieldNum <= 0 { - return fmt.Errorf("proto: MessageWithMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NameMapping", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3 - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + if fieldNum <= 0 { + return fmt.Errorf("proto: MessageWithMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NameMapping", wireType) } - var mapkey int32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9035,16 +8937,26 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthTheproto3 + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } if m.NameMapping == nil { m.NameMapping = make(map[int32]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9054,41 +8966,69 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.NameMapping[mapkey] = mapvalue - } else { - var mapvalue string - m.NameMapping[mapkey] = mapvalue } + m.NameMapping[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -9116,43 +9056,14 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) if m.MsgMapping == nil { m.MsgMapping = make(map[int64]*FloatingPoint) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int64 + var mapvalue *FloatingPoint + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9162,46 +9073,77 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) + mapkey = int64(mapkeytemp) + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTheproto3 + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &FloatingPoint{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3 - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MsgMapping[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.MsgMapping[mapkey] = mapvalue } + m.MsgMapping[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -9229,42 +9171,14 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) if m.ByteMapping == nil { m.ByteMapping = make(map[bool][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey bool + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9274,42 +9188,72 @@ func (m *MessageWithMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var mapkeytemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkeytemp |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + mapkey = bool(mapkeytemp != 0) + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthTheproto3 + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3 - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.ByteMapping[mapkey] = mapvalue - } else { - var mapvalue []byte - m.ByteMapping[mapkey] = mapvalue } + m.ByteMapping[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -9369,15 +9313,8 @@ func (m *FloatingPoint) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.F = float64(math.Float64frombits(v)) default: iNdEx = preIndex @@ -9617,51 +9554,14 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3 - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3 - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.NestedMapField == nil { m.NestedMapField = make(map[string]float64) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue float64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTheproto3 @@ -9671,30 +9571,62 @@ func (m *ContainsNestedMap_NestedMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTheproto3 + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthTheproto3 + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + mapvaluetemp = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + mapvalue = math.Float64frombits(mapvaluetemp) + } else { + iNdEx = entryPreIndex + skippy, err := skipTheproto3(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTheproto3 + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.NestedMapField[mapkey] = mapvalue - } else { - var mapvalue float64 - m.NestedMapField[mapkey] = mapvalue } + m.NestedMapField[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3pb_test.go index 138ee47a5..e963ff2ae 100644 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3pb_test.go +++ b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unmarshaler/theproto3pb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/theproto3.proto -// DO NOT EDIT! /* Package theproto3 is a generated protocol buffer package. @@ -22,13 +21,12 @@ It has these top-level messages: package theproto3 import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" import _ "github.com/gogo/protobuf/test/combos/both" @@ -40,14 +38,14 @@ var _ = math.Inf func TestMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -68,12 +66,12 @@ func TestMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 10000) for i := 0; i < 10000; i++ { @@ -81,7 +79,7 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -91,11 +89,11 @@ func BenchmarkMessageProtoMarshal(b *testing.B) { } func BenchmarkMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessage(popr, false)) if err != nil { panic(err) } @@ -105,7 +103,7 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -114,14 +112,14 @@ func BenchmarkMessageProtoUnmarshal(b *testing.B) { func TestNestedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -142,12 +140,12 @@ func TestNestedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nested, 10000) for i := 0; i < 10000; i++ { @@ -155,7 +153,7 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -165,11 +163,11 @@ func BenchmarkNestedProtoMarshal(b *testing.B) { } func BenchmarkNestedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNested(popr, false)) if err != nil { panic(err) } @@ -179,7 +177,7 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -188,14 +186,14 @@ func BenchmarkNestedProtoUnmarshal(b *testing.B) { func TestAllMapsProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -216,12 +214,12 @@ func TestAllMapsProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 10000) for i := 0; i < 10000; i++ { @@ -229,7 +227,7 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -239,11 +237,11 @@ func BenchmarkAllMapsProtoMarshal(b *testing.B) { } func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMaps(popr, false)) if err != nil { panic(err) } @@ -253,7 +251,7 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -262,14 +260,14 @@ func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { func TestAllMapsOrderedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -290,12 +288,12 @@ func TestAllMapsOrderedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 10000) for i := 0; i < 10000; i++ { @@ -303,7 +301,7 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -313,11 +311,11 @@ func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { } func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) if err != nil { panic(err) } @@ -327,7 +325,7 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -336,14 +334,14 @@ func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { func TestMessageWithMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -364,12 +362,12 @@ func TestMessageWithMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MessageWithMap, 10000) for i := 0; i < 10000; i++ { @@ -377,7 +375,7 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -387,11 +385,11 @@ func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { } func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMessageWithMap(popr, false)) if err != nil { panic(err) } @@ -401,7 +399,7 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -410,14 +408,14 @@ func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { func TestFloatingPointProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -438,12 +436,12 @@ func TestFloatingPointProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 10000) for i := 0; i < 10000; i++ { @@ -451,7 +449,7 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -461,11 +459,11 @@ func BenchmarkFloatingPointProtoMarshal(b *testing.B) { } func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedFloatingPoint(popr, false)) if err != nil { panic(err) } @@ -475,7 +473,7 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -484,14 +482,14 @@ func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { func TestUint128PairProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -512,12 +510,12 @@ func TestUint128PairProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUint128PairProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Uint128Pair, 10000) for i := 0; i < 10000; i++ { @@ -525,7 +523,7 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -535,11 +533,11 @@ func BenchmarkUint128PairProtoMarshal(b *testing.B) { } func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUint128Pair(popr, false)) if err != nil { panic(err) } @@ -549,7 +547,7 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -558,14 +556,14 @@ func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { func TestContainsNestedMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -586,12 +584,12 @@ func TestContainsNestedMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap, 10000) for i := 0; i < 10000; i++ { @@ -599,7 +597,7 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -609,11 +607,11 @@ func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { } func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) if err != nil { panic(err) } @@ -623,7 +621,7 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -632,14 +630,14 @@ func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { func TestContainsNestedMap_NestedMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -660,12 +658,12 @@ func TestContainsNestedMap_NestedMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap_NestedMap, 10000) for i := 0; i < 10000; i++ { @@ -673,7 +671,7 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -683,11 +681,11 @@ func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { } func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) if err != nil { panic(err) } @@ -697,7 +695,7 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -706,14 +704,14 @@ func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { func TestNotPackedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -734,12 +732,12 @@ func TestNotPackedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNotPackedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NotPacked, 10000) for i := 0; i < 10000; i++ { @@ -747,7 +745,7 @@ func BenchmarkNotPackedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -757,11 +755,11 @@ func BenchmarkNotPackedProtoMarshal(b *testing.B) { } func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNotPacked(popr, false)) if err != nil { panic(err) } @@ -771,7 +769,7 @@ func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -780,15 +778,15 @@ func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { func TestMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Message{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -801,15 +799,15 @@ func TestMessageJSON(t *testing.T) { } func TestNestedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nested{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -822,15 +820,15 @@ func TestNestedJSON(t *testing.T) { } func TestAllMapsJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -843,15 +841,15 @@ func TestAllMapsJSON(t *testing.T) { } func TestAllMapsOrderedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -864,15 +862,15 @@ func TestAllMapsOrderedJSON(t *testing.T) { } func TestMessageWithMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MessageWithMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -885,15 +883,15 @@ func TestMessageWithMapJSON(t *testing.T) { } func TestFloatingPointJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -906,15 +904,15 @@ func TestFloatingPointJSON(t *testing.T) { } func TestUint128PairJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Uint128Pair{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -927,15 +925,15 @@ func TestUint128PairJSON(t *testing.T) { } func TestContainsNestedMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -948,15 +946,15 @@ func TestContainsNestedMapJSON(t *testing.T) { } func TestContainsNestedMap_NestedMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ContainsNestedMap_NestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -969,15 +967,15 @@ func TestContainsNestedMap_NestedMapJSON(t *testing.T) { } func TestNotPackedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NotPacked{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -990,11 +988,11 @@ func TestNotPackedJSON(t *testing.T) { } func TestMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1007,11 +1005,11 @@ func TestMessageProtoText(t *testing.T) { func TestMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1024,11 +1022,11 @@ func TestMessageProtoCompactText(t *testing.T) { func TestNestedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1041,11 +1039,11 @@ func TestNestedProtoText(t *testing.T) { func TestNestedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1058,11 +1056,11 @@ func TestNestedProtoCompactText(t *testing.T) { func TestAllMapsProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1075,11 +1073,11 @@ func TestAllMapsProtoText(t *testing.T) { func TestAllMapsProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1092,11 +1090,11 @@ func TestAllMapsProtoCompactText(t *testing.T) { func TestAllMapsOrderedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1109,11 +1107,11 @@ func TestAllMapsOrderedProtoText(t *testing.T) { func TestAllMapsOrderedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1126,11 +1124,11 @@ func TestAllMapsOrderedProtoCompactText(t *testing.T) { func TestMessageWithMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1143,11 +1141,11 @@ func TestMessageWithMapProtoText(t *testing.T) { func TestMessageWithMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1160,11 +1158,11 @@ func TestMessageWithMapProtoCompactText(t *testing.T) { func TestFloatingPointProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1177,11 +1175,11 @@ func TestFloatingPointProtoText(t *testing.T) { func TestFloatingPointProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1194,11 +1192,11 @@ func TestFloatingPointProtoCompactText(t *testing.T) { func TestUint128PairProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1211,11 +1209,11 @@ func TestUint128PairProtoText(t *testing.T) { func TestUint128PairProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1228,11 +1226,11 @@ func TestUint128PairProtoCompactText(t *testing.T) { func TestContainsNestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1245,11 +1243,11 @@ func TestContainsNestedMapProtoText(t *testing.T) { func TestContainsNestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1262,11 +1260,11 @@ func TestContainsNestedMapProtoCompactText(t *testing.T) { func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1279,11 +1277,11 @@ func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1296,11 +1294,11 @@ func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { func TestNotPackedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1313,11 +1311,11 @@ func TestNotPackedProtoText(t *testing.T) { func TestNotPackedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1332,14 +1330,14 @@ func TestTheproto3Description(t *testing.T) { Theproto3Description() } func TestMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1347,14 +1345,14 @@ func TestMessageVerboseEqual(t *testing.T) { } } func TestNestedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1362,14 +1360,14 @@ func TestNestedVerboseEqual(t *testing.T) { } } func TestAllMapsVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1377,14 +1375,14 @@ func TestAllMapsVerboseEqual(t *testing.T) { } } func TestAllMapsOrderedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1392,14 +1390,14 @@ func TestAllMapsOrderedVerboseEqual(t *testing.T) { } } func TestMessageWithMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1407,14 +1405,14 @@ func TestMessageWithMapVerboseEqual(t *testing.T) { } } func TestFloatingPointVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1422,14 +1420,14 @@ func TestFloatingPointVerboseEqual(t *testing.T) { } } func TestUint128PairVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1437,14 +1435,14 @@ func TestUint128PairVerboseEqual(t *testing.T) { } } func TestContainsNestedMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1452,14 +1450,14 @@ func TestContainsNestedMapVerboseEqual(t *testing.T) { } } func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1467,14 +1465,14 @@ func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { } } func TestNotPackedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1482,7 +1480,7 @@ func TestNotPackedVerboseEqual(t *testing.T) { } } func TestMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1490,7 +1488,7 @@ func TestMessageFace(t *testing.T) { } } func TestNestedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1498,7 +1496,7 @@ func TestNestedFace(t *testing.T) { } } func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1506,7 +1504,7 @@ func TestAllMapsFace(t *testing.T) { } } func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1514,7 +1512,7 @@ func TestAllMapsOrderedFace(t *testing.T) { } } func TestMessageWithMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1522,7 +1520,7 @@ func TestMessageWithMapFace(t *testing.T) { } } func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1530,7 +1528,7 @@ func TestFloatingPointFace(t *testing.T) { } } func TestUint128PairFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1538,7 +1536,7 @@ func TestUint128PairFace(t *testing.T) { } } func TestContainsNestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1546,7 +1544,7 @@ func TestContainsNestedMapFace(t *testing.T) { } } func TestContainsNestedMap_NestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1554,7 +1552,7 @@ func TestContainsNestedMap_NestedMapFace(t *testing.T) { } } func TestNotPackedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -1562,141 +1560,141 @@ func TestNotPackedFace(t *testing.T) { } } func TestMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMessageWithMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUint128PairGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestContainsNestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestContainsNestedMap_NestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNotPackedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1707,14 +1705,14 @@ func TestMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Message, 1000) for i := 0; i < 1000; i++ { @@ -1729,10 +1727,10 @@ func BenchmarkMessageSize(b *testing.B) { func TestNestedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNested(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1743,14 +1741,14 @@ func TestNestedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nested, 1000) for i := 0; i < 1000; i++ { @@ -1765,10 +1763,10 @@ func BenchmarkNestedSize(b *testing.B) { func TestAllMapsSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1779,14 +1777,14 @@ func TestAllMapsSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMaps, 1000) for i := 0; i < 1000; i++ { @@ -1801,10 +1799,10 @@ func BenchmarkAllMapsSize(b *testing.B) { func TestAllMapsOrderedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1815,14 +1813,14 @@ func TestAllMapsOrderedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AllMapsOrdered, 1000) for i := 0; i < 1000; i++ { @@ -1837,10 +1835,10 @@ func BenchmarkAllMapsOrderedSize(b *testing.B) { func TestMessageWithMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMessageWithMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1851,14 +1849,14 @@ func TestMessageWithMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMessageWithMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MessageWithMap, 1000) for i := 0; i < 1000; i++ { @@ -1873,10 +1871,10 @@ func BenchmarkMessageWithMapSize(b *testing.B) { func TestFloatingPointSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1887,14 +1885,14 @@ func TestFloatingPointSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*FloatingPoint, 1000) for i := 0; i < 1000; i++ { @@ -1909,10 +1907,10 @@ func BenchmarkFloatingPointSize(b *testing.B) { func TestUint128PairSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUint128Pair(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1923,14 +1921,14 @@ func TestUint128PairSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUint128PairSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Uint128Pair, 1000) for i := 0; i < 1000; i++ { @@ -1945,10 +1943,10 @@ func BenchmarkUint128PairSize(b *testing.B) { func TestContainsNestedMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1959,14 +1957,14 @@ func TestContainsNestedMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkContainsNestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap, 1000) for i := 0; i < 1000; i++ { @@ -1981,10 +1979,10 @@ func BenchmarkContainsNestedMapSize(b *testing.B) { func TestContainsNestedMap_NestedMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1995,14 +1993,14 @@ func TestContainsNestedMap_NestedMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ContainsNestedMap_NestedMap, 1000) for i := 0; i < 1000; i++ { @@ -2017,10 +2015,10 @@ func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { func TestNotPackedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNotPacked(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -2031,14 +2029,14 @@ func TestNotPackedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNotPackedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NotPacked, 1000) for i := 0; i < 1000; i++ { @@ -2052,7 +2050,7 @@ func BenchmarkNotPackedSize(b *testing.B) { } func TestMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessage(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2061,7 +2059,7 @@ func TestMessageStringer(t *testing.T) { } } func TestNestedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNested(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2070,7 +2068,7 @@ func TestNestedStringer(t *testing.T) { } } func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMaps(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2079,7 +2077,7 @@ func TestAllMapsStringer(t *testing.T) { } } func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAllMapsOrdered(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2088,7 +2086,7 @@ func TestAllMapsOrderedStringer(t *testing.T) { } } func TestMessageWithMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMessageWithMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2097,7 +2095,7 @@ func TestMessageWithMapStringer(t *testing.T) { } } func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedFloatingPoint(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2106,7 +2104,7 @@ func TestFloatingPointStringer(t *testing.T) { } } func TestUint128PairStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUint128Pair(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2115,7 +2113,7 @@ func TestUint128PairStringer(t *testing.T) { } } func TestContainsNestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2124,7 +2122,7 @@ func TestContainsNestedMapStringer(t *testing.T) { } } func TestContainsNestedMap_NestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedContainsNestedMap_NestedMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -2133,7 +2131,7 @@ func TestContainsNestedMap_NestedMapStringer(t *testing.T) { } } func TestNotPackedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNotPacked(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/proto3_test.go deleted file mode 100644 index bb7eb6bb9..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/proto3_test.go +++ /dev/null @@ -1,159 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2015, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package theproto3 - -import ( - "reflect" - "testing" - - "github.com/gogo/protobuf/proto" -) - -func TestNilMaps(t *testing.T) { - m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToMsgMap["a"]; !ok { - t.Error("element not in map") - } else if v != nil { - t.Errorf("element should be nil, but its %v", v) - } -} - -func TestNilMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["a"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} - -func TestEmptyMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["b"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} - -func TestCustomTypeSize(t *testing.T) { - m := &Uint128Pair{} - m.Size() // Should not panic. -} - -func TestCustomTypeMarshalUnmarshal(t *testing.T) { - m1 := &Uint128Pair{} - if b, err := proto.Marshal(m1); err != nil { - t.Fatal(err) - } else { - m2 := &Uint128Pair{} - if err := proto.Unmarshal(b, m2); err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(m1, m2) { - t.Errorf("expected %+v, got %+v", m1, m2) - } - } -} - -func TestNotPackedToPacked(t *testing.T) { - input := []uint64{1, 10e9} - notpacked := &NotPacked{Key: input} - if data, err := proto.Marshal(notpacked); err != nil { - t.Fatal(err) - } else { - packed := &Message{} - if err := proto.Unmarshal(data, packed); err != nil { - t.Fatal(err) - } - output := packed.Key - if !reflect.DeepEqual(input, output) { - t.Fatalf("expected %#v, got %#v", input, output) - } - } -} - -func TestPackedToNotPacked(t *testing.T) { - input := []uint64{1, 10e9} - packed := &Message{Key: input} - if data, err := proto.Marshal(packed); err != nil { - t.Fatal(err) - } else { - notpacked := &NotPacked{} - if err := proto.Unmarshal(data, notpacked); err != nil { - t.Fatal(err) - } - output := notpacked.Key - if !reflect.DeepEqual(input, output) { - t.Fatalf("expected %#v, got %#v", input, output) - } - } -} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.pb.go deleted file mode 100644 index c1bafa25e..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.pb.go +++ /dev/null @@ -1,11169 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/theproto3.proto -// DO NOT EDIT! - -/* - Package theproto3 is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeboth/theproto3.proto - - It has these top-level messages: - Message - Nested - AllMaps - AllMapsOrdered - MessageWithMap - FloatingPoint - Uint128Pair - ContainsNestedMap - NotPacked -*/ -package theproto3 - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import test "github.com/gogo/protobuf/test/combos/both" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strconv "strconv" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -import unsafe "unsafe" - -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 - -type MapEnum int32 - -const ( - MA MapEnum = 0 - MB MapEnum = 1 - MC MapEnum = 2 -) - -var MapEnum_name = map[int32]string{ - 0: "MA", - 1: "MB", - 2: "MC", -} -var MapEnum_value = map[string]int32{ - "MA": 0, - "MB": 1, - "MC": 2, -} - -func (MapEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{0} } - -type Message_Humour int32 - -const ( - UNKNOWN Message_Humour = 0 - PUNS Message_Humour = 1 - SLAPSTICK Message_Humour = 2 - BILL_BAILEY Message_Humour = 3 -) - -var Message_Humour_name = map[int32]string{ - 0: "UNKNOWN", - 1: "PUNS", - 2: "SLAPSTICK", - 3: "BILL_BAILEY", -} -var Message_Humour_value = map[string]int32{ - "UNKNOWN": 0, - "PUNS": 1, - "SLAPSTICK": 2, - "BILL_BAILEY": 3, -} - -func (Message_Humour) EnumDescriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{0, 0} } - -type Message struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Hilarity Message_Humour `protobuf:"varint,2,opt,name=hilarity,proto3,enum=theproto3.Message_Humour" json:"hilarity,omitempty"` - HeightInCm uint32 `protobuf:"varint,3,opt,name=height_in_cm,json=heightInCm,proto3" json:"height_in_cm,omitempty"` - Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` - ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` - TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` - Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` - Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` - Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` - Proto2Value map[int64]*test.NinOptEnum `protobuf:"bytes,13,rep,name=proto2_value,json=proto2Value" json:"proto2_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *Message) Reset() { *m = Message{} } -func (*Message) ProtoMessage() {} -func (*Message) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{0} } - -type Nested struct { - Bunny string `protobuf:"bytes,1,opt,name=bunny,proto3" json:"bunny,omitempty"` -} - -func (m *Nested) Reset() { *m = Nested{} } -func (*Nested) ProtoMessage() {} -func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } - -type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *AllMaps) Reset() { *m = AllMaps{} } -func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } - -type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } -func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{3} } - -type MessageWithMap struct { - NameMapping map[int32]string `protobuf:"bytes,1,rep,name=name_mapping,json=nameMapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - MsgMapping map[int64]*FloatingPoint `protobuf:"bytes,2,rep,name=msg_mapping,json=msgMapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - ByteMapping map[bool][]byte `protobuf:"bytes,3,rep,name=byte_mapping,json=byteMapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (m *MessageWithMap) Reset() { *m = MessageWithMap{} } -func (*MessageWithMap) ProtoMessage() {} -func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{4} } - -type FloatingPoint struct { - F float64 `protobuf:"fixed64,1,opt,name=f,proto3" json:"f,omitempty"` -} - -func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } -func (*FloatingPoint) ProtoMessage() {} -func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{5} } - -type Uint128Pair struct { - Left github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,opt,name=left,proto3,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"left"` - Right *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=right,proto3,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"right,omitempty"` -} - -func (m *Uint128Pair) Reset() { *m = Uint128Pair{} } -func (*Uint128Pair) ProtoMessage() {} -func (*Uint128Pair) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{6} } - -type ContainsNestedMap struct { -} - -func (m *ContainsNestedMap) Reset() { *m = ContainsNestedMap{} } -func (*ContainsNestedMap) ProtoMessage() {} -func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } - -type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` -} - -func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } -func (*ContainsNestedMap_NestedMap) ProtoMessage() {} -func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { - return fileDescriptorTheproto3, []int{7, 0} -} - -type NotPacked struct { - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` -} - -func (m *NotPacked) Reset() { *m = NotPacked{} } -func (*NotPacked) ProtoMessage() {} -func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } - -func init() { - proto.RegisterType((*Message)(nil), "theproto3.Message") - proto.RegisterType((*Nested)(nil), "theproto3.Nested") - proto.RegisterType((*AllMaps)(nil), "theproto3.AllMaps") - proto.RegisterType((*AllMapsOrdered)(nil), "theproto3.AllMapsOrdered") - proto.RegisterType((*MessageWithMap)(nil), "theproto3.MessageWithMap") - proto.RegisterType((*FloatingPoint)(nil), "theproto3.FloatingPoint") - proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") - proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") - proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") - proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") - proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) - proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) -} -func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *Nested) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *MessageWithMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *Uint128Pair) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 7853 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, - 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, - 0x68, 0x34, 0xa2, 0xb8, 0x16, 0x87, 0xc3, 0x21, 0xe7, 0x82, 0xb1, 0xa4, 0x00, 0x20, 0x38, 0xe2, - 0x98, 0x04, 0xe9, 0x26, 0x69, 0x69, 0xd6, 0xa9, 0xa0, 0x9a, 0xc0, 0x21, 0xd9, 0x12, 0xd0, 0x8d, - 0x45, 0x37, 0x24, 0xd1, 0x0f, 0x29, 0x65, 0x9d, 0x6c, 0xbc, 0x49, 0xe5, 0xba, 0x49, 0xc5, 0xeb, - 0xf8, 0x22, 0x6f, 0x6a, 0x63, 0xef, 0x6e, 0x2e, 0x5e, 0x67, 0xe3, 0x6c, 0x6d, 0xa5, 0xb2, 0xca, - 0x83, 0x93, 0xc9, 0x4b, 0x4a, 0x9b, 0xbc, 0xa4, 0x5c, 0x29, 0x95, 0x35, 0x72, 0x25, 0x4e, 0xe2, - 0x24, 0xde, 0xac, 0xab, 0x76, 0xab, 0xbc, 0x0f, 0xa9, 0x73, 0xeb, 0xee, 0x73, 0xd0, 0x40, 0x83, - 0x23, 0xc9, 0xde, 0x07, 0xbf, 0xcc, 0xa0, 0xcf, 0xf9, 0xbf, 0xaf, 0xff, 0xfe, 0x6f, 0xe7, 0xef, - 0xd3, 0x0d, 0x10, 0xde, 0x5f, 0x83, 0x0b, 0xc7, 0x8e, 0x73, 0xdc, 0x40, 0x57, 0x5a, 0x6d, 0xc7, - 0x73, 0x0e, 0x3b, 0x47, 0x57, 0xea, 0xc8, 0xad, 0xb5, 0xad, 0x96, 0xe7, 0xb4, 0x97, 0xc8, 0x98, - 0x3e, 0x49, 0x25, 0x96, 0xb8, 0x44, 0x6e, 0x1b, 0xa6, 0x36, 0xac, 0x06, 0x5a, 0xf7, 0x05, 0xf7, - 0x90, 0xa7, 0xdf, 0x84, 0xe4, 0x91, 0xd5, 0x40, 0x59, 0xe5, 0x82, 0xba, 0x90, 0x5e, 0xb9, 0xb4, - 0x24, 0x81, 0x96, 0x44, 0xc4, 0x2e, 0x1e, 0x36, 0x08, 0x22, 0xf7, 0xbd, 0x24, 0x4c, 0x47, 0xcc, - 0xea, 0x3a, 0x24, 0x6d, 0xb3, 0x89, 0x19, 0x95, 0x85, 0x31, 0x83, 0x7c, 0xd6, 0xb3, 0x30, 0xda, - 0x32, 0x6b, 0xaf, 0x9a, 0xc7, 0x28, 0x9b, 0x20, 0xc3, 0xfc, 0x50, 0x9f, 0x03, 0xa8, 0xa3, 0x16, - 0xb2, 0xeb, 0xc8, 0xae, 0x9d, 0x66, 0xd5, 0x0b, 0xea, 0xc2, 0x98, 0x11, 0x1a, 0xd1, 0x7f, 0x0e, - 0xa6, 0x5a, 0x9d, 0xc3, 0x86, 0x55, 0xab, 0x86, 0xc4, 0xe0, 0x82, 0xba, 0x30, 0x6c, 0x68, 0x74, - 0x62, 0x3d, 0x10, 0x7e, 0x1a, 0x26, 0x5f, 0x47, 0xe6, 0xab, 0x61, 0xd1, 0x34, 0x11, 0x9d, 0xc0, - 0xc3, 0x21, 0xc1, 0x12, 0x64, 0x9a, 0xc8, 0x75, 0xcd, 0x63, 0x54, 0xf5, 0x4e, 0x5b, 0x28, 0x9b, - 0x24, 0x57, 0x7f, 0xa1, 0xeb, 0xea, 0xe5, 0x2b, 0x4f, 0x33, 0xd4, 0xfe, 0x69, 0x0b, 0xe9, 0x05, - 0x18, 0x43, 0x76, 0xa7, 0x49, 0x19, 0x86, 0x7b, 0xd8, 0xaf, 0x6c, 0x77, 0x9a, 0x32, 0x4b, 0x0a, - 0xc3, 0x18, 0xc5, 0xa8, 0x8b, 0xda, 0xaf, 0x59, 0x35, 0x94, 0x1d, 0x21, 0x04, 0x4f, 0x77, 0x11, - 0xec, 0xd1, 0x79, 0x99, 0x83, 0xe3, 0xf4, 0x12, 0x8c, 0xa1, 0x37, 0x3c, 0x64, 0xbb, 0x96, 0x63, - 0x67, 0x47, 0x09, 0xc9, 0x53, 0x11, 0x5e, 0x44, 0x8d, 0xba, 0x4c, 0x11, 0xe0, 0xf4, 0xeb, 0x30, - 0xea, 0xb4, 0x3c, 0xcb, 0xb1, 0xdd, 0x6c, 0xea, 0x82, 0xb2, 0x90, 0x5e, 0x39, 0x1f, 0x19, 0x08, - 0x3b, 0x54, 0xc6, 0xe0, 0xc2, 0xfa, 0x26, 0x68, 0xae, 0xd3, 0x69, 0xd7, 0x50, 0xb5, 0xe6, 0xd4, - 0x51, 0xd5, 0xb2, 0x8f, 0x9c, 0xec, 0x18, 0x21, 0x98, 0xef, 0xbe, 0x10, 0x22, 0x58, 0x72, 0xea, - 0x68, 0xd3, 0x3e, 0x72, 0x8c, 0x09, 0x57, 0x38, 0xd6, 0x67, 0x60, 0xc4, 0x3d, 0xb5, 0x3d, 0xf3, - 0x8d, 0x6c, 0x86, 0x44, 0x08, 0x3b, 0xca, 0xfd, 0xf1, 0x30, 0x4c, 0x0e, 0x12, 0x62, 0xb7, 0x61, - 0xf8, 0x08, 0x5f, 0x65, 0x36, 0x71, 0x16, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0x91, 0x87, 0x34, 0x62, - 0x01, 0xd2, 0x36, 0x72, 0x3d, 0x54, 0xa7, 0x11, 0xa1, 0x0e, 0x18, 0x53, 0x40, 0x41, 0xdd, 0x21, - 0x95, 0x7c, 0xa8, 0x90, 0x7a, 0x19, 0x26, 0x7d, 0x95, 0xaa, 0x6d, 0xd3, 0x3e, 0xe6, 0xb1, 0x79, - 0x25, 0x4e, 0x93, 0xa5, 0x32, 0xc7, 0x19, 0x18, 0x66, 0x4c, 0x20, 0xe1, 0x58, 0x5f, 0x07, 0x70, - 0x6c, 0xe4, 0x1c, 0x55, 0xeb, 0xa8, 0xd6, 0xc8, 0xa6, 0x7a, 0x58, 0x69, 0x07, 0x8b, 0x74, 0x59, - 0xc9, 0xa1, 0xa3, 0xb5, 0x86, 0x7e, 0x2b, 0x08, 0xb5, 0xd1, 0x1e, 0x91, 0xb2, 0x4d, 0x93, 0xac, - 0x2b, 0xda, 0x0e, 0x60, 0xa2, 0x8d, 0x70, 0xdc, 0xa3, 0x3a, 0xbb, 0xb2, 0x31, 0xa2, 0xc4, 0x52, - 0xec, 0x95, 0x19, 0x0c, 0x46, 0x2f, 0x6c, 0xbc, 0x1d, 0x3e, 0xd4, 0x9f, 0x04, 0x7f, 0xa0, 0x4a, - 0xc2, 0x0a, 0x48, 0x15, 0xca, 0xf0, 0xc1, 0x8a, 0xd9, 0x44, 0xb3, 0x37, 0x61, 0x42, 0x34, 0x8f, - 0x7e, 0x0e, 0x86, 0x5d, 0xcf, 0x6c, 0x7b, 0x24, 0x0a, 0x87, 0x0d, 0x7a, 0xa0, 0x6b, 0xa0, 0x22, - 0xbb, 0x4e, 0xaa, 0xdc, 0xb0, 0x81, 0x3f, 0xce, 0xde, 0x80, 0x71, 0xe1, 0xf4, 0x83, 0x02, 0x73, - 0x9f, 0x1f, 0x81, 0x73, 0x51, 0x31, 0x17, 0x19, 0xfe, 0x33, 0x30, 0x62, 0x77, 0x9a, 0x87, 0xa8, - 0x9d, 0x55, 0x09, 0x03, 0x3b, 0xd2, 0x0b, 0x30, 0xdc, 0x30, 0x0f, 0x51, 0x23, 0x9b, 0xbc, 0xa0, - 0x2c, 0x4c, 0xac, 0xfc, 0xdc, 0x40, 0x51, 0xbd, 0xb4, 0x85, 0x21, 0x06, 0x45, 0xea, 0xcf, 0x43, - 0x92, 0x95, 0x38, 0xcc, 0xb0, 0x38, 0x18, 0x03, 0x8e, 0x45, 0x83, 0xe0, 0xf4, 0xc7, 0x61, 0x0c, - 0xff, 0x4f, 0x6d, 0x3b, 0x42, 0x74, 0x4e, 0xe1, 0x01, 0x6c, 0x57, 0x7d, 0x16, 0x52, 0x24, 0xcc, - 0xea, 0x88, 0x2f, 0x0d, 0xfe, 0x31, 0x76, 0x4c, 0x1d, 0x1d, 0x99, 0x9d, 0x86, 0x57, 0x7d, 0xcd, - 0x6c, 0x74, 0x10, 0x09, 0x98, 0x31, 0x23, 0xc3, 0x06, 0x3f, 0x85, 0xc7, 0xf4, 0x79, 0x48, 0xd3, - 0xa8, 0xb4, 0xec, 0x3a, 0x7a, 0x83, 0x54, 0x9f, 0x61, 0x83, 0x06, 0xea, 0x26, 0x1e, 0xc1, 0xa7, - 0x7f, 0xc5, 0x75, 0x6c, 0xee, 0x5a, 0x72, 0x0a, 0x3c, 0x40, 0x4e, 0x7f, 0x43, 0x2e, 0x7c, 0x4f, - 0x44, 0x5f, 0x9e, 0x1c, 0x8b, 0xb9, 0x6f, 0x25, 0x20, 0x49, 0xf2, 0x6d, 0x12, 0xd2, 0xfb, 0xf7, - 0x76, 0xcb, 0xd5, 0xf5, 0x9d, 0x83, 0xe2, 0x56, 0x59, 0x53, 0xf4, 0x09, 0x00, 0x32, 0xb0, 0xb1, - 0xb5, 0x53, 0xd8, 0xd7, 0x12, 0xfe, 0xf1, 0x66, 0x65, 0xff, 0xfa, 0xaa, 0xa6, 0xfa, 0x80, 0x03, - 0x3a, 0x90, 0x0c, 0x0b, 0x5c, 0x5b, 0xd1, 0x86, 0x75, 0x0d, 0x32, 0x94, 0x60, 0xf3, 0xe5, 0xf2, - 0xfa, 0xf5, 0x55, 0x6d, 0x44, 0x1c, 0xb9, 0xb6, 0xa2, 0x8d, 0xea, 0xe3, 0x30, 0x46, 0x46, 0x8a, - 0x3b, 0x3b, 0x5b, 0x5a, 0xca, 0xe7, 0xdc, 0xdb, 0x37, 0x36, 0x2b, 0x77, 0xb4, 0x31, 0x9f, 0xf3, - 0x8e, 0xb1, 0x73, 0xb0, 0xab, 0x81, 0xcf, 0xb0, 0x5d, 0xde, 0xdb, 0x2b, 0xdc, 0x29, 0x6b, 0x69, - 0x5f, 0xa2, 0x78, 0x6f, 0xbf, 0xbc, 0xa7, 0x65, 0x04, 0xb5, 0xae, 0xad, 0x68, 0xe3, 0xfe, 0x29, - 0xca, 0x95, 0x83, 0x6d, 0x6d, 0x42, 0x9f, 0x82, 0x71, 0x7a, 0x0a, 0xae, 0xc4, 0xa4, 0x34, 0x74, - 0x7d, 0x55, 0xd3, 0x02, 0x45, 0x28, 0xcb, 0x94, 0x30, 0x70, 0x7d, 0x55, 0xd3, 0x73, 0x25, 0x18, - 0x26, 0xd1, 0xa5, 0xeb, 0x30, 0xb1, 0x55, 0x28, 0x96, 0xb7, 0xaa, 0x3b, 0xbb, 0xfb, 0x9b, 0x3b, - 0x95, 0xc2, 0x96, 0xa6, 0x04, 0x63, 0x46, 0xf9, 0x93, 0x07, 0x9b, 0x46, 0x79, 0x5d, 0x4b, 0x84, - 0xc7, 0x76, 0xcb, 0x85, 0xfd, 0xf2, 0xba, 0xa6, 0xe6, 0x6a, 0x70, 0x2e, 0xaa, 0xce, 0x44, 0x66, - 0x46, 0xc8, 0xc5, 0x89, 0x1e, 0x2e, 0x26, 0x5c, 0x5d, 0x2e, 0xfe, 0x35, 0x05, 0xa6, 0x23, 0x6a, - 0x6d, 0xe4, 0x49, 0x5e, 0x80, 0x61, 0x1a, 0xa2, 0x74, 0xf5, 0x79, 0x26, 0xb2, 0x68, 0x93, 0x80, - 0xed, 0x5a, 0x81, 0x08, 0x2e, 0xbc, 0x02, 0xab, 0x3d, 0x56, 0x60, 0x4c, 0xd1, 0xa5, 0xe4, 0x67, - 0x15, 0xc8, 0xf6, 0xe2, 0x8e, 0x29, 0x14, 0x09, 0xa1, 0x50, 0xdc, 0x96, 0x15, 0xb8, 0xd8, 0xfb, - 0x1a, 0xba, 0xb4, 0xf8, 0x9a, 0x02, 0x33, 0xd1, 0x8d, 0x4a, 0xa4, 0x0e, 0xcf, 0xc3, 0x48, 0x13, - 0x79, 0x27, 0x0e, 0x5f, 0xac, 0x2f, 0x47, 0x2c, 0x01, 0x78, 0x5a, 0xb6, 0x15, 0x43, 0x85, 0xd7, - 0x10, 0xb5, 0x57, 0xb7, 0x41, 0xb5, 0xe9, 0xd2, 0xf4, 0x97, 0x13, 0xf0, 0x48, 0x24, 0x79, 0xa4, - 0xa2, 0x4f, 0x00, 0x58, 0x76, 0xab, 0xe3, 0xd1, 0x05, 0x99, 0xd6, 0xa7, 0x31, 0x32, 0x42, 0x72, - 0x1f, 0xd7, 0x9e, 0x8e, 0xe7, 0xcf, 0xab, 0x64, 0x1e, 0xe8, 0x10, 0x11, 0xb8, 0x19, 0x28, 0x9a, - 0x24, 0x8a, 0xce, 0xf5, 0xb8, 0xd2, 0xae, 0xb5, 0x6e, 0x19, 0xb4, 0x5a, 0xc3, 0x42, 0xb6, 0x57, - 0x75, 0xbd, 0x36, 0x32, 0x9b, 0x96, 0x7d, 0x4c, 0x0a, 0x70, 0x2a, 0x3f, 0x7c, 0x64, 0x36, 0x5c, - 0x64, 0x4c, 0xd2, 0xe9, 0x3d, 0x3e, 0x8b, 0x11, 0x64, 0x95, 0x69, 0x87, 0x10, 0x23, 0x02, 0x82, - 0x4e, 0xfb, 0x88, 0xdc, 0x6f, 0x8d, 0x42, 0x3a, 0xd4, 0xd6, 0xe9, 0x17, 0x21, 0xf3, 0x8a, 0xf9, - 0x9a, 0x59, 0xe5, 0xad, 0x3a, 0xb5, 0x44, 0x1a, 0x8f, 0xed, 0xb2, 0x76, 0x7d, 0x19, 0xce, 0x11, - 0x11, 0xa7, 0xe3, 0xa1, 0x76, 0xb5, 0xd6, 0x30, 0x5d, 0x97, 0x18, 0x2d, 0x45, 0x44, 0x75, 0x3c, - 0xb7, 0x83, 0xa7, 0x4a, 0x7c, 0x46, 0x5f, 0x83, 0x69, 0x82, 0x68, 0x76, 0x1a, 0x9e, 0xd5, 0x6a, - 0xa0, 0x2a, 0xbe, 0x79, 0x70, 0x49, 0x21, 0xf6, 0x35, 0x9b, 0xc2, 0x12, 0xdb, 0x4c, 0x00, 0x6b, - 0xe4, 0xea, 0xeb, 0xf0, 0x04, 0x81, 0x1d, 0x23, 0x1b, 0xb5, 0x4d, 0x0f, 0x55, 0xd1, 0x2f, 0x74, - 0xcc, 0x86, 0x5b, 0x35, 0xed, 0x7a, 0xf5, 0xc4, 0x74, 0x4f, 0xb2, 0xe7, 0x30, 0x41, 0x31, 0x91, - 0x55, 0x8c, 0xc7, 0xb0, 0xe0, 0x1d, 0x26, 0x57, 0x26, 0x62, 0x05, 0xbb, 0xfe, 0xa2, 0xe9, 0x9e, - 0xe8, 0x79, 0x98, 0x21, 0x2c, 0xae, 0xd7, 0xb6, 0xec, 0xe3, 0x6a, 0xed, 0x04, 0xd5, 0x5e, 0xad, - 0x76, 0xbc, 0xa3, 0x9b, 0xd9, 0xc7, 0xc3, 0xe7, 0x27, 0x1a, 0xee, 0x11, 0x99, 0x12, 0x16, 0x39, - 0xf0, 0x8e, 0x6e, 0xea, 0x7b, 0x90, 0xc1, 0xce, 0x68, 0x5a, 0x9f, 0x41, 0xd5, 0x23, 0xa7, 0x4d, - 0x56, 0x96, 0x89, 0x88, 0xcc, 0x0e, 0x59, 0x70, 0x69, 0x87, 0x01, 0xb6, 0x9d, 0x3a, 0xca, 0x0f, - 0xef, 0xed, 0x96, 0xcb, 0xeb, 0x46, 0x9a, 0xb3, 0x6c, 0x38, 0x6d, 0x1c, 0x50, 0xc7, 0x8e, 0x6f, - 0xe0, 0x34, 0x0d, 0xa8, 0x63, 0x87, 0x9b, 0x77, 0x0d, 0xa6, 0x6b, 0x35, 0x7a, 0xcd, 0x56, 0xad, - 0xca, 0x5a, 0x7c, 0x37, 0xab, 0x09, 0xc6, 0xaa, 0xd5, 0xee, 0x50, 0x01, 0x16, 0xe3, 0xae, 0x7e, - 0x0b, 0x1e, 0x09, 0x8c, 0x15, 0x06, 0x4e, 0x75, 0x5d, 0xa5, 0x0c, 0x5d, 0x83, 0xe9, 0xd6, 0x69, - 0x37, 0x50, 0x17, 0xce, 0xd8, 0x3a, 0x95, 0x61, 0x4f, 0x91, 0xdb, 0xb6, 0x36, 0xaa, 0x99, 0x1e, - 0xaa, 0x67, 0x1f, 0x0d, 0x4b, 0x87, 0x26, 0xf4, 0x2b, 0xa0, 0xd5, 0x6a, 0x55, 0x64, 0x9b, 0x87, - 0x0d, 0x54, 0x35, 0xdb, 0xc8, 0x36, 0xdd, 0xec, 0x7c, 0x58, 0x78, 0xa2, 0x56, 0x2b, 0x93, 0xd9, - 0x02, 0x99, 0xd4, 0x17, 0x61, 0xca, 0x39, 0x7c, 0xa5, 0x46, 0x23, 0xab, 0xda, 0x6a, 0xa3, 0x23, - 0xeb, 0x8d, 0xec, 0x25, 0x62, 0xa6, 0x49, 0x3c, 0x41, 0xe2, 0x6a, 0x97, 0x0c, 0xeb, 0xcf, 0x80, - 0x56, 0x73, 0x4f, 0xcc, 0x76, 0x8b, 0x2c, 0xed, 0x6e, 0xcb, 0xac, 0xa1, 0xec, 0x53, 0x54, 0x94, - 0x8e, 0x57, 0xf8, 0x30, 0x8e, 0x6c, 0xf7, 0x75, 0xeb, 0xc8, 0xe3, 0x8c, 0x4f, 0xd3, 0xc8, 0x26, - 0x63, 0x8c, 0xed, 0x65, 0x38, 0xd7, 0xb1, 0x2d, 0xdb, 0x43, 0xed, 0x56, 0x1b, 0xe1, 0x26, 0x9e, - 0x66, 0x62, 0xf6, 0xbf, 0x8f, 0xf6, 0x68, 0xc3, 0x0f, 0xc2, 0xd2, 0x34, 0x00, 0x8c, 0xe9, 0x4e, - 0xf7, 0x60, 0x2e, 0x0f, 0x99, 0x70, 0x5c, 0xe8, 0x63, 0x40, 0x23, 0x43, 0x53, 0xf0, 0x1a, 0x5b, - 0xda, 0x59, 0xc7, 0xab, 0xe3, 0xcf, 0x97, 0xb5, 0x04, 0x5e, 0xa5, 0xb7, 0x36, 0xf7, 0xcb, 0x55, - 0xe3, 0xa0, 0xb2, 0xbf, 0xb9, 0x5d, 0xd6, 0xd4, 0xc5, 0xb1, 0xd4, 0xf7, 0x47, 0xb5, 0x37, 0xdf, - 0x7c, 0xf3, 0xcd, 0x44, 0xee, 0xdb, 0x09, 0x98, 0x10, 0x3b, 0x63, 0xfd, 0xe3, 0xf0, 0x28, 0xbf, - 0x8d, 0x75, 0x91, 0x57, 0x7d, 0xdd, 0x6a, 0x93, 0x50, 0x6d, 0x9a, 0xb4, 0xb7, 0xf4, 0xad, 0x7c, - 0x8e, 0x49, 0xed, 0x21, 0xef, 0x25, 0xab, 0x8d, 0x03, 0xb1, 0x69, 0x7a, 0xfa, 0x16, 0xcc, 0xdb, - 0x4e, 0xd5, 0xf5, 0x4c, 0xbb, 0x6e, 0xb6, 0xeb, 0xd5, 0x60, 0x03, 0xa1, 0x6a, 0xd6, 0x6a, 0xc8, - 0x75, 0x1d, 0xba, 0x44, 0xf8, 0x2c, 0xe7, 0x6d, 0x67, 0x8f, 0x09, 0x07, 0xb5, 0xb3, 0xc0, 0x44, - 0xa5, 0x88, 0x50, 0x7b, 0x45, 0xc4, 0xe3, 0x30, 0xd6, 0x34, 0x5b, 0x55, 0x64, 0x7b, 0xed, 0x53, - 0xd2, 0xcf, 0xa5, 0x8c, 0x54, 0xd3, 0x6c, 0x95, 0xf1, 0xf1, 0x47, 0xe7, 0x83, 0xb0, 0x1d, 0xff, - 0xab, 0x0a, 0x99, 0x70, 0x4f, 0x87, 0x5b, 0xe4, 0x1a, 0xa9, 0xdf, 0x0a, 0xc9, 0xf0, 0x27, 0xfb, - 0x76, 0x80, 0x4b, 0x25, 0x5c, 0xd8, 0xf3, 0x23, 0xb4, 0xd3, 0x32, 0x28, 0x12, 0x2f, 0xaa, 0x38, - 0xa7, 0x11, 0xed, 0xdf, 0x53, 0x06, 0x3b, 0xd2, 0xef, 0xc0, 0xc8, 0x2b, 0x2e, 0xe1, 0x1e, 0x21, - 0xdc, 0x97, 0xfa, 0x73, 0xdf, 0xdd, 0x23, 0xe4, 0x63, 0x77, 0xf7, 0xaa, 0x95, 0x1d, 0x63, 0xbb, - 0xb0, 0x65, 0x30, 0xb8, 0xfe, 0x18, 0x24, 0x1b, 0xe6, 0x67, 0x4e, 0xc5, 0x25, 0x80, 0x0c, 0x0d, - 0x6a, 0xf8, 0xc7, 0x20, 0xf9, 0x3a, 0x32, 0x5f, 0x15, 0x0b, 0x2f, 0x19, 0xfa, 0x08, 0x43, 0xff, - 0x0a, 0x0c, 0x13, 0x7b, 0xe9, 0x00, 0xcc, 0x62, 0xda, 0x90, 0x9e, 0x82, 0x64, 0x69, 0xc7, 0xc0, - 0xe1, 0xaf, 0x41, 0x86, 0x8e, 0x56, 0x77, 0x37, 0xcb, 0xa5, 0xb2, 0x96, 0xc8, 0xad, 0xc1, 0x08, - 0x35, 0x02, 0x4e, 0x0d, 0xdf, 0x0c, 0xda, 0x10, 0x3b, 0x64, 0x1c, 0x0a, 0x9f, 0x3d, 0xd8, 0x2e, - 0x96, 0x0d, 0x2d, 0x11, 0x76, 0xaf, 0x0b, 0x99, 0x70, 0x3b, 0xf7, 0x93, 0x89, 0xa9, 0xdf, 0x53, - 0x20, 0x1d, 0x6a, 0xcf, 0x70, 0x63, 0x60, 0x36, 0x1a, 0xce, 0xeb, 0x55, 0xb3, 0x61, 0x99, 0x2e, - 0x0b, 0x0a, 0x20, 0x43, 0x05, 0x3c, 0x32, 0xa8, 0xd3, 0x7e, 0x22, 0xca, 0x7f, 0x59, 0x01, 0x4d, - 0x6e, 0xed, 0x24, 0x05, 0x95, 0x9f, 0xaa, 0x82, 0x5f, 0x54, 0x60, 0x42, 0xec, 0xe7, 0x24, 0xf5, - 0x2e, 0xfe, 0x54, 0xd5, 0xfb, 0x6e, 0x02, 0xc6, 0x85, 0x2e, 0x6e, 0x50, 0xed, 0x7e, 0x01, 0xa6, - 0xac, 0x3a, 0x6a, 0xb6, 0x1c, 0x0f, 0xd9, 0xb5, 0xd3, 0x6a, 0x03, 0xbd, 0x86, 0x1a, 0xd9, 0x1c, - 0x29, 0x14, 0x57, 0xfa, 0xf7, 0x89, 0x4b, 0x9b, 0x01, 0x6e, 0x0b, 0xc3, 0xf2, 0xd3, 0x9b, 0xeb, - 0xe5, 0xed, 0xdd, 0x9d, 0xfd, 0x72, 0xa5, 0x74, 0xaf, 0x7a, 0x50, 0xf9, 0x44, 0x65, 0xe7, 0xa5, - 0x8a, 0xa1, 0x59, 0x92, 0xd8, 0x47, 0x98, 0xea, 0xbb, 0xa0, 0xc9, 0x4a, 0xe9, 0x8f, 0x42, 0x94, - 0x5a, 0xda, 0x90, 0x3e, 0x0d, 0x93, 0x95, 0x9d, 0xea, 0xde, 0xe6, 0x7a, 0xb9, 0x5a, 0xde, 0xd8, - 0x28, 0x97, 0xf6, 0xf7, 0xe8, 0x8d, 0xb3, 0x2f, 0xbd, 0x2f, 0x26, 0xf5, 0x17, 0x54, 0x98, 0x8e, - 0xd0, 0x44, 0x2f, 0xb0, 0x9e, 0x9d, 0xde, 0x46, 0x3c, 0x3b, 0x88, 0xf6, 0x4b, 0xb8, 0x2b, 0xd8, - 0x35, 0xdb, 0x1e, 0x6b, 0xf1, 0x9f, 0x01, 0x6c, 0x25, 0xdb, 0xb3, 0x8e, 0x2c, 0xd4, 0x66, 0xfb, - 0x0c, 0xb4, 0x91, 0x9f, 0x0c, 0xc6, 0xe9, 0x56, 0xc3, 0xc7, 0x40, 0x6f, 0x39, 0xae, 0xe5, 0x59, - 0xaf, 0xa1, 0xaa, 0x65, 0xf3, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, 0xcf, 0x6c, 0xda, 0x9e, - 0x2f, 0x6d, 0xa3, 0x63, 0x53, 0x92, 0xc6, 0x05, 0x5c, 0x35, 0x34, 0x3e, 0xe3, 0x4b, 0x5f, 0x84, - 0x4c, 0xdd, 0xe9, 0xe0, 0x36, 0x89, 0xca, 0xe1, 0xf5, 0x42, 0x31, 0xd2, 0x74, 0xcc, 0x17, 0x61, - 0x7d, 0x6c, 0xb0, 0x1b, 0x92, 0x31, 0xd2, 0x74, 0x8c, 0x8a, 0x3c, 0x0d, 0x93, 0xe6, 0xf1, 0x71, - 0x1b, 0x93, 0x73, 0x22, 0xda, 0x99, 0x4f, 0xf8, 0xc3, 0x44, 0x70, 0xf6, 0x2e, 0xa4, 0xb8, 0x1d, - 0xf0, 0x92, 0x8c, 0x2d, 0x51, 0x6d, 0xd1, 0x3d, 0xa9, 0xc4, 0xc2, 0x98, 0x91, 0xb2, 0xf9, 0xe4, - 0x45, 0xc8, 0x58, 0x6e, 0x35, 0xd8, 0x1c, 0x4d, 0x5c, 0x48, 0x2c, 0xa4, 0x8c, 0xb4, 0xe5, 0xfa, - 0xbb, 0x61, 0xb9, 0xaf, 0x25, 0x60, 0x42, 0xdc, 0xdc, 0xd5, 0xd7, 0x21, 0xd5, 0x70, 0x6a, 0x26, - 0x09, 0x2d, 0xfa, 0x64, 0x61, 0x21, 0x66, 0x3f, 0x78, 0x69, 0x8b, 0xc9, 0x1b, 0x3e, 0x72, 0xf6, - 0x3f, 0x2a, 0x90, 0xe2, 0xc3, 0xfa, 0x0c, 0x24, 0x5b, 0xa6, 0x77, 0x42, 0xe8, 0x86, 0x8b, 0x09, - 0x4d, 0x31, 0xc8, 0x31, 0x1e, 0x77, 0x5b, 0xa6, 0x4d, 0x42, 0x80, 0x8d, 0xe3, 0x63, 0xec, 0xd7, - 0x06, 0x32, 0xeb, 0xa4, 0xed, 0x77, 0x9a, 0x4d, 0x64, 0x7b, 0x2e, 0xf7, 0x2b, 0x1b, 0x2f, 0xb1, - 0x61, 0xfd, 0xe7, 0x60, 0xca, 0x6b, 0x9b, 0x56, 0x43, 0x90, 0x4d, 0x12, 0x59, 0x8d, 0x4f, 0xf8, - 0xc2, 0x79, 0x78, 0x8c, 0xf3, 0xd6, 0x91, 0x67, 0xd6, 0x4e, 0x50, 0x3d, 0x00, 0x8d, 0x90, 0x9d, - 0xc3, 0x47, 0x99, 0xc0, 0x3a, 0x9b, 0xe7, 0xd8, 0xdc, 0x1f, 0x28, 0x30, 0xc5, 0x6f, 0x54, 0xea, - 0xbe, 0xb1, 0xb6, 0x01, 0x4c, 0xdb, 0x76, 0xbc, 0xb0, 0xb9, 0xba, 0x43, 0xb9, 0x0b, 0xb7, 0x54, - 0xf0, 0x41, 0x46, 0x88, 0x60, 0xb6, 0x09, 0x10, 0xcc, 0xf4, 0x34, 0xdb, 0x3c, 0xa4, 0xd9, 0xce, - 0x3d, 0x79, 0xfc, 0x43, 0x6f, 0x6d, 0x81, 0x0e, 0xe1, 0x3b, 0x1a, 0xfd, 0x1c, 0x0c, 0x1f, 0xa2, - 0x63, 0xcb, 0x66, 0xfb, 0x89, 0xf4, 0x80, 0xef, 0x52, 0x26, 0xfd, 0x5d, 0xca, 0xe2, 0xcb, 0x30, - 0x5d, 0x73, 0x9a, 0xb2, 0xba, 0x45, 0x4d, 0xba, 0xbd, 0x76, 0x5f, 0x54, 0x7e, 0x1e, 0x82, 0x16, - 0xf3, 0xd7, 0x12, 0xea, 0x9d, 0xdd, 0xe2, 0x6f, 0x26, 0x66, 0xef, 0x50, 0xdc, 0x2e, 0xbf, 0x4c, - 0x03, 0x1d, 0x35, 0x50, 0x0d, 0xab, 0x0e, 0x7f, 0x74, 0x19, 0x9e, 0x3d, 0xb6, 0xbc, 0x93, 0xce, - 0xe1, 0x52, 0xcd, 0x69, 0x5e, 0x39, 0x76, 0x8e, 0x9d, 0xe0, 0x71, 0x17, 0x3e, 0x22, 0x07, 0xe4, - 0x13, 0x7b, 0xe4, 0x35, 0xe6, 0x8f, 0xce, 0xc6, 0x3e, 0x1f, 0xcb, 0x57, 0x60, 0x9a, 0x09, 0x57, - 0xc9, 0x9e, 0x3b, 0xbd, 0x35, 0xd0, 0xfb, 0xee, 0xbb, 0x64, 0x7f, 0xfb, 0x7b, 0x64, 0xad, 0x36, - 0xa6, 0x18, 0x14, 0xcf, 0xd1, 0x1b, 0x88, 0xbc, 0x01, 0x8f, 0x08, 0x7c, 0x34, 0x2f, 0x51, 0x3b, - 0x86, 0xf1, 0xdb, 0x8c, 0x71, 0x3a, 0xc4, 0xb8, 0xc7, 0xa0, 0xf9, 0x12, 0x8c, 0x9f, 0x85, 0xeb, - 0xdf, 0x31, 0xae, 0x0c, 0x0a, 0x93, 0xdc, 0x81, 0x49, 0x42, 0x52, 0xeb, 0xb8, 0x9e, 0xd3, 0x24, - 0x45, 0xaf, 0x3f, 0xcd, 0xbf, 0xff, 0x1e, 0x4d, 0x94, 0x09, 0x0c, 0x2b, 0xf9, 0xa8, 0x7c, 0x1e, - 0xc8, 0x63, 0x86, 0x3a, 0xaa, 0x35, 0x62, 0x18, 0xee, 0x33, 0x45, 0x7c, 0xf9, 0xfc, 0xa7, 0xe0, - 0x1c, 0xfe, 0x4c, 0x6a, 0x52, 0x58, 0x93, 0xf8, 0x5d, 0xa6, 0xec, 0x1f, 0x7c, 0x96, 0xe6, 0xe2, - 0xb4, 0x4f, 0x10, 0xd2, 0x29, 0xe4, 0xc5, 0x63, 0xe4, 0x79, 0xa8, 0xed, 0x56, 0xcd, 0x46, 0x94, - 0x7a, 0xa1, 0xdb, 0xf4, 0xec, 0xaf, 0xfe, 0x40, 0xf4, 0xe2, 0x1d, 0x8a, 0x2c, 0x34, 0x1a, 0xf9, - 0x03, 0x78, 0x34, 0x22, 0x2a, 0x06, 0xe0, 0xfc, 0x02, 0xe3, 0x3c, 0xd7, 0x15, 0x19, 0x98, 0x76, - 0x17, 0xf8, 0xb8, 0xef, 0xcb, 0x01, 0x38, 0xff, 0x21, 0xe3, 0xd4, 0x19, 0x96, 0xbb, 0x14, 0x33, - 0xde, 0x85, 0xa9, 0xd7, 0x50, 0xfb, 0xd0, 0x71, 0xd9, 0xd6, 0xc8, 0x00, 0x74, 0x5f, 0x64, 0x74, - 0x93, 0x0c, 0x48, 0xf6, 0x4a, 0x30, 0xd7, 0x2d, 0x48, 0x1d, 0x99, 0x35, 0x34, 0x00, 0xc5, 0x97, - 0x18, 0xc5, 0x28, 0x96, 0xc7, 0xd0, 0x02, 0x64, 0x8e, 0x1d, 0xb6, 0x2c, 0xc5, 0xc3, 0xbf, 0xcc, - 0xe0, 0x69, 0x8e, 0x61, 0x14, 0x2d, 0xa7, 0xd5, 0x69, 0xe0, 0x35, 0x2b, 0x9e, 0xe2, 0x2b, 0x9c, - 0x82, 0x63, 0x18, 0xc5, 0x19, 0xcc, 0xfa, 0x16, 0xa7, 0x70, 0x43, 0xf6, 0x7c, 0x01, 0xd2, 0x8e, - 0xdd, 0x38, 0x75, 0xec, 0x41, 0x94, 0xf8, 0x2a, 0x63, 0x00, 0x06, 0xc1, 0x04, 0xb7, 0x61, 0x6c, - 0x50, 0x47, 0xfc, 0xfa, 0x0f, 0x78, 0x7a, 0x70, 0x0f, 0xdc, 0x81, 0x49, 0x5e, 0xa0, 0x2c, 0xc7, - 0x1e, 0x80, 0xe2, 0x1f, 0x33, 0x8a, 0x89, 0x10, 0x8c, 0x5d, 0x86, 0x87, 0x5c, 0xef, 0x18, 0x0d, - 0x42, 0xf2, 0x35, 0x7e, 0x19, 0x0c, 0xc2, 0x4c, 0x79, 0x88, 0xec, 0xda, 0xc9, 0x60, 0x0c, 0x5f, - 0xe7, 0xa6, 0xe4, 0x18, 0x4c, 0x51, 0x82, 0xf1, 0xa6, 0xd9, 0x76, 0x4f, 0xcc, 0xc6, 0x40, 0xee, - 0xf8, 0x0d, 0xc6, 0x91, 0xf1, 0x41, 0xcc, 0x22, 0x1d, 0xfb, 0x2c, 0x34, 0xbf, 0xc9, 0x2d, 0x12, - 0x82, 0xb1, 0xd4, 0x73, 0x3d, 0xb2, 0x01, 0x75, 0x16, 0xb6, 0xdf, 0xe2, 0xa9, 0x47, 0xb1, 0xdb, - 0x61, 0xc6, 0xdb, 0x30, 0xe6, 0x5a, 0x9f, 0x19, 0x88, 0xe6, 0x9f, 0x70, 0x4f, 0x13, 0x00, 0x06, - 0xdf, 0x83, 0xc7, 0x22, 0x97, 0x89, 0x01, 0xc8, 0xfe, 0x29, 0x23, 0x9b, 0x89, 0x58, 0x2a, 0x58, - 0x49, 0x38, 0x2b, 0xe5, 0x3f, 0xe3, 0x25, 0x01, 0x49, 0x5c, 0xbb, 0xf8, 0x46, 0xc1, 0x35, 0x8f, - 0xce, 0x66, 0xb5, 0x7f, 0xce, 0xad, 0x46, 0xb1, 0x82, 0xd5, 0xf6, 0x61, 0x86, 0x31, 0x9e, 0xcd, - 0xaf, 0xdf, 0xe0, 0x85, 0x95, 0xa2, 0x0f, 0x44, 0xef, 0x7e, 0x1a, 0x66, 0x7d, 0x73, 0xf2, 0x8e, - 0xd4, 0xad, 0x36, 0xcd, 0xd6, 0x00, 0xcc, 0xbf, 0xcd, 0x98, 0x79, 0xc5, 0xf7, 0x5b, 0x5a, 0x77, - 0xdb, 0x6c, 0x61, 0xf2, 0x97, 0x21, 0xcb, 0xc9, 0x3b, 0x76, 0x1b, 0xd5, 0x9c, 0x63, 0xdb, 0xfa, - 0x0c, 0xaa, 0x0f, 0x40, 0xfd, 0x4d, 0xc9, 0x55, 0x07, 0x21, 0x38, 0x66, 0xde, 0x04, 0xcd, 0xef, - 0x55, 0xaa, 0x56, 0xb3, 0xe5, 0xb4, 0xbd, 0x18, 0xc6, 0x7f, 0xc1, 0x3d, 0xe5, 0xe3, 0x36, 0x09, - 0x2c, 0x5f, 0x86, 0x09, 0x72, 0x38, 0x68, 0x48, 0xfe, 0x0e, 0x23, 0x1a, 0x0f, 0x50, 0xac, 0x70, - 0xd4, 0x9c, 0x66, 0xcb, 0x6c, 0x0f, 0x52, 0xff, 0xfe, 0x25, 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, - 0x77, 0xda, 0x42, 0x78, 0xb5, 0x1f, 0x80, 0xe1, 0x5b, 0xbc, 0x70, 0x70, 0x0c, 0xa3, 0xe0, 0x0d, - 0xc3, 0x00, 0x14, 0xff, 0x8a, 0x53, 0x70, 0x0c, 0xa6, 0xf8, 0x64, 0xb0, 0xd0, 0xb6, 0xd1, 0xb1, - 0xe5, 0x7a, 0x6d, 0xda, 0x07, 0xf7, 0xa7, 0xfa, 0xdd, 0x1f, 0x88, 0x4d, 0x98, 0x11, 0x82, 0xe6, - 0xef, 0xc2, 0xa4, 0xd4, 0x62, 0xe8, 0x71, 0xef, 0x2c, 0x64, 0xff, 0xd2, 0x8f, 0x58, 0x31, 0x12, - 0x3b, 0x8c, 0xfc, 0x16, 0xf6, 0xbb, 0xd8, 0x07, 0xc4, 0x93, 0x7d, 0xf6, 0x47, 0xbe, 0xeb, 0x85, - 0x36, 0x20, 0xbf, 0x01, 0xe3, 0x42, 0x0f, 0x10, 0x4f, 0xf5, 0x97, 0x19, 0x55, 0x26, 0xdc, 0x02, - 0xe4, 0xd7, 0x20, 0x89, 0xd7, 0xf3, 0x78, 0xf8, 0x5f, 0x61, 0x70, 0x22, 0x9e, 0x7f, 0x0e, 0x52, - 0x7c, 0x1d, 0x8f, 0x87, 0xfe, 0x12, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x6b, 0x78, 0x3c, 0xfc, 0xaf, - 0x72, 0x38, 0x87, 0x60, 0xf8, 0xe0, 0x26, 0x7c, 0xfb, 0xaf, 0x27, 0x59, 0x1d, 0xe6, 0xb6, 0xbb, - 0x0d, 0xa3, 0x6c, 0xf1, 0x8e, 0x47, 0xff, 0x32, 0x3b, 0x39, 0x47, 0xe4, 0x6f, 0xc0, 0xf0, 0x80, - 0x06, 0xff, 0x1b, 0x0c, 0x4a, 0xe5, 0xf3, 0x25, 0x48, 0x87, 0x16, 0xec, 0x78, 0xf8, 0xdf, 0x64, - 0xf0, 0x30, 0x0a, 0xab, 0xce, 0x16, 0xec, 0x78, 0x82, 0xbf, 0xc5, 0x55, 0x67, 0x08, 0x6c, 0x36, - 0xbe, 0x56, 0xc7, 0xa3, 0xff, 0x36, 0xb7, 0x3a, 0x87, 0xe4, 0x5f, 0x80, 0x31, 0xbf, 0xfe, 0xc6, - 0xe3, 0xff, 0x0e, 0xc3, 0x07, 0x18, 0x6c, 0x81, 0x50, 0xfd, 0x8f, 0xa7, 0xf8, 0xbb, 0xdc, 0x02, - 0x21, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x67, 0xfa, 0x15, 0x9e, 0x46, 0xd2, 0x92, 0x8e, 0xbd, - 0x49, 0xca, 0x60, 0x3c, 0xc5, 0xdf, 0xe3, 0xde, 0x24, 0xf2, 0x58, 0x0d, 0x79, 0x91, 0x8c, 0xe7, - 0xf8, 0x07, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0xef, 0x82, 0xde, 0xbd, 0x40, 0xc6, 0xf3, 0x7d, 0x9e, - 0xf1, 0x4d, 0x75, 0xad, 0x8f, 0xf9, 0x97, 0x60, 0x26, 0x7a, 0x71, 0x8c, 0x67, 0xfd, 0xd5, 0x1f, - 0x49, 0xb7, 0x33, 0xe1, 0xb5, 0x31, 0xbf, 0x1f, 0x54, 0xd9, 0xf0, 0xc2, 0x18, 0x4f, 0xfb, 0x85, - 0x1f, 0x89, 0x85, 0x36, 0xbc, 0x2e, 0xe6, 0x0b, 0x00, 0xc1, 0x9a, 0x14, 0xcf, 0xf5, 0x45, 0xc6, - 0x15, 0x02, 0xe1, 0xd4, 0x60, 0x4b, 0x52, 0x3c, 0xfe, 0x4b, 0x3c, 0x35, 0x18, 0x02, 0xa7, 0x06, - 0x5f, 0x8d, 0xe2, 0xd1, 0x5f, 0xe6, 0xa9, 0xc1, 0x21, 0xf9, 0xdb, 0x90, 0xb2, 0x3b, 0x8d, 0x06, - 0x8e, 0x2d, 0xbd, 0xff, 0x6b, 0x44, 0xd9, 0xff, 0xf1, 0x63, 0x06, 0xe6, 0x80, 0xfc, 0x1a, 0x0c, - 0xa3, 0xe6, 0x21, 0xaa, 0xc7, 0x21, 0xff, 0xe7, 0x8f, 0x79, 0x3d, 0xc1, 0xd2, 0xf9, 0x17, 0x00, - 0xe8, 0xcd, 0x34, 0x79, 0x4a, 0x14, 0x83, 0xfd, 0x5f, 0x3f, 0x66, 0x6f, 0x28, 0x04, 0x90, 0x80, - 0x80, 0xbe, 0xef, 0xd0, 0x9f, 0xe0, 0x07, 0x22, 0x01, 0xb9, 0x01, 0xbf, 0x05, 0xa3, 0xaf, 0xb8, - 0x8e, 0xed, 0x99, 0xc7, 0x71, 0xe8, 0xff, 0xcd, 0xd0, 0x5c, 0x1e, 0x1b, 0xac, 0xe9, 0xb4, 0x91, - 0x67, 0x1e, 0xbb, 0x71, 0xd8, 0xff, 0xc3, 0xb0, 0x3e, 0x00, 0x83, 0x6b, 0xa6, 0xeb, 0x0d, 0x72, - 0xdd, 0xff, 0x97, 0x83, 0x39, 0x00, 0x2b, 0x8d, 0x3f, 0xbf, 0x8a, 0x4e, 0xe3, 0xb0, 0x3f, 0xe4, - 0x4a, 0x33, 0xf9, 0xfc, 0x73, 0x30, 0x86, 0x3f, 0xd2, 0xb7, 0x76, 0x62, 0xc0, 0x7f, 0xc8, 0xc0, - 0x01, 0x02, 0x9f, 0xd9, 0xf5, 0xea, 0x9e, 0x15, 0x6f, 0xec, 0xff, 0xc7, 0x3c, 0xcd, 0xe5, 0xf3, - 0x05, 0x48, 0xbb, 0x5e, 0xbd, 0xde, 0x61, 0x1d, 0x4d, 0x0c, 0xfc, 0x8f, 0x7e, 0xec, 0xdf, 0xe4, - 0xfa, 0x98, 0xe2, 0xc5, 0xe8, 0xcd, 0x3a, 0xb8, 0xe3, 0xdc, 0x71, 0xe8, 0x36, 0x1d, 0x7c, 0xaf, - 0x01, 0x37, 0x7a, 0xee, 0xba, 0xe1, 0x45, 0xe4, 0x4a, 0xcd, 0x69, 0x1e, 0x3a, 0xee, 0x95, 0x43, - 0xc7, 0x3b, 0xb9, 0xe2, 0x9d, 0x20, 0x3c, 0xc6, 0xf6, 0xdf, 0x92, 0xf8, 0xf3, 0xec, 0xd9, 0x36, - 0xed, 0xc8, 0xf3, 0xd8, 0x8a, 0x85, 0xf5, 0xae, 0x90, 0x2d, 0x71, 0xfd, 0x3c, 0x8c, 0x90, 0x2b, - 0xb9, 0x4a, 0x1e, 0x3b, 0x29, 0xc5, 0xe4, 0xfd, 0x77, 0xe7, 0x87, 0x0c, 0x36, 0xe6, 0xcf, 0xae, - 0x90, 0x3d, 0xcb, 0x84, 0x30, 0xbb, 0xe2, 0xcf, 0x5e, 0xa3, 0xdb, 0x96, 0xc2, 0xec, 0x35, 0x7f, - 0x76, 0x95, 0x6c, 0x60, 0xaa, 0xc2, 0xec, 0xaa, 0x3f, 0xbb, 0x46, 0x36, 0xe9, 0xc7, 0x85, 0xd9, - 0x35, 0x7f, 0xf6, 0x3a, 0xd9, 0x9a, 0x4f, 0x0a, 0xb3, 0xd7, 0xfd, 0xd9, 0x1b, 0x64, 0x57, 0x7e, - 0x4a, 0x98, 0xbd, 0xe1, 0xcf, 0xde, 0x24, 0xbb, 0xf1, 0xba, 0x30, 0x7b, 0xd3, 0x9f, 0xbd, 0x45, - 0x5e, 0x31, 0x19, 0x15, 0x66, 0x6f, 0xe9, 0x73, 0x30, 0x4a, 0xaf, 0x7c, 0x99, 0x3c, 0xba, 0x9d, - 0x64, 0xd3, 0x7c, 0x30, 0x98, 0xbf, 0x4a, 0x5e, 0x27, 0x19, 0x11, 0xe7, 0xaf, 0x06, 0xf3, 0x2b, - 0xe4, 0xc5, 0x6a, 0x4d, 0x9c, 0x5f, 0x09, 0xe6, 0xaf, 0x65, 0xc7, 0xc9, 0x2b, 0x35, 0xc2, 0xfc, - 0xb5, 0x60, 0x7e, 0x35, 0x3b, 0x81, 0x83, 0x59, 0x9c, 0x5f, 0x0d, 0xe6, 0xd7, 0xb2, 0x93, 0x17, - 0x94, 0x85, 0x8c, 0x38, 0xbf, 0x96, 0xfb, 0x45, 0xe2, 0x5e, 0x3b, 0x70, 0xef, 0x8c, 0xe8, 0x5e, - 0xdf, 0xb1, 0x33, 0xa2, 0x63, 0x7d, 0x97, 0xce, 0x88, 0x2e, 0xf5, 0x9d, 0x39, 0x23, 0x3a, 0xd3, - 0x77, 0xe3, 0x8c, 0xe8, 0x46, 0xdf, 0x81, 0x33, 0xa2, 0x03, 0x7d, 0xd7, 0xcd, 0x88, 0xae, 0xf3, - 0x9d, 0x36, 0x23, 0x3a, 0xcd, 0x77, 0xd7, 0x8c, 0xe8, 0x2e, 0xdf, 0x51, 0x59, 0xc9, 0x51, 0x81, - 0x8b, 0xb2, 0x92, 0x8b, 0x02, 0xe7, 0x64, 0x25, 0xe7, 0x04, 0x6e, 0xc9, 0x4a, 0x6e, 0x09, 0x1c, - 0x92, 0x95, 0x1c, 0x12, 0xb8, 0x22, 0x2b, 0xb9, 0x22, 0x70, 0x02, 0xcb, 0x31, 0x03, 0xb5, 0x22, - 0x72, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, - 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9f, 0x63, - 0x6a, 0x4c, 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, - 0xa9, 0x3d, 0x73, 0x2c, 0x70, 0xef, 0x8c, 0xe8, 0xde, 0xc8, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, - 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, - 0xed, 0x91, 0x63, 0x6a, 0xaf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, - 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0xe1, 0x1c, 0xfb, 0xd7, 0x2a, 0xe8, 0x34, 0xc7, - 0x76, 0xc9, 0xcb, 0x3f, 0xcc, 0x15, 0x73, 0x52, 0xa6, 0x8d, 0x60, 0xd7, 0x69, 0x81, 0x4b, 0xe6, - 0xa4, 0x5c, 0x13, 0xe7, 0x57, 0xfc, 0x79, 0x9e, 0x6d, 0xe2, 0xfc, 0x35, 0x7f, 0x9e, 0xe7, 0x9b, - 0x38, 0xbf, 0xea, 0xcf, 0xf3, 0x8c, 0x13, 0xe7, 0xd7, 0xfc, 0x79, 0x9e, 0x73, 0xe2, 0xfc, 0x75, - 0x7f, 0x9e, 0x67, 0x9d, 0x38, 0x7f, 0xc3, 0x9f, 0xe7, 0x79, 0x27, 0xce, 0xdf, 0xf4, 0xe7, 0x79, - 0xe6, 0x89, 0xf3, 0xb7, 0xf4, 0x0b, 0x72, 0xee, 0x71, 0x01, 0xdf, 0xb5, 0x17, 0xe4, 0xec, 0x93, - 0x24, 0xae, 0x06, 0x12, 0x3c, 0xff, 0x24, 0x89, 0x95, 0x40, 0x82, 0x67, 0xa0, 0x24, 0x71, 0x2d, - 0xf7, 0x39, 0xe2, 0x3e, 0x5b, 0x76, 0xdf, 0xac, 0xe4, 0xbe, 0x44, 0xc8, 0x75, 0xb3, 0x92, 0xeb, - 0x12, 0x21, 0xb7, 0xcd, 0x4a, 0x6e, 0x4b, 0x84, 0x5c, 0x36, 0x2b, 0xb9, 0x2c, 0x11, 0x72, 0xd7, - 0xac, 0xe4, 0xae, 0x44, 0xc8, 0x55, 0xb3, 0x92, 0xab, 0x12, 0x21, 0x37, 0xcd, 0x4a, 0x6e, 0x4a, - 0x84, 0x5c, 0x34, 0x2b, 0xb9, 0x28, 0x11, 0x72, 0xcf, 0xac, 0xe4, 0x9e, 0x44, 0xc8, 0x35, 0xe7, - 0x65, 0xd7, 0x24, 0xc2, 0x6e, 0x39, 0x2f, 0xbb, 0x25, 0x11, 0x76, 0xc9, 0x79, 0xd9, 0x25, 0x89, - 0xb0, 0x3b, 0xce, 0xcb, 0xee, 0x48, 0x84, 0x5d, 0xf1, 0xa7, 0x09, 0xde, 0x11, 0xee, 0x79, 0xed, - 0x4e, 0xcd, 0xfb, 0x40, 0x1d, 0xe1, 0xb2, 0xd0, 0x3e, 0xa4, 0x57, 0xf4, 0x25, 0xd2, 0xb0, 0x86, - 0x3b, 0x4e, 0x69, 0x05, 0x5b, 0x16, 0x1a, 0x8b, 0x10, 0xc2, 0x8e, 0x46, 0xac, 0x7e, 0xa0, 0xde, - 0x70, 0x59, 0x68, 0x33, 0xe2, 0xf5, 0xbb, 0xf9, 0x91, 0x77, 0x6c, 0x6f, 0x27, 0x78, 0xc7, 0xc6, - 0xcc, 0x7f, 0xd6, 0x8e, 0x6d, 0x31, 0xde, 0xe4, 0xbe, 0xb1, 0x17, 0xe3, 0x8d, 0xdd, 0xb5, 0xea, - 0x0c, 0xda, 0xc1, 0x2d, 0xc6, 0x9b, 0xd6, 0x37, 0xea, 0x87, 0xdb, 0x6f, 0xb1, 0x08, 0x36, 0x50, - 0x2b, 0x22, 0x82, 0xcf, 0xda, 0x6f, 0x2d, 0x0b, 0xa5, 0xe4, 0xac, 0x11, 0xac, 0x9e, 0x39, 0x82, - 0xcf, 0xda, 0x79, 0x2d, 0x0b, 0xe5, 0xe5, 0xcc, 0x11, 0xfc, 0x11, 0xf4, 0x43, 0x2c, 0x82, 0x03, - 0xf3, 0x9f, 0xb5, 0x1f, 0x5a, 0x8c, 0x37, 0x79, 0x64, 0x04, 0xab, 0x67, 0x88, 0xe0, 0x41, 0xfa, - 0xa3, 0xc5, 0x78, 0xd3, 0x46, 0x47, 0xf0, 0x07, 0xee, 0x66, 0xbe, 0xa2, 0xc0, 0x54, 0xc5, 0xaa, - 0x97, 0x9b, 0x87, 0xa8, 0x5e, 0x47, 0x75, 0x66, 0xc7, 0x65, 0xa1, 0x12, 0xf4, 0x70, 0xf5, 0x3b, - 0xef, 0xce, 0x07, 0x16, 0x5e, 0x83, 0x14, 0xb5, 0xe9, 0xf2, 0x72, 0xf6, 0xbe, 0x12, 0x53, 0xe1, - 0x7c, 0x51, 0xfd, 0x22, 0x87, 0x5d, 0x5d, 0xce, 0xfe, 0x27, 0x25, 0x54, 0xe5, 0xfc, 0xe1, 0xdc, - 0xaf, 0x10, 0x0d, 0xed, 0x0f, 0xac, 0xe1, 0x95, 0x81, 0x34, 0x0c, 0xe9, 0xf6, 0x78, 0x97, 0x6e, - 0x21, 0xad, 0x3a, 0x30, 0x59, 0xb1, 0xea, 0x15, 0xf2, 0x95, 0xde, 0x41, 0x54, 0xa2, 0x32, 0x52, - 0x3d, 0x58, 0x16, 0xc2, 0x32, 0x8c, 0xf0, 0x43, 0x5a, 0xac, 0x11, 0x39, 0x0b, 0x9f, 0xd6, 0x16, - 0x4e, 0xbb, 0xd8, 0xeb, 0xb4, 0x41, 0x65, 0xf7, 0x4f, 0xb8, 0xd8, 0xeb, 0x84, 0x41, 0x0e, 0xf9, - 0xa7, 0x7a, 0x83, 0x2f, 0xce, 0xf4, 0x2d, 0x1c, 0xfd, 0x3c, 0x24, 0x36, 0xe9, 0x1b, 0xc2, 0x99, - 0x62, 0x06, 0x2b, 0xf5, 0x9d, 0x77, 0xe7, 0x93, 0x07, 0x1d, 0xab, 0x6e, 0x24, 0x36, 0xeb, 0xfa, - 0x5d, 0x18, 0xfe, 0x14, 0xfb, 0x62, 0x1c, 0x16, 0x58, 0x65, 0x02, 0x1f, 0x8b, 0xd9, 0x62, 0x22, - 0xd4, 0x4b, 0x07, 0x96, 0xed, 0x5d, 0x5d, 0xb9, 0x69, 0x50, 0x8a, 0xdc, 0x9f, 0x07, 0xa0, 0xe7, - 0x5c, 0x37, 0xdd, 0x13, 0xbd, 0xc2, 0x99, 0xe9, 0xa9, 0x6f, 0x7e, 0xe7, 0xdd, 0xf9, 0xd5, 0x41, - 0x58, 0x9f, 0xad, 0x9b, 0xee, 0xc9, 0xb3, 0xde, 0x69, 0x0b, 0x2d, 0x15, 0x4f, 0x3d, 0xe4, 0x72, - 0xf6, 0x16, 0x5f, 0xf5, 0xd8, 0x75, 0x65, 0x43, 0xd7, 0x95, 0x12, 0xae, 0x69, 0x43, 0xbc, 0xa6, - 0xe5, 0x87, 0xbd, 0x9e, 0x37, 0xf8, 0x22, 0x21, 0x59, 0x52, 0x8d, 0xb3, 0xa4, 0xfa, 0x41, 0x2d, - 0xd9, 0xe2, 0xf5, 0x51, 0xba, 0x56, 0xb5, 0xdf, 0xb5, 0xaa, 0x1f, 0xe4, 0x5a, 0xff, 0x98, 0x66, - 0xab, 0x9f, 0x4f, 0x07, 0x36, 0x7d, 0x3b, 0xf1, 0xcf, 0xd6, 0x5e, 0xd0, 0x87, 0xda, 0x05, 0xe4, - 0x93, 0xf7, 0xdf, 0x9a, 0x57, 0x72, 0x5f, 0x49, 0xf0, 0x2b, 0xa7, 0x89, 0xf4, 0x70, 0x57, 0xfe, - 0x67, 0xa5, 0xa7, 0xfa, 0x28, 0x2c, 0xf4, 0x65, 0x05, 0x66, 0xba, 0x2a, 0x39, 0x35, 0xd3, 0x87, - 0x5b, 0xce, 0xed, 0xb3, 0x96, 0x73, 0xa6, 0xe0, 0xef, 0x28, 0x70, 0x4e, 0x2a, 0xaf, 0x54, 0xbd, - 0x2b, 0x92, 0x7a, 0x8f, 0x76, 0x9f, 0x89, 0x08, 0x86, 0xb4, 0x0b, 0xbb, 0x57, 0x02, 0x84, 0x98, - 0x7d, 0xbf, 0xaf, 0x4a, 0x7e, 0x3f, 0xef, 0x03, 0x22, 0xcc, 0xc5, 0x23, 0x80, 0xa9, 0xed, 0x40, - 0x72, 0xbf, 0x8d, 0x90, 0x3e, 0x07, 0x89, 0x9d, 0x36, 0xd3, 0x70, 0x82, 0xe2, 0x77, 0xda, 0xc5, - 0xb6, 0x69, 0xd7, 0x4e, 0x8c, 0xc4, 0x4e, 0x5b, 0xbf, 0x08, 0x6a, 0x81, 0xfd, 0xf4, 0x40, 0x7a, - 0x65, 0x92, 0x0a, 0x14, 0xec, 0x3a, 0x93, 0xc0, 0x73, 0xfa, 0x1c, 0x24, 0xb7, 0x90, 0x79, 0xc4, - 0x94, 0x00, 0x2a, 0x83, 0x47, 0x0c, 0x32, 0xce, 0x4e, 0xf8, 0x32, 0xa4, 0x38, 0xb1, 0x7e, 0x09, - 0x23, 0x8e, 0x3c, 0x76, 0x5a, 0x86, 0xc0, 0xea, 0xb0, 0x95, 0x8b, 0xcc, 0xea, 0x97, 0x61, 0xd8, - 0xb0, 0x8e, 0x4f, 0x3c, 0x76, 0xf2, 0x6e, 0x31, 0x3a, 0x9d, 0xbb, 0x07, 0x63, 0xbe, 0x46, 0x1f, - 0x32, 0xf5, 0x3a, 0xbd, 0x34, 0x7d, 0x36, 0xbc, 0x9e, 0xf0, 0x7d, 0x4b, 0x3a, 0xa4, 0x5f, 0x80, - 0xd4, 0x9e, 0xd7, 0x0e, 0x8a, 0x3e, 0xef, 0x48, 0xfd, 0xd1, 0xdc, 0x2f, 0x2a, 0x90, 0x5a, 0x47, - 0xa8, 0x45, 0x0c, 0xfe, 0x14, 0x24, 0xd7, 0x9d, 0xd7, 0x6d, 0xa6, 0xe0, 0x14, 0xb3, 0x28, 0x9e, - 0x66, 0x36, 0x25, 0xd3, 0xfa, 0x53, 0x61, 0xbb, 0x4f, 0xfb, 0x76, 0x0f, 0xc9, 0x11, 0xdb, 0xe7, - 0x04, 0xdb, 0x33, 0x07, 0x62, 0xa1, 0x2e, 0xfb, 0xdf, 0x80, 0x74, 0xe8, 0x2c, 0xfa, 0x02, 0x53, - 0x23, 0x21, 0x03, 0xc3, 0xb6, 0xc2, 0x12, 0x39, 0x04, 0xe3, 0xc2, 0x89, 0x31, 0x34, 0x64, 0xe2, - 0x1e, 0x50, 0x62, 0xe6, 0x45, 0xd1, 0xcc, 0xd1, 0xa2, 0xcc, 0xd4, 0xcb, 0xd4, 0x46, 0xc4, 0xdc, - 0x97, 0x68, 0x70, 0xf6, 0x76, 0x22, 0xfe, 0x9c, 0x1b, 0x06, 0xb5, 0x62, 0x35, 0x72, 0xcf, 0x01, - 0xd0, 0x94, 0x2f, 0xdb, 0x9d, 0xa6, 0x94, 0x75, 0x13, 0xdc, 0xc0, 0xfb, 0x27, 0x68, 0x1f, 0xb9, - 0x44, 0x44, 0xec, 0xa7, 0x70, 0x81, 0x01, 0x9a, 0x62, 0x04, 0xff, 0x4c, 0x2c, 0x3e, 0xb2, 0x13, - 0xc3, 0xa2, 0x59, 0x2a, 0x7a, 0x0f, 0x79, 0x05, 0xdb, 0xf1, 0x4e, 0x50, 0x5b, 0x42, 0xac, 0xe8, - 0xd7, 0x84, 0x84, 0x9d, 0x58, 0x79, 0xdc, 0x47, 0xf4, 0x04, 0x5d, 0xcb, 0x7d, 0x83, 0x28, 0x88, - 0x5b, 0x81, 0xae, 0x0b, 0x54, 0x07, 0xb8, 0x40, 0xfd, 0xba, 0xd0, 0xbf, 0xf5, 0x51, 0x53, 0xba, - 0xb5, 0xbc, 0x25, 0xdc, 0xe7, 0xf4, 0x57, 0x56, 0xbc, 0xc7, 0xe4, 0x36, 0xe5, 0x2a, 0x3f, 0x13, - 0xab, 0x72, 0x8f, 0xee, 0xf6, 0xac, 0x36, 0x55, 0x07, 0xb5, 0xe9, 0xef, 0xf9, 0x1d, 0x07, 0xfd, - 0x11, 0x07, 0xf2, 0x9b, 0x21, 0xfa, 0xc7, 0x62, 0x7d, 0x9f, 0x57, 0x4a, 0xbe, 0xaa, 0xab, 0x83, - 0xba, 0x3f, 0x9f, 0x28, 0x16, 0x7d, 0x75, 0x6f, 0x9c, 0x21, 0x04, 0xf2, 0x89, 0x52, 0xc9, 0x2f, - 0xdb, 0xa9, 0xcf, 0xbd, 0x35, 0xaf, 0x7c, 0xfd, 0xad, 0xf9, 0xa1, 0xdc, 0x6f, 0x28, 0x30, 0xc5, - 0x24, 0x43, 0x81, 0xfb, 0xac, 0xa4, 0xfc, 0x23, 0xbc, 0x66, 0x44, 0x59, 0xe0, 0x27, 0x16, 0xbc, - 0xdf, 0x56, 0x20, 0xdb, 0xa5, 0x2b, 0xb7, 0xf7, 0xf2, 0x40, 0x2a, 0xe7, 0x95, 0xf2, 0x4f, 0xdf, - 0xe6, 0xf7, 0x60, 0x78, 0xdf, 0x6a, 0xa2, 0x36, 0x5e, 0x09, 0xf0, 0x07, 0xaa, 0x32, 0x7f, 0x98, - 0x43, 0x87, 0xf8, 0x1c, 0x55, 0x4e, 0x98, 0x5b, 0xd1, 0xb3, 0x90, 0x5c, 0x37, 0x3d, 0x93, 0x68, - 0x90, 0xf1, 0xeb, 0xab, 0xe9, 0x99, 0xb9, 0x6b, 0x90, 0xd9, 0x3e, 0x25, 0xaf, 0xd0, 0xd4, 0xc9, - 0xeb, 0x21, 0x62, 0xf7, 0xc7, 0xfb, 0xd5, 0xab, 0x8b, 0xc3, 0xa9, 0xba, 0x76, 0x5f, 0xc9, 0x27, - 0x89, 0x3e, 0xaf, 0xc1, 0xc4, 0x0e, 0x56, 0x9b, 0xe0, 0x08, 0xec, 0x02, 0x28, 0xdb, 0x62, 0x23, - 0x14, 0x66, 0x35, 0x94, 0x6d, 0xa9, 0x7d, 0x54, 0x7d, 0xf3, 0x48, 0x6d, 0x9b, 0xea, 0xb7, 0x6d, - 0x8b, 0xc9, 0xd4, 0x84, 0x36, 0xb5, 0x98, 0x4c, 0x81, 0x36, 0xce, 0xce, 0xfb, 0x1f, 0x54, 0xd0, - 0x68, 0xab, 0xb3, 0x8e, 0x8e, 0x2c, 0xdb, 0xf2, 0xba, 0xfb, 0x55, 0x5f, 0x63, 0xfd, 0x05, 0x18, - 0xc3, 0x26, 0xdd, 0x60, 0x3f, 0xbd, 0x85, 0x4d, 0x7f, 0x91, 0xb5, 0x28, 0x12, 0x05, 0x1b, 0x20, - 0xa1, 0x13, 0x60, 0xf4, 0x0d, 0x50, 0x2b, 0x95, 0x6d, 0xb6, 0xb8, 0xad, 0xf6, 0x85, 0xb2, 0x37, - 0x70, 0xd8, 0x11, 0x1b, 0x73, 0x8f, 0x0d, 0x4c, 0xa0, 0xaf, 0x42, 0xa2, 0xb2, 0xcd, 0x1a, 0xde, - 0x4b, 0x83, 0xd0, 0x18, 0x89, 0xca, 0xf6, 0xec, 0xbf, 0x51, 0x60, 0x5c, 0x18, 0xd5, 0x73, 0x90, - 0xa1, 0x03, 0xa1, 0xcb, 0x1d, 0x31, 0x84, 0x31, 0xae, 0x73, 0xe2, 0x03, 0xea, 0x3c, 0x5b, 0x80, - 0x49, 0x69, 0x5c, 0x5f, 0x02, 0x3d, 0x3c, 0xc4, 0x94, 0xa0, 0x3f, 0x5b, 0x14, 0x31, 0x93, 0x7b, - 0x02, 0x20, 0xb0, 0xab, 0xff, 0x6b, 0x3b, 0x95, 0xf2, 0xde, 0x7e, 0x79, 0x5d, 0x53, 0x72, 0xdf, - 0x52, 0x20, 0xcd, 0xda, 0xd6, 0x9a, 0xd3, 0x42, 0x7a, 0x11, 0x94, 0x02, 0x8b, 0xa0, 0x87, 0xd3, - 0x5b, 0x29, 0xe8, 0x57, 0x40, 0x29, 0x0e, 0xee, 0x6a, 0xa5, 0xa8, 0xaf, 0x80, 0x52, 0x62, 0x0e, - 0x1e, 0xcc, 0x33, 0x4a, 0x29, 0xf7, 0x87, 0x2a, 0x4c, 0x87, 0xdb, 0x68, 0x5e, 0x4f, 0x2e, 0x8a, - 0xf7, 0x4d, 0xf9, 0xb1, 0xab, 0x2b, 0xd7, 0x56, 0x97, 0xf0, 0x3f, 0x7e, 0x48, 0x5e, 0x14, 0x6f, - 0xa1, 0xba, 0x45, 0xba, 0x5e, 0x13, 0xc9, 0x27, 0x43, 0xb3, 0x5d, 0xaf, 0x89, 0x08, 0xb3, 0x5d, - 0xaf, 0x89, 0x08, 0xb3, 0x5d, 0xaf, 0x89, 0x08, 0xb3, 0x5d, 0x8f, 0x02, 0x84, 0xd9, 0xae, 0xd7, - 0x44, 0x84, 0xd9, 0xae, 0xd7, 0x44, 0x84, 0xd9, 0xee, 0xd7, 0x44, 0xd8, 0x74, 0xcf, 0xd7, 0x44, - 0xc4, 0xf9, 0xee, 0xd7, 0x44, 0xc4, 0xf9, 0xee, 0xd7, 0x44, 0xf2, 0x49, 0xaf, 0xdd, 0x41, 0xbd, - 0x1f, 0x3a, 0x88, 0xf8, 0x7e, 0xf7, 0x80, 0x41, 0x01, 0xde, 0x81, 0x49, 0xba, 0x1f, 0x51, 0x72, - 0x6c, 0xcf, 0xb4, 0x6c, 0xd4, 0xd6, 0x3f, 0x0e, 0x19, 0x3a, 0x44, 0xef, 0x72, 0xa2, 0xee, 0x02, - 0xe9, 0x3c, 0x2b, 0xb7, 0x82, 0x74, 0xee, 0x4f, 0x93, 0x30, 0x43, 0x07, 0x2a, 0x66, 0x13, 0x09, - 0x2f, 0x19, 0x5d, 0x96, 0x1e, 0x29, 0x4d, 0x60, 0xf8, 0x83, 0x77, 0xe7, 0xe9, 0x68, 0xc1, 0x0f, - 0xa6, 0xcb, 0xd2, 0xc3, 0x25, 0x51, 0x2e, 0x58, 0x7f, 0x2e, 0x4b, 0x2f, 0x1e, 0x89, 0x72, 0xfe, - 0x72, 0xe3, 0xcb, 0xf1, 0x57, 0x90, 0x44, 0xb9, 0x75, 0x3f, 0xca, 0x2e, 0x4b, 0x2f, 0x23, 0x89, - 0x72, 0x65, 0x3f, 0xde, 0x2e, 0x4b, 0x8f, 0x9e, 0x44, 0xb9, 0x0d, 0x3f, 0xf2, 0x2e, 0x4b, 0x0f, - 0xa1, 0x44, 0xb9, 0x3b, 0x7e, 0x0c, 0x5e, 0x96, 0x5e, 0x55, 0x12, 0xe5, 0x5e, 0xf4, 0xa3, 0xf1, - 0xb2, 0xf4, 0xd2, 0x92, 0x28, 0xb7, 0xe9, 0xc7, 0xe5, 0x82, 0xfc, 0xfa, 0x92, 0x28, 0x78, 0x37, - 0x88, 0xd0, 0x05, 0xf9, 0x45, 0x26, 0x51, 0xf2, 0x13, 0x41, 0xac, 0x2e, 0xc8, 0xaf, 0x34, 0x89, - 0x92, 0x5b, 0x41, 0xd4, 0x2e, 0xc8, 0x8f, 0xca, 0x44, 0xc9, 0xed, 0x20, 0x7e, 0x17, 0xe4, 0x87, - 0x66, 0xa2, 0x64, 0x25, 0x88, 0xe4, 0x05, 0xf9, 0xf1, 0x99, 0x28, 0xb9, 0x13, 0xec, 0xa1, 0xff, - 0xbe, 0x14, 0x7e, 0xa1, 0x97, 0xa0, 0x72, 0x52, 0xf8, 0x41, 0x44, 0xe8, 0xe5, 0xa4, 0xd0, 0x83, - 0x88, 0xb0, 0xcb, 0x49, 0x61, 0x07, 0x11, 0x21, 0x97, 0x93, 0x42, 0x0e, 0x22, 0xc2, 0x2d, 0x27, - 0x85, 0x1b, 0x44, 0x84, 0x5a, 0x4e, 0x0a, 0x35, 0x88, 0x08, 0xb3, 0x9c, 0x14, 0x66, 0x10, 0x11, - 0x62, 0x39, 0x29, 0xc4, 0x20, 0x22, 0xbc, 0x72, 0x52, 0x78, 0x41, 0x44, 0x68, 0x5d, 0x92, 0x43, - 0x0b, 0xa2, 0xc2, 0xea, 0x92, 0x1c, 0x56, 0x10, 0x15, 0x52, 0x4f, 0xca, 0x21, 0x35, 0xf6, 0xe0, - 0xdd, 0xf9, 0x61, 0x3c, 0x14, 0x8a, 0xa6, 0x4b, 0x72, 0x34, 0x41, 0x54, 0x24, 0x5d, 0x92, 0x23, - 0x09, 0xa2, 0xa2, 0xe8, 0x92, 0x1c, 0x45, 0x10, 0x15, 0x41, 0x6f, 0xcb, 0x11, 0x14, 0xbc, 0xe2, - 0x93, 0x93, 0x9e, 0x28, 0xc6, 0x45, 0x90, 0x3a, 0x40, 0x04, 0xa9, 0x03, 0x44, 0x90, 0x3a, 0x40, - 0x04, 0xa9, 0x03, 0x44, 0x90, 0x3a, 0x40, 0x04, 0xa9, 0x03, 0x44, 0x90, 0x3a, 0x40, 0x04, 0xa9, - 0x83, 0x44, 0x90, 0x3a, 0x50, 0x04, 0xa9, 0xbd, 0x22, 0xe8, 0x92, 0xfc, 0xc2, 0x03, 0x44, 0x15, - 0xa4, 0x4b, 0xf2, 0x93, 0xcf, 0xf8, 0x10, 0x52, 0x07, 0x0a, 0x21, 0xb5, 0x57, 0x08, 0xfd, 0xbe, - 0x0a, 0xd3, 0x42, 0x08, 0xb1, 0xc7, 0x43, 0x1f, 0x56, 0x05, 0xba, 0x3e, 0xc0, 0xfb, 0x15, 0x51, - 0x31, 0x75, 0x7d, 0x80, 0x67, 0xd4, 0xfd, 0xe2, 0xac, 0xbb, 0x0a, 0x95, 0x07, 0xa8, 0x42, 0x1b, - 0x7e, 0x0c, 0x5d, 0x1f, 0xe0, 0xbd, 0x8b, 0xee, 0xd8, 0xbb, 0xd9, 0xaf, 0x08, 0xbc, 0x38, 0x50, - 0x11, 0xd8, 0x1c, 0xa8, 0x08, 0xdc, 0x0d, 0x3c, 0xf8, 0x4b, 0x09, 0x38, 0x17, 0x78, 0x90, 0x7e, - 0x22, 0x3f, 0x91, 0x94, 0x0b, 0x3d, 0xa1, 0xd2, 0xf9, 0x53, 0x9b, 0x90, 0x1b, 0x13, 0x9b, 0x75, - 0x7d, 0x57, 0x7c, 0x56, 0x95, 0x3f, 0xeb, 0xf3, 0x9b, 0x90, 0xc7, 0xd9, 0x5e, 0xe8, 0x25, 0x50, - 0x37, 0xeb, 0x2e, 0xa9, 0x16, 0x51, 0xa7, 0x2d, 0x19, 0x78, 0x5a, 0x37, 0x60, 0x84, 0x88, 0xbb, - 0xc4, 0xbd, 0x1f, 0xe4, 0xc4, 0xeb, 0x06, 0x63, 0xca, 0xbd, 0xad, 0xc0, 0x05, 0x21, 0x94, 0x3f, - 0x9c, 0x27, 0x06, 0xb7, 0x07, 0x7a, 0x62, 0x20, 0x24, 0x48, 0xf0, 0xf4, 0xe0, 0xe9, 0xee, 0x07, - 0xd5, 0xe1, 0x2c, 0x91, 0x9f, 0x24, 0xfc, 0x45, 0x98, 0x08, 0xae, 0x80, 0xdc, 0xb2, 0xad, 0xc5, - 0x6f, 0x66, 0x46, 0xa5, 0xe6, 0x9a, 0xb4, 0x89, 0xd6, 0x17, 0xe6, 0x67, 0x6b, 0x2e, 0x0f, 0x93, - 0x15, 0xf1, 0xbb, 0x3c, 0x71, 0x7b, 0x11, 0x29, 0xdc, 0x9a, 0xdf, 0xff, 0xea, 0xfc, 0x50, 0xee, - 0x63, 0x90, 0x09, 0x7f, 0x5d, 0x47, 0x02, 0x8e, 0x71, 0x60, 0x3e, 0xf9, 0x0e, 0x96, 0xfe, 0xfb, - 0x0a, 0x3c, 0x12, 0x16, 0x7f, 0xc9, 0xf2, 0x4e, 0x36, 0x6d, 0xdc, 0xd3, 0x3f, 0x07, 0x29, 0xc4, - 0x1c, 0xc7, 0x7e, 0xed, 0x84, 0xdd, 0x46, 0x46, 0x8a, 0x2f, 0x91, 0x7f, 0x0d, 0x1f, 0x22, 0x6d, - 0x71, 0xf0, 0xd3, 0xae, 0xcc, 0x3e, 0x05, 0xc3, 0x94, 0x5f, 0xd4, 0x6b, 0x5c, 0xd2, 0xeb, 0xd7, - 0x23, 0xf4, 0x22, 0x71, 0xa4, 0xdf, 0x15, 0xf4, 0x0a, 0xdd, 0xad, 0x46, 0x8a, 0x2f, 0xf1, 0xe0, - 0x2b, 0xa6, 0x70, 0xff, 0x47, 0x22, 0x2a, 0x5e, 0xc9, 0x05, 0x48, 0x95, 0x65, 0x99, 0x68, 0x3d, - 0xd7, 0x21, 0x59, 0x71, 0xea, 0xe4, 0x77, 0x58, 0xc8, 0xef, 0xe5, 0x32, 0x23, 0xb3, 0x1f, 0xcf, - 0xbd, 0x0c, 0xa9, 0xd2, 0x89, 0xd5, 0xa8, 0xb7, 0x91, 0xcd, 0x1e, 0xd9, 0xb3, 0x1d, 0x74, 0x8c, - 0x31, 0xfc, 0xb9, 0x5c, 0x09, 0xa6, 0x2a, 0x8e, 0x5d, 0x3c, 0xf5, 0xc2, 0x75, 0x63, 0x49, 0x4a, - 0x11, 0xf6, 0xc8, 0x87, 0x7c, 0x01, 0x04, 0x0b, 0x14, 0x87, 0xbf, 0xf3, 0xee, 0xbc, 0xb2, 0xef, - 0x6f, 0x9f, 0x6f, 0xc3, 0xa3, 0x2c, 0x7d, 0xba, 0xa8, 0x56, 0xe2, 0xa8, 0xc6, 0xd8, 0x63, 0xea, - 0x10, 0xdd, 0x26, 0xa6, 0xb3, 0x23, 0xe9, 0x1e, 0x4e, 0x33, 0xdc, 0x14, 0xf5, 0xd5, 0x4c, 0x3d, - 0x93, 0x66, 0x91, 0x74, 0x4b, 0x71, 0x74, 0x92, 0x66, 0x4f, 0xc2, 0x98, 0x3f, 0x17, 0x8a, 0x86, - 0x70, 0xa6, 0xac, 0x2c, 0xe6, 0x20, 0x1d, 0x4a, 0x58, 0x7d, 0x18, 0x94, 0x82, 0x36, 0x84, 0xff, - 0x2b, 0x6a, 0x0a, 0xfe, 0xaf, 0xa4, 0x25, 0x16, 0x9f, 0x82, 0x49, 0x69, 0xfb, 0x12, 0xcf, 0xac, - 0x6b, 0x80, 0xff, 0x2b, 0x6b, 0xe9, 0xd9, 0xe4, 0xe7, 0xfe, 0xd1, 0xdc, 0xd0, 0xe2, 0x6d, 0xd0, - 0xbb, 0x37, 0x3a, 0xf5, 0x11, 0x48, 0x14, 0x30, 0xe5, 0xa3, 0x90, 0x28, 0x16, 0x35, 0x65, 0x76, - 0xf2, 0xaf, 0x7d, 0xe9, 0x42, 0xba, 0x48, 0xbe, 0x8b, 0x7c, 0x0f, 0x79, 0xc5, 0x22, 0x03, 0x3f, - 0x0f, 0x8f, 0x44, 0x6e, 0x94, 0x62, 0x7c, 0xa9, 0x44, 0xf1, 0xeb, 0xeb, 0x5d, 0xf8, 0xf5, 0x75, - 0x82, 0x57, 0xf2, 0xfc, 0x81, 0x73, 0x41, 0x8f, 0xd8, 0x96, 0xcc, 0xd6, 0x43, 0x0f, 0xb8, 0x0b, - 0xf9, 0xe7, 0x99, 0x6c, 0x31, 0x52, 0x16, 0xc5, 0x3c, 0xb0, 0x2e, 0xe6, 0x4b, 0x0c, 0x5f, 0x8a, - 0xc4, 0x1f, 0x49, 0x4f, 0x55, 0xc5, 0x15, 0x82, 0x91, 0x94, 0x7c, 0x85, 0xd7, 0x23, 0x49, 0x4e, - 0x42, 0xef, 0xba, 0xaf, 0xfb, 0x0a, 0x97, 0x23, 0x65, 0xad, 0x98, 0x77, 0xbe, 0xca, 0xf9, 0x2b, - 0x6c, 0x91, 0x2f, 0x5c, 0xd5, 0x1f, 0xe1, 0x39, 0x2a, 0x54, 0x60, 0x66, 0x20, 0x2e, 0x95, 0x2f, - 0x31, 0x40, 0xb1, 0x27, 0xa0, 0xb7, 0x95, 0x38, 0x32, 0xff, 0x22, 0x23, 0x29, 0xf5, 0x24, 0x89, - 0x31, 0x15, 0x87, 0x17, 0xf7, 0xef, 0xbf, 0x37, 0x37, 0xf4, 0xce, 0x7b, 0x73, 0x43, 0xff, 0xe5, - 0xbd, 0xb9, 0xa1, 0xef, 0xbe, 0x37, 0xa7, 0x7c, 0xff, 0xbd, 0x39, 0xe5, 0x87, 0xef, 0xcd, 0x29, - 0x7f, 0xf2, 0xde, 0x9c, 0xf2, 0xe6, 0x83, 0x39, 0xe5, 0xeb, 0x0f, 0xe6, 0x94, 0x6f, 0x3c, 0x98, - 0x53, 0x7e, 0xf7, 0xc1, 0x9c, 0xf2, 0xf6, 0x83, 0x39, 0xe5, 0xfe, 0x83, 0x39, 0xe5, 0x9d, 0x07, - 0x73, 0xca, 0x77, 0x1f, 0xcc, 0x29, 0xdf, 0x7f, 0x30, 0x37, 0xf4, 0xc3, 0x07, 0x73, 0xca, 0x9f, - 0x3c, 0x98, 0x1b, 0x7a, 0xf3, 0xfd, 0xb9, 0xa1, 0xb7, 0xde, 0x9f, 0x1b, 0xfa, 0xfa, 0xfb, 0x73, - 0x0a, 0xfc, 0xb7, 0x55, 0xb8, 0xc8, 0xbe, 0x48, 0x46, 0xbf, 0xb7, 0xca, 0xbf, 0x4e, 0x46, 0x7a, - 0x82, 0x6b, 0xfc, 0x07, 0x9d, 0xfc, 0x81, 0x33, 0x7e, 0xab, 0x6c, 0xf6, 0x61, 0xbf, 0xc3, 0x96, - 0xfb, 0xb7, 0xc3, 0x30, 0xca, 0xf7, 0x82, 0xa3, 0x7e, 0x12, 0x7a, 0x0d, 0x52, 0x27, 0x56, 0xc3, - 0x6c, 0x5b, 0xde, 0x29, 0xdb, 0x04, 0x7d, 0x6c, 0x29, 0x50, 0x9b, 0x6f, 0x9b, 0xbe, 0xd8, 0x69, - 0x3a, 0x9d, 0xb6, 0xe1, 0x8b, 0xea, 0x17, 0x20, 0x73, 0x82, 0xac, 0xe3, 0x13, 0xaf, 0x6a, 0xd9, - 0xd5, 0x5a, 0x93, 0x34, 0xcb, 0xe3, 0x06, 0xd0, 0xb1, 0x4d, 0xbb, 0xd4, 0xc4, 0x27, 0xab, 0x9b, - 0x9e, 0x49, 0x6e, 0xd2, 0x33, 0x06, 0xf9, 0xac, 0x5f, 0x84, 0x4c, 0x1b, 0xb9, 0x9d, 0x86, 0x57, - 0xad, 0x39, 0x1d, 0xdb, 0x23, 0xed, 0xac, 0x6a, 0xa4, 0xe9, 0x58, 0x09, 0x0f, 0xe9, 0x4f, 0xc2, - 0xb8, 0xd7, 0xee, 0xa0, 0xaa, 0x5b, 0x73, 0x3c, 0xb7, 0x69, 0xda, 0xa4, 0x9d, 0x4d, 0x19, 0x19, - 0x3c, 0xb8, 0xc7, 0xc6, 0xc8, 0x9f, 0x1c, 0xa8, 0x39, 0x6d, 0x44, 0xee, 0xa6, 0x13, 0x06, 0x3d, - 0xd0, 0x35, 0x50, 0x5f, 0x45, 0xa7, 0xe4, 0x7e, 0x2d, 0x69, 0xe0, 0x8f, 0xfa, 0x33, 0x30, 0x42, - 0xff, 0x1a, 0x05, 0x69, 0xae, 0xc9, 0xa3, 0x6b, 0xff, 0xd2, 0xe8, 0x16, 0xad, 0xc1, 0x04, 0xf4, - 0x5b, 0x30, 0xea, 0xa1, 0x76, 0xdb, 0xb4, 0x6c, 0x72, 0xef, 0x94, 0x5e, 0x99, 0x8f, 0x30, 0xc3, - 0x3e, 0x95, 0x20, 0xbf, 0xee, 0x6a, 0x70, 0x79, 0x7d, 0x0d, 0x32, 0x44, 0x6e, 0xa5, 0x4a, 0xff, - 0x62, 0x47, 0xba, 0x67, 0x38, 0xa7, 0xa9, 0x1c, 0x7f, 0x52, 0xc0, 0x61, 0xf4, 0x97, 0xed, 0xc6, - 0xc9, 0x69, 0x9f, 0x8c, 0x38, 0x2d, 0xa9, 0xbc, 0x2b, 0xa4, 0x6b, 0xa4, 0xa7, 0x66, 0x3c, 0xf4, - 0xb7, 0xef, 0xb6, 0x21, 0x13, 0xd6, 0x8b, 0x9b, 0x81, 0x76, 0x3f, 0xc4, 0x0c, 0x4f, 0x07, 0xbf, - 0xe6, 0xde, 0xc3, 0x0a, 0x74, 0x3e, 0x9f, 0xb8, 0xa9, 0xcc, 0xee, 0x82, 0x26, 0x9f, 0x2f, 0x82, - 0xf2, 0xb2, 0x48, 0xa9, 0x85, 0x2f, 0x96, 0xec, 0x93, 0x07, 0x8c, 0xb9, 0x17, 0x60, 0x84, 0xc6, - 0x8f, 0x9e, 0x86, 0xd1, 0xe0, 0x47, 0x13, 0x53, 0x90, 0xdc, 0x3d, 0xa8, 0xec, 0xd1, 0x5f, 0x3f, - 0xdd, 0xdb, 0x2a, 0xec, 0xee, 0xed, 0x6f, 0x96, 0x3e, 0xa1, 0x25, 0xf4, 0x49, 0x48, 0x17, 0x37, - 0xb7, 0xb6, 0xaa, 0xc5, 0xc2, 0xe6, 0x56, 0xf9, 0x9e, 0xa6, 0xe6, 0xe6, 0x60, 0x84, 0xea, 0x49, - 0x7e, 0xc5, 0xad, 0x63, 0xdb, 0xa7, 0xbc, 0x7b, 0x20, 0x07, 0xb9, 0x6f, 0xea, 0x30, 0x5a, 0x68, - 0x34, 0xb6, 0xcd, 0x96, 0xab, 0xbf, 0x04, 0x53, 0xf4, 0xf7, 0x24, 0xf6, 0x9d, 0x75, 0xf2, 0x63, - 0x83, 0xb8, 0x36, 0x28, 0xec, 0x57, 0xec, 0x83, 0xeb, 0x66, 0xe2, 0x4b, 0x5d, 0xb2, 0xd4, 0xc0, - 0xdd, 0x1c, 0xfa, 0x3e, 0x68, 0x7c, 0x70, 0xa3, 0xe1, 0x98, 0x1e, 0xe6, 0x4d, 0xb0, 0xdf, 0x02, - 0xec, 0xcd, 0xcb, 0x45, 0x29, 0x6d, 0x17, 0x83, 0xfe, 0x71, 0x48, 0x6d, 0xda, 0xde, 0xb5, 0x15, - 0xcc, 0xc6, 0xff, 0xc2, 0x4a, 0x37, 0x1b, 0x17, 0xa1, 0x2c, 0x3e, 0x82, 0xa1, 0xaf, 0xaf, 0x62, - 0x74, 0xb2, 0x1f, 0x9a, 0x88, 0x04, 0x68, 0x72, 0xa8, 0xbf, 0x00, 0x63, 0xf8, 0xe6, 0x84, 0x9e, - 0x7c, 0x98, 0x77, 0xae, 0x5d, 0x70, 0x5f, 0x86, 0xe2, 0x03, 0x0c, 0x27, 0xa0, 0xe7, 0x1f, 0xe9, - 0x4b, 0x10, 0x52, 0x20, 0xc0, 0x60, 0x82, 0x3d, 0x5f, 0x83, 0xd1, 0x9e, 0x04, 0x7b, 0x92, 0x06, - 0x7b, 0x61, 0x0d, 0xf6, 0x7c, 0x0d, 0x52, 0x7d, 0x09, 0xc2, 0x1a, 0xf8, 0xc7, 0x7a, 0x11, 0x60, - 0xc3, 0x7a, 0x03, 0xd5, 0xa9, 0x0a, 0xf4, 0xef, 0xaf, 0xe4, 0x22, 0x18, 0x02, 0x21, 0x4a, 0x11, - 0x42, 0xe9, 0x65, 0x48, 0xef, 0x1d, 0x05, 0x24, 0xd0, 0x95, 0xc7, 0xbe, 0x1a, 0x47, 0x12, 0x4b, - 0x18, 0xe7, 0xab, 0x42, 0x2f, 0x26, 0xdd, 0x5f, 0x95, 0xd0, 0xd5, 0x84, 0x50, 0x81, 0x2a, 0x94, - 0x24, 0x13, 0xa3, 0x4a, 0x88, 0x25, 0x8c, 0xc3, 0xc5, 0xb0, 0xe8, 0x38, 0x58, 0x92, 0x55, 0xa5, - 0xf9, 0x08, 0x0a, 0x26, 0xc1, 0x8a, 0x21, 0x3b, 0x22, 0x1e, 0x21, 0x41, 0x8e, 0xc1, 0x13, 0xbd, - 0x3d, 0xc2, 0x65, 0xb8, 0x47, 0xf8, 0x71, 0x38, 0xcf, 0xc8, 0xfb, 0xac, 0x98, 0x67, 0x32, 0x36, - 0xcf, 0xb8, 0xa8, 0x94, 0x67, 0x7c, 0x58, 0xff, 0x24, 0x4c, 0xf2, 0x31, 0x5c, 0x9e, 0x30, 0xa9, - 0xc6, 0xfe, 0x42, 0x55, 0x6f, 0x52, 0x26, 0x49, 0x39, 0x65, 0xbc, 0x5e, 0x81, 0x09, 0x3e, 0xb4, - 0xed, 0x92, 0xcb, 0x9d, 0x62, 0x7f, 0xfd, 0xa1, 0x37, 0x23, 0x15, 0xa4, 0x84, 0x12, 0x7a, 0x76, - 0x1d, 0x66, 0xa2, 0xab, 0x51, 0xb8, 0xfc, 0x8e, 0xd1, 0xf2, 0x7b, 0x2e, 0x5c, 0x7e, 0x95, 0x70, - 0xf9, 0x2e, 0xc1, 0x23, 0x91, 0xb5, 0x27, 0x8e, 0x24, 0x11, 0x26, 0xb9, 0x0d, 0xe3, 0x42, 0xc9, - 0x09, 0x83, 0x87, 0x23, 0xc0, 0xc3, 0xdd, 0xe0, 0x20, 0xb4, 0x22, 0x56, 0x0f, 0x01, 0xac, 0x86, - 0xc1, 0x1f, 0x87, 0x09, 0xb1, 0xde, 0x84, 0xd1, 0xe3, 0x11, 0xe8, 0xf1, 0x08, 0x74, 0xf4, 0xb9, - 0x93, 0x11, 0xe8, 0xa4, 0x84, 0xde, 0xeb, 0x79, 0xee, 0xa9, 0x08, 0xf4, 0x54, 0x04, 0x3a, 0xfa, - 0xdc, 0x7a, 0x04, 0x5a, 0x0f, 0xa3, 0x9f, 0x83, 0x49, 0xa9, 0xc4, 0x84, 0xe1, 0xa3, 0x11, 0xf0, - 0xd1, 0x30, 0xfc, 0x79, 0xd0, 0xe4, 0xe2, 0x12, 0xc6, 0x4f, 0x46, 0xe0, 0x27, 0xa3, 0x4e, 0x1f, - 0xad, 0xfd, 0x48, 0x04, 0x7c, 0x24, 0xf2, 0xf4, 0xd1, 0x78, 0x2d, 0x02, 0xaf, 0x85, 0xf1, 0x79, - 0xc8, 0x84, 0xab, 0x49, 0x18, 0x9b, 0x8a, 0xc0, 0xa6, 0x64, 0xbb, 0x0b, 0xc5, 0x24, 0x2e, 0xd2, - 0xc7, 0x7a, 0xa4, 0x8b, 0x50, 0x42, 0xe2, 0x48, 0x32, 0x61, 0x92, 0x4f, 0xc1, 0xb9, 0xa8, 0x92, - 0x11, 0xc1, 0xb1, 0x10, 0xe6, 0x98, 0xc0, 0x3d, 0x62, 0xd0, 0xec, 0x99, 0x2d, 0xa9, 0x71, 0x9a, - 0xfd, 0x34, 0x4c, 0x47, 0x14, 0x8e, 0x08, 0xda, 0x25, 0xb1, 0x1b, 0xcb, 0x86, 0x68, 0x49, 0x11, - 0xb0, 0xec, 0xe3, 0x5d, 0xc7, 0xb2, 0xbd, 0x70, 0x57, 0xf6, 0xad, 0x69, 0x98, 0x60, 0xe5, 0x69, - 0xa7, 0x5d, 0x47, 0x6d, 0x54, 0xd7, 0xff, 0x42, 0xef, 0xde, 0x69, 0xb9, 0xbb, 0xa8, 0x31, 0xd4, - 0x19, 0x5a, 0xa8, 0x4f, 0xf7, 0x6c, 0xa1, 0xae, 0xc4, 0xd3, 0xc7, 0x75, 0x52, 0xa5, 0xae, 0x4e, - 0xea, 0xe9, 0xde, 0xa4, 0xbd, 0x1a, 0xaa, 0x52, 0x57, 0x43, 0xd5, 0x9f, 0x24, 0xb2, 0xaf, 0xda, - 0xe8, 0xee, 0xab, 0x16, 0x7a, 0xb3, 0xf4, 0x6e, 0xaf, 0x36, 0xba, 0xdb, 0xab, 0x18, 0x9e, 0xe8, - 0x2e, 0x6b, 0xa3, 0xbb, 0xcb, 0xea, 0xc3, 0xd3, 0xbb, 0xd9, 0xda, 0xe8, 0x6e, 0xb6, 0x62, 0x78, - 0xa2, 0x7b, 0xae, 0xcd, 0x88, 0x9e, 0xeb, 0x99, 0xde, 0x44, 0xfd, 0x5a, 0xaf, 0xad, 0xa8, 0xd6, - 0x6b, 0xb1, 0x8f, 0x52, 0x7d, 0x3b, 0xb0, 0xcd, 0x88, 0x0e, 0x2c, 0x4e, 0xb1, 0x1e, 0x8d, 0xd8, - 0x56, 0x54, 0x23, 0x16, 0xab, 0x58, 0xaf, 0x7e, 0xec, 0xcf, 0xc9, 0xfd, 0xd8, 0xe5, 0xde, 0x4c, - 0xd1, 0x6d, 0xd9, 0x46, 0x77, 0x5b, 0xb6, 0x10, 0x97, 0x73, 0x51, 0xdd, 0xd9, 0xa7, 0x7b, 0x76, - 0x67, 0x03, 0xa4, 0x70, 0x5c, 0x93, 0xf6, 0x72, 0xaf, 0x26, 0x6d, 0x29, 0x9e, 0xbb, 0x7f, 0xaf, - 0x76, 0xd0, 0xa3, 0x57, 0x7b, 0x36, 0x9e, 0xf8, 0x67, 0x2d, 0xdb, 0xcf, 0x5a, 0xb6, 0x9f, 0xb5, - 0x6c, 0x3f, 0x6b, 0xd9, 0x7e, 0xfa, 0x2d, 0x5b, 0x3e, 0xf9, 0xf9, 0xaf, 0xce, 0x2b, 0xb9, 0xff, - 0xac, 0xfa, 0x7f, 0x38, 0xeb, 0x25, 0xcb, 0x3b, 0xc1, 0xe5, 0x6d, 0x1b, 0x32, 0xe4, 0x4f, 0x5e, - 0x34, 0xcd, 0x56, 0xcb, 0xb2, 0x8f, 0x59, 0xcf, 0xb6, 0xd8, 0xbd, 0x95, 0xc8, 0x00, 0xe4, 0x8f, - 0x86, 0x6c, 0x53, 0x61, 0xb6, 0xdc, 0xd8, 0xc1, 0x88, 0x7e, 0x17, 0xd2, 0x4d, 0xf7, 0xd8, 0x67, - 0x4b, 0x74, 0x2d, 0x84, 0x12, 0x1b, 0xbd, 0xd2, 0x80, 0x0c, 0x9a, 0xfe, 0x00, 0x56, 0xed, 0xf0, - 0xd4, 0x0b, 0x54, 0x53, 0xe3, 0x54, 0xc3, 0x3e, 0x15, 0x55, 0x3b, 0x0c, 0x46, 0x70, 0xd8, 0xca, - 0xba, 0xc7, 0x55, 0x3a, 0x21, 0x78, 0x5e, 0x82, 0x49, 0x49, 0xdb, 0x88, 0x9c, 0x7f, 0x08, 0xdf, - 0x60, 0xc5, 0x64, 0xcd, 0xe3, 0x72, 0x22, 0x1c, 0x90, 0xb9, 0x27, 0x60, 0x5c, 0xe0, 0xd6, 0x33, - 0xa0, 0x1c, 0xb1, 0x2f, 0x53, 0x2a, 0x47, 0xb9, 0xaf, 0x28, 0x90, 0x66, 0x6f, 0x12, 0xec, 0x9a, - 0x56, 0x5b, 0x7f, 0x11, 0x92, 0x0d, 0xfe, 0x85, 0xa6, 0x87, 0xfd, 0xf2, 0x2c, 0x61, 0xd0, 0x37, - 0x60, 0xb8, 0xed, 0x7f, 0xe1, 0xe9, 0xa1, 0xbe, 0x11, 0x4b, 0xe0, 0xb9, 0xfb, 0x0a, 0x4c, 0xb1, - 0x17, 0x5d, 0x5d, 0xf6, 0xfa, 0xb3, 0xd9, 0x9a, 0xfd, 0xa6, 0x02, 0x63, 0xfe, 0x91, 0x7e, 0x08, - 0x13, 0xfe, 0x01, 0x7d, 0xc5, 0x9e, 0x46, 0x6a, 0x3e, 0x64, 0xe1, 0x2e, 0x8e, 0xa5, 0x88, 0x4f, - 0xf4, 0x59, 0x14, 0x5d, 0x93, 0xc5, 0xc1, 0xd9, 0x02, 0x4c, 0x47, 0x88, 0x9d, 0x65, 0x41, 0xce, - 0x5d, 0x84, 0xb1, 0x8a, 0xe3, 0xd1, 0xdf, 0xcd, 0xd1, 0xcf, 0x85, 0x9e, 0x2a, 0x14, 0x13, 0xda, - 0x10, 0x01, 0x2f, 0x5e, 0x84, 0x51, 0x96, 0xfd, 0xfa, 0x08, 0x24, 0xb6, 0x0b, 0xda, 0x10, 0xf9, - 0xbf, 0xa8, 0x29, 0xe4, 0xff, 0x92, 0x96, 0x28, 0x6e, 0x3d, 0xc4, 0x83, 0xa6, 0xa1, 0x77, 0x1e, - 0xcc, 0x0d, 0x49, 0x0f, 0x9a, 0x94, 0x37, 0xdf, 0x9f, 0x53, 0x0e, 0x47, 0xa8, 0x79, 0xfe, 0x7f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x0e, 0x08, 0xef, 0x2c, 0x7f, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (x MapEnum) String() string { - s, ok := MapEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x Message_Humour) String() string { - s, ok := Message_Humour_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (this *Message) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Message) - if !ok { - that2, ok := that.(Message) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Message") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Message but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Message but is not nil && this == nil") - } - if this.Name != that1.Name { - return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) - } - if this.Hilarity != that1.Hilarity { - return fmt.Errorf("Hilarity this(%v) Not Equal that(%v)", this.Hilarity, that1.Hilarity) - } - if this.HeightInCm != that1.HeightInCm { - return fmt.Errorf("HeightInCm this(%v) Not Equal that(%v)", this.HeightInCm, that1.HeightInCm) - } - if !bytes.Equal(this.Data, that1.Data) { - return fmt.Errorf("Data this(%v) Not Equal that(%v)", this.Data, that1.Data) - } - if this.ResultCount != that1.ResultCount { - return fmt.Errorf("ResultCount this(%v) Not Equal that(%v)", this.ResultCount, that1.ResultCount) - } - if this.TrueScotsman != that1.TrueScotsman { - return fmt.Errorf("TrueScotsman this(%v) Not Equal that(%v)", this.TrueScotsman, that1.TrueScotsman) - } - if this.Score != that1.Score { - return fmt.Errorf("Score this(%v) Not Equal that(%v)", this.Score, that1.Score) - } - if len(this.Key) != len(that1.Key) { - return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) - } - } - if !this.Nested.Equal(that1.Nested) { - return fmt.Errorf("Nested this(%v) Not Equal that(%v)", this.Nested, that1.Nested) - } - if len(this.Terrain) != len(that1.Terrain) { - return fmt.Errorf("Terrain this(%v) Not Equal that(%v)", len(this.Terrain), len(that1.Terrain)) - } - for i := range this.Terrain { - if !this.Terrain[i].Equal(that1.Terrain[i]) { - return fmt.Errorf("Terrain this[%v](%v) Not Equal that[%v](%v)", i, this.Terrain[i], i, that1.Terrain[i]) - } - } - if !this.Proto2Field.Equal(that1.Proto2Field) { - return fmt.Errorf("Proto2Field this(%v) Not Equal that(%v)", this.Proto2Field, that1.Proto2Field) - } - if len(this.Proto2Value) != len(that1.Proto2Value) { - return fmt.Errorf("Proto2Value this(%v) Not Equal that(%v)", len(this.Proto2Value), len(that1.Proto2Value)) - } - for i := range this.Proto2Value { - if !this.Proto2Value[i].Equal(that1.Proto2Value[i]) { - return fmt.Errorf("Proto2Value this[%v](%v) Not Equal that[%v](%v)", i, this.Proto2Value[i], i, that1.Proto2Value[i]) - } - } - return nil -} -func (this *Message) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Message) - if !ok { - that2, ok := that.(Message) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Name != that1.Name { - return false - } - if this.Hilarity != that1.Hilarity { - return false - } - if this.HeightInCm != that1.HeightInCm { - return false - } - if !bytes.Equal(this.Data, that1.Data) { - return false - } - if this.ResultCount != that1.ResultCount { - return false - } - if this.TrueScotsman != that1.TrueScotsman { - return false - } - if this.Score != that1.Score { - return false - } - if len(this.Key) != len(that1.Key) { - return false - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return false - } - } - if !this.Nested.Equal(that1.Nested) { - return false - } - if len(this.Terrain) != len(that1.Terrain) { - return false - } - for i := range this.Terrain { - if !this.Terrain[i].Equal(that1.Terrain[i]) { - return false - } - } - if !this.Proto2Field.Equal(that1.Proto2Field) { - return false - } - if len(this.Proto2Value) != len(that1.Proto2Value) { - return false - } - for i := range this.Proto2Value { - if !this.Proto2Value[i].Equal(that1.Proto2Value[i]) { - return false - } - } - return true -} -func (this *Nested) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Nested) - if !ok { - that2, ok := that.(Nested) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Nested") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Nested but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Nested but is not nil && this == nil") - } - if this.Bunny != that1.Bunny { - return fmt.Errorf("Bunny this(%v) Not Equal that(%v)", this.Bunny, that1.Bunny) - } - return nil -} -func (this *Nested) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Nested) - if !ok { - that2, ok := that.(Nested) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Bunny != that1.Bunny { - return false - } - return true -} -func (this *AllMaps) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMaps") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMaps but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMaps but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - return nil -} -func (this *AllMaps) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - return true -} -func (this *AllMapsOrdered) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMapsOrdered") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMapsOrdered but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMapsOrdered but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - return nil -} -func (this *AllMapsOrdered) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - return true -} -func (this *MessageWithMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MessageWithMap) - if !ok { - that2, ok := that.(MessageWithMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MessageWithMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MessageWithMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MessageWithMap but is not nil && this == nil") - } - if len(this.NameMapping) != len(that1.NameMapping) { - return fmt.Errorf("NameMapping this(%v) Not Equal that(%v)", len(this.NameMapping), len(that1.NameMapping)) - } - for i := range this.NameMapping { - if this.NameMapping[i] != that1.NameMapping[i] { - return fmt.Errorf("NameMapping this[%v](%v) Not Equal that[%v](%v)", i, this.NameMapping[i], i, that1.NameMapping[i]) - } - } - if len(this.MsgMapping) != len(that1.MsgMapping) { - return fmt.Errorf("MsgMapping this(%v) Not Equal that(%v)", len(this.MsgMapping), len(that1.MsgMapping)) - } - for i := range this.MsgMapping { - if !this.MsgMapping[i].Equal(that1.MsgMapping[i]) { - return fmt.Errorf("MsgMapping this[%v](%v) Not Equal that[%v](%v)", i, this.MsgMapping[i], i, that1.MsgMapping[i]) - } - } - if len(this.ByteMapping) != len(that1.ByteMapping) { - return fmt.Errorf("ByteMapping this(%v) Not Equal that(%v)", len(this.ByteMapping), len(that1.ByteMapping)) - } - for i := range this.ByteMapping { - if !bytes.Equal(this.ByteMapping[i], that1.ByteMapping[i]) { - return fmt.Errorf("ByteMapping this[%v](%v) Not Equal that[%v](%v)", i, this.ByteMapping[i], i, that1.ByteMapping[i]) - } - } - return nil -} -func (this *MessageWithMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MessageWithMap) - if !ok { - that2, ok := that.(MessageWithMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NameMapping) != len(that1.NameMapping) { - return false - } - for i := range this.NameMapping { - if this.NameMapping[i] != that1.NameMapping[i] { - return false - } - } - if len(this.MsgMapping) != len(that1.MsgMapping) { - return false - } - for i := range this.MsgMapping { - if !this.MsgMapping[i].Equal(that1.MsgMapping[i]) { - return false - } - } - if len(this.ByteMapping) != len(that1.ByteMapping) { - return false - } - for i := range this.ByteMapping { - if !bytes.Equal(this.ByteMapping[i], that1.ByteMapping[i]) { - return false - } - } - return true -} -func (this *FloatingPoint) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *FloatingPoint") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *FloatingPoint but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *FloatingPoint but is not nil && this == nil") - } - if this.F != that1.F { - return fmt.Errorf("F this(%v) Not Equal that(%v)", this.F, that1.F) - } - return nil -} -func (this *FloatingPoint) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.F != that1.F { - return false - } - return true -} -func (this *Uint128Pair) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Uint128Pair) - if !ok { - that2, ok := that.(Uint128Pair) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Uint128Pair") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Uint128Pair but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Uint128Pair but is not nil && this == nil") - } - if !this.Left.Equal(that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if that1.Right == nil { - if this.Right != nil { - return fmt.Errorf("this.Right != nil && that1.Right == nil") - } - } else if !this.Right.Equal(*that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - return nil -} -func (this *Uint128Pair) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Uint128Pair) - if !ok { - that2, ok := that.(Uint128Pair) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(that1.Left) { - return false - } - if that1.Right == nil { - if this.Right != nil { - return false - } - } else if !this.Right.Equal(*that1.Right) { - return false - } - return true -} -func (this *ContainsNestedMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ContainsNestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ContainsNestedMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ContainsNestedMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ContainsNestedMap but is not nil && this == nil") - } - return nil -} -func (this *ContainsNestedMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ContainsNestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - return true -} -func (this *ContainsNestedMap_NestedMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ContainsNestedMap_NestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap_NestedMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ContainsNestedMap_NestedMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ContainsNestedMap_NestedMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ContainsNestedMap_NestedMap but is not nil && this == nil") - } - if len(this.NestedMapField) != len(that1.NestedMapField) { - return fmt.Errorf("NestedMapField this(%v) Not Equal that(%v)", len(this.NestedMapField), len(that1.NestedMapField)) - } - for i := range this.NestedMapField { - if this.NestedMapField[i] != that1.NestedMapField[i] { - return fmt.Errorf("NestedMapField this[%v](%v) Not Equal that[%v](%v)", i, this.NestedMapField[i], i, that1.NestedMapField[i]) - } - } - return nil -} -func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ContainsNestedMap_NestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap_NestedMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NestedMapField) != len(that1.NestedMapField) { - return false - } - for i := range this.NestedMapField { - if this.NestedMapField[i] != that1.NestedMapField[i] { - return false - } - } - return true -} -func (this *NotPacked) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NotPacked) - if !ok { - that2, ok := that.(NotPacked) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NotPacked") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NotPacked but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") - } - if len(this.Key) != len(that1.Key) { - return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) - } - } - return nil -} -func (this *NotPacked) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NotPacked) - if !ok { - that2, ok := that.(NotPacked) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Key) != len(that1.Key) { - return false - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return false - } - } - return true -} - -type MessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetName() string - GetHilarity() Message_Humour - GetHeightInCm() uint32 - GetData() []byte - GetResultCount() int64 - GetTrueScotsman() bool - GetScore() float32 - GetKey() []uint64 - GetNested() *Nested - GetTerrain() map[int64]*Nested - GetProto2Field() *test.NinOptNative - GetProto2Value() map[int64]*test.NinOptEnum -} - -func (this *Message) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Message) TestProto() github_com_gogo_protobuf_proto.Message { - return NewMessageFromFace(this) -} - -func (this *Message) GetName() string { - return this.Name -} - -func (this *Message) GetHilarity() Message_Humour { - return this.Hilarity -} - -func (this *Message) GetHeightInCm() uint32 { - return this.HeightInCm -} - -func (this *Message) GetData() []byte { - return this.Data -} - -func (this *Message) GetResultCount() int64 { - return this.ResultCount -} - -func (this *Message) GetTrueScotsman() bool { - return this.TrueScotsman -} - -func (this *Message) GetScore() float32 { - return this.Score -} - -func (this *Message) GetKey() []uint64 { - return this.Key -} - -func (this *Message) GetNested() *Nested { - return this.Nested -} - -func (this *Message) GetTerrain() map[int64]*Nested { - return this.Terrain -} - -func (this *Message) GetProto2Field() *test.NinOptNative { - return this.Proto2Field -} - -func (this *Message) GetProto2Value() map[int64]*test.NinOptEnum { - return this.Proto2Value -} - -func NewMessageFromFace(that MessageFace) *Message { - this := &Message{} - this.Name = that.GetName() - this.Hilarity = that.GetHilarity() - this.HeightInCm = that.GetHeightInCm() - this.Data = that.GetData() - this.ResultCount = that.GetResultCount() - this.TrueScotsman = that.GetTrueScotsman() - this.Score = that.GetScore() - this.Key = that.GetKey() - this.Nested = that.GetNested() - this.Terrain = that.GetTerrain() - this.Proto2Field = that.GetProto2Field() - this.Proto2Value = that.GetProto2Value() - return this -} - -type NestedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetBunny() string -} - -func (this *Nested) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Nested) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedFromFace(this) -} - -func (this *Nested) GetBunny() string { - return this.Bunny -} - -func NewNestedFromFace(that NestedFace) *Nested { - this := &Nested{} - this.Bunny = that.GetBunny() - return this -} - -type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsFromFace(this) -} - -func (this *AllMaps) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMaps) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMaps) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMaps) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMaps) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMaps) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMaps) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMaps) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMaps) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMaps) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMaps) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMaps) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMaps) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMaps) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMaps) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMaps) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMaps) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsFromFace(that AllMapsFace) *AllMaps { - this := &AllMaps{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsOrderedFromFace(this) -} - -func (this *AllMapsOrdered) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMapsOrdered) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMapsOrdered) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMapsOrdered) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMapsOrdered) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMapsOrdered) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMapsOrdered) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMapsOrdered) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMapsOrdered) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMapsOrdered) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMapsOrdered) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMapsOrdered) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMapsOrdered) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMapsOrdered) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMapsOrdered) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMapsOrdered) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMapsOrdered) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { - this := &AllMapsOrdered{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -type MessageWithMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNameMapping() map[int32]string - GetMsgMapping() map[int64]*FloatingPoint - GetByteMapping() map[bool][]byte -} - -func (this *MessageWithMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *MessageWithMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewMessageWithMapFromFace(this) -} - -func (this *MessageWithMap) GetNameMapping() map[int32]string { - return this.NameMapping -} - -func (this *MessageWithMap) GetMsgMapping() map[int64]*FloatingPoint { - return this.MsgMapping -} - -func (this *MessageWithMap) GetByteMapping() map[bool][]byte { - return this.ByteMapping -} - -func NewMessageWithMapFromFace(that MessageWithMapFace) *MessageWithMap { - this := &MessageWithMap{} - this.NameMapping = that.GetNameMapping() - this.MsgMapping = that.GetMsgMapping() - this.ByteMapping = that.GetByteMapping() - return this -} - -type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetF() float64 -} - -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { - return NewFloatingPointFromFace(this) -} - -func (this *FloatingPoint) GetF() float64 { - return this.F -} - -func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { - this := &FloatingPoint{} - this.F = that.GetF() - return this -} - -type Uint128PairFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() github_com_gogo_protobuf_test_custom.Uint128 - GetRight() *github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *Uint128Pair) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Uint128Pair) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUint128PairFromFace(this) -} - -func (this *Uint128Pair) GetLeft() github_com_gogo_protobuf_test_custom.Uint128 { - return this.Left -} - -func (this *Uint128Pair) GetRight() *github_com_gogo_protobuf_test_custom.Uint128 { - return this.Right -} - -func NewUint128PairFromFace(that Uint128PairFace) *Uint128Pair { - this := &Uint128Pair{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type ContainsNestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message -} - -func (this *ContainsNestedMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ContainsNestedMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewContainsNestedMapFromFace(this) -} - -func NewContainsNestedMapFromFace(that ContainsNestedMapFace) *ContainsNestedMap { - this := &ContainsNestedMap{} - return this -} - -type ContainsNestedMap_NestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNestedMapField() map[string]float64 -} - -func (this *ContainsNestedMap_NestedMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ContainsNestedMap_NestedMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewContainsNestedMap_NestedMapFromFace(this) -} - -func (this *ContainsNestedMap_NestedMap) GetNestedMapField() map[string]float64 { - return this.NestedMapField -} - -func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace) *ContainsNestedMap_NestedMap { - this := &ContainsNestedMap_NestedMap{} - this.NestedMapField = that.GetNestedMapField() - return this -} - -type NotPackedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetKey() []uint64 -} - -func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNotPackedFromFace(this) -} - -func (this *NotPacked) GetKey() []uint64 { - return this.Key -} - -func NewNotPackedFromFace(that NotPackedFace) *NotPacked { - this := &NotPacked{} - this.Key = that.GetKey() - return this -} - -func (this *Message) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 16) - s = append(s, "&theproto3.Message{") - s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") - s = append(s, "Hilarity: "+fmt.Sprintf("%#v", this.Hilarity)+",\n") - s = append(s, "HeightInCm: "+fmt.Sprintf("%#v", this.HeightInCm)+",\n") - s = append(s, "Data: "+fmt.Sprintf("%#v", this.Data)+",\n") - s = append(s, "ResultCount: "+fmt.Sprintf("%#v", this.ResultCount)+",\n") - s = append(s, "TrueScotsman: "+fmt.Sprintf("%#v", this.TrueScotsman)+",\n") - s = append(s, "Score: "+fmt.Sprintf("%#v", this.Score)+",\n") - s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") - if this.Nested != nil { - s = append(s, "Nested: "+fmt.Sprintf("%#v", this.Nested)+",\n") - } - keysForTerrain := make([]int64, 0, len(this.Terrain)) - for k := range this.Terrain { - keysForTerrain = append(keysForTerrain, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) - mapStringForTerrain := "map[int64]*Nested{" - for _, k := range keysForTerrain { - mapStringForTerrain += fmt.Sprintf("%#v: %#v,", k, this.Terrain[k]) - } - mapStringForTerrain += "}" - if this.Terrain != nil { - s = append(s, "Terrain: "+mapStringForTerrain+",\n") - } - if this.Proto2Field != nil { - s = append(s, "Proto2Field: "+fmt.Sprintf("%#v", this.Proto2Field)+",\n") - } - keysForProto2Value := make([]int64, 0, len(this.Proto2Value)) - for k := range this.Proto2Value { - keysForProto2Value = append(keysForProto2Value, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) - mapStringForProto2Value := "map[int64]*test.NinOptEnum{" - for _, k := range keysForProto2Value { - mapStringForProto2Value += fmt.Sprintf("%#v: %#v,", k, this.Proto2Value[k]) - } - mapStringForProto2Value += "}" - if this.Proto2Value != nil { - s = append(s, "Proto2Value: "+mapStringForProto2Value+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Nested) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.Nested{") - s = append(s, "Bunny: "+fmt.Sprintf("%#v", this.Bunny)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMaps) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&theproto3.AllMaps{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMapsOrdered) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&theproto3.AllMapsOrdered{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *MessageWithMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&theproto3.MessageWithMap{") - keysForNameMapping := make([]int32, 0, len(this.NameMapping)) - for k := range this.NameMapping { - keysForNameMapping = append(keysForNameMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) - mapStringForNameMapping := "map[int32]string{" - for _, k := range keysForNameMapping { - mapStringForNameMapping += fmt.Sprintf("%#v: %#v,", k, this.NameMapping[k]) - } - mapStringForNameMapping += "}" - if this.NameMapping != nil { - s = append(s, "NameMapping: "+mapStringForNameMapping+",\n") - } - keysForMsgMapping := make([]int64, 0, len(this.MsgMapping)) - for k := range this.MsgMapping { - keysForMsgMapping = append(keysForMsgMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) - mapStringForMsgMapping := "map[int64]*FloatingPoint{" - for _, k := range keysForMsgMapping { - mapStringForMsgMapping += fmt.Sprintf("%#v: %#v,", k, this.MsgMapping[k]) - } - mapStringForMsgMapping += "}" - if this.MsgMapping != nil { - s = append(s, "MsgMapping: "+mapStringForMsgMapping+",\n") - } - keysForByteMapping := make([]bool, 0, len(this.ByteMapping)) - for k := range this.ByteMapping { - keysForByteMapping = append(keysForByteMapping, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) - mapStringForByteMapping := "map[bool][]byte{" - for _, k := range keysForByteMapping { - mapStringForByteMapping += fmt.Sprintf("%#v: %#v,", k, this.ByteMapping[k]) - } - mapStringForByteMapping += "}" - if this.ByteMapping != nil { - s = append(s, "ByteMapping: "+mapStringForByteMapping+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *FloatingPoint) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.FloatingPoint{") - s = append(s, "F: "+fmt.Sprintf("%#v", this.F)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Uint128Pair) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&theproto3.Uint128Pair{") - s = append(s, "Left: "+fmt.Sprintf("%#v", this.Left)+",\n") - s = append(s, "Right: "+fmt.Sprintf("%#v", this.Right)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ContainsNestedMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 4) - s = append(s, "&theproto3.ContainsNestedMap{") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ContainsNestedMap_NestedMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.ContainsNestedMap_NestedMap{") - keysForNestedMapField := make([]string, 0, len(this.NestedMapField)) - for k := range this.NestedMapField { - keysForNestedMapField = append(keysForNestedMapField, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) - mapStringForNestedMapField := "map[string]float64{" - for _, k := range keysForNestedMapField { - mapStringForNestedMapField += fmt.Sprintf("%#v: %#v,", k, this.NestedMapField[k]) - } - mapStringForNestedMapField += "}" - if this.NestedMapField != nil { - s = append(s, "NestedMapField: "+mapStringForNestedMapField+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NotPacked) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.NotPacked{") - s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringTheproto3(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { - this := &Message{} - this.Name = string(randStringTheproto3(r)) - this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) - this.HeightInCm = uint32(r.Uint32()) - v1 := r.Intn(100) - this.Data = make([]byte, v1) - for i := 0; i < v1; i++ { - this.Data[i] = byte(r.Intn(256)) - } - this.ResultCount = int64(r.Int63()) - if r.Intn(2) == 0 { - this.ResultCount *= -1 - } - this.TrueScotsman = bool(bool(r.Intn(2) == 0)) - this.Score = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Score *= -1 - } - v2 := r.Intn(10) - this.Key = make([]uint64, v2) - for i := 0; i < v2; i++ { - this.Key[i] = uint64(uint64(r.Uint32())) - } - if r.Intn(10) != 0 { - this.Nested = NewPopulatedNested(r, easy) - } - if r.Intn(10) != 0 { - v3 := r.Intn(10) - this.Terrain = make(map[int64]*Nested) - for i := 0; i < v3; i++ { - this.Terrain[int64(r.Int63())] = NewPopulatedNested(r, easy) - } - } - if r.Intn(10) != 0 { - this.Proto2Field = test.NewPopulatedNinOptNative(r, easy) - } - if r.Intn(10) != 0 { - v4 := r.Intn(10) - this.Proto2Value = make(map[int64]*test.NinOptEnum) - for i := 0; i < v4; i++ { - this.Proto2Value[int64(r.Int63())] = test.NewPopulatedNinOptEnum(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { - this := &Nested{} - this.Bunny = string(randStringTheproto3(r)) - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedAllMaps(r randyTheproto3, easy bool) *AllMaps { - this := &AllMaps{} - if r.Intn(10) != 0 { - v5 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v5; i++ { - v6 := randStringTheproto3(r) - this.StringToDoubleMap[v6] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v6] *= -1 - } - } - } - if r.Intn(10) != 0 { - v7 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v7; i++ { - v8 := randStringTheproto3(r) - this.StringToFloatMap[v8] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v8] *= -1 - } - } - } - if r.Intn(10) != 0 { - v9 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v9; i++ { - v10 := int32(r.Int31()) - this.Int32Map[v10] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v10] *= -1 - } - } - } - if r.Intn(10) != 0 { - v11 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v11; i++ { - v12 := int64(r.Int63()) - this.Int64Map[v12] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v12] *= -1 - } - } - } - if r.Intn(10) != 0 { - v13 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v13; i++ { - v14 := uint32(r.Uint32()) - this.Uint32Map[v14] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v15 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v15; i++ { - v16 := uint64(uint64(r.Uint32())) - this.Uint64Map[v16] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v17 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v17; i++ { - v18 := int32(r.Int31()) - this.Sint32Map[v18] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v18] *= -1 - } - } - } - if r.Intn(10) != 0 { - v19 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v19; i++ { - v20 := int64(r.Int63()) - this.Sint64Map[v20] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v20] *= -1 - } - } - } - if r.Intn(10) != 0 { - v21 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v21; i++ { - v22 := uint32(r.Uint32()) - this.Fixed32Map[v22] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v23 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v23; i++ { - v24 := int32(r.Int31()) - this.Sfixed32Map[v24] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v24] *= -1 - } - } - } - if r.Intn(10) != 0 { - v25 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v25; i++ { - v26 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v26] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v27 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v27; i++ { - v28 := int64(r.Int63()) - this.Sfixed64Map[v28] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v28] *= -1 - } - } - } - if r.Intn(10) != 0 { - v29 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v29; i++ { - v30 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v30] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v31 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v31; i++ { - this.StringMap[randStringTheproto3(r)] = randStringTheproto3(r) - } - } - if r.Intn(10) != 0 { - v32 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v32; i++ { - v33 := r.Intn(100) - v34 := randStringTheproto3(r) - this.StringToBytesMap[v34] = make([]byte, v33) - for i := 0; i < v33; i++ { - this.StringToBytesMap[v34][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v35 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v35; i++ { - this.StringToEnumMap[randStringTheproto3(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v36; i++ { - this.StringToMsgMap[randStringTheproto3(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedAllMapsOrdered(r randyTheproto3, easy bool) *AllMapsOrdered { - this := &AllMapsOrdered{} - if r.Intn(10) != 0 { - v37 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v37; i++ { - v38 := randStringTheproto3(r) - this.StringToDoubleMap[v38] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v38] *= -1 - } - } - } - if r.Intn(10) != 0 { - v39 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v39; i++ { - v40 := randStringTheproto3(r) - this.StringToFloatMap[v40] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v40] *= -1 - } - } - } - if r.Intn(10) != 0 { - v41 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v41; i++ { - v42 := int32(r.Int31()) - this.Int32Map[v42] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v42] *= -1 - } - } - } - if r.Intn(10) != 0 { - v43 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v43; i++ { - v44 := int64(r.Int63()) - this.Int64Map[v44] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v44] *= -1 - } - } - } - if r.Intn(10) != 0 { - v45 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v45; i++ { - v46 := uint32(r.Uint32()) - this.Uint32Map[v46] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v47 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v47; i++ { - v48 := uint64(uint64(r.Uint32())) - this.Uint64Map[v48] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v49 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v49; i++ { - v50 := int32(r.Int31()) - this.Sint32Map[v50] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v50] *= -1 - } - } - } - if r.Intn(10) != 0 { - v51 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v51; i++ { - v52 := int64(r.Int63()) - this.Sint64Map[v52] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v52] *= -1 - } - } - } - if r.Intn(10) != 0 { - v53 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v53; i++ { - v54 := uint32(r.Uint32()) - this.Fixed32Map[v54] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v55 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v55; i++ { - v56 := int32(r.Int31()) - this.Sfixed32Map[v56] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v56] *= -1 - } - } - } - if r.Intn(10) != 0 { - v57 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v57; i++ { - v58 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v58] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v59 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v59; i++ { - v60 := int64(r.Int63()) - this.Sfixed64Map[v60] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v60] *= -1 - } - } - } - if r.Intn(10) != 0 { - v61 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v61; i++ { - v62 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v62] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v63 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v63; i++ { - this.StringMap[randStringTheproto3(r)] = randStringTheproto3(r) - } - } - if r.Intn(10) != 0 { - v64 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v64; i++ { - v65 := r.Intn(100) - v66 := randStringTheproto3(r) - this.StringToBytesMap[v66] = make([]byte, v65) - for i := 0; i < v65; i++ { - this.StringToBytesMap[v66][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v67 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v67; i++ { - this.StringToEnumMap[randStringTheproto3(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v68 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v68; i++ { - this.StringToMsgMap[randStringTheproto3(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedMessageWithMap(r randyTheproto3, easy bool) *MessageWithMap { - this := &MessageWithMap{} - if r.Intn(10) != 0 { - v69 := r.Intn(10) - this.NameMapping = make(map[int32]string) - for i := 0; i < v69; i++ { - this.NameMapping[int32(r.Int31())] = randStringTheproto3(r) - } - } - if r.Intn(10) != 0 { - v70 := r.Intn(10) - this.MsgMapping = make(map[int64]*FloatingPoint) - for i := 0; i < v70; i++ { - this.MsgMapping[int64(r.Int63())] = NewPopulatedFloatingPoint(r, easy) - } - } - if r.Intn(10) != 0 { - v71 := r.Intn(10) - this.ByteMapping = make(map[bool][]byte) - for i := 0; i < v71; i++ { - v72 := r.Intn(100) - v73 := bool(bool(r.Intn(2) == 0)) - this.ByteMapping[v73] = make([]byte, v72) - for i := 0; i < v72; i++ { - this.ByteMapping[v73][i] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedFloatingPoint(r randyTheproto3, easy bool) *FloatingPoint { - this := &FloatingPoint{} - this.F = float64(r.Float64()) - if r.Intn(2) == 0 { - this.F *= -1 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedUint128Pair(r randyTheproto3, easy bool) *Uint128Pair { - this := &Uint128Pair{} - v74 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Left = *v74 - this.Right = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedContainsNestedMap(r randyTheproto3, easy bool) *ContainsNestedMap { - this := &ContainsNestedMap{} - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *ContainsNestedMap_NestedMap { - this := &ContainsNestedMap_NestedMap{} - if r.Intn(10) != 0 { - v75 := r.Intn(10) - this.NestedMapField = make(map[string]float64) - for i := 0; i < v75; i++ { - v76 := randStringTheproto3(r) - this.NestedMapField[v76] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.NestedMapField[v76] *= -1 - } - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { - this := &NotPacked{} - v77 := r.Intn(10) - this.Key = make([]uint64, v77) - for i := 0; i < v77; i++ { - this.Key[i] = uint64(uint64(r.Uint32())) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -type randyTheproto3 interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneTheproto3(r randyTheproto3) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringTheproto3(r randyTheproto3) string { - v78 := r.Intn(100) - tmps := make([]rune, v78) - for i := 0; i < v78; i++ { - tmps[i] = randUTF8RuneTheproto3(r) - } - return string(tmps) -} -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - v79 := r.Int63() - if r.Intn(2) == 0 { - v79 *= -1 - } - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) - case 1: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Message) Size() (n int) { - var l int - _ = l - l = len(m.Name) - if l > 0 { - n += 1 + l + sovTheproto3(uint64(l)) - } - if m.Hilarity != 0 { - n += 1 + sovTheproto3(uint64(m.Hilarity)) - } - if m.HeightInCm != 0 { - n += 1 + sovTheproto3(uint64(m.HeightInCm)) - } - l = len(m.Data) - if l > 0 { - n += 1 + l + sovTheproto3(uint64(l)) - } - if m.ResultCount != 0 { - n += 1 + sovTheproto3(uint64(m.ResultCount)) - } - if m.TrueScotsman { - n += 2 - } - if m.Score != 0 { - n += 5 - } - if len(m.Key) > 0 { - l = 0 - for _, e := range m.Key { - l += sovTheproto3(uint64(e)) - } - n += 1 + sovTheproto3(uint64(l)) + l - } - if m.Nested != nil { - l = m.Nested.Size() - n += 1 + l + sovTheproto3(uint64(l)) - } - if len(m.Terrain) > 0 { - for k, v := range m.Terrain { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if m.Proto2Field != nil { - l = m.Proto2Field.Size() - n += 1 + l + sovTheproto3(uint64(l)) - } - if len(m.Proto2Value) > 0 { - for k, v := range m.Proto2Value { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *Nested) Size() (n int) { - var l int - _ = l - l = len(m.Bunny) - if l > 0 { - n += 1 + l + sovTheproto3(uint64(l)) - } - return n -} - -func (m *AllMaps) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if len(v) > 0 { - l = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *AllMapsOrdered) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if len(v) > 0 { - l = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *MessageWithMap) Size() (n int) { - var l int - _ = l - if len(m.NameMapping) > 0 { - for k, v := range m.NameMapping { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + len(v) + sovTheproto3(uint64(len(v))) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.MsgMapping) > 0 { - for k, v := range m.MsgMapping { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.ByteMapping) > 0 { - for k, v := range m.ByteMapping { - _ = k - _ = v - l = 0 - if len(v) > 0 { - l = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapEntrySize := 1 + 1 + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *FloatingPoint) Size() (n int) { - var l int - _ = l - if m.F != 0 { - n += 9 - } - return n -} - -func (m *Uint128Pair) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovTheproto3(uint64(l)) - if m.Right != nil { - l = m.Right.Size() - n += 1 + l + sovTheproto3(uint64(l)) - } - return n -} - -func (m *ContainsNestedMap) Size() (n int) { - var l int - _ = l - return n -} - -func (m *ContainsNestedMap_NestedMap) Size() (n int) { - var l int - _ = l - if len(m.NestedMapField) > 0 { - for k, v := range m.NestedMapField { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *NotPacked) Size() (n int) { - var l int - _ = l - if len(m.Key) > 0 { - for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) - } - } - return n -} - -func sovTheproto3(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozTheproto3(x uint64) (n int) { - return sovTheproto3(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Message) String() string { - if this == nil { - return "nil" - } - keysForTerrain := make([]int64, 0, len(this.Terrain)) - for k := range this.Terrain { - keysForTerrain = append(keysForTerrain, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) - mapStringForTerrain := "map[int64]*Nested{" - for _, k := range keysForTerrain { - mapStringForTerrain += fmt.Sprintf("%v: %v,", k, this.Terrain[k]) - } - mapStringForTerrain += "}" - keysForProto2Value := make([]int64, 0, len(this.Proto2Value)) - for k := range this.Proto2Value { - keysForProto2Value = append(keysForProto2Value, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) - mapStringForProto2Value := "map[int64]*test.NinOptEnum{" - for _, k := range keysForProto2Value { - mapStringForProto2Value += fmt.Sprintf("%v: %v,", k, this.Proto2Value[k]) - } - mapStringForProto2Value += "}" - s := strings.Join([]string{`&Message{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Hilarity:` + fmt.Sprintf("%v", this.Hilarity) + `,`, - `HeightInCm:` + fmt.Sprintf("%v", this.HeightInCm) + `,`, - `Data:` + fmt.Sprintf("%v", this.Data) + `,`, - `ResultCount:` + fmt.Sprintf("%v", this.ResultCount) + `,`, - `TrueScotsman:` + fmt.Sprintf("%v", this.TrueScotsman) + `,`, - `Score:` + fmt.Sprintf("%v", this.Score) + `,`, - `Key:` + fmt.Sprintf("%v", this.Key) + `,`, - `Nested:` + strings.Replace(fmt.Sprintf("%v", this.Nested), "Nested", "Nested", 1) + `,`, - `Terrain:` + mapStringForTerrain + `,`, - `Proto2Field:` + strings.Replace(fmt.Sprintf("%v", this.Proto2Field), "NinOptNative", "test.NinOptNative", 1) + `,`, - `Proto2Value:` + mapStringForProto2Value + `,`, - `}`, - }, "") - return s -} -func (this *Nested) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Nested{`, - `Bunny:` + fmt.Sprintf("%v", this.Bunny) + `,`, - `}`, - }, "") - return s -} -func (this *AllMaps) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMaps{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `}`, - }, "") - return s -} -func (this *AllMapsOrdered) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMapsOrdered{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `}`, - }, "") - return s -} -func (this *MessageWithMap) String() string { - if this == nil { - return "nil" - } - keysForNameMapping := make([]int32, 0, len(this.NameMapping)) - for k := range this.NameMapping { - keysForNameMapping = append(keysForNameMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) - mapStringForNameMapping := "map[int32]string{" - for _, k := range keysForNameMapping { - mapStringForNameMapping += fmt.Sprintf("%v: %v,", k, this.NameMapping[k]) - } - mapStringForNameMapping += "}" - keysForMsgMapping := make([]int64, 0, len(this.MsgMapping)) - for k := range this.MsgMapping { - keysForMsgMapping = append(keysForMsgMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) - mapStringForMsgMapping := "map[int64]*FloatingPoint{" - for _, k := range keysForMsgMapping { - mapStringForMsgMapping += fmt.Sprintf("%v: %v,", k, this.MsgMapping[k]) - } - mapStringForMsgMapping += "}" - keysForByteMapping := make([]bool, 0, len(this.ByteMapping)) - for k := range this.ByteMapping { - keysForByteMapping = append(keysForByteMapping, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) - mapStringForByteMapping := "map[bool][]byte{" - for _, k := range keysForByteMapping { - mapStringForByteMapping += fmt.Sprintf("%v: %v,", k, this.ByteMapping[k]) - } - mapStringForByteMapping += "}" - s := strings.Join([]string{`&MessageWithMap{`, - `NameMapping:` + mapStringForNameMapping + `,`, - `MsgMapping:` + mapStringForMsgMapping + `,`, - `ByteMapping:` + mapStringForByteMapping + `,`, - `}`, - }, "") - return s -} -func (this *FloatingPoint) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&FloatingPoint{`, - `F:` + fmt.Sprintf("%v", this.F) + `,`, - `}`, - }, "") - return s -} -func (this *Uint128Pair) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Uint128Pair{`, - `Left:` + fmt.Sprintf("%v", this.Left) + `,`, - `Right:` + fmt.Sprintf("%v", this.Right) + `,`, - `}`, - }, "") - return s -} -func (this *ContainsNestedMap) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ContainsNestedMap{`, - `}`, - }, "") - return s -} -func (this *ContainsNestedMap_NestedMap) String() string { - if this == nil { - return "nil" - } - keysForNestedMapField := make([]string, 0, len(this.NestedMapField)) - for k := range this.NestedMapField { - keysForNestedMapField = append(keysForNestedMapField, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) - mapStringForNestedMapField := "map[string]float64{" - for _, k := range keysForNestedMapField { - mapStringForNestedMapField += fmt.Sprintf("%v: %v,", k, this.NestedMapField[k]) - } - mapStringForNestedMapField += "}" - s := strings.Join([]string{`&ContainsNestedMap_NestedMap{`, - `NestedMapField:` + mapStringForNestedMapField + `,`, - `}`, - }, "") - return s -} -func (this *NotPacked) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NotPacked{`, - `Key:` + fmt.Sprintf("%v", this.Key) + `,`, - `}`, - }, "") - return s -} -func valueToStringTheproto3(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Message) 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 *Message) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Name) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Name))) - i += copy(dAtA[i:], m.Name) - } - if m.Hilarity != 0 { - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Hilarity)) - } - if m.HeightInCm != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.HeightInCm)) - } - if len(m.Data) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Data))) - i += copy(dAtA[i:], m.Data) - } - if len(m.Key) > 0 { - dAtA2 := make([]byte, len(m.Key)*10) - var j1 int - for _, num := range m.Key { - for num >= 1<<7 { - dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j1++ - } - dAtA2[j1] = uint8(num) - j1++ - } - dAtA[i] = 0x2a - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(j1)) - i += copy(dAtA[i:], dAtA2[:j1]) - } - if m.Nested != nil { - dAtA[i] = 0x32 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Nested.Size())) - n3, err := m.Nested.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - } - if m.ResultCount != 0 { - dAtA[i] = 0x38 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.ResultCount)) - } - if m.TrueScotsman { - dAtA[i] = 0x40 - i++ - if m.TrueScotsman { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Score != 0 { - dAtA[i] = 0x4d - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Score - i += 4 - } - if len(m.Terrain) > 0 { - for k := range m.Terrain { - dAtA[i] = 0x52 - i++ - v := m.Terrain[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + sovTheproto3(uint64(k)) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n4, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - } - } - } - if m.Proto2Field != nil { - dAtA[i] = 0x5a - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Proto2Field.Size())) - n5, err := m.Proto2Field.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - if len(m.Proto2Value) > 0 { - for k := range m.Proto2Value { - dAtA[i] = 0x6a - i++ - v := m.Proto2Value[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + sovTheproto3(uint64(k)) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n6, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 - } - } - } - return i, nil -} - -func (m *Nested) 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 *Nested) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Bunny) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Bunny))) - i += copy(dAtA[i:], m.Bunny) - } - return i, nil -} - -func (m *AllMaps) 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 *AllMaps) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k := range m.StringToDoubleMap { - dAtA[i] = 0xa - i++ - v := m.StringToDoubleMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - if len(m.StringToFloatMap) > 0 { - for k := range m.StringToFloatMap { - dAtA[i] = 0x12 - i++ - v := m.StringToFloatMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) - } - } - if len(m.Int32Map) > 0 { - for k := range m.Int32Map { - dAtA[i] = 0x1a - i++ - v := m.Int32Map[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Int64Map) > 0 { - for k := range m.Int64Map { - dAtA[i] = 0x22 - i++ - v := m.Int64Map[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Uint32Map) > 0 { - for k := range m.Uint32Map { - dAtA[i] = 0x2a - i++ - v := m.Uint32Map[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Uint64Map) > 0 { - for k := range m.Uint64Map { - dAtA[i] = 0x32 - i++ - v := m.Uint64Map[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Sint32Map) > 0 { - for k := range m.Sint32Map { - dAtA[i] = 0x3a - i++ - v := m.Sint32Map[k] - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) - } - } - if len(m.Sint64Map) > 0 { - for k := range m.Sint64Map { - dAtA[i] = 0x42 - i++ - v := m.Sint64Map[k] - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) - } - } - if len(m.Fixed32Map) > 0 { - for k := range m.Fixed32Map { - dAtA[i] = 0x4a - i++ - v := m.Fixed32Map[k] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) - } - } - if len(m.Sfixed32Map) > 0 { - for k := range m.Sfixed32Map { - dAtA[i] = 0x52 - i++ - v := m.Sfixed32Map[k] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) - } - } - if len(m.Fixed64Map) > 0 { - for k := range m.Fixed64Map { - dAtA[i] = 0x5a - i++ - v := m.Fixed64Map[k] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) - } - } - if len(m.Sfixed64Map) > 0 { - for k := range m.Sfixed64Map { - dAtA[i] = 0x62 - i++ - v := m.Sfixed64Map[k] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) - } - } - if len(m.BoolMap) > 0 { - for k := range m.BoolMap { - dAtA[i] = 0x6a - i++ - v := m.BoolMap[k] - mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x10 - i++ - if v { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.StringMap) > 0 { - for k := range m.StringMap { - dAtA[i] = 0x72 - i++ - v := m.StringMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.StringToBytesMap) > 0 { - for k := range m.StringToBytesMap { - dAtA[i] = 0x7a - i++ - v := m.StringToBytesMap[k] - byteSize := 0 - if len(v) > 0 { - byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if len(v) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - if len(m.StringToEnumMap) > 0 { - for k := range m.StringToEnumMap { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToEnumMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.StringToMsgMap) > 0 { - for k := range m.StringToMsgMap { - dAtA[i] = 0x8a - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToMsgMap[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n7, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - } - } - } - return i, nil -} - -func (m *AllMapsOrdered) 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 *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - keysForStringToDoubleMap := make([]string, 0, len(m.StringToDoubleMap)) - for k := range m.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - for _, k := range keysForStringToDoubleMap { - dAtA[i] = 0xa - i++ - v := m.StringToDoubleMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - if len(m.StringToFloatMap) > 0 { - keysForStringToFloatMap := make([]string, 0, len(m.StringToFloatMap)) - for k := range m.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - for _, k := range keysForStringToFloatMap { - dAtA[i] = 0x12 - i++ - v := m.StringToFloatMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) - } - } - if len(m.Int32Map) > 0 { - keysForInt32Map := make([]int32, 0, len(m.Int32Map)) - for k := range m.Int32Map { - keysForInt32Map = append(keysForInt32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - for _, k := range keysForInt32Map { - dAtA[i] = 0x1a - i++ - v := m.Int32Map[int32(k)] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Int64Map) > 0 { - keysForInt64Map := make([]int64, 0, len(m.Int64Map)) - for k := range m.Int64Map { - keysForInt64Map = append(keysForInt64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - for _, k := range keysForInt64Map { - dAtA[i] = 0x22 - i++ - v := m.Int64Map[int64(k)] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Uint32Map) > 0 { - keysForUint32Map := make([]uint32, 0, len(m.Uint32Map)) - for k := range m.Uint32Map { - keysForUint32Map = append(keysForUint32Map, uint32(k)) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - for _, k := range keysForUint32Map { - dAtA[i] = 0x2a - i++ - v := m.Uint32Map[uint32(k)] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Uint64Map) > 0 { - keysForUint64Map := make([]uint64, 0, len(m.Uint64Map)) - for k := range m.Uint64Map { - keysForUint64Map = append(keysForUint64Map, uint64(k)) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - for _, k := range keysForUint64Map { - dAtA[i] = 0x32 - i++ - v := m.Uint64Map[uint64(k)] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Sint32Map) > 0 { - keysForSint32Map := make([]int32, 0, len(m.Sint32Map)) - for k := range m.Sint32Map { - keysForSint32Map = append(keysForSint32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - for _, k := range keysForSint32Map { - dAtA[i] = 0x3a - i++ - v := m.Sint32Map[int32(k)] - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) - } - } - if len(m.Sint64Map) > 0 { - keysForSint64Map := make([]int64, 0, len(m.Sint64Map)) - for k := range m.Sint64Map { - keysForSint64Map = append(keysForSint64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - for _, k := range keysForSint64Map { - dAtA[i] = 0x42 - i++ - v := m.Sint64Map[int64(k)] - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) - } - } - if len(m.Fixed32Map) > 0 { - keysForFixed32Map := make([]uint32, 0, len(m.Fixed32Map)) - for k := range m.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, uint32(k)) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - for _, k := range keysForFixed32Map { - dAtA[i] = 0x4a - i++ - v := m.Fixed32Map[uint32(k)] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) - } - } - if len(m.Sfixed32Map) > 0 { - keysForSfixed32Map := make([]int32, 0, len(m.Sfixed32Map)) - for k := range m.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - for _, k := range keysForSfixed32Map { - dAtA[i] = 0x52 - i++ - v := m.Sfixed32Map[int32(k)] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) - } - } - if len(m.Fixed64Map) > 0 { - keysForFixed64Map := make([]uint64, 0, len(m.Fixed64Map)) - for k := range m.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, uint64(k)) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - for _, k := range keysForFixed64Map { - dAtA[i] = 0x5a - i++ - v := m.Fixed64Map[uint64(k)] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) - } - } - if len(m.Sfixed64Map) > 0 { - keysForSfixed64Map := make([]int64, 0, len(m.Sfixed64Map)) - for k := range m.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - for _, k := range keysForSfixed64Map { - dAtA[i] = 0x62 - i++ - v := m.Sfixed64Map[int64(k)] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) - } - } - if len(m.BoolMap) > 0 { - keysForBoolMap := make([]bool, 0, len(m.BoolMap)) - for k := range m.BoolMap { - keysForBoolMap = append(keysForBoolMap, bool(k)) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - for _, k := range keysForBoolMap { - dAtA[i] = 0x6a - i++ - v := m.BoolMap[bool(k)] - mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x10 - i++ - if v { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.StringMap) > 0 { - keysForStringMap := make([]string, 0, len(m.StringMap)) - for k := range m.StringMap { - keysForStringMap = append(keysForStringMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - for _, k := range keysForStringMap { - dAtA[i] = 0x72 - i++ - v := m.StringMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.StringToBytesMap) > 0 { - keysForStringToBytesMap := make([]string, 0, len(m.StringToBytesMap)) - for k := range m.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - for _, k := range keysForStringToBytesMap { - dAtA[i] = 0x7a - i++ - v := m.StringToBytesMap[string(k)] - byteSize := 0 - if len(v) > 0 { - byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if len(v) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - if len(m.StringToEnumMap) > 0 { - keysForStringToEnumMap := make([]string, 0, len(m.StringToEnumMap)) - for k := range m.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - for _, k := range keysForStringToEnumMap { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToEnumMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.StringToMsgMap) > 0 { - keysForStringToMsgMap := make([]string, 0, len(m.StringToMsgMap)) - for k := range m.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - for _, k := range keysForStringToMsgMap { - dAtA[i] = 0x8a - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToMsgMap[string(k)] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n8, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n8 - } - } - } - return i, nil -} - -func (m *MessageWithMap) 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 *MessageWithMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NameMapping) > 0 { - for k := range m.NameMapping { - dAtA[i] = 0xa - i++ - v := m.NameMapping[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.MsgMapping) > 0 { - for k := range m.MsgMapping { - dAtA[i] = 0x12 - i++ - v := m.MsgMapping[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + sozTheproto3(uint64(k)) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n9, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n9 - } - } - } - if len(m.ByteMapping) > 0 { - for k := range m.ByteMapping { - dAtA[i] = 0x1a - i++ - v := m.ByteMapping[k] - byteSize := 0 - if len(v) > 0 { - byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapSize := 1 + 1 + byteSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - if len(v) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - return i, nil -} - -func (m *FloatingPoint) 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 *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.F != 0 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.F - i += 8 - } - return i, nil -} - -func (m *Uint128Pair) 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 *Uint128Pair) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Left.Size())) - n10, err := m.Left.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n10 - if m.Right != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Right.Size())) - n11, err := m.Right.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n11 - } - return i, nil -} - -func (m *ContainsNestedMap) 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 *ContainsNestedMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - return i, nil -} - -func (m *ContainsNestedMap_NestedMap) 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 *ContainsNestedMap_NestedMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NestedMapField) > 0 { - for k := range m.NestedMapField { - dAtA[i] = 0xa - i++ - v := m.NestedMapField[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - return i, nil -} - -func (m *NotPacked) 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 *NotPacked) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Key) > 0 { - for _, num := range m.Key { - dAtA[i] = 0x28 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(num)) - } - } - return i, nil -} - -func encodeFixed64Theproto3(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 encodeFixed32Theproto3(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 encodeVarintTheproto3(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 *Message) 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 ErrIntOverflowTheproto3Unsafe - } - 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: Message: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Message: 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 ErrIntOverflowTheproto3Unsafe - } - 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 ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Hilarity", wireType) - } - m.Hilarity = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Hilarity |= (Message_Humour(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HeightInCm", wireType) - } - m.HeightInCm = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.HeightInCm |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} - } - iNdEx = postIndex - case 5: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Key = append(m.Key, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Key = append(m.Key, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) - } - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nested", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Nested == nil { - m.Nested = &Nested{} - } - if err := m.Nested.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ResultCount", wireType) - } - m.ResultCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ResultCount |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TrueScotsman", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TrueScotsman = bool(v != 0) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Score", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Score = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Terrain", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Terrain == nil { - m.Terrain = make(map[int64]*Nested) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Nested{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Terrain[mapkey] = mapvalue - } else { - var mapvalue *Nested - m.Terrain[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Proto2Field", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Proto2Field == nil { - m.Proto2Field = &test.NinOptNative{} - } - if err := m.Proto2Field.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Proto2Value", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Proto2Value == nil { - m.Proto2Value = make(map[int64]*test.NinOptEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &test.NinOptEnum{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Proto2Value[mapkey] = mapvalue - } else { - var mapvalue *test.NinOptEnum - m.Proto2Value[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Nested) 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 ErrIntOverflowTheproto3Unsafe - } - 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: Nested: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Nested: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bunny", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - 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 ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Bunny = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllMaps) 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 ErrIntOverflowTheproto3Unsafe - } - 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: AllMaps: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 17: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToMsgMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllMapsOrdered) 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 ErrIntOverflowTheproto3Unsafe - } - 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: AllMapsOrdered: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllMapsOrdered: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 17: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToMsgMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MessageWithMap) 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 ErrIntOverflowTheproto3Unsafe - } - 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: MessageWithMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MessageWithMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NameMapping", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NameMapping == nil { - m.NameMapping = make(map[int32]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.NameMapping[mapkey] = mapvalue - } else { - var mapvalue string - m.NameMapping[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MsgMapping", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.MsgMapping == nil { - m.MsgMapping = make(map[int64]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MsgMapping[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.MsgMapping[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ByteMapping", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.ByteMapping == nil { - m.ByteMapping = make(map[bool][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.ByteMapping[mapkey] = mapvalue - } else { - var mapvalue []byte - m.ByteMapping[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *FloatingPoint) 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 ErrIntOverflowTheproto3Unsafe - } - 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: FloatingPoint: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: FloatingPoint: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field F", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.F = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Uint128Pair) 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 ErrIntOverflowTheproto3Unsafe - } - 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: Uint128Pair: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Uint128Pair: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.Right = &v - if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ContainsNestedMap) 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 ErrIntOverflowTheproto3Unsafe - } - 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: ContainsNestedMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ContainsNestedMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ContainsNestedMap_NestedMap) 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 ErrIntOverflowTheproto3Unsafe - } - 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: NestedMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NestedMapField", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.NestedMapField == nil { - m.NestedMapField = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.NestedMapField[mapkey] = mapvalue - } else { - var mapvalue float64 - m.NestedMapField[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NotPacked) 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 ErrIntOverflowTheproto3Unsafe - } - 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: NotPacked: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NotPacked: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 5: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Key = append(m.Key, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Key = append(m.Key, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipTheproto3Unsafe(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, ErrIntOverflowTheproto3Unsafe - } - 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, ErrIntOverflowTheproto3Unsafe - } - 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, ErrIntOverflowTheproto3Unsafe - } - 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, ErrInvalidLengthTheproto3Unsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowTheproto3Unsafe - } - 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 := skipTheproto3Unsafe(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 ( - ErrInvalidLengthTheproto3Unsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowTheproto3Unsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeboth/theproto3.proto", fileDescriptorTheproto3) } - -var fileDescriptorTheproto3 = []byte{ - // 1605 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xbf, 0x6f, 0xdb, 0x46, - 0x14, 0xc7, 0x75, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x2f, 0x69, 0xa1, 0x1a, 0x28, 0x2d, 0x2b, 0x40, - 0xa2, 0x04, 0x8d, 0x9c, 0x3a, 0x49, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6, 0xe2, - 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x24, 0x22, 0x12, 0x69, 0x88, 0xa7, 0xa0, 0xde, - 0xf2, 0x67, 0x74, 0x2b, 0xba, 0x75, 0x2c, 0x32, 0x14, 0x1d, 0xdb, 0xcd, 0x63, 0x80, 0x2e, 0x45, - 0x87, 0x20, 0x56, 0x97, 0x8c, 0x19, 0x33, 0x16, 0xbc, 0x23, 0xa5, 0x13, 0x79, 0x14, 0x9b, 0x2e, - 0x5d, 0x3c, 0x89, 0xf7, 0xfc, 0xbe, 0x9f, 0x7b, 0x3c, 0xde, 0x3d, 0x7e, 0x41, 0xc3, 0xd2, 0x81, - 0xd1, 0x6f, 0x19, 0xe6, 0xf2, 0x50, 0x37, 0x95, 0xb6, 0xda, 0x32, 0x48, 0x77, 0x99, 0x74, 0xd5, - 0xa3, 0x81, 0x41, 0x8c, 0xeb, 0x65, 0xfa, 0x83, 0x53, 0xe3, 0xc0, 0xc2, 0xd5, 0x8e, 0x46, 0xba, - 0xc3, 0x56, 0xf9, 0xc0, 0xe8, 0x2f, 0x77, 0x8c, 0x8e, 0xb1, 0x4c, 0xe3, 0xad, 0x61, 0x9b, 0x8e, - 0xe8, 0x80, 0x5e, 0x31, 0xe5, 0xc2, 0xc7, 0xbe, 0xe9, 0x44, 0x35, 0xc9, 0xb2, 0x3d, 0xb5, 0x33, - 0xa9, 0x15, 0x63, 0xc2, 0xe2, 0xef, 0x31, 0x48, 0x6c, 0xa9, 0xa6, 0xa9, 0x74, 0x54, 0x8c, 0x21, - 0xaa, 0x2b, 0x7d, 0x35, 0x8f, 0x0a, 0xa8, 0x94, 0x6a, 0xd0, 0x6b, 0x7c, 0x13, 0x92, 0x5d, 0xad, - 0xa7, 0x0c, 0x34, 0x72, 0x9c, 0x0f, 0x17, 0x50, 0x29, 0xb7, 0xf2, 0x5e, 0x79, 0x52, 0xb6, 0xad, - 0x2c, 0xdf, 0x1b, 0xf6, 0x8d, 0xe1, 0xa0, 0x31, 0x4e, 0xc5, 0x05, 0xc8, 0x74, 0x55, 0xad, 0xd3, - 0x25, 0xfb, 0x9a, 0xbe, 0x7f, 0xd0, 0xcf, 0x47, 0x0a, 0xa8, 0x94, 0x6d, 0x00, 0x8b, 0x6d, 0xe8, - 0xd5, 0xbe, 0x35, 0xd9, 0xa1, 0x42, 0x94, 0x7c, 0xb4, 0x80, 0x4a, 0x99, 0x06, 0xbd, 0xc6, 0x12, - 0x44, 0x1e, 0xab, 0xc7, 0xf9, 0x58, 0x21, 0x52, 0x8a, 0x36, 0xac, 0x4b, 0x7c, 0x19, 0xe2, 0xba, - 0x6a, 0x12, 0xf5, 0x30, 0x1f, 0x2f, 0xa0, 0x52, 0x7a, 0x65, 0x9e, 0x9b, 0xbc, 0x4e, 0xff, 0xd0, - 0xb0, 0x13, 0xf0, 0x12, 0x64, 0x06, 0xaa, 0x39, 0xec, 0x91, 0xfd, 0x03, 0x63, 0xa8, 0x93, 0x7c, - 0xa2, 0x80, 0x4a, 0x91, 0x46, 0x9a, 0xc5, 0xaa, 0x56, 0x08, 0x5f, 0x80, 0x2c, 0x19, 0x0c, 0xd5, - 0x7d, 0xf3, 0xc0, 0x20, 0x66, 0x5f, 0xd1, 0xf3, 0xc9, 0x02, 0x2a, 0x25, 0x1b, 0x19, 0x2b, 0xd8, - 0xb4, 0x63, 0xf8, 0x3c, 0xc4, 0xcc, 0x03, 0x63, 0xa0, 0xe6, 0x53, 0x05, 0x54, 0x0a, 0x37, 0xd8, - 0x00, 0x7f, 0x02, 0x09, 0xa2, 0x0e, 0x06, 0x8a, 0xa6, 0xe7, 0xa1, 0x10, 0x29, 0xa5, 0x57, 0x16, - 0x05, 0xcb, 0xb0, 0xc3, 0x32, 0xd6, 0x75, 0x32, 0x38, 0x6e, 0x38, 0xf9, 0xf8, 0x26, 0x64, 0x68, - 0xde, 0xca, 0x7e, 0x5b, 0x53, 0x7b, 0x87, 0xf9, 0x34, 0xbd, 0x13, 0x5c, 0xa6, 0x4f, 0xa1, 0xae, - 0xe9, 0x0f, 0x8e, 0x48, 0x5d, 0x21, 0xda, 0x13, 0xb5, 0x91, 0x66, 0x79, 0x35, 0x2b, 0x0d, 0xd7, - 0xc6, 0xb2, 0x27, 0x4a, 0x6f, 0xa8, 0xe6, 0xb3, 0x74, 0xda, 0x0b, 0x82, 0x69, 0xb7, 0x69, 0xda, - 0x43, 0x2b, 0x8b, 0x4d, 0x6d, 0x73, 0x68, 0x64, 0x61, 0x0b, 0x32, 0x7c, 0x5d, 0xce, 0x22, 0x23, - 0xba, 0x3c, 0x74, 0x91, 0x2f, 0x41, 0x8c, 0x4d, 0x11, 0xf6, 0x5b, 0x63, 0xf6, 0xf7, 0xd5, 0xf0, - 0x2d, 0xb4, 0xb0, 0x0d, 0x92, 0x7b, 0x3e, 0x01, 0xf2, 0xe2, 0x34, 0x52, 0xe2, 0x6f, 0x76, 0x5d, - 0x1f, 0xf6, 0x39, 0x62, 0xf1, 0x0e, 0xc4, 0xd9, 0xfe, 0xc1, 0x69, 0x48, 0xec, 0xd6, 0xef, 0xd7, - 0x1f, 0xec, 0xd5, 0xa5, 0x10, 0x4e, 0x42, 0x74, 0x7b, 0xb7, 0xde, 0x94, 0x10, 0xce, 0x42, 0xaa, - 0xb9, 0xb9, 0xb6, 0xdd, 0xdc, 0xd9, 0xa8, 0xde, 0x97, 0xc2, 0x78, 0x0e, 0xd2, 0x95, 0x8d, 0xcd, - 0xcd, 0xfd, 0xca, 0xda, 0xc6, 0xe6, 0xfa, 0x37, 0x52, 0xa4, 0x28, 0x43, 0x9c, 0xd5, 0x69, 0x3d, - 0xbb, 0xd6, 0x50, 0xd7, 0x8f, 0xed, 0x2d, 0xcc, 0x06, 0xc5, 0x67, 0x18, 0x12, 0x6b, 0xbd, 0xde, - 0x96, 0x72, 0x64, 0xe2, 0x3d, 0x98, 0x6f, 0x92, 0x81, 0xa6, 0x77, 0x76, 0x8c, 0xbb, 0xc6, 0xb0, - 0xd5, 0x53, 0xb7, 0x94, 0xa3, 0x3c, 0xa2, 0x4b, 0x7b, 0x99, 0xbb, 0x6f, 0x3b, 0xbd, 0xec, 0xc9, - 0x65, 0x0b, 0xec, 0x65, 0xe0, 0x1d, 0x90, 0x9c, 0x60, 0xad, 0x67, 0x28, 0xc4, 0xe2, 0x86, 0x29, - 0xb7, 0x34, 0x83, 0xeb, 0xa4, 0x32, 0xac, 0x87, 0x80, 0x6f, 0x43, 0x72, 0x43, 0x27, 0xd7, 0x57, - 0x2c, 0x5a, 0x84, 0xd2, 0x0a, 0x02, 0x9a, 0x93, 0xc2, 0x28, 0x63, 0x85, 0xad, 0xfe, 0xe8, 0x86, - 0xa5, 0x8e, 0xce, 0x52, 0xd3, 0x94, 0x89, 0x9a, 0x0e, 0xf1, 0x1d, 0x48, 0xed, 0x6a, 0xce, 0xe4, - 0x31, 0x2a, 0x5f, 0x12, 0xc8, 0xc7, 0x39, 0x4c, 0x3f, 0xd1, 0x38, 0x00, 0x36, 0x7f, 0x7c, 0x26, - 0x80, 0x2b, 0x60, 0xa2, 0xb1, 0x00, 0xcd, 0x71, 0x05, 0x09, 0x5f, 0x40, 0xd3, 0x55, 0x41, 0x93, - 0xaf, 0xa0, 0x39, 0xae, 0x20, 0x39, 0x13, 0xc0, 0x57, 0x30, 0x1e, 0xe3, 0x0a, 0x40, 0x4d, 0xfb, - 0x4e, 0x3d, 0x64, 0x25, 0xa4, 0x28, 0xa1, 0x28, 0x20, 0x4c, 0x92, 0x18, 0x82, 0x53, 0xe1, 0x75, - 0x48, 0x37, 0xdb, 0x13, 0x08, 0x78, 0xce, 0xf1, 0xb8, 0x8c, 0xb6, 0x8b, 0xc2, 0xeb, 0xc6, 0xa5, - 0xb0, 0x9b, 0x49, 0xcf, 0x2e, 0x85, 0xbb, 0x1b, 0x4e, 0x35, 0x29, 0x85, 0x41, 0x32, 0x01, 0xa5, - 0x70, 0x14, 0x5e, 0x67, 0x35, 0xc3, 0x8a, 0x61, 0x58, 0x99, 0x76, 0x57, 0x5a, 0x14, 0x20, 0xec, - 0x0c, 0xbb, 0x19, 0xda, 0x23, 0xfa, 0x44, 0xe8, 0x26, 0xb7, 0xc4, 0x39, 0xff, 0x27, 0xe2, 0xe4, - 0x38, 0x4f, 0xc4, 0x19, 0xf3, 0xe7, 0xac, 0x72, 0x4c, 0x54, 0xd3, 0xe2, 0xcc, 0x05, 0x9e, 0x33, - 0x27, 0xd5, 0x75, 0xce, 0x9c, 0x30, 0xfe, 0x0a, 0xe6, 0x9c, 0x98, 0xd5, 0x9e, 0x2c, 0xa8, 0x44, - 0xa1, 0x97, 0x66, 0x40, 0xed, 0x4c, 0xc6, 0x74, 0xeb, 0x71, 0x1d, 0x72, 0x4e, 0x68, 0xcb, 0xa4, - 0xb7, 0x3b, 0x4f, 0x89, 0x17, 0x67, 0x10, 0x59, 0x22, 0x03, 0xba, 0xd4, 0x0b, 0x77, 0xe1, 0x5d, - 0x71, 0x37, 0xe2, 0xdb, 0x6f, 0x8a, 0xb5, 0xdf, 0xf3, 0x7c, 0xfb, 0x45, 0x7c, 0xfb, 0xae, 0xc2, - 0x3b, 0xc2, 0xde, 0x13, 0x04, 0x09, 0xf3, 0x90, 0x4f, 0x21, 0x3b, 0xd5, 0x72, 0x78, 0x71, 0x4c, - 0x20, 0x8e, 0x79, 0xc5, 0x93, 0xad, 0x25, 0x78, 0x7b, 0x4c, 0x89, 0x23, 0xbc, 0xf8, 0x36, 0xe4, - 0xa6, 0xfb, 0x0d, 0xaf, 0xce, 0x0a, 0xd4, 0x59, 0x81, 0x5a, 0x3c, 0x77, 0x54, 0xa0, 0x8e, 0xba, - 0xd4, 0x4d, 0xdf, 0xb9, 0xe7, 0x05, 0xea, 0x79, 0x81, 0x5a, 0x3c, 0x37, 0x16, 0xa8, 0x31, 0xaf, - 0xfe, 0x0c, 0xe6, 0x5c, 0x2d, 0x86, 0x97, 0x27, 0x04, 0xf2, 0x04, 0x2f, 0xff, 0x1c, 0x24, 0x77, - 0x73, 0xe1, 0xf5, 0x73, 0x02, 0xfd, 0x9c, 0x68, 0x7a, 0x71, 0xf5, 0x71, 0x81, 0x3c, 0x2e, 0x9c, - 0x5e, 0xac, 0x97, 0x04, 0x7a, 0x89, 0xd7, 0xaf, 0x42, 0x86, 0xef, 0x26, 0xbc, 0x36, 0x29, 0xd0, - 0x26, 0xdd, 0xeb, 0x3e, 0xd5, 0x4c, 0x82, 0x76, 0x7a, 0xca, 0xe7, 0xb8, 0x4c, 0xb5, 0x90, 0x20, - 0x48, 0x86, 0x87, 0x3c, 0x84, 0xf3, 0xa2, 0x96, 0x21, 0x60, 0x94, 0x78, 0x46, 0xce, 0xf2, 0x88, - 0x13, 0xb3, 0x67, 0xa9, 0xa6, 0x8c, 0xd3, 0xc2, 0x23, 0x38, 0x27, 0x68, 0x1c, 0x02, 0x6c, 0x79, - 0xda, 0x8d, 0xe5, 0x39, 0x2c, 0x6d, 0x02, 0x9a, 0xde, 0xd9, 0x36, 0x34, 0x9d, 0xf0, 0xae, 0xec, - 0x97, 0x73, 0x90, 0xb3, 0xdb, 0xd3, 0x83, 0xc1, 0xa1, 0x3a, 0x50, 0x0f, 0xf1, 0xb7, 0xfe, 0xde, - 0xe9, 0x9a, 0xb7, 0xa9, 0xd9, 0xaa, 0xb7, 0xb0, 0x50, 0x8f, 0x7c, 0x2d, 0xd4, 0x72, 0x30, 0x3e, - 0xc8, 0x49, 0x55, 0x3d, 0x4e, 0xea, 0x92, 0x3f, 0xd4, 0xcf, 0x50, 0x55, 0x3d, 0x86, 0x6a, 0x36, - 0x44, 0xe8, 0xab, 0x6a, 0x5e, 0x5f, 0x55, 0xf2, 0xa7, 0xf8, 0xdb, 0xab, 0x9a, 0xd7, 0x5e, 0x05, - 0x70, 0xc4, 0x2e, 0xab, 0xe6, 0x75, 0x59, 0x33, 0x38, 0xfe, 0x66, 0xab, 0xe6, 0x35, 0x5b, 0x01, - 0x1c, 0xb1, 0xe7, 0xda, 0x10, 0x78, 0xae, 0xcb, 0xfe, 0xa0, 0x59, 0xd6, 0x6b, 0x53, 0x64, 0xbd, - 0xae, 0xcc, 0x28, 0x6a, 0xa6, 0x03, 0xdb, 0x10, 0x38, 0xb0, 0xa0, 0xc2, 0x7c, 0x8c, 0xd8, 0xa6, - 0xc8, 0x88, 0x05, 0x16, 0xe6, 0xe7, 0xc7, 0xbe, 0x70, 0xfb, 0xb1, 0x8b, 0xfe, 0x24, 0xb1, 0x2d, - 0xab, 0x79, 0x6d, 0x59, 0x29, 0xe8, 0xcc, 0x89, 0xdc, 0xd9, 0x23, 0x5f, 0x77, 0xf6, 0x2f, 0x8e, - 0x70, 0x90, 0x49, 0xfb, 0xda, 0xcf, 0xa4, 0x95, 0x83, 0xd9, 0xb3, 0xbd, 0xda, 0xae, 0x8f, 0x57, - 0xbb, 0x1a, 0x0c, 0x3e, 0xb3, 0x6c, 0x67, 0x96, 0xed, 0xcc, 0xb2, 0x9d, 0x59, 0xb6, 0xff, 0xdf, - 0xb2, 0xad, 0x46, 0xbf, 0xff, 0x71, 0x11, 0x15, 0xff, 0x88, 0x40, 0xce, 0xfe, 0x32, 0xb8, 0xa7, - 0x91, 0xae, 0xd5, 0xde, 0xb6, 0x20, 0xa3, 0x2b, 0x7d, 0x75, 0xbf, 0xaf, 0x1c, 0x1d, 0x69, 0x7a, - 0xc7, 0xf6, 0x6c, 0x57, 0xbc, 0x9f, 0x12, 0x6d, 0x41, 0xb9, 0xae, 0xf4, 0xad, 0x5e, 0x65, 0x25, - 0xdb, 0xaf, 0x1b, 0x7d, 0x12, 0xc1, 0x5f, 0x42, 0xba, 0x6f, 0x76, 0xc6, 0xb4, 0xb0, 0xe7, 0x45, - 0xe8, 0xa2, 0xb1, 0x3b, 0x9d, 0xc0, 0xa0, 0x3f, 0x0e, 0x58, 0xa5, 0xb5, 0x8e, 0xc9, 0xa4, 0xb4, - 0x48, 0x50, 0x69, 0xd6, 0x33, 0x9d, 0x2e, 0xad, 0x35, 0x89, 0x58, 0xdb, 0xd6, 0x5d, 0x7b, 0x50, - 0xa7, 0x9b, 0xda, 0x3c, 0x7b, 0x30, 0xe7, 0xaa, 0x56, 0x70, 0xe6, 0xff, 0xc3, 0xb3, 0xb1, 0x0a, - 0x73, 0x57, 0x1e, 0x74, 0x26, 0xf8, 0x0d, 0x59, 0x7c, 0x1f, 0xb2, 0x53, 0x6c, 0x9c, 0x01, 0xd4, - 0xa6, 0x52, 0xd4, 0x40, 0xed, 0xe2, 0x0f, 0x08, 0xd2, 0x56, 0x9f, 0xfc, 0x70, 0xe5, 0xd6, 0xb6, - 0xa2, 0x0d, 0xf0, 0x3d, 0x88, 0xf6, 0xd4, 0x36, 0xa1, 0x09, 0x99, 0xca, 0x8d, 0x93, 0x17, 0x8b, - 0xa1, 0xbf, 0x5e, 0x2c, 0x7e, 0x10, 0xf0, 0x5f, 0x82, 0xa1, 0x49, 0x8c, 0x7e, 0xd9, 0xe6, 0x34, - 0x28, 0x01, 0xd7, 0x20, 0x36, 0xd0, 0x3a, 0x5d, 0xc2, 0x4a, 0xaa, 0x5c, 0x7b, 0x6b, 0x0c, 0x93, - 0x17, 0x4f, 0x10, 0xcc, 0x57, 0x0d, 0x9d, 0x28, 0x9a, 0x6e, 0xb2, 0xaf, 0xb5, 0xd6, 0x1b, 0xf2, - 0x19, 0x82, 0xd4, 0x78, 0x84, 0x5b, 0x90, 0x1b, 0x0f, 0xe8, 0x47, 0x70, 0x7b, 0xa7, 0xae, 0x72, - 0x2b, 0xec, 0x61, 0x94, 0x05, 0x57, 0x54, 0x6c, 0xbf, 0x93, 0xa7, 0x83, 0x0b, 0x6b, 0x70, 0x4e, - 0x90, 0xf6, 0x36, 0x2f, 0xe4, 0xe2, 0x12, 0xa4, 0xea, 0x06, 0xd9, 0x56, 0x0e, 0x1e, 0xd3, 0x4f, - 0xce, 0x93, 0xff, 0x59, 0x54, 0xc2, 0x52, 0x88, 0x8a, 0xaf, 0x2c, 0x41, 0xc2, 0x3e, 0xfd, 0x38, - 0x0e, 0xe1, 0xad, 0x35, 0x29, 0x44, 0x7f, 0x2b, 0x12, 0xa2, 0xbf, 0x55, 0x29, 0x5c, 0xd9, 0x3c, - 0x39, 0x95, 0x43, 0xcf, 0x4f, 0xe5, 0xd0, 0x9f, 0xa7, 0x72, 0xe8, 0xe5, 0xa9, 0x8c, 0x5e, 0x9d, - 0xca, 0xe8, 0xf5, 0xa9, 0x8c, 0xde, 0x9c, 0xca, 0xe8, 0xe9, 0x48, 0x46, 0x3f, 0x8d, 0x64, 0xf4, - 0xf3, 0x48, 0x46, 0xbf, 0x8e, 0x64, 0xf4, 0xdb, 0x48, 0x46, 0x27, 0x23, 0x39, 0xf4, 0x7c, 0x24, - 0x87, 0x5e, 0x8e, 0x64, 0xf4, 0x6a, 0x24, 0x87, 0x5e, 0x8f, 0x64, 0xf4, 0x66, 0x24, 0xa3, 0xa7, - 0x7f, 0xcb, 0xa8, 0x15, 0x67, 0xcb, 0xf3, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x94, 0x72, - 0x8f, 0x66, 0x1a, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.proto deleted file mode 100644 index 37e33d0ea..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3.proto +++ /dev/null @@ -1,168 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package theproto3; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -import "github.com/gogo/protobuf/test/combos/both/thetest.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message Message { - enum Humour { - UNKNOWN = 0; - PUNS = 1; - SLAPSTICK = 2; - BILL_BAILEY = 3; - } - - string name = 1; - Humour hilarity = 2; - uint32 height_in_cm = 3; - bytes data = 4; - int64 result_count = 7; - bool true_scotsman = 8; - float score = 9; - - repeated uint64 key = 5; - Nested nested = 6; - - map terrain = 10; - test.NinOptNative proto2_field = 11; - map proto2_value = 13; -} - -message Nested { - string bunny = 1; -} - -enum MapEnum { - MA = 0; - MB = 1; - MC = 2; -} - -message AllMaps { - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} - -message AllMapsOrdered { - option (gogoproto.stable_marshaler) = true; - - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} - -message MessageWithMap { - map name_mapping = 1; - map msg_mapping = 2; - map byte_mapping = 3; -} - -message FloatingPoint { - double f = 1; -} - -message Uint128Pair { - bytes left = 1 [(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; - bytes right = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message ContainsNestedMap { - message NestedMap { - map NestedMapField = 1; - } -} - -message NotPacked { - repeated uint64 key = 5 [packed=false]; -} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3pb_test.go deleted file mode 100644 index 9d00bb39f..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeboth/theproto3pb_test.go +++ /dev/null @@ -1,2546 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/theproto3.proto -// DO NOT EDIT! - -/* -Package theproto3 is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeboth/theproto3.proto - -It has these top-level messages: - Message - Nested - AllMaps - AllMapsOrdered - MessageWithMap - FloatingPoint - Uint128Pair - ContainsNestedMap - NotPacked -*/ -package theproto3 - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import _ "github.com/gogo/protobuf/test/combos/both" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestMessageProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMessageMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Message, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Message{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nested, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNested(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Nested{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllMapsMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMaps{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllMapsOrderedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMapsOrdered{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageWithMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMessageWithMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MessageWithMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMessageWithMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MessageWithMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestFloatingPointMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &FloatingPoint{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUint128PairProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUint128PairMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUint128PairProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Uint128Pair, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUint128Pair(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Uint128Pair{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestContainsNestedMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedContainsNestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ContainsNestedMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMap_NestedMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap_NestedMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedContainsNestedMap_NestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ContainsNestedMap_NestedMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNotPackedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNotPackedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNotPackedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NotPacked, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNotPacked(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NotPacked{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Message{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nested{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsOrderedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMessageWithMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MessageWithMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestFloatingPointJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUint128PairJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Uint128Pair{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestContainsNestedMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestContainsNestedMap_NestedMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap_NestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNotPackedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NotPacked{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMessageProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMessageProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMessageWithMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMessageWithMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestFloatingPointProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestFloatingPointProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUint128PairProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUint128PairProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNotPackedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNotPackedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTheproto3Description(t *testing.T) { - Theproto3Description() -} -func TestMessageVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsOrderedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMessageWithMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestFloatingPointVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUint128PairVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestContainsNestedMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNotPackedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestMessageWithMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUint128PairFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestContainsNestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestContainsNestedMap_NestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNotPackedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestMessageWithMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUint128PairGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestContainsNestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestContainsNestedMap_NestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNotPackedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestMessageSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Message, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nested, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNested(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageWithMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMessageWithMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MessageWithMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMessageWithMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUint128PairSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUint128PairSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Uint128Pair, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUint128Pair(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkContainsNestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedContainsNestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMap_NestedMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap_NestedMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedContainsNestedMap_NestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNotPackedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNotPackedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NotPacked, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNotPacked(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestMessageWithMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUint128PairStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestContainsNestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestContainsNestedMap_NestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNotPackedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/proto3_test.go deleted file mode 100644 index bb7eb6bb9..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/proto3_test.go +++ /dev/null @@ -1,159 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2015, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package theproto3 - -import ( - "reflect" - "testing" - - "github.com/gogo/protobuf/proto" -) - -func TestNilMaps(t *testing.T) { - m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToMsgMap["a"]; !ok { - t.Error("element not in map") - } else if v != nil { - t.Errorf("element should be nil, but its %v", v) - } -} - -func TestNilMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["a"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} - -func TestEmptyMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["b"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} - -func TestCustomTypeSize(t *testing.T) { - m := &Uint128Pair{} - m.Size() // Should not panic. -} - -func TestCustomTypeMarshalUnmarshal(t *testing.T) { - m1 := &Uint128Pair{} - if b, err := proto.Marshal(m1); err != nil { - t.Fatal(err) - } else { - m2 := &Uint128Pair{} - if err := proto.Unmarshal(b, m2); err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(m1, m2) { - t.Errorf("expected %+v, got %+v", m1, m2) - } - } -} - -func TestNotPackedToPacked(t *testing.T) { - input := []uint64{1, 10e9} - notpacked := &NotPacked{Key: input} - if data, err := proto.Marshal(notpacked); err != nil { - t.Fatal(err) - } else { - packed := &Message{} - if err := proto.Unmarshal(data, packed); err != nil { - t.Fatal(err) - } - output := packed.Key - if !reflect.DeepEqual(input, output) { - t.Fatalf("expected %#v, got %#v", input, output) - } - } -} - -func TestPackedToNotPacked(t *testing.T) { - input := []uint64{1, 10e9} - packed := &Message{Key: input} - if data, err := proto.Marshal(packed); err != nil { - t.Fatal(err) - } else { - notpacked := &NotPacked{} - if err := proto.Unmarshal(data, notpacked); err != nil { - t.Fatal(err) - } - output := notpacked.Key - if !reflect.DeepEqual(input, output) { - t.Fatalf("expected %#v, got %#v", input, output) - } - } -} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.pb.go deleted file mode 100644 index d1e7c4c40..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.pb.go +++ /dev/null @@ -1,6073 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/theproto3.proto -// DO NOT EDIT! - -/* - Package theproto3 is a generated protocol buffer package. - - It is generated from these files: - combos/unsafemarshaler/theproto3.proto - - It has these top-level messages: - Message - Nested - AllMaps - AllMapsOrdered - MessageWithMap - FloatingPoint - Uint128Pair - ContainsNestedMap - NotPacked -*/ -package theproto3 - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import test "github.com/gogo/protobuf/test/combos/both" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strconv "strconv" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -import unsafe "unsafe" - -// 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 - -type MapEnum int32 - -const ( - MA MapEnum = 0 - MB MapEnum = 1 - MC MapEnum = 2 -) - -var MapEnum_name = map[int32]string{ - 0: "MA", - 1: "MB", - 2: "MC", -} -var MapEnum_value = map[string]int32{ - "MA": 0, - "MB": 1, - "MC": 2, -} - -func (MapEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{0} } - -type Message_Humour int32 - -const ( - UNKNOWN Message_Humour = 0 - PUNS Message_Humour = 1 - SLAPSTICK Message_Humour = 2 - BILL_BAILEY Message_Humour = 3 -) - -var Message_Humour_name = map[int32]string{ - 0: "UNKNOWN", - 1: "PUNS", - 2: "SLAPSTICK", - 3: "BILL_BAILEY", -} -var Message_Humour_value = map[string]int32{ - "UNKNOWN": 0, - "PUNS": 1, - "SLAPSTICK": 2, - "BILL_BAILEY": 3, -} - -func (Message_Humour) EnumDescriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{0, 0} } - -type Message struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Hilarity Message_Humour `protobuf:"varint,2,opt,name=hilarity,proto3,enum=theproto3.Message_Humour" json:"hilarity,omitempty"` - HeightInCm uint32 `protobuf:"varint,3,opt,name=height_in_cm,json=heightInCm,proto3" json:"height_in_cm,omitempty"` - Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` - ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` - TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` - Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` - Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` - Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` - Proto2Value map[int64]*test.NinOptEnum `protobuf:"bytes,13,rep,name=proto2_value,json=proto2Value" json:"proto2_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *Message) Reset() { *m = Message{} } -func (*Message) ProtoMessage() {} -func (*Message) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{0} } - -type Nested struct { - Bunny string `protobuf:"bytes,1,opt,name=bunny,proto3" json:"bunny,omitempty"` -} - -func (m *Nested) Reset() { *m = Nested{} } -func (*Nested) ProtoMessage() {} -func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } - -type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *AllMaps) Reset() { *m = AllMaps{} } -func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } - -type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } -func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{3} } - -type MessageWithMap struct { - NameMapping map[int32]string `protobuf:"bytes,1,rep,name=name_mapping,json=nameMapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - MsgMapping map[int64]*FloatingPoint `protobuf:"bytes,2,rep,name=msg_mapping,json=msgMapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - ByteMapping map[bool][]byte `protobuf:"bytes,3,rep,name=byte_mapping,json=byteMapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (m *MessageWithMap) Reset() { *m = MessageWithMap{} } -func (*MessageWithMap) ProtoMessage() {} -func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{4} } - -type FloatingPoint struct { - F float64 `protobuf:"fixed64,1,opt,name=f,proto3" json:"f,omitempty"` -} - -func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } -func (*FloatingPoint) ProtoMessage() {} -func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{5} } - -type Uint128Pair struct { - Left github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,opt,name=left,proto3,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"left"` - Right *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=right,proto3,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"right,omitempty"` -} - -func (m *Uint128Pair) Reset() { *m = Uint128Pair{} } -func (*Uint128Pair) ProtoMessage() {} -func (*Uint128Pair) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{6} } - -type ContainsNestedMap struct { -} - -func (m *ContainsNestedMap) Reset() { *m = ContainsNestedMap{} } -func (*ContainsNestedMap) ProtoMessage() {} -func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } - -type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` -} - -func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } -func (*ContainsNestedMap_NestedMap) ProtoMessage() {} -func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { - return fileDescriptorTheproto3, []int{7, 0} -} - -type NotPacked struct { - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` -} - -func (m *NotPacked) Reset() { *m = NotPacked{} } -func (*NotPacked) ProtoMessage() {} -func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } - -func init() { - proto.RegisterType((*Message)(nil), "theproto3.Message") - proto.RegisterType((*Nested)(nil), "theproto3.Nested") - proto.RegisterType((*AllMaps)(nil), "theproto3.AllMaps") - proto.RegisterType((*AllMapsOrdered)(nil), "theproto3.AllMapsOrdered") - proto.RegisterType((*MessageWithMap)(nil), "theproto3.MessageWithMap") - proto.RegisterType((*FloatingPoint)(nil), "theproto3.FloatingPoint") - proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") - proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") - proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") - proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") - proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) - proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) -} -func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *Nested) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *MessageWithMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *Uint128Pair) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 7856 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, - 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, - 0x68, 0x34, 0xa2, 0xb8, 0x16, 0x87, 0xc3, 0x21, 0xe7, 0x82, 0xb1, 0xa4, 0x00, 0x20, 0x38, 0xe2, - 0x98, 0x04, 0xe9, 0x26, 0x69, 0x69, 0xd6, 0xa9, 0xa0, 0x9a, 0xc0, 0x21, 0xd9, 0x12, 0xd0, 0x8d, - 0x45, 0x37, 0x24, 0xd1, 0x0f, 0x29, 0x65, 0x9d, 0x6c, 0xbc, 0x49, 0xe5, 0xba, 0x49, 0xc5, 0xeb, - 0xf8, 0x22, 0x6f, 0x6a, 0x63, 0xef, 0x6e, 0x2e, 0x5e, 0x67, 0xe3, 0x6c, 0x6d, 0xa5, 0xb2, 0xca, - 0x83, 0x93, 0xc9, 0x4b, 0x4a, 0x9b, 0xbc, 0xa4, 0x5c, 0x29, 0x95, 0x35, 0x72, 0x55, 0x9c, 0xac, - 0x93, 0x78, 0xb3, 0xae, 0xda, 0xad, 0xf2, 0x3e, 0xa4, 0xce, 0xad, 0xbb, 0xcf, 0x41, 0x03, 0x0d, - 0x8e, 0x24, 0x7b, 0x1f, 0xfc, 0x32, 0x83, 0x3e, 0xe7, 0xff, 0xbe, 0xfe, 0xfb, 0xbf, 0x9d, 0xbf, - 0x4f, 0x37, 0x40, 0x78, 0x7f, 0x0d, 0x2e, 0x1c, 0x3b, 0xce, 0x71, 0x03, 0x5d, 0x69, 0xb5, 0x1d, - 0xcf, 0x39, 0xec, 0x1c, 0x5d, 0xa9, 0x23, 0xb7, 0xd6, 0xb6, 0x5a, 0x9e, 0xd3, 0x5e, 0x22, 0x63, - 0xfa, 0x24, 0x95, 0x58, 0xe2, 0x12, 0xb9, 0x6d, 0x98, 0xda, 0xb0, 0x1a, 0x68, 0xdd, 0x17, 0xdc, - 0x43, 0x9e, 0x7e, 0x13, 0x92, 0x47, 0x56, 0x03, 0x65, 0x95, 0x0b, 0xea, 0x42, 0x7a, 0xe5, 0xd2, - 0x92, 0x04, 0x5a, 0x12, 0x11, 0xbb, 0x78, 0xd8, 0x20, 0x88, 0xdc, 0xf7, 0x92, 0x30, 0x1d, 0x31, - 0xab, 0xeb, 0x90, 0xb4, 0xcd, 0x26, 0x66, 0x54, 0x16, 0xc6, 0x0c, 0xf2, 0x59, 0xcf, 0xc2, 0x68, - 0xcb, 0xac, 0xbd, 0x6a, 0x1e, 0xa3, 0x6c, 0x82, 0x0c, 0xf3, 0x43, 0x7d, 0x0e, 0xa0, 0x8e, 0x5a, - 0xc8, 0xae, 0x23, 0xbb, 0x76, 0x9a, 0x55, 0x2f, 0xa8, 0x0b, 0x63, 0x46, 0x68, 0x44, 0xff, 0x39, - 0x98, 0x6a, 0x75, 0x0e, 0x1b, 0x56, 0xad, 0x1a, 0x12, 0x83, 0x0b, 0xea, 0xc2, 0xb0, 0xa1, 0xd1, - 0x89, 0xf5, 0x40, 0xf8, 0x69, 0x98, 0x7c, 0x1d, 0x99, 0xaf, 0x86, 0x45, 0xd3, 0x44, 0x74, 0x02, - 0x0f, 0x87, 0x04, 0x4b, 0x90, 0x69, 0x22, 0xd7, 0x35, 0x8f, 0x51, 0xd5, 0x3b, 0x6d, 0xa1, 0x6c, - 0x92, 0x5c, 0xfd, 0x85, 0xae, 0xab, 0x97, 0xaf, 0x3c, 0xcd, 0x50, 0xfb, 0xa7, 0x2d, 0xa4, 0x17, - 0x60, 0x0c, 0xd9, 0x9d, 0x26, 0x65, 0x18, 0xee, 0x61, 0xbf, 0xb2, 0xdd, 0x69, 0xca, 0x2c, 0x29, - 0x0c, 0x63, 0x14, 0xa3, 0x2e, 0x6a, 0xbf, 0x66, 0xd5, 0x50, 0x76, 0x84, 0x10, 0x3c, 0xdd, 0x45, - 0xb0, 0x47, 0xe7, 0x65, 0x0e, 0x8e, 0xd3, 0x4b, 0x30, 0x86, 0xde, 0xf0, 0x90, 0xed, 0x5a, 0x8e, - 0x9d, 0x1d, 0x25, 0x24, 0x4f, 0x45, 0x78, 0x11, 0x35, 0xea, 0x32, 0x45, 0x80, 0xd3, 0xaf, 0xc3, - 0xa8, 0xd3, 0xf2, 0x2c, 0xc7, 0x76, 0xb3, 0xa9, 0x0b, 0xca, 0x42, 0x7a, 0xe5, 0x7c, 0x64, 0x20, - 0xec, 0x50, 0x19, 0x83, 0x0b, 0xeb, 0x9b, 0xa0, 0xb9, 0x4e, 0xa7, 0x5d, 0x43, 0xd5, 0x9a, 0x53, - 0x47, 0x55, 0xcb, 0x3e, 0x72, 0xb2, 0x63, 0x84, 0x60, 0xbe, 0xfb, 0x42, 0x88, 0x60, 0xc9, 0xa9, - 0xa3, 0x4d, 0xfb, 0xc8, 0x31, 0x26, 0x5c, 0xe1, 0x58, 0x9f, 0x81, 0x11, 0xf7, 0xd4, 0xf6, 0xcc, - 0x37, 0xb2, 0x19, 0x12, 0x21, 0xec, 0x28, 0xf7, 0x27, 0xc3, 0x30, 0x39, 0x48, 0x88, 0xdd, 0x86, - 0xe1, 0x23, 0x7c, 0x95, 0xd9, 0xc4, 0x59, 0x6c, 0x40, 0x31, 0xa2, 0x11, 0x47, 0x1e, 0xd2, 0x88, - 0x05, 0x48, 0xdb, 0xc8, 0xf5, 0x50, 0x9d, 0x46, 0x84, 0x3a, 0x60, 0x4c, 0x01, 0x05, 0x75, 0x87, - 0x54, 0xf2, 0xa1, 0x42, 0xea, 0x65, 0x98, 0xf4, 0x55, 0xaa, 0xb6, 0x4d, 0xfb, 0x98, 0xc7, 0xe6, - 0x95, 0x38, 0x4d, 0x96, 0xca, 0x1c, 0x67, 0x60, 0x98, 0x31, 0x81, 0x84, 0x63, 0x7d, 0x1d, 0xc0, - 0xb1, 0x91, 0x73, 0x54, 0xad, 0xa3, 0x5a, 0x23, 0x9b, 0xea, 0x61, 0xa5, 0x1d, 0x2c, 0xd2, 0x65, - 0x25, 0x87, 0x8e, 0xd6, 0x1a, 0xfa, 0xad, 0x20, 0xd4, 0x46, 0x7b, 0x44, 0xca, 0x36, 0x4d, 0xb2, - 0xae, 0x68, 0x3b, 0x80, 0x89, 0x36, 0xc2, 0x71, 0x8f, 0xea, 0xec, 0xca, 0xc6, 0x88, 0x12, 0x4b, - 0xb1, 0x57, 0x66, 0x30, 0x18, 0xbd, 0xb0, 0xf1, 0x76, 0xf8, 0x50, 0x7f, 0x12, 0xfc, 0x81, 0x2a, - 0x09, 0x2b, 0x20, 0x55, 0x28, 0xc3, 0x07, 0x2b, 0x66, 0x13, 0xcd, 0xde, 0x84, 0x09, 0xd1, 0x3c, - 0xfa, 0x39, 0x18, 0x76, 0x3d, 0xb3, 0xed, 0x91, 0x28, 0x1c, 0x36, 0xe8, 0x81, 0xae, 0x81, 0x8a, - 0xec, 0x3a, 0xa9, 0x72, 0xc3, 0x06, 0xfe, 0x38, 0x7b, 0x03, 0xc6, 0x85, 0xd3, 0x0f, 0x0a, 0xcc, - 0x7d, 0x7e, 0x04, 0xce, 0x45, 0xc5, 0x5c, 0x64, 0xf8, 0xcf, 0xc0, 0x88, 0xdd, 0x69, 0x1e, 0xa2, - 0x76, 0x56, 0x25, 0x0c, 0xec, 0x48, 0x2f, 0xc0, 0x70, 0xc3, 0x3c, 0x44, 0x8d, 0x6c, 0xf2, 0x82, - 0xb2, 0x30, 0xb1, 0xf2, 0x73, 0x03, 0x45, 0xf5, 0xd2, 0x16, 0x86, 0x18, 0x14, 0xa9, 0x3f, 0x0f, - 0x49, 0x56, 0xe2, 0x30, 0xc3, 0xe2, 0x60, 0x0c, 0x38, 0x16, 0x0d, 0x82, 0xd3, 0x1f, 0x87, 0x31, - 0xfc, 0x3f, 0xb5, 0xed, 0x08, 0xd1, 0x39, 0x85, 0x07, 0xb0, 0x5d, 0xf5, 0x59, 0x48, 0x91, 0x30, - 0xab, 0x23, 0xbe, 0x34, 0xf8, 0xc7, 0xd8, 0x31, 0x75, 0x74, 0x64, 0x76, 0x1a, 0x5e, 0xf5, 0x35, - 0xb3, 0xd1, 0x41, 0x24, 0x60, 0xc6, 0x8c, 0x0c, 0x1b, 0xfc, 0x14, 0x1e, 0xd3, 0xe7, 0x21, 0x4d, - 0xa3, 0xd2, 0xb2, 0xeb, 0xe8, 0x0d, 0x52, 0x7d, 0x86, 0x0d, 0x1a, 0xa8, 0x9b, 0x78, 0x04, 0x9f, - 0xfe, 0x15, 0xd7, 0xb1, 0xb9, 0x6b, 0xc9, 0x29, 0xf0, 0x00, 0x39, 0xfd, 0x0d, 0xb9, 0xf0, 0x3d, - 0x11, 0x7d, 0x79, 0x72, 0x2c, 0xe6, 0xbe, 0x95, 0x80, 0x24, 0xc9, 0xb7, 0x49, 0x48, 0xef, 0xdf, - 0xdb, 0x2d, 0x57, 0xd7, 0x77, 0x0e, 0x8a, 0x5b, 0x65, 0x4d, 0xd1, 0x27, 0x00, 0xc8, 0xc0, 0xc6, - 0xd6, 0x4e, 0x61, 0x5f, 0x4b, 0xf8, 0xc7, 0x9b, 0x95, 0xfd, 0xeb, 0xab, 0x9a, 0xea, 0x03, 0x0e, - 0xe8, 0x40, 0x32, 0x2c, 0x70, 0x6d, 0x45, 0x1b, 0xd6, 0x35, 0xc8, 0x50, 0x82, 0xcd, 0x97, 0xcb, - 0xeb, 0xd7, 0x57, 0xb5, 0x11, 0x71, 0xe4, 0xda, 0x8a, 0x36, 0xaa, 0x8f, 0xc3, 0x18, 0x19, 0x29, - 0xee, 0xec, 0x6c, 0x69, 0x29, 0x9f, 0x73, 0x6f, 0xdf, 0xd8, 0xac, 0xdc, 0xd1, 0xc6, 0x7c, 0xce, - 0x3b, 0xc6, 0xce, 0xc1, 0xae, 0x06, 0x3e, 0xc3, 0x76, 0x79, 0x6f, 0xaf, 0x70, 0xa7, 0xac, 0xa5, - 0x7d, 0x89, 0xe2, 0xbd, 0xfd, 0xf2, 0x9e, 0x96, 0x11, 0xd4, 0xba, 0xb6, 0xa2, 0x8d, 0xfb, 0xa7, - 0x28, 0x57, 0x0e, 0xb6, 0xb5, 0x09, 0x7d, 0x0a, 0xc6, 0xe9, 0x29, 0xb8, 0x12, 0x93, 0xd2, 0xd0, - 0xf5, 0x55, 0x4d, 0x0b, 0x14, 0xa1, 0x2c, 0x53, 0xc2, 0xc0, 0xf5, 0x55, 0x4d, 0xcf, 0x95, 0x60, - 0x98, 0x44, 0x97, 0xae, 0xc3, 0xc4, 0x56, 0xa1, 0x58, 0xde, 0xaa, 0xee, 0xec, 0xee, 0x6f, 0xee, - 0x54, 0x0a, 0x5b, 0x9a, 0x12, 0x8c, 0x19, 0xe5, 0x4f, 0x1e, 0x6c, 0x1a, 0xe5, 0x75, 0x2d, 0x11, - 0x1e, 0xdb, 0x2d, 0x17, 0xf6, 0xcb, 0xeb, 0x9a, 0x9a, 0xab, 0xc1, 0xb9, 0xa8, 0x3a, 0x13, 0x99, - 0x19, 0x21, 0x17, 0x27, 0x7a, 0xb8, 0x98, 0x70, 0x75, 0xb9, 0xf8, 0xd7, 0x14, 0x98, 0x8e, 0xa8, - 0xb5, 0x91, 0x27, 0x79, 0x01, 0x86, 0x69, 0x88, 0xd2, 0xd5, 0xe7, 0x99, 0xc8, 0xa2, 0x4d, 0x02, - 0xb6, 0x6b, 0x05, 0x22, 0xb8, 0xf0, 0x0a, 0xac, 0xf6, 0x58, 0x81, 0x31, 0x45, 0x97, 0x92, 0x9f, - 0x55, 0x20, 0xdb, 0x8b, 0x3b, 0xa6, 0x50, 0x24, 0x84, 0x42, 0x71, 0x5b, 0x56, 0xe0, 0x62, 0xef, - 0x6b, 0xe8, 0xd2, 0xe2, 0x6b, 0x0a, 0xcc, 0x44, 0x37, 0x2a, 0x91, 0x3a, 0x3c, 0x0f, 0x23, 0x4d, - 0xe4, 0x9d, 0x38, 0x7c, 0xb1, 0xbe, 0x1c, 0xb1, 0x04, 0xe0, 0x69, 0xd9, 0x56, 0x0c, 0x15, 0x5e, - 0x43, 0xd4, 0x5e, 0xdd, 0x06, 0xd5, 0xa6, 0x4b, 0xd3, 0x5f, 0x4e, 0xc0, 0x23, 0x91, 0xe4, 0x91, - 0x8a, 0x3e, 0x01, 0x60, 0xd9, 0xad, 0x8e, 0x47, 0x17, 0x64, 0x5a, 0x9f, 0xc6, 0xc8, 0x08, 0xc9, - 0x7d, 0x5c, 0x7b, 0x3a, 0x9e, 0x3f, 0xaf, 0x92, 0x79, 0xa0, 0x43, 0x44, 0xe0, 0x66, 0xa0, 0x68, - 0x92, 0x28, 0x3a, 0xd7, 0xe3, 0x4a, 0xbb, 0xd6, 0xba, 0x65, 0xd0, 0x6a, 0x0d, 0x0b, 0xd9, 0x5e, - 0xd5, 0xf5, 0xda, 0xc8, 0x6c, 0x5a, 0xf6, 0x31, 0x29, 0xc0, 0xa9, 0xfc, 0xf0, 0x91, 0xd9, 0x70, - 0x91, 0x31, 0x49, 0xa7, 0xf7, 0xf8, 0x2c, 0x46, 0x90, 0x55, 0xa6, 0x1d, 0x42, 0x8c, 0x08, 0x08, - 0x3a, 0xed, 0x23, 0x72, 0xbf, 0x35, 0x0a, 0xe9, 0x50, 0x5b, 0xa7, 0x5f, 0x84, 0xcc, 0x2b, 0xe6, - 0x6b, 0x66, 0x95, 0xb7, 0xea, 0xd4, 0x12, 0x69, 0x3c, 0xb6, 0xcb, 0xda, 0xf5, 0x65, 0x38, 0x47, - 0x44, 0x9c, 0x8e, 0x87, 0xda, 0xd5, 0x5a, 0xc3, 0x74, 0x5d, 0x62, 0xb4, 0x14, 0x11, 0xd5, 0xf1, - 0xdc, 0x0e, 0x9e, 0x2a, 0xf1, 0x19, 0x7d, 0x0d, 0xa6, 0x09, 0xa2, 0xd9, 0x69, 0x78, 0x56, 0xab, - 0x81, 0xaa, 0xf8, 0xe6, 0xc1, 0x25, 0x85, 0xd8, 0xd7, 0x6c, 0x0a, 0x4b, 0x6c, 0x33, 0x01, 0xac, - 0x91, 0xab, 0xaf, 0xc3, 0x13, 0x04, 0x76, 0x8c, 0x6c, 0xd4, 0x36, 0x3d, 0x54, 0x45, 0xbf, 0xd0, - 0x31, 0x1b, 0x6e, 0xd5, 0xb4, 0xeb, 0xd5, 0x13, 0xd3, 0x3d, 0xc9, 0x9e, 0xc3, 0x04, 0xc5, 0x44, - 0x56, 0x31, 0x1e, 0xc3, 0x82, 0x77, 0x98, 0x5c, 0x99, 0x88, 0x15, 0xec, 0xfa, 0x8b, 0xa6, 0x7b, - 0xa2, 0xe7, 0x61, 0x86, 0xb0, 0xb8, 0x5e, 0xdb, 0xb2, 0x8f, 0xab, 0xb5, 0x13, 0x54, 0x7b, 0xb5, - 0xda, 0xf1, 0x8e, 0x6e, 0x66, 0x1f, 0x0f, 0x9f, 0x9f, 0x68, 0xb8, 0x47, 0x64, 0x4a, 0x58, 0xe4, - 0xc0, 0x3b, 0xba, 0xa9, 0xef, 0x41, 0x06, 0x3b, 0xa3, 0x69, 0x7d, 0x06, 0x55, 0x8f, 0x9c, 0x36, - 0x59, 0x59, 0x26, 0x22, 0x32, 0x3b, 0x64, 0xc1, 0xa5, 0x1d, 0x06, 0xd8, 0x76, 0xea, 0x28, 0x3f, - 0xbc, 0xb7, 0x5b, 0x2e, 0xaf, 0x1b, 0x69, 0xce, 0xb2, 0xe1, 0xb4, 0x71, 0x40, 0x1d, 0x3b, 0xbe, - 0x81, 0xd3, 0x34, 0xa0, 0x8e, 0x1d, 0x6e, 0xde, 0x35, 0x98, 0xae, 0xd5, 0xe8, 0x35, 0x5b, 0xb5, - 0x2a, 0x6b, 0xf1, 0xdd, 0xac, 0x26, 0x18, 0xab, 0x56, 0xbb, 0x43, 0x05, 0x58, 0x8c, 0xbb, 0xfa, - 0x2d, 0x78, 0x24, 0x30, 0x56, 0x18, 0x38, 0xd5, 0x75, 0x95, 0x32, 0x74, 0x0d, 0xa6, 0x5b, 0xa7, - 0xdd, 0x40, 0x5d, 0x38, 0x63, 0xeb, 0x54, 0x86, 0x3d, 0x45, 0x6e, 0xdb, 0xda, 0xa8, 0x66, 0x7a, - 0xa8, 0x9e, 0x7d, 0x34, 0x2c, 0x1d, 0x9a, 0xd0, 0xaf, 0x80, 0x56, 0xab, 0x55, 0x91, 0x6d, 0x1e, - 0x36, 0x50, 0xd5, 0x6c, 0x23, 0xdb, 0x74, 0xb3, 0xf3, 0x61, 0xe1, 0x89, 0x5a, 0xad, 0x4c, 0x66, - 0x0b, 0x64, 0x52, 0x5f, 0x84, 0x29, 0xe7, 0xf0, 0x95, 0x1a, 0x8d, 0xac, 0x6a, 0xab, 0x8d, 0x8e, - 0xac, 0x37, 0xb2, 0x97, 0x88, 0x99, 0x26, 0xf1, 0x04, 0x89, 0xab, 0x5d, 0x32, 0xac, 0x3f, 0x03, - 0x5a, 0xcd, 0x3d, 0x31, 0xdb, 0x2d, 0xb2, 0xb4, 0xbb, 0x2d, 0xb3, 0x86, 0xb2, 0x4f, 0x51, 0x51, - 0x3a, 0x5e, 0xe1, 0xc3, 0x38, 0xb2, 0xdd, 0xd7, 0xad, 0x23, 0x8f, 0x33, 0x3e, 0x4d, 0x23, 0x9b, - 0x8c, 0x31, 0xb6, 0x97, 0xe1, 0x5c, 0xc7, 0xb6, 0x6c, 0x0f, 0xb5, 0x5b, 0x6d, 0x84, 0x9b, 0x78, - 0x9a, 0x89, 0xd9, 0xff, 0x31, 0xda, 0xa3, 0x0d, 0x3f, 0x08, 0x4b, 0xd3, 0x00, 0x30, 0xa6, 0x3b, - 0xdd, 0x83, 0xb9, 0x3c, 0x64, 0xc2, 0x71, 0xa1, 0x8f, 0x01, 0x8d, 0x0c, 0x4d, 0xc1, 0x6b, 0x6c, - 0x69, 0x67, 0x1d, 0xaf, 0x8e, 0x3f, 0x5f, 0xd6, 0x12, 0x78, 0x95, 0xde, 0xda, 0xdc, 0x2f, 0x57, - 0x8d, 0x83, 0xca, 0xfe, 0xe6, 0x76, 0x59, 0x53, 0x17, 0xc7, 0x52, 0xdf, 0x1f, 0xd5, 0xde, 0x7c, - 0xf3, 0xcd, 0x37, 0x13, 0xb9, 0x6f, 0x27, 0x60, 0x42, 0xec, 0x8c, 0xf5, 0x8f, 0xc3, 0xa3, 0xfc, - 0x36, 0xd6, 0x45, 0x5e, 0xf5, 0x75, 0xab, 0x4d, 0x42, 0xb5, 0x69, 0xd2, 0xde, 0xd2, 0xb7, 0xf2, - 0x39, 0x26, 0xb5, 0x87, 0xbc, 0x97, 0xac, 0x36, 0x0e, 0xc4, 0xa6, 0xe9, 0xe9, 0x5b, 0x30, 0x6f, - 0x3b, 0x55, 0xd7, 0x33, 0xed, 0xba, 0xd9, 0xae, 0x57, 0x83, 0x0d, 0x84, 0xaa, 0x59, 0xab, 0x21, - 0xd7, 0x75, 0xe8, 0x12, 0xe1, 0xb3, 0x9c, 0xb7, 0x9d, 0x3d, 0x26, 0x1c, 0xd4, 0xce, 0x02, 0x13, - 0x95, 0x22, 0x42, 0xed, 0x15, 0x11, 0x8f, 0xc3, 0x58, 0xd3, 0x6c, 0x55, 0x91, 0xed, 0xb5, 0x4f, - 0x49, 0x3f, 0x97, 0x32, 0x52, 0x4d, 0xb3, 0x55, 0xc6, 0xc7, 0x1f, 0x9d, 0x0f, 0xc2, 0x76, 0xfc, - 0xef, 0x2a, 0x64, 0xc2, 0x3d, 0x1d, 0x6e, 0x91, 0x6b, 0xa4, 0x7e, 0x2b, 0x24, 0xc3, 0x9f, 0xec, - 0xdb, 0x01, 0x2e, 0x95, 0x70, 0x61, 0xcf, 0x8f, 0xd0, 0x4e, 0xcb, 0xa0, 0x48, 0xbc, 0xa8, 0xe2, - 0x9c, 0x46, 0xb4, 0x7f, 0x4f, 0x19, 0xec, 0x48, 0xbf, 0x03, 0x23, 0xaf, 0xb8, 0x84, 0x7b, 0x84, - 0x70, 0x5f, 0xea, 0xcf, 0x7d, 0x77, 0x8f, 0x90, 0x8f, 0xdd, 0xdd, 0xab, 0x56, 0x76, 0x8c, 0xed, - 0xc2, 0x96, 0xc1, 0xe0, 0xfa, 0x63, 0x90, 0x6c, 0x98, 0x9f, 0x39, 0x15, 0x97, 0x00, 0x32, 0x34, - 0xa8, 0xe1, 0x1f, 0x83, 0xe4, 0xeb, 0xc8, 0x7c, 0x55, 0x2c, 0xbc, 0x64, 0xe8, 0x23, 0x0c, 0xfd, - 0x2b, 0x30, 0x4c, 0xec, 0xa5, 0x03, 0x30, 0x8b, 0x69, 0x43, 0x7a, 0x0a, 0x92, 0xa5, 0x1d, 0x03, - 0x87, 0xbf, 0x06, 0x19, 0x3a, 0x5a, 0xdd, 0xdd, 0x2c, 0x97, 0xca, 0x5a, 0x22, 0xb7, 0x06, 0x23, - 0xd4, 0x08, 0x38, 0x35, 0x7c, 0x33, 0x68, 0x43, 0xec, 0x90, 0x71, 0x28, 0x7c, 0xf6, 0x60, 0xbb, - 0x58, 0x36, 0xb4, 0x44, 0xd8, 0xbd, 0x2e, 0x64, 0xc2, 0xed, 0xdc, 0x4f, 0x26, 0xa6, 0x7e, 0x4f, - 0x81, 0x74, 0xa8, 0x3d, 0xc3, 0x8d, 0x81, 0xd9, 0x68, 0x38, 0xaf, 0x57, 0xcd, 0x86, 0x65, 0xba, - 0x2c, 0x28, 0x80, 0x0c, 0x15, 0xf0, 0xc8, 0xa0, 0x4e, 0xfb, 0x89, 0x28, 0xff, 0x65, 0x05, 0x34, - 0xb9, 0xb5, 0x93, 0x14, 0x54, 0x7e, 0xaa, 0x0a, 0x7e, 0x51, 0x81, 0x09, 0xb1, 0x9f, 0x93, 0xd4, - 0xbb, 0xf8, 0x53, 0x55, 0xef, 0xbb, 0x09, 0x18, 0x17, 0xba, 0xb8, 0x41, 0xb5, 0xfb, 0x05, 0x98, - 0xb2, 0xea, 0xa8, 0xd9, 0x72, 0x3c, 0x64, 0xd7, 0x4e, 0xab, 0x0d, 0xf4, 0x1a, 0x6a, 0x64, 0x73, - 0xa4, 0x50, 0x5c, 0xe9, 0xdf, 0x27, 0x2e, 0x6d, 0x06, 0xb8, 0x2d, 0x0c, 0xcb, 0x4f, 0x6f, 0xae, - 0x97, 0xb7, 0x77, 0x77, 0xf6, 0xcb, 0x95, 0xd2, 0xbd, 0xea, 0x41, 0xe5, 0x13, 0x95, 0x9d, 0x97, - 0x2a, 0x86, 0x66, 0x49, 0x62, 0x1f, 0x61, 0xaa, 0xef, 0x82, 0x26, 0x2b, 0xa5, 0x3f, 0x0a, 0x51, - 0x6a, 0x69, 0x43, 0xfa, 0x34, 0x4c, 0x56, 0x76, 0xaa, 0x7b, 0x9b, 0xeb, 0xe5, 0x6a, 0x79, 0x63, - 0xa3, 0x5c, 0xda, 0xdf, 0xa3, 0x37, 0xce, 0xbe, 0xf4, 0xbe, 0x98, 0xd4, 0x5f, 0x50, 0x61, 0x3a, - 0x42, 0x13, 0xbd, 0xc0, 0x7a, 0x76, 0x7a, 0x1b, 0xf1, 0xec, 0x20, 0xda, 0x2f, 0xe1, 0xae, 0x60, - 0xd7, 0x6c, 0x7b, 0xac, 0xc5, 0x7f, 0x06, 0xb0, 0x95, 0x6c, 0xcf, 0x3a, 0xb2, 0x50, 0x9b, 0xed, - 0x33, 0xd0, 0x46, 0x7e, 0x32, 0x18, 0xa7, 0x5b, 0x0d, 0x1f, 0x03, 0xbd, 0xe5, 0xb8, 0x96, 0x67, - 0xbd, 0x86, 0xaa, 0x96, 0xcd, 0x37, 0x25, 0x70, 0x63, 0x9f, 0x34, 0x34, 0x3e, 0xb3, 0x69, 0x7b, - 0xbe, 0xb4, 0x8d, 0x8e, 0x4d, 0x49, 0x1a, 0x17, 0x70, 0xd5, 0xd0, 0xf8, 0x8c, 0x2f, 0x7d, 0x11, - 0x32, 0x75, 0xa7, 0x83, 0xdb, 0x24, 0x2a, 0x87, 0xd7, 0x0b, 0xc5, 0x48, 0xd3, 0x31, 0x5f, 0x84, - 0xf5, 0xb1, 0xc1, 0x6e, 0x48, 0xc6, 0x48, 0xd3, 0x31, 0x2a, 0xf2, 0x34, 0x4c, 0x9a, 0xc7, 0xc7, - 0x6d, 0x4c, 0xce, 0x89, 0x68, 0x67, 0x3e, 0xe1, 0x0f, 0x13, 0xc1, 0xd9, 0xbb, 0x90, 0xe2, 0x76, - 0xc0, 0x4b, 0x32, 0xb6, 0x44, 0xb5, 0x45, 0xf7, 0xa4, 0x12, 0x0b, 0x63, 0x46, 0xca, 0xe6, 0x93, - 0x17, 0x21, 0x63, 0xb9, 0xd5, 0x60, 0x73, 0x34, 0x71, 0x21, 0xb1, 0x90, 0x32, 0xd2, 0x96, 0xeb, - 0xef, 0x86, 0xe5, 0xbe, 0x96, 0x80, 0x09, 0x71, 0x73, 0x57, 0x5f, 0x87, 0x54, 0xc3, 0xa9, 0x99, - 0x24, 0xb4, 0xe8, 0x93, 0x85, 0x85, 0x98, 0xfd, 0xe0, 0xa5, 0x2d, 0x26, 0x6f, 0xf8, 0xc8, 0xd9, - 0xff, 0xac, 0x40, 0x8a, 0x0f, 0xeb, 0x33, 0x90, 0x6c, 0x99, 0xde, 0x09, 0xa1, 0x1b, 0x2e, 0x26, - 0x34, 0xc5, 0x20, 0xc7, 0x78, 0xdc, 0x6d, 0x99, 0x36, 0x09, 0x01, 0x36, 0x8e, 0x8f, 0xb1, 0x5f, - 0x1b, 0xc8, 0xac, 0x93, 0xb6, 0xdf, 0x69, 0x36, 0x91, 0xed, 0xb9, 0xdc, 0xaf, 0x6c, 0xbc, 0xc4, - 0x86, 0xf5, 0x9f, 0x83, 0x29, 0xaf, 0x6d, 0x5a, 0x0d, 0x41, 0x36, 0x49, 0x64, 0x35, 0x3e, 0xe1, - 0x0b, 0xe7, 0xe1, 0x31, 0xce, 0x5b, 0x47, 0x9e, 0x59, 0x3b, 0x41, 0xf5, 0x00, 0x34, 0x42, 0x76, - 0x0e, 0x1f, 0x65, 0x02, 0xeb, 0x6c, 0x9e, 0x63, 0x73, 0x7f, 0xa0, 0xc0, 0x14, 0xbf, 0x51, 0xa9, - 0xfb, 0xc6, 0xda, 0x06, 0x30, 0x6d, 0xdb, 0xf1, 0xc2, 0xe6, 0xea, 0x0e, 0xe5, 0x2e, 0xdc, 0x52, - 0xc1, 0x07, 0x19, 0x21, 0x82, 0xd9, 0x26, 0x40, 0x30, 0xd3, 0xd3, 0x6c, 0xf3, 0x90, 0x66, 0x3b, - 0xf7, 0xe4, 0xf1, 0x0f, 0xbd, 0xb5, 0x05, 0x3a, 0x84, 0xef, 0x68, 0xf4, 0x73, 0x30, 0x7c, 0x88, - 0x8e, 0x2d, 0x9b, 0xed, 0x27, 0xd2, 0x03, 0xbe, 0x4b, 0x99, 0xf4, 0x77, 0x29, 0x8b, 0x2f, 0xc3, - 0x74, 0xcd, 0x69, 0xca, 0xea, 0x16, 0x35, 0xe9, 0xf6, 0xda, 0x7d, 0x51, 0xf9, 0x79, 0x08, 0x5a, - 0xcc, 0x5f, 0x4b, 0xa8, 0x77, 0x76, 0x8b, 0xbf, 0x99, 0x98, 0xbd, 0x43, 0x71, 0xbb, 0xfc, 0x32, - 0x0d, 0x74, 0xd4, 0x40, 0x35, 0xac, 0x3a, 0xfc, 0xf1, 0x65, 0x78, 0xf6, 0xd8, 0xf2, 0x4e, 0x3a, - 0x87, 0x4b, 0x35, 0xa7, 0x79, 0xe5, 0xd8, 0x39, 0x76, 0x82, 0xc7, 0x5d, 0xf8, 0x88, 0x1c, 0x90, - 0x4f, 0xec, 0x91, 0xd7, 0x98, 0x3f, 0x3a, 0x1b, 0xfb, 0x7c, 0x2c, 0x5f, 0x81, 0x69, 0x26, 0x5c, - 0x25, 0x7b, 0xee, 0xf4, 0xd6, 0x40, 0xef, 0xbb, 0xef, 0x92, 0xfd, 0xed, 0xef, 0x91, 0xb5, 0xda, - 0x98, 0x62, 0x50, 0x3c, 0x47, 0x6f, 0x20, 0xf2, 0x06, 0x3c, 0x22, 0xf0, 0xd1, 0xbc, 0x44, 0xed, - 0x18, 0xc6, 0x6f, 0x33, 0xc6, 0xe9, 0x10, 0xe3, 0x1e, 0x83, 0xe6, 0x4b, 0x30, 0x7e, 0x16, 0xae, - 0xff, 0xc0, 0xb8, 0x32, 0x28, 0x4c, 0x72, 0x07, 0x26, 0x09, 0x49, 0xad, 0xe3, 0x7a, 0x4e, 0x93, - 0x14, 0xbd, 0xfe, 0x34, 0xff, 0xf1, 0x7b, 0x34, 0x51, 0x26, 0x30, 0xac, 0xe4, 0xa3, 0xf2, 0x79, - 0x20, 0x8f, 0x19, 0xea, 0xa8, 0xd6, 0x88, 0x61, 0xb8, 0xcf, 0x14, 0xf1, 0xe5, 0xf3, 0x9f, 0x82, - 0x73, 0xf8, 0x33, 0xa9, 0x49, 0x61, 0x4d, 0xe2, 0x77, 0x99, 0xb2, 0x7f, 0xf0, 0x59, 0x9a, 0x8b, - 0xd3, 0x3e, 0x41, 0x48, 0xa7, 0x90, 0x17, 0x8f, 0x91, 0xe7, 0xa1, 0xb6, 0x5b, 0x35, 0x1b, 0x51, - 0xea, 0x85, 0x6e, 0xd3, 0xb3, 0xbf, 0xfa, 0x03, 0xd1, 0x8b, 0x77, 0x28, 0xb2, 0xd0, 0x68, 0xe4, - 0x0f, 0xe0, 0xd1, 0x88, 0xa8, 0x18, 0x80, 0xf3, 0x0b, 0x8c, 0xf3, 0x5c, 0x57, 0x64, 0x60, 0xda, - 0x5d, 0xe0, 0xe3, 0xbe, 0x2f, 0x07, 0xe0, 0xfc, 0xc7, 0x8c, 0x53, 0x67, 0x58, 0xee, 0x52, 0xcc, - 0x78, 0x17, 0xa6, 0x5e, 0x43, 0xed, 0x43, 0xc7, 0x65, 0x5b, 0x23, 0x03, 0xd0, 0x7d, 0x91, 0xd1, - 0x4d, 0x32, 0x20, 0xd9, 0x2b, 0xc1, 0x5c, 0xb7, 0x20, 0x75, 0x64, 0xd6, 0xd0, 0x00, 0x14, 0x5f, - 0x62, 0x14, 0xa3, 0x58, 0x1e, 0x43, 0x0b, 0x90, 0x39, 0x76, 0xd8, 0xb2, 0x14, 0x0f, 0xff, 0x32, - 0x83, 0xa7, 0x39, 0x86, 0x51, 0xb4, 0x9c, 0x56, 0xa7, 0x81, 0xd7, 0xac, 0x78, 0x8a, 0xaf, 0x70, - 0x0a, 0x8e, 0x61, 0x14, 0x67, 0x30, 0xeb, 0x5b, 0x9c, 0xc2, 0x0d, 0xd9, 0xf3, 0x05, 0x48, 0x3b, - 0x76, 0xe3, 0xd4, 0xb1, 0x07, 0x51, 0xe2, 0xab, 0x8c, 0x01, 0x18, 0x04, 0x13, 0xdc, 0x86, 0xb1, - 0x41, 0x1d, 0xf1, 0xeb, 0x3f, 0xe0, 0xe9, 0xc1, 0x3d, 0x70, 0x07, 0x26, 0x79, 0x81, 0xb2, 0x1c, - 0x7b, 0x00, 0x8a, 0x7f, 0xca, 0x28, 0x26, 0x42, 0x30, 0x76, 0x19, 0x1e, 0x72, 0xbd, 0x63, 0x34, - 0x08, 0xc9, 0xd7, 0xf8, 0x65, 0x30, 0x08, 0x33, 0xe5, 0x21, 0xb2, 0x6b, 0x27, 0x83, 0x31, 0x7c, - 0x9d, 0x9b, 0x92, 0x63, 0x30, 0x45, 0x09, 0xc6, 0x9b, 0x66, 0xdb, 0x3d, 0x31, 0x1b, 0x03, 0xb9, - 0xe3, 0x37, 0x18, 0x47, 0xc6, 0x07, 0x31, 0x8b, 0x74, 0xec, 0xb3, 0xd0, 0xfc, 0x26, 0xb7, 0x48, - 0x08, 0xc6, 0x52, 0xcf, 0xf5, 0xc8, 0x06, 0xd4, 0x59, 0xd8, 0x7e, 0x8b, 0xa7, 0x1e, 0xc5, 0x6e, - 0x87, 0x19, 0x6f, 0xc3, 0x98, 0x6b, 0x7d, 0x66, 0x20, 0x9a, 0x7f, 0xc6, 0x3d, 0x4d, 0x00, 0x18, - 0x7c, 0x0f, 0x1e, 0x8b, 0x5c, 0x26, 0x06, 0x20, 0xfb, 0xe7, 0x8c, 0x6c, 0x26, 0x62, 0xa9, 0x60, - 0x25, 0xe1, 0xac, 0x94, 0xff, 0x82, 0x97, 0x04, 0x24, 0x71, 0xed, 0xe2, 0x1b, 0x05, 0xd7, 0x3c, - 0x3a, 0x9b, 0xd5, 0xfe, 0x25, 0xb7, 0x1a, 0xc5, 0x0a, 0x56, 0xdb, 0x87, 0x19, 0xc6, 0x78, 0x36, - 0xbf, 0x7e, 0x83, 0x17, 0x56, 0x8a, 0x3e, 0x10, 0xbd, 0xfb, 0x69, 0x98, 0xf5, 0xcd, 0xc9, 0x3b, - 0x52, 0xb7, 0xda, 0x34, 0x5b, 0x03, 0x30, 0xff, 0x36, 0x63, 0xe6, 0x15, 0xdf, 0x6f, 0x69, 0xdd, - 0x6d, 0xb3, 0x85, 0xc9, 0x5f, 0x86, 0x2c, 0x27, 0xef, 0xd8, 0x6d, 0x54, 0x73, 0x8e, 0x6d, 0xeb, - 0x33, 0xa8, 0x3e, 0x00, 0xf5, 0x37, 0x25, 0x57, 0x1d, 0x84, 0xe0, 0x98, 0x79, 0x13, 0x34, 0xbf, - 0x57, 0xa9, 0x5a, 0xcd, 0x96, 0xd3, 0xf6, 0x62, 0x18, 0xff, 0x15, 0xf7, 0x94, 0x8f, 0xdb, 0x24, - 0xb0, 0x7c, 0x19, 0x26, 0xc8, 0xe1, 0xa0, 0x21, 0xf9, 0x3b, 0x8c, 0x68, 0x3c, 0x40, 0xb1, 0xc2, - 0x51, 0x73, 0x9a, 0x2d, 0xb3, 0x3d, 0x48, 0xfd, 0xfb, 0xd7, 0xbc, 0x70, 0x30, 0x08, 0x2b, 0x1c, - 0xde, 0x69, 0x0b, 0xe1, 0xd5, 0x7e, 0x00, 0x86, 0x6f, 0xf1, 0xc2, 0xc1, 0x31, 0x8c, 0x82, 0x37, - 0x0c, 0x03, 0x50, 0xfc, 0x1b, 0x4e, 0xc1, 0x31, 0x98, 0xe2, 0x93, 0xc1, 0x42, 0xdb, 0x46, 0xc7, - 0x96, 0xeb, 0xb5, 0x69, 0x1f, 0xdc, 0x9f, 0xea, 0x77, 0x7f, 0x20, 0x36, 0x61, 0x46, 0x08, 0x9a, - 0xbf, 0x0b, 0x93, 0x52, 0x8b, 0xa1, 0xc7, 0xbd, 0xb3, 0x90, 0xfd, 0x2b, 0x3f, 0x62, 0xc5, 0x48, - 0xec, 0x30, 0xf2, 0x5b, 0xd8, 0xef, 0x62, 0x1f, 0x10, 0x4f, 0xf6, 0xd9, 0x1f, 0xf9, 0xae, 0x17, - 0xda, 0x80, 0xfc, 0x06, 0x8c, 0x0b, 0x3d, 0x40, 0x3c, 0xd5, 0x5f, 0x65, 0x54, 0x99, 0x70, 0x0b, - 0x90, 0x5f, 0x83, 0x24, 0x5e, 0xcf, 0xe3, 0xe1, 0x7f, 0x8d, 0xc1, 0x89, 0x78, 0xfe, 0x39, 0x48, - 0xf1, 0x75, 0x3c, 0x1e, 0xfa, 0x4b, 0x0c, 0xea, 0x43, 0x30, 0x9c, 0xaf, 0xe1, 0xf1, 0xf0, 0xbf, - 0xce, 0xe1, 0x1c, 0x82, 0xe1, 0x83, 0x9b, 0xf0, 0xed, 0xbf, 0x99, 0x64, 0x75, 0x98, 0xdb, 0xee, - 0x36, 0x8c, 0xb2, 0xc5, 0x3b, 0x1e, 0xfd, 0xcb, 0xec, 0xe4, 0x1c, 0x91, 0xbf, 0x01, 0xc3, 0x03, - 0x1a, 0xfc, 0x6f, 0x31, 0x28, 0x95, 0xcf, 0x97, 0x20, 0x1d, 0x5a, 0xb0, 0xe3, 0xe1, 0x7f, 0x9b, - 0xc1, 0xc3, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xe3, 0x09, 0xfe, 0x0e, 0x57, 0x9d, 0x21, 0xb0, 0xd9, - 0xf8, 0x5a, 0x1d, 0x8f, 0xfe, 0xbb, 0xdc, 0xea, 0x1c, 0x92, 0x7f, 0x01, 0xc6, 0xfc, 0xfa, 0x1b, - 0x8f, 0xff, 0x7b, 0x0c, 0x1f, 0x60, 0xb0, 0x05, 0x42, 0xf5, 0x3f, 0x9e, 0xe2, 0xef, 0x73, 0x0b, - 0x84, 0x50, 0x38, 0x8d, 0xe4, 0x35, 0x3d, 0x9e, 0xe9, 0x57, 0x78, 0x1a, 0x49, 0x4b, 0x3a, 0xf6, - 0x26, 0x29, 0x83, 0xf1, 0x14, 0xff, 0x80, 0x7b, 0x93, 0xc8, 0x63, 0x35, 0xe4, 0x45, 0x32, 0x9e, - 0xe3, 0x1f, 0x71, 0x35, 0xa4, 0x35, 0x32, 0xbf, 0x0b, 0x7a, 0xf7, 0x02, 0x19, 0xcf, 0xf7, 0x79, - 0xc6, 0x37, 0xd5, 0xb5, 0x3e, 0xe6, 0x5f, 0x82, 0x99, 0xe8, 0xc5, 0x31, 0x9e, 0xf5, 0x57, 0x7f, - 0x24, 0xdd, 0xce, 0x84, 0xd7, 0xc6, 0xfc, 0x7e, 0x50, 0x65, 0xc3, 0x0b, 0x63, 0x3c, 0xed, 0x17, - 0x7e, 0x24, 0x16, 0xda, 0xf0, 0xba, 0x98, 0x2f, 0x00, 0x04, 0x6b, 0x52, 0x3c, 0xd7, 0x17, 0x19, - 0x57, 0x08, 0x84, 0x53, 0x83, 0x2d, 0x49, 0xf1, 0xf8, 0x2f, 0xf1, 0xd4, 0x60, 0x08, 0x9c, 0x1a, - 0x7c, 0x35, 0x8a, 0x47, 0x7f, 0x99, 0xa7, 0x06, 0x87, 0xe4, 0x6f, 0x43, 0xca, 0xee, 0x34, 0x1a, - 0x38, 0xb6, 0xf4, 0xfe, 0xaf, 0x11, 0x65, 0xff, 0xe7, 0x8f, 0x19, 0x98, 0x03, 0xf2, 0x6b, 0x30, - 0x8c, 0x9a, 0x87, 0xa8, 0x1e, 0x87, 0xfc, 0x5f, 0x3f, 0xe6, 0xf5, 0x04, 0x4b, 0xe7, 0x5f, 0x00, - 0xa0, 0x37, 0xd3, 0xe4, 0x29, 0x51, 0x0c, 0xf6, 0x0f, 0x7f, 0xcc, 0xde, 0x50, 0x08, 0x20, 0x01, - 0x01, 0x7d, 0xdf, 0xa1, 0x3f, 0xc1, 0x0f, 0x44, 0x02, 0x72, 0x03, 0x7e, 0x0b, 0x46, 0x5f, 0x71, - 0x1d, 0xdb, 0x33, 0x8f, 0xe3, 0xd0, 0xff, 0x9b, 0xa1, 0xb9, 0x3c, 0x36, 0x58, 0xd3, 0x69, 0x23, - 0xcf, 0x3c, 0x76, 0xe3, 0xb0, 0xff, 0x87, 0x61, 0x7d, 0x00, 0x06, 0xd7, 0x4c, 0xd7, 0x1b, 0xe4, - 0xba, 0xff, 0x2f, 0x07, 0x73, 0x00, 0x56, 0x1a, 0x7f, 0x7e, 0x15, 0x9d, 0xc6, 0x61, 0x7f, 0xc8, - 0x95, 0x66, 0xf2, 0xf9, 0xe7, 0x60, 0x0c, 0x7f, 0xa4, 0x6f, 0xed, 0xc4, 0x80, 0xff, 0x88, 0x81, - 0x03, 0x04, 0x3e, 0xb3, 0xeb, 0xd5, 0x3d, 0x2b, 0xde, 0xd8, 0xff, 0x8f, 0x79, 0x9a, 0xcb, 0xe7, - 0x0b, 0x90, 0x76, 0xbd, 0x7a, 0xbd, 0xc3, 0x3a, 0x9a, 0x18, 0xf8, 0x1f, 0xff, 0xd8, 0xbf, 0xc9, - 0xf5, 0x31, 0xc5, 0x8b, 0xd1, 0x9b, 0x75, 0x70, 0xc7, 0xb9, 0xe3, 0xd0, 0x6d, 0x3a, 0xf8, 0x5e, - 0x03, 0x6e, 0xf4, 0xdc, 0x75, 0xc3, 0x8b, 0xc8, 0x95, 0x9a, 0xd3, 0x3c, 0x74, 0xdc, 0x2b, 0x87, - 0x8e, 0x77, 0x72, 0xc5, 0x3b, 0x41, 0x78, 0x8c, 0xed, 0xbf, 0x25, 0xf1, 0xe7, 0xd9, 0xb3, 0x6d, - 0xda, 0x91, 0xe7, 0xb1, 0x15, 0x0b, 0xeb, 0x5d, 0x21, 0x5b, 0xe2, 0xfa, 0x79, 0x18, 0x21, 0x57, - 0x72, 0x95, 0x3c, 0x76, 0x52, 0x8a, 0xc9, 0xfb, 0xef, 0xce, 0x0f, 0x19, 0x6c, 0xcc, 0x9f, 0x5d, - 0x21, 0x7b, 0x96, 0x09, 0x61, 0x76, 0xc5, 0x9f, 0xbd, 0x46, 0xb7, 0x2d, 0x85, 0xd9, 0x6b, 0xfe, - 0xec, 0x2a, 0xd9, 0xc0, 0x54, 0x85, 0xd9, 0x55, 0x7f, 0x76, 0x8d, 0x6c, 0xd2, 0x8f, 0x0b, 0xb3, - 0x6b, 0xfe, 0xec, 0x75, 0xb2, 0x35, 0x9f, 0x14, 0x66, 0xaf, 0xfb, 0xb3, 0x37, 0xc8, 0xae, 0xfc, - 0x94, 0x30, 0x7b, 0xc3, 0x9f, 0xbd, 0x49, 0x76, 0xe3, 0x75, 0x61, 0xf6, 0xa6, 0x3f, 0x7b, 0x8b, - 0xbc, 0x62, 0x32, 0x2a, 0xcc, 0xde, 0xd2, 0xe7, 0x60, 0x94, 0x5e, 0xf9, 0x32, 0x79, 0x74, 0x3b, - 0xc9, 0xa6, 0xf9, 0x60, 0x30, 0x7f, 0x95, 0xbc, 0x4e, 0x32, 0x22, 0xce, 0x5f, 0x0d, 0xe6, 0x57, - 0xc8, 0x8b, 0xd5, 0x9a, 0x38, 0xbf, 0x12, 0xcc, 0x5f, 0xcb, 0x8e, 0x93, 0x57, 0x6a, 0x84, 0xf9, - 0x6b, 0xc1, 0xfc, 0x6a, 0x76, 0x02, 0x07, 0xb3, 0x38, 0xbf, 0x1a, 0xcc, 0xaf, 0x65, 0x27, 0x2f, - 0x28, 0x0b, 0x19, 0x71, 0x7e, 0x2d, 0xf7, 0x8b, 0xc4, 0xbd, 0x76, 0xe0, 0xde, 0x19, 0xd1, 0xbd, - 0xbe, 0x63, 0x67, 0x44, 0xc7, 0xfa, 0x2e, 0x9d, 0x11, 0x5d, 0xea, 0x3b, 0x73, 0x46, 0x74, 0xa6, - 0xef, 0xc6, 0x19, 0xd1, 0x8d, 0xbe, 0x03, 0x67, 0x44, 0x07, 0xfa, 0xae, 0x9b, 0x11, 0x5d, 0xe7, - 0x3b, 0x6d, 0x46, 0x74, 0x9a, 0xef, 0xae, 0x19, 0xd1, 0x5d, 0xbe, 0xa3, 0xb2, 0x92, 0xa3, 0x02, - 0x17, 0x65, 0x25, 0x17, 0x05, 0xce, 0xc9, 0x4a, 0xce, 0x09, 0xdc, 0x92, 0x95, 0xdc, 0x12, 0x38, - 0x24, 0x2b, 0x39, 0x24, 0x70, 0x45, 0x56, 0x72, 0x45, 0xe0, 0x04, 0x96, 0x63, 0x06, 0x6a, 0x45, - 0xe4, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, - 0x7d, 0x73, 0x4c, 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x3f, 0xc7, - 0xd4, 0x98, 0x1c, 0x53, 0x63, 0x72, 0x4c, 0x8d, 0xc9, 0x31, 0x35, 0x26, 0xc7, 0xd4, 0x98, 0x1c, - 0x53, 0x7b, 0xe6, 0x58, 0xe0, 0xde, 0x19, 0xd1, 0xbd, 0x91, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, - 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, - 0xda, 0x23, 0xc7, 0xd4, 0x5e, 0x39, 0xa6, 0xf6, 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x3d, 0x73, - 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c, 0x53, 0xc3, 0x39, 0xf6, 0x6f, 0x55, 0xd0, 0x69, 0x8e, - 0xed, 0x92, 0x97, 0x7f, 0x98, 0x2b, 0xe6, 0xa4, 0x4c, 0x1b, 0xc1, 0xae, 0xd3, 0x02, 0x97, 0xcc, - 0x49, 0xb9, 0x26, 0xce, 0xaf, 0xf8, 0xf3, 0x3c, 0xdb, 0xc4, 0xf9, 0x6b, 0xfe, 0x3c, 0xcf, 0x37, - 0x71, 0x7e, 0xd5, 0x9f, 0xe7, 0x19, 0x27, 0xce, 0xaf, 0xf9, 0xf3, 0x3c, 0xe7, 0xc4, 0xf9, 0xeb, - 0xfe, 0x3c, 0xcf, 0x3a, 0x71, 0xfe, 0x86, 0x3f, 0xcf, 0xf3, 0x4e, 0x9c, 0xbf, 0xe9, 0xcf, 0xf3, - 0xcc, 0x13, 0xe7, 0x6f, 0xe9, 0x17, 0xe4, 0xdc, 0xe3, 0x02, 0xbe, 0x6b, 0x2f, 0xc8, 0xd9, 0x27, - 0x49, 0x5c, 0x0d, 0x24, 0x78, 0xfe, 0x49, 0x12, 0x2b, 0x81, 0x04, 0xcf, 0x40, 0x49, 0xe2, 0x5a, - 0xee, 0x73, 0xc4, 0x7d, 0xb6, 0xec, 0xbe, 0x59, 0xc9, 0x7d, 0x89, 0x90, 0xeb, 0x66, 0x25, 0xd7, - 0x25, 0x42, 0x6e, 0x9b, 0x95, 0xdc, 0x96, 0x08, 0xb9, 0x6c, 0x56, 0x72, 0x59, 0x22, 0xe4, 0xae, - 0x59, 0xc9, 0x5d, 0x89, 0x90, 0xab, 0x66, 0x25, 0x57, 0x25, 0x42, 0x6e, 0x9a, 0x95, 0xdc, 0x94, - 0x08, 0xb9, 0x68, 0x56, 0x72, 0x51, 0x22, 0xe4, 0x9e, 0x59, 0xc9, 0x3d, 0x89, 0x90, 0x6b, 0xce, - 0xcb, 0xae, 0x49, 0x84, 0xdd, 0x72, 0x5e, 0x76, 0x4b, 0x22, 0xec, 0x92, 0xf3, 0xb2, 0x4b, 0x12, - 0x61, 0x77, 0x9c, 0x97, 0xdd, 0x91, 0x08, 0xbb, 0xe2, 0xcf, 0x12, 0xbc, 0x23, 0xdc, 0xf3, 0xda, - 0x9d, 0x9a, 0xf7, 0x81, 0x3a, 0xc2, 0x65, 0xa1, 0x7d, 0x48, 0xaf, 0xe8, 0x4b, 0xa4, 0x61, 0x0d, - 0x77, 0x9c, 0xd2, 0x0a, 0xb6, 0x2c, 0x34, 0x16, 0x21, 0x84, 0x1d, 0x8d, 0x58, 0xfd, 0x40, 0xbd, - 0xe1, 0xb2, 0xd0, 0x66, 0xc4, 0xeb, 0x77, 0xf3, 0x23, 0xef, 0xd8, 0xde, 0x4e, 0xf0, 0x8e, 0x8d, - 0x99, 0xff, 0xac, 0x1d, 0xdb, 0x62, 0xbc, 0xc9, 0x7d, 0x63, 0x2f, 0xc6, 0x1b, 0xbb, 0x6b, 0xd5, - 0x19, 0xb4, 0x83, 0x5b, 0x8c, 0x37, 0xad, 0x6f, 0xd4, 0x0f, 0xb7, 0xdf, 0x62, 0x11, 0x6c, 0xa0, - 0x56, 0x44, 0x04, 0x9f, 0xb5, 0xdf, 0x5a, 0x16, 0x4a, 0xc9, 0x59, 0x23, 0x58, 0x3d, 0x73, 0x04, - 0x9f, 0xb5, 0xf3, 0x5a, 0x16, 0xca, 0xcb, 0x99, 0x23, 0xf8, 0x23, 0xe8, 0x87, 0x58, 0x04, 0x07, - 0xe6, 0x3f, 0x6b, 0x3f, 0xb4, 0x18, 0x6f, 0xf2, 0xc8, 0x08, 0x56, 0xcf, 0x10, 0xc1, 0x83, 0xf4, - 0x47, 0x8b, 0xf1, 0xa6, 0x8d, 0x8e, 0xe0, 0x0f, 0xdc, 0xcd, 0x7c, 0x45, 0x81, 0xa9, 0x8a, 0x55, - 0x2f, 0x37, 0x0f, 0x51, 0xbd, 0x8e, 0xea, 0xcc, 0x8e, 0xcb, 0x42, 0x25, 0xe8, 0xe1, 0xea, 0x77, - 0xde, 0x9d, 0x0f, 0x2c, 0xbc, 0x06, 0x29, 0x6a, 0xd3, 0xe5, 0xe5, 0xec, 0x7d, 0x25, 0xa6, 0xc2, - 0xf9, 0xa2, 0xfa, 0x45, 0x0e, 0xbb, 0xba, 0x9c, 0xfd, 0x2f, 0x4a, 0xa8, 0xca, 0xf9, 0xc3, 0xb9, - 0x5f, 0x21, 0x1a, 0xda, 0x1f, 0x58, 0xc3, 0x2b, 0x03, 0x69, 0x18, 0xd2, 0xed, 0xf1, 0x2e, 0xdd, - 0x42, 0x5a, 0x75, 0x60, 0xb2, 0x62, 0xd5, 0x2b, 0xe4, 0x2b, 0xbd, 0x83, 0xa8, 0x44, 0x65, 0xa4, - 0x7a, 0xb0, 0x2c, 0x84, 0x65, 0x18, 0xe1, 0x87, 0xb4, 0x58, 0x23, 0x72, 0x16, 0x3e, 0xad, 0x2d, - 0x9c, 0x76, 0xb1, 0xd7, 0x69, 0x83, 0xca, 0xee, 0x9f, 0x70, 0xb1, 0xd7, 0x09, 0x83, 0x1c, 0xf2, - 0x4f, 0xf5, 0x06, 0x5f, 0x9c, 0xe9, 0x5b, 0x38, 0xfa, 0x79, 0x48, 0x6c, 0xd2, 0x37, 0x84, 0x33, - 0xc5, 0x0c, 0x56, 0xea, 0x3b, 0xef, 0xce, 0x27, 0x0f, 0x3a, 0x56, 0xdd, 0x48, 0x6c, 0xd6, 0xf5, - 0xbb, 0x30, 0xfc, 0x29, 0xf6, 0xc5, 0x38, 0x2c, 0xb0, 0xca, 0x04, 0x3e, 0x16, 0xb3, 0xc5, 0x44, - 0xa8, 0x97, 0x0e, 0x2c, 0xdb, 0xbb, 0xba, 0x72, 0xd3, 0xa0, 0x14, 0xb9, 0xbf, 0x08, 0x40, 0xcf, - 0xb9, 0x6e, 0xba, 0x27, 0x7a, 0x85, 0x33, 0xd3, 0x53, 0xdf, 0xfc, 0xce, 0xbb, 0xf3, 0xab, 0x83, - 0xb0, 0x3e, 0x5b, 0x37, 0xdd, 0x93, 0x67, 0xbd, 0xd3, 0x16, 0x5a, 0x2a, 0x9e, 0x7a, 0xc8, 0xe5, - 0xec, 0x2d, 0xbe, 0xea, 0xb1, 0xeb, 0xca, 0x86, 0xae, 0x2b, 0x25, 0x5c, 0xd3, 0x86, 0x78, 0x4d, - 0xcb, 0x0f, 0x7b, 0x3d, 0x6f, 0xf0, 0x45, 0x42, 0xb2, 0xa4, 0x1a, 0x67, 0x49, 0xf5, 0x83, 0x5a, - 0xb2, 0xc5, 0xeb, 0xa3, 0x74, 0xad, 0x6a, 0xbf, 0x6b, 0x55, 0x3f, 0xc8, 0xb5, 0xfe, 0x09, 0xcd, - 0x56, 0x3f, 0x9f, 0x0e, 0x6c, 0xfa, 0x76, 0xe2, 0x9f, 0xaf, 0xbd, 0xa0, 0x0f, 0xb5, 0x0b, 0xc8, - 0x27, 0xef, 0xbf, 0x35, 0xaf, 0xe4, 0xbe, 0x92, 0xe0, 0x57, 0x4e, 0x13, 0xe9, 0xe1, 0xae, 0xfc, - 0xcf, 0x4b, 0x4f, 0xf5, 0x51, 0x58, 0xe8, 0xcb, 0x0a, 0xcc, 0x74, 0x55, 0x72, 0x6a, 0xa6, 0x0f, - 0xb7, 0x9c, 0xdb, 0x67, 0x2d, 0xe7, 0x4c, 0xc1, 0xdf, 0x51, 0xe0, 0x9c, 0x54, 0x5e, 0xa9, 0x7a, - 0x57, 0x24, 0xf5, 0x1e, 0xed, 0x3e, 0x13, 0x11, 0x0c, 0x69, 0x17, 0x76, 0xaf, 0x04, 0x08, 0x31, - 0xfb, 0x7e, 0x5f, 0x95, 0xfc, 0x7e, 0xde, 0x07, 0x44, 0x98, 0x8b, 0x47, 0x00, 0x53, 0xdb, 0x81, - 0xe4, 0x7e, 0x1b, 0x21, 0x7d, 0x0e, 0x12, 0x3b, 0x6d, 0xa6, 0xe1, 0x04, 0xc5, 0xef, 0xb4, 0x8b, - 0x6d, 0xd3, 0xae, 0x9d, 0x18, 0x89, 0x9d, 0xb6, 0x7e, 0x11, 0xd4, 0x02, 0xfb, 0xe9, 0x81, 0xf4, - 0xca, 0x24, 0x15, 0x28, 0xd8, 0x75, 0x26, 0x81, 0xe7, 0xf4, 0x39, 0x48, 0x6e, 0x21, 0xf3, 0x88, - 0x29, 0x01, 0x54, 0x06, 0x8f, 0x18, 0x64, 0x9c, 0x9d, 0xf0, 0x65, 0x48, 0x71, 0x62, 0xfd, 0x12, - 0x46, 0x1c, 0x79, 0xec, 0xb4, 0x0c, 0x81, 0xd5, 0x61, 0x2b, 0x17, 0x99, 0xd5, 0x2f, 0xc3, 0xb0, - 0x61, 0x1d, 0x9f, 0x78, 0xec, 0xe4, 0xdd, 0x62, 0x74, 0x3a, 0x77, 0x0f, 0xc6, 0x7c, 0x8d, 0x3e, - 0x64, 0xea, 0x75, 0x7a, 0x69, 0xfa, 0x6c, 0x78, 0x3d, 0xe1, 0xfb, 0x96, 0x74, 0x48, 0xbf, 0x00, - 0xa9, 0x3d, 0xaf, 0x1d, 0x14, 0x7d, 0xde, 0x91, 0xfa, 0xa3, 0xb9, 0x5f, 0x54, 0x20, 0xb5, 0x8e, - 0x50, 0x8b, 0x18, 0xfc, 0x29, 0x48, 0xae, 0x3b, 0xaf, 0xdb, 0x4c, 0xc1, 0x29, 0x66, 0x51, 0x3c, - 0xcd, 0x6c, 0x4a, 0xa6, 0xf5, 0xa7, 0xc2, 0x76, 0x9f, 0xf6, 0xed, 0x1e, 0x92, 0x23, 0xb6, 0xcf, - 0x09, 0xb6, 0x67, 0x0e, 0xc4, 0x42, 0x5d, 0xf6, 0xbf, 0x01, 0xe9, 0xd0, 0x59, 0xf4, 0x05, 0xa6, - 0x46, 0x42, 0x06, 0x86, 0x6d, 0x85, 0x25, 0x72, 0x08, 0xc6, 0x85, 0x13, 0x63, 0x68, 0xc8, 0xc4, - 0x3d, 0xa0, 0xc4, 0xcc, 0x8b, 0xa2, 0x99, 0xa3, 0x45, 0x99, 0xa9, 0x97, 0xa9, 0x8d, 0x88, 0xb9, - 0x2f, 0xd1, 0xe0, 0xec, 0xed, 0x44, 0xfc, 0x39, 0x37, 0x0c, 0x6a, 0xc5, 0x6a, 0xe4, 0x9e, 0x03, - 0xa0, 0x29, 0x5f, 0xb6, 0x3b, 0x4d, 0x29, 0xeb, 0x26, 0xb8, 0x81, 0xf7, 0x4f, 0xd0, 0x3e, 0x72, - 0x89, 0x88, 0xd8, 0x4f, 0xe1, 0x02, 0x03, 0x34, 0xc5, 0x08, 0xfe, 0x99, 0x58, 0x7c, 0x64, 0x27, - 0x86, 0x45, 0xb3, 0x54, 0xf4, 0x1e, 0xf2, 0x0a, 0xb6, 0xe3, 0x9d, 0xa0, 0xb6, 0x84, 0x58, 0xd1, - 0xaf, 0x09, 0x09, 0x3b, 0xb1, 0xf2, 0xb8, 0x8f, 0xe8, 0x09, 0xba, 0x96, 0xfb, 0x06, 0x51, 0x10, - 0xb7, 0x02, 0x5d, 0x17, 0xa8, 0x0e, 0x70, 0x81, 0xfa, 0x75, 0xa1, 0x7f, 0xeb, 0xa3, 0xa6, 0x74, - 0x6b, 0x79, 0x4b, 0xb8, 0xcf, 0xe9, 0xaf, 0xac, 0x78, 0x8f, 0xc9, 0x6d, 0xca, 0x55, 0x7e, 0x26, - 0x56, 0xe5, 0x1e, 0xdd, 0xed, 0x59, 0x6d, 0xaa, 0x0e, 0x6a, 0xd3, 0xdf, 0xf3, 0x3b, 0x0e, 0xfa, - 0x23, 0x0e, 0xe4, 0x37, 0x43, 0xf4, 0x8f, 0xc5, 0xfa, 0x3e, 0xaf, 0x94, 0x7c, 0x55, 0x57, 0x07, - 0x75, 0x7f, 0x3e, 0x51, 0x2c, 0xfa, 0xea, 0xde, 0x38, 0x43, 0x08, 0xe4, 0x13, 0xa5, 0x92, 0x5f, - 0xb6, 0x53, 0x9f, 0x7b, 0x6b, 0x5e, 0xf9, 0xfa, 0x5b, 0xf3, 0x43, 0xb9, 0xdf, 0x50, 0x60, 0x8a, - 0x49, 0x86, 0x02, 0xf7, 0x59, 0x49, 0xf9, 0x47, 0x78, 0xcd, 0x88, 0xb2, 0xc0, 0x4f, 0x2c, 0x78, - 0xbf, 0xad, 0x40, 0xb6, 0x4b, 0x57, 0x6e, 0xef, 0xe5, 0x81, 0x54, 0xce, 0x2b, 0xe5, 0x9f, 0xbe, - 0xcd, 0xef, 0xc1, 0xf0, 0xbe, 0xd5, 0x44, 0x6d, 0xbc, 0x12, 0xe0, 0x0f, 0x54, 0x65, 0xfe, 0x30, - 0x87, 0x0e, 0xf1, 0x39, 0xaa, 0x9c, 0x30, 0xb7, 0xa2, 0x67, 0x21, 0xb9, 0x6e, 0x7a, 0x26, 0xd1, - 0x20, 0xe3, 0xd7, 0x57, 0xd3, 0x33, 0x73, 0xd7, 0x20, 0xb3, 0x7d, 0x4a, 0x5e, 0xa1, 0xa9, 0x93, - 0xd7, 0x43, 0xc4, 0xee, 0x8f, 0xf7, 0xab, 0x57, 0x17, 0x87, 0x53, 0x75, 0xed, 0xbe, 0x92, 0x4f, - 0x12, 0x7d, 0x5e, 0x83, 0x89, 0x1d, 0xac, 0x36, 0xc1, 0x11, 0xd8, 0x05, 0x50, 0xb6, 0xc5, 0x46, - 0x28, 0xcc, 0x6a, 0x28, 0xdb, 0x52, 0xfb, 0xa8, 0xfa, 0xe6, 0x91, 0xda, 0x36, 0xd5, 0x6f, 0xdb, - 0x16, 0x93, 0xa9, 0x09, 0x6d, 0x6a, 0x31, 0x99, 0x02, 0x6d, 0x9c, 0x9d, 0xf7, 0x3f, 0xa9, 0xa0, - 0xd1, 0x56, 0x67, 0x1d, 0x1d, 0x59, 0xb6, 0xe5, 0x75, 0xf7, 0xab, 0xbe, 0xc6, 0xfa, 0x0b, 0x30, - 0x86, 0x4d, 0xba, 0xc1, 0x7e, 0x7a, 0x0b, 0x9b, 0xfe, 0x22, 0x6b, 0x51, 0x24, 0x0a, 0x36, 0x40, - 0x42, 0x27, 0xc0, 0xe8, 0x1b, 0xa0, 0x56, 0x2a, 0xdb, 0x6c, 0x71, 0x5b, 0xed, 0x0b, 0x65, 0x6f, - 0xe0, 0xb0, 0x23, 0x36, 0xe6, 0x1e, 0x1b, 0x98, 0x40, 0x5f, 0x85, 0x44, 0x65, 0x9b, 0x35, 0xbc, - 0x97, 0x06, 0xa1, 0x31, 0x12, 0x95, 0xed, 0xd9, 0x7f, 0xa7, 0xc0, 0xb8, 0x30, 0xaa, 0xe7, 0x20, - 0x43, 0x07, 0x42, 0x97, 0x3b, 0x62, 0x08, 0x63, 0x5c, 0xe7, 0xc4, 0x07, 0xd4, 0x79, 0xb6, 0x00, - 0x93, 0xd2, 0xb8, 0xbe, 0x04, 0x7a, 0x78, 0x88, 0x29, 0x41, 0x7f, 0xb6, 0x28, 0x62, 0x26, 0xf7, - 0x04, 0x40, 0x60, 0x57, 0xff, 0xd7, 0x76, 0x2a, 0xe5, 0xbd, 0xfd, 0xf2, 0xba, 0xa6, 0xe4, 0xbe, - 0xa5, 0x40, 0x9a, 0xb5, 0xad, 0x35, 0xa7, 0x85, 0xf4, 0x22, 0x28, 0x05, 0x16, 0x41, 0x0f, 0xa7, - 0xb7, 0x52, 0xd0, 0xaf, 0x80, 0x52, 0x1c, 0xdc, 0xd5, 0x4a, 0x51, 0x5f, 0x01, 0xa5, 0xc4, 0x1c, - 0x3c, 0x98, 0x67, 0x94, 0x52, 0xee, 0x8f, 0x54, 0x98, 0x0e, 0xb7, 0xd1, 0xbc, 0x9e, 0x5c, 0x14, - 0xef, 0x9b, 0xf2, 0x63, 0x57, 0x57, 0xae, 0xad, 0x2e, 0xe1, 0x7f, 0xfc, 0x90, 0xbc, 0x28, 0xde, - 0x42, 0x75, 0x8b, 0x74, 0xbd, 0x26, 0x92, 0x4f, 0x86, 0x66, 0xbb, 0x5e, 0x13, 0x11, 0x66, 0xbb, - 0x5e, 0x13, 0x11, 0x66, 0xbb, 0x5e, 0x13, 0x11, 0x66, 0xbb, 0x1e, 0x05, 0x08, 0xb3, 0x5d, 0xaf, - 0x89, 0x08, 0xb3, 0x5d, 0xaf, 0x89, 0x08, 0xb3, 0xdd, 0xaf, 0x89, 0xb0, 0xe9, 0x9e, 0xaf, 0x89, - 0x88, 0xf3, 0xdd, 0xaf, 0x89, 0x88, 0xf3, 0xdd, 0xaf, 0x89, 0xe4, 0x93, 0x5e, 0xbb, 0x83, 0x7a, - 0x3f, 0x74, 0x10, 0xf1, 0xfd, 0xee, 0x01, 0x83, 0x02, 0xbc, 0x03, 0x93, 0x74, 0x3f, 0xa2, 0xe4, - 0xd8, 0x9e, 0x69, 0xd9, 0xa8, 0xad, 0x7f, 0x1c, 0x32, 0x74, 0x88, 0xde, 0xe5, 0x44, 0xdd, 0x05, - 0xd2, 0x79, 0x56, 0x6e, 0x05, 0xe9, 0xdc, 0x9f, 0x25, 0x61, 0x86, 0x0e, 0x54, 0xcc, 0x26, 0x12, - 0x5e, 0x32, 0xba, 0x2c, 0x3d, 0x52, 0x9a, 0xc0, 0xf0, 0x07, 0xef, 0xce, 0xd3, 0xd1, 0x82, 0x1f, - 0x4c, 0x97, 0xa5, 0x87, 0x4b, 0xa2, 0x5c, 0xb0, 0xfe, 0x5c, 0x96, 0x5e, 0x3c, 0x12, 0xe5, 0xfc, - 0xe5, 0xc6, 0x97, 0xe3, 0xaf, 0x20, 0x89, 0x72, 0xeb, 0x7e, 0x94, 0x5d, 0x96, 0x5e, 0x46, 0x12, - 0xe5, 0xca, 0x7e, 0xbc, 0x5d, 0x96, 0x1e, 0x3d, 0x89, 0x72, 0x1b, 0x7e, 0xe4, 0x5d, 0x96, 0x1e, - 0x42, 0x89, 0x72, 0x77, 0xfc, 0x18, 0xbc, 0x2c, 0xbd, 0xaa, 0x24, 0xca, 0xbd, 0xe8, 0x47, 0xe3, - 0x65, 0xe9, 0xa5, 0x25, 0x51, 0x6e, 0xd3, 0x8f, 0xcb, 0x05, 0xf9, 0xf5, 0x25, 0x51, 0xf0, 0x6e, - 0x10, 0xa1, 0x0b, 0xf2, 0x8b, 0x4c, 0xa2, 0xe4, 0x27, 0x82, 0x58, 0x5d, 0x90, 0x5f, 0x69, 0x12, - 0x25, 0xb7, 0x82, 0xa8, 0x5d, 0x90, 0x1f, 0x95, 0x89, 0x92, 0xdb, 0x41, 0xfc, 0x2e, 0xc8, 0x0f, - 0xcd, 0x44, 0xc9, 0x4a, 0x10, 0xc9, 0x0b, 0xf2, 0xe3, 0x33, 0x51, 0x72, 0x27, 0xd8, 0x43, 0xff, - 0x7d, 0x29, 0xfc, 0x42, 0x2f, 0x41, 0xe5, 0xa4, 0xf0, 0x83, 0x88, 0xd0, 0xcb, 0x49, 0xa1, 0x07, - 0x11, 0x61, 0x97, 0x93, 0xc2, 0x0e, 0x22, 0x42, 0x2e, 0x27, 0x85, 0x1c, 0x44, 0x84, 0x5b, 0x4e, - 0x0a, 0x37, 0x88, 0x08, 0xb5, 0x9c, 0x14, 0x6a, 0x10, 0x11, 0x66, 0x39, 0x29, 0xcc, 0x20, 0x22, - 0xc4, 0x72, 0x52, 0x88, 0x41, 0x44, 0x78, 0xe5, 0xa4, 0xf0, 0x82, 0x88, 0xd0, 0xba, 0x24, 0x87, - 0x16, 0x44, 0x85, 0xd5, 0x25, 0x39, 0xac, 0x20, 0x2a, 0xa4, 0x9e, 0x94, 0x43, 0x6a, 0xec, 0xc1, - 0xbb, 0xf3, 0xc3, 0x78, 0x28, 0x14, 0x4d, 0x97, 0xe4, 0x68, 0x82, 0xa8, 0x48, 0xba, 0x24, 0x47, - 0x12, 0x44, 0x45, 0xd1, 0x25, 0x39, 0x8a, 0x20, 0x2a, 0x82, 0xde, 0x96, 0x23, 0x28, 0x78, 0xc5, - 0x27, 0x27, 0x3d, 0x51, 0x8c, 0x8b, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, - 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, 0x07, 0x88, 0x20, 0x75, 0x80, 0x08, 0x52, - 0x07, 0x89, 0x20, 0x75, 0xa0, 0x08, 0x52, 0x7b, 0x45, 0xd0, 0x25, 0xf9, 0x85, 0x07, 0x88, 0x2a, - 0x48, 0x97, 0xe4, 0x27, 0x9f, 0xf1, 0x21, 0xa4, 0x0e, 0x14, 0x42, 0x6a, 0xaf, 0x10, 0xfa, 0x7d, - 0x15, 0xa6, 0x85, 0x10, 0x62, 0x8f, 0x87, 0x3e, 0xac, 0x0a, 0x74, 0x7d, 0x80, 0xf7, 0x2b, 0xa2, - 0x62, 0xea, 0xfa, 0x00, 0xcf, 0xa8, 0xfb, 0xc5, 0x59, 0x77, 0x15, 0x2a, 0x0f, 0x50, 0x85, 0x36, - 0xfc, 0x18, 0xba, 0x3e, 0xc0, 0x7b, 0x17, 0xdd, 0xb1, 0x77, 0xb3, 0x5f, 0x11, 0x78, 0x71, 0xa0, - 0x22, 0xb0, 0x39, 0x50, 0x11, 0xb8, 0x1b, 0x78, 0xf0, 0x97, 0x12, 0x70, 0x2e, 0xf0, 0x20, 0xfd, - 0x44, 0x7e, 0x22, 0x29, 0x17, 0x7a, 0x42, 0xa5, 0xf3, 0xa7, 0x36, 0x21, 0x37, 0x26, 0x36, 0xeb, - 0xfa, 0xae, 0xf8, 0xac, 0x2a, 0x7f, 0xd6, 0xe7, 0x37, 0x21, 0x8f, 0xb3, 0xbd, 0xd0, 0x4b, 0xa0, - 0x6e, 0xd6, 0x5d, 0x52, 0x2d, 0xa2, 0x4e, 0x5b, 0x32, 0xf0, 0xb4, 0x6e, 0xc0, 0x08, 0x11, 0x77, - 0x89, 0x7b, 0x3f, 0xc8, 0x89, 0xd7, 0x0d, 0xc6, 0x94, 0x7b, 0x5b, 0x81, 0x0b, 0x42, 0x28, 0x7f, - 0x38, 0x4f, 0x0c, 0x6e, 0x0f, 0xf4, 0xc4, 0x40, 0x48, 0x90, 0xe0, 0xe9, 0xc1, 0xd3, 0xdd, 0x0f, - 0xaa, 0xc3, 0x59, 0x22, 0x3f, 0x49, 0xf8, 0xcb, 0x30, 0x11, 0x5c, 0x01, 0xb9, 0x65, 0x5b, 0x8b, - 0xdf, 0xcc, 0x8c, 0x4a, 0xcd, 0x35, 0x69, 0x13, 0xad, 0x2f, 0xcc, 0xcf, 0xd6, 0x5c, 0x1e, 0x26, - 0x2b, 0xe2, 0x77, 0x79, 0xe2, 0xf6, 0x22, 0x52, 0xb8, 0x35, 0xbf, 0xff, 0xd5, 0xf9, 0xa1, 0xdc, - 0xc7, 0x20, 0x13, 0xfe, 0xba, 0x8e, 0x04, 0x1c, 0xe3, 0xc0, 0x7c, 0xf2, 0x1d, 0x2c, 0xfd, 0x0f, - 0x15, 0x78, 0x24, 0x2c, 0xfe, 0x92, 0xe5, 0x9d, 0x6c, 0xda, 0xb8, 0xa7, 0x7f, 0x0e, 0x52, 0x88, - 0x39, 0x8e, 0xfd, 0xda, 0x09, 0xbb, 0x8d, 0x8c, 0x14, 0x5f, 0x22, 0xff, 0x1a, 0x3e, 0x44, 0xda, - 0xe2, 0xe0, 0xa7, 0x5d, 0x99, 0x7d, 0x0a, 0x86, 0x29, 0xbf, 0xa8, 0xd7, 0xb8, 0xa4, 0xd7, 0xaf, - 0x47, 0xe8, 0x45, 0xe2, 0x48, 0xbf, 0x2b, 0xe8, 0x15, 0xba, 0x5b, 0x8d, 0x14, 0x5f, 0xe2, 0xc1, - 0x57, 0x4c, 0xe1, 0xfe, 0x8f, 0x44, 0x54, 0xbc, 0x92, 0x0b, 0x90, 0x2a, 0xcb, 0x32, 0xd1, 0x7a, - 0xae, 0x43, 0xb2, 0xe2, 0xd4, 0xc9, 0xef, 0xb0, 0x90, 0xdf, 0xcb, 0x65, 0x46, 0x66, 0x3f, 0x9e, - 0x7b, 0x19, 0x52, 0xa5, 0x13, 0xab, 0x51, 0x6f, 0x23, 0x9b, 0x3d, 0xb2, 0x67, 0x3b, 0xe8, 0x18, - 0x63, 0xf8, 0x73, 0xb9, 0x12, 0x4c, 0x55, 0x1c, 0xbb, 0x78, 0xea, 0x85, 0xeb, 0xc6, 0x92, 0x94, - 0x22, 0xec, 0x91, 0x0f, 0xf9, 0x02, 0x08, 0x16, 0x28, 0x0e, 0x7f, 0xe7, 0xdd, 0x79, 0x65, 0xdf, - 0xdf, 0x3e, 0xdf, 0x86, 0x47, 0x59, 0xfa, 0x74, 0x51, 0xad, 0xc4, 0x51, 0x8d, 0xb1, 0xc7, 0xd4, - 0x21, 0xba, 0x4d, 0x4c, 0x67, 0x47, 0xd2, 0x3d, 0x9c, 0x66, 0xb8, 0x29, 0xea, 0xab, 0x99, 0x7a, - 0x26, 0xcd, 0x22, 0xe9, 0x96, 0xe2, 0xe8, 0x24, 0xcd, 0x9e, 0x84, 0x31, 0x7f, 0x2e, 0x14, 0x0d, - 0xe1, 0x4c, 0x59, 0x59, 0xcc, 0x41, 0x3a, 0x94, 0xb0, 0xfa, 0x30, 0x28, 0x05, 0x6d, 0x08, 0xff, - 0x57, 0xd4, 0x14, 0xfc, 0x5f, 0x49, 0x4b, 0x2c, 0x3e, 0x05, 0x93, 0xd2, 0xf6, 0x25, 0x9e, 0x59, - 0xd7, 0x00, 0xff, 0x57, 0xd6, 0xd2, 0xb3, 0xc9, 0xcf, 0xfd, 0x93, 0xb9, 0xa1, 0xc5, 0xdb, 0xa0, - 0x77, 0x6f, 0x74, 0xea, 0x23, 0x90, 0x28, 0x60, 0xca, 0x47, 0x21, 0x51, 0x2c, 0x6a, 0xca, 0xec, - 0xe4, 0xdf, 0xf8, 0xd2, 0x85, 0x74, 0x91, 0x7c, 0x17, 0xf9, 0x1e, 0xf2, 0x8a, 0x45, 0x06, 0x7e, - 0x1e, 0x1e, 0x89, 0xdc, 0x28, 0xc5, 0xf8, 0x52, 0x89, 0xe2, 0xd7, 0xd7, 0xbb, 0xf0, 0xeb, 0xeb, - 0x04, 0xaf, 0xe4, 0xf9, 0x03, 0xe7, 0x82, 0x1e, 0xb1, 0x2d, 0x99, 0xad, 0x87, 0x1e, 0x70, 0x17, - 0xf2, 0xcf, 0x33, 0xd9, 0x62, 0xa4, 0x2c, 0x8a, 0x79, 0x60, 0x5d, 0xcc, 0x97, 0x18, 0xbe, 0x14, - 0x89, 0x3f, 0x92, 0x9e, 0xaa, 0x8a, 0x2b, 0x04, 0x23, 0x29, 0xf9, 0x0a, 0xaf, 0x47, 0x92, 0x9c, - 0x84, 0xde, 0x75, 0x5f, 0xf7, 0x15, 0x2e, 0x47, 0xca, 0x5a, 0x31, 0xef, 0x7c, 0x95, 0xf3, 0x57, - 0xd8, 0x22, 0x5f, 0xb8, 0xaa, 0x3f, 0xc2, 0x73, 0x54, 0xa8, 0xc0, 0xcc, 0x40, 0x5c, 0x2a, 0x5f, - 0x62, 0x80, 0x62, 0x4f, 0x40, 0x6f, 0x2b, 0x71, 0x64, 0xfe, 0x45, 0x46, 0x52, 0xea, 0x49, 0x12, - 0x63, 0x2a, 0x0e, 0x2f, 0xee, 0xdf, 0x7f, 0x6f, 0x6e, 0xe8, 0x9d, 0xf7, 0xe6, 0x86, 0xfe, 0xdb, - 0x7b, 0x73, 0x43, 0xdf, 0x7d, 0x6f, 0x4e, 0xf9, 0xfe, 0x7b, 0x73, 0xca, 0x0f, 0xdf, 0x9b, 0x53, - 0xfe, 0xf4, 0xbd, 0x39, 0xe5, 0xcd, 0x07, 0x73, 0xca, 0xd7, 0x1f, 0xcc, 0x29, 0xdf, 0x78, 0x30, - 0xa7, 0xfc, 0xee, 0x83, 0x39, 0xe5, 0xed, 0x07, 0x73, 0xca, 0xfd, 0x07, 0x73, 0xca, 0x3b, 0x0f, - 0xe6, 0x94, 0xef, 0x3e, 0x98, 0x53, 0xbe, 0xff, 0x60, 0x6e, 0xe8, 0x87, 0x0f, 0xe6, 0x94, 0x3f, - 0x7d, 0x30, 0x37, 0xf4, 0xe6, 0xfb, 0x73, 0x43, 0x6f, 0xbd, 0x3f, 0x37, 0xf4, 0xf5, 0xf7, 0xe7, - 0x14, 0xf8, 0xc3, 0x55, 0xb8, 0xcc, 0xbe, 0x48, 0x46, 0xbf, 0xb7, 0xea, 0x7f, 0x6b, 0xf5, 0x8a, - 0x77, 0x82, 0x48, 0x63, 0x70, 0x8d, 0xff, 0xaa, 0x93, 0x3f, 0x70, 0xc6, 0xaf, 0x96, 0xcd, 0x3e, - 0xec, 0x17, 0xd9, 0x72, 0xff, 0x7e, 0x18, 0x46, 0xf9, 0x86, 0x70, 0xd4, 0xef, 0x42, 0xaf, 0x41, - 0xea, 0xc4, 0x6a, 0x98, 0x6d, 0xcb, 0x3b, 0x65, 0x3b, 0xa1, 0x8f, 0x2d, 0x05, 0x6a, 0xf3, 0xbd, - 0xd3, 0x17, 0x3b, 0x4d, 0xa7, 0xd3, 0x36, 0x7c, 0x51, 0xfd, 0x02, 0x64, 0x4e, 0x90, 0x75, 0x7c, - 0xe2, 0x55, 0x2d, 0xbb, 0x5a, 0x6b, 0x92, 0x8e, 0x79, 0xdc, 0x00, 0x3a, 0xb6, 0x69, 0x97, 0x9a, - 0xf8, 0x64, 0x75, 0xd3, 0x33, 0xc9, 0x9d, 0x7a, 0xc6, 0x20, 0x9f, 0xf5, 0x8b, 0x90, 0x69, 0x23, - 0xb7, 0xd3, 0xf0, 0xaa, 0x35, 0xa7, 0x63, 0x7b, 0xa4, 0xa7, 0x55, 0x8d, 0x34, 0x1d, 0x2b, 0xe1, - 0x21, 0xfd, 0x49, 0x18, 0xf7, 0xda, 0x1d, 0x54, 0x75, 0x6b, 0x8e, 0xe7, 0x36, 0x4d, 0x9b, 0xf4, - 0xb4, 0x29, 0x23, 0x83, 0x07, 0xf7, 0xd8, 0x18, 0xf9, 0xbb, 0x03, 0x35, 0xa7, 0x8d, 0xc8, 0x2d, - 0x75, 0xc2, 0xa0, 0x07, 0xba, 0x06, 0xea, 0xab, 0xe8, 0x94, 0xdc, 0xb4, 0x25, 0x0d, 0xfc, 0x51, - 0x7f, 0x06, 0x46, 0xe8, 0x9f, 0xa4, 0x20, 0x1d, 0x36, 0x79, 0x7e, 0xed, 0x5f, 0x1a, 0xdd, 0xa7, - 0x35, 0x98, 0x80, 0x7e, 0x0b, 0x46, 0x3d, 0xd4, 0x6e, 0x9b, 0x96, 0x4d, 0x6e, 0xa0, 0xd2, 0x2b, - 0xf3, 0x11, 0x66, 0xd8, 0xa7, 0x12, 0xe4, 0x27, 0x5e, 0x0d, 0x2e, 0xaf, 0xaf, 0x41, 0x86, 0xc8, - 0xad, 0x54, 0xe9, 0x9f, 0xed, 0x48, 0xf7, 0x8c, 0xe9, 0x34, 0x95, 0xe3, 0x8f, 0x0b, 0x38, 0x8c, - 0xfe, 0xbc, 0xdd, 0x38, 0x39, 0xed, 0x93, 0x11, 0xa7, 0x25, 0xe5, 0x77, 0x85, 0xb4, 0x8e, 0xf4, - 0xd4, 0x8c, 0x87, 0xfe, 0x00, 0xde, 0x36, 0x64, 0xc2, 0x7a, 0x71, 0x33, 0xd0, 0x16, 0x88, 0x98, - 0xe1, 0xe9, 0xe0, 0x27, 0xdd, 0x7b, 0x58, 0x81, 0xce, 0xe7, 0x13, 0x37, 0x95, 0xd9, 0x5d, 0xd0, - 0xe4, 0xf3, 0x45, 0x50, 0x5e, 0x16, 0x29, 0xb5, 0xf0, 0xc5, 0x92, 0xcd, 0xf2, 0x80, 0x31, 0xf7, - 0x02, 0x8c, 0xd0, 0xf8, 0xd1, 0xd3, 0x30, 0x1a, 0xfc, 0x72, 0x62, 0x0a, 0x92, 0xbb, 0x07, 0x95, - 0x3d, 0xfa, 0x13, 0xa8, 0x7b, 0x5b, 0x85, 0xdd, 0xbd, 0xfd, 0xcd, 0xd2, 0x27, 0xb4, 0x84, 0x3e, - 0x09, 0xe9, 0xe2, 0xe6, 0xd6, 0x56, 0xb5, 0x58, 0xd8, 0xdc, 0x2a, 0xdf, 0xd3, 0xd4, 0xdc, 0x1c, - 0x8c, 0x50, 0x3d, 0xc9, 0x4f, 0xb9, 0x75, 0x6c, 0xfb, 0x94, 0xb7, 0x10, 0xe4, 0x20, 0xf7, 0x4d, - 0x1d, 0x46, 0x0b, 0x8d, 0xc6, 0xb6, 0xd9, 0x72, 0xf5, 0x97, 0x60, 0x8a, 0xfe, 0xa8, 0xc4, 0xbe, - 0xb3, 0x4e, 0x7e, 0x71, 0x10, 0x17, 0x08, 0x85, 0xfd, 0x94, 0x7d, 0x70, 0xdd, 0x4c, 0x7c, 0xa9, - 0x4b, 0x96, 0x1a, 0xb8, 0x9b, 0x43, 0xdf, 0x07, 0x8d, 0x0f, 0x6e, 0x34, 0x1c, 0xd3, 0xc3, 0xbc, - 0x09, 0xf6, 0x83, 0x80, 0xbd, 0x79, 0xb9, 0x28, 0xa5, 0xed, 0x62, 0xd0, 0x3f, 0x0e, 0xa9, 0x4d, - 0xdb, 0xbb, 0xb6, 0x82, 0xd9, 0xf8, 0x9f, 0x59, 0xe9, 0x66, 0xe3, 0x22, 0x94, 0xc5, 0x47, 0x30, - 0xf4, 0xf5, 0x55, 0x8c, 0x4e, 0xf6, 0x43, 0x13, 0x91, 0x00, 0x4d, 0x0e, 0xf5, 0x17, 0x60, 0x0c, - 0xdf, 0xa1, 0xd0, 0x93, 0x0f, 0xf3, 0xf6, 0xb5, 0x0b, 0xee, 0xcb, 0x50, 0x7c, 0x80, 0xe1, 0x04, - 0xf4, 0xfc, 0x23, 0x7d, 0x09, 0x42, 0x0a, 0x04, 0x18, 0x4c, 0xb0, 0xe7, 0x6b, 0x30, 0xda, 0x93, - 0x60, 0x4f, 0xd2, 0x60, 0x2f, 0xac, 0xc1, 0x9e, 0xaf, 0x41, 0xaa, 0x2f, 0x41, 0x58, 0x03, 0xff, - 0x58, 0x2f, 0x02, 0x6c, 0x58, 0x6f, 0xa0, 0x3a, 0x55, 0x81, 0xfe, 0x11, 0x96, 0x5c, 0x04, 0x43, - 0x20, 0x44, 0x29, 0x42, 0x28, 0xbd, 0x0c, 0xe9, 0xbd, 0xa3, 0x80, 0x04, 0xba, 0xf2, 0xd8, 0x57, - 0xe3, 0x48, 0x62, 0x09, 0xe3, 0x7c, 0x55, 0xe8, 0xc5, 0xa4, 0xfb, 0xab, 0x12, 0xba, 0x9a, 0x10, - 0x2a, 0x50, 0x85, 0x92, 0x64, 0x62, 0x54, 0x09, 0xb1, 0x84, 0x71, 0xb8, 0x18, 0x16, 0x1d, 0x07, - 0x4b, 0xb2, 0xaa, 0x34, 0x1f, 0x41, 0xc1, 0x24, 0x58, 0x31, 0x64, 0x47, 0xc4, 0x23, 0x24, 0xc8, - 0x31, 0x78, 0xa2, 0xb7, 0x47, 0xb8, 0x0c, 0xf7, 0x08, 0x3f, 0x0e, 0xe7, 0x19, 0x79, 0xa9, 0x15, - 0xf3, 0x4c, 0xc6, 0xe6, 0x19, 0x17, 0x95, 0xf2, 0x8c, 0x0f, 0xeb, 0x9f, 0x84, 0x49, 0x3e, 0x86, - 0xcb, 0x13, 0x26, 0xd5, 0xd8, 0x9f, 0xa9, 0xea, 0x4d, 0xca, 0x24, 0x29, 0xa7, 0x8c, 0xd7, 0x2b, - 0x30, 0xc1, 0x87, 0xb6, 0x5d, 0x72, 0xb9, 0x53, 0xec, 0x4f, 0x40, 0xf4, 0x66, 0xa4, 0x82, 0x94, - 0x50, 0x42, 0xcf, 0xae, 0xc3, 0x4c, 0x74, 0x35, 0x0a, 0x97, 0xdf, 0x31, 0x5a, 0x7e, 0xcf, 0x85, - 0xcb, 0xaf, 0x12, 0x2e, 0xdf, 0x25, 0x78, 0x24, 0xb2, 0xf6, 0xc4, 0x91, 0x24, 0xc2, 0x24, 0xb7, - 0x61, 0x5c, 0x28, 0x39, 0x61, 0xf0, 0x70, 0x04, 0x78, 0xb8, 0x1b, 0x1c, 0x84, 0x56, 0xc4, 0xea, - 0x21, 0x80, 0xd5, 0x30, 0xf8, 0xe3, 0x30, 0x21, 0xd6, 0x9b, 0x30, 0x7a, 0x3c, 0x02, 0x3d, 0x1e, - 0x81, 0x8e, 0x3e, 0x77, 0x32, 0x02, 0x9d, 0x94, 0xd0, 0x7b, 0x3d, 0xcf, 0x3d, 0x15, 0x81, 0x9e, - 0x8a, 0x40, 0x47, 0x9f, 0x5b, 0x8f, 0x40, 0xeb, 0x61, 0xf4, 0x73, 0x30, 0x29, 0x95, 0x98, 0x30, - 0x7c, 0x34, 0x02, 0x3e, 0x1a, 0x86, 0x3f, 0x0f, 0x9a, 0x5c, 0x5c, 0xc2, 0xf8, 0xc9, 0x08, 0xfc, - 0x64, 0xd4, 0xe9, 0xa3, 0xb5, 0x1f, 0x89, 0x80, 0x8f, 0x44, 0x9e, 0x3e, 0x1a, 0xaf, 0x45, 0xe0, - 0xb5, 0x30, 0x3e, 0x0f, 0x99, 0x70, 0x35, 0x09, 0x63, 0x53, 0x11, 0xd8, 0x94, 0x6c, 0x77, 0xa1, - 0x98, 0xc4, 0x45, 0xfa, 0x58, 0x8f, 0x74, 0x11, 0x4a, 0x48, 0x1c, 0x49, 0x26, 0x4c, 0xf2, 0x29, - 0x38, 0x17, 0x55, 0x32, 0x22, 0x38, 0x16, 0xc2, 0x1c, 0x13, 0xb8, 0x47, 0x0c, 0x9a, 0x3d, 0xb3, - 0x25, 0x35, 0x4e, 0xb3, 0x9f, 0x86, 0xe9, 0x88, 0xc2, 0x11, 0x41, 0xbb, 0x24, 0x76, 0x63, 0xd9, - 0x10, 0x2d, 0x29, 0x02, 0x96, 0x7d, 0xbc, 0xeb, 0x58, 0xb6, 0x17, 0xee, 0xca, 0xbe, 0x35, 0x0d, - 0x13, 0xac, 0x3c, 0xed, 0xb4, 0xeb, 0xa8, 0x8d, 0xea, 0xfa, 0x5f, 0xea, 0xdd, 0x3b, 0x2d, 0x77, - 0x17, 0x35, 0x86, 0x3a, 0x43, 0x0b, 0xf5, 0xe9, 0x9e, 0x2d, 0xd4, 0x95, 0x78, 0xfa, 0xb8, 0x4e, - 0xaa, 0xd4, 0xd5, 0x49, 0x3d, 0xdd, 0x9b, 0xb4, 0x57, 0x43, 0x55, 0xea, 0x6a, 0xa8, 0xfa, 0x93, - 0x44, 0xf6, 0x55, 0x1b, 0xdd, 0x7d, 0xd5, 0x42, 0x6f, 0x96, 0xde, 0xed, 0xd5, 0x46, 0x77, 0x7b, - 0x15, 0xc3, 0x13, 0xdd, 0x65, 0x6d, 0x74, 0x77, 0x59, 0x7d, 0x78, 0x7a, 0x37, 0x5b, 0x1b, 0xdd, - 0xcd, 0x56, 0x0c, 0x4f, 0x74, 0xcf, 0xb5, 0x19, 0xd1, 0x73, 0x3d, 0xd3, 0x9b, 0xa8, 0x5f, 0xeb, - 0xb5, 0x15, 0xd5, 0x7a, 0x2d, 0xf6, 0x51, 0xaa, 0x6f, 0x07, 0xb6, 0x19, 0xd1, 0x81, 0xc5, 0x29, - 0xd6, 0xa3, 0x11, 0xdb, 0x8a, 0x6a, 0xc4, 0x62, 0x15, 0xeb, 0xd5, 0x8f, 0xfd, 0x05, 0xb9, 0x1f, - 0xbb, 0xdc, 0x9b, 0x29, 0xba, 0x2d, 0xdb, 0xe8, 0x6e, 0xcb, 0x16, 0xe2, 0x72, 0x2e, 0xaa, 0x3b, - 0xfb, 0x74, 0xcf, 0xee, 0x6c, 0x80, 0x14, 0x8e, 0x6b, 0xd2, 0x5e, 0xee, 0xd5, 0xa4, 0x2d, 0xc5, - 0x73, 0xf7, 0xef, 0xd5, 0x0e, 0x7a, 0xf4, 0x6a, 0xcf, 0xc6, 0x13, 0xff, 0xac, 0x65, 0xfb, 0x59, - 0xcb, 0xf6, 0xb3, 0x96, 0xed, 0x67, 0x2d, 0xdb, 0x4f, 0xbf, 0x65, 0xcb, 0x27, 0x3f, 0xff, 0xd5, - 0x79, 0x25, 0xf7, 0x5f, 0x55, 0xff, 0xaf, 0x67, 0xbd, 0x64, 0x79, 0x27, 0xb8, 0xbc, 0x6d, 0x43, - 0x86, 0xfc, 0xdd, 0x8b, 0xa6, 0xd9, 0x6a, 0x59, 0xf6, 0x31, 0xeb, 0xd9, 0x16, 0xbb, 0xb7, 0x12, - 0x19, 0x80, 0xfc, 0xe5, 0x90, 0x6d, 0x2a, 0xcc, 0x96, 0x1b, 0x3b, 0x18, 0xd1, 0xef, 0x42, 0xba, - 0xe9, 0x1e, 0xfb, 0x6c, 0x89, 0xae, 0x85, 0x50, 0x62, 0xa3, 0x57, 0x1a, 0x90, 0x41, 0xd3, 0x1f, - 0xc0, 0xaa, 0x1d, 0x9e, 0x7a, 0x81, 0x6a, 0x6a, 0x9c, 0x6a, 0xd8, 0xa7, 0xa2, 0x6a, 0x87, 0xc1, - 0x08, 0x0e, 0x5b, 0x59, 0xf7, 0xb8, 0x4a, 0x27, 0x04, 0xcf, 0x4b, 0x30, 0x29, 0x69, 0x1b, 0x91, - 0xf3, 0x0f, 0xe1, 0x1b, 0xac, 0x98, 0xac, 0x79, 0x5c, 0x4e, 0x84, 0x03, 0x32, 0xf7, 0x04, 0x8c, - 0x0b, 0xdc, 0x7a, 0x06, 0x94, 0x23, 0xf6, 0x8d, 0x4a, 0xe5, 0x28, 0xf7, 0x15, 0x05, 0xd2, 0xec, - 0x75, 0x82, 0x5d, 0xd3, 0x6a, 0xeb, 0x2f, 0x42, 0xb2, 0xc1, 0xbf, 0xd5, 0xf4, 0xb0, 0xdf, 0xa0, - 0x25, 0x0c, 0xfa, 0x06, 0x0c, 0xb7, 0xfd, 0x6f, 0x3d, 0x3d, 0xd4, 0xd7, 0x62, 0x09, 0x3c, 0x77, - 0x5f, 0x81, 0x29, 0xf6, 0xb6, 0xab, 0xcb, 0xde, 0x81, 0x36, 0x5b, 0xb3, 0xdf, 0x54, 0x60, 0xcc, - 0x3f, 0xd2, 0x0f, 0x61, 0xc2, 0x3f, 0xa0, 0xef, 0xd9, 0xd3, 0x48, 0xcd, 0x87, 0x2c, 0xdc, 0xc5, - 0xb1, 0x14, 0xf1, 0x89, 0x3e, 0x90, 0xa2, 0x6b, 0xb2, 0x38, 0x38, 0x5b, 0x80, 0xe9, 0x08, 0xb1, - 0xb3, 0x2c, 0xc8, 0xb9, 0x8b, 0x30, 0x56, 0x71, 0x3c, 0xfa, 0xe3, 0x39, 0xfa, 0xb9, 0xd0, 0x53, - 0x85, 0x62, 0x42, 0x1b, 0x22, 0xe0, 0xc5, 0x8b, 0x30, 0xca, 0xb2, 0x5f, 0x1f, 0x81, 0xc4, 0x76, - 0x41, 0x1b, 0x22, 0xff, 0x17, 0x35, 0x85, 0xfc, 0x5f, 0xd2, 0x12, 0xc5, 0xad, 0x87, 0x78, 0xda, - 0x34, 0xf4, 0xce, 0x83, 0xb9, 0x21, 0xe9, 0x69, 0x93, 0xf2, 0xe6, 0xfb, 0x73, 0x43, 0x87, 0x23, - 0xd4, 0x3c, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x65, 0x95, 0x4a, 0x04, 0x31, 0x7f, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (x MapEnum) String() string { - s, ok := MapEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x Message_Humour) String() string { - s, ok := Message_Humour_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (this *Message) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Message) - if !ok { - that2, ok := that.(Message) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Message") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Message but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Message but is not nil && this == nil") - } - if this.Name != that1.Name { - return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) - } - if this.Hilarity != that1.Hilarity { - return fmt.Errorf("Hilarity this(%v) Not Equal that(%v)", this.Hilarity, that1.Hilarity) - } - if this.HeightInCm != that1.HeightInCm { - return fmt.Errorf("HeightInCm this(%v) Not Equal that(%v)", this.HeightInCm, that1.HeightInCm) - } - if !bytes.Equal(this.Data, that1.Data) { - return fmt.Errorf("Data this(%v) Not Equal that(%v)", this.Data, that1.Data) - } - if this.ResultCount != that1.ResultCount { - return fmt.Errorf("ResultCount this(%v) Not Equal that(%v)", this.ResultCount, that1.ResultCount) - } - if this.TrueScotsman != that1.TrueScotsman { - return fmt.Errorf("TrueScotsman this(%v) Not Equal that(%v)", this.TrueScotsman, that1.TrueScotsman) - } - if this.Score != that1.Score { - return fmt.Errorf("Score this(%v) Not Equal that(%v)", this.Score, that1.Score) - } - if len(this.Key) != len(that1.Key) { - return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) - } - } - if !this.Nested.Equal(that1.Nested) { - return fmt.Errorf("Nested this(%v) Not Equal that(%v)", this.Nested, that1.Nested) - } - if len(this.Terrain) != len(that1.Terrain) { - return fmt.Errorf("Terrain this(%v) Not Equal that(%v)", len(this.Terrain), len(that1.Terrain)) - } - for i := range this.Terrain { - if !this.Terrain[i].Equal(that1.Terrain[i]) { - return fmt.Errorf("Terrain this[%v](%v) Not Equal that[%v](%v)", i, this.Terrain[i], i, that1.Terrain[i]) - } - } - if !this.Proto2Field.Equal(that1.Proto2Field) { - return fmt.Errorf("Proto2Field this(%v) Not Equal that(%v)", this.Proto2Field, that1.Proto2Field) - } - if len(this.Proto2Value) != len(that1.Proto2Value) { - return fmt.Errorf("Proto2Value this(%v) Not Equal that(%v)", len(this.Proto2Value), len(that1.Proto2Value)) - } - for i := range this.Proto2Value { - if !this.Proto2Value[i].Equal(that1.Proto2Value[i]) { - return fmt.Errorf("Proto2Value this[%v](%v) Not Equal that[%v](%v)", i, this.Proto2Value[i], i, that1.Proto2Value[i]) - } - } - return nil -} -func (this *Message) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Message) - if !ok { - that2, ok := that.(Message) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Name != that1.Name { - return false - } - if this.Hilarity != that1.Hilarity { - return false - } - if this.HeightInCm != that1.HeightInCm { - return false - } - if !bytes.Equal(this.Data, that1.Data) { - return false - } - if this.ResultCount != that1.ResultCount { - return false - } - if this.TrueScotsman != that1.TrueScotsman { - return false - } - if this.Score != that1.Score { - return false - } - if len(this.Key) != len(that1.Key) { - return false - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return false - } - } - if !this.Nested.Equal(that1.Nested) { - return false - } - if len(this.Terrain) != len(that1.Terrain) { - return false - } - for i := range this.Terrain { - if !this.Terrain[i].Equal(that1.Terrain[i]) { - return false - } - } - if !this.Proto2Field.Equal(that1.Proto2Field) { - return false - } - if len(this.Proto2Value) != len(that1.Proto2Value) { - return false - } - for i := range this.Proto2Value { - if !this.Proto2Value[i].Equal(that1.Proto2Value[i]) { - return false - } - } - return true -} -func (this *Nested) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Nested) - if !ok { - that2, ok := that.(Nested) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Nested") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Nested but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Nested but is not nil && this == nil") - } - if this.Bunny != that1.Bunny { - return fmt.Errorf("Bunny this(%v) Not Equal that(%v)", this.Bunny, that1.Bunny) - } - return nil -} -func (this *Nested) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Nested) - if !ok { - that2, ok := that.(Nested) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Bunny != that1.Bunny { - return false - } - return true -} -func (this *AllMaps) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMaps") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMaps but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMaps but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - return nil -} -func (this *AllMaps) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - return true -} -func (this *AllMapsOrdered) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMapsOrdered") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMapsOrdered but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMapsOrdered but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - return nil -} -func (this *AllMapsOrdered) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - return true -} -func (this *MessageWithMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MessageWithMap) - if !ok { - that2, ok := that.(MessageWithMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MessageWithMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MessageWithMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MessageWithMap but is not nil && this == nil") - } - if len(this.NameMapping) != len(that1.NameMapping) { - return fmt.Errorf("NameMapping this(%v) Not Equal that(%v)", len(this.NameMapping), len(that1.NameMapping)) - } - for i := range this.NameMapping { - if this.NameMapping[i] != that1.NameMapping[i] { - return fmt.Errorf("NameMapping this[%v](%v) Not Equal that[%v](%v)", i, this.NameMapping[i], i, that1.NameMapping[i]) - } - } - if len(this.MsgMapping) != len(that1.MsgMapping) { - return fmt.Errorf("MsgMapping this(%v) Not Equal that(%v)", len(this.MsgMapping), len(that1.MsgMapping)) - } - for i := range this.MsgMapping { - if !this.MsgMapping[i].Equal(that1.MsgMapping[i]) { - return fmt.Errorf("MsgMapping this[%v](%v) Not Equal that[%v](%v)", i, this.MsgMapping[i], i, that1.MsgMapping[i]) - } - } - if len(this.ByteMapping) != len(that1.ByteMapping) { - return fmt.Errorf("ByteMapping this(%v) Not Equal that(%v)", len(this.ByteMapping), len(that1.ByteMapping)) - } - for i := range this.ByteMapping { - if !bytes.Equal(this.ByteMapping[i], that1.ByteMapping[i]) { - return fmt.Errorf("ByteMapping this[%v](%v) Not Equal that[%v](%v)", i, this.ByteMapping[i], i, that1.ByteMapping[i]) - } - } - return nil -} -func (this *MessageWithMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MessageWithMap) - if !ok { - that2, ok := that.(MessageWithMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NameMapping) != len(that1.NameMapping) { - return false - } - for i := range this.NameMapping { - if this.NameMapping[i] != that1.NameMapping[i] { - return false - } - } - if len(this.MsgMapping) != len(that1.MsgMapping) { - return false - } - for i := range this.MsgMapping { - if !this.MsgMapping[i].Equal(that1.MsgMapping[i]) { - return false - } - } - if len(this.ByteMapping) != len(that1.ByteMapping) { - return false - } - for i := range this.ByteMapping { - if !bytes.Equal(this.ByteMapping[i], that1.ByteMapping[i]) { - return false - } - } - return true -} -func (this *FloatingPoint) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *FloatingPoint") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *FloatingPoint but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *FloatingPoint but is not nil && this == nil") - } - if this.F != that1.F { - return fmt.Errorf("F this(%v) Not Equal that(%v)", this.F, that1.F) - } - return nil -} -func (this *FloatingPoint) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.F != that1.F { - return false - } - return true -} -func (this *Uint128Pair) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Uint128Pair) - if !ok { - that2, ok := that.(Uint128Pair) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Uint128Pair") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Uint128Pair but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Uint128Pair but is not nil && this == nil") - } - if !this.Left.Equal(that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if that1.Right == nil { - if this.Right != nil { - return fmt.Errorf("this.Right != nil && that1.Right == nil") - } - } else if !this.Right.Equal(*that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - return nil -} -func (this *Uint128Pair) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Uint128Pair) - if !ok { - that2, ok := that.(Uint128Pair) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(that1.Left) { - return false - } - if that1.Right == nil { - if this.Right != nil { - return false - } - } else if !this.Right.Equal(*that1.Right) { - return false - } - return true -} -func (this *ContainsNestedMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ContainsNestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ContainsNestedMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ContainsNestedMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ContainsNestedMap but is not nil && this == nil") - } - return nil -} -func (this *ContainsNestedMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ContainsNestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - return true -} -func (this *ContainsNestedMap_NestedMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ContainsNestedMap_NestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap_NestedMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ContainsNestedMap_NestedMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ContainsNestedMap_NestedMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ContainsNestedMap_NestedMap but is not nil && this == nil") - } - if len(this.NestedMapField) != len(that1.NestedMapField) { - return fmt.Errorf("NestedMapField this(%v) Not Equal that(%v)", len(this.NestedMapField), len(that1.NestedMapField)) - } - for i := range this.NestedMapField { - if this.NestedMapField[i] != that1.NestedMapField[i] { - return fmt.Errorf("NestedMapField this[%v](%v) Not Equal that[%v](%v)", i, this.NestedMapField[i], i, that1.NestedMapField[i]) - } - } - return nil -} -func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ContainsNestedMap_NestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap_NestedMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NestedMapField) != len(that1.NestedMapField) { - return false - } - for i := range this.NestedMapField { - if this.NestedMapField[i] != that1.NestedMapField[i] { - return false - } - } - return true -} -func (this *NotPacked) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NotPacked) - if !ok { - that2, ok := that.(NotPacked) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NotPacked") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NotPacked but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") - } - if len(this.Key) != len(that1.Key) { - return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) - } - } - return nil -} -func (this *NotPacked) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NotPacked) - if !ok { - that2, ok := that.(NotPacked) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Key) != len(that1.Key) { - return false - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return false - } - } - return true -} - -type MessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetName() string - GetHilarity() Message_Humour - GetHeightInCm() uint32 - GetData() []byte - GetResultCount() int64 - GetTrueScotsman() bool - GetScore() float32 - GetKey() []uint64 - GetNested() *Nested - GetTerrain() map[int64]*Nested - GetProto2Field() *test.NinOptNative - GetProto2Value() map[int64]*test.NinOptEnum -} - -func (this *Message) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Message) TestProto() github_com_gogo_protobuf_proto.Message { - return NewMessageFromFace(this) -} - -func (this *Message) GetName() string { - return this.Name -} - -func (this *Message) GetHilarity() Message_Humour { - return this.Hilarity -} - -func (this *Message) GetHeightInCm() uint32 { - return this.HeightInCm -} - -func (this *Message) GetData() []byte { - return this.Data -} - -func (this *Message) GetResultCount() int64 { - return this.ResultCount -} - -func (this *Message) GetTrueScotsman() bool { - return this.TrueScotsman -} - -func (this *Message) GetScore() float32 { - return this.Score -} - -func (this *Message) GetKey() []uint64 { - return this.Key -} - -func (this *Message) GetNested() *Nested { - return this.Nested -} - -func (this *Message) GetTerrain() map[int64]*Nested { - return this.Terrain -} - -func (this *Message) GetProto2Field() *test.NinOptNative { - return this.Proto2Field -} - -func (this *Message) GetProto2Value() map[int64]*test.NinOptEnum { - return this.Proto2Value -} - -func NewMessageFromFace(that MessageFace) *Message { - this := &Message{} - this.Name = that.GetName() - this.Hilarity = that.GetHilarity() - this.HeightInCm = that.GetHeightInCm() - this.Data = that.GetData() - this.ResultCount = that.GetResultCount() - this.TrueScotsman = that.GetTrueScotsman() - this.Score = that.GetScore() - this.Key = that.GetKey() - this.Nested = that.GetNested() - this.Terrain = that.GetTerrain() - this.Proto2Field = that.GetProto2Field() - this.Proto2Value = that.GetProto2Value() - return this -} - -type NestedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetBunny() string -} - -func (this *Nested) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Nested) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedFromFace(this) -} - -func (this *Nested) GetBunny() string { - return this.Bunny -} - -func NewNestedFromFace(that NestedFace) *Nested { - this := &Nested{} - this.Bunny = that.GetBunny() - return this -} - -type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsFromFace(this) -} - -func (this *AllMaps) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMaps) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMaps) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMaps) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMaps) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMaps) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMaps) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMaps) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMaps) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMaps) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMaps) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMaps) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMaps) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMaps) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMaps) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMaps) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMaps) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsFromFace(that AllMapsFace) *AllMaps { - this := &AllMaps{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsOrderedFromFace(this) -} - -func (this *AllMapsOrdered) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMapsOrdered) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMapsOrdered) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMapsOrdered) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMapsOrdered) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMapsOrdered) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMapsOrdered) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMapsOrdered) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMapsOrdered) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMapsOrdered) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMapsOrdered) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMapsOrdered) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMapsOrdered) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMapsOrdered) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMapsOrdered) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMapsOrdered) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMapsOrdered) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { - this := &AllMapsOrdered{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -type MessageWithMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNameMapping() map[int32]string - GetMsgMapping() map[int64]*FloatingPoint - GetByteMapping() map[bool][]byte -} - -func (this *MessageWithMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *MessageWithMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewMessageWithMapFromFace(this) -} - -func (this *MessageWithMap) GetNameMapping() map[int32]string { - return this.NameMapping -} - -func (this *MessageWithMap) GetMsgMapping() map[int64]*FloatingPoint { - return this.MsgMapping -} - -func (this *MessageWithMap) GetByteMapping() map[bool][]byte { - return this.ByteMapping -} - -func NewMessageWithMapFromFace(that MessageWithMapFace) *MessageWithMap { - this := &MessageWithMap{} - this.NameMapping = that.GetNameMapping() - this.MsgMapping = that.GetMsgMapping() - this.ByteMapping = that.GetByteMapping() - return this -} - -type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetF() float64 -} - -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { - return NewFloatingPointFromFace(this) -} - -func (this *FloatingPoint) GetF() float64 { - return this.F -} - -func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { - this := &FloatingPoint{} - this.F = that.GetF() - return this -} - -type Uint128PairFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() github_com_gogo_protobuf_test_custom.Uint128 - GetRight() *github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *Uint128Pair) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Uint128Pair) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUint128PairFromFace(this) -} - -func (this *Uint128Pair) GetLeft() github_com_gogo_protobuf_test_custom.Uint128 { - return this.Left -} - -func (this *Uint128Pair) GetRight() *github_com_gogo_protobuf_test_custom.Uint128 { - return this.Right -} - -func NewUint128PairFromFace(that Uint128PairFace) *Uint128Pair { - this := &Uint128Pair{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type ContainsNestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message -} - -func (this *ContainsNestedMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ContainsNestedMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewContainsNestedMapFromFace(this) -} - -func NewContainsNestedMapFromFace(that ContainsNestedMapFace) *ContainsNestedMap { - this := &ContainsNestedMap{} - return this -} - -type ContainsNestedMap_NestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNestedMapField() map[string]float64 -} - -func (this *ContainsNestedMap_NestedMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ContainsNestedMap_NestedMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewContainsNestedMap_NestedMapFromFace(this) -} - -func (this *ContainsNestedMap_NestedMap) GetNestedMapField() map[string]float64 { - return this.NestedMapField -} - -func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace) *ContainsNestedMap_NestedMap { - this := &ContainsNestedMap_NestedMap{} - this.NestedMapField = that.GetNestedMapField() - return this -} - -type NotPackedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetKey() []uint64 -} - -func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNotPackedFromFace(this) -} - -func (this *NotPacked) GetKey() []uint64 { - return this.Key -} - -func NewNotPackedFromFace(that NotPackedFace) *NotPacked { - this := &NotPacked{} - this.Key = that.GetKey() - return this -} - -func (this *Message) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 16) - s = append(s, "&theproto3.Message{") - s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") - s = append(s, "Hilarity: "+fmt.Sprintf("%#v", this.Hilarity)+",\n") - s = append(s, "HeightInCm: "+fmt.Sprintf("%#v", this.HeightInCm)+",\n") - s = append(s, "Data: "+fmt.Sprintf("%#v", this.Data)+",\n") - s = append(s, "ResultCount: "+fmt.Sprintf("%#v", this.ResultCount)+",\n") - s = append(s, "TrueScotsman: "+fmt.Sprintf("%#v", this.TrueScotsman)+",\n") - s = append(s, "Score: "+fmt.Sprintf("%#v", this.Score)+",\n") - s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") - if this.Nested != nil { - s = append(s, "Nested: "+fmt.Sprintf("%#v", this.Nested)+",\n") - } - keysForTerrain := make([]int64, 0, len(this.Terrain)) - for k := range this.Terrain { - keysForTerrain = append(keysForTerrain, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) - mapStringForTerrain := "map[int64]*Nested{" - for _, k := range keysForTerrain { - mapStringForTerrain += fmt.Sprintf("%#v: %#v,", k, this.Terrain[k]) - } - mapStringForTerrain += "}" - if this.Terrain != nil { - s = append(s, "Terrain: "+mapStringForTerrain+",\n") - } - if this.Proto2Field != nil { - s = append(s, "Proto2Field: "+fmt.Sprintf("%#v", this.Proto2Field)+",\n") - } - keysForProto2Value := make([]int64, 0, len(this.Proto2Value)) - for k := range this.Proto2Value { - keysForProto2Value = append(keysForProto2Value, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) - mapStringForProto2Value := "map[int64]*test.NinOptEnum{" - for _, k := range keysForProto2Value { - mapStringForProto2Value += fmt.Sprintf("%#v: %#v,", k, this.Proto2Value[k]) - } - mapStringForProto2Value += "}" - if this.Proto2Value != nil { - s = append(s, "Proto2Value: "+mapStringForProto2Value+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Nested) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.Nested{") - s = append(s, "Bunny: "+fmt.Sprintf("%#v", this.Bunny)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMaps) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&theproto3.AllMaps{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMapsOrdered) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&theproto3.AllMapsOrdered{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *MessageWithMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&theproto3.MessageWithMap{") - keysForNameMapping := make([]int32, 0, len(this.NameMapping)) - for k := range this.NameMapping { - keysForNameMapping = append(keysForNameMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) - mapStringForNameMapping := "map[int32]string{" - for _, k := range keysForNameMapping { - mapStringForNameMapping += fmt.Sprintf("%#v: %#v,", k, this.NameMapping[k]) - } - mapStringForNameMapping += "}" - if this.NameMapping != nil { - s = append(s, "NameMapping: "+mapStringForNameMapping+",\n") - } - keysForMsgMapping := make([]int64, 0, len(this.MsgMapping)) - for k := range this.MsgMapping { - keysForMsgMapping = append(keysForMsgMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) - mapStringForMsgMapping := "map[int64]*FloatingPoint{" - for _, k := range keysForMsgMapping { - mapStringForMsgMapping += fmt.Sprintf("%#v: %#v,", k, this.MsgMapping[k]) - } - mapStringForMsgMapping += "}" - if this.MsgMapping != nil { - s = append(s, "MsgMapping: "+mapStringForMsgMapping+",\n") - } - keysForByteMapping := make([]bool, 0, len(this.ByteMapping)) - for k := range this.ByteMapping { - keysForByteMapping = append(keysForByteMapping, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) - mapStringForByteMapping := "map[bool][]byte{" - for _, k := range keysForByteMapping { - mapStringForByteMapping += fmt.Sprintf("%#v: %#v,", k, this.ByteMapping[k]) - } - mapStringForByteMapping += "}" - if this.ByteMapping != nil { - s = append(s, "ByteMapping: "+mapStringForByteMapping+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *FloatingPoint) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.FloatingPoint{") - s = append(s, "F: "+fmt.Sprintf("%#v", this.F)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Uint128Pair) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&theproto3.Uint128Pair{") - s = append(s, "Left: "+fmt.Sprintf("%#v", this.Left)+",\n") - s = append(s, "Right: "+fmt.Sprintf("%#v", this.Right)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ContainsNestedMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 4) - s = append(s, "&theproto3.ContainsNestedMap{") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ContainsNestedMap_NestedMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.ContainsNestedMap_NestedMap{") - keysForNestedMapField := make([]string, 0, len(this.NestedMapField)) - for k := range this.NestedMapField { - keysForNestedMapField = append(keysForNestedMapField, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) - mapStringForNestedMapField := "map[string]float64{" - for _, k := range keysForNestedMapField { - mapStringForNestedMapField += fmt.Sprintf("%#v: %#v,", k, this.NestedMapField[k]) - } - mapStringForNestedMapField += "}" - if this.NestedMapField != nil { - s = append(s, "NestedMapField: "+mapStringForNestedMapField+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NotPacked) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.NotPacked{") - s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringTheproto3(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { - this := &Message{} - this.Name = string(randStringTheproto3(r)) - this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) - this.HeightInCm = uint32(r.Uint32()) - v1 := r.Intn(100) - this.Data = make([]byte, v1) - for i := 0; i < v1; i++ { - this.Data[i] = byte(r.Intn(256)) - } - this.ResultCount = int64(r.Int63()) - if r.Intn(2) == 0 { - this.ResultCount *= -1 - } - this.TrueScotsman = bool(bool(r.Intn(2) == 0)) - this.Score = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Score *= -1 - } - v2 := r.Intn(10) - this.Key = make([]uint64, v2) - for i := 0; i < v2; i++ { - this.Key[i] = uint64(uint64(r.Uint32())) - } - if r.Intn(10) != 0 { - this.Nested = NewPopulatedNested(r, easy) - } - if r.Intn(10) != 0 { - v3 := r.Intn(10) - this.Terrain = make(map[int64]*Nested) - for i := 0; i < v3; i++ { - this.Terrain[int64(r.Int63())] = NewPopulatedNested(r, easy) - } - } - if r.Intn(10) != 0 { - this.Proto2Field = test.NewPopulatedNinOptNative(r, easy) - } - if r.Intn(10) != 0 { - v4 := r.Intn(10) - this.Proto2Value = make(map[int64]*test.NinOptEnum) - for i := 0; i < v4; i++ { - this.Proto2Value[int64(r.Int63())] = test.NewPopulatedNinOptEnum(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { - this := &Nested{} - this.Bunny = string(randStringTheproto3(r)) - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedAllMaps(r randyTheproto3, easy bool) *AllMaps { - this := &AllMaps{} - if r.Intn(10) != 0 { - v5 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v5; i++ { - v6 := randStringTheproto3(r) - this.StringToDoubleMap[v6] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v6] *= -1 - } - } - } - if r.Intn(10) != 0 { - v7 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v7; i++ { - v8 := randStringTheproto3(r) - this.StringToFloatMap[v8] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v8] *= -1 - } - } - } - if r.Intn(10) != 0 { - v9 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v9; i++ { - v10 := int32(r.Int31()) - this.Int32Map[v10] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v10] *= -1 - } - } - } - if r.Intn(10) != 0 { - v11 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v11; i++ { - v12 := int64(r.Int63()) - this.Int64Map[v12] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v12] *= -1 - } - } - } - if r.Intn(10) != 0 { - v13 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v13; i++ { - v14 := uint32(r.Uint32()) - this.Uint32Map[v14] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v15 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v15; i++ { - v16 := uint64(uint64(r.Uint32())) - this.Uint64Map[v16] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v17 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v17; i++ { - v18 := int32(r.Int31()) - this.Sint32Map[v18] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v18] *= -1 - } - } - } - if r.Intn(10) != 0 { - v19 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v19; i++ { - v20 := int64(r.Int63()) - this.Sint64Map[v20] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v20] *= -1 - } - } - } - if r.Intn(10) != 0 { - v21 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v21; i++ { - v22 := uint32(r.Uint32()) - this.Fixed32Map[v22] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v23 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v23; i++ { - v24 := int32(r.Int31()) - this.Sfixed32Map[v24] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v24] *= -1 - } - } - } - if r.Intn(10) != 0 { - v25 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v25; i++ { - v26 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v26] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v27 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v27; i++ { - v28 := int64(r.Int63()) - this.Sfixed64Map[v28] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v28] *= -1 - } - } - } - if r.Intn(10) != 0 { - v29 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v29; i++ { - v30 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v30] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v31 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v31; i++ { - this.StringMap[randStringTheproto3(r)] = randStringTheproto3(r) - } - } - if r.Intn(10) != 0 { - v32 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v32; i++ { - v33 := r.Intn(100) - v34 := randStringTheproto3(r) - this.StringToBytesMap[v34] = make([]byte, v33) - for i := 0; i < v33; i++ { - this.StringToBytesMap[v34][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v35 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v35; i++ { - this.StringToEnumMap[randStringTheproto3(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v36; i++ { - this.StringToMsgMap[randStringTheproto3(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedAllMapsOrdered(r randyTheproto3, easy bool) *AllMapsOrdered { - this := &AllMapsOrdered{} - if r.Intn(10) != 0 { - v37 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v37; i++ { - v38 := randStringTheproto3(r) - this.StringToDoubleMap[v38] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v38] *= -1 - } - } - } - if r.Intn(10) != 0 { - v39 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v39; i++ { - v40 := randStringTheproto3(r) - this.StringToFloatMap[v40] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v40] *= -1 - } - } - } - if r.Intn(10) != 0 { - v41 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v41; i++ { - v42 := int32(r.Int31()) - this.Int32Map[v42] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v42] *= -1 - } - } - } - if r.Intn(10) != 0 { - v43 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v43; i++ { - v44 := int64(r.Int63()) - this.Int64Map[v44] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v44] *= -1 - } - } - } - if r.Intn(10) != 0 { - v45 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v45; i++ { - v46 := uint32(r.Uint32()) - this.Uint32Map[v46] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v47 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v47; i++ { - v48 := uint64(uint64(r.Uint32())) - this.Uint64Map[v48] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v49 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v49; i++ { - v50 := int32(r.Int31()) - this.Sint32Map[v50] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v50] *= -1 - } - } - } - if r.Intn(10) != 0 { - v51 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v51; i++ { - v52 := int64(r.Int63()) - this.Sint64Map[v52] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v52] *= -1 - } - } - } - if r.Intn(10) != 0 { - v53 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v53; i++ { - v54 := uint32(r.Uint32()) - this.Fixed32Map[v54] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v55 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v55; i++ { - v56 := int32(r.Int31()) - this.Sfixed32Map[v56] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v56] *= -1 - } - } - } - if r.Intn(10) != 0 { - v57 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v57; i++ { - v58 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v58] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v59 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v59; i++ { - v60 := int64(r.Int63()) - this.Sfixed64Map[v60] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v60] *= -1 - } - } - } - if r.Intn(10) != 0 { - v61 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v61; i++ { - v62 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v62] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v63 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v63; i++ { - this.StringMap[randStringTheproto3(r)] = randStringTheproto3(r) - } - } - if r.Intn(10) != 0 { - v64 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v64; i++ { - v65 := r.Intn(100) - v66 := randStringTheproto3(r) - this.StringToBytesMap[v66] = make([]byte, v65) - for i := 0; i < v65; i++ { - this.StringToBytesMap[v66][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v67 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v67; i++ { - this.StringToEnumMap[randStringTheproto3(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v68 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v68; i++ { - this.StringToMsgMap[randStringTheproto3(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedMessageWithMap(r randyTheproto3, easy bool) *MessageWithMap { - this := &MessageWithMap{} - if r.Intn(10) != 0 { - v69 := r.Intn(10) - this.NameMapping = make(map[int32]string) - for i := 0; i < v69; i++ { - this.NameMapping[int32(r.Int31())] = randStringTheproto3(r) - } - } - if r.Intn(10) != 0 { - v70 := r.Intn(10) - this.MsgMapping = make(map[int64]*FloatingPoint) - for i := 0; i < v70; i++ { - this.MsgMapping[int64(r.Int63())] = NewPopulatedFloatingPoint(r, easy) - } - } - if r.Intn(10) != 0 { - v71 := r.Intn(10) - this.ByteMapping = make(map[bool][]byte) - for i := 0; i < v71; i++ { - v72 := r.Intn(100) - v73 := bool(bool(r.Intn(2) == 0)) - this.ByteMapping[v73] = make([]byte, v72) - for i := 0; i < v72; i++ { - this.ByteMapping[v73][i] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedFloatingPoint(r randyTheproto3, easy bool) *FloatingPoint { - this := &FloatingPoint{} - this.F = float64(r.Float64()) - if r.Intn(2) == 0 { - this.F *= -1 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedUint128Pair(r randyTheproto3, easy bool) *Uint128Pair { - this := &Uint128Pair{} - v74 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Left = *v74 - this.Right = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedContainsNestedMap(r randyTheproto3, easy bool) *ContainsNestedMap { - this := &ContainsNestedMap{} - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *ContainsNestedMap_NestedMap { - this := &ContainsNestedMap_NestedMap{} - if r.Intn(10) != 0 { - v75 := r.Intn(10) - this.NestedMapField = make(map[string]float64) - for i := 0; i < v75; i++ { - v76 := randStringTheproto3(r) - this.NestedMapField[v76] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.NestedMapField[v76] *= -1 - } - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { - this := &NotPacked{} - v77 := r.Intn(10) - this.Key = make([]uint64, v77) - for i := 0; i < v77; i++ { - this.Key[i] = uint64(uint64(r.Uint32())) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -type randyTheproto3 interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneTheproto3(r randyTheproto3) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringTheproto3(r randyTheproto3) string { - v78 := r.Intn(100) - tmps := make([]rune, v78) - for i := 0; i < v78; i++ { - tmps[i] = randUTF8RuneTheproto3(r) - } - return string(tmps) -} -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - v79 := r.Int63() - if r.Intn(2) == 0 { - v79 *= -1 - } - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) - case 1: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Message) Size() (n int) { - var l int - _ = l - l = len(m.Name) - if l > 0 { - n += 1 + l + sovTheproto3(uint64(l)) - } - if m.Hilarity != 0 { - n += 1 + sovTheproto3(uint64(m.Hilarity)) - } - if m.HeightInCm != 0 { - n += 1 + sovTheproto3(uint64(m.HeightInCm)) - } - l = len(m.Data) - if l > 0 { - n += 1 + l + sovTheproto3(uint64(l)) - } - if m.ResultCount != 0 { - n += 1 + sovTheproto3(uint64(m.ResultCount)) - } - if m.TrueScotsman { - n += 2 - } - if m.Score != 0 { - n += 5 - } - if len(m.Key) > 0 { - l = 0 - for _, e := range m.Key { - l += sovTheproto3(uint64(e)) - } - n += 1 + sovTheproto3(uint64(l)) + l - } - if m.Nested != nil { - l = m.Nested.Size() - n += 1 + l + sovTheproto3(uint64(l)) - } - if len(m.Terrain) > 0 { - for k, v := range m.Terrain { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if m.Proto2Field != nil { - l = m.Proto2Field.Size() - n += 1 + l + sovTheproto3(uint64(l)) - } - if len(m.Proto2Value) > 0 { - for k, v := range m.Proto2Value { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *Nested) Size() (n int) { - var l int - _ = l - l = len(m.Bunny) - if l > 0 { - n += 1 + l + sovTheproto3(uint64(l)) - } - return n -} - -func (m *AllMaps) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if len(v) > 0 { - l = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *AllMapsOrdered) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if len(v) > 0 { - l = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *MessageWithMap) Size() (n int) { - var l int - _ = l - if len(m.NameMapping) > 0 { - for k, v := range m.NameMapping { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + len(v) + sovTheproto3(uint64(len(v))) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.MsgMapping) > 0 { - for k, v := range m.MsgMapping { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.ByteMapping) > 0 { - for k, v := range m.ByteMapping { - _ = k - _ = v - l = 0 - if len(v) > 0 { - l = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapEntrySize := 1 + 1 + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *FloatingPoint) Size() (n int) { - var l int - _ = l - if m.F != 0 { - n += 9 - } - return n -} - -func (m *Uint128Pair) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovTheproto3(uint64(l)) - if m.Right != nil { - l = m.Right.Size() - n += 1 + l + sovTheproto3(uint64(l)) - } - return n -} - -func (m *ContainsNestedMap) Size() (n int) { - var l int - _ = l - return n -} - -func (m *ContainsNestedMap_NestedMap) Size() (n int) { - var l int - _ = l - if len(m.NestedMapField) > 0 { - for k, v := range m.NestedMapField { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *NotPacked) Size() (n int) { - var l int - _ = l - if len(m.Key) > 0 { - for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) - } - } - return n -} - -func sovTheproto3(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozTheproto3(x uint64) (n int) { - return sovTheproto3(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Message) String() string { - if this == nil { - return "nil" - } - keysForTerrain := make([]int64, 0, len(this.Terrain)) - for k := range this.Terrain { - keysForTerrain = append(keysForTerrain, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) - mapStringForTerrain := "map[int64]*Nested{" - for _, k := range keysForTerrain { - mapStringForTerrain += fmt.Sprintf("%v: %v,", k, this.Terrain[k]) - } - mapStringForTerrain += "}" - keysForProto2Value := make([]int64, 0, len(this.Proto2Value)) - for k := range this.Proto2Value { - keysForProto2Value = append(keysForProto2Value, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) - mapStringForProto2Value := "map[int64]*test.NinOptEnum{" - for _, k := range keysForProto2Value { - mapStringForProto2Value += fmt.Sprintf("%v: %v,", k, this.Proto2Value[k]) - } - mapStringForProto2Value += "}" - s := strings.Join([]string{`&Message{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Hilarity:` + fmt.Sprintf("%v", this.Hilarity) + `,`, - `HeightInCm:` + fmt.Sprintf("%v", this.HeightInCm) + `,`, - `Data:` + fmt.Sprintf("%v", this.Data) + `,`, - `ResultCount:` + fmt.Sprintf("%v", this.ResultCount) + `,`, - `TrueScotsman:` + fmt.Sprintf("%v", this.TrueScotsman) + `,`, - `Score:` + fmt.Sprintf("%v", this.Score) + `,`, - `Key:` + fmt.Sprintf("%v", this.Key) + `,`, - `Nested:` + strings.Replace(fmt.Sprintf("%v", this.Nested), "Nested", "Nested", 1) + `,`, - `Terrain:` + mapStringForTerrain + `,`, - `Proto2Field:` + strings.Replace(fmt.Sprintf("%v", this.Proto2Field), "NinOptNative", "test.NinOptNative", 1) + `,`, - `Proto2Value:` + mapStringForProto2Value + `,`, - `}`, - }, "") - return s -} -func (this *Nested) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Nested{`, - `Bunny:` + fmt.Sprintf("%v", this.Bunny) + `,`, - `}`, - }, "") - return s -} -func (this *AllMaps) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMaps{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `}`, - }, "") - return s -} -func (this *AllMapsOrdered) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMapsOrdered{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `}`, - }, "") - return s -} -func (this *MessageWithMap) String() string { - if this == nil { - return "nil" - } - keysForNameMapping := make([]int32, 0, len(this.NameMapping)) - for k := range this.NameMapping { - keysForNameMapping = append(keysForNameMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) - mapStringForNameMapping := "map[int32]string{" - for _, k := range keysForNameMapping { - mapStringForNameMapping += fmt.Sprintf("%v: %v,", k, this.NameMapping[k]) - } - mapStringForNameMapping += "}" - keysForMsgMapping := make([]int64, 0, len(this.MsgMapping)) - for k := range this.MsgMapping { - keysForMsgMapping = append(keysForMsgMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) - mapStringForMsgMapping := "map[int64]*FloatingPoint{" - for _, k := range keysForMsgMapping { - mapStringForMsgMapping += fmt.Sprintf("%v: %v,", k, this.MsgMapping[k]) - } - mapStringForMsgMapping += "}" - keysForByteMapping := make([]bool, 0, len(this.ByteMapping)) - for k := range this.ByteMapping { - keysForByteMapping = append(keysForByteMapping, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) - mapStringForByteMapping := "map[bool][]byte{" - for _, k := range keysForByteMapping { - mapStringForByteMapping += fmt.Sprintf("%v: %v,", k, this.ByteMapping[k]) - } - mapStringForByteMapping += "}" - s := strings.Join([]string{`&MessageWithMap{`, - `NameMapping:` + mapStringForNameMapping + `,`, - `MsgMapping:` + mapStringForMsgMapping + `,`, - `ByteMapping:` + mapStringForByteMapping + `,`, - `}`, - }, "") - return s -} -func (this *FloatingPoint) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&FloatingPoint{`, - `F:` + fmt.Sprintf("%v", this.F) + `,`, - `}`, - }, "") - return s -} -func (this *Uint128Pair) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Uint128Pair{`, - `Left:` + fmt.Sprintf("%v", this.Left) + `,`, - `Right:` + fmt.Sprintf("%v", this.Right) + `,`, - `}`, - }, "") - return s -} -func (this *ContainsNestedMap) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ContainsNestedMap{`, - `}`, - }, "") - return s -} -func (this *ContainsNestedMap_NestedMap) String() string { - if this == nil { - return "nil" - } - keysForNestedMapField := make([]string, 0, len(this.NestedMapField)) - for k := range this.NestedMapField { - keysForNestedMapField = append(keysForNestedMapField, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) - mapStringForNestedMapField := "map[string]float64{" - for _, k := range keysForNestedMapField { - mapStringForNestedMapField += fmt.Sprintf("%v: %v,", k, this.NestedMapField[k]) - } - mapStringForNestedMapField += "}" - s := strings.Join([]string{`&ContainsNestedMap_NestedMap{`, - `NestedMapField:` + mapStringForNestedMapField + `,`, - `}`, - }, "") - return s -} -func (this *NotPacked) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NotPacked{`, - `Key:` + fmt.Sprintf("%v", this.Key) + `,`, - `}`, - }, "") - return s -} -func valueToStringTheproto3(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Message) 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 *Message) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Name) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Name))) - i += copy(dAtA[i:], m.Name) - } - if m.Hilarity != 0 { - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Hilarity)) - } - if m.HeightInCm != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.HeightInCm)) - } - if len(m.Data) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Data))) - i += copy(dAtA[i:], m.Data) - } - if len(m.Key) > 0 { - dAtA2 := make([]byte, len(m.Key)*10) - var j1 int - for _, num := range m.Key { - for num >= 1<<7 { - dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j1++ - } - dAtA2[j1] = uint8(num) - j1++ - } - dAtA[i] = 0x2a - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(j1)) - i += copy(dAtA[i:], dAtA2[:j1]) - } - if m.Nested != nil { - dAtA[i] = 0x32 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Nested.Size())) - n3, err := m.Nested.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - } - if m.ResultCount != 0 { - dAtA[i] = 0x38 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.ResultCount)) - } - if m.TrueScotsman { - dAtA[i] = 0x40 - i++ - if m.TrueScotsman { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.Score != 0 { - dAtA[i] = 0x4d - i++ - *(*float32)(unsafe.Pointer(&dAtA[i])) = m.Score - i += 4 - } - if len(m.Terrain) > 0 { - for k := range m.Terrain { - dAtA[i] = 0x52 - i++ - v := m.Terrain[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + sovTheproto3(uint64(k)) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n4, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - } - } - } - if m.Proto2Field != nil { - dAtA[i] = 0x5a - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Proto2Field.Size())) - n5, err := m.Proto2Field.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - if len(m.Proto2Value) > 0 { - for k := range m.Proto2Value { - dAtA[i] = 0x6a - i++ - v := m.Proto2Value[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + sovTheproto3(uint64(k)) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n6, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 - } - } - } - return i, nil -} - -func (m *Nested) 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 *Nested) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Bunny) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(m.Bunny))) - i += copy(dAtA[i:], m.Bunny) - } - return i, nil -} - -func (m *AllMaps) 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 *AllMaps) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k := range m.StringToDoubleMap { - dAtA[i] = 0xa - i++ - v := m.StringToDoubleMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - if len(m.StringToFloatMap) > 0 { - for k := range m.StringToFloatMap { - dAtA[i] = 0x12 - i++ - v := m.StringToFloatMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) - } - } - if len(m.Int32Map) > 0 { - for k := range m.Int32Map { - dAtA[i] = 0x1a - i++ - v := m.Int32Map[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Int64Map) > 0 { - for k := range m.Int64Map { - dAtA[i] = 0x22 - i++ - v := m.Int64Map[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Uint32Map) > 0 { - for k := range m.Uint32Map { - dAtA[i] = 0x2a - i++ - v := m.Uint32Map[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Uint64Map) > 0 { - for k := range m.Uint64Map { - dAtA[i] = 0x32 - i++ - v := m.Uint64Map[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Sint32Map) > 0 { - for k := range m.Sint32Map { - dAtA[i] = 0x3a - i++ - v := m.Sint32Map[k] - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) - } - } - if len(m.Sint64Map) > 0 { - for k := range m.Sint64Map { - dAtA[i] = 0x42 - i++ - v := m.Sint64Map[k] - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) - } - } - if len(m.Fixed32Map) > 0 { - for k := range m.Fixed32Map { - dAtA[i] = 0x4a - i++ - v := m.Fixed32Map[k] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) - } - } - if len(m.Sfixed32Map) > 0 { - for k := range m.Sfixed32Map { - dAtA[i] = 0x52 - i++ - v := m.Sfixed32Map[k] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) - } - } - if len(m.Fixed64Map) > 0 { - for k := range m.Fixed64Map { - dAtA[i] = 0x5a - i++ - v := m.Fixed64Map[k] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) - } - } - if len(m.Sfixed64Map) > 0 { - for k := range m.Sfixed64Map { - dAtA[i] = 0x62 - i++ - v := m.Sfixed64Map[k] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) - } - } - if len(m.BoolMap) > 0 { - for k := range m.BoolMap { - dAtA[i] = 0x6a - i++ - v := m.BoolMap[k] - mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x10 - i++ - if v { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.StringMap) > 0 { - for k := range m.StringMap { - dAtA[i] = 0x72 - i++ - v := m.StringMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.StringToBytesMap) > 0 { - for k := range m.StringToBytesMap { - dAtA[i] = 0x7a - i++ - v := m.StringToBytesMap[k] - byteSize := 0 - if len(v) > 0 { - byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if len(v) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - if len(m.StringToEnumMap) > 0 { - for k := range m.StringToEnumMap { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToEnumMap[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.StringToMsgMap) > 0 { - for k := range m.StringToMsgMap { - dAtA[i] = 0x8a - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToMsgMap[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n7, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - } - } - } - return i, nil -} - -func (m *AllMapsOrdered) 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 *AllMapsOrdered) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - keysForStringToDoubleMap := make([]string, 0, len(m.StringToDoubleMap)) - for k := range m.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - for _, k := range keysForStringToDoubleMap { - dAtA[i] = 0xa - i++ - v := m.StringToDoubleMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - if len(m.StringToFloatMap) > 0 { - keysForStringToFloatMap := make([]string, 0, len(m.StringToFloatMap)) - for k := range m.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - for _, k := range keysForStringToFloatMap { - dAtA[i] = 0x12 - i++ - v := m.StringToFloatMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(math.Float32bits(float32(v)))) - } - } - if len(m.Int32Map) > 0 { - keysForInt32Map := make([]int32, 0, len(m.Int32Map)) - for k := range m.Int32Map { - keysForInt32Map = append(keysForInt32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - for _, k := range keysForInt32Map { - dAtA[i] = 0x1a - i++ - v := m.Int32Map[int32(k)] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Int64Map) > 0 { - keysForInt64Map := make([]int64, 0, len(m.Int64Map)) - for k := range m.Int64Map { - keysForInt64Map = append(keysForInt64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - for _, k := range keysForInt64Map { - dAtA[i] = 0x22 - i++ - v := m.Int64Map[int64(k)] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Uint32Map) > 0 { - keysForUint32Map := make([]uint32, 0, len(m.Uint32Map)) - for k := range m.Uint32Map { - keysForUint32Map = append(keysForUint32Map, uint32(k)) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - for _, k := range keysForUint32Map { - dAtA[i] = 0x2a - i++ - v := m.Uint32Map[uint32(k)] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Uint64Map) > 0 { - keysForUint64Map := make([]uint64, 0, len(m.Uint64Map)) - for k := range m.Uint64Map { - keysForUint64Map = append(keysForUint64Map, uint64(k)) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - for _, k := range keysForUint64Map { - dAtA[i] = 0x32 - i++ - v := m.Uint64Map[uint64(k)] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.Sint32Map) > 0 { - keysForSint32Map := make([]int32, 0, len(m.Sint32Map)) - for k := range m.Sint32Map { - keysForSint32Map = append(keysForSint32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - for _, k := range keysForSint32Map { - dAtA[i] = 0x3a - i++ - v := m.Sint32Map[int32(k)] - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint32(k)<<1)^uint32((k>>31)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint32(v)<<1)^uint32((v>>31)))) - } - } - if len(m.Sint64Map) > 0 { - keysForSint64Map := make([]int64, 0, len(m.Sint64Map)) - for k := range m.Sint64Map { - keysForSint64Map = append(keysForSint64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - for _, k := range keysForSint64Map { - dAtA[i] = 0x42 - i++ - v := m.Sint64Map[int64(k)] - mapSize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(v)<<1)^uint64((v>>63)))) - } - } - if len(m.Fixed32Map) > 0 { - keysForFixed32Map := make([]uint32, 0, len(m.Fixed32Map)) - for k := range m.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, uint32(k)) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - for _, k := range keysForFixed32Map { - dAtA[i] = 0x4a - i++ - v := m.Fixed32Map[uint32(k)] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) - } - } - if len(m.Sfixed32Map) > 0 { - keysForSfixed32Map := make([]int32, 0, len(m.Sfixed32Map)) - for k := range m.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, int32(k)) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - for _, k := range keysForSfixed32Map { - dAtA[i] = 0x52 - i++ - v := m.Sfixed32Map[int32(k)] - mapSize := 1 + 4 + 1 + 4 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xd - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(k)) - dAtA[i] = 0x15 - i++ - i = encodeFixed32Theproto3(dAtA, i, uint32(v)) - } - } - if len(m.Fixed64Map) > 0 { - keysForFixed64Map := make([]uint64, 0, len(m.Fixed64Map)) - for k := range m.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, uint64(k)) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - for _, k := range keysForFixed64Map { - dAtA[i] = 0x5a - i++ - v := m.Fixed64Map[uint64(k)] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) - } - } - if len(m.Sfixed64Map) > 0 { - keysForSfixed64Map := make([]int64, 0, len(m.Sfixed64Map)) - for k := range m.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, int64(k)) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - for _, k := range keysForSfixed64Map { - dAtA[i] = 0x62 - i++ - v := m.Sfixed64Map[int64(k)] - mapSize := 1 + 8 + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x9 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(v)) - } - } - if len(m.BoolMap) > 0 { - keysForBoolMap := make([]bool, 0, len(m.BoolMap)) - for k := range m.BoolMap { - keysForBoolMap = append(keysForBoolMap, bool(k)) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - for _, k := range keysForBoolMap { - dAtA[i] = 0x6a - i++ - v := m.BoolMap[bool(k)] - mapSize := 1 + 1 + 1 + 1 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x10 - i++ - if v { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - } - if len(m.StringMap) > 0 { - keysForStringMap := make([]string, 0, len(m.StringMap)) - for k := range m.StringMap { - keysForStringMap = append(keysForStringMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - for _, k := range keysForStringMap { - dAtA[i] = 0x72 - i++ - v := m.StringMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.StringToBytesMap) > 0 { - keysForStringToBytesMap := make([]string, 0, len(m.StringToBytesMap)) - for k := range m.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - for _, k := range keysForStringToBytesMap { - dAtA[i] = 0x7a - i++ - v := m.StringToBytesMap[string(k)] - byteSize := 0 - if len(v) > 0 { - byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + byteSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if len(v) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - if len(m.StringToEnumMap) > 0 { - keysForStringToEnumMap := make([]string, 0, len(m.StringToEnumMap)) - for k := range m.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - for _, k := range keysForStringToEnumMap { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToEnumMap[string(k)] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x10 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v)) - } - } - if len(m.StringToMsgMap) > 0 { - keysForStringToMsgMap := make([]string, 0, len(m.StringToMsgMap)) - for k := range m.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - for _, k := range keysForStringToMsgMap { - dAtA[i] = 0x8a - i++ - dAtA[i] = 0x1 - i++ - v := m.StringToMsgMap[string(k)] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n8, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n8 - } - } - } - return i, nil -} - -func (m *MessageWithMap) 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 *MessageWithMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NameMapping) > 0 { - for k := range m.NameMapping { - dAtA[i] = 0xa - i++ - v := m.NameMapping[k] - mapSize := 1 + sovTheproto3(uint64(k)) + 1 + len(v) + sovTheproto3(uint64(len(v))) - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.MsgMapping) > 0 { - for k := range m.MsgMapping { - dAtA[i] = 0x12 - i++ - v := m.MsgMapping[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTheproto3(uint64(msgSize)) - } - mapSize := 1 + sozTheproto3(uint64(k)) + msgSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64((uint64(k)<<1)^uint64((k>>63)))) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(v.Size())) - n9, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n9 - } - } - } - if len(m.ByteMapping) > 0 { - for k := range m.ByteMapping { - dAtA[i] = 0x1a - i++ - v := m.ByteMapping[k] - byteSize := 0 - if len(v) > 0 { - byteSize = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapSize := 1 + 1 + byteSize - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - if k { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - if len(v) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - } - return i, nil -} - -func (m *FloatingPoint) 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 *FloatingPoint) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.F != 0 { - dAtA[i] = 0x9 - i++ - *(*float64)(unsafe.Pointer(&dAtA[i])) = m.F - i += 8 - } - return i, nil -} - -func (m *Uint128Pair) 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 *Uint128Pair) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Left.Size())) - n10, err := m.Left.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n10 - if m.Right != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(m.Right.Size())) - n11, err := m.Right.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n11 - } - return i, nil -} - -func (m *ContainsNestedMap) 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 *ContainsNestedMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - return i, nil -} - -func (m *ContainsNestedMap_NestedMap) 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 *ContainsNestedMap_NestedMap) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NestedMapField) > 0 { - for k := range m.NestedMapField { - dAtA[i] = 0xa - i++ - v := m.NestedMapField[k] - mapSize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - i = encodeVarintTheproto3(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x11 - i++ - i = encodeFixed64Theproto3(dAtA, i, uint64(math.Float64bits(float64(v)))) - } - } - return i, nil -} - -func (m *NotPacked) 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 *NotPacked) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Key) > 0 { - for _, num := range m.Key { - dAtA[i] = 0x28 - i++ - i = encodeVarintTheproto3(dAtA, i, uint64(num)) - } - } - return i, nil -} - -func encodeFixed64Theproto3(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 encodeFixed32Theproto3(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 encodeVarintTheproto3(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 init() { proto.RegisterFile("combos/unsafemarshaler/theproto3.proto", fileDescriptorTheproto3) } - -var fileDescriptorTheproto3 = []byte{ - // 1614 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xbf, 0x6f, 0xdb, 0x46, - 0x1b, 0xc7, 0x75, 0xfa, 0xad, 0x47, 0x3f, 0x4c, 0x5f, 0xf2, 0xbe, 0xd0, 0x6b, 0xe0, 0xa5, 0x65, - 0x05, 0x70, 0x94, 0xa0, 0x91, 0x53, 0x27, 0x69, 0x53, 0x37, 0x6d, 0x6a, 0x29, 0x16, 0xe2, 0xc6, - 0x56, 0x5c, 0xc9, 0x8e, 0x5b, 0x04, 0xa8, 0x41, 0xd9, 0x94, 0x44, 0x44, 0x22, 0x0d, 0x92, 0x0a, - 0xea, 0x2d, 0x7f, 0x46, 0xb7, 0xa2, 0x5b, 0xc7, 0x22, 0x43, 0xd1, 0xb1, 0xdd, 0x3c, 0x06, 0xe8, - 0x52, 0x74, 0x08, 0x62, 0x75, 0xc9, 0x98, 0x31, 0x63, 0x71, 0x77, 0x94, 0x74, 0x22, 0x8f, 0x62, - 0xd3, 0xa5, 0x8b, 0x27, 0xf1, 0x1e, 0x3f, 0xdf, 0xcf, 0x3d, 0x3c, 0xde, 0x3d, 0xfc, 0x82, 0x86, - 0xe5, 0x43, 0xa3, 0xdf, 0x32, 0xac, 0x95, 0x81, 0x6e, 0x29, 0x6d, 0xb5, 0xaf, 0x98, 0x56, 0x57, - 0xe9, 0xa9, 0xe6, 0x8a, 0xdd, 0x55, 0x8f, 0x4d, 0xc3, 0x36, 0x6e, 0x94, 0xe9, 0x0f, 0x4e, 0x8d, - 0x03, 0x0b, 0xd7, 0x3a, 0x9a, 0xdd, 0x1d, 0xb4, 0xca, 0x87, 0x46, 0x7f, 0xa5, 0x63, 0x74, 0x8c, - 0x15, 0x1a, 0x6f, 0x0d, 0xda, 0x74, 0x44, 0x07, 0xf4, 0x8a, 0x29, 0x17, 0x3e, 0xf4, 0x4d, 0xb7, - 0x55, 0xcb, 0x5e, 0x71, 0xe6, 0x6f, 0x19, 0x76, 0x97, 0x4c, 0x4a, 0x62, 0x4c, 0x58, 0xfc, 0x35, - 0x06, 0x89, 0x6d, 0xd5, 0xb2, 0x94, 0x8e, 0x8a, 0x31, 0x44, 0x75, 0xa5, 0xaf, 0xe6, 0x51, 0x01, - 0x95, 0x52, 0x0d, 0x7a, 0x8d, 0x6f, 0x41, 0xb2, 0xab, 0xf5, 0x14, 0x53, 0xb3, 0x4f, 0xf2, 0xe1, - 0x02, 0x2a, 0xe5, 0x56, 0xff, 0x57, 0x9e, 0x94, 0xed, 0x28, 0xcb, 0xf7, 0x07, 0x7d, 0x63, 0x60, - 0x36, 0xc6, 0xa9, 0xb8, 0x00, 0x99, 0xae, 0xaa, 0x75, 0xba, 0xf6, 0x81, 0xa6, 0x1f, 0x1c, 0xf6, - 0xf3, 0x91, 0x02, 0x2a, 0x65, 0x1b, 0xc0, 0x62, 0x9b, 0x7a, 0xb5, 0x4f, 0x26, 0x3b, 0x52, 0x6c, - 0x25, 0x1f, 0x2d, 0xa0, 0x52, 0xa6, 0x41, 0xaf, 0xb1, 0x04, 0x91, 0x27, 0xea, 0x49, 0x3e, 0x56, - 0x88, 0x94, 0xa2, 0x0d, 0x72, 0x89, 0xaf, 0x40, 0x5c, 0x57, 0x2d, 0x5b, 0x3d, 0xca, 0xc7, 0x0b, - 0xa8, 0x94, 0x5e, 0x9d, 0xe7, 0x26, 0xaf, 0xd3, 0x3f, 0x34, 0x9c, 0x04, 0xbc, 0x04, 0x19, 0x53, - 0xb5, 0x06, 0x3d, 0xfb, 0xe0, 0xd0, 0x18, 0xe8, 0x76, 0x3e, 0x51, 0x40, 0xa5, 0x48, 0x23, 0xcd, - 0x62, 0x55, 0x12, 0xc2, 0x97, 0x20, 0x6b, 0x9b, 0x03, 0xf5, 0xc0, 0x3a, 0x34, 0x6c, 0xab, 0xaf, - 0xe8, 0xf9, 0x64, 0x01, 0x95, 0x92, 0x8d, 0x0c, 0x09, 0x36, 0x9d, 0x18, 0xbe, 0x08, 0x31, 0xeb, - 0xd0, 0x30, 0xd5, 0x7c, 0xaa, 0x80, 0x4a, 0xe1, 0x06, 0x1b, 0xe0, 0x8f, 0x20, 0x61, 0xab, 0xa6, - 0xa9, 0x68, 0x7a, 0x1e, 0x0a, 0x91, 0x52, 0x7a, 0x75, 0x51, 0xb0, 0x0c, 0xbb, 0x2c, 0x63, 0x43, - 0xb7, 0xcd, 0x93, 0xc6, 0x28, 0x1f, 0xdf, 0x82, 0x0c, 0xcd, 0x5b, 0x3d, 0x68, 0x6b, 0x6a, 0xef, - 0x28, 0x9f, 0xa6, 0x77, 0x82, 0xcb, 0xf4, 0x29, 0xd4, 0x35, 0xfd, 0xe1, 0xb1, 0x5d, 0x57, 0x6c, - 0xed, 0xa9, 0xda, 0x48, 0xb3, 0xbc, 0x1a, 0x49, 0xc3, 0xb5, 0xb1, 0xec, 0xa9, 0xd2, 0x1b, 0xa8, - 0xf9, 0x2c, 0x9d, 0xf6, 0x92, 0x60, 0xda, 0x1d, 0x9a, 0xf6, 0x88, 0x64, 0xb1, 0xa9, 0x1d, 0x0e, - 0x8d, 0x2c, 0x6c, 0x43, 0x86, 0xaf, 0x6b, 0xb4, 0xc8, 0x88, 0x2e, 0x0f, 0x5d, 0xe4, 0xcb, 0x10, - 0x63, 0x53, 0x84, 0xfd, 0xd6, 0x98, 0xfd, 0x7d, 0x2d, 0x7c, 0x1b, 0x2d, 0xec, 0x80, 0xe4, 0x9e, - 0x4f, 0x80, 0x5c, 0x9e, 0x46, 0x4a, 0xfc, 0xcd, 0x6e, 0xe8, 0x83, 0x3e, 0x47, 0x2c, 0xde, 0x85, - 0x38, 0xdb, 0x3f, 0x38, 0x0d, 0x89, 0xbd, 0xfa, 0x83, 0xfa, 0xc3, 0xfd, 0xba, 0x14, 0xc2, 0x49, - 0x88, 0xee, 0xec, 0xd5, 0x9b, 0x12, 0xc2, 0x59, 0x48, 0x35, 0xb7, 0xd6, 0x77, 0x9a, 0xbb, 0x9b, - 0xd5, 0x07, 0x52, 0x18, 0xcf, 0x41, 0xba, 0xb2, 0xb9, 0xb5, 0x75, 0x50, 0x59, 0xdf, 0xdc, 0xda, - 0xf8, 0x4a, 0x8a, 0x14, 0x65, 0x88, 0xb3, 0x3a, 0xc9, 0xb3, 0x6b, 0x0d, 0x74, 0xfd, 0xc4, 0xd9, - 0xc2, 0x6c, 0x50, 0x7c, 0x8e, 0x21, 0xb1, 0xde, 0xeb, 0x6d, 0x2b, 0xc7, 0x16, 0xde, 0x87, 0xf9, - 0xa6, 0x6d, 0x6a, 0x7a, 0x67, 0xd7, 0xb8, 0x67, 0x0c, 0x5a, 0x3d, 0x75, 0x5b, 0x39, 0xce, 0x23, - 0xba, 0xb4, 0x57, 0xb8, 0xfb, 0x76, 0xd2, 0xcb, 0x9e, 0x5c, 0xb6, 0xc0, 0x5e, 0x06, 0xde, 0x05, - 0x69, 0x14, 0xac, 0xf5, 0x0c, 0xc5, 0x26, 0xdc, 0x30, 0xe5, 0x96, 0x66, 0x70, 0x47, 0xa9, 0x0c, - 0xeb, 0x21, 0xe0, 0x3b, 0x90, 0xdc, 0xd4, 0xed, 0x1b, 0xab, 0x84, 0x16, 0xa1, 0xb4, 0x82, 0x80, - 0x36, 0x4a, 0x61, 0x94, 0xb1, 0xc2, 0x51, 0x7f, 0x70, 0x93, 0xa8, 0xa3, 0xb3, 0xd4, 0x34, 0x65, - 0xa2, 0xa6, 0x43, 0x7c, 0x17, 0x52, 0x7b, 0xda, 0x68, 0xf2, 0x18, 0x95, 0x2f, 0x09, 0xe4, 0xe3, - 0x1c, 0xa6, 0x9f, 0x68, 0x46, 0x00, 0x36, 0x7f, 0x7c, 0x26, 0x80, 0x2b, 0x60, 0xa2, 0x21, 0x80, - 0xe6, 0xb8, 0x82, 0x84, 0x2f, 0xa0, 0xe9, 0xaa, 0xa0, 0xc9, 0x57, 0xd0, 0x1c, 0x57, 0x90, 0x9c, - 0x09, 0xe0, 0x2b, 0x18, 0x8f, 0x71, 0x05, 0xa0, 0xa6, 0x7d, 0xa3, 0x1e, 0xb1, 0x12, 0x52, 0x94, - 0x50, 0x14, 0x10, 0x26, 0x49, 0x0c, 0xc1, 0xa9, 0xf0, 0x06, 0xa4, 0x9b, 0xed, 0x09, 0x04, 0x3c, - 0xe7, 0x78, 0x5c, 0x46, 0xdb, 0x45, 0xe1, 0x75, 0xe3, 0x52, 0xd8, 0xcd, 0xa4, 0x67, 0x97, 0xc2, - 0xdd, 0x0d, 0xa7, 0x9a, 0x94, 0xc2, 0x20, 0x99, 0x80, 0x52, 0x38, 0x0a, 0xaf, 0x23, 0xcd, 0xb0, - 0x62, 0x18, 0x24, 0xd3, 0xe9, 0x4a, 0x8b, 0x02, 0x84, 0x93, 0xe1, 0x34, 0x43, 0x67, 0x44, 0x9f, - 0x08, 0xdd, 0xe4, 0x44, 0x9c, 0xf3, 0x7f, 0x22, 0xa3, 0x9c, 0xd1, 0x13, 0x19, 0x8d, 0xf9, 0x73, - 0x56, 0x39, 0xb1, 0x55, 0x8b, 0x70, 0xe6, 0x02, 0xcf, 0xd9, 0x28, 0xd5, 0x75, 0xce, 0x46, 0x61, - 0xfc, 0x05, 0xcc, 0x8d, 0x62, 0xa4, 0x3d, 0x11, 0xa8, 0x44, 0xa1, 0x97, 0x67, 0x40, 0x9d, 0x4c, - 0xc6, 0x74, 0xeb, 0x71, 0x1d, 0x72, 0xa3, 0xd0, 0xb6, 0x45, 0x6f, 0x77, 0x9e, 0x12, 0x97, 0x67, - 0x10, 0x59, 0x22, 0x03, 0xba, 0xd4, 0x0b, 0xf7, 0xe0, 0xbf, 0xe2, 0x6e, 0xc4, 0xb7, 0xdf, 0x14, - 0x6b, 0xbf, 0x17, 0xf9, 0xf6, 0x8b, 0xf8, 0xf6, 0x5d, 0x85, 0xff, 0x08, 0x7b, 0x4f, 0x10, 0x24, - 0xcc, 0x43, 0x3e, 0x86, 0xec, 0x54, 0xcb, 0xe1, 0xc5, 0x31, 0x81, 0x38, 0xe6, 0x15, 0x4f, 0xb6, - 0x96, 0xe0, 0xed, 0x31, 0x25, 0x8e, 0xf0, 0xe2, 0x3b, 0x90, 0x9b, 0xee, 0x37, 0xbc, 0x3a, 0x2b, - 0x50, 0x67, 0x05, 0x6a, 0xf1, 0xdc, 0x51, 0x81, 0x3a, 0xea, 0x52, 0x37, 0x7d, 0xe7, 0x9e, 0x17, - 0xa8, 0xe7, 0x05, 0x6a, 0xf1, 0xdc, 0x58, 0xa0, 0xc6, 0xbc, 0xfa, 0x13, 0x98, 0x73, 0xb5, 0x18, - 0x5e, 0x9e, 0x10, 0xc8, 0x13, 0xbc, 0xfc, 0x53, 0x90, 0xdc, 0xcd, 0x85, 0xd7, 0xcf, 0x09, 0xf4, - 0x73, 0xa2, 0xe9, 0xc5, 0xd5, 0xc7, 0x05, 0xf2, 0xb8, 0x70, 0x7a, 0xb1, 0x5e, 0x12, 0xe8, 0x25, - 0x5e, 0xbf, 0x06, 0x19, 0xbe, 0x9b, 0xf0, 0xda, 0xa4, 0x40, 0x9b, 0x74, 0xaf, 0xfb, 0x54, 0x33, - 0x09, 0xda, 0xe9, 0x29, 0x9f, 0xe3, 0x32, 0xd5, 0x42, 0x82, 0x20, 0x19, 0x1e, 0xf2, 0x08, 0x2e, - 0x8a, 0x5a, 0x86, 0x80, 0x51, 0xe2, 0x19, 0x39, 0xe2, 0x11, 0x27, 0x66, 0x8f, 0xa8, 0xa6, 0x8c, - 0xd3, 0xc2, 0x63, 0xb8, 0x20, 0x68, 0x1c, 0x02, 0x6c, 0x79, 0xda, 0x8d, 0xe5, 0x39, 0x2c, 0x6d, - 0x02, 0x9a, 0xde, 0xd9, 0x31, 0x34, 0xdd, 0xe6, 0x5d, 0xd9, 0x4f, 0x17, 0x20, 0xe7, 0xb4, 0xa7, - 0x87, 0xe6, 0x91, 0x6a, 0xaa, 0x47, 0xf8, 0x6b, 0x7f, 0xef, 0x74, 0xdd, 0xdb, 0xd4, 0x1c, 0xd5, - 0x3b, 0x58, 0xa8, 0xc7, 0xbe, 0x16, 0x6a, 0x25, 0x18, 0x1f, 0xe4, 0xa4, 0xaa, 0x1e, 0x27, 0x75, - 0xd9, 0x1f, 0xea, 0x67, 0xa8, 0xaa, 0x1e, 0x43, 0x35, 0x1b, 0x22, 0xf4, 0x55, 0x35, 0xaf, 0xaf, - 0x2a, 0xf9, 0x53, 0xfc, 0xed, 0x55, 0xcd, 0x6b, 0xaf, 0x02, 0x38, 0x62, 0x97, 0x55, 0xf3, 0xba, - 0xac, 0x19, 0x1c, 0x7f, 0xb3, 0x55, 0xf3, 0x9a, 0xad, 0x00, 0x8e, 0xd8, 0x73, 0x6d, 0x0a, 0x3c, - 0xd7, 0x15, 0x7f, 0xd0, 0x2c, 0xeb, 0xb5, 0x25, 0xb2, 0x5e, 0x57, 0x67, 0x14, 0x35, 0xd3, 0x81, - 0x6d, 0x0a, 0x1c, 0x58, 0x50, 0x61, 0x3e, 0x46, 0x6c, 0x4b, 0x64, 0xc4, 0x02, 0x0b, 0xf3, 0xf3, - 0x63, 0x9f, 0xb9, 0xfd, 0xd8, 0xb2, 0x3f, 0x49, 0x6c, 0xcb, 0x6a, 0x5e, 0x5b, 0x56, 0x0a, 0x3a, - 0x73, 0x22, 0x77, 0xf6, 0xd8, 0xd7, 0x9d, 0xfd, 0x8d, 0x23, 0x1c, 0x64, 0xd2, 0xbe, 0xf4, 0x33, - 0x69, 0xe5, 0x60, 0xf6, 0x6c, 0xaf, 0xb6, 0xe7, 0xe3, 0xd5, 0xae, 0x05, 0x83, 0xcf, 0x2d, 0xdb, - 0xb9, 0x65, 0x3b, 0xb7, 0x6c, 0xe7, 0x96, 0xed, 0xdf, 0xb7, 0x6c, 0x6b, 0xd1, 0x6f, 0xbf, 0x5f, - 0x44, 0xc5, 0xdf, 0x22, 0x90, 0x73, 0xbe, 0x0c, 0xee, 0x6b, 0x76, 0x97, 0xb4, 0xb7, 0x6d, 0xc8, - 0xe8, 0x4a, 0x5f, 0x3d, 0xe8, 0x2b, 0xc7, 0xc7, 0x9a, 0xde, 0x71, 0x3c, 0xdb, 0x55, 0xef, 0xa7, - 0x44, 0x47, 0x50, 0xae, 0x2b, 0x7d, 0xd2, 0xab, 0x48, 0xb2, 0xf3, 0xba, 0xd1, 0x27, 0x11, 0xfc, - 0x39, 0xa4, 0xfb, 0x56, 0x67, 0x4c, 0x0b, 0x7b, 0x5e, 0x84, 0x2e, 0x1a, 0xbb, 0xd3, 0x09, 0x0c, - 0xfa, 0xe3, 0x00, 0x29, 0xad, 0x75, 0x62, 0x4f, 0x4a, 0x8b, 0x04, 0x95, 0x46, 0x9e, 0xe9, 0x74, - 0x69, 0xad, 0x49, 0x84, 0x6c, 0x5b, 0x77, 0xed, 0x41, 0x9d, 0x6e, 0x6a, 0xf3, 0xec, 0xc3, 0x9c, - 0xab, 0x5a, 0xc1, 0x99, 0xff, 0x07, 0xcf, 0x86, 0x14, 0xe6, 0xae, 0x3c, 0xe8, 0x4c, 0xf0, 0x1b, - 0xb2, 0xf8, 0x7f, 0xc8, 0x4e, 0xb1, 0x71, 0x06, 0x50, 0x9b, 0x4a, 0x51, 0x03, 0xb5, 0x8b, 0xdf, - 0x21, 0x48, 0x93, 0x3e, 0xf9, 0xfe, 0xea, 0xed, 0x1d, 0x45, 0x33, 0xf1, 0x7d, 0x88, 0xf6, 0xd4, - 0xb6, 0x4d, 0x13, 0x32, 0x95, 0x9b, 0xa7, 0x2f, 0x17, 0x43, 0x7f, 0xbc, 0x5c, 0x7c, 0x2f, 0xe0, - 0xbf, 0x04, 0x03, 0xcb, 0x36, 0xfa, 0x65, 0x87, 0xd3, 0xa0, 0x04, 0x5c, 0x83, 0x98, 0xa9, 0x75, - 0xba, 0x36, 0x2b, 0xa9, 0x72, 0xfd, 0x9d, 0x31, 0x4c, 0x5e, 0x3c, 0x45, 0x30, 0x5f, 0x35, 0x74, - 0x5b, 0xd1, 0x74, 0x8b, 0x7d, 0xad, 0x25, 0x6f, 0xc8, 0xe7, 0x08, 0x52, 0xe3, 0x11, 0x6e, 0x41, - 0x6e, 0x3c, 0xa0, 0x1f, 0xc1, 0x9d, 0x9d, 0xba, 0xc6, 0xad, 0xb0, 0x87, 0x51, 0x16, 0x5c, 0x51, - 0xb1, 0xf3, 0x4e, 0x9e, 0x0e, 0x2e, 0xac, 0xc3, 0x05, 0x41, 0xda, 0xbb, 0xbc, 0x90, 0x8b, 0x4b, - 0x90, 0xaa, 0x1b, 0xf6, 0x8e, 0x72, 0xf8, 0x84, 0x7e, 0x72, 0x9e, 0xfc, 0xcf, 0xa2, 0x12, 0x96, - 0x42, 0x54, 0x7c, 0x75, 0x09, 0x12, 0xce, 0xe9, 0xc7, 0x71, 0x08, 0x6f, 0xaf, 0x4b, 0x21, 0xfa, - 0x5b, 0x91, 0x10, 0xfd, 0xad, 0x4a, 0xe1, 0xca, 0xd6, 0xe9, 0x99, 0x1c, 0x7a, 0x71, 0x26, 0x87, - 0x7e, 0x3f, 0x93, 0x43, 0xaf, 0xce, 0x64, 0xf4, 0xfa, 0x4c, 0x46, 0x6f, 0xce, 0x64, 0xf4, 0xf6, - 0x4c, 0x46, 0xcf, 0x86, 0x32, 0xfa, 0x61, 0x28, 0xa3, 0x1f, 0x87, 0x32, 0xfa, 0x79, 0x28, 0xa3, - 0x5f, 0x86, 0x32, 0x3a, 0x1d, 0xca, 0xa1, 0x17, 0x43, 0x39, 0xf4, 0x6a, 0x28, 0xa3, 0xd7, 0x43, - 0x39, 0xf4, 0x66, 0x28, 0xa3, 0xb7, 0x43, 0x19, 0x3d, 0xfb, 0x53, 0x0e, 0xb5, 0xe2, 0x6c, 0x79, - 0xfe, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x7d, 0x5e, 0x3b, 0x6b, 0x1a, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.proto deleted file mode 100644 index 60aaa849c..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3.proto +++ /dev/null @@ -1,168 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package theproto3; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -import "github.com/gogo/protobuf/test/combos/both/thetest.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = false; - -message Message { - enum Humour { - UNKNOWN = 0; - PUNS = 1; - SLAPSTICK = 2; - BILL_BAILEY = 3; - } - - string name = 1; - Humour hilarity = 2; - uint32 height_in_cm = 3; - bytes data = 4; - int64 result_count = 7; - bool true_scotsman = 8; - float score = 9; - - repeated uint64 key = 5; - Nested nested = 6; - - map terrain = 10; - test.NinOptNative proto2_field = 11; - map proto2_value = 13; -} - -message Nested { - string bunny = 1; -} - -enum MapEnum { - MA = 0; - MB = 1; - MC = 2; -} - -message AllMaps { - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} - -message AllMapsOrdered { - option (gogoproto.stable_marshaler) = true; - - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} - -message MessageWithMap { - map name_mapping = 1; - map msg_mapping = 2; - map byte_mapping = 3; -} - -message FloatingPoint { - double f = 1; -} - -message Uint128Pair { - bytes left = 1 [(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; - bytes right = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message ContainsNestedMap { - message NestedMap { - map NestedMapField = 1; - } -} - -message NotPacked { - repeated uint64 key = 5 [packed=false]; -} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3pb_test.go deleted file mode 100644 index cfed27532..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafemarshaler/theproto3pb_test.go +++ /dev/null @@ -1,2546 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/theproto3.proto -// DO NOT EDIT! - -/* -Package theproto3 is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/theproto3.proto - -It has these top-level messages: - Message - Nested - AllMaps - AllMapsOrdered - MessageWithMap - FloatingPoint - Uint128Pair - ContainsNestedMap - NotPacked -*/ -package theproto3 - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import _ "github.com/gogo/protobuf/test/combos/both" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestMessageProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMessageMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Message, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Message{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNestedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNestedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nested, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNested(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Nested{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllMapsMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMaps{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestAllMapsOrderedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMapsOrdered{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageWithMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMessageWithMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MessageWithMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMessageWithMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MessageWithMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestFloatingPointMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &FloatingPoint{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUint128PairProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestUint128PairMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkUint128PairProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Uint128Pair, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUint128Pair(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Uint128Pair{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestContainsNestedMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedContainsNestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ContainsNestedMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMap_NestedMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestContainsNestedMap_NestedMapMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap_NestedMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedContainsNestedMap_NestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ContainsNestedMap_NestedMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNotPackedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNotPackedMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkNotPackedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NotPacked, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNotPacked(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NotPacked{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Message{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nested{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsOrderedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMessageWithMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MessageWithMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestFloatingPointJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUint128PairJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Uint128Pair{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestContainsNestedMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestContainsNestedMap_NestedMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap_NestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNotPackedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NotPacked{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMessageProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMessageProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMessageWithMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMessageWithMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestFloatingPointProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestFloatingPointProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUint128PairProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUint128PairProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNotPackedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNotPackedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTheproto3Description(t *testing.T) { - Theproto3Description() -} -func TestMessageVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsOrderedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMessageWithMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestFloatingPointVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUint128PairVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestContainsNestedMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNotPackedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestMessageWithMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUint128PairFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestContainsNestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestContainsNestedMap_NestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNotPackedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestMessageWithMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUint128PairGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestContainsNestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestContainsNestedMap_NestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNotPackedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestMessageSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Message, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nested, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNested(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageWithMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMessageWithMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MessageWithMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMessageWithMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUint128PairSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUint128PairSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Uint128Pair, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUint128Pair(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkContainsNestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedContainsNestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMap_NestedMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap_NestedMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedContainsNestedMap_NestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNotPackedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNotPackedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NotPacked, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNotPacked(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestMessageWithMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUint128PairStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestContainsNestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestContainsNestedMap_NestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNotPackedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/proto3_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/proto3_test.go deleted file mode 100644 index bb7eb6bb9..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/proto3_test.go +++ /dev/null @@ -1,159 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2015, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package theproto3 - -import ( - "reflect" - "testing" - - "github.com/gogo/protobuf/proto" -) - -func TestNilMaps(t *testing.T) { - m := &AllMaps{StringToMsgMap: map[string]*FloatingPoint{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToMsgMap["a"]; !ok { - t.Error("element not in map") - } else if v != nil { - t.Errorf("element should be nil, but its %v", v) - } -} - -func TestNilMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"a": nil}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["a"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} - -func TestEmptyMapsBytes(t *testing.T) { - m := &AllMaps{StringToBytesMap: map[string][]byte{"b": {}}} - data, err := proto.Marshal(m) - if err != nil { - t.Fatal(err) - } - size := m.Size() - protoSize := proto.Size(m) - marshaledSize := len(data) - if size != protoSize || marshaledSize != protoSize { - t.Errorf("size %d != protoSize %d != marshaledSize %d", size, protoSize, marshaledSize) - } - m2 := &AllMaps{} - if err := proto.Unmarshal(data, m2); err != nil { - t.Fatal(err) - } - if v, ok := m2.StringToBytesMap["b"]; !ok { - t.Error("element not in map") - } else if len(v) != 0 { - t.Errorf("element should be empty, but its %v", v) - } -} - -func TestCustomTypeSize(t *testing.T) { - m := &Uint128Pair{} - m.Size() // Should not panic. -} - -func TestCustomTypeMarshalUnmarshal(t *testing.T) { - m1 := &Uint128Pair{} - if b, err := proto.Marshal(m1); err != nil { - t.Fatal(err) - } else { - m2 := &Uint128Pair{} - if err := proto.Unmarshal(b, m2); err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(m1, m2) { - t.Errorf("expected %+v, got %+v", m1, m2) - } - } -} - -func TestNotPackedToPacked(t *testing.T) { - input := []uint64{1, 10e9} - notpacked := &NotPacked{Key: input} - if data, err := proto.Marshal(notpacked); err != nil { - t.Fatal(err) - } else { - packed := &Message{} - if err := proto.Unmarshal(data, packed); err != nil { - t.Fatal(err) - } - output := packed.Key - if !reflect.DeepEqual(input, output) { - t.Fatalf("expected %#v, got %#v", input, output) - } - } -} - -func TestPackedToNotPacked(t *testing.T) { - input := []uint64{1, 10e9} - packed := &Message{Key: input} - if data, err := proto.Marshal(packed); err != nil { - t.Fatal(err) - } else { - notpacked := &NotPacked{} - if err := proto.Unmarshal(data, notpacked); err != nil { - t.Fatal(err) - } - output := notpacked.Key - if !reflect.DeepEqual(input, output) { - t.Fatalf("expected %#v, got %#v", input, output) - } - } -} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.pb.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.pb.go deleted file mode 100644 index 50f19ca93..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.pb.go +++ /dev/null @@ -1,10029 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/theproto3.proto -// DO NOT EDIT! - -/* - Package theproto3 is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeunmarshaler/theproto3.proto - - It has these top-level messages: - Message - Nested - AllMaps - AllMapsOrdered - MessageWithMap - FloatingPoint - Uint128Pair - ContainsNestedMap - NotPacked -*/ -package theproto3 - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import test "github.com/gogo/protobuf/test/combos/both" - -import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom" - -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" -import bytes "bytes" -import io_ioutil "io/ioutil" - -import strconv "strconv" - -import strings "strings" -import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -import io "io" -import unsafe "unsafe" - -// 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 - -type MapEnum int32 - -const ( - MA MapEnum = 0 - MB MapEnum = 1 - MC MapEnum = 2 -) - -var MapEnum_name = map[int32]string{ - 0: "MA", - 1: "MB", - 2: "MC", -} -var MapEnum_value = map[string]int32{ - "MA": 0, - "MB": 1, - "MC": 2, -} - -func (MapEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{0} } - -type Message_Humour int32 - -const ( - UNKNOWN Message_Humour = 0 - PUNS Message_Humour = 1 - SLAPSTICK Message_Humour = 2 - BILL_BAILEY Message_Humour = 3 -) - -var Message_Humour_name = map[int32]string{ - 0: "UNKNOWN", - 1: "PUNS", - 2: "SLAPSTICK", - 3: "BILL_BAILEY", -} -var Message_Humour_value = map[string]int32{ - "UNKNOWN": 0, - "PUNS": 1, - "SLAPSTICK": 2, - "BILL_BAILEY": 3, -} - -func (Message_Humour) EnumDescriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{0, 0} } - -type Message struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Hilarity Message_Humour `protobuf:"varint,2,opt,name=hilarity,proto3,enum=theproto3.Message_Humour" json:"hilarity,omitempty"` - HeightInCm uint32 `protobuf:"varint,3,opt,name=height_in_cm,json=heightInCm,proto3" json:"height_in_cm,omitempty"` - Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` - ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` - TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman,proto3" json:"true_scotsman,omitempty"` - Score float32 `protobuf:"fixed32,9,opt,name=score,proto3" json:"score,omitempty"` - Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` - Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` - Terrain map[int64]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Proto2Field *test.NinOptNative `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` - Proto2Value map[int64]*test.NinOptEnum `protobuf:"bytes,13,rep,name=proto2_value,json=proto2Value" json:"proto2_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *Message) Reset() { *m = Message{} } -func (*Message) ProtoMessage() {} -func (*Message) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{0} } - -type Nested struct { - Bunny string `protobuf:"bytes,1,opt,name=bunny,proto3" json:"bunny,omitempty"` -} - -func (m *Nested) Reset() { *m = Nested{} } -func (*Nested) ProtoMessage() {} -func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{1} } - -type AllMaps struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *AllMaps) Reset() { *m = AllMaps{} } -func (*AllMaps) ProtoMessage() {} -func (*AllMaps) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{2} } - -type AllMapsOrdered struct { - StringToDoubleMap map[string]float64 `protobuf:"bytes,1,rep,name=StringToDoubleMap" json:"StringToDoubleMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - StringToFloatMap map[string]float32 `protobuf:"bytes,2,rep,name=StringToFloatMap" json:"StringToFloatMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Int32Map map[int32]int32 `protobuf:"bytes,3,rep,name=Int32Map" json:"Int32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Int64Map map[int64]int64 `protobuf:"bytes,4,rep,name=Int64Map" json:"Int64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint32Map map[uint32]uint32 `protobuf:"bytes,5,rep,name=Uint32Map" json:"Uint32Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Uint64Map map[uint64]uint64 `protobuf:"bytes,6,rep,name=Uint64Map" json:"Uint64Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - Sint32Map map[int32]int32 `protobuf:"bytes,7,rep,name=Sint32Map" json:"Sint32Map,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"zigzag32,2,opt,name=value,proto3"` - Sint64Map map[int64]int64 `protobuf:"bytes,8,rep,name=Sint64Map" json:"Sint64Map,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"zigzag64,2,opt,name=value,proto3"` - Fixed32Map map[uint32]uint32 `protobuf:"bytes,9,rep,name=Fixed32Map" json:"Fixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Sfixed32Map map[int32]int32 `protobuf:"bytes,10,rep,name=Sfixed32Map" json:"Sfixed32Map,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` - Fixed64Map map[uint64]uint64 `protobuf:"bytes,11,rep,name=Fixed64Map" json:"Fixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - Sfixed64Map map[int64]int64 `protobuf:"bytes,12,rep,name=Sfixed64Map" json:"Sfixed64Map,omitempty" protobuf_key:"fixed64,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` - BoolMap map[bool]bool `protobuf:"bytes,13,rep,name=BoolMap" json:"BoolMap,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - StringMap map[string]string `protobuf:"bytes,14,rep,name=StringMap" json:"StringMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToBytesMap map[string][]byte `protobuf:"bytes,15,rep,name=StringToBytesMap" json:"StringToBytesMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - StringToEnumMap map[string]MapEnum `protobuf:"bytes,16,rep,name=StringToEnumMap" json:"StringToEnumMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=theproto3.MapEnum"` - StringToMsgMap map[string]*FloatingPoint `protobuf:"bytes,17,rep,name=StringToMsgMap" json:"StringToMsgMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *AllMapsOrdered) Reset() { *m = AllMapsOrdered{} } -func (*AllMapsOrdered) ProtoMessage() {} -func (*AllMapsOrdered) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{3} } - -type MessageWithMap struct { - NameMapping map[int32]string `protobuf:"bytes,1,rep,name=name_mapping,json=nameMapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - MsgMapping map[int64]*FloatingPoint `protobuf:"bytes,2,rep,name=msg_mapping,json=msgMapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - ByteMapping map[bool][]byte `protobuf:"bytes,3,rep,name=byte_mapping,json=byteMapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (m *MessageWithMap) Reset() { *m = MessageWithMap{} } -func (*MessageWithMap) ProtoMessage() {} -func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{4} } - -type FloatingPoint struct { - F float64 `protobuf:"fixed64,1,opt,name=f,proto3" json:"f,omitempty"` -} - -func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } -func (*FloatingPoint) ProtoMessage() {} -func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{5} } - -type Uint128Pair struct { - Left github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,1,opt,name=left,proto3,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"left"` - Right *github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,2,opt,name=right,proto3,customtype=github.com/gogo/protobuf/test/custom.Uint128" json:"right,omitempty"` -} - -func (m *Uint128Pair) Reset() { *m = Uint128Pair{} } -func (*Uint128Pair) ProtoMessage() {} -func (*Uint128Pair) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{6} } - -type ContainsNestedMap struct { -} - -func (m *ContainsNestedMap) Reset() { *m = ContainsNestedMap{} } -func (*ContainsNestedMap) ProtoMessage() {} -func (*ContainsNestedMap) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{7} } - -type ContainsNestedMap_NestedMap struct { - NestedMapField map[string]float64 `protobuf:"bytes,1,rep,name=NestedMapField" json:"NestedMapField,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` -} - -func (m *ContainsNestedMap_NestedMap) Reset() { *m = ContainsNestedMap_NestedMap{} } -func (*ContainsNestedMap_NestedMap) ProtoMessage() {} -func (*ContainsNestedMap_NestedMap) Descriptor() ([]byte, []int) { - return fileDescriptorTheproto3, []int{7, 0} -} - -type NotPacked struct { - Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` -} - -func (m *NotPacked) Reset() { *m = NotPacked{} } -func (*NotPacked) ProtoMessage() {} -func (*NotPacked) Descriptor() ([]byte, []int) { return fileDescriptorTheproto3, []int{8} } - -func init() { - proto.RegisterType((*Message)(nil), "theproto3.Message") - proto.RegisterType((*Nested)(nil), "theproto3.Nested") - proto.RegisterType((*AllMaps)(nil), "theproto3.AllMaps") - proto.RegisterType((*AllMapsOrdered)(nil), "theproto3.AllMapsOrdered") - proto.RegisterType((*MessageWithMap)(nil), "theproto3.MessageWithMap") - proto.RegisterType((*FloatingPoint)(nil), "theproto3.FloatingPoint") - proto.RegisterType((*Uint128Pair)(nil), "theproto3.Uint128Pair") - proto.RegisterType((*ContainsNestedMap)(nil), "theproto3.ContainsNestedMap") - proto.RegisterType((*ContainsNestedMap_NestedMap)(nil), "theproto3.ContainsNestedMap.NestedMap") - proto.RegisterType((*NotPacked)(nil), "theproto3.NotPacked") - proto.RegisterEnum("theproto3.MapEnum", MapEnum_name, MapEnum_value) - proto.RegisterEnum("theproto3.Message_Humour", Message_Humour_name, Message_Humour_value) -} -func (this *Message) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *Nested) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *AllMaps) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *AllMapsOrdered) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *MessageWithMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *FloatingPoint) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *Uint128Pair) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *ContainsNestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *ContainsNestedMap_NestedMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func (this *NotPacked) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - return Theproto3Description() -} -func Theproto3Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} - var gzipped = []byte{ - // 7852 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x23, 0xd7, - 0x99, 0x1e, 0x1b, 0x0d, 0x92, 0xe0, 0x0f, 0x90, 0x6c, 0x36, 0x47, 0x14, 0x44, 0x8d, 0xc8, 0x19, - 0x68, 0x34, 0xa2, 0x68, 0x8b, 0xc3, 0xe1, 0x90, 0x73, 0xc1, 0x58, 0x52, 0x00, 0x10, 0x1c, 0x71, - 0x4c, 0x82, 0x74, 0x93, 0xb4, 0x34, 0xeb, 0x54, 0x50, 0x4d, 0xe0, 0x90, 0x6c, 0x09, 0xe8, 0xc6, - 0xa2, 0x1b, 0x92, 0xe8, 0x87, 0x94, 0xb2, 0x4e, 0x36, 0xde, 0xa4, 0x72, 0xdd, 0xa4, 0xe2, 0x75, - 0x7c, 0x91, 0x37, 0xb5, 0xb1, 0x77, 0x37, 0x17, 0xaf, 0xb3, 0x71, 0xb6, 0xb6, 0x52, 0x59, 0xe5, - 0xc1, 0xc9, 0xe4, 0x25, 0xa5, 0x4d, 0x5e, 0x52, 0xae, 0x94, 0xca, 0x1a, 0xbb, 0x2a, 0x4e, 0xe2, - 0x4d, 0xbc, 0x59, 0x57, 0xed, 0x56, 0x79, 0x1f, 0x52, 0xe7, 0xd6, 0x7d, 0x4e, 0xa3, 0x81, 0x06, - 0x47, 0x92, 0xed, 0x07, 0xbf, 0xcc, 0xa0, 0xcf, 0xf9, 0xbf, 0xaf, 0xff, 0xfe, 0x6f, 0xe7, 0xef, - 0xd3, 0x0d, 0x10, 0xbe, 0xbb, 0x06, 0x17, 0x8e, 0x1d, 0xe7, 0xb8, 0x81, 0xae, 0xb4, 0xda, 0x8e, - 0xe7, 0x1c, 0x76, 0x8e, 0xae, 0xd4, 0x91, 0x5b, 0x6b, 0x5b, 0x2d, 0xcf, 0x69, 0x2f, 0x91, 0x31, - 0x7d, 0x92, 0x4a, 0x2c, 0x71, 0x89, 0xdc, 0x36, 0x4c, 0x6d, 0x58, 0x0d, 0xb4, 0xee, 0x0b, 0xee, - 0x21, 0x4f, 0xbf, 0x09, 0xc9, 0x23, 0xab, 0x81, 0xb2, 0xca, 0x05, 0x75, 0x21, 0xbd, 0x72, 0x69, - 0x29, 0x04, 0x5a, 0x92, 0x11, 0xbb, 0x78, 0xd8, 0x20, 0x88, 0xdc, 0xf7, 0x92, 0x30, 0x1d, 0x31, - 0xab, 0xeb, 0x90, 0xb4, 0xcd, 0x26, 0x66, 0x54, 0x16, 0xc6, 0x0c, 0xf2, 0x59, 0xcf, 0xc2, 0x68, - 0xcb, 0xac, 0xbd, 0x6a, 0x1e, 0xa3, 0x6c, 0x82, 0x0c, 0xf3, 0x43, 0x7d, 0x0e, 0xa0, 0x8e, 0x5a, - 0xc8, 0xae, 0x23, 0xbb, 0x76, 0x9a, 0x55, 0x2f, 0xa8, 0x0b, 0x63, 0x86, 0x30, 0xa2, 0x7f, 0x04, - 0xa6, 0x5a, 0x9d, 0xc3, 0x86, 0x55, 0xab, 0x0a, 0x62, 0x70, 0x41, 0x5d, 0x18, 0x36, 0x34, 0x3a, - 0xb1, 0x1e, 0x08, 0x3f, 0x0d, 0x93, 0xaf, 0x23, 0xf3, 0x55, 0x51, 0x34, 0x4d, 0x44, 0x27, 0xf0, - 0xb0, 0x20, 0x58, 0x82, 0x4c, 0x13, 0xb9, 0xae, 0x79, 0x8c, 0xaa, 0xde, 0x69, 0x0b, 0x65, 0x93, - 0xe4, 0xea, 0x2f, 0x74, 0x5d, 0x7d, 0xf8, 0xca, 0xd3, 0x0c, 0xb5, 0x7f, 0xda, 0x42, 0x7a, 0x01, - 0xc6, 0x90, 0xdd, 0x69, 0x52, 0x86, 0xe1, 0x1e, 0xf6, 0x2b, 0xdb, 0x9d, 0x66, 0x98, 0x25, 0x85, - 0x61, 0x8c, 0x62, 0xd4, 0x45, 0xed, 0xd7, 0xac, 0x1a, 0xca, 0x8e, 0x10, 0x82, 0xa7, 0xbb, 0x08, - 0xf6, 0xe8, 0x7c, 0x98, 0x83, 0xe3, 0xf4, 0x12, 0x8c, 0xa1, 0x37, 0x3c, 0x64, 0xbb, 0x96, 0x63, - 0x67, 0x47, 0x09, 0xc9, 0x53, 0x11, 0x5e, 0x44, 0x8d, 0x7a, 0x98, 0x22, 0xc0, 0xe9, 0xd7, 0x61, - 0xd4, 0x69, 0x79, 0x96, 0x63, 0xbb, 0xd9, 0xd4, 0x05, 0x65, 0x21, 0xbd, 0x72, 0x3e, 0x32, 0x10, - 0x76, 0xa8, 0x8c, 0xc1, 0x85, 0xf5, 0x4d, 0xd0, 0x5c, 0xa7, 0xd3, 0xae, 0xa1, 0x6a, 0xcd, 0xa9, - 0xa3, 0xaa, 0x65, 0x1f, 0x39, 0xd9, 0x31, 0x42, 0x30, 0xdf, 0x7d, 0x21, 0x44, 0xb0, 0xe4, 0xd4, - 0xd1, 0xa6, 0x7d, 0xe4, 0x18, 0x13, 0xae, 0x74, 0xac, 0xcf, 0xc0, 0x88, 0x7b, 0x6a, 0x7b, 0xe6, - 0x1b, 0xd9, 0x0c, 0x89, 0x10, 0x76, 0x94, 0xfb, 0xd3, 0x61, 0x98, 0x1c, 0x24, 0xc4, 0x6e, 0xc3, - 0xf0, 0x11, 0xbe, 0xca, 0x6c, 0xe2, 0x2c, 0x36, 0xa0, 0x18, 0xd9, 0x88, 0x23, 0x0f, 0x69, 0xc4, - 0x02, 0xa4, 0x6d, 0xe4, 0x7a, 0xa8, 0x4e, 0x23, 0x42, 0x1d, 0x30, 0xa6, 0x80, 0x82, 0xba, 0x43, - 0x2a, 0xf9, 0x50, 0x21, 0xf5, 0x32, 0x4c, 0xfa, 0x2a, 0x55, 0xdb, 0xa6, 0x7d, 0xcc, 0x63, 0xf3, - 0x4a, 0x9c, 0x26, 0x4b, 0x65, 0x8e, 0x33, 0x30, 0xcc, 0x98, 0x40, 0xd2, 0xb1, 0xbe, 0x0e, 0xe0, - 0xd8, 0xc8, 0x39, 0xaa, 0xd6, 0x51, 0xad, 0x91, 0x4d, 0xf5, 0xb0, 0xd2, 0x0e, 0x16, 0xe9, 0xb2, - 0x92, 0x43, 0x47, 0x6b, 0x0d, 0xfd, 0x56, 0x10, 0x6a, 0xa3, 0x3d, 0x22, 0x65, 0x9b, 0x26, 0x59, - 0x57, 0xb4, 0x1d, 0xc0, 0x44, 0x1b, 0xe1, 0xb8, 0x47, 0x75, 0x76, 0x65, 0x63, 0x44, 0x89, 0xa5, - 0xd8, 0x2b, 0x33, 0x18, 0x8c, 0x5e, 0xd8, 0x78, 0x5b, 0x3c, 0xd4, 0x9f, 0x04, 0x7f, 0xa0, 0x4a, - 0xc2, 0x0a, 0x48, 0x15, 0xca, 0xf0, 0xc1, 0x8a, 0xd9, 0x44, 0xb3, 0x37, 0x61, 0x42, 0x36, 0x8f, - 0x7e, 0x0e, 0x86, 0x5d, 0xcf, 0x6c, 0x7b, 0x24, 0x0a, 0x87, 0x0d, 0x7a, 0xa0, 0x6b, 0xa0, 0x22, - 0xbb, 0x4e, 0xaa, 0xdc, 0xb0, 0x81, 0x3f, 0xce, 0xde, 0x80, 0x71, 0xe9, 0xf4, 0x83, 0x02, 0x73, - 0x9f, 0x1b, 0x81, 0x73, 0x51, 0x31, 0x17, 0x19, 0xfe, 0x33, 0x30, 0x62, 0x77, 0x9a, 0x87, 0xa8, - 0x9d, 0x55, 0x09, 0x03, 0x3b, 0xd2, 0x0b, 0x30, 0xdc, 0x30, 0x0f, 0x51, 0x23, 0x9b, 0xbc, 0xa0, - 0x2c, 0x4c, 0xac, 0x7c, 0x64, 0xa0, 0xa8, 0x5e, 0xda, 0xc2, 0x10, 0x83, 0x22, 0xf5, 0xe7, 0x21, - 0xc9, 0x4a, 0x1c, 0x66, 0x58, 0x1c, 0x8c, 0x01, 0xc7, 0xa2, 0x41, 0x70, 0xfa, 0xe3, 0x30, 0x86, - 0xff, 0xa7, 0xb6, 0x1d, 0x21, 0x3a, 0xa7, 0xf0, 0x00, 0xb6, 0xab, 0x3e, 0x0b, 0x29, 0x12, 0x66, - 0x75, 0xc4, 0x97, 0x06, 0xff, 0x18, 0x3b, 0xa6, 0x8e, 0x8e, 0xcc, 0x4e, 0xc3, 0xab, 0xbe, 0x66, - 0x36, 0x3a, 0x88, 0x04, 0xcc, 0x98, 0x91, 0x61, 0x83, 0x9f, 0xc4, 0x63, 0xfa, 0x3c, 0xa4, 0x69, - 0x54, 0x5a, 0x76, 0x1d, 0xbd, 0x41, 0xaa, 0xcf, 0xb0, 0x41, 0x03, 0x75, 0x13, 0x8f, 0xe0, 0xd3, - 0xbf, 0xe2, 0x3a, 0x36, 0x77, 0x2d, 0x39, 0x05, 0x1e, 0x20, 0xa7, 0xbf, 0x11, 0x2e, 0x7c, 0x4f, - 0x44, 0x5f, 0x5e, 0x38, 0x16, 0x73, 0xdf, 0x4c, 0x40, 0x92, 0xe4, 0xdb, 0x24, 0xa4, 0xf7, 0xef, - 0xed, 0x96, 0xab, 0xeb, 0x3b, 0x07, 0xc5, 0xad, 0xb2, 0xa6, 0xe8, 0x13, 0x00, 0x64, 0x60, 0x63, - 0x6b, 0xa7, 0xb0, 0xaf, 0x25, 0xfc, 0xe3, 0xcd, 0xca, 0xfe, 0xf5, 0x55, 0x4d, 0xf5, 0x01, 0x07, - 0x74, 0x20, 0x29, 0x0a, 0x5c, 0x5b, 0xd1, 0x86, 0x75, 0x0d, 0x32, 0x94, 0x60, 0xf3, 0xe5, 0xf2, - 0xfa, 0xf5, 0x55, 0x6d, 0x44, 0x1e, 0xb9, 0xb6, 0xa2, 0x8d, 0xea, 0xe3, 0x30, 0x46, 0x46, 0x8a, - 0x3b, 0x3b, 0x5b, 0x5a, 0xca, 0xe7, 0xdc, 0xdb, 0x37, 0x36, 0x2b, 0x77, 0xb4, 0x31, 0x9f, 0xf3, - 0x8e, 0xb1, 0x73, 0xb0, 0xab, 0x81, 0xcf, 0xb0, 0x5d, 0xde, 0xdb, 0x2b, 0xdc, 0x29, 0x6b, 0x69, - 0x5f, 0xa2, 0x78, 0x6f, 0xbf, 0xbc, 0xa7, 0x65, 0x24, 0xb5, 0xae, 0xad, 0x68, 0xe3, 0xfe, 0x29, - 0xca, 0x95, 0x83, 0x6d, 0x6d, 0x42, 0x9f, 0x82, 0x71, 0x7a, 0x0a, 0xae, 0xc4, 0x64, 0x68, 0xe8, - 0xfa, 0xaa, 0xa6, 0x05, 0x8a, 0x50, 0x96, 0x29, 0x69, 0xe0, 0xfa, 0xaa, 0xa6, 0xe7, 0x4a, 0x30, - 0x4c, 0xa2, 0x4b, 0xd7, 0x61, 0x62, 0xab, 0x50, 0x2c, 0x6f, 0x55, 0x77, 0x76, 0xf7, 0x37, 0x77, - 0x2a, 0x85, 0x2d, 0x4d, 0x09, 0xc6, 0x8c, 0xf2, 0x27, 0x0e, 0x36, 0x8d, 0xf2, 0xba, 0x96, 0x10, - 0xc7, 0x76, 0xcb, 0x85, 0xfd, 0xf2, 0xba, 0xa6, 0xe6, 0x6a, 0x70, 0x2e, 0xaa, 0xce, 0x44, 0x66, - 0x86, 0xe0, 0xe2, 0x44, 0x0f, 0x17, 0x13, 0xae, 0x2e, 0x17, 0xff, 0xba, 0x02, 0xd3, 0x11, 0xb5, - 0x36, 0xf2, 0x24, 0x2f, 0xc0, 0x30, 0x0d, 0x51, 0xba, 0xfa, 0x3c, 0x13, 0x59, 0xb4, 0x49, 0xc0, - 0x76, 0xad, 0x40, 0x04, 0x27, 0xae, 0xc0, 0x6a, 0x8f, 0x15, 0x18, 0x53, 0x74, 0x29, 0xf9, 0x19, - 0x05, 0xb2, 0xbd, 0xb8, 0x63, 0x0a, 0x45, 0x42, 0x2a, 0x14, 0xb7, 0xc3, 0x0a, 0x5c, 0xec, 0x7d, - 0x0d, 0x5d, 0x5a, 0x7c, 0x55, 0x81, 0x99, 0xe8, 0x46, 0x25, 0x52, 0x87, 0xe7, 0x61, 0xa4, 0x89, - 0xbc, 0x13, 0x87, 0x2f, 0xd6, 0x97, 0x23, 0x96, 0x00, 0x3c, 0x1d, 0xb6, 0x15, 0x43, 0x89, 0x6b, - 0x88, 0xda, 0xab, 0xdb, 0xa0, 0xda, 0x74, 0x69, 0xfa, 0x2b, 0x09, 0x78, 0x24, 0x92, 0x3c, 0x52, - 0xd1, 0x27, 0x00, 0x2c, 0xbb, 0xd5, 0xf1, 0xe8, 0x82, 0x4c, 0xeb, 0xd3, 0x18, 0x19, 0x21, 0xb9, - 0x8f, 0x6b, 0x4f, 0xc7, 0xf3, 0xe7, 0x55, 0x32, 0x0f, 0x74, 0x88, 0x08, 0xdc, 0x0c, 0x14, 0x4d, - 0x12, 0x45, 0xe7, 0x7a, 0x5c, 0x69, 0xd7, 0x5a, 0xb7, 0x0c, 0x5a, 0xad, 0x61, 0x21, 0xdb, 0xab, - 0xba, 0x5e, 0x1b, 0x99, 0x4d, 0xcb, 0x3e, 0x26, 0x05, 0x38, 0x95, 0x1f, 0x3e, 0x32, 0x1b, 0x2e, - 0x32, 0x26, 0xe9, 0xf4, 0x1e, 0x9f, 0xc5, 0x08, 0xb2, 0xca, 0xb4, 0x05, 0xc4, 0x88, 0x84, 0xa0, - 0xd3, 0x3e, 0x22, 0xf7, 0xdb, 0xa3, 0x90, 0x16, 0xda, 0x3a, 0xfd, 0x22, 0x64, 0x5e, 0x31, 0x5f, - 0x33, 0xab, 0xbc, 0x55, 0xa7, 0x96, 0x48, 0xe3, 0xb1, 0x5d, 0xd6, 0xae, 0x2f, 0xc3, 0x39, 0x22, - 0xe2, 0x74, 0x3c, 0xd4, 0xae, 0xd6, 0x1a, 0xa6, 0xeb, 0x12, 0xa3, 0xa5, 0x88, 0xa8, 0x8e, 0xe7, - 0x76, 0xf0, 0x54, 0x89, 0xcf, 0xe8, 0x6b, 0x30, 0x4d, 0x10, 0xcd, 0x4e, 0xc3, 0xb3, 0x5a, 0x0d, - 0x54, 0xc5, 0x37, 0x0f, 0x2e, 0x29, 0xc4, 0xbe, 0x66, 0x53, 0x58, 0x62, 0x9b, 0x09, 0x60, 0x8d, - 0x5c, 0x7d, 0x1d, 0x9e, 0x20, 0xb0, 0x63, 0x64, 0xa3, 0xb6, 0xe9, 0xa1, 0x2a, 0xfa, 0xc5, 0x8e, - 0xd9, 0x70, 0xab, 0xa6, 0x5d, 0xaf, 0x9e, 0x98, 0xee, 0x49, 0xf6, 0x1c, 0x26, 0x28, 0x26, 0xb2, - 0x8a, 0xf1, 0x18, 0x16, 0xbc, 0xc3, 0xe4, 0xca, 0x44, 0xac, 0x60, 0xd7, 0x5f, 0x34, 0xdd, 0x13, - 0x3d, 0x0f, 0x33, 0x84, 0xc5, 0xf5, 0xda, 0x96, 0x7d, 0x5c, 0xad, 0x9d, 0xa0, 0xda, 0xab, 0xd5, - 0x8e, 0x77, 0x74, 0x33, 0xfb, 0xb8, 0x78, 0x7e, 0xa2, 0xe1, 0x1e, 0x91, 0x29, 0x61, 0x91, 0x03, - 0xef, 0xe8, 0xa6, 0xbe, 0x07, 0x19, 0xec, 0x8c, 0xa6, 0xf5, 0x69, 0x54, 0x3d, 0x72, 0xda, 0x64, - 0x65, 0x99, 0x88, 0xc8, 0x6c, 0xc1, 0x82, 0x4b, 0x3b, 0x0c, 0xb0, 0xed, 0xd4, 0x51, 0x7e, 0x78, - 0x6f, 0xb7, 0x5c, 0x5e, 0x37, 0xd2, 0x9c, 0x65, 0xc3, 0x69, 0xe3, 0x80, 0x3a, 0x76, 0x7c, 0x03, - 0xa7, 0x69, 0x40, 0x1d, 0x3b, 0xdc, 0xbc, 0x6b, 0x30, 0x5d, 0xab, 0xd1, 0x6b, 0xb6, 0x6a, 0x55, - 0xd6, 0xe2, 0xbb, 0x59, 0x4d, 0x32, 0x56, 0xad, 0x76, 0x87, 0x0a, 0xb0, 0x18, 0x77, 0xf5, 0x5b, - 0xf0, 0x48, 0x60, 0x2c, 0x11, 0x38, 0xd5, 0x75, 0x95, 0x61, 0xe8, 0x1a, 0x4c, 0xb7, 0x4e, 0xbb, - 0x81, 0xba, 0x74, 0xc6, 0xd6, 0x69, 0x18, 0xf6, 0x14, 0xb9, 0x6d, 0x6b, 0xa3, 0x9a, 0xe9, 0xa1, - 0x7a, 0xf6, 0x51, 0x51, 0x5a, 0x98, 0xd0, 0xaf, 0x80, 0x56, 0xab, 0x55, 0x91, 0x6d, 0x1e, 0x36, - 0x50, 0xd5, 0x6c, 0x23, 0xdb, 0x74, 0xb3, 0xf3, 0xa2, 0xf0, 0x44, 0xad, 0x56, 0x26, 0xb3, 0x05, - 0x32, 0xa9, 0x2f, 0xc2, 0x94, 0x73, 0xf8, 0x4a, 0x8d, 0x46, 0x56, 0xb5, 0xd5, 0x46, 0x47, 0xd6, - 0x1b, 0xd9, 0x4b, 0xc4, 0x4c, 0x93, 0x78, 0x82, 0xc4, 0xd5, 0x2e, 0x19, 0xd6, 0x9f, 0x01, 0xad, - 0xe6, 0x9e, 0x98, 0xed, 0x16, 0x59, 0xda, 0xdd, 0x96, 0x59, 0x43, 0xd9, 0xa7, 0xa8, 0x28, 0x1d, - 0xaf, 0xf0, 0x61, 0x1c, 0xd9, 0xee, 0xeb, 0xd6, 0x91, 0xc7, 0x19, 0x9f, 0xa6, 0x91, 0x4d, 0xc6, - 0x18, 0xdb, 0xcb, 0x70, 0xae, 0x63, 0x5b, 0xb6, 0x87, 0xda, 0xad, 0x36, 0xc2, 0x4d, 0x3c, 0xcd, - 0xc4, 0xec, 0xff, 0x18, 0xed, 0xd1, 0x86, 0x1f, 0x88, 0xd2, 0x34, 0x00, 0x8c, 0xe9, 0x4e, 0xf7, - 0x60, 0x2e, 0x0f, 0x19, 0x31, 0x2e, 0xf4, 0x31, 0xa0, 0x91, 0xa1, 0x29, 0x78, 0x8d, 0x2d, 0xed, - 0xac, 0xe3, 0xd5, 0xf1, 0x17, 0xca, 0x5a, 0x02, 0xaf, 0xd2, 0x5b, 0x9b, 0xfb, 0xe5, 0xaa, 0x71, - 0x50, 0xd9, 0xdf, 0xdc, 0x2e, 0x6b, 0xea, 0xe2, 0x58, 0xea, 0xfb, 0xa3, 0xda, 0x9b, 0x6f, 0xbe, - 0xf9, 0x66, 0x22, 0xf7, 0xad, 0x04, 0x4c, 0xc8, 0x9d, 0xb1, 0xfe, 0x31, 0x78, 0x94, 0xdf, 0xc6, - 0xba, 0xc8, 0xab, 0xbe, 0x6e, 0xb5, 0x49, 0xa8, 0x36, 0x4d, 0xda, 0x5b, 0xfa, 0x56, 0x3e, 0xc7, - 0xa4, 0xf6, 0x90, 0xf7, 0x92, 0xd5, 0xc6, 0x81, 0xd8, 0x34, 0x3d, 0x7d, 0x0b, 0xe6, 0x6d, 0xa7, - 0xea, 0x7a, 0xa6, 0x5d, 0x37, 0xdb, 0xf5, 0x6a, 0xb0, 0x81, 0x50, 0x35, 0x6b, 0x35, 0xe4, 0xba, - 0x0e, 0x5d, 0x22, 0x7c, 0x96, 0xf3, 0xb6, 0xb3, 0xc7, 0x84, 0x83, 0xda, 0x59, 0x60, 0xa2, 0xa1, - 0x88, 0x50, 0x7b, 0x45, 0xc4, 0xe3, 0x30, 0xd6, 0x34, 0x5b, 0x55, 0x64, 0x7b, 0xed, 0x53, 0xd2, - 0xcf, 0xa5, 0x8c, 0x54, 0xd3, 0x6c, 0x95, 0xf1, 0xf1, 0x87, 0xe7, 0x03, 0xd1, 0x8e, 0xff, 0x5d, - 0x85, 0x8c, 0xd8, 0xd3, 0xe1, 0x16, 0xb9, 0x46, 0xea, 0xb7, 0x42, 0x32, 0xfc, 0xc9, 0xbe, 0x1d, - 0xe0, 0x52, 0x09, 0x17, 0xf6, 0xfc, 0x08, 0xed, 0xb4, 0x0c, 0x8a, 0xc4, 0x8b, 0x2a, 0xce, 0x69, - 0x44, 0xfb, 0xf7, 0x94, 0xc1, 0x8e, 0xf4, 0x3b, 0x30, 0xf2, 0x8a, 0x4b, 0xb8, 0x47, 0x08, 0xf7, - 0xa5, 0xfe, 0xdc, 0x77, 0xf7, 0x08, 0xf9, 0xd8, 0xdd, 0xbd, 0x6a, 0x65, 0xc7, 0xd8, 0x2e, 0x6c, - 0x19, 0x0c, 0xae, 0x3f, 0x06, 0xc9, 0x86, 0xf9, 0xe9, 0x53, 0x79, 0x09, 0x20, 0x43, 0x83, 0x1a, - 0xfe, 0x31, 0x48, 0xbe, 0x8e, 0xcc, 0x57, 0xe5, 0xc2, 0x4b, 0x86, 0x3e, 0xc4, 0xd0, 0xbf, 0x02, - 0xc3, 0xc4, 0x5e, 0x3a, 0x00, 0xb3, 0x98, 0x36, 0xa4, 0xa7, 0x20, 0x59, 0xda, 0x31, 0x70, 0xf8, - 0x6b, 0x90, 0xa1, 0xa3, 0xd5, 0xdd, 0xcd, 0x72, 0xa9, 0xac, 0x25, 0x72, 0x6b, 0x30, 0x42, 0x8d, - 0x80, 0x53, 0xc3, 0x37, 0x83, 0x36, 0xc4, 0x0e, 0x19, 0x87, 0xc2, 0x67, 0x0f, 0xb6, 0x8b, 0x65, - 0x43, 0x4b, 0x88, 0xee, 0x75, 0x21, 0x23, 0xb6, 0x73, 0x3f, 0x99, 0x98, 0xfa, 0x7d, 0x05, 0xd2, - 0x42, 0x7b, 0x86, 0x1b, 0x03, 0xb3, 0xd1, 0x70, 0x5e, 0xaf, 0x9a, 0x0d, 0xcb, 0x74, 0x59, 0x50, - 0x00, 0x19, 0x2a, 0xe0, 0x91, 0x41, 0x9d, 0xf6, 0x13, 0x51, 0xfe, 0x4b, 0x0a, 0x68, 0xe1, 0xd6, - 0x2e, 0xa4, 0xa0, 0xf2, 0x53, 0x55, 0xf0, 0x0b, 0x0a, 0x4c, 0xc8, 0xfd, 0x5c, 0x48, 0xbd, 0x8b, - 0x3f, 0x55, 0xf5, 0xbe, 0x93, 0x80, 0x71, 0xa9, 0x8b, 0x1b, 0x54, 0xbb, 0x5f, 0x84, 0x29, 0xab, - 0x8e, 0x9a, 0x2d, 0xc7, 0x43, 0x76, 0xed, 0xb4, 0xda, 0x40, 0xaf, 0xa1, 0x46, 0x36, 0x47, 0x0a, - 0xc5, 0x95, 0xfe, 0x7d, 0xe2, 0xd2, 0x66, 0x80, 0xdb, 0xc2, 0xb0, 0xfc, 0xf4, 0xe6, 0x7a, 0x79, - 0x7b, 0x77, 0x67, 0xbf, 0x5c, 0x29, 0xdd, 0xab, 0x1e, 0x54, 0x3e, 0x5e, 0xd9, 0x79, 0xa9, 0x62, - 0x68, 0x56, 0x48, 0xec, 0x43, 0x4c, 0xf5, 0x5d, 0xd0, 0xc2, 0x4a, 0xe9, 0x8f, 0x42, 0x94, 0x5a, - 0xda, 0x90, 0x3e, 0x0d, 0x93, 0x95, 0x9d, 0xea, 0xde, 0xe6, 0x7a, 0xb9, 0x5a, 0xde, 0xd8, 0x28, - 0x97, 0xf6, 0xf7, 0xe8, 0x8d, 0xb3, 0x2f, 0xbd, 0x2f, 0x27, 0xf5, 0xe7, 0x55, 0x98, 0x8e, 0xd0, - 0x44, 0x2f, 0xb0, 0x9e, 0x9d, 0xde, 0x46, 0x3c, 0x3b, 0x88, 0xf6, 0x4b, 0xb8, 0x2b, 0xd8, 0x35, - 0xdb, 0x1e, 0x6b, 0xf1, 0x9f, 0x01, 0x6c, 0x25, 0xdb, 0xb3, 0x8e, 0x2c, 0xd4, 0x66, 0xfb, 0x0c, - 0xb4, 0x91, 0x9f, 0x0c, 0xc6, 0xe9, 0x56, 0xc3, 0x47, 0x41, 0x6f, 0x39, 0xae, 0xe5, 0x59, 0xaf, - 0xa1, 0xaa, 0x65, 0xf3, 0x4d, 0x09, 0xdc, 0xd8, 0x27, 0x0d, 0x8d, 0xcf, 0x6c, 0xda, 0x9e, 0x2f, - 0x6d, 0xa3, 0x63, 0x33, 0x24, 0x8d, 0x0b, 0xb8, 0x6a, 0x68, 0x7c, 0xc6, 0x97, 0xbe, 0x08, 0x99, - 0xba, 0xd3, 0xc1, 0x6d, 0x12, 0x95, 0xc3, 0xeb, 0x85, 0x62, 0xa4, 0xe9, 0x98, 0x2f, 0xc2, 0xfa, - 0xd8, 0x60, 0x37, 0x24, 0x63, 0xa4, 0xe9, 0x18, 0x15, 0x79, 0x1a, 0x26, 0xcd, 0xe3, 0xe3, 0x36, - 0x26, 0xe7, 0x44, 0xb4, 0x33, 0x9f, 0xf0, 0x87, 0x89, 0xe0, 0xec, 0x5d, 0x48, 0x71, 0x3b, 0xe0, - 0x25, 0x19, 0x5b, 0xa2, 0xda, 0xa2, 0x7b, 0x52, 0x89, 0x85, 0x31, 0x23, 0x65, 0xf3, 0xc9, 0x8b, - 0x90, 0xb1, 0xdc, 0x6a, 0xb0, 0x39, 0x9a, 0xb8, 0x90, 0x58, 0x48, 0x19, 0x69, 0xcb, 0xf5, 0x77, - 0xc3, 0x72, 0x5f, 0x4d, 0xc0, 0x84, 0xbc, 0xb9, 0xab, 0xaf, 0x43, 0xaa, 0xe1, 0xd4, 0x4c, 0x12, - 0x5a, 0xf4, 0xc9, 0xc2, 0x42, 0xcc, 0x7e, 0xf0, 0xd2, 0x16, 0x93, 0x37, 0x7c, 0xe4, 0xec, 0x7f, - 0x56, 0x20, 0xc5, 0x87, 0xf5, 0x19, 0x48, 0xb6, 0x4c, 0xef, 0x84, 0xd0, 0x0d, 0x17, 0x13, 0x9a, - 0x62, 0x90, 0x63, 0x3c, 0xee, 0xb6, 0x4c, 0x9b, 0x84, 0x00, 0x1b, 0xc7, 0xc7, 0xd8, 0xaf, 0x0d, - 0x64, 0xd6, 0x49, 0xdb, 0xef, 0x34, 0x9b, 0xc8, 0xf6, 0x5c, 0xee, 0x57, 0x36, 0x5e, 0x62, 0xc3, - 0xfa, 0x47, 0x60, 0xca, 0x6b, 0x9b, 0x56, 0x43, 0x92, 0x4d, 0x12, 0x59, 0x8d, 0x4f, 0xf8, 0xc2, - 0x79, 0x78, 0x8c, 0xf3, 0xd6, 0x91, 0x67, 0xd6, 0x4e, 0x50, 0x3d, 0x00, 0x8d, 0x90, 0x9d, 0xc3, - 0x47, 0x99, 0xc0, 0x3a, 0x9b, 0xe7, 0xd8, 0xdc, 0x1f, 0x2a, 0x30, 0xc5, 0x6f, 0x54, 0xea, 0xbe, - 0xb1, 0xb6, 0x01, 0x4c, 0xdb, 0x76, 0x3c, 0xd1, 0x5c, 0xdd, 0xa1, 0xdc, 0x85, 0x5b, 0x2a, 0xf8, - 0x20, 0x43, 0x20, 0x98, 0x6d, 0x02, 0x04, 0x33, 0x3d, 0xcd, 0x36, 0x0f, 0x69, 0xb6, 0x73, 0x4f, - 0x1e, 0xff, 0xd0, 0x5b, 0x5b, 0xa0, 0x43, 0xf8, 0x8e, 0x46, 0x3f, 0x07, 0xc3, 0x87, 0xe8, 0xd8, - 0xb2, 0xd9, 0x7e, 0x22, 0x3d, 0xe0, 0xbb, 0x94, 0x49, 0x7f, 0x97, 0xb2, 0xf8, 0x32, 0x4c, 0xd7, - 0x9c, 0x66, 0x58, 0xdd, 0xa2, 0x16, 0xba, 0xbd, 0x76, 0x5f, 0x54, 0x7e, 0x01, 0x82, 0x16, 0xf3, - 0xd7, 0x13, 0xea, 0x9d, 0xdd, 0xe2, 0x6f, 0x25, 0x66, 0xef, 0x50, 0xdc, 0x2e, 0xbf, 0x4c, 0x03, - 0x1d, 0x35, 0x50, 0x0d, 0xab, 0x0e, 0x7f, 0x72, 0x19, 0x9e, 0x3d, 0xb6, 0xbc, 0x93, 0xce, 0xe1, - 0x52, 0xcd, 0x69, 0x5e, 0x39, 0x76, 0x8e, 0x9d, 0xe0, 0x71, 0x17, 0x3e, 0x22, 0x07, 0xe4, 0x13, - 0x7b, 0xe4, 0x35, 0xe6, 0x8f, 0xce, 0xc6, 0x3e, 0x1f, 0xcb, 0x57, 0x60, 0x9a, 0x09, 0x57, 0xc9, - 0x9e, 0x3b, 0xbd, 0x35, 0xd0, 0xfb, 0xee, 0xbb, 0x64, 0x7f, 0xe7, 0x7b, 0x64, 0xad, 0x36, 0xa6, - 0x18, 0x14, 0xcf, 0xd1, 0x1b, 0x88, 0xbc, 0x01, 0x8f, 0x48, 0x7c, 0x34, 0x2f, 0x51, 0x3b, 0x86, - 0xf1, 0x5b, 0x8c, 0x71, 0x5a, 0x60, 0xdc, 0x63, 0xd0, 0x7c, 0x09, 0xc6, 0xcf, 0xc2, 0xf5, 0x1f, - 0x18, 0x57, 0x06, 0x89, 0x24, 0x77, 0x60, 0x92, 0x90, 0xd4, 0x3a, 0xae, 0xe7, 0x34, 0x49, 0xd1, - 0xeb, 0x4f, 0xf3, 0x1f, 0xbf, 0x47, 0x13, 0x65, 0x02, 0xc3, 0x4a, 0x3e, 0x2a, 0x9f, 0x07, 0xf2, - 0x98, 0xa1, 0x8e, 0x6a, 0x8d, 0x18, 0x86, 0xfb, 0x4c, 0x11, 0x5f, 0x3e, 0xff, 0x49, 0x38, 0x87, - 0x3f, 0x93, 0x9a, 0x24, 0x6a, 0x12, 0xbf, 0xcb, 0x94, 0xfd, 0xc3, 0xcf, 0xd0, 0x5c, 0x9c, 0xf6, - 0x09, 0x04, 0x9d, 0x04, 0x2f, 0x1e, 0x23, 0xcf, 0x43, 0x6d, 0xb7, 0x6a, 0x36, 0xa2, 0xd4, 0x13, - 0x6e, 0xd3, 0xb3, 0xbf, 0xf6, 0x03, 0xd9, 0x8b, 0x77, 0x28, 0xb2, 0xd0, 0x68, 0xe4, 0x0f, 0xe0, - 0xd1, 0x88, 0xa8, 0x18, 0x80, 0xf3, 0xf3, 0x8c, 0xf3, 0x5c, 0x57, 0x64, 0x60, 0xda, 0x5d, 0xe0, - 0xe3, 0xbe, 0x2f, 0x07, 0xe0, 0xfc, 0xc7, 0x8c, 0x53, 0x67, 0x58, 0xee, 0x52, 0xcc, 0x78, 0x17, - 0xa6, 0x5e, 0x43, 0xed, 0x43, 0xc7, 0x65, 0x5b, 0x23, 0x03, 0xd0, 0x7d, 0x81, 0xd1, 0x4d, 0x32, - 0x20, 0xd9, 0x2b, 0xc1, 0x5c, 0xb7, 0x20, 0x75, 0x64, 0xd6, 0xd0, 0x00, 0x14, 0x5f, 0x64, 0x14, - 0xa3, 0x58, 0x1e, 0x43, 0x0b, 0x90, 0x39, 0x76, 0xd8, 0xb2, 0x14, 0x0f, 0xff, 0x12, 0x83, 0xa7, - 0x39, 0x86, 0x51, 0xb4, 0x9c, 0x56, 0xa7, 0x81, 0xd7, 0xac, 0x78, 0x8a, 0x2f, 0x73, 0x0a, 0x8e, - 0x61, 0x14, 0x67, 0x30, 0xeb, 0x5b, 0x9c, 0xc2, 0x15, 0xec, 0xf9, 0x02, 0xa4, 0x1d, 0xbb, 0x71, - 0xea, 0xd8, 0x83, 0x28, 0xf1, 0x15, 0xc6, 0x00, 0x0c, 0x82, 0x09, 0x6e, 0xc3, 0xd8, 0xa0, 0x8e, - 0xf8, 0x8d, 0x1f, 0xf0, 0xf4, 0xe0, 0x1e, 0xb8, 0x03, 0x93, 0xbc, 0x40, 0x59, 0x8e, 0x3d, 0x00, - 0xc5, 0x3f, 0x65, 0x14, 0x13, 0x02, 0x8c, 0x5d, 0x86, 0x87, 0x5c, 0xef, 0x18, 0x0d, 0x42, 0xf2, - 0x55, 0x7e, 0x19, 0x0c, 0xc2, 0x4c, 0x79, 0x88, 0xec, 0xda, 0xc9, 0x60, 0x0c, 0x5f, 0xe3, 0xa6, - 0xe4, 0x18, 0x4c, 0x51, 0x82, 0xf1, 0xa6, 0xd9, 0x76, 0x4f, 0xcc, 0xc6, 0x40, 0xee, 0xf8, 0x4d, - 0xc6, 0x91, 0xf1, 0x41, 0xcc, 0x22, 0x1d, 0xfb, 0x2c, 0x34, 0xbf, 0xc5, 0x2d, 0x22, 0xc0, 0x58, - 0xea, 0xb9, 0x1e, 0xd9, 0x80, 0x3a, 0x0b, 0xdb, 0x6f, 0xf3, 0xd4, 0xa3, 0xd8, 0x6d, 0x91, 0xf1, - 0x36, 0x8c, 0xb9, 0xd6, 0xa7, 0x07, 0xa2, 0xf9, 0x67, 0xdc, 0xd3, 0x04, 0x80, 0xc1, 0xf7, 0xe0, - 0xb1, 0xc8, 0x65, 0x62, 0x00, 0xb2, 0x7f, 0xce, 0xc8, 0x66, 0x22, 0x96, 0x0a, 0x56, 0x12, 0xce, - 0x4a, 0xf9, 0x2f, 0x78, 0x49, 0x40, 0x21, 0xae, 0x5d, 0x7c, 0xa3, 0xe0, 0x9a, 0x47, 0x67, 0xb3, - 0xda, 0xbf, 0xe4, 0x56, 0xa3, 0x58, 0xc9, 0x6a, 0xfb, 0x30, 0xc3, 0x18, 0xcf, 0xe6, 0xd7, 0xaf, - 0xf3, 0xc2, 0x4a, 0xd1, 0x07, 0xb2, 0x77, 0x3f, 0x05, 0xb3, 0xbe, 0x39, 0x79, 0x47, 0xea, 0x56, - 0x9b, 0x66, 0x6b, 0x00, 0xe6, 0xdf, 0x61, 0xcc, 0xbc, 0xe2, 0xfb, 0x2d, 0xad, 0xbb, 0x6d, 0xb6, - 0x30, 0xf9, 0xcb, 0x90, 0xe5, 0xe4, 0x1d, 0xbb, 0x8d, 0x6a, 0xce, 0xb1, 0x6d, 0x7d, 0x1a, 0xd5, - 0x07, 0xa0, 0xfe, 0x46, 0xc8, 0x55, 0x07, 0x02, 0x1c, 0x33, 0x6f, 0x82, 0xe6, 0xf7, 0x2a, 0x55, - 0xab, 0xd9, 0x72, 0xda, 0x5e, 0x0c, 0xe3, 0xbf, 0xe2, 0x9e, 0xf2, 0x71, 0x9b, 0x04, 0x96, 0x2f, - 0xc3, 0x04, 0x39, 0x1c, 0x34, 0x24, 0x7f, 0x97, 0x11, 0x8d, 0x07, 0x28, 0x56, 0x38, 0x6a, 0x4e, - 0xb3, 0x65, 0xb6, 0x07, 0xa9, 0x7f, 0xff, 0x9a, 0x17, 0x0e, 0x06, 0x61, 0x85, 0xc3, 0x3b, 0x6d, - 0x21, 0xbc, 0xda, 0x0f, 0xc0, 0xf0, 0x4d, 0x5e, 0x38, 0x38, 0x86, 0x51, 0xf0, 0x86, 0x61, 0x00, - 0x8a, 0x7f, 0xc3, 0x29, 0x38, 0x06, 0x53, 0x7c, 0x22, 0x58, 0x68, 0xdb, 0xe8, 0xd8, 0x72, 0xbd, - 0x36, 0xed, 0x83, 0xfb, 0x53, 0xfd, 0xde, 0x0f, 0xe4, 0x26, 0xcc, 0x10, 0xa0, 0xf9, 0xbb, 0x30, - 0x19, 0x6a, 0x31, 0xf4, 0xb8, 0x77, 0x16, 0xb2, 0x7f, 0xe5, 0x47, 0xac, 0x18, 0xc9, 0x1d, 0x46, - 0x7e, 0x0b, 0xfb, 0x5d, 0xee, 0x03, 0xe2, 0xc9, 0x3e, 0xf3, 0x23, 0xdf, 0xf5, 0x52, 0x1b, 0x90, - 0xdf, 0x80, 0x71, 0xa9, 0x07, 0x88, 0xa7, 0xfa, 0xab, 0x8c, 0x2a, 0x23, 0xb6, 0x00, 0xf9, 0x35, - 0x48, 0xe2, 0xf5, 0x3c, 0x1e, 0xfe, 0xd7, 0x18, 0x9c, 0x88, 0xe7, 0x9f, 0x83, 0x14, 0x5f, 0xc7, - 0xe3, 0xa1, 0xbf, 0xcc, 0xa0, 0x3e, 0x04, 0xc3, 0xf9, 0x1a, 0x1e, 0x0f, 0xff, 0xeb, 0x1c, 0xce, - 0x21, 0x18, 0x3e, 0xb8, 0x09, 0xdf, 0xfe, 0x9b, 0x49, 0x56, 0x87, 0xb9, 0xed, 0x6e, 0xc3, 0x28, - 0x5b, 0xbc, 0xe3, 0xd1, 0xbf, 0xc2, 0x4e, 0xce, 0x11, 0xf9, 0x1b, 0x30, 0x3c, 0xa0, 0xc1, 0xff, - 0x16, 0x83, 0x52, 0xf9, 0x7c, 0x09, 0xd2, 0xc2, 0x82, 0x1d, 0x0f, 0xff, 0xdb, 0x0c, 0x2e, 0xa2, - 0xb0, 0xea, 0x6c, 0xc1, 0x8e, 0x27, 0xf8, 0x3b, 0x5c, 0x75, 0x86, 0xc0, 0x66, 0xe3, 0x6b, 0x75, - 0x3c, 0xfa, 0xef, 0x72, 0xab, 0x73, 0x48, 0xfe, 0x05, 0x18, 0xf3, 0xeb, 0x6f, 0x3c, 0xfe, 0xef, - 0x31, 0x7c, 0x80, 0xc1, 0x16, 0x10, 0xea, 0x7f, 0x3c, 0xc5, 0xdf, 0xe7, 0x16, 0x10, 0x50, 0x38, - 0x8d, 0xc2, 0x6b, 0x7a, 0x3c, 0xd3, 0xaf, 0xf2, 0x34, 0x0a, 0x2d, 0xe9, 0xd8, 0x9b, 0xa4, 0x0c, - 0xc6, 0x53, 0xfc, 0x03, 0xee, 0x4d, 0x22, 0x8f, 0xd5, 0x08, 0x2f, 0x92, 0xf1, 0x1c, 0xff, 0x88, - 0xab, 0x11, 0x5a, 0x23, 0xf3, 0xbb, 0xa0, 0x77, 0x2f, 0x90, 0xf1, 0x7c, 0x9f, 0x63, 0x7c, 0x53, - 0x5d, 0xeb, 0x63, 0xfe, 0x25, 0x98, 0x89, 0x5e, 0x1c, 0xe3, 0x59, 0x7f, 0xed, 0x47, 0xa1, 0xdb, - 0x19, 0x71, 0x6d, 0xcc, 0xef, 0x07, 0x55, 0x56, 0x5c, 0x18, 0xe3, 0x69, 0x3f, 0xff, 0x23, 0xb9, - 0xd0, 0x8a, 0xeb, 0x62, 0xbe, 0x00, 0x10, 0xac, 0x49, 0xf1, 0x5c, 0x5f, 0x60, 0x5c, 0x02, 0x08, - 0xa7, 0x06, 0x5b, 0x92, 0xe2, 0xf1, 0x5f, 0xe4, 0xa9, 0xc1, 0x10, 0x38, 0x35, 0xf8, 0x6a, 0x14, - 0x8f, 0xfe, 0x12, 0x4f, 0x0d, 0x0e, 0xc9, 0xdf, 0x86, 0x94, 0xdd, 0x69, 0x34, 0x70, 0x6c, 0xe9, - 0xfd, 0x5f, 0x23, 0xca, 0xfe, 0xcf, 0x1f, 0x33, 0x30, 0x07, 0xe4, 0xd7, 0x60, 0x18, 0x35, 0x0f, - 0x51, 0x3d, 0x0e, 0xf9, 0xbf, 0x7e, 0xcc, 0xeb, 0x09, 0x96, 0xce, 0xbf, 0x00, 0x40, 0x6f, 0xa6, - 0xc9, 0x53, 0xa2, 0x18, 0xec, 0xff, 0xfe, 0x31, 0x7b, 0x43, 0x21, 0x80, 0x04, 0x04, 0xf4, 0x7d, - 0x87, 0xfe, 0x04, 0x3f, 0x90, 0x09, 0xc8, 0x0d, 0xf8, 0x2d, 0x18, 0x7d, 0xc5, 0x75, 0x6c, 0xcf, - 0x3c, 0x8e, 0x43, 0xff, 0x11, 0x43, 0x73, 0x79, 0x6c, 0xb0, 0xa6, 0xd3, 0x46, 0x9e, 0x79, 0xec, - 0xc6, 0x61, 0xff, 0x0f, 0xc3, 0xfa, 0x00, 0x0c, 0xae, 0x99, 0xae, 0x37, 0xc8, 0x75, 0xff, 0x5f, - 0x0e, 0xe6, 0x00, 0xac, 0x34, 0xfe, 0xfc, 0x2a, 0x3a, 0x8d, 0xc3, 0xfe, 0x90, 0x2b, 0xcd, 0xe4, - 0xf3, 0xcf, 0xc1, 0x18, 0xfe, 0x48, 0xdf, 0xda, 0x89, 0x01, 0xff, 0x31, 0x03, 0x07, 0x08, 0x7c, - 0x66, 0xd7, 0xab, 0x7b, 0x56, 0xbc, 0xb1, 0xff, 0x1f, 0xf3, 0x34, 0x97, 0xcf, 0x17, 0x20, 0xed, - 0x7a, 0xf5, 0x7a, 0x87, 0x75, 0x34, 0x31, 0xf0, 0x3f, 0xf9, 0xb1, 0x7f, 0x93, 0xeb, 0x63, 0x8a, - 0x17, 0xa3, 0x37, 0xeb, 0xe0, 0x8e, 0x73, 0xc7, 0xa1, 0xdb, 0x74, 0xf0, 0xbd, 0x06, 0xdc, 0xe8, - 0xb9, 0xeb, 0x86, 0x17, 0x91, 0x2b, 0x35, 0xa7, 0x79, 0xe8, 0xb8, 0x57, 0x0e, 0x1d, 0xef, 0xe4, - 0x8a, 0x77, 0x82, 0xf0, 0x18, 0xdb, 0x7f, 0x4b, 0xe2, 0xcf, 0xb3, 0x67, 0xdb, 0xb4, 0x23, 0xcf, - 0x63, 0x2b, 0x16, 0xd6, 0xbb, 0x42, 0xb6, 0xc4, 0xf5, 0xf3, 0x30, 0x42, 0xae, 0xe4, 0x2a, 0x79, - 0xec, 0xa4, 0x14, 0x93, 0xf7, 0xdf, 0x9d, 0x1f, 0x32, 0xd8, 0x98, 0x3f, 0xbb, 0x42, 0xf6, 0x2c, - 0x13, 0xd2, 0xec, 0x8a, 0x3f, 0x7b, 0x8d, 0x6e, 0x5b, 0x4a, 0xb3, 0xd7, 0xfc, 0xd9, 0x55, 0xb2, - 0x81, 0xa9, 0x4a, 0xb3, 0xab, 0xfe, 0xec, 0x1a, 0xd9, 0xa4, 0x1f, 0x97, 0x66, 0xd7, 0xfc, 0xd9, - 0xeb, 0x64, 0x6b, 0x3e, 0x29, 0xcd, 0x5e, 0xf7, 0x67, 0x6f, 0x90, 0x5d, 0xf9, 0x29, 0x69, 0xf6, - 0x86, 0x3f, 0x7b, 0x93, 0xec, 0xc6, 0xeb, 0xd2, 0xec, 0x4d, 0x7f, 0xf6, 0x16, 0x79, 0xc5, 0x64, - 0x54, 0x9a, 0xbd, 0xa5, 0xcf, 0xc1, 0x28, 0xbd, 0xf2, 0x65, 0xf2, 0xe8, 0x76, 0x92, 0x4d, 0xf3, - 0xc1, 0x60, 0xfe, 0x2a, 0x79, 0x9d, 0x64, 0x44, 0x9e, 0xbf, 0x1a, 0xcc, 0xaf, 0x90, 0x17, 0xab, - 0x35, 0x79, 0x7e, 0x25, 0x98, 0xbf, 0x96, 0x1d, 0x27, 0xaf, 0xd4, 0x48, 0xf3, 0xd7, 0x82, 0xf9, - 0xd5, 0xec, 0x04, 0x0e, 0x66, 0x79, 0x7e, 0x35, 0x98, 0x5f, 0xcb, 0x4e, 0x5e, 0x50, 0x16, 0x32, - 0xf2, 0xfc, 0x5a, 0xee, 0x97, 0x88, 0x7b, 0xed, 0xc0, 0xbd, 0x33, 0xb2, 0x7b, 0x7d, 0xc7, 0xce, - 0xc8, 0x8e, 0xf5, 0x5d, 0x3a, 0x23, 0xbb, 0xd4, 0x77, 0xe6, 0x8c, 0xec, 0x4c, 0xdf, 0x8d, 0x33, - 0xb2, 0x1b, 0x7d, 0x07, 0xce, 0xc8, 0x0e, 0xf4, 0x5d, 0x37, 0x23, 0xbb, 0xce, 0x77, 0xda, 0x8c, - 0xec, 0x34, 0xdf, 0x5d, 0x33, 0xb2, 0xbb, 0x7c, 0x47, 0x65, 0x43, 0x8e, 0x0a, 0x5c, 0x94, 0x0d, - 0xb9, 0x28, 0x70, 0x4e, 0x36, 0xe4, 0x9c, 0xc0, 0x2d, 0xd9, 0x90, 0x5b, 0x02, 0x87, 0x64, 0x43, - 0x0e, 0x09, 0x5c, 0x91, 0x0d, 0xb9, 0x22, 0x70, 0x02, 0xcb, 0x31, 0x03, 0xb5, 0x22, 0x72, 0x4c, - 0xed, 0x9b, 0x63, 0x6a, 0xdf, 0x1c, 0x53, 0xfb, 0xe6, 0x98, 0xda, 0x37, 0xc7, 0xd4, 0xbe, 0x39, - 0xa6, 0xf6, 0xcd, 0x31, 0xb5, 0x6f, 0x8e, 0xa9, 0x7d, 0x73, 0x4c, 0xed, 0x9f, 0x63, 0x6a, 0x4c, - 0x8e, 0xa9, 0x31, 0x39, 0xa6, 0xc6, 0xe4, 0x98, 0x1a, 0x93, 0x63, 0x6a, 0x4c, 0x8e, 0xa9, 0x3d, - 0x73, 0x2c, 0x70, 0xef, 0x8c, 0xec, 0xde, 0xc8, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, - 0xd4, 0x1e, 0x39, 0xa6, 0xf6, 0xc8, 0x31, 0xb5, 0x47, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, - 0x63, 0x6a, 0xaf, 0x1c, 0x53, 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x9e, 0x39, 0xa6, 0xf6, - 0xcc, 0x31, 0xb5, 0x67, 0x8e, 0xa9, 0x62, 0x8e, 0xfd, 0x5b, 0x15, 0x74, 0x9a, 0x63, 0xbb, 0xe4, - 0xe5, 0x1f, 0xe6, 0x8a, 0xb9, 0x50, 0xa6, 0x8d, 0x60, 0xd7, 0x69, 0x81, 0x4b, 0xe6, 0x42, 0xb9, - 0x26, 0xcf, 0xaf, 0xf8, 0xf3, 0x3c, 0xdb, 0xe4, 0xf9, 0x6b, 0xfe, 0x3c, 0xcf, 0x37, 0x79, 0x7e, - 0xd5, 0x9f, 0xe7, 0x19, 0x27, 0xcf, 0xaf, 0xf9, 0xf3, 0x3c, 0xe7, 0xe4, 0xf9, 0xeb, 0xfe, 0x3c, - 0xcf, 0x3a, 0x79, 0xfe, 0x86, 0x3f, 0xcf, 0xf3, 0x4e, 0x9e, 0xbf, 0xe9, 0xcf, 0xf3, 0xcc, 0x93, - 0xe7, 0x6f, 0xe9, 0x17, 0xc2, 0xb9, 0xc7, 0x05, 0x7c, 0xd7, 0x5e, 0x08, 0x67, 0x5f, 0x48, 0xe2, - 0x6a, 0x20, 0xc1, 0xf3, 0x2f, 0x24, 0xb1, 0x12, 0x48, 0xf0, 0x0c, 0x0c, 0x49, 0x5c, 0xcb, 0x7d, - 0x96, 0xb8, 0xcf, 0x0e, 0xbb, 0x6f, 0x36, 0xe4, 0xbe, 0x84, 0xe0, 0xba, 0xd9, 0x90, 0xeb, 0x12, - 0x82, 0xdb, 0x66, 0x43, 0x6e, 0x4b, 0x08, 0x2e, 0x9b, 0x0d, 0xb9, 0x2c, 0x21, 0xb8, 0x6b, 0x36, - 0xe4, 0xae, 0x84, 0xe0, 0xaa, 0xd9, 0x90, 0xab, 0x12, 0x82, 0x9b, 0x66, 0x43, 0x6e, 0x4a, 0x08, - 0x2e, 0x9a, 0x0d, 0xb9, 0x28, 0x21, 0xb8, 0x67, 0x36, 0xe4, 0x9e, 0x84, 0xe0, 0x9a, 0xf3, 0x61, - 0xd7, 0x24, 0x44, 0xb7, 0x9c, 0x0f, 0xbb, 0x25, 0x21, 0xba, 0xe4, 0x7c, 0xd8, 0x25, 0x09, 0xd1, - 0x1d, 0xe7, 0xc3, 0xee, 0x48, 0x88, 0xae, 0xf8, 0xf3, 0x04, 0xef, 0x08, 0xf7, 0xbc, 0x76, 0xa7, - 0xe6, 0xbd, 0xaf, 0x8e, 0x70, 0x59, 0x6a, 0x1f, 0xd2, 0x2b, 0xfa, 0x12, 0x69, 0x58, 0xc5, 0x8e, - 0x33, 0xb4, 0x82, 0x2d, 0x4b, 0x8d, 0x85, 0x80, 0xb0, 0xa3, 0x11, 0xab, 0xef, 0xab, 0x37, 0x5c, - 0x96, 0xda, 0x8c, 0x78, 0xfd, 0x6e, 0x7e, 0xe8, 0x1d, 0xdb, 0xdb, 0x09, 0xde, 0xb1, 0x31, 0xf3, - 0x9f, 0xb5, 0x63, 0x5b, 0x8c, 0x37, 0xb9, 0x6f, 0xec, 0xc5, 0x78, 0x63, 0x77, 0xad, 0x3a, 0x83, - 0x76, 0x70, 0x8b, 0xf1, 0xa6, 0xf5, 0x8d, 0xfa, 0xc1, 0xf6, 0x5b, 0x2c, 0x82, 0x0d, 0xd4, 0x8a, - 0x88, 0xe0, 0xb3, 0xf6, 0x5b, 0xcb, 0x52, 0x29, 0x39, 0x6b, 0x04, 0xab, 0x67, 0x8e, 0xe0, 0xb3, - 0x76, 0x5e, 0xcb, 0x52, 0x79, 0x39, 0x73, 0x04, 0x7f, 0x08, 0xfd, 0x10, 0x8b, 0xe0, 0xc0, 0xfc, - 0x67, 0xed, 0x87, 0x16, 0xe3, 0x4d, 0x1e, 0x19, 0xc1, 0xea, 0x19, 0x22, 0x78, 0x90, 0xfe, 0x68, - 0x31, 0xde, 0xb4, 0xd1, 0x11, 0xfc, 0xbe, 0xbb, 0x99, 0x2f, 0x2b, 0x30, 0x55, 0xb1, 0xea, 0xe5, - 0xe6, 0x21, 0xaa, 0xd7, 0x51, 0x9d, 0xd9, 0x71, 0x59, 0xaa, 0x04, 0x3d, 0x5c, 0xfd, 0xce, 0xbb, - 0xf3, 0x81, 0x85, 0xd7, 0x20, 0x45, 0x6d, 0xba, 0xbc, 0x9c, 0xbd, 0xaf, 0xc4, 0x54, 0x38, 0x5f, - 0x54, 0xbf, 0xc8, 0x61, 0x57, 0x97, 0xb3, 0xff, 0x45, 0x11, 0xaa, 0x9c, 0x3f, 0x9c, 0xfb, 0x55, - 0xa2, 0xa1, 0xfd, 0xbe, 0x35, 0xbc, 0x32, 0x90, 0x86, 0x82, 0x6e, 0x8f, 0x77, 0xe9, 0x26, 0x68, - 0xd5, 0x81, 0xc9, 0x8a, 0x55, 0xaf, 0x90, 0xaf, 0xf4, 0x0e, 0xa2, 0x12, 0x95, 0x09, 0xd5, 0x83, - 0x65, 0x29, 0x2c, 0x45, 0x84, 0x1f, 0xd2, 0x72, 0x8d, 0xc8, 0x59, 0xf8, 0xb4, 0xb6, 0x74, 0xda, - 0xc5, 0x5e, 0xa7, 0x0d, 0x2a, 0xbb, 0x7f, 0xc2, 0xc5, 0x5e, 0x27, 0x0c, 0x72, 0xc8, 0x3f, 0xd5, - 0x1b, 0x7c, 0x71, 0xa6, 0x6f, 0xe1, 0xe8, 0xe7, 0x21, 0xb1, 0x49, 0xdf, 0x10, 0xce, 0x14, 0x33, - 0x58, 0xa9, 0x6f, 0xbf, 0x3b, 0x9f, 0x3c, 0xe8, 0x58, 0x75, 0x23, 0xb1, 0x59, 0xd7, 0xef, 0xc2, - 0xf0, 0x27, 0xd9, 0x17, 0xe3, 0xb0, 0xc0, 0x2a, 0x13, 0xf8, 0x68, 0xcc, 0x16, 0x13, 0xa1, 0x5e, - 0x3a, 0xb0, 0x6c, 0xef, 0xea, 0xca, 0x4d, 0x83, 0x52, 0xe4, 0xfe, 0x22, 0x00, 0x3d, 0xe7, 0xba, - 0xe9, 0x9e, 0xe8, 0x15, 0xce, 0x4c, 0x4f, 0x7d, 0xf3, 0xdb, 0xef, 0xce, 0xaf, 0x0e, 0xc2, 0xfa, - 0x6c, 0xdd, 0x74, 0x4f, 0x9e, 0xf5, 0x4e, 0x5b, 0x68, 0xa9, 0x78, 0xea, 0x21, 0x97, 0xb3, 0xb7, - 0xf8, 0xaa, 0xc7, 0xae, 0x2b, 0x2b, 0x5c, 0x57, 0x4a, 0xba, 0xa6, 0x0d, 0xf9, 0x9a, 0x96, 0x1f, - 0xf6, 0x7a, 0xde, 0xe0, 0x8b, 0x44, 0xc8, 0x92, 0x6a, 0x9c, 0x25, 0xd5, 0xf7, 0x6b, 0xc9, 0x16, - 0xaf, 0x8f, 0xa1, 0x6b, 0x55, 0xfb, 0x5d, 0xab, 0xfa, 0x7e, 0xae, 0xf5, 0x4f, 0x69, 0xb6, 0xfa, - 0xf9, 0x74, 0x60, 0xd3, 0xb7, 0x13, 0x7f, 0xb6, 0xf6, 0x82, 0x3e, 0xd0, 0x2e, 0x20, 0x9f, 0xbc, - 0xff, 0xd6, 0xbc, 0x92, 0xfb, 0x72, 0x82, 0x5f, 0x39, 0x4d, 0xa4, 0x87, 0xbb, 0xf2, 0x9f, 0x95, - 0x9e, 0xea, 0xc3, 0xb0, 0xd0, 0x97, 0x14, 0x98, 0xe9, 0xaa, 0xe4, 0xd4, 0x4c, 0x1f, 0x6c, 0x39, - 0xb7, 0xcf, 0x5a, 0xce, 0x99, 0x82, 0xbf, 0xab, 0xc0, 0xb9, 0x50, 0x79, 0xa5, 0xea, 0x5d, 0x09, - 0xa9, 0xf7, 0x68, 0xf7, 0x99, 0x88, 0xa0, 0xa0, 0x9d, 0xe8, 0xde, 0x10, 0x40, 0x60, 0xf6, 0xfd, - 0xbe, 0x1a, 0xf2, 0xfb, 0x79, 0x1f, 0x10, 0x61, 0x2e, 0x1e, 0x01, 0x4c, 0x6d, 0x07, 0x92, 0xfb, - 0x6d, 0x84, 0xf4, 0x39, 0x48, 0xec, 0xb4, 0x99, 0x86, 0x13, 0x14, 0xbf, 0xd3, 0x2e, 0xb6, 0x4d, - 0xbb, 0x76, 0x62, 0x24, 0x76, 0xda, 0xfa, 0x45, 0x50, 0x0b, 0xec, 0xa7, 0x07, 0xd2, 0x2b, 0x93, - 0x54, 0xa0, 0x60, 0xd7, 0x99, 0x04, 0x9e, 0xd3, 0xe7, 0x20, 0xb9, 0x85, 0xcc, 0x23, 0xa6, 0x04, - 0x50, 0x19, 0x3c, 0x62, 0x90, 0x71, 0x76, 0xc2, 0x97, 0x21, 0xc5, 0x89, 0xf5, 0x4b, 0x18, 0x71, - 0xe4, 0xb1, 0xd3, 0x32, 0x04, 0x56, 0x87, 0xad, 0x5c, 0x64, 0x56, 0xbf, 0x0c, 0xc3, 0x86, 0x75, - 0x7c, 0xe2, 0xb1, 0x93, 0x77, 0x8b, 0xd1, 0xe9, 0xdc, 0x3d, 0x18, 0xf3, 0x35, 0xfa, 0x80, 0xa9, - 0xd7, 0xe9, 0xa5, 0xe9, 0xb3, 0xe2, 0x7a, 0xc2, 0xf7, 0x2d, 0xe9, 0x90, 0x7e, 0x01, 0x52, 0x7b, - 0x5e, 0x3b, 0x28, 0xfa, 0xbc, 0x23, 0xf5, 0x47, 0x73, 0xbf, 0xa4, 0x40, 0x6a, 0x1d, 0xa1, 0x16, - 0x31, 0xf8, 0x53, 0x90, 0x5c, 0x77, 0x5e, 0xb7, 0x99, 0x82, 0x53, 0xcc, 0xa2, 0x78, 0x9a, 0xd9, - 0x94, 0x4c, 0xeb, 0x4f, 0x89, 0x76, 0x9f, 0xf6, 0xed, 0x2e, 0xc8, 0x11, 0xdb, 0xe7, 0x24, 0xdb, - 0x33, 0x07, 0x62, 0xa1, 0x2e, 0xfb, 0xdf, 0x80, 0xb4, 0x70, 0x16, 0x7d, 0x81, 0xa9, 0x91, 0x08, - 0x03, 0x45, 0x5b, 0x61, 0x89, 0x1c, 0x82, 0x71, 0xe9, 0xc4, 0x18, 0x2a, 0x98, 0xb8, 0x07, 0x94, - 0x98, 0x79, 0x51, 0x36, 0x73, 0xb4, 0x28, 0x33, 0xf5, 0x32, 0xb5, 0x11, 0x31, 0xf7, 0x25, 0x1a, - 0x9c, 0xbd, 0x9d, 0x88, 0x3f, 0xe7, 0x86, 0x41, 0xad, 0x58, 0x8d, 0xdc, 0x73, 0x00, 0x34, 0xe5, - 0xcb, 0x76, 0xa7, 0x19, 0xca, 0xba, 0x09, 0x6e, 0xe0, 0xfd, 0x13, 0xb4, 0x8f, 0x5c, 0x22, 0x22, - 0xf7, 0x53, 0xb8, 0xc0, 0x00, 0x4d, 0x31, 0x82, 0x7f, 0x26, 0x16, 0x1f, 0xd9, 0x89, 0x61, 0xd1, - 0x2c, 0x15, 0xbd, 0x87, 0xbc, 0x82, 0xed, 0x78, 0x27, 0xa8, 0x1d, 0x42, 0xac, 0xe8, 0xd7, 0xa4, - 0x84, 0x9d, 0x58, 0x79, 0xdc, 0x47, 0xf4, 0x04, 0x5d, 0xcb, 0x7d, 0x9d, 0x28, 0x88, 0x5b, 0x81, - 0xae, 0x0b, 0x54, 0x07, 0xb8, 0x40, 0xfd, 0xba, 0xd4, 0xbf, 0xf5, 0x51, 0x33, 0x74, 0x6b, 0x79, - 0x4b, 0xba, 0xcf, 0xe9, 0xaf, 0xac, 0x7c, 0x8f, 0xc9, 0x6d, 0xca, 0x55, 0x7e, 0x26, 0x56, 0xe5, - 0x1e, 0xdd, 0xed, 0x59, 0x6d, 0xaa, 0x0e, 0x6a, 0xd3, 0xdf, 0xf7, 0x3b, 0x0e, 0xfa, 0x23, 0x0e, - 0xe4, 0x37, 0x43, 0xf4, 0x8f, 0xc6, 0xfa, 0x3e, 0xaf, 0x94, 0x7c, 0x55, 0x57, 0x07, 0x75, 0x7f, - 0x3e, 0x51, 0x2c, 0xfa, 0xea, 0xde, 0x38, 0x43, 0x08, 0xe4, 0x13, 0xa5, 0x92, 0x5f, 0xb6, 0x53, - 0x9f, 0x7d, 0x6b, 0x5e, 0xf9, 0xda, 0x5b, 0xf3, 0x43, 0xb9, 0xdf, 0x54, 0x60, 0x8a, 0x49, 0x0a, - 0x81, 0xfb, 0x6c, 0x48, 0xf9, 0x47, 0x78, 0xcd, 0x88, 0xb2, 0xc0, 0x4f, 0x2c, 0x78, 0xbf, 0xa5, - 0x40, 0xb6, 0x4b, 0x57, 0x6e, 0xef, 0xe5, 0x81, 0x54, 0xce, 0x2b, 0xe5, 0x9f, 0xbe, 0xcd, 0xef, - 0xc1, 0xf0, 0xbe, 0xd5, 0x44, 0x6d, 0xbc, 0x12, 0xe0, 0x0f, 0x54, 0x65, 0xfe, 0x30, 0x87, 0x0e, - 0xf1, 0x39, 0xaa, 0x9c, 0x34, 0xb7, 0xa2, 0x67, 0x21, 0xb9, 0x6e, 0x7a, 0x26, 0xd1, 0x20, 0xe3, - 0xd7, 0x57, 0xd3, 0x33, 0x73, 0xd7, 0x20, 0xb3, 0x7d, 0x4a, 0x5e, 0xa1, 0xa9, 0x93, 0xd7, 0x43, - 0xe4, 0xee, 0x8f, 0xf7, 0xab, 0x57, 0x17, 0x87, 0x53, 0x75, 0xed, 0xbe, 0x92, 0x4f, 0x12, 0x7d, - 0x5e, 0x83, 0x89, 0x1d, 0xac, 0x36, 0xc1, 0x11, 0xd8, 0x05, 0x50, 0xb6, 0xe5, 0x46, 0x48, 0x64, - 0x35, 0x94, 0xed, 0x50, 0xfb, 0xa8, 0xfa, 0xe6, 0x09, 0xb5, 0x6d, 0xaa, 0xdf, 0xb6, 0x2d, 0x26, - 0x53, 0x13, 0xda, 0xd4, 0x62, 0x32, 0x05, 0xda, 0x38, 0x3b, 0xef, 0x7f, 0x52, 0x41, 0xa3, 0xad, - 0xce, 0x3a, 0x3a, 0xb2, 0x6c, 0xcb, 0xeb, 0xee, 0x57, 0x7d, 0x8d, 0xf5, 0x17, 0x60, 0x0c, 0x9b, - 0x74, 0x83, 0xfd, 0xf4, 0x16, 0x36, 0xfd, 0x45, 0xd6, 0xa2, 0x84, 0x28, 0xd8, 0x00, 0x09, 0x9d, - 0x00, 0xa3, 0x6f, 0x80, 0x5a, 0xa9, 0x6c, 0xb3, 0xc5, 0x6d, 0xb5, 0x2f, 0x94, 0xbd, 0x81, 0xc3, - 0x8e, 0xd8, 0x98, 0x7b, 0x6c, 0x60, 0x02, 0x7d, 0x15, 0x12, 0x95, 0x6d, 0xd6, 0xf0, 0x5e, 0x1a, - 0x84, 0xc6, 0x48, 0x54, 0xb6, 0x67, 0xff, 0x9d, 0x02, 0xe3, 0xd2, 0xa8, 0x9e, 0x83, 0x0c, 0x1d, - 0x10, 0x2e, 0x77, 0xc4, 0x90, 0xc6, 0xb8, 0xce, 0x89, 0xf7, 0xa9, 0xf3, 0x6c, 0x01, 0x26, 0x43, - 0xe3, 0xfa, 0x12, 0xe8, 0xe2, 0x10, 0x53, 0x82, 0xfe, 0x6c, 0x51, 0xc4, 0x4c, 0xee, 0x09, 0x80, - 0xc0, 0xae, 0xfe, 0xaf, 0xed, 0x54, 0xca, 0x7b, 0xfb, 0xe5, 0x75, 0x4d, 0xc9, 0x7d, 0x53, 0x81, - 0x34, 0x6b, 0x5b, 0x6b, 0x4e, 0x0b, 0xe9, 0x45, 0x50, 0x0a, 0x2c, 0x82, 0x1e, 0x4e, 0x6f, 0xa5, - 0xa0, 0x5f, 0x01, 0xa5, 0x38, 0xb8, 0xab, 0x95, 0xa2, 0xbe, 0x02, 0x4a, 0x89, 0x39, 0x78, 0x30, - 0xcf, 0x28, 0xa5, 0xdc, 0x1f, 0xab, 0x30, 0x2d, 0xb6, 0xd1, 0xbc, 0x9e, 0x5c, 0x94, 0xef, 0x9b, - 0xf2, 0x63, 0x57, 0x57, 0xae, 0xad, 0x2e, 0xe1, 0x7f, 0xfc, 0x90, 0xbc, 0x28, 0xdf, 0x42, 0x75, - 0x8b, 0x74, 0xbd, 0x26, 0x92, 0x4f, 0x0a, 0xb3, 0x5d, 0xaf, 0x89, 0x48, 0xb3, 0x5d, 0xaf, 0x89, - 0x48, 0xb3, 0x5d, 0xaf, 0x89, 0x48, 0xb3, 0x5d, 0x8f, 0x02, 0xa4, 0xd9, 0xae, 0xd7, 0x44, 0xa4, - 0xd9, 0xae, 0xd7, 0x44, 0xa4, 0xd9, 0xee, 0xd7, 0x44, 0xd8, 0x74, 0xcf, 0xd7, 0x44, 0xe4, 0xf9, - 0xee, 0xd7, 0x44, 0xe4, 0xf9, 0xee, 0xd7, 0x44, 0xf2, 0x49, 0xaf, 0xdd, 0x41, 0xbd, 0x1f, 0x3a, - 0xc8, 0xf8, 0x7e, 0xf7, 0x80, 0x41, 0x01, 0xde, 0x81, 0x49, 0xba, 0x1f, 0x51, 0x72, 0x6c, 0xcf, - 0xb4, 0x6c, 0xd4, 0xd6, 0x3f, 0x06, 0x19, 0x3a, 0x44, 0xef, 0x72, 0xa2, 0xee, 0x02, 0xe9, 0x3c, - 0x2b, 0xb7, 0x92, 0x74, 0xee, 0xcf, 0x93, 0x30, 0x43, 0x07, 0x2a, 0x66, 0x13, 0x49, 0x2f, 0x19, - 0x5d, 0x0e, 0x3d, 0x52, 0x9a, 0xc0, 0xf0, 0x07, 0xef, 0xce, 0xd3, 0xd1, 0x82, 0x1f, 0x4c, 0x97, - 0x43, 0x0f, 0x97, 0x64, 0xb9, 0x60, 0xfd, 0xb9, 0x1c, 0x7a, 0xf1, 0x48, 0x96, 0xf3, 0x97, 0x1b, - 0x5f, 0x8e, 0xbf, 0x82, 0x24, 0xcb, 0xad, 0xfb, 0x51, 0x76, 0x39, 0xf4, 0x32, 0x92, 0x2c, 0x57, - 0xf6, 0xe3, 0xed, 0x72, 0xe8, 0xd1, 0x93, 0x2c, 0xb7, 0xe1, 0x47, 0xde, 0xe5, 0xd0, 0x43, 0x28, - 0x59, 0xee, 0x8e, 0x1f, 0x83, 0x97, 0x43, 0xaf, 0x2a, 0xc9, 0x72, 0x2f, 0xfa, 0xd1, 0x78, 0x39, - 0xf4, 0xd2, 0x92, 0x2c, 0xb7, 0xe9, 0xc7, 0xe5, 0x42, 0xf8, 0xf5, 0x25, 0x59, 0xf0, 0x6e, 0x10, - 0xa1, 0x0b, 0xe1, 0x17, 0x99, 0x64, 0xc9, 0x8f, 0x07, 0xb1, 0xba, 0x10, 0x7e, 0xa5, 0x49, 0x96, - 0xdc, 0x0a, 0xa2, 0x76, 0x21, 0xfc, 0xa8, 0x4c, 0x96, 0xdc, 0x0e, 0xe2, 0x77, 0x21, 0xfc, 0xd0, - 0x4c, 0x96, 0xac, 0x04, 0x91, 0xbc, 0x10, 0x7e, 0x7c, 0x26, 0x4b, 0xee, 0x04, 0x7b, 0xe8, 0x7f, - 0x10, 0x0a, 0x3f, 0xe1, 0x25, 0xa8, 0x5c, 0x28, 0xfc, 0x20, 0x22, 0xf4, 0x72, 0xa1, 0xd0, 0x83, - 0x88, 0xb0, 0xcb, 0x85, 0xc2, 0x0e, 0x22, 0x42, 0x2e, 0x17, 0x0a, 0x39, 0x88, 0x08, 0xb7, 0x5c, - 0x28, 0xdc, 0x20, 0x22, 0xd4, 0x72, 0xa1, 0x50, 0x83, 0x88, 0x30, 0xcb, 0x85, 0xc2, 0x0c, 0x22, - 0x42, 0x2c, 0x17, 0x0a, 0x31, 0x88, 0x08, 0xaf, 0x5c, 0x28, 0xbc, 0x20, 0x22, 0xb4, 0x2e, 0x85, - 0x43, 0x0b, 0xa2, 0xc2, 0xea, 0x52, 0x38, 0xac, 0x20, 0x2a, 0xa4, 0x9e, 0x0c, 0x87, 0xd4, 0xd8, - 0x83, 0x77, 0xe7, 0x87, 0xf1, 0x90, 0x10, 0x4d, 0x97, 0xc2, 0xd1, 0x04, 0x51, 0x91, 0x74, 0x29, - 0x1c, 0x49, 0x10, 0x15, 0x45, 0x97, 0xc2, 0x51, 0x04, 0x51, 0x11, 0xf4, 0x76, 0x38, 0x82, 0x82, - 0x57, 0x7c, 0x72, 0xa1, 0x27, 0x8a, 0x71, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, - 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, 0x41, 0xea, 0x00, 0x11, 0xa4, 0x0e, 0x10, - 0x41, 0xea, 0x20, 0x11, 0xa4, 0x0e, 0x14, 0x41, 0x6a, 0xaf, 0x08, 0xba, 0x14, 0x7e, 0xe1, 0x01, - 0xa2, 0x0a, 0xd2, 0xa5, 0xf0, 0x93, 0xcf, 0xf8, 0x10, 0x52, 0x07, 0x0a, 0x21, 0xb5, 0x57, 0x08, - 0xfd, 0x81, 0x0a, 0xd3, 0x52, 0x08, 0xb1, 0xc7, 0x43, 0x1f, 0x54, 0x05, 0xba, 0x3e, 0xc0, 0xfb, - 0x15, 0x51, 0x31, 0x75, 0x7d, 0x80, 0x67, 0xd4, 0xfd, 0xe2, 0xac, 0xbb, 0x0a, 0x95, 0x07, 0xa8, - 0x42, 0x1b, 0x7e, 0x0c, 0x5d, 0x1f, 0xe0, 0xbd, 0x8b, 0xee, 0xd8, 0xbb, 0xd9, 0xaf, 0x08, 0xbc, - 0x38, 0x50, 0x11, 0xd8, 0x1c, 0xa8, 0x08, 0xdc, 0x0d, 0x3c, 0xf8, 0xcb, 0x09, 0x38, 0x17, 0x78, - 0x90, 0x7e, 0x22, 0x3f, 0x91, 0x94, 0x13, 0x9e, 0x50, 0xe9, 0xfc, 0xa9, 0x8d, 0xe0, 0xc6, 0xc4, - 0x66, 0x5d, 0xdf, 0x95, 0x9f, 0x55, 0xe5, 0xcf, 0xfa, 0xfc, 0x46, 0xf0, 0x38, 0xdb, 0x0b, 0xbd, - 0x04, 0xea, 0x66, 0xdd, 0x25, 0xd5, 0x22, 0xea, 0xb4, 0x25, 0x03, 0x4f, 0xeb, 0x06, 0x8c, 0x10, - 0x71, 0x97, 0xb8, 0xf7, 0xfd, 0x9c, 0x78, 0xdd, 0x60, 0x4c, 0xb9, 0xb7, 0x15, 0xb8, 0x20, 0x85, - 0xf2, 0x07, 0xf3, 0xc4, 0xe0, 0xf6, 0x40, 0x4f, 0x0c, 0xa4, 0x04, 0x09, 0x9e, 0x1e, 0x3c, 0xdd, - 0xfd, 0xa0, 0x5a, 0xcc, 0x92, 0xf0, 0x93, 0x84, 0xbf, 0x0c, 0x13, 0xc1, 0x15, 0x90, 0x5b, 0xb6, - 0xb5, 0xf8, 0xcd, 0xcc, 0xa8, 0xd4, 0x5c, 0x0b, 0x6d, 0xa2, 0xf5, 0x85, 0xf9, 0xd9, 0x9a, 0xcb, - 0xc3, 0x64, 0x45, 0xfe, 0x2e, 0x4f, 0xdc, 0x5e, 0x44, 0x0a, 0xb7, 0xe6, 0xf7, 0xbf, 0x32, 0x3f, - 0x94, 0xfb, 0x28, 0x64, 0xc4, 0xaf, 0xeb, 0x84, 0x80, 0x63, 0x1c, 0x98, 0x4f, 0xbe, 0x83, 0xa5, - 0xff, 0xa1, 0x02, 0x8f, 0x88, 0xe2, 0x2f, 0x59, 0xde, 0xc9, 0xa6, 0x8d, 0x7b, 0xfa, 0xe7, 0x20, - 0x85, 0x98, 0xe3, 0xd8, 0xaf, 0x9d, 0xb0, 0xdb, 0xc8, 0x48, 0xf1, 0x25, 0xf2, 0xaf, 0xe1, 0x43, - 0x42, 0x5b, 0x1c, 0xfc, 0xb4, 0x2b, 0xb3, 0x4f, 0xc1, 0x30, 0xe5, 0x97, 0xf5, 0x1a, 0x0f, 0xe9, - 0xf5, 0x1b, 0x11, 0x7a, 0x91, 0x38, 0xd2, 0xef, 0x4a, 0x7a, 0x09, 0x77, 0xab, 0x91, 0xe2, 0x4b, - 0x3c, 0xf8, 0x8a, 0x29, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x57, 0x72, 0x01, 0x52, 0xe5, 0xb0, 0x4c, - 0xb4, 0x9e, 0xeb, 0x90, 0xac, 0x38, 0x75, 0xf2, 0x3b, 0x2c, 0xe4, 0xf7, 0x72, 0x99, 0x91, 0xd9, - 0x8f, 0xe7, 0x5e, 0x86, 0x54, 0xe9, 0xc4, 0x6a, 0xd4, 0xdb, 0xc8, 0x66, 0x8f, 0xec, 0xd9, 0x0e, - 0x3a, 0xc6, 0x18, 0xfe, 0x5c, 0xae, 0x04, 0x53, 0x15, 0xc7, 0x2e, 0x9e, 0x7a, 0x62, 0xdd, 0x58, - 0x0a, 0xa5, 0x08, 0x7b, 0xe4, 0x43, 0xbe, 0x00, 0x82, 0x05, 0x8a, 0xc3, 0xdf, 0x7e, 0x77, 0x5e, - 0xd9, 0xf7, 0xb7, 0xcf, 0xb7, 0xe1, 0x51, 0x96, 0x3e, 0x5d, 0x54, 0x2b, 0x71, 0x54, 0x63, 0xec, - 0x31, 0xb5, 0x40, 0xb7, 0x89, 0xe9, 0xec, 0x48, 0xba, 0x87, 0xd3, 0x0c, 0x37, 0x45, 0x7d, 0x35, - 0x53, 0xcf, 0xa4, 0x59, 0x24, 0xdd, 0x52, 0x1c, 0x5d, 0x48, 0xb3, 0x27, 0x61, 0xcc, 0x9f, 0x13, - 0xa2, 0x41, 0xcc, 0x94, 0x95, 0xc5, 0x1c, 0xa4, 0x85, 0x84, 0xd5, 0x87, 0x41, 0x29, 0x68, 0x43, - 0xf8, 0xbf, 0xa2, 0xa6, 0xe0, 0xff, 0x4a, 0x5a, 0x62, 0xf1, 0x29, 0x98, 0x0c, 0x6d, 0x5f, 0xe2, - 0x99, 0x75, 0x0d, 0xf0, 0x7f, 0x65, 0x2d, 0x3d, 0x9b, 0xfc, 0xec, 0x3f, 0x99, 0x1b, 0x5a, 0xbc, - 0x0d, 0x7a, 0xf7, 0x46, 0xa7, 0x3e, 0x02, 0x89, 0x02, 0xa6, 0x7c, 0x14, 0x12, 0xc5, 0xa2, 0xa6, - 0xcc, 0x4e, 0xfe, 0x8d, 0x2f, 0x5e, 0x48, 0x17, 0xc9, 0x77, 0x91, 0xef, 0x21, 0xaf, 0x58, 0x64, - 0xe0, 0xe7, 0xe1, 0x91, 0xc8, 0x8d, 0x52, 0x8c, 0x2f, 0x95, 0x28, 0x7e, 0x7d, 0xbd, 0x0b, 0xbf, - 0xbe, 0x4e, 0xf0, 0x4a, 0x9e, 0x3f, 0x70, 0x2e, 0xe8, 0x11, 0xdb, 0x92, 0xd9, 0xba, 0xf0, 0x80, - 0xbb, 0x90, 0x7f, 0x9e, 0xc9, 0x16, 0x23, 0x65, 0x51, 0xcc, 0x03, 0xeb, 0x62, 0xbe, 0xc4, 0xf0, - 0xa5, 0x48, 0xfc, 0x51, 0xe8, 0xa9, 0xaa, 0xbc, 0x42, 0x30, 0x92, 0x92, 0xaf, 0xf0, 0x7a, 0x24, - 0xc9, 0x89, 0xf0, 0xae, 0xfb, 0xba, 0xaf, 0x70, 0x39, 0x52, 0xd6, 0x8a, 0x79, 0xe7, 0xab, 0x9c, - 0xbf, 0xc2, 0x16, 0xf9, 0xc2, 0x55, 0xfd, 0x11, 0x9e, 0xa3, 0x52, 0x05, 0x66, 0x06, 0xe2, 0x52, - 0xf9, 0x12, 0x03, 0x14, 0x7b, 0x02, 0x7a, 0x5b, 0x89, 0x23, 0xf3, 0x2f, 0x32, 0x92, 0x52, 0x4f, - 0x92, 0x18, 0x53, 0x71, 0x78, 0x71, 0xff, 0xfe, 0x7b, 0x73, 0x43, 0xef, 0xbc, 0x37, 0x37, 0xf4, - 0xdf, 0xde, 0x9b, 0x1b, 0xfa, 0xce, 0x7b, 0x73, 0xca, 0xf7, 0xdf, 0x9b, 0x53, 0x7e, 0xf8, 0xde, - 0x9c, 0xf2, 0x67, 0xef, 0xcd, 0x29, 0x6f, 0x3e, 0x98, 0x53, 0xbe, 0xf6, 0x60, 0x4e, 0xf9, 0xfa, - 0x83, 0x39, 0xe5, 0xf7, 0x1e, 0xcc, 0x29, 0x6f, 0x3f, 0x98, 0x53, 0xee, 0x3f, 0x98, 0x53, 0xde, - 0x79, 0x30, 0xa7, 0x7c, 0xe7, 0xc1, 0x9c, 0xf2, 0xfd, 0x07, 0x73, 0x43, 0x3f, 0x7c, 0x30, 0xa7, - 0xfc, 0xd9, 0x83, 0xb9, 0xa1, 0x37, 0xbf, 0x3b, 0x37, 0xf4, 0xd6, 0x77, 0xe7, 0x86, 0xbe, 0xf6, - 0xdd, 0x39, 0x05, 0xfe, 0x68, 0x15, 0x16, 0xd8, 0x17, 0xc9, 0xe8, 0xf7, 0x56, 0x85, 0xef, 0xbc, - 0x5e, 0xf1, 0x4e, 0x10, 0x69, 0x0d, 0xae, 0xf1, 0xdf, 0x75, 0xf2, 0x07, 0xce, 0xf8, 0xe5, 0xb2, - 0xd9, 0x87, 0xfd, 0x2a, 0x5b, 0xee, 0xdf, 0x0f, 0xc3, 0x28, 0xdf, 0x12, 0x8e, 0xfa, 0x65, 0xe8, - 0x35, 0x48, 0x9d, 0x58, 0x0d, 0xb3, 0x6d, 0x79, 0xa7, 0x6c, 0x2f, 0xf4, 0xb1, 0xa5, 0x40, 0x6d, - 0xbe, 0x7b, 0xfa, 0x62, 0xa7, 0xe9, 0x74, 0xda, 0x86, 0x2f, 0xaa, 0x5f, 0x80, 0xcc, 0x09, 0xb2, - 0x8e, 0x4f, 0xbc, 0xaa, 0x65, 0x57, 0x6b, 0x4d, 0xd2, 0x33, 0x8f, 0x1b, 0x40, 0xc7, 0x36, 0xed, - 0x52, 0x13, 0x9f, 0xac, 0x6e, 0x7a, 0x26, 0xb9, 0x57, 0xcf, 0x18, 0xe4, 0xb3, 0x7e, 0x11, 0x32, - 0x6d, 0xe4, 0x76, 0x1a, 0x5e, 0xb5, 0xe6, 0x74, 0x6c, 0x8f, 0x74, 0xb5, 0xaa, 0x91, 0xa6, 0x63, - 0x25, 0x3c, 0xa4, 0x3f, 0x09, 0xe3, 0x5e, 0xbb, 0x83, 0xaa, 0x6e, 0xcd, 0xf1, 0xdc, 0xa6, 0x69, - 0x93, 0xae, 0x36, 0x65, 0x64, 0xf0, 0xe0, 0x1e, 0x1b, 0x23, 0x7f, 0x79, 0xa0, 0xe6, 0xb4, 0x11, - 0xb9, 0xa9, 0x4e, 0x18, 0xf4, 0x40, 0xd7, 0x40, 0x7d, 0x15, 0x9d, 0x92, 0xdb, 0xb6, 0xa4, 0x81, - 0x3f, 0xea, 0xcf, 0xc0, 0x08, 0xfd, 0xa3, 0x14, 0xa4, 0xc7, 0x26, 0x4f, 0xb0, 0xfd, 0x4b, 0xa3, - 0x3b, 0xb5, 0x06, 0x13, 0xd0, 0x6f, 0xc1, 0xa8, 0x87, 0xda, 0x6d, 0xd3, 0xb2, 0xc9, 0x2d, 0x54, - 0x7a, 0x65, 0x3e, 0xc2, 0x0c, 0xfb, 0x54, 0x82, 0xfc, 0xc8, 0xab, 0xc1, 0xe5, 0xf5, 0x35, 0xc8, - 0x10, 0xb9, 0x95, 0x2a, 0xfd, 0xc3, 0x1d, 0xe9, 0x9e, 0x51, 0x9d, 0xa6, 0x72, 0xfc, 0x81, 0x01, - 0x87, 0xd1, 0x1f, 0xb8, 0x1b, 0x27, 0xa7, 0x7d, 0x32, 0xe2, 0xb4, 0xa4, 0x00, 0xaf, 0x90, 0xe6, - 0x91, 0x9e, 0x9a, 0xf1, 0xd0, 0x9f, 0xc0, 0xdb, 0x86, 0x8c, 0xa8, 0x17, 0x37, 0x03, 0x6d, 0x82, - 0x88, 0x19, 0x9e, 0x0e, 0x7e, 0xd4, 0xbd, 0x87, 0x15, 0xe8, 0x7c, 0x3e, 0x71, 0x53, 0x99, 0xdd, - 0x05, 0x2d, 0x7c, 0xbe, 0x08, 0xca, 0xcb, 0x32, 0xa5, 0x26, 0x5e, 0x2c, 0xd9, 0x2e, 0x0f, 0x18, - 0x73, 0x2f, 0xc0, 0x08, 0x8d, 0x1f, 0x3d, 0x0d, 0xa3, 0xc1, 0x6f, 0x27, 0xa6, 0x20, 0xb9, 0x7b, - 0x50, 0xd9, 0xa3, 0x3f, 0x82, 0xba, 0xb7, 0x55, 0xd8, 0xdd, 0xdb, 0xdf, 0x2c, 0x7d, 0x5c, 0x4b, - 0xe8, 0x93, 0x90, 0x2e, 0x6e, 0x6e, 0x6d, 0x55, 0x8b, 0x85, 0xcd, 0xad, 0xf2, 0x3d, 0x4d, 0xcd, - 0xcd, 0xc1, 0x08, 0xd5, 0x93, 0xfc, 0x98, 0x5b, 0xc7, 0xb6, 0x4f, 0x79, 0x13, 0x41, 0x0e, 0x72, - 0xdf, 0xd0, 0x61, 0xb4, 0xd0, 0x68, 0x6c, 0x9b, 0x2d, 0x57, 0x7f, 0x09, 0xa6, 0xe8, 0xcf, 0x4a, - 0xec, 0x3b, 0xeb, 0xe4, 0x37, 0x07, 0x71, 0x89, 0x50, 0xd8, 0x8f, 0xd9, 0x07, 0xd7, 0xcd, 0xc4, - 0x97, 0xba, 0x64, 0xa9, 0x81, 0xbb, 0x39, 0xf4, 0x7d, 0xd0, 0xf8, 0xe0, 0x46, 0xc3, 0x31, 0x3d, - 0xcc, 0x9b, 0x60, 0x3f, 0x09, 0xd8, 0x9b, 0x97, 0x8b, 0x52, 0xda, 0x2e, 0x06, 0xfd, 0x63, 0x90, - 0xda, 0xb4, 0xbd, 0x6b, 0x2b, 0x98, 0x8d, 0xff, 0xa1, 0x95, 0x6e, 0x36, 0x2e, 0x42, 0x59, 0x7c, - 0x04, 0x43, 0x5f, 0x5f, 0xc5, 0xe8, 0x64, 0x3f, 0x34, 0x11, 0x09, 0xd0, 0xe4, 0x50, 0x7f, 0x01, - 0xc6, 0xf0, 0x3d, 0x0a, 0x3d, 0xf9, 0x30, 0x6f, 0x60, 0xbb, 0xe0, 0xbe, 0x0c, 0xc5, 0x07, 0x18, - 0x4e, 0x40, 0xcf, 0x3f, 0xd2, 0x97, 0x40, 0x50, 0x20, 0xc0, 0x60, 0x82, 0x3d, 0x5f, 0x83, 0xd1, - 0x9e, 0x04, 0x7b, 0x21, 0x0d, 0xf6, 0x44, 0x0d, 0xf6, 0x7c, 0x0d, 0x52, 0x7d, 0x09, 0x44, 0x0d, - 0xfc, 0x63, 0xbd, 0x08, 0xb0, 0x61, 0xbd, 0x81, 0xea, 0x54, 0x05, 0xfa, 0x67, 0x58, 0x72, 0x11, - 0x0c, 0x81, 0x10, 0xa5, 0x10, 0x50, 0x7a, 0x19, 0xd2, 0x7b, 0x47, 0x01, 0x09, 0x74, 0xe5, 0xb1, - 0xaf, 0xc6, 0x51, 0x88, 0x45, 0xc4, 0xf9, 0xaa, 0xd0, 0x8b, 0x49, 0xf7, 0x57, 0x45, 0xb8, 0x1a, - 0x01, 0x15, 0xa8, 0x42, 0x49, 0x32, 0x31, 0xaa, 0x08, 0x2c, 0x22, 0x0e, 0x17, 0xc3, 0xa2, 0xe3, - 0x60, 0x49, 0x56, 0x95, 0xe6, 0x23, 0x28, 0x98, 0x04, 0x2b, 0x86, 0xec, 0x88, 0x78, 0x84, 0x04, - 0x39, 0x06, 0x4f, 0xf4, 0xf6, 0x08, 0x97, 0xe1, 0x1e, 0xe1, 0xc7, 0x62, 0x9e, 0x91, 0xd7, 0x5a, - 0x31, 0xcf, 0x64, 0x6c, 0x9e, 0x71, 0xd1, 0x50, 0x9e, 0xf1, 0x61, 0xfd, 0x13, 0x30, 0xc9, 0xc7, - 0x70, 0x79, 0xc2, 0xa4, 0x1a, 0xfb, 0x43, 0x55, 0xbd, 0x49, 0x99, 0x24, 0xe5, 0x0c, 0xe3, 0xf5, - 0x0a, 0x4c, 0xf0, 0xa1, 0x6d, 0x97, 0x5c, 0xee, 0x14, 0xfb, 0x23, 0x10, 0xbd, 0x19, 0xa9, 0x20, - 0x25, 0x0c, 0xa1, 0x67, 0xd7, 0x61, 0x26, 0xba, 0x1a, 0x89, 0xe5, 0x77, 0x8c, 0x96, 0xdf, 0x73, - 0x62, 0xf9, 0x55, 0xc4, 0xf2, 0x5d, 0x82, 0x47, 0x22, 0x6b, 0x4f, 0x1c, 0x49, 0x42, 0x24, 0xb9, - 0x0d, 0xe3, 0x52, 0xc9, 0x11, 0xc1, 0xc3, 0x11, 0xe0, 0xe1, 0x6e, 0x70, 0x10, 0x5a, 0x11, 0xab, - 0x87, 0x04, 0x56, 0x45, 0xf0, 0xc7, 0x60, 0x42, 0xae, 0x37, 0x22, 0x7a, 0x3c, 0x02, 0x3d, 0x1e, - 0x81, 0x8e, 0x3e, 0x77, 0x32, 0x02, 0x9d, 0x0c, 0xa1, 0xf7, 0x7a, 0x9e, 0x7b, 0x2a, 0x02, 0x3d, - 0x15, 0x81, 0x8e, 0x3e, 0xb7, 0x1e, 0x81, 0xd6, 0x45, 0xf4, 0x73, 0x30, 0x19, 0x2a, 0x31, 0x22, - 0x7c, 0x34, 0x02, 0x3e, 0x2a, 0xc2, 0x9f, 0x07, 0x2d, 0x5c, 0x5c, 0x44, 0xfc, 0x64, 0x04, 0x7e, - 0x32, 0xea, 0xf4, 0xd1, 0xda, 0x8f, 0x44, 0xc0, 0x47, 0x22, 0x4f, 0x1f, 0x8d, 0xd7, 0x22, 0xf0, - 0x9a, 0x88, 0xcf, 0x43, 0x46, 0xac, 0x26, 0x22, 0x36, 0x15, 0x81, 0x4d, 0x85, 0xed, 0x2e, 0x15, - 0x93, 0xb8, 0x48, 0x1f, 0xeb, 0x91, 0x2e, 0x52, 0x09, 0x89, 0x23, 0xc9, 0x88, 0x24, 0x9f, 0x84, - 0x73, 0x51, 0x25, 0x23, 0x82, 0x63, 0x41, 0xe4, 0x98, 0xc0, 0x3d, 0x62, 0xd0, 0xec, 0x99, 0xad, - 0x50, 0xe3, 0x34, 0xfb, 0x29, 0x98, 0x8e, 0x28, 0x1c, 0x11, 0xb4, 0x4b, 0x72, 0x37, 0x96, 0x15, - 0x68, 0x49, 0x11, 0xb0, 0xec, 0xe3, 0x5d, 0xc7, 0xb2, 0x3d, 0xb1, 0x2b, 0xfb, 0xe6, 0x34, 0x4c, - 0xb0, 0xf2, 0xb4, 0xd3, 0xae, 0xa3, 0x36, 0xaa, 0xeb, 0x7f, 0xa9, 0x77, 0xef, 0xb4, 0xdc, 0x5d, - 0xd4, 0x18, 0xea, 0x0c, 0x2d, 0xd4, 0xa7, 0x7a, 0xb6, 0x50, 0x57, 0xe2, 0xe9, 0xe3, 0x3a, 0xa9, - 0x52, 0x57, 0x27, 0xf5, 0x74, 0x6f, 0xd2, 0x5e, 0x0d, 0x55, 0xa9, 0xab, 0xa1, 0xea, 0x4f, 0x12, - 0xd9, 0x57, 0x6d, 0x74, 0xf7, 0x55, 0x0b, 0xbd, 0x59, 0x7a, 0xb7, 0x57, 0x1b, 0xdd, 0xed, 0x55, - 0x0c, 0x4f, 0x74, 0x97, 0xb5, 0xd1, 0xdd, 0x65, 0xf5, 0xe1, 0xe9, 0xdd, 0x6c, 0x6d, 0x74, 0x37, - 0x5b, 0x31, 0x3c, 0xd1, 0x3d, 0xd7, 0x66, 0x44, 0xcf, 0xf5, 0x4c, 0x6f, 0xa2, 0x7e, 0xad, 0xd7, - 0x56, 0x54, 0xeb, 0xb5, 0xd8, 0x47, 0xa9, 0xbe, 0x1d, 0xd8, 0x66, 0x44, 0x07, 0x16, 0xa7, 0x58, - 0x8f, 0x46, 0x6c, 0x2b, 0xaa, 0x11, 0x8b, 0x55, 0xac, 0x57, 0x3f, 0xf6, 0x17, 0xc2, 0xfd, 0xd8, - 0xe5, 0xde, 0x4c, 0xd1, 0x6d, 0xd9, 0x46, 0x77, 0x5b, 0xb6, 0x10, 0x97, 0x73, 0x51, 0xdd, 0xd9, - 0xa7, 0x7a, 0x76, 0x67, 0x03, 0xa4, 0x70, 0x5c, 0x93, 0xf6, 0x72, 0xaf, 0x26, 0x6d, 0x29, 0x9e, - 0xbb, 0x7f, 0xaf, 0x76, 0xd0, 0xa3, 0x57, 0x7b, 0x36, 0x9e, 0xf8, 0xe7, 0x2d, 0xdb, 0xcf, 0x5b, - 0xb6, 0x9f, 0xb7, 0x6c, 0x3f, 0x6f, 0xd9, 0x7e, 0xfa, 0x2d, 0x5b, 0x3e, 0xf9, 0xb9, 0xaf, 0xcc, - 0x2b, 0xb9, 0xff, 0xaa, 0xfa, 0x7f, 0x3f, 0xeb, 0x25, 0xcb, 0x3b, 0xc1, 0xe5, 0x6d, 0x1b, 0x32, - 0xe4, 0x2f, 0x5f, 0x34, 0xcd, 0x56, 0xcb, 0xb2, 0x8f, 0x59, 0xcf, 0xb6, 0xd8, 0xbd, 0x95, 0xc8, - 0x00, 0xe4, 0x6f, 0x87, 0x6c, 0x53, 0x61, 0xb6, 0xdc, 0xd8, 0xc1, 0x88, 0x7e, 0x17, 0xd2, 0x4d, - 0xf7, 0xd8, 0x67, 0x4b, 0x74, 0x2d, 0x84, 0x21, 0x36, 0x7a, 0xa5, 0x01, 0x19, 0x34, 0xfd, 0x01, - 0xac, 0xda, 0xe1, 0xa9, 0x17, 0xa8, 0xa6, 0xc6, 0xa9, 0x86, 0x7d, 0x2a, 0xab, 0x76, 0x18, 0x8c, - 0xe0, 0xb0, 0x0d, 0xeb, 0x1e, 0x57, 0xe9, 0xa4, 0xe0, 0x79, 0x09, 0x26, 0x43, 0xda, 0x46, 0xe4, - 0xfc, 0x43, 0xf8, 0x06, 0x2b, 0x16, 0xd6, 0x3c, 0x2e, 0x27, 0xc4, 0x80, 0xcc, 0x3d, 0x01, 0xe3, - 0x12, 0xb7, 0x9e, 0x01, 0xe5, 0x88, 0x7d, 0xa7, 0x52, 0x39, 0xca, 0x7d, 0x59, 0x81, 0x34, 0x7b, - 0xa1, 0x60, 0xd7, 0xb4, 0xda, 0xfa, 0x8b, 0x90, 0x6c, 0xf0, 0xef, 0x35, 0x3d, 0xec, 0x77, 0x68, - 0x09, 0x83, 0xbe, 0x01, 0xc3, 0x6d, 0xff, 0x7b, 0x4f, 0x0f, 0xf5, 0xc5, 0x58, 0x02, 0xcf, 0xdd, - 0x57, 0x60, 0x8a, 0xbd, 0xef, 0xea, 0xb2, 0xb7, 0xa0, 0xcd, 0xd6, 0xec, 0x37, 0x14, 0x18, 0xf3, - 0x8f, 0xf4, 0x43, 0x98, 0xf0, 0x0f, 0xe8, 0x9b, 0xf6, 0x34, 0x52, 0xf3, 0x82, 0x85, 0xbb, 0x38, - 0x96, 0x22, 0x3e, 0xd1, 0x47, 0x52, 0x74, 0x4d, 0x96, 0x07, 0x67, 0x0b, 0x30, 0x1d, 0x21, 0x76, - 0x96, 0x05, 0x39, 0x77, 0x11, 0xc6, 0x2a, 0x8e, 0x47, 0x7f, 0x3e, 0x47, 0x3f, 0x27, 0x3c, 0x55, - 0x28, 0x26, 0xb4, 0x21, 0x02, 0x5e, 0xbc, 0x08, 0xa3, 0x2c, 0xfb, 0xf5, 0x11, 0x48, 0x6c, 0x17, - 0xb4, 0x21, 0xf2, 0x7f, 0x51, 0x53, 0xc8, 0xff, 0x25, 0x2d, 0x51, 0xdc, 0x7a, 0x88, 0xe7, 0x4d, - 0x43, 0xef, 0x3c, 0x98, 0x1b, 0x8a, 0x78, 0xde, 0xa4, 0x1c, 0x8e, 0x50, 0xf3, 0xfc, 0xff, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xd8, 0x3a, 0x74, 0xbb, 0x33, 0x7f, 0x00, 0x00, - } - r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) - if err != nil { - panic(err) - } - ungzipped, err := io_ioutil.ReadAll(gzipr) - if err != nil { - panic(err) - } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { - panic(err) - } - return d -} -func (x MapEnum) String() string { - s, ok := MapEnum_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (x Message_Humour) String() string { - s, ok := Message_Humour_name[int32(x)] - if ok { - return s - } - return strconv.Itoa(int(x)) -} -func (this *Message) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Message) - if !ok { - that2, ok := that.(Message) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Message") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Message but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Message but is not nil && this == nil") - } - if this.Name != that1.Name { - return fmt.Errorf("Name this(%v) Not Equal that(%v)", this.Name, that1.Name) - } - if this.Hilarity != that1.Hilarity { - return fmt.Errorf("Hilarity this(%v) Not Equal that(%v)", this.Hilarity, that1.Hilarity) - } - if this.HeightInCm != that1.HeightInCm { - return fmt.Errorf("HeightInCm this(%v) Not Equal that(%v)", this.HeightInCm, that1.HeightInCm) - } - if !bytes.Equal(this.Data, that1.Data) { - return fmt.Errorf("Data this(%v) Not Equal that(%v)", this.Data, that1.Data) - } - if this.ResultCount != that1.ResultCount { - return fmt.Errorf("ResultCount this(%v) Not Equal that(%v)", this.ResultCount, that1.ResultCount) - } - if this.TrueScotsman != that1.TrueScotsman { - return fmt.Errorf("TrueScotsman this(%v) Not Equal that(%v)", this.TrueScotsman, that1.TrueScotsman) - } - if this.Score != that1.Score { - return fmt.Errorf("Score this(%v) Not Equal that(%v)", this.Score, that1.Score) - } - if len(this.Key) != len(that1.Key) { - return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) - } - } - if !this.Nested.Equal(that1.Nested) { - return fmt.Errorf("Nested this(%v) Not Equal that(%v)", this.Nested, that1.Nested) - } - if len(this.Terrain) != len(that1.Terrain) { - return fmt.Errorf("Terrain this(%v) Not Equal that(%v)", len(this.Terrain), len(that1.Terrain)) - } - for i := range this.Terrain { - if !this.Terrain[i].Equal(that1.Terrain[i]) { - return fmt.Errorf("Terrain this[%v](%v) Not Equal that[%v](%v)", i, this.Terrain[i], i, that1.Terrain[i]) - } - } - if !this.Proto2Field.Equal(that1.Proto2Field) { - return fmt.Errorf("Proto2Field this(%v) Not Equal that(%v)", this.Proto2Field, that1.Proto2Field) - } - if len(this.Proto2Value) != len(that1.Proto2Value) { - return fmt.Errorf("Proto2Value this(%v) Not Equal that(%v)", len(this.Proto2Value), len(that1.Proto2Value)) - } - for i := range this.Proto2Value { - if !this.Proto2Value[i].Equal(that1.Proto2Value[i]) { - return fmt.Errorf("Proto2Value this[%v](%v) Not Equal that[%v](%v)", i, this.Proto2Value[i], i, that1.Proto2Value[i]) - } - } - return nil -} -func (this *Message) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Message) - if !ok { - that2, ok := that.(Message) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Name != that1.Name { - return false - } - if this.Hilarity != that1.Hilarity { - return false - } - if this.HeightInCm != that1.HeightInCm { - return false - } - if !bytes.Equal(this.Data, that1.Data) { - return false - } - if this.ResultCount != that1.ResultCount { - return false - } - if this.TrueScotsman != that1.TrueScotsman { - return false - } - if this.Score != that1.Score { - return false - } - if len(this.Key) != len(that1.Key) { - return false - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return false - } - } - if !this.Nested.Equal(that1.Nested) { - return false - } - if len(this.Terrain) != len(that1.Terrain) { - return false - } - for i := range this.Terrain { - if !this.Terrain[i].Equal(that1.Terrain[i]) { - return false - } - } - if !this.Proto2Field.Equal(that1.Proto2Field) { - return false - } - if len(this.Proto2Value) != len(that1.Proto2Value) { - return false - } - for i := range this.Proto2Value { - if !this.Proto2Value[i].Equal(that1.Proto2Value[i]) { - return false - } - } - return true -} -func (this *Nested) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Nested) - if !ok { - that2, ok := that.(Nested) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Nested") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Nested but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Nested but is not nil && this == nil") - } - if this.Bunny != that1.Bunny { - return fmt.Errorf("Bunny this(%v) Not Equal that(%v)", this.Bunny, that1.Bunny) - } - return nil -} -func (this *Nested) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Nested) - if !ok { - that2, ok := that.(Nested) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Bunny != that1.Bunny { - return false - } - return true -} -func (this *AllMaps) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMaps") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMaps but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMaps but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - return nil -} -func (this *AllMaps) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMaps) - if !ok { - that2, ok := that.(AllMaps) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - return true -} -func (this *AllMapsOrdered) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *AllMapsOrdered") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *AllMapsOrdered but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *AllMapsOrdered but is not nil && this == nil") - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return fmt.Errorf("StringToDoubleMap this(%v) Not Equal that(%v)", len(this.StringToDoubleMap), len(that1.StringToDoubleMap)) - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return fmt.Errorf("StringToDoubleMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToDoubleMap[i], i, that1.StringToDoubleMap[i]) - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return fmt.Errorf("StringToFloatMap this(%v) Not Equal that(%v)", len(this.StringToFloatMap), len(that1.StringToFloatMap)) - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return fmt.Errorf("StringToFloatMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToFloatMap[i], i, that1.StringToFloatMap[i]) - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return fmt.Errorf("Int32Map this(%v) Not Equal that(%v)", len(this.Int32Map), len(that1.Int32Map)) - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return fmt.Errorf("Int32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int32Map[i], i, that1.Int32Map[i]) - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return fmt.Errorf("Int64Map this(%v) Not Equal that(%v)", len(this.Int64Map), len(that1.Int64Map)) - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return fmt.Errorf("Int64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Int64Map[i], i, that1.Int64Map[i]) - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return fmt.Errorf("Uint32Map this(%v) Not Equal that(%v)", len(this.Uint32Map), len(that1.Uint32Map)) - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return fmt.Errorf("Uint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint32Map[i], i, that1.Uint32Map[i]) - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return fmt.Errorf("Uint64Map this(%v) Not Equal that(%v)", len(this.Uint64Map), len(that1.Uint64Map)) - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return fmt.Errorf("Uint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Uint64Map[i], i, that1.Uint64Map[i]) - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return fmt.Errorf("Sint32Map this(%v) Not Equal that(%v)", len(this.Sint32Map), len(that1.Sint32Map)) - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return fmt.Errorf("Sint32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint32Map[i], i, that1.Sint32Map[i]) - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return fmt.Errorf("Sint64Map this(%v) Not Equal that(%v)", len(this.Sint64Map), len(that1.Sint64Map)) - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return fmt.Errorf("Sint64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sint64Map[i], i, that1.Sint64Map[i]) - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return fmt.Errorf("Fixed32Map this(%v) Not Equal that(%v)", len(this.Fixed32Map), len(that1.Fixed32Map)) - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return fmt.Errorf("Fixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed32Map[i], i, that1.Fixed32Map[i]) - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return fmt.Errorf("Sfixed32Map this(%v) Not Equal that(%v)", len(this.Sfixed32Map), len(that1.Sfixed32Map)) - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return fmt.Errorf("Sfixed32Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed32Map[i], i, that1.Sfixed32Map[i]) - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return fmt.Errorf("Fixed64Map this(%v) Not Equal that(%v)", len(this.Fixed64Map), len(that1.Fixed64Map)) - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return fmt.Errorf("Fixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Fixed64Map[i], i, that1.Fixed64Map[i]) - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return fmt.Errorf("Sfixed64Map this(%v) Not Equal that(%v)", len(this.Sfixed64Map), len(that1.Sfixed64Map)) - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return fmt.Errorf("Sfixed64Map this[%v](%v) Not Equal that[%v](%v)", i, this.Sfixed64Map[i], i, that1.Sfixed64Map[i]) - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return fmt.Errorf("BoolMap this(%v) Not Equal that(%v)", len(this.BoolMap), len(that1.BoolMap)) - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return fmt.Errorf("BoolMap this[%v](%v) Not Equal that[%v](%v)", i, this.BoolMap[i], i, that1.BoolMap[i]) - } - } - if len(this.StringMap) != len(that1.StringMap) { - return fmt.Errorf("StringMap this(%v) Not Equal that(%v)", len(this.StringMap), len(that1.StringMap)) - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return fmt.Errorf("StringMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringMap[i], i, that1.StringMap[i]) - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return fmt.Errorf("StringToBytesMap this(%v) Not Equal that(%v)", len(this.StringToBytesMap), len(that1.StringToBytesMap)) - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return fmt.Errorf("StringToBytesMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToBytesMap[i], i, that1.StringToBytesMap[i]) - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return fmt.Errorf("StringToEnumMap this(%v) Not Equal that(%v)", len(this.StringToEnumMap), len(that1.StringToEnumMap)) - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return fmt.Errorf("StringToEnumMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToEnumMap[i], i, that1.StringToEnumMap[i]) - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return fmt.Errorf("StringToMsgMap this(%v) Not Equal that(%v)", len(this.StringToMsgMap), len(that1.StringToMsgMap)) - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return fmt.Errorf("StringToMsgMap this[%v](%v) Not Equal that[%v](%v)", i, this.StringToMsgMap[i], i, that1.StringToMsgMap[i]) - } - } - return nil -} -func (this *AllMapsOrdered) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*AllMapsOrdered) - if !ok { - that2, ok := that.(AllMapsOrdered) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.StringToDoubleMap) != len(that1.StringToDoubleMap) { - return false - } - for i := range this.StringToDoubleMap { - if this.StringToDoubleMap[i] != that1.StringToDoubleMap[i] { - return false - } - } - if len(this.StringToFloatMap) != len(that1.StringToFloatMap) { - return false - } - for i := range this.StringToFloatMap { - if this.StringToFloatMap[i] != that1.StringToFloatMap[i] { - return false - } - } - if len(this.Int32Map) != len(that1.Int32Map) { - return false - } - for i := range this.Int32Map { - if this.Int32Map[i] != that1.Int32Map[i] { - return false - } - } - if len(this.Int64Map) != len(that1.Int64Map) { - return false - } - for i := range this.Int64Map { - if this.Int64Map[i] != that1.Int64Map[i] { - return false - } - } - if len(this.Uint32Map) != len(that1.Uint32Map) { - return false - } - for i := range this.Uint32Map { - if this.Uint32Map[i] != that1.Uint32Map[i] { - return false - } - } - if len(this.Uint64Map) != len(that1.Uint64Map) { - return false - } - for i := range this.Uint64Map { - if this.Uint64Map[i] != that1.Uint64Map[i] { - return false - } - } - if len(this.Sint32Map) != len(that1.Sint32Map) { - return false - } - for i := range this.Sint32Map { - if this.Sint32Map[i] != that1.Sint32Map[i] { - return false - } - } - if len(this.Sint64Map) != len(that1.Sint64Map) { - return false - } - for i := range this.Sint64Map { - if this.Sint64Map[i] != that1.Sint64Map[i] { - return false - } - } - if len(this.Fixed32Map) != len(that1.Fixed32Map) { - return false - } - for i := range this.Fixed32Map { - if this.Fixed32Map[i] != that1.Fixed32Map[i] { - return false - } - } - if len(this.Sfixed32Map) != len(that1.Sfixed32Map) { - return false - } - for i := range this.Sfixed32Map { - if this.Sfixed32Map[i] != that1.Sfixed32Map[i] { - return false - } - } - if len(this.Fixed64Map) != len(that1.Fixed64Map) { - return false - } - for i := range this.Fixed64Map { - if this.Fixed64Map[i] != that1.Fixed64Map[i] { - return false - } - } - if len(this.Sfixed64Map) != len(that1.Sfixed64Map) { - return false - } - for i := range this.Sfixed64Map { - if this.Sfixed64Map[i] != that1.Sfixed64Map[i] { - return false - } - } - if len(this.BoolMap) != len(that1.BoolMap) { - return false - } - for i := range this.BoolMap { - if this.BoolMap[i] != that1.BoolMap[i] { - return false - } - } - if len(this.StringMap) != len(that1.StringMap) { - return false - } - for i := range this.StringMap { - if this.StringMap[i] != that1.StringMap[i] { - return false - } - } - if len(this.StringToBytesMap) != len(that1.StringToBytesMap) { - return false - } - for i := range this.StringToBytesMap { - if !bytes.Equal(this.StringToBytesMap[i], that1.StringToBytesMap[i]) { - return false - } - } - if len(this.StringToEnumMap) != len(that1.StringToEnumMap) { - return false - } - for i := range this.StringToEnumMap { - if this.StringToEnumMap[i] != that1.StringToEnumMap[i] { - return false - } - } - if len(this.StringToMsgMap) != len(that1.StringToMsgMap) { - return false - } - for i := range this.StringToMsgMap { - if !this.StringToMsgMap[i].Equal(that1.StringToMsgMap[i]) { - return false - } - } - return true -} -func (this *MessageWithMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MessageWithMap) - if !ok { - that2, ok := that.(MessageWithMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MessageWithMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MessageWithMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MessageWithMap but is not nil && this == nil") - } - if len(this.NameMapping) != len(that1.NameMapping) { - return fmt.Errorf("NameMapping this(%v) Not Equal that(%v)", len(this.NameMapping), len(that1.NameMapping)) - } - for i := range this.NameMapping { - if this.NameMapping[i] != that1.NameMapping[i] { - return fmt.Errorf("NameMapping this[%v](%v) Not Equal that[%v](%v)", i, this.NameMapping[i], i, that1.NameMapping[i]) - } - } - if len(this.MsgMapping) != len(that1.MsgMapping) { - return fmt.Errorf("MsgMapping this(%v) Not Equal that(%v)", len(this.MsgMapping), len(that1.MsgMapping)) - } - for i := range this.MsgMapping { - if !this.MsgMapping[i].Equal(that1.MsgMapping[i]) { - return fmt.Errorf("MsgMapping this[%v](%v) Not Equal that[%v](%v)", i, this.MsgMapping[i], i, that1.MsgMapping[i]) - } - } - if len(this.ByteMapping) != len(that1.ByteMapping) { - return fmt.Errorf("ByteMapping this(%v) Not Equal that(%v)", len(this.ByteMapping), len(that1.ByteMapping)) - } - for i := range this.ByteMapping { - if !bytes.Equal(this.ByteMapping[i], that1.ByteMapping[i]) { - return fmt.Errorf("ByteMapping this[%v](%v) Not Equal that[%v](%v)", i, this.ByteMapping[i], i, that1.ByteMapping[i]) - } - } - return nil -} -func (this *MessageWithMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MessageWithMap) - if !ok { - that2, ok := that.(MessageWithMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NameMapping) != len(that1.NameMapping) { - return false - } - for i := range this.NameMapping { - if this.NameMapping[i] != that1.NameMapping[i] { - return false - } - } - if len(this.MsgMapping) != len(that1.MsgMapping) { - return false - } - for i := range this.MsgMapping { - if !this.MsgMapping[i].Equal(that1.MsgMapping[i]) { - return false - } - } - if len(this.ByteMapping) != len(that1.ByteMapping) { - return false - } - for i := range this.ByteMapping { - if !bytes.Equal(this.ByteMapping[i], that1.ByteMapping[i]) { - return false - } - } - return true -} -func (this *FloatingPoint) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *FloatingPoint") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *FloatingPoint but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *FloatingPoint but is not nil && this == nil") - } - if this.F != that1.F { - return fmt.Errorf("F this(%v) Not Equal that(%v)", this.F, that1.F) - } - return nil -} -func (this *FloatingPoint) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*FloatingPoint) - if !ok { - that2, ok := that.(FloatingPoint) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.F != that1.F { - return false - } - return true -} -func (this *Uint128Pair) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*Uint128Pair) - if !ok { - that2, ok := that.(Uint128Pair) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *Uint128Pair") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *Uint128Pair but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *Uint128Pair but is not nil && this == nil") - } - if !this.Left.Equal(that1.Left) { - return fmt.Errorf("Left this(%v) Not Equal that(%v)", this.Left, that1.Left) - } - if that1.Right == nil { - if this.Right != nil { - return fmt.Errorf("this.Right != nil && that1.Right == nil") - } - } else if !this.Right.Equal(*that1.Right) { - return fmt.Errorf("Right this(%v) Not Equal that(%v)", this.Right, that1.Right) - } - return nil -} -func (this *Uint128Pair) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*Uint128Pair) - if !ok { - that2, ok := that.(Uint128Pair) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Left.Equal(that1.Left) { - return false - } - if that1.Right == nil { - if this.Right != nil { - return false - } - } else if !this.Right.Equal(*that1.Right) { - return false - } - return true -} -func (this *ContainsNestedMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ContainsNestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ContainsNestedMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ContainsNestedMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ContainsNestedMap but is not nil && this == nil") - } - return nil -} -func (this *ContainsNestedMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ContainsNestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - return true -} -func (this *ContainsNestedMap_NestedMap) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ContainsNestedMap_NestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap_NestedMap) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ContainsNestedMap_NestedMap") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ContainsNestedMap_NestedMap but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ContainsNestedMap_NestedMap but is not nil && this == nil") - } - if len(this.NestedMapField) != len(that1.NestedMapField) { - return fmt.Errorf("NestedMapField this(%v) Not Equal that(%v)", len(this.NestedMapField), len(that1.NestedMapField)) - } - for i := range this.NestedMapField { - if this.NestedMapField[i] != that1.NestedMapField[i] { - return fmt.Errorf("NestedMapField this[%v](%v) Not Equal that[%v](%v)", i, this.NestedMapField[i], i, that1.NestedMapField[i]) - } - } - return nil -} -func (this *ContainsNestedMap_NestedMap) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ContainsNestedMap_NestedMap) - if !ok { - that2, ok := that.(ContainsNestedMap_NestedMap) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NestedMapField) != len(that1.NestedMapField) { - return false - } - for i := range this.NestedMapField { - if this.NestedMapField[i] != that1.NestedMapField[i] { - return false - } - } - return true -} -func (this *NotPacked) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*NotPacked) - if !ok { - that2, ok := that.(NotPacked) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *NotPacked") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *NotPacked but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *NotPacked but is not nil && this == nil") - } - if len(this.Key) != len(that1.Key) { - return fmt.Errorf("Key this(%v) Not Equal that(%v)", len(this.Key), len(that1.Key)) - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return fmt.Errorf("Key this[%v](%v) Not Equal that[%v](%v)", i, this.Key[i], i, that1.Key[i]) - } - } - return nil -} -func (this *NotPacked) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*NotPacked) - if !ok { - that2, ok := that.(NotPacked) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.Key) != len(that1.Key) { - return false - } - for i := range this.Key { - if this.Key[i] != that1.Key[i] { - return false - } - } - return true -} - -type MessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetName() string - GetHilarity() Message_Humour - GetHeightInCm() uint32 - GetData() []byte - GetResultCount() int64 - GetTrueScotsman() bool - GetScore() float32 - GetKey() []uint64 - GetNested() *Nested - GetTerrain() map[int64]*Nested - GetProto2Field() *test.NinOptNative - GetProto2Value() map[int64]*test.NinOptEnum -} - -func (this *Message) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Message) TestProto() github_com_gogo_protobuf_proto.Message { - return NewMessageFromFace(this) -} - -func (this *Message) GetName() string { - return this.Name -} - -func (this *Message) GetHilarity() Message_Humour { - return this.Hilarity -} - -func (this *Message) GetHeightInCm() uint32 { - return this.HeightInCm -} - -func (this *Message) GetData() []byte { - return this.Data -} - -func (this *Message) GetResultCount() int64 { - return this.ResultCount -} - -func (this *Message) GetTrueScotsman() bool { - return this.TrueScotsman -} - -func (this *Message) GetScore() float32 { - return this.Score -} - -func (this *Message) GetKey() []uint64 { - return this.Key -} - -func (this *Message) GetNested() *Nested { - return this.Nested -} - -func (this *Message) GetTerrain() map[int64]*Nested { - return this.Terrain -} - -func (this *Message) GetProto2Field() *test.NinOptNative { - return this.Proto2Field -} - -func (this *Message) GetProto2Value() map[int64]*test.NinOptEnum { - return this.Proto2Value -} - -func NewMessageFromFace(that MessageFace) *Message { - this := &Message{} - this.Name = that.GetName() - this.Hilarity = that.GetHilarity() - this.HeightInCm = that.GetHeightInCm() - this.Data = that.GetData() - this.ResultCount = that.GetResultCount() - this.TrueScotsman = that.GetTrueScotsman() - this.Score = that.GetScore() - this.Key = that.GetKey() - this.Nested = that.GetNested() - this.Terrain = that.GetTerrain() - this.Proto2Field = that.GetProto2Field() - this.Proto2Value = that.GetProto2Value() - return this -} - -type NestedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetBunny() string -} - -func (this *Nested) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Nested) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNestedFromFace(this) -} - -func (this *Nested) GetBunny() string { - return this.Bunny -} - -func NewNestedFromFace(that NestedFace) *Nested { - this := &Nested{} - this.Bunny = that.GetBunny() - return this -} - -type AllMapsFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMaps) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMaps) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsFromFace(this) -} - -func (this *AllMaps) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMaps) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMaps) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMaps) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMaps) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMaps) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMaps) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMaps) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMaps) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMaps) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMaps) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMaps) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMaps) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMaps) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMaps) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMaps) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMaps) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsFromFace(that AllMapsFace) *AllMaps { - this := &AllMaps{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -type AllMapsOrderedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetStringToDoubleMap() map[string]float64 - GetStringToFloatMap() map[string]float32 - GetInt32Map() map[int32]int32 - GetInt64Map() map[int64]int64 - GetUint32Map() map[uint32]uint32 - GetUint64Map() map[uint64]uint64 - GetSint32Map() map[int32]int32 - GetSint64Map() map[int64]int64 - GetFixed32Map() map[uint32]uint32 - GetSfixed32Map() map[int32]int32 - GetFixed64Map() map[uint64]uint64 - GetSfixed64Map() map[int64]int64 - GetBoolMap() map[bool]bool - GetStringMap() map[string]string - GetStringToBytesMap() map[string][]byte - GetStringToEnumMap() map[string]MapEnum - GetStringToMsgMap() map[string]*FloatingPoint -} - -func (this *AllMapsOrdered) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *AllMapsOrdered) TestProto() github_com_gogo_protobuf_proto.Message { - return NewAllMapsOrderedFromFace(this) -} - -func (this *AllMapsOrdered) GetStringToDoubleMap() map[string]float64 { - return this.StringToDoubleMap -} - -func (this *AllMapsOrdered) GetStringToFloatMap() map[string]float32 { - return this.StringToFloatMap -} - -func (this *AllMapsOrdered) GetInt32Map() map[int32]int32 { - return this.Int32Map -} - -func (this *AllMapsOrdered) GetInt64Map() map[int64]int64 { - return this.Int64Map -} - -func (this *AllMapsOrdered) GetUint32Map() map[uint32]uint32 { - return this.Uint32Map -} - -func (this *AllMapsOrdered) GetUint64Map() map[uint64]uint64 { - return this.Uint64Map -} - -func (this *AllMapsOrdered) GetSint32Map() map[int32]int32 { - return this.Sint32Map -} - -func (this *AllMapsOrdered) GetSint64Map() map[int64]int64 { - return this.Sint64Map -} - -func (this *AllMapsOrdered) GetFixed32Map() map[uint32]uint32 { - return this.Fixed32Map -} - -func (this *AllMapsOrdered) GetSfixed32Map() map[int32]int32 { - return this.Sfixed32Map -} - -func (this *AllMapsOrdered) GetFixed64Map() map[uint64]uint64 { - return this.Fixed64Map -} - -func (this *AllMapsOrdered) GetSfixed64Map() map[int64]int64 { - return this.Sfixed64Map -} - -func (this *AllMapsOrdered) GetBoolMap() map[bool]bool { - return this.BoolMap -} - -func (this *AllMapsOrdered) GetStringMap() map[string]string { - return this.StringMap -} - -func (this *AllMapsOrdered) GetStringToBytesMap() map[string][]byte { - return this.StringToBytesMap -} - -func (this *AllMapsOrdered) GetStringToEnumMap() map[string]MapEnum { - return this.StringToEnumMap -} - -func (this *AllMapsOrdered) GetStringToMsgMap() map[string]*FloatingPoint { - return this.StringToMsgMap -} - -func NewAllMapsOrderedFromFace(that AllMapsOrderedFace) *AllMapsOrdered { - this := &AllMapsOrdered{} - this.StringToDoubleMap = that.GetStringToDoubleMap() - this.StringToFloatMap = that.GetStringToFloatMap() - this.Int32Map = that.GetInt32Map() - this.Int64Map = that.GetInt64Map() - this.Uint32Map = that.GetUint32Map() - this.Uint64Map = that.GetUint64Map() - this.Sint32Map = that.GetSint32Map() - this.Sint64Map = that.GetSint64Map() - this.Fixed32Map = that.GetFixed32Map() - this.Sfixed32Map = that.GetSfixed32Map() - this.Fixed64Map = that.GetFixed64Map() - this.Sfixed64Map = that.GetSfixed64Map() - this.BoolMap = that.GetBoolMap() - this.StringMap = that.GetStringMap() - this.StringToBytesMap = that.GetStringToBytesMap() - this.StringToEnumMap = that.GetStringToEnumMap() - this.StringToMsgMap = that.GetStringToMsgMap() - return this -} - -type MessageWithMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNameMapping() map[int32]string - GetMsgMapping() map[int64]*FloatingPoint - GetByteMapping() map[bool][]byte -} - -func (this *MessageWithMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *MessageWithMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewMessageWithMapFromFace(this) -} - -func (this *MessageWithMap) GetNameMapping() map[int32]string { - return this.NameMapping -} - -func (this *MessageWithMap) GetMsgMapping() map[int64]*FloatingPoint { - return this.MsgMapping -} - -func (this *MessageWithMap) GetByteMapping() map[bool][]byte { - return this.ByteMapping -} - -func NewMessageWithMapFromFace(that MessageWithMapFace) *MessageWithMap { - this := &MessageWithMap{} - this.NameMapping = that.GetNameMapping() - this.MsgMapping = that.GetMsgMapping() - this.ByteMapping = that.GetByteMapping() - return this -} - -type FloatingPointFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetF() float64 -} - -func (this *FloatingPoint) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *FloatingPoint) TestProto() github_com_gogo_protobuf_proto.Message { - return NewFloatingPointFromFace(this) -} - -func (this *FloatingPoint) GetF() float64 { - return this.F -} - -func NewFloatingPointFromFace(that FloatingPointFace) *FloatingPoint { - this := &FloatingPoint{} - this.F = that.GetF() - return this -} - -type Uint128PairFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetLeft() github_com_gogo_protobuf_test_custom.Uint128 - GetRight() *github_com_gogo_protobuf_test_custom.Uint128 -} - -func (this *Uint128Pair) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *Uint128Pair) TestProto() github_com_gogo_protobuf_proto.Message { - return NewUint128PairFromFace(this) -} - -func (this *Uint128Pair) GetLeft() github_com_gogo_protobuf_test_custom.Uint128 { - return this.Left -} - -func (this *Uint128Pair) GetRight() *github_com_gogo_protobuf_test_custom.Uint128 { - return this.Right -} - -func NewUint128PairFromFace(that Uint128PairFace) *Uint128Pair { - this := &Uint128Pair{} - this.Left = that.GetLeft() - this.Right = that.GetRight() - return this -} - -type ContainsNestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message -} - -func (this *ContainsNestedMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ContainsNestedMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewContainsNestedMapFromFace(this) -} - -func NewContainsNestedMapFromFace(that ContainsNestedMapFace) *ContainsNestedMap { - this := &ContainsNestedMap{} - return this -} - -type ContainsNestedMap_NestedMapFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetNestedMapField() map[string]float64 -} - -func (this *ContainsNestedMap_NestedMap) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *ContainsNestedMap_NestedMap) TestProto() github_com_gogo_protobuf_proto.Message { - return NewContainsNestedMap_NestedMapFromFace(this) -} - -func (this *ContainsNestedMap_NestedMap) GetNestedMapField() map[string]float64 { - return this.NestedMapField -} - -func NewContainsNestedMap_NestedMapFromFace(that ContainsNestedMap_NestedMapFace) *ContainsNestedMap_NestedMap { - this := &ContainsNestedMap_NestedMap{} - this.NestedMapField = that.GetNestedMapField() - return this -} - -type NotPackedFace interface { - Proto() github_com_gogo_protobuf_proto.Message - GetKey() []uint64 -} - -func (this *NotPacked) Proto() github_com_gogo_protobuf_proto.Message { - return this -} - -func (this *NotPacked) TestProto() github_com_gogo_protobuf_proto.Message { - return NewNotPackedFromFace(this) -} - -func (this *NotPacked) GetKey() []uint64 { - return this.Key -} - -func NewNotPackedFromFace(that NotPackedFace) *NotPacked { - this := &NotPacked{} - this.Key = that.GetKey() - return this -} - -func (this *Message) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 16) - s = append(s, "&theproto3.Message{") - s = append(s, "Name: "+fmt.Sprintf("%#v", this.Name)+",\n") - s = append(s, "Hilarity: "+fmt.Sprintf("%#v", this.Hilarity)+",\n") - s = append(s, "HeightInCm: "+fmt.Sprintf("%#v", this.HeightInCm)+",\n") - s = append(s, "Data: "+fmt.Sprintf("%#v", this.Data)+",\n") - s = append(s, "ResultCount: "+fmt.Sprintf("%#v", this.ResultCount)+",\n") - s = append(s, "TrueScotsman: "+fmt.Sprintf("%#v", this.TrueScotsman)+",\n") - s = append(s, "Score: "+fmt.Sprintf("%#v", this.Score)+",\n") - s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") - if this.Nested != nil { - s = append(s, "Nested: "+fmt.Sprintf("%#v", this.Nested)+",\n") - } - keysForTerrain := make([]int64, 0, len(this.Terrain)) - for k := range this.Terrain { - keysForTerrain = append(keysForTerrain, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) - mapStringForTerrain := "map[int64]*Nested{" - for _, k := range keysForTerrain { - mapStringForTerrain += fmt.Sprintf("%#v: %#v,", k, this.Terrain[k]) - } - mapStringForTerrain += "}" - if this.Terrain != nil { - s = append(s, "Terrain: "+mapStringForTerrain+",\n") - } - if this.Proto2Field != nil { - s = append(s, "Proto2Field: "+fmt.Sprintf("%#v", this.Proto2Field)+",\n") - } - keysForProto2Value := make([]int64, 0, len(this.Proto2Value)) - for k := range this.Proto2Value { - keysForProto2Value = append(keysForProto2Value, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) - mapStringForProto2Value := "map[int64]*test.NinOptEnum{" - for _, k := range keysForProto2Value { - mapStringForProto2Value += fmt.Sprintf("%#v: %#v,", k, this.Proto2Value[k]) - } - mapStringForProto2Value += "}" - if this.Proto2Value != nil { - s = append(s, "Proto2Value: "+mapStringForProto2Value+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Nested) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.Nested{") - s = append(s, "Bunny: "+fmt.Sprintf("%#v", this.Bunny)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMaps) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&theproto3.AllMaps{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *AllMapsOrdered) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 21) - s = append(s, "&theproto3.AllMapsOrdered{") - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%#v: %#v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - if this.StringToDoubleMap != nil { - s = append(s, "StringToDoubleMap: "+mapStringForStringToDoubleMap+",\n") - } - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%#v: %#v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - if this.StringToFloatMap != nil { - s = append(s, "StringToFloatMap: "+mapStringForStringToFloatMap+",\n") - } - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%#v: %#v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - if this.Int32Map != nil { - s = append(s, "Int32Map: "+mapStringForInt32Map+",\n") - } - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%#v: %#v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - if this.Int64Map != nil { - s = append(s, "Int64Map: "+mapStringForInt64Map+",\n") - } - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%#v: %#v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - if this.Uint32Map != nil { - s = append(s, "Uint32Map: "+mapStringForUint32Map+",\n") - } - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%#v: %#v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - if this.Uint64Map != nil { - s = append(s, "Uint64Map: "+mapStringForUint64Map+",\n") - } - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%#v: %#v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - if this.Sint32Map != nil { - s = append(s, "Sint32Map: "+mapStringForSint32Map+",\n") - } - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%#v: %#v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - if this.Sint64Map != nil { - s = append(s, "Sint64Map: "+mapStringForSint64Map+",\n") - } - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - if this.Fixed32Map != nil { - s = append(s, "Fixed32Map: "+mapStringForFixed32Map+",\n") - } - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - if this.Sfixed32Map != nil { - s = append(s, "Sfixed32Map: "+mapStringForSfixed32Map+",\n") - } - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - if this.Fixed64Map != nil { - s = append(s, "Fixed64Map: "+mapStringForFixed64Map+",\n") - } - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%#v: %#v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - if this.Sfixed64Map != nil { - s = append(s, "Sfixed64Map: "+mapStringForSfixed64Map+",\n") - } - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%#v: %#v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - if this.BoolMap != nil { - s = append(s, "BoolMap: "+mapStringForBoolMap+",\n") - } - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%#v: %#v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - if this.StringMap != nil { - s = append(s, "StringMap: "+mapStringForStringMap+",\n") - } - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%#v: %#v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - if this.StringToBytesMap != nil { - s = append(s, "StringToBytesMap: "+mapStringForStringToBytesMap+",\n") - } - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%#v: %#v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - if this.StringToEnumMap != nil { - s = append(s, "StringToEnumMap: "+mapStringForStringToEnumMap+",\n") - } - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%#v: %#v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - if this.StringToMsgMap != nil { - s = append(s, "StringToMsgMap: "+mapStringForStringToMsgMap+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *MessageWithMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 7) - s = append(s, "&theproto3.MessageWithMap{") - keysForNameMapping := make([]int32, 0, len(this.NameMapping)) - for k := range this.NameMapping { - keysForNameMapping = append(keysForNameMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) - mapStringForNameMapping := "map[int32]string{" - for _, k := range keysForNameMapping { - mapStringForNameMapping += fmt.Sprintf("%#v: %#v,", k, this.NameMapping[k]) - } - mapStringForNameMapping += "}" - if this.NameMapping != nil { - s = append(s, "NameMapping: "+mapStringForNameMapping+",\n") - } - keysForMsgMapping := make([]int64, 0, len(this.MsgMapping)) - for k := range this.MsgMapping { - keysForMsgMapping = append(keysForMsgMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) - mapStringForMsgMapping := "map[int64]*FloatingPoint{" - for _, k := range keysForMsgMapping { - mapStringForMsgMapping += fmt.Sprintf("%#v: %#v,", k, this.MsgMapping[k]) - } - mapStringForMsgMapping += "}" - if this.MsgMapping != nil { - s = append(s, "MsgMapping: "+mapStringForMsgMapping+",\n") - } - keysForByteMapping := make([]bool, 0, len(this.ByteMapping)) - for k := range this.ByteMapping { - keysForByteMapping = append(keysForByteMapping, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) - mapStringForByteMapping := "map[bool][]byte{" - for _, k := range keysForByteMapping { - mapStringForByteMapping += fmt.Sprintf("%#v: %#v,", k, this.ByteMapping[k]) - } - mapStringForByteMapping += "}" - if this.ByteMapping != nil { - s = append(s, "ByteMapping: "+mapStringForByteMapping+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *FloatingPoint) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.FloatingPoint{") - s = append(s, "F: "+fmt.Sprintf("%#v", this.F)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *Uint128Pair) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 6) - s = append(s, "&theproto3.Uint128Pair{") - s = append(s, "Left: "+fmt.Sprintf("%#v", this.Left)+",\n") - s = append(s, "Right: "+fmt.Sprintf("%#v", this.Right)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ContainsNestedMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 4) - s = append(s, "&theproto3.ContainsNestedMap{") - s = append(s, "}") - return strings.Join(s, "") -} -func (this *ContainsNestedMap_NestedMap) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.ContainsNestedMap_NestedMap{") - keysForNestedMapField := make([]string, 0, len(this.NestedMapField)) - for k := range this.NestedMapField { - keysForNestedMapField = append(keysForNestedMapField, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) - mapStringForNestedMapField := "map[string]float64{" - for _, k := range keysForNestedMapField { - mapStringForNestedMapField += fmt.Sprintf("%#v: %#v,", k, this.NestedMapField[k]) - } - mapStringForNestedMapField += "}" - if this.NestedMapField != nil { - s = append(s, "NestedMapField: "+mapStringForNestedMapField+",\n") - } - s = append(s, "}") - return strings.Join(s, "") -} -func (this *NotPacked) GoString() string { - if this == nil { - return "nil" - } - s := make([]string, 0, 5) - s = append(s, "&theproto3.NotPacked{") - s = append(s, "Key: "+fmt.Sprintf("%#v", this.Key)+",\n") - s = append(s, "}") - return strings.Join(s, "") -} -func valueToGoStringTheproto3(v interface{}, typ string) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) -} -func NewPopulatedMessage(r randyTheproto3, easy bool) *Message { - this := &Message{} - this.Name = string(randStringTheproto3(r)) - this.Hilarity = Message_Humour([]int32{0, 1, 2, 3}[r.Intn(4)]) - this.HeightInCm = uint32(r.Uint32()) - v1 := r.Intn(100) - this.Data = make([]byte, v1) - for i := 0; i < v1; i++ { - this.Data[i] = byte(r.Intn(256)) - } - this.ResultCount = int64(r.Int63()) - if r.Intn(2) == 0 { - this.ResultCount *= -1 - } - this.TrueScotsman = bool(bool(r.Intn(2) == 0)) - this.Score = float32(r.Float32()) - if r.Intn(2) == 0 { - this.Score *= -1 - } - v2 := r.Intn(10) - this.Key = make([]uint64, v2) - for i := 0; i < v2; i++ { - this.Key[i] = uint64(uint64(r.Uint32())) - } - if r.Intn(10) != 0 { - this.Nested = NewPopulatedNested(r, easy) - } - if r.Intn(10) != 0 { - v3 := r.Intn(10) - this.Terrain = make(map[int64]*Nested) - for i := 0; i < v3; i++ { - this.Terrain[int64(r.Int63())] = NewPopulatedNested(r, easy) - } - } - if r.Intn(10) != 0 { - this.Proto2Field = test.NewPopulatedNinOptNative(r, easy) - } - if r.Intn(10) != 0 { - v4 := r.Intn(10) - this.Proto2Value = make(map[int64]*test.NinOptEnum) - for i := 0; i < v4; i++ { - this.Proto2Value[int64(r.Int63())] = test.NewPopulatedNinOptEnum(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedNested(r randyTheproto3, easy bool) *Nested { - this := &Nested{} - this.Bunny = string(randStringTheproto3(r)) - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedAllMaps(r randyTheproto3, easy bool) *AllMaps { - this := &AllMaps{} - if r.Intn(10) != 0 { - v5 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v5; i++ { - v6 := randStringTheproto3(r) - this.StringToDoubleMap[v6] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v6] *= -1 - } - } - } - if r.Intn(10) != 0 { - v7 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v7; i++ { - v8 := randStringTheproto3(r) - this.StringToFloatMap[v8] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v8] *= -1 - } - } - } - if r.Intn(10) != 0 { - v9 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v9; i++ { - v10 := int32(r.Int31()) - this.Int32Map[v10] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v10] *= -1 - } - } - } - if r.Intn(10) != 0 { - v11 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v11; i++ { - v12 := int64(r.Int63()) - this.Int64Map[v12] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v12] *= -1 - } - } - } - if r.Intn(10) != 0 { - v13 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v13; i++ { - v14 := uint32(r.Uint32()) - this.Uint32Map[v14] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v15 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v15; i++ { - v16 := uint64(uint64(r.Uint32())) - this.Uint64Map[v16] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v17 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v17; i++ { - v18 := int32(r.Int31()) - this.Sint32Map[v18] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v18] *= -1 - } - } - } - if r.Intn(10) != 0 { - v19 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v19; i++ { - v20 := int64(r.Int63()) - this.Sint64Map[v20] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v20] *= -1 - } - } - } - if r.Intn(10) != 0 { - v21 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v21; i++ { - v22 := uint32(r.Uint32()) - this.Fixed32Map[v22] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v23 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v23; i++ { - v24 := int32(r.Int31()) - this.Sfixed32Map[v24] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v24] *= -1 - } - } - } - if r.Intn(10) != 0 { - v25 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v25; i++ { - v26 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v26] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v27 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v27; i++ { - v28 := int64(r.Int63()) - this.Sfixed64Map[v28] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v28] *= -1 - } - } - } - if r.Intn(10) != 0 { - v29 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v29; i++ { - v30 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v30] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v31 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v31; i++ { - this.StringMap[randStringTheproto3(r)] = randStringTheproto3(r) - } - } - if r.Intn(10) != 0 { - v32 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v32; i++ { - v33 := r.Intn(100) - v34 := randStringTheproto3(r) - this.StringToBytesMap[v34] = make([]byte, v33) - for i := 0; i < v33; i++ { - this.StringToBytesMap[v34][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v35 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v35; i++ { - this.StringToEnumMap[randStringTheproto3(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v36 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v36; i++ { - this.StringToMsgMap[randStringTheproto3(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedAllMapsOrdered(r randyTheproto3, easy bool) *AllMapsOrdered { - this := &AllMapsOrdered{} - if r.Intn(10) != 0 { - v37 := r.Intn(10) - this.StringToDoubleMap = make(map[string]float64) - for i := 0; i < v37; i++ { - v38 := randStringTheproto3(r) - this.StringToDoubleMap[v38] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.StringToDoubleMap[v38] *= -1 - } - } - } - if r.Intn(10) != 0 { - v39 := r.Intn(10) - this.StringToFloatMap = make(map[string]float32) - for i := 0; i < v39; i++ { - v40 := randStringTheproto3(r) - this.StringToFloatMap[v40] = float32(r.Float32()) - if r.Intn(2) == 0 { - this.StringToFloatMap[v40] *= -1 - } - } - } - if r.Intn(10) != 0 { - v41 := r.Intn(10) - this.Int32Map = make(map[int32]int32) - for i := 0; i < v41; i++ { - v42 := int32(r.Int31()) - this.Int32Map[v42] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Int32Map[v42] *= -1 - } - } - } - if r.Intn(10) != 0 { - v43 := r.Intn(10) - this.Int64Map = make(map[int64]int64) - for i := 0; i < v43; i++ { - v44 := int64(r.Int63()) - this.Int64Map[v44] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Int64Map[v44] *= -1 - } - } - } - if r.Intn(10) != 0 { - v45 := r.Intn(10) - this.Uint32Map = make(map[uint32]uint32) - for i := 0; i < v45; i++ { - v46 := uint32(r.Uint32()) - this.Uint32Map[v46] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v47 := r.Intn(10) - this.Uint64Map = make(map[uint64]uint64) - for i := 0; i < v47; i++ { - v48 := uint64(uint64(r.Uint32())) - this.Uint64Map[v48] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v49 := r.Intn(10) - this.Sint32Map = make(map[int32]int32) - for i := 0; i < v49; i++ { - v50 := int32(r.Int31()) - this.Sint32Map[v50] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sint32Map[v50] *= -1 - } - } - } - if r.Intn(10) != 0 { - v51 := r.Intn(10) - this.Sint64Map = make(map[int64]int64) - for i := 0; i < v51; i++ { - v52 := int64(r.Int63()) - this.Sint64Map[v52] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sint64Map[v52] *= -1 - } - } - } - if r.Intn(10) != 0 { - v53 := r.Intn(10) - this.Fixed32Map = make(map[uint32]uint32) - for i := 0; i < v53; i++ { - v54 := uint32(r.Uint32()) - this.Fixed32Map[v54] = uint32(r.Uint32()) - } - } - if r.Intn(10) != 0 { - v55 := r.Intn(10) - this.Sfixed32Map = make(map[int32]int32) - for i := 0; i < v55; i++ { - v56 := int32(r.Int31()) - this.Sfixed32Map[v56] = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Sfixed32Map[v56] *= -1 - } - } - } - if r.Intn(10) != 0 { - v57 := r.Intn(10) - this.Fixed64Map = make(map[uint64]uint64) - for i := 0; i < v57; i++ { - v58 := uint64(uint64(r.Uint32())) - this.Fixed64Map[v58] = uint64(uint64(r.Uint32())) - } - } - if r.Intn(10) != 0 { - v59 := r.Intn(10) - this.Sfixed64Map = make(map[int64]int64) - for i := 0; i < v59; i++ { - v60 := int64(r.Int63()) - this.Sfixed64Map[v60] = int64(r.Int63()) - if r.Intn(2) == 0 { - this.Sfixed64Map[v60] *= -1 - } - } - } - if r.Intn(10) != 0 { - v61 := r.Intn(10) - this.BoolMap = make(map[bool]bool) - for i := 0; i < v61; i++ { - v62 := bool(bool(r.Intn(2) == 0)) - this.BoolMap[v62] = bool(bool(r.Intn(2) == 0)) - } - } - if r.Intn(10) != 0 { - v63 := r.Intn(10) - this.StringMap = make(map[string]string) - for i := 0; i < v63; i++ { - this.StringMap[randStringTheproto3(r)] = randStringTheproto3(r) - } - } - if r.Intn(10) != 0 { - v64 := r.Intn(10) - this.StringToBytesMap = make(map[string][]byte) - for i := 0; i < v64; i++ { - v65 := r.Intn(100) - v66 := randStringTheproto3(r) - this.StringToBytesMap[v66] = make([]byte, v65) - for i := 0; i < v65; i++ { - this.StringToBytesMap[v66][i] = byte(r.Intn(256)) - } - } - } - if r.Intn(10) != 0 { - v67 := r.Intn(10) - this.StringToEnumMap = make(map[string]MapEnum) - for i := 0; i < v67; i++ { - this.StringToEnumMap[randStringTheproto3(r)] = MapEnum([]int32{0, 1, 2}[r.Intn(3)]) - } - } - if r.Intn(10) != 0 { - v68 := r.Intn(10) - this.StringToMsgMap = make(map[string]*FloatingPoint) - for i := 0; i < v68; i++ { - this.StringToMsgMap[randStringTheproto3(r)] = NewPopulatedFloatingPoint(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedMessageWithMap(r randyTheproto3, easy bool) *MessageWithMap { - this := &MessageWithMap{} - if r.Intn(10) != 0 { - v69 := r.Intn(10) - this.NameMapping = make(map[int32]string) - for i := 0; i < v69; i++ { - this.NameMapping[int32(r.Int31())] = randStringTheproto3(r) - } - } - if r.Intn(10) != 0 { - v70 := r.Intn(10) - this.MsgMapping = make(map[int64]*FloatingPoint) - for i := 0; i < v70; i++ { - this.MsgMapping[int64(r.Int63())] = NewPopulatedFloatingPoint(r, easy) - } - } - if r.Intn(10) != 0 { - v71 := r.Intn(10) - this.ByteMapping = make(map[bool][]byte) - for i := 0; i < v71; i++ { - v72 := r.Intn(100) - v73 := bool(bool(r.Intn(2) == 0)) - this.ByteMapping[v73] = make([]byte, v72) - for i := 0; i < v72; i++ { - this.ByteMapping[v73][i] = byte(r.Intn(256)) - } - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedFloatingPoint(r randyTheproto3, easy bool) *FloatingPoint { - this := &FloatingPoint{} - this.F = float64(r.Float64()) - if r.Intn(2) == 0 { - this.F *= -1 - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedUint128Pair(r randyTheproto3, easy bool) *Uint128Pair { - this := &Uint128Pair{} - v74 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - this.Left = *v74 - this.Right = github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r) - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedContainsNestedMap(r randyTheproto3, easy bool) *ContainsNestedMap { - this := &ContainsNestedMap{} - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedContainsNestedMap_NestedMap(r randyTheproto3, easy bool) *ContainsNestedMap_NestedMap { - this := &ContainsNestedMap_NestedMap{} - if r.Intn(10) != 0 { - v75 := r.Intn(10) - this.NestedMapField = make(map[string]float64) - for i := 0; i < v75; i++ { - v76 := randStringTheproto3(r) - this.NestedMapField[v76] = float64(r.Float64()) - if r.Intn(2) == 0 { - this.NestedMapField[v76] *= -1 - } - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedNotPacked(r randyTheproto3, easy bool) *NotPacked { - this := &NotPacked{} - v77 := r.Intn(10) - this.Key = make([]uint64, v77) - for i := 0; i < v77; i++ { - this.Key[i] = uint64(uint64(r.Uint32())) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -type randyTheproto3 interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneTheproto3(r randyTheproto3) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringTheproto3(r randyTheproto3) string { - v78 := r.Intn(100) - tmps := make([]rune, v78) - for i := 0; i < v78; i++ { - tmps[i] = randUTF8RuneTheproto3(r) - } - return string(tmps) -} -func randUnrecognizedTheproto3(r randyTheproto3, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldTheproto3(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldTheproto3(dAtA []byte, r randyTheproto3, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - v79 := r.Int63() - if r.Intn(2) == 0 { - v79 *= -1 - } - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(v79)) - case 1: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateTheproto3(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateTheproto3(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *Message) Size() (n int) { - var l int - _ = l - l = len(m.Name) - if l > 0 { - n += 1 + l + sovTheproto3(uint64(l)) - } - if m.Hilarity != 0 { - n += 1 + sovTheproto3(uint64(m.Hilarity)) - } - if m.HeightInCm != 0 { - n += 1 + sovTheproto3(uint64(m.HeightInCm)) - } - l = len(m.Data) - if l > 0 { - n += 1 + l + sovTheproto3(uint64(l)) - } - if m.ResultCount != 0 { - n += 1 + sovTheproto3(uint64(m.ResultCount)) - } - if m.TrueScotsman { - n += 2 - } - if m.Score != 0 { - n += 5 - } - if len(m.Key) > 0 { - l = 0 - for _, e := range m.Key { - l += sovTheproto3(uint64(e)) - } - n += 1 + sovTheproto3(uint64(l)) + l - } - if m.Nested != nil { - l = m.Nested.Size() - n += 1 + l + sovTheproto3(uint64(l)) - } - if len(m.Terrain) > 0 { - for k, v := range m.Terrain { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if m.Proto2Field != nil { - l = m.Proto2Field.Size() - n += 1 + l + sovTheproto3(uint64(l)) - } - if len(m.Proto2Value) > 0 { - for k, v := range m.Proto2Value { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + sovTheproto3(uint64(k)) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *Nested) Size() (n int) { - var l int - _ = l - l = len(m.Bunny) - if l > 0 { - n += 1 + l + sovTheproto3(uint64(l)) - } - return n -} - -func (m *AllMaps) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if len(v) > 0 { - l = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *AllMapsOrdered) Size() (n int) { - var l int - _ = l - if len(m.StringToDoubleMap) > 0 { - for k, v := range m.StringToDoubleMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToFloatMap) > 0 { - for k, v := range m.StringToFloatMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int32Map) > 0 { - for k, v := range m.Int32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Int64Map) > 0 { - for k, v := range m.Int64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint32Map) > 0 { - for k, v := range m.Uint32Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Uint64Map) > 0 { - for k, v := range m.Uint64Map { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint32Map) > 0 { - for k, v := range m.Sint32Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sint64Map) > 0 { - for k, v := range m.Sint64Map { - _ = k - _ = v - mapEntrySize := 1 + sozTheproto3(uint64(k)) + 1 + sozTheproto3(uint64(v)) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed32Map) > 0 { - for k, v := range m.Fixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed32Map) > 0 { - for k, v := range m.Sfixed32Map { - _ = k - _ = v - mapEntrySize := 1 + 4 + 1 + 4 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Fixed64Map) > 0 { - for k, v := range m.Fixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.Sfixed64Map) > 0 { - for k, v := range m.Sfixed64Map { - _ = k - _ = v - mapEntrySize := 1 + 8 + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.BoolMap) > 0 { - for k, v := range m.BoolMap { - _ = k - _ = v - mapEntrySize := 1 + 1 + 1 + 1 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringMap) > 0 { - for k, v := range m.StringMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + len(v) + sovTheproto3(uint64(len(v))) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToBytesMap) > 0 { - for k, v := range m.StringToBytesMap { - _ = k - _ = v - l = 0 - if len(v) > 0 { - l = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToEnumMap) > 0 { - for k, v := range m.StringToEnumMap { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + sovTheproto3(uint64(v)) - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.StringToMsgMap) > 0 { - for k, v := range m.StringToMsgMap { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + l - n += mapEntrySize + 2 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *MessageWithMap) Size() (n int) { - var l int - _ = l - if len(m.NameMapping) > 0 { - for k, v := range m.NameMapping { - _ = k - _ = v - mapEntrySize := 1 + sovTheproto3(uint64(k)) + 1 + len(v) + sovTheproto3(uint64(len(v))) - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.MsgMapping) > 0 { - for k, v := range m.MsgMapping { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTheproto3(uint64(l)) - } - mapEntrySize := 1 + sozTheproto3(uint64(k)) + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - if len(m.ByteMapping) > 0 { - for k, v := range m.ByteMapping { - _ = k - _ = v - l = 0 - if len(v) > 0 { - l = 1 + len(v) + sovTheproto3(uint64(len(v))) - } - mapEntrySize := 1 + 1 + l - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *FloatingPoint) Size() (n int) { - var l int - _ = l - if m.F != 0 { - n += 9 - } - return n -} - -func (m *Uint128Pair) Size() (n int) { - var l int - _ = l - l = m.Left.Size() - n += 1 + l + sovTheproto3(uint64(l)) - if m.Right != nil { - l = m.Right.Size() - n += 1 + l + sovTheproto3(uint64(l)) - } - return n -} - -func (m *ContainsNestedMap) Size() (n int) { - var l int - _ = l - return n -} - -func (m *ContainsNestedMap_NestedMap) Size() (n int) { - var l int - _ = l - if len(m.NestedMapField) > 0 { - for k, v := range m.NestedMapField { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovTheproto3(uint64(len(k))) + 1 + 8 - n += mapEntrySize + 1 + sovTheproto3(uint64(mapEntrySize)) - } - } - return n -} - -func (m *NotPacked) Size() (n int) { - var l int - _ = l - if len(m.Key) > 0 { - for _, e := range m.Key { - n += 1 + sovTheproto3(uint64(e)) - } - } - return n -} - -func sovTheproto3(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozTheproto3(x uint64) (n int) { - return sovTheproto3(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Message) String() string { - if this == nil { - return "nil" - } - keysForTerrain := make([]int64, 0, len(this.Terrain)) - for k := range this.Terrain { - keysForTerrain = append(keysForTerrain, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForTerrain) - mapStringForTerrain := "map[int64]*Nested{" - for _, k := range keysForTerrain { - mapStringForTerrain += fmt.Sprintf("%v: %v,", k, this.Terrain[k]) - } - mapStringForTerrain += "}" - keysForProto2Value := make([]int64, 0, len(this.Proto2Value)) - for k := range this.Proto2Value { - keysForProto2Value = append(keysForProto2Value, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForProto2Value) - mapStringForProto2Value := "map[int64]*test.NinOptEnum{" - for _, k := range keysForProto2Value { - mapStringForProto2Value += fmt.Sprintf("%v: %v,", k, this.Proto2Value[k]) - } - mapStringForProto2Value += "}" - s := strings.Join([]string{`&Message{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Hilarity:` + fmt.Sprintf("%v", this.Hilarity) + `,`, - `HeightInCm:` + fmt.Sprintf("%v", this.HeightInCm) + `,`, - `Data:` + fmt.Sprintf("%v", this.Data) + `,`, - `ResultCount:` + fmt.Sprintf("%v", this.ResultCount) + `,`, - `TrueScotsman:` + fmt.Sprintf("%v", this.TrueScotsman) + `,`, - `Score:` + fmt.Sprintf("%v", this.Score) + `,`, - `Key:` + fmt.Sprintf("%v", this.Key) + `,`, - `Nested:` + strings.Replace(fmt.Sprintf("%v", this.Nested), "Nested", "Nested", 1) + `,`, - `Terrain:` + mapStringForTerrain + `,`, - `Proto2Field:` + strings.Replace(fmt.Sprintf("%v", this.Proto2Field), "NinOptNative", "test.NinOptNative", 1) + `,`, - `Proto2Value:` + mapStringForProto2Value + `,`, - `}`, - }, "") - return s -} -func (this *Nested) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Nested{`, - `Bunny:` + fmt.Sprintf("%v", this.Bunny) + `,`, - `}`, - }, "") - return s -} -func (this *AllMaps) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMaps{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `}`, - }, "") - return s -} -func (this *AllMapsOrdered) String() string { - if this == nil { - return "nil" - } - keysForStringToDoubleMap := make([]string, 0, len(this.StringToDoubleMap)) - for k := range this.StringToDoubleMap { - keysForStringToDoubleMap = append(keysForStringToDoubleMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToDoubleMap) - mapStringForStringToDoubleMap := "map[string]float64{" - for _, k := range keysForStringToDoubleMap { - mapStringForStringToDoubleMap += fmt.Sprintf("%v: %v,", k, this.StringToDoubleMap[k]) - } - mapStringForStringToDoubleMap += "}" - keysForStringToFloatMap := make([]string, 0, len(this.StringToFloatMap)) - for k := range this.StringToFloatMap { - keysForStringToFloatMap = append(keysForStringToFloatMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToFloatMap) - mapStringForStringToFloatMap := "map[string]float32{" - for _, k := range keysForStringToFloatMap { - mapStringForStringToFloatMap += fmt.Sprintf("%v: %v,", k, this.StringToFloatMap[k]) - } - mapStringForStringToFloatMap += "}" - keysForInt32Map := make([]int32, 0, len(this.Int32Map)) - for k := range this.Int32Map { - keysForInt32Map = append(keysForInt32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForInt32Map) - mapStringForInt32Map := "map[int32]int32{" - for _, k := range keysForInt32Map { - mapStringForInt32Map += fmt.Sprintf("%v: %v,", k, this.Int32Map[k]) - } - mapStringForInt32Map += "}" - keysForInt64Map := make([]int64, 0, len(this.Int64Map)) - for k := range this.Int64Map { - keysForInt64Map = append(keysForInt64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForInt64Map) - mapStringForInt64Map := "map[int64]int64{" - for _, k := range keysForInt64Map { - mapStringForInt64Map += fmt.Sprintf("%v: %v,", k, this.Int64Map[k]) - } - mapStringForInt64Map += "}" - keysForUint32Map := make([]uint32, 0, len(this.Uint32Map)) - for k := range this.Uint32Map { - keysForUint32Map = append(keysForUint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForUint32Map) - mapStringForUint32Map := "map[uint32]uint32{" - for _, k := range keysForUint32Map { - mapStringForUint32Map += fmt.Sprintf("%v: %v,", k, this.Uint32Map[k]) - } - mapStringForUint32Map += "}" - keysForUint64Map := make([]uint64, 0, len(this.Uint64Map)) - for k := range this.Uint64Map { - keysForUint64Map = append(keysForUint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForUint64Map) - mapStringForUint64Map := "map[uint64]uint64{" - for _, k := range keysForUint64Map { - mapStringForUint64Map += fmt.Sprintf("%v: %v,", k, this.Uint64Map[k]) - } - mapStringForUint64Map += "}" - keysForSint32Map := make([]int32, 0, len(this.Sint32Map)) - for k := range this.Sint32Map { - keysForSint32Map = append(keysForSint32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSint32Map) - mapStringForSint32Map := "map[int32]int32{" - for _, k := range keysForSint32Map { - mapStringForSint32Map += fmt.Sprintf("%v: %v,", k, this.Sint32Map[k]) - } - mapStringForSint32Map += "}" - keysForSint64Map := make([]int64, 0, len(this.Sint64Map)) - for k := range this.Sint64Map { - keysForSint64Map = append(keysForSint64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSint64Map) - mapStringForSint64Map := "map[int64]int64{" - for _, k := range keysForSint64Map { - mapStringForSint64Map += fmt.Sprintf("%v: %v,", k, this.Sint64Map[k]) - } - mapStringForSint64Map += "}" - keysForFixed32Map := make([]uint32, 0, len(this.Fixed32Map)) - for k := range this.Fixed32Map { - keysForFixed32Map = append(keysForFixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint32s(keysForFixed32Map) - mapStringForFixed32Map := "map[uint32]uint32{" - for _, k := range keysForFixed32Map { - mapStringForFixed32Map += fmt.Sprintf("%v: %v,", k, this.Fixed32Map[k]) - } - mapStringForFixed32Map += "}" - keysForSfixed32Map := make([]int32, 0, len(this.Sfixed32Map)) - for k := range this.Sfixed32Map { - keysForSfixed32Map = append(keysForSfixed32Map, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForSfixed32Map) - mapStringForSfixed32Map := "map[int32]int32{" - for _, k := range keysForSfixed32Map { - mapStringForSfixed32Map += fmt.Sprintf("%v: %v,", k, this.Sfixed32Map[k]) - } - mapStringForSfixed32Map += "}" - keysForFixed64Map := make([]uint64, 0, len(this.Fixed64Map)) - for k := range this.Fixed64Map { - keysForFixed64Map = append(keysForFixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Uint64s(keysForFixed64Map) - mapStringForFixed64Map := "map[uint64]uint64{" - for _, k := range keysForFixed64Map { - mapStringForFixed64Map += fmt.Sprintf("%v: %v,", k, this.Fixed64Map[k]) - } - mapStringForFixed64Map += "}" - keysForSfixed64Map := make([]int64, 0, len(this.Sfixed64Map)) - for k := range this.Sfixed64Map { - keysForSfixed64Map = append(keysForSfixed64Map, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForSfixed64Map) - mapStringForSfixed64Map := "map[int64]int64{" - for _, k := range keysForSfixed64Map { - mapStringForSfixed64Map += fmt.Sprintf("%v: %v,", k, this.Sfixed64Map[k]) - } - mapStringForSfixed64Map += "}" - keysForBoolMap := make([]bool, 0, len(this.BoolMap)) - for k := range this.BoolMap { - keysForBoolMap = append(keysForBoolMap, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForBoolMap) - mapStringForBoolMap := "map[bool]bool{" - for _, k := range keysForBoolMap { - mapStringForBoolMap += fmt.Sprintf("%v: %v,", k, this.BoolMap[k]) - } - mapStringForBoolMap += "}" - keysForStringMap := make([]string, 0, len(this.StringMap)) - for k := range this.StringMap { - keysForStringMap = append(keysForStringMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringMap) - mapStringForStringMap := "map[string]string{" - for _, k := range keysForStringMap { - mapStringForStringMap += fmt.Sprintf("%v: %v,", k, this.StringMap[k]) - } - mapStringForStringMap += "}" - keysForStringToBytesMap := make([]string, 0, len(this.StringToBytesMap)) - for k := range this.StringToBytesMap { - keysForStringToBytesMap = append(keysForStringToBytesMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToBytesMap) - mapStringForStringToBytesMap := "map[string][]byte{" - for _, k := range keysForStringToBytesMap { - mapStringForStringToBytesMap += fmt.Sprintf("%v: %v,", k, this.StringToBytesMap[k]) - } - mapStringForStringToBytesMap += "}" - keysForStringToEnumMap := make([]string, 0, len(this.StringToEnumMap)) - for k := range this.StringToEnumMap { - keysForStringToEnumMap = append(keysForStringToEnumMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToEnumMap) - mapStringForStringToEnumMap := "map[string]MapEnum{" - for _, k := range keysForStringToEnumMap { - mapStringForStringToEnumMap += fmt.Sprintf("%v: %v,", k, this.StringToEnumMap[k]) - } - mapStringForStringToEnumMap += "}" - keysForStringToMsgMap := make([]string, 0, len(this.StringToMsgMap)) - for k := range this.StringToMsgMap { - keysForStringToMsgMap = append(keysForStringToMsgMap, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForStringToMsgMap) - mapStringForStringToMsgMap := "map[string]*FloatingPoint{" - for _, k := range keysForStringToMsgMap { - mapStringForStringToMsgMap += fmt.Sprintf("%v: %v,", k, this.StringToMsgMap[k]) - } - mapStringForStringToMsgMap += "}" - s := strings.Join([]string{`&AllMapsOrdered{`, - `StringToDoubleMap:` + mapStringForStringToDoubleMap + `,`, - `StringToFloatMap:` + mapStringForStringToFloatMap + `,`, - `Int32Map:` + mapStringForInt32Map + `,`, - `Int64Map:` + mapStringForInt64Map + `,`, - `Uint32Map:` + mapStringForUint32Map + `,`, - `Uint64Map:` + mapStringForUint64Map + `,`, - `Sint32Map:` + mapStringForSint32Map + `,`, - `Sint64Map:` + mapStringForSint64Map + `,`, - `Fixed32Map:` + mapStringForFixed32Map + `,`, - `Sfixed32Map:` + mapStringForSfixed32Map + `,`, - `Fixed64Map:` + mapStringForFixed64Map + `,`, - `Sfixed64Map:` + mapStringForSfixed64Map + `,`, - `BoolMap:` + mapStringForBoolMap + `,`, - `StringMap:` + mapStringForStringMap + `,`, - `StringToBytesMap:` + mapStringForStringToBytesMap + `,`, - `StringToEnumMap:` + mapStringForStringToEnumMap + `,`, - `StringToMsgMap:` + mapStringForStringToMsgMap + `,`, - `}`, - }, "") - return s -} -func (this *MessageWithMap) String() string { - if this == nil { - return "nil" - } - keysForNameMapping := make([]int32, 0, len(this.NameMapping)) - for k := range this.NameMapping { - keysForNameMapping = append(keysForNameMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int32s(keysForNameMapping) - mapStringForNameMapping := "map[int32]string{" - for _, k := range keysForNameMapping { - mapStringForNameMapping += fmt.Sprintf("%v: %v,", k, this.NameMapping[k]) - } - mapStringForNameMapping += "}" - keysForMsgMapping := make([]int64, 0, len(this.MsgMapping)) - for k := range this.MsgMapping { - keysForMsgMapping = append(keysForMsgMapping, k) - } - github_com_gogo_protobuf_sortkeys.Int64s(keysForMsgMapping) - mapStringForMsgMapping := "map[int64]*FloatingPoint{" - for _, k := range keysForMsgMapping { - mapStringForMsgMapping += fmt.Sprintf("%v: %v,", k, this.MsgMapping[k]) - } - mapStringForMsgMapping += "}" - keysForByteMapping := make([]bool, 0, len(this.ByteMapping)) - for k := range this.ByteMapping { - keysForByteMapping = append(keysForByteMapping, k) - } - github_com_gogo_protobuf_sortkeys.Bools(keysForByteMapping) - mapStringForByteMapping := "map[bool][]byte{" - for _, k := range keysForByteMapping { - mapStringForByteMapping += fmt.Sprintf("%v: %v,", k, this.ByteMapping[k]) - } - mapStringForByteMapping += "}" - s := strings.Join([]string{`&MessageWithMap{`, - `NameMapping:` + mapStringForNameMapping + `,`, - `MsgMapping:` + mapStringForMsgMapping + `,`, - `ByteMapping:` + mapStringForByteMapping + `,`, - `}`, - }, "") - return s -} -func (this *FloatingPoint) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&FloatingPoint{`, - `F:` + fmt.Sprintf("%v", this.F) + `,`, - `}`, - }, "") - return s -} -func (this *Uint128Pair) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Uint128Pair{`, - `Left:` + fmt.Sprintf("%v", this.Left) + `,`, - `Right:` + fmt.Sprintf("%v", this.Right) + `,`, - `}`, - }, "") - return s -} -func (this *ContainsNestedMap) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ContainsNestedMap{`, - `}`, - }, "") - return s -} -func (this *ContainsNestedMap_NestedMap) String() string { - if this == nil { - return "nil" - } - keysForNestedMapField := make([]string, 0, len(this.NestedMapField)) - for k := range this.NestedMapField { - keysForNestedMapField = append(keysForNestedMapField, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForNestedMapField) - mapStringForNestedMapField := "map[string]float64{" - for _, k := range keysForNestedMapField { - mapStringForNestedMapField += fmt.Sprintf("%v: %v,", k, this.NestedMapField[k]) - } - mapStringForNestedMapField += "}" - s := strings.Join([]string{`&ContainsNestedMap_NestedMap{`, - `NestedMapField:` + mapStringForNestedMapField + `,`, - `}`, - }, "") - return s -} -func (this *NotPacked) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NotPacked{`, - `Key:` + fmt.Sprintf("%v", this.Key) + `,`, - `}`, - }, "") - return s -} -func valueToStringTheproto3(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Message) 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 ErrIntOverflowTheproto3Unsafe - } - 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: Message: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Message: 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 ErrIntOverflowTheproto3Unsafe - } - 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 ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Hilarity", wireType) - } - m.Hilarity = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Hilarity |= (Message_Humour(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HeightInCm", wireType) - } - m.HeightInCm = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.HeightInCm |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} - } - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ResultCount", wireType) - } - m.ResultCount = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ResultCount |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TrueScotsman", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TrueScotsman = bool(v != 0) - case 9: - if wireType != 5 { - return fmt.Errorf("proto: wrong wireType = %d for field Score", wireType) - } - if iNdEx+4 > l { - return io.ErrUnexpectedEOF - } - m.Score = *(*float32)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 4 - case 5: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Key = append(m.Key, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Key = append(m.Key, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) - } - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nested", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Nested == nil { - m.Nested = &Nested{} - } - if err := m.Nested.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Terrain", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Terrain == nil { - m.Terrain = make(map[int64]*Nested) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Nested{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Terrain[mapkey] = mapvalue - } else { - var mapvalue *Nested - m.Terrain[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Proto2Field", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Proto2Field == nil { - m.Proto2Field = &test.NinOptNative{} - } - if err := m.Proto2Field.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Proto2Value", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Proto2Value == nil { - m.Proto2Value = make(map[int64]*test.NinOptEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &test.NinOptEnum{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Proto2Value[mapkey] = mapvalue - } else { - var mapvalue *test.NinOptEnum - m.Proto2Value[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Nested) 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 ErrIntOverflowTheproto3Unsafe - } - 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: Nested: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Nested: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bunny", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - 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 ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Bunny = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllMaps) 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 ErrIntOverflowTheproto3Unsafe - } - 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: AllMaps: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllMaps: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 17: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToMsgMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AllMapsOrdered) 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 ErrIntOverflowTheproto3Unsafe - } - 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: AllMapsOrdered: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllMapsOrdered: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToDoubleMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToDoubleMap == nil { - m.StringToDoubleMap = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.StringToDoubleMap[mapkey] = mapvalue - } else { - var mapvalue float64 - m.StringToDoubleMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToFloatMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToFloatMap == nil { - m.StringToFloatMap = make(map[string]float32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvaluetemp = uint32(dAtA[iNdEx-4]) - mapvaluetemp |= uint32(dAtA[iNdEx-3]) << 8 - mapvaluetemp |= uint32(dAtA[iNdEx-2]) << 16 - mapvaluetemp |= uint32(dAtA[iNdEx-1]) << 24 - mapvalue := math.Float32frombits(mapvaluetemp) - m.StringToFloatMap[mapkey] = mapvalue - } else { - var mapvalue float32 - m.StringToFloatMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int32Map == nil { - m.Int32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Int32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Int64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Int64Map == nil { - m.Int64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Int64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Int64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint32Map == nil { - m.Uint32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Uint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Uint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Uint64Map == nil { - m.Uint64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Uint64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Uint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = int32((uint32(mapkeytemp) >> 1) ^ uint32(((mapkeytemp&1)<<31)>>31)) - mapkey := int32(mapkeytemp) - if m.Sint32Map == nil { - m.Sint32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = int32((uint32(mapvaluetemp) >> 1) ^ uint32(((mapvaluetemp&1)<<31)>>31)) - mapvalue := int32(mapvaluetemp) - m.Sint32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sint32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sint64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.Sint64Map == nil { - m.Sint64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvaluetemp = (mapvaluetemp >> 1) ^ uint64((int64(mapvaluetemp&1)<<63)>>63) - mapvalue := int64(mapvaluetemp) - m.Sint64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sint64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = uint32(dAtA[iNdEx-4]) - mapkey |= uint32(dAtA[iNdEx-3]) << 8 - mapkey |= uint32(dAtA[iNdEx-2]) << 16 - mapkey |= uint32(dAtA[iNdEx-1]) << 24 - if m.Fixed32Map == nil { - m.Fixed32Map = make(map[uint32]uint32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = uint32(dAtA[iNdEx-4]) - mapvalue |= uint32(dAtA[iNdEx-3]) << 8 - mapvalue |= uint32(dAtA[iNdEx-2]) << 16 - mapvalue |= uint32(dAtA[iNdEx-1]) << 24 - m.Fixed32Map[mapkey] = mapvalue - } else { - var mapvalue uint32 - m.Fixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapkey = int32(dAtA[iNdEx-4]) - mapkey |= int32(dAtA[iNdEx-3]) << 8 - mapkey |= int32(dAtA[iNdEx-2]) << 16 - mapkey |= int32(dAtA[iNdEx-1]) << 24 - if m.Sfixed32Map == nil { - m.Sfixed32Map = make(map[int32]int32) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int32 - if (iNdEx + 4) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 4 - mapvalue = int32(dAtA[iNdEx-4]) - mapvalue |= int32(dAtA[iNdEx-3]) << 8 - mapvalue |= int32(dAtA[iNdEx-2]) << 16 - mapvalue |= int32(dAtA[iNdEx-1]) << 24 - m.Sfixed32Map[mapkey] = mapvalue - } else { - var mapvalue int32 - m.Sfixed32Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = uint64(dAtA[iNdEx-8]) - mapkey |= uint64(dAtA[iNdEx-7]) << 8 - mapkey |= uint64(dAtA[iNdEx-6]) << 16 - mapkey |= uint64(dAtA[iNdEx-5]) << 24 - mapkey |= uint64(dAtA[iNdEx-4]) << 32 - mapkey |= uint64(dAtA[iNdEx-3]) << 40 - mapkey |= uint64(dAtA[iNdEx-2]) << 48 - mapkey |= uint64(dAtA[iNdEx-1]) << 56 - if m.Fixed64Map == nil { - m.Fixed64Map = make(map[uint64]uint64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = uint64(dAtA[iNdEx-8]) - mapvalue |= uint64(dAtA[iNdEx-7]) << 8 - mapvalue |= uint64(dAtA[iNdEx-6]) << 16 - mapvalue |= uint64(dAtA[iNdEx-5]) << 24 - mapvalue |= uint64(dAtA[iNdEx-4]) << 32 - mapvalue |= uint64(dAtA[iNdEx-3]) << 40 - mapvalue |= uint64(dAtA[iNdEx-2]) << 48 - mapvalue |= uint64(dAtA[iNdEx-1]) << 56 - m.Fixed64Map[mapkey] = mapvalue - } else { - var mapvalue uint64 - m.Fixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sfixed64Map", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapkey = int64(dAtA[iNdEx-8]) - mapkey |= int64(dAtA[iNdEx-7]) << 8 - mapkey |= int64(dAtA[iNdEx-6]) << 16 - mapkey |= int64(dAtA[iNdEx-5]) << 24 - mapkey |= int64(dAtA[iNdEx-4]) << 32 - mapkey |= int64(dAtA[iNdEx-3]) << 40 - mapkey |= int64(dAtA[iNdEx-2]) << 48 - mapkey |= int64(dAtA[iNdEx-1]) << 56 - if m.Sfixed64Map == nil { - m.Sfixed64Map = make(map[int64]int64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue int64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvalue = int64(dAtA[iNdEx-8]) - mapvalue |= int64(dAtA[iNdEx-7]) << 8 - mapvalue |= int64(dAtA[iNdEx-6]) << 16 - mapvalue |= int64(dAtA[iNdEx-5]) << 24 - mapvalue |= int64(dAtA[iNdEx-4]) << 32 - mapvalue |= int64(dAtA[iNdEx-3]) << 40 - mapvalue |= int64(dAtA[iNdEx-2]) << 48 - mapvalue |= int64(dAtA[iNdEx-1]) << 56 - m.Sfixed64Map[mapkey] = mapvalue - } else { - var mapvalue int64 - m.Sfixed64Map[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BoolMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.BoolMap == nil { - m.BoolMap = make(map[bool]bool) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvaluetemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapvalue := bool(mapvaluetemp != 0) - m.BoolMap[mapkey] = mapvalue - } else { - var mapvalue bool - m.BoolMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringMap == nil { - m.StringMap = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringMap[mapkey] = mapvalue - } else { - var mapvalue string - m.StringMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToBytesMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToBytesMap == nil { - m.StringToBytesMap = make(map[string][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.StringToBytesMap[mapkey] = mapvalue - } else { - var mapvalue []byte - m.StringToBytesMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToEnumMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToEnumMap == nil { - m.StringToEnumMap = make(map[string]MapEnum) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvalue MapEnum - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapvalue |= (MapEnum(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.StringToEnumMap[mapkey] = mapvalue - } else { - var mapvalue MapEnum - m.StringToEnumMap[mapkey] = mapvalue - } - iNdEx = postIndex - case 17: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StringToMsgMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.StringToMsgMap == nil { - m.StringToMsgMap = make(map[string]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.StringToMsgMap[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.StringToMsgMap[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MessageWithMap) 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 ErrIntOverflowTheproto3Unsafe - } - 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: MessageWithMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MessageWithMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NameMapping", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NameMapping == nil { - m.NameMapping = make(map[int32]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.NameMapping[mapkey] = mapvalue - } else { - var mapvalue string - m.NameMapping[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MsgMapping", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkeytemp = (mapkeytemp >> 1) ^ uint64((int64(mapkeytemp&1)<<63)>>63) - mapkey := int64(mapkeytemp) - if m.MsgMapping == nil { - m.MsgMapping = make(map[int64]*FloatingPoint) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &FloatingPoint{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MsgMapping[mapkey] = mapvalue - } else { - var mapvalue *FloatingPoint - m.MsgMapping[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ByteMapping", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkeytemp int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkeytemp |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - mapkey := bool(mapkeytemp != 0) - if m.ByteMapping == nil { - m.ByteMapping = make(map[bool][]byte) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.ByteMapping[mapkey] = mapvalue - } else { - var mapvalue []byte - m.ByteMapping[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *FloatingPoint) 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 ErrIntOverflowTheproto3Unsafe - } - 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: FloatingPoint: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: FloatingPoint: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field F", wireType) - } - if iNdEx+8 > l { - return io.ErrUnexpectedEOF - } - m.F = *(*float64)(unsafe.Pointer(&dAtA[iNdEx])) - iNdEx += 8 - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Uint128Pair) 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 ErrIntOverflowTheproto3Unsafe - } - 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: Uint128Pair: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Uint128Pair: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Left.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v github_com_gogo_protobuf_test_custom.Uint128 - m.Right = &v - if err := m.Right.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ContainsNestedMap) 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 ErrIntOverflowTheproto3Unsafe - } - 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: ContainsNestedMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ContainsNestedMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ContainsNestedMap_NestedMap) 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 ErrIntOverflowTheproto3Unsafe - } - 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: NestedMap: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NestedMap: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NestedMapField", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.NestedMapField == nil { - m.NestedMapField = make(map[string]float64) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapvaluetemp uint64 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - iNdEx += 8 - mapvaluetemp = uint64(dAtA[iNdEx-8]) - mapvaluetemp |= uint64(dAtA[iNdEx-7]) << 8 - mapvaluetemp |= uint64(dAtA[iNdEx-6]) << 16 - mapvaluetemp |= uint64(dAtA[iNdEx-5]) << 24 - mapvaluetemp |= uint64(dAtA[iNdEx-4]) << 32 - mapvaluetemp |= uint64(dAtA[iNdEx-3]) << 40 - mapvaluetemp |= uint64(dAtA[iNdEx-2]) << 48 - mapvaluetemp |= uint64(dAtA[iNdEx-1]) << 56 - mapvalue := math.Float64frombits(mapvaluetemp) - m.NestedMapField[mapkey] = mapvalue - } else { - var mapvalue float64 - m.NestedMapField[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NotPacked) 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 ErrIntOverflowTheproto3Unsafe - } - 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: NotPacked: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NotPacked: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 5: - if wireType == 0 { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Key = append(m.Key, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - postIndex := iNdEx + packedLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - for iNdEx < postIndex { - var v uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTheproto3Unsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Key = append(m.Key, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) - } - default: - iNdEx = preIndex - skippy, err := skipTheproto3Unsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTheproto3Unsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipTheproto3Unsafe(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, ErrIntOverflowTheproto3Unsafe - } - 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, ErrIntOverflowTheproto3Unsafe - } - 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, ErrIntOverflowTheproto3Unsafe - } - 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, ErrInvalidLengthTheproto3Unsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowTheproto3Unsafe - } - 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 := skipTheproto3Unsafe(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 ( - ErrInvalidLengthTheproto3Unsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowTheproto3Unsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeunmarshaler/theproto3.proto", fileDescriptorTheproto3) } - -var fileDescriptorTheproto3 = []byte{ - // 1613 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x99, 0xbf, 0x6f, 0xdb, 0x46, - 0x14, 0xc7, 0x75, 0xfa, 0xad, 0xa7, 0x1f, 0xa6, 0x2f, 0x69, 0xa1, 0x1a, 0x28, 0x2d, 0x2b, 0x40, - 0xa2, 0x04, 0x8d, 0x9c, 0x3a, 0x49, 0x9b, 0xba, 0x69, 0x53, 0x4b, 0xb1, 0x10, 0x37, 0xb6, 0xe2, - 0x4a, 0x76, 0xdc, 0x22, 0x40, 0x0d, 0xca, 0xa6, 0x24, 0x22, 0x12, 0x69, 0x90, 0x54, 0x50, 0x6f, - 0xf9, 0x33, 0xba, 0x15, 0xdd, 0x3a, 0x16, 0x19, 0x8a, 0x8e, 0xed, 0xe6, 0x31, 0x40, 0x97, 0xa2, - 0x43, 0x10, 0xab, 0x4b, 0xc6, 0x8c, 0x19, 0x8b, 0xbb, 0xa3, 0xa4, 0x13, 0x79, 0x14, 0x9b, 0x2e, - 0x5d, 0x3c, 0x89, 0xf7, 0xfc, 0xbe, 0x9f, 0x7b, 0x3c, 0xde, 0x3d, 0x7e, 0x41, 0x43, 0xe9, 0xc0, - 0xe8, 0xb7, 0x0c, 0x6b, 0x79, 0xa0, 0x5b, 0x4a, 0x5b, 0x1d, 0xe8, 0x7d, 0xc5, 0xb4, 0xba, 0x4a, - 0x4f, 0x35, 0x97, 0xed, 0xae, 0x7a, 0x64, 0x1a, 0xb6, 0x71, 0xbd, 0x4c, 0x7f, 0x70, 0x6a, 0x1c, - 0x58, 0xb8, 0xda, 0xd1, 0xec, 0xee, 0xa0, 0x55, 0x3e, 0x30, 0xfa, 0xcb, 0x1d, 0xa3, 0x63, 0x2c, - 0xd3, 0x78, 0x6b, 0xd0, 0xa6, 0x23, 0x3a, 0xa0, 0x57, 0x4c, 0xb9, 0xf0, 0xb1, 0x6f, 0xba, 0xad, - 0x5a, 0xf6, 0xb2, 0x53, 0x41, 0xcb, 0xb0, 0xbb, 0x64, 0x52, 0x12, 0x63, 0xc2, 0xe2, 0xef, 0x31, - 0x48, 0x6c, 0xa9, 0x96, 0xa5, 0x74, 0x54, 0x8c, 0x21, 0xaa, 0x2b, 0x7d, 0x35, 0x8f, 0x0a, 0xa8, - 0x94, 0x6a, 0xd0, 0x6b, 0x7c, 0x13, 0x92, 0x5d, 0xad, 0xa7, 0x98, 0x9a, 0x7d, 0x9c, 0x0f, 0x17, - 0x50, 0x29, 0xb7, 0xf2, 0x5e, 0x79, 0x52, 0xb6, 0xa3, 0x2c, 0xdf, 0x1b, 0xf4, 0x8d, 0x81, 0xd9, - 0x18, 0xa7, 0xe2, 0x02, 0x64, 0xba, 0xaa, 0xd6, 0xe9, 0xda, 0xfb, 0x9a, 0xbe, 0x7f, 0xd0, 0xcf, - 0x47, 0x0a, 0xa8, 0x94, 0x6d, 0x00, 0x8b, 0x6d, 0xe8, 0xd5, 0x3e, 0x99, 0xec, 0x50, 0xb1, 0x95, - 0x7c, 0xb4, 0x80, 0x4a, 0x99, 0x06, 0xbd, 0xc6, 0x4b, 0x90, 0x31, 0x55, 0x6b, 0xd0, 0xb3, 0xf7, - 0x0f, 0x8c, 0x81, 0x6e, 0xe7, 0x13, 0x05, 0x54, 0x8a, 0x34, 0xd2, 0x2c, 0x56, 0x25, 0x21, 0x7c, - 0x01, 0xb2, 0xb6, 0x39, 0x50, 0xf7, 0xad, 0x03, 0xc3, 0xb6, 0xfa, 0x8a, 0x9e, 0x4f, 0x16, 0x50, - 0x29, 0xd9, 0xc8, 0x90, 0x60, 0xd3, 0x89, 0xe1, 0xf3, 0x10, 0xb3, 0x0e, 0x0c, 0x53, 0xcd, 0xa7, - 0x0a, 0xa8, 0x14, 0x6e, 0xb0, 0x01, 0x96, 0x20, 0xf2, 0x58, 0x3d, 0xce, 0xc7, 0x0a, 0x91, 0x52, - 0xb4, 0x41, 0x2e, 0xf1, 0x65, 0x88, 0xeb, 0xaa, 0x65, 0xab, 0x87, 0xf9, 0x78, 0x01, 0x95, 0xd2, - 0x2b, 0xf3, 0xdc, 0xad, 0xd5, 0xe9, 0x1f, 0x1a, 0x4e, 0x02, 0xfe, 0x04, 0x12, 0xb6, 0x6a, 0x9a, - 0x8a, 0xa6, 0xe7, 0xa1, 0x10, 0x29, 0xa5, 0x57, 0x16, 0x05, 0xcb, 0xb0, 0xc3, 0x32, 0xd6, 0x75, - 0xdb, 0x3c, 0x6e, 0x8c, 0xf2, 0xf1, 0x4d, 0xc8, 0xd0, 0xbc, 0x95, 0xfd, 0xb6, 0xa6, 0xf6, 0x0e, - 0xf3, 0x69, 0x3a, 0x17, 0x2e, 0xd3, 0xa7, 0x50, 0xd7, 0xf4, 0x07, 0x47, 0x76, 0x5d, 0xb1, 0xb5, - 0x27, 0x6a, 0x23, 0xcd, 0xf2, 0x6a, 0x24, 0x0d, 0xd7, 0xc6, 0xb2, 0x27, 0x4a, 0x6f, 0xa0, 0xe6, - 0xb3, 0x74, 0xda, 0x0b, 0x82, 0x69, 0xb7, 0x69, 0xda, 0x43, 0x92, 0xc5, 0xa6, 0x76, 0x38, 0x34, - 0xb2, 0xb0, 0x05, 0x19, 0xbe, 0xae, 0xd1, 0x32, 0x20, 0xba, 0xb6, 0x74, 0x19, 0x2e, 0x41, 0x8c, - 0x4d, 0x11, 0xf6, 0x5b, 0x05, 0xf6, 0xf7, 0xd5, 0xf0, 0x2d, 0xb4, 0xb0, 0x0d, 0x92, 0x7b, 0x3e, - 0x01, 0xf2, 0xe2, 0x34, 0x52, 0xe2, 0x6f, 0x76, 0x5d, 0x1f, 0xf4, 0x39, 0x62, 0xf1, 0x0e, 0xc4, - 0xd9, 0xfe, 0xc1, 0x69, 0x48, 0xec, 0xd6, 0xef, 0xd7, 0x1f, 0xec, 0xd5, 0xa5, 0x10, 0x4e, 0x42, - 0x74, 0x7b, 0xb7, 0xde, 0x94, 0x10, 0xce, 0x42, 0xaa, 0xb9, 0xb9, 0xb6, 0xdd, 0xdc, 0xd9, 0xa8, - 0xde, 0x97, 0xc2, 0x78, 0x0e, 0xd2, 0x95, 0x8d, 0xcd, 0xcd, 0xfd, 0xca, 0xda, 0xc6, 0xe6, 0xfa, - 0x37, 0x52, 0xa4, 0x28, 0x43, 0x9c, 0xd5, 0x49, 0x1e, 0x7c, 0x6b, 0xa0, 0xeb, 0xc7, 0xce, 0x16, - 0x66, 0x83, 0xe2, 0x33, 0x0c, 0x89, 0xb5, 0x5e, 0x6f, 0x4b, 0x39, 0xb2, 0xf0, 0x1e, 0xcc, 0x37, - 0x6d, 0x53, 0xd3, 0x3b, 0x3b, 0xc6, 0x5d, 0x63, 0xd0, 0xea, 0xa9, 0x5b, 0xca, 0x51, 0x1e, 0xd1, - 0xa5, 0xbd, 0xcc, 0xdd, 0xb7, 0x93, 0x5e, 0xf6, 0xe4, 0xb2, 0x05, 0xf6, 0x32, 0xf0, 0x0e, 0x48, - 0xa3, 0x60, 0xad, 0x67, 0x28, 0x36, 0xe1, 0x86, 0x29, 0xb7, 0x34, 0x83, 0x3b, 0x4a, 0x65, 0x58, - 0x0f, 0x01, 0xdf, 0x86, 0xe4, 0x86, 0x6e, 0x5f, 0x5f, 0x21, 0xb4, 0x08, 0xa5, 0x15, 0x04, 0xb4, - 0x51, 0x0a, 0xa3, 0x8c, 0x15, 0x8e, 0xfa, 0xa3, 0x1b, 0x44, 0x1d, 0x9d, 0xa5, 0xa6, 0x29, 0x13, - 0x35, 0x1d, 0xe2, 0x3b, 0x90, 0xda, 0xd5, 0x46, 0x93, 0xc7, 0xa8, 0x7c, 0x49, 0x20, 0x1f, 0xe7, - 0x30, 0xfd, 0x44, 0x33, 0x02, 0xb0, 0xf9, 0xe3, 0x33, 0x01, 0x5c, 0x01, 0x13, 0x0d, 0x01, 0x34, - 0xc7, 0x15, 0x24, 0x7c, 0x01, 0x4d, 0x57, 0x05, 0x4d, 0xbe, 0x82, 0xe6, 0xb8, 0x82, 0xe4, 0x4c, - 0x00, 0x5f, 0xc1, 0x78, 0x8c, 0x2b, 0x00, 0x35, 0xed, 0x3b, 0xf5, 0x90, 0x95, 0x90, 0xa2, 0x84, - 0xa2, 0x80, 0x30, 0x49, 0x62, 0x08, 0x4e, 0x85, 0xd7, 0x21, 0xdd, 0x6c, 0x4f, 0x20, 0xe0, 0x39, - 0xc7, 0xe3, 0x32, 0xda, 0x2e, 0x0a, 0xaf, 0x1b, 0x97, 0xc2, 0x6e, 0x26, 0x3d, 0xbb, 0x14, 0xee, - 0x6e, 0x38, 0xd5, 0xa4, 0x14, 0x06, 0xc9, 0x04, 0x94, 0xc2, 0x51, 0x78, 0x1d, 0x69, 0x86, 0x15, - 0xc3, 0x20, 0x99, 0x4e, 0x57, 0x5a, 0x14, 0x20, 0x9c, 0x0c, 0xa7, 0x19, 0x3a, 0x23, 0xfa, 0x44, - 0xe8, 0x26, 0x27, 0xe2, 0x9c, 0xff, 0x13, 0x19, 0xe5, 0x8c, 0x9e, 0xc8, 0x68, 0xcc, 0x9f, 0xb3, - 0xca, 0xb1, 0xad, 0x5a, 0x84, 0x33, 0x17, 0x78, 0xce, 0x46, 0xa9, 0xae, 0x73, 0x36, 0x0a, 0xe3, - 0xaf, 0x60, 0x6e, 0x14, 0x23, 0xed, 0x89, 0x40, 0x25, 0x0a, 0xbd, 0x34, 0x03, 0xea, 0x64, 0x32, - 0xa6, 0x5b, 0x8f, 0xeb, 0x90, 0x1b, 0x85, 0xb6, 0x2c, 0x7a, 0xbb, 0xf3, 0x94, 0x78, 0x71, 0x06, - 0x91, 0x25, 0x32, 0xa0, 0x4b, 0xbd, 0x70, 0x17, 0xde, 0x15, 0x77, 0x23, 0xbe, 0xfd, 0xa6, 0x58, - 0xfb, 0x3d, 0xcf, 0xb7, 0x5f, 0xc4, 0xb7, 0xef, 0x2a, 0xbc, 0x23, 0xec, 0x3d, 0x41, 0x90, 0x30, - 0x0f, 0xf9, 0x14, 0xb2, 0x53, 0x2d, 0x87, 0x17, 0xc7, 0x04, 0xe2, 0x98, 0x57, 0x3c, 0xd9, 0x5a, - 0x82, 0xb7, 0xc7, 0x94, 0x38, 0xc2, 0x8b, 0x6f, 0x43, 0x6e, 0xba, 0xdf, 0xf0, 0xea, 0xac, 0x40, - 0x9d, 0x15, 0xa8, 0xc5, 0x73, 0x47, 0x05, 0xea, 0xa8, 0x4b, 0xdd, 0xf4, 0x9d, 0x7b, 0x5e, 0xa0, - 0x9e, 0x17, 0xa8, 0xc5, 0x73, 0x63, 0x81, 0x1a, 0xf3, 0xea, 0xcf, 0x60, 0xce, 0xd5, 0x62, 0x78, - 0x79, 0x42, 0x20, 0x4f, 0xf0, 0xf2, 0xcf, 0x41, 0x72, 0x37, 0x17, 0x5e, 0x3f, 0x27, 0xd0, 0xcf, - 0x89, 0xa6, 0x17, 0x57, 0x1f, 0x17, 0xc8, 0xe3, 0xc2, 0xe9, 0xc5, 0x7a, 0x49, 0xa0, 0x97, 0x78, - 0xfd, 0x2a, 0x64, 0xf8, 0x6e, 0xc2, 0x6b, 0x93, 0x02, 0x6d, 0xd2, 0xbd, 0xee, 0x53, 0xcd, 0x24, - 0x68, 0xa7, 0xa7, 0x7c, 0x8e, 0xcb, 0x54, 0x0b, 0x09, 0x82, 0x64, 0x78, 0xc8, 0x43, 0x38, 0x2f, - 0x6a, 0x19, 0x02, 0x46, 0x89, 0x67, 0xe4, 0x88, 0x47, 0x9c, 0x98, 0x3d, 0xa2, 0x9a, 0x32, 0x4e, - 0x0b, 0x8f, 0xe0, 0x9c, 0xa0, 0x71, 0x08, 0xb0, 0xe5, 0x69, 0x37, 0x96, 0xe7, 0xb0, 0xb4, 0x09, - 0x68, 0x7a, 0x67, 0xdb, 0xd0, 0x74, 0x9b, 0x77, 0x65, 0xbf, 0x9c, 0x83, 0x9c, 0xd3, 0x9e, 0x1e, - 0x98, 0x87, 0xaa, 0xa9, 0x1e, 0xe2, 0x6f, 0xfd, 0xbd, 0xd3, 0x35, 0x6f, 0x53, 0x73, 0x54, 0x6f, - 0x61, 0xa1, 0x1e, 0xf9, 0x5a, 0xa8, 0xe5, 0x60, 0x7c, 0x90, 0x93, 0xaa, 0x7a, 0x9c, 0xd4, 0x25, - 0x7f, 0xa8, 0x9f, 0xa1, 0xaa, 0x7a, 0x0c, 0xd5, 0x6c, 0x88, 0xd0, 0x57, 0xd5, 0xbc, 0xbe, 0xaa, - 0xe4, 0x4f, 0xf1, 0xb7, 0x57, 0x35, 0xaf, 0xbd, 0x0a, 0xe0, 0x88, 0x5d, 0x56, 0xcd, 0xeb, 0xb2, - 0x66, 0x70, 0xfc, 0xcd, 0x56, 0xcd, 0x6b, 0xb6, 0x02, 0x38, 0x62, 0xcf, 0xb5, 0x21, 0xf0, 0x5c, - 0x97, 0xfd, 0x41, 0xb3, 0xac, 0xd7, 0xa6, 0xc8, 0x7a, 0x5d, 0x99, 0x51, 0xd4, 0x4c, 0x07, 0xb6, - 0x21, 0x70, 0x60, 0x41, 0x85, 0xf9, 0x18, 0xb1, 0x4d, 0x91, 0x11, 0x0b, 0x2c, 0xcc, 0xcf, 0x8f, - 0x7d, 0xe1, 0xf6, 0x63, 0x17, 0xfd, 0x49, 0x62, 0x5b, 0x56, 0xf3, 0xda, 0xb2, 0x52, 0xd0, 0x99, - 0x13, 0xb9, 0xb3, 0x47, 0xbe, 0xee, 0xec, 0x5f, 0x1c, 0xe1, 0x20, 0x93, 0xf6, 0xb5, 0x9f, 0x49, - 0x2b, 0x07, 0xb3, 0x67, 0x7b, 0xb5, 0x5d, 0x1f, 0xaf, 0x76, 0x35, 0x18, 0x7c, 0x66, 0xd9, 0xce, - 0x2c, 0xdb, 0x99, 0x65, 0x3b, 0xb3, 0x6c, 0xff, 0xbf, 0x65, 0x5b, 0x8d, 0x7e, 0xff, 0xe3, 0x22, - 0x2a, 0xfe, 0x11, 0x81, 0x9c, 0xf3, 0x65, 0x70, 0x4f, 0xb3, 0xbb, 0xa4, 0xbd, 0x6d, 0x41, 0x46, - 0x57, 0xfa, 0xea, 0x7e, 0x5f, 0x39, 0x3a, 0xd2, 0xf4, 0x8e, 0xe3, 0xd9, 0xae, 0x78, 0x3f, 0x25, - 0x3a, 0x82, 0x72, 0x5d, 0xe9, 0x93, 0x5e, 0x45, 0x92, 0x9d, 0xd7, 0x8d, 0x3e, 0x89, 0xe0, 0x2f, - 0x21, 0xdd, 0xb7, 0x3a, 0x63, 0x5a, 0xd8, 0xf3, 0x22, 0x74, 0xd1, 0xd8, 0x9d, 0x4e, 0x60, 0xd0, - 0x1f, 0x07, 0x48, 0x69, 0xad, 0x63, 0x7b, 0x52, 0x5a, 0x24, 0xa8, 0x34, 0xf2, 0x4c, 0xa7, 0x4b, - 0x6b, 0x4d, 0x22, 0x64, 0xdb, 0xba, 0x6b, 0x0f, 0xea, 0x74, 0x53, 0x9b, 0x67, 0x0f, 0xe6, 0x5c, - 0xd5, 0x0a, 0xce, 0xfc, 0x7f, 0x78, 0x36, 0xa4, 0x30, 0x77, 0xe5, 0x41, 0x67, 0x82, 0xdf, 0x90, - 0xc5, 0xf7, 0x21, 0x3b, 0xc5, 0xc6, 0x19, 0x40, 0x6d, 0x2a, 0x45, 0x0d, 0xd4, 0x2e, 0xfe, 0x80, - 0x20, 0x4d, 0xfa, 0xe4, 0x87, 0x2b, 0xb7, 0xb6, 0x15, 0xcd, 0xc4, 0xf7, 0x20, 0xda, 0x53, 0xdb, - 0x36, 0x4d, 0xc8, 0x54, 0x6e, 0x9c, 0xbc, 0x58, 0x0c, 0xfd, 0xf5, 0x62, 0xf1, 0x83, 0x80, 0xff, - 0x12, 0x0c, 0x2c, 0xdb, 0xe8, 0x97, 0x1d, 0x4e, 0x83, 0x12, 0x70, 0x0d, 0x62, 0xa6, 0xd6, 0xe9, - 0xda, 0xac, 0xa4, 0xca, 0xb5, 0xb7, 0xc6, 0x30, 0x79, 0xf1, 0x04, 0xc1, 0x7c, 0xd5, 0xd0, 0x6d, - 0x45, 0xd3, 0x2d, 0xf6, 0xb5, 0x96, 0xbc, 0x21, 0x9f, 0x21, 0x48, 0x8d, 0x47, 0xb8, 0x05, 0xb9, - 0xf1, 0x80, 0x7e, 0x04, 0x77, 0x76, 0xea, 0x2a, 0xb7, 0xc2, 0x1e, 0x46, 0x59, 0x70, 0x45, 0xc5, - 0xce, 0x3b, 0x79, 0x3a, 0xb8, 0xb0, 0x06, 0xe7, 0x04, 0x69, 0x6f, 0xf3, 0x42, 0x2e, 0x2e, 0x41, - 0xaa, 0x6e, 0xd8, 0xdb, 0xca, 0xc1, 0x63, 0xfa, 0xc9, 0x79, 0xf2, 0x5f, 0x85, 0x4a, 0x58, 0x0a, - 0x51, 0xf1, 0x95, 0x25, 0x48, 0x38, 0xa7, 0x1f, 0xc7, 0x21, 0xbc, 0xb5, 0x26, 0x85, 0xe8, 0x6f, - 0x45, 0x42, 0xf4, 0xb7, 0x2a, 0x85, 0x2b, 0x9b, 0x27, 0xa7, 0x72, 0xe8, 0xf9, 0xa9, 0x1c, 0xfa, - 0xf3, 0x54, 0x0e, 0xbd, 0x3c, 0x95, 0xd1, 0xab, 0x53, 0x19, 0xbd, 0x3e, 0x95, 0xd1, 0x9b, 0x53, - 0x19, 0x3d, 0x1d, 0xca, 0xe8, 0xa7, 0xa1, 0x8c, 0x7e, 0x1e, 0xca, 0xe8, 0xd7, 0xa1, 0x8c, 0x7e, - 0x1b, 0xca, 0xe8, 0x64, 0x28, 0x87, 0x9e, 0x0f, 0xe5, 0xd0, 0xcb, 0xa1, 0x8c, 0x5e, 0x0d, 0xe5, - 0xd0, 0xeb, 0xa1, 0x8c, 0xde, 0x0c, 0xe5, 0xd0, 0xd3, 0xbf, 0x65, 0xd4, 0x8a, 0xb3, 0xe5, 0xf9, - 0x27, 0x00, 0x00, 0xff, 0xff, 0x5a, 0x26, 0x12, 0x07, 0x6d, 0x1a, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.proto b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.proto deleted file mode 100644 index 1f6e6b0c7..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3.proto +++ /dev/null @@ -1,168 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Go support for Protocol Buffers - Google's data interchange format -// -// Copyright 2014 The Go Authors. All rights reserved. -// https://github.com/golang/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package theproto3; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -import "github.com/gogo/protobuf/test/combos/both/thetest.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_enum_prefix_all) = false; -option (gogoproto.goproto_getters_all) = false; - -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.stringer_all) = true; -option (gogoproto.gostring_all) = true; -option (gogoproto.face_all) = true; -option (gogoproto.description_all) = true; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; - -option (gogoproto.goproto_enum_stringer_all) = false; -option (gogoproto.enum_stringer_all) = true; - -option (gogoproto.unsafe_marshaler_all) = false; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message Message { - enum Humour { - UNKNOWN = 0; - PUNS = 1; - SLAPSTICK = 2; - BILL_BAILEY = 3; - } - - string name = 1; - Humour hilarity = 2; - uint32 height_in_cm = 3; - bytes data = 4; - int64 result_count = 7; - bool true_scotsman = 8; - float score = 9; - - repeated uint64 key = 5; - Nested nested = 6; - - map terrain = 10; - test.NinOptNative proto2_field = 11; - map proto2_value = 13; -} - -message Nested { - string bunny = 1; -} - -enum MapEnum { - MA = 0; - MB = 1; - MC = 2; -} - -message AllMaps { - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} - -message AllMapsOrdered { - option (gogoproto.stable_marshaler) = true; - - map StringToDoubleMap = 1; - map StringToFloatMap = 2; - map Int32Map = 3; - map Int64Map = 4; - map Uint32Map = 5; - map Uint64Map = 6; - map Sint32Map = 7; - map Sint64Map = 8; - map Fixed32Map = 9; - map Sfixed32Map = 10; - map Fixed64Map = 11; - map Sfixed64Map = 12; - map BoolMap = 13; - map StringMap = 14; - map StringToBytesMap = 15; - map StringToEnumMap = 16; - map StringToMsgMap = 17; -} - -message MessageWithMap { - map name_mapping = 1; - map msg_mapping = 2; - map byte_mapping = 3; -} - -message FloatingPoint { - double f = 1; -} - -message Uint128Pair { - bytes left = 1 [(gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; - bytes right = 2 [(gogoproto.customtype) = "github.com/gogo/protobuf/test/custom.Uint128"]; -} - -message ContainsNestedMap { - message NestedMap { - map NestedMapField = 1; - } -} - -message NotPacked { - repeated uint64 key = 5 [packed=false]; -} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3pb_test.go b/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3pb_test.go deleted file mode 100644 index ff954ac53..000000000 --- a/vendor/github.com/gogo/protobuf/test/theproto3/combos/unsafeunmarshaler/theproto3pb_test.go +++ /dev/null @@ -1,2226 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/theproto3.proto -// DO NOT EDIT! - -/* -Package theproto3 is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeunmarshaler/theproto3.proto - -It has these top-level messages: - Message - Nested - AllMaps - AllMapsOrdered - MessageWithMap - FloatingPoint - Uint128Pair - ContainsNestedMap - NotPacked -*/ -package theproto3 - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import _ "github.com/gogo/protobuf/test/combos/both" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestMessageProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Message, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessage(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Message{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNestedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nested, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNested(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNestedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNested(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Nested{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkAllMapsProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMaps(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMaps{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkAllMapsOrderedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkAllMapsOrderedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAllMapsOrdered(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &AllMapsOrdered{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageWithMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkMessageWithMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MessageWithMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMessageWithMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMessageWithMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMessageWithMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MessageWithMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkFloatingPointProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkFloatingPointProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedFloatingPoint(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &FloatingPoint{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestUint128PairProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkUint128PairProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Uint128Pair, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedUint128Pair(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkUint128PairProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUint128Pair(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &Uint128Pair{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkContainsNestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedContainsNestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkContainsNestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ContainsNestedMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMap_NestedMapProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkContainsNestedMap_NestedMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap_NestedMap, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedContainsNestedMap_NestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkContainsNestedMap_NestedMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedContainsNestedMap_NestedMap(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ContainsNestedMap_NestedMap{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestNotPackedProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkNotPackedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NotPacked, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedNotPacked(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkNotPackedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNotPacked(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &NotPacked{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Message{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNestedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nested{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMaps{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestAllMapsOrderedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &AllMapsOrdered{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMessageWithMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MessageWithMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestFloatingPointJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &FloatingPoint{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestUint128PairJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Uint128Pair{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestContainsNestedMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestContainsNestedMap_NestedMapJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ContainsNestedMap_NestedMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNotPackedJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &NotPacked{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMessageProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMessageProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Message{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNestedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestAllMapsOrderedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMessageWithMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMessageWithMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestFloatingPointProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestFloatingPointProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUint128PairProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestUint128PairProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMap_NestedMapProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestContainsNestedMap_NestedMapProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNotPackedProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNotPackedProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestTheproto3Description(t *testing.T) { - Theproto3Description() -} -func TestMessageVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Message{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNestedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Nested{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMaps{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestAllMapsOrderedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &AllMapsOrdered{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMessageWithMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MessageWithMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestFloatingPointVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &FloatingPoint{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestUint128PairVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &Uint128Pair{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestContainsNestedMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ContainsNestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestContainsNestedMap_NestedMapVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ContainsNestedMap_NestedMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestNotPackedVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &NotPacked{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNestedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestAllMapsOrderedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestMessageWithMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestFloatingPointFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestUint128PairFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestContainsNestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestContainsNestedMap_NestedMapFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestNotPackedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, true) - msg := p.TestProto() - if !p.Equal(msg) { - t.Fatalf("%#v !Face Equal %#v", msg, p) - } -} -func TestMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNestedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestAllMapsOrderedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestMessageWithMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestFloatingPointGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestUint128PairGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestContainsNestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestContainsNestedMap_NestedMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestNotPackedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, false) - s1 := p.GoString() - s2 := fmt.Sprintf("%#v", p) - if s1 != s2 { - t.Fatalf("GoString want %v got %v", s1, s2) - } - _, err := go_parser.ParseExpr(s1) - if err != nil { - panic(err) - } -} -func TestMessageSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Message, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMessage(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNestedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNested(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNestedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Nested, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNested(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMaps(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMaps, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMaps(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestAllMapsOrderedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedAllMapsOrdered(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkAllMapsOrderedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*AllMapsOrdered, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedAllMapsOrdered(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageWithMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMessageWithMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMessageWithMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MessageWithMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMessageWithMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestFloatingPointSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedFloatingPoint(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkFloatingPointSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*FloatingPoint, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedFloatingPoint(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestUint128PairSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedUint128Pair(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkUint128PairSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*Uint128Pair, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedUint128Pair(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkContainsNestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedContainsNestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestContainsNestedMap_NestedMapSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedContainsNestedMap_NestedMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkContainsNestedMap_NestedMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ContainsNestedMap_NestedMap, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedContainsNestedMap_NestedMap(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestNotPackedSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNotPacked(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkNotPackedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*NotPacked, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedNotPacked(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessage(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNestedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNested(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMaps(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestAllMapsOrderedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedAllMapsOrdered(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestMessageWithMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMessageWithMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestFloatingPointStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedFloatingPoint(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestUint128PairStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedUint128Pair(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestContainsNestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestContainsNestedMap_NestedMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedContainsNestedMap_NestedMap(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} -func TestNotPackedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedNotPacked(popr, false) - s1 := p.String() - s2 := fmt.Sprintf("%v", p) - if s1 != s2 { - t.Fatalf("String want %v got %v", s1, s2) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/thetest.pb.go b/vendor/github.com/gogo/protobuf/test/thetest.pb.go index ebc55861a..e5dcb835a 100644 --- a/vendor/github.com/gogo/protobuf/test/thetest.pb.go +++ b/vendor/github.com/gogo/protobuf/test/thetest.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: thetest.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -85,12 +84,11 @@ import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custo import github_com_gogo_protobuf_test_custom_dash_type "github.com/gogo/protobuf/test/custom-dash-type" import bytes "bytes" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import sortkeys "github.com/gogo/protobuf/sortkeys" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import compress_gzip "compress/gzip" -import io_ioutil "io/ioutil" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" +import ioutil "io/ioutil" import strconv "strconv" @@ -951,7 +949,7 @@ func (*NestedScope) Descriptor() ([]byte, []int) { return fileDescriptorThetest, type NinOptNativeDefault struct { Field1 *float64 `protobuf:"fixed64,1,opt,name=Field1,def=1234.1234" json:"Field1,omitempty"` - Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.1234" json:"Field2,omitempty"` + Field2 *float32 `protobuf:"fixed32,2,opt,name=Field2,def=1234.12341" json:"Field2,omitempty"` Field3 *int32 `protobuf:"varint,3,opt,name=Field3,def=1234" json:"Field3,omitempty"` Field4 *int64 `protobuf:"varint,4,opt,name=Field4,def=1234" json:"Field4,omitempty"` Field5 *uint32 `protobuf:"varint,5,opt,name=Field5,def=1234" json:"Field5,omitempty"` @@ -973,7 +971,7 @@ func (*NinOptNativeDefault) ProtoMessage() {} func (*NinOptNativeDefault) Descriptor() ([]byte, []int) { return fileDescriptorThetest, []int{44} } const Default_NinOptNativeDefault_Field1 float64 = 1234.1234 -const Default_NinOptNativeDefault_Field2 float32 = 1234.1234 +const Default_NinOptNativeDefault_Field2 float32 = 1234.12341 const Default_NinOptNativeDefault_Field3 int32 = 1234 const Default_NinOptNativeDefault_Field4 int64 = 1234 const Default_NinOptNativeDefault_Field5 uint32 = 1234 @@ -4820,8 +4818,8 @@ func (this *MyExtendable) Compare(that interface{}) int { } else if that1.Field1 != nil { return -1 } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) extkeys := make([]int32, 0, len(thismap)+len(thatmap)) for k := range thismap { extkeys = append(extkeys, k) @@ -4831,7 +4829,7 @@ func (this *MyExtendable) Compare(that interface{}) int { extkeys = append(extkeys, k) } } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) + sortkeys.Int32s(extkeys) for _, k := range extkeys { if v, ok := thismap[k]; ok { if v2, ok := thatmap[k]; ok { @@ -4902,8 +4900,8 @@ func (this *OtherExtenable) Compare(that interface{}) int { if c := this.M.Compare(that1.M); c != 0 { return c } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) extkeys := make([]int32, 0, len(thismap)+len(thatmap)) for k := range thismap { extkeys = append(extkeys, k) @@ -4913,7 +4911,7 @@ func (this *OtherExtenable) Compare(that interface{}) int { extkeys = append(extkeys, k) } } - github_com_gogo_protobuf_sortkeys.Int32s(extkeys) + sortkeys.Int32s(extkeys) for _, k := range extkeys { if v, ok := thismap[k]; ok { if v2, ok := thatmap[k]; ok { @@ -6760,632 +6758,639 @@ func (this *ProtoType) Compare(that interface{}) int { } return 0 } -func (this *NidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepPackedNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepPackedNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepPackedNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidEmbeddedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinEmbeddedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinEmbeddedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidNestedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinNestedStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinNestedStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomDash) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomDash) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepCustom) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepCustom) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNativeUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNativeUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinEmbeddedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinNestedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinNestedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Tree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Tree) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *OrBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OrBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AndBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AndBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Leaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Leaf) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *DeepTree) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *DeepTree) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *ADeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ADeepBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AndDeepBranch) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AndDeepBranch) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *DeepLeaf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *DeepLeaf) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Nil) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Nil) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptEnumDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AnotherNinOptEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AnotherNinOptEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *AnotherNinOptEnumDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *AnotherNinOptEnumDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Timer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Timer) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *MyExtendable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *MyExtendable) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *OtherExtenable) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OtherExtenable) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition_NestedMessage) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition_NestedMessage) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NestedScope) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NestedScope) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNativeDefault) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNativeDefault) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomContainer) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomContainer) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNidOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNidOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinOptNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinOptNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinRepNative) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinRepNative) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinStruct) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinStruct) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *CustomNameEnum) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *CustomNameEnum) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NoExtensionsMap) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NoExtensionsMap) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Unrecognized) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Unrecognized) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithInner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithInner) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithInner_Inner) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithInner_Inner) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithEmbed) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithEmbed) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *Node) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *Node) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidOptNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinOptNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinOptNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NidRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NidRepNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *NinRepNonByteCustomType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NinRepNonByteCustomType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func (this *ProtoType) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *ProtoType) Description() (desc *descriptor.FileDescriptorSet) { return ThetestDescription() } -func ThetestDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func ThetestDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 6499 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x70, 0x24, 0x57, - 0x75, 0xbf, 0x7a, 0x7a, 0xa4, 0x1d, 0x1d, 0xbd, 0x5a, 0xad, 0xb5, 0x76, 0x2c, 0xaf, 0xa5, 0xdd, - 0xf1, 0x7a, 0x2d, 0x0b, 0x5b, 0xab, 0xd5, 0x4a, 0xfb, 0x98, 0xc5, 0x76, 0xcd, 0x6b, 0xd7, 0x5a, - 0xa4, 0x91, 0x68, 0x49, 0xd8, 0xcb, 0xff, 0x5f, 0x35, 0xd5, 0x3b, 0x73, 0x25, 0x8d, 0x3d, 0xd3, - 0x3d, 0x4c, 0xf7, 0xd8, 0x96, 0x3f, 0xfc, 0xcb, 0x7f, 0xf8, 0xff, 0x09, 0x24, 0x95, 0x27, 0x49, - 0x05, 0x08, 0x18, 0x43, 0x8a, 0x60, 0x20, 0x0f, 0x48, 0x08, 0xa1, 0xa8, 0x54, 0xf0, 0x17, 0x92, - 0xcd, 0x97, 0x94, 0xc9, 0xa7, 0x14, 0x95, 0x72, 0xe1, 0x35, 0x55, 0x21, 0x89, 0x93, 0x40, 0x70, - 0x15, 0x54, 0x99, 0x0f, 0xa9, 0xfb, 0xea, 0xee, 0x7b, 0xa7, 0x47, 0xdd, 0xf2, 0xda, 0xc0, 0x97, - 0xdd, 0x99, 0x7b, 0xce, 0xef, 0xf4, 0xb9, 0xe7, 0x75, 0x4f, 0xdf, 0x7b, 0x35, 0xf0, 0xda, 0x32, - 0x9c, 0xd8, 0xb5, 0xed, 0xdd, 0x06, 0x3a, 0xd3, 0x6a, 0xdb, 0xae, 0x7d, 0xa3, 0xb3, 0x73, 0xa6, - 0x86, 0x9c, 0x6a, 0xbb, 0xde, 0x72, 0xed, 0xf6, 0x3c, 0x19, 0xd3, 0xc7, 0x28, 0xc7, 0x3c, 0xe7, - 0xc8, 0xac, 0xc1, 0xf8, 0x95, 0x7a, 0x03, 0x15, 0x3d, 0xc6, 0x4d, 0xe4, 0xea, 0x17, 0x21, 0xb9, - 0x53, 0x6f, 0xa0, 0xb4, 0x72, 0x42, 0x9d, 0x1d, 0x5a, 0x3c, 0x35, 0x2f, 0x81, 0xe6, 0x45, 0xc4, - 0x06, 0x1e, 0x36, 0x08, 0x22, 0xf3, 0xfd, 0x24, 0x4c, 0x84, 0x50, 0x75, 0x1d, 0x92, 0x96, 0xd9, - 0xc4, 0x12, 0x95, 0xd9, 0x41, 0x83, 0x7c, 0xd6, 0xd3, 0x70, 0xa4, 0x65, 0x56, 0x9f, 0x34, 0x77, - 0x51, 0x3a, 0x41, 0x86, 0xf9, 0x57, 0x7d, 0x1a, 0xa0, 0x86, 0x5a, 0xc8, 0xaa, 0x21, 0xab, 0xba, - 0x9f, 0x56, 0x4f, 0xa8, 0xb3, 0x83, 0x46, 0x60, 0x44, 0x7f, 0x17, 0x8c, 0xb7, 0x3a, 0x37, 0x1a, - 0xf5, 0x6a, 0x25, 0xc0, 0x06, 0x27, 0xd4, 0xd9, 0x7e, 0x43, 0xa3, 0x84, 0xa2, 0xcf, 0x7c, 0x1f, - 0x8c, 0x3d, 0x8d, 0xcc, 0x27, 0x83, 0xac, 0x43, 0x84, 0x75, 0x14, 0x0f, 0x07, 0x18, 0x0b, 0x30, - 0xdc, 0x44, 0x8e, 0x63, 0xee, 0xa2, 0x8a, 0xbb, 0xdf, 0x42, 0xe9, 0x24, 0x99, 0xfd, 0x89, 0xae, - 0xd9, 0xcb, 0x33, 0x1f, 0x62, 0xa8, 0xad, 0xfd, 0x16, 0xd2, 0x73, 0x30, 0x88, 0xac, 0x4e, 0x93, - 0x4a, 0xe8, 0xef, 0x61, 0xbf, 0x92, 0xd5, 0x69, 0xca, 0x52, 0x52, 0x18, 0xc6, 0x44, 0x1c, 0x71, - 0x50, 0xfb, 0xa9, 0x7a, 0x15, 0xa5, 0x07, 0x88, 0x80, 0xfb, 0xba, 0x04, 0x6c, 0x52, 0xba, 0x2c, - 0x83, 0xe3, 0xf4, 0x02, 0x0c, 0xa2, 0x67, 0x5c, 0x64, 0x39, 0x75, 0xdb, 0x4a, 0x1f, 0x21, 0x42, - 0xee, 0x0d, 0xf1, 0x22, 0x6a, 0xd4, 0x64, 0x11, 0x3e, 0x4e, 0x3f, 0x0f, 0x47, 0xec, 0x96, 0x5b, - 0xb7, 0x2d, 0x27, 0x9d, 0x3a, 0xa1, 0xcc, 0x0e, 0x2d, 0x1e, 0x0f, 0x0d, 0x84, 0x75, 0xca, 0x63, - 0x70, 0x66, 0x7d, 0x05, 0x34, 0xc7, 0xee, 0xb4, 0xab, 0xa8, 0x52, 0xb5, 0x6b, 0xa8, 0x52, 0xb7, - 0x76, 0xec, 0xf4, 0x20, 0x11, 0x30, 0xd3, 0x3d, 0x11, 0xc2, 0x58, 0xb0, 0x6b, 0x68, 0xc5, 0xda, - 0xb1, 0x8d, 0x51, 0x47, 0xf8, 0xae, 0x4f, 0xc2, 0x80, 0xb3, 0x6f, 0xb9, 0xe6, 0x33, 0xe9, 0x61, - 0x12, 0x21, 0xec, 0x5b, 0xe6, 0x27, 0xfd, 0x30, 0x16, 0x27, 0xc4, 0x2e, 0x43, 0xff, 0x0e, 0x9e, - 0x65, 0x3a, 0x71, 0x18, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0x81, 0xb7, 0x68, 0xc4, 0x1c, 0x0c, 0x59, - 0xc8, 0x71, 0x51, 0x8d, 0x46, 0x84, 0x1a, 0x33, 0xa6, 0x80, 0x82, 0xba, 0x43, 0x2a, 0xf9, 0x96, - 0x42, 0xea, 0x71, 0x18, 0xf3, 0x54, 0xaa, 0xb4, 0x4d, 0x6b, 0x97, 0xc7, 0xe6, 0x99, 0x28, 0x4d, - 0xe6, 0x4b, 0x1c, 0x67, 0x60, 0x98, 0x31, 0x8a, 0x84, 0xef, 0x7a, 0x11, 0xc0, 0xb6, 0x90, 0xbd, - 0x53, 0xa9, 0xa1, 0x6a, 0x23, 0x9d, 0xea, 0x61, 0xa5, 0x75, 0xcc, 0xd2, 0x65, 0x25, 0x9b, 0x8e, - 0x56, 0x1b, 0xfa, 0x25, 0x3f, 0xd4, 0x8e, 0xf4, 0x88, 0x94, 0x35, 0x9a, 0x64, 0x5d, 0xd1, 0xb6, - 0x0d, 0xa3, 0x6d, 0x84, 0xe3, 0x1e, 0xd5, 0xd8, 0xcc, 0x06, 0x89, 0x12, 0xf3, 0x91, 0x33, 0x33, - 0x18, 0x8c, 0x4e, 0x6c, 0xa4, 0x1d, 0xfc, 0xaa, 0xdf, 0x03, 0xde, 0x40, 0x85, 0x84, 0x15, 0x90, - 0x2a, 0x34, 0xcc, 0x07, 0xcb, 0x66, 0x13, 0x4d, 0x5d, 0x84, 0x51, 0xd1, 0x3c, 0xfa, 0x51, 0xe8, - 0x77, 0x5c, 0xb3, 0xed, 0x92, 0x28, 0xec, 0x37, 0xe8, 0x17, 0x5d, 0x03, 0x15, 0x59, 0x35, 0x52, - 0xe5, 0xfa, 0x0d, 0xfc, 0x71, 0xea, 0x02, 0x8c, 0x08, 0x8f, 0x8f, 0x0b, 0xcc, 0x7c, 0x7c, 0x00, - 0x8e, 0x86, 0xc5, 0x5c, 0x68, 0xf8, 0x4f, 0xc2, 0x80, 0xd5, 0x69, 0xde, 0x40, 0xed, 0xb4, 0x4a, - 0x24, 0xb0, 0x6f, 0x7a, 0x0e, 0xfa, 0x1b, 0xe6, 0x0d, 0xd4, 0x48, 0x27, 0x4f, 0x28, 0xb3, 0xa3, - 0x8b, 0xef, 0x8a, 0x15, 0xd5, 0xf3, 0xab, 0x18, 0x62, 0x50, 0xa4, 0xfe, 0x30, 0x24, 0x59, 0x89, - 0xc3, 0x12, 0xe6, 0xe2, 0x49, 0xc0, 0xb1, 0x68, 0x10, 0x9c, 0x7e, 0x17, 0x0c, 0xe2, 0xff, 0xa9, - 0x6d, 0x07, 0x88, 0xce, 0x29, 0x3c, 0x80, 0xed, 0xaa, 0x4f, 0x41, 0x8a, 0x84, 0x59, 0x0d, 0xf1, - 0xa5, 0xc1, 0xfb, 0x8e, 0x1d, 0x53, 0x43, 0x3b, 0x66, 0xa7, 0xe1, 0x56, 0x9e, 0x32, 0x1b, 0x1d, - 0x44, 0x02, 0x66, 0xd0, 0x18, 0x66, 0x83, 0xef, 0xc3, 0x63, 0xfa, 0x0c, 0x0c, 0xd1, 0xa8, 0xac, - 0x5b, 0x35, 0xf4, 0x0c, 0xa9, 0x3e, 0xfd, 0x06, 0x0d, 0xd4, 0x15, 0x3c, 0x82, 0x1f, 0xff, 0x84, - 0x63, 0x5b, 0xdc, 0xb5, 0xe4, 0x11, 0x78, 0x80, 0x3c, 0xfe, 0x82, 0x5c, 0xf8, 0xee, 0x0e, 0x9f, - 0x9e, 0x1c, 0x8b, 0x99, 0xaf, 0x27, 0x20, 0x49, 0xf2, 0x6d, 0x0c, 0x86, 0xb6, 0xae, 0x6f, 0x94, - 0x2a, 0xc5, 0xf5, 0xed, 0xfc, 0x6a, 0x49, 0x53, 0xf4, 0x51, 0x00, 0x32, 0x70, 0x65, 0x75, 0x3d, - 0xb7, 0xa5, 0x25, 0xbc, 0xef, 0x2b, 0xe5, 0xad, 0xf3, 0x4b, 0x9a, 0xea, 0x01, 0xb6, 0xe9, 0x40, - 0x32, 0xc8, 0x70, 0x6e, 0x51, 0xeb, 0xd7, 0x35, 0x18, 0xa6, 0x02, 0x56, 0x1e, 0x2f, 0x15, 0xcf, - 0x2f, 0x69, 0x03, 0xe2, 0xc8, 0xb9, 0x45, 0xed, 0x88, 0x3e, 0x02, 0x83, 0x64, 0x24, 0xbf, 0xbe, - 0xbe, 0xaa, 0xa5, 0x3c, 0x99, 0x9b, 0x5b, 0xc6, 0x4a, 0xf9, 0xaa, 0x36, 0xe8, 0xc9, 0xbc, 0x6a, - 0xac, 0x6f, 0x6f, 0x68, 0xe0, 0x49, 0x58, 0x2b, 0x6d, 0x6e, 0xe6, 0xae, 0x96, 0xb4, 0x21, 0x8f, - 0x23, 0x7f, 0x7d, 0xab, 0xb4, 0xa9, 0x0d, 0x0b, 0x6a, 0x9d, 0x5b, 0xd4, 0x46, 0xbc, 0x47, 0x94, - 0xca, 0xdb, 0x6b, 0xda, 0xa8, 0x3e, 0x0e, 0x23, 0xf4, 0x11, 0x5c, 0x89, 0x31, 0x69, 0xe8, 0xfc, - 0x92, 0xa6, 0xf9, 0x8a, 0x50, 0x29, 0xe3, 0xc2, 0xc0, 0xf9, 0x25, 0x4d, 0xcf, 0x14, 0xa0, 0x9f, - 0x44, 0x97, 0xae, 0xc3, 0xe8, 0x6a, 0x2e, 0x5f, 0x5a, 0xad, 0xac, 0x6f, 0x6c, 0xad, 0xac, 0x97, - 0x73, 0xab, 0x9a, 0xe2, 0x8f, 0x19, 0xa5, 0xf7, 0x6e, 0xaf, 0x18, 0xa5, 0xa2, 0x96, 0x08, 0x8e, - 0x6d, 0x94, 0x72, 0x5b, 0xa5, 0xa2, 0xa6, 0x66, 0xaa, 0x70, 0x34, 0xac, 0xce, 0x84, 0x66, 0x46, - 0xc0, 0xc5, 0x89, 0x1e, 0x2e, 0x26, 0xb2, 0xba, 0x5c, 0xfc, 0x39, 0x05, 0x26, 0x42, 0x6a, 0x6d, - 0xe8, 0x43, 0x1e, 0x81, 0x7e, 0x1a, 0xa2, 0x74, 0xf5, 0xb9, 0x3f, 0xb4, 0x68, 0x93, 0x80, 0xed, - 0x5a, 0x81, 0x08, 0x2e, 0xb8, 0x02, 0xab, 0x3d, 0x56, 0x60, 0x2c, 0xa2, 0x4b, 0xc9, 0x0f, 0x29, - 0x90, 0xee, 0x25, 0x3b, 0xa2, 0x50, 0x24, 0x84, 0x42, 0x71, 0x59, 0x56, 0xe0, 0x64, 0xef, 0x39, - 0x74, 0x69, 0xf1, 0x05, 0x05, 0x26, 0xc3, 0x1b, 0x95, 0x50, 0x1d, 0x1e, 0x86, 0x81, 0x26, 0x72, - 0xf7, 0x6c, 0xbe, 0x58, 0x9f, 0x0e, 0x59, 0x02, 0x30, 0x59, 0xb6, 0x15, 0x43, 0x05, 0xd7, 0x10, - 0xb5, 0x57, 0xb7, 0x41, 0xb5, 0xe9, 0xd2, 0xf4, 0xa3, 0x09, 0xb8, 0x23, 0x54, 0x78, 0xa8, 0xa2, - 0x77, 0x03, 0xd4, 0xad, 0x56, 0xc7, 0xa5, 0x0b, 0x32, 0xad, 0x4f, 0x83, 0x64, 0x84, 0xe4, 0x3e, - 0xae, 0x3d, 0x1d, 0xd7, 0xa3, 0xab, 0x84, 0x0e, 0x74, 0x88, 0x30, 0x5c, 0xf4, 0x15, 0x4d, 0x12, - 0x45, 0xa7, 0x7b, 0xcc, 0xb4, 0x6b, 0xad, 0x5b, 0x00, 0xad, 0xda, 0xa8, 0x23, 0xcb, 0xad, 0x38, - 0x6e, 0x1b, 0x99, 0xcd, 0xba, 0xb5, 0x4b, 0x0a, 0x70, 0x2a, 0xdb, 0xbf, 0x63, 0x36, 0x1c, 0x64, - 0x8c, 0x51, 0xf2, 0x26, 0xa7, 0x62, 0x04, 0x59, 0x65, 0xda, 0x01, 0xc4, 0x80, 0x80, 0xa0, 0x64, - 0x0f, 0x91, 0xf9, 0xf2, 0x11, 0x18, 0x0a, 0xb4, 0x75, 0xfa, 0x49, 0x18, 0x7e, 0xc2, 0x7c, 0xca, - 0xac, 0xf0, 0x56, 0x9d, 0x5a, 0x62, 0x08, 0x8f, 0x6d, 0xb0, 0x76, 0x7d, 0x01, 0x8e, 0x12, 0x16, - 0xbb, 0xe3, 0xa2, 0x76, 0xa5, 0xda, 0x30, 0x1d, 0x87, 0x18, 0x2d, 0x45, 0x58, 0x75, 0x4c, 0x5b, - 0xc7, 0xa4, 0x02, 0xa7, 0xe8, 0xcb, 0x30, 0x41, 0x10, 0xcd, 0x4e, 0xc3, 0xad, 0xb7, 0x1a, 0xa8, - 0x82, 0x5f, 0x1e, 0x1c, 0x52, 0x88, 0x3d, 0xcd, 0xc6, 0x31, 0xc7, 0x1a, 0x63, 0xc0, 0x1a, 0x39, - 0x7a, 0x11, 0xee, 0x26, 0xb0, 0x5d, 0x64, 0xa1, 0xb6, 0xe9, 0xa2, 0x0a, 0xfa, 0x40, 0xc7, 0x6c, - 0x38, 0x15, 0xd3, 0xaa, 0x55, 0xf6, 0x4c, 0x67, 0x2f, 0x7d, 0x14, 0x0b, 0xc8, 0x27, 0xd2, 0x8a, - 0x71, 0x27, 0x66, 0xbc, 0xca, 0xf8, 0x4a, 0x84, 0x2d, 0x67, 0xd5, 0x1e, 0x35, 0x9d, 0x3d, 0x3d, - 0x0b, 0x93, 0x44, 0x8a, 0xe3, 0xb6, 0xeb, 0xd6, 0x6e, 0xa5, 0xba, 0x87, 0xaa, 0x4f, 0x56, 0x3a, - 0xee, 0xce, 0xc5, 0xf4, 0x5d, 0xc1, 0xe7, 0x13, 0x0d, 0x37, 0x09, 0x4f, 0x01, 0xb3, 0x6c, 0xbb, - 0x3b, 0x17, 0xf5, 0x4d, 0x18, 0xc6, 0xce, 0x68, 0xd6, 0x9f, 0x45, 0x95, 0x1d, 0xbb, 0x4d, 0x56, - 0x96, 0xd1, 0x90, 0xcc, 0x0e, 0x58, 0x70, 0x7e, 0x9d, 0x01, 0xd6, 0xec, 0x1a, 0xca, 0xf6, 0x6f, - 0x6e, 0x94, 0x4a, 0x45, 0x63, 0x88, 0x4b, 0xb9, 0x62, 0xb7, 0x71, 0x40, 0xed, 0xda, 0x9e, 0x81, - 0x87, 0x68, 0x40, 0xed, 0xda, 0xdc, 0xbc, 0xcb, 0x30, 0x51, 0xad, 0xd2, 0x39, 0xd7, 0xab, 0x15, - 0xd6, 0xe2, 0x3b, 0x69, 0x4d, 0x30, 0x56, 0xb5, 0x7a, 0x95, 0x32, 0xb0, 0x18, 0x77, 0xf4, 0x4b, - 0x70, 0x87, 0x6f, 0xac, 0x20, 0x70, 0xbc, 0x6b, 0x96, 0x32, 0x74, 0x19, 0x26, 0x5a, 0xfb, 0xdd, - 0x40, 0x5d, 0x78, 0x62, 0x6b, 0x5f, 0x86, 0xdd, 0x4b, 0x5e, 0xdb, 0xda, 0xa8, 0x6a, 0xba, 0xa8, - 0x96, 0x3e, 0x16, 0xe4, 0x0e, 0x10, 0xf4, 0x33, 0xa0, 0x55, 0xab, 0x15, 0x64, 0x99, 0x37, 0x1a, - 0xa8, 0x62, 0xb6, 0x91, 0x65, 0x3a, 0xe9, 0x99, 0x20, 0xf3, 0x68, 0xb5, 0x5a, 0x22, 0xd4, 0x1c, - 0x21, 0xea, 0x73, 0x30, 0x6e, 0xdf, 0x78, 0xa2, 0x4a, 0x23, 0xab, 0xd2, 0x6a, 0xa3, 0x9d, 0xfa, - 0x33, 0xe9, 0x53, 0xc4, 0x4c, 0x63, 0x98, 0x40, 0xe2, 0x6a, 0x83, 0x0c, 0xeb, 0xf7, 0x83, 0x56, - 0x75, 0xf6, 0xcc, 0x76, 0x8b, 0x2c, 0xed, 0x4e, 0xcb, 0xac, 0xa2, 0xf4, 0xbd, 0x94, 0x95, 0x8e, - 0x97, 0xf9, 0x30, 0x8e, 0x6c, 0xe7, 0xe9, 0xfa, 0x8e, 0xcb, 0x25, 0xde, 0x47, 0x23, 0x9b, 0x8c, - 0x31, 0x69, 0x8f, 0xc3, 0xd1, 0x8e, 0x55, 0xb7, 0x5c, 0xd4, 0x6e, 0xb5, 0x11, 0x6e, 0xe2, 0x69, - 0x26, 0xa6, 0xff, 0xe5, 0x48, 0x8f, 0x36, 0x7c, 0x3b, 0xc8, 0x4d, 0x03, 0xc0, 0x98, 0xe8, 0x74, - 0x0f, 0x66, 0xb2, 0x30, 0x1c, 0x8c, 0x0b, 0x7d, 0x10, 0x68, 0x64, 0x68, 0x0a, 0x5e, 0x63, 0x0b, - 0xeb, 0x45, 0xbc, 0x3a, 0xbe, 0xbf, 0xa4, 0x25, 0xf0, 0x2a, 0xbd, 0xba, 0xb2, 0x55, 0xaa, 0x18, - 0xdb, 0xe5, 0xad, 0x95, 0xb5, 0x92, 0xa6, 0xce, 0x0d, 0xa6, 0x7e, 0x70, 0x44, 0x7b, 0xee, 0xb9, - 0xe7, 0x9e, 0x4b, 0x64, 0xbe, 0x9d, 0x80, 0x51, 0xb1, 0x33, 0xd6, 0xdf, 0x0d, 0xc7, 0xf8, 0x6b, - 0xac, 0x83, 0xdc, 0xca, 0xd3, 0xf5, 0x36, 0x09, 0xd5, 0xa6, 0x49, 0x7b, 0x4b, 0xcf, 0xca, 0x47, - 0x19, 0xd7, 0x26, 0x72, 0x1f, 0xab, 0xb7, 0x71, 0x20, 0x36, 0x4d, 0x57, 0x5f, 0x85, 0x19, 0xcb, - 0xae, 0x38, 0xae, 0x69, 0xd5, 0xcc, 0x76, 0xad, 0xe2, 0x6f, 0x20, 0x54, 0xcc, 0x6a, 0x15, 0x39, - 0x8e, 0x4d, 0x97, 0x08, 0x4f, 0xca, 0x71, 0xcb, 0xde, 0x64, 0xcc, 0x7e, 0xed, 0xcc, 0x31, 0x56, - 0x29, 0x22, 0xd4, 0x5e, 0x11, 0x71, 0x17, 0x0c, 0x36, 0xcd, 0x56, 0x05, 0x59, 0x6e, 0x7b, 0x9f, - 0xf4, 0x73, 0x29, 0x23, 0xd5, 0x34, 0x5b, 0x25, 0xfc, 0xfd, 0x9d, 0xf3, 0x41, 0xd0, 0x8e, 0xff, - 0xac, 0xc2, 0x70, 0xb0, 0xa7, 0xc3, 0x2d, 0x72, 0x95, 0xd4, 0x6f, 0x85, 0x64, 0xf8, 0x3d, 0x07, - 0x76, 0x80, 0xf3, 0x05, 0x5c, 0xd8, 0xb3, 0x03, 0xb4, 0xd3, 0x32, 0x28, 0x12, 0x2f, 0xaa, 0x38, - 0xa7, 0x11, 0xed, 0xdf, 0x53, 0x06, 0xfb, 0xa6, 0x5f, 0x85, 0x81, 0x27, 0x1c, 0x22, 0x7b, 0x80, - 0xc8, 0x3e, 0x75, 0xb0, 0xec, 0x6b, 0x9b, 0x44, 0xf8, 0xe0, 0xb5, 0xcd, 0x4a, 0x79, 0xdd, 0x58, - 0xcb, 0xad, 0x1a, 0x0c, 0xae, 0xdf, 0x09, 0xc9, 0x86, 0xf9, 0xec, 0xbe, 0xb8, 0x04, 0x90, 0xa1, - 0xb8, 0x86, 0xbf, 0x13, 0x92, 0x4f, 0x23, 0xf3, 0x49, 0xb1, 0xf0, 0x92, 0xa1, 0x77, 0x30, 0xf4, - 0xcf, 0x40, 0x3f, 0xb1, 0x97, 0x0e, 0xc0, 0x2c, 0xa6, 0xf5, 0xe9, 0x29, 0x48, 0x16, 0xd6, 0x0d, - 0x1c, 0xfe, 0x1a, 0x0c, 0xd3, 0xd1, 0xca, 0xc6, 0x4a, 0xa9, 0x50, 0xd2, 0x12, 0x99, 0x65, 0x18, - 0xa0, 0x46, 0xc0, 0xa9, 0xe1, 0x99, 0x41, 0xeb, 0x63, 0x5f, 0x99, 0x0c, 0x85, 0x53, 0xb7, 0xd7, - 0xf2, 0x25, 0x43, 0x4b, 0x04, 0xdd, 0xeb, 0xc0, 0x70, 0xb0, 0x9d, 0xfb, 0xf9, 0xc4, 0xd4, 0x37, - 0x15, 0x18, 0x0a, 0xb4, 0x67, 0xb8, 0x31, 0x30, 0x1b, 0x0d, 0xfb, 0xe9, 0x8a, 0xd9, 0xa8, 0x9b, - 0x0e, 0x0b, 0x0a, 0x20, 0x43, 0x39, 0x3c, 0x12, 0xd7, 0x69, 0x3f, 0x17, 0xe5, 0x9f, 0x57, 0x40, - 0x93, 0x5b, 0x3b, 0x49, 0x41, 0xe5, 0x17, 0xaa, 0xe0, 0xa7, 0x14, 0x18, 0x15, 0xfb, 0x39, 0x49, - 0xbd, 0x93, 0xbf, 0x50, 0xf5, 0xbe, 0x97, 0x80, 0x11, 0xa1, 0x8b, 0x8b, 0xab, 0xdd, 0x07, 0x60, - 0xbc, 0x5e, 0x43, 0xcd, 0x96, 0xed, 0x22, 0xab, 0xba, 0x5f, 0x69, 0xa0, 0xa7, 0x50, 0x23, 0x9d, - 0x21, 0x85, 0xe2, 0xcc, 0xc1, 0x7d, 0xe2, 0xfc, 0x8a, 0x8f, 0x5b, 0xc5, 0xb0, 0xec, 0xc4, 0x4a, - 0xb1, 0xb4, 0xb6, 0xb1, 0xbe, 0x55, 0x2a, 0x17, 0xae, 0x57, 0xb6, 0xcb, 0xef, 0x29, 0xaf, 0x3f, - 0x56, 0x36, 0xb4, 0xba, 0xc4, 0xf6, 0x0e, 0xa6, 0xfa, 0x06, 0x68, 0xb2, 0x52, 0xfa, 0x31, 0x08, - 0x53, 0x4b, 0xeb, 0xd3, 0x27, 0x60, 0xac, 0xbc, 0x5e, 0xd9, 0x5c, 0x29, 0x96, 0x2a, 0xa5, 0x2b, - 0x57, 0x4a, 0x85, 0xad, 0x4d, 0xfa, 0xe2, 0xec, 0x71, 0x6f, 0x89, 0x49, 0xfd, 0x49, 0x15, 0x26, - 0x42, 0x34, 0xd1, 0x73, 0xac, 0x67, 0xa7, 0xaf, 0x11, 0x0f, 0xc6, 0xd1, 0x7e, 0x1e, 0x77, 0x05, - 0x1b, 0x66, 0xdb, 0x65, 0x2d, 0xfe, 0xfd, 0x80, 0xad, 0x64, 0xb9, 0xf5, 0x9d, 0x3a, 0x6a, 0xb3, - 0x7d, 0x06, 0xda, 0xc8, 0x8f, 0xf9, 0xe3, 0x74, 0xab, 0xe1, 0x01, 0xd0, 0x5b, 0xb6, 0x53, 0x77, - 0xeb, 0x4f, 0xa1, 0x4a, 0xdd, 0xe2, 0x9b, 0x12, 0xb8, 0xb1, 0x4f, 0x1a, 0x1a, 0xa7, 0xac, 0x58, - 0xae, 0xc7, 0x6d, 0xa1, 0x5d, 0x53, 0xe2, 0xc6, 0x05, 0x5c, 0x35, 0x34, 0x4e, 0xf1, 0xb8, 0x4f, - 0xc2, 0x70, 0xcd, 0xee, 0xe0, 0x36, 0x89, 0xf2, 0xe1, 0xf5, 0x42, 0x31, 0x86, 0xe8, 0x98, 0xc7, - 0xc2, 0xfa, 0x58, 0x7f, 0x37, 0x64, 0xd8, 0x18, 0xa2, 0x63, 0x94, 0xe5, 0x3e, 0x18, 0x33, 0x77, - 0x77, 0xdb, 0x58, 0x38, 0x17, 0x44, 0x3b, 0xf3, 0x51, 0x6f, 0x98, 0x30, 0x4e, 0x5d, 0x83, 0x14, - 0xb7, 0x03, 0x5e, 0x92, 0xb1, 0x25, 0x2a, 0x2d, 0xba, 0x27, 0x95, 0x98, 0x1d, 0x34, 0x52, 0x16, - 0x27, 0x9e, 0x84, 0xe1, 0xba, 0x53, 0xf1, 0x37, 0x47, 0x13, 0x27, 0x12, 0xb3, 0x29, 0x63, 0xa8, - 0xee, 0x78, 0xbb, 0x61, 0x99, 0x2f, 0x24, 0x60, 0x54, 0xdc, 0xdc, 0xd5, 0x8b, 0x90, 0x6a, 0xd8, - 0x55, 0x93, 0x84, 0x16, 0x3d, 0x59, 0x98, 0x8d, 0xd8, 0x0f, 0x9e, 0x5f, 0x65, 0xfc, 0x86, 0x87, - 0x9c, 0xfa, 0x07, 0x05, 0x52, 0x7c, 0x58, 0x9f, 0x84, 0x64, 0xcb, 0x74, 0xf7, 0x88, 0xb8, 0xfe, - 0x7c, 0x42, 0x53, 0x0c, 0xf2, 0x1d, 0x8f, 0x3b, 0x2d, 0xd3, 0x22, 0x21, 0xc0, 0xc6, 0xf1, 0x77, - 0xec, 0xd7, 0x06, 0x32, 0x6b, 0xa4, 0xed, 0xb7, 0x9b, 0x4d, 0x64, 0xb9, 0x0e, 0xf7, 0x2b, 0x1b, - 0x2f, 0xb0, 0x61, 0xfd, 0x5d, 0x30, 0xee, 0xb6, 0xcd, 0x7a, 0x43, 0xe0, 0x4d, 0x12, 0x5e, 0x8d, - 0x13, 0x3c, 0xe6, 0x2c, 0xdc, 0xc9, 0xe5, 0xd6, 0x90, 0x6b, 0x56, 0xf7, 0x50, 0xcd, 0x07, 0x0d, - 0x90, 0x9d, 0xc3, 0x63, 0x8c, 0xa1, 0xc8, 0xe8, 0x1c, 0x9b, 0xf9, 0x8e, 0x02, 0xe3, 0xfc, 0x45, - 0xa5, 0xe6, 0x19, 0x6b, 0x0d, 0xc0, 0xb4, 0x2c, 0xdb, 0x0d, 0x9a, 0xab, 0x3b, 0x94, 0xbb, 0x70, - 0xf3, 0x39, 0x0f, 0x64, 0x04, 0x04, 0x4c, 0x35, 0x01, 0x7c, 0x4a, 0x4f, 0xb3, 0xcd, 0xc0, 0x10, - 0xdb, 0xb9, 0x27, 0xc7, 0x3f, 0xf4, 0xd5, 0x16, 0xe8, 0x10, 0x7e, 0xa3, 0xd1, 0x8f, 0x42, 0xff, - 0x0d, 0xb4, 0x5b, 0xb7, 0xd8, 0x7e, 0x22, 0xfd, 0xc2, 0x77, 0x29, 0x93, 0xde, 0x2e, 0x65, 0xfe, - 0x71, 0x98, 0xa8, 0xda, 0x4d, 0x59, 0xdd, 0xbc, 0x26, 0xbd, 0x5e, 0x3b, 0x8f, 0x2a, 0xef, 0x07, - 0xbf, 0xc5, 0xfc, 0x5c, 0x42, 0xbd, 0xba, 0x91, 0xff, 0x52, 0x62, 0xea, 0x2a, 0xc5, 0x6d, 0xf0, - 0x69, 0x1a, 0x68, 0xa7, 0x81, 0xaa, 0x58, 0x75, 0xf8, 0xf1, 0x69, 0x78, 0x70, 0xb7, 0xee, 0xee, - 0x75, 0x6e, 0xcc, 0x57, 0xed, 0xe6, 0x99, 0x5d, 0x7b, 0xd7, 0xf6, 0x8f, 0xbb, 0xf0, 0x37, 0xf2, - 0x85, 0x7c, 0x62, 0x47, 0x5e, 0x83, 0xde, 0xe8, 0x54, 0xe4, 0xf9, 0x58, 0xb6, 0x0c, 0x13, 0x8c, - 0xb9, 0x42, 0xf6, 0xdc, 0xe9, 0xab, 0x81, 0x7e, 0xe0, 0xbe, 0x4b, 0xfa, 0xab, 0xdf, 0x27, 0x6b, - 0xb5, 0x31, 0xce, 0xa0, 0x98, 0x46, 0x5f, 0x20, 0xb2, 0x06, 0xdc, 0x21, 0xc8, 0xa3, 0x79, 0x89, - 0xda, 0x11, 0x12, 0xbf, 0xcd, 0x24, 0x4e, 0x04, 0x24, 0x6e, 0x32, 0x68, 0xb6, 0x00, 0x23, 0x87, - 0x91, 0xf5, 0xb7, 0x4c, 0xd6, 0x30, 0x0a, 0x0a, 0xb9, 0x0a, 0x63, 0x44, 0x48, 0xb5, 0xe3, 0xb8, - 0x76, 0x93, 0x14, 0xbd, 0x83, 0xc5, 0xfc, 0xdd, 0xf7, 0x69, 0xa2, 0x8c, 0x62, 0x58, 0xc1, 0x43, - 0x65, 0xb3, 0x40, 0x8e, 0x19, 0x6a, 0xa8, 0xda, 0x88, 0x90, 0x70, 0x93, 0x29, 0xe2, 0xf1, 0x67, - 0xdf, 0x07, 0x47, 0xf1, 0x67, 0x52, 0x93, 0x82, 0x9a, 0x44, 0xef, 0x32, 0xa5, 0xbf, 0xf3, 0x21, - 0x9a, 0x8b, 0x13, 0x9e, 0x80, 0x80, 0x4e, 0x01, 0x2f, 0xee, 0x22, 0xd7, 0x45, 0x6d, 0xa7, 0x62, - 0x36, 0xc2, 0xd4, 0x0b, 0xbc, 0xa6, 0xa7, 0x3f, 0xf1, 0xba, 0xe8, 0xc5, 0xab, 0x14, 0x99, 0x6b, - 0x34, 0xb2, 0xdb, 0x70, 0x2c, 0x24, 0x2a, 0x62, 0xc8, 0xfc, 0x24, 0x93, 0x79, 0xb4, 0x2b, 0x32, - 0xb0, 0xd8, 0x0d, 0xe0, 0xe3, 0x9e, 0x2f, 0x63, 0xc8, 0xfc, 0x03, 0x26, 0x53, 0x67, 0x58, 0xee, - 0x52, 0x2c, 0xf1, 0x1a, 0x8c, 0x3f, 0x85, 0xda, 0x37, 0x6c, 0x87, 0x6d, 0x8d, 0xc4, 0x10, 0xf7, - 0x29, 0x26, 0x6e, 0x8c, 0x01, 0xc9, 0x5e, 0x09, 0x96, 0x75, 0x09, 0x52, 0x3b, 0x66, 0x15, 0xc5, - 0x10, 0xf1, 0x69, 0x26, 0xe2, 0x08, 0xe6, 0xc7, 0xd0, 0x1c, 0x0c, 0xef, 0xda, 0x6c, 0x59, 0x8a, - 0x86, 0x3f, 0xcf, 0xe0, 0x43, 0x1c, 0xc3, 0x44, 0xb4, 0xec, 0x56, 0xa7, 0x81, 0xd7, 0xac, 0x68, - 0x11, 0x9f, 0xe1, 0x22, 0x38, 0x86, 0x89, 0x38, 0x84, 0x59, 0x5f, 0xe0, 0x22, 0x9c, 0x80, 0x3d, - 0x1f, 0x81, 0x21, 0xdb, 0x6a, 0xec, 0xdb, 0x56, 0x1c, 0x25, 0x3e, 0xcb, 0x24, 0x00, 0x83, 0x60, - 0x01, 0x97, 0x61, 0x30, 0xae, 0x23, 0x3e, 0xff, 0x3a, 0x4f, 0x0f, 0xee, 0x81, 0xab, 0x30, 0xc6, - 0x0b, 0x54, 0xdd, 0xb6, 0x62, 0x88, 0xf8, 0x23, 0x26, 0x62, 0x34, 0x00, 0x63, 0xd3, 0x70, 0x91, - 0xe3, 0xee, 0xa2, 0x38, 0x42, 0xbe, 0xc0, 0xa7, 0xc1, 0x20, 0xcc, 0x94, 0x37, 0x90, 0x55, 0xdd, - 0x8b, 0x27, 0xe1, 0x45, 0x6e, 0x4a, 0x8e, 0xc1, 0x22, 0x0a, 0x30, 0xd2, 0x34, 0xdb, 0xce, 0x9e, - 0xd9, 0x88, 0xe5, 0x8e, 0x2f, 0x32, 0x19, 0xc3, 0x1e, 0x88, 0x59, 0xa4, 0x63, 0x1d, 0x46, 0xcc, - 0x97, 0xb8, 0x45, 0x02, 0x30, 0x96, 0x7a, 0x8e, 0x4b, 0x36, 0xa0, 0x0e, 0x23, 0xed, 0xcb, 0x3c, - 0xf5, 0x28, 0x76, 0x2d, 0x28, 0xf1, 0x32, 0x0c, 0x3a, 0xf5, 0x67, 0x63, 0x89, 0xf9, 0x63, 0xee, - 0x69, 0x02, 0xc0, 0xe0, 0xeb, 0x70, 0x67, 0xe8, 0x32, 0x11, 0x43, 0xd8, 0x9f, 0x30, 0x61, 0x93, - 0x21, 0x4b, 0x05, 0x2b, 0x09, 0x87, 0x15, 0xf9, 0xa7, 0xbc, 0x24, 0x20, 0x49, 0xd6, 0x06, 0x7e, - 0x51, 0x70, 0xcc, 0x9d, 0xc3, 0x59, 0xed, 0xcf, 0xb8, 0xd5, 0x28, 0x56, 0xb0, 0xda, 0x16, 0x4c, - 0x32, 0x89, 0x87, 0xf3, 0xeb, 0x57, 0x78, 0x61, 0xa5, 0xe8, 0x6d, 0xd1, 0xbb, 0xff, 0x0b, 0xa6, - 0x3c, 0x73, 0xf2, 0x8e, 0xd4, 0xa9, 0x34, 0xcd, 0x56, 0x0c, 0xc9, 0x5f, 0x65, 0x92, 0x79, 0xc5, - 0xf7, 0x5a, 0x5a, 0x67, 0xcd, 0x6c, 0x61, 0xe1, 0x8f, 0x43, 0x9a, 0x0b, 0xef, 0x58, 0x6d, 0x54, - 0xb5, 0x77, 0xad, 0xfa, 0xb3, 0xa8, 0x16, 0x43, 0xf4, 0x9f, 0x4b, 0xae, 0xda, 0x0e, 0xc0, 0xb1, - 0xe4, 0x15, 0xd0, 0xbc, 0x5e, 0xa5, 0x52, 0x6f, 0xb6, 0xec, 0xb6, 0x1b, 0x21, 0xf1, 0x2f, 0xb8, - 0xa7, 0x3c, 0xdc, 0x0a, 0x81, 0x65, 0x4b, 0x30, 0x4a, 0xbe, 0xc6, 0x0d, 0xc9, 0xaf, 0x31, 0x41, - 0x23, 0x3e, 0x8a, 0x15, 0x8e, 0xaa, 0xdd, 0x6c, 0x99, 0xed, 0x38, 0xf5, 0xef, 0x2f, 0x79, 0xe1, - 0x60, 0x10, 0x56, 0x38, 0xdc, 0xfd, 0x16, 0xc2, 0xab, 0x7d, 0x0c, 0x09, 0x5f, 0xe7, 0x85, 0x83, - 0x63, 0x98, 0x08, 0xde, 0x30, 0xc4, 0x10, 0xf1, 0x57, 0x5c, 0x04, 0xc7, 0x60, 0x11, 0xef, 0xf5, - 0x17, 0xda, 0x36, 0xda, 0xad, 0x3b, 0x6e, 0x9b, 0xf6, 0xc1, 0x07, 0x8b, 0xfa, 0xc6, 0xeb, 0x62, - 0x13, 0x66, 0x04, 0xa0, 0xd9, 0x6b, 0x30, 0x26, 0xb5, 0x18, 0x7a, 0xd4, 0x9d, 0x85, 0xf4, 0xff, - 0x7d, 0x83, 0x15, 0x23, 0xb1, 0xc3, 0xc8, 0xae, 0x62, 0xbf, 0x8b, 0x7d, 0x40, 0xb4, 0xb0, 0x0f, - 0xbd, 0xe1, 0xb9, 0x5e, 0x68, 0x03, 0xb2, 0x57, 0x60, 0x44, 0xe8, 0x01, 0xa2, 0x45, 0xfd, 0x3f, - 0x26, 0x6a, 0x38, 0xd8, 0x02, 0x64, 0x97, 0x21, 0x89, 0xd7, 0xf3, 0x68, 0xf8, 0xff, 0x67, 0x70, - 0xc2, 0x9e, 0x7d, 0x08, 0x52, 0x7c, 0x1d, 0x8f, 0x86, 0x7e, 0x98, 0x41, 0x3d, 0x08, 0x86, 0xf3, - 0x35, 0x3c, 0x1a, 0xfe, 0x2b, 0x1c, 0xce, 0x21, 0x18, 0x1e, 0xdf, 0x84, 0x2f, 0xfd, 0x5a, 0x92, - 0xd5, 0x61, 0x6e, 0xbb, 0xcb, 0x70, 0x84, 0x2d, 0xde, 0xd1, 0xe8, 0x8f, 0xb2, 0x87, 0x73, 0x44, - 0xf6, 0x02, 0xf4, 0xc7, 0x34, 0xf8, 0xaf, 0x33, 0x28, 0xe5, 0xcf, 0x16, 0x60, 0x28, 0xb0, 0x60, - 0x47, 0xc3, 0x7f, 0x83, 0xc1, 0x83, 0x28, 0xac, 0x3a, 0x5b, 0xb0, 0xa3, 0x05, 0xfc, 0x26, 0x57, - 0x9d, 0x21, 0xb0, 0xd9, 0xf8, 0x5a, 0x1d, 0x8d, 0xfe, 0x2d, 0x6e, 0x75, 0x0e, 0xc9, 0x3e, 0x02, - 0x83, 0x5e, 0xfd, 0x8d, 0xc6, 0xff, 0x36, 0xc3, 0xfb, 0x18, 0x6c, 0x81, 0x40, 0xfd, 0x8f, 0x16, - 0xf1, 0x3b, 0xdc, 0x02, 0x01, 0x14, 0x4e, 0x23, 0x79, 0x4d, 0x8f, 0x96, 0xf4, 0x31, 0x9e, 0x46, - 0xd2, 0x92, 0x8e, 0xbd, 0x49, 0xca, 0x60, 0xb4, 0x88, 0xdf, 0xe5, 0xde, 0x24, 0xfc, 0x58, 0x0d, - 0x79, 0x91, 0x8c, 0x96, 0xf1, 0xfb, 0x5c, 0x0d, 0x69, 0x8d, 0xcc, 0x6e, 0x80, 0xde, 0xbd, 0x40, - 0x46, 0xcb, 0xfb, 0x38, 0x93, 0x37, 0xde, 0xb5, 0x3e, 0x66, 0x1f, 0x83, 0xc9, 0xf0, 0xc5, 0x31, - 0x5a, 0xea, 0x27, 0xde, 0x90, 0x5e, 0x67, 0x82, 0x6b, 0x63, 0x76, 0xcb, 0xaf, 0xb2, 0xc1, 0x85, - 0x31, 0x5a, 0xec, 0x27, 0xdf, 0x10, 0x0b, 0x6d, 0x70, 0x5d, 0xcc, 0xe6, 0x00, 0xfc, 0x35, 0x29, - 0x5a, 0xd6, 0xa7, 0x98, 0xac, 0x00, 0x08, 0xa7, 0x06, 0x5b, 0x92, 0xa2, 0xf1, 0x9f, 0xe6, 0xa9, - 0xc1, 0x10, 0x38, 0x35, 0xf8, 0x6a, 0x14, 0x8d, 0x7e, 0x9e, 0xa7, 0x06, 0x87, 0x64, 0x2f, 0x43, - 0xca, 0xea, 0x34, 0x1a, 0x38, 0xb6, 0xf4, 0x83, 0xaf, 0x11, 0xa5, 0xff, 0xf5, 0x4d, 0x06, 0xe6, - 0x80, 0xec, 0x32, 0xf4, 0xa3, 0xe6, 0x0d, 0x54, 0x8b, 0x42, 0xfe, 0xdb, 0x9b, 0xbc, 0x9e, 0x60, - 0xee, 0xec, 0x23, 0x00, 0xf4, 0x65, 0x9a, 0x9c, 0x12, 0x45, 0x60, 0xff, 0xfd, 0x4d, 0x76, 0x43, - 0xc1, 0x87, 0xf8, 0x02, 0xe8, 0x7d, 0x87, 0x83, 0x05, 0xbc, 0x2e, 0x0a, 0x20, 0x2f, 0xe0, 0x97, - 0xe0, 0xc8, 0x13, 0x8e, 0x6d, 0xb9, 0xe6, 0x6e, 0x14, 0xfa, 0x3f, 0x18, 0x9a, 0xf3, 0x63, 0x83, - 0x35, 0xed, 0x36, 0x72, 0xcd, 0x5d, 0x27, 0x0a, 0xfb, 0x9f, 0x0c, 0xeb, 0x01, 0x30, 0xb8, 0x6a, - 0x3a, 0x6e, 0x9c, 0x79, 0xff, 0x17, 0x07, 0x73, 0x00, 0x56, 0x1a, 0x7f, 0x7e, 0x12, 0xed, 0x47, - 0x61, 0x7f, 0xc8, 0x95, 0x66, 0xfc, 0xd9, 0x87, 0x60, 0x10, 0x7f, 0xa4, 0xb7, 0x76, 0x22, 0xc0, - 0x3f, 0x62, 0x60, 0x1f, 0x81, 0x9f, 0xec, 0xb8, 0x35, 0xb7, 0x1e, 0x6d, 0xec, 0xff, 0x66, 0x9e, - 0xe6, 0xfc, 0xd9, 0x1c, 0x0c, 0x39, 0x6e, 0xad, 0xd6, 0x61, 0x1d, 0x4d, 0x04, 0xfc, 0xc7, 0x6f, - 0x7a, 0x2f, 0xb9, 0x1e, 0x26, 0x7f, 0x32, 0x7c, 0xb3, 0x0e, 0xae, 0xda, 0x57, 0x6d, 0xba, 0x4d, - 0x07, 0xdf, 0x6c, 0xc0, 0x88, 0xbb, 0x87, 0xf0, 0x72, 0xc1, 0x76, 0xd5, 0x92, 0xf8, 0xf3, 0xd4, - 0xe1, 0xb6, 0xe2, 0xc8, 0x29, 0x6b, 0xb9, 0x8e, 0xb5, 0x29, 0x93, 0x8d, 0x6e, 0xfd, 0x38, 0x0c, - 0x10, 0xfd, 0xce, 0x92, 0xc3, 0x24, 0x25, 0x9f, 0xbc, 0xf9, 0xca, 0x4c, 0x9f, 0xc1, 0xc6, 0x3c, - 0xea, 0x22, 0xd9, 0x89, 0x4c, 0x08, 0xd4, 0x45, 0x8f, 0x7a, 0x8e, 0x6e, 0x46, 0x0a, 0xd4, 0x73, - 0x1e, 0x75, 0x89, 0x6c, 0x4b, 0xaa, 0x02, 0x75, 0xc9, 0xa3, 0x2e, 0x93, 0xad, 0xf7, 0x11, 0x81, - 0xba, 0xec, 0x51, 0xcf, 0x93, 0x0d, 0xf7, 0xa4, 0x40, 0x3d, 0xef, 0x51, 0x2f, 0x90, 0xbd, 0xf6, - 0x71, 0x81, 0x7a, 0xc1, 0xa3, 0x5e, 0x24, 0x7b, 0xec, 0xba, 0x40, 0xbd, 0xe8, 0x51, 0x2f, 0x91, - 0x8b, 0x23, 0x47, 0x04, 0xea, 0x25, 0x7d, 0x1a, 0x8e, 0xd0, 0x99, 0x2f, 0x90, 0x03, 0xd9, 0x31, - 0x46, 0xe6, 0x83, 0x3e, 0xfd, 0x2c, 0xb9, 0x24, 0x32, 0x20, 0xd2, 0xcf, 0xfa, 0xf4, 0x45, 0x72, - 0x5d, 0x5a, 0x13, 0xe9, 0x8b, 0x3e, 0xfd, 0x5c, 0x7a, 0x84, 0x5c, 0x94, 0x11, 0xe8, 0xe7, 0x7c, - 0xfa, 0x52, 0x7a, 0x14, 0x87, 0xa8, 0x48, 0x5f, 0xf2, 0xe9, 0xcb, 0xe9, 0xb1, 0x13, 0xca, 0xec, - 0xb0, 0x48, 0x5f, 0xce, 0x7c, 0x90, 0xb8, 0xd7, 0xf2, 0xdd, 0x3b, 0x29, 0xba, 0xd7, 0x73, 0xec, - 0xa4, 0xe8, 0x58, 0xcf, 0xa5, 0x93, 0xa2, 0x4b, 0x3d, 0x67, 0x4e, 0x8a, 0xce, 0xf4, 0xdc, 0x38, - 0x29, 0xba, 0xd1, 0x73, 0xe0, 0xa4, 0xe8, 0x40, 0xcf, 0x75, 0x93, 0xa2, 0xeb, 0x3c, 0xa7, 0x4d, - 0x8a, 0x4e, 0xf3, 0xdc, 0x35, 0x29, 0xba, 0xcb, 0x73, 0x54, 0x5a, 0x72, 0x94, 0xef, 0xa2, 0xb4, - 0xe4, 0x22, 0xdf, 0x39, 0x69, 0xc9, 0x39, 0xbe, 0x5b, 0xd2, 0x92, 0x5b, 0x7c, 0x87, 0xa4, 0x25, - 0x87, 0xf8, 0xae, 0x48, 0x4b, 0xae, 0xf0, 0x9d, 0xc0, 0x72, 0xcc, 0x40, 0xad, 0x90, 0x1c, 0x53, - 0x0f, 0xcc, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, - 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xcc, 0x31, 0xf5, 0xc0, 0x1c, 0x53, 0x0f, 0xce, 0x31, 0x35, - 0x22, 0xc7, 0xd4, 0x88, 0x1c, 0x53, 0x23, 0x72, 0x4c, 0x8d, 0xc8, 0x31, 0x35, 0x22, 0xc7, 0xd4, - 0x9e, 0x39, 0xe6, 0xbb, 0x77, 0x52, 0x74, 0x6f, 0x68, 0x8e, 0xa9, 0x3d, 0x72, 0x4c, 0xed, 0x91, - 0x63, 0x6a, 0x8f, 0x1c, 0x53, 0x7b, 0xe4, 0x98, 0xda, 0x23, 0xc7, 0xd4, 0x1e, 0x39, 0xa6, 0xf6, - 0xc8, 0x31, 0xb5, 0x57, 0x8e, 0xa9, 0x3d, 0x73, 0x4c, 0xed, 0x99, 0x63, 0x6a, 0xcf, 0x1c, 0x53, - 0x7b, 0xe6, 0x98, 0xda, 0x33, 0xc7, 0xd4, 0x60, 0x8e, 0xfd, 0xb5, 0x0a, 0x3a, 0xcd, 0xb1, 0x0d, - 0x72, 0xa5, 0x87, 0xb9, 0x62, 0x5a, 0xca, 0xb4, 0x01, 0xec, 0x3a, 0xcd, 0x77, 0xc9, 0xb4, 0x94, - 0x6b, 0x22, 0x7d, 0xd1, 0xa3, 0xf3, 0x6c, 0x13, 0xe9, 0xe7, 0x3c, 0x3a, 0xcf, 0x37, 0x91, 0xbe, - 0xe4, 0xd1, 0x79, 0xc6, 0x89, 0xf4, 0x65, 0x8f, 0xce, 0x73, 0x4e, 0xa4, 0x9f, 0xf7, 0xe8, 0x3c, - 0xeb, 0x44, 0xfa, 0x05, 0x8f, 0xce, 0xf3, 0x4e, 0xa4, 0x5f, 0xf4, 0xe8, 0x3c, 0xf3, 0x44, 0xfa, - 0x25, 0xfd, 0x84, 0x9c, 0x7b, 0x9c, 0xc1, 0x73, 0xed, 0x09, 0x39, 0xfb, 0x24, 0x8e, 0xb3, 0x3e, - 0x07, 0xcf, 0x3f, 0x89, 0x63, 0xd1, 0xe7, 0xe0, 0x19, 0x28, 0x71, 0x9c, 0xcb, 0x7c, 0x84, 0xb8, - 0xcf, 0x92, 0xdd, 0x37, 0x25, 0xb9, 0x2f, 0x11, 0x70, 0xdd, 0x94, 0xe4, 0xba, 0x44, 0xc0, 0x6d, - 0x53, 0x92, 0xdb, 0x12, 0x01, 0x97, 0x4d, 0x49, 0x2e, 0x4b, 0x04, 0xdc, 0x35, 0x25, 0xb9, 0x2b, - 0x11, 0x70, 0xd5, 0x94, 0xe4, 0xaa, 0x44, 0xc0, 0x4d, 0x53, 0x92, 0x9b, 0x12, 0x01, 0x17, 0x4d, - 0x49, 0x2e, 0x4a, 0x04, 0xdc, 0x33, 0x25, 0xb9, 0x27, 0x11, 0x70, 0xcd, 0x71, 0xd9, 0x35, 0x89, - 0xa0, 0x5b, 0x8e, 0xcb, 0x6e, 0x49, 0x04, 0x5d, 0x72, 0x5c, 0x76, 0x49, 0x22, 0xe8, 0x8e, 0xe3, - 0xb2, 0x3b, 0x12, 0x41, 0x57, 0xfc, 0x2c, 0xc1, 0x3b, 0xc2, 0x4d, 0xb7, 0xdd, 0xa9, 0xba, 0xb7, - 0xd5, 0x11, 0x2e, 0x08, 0xed, 0xc3, 0xd0, 0xa2, 0x3e, 0x4f, 0x1a, 0xd6, 0x60, 0xc7, 0x29, 0xad, - 0x60, 0x0b, 0x42, 0x63, 0x11, 0x40, 0x58, 0xe1, 0x88, 0xa5, 0xdb, 0xea, 0x0d, 0x17, 0x84, 0x36, - 0x23, 0x5a, 0xbf, 0x8b, 0xef, 0x78, 0xc7, 0xf6, 0x52, 0x82, 0x77, 0x6c, 0xcc, 0xfc, 0x87, 0xed, - 0xd8, 0xe6, 0xa2, 0x4d, 0xee, 0x19, 0x7b, 0x2e, 0xda, 0xd8, 0x5d, 0xab, 0x4e, 0xdc, 0x0e, 0x6e, - 0x2e, 0xda, 0xb4, 0x9e, 0x51, 0xdf, 0xde, 0x7e, 0x8b, 0x45, 0xb0, 0x81, 0x5a, 0x21, 0x11, 0x7c, - 0xd8, 0x7e, 0x6b, 0x41, 0x28, 0x25, 0x87, 0x8d, 0x60, 0xf5, 0xd0, 0x11, 0x7c, 0xd8, 0xce, 0x6b, - 0x41, 0x28, 0x2f, 0x87, 0x8e, 0xe0, 0x77, 0xa0, 0x1f, 0x62, 0x11, 0xec, 0x9b, 0xff, 0xb0, 0xfd, - 0xd0, 0x5c, 0xb4, 0xc9, 0x43, 0x23, 0x58, 0x3d, 0x44, 0x04, 0xc7, 0xe9, 0x8f, 0xe6, 0xa2, 0x4d, - 0x1b, 0x1e, 0xc1, 0xb7, 0xdd, 0xcd, 0x7c, 0x46, 0x81, 0xf1, 0x72, 0xbd, 0x56, 0x6a, 0xde, 0x40, - 0xb5, 0x1a, 0xaa, 0x31, 0x3b, 0x2e, 0x08, 0x95, 0xa0, 0x87, 0xab, 0x5f, 0x7e, 0x65, 0xc6, 0xb7, - 0xf0, 0x32, 0xa4, 0xa8, 0x4d, 0x17, 0x16, 0xd2, 0x37, 0x95, 0x88, 0x0a, 0xe7, 0xb1, 0xea, 0x27, - 0x39, 0xec, 0xec, 0x42, 0xfa, 0x1f, 0x95, 0x40, 0x95, 0xf3, 0x86, 0x33, 0x1f, 0x23, 0x1a, 0x5a, - 0xb7, 0xad, 0xe1, 0x99, 0x58, 0x1a, 0x06, 0x74, 0xbb, 0xab, 0x4b, 0xb7, 0x80, 0x56, 0x1d, 0x18, - 0x2b, 0xd7, 0x6b, 0x65, 0xf2, 0x87, 0xba, 0x71, 0x54, 0xa2, 0x3c, 0x52, 0x3d, 0x58, 0x10, 0xc2, - 0x32, 0x88, 0xf0, 0x42, 0x5a, 0xac, 0x11, 0x99, 0x3a, 0x7e, 0xac, 0x25, 0x3c, 0x76, 0xae, 0xd7, - 0x63, 0xfd, 0xca, 0xee, 0x3d, 0x70, 0xae, 0xd7, 0x03, 0xfd, 0x1c, 0xf2, 0x1e, 0xf5, 0x0c, 0x5f, - 0x9c, 0xe9, 0xdd, 0x1a, 0xfd, 0x38, 0x24, 0x56, 0xe8, 0xbd, 0xdf, 0xe1, 0xfc, 0x30, 0x56, 0xea, - 0xbb, 0xaf, 0xcc, 0x24, 0xb7, 0x3b, 0xf5, 0x9a, 0x91, 0x58, 0xa9, 0xe9, 0xd7, 0xa0, 0xff, 0x7d, - 0xec, 0xcf, 0xdd, 0x30, 0xc3, 0x12, 0x63, 0x78, 0xa0, 0xe7, 0x1e, 0x11, 0x7e, 0xf0, 0x19, 0xba, - 0x6b, 0x38, 0xbf, 0x5d, 0xb7, 0xdc, 0xb3, 0x8b, 0x17, 0x0d, 0x2a, 0x22, 0xf3, 0xbf, 0x01, 0xe8, - 0x33, 0x8b, 0xa6, 0xb3, 0xa7, 0x97, 0xb9, 0x64, 0xfa, 0xe8, 0x8b, 0xdf, 0x7d, 0x65, 0x66, 0x29, - 0x8e, 0xd4, 0x07, 0x6b, 0xa6, 0xb3, 0xf7, 0xa0, 0xbb, 0xdf, 0x42, 0xf3, 0xf9, 0x7d, 0x17, 0x39, - 0x5c, 0x7a, 0x8b, 0xaf, 0x7a, 0x6c, 0x5e, 0xe9, 0xc0, 0xbc, 0x52, 0xc2, 0x9c, 0xae, 0x88, 0x73, - 0x5a, 0x78, 0xab, 0xf3, 0x79, 0x86, 0x2f, 0x12, 0x92, 0x25, 0xd5, 0x28, 0x4b, 0xaa, 0xb7, 0x6b, - 0xc9, 0x16, 0xaf, 0x8f, 0xd2, 0x5c, 0xd5, 0x83, 0xe6, 0xaa, 0xde, 0xce, 0x5c, 0x7f, 0x42, 0xb3, - 0xd5, 0xcb, 0xa7, 0x6d, 0x8b, 0xde, 0x39, 0xfc, 0xe5, 0xda, 0x0b, 0x7a, 0x5b, 0xbb, 0x80, 0x6c, - 0xf2, 0xe6, 0x0b, 0x33, 0x4a, 0xe6, 0x33, 0x09, 0x3e, 0x73, 0x9a, 0x48, 0x6f, 0x6d, 0xe6, 0xbf, - 0x2c, 0x3d, 0xd5, 0x3b, 0x61, 0xa1, 0xe7, 0x15, 0x98, 0xec, 0xaa, 0xe4, 0xd4, 0x4c, 0x6f, 0x6f, - 0x39, 0xb7, 0x0e, 0x5b, 0xce, 0x99, 0x82, 0x5f, 0x53, 0xe0, 0xa8, 0x54, 0x5e, 0xa9, 0x7a, 0x67, - 0x24, 0xf5, 0x8e, 0x75, 0x3f, 0x89, 0x30, 0x06, 0xb4, 0x0b, 0xba, 0x57, 0x02, 0x04, 0x24, 0x7b, - 0x7e, 0x5f, 0x92, 0xfc, 0x7e, 0xdc, 0x03, 0x84, 0x98, 0x8b, 0x47, 0x00, 0x53, 0xdb, 0x86, 0xe4, - 0x56, 0x1b, 0x21, 0x7d, 0x1a, 0x12, 0xeb, 0x6d, 0xa6, 0xe1, 0x28, 0xc5, 0xaf, 0xb7, 0xf3, 0x6d, - 0xd3, 0xaa, 0xee, 0x19, 0x89, 0xf5, 0xb6, 0x7e, 0x12, 0xd4, 0x1c, 0xfb, 0x41, 0x81, 0xa1, 0xc5, - 0x31, 0xca, 0x90, 0xb3, 0x6a, 0x8c, 0x03, 0xd3, 0xf4, 0x69, 0x48, 0xae, 0x22, 0x73, 0x87, 0x29, - 0x01, 0x94, 0x07, 0x8f, 0x18, 0x64, 0x9c, 0x3d, 0xf0, 0x71, 0x48, 0x71, 0xc1, 0xfa, 0x29, 0x8c, - 0xd8, 0x71, 0xd9, 0x63, 0x19, 0x02, 0xab, 0xc3, 0x56, 0x2e, 0x42, 0xd5, 0x4f, 0x43, 0xbf, 0x51, - 0xdf, 0xdd, 0x73, 0xd9, 0xc3, 0xbb, 0xd9, 0x28, 0x39, 0x73, 0x1d, 0x06, 0x3d, 0x8d, 0xde, 0x66, - 0xd1, 0x45, 0x3a, 0x35, 0x7d, 0x2a, 0xb8, 0x9e, 0xf0, 0x7d, 0x4b, 0x3a, 0xa4, 0x9f, 0x80, 0xd4, - 0xa6, 0xdb, 0xf6, 0x8b, 0x3e, 0xef, 0x48, 0xbd, 0xd1, 0xcc, 0x07, 0x15, 0x48, 0x15, 0x11, 0x6a, - 0x11, 0x83, 0xdf, 0x0b, 0xc9, 0xa2, 0xfd, 0xb4, 0xc5, 0x14, 0x1c, 0x67, 0x16, 0xc5, 0x64, 0x66, - 0x53, 0x42, 0xd6, 0xef, 0x0d, 0xda, 0x7d, 0xc2, 0xb3, 0x7b, 0x80, 0x8f, 0xd8, 0x3e, 0x23, 0xd8, - 0x9e, 0x39, 0x10, 0x33, 0x75, 0xd9, 0xff, 0x02, 0x0c, 0x05, 0x9e, 0xa2, 0xcf, 0x32, 0x35, 0x12, - 0x32, 0x30, 0x68, 0x2b, 0xcc, 0x91, 0x41, 0x30, 0x22, 0x3c, 0x18, 0x43, 0x03, 0x26, 0xee, 0x01, - 0x25, 0x66, 0x9e, 0x13, 0xcd, 0x1c, 0xce, 0xca, 0x4c, 0xbd, 0x40, 0x6d, 0x44, 0xcc, 0x7d, 0x8a, - 0x06, 0x67, 0x6f, 0x27, 0xe2, 0xcf, 0x99, 0x7e, 0x50, 0xcb, 0xf5, 0x46, 0xe6, 0x21, 0x00, 0x9a, - 0xf2, 0x25, 0xab, 0xd3, 0x94, 0xb2, 0x6e, 0x94, 0x1b, 0x78, 0x6b, 0x0f, 0x6d, 0x21, 0x87, 0xb0, - 0x88, 0xfd, 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0xef, 0x8f, 0xc4, 0x87, 0x76, 0x62, 0x98, - 0x35, 0x4d, 0x59, 0xaf, 0x23, 0x37, 0x67, 0xd9, 0xee, 0x1e, 0x6a, 0x4b, 0x88, 0x45, 0xfd, 0x9c, - 0x90, 0xb0, 0xa3, 0x8b, 0x77, 0x79, 0x88, 0x9e, 0xa0, 0x73, 0x99, 0xaf, 0x10, 0x05, 0x71, 0x2b, - 0xd0, 0x35, 0x41, 0x35, 0xc6, 0x04, 0xf5, 0xf3, 0x42, 0xff, 0x76, 0x80, 0x9a, 0xd2, 0xab, 0xe5, - 0x25, 0xe1, 0x3d, 0xe7, 0x60, 0x65, 0xc5, 0x77, 0x4c, 0x6e, 0x53, 0xae, 0xf2, 0xfd, 0x91, 0x2a, - 0xf7, 0xe8, 0x6e, 0x0f, 0x6b, 0x53, 0x35, 0xae, 0x4d, 0xbf, 0xe9, 0x75, 0x1c, 0xf4, 0xa7, 0x19, - 0xc8, 0x2f, 0x81, 0xe8, 0x0f, 0x44, 0xfa, 0x3e, 0xab, 0x14, 0x3c, 0x55, 0x97, 0xe2, 0xba, 0x3f, - 0x9b, 0xc8, 0xe7, 0x3d, 0x75, 0x2f, 0x1c, 0x22, 0x04, 0xb2, 0x89, 0x42, 0xc1, 0x2b, 0xdb, 0xa9, - 0x8f, 0xbc, 0x30, 0xa3, 0xbc, 0xf8, 0xc2, 0x4c, 0x5f, 0xe6, 0x8b, 0x0a, 0x8c, 0x33, 0xce, 0x40, - 0xe0, 0x3e, 0x28, 0x29, 0x7f, 0x07, 0xaf, 0x19, 0x61, 0x16, 0xf8, 0xb9, 0x05, 0xef, 0xb7, 0x15, - 0x48, 0x77, 0xe9, 0xca, 0xed, 0xbd, 0x10, 0x4b, 0xe5, 0xac, 0x52, 0xfa, 0xc5, 0xdb, 0xfc, 0x3a, - 0xf4, 0x6f, 0xd5, 0x9b, 0xa8, 0x8d, 0x57, 0x02, 0xfc, 0x81, 0xaa, 0xcc, 0x0f, 0x73, 0xe8, 0x10, - 0xa7, 0x51, 0xe5, 0x04, 0xda, 0xa2, 0x9e, 0x86, 0x64, 0xd1, 0x74, 0x4d, 0xa2, 0xc1, 0xb0, 0x57, - 0x5f, 0x4d, 0xd7, 0xcc, 0x9c, 0x83, 0xe1, 0xb5, 0x7d, 0x72, 0x31, 0xa6, 0x46, 0x2e, 0x7d, 0x88, - 0xdd, 0x1f, 0xef, 0x57, 0xcf, 0xce, 0xf5, 0xa7, 0x6a, 0xda, 0x4d, 0x25, 0x9b, 0x24, 0xfa, 0x3c, - 0x05, 0xa3, 0xeb, 0x58, 0x6d, 0x82, 0x13, 0x60, 0xf4, 0xe9, 0xaa, 0x37, 0x79, 0xa9, 0x29, 0x53, - 0xfd, 0xa6, 0xec, 0x04, 0x28, 0x6b, 0x62, 0xeb, 0x14, 0xd4, 0xc3, 0x50, 0xd6, 0xe6, 0x92, 0xa9, - 0x51, 0x6d, 0x7c, 0x2e, 0x99, 0x02, 0x6d, 0x84, 0x3d, 0xf7, 0xef, 0x55, 0xd0, 0x68, 0xab, 0x53, - 0x44, 0x3b, 0x75, 0xab, 0xee, 0x76, 0xf7, 0xab, 0x9e, 0xc6, 0xfa, 0x23, 0x30, 0x88, 0x4d, 0x7a, - 0x85, 0xfd, 0xa0, 0x16, 0x36, 0xfd, 0x49, 0xd6, 0xa2, 0x48, 0x22, 0xd8, 0x00, 0x09, 0x1d, 0x1f, - 0xa3, 0x5f, 0x01, 0xb5, 0x5c, 0x5e, 0x63, 0x8b, 0xdb, 0xd2, 0x81, 0x50, 0x76, 0xaf, 0x86, 0x7d, - 0x63, 0x63, 0xce, 0xae, 0x81, 0x05, 0xe8, 0x4b, 0x90, 0x28, 0xaf, 0xb1, 0x86, 0xf7, 0x54, 0x1c, - 0x31, 0x46, 0xa2, 0xbc, 0x36, 0xf5, 0x37, 0x0a, 0x8c, 0x08, 0xa3, 0x7a, 0x06, 0x86, 0xe9, 0x40, - 0x60, 0xba, 0x03, 0x86, 0x30, 0xc6, 0x75, 0x4e, 0xdc, 0xa6, 0xce, 0x53, 0x39, 0x18, 0x93, 0xc6, - 0xf5, 0x79, 0xd0, 0x83, 0x43, 0x4c, 0x09, 0xfa, 0x63, 0x44, 0x21, 0x94, 0xcc, 0xdd, 0x00, 0xbe, - 0x5d, 0xbd, 0xdf, 0xd0, 0x29, 0x97, 0x36, 0xb7, 0x4a, 0x45, 0x4d, 0xc9, 0x7c, 0x5d, 0x81, 0x21, - 0xd6, 0xb6, 0x56, 0xed, 0x16, 0xd2, 0xf3, 0xa0, 0xe4, 0x58, 0x3c, 0xbc, 0x35, 0xbd, 0x95, 0x9c, - 0x7e, 0x06, 0x94, 0x7c, 0x7c, 0x57, 0x2b, 0x79, 0x7d, 0x11, 0x94, 0x02, 0x73, 0x70, 0x3c, 0xcf, - 0x28, 0x85, 0xcc, 0x8f, 0x54, 0x98, 0x08, 0xb6, 0xd1, 0xbc, 0x9e, 0x9c, 0x14, 0xdf, 0x9b, 0xb2, - 0x83, 0x67, 0x17, 0xcf, 0x2d, 0xcd, 0xe3, 0x7f, 0xbc, 0x90, 0x3c, 0x29, 0xbe, 0x42, 0x75, 0xb3, - 0x74, 0x5d, 0x13, 0xc9, 0x26, 0x03, 0xd4, 0xae, 0x6b, 0x22, 0x02, 0xb5, 0xeb, 0x9a, 0x88, 0x40, - 0xed, 0xba, 0x26, 0x22, 0x50, 0xbb, 0x8e, 0x02, 0x04, 0x6a, 0xd7, 0x35, 0x11, 0x81, 0xda, 0x75, - 0x4d, 0x44, 0xa0, 0x76, 0x5f, 0x13, 0x61, 0xe4, 0x9e, 0xd7, 0x44, 0x44, 0x7a, 0xf7, 0x35, 0x11, - 0x91, 0xde, 0x7d, 0x4d, 0x24, 0x9b, 0x74, 0xdb, 0x1d, 0xd4, 0xfb, 0xd0, 0x41, 0xc4, 0x1f, 0xf4, - 0x0e, 0xe8, 0x17, 0xe0, 0x75, 0x18, 0xa3, 0xfb, 0x11, 0x05, 0xdb, 0x72, 0xcd, 0xba, 0x85, 0xda, - 0xfa, 0xbb, 0x61, 0x98, 0x0e, 0xd1, 0xb7, 0x9c, 0xb0, 0xb7, 0x40, 0x4a, 0x67, 0xe5, 0x56, 0xe0, - 0xce, 0xfc, 0x2c, 0x09, 0x93, 0x74, 0xa0, 0x6c, 0x36, 0x91, 0x70, 0xc9, 0xe8, 0xb4, 0x74, 0xa4, - 0x34, 0x8a, 0xe1, 0xb7, 0x5e, 0x99, 0xa1, 0xa3, 0x39, 0x2f, 0x98, 0x4e, 0x4b, 0x87, 0x4b, 0x22, - 0x9f, 0xbf, 0xfe, 0x9c, 0x96, 0x2e, 0x1e, 0x89, 0x7c, 0xde, 0x72, 0xe3, 0xf1, 0xf1, 0x2b, 0x48, - 0x22, 0x5f, 0xd1, 0x8b, 0xb2, 0xd3, 0xd2, 0x65, 0x24, 0x91, 0xaf, 0xe4, 0xc5, 0xdb, 0x69, 0xe9, - 0xe8, 0x49, 0xe4, 0xbb, 0xe2, 0x45, 0xde, 0x69, 0xe9, 0x10, 0x4a, 0xe4, 0xbb, 0xea, 0xc5, 0xe0, - 0x69, 0xe9, 0xaa, 0x92, 0xc8, 0xf7, 0xa8, 0x17, 0x8d, 0xa7, 0xa5, 0x4b, 0x4b, 0x22, 0xdf, 0x8a, - 0x17, 0x97, 0xb3, 0xf2, 0xf5, 0x25, 0x91, 0xf1, 0x9a, 0x1f, 0xa1, 0xb3, 0xf2, 0x45, 0x26, 0x91, - 0xf3, 0x3d, 0x7e, 0xac, 0xce, 0xca, 0x57, 0x9a, 0x44, 0xce, 0x55, 0x3f, 0x6a, 0x67, 0xe5, 0xa3, - 0x32, 0x91, 0x73, 0xcd, 0x8f, 0xdf, 0x59, 0xf9, 0xd0, 0x4c, 0xe4, 0x2c, 0xfb, 0x91, 0x3c, 0x2b, - 0x1f, 0x9f, 0x89, 0x9c, 0xeb, 0xfe, 0x1e, 0xfa, 0xb7, 0xa4, 0xf0, 0x0b, 0x5c, 0x82, 0xca, 0x48, - 0xe1, 0x07, 0x21, 0xa1, 0x97, 0x91, 0x42, 0x0f, 0x42, 0xc2, 0x2e, 0x23, 0x85, 0x1d, 0x84, 0x84, + // 6609 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x6b, 0x70, 0x1b, 0xd7, + 0x75, 0x3f, 0x17, 0x0b, 0x52, 0xe0, 0xe1, 0x6b, 0xb9, 0x94, 0x28, 0x98, 0x96, 0x49, 0x0a, 0x96, + 0x65, 0x9a, 0xb1, 0x29, 0x8a, 0xa2, 0x5e, 0x50, 0x6c, 0xff, 0xf1, 0x92, 0x4c, 0x85, 0x04, 0x99, + 0x25, 0x19, 0x5b, 0xc9, 0xff, 0x3f, 0x98, 0x15, 0x70, 0x49, 0xc2, 0x06, 0x76, 0x11, 0xec, 0xd2, + 0x36, 0x3d, 0xff, 0xe9, 0xb8, 0x49, 0x9b, 0x26, 0xed, 0xf4, 0x99, 0x76, 0xf2, 0x68, 0xe2, 0x38, + 0xed, 0xa4, 0x71, 0xd2, 0x57, 0xd2, 0xa4, 0x69, 0x9a, 0x76, 0x1a, 0x7f, 0x49, 0xab, 0x7e, 0xe9, + 0x38, 0xfd, 0xd4, 0xc9, 0x74, 0x3c, 0x91, 0x9c, 0x99, 0xa6, 0xad, 0xdb, 0xa4, 0xa9, 0x67, 0x9a, + 0x19, 0xe7, 0x43, 0xe7, 0xbe, 0x76, 0xf7, 0x5e, 0x2c, 0xb8, 0x4b, 0xcb, 0x76, 0xf2, 0x45, 0x02, + 0xee, 0x39, 0xbf, 0xb3, 0x67, 0xcf, 0xeb, 0x9e, 0xfb, 0x20, 0xe0, 0x07, 0x17, 0x61, 0x7a, 0xdb, + 0xb6, 0xb7, 0x1b, 0xe8, 0x54, 0xab, 0x6d, 0xbb, 0xf6, 0xf5, 0xdd, 0xad, 0x53, 0x35, 0xe4, 0x54, + 0xdb, 0xf5, 0x96, 0x6b, 0xb7, 0xe7, 0xc8, 0x98, 0x3e, 0x42, 0x39, 0xe6, 0x38, 0x47, 0x66, 0x05, + 0x46, 0x2f, 0xd7, 0x1b, 0xa8, 0xe8, 0x31, 0xae, 0x23, 0x57, 0xbf, 0x00, 0xc9, 0xad, 0x7a, 0x03, + 0xa5, 0x95, 0x69, 0x75, 0x66, 0x60, 0xe1, 0xc4, 0x9c, 0x04, 0x9a, 0x13, 0x11, 0x6b, 0x78, 0xd8, + 0x20, 0x88, 0xcc, 0xf7, 0x92, 0x30, 0x16, 0x42, 0xd5, 0x75, 0x48, 0x5a, 0x66, 0x13, 0x4b, 0x54, + 0x66, 0xfa, 0x0d, 0xf2, 0x59, 0x4f, 0xc3, 0xa1, 0x96, 0x59, 0x7d, 0xc2, 0xdc, 0x46, 0xe9, 0x04, + 0x19, 0xe6, 0x5f, 0xf5, 0x49, 0x80, 0x1a, 0x6a, 0x21, 0xab, 0x86, 0xac, 0xea, 0x5e, 0x5a, 0x9d, + 0x56, 0x67, 0xfa, 0x8d, 0xc0, 0x88, 0xfe, 0x0e, 0x18, 0x6d, 0xed, 0x5e, 0x6f, 0xd4, 0xab, 0x95, + 0x00, 0x1b, 0x4c, 0xab, 0x33, 0xbd, 0x86, 0x46, 0x09, 0x45, 0x9f, 0xf9, 0x5e, 0x18, 0x79, 0x0a, + 0x99, 0x4f, 0x04, 0x59, 0x07, 0x08, 0xeb, 0x30, 0x1e, 0x0e, 0x30, 0x16, 0x60, 0xb0, 0x89, 0x1c, + 0xc7, 0xdc, 0x46, 0x15, 0x77, 0xaf, 0x85, 0xd2, 0x49, 0xf2, 0xf6, 0xd3, 0x1d, 0x6f, 0x2f, 0xbf, + 0xf9, 0x00, 0x43, 0x6d, 0xec, 0xb5, 0x90, 0x9e, 0x83, 0x7e, 0x64, 0xed, 0x36, 0xa9, 0x84, 0xde, + 0x2e, 0xf6, 0x2b, 0x59, 0xbb, 0x4d, 0x59, 0x4a, 0x0a, 0xc3, 0x98, 0x88, 0x43, 0x0e, 0x6a, 0x3f, + 0x59, 0xaf, 0xa2, 0x74, 0x1f, 0x11, 0x70, 0x6f, 0x87, 0x80, 0x75, 0x4a, 0x97, 0x65, 0x70, 0x9c, + 0x5e, 0x80, 0x7e, 0xf4, 0xb4, 0x8b, 0x2c, 0xa7, 0x6e, 0x5b, 0xe9, 0x43, 0x44, 0xc8, 0x3d, 0x21, + 0x5e, 0x44, 0x8d, 0x9a, 0x2c, 0xc2, 0xc7, 0xe9, 0xe7, 0xe0, 0x90, 0xdd, 0x72, 0xeb, 0xb6, 0xe5, + 0xa4, 0x53, 0xd3, 0xca, 0xcc, 0xc0, 0xc2, 0xb1, 0xd0, 0x40, 0x58, 0xa5, 0x3c, 0x06, 0x67, 0xd6, + 0x97, 0x40, 0x73, 0xec, 0xdd, 0x76, 0x15, 0x55, 0xaa, 0x76, 0x0d, 0x55, 0xea, 0xd6, 0x96, 0x9d, + 0xee, 0x27, 0x02, 0xa6, 0x3a, 0x5f, 0x84, 0x30, 0x16, 0xec, 0x1a, 0x5a, 0xb2, 0xb6, 0x6c, 0x63, + 0xd8, 0x11, 0xbe, 0xeb, 0xe3, 0xd0, 0xe7, 0xec, 0x59, 0xae, 0xf9, 0x74, 0x7a, 0x90, 0x44, 0x08, + 0xfb, 0x96, 0xf9, 0xcb, 0x3e, 0x18, 0x89, 0x13, 0x62, 0x97, 0xa0, 0x77, 0x0b, 0xbf, 0x65, 0x3a, + 0x71, 0x10, 0x1b, 0x50, 0x8c, 0x68, 0xc4, 0xbe, 0x37, 0x68, 0xc4, 0x1c, 0x0c, 0x58, 0xc8, 0x71, + 0x51, 0x8d, 0x46, 0x84, 0x1a, 0x33, 0xa6, 0x80, 0x82, 0x3a, 0x43, 0x2a, 0xf9, 0x86, 0x42, 0xea, + 0x31, 0x18, 0xf1, 0x54, 0xaa, 0xb4, 0x4d, 0x6b, 0x9b, 0xc7, 0xe6, 0xa9, 0x28, 0x4d, 0xe6, 0x4a, + 0x1c, 0x67, 0x60, 0x98, 0x31, 0x8c, 0x84, 0xef, 0x7a, 0x11, 0xc0, 0xb6, 0x90, 0xbd, 0x55, 0xa9, + 0xa1, 0x6a, 0x23, 0x9d, 0xea, 0x62, 0xa5, 0x55, 0xcc, 0xd2, 0x61, 0x25, 0x9b, 0x8e, 0x56, 0x1b, + 0xfa, 0x45, 0x3f, 0xd4, 0x0e, 0x75, 0x89, 0x94, 0x15, 0x9a, 0x64, 0x1d, 0xd1, 0xb6, 0x09, 0xc3, + 0x6d, 0x84, 0xe3, 0x1e, 0xd5, 0xd8, 0x9b, 0xf5, 0x13, 0x25, 0xe6, 0x22, 0xdf, 0xcc, 0x60, 0x30, + 0xfa, 0x62, 0x43, 0xed, 0xe0, 0x57, 0xfd, 0x6e, 0xf0, 0x06, 0x2a, 0x24, 0xac, 0x80, 0x54, 0xa1, + 0x41, 0x3e, 0x58, 0x36, 0x9b, 0x68, 0xe2, 0x19, 0x18, 0x16, 0xcd, 0xa3, 0x1f, 0x86, 0x5e, 0xc7, + 0x35, 0xdb, 0x2e, 0x89, 0xc2, 0x5e, 0x83, 0x7e, 0xd1, 0x35, 0x50, 0x91, 0x55, 0x23, 0x55, 0xae, + 0xd7, 0xc0, 0x1f, 0xf5, 0xff, 0xe3, 0xbf, 0xb0, 0x4a, 0x5e, 0xf8, 0x64, 0xa7, 0x47, 0x05, 0xc9, + 0xf2, 0x7b, 0x4f, 0x9c, 0x87, 0x21, 0xe1, 0x05, 0xe2, 0x3e, 0x3a, 0xf3, 0xff, 0xe1, 0x48, 0xa8, + 0x68, 0xfd, 0x31, 0x38, 0xbc, 0x6b, 0xd5, 0x2d, 0x17, 0xb5, 0x5b, 0x6d, 0x84, 0x23, 0x96, 0x3e, + 0x2a, 0xfd, 0x2f, 0x87, 0xba, 0xc4, 0xdc, 0x66, 0x90, 0x9b, 0x4a, 0x31, 0xc6, 0x76, 0x3b, 0x07, + 0x67, 0xfb, 0x53, 0xdf, 0x3f, 0xa4, 0x3d, 0xfb, 0xec, 0xb3, 0xcf, 0x26, 0x32, 0x1f, 0xef, 0x83, + 0xc3, 0x61, 0x39, 0x13, 0x9a, 0xbe, 0xe3, 0xd0, 0x67, 0xed, 0x36, 0xaf, 0xa3, 0x36, 0x31, 0x52, + 0xaf, 0xc1, 0xbe, 0xe9, 0x39, 0xe8, 0x6d, 0x98, 0xd7, 0x51, 0x23, 0x9d, 0x9c, 0x56, 0x66, 0x86, + 0x17, 0xde, 0x11, 0x2b, 0x2b, 0xe7, 0x96, 0x31, 0xc4, 0xa0, 0x48, 0xfd, 0x21, 0x48, 0xb2, 0x12, + 0x8d, 0x25, 0xcc, 0xc6, 0x93, 0x80, 0x73, 0xc9, 0x20, 0x38, 0xfd, 0x4e, 0xe8, 0xc7, 0xff, 0xd3, + 0xd8, 0xe8, 0x23, 0x3a, 0xa7, 0xf0, 0x00, 0x8e, 0x0b, 0x7d, 0x02, 0x52, 0x24, 0x4d, 0x6a, 0x88, + 0x4f, 0x6d, 0xde, 0x77, 0x1c, 0x58, 0x35, 0xb4, 0x65, 0xee, 0x36, 0xdc, 0xca, 0x93, 0x66, 0x63, + 0x17, 0x91, 0x80, 0xef, 0x37, 0x06, 0xd9, 0xe0, 0x7b, 0xf0, 0x98, 0x3e, 0x05, 0x03, 0x34, 0xab, + 0xea, 0x56, 0x0d, 0x3d, 0x4d, 0xaa, 0x67, 0xaf, 0x41, 0x13, 0x6d, 0x09, 0x8f, 0xe0, 0xc7, 0x3f, + 0xee, 0xd8, 0x16, 0x0f, 0x4d, 0xf2, 0x08, 0x3c, 0x40, 0x1e, 0x7f, 0x5e, 0x2e, 0xdc, 0x77, 0x85, + 0xbf, 0x9e, 0x1c, 0x53, 0x99, 0xaf, 0x25, 0x20, 0x49, 0xea, 0xc5, 0x08, 0x0c, 0x6c, 0x5c, 0x5b, + 0x2b, 0x55, 0x8a, 0xab, 0x9b, 0xf9, 0xe5, 0x92, 0xa6, 0xe8, 0xc3, 0x00, 0x64, 0xe0, 0xf2, 0xf2, + 0x6a, 0x6e, 0x43, 0x4b, 0x78, 0xdf, 0x97, 0xca, 0x1b, 0xe7, 0x16, 0x35, 0xd5, 0x03, 0x6c, 0xd2, + 0x81, 0x64, 0x90, 0xe1, 0xcc, 0x82, 0xd6, 0xab, 0x6b, 0x30, 0x48, 0x05, 0x2c, 0x3d, 0x56, 0x2a, + 0x9e, 0x5b, 0xd4, 0xfa, 0xc4, 0x91, 0x33, 0x0b, 0xda, 0x21, 0x7d, 0x08, 0xfa, 0xc9, 0x48, 0x7e, + 0x75, 0x75, 0x59, 0x4b, 0x79, 0x32, 0xd7, 0x37, 0x8c, 0xa5, 0xf2, 0x15, 0xad, 0xdf, 0x93, 0x79, + 0xc5, 0x58, 0xdd, 0x5c, 0xd3, 0xc0, 0x93, 0xb0, 0x52, 0x5a, 0x5f, 0xcf, 0x5d, 0x29, 0x69, 0x03, + 0x1e, 0x47, 0xfe, 0xda, 0x46, 0x69, 0x5d, 0x1b, 0x14, 0xd4, 0x3a, 0xb3, 0xa0, 0x0d, 0x79, 0x8f, + 0x28, 0x95, 0x37, 0x57, 0xb4, 0x61, 0x7d, 0x14, 0x86, 0xe8, 0x23, 0xb8, 0x12, 0x23, 0xd2, 0xd0, + 0xb9, 0x45, 0x4d, 0xf3, 0x15, 0xa1, 0x52, 0x46, 0x85, 0x81, 0x73, 0x8b, 0x9a, 0x9e, 0x29, 0x40, + 0x2f, 0x89, 0x2e, 0x5d, 0x87, 0xe1, 0xe5, 0x5c, 0xbe, 0xb4, 0x5c, 0x59, 0x5d, 0xdb, 0x58, 0x5a, + 0x2d, 0xe7, 0x96, 0x35, 0xc5, 0x1f, 0x33, 0x4a, 0xef, 0xde, 0x5c, 0x32, 0x4a, 0x45, 0x2d, 0x11, + 0x1c, 0x5b, 0x2b, 0xe5, 0x36, 0x4a, 0x45, 0x4d, 0xcd, 0x54, 0xe1, 0x70, 0x58, 0x9d, 0x0c, 0xcd, + 0x8c, 0x80, 0x8b, 0x13, 0x5d, 0x5c, 0x4c, 0x64, 0x75, 0xb8, 0xf8, 0x95, 0x04, 0x8c, 0x85, 0xcc, + 0x15, 0xa1, 0x0f, 0x79, 0x18, 0x7a, 0x69, 0x88, 0xd2, 0xd9, 0xf3, 0xbe, 0xd0, 0x49, 0x87, 0x04, + 0x6c, 0xc7, 0x0c, 0x4a, 0x70, 0xc1, 0x0e, 0x42, 0xed, 0xd2, 0x41, 0x60, 0x11, 0x1d, 0x35, 0xfd, + 0xff, 0x75, 0xd4, 0x74, 0x3a, 0xed, 0x9d, 0x8b, 0x33, 0xed, 0x91, 0xb1, 0x83, 0xd5, 0xf6, 0xde, + 0x90, 0xda, 0x7e, 0x09, 0x46, 0x3b, 0x04, 0xc5, 0xae, 0xb1, 0x1f, 0x54, 0x20, 0xdd, 0xcd, 0x38, + 0x11, 0x95, 0x2e, 0x21, 0x54, 0xba, 0x4b, 0xb2, 0x05, 0x8f, 0x77, 0x77, 0x42, 0x87, 0xaf, 0x3f, + 0xaf, 0xc0, 0x78, 0x78, 0xa7, 0x18, 0xaa, 0xc3, 0x43, 0xd0, 0xd7, 0x44, 0xee, 0x8e, 0xcd, 0xbb, + 0xa5, 0x93, 0x21, 0x73, 0x30, 0x26, 0xcb, 0xce, 0x66, 0xa8, 0xe0, 0x24, 0xae, 0x76, 0x6b, 0xf7, + 0xa8, 0x36, 0x1d, 0x9a, 0x7e, 0x24, 0x01, 0x47, 0x42, 0x85, 0x87, 0x2a, 0x7a, 0x17, 0x40, 0xdd, + 0x6a, 0xed, 0xba, 0xb4, 0x23, 0xa2, 0x05, 0xb6, 0x9f, 0x8c, 0x90, 0xe2, 0x85, 0x8b, 0xe7, 0xae, + 0xeb, 0xd1, 0x55, 0x42, 0x07, 0x3a, 0x44, 0x18, 0x2e, 0xf8, 0x8a, 0x26, 0x89, 0xa2, 0x93, 0x5d, + 0xde, 0xb4, 0x23, 0x30, 0xe7, 0x41, 0xab, 0x36, 0xea, 0xc8, 0x72, 0x2b, 0x8e, 0xdb, 0x46, 0x66, + 0xb3, 0x6e, 0x6d, 0x93, 0x19, 0x24, 0x95, 0xed, 0xdd, 0x32, 0x1b, 0x0e, 0x32, 0x46, 0x28, 0x79, + 0x9d, 0x53, 0x31, 0x82, 0x04, 0x50, 0x3b, 0x80, 0xe8, 0x13, 0x10, 0x94, 0xec, 0x21, 0x32, 0x5f, + 0x49, 0xc1, 0x40, 0xa0, 0xaf, 0xd6, 0x8f, 0xc3, 0xe0, 0xe3, 0xe6, 0x93, 0x66, 0x85, 0xaf, 0x95, + 0xa8, 0x25, 0x06, 0xf0, 0xd8, 0x1a, 0x5b, 0x2f, 0xcd, 0xc3, 0x61, 0xc2, 0x62, 0xef, 0xba, 0xa8, + 0x5d, 0xa9, 0x36, 0x4c, 0xc7, 0x21, 0x46, 0x4b, 0x11, 0x56, 0x1d, 0xd3, 0x56, 0x31, 0xa9, 0xc0, + 0x29, 0xfa, 0x59, 0x18, 0x23, 0x88, 0xe6, 0x6e, 0xc3, 0xad, 0xb7, 0x1a, 0xa8, 0x82, 0x57, 0x6f, + 0x0e, 0x99, 0x49, 0x3c, 0xcd, 0x46, 0x31, 0xc7, 0x0a, 0x63, 0xc0, 0x1a, 0x39, 0x7a, 0x11, 0xee, + 0x22, 0xb0, 0x6d, 0x64, 0xa1, 0xb6, 0xe9, 0xa2, 0x0a, 0x7a, 0xff, 0xae, 0xd9, 0x70, 0x2a, 0xa6, + 0x55, 0xab, 0xec, 0x98, 0xce, 0x4e, 0xfa, 0x30, 0x16, 0x90, 0x4f, 0xa4, 0x15, 0xe3, 0x0e, 0xcc, + 0x78, 0x85, 0xf1, 0x95, 0x08, 0x5b, 0xce, 0xaa, 0x3d, 0x62, 0x3a, 0x3b, 0x7a, 0x16, 0xc6, 0x89, + 0x14, 0xc7, 0x6d, 0xd7, 0xad, 0xed, 0x4a, 0x75, 0x07, 0x55, 0x9f, 0xa8, 0xec, 0xba, 0x5b, 0x17, + 0xd2, 0x77, 0x06, 0x9f, 0x4f, 0x34, 0x5c, 0x27, 0x3c, 0x05, 0xcc, 0xb2, 0xe9, 0x6e, 0x5d, 0xd0, + 0xd7, 0x61, 0x10, 0x3b, 0xa3, 0x59, 0x7f, 0x06, 0x55, 0xb6, 0xec, 0x36, 0x99, 0x1a, 0x87, 0x43, + 0x4a, 0x53, 0xc0, 0x82, 0x73, 0xab, 0x0c, 0xb0, 0x62, 0xd7, 0x50, 0xb6, 0x77, 0x7d, 0xad, 0x54, + 0x2a, 0x1a, 0x03, 0x5c, 0xca, 0x65, 0xbb, 0x8d, 0x03, 0x6a, 0xdb, 0xf6, 0x0c, 0x3c, 0x40, 0x03, + 0x6a, 0xdb, 0xe6, 0xe6, 0x3d, 0x0b, 0x63, 0xd5, 0x2a, 0x7d, 0xe7, 0x7a, 0xb5, 0xc2, 0xd6, 0x58, + 0x4e, 0x5a, 0x13, 0x8c, 0x55, 0xad, 0x5e, 0xa1, 0x0c, 0x2c, 0xc6, 0x1d, 0xfd, 0x22, 0x1c, 0xf1, + 0x8d, 0x15, 0x04, 0x8e, 0x76, 0xbc, 0xa5, 0x0c, 0x3d, 0x0b, 0x63, 0xad, 0xbd, 0x4e, 0xa0, 0x2e, + 0x3c, 0xb1, 0xb5, 0x27, 0xc3, 0xce, 0xc3, 0xe1, 0xd6, 0x4e, 0xab, 0x13, 0x37, 0x1b, 0xc4, 0xe9, + 0xad, 0x9d, 0x96, 0x0c, 0xbc, 0x87, 0x2c, 0xb8, 0xdb, 0xa8, 0x6a, 0xba, 0xa8, 0x96, 0x3e, 0x1a, + 0x64, 0x0f, 0x10, 0xf4, 0x53, 0xa0, 0x55, 0xab, 0x15, 0x64, 0x99, 0xd7, 0x1b, 0xa8, 0x62, 0xb6, + 0x91, 0x65, 0x3a, 0xe9, 0xa9, 0x20, 0xf3, 0x70, 0xb5, 0x5a, 0x22, 0xd4, 0x1c, 0x21, 0xea, 0xb3, + 0x30, 0x6a, 0x5f, 0x7f, 0xbc, 0x4a, 0x43, 0xb2, 0xd2, 0x6a, 0xa3, 0xad, 0xfa, 0xd3, 0xe9, 0x13, + 0xc4, 0xbe, 0x23, 0x98, 0x40, 0x02, 0x72, 0x8d, 0x0c, 0xeb, 0xf7, 0x81, 0x56, 0x75, 0x76, 0xcc, + 0x76, 0x8b, 0xd4, 0x64, 0xa7, 0x65, 0x56, 0x51, 0xfa, 0x1e, 0xca, 0x4a, 0xc7, 0xcb, 0x7c, 0x18, + 0xa7, 0x84, 0xf3, 0x54, 0x7d, 0xcb, 0xe5, 0x12, 0xef, 0xa5, 0x29, 0x41, 0xc6, 0x98, 0xb4, 0x19, + 0xd0, 0xb0, 0x29, 0x84, 0x07, 0xcf, 0x10, 0xb6, 0xe1, 0xd6, 0x4e, 0x2b, 0xf8, 0xdc, 0xbb, 0x61, + 0x08, 0x73, 0xfa, 0x0f, 0xbd, 0x8f, 0x36, 0x64, 0xad, 0x9d, 0xc0, 0x13, 0xdf, 0xb2, 0xde, 0x38, + 0x93, 0x85, 0xc1, 0x60, 0x7c, 0xea, 0xfd, 0x40, 0x23, 0x54, 0x53, 0x70, 0xb3, 0x52, 0x58, 0x2d, + 0xe2, 0x36, 0xe3, 0xbd, 0x25, 0x2d, 0x81, 0xdb, 0x9d, 0xe5, 0xa5, 0x8d, 0x52, 0xc5, 0xd8, 0x2c, + 0x6f, 0x2c, 0xad, 0x94, 0x34, 0x35, 0xd8, 0x57, 0x7f, 0x2b, 0x01, 0xc3, 0xe2, 0x12, 0x49, 0x7f, + 0x27, 0x1c, 0xe5, 0xfb, 0x19, 0x0e, 0x72, 0x2b, 0x4f, 0xd5, 0xdb, 0x24, 0x65, 0x9a, 0x26, 0x9d, + 0xbe, 0x3c, 0xa7, 0x1d, 0x66, 0x5c, 0xeb, 0xc8, 0x7d, 0xb4, 0xde, 0xc6, 0x09, 0xd1, 0x34, 0x5d, + 0x7d, 0x19, 0xa6, 0x2c, 0xbb, 0xe2, 0xb8, 0xa6, 0x55, 0x33, 0xdb, 0xb5, 0x8a, 0xbf, 0x93, 0x54, + 0x31, 0xab, 0x55, 0xe4, 0x38, 0x36, 0x9d, 0xaa, 0x3c, 0x29, 0xc7, 0x2c, 0x7b, 0x9d, 0x31, 0xfb, + 0x35, 0x3c, 0xc7, 0x58, 0xa5, 0x00, 0x53, 0xbb, 0x05, 0xd8, 0x9d, 0xd0, 0xdf, 0x34, 0x5b, 0x15, + 0x64, 0xb9, 0xed, 0x3d, 0xd2, 0x18, 0xa7, 0x8c, 0x54, 0xd3, 0x6c, 0x95, 0xf0, 0xf7, 0xb7, 0x67, + 0x7d, 0xf2, 0xcf, 0x2a, 0x0c, 0x06, 0x9b, 0x63, 0xbc, 0xd6, 0xa8, 0x92, 0x79, 0x44, 0x21, 0x95, + 0xe6, 0xee, 0x7d, 0x5b, 0xe9, 0xb9, 0x02, 0x9e, 0x60, 0xb2, 0x7d, 0xb4, 0x65, 0x35, 0x28, 0x12, + 0x4f, 0xee, 0xb8, 0xb6, 0x20, 0xda, 0x22, 0xa4, 0x0c, 0xf6, 0x4d, 0xbf, 0x02, 0x7d, 0x8f, 0x3b, + 0x44, 0x76, 0x1f, 0x91, 0x7d, 0x62, 0x7f, 0xd9, 0x57, 0xd7, 0x89, 0xf0, 0xfe, 0xab, 0xeb, 0x95, + 0xf2, 0xaa, 0xb1, 0x92, 0x5b, 0x36, 0x18, 0x5c, 0xbf, 0x03, 0x92, 0x0d, 0xf3, 0x99, 0x3d, 0x71, + 0x2a, 0x22, 0x43, 0x71, 0x0d, 0x7f, 0x07, 0x24, 0x9f, 0x42, 0xe6, 0x13, 0xe2, 0x04, 0x40, 0x86, + 0xde, 0xc2, 0xd0, 0x3f, 0x05, 0xbd, 0xc4, 0x5e, 0x3a, 0x00, 0xb3, 0x98, 0xd6, 0xa3, 0xa7, 0x20, + 0x59, 0x58, 0x35, 0x70, 0xf8, 0x6b, 0x30, 0x48, 0x47, 0x2b, 0x6b, 0x4b, 0xa5, 0x42, 0x49, 0x4b, + 0x64, 0xce, 0x42, 0x1f, 0x35, 0x02, 0x4e, 0x0d, 0xcf, 0x0c, 0x5a, 0x0f, 0xfb, 0xca, 0x64, 0x28, + 0x9c, 0xba, 0xb9, 0x92, 0x2f, 0x19, 0x5a, 0x22, 0xe8, 0x5e, 0x07, 0x06, 0x83, 0x7d, 0xf1, 0xdb, + 0x13, 0x53, 0xdf, 0x50, 0x60, 0x20, 0xd0, 0xe7, 0xe2, 0x06, 0xc5, 0x6c, 0x34, 0xec, 0xa7, 0x2a, + 0x66, 0xa3, 0x6e, 0x3a, 0x2c, 0x28, 0x80, 0x0c, 0xe5, 0xf0, 0x48, 0x5c, 0xa7, 0xbd, 0x2d, 0xca, + 0x3f, 0xa7, 0x80, 0x26, 0xb7, 0x98, 0x92, 0x82, 0xca, 0x4f, 0x55, 0xc1, 0x4f, 0x29, 0x30, 0x2c, + 0xf6, 0x95, 0x92, 0x7a, 0xc7, 0x7f, 0xaa, 0xea, 0x7d, 0x37, 0x01, 0x43, 0x42, 0x37, 0x19, 0x57, + 0xbb, 0xf7, 0xc3, 0x68, 0xbd, 0x86, 0x9a, 0x2d, 0xdb, 0x45, 0x56, 0x75, 0xaf, 0xd2, 0x40, 0x4f, + 0xa2, 0x46, 0x3a, 0x43, 0x0a, 0xc5, 0xa9, 0xfd, 0xfb, 0xd5, 0xb9, 0x25, 0x1f, 0xb7, 0x8c, 0x61, + 0xd9, 0xb1, 0xa5, 0x62, 0x69, 0x65, 0x6d, 0x75, 0xa3, 0x54, 0x2e, 0x5c, 0xab, 0x6c, 0x96, 0xdf, + 0x55, 0x5e, 0x7d, 0xb4, 0x6c, 0x68, 0x75, 0x89, 0xed, 0x2d, 0x4c, 0xf5, 0x35, 0xd0, 0x64, 0xa5, + 0xf4, 0xa3, 0x10, 0xa6, 0x96, 0xd6, 0xa3, 0x8f, 0xc1, 0x48, 0x79, 0xb5, 0xb2, 0xbe, 0x54, 0x2c, + 0x55, 0x4a, 0x97, 0x2f, 0x97, 0x0a, 0x1b, 0xeb, 0x74, 0x07, 0xc2, 0xe3, 0xde, 0x10, 0x93, 0xfa, + 0x93, 0x2a, 0x8c, 0x85, 0x68, 0xa2, 0xe7, 0xd8, 0xda, 0x81, 0x2e, 0x67, 0x1e, 0x88, 0xa3, 0xfd, + 0x1c, 0x9e, 0xf2, 0xd7, 0xcc, 0xb6, 0xcb, 0x96, 0x1a, 0xf7, 0x01, 0xb6, 0x92, 0xe5, 0xd6, 0xb7, + 0xea, 0xa8, 0xcd, 0x36, 0x6c, 0xe8, 0x82, 0x62, 0xc4, 0x1f, 0xa7, 0x7b, 0x36, 0xf7, 0x83, 0xde, + 0xb2, 0x9d, 0xba, 0x5b, 0x7f, 0x12, 0x55, 0xea, 0x16, 0xdf, 0xdd, 0xc1, 0x0b, 0x8c, 0xa4, 0xa1, + 0x71, 0xca, 0x92, 0xe5, 0x7a, 0xdc, 0x16, 0xda, 0x36, 0x25, 0x6e, 0x5c, 0xc0, 0x55, 0x43, 0xe3, + 0x14, 0x8f, 0xfb, 0x38, 0x0c, 0xd6, 0xec, 0x5d, 0xdc, 0x75, 0x51, 0x3e, 0x3c, 0x5f, 0x28, 0xc6, + 0x00, 0x1d, 0xf3, 0x58, 0x58, 0x3f, 0xed, 0x6f, 0x2b, 0x0d, 0x1a, 0x03, 0x74, 0x8c, 0xb2, 0xdc, + 0x0b, 0x23, 0xe6, 0xf6, 0x76, 0x1b, 0x0b, 0xe7, 0x82, 0xe8, 0x0a, 0x61, 0xd8, 0x1b, 0x26, 0x8c, + 0x13, 0x57, 0x21, 0xc5, 0xed, 0x80, 0xa7, 0x64, 0x6c, 0x89, 0x4a, 0x8b, 0x2e, 0x7b, 0x13, 0x33, + 0xfd, 0x46, 0xca, 0xe2, 0xc4, 0xe3, 0x30, 0x58, 0x77, 0x2a, 0xfe, 0x2e, 0x79, 0x62, 0x3a, 0x31, + 0x93, 0x32, 0x06, 0xea, 0x8e, 0xb7, 0xc3, 0x98, 0xf9, 0x7c, 0x02, 0x86, 0xc5, 0x5d, 0x7e, 0xbd, + 0x08, 0xa9, 0x86, 0x5d, 0x35, 0x49, 0x68, 0xd1, 0x23, 0xa6, 0x99, 0x88, 0x83, 0x81, 0xb9, 0x65, + 0xc6, 0x6f, 0x78, 0xc8, 0x89, 0x7f, 0x50, 0x20, 0xc5, 0x87, 0xf5, 0x71, 0x48, 0xb6, 0x4c, 0x77, + 0x87, 0x88, 0xeb, 0xcd, 0x27, 0x34, 0xc5, 0x20, 0xdf, 0xf1, 0xb8, 0xd3, 0x32, 0x2d, 0x12, 0x02, + 0x6c, 0x1c, 0x7f, 0xc7, 0x7e, 0x6d, 0x20, 0xb3, 0x46, 0x96, 0x1f, 0x76, 0xb3, 0x89, 0x2c, 0xd7, + 0xe1, 0x7e, 0x65, 0xe3, 0x05, 0x36, 0xac, 0xbf, 0x03, 0x46, 0xdd, 0xb6, 0x59, 0x6f, 0x08, 0xbc, + 0x49, 0xc2, 0xab, 0x71, 0x82, 0xc7, 0x9c, 0x85, 0x3b, 0xb8, 0xdc, 0x1a, 0x72, 0xcd, 0xea, 0x0e, + 0xaa, 0xf9, 0xa0, 0x3e, 0xb2, 0xcd, 0x70, 0x94, 0x31, 0x14, 0x19, 0x9d, 0x63, 0x33, 0xdf, 0x56, + 0x60, 0x94, 0x2f, 0x98, 0x6a, 0x9e, 0xb1, 0x56, 0x00, 0x4c, 0xcb, 0xb2, 0xdd, 0xa0, 0xb9, 0x3a, + 0x43, 0xb9, 0x03, 0x37, 0x97, 0xf3, 0x40, 0x46, 0x40, 0xc0, 0x44, 0x13, 0xc0, 0xa7, 0x74, 0x35, + 0xdb, 0x14, 0x0c, 0xb0, 0x23, 0x1c, 0x72, 0x0e, 0x48, 0x97, 0xd8, 0x40, 0x87, 0xf0, 0xca, 0x4a, + 0x3f, 0x0c, 0xbd, 0xd7, 0xd1, 0x76, 0xdd, 0x62, 0x1b, 0xb3, 0xf4, 0x0b, 0xdf, 0x08, 0x49, 0x7a, + 0x1b, 0x21, 0xf9, 0xf7, 0xc1, 0x58, 0xd5, 0x6e, 0xca, 0xea, 0xe6, 0x35, 0x69, 0x99, 0xef, 0x3c, + 0xa2, 0xbc, 0x17, 0xfc, 0x16, 0xf3, 0xc7, 0x8a, 0xf2, 0x7b, 0x09, 0xf5, 0xca, 0x5a, 0xfe, 0x8b, + 0x89, 0x89, 0x2b, 0x14, 0xba, 0xc6, 0xdf, 0xd4, 0x40, 0x5b, 0x0d, 0x54, 0xc5, 0xda, 0xc3, 0xc7, + 0xee, 0x85, 0x07, 0xb6, 0xeb, 0xee, 0xce, 0xee, 0xf5, 0xb9, 0xaa, 0xdd, 0x3c, 0xb5, 0x6d, 0x6f, + 0xdb, 0xfe, 0xd1, 0x27, 0xfe, 0x46, 0xbe, 0x90, 0x4f, 0xec, 0xf8, 0xb3, 0xdf, 0x1b, 0x9d, 0x88, + 0x3c, 0x2b, 0xcd, 0x96, 0x61, 0x8c, 0x31, 0x57, 0xc8, 0xf9, 0x0b, 0x5d, 0x45, 0xe8, 0xfb, 0xee, + 0x61, 0xa5, 0xbf, 0xfc, 0x3d, 0x32, 0x5d, 0x1b, 0xa3, 0x0c, 0x8a, 0x69, 0x74, 0xa1, 0x91, 0x35, + 0xe0, 0x88, 0x20, 0x8f, 0xa6, 0x26, 0x6a, 0x47, 0x48, 0xfc, 0x16, 0x93, 0x38, 0x16, 0x90, 0xb8, + 0xce, 0xa0, 0xd9, 0x02, 0x0c, 0x1d, 0x44, 0xd6, 0xdf, 0x32, 0x59, 0x83, 0x28, 0x28, 0xe4, 0x0a, + 0x8c, 0x10, 0x21, 0xd5, 0x5d, 0xc7, 0xb5, 0x9b, 0xa4, 0xee, 0xed, 0x2f, 0xe6, 0xef, 0xbe, 0x47, + 0x73, 0x65, 0x18, 0xc3, 0x0a, 0x1e, 0x2a, 0x9b, 0x05, 0x72, 0xe4, 0x54, 0x43, 0xd5, 0x46, 0x84, + 0x84, 0x1b, 0x4c, 0x11, 0x8f, 0x3f, 0xfb, 0x1e, 0x38, 0x8c, 0x3f, 0x93, 0xb2, 0x14, 0xd4, 0x24, + 0x7a, 0xc3, 0x2b, 0xfd, 0xed, 0x0f, 0xd2, 0x74, 0x1c, 0xf3, 0x04, 0x04, 0x74, 0x0a, 0x78, 0x71, + 0x1b, 0xb9, 0x2e, 0x6a, 0x3b, 0x15, 0xb3, 0x11, 0xa6, 0x5e, 0x60, 0xc7, 0x20, 0xfd, 0x89, 0x57, + 0x45, 0x2f, 0x5e, 0xa1, 0xc8, 0x5c, 0xa3, 0x91, 0xdd, 0x84, 0xa3, 0x21, 0x51, 0x11, 0x43, 0xe6, + 0x27, 0x99, 0xcc, 0xc3, 0x1d, 0x91, 0x81, 0xc5, 0xae, 0x01, 0x1f, 0xf7, 0x7c, 0x19, 0x43, 0xe6, + 0xef, 0x32, 0x99, 0x3a, 0xc3, 0x72, 0x97, 0x62, 0x89, 0x57, 0x61, 0xf4, 0x49, 0xd4, 0xbe, 0x6e, + 0x3b, 0x6c, 0x97, 0x26, 0x86, 0xb8, 0x4f, 0x31, 0x71, 0x23, 0x0c, 0x48, 0xb6, 0x6d, 0xb0, 0xac, + 0x8b, 0x90, 0xda, 0x32, 0xab, 0x28, 0x86, 0x88, 0x4f, 0x33, 0x11, 0x87, 0x30, 0x3f, 0x86, 0xe6, + 0x60, 0x70, 0xdb, 0x66, 0x33, 0x53, 0x34, 0xfc, 0x39, 0x06, 0x1f, 0xe0, 0x18, 0x26, 0xa2, 0x65, + 0xb7, 0x76, 0x1b, 0x78, 0xda, 0x8a, 0x16, 0xf1, 0x19, 0x2e, 0x82, 0x63, 0x98, 0x88, 0x03, 0x98, + 0xf5, 0x79, 0x2e, 0xc2, 0x09, 0xd8, 0xf3, 0x61, 0x18, 0xb0, 0xad, 0xc6, 0x9e, 0x6d, 0xc5, 0x51, + 0xe2, 0xb3, 0x4c, 0x02, 0x30, 0x08, 0x16, 0x70, 0x09, 0xfa, 0xe3, 0x3a, 0xe2, 0x73, 0xaf, 0xf2, + 0xf4, 0xe0, 0x1e, 0xb8, 0x02, 0x23, 0xbc, 0x40, 0xd5, 0x6d, 0x2b, 0x86, 0x88, 0x3f, 0x60, 0x22, + 0x86, 0x03, 0x30, 0xf6, 0x1a, 0x2e, 0x72, 0xdc, 0x6d, 0x14, 0x47, 0xc8, 0xe7, 0xf9, 0x6b, 0x30, + 0x08, 0x33, 0xe5, 0x75, 0x64, 0x55, 0x77, 0xe2, 0x49, 0x78, 0x81, 0x9b, 0x92, 0x63, 0xb0, 0x88, + 0x02, 0x0c, 0x35, 0xcd, 0xb6, 0xb3, 0x63, 0x36, 0x62, 0xb9, 0xe3, 0x0b, 0x4c, 0xc6, 0xa0, 0x07, + 0x62, 0x16, 0xd9, 0xb5, 0x0e, 0x22, 0xe6, 0x8b, 0xdc, 0x22, 0x01, 0x18, 0x4b, 0x3d, 0xc7, 0x25, + 0x5b, 0x5a, 0x07, 0x91, 0xf6, 0x87, 0x3c, 0xf5, 0x28, 0x76, 0x25, 0x28, 0xf1, 0x12, 0xf4, 0x3b, + 0xf5, 0x67, 0x62, 0x89, 0xf9, 0x23, 0xee, 0x69, 0x02, 0xc0, 0xe0, 0x6b, 0x70, 0x47, 0xe8, 0x34, + 0x11, 0x43, 0xd8, 0x1f, 0x33, 0x61, 0xe3, 0x21, 0x53, 0x05, 0x2b, 0x09, 0x07, 0x15, 0xf9, 0x27, + 0xbc, 0x24, 0x20, 0x49, 0xd6, 0x1a, 0x5e, 0x2b, 0x38, 0xe6, 0xd6, 0xc1, 0xac, 0xf6, 0xa7, 0xdc, + 0x6a, 0x14, 0x2b, 0x58, 0x6d, 0x03, 0xc6, 0x99, 0xc4, 0x83, 0xf9, 0xf5, 0x4b, 0xbc, 0xb0, 0x52, + 0xf4, 0xa6, 0xe8, 0xdd, 0xf7, 0xc1, 0x84, 0x67, 0x4e, 0xde, 0x94, 0x3a, 0x95, 0xa6, 0xd9, 0x8a, + 0x21, 0xf9, 0xcb, 0x4c, 0x32, 0xaf, 0xf8, 0x5e, 0x57, 0xeb, 0xac, 0x98, 0x2d, 0x2c, 0xfc, 0x31, + 0x48, 0x73, 0xe1, 0xbb, 0x56, 0x1b, 0x55, 0xed, 0x6d, 0xab, 0xfe, 0x0c, 0xaa, 0xc5, 0x10, 0xfd, + 0x67, 0x92, 0xab, 0x36, 0x03, 0x70, 0x2c, 0x79, 0x09, 0x34, 0xaf, 0x57, 0xa9, 0xd4, 0x9b, 0x2d, + 0xbb, 0xed, 0x46, 0x48, 0xfc, 0x0a, 0xf7, 0x94, 0x87, 0x5b, 0x22, 0xb0, 0x6c, 0x09, 0x86, 0xc9, + 0xd7, 0xb8, 0x21, 0xf9, 0x55, 0x26, 0x68, 0xc8, 0x47, 0xb1, 0xc2, 0x51, 0xb5, 0x9b, 0x2d, 0xb3, + 0x1d, 0xa7, 0xfe, 0xfd, 0x39, 0x2f, 0x1c, 0x0c, 0xc2, 0x0a, 0x87, 0xbb, 0xd7, 0x42, 0x78, 0xb6, + 0x8f, 0x21, 0xe1, 0x6b, 0xbc, 0x70, 0x70, 0x0c, 0x13, 0xc1, 0x1b, 0x86, 0x18, 0x22, 0xfe, 0x82, + 0x8b, 0xe0, 0x18, 0x2c, 0xe2, 0xdd, 0xfe, 0x44, 0xdb, 0x46, 0xdb, 0x75, 0xc7, 0x6d, 0xd3, 0x56, + 0x78, 0x7f, 0x51, 0x5f, 0x7f, 0x55, 0x6c, 0xc2, 0x8c, 0x00, 0x34, 0x7b, 0x15, 0x46, 0xa4, 0x16, + 0x43, 0x8f, 0xba, 0xbf, 0x92, 0xfe, 0xf9, 0xd7, 0x58, 0x31, 0x12, 0x3b, 0x8c, 0xec, 0x32, 0xf6, + 0xbb, 0xd8, 0x07, 0x44, 0x0b, 0xfb, 0xe0, 0x6b, 0x9e, 0xeb, 0x85, 0x36, 0x20, 0x7b, 0x19, 0x86, + 0x84, 0x1e, 0x20, 0x5a, 0xd4, 0x2f, 0x30, 0x51, 0x83, 0xc1, 0x16, 0x20, 0x7b, 0x16, 0x92, 0x78, + 0x3e, 0x8f, 0x86, 0xff, 0x22, 0x83, 0x13, 0xf6, 0xec, 0x83, 0x90, 0xe2, 0xf3, 0x78, 0x34, 0xf4, + 0x43, 0x0c, 0xea, 0x41, 0x30, 0x9c, 0xcf, 0xe1, 0xd1, 0xf0, 0x5f, 0xe2, 0x70, 0x0e, 0xc1, 0xf0, + 0xf8, 0x26, 0x7c, 0xf1, 0x57, 0x92, 0xac, 0x0e, 0x73, 0xdb, 0x5d, 0x82, 0x43, 0x6c, 0xf2, 0x8e, + 0x46, 0x7f, 0x84, 0x3d, 0x9c, 0x23, 0xb2, 0xe7, 0xa1, 0x37, 0xa6, 0xc1, 0x7f, 0x95, 0x41, 0x29, + 0x7f, 0xb6, 0x00, 0x03, 0x81, 0x09, 0x3b, 0x1a, 0xfe, 0x6b, 0x0c, 0x1e, 0x44, 0x61, 0xd5, 0xd9, + 0x84, 0x1d, 0x2d, 0xe0, 0xd7, 0xb9, 0xea, 0x0c, 0x81, 0xcd, 0xc6, 0xe7, 0xea, 0x68, 0xf4, 0x6f, + 0x70, 0xab, 0x73, 0x48, 0xf6, 0x61, 0xe8, 0xf7, 0xea, 0x6f, 0x34, 0xfe, 0x37, 0x19, 0xde, 0xc7, + 0x60, 0x0b, 0x04, 0xea, 0x7f, 0xb4, 0x88, 0xdf, 0xe2, 0x16, 0x08, 0xa0, 0x70, 0x1a, 0xc9, 0x73, + 0x7a, 0xb4, 0xa4, 0x8f, 0xf2, 0x34, 0x92, 0xa6, 0x74, 0xec, 0x4d, 0x52, 0x06, 0xa3, 0x45, 0xfc, + 0x36, 0xf7, 0x26, 0xe1, 0xc7, 0x6a, 0xc8, 0x93, 0x64, 0xb4, 0x8c, 0x8f, 0x71, 0x35, 0xa4, 0x39, + 0x32, 0xbb, 0x06, 0x7a, 0xe7, 0x04, 0x19, 0x2d, 0xef, 0xe3, 0x4c, 0xde, 0x68, 0xc7, 0xfc, 0x98, + 0x7d, 0x14, 0xc6, 0xc3, 0x27, 0xc7, 0x68, 0xa9, 0x9f, 0x78, 0x4d, 0x5a, 0xce, 0x04, 0xe7, 0xc6, + 0xec, 0x86, 0x5f, 0x65, 0x83, 0x13, 0x63, 0xb4, 0xd8, 0x4f, 0xbe, 0x26, 0x16, 0xda, 0xe0, 0xbc, + 0x98, 0xcd, 0x01, 0xf8, 0x73, 0x52, 0xb4, 0xac, 0x4f, 0x31, 0x59, 0x01, 0x10, 0x4e, 0x0d, 0x36, + 0x25, 0x45, 0xe3, 0x3f, 0xcd, 0x53, 0x83, 0x21, 0x70, 0x6a, 0xf0, 0xd9, 0x28, 0x1a, 0xfd, 0x1c, + 0x4f, 0x0d, 0x0e, 0xc9, 0x5e, 0x82, 0x94, 0xb5, 0xdb, 0x68, 0xe0, 0xd8, 0xd2, 0xf7, 0xbf, 0x92, + 0x95, 0xfe, 0xd7, 0xd7, 0x19, 0x98, 0x03, 0xb2, 0x67, 0xa1, 0x17, 0x35, 0xaf, 0xa3, 0x5a, 0x14, + 0xf2, 0xdf, 0x5e, 0xe7, 0xf5, 0x04, 0x73, 0x67, 0x1f, 0x06, 0xa0, 0x8b, 0x69, 0x72, 0x50, 0x14, + 0x81, 0xfd, 0xf7, 0xd7, 0xd9, 0x65, 0x09, 0x1f, 0xe2, 0x0b, 0xa0, 0x57, 0x2f, 0xf6, 0x17, 0xf0, + 0xaa, 0x28, 0x80, 0x2c, 0xc0, 0x2f, 0xc2, 0xa1, 0xc7, 0x1d, 0xdb, 0x72, 0xcd, 0xed, 0x28, 0xf4, + 0x7f, 0x30, 0x34, 0xe7, 0xc7, 0x06, 0x6b, 0xda, 0x6d, 0xe4, 0x9a, 0xdb, 0x4e, 0x14, 0xf6, 0x3f, + 0x19, 0xd6, 0x03, 0x60, 0x70, 0xd5, 0x74, 0xdc, 0x38, 0xef, 0xfd, 0x03, 0x0e, 0xe6, 0x00, 0xac, + 0x34, 0xfe, 0xfc, 0x04, 0xda, 0x8b, 0xc2, 0xfe, 0x90, 0x2b, 0xcd, 0xf8, 0xb3, 0x0f, 0x42, 0x3f, + 0xfe, 0x48, 0x6f, 0x40, 0x45, 0x80, 0xff, 0x8b, 0x81, 0x7d, 0x04, 0x7e, 0xb2, 0xe3, 0xd6, 0xdc, + 0x7a, 0xb4, 0xb1, 0x7f, 0xc4, 0x3c, 0xcd, 0xf9, 0xb3, 0x39, 0x18, 0x70, 0xdc, 0x5a, 0x6d, 0x97, + 0x75, 0x34, 0x11, 0xf0, 0xff, 0x7e, 0xdd, 0x5b, 0xe4, 0x7a, 0x98, 0x7c, 0x29, 0x7c, 0xbf, 0x0e, + 0xae, 0xd8, 0x57, 0x6c, 0xba, 0x53, 0xf7, 0xde, 0x4c, 0xf4, 0x96, 0x1b, 0xfc, 0x55, 0x03, 0x86, + 0xdc, 0x1d, 0x84, 0xa7, 0x14, 0xb6, 0xf3, 0x96, 0xc4, 0x9f, 0x27, 0x0e, 0xb6, 0x5d, 0x47, 0x0e, + 0x63, 0xcb, 0x75, 0xac, 0x71, 0x99, 0xec, 0x87, 0xeb, 0xc7, 0xa0, 0x8f, 0xbc, 0xc3, 0x69, 0x72, + 0xe6, 0xa4, 0xe4, 0x93, 0x37, 0x5e, 0x9e, 0xea, 0x31, 0xd8, 0x98, 0x47, 0x5d, 0x20, 0x1b, 0x96, + 0x09, 0x81, 0xba, 0xe0, 0x51, 0xcf, 0xd0, 0x3d, 0x4b, 0x81, 0x7a, 0xc6, 0xa3, 0x2e, 0x92, 0xdd, + 0x4b, 0x55, 0xa0, 0x2e, 0x7a, 0xd4, 0xb3, 0x64, 0x87, 0x7e, 0x48, 0xa0, 0x9e, 0xf5, 0xa8, 0xe7, + 0xc8, 0xbe, 0x7c, 0x52, 0xa0, 0x9e, 0xf3, 0xa8, 0xe7, 0xc9, 0x96, 0xfc, 0xa8, 0x40, 0x3d, 0xef, + 0x51, 0x2f, 0x90, 0xad, 0x78, 0x5d, 0xa0, 0x5e, 0xf0, 0xa8, 0x17, 0xc9, 0x3d, 0x97, 0x43, 0x02, + 0xf5, 0xa2, 0x3e, 0x09, 0x87, 0xe8, 0x9b, 0xcf, 0x93, 0x73, 0xdb, 0x11, 0x46, 0xe6, 0x83, 0x3e, + 0xfd, 0x34, 0xb9, 0xd3, 0xd2, 0x27, 0xd2, 0x4f, 0xfb, 0xf4, 0x05, 0x72, 0xbd, 0x5e, 0x13, 0xe9, + 0x0b, 0x3e, 0xfd, 0x4c, 0x7a, 0x88, 0xdc, 0xeb, 0x11, 0xe8, 0x67, 0x7c, 0xfa, 0x62, 0x7a, 0x18, + 0x87, 0xb1, 0x48, 0x5f, 0xf4, 0xe9, 0x67, 0xd3, 0x23, 0xd3, 0xca, 0xcc, 0xa0, 0x48, 0x3f, 0x9b, + 0xf9, 0x00, 0x71, 0xaf, 0xe5, 0xbb, 0x77, 0x5c, 0x74, 0xaf, 0xe7, 0xd8, 0x71, 0xd1, 0xb1, 0x9e, + 0x4b, 0xc7, 0x45, 0x97, 0x7a, 0xce, 0x1c, 0x17, 0x9d, 0xe9, 0xb9, 0x71, 0x5c, 0x74, 0xa3, 0xe7, + 0xc0, 0x71, 0xd1, 0x81, 0x9e, 0xeb, 0xc6, 0x45, 0xd7, 0x79, 0x4e, 0x1b, 0x17, 0x9d, 0xe6, 0xb9, + 0x6b, 0x5c, 0x74, 0x97, 0xe7, 0xa8, 0xb4, 0xe4, 0x28, 0xdf, 0x45, 0x69, 0xc9, 0x45, 0xbe, 0x73, + 0xd2, 0x92, 0x73, 0x7c, 0xb7, 0xa4, 0x25, 0xb7, 0xf8, 0x0e, 0x49, 0x4b, 0x0e, 0xf1, 0x5d, 0x91, + 0x96, 0x5c, 0xe1, 0x3b, 0x81, 0xe5, 0x98, 0x81, 0x5a, 0x21, 0x39, 0xa6, 0xee, 0x9b, 0x63, 0xea, + 0xbe, 0x39, 0xa6, 0xee, 0x9b, 0x63, 0xea, 0xbe, 0x39, 0xa6, 0xee, 0x9b, 0x63, 0xea, 0xbe, 0x39, + 0xa6, 0xee, 0x9b, 0x63, 0xea, 0xbe, 0x39, 0xa6, 0xee, 0x9f, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x11, + 0x39, 0xa6, 0x46, 0xe4, 0x98, 0x1a, 0x91, 0x63, 0x6a, 0x44, 0x8e, 0xa9, 0x5d, 0x73, 0xcc, 0x77, + 0xef, 0xb8, 0xe8, 0xde, 0xd0, 0x1c, 0x53, 0xbb, 0xe4, 0x98, 0xda, 0x25, 0xc7, 0xd4, 0x2e, 0x39, + 0xa6, 0x76, 0xc9, 0x31, 0xb5, 0x4b, 0x8e, 0xa9, 0x5d, 0x72, 0x4c, 0xed, 0x92, 0x63, 0x6a, 0xb7, + 0x1c, 0x53, 0xbb, 0xe6, 0x98, 0xda, 0x35, 0xc7, 0xd4, 0xae, 0x39, 0xa6, 0x76, 0xcd, 0x31, 0xb5, + 0x6b, 0x8e, 0xa9, 0xc1, 0x1c, 0xfb, 0x6b, 0x15, 0x74, 0x9a, 0x63, 0x6b, 0xe4, 0xe6, 0x0f, 0x73, + 0xc5, 0xa4, 0x94, 0x69, 0x7d, 0xd8, 0x75, 0x9a, 0xef, 0x92, 0x49, 0x29, 0xd7, 0x44, 0xfa, 0x82, + 0x47, 0xe7, 0xd9, 0x26, 0xd2, 0xcf, 0x78, 0x74, 0x9e, 0x6f, 0x22, 0x7d, 0xd1, 0xa3, 0xf3, 0x8c, + 0x13, 0xe9, 0x67, 0x3d, 0x3a, 0xcf, 0x39, 0x91, 0x7e, 0xce, 0xa3, 0xf3, 0xac, 0x13, 0xe9, 0xe7, + 0x3d, 0x3a, 0xcf, 0x3b, 0x91, 0x7e, 0xc1, 0xa3, 0xf3, 0xcc, 0x13, 0xe9, 0x17, 0xf5, 0x69, 0x39, + 0xf7, 0x38, 0x83, 0xe7, 0xda, 0x69, 0x39, 0xfb, 0x24, 0x8e, 0xd3, 0x3e, 0x07, 0xcf, 0x3f, 0x89, + 0x63, 0xc1, 0xe7, 0xe0, 0x19, 0x28, 0x71, 0x9c, 0xc9, 0x7c, 0x98, 0xb8, 0xcf, 0x92, 0xdd, 0x37, + 0x21, 0xb9, 0x2f, 0x11, 0x70, 0xdd, 0x84, 0xe4, 0xba, 0x44, 0xc0, 0x6d, 0x13, 0x92, 0xdb, 0x12, + 0x01, 0x97, 0x4d, 0x48, 0x2e, 0x4b, 0x04, 0xdc, 0x35, 0x21, 0xb9, 0x2b, 0x11, 0x70, 0xd5, 0x84, + 0xe4, 0xaa, 0x44, 0xc0, 0x4d, 0x13, 0x92, 0x9b, 0x12, 0x01, 0x17, 0x4d, 0x48, 0x2e, 0x4a, 0x04, + 0xdc, 0x33, 0x21, 0xb9, 0x27, 0x11, 0x70, 0xcd, 0x31, 0xd9, 0x35, 0x89, 0xa0, 0x5b, 0x8e, 0xc9, + 0x6e, 0x49, 0x04, 0x5d, 0x72, 0x4c, 0x76, 0x49, 0x22, 0xe8, 0x8e, 0x63, 0xb2, 0x3b, 0x12, 0x41, + 0x57, 0xfc, 0x24, 0xc1, 0x3b, 0xc2, 0x75, 0xb7, 0xbd, 0x5b, 0x75, 0x6f, 0xab, 0x23, 0x9c, 0x17, + 0xda, 0x87, 0x81, 0x05, 0x7d, 0x8e, 0x34, 0xac, 0xc1, 0x8e, 0x53, 0x9a, 0xc1, 0xe6, 0x85, 0xc6, + 0x22, 0x80, 0xb0, 0xc2, 0x11, 0x8b, 0xb7, 0xd5, 0x1b, 0xce, 0x0b, 0x6d, 0x46, 0xb4, 0x7e, 0x17, + 0xde, 0xf2, 0x8e, 0xed, 0xc5, 0x04, 0xef, 0xd8, 0x98, 0xf9, 0x0f, 0xda, 0xb1, 0xcd, 0x46, 0x9b, + 0xdc, 0x33, 0xf6, 0x6c, 0xb4, 0xb1, 0x3b, 0x66, 0x9d, 0xb8, 0x1d, 0xdc, 0x6c, 0xb4, 0x69, 0x3d, + 0xa3, 0xbe, 0xb9, 0xfd, 0x16, 0x8b, 0x60, 0x03, 0xb5, 0x42, 0x22, 0xf8, 0xa0, 0xfd, 0xd6, 0xbc, + 0x50, 0x4a, 0x0e, 0x1a, 0xc1, 0xea, 0x81, 0x23, 0xf8, 0xa0, 0x9d, 0xd7, 0xbc, 0x50, 0x5e, 0x0e, + 0x1c, 0xc1, 0x6f, 0x41, 0x3f, 0xc4, 0x22, 0xd8, 0x37, 0xff, 0x41, 0xfb, 0xa1, 0xd9, 0x68, 0x93, + 0x87, 0x46, 0xb0, 0x7a, 0x80, 0x08, 0x8e, 0xd3, 0x1f, 0xcd, 0x46, 0x9b, 0x36, 0x3c, 0x82, 0x6f, + 0xbb, 0x9b, 0xf9, 0x8c, 0x02, 0xa3, 0xe5, 0x7a, 0xad, 0xd4, 0xbc, 0x8e, 0x6a, 0x35, 0x54, 0x63, + 0x76, 0x9c, 0x17, 0x2a, 0x41, 0x17, 0x57, 0xbf, 0xf4, 0xf2, 0x94, 0x6f, 0xe1, 0xb3, 0x90, 0xa2, + 0x36, 0x9d, 0x9f, 0x4f, 0xdf, 0x50, 0x22, 0x2a, 0x9c, 0xc7, 0xaa, 0x1f, 0xe7, 0xb0, 0xd3, 0xf3, + 0xe9, 0x7f, 0x54, 0x02, 0x55, 0xce, 0x1b, 0xce, 0x7c, 0x94, 0x68, 0x68, 0xdd, 0xb6, 0x86, 0xa7, + 0x62, 0x69, 0x18, 0xd0, 0xed, 0xce, 0x0e, 0xdd, 0x02, 0x5a, 0xed, 0xc2, 0x48, 0xb9, 0x5e, 0x2b, + 0x93, 0x3f, 0xec, 0x8e, 0xa3, 0x12, 0xe5, 0x91, 0xea, 0xc1, 0xbc, 0x10, 0x96, 0x41, 0x84, 0x17, + 0xd2, 0x62, 0x8d, 0xc8, 0xd4, 0xf1, 0x63, 0x2d, 0xe1, 0xb1, 0xb3, 0xdd, 0x1e, 0xeb, 0x57, 0x76, + 0xef, 0x81, 0xb3, 0xdd, 0x1e, 0xe8, 0xe7, 0x90, 0xf7, 0xa8, 0xa7, 0xf9, 0xe4, 0x4c, 0xef, 0xdf, + 0xe8, 0xc7, 0x20, 0xb1, 0x44, 0xaf, 0x07, 0x0f, 0xe6, 0x07, 0xb1, 0x52, 0xdf, 0x79, 0x79, 0x2a, + 0xb9, 0xb9, 0x5b, 0xaf, 0x19, 0x89, 0xa5, 0x9a, 0x7e, 0x15, 0x7a, 0xdf, 0xc3, 0xfe, 0xbc, 0x10, + 0x33, 0x2c, 0x32, 0x86, 0xfb, 0xbb, 0xee, 0x11, 0xe1, 0x07, 0x9f, 0xa2, 0x3b, 0x8b, 0x73, 0x9b, + 0x75, 0xcb, 0x3d, 0xbd, 0x70, 0xc1, 0xa0, 0x22, 0x32, 0xff, 0x17, 0x80, 0x3e, 0xb3, 0x68, 0x3a, + 0x3b, 0x7a, 0x99, 0x4b, 0xa6, 0x8f, 0xbe, 0xf0, 0x9d, 0x97, 0xa7, 0x16, 0xe3, 0x48, 0x7d, 0xa0, + 0x66, 0x3a, 0x3b, 0x0f, 0xb8, 0x7b, 0x2d, 0x34, 0x97, 0xdf, 0x73, 0x91, 0xc3, 0xa5, 0xb7, 0xf8, + 0xac, 0xc7, 0xde, 0x2b, 0x1d, 0x78, 0xaf, 0x94, 0xf0, 0x4e, 0x97, 0xc5, 0x77, 0x9a, 0x7f, 0xa3, + 0xef, 0xf3, 0x34, 0x9f, 0x24, 0x24, 0x4b, 0xaa, 0x51, 0x96, 0x54, 0x6f, 0xd7, 0x92, 0x2d, 0x5e, + 0x1f, 0xa5, 0x77, 0x55, 0xf7, 0x7b, 0x57, 0xf5, 0x76, 0xde, 0xf5, 0x7f, 0x68, 0xb6, 0x7a, 0xf9, + 0xb4, 0x69, 0xd1, 0xab, 0x89, 0x3f, 0x5b, 0x7b, 0x41, 0x6f, 0x6a, 0x17, 0x90, 0x4d, 0xde, 0x78, + 0x7e, 0x4a, 0xc9, 0x7c, 0x26, 0xc1, 0xdf, 0x9c, 0x26, 0xd2, 0x1b, 0x7b, 0xf3, 0x9f, 0x95, 0x9e, + 0xea, 0xad, 0xb0, 0xd0, 0x73, 0x0a, 0x8c, 0x77, 0x54, 0x72, 0x6a, 0xa6, 0x37, 0xb7, 0x9c, 0x5b, + 0x07, 0x2d, 0xe7, 0x4c, 0xc1, 0xaf, 0x2a, 0x70, 0x58, 0x2a, 0xaf, 0x54, 0xbd, 0x53, 0x92, 0x7a, + 0x47, 0x3b, 0x9f, 0x44, 0x18, 0x03, 0xda, 0x05, 0xdd, 0x2b, 0x01, 0x02, 0x92, 0x3d, 0xbf, 0x2f, + 0x4a, 0x7e, 0x3f, 0xe6, 0x01, 0x42, 0xcc, 0xc5, 0x23, 0x80, 0xa9, 0x6d, 0x43, 0x72, 0xa3, 0x8d, + 0x90, 0x3e, 0x09, 0x89, 0xd5, 0x36, 0xd3, 0x70, 0x98, 0xe2, 0x57, 0xdb, 0xf9, 0xb6, 0x69, 0x55, + 0x77, 0x8c, 0xc4, 0x6a, 0x5b, 0x3f, 0x0e, 0x6a, 0x8e, 0xfd, 0x69, 0xf3, 0xc0, 0xc2, 0x08, 0x65, + 0xc8, 0x59, 0x35, 0xc6, 0x81, 0x69, 0xfa, 0x24, 0x24, 0x97, 0x91, 0xb9, 0xc5, 0x94, 0x00, 0xca, + 0x83, 0x47, 0x0c, 0x32, 0xce, 0x1e, 0xf8, 0x18, 0xa4, 0xb8, 0x60, 0xfd, 0x04, 0x46, 0x6c, 0xb9, + 0xec, 0xb1, 0x0c, 0x81, 0xd5, 0x61, 0x33, 0x17, 0xa1, 0xea, 0x27, 0xa1, 0xd7, 0xa8, 0x6f, 0xef, + 0xb8, 0xec, 0xe1, 0x9d, 0x6c, 0x94, 0x9c, 0xb9, 0x06, 0xfd, 0x9e, 0x46, 0x6f, 0xb2, 0xe8, 0x22, + 0x7d, 0x35, 0x7d, 0x22, 0x38, 0x9f, 0xf0, 0x7d, 0x4b, 0x3a, 0xa4, 0x4f, 0x43, 0x6a, 0xdd, 0x6d, + 0xfb, 0x45, 0x9f, 0x77, 0xa4, 0xde, 0x68, 0xe6, 0x03, 0x0a, 0xa4, 0x8a, 0x08, 0xb5, 0x88, 0xc1, + 0xef, 0x81, 0x64, 0xd1, 0x7e, 0xca, 0x62, 0x0a, 0x8e, 0x32, 0x8b, 0x62, 0x32, 0xb3, 0x29, 0x21, + 0xeb, 0xf7, 0x04, 0xed, 0x3e, 0xe6, 0xd9, 0x3d, 0xc0, 0x47, 0x6c, 0x9f, 0x11, 0x6c, 0xcf, 0x1c, + 0x88, 0x99, 0x3a, 0xec, 0x7f, 0x1e, 0x06, 0x02, 0x4f, 0xd1, 0x67, 0x98, 0x1a, 0x09, 0x19, 0x18, + 0xb4, 0x15, 0xe6, 0xc8, 0x20, 0x18, 0x12, 0x1e, 0x8c, 0xa1, 0x01, 0x13, 0x77, 0x81, 0x12, 0x33, + 0xcf, 0x8a, 0x66, 0x0e, 0x67, 0x65, 0xa6, 0x9e, 0xa7, 0x36, 0x22, 0xe6, 0x3e, 0x41, 0x83, 0xb3, + 0xbb, 0x13, 0xf1, 0xe7, 0x4c, 0x2f, 0xa8, 0xe5, 0x7a, 0x23, 0xf3, 0x20, 0x00, 0x4d, 0xf9, 0x92, + 0xb5, 0xdb, 0x94, 0xb2, 0x6e, 0x98, 0x1b, 0x78, 0x63, 0x07, 0x6d, 0x20, 0x87, 0xb0, 0x88, 0xfd, + 0x14, 0x2e, 0x30, 0x40, 0x53, 0x8c, 0xe0, 0xef, 0x8b, 0xc4, 0x87, 0x76, 0x62, 0x98, 0x35, 0x4d, + 0x59, 0xaf, 0x21, 0x37, 0x67, 0xd9, 0xee, 0x0e, 0x6a, 0x4b, 0x88, 0x05, 0xfd, 0x8c, 0x90, 0xb0, + 0xc3, 0x0b, 0x77, 0x7a, 0x88, 0xae, 0xa0, 0x33, 0x99, 0x2f, 0x11, 0x05, 0x71, 0x2b, 0xd0, 0xf1, + 0x82, 0x6a, 0x8c, 0x17, 0xd4, 0xcf, 0x09, 0xfd, 0xdb, 0x3e, 0x6a, 0x4a, 0x4b, 0xcb, 0x8b, 0xc2, + 0x3a, 0x67, 0x7f, 0x65, 0xc5, 0x35, 0x26, 0xb7, 0x29, 0x57, 0xf9, 0xbe, 0x48, 0x95, 0xbb, 0x74, + 0xb7, 0x07, 0xb5, 0xa9, 0x1a, 0xd7, 0xa6, 0xdf, 0xf0, 0x3a, 0x0e, 0xfa, 0xfb, 0x11, 0xe4, 0x97, + 0x57, 0xf4, 0xfb, 0x23, 0x7d, 0x9f, 0x55, 0x0a, 0x9e, 0xaa, 0x8b, 0x71, 0xdd, 0x9f, 0x4d, 0xe4, + 0xf3, 0x9e, 0xba, 0xe7, 0x0f, 0x10, 0x02, 0xd9, 0x44, 0xa1, 0xe0, 0x95, 0xed, 0xd4, 0x87, 0x9f, + 0x9f, 0x52, 0x5e, 0x78, 0x7e, 0xaa, 0x27, 0xf3, 0x05, 0x05, 0x46, 0x19, 0x67, 0x20, 0x70, 0x1f, + 0x90, 0x94, 0x3f, 0xc2, 0x6b, 0x46, 0x98, 0x05, 0xde, 0xb6, 0xe0, 0xfd, 0x96, 0x02, 0xe9, 0x0e, + 0x5d, 0xb9, 0xbd, 0xe7, 0x63, 0xa9, 0x9c, 0x55, 0x4a, 0x3f, 0x7d, 0x9b, 0x5f, 0x83, 0xde, 0x8d, + 0x7a, 0x13, 0xb5, 0xf1, 0x4c, 0x80, 0x3f, 0x50, 0x95, 0xf9, 0x61, 0x0e, 0x1d, 0xe2, 0x34, 0xaa, + 0x9c, 0x40, 0x5b, 0xd0, 0xd3, 0x90, 0x2c, 0x9a, 0xae, 0x49, 0x34, 0x18, 0xf4, 0xea, 0xab, 0xe9, + 0x9a, 0x99, 0x33, 0x30, 0xb8, 0xb2, 0x47, 0x2e, 0xcf, 0xd4, 0xc8, 0xc5, 0x10, 0xb1, 0xfb, 0xe3, + 0xfd, 0xea, 0xe9, 0xd9, 0xde, 0x54, 0x4d, 0xbb, 0xa1, 0x64, 0x93, 0x44, 0x9f, 0x27, 0x61, 0x78, + 0x15, 0xab, 0x4d, 0x70, 0x02, 0x8c, 0x3e, 0x5d, 0xf5, 0x5e, 0x5e, 0x6a, 0xca, 0x54, 0xbf, 0x29, + 0x9b, 0x06, 0x65, 0x45, 0x6c, 0x9d, 0x82, 0x7a, 0x18, 0xca, 0xca, 0x6c, 0x32, 0x35, 0xac, 0x8d, + 0xce, 0x26, 0x53, 0xa0, 0x0d, 0xb1, 0xe7, 0xfe, 0xbd, 0x0a, 0x1a, 0x6d, 0x75, 0x8a, 0x68, 0xab, + 0x6e, 0xd5, 0xdd, 0xce, 0x7e, 0xd5, 0xd3, 0x58, 0x7f, 0x18, 0xfa, 0xb1, 0x49, 0x2f, 0xb3, 0x1f, + 0x60, 0xc3, 0xa6, 0x3f, 0xce, 0x5a, 0x14, 0x49, 0x04, 0x1b, 0x20, 0xa1, 0xe3, 0x63, 0xf4, 0xcb, + 0xa0, 0x96, 0xcb, 0x2b, 0x6c, 0x72, 0x5b, 0xdc, 0x17, 0xca, 0xee, 0xde, 0xb0, 0x6f, 0x6c, 0xcc, + 0xd9, 0x36, 0xb0, 0x00, 0x7d, 0x11, 0x12, 0xe5, 0x15, 0xd6, 0xf0, 0x9e, 0x88, 0x23, 0xc6, 0x48, + 0x94, 0x57, 0x26, 0xfe, 0x46, 0x81, 0x21, 0x61, 0x54, 0xcf, 0xc0, 0x20, 0x1d, 0x08, 0xbc, 0x6e, + 0x9f, 0x21, 0x8c, 0x71, 0x9d, 0x13, 0xb7, 0xa9, 0xf3, 0x44, 0x0e, 0x46, 0xa4, 0x71, 0x7d, 0x0e, + 0xf4, 0xe0, 0x10, 0x53, 0x82, 0xfe, 0xf8, 0x53, 0x08, 0x25, 0x73, 0x17, 0x80, 0x6f, 0x57, 0xef, + 0x37, 0x8b, 0xca, 0xa5, 0xf5, 0x8d, 0x52, 0x51, 0x53, 0x32, 0x5f, 0x53, 0x60, 0x80, 0xb5, 0xad, + 0x55, 0xbb, 0x85, 0xf4, 0x3c, 0x28, 0x39, 0x16, 0x0f, 0x6f, 0x4c, 0x6f, 0x25, 0xa7, 0x9f, 0x02, + 0x25, 0x1f, 0xdf, 0xd5, 0x4a, 0x5e, 0x5f, 0x00, 0xa5, 0xc0, 0x1c, 0x1c, 0xcf, 0x33, 0x4a, 0x21, + 0xf3, 0x23, 0x15, 0xc6, 0x82, 0x6d, 0x34, 0xaf, 0x27, 0xc7, 0xc5, 0x75, 0x53, 0xb6, 0xff, 0xf4, + 0xc2, 0x99, 0xc5, 0x39, 0xfc, 0x8f, 0x17, 0x92, 0x19, 0x71, 0x09, 0x95, 0x05, 0x8f, 0xe5, 0x74, + 0xb7, 0x7b, 0x22, 0xd9, 0x64, 0x40, 0x42, 0xc7, 0x3d, 0x11, 0x81, 0xda, 0x71, 0x4f, 0x44, 0xa0, + 0x76, 0xdc, 0x13, 0x11, 0xa8, 0x1d, 0x67, 0x01, 0x02, 0xb5, 0xe3, 0x9e, 0x88, 0x40, 0xed, 0xb8, + 0x27, 0x22, 0x50, 0x3b, 0xef, 0x89, 0x30, 0x72, 0xd7, 0x7b, 0x22, 0x22, 0xbd, 0xf3, 0x9e, 0x88, + 0x48, 0xef, 0xbc, 0x27, 0x92, 0x4d, 0xba, 0xed, 0x5d, 0xd4, 0xfd, 0xd4, 0x41, 0xc4, 0xef, 0xb7, + 0x08, 0xf4, 0x2b, 0xf0, 0x2a, 0x8c, 0xd0, 0x0d, 0x89, 0x82, 0x6d, 0xb9, 0x66, 0xdd, 0x42, 0x6d, + 0xfd, 0x9d, 0x30, 0x48, 0x87, 0xe8, 0x32, 0x27, 0x6c, 0x19, 0x48, 0xe9, 0xac, 0xde, 0x0a, 0xdc, + 0x99, 0x9f, 0x24, 0x61, 0x9c, 0x0e, 0x94, 0xcd, 0x26, 0x12, 0x6e, 0x19, 0x9d, 0x94, 0xce, 0x94, + 0x86, 0x31, 0xfc, 0xd6, 0xcb, 0x53, 0x74, 0x34, 0xe7, 0x45, 0xd3, 0x49, 0xe9, 0x74, 0x49, 0xe4, + 0xf3, 0x27, 0xa0, 0x93, 0xd2, 0xcd, 0x23, 0x91, 0xcf, 0x9b, 0x6f, 0x3c, 0x3e, 0x7e, 0x07, 0x49, + 0xe4, 0x2b, 0x7a, 0x51, 0x76, 0x52, 0xba, 0x8d, 0x24, 0xf2, 0x95, 0xbc, 0x78, 0x3b, 0x29, 0x9d, + 0x3d, 0x89, 0x7c, 0x97, 0xbd, 0xc8, 0x3b, 0x29, 0x9d, 0x42, 0x89, 0x7c, 0x57, 0xbc, 0x18, 0x3c, + 0x29, 0xdd, 0x55, 0x12, 0xf9, 0x1e, 0xf1, 0xa2, 0xf1, 0xa4, 0x74, 0x6b, 0x49, 0xe4, 0x5b, 0xf2, + 0xe2, 0x72, 0x46, 0xbe, 0xbf, 0x24, 0x32, 0x5e, 0xf5, 0x23, 0x74, 0x46, 0xbe, 0xc9, 0x24, 0x72, + 0xbe, 0xcb, 0x8f, 0xd5, 0x19, 0xf9, 0x4e, 0x93, 0xc8, 0xb9, 0xec, 0x47, 0xed, 0x8c, 0x7c, 0x56, + 0x26, 0x72, 0xae, 0xf8, 0xf1, 0x3b, 0x23, 0x9f, 0x9a, 0x89, 0x9c, 0x65, 0x3f, 0x92, 0x67, 0xe4, + 0xf3, 0x33, 0x91, 0x73, 0xd5, 0xdf, 0x44, 0xff, 0xa6, 0x14, 0x7e, 0x81, 0x5b, 0x50, 0x19, 0x29, + 0xfc, 0x20, 0x24, 0xf4, 0xa4, 0x42, 0x16, 0xe0, 0xf1, 0xc3, 0x2e, 0x23, 0x85, 0x1d, 0x84, 0x84, 0x5c, 0x46, 0x0a, 0x39, 0x08, 0x09, 0xb7, 0x8c, 0x14, 0x6e, 0x10, 0x12, 0x6a, 0x19, 0x29, 0xd4, 0x20, 0x24, 0xcc, 0x32, 0x52, 0x98, 0x41, 0x48, 0x88, 0x65, 0xa4, 0x10, 0x83, 0x90, 0xf0, 0xca, - 0x48, 0xe1, 0x05, 0x21, 0xa1, 0x75, 0x4a, 0x0e, 0x2d, 0x08, 0x0b, 0xab, 0x53, 0x72, 0x58, 0x41, - 0x58, 0x48, 0xdd, 0x23, 0x87, 0xd4, 0xe0, 0xad, 0x57, 0x66, 0xfa, 0xf1, 0x50, 0x20, 0x9a, 0x4e, - 0xc9, 0xd1, 0x04, 0x61, 0x91, 0x74, 0x4a, 0x8e, 0x24, 0x08, 0x8b, 0xa2, 0x53, 0x72, 0x14, 0x41, - 0x58, 0x04, 0xbd, 0x24, 0x47, 0x90, 0x7f, 0xc5, 0x27, 0x23, 0x9d, 0x28, 0x46, 0x45, 0x90, 0x1a, + 0x48, 0xe1, 0x05, 0x21, 0xa1, 0x75, 0x42, 0x0e, 0x2d, 0x08, 0x0b, 0xab, 0x13, 0x72, 0x58, 0x41, + 0x58, 0x48, 0xdd, 0x2d, 0x87, 0x54, 0xff, 0xad, 0x97, 0xa7, 0x7a, 0xf1, 0x50, 0x20, 0x9a, 0x4e, + 0xc8, 0xd1, 0x04, 0x61, 0x91, 0x74, 0x42, 0x8e, 0x24, 0x08, 0x8b, 0xa2, 0x13, 0x72, 0x14, 0x41, + 0x58, 0x04, 0xbd, 0x28, 0x47, 0x90, 0x7f, 0xc7, 0x27, 0x23, 0x1d, 0x29, 0x46, 0x45, 0x90, 0x1a, 0x23, 0x82, 0xd4, 0x18, 0x11, 0xa4, 0xc6, 0x88, 0x20, 0x35, 0x46, 0x04, 0xa9, 0x31, 0x22, 0x48, - 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0xe3, 0x44, 0x90, 0x1a, 0x2b, 0x82, 0xd4, 0x5e, 0x11, - 0x74, 0x4a, 0xbe, 0xf0, 0x00, 0x61, 0x05, 0xe9, 0x94, 0x7c, 0xf2, 0x19, 0x1d, 0x42, 0x6a, 0xac, - 0x10, 0x52, 0x7b, 0x85, 0xd0, 0xb7, 0x54, 0x98, 0x10, 0x42, 0x88, 0x1d, 0x0f, 0xbd, 0x5d, 0x15, - 0xe8, 0x7c, 0x8c, 0xfb, 0x15, 0x61, 0x31, 0x75, 0x3e, 0xc6, 0x19, 0xf5, 0x41, 0x71, 0xd6, 0x5d, - 0x85, 0x4a, 0x31, 0xaa, 0xd0, 0x15, 0x2f, 0x86, 0xce, 0xc7, 0xb8, 0x77, 0xd1, 0x1d, 0x7b, 0x17, - 0x0f, 0x2a, 0x02, 0x8f, 0xc6, 0x2a, 0x02, 0x2b, 0xb1, 0x8a, 0xc0, 0x35, 0xdf, 0x83, 0x1f, 0x4e, - 0xc0, 0x51, 0xdf, 0x83, 0xf4, 0x13, 0xf9, 0xe1, 0xa3, 0x4c, 0xe0, 0x84, 0x4a, 0xe7, 0xa7, 0x36, - 0x01, 0x37, 0x26, 0x56, 0x6a, 0xfa, 0x86, 0x78, 0x56, 0x95, 0x3d, 0xec, 0xf9, 0x4d, 0xc0, 0xe3, - 0x6c, 0x2f, 0xf4, 0x14, 0xa8, 0x2b, 0x35, 0x87, 0x54, 0x8b, 0xb0, 0xc7, 0x16, 0x0c, 0x4c, 0xd6, - 0x0d, 0x18, 0x20, 0xec, 0x0e, 0x71, 0xef, 0xed, 0x3c, 0xb8, 0x68, 0x30, 0x49, 0x99, 0x97, 0x14, - 0x38, 0x21, 0x84, 0xf2, 0xdb, 0x73, 0x62, 0x70, 0x39, 0xd6, 0x89, 0x81, 0x90, 0x20, 0xfe, 0xe9, - 0xc1, 0x7d, 0xdd, 0x07, 0xd5, 0xc1, 0x2c, 0x91, 0x4f, 0x12, 0xfe, 0x0f, 0x8c, 0xfa, 0x33, 0x20, - 0xaf, 0x6c, 0xcb, 0xd1, 0x9b, 0x99, 0x61, 0xa9, 0xb9, 0x2c, 0x6d, 0xa2, 0x1d, 0x08, 0xf3, 0xb2, - 0x35, 0x93, 0x85, 0xb1, 0xb2, 0xf8, 0x17, 0x3a, 0x51, 0x7b, 0x11, 0x29, 0xdc, 0x9a, 0xdf, 0xfc, - 0xec, 0x4c, 0x5f, 0xe6, 0x01, 0x18, 0x0e, 0xfe, 0x11, 0x8e, 0x04, 0x1c, 0xe4, 0xc0, 0x6c, 0xf2, - 0x65, 0xcc, 0xfd, 0x7b, 0x0a, 0xdc, 0x11, 0x64, 0x7f, 0xac, 0xee, 0xee, 0xad, 0x58, 0xb8, 0xa7, - 0x7f, 0x08, 0x52, 0x88, 0x39, 0x8e, 0xfd, 0x86, 0x09, 0x7b, 0x8d, 0x0c, 0x65, 0x9f, 0x27, 0xff, - 0x1a, 0x1e, 0x44, 0xda, 0x04, 0xe1, 0x8f, 0x5d, 0x9c, 0xba, 0x17, 0xfa, 0xa9, 0x7c, 0x51, 0xaf, - 0x11, 0x49, 0xaf, 0xcf, 0x87, 0xe8, 0x45, 0xe2, 0x48, 0xbf, 0x26, 0xe8, 0x15, 0x78, 0x5b, 0x0d, - 0x65, 0x9f, 0xe7, 0xc1, 0x97, 0x4f, 0xe1, 0xfe, 0x8f, 0x44, 0x54, 0xb4, 0x92, 0xb3, 0x90, 0x2a, - 0xc9, 0x3c, 0xe1, 0x7a, 0x16, 0x21, 0x59, 0xb6, 0x6b, 0xe4, 0xd7, 0x55, 0xc8, 0xaf, 0xe0, 0x32, - 0x23, 0xb3, 0x9f, 0xc4, 0x3d, 0x0d, 0xa9, 0xc2, 0x5e, 0xbd, 0x51, 0x6b, 0x23, 0x8b, 0x1d, 0xd9, - 0xb3, 0x1d, 0x74, 0x8c, 0x31, 0x3c, 0x5a, 0xa6, 0x00, 0xe3, 0x65, 0xdb, 0xca, 0xef, 0xbb, 0xc1, - 0xba, 0x31, 0x2f, 0xa5, 0x08, 0x3b, 0xf2, 0x21, 0x7f, 0xd6, 0x81, 0x19, 0xf2, 0xfd, 0xdf, 0x7d, - 0x65, 0x46, 0xd9, 0xf2, 0xb6, 0xcf, 0xd7, 0xe0, 0x18, 0x4b, 0x9f, 0x2e, 0x51, 0x8b, 0x51, 0xa2, - 0x06, 0xd9, 0x31, 0x75, 0x40, 0xdc, 0x0a, 0x16, 0x67, 0x85, 0x8a, 0x7b, 0x6b, 0x9a, 0xe1, 0xa6, - 0xe8, 0x40, 0xcd, 0xd4, 0x43, 0x69, 0x16, 0x2a, 0x6e, 0x3e, 0x4a, 0x9c, 0xa4, 0xd9, 0x3d, 0x30, - 0xe8, 0xd1, 0x02, 0xd1, 0x10, 0xcc, 0x94, 0xc5, 0xb9, 0x0c, 0x0c, 0x05, 0x12, 0x56, 0xef, 0x07, - 0x25, 0xa7, 0xf5, 0xe1, 0xff, 0xf2, 0x9a, 0x82, 0xff, 0x2b, 0x68, 0x89, 0xb9, 0x7b, 0x61, 0x4c, - 0xda, 0xbe, 0xc4, 0x94, 0xa2, 0x06, 0xf8, 0xbf, 0x92, 0x36, 0x34, 0x95, 0xfc, 0xc8, 0x1f, 0x4e, - 0xf7, 0xcd, 0x5d, 0x06, 0xbd, 0x7b, 0xa3, 0x53, 0x1f, 0x80, 0x44, 0x0e, 0x8b, 0x3c, 0x06, 0x89, - 0x7c, 0x5e, 0x53, 0xa6, 0xc6, 0x7e, 0xf5, 0xd3, 0x27, 0x86, 0xf2, 0xe4, 0x2f, 0x8c, 0xaf, 0x23, - 0x37, 0x9f, 0x67, 0xe0, 0x87, 0xe1, 0x8e, 0xd0, 0x8d, 0x52, 0x8c, 0x2f, 0x14, 0x28, 0xbe, 0x58, - 0xec, 0xc2, 0x17, 0x8b, 0x04, 0xaf, 0x64, 0xf9, 0x81, 0x73, 0x4e, 0x0f, 0xd9, 0x64, 0x4c, 0xd7, - 0x02, 0x07, 0xdc, 0xb9, 0xec, 0xc3, 0x8c, 0x37, 0x1f, 0xca, 0x8b, 0x22, 0x0e, 0xac, 0xf3, 0xd9, - 0x02, 0xc3, 0x17, 0x42, 0xf1, 0x3b, 0xd2, 0xa9, 0xaa, 0xb8, 0x42, 0x30, 0x21, 0x05, 0x4f, 0xe1, - 0x62, 0xa8, 0x90, 0xbd, 0xc0, 0x5d, 0xf7, 0xa2, 0xa7, 0x70, 0x29, 0x94, 0xb7, 0x1e, 0x71, 0xe7, - 0xab, 0x94, 0x3d, 0xc3, 0x16, 0xf9, 0xdc, 0x59, 0xfd, 0x0e, 0x9e, 0xa3, 0x42, 0x05, 0x66, 0x06, - 0xe2, 0x5c, 0xd9, 0x02, 0x03, 0xe4, 0x7b, 0x02, 0x7a, 0x5b, 0x89, 0x23, 0xb3, 0x8f, 0x32, 0x21, - 0x85, 0x9e, 0x42, 0x22, 0x4c, 0xc5, 0xe1, 0xf9, 0xad, 0x9b, 0xaf, 0x4e, 0xf7, 0xbd, 0xfc, 0xea, - 0x74, 0xdf, 0x3f, 0xbd, 0x3a, 0xdd, 0xf7, 0xbd, 0x57, 0xa7, 0x95, 0x1f, 0xbc, 0x3a, 0xad, 0xfc, - 0xf0, 0xd5, 0x69, 0xe5, 0xa7, 0xaf, 0x4e, 0x2b, 0xcf, 0xdd, 0x9a, 0x56, 0x5e, 0xbc, 0x35, 0xad, - 0x7c, 0xe5, 0xd6, 0xb4, 0xf2, 0x8d, 0x5b, 0xd3, 0xca, 0x4b, 0xb7, 0xa6, 0x95, 0x9b, 0xb7, 0xa6, - 0xfb, 0x5e, 0xbe, 0x35, 0xdd, 0xf7, 0xbd, 0x5b, 0xd3, 0xca, 0x0f, 0x6e, 0x4d, 0xf7, 0xfd, 0xf0, - 0xd6, 0xb4, 0xf2, 0xd3, 0x5b, 0xd3, 0x7d, 0xcf, 0xbd, 0x36, 0xdd, 0xf7, 0xc2, 0x6b, 0xd3, 0x7d, - 0x2f, 0xbe, 0x36, 0xad, 0xfc, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7a, 0xc5, 0xea, 0x72, 0x99, - 0x64, 0x00, 0x00, + 0x8d, 0x11, 0x41, 0x6a, 0x8c, 0x08, 0x52, 0xe3, 0x44, 0x90, 0x1a, 0x2b, 0x82, 0xd4, 0x6e, 0x11, + 0x74, 0x42, 0xbe, 0xf1, 0x00, 0x61, 0x05, 0xe9, 0x84, 0x7c, 0xf4, 0x19, 0x1d, 0x42, 0x6a, 0xac, + 0x10, 0x52, 0xbb, 0x85, 0xd0, 0x37, 0x55, 0x18, 0x13, 0x42, 0x88, 0x9d, 0x0f, 0xbd, 0x59, 0x15, + 0xe8, 0x5c, 0x8c, 0x0b, 0x16, 0x61, 0x31, 0x75, 0x2e, 0xc6, 0x21, 0xf5, 0x7e, 0x71, 0xd6, 0x59, + 0x85, 0x4a, 0x31, 0xaa, 0xd0, 0x65, 0x2f, 0x86, 0xce, 0xc5, 0xb8, 0x78, 0xd1, 0x19, 0x7b, 0x17, + 0xf6, 0x2b, 0x02, 0x8f, 0xc4, 0x2a, 0x02, 0x4b, 0xb1, 0x8a, 0xc0, 0x55, 0xdf, 0x83, 0x1f, 0x4a, + 0xc0, 0x61, 0xdf, 0x83, 0xf4, 0x13, 0xf9, 0x81, 0xa4, 0x4c, 0xe0, 0x88, 0x4a, 0xe7, 0xc7, 0x36, + 0x01, 0x37, 0x26, 0x96, 0x6a, 0xfa, 0x9a, 0x78, 0x58, 0x95, 0x3d, 0xe8, 0x01, 0x4e, 0xc0, 0xe3, + 0x6c, 0x33, 0xf4, 0x04, 0xa8, 0x4b, 0x35, 0x87, 0x54, 0x8b, 0xb0, 0xc7, 0x16, 0x0c, 0x4c, 0xd6, + 0x0d, 0xe8, 0x23, 0xec, 0x0e, 0x71, 0xef, 0xed, 0x3c, 0xb8, 0x68, 0x30, 0x49, 0x99, 0x17, 0x15, + 0x98, 0x16, 0x42, 0xf9, 0xcd, 0x39, 0x32, 0xb8, 0x14, 0xeb, 0xc8, 0x40, 0x48, 0x10, 0xff, 0xf8, + 0xe0, 0xde, 0xce, 0x93, 0xea, 0x60, 0x96, 0xc8, 0x47, 0x09, 0x3f, 0x07, 0xc3, 0xfe, 0x1b, 0x90, + 0x35, 0xdb, 0xd9, 0xe8, 0xdd, 0xcc, 0xb0, 0xd4, 0x3c, 0x2b, 0xed, 0xa2, 0xed, 0x0b, 0xf3, 0xb2, + 0x35, 0x93, 0x85, 0x91, 0xb2, 0xf8, 0x67, 0x3c, 0x51, 0x9b, 0x11, 0x29, 0xdc, 0x9a, 0xdf, 0xf8, + 0xec, 0x54, 0x4f, 0xe6, 0x7e, 0x18, 0x0c, 0xfe, 0xa5, 0x8e, 0x04, 0xec, 0xe7, 0xc0, 0x6c, 0xf2, + 0x25, 0xcc, 0xfd, 0x3b, 0x0a, 0x1c, 0x09, 0xb2, 0x3f, 0x5a, 0x77, 0x77, 0x96, 0x2c, 0xdc, 0xd3, + 0x3f, 0x08, 0x29, 0xc4, 0x1c, 0xc7, 0x7e, 0xeb, 0x84, 0xad, 0x23, 0x43, 0xd9, 0xe7, 0xc8, 0xbf, + 0x86, 0x07, 0x91, 0x76, 0x41, 0xf8, 0x63, 0x17, 0x26, 0xee, 0x81, 0x5e, 0x2a, 0x5f, 0xd4, 0x6b, + 0x48, 0xd2, 0xeb, 0x73, 0x21, 0x7a, 0x91, 0x38, 0xd2, 0xaf, 0x0a, 0x7a, 0x05, 0x96, 0xab, 0xa1, + 0xec, 0x73, 0x3c, 0xf8, 0xf2, 0x29, 0xdc, 0xff, 0x91, 0x88, 0x8a, 0x56, 0x72, 0x06, 0x52, 0x25, + 0x99, 0x27, 0x5c, 0xcf, 0x22, 0x24, 0xcb, 0x76, 0x8d, 0xfc, 0x0a, 0x0b, 0xf9, 0xd9, 0x61, 0x66, + 0x64, 0xf6, 0x1b, 0xc4, 0x27, 0x21, 0x55, 0xd8, 0xa9, 0x37, 0x6a, 0x6d, 0x64, 0xb1, 0x33, 0x7b, + 0xb6, 0x85, 0x8e, 0x31, 0x86, 0x47, 0xcb, 0x14, 0x60, 0xb4, 0x6c, 0x5b, 0xf9, 0x3d, 0x37, 0x58, + 0x37, 0xe6, 0xa4, 0x14, 0x61, 0x67, 0x3e, 0xe4, 0x6f, 0x3f, 0x30, 0x43, 0xbe, 0xf7, 0x3b, 0x2f, + 0x4f, 0x29, 0x1b, 0xde, 0xfe, 0xf9, 0x0a, 0x1c, 0x65, 0xe9, 0xd3, 0x21, 0x6a, 0x21, 0x4a, 0x54, + 0x3f, 0x3b, 0xa7, 0x0e, 0x88, 0x5b, 0xc2, 0xe2, 0xac, 0x50, 0x71, 0x6f, 0x4c, 0x33, 0xdc, 0x14, + 0xed, 0xab, 0x99, 0x7a, 0x20, 0xcd, 0x42, 0xc5, 0xcd, 0x45, 0x89, 0x93, 0x34, 0xbb, 0x1b, 0xfa, + 0x3d, 0x5a, 0x20, 0x1a, 0x82, 0x99, 0xb2, 0x30, 0x9b, 0x81, 0x81, 0x40, 0xc2, 0xea, 0xbd, 0xa0, + 0xe4, 0xb4, 0x1e, 0xfc, 0x5f, 0x5e, 0x53, 0xf0, 0x7f, 0x05, 0x2d, 0x31, 0x7b, 0x0f, 0x8c, 0x48, + 0xfb, 0x97, 0x98, 0x52, 0xd4, 0x00, 0xff, 0x57, 0xd2, 0x06, 0x26, 0x92, 0x1f, 0xfe, 0xfd, 0xc9, + 0x9e, 0xd9, 0x4b, 0xa0, 0x77, 0xee, 0x74, 0xea, 0x7d, 0x90, 0xc8, 0x61, 0x91, 0x47, 0x21, 0x91, + 0xcf, 0x6b, 0xca, 0xc4, 0xc8, 0x2f, 0x7f, 0x7a, 0x7a, 0x20, 0x4f, 0xfe, 0x0c, 0xf9, 0x1a, 0x72, + 0xf3, 0x79, 0x06, 0x7e, 0x08, 0x8e, 0x84, 0xee, 0x94, 0x62, 0x7c, 0xa1, 0x40, 0xf1, 0xc5, 0x62, + 0x07, 0xbe, 0x58, 0x24, 0x78, 0x25, 0xcb, 0x4f, 0x9c, 0x73, 0x7a, 0xc8, 0x2e, 0x63, 0xba, 0x16, + 0x38, 0xe1, 0xce, 0x65, 0x1f, 0x62, 0xbc, 0xf9, 0x50, 0x5e, 0x14, 0x71, 0x62, 0x9d, 0xcf, 0x16, + 0x18, 0xbe, 0x10, 0x8a, 0xdf, 0x92, 0x8e, 0x55, 0xc5, 0x19, 0x82, 0x09, 0x29, 0x78, 0x0a, 0x17, + 0x43, 0x85, 0xec, 0x04, 0x2e, 0xbb, 0x17, 0x3d, 0x85, 0x4b, 0xa1, 0xbc, 0xf5, 0x88, 0x4b, 0x5f, + 0xa5, 0xec, 0x29, 0x36, 0xc9, 0xe7, 0x4e, 0xeb, 0x47, 0x78, 0x8e, 0x0a, 0x15, 0x98, 0x19, 0x88, + 0x73, 0x65, 0x0b, 0x0c, 0x90, 0xef, 0x0a, 0xe8, 0x6e, 0x25, 0x8e, 0xcc, 0x3e, 0xc2, 0x84, 0x14, + 0xba, 0x0a, 0x89, 0x30, 0x15, 0x87, 0xe7, 0x37, 0x6e, 0xdc, 0x9c, 0xec, 0x79, 0xe9, 0xe6, 0x64, + 0xcf, 0x3f, 0xdd, 0x9c, 0xec, 0xf9, 0xee, 0xcd, 0x49, 0xe5, 0xfb, 0x37, 0x27, 0x95, 0x1f, 0xde, + 0x9c, 0x54, 0x7e, 0x7c, 0x73, 0x52, 0x79, 0xf6, 0xd6, 0xa4, 0xf2, 0xc2, 0xad, 0x49, 0xe5, 0x4b, + 0xb7, 0x26, 0x95, 0xaf, 0xdf, 0x9a, 0x54, 0x5e, 0xbc, 0x35, 0xa9, 0xdc, 0xb8, 0x35, 0xd9, 0xf3, + 0xd2, 0xad, 0xc9, 0x9e, 0xef, 0xde, 0x9a, 0x54, 0xbe, 0x7f, 0x6b, 0xb2, 0xe7, 0x87, 0xb7, 0x26, + 0x95, 0x1f, 0xdf, 0x9a, 0xec, 0x79, 0xf6, 0x95, 0xc9, 0x9e, 0xe7, 0x5f, 0x99, 0xec, 0x79, 0xe1, + 0x95, 0x49, 0xe5, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x77, 0xc4, 0xa9, 0xd6, 0xca, 0x66, 0x00, + 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -12581,8 +12586,8 @@ func (this *MyExtendable) VerboseEqual(that interface{}) error { } else if that1.Field1 != nil { return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1) } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12636,8 +12641,8 @@ func (this *MyExtendable) Equal(that interface{}) bool { } else if that1.Field1 != nil { return false } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12703,8 +12708,8 @@ func (this *OtherExtenable) VerboseEqual(that interface{}) error { if !this.M.Equal(that1.M) { return fmt.Errorf("M this(%v) Not Equal that(%v)", this.M, that1.M) } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -12770,8 +12775,8 @@ func (this *OtherExtenable) Equal(that interface{}) bool { if !this.M.Equal(that1.M) { return false } - thismap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(this) - thatmap := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(that1) + thismap := proto.GetUnsafeExtensionsMap(this) + thatmap := proto.GetUnsafeExtensionsMap(that1) for k, v := range thismap { if v2, ok := thatmap[k]; ok { if !v.Equal(&v2) { @@ -15827,7 +15832,7 @@ func (this *ProtoType) Equal(that interface{}) bool { } type NidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() float64 GetField2() float32 GetField3() int32 @@ -15845,11 +15850,11 @@ type NidOptNativeFace interface { GetField15() []byte } -func (this *NidOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNative) Proto() proto.Message { return this } -func (this *NidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNative) TestProto() proto.Message { return NewNidOptNativeFromFace(this) } @@ -15934,7 +15939,7 @@ func NewNidOptNativeFromFace(that NidOptNativeFace) *NidOptNative { } type NinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *int32 @@ -15952,11 +15957,11 @@ type NinOptNativeFace interface { GetField15() []byte } -func (this *NinOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNative) Proto() proto.Message { return this } -func (this *NinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNative) TestProto() proto.Message { return NewNinOptNativeFromFace(this) } @@ -16041,7 +16046,7 @@ func NewNinOptNativeFromFace(that NinOptNativeFace) *NinOptNative { } type NidRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16059,11 +16064,11 @@ type NidRepNativeFace interface { GetField15() [][]byte } -func (this *NidRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNative) Proto() proto.Message { return this } -func (this *NidRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNative) TestProto() proto.Message { return NewNidRepNativeFromFace(this) } @@ -16148,7 +16153,7 @@ func NewNidRepNativeFromFace(that NidRepNativeFace) *NidRepNative { } type NinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16166,11 +16171,11 @@ type NinRepNativeFace interface { GetField15() [][]byte } -func (this *NinRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNative) Proto() proto.Message { return this } -func (this *NinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNative) TestProto() proto.Message { return NewNinRepNativeFromFace(this) } @@ -16255,7 +16260,7 @@ func NewNinRepNativeFromFace(that NinRepNativeFace) *NinRepNative { } type NidRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16271,11 +16276,11 @@ type NidRepPackedNativeFace interface { GetField13() []bool } -func (this *NidRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepPackedNative) Proto() proto.Message { return this } -func (this *NidRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepPackedNative) TestProto() proto.Message { return NewNidRepPackedNativeFromFace(this) } @@ -16350,7 +16355,7 @@ func NewNidRepPackedNativeFromFace(that NidRepPackedNativeFace) *NidRepPackedNat } type NinRepPackedNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []int32 @@ -16366,11 +16371,11 @@ type NinRepPackedNativeFace interface { GetField13() []bool } -func (this *NinRepPackedNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepPackedNative) Proto() proto.Message { return this } -func (this *NinRepPackedNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepPackedNative) TestProto() proto.Message { return NewNinRepPackedNativeFromFace(this) } @@ -16445,7 +16450,7 @@ func NewNinRepPackedNativeFromFace(that NinRepPackedNativeFace) *NinRepPackedNat } type NidOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() float64 GetField2() float32 GetField3() NidOptNative @@ -16458,11 +16463,11 @@ type NidOptStructFace interface { GetField15() []byte } -func (this *NidOptStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptStruct) Proto() proto.Message { return this } -func (this *NidOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptStruct) TestProto() proto.Message { return NewNidOptStructFromFace(this) } @@ -16522,7 +16527,7 @@ func NewNidOptStructFromFace(that NidOptStructFace) *NidOptStruct { } type NinOptStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *NidOptNative @@ -16535,11 +16540,11 @@ type NinOptStructFace interface { GetField15() []byte } -func (this *NinOptStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStruct) Proto() proto.Message { return this } -func (this *NinOptStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStruct) TestProto() proto.Message { return NewNinOptStructFromFace(this) } @@ -16599,7 +16604,7 @@ func NewNinOptStructFromFace(that NinOptStructFace) *NinOptStruct { } type NidRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []NidOptNative @@ -16612,11 +16617,11 @@ type NidRepStructFace interface { GetField15() [][]byte } -func (this *NidRepStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepStruct) Proto() proto.Message { return this } -func (this *NidRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepStruct) TestProto() proto.Message { return NewNidRepStructFromFace(this) } @@ -16676,7 +16681,7 @@ func NewNidRepStructFromFace(that NidRepStructFace) *NidRepStruct { } type NinRepStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []float64 GetField2() []float32 GetField3() []*NidOptNative @@ -16689,11 +16694,11 @@ type NinRepStructFace interface { GetField15() [][]byte } -func (this *NinRepStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepStruct) Proto() proto.Message { return this } -func (this *NinRepStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepStruct) TestProto() proto.Message { return NewNinRepStructFromFace(this) } @@ -16753,17 +16758,17 @@ func NewNinRepStructFromFace(that NinRepStructFace) *NinRepStruct { } type NidEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() NidOptNative GetField210() bool } -func (this *NidEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidEmbeddedStruct) Proto() proto.Message { return this } -func (this *NidEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidEmbeddedStruct) TestProto() proto.Message { return NewNidEmbeddedStructFromFace(this) } @@ -16788,17 +16793,17 @@ func NewNidEmbeddedStructFromFace(that NidEmbeddedStructFace) *NidEmbeddedStruct } type NinEmbeddedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() *NidOptNative GetField210() *bool } -func (this *NinEmbeddedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStruct) Proto() proto.Message { return this } -func (this *NinEmbeddedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStruct) TestProto() proto.Message { return NewNinEmbeddedStructFromFace(this) } @@ -16823,16 +16828,16 @@ func NewNinEmbeddedStructFromFace(that NinEmbeddedStructFace) *NinEmbeddedStruct } type NidNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() NidOptStruct GetField2() []NidRepStruct } -func (this *NidNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidNestedStruct) Proto() proto.Message { return this } -func (this *NidNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidNestedStruct) TestProto() proto.Message { return NewNidNestedStructFromFace(this) } @@ -16852,16 +16857,16 @@ func NewNidNestedStructFromFace(that NidNestedStructFace) *NidNestedStruct { } type NinNestedStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *NinOptStruct GetField2() []*NinRepStruct } -func (this *NinNestedStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStruct) Proto() proto.Message { return this } -func (this *NinNestedStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStruct) TestProto() proto.Message { return NewNinNestedStructFromFace(this) } @@ -16881,16 +16886,16 @@ func NewNinNestedStructFromFace(that NinNestedStructFace) *NinNestedStruct { } type NidOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() Uuid GetValue() github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NidOptCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptCustom) Proto() proto.Message { return this } -func (this *NidOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptCustom) TestProto() proto.Message { return NewNidOptCustomFromFace(this) } @@ -16910,15 +16915,15 @@ func NewNidOptCustomFromFace(that NidOptCustomFace) *NidOptCustom { } type CustomDashFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetValue() *github_com_gogo_protobuf_test_custom_dash_type.Bytes } -func (this *CustomDash) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomDash) Proto() proto.Message { return this } -func (this *CustomDash) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomDash) TestProto() proto.Message { return NewCustomDashFromFace(this) } @@ -16933,16 +16938,16 @@ func NewCustomDashFromFace(that CustomDashFace) *CustomDash { } type NinOptCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() *Uuid GetValue() *github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NinOptCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptCustom) Proto() proto.Message { return this } -func (this *NinOptCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptCustom) TestProto() proto.Message { return NewNinOptCustomFromFace(this) } @@ -16962,16 +16967,16 @@ func NewNinOptCustomFromFace(that NinOptCustomFace) *NinOptCustom { } type NidRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() []Uuid GetValue() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NidRepCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepCustom) Proto() proto.Message { return this } -func (this *NidRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepCustom) TestProto() proto.Message { return NewNidRepCustomFromFace(this) } @@ -16991,16 +16996,16 @@ func NewNidRepCustomFromFace(that NidRepCustomFace) *NidRepCustom { } type NinRepCustomFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetId() []Uuid GetValue() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *NinRepCustom) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepCustom) Proto() proto.Message { return this } -func (this *NinRepCustom) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepCustom) TestProto() proto.Message { return NewNinRepCustomFromFace(this) } @@ -17020,7 +17025,7 @@ func NewNinRepCustomFromFace(that NinRepCustomFace) *NinRepCustom { } type NinOptNativeUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *int32 @@ -17032,11 +17037,11 @@ type NinOptNativeUnionFace interface { GetField15() []byte } -func (this *NinOptNativeUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNativeUnion) Proto() proto.Message { return this } -func (this *NinOptNativeUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNativeUnion) TestProto() proto.Message { return NewNinOptNativeUnionFromFace(this) } @@ -17091,7 +17096,7 @@ func NewNinOptNativeUnionFromFace(that NinOptNativeUnionFace) *NinOptNativeUnion } type NinOptStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *float64 GetField2() *float32 GetField3() *NidOptNative @@ -17103,11 +17108,11 @@ type NinOptStructUnionFace interface { GetField15() []byte } -func (this *NinOptStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStructUnion) Proto() proto.Message { return this } -func (this *NinOptStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptStructUnion) TestProto() proto.Message { return NewNinOptStructUnionFromFace(this) } @@ -17162,17 +17167,17 @@ func NewNinOptStructUnionFromFace(that NinOptStructUnionFace) *NinOptStructUnion } type NinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetField200() *NinOptNative GetField210() *bool } -func (this *NinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStructUnion) Proto() proto.Message { return this } -func (this *NinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinEmbeddedStructUnion) TestProto() proto.Message { return NewNinEmbeddedStructUnionFromFace(this) } @@ -17197,17 +17202,17 @@ func NewNinEmbeddedStructUnionFromFace(that NinEmbeddedStructUnionFace) *NinEmbe } type NinNestedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *NinOptNativeUnion GetField2() *NinOptStructUnion GetField3() *NinEmbeddedStructUnion } -func (this *NinNestedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStructUnion) Proto() proto.Message { return this } -func (this *NinNestedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinNestedStructUnion) TestProto() proto.Message { return NewNinNestedStructUnionFromFace(this) } @@ -17232,17 +17237,17 @@ func NewNinNestedStructUnionFromFace(that NinNestedStructUnionFace) *NinNestedSt } type TreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetOr() *OrBranch GetAnd() *AndBranch GetLeaf() *Leaf } -func (this *Tree) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Tree) Proto() proto.Message { return this } -func (this *Tree) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Tree) TestProto() proto.Message { return NewTreeFromFace(this) } @@ -17267,16 +17272,16 @@ func NewTreeFromFace(that TreeFace) *Tree { } type OrBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() Tree GetRight() Tree } -func (this *OrBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *OrBranch) Proto() proto.Message { return this } -func (this *OrBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *OrBranch) TestProto() proto.Message { return NewOrBranchFromFace(this) } @@ -17296,16 +17301,16 @@ func NewOrBranchFromFace(that OrBranchFace) *OrBranch { } type AndBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() Tree GetRight() Tree } -func (this *AndBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AndBranch) Proto() proto.Message { return this } -func (this *AndBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AndBranch) TestProto() proto.Message { return NewAndBranchFromFace(this) } @@ -17325,16 +17330,16 @@ func NewAndBranchFromFace(that AndBranchFace) *AndBranch { } type LeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetValue() int64 GetStrValue() string } -func (this *Leaf) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Leaf) Proto() proto.Message { return this } -func (this *Leaf) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Leaf) TestProto() proto.Message { return NewLeafFromFace(this) } @@ -17354,17 +17359,17 @@ func NewLeafFromFace(that LeafFace) *Leaf { } type DeepTreeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetDown() *ADeepBranch GetAnd() *AndDeepBranch GetLeaf() *DeepLeaf } -func (this *DeepTree) Proto() github_com_gogo_protobuf_proto.Message { +func (this *DeepTree) Proto() proto.Message { return this } -func (this *DeepTree) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *DeepTree) TestProto() proto.Message { return NewDeepTreeFromFace(this) } @@ -17389,15 +17394,15 @@ func NewDeepTreeFromFace(that DeepTreeFace) *DeepTree { } type ADeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetDown() DeepTree } -func (this *ADeepBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ADeepBranch) Proto() proto.Message { return this } -func (this *ADeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ADeepBranch) TestProto() proto.Message { return NewADeepBranchFromFace(this) } @@ -17412,16 +17417,16 @@ func NewADeepBranchFromFace(that ADeepBranchFace) *ADeepBranch { } type AndDeepBranchFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLeft() DeepTree GetRight() DeepTree } -func (this *AndDeepBranch) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AndDeepBranch) Proto() proto.Message { return this } -func (this *AndDeepBranch) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AndDeepBranch) TestProto() proto.Message { return NewAndDeepBranchFromFace(this) } @@ -17441,15 +17446,15 @@ func NewAndDeepBranchFromFace(that AndDeepBranchFace) *AndDeepBranch { } type DeepLeafFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetTree() Tree } -func (this *DeepLeaf) Proto() github_com_gogo_protobuf_proto.Message { +func (this *DeepLeaf) Proto() proto.Message { return this } -func (this *DeepLeaf) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *DeepLeaf) TestProto() proto.Message { return NewDeepLeafFromFace(this) } @@ -17464,14 +17469,14 @@ func NewDeepLeafFromFace(that DeepLeafFace) *DeepLeaf { } type NilFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message } -func (this *Nil) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Nil) Proto() proto.Message { return this } -func (this *Nil) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Nil) TestProto() proto.Message { return NewNilFromFace(this) } @@ -17481,15 +17486,15 @@ func NewNilFromFace(that NilFace) *Nil { } type NidOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() TheTestEnum } -func (this *NidOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptEnum) Proto() proto.Message { return this } -func (this *NidOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptEnum) TestProto() proto.Message { return NewNidOptEnumFromFace(this) } @@ -17504,17 +17509,17 @@ func NewNidOptEnumFromFace(that NidOptEnumFace) *NidOptEnum { } type NinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *TheTestEnum GetField2() *YetAnotherTestEnum GetField3() *YetYetAnotherTestEnum } -func (this *NinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptEnum) Proto() proto.Message { return this } -func (this *NinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptEnum) TestProto() proto.Message { return NewNinOptEnumFromFace(this) } @@ -17539,17 +17544,17 @@ func NewNinOptEnumFromFace(that NinOptEnumFace) *NinOptEnum { } type NidRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []TheTestEnum GetField2() []YetAnotherTestEnum GetField3() []YetYetAnotherTestEnum } -func (this *NidRepEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepEnum) Proto() proto.Message { return this } -func (this *NidRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepEnum) TestProto() proto.Message { return NewNidRepEnumFromFace(this) } @@ -17574,17 +17579,17 @@ func NewNidRepEnumFromFace(that NidRepEnumFace) *NidRepEnum { } type NinRepEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []TheTestEnum GetField2() []YetAnotherTestEnum GetField3() []YetYetAnotherTestEnum } -func (this *NinRepEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepEnum) Proto() proto.Message { return this } -func (this *NinRepEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepEnum) TestProto() proto.Message { return NewNinRepEnumFromFace(this) } @@ -17609,17 +17614,17 @@ func NewNinRepEnumFromFace(that NinRepEnumFace) *NinRepEnum { } type AnotherNinOptEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *AnotherTestEnum GetField2() *YetAnotherTestEnum GetField3() *YetYetAnotherTestEnum } -func (this *AnotherNinOptEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *AnotherNinOptEnum) Proto() proto.Message { return this } -func (this *AnotherNinOptEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *AnotherNinOptEnum) TestProto() proto.Message { return NewAnotherNinOptEnumFromFace(this) } @@ -17644,17 +17649,17 @@ func NewAnotherNinOptEnumFromFace(that AnotherNinOptEnumFace) *AnotherNinOptEnum } type TimerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetTime1() int64 GetTime2() int64 GetData() []byte } -func (this *Timer) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Timer) Proto() proto.Message { return this } -func (this *Timer) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Timer) TestProto() proto.Message { return NewTimerFromFace(this) } @@ -17679,18 +17684,18 @@ func NewTimerFromFace(that TimerFace) *Timer { } type NestedDefinitionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *int64 GetEnumField() *NestedDefinition_NestedEnum GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg GetNM() *NestedDefinition_NestedMessage } -func (this *NestedDefinition) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition) Proto() proto.Message { return this } -func (this *NestedDefinition) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition) TestProto() proto.Message { return NewNestedDefinitionFromFace(this) } @@ -17720,16 +17725,16 @@ func NewNestedDefinitionFromFace(that NestedDefinitionFace) *NestedDefinition { } type NestedDefinition_NestedMessageFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedField1() *uint64 GetNNM() *NestedDefinition_NestedMessage_NestedNestedMsg } -func (this *NestedDefinition_NestedMessage) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage) Proto() proto.Message { return this } -func (this *NestedDefinition_NestedMessage) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage) TestProto() proto.Message { return NewNestedDefinition_NestedMessageFromFace(this) } @@ -17749,15 +17754,15 @@ func NewNestedDefinition_NestedMessageFromFace(that NestedDefinition_NestedMessa } type NestedDefinition_NestedMessage_NestedNestedMsgFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNestedNestedField1() *string } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Proto() proto.Message { return this } -func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedDefinition_NestedMessage_NestedNestedMsg) TestProto() proto.Message { return NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(this) } @@ -17772,17 +17777,17 @@ func NewNestedDefinition_NestedMessage_NestedNestedMsgFromFace(that NestedDefini } type NestedScopeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetA() *NestedDefinition_NestedMessage_NestedNestedMsg GetB() *NestedDefinition_NestedEnum GetC() *NestedDefinition_NestedMessage } -func (this *NestedScope) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NestedScope) Proto() proto.Message { return this } -func (this *NestedScope) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NestedScope) TestProto() proto.Message { return NewNestedScopeFromFace(this) } @@ -17807,15 +17812,15 @@ func NewNestedScopeFromFace(that NestedScopeFace) *NestedScope { } type CustomContainerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetCustomStruct() NidOptCustom } -func (this *CustomContainer) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomContainer) Proto() proto.Message { return this } -func (this *CustomContainer) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomContainer) TestProto() proto.Message { return NewCustomContainerFromFace(this) } @@ -17830,7 +17835,7 @@ func NewCustomContainerFromFace(that CustomContainerFace) *CustomContainer { } type CustomNameNidOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() float64 GetFieldB() float32 GetFieldC() int32 @@ -17848,11 +17853,11 @@ type CustomNameNidOptNativeFace interface { GetFieldO() []byte } -func (this *CustomNameNidOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNidOptNative) Proto() proto.Message { return this } -func (this *CustomNameNidOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNidOptNative) TestProto() proto.Message { return NewCustomNameNidOptNativeFromFace(this) } @@ -17937,7 +17942,7 @@ func NewCustomNameNidOptNativeFromFace(that CustomNameNidOptNativeFace) *CustomN } type CustomNameNinOptNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *float64 GetFieldB() *float32 GetFieldC() *int32 @@ -17955,11 +17960,11 @@ type CustomNameNinOptNativeFace interface { GetFieldO() []byte } -func (this *CustomNameNinOptNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinOptNative) Proto() proto.Message { return this } -func (this *CustomNameNinOptNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinOptNative) TestProto() proto.Message { return NewCustomNameNinOptNativeFromFace(this) } @@ -18044,7 +18049,7 @@ func NewCustomNameNinOptNativeFromFace(that CustomNameNinOptNativeFace) *CustomN } type CustomNameNinRepNativeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() []float64 GetFieldB() []float32 GetFieldC() []int32 @@ -18062,11 +18067,11 @@ type CustomNameNinRepNativeFace interface { GetFieldO() [][]byte } -func (this *CustomNameNinRepNative) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinRepNative) Proto() proto.Message { return this } -func (this *CustomNameNinRepNative) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinRepNative) TestProto() proto.Message { return NewCustomNameNinRepNativeFromFace(this) } @@ -18151,7 +18156,7 @@ func NewCustomNameNinRepNativeFromFace(that CustomNameNinRepNativeFace) *CustomN } type CustomNameNinStructFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *float64 GetFieldB() *float32 GetFieldC() *NidOptNative @@ -18164,11 +18169,11 @@ type CustomNameNinStructFace interface { GetFieldJ() []byte } -func (this *CustomNameNinStruct) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinStruct) Proto() proto.Message { return this } -func (this *CustomNameNinStruct) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinStruct) TestProto() proto.Message { return NewCustomNameNinStructFromFace(this) } @@ -18228,18 +18233,18 @@ func NewCustomNameNinStructFromFace(that CustomNameNinStructFace) *CustomNameNin } type CustomNameCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *Uuid GetFieldB() *github_com_gogo_protobuf_test_custom.Uint128 GetFieldC() []Uuid GetFieldD() []github_com_gogo_protobuf_test_custom.Uint128 } -func (this *CustomNameCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameCustomType) Proto() proto.Message { return this } -func (this *CustomNameCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameCustomType) TestProto() proto.Message { return NewCustomNameCustomTypeFromFace(this) } @@ -18269,17 +18274,17 @@ func NewCustomNameCustomTypeFromFace(that CustomNameCustomTypeFace) *CustomNameC } type CustomNameNinEmbeddedStructUnionFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetNidOptNative() *NidOptNative GetFieldA() *NinOptNative GetFieldB() *bool } -func (this *CustomNameNinEmbeddedStructUnion) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinEmbeddedStructUnion) Proto() proto.Message { return this } -func (this *CustomNameNinEmbeddedStructUnion) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameNinEmbeddedStructUnion) TestProto() proto.Message { return NewCustomNameNinEmbeddedStructUnionFromFace(this) } @@ -18304,16 +18309,16 @@ func NewCustomNameNinEmbeddedStructUnionFromFace(that CustomNameNinEmbeddedStruc } type CustomNameEnumFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetFieldA() *TheTestEnum GetFieldB() []TheTestEnum } -func (this *CustomNameEnum) Proto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameEnum) Proto() proto.Message { return this } -func (this *CustomNameEnum) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *CustomNameEnum) TestProto() proto.Message { return NewCustomNameEnumFromFace(this) } @@ -18333,15 +18338,15 @@ func NewCustomNameEnumFromFace(that CustomNameEnumFace) *CustomNameEnum { } type UnrecognizedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *string } -func (this *Unrecognized) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Unrecognized) Proto() proto.Message { return this } -func (this *Unrecognized) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Unrecognized) TestProto() proto.Message { return NewUnrecognizedFromFace(this) } @@ -18356,16 +18361,16 @@ func NewUnrecognizedFromFace(that UnrecognizedFace) *Unrecognized { } type UnrecognizedWithInnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetEmbedded() []*UnrecognizedWithInner_Inner GetField2() *string } -func (this *UnrecognizedWithInner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner) Proto() proto.Message { return this } -func (this *UnrecognizedWithInner) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner) TestProto() proto.Message { return NewUnrecognizedWithInnerFromFace(this) } @@ -18385,15 +18390,15 @@ func NewUnrecognizedWithInnerFromFace(that UnrecognizedWithInnerFace) *Unrecogni } type UnrecognizedWithInner_InnerFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *uint32 } -func (this *UnrecognizedWithInner_Inner) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner_Inner) Proto() proto.Message { return this } -func (this *UnrecognizedWithInner_Inner) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithInner_Inner) TestProto() proto.Message { return NewUnrecognizedWithInner_InnerFromFace(this) } @@ -18408,16 +18413,16 @@ func NewUnrecognizedWithInner_InnerFromFace(that UnrecognizedWithInner_InnerFace } type UnrecognizedWithEmbedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetUnrecognizedWithEmbed_Embedded() UnrecognizedWithEmbed_Embedded GetField2() *string } -func (this *UnrecognizedWithEmbed) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed) Proto() proto.Message { return this } -func (this *UnrecognizedWithEmbed) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed) TestProto() proto.Message { return NewUnrecognizedWithEmbedFromFace(this) } @@ -18437,15 +18442,15 @@ func NewUnrecognizedWithEmbedFromFace(that UnrecognizedWithEmbedFace) *Unrecogni } type UnrecognizedWithEmbed_EmbeddedFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *uint32 } -func (this *UnrecognizedWithEmbed_Embedded) Proto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed_Embedded) Proto() proto.Message { return this } -func (this *UnrecognizedWithEmbed_Embedded) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *UnrecognizedWithEmbed_Embedded) TestProto() proto.Message { return NewUnrecognizedWithEmbed_EmbeddedFromFace(this) } @@ -18460,16 +18465,16 @@ func NewUnrecognizedWithEmbed_EmbeddedFromFace(that UnrecognizedWithEmbed_Embedd } type NodeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetLabel() *string GetChildren() []*Node } -func (this *Node) Proto() github_com_gogo_protobuf_proto.Message { +func (this *Node) Proto() proto.Message { return this } -func (this *Node) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *Node) TestProto() proto.Message { return NewNodeFromFace(this) } @@ -18489,15 +18494,15 @@ func NewNodeFromFace(that NodeFace) *Node { } type NonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *T } -func (this *NonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NonByteCustomType) Proto() proto.Message { return this } -func (this *NonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NonByteCustomType) TestProto() proto.Message { return NewNonByteCustomTypeFromFace(this) } @@ -18512,15 +18517,15 @@ func NewNonByteCustomTypeFromFace(that NonByteCustomTypeFace) *NonByteCustomType } type NidOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() T } -func (this *NidOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNonByteCustomType) Proto() proto.Message { return this } -func (this *NidOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidOptNonByteCustomType) TestProto() proto.Message { return NewNidOptNonByteCustomTypeFromFace(this) } @@ -18535,15 +18540,15 @@ func NewNidOptNonByteCustomTypeFromFace(that NidOptNonByteCustomTypeFace) *NidOp } type NinOptNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() *T } -func (this *NinOptNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNonByteCustomType) Proto() proto.Message { return this } -func (this *NinOptNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinOptNonByteCustomType) TestProto() proto.Message { return NewNinOptNonByteCustomTypeFromFace(this) } @@ -18558,15 +18563,15 @@ func NewNinOptNonByteCustomTypeFromFace(that NinOptNonByteCustomTypeFace) *NinOp } type NidRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []T } -func (this *NidRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) Proto() proto.Message { return this } -func (this *NidRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NidRepNonByteCustomType) TestProto() proto.Message { return NewNidRepNonByteCustomTypeFromFace(this) } @@ -18581,15 +18586,15 @@ func NewNidRepNonByteCustomTypeFromFace(that NidRepNonByteCustomTypeFace) *NidRe } type NinRepNonByteCustomTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField1() []T } -func (this *NinRepNonByteCustomType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) Proto() proto.Message { return this } -func (this *NinRepNonByteCustomType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *NinRepNonByteCustomType) TestProto() proto.Message { return NewNinRepNonByteCustomTypeFromFace(this) } @@ -18604,15 +18609,15 @@ func NewNinRepNonByteCustomTypeFromFace(that NinRepNonByteCustomTypeFace) *NinRe } type ProtoTypeFace interface { - Proto() github_com_gogo_protobuf_proto.Message + Proto() proto.Message GetField2() *string } -func (this *ProtoType) Proto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) Proto() proto.Message { return this } -func (this *ProtoType) TestProto() github_com_gogo_protobuf_proto.Message { +func (this *ProtoType) TestProto() proto.Message { return NewProtoTypeFromFace(this) } @@ -19003,10 +19008,18 @@ func (this *NidRepStruct) GoString() string { s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+fmt.Sprintf("%#v", this.Field3)+",\n") + vs := make([]*NidOptNative, len(this.Field3)) + for i := range vs { + vs[i] = &this.Field3[i] + } + s = append(s, "Field3: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field4 != nil { - s = append(s, "Field4: "+fmt.Sprintf("%#v", this.Field4)+",\n") + vs := make([]*NinOptNative, len(this.Field4)) + for i := range vs { + vs[i] = &this.Field4[i] + } + s = append(s, "Field4: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field6 != nil { s = append(s, "Field6: "+fmt.Sprintf("%#v", this.Field6)+",\n") @@ -19015,7 +19028,11 @@ func (this *NidRepStruct) GoString() string { s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\n") } if this.Field8 != nil { - s = append(s, "Field8: "+fmt.Sprintf("%#v", this.Field8)+",\n") + vs := make([]*NidOptNative, len(this.Field8)) + for i := range vs { + vs[i] = &this.Field8[i] + } + s = append(s, "Field8: "+fmt.Sprintf("%#v", vs)+",\n") } if this.Field13 != nil { s = append(s, "Field13: "+fmt.Sprintf("%#v", this.Field13)+",\n") @@ -19120,7 +19137,11 @@ func (this *NidNestedStruct) GoString() string { s = append(s, "&test.NidNestedStruct{") s = append(s, "Field1: "+strings.Replace(this.Field1.GoString(), `&`, ``, 1)+",\n") if this.Field2 != nil { - s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n") + vs := make([]*NidRepStruct, len(this.Field2)) + for i := range vs { + vs[i] = &this.Field2[i] + } + s = append(s, "Field2: "+fmt.Sprintf("%#v", vs)+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19505,13 +19526,13 @@ func (this *NinOptEnum) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.NinOptEnum{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19568,13 +19589,13 @@ func (this *NinOptEnumDefault) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.NinOptEnumDefault{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "TheTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19589,13 +19610,13 @@ func (this *AnotherNinOptEnum) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.AnotherNinOptEnum{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19610,13 +19631,13 @@ func (this *AnotherNinOptEnumDefault) GoString() string { s := make([]string, 0, 7) s = append(s, "&test.AnotherNinOptEnumDefault{") if this.Field1 != nil { - s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\n") + s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "AnotherTestEnum")+",\n") } if this.Field2 != nil { - s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "test.YetAnotherTestEnum")+",\n") + s = append(s, "Field2: "+valueToGoStringThetest(this.Field2, "YetAnotherTestEnum")+",\n") } if this.Field3 != nil { - s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "test.YetYetAnotherTestEnum")+",\n") + s = append(s, "Field3: "+valueToGoStringThetest(this.Field3, "YetYetAnotherTestEnum")+",\n") } if this.XXX_unrecognized != nil { s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n") @@ -19687,7 +19708,7 @@ func (this *NestedDefinition) GoString() string { s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "int64")+",\n") } if this.EnumField != nil { - s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "test.NestedDefinition_NestedEnum")+",\n") + s = append(s, "EnumField: "+valueToGoStringThetest(this.EnumField, "NestedDefinition_NestedEnum")+",\n") } if this.NNM != nil { s = append(s, "NNM: "+fmt.Sprintf("%#v", this.NNM)+",\n") @@ -19744,7 +19765,7 @@ func (this *NestedScope) GoString() string { s = append(s, "A: "+fmt.Sprintf("%#v", this.A)+",\n") } if this.B != nil { - s = append(s, "B: "+valueToGoStringThetest(this.B, "test.NestedDefinition_NestedEnum")+",\n") + s = append(s, "B: "+valueToGoStringThetest(this.B, "NestedDefinition_NestedEnum")+",\n") } if this.C != nil { s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n") @@ -20060,7 +20081,7 @@ func (this *CustomNameEnum) GoString() string { s := make([]string, 0, 6) s = append(s, "&test.CustomNameEnum{") if this.FieldA != nil { - s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "test.TheTestEnum")+",\n") + s = append(s, "FieldA: "+valueToGoStringThetest(this.FieldA, "TheTestEnum")+",\n") } if this.FieldB != nil { s = append(s, "FieldB: "+fmt.Sprintf("%#v", this.FieldB)+",\n") @@ -20273,8 +20294,8 @@ func valueToGoStringThetest(v interface{}, typ string) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv) } -func extensionToGoStringThetest(m github_com_gogo_protobuf_proto.Message) string { - e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m) +func extensionToGoStringThetest(m proto.Message) string { + e := proto.GetUnsafeExtensionsMap(m) if e == nil { return "nil" } @@ -21809,7 +21830,7 @@ func NewPopulatedMyExtendable(r randyThetest, easy bool) *MyExtendable { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -21853,7 +21874,7 @@ func NewPopulatedOtherExtenable(r randyThetest, easy bool) *OtherExtenable { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -22467,7 +22488,7 @@ func NewPopulatedNoExtensionsMap(r randyThetest, easy bool) *NoExtensionsMap { wire = 5 } dAtA := randFieldThetest(nil, r, fieldNumber, wire) - github_com_gogo_protobuf_proto.SetRawExtension(this, int32(fieldNumber), dAtA) + proto.SetRawExtension(this, int32(fieldNumber), dAtA) } } if !easy && r.Intn(10) != 0 { @@ -23818,7 +23839,7 @@ func (m *MyExtendable) Size() (n int) { if m.Field1 != nil { n += 1 + sovThetest(uint64(*m.Field1)) } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) + n += proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -23838,7 +23859,7 @@ func (m *OtherExtenable) Size() (n int) { l = m.M.Size() n += 1 + l + sovThetest(uint64(l)) } - n += github_com_gogo_protobuf_proto.SizeOfInternalExtension(m) + n += proto.SizeOfInternalExtension(m) if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -25054,7 +25075,7 @@ func (this *MyExtendable) String() string { } s := strings.Join([]string{`&MyExtendable{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, + `XXX_InternalExtensions:` + proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -25068,7 +25089,7 @@ func (this *OtherExtenable) String() string { `Field2:` + valueToStringThetest(this.Field2) + `,`, `Field13:` + valueToStringThetest(this.Field13) + `,`, `M:` + strings.Replace(fmt.Sprintf("%v", this.M), "MyExtendable", "MyExtendable", 1) + `,`, - `XXX_InternalExtensions:` + github_com_gogo_protobuf_proto.StringFromInternalExtension(this) + `,`, + `XXX_InternalExtensions:` + proto.StringFromInternalExtension(this) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -25300,7 +25321,7 @@ func (this *NoExtensionsMap) String() string { } s := strings.Join([]string{`&NoExtensionsMap{`, `Field1:` + valueToStringThetest(this.Field1) + `,`, - `XXX_extensions:` + github_com_gogo_protobuf_proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, + `XXX_extensions:` + proto.StringFromExtensionsBytes(this.XXX_extensions) + `,`, `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`, `}`, }, "") @@ -25707,197 +25728,197 @@ func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool { func init() { proto.RegisterFile("thetest.proto", fileDescriptorThetest) } var fileDescriptorThetest = []byte{ - // 3067 bytes of a gzipped FileDescriptorProto + // 3070 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7, - 0xf5, 0xe7, 0xec, 0x50, 0x0e, 0xf5, 0xf4, 0x45, 0x6f, 0x62, 0x65, 0xc1, 0xe8, 0xbf, 0xa2, 0x37, - 0xb2, 0xfe, 0x0c, 0x11, 0x4b, 0x14, 0x45, 0xc9, 0x32, 0xd3, 0xa4, 0x10, 0x3f, 0xdc, 0xc8, 0x8d, - 0x28, 0x83, 0x91, 0xdb, 0x1a, 0x28, 0x50, 0xd0, 0xe2, 0x5a, 0x22, 0x2a, 0x2f, 0x05, 0x72, 0x95, - 0xc6, 0x3d, 0x14, 0x41, 0x0e, 0x45, 0xd0, 0x6b, 0xd1, 0x63, 0x1b, 0x17, 0x45, 0x81, 0xf4, 0x96, - 0x43, 0x51, 0x14, 0x45, 0xd1, 0xf8, 0x52, 0x40, 0xbd, 0x19, 0x3d, 0x15, 0x41, 0x21, 0x44, 0xcc, - 0x25, 0xc7, 0xf4, 0xd4, 0x1c, 0x72, 0x28, 0x76, 0x77, 0x76, 0x76, 0x66, 0x76, 0x97, 0xbb, 0xb4, - 0x9c, 0x36, 0x17, 0x5b, 0x9c, 0xf7, 0xde, 0xcc, 0xdb, 0xf7, 0xfb, 0xbd, 0xb7, 0x6f, 0x67, 0x06, - 0xa6, 0xcc, 0x03, 0xdd, 0xd4, 0xfb, 0xe6, 0xd2, 0x51, 0xaf, 0x6b, 0x76, 0xe5, 0xa4, 0xf5, 0x77, - 0xe6, 0xea, 0x7e, 0xc7, 0x3c, 0x38, 0xbe, 0xbb, 0xb4, 0xd7, 0xbd, 0xbf, 0xbc, 0xdf, 0xdd, 0xef, - 0x2e, 0xdb, 0xc2, 0xbb, 0xc7, 0xf7, 0xec, 0x5f, 0xf6, 0x0f, 0xfb, 0x2f, 0xc7, 0x48, 0xfb, 0x27, - 0x86, 0xc9, 0x46, 0xa7, 0xbd, 0x73, 0x64, 0x36, 0x5a, 0x66, 0xe7, 0x2d, 0x5d, 0x9e, 0x83, 0x0b, - 0x37, 0x3a, 0xfa, 0x61, 0x7b, 0x45, 0x41, 0x59, 0x94, 0x43, 0x95, 0xe4, 0xc9, 0xe9, 0x7c, 0xa2, - 0x49, 0xc6, 0xa8, 0xb4, 0xa8, 0x48, 0x59, 0x94, 0x93, 0x38, 0x69, 0x91, 0x4a, 0x57, 0x15, 0x9c, - 0x45, 0xb9, 0x31, 0x4e, 0xba, 0x4a, 0xa5, 0x25, 0x25, 0x99, 0x45, 0x39, 0xcc, 0x49, 0x4b, 0x54, - 0xba, 0xa6, 0x8c, 0x65, 0x51, 0x6e, 0x8a, 0x93, 0xae, 0x51, 0xe9, 0xba, 0x72, 0x21, 0x8b, 0x72, - 0x49, 0x4e, 0xba, 0x4e, 0xa5, 0xd7, 0x94, 0x67, 0xb2, 0x28, 0x77, 0x91, 0x93, 0x5e, 0xa3, 0xd2, - 0x0d, 0x25, 0x95, 0x45, 0x39, 0x99, 0x93, 0x6e, 0x50, 0xe9, 0x75, 0x65, 0x3c, 0x8b, 0x72, 0xcf, - 0x70, 0xd2, 0xeb, 0xb2, 0x0a, 0xcf, 0x38, 0x4f, 0x5e, 0x50, 0x20, 0x8b, 0x72, 0x33, 0x44, 0xec, - 0x0e, 0x7a, 0xf2, 0x15, 0x65, 0x22, 0x8b, 0x72, 0x17, 0x78, 0xf9, 0x8a, 0x27, 0x2f, 0x2a, 0x93, - 0x59, 0x94, 0x4b, 0xf3, 0xf2, 0xa2, 0x27, 0x5f, 0x55, 0xa6, 0xb2, 0x28, 0x97, 0xe2, 0xe5, 0xab, - 0x9e, 0xbc, 0xa4, 0x4c, 0x67, 0x51, 0x6e, 0x9c, 0x97, 0x97, 0x3c, 0xf9, 0x9a, 0x32, 0x93, 0x45, - 0xb9, 0x49, 0x5e, 0xbe, 0xa6, 0xbd, 0x6b, 0xc3, 0x6b, 0x78, 0xf0, 0xce, 0xf2, 0xf0, 0x52, 0x60, - 0x67, 0x79, 0x60, 0x29, 0xa4, 0xb3, 0x3c, 0xa4, 0x14, 0xcc, 0x59, 0x1e, 0x4c, 0x0a, 0xe3, 0x2c, - 0x0f, 0x23, 0x05, 0x70, 0x96, 0x07, 0x90, 0x42, 0x37, 0xcb, 0x43, 0x47, 0x41, 0x9b, 0xe5, 0x41, - 0xa3, 0x70, 0xcd, 0xf2, 0x70, 0x51, 0xa0, 0x14, 0x01, 0x28, 0x0f, 0x22, 0x45, 0x80, 0xc8, 0x03, - 0x47, 0x11, 0xc0, 0xf1, 0x60, 0x51, 0x04, 0x58, 0x3c, 0x40, 0x14, 0x01, 0x10, 0x0f, 0x0a, 0x45, - 0x80, 0xc2, 0x03, 0x81, 0xe4, 0x58, 0x53, 0x3f, 0x0a, 0xc8, 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, - 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0x43, - 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x3c, 0xc7, 0x70, 0x44, 0x8e, 0xe1, 0x88, 0x1c, 0xc3, 0x11, - 0x39, 0x86, 0x23, 0x72, 0x0c, 0x47, 0xe4, 0x18, 0x0e, 0xcd, 0x31, 0x0f, 0xde, 0x59, 0x1e, 0xde, - 0xc0, 0x1c, 0xc3, 0x21, 0x39, 0x86, 0x43, 0x72, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, - 0x92, 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xb0, 0x1c, 0xc3, 0xa1, 0x39, 0x86, 0x43, - 0x73, 0x0c, 0x87, 0xe6, 0x18, 0x0e, 0xcd, 0x31, 0x1c, 0x9a, 0x63, 0x98, 0xcd, 0xb1, 0x3f, 0x63, - 0x90, 0x9d, 0x1c, 0xbb, 0xd5, 0xda, 0xfb, 0xa1, 0xde, 0x26, 0x50, 0xa8, 0x42, 0xa6, 0x5d, 0xb0, - 0xa0, 0x4b, 0x7b, 0x90, 0xa8, 0x42, 0xae, 0xf1, 0xf2, 0x22, 0x95, 0xbb, 0xd9, 0xc6, 0xcb, 0x57, - 0xa9, 0xdc, 0xcd, 0x37, 0x5e, 0x5e, 0xa2, 0x72, 0x37, 0xe3, 0x78, 0xf9, 0x1a, 0x95, 0xbb, 0x39, - 0xc7, 0xcb, 0xd7, 0xa9, 0xdc, 0xcd, 0x3a, 0x5e, 0x7e, 0x8d, 0xca, 0xdd, 0xbc, 0xe3, 0xe5, 0x1b, - 0x54, 0xee, 0x66, 0x1e, 0x2f, 0xbf, 0x2e, 0x67, 0xc5, 0xdc, 0x73, 0x15, 0x28, 0xb4, 0x59, 0x31, - 0xfb, 0x04, 0x8d, 0x15, 0x4f, 0xc3, 0xcd, 0x3f, 0x41, 0xa3, 0xe8, 0x69, 0xb8, 0x19, 0x28, 0x68, - 0xac, 0x6a, 0xef, 0xd9, 0xf0, 0x19, 0x22, 0x7c, 0x19, 0x01, 0x3e, 0x89, 0x81, 0x2e, 0x23, 0x40, - 0x27, 0x31, 0xb0, 0x65, 0x04, 0xd8, 0x24, 0x06, 0xb2, 0x8c, 0x00, 0x99, 0xc4, 0xc0, 0x95, 0x11, - 0xe0, 0x92, 0x18, 0xa8, 0x32, 0x02, 0x54, 0x12, 0x03, 0x53, 0x46, 0x80, 0x49, 0x62, 0x20, 0xca, - 0x08, 0x10, 0x49, 0x0c, 0x3c, 0x19, 0x01, 0x1e, 0x89, 0x81, 0x66, 0x4e, 0x84, 0x46, 0x62, 0x61, - 0x99, 0x13, 0x61, 0x91, 0x58, 0x48, 0xe6, 0x44, 0x48, 0x24, 0x16, 0x8e, 0x39, 0x11, 0x0e, 0x89, - 0x85, 0xe2, 0x4b, 0xc9, 0xed, 0x08, 0xdf, 0x34, 0x7b, 0xc7, 0x7b, 0xe6, 0xb9, 0x3a, 0xc2, 0x02, - 0xd7, 0x3e, 0x4c, 0x14, 0xe5, 0x25, 0xbb, 0x61, 0x65, 0x3b, 0x4e, 0xe1, 0x0d, 0x56, 0xe0, 0x1a, - 0x0b, 0xc6, 0xc2, 0x08, 0xb6, 0x28, 0x9d, 0xab, 0x37, 0x2c, 0x70, 0x6d, 0x46, 0xb4, 0x7f, 0x1b, - 0x5f, 0x79, 0xc7, 0xf6, 0x48, 0x72, 0x3b, 0x36, 0x12, 0xfe, 0x51, 0x3b, 0xb6, 0x7c, 0x74, 0xc8, - 0x69, 0xb0, 0xf3, 0xd1, 0xc1, 0xf6, 0xbd, 0x75, 0xe2, 0x76, 0x70, 0xf9, 0xe8, 0xd0, 0xd2, 0xa0, - 0x3e, 0xdd, 0x7e, 0x8b, 0x30, 0xb8, 0xa9, 0x1f, 0x05, 0x30, 0x78, 0xd4, 0x7e, 0xab, 0xc0, 0x95, - 0x92, 0x51, 0x19, 0x8c, 0x47, 0x66, 0xf0, 0xa8, 0x9d, 0x57, 0x81, 0x2b, 0x2f, 0x23, 0x33, 0xf8, - 0x2b, 0xe8, 0x87, 0x08, 0x83, 0xbd, 0xf0, 0x8f, 0xda, 0x0f, 0xe5, 0xa3, 0x43, 0x1e, 0xc8, 0x60, - 0x3c, 0x02, 0x83, 0xe3, 0xf4, 0x47, 0xf9, 0xe8, 0xd0, 0x06, 0x33, 0xf8, 0xdc, 0xdd, 0xcc, 0xfb, - 0x08, 0x2e, 0x36, 0x3a, 0xed, 0xfa, 0xfd, 0xbb, 0x7a, 0xbb, 0xad, 0xb7, 0x49, 0x1c, 0x0b, 0x5c, - 0x25, 0x08, 0x81, 0xfa, 0xf1, 0xe9, 0xbc, 0x17, 0xe1, 0x35, 0x48, 0x39, 0x31, 0x2d, 0x14, 0x94, - 0x13, 0x14, 0x51, 0xe1, 0xa8, 0xaa, 0x7c, 0xd9, 0x35, 0x5b, 0x29, 0x28, 0x7f, 0x47, 0x4c, 0x95, - 0xa3, 0xc3, 0xda, 0xcf, 0x6d, 0x0f, 0x8d, 0x73, 0x7b, 0xb8, 0x1c, 0xcb, 0x43, 0xc6, 0xb7, 0x17, - 0x7c, 0xbe, 0x31, 0x5e, 0x1d, 0xc3, 0x4c, 0xa3, 0xd3, 0x6e, 0xe8, 0x7d, 0x33, 0x9e, 0x4b, 0x8e, - 0x8e, 0x50, 0x0f, 0x0a, 0x1c, 0x2d, 0x59, 0x0b, 0x4a, 0x69, 0xbe, 0x46, 0x68, 0x1d, 0x6b, 0x59, - 0x83, 0x5b, 0x36, 0x1f, 0xb6, 0xac, 0x57, 0xd9, 0xe9, 0x82, 0xf9, 0xb0, 0x05, 0xbd, 0x1c, 0xa2, - 0x4b, 0xbd, 0xed, 0xbe, 0x9c, 0xab, 0xc7, 0x7d, 0xb3, 0x7b, 0x5f, 0x9e, 0x03, 0x69, 0xab, 0x6d, - 0xaf, 0x31, 0x59, 0x99, 0xb4, 0x9c, 0xfa, 0xf8, 0x74, 0x3e, 0x79, 0xfb, 0xb8, 0xd3, 0x6e, 0x4a, - 0x5b, 0x6d, 0xf9, 0x26, 0x8c, 0x7d, 0xa7, 0x75, 0x78, 0xac, 0xdb, 0xaf, 0x88, 0xc9, 0x4a, 0x89, - 0x28, 0xbc, 0x1c, 0xba, 0x47, 0x64, 0x2d, 0xbc, 0xbc, 0x67, 0x4f, 0xbd, 0x74, 0xbb, 0x63, 0x98, - 0x2b, 0xc5, 0x8d, 0xa6, 0x33, 0x85, 0xf6, 0x7d, 0x00, 0x67, 0xcd, 0x5a, 0xab, 0x7f, 0x20, 0x37, - 0xdc, 0x99, 0x9d, 0xa5, 0x37, 0x3e, 0x3e, 0x9d, 0x2f, 0xc5, 0x99, 0xf5, 0x6a, 0xbb, 0xd5, 0x3f, - 0xb8, 0x6a, 0x3e, 0x38, 0xd2, 0x97, 0x2a, 0x0f, 0x4c, 0xbd, 0xef, 0xce, 0x7e, 0xe4, 0xbe, 0xf5, - 0xc8, 0x73, 0x29, 0xcc, 0x73, 0xa5, 0xb8, 0x67, 0xba, 0xc1, 0x3f, 0x53, 0xe1, 0x49, 0x9f, 0xe7, - 0x6d, 0xf7, 0x25, 0x21, 0x44, 0x12, 0x47, 0x45, 0x12, 0x9f, 0x37, 0x92, 0x47, 0x6e, 0x7d, 0x14, - 0x9e, 0x15, 0x0f, 0x7b, 0x56, 0x7c, 0x9e, 0x67, 0xfd, 0xb7, 0x93, 0xad, 0x34, 0x9f, 0x6e, 0x1b, - 0x9d, 0xae, 0xf1, 0xb5, 0xdb, 0x0b, 0x7a, 0xaa, 0x5d, 0x40, 0x39, 0x79, 0xf2, 0x70, 0x1e, 0x69, - 0xef, 0x4b, 0xee, 0x93, 0x3b, 0x89, 0xf4, 0x64, 0x4f, 0xfe, 0x75, 0xe9, 0xa9, 0xbe, 0x8a, 0x08, - 0xfd, 0x0a, 0xc1, 0xac, 0xaf, 0x92, 0x3b, 0x61, 0x7a, 0xba, 0xe5, 0xdc, 0x18, 0xb5, 0x9c, 0x13, - 0x07, 0x7f, 0x8f, 0xe0, 0x39, 0xa1, 0xbc, 0x3a, 0xee, 0x2d, 0x0b, 0xee, 0x3d, 0xef, 0x5f, 0xc9, - 0x56, 0x64, 0xbc, 0x63, 0xe1, 0x15, 0x0c, 0x98, 0x99, 0x29, 0xee, 0x25, 0x01, 0xf7, 0x39, 0x6a, - 0x10, 0x10, 0x2e, 0x97, 0x01, 0xc4, 0xed, 0x2e, 0x24, 0x77, 0x7b, 0xba, 0x2e, 0xab, 0x20, 0xed, - 0xf4, 0x88, 0x87, 0xd3, 0x8e, 0xfd, 0x4e, 0xaf, 0xd2, 0x6b, 0x19, 0x7b, 0x07, 0x4d, 0x69, 0xa7, - 0x27, 0x5f, 0x06, 0xbc, 0x69, 0xb4, 0x89, 0x47, 0x33, 0x8e, 0xc2, 0xa6, 0xd1, 0x26, 0x1a, 0x96, - 0x4c, 0x56, 0x21, 0xf9, 0x86, 0xde, 0xba, 0x47, 0x9c, 0x00, 0x47, 0xc7, 0x1a, 0x69, 0xda, 0xe3, - 0x64, 0xc1, 0xef, 0x41, 0xca, 0x9d, 0x58, 0x5e, 0xb0, 0x2c, 0xee, 0x99, 0x64, 0x59, 0x62, 0x61, - 0xb9, 0x43, 0xde, 0x5c, 0xb6, 0x54, 0x5e, 0x84, 0xb1, 0x66, 0x67, 0xff, 0xc0, 0x24, 0x8b, 0xfb, - 0xd5, 0x1c, 0xb1, 0x76, 0x07, 0xc6, 0xa9, 0x47, 0x4f, 0x79, 0xea, 0x9a, 0xf3, 0x68, 0x72, 0x86, - 0x7d, 0x9f, 0xb8, 0xfb, 0x96, 0xce, 0x90, 0x9c, 0x85, 0xd4, 0x9b, 0x66, 0xcf, 0x2b, 0xfa, 0x6e, - 0x47, 0x4a, 0x47, 0xb5, 0x77, 0x11, 0xa4, 0x6a, 0xba, 0x7e, 0x64, 0x07, 0xfc, 0x0a, 0x24, 0x6b, - 0xdd, 0x1f, 0x19, 0xc4, 0xc1, 0x8b, 0x24, 0xa2, 0x96, 0x98, 0xc4, 0xd4, 0x16, 0xcb, 0x57, 0xd8, - 0xb8, 0x3f, 0x4b, 0xe3, 0xce, 0xe8, 0xd9, 0xb1, 0xd7, 0xb8, 0xd8, 0x13, 0x00, 0x2d, 0x25, 0x5f, - 0xfc, 0xaf, 0xc1, 0x04, 0xb3, 0x8a, 0x9c, 0x23, 0x6e, 0x48, 0xa2, 0x21, 0x1b, 0x2b, 0x4b, 0x43, - 0xd3, 0x61, 0x8a, 0x5b, 0xd8, 0x32, 0x65, 0x42, 0x1c, 0x62, 0x6a, 0x87, 0x39, 0xcf, 0x87, 0x39, - 0x58, 0x95, 0x84, 0xba, 0xe0, 0xc4, 0xc8, 0x0e, 0xf7, 0x82, 0x43, 0xce, 0x70, 0x10, 0xad, 0xbf, - 0xb5, 0x31, 0xc0, 0x8d, 0xce, 0xa1, 0xf6, 0x2a, 0x80, 0x93, 0xf2, 0x75, 0xe3, 0xf8, 0xbe, 0x90, - 0x75, 0xd3, 0x6e, 0x80, 0x77, 0x0f, 0xf4, 0x5d, 0xbd, 0x6f, 0xab, 0xf0, 0xfd, 0x94, 0x55, 0x60, - 0xc0, 0x49, 0x31, 0xdb, 0xfe, 0xa5, 0x48, 0xfb, 0xc0, 0x4e, 0xcc, 0x52, 0x55, 0x1c, 0xd5, 0x3b, - 0xba, 0xb9, 0x69, 0x74, 0xcd, 0x03, 0xbd, 0x27, 0x58, 0x14, 0xe5, 0x55, 0x2e, 0x61, 0xa7, 0x8b, - 0x2f, 0x50, 0x8b, 0x50, 0xa3, 0x55, 0xed, 0x43, 0xdb, 0x41, 0xab, 0x15, 0xf0, 0x3d, 0x20, 0x8e, - 0xf1, 0x80, 0xf2, 0x3a, 0xd7, 0xbf, 0x0d, 0x71, 0x53, 0xf8, 0xb4, 0xbc, 0xce, 0x7d, 0xe7, 0x0c, - 0x77, 0x96, 0xff, 0xc6, 0x74, 0x63, 0xea, 0xba, 0xfc, 0x52, 0xa4, 0xcb, 0x21, 0xdd, 0xed, 0xa8, - 0x31, 0xc5, 0x71, 0x63, 0xfa, 0x27, 0xda, 0x71, 0x58, 0xc3, 0x35, 0xfd, 0x5e, 0xeb, 0xf8, 0xd0, - 0x94, 0x5f, 0x8e, 0xc4, 0xbe, 0x8c, 0xaa, 0xd4, 0xd5, 0x52, 0x5c, 0xf8, 0xcb, 0x52, 0xa5, 0x42, - 0xdd, 0xbd, 0x36, 0x02, 0x05, 0xca, 0x52, 0xb5, 0x4a, 0xcb, 0x76, 0xea, 0xbd, 0x87, 0xf3, 0xe8, - 0x83, 0x87, 0xf3, 0x09, 0xed, 0x77, 0x08, 0x2e, 0x12, 0x4d, 0x86, 0xb8, 0x57, 0x05, 0xe7, 0x2f, - 0xb9, 0x35, 0x23, 0x28, 0x02, 0xff, 0x35, 0xf2, 0xfe, 0x15, 0x81, 0xe2, 0xf3, 0xd5, 0x8d, 0x77, - 0x21, 0x96, 0xcb, 0x65, 0x54, 0xff, 0xdf, 0xc7, 0xfc, 0x0e, 0x8c, 0xed, 0x76, 0xee, 0xeb, 0x3d, - 0xeb, 0x4d, 0x60, 0xfd, 0xe1, 0xb8, 0xec, 0x1e, 0xe6, 0x38, 0x43, 0xae, 0xcc, 0x71, 0x8e, 0x93, - 0x15, 0x65, 0x05, 0x92, 0xb5, 0x96, 0xd9, 0xb2, 0x3d, 0x98, 0xa4, 0xf5, 0xb5, 0x65, 0xb6, 0xb4, - 0x55, 0x98, 0xdc, 0x7e, 0x50, 0x7f, 0xdb, 0xd4, 0x8d, 0x76, 0xeb, 0xee, 0xa1, 0x78, 0x06, 0xea, - 0xf6, 0xab, 0x2b, 0xf9, 0xb1, 0x54, 0x3b, 0x7d, 0x82, 0xca, 0x49, 0xdb, 0x9f, 0xb7, 0x60, 0x7a, - 0xc7, 0x72, 0xdb, 0xb6, 0xe3, 0xcc, 0x9c, 0xd5, 0x31, 0x7d, 0x78, 0xa1, 0x29, 0xc3, 0x5e, 0x53, - 0x96, 0x05, 0xb4, 0xcd, 0xb7, 0x4e, 0xac, 0x1f, 0x4d, 0xb4, 0x9d, 0x4f, 0xa6, 0xa6, 0xd3, 0x17, - 0xf3, 0xc9, 0x14, 0xa4, 0xa7, 0xc8, 0xba, 0x7f, 0xc3, 0x90, 0x76, 0x5a, 0x9d, 0x9a, 0x7e, 0xaf, - 0x63, 0x74, 0x4c, 0x7f, 0xbf, 0x4a, 0x3d, 0x96, 0xbf, 0x09, 0xe3, 0x56, 0x48, 0xed, 0x5f, 0x04, - 0xb0, 0xcb, 0xa4, 0x45, 0x11, 0xa6, 0x20, 0x03, 0x36, 0x75, 0x3c, 0x1b, 0xf9, 0x06, 0xe0, 0x46, - 0x63, 0x9b, 0xbc, 0xdc, 0x4a, 0x43, 0x4d, 0xb7, 0xf5, 0x7e, 0xbf, 0xb5, 0xaf, 0x93, 0x5f, 0x64, - 0xac, 0xbf, 0xdf, 0xb4, 0x26, 0x90, 0x4b, 0x20, 0x35, 0xb6, 0x49, 0xc3, 0xbb, 0x10, 0x67, 0x9a, - 0xa6, 0xd4, 0xd8, 0xce, 0xfc, 0x05, 0xc1, 0x14, 0x37, 0x2a, 0x6b, 0x30, 0xe9, 0x0c, 0x30, 0x8f, - 0x7b, 0xa1, 0xc9, 0x8d, 0xb9, 0x3e, 0x4b, 0xe7, 0xf4, 0x39, 0xb3, 0x09, 0x33, 0xc2, 0xb8, 0xbc, - 0x04, 0x32, 0x3b, 0x44, 0x9c, 0x00, 0xbb, 0xa1, 0x0e, 0x90, 0x68, 0xff, 0x07, 0xe0, 0xc5, 0x55, - 0x9e, 0x81, 0x89, 0xdd, 0x3b, 0xb7, 0xea, 0x3f, 0x68, 0xd4, 0xdf, 0xdc, 0xad, 0xd7, 0xd2, 0x48, - 0xfb, 0x03, 0x82, 0x09, 0xd2, 0xb6, 0xee, 0x75, 0x8f, 0x74, 0xb9, 0x02, 0x68, 0x93, 0xf0, 0xe1, - 0xc9, 0xfc, 0x46, 0x9b, 0xf2, 0x32, 0xa0, 0x4a, 0x7c, 0xa8, 0x51, 0x45, 0x2e, 0x02, 0xaa, 0x12, - 0x80, 0xe3, 0x21, 0x83, 0xaa, 0xda, 0xbf, 0x30, 0x3c, 0xcb, 0xb6, 0xd1, 0x6e, 0x3d, 0xb9, 0xcc, - 0x7f, 0x37, 0x95, 0xc7, 0x57, 0x8a, 0xab, 0xa5, 0x25, 0xeb, 0x1f, 0x4a, 0xc9, 0xcb, 0xfc, 0x27, - 0x94, 0x5f, 0xc5, 0x77, 0x4d, 0xa4, 0x9c, 0x64, 0xa4, 0xbe, 0x6b, 0x22, 0x9c, 0xd4, 0x77, 0x4d, - 0x84, 0x93, 0xfa, 0xae, 0x89, 0x70, 0x52, 0xdf, 0x51, 0x00, 0x27, 0xf5, 0x5d, 0x13, 0xe1, 0xa4, - 0xbe, 0x6b, 0x22, 0x9c, 0xd4, 0x7f, 0x4d, 0x84, 0x88, 0x43, 0xaf, 0x89, 0xf0, 0x72, 0xff, 0x35, - 0x11, 0x5e, 0xee, 0xbf, 0x26, 0x52, 0x4e, 0x9a, 0xbd, 0x63, 0x3d, 0xfc, 0xd0, 0x81, 0xb7, 0x1f, - 0xf6, 0x0d, 0xe8, 0x15, 0xe0, 0x1d, 0x98, 0x71, 0xf6, 0x23, 0xaa, 0x5d, 0xc3, 0x6c, 0x75, 0x0c, - 0xbd, 0x27, 0x7f, 0x03, 0x26, 0x9d, 0x21, 0xe7, 0x2b, 0x27, 0xe8, 0x2b, 0xd0, 0x91, 0x93, 0x72, - 0xcb, 0x69, 0x6b, 0x5f, 0x26, 0x61, 0xd6, 0x19, 0x68, 0xb4, 0xee, 0xeb, 0xdc, 0x25, 0xa3, 0x45, - 0xe1, 0x48, 0x69, 0xda, 0x32, 0x1f, 0x9c, 0xce, 0x3b, 0xa3, 0x9b, 0x94, 0x4c, 0x8b, 0xc2, 0xe1, - 0x12, 0xaf, 0xe7, 0xbd, 0x7f, 0x16, 0x85, 0x8b, 0x47, 0xbc, 0x1e, 0x7d, 0xdd, 0x50, 0x3d, 0xf7, - 0x0a, 0x12, 0xaf, 0x57, 0xa3, 0x2c, 0x5b, 0x14, 0x2e, 0x23, 0xf1, 0x7a, 0x75, 0xca, 0xb7, 0x45, - 0xe1, 0xe8, 0x89, 0xd7, 0xbb, 0x41, 0x99, 0xb7, 0x28, 0x1c, 0x42, 0xf1, 0x7a, 0xdf, 0xa2, 0x1c, - 0x5c, 0x14, 0xae, 0x2a, 0xf1, 0x7a, 0xaf, 0x53, 0x36, 0x2e, 0x0a, 0x97, 0x96, 0x78, 0xbd, 0x2d, - 0xca, 0xcb, 0x9c, 0x78, 0x7d, 0x89, 0x57, 0xbc, 0xe9, 0x31, 0x34, 0x27, 0x5e, 0x64, 0xe2, 0x35, - 0xbf, 0xed, 0x71, 0x35, 0x27, 0x5e, 0x69, 0xe2, 0x35, 0xdf, 0xf0, 0x58, 0x9b, 0x13, 0x8f, 0xca, - 0x78, 0xcd, 0x6d, 0x8f, 0xbf, 0x39, 0xf1, 0xd0, 0x8c, 0xd7, 0x6c, 0x78, 0x4c, 0xce, 0x89, 0xc7, - 0x67, 0xbc, 0xe6, 0x8e, 0xb7, 0x87, 0xfe, 0x91, 0x40, 0x3f, 0xe6, 0x12, 0x94, 0x26, 0xd0, 0x0f, - 0x02, 0xa8, 0xa7, 0x09, 0xd4, 0x83, 0x00, 0xda, 0x69, 0x02, 0xed, 0x20, 0x80, 0x72, 0x9a, 0x40, - 0x39, 0x08, 0xa0, 0x9b, 0x26, 0xd0, 0x0d, 0x02, 0xa8, 0xa6, 0x09, 0x54, 0x83, 0x00, 0x9a, 0x69, - 0x02, 0xcd, 0x20, 0x80, 0x62, 0x9a, 0x40, 0x31, 0x08, 0xa0, 0x97, 0x26, 0xd0, 0x0b, 0x02, 0xa8, - 0xb5, 0x20, 0x52, 0x0b, 0x82, 0x68, 0xb5, 0x20, 0xd2, 0x0a, 0x82, 0x28, 0xf5, 0xa2, 0x48, 0xa9, - 0xf1, 0xc1, 0xe9, 0xfc, 0x98, 0x35, 0xc4, 0xb0, 0x69, 0x41, 0x64, 0x13, 0x04, 0x31, 0x69, 0x41, - 0x64, 0x12, 0x04, 0xb1, 0x68, 0x41, 0x64, 0x11, 0x04, 0x31, 0xe8, 0x91, 0xc8, 0x20, 0xef, 0x8a, - 0x8f, 0x26, 0x9c, 0x28, 0x46, 0x31, 0x08, 0xc7, 0x60, 0x10, 0x8e, 0xc1, 0x20, 0x1c, 0x83, 0x41, - 0x38, 0x06, 0x83, 0x70, 0x0c, 0x06, 0xe1, 0x18, 0x0c, 0xc2, 0x31, 0x18, 0x84, 0xe3, 0x30, 0x08, - 0xc7, 0x62, 0x10, 0x0e, 0x63, 0xd0, 0x82, 0x78, 0xe1, 0x01, 0x82, 0x0a, 0xd2, 0x82, 0x78, 0xf2, - 0x19, 0x4d, 0x21, 0x1c, 0x8b, 0x42, 0x38, 0x8c, 0x42, 0x1f, 0x61, 0x78, 0x96, 0xa3, 0x10, 0x39, - 0x1e, 0x7a, 0x5a, 0x15, 0x68, 0x3d, 0xc6, 0xfd, 0x8a, 0x20, 0x4e, 0xad, 0xc7, 0x38, 0xa3, 0x1e, - 0xc6, 0x33, 0x7f, 0x15, 0xaa, 0xc7, 0xa8, 0x42, 0x37, 0x28, 0x87, 0xd6, 0x63, 0xdc, 0xbb, 0xf0, - 0x73, 0x6f, 0x63, 0x58, 0x11, 0x78, 0x3d, 0x56, 0x11, 0xd8, 0x8a, 0x55, 0x04, 0x6e, 0x7a, 0x08, - 0xfe, 0x54, 0x82, 0xe7, 0x3c, 0x04, 0x9d, 0xbf, 0x76, 0x1f, 0x1c, 0x59, 0x25, 0xc0, 0x3b, 0xa1, - 0x92, 0xdd, 0x53, 0x1b, 0x06, 0x46, 0x69, 0xab, 0x2d, 0xdf, 0xe2, 0xcf, 0xaa, 0xca, 0xa3, 0x9e, - 0xdf, 0x30, 0x88, 0x93, 0xbd, 0xd0, 0x05, 0xc0, 0x5b, 0xed, 0xbe, 0x5d, 0x2d, 0x82, 0x96, 0xad, - 0x36, 0x2d, 0xb1, 0xdc, 0x84, 0x0b, 0xb6, 0x7a, 0xdf, 0x86, 0xf7, 0x3c, 0x0b, 0xd7, 0x9a, 0x64, - 0x26, 0xed, 0x11, 0x82, 0x2c, 0x47, 0xe5, 0xa7, 0x73, 0x62, 0xf0, 0x4a, 0xac, 0x13, 0x03, 0x2e, - 0x41, 0xbc, 0xd3, 0x83, 0xff, 0xf7, 0x1f, 0x54, 0xb3, 0x59, 0x22, 0x9e, 0x24, 0xfc, 0x04, 0xa6, - 0xbd, 0x27, 0xb0, 0x3f, 0xd9, 0xd6, 0xa2, 0x37, 0x33, 0x83, 0x52, 0x73, 0x4d, 0xd8, 0x44, 0x1b, - 0x6a, 0x46, 0xb3, 0x55, 0x2b, 0xc3, 0x4c, 0xa3, 0x6b, 0x6f, 0x00, 0xf4, 0x3b, 0x5d, 0xa3, 0xbf, - 0xdd, 0x3a, 0x8a, 0xda, 0x8b, 0x48, 0x59, 0xad, 0xf9, 0xc9, 0xaf, 0xe7, 0x13, 0xda, 0xcb, 0x30, - 0x79, 0xdb, 0xe8, 0xe9, 0x7b, 0xdd, 0x7d, 0xa3, 0xf3, 0x63, 0xbd, 0x2d, 0x18, 0x8e, 0xbb, 0x86, - 0xe5, 0xe4, 0x63, 0x4b, 0xfb, 0x17, 0x08, 0x2e, 0xb1, 0xea, 0xdf, 0xed, 0x98, 0x07, 0x5b, 0x86, - 0xd5, 0xd3, 0xbf, 0x0a, 0x29, 0x9d, 0x00, 0x67, 0xbf, 0xbb, 0x26, 0xdc, 0xcf, 0xc8, 0x40, 0xf5, - 0x25, 0xfb, 0xdf, 0x26, 0x35, 0x11, 0x36, 0x41, 0xdc, 0x65, 0x8b, 0x99, 0x2b, 0x30, 0xe6, 0xcc, - 0xcf, 0xfb, 0x35, 0x25, 0xf8, 0xf5, 0xdb, 0x00, 0xbf, 0x6c, 0x1e, 0xc9, 0x37, 0x39, 0xbf, 0x98, - 0xaf, 0xd5, 0x40, 0xf5, 0x25, 0x97, 0x7c, 0x95, 0x94, 0xd5, 0xff, 0xd9, 0x8c, 0x8a, 0x76, 0x32, - 0x07, 0xa9, 0xba, 0xa8, 0x13, 0xec, 0x67, 0x0d, 0x92, 0x8d, 0x6e, 0x5b, 0x97, 0x9f, 0x83, 0xb1, - 0x37, 0x5a, 0x77, 0xf5, 0x43, 0x12, 0x64, 0xe7, 0x87, 0xbc, 0x08, 0xa9, 0xea, 0x41, 0xe7, 0xb0, - 0xdd, 0xd3, 0x0d, 0x72, 0x64, 0x4f, 0x76, 0xd0, 0x2d, 0x9b, 0x26, 0x95, 0x69, 0x55, 0xb8, 0xd8, - 0xe8, 0x1a, 0x95, 0x07, 0x26, 0x5b, 0x37, 0x96, 0x84, 0x14, 0x21, 0x47, 0x3e, 0xb7, 0xac, 0x6c, - 0xb4, 0x14, 0x2a, 0x63, 0x1f, 0x9f, 0xce, 0xa3, 0x5d, 0xba, 0x7d, 0xbe, 0x0d, 0xcf, 0x93, 0xf4, - 0xf1, 0x4d, 0x55, 0x8c, 0x9a, 0x6a, 0x9c, 0x1c, 0x53, 0x33, 0xd3, 0x6d, 0x59, 0xd3, 0x19, 0x81, - 0xd3, 0x3d, 0x99, 0x67, 0x56, 0x53, 0x34, 0xd4, 0x33, 0x3c, 0x92, 0x67, 0x81, 0xd3, 0x2d, 0x45, - 0x4d, 0x27, 0x78, 0xf6, 0x22, 0x8c, 0x53, 0x19, 0xc3, 0x06, 0x36, 0x53, 0x8a, 0x79, 0x0d, 0x26, - 0x98, 0x84, 0x95, 0xc7, 0x00, 0x6d, 0xa6, 0x13, 0xd6, 0x7f, 0x95, 0x34, 0xb2, 0xfe, 0xab, 0xa6, - 0xa5, 0xfc, 0x15, 0x98, 0x11, 0xb6, 0x2f, 0x2d, 0x49, 0x2d, 0x0d, 0xd6, 0x7f, 0xf5, 0xf4, 0x44, - 0x26, 0xf9, 0xde, 0x6f, 0xd4, 0x44, 0xfe, 0x15, 0x90, 0xfd, 0x1b, 0x9d, 0xf2, 0x05, 0x90, 0x36, - 0xad, 0x29, 0x9f, 0x07, 0xa9, 0x52, 0x49, 0xa3, 0xcc, 0xcc, 0xcf, 0x7e, 0x99, 0x9d, 0xa8, 0xe8, - 0xa6, 0xa9, 0xf7, 0xee, 0xe8, 0x66, 0xa5, 0x42, 0x8c, 0x5f, 0x83, 0x4b, 0x81, 0x1b, 0xa5, 0x96, - 0x7d, 0xb5, 0xea, 0xd8, 0xd7, 0x6a, 0x3e, 0xfb, 0x5a, 0xcd, 0xb6, 0x47, 0x65, 0xf7, 0xc0, 0x79, - 0x53, 0x0e, 0xd8, 0x64, 0x54, 0xda, 0xcc, 0x01, 0xf7, 0x66, 0xf9, 0x35, 0xa2, 0x5b, 0x09, 0xd4, - 0xd5, 0x23, 0x0e, 0xac, 0x2b, 0xe5, 0x2a, 0xb1, 0xaf, 0x06, 0xda, 0xdf, 0x13, 0x4e, 0x55, 0xf9, - 0x37, 0x04, 0x99, 0xa4, 0x4a, 0x1d, 0xae, 0x05, 0x4e, 0x72, 0xc0, 0xdc, 0x75, 0xaf, 0x51, 0x87, - 0xeb, 0x81, 0xba, 0x9d, 0x88, 0x3b, 0x5f, 0xf5, 0xf2, 0x32, 0x79, 0xc9, 0x6f, 0xae, 0xc8, 0x97, - 0xdc, 0x1c, 0xe5, 0x2a, 0x30, 0x09, 0x90, 0xab, 0x55, 0xae, 0x12, 0x83, 0x4a, 0xa8, 0x41, 0x78, - 0x94, 0x5c, 0xcb, 0xf2, 0xeb, 0x64, 0x92, 0x6a, 0xe8, 0x24, 0x11, 0xa1, 0x72, 0xcd, 0x2b, 0xbb, - 0x27, 0x67, 0x6a, 0xe2, 0xf1, 0x99, 0x9a, 0xf8, 0xc7, 0x99, 0x9a, 0xf8, 0xe4, 0x4c, 0x45, 0x9f, - 0x9d, 0xa9, 0xe8, 0xf3, 0x33, 0x15, 0x7d, 0x71, 0xa6, 0xa2, 0x77, 0x06, 0x2a, 0xfa, 0x60, 0xa0, - 0xa2, 0x0f, 0x07, 0x2a, 0xfa, 0xe3, 0x40, 0x45, 0x8f, 0x06, 0x2a, 0x3a, 0x19, 0xa8, 0x89, 0xc7, - 0x03, 0x35, 0xf1, 0xc9, 0x40, 0x45, 0x9f, 0x0d, 0xd4, 0xc4, 0xe7, 0x03, 0x15, 0x7d, 0x31, 0x50, - 0x13, 0xef, 0x7c, 0xaa, 0x26, 0x1e, 0x7e, 0xaa, 0x26, 0x3e, 0xf8, 0x54, 0x45, 0xff, 0x09, 0x00, - 0x00, 0xff, 0xff, 0x93, 0x3a, 0x1b, 0x5f, 0x3a, 0x36, 0x00, 0x00, + 0xf5, 0xe7, 0xec, 0x50, 0x0a, 0xf5, 0xf4, 0x45, 0x6f, 0x62, 0x65, 0xc1, 0xe8, 0xbf, 0xa2, 0x37, + 0xb2, 0xfe, 0x0c, 0x11, 0x4b, 0x14, 0x45, 0xc9, 0x32, 0xd3, 0xa4, 0xe0, 0x97, 0x1b, 0xb9, 0x11, + 0x65, 0x30, 0x72, 0x5b, 0x03, 0x05, 0x0a, 0x5a, 0x5c, 0x4b, 0x44, 0xe5, 0xa5, 0x40, 0xae, 0xd2, + 0xb8, 0x87, 0x22, 0xc8, 0xa1, 0x08, 0x7a, 0x2d, 0x7a, 0x6c, 0xe3, 0xa2, 0x28, 0x90, 0xde, 0x72, + 0x28, 0x8a, 0xa2, 0x28, 0x1a, 0x5f, 0x0a, 0xa8, 0x37, 0xa3, 0xa7, 0x22, 0x28, 0x84, 0x88, 0xb9, + 0xe4, 0x18, 0xf4, 0xd2, 0x1c, 0x72, 0x28, 0x76, 0x77, 0x76, 0x76, 0x66, 0xb8, 0xcb, 0x5d, 0x5a, + 0x4a, 0x9b, 0x8b, 0x2d, 0xce, 0x7b, 0x6f, 0xe6, 0xed, 0xfb, 0xfd, 0xde, 0xdb, 0xb7, 0x33, 0x03, + 0xd3, 0xe6, 0x81, 0x6e, 0xea, 0x3d, 0x73, 0xf9, 0xa8, 0xdb, 0x31, 0x3b, 0x72, 0xdc, 0xfa, 0x3b, + 0x75, 0x6d, 0xbf, 0x6d, 0x1e, 0x1c, 0xdf, 0x5b, 0xde, 0xeb, 0x3c, 0x58, 0xd9, 0xef, 0xec, 0x77, + 0x56, 0x6c, 0xe1, 0xbd, 0xe3, 0xfb, 0xf6, 0x2f, 0xfb, 0x87, 0xfd, 0x97, 0x63, 0xa4, 0xfd, 0x13, + 0xc3, 0x54, 0xbd, 0xdd, 0xda, 0x39, 0x32, 0xeb, 0x4d, 0xb3, 0xfd, 0x96, 0x2e, 0xcf, 0xc3, 0xf8, + 0xcd, 0xb6, 0x7e, 0xd8, 0x5a, 0x55, 0x50, 0x1a, 0x65, 0x50, 0x39, 0x7e, 0x72, 0xba, 0x10, 0x6b, + 0x90, 0x31, 0x2a, 0xcd, 0x2b, 0x52, 0x1a, 0x65, 0x24, 0x4e, 0x9a, 0xa7, 0xd2, 0x35, 0x05, 0xa7, + 0x51, 0x66, 0x8c, 0x93, 0xae, 0x51, 0x69, 0x41, 0x89, 0xa7, 0x51, 0x06, 0x73, 0xd2, 0x02, 0x95, + 0xae, 0x2b, 0x63, 0x69, 0x94, 0x99, 0xe6, 0xa4, 0xeb, 0x54, 0xba, 0xa1, 0x8c, 0xa7, 0x51, 0x26, + 0xce, 0x49, 0x37, 0xa8, 0xf4, 0xba, 0xf2, 0x4c, 0x1a, 0x65, 0x2e, 0x71, 0xd2, 0xeb, 0x54, 0xba, + 0xa9, 0x24, 0xd2, 0x28, 0x23, 0x73, 0xd2, 0x4d, 0x2a, 0xbd, 0xa1, 0x4c, 0xa4, 0x51, 0xe6, 0x19, + 0x4e, 0x7a, 0x43, 0x56, 0xe1, 0x19, 0xe7, 0xc9, 0x73, 0x0a, 0xa4, 0x51, 0x66, 0x96, 0x88, 0xdd, + 0x41, 0x4f, 0xbe, 0xaa, 0x4c, 0xa6, 0x51, 0x66, 0x9c, 0x97, 0xaf, 0x7a, 0xf2, 0xbc, 0x32, 0x95, + 0x46, 0x99, 0x24, 0x2f, 0xcf, 0x7b, 0xf2, 0x35, 0x65, 0x3a, 0x8d, 0x32, 0x09, 0x5e, 0xbe, 0xe6, + 0xc9, 0x0b, 0xca, 0x4c, 0x1a, 0x65, 0x26, 0x78, 0x79, 0xc1, 0x93, 0xaf, 0x2b, 0xb3, 0x69, 0x94, + 0x99, 0xe2, 0xe5, 0xeb, 0xda, 0xbb, 0x36, 0xbc, 0x86, 0x07, 0xef, 0x1c, 0x0f, 0x2f, 0x05, 0x76, + 0x8e, 0x07, 0x96, 0x42, 0x3a, 0xc7, 0x43, 0x4a, 0xc1, 0x9c, 0xe3, 0xc1, 0xa4, 0x30, 0xce, 0xf1, + 0x30, 0x52, 0x00, 0xe7, 0x78, 0x00, 0x29, 0x74, 0x73, 0x3c, 0x74, 0x14, 0xb4, 0x39, 0x1e, 0x34, + 0x0a, 0xd7, 0x1c, 0x0f, 0x17, 0x05, 0x4a, 0x11, 0x80, 0xf2, 0x20, 0x52, 0x04, 0x88, 0x3c, 0x70, + 0x14, 0x01, 0x1c, 0x0f, 0x16, 0x45, 0x80, 0xc5, 0x03, 0x44, 0x11, 0x00, 0xf1, 0xa0, 0x50, 0x04, + 0x28, 0x3c, 0x10, 0x48, 0x8e, 0x35, 0xf4, 0x23, 0x9f, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, + 0x31, 0x3c, 0x34, 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0x43, 0x73, 0x0c, 0x0f, 0xcd, 0x31, 0x3c, 0x34, + 0xc7, 0xf0, 0xd0, 0x1c, 0xc3, 0xc3, 0x73, 0x0c, 0x87, 0xe4, 0x18, 0x0e, 0xc9, 0x31, 0x1c, 0x92, + 0x63, 0x38, 0x24, 0xc7, 0x70, 0x48, 0x8e, 0xe1, 0xc0, 0x1c, 0xf3, 0xe0, 0x9d, 0xe3, 0xe1, 0xf5, + 0xcd, 0x31, 0x1c, 0x90, 0x63, 0x38, 0x20, 0xc7, 0x70, 0x40, 0x8e, 0xe1, 0x80, 0x1c, 0xc3, 0x01, + 0x39, 0x86, 0x03, 0x72, 0x0c, 0x07, 0xe4, 0x18, 0x0e, 0xca, 0x31, 0x1c, 0x98, 0x63, 0x38, 0x30, + 0xc7, 0x70, 0x60, 0x8e, 0xe1, 0xc0, 0x1c, 0xc3, 0x81, 0x39, 0x86, 0xd9, 0x1c, 0xfb, 0x33, 0x06, + 0xd9, 0xc9, 0xb1, 0xdb, 0xcd, 0xbd, 0x1f, 0xea, 0x2d, 0x02, 0x85, 0x2a, 0x64, 0xda, 0xb8, 0x05, + 0x5d, 0xd2, 0x83, 0x44, 0x15, 0x72, 0x8d, 0x97, 0xe7, 0xa9, 0xdc, 0xcd, 0x36, 0x5e, 0xbe, 0x46, + 0xe5, 0x6e, 0xbe, 0xf1, 0xf2, 0x02, 0x95, 0xbb, 0x19, 0xc7, 0xcb, 0xd7, 0xa9, 0xdc, 0xcd, 0x39, + 0x5e, 0xbe, 0x41, 0xe5, 0x6e, 0xd6, 0xf1, 0xf2, 0xeb, 0x54, 0xee, 0xe6, 0x1d, 0x2f, 0xdf, 0xa4, + 0x72, 0x37, 0xf3, 0x78, 0xf9, 0x0d, 0x39, 0x2d, 0xe6, 0x9e, 0xab, 0x40, 0xa1, 0x4d, 0x8b, 0xd9, + 0x27, 0x68, 0xac, 0x7a, 0x1a, 0x6e, 0xfe, 0x09, 0x1a, 0x79, 0x4f, 0xc3, 0xcd, 0x40, 0x41, 0x63, + 0x4d, 0x7b, 0xcf, 0x86, 0xcf, 0x10, 0xe1, 0x4b, 0x09, 0xf0, 0x49, 0x0c, 0x74, 0x29, 0x01, 0x3a, + 0x89, 0x81, 0x2d, 0x25, 0xc0, 0x26, 0x31, 0x90, 0xa5, 0x04, 0xc8, 0x24, 0x06, 0xae, 0x94, 0x00, + 0x97, 0xc4, 0x40, 0x95, 0x12, 0xa0, 0x92, 0x18, 0x98, 0x52, 0x02, 0x4c, 0x12, 0x03, 0x51, 0x4a, + 0x80, 0x48, 0x62, 0xe0, 0x49, 0x09, 0xf0, 0x48, 0x0c, 0x34, 0xf3, 0x22, 0x34, 0x12, 0x0b, 0xcb, + 0xbc, 0x08, 0x8b, 0xc4, 0x42, 0x32, 0x2f, 0x42, 0x22, 0xb1, 0x70, 0xcc, 0x8b, 0x70, 0x48, 0x2c, + 0x14, 0x5f, 0x4a, 0x6e, 0x47, 0xf8, 0xa6, 0xd9, 0x3d, 0xde, 0x33, 0xcf, 0xd5, 0x11, 0xe6, 0xb8, + 0xf6, 0x61, 0x32, 0x2f, 0x2f, 0xdb, 0x0d, 0x2b, 0xdb, 0x71, 0x0a, 0x6f, 0xb0, 0x1c, 0xd7, 0x58, + 0x30, 0x16, 0x86, 0xbf, 0x45, 0xe1, 0x5c, 0xbd, 0x61, 0x8e, 0x6b, 0x33, 0xc2, 0xfd, 0xdb, 0xfc, + 0xca, 0x3b, 0xb6, 0xc7, 0x92, 0xdb, 0xb1, 0x91, 0xf0, 0x8f, 0xda, 0xb1, 0x65, 0xc3, 0x43, 0x4e, + 0x83, 0x9d, 0x0d, 0x0f, 0xf6, 0xc0, 0x5b, 0x27, 0x6a, 0x07, 0x97, 0x0d, 0x0f, 0x2d, 0x0d, 0xea, + 0xc5, 0xf6, 0x5b, 0x84, 0xc1, 0x0d, 0xfd, 0xc8, 0x87, 0xc1, 0xa3, 0xf6, 0x5b, 0x39, 0xae, 0x94, + 0x8c, 0xca, 0x60, 0x3c, 0x32, 0x83, 0x47, 0xed, 0xbc, 0x72, 0x5c, 0x79, 0x19, 0x99, 0xc1, 0x5f, + 0x41, 0x3f, 0x44, 0x18, 0xec, 0x85, 0x7f, 0xd4, 0x7e, 0x28, 0x1b, 0x1e, 0x72, 0x5f, 0x06, 0xe3, + 0x11, 0x18, 0x1c, 0xa5, 0x3f, 0xca, 0x86, 0x87, 0xd6, 0x9f, 0xc1, 0xe7, 0xee, 0x66, 0xde, 0x47, + 0x70, 0xa9, 0xde, 0x6e, 0xd5, 0x1e, 0xdc, 0xd3, 0x5b, 0x2d, 0xbd, 0x45, 0xe2, 0x98, 0xe3, 0x2a, + 0x41, 0x00, 0xd4, 0x4f, 0x4e, 0x17, 0xbc, 0x08, 0xaf, 0x43, 0xc2, 0x89, 0x69, 0x2e, 0xa7, 0x9c, + 0xa0, 0x90, 0x0a, 0x47, 0x55, 0xe5, 0x2b, 0xae, 0xd9, 0x6a, 0x4e, 0xf9, 0x3b, 0x62, 0xaa, 0x1c, + 0x1d, 0xd6, 0x7e, 0x6e, 0x7b, 0x68, 0x9c, 0xdb, 0xc3, 0x95, 0x48, 0x1e, 0x32, 0xbe, 0xbd, 0x30, + 0xe0, 0x1b, 0xe3, 0xd5, 0x31, 0xcc, 0xd6, 0xdb, 0xad, 0xba, 0xde, 0x33, 0xa3, 0xb9, 0xe4, 0xe8, + 0x08, 0xf5, 0x20, 0xc7, 0xd1, 0x92, 0xb5, 0xa0, 0x94, 0xe6, 0x6b, 0x84, 0xd6, 0xb6, 0x96, 0x35, + 0xb8, 0x65, 0xb3, 0x41, 0xcb, 0x7a, 0x95, 0x9d, 0x2e, 0x98, 0x0d, 0x5a, 0xd0, 0xcb, 0x21, 0xba, + 0xd4, 0xdb, 0xee, 0xcb, 0xb9, 0x72, 0xdc, 0x33, 0x3b, 0x0f, 0xe4, 0x79, 0x90, 0xb6, 0x5a, 0xf6, + 0x1a, 0x53, 0xe5, 0x29, 0xcb, 0xa9, 0x8f, 0x4f, 0x17, 0xe2, 0x77, 0x8e, 0xdb, 0xad, 0x86, 0xb4, + 0xd5, 0x92, 0x6f, 0xc1, 0xd8, 0x77, 0x9a, 0x87, 0xc7, 0xba, 0xfd, 0x8a, 0x98, 0x2a, 0x17, 0x88, + 0xc2, 0xcb, 0x81, 0x7b, 0x44, 0xd6, 0xc2, 0x2b, 0x7b, 0xf6, 0xd4, 0xcb, 0x77, 0xda, 0x86, 0xb9, + 0x9a, 0xdf, 0x6c, 0x38, 0x53, 0x68, 0xdf, 0x07, 0x70, 0xd6, 0xac, 0x36, 0x7b, 0x07, 0x72, 0xdd, + 0x9d, 0xd9, 0x59, 0x7a, 0xf3, 0xe3, 0xd3, 0x85, 0x42, 0x94, 0x59, 0xaf, 0xb5, 0x9a, 0xbd, 0x83, + 0x6b, 0xe6, 0xc3, 0x23, 0x7d, 0xb9, 0xfc, 0xd0, 0xd4, 0x7b, 0xee, 0xec, 0x47, 0xee, 0x5b, 0x8f, + 0x3c, 0x97, 0xc2, 0x3c, 0x57, 0x82, 0x7b, 0xa6, 0x9b, 0xfc, 0x33, 0xe5, 0x9e, 0xf6, 0x79, 0xde, + 0x76, 0x5f, 0x12, 0x42, 0x24, 0x71, 0x58, 0x24, 0xf1, 0x79, 0x23, 0x79, 0xe4, 0xd6, 0x47, 0xe1, + 0x59, 0xf1, 0xb0, 0x67, 0xc5, 0xe7, 0x79, 0xd6, 0x7f, 0x3b, 0xd9, 0x4a, 0xf3, 0xe9, 0x8e, 0xd1, + 0xee, 0x18, 0x5f, 0xbb, 0xbd, 0xa0, 0x0b, 0xed, 0x02, 0x8a, 0xf1, 0x93, 0x47, 0x0b, 0x48, 0x7b, + 0x5f, 0x72, 0x9f, 0xdc, 0x49, 0xa4, 0xa7, 0x7b, 0xf2, 0xaf, 0x4b, 0x4f, 0xf5, 0x55, 0x44, 0xe8, + 0x57, 0x08, 0xe6, 0x06, 0x2a, 0xb9, 0x13, 0xa6, 0x8b, 0x2d, 0xe7, 0xc6, 0xa8, 0xe5, 0x9c, 0x38, + 0xf8, 0x7b, 0x04, 0xcf, 0x09, 0xe5, 0xd5, 0x71, 0x6f, 0x45, 0x70, 0xef, 0xf9, 0xc1, 0x95, 0x6c, + 0x45, 0xc6, 0x3b, 0x16, 0x5e, 0xc1, 0x80, 0x99, 0x99, 0xe2, 0x5e, 0x10, 0x70, 0x9f, 0xa7, 0x06, + 0x3e, 0xe1, 0x72, 0x19, 0x40, 0xdc, 0xee, 0x40, 0x7c, 0xb7, 0xab, 0xeb, 0xb2, 0x0a, 0xd2, 0x4e, + 0x97, 0x78, 0x38, 0xe3, 0xd8, 0xef, 0x74, 0xcb, 0xdd, 0xa6, 0xb1, 0x77, 0xd0, 0x90, 0x76, 0xba, + 0xf2, 0x15, 0xc0, 0x25, 0xa3, 0x45, 0x3c, 0x9a, 0x75, 0x14, 0x4a, 0x46, 0x8b, 0x68, 0x58, 0x32, + 0x59, 0x85, 0xf8, 0x1b, 0x7a, 0xf3, 0x3e, 0x71, 0x02, 0x1c, 0x1d, 0x6b, 0xa4, 0x61, 0x8f, 0x93, + 0x05, 0xbf, 0x07, 0x09, 0x77, 0x62, 0x79, 0xd1, 0xb2, 0xb8, 0x6f, 0x92, 0x65, 0x89, 0x85, 0xe5, + 0x0e, 0x79, 0x73, 0xd9, 0x52, 0x79, 0x09, 0xc6, 0x1a, 0xed, 0xfd, 0x03, 0x93, 0x2c, 0x3e, 0xa8, + 0xe6, 0x88, 0xb5, 0xbb, 0x30, 0x41, 0x3d, 0xba, 0xe0, 0xa9, 0xab, 0xce, 0xa3, 0xc9, 0x29, 0xf6, + 0x7d, 0xe2, 0xee, 0x5b, 0x3a, 0x43, 0x72, 0x1a, 0x12, 0x6f, 0x9a, 0x5d, 0xaf, 0xe8, 0xbb, 0x1d, + 0x29, 0x1d, 0xd5, 0xde, 0x45, 0x90, 0xa8, 0xea, 0xfa, 0x91, 0x1d, 0xf0, 0xab, 0x10, 0xaf, 0x76, + 0x7e, 0x64, 0x10, 0x07, 0x2f, 0x91, 0x88, 0x5a, 0x62, 0x12, 0x53, 0x5b, 0x2c, 0x5f, 0x65, 0xe3, + 0xfe, 0x2c, 0x8d, 0x3b, 0xa3, 0x67, 0xc7, 0x5e, 0xe3, 0x62, 0x4f, 0x00, 0xb4, 0x94, 0x06, 0xe2, + 0x7f, 0x1d, 0x26, 0x99, 0x55, 0xe4, 0x0c, 0x71, 0x43, 0x12, 0x0d, 0xd9, 0x58, 0x59, 0x1a, 0x9a, + 0x0e, 0xd3, 0xdc, 0xc2, 0x96, 0x29, 0x13, 0xe2, 0x00, 0x53, 0x3b, 0xcc, 0x59, 0x3e, 0xcc, 0xfe, + 0xaa, 0x24, 0xd4, 0x39, 0x27, 0x46, 0x76, 0xb8, 0x17, 0x1d, 0x72, 0x06, 0x83, 0x68, 0xfd, 0xad, + 0x8d, 0x01, 0xae, 0xb7, 0x0f, 0xb5, 0x57, 0x01, 0x9c, 0x94, 0xaf, 0x19, 0xc7, 0x0f, 0x84, 0xac, + 0x9b, 0x71, 0x03, 0xbc, 0x7b, 0xa0, 0xef, 0xea, 0x3d, 0x5b, 0x85, 0xef, 0xa7, 0xac, 0x02, 0x03, + 0x4e, 0x8a, 0xd9, 0xf6, 0x2f, 0x85, 0xda, 0xfb, 0x76, 0x62, 0x96, 0xaa, 0xe2, 0xa8, 0xde, 0xd5, + 0xcd, 0x92, 0xd1, 0x31, 0x0f, 0xf4, 0xae, 0x60, 0x91, 0x97, 0xd7, 0xb8, 0x84, 0x9d, 0xc9, 0xbf, + 0x40, 0x2d, 0x02, 0x8d, 0xd6, 0xb4, 0x0f, 0x6d, 0x07, 0xad, 0x56, 0x60, 0xe0, 0x01, 0x71, 0x84, + 0x07, 0x94, 0x37, 0xb8, 0xfe, 0x6d, 0x88, 0x9b, 0xc2, 0xa7, 0xe5, 0x0d, 0xee, 0x3b, 0x67, 0xb8, + 0xb3, 0xfc, 0x37, 0xa6, 0x1b, 0x53, 0xd7, 0xe5, 0x97, 0x42, 0x5d, 0x0e, 0xe8, 0x6e, 0x47, 0x8d, + 0x29, 0x8e, 0x1a, 0xd3, 0x3f, 0xd1, 0x8e, 0xc3, 0x1a, 0xae, 0xea, 0xf7, 0x9b, 0xc7, 0x87, 0xa6, + 0xfc, 0x72, 0x28, 0xf6, 0x45, 0x54, 0xa1, 0xae, 0x16, 0xa2, 0xc2, 0x5f, 0x94, 0xca, 0x65, 0xea, + 0xee, 0xf5, 0x11, 0x28, 0x50, 0x94, 0x2a, 0x15, 0x5a, 0xb6, 0x13, 0xef, 0x3d, 0x5a, 0x40, 0x1f, + 0x3c, 0x5a, 0x88, 0x69, 0xbf, 0x43, 0x70, 0x89, 0x68, 0x32, 0xc4, 0xbd, 0x26, 0x38, 0x7f, 0xd9, + 0xad, 0x19, 0x7e, 0x11, 0xf8, 0xaf, 0x91, 0xf7, 0xaf, 0x08, 0x94, 0x01, 0x5f, 0xdd, 0x78, 0xe7, + 0x22, 0xb9, 0x5c, 0x44, 0xb5, 0xff, 0x7d, 0xcc, 0xef, 0xc2, 0xd8, 0x6e, 0xfb, 0x81, 0xde, 0xb5, + 0xde, 0x04, 0xd6, 0x1f, 0x8e, 0xcb, 0xee, 0x61, 0x8e, 0x33, 0xe4, 0xca, 0x1c, 0xe7, 0x38, 0x59, + 0x5e, 0x56, 0x20, 0x5e, 0x6d, 0x9a, 0x4d, 0xdb, 0x83, 0x29, 0x5a, 0x5f, 0x9b, 0x66, 0x53, 0x5b, + 0x83, 0xa9, 0xed, 0x87, 0xb5, 0xb7, 0x4d, 0xdd, 0x68, 0x35, 0xef, 0x1d, 0x8a, 0x67, 0xa0, 0x6e, + 0xbf, 0xba, 0x9a, 0x1d, 0x4b, 0xb4, 0x92, 0x27, 0xa8, 0x18, 0xb7, 0xfd, 0x79, 0x0b, 0x66, 0x76, + 0x2c, 0xb7, 0x6d, 0x3b, 0xce, 0xcc, 0x59, 0x1d, 0xd3, 0x87, 0x17, 0x9a, 0x32, 0xec, 0x35, 0x65, + 0x69, 0x40, 0xdb, 0x7c, 0xeb, 0xc4, 0xfa, 0xd1, 0x40, 0xdb, 0xd9, 0x78, 0x62, 0x26, 0x79, 0x29, + 0x1b, 0x4f, 0x40, 0x72, 0x9a, 0xac, 0xfb, 0x37, 0x0c, 0x49, 0xa7, 0xd5, 0xa9, 0xea, 0xf7, 0xdb, + 0x46, 0xdb, 0x1c, 0xec, 0x57, 0xa9, 0xc7, 0xf2, 0x37, 0x61, 0xc2, 0x0a, 0xa9, 0xfd, 0x8b, 0x00, + 0x76, 0x85, 0xb4, 0x28, 0xc2, 0x14, 0x64, 0xc0, 0xa6, 0x8e, 0x67, 0x23, 0xdf, 0x04, 0x5c, 0xaf, + 0x6f, 0x93, 0x97, 0x5b, 0x61, 0xa8, 0xe9, 0xb6, 0xde, 0xeb, 0x35, 0xf7, 0x75, 0xf2, 0x8b, 0x8c, + 0xf5, 0xf6, 0x1b, 0xd6, 0x04, 0x72, 0x01, 0xa4, 0xfa, 0x36, 0x69, 0x78, 0x17, 0xa3, 0x4c, 0xd3, + 0x90, 0xea, 0xdb, 0xa9, 0xbf, 0x20, 0x98, 0xe6, 0x46, 0x65, 0x0d, 0xa6, 0x9c, 0x01, 0xe6, 0x71, + 0xc7, 0x1b, 0xdc, 0x98, 0xeb, 0xb3, 0x74, 0x4e, 0x9f, 0x53, 0x25, 0x98, 0x15, 0xc6, 0xe5, 0x65, + 0x90, 0xd9, 0x21, 0xe2, 0x04, 0xd8, 0x0d, 0xb5, 0x8f, 0x44, 0xfb, 0x3f, 0x00, 0x2f, 0xae, 0xf2, + 0x2c, 0x4c, 0xee, 0xde, 0xbd, 0x5d, 0xfb, 0x41, 0xbd, 0xf6, 0xe6, 0x6e, 0xad, 0x9a, 0x44, 0xda, + 0x1f, 0x10, 0x4c, 0x92, 0xb6, 0x75, 0xaf, 0x73, 0xa4, 0xcb, 0x65, 0x40, 0x25, 0xc2, 0x87, 0xa7, + 0xf3, 0x1b, 0x95, 0xe4, 0x15, 0x40, 0xe5, 0xe8, 0x50, 0xa3, 0xb2, 0x9c, 0x07, 0x54, 0x21, 0x00, + 0x47, 0x43, 0x06, 0x55, 0xb4, 0x7f, 0x61, 0x78, 0x96, 0x6d, 0xa3, 0xdd, 0x7a, 0x72, 0x85, 0xff, + 0x6e, 0x2a, 0x4e, 0xac, 0xe6, 0xd7, 0x0a, 0xcb, 0xd6, 0x3f, 0x94, 0x92, 0x1a, 0xff, 0x09, 0x55, + 0x04, 0xaa, 0xb2, 0x1a, 0x74, 0x4f, 0xa4, 0x18, 0x67, 0x66, 0x18, 0xb8, 0x27, 0xc2, 0x49, 0x07, + 0xee, 0x89, 0x70, 0xd2, 0x81, 0x7b, 0x22, 0x9c, 0x74, 0xe0, 0x2c, 0x80, 0x93, 0x0e, 0xdc, 0x13, + 0xe1, 0xa4, 0x03, 0xf7, 0x44, 0x38, 0xe9, 0xe0, 0x3d, 0x11, 0x22, 0x0e, 0xbc, 0x27, 0xc2, 0xcb, + 0x07, 0xef, 0x89, 0xf0, 0xf2, 0xc1, 0x7b, 0x22, 0xc5, 0xb8, 0xd9, 0x3d, 0xd6, 0x83, 0x4f, 0x1d, + 0x78, 0xfb, 0x61, 0x1f, 0x81, 0x5e, 0x05, 0xde, 0x81, 0x59, 0x67, 0x43, 0xa2, 0xd2, 0x31, 0xcc, + 0x66, 0xdb, 0xd0, 0xbb, 0xf2, 0x37, 0x60, 0xca, 0x19, 0x72, 0x3e, 0x73, 0xfc, 0x3e, 0x03, 0x1d, + 0x39, 0xa9, 0xb7, 0x9c, 0xb6, 0xf6, 0x65, 0x1c, 0xe6, 0x9c, 0x81, 0x7a, 0xf3, 0x81, 0xce, 0xdd, + 0x32, 0x5a, 0x12, 0xce, 0x94, 0x66, 0x2c, 0xf3, 0xfe, 0xe9, 0x82, 0x33, 0x5a, 0xa2, 0x6c, 0x5a, + 0x12, 0x4e, 0x97, 0x78, 0x3d, 0xef, 0x05, 0xb4, 0x24, 0xdc, 0x3c, 0xe2, 0xf5, 0xe8, 0xfb, 0x86, + 0xea, 0xb9, 0x77, 0x90, 0x78, 0xbd, 0x2a, 0x65, 0xd9, 0x92, 0x70, 0x1b, 0x89, 0xd7, 0xab, 0x51, + 0xbe, 0x2d, 0x09, 0x67, 0x4f, 0xbc, 0xde, 0x4d, 0xca, 0xbc, 0x25, 0xe1, 0x14, 0x8a, 0xd7, 0xfb, + 0x16, 0xe5, 0xe0, 0x92, 0x70, 0x57, 0x89, 0xd7, 0x7b, 0x9d, 0xb2, 0x71, 0x49, 0xb8, 0xb5, 0xc4, + 0xeb, 0x6d, 0x51, 0x5e, 0x66, 0xc4, 0xfb, 0x4b, 0xbc, 0xe2, 0x2d, 0x8f, 0xa1, 0x19, 0xf1, 0x26, + 0x13, 0xaf, 0xf9, 0x6d, 0x8f, 0xab, 0x19, 0xf1, 0x4e, 0x13, 0xaf, 0xf9, 0x86, 0xc7, 0xda, 0x8c, + 0x78, 0x56, 0xc6, 0x6b, 0x6e, 0x7b, 0xfc, 0xcd, 0x88, 0xa7, 0x66, 0xbc, 0x66, 0xdd, 0x63, 0x72, + 0x46, 0x3c, 0x3f, 0xe3, 0x35, 0x77, 0xbc, 0x4d, 0xf4, 0x8f, 0x04, 0xfa, 0x31, 0xb7, 0xa0, 0x34, + 0x81, 0x7e, 0xe0, 0x43, 0x3d, 0xa1, 0x90, 0x31, 0x3a, 0x1e, 0xed, 0x34, 0x81, 0x76, 0xe0, 0x43, + 0x39, 0x4d, 0xa0, 0x1c, 0xf8, 0xd0, 0x4d, 0x13, 0xe8, 0x06, 0x3e, 0x54, 0xd3, 0x04, 0xaa, 0x81, + 0x0f, 0xcd, 0x34, 0x81, 0x66, 0xe0, 0x43, 0x31, 0x4d, 0xa0, 0x18, 0xf8, 0xd0, 0x4b, 0x13, 0xe8, + 0x05, 0x3e, 0xd4, 0x5a, 0x14, 0xa9, 0x05, 0x7e, 0xb4, 0x5a, 0x14, 0x69, 0x05, 0x7e, 0x94, 0x7a, + 0x51, 0xa4, 0xd4, 0x44, 0xff, 0x74, 0x61, 0xcc, 0x1a, 0x62, 0xd8, 0xb4, 0x28, 0xb2, 0x09, 0xfc, + 0x98, 0xb4, 0x28, 0x32, 0x09, 0xfc, 0x58, 0xb4, 0x28, 0xb2, 0x08, 0xfc, 0x18, 0xf4, 0x58, 0x64, + 0x90, 0x77, 0xc7, 0x47, 0x13, 0x8e, 0x14, 0xc3, 0x18, 0x84, 0x23, 0x30, 0x08, 0x47, 0x60, 0x10, + 0x8e, 0xc0, 0x20, 0x1c, 0x81, 0x41, 0x38, 0x02, 0x83, 0x70, 0x04, 0x06, 0xe1, 0x08, 0x0c, 0xc2, + 0x51, 0x18, 0x84, 0x23, 0x31, 0x08, 0x07, 0x31, 0x68, 0x51, 0xbc, 0xf1, 0x00, 0x7e, 0x05, 0x69, + 0x51, 0x3c, 0xfa, 0x0c, 0xa7, 0x10, 0x8e, 0x44, 0x21, 0x1c, 0x44, 0xa1, 0x8f, 0x30, 0x3c, 0xcb, + 0x51, 0x88, 0x9c, 0x0f, 0x5d, 0x54, 0x05, 0xda, 0x88, 0x70, 0xc1, 0xc2, 0x8f, 0x53, 0x1b, 0x11, + 0x0e, 0xa9, 0x87, 0xf1, 0x6c, 0xb0, 0x0a, 0xd5, 0x22, 0x54, 0xa1, 0x9b, 0x94, 0x43, 0x1b, 0x11, + 0x2e, 0x5e, 0x0c, 0x72, 0x6f, 0x73, 0x58, 0x11, 0x78, 0x3d, 0x52, 0x11, 0xd8, 0x8a, 0x54, 0x04, + 0x6e, 0x79, 0x08, 0xfe, 0x54, 0x82, 0xe7, 0x3c, 0x04, 0x9d, 0xbf, 0x76, 0x1f, 0x1e, 0x59, 0x25, + 0xc0, 0x3b, 0xa2, 0x92, 0xdd, 0x63, 0x1b, 0x06, 0x46, 0x69, 0xab, 0x25, 0xdf, 0xe6, 0x0f, 0xab, + 0x8a, 0xa3, 0x1e, 0xe0, 0x30, 0x88, 0x93, 0xcd, 0xd0, 0x45, 0xc0, 0x5b, 0xad, 0x9e, 0x5d, 0x2d, + 0xfc, 0x96, 0xad, 0x34, 0x2c, 0xb1, 0xdc, 0x80, 0x71, 0x5b, 0xbd, 0x67, 0xc3, 0x7b, 0x9e, 0x85, + 0xab, 0x0d, 0x32, 0x93, 0xf6, 0x18, 0x41, 0x9a, 0xa3, 0xf2, 0xc5, 0x1c, 0x19, 0xbc, 0x12, 0xe9, + 0xc8, 0x80, 0x4b, 0x10, 0xef, 0xf8, 0xe0, 0xff, 0x07, 0x4f, 0xaa, 0xd9, 0x2c, 0x11, 0x8f, 0x12, + 0x7e, 0x02, 0x33, 0xde, 0x13, 0xd8, 0xdf, 0x6c, 0xeb, 0xe1, 0xbb, 0x99, 0x7e, 0xa9, 0xb9, 0x2e, + 0xec, 0xa2, 0x0d, 0x35, 0xa3, 0xd9, 0xaa, 0x15, 0x61, 0xb6, 0xde, 0xb1, 0x77, 0x00, 0x7a, 0xed, + 0x8e, 0xd1, 0xdb, 0x6e, 0x1e, 0x85, 0x6d, 0x46, 0x24, 0xac, 0xd6, 0xfc, 0xe4, 0xd7, 0x0b, 0x31, + 0xed, 0x65, 0x98, 0xba, 0x63, 0x74, 0xf5, 0xbd, 0xce, 0xbe, 0xd1, 0xfe, 0xb1, 0xde, 0x12, 0x0c, + 0x27, 0x5c, 0xc3, 0x62, 0xfc, 0x89, 0xa5, 0xfd, 0x0b, 0x04, 0x97, 0x59, 0xf5, 0xef, 0xb6, 0xcd, + 0x83, 0x2d, 0xc3, 0xea, 0xe9, 0x5f, 0x85, 0x84, 0x4e, 0x80, 0xb3, 0xdf, 0x5d, 0x93, 0xee, 0x77, + 0xa4, 0xaf, 0xfa, 0xb2, 0xfd, 0x6f, 0x83, 0x9a, 0x08, 0xbb, 0x20, 0xee, 0xb2, 0xf9, 0xd4, 0x55, + 0x18, 0x73, 0xe6, 0xe7, 0xfd, 0x9a, 0x16, 0xfc, 0xfa, 0xad, 0x8f, 0x5f, 0x36, 0x8f, 0xe4, 0x5b, + 0x9c, 0x5f, 0xcc, 0xe7, 0xaa, 0xaf, 0xfa, 0xb2, 0x4b, 0xbe, 0x72, 0xc2, 0xea, 0xff, 0x6c, 0x46, + 0x85, 0x3b, 0x99, 0x81, 0x44, 0x4d, 0xd4, 0xf1, 0xf7, 0xb3, 0x0a, 0xf1, 0x7a, 0xa7, 0xa5, 0xcb, + 0xcf, 0xc1, 0xd8, 0x1b, 0xcd, 0x7b, 0xfa, 0x21, 0x09, 0xb2, 0xf3, 0x43, 0x5e, 0x82, 0x44, 0xe5, + 0xa0, 0x7d, 0xd8, 0xea, 0xea, 0x06, 0x39, 0xb3, 0x27, 0x5b, 0xe8, 0x96, 0x4d, 0x83, 0xca, 0xb4, + 0x0a, 0x5c, 0xaa, 0x77, 0x8c, 0xf2, 0x43, 0x93, 0xad, 0x1b, 0xcb, 0x42, 0x8a, 0x90, 0x33, 0x9f, + 0xdb, 0x56, 0x36, 0x5a, 0x0a, 0xe5, 0xb1, 0x8f, 0x4f, 0x17, 0xd0, 0x2e, 0xdd, 0x3f, 0xdf, 0x86, + 0xe7, 0x49, 0xfa, 0x0c, 0x4c, 0x95, 0x0f, 0x9b, 0x6a, 0x82, 0x9c, 0x53, 0x33, 0xd3, 0x6d, 0x59, + 0xd3, 0x19, 0xbe, 0xd3, 0x3d, 0x9d, 0x67, 0x56, 0x53, 0x34, 0xd4, 0x33, 0x3c, 0x92, 0x67, 0xbe, + 0xd3, 0x2d, 0x87, 0x4d, 0x27, 0x78, 0xf6, 0x22, 0x4c, 0x50, 0x19, 0xc3, 0x06, 0x36, 0x53, 0xf2, + 0x59, 0x0d, 0x26, 0x99, 0x84, 0x95, 0xc7, 0x00, 0x95, 0x92, 0x31, 0xeb, 0xbf, 0x72, 0x12, 0x59, + 0xff, 0x55, 0x92, 0x52, 0xf6, 0x2a, 0xcc, 0x0a, 0xfb, 0x97, 0x96, 0xa4, 0x9a, 0x04, 0xeb, 0xbf, + 0x5a, 0x72, 0x32, 0x15, 0x7f, 0xef, 0x37, 0x6a, 0x2c, 0xfb, 0x0a, 0xc8, 0x83, 0x3b, 0x9d, 0xf2, + 0x38, 0x48, 0x25, 0x6b, 0xca, 0xe7, 0x41, 0x2a, 0x97, 0x93, 0x28, 0x35, 0xfb, 0xb3, 0x5f, 0xa6, + 0x27, 0xcb, 0xba, 0x69, 0xea, 0xdd, 0xbb, 0xba, 0x59, 0x2e, 0x13, 0xe3, 0xd7, 0xe0, 0xb2, 0xef, + 0x4e, 0xa9, 0x65, 0x5f, 0xa9, 0x38, 0xf6, 0xd5, 0xea, 0x80, 0x7d, 0xb5, 0x6a, 0xdb, 0xa3, 0xa2, + 0x7b, 0xe2, 0x5c, 0x92, 0x7d, 0x76, 0x19, 0x95, 0x16, 0x73, 0xc2, 0x5d, 0x2a, 0xbe, 0x46, 0x74, + 0xcb, 0xbe, 0xba, 0x7a, 0xc8, 0x89, 0x75, 0xb9, 0x58, 0x21, 0xf6, 0x15, 0x5f, 0xfb, 0xfb, 0xc2, + 0xb1, 0x2a, 0xff, 0x86, 0x20, 0x93, 0x54, 0xa8, 0xc3, 0x55, 0xdf, 0x49, 0x0e, 0x98, 0xcb, 0xee, + 0x55, 0xea, 0x70, 0xcd, 0x57, 0xb7, 0x1d, 0x72, 0xe9, 0xab, 0x56, 0x5c, 0x21, 0x2f, 0xf9, 0xd2, + 0xaa, 0x7c, 0xd9, 0xcd, 0x51, 0xae, 0x02, 0x93, 0x00, 0xb9, 0x5a, 0xc5, 0x0a, 0x31, 0x28, 0x07, + 0x1a, 0x04, 0x47, 0xc9, 0xb5, 0x2c, 0xbe, 0x4e, 0x26, 0xa9, 0x04, 0x4e, 0x12, 0x12, 0x2a, 0xd7, + 0xbc, 0xbc, 0x7b, 0x72, 0xa6, 0xc6, 0x9e, 0x9c, 0xa9, 0xb1, 0x7f, 0x9c, 0xa9, 0xb1, 0x4f, 0xce, + 0x54, 0xf4, 0xd9, 0x99, 0x8a, 0x3e, 0x3f, 0x53, 0xd1, 0x17, 0x67, 0x2a, 0x7a, 0xa7, 0xaf, 0xa2, + 0x0f, 0xfa, 0x2a, 0xfa, 0xb0, 0xaf, 0xa2, 0x3f, 0xf6, 0x55, 0xf4, 0xb8, 0xaf, 0xa2, 0x93, 0xbe, + 0x1a, 0x7b, 0xd2, 0x57, 0x63, 0x9f, 0xf4, 0x55, 0xf4, 0x59, 0x5f, 0x8d, 0x7d, 0xde, 0x57, 0xd1, + 0x17, 0x7d, 0x35, 0xf6, 0xce, 0xa7, 0x6a, 0xec, 0xd1, 0xa7, 0x6a, 0xec, 0x83, 0x4f, 0x55, 0xf4, + 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xab, 0x64, 0x51, 0x3b, 0x36, 0x00, 0x00, } diff --git a/vendor/github.com/gogo/protobuf/test/thetestpb_test.go b/vendor/github.com/gogo/protobuf/test/thetestpb_test.go index a0c97acff..6bd5195c6 100644 --- a/vendor/github.com/gogo/protobuf/test/thetestpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/thetestpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: thetest.proto -// DO NOT EDIT! /* Package test is a generated protocol buffer package. @@ -77,13 +76,12 @@ It has these top-level messages: package test import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -94,14 +92,14 @@ var _ = math.Inf func TestNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -122,12 +120,12 @@ func TestNidOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNative, 10000) for i := 0; i < 10000; i++ { @@ -135,7 +133,7 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -145,11 +143,11 @@ func BenchmarkNidOptNativeProtoMarshal(b *testing.B) { } func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptNative(popr, false)) if err != nil { panic(err) } @@ -159,7 +157,7 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -168,14 +166,14 @@ func BenchmarkNidOptNativeProtoUnmarshal(b *testing.B) { func TestNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -196,12 +194,12 @@ func TestNinOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNative, 10000) for i := 0; i < 10000; i++ { @@ -209,7 +207,7 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -219,11 +217,11 @@ func BenchmarkNinOptNativeProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNative(popr, false)) if err != nil { panic(err) } @@ -233,7 +231,7 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -242,14 +240,14 @@ func BenchmarkNinOptNativeProtoUnmarshal(b *testing.B) { func TestNidRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -270,12 +268,12 @@ func TestNidRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNative, 10000) for i := 0; i < 10000; i++ { @@ -283,7 +281,7 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -293,11 +291,11 @@ func BenchmarkNidRepNativeProtoMarshal(b *testing.B) { } func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepNative(popr, false)) if err != nil { panic(err) } @@ -307,7 +305,7 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -316,14 +314,14 @@ func BenchmarkNidRepNativeProtoUnmarshal(b *testing.B) { func TestNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -344,12 +342,12 @@ func TestNinRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNative, 10000) for i := 0; i < 10000; i++ { @@ -357,7 +355,7 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -367,11 +365,11 @@ func BenchmarkNinRepNativeProtoMarshal(b *testing.B) { } func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepNative(popr, false)) if err != nil { panic(err) } @@ -381,7 +379,7 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -390,14 +388,14 @@ func BenchmarkNinRepNativeProtoUnmarshal(b *testing.B) { func TestNidRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -418,12 +416,12 @@ func TestNidRepPackedNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepPackedNative, 10000) for i := 0; i < 10000; i++ { @@ -431,7 +429,7 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -441,11 +439,11 @@ func BenchmarkNidRepPackedNativeProtoMarshal(b *testing.B) { } func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepPackedNative(popr, false)) if err != nil { panic(err) } @@ -455,7 +453,7 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -464,14 +462,14 @@ func BenchmarkNidRepPackedNativeProtoUnmarshal(b *testing.B) { func TestNinRepPackedNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -492,12 +490,12 @@ func TestNinRepPackedNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepPackedNative, 10000) for i := 0; i < 10000; i++ { @@ -505,7 +503,7 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -515,11 +513,11 @@ func BenchmarkNinRepPackedNativeProtoMarshal(b *testing.B) { } func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepPackedNative(popr, false)) if err != nil { panic(err) } @@ -529,7 +527,7 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -538,14 +536,14 @@ func BenchmarkNinRepPackedNativeProtoUnmarshal(b *testing.B) { func TestNidOptStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -566,12 +564,12 @@ func TestNidOptStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptStruct, 10000) for i := 0; i < 10000; i++ { @@ -579,7 +577,7 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -589,11 +587,11 @@ func BenchmarkNidOptStructProtoMarshal(b *testing.B) { } func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptStruct(popr, false)) if err != nil { panic(err) } @@ -603,7 +601,7 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -612,14 +610,14 @@ func BenchmarkNidOptStructProtoUnmarshal(b *testing.B) { func TestNinOptStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -640,12 +638,12 @@ func TestNinOptStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStruct, 10000) for i := 0; i < 10000; i++ { @@ -653,7 +651,7 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -663,11 +661,11 @@ func BenchmarkNinOptStructProtoMarshal(b *testing.B) { } func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptStruct(popr, false)) if err != nil { panic(err) } @@ -677,7 +675,7 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -686,14 +684,14 @@ func BenchmarkNinOptStructProtoUnmarshal(b *testing.B) { func TestNidRepStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -714,12 +712,12 @@ func TestNidRepStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepStruct, 10000) for i := 0; i < 10000; i++ { @@ -727,7 +725,7 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -737,11 +735,11 @@ func BenchmarkNidRepStructProtoMarshal(b *testing.B) { } func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepStruct(popr, false)) if err != nil { panic(err) } @@ -751,7 +749,7 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -760,14 +758,14 @@ func BenchmarkNidRepStructProtoUnmarshal(b *testing.B) { func TestNinRepStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -788,12 +786,12 @@ func TestNinRepStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepStruct, 10000) for i := 0; i < 10000; i++ { @@ -801,7 +799,7 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -811,11 +809,11 @@ func BenchmarkNinRepStructProtoMarshal(b *testing.B) { } func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepStruct(popr, false)) if err != nil { panic(err) } @@ -825,7 +823,7 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -834,14 +832,14 @@ func BenchmarkNinRepStructProtoUnmarshal(b *testing.B) { func TestNidEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -862,12 +860,12 @@ func TestNidEmbeddedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidEmbeddedStruct, 10000) for i := 0; i < 10000; i++ { @@ -875,7 +873,7 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -885,11 +883,11 @@ func BenchmarkNidEmbeddedStructProtoMarshal(b *testing.B) { } func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidEmbeddedStruct(popr, false)) if err != nil { panic(err) } @@ -899,7 +897,7 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -908,14 +906,14 @@ func BenchmarkNidEmbeddedStructProtoUnmarshal(b *testing.B) { func TestNinEmbeddedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -936,12 +934,12 @@ func TestNinEmbeddedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStruct, 10000) for i := 0; i < 10000; i++ { @@ -949,7 +947,7 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -959,11 +957,11 @@ func BenchmarkNinEmbeddedStructProtoMarshal(b *testing.B) { } func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinEmbeddedStruct(popr, false)) if err != nil { panic(err) } @@ -973,7 +971,7 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -982,14 +980,14 @@ func BenchmarkNinEmbeddedStructProtoUnmarshal(b *testing.B) { func TestNidNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1010,12 +1008,12 @@ func TestNidNestedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidNestedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1023,7 +1021,7 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1033,11 +1031,11 @@ func BenchmarkNidNestedStructProtoMarshal(b *testing.B) { } func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidNestedStruct(popr, false)) if err != nil { panic(err) } @@ -1047,7 +1045,7 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1056,14 +1054,14 @@ func BenchmarkNidNestedStructProtoUnmarshal(b *testing.B) { func TestNinNestedStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1084,12 +1082,12 @@ func TestNinNestedStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStruct, 10000) for i := 0; i < 10000; i++ { @@ -1097,7 +1095,7 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1107,11 +1105,11 @@ func BenchmarkNinNestedStructProtoMarshal(b *testing.B) { } func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinNestedStruct(popr, false)) if err != nil { panic(err) } @@ -1121,7 +1119,7 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1130,14 +1128,14 @@ func BenchmarkNinNestedStructProtoUnmarshal(b *testing.B) { func TestNidOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1158,12 +1156,12 @@ func TestNidOptCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptCustom, 10000) for i := 0; i < 10000; i++ { @@ -1171,7 +1169,7 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1181,11 +1179,11 @@ func BenchmarkNidOptCustomProtoMarshal(b *testing.B) { } func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptCustom(popr, false)) if err != nil { panic(err) } @@ -1195,7 +1193,7 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1204,14 +1202,14 @@ func BenchmarkNidOptCustomProtoUnmarshal(b *testing.B) { func TestCustomDashProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1232,12 +1230,12 @@ func TestCustomDashProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomDashProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomDash, 10000) for i := 0; i < 10000; i++ { @@ -1245,7 +1243,7 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1255,11 +1253,11 @@ func BenchmarkCustomDashProtoMarshal(b *testing.B) { } func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomDash(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomDash(popr, false)) if err != nil { panic(err) } @@ -1269,7 +1267,7 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1278,14 +1276,14 @@ func BenchmarkCustomDashProtoUnmarshal(b *testing.B) { func TestNinOptCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1306,12 +1304,12 @@ func TestNinOptCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptCustom, 10000) for i := 0; i < 10000; i++ { @@ -1319,7 +1317,7 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1329,11 +1327,11 @@ func BenchmarkNinOptCustomProtoMarshal(b *testing.B) { } func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptCustom(popr, false)) if err != nil { panic(err) } @@ -1343,7 +1341,7 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1352,14 +1350,14 @@ func BenchmarkNinOptCustomProtoUnmarshal(b *testing.B) { func TestNidRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1380,12 +1378,12 @@ func TestNidRepCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepCustom, 10000) for i := 0; i < 10000; i++ { @@ -1393,7 +1391,7 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1403,11 +1401,11 @@ func BenchmarkNidRepCustomProtoMarshal(b *testing.B) { } func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepCustom(popr, false)) if err != nil { panic(err) } @@ -1417,7 +1415,7 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1426,14 +1424,14 @@ func BenchmarkNidRepCustomProtoUnmarshal(b *testing.B) { func TestNinRepCustomProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1454,12 +1452,12 @@ func TestNinRepCustomProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepCustom, 10000) for i := 0; i < 10000; i++ { @@ -1467,7 +1465,7 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1477,11 +1475,11 @@ func BenchmarkNinRepCustomProtoMarshal(b *testing.B) { } func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepCustom(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepCustom(popr, false)) if err != nil { panic(err) } @@ -1491,7 +1489,7 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1500,14 +1498,14 @@ func BenchmarkNinRepCustomProtoUnmarshal(b *testing.B) { func TestNinOptNativeUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1528,12 +1526,12 @@ func TestNinOptNativeUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeUnion, 10000) for i := 0; i < 10000; i++ { @@ -1541,7 +1539,7 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1551,11 +1549,11 @@ func BenchmarkNinOptNativeUnionProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNativeUnion(popr, false)) if err != nil { panic(err) } @@ -1565,7 +1563,7 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1574,14 +1572,14 @@ func BenchmarkNinOptNativeUnionProtoUnmarshal(b *testing.B) { func TestNinOptStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1602,12 +1600,12 @@ func TestNinOptStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -1615,7 +1613,7 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1625,11 +1623,11 @@ func BenchmarkNinOptStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptStructUnion(popr, false)) if err != nil { panic(err) } @@ -1639,7 +1637,7 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1648,14 +1646,14 @@ func BenchmarkNinOptStructUnionProtoUnmarshal(b *testing.B) { func TestNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1676,12 +1674,12 @@ func TestNinEmbeddedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -1689,7 +1687,7 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1699,11 +1697,11 @@ func BenchmarkNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } @@ -1713,7 +1711,7 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1722,14 +1720,14 @@ func BenchmarkNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { func TestNinNestedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1750,12 +1748,12 @@ func TestNinNestedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -1763,7 +1761,7 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1773,11 +1771,11 @@ func BenchmarkNinNestedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinNestedStructUnion(popr, false)) if err != nil { panic(err) } @@ -1787,7 +1785,7 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1796,14 +1794,14 @@ func BenchmarkNinNestedStructUnionProtoUnmarshal(b *testing.B) { func TestTreeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1824,12 +1822,12 @@ func TestTreeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Tree, 10000) for i := 0; i < 10000; i++ { @@ -1837,7 +1835,7 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1847,11 +1845,11 @@ func BenchmarkTreeProtoMarshal(b *testing.B) { } func BenchmarkTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTree(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedTree(popr, false)) if err != nil { panic(err) } @@ -1861,7 +1859,7 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1870,14 +1868,14 @@ func BenchmarkTreeProtoUnmarshal(b *testing.B) { func TestOrBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1898,12 +1896,12 @@ func TestOrBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkOrBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OrBranch, 10000) for i := 0; i < 10000; i++ { @@ -1911,7 +1909,7 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1921,11 +1919,11 @@ func BenchmarkOrBranchProtoMarshal(b *testing.B) { } func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOrBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOrBranch(popr, false)) if err != nil { panic(err) } @@ -1935,7 +1933,7 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -1944,14 +1942,14 @@ func BenchmarkOrBranchProtoUnmarshal(b *testing.B) { func TestAndBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -1972,12 +1970,12 @@ func TestAndBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAndBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndBranch, 10000) for i := 0; i < 10000; i++ { @@ -1985,7 +1983,7 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -1995,11 +1993,11 @@ func BenchmarkAndBranchProtoMarshal(b *testing.B) { } func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAndBranch(popr, false)) if err != nil { panic(err) } @@ -2009,7 +2007,7 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2018,14 +2016,14 @@ func BenchmarkAndBranchProtoUnmarshal(b *testing.B) { func TestLeafProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2046,12 +2044,12 @@ func TestLeafProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Leaf, 10000) for i := 0; i < 10000; i++ { @@ -2059,7 +2057,7 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2069,11 +2067,11 @@ func BenchmarkLeafProtoMarshal(b *testing.B) { } func BenchmarkLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedLeaf(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedLeaf(popr, false)) if err != nil { panic(err) } @@ -2083,7 +2081,7 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2092,14 +2090,14 @@ func BenchmarkLeafProtoUnmarshal(b *testing.B) { func TestDeepTreeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2120,12 +2118,12 @@ func TestDeepTreeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkDeepTreeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepTree, 10000) for i := 0; i < 10000; i++ { @@ -2133,7 +2131,7 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2143,11 +2141,11 @@ func BenchmarkDeepTreeProtoMarshal(b *testing.B) { } func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepTree(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDeepTree(popr, false)) if err != nil { panic(err) } @@ -2157,7 +2155,7 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2166,14 +2164,14 @@ func BenchmarkDeepTreeProtoUnmarshal(b *testing.B) { func TestADeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2194,12 +2192,12 @@ func TestADeepBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkADeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ADeepBranch, 10000) for i := 0; i < 10000; i++ { @@ -2207,7 +2205,7 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2217,11 +2215,11 @@ func BenchmarkADeepBranchProtoMarshal(b *testing.B) { } func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedADeepBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedADeepBranch(popr, false)) if err != nil { panic(err) } @@ -2231,7 +2229,7 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2240,14 +2238,14 @@ func BenchmarkADeepBranchProtoUnmarshal(b *testing.B) { func TestAndDeepBranchProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2268,12 +2266,12 @@ func TestAndDeepBranchProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndDeepBranch, 10000) for i := 0; i < 10000; i++ { @@ -2281,7 +2279,7 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2291,11 +2289,11 @@ func BenchmarkAndDeepBranchProtoMarshal(b *testing.B) { } func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAndDeepBranch(popr, false)) if err != nil { panic(err) } @@ -2305,7 +2303,7 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2314,14 +2312,14 @@ func BenchmarkAndDeepBranchProtoUnmarshal(b *testing.B) { func TestDeepLeafProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2342,12 +2340,12 @@ func TestDeepLeafProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkDeepLeafProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepLeaf, 10000) for i := 0; i < 10000; i++ { @@ -2355,7 +2353,7 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2365,11 +2363,11 @@ func BenchmarkDeepLeafProtoMarshal(b *testing.B) { } func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDeepLeaf(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDeepLeaf(popr, false)) if err != nil { panic(err) } @@ -2379,7 +2377,7 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2388,14 +2386,14 @@ func BenchmarkDeepLeafProtoUnmarshal(b *testing.B) { func TestNilProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2416,12 +2414,12 @@ func TestNilProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNilProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nil, 10000) for i := 0; i < 10000; i++ { @@ -2429,7 +2427,7 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2439,11 +2437,11 @@ func BenchmarkNilProtoMarshal(b *testing.B) { } func BenchmarkNilProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNil(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNil(popr, false)) if err != nil { panic(err) } @@ -2453,7 +2451,7 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2462,14 +2460,14 @@ func BenchmarkNilProtoUnmarshal(b *testing.B) { func TestNidOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2490,12 +2488,12 @@ func TestNidOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -2503,7 +2501,7 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2513,11 +2511,11 @@ func BenchmarkNidOptEnumProtoMarshal(b *testing.B) { } func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptEnum(popr, false)) if err != nil { panic(err) } @@ -2527,7 +2525,7 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2536,14 +2534,14 @@ func BenchmarkNidOptEnumProtoUnmarshal(b *testing.B) { func TestNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2564,12 +2562,12 @@ func TestNinOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -2577,7 +2575,7 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2587,11 +2585,11 @@ func BenchmarkNinOptEnumProtoMarshal(b *testing.B) { } func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptEnum(popr, false)) if err != nil { panic(err) } @@ -2601,7 +2599,7 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2610,14 +2608,14 @@ func BenchmarkNinOptEnumProtoUnmarshal(b *testing.B) { func TestNidRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2638,12 +2636,12 @@ func TestNidRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepEnum, 10000) for i := 0; i < 10000; i++ { @@ -2651,7 +2649,7 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2661,11 +2659,11 @@ func BenchmarkNidRepEnumProtoMarshal(b *testing.B) { } func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepEnum(popr, false)) if err != nil { panic(err) } @@ -2675,7 +2673,7 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2684,14 +2682,14 @@ func BenchmarkNidRepEnumProtoUnmarshal(b *testing.B) { func TestNinRepEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2712,12 +2710,12 @@ func TestNinRepEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepEnum, 10000) for i := 0; i < 10000; i++ { @@ -2725,7 +2723,7 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2735,11 +2733,11 @@ func BenchmarkNinRepEnumProtoMarshal(b *testing.B) { } func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepEnum(popr, false)) if err != nil { panic(err) } @@ -2749,7 +2747,7 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2758,14 +2756,14 @@ func BenchmarkNinRepEnumProtoUnmarshal(b *testing.B) { func TestNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2786,12 +2784,12 @@ func TestNinOptEnumDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnumDefault, 10000) for i := 0; i < 10000; i++ { @@ -2799,7 +2797,7 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2809,11 +2807,11 @@ func BenchmarkNinOptEnumDefaultProtoMarshal(b *testing.B) { } func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptEnumDefault(popr, false)) if err != nil { panic(err) } @@ -2823,7 +2821,7 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2832,14 +2830,14 @@ func BenchmarkNinOptEnumDefaultProtoUnmarshal(b *testing.B) { func TestAnotherNinOptEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2860,12 +2858,12 @@ func TestAnotherNinOptEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnum, 10000) for i := 0; i < 10000; i++ { @@ -2873,7 +2871,7 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2883,11 +2881,11 @@ func BenchmarkAnotherNinOptEnumProtoMarshal(b *testing.B) { } func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAnotherNinOptEnum(popr, false)) if err != nil { panic(err) } @@ -2897,7 +2895,7 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2906,14 +2904,14 @@ func BenchmarkAnotherNinOptEnumProtoUnmarshal(b *testing.B) { func TestAnotherNinOptEnumDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -2934,12 +2932,12 @@ func TestAnotherNinOptEnumDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnumDefault, 10000) for i := 0; i < 10000; i++ { @@ -2947,7 +2945,7 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -2957,11 +2955,11 @@ func BenchmarkAnotherNinOptEnumDefaultProtoMarshal(b *testing.B) { } func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedAnotherNinOptEnumDefault(popr, false)) if err != nil { panic(err) } @@ -2971,7 +2969,7 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -2980,14 +2978,14 @@ func BenchmarkAnotherNinOptEnumDefaultProtoUnmarshal(b *testing.B) { func TestTimerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3008,12 +3006,12 @@ func TestTimerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkTimerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Timer, 10000) for i := 0; i < 10000; i++ { @@ -3021,7 +3019,7 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3031,11 +3029,11 @@ func BenchmarkTimerProtoMarshal(b *testing.B) { } func BenchmarkTimerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedTimer(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedTimer(popr, false)) if err != nil { panic(err) } @@ -3045,7 +3043,7 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3054,14 +3052,14 @@ func BenchmarkTimerProtoUnmarshal(b *testing.B) { func TestMyExtendableProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3082,12 +3080,12 @@ func TestMyExtendableProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMyExtendableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyExtendable, 10000) for i := 0; i < 10000; i++ { @@ -3095,7 +3093,7 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3105,11 +3103,11 @@ func BenchmarkMyExtendableProtoMarshal(b *testing.B) { } func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyExtendable(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMyExtendable(popr, false)) if err != nil { panic(err) } @@ -3119,7 +3117,7 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3128,14 +3126,14 @@ func BenchmarkMyExtendableProtoUnmarshal(b *testing.B) { func TestOtherExtenableProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3156,12 +3154,12 @@ func TestOtherExtenableProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OtherExtenable, 10000) for i := 0; i < 10000; i++ { @@ -3169,7 +3167,7 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3179,11 +3177,11 @@ func BenchmarkOtherExtenableProtoMarshal(b *testing.B) { } func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOtherExtenable(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOtherExtenable(popr, false)) if err != nil { panic(err) } @@ -3193,7 +3191,7 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3202,14 +3200,14 @@ func BenchmarkOtherExtenableProtoUnmarshal(b *testing.B) { func TestNestedDefinitionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3230,12 +3228,12 @@ func TestNestedDefinitionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition, 10000) for i := 0; i < 10000; i++ { @@ -3243,7 +3241,7 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3253,11 +3251,11 @@ func BenchmarkNestedDefinitionProtoMarshal(b *testing.B) { } func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition(popr, false)) if err != nil { panic(err) } @@ -3267,7 +3265,7 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3276,14 +3274,14 @@ func BenchmarkNestedDefinitionProtoUnmarshal(b *testing.B) { func TestNestedDefinition_NestedMessageProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3304,12 +3302,12 @@ func TestNestedDefinition_NestedMessageProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage, 10000) for i := 0; i < 10000; i++ { @@ -3317,7 +3315,7 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3327,11 +3325,11 @@ func BenchmarkNestedDefinition_NestedMessageProtoMarshal(b *testing.B) { } func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition_NestedMessage(popr, false)) if err != nil { panic(err) } @@ -3341,7 +3339,7 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3350,14 +3348,14 @@ func BenchmarkNestedDefinition_NestedMessageProtoUnmarshal(b *testing.B) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3378,12 +3376,12 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 10000) for i := 0; i < 10000; i++ { @@ -3391,7 +3389,7 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3401,11 +3399,11 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoMarshal(b *test } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false)) if err != nil { panic(err) } @@ -3415,7 +3413,7 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3424,14 +3422,14 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgProtoUnmarshal(b *te func TestNestedScopeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3452,12 +3450,12 @@ func TestNestedScopeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNestedScopeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedScope, 10000) for i := 0; i < 10000; i++ { @@ -3465,7 +3463,7 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3475,11 +3473,11 @@ func BenchmarkNestedScopeProtoMarshal(b *testing.B) { } func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNestedScope(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNestedScope(popr, false)) if err != nil { panic(err) } @@ -3489,7 +3487,7 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3498,14 +3496,14 @@ func BenchmarkNestedScopeProtoUnmarshal(b *testing.B) { func TestNinOptNativeDefaultProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3526,12 +3524,12 @@ func TestNinOptNativeDefaultProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeDefault, 10000) for i := 0; i < 10000; i++ { @@ -3539,7 +3537,7 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3549,11 +3547,11 @@ func BenchmarkNinOptNativeDefaultProtoMarshal(b *testing.B) { } func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNativeDefault(popr, false)) if err != nil { panic(err) } @@ -3563,7 +3561,7 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3572,14 +3570,14 @@ func BenchmarkNinOptNativeDefaultProtoUnmarshal(b *testing.B) { func TestCustomContainerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3600,12 +3598,12 @@ func TestCustomContainerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomContainerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomContainer, 10000) for i := 0; i < 10000; i++ { @@ -3613,7 +3611,7 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3623,11 +3621,11 @@ func BenchmarkCustomContainerProtoMarshal(b *testing.B) { } func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomContainer(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomContainer(popr, false)) if err != nil { panic(err) } @@ -3637,7 +3635,7 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3646,14 +3644,14 @@ func BenchmarkCustomContainerProtoUnmarshal(b *testing.B) { func TestCustomNameNidOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3674,12 +3672,12 @@ func TestCustomNameNidOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNidOptNative, 10000) for i := 0; i < 10000; i++ { @@ -3687,7 +3685,7 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3697,11 +3695,11 @@ func BenchmarkCustomNameNidOptNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNidOptNative(popr, false)) if err != nil { panic(err) } @@ -3711,7 +3709,7 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3720,14 +3718,14 @@ func BenchmarkCustomNameNidOptNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinOptNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3748,12 +3746,12 @@ func TestCustomNameNinOptNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinOptNative, 10000) for i := 0; i < 10000; i++ { @@ -3761,7 +3759,7 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3771,11 +3769,11 @@ func BenchmarkCustomNameNinOptNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinOptNative(popr, false)) if err != nil { panic(err) } @@ -3785,7 +3783,7 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3794,14 +3792,14 @@ func BenchmarkCustomNameNinOptNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinRepNativeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3822,12 +3820,12 @@ func TestCustomNameNinRepNativeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinRepNative, 10000) for i := 0; i < 10000; i++ { @@ -3835,7 +3833,7 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3845,11 +3843,11 @@ func BenchmarkCustomNameNinRepNativeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinRepNative(popr, false)) if err != nil { panic(err) } @@ -3859,7 +3857,7 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3868,14 +3866,14 @@ func BenchmarkCustomNameNinRepNativeProtoUnmarshal(b *testing.B) { func TestCustomNameNinStructProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3896,12 +3894,12 @@ func TestCustomNameNinStructProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinStruct, 10000) for i := 0; i < 10000; i++ { @@ -3909,7 +3907,7 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3919,11 +3917,11 @@ func BenchmarkCustomNameNinStructProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinStruct(popr, false)) if err != nil { panic(err) } @@ -3933,7 +3931,7 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -3942,14 +3940,14 @@ func BenchmarkCustomNameNinStructProtoUnmarshal(b *testing.B) { func TestCustomNameCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -3970,12 +3968,12 @@ func TestCustomNameCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameCustomType, 10000) for i := 0; i < 10000; i++ { @@ -3983,7 +3981,7 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -3993,11 +3991,11 @@ func BenchmarkCustomNameCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameCustomType(popr, false)) if err != nil { panic(err) } @@ -4007,7 +4005,7 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4016,14 +4014,14 @@ func BenchmarkCustomNameCustomTypeProtoUnmarshal(b *testing.B) { func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4044,12 +4042,12 @@ func TestCustomNameNinEmbeddedStructUnionProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinEmbeddedStructUnion, 10000) for i := 0; i < 10000; i++ { @@ -4057,7 +4055,7 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4067,11 +4065,11 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoMarshal(b *testing.B) { } func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false)) if err != nil { panic(err) } @@ -4081,7 +4079,7 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4090,14 +4088,14 @@ func BenchmarkCustomNameNinEmbeddedStructUnionProtoUnmarshal(b *testing.B) { func TestCustomNameEnumProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4118,12 +4116,12 @@ func TestCustomNameEnumProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameEnum, 10000) for i := 0; i < 10000; i++ { @@ -4131,7 +4129,7 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4141,11 +4139,11 @@ func BenchmarkCustomNameEnumProtoMarshal(b *testing.B) { } func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedCustomNameEnum(popr, false)) if err != nil { panic(err) } @@ -4155,7 +4153,7 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4164,14 +4162,14 @@ func BenchmarkCustomNameEnumProtoUnmarshal(b *testing.B) { func TestNoExtensionsMapProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4192,12 +4190,12 @@ func TestNoExtensionsMapProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NoExtensionsMap, 10000) for i := 0; i < 10000; i++ { @@ -4205,7 +4203,7 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4215,11 +4213,11 @@ func BenchmarkNoExtensionsMapProtoMarshal(b *testing.B) { } func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNoExtensionsMap(popr, false)) if err != nil { panic(err) } @@ -4229,7 +4227,7 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4238,14 +4236,14 @@ func BenchmarkNoExtensionsMapProtoUnmarshal(b *testing.B) { func TestUnrecognizedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4266,12 +4264,12 @@ func TestUnrecognizedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Unrecognized, 10000) for i := 0; i < 10000; i++ { @@ -4279,7 +4277,7 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4289,11 +4287,11 @@ func BenchmarkUnrecognizedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognized(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognized(popr, false)) if err != nil { panic(err) } @@ -4303,7 +4301,7 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4312,14 +4310,14 @@ func BenchmarkUnrecognizedProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithInnerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4340,12 +4338,12 @@ func TestUnrecognizedWithInnerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner, 10000) for i := 0; i < 10000; i++ { @@ -4353,7 +4351,7 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4363,11 +4361,11 @@ func BenchmarkUnrecognizedWithInnerProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithInner(popr, false)) if err != nil { panic(err) } @@ -4377,7 +4375,7 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4386,14 +4384,14 @@ func BenchmarkUnrecognizedWithInnerProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithInner_InnerProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4414,12 +4412,12 @@ func TestUnrecognizedWithInner_InnerProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner_Inner, 10000) for i := 0; i < 10000; i++ { @@ -4427,7 +4425,7 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4437,11 +4435,11 @@ func BenchmarkUnrecognizedWithInner_InnerProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithInner_Inner(popr, false)) if err != nil { panic(err) } @@ -4451,7 +4449,7 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4460,14 +4458,14 @@ func BenchmarkUnrecognizedWithInner_InnerProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithEmbedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4488,12 +4486,12 @@ func TestUnrecognizedWithEmbedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed, 10000) for i := 0; i < 10000; i++ { @@ -4501,7 +4499,7 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4511,11 +4509,11 @@ func BenchmarkUnrecognizedWithEmbedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithEmbed(popr, false)) if err != nil { panic(err) } @@ -4525,7 +4523,7 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4534,14 +4532,14 @@ func BenchmarkUnrecognizedWithEmbedProtoUnmarshal(b *testing.B) { func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4562,12 +4560,12 @@ func TestUnrecognizedWithEmbed_EmbeddedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed_Embedded, 10000) for i := 0; i < 10000; i++ { @@ -4575,7 +4573,7 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4585,11 +4583,11 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoMarshal(b *testing.B) { } func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false)) if err != nil { panic(err) } @@ -4599,7 +4597,7 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4608,14 +4606,14 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedProtoUnmarshal(b *testing.B) { func TestNodeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4636,12 +4634,12 @@ func TestNodeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNodeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Node, 10000) for i := 0; i < 10000; i++ { @@ -4649,7 +4647,7 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4659,11 +4657,11 @@ func BenchmarkNodeProtoMarshal(b *testing.B) { } func BenchmarkNodeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNode(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNode(popr, false)) if err != nil { panic(err) } @@ -4673,7 +4671,7 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4682,14 +4680,14 @@ func BenchmarkNodeProtoUnmarshal(b *testing.B) { func TestNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4710,12 +4708,12 @@ func TestNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -4723,7 +4721,7 @@ func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4733,11 +4731,11 @@ func BenchmarkNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -4747,7 +4745,7 @@ func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4756,14 +4754,14 @@ func BenchmarkNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNidOptNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4784,12 +4782,12 @@ func TestNidOptNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -4797,7 +4795,7 @@ func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4807,11 +4805,11 @@ func BenchmarkNidOptNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidOptNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -4821,7 +4819,7 @@ func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4830,14 +4828,14 @@ func BenchmarkNidOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNinOptNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4858,12 +4856,12 @@ func TestNinOptNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -4871,7 +4869,7 @@ func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4881,11 +4879,11 @@ func BenchmarkNinOptNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinOptNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -4895,7 +4893,7 @@ func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4904,14 +4902,14 @@ func BenchmarkNinOptNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNidRepNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -4932,12 +4930,12 @@ func TestNidRepNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -4945,7 +4943,7 @@ func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -4955,11 +4953,11 @@ func BenchmarkNidRepNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNidRepNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -4969,7 +4967,7 @@ func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -4978,14 +4976,14 @@ func BenchmarkNidRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestNinRepNonByteCustomTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5006,12 +5004,12 @@ func TestNinRepNonByteCustomTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNonByteCustomType, 10000) for i := 0; i < 10000; i++ { @@ -5019,7 +5017,7 @@ func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5029,11 +5027,11 @@ func BenchmarkNinRepNonByteCustomTypeProtoMarshal(b *testing.B) { } func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedNinRepNonByteCustomType(popr, false)) if err != nil { panic(err) } @@ -5043,7 +5041,7 @@ func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5052,14 +5050,14 @@ func BenchmarkNinRepNonByteCustomTypeProtoUnmarshal(b *testing.B) { func TestProtoTypeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -5080,12 +5078,12 @@ func TestProtoTypeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkProtoTypeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoType, 10000) for i := 0; i < 10000; i++ { @@ -5093,7 +5091,7 @@ func BenchmarkProtoTypeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -5103,11 +5101,11 @@ func BenchmarkProtoTypeProtoMarshal(b *testing.B) { } func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoType(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedProtoType(popr, false)) if err != nil { panic(err) } @@ -5117,7 +5115,7 @@ func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -5126,15 +5124,15 @@ func BenchmarkProtoTypeProtoUnmarshal(b *testing.B) { func TestNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5147,15 +5145,15 @@ func TestNidOptNativeJSON(t *testing.T) { } func TestNinOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5168,15 +5166,15 @@ func TestNinOptNativeJSON(t *testing.T) { } func TestNidRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5189,15 +5187,15 @@ func TestNidRepNativeJSON(t *testing.T) { } func TestNinRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5210,15 +5208,15 @@ func TestNinRepNativeJSON(t *testing.T) { } func TestNidRepPackedNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5231,15 +5229,15 @@ func TestNidRepPackedNativeJSON(t *testing.T) { } func TestNinRepPackedNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepPackedNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5252,15 +5250,15 @@ func TestNinRepPackedNativeJSON(t *testing.T) { } func TestNidOptStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5273,15 +5271,15 @@ func TestNidOptStructJSON(t *testing.T) { } func TestNinOptStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5294,15 +5292,15 @@ func TestNinOptStructJSON(t *testing.T) { } func TestNidRepStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5315,15 +5313,15 @@ func TestNidRepStructJSON(t *testing.T) { } func TestNinRepStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5336,15 +5334,15 @@ func TestNinRepStructJSON(t *testing.T) { } func TestNidEmbeddedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5357,15 +5355,15 @@ func TestNidEmbeddedStructJSON(t *testing.T) { } func TestNinEmbeddedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5378,15 +5376,15 @@ func TestNinEmbeddedStructJSON(t *testing.T) { } func TestNidNestedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5399,15 +5397,15 @@ func TestNidNestedStructJSON(t *testing.T) { } func TestNinNestedStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5420,15 +5418,15 @@ func TestNinNestedStructJSON(t *testing.T) { } func TestNidOptCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5441,15 +5439,15 @@ func TestNidOptCustomJSON(t *testing.T) { } func TestCustomDashJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomDash{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5462,15 +5460,15 @@ func TestCustomDashJSON(t *testing.T) { } func TestNinOptCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5483,15 +5481,15 @@ func TestNinOptCustomJSON(t *testing.T) { } func TestNidRepCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5504,15 +5502,15 @@ func TestNidRepCustomJSON(t *testing.T) { } func TestNinRepCustomJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepCustom{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5525,15 +5523,15 @@ func TestNinRepCustomJSON(t *testing.T) { } func TestNinOptNativeUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5546,15 +5544,15 @@ func TestNinOptNativeUnionJSON(t *testing.T) { } func TestNinOptStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5567,15 +5565,15 @@ func TestNinOptStructUnionJSON(t *testing.T) { } func TestNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5588,15 +5586,15 @@ func TestNinEmbeddedStructUnionJSON(t *testing.T) { } func TestNinNestedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinNestedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5609,15 +5607,15 @@ func TestNinNestedStructUnionJSON(t *testing.T) { } func TestTreeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Tree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5630,15 +5628,15 @@ func TestTreeJSON(t *testing.T) { } func TestOrBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OrBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5651,15 +5649,15 @@ func TestOrBranchJSON(t *testing.T) { } func TestAndBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5672,15 +5670,15 @@ func TestAndBranchJSON(t *testing.T) { } func TestLeafJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Leaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5693,15 +5691,15 @@ func TestLeafJSON(t *testing.T) { } func TestDeepTreeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepTree{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5714,15 +5712,15 @@ func TestDeepTreeJSON(t *testing.T) { } func TestADeepBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ADeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5735,15 +5733,15 @@ func TestADeepBranchJSON(t *testing.T) { } func TestAndDeepBranchJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AndDeepBranch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5756,15 +5754,15 @@ func TestAndDeepBranchJSON(t *testing.T) { } func TestDeepLeafJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DeepLeaf{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5777,15 +5775,15 @@ func TestDeepLeafJSON(t *testing.T) { } func TestNilJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Nil{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5798,15 +5796,15 @@ func TestNilJSON(t *testing.T) { } func TestNidOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5819,15 +5817,15 @@ func TestNidOptEnumJSON(t *testing.T) { } func TestNinOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5840,15 +5838,15 @@ func TestNinOptEnumJSON(t *testing.T) { } func TestNidRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5861,15 +5859,15 @@ func TestNidRepEnumJSON(t *testing.T) { } func TestNinRepEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5882,15 +5880,15 @@ func TestNinRepEnumJSON(t *testing.T) { } func TestNinOptEnumDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5903,15 +5901,15 @@ func TestNinOptEnumDefaultJSON(t *testing.T) { } func TestAnotherNinOptEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5924,15 +5922,15 @@ func TestAnotherNinOptEnumJSON(t *testing.T) { } func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &AnotherNinOptEnumDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5945,15 +5943,15 @@ func TestAnotherNinOptEnumDefaultJSON(t *testing.T) { } func TestTimerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Timer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5966,15 +5964,15 @@ func TestTimerJSON(t *testing.T) { } func TestMyExtendableJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MyExtendable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -5987,15 +5985,15 @@ func TestMyExtendableJSON(t *testing.T) { } func TestOtherExtenableJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OtherExtenable{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6008,15 +6006,15 @@ func TestOtherExtenableJSON(t *testing.T) { } func TestNestedDefinitionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6029,15 +6027,15 @@ func TestNestedDefinitionJSON(t *testing.T) { } func TestNestedDefinition_NestedMessageJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6050,15 +6048,15 @@ func TestNestedDefinition_NestedMessageJSON(t *testing.T) { } func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6071,15 +6069,15 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgJSON(t *testing.T) { } func TestNestedScopeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NestedScope{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6092,15 +6090,15 @@ func TestNestedScopeJSON(t *testing.T) { } func TestNinOptNativeDefaultJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNativeDefault{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6113,15 +6111,15 @@ func TestNinOptNativeDefaultJSON(t *testing.T) { } func TestCustomContainerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomContainer{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6134,15 +6132,15 @@ func TestCustomContainerJSON(t *testing.T) { } func TestCustomNameNidOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNidOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6155,15 +6153,15 @@ func TestCustomNameNidOptNativeJSON(t *testing.T) { } func TestCustomNameNinOptNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinOptNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6176,15 +6174,15 @@ func TestCustomNameNinOptNativeJSON(t *testing.T) { } func TestCustomNameNinRepNativeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinRepNative{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6197,15 +6195,15 @@ func TestCustomNameNinRepNativeJSON(t *testing.T) { } func TestCustomNameNinStructJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinStruct{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6218,15 +6216,15 @@ func TestCustomNameNinStructJSON(t *testing.T) { } func TestCustomNameCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6239,15 +6237,15 @@ func TestCustomNameCustomTypeJSON(t *testing.T) { } func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameNinEmbeddedStructUnion{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6260,15 +6258,15 @@ func TestCustomNameNinEmbeddedStructUnionJSON(t *testing.T) { } func TestCustomNameEnumJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &CustomNameEnum{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6281,15 +6279,15 @@ func TestCustomNameEnumJSON(t *testing.T) { } func TestNoExtensionsMapJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NoExtensionsMap{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6302,15 +6300,15 @@ func TestNoExtensionsMapJSON(t *testing.T) { } func TestUnrecognizedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Unrecognized{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6323,15 +6321,15 @@ func TestUnrecognizedJSON(t *testing.T) { } func TestUnrecognizedWithInnerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6344,15 +6342,15 @@ func TestUnrecognizedWithInnerJSON(t *testing.T) { } func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithInner_Inner{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6365,15 +6363,15 @@ func TestUnrecognizedWithInner_InnerJSON(t *testing.T) { } func TestUnrecognizedWithEmbedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6386,15 +6384,15 @@ func TestUnrecognizedWithEmbedJSON(t *testing.T) { } func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnrecognizedWithEmbed_Embedded{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6407,15 +6405,15 @@ func TestUnrecognizedWithEmbed_EmbeddedJSON(t *testing.T) { } func TestNodeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Node{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6428,15 +6426,15 @@ func TestNodeJSON(t *testing.T) { } func TestNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6449,15 +6447,15 @@ func TestNonByteCustomTypeJSON(t *testing.T) { } func TestNidOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6470,15 +6468,15 @@ func TestNidOptNonByteCustomTypeJSON(t *testing.T) { } func TestNinOptNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinOptNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6491,15 +6489,15 @@ func TestNinOptNonByteCustomTypeJSON(t *testing.T) { } func TestNidRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NidRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6512,15 +6510,15 @@ func TestNidRepNonByteCustomTypeJSON(t *testing.T) { } func TestNinRepNonByteCustomTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NinRepNonByteCustomType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6533,15 +6531,15 @@ func TestNinRepNonByteCustomTypeJSON(t *testing.T) { } func TestProtoTypeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoType{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -6554,11 +6552,11 @@ func TestProtoTypeJSON(t *testing.T) { } func TestNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6571,11 +6569,11 @@ func TestNidOptNativeProtoText(t *testing.T) { func TestNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6588,11 +6586,11 @@ func TestNidOptNativeProtoCompactText(t *testing.T) { func TestNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6605,11 +6603,11 @@ func TestNinOptNativeProtoText(t *testing.T) { func TestNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6622,11 +6620,11 @@ func TestNinOptNativeProtoCompactText(t *testing.T) { func TestNidRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6639,11 +6637,11 @@ func TestNidRepNativeProtoText(t *testing.T) { func TestNidRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6656,11 +6654,11 @@ func TestNidRepNativeProtoCompactText(t *testing.T) { func TestNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6673,11 +6671,11 @@ func TestNinRepNativeProtoText(t *testing.T) { func TestNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6690,11 +6688,11 @@ func TestNinRepNativeProtoCompactText(t *testing.T) { func TestNidRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6707,11 +6705,11 @@ func TestNidRepPackedNativeProtoText(t *testing.T) { func TestNidRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6724,11 +6722,11 @@ func TestNidRepPackedNativeProtoCompactText(t *testing.T) { func TestNinRepPackedNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6741,11 +6739,11 @@ func TestNinRepPackedNativeProtoText(t *testing.T) { func TestNinRepPackedNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6758,11 +6756,11 @@ func TestNinRepPackedNativeProtoCompactText(t *testing.T) { func TestNidOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6775,11 +6773,11 @@ func TestNidOptStructProtoText(t *testing.T) { func TestNidOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6792,11 +6790,11 @@ func TestNidOptStructProtoCompactText(t *testing.T) { func TestNinOptStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6809,11 +6807,11 @@ func TestNinOptStructProtoText(t *testing.T) { func TestNinOptStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6826,11 +6824,11 @@ func TestNinOptStructProtoCompactText(t *testing.T) { func TestNidRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6843,11 +6841,11 @@ func TestNidRepStructProtoText(t *testing.T) { func TestNidRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6860,11 +6858,11 @@ func TestNidRepStructProtoCompactText(t *testing.T) { func TestNinRepStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6877,11 +6875,11 @@ func TestNinRepStructProtoText(t *testing.T) { func TestNinRepStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6894,11 +6892,11 @@ func TestNinRepStructProtoCompactText(t *testing.T) { func TestNidEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6911,11 +6909,11 @@ func TestNidEmbeddedStructProtoText(t *testing.T) { func TestNidEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6928,11 +6926,11 @@ func TestNidEmbeddedStructProtoCompactText(t *testing.T) { func TestNinEmbeddedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6945,11 +6943,11 @@ func TestNinEmbeddedStructProtoText(t *testing.T) { func TestNinEmbeddedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6962,11 +6960,11 @@ func TestNinEmbeddedStructProtoCompactText(t *testing.T) { func TestNidNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6979,11 +6977,11 @@ func TestNidNestedStructProtoText(t *testing.T) { func TestNidNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -6996,11 +6994,11 @@ func TestNidNestedStructProtoCompactText(t *testing.T) { func TestNinNestedStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7013,11 +7011,11 @@ func TestNinNestedStructProtoText(t *testing.T) { func TestNinNestedStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7030,11 +7028,11 @@ func TestNinNestedStructProtoCompactText(t *testing.T) { func TestNidOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7047,11 +7045,11 @@ func TestNidOptCustomProtoText(t *testing.T) { func TestNidOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7064,11 +7062,11 @@ func TestNidOptCustomProtoCompactText(t *testing.T) { func TestCustomDashProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7081,11 +7079,11 @@ func TestCustomDashProtoText(t *testing.T) { func TestCustomDashProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7098,11 +7096,11 @@ func TestCustomDashProtoCompactText(t *testing.T) { func TestNinOptCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7115,11 +7113,11 @@ func TestNinOptCustomProtoText(t *testing.T) { func TestNinOptCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7132,11 +7130,11 @@ func TestNinOptCustomProtoCompactText(t *testing.T) { func TestNidRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7149,11 +7147,11 @@ func TestNidRepCustomProtoText(t *testing.T) { func TestNidRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7166,11 +7164,11 @@ func TestNidRepCustomProtoCompactText(t *testing.T) { func TestNinRepCustomProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7183,11 +7181,11 @@ func TestNinRepCustomProtoText(t *testing.T) { func TestNinRepCustomProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7200,11 +7198,11 @@ func TestNinRepCustomProtoCompactText(t *testing.T) { func TestNinOptNativeUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7217,11 +7215,11 @@ func TestNinOptNativeUnionProtoText(t *testing.T) { func TestNinOptNativeUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7234,11 +7232,11 @@ func TestNinOptNativeUnionProtoCompactText(t *testing.T) { func TestNinOptStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7251,11 +7249,11 @@ func TestNinOptStructUnionProtoText(t *testing.T) { func TestNinOptStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7268,11 +7266,11 @@ func TestNinOptStructUnionProtoCompactText(t *testing.T) { func TestNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7285,11 +7283,11 @@ func TestNinEmbeddedStructUnionProtoText(t *testing.T) { func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7302,11 +7300,11 @@ func TestNinEmbeddedStructUnionProtoCompactText(t *testing.T) { func TestNinNestedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7319,11 +7317,11 @@ func TestNinNestedStructUnionProtoText(t *testing.T) { func TestNinNestedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7336,11 +7334,11 @@ func TestNinNestedStructUnionProtoCompactText(t *testing.T) { func TestTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7353,11 +7351,11 @@ func TestTreeProtoText(t *testing.T) { func TestTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Tree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7370,11 +7368,11 @@ func TestTreeProtoCompactText(t *testing.T) { func TestOrBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7387,11 +7385,11 @@ func TestOrBranchProtoText(t *testing.T) { func TestOrBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7404,11 +7402,11 @@ func TestOrBranchProtoCompactText(t *testing.T) { func TestAndBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7421,11 +7419,11 @@ func TestAndBranchProtoText(t *testing.T) { func TestAndBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7438,11 +7436,11 @@ func TestAndBranchProtoCompactText(t *testing.T) { func TestLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7455,11 +7453,11 @@ func TestLeafProtoText(t *testing.T) { func TestLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7472,11 +7470,11 @@ func TestLeafProtoCompactText(t *testing.T) { func TestDeepTreeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7489,11 +7487,11 @@ func TestDeepTreeProtoText(t *testing.T) { func TestDeepTreeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7506,11 +7504,11 @@ func TestDeepTreeProtoCompactText(t *testing.T) { func TestADeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7523,11 +7521,11 @@ func TestADeepBranchProtoText(t *testing.T) { func TestADeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7540,11 +7538,11 @@ func TestADeepBranchProtoCompactText(t *testing.T) { func TestAndDeepBranchProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7557,11 +7555,11 @@ func TestAndDeepBranchProtoText(t *testing.T) { func TestAndDeepBranchProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7574,11 +7572,11 @@ func TestAndDeepBranchProtoCompactText(t *testing.T) { func TestDeepLeafProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7591,11 +7589,11 @@ func TestDeepLeafProtoText(t *testing.T) { func TestDeepLeafProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7608,11 +7606,11 @@ func TestDeepLeafProtoCompactText(t *testing.T) { func TestNilProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7625,11 +7623,11 @@ func TestNilProtoText(t *testing.T) { func TestNilProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Nil{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7642,11 +7640,11 @@ func TestNilProtoCompactText(t *testing.T) { func TestNidOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7659,11 +7657,11 @@ func TestNidOptEnumProtoText(t *testing.T) { func TestNidOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7676,11 +7674,11 @@ func TestNidOptEnumProtoCompactText(t *testing.T) { func TestNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7693,11 +7691,11 @@ func TestNinOptEnumProtoText(t *testing.T) { func TestNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7710,11 +7708,11 @@ func TestNinOptEnumProtoCompactText(t *testing.T) { func TestNidRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7727,11 +7725,11 @@ func TestNidRepEnumProtoText(t *testing.T) { func TestNidRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7744,11 +7742,11 @@ func TestNidRepEnumProtoCompactText(t *testing.T) { func TestNinRepEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7761,11 +7759,11 @@ func TestNinRepEnumProtoText(t *testing.T) { func TestNinRepEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7778,11 +7776,11 @@ func TestNinRepEnumProtoCompactText(t *testing.T) { func TestNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7795,11 +7793,11 @@ func TestNinOptEnumDefaultProtoText(t *testing.T) { func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7812,11 +7810,11 @@ func TestNinOptEnumDefaultProtoCompactText(t *testing.T) { func TestAnotherNinOptEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7829,11 +7827,11 @@ func TestAnotherNinOptEnumProtoText(t *testing.T) { func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7846,11 +7844,11 @@ func TestAnotherNinOptEnumProtoCompactText(t *testing.T) { func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7863,11 +7861,11 @@ func TestAnotherNinOptEnumDefaultProtoText(t *testing.T) { func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7880,11 +7878,11 @@ func TestAnotherNinOptEnumDefaultProtoCompactText(t *testing.T) { func TestTimerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7897,11 +7895,11 @@ func TestTimerProtoText(t *testing.T) { func TestTimerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Timer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7914,11 +7912,11 @@ func TestTimerProtoCompactText(t *testing.T) { func TestMyExtendableProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7931,11 +7929,11 @@ func TestMyExtendableProtoText(t *testing.T) { func TestMyExtendableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7948,11 +7946,11 @@ func TestMyExtendableProtoCompactText(t *testing.T) { func TestOtherExtenableProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7965,11 +7963,11 @@ func TestOtherExtenableProtoText(t *testing.T) { func TestOtherExtenableProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7982,11 +7980,11 @@ func TestOtherExtenableProtoCompactText(t *testing.T) { func TestNestedDefinitionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -7999,11 +7997,11 @@ func TestNestedDefinitionProtoText(t *testing.T) { func TestNestedDefinitionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8016,11 +8014,11 @@ func TestNestedDefinitionProtoCompactText(t *testing.T) { func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8033,11 +8031,11 @@ func TestNestedDefinition_NestedMessageProtoText(t *testing.T) { func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8050,11 +8048,11 @@ func TestNestedDefinition_NestedMessageProtoCompactText(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8067,11 +8065,11 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoText(t *testing.T) { func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8084,11 +8082,11 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgProtoCompactText(t *testi func TestNestedScopeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8101,11 +8099,11 @@ func TestNestedScopeProtoText(t *testing.T) { func TestNestedScopeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8118,11 +8116,11 @@ func TestNestedScopeProtoCompactText(t *testing.T) { func TestNinOptNativeDefaultProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8135,11 +8133,11 @@ func TestNinOptNativeDefaultProtoText(t *testing.T) { func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8152,11 +8150,11 @@ func TestNinOptNativeDefaultProtoCompactText(t *testing.T) { func TestCustomContainerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8169,11 +8167,11 @@ func TestCustomContainerProtoText(t *testing.T) { func TestCustomContainerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8186,11 +8184,11 @@ func TestCustomContainerProtoCompactText(t *testing.T) { func TestCustomNameNidOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8203,11 +8201,11 @@ func TestCustomNameNidOptNativeProtoText(t *testing.T) { func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8220,11 +8218,11 @@ func TestCustomNameNidOptNativeProtoCompactText(t *testing.T) { func TestCustomNameNinOptNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8237,11 +8235,11 @@ func TestCustomNameNinOptNativeProtoText(t *testing.T) { func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8254,11 +8252,11 @@ func TestCustomNameNinOptNativeProtoCompactText(t *testing.T) { func TestCustomNameNinRepNativeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8271,11 +8269,11 @@ func TestCustomNameNinRepNativeProtoText(t *testing.T) { func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8288,11 +8286,11 @@ func TestCustomNameNinRepNativeProtoCompactText(t *testing.T) { func TestCustomNameNinStructProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8305,11 +8303,11 @@ func TestCustomNameNinStructProtoText(t *testing.T) { func TestCustomNameNinStructProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8322,11 +8320,11 @@ func TestCustomNameNinStructProtoCompactText(t *testing.T) { func TestCustomNameCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8339,11 +8337,11 @@ func TestCustomNameCustomTypeProtoText(t *testing.T) { func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8356,11 +8354,11 @@ func TestCustomNameCustomTypeProtoCompactText(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8373,11 +8371,11 @@ func TestCustomNameNinEmbeddedStructUnionProtoText(t *testing.T) { func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8390,11 +8388,11 @@ func TestCustomNameNinEmbeddedStructUnionProtoCompactText(t *testing.T) { func TestCustomNameEnumProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8407,11 +8405,11 @@ func TestCustomNameEnumProtoText(t *testing.T) { func TestCustomNameEnumProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8424,11 +8422,11 @@ func TestCustomNameEnumProtoCompactText(t *testing.T) { func TestNoExtensionsMapProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8441,11 +8439,11 @@ func TestNoExtensionsMapProtoText(t *testing.T) { func TestNoExtensionsMapProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8458,11 +8456,11 @@ func TestNoExtensionsMapProtoCompactText(t *testing.T) { func TestUnrecognizedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8475,11 +8473,11 @@ func TestUnrecognizedProtoText(t *testing.T) { func TestUnrecognizedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8492,11 +8490,11 @@ func TestUnrecognizedProtoCompactText(t *testing.T) { func TestUnrecognizedWithInnerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8509,11 +8507,11 @@ func TestUnrecognizedWithInnerProtoText(t *testing.T) { func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8526,11 +8524,11 @@ func TestUnrecognizedWithInnerProtoCompactText(t *testing.T) { func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8543,11 +8541,11 @@ func TestUnrecognizedWithInner_InnerProtoText(t *testing.T) { func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8560,11 +8558,11 @@ func TestUnrecognizedWithInner_InnerProtoCompactText(t *testing.T) { func TestUnrecognizedWithEmbedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8577,11 +8575,11 @@ func TestUnrecognizedWithEmbedProtoText(t *testing.T) { func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8594,11 +8592,11 @@ func TestUnrecognizedWithEmbedProtoCompactText(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8611,11 +8609,11 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoText(t *testing.T) { func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8628,11 +8626,11 @@ func TestUnrecognizedWithEmbed_EmbeddedProtoCompactText(t *testing.T) { func TestNodeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8645,11 +8643,11 @@ func TestNodeProtoText(t *testing.T) { func TestNodeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Node{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8662,11 +8660,11 @@ func TestNodeProtoCompactText(t *testing.T) { func TestNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8679,11 +8677,11 @@ func TestNonByteCustomTypeProtoText(t *testing.T) { func TestNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8696,11 +8694,11 @@ func TestNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8713,11 +8711,11 @@ func TestNidOptNonByteCustomTypeProtoText(t *testing.T) { func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8730,11 +8728,11 @@ func TestNidOptNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8747,11 +8745,11 @@ func TestNinOptNonByteCustomTypeProtoText(t *testing.T) { func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8764,11 +8762,11 @@ func TestNinOptNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8781,11 +8779,11 @@ func TestNidRepNonByteCustomTypeProtoText(t *testing.T) { func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8798,11 +8796,11 @@ func TestNidRepNonByteCustomTypeProtoCompactText(t *testing.T) { func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8815,11 +8813,11 @@ func TestNinRepNonByteCustomTypeProtoText(t *testing.T) { func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8832,11 +8830,11 @@ func TestNinRepNonByteCustomTypeProtoCompactText(t *testing.T) { func TestProtoTypeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8849,11 +8847,11 @@ func TestProtoTypeProtoText(t *testing.T) { func TestProtoTypeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -8865,14 +8863,14 @@ func TestProtoTypeProtoCompactText(t *testing.T) { } func TestNidOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8889,14 +8887,14 @@ func TestNidOptNativeCompare(t *testing.T) { } } func TestNinOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8913,14 +8911,14 @@ func TestNinOptNativeCompare(t *testing.T) { } } func TestNidRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8937,14 +8935,14 @@ func TestNidRepNativeCompare(t *testing.T) { } } func TestNinRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8961,14 +8959,14 @@ func TestNinRepNativeCompare(t *testing.T) { } } func TestNidRepPackedNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -8985,14 +8983,14 @@ func TestNidRepPackedNativeCompare(t *testing.T) { } } func TestNinRepPackedNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9009,14 +9007,14 @@ func TestNinRepPackedNativeCompare(t *testing.T) { } } func TestNidOptStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9033,14 +9031,14 @@ func TestNidOptStructCompare(t *testing.T) { } } func TestNinOptStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9057,14 +9055,14 @@ func TestNinOptStructCompare(t *testing.T) { } } func TestNidRepStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9081,14 +9079,14 @@ func TestNidRepStructCompare(t *testing.T) { } } func TestNinRepStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9105,14 +9103,14 @@ func TestNinRepStructCompare(t *testing.T) { } } func TestNidEmbeddedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9129,14 +9127,14 @@ func TestNidEmbeddedStructCompare(t *testing.T) { } } func TestNinEmbeddedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9153,14 +9151,14 @@ func TestNinEmbeddedStructCompare(t *testing.T) { } } func TestNidNestedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9177,14 +9175,14 @@ func TestNidNestedStructCompare(t *testing.T) { } } func TestNinNestedStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9201,14 +9199,14 @@ func TestNinNestedStructCompare(t *testing.T) { } } func TestNidOptCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9225,14 +9223,14 @@ func TestNidOptCustomCompare(t *testing.T) { } } func TestCustomDashCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9249,14 +9247,14 @@ func TestCustomDashCompare(t *testing.T) { } } func TestNinOptCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9273,14 +9271,14 @@ func TestNinOptCustomCompare(t *testing.T) { } } func TestNidRepCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9297,14 +9295,14 @@ func TestNidRepCustomCompare(t *testing.T) { } } func TestNinRepCustomCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9321,14 +9319,14 @@ func TestNinRepCustomCompare(t *testing.T) { } } func TestNinOptNativeUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9345,14 +9343,14 @@ func TestNinOptNativeUnionCompare(t *testing.T) { } } func TestNinOptStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9369,14 +9367,14 @@ func TestNinOptStructUnionCompare(t *testing.T) { } } func TestNinEmbeddedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9393,14 +9391,14 @@ func TestNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestNinNestedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9417,14 +9415,14 @@ func TestNinNestedStructUnionCompare(t *testing.T) { } } func TestTreeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9441,14 +9439,14 @@ func TestTreeCompare(t *testing.T) { } } func TestOrBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9465,14 +9463,14 @@ func TestOrBranchCompare(t *testing.T) { } } func TestAndBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9489,14 +9487,14 @@ func TestAndBranchCompare(t *testing.T) { } } func TestLeafCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9513,14 +9511,14 @@ func TestLeafCompare(t *testing.T) { } } func TestDeepTreeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9537,14 +9535,14 @@ func TestDeepTreeCompare(t *testing.T) { } } func TestADeepBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9561,14 +9559,14 @@ func TestADeepBranchCompare(t *testing.T) { } } func TestAndDeepBranchCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9585,14 +9583,14 @@ func TestAndDeepBranchCompare(t *testing.T) { } } func TestDeepLeafCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9609,14 +9607,14 @@ func TestDeepLeafCompare(t *testing.T) { } } func TestNilCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9633,14 +9631,14 @@ func TestNilCompare(t *testing.T) { } } func TestNidOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9657,14 +9655,14 @@ func TestNidOptEnumCompare(t *testing.T) { } } func TestNinOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9681,14 +9679,14 @@ func TestNinOptEnumCompare(t *testing.T) { } } func TestNidRepEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9705,14 +9703,14 @@ func TestNidRepEnumCompare(t *testing.T) { } } func TestNinRepEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9729,14 +9727,14 @@ func TestNinRepEnumCompare(t *testing.T) { } } func TestNinOptEnumDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9753,14 +9751,14 @@ func TestNinOptEnumDefaultCompare(t *testing.T) { } } func TestAnotherNinOptEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9777,14 +9775,14 @@ func TestAnotherNinOptEnumCompare(t *testing.T) { } } func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9801,14 +9799,14 @@ func TestAnotherNinOptEnumDefaultCompare(t *testing.T) { } } func TestTimerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9825,14 +9823,14 @@ func TestTimerCompare(t *testing.T) { } } func TestMyExtendableCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9849,14 +9847,14 @@ func TestMyExtendableCompare(t *testing.T) { } } func TestOtherExtenableCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9873,14 +9871,14 @@ func TestOtherExtenableCompare(t *testing.T) { } } func TestNestedDefinitionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9897,14 +9895,14 @@ func TestNestedDefinitionCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessageCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9921,14 +9919,14 @@ func TestNestedDefinition_NestedMessageCompare(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9945,14 +9943,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgCompare(t *testing.T) { } } func TestNestedScopeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9969,14 +9967,14 @@ func TestNestedScopeCompare(t *testing.T) { } } func TestNinOptNativeDefaultCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -9993,14 +9991,14 @@ func TestNinOptNativeDefaultCompare(t *testing.T) { } } func TestCustomContainerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10017,14 +10015,14 @@ func TestCustomContainerCompare(t *testing.T) { } } func TestCustomNameNidOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10041,14 +10039,14 @@ func TestCustomNameNidOptNativeCompare(t *testing.T) { } } func TestCustomNameNinOptNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10065,14 +10063,14 @@ func TestCustomNameNinOptNativeCompare(t *testing.T) { } } func TestCustomNameNinRepNativeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10089,14 +10087,14 @@ func TestCustomNameNinRepNativeCompare(t *testing.T) { } } func TestCustomNameNinStructCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10113,14 +10111,14 @@ func TestCustomNameNinStructCompare(t *testing.T) { } } func TestCustomNameCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10137,14 +10135,14 @@ func TestCustomNameCustomTypeCompare(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10161,14 +10159,14 @@ func TestCustomNameNinEmbeddedStructUnionCompare(t *testing.T) { } } func TestCustomNameEnumCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10185,14 +10183,14 @@ func TestCustomNameEnumCompare(t *testing.T) { } } func TestNoExtensionsMapCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10209,14 +10207,14 @@ func TestNoExtensionsMapCompare(t *testing.T) { } } func TestUnrecognizedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10233,14 +10231,14 @@ func TestUnrecognizedCompare(t *testing.T) { } } func TestUnrecognizedWithInnerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10257,14 +10255,14 @@ func TestUnrecognizedWithInnerCompare(t *testing.T) { } } func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10281,14 +10279,14 @@ func TestUnrecognizedWithInner_InnerCompare(t *testing.T) { } } func TestUnrecognizedWithEmbedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10305,14 +10303,14 @@ func TestUnrecognizedWithEmbedCompare(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10329,14 +10327,14 @@ func TestUnrecognizedWithEmbed_EmbeddedCompare(t *testing.T) { } } func TestNodeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10353,14 +10351,14 @@ func TestNodeCompare(t *testing.T) { } } func TestNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10377,14 +10375,14 @@ func TestNonByteCustomTypeCompare(t *testing.T) { } } func TestNidOptNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10401,14 +10399,14 @@ func TestNidOptNonByteCustomTypeCompare(t *testing.T) { } } func TestNinOptNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10425,14 +10423,14 @@ func TestNinOptNonByteCustomTypeCompare(t *testing.T) { } } func TestNidRepNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10449,14 +10447,14 @@ func TestNidRepNonByteCustomTypeCompare(t *testing.T) { } } func TestNinRepNonByteCustomTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10473,14 +10471,14 @@ func TestNinRepNonByteCustomTypeCompare(t *testing.T) { } } func TestProtoTypeCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -10500,14 +10498,14 @@ func TestThetestDescription(t *testing.T) { ThetestDescription() } func TestNidOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10515,14 +10513,14 @@ func TestNidOptNativeVerboseEqual(t *testing.T) { } } func TestNinOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10530,14 +10528,14 @@ func TestNinOptNativeVerboseEqual(t *testing.T) { } } func TestNidRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10545,14 +10543,14 @@ func TestNidRepNativeVerboseEqual(t *testing.T) { } } func TestNinRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10560,14 +10558,14 @@ func TestNinRepNativeVerboseEqual(t *testing.T) { } } func TestNidRepPackedNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10575,14 +10573,14 @@ func TestNidRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNinRepPackedNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepPackedNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10590,14 +10588,14 @@ func TestNinRepPackedNativeVerboseEqual(t *testing.T) { } } func TestNidOptStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10605,14 +10603,14 @@ func TestNidOptStructVerboseEqual(t *testing.T) { } } func TestNinOptStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10620,14 +10618,14 @@ func TestNinOptStructVerboseEqual(t *testing.T) { } } func TestNidRepStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10635,14 +10633,14 @@ func TestNidRepStructVerboseEqual(t *testing.T) { } } func TestNinRepStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10650,14 +10648,14 @@ func TestNinRepStructVerboseEqual(t *testing.T) { } } func TestNidEmbeddedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10665,14 +10663,14 @@ func TestNidEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10680,14 +10678,14 @@ func TestNinEmbeddedStructVerboseEqual(t *testing.T) { } } func TestNidNestedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10695,14 +10693,14 @@ func TestNidNestedStructVerboseEqual(t *testing.T) { } } func TestNinNestedStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10710,14 +10708,14 @@ func TestNinNestedStructVerboseEqual(t *testing.T) { } } func TestNidOptCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10725,14 +10723,14 @@ func TestNidOptCustomVerboseEqual(t *testing.T) { } } func TestCustomDashVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomDash{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10740,14 +10738,14 @@ func TestCustomDashVerboseEqual(t *testing.T) { } } func TestNinOptCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10755,14 +10753,14 @@ func TestNinOptCustomVerboseEqual(t *testing.T) { } } func TestNidRepCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10770,14 +10768,14 @@ func TestNidRepCustomVerboseEqual(t *testing.T) { } } func TestNinRepCustomVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepCustom{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10785,14 +10783,14 @@ func TestNinRepCustomVerboseEqual(t *testing.T) { } } func TestNinOptNativeUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10800,14 +10798,14 @@ func TestNinOptNativeUnionVerboseEqual(t *testing.T) { } } func TestNinOptStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10815,14 +10813,14 @@ func TestNinOptStructUnionVerboseEqual(t *testing.T) { } } func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10830,14 +10828,14 @@ func TestNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestNinNestedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinNestedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10845,14 +10843,14 @@ func TestNinNestedStructUnionVerboseEqual(t *testing.T) { } } func TestTreeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Tree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10860,14 +10858,14 @@ func TestTreeVerboseEqual(t *testing.T) { } } func TestOrBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OrBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10875,14 +10873,14 @@ func TestOrBranchVerboseEqual(t *testing.T) { } } func TestAndBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10890,14 +10888,14 @@ func TestAndBranchVerboseEqual(t *testing.T) { } } func TestLeafVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Leaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10905,14 +10903,14 @@ func TestLeafVerboseEqual(t *testing.T) { } } func TestDeepTreeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepTree{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10920,14 +10918,14 @@ func TestDeepTreeVerboseEqual(t *testing.T) { } } func TestADeepBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ADeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10935,14 +10933,14 @@ func TestADeepBranchVerboseEqual(t *testing.T) { } } func TestAndDeepBranchVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AndDeepBranch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10950,14 +10948,14 @@ func TestAndDeepBranchVerboseEqual(t *testing.T) { } } func TestDeepLeafVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DeepLeaf{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10965,14 +10963,14 @@ func TestDeepLeafVerboseEqual(t *testing.T) { } } func TestNilVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Nil{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10980,14 +10978,14 @@ func TestNilVerboseEqual(t *testing.T) { } } func TestNidOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -10995,14 +10993,14 @@ func TestNidOptEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11010,14 +11008,14 @@ func TestNinOptEnumVerboseEqual(t *testing.T) { } } func TestNidRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11025,14 +11023,14 @@ func TestNidRepEnumVerboseEqual(t *testing.T) { } } func TestNinRepEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11040,14 +11038,14 @@ func TestNinRepEnumVerboseEqual(t *testing.T) { } } func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11055,14 +11053,14 @@ func TestNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11070,14 +11068,14 @@ func TestAnotherNinOptEnumVerboseEqual(t *testing.T) { } } func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &AnotherNinOptEnumDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11085,14 +11083,14 @@ func TestAnotherNinOptEnumDefaultVerboseEqual(t *testing.T) { } } func TestTimerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Timer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11100,14 +11098,14 @@ func TestTimerVerboseEqual(t *testing.T) { } } func TestMyExtendableVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MyExtendable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11115,14 +11113,14 @@ func TestMyExtendableVerboseEqual(t *testing.T) { } } func TestOtherExtenableVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OtherExtenable{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11130,14 +11128,14 @@ func TestOtherExtenableVerboseEqual(t *testing.T) { } } func TestNestedDefinitionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11145,14 +11143,14 @@ func TestNestedDefinitionVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11160,14 +11158,14 @@ func TestNestedDefinition_NestedMessageVerboseEqual(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedDefinition_NestedMessage_NestedNestedMsg{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11175,14 +11173,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgVerboseEqual(t *testing.T } } func TestNestedScopeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NestedScope{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11190,14 +11188,14 @@ func TestNestedScopeVerboseEqual(t *testing.T) { } } func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNativeDefault{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11205,14 +11203,14 @@ func TestNinOptNativeDefaultVerboseEqual(t *testing.T) { } } func TestCustomContainerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomContainer{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11220,14 +11218,14 @@ func TestCustomContainerVerboseEqual(t *testing.T) { } } func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNidOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11235,14 +11233,14 @@ func TestCustomNameNidOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinOptNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11250,14 +11248,14 @@ func TestCustomNameNinOptNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinRepNative{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11265,14 +11263,14 @@ func TestCustomNameNinRepNativeVerboseEqual(t *testing.T) { } } func TestCustomNameNinStructVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinStruct{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11280,14 +11278,14 @@ func TestCustomNameNinStructVerboseEqual(t *testing.T) { } } func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11295,14 +11293,14 @@ func TestCustomNameCustomTypeVerboseEqual(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameNinEmbeddedStructUnion{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11310,14 +11308,14 @@ func TestCustomNameNinEmbeddedStructUnionVerboseEqual(t *testing.T) { } } func TestCustomNameEnumVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &CustomNameEnum{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11325,14 +11323,14 @@ func TestCustomNameEnumVerboseEqual(t *testing.T) { } } func TestNoExtensionsMapVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NoExtensionsMap{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11340,14 +11338,14 @@ func TestNoExtensionsMapVerboseEqual(t *testing.T) { } } func TestUnrecognizedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Unrecognized{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11355,14 +11353,14 @@ func TestUnrecognizedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11370,14 +11368,14 @@ func TestUnrecognizedWithInnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithInner_Inner{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11385,14 +11383,14 @@ func TestUnrecognizedWithInner_InnerVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11400,14 +11398,14 @@ func TestUnrecognizedWithEmbedVerboseEqual(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnrecognizedWithEmbed_Embedded{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11415,14 +11413,14 @@ func TestUnrecognizedWithEmbed_EmbeddedVerboseEqual(t *testing.T) { } } func TestNodeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Node{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11430,14 +11428,14 @@ func TestNodeVerboseEqual(t *testing.T) { } } func TestNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11445,14 +11443,14 @@ func TestNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11460,14 +11458,14 @@ func TestNidOptNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinOptNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11475,14 +11473,14 @@ func TestNinOptNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NidRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11490,14 +11488,14 @@ func TestNidRepNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NinRepNonByteCustomType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11505,14 +11503,14 @@ func TestNinRepNonByteCustomTypeVerboseEqual(t *testing.T) { } } func TestProtoTypeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoType{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -11520,7 +11518,7 @@ func TestProtoTypeVerboseEqual(t *testing.T) { } } func TestNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11528,7 +11526,7 @@ func TestNidOptNativeFace(t *testing.T) { } } func TestNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11536,7 +11534,7 @@ func TestNinOptNativeFace(t *testing.T) { } } func TestNidRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11544,7 +11542,7 @@ func TestNidRepNativeFace(t *testing.T) { } } func TestNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11552,7 +11550,7 @@ func TestNinRepNativeFace(t *testing.T) { } } func TestNidRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11560,7 +11558,7 @@ func TestNidRepPackedNativeFace(t *testing.T) { } } func TestNinRepPackedNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11568,7 +11566,7 @@ func TestNinRepPackedNativeFace(t *testing.T) { } } func TestNidOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11576,7 +11574,7 @@ func TestNidOptStructFace(t *testing.T) { } } func TestNinOptStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11584,7 +11582,7 @@ func TestNinOptStructFace(t *testing.T) { } } func TestNidRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11592,7 +11590,7 @@ func TestNidRepStructFace(t *testing.T) { } } func TestNinRepStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11600,7 +11598,7 @@ func TestNinRepStructFace(t *testing.T) { } } func TestNidEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11608,7 +11606,7 @@ func TestNidEmbeddedStructFace(t *testing.T) { } } func TestNinEmbeddedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11616,7 +11614,7 @@ func TestNinEmbeddedStructFace(t *testing.T) { } } func TestNidNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11624,7 +11622,7 @@ func TestNidNestedStructFace(t *testing.T) { } } func TestNinNestedStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11632,7 +11630,7 @@ func TestNinNestedStructFace(t *testing.T) { } } func TestNidOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11640,7 +11638,7 @@ func TestNidOptCustomFace(t *testing.T) { } } func TestCustomDashFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11648,7 +11646,7 @@ func TestCustomDashFace(t *testing.T) { } } func TestNinOptCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11656,7 +11654,7 @@ func TestNinOptCustomFace(t *testing.T) { } } func TestNidRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11664,7 +11662,7 @@ func TestNidRepCustomFace(t *testing.T) { } } func TestNinRepCustomFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11672,7 +11670,7 @@ func TestNinRepCustomFace(t *testing.T) { } } func TestNinOptNativeUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11680,7 +11678,7 @@ func TestNinOptNativeUnionFace(t *testing.T) { } } func TestNinOptStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11688,7 +11686,7 @@ func TestNinOptStructUnionFace(t *testing.T) { } } func TestNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11696,7 +11694,7 @@ func TestNinEmbeddedStructUnionFace(t *testing.T) { } } func TestNinNestedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11704,7 +11702,7 @@ func TestNinNestedStructUnionFace(t *testing.T) { } } func TestTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11712,7 +11710,7 @@ func TestTreeFace(t *testing.T) { } } func TestOrBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11720,7 +11718,7 @@ func TestOrBranchFace(t *testing.T) { } } func TestAndBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11728,7 +11726,7 @@ func TestAndBranchFace(t *testing.T) { } } func TestLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11736,7 +11734,7 @@ func TestLeafFace(t *testing.T) { } } func TestDeepTreeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11744,7 +11742,7 @@ func TestDeepTreeFace(t *testing.T) { } } func TestADeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11752,7 +11750,7 @@ func TestADeepBranchFace(t *testing.T) { } } func TestAndDeepBranchFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11760,7 +11758,7 @@ func TestAndDeepBranchFace(t *testing.T) { } } func TestDeepLeafFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11768,7 +11766,7 @@ func TestDeepLeafFace(t *testing.T) { } } func TestNilFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11776,7 +11774,7 @@ func TestNilFace(t *testing.T) { } } func TestNidOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11784,7 +11782,7 @@ func TestNidOptEnumFace(t *testing.T) { } } func TestNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11792,7 +11790,7 @@ func TestNinOptEnumFace(t *testing.T) { } } func TestNidRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11800,7 +11798,7 @@ func TestNidRepEnumFace(t *testing.T) { } } func TestNinRepEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11808,7 +11806,7 @@ func TestNinRepEnumFace(t *testing.T) { } } func TestAnotherNinOptEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11816,7 +11814,7 @@ func TestAnotherNinOptEnumFace(t *testing.T) { } } func TestTimerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11824,7 +11822,7 @@ func TestTimerFace(t *testing.T) { } } func TestNestedDefinitionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11832,7 +11830,7 @@ func TestNestedDefinitionFace(t *testing.T) { } } func TestNestedDefinition_NestedMessageFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11840,7 +11838,7 @@ func TestNestedDefinition_NestedMessageFace(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11848,7 +11846,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgFace(t *testing.T) { } } func TestNestedScopeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11856,7 +11854,7 @@ func TestNestedScopeFace(t *testing.T) { } } func TestCustomContainerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11864,7 +11862,7 @@ func TestCustomContainerFace(t *testing.T) { } } func TestCustomNameNidOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11872,7 +11870,7 @@ func TestCustomNameNidOptNativeFace(t *testing.T) { } } func TestCustomNameNinOptNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11880,7 +11878,7 @@ func TestCustomNameNinOptNativeFace(t *testing.T) { } } func TestCustomNameNinRepNativeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11888,7 +11886,7 @@ func TestCustomNameNinRepNativeFace(t *testing.T) { } } func TestCustomNameNinStructFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11896,7 +11894,7 @@ func TestCustomNameNinStructFace(t *testing.T) { } } func TestCustomNameCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11904,7 +11902,7 @@ func TestCustomNameCustomTypeFace(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11912,7 +11910,7 @@ func TestCustomNameNinEmbeddedStructUnionFace(t *testing.T) { } } func TestCustomNameEnumFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11920,7 +11918,7 @@ func TestCustomNameEnumFace(t *testing.T) { } } func TestUnrecognizedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11928,7 +11926,7 @@ func TestUnrecognizedFace(t *testing.T) { } } func TestUnrecognizedWithInnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11936,7 +11934,7 @@ func TestUnrecognizedWithInnerFace(t *testing.T) { } } func TestUnrecognizedWithInner_InnerFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11944,7 +11942,7 @@ func TestUnrecognizedWithInner_InnerFace(t *testing.T) { } } func TestUnrecognizedWithEmbedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11952,7 +11950,7 @@ func TestUnrecognizedWithEmbedFace(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11960,7 +11958,7 @@ func TestUnrecognizedWithEmbed_EmbeddedFace(t *testing.T) { } } func TestNodeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11968,7 +11966,7 @@ func TestNodeFace(t *testing.T) { } } func TestNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11976,7 +11974,7 @@ func TestNonByteCustomTypeFace(t *testing.T) { } } func TestNidOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11984,7 +11982,7 @@ func TestNidOptNonByteCustomTypeFace(t *testing.T) { } } func TestNinOptNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -11992,7 +11990,7 @@ func TestNinOptNonByteCustomTypeFace(t *testing.T) { } } func TestNidRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -12000,7 +11998,7 @@ func TestNidRepNonByteCustomTypeFace(t *testing.T) { } } func TestNinRepNonByteCustomTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -12008,7 +12006,7 @@ func TestNinRepNonByteCustomTypeFace(t *testing.T) { } } func TestProtoTypeFace(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, true) msg := p.TestProto() if !p.Equal(msg) { @@ -12016,895 +12014,895 @@ func TestProtoTypeFace(t *testing.T) { } } func TestNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepPackedNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinEmbeddedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinNestedStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomDashGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepCustomGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinNestedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOrBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAndBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestDeepTreeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestADeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAndDeepBranchGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestDeepLeafGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNilGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAnotherNinOptEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAnotherNinOptEnumDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestTimerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestMyExtendableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOtherExtenableGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinitionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinition_NestedMessageGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedDefinition_NestedMessage_NestedNestedMsgGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNestedScopeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNativeDefaultGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomContainerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNidOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinOptNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinRepNativeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinStructGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameNinEmbeddedStructUnionGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCustomNameEnumGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNoExtensionsMapGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithInnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithInner_InnerGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithEmbedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnrecognizedWithEmbed_EmbeddedGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNodeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinOptNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNinRepNonByteCustomTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestProtoTypeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNidOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -12915,14 +12913,14 @@ func TestNidOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNative, 1000) for i := 0; i < 1000; i++ { @@ -12937,10 +12935,10 @@ func BenchmarkNidOptNativeSize(b *testing.B) { func TestNinOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -12951,14 +12949,14 @@ func TestNinOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNative, 1000) for i := 0; i < 1000; i++ { @@ -12973,10 +12971,10 @@ func BenchmarkNinOptNativeSize(b *testing.B) { func TestNidRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -12987,14 +12985,14 @@ func TestNidRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNative, 1000) for i := 0; i < 1000; i++ { @@ -13009,10 +13007,10 @@ func BenchmarkNidRepNativeSize(b *testing.B) { func TestNinRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13023,14 +13021,14 @@ func TestNinRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNative, 1000) for i := 0; i < 1000; i++ { @@ -13045,10 +13043,10 @@ func BenchmarkNinRepNativeSize(b *testing.B) { func TestNidRepPackedNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13059,14 +13057,14 @@ func TestNidRepPackedNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepPackedNative, 1000) for i := 0; i < 1000; i++ { @@ -13081,10 +13079,10 @@ func BenchmarkNidRepPackedNativeSize(b *testing.B) { func TestNinRepPackedNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepPackedNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13095,14 +13093,14 @@ func TestNinRepPackedNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepPackedNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepPackedNative, 1000) for i := 0; i < 1000; i++ { @@ -13117,10 +13115,10 @@ func BenchmarkNinRepPackedNativeSize(b *testing.B) { func TestNidOptStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13131,14 +13129,14 @@ func TestNidOptStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptStruct, 1000) for i := 0; i < 1000; i++ { @@ -13153,10 +13151,10 @@ func BenchmarkNidOptStructSize(b *testing.B) { func TestNinOptStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13167,14 +13165,14 @@ func TestNinOptStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStruct, 1000) for i := 0; i < 1000; i++ { @@ -13189,10 +13187,10 @@ func BenchmarkNinOptStructSize(b *testing.B) { func TestNidRepStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13203,14 +13201,14 @@ func TestNidRepStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepStruct, 1000) for i := 0; i < 1000; i++ { @@ -13225,10 +13223,10 @@ func BenchmarkNidRepStructSize(b *testing.B) { func TestNinRepStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13239,14 +13237,14 @@ func TestNinRepStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepStruct, 1000) for i := 0; i < 1000; i++ { @@ -13261,10 +13259,10 @@ func BenchmarkNinRepStructSize(b *testing.B) { func TestNidEmbeddedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13275,14 +13273,14 @@ func TestNidEmbeddedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidEmbeddedStruct, 1000) for i := 0; i < 1000; i++ { @@ -13297,10 +13295,10 @@ func BenchmarkNidEmbeddedStructSize(b *testing.B) { func TestNinEmbeddedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13311,14 +13309,14 @@ func TestNinEmbeddedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinEmbeddedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStruct, 1000) for i := 0; i < 1000; i++ { @@ -13333,10 +13331,10 @@ func BenchmarkNinEmbeddedStructSize(b *testing.B) { func TestNidNestedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13347,14 +13345,14 @@ func TestNidNestedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidNestedStruct, 1000) for i := 0; i < 1000; i++ { @@ -13369,10 +13367,10 @@ func BenchmarkNidNestedStructSize(b *testing.B) { func TestNinNestedStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13383,14 +13381,14 @@ func TestNinNestedStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinNestedStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStruct, 1000) for i := 0; i < 1000; i++ { @@ -13405,10 +13403,10 @@ func BenchmarkNinNestedStructSize(b *testing.B) { func TestNidOptCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13419,14 +13417,14 @@ func TestNidOptCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptCustom, 1000) for i := 0; i < 1000; i++ { @@ -13441,10 +13439,10 @@ func BenchmarkNidOptCustomSize(b *testing.B) { func TestCustomDashSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomDash(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13455,14 +13453,14 @@ func TestCustomDashSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomDashSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomDash, 1000) for i := 0; i < 1000; i++ { @@ -13477,10 +13475,10 @@ func BenchmarkCustomDashSize(b *testing.B) { func TestNinOptCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13491,14 +13489,14 @@ func TestNinOptCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptCustom, 1000) for i := 0; i < 1000; i++ { @@ -13513,10 +13511,10 @@ func BenchmarkNinOptCustomSize(b *testing.B) { func TestNidRepCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13527,14 +13525,14 @@ func TestNidRepCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepCustom, 1000) for i := 0; i < 1000; i++ { @@ -13549,10 +13547,10 @@ func BenchmarkNidRepCustomSize(b *testing.B) { func TestNinRepCustomSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepCustom(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13563,14 +13561,14 @@ func TestNinRepCustomSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepCustomSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepCustom, 1000) for i := 0; i < 1000; i++ { @@ -13585,10 +13583,10 @@ func BenchmarkNinRepCustomSize(b *testing.B) { func TestNinOptNativeUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13599,14 +13597,14 @@ func TestNinOptNativeUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeUnion, 1000) for i := 0; i < 1000; i++ { @@ -13621,10 +13619,10 @@ func BenchmarkNinOptNativeUnionSize(b *testing.B) { func TestNinOptStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13635,14 +13633,14 @@ func TestNinOptStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -13657,10 +13655,10 @@ func BenchmarkNinOptStructUnionSize(b *testing.B) { func TestNinEmbeddedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13671,14 +13669,14 @@ func TestNinEmbeddedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinEmbeddedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -13693,10 +13691,10 @@ func BenchmarkNinEmbeddedStructUnionSize(b *testing.B) { func TestNinNestedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinNestedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13707,14 +13705,14 @@ func TestNinNestedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinNestedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinNestedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -13729,10 +13727,10 @@ func BenchmarkNinNestedStructUnionSize(b *testing.B) { func TestTreeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13743,14 +13741,14 @@ func TestTreeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Tree, 1000) for i := 0; i < 1000; i++ { @@ -13765,10 +13763,10 @@ func BenchmarkTreeSize(b *testing.B) { func TestOrBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOrBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13779,14 +13777,14 @@ func TestOrBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOrBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OrBranch, 1000) for i := 0; i < 1000; i++ { @@ -13801,10 +13799,10 @@ func BenchmarkOrBranchSize(b *testing.B) { func TestAndBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13815,14 +13813,14 @@ func TestAndBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAndBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndBranch, 1000) for i := 0; i < 1000; i++ { @@ -13837,10 +13835,10 @@ func BenchmarkAndBranchSize(b *testing.B) { func TestLeafSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13851,14 +13849,14 @@ func TestLeafSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Leaf, 1000) for i := 0; i < 1000; i++ { @@ -13873,10 +13871,10 @@ func BenchmarkLeafSize(b *testing.B) { func TestDeepTreeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepTree(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13887,14 +13885,14 @@ func TestDeepTreeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDeepTreeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepTree, 1000) for i := 0; i < 1000; i++ { @@ -13909,10 +13907,10 @@ func BenchmarkDeepTreeSize(b *testing.B) { func TestADeepBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedADeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13923,14 +13921,14 @@ func TestADeepBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkADeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ADeepBranch, 1000) for i := 0; i < 1000; i++ { @@ -13945,10 +13943,10 @@ func BenchmarkADeepBranchSize(b *testing.B) { func TestAndDeepBranchSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAndDeepBranch(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13959,14 +13957,14 @@ func TestAndDeepBranchSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAndDeepBranchSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AndDeepBranch, 1000) for i := 0; i < 1000; i++ { @@ -13981,10 +13979,10 @@ func BenchmarkAndDeepBranchSize(b *testing.B) { func TestDeepLeafSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDeepLeaf(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -13995,14 +13993,14 @@ func TestDeepLeafSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDeepLeafSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DeepLeaf, 1000) for i := 0; i < 1000; i++ { @@ -14017,10 +14015,10 @@ func BenchmarkDeepLeafSize(b *testing.B) { func TestNilSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNil(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14031,14 +14029,14 @@ func TestNilSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNilSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Nil, 1000) for i := 0; i < 1000; i++ { @@ -14053,10 +14051,10 @@ func BenchmarkNilSize(b *testing.B) { func TestNidOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14067,14 +14065,14 @@ func TestNidOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -14089,10 +14087,10 @@ func BenchmarkNidOptEnumSize(b *testing.B) { func TestNinOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14103,14 +14101,14 @@ func TestNinOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -14125,10 +14123,10 @@ func BenchmarkNinOptEnumSize(b *testing.B) { func TestNidRepEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14139,14 +14137,14 @@ func TestNidRepEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepEnum, 1000) for i := 0; i < 1000; i++ { @@ -14161,10 +14159,10 @@ func BenchmarkNidRepEnumSize(b *testing.B) { func TestNinRepEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14175,14 +14173,14 @@ func TestNinRepEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepEnum, 1000) for i := 0; i < 1000; i++ { @@ -14197,10 +14195,10 @@ func BenchmarkNinRepEnumSize(b *testing.B) { func TestNinOptEnumDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14211,14 +14209,14 @@ func TestNinOptEnumDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptEnumDefault, 1000) for i := 0; i < 1000; i++ { @@ -14233,10 +14231,10 @@ func BenchmarkNinOptEnumDefaultSize(b *testing.B) { func TestAnotherNinOptEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14247,14 +14245,14 @@ func TestAnotherNinOptEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAnotherNinOptEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnum, 1000) for i := 0; i < 1000; i++ { @@ -14269,10 +14267,10 @@ func BenchmarkAnotherNinOptEnumSize(b *testing.B) { func TestAnotherNinOptEnumDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedAnotherNinOptEnumDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14283,14 +14281,14 @@ func TestAnotherNinOptEnumDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*AnotherNinOptEnumDefault, 1000) for i := 0; i < 1000; i++ { @@ -14305,10 +14303,10 @@ func BenchmarkAnotherNinOptEnumDefaultSize(b *testing.B) { func TestTimerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedTimer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14319,14 +14317,14 @@ func TestTimerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkTimerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Timer, 1000) for i := 0; i < 1000; i++ { @@ -14341,10 +14339,10 @@ func BenchmarkTimerSize(b *testing.B) { func TestMyExtendableSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMyExtendable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14355,14 +14353,14 @@ func TestMyExtendableSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMyExtendableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MyExtendable, 1000) for i := 0; i < 1000; i++ { @@ -14377,10 +14375,10 @@ func BenchmarkMyExtendableSize(b *testing.B) { func TestOtherExtenableSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOtherExtenable(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14391,14 +14389,14 @@ func TestOtherExtenableSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOtherExtenableSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OtherExtenable, 1000) for i := 0; i < 1000; i++ { @@ -14413,10 +14411,10 @@ func BenchmarkOtherExtenableSize(b *testing.B) { func TestNestedDefinitionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14427,14 +14425,14 @@ func TestNestedDefinitionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinitionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition, 1000) for i := 0; i < 1000; i++ { @@ -14449,10 +14447,10 @@ func BenchmarkNestedDefinitionSize(b *testing.B) { func TestNestedDefinition_NestedMessageSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14463,14 +14461,14 @@ func TestNestedDefinition_NestedMessageSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage, 1000) for i := 0; i < 1000; i++ { @@ -14485,10 +14483,10 @@ func BenchmarkNestedDefinition_NestedMessageSize(b *testing.B) { func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14499,14 +14497,14 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedDefinition_NestedMessage_NestedNestedMsg, 1000) for i := 0; i < 1000; i++ { @@ -14521,10 +14519,10 @@ func BenchmarkNestedDefinition_NestedMessage_NestedNestedMsgSize(b *testing.B) { func TestNestedScopeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNestedScope(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14535,14 +14533,14 @@ func TestNestedScopeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNestedScopeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NestedScope, 1000) for i := 0; i < 1000; i++ { @@ -14557,10 +14555,10 @@ func BenchmarkNestedScopeSize(b *testing.B) { func TestNinOptNativeDefaultSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNativeDefault(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14571,14 +14569,14 @@ func TestNinOptNativeDefaultSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNativeDefaultSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNativeDefault, 1000) for i := 0; i < 1000; i++ { @@ -14593,10 +14591,10 @@ func BenchmarkNinOptNativeDefaultSize(b *testing.B) { func TestCustomContainerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomContainer(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14607,14 +14605,14 @@ func TestCustomContainerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomContainerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomContainer, 1000) for i := 0; i < 1000; i++ { @@ -14629,10 +14627,10 @@ func BenchmarkCustomContainerSize(b *testing.B) { func TestCustomNameNidOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNidOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14643,14 +14641,14 @@ func TestCustomNameNidOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNidOptNative, 1000) for i := 0; i < 1000; i++ { @@ -14665,10 +14663,10 @@ func BenchmarkCustomNameNidOptNativeSize(b *testing.B) { func TestCustomNameNinOptNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinOptNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14679,14 +14677,14 @@ func TestCustomNameNinOptNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinOptNative, 1000) for i := 0; i < 1000; i++ { @@ -14701,10 +14699,10 @@ func BenchmarkCustomNameNinOptNativeSize(b *testing.B) { func TestCustomNameNinRepNativeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinRepNative(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14715,14 +14713,14 @@ func TestCustomNameNinRepNativeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinRepNative, 1000) for i := 0; i < 1000; i++ { @@ -14737,10 +14735,10 @@ func BenchmarkCustomNameNinRepNativeSize(b *testing.B) { func TestCustomNameNinStructSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinStruct(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14751,14 +14749,14 @@ func TestCustomNameNinStructSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinStructSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinStruct, 1000) for i := 0; i < 1000; i++ { @@ -14773,10 +14771,10 @@ func BenchmarkCustomNameNinStructSize(b *testing.B) { func TestCustomNameCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14787,14 +14785,14 @@ func TestCustomNameCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameCustomType, 1000) for i := 0; i < 1000; i++ { @@ -14809,10 +14807,10 @@ func BenchmarkCustomNameCustomTypeSize(b *testing.B) { func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14823,14 +14821,14 @@ func TestCustomNameNinEmbeddedStructUnionSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameNinEmbeddedStructUnion, 1000) for i := 0; i < 1000; i++ { @@ -14845,10 +14843,10 @@ func BenchmarkCustomNameNinEmbeddedStructUnionSize(b *testing.B) { func TestCustomNameEnumSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedCustomNameEnum(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14859,14 +14857,14 @@ func TestCustomNameEnumSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkCustomNameEnumSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*CustomNameEnum, 1000) for i := 0; i < 1000; i++ { @@ -14881,10 +14879,10 @@ func BenchmarkCustomNameEnumSize(b *testing.B) { func TestNoExtensionsMapSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNoExtensionsMap(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14895,14 +14893,14 @@ func TestNoExtensionsMapSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNoExtensionsMapSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NoExtensionsMap, 1000) for i := 0; i < 1000; i++ { @@ -14917,10 +14915,10 @@ func BenchmarkNoExtensionsMapSize(b *testing.B) { func TestUnrecognizedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognized(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14931,14 +14929,14 @@ func TestUnrecognizedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Unrecognized, 1000) for i := 0; i < 1000; i++ { @@ -14953,10 +14951,10 @@ func BenchmarkUnrecognizedSize(b *testing.B) { func TestUnrecognizedWithInnerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -14967,14 +14965,14 @@ func TestUnrecognizedWithInnerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner, 1000) for i := 0; i < 1000; i++ { @@ -14989,10 +14987,10 @@ func BenchmarkUnrecognizedWithInnerSize(b *testing.B) { func TestUnrecognizedWithInner_InnerSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithInner_Inner(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15003,14 +15001,14 @@ func TestUnrecognizedWithInner_InnerSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithInner_Inner, 1000) for i := 0; i < 1000; i++ { @@ -15025,10 +15023,10 @@ func BenchmarkUnrecognizedWithInner_InnerSize(b *testing.B) { func TestUnrecognizedWithEmbedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15039,14 +15037,14 @@ func TestUnrecognizedWithEmbedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed, 1000) for i := 0; i < 1000; i++ { @@ -15061,10 +15059,10 @@ func BenchmarkUnrecognizedWithEmbedSize(b *testing.B) { func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15075,14 +15073,14 @@ func TestUnrecognizedWithEmbed_EmbeddedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*UnrecognizedWithEmbed_Embedded, 1000) for i := 0; i < 1000; i++ { @@ -15097,10 +15095,10 @@ func BenchmarkUnrecognizedWithEmbed_EmbeddedSize(b *testing.B) { func TestNodeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNode(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15111,14 +15109,14 @@ func TestNodeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNodeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Node, 1000) for i := 0; i < 1000; i++ { @@ -15133,10 +15131,10 @@ func BenchmarkNodeSize(b *testing.B) { func TestNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15147,14 +15145,14 @@ func TestNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15169,10 +15167,10 @@ func BenchmarkNonByteCustomTypeSize(b *testing.B) { func TestNidOptNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15183,14 +15181,14 @@ func TestNidOptNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidOptNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15205,10 +15203,10 @@ func BenchmarkNidOptNonByteCustomTypeSize(b *testing.B) { func TestNinOptNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinOptNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15219,14 +15217,14 @@ func TestNinOptNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinOptNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15241,10 +15239,10 @@ func BenchmarkNinOptNonByteCustomTypeSize(b *testing.B) { func TestNidRepNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNidRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15255,14 +15253,14 @@ func TestNidRepNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NidRepNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15277,10 +15275,10 @@ func BenchmarkNidRepNonByteCustomTypeSize(b *testing.B) { func TestNinRepNonByteCustomTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNinRepNonByteCustomType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15291,14 +15289,14 @@ func TestNinRepNonByteCustomTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*NinRepNonByteCustomType, 1000) for i := 0; i < 1000; i++ { @@ -15313,10 +15311,10 @@ func BenchmarkNinRepNonByteCustomTypeSize(b *testing.B) { func TestProtoTypeSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoType(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -15327,14 +15325,14 @@ func TestProtoTypeSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkProtoTypeSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoType, 1000) for i := 0; i < 1000; i++ { @@ -15348,7 +15346,7 @@ func BenchmarkProtoTypeSize(b *testing.B) { } func TestNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15357,7 +15355,7 @@ func TestNidOptNativeStringer(t *testing.T) { } } func TestNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15366,7 +15364,7 @@ func TestNinOptNativeStringer(t *testing.T) { } } func TestNidRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15375,7 +15373,7 @@ func TestNidRepNativeStringer(t *testing.T) { } } func TestNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15384,7 +15382,7 @@ func TestNinRepNativeStringer(t *testing.T) { } } func TestNidRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepPackedNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15393,7 +15391,7 @@ func TestNidRepPackedNativeStringer(t *testing.T) { } } func TestNinRepPackedNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepPackedNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15402,7 +15400,7 @@ func TestNinRepPackedNativeStringer(t *testing.T) { } } func TestNidOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15411,7 +15409,7 @@ func TestNidOptStructStringer(t *testing.T) { } } func TestNinOptStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15420,7 +15418,7 @@ func TestNinOptStructStringer(t *testing.T) { } } func TestNidRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15429,7 +15427,7 @@ func TestNidRepStructStringer(t *testing.T) { } } func TestNinRepStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15438,7 +15436,7 @@ func TestNinRepStructStringer(t *testing.T) { } } func TestNidEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidEmbeddedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15447,7 +15445,7 @@ func TestNidEmbeddedStructStringer(t *testing.T) { } } func TestNinEmbeddedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15456,7 +15454,7 @@ func TestNinEmbeddedStructStringer(t *testing.T) { } } func TestNidNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidNestedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15465,7 +15463,7 @@ func TestNidNestedStructStringer(t *testing.T) { } } func TestNinNestedStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15474,7 +15472,7 @@ func TestNinNestedStructStringer(t *testing.T) { } } func TestNidOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15483,7 +15481,7 @@ func TestNidOptCustomStringer(t *testing.T) { } } func TestCustomDashStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomDash(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15492,7 +15490,7 @@ func TestCustomDashStringer(t *testing.T) { } } func TestNinOptCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15501,7 +15499,7 @@ func TestNinOptCustomStringer(t *testing.T) { } } func TestNidRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15510,7 +15508,7 @@ func TestNidRepCustomStringer(t *testing.T) { } } func TestNinRepCustomStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepCustom(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15519,7 +15517,7 @@ func TestNinRepCustomStringer(t *testing.T) { } } func TestNinOptNativeUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15528,7 +15526,7 @@ func TestNinOptNativeUnionStringer(t *testing.T) { } } func TestNinOptStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15537,7 +15535,7 @@ func TestNinOptStructUnionStringer(t *testing.T) { } } func TestNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15546,7 +15544,7 @@ func TestNinEmbeddedStructUnionStringer(t *testing.T) { } } func TestNinNestedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15555,7 +15553,7 @@ func TestNinNestedStructUnionStringer(t *testing.T) { } } func TestTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15564,7 +15562,7 @@ func TestTreeStringer(t *testing.T) { } } func TestOrBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOrBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15573,7 +15571,7 @@ func TestOrBranchStringer(t *testing.T) { } } func TestAndBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15582,7 +15580,7 @@ func TestAndBranchStringer(t *testing.T) { } } func TestLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedLeaf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15591,7 +15589,7 @@ func TestLeafStringer(t *testing.T) { } } func TestDeepTreeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15600,7 +15598,7 @@ func TestDeepTreeStringer(t *testing.T) { } } func TestADeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedADeepBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15609,7 +15607,7 @@ func TestADeepBranchStringer(t *testing.T) { } } func TestAndDeepBranchStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAndDeepBranch(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15618,7 +15616,7 @@ func TestAndDeepBranchStringer(t *testing.T) { } } func TestDeepLeafStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepLeaf(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15627,7 +15625,7 @@ func TestDeepLeafStringer(t *testing.T) { } } func TestNilStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNil(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15636,7 +15634,7 @@ func TestNilStringer(t *testing.T) { } } func TestNidOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15645,7 +15643,7 @@ func TestNidOptEnumStringer(t *testing.T) { } } func TestNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15654,7 +15652,7 @@ func TestNinOptEnumStringer(t *testing.T) { } } func TestNidRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15663,7 +15661,7 @@ func TestNidRepEnumStringer(t *testing.T) { } } func TestNinRepEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15672,7 +15670,7 @@ func TestNinRepEnumStringer(t *testing.T) { } } func TestNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptEnumDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15681,7 +15679,7 @@ func TestNinOptEnumDefaultStringer(t *testing.T) { } } func TestAnotherNinOptEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15690,7 +15688,7 @@ func TestAnotherNinOptEnumStringer(t *testing.T) { } } func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedAnotherNinOptEnumDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15699,7 +15697,7 @@ func TestAnotherNinOptEnumDefaultStringer(t *testing.T) { } } func TestTimerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTimer(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15708,7 +15706,7 @@ func TestTimerStringer(t *testing.T) { } } func TestMyExtendableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMyExtendable(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15717,7 +15715,7 @@ func TestMyExtendableStringer(t *testing.T) { } } func TestOtherExtenableStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOtherExtenable(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15726,7 +15724,7 @@ func TestOtherExtenableStringer(t *testing.T) { } } func TestNestedDefinitionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15735,7 +15733,7 @@ func TestNestedDefinitionStringer(t *testing.T) { } } func TestNestedDefinition_NestedMessageStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15744,7 +15742,7 @@ func TestNestedDefinition_NestedMessageStringer(t *testing.T) { } } func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedDefinition_NestedMessage_NestedNestedMsg(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15753,7 +15751,7 @@ func TestNestedDefinition_NestedMessage_NestedNestedMsgStringer(t *testing.T) { } } func TestNestedScopeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNestedScope(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15762,7 +15760,7 @@ func TestNestedScopeStringer(t *testing.T) { } } func TestNinOptNativeDefaultStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeDefault(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15771,7 +15769,7 @@ func TestNinOptNativeDefaultStringer(t *testing.T) { } } func TestCustomContainerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomContainer(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15780,7 +15778,7 @@ func TestCustomContainerStringer(t *testing.T) { } } func TestCustomNameNidOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNidOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15789,7 +15787,7 @@ func TestCustomNameNidOptNativeStringer(t *testing.T) { } } func TestCustomNameNinOptNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinOptNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15798,7 +15796,7 @@ func TestCustomNameNinOptNativeStringer(t *testing.T) { } } func TestCustomNameNinRepNativeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinRepNative(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15807,7 +15805,7 @@ func TestCustomNameNinRepNativeStringer(t *testing.T) { } } func TestCustomNameNinStructStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinStruct(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15816,7 +15814,7 @@ func TestCustomNameNinStructStringer(t *testing.T) { } } func TestCustomNameCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15825,7 +15823,7 @@ func TestCustomNameCustomTypeStringer(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15834,7 +15832,7 @@ func TestCustomNameNinEmbeddedStructUnionStringer(t *testing.T) { } } func TestCustomNameEnumStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameEnum(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15843,7 +15841,7 @@ func TestCustomNameEnumStringer(t *testing.T) { } } func TestNoExtensionsMapStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNoExtensionsMap(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15852,7 +15850,7 @@ func TestNoExtensionsMapStringer(t *testing.T) { } } func TestUnrecognizedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognized(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15861,7 +15859,7 @@ func TestUnrecognizedStringer(t *testing.T) { } } func TestUnrecognizedWithInnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15870,7 +15868,7 @@ func TestUnrecognizedWithInnerStringer(t *testing.T) { } } func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithInner_Inner(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15879,7 +15877,7 @@ func TestUnrecognizedWithInner_InnerStringer(t *testing.T) { } } func TestUnrecognizedWithEmbedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15888,7 +15886,7 @@ func TestUnrecognizedWithEmbedStringer(t *testing.T) { } } func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnrecognizedWithEmbed_Embedded(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15897,7 +15895,7 @@ func TestUnrecognizedWithEmbed_EmbeddedStringer(t *testing.T) { } } func TestNodeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNode(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15906,7 +15904,7 @@ func TestNodeStringer(t *testing.T) { } } func TestNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15915,7 +15913,7 @@ func TestNonByteCustomTypeStringer(t *testing.T) { } } func TestNidOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidOptNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15924,7 +15922,7 @@ func TestNidOptNonByteCustomTypeStringer(t *testing.T) { } } func TestNinOptNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15933,7 +15931,7 @@ func TestNinOptNonByteCustomTypeStringer(t *testing.T) { } } func TestNidRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNidRepNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15942,7 +15940,7 @@ func TestNidRepNonByteCustomTypeStringer(t *testing.T) { } } func TestNinRepNonByteCustomTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinRepNonByteCustomType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15951,7 +15949,7 @@ func TestNinRepNonByteCustomTypeStringer(t *testing.T) { } } func TestProtoTypeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoType(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -15960,7 +15958,7 @@ func TestProtoTypeStringer(t *testing.T) { } } func TestNinOptNativeUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptNativeUnion(popr, true) v := p.GetValue() msg := &NinOptNativeUnion{} @@ -15972,7 +15970,7 @@ func TestNinOptNativeUnionOnlyOne(t *testing.T) { } } func TestNinOptStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinOptStructUnion(popr, true) v := p.GetValue() msg := &NinOptStructUnion{} @@ -15984,7 +15982,7 @@ func TestNinOptStructUnionOnlyOne(t *testing.T) { } } func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinEmbeddedStructUnion(popr, true) v := p.GetValue() msg := &NinEmbeddedStructUnion{} @@ -15996,7 +15994,7 @@ func TestNinEmbeddedStructUnionOnlyOne(t *testing.T) { } } func TestNinNestedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNinNestedStructUnion(popr, true) v := p.GetValue() msg := &NinNestedStructUnion{} @@ -16008,7 +16006,7 @@ func TestNinNestedStructUnionOnlyOne(t *testing.T) { } } func TestTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedTree(popr, true) v := p.GetValue() msg := &Tree{} @@ -16020,7 +16018,7 @@ func TestTreeOnlyOne(t *testing.T) { } } func TestDeepTreeOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDeepTree(popr, true) v := p.GetValue() msg := &DeepTree{} @@ -16032,7 +16030,7 @@ func TestDeepTreeOnlyOne(t *testing.T) { } } func TestCustomNameNinEmbeddedStructUnionOnlyOne(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedCustomNameNinEmbeddedStructUnion(popr, true) v := p.GetValue() msg := &CustomNameNinEmbeddedStructUnion{} diff --git a/vendor/github.com/gogo/protobuf/test/typedecl/models.go b/vendor/github.com/gogo/protobuf/test/typedecl/models.go index c0b2180f9..765b46193 100644 --- a/vendor/github.com/gogo/protobuf/test/typedecl/models.go +++ b/vendor/github.com/gogo/protobuf/test/typedecl/models.go @@ -1,5 +1,11 @@ package typedecl +import ( + "encoding/json" + + "github.com/gogo/protobuf/jsonpb" +) + type Dropped struct { Name string Age int32 @@ -9,6 +15,14 @@ func (d *Dropped) Drop() bool { return true } +func (d *Dropped) UnmarshalJSONPB(u *jsonpb.Unmarshaler, b []byte) error { + return json.Unmarshal(b, d) +} + +func (d *Dropped) MarshalJSONPB(*jsonpb.Marshaler) ([]byte, error) { + return json.Marshal(d) +} + type DroppedWithoutGetters struct { Width int64 Height int64 @@ -17,3 +31,11 @@ type DroppedWithoutGetters struct { func (d *DroppedWithoutGetters) GetHeight() int64 { return d.Height } + +func (d *DroppedWithoutGetters) UnmarshalJSONPB(u *jsonpb.Unmarshaler, b []byte) error { + return json.Unmarshal(b, d) +} + +func (d *DroppedWithoutGetters) MarshalJSONPB(*jsonpb.Marshaler) ([]byte, error) { + return json.Marshal(d) +} diff --git a/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go b/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go index 496cc0f64..ec900b82a 100644 --- a/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go +++ b/vendor/github.com/gogo/protobuf/test/typedecl/typedecl.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: typedecl.proto -// DO NOT EDIT! /* Package typedecl is a generated protocol buffer package. @@ -370,24 +369,6 @@ func (m *Kept) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Typedecl(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 encodeFixed32Typedecl(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 encodeVarintTypedecl(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/typedecl/typedeclpb_test.go b/vendor/github.com/gogo/protobuf/test/typedecl/typedeclpb_test.go index 179499e03..7a686559e 100644 --- a/vendor/github.com/gogo/protobuf/test/typedecl/typedeclpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/typedecl/typedeclpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: typedecl.proto -// DO NOT EDIT! /* Package typedecl is a generated protocol buffer package. @@ -16,11 +15,10 @@ It has these top-level messages: package typedecl import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestDroppedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,13 +58,13 @@ func TestDroppedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDroppedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -78,7 +76,7 @@ func TestDroppedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -93,7 +91,7 @@ func TestDroppedMarshalTo(t *testing.T) { } func BenchmarkDroppedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Dropped, 10000) for i := 0; i < 10000; i++ { @@ -101,7 +99,7 @@ func BenchmarkDroppedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -111,11 +109,11 @@ func BenchmarkDroppedProtoMarshal(b *testing.B) { } func BenchmarkDroppedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDropped(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDropped(popr, false)) if err != nil { panic(err) } @@ -125,7 +123,7 @@ func BenchmarkDroppedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -134,14 +132,14 @@ func BenchmarkDroppedProtoUnmarshal(b *testing.B) { func TestDroppedWithoutGettersProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -162,13 +160,13 @@ func TestDroppedWithoutGettersProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDroppedWithoutGettersMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -180,7 +178,7 @@ func TestDroppedWithoutGettersMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -195,7 +193,7 @@ func TestDroppedWithoutGettersMarshalTo(t *testing.T) { } func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DroppedWithoutGetters, 10000) for i := 0; i < 10000; i++ { @@ -203,7 +201,7 @@ func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -213,11 +211,11 @@ func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { } func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDroppedWithoutGetters(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDroppedWithoutGetters(popr, false)) if err != nil { panic(err) } @@ -227,7 +225,7 @@ func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -236,14 +234,14 @@ func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { func TestKeptProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Kept{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -264,13 +262,13 @@ func TestKeptProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestKeptMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -282,7 +280,7 @@ func TestKeptMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Kept{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -297,7 +295,7 @@ func TestKeptMarshalTo(t *testing.T) { } func BenchmarkKeptProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Kept, 10000) for i := 0; i < 10000; i++ { @@ -305,7 +303,7 @@ func BenchmarkKeptProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -315,11 +313,11 @@ func BenchmarkKeptProtoMarshal(b *testing.B) { } func BenchmarkKeptProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKept(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedKept(popr, false)) if err != nil { panic(err) } @@ -329,7 +327,7 @@ func BenchmarkKeptProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -338,15 +336,15 @@ func BenchmarkKeptProtoUnmarshal(b *testing.B) { func TestDroppedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Dropped{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -359,15 +357,15 @@ func TestDroppedJSON(t *testing.T) { } func TestDroppedWithoutGettersJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DroppedWithoutGetters{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -380,15 +378,15 @@ func TestDroppedWithoutGettersJSON(t *testing.T) { } func TestKeptJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Kept{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -401,11 +399,11 @@ func TestKeptJSON(t *testing.T) { } func TestDroppedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -418,11 +416,11 @@ func TestDroppedProtoText(t *testing.T) { func TestDroppedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -435,11 +433,11 @@ func TestDroppedProtoCompactText(t *testing.T) { func TestDroppedWithoutGettersProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -452,11 +450,11 @@ func TestDroppedWithoutGettersProtoText(t *testing.T) { func TestDroppedWithoutGettersProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -469,11 +467,11 @@ func TestDroppedWithoutGettersProtoCompactText(t *testing.T) { func TestKeptProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Kept{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -486,11 +484,11 @@ func TestKeptProtoText(t *testing.T) { func TestKeptProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Kept{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -502,14 +500,14 @@ func TestKeptProtoCompactText(t *testing.T) { } func TestDroppedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDropped(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -517,14 +515,14 @@ func TestDroppedVerboseEqual(t *testing.T) { } } func TestDroppedWithoutGettersVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDroppedWithoutGetters(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -532,14 +530,14 @@ func TestDroppedWithoutGettersVerboseEqual(t *testing.T) { } } func TestKeptVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKept(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Kept{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -548,10 +546,10 @@ func TestKeptVerboseEqual(t *testing.T) { } func TestDroppedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -562,14 +560,14 @@ func TestDroppedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDroppedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Dropped, 1000) for i := 0; i < 1000; i++ { @@ -584,10 +582,10 @@ func BenchmarkDroppedSize(b *testing.B) { func TestDroppedWithoutGettersSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -598,14 +596,14 @@ func TestDroppedWithoutGettersSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDroppedWithoutGettersSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DroppedWithoutGetters, 1000) for i := 0; i < 1000; i++ { @@ -620,10 +618,10 @@ func BenchmarkDroppedWithoutGettersSize(b *testing.B) { func TestKeptSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -634,14 +632,14 @@ func TestKeptSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkKeptSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Kept, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/typedecl_all/models.go b/vendor/github.com/gogo/protobuf/test/typedecl_all/models.go index 4186ad766..ce078f9df 100644 --- a/vendor/github.com/gogo/protobuf/test/typedecl_all/models.go +++ b/vendor/github.com/gogo/protobuf/test/typedecl_all/models.go @@ -1,5 +1,11 @@ package typedeclall +import ( + "encoding/json" + + "github.com/gogo/protobuf/jsonpb" +) + type Dropped struct { Name string Age int32 @@ -9,6 +15,14 @@ func (d *Dropped) Drop() bool { return true } +func (d *Dropped) UnmarshalJSONPB(u *jsonpb.Unmarshaler, b []byte) error { + return json.Unmarshal(b, d) +} + +func (d *Dropped) MarshalJSONPB(*jsonpb.Marshaler) ([]byte, error) { + return json.Marshal(d) +} + type DroppedWithoutGetters struct { Width int64 Height int64 @@ -17,3 +31,11 @@ type DroppedWithoutGetters struct { func (d *DroppedWithoutGetters) GetHeight() int64 { return d.Height } + +func (d *DroppedWithoutGetters) UnmarshalJSONPB(u *jsonpb.Unmarshaler, b []byte) error { + return json.Unmarshal(b, d) +} + +func (d *DroppedWithoutGetters) MarshalJSONPB(*jsonpb.Marshaler) ([]byte, error) { + return json.Marshal(d) +} diff --git a/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go index 0e34dc2e8..7b362b01f 100644 --- a/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go +++ b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclall.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: typedeclall.proto -// DO NOT EDIT! /* Package typedeclall is a generated protocol buffer package. @@ -370,24 +369,6 @@ func (m *Kept) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Typedeclall(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 encodeFixed32Typedeclall(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 encodeVarintTypedeclall(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclallpb_test.go b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclallpb_test.go index eae6219d9..5693f580f 100644 --- a/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclallpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/typedecl_all/typedeclallpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: typedeclall.proto -// DO NOT EDIT! /* Package typedeclall is a generated protocol buffer package. @@ -16,11 +15,10 @@ It has these top-level messages: package typedeclall import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -32,14 +30,14 @@ var _ = math.Inf func TestDroppedProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -60,13 +58,13 @@ func TestDroppedProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDroppedMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -78,7 +76,7 @@ func TestDroppedMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -93,7 +91,7 @@ func TestDroppedMarshalTo(t *testing.T) { } func BenchmarkDroppedProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Dropped, 10000) for i := 0; i < 10000; i++ { @@ -101,7 +99,7 @@ func BenchmarkDroppedProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -111,11 +109,11 @@ func BenchmarkDroppedProtoMarshal(b *testing.B) { } func BenchmarkDroppedProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDropped(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDropped(popr, false)) if err != nil { panic(err) } @@ -125,7 +123,7 @@ func BenchmarkDroppedProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -134,14 +132,14 @@ func BenchmarkDroppedProtoUnmarshal(b *testing.B) { func TestDroppedWithoutGettersProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -162,13 +160,13 @@ func TestDroppedWithoutGettersProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDroppedWithoutGettersMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -180,7 +178,7 @@ func TestDroppedWithoutGettersMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -195,7 +193,7 @@ func TestDroppedWithoutGettersMarshalTo(t *testing.T) { } func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DroppedWithoutGetters, 10000) for i := 0; i < 10000; i++ { @@ -203,7 +201,7 @@ func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -213,11 +211,11 @@ func BenchmarkDroppedWithoutGettersProtoMarshal(b *testing.B) { } func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedDroppedWithoutGetters(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedDroppedWithoutGetters(popr, false)) if err != nil { panic(err) } @@ -227,7 +225,7 @@ func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -236,14 +234,14 @@ func BenchmarkDroppedWithoutGettersProtoUnmarshal(b *testing.B) { func TestKeptProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Kept{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -264,13 +262,13 @@ func TestKeptProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestKeptMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -282,7 +280,7 @@ func TestKeptMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Kept{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -297,7 +295,7 @@ func TestKeptMarshalTo(t *testing.T) { } func BenchmarkKeptProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Kept, 10000) for i := 0; i < 10000; i++ { @@ -305,7 +303,7 @@ func BenchmarkKeptProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -315,11 +313,11 @@ func BenchmarkKeptProtoMarshal(b *testing.B) { } func BenchmarkKeptProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKept(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedKept(popr, false)) if err != nil { panic(err) } @@ -329,7 +327,7 @@ func BenchmarkKeptProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -338,15 +336,15 @@ func BenchmarkKeptProtoUnmarshal(b *testing.B) { func TestDroppedJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Dropped{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -359,15 +357,15 @@ func TestDroppedJSON(t *testing.T) { } func TestDroppedWithoutGettersJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &DroppedWithoutGetters{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -380,15 +378,15 @@ func TestDroppedWithoutGettersJSON(t *testing.T) { } func TestKeptJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Kept{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -401,11 +399,11 @@ func TestKeptJSON(t *testing.T) { } func TestDroppedProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -418,11 +416,11 @@ func TestDroppedProtoText(t *testing.T) { func TestDroppedProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -435,11 +433,11 @@ func TestDroppedProtoCompactText(t *testing.T) { func TestDroppedWithoutGettersProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -452,11 +450,11 @@ func TestDroppedWithoutGettersProtoText(t *testing.T) { func TestDroppedWithoutGettersProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -469,11 +467,11 @@ func TestDroppedWithoutGettersProtoCompactText(t *testing.T) { func TestKeptProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Kept{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -486,11 +484,11 @@ func TestKeptProtoText(t *testing.T) { func TestKeptProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Kept{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -502,14 +500,14 @@ func TestKeptProtoCompactText(t *testing.T) { } func TestDroppedVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDropped(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Dropped{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -517,14 +515,14 @@ func TestDroppedVerboseEqual(t *testing.T) { } } func TestDroppedWithoutGettersVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedDroppedWithoutGetters(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &DroppedWithoutGetters{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -532,14 +530,14 @@ func TestDroppedWithoutGettersVerboseEqual(t *testing.T) { } } func TestKeptVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKept(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Kept{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -548,10 +546,10 @@ func TestKeptVerboseEqual(t *testing.T) { } func TestDroppedSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDropped(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -562,14 +560,14 @@ func TestDroppedSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDroppedSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Dropped, 1000) for i := 0; i < 1000; i++ { @@ -584,10 +582,10 @@ func BenchmarkDroppedSize(b *testing.B) { func TestDroppedWithoutGettersSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedDroppedWithoutGetters(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -598,14 +596,14 @@ func TestDroppedWithoutGettersSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkDroppedWithoutGettersSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*DroppedWithoutGetters, 1000) for i := 0; i < 1000; i++ { @@ -620,10 +618,10 @@ func BenchmarkDroppedWithoutGettersSize(b *testing.B) { func TestKeptSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKept(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -634,14 +632,14 @@ func TestKeptSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkKeptSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Kept, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/typedeclimport/Makefile b/vendor/github.com/gogo/protobuf/test/typedeclimport/Makefile new file mode 100644 index 000000000..d8a8e1f3f --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedeclimport/Makefile @@ -0,0 +1,4 @@ +regenerate: + go install github.com/gogo/protobuf/protoc-gen-gogo + protoc-min-version --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. typedeclimport.proto + protoc-min-version --version="3.0.0" --gogo_out=. --proto_path=../../../../../:../../protobuf/:. ./subpkg/subpkg.proto \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/typedeclimport/models.go b/vendor/github.com/gogo/protobuf/test/typedeclimport/models.go new file mode 100644 index 000000000..4044b91b6 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedeclimport/models.go @@ -0,0 +1,7 @@ +package typedeclimport + +import subpkg "github.com/gogo/protobuf/test/typedeclimport/subpkg" + +type SomeMessage struct { + Imported subpkg.AnotherMessage +} diff --git a/vendor/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.pb.go b/vendor/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.pb.go new file mode 100644 index 000000000..27496204d --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.pb.go @@ -0,0 +1,383 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: subpkg/subpkg.proto + +/* +Package subpkg is a generated protocol buffer package. + +It is generated from these files: + subpkg/subpkg.proto + +It has these top-level messages: + AnotherMessage +*/ +package subpkg + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" + +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 + +type AnotherMessage struct { + Foo string `protobuf:"bytes,1,opt,name=foo,proto3" json:"foo,omitempty"` +} + +func (m *AnotherMessage) Reset() { *m = AnotherMessage{} } +func (m *AnotherMessage) String() string { return proto.CompactTextString(m) } +func (*AnotherMessage) ProtoMessage() {} +func (*AnotherMessage) Descriptor() ([]byte, []int) { return fileDescriptorSubpkg, []int{0} } + +func (m *AnotherMessage) GetFoo() string { + if m != nil { + return m.Foo + } + return "" +} + +func init() { + proto.RegisterType((*AnotherMessage)(nil), "subpkg.AnotherMessage") +} +func (this *AnotherMessage) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*AnotherMessage) + if !ok { + that2, ok := that.(AnotherMessage) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *AnotherMessage") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *AnotherMessage but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *AnotherMessage but is not nil && this == nil") + } + if this.Foo != that1.Foo { + return fmt.Errorf("Foo this(%v) Not Equal that(%v)", this.Foo, that1.Foo) + } + return nil +} +func (this *AnotherMessage) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*AnotherMessage) + if !ok { + that2, ok := that.(AnotherMessage) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if this.Foo != that1.Foo { + return false + } + return true +} +func (m *AnotherMessage) 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 *AnotherMessage) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Foo) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintSubpkg(dAtA, i, uint64(len(m.Foo))) + i += copy(dAtA[i:], m.Foo) + } + return i, nil +} + +func encodeFixed64Subpkg(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 encodeFixed32Subpkg(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 encodeVarintSubpkg(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 *AnotherMessage) Size() (n int) { + var l int + _ = l + l = len(m.Foo) + if l > 0 { + n += 1 + l + sovSubpkg(uint64(l)) + } + return n +} + +func sovSubpkg(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozSubpkg(x uint64) (n int) { + return sovSubpkg(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *AnotherMessage) 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 ErrIntOverflowSubpkg + } + 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: AnotherMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnotherMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Foo", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSubpkg + } + 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 ErrInvalidLengthSubpkg + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Foo = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSubpkg(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthSubpkg + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipSubpkg(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, ErrIntOverflowSubpkg + } + 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, ErrIntOverflowSubpkg + } + 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, ErrIntOverflowSubpkg + } + 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, ErrInvalidLengthSubpkg + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSubpkg + } + 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 := skipSubpkg(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 ( + ErrInvalidLengthSubpkg = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowSubpkg = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("subpkg/subpkg.proto", fileDescriptorSubpkg) } + +var fileDescriptorSubpkg = []byte{ + // 137 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2e, 0x2e, 0x4d, 0x2a, + 0xc8, 0x4e, 0xd7, 0x87, 0x50, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x6c, 0x10, 0x9e, 0x94, + 0x6e, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x7e, 0x7a, 0x7e, 0x7a, 0xbe, + 0x3e, 0x58, 0x3a, 0xa9, 0x34, 0x0d, 0xcc, 0x03, 0x73, 0xc0, 0x2c, 0x88, 0x36, 0x25, 0x25, 0x2e, + 0x3e, 0xc7, 0xbc, 0xfc, 0x92, 0x8c, 0xd4, 0x22, 0xdf, 0xd4, 0xe2, 0xe2, 0xc4, 0xf4, 0x54, 0x21, + 0x01, 0x2e, 0xe6, 0xb4, 0xfc, 0x7c, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x10, 0xd3, 0x49, + 0xe4, 0xc1, 0x43, 0x39, 0xc6, 0x15, 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, + 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x24, 0x36, 0xb0, 0x01, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x37, 0x5d, 0xf6, 0x73, 0x8e, 0x00, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.proto b/vendor/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.proto new file mode 100644 index 000000000..2e20c9e7b --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package subpkg; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.marshaler_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; + +message AnotherMessage { + string foo = 1; +} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.pb.go b/vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.pb.go new file mode 100644 index 000000000..a738d11ff --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.pb.go @@ -0,0 +1,384 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: typedeclimport.proto + +/* +Package typedeclimport is a generated protocol buffer package. + +It is generated from these files: + typedeclimport.proto + +It has these top-level messages: + SomeMessage +*/ +package typedeclimport + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/gogo/protobuf/gogoproto" +import subpkg "github.com/gogo/protobuf/test/typedeclimport/subpkg" + +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 *SomeMessage) Reset() { *m = SomeMessage{} } +func (m *SomeMessage) String() string { return proto.CompactTextString(m) } +func (*SomeMessage) ProtoMessage() {} +func (*SomeMessage) Descriptor() ([]byte, []int) { return fileDescriptorTypedeclimport, []int{0} } + +func (m *SomeMessage) GetImported() subpkg.AnotherMessage { + if m != nil { + return m.Imported + } + return subpkg.AnotherMessage{} +} + +func init() { + proto.RegisterType((*SomeMessage)(nil), "typedeclimport.SomeMessage") +} +func (this *SomeMessage) VerboseEqual(that interface{}) error { + if that == nil { + if this == nil { + return nil + } + return fmt.Errorf("that == nil && this != nil") + } + + that1, ok := that.(*SomeMessage) + if !ok { + that2, ok := that.(SomeMessage) + if ok { + that1 = &that2 + } else { + return fmt.Errorf("that is not of type *SomeMessage") + } + } + if that1 == nil { + if this == nil { + return nil + } + return fmt.Errorf("that is type *SomeMessage but is nil && this != nil") + } else if this == nil { + return fmt.Errorf("that is type *SomeMessage but is not nil && this == nil") + } + if !this.Imported.Equal(&that1.Imported) { + return fmt.Errorf("Imported this(%v) Not Equal that(%v)", this.Imported, that1.Imported) + } + return nil +} +func (this *SomeMessage) Equal(that interface{}) bool { + if that == nil { + if this == nil { + return true + } + return false + } + + that1, ok := that.(*SomeMessage) + if !ok { + that2, ok := that.(SomeMessage) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + if this == nil { + return true + } + return false + } else if this == nil { + return false + } + if !this.Imported.Equal(&that1.Imported) { + return false + } + return true +} +func (m *SomeMessage) 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 *SomeMessage) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintTypedeclimport(dAtA, i, uint64(m.Imported.Size())) + n1, err := m.Imported.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + return i, nil +} + +func encodeFixed64Typedeclimport(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 encodeFixed32Typedeclimport(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 encodeVarintTypedeclimport(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 *SomeMessage) Size() (n int) { + var l int + _ = l + l = m.Imported.Size() + n += 1 + l + sovTypedeclimport(uint64(l)) + return n +} + +func sovTypedeclimport(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozTypedeclimport(x uint64) (n int) { + return sovTypedeclimport(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *SomeMessage) 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 ErrIntOverflowTypedeclimport + } + 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: SomeMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SomeMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Imported", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypedeclimport + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypedeclimport + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Imported.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypedeclimport(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypedeclimport + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTypedeclimport(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, ErrIntOverflowTypedeclimport + } + 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, ErrIntOverflowTypedeclimport + } + 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, ErrIntOverflowTypedeclimport + } + 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, ErrInvalidLengthTypedeclimport + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypedeclimport + } + 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 := skipTypedeclimport(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 ( + ErrInvalidLengthTypedeclimport = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTypedeclimport = fmt.Errorf("proto: integer overflow") +) + +func init() { proto.RegisterFile("typedeclimport.proto", fileDescriptorTypedeclimport) } + +var fileDescriptorTypedeclimport = []byte{ + // 189 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x29, 0xa9, 0x2c, 0x48, + 0x4d, 0x49, 0x4d, 0xce, 0xc9, 0xcc, 0x2d, 0xc8, 0x2f, 0x2a, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, + 0x17, 0xe2, 0x43, 0x15, 0x95, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, + 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4b, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, + 0x0b, 0xa2, 0x5d, 0xca, 0x01, 0xa7, 0xf2, 0x92, 0xd4, 0xe2, 0x12, 0x7d, 0x54, 0xc3, 0xf5, 0x8b, + 0x4b, 0x93, 0x0a, 0xb2, 0xd3, 0xa1, 0x14, 0xc4, 0x04, 0x25, 0x5f, 0x2e, 0xee, 0xe0, 0xfc, 0xdc, + 0x54, 0xdf, 0xd4, 0xe2, 0xe2, 0xc4, 0xf4, 0x54, 0x21, 0x0b, 0x2e, 0x0e, 0x88, 0xe2, 0xd4, 0x14, + 0x09, 0x46, 0x05, 0x46, 0x0d, 0x6e, 0x23, 0x31, 0x3d, 0xa8, 0x7a, 0xc7, 0xbc, 0xfc, 0x92, 0x8c, + 0xd4, 0x22, 0xa8, 0x4a, 0x27, 0x96, 0x13, 0xf7, 0xe4, 0x19, 0x82, 0xe0, 0xaa, 0xad, 0x58, 0x3e, + 0x2c, 0x94, 0x67, 0x70, 0x12, 0x79, 0xf0, 0x50, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x13, 0x8f, + 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x31, 0x89, 0x0d, 0x6c, 0x97, 0x31, + 0x20, 0x00, 0x00, 0xff, 0xff, 0x54, 0x23, 0xca, 0x44, 0x04, 0x01, 0x00, 0x00, +} diff --git a/vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.proto b/vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.proto new file mode 100644 index 000000000..8ab8dbf24 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; + +package typedeclimport; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +import "github.com/gogo/protobuf/test/typedeclimport/subpkg/subpkg.proto"; + +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.equal_all) = true; +option (gogoproto.verbose_equal_all) = true; + +message SomeMessage { + option (gogoproto.typedecl) = false; + subpkg.AnotherMessage imported = 1 [(gogoproto.nullable) = false]; +} \ No newline at end of file diff --git a/vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport_test.go b/vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport_test.go new file mode 100644 index 000000000..bea4cae73 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/test/typedeclimport/typedeclimport_test.go @@ -0,0 +1,7 @@ +package typedeclimport + +import "testing" + +func Test(t *testing.T) { + // No need to do anything, if this test runs, it means it works +} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go index 8cd75e4db..0fe7c88bb 100644 --- a/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go +++ b/vendor/github.com/gogo/protobuf/test/types/combos/both/types.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/types.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -32,6 +31,8 @@ import google_protobuf3 "github.com/gogo/protobuf/types" import time "time" import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" +import types1 "github.com/gogo/protobuf/types" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -2213,8 +2214,8 @@ func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { if m.NullableTimestamp != nil { dAtA[i] = 0xa i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp))) - n16, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*m.NullableTimestamp))) + n16, err := types1.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) if err != nil { return 0, err } @@ -2223,8 +2224,8 @@ func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { if m.NullableDuration != nil { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration))) - n17, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*m.NullableDuration))) + n17, err := types1.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) if err != nil { return 0, err } @@ -2232,16 +2233,16 @@ func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { } dAtA[i] = 0x1a i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) - n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(m.Timestamp))) + n18, err := types1.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) if err != nil { return 0, err } i += n18 dAtA[i] = 0x22 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration))) - n19, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Duration, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(m.Duration))) + n19, err := types1.StdDurationMarshalTo(m.Duration, dAtA[i:]) if err != nil { return 0, err } @@ -2334,8 +2335,8 @@ func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.NullableTimestamps { dAtA[i] = 0xa i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*msg))) - n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*msg, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*msg))) + n, err := types1.StdTimeMarshalTo(*msg, dAtA[i:]) if err != nil { return 0, err } @@ -2346,8 +2347,8 @@ func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.NullableDurations { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*msg))) - n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*msg, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*msg))) + n, err := types1.StdDurationMarshalTo(*msg, dAtA[i:]) if err != nil { return 0, err } @@ -2358,8 +2359,8 @@ func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.Timestamps { dAtA[i] = 0x1a i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(msg))) - n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(msg, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(msg))) + n, err := types1.StdTimeMarshalTo(msg, dAtA[i:]) if err != nil { return 0, err } @@ -2370,8 +2371,8 @@ func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.Durations { dAtA[i] = 0x22 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(msg))) - n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(msg, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(msg))) + n, err := types1.StdDurationMarshalTo(msg, dAtA[i:]) if err != nil { return 0, err } @@ -2525,7 +2526,7 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { v := m.NullableTimestamp[k] msgSize := 0 if v != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + msgSize = types1.SizeOfStdTime(*v) msgSize += 1 + sovTypes(uint64(msgSize)) } mapSize := 1 + sovTypes(uint64(k)) + msgSize @@ -2536,8 +2537,8 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { if v != nil { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*v))) - n24, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*v, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*v))) + n24, err := types1.StdTimeMarshalTo(*v, dAtA[i:]) if err != nil { return 0, err } @@ -2552,7 +2553,7 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { v := m.Timestamp[k] msgSize := 0 if (&v) != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)) + msgSize = types1.SizeOfStdTime(*(&v)) msgSize += 1 + sovTypes(uint64(msgSize)) } mapSize := 1 + sovTypes(uint64(k)) + msgSize @@ -2562,8 +2563,8 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTypes(dAtA, i, uint64(k)) dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)))) - n25, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*(&v)))) + n25, err := types1.StdTimeMarshalTo(*(&v), dAtA[i:]) if err != nil { return 0, err } @@ -2577,7 +2578,7 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { v := m.NullableDuration[k] msgSize := 0 if v != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + msgSize = types1.SizeOfStdDuration(*v) msgSize += 1 + sovTypes(uint64(msgSize)) } mapSize := 1 + sovTypes(uint64(k)) + msgSize @@ -2588,8 +2589,8 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { if v != nil { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) - n26, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*v))) + n26, err := types1.StdDurationMarshalTo(*v, dAtA[i:]) if err != nil { return 0, err } @@ -2604,7 +2605,7 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { v := m.Duration[k] msgSize := 0 if (&v) != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)) + msgSize = types1.SizeOfStdDuration(*(&v)) msgSize += 1 + sovTypes(uint64(msgSize)) } mapSize := 1 + sovTypes(uint64(k)) + msgSize @@ -2614,8 +2615,8 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTypes(dAtA, i, uint64(k)) dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)))) - n27, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*(&v)))) + n27, err := types1.StdDurationMarshalTo(*(&v), dAtA[i:]) if err != nil { return 0, err } @@ -2708,8 +2709,8 @@ func (m *OneofStdTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { if m.Timestamp != nil { dAtA[i] = 0xa i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp))) - n32, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*m.Timestamp))) + n32, err := types1.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) if err != nil { return 0, err } @@ -2722,8 +2723,8 @@ func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { if m.Duration != nil { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration))) - n33, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Duration, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*m.Duration))) + n33, err := types1.StdDurationMarshalTo(*m.Duration, dAtA[i:]) if err != nil { return 0, err } @@ -2731,24 +2732,6 @@ func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { } return i, nil } -func encodeFixed64Types(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 encodeFixed32Types(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 encodeVarintTypes(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2818,14 +2801,14 @@ func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { this := &StdTypes{} if r.Intn(10) != 0 { - this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp = types1.NewPopulatedStdTime(r, easy) } if r.Intn(10) != 0 { - this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration = types1.NewPopulatedStdDuration(r, easy) } - v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v3 := types1.NewPopulatedStdTime(r, easy) this.Timestamp = *v3 - v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v4 := types1.NewPopulatedStdDuration(r, easy) this.Duration = *v4 if !easy && r.Intn(10) != 0 { } @@ -2875,21 +2858,21 @@ func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { v11 := r.Intn(5) this.NullableTimestamps = make([]*time.Time, v11) for i := 0; i < v11; i++ { - this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamps[i] = types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v12 := r.Intn(5) this.NullableDurations = make([]*time.Duration, v12) for i := 0; i < v12; i++ { - this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDurations[i] = types1.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v13 := r.Intn(5) this.Timestamps = make([]time.Time, v13) for i := 0; i < v13; i++ { - v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v14 := types1.NewPopulatedStdTime(r, easy) this.Timestamps[i] = *v14 } } @@ -2897,7 +2880,7 @@ func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { v15 := r.Intn(5) this.Durations = make([]time.Duration, v15) for i := 0; i < v15; i++ { - v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v16 := types1.NewPopulatedStdDuration(r, easy) this.Durations[i] = *v16 } } @@ -2947,28 +2930,28 @@ func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { v21 := r.Intn(10) this.NullableTimestamp = make(map[int32]*time.Time) for i := 0; i < v21; i++ { - this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp[int32(r.Int31())] = types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v22 := r.Intn(10) this.Timestamp = make(map[int32]time.Time) for i := 0; i < v22; i++ { - this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp[int32(r.Int31())] = *types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v23 := r.Intn(10) this.NullableDuration = make(map[int32]*time.Duration) for i := 0; i < v23; i++ { - this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration[int32(r.Int31())] = types1.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v24 := r.Intn(10) this.Duration = make(map[int32]time.Duration) for i := 0; i < v24; i++ { - this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration[int32(r.Int31())] = *types1.NewPopulatedStdDuration(r, easy) } } if !easy && r.Intn(10) != 0 { @@ -3016,12 +2999,12 @@ func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { this := &OneofStdTypes_Timestamp{} - this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = types1.NewPopulatedStdTime(r, easy) return this } func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { this := &OneofStdTypes_Duration{} - this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = types1.NewPopulatedStdDuration(r, easy) return this } @@ -3169,16 +3152,16 @@ func (m *StdTypes) Size() (n int) { var l int _ = l if m.NullableTimestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + l = types1.SizeOfStdTime(*m.NullableTimestamp) n += 1 + l + sovTypes(uint64(l)) } if m.NullableDuration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + l = types1.SizeOfStdDuration(*m.NullableDuration) n += 1 + l + sovTypes(uint64(l)) } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + l = types1.SizeOfStdTime(m.Timestamp) n += 1 + l + sovTypes(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + l = types1.SizeOfStdDuration(m.Duration) n += 1 + l + sovTypes(uint64(l)) return n } @@ -3218,25 +3201,25 @@ func (m *RepStdTypes) Size() (n int) { _ = l if len(m.NullableTimestamps) > 0 { for _, e := range m.NullableTimestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + l = types1.SizeOfStdTime(*e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.NullableDurations) > 0 { for _, e := range m.NullableDurations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + l = types1.SizeOfStdDuration(*e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.Timestamps) > 0 { for _, e := range m.Timestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + l = types1.SizeOfStdTime(e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.Durations) > 0 { for _, e := range m.Durations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + l = types1.SizeOfStdDuration(e) n += 1 + l + sovTypes(uint64(l)) } } @@ -3302,7 +3285,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l = types1.SizeOfStdTime(*v) l += 1 + sovTypes(uint64(l)) } mapEntrySize := 1 + sovTypes(uint64(k)) + l @@ -3313,7 +3296,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Timestamp { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + l = types1.SizeOfStdTime(v) mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) } @@ -3324,7 +3307,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l = types1.SizeOfStdDuration(*v) l += 1 + sovTypes(uint64(l)) } mapEntrySize := 1 + sovTypes(uint64(k)) + l @@ -3335,7 +3318,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Duration { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + l = types1.SizeOfStdDuration(v) mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) } @@ -3383,7 +3366,7 @@ func (m *OneofStdTypes_Timestamp) Size() (n int) { var l int _ = l if m.Timestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + l = types1.SizeOfStdTime(*m.Timestamp) n += 1 + l + sovTypes(uint64(l)) } return n @@ -3392,7 +3375,7 @@ func (m *OneofStdTypes_Duration) Size() (n int) { var l int _ = l if m.Duration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + l = types1.SizeOfStdDuration(*m.Duration) n += 1 + l + sovTypes(uint64(l)) } return n @@ -4058,7 +4041,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error { if m.NullableTimestamp == nil { m.NullableTimestamp = new(time.Time) } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4091,7 +4074,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error { if m.NullableDuration == nil { m.NullableDuration = new(time.Duration) } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4121,7 +4104,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4151,7 +4134,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4406,7 +4389,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } m.NullableTimestamps = append(m.NullableTimestamps, new(time.Time)) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4437,7 +4420,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } m.NullableDurations = append(m.NullableDurations, new(time.Duration)) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4468,7 +4451,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } m.Timestamps = append(m.Timestamps, time.Time{}) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4499,7 +4482,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } m.Durations = append(m.Durations, time.Duration(0)) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4579,41 +4562,14 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.NullableTimestamp == nil { m.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue *google_protobuf2.Timestamp + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4623,46 +4579,74 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf2.Timestamp{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableTimestamp[mapkey] = mapvalue - } else { - var mapvalue *google_protobuf2.Timestamp - m.NullableTimestamp[mapkey] = mapvalue } + m.NullableTimestamp[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -4690,41 +4674,14 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Timestamp == nil { m.Timestamp = make(map[int32]google_protobuf2.Timestamp) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := &google_protobuf2.Timestamp{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4734,46 +4691,74 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf2.Timestamp{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Timestamp[mapkey] = *mapvalue - } else { - var mapvalue google_protobuf2.Timestamp - m.Timestamp[mapkey] = mapvalue } + m.Timestamp[mapkey] = *mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -4801,41 +4786,14 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.NullableDuration == nil { m.NullableDuration = make(map[int32]*google_protobuf1.Duration) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue *google_protobuf1.Duration + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4845,46 +4803,74 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf1.Duration{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableDuration[mapkey] = mapvalue - } else { - var mapvalue *google_protobuf1.Duration - m.NullableDuration[mapkey] = mapvalue } + m.NullableDuration[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -4912,41 +4898,14 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Duration == nil { m.Duration = make(map[int32]google_protobuf1.Duration) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := &google_protobuf1.Duration{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4956,46 +4915,74 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf1.Duration{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Duration[mapkey] = *mapvalue - } else { - var mapvalue google_protobuf1.Duration - m.Duration[mapkey] = mapvalue } + m.Duration[mapkey] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -5073,41 +5060,14 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.NullableTimestamp == nil { m.NullableTimestamp = make(map[int32]*time.Time) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := new(time.Time) + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -5117,46 +5077,73 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if err := types1.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableTimestamp[mapkey] = mapvalue - } else { - var mapvalue = new(time.Time) - m.NullableTimestamp[mapkey] = mapvalue } + m.NullableTimestamp[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -5184,41 +5171,14 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Timestamp == nil { m.Timestamp = make(map[int32]time.Time) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := new(time.Time) + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -5228,46 +5188,73 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if err := types1.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Timestamp[mapkey] = *mapvalue - } else { - var mapvalue = new(time.Time) - m.Timestamp[mapkey] = *mapvalue } + m.Timestamp[mapkey] = *mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -5295,41 +5282,14 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.NullableDuration == nil { m.NullableDuration = make(map[int32]*time.Duration) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := new(time.Duration) + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -5339,46 +5299,73 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if err := types1.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableDuration[mapkey] = mapvalue - } else { - var mapvalue = new(time.Duration) - m.NullableDuration[mapkey] = mapvalue } + m.NullableDuration[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -5406,41 +5393,14 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Duration == nil { m.Duration = make(map[int32]time.Duration) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := new(time.Duration) + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -5450,46 +5410,73 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if err := types1.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Duration[mapkey] = *mapvalue - } else { - var mapvalue = new(time.Duration) - m.Duration[mapkey] = *mapvalue } + m.Duration[mapkey] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -5682,7 +5669,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } v := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { return err } m.OneOfStdTimes = &OneofStdTypes_Timestamp{v} @@ -5714,7 +5701,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } v := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { return err } m.OneOfStdTimes = &OneofStdTypes_Duration{v} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/both/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/both/typespb_test.go index e5b8ff460..5b1fb2b45 100644 --- a/vendor/github.com/gogo/protobuf/test/types/combos/both/typespb_test.go +++ b/vendor/github.com/gogo/protobuf/test/types/combos/both/typespb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/both/types.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -22,11 +21,10 @@ It has these top-level messages: package types import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -41,14 +39,14 @@ var _ = math.Inf func TestKnownTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -69,13 +67,13 @@ func TestKnownTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestKnownTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -87,7 +85,7 @@ func TestKnownTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -102,7 +100,7 @@ func TestKnownTypesMarshalTo(t *testing.T) { } func BenchmarkKnownTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*KnownTypes, 10000) for i := 0; i < 10000; i++ { @@ -110,7 +108,7 @@ func BenchmarkKnownTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -120,11 +118,11 @@ func BenchmarkKnownTypesProtoMarshal(b *testing.B) { } func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedKnownTypes(popr, false)) if err != nil { panic(err) } @@ -134,7 +132,7 @@ func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -143,14 +141,14 @@ func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { func TestProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -171,13 +169,13 @@ func TestProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestProtoTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -189,7 +187,7 @@ func TestProtoTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -204,7 +202,7 @@ func TestProtoTypesMarshalTo(t *testing.T) { } func BenchmarkProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -212,7 +210,7 @@ func BenchmarkProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -222,11 +220,11 @@ func BenchmarkProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedProtoTypes(popr, false)) if err != nil { panic(err) } @@ -236,7 +234,7 @@ func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -245,14 +243,14 @@ func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { func TestStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -273,13 +271,13 @@ func TestStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestStdTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -291,7 +289,7 @@ func TestStdTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -306,7 +304,7 @@ func TestStdTypesMarshalTo(t *testing.T) { } func BenchmarkStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 10000) for i := 0; i < 10000; i++ { @@ -314,7 +312,7 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -324,11 +322,11 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedStdTypes(popr, false)) if err != nil { panic(err) } @@ -338,7 +336,7 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -347,14 +345,14 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { func TestRepProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -375,13 +373,13 @@ func TestRepProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestRepProtoTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -393,7 +391,7 @@ func TestRepProtoTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -408,7 +406,7 @@ func TestRepProtoTypesMarshalTo(t *testing.T) { } func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -416,7 +414,7 @@ func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -426,11 +424,11 @@ func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) if err != nil { panic(err) } @@ -440,7 +438,7 @@ func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -449,14 +447,14 @@ func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { func TestRepStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -477,13 +475,13 @@ func TestRepStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestRepStdTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -495,7 +493,7 @@ func TestRepStdTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -510,7 +508,7 @@ func TestRepStdTypesMarshalTo(t *testing.T) { } func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -518,7 +516,7 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -528,11 +526,11 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedRepStdTypes(popr, false)) if err != nil { panic(err) } @@ -542,7 +540,7 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -551,14 +549,14 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { func TestMapProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -579,13 +577,13 @@ func TestMapProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMapProtoTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -597,7 +595,7 @@ func TestMapProtoTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -612,7 +610,7 @@ func TestMapProtoTypesMarshalTo(t *testing.T) { } func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -620,7 +618,7 @@ func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -630,11 +628,11 @@ func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) if err != nil { panic(err) } @@ -644,7 +642,7 @@ func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -653,14 +651,14 @@ func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { func TestMapStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -681,13 +679,13 @@ func TestMapStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMapStdTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -699,7 +697,7 @@ func TestMapStdTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -714,7 +712,7 @@ func TestMapStdTypesMarshalTo(t *testing.T) { } func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -722,7 +720,7 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -732,11 +730,11 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMapStdTypes(popr, false)) if err != nil { panic(err) } @@ -746,7 +744,7 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -755,14 +753,14 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { func TestOneofProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -783,13 +781,13 @@ func TestOneofProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOneofProtoTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -801,7 +799,7 @@ func TestOneofProtoTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -816,7 +814,7 @@ func TestOneofProtoTypesMarshalTo(t *testing.T) { } func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -824,7 +822,7 @@ func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -834,11 +832,11 @@ func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) if err != nil { panic(err) } @@ -848,7 +846,7 @@ func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -857,14 +855,14 @@ func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { func TestOneofStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -885,13 +883,13 @@ func TestOneofStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOneofStdTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -903,7 +901,7 @@ func TestOneofStdTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -918,7 +916,7 @@ func TestOneofStdTypesMarshalTo(t *testing.T) { } func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -926,7 +924,7 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -936,11 +934,11 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) if err != nil { panic(err) } @@ -950,7 +948,7 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -959,15 +957,15 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { func TestKnownTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -980,15 +978,15 @@ func TestKnownTypesJSON(t *testing.T) { } func TestProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1001,15 +999,15 @@ func TestProtoTypesJSON(t *testing.T) { } func TestStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1022,15 +1020,15 @@ func TestStdTypesJSON(t *testing.T) { } func TestRepProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1043,15 +1041,15 @@ func TestRepProtoTypesJSON(t *testing.T) { } func TestRepStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1064,15 +1062,15 @@ func TestRepStdTypesJSON(t *testing.T) { } func TestMapProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1085,15 +1083,15 @@ func TestMapProtoTypesJSON(t *testing.T) { } func TestMapStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1106,15 +1104,15 @@ func TestMapStdTypesJSON(t *testing.T) { } func TestOneofProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1127,15 +1125,15 @@ func TestOneofProtoTypesJSON(t *testing.T) { } func TestOneofStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1148,11 +1146,11 @@ func TestOneofStdTypesJSON(t *testing.T) { } func TestKnownTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1165,11 +1163,11 @@ func TestKnownTypesProtoText(t *testing.T) { func TestKnownTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1182,11 +1180,11 @@ func TestKnownTypesProtoCompactText(t *testing.T) { func TestProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1199,11 +1197,11 @@ func TestProtoTypesProtoText(t *testing.T) { func TestProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1216,11 +1214,11 @@ func TestProtoTypesProtoCompactText(t *testing.T) { func TestStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1233,11 +1231,11 @@ func TestStdTypesProtoText(t *testing.T) { func TestStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1250,11 +1248,11 @@ func TestStdTypesProtoCompactText(t *testing.T) { func TestRepProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1267,11 +1265,11 @@ func TestRepProtoTypesProtoText(t *testing.T) { func TestRepProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1284,11 +1282,11 @@ func TestRepProtoTypesProtoCompactText(t *testing.T) { func TestRepStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1301,11 +1299,11 @@ func TestRepStdTypesProtoText(t *testing.T) { func TestRepStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1318,11 +1316,11 @@ func TestRepStdTypesProtoCompactText(t *testing.T) { func TestMapProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1335,11 +1333,11 @@ func TestMapProtoTypesProtoText(t *testing.T) { func TestMapProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1352,11 +1350,11 @@ func TestMapProtoTypesProtoCompactText(t *testing.T) { func TestMapStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1369,11 +1367,11 @@ func TestMapStdTypesProtoText(t *testing.T) { func TestMapStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1386,11 +1384,11 @@ func TestMapStdTypesProtoCompactText(t *testing.T) { func TestOneofProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1403,11 +1401,11 @@ func TestOneofProtoTypesProtoText(t *testing.T) { func TestOneofProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1420,11 +1418,11 @@ func TestOneofProtoTypesProtoCompactText(t *testing.T) { func TestOneofStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1437,11 +1435,11 @@ func TestOneofStdTypesProtoText(t *testing.T) { func TestOneofStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1453,14 +1451,14 @@ func TestOneofStdTypesProtoCompactText(t *testing.T) { } func TestKnownTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1477,14 +1475,14 @@ func TestKnownTypesCompare(t *testing.T) { } } func TestProtoTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1501,14 +1499,14 @@ func TestProtoTypesCompare(t *testing.T) { } } func TestRepProtoTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1525,14 +1523,14 @@ func TestRepProtoTypesCompare(t *testing.T) { } } func TestKnownTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1540,14 +1538,14 @@ func TestKnownTypesVerboseEqual(t *testing.T) { } } func TestProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1555,14 +1553,14 @@ func TestProtoTypesVerboseEqual(t *testing.T) { } } func TestStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1570,14 +1568,14 @@ func TestStdTypesVerboseEqual(t *testing.T) { } } func TestRepProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1585,14 +1583,14 @@ func TestRepProtoTypesVerboseEqual(t *testing.T) { } } func TestRepStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1600,14 +1598,14 @@ func TestRepStdTypesVerboseEqual(t *testing.T) { } } func TestMapProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1615,14 +1613,14 @@ func TestMapProtoTypesVerboseEqual(t *testing.T) { } } func TestMapStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1630,14 +1628,14 @@ func TestMapStdTypesVerboseEqual(t *testing.T) { } } func TestOneofProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1645,14 +1643,14 @@ func TestOneofProtoTypesVerboseEqual(t *testing.T) { } } func TestOneofStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1661,10 +1659,10 @@ func TestOneofStdTypesVerboseEqual(t *testing.T) { } func TestKnownTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1675,14 +1673,14 @@ func TestKnownTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkKnownTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*KnownTypes, 1000) for i := 0; i < 1000; i++ { @@ -1697,10 +1695,10 @@ func BenchmarkKnownTypesSize(b *testing.B) { func TestProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1711,14 +1709,14 @@ func TestProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1733,10 +1731,10 @@ func BenchmarkProtoTypesSize(b *testing.B) { func TestStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1747,14 +1745,14 @@ func TestStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1769,10 +1767,10 @@ func BenchmarkStdTypesSize(b *testing.B) { func TestRepProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1783,14 +1781,14 @@ func TestRepProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRepProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1805,10 +1803,10 @@ func BenchmarkRepProtoTypesSize(b *testing.B) { func TestRepStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1819,14 +1817,14 @@ func TestRepStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRepStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1841,10 +1839,10 @@ func BenchmarkRepStdTypesSize(b *testing.B) { func TestMapProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1855,14 +1853,14 @@ func TestMapProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMapProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1877,10 +1875,10 @@ func BenchmarkMapProtoTypesSize(b *testing.B) { func TestMapStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1891,14 +1889,14 @@ func TestMapStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMapStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1913,10 +1911,10 @@ func BenchmarkMapStdTypesSize(b *testing.B) { func TestOneofProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1927,14 +1925,14 @@ func TestOneofProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOneofProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1949,10 +1947,10 @@ func BenchmarkOneofProtoTypesSize(b *testing.B) { func TestOneofStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1963,14 +1961,14 @@ func TestOneofStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOneofStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go index a0d43d35a..68d200fd7 100644 --- a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go +++ b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/types.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/types.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -32,6 +31,8 @@ import google_protobuf3 "github.com/gogo/protobuf/types" import time "time" import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" +import types1 "github.com/gogo/protobuf/types" + // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -2211,8 +2212,8 @@ func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { if m.NullableTimestamp != nil { dAtA[i] = 0xa i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp))) - n16, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*m.NullableTimestamp))) + n16, err := types1.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) if err != nil { return 0, err } @@ -2221,8 +2222,8 @@ func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { if m.NullableDuration != nil { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration))) - n17, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*m.NullableDuration))) + n17, err := types1.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) if err != nil { return 0, err } @@ -2230,16 +2231,16 @@ func (m *StdTypes) MarshalTo(dAtA []byte) (int, error) { } dAtA[i] = 0x1a i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) - n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(m.Timestamp))) + n18, err := types1.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) if err != nil { return 0, err } i += n18 dAtA[i] = 0x22 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration))) - n19, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Duration, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(m.Duration))) + n19, err := types1.StdDurationMarshalTo(m.Duration, dAtA[i:]) if err != nil { return 0, err } @@ -2332,8 +2333,8 @@ func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.NullableTimestamps { dAtA[i] = 0xa i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*msg))) - n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*msg, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*msg))) + n, err := types1.StdTimeMarshalTo(*msg, dAtA[i:]) if err != nil { return 0, err } @@ -2344,8 +2345,8 @@ func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.NullableDurations { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*msg))) - n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*msg, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*msg))) + n, err := types1.StdDurationMarshalTo(*msg, dAtA[i:]) if err != nil { return 0, err } @@ -2356,8 +2357,8 @@ func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.Timestamps { dAtA[i] = 0x1a i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(msg))) - n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(msg, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(msg))) + n, err := types1.StdTimeMarshalTo(msg, dAtA[i:]) if err != nil { return 0, err } @@ -2368,8 +2369,8 @@ func (m *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { for _, msg := range m.Durations { dAtA[i] = 0x22 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(msg))) - n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(msg, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(msg))) + n, err := types1.StdDurationMarshalTo(msg, dAtA[i:]) if err != nil { return 0, err } @@ -2523,7 +2524,7 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { v := m.NullableTimestamp[k] msgSize := 0 if v != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + msgSize = types1.SizeOfStdTime(*v) msgSize += 1 + sovTypes(uint64(msgSize)) } mapSize := 1 + sovTypes(uint64(k)) + msgSize @@ -2534,8 +2535,8 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { if v != nil { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*v))) - n24, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*v, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*v))) + n24, err := types1.StdTimeMarshalTo(*v, dAtA[i:]) if err != nil { return 0, err } @@ -2550,7 +2551,7 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { v := m.Timestamp[k] msgSize := 0 if (&v) != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)) + msgSize = types1.SizeOfStdTime(*(&v)) msgSize += 1 + sovTypes(uint64(msgSize)) } mapSize := 1 + sovTypes(uint64(k)) + msgSize @@ -2560,8 +2561,8 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTypes(dAtA, i, uint64(k)) dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)))) - n25, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*(&v)))) + n25, err := types1.StdTimeMarshalTo(*(&v), dAtA[i:]) if err != nil { return 0, err } @@ -2575,7 +2576,7 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { v := m.NullableDuration[k] msgSize := 0 if v != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + msgSize = types1.SizeOfStdDuration(*v) msgSize += 1 + sovTypes(uint64(msgSize)) } mapSize := 1 + sovTypes(uint64(k)) + msgSize @@ -2586,8 +2587,8 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { if v != nil { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) - n26, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*v))) + n26, err := types1.StdDurationMarshalTo(*v, dAtA[i:]) if err != nil { return 0, err } @@ -2602,7 +2603,7 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { v := m.Duration[k] msgSize := 0 if (&v) != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)) + msgSize = types1.SizeOfStdDuration(*(&v)) msgSize += 1 + sovTypes(uint64(msgSize)) } mapSize := 1 + sovTypes(uint64(k)) + msgSize @@ -2612,8 +2613,8 @@ func (m *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintTypes(dAtA, i, uint64(k)) dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)))) - n27, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*(&v)))) + n27, err := types1.StdDurationMarshalTo(*(&v), dAtA[i:]) if err != nil { return 0, err } @@ -2706,8 +2707,8 @@ func (m *OneofStdTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { if m.Timestamp != nil { dAtA[i] = 0xa i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp))) - n32, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdTime(*m.Timestamp))) + n32, err := types1.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) if err != nil { return 0, err } @@ -2720,8 +2721,8 @@ func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { if m.Duration != nil { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration))) - n33, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Duration, dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(types1.SizeOfStdDuration(*m.Duration))) + n33, err := types1.StdDurationMarshalTo(*m.Duration, dAtA[i:]) if err != nil { return 0, err } @@ -2729,24 +2730,6 @@ func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { } return i, nil } -func encodeFixed64Types(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 encodeFixed32Types(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 encodeVarintTypes(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2816,14 +2799,14 @@ func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { this := &StdTypes{} if r.Intn(10) != 0 { - this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp = types1.NewPopulatedStdTime(r, easy) } if r.Intn(10) != 0 { - this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration = types1.NewPopulatedStdDuration(r, easy) } - v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v3 := types1.NewPopulatedStdTime(r, easy) this.Timestamp = *v3 - v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v4 := types1.NewPopulatedStdDuration(r, easy) this.Duration = *v4 if !easy && r.Intn(10) != 0 { } @@ -2873,21 +2856,21 @@ func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { v11 := r.Intn(5) this.NullableTimestamps = make([]*time.Time, v11) for i := 0; i < v11; i++ { - this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamps[i] = types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v12 := r.Intn(5) this.NullableDurations = make([]*time.Duration, v12) for i := 0; i < v12; i++ { - this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDurations[i] = types1.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v13 := r.Intn(5) this.Timestamps = make([]time.Time, v13) for i := 0; i < v13; i++ { - v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v14 := types1.NewPopulatedStdTime(r, easy) this.Timestamps[i] = *v14 } } @@ -2895,7 +2878,7 @@ func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { v15 := r.Intn(5) this.Durations = make([]time.Duration, v15) for i := 0; i < v15; i++ { - v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v16 := types1.NewPopulatedStdDuration(r, easy) this.Durations[i] = *v16 } } @@ -2945,28 +2928,28 @@ func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { v21 := r.Intn(10) this.NullableTimestamp = make(map[int32]*time.Time) for i := 0; i < v21; i++ { - this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp[int32(r.Int31())] = types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v22 := r.Intn(10) this.Timestamp = make(map[int32]time.Time) for i := 0; i < v22; i++ { - this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp[int32(r.Int31())] = *types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v23 := r.Intn(10) this.NullableDuration = make(map[int32]*time.Duration) for i := 0; i < v23; i++ { - this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration[int32(r.Int31())] = types1.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v24 := r.Intn(10) this.Duration = make(map[int32]time.Duration) for i := 0; i < v24; i++ { - this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration[int32(r.Int31())] = *types1.NewPopulatedStdDuration(r, easy) } } if !easy && r.Intn(10) != 0 { @@ -3014,12 +2997,12 @@ func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { this := &OneofStdTypes_Timestamp{} - this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = types1.NewPopulatedStdTime(r, easy) return this } func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { this := &OneofStdTypes_Duration{} - this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = types1.NewPopulatedStdDuration(r, easy) return this } @@ -3167,16 +3150,16 @@ func (m *StdTypes) Size() (n int) { var l int _ = l if m.NullableTimestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + l = types1.SizeOfStdTime(*m.NullableTimestamp) n += 1 + l + sovTypes(uint64(l)) } if m.NullableDuration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + l = types1.SizeOfStdDuration(*m.NullableDuration) n += 1 + l + sovTypes(uint64(l)) } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + l = types1.SizeOfStdTime(m.Timestamp) n += 1 + l + sovTypes(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + l = types1.SizeOfStdDuration(m.Duration) n += 1 + l + sovTypes(uint64(l)) return n } @@ -3216,25 +3199,25 @@ func (m *RepStdTypes) Size() (n int) { _ = l if len(m.NullableTimestamps) > 0 { for _, e := range m.NullableTimestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + l = types1.SizeOfStdTime(*e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.NullableDurations) > 0 { for _, e := range m.NullableDurations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + l = types1.SizeOfStdDuration(*e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.Timestamps) > 0 { for _, e := range m.Timestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + l = types1.SizeOfStdTime(e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.Durations) > 0 { for _, e := range m.Durations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + l = types1.SizeOfStdDuration(e) n += 1 + l + sovTypes(uint64(l)) } } @@ -3300,7 +3283,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l = types1.SizeOfStdTime(*v) l += 1 + sovTypes(uint64(l)) } mapEntrySize := 1 + sovTypes(uint64(k)) + l @@ -3311,7 +3294,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Timestamp { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + l = types1.SizeOfStdTime(v) mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) } @@ -3322,7 +3305,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l = types1.SizeOfStdDuration(*v) l += 1 + sovTypes(uint64(l)) } mapEntrySize := 1 + sovTypes(uint64(k)) + l @@ -3333,7 +3316,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Duration { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + l = types1.SizeOfStdDuration(v) mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) } @@ -3381,7 +3364,7 @@ func (m *OneofStdTypes_Timestamp) Size() (n int) { var l int _ = l if m.Timestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + l = types1.SizeOfStdTime(*m.Timestamp) n += 1 + l + sovTypes(uint64(l)) } return n @@ -3390,7 +3373,7 @@ func (m *OneofStdTypes_Duration) Size() (n int) { var l int _ = l if m.Duration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + l = types1.SizeOfStdDuration(*m.Duration) n += 1 + l + sovTypes(uint64(l)) } return n diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/typespb_test.go index eb61a6765..5a2bac94a 100644 --- a/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/typespb_test.go +++ b/vendor/github.com/gogo/protobuf/test/types/combos/marshaler/typespb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/marshaler/types.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -22,11 +21,10 @@ It has these top-level messages: package types import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -41,14 +39,14 @@ var _ = math.Inf func TestKnownTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -69,13 +67,13 @@ func TestKnownTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestKnownTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -87,7 +85,7 @@ func TestKnownTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -102,7 +100,7 @@ func TestKnownTypesMarshalTo(t *testing.T) { } func BenchmarkKnownTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*KnownTypes, 10000) for i := 0; i < 10000; i++ { @@ -110,7 +108,7 @@ func BenchmarkKnownTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -120,11 +118,11 @@ func BenchmarkKnownTypesProtoMarshal(b *testing.B) { } func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedKnownTypes(popr, false)) if err != nil { panic(err) } @@ -134,7 +132,7 @@ func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -143,14 +141,14 @@ func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { func TestProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -171,13 +169,13 @@ func TestProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestProtoTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -189,7 +187,7 @@ func TestProtoTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -204,7 +202,7 @@ func TestProtoTypesMarshalTo(t *testing.T) { } func BenchmarkProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -212,7 +210,7 @@ func BenchmarkProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -222,11 +220,11 @@ func BenchmarkProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedProtoTypes(popr, false)) if err != nil { panic(err) } @@ -236,7 +234,7 @@ func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -245,14 +243,14 @@ func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { func TestStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -273,13 +271,13 @@ func TestStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestStdTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -291,7 +289,7 @@ func TestStdTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -306,7 +304,7 @@ func TestStdTypesMarshalTo(t *testing.T) { } func BenchmarkStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 10000) for i := 0; i < 10000; i++ { @@ -314,7 +312,7 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -324,11 +322,11 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedStdTypes(popr, false)) if err != nil { panic(err) } @@ -338,7 +336,7 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -347,14 +345,14 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { func TestRepProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -375,13 +373,13 @@ func TestRepProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestRepProtoTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -393,7 +391,7 @@ func TestRepProtoTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -408,7 +406,7 @@ func TestRepProtoTypesMarshalTo(t *testing.T) { } func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -416,7 +414,7 @@ func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -426,11 +424,11 @@ func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) if err != nil { panic(err) } @@ -440,7 +438,7 @@ func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -449,14 +447,14 @@ func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { func TestRepStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -477,13 +475,13 @@ func TestRepStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestRepStdTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -495,7 +493,7 @@ func TestRepStdTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -510,7 +508,7 @@ func TestRepStdTypesMarshalTo(t *testing.T) { } func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -518,7 +516,7 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -528,11 +526,11 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedRepStdTypes(popr, false)) if err != nil { panic(err) } @@ -542,7 +540,7 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -551,14 +549,14 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { func TestMapProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -579,13 +577,13 @@ func TestMapProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMapProtoTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -597,7 +595,7 @@ func TestMapProtoTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -612,7 +610,7 @@ func TestMapProtoTypesMarshalTo(t *testing.T) { } func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -620,7 +618,7 @@ func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -630,11 +628,11 @@ func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) if err != nil { panic(err) } @@ -644,7 +642,7 @@ func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -653,14 +651,14 @@ func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { func TestMapStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -681,13 +679,13 @@ func TestMapStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestMapStdTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -699,7 +697,7 @@ func TestMapStdTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -714,7 +712,7 @@ func TestMapStdTypesMarshalTo(t *testing.T) { } func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -722,7 +720,7 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -732,11 +730,11 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMapStdTypes(popr, false)) if err != nil { panic(err) } @@ -746,7 +744,7 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -755,14 +753,14 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { func TestOneofProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -783,13 +781,13 @@ func TestOneofProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOneofProtoTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -801,7 +799,7 @@ func TestOneofProtoTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -816,7 +814,7 @@ func TestOneofProtoTypesMarshalTo(t *testing.T) { } func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -824,7 +822,7 @@ func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -834,11 +832,11 @@ func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) if err != nil { panic(err) } @@ -848,7 +846,7 @@ func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -857,14 +855,14 @@ func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { func TestOneofStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -885,13 +883,13 @@ func TestOneofStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOneofStdTypesMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -903,7 +901,7 @@ func TestOneofStdTypesMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -918,7 +916,7 @@ func TestOneofStdTypesMarshalTo(t *testing.T) { } func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -926,7 +924,7 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -936,11 +934,11 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) if err != nil { panic(err) } @@ -950,7 +948,7 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -959,15 +957,15 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { func TestKnownTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -980,15 +978,15 @@ func TestKnownTypesJSON(t *testing.T) { } func TestProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1001,15 +999,15 @@ func TestProtoTypesJSON(t *testing.T) { } func TestStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1022,15 +1020,15 @@ func TestStdTypesJSON(t *testing.T) { } func TestRepProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1043,15 +1041,15 @@ func TestRepProtoTypesJSON(t *testing.T) { } func TestRepStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1064,15 +1062,15 @@ func TestRepStdTypesJSON(t *testing.T) { } func TestMapProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1085,15 +1083,15 @@ func TestMapProtoTypesJSON(t *testing.T) { } func TestMapStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1106,15 +1104,15 @@ func TestMapStdTypesJSON(t *testing.T) { } func TestOneofProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1127,15 +1125,15 @@ func TestOneofProtoTypesJSON(t *testing.T) { } func TestOneofStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1148,11 +1146,11 @@ func TestOneofStdTypesJSON(t *testing.T) { } func TestKnownTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1165,11 +1163,11 @@ func TestKnownTypesProtoText(t *testing.T) { func TestKnownTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1182,11 +1180,11 @@ func TestKnownTypesProtoCompactText(t *testing.T) { func TestProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1199,11 +1197,11 @@ func TestProtoTypesProtoText(t *testing.T) { func TestProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1216,11 +1214,11 @@ func TestProtoTypesProtoCompactText(t *testing.T) { func TestStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1233,11 +1231,11 @@ func TestStdTypesProtoText(t *testing.T) { func TestStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1250,11 +1248,11 @@ func TestStdTypesProtoCompactText(t *testing.T) { func TestRepProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1267,11 +1265,11 @@ func TestRepProtoTypesProtoText(t *testing.T) { func TestRepProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1284,11 +1282,11 @@ func TestRepProtoTypesProtoCompactText(t *testing.T) { func TestRepStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1301,11 +1299,11 @@ func TestRepStdTypesProtoText(t *testing.T) { func TestRepStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1318,11 +1316,11 @@ func TestRepStdTypesProtoCompactText(t *testing.T) { func TestMapProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1335,11 +1333,11 @@ func TestMapProtoTypesProtoText(t *testing.T) { func TestMapProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1352,11 +1350,11 @@ func TestMapProtoTypesProtoCompactText(t *testing.T) { func TestMapStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1369,11 +1367,11 @@ func TestMapStdTypesProtoText(t *testing.T) { func TestMapStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1386,11 +1384,11 @@ func TestMapStdTypesProtoCompactText(t *testing.T) { func TestOneofProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1403,11 +1401,11 @@ func TestOneofProtoTypesProtoText(t *testing.T) { func TestOneofProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1420,11 +1418,11 @@ func TestOneofProtoTypesProtoCompactText(t *testing.T) { func TestOneofStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1437,11 +1435,11 @@ func TestOneofStdTypesProtoText(t *testing.T) { func TestOneofStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1453,14 +1451,14 @@ func TestOneofStdTypesProtoCompactText(t *testing.T) { } func TestKnownTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1477,14 +1475,14 @@ func TestKnownTypesCompare(t *testing.T) { } } func TestProtoTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1501,14 +1499,14 @@ func TestProtoTypesCompare(t *testing.T) { } } func TestRepProtoTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1525,14 +1523,14 @@ func TestRepProtoTypesCompare(t *testing.T) { } } func TestKnownTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1540,14 +1538,14 @@ func TestKnownTypesVerboseEqual(t *testing.T) { } } func TestProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1555,14 +1553,14 @@ func TestProtoTypesVerboseEqual(t *testing.T) { } } func TestStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1570,14 +1568,14 @@ func TestStdTypesVerboseEqual(t *testing.T) { } } func TestRepProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1585,14 +1583,14 @@ func TestRepProtoTypesVerboseEqual(t *testing.T) { } } func TestRepStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1600,14 +1598,14 @@ func TestRepStdTypesVerboseEqual(t *testing.T) { } } func TestMapProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1615,14 +1613,14 @@ func TestMapProtoTypesVerboseEqual(t *testing.T) { } } func TestMapStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1630,14 +1628,14 @@ func TestMapStdTypesVerboseEqual(t *testing.T) { } } func TestOneofProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1645,14 +1643,14 @@ func TestOneofProtoTypesVerboseEqual(t *testing.T) { } } func TestOneofStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1661,10 +1659,10 @@ func TestOneofStdTypesVerboseEqual(t *testing.T) { } func TestKnownTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1675,14 +1673,14 @@ func TestKnownTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkKnownTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*KnownTypes, 1000) for i := 0; i < 1000; i++ { @@ -1697,10 +1695,10 @@ func BenchmarkKnownTypesSize(b *testing.B) { func TestProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1711,14 +1709,14 @@ func TestProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1733,10 +1731,10 @@ func BenchmarkProtoTypesSize(b *testing.B) { func TestStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1747,14 +1745,14 @@ func TestStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1769,10 +1767,10 @@ func BenchmarkStdTypesSize(b *testing.B) { func TestRepProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1783,14 +1781,14 @@ func TestRepProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRepProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1805,10 +1803,10 @@ func BenchmarkRepProtoTypesSize(b *testing.B) { func TestRepStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1819,14 +1817,14 @@ func TestRepStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRepStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1841,10 +1839,10 @@ func BenchmarkRepStdTypesSize(b *testing.B) { func TestMapProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1855,14 +1853,14 @@ func TestMapProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMapProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1877,10 +1875,10 @@ func BenchmarkMapProtoTypesSize(b *testing.B) { func TestMapStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1891,14 +1889,14 @@ func TestMapStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMapStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1913,10 +1911,10 @@ func BenchmarkMapStdTypesSize(b *testing.B) { func TestOneofProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1927,14 +1925,14 @@ func TestOneofProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOneofProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1949,10 +1947,10 @@ func BenchmarkOneofProtoTypesSize(b *testing.B) { func TestOneofStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1963,14 +1961,14 @@ func TestOneofStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOneofStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go index d1f17df2b..658cf3fc3 100644 --- a/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go +++ b/vendor/github.com/gogo/protobuf/test/types/combos/neither/types.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/types.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -32,6 +31,8 @@ import google_protobuf3 "github.com/gogo/protobuf/types" import time "time" import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" +import types1 "github.com/gogo/protobuf/types" + // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf @@ -2069,14 +2070,14 @@ func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { this := &StdTypes{} if r.Intn(10) != 0 { - this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp = types1.NewPopulatedStdTime(r, easy) } if r.Intn(10) != 0 { - this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration = types1.NewPopulatedStdDuration(r, easy) } - v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v3 := types1.NewPopulatedStdTime(r, easy) this.Timestamp = *v3 - v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v4 := types1.NewPopulatedStdDuration(r, easy) this.Duration = *v4 if !easy && r.Intn(10) != 0 { } @@ -2126,21 +2127,21 @@ func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { v11 := r.Intn(5) this.NullableTimestamps = make([]*time.Time, v11) for i := 0; i < v11; i++ { - this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamps[i] = types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v12 := r.Intn(5) this.NullableDurations = make([]*time.Duration, v12) for i := 0; i < v12; i++ { - this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDurations[i] = types1.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v13 := r.Intn(5) this.Timestamps = make([]time.Time, v13) for i := 0; i < v13; i++ { - v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v14 := types1.NewPopulatedStdTime(r, easy) this.Timestamps[i] = *v14 } } @@ -2148,7 +2149,7 @@ func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { v15 := r.Intn(5) this.Durations = make([]time.Duration, v15) for i := 0; i < v15; i++ { - v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v16 := types1.NewPopulatedStdDuration(r, easy) this.Durations[i] = *v16 } } @@ -2198,28 +2199,28 @@ func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { v21 := r.Intn(10) this.NullableTimestamp = make(map[int32]*time.Time) for i := 0; i < v21; i++ { - this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp[int32(r.Int31())] = types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v22 := r.Intn(10) this.Timestamp = make(map[int32]time.Time) for i := 0; i < v22; i++ { - this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp[int32(r.Int31())] = *types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v23 := r.Intn(10) this.NullableDuration = make(map[int32]*time.Duration) for i := 0; i < v23; i++ { - this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration[int32(r.Int31())] = types1.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v24 := r.Intn(10) this.Duration = make(map[int32]time.Duration) for i := 0; i < v24; i++ { - this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration[int32(r.Int31())] = *types1.NewPopulatedStdDuration(r, easy) } } if !easy && r.Intn(10) != 0 { @@ -2267,12 +2268,12 @@ func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { this := &OneofStdTypes_Timestamp{} - this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = types1.NewPopulatedStdTime(r, easy) return this } func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { this := &OneofStdTypes_Duration{} - this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = types1.NewPopulatedStdDuration(r, easy) return this } @@ -2420,16 +2421,16 @@ func (m *StdTypes) Size() (n int) { var l int _ = l if m.NullableTimestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + l = types1.SizeOfStdTime(*m.NullableTimestamp) n += 1 + l + sovTypes(uint64(l)) } if m.NullableDuration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + l = types1.SizeOfStdDuration(*m.NullableDuration) n += 1 + l + sovTypes(uint64(l)) } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + l = types1.SizeOfStdTime(m.Timestamp) n += 1 + l + sovTypes(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + l = types1.SizeOfStdDuration(m.Duration) n += 1 + l + sovTypes(uint64(l)) return n } @@ -2469,25 +2470,25 @@ func (m *RepStdTypes) Size() (n int) { _ = l if len(m.NullableTimestamps) > 0 { for _, e := range m.NullableTimestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + l = types1.SizeOfStdTime(*e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.NullableDurations) > 0 { for _, e := range m.NullableDurations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + l = types1.SizeOfStdDuration(*e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.Timestamps) > 0 { for _, e := range m.Timestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + l = types1.SizeOfStdTime(e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.Durations) > 0 { for _, e := range m.Durations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + l = types1.SizeOfStdDuration(e) n += 1 + l + sovTypes(uint64(l)) } } @@ -2553,7 +2554,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l = types1.SizeOfStdTime(*v) l += 1 + sovTypes(uint64(l)) } mapEntrySize := 1 + sovTypes(uint64(k)) + l @@ -2564,7 +2565,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Timestamp { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + l = types1.SizeOfStdTime(v) mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) } @@ -2575,7 +2576,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l = types1.SizeOfStdDuration(*v) l += 1 + sovTypes(uint64(l)) } mapEntrySize := 1 + sovTypes(uint64(k)) + l @@ -2586,7 +2587,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Duration { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + l = types1.SizeOfStdDuration(v) mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) } @@ -2634,7 +2635,7 @@ func (m *OneofStdTypes_Timestamp) Size() (n int) { var l int _ = l if m.Timestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + l = types1.SizeOfStdTime(*m.Timestamp) n += 1 + l + sovTypes(uint64(l)) } return n @@ -2643,7 +2644,7 @@ func (m *OneofStdTypes_Duration) Size() (n int) { var l int _ = l if m.Duration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + l = types1.SizeOfStdDuration(*m.Duration) n += 1 + l + sovTypes(uint64(l)) } return n diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/neither/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/neither/typespb_test.go index d4ad3bf3b..5b1edbb28 100644 --- a/vendor/github.com/gogo/protobuf/test/types/combos/neither/typespb_test.go +++ b/vendor/github.com/gogo/protobuf/test/types/combos/neither/typespb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/neither/types.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -22,11 +21,10 @@ It has these top-level messages: package types import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -41,14 +39,14 @@ var _ = math.Inf func TestKnownTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -69,12 +67,12 @@ func TestKnownTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkKnownTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*KnownTypes, 10000) for i := 0; i < 10000; i++ { @@ -82,7 +80,7 @@ func BenchmarkKnownTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -92,11 +90,11 @@ func BenchmarkKnownTypesProtoMarshal(b *testing.B) { } func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedKnownTypes(popr, false)) if err != nil { panic(err) } @@ -106,7 +104,7 @@ func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -115,14 +113,14 @@ func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { func TestProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -143,12 +141,12 @@ func TestProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -156,7 +154,7 @@ func BenchmarkProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -166,11 +164,11 @@ func BenchmarkProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedProtoTypes(popr, false)) if err != nil { panic(err) } @@ -180,7 +178,7 @@ func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -189,14 +187,14 @@ func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { func TestStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -217,12 +215,12 @@ func TestStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 10000) for i := 0; i < 10000; i++ { @@ -230,7 +228,7 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -240,11 +238,11 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedStdTypes(popr, false)) if err != nil { panic(err) } @@ -254,7 +252,7 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -263,14 +261,14 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { func TestRepProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -291,12 +289,12 @@ func TestRepProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -304,7 +302,7 @@ func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -314,11 +312,11 @@ func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) if err != nil { panic(err) } @@ -328,7 +326,7 @@ func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -337,14 +335,14 @@ func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { func TestRepStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -365,12 +363,12 @@ func TestRepStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -378,7 +376,7 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -388,11 +386,11 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedRepStdTypes(popr, false)) if err != nil { panic(err) } @@ -402,7 +400,7 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -411,14 +409,14 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { func TestMapProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -439,12 +437,12 @@ func TestMapProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -452,7 +450,7 @@ func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -462,11 +460,11 @@ func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) if err != nil { panic(err) } @@ -476,7 +474,7 @@ func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -485,14 +483,14 @@ func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { func TestMapStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -513,12 +511,12 @@ func TestMapStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -526,7 +524,7 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -536,11 +534,11 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMapStdTypes(popr, false)) if err != nil { panic(err) } @@ -550,7 +548,7 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -559,14 +557,14 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { func TestOneofProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -587,12 +585,12 @@ func TestOneofProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -600,7 +598,7 @@ func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -610,11 +608,11 @@ func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) if err != nil { panic(err) } @@ -624,7 +622,7 @@ func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -633,14 +631,14 @@ func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { func TestOneofStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -661,12 +659,12 @@ func TestOneofStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -674,7 +672,7 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -684,11 +682,11 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) if err != nil { panic(err) } @@ -698,7 +696,7 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -707,15 +705,15 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { func TestKnownTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -728,15 +726,15 @@ func TestKnownTypesJSON(t *testing.T) { } func TestProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -749,15 +747,15 @@ func TestProtoTypesJSON(t *testing.T) { } func TestStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -770,15 +768,15 @@ func TestStdTypesJSON(t *testing.T) { } func TestRepProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -791,15 +789,15 @@ func TestRepProtoTypesJSON(t *testing.T) { } func TestRepStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -812,15 +810,15 @@ func TestRepStdTypesJSON(t *testing.T) { } func TestMapProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -833,15 +831,15 @@ func TestMapProtoTypesJSON(t *testing.T) { } func TestMapStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -854,15 +852,15 @@ func TestMapStdTypesJSON(t *testing.T) { } func TestOneofProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -875,15 +873,15 @@ func TestOneofProtoTypesJSON(t *testing.T) { } func TestOneofStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -896,11 +894,11 @@ func TestOneofStdTypesJSON(t *testing.T) { } func TestKnownTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -913,11 +911,11 @@ func TestKnownTypesProtoText(t *testing.T) { func TestKnownTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -930,11 +928,11 @@ func TestKnownTypesProtoCompactText(t *testing.T) { func TestProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -947,11 +945,11 @@ func TestProtoTypesProtoText(t *testing.T) { func TestProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -964,11 +962,11 @@ func TestProtoTypesProtoCompactText(t *testing.T) { func TestStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -981,11 +979,11 @@ func TestStdTypesProtoText(t *testing.T) { func TestStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -998,11 +996,11 @@ func TestStdTypesProtoCompactText(t *testing.T) { func TestRepProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1015,11 +1013,11 @@ func TestRepProtoTypesProtoText(t *testing.T) { func TestRepProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1032,11 +1030,11 @@ func TestRepProtoTypesProtoCompactText(t *testing.T) { func TestRepStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1049,11 +1047,11 @@ func TestRepStdTypesProtoText(t *testing.T) { func TestRepStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1066,11 +1064,11 @@ func TestRepStdTypesProtoCompactText(t *testing.T) { func TestMapProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1083,11 +1081,11 @@ func TestMapProtoTypesProtoText(t *testing.T) { func TestMapProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1100,11 +1098,11 @@ func TestMapProtoTypesProtoCompactText(t *testing.T) { func TestMapStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1117,11 +1115,11 @@ func TestMapStdTypesProtoText(t *testing.T) { func TestMapStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1134,11 +1132,11 @@ func TestMapStdTypesProtoCompactText(t *testing.T) { func TestOneofProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1151,11 +1149,11 @@ func TestOneofProtoTypesProtoText(t *testing.T) { func TestOneofProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1168,11 +1166,11 @@ func TestOneofProtoTypesProtoCompactText(t *testing.T) { func TestOneofStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1185,11 +1183,11 @@ func TestOneofStdTypesProtoText(t *testing.T) { func TestOneofStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1201,14 +1199,14 @@ func TestOneofStdTypesProtoCompactText(t *testing.T) { } func TestKnownTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1225,14 +1223,14 @@ func TestKnownTypesCompare(t *testing.T) { } } func TestProtoTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1249,14 +1247,14 @@ func TestProtoTypesCompare(t *testing.T) { } } func TestRepProtoTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1273,14 +1271,14 @@ func TestRepProtoTypesCompare(t *testing.T) { } } func TestKnownTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1288,14 +1286,14 @@ func TestKnownTypesVerboseEqual(t *testing.T) { } } func TestProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1303,14 +1301,14 @@ func TestProtoTypesVerboseEqual(t *testing.T) { } } func TestStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1318,14 +1316,14 @@ func TestStdTypesVerboseEqual(t *testing.T) { } } func TestRepProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1333,14 +1331,14 @@ func TestRepProtoTypesVerboseEqual(t *testing.T) { } } func TestRepStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1348,14 +1346,14 @@ func TestRepStdTypesVerboseEqual(t *testing.T) { } } func TestMapProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1363,14 +1361,14 @@ func TestMapProtoTypesVerboseEqual(t *testing.T) { } } func TestMapStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1378,14 +1376,14 @@ func TestMapStdTypesVerboseEqual(t *testing.T) { } } func TestOneofProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1393,14 +1391,14 @@ func TestOneofProtoTypesVerboseEqual(t *testing.T) { } } func TestOneofStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1409,10 +1407,10 @@ func TestOneofStdTypesVerboseEqual(t *testing.T) { } func TestKnownTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1423,14 +1421,14 @@ func TestKnownTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkKnownTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*KnownTypes, 1000) for i := 0; i < 1000; i++ { @@ -1445,10 +1443,10 @@ func BenchmarkKnownTypesSize(b *testing.B) { func TestProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1459,14 +1457,14 @@ func TestProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1481,10 +1479,10 @@ func BenchmarkProtoTypesSize(b *testing.B) { func TestStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1495,14 +1493,14 @@ func TestStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1517,10 +1515,10 @@ func BenchmarkStdTypesSize(b *testing.B) { func TestRepProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1531,14 +1529,14 @@ func TestRepProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRepProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1553,10 +1551,10 @@ func BenchmarkRepProtoTypesSize(b *testing.B) { func TestRepStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1567,14 +1565,14 @@ func TestRepStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRepStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1589,10 +1587,10 @@ func BenchmarkRepStdTypesSize(b *testing.B) { func TestMapProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1603,14 +1601,14 @@ func TestMapProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMapProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1625,10 +1623,10 @@ func BenchmarkMapProtoTypesSize(b *testing.B) { func TestMapStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1639,14 +1637,14 @@ func TestMapStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMapStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1661,10 +1659,10 @@ func BenchmarkMapStdTypesSize(b *testing.B) { func TestOneofProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1675,14 +1673,14 @@ func TestOneofProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOneofProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1697,10 +1695,10 @@ func BenchmarkOneofProtoTypesSize(b *testing.B) { func TestOneofStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1711,14 +1709,14 @@ func TestOneofStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOneofStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go index b8babe30b..ef62c73c4 100644 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/types.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/types.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -32,6 +31,8 @@ import google_protobuf3 "github.com/gogo/protobuf/types" import time "time" import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" +import types1 "github.com/gogo/protobuf/types" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -2071,14 +2072,14 @@ func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { this := &StdTypes{} if r.Intn(10) != 0 { - this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp = types1.NewPopulatedStdTime(r, easy) } if r.Intn(10) != 0 { - this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration = types1.NewPopulatedStdDuration(r, easy) } - v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v3 := types1.NewPopulatedStdTime(r, easy) this.Timestamp = *v3 - v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v4 := types1.NewPopulatedStdDuration(r, easy) this.Duration = *v4 if !easy && r.Intn(10) != 0 { } @@ -2128,21 +2129,21 @@ func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { v11 := r.Intn(5) this.NullableTimestamps = make([]*time.Time, v11) for i := 0; i < v11; i++ { - this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamps[i] = types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v12 := r.Intn(5) this.NullableDurations = make([]*time.Duration, v12) for i := 0; i < v12; i++ { - this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDurations[i] = types1.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v13 := r.Intn(5) this.Timestamps = make([]time.Time, v13) for i := 0; i < v13; i++ { - v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + v14 := types1.NewPopulatedStdTime(r, easy) this.Timestamps[i] = *v14 } } @@ -2150,7 +2151,7 @@ func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { v15 := r.Intn(5) this.Durations = make([]time.Duration, v15) for i := 0; i < v15; i++ { - v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + v16 := types1.NewPopulatedStdDuration(r, easy) this.Durations[i] = *v16 } } @@ -2200,28 +2201,28 @@ func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { v21 := r.Intn(10) this.NullableTimestamp = make(map[int32]*time.Time) for i := 0; i < v21; i++ { - this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.NullableTimestamp[int32(r.Int31())] = types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v22 := r.Intn(10) this.Timestamp = make(map[int32]time.Time) for i := 0; i < v22; i++ { - this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp[int32(r.Int31())] = *types1.NewPopulatedStdTime(r, easy) } } if r.Intn(10) != 0 { v23 := r.Intn(10) this.NullableDuration = make(map[int32]*time.Duration) for i := 0; i < v23; i++ { - this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.NullableDuration[int32(r.Int31())] = types1.NewPopulatedStdDuration(r, easy) } } if r.Intn(10) != 0 { v24 := r.Intn(10) this.Duration = make(map[int32]time.Duration) for i := 0; i < v24; i++ { - this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration[int32(r.Int31())] = *types1.NewPopulatedStdDuration(r, easy) } } if !easy && r.Intn(10) != 0 { @@ -2269,12 +2270,12 @@ func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { this := &OneofStdTypes_Timestamp{} - this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) + this.Timestamp = types1.NewPopulatedStdTime(r, easy) return this } func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { this := &OneofStdTypes_Duration{} - this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) + this.Duration = types1.NewPopulatedStdDuration(r, easy) return this } @@ -2422,16 +2423,16 @@ func (m *StdTypes) Size() (n int) { var l int _ = l if m.NullableTimestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) + l = types1.SizeOfStdTime(*m.NullableTimestamp) n += 1 + l + sovTypes(uint64(l)) } if m.NullableDuration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) + l = types1.SizeOfStdDuration(*m.NullableDuration) n += 1 + l + sovTypes(uint64(l)) } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) + l = types1.SizeOfStdTime(m.Timestamp) n += 1 + l + sovTypes(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) + l = types1.SizeOfStdDuration(m.Duration) n += 1 + l + sovTypes(uint64(l)) return n } @@ -2471,25 +2472,25 @@ func (m *RepStdTypes) Size() (n int) { _ = l if len(m.NullableTimestamps) > 0 { for _, e := range m.NullableTimestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) + l = types1.SizeOfStdTime(*e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.NullableDurations) > 0 { for _, e := range m.NullableDurations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) + l = types1.SizeOfStdDuration(*e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.Timestamps) > 0 { for _, e := range m.Timestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(e) + l = types1.SizeOfStdTime(e) n += 1 + l + sovTypes(uint64(l)) } } if len(m.Durations) > 0 { for _, e := range m.Durations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) + l = types1.SizeOfStdDuration(e) n += 1 + l + sovTypes(uint64(l)) } } @@ -2555,7 +2556,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) + l = types1.SizeOfStdTime(*v) l += 1 + sovTypes(uint64(l)) } mapEntrySize := 1 + sovTypes(uint64(k)) + l @@ -2566,7 +2567,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Timestamp { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdTime(v) + l = types1.SizeOfStdTime(v) mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) } @@ -2577,7 +2578,7 @@ func (m *MapStdTypes) Size() (n int) { _ = v l = 0 if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) + l = types1.SizeOfStdDuration(*v) l += 1 + sovTypes(uint64(l)) } mapEntrySize := 1 + sovTypes(uint64(k)) + l @@ -2588,7 +2589,7 @@ func (m *MapStdTypes) Size() (n int) { for k, v := range m.Duration { _ = k _ = v - l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) + l = types1.SizeOfStdDuration(v) mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) } @@ -2636,7 +2637,7 @@ func (m *OneofStdTypes_Timestamp) Size() (n int) { var l int _ = l if m.Timestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) + l = types1.SizeOfStdTime(*m.Timestamp) n += 1 + l + sovTypes(uint64(l)) } return n @@ -2645,7 +2646,7 @@ func (m *OneofStdTypes_Duration) Size() (n int) { var l int _ = l if m.Duration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) + l = types1.SizeOfStdDuration(*m.Duration) n += 1 + l + sovTypes(uint64(l)) } return n @@ -3311,7 +3312,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error { if m.NullableTimestamp == nil { m.NullableTimestamp = new(time.Time) } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3344,7 +3345,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error { if m.NullableDuration == nil { m.NullableDuration = new(time.Duration) } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3374,7 +3375,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3404,7 +3405,7 @@ func (m *StdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3659,7 +3660,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } m.NullableTimestamps = append(m.NullableTimestamps, new(time.Time)) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3690,7 +3691,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } m.NullableDurations = append(m.NullableDurations, new(time.Duration)) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3721,7 +3722,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } m.Timestamps = append(m.Timestamps, time.Time{}) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3752,7 +3753,7 @@ func (m *RepStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } m.Durations = append(m.Durations, time.Duration(0)) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3832,41 +3833,14 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.NullableTimestamp == nil { m.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue *google_protobuf2.Timestamp + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -3876,46 +3850,74 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf2.Timestamp{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableTimestamp[mapkey] = mapvalue - } else { - var mapvalue *google_protobuf2.Timestamp - m.NullableTimestamp[mapkey] = mapvalue } + m.NullableTimestamp[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -3943,41 +3945,14 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Timestamp == nil { m.Timestamp = make(map[int32]google_protobuf2.Timestamp) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := &google_protobuf2.Timestamp{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -3987,46 +3962,74 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &google_protobuf2.Timestamp{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf2.Timestamp{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Timestamp[mapkey] = *mapvalue - } else { - var mapvalue google_protobuf2.Timestamp - m.Timestamp[mapkey] = mapvalue } + m.Timestamp[mapkey] = *mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -4054,41 +4057,14 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.NullableDuration == nil { m.NullableDuration = make(map[int32]*google_protobuf1.Duration) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + var mapvalue *google_protobuf1.Duration + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4098,46 +4074,74 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf1.Duration{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableDuration[mapkey] = mapvalue - } else { - var mapvalue *google_protobuf1.Duration - m.NullableDuration[mapkey] = mapvalue } + m.NullableDuration[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -4165,41 +4169,14 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Duration == nil { m.Duration = make(map[int32]google_protobuf1.Duration) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := &google_protobuf1.Duration{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4209,46 +4186,74 @@ func (m *MapProtoTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapvalue = &google_protobuf1.Duration{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf1.Duration{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Duration[mapkey] = *mapvalue - } else { - var mapvalue google_protobuf1.Duration - m.Duration[mapkey] = mapvalue } + m.Duration[mapkey] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -4326,41 +4331,14 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.NullableTimestamp == nil { m.NullableTimestamp = make(map[int32]*time.Time) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := new(time.Time) + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4370,46 +4348,73 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if err := types1.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableTimestamp[mapkey] = mapvalue - } else { - var mapvalue = new(time.Time) - m.NullableTimestamp[mapkey] = mapvalue } + m.NullableTimestamp[mapkey] = mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -4437,41 +4442,14 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Timestamp == nil { m.Timestamp = make(map[int32]time.Time) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := new(time.Time) + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4481,46 +4459,73 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if err := types1.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Timestamp[mapkey] = *mapvalue - } else { - var mapvalue = new(time.Time) - m.Timestamp[mapkey] = *mapvalue } + m.Timestamp[mapkey] = *mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -4548,41 +4553,14 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.NullableDuration == nil { m.NullableDuration = make(map[int32]*time.Duration) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := new(time.Duration) + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4592,46 +4570,73 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if err := types1.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableDuration[mapkey] = mapvalue - } else { - var mapvalue = new(time.Duration) - m.NullableDuration[mapkey] = mapvalue } + m.NullableDuration[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -4659,41 +4664,14 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } if m.Duration == nil { m.Duration = make(map[int32]time.Duration) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey int32 + mapvalue := new(time.Duration) + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -4703,46 +4681,73 @@ func (m *MapStdTypes) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthTypes + } + if postmsgIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + if err := types1.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { + return err } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypes - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Duration[mapkey] = *mapvalue - } else { - var mapvalue = new(time.Duration) - m.Duration[mapkey] = *mapvalue } + m.Duration[mapkey] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -4935,7 +4940,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } v := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { return err } m.OneOfStdTimes = &OneofStdTypes_Timestamp{v} @@ -4967,7 +4972,7 @@ func (m *OneofStdTypes) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } v := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { + if err := types1.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { return err } m.OneOfStdTimes = &OneofStdTypes_Duration{v} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/typespb_test.go index dd2e6e5c6..98aaeda4b 100644 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/typespb_test.go +++ b/vendor/github.com/gogo/protobuf/test/types/combos/unmarshaler/typespb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: combos/unmarshaler/types.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -22,11 +21,10 @@ It has these top-level messages: package types import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -41,14 +39,14 @@ var _ = math.Inf func TestKnownTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -69,12 +67,12 @@ func TestKnownTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkKnownTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*KnownTypes, 10000) for i := 0; i < 10000; i++ { @@ -82,7 +80,7 @@ func BenchmarkKnownTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -92,11 +90,11 @@ func BenchmarkKnownTypesProtoMarshal(b *testing.B) { } func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedKnownTypes(popr, false)) if err != nil { panic(err) } @@ -106,7 +104,7 @@ func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -115,14 +113,14 @@ func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { func TestProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -143,12 +141,12 @@ func TestProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -156,7 +154,7 @@ func BenchmarkProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -166,11 +164,11 @@ func BenchmarkProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedProtoTypes(popr, false)) if err != nil { panic(err) } @@ -180,7 +178,7 @@ func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -189,14 +187,14 @@ func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { func TestStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -217,12 +215,12 @@ func TestStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 10000) for i := 0; i < 10000; i++ { @@ -230,7 +228,7 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -240,11 +238,11 @@ func BenchmarkStdTypesProtoMarshal(b *testing.B) { } func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedStdTypes(popr, false)) if err != nil { panic(err) } @@ -254,7 +252,7 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -263,14 +261,14 @@ func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { func TestRepProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -291,12 +289,12 @@ func TestRepProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -304,7 +302,7 @@ func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -314,11 +312,11 @@ func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) if err != nil { panic(err) } @@ -328,7 +326,7 @@ func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -337,14 +335,14 @@ func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { func TestRepStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -365,12 +363,12 @@ func TestRepStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -378,7 +376,7 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -388,11 +386,11 @@ func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { } func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedRepStdTypes(popr, false)) if err != nil { panic(err) } @@ -402,7 +400,7 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -411,14 +409,14 @@ func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { func TestMapProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -439,12 +437,12 @@ func TestMapProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -452,7 +450,7 @@ func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -462,11 +460,11 @@ func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) if err != nil { panic(err) } @@ -476,7 +474,7 @@ func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -485,14 +483,14 @@ func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { func TestMapStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -513,12 +511,12 @@ func TestMapStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -526,7 +524,7 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -536,11 +534,11 @@ func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { } func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedMapStdTypes(popr, false)) if err != nil { panic(err) } @@ -550,7 +548,7 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -559,14 +557,14 @@ func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { func TestOneofProtoTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -587,12 +585,12 @@ func TestOneofProtoTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofProtoTypes, 10000) for i := 0; i < 10000; i++ { @@ -600,7 +598,7 @@ func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -610,11 +608,11 @@ func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { } func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) if err != nil { panic(err) } @@ -624,7 +622,7 @@ func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -633,14 +631,14 @@ func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { func TestOneofStdTypesProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -661,12 +659,12 @@ func TestOneofStdTypesProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 10000) for i := 0; i < 10000; i++ { @@ -674,7 +672,7 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -684,11 +682,11 @@ func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { } func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) if err != nil { panic(err) } @@ -698,7 +696,7 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -707,15 +705,15 @@ func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { func TestKnownTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &KnownTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -728,15 +726,15 @@ func TestKnownTypesJSON(t *testing.T) { } func TestProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &ProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -749,15 +747,15 @@ func TestProtoTypesJSON(t *testing.T) { } func TestStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &StdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -770,15 +768,15 @@ func TestStdTypesJSON(t *testing.T) { } func TestRepProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -791,15 +789,15 @@ func TestRepProtoTypesJSON(t *testing.T) { } func TestRepStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &RepStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -812,15 +810,15 @@ func TestRepStdTypesJSON(t *testing.T) { } func TestMapProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -833,15 +831,15 @@ func TestMapProtoTypesJSON(t *testing.T) { } func TestMapStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &MapStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -854,15 +852,15 @@ func TestMapStdTypesJSON(t *testing.T) { } func TestOneofProtoTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -875,15 +873,15 @@ func TestOneofProtoTypesJSON(t *testing.T) { } func TestOneofStdTypesJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OneofStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -896,11 +894,11 @@ func TestOneofStdTypesJSON(t *testing.T) { } func TestKnownTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -913,11 +911,11 @@ func TestKnownTypesProtoText(t *testing.T) { func TestKnownTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -930,11 +928,11 @@ func TestKnownTypesProtoCompactText(t *testing.T) { func TestProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -947,11 +945,11 @@ func TestProtoTypesProtoText(t *testing.T) { func TestProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -964,11 +962,11 @@ func TestProtoTypesProtoCompactText(t *testing.T) { func TestStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -981,11 +979,11 @@ func TestStdTypesProtoText(t *testing.T) { func TestStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -998,11 +996,11 @@ func TestStdTypesProtoCompactText(t *testing.T) { func TestRepProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1015,11 +1013,11 @@ func TestRepProtoTypesProtoText(t *testing.T) { func TestRepProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1032,11 +1030,11 @@ func TestRepProtoTypesProtoCompactText(t *testing.T) { func TestRepStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1049,11 +1047,11 @@ func TestRepStdTypesProtoText(t *testing.T) { func TestRepStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1066,11 +1064,11 @@ func TestRepStdTypesProtoCompactText(t *testing.T) { func TestMapProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1083,11 +1081,11 @@ func TestMapProtoTypesProtoText(t *testing.T) { func TestMapProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1100,11 +1098,11 @@ func TestMapProtoTypesProtoCompactText(t *testing.T) { func TestMapStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1117,11 +1115,11 @@ func TestMapStdTypesProtoText(t *testing.T) { func TestMapStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1134,11 +1132,11 @@ func TestMapStdTypesProtoCompactText(t *testing.T) { func TestOneofProtoTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1151,11 +1149,11 @@ func TestOneofProtoTypesProtoText(t *testing.T) { func TestOneofProtoTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1168,11 +1166,11 @@ func TestOneofProtoTypesProtoCompactText(t *testing.T) { func TestOneofStdTypesProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1185,11 +1183,11 @@ func TestOneofStdTypesProtoText(t *testing.T) { func TestOneofStdTypesProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1201,14 +1199,14 @@ func TestOneofStdTypesProtoCompactText(t *testing.T) { } func TestKnownTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1225,14 +1223,14 @@ func TestKnownTypesCompare(t *testing.T) { } } func TestProtoTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1249,14 +1247,14 @@ func TestProtoTypesCompare(t *testing.T) { } } func TestRepProtoTypesCompare(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if c := p.Compare(msg); c != 0 { @@ -1273,14 +1271,14 @@ func TestRepProtoTypesCompare(t *testing.T) { } } func TestKnownTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1288,14 +1286,14 @@ func TestKnownTypesVerboseEqual(t *testing.T) { } } func TestProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1303,14 +1301,14 @@ func TestProtoTypesVerboseEqual(t *testing.T) { } } func TestStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1318,14 +1316,14 @@ func TestStdTypesVerboseEqual(t *testing.T) { } } func TestRepProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1333,14 +1331,14 @@ func TestRepProtoTypesVerboseEqual(t *testing.T) { } } func TestRepStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1348,14 +1346,14 @@ func TestRepStdTypesVerboseEqual(t *testing.T) { } } func TestMapProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1363,14 +1361,14 @@ func TestMapProtoTypesVerboseEqual(t *testing.T) { } } func TestMapStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1378,14 +1376,14 @@ func TestMapStdTypesVerboseEqual(t *testing.T) { } } func TestOneofProtoTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1393,14 +1391,14 @@ func TestOneofProtoTypesVerboseEqual(t *testing.T) { } } func TestOneofStdTypesVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1409,10 +1407,10 @@ func TestOneofStdTypesVerboseEqual(t *testing.T) { } func TestKnownTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedKnownTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1423,14 +1421,14 @@ func TestKnownTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkKnownTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*KnownTypes, 1000) for i := 0; i < 1000; i++ { @@ -1445,10 +1443,10 @@ func BenchmarkKnownTypesSize(b *testing.B) { func TestProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1459,14 +1457,14 @@ func TestProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*ProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1481,10 +1479,10 @@ func BenchmarkProtoTypesSize(b *testing.B) { func TestStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1495,14 +1493,14 @@ func TestStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*StdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1517,10 +1515,10 @@ func BenchmarkStdTypesSize(b *testing.B) { func TestRepProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1531,14 +1529,14 @@ func TestRepProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRepProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1553,10 +1551,10 @@ func BenchmarkRepProtoTypesSize(b *testing.B) { func TestRepStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedRepStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1567,14 +1565,14 @@ func TestRepStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkRepStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*RepStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1589,10 +1587,10 @@ func BenchmarkRepStdTypesSize(b *testing.B) { func TestMapProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1603,14 +1601,14 @@ func TestMapProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMapProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1625,10 +1623,10 @@ func BenchmarkMapProtoTypesSize(b *testing.B) { func TestMapStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedMapStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1639,14 +1637,14 @@ func TestMapStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkMapStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*MapStdTypes, 1000) for i := 0; i < 1000; i++ { @@ -1661,10 +1659,10 @@ func BenchmarkMapStdTypesSize(b *testing.B) { func TestOneofProtoTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1675,14 +1673,14 @@ func TestOneofProtoTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOneofProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofProtoTypes, 1000) for i := 0; i < 1000; i++ { @@ -1697,10 +1695,10 @@ func BenchmarkOneofProtoTypesSize(b *testing.B) { func TestOneofStdTypesSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOneofStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1711,14 +1709,14 @@ func TestOneofStdTypesSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func BenchmarkOneofStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*OneofStdTypes, 1000) for i := 0; i < 1000; i++ { diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.pb.go deleted file mode 100644 index f1867b2f8..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.pb.go +++ /dev/null @@ -1,5910 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/types.proto -// DO NOT EDIT! - -/* - Package types is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeboth/types.proto - - It has these top-level messages: - KnownTypes - ProtoTypes - StdTypes - RepProtoTypes - RepStdTypes - MapProtoTypes - MapStdTypes - OneofProtoTypes - OneofStdTypes -*/ -package types - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import google_protobuf1 "github.com/gogo/protobuf/types" -import google_protobuf2 "github.com/gogo/protobuf/types" -import google_protobuf3 "github.com/gogo/protobuf/types" - -import time "time" -import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf -var _ = time.Kitchen - -// 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 - -type KnownTypes struct { - Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` - Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` - Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` - Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` - I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` - U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` - I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` - U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` - Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` - Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` - Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` -} - -func (m *KnownTypes) Reset() { *m = KnownTypes{} } -func (m *KnownTypes) String() string { return proto.CompactTextString(m) } -func (*KnownTypes) ProtoMessage() {} -func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } - -func (m *KnownTypes) GetDur() *google_protobuf1.Duration { - if m != nil { - return m.Dur - } - return nil -} - -func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { - if m != nil { - return m.Ts - } - return nil -} - -func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { - if m != nil { - return m.Dbl - } - return nil -} - -func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { - if m != nil { - return m.Flt - } - return nil -} - -func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { - if m != nil { - return m.I64 - } - return nil -} - -func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { - if m != nil { - return m.U64 - } - return nil -} - -func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { - if m != nil { - return m.I32 - } - return nil -} - -func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { - if m != nil { - return m.U32 - } - return nil -} - -func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { - if m != nil { - return m.Bool - } - return nil -} - -func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { - if m != nil { - return m.Str - } - return nil -} - -func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { - if m != nil { - return m.Bytes - } - return nil -} - -type ProtoTypes struct { - NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` - NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` - Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` - Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` -} - -func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } -func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } -func (*ProtoTypes) ProtoMessage() {} -func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } - -func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { - if m != nil { - return m.Timestamp - } - return google_protobuf2.Timestamp{} -} - -func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { - if m != nil { - return m.Duration - } - return google_protobuf1.Duration{} -} - -type StdTypes struct { - NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` - NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` - Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` - Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` -} - -func (m *StdTypes) Reset() { *m = StdTypes{} } -func (m *StdTypes) String() string { return proto.CompactTextString(m) } -func (*StdTypes) ProtoMessage() {} -func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } - -func (m *StdTypes) GetNullableTimestamp() *time.Time { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *StdTypes) GetNullableDuration() *time.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *StdTypes) GetTimestamp() time.Time { - if m != nil { - return m.Timestamp - } - return time.Time{} -} - -func (m *StdTypes) GetDuration() time.Duration { - if m != nil { - return m.Duration - } - return 0 -} - -type RepProtoTypes struct { - NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` - NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` - Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` - Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` -} - -func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } -func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } -func (*RepProtoTypes) ProtoMessage() {} -func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } - -func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { - if m != nil { - return m.NullableTimestamps - } - return nil -} - -func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { - if m != nil { - return m.NullableDurations - } - return nil -} - -func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { - if m != nil { - return m.Timestamps - } - return nil -} - -func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { - if m != nil { - return m.Durations - } - return nil -} - -type RepStdTypes struct { - NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` - NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` - Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` - Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` -} - -func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } -func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } -func (*RepStdTypes) ProtoMessage() {} -func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } - -func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { - if m != nil { - return m.NullableTimestamps - } - return nil -} - -func (m *RepStdTypes) GetNullableDurations() []*time.Duration { - if m != nil { - return m.NullableDurations - } - return nil -} - -func (m *RepStdTypes) GetTimestamps() []time.Time { - if m != nil { - return m.Timestamps - } - return nil -} - -func (m *RepStdTypes) GetDurations() []time.Duration { - if m != nil { - return m.Durations - } - return nil -} - -type MapProtoTypes struct { - NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } -func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } -func (*MapProtoTypes) ProtoMessage() {} -func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } - -func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { - if m != nil { - return m.Timestamp - } - return nil -} - -func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { - if m != nil { - return m.Duration - } - return nil -} - -type MapStdTypes struct { - NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } -func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } -func (*MapStdTypes) ProtoMessage() {} -func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } - -func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { - if m != nil { - return m.Timestamp - } - return nil -} - -func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *MapStdTypes) GetDuration() map[int32]time.Duration { - if m != nil { - return m.Duration - } - return nil -} - -type OneofProtoTypes struct { - // Types that are valid to be assigned to OneOfProtoTimes: - // *OneofProtoTypes_Timestamp - // *OneofProtoTypes_Duration - OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` -} - -func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } -func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } -func (*OneofProtoTypes) ProtoMessage() {} -func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } - -type isOneofProtoTypes_OneOfProtoTimes interface { - isOneofProtoTypes_OneOfProtoTimes() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type OneofProtoTypes_Timestamp struct { - Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` -} -type OneofProtoTypes_Duration struct { - Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` -} - -func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} -func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} - -func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { - if m != nil { - return m.OneOfProtoTimes - } - return nil -} - -func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { - if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { - return x.Timestamp - } - return nil -} - -func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { - if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { - return x.Duration - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ - (*OneofProtoTypes_Timestamp)(nil), - (*OneofProtoTypes_Duration)(nil), - } -} - -func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*OneofProtoTypes) - // OneOfProtoTimes - switch x := m.OneOfProtoTimes.(type) { - case *OneofProtoTypes_Timestamp: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Timestamp); err != nil { - return err - } - case *OneofProtoTypes_Duration: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Duration); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) - } - return nil -} - -func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*OneofProtoTypes) - switch tag { - case 1: // OneOfProtoTimes.timestamp - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(google_protobuf2.Timestamp) - err := b.DecodeMessage(msg) - m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} - return true, err - case 2: // OneOfProtoTimes.duration - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(google_protobuf1.Duration) - err := b.DecodeMessage(msg) - m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} - return true, err - default: - return false, nil - } -} - -func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { - m := msg.(*OneofProtoTypes) - // OneOfProtoTimes - switch x := m.OneOfProtoTimes.(type) { - case *OneofProtoTypes_Timestamp: - s := proto.Size(x.Timestamp) - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *OneofProtoTypes_Duration: - s := proto.Size(x.Duration) - n += proto.SizeVarint(2<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type OneofStdTypes struct { - // Types that are valid to be assigned to OneOfStdTimes: - // *OneofStdTypes_Timestamp - // *OneofStdTypes_Duration - OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` -} - -func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } -func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } -func (*OneofStdTypes) ProtoMessage() {} -func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } - -type isOneofStdTypes_OneOfStdTimes interface { - isOneofStdTypes_OneOfStdTimes() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type OneofStdTypes_Timestamp struct { - Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` -} -type OneofStdTypes_Duration struct { - Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` -} - -func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} -func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} - -func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { - if m != nil { - return m.OneOfStdTimes - } - return nil -} - -func (m *OneofStdTypes) GetTimestamp() *time.Time { - if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { - return x.Timestamp - } - return nil -} - -func (m *OneofStdTypes) GetDuration() *time.Duration { - if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { - return x.Duration - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ - (*OneofStdTypes_Timestamp)(nil), - (*OneofStdTypes_Duration)(nil), - } -} - -func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*OneofStdTypes) - // OneOfStdTimes - switch x := m.OneOfStdTimes.(type) { - case *OneofStdTypes_Timestamp: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) - if err != nil { - return err - } - if err := b.EncodeRawBytes(dAtA); err != nil { - return err - } - case *OneofStdTypes_Duration: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) - if err != nil { - return err - } - if err := b.EncodeRawBytes(dAtA); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) - } - return nil -} - -func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*OneofStdTypes) - switch tag { - case 1: // OneOfStdTimes.timestamp - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - if err != nil { - return true, err - } - c := new(time.Time) - if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { - return true, err - } - m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} - return true, err - case 2: // OneOfStdTimes.duration - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - if err != nil { - return true, err - } - c := new(time.Duration) - if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { - return true, err - } - m.OneOfStdTimes = &OneofStdTypes_Duration{c} - return true, err - default: - return false, nil - } -} - -func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { - m := msg.(*OneofStdTypes) - // OneOfStdTimes - switch x := m.OneOfStdTimes.(type) { - case *OneofStdTypes_Timestamp: - s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *OneofStdTypes_Duration: - s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) - n += proto.SizeVarint(2<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") - proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") - proto.RegisterType((*StdTypes)(nil), "types.StdTypes") - proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") - proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") - proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") - proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") - proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") - proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") -} -func (this *KnownTypes) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*KnownTypes) - if !ok { - that2, ok := that.(KnownTypes) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Dur.Compare(that1.Dur); c != 0 { - return c - } - if c := this.Ts.Compare(that1.Ts); c != 0 { - return c - } - if c := this.Dbl.Compare(that1.Dbl); c != 0 { - return c - } - if c := this.Flt.Compare(that1.Flt); c != 0 { - return c - } - if c := this.I64.Compare(that1.I64); c != 0 { - return c - } - if c := this.U64.Compare(that1.U64); c != 0 { - return c - } - if c := this.I32.Compare(that1.I32); c != 0 { - return c - } - if c := this.U32.Compare(that1.U32); c != 0 { - return c - } - if c := this.Bool.Compare(that1.Bool); c != 0 { - return c - } - if c := this.Str.Compare(that1.Str); c != 0 { - return c - } - if c := this.Bytes.Compare(that1.Bytes); c != 0 { - return c - } - return 0 -} -func (this *ProtoTypes) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*ProtoTypes) - if !ok { - that2, ok := that.(ProtoTypes) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { - return c - } - if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { - return c - } - if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { - return c - } - if c := this.Duration.Compare(&that1.Duration); c != 0 { - return c - } - return 0 -} -func (this *RepProtoTypes) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*RepProtoTypes) - if !ok { - that2, ok := that.(RepProtoTypes) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { - return -1 - } - return 1 - } - for i := range this.NullableTimestamps { - if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { - return c - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - if len(this.NullableDurations) < len(that1.NullableDurations) { - return -1 - } - return 1 - } - for i := range this.NullableDurations { - if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { - return c - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - if len(this.Timestamps) < len(that1.Timestamps) { - return -1 - } - return 1 - } - for i := range this.Timestamps { - if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { - return c - } - } - if len(this.Durations) != len(that1.Durations) { - if len(this.Durations) < len(that1.Durations) { - return -1 - } - return 1 - } - for i := range this.Durations { - if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { - return c - } - } - return 0 -} -func (this *KnownTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*KnownTypes) - if !ok { - that2, ok := that.(KnownTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *KnownTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") - } - if !this.Dur.Equal(that1.Dur) { - return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) - } - if !this.Ts.Equal(that1.Ts) { - return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) - } - if !this.Dbl.Equal(that1.Dbl) { - return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) - } - if !this.Flt.Equal(that1.Flt) { - return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) - } - if !this.I64.Equal(that1.I64) { - return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) - } - if !this.U64.Equal(that1.U64) { - return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) - } - if !this.I32.Equal(that1.I32) { - return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) - } - if !this.U32.Equal(that1.U32) { - return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) - } - if !this.Bool.Equal(that1.Bool) { - return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) - } - if !this.Str.Equal(that1.Str) { - return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) - } - if !this.Bytes.Equal(that1.Bytes) { - return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) - } - return nil -} -func (this *KnownTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*KnownTypes) - if !ok { - that2, ok := that.(KnownTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Dur.Equal(that1.Dur) { - return false - } - if !this.Ts.Equal(that1.Ts) { - return false - } - if !this.Dbl.Equal(that1.Dbl) { - return false - } - if !this.Flt.Equal(that1.Flt) { - return false - } - if !this.I64.Equal(that1.I64) { - return false - } - if !this.U64.Equal(that1.U64) { - return false - } - if !this.I32.Equal(that1.I32) { - return false - } - if !this.U32.Equal(that1.U32) { - return false - } - if !this.Bool.Equal(that1.Bool) { - return false - } - if !this.Str.Equal(that1.Str) { - return false - } - if !this.Bytes.Equal(that1.Bytes) { - return false - } - return true -} -func (this *ProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ProtoTypes) - if !ok { - that2, ok := that.(ProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") - } - if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) - } - if !this.NullableDuration.Equal(that1.NullableDuration) { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) - } - if !this.Timestamp.Equal(&that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - if !this.Duration.Equal(&that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *ProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ProtoTypes) - if !ok { - that2, ok := that.(ProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { - return false - } - if !this.NullableDuration.Equal(that1.NullableDuration) { - return false - } - if !this.Timestamp.Equal(&that1.Timestamp) { - return false - } - if !this.Duration.Equal(&that1.Duration) { - return false - } - return true -} -func (this *StdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*StdTypes) - if !ok { - that2, ok := that.(StdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *StdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *StdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") - } - if that1.NullableTimestamp == nil { - if this.NullableTimestamp != nil { - return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") - } - } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) - } - if this.NullableDuration != nil && that1.NullableDuration != nil { - if *this.NullableDuration != *that1.NullableDuration { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) - } - } else if this.NullableDuration != nil { - return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") - } else if that1.NullableDuration != nil { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) - } - if !this.Timestamp.Equal(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - if this.Duration != that1.Duration { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *StdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*StdTypes) - if !ok { - that2, ok := that.(StdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.NullableTimestamp == nil { - if this.NullableTimestamp != nil { - return false - } - } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { - return false - } - if this.NullableDuration != nil && that1.NullableDuration != nil { - if *this.NullableDuration != *that1.NullableDuration { - return false - } - } else if this.NullableDuration != nil { - return false - } else if that1.NullableDuration != nil { - return false - } - if !this.Timestamp.Equal(that1.Timestamp) { - return false - } - if this.Duration != that1.Duration { - return false - } - return true -} -func (this *RepProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*RepProtoTypes) - if !ok { - that2, ok := that.(RepProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *RepProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { - return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) - } - for i := range this.NullableDurations { - if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { - return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { - return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) - } - } - if len(this.Durations) != len(that1.Durations) { - return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) - } - for i := range this.Durations { - if !this.Durations[i].Equal(&that1.Durations[i]) { - return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) - } - } - return nil -} -func (this *RepProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*RepProtoTypes) - if !ok { - that2, ok := that.(RepProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return false - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { - return false - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return false - } - for i := range this.NullableDurations { - if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { - return false - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return false - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { - return false - } - } - if len(this.Durations) != len(that1.Durations) { - return false - } - for i := range this.Durations { - if !this.Durations[i].Equal(&that1.Durations[i]) { - return false - } - } - return true -} -func (this *RepStdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*RepStdTypes) - if !ok { - that2, ok := that.(RepStdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *RepStdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { - return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) - } - for i := range this.NullableDurations { - if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(that1.Timestamps[i]) { - return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) - } - } - if len(this.Durations) != len(that1.Durations) { - return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) - } - for i := range this.Durations { - if this.Durations[i] != that1.Durations[i] { - return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) - } - } - return nil -} -func (this *RepStdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*RepStdTypes) - if !ok { - that2, ok := that.(RepStdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return false - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { - return false - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return false - } - for i := range this.NullableDurations { - if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return false - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return false - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(that1.Timestamps[i]) { - return false - } - } - if len(this.Durations) != len(that1.Durations) { - return false - } - for i := range this.Durations { - if this.Durations[i] != that1.Durations[i] { - return false - } - } - return true -} -func (this *MapProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MapProtoTypes) - if !ok { - that2, ok := that.(MapProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MapProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { - return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) - } - for i := range this.Timestamp { - a := this.Timestamp[i] - b := that1.Timestamp[i] - if !(&a).Equal(&b) { - return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) - } - for i := range this.NullableDuration { - if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { - return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) - } - } - if len(this.Duration) != len(that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) - } - for i := range this.Duration { - a := this.Duration[i] - b := that1.Duration[i] - if !(&a).Equal(&b) { - return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) - } - } - return nil -} -func (this *MapProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MapProtoTypes) - if !ok { - that2, ok := that.(MapProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return false - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { - return false - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return false - } - for i := range this.Timestamp { - a := this.Timestamp[i] - b := that1.Timestamp[i] - if !(&a).Equal(&b) { - return false - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return false - } - for i := range this.NullableDuration { - if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { - return false - } - } - if len(this.Duration) != len(that1.Duration) { - return false - } - for i := range this.Duration { - a := this.Duration[i] - b := that1.Duration[i] - if !(&a).Equal(&b) { - return false - } - } - return true -} -func (this *MapStdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MapStdTypes) - if !ok { - that2, ok := that.(MapStdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MapStdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { - return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) - } - for i := range this.Timestamp { - if !this.Timestamp[i].Equal(that1.Timestamp[i]) { - return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) - } - for i := range this.NullableDuration { - if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) - } - } - if len(this.Duration) != len(that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) - } - for i := range this.Duration { - if this.Duration[i] != that1.Duration[i] { - return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) - } - } - return nil -} -func (this *MapStdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MapStdTypes) - if !ok { - that2, ok := that.(MapStdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return false - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { - return false - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return false - } - for i := range this.Timestamp { - if !this.Timestamp[i].Equal(that1.Timestamp[i]) { - return false - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return false - } - for i := range this.NullableDuration { - if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return false - } - } - if len(this.Duration) != len(that1.Duration) { - return false - } - for i := range this.Duration { - if this.Duration[i] != that1.Duration[i] { - return false - } - } - return true -} -func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofProtoTypes) - if !ok { - that2, ok := that.(OneofProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") - } - if that1.OneOfProtoTimes == nil { - if this.OneOfProtoTimes != nil { - return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") - } - } else if this.OneOfProtoTimes == nil { - return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") - } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { - return err - } - return nil -} -func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofProtoTypes_Timestamp) - if !ok { - that2, ok := that.(OneofProtoTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") - } - if !this.Timestamp.Equal(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - return nil -} -func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofProtoTypes_Duration) - if !ok { - that2, ok := that.(OneofProtoTypes_Duration) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") - } - if !this.Duration.Equal(that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *OneofProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofProtoTypes) - if !ok { - that2, ok := that.(OneofProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.OneOfProtoTimes == nil { - if this.OneOfProtoTimes != nil { - return false - } - } else if this.OneOfProtoTimes == nil { - return false - } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { - return false - } - return true -} -func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofProtoTypes_Timestamp) - if !ok { - that2, ok := that.(OneofProtoTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Timestamp.Equal(that1.Timestamp) { - return false - } - return true -} -func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofProtoTypes_Duration) - if !ok { - that2, ok := that.(OneofProtoTypes_Duration) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Duration.Equal(that1.Duration) { - return false - } - return true -} -func (this *OneofStdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofStdTypes) - if !ok { - that2, ok := that.(OneofStdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofStdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") - } - if that1.OneOfStdTimes == nil { - if this.OneOfStdTimes != nil { - return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") - } - } else if this.OneOfStdTimes == nil { - return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") - } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { - return err - } - return nil -} -func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofStdTypes_Timestamp) - if !ok { - that2, ok := that.(OneofStdTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") - } - if that1.Timestamp == nil { - if this.Timestamp != nil { - return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") - } - } else if !this.Timestamp.Equal(*that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - return nil -} -func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofStdTypes_Duration) - if !ok { - that2, ok := that.(OneofStdTypes_Duration) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofStdTypes_Duration") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") - } - if this.Duration != nil && that1.Duration != nil { - if *this.Duration != *that1.Duration { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) - } - } else if this.Duration != nil { - return fmt.Errorf("this.Duration == nil && that.Duration != nil") - } else if that1.Duration != nil { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *OneofStdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofStdTypes) - if !ok { - that2, ok := that.(OneofStdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.OneOfStdTimes == nil { - if this.OneOfStdTimes != nil { - return false - } - } else if this.OneOfStdTimes == nil { - return false - } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { - return false - } - return true -} -func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofStdTypes_Timestamp) - if !ok { - that2, ok := that.(OneofStdTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Timestamp == nil { - if this.Timestamp != nil { - return false - } - } else if !this.Timestamp.Equal(*that1.Timestamp) { - return false - } - return true -} -func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofStdTypes_Duration) - if !ok { - that2, ok := that.(OneofStdTypes_Duration) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Duration != nil && that1.Duration != nil { - if *this.Duration != *that1.Duration { - return false - } - } else if this.Duration != nil { - return false - } else if that1.Duration != nil { - return false - } - return true -} -func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { - this := &KnownTypes{} - if r.Intn(10) != 0 { - this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) - } - if r.Intn(10) != 0 { - this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - if r.Intn(10) != 0 { - this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) - } - if r.Intn(10) != 0 { - this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) - } - if r.Intn(10) != 0 { - this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) - } - if r.Intn(10) != 0 { - this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) - } - if r.Intn(10) != 0 { - this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) - } - if r.Intn(10) != 0 { - this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) - } - if r.Intn(10) != 0 { - this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) - } - if r.Intn(10) != 0 { - this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) - } - if r.Intn(10) != 0 { - this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { - this := &ProtoTypes{} - if r.Intn(10) != 0 { - this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - if r.Intn(10) != 0 { - this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) - } - v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) - this.Timestamp = *v1 - v2 := google_protobuf1.NewPopulatedDuration(r, easy) - this.Duration = *v2 - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { - this := &StdTypes{} - if r.Intn(10) != 0 { - this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - if r.Intn(10) != 0 { - this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - this.Timestamp = *v3 - v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - this.Duration = *v4 - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { - this := &RepProtoTypes{} - if r.Intn(10) != 0 { - v5 := r.Intn(5) - this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) - for i := 0; i < v5; i++ { - this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - } - if r.Intn(10) != 0 { - v6 := r.Intn(5) - this.NullableDurations = make([]*google_protobuf1.Duration, v6) - for i := 0; i < v6; i++ { - this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v7 := r.Intn(5) - this.Timestamps = make([]google_protobuf2.Timestamp, v7) - for i := 0; i < v7; i++ { - v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) - this.Timestamps[i] = *v8 - } - } - if r.Intn(10) != 0 { - v9 := r.Intn(5) - this.Durations = make([]google_protobuf1.Duration, v9) - for i := 0; i < v9; i++ { - v10 := google_protobuf1.NewPopulatedDuration(r, easy) - this.Durations[i] = *v10 - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { - this := &RepStdTypes{} - if r.Intn(10) != 0 { - v11 := r.Intn(5) - this.NullableTimestamps = make([]*time.Time, v11) - for i := 0; i < v11; i++ { - this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - } - if r.Intn(10) != 0 { - v12 := r.Intn(5) - this.NullableDurations = make([]*time.Duration, v12) - for i := 0; i < v12; i++ { - this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v13 := r.Intn(5) - this.Timestamps = make([]time.Time, v13) - for i := 0; i < v13; i++ { - v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - this.Timestamps[i] = *v14 - } - } - if r.Intn(10) != 0 { - v15 := r.Intn(5) - this.Durations = make([]time.Duration, v15) - for i := 0; i < v15; i++ { - v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - this.Durations[i] = *v16 - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { - this := &MapProtoTypes{} - if r.Intn(10) != 0 { - v17 := r.Intn(10) - this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) - for i := 0; i < v17; i++ { - this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - } - if r.Intn(10) != 0 { - v18 := r.Intn(10) - this.Timestamp = make(map[int32]google_protobuf2.Timestamp) - for i := 0; i < v18; i++ { - this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) - } - } - if r.Intn(10) != 0 { - v19 := r.Intn(10) - this.NullableDuration = make(map[int32]*google_protobuf1.Duration) - for i := 0; i < v19; i++ { - this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v20 := r.Intn(10) - this.Duration = make(map[int32]google_protobuf1.Duration) - for i := 0; i < v20; i++ { - this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { - this := &MapStdTypes{} - if r.Intn(10) != 0 { - v21 := r.Intn(10) - this.NullableTimestamp = make(map[int32]*time.Time) - for i := 0; i < v21; i++ { - this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - } - if r.Intn(10) != 0 { - v22 := r.Intn(10) - this.Timestamp = make(map[int32]time.Time) - for i := 0; i < v22; i++ { - this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - } - if r.Intn(10) != 0 { - v23 := r.Intn(10) - this.NullableDuration = make(map[int32]*time.Duration) - for i := 0; i < v23; i++ { - this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v24 := r.Intn(10) - this.Duration = make(map[int32]time.Duration) - for i := 0; i < v24; i++ { - this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { - this := &OneofProtoTypes{} - oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] - switch oneofNumber_OneOfProtoTimes { - case 1: - this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) - case 2: - this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { - this := &OneofProtoTypes_Timestamp{} - this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) - return this -} -func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { - this := &OneofProtoTypes_Duration{} - this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) - return this -} -func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { - this := &OneofStdTypes{} - oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] - switch oneofNumber_OneOfStdTimes { - case 1: - this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) - case 2: - this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { - this := &OneofStdTypes_Timestamp{} - this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - return this -} -func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { - this := &OneofStdTypes_Duration{} - this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - return this -} - -type randyTypes interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneTypes(r randyTypes) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringTypes(r randyTypes) string { - v25 := r.Intn(100) - tmps := make([]rune, v25) - for i := 0; i < v25; i++ { - tmps[i] = randUTF8RuneTypes(r) - } - return string(tmps) -} -func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - v26 := r.Int63() - if r.Intn(2) == 0 { - v26 *= -1 - } - dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) - case 1: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *KnownTypes) Size() (n int) { - var l int - _ = l - if m.Dur != nil { - l = m.Dur.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Ts != nil { - l = m.Ts.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Dbl != nil { - l = m.Dbl.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Flt != nil { - l = m.Flt.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.I64 != nil { - l = m.I64.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.U64 != nil { - l = m.U64.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.I32 != nil { - l = m.I32.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.U32 != nil { - l = m.U32.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Bool != nil { - l = m.Bool.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Str != nil { - l = m.Str.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Bytes != nil { - l = m.Bytes.Size() - n += 1 + l + sovTypes(uint64(l)) - } - return n -} - -func (m *ProtoTypes) Size() (n int) { - var l int - _ = l - if m.NullableTimestamp != nil { - l = m.NullableTimestamp.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.NullableDuration != nil { - l = m.NullableDuration.Size() - n += 1 + l + sovTypes(uint64(l)) - } - l = m.Timestamp.Size() - n += 1 + l + sovTypes(uint64(l)) - l = m.Duration.Size() - n += 1 + l + sovTypes(uint64(l)) - return n -} - -func (m *StdTypes) Size() (n int) { - var l int - _ = l - if m.NullableTimestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) - n += 1 + l + sovTypes(uint64(l)) - } - if m.NullableDuration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) - n += 1 + l + sovTypes(uint64(l)) - } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) - n += 1 + l + sovTypes(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) - n += 1 + l + sovTypes(uint64(l)) - return n -} - -func (m *RepProtoTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, e := range m.NullableTimestamps { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.NullableDurations) > 0 { - for _, e := range m.NullableDurations { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Timestamps) > 0 { - for _, e := range m.Timestamps { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Durations) > 0 { - for _, e := range m.Durations { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - return n -} - -func (m *RepStdTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, e := range m.NullableTimestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.NullableDurations) > 0 { - for _, e := range m.NullableDurations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Timestamps) > 0 { - for _, e := range m.Timestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(e) - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Durations) > 0 { - for _, e := range m.Durations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) - n += 1 + l + sovTypes(uint64(l)) - } - } - return n -} - -func (m *MapProtoTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k, v := range m.NullableTimestamp { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Timestamp) > 0 { - for k, v := range m.Timestamp { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.NullableDuration) > 0 { - for k, v := range m.NullableDuration { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Duration) > 0 { - for k, v := range m.Duration { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - return n -} - -func (m *MapStdTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k, v := range m.NullableTimestamp { - _ = k - _ = v - l = 0 - if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Timestamp) > 0 { - for k, v := range m.Timestamp { - _ = k - _ = v - l = github_com_gogo_protobuf_types.SizeOfStdTime(v) - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.NullableDuration) > 0 { - for k, v := range m.NullableDuration { - _ = k - _ = v - l = 0 - if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Duration) > 0 { - for k, v := range m.Duration { - _ = k - _ = v - l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - return n -} - -func (m *OneofProtoTypes) Size() (n int) { - var l int - _ = l - if m.OneOfProtoTimes != nil { - n += m.OneOfProtoTimes.Size() - } - return n -} - -func (m *OneofProtoTypes_Timestamp) Size() (n int) { - var l int - _ = l - if m.Timestamp != nil { - l = m.Timestamp.Size() - n += 1 + l + sovTypes(uint64(l)) - } - return n -} -func (m *OneofProtoTypes_Duration) Size() (n int) { - var l int - _ = l - if m.Duration != nil { - l = m.Duration.Size() - n += 1 + l + sovTypes(uint64(l)) - } - return n -} -func (m *OneofStdTypes) Size() (n int) { - var l int - _ = l - if m.OneOfStdTimes != nil { - n += m.OneOfStdTimes.Size() - } - return n -} - -func (m *OneofStdTypes_Timestamp) Size() (n int) { - var l int - _ = l - if m.Timestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) - n += 1 + l + sovTypes(uint64(l)) - } - return n -} -func (m *OneofStdTypes_Duration) Size() (n int) { - var l int - _ = l - if m.Duration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) - n += 1 + l + sovTypes(uint64(l)) - } - return n -} - -func sovTypes(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozTypes(x uint64) (n int) { - return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *KnownTypes) 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 *KnownTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Dur != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Dur.Size())) - n1, err := m.Dur.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - if m.Ts != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Ts.Size())) - n2, err := m.Ts.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - if m.Dbl != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Dbl.Size())) - n3, err := m.Dbl.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - } - if m.Flt != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Flt.Size())) - n4, err := m.Flt.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - } - if m.I64 != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.I64.Size())) - n5, err := m.I64.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - if m.U64 != nil { - dAtA[i] = 0x32 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.U64.Size())) - n6, err := m.U64.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 - } - if m.I32 != nil { - dAtA[i] = 0x3a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.I32.Size())) - n7, err := m.I32.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - } - if m.U32 != nil { - dAtA[i] = 0x42 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.U32.Size())) - n8, err := m.U32.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n8 - } - if m.Bool != nil { - dAtA[i] = 0x4a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Bool.Size())) - n9, err := m.Bool.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n9 - } - if m.Str != nil { - dAtA[i] = 0x52 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Str.Size())) - n10, err := m.Str.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n10 - } - if m.Bytes != nil { - dAtA[i] = 0x5a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Bytes.Size())) - n11, err := m.Bytes.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n11 - } - return i, nil -} - -func (m *ProtoTypes) 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 *ProtoTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NullableTimestamp != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.NullableTimestamp.Size())) - n12, err := m.NullableTimestamp.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n12 - } - if m.NullableDuration != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.NullableDuration.Size())) - n13, err := m.NullableDuration.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n13 - } - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) - n14, err := m.Timestamp.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n14 - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) - n15, err := m.Duration.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n15 - return i, nil -} - -func (m *StdTypes) 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 *StdTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NullableTimestamp != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp))) - n16, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) - if err != nil { - return 0, err - } - i += n16 - } - if m.NullableDuration != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration))) - n17, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) - if err != nil { - return 0, err - } - i += n17 - } - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) - n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) - if err != nil { - return 0, err - } - i += n18 - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration))) - n19, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Duration, dAtA[i:]) - if err != nil { - return 0, err - } - i += n19 - return i, nil -} - -func (m *RepProtoTypes) 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 *RepProtoTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, msg := range m.NullableTimestamps { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.NullableDurations) > 0 { - for _, msg := range m.NullableDurations { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Timestamps) > 0 { - for _, msg := range m.Timestamps { - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Durations) > 0 { - for _, msg := range m.Durations { - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *RepStdTypes) 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 *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, msg := range m.NullableTimestamps { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*msg))) - n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*msg, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.NullableDurations) > 0 { - for _, msg := range m.NullableDurations { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*msg))) - n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*msg, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Timestamps) > 0 { - for _, msg := range m.Timestamps { - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(msg))) - n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(msg, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Durations) > 0 { - for _, msg := range m.Durations { - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(msg))) - n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(msg, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *MapProtoTypes) 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 *MapProtoTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k := range m.NullableTimestamp { - dAtA[i] = 0xa - i++ - v := m.NullableTimestamp[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(v.Size())) - n20, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n20 - } - } - } - if len(m.Timestamp) > 0 { - for k := range m.Timestamp { - dAtA[i] = 0x12 - i++ - v := m.Timestamp[k] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) - n21, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n21 - } - } - if len(m.NullableDuration) > 0 { - for k := range m.NullableDuration { - dAtA[i] = 0x1a - i++ - v := m.NullableDuration[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(v.Size())) - n22, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n22 - } - } - } - if len(m.Duration) > 0 { - for k := range m.Duration { - dAtA[i] = 0x22 - i++ - v := m.Duration[k] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) - n23, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n23 - } - } - return i, nil -} - -func (m *MapStdTypes) 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 *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k := range m.NullableTimestamp { - dAtA[i] = 0xa - i++ - v := m.NullableTimestamp[k] - msgSize := 0 - if v != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*v) - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*v))) - n24, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*v, dAtA[i:]) - if err != nil { - return 0, err - } - i += n24 - } - } - } - if len(m.Timestamp) > 0 { - for k := range m.Timestamp { - dAtA[i] = 0x12 - i++ - v := m.Timestamp[k] - msgSize := 0 - if (&v) != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)) - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)))) - n25, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:]) - if err != nil { - return 0, err - } - i += n25 - } - } - if len(m.NullableDuration) > 0 { - for k := range m.NullableDuration { - dAtA[i] = 0x1a - i++ - v := m.NullableDuration[k] - msgSize := 0 - if v != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) - n26, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) - if err != nil { - return 0, err - } - i += n26 - } - } - } - if len(m.Duration) > 0 { - for k := range m.Duration { - dAtA[i] = 0x22 - i++ - v := m.Duration[k] - msgSize := 0 - if (&v) != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)) - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)))) - n27, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:]) - if err != nil { - return 0, err - } - i += n27 - } - } - return i, nil -} - -func (m *OneofProtoTypes) 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 *OneofProtoTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.OneOfProtoTimes != nil { - nn28, err := m.OneOfProtoTimes.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn28 - } - return i, nil -} - -func (m *OneofProtoTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Timestamp != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) - n29, err := m.Timestamp.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n29 - } - return i, nil -} -func (m *OneofProtoTypes_Duration) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Duration != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) - n30, err := m.Duration.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n30 - } - return i, nil -} -func (m *OneofStdTypes) 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 *OneofStdTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.OneOfStdTimes != nil { - nn31, err := m.OneOfStdTimes.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn31 - } - return i, nil -} - -func (m *OneofStdTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Timestamp != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp))) - n32, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) - if err != nil { - return 0, err - } - i += n32 - } - return i, nil -} -func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Duration != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration))) - n33, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Duration, dAtA[i:]) - if err != nil { - return 0, err - } - i += n33 - } - return i, nil -} -func encodeFixed64Types(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 encodeFixed32Types(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 encodeVarintTypes(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 *KnownTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: KnownTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: KnownTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Dur", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Dur == nil { - m.Dur = &google_protobuf1.Duration{} - } - if err := m.Dur.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ts", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Ts == nil { - m.Ts = &google_protobuf2.Timestamp{} - } - if err := m.Ts.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Dbl", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Dbl == nil { - m.Dbl = &google_protobuf3.DoubleValue{} - } - if err := m.Dbl.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Flt", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Flt == nil { - m.Flt = &google_protobuf3.FloatValue{} - } - if err := m.Flt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field I64", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.I64 == nil { - m.I64 = &google_protobuf3.Int64Value{} - } - if err := m.I64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field U64", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.U64 == nil { - m.U64 = &google_protobuf3.UInt64Value{} - } - if err := m.U64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field I32", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.I32 == nil { - m.I32 = &google_protobuf3.Int32Value{} - } - if err := m.I32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field U32", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.U32 == nil { - m.U32 = &google_protobuf3.UInt32Value{} - } - if err := m.U32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Bool == nil { - m.Bool = &google_protobuf3.BoolValue{} - } - if err := m.Bool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Str", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Str == nil { - m.Str = &google_protobuf3.StringValue{} - } - if err := m.Str.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bytes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Bytes == nil { - m.Bytes = &google_protobuf3.BytesValue{} - } - if err := m.Bytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ProtoTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: ProtoTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NullableTimestamp == nil { - m.NullableTimestamp = &google_protobuf2.Timestamp{} - } - if err := m.NullableTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NullableDuration == nil { - m.NullableDuration = &google_protobuf1.Duration{} - } - if err := m.NullableDuration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Duration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StdTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: StdTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StdTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NullableTimestamp == nil { - m.NullableTimestamp = new(time.Time) - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NullableDuration == nil { - m.NullableDuration = new(time.Duration) - } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RepProtoTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: RepProtoTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RepProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NullableTimestamps = append(m.NullableTimestamps, &google_protobuf2.Timestamp{}) - if err := m.NullableTimestamps[len(m.NullableTimestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NullableDurations = append(m.NullableDurations, &google_protobuf1.Duration{}) - if err := m.NullableDurations[len(m.NullableDurations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Timestamps = append(m.Timestamps, google_protobuf2.Timestamp{}) - if err := m.Timestamps[len(m.Timestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Durations = append(m.Durations, google_protobuf1.Duration{}) - if err := m.Durations[len(m.Durations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RepStdTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: RepStdTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RepStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NullableTimestamps = append(m.NullableTimestamps, new(time.Time)) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NullableDurations = append(m.NullableDurations, new(time.Duration)) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Timestamps = append(m.Timestamps, time.Time{}) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Durations = append(m.Durations, time.Duration(0)) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MapProtoTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: MapProtoTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MapProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NullableTimestamp == nil { - m.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf2.Timestamp{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableTimestamp[mapkey] = mapvalue - } else { - var mapvalue *google_protobuf2.Timestamp - m.NullableTimestamp[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Timestamp == nil { - m.Timestamp = make(map[int32]google_protobuf2.Timestamp) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf2.Timestamp{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Timestamp[mapkey] = *mapvalue - } else { - var mapvalue google_protobuf2.Timestamp - m.Timestamp[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NullableDuration == nil { - m.NullableDuration = make(map[int32]*google_protobuf1.Duration) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf1.Duration{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableDuration[mapkey] = mapvalue - } else { - var mapvalue *google_protobuf1.Duration - m.NullableDuration[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Duration == nil { - m.Duration = make(map[int32]google_protobuf1.Duration) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf1.Duration{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Duration[mapkey] = *mapvalue - } else { - var mapvalue google_protobuf1.Duration - m.Duration[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MapStdTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: MapStdTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MapStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NullableTimestamp == nil { - m.NullableTimestamp = make(map[int32]*time.Time) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableTimestamp[mapkey] = mapvalue - } else { - var mapvalue = new(time.Time) - m.NullableTimestamp[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Timestamp == nil { - m.Timestamp = make(map[int32]time.Time) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Timestamp[mapkey] = *mapvalue - } else { - var mapvalue = new(time.Time) - m.Timestamp[mapkey] = *mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NullableDuration == nil { - m.NullableDuration = make(map[int32]*time.Duration) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableDuration[mapkey] = mapvalue - } else { - var mapvalue = new(time.Duration) - m.NullableDuration[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Duration == nil { - m.Duration = make(map[int32]time.Duration) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Duration[mapkey] = *mapvalue - } else { - var mapvalue = new(time.Duration) - m.Duration[mapkey] = *mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OneofProtoTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: OneofProtoTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OneofProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &google_protobuf2.Timestamp{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{v} - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &google_protobuf1.Duration{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.OneOfProtoTimes = &OneofProtoTypes_Duration{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OneofStdTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: OneofStdTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OneofStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.OneOfStdTimes = &OneofStdTypes_Timestamp{v} - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.OneOfStdTimes = &OneofStdTypes_Duration{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipTypesUnsafe(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, ErrIntOverflowTypesUnsafe - } - 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, ErrIntOverflowTypesUnsafe - } - 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, ErrIntOverflowTypesUnsafe - } - 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, ErrInvalidLengthTypesUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowTypesUnsafe - } - 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 := skipTypesUnsafe(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 ( - ErrInvalidLengthTypesUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowTypesUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeboth/types.proto", fileDescriptorTypes) } - -var fileDescriptorTypes = []byte{ - // 928 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4f, 0x8f, 0xdb, 0x44, - 0x1c, 0xdd, 0xb1, 0x9d, 0xb2, 0xfb, 0x5b, 0x2d, 0x6d, 0x2d, 0x81, 0x4c, 0x00, 0x67, 0x09, 0x97, - 0xa5, 0x55, 0x1d, 0x48, 0xa2, 0x80, 0x16, 0x15, 0x8a, 0xb5, 0x6d, 0xb7, 0x54, 0xdb, 0xad, 0xd2, - 0xb2, 0x02, 0x24, 0x10, 0x76, 0xe3, 0xa4, 0x11, 0x8e, 0x27, 0xb2, 0xc7, 0x54, 0xb9, 0xf1, 0x11, - 0x38, 0x82, 0xb8, 0xd0, 0x1b, 0x12, 0xdc, 0xe1, 0xc8, 0x05, 0xa9, 0x37, 0xf8, 0x04, 0xd0, 0x86, - 0x0b, 0x1f, 0xa1, 0x47, 0x34, 0xe3, 0xf1, 0xbf, 0x78, 0xec, 0x90, 0x48, 0x2b, 0x2e, 0xdc, 0xd6, - 0xeb, 0xf7, 0x9e, 0x9f, 0x9f, 0xdf, 0xef, 0x37, 0x81, 0x97, 0xef, 0xe1, 0x89, 0x8d, 0x83, 0x56, - 0xe8, 0x05, 0xd6, 0xd0, 0xb1, 0x31, 0xb9, 0xdf, 0x22, 0xb3, 0xa9, 0x13, 0x18, 0x53, 0x1f, 0x13, - 0xac, 0xd6, 0xd8, 0x45, 0xfd, 0xd2, 0x68, 0x4c, 0xee, 0x87, 0xb6, 0x71, 0x0f, 0x4f, 0x5a, 0x23, - 0x3c, 0xc2, 0x2d, 0x76, 0xd7, 0x0e, 0x87, 0xec, 0x8a, 0x5d, 0xb0, 0xbf, 0x22, 0x56, 0x5d, 0x1f, - 0x61, 0x3c, 0x72, 0x9d, 0x14, 0x35, 0x08, 0x7d, 0x8b, 0x8c, 0xb1, 0xc7, 0xef, 0x37, 0x16, 0xef, - 0x93, 0xf1, 0xc4, 0x09, 0x88, 0x35, 0x99, 0x96, 0x09, 0x3c, 0xf0, 0xad, 0xe9, 0xd4, 0xf1, 0xb9, - 0xad, 0xe6, 0xb7, 0x0a, 0xc0, 0x4d, 0x0f, 0x3f, 0xf0, 0xee, 0x52, 0x7b, 0xea, 0x45, 0x90, 0x07, - 0xa1, 0xaf, 0xa1, 0x5d, 0xb4, 0xb7, 0xdd, 0x7e, 0xc1, 0x88, 0xc8, 0x46, 0x4c, 0x36, 0x0e, 0xf8, - 0xd3, 0xfb, 0x14, 0xa5, 0x5e, 0x00, 0x89, 0x04, 0x9a, 0xc4, 0xb0, 0xf5, 0x02, 0xf6, 0x6e, 0xec, - 0xa4, 0x2f, 0x91, 0x40, 0x35, 0x40, 0x1e, 0xd8, 0xae, 0x26, 0x33, 0xf0, 0x4b, 0x45, 0x61, 0x1c, - 0xda, 0xae, 0x73, 0x62, 0xb9, 0xa1, 0xd3, 0xa7, 0x40, 0xf5, 0x12, 0xc8, 0x43, 0x97, 0x68, 0x0a, - 0xc3, 0xbf, 0x58, 0xc0, 0x5f, 0x73, 0xb1, 0x45, 0x38, 0x7c, 0xe8, 0x12, 0x0a, 0x1f, 0xf7, 0xba, - 0x5a, 0xad, 0x04, 0x7e, 0xc3, 0x23, 0xbd, 0x2e, 0x87, 0x8f, 0x7b, 0x5d, 0xea, 0x26, 0xec, 0x75, - 0xb5, 0x33, 0x25, 0x6e, 0x3e, 0xc8, 0xe2, 0xc3, 0x5e, 0x97, 0xc9, 0x77, 0xda, 0xda, 0x33, 0xe5, - 0xf2, 0x9d, 0x76, 0x2c, 0xdf, 0x69, 0x33, 0xf9, 0x4e, 0x5b, 0xdb, 0xac, 0x90, 0x4f, 0xf0, 0x21, - 0xc3, 0x2b, 0x36, 0xc6, 0xae, 0xb6, 0x55, 0x12, 0xa5, 0x89, 0xb1, 0x1b, 0xc1, 0x19, 0x8e, 0xea, - 0x07, 0xc4, 0xd7, 0xa0, 0x44, 0xff, 0x0e, 0xf1, 0xc7, 0xde, 0x88, 0xeb, 0x07, 0xc4, 0x57, 0xdf, - 0x80, 0x9a, 0x3d, 0x23, 0x4e, 0xa0, 0x6d, 0x97, 0xbc, 0x80, 0x49, 0xef, 0x46, 0x84, 0x08, 0xb9, - 0xaf, 0xfc, 0xfd, 0xb0, 0x81, 0x9a, 0xdf, 0x49, 0x00, 0xb7, 0x29, 0x28, 0x6a, 0xc7, 0x21, 0x9c, - 0xf7, 0x42, 0xd7, 0xb5, 0x6c, 0xd7, 0x49, 0xbe, 0x2e, 0xef, 0x4a, 0xd5, 0xf7, 0x2f, 0x92, 0xd4, - 0xab, 0x70, 0x2e, 0xfe, 0x67, 0xdc, 0x29, 0x5e, 0xa4, 0x8a, 0xd2, 0x15, 0x28, 0xea, 0x3b, 0xb0, - 0x95, 0x14, 0x9e, 0x77, 0xab, 0xc2, 0x88, 0xa9, 0x3c, 0xfa, 0xa3, 0xb1, 0xd1, 0x4f, 0x29, 0xea, - 0xdb, 0xb0, 0x19, 0x0f, 0x14, 0xaf, 0x5a, 0xf9, 0xe3, 0x39, 0x3b, 0x21, 0xf0, 0x88, 0x7e, 0x94, - 0x60, 0xf3, 0x0e, 0x19, 0x44, 0x01, 0xdd, 0x5a, 0x2b, 0x20, 0x53, 0xf9, 0xea, 0xcf, 0x06, 0x12, - 0xc5, 0x74, 0x73, 0x8d, 0x98, 0x4c, 0xe5, 0x6b, 0xaa, 0x56, 0x0c, 0xcb, 0x5c, 0x2d, 0xac, 0x4d, - 0xfa, 0xba, 0xcc, 0x58, 0x26, 0xb0, 0x77, 0x57, 0x09, 0x8c, 0x29, 0x30, 0x33, 0x09, 0xa9, 0xf9, - 0x83, 0x04, 0x3b, 0x7d, 0x67, 0x9a, 0x29, 0xd5, 0xfb, 0xa0, 0x16, 0x5e, 0x3c, 0xd0, 0xd0, 0xae, - 0xbc, 0xa4, 0x55, 0x02, 0x96, 0x7a, 0x3d, 0xcd, 0x3f, 0x76, 0x41, 0x17, 0x94, 0x5c, 0xdd, 0xab, - 0x22, 0x47, 0xbd, 0x02, 0x40, 0x52, 0x33, 0xf2, 0x32, 0x33, 0xbc, 0x1b, 0x19, 0x8e, 0x7a, 0x19, - 0xb6, 0x06, 0x89, 0x05, 0x65, 0x89, 0x85, 0xb8, 0x99, 0x09, 0x83, 0x97, 0xeb, 0x27, 0x09, 0xb6, - 0xfb, 0xce, 0x34, 0xe9, 0xd7, 0xed, 0xf5, 0xb2, 0xe2, 0x05, 0x13, 0x25, 0x76, 0xb4, 0x4e, 0x62, - 0xbc, 0x62, 0x82, 0xdc, 0x0e, 0x56, 0xcc, 0x2d, 0x2d, 0x59, 0x36, 0xbb, 0xf7, 0x56, 0xca, 0x2e, - 0xad, 0x59, 0xca, 0x6a, 0xfe, 0x5a, 0x83, 0x9d, 0x23, 0x2b, 0xdb, 0xb3, 0x8f, 0xc4, 0xb3, 0x49, - 0xc5, 0x2f, 0x1a, 0xd1, 0x49, 0x9d, 0x23, 0x18, 0xb7, 0x16, 0xd1, 0x57, 0x3d, 0xe2, 0xcf, 0x44, - 0x63, 0x7a, 0x3d, 0x3b, 0x59, 0x51, 0x78, 0xaf, 0x0a, 0x25, 0xf3, 0x52, 0xc5, 0x7d, 0x74, 0x22, - 0x98, 0xf7, 0x28, 0xc4, 0x0b, 0x95, 0x16, 0x63, 0x70, 0xe4, 0xb0, 0x38, 0xfa, 0x07, 0xb9, 0xb1, - 0xa5, 0x7a, 0x4d, 0xa1, 0x5e, 0x4e, 0x67, 0x71, 0xe1, 0xd5, 0x3f, 0x83, 0xe7, 0xc5, 0x99, 0xa8, - 0xe7, 0x40, 0xfe, 0xdc, 0x99, 0xb1, 0x4d, 0x57, 0xeb, 0xd3, 0x3f, 0xd5, 0xd7, 0xa1, 0xf6, 0x05, - 0x3d, 0x4f, 0xfe, 0xc5, 0xcf, 0x83, 0x08, 0xb8, 0x2f, 0xbd, 0x85, 0xea, 0x1f, 0xc2, 0xb3, 0xa7, - 0xa4, 0xfc, 0x29, 0x3c, 0x27, 0x0c, 0x4b, 0xf0, 0x80, 0x56, 0xfe, 0x01, 0x15, 0x8b, 0x23, 0xa3, - 0x7f, 0x02, 0x3b, 0xa7, 0xa1, 0xdb, 0xfc, 0xad, 0x06, 0xdb, 0x47, 0x56, 0xba, 0x01, 0x3e, 0x29, - 0x6f, 0xf1, 0x6b, 0xe9, 0x27, 0x8d, 0xe1, 0x25, 0x1d, 0x2e, 0x3f, 0x70, 0x6e, 0x14, 0x9b, 0xfc, - 0x8a, 0x40, 0x76, 0x41, 0x4e, 0x78, 0x54, 0x7c, 0x5c, 0xda, 0xe5, 0xbd, 0x0a, 0xa3, 0x0b, 0x0d, - 0x2c, 0x39, 0xca, 0xae, 0x15, 0xfa, 0xbc, 0x2b, 0xd0, 0xcc, 0x6b, 0x09, 0x4e, 0xa3, 0xff, 0x1b, - 0xfd, 0x1f, 0x34, 0xfa, 0x1b, 0x04, 0x67, 0x8f, 0x3d, 0x07, 0x0f, 0x33, 0xbb, 0x79, 0x3f, 0x5b, - 0xbb, 0xa5, 0xbf, 0x97, 0x0e, 0x73, 0x3b, 0xf3, 0xcd, 0x4c, 0x17, 0x96, 0xf9, 0x38, 0xcc, 0xac, - 0x33, 0xf3, 0x3c, 0xf3, 0x71, 0xcc, 0x7d, 0x50, 0xbd, 0xe6, 0x43, 0x04, 0x3b, 0xcc, 0x5b, 0x32, - 0x6f, 0x57, 0x56, 0x72, 0x16, 0x0d, 0x56, 0xde, 0xdf, 0xe5, 0x15, 0xfc, 0x45, 0x85, 0xcf, 0xb9, - 0x3c, 0xcb, 0x1c, 0x1d, 0x33, 0x47, 0x54, 0xd3, 0xdc, 0x7b, 0xfc, 0x44, 0x47, 0x4f, 0x9f, 0xe8, - 0xe8, 0xfb, 0xb9, 0x8e, 0x7e, 0x9e, 0xeb, 0xe8, 0x97, 0xb9, 0x8e, 0x1e, 0xcd, 0xf5, 0x8d, 0xdf, - 0xe7, 0xfa, 0xc6, 0xe3, 0xb9, 0x8e, 0x9e, 0xce, 0x75, 0xf4, 0xe5, 0x5f, 0x3a, 0xb2, 0xcf, 0x30, - 0xfd, 0xce, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x53, 0x8b, 0x21, 0xfb, 0x9a, 0x0e, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.proto deleted file mode 100644 index 475345b50..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types.proto +++ /dev/null @@ -1,131 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2016, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package types; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -//import "google/protobuf/any.proto"; -import "google/protobuf/duration.proto"; -//import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message KnownTypes { - option (gogoproto.compare) = true; - google.protobuf.Duration dur = 1; - google.protobuf.Timestamp ts = 2; - google.protobuf.DoubleValue dbl = 3; - google.protobuf.FloatValue flt = 4; - google.protobuf.Int64Value i64 = 5; - google.protobuf.UInt64Value u64 = 6; - google.protobuf.Int32Value i32 = 7; - google.protobuf.UInt32Value u32 = 8; - google.protobuf.BoolValue bool = 9; - google.protobuf.StringValue str = 10; - google.protobuf.BytesValue bytes = 11; - - // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed - // google.protobuf.Struct st = 12; - // google.protobuf.Any an = 14; -} - -message ProtoTypes { - // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare - option (gogoproto.compare) = true; - google.protobuf.Timestamp nullableTimestamp = 1; - google.protobuf.Duration nullableDuration = 2; - google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; - google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; -} - -message StdTypes { - google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; - google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; - google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; -} - -message RepProtoTypes { - option (gogoproto.compare) = true; - repeated google.protobuf.Timestamp nullableTimestamps = 1; - repeated google.protobuf.Duration nullableDurations = 2; - repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; - repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; -} - -message RepStdTypes { - repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; - repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; - repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; -} - -message MapProtoTypes { - map nullableTimestamp = 1; - map timestamp = 2 [(gogoproto.nullable) = false]; - - map nullableDuration = 3; - map duration = 4 [(gogoproto.nullable) = false]; -} - -message MapStdTypes { - map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; - map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - - map nullableDuration = 3 [(gogoproto.stdduration) = true]; - map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; -} - -message OneofProtoTypes { - oneof OneOfProtoTimes { - google.protobuf.Timestamp timestamp = 1; - google.protobuf.Duration duration = 2; - } -} - -message OneofStdTypes { - oneof OneOfStdTimes { - google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; - google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; - } -} - diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types_test.go deleted file mode 100644 index 7d24f58e6..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/types_test.go +++ /dev/null @@ -1,242 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2016, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package types - -import ( - math_rand "math/rand" - "testing" - "time" - - "github.com/gogo/protobuf/jsonpb" - "github.com/gogo/protobuf/proto" -) - -func TestFullCircleProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &StdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &ProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &StdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &ProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestFullCircleRepProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedRepProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &RepStdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &RepProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleRepProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedRepProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &RepStdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &RepProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestFullCircleMapProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedMapProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &MapStdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &MapProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleMapProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedMapProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &MapStdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &MapProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestFullCircleOneofProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedOneofProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &OneofStdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &OneofProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleOneofProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedOneofProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &OneofStdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &OneofProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/typespb_test.go deleted file mode 100644 index 26c3faa8f..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeboth/typespb_test.go +++ /dev/null @@ -1,2107 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeboth/types.proto -// DO NOT EDIT! - -/* -Package types is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeboth/types.proto - -It has these top-level messages: - KnownTypes - ProtoTypes - StdTypes - RepProtoTypes - RepStdTypes - MapProtoTypes - MapStdTypes - OneofProtoTypes - OneofStdTypes -*/ -package types - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import _ "github.com/gogo/protobuf/types" -import _ "github.com/gogo/protobuf/types" -import _ "github.com/gogo/protobuf/types" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestKnownTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestKnownTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkKnownTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*KnownTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedKnownTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &KnownTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestProtoTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestStdTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*StdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &StdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestRepProtoTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedRepProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &RepProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestRepStdTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepStdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedRepStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &RepStdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMapProtoTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMapProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MapProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMapStdTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapStdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMapStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MapStdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestOneofProtoTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOneofProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OneofProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestOneofStdTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofStdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOneofStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OneofStdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestKnownTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &KnownTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &StdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestRepProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestRepStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMapProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMapStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOneofProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOneofStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestKnownTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestKnownTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestKnownTypesCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedKnownTypes(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestProtoTypesCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedProtoTypes(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestRepProtoTypesCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedRepProtoTypes(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestKnownTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestRepProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestRepStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMapProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMapStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOneofProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOneofStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestKnownTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkKnownTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*KnownTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedKnownTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*StdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkRepProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedRepProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkRepStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepStdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedRepStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMapProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMapProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMapStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapStdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMapStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOneofProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOneofProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOneofStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofStdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOneofStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.pb.go deleted file mode 100644 index 7f3c4daea..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.pb.go +++ /dev/null @@ -1,3476 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/types.proto -// DO NOT EDIT! - -/* -Package types is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/types.proto - -It has these top-level messages: - KnownTypes - ProtoTypes - StdTypes - RepProtoTypes - RepStdTypes - MapProtoTypes - MapStdTypes - OneofProtoTypes - OneofStdTypes -*/ -package types - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import google_protobuf1 "github.com/gogo/protobuf/types" -import google_protobuf2 "github.com/gogo/protobuf/types" -import google_protobuf3 "github.com/gogo/protobuf/types" - -import time "time" -import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf -var _ = time.Kitchen - -// 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 - -type KnownTypes struct { - Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` - Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` - Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` - Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` - I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` - U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` - I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` - U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` - Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` - Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` - Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` -} - -func (m *KnownTypes) Reset() { *m = KnownTypes{} } -func (m *KnownTypes) String() string { return proto.CompactTextString(m) } -func (*KnownTypes) ProtoMessage() {} -func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } - -func (m *KnownTypes) GetDur() *google_protobuf1.Duration { - if m != nil { - return m.Dur - } - return nil -} - -func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { - if m != nil { - return m.Ts - } - return nil -} - -func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { - if m != nil { - return m.Dbl - } - return nil -} - -func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { - if m != nil { - return m.Flt - } - return nil -} - -func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { - if m != nil { - return m.I64 - } - return nil -} - -func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { - if m != nil { - return m.U64 - } - return nil -} - -func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { - if m != nil { - return m.I32 - } - return nil -} - -func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { - if m != nil { - return m.U32 - } - return nil -} - -func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { - if m != nil { - return m.Bool - } - return nil -} - -func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { - if m != nil { - return m.Str - } - return nil -} - -func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { - if m != nil { - return m.Bytes - } - return nil -} - -type ProtoTypes struct { - NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` - NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` - Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` - Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` -} - -func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } -func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } -func (*ProtoTypes) ProtoMessage() {} -func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } - -func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { - if m != nil { - return m.Timestamp - } - return google_protobuf2.Timestamp{} -} - -func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { - if m != nil { - return m.Duration - } - return google_protobuf1.Duration{} -} - -type StdTypes struct { - NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` - NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` - Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` - Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` -} - -func (m *StdTypes) Reset() { *m = StdTypes{} } -func (m *StdTypes) String() string { return proto.CompactTextString(m) } -func (*StdTypes) ProtoMessage() {} -func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } - -func (m *StdTypes) GetNullableTimestamp() *time.Time { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *StdTypes) GetNullableDuration() *time.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *StdTypes) GetTimestamp() time.Time { - if m != nil { - return m.Timestamp - } - return time.Time{} -} - -func (m *StdTypes) GetDuration() time.Duration { - if m != nil { - return m.Duration - } - return 0 -} - -type RepProtoTypes struct { - NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` - NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` - Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` - Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` -} - -func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } -func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } -func (*RepProtoTypes) ProtoMessage() {} -func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } - -func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { - if m != nil { - return m.NullableTimestamps - } - return nil -} - -func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { - if m != nil { - return m.NullableDurations - } - return nil -} - -func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { - if m != nil { - return m.Timestamps - } - return nil -} - -func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { - if m != nil { - return m.Durations - } - return nil -} - -type RepStdTypes struct { - NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` - NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` - Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` - Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` -} - -func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } -func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } -func (*RepStdTypes) ProtoMessage() {} -func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } - -func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { - if m != nil { - return m.NullableTimestamps - } - return nil -} - -func (m *RepStdTypes) GetNullableDurations() []*time.Duration { - if m != nil { - return m.NullableDurations - } - return nil -} - -func (m *RepStdTypes) GetTimestamps() []time.Time { - if m != nil { - return m.Timestamps - } - return nil -} - -func (m *RepStdTypes) GetDurations() []time.Duration { - if m != nil { - return m.Durations - } - return nil -} - -type MapProtoTypes struct { - NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } -func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } -func (*MapProtoTypes) ProtoMessage() {} -func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } - -func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { - if m != nil { - return m.Timestamp - } - return nil -} - -func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { - if m != nil { - return m.Duration - } - return nil -} - -type MapStdTypes struct { - NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } -func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } -func (*MapStdTypes) ProtoMessage() {} -func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } - -func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { - if m != nil { - return m.Timestamp - } - return nil -} - -func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *MapStdTypes) GetDuration() map[int32]time.Duration { - if m != nil { - return m.Duration - } - return nil -} - -type OneofProtoTypes struct { - // Types that are valid to be assigned to OneOfProtoTimes: - // *OneofProtoTypes_Timestamp - // *OneofProtoTypes_Duration - OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` -} - -func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } -func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } -func (*OneofProtoTypes) ProtoMessage() {} -func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } - -type isOneofProtoTypes_OneOfProtoTimes interface { - isOneofProtoTypes_OneOfProtoTimes() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type OneofProtoTypes_Timestamp struct { - Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` -} -type OneofProtoTypes_Duration struct { - Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` -} - -func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} -func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} - -func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { - if m != nil { - return m.OneOfProtoTimes - } - return nil -} - -func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { - if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { - return x.Timestamp - } - return nil -} - -func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { - if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { - return x.Duration - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ - (*OneofProtoTypes_Timestamp)(nil), - (*OneofProtoTypes_Duration)(nil), - } -} - -func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*OneofProtoTypes) - // OneOfProtoTimes - switch x := m.OneOfProtoTimes.(type) { - case *OneofProtoTypes_Timestamp: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Timestamp); err != nil { - return err - } - case *OneofProtoTypes_Duration: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Duration); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) - } - return nil -} - -func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*OneofProtoTypes) - switch tag { - case 1: // OneOfProtoTimes.timestamp - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(google_protobuf2.Timestamp) - err := b.DecodeMessage(msg) - m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} - return true, err - case 2: // OneOfProtoTimes.duration - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(google_protobuf1.Duration) - err := b.DecodeMessage(msg) - m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} - return true, err - default: - return false, nil - } -} - -func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { - m := msg.(*OneofProtoTypes) - // OneOfProtoTimes - switch x := m.OneOfProtoTimes.(type) { - case *OneofProtoTypes_Timestamp: - s := proto.Size(x.Timestamp) - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *OneofProtoTypes_Duration: - s := proto.Size(x.Duration) - n += proto.SizeVarint(2<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type OneofStdTypes struct { - // Types that are valid to be assigned to OneOfStdTimes: - // *OneofStdTypes_Timestamp - // *OneofStdTypes_Duration - OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` -} - -func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } -func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } -func (*OneofStdTypes) ProtoMessage() {} -func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } - -type isOneofStdTypes_OneOfStdTimes interface { - isOneofStdTypes_OneOfStdTimes() - Equal(interface{}) bool - VerboseEqual(interface{}) error - MarshalTo([]byte) (int, error) - Size() int -} - -type OneofStdTypes_Timestamp struct { - Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` -} -type OneofStdTypes_Duration struct { - Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` -} - -func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} -func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} - -func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { - if m != nil { - return m.OneOfStdTimes - } - return nil -} - -func (m *OneofStdTypes) GetTimestamp() *time.Time { - if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { - return x.Timestamp - } - return nil -} - -func (m *OneofStdTypes) GetDuration() *time.Duration { - if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { - return x.Duration - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ - (*OneofStdTypes_Timestamp)(nil), - (*OneofStdTypes_Duration)(nil), - } -} - -func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*OneofStdTypes) - // OneOfStdTimes - switch x := m.OneOfStdTimes.(type) { - case *OneofStdTypes_Timestamp: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) - if err != nil { - return err - } - if err := b.EncodeRawBytes(dAtA); err != nil { - return err - } - case *OneofStdTypes_Duration: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) - if err != nil { - return err - } - if err := b.EncodeRawBytes(dAtA); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) - } - return nil -} - -func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*OneofStdTypes) - switch tag { - case 1: // OneOfStdTimes.timestamp - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - if err != nil { - return true, err - } - c := new(time.Time) - if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { - return true, err - } - m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} - return true, err - case 2: // OneOfStdTimes.duration - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - if err != nil { - return true, err - } - c := new(time.Duration) - if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { - return true, err - } - m.OneOfStdTimes = &OneofStdTypes_Duration{c} - return true, err - default: - return false, nil - } -} - -func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { - m := msg.(*OneofStdTypes) - // OneOfStdTimes - switch x := m.OneOfStdTimes.(type) { - case *OneofStdTypes_Timestamp: - s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *OneofStdTypes_Duration: - s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) - n += proto.SizeVarint(2<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") - proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") - proto.RegisterType((*StdTypes)(nil), "types.StdTypes") - proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") - proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") - proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") - proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") - proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") - proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") -} -func (this *KnownTypes) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*KnownTypes) - if !ok { - that2, ok := that.(KnownTypes) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Dur.Compare(that1.Dur); c != 0 { - return c - } - if c := this.Ts.Compare(that1.Ts); c != 0 { - return c - } - if c := this.Dbl.Compare(that1.Dbl); c != 0 { - return c - } - if c := this.Flt.Compare(that1.Flt); c != 0 { - return c - } - if c := this.I64.Compare(that1.I64); c != 0 { - return c - } - if c := this.U64.Compare(that1.U64); c != 0 { - return c - } - if c := this.I32.Compare(that1.I32); c != 0 { - return c - } - if c := this.U32.Compare(that1.U32); c != 0 { - return c - } - if c := this.Bool.Compare(that1.Bool); c != 0 { - return c - } - if c := this.Str.Compare(that1.Str); c != 0 { - return c - } - if c := this.Bytes.Compare(that1.Bytes); c != 0 { - return c - } - return 0 -} -func (this *ProtoTypes) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*ProtoTypes) - if !ok { - that2, ok := that.(ProtoTypes) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { - return c - } - if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { - return c - } - if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { - return c - } - if c := this.Duration.Compare(&that1.Duration); c != 0 { - return c - } - return 0 -} -func (this *RepProtoTypes) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*RepProtoTypes) - if !ok { - that2, ok := that.(RepProtoTypes) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { - return -1 - } - return 1 - } - for i := range this.NullableTimestamps { - if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { - return c - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - if len(this.NullableDurations) < len(that1.NullableDurations) { - return -1 - } - return 1 - } - for i := range this.NullableDurations { - if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { - return c - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - if len(this.Timestamps) < len(that1.Timestamps) { - return -1 - } - return 1 - } - for i := range this.Timestamps { - if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { - return c - } - } - if len(this.Durations) != len(that1.Durations) { - if len(this.Durations) < len(that1.Durations) { - return -1 - } - return 1 - } - for i := range this.Durations { - if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { - return c - } - } - return 0 -} -func (this *KnownTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*KnownTypes) - if !ok { - that2, ok := that.(KnownTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *KnownTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") - } - if !this.Dur.Equal(that1.Dur) { - return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) - } - if !this.Ts.Equal(that1.Ts) { - return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) - } - if !this.Dbl.Equal(that1.Dbl) { - return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) - } - if !this.Flt.Equal(that1.Flt) { - return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) - } - if !this.I64.Equal(that1.I64) { - return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) - } - if !this.U64.Equal(that1.U64) { - return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) - } - if !this.I32.Equal(that1.I32) { - return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) - } - if !this.U32.Equal(that1.U32) { - return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) - } - if !this.Bool.Equal(that1.Bool) { - return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) - } - if !this.Str.Equal(that1.Str) { - return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) - } - if !this.Bytes.Equal(that1.Bytes) { - return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) - } - return nil -} -func (this *KnownTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*KnownTypes) - if !ok { - that2, ok := that.(KnownTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Dur.Equal(that1.Dur) { - return false - } - if !this.Ts.Equal(that1.Ts) { - return false - } - if !this.Dbl.Equal(that1.Dbl) { - return false - } - if !this.Flt.Equal(that1.Flt) { - return false - } - if !this.I64.Equal(that1.I64) { - return false - } - if !this.U64.Equal(that1.U64) { - return false - } - if !this.I32.Equal(that1.I32) { - return false - } - if !this.U32.Equal(that1.U32) { - return false - } - if !this.Bool.Equal(that1.Bool) { - return false - } - if !this.Str.Equal(that1.Str) { - return false - } - if !this.Bytes.Equal(that1.Bytes) { - return false - } - return true -} -func (this *ProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ProtoTypes) - if !ok { - that2, ok := that.(ProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") - } - if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) - } - if !this.NullableDuration.Equal(that1.NullableDuration) { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) - } - if !this.Timestamp.Equal(&that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - if !this.Duration.Equal(&that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *ProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ProtoTypes) - if !ok { - that2, ok := that.(ProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { - return false - } - if !this.NullableDuration.Equal(that1.NullableDuration) { - return false - } - if !this.Timestamp.Equal(&that1.Timestamp) { - return false - } - if !this.Duration.Equal(&that1.Duration) { - return false - } - return true -} -func (this *StdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*StdTypes) - if !ok { - that2, ok := that.(StdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *StdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *StdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") - } - if that1.NullableTimestamp == nil { - if this.NullableTimestamp != nil { - return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") - } - } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) - } - if this.NullableDuration != nil && that1.NullableDuration != nil { - if *this.NullableDuration != *that1.NullableDuration { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) - } - } else if this.NullableDuration != nil { - return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") - } else if that1.NullableDuration != nil { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) - } - if !this.Timestamp.Equal(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - if this.Duration != that1.Duration { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *StdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*StdTypes) - if !ok { - that2, ok := that.(StdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.NullableTimestamp == nil { - if this.NullableTimestamp != nil { - return false - } - } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { - return false - } - if this.NullableDuration != nil && that1.NullableDuration != nil { - if *this.NullableDuration != *that1.NullableDuration { - return false - } - } else if this.NullableDuration != nil { - return false - } else if that1.NullableDuration != nil { - return false - } - if !this.Timestamp.Equal(that1.Timestamp) { - return false - } - if this.Duration != that1.Duration { - return false - } - return true -} -func (this *RepProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*RepProtoTypes) - if !ok { - that2, ok := that.(RepProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *RepProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { - return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) - } - for i := range this.NullableDurations { - if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { - return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { - return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) - } - } - if len(this.Durations) != len(that1.Durations) { - return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) - } - for i := range this.Durations { - if !this.Durations[i].Equal(&that1.Durations[i]) { - return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) - } - } - return nil -} -func (this *RepProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*RepProtoTypes) - if !ok { - that2, ok := that.(RepProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return false - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { - return false - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return false - } - for i := range this.NullableDurations { - if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { - return false - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return false - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { - return false - } - } - if len(this.Durations) != len(that1.Durations) { - return false - } - for i := range this.Durations { - if !this.Durations[i].Equal(&that1.Durations[i]) { - return false - } - } - return true -} -func (this *RepStdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*RepStdTypes) - if !ok { - that2, ok := that.(RepStdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *RepStdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { - return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) - } - for i := range this.NullableDurations { - if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(that1.Timestamps[i]) { - return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) - } - } - if len(this.Durations) != len(that1.Durations) { - return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) - } - for i := range this.Durations { - if this.Durations[i] != that1.Durations[i] { - return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) - } - } - return nil -} -func (this *RepStdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*RepStdTypes) - if !ok { - that2, ok := that.(RepStdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return false - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { - return false - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return false - } - for i := range this.NullableDurations { - if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return false - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return false - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(that1.Timestamps[i]) { - return false - } - } - if len(this.Durations) != len(that1.Durations) { - return false - } - for i := range this.Durations { - if this.Durations[i] != that1.Durations[i] { - return false - } - } - return true -} -func (this *MapProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MapProtoTypes) - if !ok { - that2, ok := that.(MapProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MapProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { - return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) - } - for i := range this.Timestamp { - a := this.Timestamp[i] - b := that1.Timestamp[i] - if !(&a).Equal(&b) { - return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) - } - for i := range this.NullableDuration { - if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { - return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) - } - } - if len(this.Duration) != len(that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) - } - for i := range this.Duration { - a := this.Duration[i] - b := that1.Duration[i] - if !(&a).Equal(&b) { - return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) - } - } - return nil -} -func (this *MapProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MapProtoTypes) - if !ok { - that2, ok := that.(MapProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return false - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { - return false - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return false - } - for i := range this.Timestamp { - a := this.Timestamp[i] - b := that1.Timestamp[i] - if !(&a).Equal(&b) { - return false - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return false - } - for i := range this.NullableDuration { - if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { - return false - } - } - if len(this.Duration) != len(that1.Duration) { - return false - } - for i := range this.Duration { - a := this.Duration[i] - b := that1.Duration[i] - if !(&a).Equal(&b) { - return false - } - } - return true -} -func (this *MapStdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MapStdTypes) - if !ok { - that2, ok := that.(MapStdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MapStdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { - return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) - } - for i := range this.Timestamp { - if !this.Timestamp[i].Equal(that1.Timestamp[i]) { - return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) - } - for i := range this.NullableDuration { - if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) - } - } - if len(this.Duration) != len(that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) - } - for i := range this.Duration { - if this.Duration[i] != that1.Duration[i] { - return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) - } - } - return nil -} -func (this *MapStdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MapStdTypes) - if !ok { - that2, ok := that.(MapStdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return false - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { - return false - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return false - } - for i := range this.Timestamp { - if !this.Timestamp[i].Equal(that1.Timestamp[i]) { - return false - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return false - } - for i := range this.NullableDuration { - if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return false - } - } - if len(this.Duration) != len(that1.Duration) { - return false - } - for i := range this.Duration { - if this.Duration[i] != that1.Duration[i] { - return false - } - } - return true -} -func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofProtoTypes) - if !ok { - that2, ok := that.(OneofProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") - } - if that1.OneOfProtoTimes == nil { - if this.OneOfProtoTimes != nil { - return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") - } - } else if this.OneOfProtoTimes == nil { - return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") - } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { - return err - } - return nil -} -func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofProtoTypes_Timestamp) - if !ok { - that2, ok := that.(OneofProtoTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") - } - if !this.Timestamp.Equal(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - return nil -} -func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofProtoTypes_Duration) - if !ok { - that2, ok := that.(OneofProtoTypes_Duration) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") - } - if !this.Duration.Equal(that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *OneofProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofProtoTypes) - if !ok { - that2, ok := that.(OneofProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.OneOfProtoTimes == nil { - if this.OneOfProtoTimes != nil { - return false - } - } else if this.OneOfProtoTimes == nil { - return false - } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { - return false - } - return true -} -func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofProtoTypes_Timestamp) - if !ok { - that2, ok := that.(OneofProtoTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Timestamp.Equal(that1.Timestamp) { - return false - } - return true -} -func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofProtoTypes_Duration) - if !ok { - that2, ok := that.(OneofProtoTypes_Duration) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Duration.Equal(that1.Duration) { - return false - } - return true -} -func (this *OneofStdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofStdTypes) - if !ok { - that2, ok := that.(OneofStdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofStdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") - } - if that1.OneOfStdTimes == nil { - if this.OneOfStdTimes != nil { - return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") - } - } else if this.OneOfStdTimes == nil { - return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") - } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { - return err - } - return nil -} -func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofStdTypes_Timestamp) - if !ok { - that2, ok := that.(OneofStdTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") - } - if that1.Timestamp == nil { - if this.Timestamp != nil { - return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") - } - } else if !this.Timestamp.Equal(*that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - return nil -} -func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofStdTypes_Duration) - if !ok { - that2, ok := that.(OneofStdTypes_Duration) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofStdTypes_Duration") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") - } - if this.Duration != nil && that1.Duration != nil { - if *this.Duration != *that1.Duration { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) - } - } else if this.Duration != nil { - return fmt.Errorf("this.Duration == nil && that.Duration != nil") - } else if that1.Duration != nil { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *OneofStdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofStdTypes) - if !ok { - that2, ok := that.(OneofStdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.OneOfStdTimes == nil { - if this.OneOfStdTimes != nil { - return false - } - } else if this.OneOfStdTimes == nil { - return false - } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { - return false - } - return true -} -func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofStdTypes_Timestamp) - if !ok { - that2, ok := that.(OneofStdTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Timestamp == nil { - if this.Timestamp != nil { - return false - } - } else if !this.Timestamp.Equal(*that1.Timestamp) { - return false - } - return true -} -func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofStdTypes_Duration) - if !ok { - that2, ok := that.(OneofStdTypes_Duration) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Duration != nil && that1.Duration != nil { - if *this.Duration != *that1.Duration { - return false - } - } else if this.Duration != nil { - return false - } else if that1.Duration != nil { - return false - } - return true -} -func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { - this := &KnownTypes{} - if r.Intn(10) != 0 { - this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) - } - if r.Intn(10) != 0 { - this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - if r.Intn(10) != 0 { - this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) - } - if r.Intn(10) != 0 { - this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) - } - if r.Intn(10) != 0 { - this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) - } - if r.Intn(10) != 0 { - this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) - } - if r.Intn(10) != 0 { - this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) - } - if r.Intn(10) != 0 { - this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) - } - if r.Intn(10) != 0 { - this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) - } - if r.Intn(10) != 0 { - this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) - } - if r.Intn(10) != 0 { - this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { - this := &ProtoTypes{} - if r.Intn(10) != 0 { - this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - if r.Intn(10) != 0 { - this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) - } - v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) - this.Timestamp = *v1 - v2 := google_protobuf1.NewPopulatedDuration(r, easy) - this.Duration = *v2 - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { - this := &StdTypes{} - if r.Intn(10) != 0 { - this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - if r.Intn(10) != 0 { - this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - this.Timestamp = *v3 - v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - this.Duration = *v4 - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { - this := &RepProtoTypes{} - if r.Intn(10) != 0 { - v5 := r.Intn(5) - this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) - for i := 0; i < v5; i++ { - this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - } - if r.Intn(10) != 0 { - v6 := r.Intn(5) - this.NullableDurations = make([]*google_protobuf1.Duration, v6) - for i := 0; i < v6; i++ { - this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v7 := r.Intn(5) - this.Timestamps = make([]google_protobuf2.Timestamp, v7) - for i := 0; i < v7; i++ { - v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) - this.Timestamps[i] = *v8 - } - } - if r.Intn(10) != 0 { - v9 := r.Intn(5) - this.Durations = make([]google_protobuf1.Duration, v9) - for i := 0; i < v9; i++ { - v10 := google_protobuf1.NewPopulatedDuration(r, easy) - this.Durations[i] = *v10 - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { - this := &RepStdTypes{} - if r.Intn(10) != 0 { - v11 := r.Intn(5) - this.NullableTimestamps = make([]*time.Time, v11) - for i := 0; i < v11; i++ { - this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - } - if r.Intn(10) != 0 { - v12 := r.Intn(5) - this.NullableDurations = make([]*time.Duration, v12) - for i := 0; i < v12; i++ { - this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v13 := r.Intn(5) - this.Timestamps = make([]time.Time, v13) - for i := 0; i < v13; i++ { - v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - this.Timestamps[i] = *v14 - } - } - if r.Intn(10) != 0 { - v15 := r.Intn(5) - this.Durations = make([]time.Duration, v15) - for i := 0; i < v15; i++ { - v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - this.Durations[i] = *v16 - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { - this := &MapProtoTypes{} - if r.Intn(10) != 0 { - v17 := r.Intn(10) - this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) - for i := 0; i < v17; i++ { - this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - } - if r.Intn(10) != 0 { - v18 := r.Intn(10) - this.Timestamp = make(map[int32]google_protobuf2.Timestamp) - for i := 0; i < v18; i++ { - this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) - } - } - if r.Intn(10) != 0 { - v19 := r.Intn(10) - this.NullableDuration = make(map[int32]*google_protobuf1.Duration) - for i := 0; i < v19; i++ { - this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v20 := r.Intn(10) - this.Duration = make(map[int32]google_protobuf1.Duration) - for i := 0; i < v20; i++ { - this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { - this := &MapStdTypes{} - if r.Intn(10) != 0 { - v21 := r.Intn(10) - this.NullableTimestamp = make(map[int32]*time.Time) - for i := 0; i < v21; i++ { - this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - } - if r.Intn(10) != 0 { - v22 := r.Intn(10) - this.Timestamp = make(map[int32]time.Time) - for i := 0; i < v22; i++ { - this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - } - if r.Intn(10) != 0 { - v23 := r.Intn(10) - this.NullableDuration = make(map[int32]*time.Duration) - for i := 0; i < v23; i++ { - this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v24 := r.Intn(10) - this.Duration = make(map[int32]time.Duration) - for i := 0; i < v24; i++ { - this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { - this := &OneofProtoTypes{} - oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] - switch oneofNumber_OneOfProtoTimes { - case 1: - this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) - case 2: - this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { - this := &OneofProtoTypes_Timestamp{} - this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) - return this -} -func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { - this := &OneofProtoTypes_Duration{} - this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) - return this -} -func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { - this := &OneofStdTypes{} - oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] - switch oneofNumber_OneOfStdTimes { - case 1: - this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) - case 2: - this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { - this := &OneofStdTypes_Timestamp{} - this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - return this -} -func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { - this := &OneofStdTypes_Duration{} - this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - return this -} - -type randyTypes interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneTypes(r randyTypes) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringTypes(r randyTypes) string { - v25 := r.Intn(100) - tmps := make([]rune, v25) - for i := 0; i < v25; i++ { - tmps[i] = randUTF8RuneTypes(r) - } - return string(tmps) -} -func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - v26 := r.Int63() - if r.Intn(2) == 0 { - v26 *= -1 - } - dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) - case 1: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *KnownTypes) Size() (n int) { - var l int - _ = l - if m.Dur != nil { - l = m.Dur.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Ts != nil { - l = m.Ts.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Dbl != nil { - l = m.Dbl.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Flt != nil { - l = m.Flt.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.I64 != nil { - l = m.I64.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.U64 != nil { - l = m.U64.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.I32 != nil { - l = m.I32.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.U32 != nil { - l = m.U32.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Bool != nil { - l = m.Bool.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Str != nil { - l = m.Str.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Bytes != nil { - l = m.Bytes.Size() - n += 1 + l + sovTypes(uint64(l)) - } - return n -} - -func (m *ProtoTypes) Size() (n int) { - var l int - _ = l - if m.NullableTimestamp != nil { - l = m.NullableTimestamp.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.NullableDuration != nil { - l = m.NullableDuration.Size() - n += 1 + l + sovTypes(uint64(l)) - } - l = m.Timestamp.Size() - n += 1 + l + sovTypes(uint64(l)) - l = m.Duration.Size() - n += 1 + l + sovTypes(uint64(l)) - return n -} - -func (m *StdTypes) Size() (n int) { - var l int - _ = l - if m.NullableTimestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) - n += 1 + l + sovTypes(uint64(l)) - } - if m.NullableDuration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) - n += 1 + l + sovTypes(uint64(l)) - } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) - n += 1 + l + sovTypes(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) - n += 1 + l + sovTypes(uint64(l)) - return n -} - -func (m *RepProtoTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, e := range m.NullableTimestamps { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.NullableDurations) > 0 { - for _, e := range m.NullableDurations { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Timestamps) > 0 { - for _, e := range m.Timestamps { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Durations) > 0 { - for _, e := range m.Durations { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - return n -} - -func (m *RepStdTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, e := range m.NullableTimestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.NullableDurations) > 0 { - for _, e := range m.NullableDurations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Timestamps) > 0 { - for _, e := range m.Timestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(e) - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Durations) > 0 { - for _, e := range m.Durations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) - n += 1 + l + sovTypes(uint64(l)) - } - } - return n -} - -func (m *MapProtoTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k, v := range m.NullableTimestamp { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Timestamp) > 0 { - for k, v := range m.Timestamp { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.NullableDuration) > 0 { - for k, v := range m.NullableDuration { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Duration) > 0 { - for k, v := range m.Duration { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - return n -} - -func (m *MapStdTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k, v := range m.NullableTimestamp { - _ = k - _ = v - l = 0 - if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Timestamp) > 0 { - for k, v := range m.Timestamp { - _ = k - _ = v - l = github_com_gogo_protobuf_types.SizeOfStdTime(v) - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.NullableDuration) > 0 { - for k, v := range m.NullableDuration { - _ = k - _ = v - l = 0 - if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Duration) > 0 { - for k, v := range m.Duration { - _ = k - _ = v - l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - return n -} - -func (m *OneofProtoTypes) Size() (n int) { - var l int - _ = l - if m.OneOfProtoTimes != nil { - n += m.OneOfProtoTimes.Size() - } - return n -} - -func (m *OneofProtoTypes_Timestamp) Size() (n int) { - var l int - _ = l - if m.Timestamp != nil { - l = m.Timestamp.Size() - n += 1 + l + sovTypes(uint64(l)) - } - return n -} -func (m *OneofProtoTypes_Duration) Size() (n int) { - var l int - _ = l - if m.Duration != nil { - l = m.Duration.Size() - n += 1 + l + sovTypes(uint64(l)) - } - return n -} -func (m *OneofStdTypes) Size() (n int) { - var l int - _ = l - if m.OneOfStdTimes != nil { - n += m.OneOfStdTimes.Size() - } - return n -} - -func (m *OneofStdTypes_Timestamp) Size() (n int) { - var l int - _ = l - if m.Timestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) - n += 1 + l + sovTypes(uint64(l)) - } - return n -} -func (m *OneofStdTypes_Duration) Size() (n int) { - var l int - _ = l - if m.Duration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) - n += 1 + l + sovTypes(uint64(l)) - } - return n -} - -func sovTypes(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozTypes(x uint64) (n int) { - return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *KnownTypes) 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 *KnownTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Dur != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Dur.Size())) - n1, err := m.Dur.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - } - if m.Ts != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Ts.Size())) - n2, err := m.Ts.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - } - if m.Dbl != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Dbl.Size())) - n3, err := m.Dbl.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - } - if m.Flt != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Flt.Size())) - n4, err := m.Flt.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - } - if m.I64 != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.I64.Size())) - n5, err := m.I64.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - if m.U64 != nil { - dAtA[i] = 0x32 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.U64.Size())) - n6, err := m.U64.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 - } - if m.I32 != nil { - dAtA[i] = 0x3a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.I32.Size())) - n7, err := m.I32.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - } - if m.U32 != nil { - dAtA[i] = 0x42 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.U32.Size())) - n8, err := m.U32.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n8 - } - if m.Bool != nil { - dAtA[i] = 0x4a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Bool.Size())) - n9, err := m.Bool.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n9 - } - if m.Str != nil { - dAtA[i] = 0x52 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Str.Size())) - n10, err := m.Str.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n10 - } - if m.Bytes != nil { - dAtA[i] = 0x5a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Bytes.Size())) - n11, err := m.Bytes.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n11 - } - return i, nil -} - -func (m *ProtoTypes) 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 *ProtoTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NullableTimestamp != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.NullableTimestamp.Size())) - n12, err := m.NullableTimestamp.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n12 - } - if m.NullableDuration != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.NullableDuration.Size())) - n13, err := m.NullableDuration.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n13 - } - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) - n14, err := m.Timestamp.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n14 - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) - n15, err := m.Duration.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n15 - return i, nil -} - -func (m *StdTypes) 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 *StdTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.NullableTimestamp != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp))) - n16, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.NullableTimestamp, dAtA[i:]) - if err != nil { - return 0, err - } - i += n16 - } - if m.NullableDuration != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration))) - n17, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.NullableDuration, dAtA[i:]) - if err != nil { - return 0, err - } - i += n17 - } - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp))) - n18, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i:]) - if err != nil { - return 0, err - } - i += n18 - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration))) - n19, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Duration, dAtA[i:]) - if err != nil { - return 0, err - } - i += n19 - return i, nil -} - -func (m *RepProtoTypes) 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 *RepProtoTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, msg := range m.NullableTimestamps { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.NullableDurations) > 0 { - for _, msg := range m.NullableDurations { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Timestamps) > 0 { - for _, msg := range m.Timestamps { - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Durations) > 0 { - for _, msg := range m.Durations { - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *RepStdTypes) 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 *RepStdTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, msg := range m.NullableTimestamps { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*msg))) - n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*msg, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.NullableDurations) > 0 { - for _, msg := range m.NullableDurations { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*msg))) - n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*msg, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Timestamps) > 0 { - for _, msg := range m.Timestamps { - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(msg))) - n, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(msg, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Durations) > 0 { - for _, msg := range m.Durations { - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(msg))) - n, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(msg, dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *MapProtoTypes) 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 *MapProtoTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k := range m.NullableTimestamp { - dAtA[i] = 0xa - i++ - v := m.NullableTimestamp[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(v.Size())) - n20, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n20 - } - } - } - if len(m.Timestamp) > 0 { - for k := range m.Timestamp { - dAtA[i] = 0x12 - i++ - v := m.Timestamp[k] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) - n21, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n21 - } - } - if len(m.NullableDuration) > 0 { - for k := range m.NullableDuration { - dAtA[i] = 0x1a - i++ - v := m.NullableDuration[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(v.Size())) - n22, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n22 - } - } - } - if len(m.Duration) > 0 { - for k := range m.Duration { - dAtA[i] = 0x22 - i++ - v := m.Duration[k] - msgSize := 0 - if (&v) != nil { - msgSize = (&v).Size() - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64((&v).Size())) - n23, err := (&v).MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n23 - } - } - return i, nil -} - -func (m *MapStdTypes) 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 *MapStdTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k := range m.NullableTimestamp { - dAtA[i] = 0xa - i++ - v := m.NullableTimestamp[k] - msgSize := 0 - if v != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*v) - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*v))) - n24, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*v, dAtA[i:]) - if err != nil { - return 0, err - } - i += n24 - } - } - } - if len(m.Timestamp) > 0 { - for k := range m.Timestamp { - dAtA[i] = 0x12 - i++ - v := m.Timestamp[k] - msgSize := 0 - if (&v) != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)) - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*(&v)))) - n25, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*(&v), dAtA[i:]) - if err != nil { - return 0, err - } - i += n25 - } - } - if len(m.NullableDuration) > 0 { - for k := range m.NullableDuration { - dAtA[i] = 0x1a - i++ - v := m.NullableDuration[k] - msgSize := 0 - if v != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*v))) - n26, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*v, dAtA[i:]) - if err != nil { - return 0, err - } - i += n26 - } - } - } - if len(m.Duration) > 0 { - for k := range m.Duration { - dAtA[i] = 0x22 - i++ - v := m.Duration[k] - msgSize := 0 - if (&v) != nil { - msgSize = github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)) - msgSize += 1 + sovTypes(uint64(msgSize)) - } - mapSize := 1 + sovTypes(uint64(k)) + msgSize - i = encodeVarintTypes(dAtA, i, uint64(mapSize)) - dAtA[i] = 0x8 - i++ - i = encodeVarintTypes(dAtA, i, uint64(k)) - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*(&v)))) - n27, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*(&v), dAtA[i:]) - if err != nil { - return 0, err - } - i += n27 - } - } - return i, nil -} - -func (m *OneofProtoTypes) 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 *OneofProtoTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.OneOfProtoTimes != nil { - nn28, err := m.OneOfProtoTimes.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn28 - } - return i, nil -} - -func (m *OneofProtoTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Timestamp != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) - n29, err := m.Timestamp.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n29 - } - return i, nil -} -func (m *OneofProtoTypes_Duration) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Duration != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Duration.Size())) - n30, err := m.Duration.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n30 - } - return i, nil -} -func (m *OneofStdTypes) 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 *OneofStdTypes) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.OneOfStdTimes != nil { - nn31, err := m.OneOfStdTimes.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += nn31 - } - return i, nil -} - -func (m *OneofStdTypes_Timestamp) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Timestamp != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp))) - n32, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Timestamp, dAtA[i:]) - if err != nil { - return 0, err - } - i += n32 - } - return i, nil -} -func (m *OneofStdTypes_Duration) MarshalTo(dAtA []byte) (int, error) { - i := 0 - if m.Duration != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintTypes(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration))) - n33, err := github_com_gogo_protobuf_types.StdDurationMarshalTo(*m.Duration, dAtA[i:]) - if err != nil { - return 0, err - } - i += n33 - } - return i, nil -} -func encodeFixed64Types(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 encodeFixed32Types(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 encodeVarintTypes(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 init() { proto.RegisterFile("combos/unsafemarshaler/types.proto", fileDescriptorTypes) } - -var fileDescriptorTypes = []byte{ - // 931 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcd, 0x8e, 0xdb, 0x54, - 0x18, 0x1d, 0xff, 0xa4, 0xcc, 0x7c, 0x51, 0x68, 0x6b, 0x09, 0x64, 0x02, 0x72, 0x06, 0xb3, 0x19, - 0x5a, 0xd5, 0x81, 0x24, 0x0a, 0x68, 0x50, 0xa1, 0x58, 0xd3, 0x76, 0x4a, 0x35, 0x9d, 0x2a, 0x2d, - 0x23, 0x40, 0x02, 0x61, 0x37, 0x4e, 0x1a, 0xe1, 0xf8, 0x46, 0xf6, 0x35, 0x55, 0x76, 0x3c, 0x02, - 0x4b, 0x10, 0x1b, 0xba, 0x43, 0x82, 0x3d, 0x2c, 0xd9, 0x20, 0x75, 0x07, 0x4f, 0x00, 0x6d, 0xd8, - 0xf0, 0x08, 0x5d, 0xa2, 0x7b, 0x7d, 0xfd, 0x17, 0x5f, 0x3b, 0x24, 0xd2, 0x88, 0x4d, 0x77, 0xe3, - 0xf1, 0x39, 0xc7, 0xc7, 0xc7, 0xe7, 0xfb, 0x6e, 0x40, 0xbf, 0x87, 0xa6, 0x36, 0x0a, 0xda, 0xa1, - 0x17, 0x58, 0x23, 0x67, 0x6a, 0xf9, 0xc1, 0x7d, 0xcb, 0x75, 0xfc, 0x36, 0x9e, 0xcf, 0x9c, 0xc0, - 0x98, 0xf9, 0x08, 0x23, 0xa5, 0x46, 0x2f, 0x9a, 0x97, 0xc6, 0x13, 0x7c, 0x3f, 0xb4, 0x8d, 0x7b, - 0x68, 0xda, 0x1e, 0xa3, 0x31, 0x6a, 0xd3, 0xbb, 0x76, 0x38, 0xa2, 0x57, 0xf4, 0x82, 0xfe, 0x15, - 0xb1, 0x9a, 0xda, 0x18, 0xa1, 0xb1, 0xeb, 0xa4, 0xa8, 0x61, 0xe8, 0x5b, 0x78, 0x82, 0x3c, 0x76, - 0xbf, 0xb5, 0x7c, 0x1f, 0x4f, 0xa6, 0x4e, 0x80, 0xad, 0xe9, 0xac, 0x4c, 0xe0, 0x81, 0x6f, 0xcd, - 0x66, 0x8e, 0xcf, 0x6c, 0xe9, 0xdf, 0xc9, 0x00, 0x37, 0x3d, 0xf4, 0xc0, 0xbb, 0x4b, 0xec, 0x29, - 0x17, 0x41, 0x1a, 0x86, 0xbe, 0x2a, 0xec, 0x0a, 0x7b, 0xf5, 0xce, 0x4b, 0x46, 0x44, 0x36, 0x62, - 0xb2, 0x71, 0xc0, 0x9e, 0x3e, 0x20, 0x28, 0xe5, 0x02, 0x88, 0x38, 0x50, 0x45, 0x8a, 0x6d, 0x16, - 0xb0, 0x77, 0x63, 0x27, 0x03, 0x11, 0x07, 0x8a, 0x01, 0xd2, 0xd0, 0x76, 0x55, 0x89, 0x82, 0x5f, - 0x29, 0x0a, 0xa3, 0xd0, 0x76, 0x9d, 0x13, 0xcb, 0x0d, 0x9d, 0x01, 0x01, 0x2a, 0x97, 0x40, 0x1a, - 0xb9, 0x58, 0x95, 0x29, 0xfe, 0xe5, 0x02, 0xfe, 0x9a, 0x8b, 0x2c, 0xcc, 0xe0, 0x23, 0x17, 0x13, - 0xf8, 0xa4, 0xdf, 0x53, 0x6b, 0x25, 0xf0, 0x1b, 0x1e, 0xee, 0xf7, 0x18, 0x7c, 0xd2, 0xef, 0x11, - 0x37, 0x61, 0xbf, 0xa7, 0x9e, 0x29, 0x71, 0xf3, 0x61, 0x16, 0x1f, 0xf6, 0x7b, 0x54, 0xbe, 0xdb, - 0x51, 0x9f, 0x2b, 0x97, 0xef, 0x76, 0x62, 0xf9, 0x6e, 0x87, 0xca, 0x77, 0x3b, 0xea, 0x76, 0x85, - 0x7c, 0x82, 0x0f, 0x29, 0x5e, 0xb6, 0x11, 0x72, 0xd5, 0x9d, 0x92, 0x28, 0x4d, 0x84, 0xdc, 0x08, - 0x4e, 0x71, 0x44, 0x3f, 0xc0, 0xbe, 0x0a, 0x25, 0xfa, 0x77, 0xb0, 0x3f, 0xf1, 0xc6, 0x4c, 0x3f, - 0xc0, 0xbe, 0xf2, 0x26, 0xd4, 0xec, 0x39, 0x76, 0x02, 0xb5, 0x5e, 0xf2, 0x02, 0x26, 0xb9, 0x1b, - 0x11, 0x22, 0xe4, 0xbe, 0xfc, 0xcf, 0xc3, 0x96, 0xa0, 0x7f, 0x2f, 0x02, 0xdc, 0x26, 0xa0, 0xa8, - 0x1d, 0x87, 0x70, 0xde, 0x0b, 0x5d, 0xd7, 0xb2, 0x5d, 0x27, 0xf9, 0xba, 0xac, 0x2b, 0x55, 0xdf, - 0xbf, 0x48, 0x52, 0xae, 0xc2, 0xb9, 0xf8, 0x9f, 0x71, 0xa7, 0x58, 0x91, 0x2a, 0x4a, 0x57, 0xa0, - 0x28, 0xef, 0xc2, 0x4e, 0x52, 0x78, 0xd6, 0xad, 0x0a, 0x23, 0xa6, 0xfc, 0xe8, 0xcf, 0xd6, 0xd6, - 0x20, 0xa5, 0x28, 0xef, 0xc0, 0x76, 0x3c, 0x50, 0xac, 0x6a, 0xe5, 0x8f, 0x67, 0xec, 0x84, 0xc0, - 0x22, 0xfa, 0x49, 0x84, 0xed, 0x3b, 0x78, 0x18, 0x05, 0x74, 0x6b, 0xa3, 0x80, 0x4c, 0xf9, 0xeb, - 0xbf, 0x5a, 0x02, 0x2f, 0xa6, 0x9b, 0x1b, 0xc4, 0x64, 0xca, 0xdf, 0x10, 0xb5, 0x62, 0x58, 0xe6, - 0x7a, 0x61, 0x6d, 0x93, 0xd7, 0xa5, 0xc6, 0x32, 0x81, 0xbd, 0xb7, 0x4e, 0x60, 0x54, 0x81, 0x9a, - 0x49, 0x48, 0xfa, 0x8f, 0x22, 0x34, 0x06, 0xce, 0x2c, 0x53, 0xaa, 0x0f, 0x40, 0x29, 0xbc, 0x78, - 0xa0, 0x0a, 0xbb, 0xd2, 0x8a, 0x56, 0x71, 0x58, 0xca, 0xf5, 0x34, 0xff, 0xd8, 0x05, 0x59, 0x50, - 0x52, 0x75, 0xaf, 0x8a, 0x1c, 0xe5, 0x0a, 0x00, 0x4e, 0xcd, 0x48, 0xab, 0xcc, 0xb0, 0x6e, 0x64, - 0x38, 0xca, 0x65, 0xd8, 0x19, 0x26, 0x16, 0xe4, 0x15, 0x16, 0xe2, 0x66, 0x26, 0x0c, 0x56, 0xae, - 0x9f, 0x45, 0xa8, 0x0f, 0x9c, 0x59, 0xd2, 0xaf, 0xdb, 0x9b, 0x65, 0xc5, 0x0a, 0xc6, 0x4b, 0xec, - 0x68, 0x93, 0xc4, 0x58, 0xc5, 0x38, 0xb9, 0x1d, 0xac, 0x99, 0x5b, 0x5a, 0xb2, 0x6c, 0x76, 0xef, - 0xaf, 0x95, 0x5d, 0x5a, 0xb3, 0x94, 0xa5, 0xff, 0x56, 0x83, 0xc6, 0x91, 0x95, 0xed, 0xd9, 0xc7, - 0xfc, 0xd9, 0x24, 0xe2, 0x17, 0x8d, 0xe8, 0xa4, 0xce, 0x11, 0x8c, 0x5b, 0xcb, 0xe8, 0xab, 0x1e, - 0xf6, 0xe7, 0xbc, 0x31, 0xbd, 0x9e, 0x9d, 0xac, 0x28, 0xbc, 0xd7, 0xb8, 0x92, 0x79, 0xa9, 0xe2, - 0x3e, 0x3a, 0xe1, 0xcc, 0x7b, 0x14, 0xe2, 0x85, 0x4a, 0x8b, 0x31, 0x38, 0x72, 0x58, 0x1c, 0xfd, - 0x83, 0xdc, 0xd8, 0x12, 0x3d, 0x9d, 0xab, 0x97, 0xd3, 0x59, 0x5e, 0x78, 0xcd, 0xcf, 0xe1, 0x45, - 0x7e, 0x26, 0xca, 0x39, 0x90, 0xbe, 0x70, 0xe6, 0x74, 0xd3, 0xd5, 0x06, 0xe4, 0x4f, 0xe5, 0x0d, - 0xa8, 0x7d, 0x49, 0xce, 0x93, 0xff, 0xf0, 0xf3, 0x20, 0x02, 0xee, 0x8b, 0x6f, 0x0b, 0xcd, 0x8f, - 0xe0, 0xf9, 0x53, 0x52, 0xfe, 0x0c, 0x5e, 0xe0, 0x86, 0xc5, 0x79, 0x40, 0x3b, 0xff, 0x80, 0x8a, - 0xc5, 0x91, 0xd1, 0x3f, 0x81, 0xc6, 0x69, 0xe8, 0xea, 0xbf, 0xd7, 0xa0, 0x7e, 0x64, 0xa5, 0x1b, - 0xe0, 0xd3, 0xf2, 0x16, 0xbf, 0x9e, 0x7e, 0xd2, 0x18, 0x5e, 0xd2, 0xe1, 0xf2, 0x03, 0xe7, 0x46, - 0xb1, 0xc9, 0xaf, 0x72, 0x64, 0x97, 0xe4, 0xb8, 0x47, 0xc5, 0x27, 0xa5, 0x5d, 0xde, 0xab, 0x30, - 0xba, 0xd4, 0xc0, 0x92, 0xa3, 0xec, 0x5a, 0xa1, 0xcf, 0xbb, 0x1c, 0xcd, 0xbc, 0x16, 0xe7, 0x34, - 0x7a, 0xd6, 0xe8, 0xff, 0xa1, 0xd1, 0xdf, 0x0a, 0x70, 0xf6, 0xd8, 0x73, 0xd0, 0x28, 0xb3, 0x9b, - 0xf7, 0xb3, 0xb5, 0x5b, 0xf9, 0x7b, 0xe9, 0x30, 0xb7, 0x33, 0xdf, 0xca, 0x74, 0x61, 0x95, 0x8f, - 0xc3, 0xcc, 0x3a, 0x33, 0xcf, 0x53, 0x1f, 0xc7, 0xcc, 0x07, 0xd1, 0xd3, 0x1f, 0x0a, 0xd0, 0xa0, - 0xde, 0x92, 0x79, 0xbb, 0xb2, 0x96, 0xb3, 0x68, 0xb0, 0xf2, 0xfe, 0x2e, 0xaf, 0xe1, 0x2f, 0x2a, - 0x7c, 0xce, 0xe5, 0x59, 0xea, 0xe8, 0x98, 0x3a, 0x22, 0x9a, 0xe6, 0xde, 0xe3, 0x27, 0x9a, 0xf0, - 0xf4, 0x89, 0x26, 0xfc, 0xb0, 0xd0, 0x84, 0x5f, 0x16, 0x9a, 0xf0, 0xeb, 0x42, 0x13, 0x1e, 0x2d, - 0xb4, 0xad, 0x3f, 0x16, 0xda, 0xd6, 0xe3, 0x85, 0x26, 0x3c, 0x5d, 0x68, 0xc2, 0x57, 0x7f, 0x6b, - 0x5b, 0xf6, 0x19, 0xaa, 0xdf, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0x21, 0xfd, 0x82, 0xd3, 0x9f, - 0x0e, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.proto deleted file mode 100644 index a15da9733..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types.proto +++ /dev/null @@ -1,131 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2016, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package types; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -//import "google/protobuf/any.proto"; -import "google/protobuf/duration.proto"; -//import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.unsafe_marshaler_all) = true; -option (gogoproto.unsafe_unmarshaler_all) = false; - -message KnownTypes { - option (gogoproto.compare) = true; - google.protobuf.Duration dur = 1; - google.protobuf.Timestamp ts = 2; - google.protobuf.DoubleValue dbl = 3; - google.protobuf.FloatValue flt = 4; - google.protobuf.Int64Value i64 = 5; - google.protobuf.UInt64Value u64 = 6; - google.protobuf.Int32Value i32 = 7; - google.protobuf.UInt32Value u32 = 8; - google.protobuf.BoolValue bool = 9; - google.protobuf.StringValue str = 10; - google.protobuf.BytesValue bytes = 11; - - // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed - // google.protobuf.Struct st = 12; - // google.protobuf.Any an = 14; -} - -message ProtoTypes { - // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare - option (gogoproto.compare) = true; - google.protobuf.Timestamp nullableTimestamp = 1; - google.protobuf.Duration nullableDuration = 2; - google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; - google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; -} - -message StdTypes { - google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; - google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; - google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; -} - -message RepProtoTypes { - option (gogoproto.compare) = true; - repeated google.protobuf.Timestamp nullableTimestamps = 1; - repeated google.protobuf.Duration nullableDurations = 2; - repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; - repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; -} - -message RepStdTypes { - repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; - repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; - repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; -} - -message MapProtoTypes { - map nullableTimestamp = 1; - map timestamp = 2 [(gogoproto.nullable) = false]; - - map nullableDuration = 3; - map duration = 4 [(gogoproto.nullable) = false]; -} - -message MapStdTypes { - map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; - map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - - map nullableDuration = 3 [(gogoproto.stdduration) = true]; - map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; -} - -message OneofProtoTypes { - oneof OneOfProtoTimes { - google.protobuf.Timestamp timestamp = 1; - google.protobuf.Duration duration = 2; - } -} - -message OneofStdTypes { - oneof OneOfStdTimes { - google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; - google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; - } -} - diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types_test.go deleted file mode 100644 index 7d24f58e6..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/types_test.go +++ /dev/null @@ -1,242 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2016, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package types - -import ( - math_rand "math/rand" - "testing" - "time" - - "github.com/gogo/protobuf/jsonpb" - "github.com/gogo/protobuf/proto" -) - -func TestFullCircleProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &StdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &ProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &StdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &ProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestFullCircleRepProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedRepProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &RepStdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &RepProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleRepProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedRepProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &RepStdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &RepProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestFullCircleMapProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedMapProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &MapStdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &MapProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleMapProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedMapProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &MapStdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &MapProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestFullCircleOneofProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedOneofProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &OneofStdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &OneofProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleOneofProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedOneofProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &OneofStdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &OneofProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/typespb_test.go deleted file mode 100644 index 00858d00c..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafemarshaler/typespb_test.go +++ /dev/null @@ -1,2107 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafemarshaler/types.proto -// DO NOT EDIT! - -/* -Package types is a generated protocol buffer package. - -It is generated from these files: - combos/unsafemarshaler/types.proto - -It has these top-level messages: - KnownTypes - ProtoTypes - StdTypes - RepProtoTypes - RepStdTypes - MapProtoTypes - MapStdTypes - OneofProtoTypes - OneofStdTypes -*/ -package types - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import _ "github.com/gogo/protobuf/types" -import _ "github.com/gogo/protobuf/types" -import _ "github.com/gogo/protobuf/types" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestKnownTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestKnownTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkKnownTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*KnownTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedKnownTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &KnownTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestProtoTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestStdTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*StdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &StdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestRepProtoTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedRepProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &RepProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestRepStdTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepStdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedRepStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &RepStdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMapProtoTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMapProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MapProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestMapStdTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapStdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMapStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MapStdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestOneofProtoTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOneofProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OneofProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestOneofStdTypesMarshalTo(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, false) - size := p.Size() - dAtA := make([]byte, size) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - _, err := p.MarshalTo(dAtA) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofStdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOneofStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OneofStdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestKnownTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &KnownTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &StdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestRepProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestRepStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMapProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMapStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOneofProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOneofStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestKnownTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestKnownTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestKnownTypesCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedKnownTypes(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestProtoTypesCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedProtoTypes(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestRepProtoTypesCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedRepProtoTypes(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestKnownTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestRepProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestRepStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMapProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMapStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOneofProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOneofStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestKnownTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkKnownTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*KnownTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedKnownTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*StdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkRepProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedRepProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkRepStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepStdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedRepStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMapProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMapProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMapStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapStdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMapStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOneofProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOneofProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOneofStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofStdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOneofStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.pb.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.pb.go deleted file mode 100644 index 76a359e90..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.pb.go +++ /dev/null @@ -1,5164 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/types.proto -// DO NOT EDIT! - -/* - Package types is a generated protocol buffer package. - - It is generated from these files: - combos/unsafeunmarshaler/types.proto - - It has these top-level messages: - KnownTypes - ProtoTypes - StdTypes - RepProtoTypes - RepStdTypes - MapProtoTypes - MapStdTypes - OneofProtoTypes - OneofStdTypes -*/ -package types - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import google_protobuf1 "github.com/gogo/protobuf/types" -import google_protobuf2 "github.com/gogo/protobuf/types" -import google_protobuf3 "github.com/gogo/protobuf/types" - -import time "time" -import github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf -var _ = time.Kitchen - -// 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 - -type KnownTypes struct { - Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` - Ts *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` - Dbl *google_protobuf3.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` - Flt *google_protobuf3.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` - I64 *google_protobuf3.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` - U64 *google_protobuf3.UInt64Value `protobuf:"bytes,6,opt,name=u64" json:"u64,omitempty"` - I32 *google_protobuf3.Int32Value `protobuf:"bytes,7,opt,name=i32" json:"i32,omitempty"` - U32 *google_protobuf3.UInt32Value `protobuf:"bytes,8,opt,name=u32" json:"u32,omitempty"` - Bool *google_protobuf3.BoolValue `protobuf:"bytes,9,opt,name=bool" json:"bool,omitempty"` - Str *google_protobuf3.StringValue `protobuf:"bytes,10,opt,name=str" json:"str,omitempty"` - Bytes *google_protobuf3.BytesValue `protobuf:"bytes,11,opt,name=bytes" json:"bytes,omitempty"` -} - -func (m *KnownTypes) Reset() { *m = KnownTypes{} } -func (m *KnownTypes) String() string { return proto.CompactTextString(m) } -func (*KnownTypes) ProtoMessage() {} -func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } - -func (m *KnownTypes) GetDur() *google_protobuf1.Duration { - if m != nil { - return m.Dur - } - return nil -} - -func (m *KnownTypes) GetTs() *google_protobuf2.Timestamp { - if m != nil { - return m.Ts - } - return nil -} - -func (m *KnownTypes) GetDbl() *google_protobuf3.DoubleValue { - if m != nil { - return m.Dbl - } - return nil -} - -func (m *KnownTypes) GetFlt() *google_protobuf3.FloatValue { - if m != nil { - return m.Flt - } - return nil -} - -func (m *KnownTypes) GetI64() *google_protobuf3.Int64Value { - if m != nil { - return m.I64 - } - return nil -} - -func (m *KnownTypes) GetU64() *google_protobuf3.UInt64Value { - if m != nil { - return m.U64 - } - return nil -} - -func (m *KnownTypes) GetI32() *google_protobuf3.Int32Value { - if m != nil { - return m.I32 - } - return nil -} - -func (m *KnownTypes) GetU32() *google_protobuf3.UInt32Value { - if m != nil { - return m.U32 - } - return nil -} - -func (m *KnownTypes) GetBool() *google_protobuf3.BoolValue { - if m != nil { - return m.Bool - } - return nil -} - -func (m *KnownTypes) GetStr() *google_protobuf3.StringValue { - if m != nil { - return m.Str - } - return nil -} - -func (m *KnownTypes) GetBytes() *google_protobuf3.BytesValue { - if m != nil { - return m.Bytes - } - return nil -} - -type ProtoTypes struct { - NullableTimestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=nullableTimestamp" json:"nullableTimestamp,omitempty"` - NullableDuration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=nullableDuration" json:"nullableDuration,omitempty"` - Timestamp google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp"` - Duration google_protobuf1.Duration `protobuf:"bytes,4,opt,name=duration" json:"duration"` -} - -func (m *ProtoTypes) Reset() { *m = ProtoTypes{} } -func (m *ProtoTypes) String() string { return proto.CompactTextString(m) } -func (*ProtoTypes) ProtoMessage() {} -func (*ProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } - -func (m *ProtoTypes) GetNullableTimestamp() *google_protobuf2.Timestamp { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *ProtoTypes) GetNullableDuration() *google_protobuf1.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *ProtoTypes) GetTimestamp() google_protobuf2.Timestamp { - if m != nil { - return m.Timestamp - } - return google_protobuf2.Timestamp{} -} - -func (m *ProtoTypes) GetDuration() google_protobuf1.Duration { - if m != nil { - return m.Duration - } - return google_protobuf1.Duration{} -} - -type StdTypes struct { - NullableTimestamp *time.Time `protobuf:"bytes,1,opt,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty"` - NullableDuration *time.Duration `protobuf:"bytes,2,opt,name=nullableDuration,stdduration" json:"nullableDuration,omitempty"` - Timestamp time.Time `protobuf:"bytes,3,opt,name=timestamp,stdtime" json:"timestamp"` - Duration time.Duration `protobuf:"bytes,4,opt,name=duration,stdduration" json:"duration"` -} - -func (m *StdTypes) Reset() { *m = StdTypes{} } -func (m *StdTypes) String() string { return proto.CompactTextString(m) } -func (*StdTypes) ProtoMessage() {} -func (*StdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } - -func (m *StdTypes) GetNullableTimestamp() *time.Time { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *StdTypes) GetNullableDuration() *time.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *StdTypes) GetTimestamp() time.Time { - if m != nil { - return m.Timestamp - } - return time.Time{} -} - -func (m *StdTypes) GetDuration() time.Duration { - if m != nil { - return m.Duration - } - return 0 -} - -type RepProtoTypes struct { - NullableTimestamps []*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamps" json:"nullableTimestamps,omitempty"` - NullableDurations []*google_protobuf1.Duration `protobuf:"bytes,2,rep,name=nullableDurations" json:"nullableDurations,omitempty"` - Timestamps []google_protobuf2.Timestamp `protobuf:"bytes,3,rep,name=timestamps" json:"timestamps"` - Durations []google_protobuf1.Duration `protobuf:"bytes,4,rep,name=durations" json:"durations"` -} - -func (m *RepProtoTypes) Reset() { *m = RepProtoTypes{} } -func (m *RepProtoTypes) String() string { return proto.CompactTextString(m) } -func (*RepProtoTypes) ProtoMessage() {} -func (*RepProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } - -func (m *RepProtoTypes) GetNullableTimestamps() []*google_protobuf2.Timestamp { - if m != nil { - return m.NullableTimestamps - } - return nil -} - -func (m *RepProtoTypes) GetNullableDurations() []*google_protobuf1.Duration { - if m != nil { - return m.NullableDurations - } - return nil -} - -func (m *RepProtoTypes) GetTimestamps() []google_protobuf2.Timestamp { - if m != nil { - return m.Timestamps - } - return nil -} - -func (m *RepProtoTypes) GetDurations() []google_protobuf1.Duration { - if m != nil { - return m.Durations - } - return nil -} - -type RepStdTypes struct { - NullableTimestamps []*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamps,stdtime" json:"nullableTimestamps,omitempty"` - NullableDurations []*time.Duration `protobuf:"bytes,2,rep,name=nullableDurations,stdduration" json:"nullableDurations,omitempty"` - Timestamps []time.Time `protobuf:"bytes,3,rep,name=timestamps,stdtime" json:"timestamps"` - Durations []time.Duration `protobuf:"bytes,4,rep,name=durations,stdduration" json:"durations"` -} - -func (m *RepStdTypes) Reset() { *m = RepStdTypes{} } -func (m *RepStdTypes) String() string { return proto.CompactTextString(m) } -func (*RepStdTypes) ProtoMessage() {} -func (*RepStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } - -func (m *RepStdTypes) GetNullableTimestamps() []*time.Time { - if m != nil { - return m.NullableTimestamps - } - return nil -} - -func (m *RepStdTypes) GetNullableDurations() []*time.Duration { - if m != nil { - return m.NullableDurations - } - return nil -} - -func (m *RepStdTypes) GetTimestamps() []time.Time { - if m != nil { - return m.Timestamps - } - return nil -} - -func (m *RepStdTypes) GetDurations() []time.Duration { - if m != nil { - return m.Durations - } - return nil -} - -type MapProtoTypes struct { - NullableTimestamp map[int32]*google_protobuf2.Timestamp `protobuf:"bytes,1,rep,name=nullableTimestamp" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Timestamp map[int32]google_protobuf2.Timestamp `protobuf:"bytes,2,rep,name=timestamp" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - NullableDuration map[int32]*google_protobuf1.Duration `protobuf:"bytes,3,rep,name=nullableDuration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Duration map[int32]google_protobuf1.Duration `protobuf:"bytes,4,rep,name=duration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *MapProtoTypes) Reset() { *m = MapProtoTypes{} } -func (m *MapProtoTypes) String() string { return proto.CompactTextString(m) } -func (*MapProtoTypes) ProtoMessage() {} -func (*MapProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } - -func (m *MapProtoTypes) GetNullableTimestamp() map[int32]*google_protobuf2.Timestamp { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *MapProtoTypes) GetTimestamp() map[int32]google_protobuf2.Timestamp { - if m != nil { - return m.Timestamp - } - return nil -} - -func (m *MapProtoTypes) GetNullableDuration() map[int32]*google_protobuf1.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *MapProtoTypes) GetDuration() map[int32]google_protobuf1.Duration { - if m != nil { - return m.Duration - } - return nil -} - -type MapStdTypes struct { - NullableTimestamp map[int32]*time.Time `protobuf:"bytes,1,rep,name=nullableTimestamp,stdtime" json:"nullableTimestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Timestamp map[int32]time.Time `protobuf:"bytes,2,rep,name=timestamp,stdtime" json:"timestamp" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - NullableDuration map[int32]*time.Duration `protobuf:"bytes,3,rep,name=nullableDuration,stdduration" json:"nullableDuration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - Duration map[int32]time.Duration `protobuf:"bytes,4,rep,name=duration,stdduration" json:"duration" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` -} - -func (m *MapStdTypes) Reset() { *m = MapStdTypes{} } -func (m *MapStdTypes) String() string { return proto.CompactTextString(m) } -func (*MapStdTypes) ProtoMessage() {} -func (*MapStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } - -func (m *MapStdTypes) GetNullableTimestamp() map[int32]*time.Time { - if m != nil { - return m.NullableTimestamp - } - return nil -} - -func (m *MapStdTypes) GetTimestamp() map[int32]time.Time { - if m != nil { - return m.Timestamp - } - return nil -} - -func (m *MapStdTypes) GetNullableDuration() map[int32]*time.Duration { - if m != nil { - return m.NullableDuration - } - return nil -} - -func (m *MapStdTypes) GetDuration() map[int32]time.Duration { - if m != nil { - return m.Duration - } - return nil -} - -type OneofProtoTypes struct { - // Types that are valid to be assigned to OneOfProtoTimes: - // *OneofProtoTypes_Timestamp - // *OneofProtoTypes_Duration - OneOfProtoTimes isOneofProtoTypes_OneOfProtoTimes `protobuf_oneof:"OneOfProtoTimes"` -} - -func (m *OneofProtoTypes) Reset() { *m = OneofProtoTypes{} } -func (m *OneofProtoTypes) String() string { return proto.CompactTextString(m) } -func (*OneofProtoTypes) ProtoMessage() {} -func (*OneofProtoTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } - -type isOneofProtoTypes_OneOfProtoTimes interface { - isOneofProtoTypes_OneOfProtoTimes() - Equal(interface{}) bool - VerboseEqual(interface{}) error - Size() int -} - -type OneofProtoTypes_Timestamp struct { - Timestamp *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=timestamp,oneof"` -} -type OneofProtoTypes_Duration struct { - Duration *google_protobuf1.Duration `protobuf:"bytes,2,opt,name=duration,oneof"` -} - -func (*OneofProtoTypes_Timestamp) isOneofProtoTypes_OneOfProtoTimes() {} -func (*OneofProtoTypes_Duration) isOneofProtoTypes_OneOfProtoTimes() {} - -func (m *OneofProtoTypes) GetOneOfProtoTimes() isOneofProtoTypes_OneOfProtoTimes { - if m != nil { - return m.OneOfProtoTimes - } - return nil -} - -func (m *OneofProtoTypes) GetTimestamp() *google_protobuf2.Timestamp { - if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Timestamp); ok { - return x.Timestamp - } - return nil -} - -func (m *OneofProtoTypes) GetDuration() *google_protobuf1.Duration { - if x, ok := m.GetOneOfProtoTimes().(*OneofProtoTypes_Duration); ok { - return x.Duration - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*OneofProtoTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _OneofProtoTypes_OneofMarshaler, _OneofProtoTypes_OneofUnmarshaler, _OneofProtoTypes_OneofSizer, []interface{}{ - (*OneofProtoTypes_Timestamp)(nil), - (*OneofProtoTypes_Duration)(nil), - } -} - -func _OneofProtoTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*OneofProtoTypes) - // OneOfProtoTimes - switch x := m.OneOfProtoTimes.(type) { - case *OneofProtoTypes_Timestamp: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Timestamp); err != nil { - return err - } - case *OneofProtoTypes_Duration: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Duration); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("OneofProtoTypes.OneOfProtoTimes has unexpected type %T", x) - } - return nil -} - -func _OneofProtoTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*OneofProtoTypes) - switch tag { - case 1: // OneOfProtoTimes.timestamp - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(google_protobuf2.Timestamp) - err := b.DecodeMessage(msg) - m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{msg} - return true, err - case 2: // OneOfProtoTimes.duration - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(google_protobuf1.Duration) - err := b.DecodeMessage(msg) - m.OneOfProtoTimes = &OneofProtoTypes_Duration{msg} - return true, err - default: - return false, nil - } -} - -func _OneofProtoTypes_OneofSizer(msg proto.Message) (n int) { - m := msg.(*OneofProtoTypes) - // OneOfProtoTimes - switch x := m.OneOfProtoTimes.(type) { - case *OneofProtoTypes_Timestamp: - s := proto.Size(x.Timestamp) - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *OneofProtoTypes_Duration: - s := proto.Size(x.Duration) - n += proto.SizeVarint(2<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -type OneofStdTypes struct { - // Types that are valid to be assigned to OneOfStdTimes: - // *OneofStdTypes_Timestamp - // *OneofStdTypes_Duration - OneOfStdTimes isOneofStdTypes_OneOfStdTimes `protobuf_oneof:"OneOfStdTimes"` -} - -func (m *OneofStdTypes) Reset() { *m = OneofStdTypes{} } -func (m *OneofStdTypes) String() string { return proto.CompactTextString(m) } -func (*OneofStdTypes) ProtoMessage() {} -func (*OneofStdTypes) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } - -type isOneofStdTypes_OneOfStdTimes interface { - isOneofStdTypes_OneOfStdTimes() - Equal(interface{}) bool - VerboseEqual(interface{}) error - Size() int -} - -type OneofStdTypes_Timestamp struct { - Timestamp *time.Time `protobuf:"bytes,1,opt,name=timestamp,oneof,stdtime"` -} -type OneofStdTypes_Duration struct { - Duration *time.Duration `protobuf:"bytes,2,opt,name=duration,oneof,stdduration"` -} - -func (*OneofStdTypes_Timestamp) isOneofStdTypes_OneOfStdTimes() {} -func (*OneofStdTypes_Duration) isOneofStdTypes_OneOfStdTimes() {} - -func (m *OneofStdTypes) GetOneOfStdTimes() isOneofStdTypes_OneOfStdTimes { - if m != nil { - return m.OneOfStdTimes - } - return nil -} - -func (m *OneofStdTypes) GetTimestamp() *time.Time { - if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Timestamp); ok { - return x.Timestamp - } - return nil -} - -func (m *OneofStdTypes) GetDuration() *time.Duration { - if x, ok := m.GetOneOfStdTimes().(*OneofStdTypes_Duration); ok { - return x.Duration - } - return nil -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*OneofStdTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _OneofStdTypes_OneofMarshaler, _OneofStdTypes_OneofUnmarshaler, _OneofStdTypes_OneofSizer, []interface{}{ - (*OneofStdTypes_Timestamp)(nil), - (*OneofStdTypes_Duration)(nil), - } -} - -func _OneofStdTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*OneofStdTypes) - // OneOfStdTimes - switch x := m.OneOfStdTimes.(type) { - case *OneofStdTypes_Timestamp: - _ = b.EncodeVarint(1<<3 | proto.WireBytes) - dAtA, err := github_com_gogo_protobuf_types.StdTimeMarshal(*x.Timestamp) - if err != nil { - return err - } - if err := b.EncodeRawBytes(dAtA); err != nil { - return err - } - case *OneofStdTypes_Duration: - _ = b.EncodeVarint(2<<3 | proto.WireBytes) - dAtA, err := github_com_gogo_protobuf_types.StdDurationMarshal(*x.Duration) - if err != nil { - return err - } - if err := b.EncodeRawBytes(dAtA); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("OneofStdTypes.OneOfStdTimes has unexpected type %T", x) - } - return nil -} - -func _OneofStdTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*OneofStdTypes) - switch tag { - case 1: // OneOfStdTimes.timestamp - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - if err != nil { - return true, err - } - c := new(time.Time) - if err2 := github_com_gogo_protobuf_types.StdTimeUnmarshal(c, x); err2 != nil { - return true, err - } - m.OneOfStdTimes = &OneofStdTypes_Timestamp{c} - return true, err - case 2: // OneOfStdTimes.duration - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeRawBytes(true) - if err != nil { - return true, err - } - c := new(time.Duration) - if err2 := github_com_gogo_protobuf_types.StdDurationUnmarshal(c, x); err2 != nil { - return true, err - } - m.OneOfStdTimes = &OneofStdTypes_Duration{c} - return true, err - default: - return false, nil - } -} - -func _OneofStdTypes_OneofSizer(msg proto.Message) (n int) { - m := msg.(*OneofStdTypes) - // OneOfStdTimes - switch x := m.OneOfStdTimes.(type) { - case *OneofStdTypes_Timestamp: - s := github_com_gogo_protobuf_types.SizeOfStdTime(*x.Timestamp) - n += proto.SizeVarint(1<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case *OneofStdTypes_Duration: - s := github_com_gogo_protobuf_types.SizeOfStdDuration(*x.Duration) - n += proto.SizeVarint(2<<3 | proto.WireBytes) - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - -func init() { - proto.RegisterType((*KnownTypes)(nil), "types.KnownTypes") - proto.RegisterType((*ProtoTypes)(nil), "types.ProtoTypes") - proto.RegisterType((*StdTypes)(nil), "types.StdTypes") - proto.RegisterType((*RepProtoTypes)(nil), "types.RepProtoTypes") - proto.RegisterType((*RepStdTypes)(nil), "types.RepStdTypes") - proto.RegisterType((*MapProtoTypes)(nil), "types.MapProtoTypes") - proto.RegisterType((*MapStdTypes)(nil), "types.MapStdTypes") - proto.RegisterType((*OneofProtoTypes)(nil), "types.OneofProtoTypes") - proto.RegisterType((*OneofStdTypes)(nil), "types.OneofStdTypes") -} -func (this *KnownTypes) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*KnownTypes) - if !ok { - that2, ok := that.(KnownTypes) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.Dur.Compare(that1.Dur); c != 0 { - return c - } - if c := this.Ts.Compare(that1.Ts); c != 0 { - return c - } - if c := this.Dbl.Compare(that1.Dbl); c != 0 { - return c - } - if c := this.Flt.Compare(that1.Flt); c != 0 { - return c - } - if c := this.I64.Compare(that1.I64); c != 0 { - return c - } - if c := this.U64.Compare(that1.U64); c != 0 { - return c - } - if c := this.I32.Compare(that1.I32); c != 0 { - return c - } - if c := this.U32.Compare(that1.U32); c != 0 { - return c - } - if c := this.Bool.Compare(that1.Bool); c != 0 { - return c - } - if c := this.Str.Compare(that1.Str); c != 0 { - return c - } - if c := this.Bytes.Compare(that1.Bytes); c != 0 { - return c - } - return 0 -} -func (this *ProtoTypes) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*ProtoTypes) - if !ok { - that2, ok := that.(ProtoTypes) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if c := this.NullableTimestamp.Compare(that1.NullableTimestamp); c != 0 { - return c - } - if c := this.NullableDuration.Compare(that1.NullableDuration); c != 0 { - return c - } - if c := this.Timestamp.Compare(&that1.Timestamp); c != 0 { - return c - } - if c := this.Duration.Compare(&that1.Duration); c != 0 { - return c - } - return 0 -} -func (this *RepProtoTypes) Compare(that interface{}) int { - if that == nil { - if this == nil { - return 0 - } - return 1 - } - - that1, ok := that.(*RepProtoTypes) - if !ok { - that2, ok := that.(RepProtoTypes) - if ok { - that1 = &that2 - } else { - return 1 - } - } - if that1 == nil { - if this == nil { - return 0 - } - return 1 - } else if this == nil { - return -1 - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - if len(this.NullableTimestamps) < len(that1.NullableTimestamps) { - return -1 - } - return 1 - } - for i := range this.NullableTimestamps { - if c := this.NullableTimestamps[i].Compare(that1.NullableTimestamps[i]); c != 0 { - return c - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - if len(this.NullableDurations) < len(that1.NullableDurations) { - return -1 - } - return 1 - } - for i := range this.NullableDurations { - if c := this.NullableDurations[i].Compare(that1.NullableDurations[i]); c != 0 { - return c - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - if len(this.Timestamps) < len(that1.Timestamps) { - return -1 - } - return 1 - } - for i := range this.Timestamps { - if c := this.Timestamps[i].Compare(&that1.Timestamps[i]); c != 0 { - return c - } - } - if len(this.Durations) != len(that1.Durations) { - if len(this.Durations) < len(that1.Durations) { - return -1 - } - return 1 - } - for i := range this.Durations { - if c := this.Durations[i].Compare(&that1.Durations[i]); c != 0 { - return c - } - } - return 0 -} -func (this *KnownTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*KnownTypes) - if !ok { - that2, ok := that.(KnownTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *KnownTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *KnownTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *KnownTypes but is not nil && this == nil") - } - if !this.Dur.Equal(that1.Dur) { - return fmt.Errorf("Dur this(%v) Not Equal that(%v)", this.Dur, that1.Dur) - } - if !this.Ts.Equal(that1.Ts) { - return fmt.Errorf("Ts this(%v) Not Equal that(%v)", this.Ts, that1.Ts) - } - if !this.Dbl.Equal(that1.Dbl) { - return fmt.Errorf("Dbl this(%v) Not Equal that(%v)", this.Dbl, that1.Dbl) - } - if !this.Flt.Equal(that1.Flt) { - return fmt.Errorf("Flt this(%v) Not Equal that(%v)", this.Flt, that1.Flt) - } - if !this.I64.Equal(that1.I64) { - return fmt.Errorf("I64 this(%v) Not Equal that(%v)", this.I64, that1.I64) - } - if !this.U64.Equal(that1.U64) { - return fmt.Errorf("U64 this(%v) Not Equal that(%v)", this.U64, that1.U64) - } - if !this.I32.Equal(that1.I32) { - return fmt.Errorf("I32 this(%v) Not Equal that(%v)", this.I32, that1.I32) - } - if !this.U32.Equal(that1.U32) { - return fmt.Errorf("U32 this(%v) Not Equal that(%v)", this.U32, that1.U32) - } - if !this.Bool.Equal(that1.Bool) { - return fmt.Errorf("Bool this(%v) Not Equal that(%v)", this.Bool, that1.Bool) - } - if !this.Str.Equal(that1.Str) { - return fmt.Errorf("Str this(%v) Not Equal that(%v)", this.Str, that1.Str) - } - if !this.Bytes.Equal(that1.Bytes) { - return fmt.Errorf("Bytes this(%v) Not Equal that(%v)", this.Bytes, that1.Bytes) - } - return nil -} -func (this *KnownTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*KnownTypes) - if !ok { - that2, ok := that.(KnownTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Dur.Equal(that1.Dur) { - return false - } - if !this.Ts.Equal(that1.Ts) { - return false - } - if !this.Dbl.Equal(that1.Dbl) { - return false - } - if !this.Flt.Equal(that1.Flt) { - return false - } - if !this.I64.Equal(that1.I64) { - return false - } - if !this.U64.Equal(that1.U64) { - return false - } - if !this.I32.Equal(that1.I32) { - return false - } - if !this.U32.Equal(that1.U32) { - return false - } - if !this.Bool.Equal(that1.Bool) { - return false - } - if !this.Str.Equal(that1.Str) { - return false - } - if !this.Bytes.Equal(that1.Bytes) { - return false - } - return true -} -func (this *ProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*ProtoTypes) - if !ok { - that2, ok := that.(ProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *ProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *ProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *ProtoTypes but is not nil && this == nil") - } - if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) - } - if !this.NullableDuration.Equal(that1.NullableDuration) { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) - } - if !this.Timestamp.Equal(&that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - if !this.Duration.Equal(&that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *ProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*ProtoTypes) - if !ok { - that2, ok := that.(ProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.NullableTimestamp.Equal(that1.NullableTimestamp) { - return false - } - if !this.NullableDuration.Equal(that1.NullableDuration) { - return false - } - if !this.Timestamp.Equal(&that1.Timestamp) { - return false - } - if !this.Duration.Equal(&that1.Duration) { - return false - } - return true -} -func (this *StdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*StdTypes) - if !ok { - that2, ok := that.(StdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *StdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *StdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *StdTypes but is not nil && this == nil") - } - if that1.NullableTimestamp == nil { - if this.NullableTimestamp != nil { - return fmt.Errorf("this.NullableTimestamp != nil && that1.NullableTimestamp == nil") - } - } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", this.NullableTimestamp, that1.NullableTimestamp) - } - if this.NullableDuration != nil && that1.NullableDuration != nil { - if *this.NullableDuration != *that1.NullableDuration { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", *this.NullableDuration, *that1.NullableDuration) - } - } else if this.NullableDuration != nil { - return fmt.Errorf("this.NullableDuration == nil && that.NullableDuration != nil") - } else if that1.NullableDuration != nil { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", this.NullableDuration, that1.NullableDuration) - } - if !this.Timestamp.Equal(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - if this.Duration != that1.Duration { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *StdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*StdTypes) - if !ok { - that2, ok := that.(StdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.NullableTimestamp == nil { - if this.NullableTimestamp != nil { - return false - } - } else if !this.NullableTimestamp.Equal(*that1.NullableTimestamp) { - return false - } - if this.NullableDuration != nil && that1.NullableDuration != nil { - if *this.NullableDuration != *that1.NullableDuration { - return false - } - } else if this.NullableDuration != nil { - return false - } else if that1.NullableDuration != nil { - return false - } - if !this.Timestamp.Equal(that1.Timestamp) { - return false - } - if this.Duration != that1.Duration { - return false - } - return true -} -func (this *RepProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*RepProtoTypes) - if !ok { - that2, ok := that.(RepProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *RepProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *RepProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *RepProtoTypes but is not nil && this == nil") - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { - return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) - } - for i := range this.NullableDurations { - if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { - return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { - return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) - } - } - if len(this.Durations) != len(that1.Durations) { - return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) - } - for i := range this.Durations { - if !this.Durations[i].Equal(&that1.Durations[i]) { - return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) - } - } - return nil -} -func (this *RepProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*RepProtoTypes) - if !ok { - that2, ok := that.(RepProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return false - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(that1.NullableTimestamps[i]) { - return false - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return false - } - for i := range this.NullableDurations { - if !this.NullableDurations[i].Equal(that1.NullableDurations[i]) { - return false - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return false - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(&that1.Timestamps[i]) { - return false - } - } - if len(this.Durations) != len(that1.Durations) { - return false - } - for i := range this.Durations { - if !this.Durations[i].Equal(&that1.Durations[i]) { - return false - } - } - return true -} -func (this *RepStdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*RepStdTypes) - if !ok { - that2, ok := that.(RepStdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *RepStdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *RepStdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *RepStdTypes but is not nil && this == nil") - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return fmt.Errorf("NullableTimestamps this(%v) Not Equal that(%v)", len(this.NullableTimestamps), len(that1.NullableTimestamps)) - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { - return fmt.Errorf("NullableTimestamps this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamps[i], i, that1.NullableTimestamps[i]) - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return fmt.Errorf("NullableDurations this(%v) Not Equal that(%v)", len(this.NullableDurations), len(that1.NullableDurations)) - } - for i := range this.NullableDurations { - if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return fmt.Errorf("NullableDurations this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDurations[i], i, that1.NullableDurations[i]) - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return fmt.Errorf("Timestamps this(%v) Not Equal that(%v)", len(this.Timestamps), len(that1.Timestamps)) - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(that1.Timestamps[i]) { - return fmt.Errorf("Timestamps this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamps[i], i, that1.Timestamps[i]) - } - } - if len(this.Durations) != len(that1.Durations) { - return fmt.Errorf("Durations this(%v) Not Equal that(%v)", len(this.Durations), len(that1.Durations)) - } - for i := range this.Durations { - if this.Durations[i] != that1.Durations[i] { - return fmt.Errorf("Durations this[%v](%v) Not Equal that[%v](%v)", i, this.Durations[i], i, that1.Durations[i]) - } - } - return nil -} -func (this *RepStdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*RepStdTypes) - if !ok { - that2, ok := that.(RepStdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamps) != len(that1.NullableTimestamps) { - return false - } - for i := range this.NullableTimestamps { - if !this.NullableTimestamps[i].Equal(*that1.NullableTimestamps[i]) { - return false - } - } - if len(this.NullableDurations) != len(that1.NullableDurations) { - return false - } - for i := range this.NullableDurations { - if dthis, dthat := this.NullableDurations[i], that1.NullableDurations[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return false - } - } - if len(this.Timestamps) != len(that1.Timestamps) { - return false - } - for i := range this.Timestamps { - if !this.Timestamps[i].Equal(that1.Timestamps[i]) { - return false - } - } - if len(this.Durations) != len(that1.Durations) { - return false - } - for i := range this.Durations { - if this.Durations[i] != that1.Durations[i] { - return false - } - } - return true -} -func (this *MapProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MapProtoTypes) - if !ok { - that2, ok := that.(MapProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MapProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MapProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MapProtoTypes but is not nil && this == nil") - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { - return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) - } - for i := range this.Timestamp { - a := this.Timestamp[i] - b := that1.Timestamp[i] - if !(&a).Equal(&b) { - return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) - } - for i := range this.NullableDuration { - if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { - return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) - } - } - if len(this.Duration) != len(that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) - } - for i := range this.Duration { - a := this.Duration[i] - b := that1.Duration[i] - if !(&a).Equal(&b) { - return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) - } - } - return nil -} -func (this *MapProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MapProtoTypes) - if !ok { - that2, ok := that.(MapProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return false - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(that1.NullableTimestamp[i]) { - return false - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return false - } - for i := range this.Timestamp { - a := this.Timestamp[i] - b := that1.Timestamp[i] - if !(&a).Equal(&b) { - return false - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return false - } - for i := range this.NullableDuration { - if !this.NullableDuration[i].Equal(that1.NullableDuration[i]) { - return false - } - } - if len(this.Duration) != len(that1.Duration) { - return false - } - for i := range this.Duration { - a := this.Duration[i] - b := that1.Duration[i] - if !(&a).Equal(&b) { - return false - } - } - return true -} -func (this *MapStdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*MapStdTypes) - if !ok { - that2, ok := that.(MapStdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *MapStdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *MapStdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *MapStdTypes but is not nil && this == nil") - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return fmt.Errorf("NullableTimestamp this(%v) Not Equal that(%v)", len(this.NullableTimestamp), len(that1.NullableTimestamp)) - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { - return fmt.Errorf("NullableTimestamp this[%v](%v) Not Equal that[%v](%v)", i, this.NullableTimestamp[i], i, that1.NullableTimestamp[i]) - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", len(this.Timestamp), len(that1.Timestamp)) - } - for i := range this.Timestamp { - if !this.Timestamp[i].Equal(that1.Timestamp[i]) { - return fmt.Errorf("Timestamp this[%v](%v) Not Equal that[%v](%v)", i, this.Timestamp[i], i, that1.Timestamp[i]) - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return fmt.Errorf("NullableDuration this(%v) Not Equal that(%v)", len(this.NullableDuration), len(that1.NullableDuration)) - } - for i := range this.NullableDuration { - if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return fmt.Errorf("NullableDuration this[%v](%v) Not Equal that[%v](%v)", i, this.NullableDuration[i], i, that1.NullableDuration[i]) - } - } - if len(this.Duration) != len(that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", len(this.Duration), len(that1.Duration)) - } - for i := range this.Duration { - if this.Duration[i] != that1.Duration[i] { - return fmt.Errorf("Duration this[%v](%v) Not Equal that[%v](%v)", i, this.Duration[i], i, that1.Duration[i]) - } - } - return nil -} -func (this *MapStdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*MapStdTypes) - if !ok { - that2, ok := that.(MapStdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if len(this.NullableTimestamp) != len(that1.NullableTimestamp) { - return false - } - for i := range this.NullableTimestamp { - if !this.NullableTimestamp[i].Equal(*that1.NullableTimestamp[i]) { - return false - } - } - if len(this.Timestamp) != len(that1.Timestamp) { - return false - } - for i := range this.Timestamp { - if !this.Timestamp[i].Equal(that1.Timestamp[i]) { - return false - } - } - if len(this.NullableDuration) != len(that1.NullableDuration) { - return false - } - for i := range this.NullableDuration { - if dthis, dthat := this.NullableDuration[i], that1.NullableDuration[i]; (dthis != nil && dthat != nil && *dthis != *dthat) || (dthis != nil && dthat == nil) || (dthis == nil && dthat != nil) { - return false - } - } - if len(this.Duration) != len(that1.Duration) { - return false - } - for i := range this.Duration { - if this.Duration[i] != that1.Duration[i] { - return false - } - } - return true -} -func (this *OneofProtoTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofProtoTypes) - if !ok { - that2, ok := that.(OneofProtoTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofProtoTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofProtoTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofProtoTypes but is not nil && this == nil") - } - if that1.OneOfProtoTimes == nil { - if this.OneOfProtoTimes != nil { - return fmt.Errorf("this.OneOfProtoTimes != nil && that1.OneOfProtoTimes == nil") - } - } else if this.OneOfProtoTimes == nil { - return fmt.Errorf("this.OneOfProtoTimes == nil && that1.OneOfProtoTimes != nil") - } else if err := this.OneOfProtoTimes.VerboseEqual(that1.OneOfProtoTimes); err != nil { - return err - } - return nil -} -func (this *OneofProtoTypes_Timestamp) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofProtoTypes_Timestamp) - if !ok { - that2, ok := that.(OneofProtoTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofProtoTypes_Timestamp") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofProtoTypes_Timestamp but is not nil && this == nil") - } - if !this.Timestamp.Equal(that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - return nil -} -func (this *OneofProtoTypes_Duration) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofProtoTypes_Duration) - if !ok { - that2, ok := that.(OneofProtoTypes_Duration) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofProtoTypes_Duration") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofProtoTypes_Duration but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofProtoTypes_Duration but is not nil && this == nil") - } - if !this.Duration.Equal(that1.Duration) { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *OneofProtoTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofProtoTypes) - if !ok { - that2, ok := that.(OneofProtoTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.OneOfProtoTimes == nil { - if this.OneOfProtoTimes != nil { - return false - } - } else if this.OneOfProtoTimes == nil { - return false - } else if !this.OneOfProtoTimes.Equal(that1.OneOfProtoTimes) { - return false - } - return true -} -func (this *OneofProtoTypes_Timestamp) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofProtoTypes_Timestamp) - if !ok { - that2, ok := that.(OneofProtoTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Timestamp.Equal(that1.Timestamp) { - return false - } - return true -} -func (this *OneofProtoTypes_Duration) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofProtoTypes_Duration) - if !ok { - that2, ok := that.(OneofProtoTypes_Duration) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if !this.Duration.Equal(that1.Duration) { - return false - } - return true -} -func (this *OneofStdTypes) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofStdTypes) - if !ok { - that2, ok := that.(OneofStdTypes) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofStdTypes") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofStdTypes but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofStdTypes but is not nil && this == nil") - } - if that1.OneOfStdTimes == nil { - if this.OneOfStdTimes != nil { - return fmt.Errorf("this.OneOfStdTimes != nil && that1.OneOfStdTimes == nil") - } - } else if this.OneOfStdTimes == nil { - return fmt.Errorf("this.OneOfStdTimes == nil && that1.OneOfStdTimes != nil") - } else if err := this.OneOfStdTimes.VerboseEqual(that1.OneOfStdTimes); err != nil { - return err - } - return nil -} -func (this *OneofStdTypes_Timestamp) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofStdTypes_Timestamp) - if !ok { - that2, ok := that.(OneofStdTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofStdTypes_Timestamp") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofStdTypes_Timestamp but is not nil && this == nil") - } - if that1.Timestamp == nil { - if this.Timestamp != nil { - return fmt.Errorf("this.Timestamp != nil && that1.Timestamp == nil") - } - } else if !this.Timestamp.Equal(*that1.Timestamp) { - return fmt.Errorf("Timestamp this(%v) Not Equal that(%v)", this.Timestamp, that1.Timestamp) - } - return nil -} -func (this *OneofStdTypes_Duration) VerboseEqual(that interface{}) error { - if that == nil { - if this == nil { - return nil - } - return fmt.Errorf("that == nil && this != nil") - } - - that1, ok := that.(*OneofStdTypes_Duration) - if !ok { - that2, ok := that.(OneofStdTypes_Duration) - if ok { - that1 = &that2 - } else { - return fmt.Errorf("that is not of type *OneofStdTypes_Duration") - } - } - if that1 == nil { - if this == nil { - return nil - } - return fmt.Errorf("that is type *OneofStdTypes_Duration but is nil && this != nil") - } else if this == nil { - return fmt.Errorf("that is type *OneofStdTypes_Duration but is not nil && this == nil") - } - if this.Duration != nil && that1.Duration != nil { - if *this.Duration != *that1.Duration { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", *this.Duration, *that1.Duration) - } - } else if this.Duration != nil { - return fmt.Errorf("this.Duration == nil && that.Duration != nil") - } else if that1.Duration != nil { - return fmt.Errorf("Duration this(%v) Not Equal that(%v)", this.Duration, that1.Duration) - } - return nil -} -func (this *OneofStdTypes) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofStdTypes) - if !ok { - that2, ok := that.(OneofStdTypes) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.OneOfStdTimes == nil { - if this.OneOfStdTimes != nil { - return false - } - } else if this.OneOfStdTimes == nil { - return false - } else if !this.OneOfStdTimes.Equal(that1.OneOfStdTimes) { - return false - } - return true -} -func (this *OneofStdTypes_Timestamp) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofStdTypes_Timestamp) - if !ok { - that2, ok := that.(OneofStdTypes_Timestamp) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if that1.Timestamp == nil { - if this.Timestamp != nil { - return false - } - } else if !this.Timestamp.Equal(*that1.Timestamp) { - return false - } - return true -} -func (this *OneofStdTypes_Duration) Equal(that interface{}) bool { - if that == nil { - if this == nil { - return true - } - return false - } - - that1, ok := that.(*OneofStdTypes_Duration) - if !ok { - that2, ok := that.(OneofStdTypes_Duration) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - if this == nil { - return true - } - return false - } else if this == nil { - return false - } - if this.Duration != nil && that1.Duration != nil { - if *this.Duration != *that1.Duration { - return false - } - } else if this.Duration != nil { - return false - } else if that1.Duration != nil { - return false - } - return true -} -func NewPopulatedKnownTypes(r randyTypes, easy bool) *KnownTypes { - this := &KnownTypes{} - if r.Intn(10) != 0 { - this.Dur = google_protobuf1.NewPopulatedDuration(r, easy) - } - if r.Intn(10) != 0 { - this.Ts = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - if r.Intn(10) != 0 { - this.Dbl = google_protobuf3.NewPopulatedDoubleValue(r, easy) - } - if r.Intn(10) != 0 { - this.Flt = google_protobuf3.NewPopulatedFloatValue(r, easy) - } - if r.Intn(10) != 0 { - this.I64 = google_protobuf3.NewPopulatedInt64Value(r, easy) - } - if r.Intn(10) != 0 { - this.U64 = google_protobuf3.NewPopulatedUInt64Value(r, easy) - } - if r.Intn(10) != 0 { - this.I32 = google_protobuf3.NewPopulatedInt32Value(r, easy) - } - if r.Intn(10) != 0 { - this.U32 = google_protobuf3.NewPopulatedUInt32Value(r, easy) - } - if r.Intn(10) != 0 { - this.Bool = google_protobuf3.NewPopulatedBoolValue(r, easy) - } - if r.Intn(10) != 0 { - this.Str = google_protobuf3.NewPopulatedStringValue(r, easy) - } - if r.Intn(10) != 0 { - this.Bytes = google_protobuf3.NewPopulatedBytesValue(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedProtoTypes(r randyTypes, easy bool) *ProtoTypes { - this := &ProtoTypes{} - if r.Intn(10) != 0 { - this.NullableTimestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - if r.Intn(10) != 0 { - this.NullableDuration = google_protobuf1.NewPopulatedDuration(r, easy) - } - v1 := google_protobuf2.NewPopulatedTimestamp(r, easy) - this.Timestamp = *v1 - v2 := google_protobuf1.NewPopulatedDuration(r, easy) - this.Duration = *v2 - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedStdTypes(r randyTypes, easy bool) *StdTypes { - this := &StdTypes{} - if r.Intn(10) != 0 { - this.NullableTimestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - if r.Intn(10) != 0 { - this.NullableDuration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - v3 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - this.Timestamp = *v3 - v4 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - this.Duration = *v4 - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedRepProtoTypes(r randyTypes, easy bool) *RepProtoTypes { - this := &RepProtoTypes{} - if r.Intn(10) != 0 { - v5 := r.Intn(5) - this.NullableTimestamps = make([]*google_protobuf2.Timestamp, v5) - for i := 0; i < v5; i++ { - this.NullableTimestamps[i] = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - } - if r.Intn(10) != 0 { - v6 := r.Intn(5) - this.NullableDurations = make([]*google_protobuf1.Duration, v6) - for i := 0; i < v6; i++ { - this.NullableDurations[i] = google_protobuf1.NewPopulatedDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v7 := r.Intn(5) - this.Timestamps = make([]google_protobuf2.Timestamp, v7) - for i := 0; i < v7; i++ { - v8 := google_protobuf2.NewPopulatedTimestamp(r, easy) - this.Timestamps[i] = *v8 - } - } - if r.Intn(10) != 0 { - v9 := r.Intn(5) - this.Durations = make([]google_protobuf1.Duration, v9) - for i := 0; i < v9; i++ { - v10 := google_protobuf1.NewPopulatedDuration(r, easy) - this.Durations[i] = *v10 - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedRepStdTypes(r randyTypes, easy bool) *RepStdTypes { - this := &RepStdTypes{} - if r.Intn(10) != 0 { - v11 := r.Intn(5) - this.NullableTimestamps = make([]*time.Time, v11) - for i := 0; i < v11; i++ { - this.NullableTimestamps[i] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - } - if r.Intn(10) != 0 { - v12 := r.Intn(5) - this.NullableDurations = make([]*time.Duration, v12) - for i := 0; i < v12; i++ { - this.NullableDurations[i] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v13 := r.Intn(5) - this.Timestamps = make([]time.Time, v13) - for i := 0; i < v13; i++ { - v14 := github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - this.Timestamps[i] = *v14 - } - } - if r.Intn(10) != 0 { - v15 := r.Intn(5) - this.Durations = make([]time.Duration, v15) - for i := 0; i < v15; i++ { - v16 := github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - this.Durations[i] = *v16 - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedMapProtoTypes(r randyTypes, easy bool) *MapProtoTypes { - this := &MapProtoTypes{} - if r.Intn(10) != 0 { - v17 := r.Intn(10) - this.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) - for i := 0; i < v17; i++ { - this.NullableTimestamp[int32(r.Int31())] = google_protobuf2.NewPopulatedTimestamp(r, easy) - } - } - if r.Intn(10) != 0 { - v18 := r.Intn(10) - this.Timestamp = make(map[int32]google_protobuf2.Timestamp) - for i := 0; i < v18; i++ { - this.Timestamp[int32(r.Int31())] = *google_protobuf2.NewPopulatedTimestamp(r, easy) - } - } - if r.Intn(10) != 0 { - v19 := r.Intn(10) - this.NullableDuration = make(map[int32]*google_protobuf1.Duration) - for i := 0; i < v19; i++ { - this.NullableDuration[int32(r.Int31())] = google_protobuf1.NewPopulatedDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v20 := r.Intn(10) - this.Duration = make(map[int32]google_protobuf1.Duration) - for i := 0; i < v20; i++ { - this.Duration[int32(r.Int31())] = *google_protobuf1.NewPopulatedDuration(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedMapStdTypes(r randyTypes, easy bool) *MapStdTypes { - this := &MapStdTypes{} - if r.Intn(10) != 0 { - v21 := r.Intn(10) - this.NullableTimestamp = make(map[int32]*time.Time) - for i := 0; i < v21; i++ { - this.NullableTimestamp[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - } - if r.Intn(10) != 0 { - v22 := r.Intn(10) - this.Timestamp = make(map[int32]time.Time) - for i := 0; i < v22; i++ { - this.Timestamp[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - } - } - if r.Intn(10) != 0 { - v23 := r.Intn(10) - this.NullableDuration = make(map[int32]*time.Duration) - for i := 0; i < v23; i++ { - this.NullableDuration[int32(r.Int31())] = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - } - if r.Intn(10) != 0 { - v24 := r.Intn(10) - this.Duration = make(map[int32]time.Duration) - for i := 0; i < v24; i++ { - this.Duration[int32(r.Int31())] = *github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedOneofProtoTypes(r randyTypes, easy bool) *OneofProtoTypes { - this := &OneofProtoTypes{} - oneofNumber_OneOfProtoTimes := []int32{1, 2}[r.Intn(2)] - switch oneofNumber_OneOfProtoTimes { - case 1: - this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Timestamp(r, easy) - case 2: - this.OneOfProtoTimes = NewPopulatedOneofProtoTypes_Duration(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedOneofProtoTypes_Timestamp(r randyTypes, easy bool) *OneofProtoTypes_Timestamp { - this := &OneofProtoTypes_Timestamp{} - this.Timestamp = google_protobuf2.NewPopulatedTimestamp(r, easy) - return this -} -func NewPopulatedOneofProtoTypes_Duration(r randyTypes, easy bool) *OneofProtoTypes_Duration { - this := &OneofProtoTypes_Duration{} - this.Duration = google_protobuf1.NewPopulatedDuration(r, easy) - return this -} -func NewPopulatedOneofStdTypes(r randyTypes, easy bool) *OneofStdTypes { - this := &OneofStdTypes{} - oneofNumber_OneOfStdTimes := []int32{1, 2}[r.Intn(2)] - switch oneofNumber_OneOfStdTimes { - case 1: - this.OneOfStdTimes = NewPopulatedOneofStdTypes_Timestamp(r, easy) - case 2: - this.OneOfStdTimes = NewPopulatedOneofStdTypes_Duration(r, easy) - } - if !easy && r.Intn(10) != 0 { - } - return this -} - -func NewPopulatedOneofStdTypes_Timestamp(r randyTypes, easy bool) *OneofStdTypes_Timestamp { - this := &OneofStdTypes_Timestamp{} - this.Timestamp = github_com_gogo_protobuf_types.NewPopulatedStdTime(r, easy) - return this -} -func NewPopulatedOneofStdTypes_Duration(r randyTypes, easy bool) *OneofStdTypes_Duration { - this := &OneofStdTypes_Duration{} - this.Duration = github_com_gogo_protobuf_types.NewPopulatedStdDuration(r, easy) - return this -} - -type randyTypes interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneTypes(r randyTypes) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringTypes(r randyTypes) string { - v25 := r.Intn(100) - tmps := make([]rune, v25) - for i := 0; i < v25; i++ { - tmps[i] = randUTF8RuneTypes(r) - } - return string(tmps) -} -func randUnrecognizedTypes(r randyTypes, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldTypes(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldTypes(dAtA []byte, r randyTypes, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - v26 := r.Int63() - if r.Intn(2) == 0 { - v26 *= -1 - } - dAtA = encodeVarintPopulateTypes(dAtA, uint64(v26)) - case 1: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateTypes(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateTypes(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateTypes(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} -func (m *KnownTypes) Size() (n int) { - var l int - _ = l - if m.Dur != nil { - l = m.Dur.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Ts != nil { - l = m.Ts.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Dbl != nil { - l = m.Dbl.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Flt != nil { - l = m.Flt.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.I64 != nil { - l = m.I64.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.U64 != nil { - l = m.U64.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.I32 != nil { - l = m.I32.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.U32 != nil { - l = m.U32.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Bool != nil { - l = m.Bool.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Str != nil { - l = m.Str.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.Bytes != nil { - l = m.Bytes.Size() - n += 1 + l + sovTypes(uint64(l)) - } - return n -} - -func (m *ProtoTypes) Size() (n int) { - var l int - _ = l - if m.NullableTimestamp != nil { - l = m.NullableTimestamp.Size() - n += 1 + l + sovTypes(uint64(l)) - } - if m.NullableDuration != nil { - l = m.NullableDuration.Size() - n += 1 + l + sovTypes(uint64(l)) - } - l = m.Timestamp.Size() - n += 1 + l + sovTypes(uint64(l)) - l = m.Duration.Size() - n += 1 + l + sovTypes(uint64(l)) - return n -} - -func (m *StdTypes) Size() (n int) { - var l int - _ = l - if m.NullableTimestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.NullableTimestamp) - n += 1 + l + sovTypes(uint64(l)) - } - if m.NullableDuration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.NullableDuration) - n += 1 + l + sovTypes(uint64(l)) - } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp) - n += 1 + l + sovTypes(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Duration) - n += 1 + l + sovTypes(uint64(l)) - return n -} - -func (m *RepProtoTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, e := range m.NullableTimestamps { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.NullableDurations) > 0 { - for _, e := range m.NullableDurations { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Timestamps) > 0 { - for _, e := range m.Timestamps { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Durations) > 0 { - for _, e := range m.Durations { - l = e.Size() - n += 1 + l + sovTypes(uint64(l)) - } - } - return n -} - -func (m *RepStdTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamps) > 0 { - for _, e := range m.NullableTimestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*e) - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.NullableDurations) > 0 { - for _, e := range m.NullableDurations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*e) - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Timestamps) > 0 { - for _, e := range m.Timestamps { - l = github_com_gogo_protobuf_types.SizeOfStdTime(e) - n += 1 + l + sovTypes(uint64(l)) - } - } - if len(m.Durations) > 0 { - for _, e := range m.Durations { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(e) - n += 1 + l + sovTypes(uint64(l)) - } - } - return n -} - -func (m *MapProtoTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k, v := range m.NullableTimestamp { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Timestamp) > 0 { - for k, v := range m.Timestamp { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.NullableDuration) > 0 { - for k, v := range m.NullableDuration { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Duration) > 0 { - for k, v := range m.Duration { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - return n -} - -func (m *MapStdTypes) Size() (n int) { - var l int - _ = l - if len(m.NullableTimestamp) > 0 { - for k, v := range m.NullableTimestamp { - _ = k - _ = v - l = 0 - if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*v) - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Timestamp) > 0 { - for k, v := range m.Timestamp { - _ = k - _ = v - l = github_com_gogo_protobuf_types.SizeOfStdTime(v) - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.NullableDuration) > 0 { - for k, v := range m.NullableDuration { - _ = k - _ = v - l = 0 - if v != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*v) - l += 1 + sovTypes(uint64(l)) - } - mapEntrySize := 1 + sovTypes(uint64(k)) + l - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - if len(m.Duration) > 0 { - for k, v := range m.Duration { - _ = k - _ = v - l = github_com_gogo_protobuf_types.SizeOfStdDuration(v) - mapEntrySize := 1 + sovTypes(uint64(k)) + 1 + l + sovTypes(uint64(l)) - n += mapEntrySize + 1 + sovTypes(uint64(mapEntrySize)) - } - } - return n -} - -func (m *OneofProtoTypes) Size() (n int) { - var l int - _ = l - if m.OneOfProtoTimes != nil { - n += m.OneOfProtoTimes.Size() - } - return n -} - -func (m *OneofProtoTypes_Timestamp) Size() (n int) { - var l int - _ = l - if m.Timestamp != nil { - l = m.Timestamp.Size() - n += 1 + l + sovTypes(uint64(l)) - } - return n -} -func (m *OneofProtoTypes_Duration) Size() (n int) { - var l int - _ = l - if m.Duration != nil { - l = m.Duration.Size() - n += 1 + l + sovTypes(uint64(l)) - } - return n -} -func (m *OneofStdTypes) Size() (n int) { - var l int - _ = l - if m.OneOfStdTimes != nil { - n += m.OneOfStdTimes.Size() - } - return n -} - -func (m *OneofStdTypes_Timestamp) Size() (n int) { - var l int - _ = l - if m.Timestamp != nil { - l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.Timestamp) - n += 1 + l + sovTypes(uint64(l)) - } - return n -} -func (m *OneofStdTypes_Duration) Size() (n int) { - var l int - _ = l - if m.Duration != nil { - l = github_com_gogo_protobuf_types.SizeOfStdDuration(*m.Duration) - n += 1 + l + sovTypes(uint64(l)) - } - return n -} - -func sovTypes(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozTypes(x uint64) (n int) { - return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *KnownTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: KnownTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: KnownTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Dur", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Dur == nil { - m.Dur = &google_protobuf1.Duration{} - } - if err := m.Dur.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ts", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Ts == nil { - m.Ts = &google_protobuf2.Timestamp{} - } - if err := m.Ts.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Dbl", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Dbl == nil { - m.Dbl = &google_protobuf3.DoubleValue{} - } - if err := m.Dbl.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Flt", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Flt == nil { - m.Flt = &google_protobuf3.FloatValue{} - } - if err := m.Flt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field I64", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.I64 == nil { - m.I64 = &google_protobuf3.Int64Value{} - } - if err := m.I64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field U64", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.U64 == nil { - m.U64 = &google_protobuf3.UInt64Value{} - } - if err := m.U64.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field I32", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.I32 == nil { - m.I32 = &google_protobuf3.Int32Value{} - } - if err := m.I32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field U32", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.U32 == nil { - m.U32 = &google_protobuf3.UInt32Value{} - } - if err := m.U32.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Bool == nil { - m.Bool = &google_protobuf3.BoolValue{} - } - if err := m.Bool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Str", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Str == nil { - m.Str = &google_protobuf3.StringValue{} - } - if err := m.Str.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bytes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Bytes == nil { - m.Bytes = &google_protobuf3.BytesValue{} - } - if err := m.Bytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ProtoTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: ProtoTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NullableTimestamp == nil { - m.NullableTimestamp = &google_protobuf2.Timestamp{} - } - if err := m.NullableTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NullableDuration == nil { - m.NullableDuration = &google_protobuf1.Duration{} - } - if err := m.NullableDuration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Duration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StdTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: StdTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StdTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NullableTimestamp == nil { - m.NullableTimestamp = new(time.Time) - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamp, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NullableDuration == nil { - m.NullableDuration = new(time.Duration) - } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDuration, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Duration, dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RepProtoTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: RepProtoTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RepProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NullableTimestamps = append(m.NullableTimestamps, &google_protobuf2.Timestamp{}) - if err := m.NullableTimestamps[len(m.NullableTimestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NullableDurations = append(m.NullableDurations, &google_protobuf1.Duration{}) - if err := m.NullableDurations[len(m.NullableDurations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Timestamps = append(m.Timestamps, google_protobuf2.Timestamp{}) - if err := m.Timestamps[len(m.Timestamps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Durations = append(m.Durations, google_protobuf1.Duration{}) - if err := m.Durations[len(m.Durations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RepStdTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: RepStdTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RepStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NullableTimestamps = append(m.NullableTimestamps, new(time.Time)) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.NullableTimestamps[len(m.NullableTimestamps)-1], dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDurations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NullableDurations = append(m.NullableDurations, new(time.Duration)) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(m.NullableDurations[len(m.NullableDurations)-1], dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Timestamps = append(m.Timestamps, time.Time{}) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&(m.Timestamps[len(m.Timestamps)-1]), dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Durations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Durations = append(m.Durations, time.Duration(0)) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&(m.Durations[len(m.Durations)-1]), dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MapProtoTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: MapProtoTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MapProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NullableTimestamp == nil { - m.NullableTimestamp = make(map[int32]*google_protobuf2.Timestamp) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf2.Timestamp{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableTimestamp[mapkey] = mapvalue - } else { - var mapvalue *google_protobuf2.Timestamp - m.NullableTimestamp[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Timestamp == nil { - m.Timestamp = make(map[int32]google_protobuf2.Timestamp) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf2.Timestamp{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Timestamp[mapkey] = *mapvalue - } else { - var mapvalue google_protobuf2.Timestamp - m.Timestamp[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NullableDuration == nil { - m.NullableDuration = make(map[int32]*google_protobuf1.Duration) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf1.Duration{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableDuration[mapkey] = mapvalue - } else { - var mapvalue *google_protobuf1.Duration - m.NullableDuration[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Duration == nil { - m.Duration = make(map[int32]google_protobuf1.Duration) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf1.Duration{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Duration[mapkey] = *mapvalue - } else { - var mapvalue google_protobuf1.Duration - m.Duration[mapkey] = mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MapStdTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: MapStdTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MapStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NullableTimestamp == nil { - m.NullableTimestamp = make(map[int32]*time.Time) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableTimestamp[mapkey] = mapvalue - } else { - var mapvalue = new(time.Time) - m.NullableTimestamp[mapkey] = mapvalue - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Timestamp == nil { - m.Timestamp = make(map[int32]time.Time) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Timestamp[mapkey] = *mapvalue - } else { - var mapvalue = new(time.Time) - m.Timestamp[mapkey] = *mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NullableDuration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.NullableDuration == nil { - m.NullableDuration = make(map[int32]*time.Duration) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.NullableDuration[mapkey] = mapvalue - } else { - var mapvalue = new(time.Duration) - m.NullableDuration[mapkey] = mapvalue - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapkey int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapkey |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if m.Duration == nil { - m.Duration = make(map[int32]time.Duration) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(mapvalue, dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Duration[mapkey] = *mapvalue - } else { - var mapvalue = new(time.Duration) - m.Duration[mapkey] = *mapvalue - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OneofProtoTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: OneofProtoTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OneofProtoTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &google_protobuf2.Timestamp{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.OneOfProtoTimes = &OneofProtoTypes_Timestamp{v} - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &google_protobuf1.Duration{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.OneOfProtoTimes = &OneofProtoTypes_Duration{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OneofStdTypes) 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 ErrIntOverflowTypesUnsafe - } - 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: OneofStdTypes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OneofStdTypes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := new(time.Time) - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.OneOfStdTimes = &OneofStdTypes_Timestamp{v} - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypesUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypesUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := new(time.Duration) - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(v, dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.OneOfStdTimes = &OneofStdTypes_Duration{v} - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTypesUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthTypesUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipTypesUnsafe(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, ErrIntOverflowTypesUnsafe - } - 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, ErrIntOverflowTypesUnsafe - } - 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, ErrIntOverflowTypesUnsafe - } - 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, ErrInvalidLengthTypesUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowTypesUnsafe - } - 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 := skipTypesUnsafe(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 ( - ErrInvalidLengthTypesUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowTypesUnsafe = fmt.Errorf("proto: integer overflow") -) - -func init() { proto.RegisterFile("combos/unsafeunmarshaler/types.proto", fileDescriptorTypes) } - -var fileDescriptorTypes = []byte{ - // 933 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcd, 0x8e, 0xdb, 0x54, - 0x18, 0x8d, 0x7f, 0x52, 0x32, 0x5f, 0x14, 0xda, 0x5a, 0x02, 0x99, 0x80, 0x9c, 0x21, 0xb0, 0x18, - 0x5a, 0xd5, 0x81, 0x24, 0x0a, 0x68, 0x50, 0xa1, 0x58, 0xd3, 0x76, 0x4a, 0x35, 0x9d, 0x2a, 0x2d, - 0x23, 0x40, 0x02, 0x61, 0x37, 0x4e, 0x1a, 0xe1, 0xf8, 0x46, 0xf6, 0x35, 0x55, 0x76, 0x3c, 0x02, - 0x4b, 0x10, 0x1b, 0xba, 0x43, 0x82, 0x3d, 0x2c, 0xd9, 0x20, 0x75, 0x07, 0x4f, 0x00, 0x6d, 0xd8, - 0xf0, 0x08, 0x5d, 0xa2, 0x7b, 0x7d, 0xfd, 0x17, 0x5f, 0x3b, 0x24, 0xd2, 0x88, 0x0d, 0xbb, 0xf1, - 0xf8, 0x9c, 0xe3, 0xe3, 0xe3, 0xf3, 0x7d, 0x37, 0xf0, 0xea, 0x3d, 0x34, 0xb3, 0x90, 0xdf, 0x09, - 0x5c, 0xdf, 0x1c, 0xdb, 0x81, 0x3b, 0x33, 0x3d, 0xff, 0xbe, 0xe9, 0xd8, 0x5e, 0x07, 0x2f, 0xe6, - 0xb6, 0xaf, 0xcf, 0x3d, 0x84, 0x91, 0x52, 0xa5, 0x17, 0xcd, 0x4b, 0x93, 0x29, 0xbe, 0x1f, 0x58, - 0xfa, 0x3d, 0x34, 0xeb, 0x4c, 0xd0, 0x04, 0x75, 0xe8, 0x5d, 0x2b, 0x18, 0xd3, 0x2b, 0x7a, 0x41, - 0xff, 0x0a, 0x59, 0x4d, 0x6d, 0x82, 0xd0, 0xc4, 0xb1, 0x13, 0xd4, 0x28, 0xf0, 0x4c, 0x3c, 0x45, - 0x2e, 0xbb, 0xdf, 0x5a, 0xbd, 0x8f, 0xa7, 0x33, 0xdb, 0xc7, 0xe6, 0x6c, 0x5e, 0x24, 0xf0, 0xc0, - 0x33, 0xe7, 0x73, 0xdb, 0x63, 0xb6, 0xda, 0xdf, 0xca, 0x00, 0x37, 0x5d, 0xf4, 0xc0, 0xbd, 0x4b, - 0xec, 0x29, 0x17, 0x41, 0x1a, 0x05, 0x9e, 0x2a, 0xec, 0x0a, 0x7b, 0xf5, 0xee, 0x0b, 0x7a, 0x48, - 0xd6, 0x23, 0xb2, 0x7e, 0xc0, 0x9e, 0x3e, 0x24, 0x28, 0xe5, 0x02, 0x88, 0xd8, 0x57, 0x45, 0x8a, - 0x6d, 0xe6, 0xb0, 0x77, 0x23, 0x27, 0x43, 0x11, 0xfb, 0x8a, 0x0e, 0xd2, 0xc8, 0x72, 0x54, 0x89, - 0x82, 0x5f, 0xca, 0x0b, 0xa3, 0xc0, 0x72, 0xec, 0x13, 0xd3, 0x09, 0xec, 0x21, 0x01, 0x2a, 0x97, - 0x40, 0x1a, 0x3b, 0x58, 0x95, 0x29, 0xfe, 0xc5, 0x1c, 0xfe, 0x9a, 0x83, 0x4c, 0xcc, 0xe0, 0x63, - 0x07, 0x13, 0xf8, 0x74, 0xd0, 0x57, 0xab, 0x05, 0xf0, 0x1b, 0x2e, 0x1e, 0xf4, 0x19, 0x7c, 0x3a, - 0xe8, 0x13, 0x37, 0xc1, 0xa0, 0xaf, 0x9e, 0x29, 0x70, 0xf3, 0x41, 0x1a, 0x1f, 0x0c, 0xfa, 0x54, - 0xbe, 0xd7, 0x55, 0x9f, 0x29, 0x96, 0xef, 0x75, 0x23, 0xf9, 0x5e, 0x97, 0xca, 0xf7, 0xba, 0x6a, - 0xad, 0x44, 0x3e, 0xc6, 0x07, 0x14, 0x2f, 0x5b, 0x08, 0x39, 0xea, 0x4e, 0x41, 0x94, 0x06, 0x42, - 0x4e, 0x08, 0xa7, 0x38, 0xa2, 0xef, 0x63, 0x4f, 0x85, 0x02, 0xfd, 0x3b, 0xd8, 0x9b, 0xba, 0x13, - 0xa6, 0xef, 0x63, 0x4f, 0x79, 0x03, 0xaa, 0xd6, 0x02, 0xdb, 0xbe, 0x5a, 0x2f, 0x78, 0x01, 0x83, - 0xdc, 0x0d, 0x09, 0x21, 0x72, 0x5f, 0xfe, 0xfb, 0x61, 0x4b, 0x68, 0x7f, 0x27, 0x02, 0xdc, 0x26, - 0xa0, 0xb0, 0x1d, 0x87, 0x70, 0xde, 0x0d, 0x1c, 0xc7, 0xb4, 0x1c, 0x3b, 0xfe, 0xba, 0xac, 0x2b, - 0x65, 0xdf, 0x3f, 0x4f, 0x52, 0xae, 0xc2, 0xb9, 0xe8, 0x9f, 0x51, 0xa7, 0x58, 0x91, 0x4a, 0x4a, - 0x97, 0xa3, 0x28, 0xef, 0xc0, 0x4e, 0x5c, 0x78, 0xd6, 0xad, 0x12, 0x23, 0x86, 0xfc, 0xe8, 0x8f, - 0x56, 0x65, 0x98, 0x50, 0x94, 0xb7, 0xa1, 0x16, 0x0d, 0x14, 0xab, 0x5a, 0xf1, 0xe3, 0x19, 0x3b, - 0x26, 0xb0, 0x88, 0x7e, 0x14, 0xa1, 0x76, 0x07, 0x8f, 0xc2, 0x80, 0x6e, 0x6d, 0x15, 0x90, 0x21, - 0x7f, 0xf5, 0x67, 0x4b, 0xe0, 0xc5, 0x74, 0x73, 0x8b, 0x98, 0x0c, 0xf9, 0x6b, 0xa2, 0x96, 0x0f, - 0xcb, 0xd8, 0x2c, 0xac, 0x1a, 0x79, 0x5d, 0x6a, 0x2c, 0x15, 0xd8, 0xbb, 0x9b, 0x04, 0x46, 0x15, - 0xa8, 0x99, 0x98, 0xd4, 0xfe, 0x41, 0x84, 0xc6, 0xd0, 0x9e, 0xa7, 0x4a, 0xf5, 0x3e, 0x28, 0xb9, - 0x17, 0xf7, 0x55, 0x61, 0x57, 0x5a, 0xd3, 0x2a, 0x0e, 0x4b, 0xb9, 0x9e, 0xe4, 0x1f, 0xb9, 0x20, - 0x0b, 0x4a, 0x2a, 0xef, 0x55, 0x9e, 0xa3, 0x5c, 0x01, 0xc0, 0x89, 0x19, 0x69, 0x9d, 0x19, 0xd6, - 0x8d, 0x14, 0x47, 0xb9, 0x0c, 0x3b, 0xa3, 0xd8, 0x82, 0xbc, 0xc6, 0x42, 0xd4, 0xcc, 0x98, 0xc1, - 0xca, 0xf5, 0x93, 0x08, 0xf5, 0xa1, 0x3d, 0x8f, 0xfb, 0x75, 0x7b, 0xbb, 0xac, 0x58, 0xc1, 0x78, - 0x89, 0x1d, 0x6d, 0x93, 0x18, 0xab, 0x18, 0x27, 0xb7, 0x83, 0x0d, 0x73, 0x4b, 0x4a, 0x96, 0xce, - 0xee, 0xbd, 0x8d, 0xb2, 0x4b, 0x6a, 0x96, 0xb0, 0xda, 0xbf, 0x56, 0xa1, 0x71, 0x64, 0xa6, 0x7b, - 0xf6, 0x11, 0x7f, 0x36, 0x89, 0xf8, 0x45, 0x3d, 0x3c, 0xa9, 0x33, 0x04, 0xfd, 0xd6, 0x2a, 0xfa, - 0xaa, 0x8b, 0xbd, 0x05, 0x6f, 0x4c, 0xaf, 0xa7, 0x27, 0x2b, 0x0c, 0xef, 0x15, 0xae, 0x64, 0x56, - 0x2a, 0xbf, 0x8f, 0x4e, 0x38, 0xf3, 0x1e, 0x86, 0x78, 0xa1, 0xd4, 0x62, 0x04, 0x0e, 0x1d, 0xe6, - 0x47, 0xff, 0x20, 0x33, 0xb6, 0x44, 0xaf, 0xcd, 0xd5, 0xcb, 0xe8, 0xac, 0x2e, 0xbc, 0xe6, 0x67, - 0xf0, 0x3c, 0x3f, 0x13, 0xe5, 0x1c, 0x48, 0x9f, 0xdb, 0x0b, 0xba, 0xe9, 0xaa, 0x43, 0xf2, 0xa7, - 0xf2, 0x3a, 0x54, 0xbf, 0x20, 0xe7, 0xc9, 0xbf, 0xf8, 0x79, 0x10, 0x02, 0xf7, 0xc5, 0xb7, 0x84, - 0xe6, 0x87, 0xf0, 0xec, 0x29, 0x29, 0x7f, 0x0a, 0xcf, 0x71, 0xc3, 0xe2, 0x3c, 0xa0, 0x93, 0x7d, - 0x40, 0xc9, 0xe2, 0x48, 0xe9, 0x9f, 0x40, 0xe3, 0x34, 0x74, 0xdb, 0xbf, 0x55, 0xa1, 0x7e, 0x64, - 0x26, 0x1b, 0xe0, 0x93, 0xe2, 0x16, 0xbf, 0x96, 0x7c, 0xd2, 0x08, 0x5e, 0xd0, 0xe1, 0xe2, 0x03, - 0xe7, 0x46, 0xbe, 0xc9, 0x2f, 0x73, 0x64, 0x57, 0xe4, 0xb8, 0x47, 0xc5, 0xc7, 0x85, 0x5d, 0xde, - 0x2b, 0x31, 0xba, 0xd2, 0xc0, 0x82, 0xa3, 0xec, 0x5a, 0xae, 0xcf, 0xbb, 0x1c, 0xcd, 0xac, 0x16, - 0xe7, 0x34, 0xfa, 0xbf, 0xd1, 0xff, 0x41, 0xa3, 0xbf, 0x11, 0xe0, 0xec, 0xb1, 0x6b, 0xa3, 0x71, - 0x6a, 0x37, 0xef, 0xa7, 0x6b, 0xb7, 0xf6, 0xf7, 0xd2, 0x61, 0x66, 0x67, 0xbe, 0x99, 0xea, 0xc2, - 0x3a, 0x1f, 0x87, 0xa9, 0x75, 0x66, 0x9c, 0xa7, 0x3e, 0x8e, 0x99, 0x0f, 0xa2, 0xd7, 0x7e, 0x28, - 0x40, 0x83, 0x7a, 0x8b, 0xe7, 0xed, 0xca, 0x46, 0xce, 0xc2, 0xc1, 0xca, 0xfa, 0xbb, 0xbc, 0x81, - 0xbf, 0xb0, 0xf0, 0x19, 0x97, 0x67, 0xa9, 0xa3, 0x63, 0xea, 0x88, 0x68, 0x1a, 0x7b, 0x8f, 0x9f, - 0x68, 0xc2, 0xd3, 0x27, 0x9a, 0xf0, 0xfd, 0x52, 0x13, 0x7e, 0x5e, 0x6a, 0xc2, 0x2f, 0x4b, 0x4d, - 0x78, 0xb4, 0xd4, 0x2a, 0xbf, 0x2f, 0xb5, 0xca, 0xe3, 0xa5, 0x26, 0x3c, 0x5d, 0x6a, 0x95, 0x2f, - 0xff, 0xd2, 0x04, 0xeb, 0x0c, 0xd5, 0xef, 0xfd, 0x13, 0x00, 0x00, 0xff, 0xff, 0xe7, 0xf2, 0x97, - 0x13, 0xa1, 0x0e, 0x00, 0x00, -} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.proto b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.proto deleted file mode 100644 index 67624ca5c..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types.proto +++ /dev/null @@ -1,131 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2016, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package types; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -//import "google/protobuf/any.proto"; -import "google/protobuf/duration.proto"; -//import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; - -option (gogoproto.testgen_all) = true; -option (gogoproto.populate_all) = true; -option (gogoproto.benchgen_all) = true; -option (gogoproto.unmarshaler_all) = false; -option (gogoproto.marshaler_all) = false; -option (gogoproto.sizer_all) = true; -option (gogoproto.equal_all) = true; -option (gogoproto.verbose_equal_all) = true; -option (gogoproto.unsafe_marshaler_all) = false; -option (gogoproto.unsafe_unmarshaler_all) = true; - -message KnownTypes { - option (gogoproto.compare) = true; - google.protobuf.Duration dur = 1; - google.protobuf.Timestamp ts = 2; - google.protobuf.DoubleValue dbl = 3; - google.protobuf.FloatValue flt = 4; - google.protobuf.Int64Value i64 = 5; - google.protobuf.UInt64Value u64 = 6; - google.protobuf.Int32Value i32 = 7; - google.protobuf.UInt32Value u32 = 8; - google.protobuf.BoolValue bool = 9; - google.protobuf.StringValue str = 10; - google.protobuf.BytesValue bytes = 11; - - // TODO uncomment this once https://github.com/gogo/protobuf/issues/197 is fixed - // google.protobuf.Struct st = 12; - // google.protobuf.Any an = 14; -} - -message ProtoTypes { - // TODO this should be a compare_all at the top of the file once time.Time, time.Duration, oneof and map is supported by compare - option (gogoproto.compare) = true; - google.protobuf.Timestamp nullableTimestamp = 1; - google.protobuf.Duration nullableDuration = 2; - google.protobuf.Timestamp timestamp = 3 [(gogoproto.nullable) = false]; - google.protobuf.Duration duration = 4 [(gogoproto.nullable) = false]; -} - -message StdTypes { - google.protobuf.Timestamp nullableTimestamp = 1 [(gogoproto.stdtime) = true]; - google.protobuf.Duration nullableDuration = 2 [(gogoproto.stdduration) = true]; - google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - google.protobuf.Duration duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; -} - -message RepProtoTypes { - option (gogoproto.compare) = true; - repeated google.protobuf.Timestamp nullableTimestamps = 1; - repeated google.protobuf.Duration nullableDurations = 2; - repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.nullable) = false]; - repeated google.protobuf.Duration durations = 4 [(gogoproto.nullable) = false]; -} - -message RepStdTypes { - repeated google.protobuf.Timestamp nullableTimestamps = 1 [(gogoproto.stdtime) = true]; - repeated google.protobuf.Duration nullableDurations = 2 [(gogoproto.stdduration) = true]; - repeated google.protobuf.Timestamp timestamps = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - repeated google.protobuf.Duration durations = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; -} - -message MapProtoTypes { - map nullableTimestamp = 1; - map timestamp = 2 [(gogoproto.nullable) = false]; - - map nullableDuration = 3; - map duration = 4 [(gogoproto.nullable) = false]; -} - -message MapStdTypes { - map nullableTimestamp = 1 [(gogoproto.stdtime) = true]; - map timestamp = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - - map nullableDuration = 3 [(gogoproto.stdduration) = true]; - map duration = 4 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; -} - -message OneofProtoTypes { - oneof OneOfProtoTimes { - google.protobuf.Timestamp timestamp = 1; - google.protobuf.Duration duration = 2; - } -} - -message OneofStdTypes { - oneof OneOfStdTimes { - google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true]; - google.protobuf.Duration duration = 2 [(gogoproto.stdduration) = true]; - } -} - diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types_test.go deleted file mode 100644 index 7d24f58e6..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/types_test.go +++ /dev/null @@ -1,242 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2016, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package types - -import ( - math_rand "math/rand" - "testing" - "time" - - "github.com/gogo/protobuf/jsonpb" - "github.com/gogo/protobuf/proto" -) - -func TestFullCircleProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &StdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &ProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &StdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &ProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestFullCircleRepProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedRepProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &RepStdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &RepProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleRepProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedRepProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &RepStdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &RepProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestFullCircleMapProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedMapProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &MapStdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &MapProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleMapProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedMapProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &MapStdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &MapProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestFullCircleOneofProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedOneofProtoTypes(popr, true) - protoData, err := proto.Marshal(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &OneofStdTypes{} - if err2 := proto.Unmarshal(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := proto.Marshal(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &OneofProtoTypes{} - if err3 := proto.Unmarshal(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} - -func TestJsonFullCircleOneofProtoToStd(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - protoMsg := NewPopulatedOneofProtoTypes(popr, true) - j := &jsonpb.Marshaler{} - protoData, err := j.MarshalToString(protoMsg) - if err != nil { - t.Fatal(err) - } - stdMsg := &OneofStdTypes{} - if err2 := jsonpb.UnmarshalString(protoData, stdMsg); err2 != nil { - t.Fatal(err) - } - stdData, err := j.MarshalToString(stdMsg) - if err != nil { - t.Fatal(err) - } - protoMsgOut := &OneofProtoTypes{} - if err3 := jsonpb.UnmarshalString(stdData, protoMsgOut); err3 != nil { - t.Fatal(err) - } - if !protoMsg.Equal(protoMsgOut) { - t.Fatalf("want %#v got %#v", protoMsg, protoMsgOut) - } -} diff --git a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/typespb_test.go b/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/typespb_test.go deleted file mode 100644 index 8da815c7b..000000000 --- a/vendor/github.com/gogo/protobuf/test/types/combos/unsafeunmarshaler/typespb_test.go +++ /dev/null @@ -1,1819 +0,0 @@ -// Code generated by protoc-gen-gogo. -// source: combos/unsafeunmarshaler/types.proto -// DO NOT EDIT! - -/* -Package types is a generated protocol buffer package. - -It is generated from these files: - combos/unsafeunmarshaler/types.proto - -It has these top-level messages: - KnownTypes - ProtoTypes - StdTypes - RepProtoTypes - RepStdTypes - MapProtoTypes - MapStdTypes - OneofProtoTypes - OneofStdTypes -*/ -package types - -import testing "testing" -import math_rand "math/rand" -import time "time" -import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" -import _ "github.com/gogo/protobuf/gogoproto" -import _ "github.com/gogo/protobuf/types" -import _ "github.com/gogo/protobuf/types" -import _ "github.com/gogo/protobuf/types" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestKnownTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkKnownTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*KnownTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedKnownTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkKnownTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedKnownTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &KnownTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &ProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*StdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &StdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkRepProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedRepProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkRepProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &RepProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkRepStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepStdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedRepStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkRepStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedRepStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &RepStdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkMapProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMapProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMapProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MapProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkMapStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapStdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedMapStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkMapStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMapStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &MapStdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofProtoTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkOneofProtoTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofProtoTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOneofProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOneofProtoTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofProtoTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OneofProtoTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofStdTypesProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func BenchmarkOneofStdTypesProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofStdTypes, 10000) - for i := 0; i < 10000; i++ { - pops[i] = NewPopulatedOneofStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) - if err != nil { - panic(err) - } - total += len(dAtA) - } - b.SetBytes(int64(total / b.N)) -} - -func BenchmarkOneofStdTypesProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - datas := make([][]byte, 10000) - for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedOneofStdTypes(popr, false)) - if err != nil { - panic(err) - } - datas[i] = dAtA - } - msg := &OneofStdTypes{} - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { - panic(err) - } - } - b.SetBytes(int64(total / b.N)) -} - -func TestKnownTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &KnownTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &ProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &StdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestRepProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestRepStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &RepStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMapProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestMapStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &MapStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOneofProtoTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofProtoTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOneofStdTypesJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &OneofStdTypes{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestKnownTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestKnownTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestRepStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestMapStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofProtoTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofProtoTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofStdTypesProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOneofStdTypesProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestKnownTypesCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedKnownTypes(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestProtoTypesCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedProtoTypes(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestRepProtoTypesCompare(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if c := p.Compare(msg); c != 0 { - t.Fatalf("%#v !Compare %#v, since %d", msg, p, c) - } - p2 := NewPopulatedRepProtoTypes(popr, false) - c := p.Compare(p2) - c2 := p2.Compare(p) - if c != (-1 * c2) { - t.Errorf("p.Compare(p2) = %d", c) - t.Errorf("p2.Compare(p) = %d", c2) - t.Errorf("p = %#v", p) - t.Errorf("p2 = %#v", p2) - } -} -func TestKnownTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedKnownTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &KnownTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &ProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &StdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestRepProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedRepProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &RepProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestRepStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedRepStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &RepStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMapProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMapProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MapProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestMapStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedMapStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &MapStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOneofProtoTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOneofProtoTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OneofProtoTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestOneofStdTypesVerboseEqual(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) - p := NewPopulatedOneofStdTypes(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - panic(err) - } - msg := &OneofStdTypes{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - panic(err) - } - if err := p.VerboseEqual(msg); err != nil { - t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) - } -} -func TestKnownTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedKnownTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkKnownTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*KnownTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedKnownTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*ProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*StdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkRepProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedRepProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestRepStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedRepStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkRepStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*RepStdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedRepStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMapProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMapProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestMapStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedMapStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkMapStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*MapStdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedMapStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofProtoTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofProtoTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOneofProtoTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofProtoTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOneofProtoTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -func TestOneofStdTypesSize(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOneofStdTypes(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - size := p.Size() - if len(dAtA) != size { - t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) - } - if size2 != size { - t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) - } - size3 := github_com_gogo_protobuf_proto.Size(p) - if size3 != size { - t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) - } -} - -func BenchmarkOneofStdTypesSize(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) - total := 0 - pops := make([]*OneofStdTypes, 1000) - for i := 0; i < 1000; i++ { - pops[i] = NewPopulatedOneofStdTypes(popr, false) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - total += pops[i%1000].Size() - } - b.SetBytes(int64(total / b.N)) -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go index 5115e7bff..3827e504a 100644 --- a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go +++ b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmerge.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: unmarshalmerge.proto -// DO NOT EDIT! /* Package unmarshalmerge is a generated protocol buffer package. @@ -27,7 +26,7 @@ import strings "strings" import reflect "reflect" import io "io" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" +import binary "encoding/binary" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -988,6 +987,110 @@ func (m *Big) Unmarshal(dAtA []byte) error { } return nil } +func (m *BigUnsafe) 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 ErrIntOverflowUnmarshalmerge + } + 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: BigUnsafe: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BigUnsafe: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sub", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUnmarshalmerge + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthUnmarshalmerge + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Sub == nil { + m.Sub = &Sub{} + } + if err := m.Sub.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Number", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowUnmarshalmerge + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Number = &v + default: + iNdEx = preIndex + skippy, err := skipUnmarshalmerge(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthUnmarshalmerge + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Sub) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1218,15 +1321,8 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Fixed64 = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Fixed64 = uint64(dAtA[iNdEx-8]) - m.Fixed64 |= uint64(dAtA[iNdEx-7]) << 8 - m.Fixed64 |= uint64(dAtA[iNdEx-6]) << 16 - m.Fixed64 |= uint64(dAtA[iNdEx-5]) << 24 - m.Fixed64 |= uint64(dAtA[iNdEx-4]) << 32 - m.Fixed64 |= uint64(dAtA[iNdEx-3]) << 40 - m.Fixed64 |= uint64(dAtA[iNdEx-2]) << 48 - m.Fixed64 |= uint64(dAtA[iNdEx-1]) << 56 case 8: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Fixed32", wireType) @@ -1235,11 +1331,8 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.Fixed32 = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Fixed32 = uint32(dAtA[iNdEx-4]) - m.Fixed32 |= uint32(dAtA[iNdEx-3]) << 8 - m.Fixed32 |= uint32(dAtA[iNdEx-2]) << 16 - m.Fixed32 |= uint32(dAtA[iNdEx-1]) << 24 case 9: if wireType != 5 { return fmt.Errorf("proto: wrong wireType = %d for field Sfixed32", wireType) @@ -1248,11 +1341,8 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + m.Sfixed32 = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - m.Sfixed32 = int32(dAtA[iNdEx-4]) - m.Sfixed32 |= int32(dAtA[iNdEx-3]) << 8 - m.Sfixed32 |= int32(dAtA[iNdEx-2]) << 16 - m.Sfixed32 |= int32(dAtA[iNdEx-1]) << 24 hasFields[0] |= uint64(0x00000008) case 10: if wireType != 1 { @@ -1262,15 +1352,8 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + m.Sfixed64 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - m.Sfixed64 = int64(dAtA[iNdEx-8]) - m.Sfixed64 |= int64(dAtA[iNdEx-7]) << 8 - m.Sfixed64 |= int64(dAtA[iNdEx-6]) << 16 - m.Sfixed64 |= int64(dAtA[iNdEx-5]) << 24 - m.Sfixed64 |= int64(dAtA[iNdEx-4]) << 32 - m.Sfixed64 |= int64(dAtA[iNdEx-3]) << 40 - m.Sfixed64 |= int64(dAtA[iNdEx-2]) << 48 - m.Sfixed64 |= int64(dAtA[iNdEx-1]) << 56 case 11: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) @@ -1308,16 +1391,16 @@ func (m *IntMerge) Unmarshal(dAtA []byte) error { } } if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int64") + return proto.NewRequiredNotSetError("Int64") } if hasFields[0]&uint64(0x00000002) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Sint32") + return proto.NewRequiredNotSetError("Sint32") } if hasFields[0]&uint64(0x00000004) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Uint32") + return proto.NewRequiredNotSetError("Uint32") } if hasFields[0]&uint64(0x00000008) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Sfixed32") + return proto.NewRequiredNotSetError("Sfixed32") } if iNdEx > l { @@ -1430,215 +1513,6 @@ var ( ErrIntOverflowUnmarshalmerge = fmt.Errorf("proto: integer overflow") ) -func (m *BigUnsafe) 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 ErrIntOverflowUnmarshalmergeUnsafe - } - 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: BigUnsafe: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BigUnsafe: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sub", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowUnmarshalmergeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthUnmarshalmergeUnsafe - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Sub == nil { - m.Sub = &Sub{} - } - if err := m.Sub.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Number", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowUnmarshalmergeUnsafe - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Number = &v - default: - iNdEx = preIndex - skippy, err := skipUnmarshalmergeUnsafe(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthUnmarshalmergeUnsafe - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipUnmarshalmergeUnsafe(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, ErrIntOverflowUnmarshalmergeUnsafe - } - 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, ErrIntOverflowUnmarshalmergeUnsafe - } - 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, ErrIntOverflowUnmarshalmergeUnsafe - } - 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, ErrInvalidLengthUnmarshalmergeUnsafe - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowUnmarshalmergeUnsafe - } - 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 := skipUnmarshalmergeUnsafe(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 ( - ErrInvalidLengthUnmarshalmergeUnsafe = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowUnmarshalmergeUnsafe = fmt.Errorf("proto: integer overflow") -) - func init() { proto.RegisterFile("unmarshalmerge.proto", fileDescriptorUnmarshalmerge) } var fileDescriptorUnmarshalmerge = []byte{ diff --git a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmergepb_test.go b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmergepb_test.go index 9d5ee29c4..1a34a8395 100644 --- a/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmergepb_test.go +++ b/vendor/github.com/gogo/protobuf/test/unmarshalmerge/unmarshalmergepb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: unmarshalmerge.proto -// DO NOT EDIT! /* Package unmarshalmerge is a generated protocol buffer package. @@ -17,14 +16,13 @@ It has these top-level messages: package unmarshalmerge import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" +import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" import unsafe "unsafe" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" import fmt "fmt" -import go_parser "go/parser" -import proto "github.com/gogo/protobuf/proto" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -35,14 +33,14 @@ var _ = math.Inf func TestBigProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBig(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Big{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -63,12 +61,12 @@ func TestBigProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkBigProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Big, 10000) for i := 0; i < 10000; i++ { @@ -76,7 +74,7 @@ func BenchmarkBigProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -86,11 +84,11 @@ func BenchmarkBigProtoMarshal(b *testing.B) { } func BenchmarkBigProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedBig(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedBig(popr, false)) if err != nil { panic(err) } @@ -100,7 +98,7 @@ func BenchmarkBigProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -108,19 +106,15 @@ func BenchmarkBigProtoUnmarshal(b *testing.B) { } func TestBigUnsafeProto(t *testing.T) { - var bigendian uint32 = 0x01020304 - if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { - t.Skip("unsafe does not work on big endian architectures") - } seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBigUnsafe(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &BigUnsafe{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -141,12 +135,12 @@ func TestBigUnsafeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkBigUnsafeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*BigUnsafe, 10000) for i := 0; i < 10000; i++ { @@ -154,7 +148,7 @@ func BenchmarkBigUnsafeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -164,11 +158,11 @@ func BenchmarkBigUnsafeProtoMarshal(b *testing.B) { } func BenchmarkBigUnsafeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedBigUnsafe(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedBigUnsafe(popr, false)) if err != nil { panic(err) } @@ -178,7 +172,7 @@ func BenchmarkBigUnsafeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -187,14 +181,14 @@ func BenchmarkBigUnsafeProtoUnmarshal(b *testing.B) { func TestSubProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSub(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Sub{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -215,12 +209,12 @@ func TestSubProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkSubProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*Sub, 10000) for i := 0; i < 10000; i++ { @@ -228,7 +222,7 @@ func BenchmarkSubProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -238,11 +232,11 @@ func BenchmarkSubProtoMarshal(b *testing.B) { } func BenchmarkSubProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedSub(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedSub(popr, false)) if err != nil { panic(err) } @@ -252,7 +246,7 @@ func BenchmarkSubProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -261,14 +255,14 @@ func BenchmarkSubProtoUnmarshal(b *testing.B) { func TestIntMergeProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIntMerge(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IntMerge{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -289,12 +283,12 @@ func TestIntMergeProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func BenchmarkIntMergeProtoMarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 pops := make([]*IntMerge, 10000) for i := 0; i < 10000; i++ { @@ -302,7 +296,7 @@ func BenchmarkIntMergeProtoMarshal(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) + dAtA, err := proto.Marshal(pops[i%10000]) if err != nil { panic(err) } @@ -312,11 +306,11 @@ func BenchmarkIntMergeProtoMarshal(b *testing.B) { } func BenchmarkIntMergeProtoUnmarshal(b *testing.B) { - popr := math_rand.New(math_rand.NewSource(616)) + popr := rand.New(rand.NewSource(616)) total := 0 datas := make([][]byte, 10000) for i := 0; i < 10000; i++ { - dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedIntMerge(popr, false)) + dAtA, err := proto.Marshal(NewPopulatedIntMerge(popr, false)) if err != nil { panic(err) } @@ -326,7 +320,7 @@ func BenchmarkIntMergeProtoUnmarshal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { total += len(datas[i%10000]) - if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { + if err := proto.Unmarshal(datas[i%10000], msg); err != nil { panic(err) } } @@ -335,15 +329,15 @@ func BenchmarkIntMergeProtoUnmarshal(b *testing.B) { func TestBigJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBig(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Big{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -356,15 +350,15 @@ func TestBigJSON(t *testing.T) { } func TestBigUnsafeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBigUnsafe(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &BigUnsafe{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -377,15 +371,15 @@ func TestBigUnsafeJSON(t *testing.T) { } func TestSubJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSub(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &Sub{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -398,15 +392,15 @@ func TestSubJSON(t *testing.T) { } func TestIntMergeJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIntMerge(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &IntMerge{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -419,11 +413,11 @@ func TestIntMergeJSON(t *testing.T) { } func TestBigProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBig(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Big{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -436,11 +430,11 @@ func TestBigProtoText(t *testing.T) { func TestBigProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBig(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Big{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -453,11 +447,11 @@ func TestBigProtoCompactText(t *testing.T) { func TestBigUnsafeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBigUnsafe(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &BigUnsafe{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -470,11 +464,11 @@ func TestBigUnsafeProtoText(t *testing.T) { func TestBigUnsafeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedBigUnsafe(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &BigUnsafe{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -487,11 +481,11 @@ func TestBigUnsafeProtoCompactText(t *testing.T) { func TestSubProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSub(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &Sub{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -504,11 +498,11 @@ func TestSubProtoText(t *testing.T) { func TestSubProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedSub(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &Sub{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -521,11 +515,11 @@ func TestSubProtoCompactText(t *testing.T) { func TestIntMergeProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIntMerge(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &IntMerge{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -538,11 +532,11 @@ func TestIntMergeProtoText(t *testing.T) { func TestIntMergeProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedIntMerge(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &IntMerge{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -554,14 +548,14 @@ func TestIntMergeProtoCompactText(t *testing.T) { } func TestBigVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedBig(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Big{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -573,14 +567,14 @@ func TestBigUnsafeVerboseEqual(t *testing.T) { if *(*byte)(unsafe.Pointer(&bigendian)) == 1 { t.Skip("unsafe does not work on big endian architectures") } - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedBigUnsafe(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &BigUnsafe{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -588,14 +582,14 @@ func TestBigUnsafeVerboseEqual(t *testing.T) { } } func TestSubVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSub(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &Sub{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -603,14 +597,14 @@ func TestSubVerboseEqual(t *testing.T) { } } func TestIntMergeVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedIntMerge(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &IntMerge{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -618,59 +612,59 @@ func TestIntMergeVerboseEqual(t *testing.T) { } } func TestBigGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedBig(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestBigUnsafeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedBigUnsafe(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestSubGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSub(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestIntMergeGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedIntMerge(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestBigStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedBig(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -679,7 +673,7 @@ func TestBigStringer(t *testing.T) { } } func TestBigUnsafeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedBigUnsafe(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -688,7 +682,7 @@ func TestBigUnsafeStringer(t *testing.T) { } } func TestSubStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedSub(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -697,7 +691,7 @@ func TestSubStringer(t *testing.T) { } } func TestIntMergeStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedIntMerge(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go index 0b7e9df60..6f5e93d45 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognized.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: unrecognized.proto -// DO NOT EDIT! /* Package unrecognized is a generated protocol buffer package. @@ -28,15 +27,16 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" +import binary "encoding/binary" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -176,296 +176,303 @@ func init() { proto.RegisterType((*OldU)(nil), "unrecognized.OldU") proto.RegisterType((*OldUnoM)(nil), "unrecognized.OldUnoM") } -func (this *A) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *A) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *B) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *B) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *D) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *D) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *C) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *C) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *U) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *U) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *UnoM) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *UnoM) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *OldA) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OldA) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *OldB) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OldB) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *OldC) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OldC) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *OldU) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OldU) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func (this *OldUnoM) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OldUnoM) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedDescription() } -func UnrecognizedDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func UnrecognizedDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3864 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0xe3, 0xe6, - 0x75, 0x16, 0x78, 0x91, 0xc8, 0x43, 0x8a, 0x82, 0x20, 0x59, 0xcb, 0x95, 0x63, 0x49, 0xcb, 0xd8, - 0xb1, 0x6c, 0x37, 0xda, 0x54, 0x5e, 0xed, 0x05, 0xdb, 0xc4, 0xa5, 0x48, 0x4a, 0xd6, 0x56, 0x12, - 0x19, 0x50, 0x8c, 0xd7, 0xe9, 0x03, 0x06, 0x02, 0x7f, 0x52, 0xd8, 0x05, 0x01, 0x06, 0x00, 0x77, - 0x2d, 0x3f, 0x74, 0xb6, 0xe3, 0xde, 0x32, 0x9d, 0xb6, 0x69, 0xd3, 0x99, 0x26, 0xae, 0xe3, 0x66, - 0x33, 0xd3, 0x3a, 0x4d, 0x7a, 0x49, 0x7a, 0x49, 0x33, 0x7d, 0xea, 0x4b, 0x5a, 0x3f, 0x75, 0x9c, - 0xb7, 0x3e, 0xf4, 0xc1, 0xbb, 0xf5, 0x4c, 0x6f, 0x6e, 0x9b, 0x36, 0x3b, 0xd3, 0xce, 0xec, 0x4b, - 0xe7, 0xbf, 0x81, 0x00, 0x49, 0x2d, 0x28, 0xcf, 0x38, 0x79, 0x92, 0x70, 0xfe, 0xf3, 0x7d, 0x38, - 0x38, 0xe7, 0xfc, 0xe7, 0x1c, 0xfc, 0x20, 0xfc, 0xd3, 0x06, 0xac, 0xb4, 0x6d, 0xbb, 0x6d, 0xa2, - 0xf3, 0x5d, 0xc7, 0xf6, 0xec, 0xc3, 0x5e, 0xeb, 0x7c, 0x13, 0xb9, 0xba, 0x63, 0x74, 0x3d, 0xdb, - 0x59, 0x23, 0x32, 0x69, 0x86, 0x6a, 0xac, 0x71, 0x8d, 0xc2, 0x1e, 0xcc, 0x6e, 0x19, 0x26, 0x2a, - 0xfb, 0x8a, 0x75, 0xe4, 0x49, 0x97, 0x21, 0xd1, 0x32, 0x4c, 0x94, 0x17, 0x56, 0xe2, 0xab, 0x99, - 0xf5, 0x27, 0xd7, 0x06, 0x40, 0x6b, 0x61, 0x44, 0x0d, 0x8b, 0x15, 0x82, 0x28, 0xbc, 0x97, 0x80, - 0xb9, 0x11, 0xab, 0x92, 0x04, 0x09, 0x4b, 0xeb, 0x60, 0x46, 0x61, 0x35, 0xad, 0x90, 0xff, 0xa5, - 0x3c, 0x4c, 0x75, 0x35, 0xfd, 0xa6, 0xd6, 0x46, 0xf9, 0x18, 0x11, 0xf3, 0x4b, 0x69, 0x09, 0xa0, - 0x89, 0xba, 0xc8, 0x6a, 0x22, 0x4b, 0x3f, 0xce, 0xc7, 0x57, 0xe2, 0xab, 0x69, 0x25, 0x20, 0x91, - 0x9e, 0x83, 0xd9, 0x6e, 0xef, 0xd0, 0x34, 0x74, 0x35, 0xa0, 0x06, 0x2b, 0xf1, 0xd5, 0xa4, 0x22, - 0xd2, 0x85, 0x72, 0x5f, 0xf9, 0x69, 0x98, 0xb9, 0x8d, 0xb4, 0x9b, 0x41, 0xd5, 0x0c, 0x51, 0xcd, - 0x61, 0x71, 0x40, 0xb1, 0x04, 0xd9, 0x0e, 0x72, 0x5d, 0xad, 0x8d, 0x54, 0xef, 0xb8, 0x8b, 0xf2, - 0x09, 0xf2, 0xf4, 0x2b, 0x43, 0x4f, 0x3f, 0xf8, 0xe4, 0x19, 0x86, 0x3a, 0x38, 0xee, 0x22, 0xa9, - 0x08, 0x69, 0x64, 0xf5, 0x3a, 0x94, 0x21, 0x79, 0x82, 0xff, 0x2a, 0x56, 0xaf, 0x33, 0xc8, 0x92, - 0xc2, 0x30, 0x46, 0x31, 0xe5, 0x22, 0xe7, 0x96, 0xa1, 0xa3, 0xfc, 0x24, 0x21, 0x78, 0x7a, 0x88, - 0xa0, 0x4e, 0xd7, 0x07, 0x39, 0x38, 0x4e, 0x2a, 0x41, 0x1a, 0xbd, 0xe2, 0x21, 0xcb, 0x35, 0x6c, - 0x2b, 0x3f, 0x45, 0x48, 0x9e, 0x1a, 0x11, 0x45, 0x64, 0x36, 0x07, 0x29, 0xfa, 0x38, 0xe9, 0x22, - 0x4c, 0xd9, 0x5d, 0xcf, 0xb0, 0x2d, 0x37, 0x9f, 0x5a, 0x11, 0x56, 0x33, 0xeb, 0x1f, 0x19, 0x99, - 0x08, 0x55, 0xaa, 0xa3, 0x70, 0x65, 0x69, 0x07, 0x44, 0xd7, 0xee, 0x39, 0x3a, 0x52, 0x75, 0xbb, - 0x89, 0x54, 0xc3, 0x6a, 0xd9, 0xf9, 0x34, 0x21, 0x58, 0x1e, 0x7e, 0x10, 0xa2, 0x58, 0xb2, 0x9b, - 0x68, 0xc7, 0x6a, 0xd9, 0x4a, 0xce, 0x0d, 0x5d, 0x4b, 0x0b, 0x30, 0xe9, 0x1e, 0x5b, 0x9e, 0xf6, - 0x4a, 0x3e, 0x4b, 0x32, 0x84, 0x5d, 0x15, 0xfe, 0x37, 0x09, 0x33, 0xe3, 0xa4, 0xd8, 0x55, 0x48, - 0xb6, 0xf0, 0x53, 0xe6, 0x63, 0xa7, 0xf1, 0x01, 0xc5, 0x84, 0x9d, 0x38, 0xf9, 0x01, 0x9d, 0x58, - 0x84, 0x8c, 0x85, 0x5c, 0x0f, 0x35, 0x69, 0x46, 0xc4, 0xc7, 0xcc, 0x29, 0xa0, 0xa0, 0xe1, 0x94, - 0x4a, 0x7c, 0xa0, 0x94, 0xba, 0x0e, 0x33, 0xbe, 0x49, 0xaa, 0xa3, 0x59, 0x6d, 0x9e, 0x9b, 0xe7, - 0xa3, 0x2c, 0x59, 0xab, 0x70, 0x9c, 0x82, 0x61, 0x4a, 0x0e, 0x85, 0xae, 0xa5, 0x32, 0x80, 0x6d, - 0x21, 0xbb, 0xa5, 0x36, 0x91, 0x6e, 0xe6, 0x53, 0x27, 0x78, 0xa9, 0x8a, 0x55, 0x86, 0xbc, 0x64, - 0x53, 0xa9, 0x6e, 0x4a, 0x57, 0xfa, 0xa9, 0x36, 0x75, 0x42, 0xa6, 0xec, 0xd1, 0x4d, 0x36, 0x94, - 0x6d, 0x0d, 0xc8, 0x39, 0x08, 0xe7, 0x3d, 0x6a, 0xb2, 0x27, 0x4b, 0x13, 0x23, 0xd6, 0x22, 0x9f, - 0x4c, 0x61, 0x30, 0xfa, 0x60, 0xd3, 0x4e, 0xf0, 0x52, 0xfa, 0x28, 0xf8, 0x02, 0x95, 0xa4, 0x15, - 0x90, 0x2a, 0x94, 0xe5, 0xc2, 0x7d, 0xad, 0x83, 0x16, 0x2f, 0x43, 0x2e, 0xec, 0x1e, 0x69, 0x1e, - 0x92, 0xae, 0xa7, 0x39, 0x1e, 0xc9, 0xc2, 0xa4, 0x42, 0x2f, 0x24, 0x11, 0xe2, 0xc8, 0x6a, 0x92, - 0x2a, 0x97, 0x54, 0xf0, 0xbf, 0x8b, 0x97, 0x60, 0x3a, 0x74, 0xfb, 0x71, 0x81, 0x85, 0x2f, 0x4d, - 0xc2, 0xfc, 0xa8, 0x9c, 0x1b, 0x99, 0xfe, 0x0b, 0x30, 0x69, 0xf5, 0x3a, 0x87, 0xc8, 0xc9, 0xc7, - 0x09, 0x03, 0xbb, 0x92, 0x8a, 0x90, 0x34, 0xb5, 0x43, 0x64, 0xe6, 0x13, 0x2b, 0xc2, 0x6a, 0x6e, - 0xfd, 0xb9, 0xb1, 0xb2, 0x7a, 0x6d, 0x17, 0x43, 0x14, 0x8a, 0x94, 0x3e, 0x05, 0x09, 0x56, 0xe2, - 0x30, 0xc3, 0xb3, 0xe3, 0x31, 0xe0, 0x5c, 0x54, 0x08, 0x4e, 0x7a, 0x1c, 0xd2, 0xf8, 0x2f, 0xf5, - 0xed, 0x24, 0xb1, 0x39, 0x85, 0x05, 0xd8, 0xaf, 0xd2, 0x22, 0xa4, 0x48, 0x9a, 0x35, 0x11, 0x6f, - 0x0d, 0xfe, 0x35, 0x0e, 0x4c, 0x13, 0xb5, 0xb4, 0x9e, 0xe9, 0xa9, 0xb7, 0x34, 0xb3, 0x87, 0x48, - 0xc2, 0xa4, 0x95, 0x2c, 0x13, 0x7e, 0x06, 0xcb, 0xa4, 0x65, 0xc8, 0xd0, 0xac, 0x34, 0xac, 0x26, - 0x7a, 0x85, 0x54, 0x9f, 0xa4, 0x42, 0x13, 0x75, 0x07, 0x4b, 0xf0, 0xed, 0x6f, 0xb8, 0xb6, 0xc5, - 0x43, 0x4b, 0x6e, 0x81, 0x05, 0xe4, 0xf6, 0x97, 0x06, 0x0b, 0xdf, 0x13, 0xa3, 0x1f, 0x6f, 0x30, - 0x17, 0x0b, 0xdf, 0x89, 0x41, 0x82, 0xec, 0xb7, 0x19, 0xc8, 0x1c, 0xbc, 0x5c, 0xab, 0xa8, 0xe5, - 0x6a, 0x63, 0x73, 0xb7, 0x22, 0x0a, 0x52, 0x0e, 0x80, 0x08, 0xb6, 0x76, 0xab, 0xc5, 0x03, 0x31, - 0xe6, 0x5f, 0xef, 0xec, 0x1f, 0x5c, 0xbc, 0x20, 0xc6, 0x7d, 0x40, 0x83, 0x0a, 0x12, 0x41, 0x85, - 0xe7, 0xd7, 0xc5, 0xa4, 0x24, 0x42, 0x96, 0x12, 0xec, 0x5c, 0xaf, 0x94, 0x2f, 0x5e, 0x10, 0x27, - 0xc3, 0x92, 0xe7, 0xd7, 0xc5, 0x29, 0x69, 0x1a, 0xd2, 0x44, 0xb2, 0x59, 0xad, 0xee, 0x8a, 0x29, - 0x9f, 0xb3, 0x7e, 0xa0, 0xec, 0xec, 0x6f, 0x8b, 0x69, 0x9f, 0x73, 0x5b, 0xa9, 0x36, 0x6a, 0x22, - 0xf8, 0x0c, 0x7b, 0x95, 0x7a, 0xbd, 0xb8, 0x5d, 0x11, 0x33, 0xbe, 0xc6, 0xe6, 0xcb, 0x07, 0x95, - 0xba, 0x98, 0x0d, 0x99, 0xf5, 0xfc, 0xba, 0x38, 0xed, 0xdf, 0xa2, 0xb2, 0xdf, 0xd8, 0x13, 0x73, - 0xd2, 0x2c, 0x4c, 0xd3, 0x5b, 0x70, 0x23, 0x66, 0x06, 0x44, 0x17, 0x2f, 0x88, 0x62, 0xdf, 0x10, - 0xca, 0x32, 0x1b, 0x12, 0x5c, 0xbc, 0x20, 0x4a, 0x85, 0x12, 0x24, 0x49, 0x76, 0x49, 0x12, 0xe4, - 0x76, 0x8b, 0x9b, 0x95, 0x5d, 0xb5, 0x5a, 0x3b, 0xd8, 0xa9, 0xee, 0x17, 0x77, 0x45, 0xa1, 0x2f, - 0x53, 0x2a, 0x9f, 0x6e, 0xec, 0x28, 0x95, 0xb2, 0x18, 0x0b, 0xca, 0x6a, 0x95, 0xe2, 0x41, 0xa5, - 0x2c, 0xc6, 0x0b, 0x3a, 0xcc, 0x8f, 0xaa, 0x33, 0x23, 0x77, 0x46, 0x20, 0xc4, 0xb1, 0x13, 0x42, - 0x4c, 0xb8, 0x86, 0x42, 0xfc, 0x35, 0x01, 0xe6, 0x46, 0xd4, 0xda, 0x91, 0x37, 0x79, 0x01, 0x92, - 0x34, 0x45, 0x69, 0xf7, 0x79, 0x66, 0x64, 0xd1, 0x26, 0x09, 0x3b, 0xd4, 0x81, 0x08, 0x2e, 0xd8, - 0x81, 0xe3, 0x27, 0x74, 0x60, 0x4c, 0x31, 0x64, 0xe4, 0x6b, 0x02, 0xe4, 0x4f, 0xe2, 0x8e, 0x28, - 0x14, 0xb1, 0x50, 0xa1, 0xb8, 0x3a, 0x68, 0xc0, 0xb9, 0x93, 0x9f, 0x61, 0xc8, 0x8a, 0xb7, 0x04, - 0x58, 0x18, 0x3d, 0xa8, 0x8c, 0xb4, 0xe1, 0x53, 0x30, 0xd9, 0x41, 0xde, 0x91, 0xcd, 0x9b, 0xf5, - 0xc7, 0x46, 0xb4, 0x00, 0xbc, 0x3c, 0xe8, 0x2b, 0x86, 0x0a, 0xf6, 0x90, 0xf8, 0x49, 0xd3, 0x06, - 0xb5, 0x66, 0xc8, 0xd2, 0xcf, 0xc7, 0xe0, 0xb1, 0x91, 0xe4, 0x23, 0x0d, 0x7d, 0x02, 0xc0, 0xb0, - 0xba, 0x3d, 0x8f, 0x36, 0x64, 0x5a, 0x9f, 0xd2, 0x44, 0x42, 0xf6, 0x3e, 0xae, 0x3d, 0x3d, 0xcf, - 0x5f, 0x8f, 0x93, 0x75, 0xa0, 0x22, 0xa2, 0x70, 0xb9, 0x6f, 0x68, 0x82, 0x18, 0xba, 0x74, 0xc2, - 0x93, 0x0e, 0xf5, 0xba, 0x4f, 0x80, 0xa8, 0x9b, 0x06, 0xb2, 0x3c, 0xd5, 0xf5, 0x1c, 0xa4, 0x75, - 0x0c, 0xab, 0x4d, 0x0a, 0x70, 0x4a, 0x4e, 0xb6, 0x34, 0xd3, 0x45, 0xca, 0x0c, 0x5d, 0xae, 0xf3, - 0x55, 0x8c, 0x20, 0x5d, 0xc6, 0x09, 0x20, 0x26, 0x43, 0x08, 0xba, 0xec, 0x23, 0x0a, 0xdf, 0x9c, - 0x82, 0x4c, 0x60, 0xac, 0x93, 0xce, 0x41, 0xf6, 0x86, 0x76, 0x4b, 0x53, 0xf9, 0xa8, 0x4e, 0x3d, - 0x91, 0xc1, 0xb2, 0x1a, 0x1b, 0xd7, 0x3f, 0x01, 0xf3, 0x44, 0xc5, 0xee, 0x79, 0xc8, 0x51, 0x75, - 0x53, 0x73, 0x5d, 0xe2, 0xb4, 0x14, 0x51, 0x95, 0xf0, 0x5a, 0x15, 0x2f, 0x95, 0xf8, 0x8a, 0xb4, - 0x01, 0x73, 0x04, 0xd1, 0xe9, 0x99, 0x9e, 0xd1, 0x35, 0x91, 0x8a, 0x5f, 0x1e, 0x5c, 0x52, 0x88, - 0x7d, 0xcb, 0x66, 0xb1, 0xc6, 0x1e, 0x53, 0xc0, 0x16, 0xb9, 0x52, 0x19, 0x9e, 0x20, 0xb0, 0x36, - 0xb2, 0x90, 0xa3, 0x79, 0x48, 0x45, 0x9f, 0xeb, 0x69, 0xa6, 0xab, 0x6a, 0x56, 0x53, 0x3d, 0xd2, - 0xdc, 0xa3, 0xfc, 0x3c, 0x26, 0xd8, 0x8c, 0xe5, 0x05, 0xe5, 0x2c, 0x56, 0xdc, 0x66, 0x7a, 0x15, - 0xa2, 0x56, 0xb4, 0x9a, 0x2f, 0x6a, 0xee, 0x91, 0x24, 0xc3, 0x02, 0x61, 0x71, 0x3d, 0xc7, 0xb0, - 0xda, 0xaa, 0x7e, 0x84, 0xf4, 0x9b, 0x6a, 0xcf, 0x6b, 0x5d, 0xce, 0x3f, 0x1e, 0xbc, 0x3f, 0xb1, - 0xb0, 0x4e, 0x74, 0x4a, 0x58, 0xa5, 0xe1, 0xb5, 0x2e, 0x4b, 0x75, 0xc8, 0xe2, 0x60, 0x74, 0x8c, - 0x57, 0x91, 0xda, 0xb2, 0x1d, 0xd2, 0x59, 0x72, 0x23, 0x76, 0x76, 0xc0, 0x83, 0x6b, 0x55, 0x06, - 0xd8, 0xb3, 0x9b, 0x48, 0x4e, 0xd6, 0x6b, 0x95, 0x4a, 0x59, 0xc9, 0x70, 0x96, 0x2d, 0xdb, 0xc1, - 0x09, 0xd5, 0xb6, 0x7d, 0x07, 0x67, 0x68, 0x42, 0xb5, 0x6d, 0xee, 0xde, 0x0d, 0x98, 0xd3, 0x75, - 0xfa, 0xcc, 0x86, 0xae, 0xb2, 0x11, 0xdf, 0xcd, 0x8b, 0x21, 0x67, 0xe9, 0xfa, 0x36, 0x55, 0x60, - 0x39, 0xee, 0x4a, 0x57, 0xe0, 0xb1, 0xbe, 0xb3, 0x82, 0xc0, 0xd9, 0xa1, 0xa7, 0x1c, 0x84, 0x6e, - 0xc0, 0x5c, 0xf7, 0x78, 0x18, 0x28, 0x85, 0xee, 0xd8, 0x3d, 0x1e, 0x84, 0x3d, 0x45, 0x5e, 0xdb, - 0x1c, 0xa4, 0x6b, 0x1e, 0x6a, 0xe6, 0xcf, 0x04, 0xb5, 0x03, 0x0b, 0xd2, 0x79, 0x10, 0x75, 0x5d, - 0x45, 0x96, 0x76, 0x68, 0x22, 0x55, 0x73, 0x90, 0xa5, 0xb9, 0xf9, 0xe5, 0xa0, 0x72, 0x4e, 0xd7, - 0x2b, 0x64, 0xb5, 0x48, 0x16, 0xa5, 0x67, 0x61, 0xd6, 0x3e, 0xbc, 0xa1, 0xd3, 0xcc, 0x52, 0xbb, - 0x0e, 0x6a, 0x19, 0xaf, 0xe4, 0x9f, 0x24, 0x6e, 0x9a, 0xc1, 0x0b, 0x24, 0xaf, 0x6a, 0x44, 0x2c, - 0x3d, 0x03, 0xa2, 0xee, 0x1e, 0x69, 0x4e, 0x97, 0xb4, 0x76, 0xb7, 0xab, 0xe9, 0x28, 0xff, 0x14, - 0x55, 0xa5, 0xf2, 0x7d, 0x2e, 0xc6, 0x99, 0xed, 0xde, 0x36, 0x5a, 0x1e, 0x67, 0x7c, 0x9a, 0x66, - 0x36, 0x91, 0x31, 0xb6, 0xeb, 0x30, 0xdf, 0xb3, 0x0c, 0xcb, 0x43, 0x4e, 0xd7, 0x41, 0x78, 0x88, - 0xa7, 0x3b, 0x31, 0xff, 0xcf, 0x53, 0x27, 0x8c, 0xe1, 0x8d, 0xa0, 0x36, 0x4d, 0x00, 0x65, 0xae, - 0x37, 0x2c, 0x2c, 0xc8, 0x90, 0x0d, 0xe6, 0x85, 0x94, 0x06, 0x9a, 0x19, 0xa2, 0x80, 0x7b, 0x6c, - 0xa9, 0x5a, 0xc6, 0xdd, 0xf1, 0xb3, 0x15, 0x31, 0x86, 0xbb, 0xf4, 0xee, 0xce, 0x41, 0x45, 0x55, - 0x1a, 0xfb, 0x07, 0x3b, 0x7b, 0x15, 0x31, 0xfe, 0x6c, 0x3a, 0xf5, 0x2f, 0x53, 0xe2, 0x9d, 0x3b, - 0x77, 0xee, 0xc4, 0x0a, 0xdf, 0x8b, 0x41, 0x2e, 0x3c, 0x19, 0x4b, 0x3f, 0x05, 0x67, 0xf8, 0x6b, - 0xac, 0x8b, 0x3c, 0xf5, 0xb6, 0xe1, 0x90, 0x54, 0xed, 0x68, 0x74, 0xb6, 0xf4, 0xbd, 0x3c, 0xcf, - 0xb4, 0xea, 0xc8, 0x7b, 0xc9, 0x70, 0x70, 0x22, 0x76, 0x34, 0x4f, 0xda, 0x85, 0x65, 0xcb, 0x56, - 0x5d, 0x4f, 0xb3, 0x9a, 0x9a, 0xd3, 0x54, 0xfb, 0x07, 0x08, 0xaa, 0xa6, 0xeb, 0xc8, 0x75, 0x6d, - 0xda, 0x22, 0x7c, 0x96, 0x8f, 0x58, 0x76, 0x9d, 0x29, 0xf7, 0x6b, 0x67, 0x91, 0xa9, 0x0e, 0x64, - 0x44, 0xfc, 0xa4, 0x8c, 0x78, 0x1c, 0xd2, 0x1d, 0xad, 0xab, 0x22, 0xcb, 0x73, 0x8e, 0xc9, 0x3c, - 0x97, 0x52, 0x52, 0x1d, 0xad, 0x5b, 0xc1, 0xd7, 0x1f, 0x5e, 0x0c, 0x82, 0x7e, 0xfc, 0xc7, 0x38, - 0x64, 0x83, 0x33, 0x1d, 0x1e, 0x91, 0x75, 0x52, 0xbf, 0x05, 0xb2, 0xc3, 0x3f, 0xfa, 0xc8, 0x09, - 0x70, 0xad, 0x84, 0x0b, 0xbb, 0x3c, 0x49, 0x27, 0x2d, 0x85, 0x22, 0x71, 0x53, 0xc5, 0x7b, 0x1a, - 0xd1, 0xf9, 0x3d, 0xa5, 0xb0, 0x2b, 0x69, 0x1b, 0x26, 0x6f, 0xb8, 0x84, 0x7b, 0x92, 0x70, 0x3f, - 0xf9, 0x68, 0xee, 0x6b, 0x75, 0x42, 0x9e, 0xbe, 0x56, 0x57, 0xf7, 0xab, 0xca, 0x5e, 0x71, 0x57, - 0x61, 0x70, 0xe9, 0x2c, 0x24, 0x4c, 0xed, 0xd5, 0xe3, 0x70, 0x0b, 0x20, 0xa2, 0x71, 0x1d, 0x7f, - 0x16, 0x12, 0xb7, 0x91, 0x76, 0x33, 0x5c, 0x78, 0x89, 0xe8, 0x43, 0x4c, 0xfd, 0xf3, 0x90, 0x24, - 0xfe, 0x92, 0x00, 0x98, 0xc7, 0xc4, 0x09, 0x29, 0x05, 0x89, 0x52, 0x55, 0xc1, 0xe9, 0x2f, 0x42, - 0x96, 0x4a, 0xd5, 0xda, 0x4e, 0xa5, 0x54, 0x11, 0x63, 0x85, 0x0d, 0x98, 0xa4, 0x4e, 0xc0, 0x5b, - 0xc3, 0x77, 0x83, 0x38, 0xc1, 0x2e, 0x19, 0x87, 0xc0, 0x57, 0x1b, 0x7b, 0x9b, 0x15, 0x45, 0x8c, - 0x05, 0xc3, 0xeb, 0x42, 0x36, 0x38, 0xce, 0xfd, 0x68, 0x72, 0xea, 0xaf, 0x05, 0xc8, 0x04, 0xc6, - 0x33, 0x3c, 0x18, 0x68, 0xa6, 0x69, 0xdf, 0x56, 0x35, 0xd3, 0xd0, 0x5c, 0x96, 0x14, 0x40, 0x44, - 0x45, 0x2c, 0x19, 0x37, 0x68, 0x3f, 0x12, 0xe3, 0xdf, 0x14, 0x40, 0x1c, 0x1c, 0xed, 0x06, 0x0c, - 0x14, 0x7e, 0xac, 0x06, 0xbe, 0x21, 0x40, 0x2e, 0x3c, 0xcf, 0x0d, 0x98, 0x77, 0xee, 0xc7, 0x6a, - 0xde, 0xbb, 0x31, 0x98, 0x0e, 0x4d, 0x71, 0xe3, 0x5a, 0xf7, 0x39, 0x98, 0x35, 0x9a, 0xa8, 0xd3, - 0xb5, 0x3d, 0x64, 0xe9, 0xc7, 0xaa, 0x89, 0x6e, 0x21, 0x33, 0x5f, 0x20, 0x85, 0xe2, 0xfc, 0xa3, - 0xe7, 0xc4, 0xb5, 0x9d, 0x3e, 0x6e, 0x17, 0xc3, 0xe4, 0xb9, 0x9d, 0x72, 0x65, 0xaf, 0x56, 0x3d, - 0xa8, 0xec, 0x97, 0x5e, 0x56, 0x1b, 0xfb, 0x3f, 0xb3, 0x5f, 0x7d, 0x69, 0x5f, 0x11, 0x8d, 0x01, - 0xb5, 0x0f, 0x71, 0xab, 0xd7, 0x40, 0x1c, 0x34, 0x4a, 0x3a, 0x03, 0xa3, 0xcc, 0x12, 0x27, 0xa4, - 0x39, 0x98, 0xd9, 0xaf, 0xaa, 0xf5, 0x9d, 0x72, 0x45, 0xad, 0x6c, 0x6d, 0x55, 0x4a, 0x07, 0x75, - 0xfa, 0xe2, 0xec, 0x6b, 0x1f, 0x84, 0x37, 0xf5, 0xeb, 0x71, 0x98, 0x1b, 0x61, 0x89, 0x54, 0x64, - 0x33, 0x3b, 0x7d, 0x8d, 0xf8, 0xf8, 0x38, 0xd6, 0xaf, 0xe1, 0xa9, 0xa0, 0xa6, 0x39, 0x1e, 0x1b, - 0xf1, 0x9f, 0x01, 0xec, 0x25, 0xcb, 0x33, 0x5a, 0x06, 0x72, 0xd8, 0x39, 0x03, 0x1d, 0xe4, 0x67, - 0xfa, 0x72, 0x7a, 0xd4, 0xf0, 0x13, 0x20, 0x75, 0x6d, 0xd7, 0xf0, 0x8c, 0x5b, 0x48, 0x35, 0x2c, - 0x7e, 0x28, 0x81, 0x07, 0xfb, 0x84, 0x22, 0xf2, 0x95, 0x1d, 0xcb, 0xf3, 0xb5, 0x2d, 0xd4, 0xd6, - 0x06, 0xb4, 0x71, 0x01, 0x8f, 0x2b, 0x22, 0x5f, 0xf1, 0xb5, 0xcf, 0x41, 0xb6, 0x69, 0xf7, 0xf0, - 0x98, 0x44, 0xf5, 0x70, 0xbf, 0x10, 0x94, 0x0c, 0x95, 0xf9, 0x2a, 0x6c, 0x8e, 0xed, 0x9f, 0x86, - 0x64, 0x95, 0x0c, 0x95, 0x51, 0x95, 0xa7, 0x61, 0x46, 0x6b, 0xb7, 0x1d, 0x4c, 0xce, 0x89, 0xe8, - 0x64, 0x9e, 0xf3, 0xc5, 0x44, 0x71, 0xf1, 0x1a, 0xa4, 0xb8, 0x1f, 0x70, 0x4b, 0xc6, 0x9e, 0x50, - 0xbb, 0xf4, 0x4c, 0x2a, 0xb6, 0x9a, 0x56, 0x52, 0x16, 0x5f, 0x3c, 0x07, 0x59, 0xc3, 0x55, 0xfb, - 0x87, 0xa3, 0xb1, 0x95, 0xd8, 0x6a, 0x4a, 0xc9, 0x18, 0xae, 0x7f, 0x1a, 0x56, 0x78, 0x2b, 0x06, - 0xb9, 0xf0, 0xe1, 0xae, 0x54, 0x86, 0x94, 0x69, 0xeb, 0x1a, 0x49, 0x2d, 0xfa, 0x65, 0x61, 0x35, - 0xe2, 0x3c, 0x78, 0x6d, 0x97, 0xe9, 0x2b, 0x3e, 0x72, 0xf1, 0xef, 0x05, 0x48, 0x71, 0xb1, 0xb4, - 0x00, 0x89, 0xae, 0xe6, 0x1d, 0x11, 0xba, 0xe4, 0x66, 0x4c, 0x14, 0x14, 0x72, 0x8d, 0xe5, 0x6e, - 0x57, 0xb3, 0x48, 0x0a, 0x30, 0x39, 0xbe, 0xc6, 0x71, 0x35, 0x91, 0xd6, 0x24, 0x63, 0xbf, 0xdd, - 0xe9, 0x20, 0xcb, 0x73, 0x79, 0x5c, 0x99, 0xbc, 0xc4, 0xc4, 0xd2, 0x73, 0x30, 0xeb, 0x39, 0x9a, - 0x61, 0x86, 0x74, 0x13, 0x44, 0x57, 0xe4, 0x0b, 0xbe, 0xb2, 0x0c, 0x67, 0x39, 0x6f, 0x13, 0x79, - 0x9a, 0x7e, 0x84, 0x9a, 0x7d, 0xd0, 0x24, 0x39, 0x39, 0x3c, 0xc3, 0x14, 0xca, 0x6c, 0x9d, 0x63, - 0x0b, 0xdf, 0x17, 0x60, 0x96, 0xbf, 0xa8, 0x34, 0x7d, 0x67, 0xed, 0x01, 0x68, 0x96, 0x65, 0x7b, - 0x41, 0x77, 0x0d, 0xa7, 0xf2, 0x10, 0x6e, 0xad, 0xe8, 0x83, 0x94, 0x00, 0xc1, 0x62, 0x07, 0xa0, - 0xbf, 0x72, 0xa2, 0xdb, 0x96, 0x21, 0xc3, 0x4e, 0xee, 0xc9, 0xe7, 0x1f, 0xfa, 0x6a, 0x0b, 0x54, - 0x84, 0xdf, 0x68, 0xa4, 0x79, 0x48, 0x1e, 0xa2, 0xb6, 0x61, 0xb1, 0xf3, 0x44, 0x7a, 0xc1, 0x4f, - 0x29, 0x13, 0xfe, 0x29, 0xe5, 0xe6, 0x75, 0x98, 0xd3, 0xed, 0xce, 0xa0, 0xb9, 0x9b, 0xe2, 0xc0, - 0xeb, 0xb5, 0xfb, 0xa2, 0xf0, 0x59, 0xe8, 0x8f, 0x98, 0x5f, 0x8b, 0xc5, 0xb7, 0x6b, 0x9b, 0xdf, - 0x88, 0x2d, 0x6e, 0x53, 0x5c, 0x8d, 0x3f, 0xa6, 0x82, 0x5a, 0x26, 0xd2, 0xb1, 0xe9, 0xf0, 0xc3, - 0x8f, 0xc1, 0xc7, 0xdb, 0x86, 0x77, 0xd4, 0x3b, 0x5c, 0xd3, 0xed, 0xce, 0xf9, 0xb6, 0xdd, 0xb6, - 0xfb, 0x9f, 0xbb, 0xf0, 0x15, 0xb9, 0x20, 0xff, 0xb1, 0x4f, 0x5e, 0x69, 0x5f, 0xba, 0x18, 0xf9, - 0x7d, 0x4c, 0xde, 0x87, 0x39, 0xa6, 0xac, 0x92, 0x33, 0x77, 0xfa, 0x6a, 0x20, 0x3d, 0xf2, 0xdc, - 0x25, 0xff, 0xed, 0xf7, 0x48, 0xaf, 0x56, 0x66, 0x19, 0x14, 0xaf, 0xd1, 0x17, 0x08, 0x59, 0x81, - 0xc7, 0x42, 0x7c, 0x74, 0x5f, 0x22, 0x27, 0x82, 0xf1, 0x7b, 0x8c, 0x71, 0x2e, 0xc0, 0x58, 0x67, - 0x50, 0xb9, 0x04, 0xd3, 0xa7, 0xe1, 0xfa, 0x5b, 0xc6, 0x95, 0x45, 0x41, 0x92, 0x6d, 0x98, 0x21, - 0x24, 0x7a, 0xcf, 0xf5, 0xec, 0x0e, 0x29, 0x7a, 0x8f, 0xa6, 0xf9, 0xbb, 0xf7, 0xe8, 0x46, 0xc9, - 0x61, 0x58, 0xc9, 0x47, 0xc9, 0x32, 0x90, 0xcf, 0x0c, 0x4d, 0xa4, 0x9b, 0x11, 0x0c, 0x6f, 0x33, - 0x43, 0x7c, 0x7d, 0xf9, 0x33, 0x30, 0x8f, 0xff, 0x27, 0x35, 0x29, 0x68, 0x49, 0xf4, 0x29, 0x53, - 0xfe, 0xfb, 0xaf, 0xd1, 0xbd, 0x38, 0xe7, 0x13, 0x04, 0x6c, 0x0a, 0x44, 0xb1, 0x8d, 0x3c, 0x0f, - 0x39, 0xae, 0xaa, 0x99, 0xa3, 0xcc, 0x0b, 0xbc, 0xa6, 0xe7, 0xbf, 0xfc, 0x7e, 0x38, 0x8a, 0xdb, - 0x14, 0x59, 0x34, 0x4d, 0xb9, 0x01, 0x67, 0x46, 0x64, 0xc5, 0x18, 0x9c, 0xaf, 0x33, 0xce, 0xf9, - 0xa1, 0xcc, 0xc0, 0xb4, 0x35, 0xe0, 0x72, 0x3f, 0x96, 0x63, 0x70, 0xfe, 0x2e, 0xe3, 0x94, 0x18, - 0x96, 0x87, 0x14, 0x33, 0x5e, 0x83, 0xd9, 0x5b, 0xc8, 0x39, 0xb4, 0x5d, 0x76, 0x34, 0x32, 0x06, - 0xdd, 0x1b, 0x8c, 0x6e, 0x86, 0x01, 0xc9, 0x59, 0x09, 0xe6, 0xba, 0x02, 0xa9, 0x96, 0xa6, 0xa3, - 0x31, 0x28, 0xbe, 0xc2, 0x28, 0xa6, 0xb0, 0x3e, 0x86, 0x16, 0x21, 0xdb, 0xb6, 0x59, 0x5b, 0x8a, - 0x86, 0xbf, 0xc9, 0xe0, 0x19, 0x8e, 0x61, 0x14, 0x5d, 0xbb, 0xdb, 0x33, 0x71, 0xcf, 0x8a, 0xa6, - 0xf8, 0x3d, 0x4e, 0xc1, 0x31, 0x8c, 0xe2, 0x14, 0x6e, 0xfd, 0x2a, 0xa7, 0x70, 0x03, 0xfe, 0x7c, - 0x01, 0x32, 0xb6, 0x65, 0x1e, 0xdb, 0xd6, 0x38, 0x46, 0xdc, 0x65, 0x0c, 0xc0, 0x20, 0x98, 0xe0, - 0x2a, 0xa4, 0xc7, 0x0d, 0xc4, 0xef, 0xbf, 0xcf, 0xb7, 0x07, 0x8f, 0xc0, 0x36, 0xcc, 0xf0, 0x02, - 0x65, 0xd8, 0xd6, 0x18, 0x14, 0x7f, 0xc0, 0x28, 0x72, 0x01, 0x18, 0x7b, 0x0c, 0x0f, 0xb9, 0x5e, - 0x1b, 0x8d, 0x43, 0xf2, 0x16, 0x7f, 0x0c, 0x06, 0x61, 0xae, 0x3c, 0x44, 0x96, 0x7e, 0x34, 0x1e, - 0xc3, 0xd7, 0xb9, 0x2b, 0x39, 0x06, 0x53, 0x94, 0x60, 0xba, 0xa3, 0x39, 0xee, 0x91, 0x66, 0x8e, - 0x15, 0x8e, 0x3f, 0x64, 0x1c, 0x59, 0x1f, 0xc4, 0x3c, 0xd2, 0xb3, 0x4e, 0x43, 0xf3, 0x0d, 0xee, - 0x91, 0x00, 0x8c, 0x6d, 0x3d, 0xd7, 0x23, 0x07, 0x50, 0xa7, 0x61, 0xfb, 0x26, 0xdf, 0x7a, 0x14, - 0xbb, 0x17, 0x64, 0xbc, 0x0a, 0x69, 0xd7, 0x78, 0x75, 0x2c, 0x9a, 0x3f, 0xe2, 0x91, 0x26, 0x00, - 0x0c, 0x7e, 0x19, 0xce, 0x8e, 0x6c, 0x13, 0x63, 0x90, 0xfd, 0x31, 0x23, 0x5b, 0x18, 0xd1, 0x2a, - 0x58, 0x49, 0x38, 0x2d, 0xe5, 0x9f, 0xf0, 0x92, 0x80, 0x06, 0xb8, 0x6a, 0xf8, 0x45, 0xc1, 0xd5, - 0x5a, 0xa7, 0xf3, 0xda, 0x9f, 0x72, 0xaf, 0x51, 0x6c, 0xc8, 0x6b, 0x07, 0xb0, 0xc0, 0x18, 0x4f, - 0x17, 0xd7, 0x6f, 0xf1, 0xc2, 0x4a, 0xd1, 0x8d, 0x70, 0x74, 0x7f, 0x16, 0x16, 0x7d, 0x77, 0xf2, - 0x89, 0xd4, 0x55, 0x3b, 0x5a, 0x77, 0x0c, 0xe6, 0x6f, 0x33, 0x66, 0x5e, 0xf1, 0xfd, 0x91, 0xd6, - 0xdd, 0xd3, 0xba, 0x98, 0xfc, 0x3a, 0xe4, 0x39, 0x79, 0xcf, 0x72, 0x90, 0x6e, 0xb7, 0x2d, 0xe3, - 0x55, 0xd4, 0x1c, 0x83, 0xfa, 0xcf, 0x06, 0x42, 0xd5, 0x08, 0xc0, 0x31, 0xf3, 0x0e, 0x88, 0xfe, - 0xac, 0xa2, 0x1a, 0x9d, 0xae, 0xed, 0x78, 0x11, 0x8c, 0x7f, 0xce, 0x23, 0xe5, 0xe3, 0x76, 0x08, - 0x4c, 0xae, 0x40, 0x8e, 0x5c, 0x8e, 0x9b, 0x92, 0x7f, 0xc1, 0x88, 0xa6, 0xfb, 0x28, 0x56, 0x38, - 0x74, 0xbb, 0xd3, 0xd5, 0x9c, 0x71, 0xea, 0xdf, 0x5f, 0xf2, 0xc2, 0xc1, 0x20, 0xac, 0x70, 0x78, - 0xc7, 0x5d, 0x84, 0xbb, 0xfd, 0x18, 0x0c, 0xdf, 0xe1, 0x85, 0x83, 0x63, 0x18, 0x05, 0x1f, 0x18, - 0xc6, 0xa0, 0xf8, 0x2b, 0x4e, 0xc1, 0x31, 0x98, 0xe2, 0xd3, 0xfd, 0x46, 0xeb, 0xa0, 0xb6, 0xe1, - 0x7a, 0x0e, 0x9d, 0x83, 0x1f, 0x4d, 0xf5, 0xdd, 0xf7, 0xc3, 0x43, 0x98, 0x12, 0x80, 0xca, 0xd7, - 0x60, 0x66, 0x60, 0xc4, 0x90, 0xa2, 0x7e, 0xb3, 0x90, 0xff, 0xf9, 0x07, 0xac, 0x18, 0x85, 0x27, - 0x0c, 0x79, 0x17, 0xc7, 0x3d, 0x3c, 0x07, 0x44, 0x93, 0xbd, 0xf6, 0xc0, 0x0f, 0x7d, 0x68, 0x0c, - 0x90, 0xb7, 0x60, 0x3a, 0x34, 0x03, 0x44, 0x53, 0xfd, 0x02, 0xa3, 0xca, 0x06, 0x47, 0x00, 0x79, - 0x03, 0x12, 0xb8, 0x9f, 0x47, 0xc3, 0x7f, 0x91, 0xc1, 0x89, 0xba, 0xfc, 0x49, 0x48, 0xf1, 0x3e, - 0x1e, 0x0d, 0xfd, 0x25, 0x06, 0xf5, 0x21, 0x18, 0xce, 0x7b, 0x78, 0x34, 0xfc, 0x97, 0x39, 0x9c, - 0x43, 0x30, 0x7c, 0x7c, 0x17, 0xfe, 0xcd, 0xaf, 0x26, 0x58, 0x1d, 0xe6, 0xbe, 0xbb, 0x0a, 0x53, - 0xac, 0x79, 0x47, 0xa3, 0x3f, 0xcf, 0x6e, 0xce, 0x11, 0xf2, 0x25, 0x48, 0x8e, 0xe9, 0xf0, 0x5f, - 0x63, 0x50, 0xaa, 0x2f, 0x97, 0x20, 0x13, 0x68, 0xd8, 0xd1, 0xf0, 0x5f, 0x67, 0xf0, 0x20, 0x0a, - 0x9b, 0xce, 0x1a, 0x76, 0x34, 0xc1, 0x6f, 0x70, 0xd3, 0x19, 0x02, 0xbb, 0x8d, 0xf7, 0xea, 0x68, - 0xf4, 0x17, 0xb8, 0xd7, 0x39, 0x44, 0x7e, 0x01, 0xd2, 0x7e, 0xfd, 0x8d, 0xc6, 0xff, 0x26, 0xc3, - 0xf7, 0x31, 0xd8, 0x03, 0x81, 0xfa, 0x1f, 0x4d, 0xf1, 0x5b, 0xdc, 0x03, 0x01, 0x14, 0xde, 0x46, - 0x83, 0x3d, 0x3d, 0x9a, 0xe9, 0x8b, 0x7c, 0x1b, 0x0d, 0xb4, 0x74, 0x1c, 0x4d, 0x52, 0x06, 0xa3, - 0x29, 0x7e, 0x9b, 0x47, 0x93, 0xe8, 0x63, 0x33, 0x06, 0x9b, 0x64, 0x34, 0xc7, 0xef, 0x70, 0x33, - 0x06, 0x7a, 0xa4, 0x5c, 0x03, 0x69, 0xb8, 0x41, 0x46, 0xf3, 0x7d, 0x89, 0xf1, 0xcd, 0x0e, 0xf5, - 0x47, 0xf9, 0x25, 0x58, 0x18, 0xdd, 0x1c, 0xa3, 0x59, 0xbf, 0xfc, 0x60, 0xe0, 0x75, 0x26, 0xd8, - 0x1b, 0xe5, 0x83, 0x7e, 0x95, 0x0d, 0x36, 0xc6, 0x68, 0xda, 0xd7, 0x1f, 0x84, 0x0b, 0x6d, 0xb0, - 0x2f, 0xca, 0x45, 0x80, 0x7e, 0x4f, 0x8a, 0xe6, 0x7a, 0x83, 0x71, 0x05, 0x40, 0x78, 0x6b, 0xb0, - 0x96, 0x14, 0x8d, 0xff, 0x0a, 0xdf, 0x1a, 0x0c, 0x81, 0xb7, 0x06, 0xef, 0x46, 0xd1, 0xe8, 0x37, - 0xf9, 0xd6, 0xe0, 0x10, 0xf9, 0x2a, 0xa4, 0xac, 0x9e, 0x69, 0xe2, 0xdc, 0x92, 0x1e, 0xfd, 0x33, - 0xa2, 0xfc, 0xbf, 0x3e, 0x64, 0x60, 0x0e, 0x90, 0x37, 0x20, 0x89, 0x3a, 0x87, 0xa8, 0x19, 0x85, - 0xfc, 0xb7, 0x87, 0xbc, 0x9e, 0x60, 0x6d, 0xf9, 0x05, 0x00, 0xfa, 0x32, 0x4d, 0xbe, 0x12, 0x45, - 0x60, 0xff, 0xfd, 0x21, 0xfb, 0x85, 0x42, 0x1f, 0xd2, 0x27, 0xa0, 0xbf, 0x77, 0x78, 0x34, 0xc1, - 0xfb, 0x61, 0x02, 0xf2, 0x02, 0x7e, 0x05, 0xa6, 0x6e, 0xb8, 0xb6, 0xe5, 0x69, 0xed, 0x28, 0xf4, - 0x7f, 0x30, 0x34, 0xd7, 0xc7, 0x0e, 0xeb, 0xd8, 0x0e, 0xf2, 0xb4, 0xb6, 0x1b, 0x85, 0xfd, 0x4f, - 0x86, 0xf5, 0x01, 0x18, 0xac, 0x6b, 0xae, 0x37, 0xce, 0x73, 0xff, 0x17, 0x07, 0x73, 0x00, 0x36, - 0x1a, 0xff, 0x7f, 0x13, 0x1d, 0x47, 0x61, 0x7f, 0xc0, 0x8d, 0x66, 0xfa, 0xf2, 0x27, 0x21, 0x8d, - 0xff, 0xa5, 0xbf, 0xda, 0x89, 0x00, 0xff, 0x37, 0x03, 0xf7, 0x11, 0xf8, 0xce, 0xae, 0xd7, 0xf4, - 0x8c, 0x68, 0x67, 0xff, 0x0f, 0x8b, 0x34, 0xd7, 0x97, 0x8b, 0x90, 0x71, 0xbd, 0x66, 0xb3, 0xc7, - 0x26, 0x9a, 0x08, 0xf8, 0x0f, 0x1f, 0xfa, 0x2f, 0xb9, 0x3e, 0x66, 0xf3, 0xdc, 0xe8, 0xc3, 0x3a, - 0xd8, 0xb6, 0xb7, 0x6d, 0x7a, 0x4c, 0x07, 0x0f, 0xa7, 0x70, 0x19, 0xea, 0xef, 0x4a, 0x76, 0xb4, - 0x96, 0x0d, 0xca, 0x16, 0x4f, 0x77, 0x2e, 0x57, 0xf8, 0x69, 0x10, 0x8a, 0xd2, 0x02, 0x4c, 0x12, - 0x03, 0x7f, 0x92, 0x1c, 0x36, 0xc6, 0x15, 0x76, 0x25, 0x3d, 0x01, 0xc2, 0x26, 0x3b, 0xf5, 0x9c, - 0x59, 0x0b, 0xdd, 0x79, 0x53, 0x11, 0x36, 0xe5, 0xc4, 0x3b, 0x77, 0x97, 0x27, 0x0a, 0x3a, 0x08, - 0x9b, 0x58, 0xb3, 0x44, 0x3e, 0x45, 0x0d, 0x69, 0x96, 0x14, 0xa1, 0x84, 0x97, 0xcb, 0xec, 0x27, - 0x5e, 0x03, 0xcb, 0x65, 0x45, 0x28, 0x4b, 0x2b, 0x20, 0x6c, 0x91, 0xe3, 0xf7, 0xcc, 0xba, 0x14, - 0x5e, 0xae, 0x9a, 0xcd, 0x92, 0x22, 0x6c, 0x15, 0x1e, 0x07, 0xa1, 0x1c, 0x30, 0x53, 0x08, 0x9a, - 0x59, 0xf8, 0xa2, 0x00, 0x42, 0xc9, 0x5f, 0x5d, 0x27, 0x37, 0x12, 0xd8, 0xea, 0xba, 0x2f, 0x7f, - 0x9e, 0x9d, 0x31, 0xb3, 0x2b, 0x5f, 0x7e, 0x81, 0x1c, 0x99, 0x72, 0xfd, 0x0b, 0xbe, 0x7c, 0x83, - 0xfc, 0x38, 0x37, 0xcb, 0xe4, 0x1b, 0xbe, 0xfc, 0x22, 0xf9, 0x00, 0xc0, 0xef, 0x7e, 0xd1, 0x97, - 0x5f, 0x22, 0x3f, 0xf1, 0x8e, 0x31, 0xf9, 0xa5, 0xc2, 0x15, 0x10, 0x1a, 0x21, 0xa3, 0xe2, 0x27, - 0x1a, 0x35, 0xcd, 0x8d, 0x62, 0x2e, 0x7d, 0x11, 0x12, 0x0d, 0xcb, 0xde, 0x3b, 0x35, 0x5a, 0xfc, - 0x95, 0xbb, 0xcb, 0x13, 0x5f, 0xb8, 0xbb, 0x3c, 0xf1, 0xd5, 0xbb, 0xcb, 0x13, 0x84, 0x69, 0x0b, - 0x12, 0x55, 0xb3, 0x79, 0x72, 0x84, 0x57, 0xfa, 0x11, 0x1e, 0xf6, 0x7c, 0x20, 0xc8, 0xd7, 0x08, - 0xcf, 0x26, 0xd6, 0xe7, 0x71, 0x1e, 0x19, 0xa9, 0xd2, 0x18, 0xb1, 0xfc, 0x39, 0xc2, 0x55, 0x3a, - 0x29, 0x9c, 0x1f, 0x38, 0x90, 0xe3, 0x06, 0xe6, 0x22, 0xb9, 0x7f, 0x63, 0xe0, 0xfe, 0xe9, 0x91, - 0xf7, 0x0f, 0x78, 0xbd, 0xb0, 0x0d, 0x53, 0x18, 0x17, 0x0c, 0xcc, 0x98, 0x50, 0x39, 0x1b, 0x0c, - 0xcc, 0xe6, 0x85, 0xb7, 0xef, 0x2d, 0x4d, 0xbc, 0x73, 0x6f, 0x69, 0xe2, 0x1f, 0xee, 0x2d, 0x4d, - 0xbc, 0x7b, 0x6f, 0x49, 0xf8, 0xc1, 0xbd, 0x25, 0xe1, 0xff, 0xee, 0x2d, 0x09, 0x77, 0xee, 0x2f, - 0x09, 0x5f, 0xbf, 0xbf, 0x24, 0x7c, 0xeb, 0xfe, 0x92, 0xf0, 0xdd, 0xfb, 0x4b, 0xc2, 0xdb, 0xf7, - 0x97, 0x84, 0x77, 0xee, 0x2f, 0x09, 0xef, 0xde, 0x5f, 0x12, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, - 0x11, 0xdc, 0xfd, 0x4d, 0x5a, 0x32, 0x00, 0x00, + // 3976 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5b, 0x5d, 0x70, 0xdc, 0xd6, + 0x75, 0x26, 0xf6, 0x87, 0xdc, 0x3d, 0xbb, 0x5c, 0x82, 0x20, 0x2d, 0xad, 0xe8, 0x98, 0xa4, 0xd6, + 0x76, 0x44, 0xdb, 0x0d, 0x95, 0xd2, 0x12, 0x65, 0x41, 0x4d, 0x9c, 0xe5, 0xee, 0x92, 0xa6, 0x4a, + 0x72, 0x19, 0x90, 0x8c, 0x7f, 0x32, 0x1d, 0x0c, 0x88, 0xbd, 0x5c, 0x42, 0xc2, 0x02, 0x08, 0x80, + 0x95, 0x4c, 0x4d, 0xa7, 0xa3, 0x8e, 0xfb, 0x97, 0xe9, 0xb4, 0x4d, 0x9b, 0xce, 0x24, 0x71, 0x1d, + 0x37, 0xea, 0x4c, 0xeb, 0x34, 0xfd, 0x4b, 0x9a, 0x36, 0x4d, 0xfb, 0xd4, 0x97, 0xb4, 0x7e, 0xea, + 0x38, 0x6f, 0x7d, 0xe8, 0x83, 0xa5, 0x7a, 0xa6, 0x7f, 0x6e, 0x93, 0xb6, 0x7e, 0xc8, 0x8c, 0x5e, + 0x32, 0xf7, 0x0f, 0x0b, 0xec, 0x2e, 0x05, 0xd0, 0x33, 0x76, 0x9e, 0x44, 0x9c, 0x7b, 0xbe, 0xef, + 0x1e, 0x9c, 0x73, 0xee, 0x39, 0xf7, 0x5e, 0xac, 0xe0, 0x07, 0x97, 0x61, 0xbe, 0x6d, 0xdb, 0x6d, + 0x13, 0x9d, 0x77, 0x5c, 0xdb, 0xb7, 0xf7, 0xbb, 0x07, 0xe7, 0x5b, 0xc8, 0xd3, 0x5d, 0xc3, 0xf1, + 0x6d, 0x77, 0x91, 0xc8, 0xa4, 0x09, 0xaa, 0xb1, 0xc8, 0x35, 0x2a, 0x9b, 0x30, 0xb9, 0x6a, 0x98, + 0xa8, 0x1e, 0x28, 0xee, 0x20, 0x5f, 0x7a, 0x06, 0x32, 0x07, 0x86, 0x89, 0xca, 0xc2, 0x7c, 0x7a, + 0xa1, 0xb0, 0xf4, 0xd8, 0x62, 0x1f, 0x68, 0x31, 0x8a, 0xd8, 0xc6, 0x62, 0x85, 0x20, 0x2a, 0xef, + 0x64, 0x60, 0x6a, 0xc8, 0xa8, 0x24, 0x41, 0xc6, 0xd2, 0x3a, 0x98, 0x51, 0x58, 0xc8, 0x2b, 0xe4, + 0x6f, 0xa9, 0x0c, 0x63, 0x8e, 0xa6, 0x5f, 0xd7, 0xda, 0xa8, 0x9c, 0x22, 0x62, 0xfe, 0x28, 0xcd, + 0x02, 0xb4, 0x90, 0x83, 0xac, 0x16, 0xb2, 0xf4, 0xa3, 0x72, 0x7a, 0x3e, 0xbd, 0x90, 0x57, 0x42, + 0x12, 0xe9, 0x29, 0x98, 0x74, 0xba, 0xfb, 0xa6, 0xa1, 0xab, 0x21, 0x35, 0x98, 0x4f, 0x2f, 0x64, + 0x15, 0x91, 0x0e, 0xd4, 0x7b, 0xca, 0xe7, 0x60, 0xe2, 0x26, 0xd2, 0xae, 0x87, 0x55, 0x0b, 0x44, + 0xb5, 0x84, 0xc5, 0x21, 0xc5, 0x1a, 0x14, 0x3b, 0xc8, 0xf3, 0xb4, 0x36, 0x52, 0xfd, 0x23, 0x07, + 0x95, 0x33, 0xe4, 0xed, 0xe7, 0x07, 0xde, 0xbe, 0xff, 0xcd, 0x0b, 0x0c, 0xb5, 0x7b, 0xe4, 0x20, + 0xa9, 0x0a, 0x79, 0x64, 0x75, 0x3b, 0x94, 0x21, 0x7b, 0x8c, 0xff, 0x1a, 0x56, 0xb7, 0xd3, 0xcf, + 0x92, 0xc3, 0x30, 0x46, 0x31, 0xe6, 0x21, 0xf7, 0x86, 0xa1, 0xa3, 0xf2, 0x28, 0x21, 0x38, 0x37, + 0x40, 0xb0, 0x43, 0xc7, 0xfb, 0x39, 0x38, 0x4e, 0xaa, 0x41, 0x1e, 0xbd, 0xec, 0x23, 0xcb, 0x33, + 0x6c, 0xab, 0x3c, 0x46, 0x48, 0x1e, 0x1f, 0x12, 0x45, 0x64, 0xb6, 0xfa, 0x29, 0x7a, 0x38, 0x69, + 0x19, 0xc6, 0x6c, 0xc7, 0x37, 0x6c, 0xcb, 0x2b, 0xe7, 0xe6, 0x85, 0x85, 0xc2, 0xd2, 0x47, 0x86, + 0x26, 0x42, 0x93, 0xea, 0x28, 0x5c, 0x59, 0x5a, 0x07, 0xd1, 0xb3, 0xbb, 0xae, 0x8e, 0x54, 0xdd, + 0x6e, 0x21, 0xd5, 0xb0, 0x0e, 0xec, 0x72, 0x9e, 0x10, 0xcc, 0x0d, 0xbe, 0x08, 0x51, 0xac, 0xd9, + 0x2d, 0xb4, 0x6e, 0x1d, 0xd8, 0x4a, 0xc9, 0x8b, 0x3c, 0x4b, 0xa7, 0x60, 0xd4, 0x3b, 0xb2, 0x7c, + 0xed, 0xe5, 0x72, 0x91, 0x64, 0x08, 0x7b, 0xaa, 0xfc, 0xed, 0x28, 0x4c, 0x24, 0x49, 0xb1, 0x2b, + 0x90, 0x3d, 0xc0, 0x6f, 0x59, 0x4e, 0x9d, 0xc4, 0x07, 0x14, 0x13, 0x75, 0xe2, 0xe8, 0xfb, 0x74, + 0x62, 0x15, 0x0a, 0x16, 0xf2, 0x7c, 0xd4, 0xa2, 0x19, 0x91, 0x4e, 0x98, 0x53, 0x40, 0x41, 0x83, + 0x29, 0x95, 0x79, 0x5f, 0x29, 0xf5, 0x02, 0x4c, 0x04, 0x26, 0xa9, 0xae, 0x66, 0xb5, 0x79, 0x6e, + 0x9e, 0x8f, 0xb3, 0x64, 0xb1, 0xc1, 0x71, 0x0a, 0x86, 0x29, 0x25, 0x14, 0x79, 0x96, 0xea, 0x00, + 0xb6, 0x85, 0xec, 0x03, 0xb5, 0x85, 0x74, 0xb3, 0x9c, 0x3b, 0xc6, 0x4b, 0x4d, 0xac, 0x32, 0xe0, + 0x25, 0x9b, 0x4a, 0x75, 0x53, 0xba, 0xdc, 0x4b, 0xb5, 0xb1, 0x63, 0x32, 0x65, 0x93, 0x2e, 0xb2, + 0x81, 0x6c, 0xdb, 0x83, 0x92, 0x8b, 0x70, 0xde, 0xa3, 0x16, 0x7b, 0xb3, 0x3c, 0x31, 0x62, 0x31, + 0xf6, 0xcd, 0x14, 0x06, 0xa3, 0x2f, 0x36, 0xee, 0x86, 0x1f, 0xa5, 0x47, 0x21, 0x10, 0xa8, 0x24, + 0xad, 0x80, 0x54, 0xa1, 0x22, 0x17, 0x6e, 0x69, 0x1d, 0x34, 0x73, 0x0b, 0x4a, 0x51, 0xf7, 0x48, + 0xd3, 0x90, 0xf5, 0x7c, 0xcd, 0xf5, 0x49, 0x16, 0x66, 0x15, 0xfa, 0x20, 0x89, 0x90, 0x46, 0x56, + 0x8b, 0x54, 0xb9, 0xac, 0x82, 0xff, 0x94, 0x3e, 0xd5, 0x7b, 0xe1, 0x34, 0x79, 0xe1, 0x8f, 0x0e, + 0x46, 0x34, 0xc2, 0xdc, 0xff, 0xde, 0x33, 0x97, 0x60, 0x3c, 0xf2, 0x02, 0x49, 0xa7, 0xae, 0xfc, + 0x3c, 0x3c, 0x34, 0x94, 0x5a, 0x7a, 0x01, 0xa6, 0xbb, 0x96, 0x61, 0xf9, 0xc8, 0x75, 0x5c, 0x84, + 0x33, 0x96, 0x4e, 0x55, 0xfe, 0xb7, 0xb1, 0x63, 0x72, 0x6e, 0x2f, 0xac, 0x4d, 0x59, 0x94, 0xa9, + 0xee, 0xa0, 0xf0, 0xc9, 0x7c, 0xee, 0xdf, 0xc7, 0xc4, 0xdb, 0xb7, 0x6f, 0xdf, 0x4e, 0x55, 0xbe, + 0x3c, 0x0a, 0xd3, 0xc3, 0xd6, 0xcc, 0xd0, 0xe5, 0x7b, 0x0a, 0x46, 0xad, 0x6e, 0x67, 0x1f, 0xb9, + 0xc4, 0x49, 0x59, 0x85, 0x3d, 0x49, 0x55, 0xc8, 0x9a, 0xda, 0x3e, 0x32, 0xcb, 0x99, 0x79, 0x61, + 0xa1, 0xb4, 0xf4, 0x54, 0xa2, 0x55, 0xb9, 0xb8, 0x81, 0x21, 0x0a, 0x45, 0x4a, 0x9f, 0x84, 0x0c, + 0x2b, 0xd1, 0x98, 0xe1, 0xc9, 0x64, 0x0c, 0x78, 0x2d, 0x29, 0x04, 0x27, 0x3d, 0x0c, 0x79, 0xfc, + 0x2f, 0xcd, 0x8d, 0x51, 0x62, 0x73, 0x0e, 0x0b, 0x70, 0x5e, 0x48, 0x33, 0x90, 0x23, 0xcb, 0xa4, + 0x85, 0x78, 0x6b, 0x0b, 0x9e, 0x71, 0x62, 0xb5, 0xd0, 0x81, 0xd6, 0x35, 0x7d, 0xf5, 0x86, 0x66, + 0x76, 0x11, 0x49, 0xf8, 0xbc, 0x52, 0x64, 0xc2, 0xcf, 0x60, 0x99, 0x34, 0x07, 0x05, 0xba, 0xaa, + 0x0c, 0xab, 0x85, 0x5e, 0x26, 0xd5, 0x33, 0xab, 0xd0, 0x85, 0xb6, 0x8e, 0x25, 0x78, 0xfa, 0x6b, + 0x9e, 0x6d, 0xf1, 0xd4, 0x24, 0x53, 0x60, 0x01, 0x99, 0xfe, 0x52, 0x7f, 0xe1, 0x7e, 0x64, 0xf8, + 0xeb, 0xf5, 0xe7, 0x54, 0xe5, 0x3b, 0x29, 0xc8, 0x90, 0x7a, 0x31, 0x01, 0x85, 0xdd, 0x17, 0xb7, + 0x1b, 0x6a, 0xbd, 0xb9, 0xb7, 0xb2, 0xd1, 0x10, 0x05, 0xa9, 0x04, 0x40, 0x04, 0xab, 0x1b, 0xcd, + 0xea, 0xae, 0x98, 0x0a, 0x9e, 0xd7, 0xb7, 0x76, 0x97, 0x2f, 0x88, 0xe9, 0x00, 0xb0, 0x47, 0x05, + 0x99, 0xb0, 0xc2, 0xd3, 0x4b, 0x62, 0x56, 0x12, 0xa1, 0x48, 0x09, 0xd6, 0x5f, 0x68, 0xd4, 0x97, + 0x2f, 0x88, 0xa3, 0x51, 0xc9, 0xd3, 0x4b, 0xe2, 0x98, 0x34, 0x0e, 0x79, 0x22, 0x59, 0x69, 0x36, + 0x37, 0xc4, 0x5c, 0xc0, 0xb9, 0xb3, 0xab, 0xac, 0x6f, 0xad, 0x89, 0xf9, 0x80, 0x73, 0x4d, 0x69, + 0xee, 0x6d, 0x8b, 0x10, 0x30, 0x6c, 0x36, 0x76, 0x76, 0xaa, 0x6b, 0x0d, 0xb1, 0x10, 0x68, 0xac, + 0xbc, 0xb8, 0xdb, 0xd8, 0x11, 0x8b, 0x11, 0xb3, 0x9e, 0x5e, 0x12, 0xc7, 0x83, 0x29, 0x1a, 0x5b, + 0x7b, 0x9b, 0x62, 0x49, 0x9a, 0x84, 0x71, 0x3a, 0x05, 0x37, 0x62, 0xa2, 0x4f, 0xb4, 0x7c, 0x41, + 0x14, 0x7b, 0x86, 0x50, 0x96, 0xc9, 0x88, 0x60, 0xf9, 0x82, 0x28, 0x55, 0x6a, 0x90, 0x25, 0xd9, + 0x25, 0x49, 0x50, 0xda, 0xa8, 0xae, 0x34, 0x36, 0xd4, 0xe6, 0xf6, 0xee, 0x7a, 0x73, 0xab, 0xba, + 0x21, 0x0a, 0x3d, 0x99, 0xd2, 0xf8, 0xf4, 0xde, 0xba, 0xd2, 0xa8, 0x8b, 0xa9, 0xb0, 0x6c, 0xbb, + 0x51, 0xdd, 0x6d, 0xd4, 0xc5, 0x74, 0x45, 0x87, 0xe9, 0x61, 0x75, 0x72, 0xe8, 0xca, 0x08, 0x85, + 0x38, 0x75, 0x4c, 0x88, 0x09, 0xd7, 0x40, 0x88, 0xff, 0x35, 0x05, 0x53, 0x43, 0x7a, 0xc5, 0xd0, + 0x49, 0x9e, 0x85, 0x2c, 0x4d, 0x51, 0xda, 0x3d, 0x9f, 0x18, 0xda, 0x74, 0x48, 0xc2, 0x0e, 0x74, + 0x50, 0x82, 0x0b, 0xef, 0x20, 0xd2, 0xc7, 0xec, 0x20, 0x30, 0xc5, 0x40, 0x4d, 0xff, 0xb9, 0x81, + 0x9a, 0x4e, 0xdb, 0xde, 0x72, 0x92, 0xb6, 0x47, 0x64, 0x27, 0xab, 0xed, 0xd9, 0x21, 0xb5, 0xfd, + 0x0a, 0x4c, 0x0e, 0x10, 0x25, 0xae, 0xb1, 0xaf, 0x08, 0x50, 0x3e, 0xce, 0x39, 0x31, 0x95, 0x2e, + 0x15, 0xa9, 0x74, 0x57, 0xfa, 0x3d, 0x78, 0xf6, 0xf8, 0x20, 0x0c, 0xc4, 0xfa, 0x0d, 0x01, 0x4e, + 0x0d, 0xdf, 0x29, 0x0e, 0xb5, 0xe1, 0x93, 0x30, 0xda, 0x41, 0xfe, 0xa1, 0xcd, 0x77, 0x4b, 0x1f, + 0x1d, 0xd2, 0x83, 0xf1, 0x70, 0x7f, 0xb0, 0x19, 0x2a, 0xdc, 0xc4, 0xd3, 0xc7, 0x6d, 0xf7, 0xa8, + 0x35, 0x03, 0x96, 0x7e, 0x3e, 0x05, 0x0f, 0x0d, 0x25, 0x1f, 0x6a, 0xe8, 0x23, 0x00, 0x86, 0xe5, + 0x74, 0x7d, 0xba, 0x23, 0xa2, 0x05, 0x36, 0x4f, 0x24, 0xa4, 0x78, 0xe1, 0xe2, 0xd9, 0xf5, 0x83, + 0xf1, 0x34, 0x19, 0x07, 0x2a, 0x22, 0x0a, 0xcf, 0xf4, 0x0c, 0xcd, 0x10, 0x43, 0x67, 0x8f, 0x79, + 0xd3, 0x81, 0xc4, 0xfc, 0x38, 0x88, 0xba, 0x69, 0x20, 0xcb, 0x57, 0x3d, 0xdf, 0x45, 0x5a, 0xc7, + 0xb0, 0xda, 0xa4, 0x83, 0xe4, 0xe4, 0xec, 0x81, 0x66, 0x7a, 0x48, 0x99, 0xa0, 0xc3, 0x3b, 0x7c, + 0x14, 0x23, 0x48, 0x02, 0xb9, 0x21, 0xc4, 0x68, 0x04, 0x41, 0x87, 0x03, 0x44, 0xe5, 0xdb, 0x39, + 0x28, 0x84, 0xf6, 0xd5, 0xd2, 0x59, 0x28, 0x5e, 0xd3, 0x6e, 0x68, 0x2a, 0x3f, 0x2b, 0x51, 0x4f, + 0x14, 0xb0, 0x6c, 0x9b, 0x9d, 0x97, 0x3e, 0x0e, 0xd3, 0x44, 0xc5, 0xee, 0xfa, 0xc8, 0x55, 0x75, + 0x53, 0xf3, 0x3c, 0xe2, 0xb4, 0x1c, 0x51, 0x95, 0xf0, 0x58, 0x13, 0x0f, 0xd5, 0xf8, 0x88, 0x74, + 0x11, 0xa6, 0x08, 0xa2, 0xd3, 0x35, 0x7d, 0xc3, 0x31, 0x91, 0x8a, 0x4f, 0x6f, 0x1e, 0xe9, 0x24, + 0x81, 0x65, 0x93, 0x58, 0x63, 0x93, 0x29, 0x60, 0x8b, 0x3c, 0xa9, 0x0e, 0x8f, 0x10, 0x58, 0x1b, + 0x59, 0xc8, 0xd5, 0x7c, 0xa4, 0xa2, 0xcf, 0x75, 0x35, 0xd3, 0x53, 0x35, 0xab, 0xa5, 0x1e, 0x6a, + 0xde, 0x61, 0x79, 0x1a, 0x13, 0xac, 0xa4, 0xca, 0x82, 0x72, 0x06, 0x2b, 0xae, 0x31, 0xbd, 0x06, + 0x51, 0xab, 0x5a, 0xad, 0xe7, 0x34, 0xef, 0x50, 0x92, 0xe1, 0x14, 0x61, 0xf1, 0x7c, 0xd7, 0xb0, + 0xda, 0xaa, 0x7e, 0x88, 0xf4, 0xeb, 0x6a, 0xd7, 0x3f, 0x78, 0xa6, 0xfc, 0x70, 0x78, 0x7e, 0x62, + 0xe1, 0x0e, 0xd1, 0xa9, 0x61, 0x95, 0x3d, 0xff, 0xe0, 0x19, 0x69, 0x07, 0x8a, 0x38, 0x18, 0x1d, + 0xe3, 0x16, 0x52, 0x0f, 0x6c, 0x97, 0xb4, 0xc6, 0xd2, 0x90, 0xd2, 0x14, 0xf2, 0xe0, 0x62, 0x93, + 0x01, 0x36, 0xed, 0x16, 0x92, 0xb3, 0x3b, 0xdb, 0x8d, 0x46, 0x5d, 0x29, 0x70, 0x96, 0x55, 0xdb, + 0xc5, 0x09, 0xd5, 0xb6, 0x03, 0x07, 0x17, 0x68, 0x42, 0xb5, 0x6d, 0xee, 0xde, 0x8b, 0x30, 0xa5, + 0xeb, 0xf4, 0x9d, 0x0d, 0x5d, 0x65, 0x67, 0x2c, 0xaf, 0x2c, 0x46, 0x9c, 0xa5, 0xeb, 0x6b, 0x54, + 0x81, 0xe5, 0xb8, 0x27, 0x5d, 0x86, 0x87, 0x7a, 0xce, 0x0a, 0x03, 0x27, 0x07, 0xde, 0xb2, 0x1f, + 0x7a, 0x11, 0xa6, 0x9c, 0xa3, 0x41, 0xa0, 0x14, 0x99, 0xd1, 0x39, 0xea, 0x87, 0x5d, 0x82, 0x69, + 0xe7, 0xd0, 0x19, 0xc4, 0x3d, 0x19, 0xc6, 0x49, 0xce, 0xa1, 0xd3, 0x0f, 0x7c, 0x9c, 0x1c, 0xb8, + 0x5d, 0xa4, 0x6b, 0x3e, 0x6a, 0x95, 0x4f, 0x87, 0xd5, 0x43, 0x03, 0xd2, 0x79, 0x10, 0x75, 0x5d, + 0x45, 0x96, 0xb6, 0x6f, 0x22, 0x55, 0x73, 0x91, 0xa5, 0x79, 0xe5, 0xb9, 0xb0, 0x72, 0x49, 0xd7, + 0x1b, 0x64, 0xb4, 0x4a, 0x06, 0xa5, 0x27, 0x61, 0xd2, 0xde, 0xbf, 0xa6, 0xd3, 0x94, 0x54, 0x1d, + 0x17, 0x1d, 0x18, 0x2f, 0x97, 0x1f, 0x23, 0xfe, 0x9d, 0xc0, 0x03, 0x24, 0x21, 0xb7, 0x89, 0x58, + 0x7a, 0x02, 0x44, 0xdd, 0x3b, 0xd4, 0x5c, 0x87, 0xd4, 0x64, 0xcf, 0xd1, 0x74, 0x54, 0x7e, 0x9c, + 0xaa, 0x52, 0xf9, 0x16, 0x17, 0xe3, 0x25, 0xe1, 0xdd, 0x34, 0x0e, 0x7c, 0xce, 0x78, 0x8e, 0x2e, + 0x09, 0x22, 0x63, 0x6c, 0x0b, 0x20, 0x62, 0x57, 0x44, 0x26, 0x5e, 0x20, 0x6a, 0x25, 0xe7, 0xd0, + 0x09, 0xcf, 0xfb, 0x28, 0x8c, 0x63, 0xcd, 0xde, 0xa4, 0x4f, 0xd0, 0x0d, 0x99, 0x73, 0x18, 0x9a, + 0xf1, 0x03, 0xdb, 0x1b, 0x57, 0x64, 0x28, 0x86, 0xf3, 0x53, 0xca, 0x03, 0xcd, 0x50, 0x51, 0xc0, + 0x9b, 0x95, 0x5a, 0xb3, 0x8e, 0xb7, 0x19, 0x2f, 0x35, 0xc4, 0x14, 0xde, 0xee, 0x6c, 0xac, 0xef, + 0x36, 0x54, 0x65, 0x6f, 0x6b, 0x77, 0x7d, 0xb3, 0x21, 0xa6, 0xc3, 0xfb, 0xea, 0xef, 0xa5, 0xa0, + 0x14, 0x3d, 0x22, 0x49, 0x3f, 0x03, 0xa7, 0xf9, 0x7d, 0x86, 0x87, 0x7c, 0xf5, 0xa6, 0xe1, 0x92, + 0x25, 0xd3, 0xd1, 0x68, 0xfb, 0x0a, 0x82, 0x36, 0xcd, 0xb4, 0x76, 0x90, 0xff, 0xbc, 0xe1, 0xe2, + 0x05, 0xd1, 0xd1, 0x7c, 0x69, 0x03, 0xe6, 0x2c, 0x5b, 0xf5, 0x7c, 0xcd, 0x6a, 0x69, 0x6e, 0x4b, + 0xed, 0xdd, 0x24, 0xa9, 0x9a, 0xae, 0x23, 0xcf, 0xb3, 0x69, 0xab, 0x0a, 0x58, 0x3e, 0x62, 0xd9, + 0x3b, 0x4c, 0xb9, 0x57, 0xc3, 0xab, 0x4c, 0xb5, 0x2f, 0xc1, 0xd2, 0xc7, 0x25, 0xd8, 0xc3, 0x90, + 0xef, 0x68, 0x8e, 0x8a, 0x2c, 0xdf, 0x3d, 0x22, 0x1b, 0xe3, 0x9c, 0x92, 0xeb, 0x68, 0x4e, 0x03, + 0x3f, 0x7f, 0x38, 0xe7, 0x93, 0x7f, 0x49, 0x43, 0x31, 0xbc, 0x39, 0xc6, 0x67, 0x0d, 0x9d, 0xf4, + 0x11, 0x81, 0x54, 0x9a, 0x47, 0x1f, 0xb8, 0x95, 0x5e, 0xac, 0xe1, 0x06, 0x23, 0x8f, 0xd2, 0x2d, + 0xab, 0x42, 0x91, 0xb8, 0xb9, 0xe3, 0xda, 0x82, 0xe8, 0x16, 0x21, 0xa7, 0xb0, 0x27, 0x69, 0x0d, + 0x46, 0xaf, 0x79, 0x84, 0x7b, 0x94, 0x70, 0x3f, 0xf6, 0x60, 0xee, 0xab, 0x3b, 0x84, 0x3c, 0x7f, + 0x75, 0x47, 0xdd, 0x6a, 0x2a, 0x9b, 0xd5, 0x0d, 0x85, 0xc1, 0xa5, 0x33, 0x90, 0x31, 0xb5, 0x5b, + 0x47, 0xd1, 0x56, 0x44, 0x44, 0x49, 0x1d, 0x7f, 0x06, 0x32, 0x37, 0x91, 0x76, 0x3d, 0xda, 0x00, + 0x88, 0xe8, 0x03, 0x4c, 0xfd, 0xf3, 0x90, 0x25, 0xfe, 0x92, 0x00, 0x98, 0xc7, 0xc4, 0x11, 0x29, + 0x07, 0x99, 0x5a, 0x53, 0xc1, 0xe9, 0x2f, 0x42, 0x91, 0x4a, 0xd5, 0xed, 0xf5, 0x46, 0xad, 0x21, + 0xa6, 0x2a, 0x17, 0x61, 0x94, 0x3a, 0x01, 0x2f, 0x8d, 0xc0, 0x0d, 0xe2, 0x08, 0x7b, 0x64, 0x1c, + 0x02, 0x1f, 0xdd, 0xdb, 0x5c, 0x69, 0x28, 0x62, 0x2a, 0x1c, 0x5e, 0x0f, 0x8a, 0xe1, 0x7d, 0xf1, + 0x87, 0x93, 0x53, 0x7f, 0x27, 0x40, 0x21, 0xb4, 0xcf, 0xc5, 0x1b, 0x14, 0xcd, 0x34, 0xed, 0x9b, + 0xaa, 0x66, 0x1a, 0x9a, 0xc7, 0x92, 0x02, 0x88, 0xa8, 0x8a, 0x25, 0x49, 0x83, 0xf6, 0xa1, 0x18, + 0xff, 0xba, 0x00, 0x62, 0xff, 0x16, 0xb3, 0xcf, 0x40, 0xe1, 0x27, 0x6a, 0xe0, 0x6b, 0x02, 0x94, + 0xa2, 0xfb, 0xca, 0x3e, 0xf3, 0xce, 0xfe, 0x44, 0xcd, 0x7b, 0x3b, 0x05, 0xe3, 0x91, 0xdd, 0x64, + 0x52, 0xeb, 0x3e, 0x07, 0x93, 0x46, 0x0b, 0x75, 0x1c, 0xdb, 0x47, 0x96, 0x7e, 0xa4, 0x9a, 0xe8, + 0x06, 0x32, 0xcb, 0x15, 0x52, 0x28, 0xce, 0x3f, 0x78, 0xbf, 0xba, 0xb8, 0xde, 0xc3, 0x6d, 0x60, + 0x98, 0x3c, 0xb5, 0x5e, 0x6f, 0x6c, 0x6e, 0x37, 0x77, 0x1b, 0x5b, 0xb5, 0x17, 0xd5, 0xbd, 0xad, + 0x9f, 0xdd, 0x6a, 0x3e, 0xbf, 0xa5, 0x88, 0x46, 0x9f, 0xda, 0x07, 0xb8, 0xd4, 0xb7, 0x41, 0xec, + 0x37, 0x4a, 0x3a, 0x0d, 0xc3, 0xcc, 0x12, 0x47, 0xa4, 0x29, 0x98, 0xd8, 0x6a, 0xaa, 0x3b, 0xeb, + 0xf5, 0x86, 0xda, 0x58, 0x5d, 0x6d, 0xd4, 0x76, 0x77, 0xe8, 0x0d, 0x44, 0xa0, 0xbd, 0x1b, 0x5d, + 0xd4, 0xaf, 0xa6, 0x61, 0x6a, 0x88, 0x25, 0x52, 0x95, 0x9d, 0x1d, 0xe8, 0x71, 0xe6, 0x63, 0x49, + 0xac, 0x5f, 0xc4, 0x2d, 0x7f, 0x5b, 0x73, 0x7d, 0x76, 0xd4, 0x78, 0x02, 0xb0, 0x97, 0x2c, 0xdf, + 0x38, 0x30, 0x90, 0xcb, 0x2e, 0x6c, 0xe8, 0x81, 0x62, 0xa2, 0x27, 0xa7, 0x77, 0x36, 0x3f, 0x05, + 0x92, 0x63, 0x7b, 0x86, 0x6f, 0xdc, 0x40, 0xaa, 0x61, 0xf1, 0xdb, 0x1d, 0x7c, 0xc0, 0xc8, 0x28, + 0x22, 0x1f, 0x59, 0xb7, 0xfc, 0x40, 0xdb, 0x42, 0x6d, 0xad, 0x4f, 0x1b, 0x17, 0xf0, 0xb4, 0x22, + 0xf2, 0x91, 0x40, 0xfb, 0x2c, 0x14, 0x5b, 0x76, 0x17, 0xef, 0xba, 0xa8, 0x1e, 0xee, 0x17, 0x82, + 0x52, 0xa0, 0xb2, 0x40, 0x85, 0xed, 0xa7, 0x7b, 0xd7, 0x4a, 0x45, 0xa5, 0x40, 0x65, 0x54, 0xe5, + 0x1c, 0x4c, 0x68, 0xed, 0xb6, 0x8b, 0xc9, 0x39, 0x11, 0x3d, 0x21, 0x94, 0x02, 0x31, 0x51, 0x9c, + 0xb9, 0x0a, 0x39, 0xee, 0x07, 0xdc, 0x92, 0xb1, 0x27, 0x54, 0x87, 0x1e, 0x7b, 0x53, 0x0b, 0x79, + 0x25, 0x67, 0xf1, 0xc1, 0xb3, 0x50, 0x34, 0x3c, 0xb5, 0x77, 0x4b, 0x9e, 0x9a, 0x4f, 0x2d, 0xe4, + 0x94, 0x82, 0xe1, 0x05, 0x37, 0x8c, 0x95, 0x37, 0x52, 0x50, 0x8a, 0xde, 0xf2, 0x4b, 0x75, 0xc8, + 0x99, 0xb6, 0xae, 0x91, 0xd4, 0xa2, 0x9f, 0x98, 0x16, 0x62, 0x3e, 0x0c, 0x2c, 0x6e, 0x30, 0x7d, + 0x25, 0x40, 0xce, 0xfc, 0x93, 0x00, 0x39, 0x2e, 0x96, 0x4e, 0x41, 0xc6, 0xd1, 0xfc, 0x43, 0x42, + 0x97, 0x5d, 0x49, 0x89, 0x82, 0x42, 0x9e, 0xb1, 0xdc, 0x73, 0x34, 0x8b, 0xa4, 0x00, 0x93, 0xe3, + 0x67, 0x1c, 0x57, 0x13, 0x69, 0x2d, 0x72, 0xfc, 0xb0, 0x3b, 0x1d, 0x64, 0xf9, 0x1e, 0x8f, 0x2b, + 0x93, 0xd7, 0x98, 0x58, 0x7a, 0x0a, 0x26, 0x7d, 0x57, 0x33, 0xcc, 0x88, 0x6e, 0x86, 0xe8, 0x8a, + 0x7c, 0x20, 0x50, 0x96, 0xe1, 0x0c, 0xe7, 0x6d, 0x21, 0x5f, 0xd3, 0x0f, 0x51, 0xab, 0x07, 0x1a, + 0x25, 0xd7, 0x0c, 0xa7, 0x99, 0x42, 0x9d, 0x8d, 0x73, 0x6c, 0xe5, 0xfb, 0x02, 0x4c, 0xf2, 0x03, + 0x53, 0x2b, 0x70, 0xd6, 0x26, 0x80, 0x66, 0x59, 0xb6, 0x1f, 0x76, 0xd7, 0x60, 0x2a, 0x0f, 0xe0, + 0x16, 0xab, 0x01, 0x48, 0x09, 0x11, 0xcc, 0x74, 0x00, 0x7a, 0x23, 0xc7, 0xba, 0x6d, 0x0e, 0x0a, + 0xec, 0x13, 0x0e, 0xf9, 0x0e, 0x48, 0x8f, 0xd8, 0x40, 0x45, 0xf8, 0x64, 0x25, 0x4d, 0x43, 0x76, + 0x1f, 0xb5, 0x0d, 0x8b, 0x5d, 0xcc, 0xd2, 0x07, 0x7e, 0x11, 0x92, 0x09, 0x2e, 0x42, 0x56, 0x3e, + 0x0b, 0x53, 0xba, 0xdd, 0xe9, 0x37, 0x77, 0x45, 0xec, 0x3b, 0xe6, 0x7b, 0xcf, 0x09, 0x2f, 0x41, + 0x6f, 0x8b, 0xf9, 0x23, 0x41, 0xf8, 0x83, 0x54, 0x7a, 0x6d, 0x7b, 0xe5, 0x1b, 0xa9, 0x99, 0x35, + 0x0a, 0xdd, 0xe6, 0x6f, 0xaa, 0xa0, 0x03, 0x13, 0xe9, 0xd8, 0x7a, 0xf8, 0xd2, 0x39, 0xf8, 0x58, + 0xdb, 0xf0, 0x0f, 0xbb, 0xfb, 0x8b, 0xba, 0xdd, 0x39, 0xdf, 0xb6, 0xdb, 0x76, 0xef, 0xd3, 0x27, + 0x7e, 0x22, 0x0f, 0xe4, 0x2f, 0xf6, 0xf9, 0x33, 0x1f, 0x48, 0x67, 0x62, 0xbf, 0x95, 0xca, 0x5b, + 0x30, 0xc5, 0x94, 0x55, 0xf2, 0xfd, 0x85, 0x9e, 0x22, 0xa4, 0x07, 0xde, 0x61, 0x95, 0xbf, 0xf5, + 0x0e, 0x69, 0xd7, 0xca, 0x24, 0x83, 0xe2, 0x31, 0x7a, 0xd0, 0x90, 0x15, 0x78, 0x28, 0xc2, 0x47, + 0x97, 0x26, 0x72, 0x63, 0x18, 0xbf, 0xc7, 0x18, 0xa7, 0x42, 0x8c, 0x3b, 0x0c, 0x2a, 0xd7, 0x60, + 0xfc, 0x24, 0x5c, 0xff, 0xc0, 0xb8, 0x8a, 0x28, 0x4c, 0xb2, 0x06, 0x13, 0x84, 0x44, 0xef, 0x7a, + 0xbe, 0xdd, 0x21, 0x75, 0xef, 0xc1, 0x34, 0xff, 0xf8, 0x0e, 0x5d, 0x2b, 0x25, 0x0c, 0xab, 0x05, + 0x28, 0x59, 0x06, 0xf2, 0xc9, 0xa9, 0x85, 0x74, 0x33, 0x86, 0xe1, 0x4d, 0x66, 0x48, 0xa0, 0x2f, + 0x7f, 0x06, 0xa6, 0xf1, 0xdf, 0xa4, 0x2c, 0x85, 0x2d, 0x89, 0xbf, 0xf0, 0x2a, 0x7f, 0xff, 0x15, + 0xba, 0x1c, 0xa7, 0x02, 0x82, 0x90, 0x4d, 0xa1, 0x28, 0xb6, 0x91, 0xef, 0x23, 0xd7, 0x53, 0x35, + 0x73, 0x98, 0x79, 0xa1, 0x1b, 0x83, 0xf2, 0x57, 0xde, 0x8d, 0x46, 0x71, 0x8d, 0x22, 0xab, 0xa6, + 0x29, 0xef, 0xc1, 0xe9, 0x21, 0x59, 0x91, 0x80, 0xf3, 0x55, 0xc6, 0x39, 0x3d, 0x90, 0x19, 0x98, + 0x76, 0x1b, 0xb8, 0x3c, 0x88, 0x65, 0x02, 0xce, 0xdf, 0x63, 0x9c, 0x12, 0xc3, 0xf2, 0x90, 0x62, + 0xc6, 0xab, 0x30, 0x79, 0x03, 0xb9, 0xfb, 0xb6, 0xc7, 0x6e, 0x69, 0x12, 0xd0, 0xbd, 0xc6, 0xe8, + 0x26, 0x18, 0x90, 0x5c, 0xdb, 0x60, 0xae, 0xcb, 0x90, 0x3b, 0xd0, 0x74, 0x94, 0x80, 0xe2, 0xab, + 0x8c, 0x62, 0x0c, 0xeb, 0x63, 0x68, 0x15, 0x8a, 0x6d, 0x9b, 0x75, 0xa6, 0x78, 0xf8, 0xeb, 0x0c, + 0x5e, 0xe0, 0x18, 0x46, 0xe1, 0xd8, 0x4e, 0xd7, 0xc4, 0x6d, 0x2b, 0x9e, 0xe2, 0xf7, 0x39, 0x05, + 0xc7, 0x30, 0x8a, 0x13, 0xb8, 0xf5, 0x6b, 0x9c, 0xc2, 0x0b, 0xf9, 0xf3, 0x59, 0x28, 0xd8, 0x96, + 0x79, 0x64, 0x5b, 0x49, 0x8c, 0xb8, 0xc3, 0x18, 0x80, 0x41, 0x30, 0xc1, 0x15, 0xc8, 0x27, 0x0d, + 0xc4, 0x1f, 0xbe, 0xcb, 0x97, 0x07, 0x8f, 0xc0, 0x1a, 0x4c, 0xf0, 0x02, 0x65, 0xd8, 0x56, 0x02, + 0x8a, 0x3f, 0x62, 0x14, 0xa5, 0x10, 0x8c, 0xbd, 0x86, 0x8f, 0x3c, 0xbf, 0x8d, 0x92, 0x90, 0xbc, + 0xc1, 0x5f, 0x83, 0x41, 0x98, 0x2b, 0xf7, 0x91, 0xa5, 0x1f, 0x26, 0x63, 0xf8, 0x3a, 0x77, 0x25, + 0xc7, 0x60, 0x8a, 0x1a, 0x8c, 0x77, 0x34, 0xd7, 0x3b, 0xd4, 0xcc, 0x44, 0xe1, 0xf8, 0x63, 0xc6, + 0x51, 0x0c, 0x40, 0xcc, 0x23, 0x5d, 0xeb, 0x24, 0x34, 0xdf, 0xe0, 0x1e, 0x09, 0xc1, 0xd8, 0xd2, + 0xf3, 0x7c, 0x72, 0xa5, 0x75, 0x12, 0xb6, 0x3f, 0xe1, 0x4b, 0x8f, 0x62, 0x37, 0xc3, 0x8c, 0x57, + 0x20, 0xef, 0x19, 0xb7, 0x12, 0xd1, 0xfc, 0x29, 0x8f, 0x34, 0x01, 0x60, 0xf0, 0x8b, 0x70, 0x66, + 0x68, 0x9b, 0x48, 0x40, 0xf6, 0x67, 0x8c, 0xec, 0xd4, 0x90, 0x56, 0xc1, 0x4a, 0xc2, 0x49, 0x29, + 0xff, 0x9c, 0x97, 0x04, 0xd4, 0xc7, 0xb5, 0x8d, 0xcf, 0x0a, 0x9e, 0x76, 0x70, 0x32, 0xaf, 0xfd, + 0x05, 0xf7, 0x1a, 0xc5, 0x46, 0xbc, 0xb6, 0x0b, 0xa7, 0x18, 0xe3, 0xc9, 0xe2, 0xfa, 0x4d, 0x5e, + 0x58, 0x29, 0x7a, 0x2f, 0x1a, 0xdd, 0xcf, 0xc2, 0x4c, 0xe0, 0x4e, 0xbe, 0x29, 0xf5, 0xd4, 0x8e, + 0xe6, 0x24, 0x60, 0xfe, 0x16, 0x63, 0xe6, 0x15, 0x3f, 0xd8, 0xd5, 0x7a, 0x9b, 0x9a, 0x83, 0xc9, + 0x5f, 0x80, 0x32, 0x27, 0xef, 0x5a, 0x2e, 0xd2, 0xed, 0xb6, 0x65, 0xdc, 0x42, 0xad, 0x04, 0xd4, + 0x7f, 0xd9, 0x17, 0xaa, 0xbd, 0x10, 0x1c, 0x33, 0xaf, 0x83, 0x18, 0xec, 0x55, 0x54, 0xa3, 0xe3, + 0xd8, 0xae, 0x1f, 0xc3, 0xf8, 0x6d, 0x1e, 0xa9, 0x00, 0xb7, 0x4e, 0x60, 0x72, 0x03, 0x4a, 0xe4, + 0x31, 0x69, 0x4a, 0xfe, 0x15, 0x23, 0x1a, 0xef, 0xa1, 0x58, 0xe1, 0xd0, 0xed, 0x8e, 0xa3, 0xb9, + 0x49, 0xea, 0xdf, 0x5f, 0xf3, 0xc2, 0xc1, 0x20, 0xac, 0x70, 0xf8, 0x47, 0x0e, 0xc2, 0xdd, 0x3e, + 0x01, 0xc3, 0x77, 0x78, 0xe1, 0xe0, 0x18, 0x46, 0xc1, 0x37, 0x0c, 0x09, 0x28, 0xfe, 0x86, 0x53, + 0x70, 0x0c, 0xa6, 0xf8, 0x74, 0xaf, 0xd1, 0xba, 0xa8, 0x6d, 0x78, 0xbe, 0x4b, 0xb7, 0xc2, 0x0f, + 0xa6, 0xfa, 0xee, 0xbb, 0xd1, 0x4d, 0x98, 0x12, 0x82, 0xca, 0x57, 0x61, 0xa2, 0x6f, 0x8b, 0x21, + 0xc5, 0xfd, 0x7e, 0xa5, 0xfc, 0x8b, 0xef, 0xb1, 0x62, 0x14, 0xdd, 0x61, 0xc8, 0x1b, 0x38, 0xee, + 0xd1, 0x7d, 0x40, 0x3c, 0xd9, 0x2b, 0xef, 0x05, 0xa1, 0x8f, 0x6c, 0x03, 0xe4, 0x55, 0x18, 0x8f, + 0xec, 0x01, 0xe2, 0xa9, 0x7e, 0x89, 0x51, 0x15, 0xc3, 0x5b, 0x00, 0xf9, 0x22, 0x64, 0x70, 0x3f, + 0x8f, 0x87, 0xff, 0x32, 0x83, 0x13, 0x75, 0xf9, 0x13, 0x90, 0xe3, 0x7d, 0x3c, 0x1e, 0xfa, 0x2b, + 0x0c, 0x1a, 0x40, 0x30, 0x9c, 0xf7, 0xf0, 0x78, 0xf8, 0xaf, 0x72, 0x38, 0x87, 0x60, 0x78, 0x72, + 0x17, 0xfe, 0xfd, 0xaf, 0x67, 0x58, 0x1d, 0xe6, 0xbe, 0xbb, 0x02, 0x63, 0xac, 0x79, 0xc7, 0xa3, + 0x3f, 0xcf, 0x26, 0xe7, 0x08, 0xf9, 0x12, 0x64, 0x13, 0x3a, 0xfc, 0x37, 0x18, 0x94, 0xea, 0xcb, + 0x35, 0x28, 0x84, 0x1a, 0x76, 0x3c, 0xfc, 0x37, 0x19, 0x3c, 0x8c, 0xc2, 0xa6, 0xb3, 0x86, 0x1d, + 0x4f, 0xf0, 0x5b, 0xdc, 0x74, 0x86, 0xc0, 0x6e, 0xe3, 0xbd, 0x3a, 0x1e, 0xfd, 0x05, 0xee, 0x75, + 0x0e, 0x91, 0x9f, 0x85, 0x7c, 0x50, 0x7f, 0xe3, 0xf1, 0xbf, 0xcd, 0xf0, 0x3d, 0x0c, 0xf6, 0x40, + 0xa8, 0xfe, 0xc7, 0x53, 0xfc, 0x0e, 0xf7, 0x40, 0x08, 0x85, 0x97, 0x51, 0x7f, 0x4f, 0x8f, 0x67, + 0xfa, 0x22, 0x5f, 0x46, 0x7d, 0x2d, 0x1d, 0x47, 0x93, 0x94, 0xc1, 0x78, 0x8a, 0xdf, 0xe5, 0xd1, + 0x24, 0xfa, 0xd8, 0x8c, 0xfe, 0x26, 0x19, 0xcf, 0xf1, 0x25, 0x6e, 0x46, 0x5f, 0x8f, 0x94, 0xb7, + 0x41, 0x1a, 0x6c, 0x90, 0xf1, 0x7c, 0x5f, 0x66, 0x7c, 0x93, 0x03, 0xfd, 0x51, 0x7e, 0x1e, 0x4e, + 0x0d, 0x6f, 0x8e, 0xf1, 0xac, 0x5f, 0x79, 0xaf, 0xef, 0x38, 0x13, 0xee, 0x8d, 0xf2, 0x6e, 0xaf, + 0xca, 0x86, 0x1b, 0x63, 0x3c, 0xed, 0xab, 0xef, 0x45, 0x0b, 0x6d, 0xb8, 0x2f, 0xca, 0x55, 0x80, + 0x5e, 0x4f, 0x8a, 0xe7, 0x7a, 0x8d, 0x71, 0x85, 0x40, 0x78, 0x69, 0xb0, 0x96, 0x14, 0x8f, 0xff, + 0x2a, 0x5f, 0x1a, 0x0c, 0x81, 0x97, 0x06, 0xef, 0x46, 0xf1, 0xe8, 0xd7, 0xf9, 0xd2, 0xe0, 0x10, + 0xf9, 0x0a, 0xe4, 0xac, 0xae, 0x69, 0xe2, 0xdc, 0x92, 0x1e, 0xfc, 0x93, 0xac, 0xf2, 0x7f, 0xdc, + 0x67, 0x60, 0x0e, 0x90, 0x2f, 0x42, 0x16, 0x75, 0xf6, 0x51, 0x2b, 0x0e, 0xf9, 0x9f, 0xf7, 0x79, + 0x3d, 0xc1, 0xda, 0xf2, 0xb3, 0x00, 0xf4, 0x30, 0x4d, 0x3e, 0x14, 0xc5, 0x60, 0xff, 0xeb, 0x3e, + 0xfb, 0xb1, 0x44, 0x0f, 0xd2, 0x23, 0xa0, 0x3f, 0xbd, 0x78, 0x30, 0xc1, 0xbb, 0x51, 0x02, 0x72, + 0x00, 0xbf, 0x0c, 0x63, 0xd7, 0x3c, 0xdb, 0xf2, 0xb5, 0x76, 0x1c, 0xfa, 0xbf, 0x19, 0x9a, 0xeb, + 0x63, 0x87, 0x75, 0x6c, 0x17, 0xf9, 0x5a, 0xdb, 0x8b, 0xc3, 0xfe, 0x0f, 0xc3, 0x06, 0x00, 0x0c, + 0xd6, 0x35, 0xcf, 0x4f, 0xf2, 0xde, 0x3f, 0xe0, 0x60, 0x0e, 0xc0, 0x46, 0xe3, 0xbf, 0xaf, 0xa3, + 0xa3, 0x38, 0xec, 0x0f, 0xb9, 0xd1, 0x4c, 0x5f, 0xfe, 0x04, 0xe4, 0xf1, 0x9f, 0xf4, 0x17, 0x50, + 0x31, 0xe0, 0xff, 0x65, 0xe0, 0x1e, 0x02, 0xcf, 0xec, 0xf9, 0x2d, 0xdf, 0x88, 0x77, 0xf6, 0xff, + 0xb1, 0x48, 0x73, 0x7d, 0xb9, 0x0a, 0x05, 0xcf, 0x6f, 0xb5, 0xba, 0x6c, 0x47, 0x13, 0x03, 0xff, + 0xff, 0xfb, 0xc1, 0x21, 0x37, 0xc0, 0xac, 0x34, 0x86, 0xdf, 0xd7, 0xc1, 0x9a, 0xbd, 0x66, 0xd3, + 0x9b, 0xba, 0x97, 0x2a, 0xf1, 0x57, 0x6e, 0x70, 0x7f, 0x0c, 0x97, 0xaa, 0xde, 0xca, 0x65, 0xd7, + 0x6f, 0xc5, 0xb0, 0x6c, 0xe6, 0x64, 0x77, 0x77, 0x95, 0x4f, 0x81, 0x50, 0x95, 0x4e, 0xc1, 0x28, + 0x79, 0x89, 0x9f, 0x26, 0x77, 0x92, 0x69, 0x85, 0x3d, 0x49, 0x8f, 0x80, 0xb0, 0xc2, 0x2e, 0x47, + 0x27, 0x16, 0x23, 0x33, 0xaf, 0x28, 0xc2, 0x8a, 0x9c, 0x79, 0xeb, 0xce, 0xdc, 0x48, 0x45, 0x07, + 0x61, 0x05, 0x6b, 0xd6, 0xc8, 0x17, 0xab, 0x01, 0xcd, 0x9a, 0x22, 0xd4, 0xf0, 0x70, 0x9d, 0xfd, + 0xa4, 0xae, 0x6f, 0xb8, 0xae, 0x08, 0x75, 0x69, 0x1e, 0x84, 0x55, 0x72, 0x4b, 0x5f, 0x58, 0x92, + 0xa2, 0xc3, 0x4d, 0xb3, 0x55, 0x53, 0x84, 0xd5, 0xca, 0xc3, 0x20, 0xd4, 0x43, 0x66, 0x0a, 0x61, + 0x33, 0x2b, 0x5f, 0x14, 0x40, 0xa8, 0x05, 0xa3, 0x4b, 0x64, 0x22, 0x81, 0x8d, 0x2e, 0x05, 0xf2, + 0xa7, 0xd9, 0x55, 0x34, 0x7b, 0x0a, 0xe4, 0x17, 0xc8, 0xcd, 0x2a, 0xd7, 0xbf, 0x10, 0xc8, 0x2f, + 0x92, 0x1f, 0xb0, 0x15, 0x99, 0xfc, 0x62, 0x20, 0x5f, 0x26, 0xdf, 0x09, 0xf8, 0xec, 0xcb, 0x81, + 0xfc, 0x12, 0xf9, 0x2f, 0x01, 0x29, 0x26, 0xbf, 0x54, 0xb9, 0x0c, 0xc2, 0x5e, 0xc4, 0xa8, 0xf4, + 0xb1, 0x46, 0x8d, 0x73, 0xa3, 0x98, 0x4b, 0x9f, 0x83, 0xcc, 0x9e, 0x65, 0x6f, 0x9e, 0x18, 0x2d, + 0xfe, 0xda, 0x9d, 0xb9, 0x91, 0x2f, 0xdc, 0x99, 0x1b, 0xf9, 0xda, 0x9d, 0xb9, 0x11, 0xc2, 0xb4, + 0x0a, 0x99, 0xa6, 0xd9, 0x3a, 0x3e, 0xc2, 0xf3, 0xbd, 0x08, 0x0f, 0x7a, 0x3e, 0x14, 0xe4, 0xab, + 0x84, 0x67, 0x05, 0xeb, 0xf3, 0x38, 0x0f, 0x8d, 0x54, 0x2d, 0x41, 0x2c, 0x7f, 0x81, 0x70, 0xd5, + 0x8e, 0x0b, 0xe7, 0xfb, 0x0e, 0x64, 0xd2, 0xc0, 0x2c, 0x93, 0xf9, 0xf7, 0xfa, 0xe6, 0xcf, 0x0f, + 0x9d, 0x3f, 0xe4, 0xf5, 0xca, 0x1a, 0x8c, 0x61, 0x5c, 0x38, 0x30, 0x09, 0xa1, 0x72, 0x31, 0x1c, + 0x98, 0x95, 0x0b, 0x6f, 0xde, 0x9d, 0x1d, 0x79, 0xeb, 0xee, 0xec, 0xc8, 0x3f, 0xdf, 0x9d, 0x1d, + 0x79, 0xfb, 0xee, 0xac, 0xf0, 0xc3, 0xbb, 0xb3, 0xc2, 0x8f, 0xee, 0xce, 0x0a, 0xb7, 0xef, 0xcd, + 0x0a, 0x5f, 0xbf, 0x37, 0x2b, 0x7c, 0xf3, 0xde, 0xac, 0xf0, 0xdd, 0x7b, 0xb3, 0xc2, 0x9b, 0xf7, + 0x66, 0x85, 0xb7, 0xee, 0xcd, 0x0a, 0x6f, 0xdf, 0x9b, 0x15, 0x7e, 0x1c, 0x00, 0x00, 0xff, 0xff, + 0xfd, 0x83, 0xff, 0xfe, 0x8a, 0x34, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -1895,7 +1902,8 @@ func (m *C) MarshalTo(dAtA []byte) (int, error) { if m.Field2 != nil { dAtA[i] = 0x11 i++ - i = encodeFixed64Unrecognized(dAtA, i, uint64(math.Float64bits(float64(*m.Field2)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field2)))) + i += 8 } if m.Field3 != nil { dAtA[i] = 0x1a @@ -1906,7 +1914,8 @@ func (m *C) MarshalTo(dAtA []byte) (int, error) { if m.Field4 != nil { dAtA[i] = 0x21 i++ - i = encodeFixed64Unrecognized(dAtA, i, uint64(math.Float64bits(float64(*m.Field4)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field4)))) + i += 8 } if len(m.Field5) > 0 { for _, b := range m.Field5 { @@ -1926,14 +1935,8 @@ func (m *C) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3d i++ f4 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f4) - i++ - dAtA[i] = uint8(f4 >> 8) - i++ - dAtA[i] = uint8(f4 >> 16) - i++ - dAtA[i] = uint8(f4 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f4)) + i += 4 } } if m.XXX_unrecognized != nil { @@ -1962,22 +1965,8 @@ func (m *U) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x11 i++ f5 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f5) - i++ - dAtA[i] = uint8(f5 >> 8) - i++ - dAtA[i] = uint8(f5 >> 16) - i++ - dAtA[i] = uint8(f5 >> 24) - i++ - dAtA[i] = uint8(f5 >> 32) - i++ - dAtA[i] = uint8(f5 >> 40) - i++ - dAtA[i] = uint8(f5 >> 48) - i++ - dAtA[i] = uint8(f5 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f5)) + i += 8 } } if m.Field3 != nil { @@ -2087,7 +2076,8 @@ func (m *OldC) MarshalTo(dAtA []byte) (int, error) { if m.Field2 != nil { dAtA[i] = 0x11 i++ - i = encodeFixed64Unrecognized(dAtA, i, uint64(math.Float64bits(float64(*m.Field2)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Field2)))) + i += 8 } if m.Field3 != nil { dAtA[i] = 0x1a @@ -2105,14 +2095,8 @@ func (m *OldC) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3d i++ f8 := math.Float32bits(float32(num)) - dAtA[i] = uint8(f8) - i++ - dAtA[i] = uint8(f8 >> 8) - i++ - dAtA[i] = uint8(f8 >> 16) - i++ - dAtA[i] = uint8(f8 >> 24) - i++ + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f8)) + i += 4 } } if m.XXX_unrecognized != nil { @@ -2147,22 +2131,8 @@ func (m *OldU) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x11 i++ f9 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f9) - i++ - dAtA[i] = uint8(f9 >> 8) - i++ - dAtA[i] = uint8(f9 >> 16) - i++ - dAtA[i] = uint8(f9 >> 24) - i++ - dAtA[i] = uint8(f9 >> 32) - i++ - dAtA[i] = uint8(f9 >> 40) - i++ - dAtA[i] = uint8(f9 >> 48) - i++ - dAtA[i] = uint8(f9 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f9)) + i += 8 } } if m.XXX_unrecognized != nil { @@ -2171,24 +2141,6 @@ func (m *OldU) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Unrecognized(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 encodeFixed32Unrecognized(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 encodeVarintUnrecognized(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -3220,15 +3172,8 @@ func (m *C) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field2 = &v2 case 3: @@ -3269,15 +3214,8 @@ func (m *C) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field4 = &v2 case 5: @@ -3335,11 +3273,8 @@ func (m *C) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field7 = append(m.Field7, v2) } else if wireType == 2 { @@ -3370,11 +3305,8 @@ func (m *C) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field7 = append(m.Field7, v2) } @@ -3438,15 +3370,8 @@ func (m *U) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -3477,15 +3402,8 @@ func (m *U) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field2 = append(m.Field2, v2) } @@ -3808,15 +3726,8 @@ func (m *OldC) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field2 = &v2 case 3: @@ -3875,11 +3786,8 @@ func (m *OldC) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field7 = append(m.Field7, v2) } else if wireType == 2 { @@ -3910,11 +3818,8 @@ func (m *OldC) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 v2 := float32(math.Float32frombits(v)) m.Field7 = append(m.Field7, v2) } @@ -4008,15 +3913,8 @@ func (m *OldU) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field2 = append(m.Field2, v2) } else if wireType == 2 { @@ -4047,15 +3945,8 @@ func (m *OldU) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field2 = append(m.Field2, v2) } diff --git a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognizedpb_test.go b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognizedpb_test.go index 5b8b3bbbc..6a595b53a 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognizedpb_test.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognized/unrecognizedpb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: unrecognized.proto -// DO NOT EDIT! /* Package unrecognized is a generated protocol buffer package. @@ -24,13 +23,12 @@ It has these top-level messages: package unrecognized import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -41,14 +39,14 @@ var _ = math.Inf func TestAProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -69,13 +67,13 @@ func TestAProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -87,7 +85,7 @@ func TestAMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -103,14 +101,14 @@ func TestAMarshalTo(t *testing.T) { func TestBProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -131,13 +129,13 @@ func TestBProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestBMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -149,7 +147,7 @@ func TestBMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -165,14 +163,14 @@ func TestBMarshalTo(t *testing.T) { func TestDProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedD(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &D{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -193,13 +191,13 @@ func TestDProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestDMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedD(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -211,7 +209,7 @@ func TestDMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &D{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -227,14 +225,14 @@ func TestDMarshalTo(t *testing.T) { func TestCProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -255,13 +253,13 @@ func TestCProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestCMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -273,7 +271,7 @@ func TestCMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -289,14 +287,14 @@ func TestCMarshalTo(t *testing.T) { func TestUProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -317,13 +315,13 @@ func TestUProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestUMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -335,7 +333,7 @@ func TestUMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -351,14 +349,14 @@ func TestUMarshalTo(t *testing.T) { func TestUnoMProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnoM(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnoM{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -379,20 +377,20 @@ func TestUnoMProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOldAProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldA(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldA{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -413,13 +411,13 @@ func TestOldAProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOldAMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldA(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -431,7 +429,7 @@ func TestOldAMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldA{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -447,14 +445,14 @@ func TestOldAMarshalTo(t *testing.T) { func TestOldBProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldB(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldB{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -475,13 +473,13 @@ func TestOldBProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOldBMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldB(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -493,7 +491,7 @@ func TestOldBMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldB{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -509,14 +507,14 @@ func TestOldBMarshalTo(t *testing.T) { func TestOldCProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldC(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldC{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -537,13 +535,13 @@ func TestOldCProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOldCMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldC(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -555,7 +553,7 @@ func TestOldCMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldC{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -571,14 +569,14 @@ func TestOldCMarshalTo(t *testing.T) { func TestOldUProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldU(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldU{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -599,13 +597,13 @@ func TestOldUProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOldUMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldU(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -617,7 +615,7 @@ func TestOldUMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldU{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -633,14 +631,14 @@ func TestOldUMarshalTo(t *testing.T) { func TestOldUnoMProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldUnoM(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldUnoM{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -661,21 +659,21 @@ func TestOldUnoMProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -688,15 +686,15 @@ func TestAJSON(t *testing.T) { } func TestBJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &B{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -709,15 +707,15 @@ func TestBJSON(t *testing.T) { } func TestDJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedD(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &D{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -730,15 +728,15 @@ func TestDJSON(t *testing.T) { } func TestCJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &C{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -751,15 +749,15 @@ func TestCJSON(t *testing.T) { } func TestUJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &U{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -772,15 +770,15 @@ func TestUJSON(t *testing.T) { } func TestUnoMJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnoM(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &UnoM{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -793,15 +791,15 @@ func TestUnoMJSON(t *testing.T) { } func TestOldAJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldA(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldA{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -814,15 +812,15 @@ func TestOldAJSON(t *testing.T) { } func TestOldBJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldB(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldB{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -835,15 +833,15 @@ func TestOldBJSON(t *testing.T) { } func TestOldCJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldC(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldC{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -856,15 +854,15 @@ func TestOldCJSON(t *testing.T) { } func TestOldUJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldU(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldU{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -877,15 +875,15 @@ func TestOldUJSON(t *testing.T) { } func TestOldUnoMJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldUnoM(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldUnoM{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -898,11 +896,11 @@ func TestOldUnoMJSON(t *testing.T) { } func TestAProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -915,11 +913,11 @@ func TestAProtoText(t *testing.T) { func TestAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -932,11 +930,11 @@ func TestAProtoCompactText(t *testing.T) { func TestBProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &B{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -949,11 +947,11 @@ func TestBProtoText(t *testing.T) { func TestBProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &B{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -966,11 +964,11 @@ func TestBProtoCompactText(t *testing.T) { func TestDProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedD(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &D{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -983,11 +981,11 @@ func TestDProtoText(t *testing.T) { func TestDProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedD(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &D{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1000,11 +998,11 @@ func TestDProtoCompactText(t *testing.T) { func TestCProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &C{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1017,11 +1015,11 @@ func TestCProtoText(t *testing.T) { func TestCProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &C{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1034,11 +1032,11 @@ func TestCProtoCompactText(t *testing.T) { func TestUProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &U{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1051,11 +1049,11 @@ func TestUProtoText(t *testing.T) { func TestUProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &U{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1068,11 +1066,11 @@ func TestUProtoCompactText(t *testing.T) { func TestUnoMProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnoM(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &UnoM{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1085,11 +1083,11 @@ func TestUnoMProtoText(t *testing.T) { func TestUnoMProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedUnoM(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &UnoM{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1102,11 +1100,11 @@ func TestUnoMProtoCompactText(t *testing.T) { func TestOldAProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldA(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OldA{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1119,11 +1117,11 @@ func TestOldAProtoText(t *testing.T) { func TestOldAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldA(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OldA{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1136,11 +1134,11 @@ func TestOldAProtoCompactText(t *testing.T) { func TestOldBProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldB(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OldB{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1153,11 +1151,11 @@ func TestOldBProtoText(t *testing.T) { func TestOldBProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldB(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OldB{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1170,11 +1168,11 @@ func TestOldBProtoCompactText(t *testing.T) { func TestOldCProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldC(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OldC{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1187,11 +1185,11 @@ func TestOldCProtoText(t *testing.T) { func TestOldCProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldC(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OldC{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1204,11 +1202,11 @@ func TestOldCProtoCompactText(t *testing.T) { func TestOldUProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldU(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OldU{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1221,11 +1219,11 @@ func TestOldUProtoText(t *testing.T) { func TestOldUProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldU(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OldU{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1238,11 +1236,11 @@ func TestOldUProtoCompactText(t *testing.T) { func TestOldUnoMProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldUnoM(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OldUnoM{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1255,11 +1253,11 @@ func TestOldUnoMProtoText(t *testing.T) { func TestOldUnoMProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldUnoM(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OldUnoM{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -1274,14 +1272,14 @@ func TestUnrecognizedDescription(t *testing.T) { UnrecognizedDescription() } func TestAVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1289,14 +1287,14 @@ func TestAVerboseEqual(t *testing.T) { } } func TestBVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedB(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &B{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1304,14 +1302,14 @@ func TestBVerboseEqual(t *testing.T) { } } func TestDVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedD(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &D{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1319,14 +1317,14 @@ func TestDVerboseEqual(t *testing.T) { } } func TestCVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedC(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &C{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1334,14 +1332,14 @@ func TestCVerboseEqual(t *testing.T) { } } func TestUVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedU(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &U{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1349,14 +1347,14 @@ func TestUVerboseEqual(t *testing.T) { } } func TestUnoMVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnoM(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &UnoM{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1364,14 +1362,14 @@ func TestUnoMVerboseEqual(t *testing.T) { } } func TestOldAVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldA(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OldA{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1379,14 +1377,14 @@ func TestOldAVerboseEqual(t *testing.T) { } } func TestOldBVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldB(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OldB{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1394,14 +1392,14 @@ func TestOldBVerboseEqual(t *testing.T) { } } func TestOldCVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldC(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OldC{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1409,14 +1407,14 @@ func TestOldCVerboseEqual(t *testing.T) { } } func TestOldUVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldU(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OldU{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1424,14 +1422,14 @@ func TestOldUVerboseEqual(t *testing.T) { } } func TestOldUnoMVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldUnoM(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OldUnoM{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -1439,154 +1437,154 @@ func TestOldUnoMVerboseEqual(t *testing.T) { } } func TestAGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestBGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedB(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestDGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedD(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestCGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedC(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedU(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestUnoMGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnoM(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOldAGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldA(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOldBGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldB(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOldCGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldC(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOldUGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldU(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOldUnoMGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldUnoM(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestASize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1597,7 +1595,7 @@ func TestASize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -1605,10 +1603,10 @@ func TestASize(t *testing.T) { func TestBSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedB(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1619,7 +1617,7 @@ func TestBSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -1627,10 +1625,10 @@ func TestBSize(t *testing.T) { func TestDSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedD(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1641,7 +1639,7 @@ func TestDSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -1649,10 +1647,10 @@ func TestDSize(t *testing.T) { func TestCSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedC(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1663,7 +1661,7 @@ func TestCSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -1671,10 +1669,10 @@ func TestCSize(t *testing.T) { func TestUSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedU(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1685,7 +1683,7 @@ func TestUSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -1693,10 +1691,10 @@ func TestUSize(t *testing.T) { func TestOldASize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldA(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1707,7 +1705,7 @@ func TestOldASize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -1715,10 +1713,10 @@ func TestOldASize(t *testing.T) { func TestOldBSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldB(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1729,7 +1727,7 @@ func TestOldBSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -1737,10 +1735,10 @@ func TestOldBSize(t *testing.T) { func TestOldCSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldC(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1751,7 +1749,7 @@ func TestOldCSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -1759,10 +1757,10 @@ func TestOldCSize(t *testing.T) { func TestOldUSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldU(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -1773,14 +1771,14 @@ func TestOldUSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestAStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1789,7 +1787,7 @@ func TestAStringer(t *testing.T) { } } func TestBStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedB(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1798,7 +1796,7 @@ func TestBStringer(t *testing.T) { } } func TestDStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedD(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1807,7 +1805,7 @@ func TestDStringer(t *testing.T) { } } func TestCStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedC(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1816,7 +1814,7 @@ func TestCStringer(t *testing.T) { } } func TestUStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedU(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1825,7 +1823,7 @@ func TestUStringer(t *testing.T) { } } func TestUnoMStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedUnoM(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1834,7 +1832,7 @@ func TestUnoMStringer(t *testing.T) { } } func TestOldAStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldA(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1843,7 +1841,7 @@ func TestOldAStringer(t *testing.T) { } } func TestOldBStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldB(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1852,7 +1850,7 @@ func TestOldBStringer(t *testing.T) { } } func TestOldCStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldC(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1861,7 +1859,7 @@ func TestOldCStringer(t *testing.T) { } } func TestOldUStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldU(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -1870,7 +1868,7 @@ func TestOldUStringer(t *testing.T) { } } func TestOldUnoMStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldUnoM(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go index 5932399f8..9495ed33a 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgroup.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: unrecognizedgroup.proto -// DO NOT EDIT! /* Package unrecognizedgroup is a generated protocol buffer package. @@ -20,15 +19,16 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" -import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import compress_gzip "compress/gzip" +import descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" +import gzip "compress/gzip" import bytes "bytes" -import io_ioutil "io/ioutil" +import ioutil "io/ioutil" import strings "strings" import reflect "reflect" +import binary "encoding/binary" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -106,271 +106,278 @@ func init() { proto.RegisterType((*OldWithGroup_Group1)(nil), "unrecognizedgroup.OldWithGroup.Group1") proto.RegisterType((*OldWithGroup_Group2)(nil), "unrecognizedgroup.OldWithGroup.Group2") } -func (this *NewNoGroup) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *NewNoGroup) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedgroupDescription() } -func (this *A) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *A) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedgroupDescription() } -func (this *OldWithGroup) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OldWithGroup) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedgroupDescription() } -func (this *OldWithGroup_Group1) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OldWithGroup_Group1) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedgroupDescription() } -func (this *OldWithGroup_Group2) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { +func (this *OldWithGroup_Group2) Description() (desc *descriptor.FileDescriptorSet) { return UnrecognizedgroupDescription() } -func UnrecognizedgroupDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { - d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} +func UnrecognizedgroupDescription() (desc *descriptor.FileDescriptorSet) { + d := &descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 3756 bytes of a gzipped FileDescriptorSet + // 3866 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x70, 0x1b, 0xe7, - 0x75, 0xd6, 0xe2, 0x46, 0xe0, 0x00, 0x04, 0x97, 0x4b, 0x9a, 0x82, 0xe8, 0x98, 0xa2, 0x10, 0x5f, - 0x68, 0xbb, 0xa1, 0x62, 0xca, 0x92, 0xe5, 0x55, 0x63, 0x0f, 0x08, 0x42, 0x0c, 0x54, 0x12, 0x40, - 0x16, 0x64, 0x2c, 0xa7, 0x0f, 0x3b, 0xcb, 0xc5, 0x0f, 0x70, 0xa5, 0xc5, 0x2e, 0xb2, 0xbb, 0x90, - 0x4c, 0x3f, 0xa9, 0xe3, 0xde, 0x32, 0x9d, 0xb6, 0xe9, 0x65, 0xa6, 0x89, 0xeb, 0xb8, 0x71, 0x66, - 0x5a, 0xa7, 0x49, 0x2f, 0x49, 0x2f, 0x69, 0xa6, 0x4f, 0x7d, 0x49, 0x9b, 0xe9, 0x43, 0xa7, 0x79, - 0xeb, 0x43, 0x1f, 0x22, 0xd7, 0x33, 0xbd, 0x39, 0x6d, 0xda, 0x78, 0xa6, 0x9d, 0xd1, 0x4b, 0xe6, - 0xbf, 0x2d, 0x76, 0x01, 0x90, 0xbb, 0xcc, 0x8c, 0x93, 0x17, 0x89, 0xff, 0xf9, 0xcf, 0xf7, 0xed, - 0xf9, 0xcf, 0x7f, 0xfe, 0x73, 0xce, 0xfe, 0x0b, 0xf8, 0x97, 0xcb, 0xb0, 0xda, 0xb3, 0xed, 0x9e, - 0x89, 0x2e, 0x0e, 0x1c, 0xdb, 0xb3, 0x0f, 0x86, 0xdd, 0x8b, 0x1d, 0xe4, 0xea, 0x8e, 0x31, 0xf0, - 0x6c, 0x67, 0x9d, 0xc8, 0xa4, 0x39, 0xaa, 0xb1, 0xce, 0x35, 0xca, 0xbb, 0x30, 0x7f, 0xdd, 0x30, - 0xd1, 0x96, 0xaf, 0xd8, 0x46, 0x9e, 0x74, 0x15, 0x52, 0x5d, 0xc3, 0x44, 0x25, 0x61, 0x35, 0xb9, - 0x96, 0xdf, 0x78, 0x74, 0x7d, 0x0c, 0xb4, 0x1e, 0x46, 0xb4, 0xb0, 0x58, 0x21, 0x88, 0xf2, 0xbb, - 0x29, 0x58, 0x98, 0x32, 0x2b, 0x49, 0x90, 0xb2, 0xb4, 0x3e, 0x66, 0x14, 0xd6, 0x72, 0x0a, 0xf9, - 0x5b, 0x2a, 0xc1, 0xcc, 0x40, 0xd3, 0x6f, 0x6b, 0x3d, 0x54, 0x4a, 0x10, 0x31, 0x1f, 0x4a, 0x2b, - 0x00, 0x1d, 0x34, 0x40, 0x56, 0x07, 0x59, 0xfa, 0x51, 0x29, 0xb9, 0x9a, 0x5c, 0xcb, 0x29, 0x01, - 0x89, 0xf4, 0x34, 0xcc, 0x0f, 0x86, 0x07, 0xa6, 0xa1, 0xab, 0x01, 0x35, 0x58, 0x4d, 0xae, 0xa5, - 0x15, 0x91, 0x4e, 0x6c, 0x8d, 0x94, 0x9f, 0x80, 0xb9, 0xbb, 0x48, 0xbb, 0x1d, 0x54, 0xcd, 0x13, - 0xd5, 0x22, 0x16, 0x07, 0x14, 0xab, 0x50, 0xe8, 0x23, 0xd7, 0xd5, 0x7a, 0x48, 0xf5, 0x8e, 0x06, - 0xa8, 0x94, 0x22, 0xab, 0x5f, 0x9d, 0x58, 0xfd, 0xf8, 0xca, 0xf3, 0x0c, 0xb5, 0x77, 0x34, 0x40, - 0x52, 0x05, 0x72, 0xc8, 0x1a, 0xf6, 0x29, 0x43, 0xfa, 0x18, 0xff, 0xd5, 0xac, 0x61, 0x7f, 0x9c, - 0x25, 0x8b, 0x61, 0x8c, 0x62, 0xc6, 0x45, 0xce, 0x1d, 0x43, 0x47, 0xa5, 0x0c, 0x21, 0x78, 0x62, - 0x82, 0xa0, 0x4d, 0xe7, 0xc7, 0x39, 0x38, 0x4e, 0xaa, 0x42, 0x0e, 0xbd, 0xe2, 0x21, 0xcb, 0x35, - 0x6c, 0xab, 0x34, 0x43, 0x48, 0x1e, 0x9b, 0xb2, 0x8b, 0xc8, 0xec, 0x8c, 0x53, 0x8c, 0x70, 0xd2, - 0x15, 0x98, 0xb1, 0x07, 0x9e, 0x61, 0x5b, 0x6e, 0x29, 0xbb, 0x2a, 0xac, 0xe5, 0x37, 0x3e, 0x34, - 0x35, 0x10, 0x9a, 0x54, 0x47, 0xe1, 0xca, 0x52, 0x1d, 0x44, 0xd7, 0x1e, 0x3a, 0x3a, 0x52, 0x75, - 0xbb, 0x83, 0x54, 0xc3, 0xea, 0xda, 0xa5, 0x1c, 0x21, 0x38, 0x3f, 0xb9, 0x10, 0xa2, 0x58, 0xb5, - 0x3b, 0xa8, 0x6e, 0x75, 0x6d, 0xa5, 0xe8, 0x86, 0xc6, 0xd2, 0x12, 0x64, 0xdc, 0x23, 0xcb, 0xd3, - 0x5e, 0x29, 0x15, 0x48, 0x84, 0xb0, 0x51, 0xf9, 0xff, 0xd2, 0x30, 0x17, 0x27, 0xc4, 0xae, 0x41, - 0xba, 0x8b, 0x57, 0x59, 0x4a, 0x9c, 0xc6, 0x07, 0x14, 0x13, 0x76, 0x62, 0xe6, 0x47, 0x74, 0x62, - 0x05, 0xf2, 0x16, 0x72, 0x3d, 0xd4, 0xa1, 0x11, 0x91, 0x8c, 0x19, 0x53, 0x40, 0x41, 0x93, 0x21, - 0x95, 0xfa, 0x91, 0x42, 0xea, 0x26, 0xcc, 0xf9, 0x26, 0xa9, 0x8e, 0x66, 0xf5, 0x78, 0x6c, 0x5e, - 0x8c, 0xb2, 0x64, 0xbd, 0xc6, 0x71, 0x0a, 0x86, 0x29, 0x45, 0x14, 0x1a, 0x4b, 0x5b, 0x00, 0xb6, - 0x85, 0xec, 0xae, 0xda, 0x41, 0xba, 0x59, 0xca, 0x1e, 0xe3, 0xa5, 0x26, 0x56, 0x99, 0xf0, 0x92, - 0x4d, 0xa5, 0xba, 0x29, 0x3d, 0x3f, 0x0a, 0xb5, 0x99, 0x63, 0x22, 0x65, 0x97, 0x1e, 0xb2, 0x89, - 0x68, 0xdb, 0x87, 0xa2, 0x83, 0x70, 0xdc, 0xa3, 0x0e, 0x5b, 0x59, 0x8e, 0x18, 0xb1, 0x1e, 0xb9, - 0x32, 0x85, 0xc1, 0xe8, 0xc2, 0x66, 0x9d, 0xe0, 0x50, 0xfa, 0x30, 0xf8, 0x02, 0x95, 0x84, 0x15, - 0x90, 0x2c, 0x54, 0xe0, 0xc2, 0x86, 0xd6, 0x47, 0xcb, 0x57, 0xa1, 0x18, 0x76, 0x8f, 0xb4, 0x08, - 0x69, 0xd7, 0xd3, 0x1c, 0x8f, 0x44, 0x61, 0x5a, 0xa1, 0x03, 0x49, 0x84, 0x24, 0xb2, 0x3a, 0x24, - 0xcb, 0xa5, 0x15, 0xfc, 0xe7, 0xf2, 0x73, 0x30, 0x1b, 0x7a, 0x7c, 0x5c, 0x60, 0xf9, 0x73, 0x19, - 0x58, 0x9c, 0x16, 0x73, 0x53, 0xc3, 0x7f, 0x09, 0x32, 0xd6, 0xb0, 0x7f, 0x80, 0x9c, 0x52, 0x92, - 0x30, 0xb0, 0x91, 0x54, 0x81, 0xb4, 0xa9, 0x1d, 0x20, 0xb3, 0x94, 0x5a, 0x15, 0xd6, 0x8a, 0x1b, - 0x4f, 0xc7, 0x8a, 0xea, 0xf5, 0x1d, 0x0c, 0x51, 0x28, 0x52, 0x7a, 0x01, 0x52, 0x2c, 0xc5, 0x61, - 0x86, 0xa7, 0xe2, 0x31, 0xe0, 0x58, 0x54, 0x08, 0x4e, 0x7a, 0x18, 0x72, 0xf8, 0x7f, 0xea, 0xdb, - 0x0c, 0xb1, 0x39, 0x8b, 0x05, 0xd8, 0xaf, 0xd2, 0x32, 0x64, 0x49, 0x98, 0x75, 0x10, 0x2f, 0x0d, - 0xfe, 0x18, 0x6f, 0x4c, 0x07, 0x75, 0xb5, 0xa1, 0xe9, 0xa9, 0x77, 0x34, 0x73, 0x88, 0x48, 0xc0, - 0xe4, 0x94, 0x02, 0x13, 0x7e, 0x12, 0xcb, 0xa4, 0xf3, 0x90, 0xa7, 0x51, 0x69, 0x58, 0x1d, 0xf4, - 0x0a, 0xc9, 0x3e, 0x69, 0x85, 0x06, 0x6a, 0x1d, 0x4b, 0xf0, 0xe3, 0x6f, 0xb9, 0xb6, 0xc5, 0xb7, - 0x96, 0x3c, 0x02, 0x0b, 0xc8, 0xe3, 0x9f, 0x1b, 0x4f, 0x7c, 0x8f, 0x4c, 0x5f, 0xde, 0x78, 0x2c, - 0x96, 0xbf, 0x91, 0x80, 0x14, 0x39, 0x6f, 0x73, 0x90, 0xdf, 0x7b, 0xb9, 0x55, 0x53, 0xb7, 0x9a, - 0xfb, 0x9b, 0x3b, 0x35, 0x51, 0x90, 0x8a, 0x00, 0x44, 0x70, 0x7d, 0xa7, 0x59, 0xd9, 0x13, 0x13, - 0xfe, 0xb8, 0xde, 0xd8, 0xbb, 0xf2, 0xac, 0x98, 0xf4, 0x01, 0xfb, 0x54, 0x90, 0x0a, 0x2a, 0x5c, - 0xda, 0x10, 0xd3, 0x92, 0x08, 0x05, 0x4a, 0x50, 0xbf, 0x59, 0xdb, 0xba, 0xf2, 0xac, 0x98, 0x09, - 0x4b, 0x2e, 0x6d, 0x88, 0x33, 0xd2, 0x2c, 0xe4, 0x88, 0x64, 0xb3, 0xd9, 0xdc, 0x11, 0xb3, 0x3e, - 0x67, 0x7b, 0x4f, 0xa9, 0x37, 0xb6, 0xc5, 0x9c, 0xcf, 0xb9, 0xad, 0x34, 0xf7, 0x5b, 0x22, 0xf8, - 0x0c, 0xbb, 0xb5, 0x76, 0xbb, 0xb2, 0x5d, 0x13, 0xf3, 0xbe, 0xc6, 0xe6, 0xcb, 0x7b, 0xb5, 0xb6, - 0x58, 0x08, 0x99, 0x75, 0x69, 0x43, 0x9c, 0xf5, 0x1f, 0x51, 0x6b, 0xec, 0xef, 0x8a, 0x45, 0x69, - 0x1e, 0x66, 0xe9, 0x23, 0xb8, 0x11, 0x73, 0x63, 0xa2, 0x2b, 0xcf, 0x8a, 0xe2, 0xc8, 0x10, 0xca, - 0x32, 0x1f, 0x12, 0x5c, 0x79, 0x56, 0x94, 0xca, 0x55, 0x48, 0x93, 0xe8, 0x92, 0x24, 0x28, 0xee, - 0x54, 0x36, 0x6b, 0x3b, 0x6a, 0xb3, 0xb5, 0x57, 0x6f, 0x36, 0x2a, 0x3b, 0xa2, 0x30, 0x92, 0x29, - 0xb5, 0x4f, 0xec, 0xd7, 0x95, 0xda, 0x96, 0x98, 0x08, 0xca, 0x5a, 0xb5, 0xca, 0x5e, 0x6d, 0x4b, - 0x4c, 0x96, 0x75, 0x58, 0x9c, 0x96, 0x67, 0xa6, 0x9e, 0x8c, 0xc0, 0x16, 0x27, 0x8e, 0xd9, 0x62, - 0xc2, 0x35, 0xb1, 0xc5, 0x5f, 0x12, 0x60, 0x61, 0x4a, 0xae, 0x9d, 0xfa, 0x90, 0x17, 0x21, 0x4d, - 0x43, 0x94, 0x56, 0x9f, 0x27, 0xa7, 0x26, 0x6d, 0x12, 0xb0, 0x13, 0x15, 0x88, 0xe0, 0x82, 0x15, - 0x38, 0x79, 0x4c, 0x05, 0xc6, 0x14, 0x13, 0x46, 0xbe, 0x26, 0x40, 0xe9, 0x38, 0xee, 0x88, 0x44, - 0x91, 0x08, 0x25, 0x8a, 0x6b, 0xe3, 0x06, 0x5c, 0x38, 0x7e, 0x0d, 0x13, 0x56, 0xbc, 0x2d, 0xc0, - 0xd2, 0xf4, 0x46, 0x65, 0xaa, 0x0d, 0x2f, 0x40, 0xa6, 0x8f, 0xbc, 0x43, 0x9b, 0x17, 0xeb, 0xc7, - 0xa7, 0x94, 0x00, 0x3c, 0x3d, 0xee, 0x2b, 0x86, 0x0a, 0xd6, 0x90, 0xe4, 0x71, 0xdd, 0x06, 0xb5, - 0x66, 0xc2, 0xd2, 0xcf, 0x24, 0xe0, 0xa1, 0xa9, 0xe4, 0x53, 0x0d, 0x7d, 0x04, 0xc0, 0xb0, 0x06, - 0x43, 0x8f, 0x16, 0x64, 0x9a, 0x9f, 0x72, 0x44, 0x42, 0xce, 0x3e, 0xce, 0x3d, 0x43, 0xcf, 0x9f, - 0x4f, 0x92, 0x79, 0xa0, 0x22, 0xa2, 0x70, 0x75, 0x64, 0x68, 0x8a, 0x18, 0xba, 0x72, 0xcc, 0x4a, - 0x27, 0x6a, 0xdd, 0x47, 0x41, 0xd4, 0x4d, 0x03, 0x59, 0x9e, 0xea, 0x7a, 0x0e, 0xd2, 0xfa, 0x86, - 0xd5, 0x23, 0x09, 0x38, 0x2b, 0xa7, 0xbb, 0x9a, 0xe9, 0x22, 0x65, 0x8e, 0x4e, 0xb7, 0xf9, 0x2c, - 0x46, 0x90, 0x2a, 0xe3, 0x04, 0x10, 0x99, 0x10, 0x82, 0x4e, 0xfb, 0x88, 0xf2, 0x57, 0x67, 0x20, - 0x1f, 0x68, 0xeb, 0xa4, 0x0b, 0x50, 0xb8, 0xa5, 0xdd, 0xd1, 0x54, 0xde, 0xaa, 0x53, 0x4f, 0xe4, - 0xb1, 0xac, 0xc5, 0xda, 0xf5, 0x8f, 0xc2, 0x22, 0x51, 0xb1, 0x87, 0x1e, 0x72, 0x54, 0xdd, 0xd4, - 0x5c, 0x97, 0x38, 0x2d, 0x4b, 0x54, 0x25, 0x3c, 0xd7, 0xc4, 0x53, 0x55, 0x3e, 0x23, 0x5d, 0x86, - 0x05, 0x82, 0xe8, 0x0f, 0x4d, 0xcf, 0x18, 0x98, 0x48, 0xc5, 0x2f, 0x0f, 0x2e, 0x49, 0xc4, 0xbe, - 0x65, 0xf3, 0x58, 0x63, 0x97, 0x29, 0x60, 0x8b, 0x5c, 0x69, 0x0b, 0x1e, 0x21, 0xb0, 0x1e, 0xb2, - 0x90, 0xa3, 0x79, 0x48, 0x45, 0x9f, 0x1e, 0x6a, 0xa6, 0xab, 0x6a, 0x56, 0x47, 0x3d, 0xd4, 0xdc, - 0xc3, 0xd2, 0x22, 0x26, 0xd8, 0x4c, 0x94, 0x04, 0xe5, 0x1c, 0x56, 0xdc, 0x66, 0x7a, 0x35, 0xa2, - 0x56, 0xb1, 0x3a, 0x1f, 0xd7, 0xdc, 0x43, 0x49, 0x86, 0x25, 0xc2, 0xe2, 0x7a, 0x8e, 0x61, 0xf5, - 0x54, 0xfd, 0x10, 0xe9, 0xb7, 0xd5, 0xa1, 0xd7, 0xbd, 0x5a, 0x7a, 0x38, 0xf8, 0x7c, 0x62, 0x61, - 0x9b, 0xe8, 0x54, 0xb1, 0xca, 0xbe, 0xd7, 0xbd, 0x2a, 0xb5, 0xa1, 0x80, 0x37, 0xa3, 0x6f, 0xbc, - 0x8a, 0xd4, 0xae, 0xed, 0x90, 0xca, 0x52, 0x9c, 0x72, 0xb2, 0x03, 0x1e, 0x5c, 0x6f, 0x32, 0xc0, - 0xae, 0xdd, 0x41, 0x72, 0xba, 0xdd, 0xaa, 0xd5, 0xb6, 0x94, 0x3c, 0x67, 0xb9, 0x6e, 0x3b, 0x38, - 0xa0, 0x7a, 0xb6, 0xef, 0xe0, 0x3c, 0x0d, 0xa8, 0x9e, 0xcd, 0xdd, 0x7b, 0x19, 0x16, 0x74, 0x9d, - 0xae, 0xd9, 0xd0, 0x55, 0xd6, 0xe2, 0xbb, 0x25, 0x31, 0xe4, 0x2c, 0x5d, 0xdf, 0xa6, 0x0a, 0x2c, - 0xc6, 0x5d, 0xe9, 0x79, 0x78, 0x68, 0xe4, 0xac, 0x20, 0x70, 0x7e, 0x62, 0x95, 0xe3, 0xd0, 0xcb, - 0xb0, 0x30, 0x38, 0x9a, 0x04, 0x4a, 0xa1, 0x27, 0x0e, 0x8e, 0xc6, 0x61, 0x8f, 0x91, 0xd7, 0x36, - 0x07, 0xe9, 0x9a, 0x87, 0x3a, 0xa5, 0xb3, 0x41, 0xed, 0xc0, 0x84, 0x74, 0x11, 0x44, 0x5d, 0x57, - 0x91, 0xa5, 0x1d, 0x98, 0x48, 0xd5, 0x1c, 0x64, 0x69, 0x6e, 0xe9, 0x7c, 0x50, 0xb9, 0xa8, 0xeb, - 0x35, 0x32, 0x5b, 0x21, 0x93, 0xd2, 0x53, 0x30, 0x6f, 0x1f, 0xdc, 0xd2, 0x69, 0x64, 0xa9, 0x03, - 0x07, 0x75, 0x8d, 0x57, 0x4a, 0x8f, 0x12, 0x37, 0xcd, 0xe1, 0x09, 0x12, 0x57, 0x2d, 0x22, 0x96, - 0x9e, 0x04, 0x51, 0x77, 0x0f, 0x35, 0x67, 0x40, 0x4a, 0xbb, 0x3b, 0xd0, 0x74, 0x54, 0x7a, 0x8c, - 0xaa, 0x52, 0x79, 0x83, 0x8b, 0x71, 0x64, 0xbb, 0x77, 0x8d, 0xae, 0xc7, 0x19, 0x9f, 0xa0, 0x91, - 0x4d, 0x64, 0x8c, 0xed, 0x26, 0x2c, 0x0e, 0x2d, 0xc3, 0xf2, 0x90, 0x33, 0x70, 0x10, 0x6e, 0xe2, - 0xe9, 0x49, 0x2c, 0xfd, 0xeb, 0xcc, 0x31, 0x6d, 0xf8, 0x7e, 0x50, 0x9b, 0x06, 0x80, 0xb2, 0x30, - 0x9c, 0x14, 0x96, 0x65, 0x28, 0x04, 0xe3, 0x42, 0xca, 0x01, 0x8d, 0x0c, 0x51, 0xc0, 0x35, 0xb6, - 0xda, 0xdc, 0xc2, 0xd5, 0xf1, 0x53, 0x35, 0x31, 0x81, 0xab, 0xf4, 0x4e, 0x7d, 0xaf, 0xa6, 0x2a, - 0xfb, 0x8d, 0xbd, 0xfa, 0x6e, 0x4d, 0x4c, 0x3e, 0x95, 0xcb, 0xfe, 0xdb, 0x8c, 0x78, 0xef, 0xde, - 0xbd, 0x7b, 0x89, 0xf2, 0xb7, 0x12, 0x50, 0x0c, 0x77, 0xc6, 0xd2, 0x4f, 0xc3, 0x59, 0xfe, 0x1a, - 0xeb, 0x22, 0x4f, 0xbd, 0x6b, 0x38, 0x24, 0x54, 0xfb, 0x1a, 0xed, 0x2d, 0x7d, 0x2f, 0x2f, 0x32, - 0xad, 0x36, 0xf2, 0x5e, 0x32, 0x1c, 0x1c, 0x88, 0x7d, 0xcd, 0x93, 0x76, 0xe0, 0xbc, 0x65, 0xab, - 0xae, 0xa7, 0x59, 0x1d, 0xcd, 0xe9, 0xa8, 0xa3, 0x0b, 0x04, 0x55, 0xd3, 0x75, 0xe4, 0xba, 0x36, - 0x2d, 0x11, 0x3e, 0xcb, 0x87, 0x2c, 0xbb, 0xcd, 0x94, 0x47, 0xb9, 0xb3, 0xc2, 0x54, 0xc7, 0x22, - 0x22, 0x79, 0x5c, 0x44, 0x3c, 0x0c, 0xb9, 0xbe, 0x36, 0x50, 0x91, 0xe5, 0x39, 0x47, 0xa4, 0x9f, - 0xcb, 0x2a, 0xd9, 0xbe, 0x36, 0xa8, 0xe1, 0xf1, 0x07, 0xb7, 0x07, 0x41, 0x3f, 0xfe, 0x73, 0x12, - 0x0a, 0xc1, 0x9e, 0x0e, 0xb7, 0xc8, 0x3a, 0xc9, 0xdf, 0x02, 0x39, 0xe1, 0x1f, 0x3e, 0xb1, 0x03, - 0x5c, 0xaf, 0xe2, 0xc4, 0x2e, 0x67, 0x68, 0xa7, 0xa5, 0x50, 0x24, 0x2e, 0xaa, 0xf8, 0x4c, 0x23, - 0xda, 0xbf, 0x67, 0x15, 0x36, 0x92, 0xb6, 0x21, 0x73, 0xcb, 0x25, 0xdc, 0x19, 0xc2, 0xfd, 0xe8, - 0xc9, 0xdc, 0x37, 0xda, 0x84, 0x3c, 0x77, 0xa3, 0xad, 0x36, 0x9a, 0xca, 0x6e, 0x65, 0x47, 0x61, - 0x70, 0xe9, 0x1c, 0xa4, 0x4c, 0xed, 0xd5, 0xa3, 0x70, 0x09, 0x20, 0xa2, 0xb8, 0x8e, 0x3f, 0x07, - 0xa9, 0xbb, 0x48, 0xbb, 0x1d, 0x4e, 0xbc, 0x44, 0xf4, 0x01, 0x86, 0xfe, 0x45, 0x48, 0x13, 0x7f, - 0x49, 0x00, 0xcc, 0x63, 0xe2, 0x19, 0x29, 0x0b, 0xa9, 0x6a, 0x53, 0xc1, 0xe1, 0x2f, 0x42, 0x81, - 0x4a, 0xd5, 0x56, 0xbd, 0x56, 0xad, 0x89, 0x89, 0xf2, 0x65, 0xc8, 0x50, 0x27, 0xe0, 0xa3, 0xe1, - 0xbb, 0x41, 0x3c, 0xc3, 0x86, 0x8c, 0x43, 0xe0, 0xb3, 0xfb, 0xbb, 0x9b, 0x35, 0x45, 0x4c, 0x04, - 0xb7, 0xd7, 0x85, 0x42, 0xb0, 0x9d, 0xfb, 0xf1, 0xc4, 0xd4, 0x5f, 0x0b, 0x90, 0x0f, 0xb4, 0x67, - 0xb8, 0x31, 0xd0, 0x4c, 0xd3, 0xbe, 0xab, 0x6a, 0xa6, 0xa1, 0xb9, 0x2c, 0x28, 0x80, 0x88, 0x2a, - 0x58, 0x12, 0x77, 0xd3, 0x7e, 0x2c, 0xc6, 0xbf, 0x29, 0x80, 0x38, 0xde, 0xda, 0x8d, 0x19, 0x28, - 0xfc, 0x44, 0x0d, 0x7c, 0x43, 0x80, 0x62, 0xb8, 0x9f, 0x1b, 0x33, 0xef, 0xc2, 0x4f, 0xd4, 0xbc, - 0xef, 0x26, 0x60, 0x36, 0xd4, 0xc5, 0xc5, 0xb5, 0xee, 0xd3, 0x30, 0x6f, 0x74, 0x50, 0x7f, 0x60, - 0x7b, 0xc8, 0xd2, 0x8f, 0x54, 0x13, 0xdd, 0x41, 0x66, 0xa9, 0x4c, 0x12, 0xc5, 0xc5, 0x93, 0xfb, - 0xc4, 0xf5, 0xfa, 0x08, 0xb7, 0x83, 0x61, 0xf2, 0x42, 0x7d, 0xab, 0xb6, 0xdb, 0x6a, 0xee, 0xd5, - 0x1a, 0xd5, 0x97, 0xd5, 0xfd, 0xc6, 0xcf, 0x34, 0x9a, 0x2f, 0x35, 0x14, 0xd1, 0x18, 0x53, 0xfb, - 0x00, 0x8f, 0x7a, 0x0b, 0xc4, 0x71, 0xa3, 0xa4, 0xb3, 0x30, 0xcd, 0x2c, 0xf1, 0x8c, 0xb4, 0x00, - 0x73, 0x8d, 0xa6, 0xda, 0xae, 0x6f, 0xd5, 0xd4, 0xda, 0xf5, 0xeb, 0xb5, 0xea, 0x5e, 0x9b, 0xbe, - 0x38, 0xfb, 0xda, 0x7b, 0xe1, 0x43, 0xfd, 0x7a, 0x12, 0x16, 0xa6, 0x58, 0x22, 0x55, 0x58, 0xcf, - 0x4e, 0x5f, 0x23, 0x3e, 0x12, 0xc7, 0xfa, 0x75, 0xdc, 0x15, 0xb4, 0x34, 0xc7, 0x63, 0x2d, 0xfe, - 0x93, 0x80, 0xbd, 0x64, 0x79, 0x46, 0xd7, 0x40, 0x0e, 0xbb, 0x67, 0xa0, 0x8d, 0xfc, 0xdc, 0x48, - 0x4e, 0xaf, 0x1a, 0x7e, 0x0a, 0xa4, 0x81, 0xed, 0x1a, 0x9e, 0x71, 0x07, 0xa9, 0x86, 0xc5, 0x2f, - 0x25, 0x70, 0x63, 0x9f, 0x52, 0x44, 0x3e, 0x53, 0xb7, 0x3c, 0x5f, 0xdb, 0x42, 0x3d, 0x6d, 0x4c, - 0x1b, 0x27, 0xf0, 0xa4, 0x22, 0xf2, 0x19, 0x5f, 0xfb, 0x02, 0x14, 0x3a, 0xf6, 0x10, 0xb7, 0x49, - 0x54, 0x0f, 0xd7, 0x0b, 0x41, 0xc9, 0x53, 0x99, 0xaf, 0xc2, 0xfa, 0xd8, 0xd1, 0x6d, 0x48, 0x41, - 0xc9, 0x53, 0x19, 0x55, 0x79, 0x02, 0xe6, 0xb4, 0x5e, 0xcf, 0xc1, 0xe4, 0x9c, 0x88, 0x76, 0xe6, - 0x45, 0x5f, 0x4c, 0x14, 0x97, 0x6f, 0x40, 0x96, 0xfb, 0x01, 0x97, 0x64, 0xec, 0x09, 0x75, 0x40, - 0xef, 0xa4, 0x12, 0x6b, 0x39, 0x25, 0x6b, 0xf1, 0xc9, 0x0b, 0x50, 0x30, 0x5c, 0x75, 0x74, 0x39, - 0x9a, 0x58, 0x4d, 0xac, 0x65, 0x95, 0xbc, 0xe1, 0xfa, 0xb7, 0x61, 0xe5, 0xb7, 0x13, 0x50, 0x0c, - 0x5f, 0xee, 0x4a, 0x5b, 0x90, 0x35, 0x6d, 0x5d, 0x23, 0xa1, 0x45, 0xbf, 0x2c, 0xac, 0x45, 0xdc, - 0x07, 0xaf, 0xef, 0x30, 0x7d, 0xc5, 0x47, 0x2e, 0xff, 0x83, 0x00, 0x59, 0x2e, 0x96, 0x96, 0x20, - 0x35, 0xd0, 0xbc, 0x43, 0x42, 0x97, 0xde, 0x4c, 0x88, 0x82, 0x42, 0xc6, 0x58, 0xee, 0x0e, 0x34, - 0x8b, 0x84, 0x00, 0x93, 0xe3, 0x31, 0xde, 0x57, 0x13, 0x69, 0x1d, 0xd2, 0xf6, 0xdb, 0xfd, 0x3e, - 0xb2, 0x3c, 0x97, 0xef, 0x2b, 0x93, 0x57, 0x99, 0x58, 0x7a, 0x1a, 0xe6, 0x3d, 0x47, 0x33, 0xcc, - 0x90, 0x6e, 0x8a, 0xe8, 0x8a, 0x7c, 0xc2, 0x57, 0x96, 0xe1, 0x1c, 0xe7, 0xed, 0x20, 0x4f, 0xd3, - 0x0f, 0x51, 0x67, 0x04, 0xca, 0x90, 0x9b, 0xc3, 0xb3, 0x4c, 0x61, 0x8b, 0xcd, 0x73, 0x6c, 0xf9, - 0x3b, 0x02, 0xcc, 0xf3, 0x17, 0x95, 0x8e, 0xef, 0xac, 0x5d, 0x00, 0xcd, 0xb2, 0x6c, 0x2f, 0xe8, - 0xae, 0xc9, 0x50, 0x9e, 0xc0, 0xad, 0x57, 0x7c, 0x90, 0x12, 0x20, 0x58, 0xee, 0x03, 0x8c, 0x66, - 0x8e, 0x75, 0xdb, 0x79, 0xc8, 0xb3, 0x9b, 0x7b, 0xf2, 0xf9, 0x87, 0xbe, 0xda, 0x02, 0x15, 0xe1, - 0x37, 0x1a, 0x69, 0x11, 0xd2, 0x07, 0xa8, 0x67, 0x58, 0xec, 0x3e, 0x91, 0x0e, 0xf8, 0x2d, 0x65, - 0xca, 0xbf, 0xa5, 0xdc, 0xbc, 0x09, 0x0b, 0xba, 0xdd, 0x1f, 0x37, 0x77, 0x53, 0x1c, 0x7b, 0xbd, - 0x76, 0x3f, 0x2e, 0x7c, 0x0a, 0x46, 0x2d, 0xe6, 0x97, 0x12, 0xc9, 0xed, 0xd6, 0xe6, 0x57, 0x12, - 0xcb, 0xdb, 0x14, 0xd7, 0xe2, 0xcb, 0x54, 0x50, 0xd7, 0x44, 0x3a, 0x36, 0x1d, 0x7e, 0xf0, 0x38, - 0x7c, 0xa4, 0x67, 0x78, 0x87, 0xc3, 0x83, 0x75, 0xdd, 0xee, 0x5f, 0xec, 0xd9, 0x3d, 0x7b, 0xf4, - 0xb9, 0x0b, 0x8f, 0xc8, 0x80, 0xfc, 0xc5, 0x3e, 0x79, 0xe5, 0x7c, 0xe9, 0x72, 0xe4, 0xf7, 0x31, - 0xb9, 0x01, 0x0b, 0x4c, 0x59, 0x25, 0x77, 0xee, 0xf4, 0xd5, 0x40, 0x3a, 0xf1, 0xde, 0xa5, 0xf4, - 0xf5, 0x77, 0x49, 0xad, 0x56, 0xe6, 0x19, 0x14, 0xcf, 0xd1, 0x17, 0x08, 0x59, 0x81, 0x87, 0x42, - 0x7c, 0xf4, 0x5c, 0x22, 0x27, 0x82, 0xf1, 0x5b, 0x8c, 0x71, 0x21, 0xc0, 0xd8, 0x66, 0x50, 0xb9, - 0x0a, 0xb3, 0xa7, 0xe1, 0xfa, 0x5b, 0xc6, 0x55, 0x40, 0x41, 0x92, 0x6d, 0x98, 0x23, 0x24, 0xfa, - 0xd0, 0xf5, 0xec, 0x3e, 0x49, 0x7a, 0x27, 0xd3, 0xfc, 0xdd, 0xbb, 0xf4, 0xa0, 0x14, 0x31, 0xac, - 0xea, 0xa3, 0x64, 0x19, 0xc8, 0x67, 0x86, 0x0e, 0xd2, 0xcd, 0x08, 0x86, 0x6f, 0x33, 0x43, 0x7c, - 0x7d, 0xf9, 0x93, 0xb0, 0x88, 0xff, 0x26, 0x39, 0x29, 0x68, 0x49, 0xf4, 0x2d, 0x53, 0xe9, 0x3b, - 0xaf, 0xd1, 0xb3, 0xb8, 0xe0, 0x13, 0x04, 0x6c, 0x0a, 0xec, 0x62, 0x0f, 0x79, 0x1e, 0x72, 0x5c, - 0x55, 0x33, 0xa7, 0x99, 0x17, 0x78, 0x4d, 0x2f, 0x7d, 0xfe, 0xbd, 0xf0, 0x2e, 0x6e, 0x53, 0x64, - 0xc5, 0x34, 0xe5, 0x7d, 0x38, 0x3b, 0x25, 0x2a, 0x62, 0x70, 0xbe, 0xce, 0x38, 0x17, 0x27, 0x22, - 0x03, 0xd3, 0xb6, 0x80, 0xcb, 0xfd, 0xbd, 0x8c, 0xc1, 0xf9, 0xbb, 0x8c, 0x53, 0x62, 0x58, 0xbe, - 0xa5, 0x98, 0xf1, 0x06, 0xcc, 0xdf, 0x41, 0xce, 0x81, 0xed, 0xb2, 0xab, 0x91, 0x18, 0x74, 0x6f, - 0x30, 0xba, 0x39, 0x06, 0x24, 0x77, 0x25, 0x98, 0xeb, 0x79, 0xc8, 0x76, 0x35, 0x1d, 0xc5, 0xa0, - 0xf8, 0x02, 0xa3, 0x98, 0xc1, 0xfa, 0x18, 0x5a, 0x81, 0x42, 0xcf, 0x66, 0x65, 0x29, 0x1a, 0xfe, - 0x26, 0x83, 0xe7, 0x39, 0x86, 0x51, 0x0c, 0xec, 0xc1, 0xd0, 0xc4, 0x35, 0x2b, 0x9a, 0xe2, 0xf7, - 0x38, 0x05, 0xc7, 0x30, 0x8a, 0x53, 0xb8, 0xf5, 0x8b, 0x9c, 0xc2, 0x0d, 0xf8, 0xf3, 0x45, 0xc8, - 0xdb, 0x96, 0x79, 0x64, 0x5b, 0x71, 0x8c, 0x78, 0x8b, 0x31, 0x00, 0x83, 0x60, 0x82, 0x6b, 0x90, - 0x8b, 0xbb, 0x11, 0xbf, 0xff, 0x1e, 0x3f, 0x1e, 0x7c, 0x07, 0xb6, 0x61, 0x8e, 0x27, 0x28, 0xc3, - 0xb6, 0x62, 0x50, 0xfc, 0x01, 0xa3, 0x28, 0x06, 0x60, 0x6c, 0x19, 0x1e, 0x72, 0xbd, 0x1e, 0x8a, - 0x43, 0xf2, 0x36, 0x5f, 0x06, 0x83, 0x30, 0x57, 0x1e, 0x20, 0x4b, 0x3f, 0x8c, 0xc7, 0xf0, 0x65, - 0xee, 0x4a, 0x8e, 0xc1, 0x14, 0x55, 0x98, 0xed, 0x6b, 0x8e, 0x7b, 0xa8, 0x99, 0xb1, 0xb6, 0xe3, - 0x0f, 0x19, 0x47, 0xc1, 0x07, 0x31, 0x8f, 0x0c, 0xad, 0xd3, 0xd0, 0x7c, 0x85, 0x7b, 0x24, 0x00, - 0x63, 0x47, 0xcf, 0xf5, 0xc8, 0x05, 0xd4, 0x69, 0xd8, 0xbe, 0xca, 0x8f, 0x1e, 0xc5, 0xee, 0x06, - 0x19, 0xaf, 0x41, 0xce, 0x35, 0x5e, 0x8d, 0x45, 0xf3, 0x47, 0x7c, 0xa7, 0x09, 0x00, 0x83, 0x5f, - 0x86, 0x73, 0x53, 0xcb, 0x44, 0x0c, 0xb2, 0x3f, 0x66, 0x64, 0x4b, 0x53, 0x4a, 0x05, 0x4b, 0x09, - 0xa7, 0xa5, 0xfc, 0x13, 0x9e, 0x12, 0xd0, 0x18, 0x57, 0x0b, 0xbf, 0x28, 0xb8, 0x5a, 0xf7, 0x74, - 0x5e, 0xfb, 0x53, 0xee, 0x35, 0x8a, 0x0d, 0x79, 0x6d, 0x0f, 0x96, 0x18, 0xe3, 0xe9, 0xf6, 0xf5, - 0x6b, 0x3c, 0xb1, 0x52, 0xf4, 0x7e, 0x78, 0x77, 0x7f, 0x16, 0x96, 0x7d, 0x77, 0xf2, 0x8e, 0xd4, - 0x55, 0xfb, 0xda, 0x20, 0x06, 0xf3, 0xd7, 0x19, 0x33, 0xcf, 0xf8, 0x7e, 0x4b, 0xeb, 0xee, 0x6a, - 0x03, 0x4c, 0x7e, 0x13, 0x4a, 0x9c, 0x7c, 0x68, 0x39, 0x48, 0xb7, 0x7b, 0x96, 0xf1, 0x2a, 0xea, - 0xc4, 0xa0, 0xfe, 0xb3, 0xb1, 0xad, 0xda, 0x0f, 0xc0, 0x31, 0x73, 0x1d, 0x44, 0xbf, 0x57, 0x51, - 0x8d, 0xfe, 0xc0, 0x76, 0xbc, 0x08, 0xc6, 0x3f, 0xe7, 0x3b, 0xe5, 0xe3, 0xea, 0x04, 0x26, 0xd7, - 0xa0, 0x48, 0x86, 0x71, 0x43, 0xf2, 0x2f, 0x18, 0xd1, 0xec, 0x08, 0xc5, 0x12, 0x87, 0x6e, 0xf7, - 0x07, 0x9a, 0x13, 0x27, 0xff, 0xfd, 0x25, 0x4f, 0x1c, 0x0c, 0xc2, 0x12, 0x87, 0x77, 0x34, 0x40, - 0xb8, 0xda, 0xc7, 0x60, 0xf8, 0x06, 0x4f, 0x1c, 0x1c, 0xc3, 0x28, 0x78, 0xc3, 0x10, 0x83, 0xe2, - 0xaf, 0x38, 0x05, 0xc7, 0x60, 0x8a, 0x4f, 0x8c, 0x0a, 0xad, 0x83, 0x7a, 0x86, 0xeb, 0x39, 0xb4, - 0x0f, 0x3e, 0x99, 0xea, 0x9b, 0xef, 0x85, 0x9b, 0x30, 0x25, 0x00, 0x95, 0x6f, 0xc0, 0xdc, 0x58, - 0x8b, 0x21, 0x45, 0xfd, 0x66, 0xa1, 0xf4, 0x73, 0xef, 0xb3, 0x64, 0x14, 0xee, 0x30, 0xe4, 0x1d, - 0xbc, 0xef, 0xe1, 0x3e, 0x20, 0x9a, 0xec, 0xb5, 0xf7, 0xfd, 0xad, 0x0f, 0xb5, 0x01, 0xf2, 0x75, - 0x98, 0x0d, 0xf5, 0x00, 0xd1, 0x54, 0x3f, 0xcf, 0xa8, 0x0a, 0xc1, 0x16, 0x40, 0xbe, 0x0c, 0x29, - 0x5c, 0xcf, 0xa3, 0xe1, 0xbf, 0xc0, 0xe0, 0x44, 0x5d, 0xfe, 0x18, 0x64, 0x79, 0x1d, 0x8f, 0x86, - 0xfe, 0x22, 0x83, 0xfa, 0x10, 0x0c, 0xe7, 0x35, 0x3c, 0x1a, 0xfe, 0x4b, 0x1c, 0xce, 0x21, 0x18, - 0x1e, 0xdf, 0x85, 0x7f, 0xf3, 0x2b, 0x29, 0x96, 0x87, 0xb9, 0xef, 0xae, 0xc1, 0x0c, 0x2b, 0xde, - 0xd1, 0xe8, 0xcf, 0xb0, 0x87, 0x73, 0x84, 0xfc, 0x1c, 0xa4, 0x63, 0x3a, 0xfc, 0x57, 0x19, 0x94, - 0xea, 0xcb, 0x55, 0xc8, 0x07, 0x0a, 0x76, 0x34, 0xfc, 0xd7, 0x18, 0x3c, 0x88, 0xc2, 0xa6, 0xb3, - 0x82, 0x1d, 0x4d, 0xf0, 0xeb, 0xdc, 0x74, 0x86, 0xc0, 0x6e, 0xe3, 0xb5, 0x3a, 0x1a, 0xfd, 0x59, - 0xee, 0x75, 0x0e, 0x91, 0x5f, 0x84, 0x9c, 0x9f, 0x7f, 0xa3, 0xf1, 0xbf, 0xc1, 0xf0, 0x23, 0x0c, - 0xf6, 0x40, 0x20, 0xff, 0x47, 0x53, 0xfc, 0x26, 0xf7, 0x40, 0x00, 0x85, 0x8f, 0xd1, 0x78, 0x4d, - 0x8f, 0x66, 0xfa, 0x2d, 0x7e, 0x8c, 0xc6, 0x4a, 0x3a, 0xde, 0x4d, 0x92, 0x06, 0xa3, 0x29, 0x7e, - 0x9b, 0xef, 0x26, 0xd1, 0xc7, 0x66, 0x8c, 0x17, 0xc9, 0x68, 0x8e, 0xdf, 0xe1, 0x66, 0x8c, 0xd5, - 0x48, 0xb9, 0x05, 0xd2, 0x64, 0x81, 0x8c, 0xe6, 0xfb, 0x1c, 0xe3, 0x9b, 0x9f, 0xa8, 0x8f, 0xf2, - 0x4b, 0xb0, 0x34, 0xbd, 0x38, 0x46, 0xb3, 0x7e, 0xfe, 0xfd, 0xb1, 0xd7, 0x99, 0x60, 0x6d, 0x94, - 0xf7, 0x46, 0x59, 0x36, 0x58, 0x18, 0xa3, 0x69, 0x5f, 0x7f, 0x3f, 0x9c, 0x68, 0x83, 0x75, 0x51, - 0xae, 0x00, 0x8c, 0x6a, 0x52, 0x34, 0xd7, 0x1b, 0x8c, 0x2b, 0x00, 0xc2, 0x47, 0x83, 0x95, 0xa4, - 0x68, 0xfc, 0x17, 0xf8, 0xd1, 0x60, 0x08, 0x7c, 0x34, 0x78, 0x35, 0x8a, 0x46, 0xbf, 0xc9, 0x8f, - 0x06, 0x87, 0xc8, 0xd7, 0x20, 0x6b, 0x0d, 0x4d, 0x13, 0xc7, 0x96, 0x74, 0xf2, 0xcf, 0x88, 0x4a, - 0xff, 0xfe, 0x80, 0x81, 0x39, 0x40, 0xbe, 0x0c, 0x69, 0xd4, 0x3f, 0x40, 0x9d, 0x28, 0xe4, 0x7f, - 0x3c, 0xe0, 0xf9, 0x04, 0x6b, 0xcb, 0x2f, 0x02, 0xd0, 0x97, 0x69, 0xf2, 0x95, 0x28, 0x02, 0xfb, - 0x9f, 0x0f, 0xd8, 0x2f, 0x14, 0x46, 0x90, 0x11, 0x01, 0xfd, 0xbd, 0xc3, 0xc9, 0x04, 0xef, 0x85, - 0x09, 0xc8, 0x0b, 0xf8, 0xf3, 0x30, 0x73, 0xcb, 0xb5, 0x2d, 0x4f, 0xeb, 0x45, 0xa1, 0xbf, 0xc7, - 0xd0, 0x5c, 0x1f, 0x3b, 0xac, 0x6f, 0x3b, 0xc8, 0xd3, 0x7a, 0x6e, 0x14, 0xf6, 0xbf, 0x18, 0xd6, - 0x07, 0x60, 0xb0, 0xae, 0xb9, 0x5e, 0x9c, 0x75, 0xff, 0x37, 0x07, 0x73, 0x00, 0x36, 0x1a, 0xff, - 0x7d, 0x1b, 0x1d, 0x45, 0x61, 0xbf, 0xcf, 0x8d, 0x66, 0xfa, 0xf2, 0xc7, 0x20, 0x87, 0xff, 0xa4, - 0xbf, 0xda, 0x89, 0x00, 0xff, 0x0f, 0x03, 0x8f, 0x10, 0xf8, 0xc9, 0xae, 0xd7, 0xf1, 0x8c, 0x68, - 0x67, 0xff, 0x2f, 0xdb, 0x69, 0xae, 0x2f, 0x57, 0x20, 0xef, 0x7a, 0x9d, 0xce, 0x90, 0x75, 0x34, - 0x11, 0xf0, 0x1f, 0x3c, 0xf0, 0x5f, 0x72, 0x7d, 0xcc, 0xe6, 0x85, 0xe9, 0x97, 0x75, 0xb0, 0x6d, - 0x6f, 0xdb, 0xf4, 0x9a, 0x0e, 0xbe, 0x97, 0x82, 0xb3, 0xc1, 0x33, 0xdd, 0x73, 0xec, 0xe1, 0x80, - 0xdd, 0xaf, 0xcd, 0x4f, 0x4c, 0x2c, 0x9f, 0xee, 0x86, 0xae, 0x6c, 0x01, 0x34, 0xd0, 0xdd, 0x86, - 0xbd, 0x8d, 0xc1, 0xd2, 0x12, 0x64, 0x88, 0xcd, 0xcf, 0x90, 0x0f, 0x4c, 0x49, 0x85, 0x8d, 0x7c, - 0xf9, 0x25, 0xf2, 0x23, 0x5a, 0x81, 0xc9, 0x2f, 0x49, 0x65, 0x10, 0x2a, 0xe4, 0x06, 0x3d, 0xbf, - 0xb1, 0xb8, 0x3e, 0x69, 0x64, 0x45, 0x11, 0x2a, 0x72, 0xe1, 0x97, 0xdf, 0x3a, 0x2f, 0x7c, 0xf6, - 0xad, 0xf3, 0xc2, 0x17, 0xdf, 0x3a, 0x2f, 0x94, 0x9f, 0x04, 0xa1, 0x82, 0xe9, 0x2a, 0x84, 0x81, - 0x3f, 0x86, 0x8e, 0xc6, 0x54, 0xff, 0x3e, 0x01, 0x85, 0xa6, 0xd9, 0x79, 0xc9, 0xf0, 0x0e, 0x4f, - 0xb6, 0xee, 0x05, 0xc8, 0x90, 0xe7, 0x3d, 0x43, 0x6e, 0x4d, 0x61, 0xe3, 0xf1, 0x29, 0xa6, 0x04, - 0x89, 0xd6, 0xc9, 0xbf, 0xcf, 0x28, 0x0c, 0x75, 0xec, 0xea, 0x38, 0xef, 0x06, 0xb9, 0x5e, 0x8d, - 0xcb, 0xbb, 0xc1, 0x78, 0x37, 0x96, 0x5b, 0x90, 0xd9, 0x0e, 0x3f, 0xe1, 0x38, 0xbf, 0x6e, 0xf0, - 0xdf, 0x7e, 0xd1, 0xd1, 0x71, 0x16, 0x2d, 0x5f, 0x65, 0x8c, 0x1b, 0xb1, 0x18, 0x47, 0xc8, 0x8d, - 0xcd, 0xb5, 0x6f, 0xdf, 0x5f, 0x39, 0xf3, 0x8f, 0xf7, 0x57, 0xce, 0xfc, 0xd3, 0xfd, 0x95, 0x33, - 0xdf, 0xbd, 0xbf, 0x22, 0x7c, 0xff, 0xfe, 0x8a, 0xf0, 0xff, 0xf7, 0x57, 0x84, 0x7b, 0xef, 0xac, - 0x08, 0x5f, 0x7e, 0x67, 0x45, 0xf8, 0xda, 0x3b, 0x2b, 0xc2, 0x37, 0xdf, 0x59, 0x11, 0x7e, 0x18, - 0x00, 0x00, 0xff, 0xff, 0xee, 0x64, 0xaf, 0x17, 0xcc, 0x30, 0x00, 0x00, + 0x75, 0xd6, 0xe2, 0x46, 0xe0, 0x00, 0x04, 0x97, 0x4b, 0x9a, 0x82, 0xe8, 0x98, 0x92, 0xe0, 0x8b, + 0x28, 0xbb, 0xa1, 0x62, 0xca, 0x92, 0x25, 0xa8, 0xb1, 0x0b, 0x82, 0x10, 0x03, 0x95, 0x24, 0x90, + 0x05, 0x19, 0x5f, 0x32, 0x9d, 0x9d, 0xe5, 0xe2, 0x07, 0xb8, 0xd2, 0x62, 0x77, 0xb3, 0xbb, 0x90, + 0x4c, 0x4d, 0x1f, 0xd4, 0x71, 0x6f, 0x99, 0x4e, 0xdb, 0xf4, 0x32, 0x93, 0xc4, 0x75, 0xdc, 0xb8, + 0x33, 0xad, 0xd3, 0xf4, 0x96, 0x34, 0x6d, 0x9a, 0xf6, 0xa9, 0x2f, 0x69, 0x33, 0x7d, 0xe8, 0x34, + 0x6f, 0x7d, 0xe8, 0x43, 0xe4, 0x7a, 0xa6, 0x37, 0xa7, 0x49, 0x5b, 0x3f, 0x64, 0x46, 0x2f, 0x9d, + 0xff, 0xb6, 0xd8, 0x05, 0x40, 0xee, 0x32, 0x33, 0xb6, 0x5f, 0x24, 0xee, 0xf9, 0xcf, 0xf7, 0xed, + 0xf9, 0xcf, 0x7f, 0xfe, 0x73, 0xce, 0xff, 0x2f, 0xe0, 0x07, 0x57, 0xe1, 0x4c, 0xcf, 0xb2, 0x7a, + 0x06, 0xba, 0x60, 0x3b, 0x96, 0x67, 0xed, 0x0d, 0xba, 0x17, 0x3a, 0xc8, 0xd5, 0x1c, 0xdd, 0xf6, + 0x2c, 0x67, 0x85, 0xc8, 0xa4, 0x19, 0xaa, 0xb1, 0xc2, 0x35, 0xca, 0x5b, 0x30, 0x7b, 0x5d, 0x37, + 0xd0, 0xba, 0xaf, 0xd8, 0x46, 0x9e, 0x74, 0x05, 0x52, 0x5d, 0xdd, 0x40, 0x25, 0xe1, 0x4c, 0x72, + 0x39, 0xbf, 0xfa, 0xd8, 0xca, 0x08, 0x68, 0x25, 0x8c, 0x68, 0x61, 0xb1, 0x4c, 0x10, 0xe5, 0x77, + 0x52, 0x30, 0x37, 0x61, 0x54, 0x92, 0x20, 0x65, 0xaa, 0x7d, 0xcc, 0x28, 0x2c, 0xe7, 0x64, 0xf2, + 0xb7, 0x54, 0x82, 0x29, 0x5b, 0xd5, 0x6e, 0xa9, 0x3d, 0x54, 0x4a, 0x10, 0x31, 0x7f, 0x94, 0x96, + 0x00, 0x3a, 0xc8, 0x46, 0x66, 0x07, 0x99, 0xda, 0x41, 0x29, 0x79, 0x26, 0xb9, 0x9c, 0x93, 0x03, + 0x12, 0xe9, 0x29, 0x98, 0xb5, 0x07, 0x7b, 0x86, 0xae, 0x29, 0x01, 0x35, 0x38, 0x93, 0x5c, 0x4e, + 0xcb, 0x22, 0x1d, 0x58, 0x1f, 0x2a, 0x9f, 0x83, 0x99, 0x3b, 0x48, 0xbd, 0x15, 0x54, 0xcd, 0x13, + 0xd5, 0x22, 0x16, 0x07, 0x14, 0x6b, 0x50, 0xe8, 0x23, 0xd7, 0x55, 0x7b, 0x48, 0xf1, 0x0e, 0x6c, + 0x54, 0x4a, 0x91, 0xd9, 0x9f, 0x19, 0x9b, 0xfd, 0xe8, 0xcc, 0xf3, 0x0c, 0xb5, 0x73, 0x60, 0x23, + 0xa9, 0x0a, 0x39, 0x64, 0x0e, 0xfa, 0x94, 0x21, 0x7d, 0x88, 0xff, 0xea, 0xe6, 0xa0, 0x3f, 0xca, + 0x92, 0xc5, 0x30, 0x46, 0x31, 0xe5, 0x22, 0xe7, 0xb6, 0xae, 0xa1, 0x52, 0x86, 0x10, 0x9c, 0x1b, + 0x23, 0x68, 0xd3, 0xf1, 0x51, 0x0e, 0x8e, 0x93, 0x6a, 0x90, 0x43, 0xaf, 0x78, 0xc8, 0x74, 0x75, + 0xcb, 0x2c, 0x4d, 0x11, 0x92, 0xc7, 0x27, 0xac, 0x22, 0x32, 0x3a, 0xa3, 0x14, 0x43, 0x9c, 0x74, + 0x19, 0xa6, 0x2c, 0xdb, 0xd3, 0x2d, 0xd3, 0x2d, 0x65, 0xcf, 0x08, 0xcb, 0xf9, 0xd5, 0x8f, 0x4c, + 0x0c, 0x84, 0x26, 0xd5, 0x91, 0xb9, 0xb2, 0xd4, 0x00, 0xd1, 0xb5, 0x06, 0x8e, 0x86, 0x14, 0xcd, + 0xea, 0x20, 0x45, 0x37, 0xbb, 0x56, 0x29, 0x47, 0x08, 0x4e, 0x8f, 0x4f, 0x84, 0x28, 0xd6, 0xac, + 0x0e, 0x6a, 0x98, 0x5d, 0x4b, 0x2e, 0xba, 0xa1, 0x67, 0x69, 0x01, 0x32, 0xee, 0x81, 0xe9, 0xa9, + 0xaf, 0x94, 0x0a, 0x24, 0x42, 0xd8, 0x53, 0xf9, 0xaf, 0x33, 0x30, 0x13, 0x27, 0xc4, 0xae, 0x41, + 0xba, 0x8b, 0x67, 0x59, 0x4a, 0x1c, 0xc7, 0x07, 0x14, 0x13, 0x76, 0x62, 0xe6, 0xc7, 0x74, 0x62, + 0x15, 0xf2, 0x26, 0x72, 0x3d, 0xd4, 0xa1, 0x11, 0x91, 0x8c, 0x19, 0x53, 0x40, 0x41, 0xe3, 0x21, + 0x95, 0xfa, 0xb1, 0x42, 0xea, 0x45, 0x98, 0xf1, 0x4d, 0x52, 0x1c, 0xd5, 0xec, 0xf1, 0xd8, 0xbc, + 0x10, 0x65, 0xc9, 0x4a, 0x9d, 0xe3, 0x64, 0x0c, 0x93, 0x8b, 0x28, 0xf4, 0x2c, 0xad, 0x03, 0x58, + 0x26, 0xb2, 0xba, 0x4a, 0x07, 0x69, 0x46, 0x29, 0x7b, 0x88, 0x97, 0x9a, 0x58, 0x65, 0xcc, 0x4b, + 0x16, 0x95, 0x6a, 0x86, 0x74, 0x75, 0x18, 0x6a, 0x53, 0x87, 0x44, 0xca, 0x16, 0xdd, 0x64, 0x63, + 0xd1, 0xb6, 0x0b, 0x45, 0x07, 0xe1, 0xb8, 0x47, 0x1d, 0x36, 0xb3, 0x1c, 0x31, 0x62, 0x25, 0x72, + 0x66, 0x32, 0x83, 0xd1, 0x89, 0x4d, 0x3b, 0xc1, 0x47, 0xe9, 0x51, 0xf0, 0x05, 0x0a, 0x09, 0x2b, + 0x20, 0x59, 0xa8, 0xc0, 0x85, 0xdb, 0x6a, 0x1f, 0x2d, 0xde, 0x85, 0x62, 0xd8, 0x3d, 0xd2, 0x3c, + 0xa4, 0x5d, 0x4f, 0x75, 0x3c, 0x12, 0x85, 0x69, 0x99, 0x3e, 0x48, 0x22, 0x24, 0x91, 0xd9, 0x21, + 0x59, 0x2e, 0x2d, 0xe3, 0x3f, 0xa5, 0x9f, 0x1a, 0x4e, 0x38, 0x49, 0x26, 0xfc, 0xc4, 0xf8, 0x8a, + 0x86, 0x98, 0x47, 0xe7, 0xbd, 0xf8, 0x2c, 0x4c, 0x87, 0x26, 0x10, 0xf7, 0xd5, 0xe5, 0x9f, 0x85, + 0x87, 0x26, 0x52, 0x4b, 0x2f, 0xc2, 0xfc, 0xc0, 0xd4, 0x4d, 0x0f, 0x39, 0xb6, 0x83, 0x70, 0xc4, + 0xd2, 0x57, 0x95, 0xfe, 0x6d, 0xea, 0x90, 0x98, 0xdb, 0x0d, 0x6a, 0x53, 0x16, 0x79, 0x6e, 0x30, + 0x2e, 0x7c, 0x32, 0x97, 0xfd, 0xf7, 0x29, 0xf1, 0xde, 0xbd, 0x7b, 0xf7, 0x12, 0xe5, 0x2f, 0x64, + 0x60, 0x7e, 0xd2, 0x9e, 0x99, 0xb8, 0x7d, 0x17, 0x20, 0x63, 0x0e, 0xfa, 0x7b, 0xc8, 0x21, 0x4e, + 0x4a, 0xcb, 0xec, 0x49, 0xaa, 0x42, 0xda, 0x50, 0xf7, 0x90, 0x51, 0x4a, 0x9d, 0x11, 0x96, 0x8b, + 0xab, 0x4f, 0xc5, 0xda, 0x95, 0x2b, 0x9b, 0x18, 0x22, 0x53, 0xa4, 0xf4, 0x1c, 0xa4, 0x58, 0x8a, + 0xc6, 0x0c, 0x4f, 0xc6, 0x63, 0xc0, 0x7b, 0x49, 0x26, 0x38, 0xe9, 0x61, 0xc8, 0xe1, 0xff, 0x69, + 0x6c, 0x64, 0x88, 0xcd, 0x59, 0x2c, 0xc0, 0x71, 0x21, 0x2d, 0x42, 0x96, 0x6c, 0x93, 0x0e, 0xe2, + 0xa5, 0xcd, 0x7f, 0xc6, 0x81, 0xd5, 0x41, 0x5d, 0x75, 0x60, 0x78, 0xca, 0x6d, 0xd5, 0x18, 0x20, + 0x12, 0xf0, 0x39, 0xb9, 0xc0, 0x84, 0x9f, 0xc2, 0x32, 0xe9, 0x34, 0xe4, 0xe9, 0xae, 0xd2, 0xcd, + 0x0e, 0x7a, 0x85, 0x64, 0xcf, 0xb4, 0x4c, 0x37, 0x5a, 0x03, 0x4b, 0xf0, 0xeb, 0x6f, 0xba, 0x96, + 0xc9, 0x43, 0x93, 0xbc, 0x02, 0x0b, 0xc8, 0xeb, 0x9f, 0x1d, 0x4d, 0xdc, 0x8f, 0x4c, 0x9e, 0xde, + 0x68, 0x4c, 0x95, 0xbf, 0x99, 0x80, 0x14, 0xc9, 0x17, 0x33, 0x90, 0xdf, 0x79, 0xa9, 0x55, 0x57, + 0xd6, 0x9b, 0xbb, 0x6b, 0x9b, 0x75, 0x51, 0x90, 0x8a, 0x00, 0x44, 0x70, 0x7d, 0xb3, 0x59, 0xdd, + 0x11, 0x13, 0xfe, 0x73, 0x63, 0x7b, 0xe7, 0xf2, 0x33, 0x62, 0xd2, 0x07, 0xec, 0x52, 0x41, 0x2a, + 0xa8, 0x70, 0x71, 0x55, 0x4c, 0x4b, 0x22, 0x14, 0x28, 0x41, 0xe3, 0xc5, 0xfa, 0xfa, 0xe5, 0x67, + 0xc4, 0x4c, 0x58, 0x72, 0x71, 0x55, 0x9c, 0x92, 0xa6, 0x21, 0x47, 0x24, 0x6b, 0xcd, 0xe6, 0xa6, + 0x98, 0xf5, 0x39, 0xdb, 0x3b, 0x72, 0x63, 0x7b, 0x43, 0xcc, 0xf9, 0x9c, 0x1b, 0x72, 0x73, 0xb7, + 0x25, 0x82, 0xcf, 0xb0, 0x55, 0x6f, 0xb7, 0xab, 0x1b, 0x75, 0x31, 0xef, 0x6b, 0xac, 0xbd, 0xb4, + 0x53, 0x6f, 0x8b, 0x85, 0x90, 0x59, 0x17, 0x57, 0xc5, 0x69, 0xff, 0x15, 0xf5, 0xed, 0xdd, 0x2d, + 0xb1, 0x28, 0xcd, 0xc2, 0x34, 0x7d, 0x05, 0x37, 0x62, 0x66, 0x44, 0x74, 0xf9, 0x19, 0x51, 0x1c, + 0x1a, 0x42, 0x59, 0x66, 0x43, 0x82, 0xcb, 0xcf, 0x88, 0x52, 0xb9, 0x06, 0x69, 0x12, 0x5d, 0x92, + 0x04, 0xc5, 0xcd, 0xea, 0x5a, 0x7d, 0x53, 0x69, 0xb6, 0x76, 0x1a, 0xcd, 0xed, 0xea, 0xa6, 0x28, + 0x0c, 0x65, 0x72, 0xfd, 0x93, 0xbb, 0x0d, 0xb9, 0xbe, 0x2e, 0x26, 0x82, 0xb2, 0x56, 0xbd, 0xba, + 0x53, 0x5f, 0x17, 0x93, 0x65, 0x0d, 0xe6, 0x27, 0xe5, 0xc9, 0x89, 0x3b, 0x23, 0xb0, 0xc4, 0x89, + 0x43, 0x96, 0x98, 0x70, 0x8d, 0x2d, 0xf1, 0xbf, 0x26, 0x60, 0x6e, 0x42, 0xad, 0x98, 0xf8, 0x92, + 0xe7, 0x21, 0x4d, 0x43, 0x94, 0x56, 0xcf, 0xf3, 0x13, 0x8b, 0x0e, 0x09, 0xd8, 0xb1, 0x0a, 0x4a, + 0x70, 0xc1, 0x0e, 0x22, 0x79, 0x48, 0x07, 0x81, 0x29, 0xc6, 0x72, 0xfa, 0xcf, 0x8c, 0xe5, 0x74, + 0x5a, 0xf6, 0x2e, 0xc7, 0x29, 0x7b, 0x44, 0x76, 0xbc, 0xdc, 0x9e, 0x9e, 0x90, 0xdb, 0xaf, 0xc1, + 0xec, 0x18, 0x51, 0xec, 0x1c, 0xfb, 0xaa, 0x00, 0xa5, 0xc3, 0x9c, 0x13, 0x91, 0xe9, 0x12, 0xa1, + 0x4c, 0x77, 0x6d, 0xd4, 0x83, 0x67, 0x0f, 0x5f, 0x84, 0xb1, 0xb5, 0x7e, 0x4b, 0x80, 0x85, 0xc9, + 0x9d, 0xe2, 0x44, 0x1b, 0x9e, 0x83, 0x4c, 0x1f, 0x79, 0xfb, 0x16, 0xef, 0x96, 0x9e, 0x98, 0x50, + 0x83, 0xf1, 0xf0, 0xe8, 0x62, 0x33, 0x54, 0xb0, 0x88, 0x27, 0x0f, 0x6b, 0xf7, 0xa8, 0x35, 0x63, + 0x96, 0x7e, 0x36, 0x01, 0x0f, 0x4d, 0x24, 0x9f, 0x68, 0xe8, 0x23, 0x00, 0xba, 0x69, 0x0f, 0x3c, + 0xda, 0x11, 0xd1, 0x04, 0x9b, 0x23, 0x12, 0x92, 0xbc, 0x70, 0xf2, 0x1c, 0x78, 0xfe, 0x78, 0x92, + 0x8c, 0x03, 0x15, 0x11, 0x85, 0x2b, 0x43, 0x43, 0x53, 0xc4, 0xd0, 0xa5, 0x43, 0x66, 0x3a, 0x16, + 0x98, 0x1f, 0x03, 0x51, 0x33, 0x74, 0x64, 0x7a, 0x8a, 0xeb, 0x39, 0x48, 0xed, 0xeb, 0x66, 0x8f, + 0x54, 0x90, 0x6c, 0x25, 0xdd, 0x55, 0x0d, 0x17, 0xc9, 0x33, 0x74, 0xb8, 0xcd, 0x47, 0x31, 0x82, + 0x04, 0x90, 0x13, 0x40, 0x64, 0x42, 0x08, 0x3a, 0xec, 0x23, 0xca, 0xdf, 0xc8, 0x42, 0x3e, 0xd0, + 0x57, 0x4b, 0x67, 0xa1, 0x70, 0x53, 0xbd, 0xad, 0x2a, 0xfc, 0xac, 0x44, 0x3d, 0x91, 0xc7, 0xb2, + 0x16, 0x3b, 0x2f, 0x7d, 0x0c, 0xe6, 0x89, 0x8a, 0x35, 0xf0, 0x90, 0xa3, 0x68, 0x86, 0xea, 0xba, + 0xc4, 0x69, 0x59, 0xa2, 0x2a, 0xe1, 0xb1, 0x26, 0x1e, 0xaa, 0xf1, 0x11, 0xe9, 0x12, 0xcc, 0x11, + 0x44, 0x7f, 0x60, 0x78, 0xba, 0x6d, 0x20, 0x05, 0x9f, 0xde, 0x5c, 0x52, 0x49, 0x7c, 0xcb, 0x66, + 0xb1, 0xc6, 0x16, 0x53, 0xc0, 0x16, 0xb9, 0xd2, 0x3a, 0x3c, 0x42, 0x60, 0x3d, 0x64, 0x22, 0x47, + 0xf5, 0x90, 0x82, 0x3e, 0x33, 0x50, 0x0d, 0x57, 0x51, 0xcd, 0x8e, 0xb2, 0xaf, 0xba, 0xfb, 0xa5, + 0x79, 0x4c, 0xb0, 0x96, 0x28, 0x09, 0xf2, 0x29, 0xac, 0xb8, 0xc1, 0xf4, 0xea, 0x44, 0xad, 0x6a, + 0x76, 0x3e, 0xa1, 0xba, 0xfb, 0x52, 0x05, 0x16, 0x08, 0x8b, 0xeb, 0x39, 0xba, 0xd9, 0x53, 0xb4, + 0x7d, 0xa4, 0xdd, 0x52, 0x06, 0x5e, 0xf7, 0x4a, 0xe9, 0xe1, 0xe0, 0xfb, 0x89, 0x85, 0x6d, 0xa2, + 0x53, 0xc3, 0x2a, 0xbb, 0x5e, 0xf7, 0x8a, 0xd4, 0x86, 0x02, 0x5e, 0x8c, 0xbe, 0x7e, 0x17, 0x29, + 0x5d, 0xcb, 0x21, 0xa5, 0xb1, 0x38, 0x21, 0x35, 0x05, 0x3c, 0xb8, 0xd2, 0x64, 0x80, 0x2d, 0xab, + 0x83, 0x2a, 0xe9, 0x76, 0xab, 0x5e, 0x5f, 0x97, 0xf3, 0x9c, 0xe5, 0xba, 0xe5, 0xe0, 0x80, 0xea, + 0x59, 0xbe, 0x83, 0xf3, 0x34, 0xa0, 0x7a, 0x16, 0x77, 0xef, 0x25, 0x98, 0xd3, 0x34, 0x3a, 0x67, + 0x5d, 0x53, 0xd8, 0x19, 0xcb, 0x2d, 0x89, 0x21, 0x67, 0x69, 0xda, 0x06, 0x55, 0x60, 0x31, 0xee, + 0x4a, 0x57, 0xe1, 0xa1, 0xa1, 0xb3, 0x82, 0xc0, 0xd9, 0xb1, 0x59, 0x8e, 0x42, 0x2f, 0xc1, 0x9c, + 0x7d, 0x30, 0x0e, 0x94, 0x42, 0x6f, 0xb4, 0x0f, 0x46, 0x61, 0xcf, 0xc2, 0xbc, 0xbd, 0x6f, 0x8f, + 0xe3, 0x9e, 0x0c, 0xe2, 0x24, 0x7b, 0xdf, 0x1e, 0x05, 0x3e, 0x4e, 0x0e, 0xdc, 0x0e, 0xd2, 0x54, + 0x0f, 0x75, 0x4a, 0x27, 0x83, 0xea, 0x81, 0x01, 0xe9, 0x02, 0x88, 0x9a, 0xa6, 0x20, 0x53, 0xdd, + 0x33, 0x90, 0xa2, 0x3a, 0xc8, 0x54, 0xdd, 0xd2, 0xe9, 0xa0, 0x72, 0x51, 0xd3, 0xea, 0x64, 0xb4, + 0x4a, 0x06, 0xa5, 0x27, 0x61, 0xd6, 0xda, 0xbb, 0xa9, 0xd1, 0x90, 0x54, 0x6c, 0x07, 0x75, 0xf5, + 0x57, 0x4a, 0x8f, 0x11, 0xff, 0xce, 0xe0, 0x01, 0x12, 0x90, 0x2d, 0x22, 0x96, 0xce, 0x83, 0xa8, + 0xb9, 0xfb, 0xaa, 0x63, 0x93, 0x9c, 0xec, 0xda, 0xaa, 0x86, 0x4a, 0x8f, 0x53, 0x55, 0x2a, 0xdf, + 0xe6, 0x62, 0xbc, 0x25, 0xdc, 0x3b, 0x7a, 0xd7, 0xe3, 0x8c, 0xe7, 0xe8, 0x96, 0x20, 0x32, 0xc6, + 0xb6, 0x0c, 0x22, 0x76, 0x45, 0xe8, 0xc5, 0xcb, 0x44, 0xad, 0x68, 0xef, 0xdb, 0xc1, 0xf7, 0x3e, + 0x0a, 0xd3, 0x58, 0x73, 0xf8, 0xd2, 0xf3, 0xb4, 0x21, 0xb3, 0xf7, 0x03, 0x6f, 0x7c, 0xdf, 0x7a, + 0xe3, 0x72, 0x05, 0x0a, 0xc1, 0xf8, 0x94, 0x72, 0x40, 0x23, 0x54, 0x14, 0x70, 0xb3, 0x52, 0x6b, + 0xae, 0xe3, 0x36, 0xe3, 0xe5, 0xba, 0x98, 0xc0, 0xed, 0xce, 0x66, 0x63, 0xa7, 0xae, 0xc8, 0xbb, + 0xdb, 0x3b, 0x8d, 0xad, 0xba, 0x98, 0x0c, 0xf6, 0xd5, 0xdf, 0x4e, 0x40, 0x31, 0x7c, 0x44, 0x92, + 0x7e, 0x12, 0x4e, 0xf2, 0xfb, 0x0c, 0x17, 0x79, 0xca, 0x1d, 0xdd, 0x21, 0x5b, 0xa6, 0xaf, 0xd2, + 0xf2, 0xe5, 0x2f, 0xda, 0x3c, 0xd3, 0x6a, 0x23, 0xef, 0x05, 0xdd, 0xc1, 0x1b, 0xa2, 0xaf, 0x7a, + 0xd2, 0x26, 0x9c, 0x36, 0x2d, 0xc5, 0xf5, 0x54, 0xb3, 0xa3, 0x3a, 0x1d, 0x65, 0x78, 0x93, 0xa4, + 0xa8, 0x9a, 0x86, 0x5c, 0xd7, 0xa2, 0xa5, 0xca, 0x67, 0xf9, 0x88, 0x69, 0xb5, 0x99, 0xf2, 0x30, + 0x87, 0x57, 0x99, 0xea, 0x48, 0x80, 0x25, 0x0f, 0x0b, 0xb0, 0x87, 0x21, 0xd7, 0x57, 0x6d, 0x05, + 0x99, 0x9e, 0x73, 0x40, 0x1a, 0xe3, 0xac, 0x9c, 0xed, 0xab, 0x76, 0x1d, 0x3f, 0x7f, 0x30, 0xe7, + 0x93, 0x7f, 0x49, 0x42, 0x21, 0xd8, 0x1c, 0xe3, 0xb3, 0x86, 0x46, 0xea, 0x88, 0x40, 0x32, 0xcd, + 0xa3, 0x47, 0xb6, 0xd2, 0x2b, 0x35, 0x5c, 0x60, 0x2a, 0x19, 0xda, 0xb2, 0xca, 0x14, 0x89, 0x8b, + 0x3b, 0xce, 0x2d, 0x88, 0xb6, 0x08, 0x59, 0x99, 0x3d, 0x49, 0x1b, 0x90, 0xb9, 0xe9, 0x12, 0xee, + 0x0c, 0xe1, 0x7e, 0xec, 0x68, 0xee, 0x1b, 0x6d, 0x42, 0x9e, 0xbb, 0xd1, 0x56, 0xb6, 0x9b, 0xf2, + 0x56, 0x75, 0x53, 0x66, 0x70, 0xe9, 0x14, 0xa4, 0x0c, 0xf5, 0xee, 0x41, 0xb8, 0x14, 0x11, 0x51, + 0x5c, 0xc7, 0x9f, 0x82, 0xd4, 0x1d, 0xa4, 0xde, 0x0a, 0x17, 0x00, 0x22, 0x7a, 0x1f, 0x43, 0xff, + 0x02, 0xa4, 0x89, 0xbf, 0x24, 0x00, 0xe6, 0x31, 0xf1, 0x84, 0x94, 0x85, 0x54, 0xad, 0x29, 0xe3, + 0xf0, 0x17, 0xa1, 0x40, 0xa5, 0x4a, 0xab, 0x51, 0xaf, 0xd5, 0xc5, 0x44, 0xf9, 0x12, 0x64, 0xa8, + 0x13, 0xf0, 0xd6, 0xf0, 0xdd, 0x20, 0x9e, 0x60, 0x8f, 0x8c, 0x43, 0xe0, 0xa3, 0xbb, 0x5b, 0x6b, + 0x75, 0x59, 0x4c, 0x04, 0x97, 0xd7, 0x85, 0x42, 0xb0, 0x2f, 0xfe, 0x60, 0x62, 0xea, 0x6f, 0x04, + 0xc8, 0x07, 0xfa, 0x5c, 0xdc, 0xa0, 0xa8, 0x86, 0x61, 0xdd, 0x51, 0x54, 0x43, 0x57, 0x5d, 0x16, + 0x14, 0x40, 0x44, 0x55, 0x2c, 0x89, 0xbb, 0x68, 0x1f, 0x88, 0xf1, 0x6f, 0x08, 0x20, 0x8e, 0xb6, + 0x98, 0x23, 0x06, 0x0a, 0x1f, 0xaa, 0x81, 0xaf, 0x0b, 0x50, 0x0c, 0xf7, 0x95, 0x23, 0xe6, 0x9d, + 0xfd, 0x50, 0xcd, 0xfb, 0x5e, 0x02, 0xa6, 0x43, 0xdd, 0x64, 0x5c, 0xeb, 0x3e, 0x03, 0xb3, 0x7a, + 0x07, 0xf5, 0x6d, 0xcb, 0x43, 0xa6, 0x76, 0xa0, 0x18, 0xe8, 0x36, 0x32, 0x4a, 0x65, 0x92, 0x28, + 0x2e, 0x1c, 0xdd, 0xaf, 0xae, 0x34, 0x86, 0xb8, 0x4d, 0x0c, 0xab, 0xcc, 0x35, 0xd6, 0xeb, 0x5b, + 0xad, 0xe6, 0x4e, 0x7d, 0xbb, 0xf6, 0x92, 0xb2, 0xbb, 0xfd, 0xd3, 0xdb, 0xcd, 0x17, 0xb6, 0x65, + 0x51, 0x1f, 0x51, 0x7b, 0x1f, 0xb7, 0x7a, 0x0b, 0xc4, 0x51, 0xa3, 0xa4, 0x93, 0x30, 0xc9, 0x2c, + 0xf1, 0x84, 0x34, 0x07, 0x33, 0xdb, 0x4d, 0xa5, 0xdd, 0x58, 0xaf, 0x2b, 0xf5, 0xeb, 0xd7, 0xeb, + 0xb5, 0x9d, 0x36, 0xbd, 0x81, 0xf0, 0xb5, 0x77, 0xc2, 0x9b, 0xfa, 0xb5, 0x24, 0xcc, 0x4d, 0xb0, + 0x44, 0xaa, 0xb2, 0xb3, 0x03, 0x3d, 0xce, 0x7c, 0x34, 0x8e, 0xf5, 0x2b, 0xb8, 0xe4, 0xb7, 0x54, + 0xc7, 0x63, 0x47, 0x8d, 0xf3, 0x80, 0xbd, 0x64, 0x7a, 0x7a, 0x57, 0x47, 0x0e, 0xbb, 0xb0, 0xa1, + 0x07, 0x8a, 0x99, 0xa1, 0x9c, 0xde, 0xd9, 0xfc, 0x04, 0x48, 0xb6, 0xe5, 0xea, 0x9e, 0x7e, 0x1b, + 0x29, 0xba, 0xc9, 0x6f, 0x77, 0xf0, 0x01, 0x23, 0x25, 0x8b, 0x7c, 0xa4, 0x61, 0x7a, 0xbe, 0xb6, + 0x89, 0x7a, 0xea, 0x88, 0x36, 0x4e, 0xe0, 0x49, 0x59, 0xe4, 0x23, 0xbe, 0xf6, 0x59, 0x28, 0x74, + 0xac, 0x01, 0xee, 0xba, 0xa8, 0x1e, 0xae, 0x17, 0x82, 0x9c, 0xa7, 0x32, 0x5f, 0x85, 0xf5, 0xd3, + 0xc3, 0x6b, 0xa5, 0x82, 0x9c, 0xa7, 0x32, 0xaa, 0x72, 0x0e, 0x66, 0xd4, 0x5e, 0xcf, 0xc1, 0xe4, + 0x9c, 0x88, 0x9e, 0x10, 0x8a, 0xbe, 0x98, 0x28, 0x2e, 0xde, 0x80, 0x2c, 0xf7, 0x03, 0x2e, 0xc9, + 0xd8, 0x13, 0x8a, 0x4d, 0x8f, 0xbd, 0x89, 0xe5, 0x9c, 0x9c, 0x35, 0xf9, 0xe0, 0x59, 0x28, 0xe8, + 0xae, 0x32, 0xbc, 0x25, 0x4f, 0x9c, 0x49, 0x2c, 0x67, 0xe5, 0xbc, 0xee, 0xfa, 0x37, 0x8c, 0xe5, + 0xb7, 0x12, 0x50, 0x0c, 0xdf, 0xf2, 0x4b, 0xeb, 0x90, 0x35, 0x2c, 0x4d, 0x25, 0xa1, 0x45, 0x3f, + 0x31, 0x2d, 0x47, 0x7c, 0x18, 0x58, 0xd9, 0x64, 0xfa, 0xb2, 0x8f, 0x5c, 0xfc, 0x47, 0x01, 0xb2, + 0x5c, 0x2c, 0x2d, 0x40, 0xca, 0x56, 0xbd, 0x7d, 0x42, 0x97, 0x5e, 0x4b, 0x88, 0x82, 0x4c, 0x9e, + 0xb1, 0xdc, 0xb5, 0x55, 0x93, 0x84, 0x00, 0x93, 0xe3, 0x67, 0xbc, 0xae, 0x06, 0x52, 0x3b, 0xe4, + 0xf8, 0x61, 0xf5, 0xfb, 0xc8, 0xf4, 0x5c, 0xbe, 0xae, 0x4c, 0x5e, 0x63, 0x62, 0xe9, 0x29, 0x98, + 0xf5, 0x1c, 0x55, 0x37, 0x42, 0xba, 0x29, 0xa2, 0x2b, 0xf2, 0x01, 0x5f, 0xb9, 0x02, 0xa7, 0x38, + 0x6f, 0x07, 0x79, 0xaa, 0xb6, 0x8f, 0x3a, 0x43, 0x50, 0x86, 0x5c, 0x33, 0x9c, 0x64, 0x0a, 0xeb, + 0x6c, 0x9c, 0x63, 0xcb, 0xdf, 0x15, 0x60, 0x96, 0x1f, 0x98, 0x3a, 0xbe, 0xb3, 0xb6, 0x00, 0x54, + 0xd3, 0xb4, 0xbc, 0xa0, 0xbb, 0xc6, 0x43, 0x79, 0x0c, 0xb7, 0x52, 0xf5, 0x41, 0x72, 0x80, 0x60, + 0xb1, 0x0f, 0x30, 0x1c, 0x39, 0xd4, 0x6d, 0xa7, 0x21, 0xcf, 0x3e, 0xe1, 0x90, 0xef, 0x80, 0xf4, + 0x88, 0x0d, 0x54, 0x84, 0x4f, 0x56, 0xd2, 0x3c, 0xa4, 0xf7, 0x50, 0x4f, 0x37, 0xd9, 0xc5, 0x2c, + 0x7d, 0xe0, 0x17, 0x21, 0x29, 0xff, 0x22, 0x64, 0xed, 0xd3, 0x30, 0xa7, 0x59, 0xfd, 0x51, 0x73, + 0xd7, 0xc4, 0x91, 0x63, 0xbe, 0xfb, 0x09, 0xe1, 0x65, 0x18, 0xb6, 0x98, 0x3f, 0x12, 0x84, 0xdf, + 0x4b, 0x24, 0x37, 0x5a, 0x6b, 0x5f, 0x4d, 0x2c, 0x6e, 0x50, 0x68, 0x8b, 0xcf, 0x54, 0x46, 0x5d, + 0x03, 0x69, 0xd8, 0x7a, 0xf8, 0xfc, 0x39, 0xf8, 0x68, 0x4f, 0xf7, 0xf6, 0x07, 0x7b, 0x2b, 0x9a, + 0xd5, 0xbf, 0xd0, 0xb3, 0x7a, 0xd6, 0xf0, 0xd3, 0x27, 0x7e, 0x22, 0x0f, 0xe4, 0x2f, 0xf6, 0xf9, + 0x33, 0xe7, 0x4b, 0x17, 0x23, 0xbf, 0x95, 0x56, 0xb6, 0x61, 0x8e, 0x29, 0x2b, 0xe4, 0xfb, 0x0b, + 0x3d, 0x45, 0x48, 0x47, 0xde, 0x61, 0x95, 0xbe, 0xfe, 0x0e, 0x29, 0xd7, 0xf2, 0x2c, 0x83, 0xe2, + 0x31, 0x7a, 0xd0, 0xa8, 0xc8, 0xf0, 0x50, 0x88, 0x8f, 0x6e, 0x4d, 0xe4, 0x44, 0x30, 0x7e, 0x9b, + 0x31, 0xce, 0x05, 0x18, 0xdb, 0x0c, 0x5a, 0xa9, 0xc1, 0xf4, 0x71, 0xb8, 0xfe, 0x8e, 0x71, 0x15, + 0x50, 0x90, 0x64, 0x03, 0x66, 0x08, 0x89, 0x36, 0x70, 0x3d, 0xab, 0x4f, 0xf2, 0xde, 0xd1, 0x34, + 0x7f, 0xff, 0x0e, 0xdd, 0x2b, 0x45, 0x0c, 0xab, 0xf9, 0xa8, 0x4a, 0x05, 0xc8, 0x27, 0xa7, 0x0e, + 0xd2, 0x8c, 0x08, 0x86, 0xef, 0x30, 0x43, 0x7c, 0xfd, 0xca, 0xa7, 0x60, 0x1e, 0xff, 0x4d, 0xd2, + 0x52, 0xd0, 0x92, 0xe8, 0x0b, 0xaf, 0xd2, 0x77, 0x5f, 0xa5, 0xdb, 0x71, 0xce, 0x27, 0x08, 0xd8, + 0x14, 0x58, 0xc5, 0x1e, 0xf2, 0x3c, 0xe4, 0xb8, 0x8a, 0x6a, 0x4c, 0x32, 0x2f, 0x70, 0x63, 0x50, + 0xfa, 0xe2, 0xbb, 0xe1, 0x55, 0xdc, 0xa0, 0xc8, 0xaa, 0x61, 0x54, 0x76, 0xe1, 0xe4, 0x84, 0xa8, + 0x88, 0xc1, 0xf9, 0x1a, 0xe3, 0x9c, 0x1f, 0x8b, 0x0c, 0x4c, 0xdb, 0x02, 0x2e, 0xf7, 0xd7, 0x32, + 0x06, 0xe7, 0xef, 0x30, 0x4e, 0x89, 0x61, 0xf9, 0x92, 0x62, 0xc6, 0x1b, 0x30, 0x7b, 0x1b, 0x39, + 0x7b, 0x96, 0xcb, 0x6e, 0x69, 0x62, 0xd0, 0xbd, 0xce, 0xe8, 0x66, 0x18, 0x90, 0x5c, 0xdb, 0x60, + 0xae, 0xab, 0x90, 0xed, 0xaa, 0x1a, 0x8a, 0x41, 0xf1, 0x25, 0x46, 0x31, 0x85, 0xf5, 0x31, 0xb4, + 0x0a, 0x85, 0x9e, 0xc5, 0x2a, 0x53, 0x34, 0xfc, 0x0d, 0x06, 0xcf, 0x73, 0x0c, 0xa3, 0xb0, 0x2d, + 0x7b, 0x60, 0xe0, 0xb2, 0x15, 0x4d, 0xf1, 0xbb, 0x9c, 0x82, 0x63, 0x18, 0xc5, 0x31, 0xdc, 0xfa, + 0x65, 0x4e, 0xe1, 0x06, 0xfc, 0xf9, 0x3c, 0xe4, 0x2d, 0xd3, 0x38, 0xb0, 0xcc, 0x38, 0x46, 0xbc, + 0xc9, 0x18, 0x80, 0x41, 0x30, 0xc1, 0x35, 0xc8, 0xc5, 0x5d, 0x88, 0xdf, 0x7f, 0x97, 0x6f, 0x0f, + 0xbe, 0x02, 0x1b, 0x30, 0xc3, 0x13, 0x94, 0x6e, 0x99, 0x31, 0x28, 0xfe, 0x80, 0x51, 0x14, 0x03, + 0x30, 0x36, 0x0d, 0x0f, 0xb9, 0x5e, 0x0f, 0xc5, 0x21, 0x79, 0x8b, 0x4f, 0x83, 0x41, 0x98, 0x2b, + 0xf7, 0x90, 0xa9, 0xed, 0xc7, 0x63, 0xf8, 0x0a, 0x77, 0x25, 0xc7, 0x60, 0x8a, 0x1a, 0x4c, 0xf7, + 0x55, 0xc7, 0xdd, 0x57, 0x8d, 0x58, 0xcb, 0xf1, 0x87, 0x8c, 0xa3, 0xe0, 0x83, 0x98, 0x47, 0x06, + 0xe6, 0x71, 0x68, 0xbe, 0xca, 0x3d, 0x12, 0x80, 0xb1, 0xad, 0xe7, 0x7a, 0xe4, 0x4a, 0xeb, 0x38, + 0x6c, 0x7f, 0xc4, 0xb7, 0x1e, 0xc5, 0x6e, 0x05, 0x19, 0xaf, 0x41, 0xce, 0xd5, 0xef, 0xc6, 0xa2, + 0xf9, 0x63, 0xbe, 0xd2, 0x04, 0x80, 0xc1, 0x2f, 0xc1, 0xa9, 0x89, 0x65, 0x22, 0x06, 0xd9, 0x9f, + 0x30, 0xb2, 0x85, 0x09, 0xa5, 0x82, 0xa5, 0x84, 0xe3, 0x52, 0xfe, 0x29, 0x4f, 0x09, 0x68, 0x84, + 0xab, 0x85, 0xcf, 0x0a, 0xae, 0xda, 0x3d, 0x9e, 0xd7, 0xfe, 0x8c, 0x7b, 0x8d, 0x62, 0x43, 0x5e, + 0xdb, 0x81, 0x05, 0xc6, 0x78, 0xbc, 0x75, 0xfd, 0x1a, 0x4f, 0xac, 0x14, 0xbd, 0x1b, 0x5e, 0xdd, + 0x4f, 0xc3, 0xa2, 0xef, 0x4e, 0xde, 0x94, 0xba, 0x4a, 0x5f, 0xb5, 0x63, 0x30, 0x7f, 0x9d, 0x31, + 0xf3, 0x8c, 0xef, 0x77, 0xb5, 0xee, 0x96, 0x6a, 0x63, 0xf2, 0x17, 0xa1, 0xc4, 0xc9, 0x07, 0xa6, + 0x83, 0x34, 0xab, 0x67, 0xea, 0x77, 0x51, 0x27, 0x06, 0xf5, 0x9f, 0x8f, 0x2c, 0xd5, 0x6e, 0x00, + 0x8e, 0x99, 0x1b, 0x20, 0xfa, 0xbd, 0x8a, 0xa2, 0xf7, 0x6d, 0xcb, 0xf1, 0x22, 0x18, 0xbf, 0xc1, + 0x57, 0xca, 0xc7, 0x35, 0x08, 0xac, 0x52, 0x87, 0x22, 0x79, 0x8c, 0x1b, 0x92, 0x7f, 0xc1, 0x88, + 0xa6, 0x87, 0x28, 0x96, 0x38, 0x34, 0xab, 0x6f, 0xab, 0x4e, 0x9c, 0xfc, 0xf7, 0x97, 0x3c, 0x71, + 0x30, 0x08, 0x4b, 0x1c, 0xde, 0x81, 0x8d, 0x70, 0xb5, 0x8f, 0xc1, 0xf0, 0x4d, 0x9e, 0x38, 0x38, + 0x86, 0x51, 0xf0, 0x86, 0x21, 0x06, 0xc5, 0x5f, 0x71, 0x0a, 0x8e, 0xc1, 0x14, 0x9f, 0x1c, 0x16, + 0x5a, 0x07, 0xf5, 0x74, 0xd7, 0x73, 0x68, 0x2b, 0x7c, 0x34, 0xd5, 0xb7, 0xde, 0x0d, 0x37, 0x61, + 0x72, 0x00, 0x5a, 0xb9, 0x01, 0x33, 0x23, 0x2d, 0x86, 0x14, 0xf5, 0xfb, 0x95, 0xd2, 0xcf, 0xbd, + 0xc7, 0x92, 0x51, 0xb8, 0xc3, 0xa8, 0x6c, 0xe2, 0x75, 0x0f, 0xf7, 0x01, 0xd1, 0x64, 0xaf, 0xbe, + 0xe7, 0x2f, 0x7d, 0xa8, 0x0d, 0xa8, 0x5c, 0x87, 0xe9, 0x50, 0x0f, 0x10, 0x4d, 0xf5, 0xf3, 0x8c, + 0xaa, 0x10, 0x6c, 0x01, 0x2a, 0x97, 0x20, 0x85, 0xeb, 0x79, 0x34, 0xfc, 0x17, 0x18, 0x9c, 0xa8, + 0x57, 0x3e, 0x0e, 0x59, 0x5e, 0xc7, 0xa3, 0xa1, 0xbf, 0xc8, 0xa0, 0x3e, 0x04, 0xc3, 0x79, 0x0d, + 0x8f, 0x86, 0xff, 0x12, 0x87, 0x73, 0x08, 0x86, 0xc7, 0x77, 0xe1, 0xdf, 0xfe, 0x4a, 0x8a, 0xe5, + 0x61, 0xee, 0xbb, 0x6b, 0x30, 0xc5, 0x8a, 0x77, 0x34, 0xfa, 0xb3, 0xec, 0xe5, 0x1c, 0x51, 0x79, + 0x16, 0xd2, 0x31, 0x1d, 0xfe, 0xab, 0x0c, 0x4a, 0xf5, 0x2b, 0x35, 0xc8, 0x07, 0x0a, 0x76, 0x34, + 0xfc, 0xd7, 0x18, 0x3c, 0x88, 0xc2, 0xa6, 0xb3, 0x82, 0x1d, 0x4d, 0xf0, 0xeb, 0xdc, 0x74, 0x86, + 0xc0, 0x6e, 0xe3, 0xb5, 0x3a, 0x1a, 0xfd, 0x39, 0xee, 0x75, 0x0e, 0xa9, 0x3c, 0x0f, 0x39, 0x3f, + 0xff, 0x46, 0xe3, 0x7f, 0x83, 0xe1, 0x87, 0x18, 0xec, 0x81, 0x40, 0xfe, 0x8f, 0xa6, 0xf8, 0x4d, + 0xee, 0x81, 0x00, 0x0a, 0x6f, 0xa3, 0xd1, 0x9a, 0x1e, 0xcd, 0xf4, 0x5b, 0x7c, 0x1b, 0x8d, 0x94, + 0x74, 0xbc, 0x9a, 0x24, 0x0d, 0x46, 0x53, 0xfc, 0x36, 0x5f, 0x4d, 0xa2, 0x8f, 0xcd, 0x18, 0x2d, + 0x92, 0xd1, 0x1c, 0x9f, 0xe7, 0x66, 0x8c, 0xd4, 0xc8, 0x4a, 0x0b, 0xa4, 0xf1, 0x02, 0x19, 0xcd, + 0xf7, 0x05, 0xc6, 0x37, 0x3b, 0x56, 0x1f, 0x2b, 0x2f, 0xc0, 0xc2, 0xe4, 0xe2, 0x18, 0xcd, 0xfa, + 0xc5, 0xf7, 0x46, 0x8e, 0x33, 0xc1, 0xda, 0x58, 0xd9, 0x19, 0x66, 0xd9, 0x60, 0x61, 0x8c, 0xa6, + 0x7d, 0xed, 0xbd, 0x70, 0xa2, 0x0d, 0xd6, 0xc5, 0x4a, 0x15, 0x60, 0x58, 0x93, 0xa2, 0xb9, 0x5e, + 0x67, 0x5c, 0x01, 0x10, 0xde, 0x1a, 0xac, 0x24, 0x45, 0xe3, 0xbf, 0xc4, 0xb7, 0x06, 0x43, 0xe0, + 0xad, 0xc1, 0xab, 0x51, 0x34, 0xfa, 0x0d, 0xbe, 0x35, 0x38, 0xa4, 0x72, 0x0d, 0xb2, 0xe6, 0xc0, + 0x30, 0x70, 0x6c, 0x49, 0x47, 0xff, 0x24, 0xab, 0xf4, 0x1f, 0x0f, 0x18, 0x98, 0x03, 0x2a, 0x97, + 0x20, 0x8d, 0xfa, 0x7b, 0xa8, 0x13, 0x85, 0xfc, 0xcf, 0x07, 0x3c, 0x9f, 0x60, 0xed, 0xca, 0xf3, + 0x00, 0xf4, 0x30, 0x4d, 0x3e, 0x14, 0x45, 0x60, 0xff, 0xeb, 0x01, 0xfb, 0xb1, 0xc4, 0x10, 0x32, + 0x24, 0xa0, 0x3f, 0xbd, 0x38, 0x9a, 0xe0, 0xdd, 0x30, 0x01, 0x39, 0x80, 0x5f, 0x85, 0xa9, 0x9b, + 0xae, 0x65, 0x7a, 0x6a, 0x2f, 0x0a, 0xfd, 0x7d, 0x86, 0xe6, 0xfa, 0xd8, 0x61, 0x7d, 0xcb, 0x41, + 0x9e, 0xda, 0x73, 0xa3, 0xb0, 0xff, 0xcd, 0xb0, 0x3e, 0x00, 0x83, 0x35, 0xd5, 0xf5, 0xe2, 0xcc, + 0xfb, 0x07, 0x1c, 0xcc, 0x01, 0xd8, 0x68, 0xfc, 0xf7, 0x2d, 0x74, 0x10, 0x85, 0xfd, 0x21, 0x37, + 0x9a, 0xe9, 0x57, 0x3e, 0x0e, 0x39, 0xfc, 0x27, 0xfd, 0x05, 0x54, 0x04, 0xf8, 0x7f, 0x18, 0x78, + 0x88, 0xc0, 0x6f, 0x76, 0xbd, 0x8e, 0xa7, 0x47, 0x3b, 0xfb, 0x7f, 0xd9, 0x4a, 0x73, 0xfd, 0x4a, + 0x15, 0xf2, 0xae, 0xd7, 0xe9, 0x0c, 0x58, 0x47, 0x13, 0x01, 0xff, 0xbf, 0x07, 0xfe, 0x21, 0xd7, + 0xc7, 0xac, 0xd5, 0x27, 0xdf, 0xd7, 0xc1, 0x86, 0xb5, 0x61, 0xd1, 0x9b, 0xba, 0x97, 0xcb, 0xd1, + 0x57, 0x6e, 0xf0, 0xfd, 0x14, 0x9c, 0x0c, 0xee, 0xfb, 0x9e, 0x63, 0x0d, 0x6c, 0x76, 0x07, 0x37, + 0x3b, 0x36, 0xb0, 0x78, 0xbc, 0x5b, 0xbc, 0xb2, 0x09, 0xb0, 0x8d, 0xee, 0x6c, 0x5b, 0x1b, 0x18, + 0x2c, 0x2d, 0x40, 0x86, 0xcc, 0xeb, 0x69, 0xf2, 0x1d, 0x2a, 0x29, 0xb3, 0x27, 0x5f, 0x7e, 0x91, + 0xfc, 0xe8, 0x5a, 0x60, 0xf2, 0x8b, 0x52, 0x19, 0x84, 0x2a, 0xb9, 0x68, 0xcf, 0xaf, 0xce, 0xaf, + 0x8c, 0x1b, 0x59, 0x95, 0x85, 0x6a, 0xa5, 0xf0, 0xcb, 0x6f, 0x9e, 0x16, 0x3e, 0xf7, 0xe6, 0x69, + 0xe1, 0xcb, 0x6f, 0x9e, 0x16, 0xca, 0xe7, 0x41, 0xa8, 0x62, 0xba, 0x2a, 0x61, 0xe0, 0xaf, 0xa1, + 0x4f, 0x23, 0xaa, 0xff, 0x90, 0x80, 0x42, 0xd3, 0xe8, 0xbc, 0xa0, 0x7b, 0xfb, 0x47, 0x5b, 0xf7, + 0x1c, 0x64, 0xc8, 0xfb, 0x9e, 0x26, 0x97, 0xab, 0xb0, 0xfa, 0xc4, 0x04, 0x53, 0x82, 0x44, 0x2b, + 0xe4, 0xdf, 0xa7, 0x65, 0x86, 0x3a, 0x74, 0x76, 0x9c, 0x77, 0x95, 0xdc, 0xc2, 0xc6, 0xe5, 0x5d, + 0x65, 0xbc, 0xab, 0x8b, 0x2d, 0xc8, 0x6c, 0x84, 0xdf, 0x70, 0x98, 0x5f, 0x57, 0xf9, 0x4f, 0xd5, + 0xe8, 0xd3, 0x61, 0x16, 0x2d, 0x5e, 0x61, 0x8c, 0xab, 0xb1, 0x18, 0x87, 0xc8, 0xd5, 0xb5, 0xe5, + 0xef, 0xdc, 0x5f, 0x3a, 0xf1, 0x4f, 0xf7, 0x97, 0x4e, 0xfc, 0xf3, 0xfd, 0xa5, 0x13, 0xdf, 0xbb, + 0xbf, 0x24, 0xfc, 0xf0, 0xfe, 0x92, 0xf0, 0xa3, 0xfb, 0x4b, 0xc2, 0xbd, 0xb7, 0x97, 0x84, 0xaf, + 0xbc, 0xbd, 0x24, 0x7c, 0xed, 0xed, 0x25, 0xe1, 0x5b, 0x6f, 0x2f, 0x09, 0xff, 0x1f, 0x00, 0x00, + 0xff, 0xff, 0x87, 0x2f, 0x10, 0x76, 0xfc, 0x32, 0x00, 0x00, } r := bytes.NewReader(gzipped) - gzipr, err := compress_gzip.NewReader(r) + gzipr, err := gzip.NewReader(r) if err != nil { panic(err) } - ungzipped, err := io_ioutil.ReadAll(gzipr) + ungzipped, err := ioutil.ReadAll(gzipr) if err != nil { panic(err) } - if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil { + if err := proto.Unmarshal(ungzipped, d); err != nil { panic(err) } return d @@ -997,22 +1004,8 @@ func (m *NewNoGroup) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x19 i++ f1 := math.Float64bits(float64(num)) - dAtA[i] = uint8(f1) - i++ - dAtA[i] = uint8(f1 >> 8) - i++ - dAtA[i] = uint8(f1 >> 16) - i++ - dAtA[i] = uint8(f1 >> 24) - i++ - dAtA[i] = uint8(f1 >> 32) - i++ - dAtA[i] = uint8(f1 >> 40) - i++ - dAtA[i] = uint8(f1 >> 48) - i++ - dAtA[i] = uint8(f1 >> 56) - i++ + binary.LittleEndian.PutUint64(dAtA[i:], uint64(f1)) + i += 8 } } if m.A != nil { @@ -1057,24 +1050,6 @@ func (m *A) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Unrecognizedgroup(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 encodeFixed32Unrecognizedgroup(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 encodeVarintUnrecognizedgroup(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1457,15 +1432,8 @@ func (m *NewNoGroup) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field3 = append(m.Field3, v2) } else if wireType == 2 { @@ -1496,15 +1464,8 @@ func (m *NewNoGroup) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 v2 := float64(math.Float64frombits(v)) m.Field3 = append(m.Field3, v2) } diff --git a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgrouppb_test.go b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgrouppb_test.go index 302889e91..ea8ce4f1a 100644 --- a/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgrouppb_test.go +++ b/vendor/github.com/gogo/protobuf/test/unrecognizedgroup/unrecognizedgrouppb_test.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: unrecognizedgroup.proto -// DO NOT EDIT! /* Package unrecognizedgroup is a generated protocol buffer package. @@ -16,13 +15,12 @@ It has these top-level messages: package unrecognizedgroup import testing "testing" -import math_rand "math/rand" +import rand "math/rand" import time "time" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" -import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" -import fmt "fmt" -import go_parser "go/parser" import proto "github.com/gogo/protobuf/proto" +import jsonpb "github.com/gogo/protobuf/jsonpb" +import fmt "fmt" +import parser "go/parser" import math "math" import _ "github.com/gogo/protobuf/gogoproto" @@ -33,14 +31,14 @@ var _ = math.Inf func TestNewNoGroupProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -61,13 +59,13 @@ func TestNewNoGroupProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNewNoGroupMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -79,7 +77,7 @@ func TestNewNoGroupMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -95,14 +93,14 @@ func TestNewNoGroupMarshalTo(t *testing.T) { func TestAProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -123,13 +121,13 @@ func TestAProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestAMarshalTo(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, false) size := p.Size() dAtA := make([]byte, size) @@ -141,7 +139,7 @@ func TestAMarshalTo(t *testing.T) { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } for i := range dAtA { @@ -157,14 +155,14 @@ func TestAMarshalTo(t *testing.T) { func TestOldWithGroupProto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldWithGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -185,20 +183,20 @@ func TestOldWithGroupProto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOldWithGroup_Group1Proto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group1(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldWithGroup_Group1{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -219,20 +217,20 @@ func TestOldWithGroup_Group1Proto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestOldWithGroup_Group2Proto(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group2(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldWithGroup_Group2{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } littlefuzz := make([]byte, len(dAtA)) @@ -253,21 +251,21 @@ func TestOldWithGroup_Group2Proto(t *testing.T) { littlefuzz = append(littlefuzz, byte(popr.Intn(256))) } // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) + _ = proto.Unmarshal(littlefuzz, msg) } } func TestNewNoGroupJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &NewNoGroup{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -280,15 +278,15 @@ func TestNewNoGroupJSON(t *testing.T) { } func TestAJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &A{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -301,15 +299,15 @@ func TestAJSON(t *testing.T) { } func TestOldWithGroupJSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldWithGroup{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -322,15 +320,15 @@ func TestOldWithGroupJSON(t *testing.T) { } func TestOldWithGroup_Group1JSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group1(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldWithGroup_Group1{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -343,15 +341,15 @@ func TestOldWithGroup_Group1JSON(t *testing.T) { } func TestOldWithGroup_Group2JSON(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group2(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{} jsondata, err := marshaler.MarshalToString(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } msg := &OldWithGroup_Group2{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) + err = jsonpb.UnmarshalString(jsondata, msg) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -364,11 +362,11 @@ func TestOldWithGroup_Group2JSON(t *testing.T) { } func TestNewNoGroupProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -381,11 +379,11 @@ func TestNewNoGroupProtoText(t *testing.T) { func TestNewNoGroupProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -398,11 +396,11 @@ func TestNewNoGroupProtoCompactText(t *testing.T) { func TestAProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -415,11 +413,11 @@ func TestAProtoText(t *testing.T) { func TestAProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &A{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -432,11 +430,11 @@ func TestAProtoCompactText(t *testing.T) { func TestOldWithGroupProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OldWithGroup{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -449,11 +447,11 @@ func TestOldWithGroupProtoText(t *testing.T) { func TestOldWithGroupProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OldWithGroup{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -466,11 +464,11 @@ func TestOldWithGroupProtoCompactText(t *testing.T) { func TestOldWithGroup_Group1ProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group1(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OldWithGroup_Group1{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -483,11 +481,11 @@ func TestOldWithGroup_Group1ProtoText(t *testing.T) { func TestOldWithGroup_Group1ProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group1(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OldWithGroup_Group1{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -500,11 +498,11 @@ func TestOldWithGroup_Group1ProtoCompactText(t *testing.T) { func TestOldWithGroup_Group2ProtoText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group2(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) + dAtA := proto.MarshalTextString(p) msg := &OldWithGroup_Group2{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -517,11 +515,11 @@ func TestOldWithGroup_Group2ProtoText(t *testing.T) { func TestOldWithGroup_Group2ProtoCompactText(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedOldWithGroup_Group2(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) + dAtA := proto.CompactTextString(p) msg := &OldWithGroup_Group2{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { + if err := proto.UnmarshalText(dAtA, msg); err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } if err := p.VerboseEqual(msg); err != nil { @@ -536,14 +534,14 @@ func TestUnrecognizedgroupDescription(t *testing.T) { UnrecognizedgroupDescription() } func TestNewNoGroupVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNewNoGroup(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &NewNoGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -551,14 +549,14 @@ func TestNewNoGroupVerboseEqual(t *testing.T) { } } func TestAVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &A{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -566,14 +564,14 @@ func TestAVerboseEqual(t *testing.T) { } } func TestOldWithGroupVerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OldWithGroup{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -581,14 +579,14 @@ func TestOldWithGroupVerboseEqual(t *testing.T) { } } func TestOldWithGroup_Group1VerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup_Group1(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OldWithGroup_Group1{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -596,14 +594,14 @@ func TestOldWithGroup_Group1VerboseEqual(t *testing.T) { } } func TestOldWithGroup_Group2VerboseEqual(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup_Group2(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + dAtA, err := proto.Marshal(p) if err != nil { panic(err) } msg := &OldWithGroup_Group2{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { + if err := proto.Unmarshal(dAtA, msg); err != nil { panic(err) } if err := p.VerboseEqual(msg); err != nil { @@ -611,76 +609,76 @@ func TestOldWithGroup_Group2VerboseEqual(t *testing.T) { } } func TestNewNoGroupGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNewNoGroup(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestAGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOldWithGroupGoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOldWithGroup_Group1GoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup_Group1(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestOldWithGroup_Group2GoString(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup_Group2(popr, false) s1 := p.GoString() s2 := fmt.Sprintf("%#v", p) if s1 != s2 { t.Fatalf("GoString want %v got %v", s1, s2) } - _, err := go_parser.ParseExpr(s1) + _, err := parser.ParseExpr(s1) if err != nil { - panic(err) + t.Fatal(err) } } func TestNewNoGroupSize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedNewNoGroup(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -691,7 +689,7 @@ func TestNewNoGroupSize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } @@ -699,10 +697,10 @@ func TestNewNoGroupSize(t *testing.T) { func TestASize(t *testing.T) { seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) + popr := rand.New(rand.NewSource(seed)) p := NewPopulatedA(popr, true) - size2 := github_com_gogo_protobuf_proto.Size(p) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) + size2 := proto.Size(p) + dAtA, err := proto.Marshal(p) if err != nil { t.Fatalf("seed = %d, err = %v", seed, err) } @@ -713,14 +711,14 @@ func TestASize(t *testing.T) { if size2 != size { t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) } - size3 := github_com_gogo_protobuf_proto.Size(p) + size3 := proto.Size(p) if size3 != size { t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) } } func TestNewNoGroupStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedNewNoGroup(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -729,7 +727,7 @@ func TestNewNoGroupStringer(t *testing.T) { } } func TestAStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedA(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -738,7 +736,7 @@ func TestAStringer(t *testing.T) { } } func TestOldWithGroupStringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -747,7 +745,7 @@ func TestOldWithGroupStringer(t *testing.T) { } } func TestOldWithGroup_Group1Stringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup_Group1(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) @@ -756,7 +754,7 @@ func TestOldWithGroup_Group1Stringer(t *testing.T) { } } func TestOldWithGroup_Group2Stringer(t *testing.T) { - popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) + popr := rand.New(rand.NewSource(time.Now().UnixNano())) p := NewPopulatedOldWithGroup_Group2(popr, false) s1 := p.String() s2 := fmt.Sprintf("%v", p) diff --git a/vendor/github.com/gogo/protobuf/types/any.go b/vendor/github.com/gogo/protobuf/types/any.go index c10caf405..d83c3ad00 100644 --- a/vendor/github.com/gogo/protobuf/types/any.go +++ b/vendor/github.com/gogo/protobuf/types/any.go @@ -50,6 +50,9 @@ const googleApis = "type.googleapis.com/" // function. AnyMessageName is provided for less common use cases like filtering a // sequence of Any messages based on a set of allowed message type names. func AnyMessageName(any *Any) (string, error) { + if any == nil { + return "", fmt.Errorf("message is nil") + } slash := strings.LastIndex(any.TypeUrl, "/") if slash < 0 { return "", fmt.Errorf("message type url %q is invalid", any.TypeUrl) diff --git a/vendor/github.com/gogo/protobuf/types/any.pb.go b/vendor/github.com/gogo/protobuf/types/any.pb.go index 902d6d62a..017d8de4d 100644 --- a/vendor/github.com/gogo/protobuf/types/any.pb.go +++ b/vendor/github.com/gogo/protobuf/types/any.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: any.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -70,6 +69,16 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package // any.Unpack(foo) // ... // +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := ptypes.MarshalAny(foo) +// ... +// foo := &pb.Foo{} +// if err := ptypes.UnmarshalAny(any, foo); err != nil { +// ... +// } +// // The pack methods provided by protobuf library will by default use // 'type.googleapis.com/full.type.name' as the type URL and the unpack // methods only use the fully qualified type name after the last '/' @@ -273,24 +282,6 @@ func (m *Any) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Any(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 encodeFixed32Any(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 encodeVarintAny(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/types/duration.pb.go b/vendor/github.com/gogo/protobuf/types/duration.pb.go index 9d7fa8f31..806d6d8de 100644 --- a/vendor/github.com/gogo/protobuf/types/duration.pb.go +++ b/vendor/github.com/gogo/protobuf/types/duration.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: duration.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -40,6 +39,8 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package // two Timestamp values is a Duration and it can be added or subtracted // from a Timestamp. Range is approximately +-10,000 years. // +// # Examples +// // Example 1: Compute Duration from two Timestamps in pseudo code. // // Timestamp start = ...; @@ -80,10 +81,21 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package // duration = Duration() // duration.FromTimedelta(td) // +// # JSON Mapping +// +// In JSON format, the Duration type is encoded as a string rather than an +// object, where the string ends in the suffix "s" (indicating seconds) and +// is preceded by the number of seconds, with nanoseconds expressed as +// fractional seconds. For example, 3 seconds with 0 nanoseconds should be +// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should +// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 +// microsecond should be expressed in JSON format as "3.000001s". +// // type Duration struct { // Signed seconds of the span of time. Must be from -315,576,000,000 - // to +315,576,000,000 inclusive. + // to +315,576,000,000 inclusive. Note: these bounds are computed from: + // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` // Signed fractions of a second at nanosecond resolution of the span // of time. Durations less than one second are represented with a 0 @@ -235,24 +247,6 @@ func (m *Duration) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Duration(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 encodeFixed32Duration(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 encodeVarintDuration(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/types/duration_test.go b/vendor/github.com/gogo/protobuf/types/duration_test.go index ce998dee3..7f2bcb429 100644 --- a/vendor/github.com/gogo/protobuf/types/duration_test.go +++ b/vendor/github.com/gogo/protobuf/types/duration_test.go @@ -51,37 +51,37 @@ var durationTests = []struct { dur time.Duration }{ // The zero duration. - {&Duration{0, 0}, true, true, 0}, + {&Duration{Seconds: 0, Nanos: 0}, true, true, 0}, // Some ordinary non-zero durations. - {&Duration{100, 0}, true, true, 100 * time.Second}, - {&Duration{-100, 0}, true, true, -100 * time.Second}, - {&Duration{100, 987}, true, true, 100*time.Second + 987}, - {&Duration{-100, -987}, true, true, -(100*time.Second + 987)}, + {&Duration{Seconds: 100, Nanos: 0}, true, true, 100 * time.Second}, + {&Duration{Seconds: -100, Nanos: 0}, true, true, -100 * time.Second}, + {&Duration{Seconds: 100, Nanos: 987}, true, true, 100*time.Second + 987}, + {&Duration{Seconds: -100, Nanos: -987}, true, true, -(100*time.Second + 987)}, // The largest duration representable in Go. - {&Duration{maxGoSeconds, int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, true, math.MaxInt64}, + {&Duration{Seconds: maxGoSeconds, Nanos: int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, true, math.MaxInt64}, // The smallest duration representable in Go. - {&Duration{minGoSeconds, int32(math.MinInt64 - 1e9*minGoSeconds)}, true, true, math.MinInt64}, + {&Duration{Seconds: minGoSeconds, Nanos: int32(math.MinInt64 - 1e9*minGoSeconds)}, true, true, math.MinInt64}, {nil, false, false, 0}, - {&Duration{-100, 987}, false, false, 0}, - {&Duration{100, -987}, false, false, 0}, - {&Duration{math.MinInt64, 0}, false, false, 0}, - {&Duration{math.MaxInt64, 0}, false, false, 0}, + {&Duration{Seconds: -100, Nanos: 987}, false, false, 0}, + {&Duration{Seconds: 100, Nanos: -987}, false, false, 0}, + {&Duration{Seconds: math.MinInt64, Nanos: 0}, false, false, 0}, + {&Duration{Seconds: math.MaxInt64, Nanos: 0}, false, false, 0}, // The largest valid duration. - {&Duration{maxSeconds, 1e9 - 1}, true, false, 0}, + {&Duration{Seconds: maxSeconds, Nanos: 1e9 - 1}, true, false, 0}, // The smallest valid duration. - {&Duration{minSeconds, -(1e9 - 1)}, true, false, 0}, + {&Duration{Seconds: minSeconds, Nanos: -(1e9 - 1)}, true, false, 0}, // The smallest invalid duration above the valid range. - {&Duration{maxSeconds + 1, 0}, false, false, 0}, + {&Duration{Seconds: maxSeconds + 1, Nanos: 0}, false, false, 0}, // The largest invalid duration below the valid range. - {&Duration{minSeconds - 1, -(1e9 - 1)}, false, false, 0}, + {&Duration{Seconds: minSeconds - 1, Nanos: -(1e9 - 1)}, false, false, 0}, // One nanosecond past the largest duration representable in Go. - {&Duration{maxGoSeconds, int32(math.MaxInt64-1e9*maxGoSeconds) + 1}, true, false, 0}, + {&Duration{Seconds: maxGoSeconds, Nanos: int32(math.MaxInt64-1e9*maxGoSeconds) + 1}, true, false, 0}, // One nanosecond past the smallest duration representable in Go. - {&Duration{minGoSeconds, int32(math.MinInt64-1e9*minGoSeconds) - 1}, true, false, 0}, + {&Duration{Seconds: minGoSeconds, Nanos: int32(math.MinInt64-1e9*minGoSeconds) - 1}, true, false, 0}, // One second past the largest duration representable in Go. - {&Duration{maxGoSeconds + 1, int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, false, 0}, + {&Duration{Seconds: maxGoSeconds + 1, Nanos: int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, false, 0}, // One second past the smallest duration representable in Go. - {&Duration{minGoSeconds - 1, int32(math.MinInt64 - 1e9*minGoSeconds)}, true, false, 0}, + {&Duration{Seconds: minGoSeconds - 1, Nanos: int32(math.MinInt64 - 1e9*minGoSeconds)}, true, false, 0}, } func TestValidateDuration(t *testing.T) { diff --git a/vendor/github.com/gogo/protobuf/types/empty.pb.go b/vendor/github.com/gogo/protobuf/types/empty.pb.go index 4cfac1326..1289ac237 100644 --- a/vendor/github.com/gogo/protobuf/types/empty.pb.go +++ b/vendor/github.com/gogo/protobuf/types/empty.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: empty.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -142,24 +141,6 @@ func (m *Empty) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Empty(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 encodeFixed32Empty(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 encodeVarintEmpty(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/types/field_mask.pb.go b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go index 3bf0ff369..af684101a 100644 --- a/vendor/github.com/gogo/protobuf/types/field_mask.pb.go +++ b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: field_mask.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -380,24 +379,6 @@ func (m *FieldMask) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64FieldMask(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 encodeFixed32FieldMask(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 encodeVarintFieldMask(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/types/struct.pb.go b/vendor/github.com/gogo/protobuf/types/struct.pb.go index 366ea48e7..0a4057dc0 100644 --- a/vendor/github.com/gogo/protobuf/types/struct.pb.go +++ b/vendor/github.com/gogo/protobuf/types/struct.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: struct.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -23,7 +22,9 @@ import strconv "strconv" import strings "strings" import reflect "reflect" -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" +import sortkeys "github.com/gogo/protobuf/sortkeys" + +import binary "encoding/binary" import io "io" @@ -654,7 +655,7 @@ func (this *Struct) GoString() string { for k := range this.Fields { keysForFields = append(keysForFields, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForFields) + sortkeys.Strings(keysForFields) mapStringForFields := "map[string]*Value{" for _, k := range keysForFields { mapStringForFields += fmt.Sprintf("%#v: %#v,", k, this.Fields[k]) @@ -828,7 +829,8 @@ func (m *Value_NumberValue) MarshalTo(dAtA []byte) (int, error) { i := 0 dAtA[i] = 0x11 i++ - i = encodeFixed64Struct(dAtA, i, uint64(math.Float64bits(float64(m.NumberValue)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.NumberValue)))) + i += 8 return i, nil } func (m *Value_StringValue) MarshalTo(dAtA []byte) (int, error) { @@ -909,24 +911,6 @@ func (m *ListValue) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Struct(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 encodeFixed32Struct(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 encodeVarintStruct(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1195,7 +1179,7 @@ func (this *Struct) String() string { for k := range this.Fields { keysForFields = append(keysForFields, k) } - github_com_gogo_protobuf_sortkeys.Strings(keysForFields) + sortkeys.Strings(keysForFields) mapStringForFields := "map[string]*Value{" for _, k := range keysForFields { mapStringForFields += fmt.Sprintf("%v: %v,", k, this.Fields[k]) @@ -1350,51 +1334,14 @@ func (m *Struct) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowStruct - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowStruct - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthStruct - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Fields == nil { m.Fields = make(map[string]*Value) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue *Value + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowStruct @@ -1404,46 +1351,85 @@ func (m *Struct) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowStruct + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthStruct + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStruct + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthStruct + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthStruct + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &Value{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipStruct(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthStruct + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthStruct - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthStruct - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Value{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Fields[mapkey] = mapvalue - } else { - var mapvalue *Value - m.Fields[mapkey] = mapvalue } + m.Fields[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -1523,15 +1509,8 @@ func (m *Value) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Kind = &Value_NumberValue{float64(math.Float64frombits(v))} case 3: if wireType != 2 { diff --git a/vendor/github.com/gogo/protobuf/types/timestamp.go b/vendor/github.com/gogo/protobuf/types/timestamp.go index 521b62d92..7ae54d8b3 100644 --- a/vendor/github.com/gogo/protobuf/types/timestamp.go +++ b/vendor/github.com/gogo/protobuf/types/timestamp.go @@ -97,6 +97,15 @@ func TimestampFromProto(ts *Timestamp) (time.Time, error) { return t, validateTimestamp(ts) } +// TimestampNow returns a google.protobuf.Timestamp for the current time. +func TimestampNow() *Timestamp { + ts, err := TimestampProto(time.Now()) + if err != nil { + panic("ptypes: time.Now() out of Timestamp range") + } + return ts +} + // TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. // It returns an error if the resulting Timestamp is invalid. func TimestampProto(t time.Time) (*Timestamp, error) { diff --git a/vendor/github.com/gogo/protobuf/types/timestamp.pb.go b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go index 8c705a3a3..265133fd6 100644 --- a/vendor/github.com/gogo/protobuf/types/timestamp.pb.go +++ b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: timestamp.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -45,6 +44,8 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package // and from RFC 3339 date strings. // See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). // +// # Examples +// // Example 1: Compute Timestamp from POSIX `time()`. // // Timestamp timestamp; @@ -85,6 +86,29 @@ const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package // timestamp = Timestamp() // timestamp.GetCurrentTime() // +// # JSON Mapping +// +// In JSON format, the Timestamp type is encoded as a string in the +// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the +// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" +// where {year} is always expressed using four digits while {month}, {day}, +// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional +// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), +// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone +// is required, though only UTC (as indicated by "Z") is presently supported. +// +// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past +// 01:30 UTC on January 15, 2017. +// +// In JavaScript, one can convert a Date object to this format using the +// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// method. In Python, a standard `datetime.datetime` object can be converted +// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) +// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one +// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) +// to obtain a formatter capable of generating timestamps in this format. +// // type Timestamp struct { // Represents seconds of UTC time since Unix epoch @@ -239,24 +263,6 @@ func (m *Timestamp) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Timestamp(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 encodeFixed32Timestamp(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 encodeVarintTimestamp(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/types/timestamp_test.go b/vendor/github.com/gogo/protobuf/types/timestamp_test.go index 782de92f8..6af8631e5 100644 --- a/vendor/github.com/gogo/protobuf/types/timestamp_test.go +++ b/vendor/github.com/gogo/protobuf/types/timestamp_test.go @@ -45,32 +45,32 @@ var tests = []struct { t time.Time }{ // The timestamp representing the Unix epoch date. - {&Timestamp{0, 0}, true, utcDate(1970, 1, 1)}, + {&Timestamp{Seconds: 0, Nanos: 0}, true, utcDate(1970, 1, 1)}, // The smallest representable timestamp. - {&Timestamp{math.MinInt64, math.MinInt32}, false, + {&Timestamp{Seconds: math.MinInt64, Nanos: math.MinInt32}, false, time.Unix(math.MinInt64, math.MinInt32).UTC()}, // The smallest representable timestamp with non-negative nanos. - {&Timestamp{math.MinInt64, 0}, false, time.Unix(math.MinInt64, 0).UTC()}, + {&Timestamp{Seconds: math.MinInt64, Nanos: 0}, false, time.Unix(math.MinInt64, 0).UTC()}, // The earliest valid timestamp. - {&Timestamp{minValidSeconds, 0}, true, utcDate(1, 1, 1)}, + {&Timestamp{Seconds: minValidSeconds, Nanos: 0}, true, utcDate(1, 1, 1)}, //"0001-01-01T00:00:00Z"}, // The largest representable timestamp. - {&Timestamp{math.MaxInt64, math.MaxInt32}, false, + {&Timestamp{Seconds: math.MaxInt64, Nanos: math.MaxInt32}, false, time.Unix(math.MaxInt64, math.MaxInt32).UTC()}, // The largest representable timestamp with nanos in range. - {&Timestamp{math.MaxInt64, 1e9 - 1}, false, + {&Timestamp{Seconds: math.MaxInt64, Nanos: 1e9 - 1}, false, time.Unix(math.MaxInt64, 1e9-1).UTC()}, // The largest valid timestamp. - {&Timestamp{maxValidSeconds - 1, 1e9 - 1}, true, + {&Timestamp{Seconds: maxValidSeconds - 1, Nanos: 1e9 - 1}, true, time.Date(9999, 12, 31, 23, 59, 59, 1e9-1, time.UTC)}, // The smallest invalid timestamp that is larger than the valid range. - {&Timestamp{maxValidSeconds, 0}, false, time.Unix(maxValidSeconds, 0).UTC()}, + {&Timestamp{Seconds: maxValidSeconds, Nanos: 0}, false, time.Unix(maxValidSeconds, 0).UTC()}, // A date before the epoch. - {&Timestamp{-281836800, 0}, true, utcDate(1961, 1, 26)}, + {&Timestamp{Seconds: -281836800, Nanos: 0}, true, utcDate(1961, 1, 26)}, // A date after the epoch. - {&Timestamp{1296000000, 0}, true, utcDate(2011, 1, 26)}, + {&Timestamp{Seconds: 1296000000, Nanos: 0}, true, utcDate(2011, 1, 26)}, // A date after the epoch, in the middle of the day. - {&Timestamp{1296012345, 940483}, true, + {&Timestamp{Seconds: 1296012345, Nanos: 940483}, true, time.Date(2011, 1, 26, 3, 25, 45, 940483, time.UTC)}, } @@ -122,8 +122,8 @@ func TestTimestampString(t *testing.T) { }{ // Not much testing needed because presumably time.Format is // well-tested. - {&Timestamp{0, 0}, "1970-01-01T00:00:00Z"}, - {&Timestamp{minValidSeconds - 1, 0}, "(timestamp: &types.Timestamp{Seconds: -62135596801,\nNanos: 0,\n} before 0001-01-01)"}, + {&Timestamp{Seconds: 0, Nanos: 0}, "1970-01-01T00:00:00Z"}, + {&Timestamp{Seconds: minValidSeconds - 1, Nanos: 0}, "(timestamp: &types.Timestamp{Seconds: -62135596801,\nNanos: 0,\n} before 0001-01-01)"}, } { got := TimestampString(test.ts) if got != test.want { @@ -135,3 +135,18 @@ func TestTimestampString(t *testing.T) { func utcDate(year, month, day int) time.Time { return time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC) } + +func TestTimestampNow(t *testing.T) { + // Bracket the expected time. + before := time.Now() + ts := TimestampNow() + after := time.Now() + + tm, err := TimestampFromProto(ts) + if err != nil { + t.Errorf("between %v and %v\nTimestampNow() = %v\nwhich is invalid (%v)", before, after, ts, err) + } + if tm.Before(before) || tm.After(after) { + t.Errorf("between %v and %v\nTimestamp(TimestampNow()) = %v", before, after, tm) + } +} diff --git a/vendor/github.com/gogo/protobuf/types/wrappers.pb.go b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go index 125e35c8f..4712df679 100644 --- a/vendor/github.com/gogo/protobuf/types/wrappers.pb.go +++ b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: wrappers.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -30,6 +29,8 @@ import bytes "bytes" import strings "strings" import reflect "reflect" +import binary "encoding/binary" + import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -914,7 +915,8 @@ func (m *DoubleValue) MarshalTo(dAtA []byte) (int, error) { if m.Value != 0 { dAtA[i] = 0x9 i++ - i = encodeFixed64Wrappers(dAtA, i, uint64(math.Float64bits(float64(m.Value)))) + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Value)))) + i += 8 } return i, nil } @@ -937,7 +939,8 @@ func (m *FloatValue) MarshalTo(dAtA []byte) (int, error) { if m.Value != 0 { dAtA[i] = 0xd i++ - i = encodeFixed32Wrappers(dAtA, i, uint32(math.Float32bits(float32(m.Value)))) + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Value)))) + i += 4 } return i, nil } @@ -1110,24 +1113,6 @@ func (m *BytesValue) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Wrappers(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 encodeFixed32Wrappers(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 encodeVarintWrappers(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1528,15 +1513,8 @@ func (m *DoubleValue) Unmarshal(dAtA []byte) error { if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } + v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - v = uint64(dAtA[iNdEx-8]) - v |= uint64(dAtA[iNdEx-7]) << 8 - v |= uint64(dAtA[iNdEx-6]) << 16 - v |= uint64(dAtA[iNdEx-5]) << 24 - v |= uint64(dAtA[iNdEx-4]) << 32 - v |= uint64(dAtA[iNdEx-3]) << 40 - v |= uint64(dAtA[iNdEx-2]) << 48 - v |= uint64(dAtA[iNdEx-1]) << 56 m.Value = float64(math.Float64frombits(v)) default: iNdEx = preIndex @@ -1596,11 +1574,8 @@ func (m *FloatValue) Unmarshal(dAtA []byte) error { if (iNdEx + 4) > l { return io.ErrUnexpectedEOF } + v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 - v = uint32(dAtA[iNdEx-4]) - v |= uint32(dAtA[iNdEx-3]) << 8 - v |= uint32(dAtA[iNdEx-2]) << 16 - v |= uint32(dAtA[iNdEx-1]) << 24 m.Value = float32(math.Float32frombits(v)) default: iNdEx = preIndex diff --git a/vendor/github.com/gogo/protobuf/vanity/field.go b/vendor/github.com/gogo/protobuf/vanity/field.go index 9c5e2263c..62cdddfab 100644 --- a/vendor/github.com/gogo/protobuf/vanity/field.go +++ b/vendor/github.com/gogo/protobuf/vanity/field.go @@ -72,6 +72,13 @@ func TurnOffNullable(field *descriptor.FieldDescriptorProto) { SetBoolFieldOption(gogoproto.E_Nullable, false)(field) } +func TurnOffNullableForNativeTypes(field *descriptor.FieldDescriptorProto) { + if field.IsRepeated() || field.IsMessage() { + return + } + SetBoolFieldOption(gogoproto.E_Nullable, false)(field) +} + func TurnOffNullableForNativeTypesWithoutDefaultsOnly(field *descriptor.FieldDescriptorProto) { if field.IsRepeated() || field.IsMessage() { return diff --git a/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go index d0ac8a079..0b5a7d5f1 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/fast/gogovanity.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: gogovanity.proto -// DO NOT EDIT! /* Package vanity is a generated protocol buffer package. @@ -106,24 +105,6 @@ func (m *B) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Gogovanity(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 encodeFixed32Gogovanity(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 encodeVarintGogovanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go index 1cfd13059..70c74016b 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/fast/proto3.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto3.proto -// DO NOT EDIT! /* Package vanity is a generated protocol buffer package. @@ -73,24 +72,6 @@ func (m *Aproto3) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Proto3(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 encodeFixed32Proto3(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 encodeVarintProto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go index 7f2d06b2e..c95078c7f 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/fast/vanity.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: vanity.proto -// DO NOT EDIT! /* Package vanity is a generated protocol buffer package. @@ -17,8 +16,6 @@ import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" - import io "io" // Reference imports to suppress errors if they are not otherwise used. @@ -82,7 +79,7 @@ func (m *A) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], *m.Strings) } if m.Int == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int") + return 0, proto.NewRequiredNotSetError("Int") } else { dAtA[i] = 0x10 i++ @@ -94,24 +91,6 @@ func (m *A) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Vanity(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 encodeFixed32Vanity(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 encodeVarintVanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -248,7 +227,7 @@ func (m *A) Unmarshal(dAtA []byte) error { } } if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int") + return proto.NewRequiredNotSetError("Int") } if iNdEx > l { diff --git a/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go index 53006996a..8ea5c08af 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/faster/gogovanity.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: gogovanity.proto -// DO NOT EDIT! /* Package vanity is a generated protocol buffer package. @@ -100,24 +99,6 @@ func (m *B) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Gogovanity(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 encodeFixed32Gogovanity(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 encodeVarintGogovanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go index 1c0388f3b..023b240ca 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/faster/proto3.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto3.proto -// DO NOT EDIT! /* Package vanity is a generated protocol buffer package. @@ -73,24 +72,6 @@ func (m *Aproto3) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Proto3(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 encodeFixed32Proto3(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 encodeVarintProto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go index ed1c4ef80..7be802050 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/faster/vanity.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: vanity.proto -// DO NOT EDIT! /* Package vanity is a generated protocol buffer package. @@ -18,7 +17,6 @@ import fmt "fmt" import math "math" import io "io" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -83,24 +81,6 @@ func (m *A) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Vanity(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 encodeFixed32Vanity(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 encodeVarintVanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -227,7 +207,7 @@ func (m *A) Unmarshal(dAtA []byte) error { } } if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int") + return proto.NewRequiredNotSetError("Int") } if iNdEx > l { diff --git a/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go index 7ae6de152..e7a1748a6 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/slick/gogovanity.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: gogovanity.proto -// DO NOT EDIT! /* Package vanity is a generated protocol buffer package. @@ -174,24 +173,6 @@ func (m *B) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Gogovanity(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 encodeFixed32Gogovanity(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 encodeVarintGogovanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go index 9c9c694ef..3464e950f 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/slick/proto3.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: proto3.proto -// DO NOT EDIT! /* Package vanity is a generated protocol buffer package. @@ -123,24 +122,6 @@ func (m *Aproto3) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Proto3(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 encodeFixed32Proto3(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 encodeVarintProto3(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) diff --git a/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go b/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go index 46a467706..4e4413a99 100644 --- a/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go +++ b/vendor/github.com/gogo/protobuf/vanity/test/slick/vanity.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: vanity.proto -// DO NOT EDIT! /* Package vanity is a generated protocol buffer package. @@ -21,7 +20,6 @@ import strings "strings" import reflect "reflect" import io "io" -import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -137,24 +135,6 @@ func (m *A) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Vanity(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 encodeFixed32Vanity(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 encodeVarintVanity(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -300,7 +280,7 @@ func (m *A) Unmarshal(dAtA []byte) error { } } if hasFields[0]&uint64(0x00000001) == 0 { - return github_com_gogo_protobuf_proto.NewRequiredNotSetError("Int") + return proto.NewRequiredNotSetError("Int") } if iNdEx > l { diff --git a/vendor/github.com/imdario/mergo/CODE_OF_CONDUCT.md b/vendor/github.com/imdario/mergo/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..469b44907 --- /dev/null +++ b/vendor/github.com/imdario/mergo/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at i@dario.im. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/vendor/github.com/imdario/mergo/README.md b/vendor/github.com/imdario/mergo/README.md index cdcea0f65..b13106979 100644 --- a/vendor/github.com/imdario/mergo/README.md +++ b/vendor/github.com/imdario/mergo/README.md @@ -8,8 +8,31 @@ Also a lovely [comune](http://en.wikipedia.org/wiki/Mergo) (municipality) in the ## Status -It is ready for production use. It works fine although it may use more of testing. Here some projects in the wild using Mergo: +It is ready for production use. It works fine after extensive use in the wild. +[![Build Status][1]][2] +[![GoDoc][3]][4] +[![GoCard][5]][6] + +[1]: https://travis-ci.org/imdario/mergo.png +[2]: https://travis-ci.org/imdario/mergo +[3]: https://godoc.org/github.com/imdario/mergo?status.svg +[4]: https://godoc.org/github.com/imdario/mergo +[5]: https://goreportcard.com/badge/imdario/mergo +[6]: https://goreportcard.com/report/github.com/imdario/mergo + +### Important note + +Mergo is intended to assign **only** zero value fields on destination with source value. Since April 6th it works like this. Before it didn't work properly, causing some random overwrites. After some issues and PRs I found it didn't merge as I designed it. Thanks to [imdario/mergo#8](https://github.com/imdario/mergo/pull/8) overwriting functions were added and the wrong behavior was clearly detected. + +If you were using Mergo **before** April 6th 2015, please check your project works as intended after updating your local copy with ```go get -u github.com/imdario/mergo```. I apologize for any issue caused by its previous behavior and any future bug that Mergo could cause (I hope it won't!) in existing projects after the change (release 0.2.0). + +### Mergo in the wild + +- [docker/docker](https://github.com/docker/docker/) +- [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) +- [imdario/zas](https://github.com/imdario/zas) +- [soniah/dnsmadeeasy](https://github.com/soniah/dnsmadeeasy) - [EagerIO/Stout](https://github.com/EagerIO/Stout) - [lynndylanhurley/defsynth-api](https://github.com/lynndylanhurley/defsynth-api) - [russross/canvasassignments](https://github.com/russross/canvasassignments) @@ -17,12 +40,17 @@ It is ready for production use. It works fine although it may use more of testin - [casualjim/exeggutor](https://github.com/casualjim/exeggutor) - [divshot/gitling](https://github.com/divshot/gitling) - [RWJMurphy/gorl](https://github.com/RWJMurphy/gorl) - -[![Build Status][1]][2] -[![GoDoc](https://godoc.org/github.com/imdario/mergo?status.svg)](https://godoc.org/github.com/imdario/mergo) - -[1]: https://travis-ci.org/imdario/mergo.png -[2]: https://travis-ci.org/imdario/mergo +- [andrerocker/deploy42](https://github.com/andrerocker/deploy42) +- [elwinar/rambler](https://github.com/elwinar/rambler) +- [tmaiaroto/gopartman](https://github.com/tmaiaroto/gopartman) +- [jfbus/impressionist](https://github.com/jfbus/impressionist) +- [Jmeyering/zealot](https://github.com/Jmeyering/zealot) +- [godep-migrator/rigger-host](https://github.com/godep-migrator/rigger-host) +- [Dronevery/MultiwaySwitch-Go](https://github.com/Dronevery/MultiwaySwitch-Go) +- [thoas/picfit](https://github.com/thoas/picfit) +- [mantasmatelis/whooplist-server](https://github.com/mantasmatelis/whooplist-server) +- [jnuthong/item_search](https://github.com/jnuthong/item_search) +- [Iris Web Framework](https://github.com/kataras/iris) ## Installation @@ -37,20 +65,65 @@ It is ready for production use. It works fine although it may use more of testin You can only merge same-type structs with exported fields initialized as zero value of their type and same-types maps. Mergo won't merge unexported (private) fields but will do recursively any exported one. Also maps will be merged recursively except for structs inside maps (because they are not addressable using Go reflection). - if err := mergo.Merge(&dst, src); err != nil { - // ... - } +```go +if err := mergo.Merge(&dst, src); err != nil { + // ... +} +``` + +Also, you can merge overwriting values using MergeWithOverwrite. + +```go +if err := mergo.MergeWithOverwrite(&dst, src); err != nil { + // ... +} +``` Additionally, you can map a map[string]interface{} to a struct (and otherwise, from struct to map), following the same restrictions as in Merge(). Keys are capitalized to find each corresponding exported field. - if err := mergo.Map(&dst, srcMap); err != nil { - // ... - } +```go +if err := mergo.Map(&dst, srcMap); err != nil { + // ... +} +``` Warning: if you map a struct to map, it won't do it recursively. Don't expect Mergo to map struct members of your struct as map[string]interface{}. They will be just assigned as values. More information and examples in [godoc documentation](http://godoc.org/github.com/imdario/mergo). +### Nice example + +```go +package main + +import ( + "fmt" + "github.com/imdario/mergo" +) + +type Foo struct { + A string + B int64 +} + +func main() { + src := Foo{ + A: "one", + B: 2, + } + + dest := Foo{ + A: "two", + } + + mergo.Merge(&dest, src) + + fmt.Println(dest) + // Will print + // {two 2} +} +``` + Note: if test are failing due missing package, please execute: go get gopkg.in/yaml.v1 diff --git a/vendor/github.com/imdario/mergo/issue17_test.go b/vendor/github.com/imdario/mergo/issue17_test.go new file mode 100644 index 000000000..0ee96f377 --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue17_test.go @@ -0,0 +1,25 @@ +package mergo + +import ( + "encoding/json" + "testing" +) + +var ( + request = `{"timestamp":null, "name": "foo"}` + maprequest = map[string]interface{}{ + "timestamp": nil, + "name": "foo", + "newStuff": "foo", + } +) + +func TestIssue17MergeWithOverwrite(t *testing.T) { + var something map[string]interface{} + if err := json.Unmarshal([]byte(request), &something); err != nil { + t.Errorf("Error while Unmarshalling maprequest %s", err) + } + if err := MergeWithOverwrite(&something, maprequest); err != nil { + t.Errorf("Error while merging %s", err) + } +} diff --git a/vendor/github.com/imdario/mergo/issue23_test.go b/vendor/github.com/imdario/mergo/issue23_test.go new file mode 100644 index 000000000..9c3258413 --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue23_test.go @@ -0,0 +1,27 @@ +package mergo + +import ( + "testing" + "time" +) + +type document struct { + Created *time.Time +} + +func TestIssue23MergeWithOverwrite(t *testing.T) { + now := time.Now() + dst := document{ + &now, + } + expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) + src := document{ + &expected, + } + if err := MergeWithOverwrite(&dst, src); err != nil { + t.Errorf("Error while merging %s", err) + } + if dst.Created != src.Created { + t.Fatalf("Created not merged in properly: dst.Created(%v) != src.Created(%v)", dst.Created, src.Created) + } +} diff --git a/vendor/github.com/imdario/mergo/issue38_test.go b/vendor/github.com/imdario/mergo/issue38_test.go new file mode 100644 index 000000000..286b68cb1 --- /dev/null +++ b/vendor/github.com/imdario/mergo/issue38_test.go @@ -0,0 +1,59 @@ +package mergo + +import ( + "testing" + "time" +) + +type structWithoutTimePointer struct { + Created time.Time +} + +func TestIssue38Merge(t *testing.T) { + dst := structWithoutTimePointer{ + time.Now(), + } + + expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) + src := structWithoutTimePointer{ + expected, + } + if err := Merge(&dst, src); err != nil { + t.Errorf("Error while merging %s", err) + } + if dst.Created == src.Created { + t.Fatalf("Created merged unexpectedly: dst.Created(%v) == src.Created(%v)", dst.Created, src.Created) + } +} + +func TestIssue38MergeEmptyStruct(t *testing.T) { + dst := structWithoutTimePointer{} + + expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) + src := structWithoutTimePointer{ + expected, + } + if err := Merge(&dst, src); err != nil { + t.Errorf("Error while merging %s", err) + } + if dst.Created == src.Created { + t.Fatalf("Created merged unexpectedly: dst.Created(%v) == src.Created(%v)", dst.Created, src.Created) + } +} + +func TestIssue38MergeWithOverwrite(t *testing.T) { + dst := structWithoutTimePointer{ + time.Now(), + } + + expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) + src := structWithoutTimePointer{ + expected, + } + if err := MergeWithOverwrite(&dst, src); err != nil { + t.Errorf("Error while merging %s", err) + } + if dst.Created != src.Created { + t.Fatalf("Created not merged in properly: dst.Created(%v) != src.Created(%v)", dst.Created, src.Created) + } +} diff --git a/vendor/github.com/imdario/mergo/map.go b/vendor/github.com/imdario/mergo/map.go index 44361e88b..99002565f 100644 --- a/vendor/github.com/imdario/mergo/map.go +++ b/vendor/github.com/imdario/mergo/map.go @@ -31,7 +31,7 @@ func isExported(field reflect.StructField) bool { // Traverses recursively both values, assigning src's fields values to dst. // The map argument tracks comparisons that have already been seen, which allows // short circuiting on recursive types. -func deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (err error) { +func deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int, overwrite bool) (err error) { if dst.CanAddr() { addr := dst.UnsafeAddr() h := 17 * addr @@ -57,10 +57,17 @@ func deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (err } fieldName := field.Name fieldName = changeInitialCase(fieldName, unicode.ToLower) - if v, ok := dstMap[fieldName]; !ok || isEmptyValue(reflect.ValueOf(v)) { + if v, ok := dstMap[fieldName]; !ok || (isEmptyValue(reflect.ValueOf(v)) || overwrite) { dstMap[fieldName] = src.Field(i).Interface() } } + case reflect.Ptr: + if dst.IsNil() { + v := reflect.New(dst.Type().Elem()) + dst.Set(v) + } + dst = dst.Elem() + fallthrough case reflect.Struct: srcMap := src.Interface().(map[string]interface{}) for key := range srcMap { @@ -85,21 +92,24 @@ func deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (err srcKind = reflect.Ptr } } + if !srcElement.IsValid() { continue } if srcKind == dstKind { - if err = deepMerge(dstElement, srcElement, visited, depth+1); err != nil { + if err = deepMerge(dstElement, srcElement, visited, depth+1, overwrite); err != nil { return } - } else { - if srcKind == reflect.Map { - if err = deepMap(dstElement, srcElement, visited, depth+1); err != nil { - return - } - } else { - return fmt.Errorf("type mismatch on %s field: found %v, expected %v", fieldName, srcKind, dstKind) + } else if dstKind == reflect.Interface && dstElement.Kind() == reflect.Interface { + if err = deepMerge(dstElement, srcElement, visited, depth+1, overwrite); err != nil { + return + } + } else if srcKind == reflect.Map { + if err = deepMap(dstElement, srcElement, visited, depth+1, overwrite); err != nil { + return } + } else { + return fmt.Errorf("type mismatch on %s field: found %v, expected %v", fieldName, srcKind, dstKind) } } } @@ -118,6 +128,16 @@ func deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (err // This is separated method from Merge because it is cleaner and it keeps sane // semantics: merging equal types, mapping different (restricted) types. func Map(dst, src interface{}) error { + return _map(dst, src, false) +} + +// MapWithOverwrite will do the same as Map except that non-empty dst attributes will be overriden by +// non-empty src attribute values. +func MapWithOverwrite(dst, src interface{}) error { + return _map(dst, src, true) +} + +func _map(dst, src interface{}, overwrite bool) error { var ( vDst, vSrc reflect.Value err error @@ -128,7 +148,7 @@ func Map(dst, src interface{}) error { // To be friction-less, we redirect equal-type arguments // to deepMerge. Only because arguments can be anything. if vSrc.Kind() == vDst.Kind() { - return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0) + return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, overwrite) } switch vSrc.Kind() { case reflect.Struct: @@ -142,5 +162,5 @@ func Map(dst, src interface{}) error { default: return ErrNotSupported } - return deepMap(vDst, vSrc, make(map[uintptr]*visit), 0) + return deepMap(vDst, vSrc, make(map[uintptr]*visit), 0, overwrite) } diff --git a/vendor/github.com/imdario/mergo/merge.go b/vendor/github.com/imdario/mergo/merge.go index 5d328b1fe..052b9fe78 100644 --- a/vendor/github.com/imdario/mergo/merge.go +++ b/vendor/github.com/imdario/mergo/merge.go @@ -12,10 +12,22 @@ import ( "reflect" ) +func hasExportedField(dst reflect.Value) (exported bool) { + for i, n := 0, dst.NumField(); i < n; i++ { + field := dst.Type().Field(i) + if field.Anonymous { + exported = exported || hasExportedField(dst.Field(i)) + } else { + exported = exported || len(field.PkgPath) == 0 + } + } + return +} + // Traverses recursively both values, assigning src's fields values to dst. // The map argument tracks comparisons that have already been seen, which allows // short circuiting on recursive types. -func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (err error) { +func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, overwrite bool) (err error) { if !src.IsValid() { return } @@ -34,57 +46,113 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int) (e } switch dst.Kind() { case reflect.Struct: - for i, n := 0, dst.NumField(); i < n; i++ { - if err = deepMerge(dst.Field(i), src.Field(i), visited, depth+1); err != nil { - return + if hasExportedField(dst) { + for i, n := 0, dst.NumField(); i < n; i++ { + if err = deepMerge(dst.Field(i), src.Field(i), visited, depth+1, overwrite); err != nil { + return + } + } + } else { + if dst.CanSet() && !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) { + dst.Set(src) } } case reflect.Map: + if len(src.MapKeys()) == 0 && !src.IsNil() && len(dst.MapKeys()) == 0 { + dst.Set(reflect.MakeMap(dst.Type())) + return + } for _, key := range src.MapKeys() { srcElement := src.MapIndex(key) if !srcElement.IsValid() { continue } dstElement := dst.MapIndex(key) - switch reflect.TypeOf(srcElement.Interface()).Kind() { - case reflect.Struct: + switch srcElement.Kind() { + case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Slice: + if srcElement.IsNil() { + continue + } fallthrough - case reflect.Map: - if err = deepMerge(dstElement, srcElement, visited, depth+1); err != nil { - return + default: + if !srcElement.CanInterface() { + continue + } + switch reflect.TypeOf(srcElement.Interface()).Kind() { + case reflect.Struct: + fallthrough + case reflect.Ptr: + fallthrough + case reflect.Map: + if err = deepMerge(dstElement, srcElement, visited, depth+1, overwrite); err != nil { + return + } } } - if !dstElement.IsValid() { + if dstElement.IsValid() && reflect.TypeOf(srcElement.Interface()).Kind() == reflect.Map { + continue + } + + if !isEmptyValue(srcElement) && (overwrite || (!dstElement.IsValid() || isEmptyValue(dst))) { + if dst.IsNil() { + dst.Set(reflect.MakeMap(dst.Type())) + } dst.SetMapIndex(key, srcElement) } } case reflect.Ptr: fallthrough case reflect.Interface: + if src.Kind() != reflect.Interface { + if dst.IsNil() || overwrite { + if dst.CanSet() && (overwrite || isEmptyValue(dst)) { + dst.Set(src) + } + } else if src.Kind() == reflect.Ptr { + if err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, overwrite); err != nil { + return + } + } else if dst.Elem().Type() == src.Type() { + if err = deepMerge(dst.Elem(), src, visited, depth+1, overwrite); err != nil { + return + } + } else { + return ErrDifferentArgumentsTypes + } + break + } if src.IsNil() { break - } else if dst.IsNil() { - if dst.CanSet() && isEmptyValue(dst) { + } else if dst.IsNil() || overwrite { + if dst.CanSet() && (overwrite || isEmptyValue(dst)) { dst.Set(src) } - } else if err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1); err != nil { + } else if err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, overwrite); err != nil { return } default: - if dst.CanSet() && !isEmptyValue(src) { + if dst.CanSet() && !isEmptyValue(src) && (overwrite || isEmptyValue(dst)) { dst.Set(src) } } return } -// Merge sets fields' values in dst from src if they have a zero -// value of their type. -// dst and src must be valid same-type structs and dst must be -// a pointer to struct. -// It won't merge unexported (private) fields and will do recursively -// any exported field. +// Merge will fill any empty for value type attributes on the dst struct using corresponding +// src attributes if they themselves are not empty. dst and src must be valid same-type structs +// and dst must be a pointer to struct. +// It won't merge unexported (private) fields and will do recursively any exported field. func Merge(dst, src interface{}) error { + return merge(dst, src, false) +} + +// MergeWithOverwrite will do the same as Merge except that non-empty dst attributes will be overriden by +// non-empty src attribute values. +func MergeWithOverwrite(dst, src interface{}) error { + return merge(dst, src, true) +} + +func merge(dst, src interface{}, overwrite bool) error { var ( vDst, vSrc reflect.Value err error @@ -95,5 +163,5 @@ func Merge(dst, src interface{}) error { if vDst.Type() != vSrc.Type() { return ErrDifferentArgumentsTypes } - return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0) + return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, overwrite) } diff --git a/vendor/github.com/imdario/mergo/mergo.go b/vendor/github.com/imdario/mergo/mergo.go index f8a0991ec..79ccdf5cb 100644 --- a/vendor/github.com/imdario/mergo/mergo.go +++ b/vendor/github.com/imdario/mergo/mergo.go @@ -45,7 +45,7 @@ func isEmptyValue(v reflect.Value) bool { return v.Uint() == 0 case reflect.Float32, reflect.Float64: return v.Float() == 0 - case reflect.Interface, reflect.Ptr: + case reflect.Interface, reflect.Ptr, reflect.Func: return v.IsNil() } return false diff --git a/vendor/github.com/imdario/mergo/mergo_test.go b/vendor/github.com/imdario/mergo/mergo_test.go index 072bddb79..e167c332a 100644 --- a/vendor/github.com/imdario/mergo/mergo_test.go +++ b/vendor/github.com/imdario/mergo/mergo_test.go @@ -6,10 +6,11 @@ package mergo import ( - "gopkg.in/yaml.v1" + "gopkg.in/yaml.v2" "io/ioutil" "reflect" "testing" + "time" ) type simpleTest struct { @@ -19,7 +20,15 @@ type simpleTest struct { type complexTest struct { St simpleTest sz int - Id string + ID string +} + +type mapTest struct { + M map[int]int +} + +type ifcTest struct { + I interface{} } type moreComplextText struct { @@ -36,6 +45,41 @@ type sliceTest struct { S []int } +func TestKb(t *testing.T) { + type testStruct struct { + Name string + KeyValue map[string]interface{} + } + + akv := make(map[string]interface{}) + akv["Key1"] = "not value 1" + akv["Key2"] = "value2" + a := testStruct{} + a.Name = "A" + a.KeyValue = akv + + bkv := make(map[string]interface{}) + bkv["Key1"] = "value1" + bkv["Key3"] = "value3" + b := testStruct{} + b.Name = "B" + b.KeyValue = bkv + + ekv := make(map[string]interface{}) + ekv["Key1"] = "value1" + ekv["Key2"] = "value2" + ekv["Key3"] = "value3" + expected := testStruct{} + expected.Name = "B" + expected.KeyValue = ekv + + Merge(&b, a) + + if !reflect.DeepEqual(b, expected) { + t.Errorf("Actual: %#v did not match \nExpected: %#v", b, expected) + } +} + func TestNil(t *testing.T) { if err := Merge(nil, nil); err != ErrNilArguments { t.Fail() @@ -57,7 +101,7 @@ func TestSimpleStruct(t *testing.T) { t.FailNow() } if a.Value != 42 { - t.Fatalf("b not merged in a properly: a.Value(%d) != b.Value(%d)", a.Value, b.Value) + t.Fatalf("b not merged in properly: a.Value(%d) != b.Value(%d)", a.Value, b.Value) } if !reflect.DeepEqual(a, b) { t.FailNow() @@ -66,19 +110,33 @@ func TestSimpleStruct(t *testing.T) { func TestComplexStruct(t *testing.T) { a := complexTest{} - a.Id = "athing" + a.ID = "athing" b := complexTest{simpleTest{42}, 1, "bthing"} if err := Merge(&a, b); err != nil { t.FailNow() } if a.St.Value != 42 { - t.Fatalf("b not merged in a properly: a.St.Value(%d) != b.St.Value(%d)", a.St.Value, b.St.Value) + t.Fatalf("b not merged in properly: a.St.Value(%d) != b.St.Value(%d)", a.St.Value, b.St.Value) } if a.sz == 1 { t.Fatalf("a's private field sz not preserved from merge: a.sz(%d) == b.sz(%d)", a.sz, b.sz) } - if a.Id != b.Id { - t.Fatalf("a's field Id not merged properly: a.Id(%s) != b.Id(%s)", a.Id, b.Id) + if a.ID == b.ID { + t.Fatalf("a's field ID merged unexpectedly: a.ID(%s) == b.ID(%s)", a.ID, b.ID) + } +} + +func TestComplexStructWithOverwrite(t *testing.T) { + a := complexTest{simpleTest{1}, 1, "do-not-overwrite-with-empty-value"} + b := complexTest{simpleTest{42}, 2, ""} + + expect := complexTest{simpleTest{42}, 1, "do-not-overwrite-with-empty-value"} + if err := MergeWithOverwrite(&a, b); err != nil { + t.FailNow() + } + + if !reflect.DeepEqual(a, expect) { + t.Fatalf("Test failed:\ngot :\n%#v\n\nwant :\n%#v\n\n", a, expect) } } @@ -91,7 +149,68 @@ func TestPointerStruct(t *testing.T) { t.FailNow() } if a.C.Value != b.C.Value { - //t.Fatalf("b not merged in a properly: a.C.Value(%d) != b.C.Value(%d)", a.C.Value, b.C.Value) + t.Fatalf("b not merged in properly: a.C.Value(%d) != b.C.Value(%d)", a.C.Value, b.C.Value) + } +} + +type embeddingStruct struct { + embeddedStruct +} + +type embeddedStruct struct { + A string +} + +func TestEmbeddedStruct(t *testing.T) { + tests := []struct { + src embeddingStruct + dst embeddingStruct + expected embeddingStruct + }{ + { + src: embeddingStruct{ + embeddedStruct{"foo"}, + }, + dst: embeddingStruct{ + embeddedStruct{""}, + }, + expected: embeddingStruct{ + embeddedStruct{"foo"}, + }, + }, + { + src: embeddingStruct{ + embeddedStruct{""}, + }, + dst: embeddingStruct{ + embeddedStruct{"bar"}, + }, + expected: embeddingStruct{ + embeddedStruct{"bar"}, + }, + }, + { + src: embeddingStruct{ + embeddedStruct{"foo"}, + }, + dst: embeddingStruct{ + embeddedStruct{"bar"}, + }, + expected: embeddingStruct{ + embeddedStruct{"bar"}, + }, + }, + } + + for _, test := range tests { + err := Merge(&test.dst, test.src) + if err != nil { + t.Errorf("unexpected error: %v", err) + continue + } + if !reflect.DeepEqual(test.dst, test.expected) { + t.Errorf("unexpected output\nexpected:\n%+v\nsaw:\n%+v\n", test.expected, test.dst) + } } } @@ -116,7 +235,7 @@ func TestSliceStruct(t *testing.T) { t.FailNow() } if len(a.S) != len(b.S) { - t.Fatalf("b not merged in a properly %d != %d", len(a.S), len(b.S)) + t.Fatalf("b not merged in a proper way %d != %d", len(a.S), len(b.S)) } a = sliceTest{[]int{1}} @@ -124,29 +243,115 @@ func TestSliceStruct(t *testing.T) { if err := Merge(&a, b); err != nil { t.FailNow() } - if len(b.S) != 3 { + if len(a.S) != 1 { t.FailNow() } - if len(a.S) != len(b.S) { - t.Fatalf("b not merged in a properly %d != %d", len(a.S), len(b.S)) + if len(a.S) == len(b.S) { + t.Fatalf("b merged unexpectedly %d != %d", len(a.S), len(b.S)) + } +} + +func TestEmptyMaps(t *testing.T) { + a := mapTest{} + b := mapTest{ + map[int]int{}, + } + if err := Merge(&a, b); err != nil { + t.Fail() + } + if !reflect.DeepEqual(a, b) { + t.FailNow() + } +} + +func TestEmptyToEmptyMaps(t *testing.T) { + a := mapTest{} + b := mapTest{} + if err := Merge(&a, b); err != nil { + t.Fail() + } + if !reflect.DeepEqual(a, b) { + t.FailNow() + } +} + +func TestEmptyToNotEmptyMaps(t *testing.T) { + a := mapTest{map[int]int{ + 1: 2, + 3: 4, + }} + aa := mapTest{map[int]int{ + 1: 2, + 3: 4, + }} + b := mapTest{ + map[int]int{}, + } + if err := Merge(&a, b); err != nil { + t.Fail() + } + if !reflect.DeepEqual(a, aa) { + t.FailNow() + } +} + +func TestMapsWithOverwrite(t *testing.T) { + m := map[string]simpleTest{ + "a": {}, // overwritten by 16 + "b": {42}, // not overwritten by empty value + "c": {13}, // overwritten by 12 + "d": {61}, + } + n := map[string]simpleTest{ + "a": {16}, + "b": {}, + "c": {12}, + "e": {14}, + } + expect := map[string]simpleTest{ + "a": {16}, + "b": {}, + "c": {12}, + "d": {61}, + "e": {14}, + } + + if err := MergeWithOverwrite(&m, n); err != nil { + t.Fatalf(err.Error()) + } + + if !reflect.DeepEqual(m, expect) { + t.Fatalf("Test failed:\ngot :\n%#v\n\nwant :\n%#v\n\n", m, expect) } } func TestMaps(t *testing.T) { m := map[string]simpleTest{ - "a": simpleTest{}, - "b": simpleTest{42}, + "a": {}, + "b": {42}, + "c": {13}, + "d": {61}, } n := map[string]simpleTest{ - "a": simpleTest{16}, - "b": simpleTest{}, - "c": simpleTest{12}, + "a": {16}, + "b": {}, + "c": {12}, + "e": {14}, + } + expect := map[string]simpleTest{ + "a": {0}, + "b": {42}, + "c": {13}, + "d": {61}, + "e": {14}, } + if err := Merge(&m, n); err != nil { t.Fatalf(err.Error()) } - if len(m) != 3 { - t.Fatalf(`n not merged in m properly, m must have 3 elements instead of %d`, len(m)) + + if !reflect.DeepEqual(m, expect) { + t.Fatalf("Test failed:\ngot :\n%#v\n\nwant :\n%#v\n\n", m, expect) } if m["a"].Value != 0 { t.Fatalf(`n merged in m because I solved non-addressable map values TODO: m["a"].Value(%d) != n["a"].Value(%d)`, m["a"].Value, n["a"].Value) @@ -154,8 +359,8 @@ func TestMaps(t *testing.T) { if m["b"].Value != 42 { t.Fatalf(`n wrongly merged in m: m["b"].Value(%d) != n["b"].Value(%d)`, m["b"].Value, n["b"].Value) } - if m["c"].Value != 12 { - t.Fatalf(`n not merged in m: m["c"].Value(%d) != n["c"].Value(%d)`, m["c"].Value, n["c"].Value) + if m["c"].Value != 13 { + t.Fatalf(`n overwritten in m: m["c"].Value(%d) != n["c"].Value(%d)`, m["c"].Value, n["c"].Value) } } @@ -164,7 +369,8 @@ func TestYAMLMaps(t *testing.T) { license := loadYAML("testdata/license.yml") ft := thing["fields"].(map[interface{}]interface{}) fl := license["fields"].(map[interface{}]interface{}) - expectedLength := len(ft) + len(fl) + // license has one extra field (site) and another already existing in thing (author) that Mergo won't override. + expectedLength := len(ft) + len(fl) - 1 if err := Merge(&license, thing); err != nil { t.Fatal(err.Error()) } @@ -188,7 +394,7 @@ func TestTwoPointerValues(t *testing.T) { func TestMap(t *testing.T) { a := complexTest{} - a.Id = "athing" + a.ID = "athing" c := moreComplextText{a, simpleTest{}, simpleTest{}} b := map[string]interface{}{ "ct": map[string]interface{}{ @@ -210,19 +416,19 @@ func TestMap(t *testing.T) { o := b["st"].(*simpleTest) p := b["nt"].(simpleTest) if c.Ct.St.Value != 42 { - t.Fatalf("b not merged in a properly: c.Ct.St.Value(%d) != b.Ct.St.Value(%d)", c.Ct.St.Value, n["value"]) + t.Fatalf("b not merged in properly: c.Ct.St.Value(%d) != b.Ct.St.Value(%d)", c.Ct.St.Value, n["value"]) } if c.St.Value != 144 { - t.Fatalf("b not merged in a properly: c.St.Value(%d) != b.St.Value(%d)", c.St.Value, o.Value) + t.Fatalf("b not merged in properly: c.St.Value(%d) != b.St.Value(%d)", c.St.Value, o.Value) } if c.Nt.Value != 3 { - t.Fatalf("b not merged in a properly: c.Nt.Value(%d) != b.Nt.Value(%d)", c.St.Value, p.Value) + t.Fatalf("b not merged in properly: c.Nt.Value(%d) != b.Nt.Value(%d)", c.St.Value, p.Value) } if c.Ct.sz == 1 { t.Fatalf("a's private field sz not preserved from merge: c.Ct.sz(%d) == b.Ct.sz(%d)", c.Ct.sz, m["sz"]) } - if c.Ct.Id != m["id"] { - t.Fatalf("a's field Id not merged properly: c.Ct.Id(%s) != b.Ct.Id(%s)", c.Ct.Id, m["id"]) + if c.Ct.ID == m["id"] { + t.Fatalf("a's field ID merged unexpectedly: c.Ct.ID(%s) == b.Ct.ID(%s)", c.Ct.ID, m["id"]) } } @@ -235,7 +441,46 @@ func TestSimpleMap(t *testing.T) { t.FailNow() } if a.Value != 42 { - t.Fatalf("b not merged in a properly: a.Value(%d) != b.Value(%v)", a.Value, b["value"]) + t.Fatalf("b not merged in properly: a.Value(%d) != b.Value(%v)", a.Value, b["value"]) + } +} + +func TestIfcMap(t *testing.T) { + a := ifcTest{} + b := ifcTest{42} + if err := Map(&a, b); err != nil { + t.FailNow() + } + if a.I != 42 { + t.Fatalf("b not merged in properly: a.I(%d) != b.I(%d)", a.I, b.I) + } + if !reflect.DeepEqual(a, b) { + t.FailNow() + } +} + +func TestIfcMapNoOverwrite(t *testing.T) { + a := ifcTest{13} + b := ifcTest{42} + if err := Map(&a, b); err != nil { + t.FailNow() + } + if a.I != 13 { + t.Fatalf("a not left alone: a.I(%d) == b.I(%d)", a.I, b.I) + } +} + +func TestIfcMapWithOverwrite(t *testing.T) { + a := ifcTest{13} + b := ifcTest{42} + if err := MapWithOverwrite(&a, b); err != nil { + t.FailNow() + } + if a.I != 42 { + t.Fatalf("b not merged in properly: a.I(%d) != b.I(%d)", a.I, b.I) + } + if !reflect.DeepEqual(a, b) { + t.FailNow() } } @@ -256,10 +501,10 @@ func TestBackAndForth(t *testing.T) { ok bool ) if v, ok = m["a"]; v.(int) != pt.A || !ok { - t.Fatalf("pt not merged properly: m[`a`](%d) != pt.A(%d)", v, pt.A) + t.Fatalf("pt not merged in properly: m[`a`](%d) != pt.A(%d)", v, pt.A) } if v, ok = m["b"]; !ok { - t.Fatalf("pt not merged properly: B is missing in m") + t.Fatalf("pt not merged in properly: B is missing in m") } var st *simpleTest if st = v.(*simpleTest); st.Value != 66 { @@ -270,13 +515,96 @@ func TestBackAndForth(t *testing.T) { t.Fatal(err) } if bpt.A != pt.A { - t.Fatalf("pt not merged properly: bpt.A(%d) != pt.A(%d)", bpt.A, pt.A) + t.Fatalf("pt not merged in properly: bpt.A(%d) != pt.A(%d)", bpt.A, pt.A) } if bpt.hidden == pt.hidden { t.Fatalf("pt unexpectedly merged: bpt.hidden(%d) == pt.hidden(%d)", bpt.hidden, pt.hidden) } if bpt.B.Value != pt.B.Value { - t.Fatalf("pt not merged properly: bpt.B.Value(%d) != pt.B.Value(%d)", bpt.B.Value, pt.B.Value) + t.Fatalf("pt not merged in properly: bpt.B.Value(%d) != pt.B.Value(%d)", bpt.B.Value, pt.B.Value) + } +} + +func TestEmbeddedPointerUnpacking(t *testing.T) { + tests := []struct{ input pointerMapTest }{ + {pointerMapTest{42, 1, nil}}, + {pointerMapTest{42, 1, &simpleTest{66}}}, + } + newValue := 77 + m := map[string]interface{}{ + "b": map[string]interface{}{ + "value": newValue, + }, + } + for _, test := range tests { + pt := test.input + if err := MapWithOverwrite(&pt, m); err != nil { + t.FailNow() + } + if pt.B.Value != newValue { + t.Fatalf("pt not mapped properly: pt.A.Value(%d) != m[`b`][`value`](%d)", pt.B.Value, newValue) + } + + } +} + +type structWithTimePointer struct { + Birth *time.Time +} + +func TestTime(t *testing.T) { + now := time.Now() + dataStruct := structWithTimePointer{ + Birth: &now, + } + dataMap := map[string]interface{}{ + "Birth": &now, + } + b := structWithTimePointer{} + if err := Merge(&b, dataStruct); err != nil { + t.FailNow() + } + if b.Birth.IsZero() { + t.Fatalf("time.Time not merged in properly: b.Birth(%v) != dataStruct['Birth'](%v)", b.Birth, dataStruct.Birth) + } + if b.Birth != dataStruct.Birth { + t.Fatalf("time.Time not merged in properly: b.Birth(%v) != dataStruct['Birth'](%v)", b.Birth, dataStruct.Birth) + } + b = structWithTimePointer{} + if err := Map(&b, dataMap); err != nil { + t.FailNow() + } + if b.Birth.IsZero() { + t.Fatalf("time.Time not merged in properly: b.Birth(%v) != dataMap['Birth'](%v)", b.Birth, dataMap["Birth"]) + } +} + +type simpleNested struct { + A int +} + +type structWithNestedPtrValueMap struct { + NestedPtrValue map[string]*simpleNested +} + +func TestNestedPtrValueInMap(t *testing.T) { + src := &structWithNestedPtrValueMap{ + NestedPtrValue: map[string]*simpleNested{ + "x": { + A: 1, + }, + }, + } + dst := &structWithNestedPtrValueMap{ + NestedPtrValue: map[string]*simpleNested{ + "x": {}, + }, + } + if err := Map(dst, src); err != nil { + t.FailNow() + } + if dst.NestedPtrValue["x"].A == 0 { + t.Fatalf("Nested Ptr value not merged in properly: dst.NestedPtrValue[\"x\"].A(%v) != src.NestedPtrValue[\"x\"].A(%v)", dst.NestedPtrValue["x"].A, src.NestedPtrValue["x"].A) } } @@ -286,3 +614,49 @@ func loadYAML(path string) (m map[string]interface{}) { _ = yaml.Unmarshal(raw, &m) return } + +type structWithMap struct { + m map[string]structWithUnexportedProperty +} + +type structWithUnexportedProperty struct { + s string +} + +func TestUnexportedProperty(t *testing.T) { + a := structWithMap{map[string]structWithUnexportedProperty{ + "key": structWithUnexportedProperty{"hello"}, + }} + b := structWithMap{map[string]structWithUnexportedProperty{ + "key": structWithUnexportedProperty{"hi"}, + }} + defer func() { + if r := recover(); r != nil { + t.Errorf("Should not have panicked") + } + }() + Merge(&a, b) +} + +type structWithBoolPointer struct { + C *bool +} + +func TestBooleanPointer(t *testing.T) { + bt, bf := true, false + src := structWithBoolPointer{ + &bt, + } + dst := structWithBoolPointer{ + &bf, + } + if err := Merge(&dst, src); err != nil { + t.FailNow() + } + if dst.C == src.C { + t.Fatalf("dst.C should be a different pointer than src.C") + } + if *dst.C != *src.C { + t.Fatalf("dst.C should be true") + } +} diff --git a/vendor/github.com/imdario/mergo/testdata/license.yml b/vendor/github.com/imdario/mergo/testdata/license.yml index 62fdb61ec..2f1ad0082 100644 --- a/vendor/github.com/imdario/mergo/testdata/license.yml +++ b/vendor/github.com/imdario/mergo/testdata/license.yml @@ -1,3 +1,4 @@ import: ../../../../fossene/db/schema/thing.yml fields: site: string + author: root diff --git a/vendor/github.com/imdario/mergo/testdata/thing.yml b/vendor/github.com/imdario/mergo/testdata/thing.yml index c28eab0d0..1a7104125 100644 --- a/vendor/github.com/imdario/mergo/testdata/thing.yml +++ b/vendor/github.com/imdario/mergo/testdata/thing.yml @@ -3,3 +3,4 @@ fields: name: string parent: ref "datu:thing" status: enum(draft, public, private) + author: updater diff --git a/vendor/github.com/spf13/cobra/.travis.yml b/vendor/github.com/spf13/cobra/.travis.yml index cb2bf0d5c..68efa1363 100644 --- a/vendor/github.com/spf13/cobra/.travis.yml +++ b/vendor/github.com/spf13/cobra/.travis.yml @@ -2,8 +2,8 @@ language: go matrix: include: - - go: 1.7.5 - - go: 1.8.1 + - go: 1.7.6 + - go: 1.8.3 - go: tip allow_failures: - go: tip diff --git a/vendor/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md index e249c1bcb..d8b5c96c8 100644 --- a/vendor/github.com/spf13/cobra/README.md +++ b/vendor/github.com/spf13/cobra/README.md @@ -19,13 +19,33 @@ Many of the most widely used Go projects are built using Cobra including: * [GiantSwarm's swarm](https://github.com/giantswarm/cli) * [Nanobox](https://github.com/nanobox-io/nanobox)/[Nanopack](https://github.com/nanopack) * [rclone](http://rclone.org/) - +* [nehm](https://github.com/bogem/nehm) [![Build Status](https://travis-ci.org/spf13/cobra.svg "Travis CI status")](https://travis-ci.org/spf13/cobra) [![CircleCI status](https://circleci.com/gh/spf13/cobra.png?circle-token=:circle-token "CircleCI status")](https://circleci.com/gh/spf13/cobra) [![GoDoc](https://godoc.org/github.com/spf13/cobra?status.svg)](https://godoc.org/github.com/spf13/cobra) -![cobra](https://cloud.githubusercontent.com/assets/173412/10911369/84832a8e-8212-11e5-9f82-cc96660a4794.gif) +# Table of Contents + +- [Overview](#overview) +- [Concepts](#concepts) + * [Commands](#commands) + * [Flags](#flags) +- [Installing](#installing) +- [Getting Started](#getting-started) + * [Using the Cobra Generator](#using-the-cobra-generator) + * [Using the Cobra Library](#using-the-cobra-library) + * [Working with Flags](#working-with-flags) + * [Positional and Custom Arguments](#positional-and-custom-arguments) + * [Example](#example) + * [Help Command](#help-command) + * [Usage Message](#usage-message) + * [PreRun and PostRun Hooks](#prerun-and-postrun-hooks) + * [Suggestions when "unknown command" happens](#suggestions-when-unknown-command-happens) + * [Generating documentation for your command](#generating-documentation-for-your-command) + * [Generating bash completions](#generating-bash-completions) +- [Contributing](#contributing) +- [License](#license) # Overview @@ -43,7 +63,6 @@ Cobra provides: * Easy generation of applications & commands with `cobra init appname` & `cobra add cmdname` * Intelligent suggestions (`app srver`... did you mean `app server`?) * Automatic help generation for commands and flags -* Automatic detailed help for `app help [command]` * Automatic help flag recognition of `-h`, `--help`, etc. * Automatically generated bash autocomplete for your application * Automatically generated man pages for your application @@ -51,16 +70,6 @@ Cobra provides: * The flexibility to define your own help, usage, etc. * Optional tight integration with [viper](http://github.com/spf13/viper) for 12-factor apps -Cobra has an exceptionally clean interface and simple design without needless -constructors or initialization methods. - -Applications built with Cobra commands are designed to be as user-friendly as -possible. Flags can be placed before or after the command (as long as a -confusing space isn’t provided). Both short and long flags can be used. A -command need not even be fully typed. Help is automatically generated and -available for the application or for a specific command using either the help -command or the `--help` flag. - # Concepts Cobra is built on a structure of commands, arguments & flags. @@ -93,20 +102,11 @@ have children commands and optionally run an action. In the example above, 'server' is the command. -A Command has the following structure: - -```go -type Command struct { - Use string // The one-line usage message. - Short string // The short description shown in the 'help' output. - Long string // The long message shown in the 'help ' output. - Run func(cmd *Command, args []string) // Run runs the command. -} -``` +[More about cobra.Command](https://godoc.org/github.com/spf13/cobra#Command) ## Flags -A Flag is a way to modify the behavior of a command. Cobra supports +A flag is a way to modify the behavior of a command. Cobra supports fully POSIX-compliant flags as well as the Go [flag package](https://golang.org/pkg/flag/). A Cobra command can define flags that persist through to children commands and flags that are only available to that command. @@ -117,14 +117,6 @@ Flag functionality is provided by the [pflag library](https://github.com/spf13/pflag), a fork of the flag standard library which maintains the same interface while adding POSIX compliance. -## Usage - -Cobra works by creating a set of commands and then organizing them into a tree. -The tree defines the structure of the application. - -Once each command is defined with its corresponding flags, then the -tree is assigned to the commander which is finally executed. - # Installing Using Cobra is easy. First, use `go get` to install the latest version of the library. This command will install the `cobra` generator executable @@ -159,17 +151,17 @@ In a Cobra app, typically the main.go file is very bare. It serves one purpose: package main import ( - "fmt" - "os" + "fmt" + "os" - "{pathToYourApp}/cmd" + "{pathToYourApp}/cmd" ) func main() { - if err := cmd.RootCmd.Execute(); err != nil { - fmt.Println(err) - os.Exit(1) - } + if err := cmd.RootCmd.Execute(); err != nil { + fmt.Println(err) + os.Exit(1) + } } ``` @@ -178,106 +170,14 @@ func main() { Cobra provides its own program that will create your application and add any commands you want. It's the easiest way to incorporate Cobra into your application. -In order to use the cobra command, compile it using the following command: - - go get github.com/spf13/cobra/cobra - -This will create the cobra executable under your `$GOPATH/bin` directory. - -### cobra init - -The `cobra init [yourApp]` command will create your initial application code -for you. It is a very powerful application that will populate your program with -the right structure so you can immediately enjoy all the benefits of Cobra. It -will also automatically apply the license you specify to your application. - -Cobra init is pretty smart. You can provide it a full path, or simply a path -similar to what is expected in the import. - -``` -cobra init github.com/spf13/newAppName -``` - -### cobra add - -Once an application is initialized Cobra can create additional commands for you. -Let's say you created an app and you wanted the following commands for it: - -* app serve -* app config -* app config create - -In your project directory (where your main.go file is) you would run the following: - -``` -cobra add serve -cobra add config -cobra add create -p 'configCmd' -``` - -*Note: Use camelCase (not snake_case/snake-case) for command names. -Otherwise, you will encounter errors. -For example, `cobra add add-user` is incorrect, but `cobra add addUser` is valid.* - -Once you have run these three commands you would have an app structure similar to -the following: - -``` - ▾ app/ - ▾ cmd/ - serve.go - config.go - create.go - main.go -``` - -At this point you can run `go run main.go` and it would run your app. `go run -main.go serve`, `go run main.go config`, `go run main.go config create` along -with `go run main.go help serve`, etc. would all work. - -Obviously you haven't added your own code to these yet. The commands are ready -for you to give them their tasks. Have fun! - -### Configuring the cobra generator - -The Cobra generator will be easier to use if you provide a simple configuration -file which will help you eliminate providing a bunch of repeated information in -flags over and over. - -An example ~/.cobra.yaml file: - -```yaml -author: Steve Francia -license: MIT -``` - -You can specify no license by setting `license` to `none` or you can specify -a custom license: +[Here](https://github.com/spf13/cobra/blob/master/cobra/README.md) you can find more information about it. -```yaml -license: - header: This file is part of {{ .appName }}. - text: | - {{ .copyright }} - - This is my license. There are many like it, but this one is mine. - My license is my best friend. It is my life. I must master it as I must - master my life. -``` - -You can also use built-in licenses. For example, **GPLv2**, **GPLv3**, **LGPL**, -**AGPL**, **MIT**, **2-Clause BSD** or **3-Clause BSD**. - -## Manually implementing Cobra +## Using the Cobra Library To manually implement Cobra you need to create a bare main.go file and a RootCmd file. You will optionally provide additional commands as you see fit. -### Create the root command - -The root command represents your binary itself. - -#### Manually create rootCmd +### Create rootCmd Cobra doesn't require any special constructors. Simply create your commands. @@ -285,14 +185,14 @@ Ideally you place this in app/cmd/root.go: ```go var RootCmd = &cobra.Command{ - Use: "hugo", - Short: "Hugo is a very fast static site generator", - Long: `A Fast and Flexible Static Site Generator built with + Use: "hugo", + Short: "Hugo is a very fast static site generator", + Long: `A Fast and Flexible Static Site Generator built with love by spf13 and friends in Go. Complete documentation is available at http://hugo.spf13.com`, - Run: func(cmd *cobra.Command, args []string) { - // Do Stuff Here - }, + Run: func(cmd *cobra.Command, args []string) { + // Do Stuff Here + }, } ``` @@ -302,54 +202,50 @@ For example cmd/root.go: ```go import ( - "fmt" - "os" + "fmt" + "os" - homedir "github.com/mitchellh/go-homedir" - "github.com/spf13/cobra" - "github.com/spf13/viper" + homedir "github.com/mitchellh/go-homedir" + "github.com/spf13/cobra" + "github.com/spf13/viper" ) func init() { - cobra.OnInitialize(initConfig) - RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)") - RootCmd.PersistentFlags().StringVarP(&projectBase, "projectbase", "b", "", "base project directory eg. github.com/spf13/") - RootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "Author name for copyright attribution") - RootCmd.PersistentFlags().StringVarP(&userLicense, "license", "l", "", "Name of license for the project (can provide `licensetext` in config)") - RootCmd.PersistentFlags().Bool("viper", true, "Use Viper for configuration") - viper.BindPFlag("author", RootCmd.PersistentFlags().Lookup("author")) - viper.BindPFlag("projectbase", RootCmd.PersistentFlags().Lookup("projectbase")) - viper.BindPFlag("useViper", RootCmd.PersistentFlags().Lookup("viper")) - viper.SetDefault("author", "NAME HERE ") - viper.SetDefault("license", "apache") -} - -func Execute() { - RootCmd.Execute() + cobra.OnInitialize(initConfig) + RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)") + RootCmd.PersistentFlags().StringVarP(&projectBase, "projectbase", "b", "", "base project directory eg. github.com/spf13/") + RootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "Author name for copyright attribution") + RootCmd.PersistentFlags().StringVarP(&userLicense, "license", "l", "", "Name of license for the project (can provide `licensetext` in config)") + RootCmd.PersistentFlags().Bool("viper", true, "Use Viper for configuration") + viper.BindPFlag("author", RootCmd.PersistentFlags().Lookup("author")) + viper.BindPFlag("projectbase", RootCmd.PersistentFlags().Lookup("projectbase")) + viper.BindPFlag("useViper", RootCmd.PersistentFlags().Lookup("viper")) + viper.SetDefault("author", "NAME HERE ") + viper.SetDefault("license", "apache") } func initConfig() { // Don't forget to read config either from cfgFile or from home directory! - if cfgFile != "" { - // Use config file from the flag. - viper.SetConfigFile(cfgFile) - } else { - // Find home directory. - home, err := homedir.Dir() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - // Search config in home directory with name ".cobra" (without extension). - viper.AddConfigPath(home) - viper.SetConfigName(".cobra") - } - - if err := viper.ReadInConfig(); err != nil { - fmt.Println("Can't read config:", err) - os.Exit(1) - } + if cfgFile != "" { + // Use config file from the flag. + viper.SetConfigFile(cfgFile) + } else { + // Find home directory. + home, err := homedir.Dir() + if err != nil { + fmt.Println(err) + os.Exit(1) + } + + // Search config in home directory with name ".cobra" (without extension). + viper.AddConfigPath(home) + viper.SetConfigName(".cobra") + } + + if err := viper.ReadInConfig(); err != nil { + fmt.Println("Can't read config:", err) + os.Exit(1) + } } ``` @@ -364,17 +260,17 @@ In a Cobra app, typically the main.go file is very bare. It serves, one purpose, package main import ( - "fmt" - "os" + "fmt" + "os" - "{pathToYourApp}/cmd" + "{pathToYourApp}/cmd" ) func main() { - if err := cmd.RootCmd.Execute(); err != nil { - fmt.Println(err) - os.Exit(1) - } + if err := cmd.RootCmd.Execute(); err != nil { + fmt.Println(err) + os.Exit(1) + } } ``` @@ -390,48 +286,24 @@ populate it with the following: package cmd import ( - "github.com/spf13/cobra" - "fmt" + "github.com/spf13/cobra" + "fmt" ) func init() { - RootCmd.AddCommand(versionCmd) + RootCmd.AddCommand(versionCmd) } var versionCmd = &cobra.Command{ - Use: "version", - Short: "Print the version number of Hugo", - Long: `All software has versions. This is Hugo's`, - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Hugo Static Site Generator v0.9 -- HEAD") - }, + Use: "version", + Short: "Print the version number of Hugo", + Long: `All software has versions. This is Hugo's`, + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("Hugo Static Site Generator v0.9 -- HEAD") + }, } ``` -### Attach command to its parent - - -If you notice in the above example we attach the command to its parent. In -this case the parent is the rootCmd. In this example we are attaching it to the -root, but commands can be attached at any level. - -```go -RootCmd.AddCommand(versionCmd) -``` - -### Remove a command from its parent - -Removing a command is not a common action in simple programs, but it allows 3rd -parties to customize an existing command tree. - -In this example, we remove the existing `VersionCmd` command of an existing -root command, and we replace it with our own version: - -```go -mainlib.RootCmd.RemoveCommand(mainlib.VersionCmd) -mainlib.RootCmd.AddCommand(versionCmd) -``` - ## Working with Flags Flags provide modifiers to control how the action command operates. @@ -467,6 +339,19 @@ A flag can also be assigned locally which will only apply to that specific comma RootCmd.Flags().StringVarP(&Source, "source", "s", "", "Source directory to read from") ``` +### Local Flag on Parent Commands + +By default Cobra only parses local flags on the target command, any local flags on +parent commands are ignored. By enabling `Command.TraverseChildren` Cobra will +parse local flags on each command before executing the target command. + +```go +command := cobra.Command{ + Use: "print [OPTIONS] [COMMANDS]", + TraverseChildren: true, +} +``` + ### Bind Flags with Config You can also bind your flags with [viper](https://github.com/spf13/viper): @@ -474,8 +359,8 @@ You can also bind your flags with [viper](https://github.com/spf13/viper): var author string func init() { - RootCmd.PersistentFlags().StringVar(&author, "author", "YOUR NAME", "Author name for copyright attribution") - viper.BindPFlag("author", RootCmd.PersistentFlags().Lookup("author")) + RootCmd.PersistentFlags().StringVar(&author, "author", "YOUR NAME", "Author name for copyright attribution") + viper.BindPFlag("author", RootCmd.PersistentFlags().Lookup("author")) } ``` @@ -485,6 +370,41 @@ when the `--author` flag is not provided by user. More in [viper documentation](https://github.com/spf13/viper#working-with-flags). +## Positional and Custom Arguments + +Validation of positional arguments can be specified using the `Args` field +of `Command`. + +The following validators are built in: + +- `NoArgs` - the command will report an error if there are any positional args. +- `ArbitraryArgs` - the command will accept any args. +- `OnlyValidArgs` - the command will report an error if there are any positional args that are not in the `ValidArgs` field of `Command`. +- `MinimumNArgs(int)` - the command will report an error if there are not at least N positional args. +- `MaximumNArgs(int)` - the command will report an error if there are more than N positional args. +- `ExactArgs(int)` - the command will report an error if there are not exactly N positional args. +- `RangeArgs(min, max)` - the command will report an error if the number of args is not between the minimum and maximum number of expected args. + +An example of setting the custom validator: + +```go +var cmd = &cobra.Command{ + Short: "hello", + Args: func(cmd *cobra.Command, args []string) error { + if len(args) < 1 { + return errors.New("requires at least one arg") + } + if myapp.IsValidColor(args[0]) { + return nil + } + return fmt.Errorf("invalid color specified: %s", args[0]) + }, + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("Hello, World!") + }, +} +``` + ## Example In the example below, we have defined three commands. Two are at the top level @@ -500,62 +420,62 @@ More documentation about flags is available at https://github.com/spf13/pflag package main import ( - "fmt" - "strings" + "fmt" + "strings" - "github.com/spf13/cobra" + "github.com/spf13/cobra" ) func main() { - - var echoTimes int - - var cmdPrint = &cobra.Command{ - Use: "print [string to print]", - Short: "Print anything to the screen", - Long: `print is for printing anything back to the screen. - For many years people have printed back to the screen. - `, - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Print: " + strings.Join(args, " ")) - }, - } - - var cmdEcho = &cobra.Command{ - Use: "echo [string to echo]", - Short: "Echo anything to the screen", - Long: `echo is for echoing anything back. - Echo works a lot like print, except it has a child command. - `, - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("Print: " + strings.Join(args, " ")) - }, - } - - var cmdTimes = &cobra.Command{ - Use: "times [# times] [string to echo]", - Short: "Echo anything to the screen more times", - Long: `echo things multiple times back to the user by providing - a count and a string.`, - Run: func(cmd *cobra.Command, args []string) { - for i := 0; i < echoTimes; i++ { - fmt.Println("Echo: " + strings.Join(args, " ")) - } - }, - } - - cmdTimes.Flags().IntVarP(&echoTimes, "times", "t", 1, "times to echo the input") - - var rootCmd = &cobra.Command{Use: "app"} - rootCmd.AddCommand(cmdPrint, cmdEcho) - cmdEcho.AddCommand(cmdTimes) - rootCmd.Execute() + var echoTimes int + + var cmdPrint = &cobra.Command{ + Use: "print [string to print]", + Short: "Print anything to the screen", + Long: `print is for printing anything back to the screen. +For many years people have printed back to the screen.`, + Args: cobra.MinimumNArgs(1), + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("Print: " + strings.Join(args, " ")) + }, + } + + var cmdEcho = &cobra.Command{ + Use: "echo [string to echo]", + Short: "Echo anything to the screen", + Long: `echo is for echoing anything back. +Echo works a lot like print, except it has a child command.`, + Args: cobra.MinimumNArgs(1), + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("Print: " + strings.Join(args, " ")) + }, + } + + var cmdTimes = &cobra.Command{ + Use: "times [# times] [string to echo]", + Short: "Echo anything to the screen more times", + Long: `echo things multiple times back to the user by providing +a count and a string.`, + Args: cobra.MinimumNArgs(1), + Run: func(cmd *cobra.Command, args []string) { + for i := 0; i < echoTimes; i++ { + fmt.Println("Echo: " + strings.Join(args, " ")) + } + }, + } + + cmdTimes.Flags().IntVarP(&echoTimes, "times", "t", 1, "times to echo the input") + + var rootCmd = &cobra.Command{Use: "app"} + rootCmd.AddCommand(cmdPrint, cmdEcho) + cmdEcho.AddCommand(cmdTimes) + rootCmd.Execute() } ``` For a more complete example of a larger application, please checkout [Hugo](http://gohugo.io/). -## The Help Command +## Help Command Cobra automatically adds a help command to your application when you have subcommands. This will be called when a user runs 'app help'. Additionally, help will also @@ -568,60 +488,28 @@ create' is called. Every command will automatically have the '--help' flag adde The following output is automatically generated by Cobra. Nothing beyond the command and flag definitions are needed. - > hugo help + $ cobra help - hugo is the main command, used to build your Hugo site. - - Hugo is a Fast and Flexible Static Site Generator - built with love by spf13 and friends in Go. - - Complete documentation is available at http://gohugo.io/. + Cobra is a CLI library for Go that empowers applications. + This application is a tool to generate the needed files + to quickly create a Cobra application. Usage: - hugo [flags] - hugo [command] + cobra [command] Available Commands: - server Hugo runs its own webserver to render the files - version Print the version number of Hugo - config Print the site configuration - check Check content in the source directory - benchmark Benchmark hugo by building a site a number of times. - convert Convert your content to different formats - new Create new content for your site - list Listing out various types of content - undraft Undraft changes the content's draft status from 'True' to 'False' - genautocomplete Generate shell autocompletion script for Hugo - gendoc Generate Markdown documentation for the Hugo CLI. - genman Generate man page for Hugo - import Import your site from others. + add Add a command to a Cobra Application + help Help about any command + init Initialize a Cobra Application Flags: - -b, --baseURL="": hostname (and path) to the root, e.g. http://spf13.com/ - -D, --buildDrafts[=false]: include content marked as draft - -F, --buildFuture[=false]: include content with publishdate in the future - --cacheDir="": filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/ - --canonifyURLs[=false]: if true, all relative URLs will be canonicalized using baseURL - --config="": config file (default is path/config.yaml|json|toml) - -d, --destination="": filesystem path to write files to - --disableRSS[=false]: Do not build RSS files - --disableSitemap[=false]: Do not build Sitemap file - --editor="": edit new content with this editor, if provided - --ignoreCache[=false]: Ignores the cache directory for reading but still writes to it - --log[=false]: Enable Logging - --logFile="": Log File path (if set, logging enabled automatically) - --noTimes[=false]: Don't sync modification time of files - --pluralizeListTitles[=true]: Pluralize titles in lists using inflect - --preserveTaxonomyNames[=false]: Preserve taxonomy names as written ("Gérard Depardieu" vs "gerard-depardieu") - -s, --source="": filesystem path to read files relative from - --stepAnalysis[=false]: display memory and timing of different steps of the program - -t, --theme="": theme to use (located in /themes/THEMENAME/) - --uglyURLs[=false]: if true, use /filename.html instead of /filename/ - -v, --verbose[=false]: verbose output - --verboseLog[=false]: verbose logging - -w, --watch[=false]: watch filesystem for changes and recreate as needed - - Use "hugo [command] --help" for more information about a command. + -a, --author string author name for copyright attribution (default "YOUR NAME") + --config string config file (default is $HOME/.cobra.yaml) + -h, --help help for cobra + -l, --license string name of license for the project + --viper use Viper for configuration (default true) + + Use "cobra [command] --help" for more information about a command. Help is just a command like any other. There is no special logic or behavior @@ -629,38 +517,18 @@ around it. In fact, you can provide your own if you want. ### Defining your own help -You can provide your own Help command or your own template for the default command to use. - -The default help command is +You can provide your own Help command or your own template for the default command to use +with followind functions: ```go -func (c *Command) initHelp() { - if c.helpCommand == nil { - c.helpCommand = &Command{ - Use: "help [command]", - Short: "Help about any command", - Long: `Help provides help for any command in the application. - Simply type ` + c.Name() + ` help [path to command] for full details.`, - Run: c.HelpFunc(), - } - } - c.AddCommand(c.helpCommand) -} -``` - -You can provide your own command, function or template through the following methods: - -```go -command.SetHelpCommand(cmd *Command) - -command.SetHelpFunc(f func(*Command, []string)) - -command.SetHelpTemplate(s string) +cmd.SetHelpCommand(cmd *Command) +cmd.SetHelpFunc(f func(*Command, []string)) +cmd.SetHelpTemplate(s string) ``` The latter two will also apply to any children commands. -## Usage +## Usage Message When the user provides an invalid flag or invalid command, Cobra responds by showing the user the 'usage'. @@ -669,71 +537,35 @@ showing the user the 'usage'. You may recognize this from the help above. That's because the default help embeds the usage as part of its output. + $ cobra --invalid + Error: unknown flag: --invalid Usage: - hugo [flags] - hugo [command] + cobra [command] Available Commands: - server Hugo runs its own webserver to render the files - version Print the version number of Hugo - config Print the site configuration - check Check content in the source directory - benchmark Benchmark hugo by building a site a number of times. - convert Convert your content to different formats - new Create new content for your site - list Listing out various types of content - undraft Undraft changes the content's draft status from 'True' to 'False' - genautocomplete Generate shell autocompletion script for Hugo - gendoc Generate Markdown documentation for the Hugo CLI. - genman Generate man page for Hugo - import Import your site from others. + add Add a command to a Cobra Application + help Help about any command + init Initialize a Cobra Application Flags: - -b, --baseURL="": hostname (and path) to the root, e.g. http://spf13.com/ - -D, --buildDrafts[=false]: include content marked as draft - -F, --buildFuture[=false]: include content with publishdate in the future - --cacheDir="": filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/ - --canonifyURLs[=false]: if true, all relative URLs will be canonicalized using baseURL - --config="": config file (default is path/config.yaml|json|toml) - -d, --destination="": filesystem path to write files to - --disableRSS[=false]: Do not build RSS files - --disableSitemap[=false]: Do not build Sitemap file - --editor="": edit new content with this editor, if provided - --ignoreCache[=false]: Ignores the cache directory for reading but still writes to it - --log[=false]: Enable Logging - --logFile="": Log File path (if set, logging enabled automatically) - --noTimes[=false]: Don't sync modification time of files - --pluralizeListTitles[=true]: Pluralize titles in lists using inflect - --preserveTaxonomyNames[=false]: Preserve taxonomy names as written ("Gérard Depardieu" vs "gerard-depardieu") - -s, --source="": filesystem path to read files relative from - --stepAnalysis[=false]: display memory and timing of different steps of the program - -t, --theme="": theme to use (located in /themes/THEMENAME/) - --uglyURLs[=false]: if true, use /filename.html instead of /filename/ - -v, --verbose[=false]: verbose output - --verboseLog[=false]: verbose logging - -w, --watch[=false]: watch filesystem for changes and recreate as needed + -a, --author string author name for copyright attribution (default "YOUR NAME") + --config string config file (default is $HOME/.cobra.yaml) + -h, --help help for cobra + -l, --license string name of license for the project + --viper use Viper for configuration (default true) + + Use "cobra [command] --help" for more information about a command. ### Defining your own usage You can provide your own usage function or template for Cobra to use. - -The default usage function is: - -```go -return func(c *Command) error { - err := tmpl(c.Out(), c.UsageTemplate(), c) - return err -} -``` - Like help, the function and template are overridable through public methods: ```go -command.SetUsageFunc(f func(*Command) error) - -command.SetUsageTemplate(s string) +cmd.SetUsageFunc(f func(*Command) error) +cmd.SetUsageTemplate(s string) ``` -## PreRun or PostRun Hooks +## PreRun and PostRun Hooks It is possible to run functions before or after the main `Run` function of your command. The `PersistentPreRun` and `PreRun` functions will be executed before `Run`. `PersistentPostRun` and `PostRun` will be executed after `Run`. The `Persistent*Run` functions will be inherited by children if they do not declare their own. These functions are run in the following order: @@ -749,105 +581,73 @@ An example of two commands which use all of these features is below. When the s package main import ( - "fmt" + "fmt" - "github.com/spf13/cobra" + "github.com/spf13/cobra" ) func main() { - var rootCmd = &cobra.Command{ - Use: "root [sub]", - Short: "My root command", - PersistentPreRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PersistentPreRun with args: %v\n", args) - }, - PreRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PreRun with args: %v\n", args) - }, - Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd Run with args: %v\n", args) - }, - PostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PostRun with args: %v\n", args) - }, - PersistentPostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside rootCmd PersistentPostRun with args: %v\n", args) - }, - } - - var subCmd = &cobra.Command{ - Use: "sub [no options!]", - Short: "My subcommand", - PreRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd PreRun with args: %v\n", args) - }, - Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd Run with args: %v\n", args) - }, - PostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd PostRun with args: %v\n", args) - }, - PersistentPostRun: func(cmd *cobra.Command, args []string) { - fmt.Printf("Inside subCmd PersistentPostRun with args: %v\n", args) - }, - } - - rootCmd.AddCommand(subCmd) - - rootCmd.SetArgs([]string{""}) - _ = rootCmd.Execute() - fmt.Print("\n") - rootCmd.SetArgs([]string{"sub", "arg1", "arg2"}) - _ = rootCmd.Execute() + var rootCmd = &cobra.Command{ + Use: "root [sub]", + Short: "My root command", + PersistentPreRun: func(cmd *cobra.Command, args []string) { + fmt.Printf("Inside rootCmd PersistentPreRun with args: %v\n", args) + }, + PreRun: func(cmd *cobra.Command, args []string) { + fmt.Printf("Inside rootCmd PreRun with args: %v\n", args) + }, + Run: func(cmd *cobra.Command, args []string) { + fmt.Printf("Inside rootCmd Run with args: %v\n", args) + }, + PostRun: func(cmd *cobra.Command, args []string) { + fmt.Printf("Inside rootCmd PostRun with args: %v\n", args) + }, + PersistentPostRun: func(cmd *cobra.Command, args []string) { + fmt.Printf("Inside rootCmd PersistentPostRun with args: %v\n", args) + }, + } + + var subCmd = &cobra.Command{ + Use: "sub [no options!]", + Short: "My subcommand", + PreRun: func(cmd *cobra.Command, args []string) { + fmt.Printf("Inside subCmd PreRun with args: %v\n", args) + }, + Run: func(cmd *cobra.Command, args []string) { + fmt.Printf("Inside subCmd Run with args: %v\n", args) + }, + PostRun: func(cmd *cobra.Command, args []string) { + fmt.Printf("Inside subCmd PostRun with args: %v\n", args) + }, + PersistentPostRun: func(cmd *cobra.Command, args []string) { + fmt.Printf("Inside subCmd PersistentPostRun with args: %v\n", args) + }, + } + + rootCmd.AddCommand(subCmd) + + rootCmd.SetArgs([]string{""}) + rootCmd.Execute() + fmt.Println() + rootCmd.SetArgs([]string{"sub", "arg1", "arg2"}) + rootCmd.Execute() } ``` +Output: +``` +Inside rootCmd PersistentPreRun with args: [] +Inside rootCmd PreRun with args: [] +Inside rootCmd Run with args: [] +Inside rootCmd PostRun with args: [] +Inside rootCmd PersistentPostRun with args: [] -## Alternative Error Handling - -Cobra also has functions where the return signature is an error. This allows for errors to bubble up to the top, -providing a way to handle the errors in one location. The current list of functions that return an error is: - -* PersistentPreRunE -* PreRunE -* RunE -* PostRunE -* PersistentPostRunE - -If you would like to silence the default `error` and `usage` output in favor of your own, you can set `SilenceUsage` -and `SilenceErrors` to `true` on the command. A child command respects these flags if they are set on the parent -command. - -**Example Usage using RunE:** - -```go -package main - -import ( - "errors" - "log" - - "github.com/spf13/cobra" -) - -func main() { - var rootCmd = &cobra.Command{ - Use: "hugo", - Short: "Hugo is a very fast static site generator", - Long: `A Fast and Flexible Static Site Generator built with - love by spf13 and friends in Go. - Complete documentation is available at http://hugo.spf13.com`, - RunE: func(cmd *cobra.Command, args []string) error { - // Do Stuff Here - return errors.New("some random error") - }, - } - - if err := rootCmd.Execute(); err != nil { - log.Fatal(err) - } -} +Inside rootCmd PersistentPreRun with args: [arg1 arg2] +Inside subCmd PreRun with args: [arg1 arg2] +Inside subCmd Run with args: [arg1 arg2] +Inside subCmd PostRun with args: [arg1 arg2] +Inside subCmd PersistentPostRun with args: [arg1 arg2] ``` ## Suggestions when "unknown command" happens @@ -890,51 +690,28 @@ Did you mean this? Run 'kubectl help' for usage. ``` -## Generating Markdown-formatted documentation for your command +## Generating documentation for your command -Cobra can generate a Markdown-formatted document based on the subcommands, flags, etc. A simple example of how to do this for your command can be found in [Markdown Docs](doc/md_docs.md). +Cobra can generate documentation based on subcommands, flags, etc. in the following formats: -## Generating man pages for your command +- [Markdown](doc/md_docs.md) +- [ReStructured Text](doc/rest_docs.md) +- [Man Page](doc/man_docs.md) -Cobra can generate a man page based on the subcommands, flags, etc. A simple example of how to do this for your command can be found in [Man Docs](doc/man_docs.md). - -## Generating bash completions for your command +## Generating bash completions Cobra can generate a bash-completion file. If you add more information to your command, these completions can be amazingly powerful and flexible. Read more about it in [Bash Completions](bash_completions.md). -## Debugging - -Cobra provides a ‘DebugFlags’ method on a command which, when called, will print -out everything Cobra knows about the flags for each command. - -### Example - -```go -command.DebugFlags() -``` - -## Extensions - -Libraries for extending Cobra: - -* [cmdns](https://github.com/gosuri/cmdns): Enables name spacing a command's immediate children. It provides an alternative way to structure subcommands, similar to `heroku apps:create` and `ovrclk clusters:launch`. - -## Contributing +# Contributing 1. Fork it -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Commit your changes (`git commit -am 'Add some feature'`) -4. Push to the branch (`git push origin my-new-feature`) -5. Create new Pull Request - -## Contributors - -Names in no particular order: - -* [spf13](https://github.com/spf13), -[eparis](https://github.com/eparis), -[bep](https://github.com/bep), and many more! - -## License +2. Download your fork to your PC (`git clone https://github.com/your_username/cobra && cd cobra`) +3. Create your feature branch (`git checkout -b my-new-feature`) +4. Make changes and add them (`git add .`) +5. Commit your changes (`git commit -m 'Add some feature'`) +6. Push to the branch (`git push origin my-new-feature`) +7. Create new pull request + +# License Cobra is released under the Apache 2.0 license. See [LICENSE.txt](https://github.com/spf13/cobra/blob/master/LICENSE.txt) diff --git a/vendor/github.com/spf13/cobra/args.go b/vendor/github.com/spf13/cobra/args.go new file mode 100644 index 000000000..a5d8a9273 --- /dev/null +++ b/vendor/github.com/spf13/cobra/args.go @@ -0,0 +1,89 @@ +package cobra + +import ( + "fmt" +) + +type PositionalArgs func(cmd *Command, args []string) error + +// Legacy arg validation has the following behaviour: +// - root commands with no subcommands can take arbitrary arguments +// - root commands with subcommands will do subcommand validity checking +// - subcommands will always accept arbitrary arguments +func legacyArgs(cmd *Command, args []string) error { + // no subcommand, always take args + if !cmd.HasSubCommands() { + return nil + } + + // root command with subcommands, do subcommand checking. + if !cmd.HasParent() && len(args) > 0 { + return fmt.Errorf("unknown command %q for %q%s", args[0], cmd.CommandPath(), cmd.findSuggestions(args[0])) + } + return nil +} + +// NoArgs returns an error if any args are included. +func NoArgs(cmd *Command, args []string) error { + if len(args) > 0 { + return fmt.Errorf("unknown command %q for %q", args[0], cmd.CommandPath()) + } + return nil +} + +// OnlyValidArgs returns an error if any args are not in the list of ValidArgs. +func OnlyValidArgs(cmd *Command, args []string) error { + if len(cmd.ValidArgs) > 0 { + for _, v := range args { + if !stringInSlice(v, cmd.ValidArgs) { + return fmt.Errorf("invalid argument %q for %q%s", v, cmd.CommandPath(), cmd.findSuggestions(args[0])) + } + } + } + return nil +} + +// ArbitraryArgs never returns an error. +func ArbitraryArgs(cmd *Command, args []string) error { + return nil +} + +// MinimumNArgs returns an error if there is not at least N args. +func MinimumNArgs(n int) PositionalArgs { + return func(cmd *Command, args []string) error { + if len(args) < n { + return fmt.Errorf("requires at least %d arg(s), only received %d", n, len(args)) + } + return nil + } +} + +// MaximumNArgs returns an error if there are more than N args. +func MaximumNArgs(n int) PositionalArgs { + return func(cmd *Command, args []string) error { + if len(args) > n { + return fmt.Errorf("accepts at most %d arg(s), received %d", n, len(args)) + } + return nil + } +} + +// ExactArgs returns an error if there are not exactly n args. +func ExactArgs(n int) PositionalArgs { + return func(cmd *Command, args []string) error { + if len(args) != n { + return fmt.Errorf("accepts %d arg(s), received %d", n, len(args)) + } + return nil + } +} + +// RangeArgs returns an error if the number of args is not within the expected range. +func RangeArgs(min int, max int) PositionalArgs { + return func(cmd *Command, args []string) error { + if len(args) < min || len(args) > max { + return fmt.Errorf("accepts between %d and %d arg(s), received %d", min, max, len(args)) + } + return nil + } +} diff --git a/vendor/github.com/spf13/cobra/args_test.go b/vendor/github.com/spf13/cobra/args_test.go new file mode 100644 index 000000000..d797b6f58 --- /dev/null +++ b/vendor/github.com/spf13/cobra/args_test.go @@ -0,0 +1,241 @@ +package cobra + +import ( + "strings" + "testing" +) + +func TestNoArgs(t *testing.T) { + c := &Command{Use: "c", Args: NoArgs, Run: emptyRun} + + output, err := executeCommand(c) + if output != "" { + t.Errorf("Unexpected string: %v", output) + } + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } +} + +func TestNoArgsWithArgs(t *testing.T) { + c := &Command{Use: "c", Args: NoArgs, Run: emptyRun} + + _, err := executeCommand(c, "illegal") + if err == nil { + t.Fatal("Expected an error") + } + + got := err.Error() + expected := `unknown command "illegal" for "c"` + if got != expected { + t.Errorf("Expected: %q, got: %q", expected, got) + } +} + +func TestOnlyValidArgs(t *testing.T) { + c := &Command{ + Use: "c", + Args: OnlyValidArgs, + ValidArgs: []string{"one", "two"}, + Run: emptyRun, + } + + output, err := executeCommand(c, "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } +} + +func TestOnlyValidArgsWithInvalidArgs(t *testing.T) { + c := &Command{ + Use: "c", + Args: OnlyValidArgs, + ValidArgs: []string{"one", "two"}, + Run: emptyRun, + } + + _, err := executeCommand(c, "three") + if err == nil { + t.Fatal("Expected an error") + } + + got := err.Error() + expected := `invalid argument "three" for "c"` + if got != expected { + t.Errorf("Expected: %q, got: %q", expected, got) + } +} + +func TestArbitraryArgs(t *testing.T) { + c := &Command{Use: "c", Args: ArbitraryArgs, Run: emptyRun} + output, err := executeCommand(c, "a", "b") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } +} + +func TestMinimumNArgs(t *testing.T) { + c := &Command{Use: "c", Args: MinimumNArgs(2), Run: emptyRun} + output, err := executeCommand(c, "a", "b", "c") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } +} + +func TestMinimumNArgsWithLessArgs(t *testing.T) { + c := &Command{Use: "c", Args: MinimumNArgs(2), Run: emptyRun} + _, err := executeCommand(c, "a") + + if err == nil { + t.Fatal("Expected an error") + } + + got := err.Error() + expected := "requires at least 2 arg(s), only received 1" + if got != expected { + t.Fatalf("Expected %q, got %q", expected, got) + } +} + +func TestMaximumNArgs(t *testing.T) { + c := &Command{Use: "c", Args: MaximumNArgs(3), Run: emptyRun} + output, err := executeCommand(c, "a", "b") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } +} + +func TestMaximumNArgsWithMoreArgs(t *testing.T) { + c := &Command{Use: "c", Args: MaximumNArgs(2), Run: emptyRun} + _, err := executeCommand(c, "a", "b", "c") + + if err == nil { + t.Fatal("Expected an error") + } + + got := err.Error() + expected := "accepts at most 2 arg(s), received 3" + if got != expected { + t.Fatalf("Expected %q, got %q", expected, got) + } +} + +func TestExactArgs(t *testing.T) { + c := &Command{Use: "c", Args: ExactArgs(3), Run: emptyRun} + output, err := executeCommand(c, "a", "b", "c") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } +} + +func TestExactArgsWithInvalidCount(t *testing.T) { + c := &Command{Use: "c", Args: ExactArgs(2), Run: emptyRun} + _, err := executeCommand(c, "a", "b", "c") + + if err == nil { + t.Fatal("Expected an error") + } + + got := err.Error() + expected := "accepts 2 arg(s), received 3" + if got != expected { + t.Fatalf("Expected %q, got %q", expected, got) + } +} + +func TestRangeArgs(t *testing.T) { + c := &Command{Use: "c", Args: RangeArgs(2, 4), Run: emptyRun} + output, err := executeCommand(c, "a", "b", "c") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } +} + +func TestRangeArgsWithInvalidCount(t *testing.T) { + c := &Command{Use: "c", Args: RangeArgs(2, 4), Run: emptyRun} + _, err := executeCommand(c, "a") + + if err == nil { + t.Fatal("Expected an error") + } + + got := err.Error() + expected := "accepts between 2 and 4 arg(s), received 1" + if got != expected { + t.Fatalf("Expected %q, got %q", expected, got) + } +} + +func TestRootTakesNoArgs(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Run: emptyRun} + rootCmd.AddCommand(childCmd) + + _, err := executeCommand(rootCmd, "illegal", "args") + if err == nil { + t.Fatal("Expected an error") + } + + got := err.Error() + expected := `unknown command "illegal" for "root"` + if !strings.Contains(got, expected) { + t.Errorf("expected %q, got %q", expected, got) + } +} + +func TestRootTakesArgs(t *testing.T) { + rootCmd := &Command{Use: "root", Args: ArbitraryArgs, Run: emptyRun} + childCmd := &Command{Use: "child", Run: emptyRun} + rootCmd.AddCommand(childCmd) + + _, err := executeCommand(rootCmd, "legal", "args") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } +} + +func TestChildTakesNoArgs(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Args: NoArgs, Run: emptyRun} + rootCmd.AddCommand(childCmd) + + _, err := executeCommand(rootCmd, "child", "illegal", "args") + if err == nil { + t.Fatal("Expected an error") + } + + got := err.Error() + expected := `unknown command "illegal" for "root child"` + if !strings.Contains(got, expected) { + t.Errorf("expected %q, got %q", expected, got) + } +} + +func TestChildTakesArgs(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Args: ArbitraryArgs, Run: emptyRun} + rootCmd.AddCommand(childCmd) + + _, err := executeCommand(rootCmd, "child", "legal", "args") + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } +} diff --git a/vendor/github.com/spf13/cobra/bash_completions.go b/vendor/github.com/spf13/cobra/bash_completions.go index e0cfb3494..c19fe7a06 100644 --- a/vendor/github.com/spf13/cobra/bash_completions.go +++ b/vendor/github.com/spf13/cobra/bash_completions.go @@ -92,7 +92,7 @@ __handle_reply() cur="${cur#*=}" ${flags_completion[${index}]} if [ -n "${ZSH_VERSION}" ]; then - # zfs completion needs --flag= prefix + # zsh completion needs --flag= prefix eval "COMPREPLY=( \"\${COMPREPLY[@]/#/${flag}=}\" )" fi fi @@ -463,14 +463,14 @@ func gen(buf *bytes.Buffer, cmd *Command) { } // GenBashCompletion generates bash completion file and writes to the passed writer. -func (cmd *Command) GenBashCompletion(w io.Writer) error { +func (c *Command) GenBashCompletion(w io.Writer) error { buf := new(bytes.Buffer) - writePreamble(buf, cmd.Name()) - if len(cmd.BashCompletionFunction) > 0 { - buf.WriteString(cmd.BashCompletionFunction + "\n") + writePreamble(buf, c.Name()) + if len(c.BashCompletionFunction) > 0 { + buf.WriteString(c.BashCompletionFunction + "\n") } - gen(buf, cmd) - writePostscript(buf, cmd.Name()) + gen(buf, c) + writePostscript(buf, c.Name()) _, err := buf.WriteTo(w) return err @@ -481,24 +481,24 @@ func nonCompletableFlag(flag *pflag.Flag) bool { } // GenBashCompletionFile generates bash completion file. -func (cmd *Command) GenBashCompletionFile(filename string) error { +func (c *Command) GenBashCompletionFile(filename string) error { outFile, err := os.Create(filename) if err != nil { return err } defer outFile.Close() - return cmd.GenBashCompletion(outFile) + return c.GenBashCompletion(outFile) } // MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag, if it exists. -func (cmd *Command) MarkFlagRequired(name string) error { - return MarkFlagRequired(cmd.Flags(), name) +func (c *Command) MarkFlagRequired(name string) error { + return MarkFlagRequired(c.Flags(), name) } // MarkPersistentFlagRequired adds the BashCompOneRequiredFlag annotation to the named persistent flag, if it exists. -func (cmd *Command) MarkPersistentFlagRequired(name string) error { - return MarkFlagRequired(cmd.PersistentFlags(), name) +func (c *Command) MarkPersistentFlagRequired(name string) error { + return MarkFlagRequired(c.PersistentFlags(), name) } // MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag in the flag set, if it exists. @@ -508,20 +508,20 @@ func MarkFlagRequired(flags *pflag.FlagSet, name string) error { // MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag, if it exists. // Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided. -func (cmd *Command) MarkFlagFilename(name string, extensions ...string) error { - return MarkFlagFilename(cmd.Flags(), name, extensions...) +func (c *Command) MarkFlagFilename(name string, extensions ...string) error { + return MarkFlagFilename(c.Flags(), name, extensions...) } // MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists. // Generated bash autocompletion will call the bash function f for the flag. -func (cmd *Command) MarkFlagCustom(name string, f string) error { - return MarkFlagCustom(cmd.Flags(), name, f) +func (c *Command) MarkFlagCustom(name string, f string) error { + return MarkFlagCustom(c.Flags(), name, f) } // MarkPersistentFlagFilename adds the BashCompFilenameExt annotation to the named persistent flag, if it exists. // Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided. -func (cmd *Command) MarkPersistentFlagFilename(name string, extensions ...string) error { - return MarkFlagFilename(cmd.PersistentFlags(), name, extensions...) +func (c *Command) MarkPersistentFlagFilename(name string, extensions ...string) error { + return MarkFlagFilename(c.PersistentFlags(), name, extensions...) } // MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag in the flag set, if it exists. diff --git a/vendor/github.com/spf13/cobra/bash_completions_test.go b/vendor/github.com/spf13/cobra/bash_completions_test.go index 7511376ae..a0da87148 100644 --- a/vendor/github.com/spf13/cobra/bash_completions_test.go +++ b/vendor/github.com/spf13/cobra/bash_completions_test.go @@ -10,13 +10,13 @@ import ( func checkOmit(t *testing.T, found, unexpected string) { if strings.Contains(found, unexpected) { - t.Errorf("Unexpected response.\nGot: %q\nBut should not have!\n", unexpected) + t.Errorf("Got: %q\nBut should not have!\n", unexpected) } } func check(t *testing.T, found, expected string) { if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) + t.Errorf("Expecting to contain: \n %q\nGot:\n %q\n", expected, found) } } @@ -33,160 +33,164 @@ func runShellCheck(s string) error { return err } go func() { - defer stdin.Close() stdin.Write([]byte(s)) + stdin.Close() }() return cmd.Run() } // World worst custom function, just keep telling you to enter hello! -const ( - bashCompletionFunc = `__custom_func() { -COMPREPLY=( "hello" ) +const bashCompletionFunc = `__custom_func() { + COMPREPLY=( "hello" ) } ` -) func TestBashCompletions(t *testing.T) { - c := initializeWithRootCmd() - cmdEcho.AddCommand(cmdTimes) - c.AddCommand(cmdEcho, cmdPrint, cmdDeprecated, cmdColon) - - // custom completion function - c.BashCompletionFunction = bashCompletionFunc - - // required flag - c.MarkFlagRequired("introot") - - // valid nouns - validArgs := []string{"pod", "node", "service", "replicationcontroller"} - c.ValidArgs = validArgs - - // noun aliases - argAliases := []string{"pods", "nodes", "services", "replicationcontrollers", "po", "no", "svc", "rc"} - c.ArgAliases = argAliases - - // filename - var flagval string - c.Flags().StringVar(&flagval, "filename", "", "Enter a filename") - c.MarkFlagFilename("filename", "json", "yaml", "yml") - - // persistent filename - var flagvalPersistent string - c.PersistentFlags().StringVar(&flagvalPersistent, "persistent-filename", "", "Enter a filename") - c.MarkPersistentFlagFilename("persistent-filename") - c.MarkPersistentFlagRequired("persistent-filename") - - // filename extensions - var flagvalExt string - c.Flags().StringVar(&flagvalExt, "filename-ext", "", "Enter a filename (extension limited)") - c.MarkFlagFilename("filename-ext") - - // filename extensions - var flagvalCustom string - c.Flags().StringVar(&flagvalCustom, "custom", "", "Enter a filename (extension limited)") - c.MarkFlagCustom("custom", "__complete_custom") - - // subdirectories in a given directory - var flagvalTheme string - c.Flags().StringVar(&flagvalTheme, "theme", "", "theme to use (located in /themes/THEMENAME/)") - c.Flags().SetAnnotation("theme", BashCompSubdirsInDir, []string{"themes"}) - - out := new(bytes.Buffer) - c.GenBashCompletion(out) - str := out.String() - - check(t, str, "_cobra-test") - check(t, str, "_cobra-test_echo") - check(t, str, "_cobra-test_echo_times") - check(t, str, "_cobra-test_print") - check(t, str, "_cobra-test_cmd__colon") + rootCmd := &Command{ + Use: "root", + ArgAliases: []string{"pods", "nodes", "services", "replicationcontrollers", "po", "no", "svc", "rc"}, + ValidArgs: []string{"pod", "node", "service", "replicationcontroller"}, + BashCompletionFunction: bashCompletionFunc, + Run: emptyRun, + } + rootCmd.Flags().IntP("introot", "i", -1, "help message for flag introot") + rootCmd.MarkFlagRequired("introot") + + // Filename. + rootCmd.Flags().String("filename", "", "Enter a filename") + rootCmd.MarkFlagFilename("filename", "json", "yaml", "yml") + + // Persistent filename. + rootCmd.PersistentFlags().String("persistent-filename", "", "Enter a filename") + rootCmd.MarkPersistentFlagFilename("persistent-filename") + rootCmd.MarkPersistentFlagRequired("persistent-filename") + + // Filename extensions. + rootCmd.Flags().String("filename-ext", "", "Enter a filename (extension limited)") + rootCmd.MarkFlagFilename("filename-ext") + rootCmd.Flags().String("custom", "", "Enter a filename (extension limited)") + rootCmd.MarkFlagCustom("custom", "__complete_custom") + + // Subdirectories in a given directory. + rootCmd.Flags().String("theme", "", "theme to use (located in /themes/THEMENAME/)") + rootCmd.Flags().SetAnnotation("theme", BashCompSubdirsInDir, []string{"themes"}) + + echoCmd := &Command{ + Use: "echo [string to echo]", + Aliases: []string{"say"}, + Short: "Echo anything to the screen", + Long: "an utterly useless command for testing.", + Example: "Just run cobra-test echo", + Run: emptyRun, + } + + printCmd := &Command{ + Use: "print [string to print]", + Args: MinimumNArgs(1), + Short: "Print anything to the screen", + Long: "an absolutely utterly useless command for testing.", + Run: emptyRun, + } + + deprecatedCmd := &Command{ + Use: "deprecated [can't do anything here]", + Args: NoArgs, + Short: "A command which is deprecated", + Long: "an absolutely utterly useless command for testing deprecation!.", + Deprecated: "Please use echo instead", + Run: emptyRun, + } + + colonCmd := &Command{ + Use: "cmd:colon", + Run: emptyRun, + } + + timesCmd := &Command{ + Use: "times [# times] [string to echo]", + SuggestFor: []string{"counts"}, + Args: OnlyValidArgs, + ValidArgs: []string{"one", "two", "three", "four"}, + Short: "Echo anything to the screen more times", + Long: "a slightly useless command for testing.", + Run: emptyRun, + } + + echoCmd.AddCommand(timesCmd) + rootCmd.AddCommand(echoCmd, printCmd, deprecatedCmd, colonCmd) + + buf := new(bytes.Buffer) + rootCmd.GenBashCompletion(buf) + output := buf.String() + + check(t, output, "_root") + check(t, output, "_root_echo") + check(t, output, "_root_echo_times") + check(t, output, "_root_print") + check(t, output, "_root_cmd__colon") // check for required flags - check(t, str, `must_have_one_flag+=("--introot=")`) - check(t, str, `must_have_one_flag+=("--persistent-filename=")`) + check(t, output, `must_have_one_flag+=("--introot=")`) + check(t, output, `must_have_one_flag+=("--persistent-filename=")`) // check for custom completion function - check(t, str, `COMPREPLY=( "hello" )`) + check(t, output, `COMPREPLY=( "hello" )`) // check for required nouns - check(t, str, `must_have_one_noun+=("pod")`) + check(t, output, `must_have_one_noun+=("pod")`) // check for noun aliases - check(t, str, `noun_aliases+=("pods")`) - check(t, str, `noun_aliases+=("rc")`) - checkOmit(t, str, `must_have_one_noun+=("pods")`) + check(t, output, `noun_aliases+=("pods")`) + check(t, output, `noun_aliases+=("rc")`) + checkOmit(t, output, `must_have_one_noun+=("pods")`) + // check for filename extension flags + check(t, output, `flags_completion+=("_filedir")`) // check for filename extension flags - check(t, str, `flags_completion+=("_filedir")`) + check(t, output, `must_have_one_noun+=("three")`) // check for filename extension flags - check(t, str, `flags_completion+=("__handle_filename_extension_flag json|yaml|yml")`) + check(t, output, `flags_completion+=("__handle_filename_extension_flag json|yaml|yml")`) // check for custom flags - check(t, str, `flags_completion+=("__complete_custom")`) + check(t, output, `flags_completion+=("__complete_custom")`) // check for subdirs_in_dir flags - check(t, str, `flags_completion+=("__handle_subdirs_in_dir_flag themes")`) + check(t, output, `flags_completion+=("__handle_subdirs_in_dir_flag themes")`) - checkOmit(t, str, cmdDeprecated.Name()) + checkOmit(t, output, deprecatedCmd.Name()) - // if available, run shellcheck against the script + // If available, run shellcheck against the script. if err := exec.Command("which", "shellcheck").Run(); err != nil { return } - err := runShellCheck(str) - if err != nil { + if err := runShellCheck(output); err != nil { t.Fatalf("shellcheck failed: %v", err) } } func TestBashCompletionHiddenFlag(t *testing.T) { - var cmdTrue = &Command{ - Use: "does nothing", - Run: func(cmd *Command, args []string) {}, - } + c := &Command{Use: "c", Run: emptyRun} - const flagName = "hidden-foo-bar-baz" + const flagName = "hiddenFlag" + c.Flags().Bool(flagName, false, "") + c.Flags().MarkHidden(flagName) - var flagValue bool - cmdTrue.Flags().BoolVar(&flagValue, flagName, false, "hidden flag") - cmdTrue.Flags().MarkHidden(flagName) + buf := new(bytes.Buffer) + c.GenBashCompletion(buf) + output := buf.String() - out := new(bytes.Buffer) - cmdTrue.GenBashCompletion(out) - bashCompletion := out.String() - if strings.Contains(bashCompletion, flagName) { - t.Errorf("expected completion to not include %q flag: Got %v", flagName, bashCompletion) + if strings.Contains(output, flagName) { + t.Errorf("Expected completion to not include %q flag: Got %v", flagName, output) } } func TestBashCompletionDeprecatedFlag(t *testing.T) { - var cmdTrue = &Command{ - Use: "does nothing", - Run: func(cmd *Command, args []string) {}, - } - - const flagName = "deprecated-foo-bar-baz" - - var flagValue bool - cmdTrue.Flags().BoolVar(&flagValue, flagName, false, "hidden flag") - cmdTrue.Flags().MarkDeprecated(flagName, "use --does-not-exist instead") - - out := new(bytes.Buffer) - cmdTrue.GenBashCompletion(out) - bashCompletion := out.String() - if strings.Contains(bashCompletion, flagName) { - t.Errorf("expected completion to not include %q flag: Got %v", flagName, bashCompletion) - } -} + c := &Command{Use: "c", Run: emptyRun} -func BenchmarkBashCompletion(b *testing.B) { - c := initializeWithRootCmd() - cmdEcho.AddCommand(cmdTimes) - c.AddCommand(cmdEcho, cmdPrint, cmdDeprecated, cmdColon) + const flagName = "deprecated-flag" + c.Flags().Bool(flagName, false, "") + c.Flags().MarkDeprecated(flagName, "use --not-deprecated instead") buf := new(bytes.Buffer) + c.GenBashCompletion(buf) + output := buf.String() - b.ResetTimer() - for i := 0; i < b.N; i++ { - buf.Reset() - if err := c.GenBashCompletion(buf); err != nil { - b.Fatal(err) - } + if strings.Contains(output, flagName) { + t.Errorf("expected completion to not include %q flag: Got %v", flagName, output) } } diff --git a/vendor/github.com/spf13/cobra/cobra.go b/vendor/github.com/spf13/cobra/cobra.go index 8928cefc2..e4b910c5d 100644 --- a/vendor/github.com/spf13/cobra/cobra.go +++ b/vendor/github.com/spf13/cobra/cobra.go @@ -188,3 +188,12 @@ func ld(s, t string, ignoreCase bool) int { } return d[len(s)][len(t)] } + +func stringInSlice(a string, list []string) bool { + for _, b := range list { + if b == a { + return true + } + } + return false +} diff --git a/vendor/github.com/spf13/cobra/cobra/README.md b/vendor/github.com/spf13/cobra/cobra/README.md new file mode 100644 index 000000000..6054f95c5 --- /dev/null +++ b/vendor/github.com/spf13/cobra/cobra/README.md @@ -0,0 +1,94 @@ +# Cobra Generator + +Cobra provides its own program that will create your application and add any +commands you want. It's the easiest way to incorporate Cobra into your application. + +In order to use the cobra command, compile it using the following command: + + go get github.com/spf13/cobra/cobra + +This will create the cobra executable under your `$GOPATH/bin` directory. + +### cobra init + +The `cobra init [app]` command will create your initial application code +for you. It is a very powerful application that will populate your program with +the right structure so you can immediately enjoy all the benefits of Cobra. It +will also automatically apply the license you specify to your application. + +Cobra init is pretty smart. You can provide it a full path, or simply a path +similar to what is expected in the import. + +``` +cobra init github.com/spf13/newApp +``` + +### cobra add + +Once an application is initialized, Cobra can create additional commands for you. +Let's say you created an app and you wanted the following commands for it: + +* app serve +* app config +* app config create + +In your project directory (where your main.go file is) you would run the following: + +``` +cobra add serve +cobra add config +cobra add create -p 'configCmd' +``` + +*Note: Use camelCase (not snake_case/snake-case) for command names. +Otherwise, you will encounter errors. +For example, `cobra add add-user` is incorrect, but `cobra add addUser` is valid.* + +Once you have run these three commands you would have an app structure similar to +the following: + +``` + ▾ app/ + ▾ cmd/ + serve.go + config.go + create.go + main.go +``` + +At this point you can run `go run main.go` and it would run your app. `go run +main.go serve`, `go run main.go config`, `go run main.go config create` along +with `go run main.go help serve`, etc. would all work. + +Obviously you haven't added your own code to these yet. The commands are ready +for you to give them their tasks. Have fun! + +### Configuring the cobra generator + +The Cobra generator will be easier to use if you provide a simple configuration +file which will help you eliminate providing a bunch of repeated information in +flags over and over. + +An example ~/.cobra.yaml file: + +```yaml +author: Steve Francia +license: MIT +``` + +You can specify no license by setting `license` to `none` or you can specify +a custom license: + +```yaml +license: + header: This file is part of {{ .appName }}. + text: | + {{ .copyright }} + + This is my license. There are many like it, but this one is mine. + My license is my best friend. It is my life. I must master it as I must + master my life. +``` + +You can also use built-in licenses. For example, **GPLv2**, **GPLv3**, **LGPL**, +**AGPL**, **MIT**, **2-Clause BSD** or **3-Clause BSD**. diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/add.go b/vendor/github.com/spf13/cobra/cobra/cmd/add.go index 45f00bb54..993ae16f0 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/add.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/add.go @@ -24,7 +24,7 @@ import ( func init() { addCmd.Flags().StringVarP(&packageName, "package", "t", "", "target package name (e.g. github.com/spf13/hugo)") - addCmd.Flags().StringVarP(&parentName, "parent", "p", "RootCmd", "name of parent command for this command") + addCmd.Flags().StringVarP(&parentName, "parent", "p", "RootCmd", "variable name of parent command for this command") } var packageName, parentName string @@ -121,7 +121,7 @@ func validateCmdName(source string) string { func createCmdFile(license License, path, cmdName string) { template := `{{comment .copyright}} -{{comment .license}} +{{if .license}}{{comment .license}}{{end}} package {{.cmdPackage}} diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/add_test.go b/vendor/github.com/spf13/cobra/cobra/cmd/add_test.go index dacbe838a..b920e2b9d 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/add_test.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/add_test.go @@ -6,6 +6,8 @@ import ( "os" "path/filepath" "testing" + + "github.com/spf13/viper" ) // TestGoldenAddCmd initializes the project "github.com/spf13/testproject" @@ -16,10 +18,17 @@ import ( func TestGoldenAddCmd(t *testing.T) { projectName := "github.com/spf13/testproject" project := NewProject(projectName) + defer os.RemoveAll(project.AbsPath()) - // Initialize the project at first. + viper.Set("author", "NAME HERE ") + viper.Set("license", "apache") + viper.Set("year", 2017) + defer viper.Set("author", nil) + defer viper.Set("license", nil) + defer viper.Set("year", nil) + + // Initialize the project first. initializeProject(project) - defer os.RemoveAll(project.AbsPath()) // Then add the "test" command. cmdName := "test" @@ -48,7 +57,7 @@ func TestGoldenAddCmd(t *testing.T) { goldenPath := filepath.Join("testdata", filepath.Base(path)+".golden") switch relPath { - // Know directories. + // Known directories. case ".": return nil // Known files. diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/golden_test.go b/vendor/github.com/spf13/cobra/cobra/cmd/golden_test.go index 0ac7e8935..59a5a1c9f 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/golden_test.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/golden_test.go @@ -39,11 +39,11 @@ func compareFiles(pathA, pathB string) error { // Don't execute diff if it can't be found. return nil } - diffCmd := exec.Command(diffPath, pathA, pathB) + diffCmd := exec.Command(diffPath, "-u", pathA, pathB) diffCmd.Stdout = output diffCmd.Stderr = output - output.WriteString("$ diff " + pathA + " " + pathB + "\n") + output.WriteString("$ diff -u " + pathA + " " + pathB + "\n") if err := diffCmd.Run(); err != nil { output.WriteString("\n" + err.Error()) } diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/helpers.go b/vendor/github.com/spf13/cobra/cobra/cmd/helpers.go index c5e261ce3..e5b37ec72 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/helpers.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/helpers.go @@ -18,6 +18,7 @@ import ( "fmt" "io" "os" + "os/exec" "path/filepath" "strings" "text/template" @@ -31,7 +32,27 @@ func init() { envGoPath := os.Getenv("GOPATH") goPaths := filepath.SplitList(envGoPath) if len(goPaths) == 0 { - er("$GOPATH is not set") + // Adapted from https://github.com/Masterminds/glide/pull/798/files. + // As of Go 1.8 the GOPATH is no longer required to be set. Instead there + // is a default value. If there is no GOPATH check for the default value. + // Note, checking the GOPATH first to avoid invoking the go toolchain if + // possible. + + goExecutable := os.Getenv("COBRA_GO_EXECUTABLE") + if len(goExecutable) <= 0 { + goExecutable = "go" + } + + out, err := exec.Command(goExecutable, "env", "GOPATH").Output() + if err != nil { + er(err) + } + + toolchainGoPath := strings.TrimSpace(string(out)) + goPaths = filepath.SplitList(toolchainGoPath) + if len(goPaths) == 0 { + er("$GOPATH is not set") + } } srcPaths = make([]string, 0, len(goPaths)) for _, goPath := range goPaths { diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/init_test.go b/vendor/github.com/spf13/cobra/cobra/cmd/init_test.go index 9a918b9b4..40eb4038e 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/init_test.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/init_test.go @@ -6,6 +6,8 @@ import ( "os" "path/filepath" "testing" + + "github.com/spf13/viper" ) // TestGoldenInitCmd initializes the project "github.com/spf13/testproject" @@ -17,6 +19,13 @@ func TestGoldenInitCmd(t *testing.T) { project := NewProject(projectName) defer os.RemoveAll(project.AbsPath()) + viper.Set("author", "NAME HERE ") + viper.Set("license", "apache") + viper.Set("year", 2017) + defer viper.Set("author", nil) + defer viper.Set("license", nil) + defer viper.Set("year", nil) + os.Args = []string{"cobra", "init", projectName} if err := rootCmd.Execute(); err != nil { t.Fatal("Error by execution:", err) @@ -44,7 +53,7 @@ func TestGoldenInitCmd(t *testing.T) { goldenPath := filepath.Join("testdata", filepath.Base(path)+".golden") switch relPath { - // Know directories. + // Known directories. case ".", "cmd": return nil // Known files. diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/license_agpl.go b/vendor/github.com/spf13/cobra/cobra/cmd/license_agpl.go index 4ea036ede..bc22e9732 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/license_agpl.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/license_agpl.go @@ -4,8 +4,7 @@ func initAgpl() { Licenses["agpl"] = License{ Name: "GNU Affero General Public License", PossibleMatches: []string{"agpl", "affero gpl", "gnu agpl"}, - Header: `{{.copyright}} - + Header: ` This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/license_apache_2.go b/vendor/github.com/spf13/cobra/cobra/cmd/license_apache_2.go index 3f330867d..38393d541 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/license_apache_2.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/license_apache_2.go @@ -19,7 +19,8 @@ func initApache2() { Licenses["apache"] = License{ Name: "Apache 2.0", PossibleMatches: []string{"apache", "apache20", "apache 2.0", "apache2.0", "apache-2.0"}, - Header: `Licensed under the Apache License, Version 2.0 (the "License"); + Header: ` +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 diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/license_bsd_clause_2.go b/vendor/github.com/spf13/cobra/cobra/cmd/license_bsd_clause_2.go index f2982dab3..4a847e04a 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/license_bsd_clause_2.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/license_bsd_clause_2.go @@ -20,8 +20,7 @@ func initBsdClause2() { Name: "Simplified BSD License", PossibleMatches: []string{"freebsd", "simpbsd", "simple bsd", "2-clause bsd", "2 clause bsd", "simplified bsd license"}, - Header: ` -All rights reserved. + Header: `All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/license_bsd_clause_3.go b/vendor/github.com/spf13/cobra/cobra/cmd/license_bsd_clause_3.go index 39c9571f2..c7476b31f 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/license_bsd_clause_3.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/license_bsd_clause_3.go @@ -19,8 +19,7 @@ func initBsdClause3() { Licenses["bsd"] = License{ Name: "NewBSD", PossibleMatches: []string{"bsd", "newbsd", "3 clause bsd", "3-clause bsd"}, - Header: ` -All rights reserved. + Header: `All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/license_gpl_2.go b/vendor/github.com/spf13/cobra/cobra/cmd/license_gpl_2.go index 054b470f1..03e05b3a7 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/license_gpl_2.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/license_gpl_2.go @@ -19,20 +19,19 @@ func initGpl2() { Licenses["gpl2"] = License{ Name: "GNU General Public License 2.0", PossibleMatches: []string{"gpl2", "gnu gpl2", "gplv2"}, - Header: `{{.copyright}} - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see .`, + Header: ` +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program. If not, see .`, Text: ` GNU GENERAL PUBLIC LICENSE Version 2, June 1991 diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/license_gpl_3.go b/vendor/github.com/spf13/cobra/cobra/cmd/license_gpl_3.go index d1ef656a7..ce07679c7 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/license_gpl_3.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/license_gpl_3.go @@ -19,8 +19,7 @@ func initGpl3() { Licenses["gpl3"] = License{ Name: "GNU General Public License 3.0", PossibleMatches: []string{"gpl3", "gplv3", "gpl", "gnu gpl3", "gnu gpl"}, - Header: `{{.copyright}} - + Header: ` This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/license_lgpl.go b/vendor/github.com/spf13/cobra/cobra/cmd/license_lgpl.go index 75fd043b8..0f8b96cad 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/license_lgpl.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/license_lgpl.go @@ -4,8 +4,7 @@ func initLgpl() { Licenses["lgpl"] = License{ Name: "GNU Lesser General Public License", PossibleMatches: []string{"lgpl", "lesser gpl", "gnu lgpl"}, - Header: `{{.copyright}} - + Header: ` This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/license_mit.go b/vendor/github.com/spf13/cobra/cobra/cmd/license_mit.go index 4ff5a4cdf..bd2d0c4fa 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/license_mit.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/license_mit.go @@ -17,7 +17,7 @@ package cmd func initMit() { Licenses["mit"] = License{ - Name: "Mit", + Name: "MIT License", PossibleMatches: []string{"mit"}, Header: ` Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/licenses.go b/vendor/github.com/spf13/cobra/cobra/cmd/licenses.go index d73e6fb35..a070134dd 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/licenses.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/licenses.go @@ -63,7 +63,7 @@ func getLicense() License { // If user wants to have custom license, use that. if viper.IsSet("license.header") || viper.IsSet("license.text") { return License{Header: viper.GetString("license.header"), - Text: "license.text"} + Text: viper.GetString("license.text")} } // If user wants to have built-in license, use that. @@ -77,7 +77,11 @@ func getLicense() License { func copyrightLine() string { author := viper.GetString("author") - year := time.Now().Format("2006") + + year := viper.GetString("year") // For tests. + if year == "" { + year = time.Now().Format("2006") + } return "Copyright © " + year + " " + author } diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/root.go b/vendor/github.com/spf13/cobra/cobra/cmd/root.go index 1c5e69078..19568f980 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/root.go +++ b/vendor/github.com/spf13/cobra/cobra/cmd/root.go @@ -40,7 +40,7 @@ func Execute() { } func init() { - initViper() + cobra.OnInitialize(initConfig) rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)") rootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "author name for copyright attribution") @@ -55,7 +55,7 @@ func init() { rootCmd.AddCommand(initCmd) } -func initViper() { +func initConfig() { if cfgFile != "" { // Use config file from the flag. viper.SetConfigFile(cfgFile) diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/testdata/main.go.golden b/vendor/github.com/spf13/cobra/cobra/cmd/testdata/main.go.golden index 69ecbd48e..cdbe38d70 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/testdata/main.go.golden +++ b/vendor/github.com/spf13/cobra/cobra/cmd/testdata/main.go.golden @@ -1,4 +1,5 @@ // Copyright © 2017 NAME HERE +// // 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 diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/testdata/root.go.golden b/vendor/github.com/spf13/cobra/cobra/cmd/testdata/root.go.golden index ecc876012..8eeeae89e 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/testdata/root.go.golden +++ b/vendor/github.com/spf13/cobra/cobra/cmd/testdata/root.go.golden @@ -1,4 +1,5 @@ // Copyright © 2017 NAME HERE +// // 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 diff --git a/vendor/github.com/spf13/cobra/cobra/cmd/testdata/test.go.golden b/vendor/github.com/spf13/cobra/cobra/cmd/testdata/test.go.golden index c8319d1dd..584056802 100644 --- a/vendor/github.com/spf13/cobra/cobra/cmd/testdata/test.go.golden +++ b/vendor/github.com/spf13/cobra/cobra/cmd/testdata/test.go.golden @@ -1,4 +1,5 @@ // Copyright © 2017 NAME HERE +// // 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 diff --git a/vendor/github.com/spf13/cobra/cobra_test.go b/vendor/github.com/spf13/cobra/cobra_test.go index 576c97d36..0d1755bdb 100644 --- a/vendor/github.com/spf13/cobra/cobra_test.go +++ b/vendor/github.com/spf13/cobra/cobra_test.go @@ -1,1129 +1,10 @@ package cobra import ( - "bytes" - "fmt" - "os" - "reflect" - "runtime" - "strings" "testing" "text/template" - - "github.com/spf13/pflag" ) -var tp, te, tt, tr []string -var rootPersPre, echoPre, echoPersPre, timesPersPre []string -var flagb1, flagb2, flagb3, flagbr, flagbp bool -var flags1, flags2a, flags2b, flags3, outs string -var flagi1, flagi2, flagi3, flagi4, flagir int -var rootcalled bool -var versionUsed int - -const strtwoParentHelp = "help message for parent flag strtwo" -const strtwoChildHelp = "help message for child flag strtwo" - -var cmdHidden = &Command{ - Use: "hide [secret string to print]", - Short: "Print anything to screen (if command is known)", - Long: `an absolutely utterly useless command for testing.`, - Run: func(cmd *Command, args []string) { - outs = "hidden" - }, - Hidden: true, -} - -var cmdPrint = &Command{ - Use: "print [string to print]", - Short: "Print anything to the screen", - Long: `an absolutely utterly useless command for testing.`, - Run: func(cmd *Command, args []string) { - tp = args - }, -} - -var cmdEcho = &Command{ - Use: "echo [string to echo]", - Aliases: []string{"say"}, - Short: "Echo anything to the screen", - Long: `an utterly useless command for testing.`, - Example: "Just run cobra-test echo", - PersistentPreRun: func(cmd *Command, args []string) { - echoPersPre = args - }, - PreRun: func(cmd *Command, args []string) { - echoPre = args - }, - Run: func(cmd *Command, args []string) { - te = args - }, -} - -var cmdEchoSub = &Command{ - Use: "echosub [string to print]", - Short: "second sub command for echo", - Long: `an absolutely utterly useless command for testing gendocs!.`, - Run: func(cmd *Command, args []string) { - }, -} - -var cmdDeprecated = &Command{ - Use: "deprecated [can't do anything here]", - Short: "A command which is deprecated", - Long: `an absolutely utterly useless command for testing deprecation!.`, - Deprecated: "Please use echo instead", - Run: func(cmd *Command, args []string) { - }, -} - -var cmdTimes = &Command{ - Use: "times [# times] [string to echo]", - SuggestFor: []string{"counts"}, - Short: "Echo anything to the screen more times", - Long: `a slightly useless command for testing.`, - PersistentPreRun: func(cmd *Command, args []string) { - timesPersPre = args - }, - Run: func(cmd *Command, args []string) { - tt = args - }, -} - -var cmdRootNoRun = &Command{ - Use: "cobra-test", - Short: "The root can run its own function", - Long: "The root description for help", - PersistentPreRun: func(cmd *Command, args []string) { - rootPersPre = args - }, -} - -var cmdRootSameName = &Command{ - Use: "print", - Short: "Root with the same name as a subcommand", - Long: "The root description for help", -} - -var cmdRootWithRun = &Command{ - Use: "cobra-test", - Short: "The root can run its own function", - Long: "The root description for help", - Run: func(cmd *Command, args []string) { - tr = args - rootcalled = true - }, -} - -var cmdSubNoRun = &Command{ - Use: "subnorun", - Short: "A subcommand without a Run function", - Long: "A long output about a subcommand without a Run function", -} - -var cmdCustomFlags = &Command{ - Use: "customflags [flags] -- REMOTE_COMMAND", - Short: "A command that expects flags in a custom location", - Long: "A long output about a command that expects flags in a custom location", - Run: func(cmd *Command, args []string) { - }, -} - -var cmdVersion1 = &Command{ - Use: "version", - Short: "Print the version number", - Long: `First version of the version command`, - Run: func(cmd *Command, args []string) { - versionUsed = 1 - }, -} - -var cmdVersion2 = &Command{ - Use: "version", - Short: "Print the version number", - Long: `Second version of the version command`, - Run: func(cmd *Command, args []string) { - versionUsed = 2 - }, -} - -var cmdColon = &Command{ - Use: "cmd:colon", - Run: func(cmd *Command, args []string) { - }, -} - -func flagInit() { - cmdEcho.ResetFlags() - cmdPrint.ResetFlags() - cmdTimes.ResetFlags() - cmdRootNoRun.ResetFlags() - cmdRootSameName.ResetFlags() - cmdRootWithRun.ResetFlags() - cmdSubNoRun.ResetFlags() - cmdCustomFlags.ResetFlags() - cmdVersion1.ResetFlags() - cmdVersion2.ResetFlags() - - cmdRootNoRun.PersistentFlags().StringVarP(&flags2a, "strtwo", "t", "two", strtwoParentHelp) - cmdCustomFlags.Flags().IntVar(&flagi4, "intfour", 456, "help message for flag intfour") - cmdEcho.Flags().BoolVarP(&flagb1, "boolone", "b", true, "help message for flag boolone") - cmdEcho.Flags().IntVarP(&flagi1, "intone", "i", 123, "help message for flag intone") - cmdEcho.PersistentFlags().BoolVarP(&flagbp, "persistentbool", "p", false, "help message for flag persistentbool") - cmdEcho.PersistentFlags().StringVarP(&flags1, "strone", "s", "one", "help message for flag strone") - cmdPrint.Flags().IntVarP(&flagi3, "intthree", "i", 345, "help message for flag intthree") - cmdTimes.Flags().BoolVarP(&flagb2, "booltwo", "c", false, "help message for flag booltwo") - cmdTimes.Flags().IntVarP(&flagi2, "inttwo", "j", 234, "help message for flag inttwo") - cmdTimes.Flags().StringVarP(&flags2b, "strtwo", "t", "2", strtwoChildHelp) - cmdTimes.PersistentFlags().StringVarP(&flags2b, "strtwo", "t", "2", strtwoChildHelp) - cmdPrint.Flags().BoolVarP(&flagb3, "boolthree", "b", true, "help message for flag boolthree") - cmdPrint.PersistentFlags().StringVarP(&flags3, "strthree", "s", "three", "help message for flag strthree") -} - -func commandInit() { - cmdEcho.ResetCommands() - cmdPrint.ResetCommands() - cmdTimes.ResetCommands() - cmdRootNoRun.ResetCommands() - cmdRootSameName.ResetCommands() - cmdRootWithRun.ResetCommands() - cmdSubNoRun.ResetCommands() - cmdCustomFlags.ResetCommands() -} - -func initialize() *Command { - tt, tp, te = nil, nil, nil - rootPersPre, echoPre, echoPersPre, timesPersPre = nil, nil, nil, nil - - var c = cmdRootNoRun - flagInit() - commandInit() - return c -} - -func initializeWithSameName() *Command { - tt, tp, te = nil, nil, nil - rootPersPre, echoPre, echoPersPre, timesPersPre = nil, nil, nil, nil - var c = cmdRootSameName - flagInit() - commandInit() - return c -} - -func initializeWithRootCmd() *Command { - cmdRootWithRun.ResetCommands() - tt, tp, te, tr, rootcalled = nil, nil, nil, nil, false - flagInit() - cmdRootWithRun.Flags().BoolVarP(&flagbr, "boolroot", "b", false, "help message for flag boolroot") - cmdRootWithRun.Flags().IntVarP(&flagir, "introot", "i", 321, "help message for flag introot") - commandInit() - return cmdRootWithRun -} - -type resulter struct { - Error error - Output string - Command *Command -} - -func fullSetupTest(args ...string) resulter { - c := initializeWithRootCmd() - - return fullTester(c, args...) -} - -func noRRSetupTestSilenced(args ...string) resulter { - c := initialize() - c.SilenceErrors = true - c.SilenceUsage = true - return fullTester(c, args...) -} - -func noRRSetupTest(args ...string) resulter { - c := initialize() - - return fullTester(c, args...) -} - -func rootOnlySetupTest(args ...string) resulter { - c := initializeWithRootCmd() - - return simpleTester(c, args...) -} - -func simpleTester(c *Command, args ...string) resulter { - buf := new(bytes.Buffer) - // Testing flag with invalid input - c.SetOutput(buf) - c.SetArgs(args) - - err := c.Execute() - output := buf.String() - - return resulter{err, output, c} -} - -func simpleTesterC(c *Command, args ...string) resulter { - buf := new(bytes.Buffer) - // Testing flag with invalid input - c.SetOutput(buf) - c.SetArgs(args) - - cmd, err := c.ExecuteC() - output := buf.String() - - return resulter{err, output, cmd} -} - -func fullTester(c *Command, args ...string) resulter { - buf := new(bytes.Buffer) - // Testing flag with invalid input - c.SetOutput(buf) - cmdEcho.AddCommand(cmdTimes) - c.AddCommand(cmdPrint, cmdEcho, cmdSubNoRun, cmdCustomFlags, cmdDeprecated) - c.SetArgs(args) - - err := c.Execute() - output := buf.String() - - return resulter{err, output, c} -} - -func logErr(t *testing.T, found, expected string) { - out := new(bytes.Buffer) - - _, _, line, ok := runtime.Caller(2) - if ok { - fmt.Fprintf(out, "Line: %d ", line) - } - fmt.Fprintf(out, "Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - t.Errorf(out.String()) -} - -func checkStringContains(t *testing.T, found, expected string) { - if !strings.Contains(found, expected) { - logErr(t, found, expected) - } -} - -func checkResultContains(t *testing.T, x resulter, check string) { - checkStringContains(t, x.Output, check) -} - -func checkStringOmits(t *testing.T, found, expected string) { - if strings.Contains(found, expected) { - logErr(t, found, expected) - } -} - -func checkResultOmits(t *testing.T, x resulter, check string) { - checkStringOmits(t, x.Output, check) -} - -func checkOutputContains(t *testing.T, c *Command, check string) { - buf := new(bytes.Buffer) - c.SetOutput(buf) - c.Execute() - - if !strings.Contains(buf.String(), check) { - logErr(t, buf.String(), check) - } -} - -func TestSingleCommand(t *testing.T) { - noRRSetupTest("print", "one", "two") - - if te != nil || tt != nil { - t.Error("Wrong command called") - } - if tp == nil { - t.Error("Wrong command called") - } - if strings.Join(tp, " ") != "one two" { - t.Error("Command didn't parse correctly") - } -} - -func TestChildCommand(t *testing.T) { - noRRSetupTest("echo", "times", "one", "two") - - if te != nil || tp != nil { - t.Error("Wrong command called") - } - if tt == nil { - t.Error("Wrong command called") - } - if strings.Join(tt, " ") != "one two" { - t.Error("Command didn't parse correctly") - } -} - -func TestCommandAlias(t *testing.T) { - noRRSetupTest("say", "times", "one", "two") - - if te != nil || tp != nil { - t.Error("Wrong command called") - } - if tt == nil { - t.Error("Wrong command called") - } - if strings.Join(tt, " ") != "one two" { - t.Error("Command didn't parse correctly") - } -} - -func TestPrefixMatching(t *testing.T) { - EnablePrefixMatching = true - noRRSetupTest("ech", "times", "one", "two") - - if te != nil || tp != nil { - t.Error("Wrong command called") - } - if tt == nil { - t.Error("Wrong command called") - } - if strings.Join(tt, " ") != "one two" { - t.Error("Command didn't parse correctly") - } - - EnablePrefixMatching = false -} - -func TestNoPrefixMatching(t *testing.T) { - EnablePrefixMatching = false - - noRRSetupTest("ech", "times", "one", "two") - - if !(tt == nil && te == nil && tp == nil) { - t.Error("Wrong command called") - } -} - -func TestAliasPrefixMatching(t *testing.T) { - EnablePrefixMatching = true - noRRSetupTest("sa", "times", "one", "two") - - if te != nil || tp != nil { - t.Error("Wrong command called") - } - if tt == nil { - t.Error("Wrong command called") - } - if strings.Join(tt, " ") != "one two" { - t.Error("Command didn't parse correctly") - } - EnablePrefixMatching = false -} - -func TestChildSameName(t *testing.T) { - c := initializeWithSameName() - c.AddCommand(cmdPrint, cmdEcho) - c.SetArgs([]string{"print", "one", "two"}) - c.Execute() - - if te != nil || tt != nil { - t.Error("Wrong command called") - } - if tp == nil { - t.Error("Wrong command called") - } - if strings.Join(tp, " ") != "one two" { - t.Error("Command didn't parse correctly") - } -} - -func TestGrandChildSameName(t *testing.T) { - c := initializeWithSameName() - cmdTimes.AddCommand(cmdPrint) - c.AddCommand(cmdTimes) - c.SetArgs([]string{"times", "print", "one", "two"}) - c.Execute() - - if te != nil || tt != nil { - t.Error("Wrong command called") - } - if tp == nil { - t.Error("Wrong command called") - } - if strings.Join(tp, " ") != "one two" { - t.Error("Command didn't parse correctly") - } -} - -func TestUsage(t *testing.T) { - x := fullSetupTest("help") - checkResultContains(t, x, cmdRootWithRun.Use+" [flags]") - x = fullSetupTest("help", "customflags") - checkResultContains(t, x, cmdCustomFlags.Use) - checkResultOmits(t, x, cmdCustomFlags.Use+" [flags]") -} - -func TestFlagLong(t *testing.T) { - noRRSetupTest("echo", "--intone=13", "something", "--", "here") - - if cmdEcho.ArgsLenAtDash() != 1 { - t.Errorf("expected argsLenAtDash: %d but got %d", 1, cmdRootNoRun.ArgsLenAtDash()) - } - if strings.Join(te, " ") != "something here" { - t.Errorf("flags didn't leave proper args remaining..%s given", te) - } - if flagi1 != 13 { - t.Errorf("int flag didn't get correct value, had %d", flagi1) - } - if flagi2 != 234 { - t.Errorf("default flag value changed, 234 expected, %d given", flagi2) - } -} - -func TestFlagShort(t *testing.T) { - noRRSetupTest("echo", "-i13", "--", "something", "here") - - if cmdEcho.ArgsLenAtDash() != 0 { - t.Errorf("expected argsLenAtDash: %d but got %d", 0, cmdRootNoRun.ArgsLenAtDash()) - } - if strings.Join(te, " ") != "something here" { - t.Errorf("flags didn't leave proper args remaining..%s given", te) - } - if flagi1 != 13 { - t.Errorf("int flag didn't get correct value, had %d", flagi1) - } - if flagi2 != 234 { - t.Errorf("default flag value changed, 234 expected, %d given", flagi2) - } - - noRRSetupTest("echo", "-i", "13", "something", "here") - - if strings.Join(te, " ") != "something here" { - t.Errorf("flags didn't leave proper args remaining..%s given", te) - } - if flagi1 != 13 { - t.Errorf("int flag didn't get correct value, had %d", flagi1) - } - if flagi2 != 234 { - t.Errorf("default flag value changed, 234 expected, %d given", flagi2) - } - - noRRSetupTest("print", "-i99", "one", "two") - - if strings.Join(tp, " ") != "one two" { - t.Errorf("flags didn't leave proper args remaining..%s given", tp) - } - if flagi3 != 99 { - t.Errorf("int flag didn't get correct value, had %d", flagi3) - } - if flagi1 != 123 { - t.Errorf("default flag value changed on different command with same shortname, 234 expected, %d given", flagi2) - } -} - -func TestChildCommandFlags(t *testing.T) { - noRRSetupTest("echo", "times", "-j", "99", "one", "two") - - if strings.Join(tt, " ") != "one two" { - t.Errorf("flags didn't leave proper args remaining..%s given", tt) - } - - // Testing with flag that shouldn't be persistent - r := noRRSetupTest("echo", "times", "-j", "99", "-i77", "one", "two") - - if r.Error == nil { - t.Errorf("invalid flag should generate error") - } - - if !strings.Contains(r.Error.Error(), "unknown shorthand") { - t.Errorf("Wrong error message displayed, \n %s", r.Error) - } - - if flagi2 != 99 { - t.Errorf("flag value should be 99, %d given", flagi2) - } - - if flagi1 != 123 { - t.Errorf("unset flag should have default value, expecting 123, given %d", flagi1) - } - - // Testing with flag only existing on child - r = noRRSetupTest("echo", "-j", "99", "-i77", "one", "two") - - if r.Error == nil { - t.Errorf("invalid flag should generate error") - } - if !strings.Contains(r.Error.Error(), "unknown shorthand flag") { - t.Errorf("Wrong error message displayed, \n %s", r.Error) - } - - // Testing with persistent flag overwritten by child - noRRSetupTest("echo", "times", "--strtwo=child", "one", "two") - - if flags2b != "child" { - t.Errorf("flag value should be child, %s given", flags2b) - } - - if flags2a != "two" { - t.Errorf("unset flag should have default value, expecting two, given %s", flags2a) - } - - // Testing flag with invalid input - r = noRRSetupTest("echo", "-i10E") - - if r.Error == nil { - t.Errorf("invalid input should generate error") - } - if !strings.Contains(r.Error.Error(), "invalid syntax") { - t.Errorf("Wrong error message displayed, \n %s", r.Error) - } -} - -func TestTrailingCommandFlags(t *testing.T) { - x := fullSetupTest("echo", "two", "-x") - - if x.Error == nil { - t.Errorf("invalid flag should generate error") - } -} - -func TestInvalidSubcommandFlags(t *testing.T) { - cmd := initializeWithRootCmd() - cmd.AddCommand(cmdTimes) - - result := simpleTester(cmd, "times", "--inttwo=2", "--badflag=bar") - // given that we are not checking here result.Error we check for - // stock usage message - checkResultContains(t, result, "cobra-test times [# times]") - if strings.Contains(result.Error.Error(), "unknown flag: --inttwo") { - t.Errorf("invalid --badflag flag shouldn't fail on 'unknown' --inttwo flag") - } - -} - -func TestSubcommandExecuteC(t *testing.T) { - cmd := initializeWithRootCmd() - double := &Command{ - Use: "double message", - Run: func(c *Command, args []string) { - msg := strings.Join(args, " ") - c.Println(msg, msg) - }, - } - - echo := &Command{ - Use: "echo message", - Run: func(c *Command, args []string) { - msg := strings.Join(args, " ") - c.Println(msg) - }, - } - - cmd.AddCommand(double, echo) - - result := simpleTesterC(cmd, "double", "hello", "world") - checkResultContains(t, result, "hello world hello world") - - if result.Command.Name() != "double" { - t.Errorf("invalid cmd returned from ExecuteC: should be 'double' but got %s", result.Command.Name()) - } - - result = simpleTesterC(cmd, "echo", "msg", "to", "be", "echoed") - checkResultContains(t, result, "msg to be echoed") - - if result.Command.Name() != "echo" { - t.Errorf("invalid cmd returned from ExecuteC: should be 'echo' but got %s", result.Command.Name()) - } -} - -func TestSubcommandArgEvaluation(t *testing.T) { - cmd := initializeWithRootCmd() - - first := &Command{ - Use: "first", - Run: func(cmd *Command, args []string) { - }, - } - cmd.AddCommand(first) - - second := &Command{ - Use: "second", - Run: func(cmd *Command, args []string) { - fmt.Fprintf(cmd.OutOrStdout(), "%v", args) - }, - } - first.AddCommand(second) - - result := simpleTester(cmd, "first", "second", "first", "third") - - expectedOutput := fmt.Sprint([]string{"first third"}) - if result.Output != expectedOutput { - t.Errorf("exptected %v, got %v", expectedOutput, result.Output) - } -} - -func TestPersistentFlags(t *testing.T) { - fullSetupTest("echo", "-s", "something", "-p", "more", "here") - - // persistentFlag should act like normal flag on its own command - if strings.Join(te, " ") != "more here" { - t.Errorf("flags didn't leave proper args remaining..%s given", te) - } - if flags1 != "something" { - t.Errorf("string flag didn't get correct value, had %v", flags1) - } - if !flagbp { - t.Errorf("persistent bool flag not parsed correctly. Expected true, had %v", flagbp) - } - - // persistentFlag should act like normal flag on its own command - fullSetupTest("echo", "times", "-s", "again", "-c", "-p", "test", "here") - - if strings.Join(tt, " ") != "test here" { - t.Errorf("flags didn't leave proper args remaining. %s given", tt) - } - - if flags1 != "again" { - t.Errorf("string flag didn't get correct value, had %v", flags1) - } - - if !flagb2 { - t.Errorf("local flag not parsed correctly. Expected true, had %v", flagb2) - } - if !flagbp { - t.Errorf("persistent bool flag not parsed correctly. Expected true, had %v", flagbp) - } -} - -func TestHelpCommand(t *testing.T) { - x := fullSetupTest("help") - checkResultContains(t, x, cmdRootWithRun.Long) - - x = fullSetupTest("help", "echo") - checkResultContains(t, x, cmdEcho.Long) - - x = fullSetupTest("help", "echo", "times") - checkResultContains(t, x, cmdTimes.Long) -} - -func TestChildCommandHelp(t *testing.T) { - c := noRRSetupTest("print", "--help") - checkResultContains(t, c, strtwoParentHelp) - r := noRRSetupTest("echo", "times", "--help") - checkResultContains(t, r, strtwoChildHelp) -} - -func TestNonRunChildHelp(t *testing.T) { - x := noRRSetupTest("subnorun") - checkResultContains(t, x, cmdSubNoRun.Long) -} - -func TestRunnableRootCommand(t *testing.T) { - x := fullSetupTest("") - - if !rootcalled { - t.Errorf("Root Function was not called\n out:%v", x.Error) - } -} - -func TestVisitParents(t *testing.T) { - c := &Command{Use: "app"} - sub := &Command{Use: "sub"} - dsub := &Command{Use: "dsub"} - sub.AddCommand(dsub) - c.AddCommand(sub) - total := 0 - add := func(x *Command) { - total++ - } - sub.VisitParents(add) - if total != 1 { - t.Errorf("Should have visited 1 parent but visited %d", total) - } - - total = 0 - dsub.VisitParents(add) - if total != 2 { - t.Errorf("Should have visited 2 parent but visited %d", total) - } - - total = 0 - c.VisitParents(add) - if total != 0 { - t.Errorf("Should have not visited any parent but visited %d", total) - } -} - -func TestRunnableRootCommandNilInput(t *testing.T) { - c := initializeWithRootCmd() - - buf := new(bytes.Buffer) - // Testing flag with invalid input - c.SetOutput(buf) - cmdEcho.AddCommand(cmdTimes) - c.AddCommand(cmdPrint, cmdEcho) - c.SetArgs([]string{}) - - err := c.Execute() - if err != nil { - t.Errorf("Execute() failed with %v", err) - } - - if !rootcalled { - t.Errorf("Root Function was not called") - } -} - -func TestRunnableRootCommandEmptyInput(t *testing.T) { - args := []string{"", "--introot=12", ""} - c := initializeWithRootCmd() - - buf := new(bytes.Buffer) - // Testing flag with invalid input - c.SetOutput(buf) - cmdEcho.AddCommand(cmdTimes) - c.AddCommand(cmdPrint, cmdEcho) - c.SetArgs(args) - - c.Execute() - - if !rootcalled { - t.Errorf("Root Function was not called.\nOutput was:\n%s\n", buf) - } -} - -func TestInvalidSubcommandWhenArgsAllowed(t *testing.T) { - fullSetupTest("echo", "invalid-sub") - - if te[0] != "invalid-sub" { - t.Errorf("Subcommand didn't work...") - } -} - -func TestRootFlags(t *testing.T) { - fullSetupTest("-i", "17", "-b") - - if !flagbr { - t.Errorf("flag value should be true, %v given", flagbr) - } - - if flagir != 17 { - t.Errorf("flag value should be 17, %d given", flagir) - } -} - -func TestRootHelp(t *testing.T) { - x := fullSetupTest("--help") - - checkResultContains(t, x, "Available Commands:") - checkResultContains(t, x, "for more information about a command") - - if strings.Contains(x.Output, "unknown flag: --help") { - t.Errorf("--help shouldn't trigger an error, Got: \n %s", x.Output) - } - - if strings.Contains(x.Output, cmdEcho.Use) { - t.Errorf("--help shouldn't display subcommand's usage, Got: \n %s", x.Output) - } - - x = fullSetupTest("echo", "--help") - - if strings.Contains(x.Output, cmdTimes.Use) { - t.Errorf("--help shouldn't display subsubcommand's usage, Got: \n %s", x.Output) - } - - checkResultContains(t, x, "Available Commands:") - checkResultContains(t, x, "for more information about a command") - - if strings.Contains(x.Output, "unknown flag: --help") { - t.Errorf("--help shouldn't trigger an error, Got: \n %s", x.Output) - } - -} - -func TestFlagAccess(t *testing.T) { - initialize() - - local := cmdTimes.LocalFlags() - inherited := cmdTimes.InheritedFlags() - - for _, f := range []string{"inttwo", "strtwo", "booltwo"} { - if local.Lookup(f) == nil { - t.Errorf("LocalFlags expected to contain %s, Got: nil", f) - } - } - if inherited.Lookup("strone") == nil { - t.Errorf("InheritedFlags expected to contain strone, Got: nil") - } - if inherited.Lookup("strtwo") != nil { - t.Errorf("InheritedFlags shouldn not contain overwritten flag strtwo") - } -} - -func TestNoNRunnableRootCommandNilInput(t *testing.T) { - c := initialize() - - buf := new(bytes.Buffer) - // Testing flag with invalid input - c.SetOutput(buf) - cmdEcho.AddCommand(cmdTimes) - c.AddCommand(cmdPrint, cmdEcho) - c.SetArgs([]string{}) - - c.Execute() - - if !strings.Contains(buf.String(), cmdRootNoRun.Long) { - t.Errorf("Expected to get help output, Got: \n %s", buf) - } -} - -func TestRootNoCommandHelp(t *testing.T) { - x := rootOnlySetupTest("--help") - - checkResultOmits(t, x, "Available Commands:") - checkResultOmits(t, x, "for more information about a command") - - if strings.Contains(x.Output, "unknown flag: --help") { - t.Errorf("--help shouldn't trigger an error, Got: \n %s", x.Output) - } - - x = rootOnlySetupTest("echo", "--help") - - checkResultOmits(t, x, "Available Commands:") - checkResultOmits(t, x, "for more information about a command") - - if strings.Contains(x.Output, "unknown flag: --help") { - t.Errorf("--help shouldn't trigger an error, Got: \n %s", x.Output) - } -} - -func TestRootUnknownCommand(t *testing.T) { - r := noRRSetupTest("bogus") - s := "Error: unknown command \"bogus\" for \"cobra-test\"\nRun 'cobra-test --help' for usage.\n" - - if r.Output != s { - t.Errorf("Unexpected response.\nExpecting to be:\n %q\nGot:\n %q\n", s, r.Output) - } - - r = noRRSetupTest("--strtwo=a", "bogus") - if r.Output != s { - t.Errorf("Unexpected response.\nExpecting to be:\n %q\nGot:\n %q\n", s, r.Output) - } -} - -func TestRootUnknownCommandSilenced(t *testing.T) { - r := noRRSetupTestSilenced("bogus") - - if r.Output != "" { - t.Errorf("Unexpected response.\nExpecting to be: \n\"\"\n Got:\n %q\n", r.Output) - } - - r = noRRSetupTestSilenced("--strtwo=a", "bogus") - if r.Output != "" { - t.Errorf("Unexpected response.\nExpecting to be:\n\"\"\nGot:\n %q\n", r.Output) - } -} - -func TestRootSuggestions(t *testing.T) { - outputWithSuggestions := "Error: unknown command \"%s\" for \"cobra-test\"\n\nDid you mean this?\n\t%s\n\nRun 'cobra-test --help' for usage.\n" - outputWithoutSuggestions := "Error: unknown command \"%s\" for \"cobra-test\"\nRun 'cobra-test --help' for usage.\n" - - cmd := initializeWithRootCmd() - cmd.AddCommand(cmdTimes) - - tests := map[string]string{ - "time": "times", - "tiems": "times", - "tims": "times", - "timeS": "times", - "rimes": "times", - "ti": "times", - "t": "times", - "timely": "times", - "ri": "", - "timezone": "", - "foo": "", - "counts": "times", - } - - for typo, suggestion := range tests { - for _, suggestionsDisabled := range []bool{false, true} { - cmd.DisableSuggestions = suggestionsDisabled - result := simpleTester(cmd, typo) - expected := "" - if len(suggestion) == 0 || suggestionsDisabled { - expected = fmt.Sprintf(outputWithoutSuggestions, typo) - } else { - expected = fmt.Sprintf(outputWithSuggestions, typo, suggestion) - } - if result.Output != expected { - t.Errorf("Unexpected response.\nExpecting to be:\n %q\nGot:\n %q\n", expected, result.Output) - } - } - } -} - -func TestFlagsBeforeCommand(t *testing.T) { - // short without space - x := fullSetupTest("-i10", "echo") - if x.Error != nil { - t.Errorf("Valid Input shouldn't have errors, got:\n %q", x.Error) - } - - x = noRRSetupTest("echo", "-i=10") - if x.Error != nil { - t.Errorf("Valid Input shouldn't have errors, got:\n %s", x.Error) - } - - // long with equals - x = noRRSetupTest("--intone=123", "echo", "one", "two") - if x.Error != nil { - t.Errorf("Valid Input shouldn't have errors, got:\n %s", x.Error) - } - - // With parsing error properly reported - x = fullSetupTest("-i10E", "echo") - if !strings.Contains(x.Error.Error(), "invalid syntax") { - t.Errorf("Wrong error message displayed, \n %s", x.Error) - } -} - -func TestRemoveCommand(t *testing.T) { - versionUsed = 0 - c := initializeWithRootCmd() - c.AddCommand(cmdVersion1) - c.RemoveCommand(cmdVersion1) - x := fullTester(c, "version") - if x.Error == nil { - t.Errorf("Removed command should not have been called\n") - return - } -} - -func TestCommandWithoutSubcommands(t *testing.T) { - c := initializeWithRootCmd() - - x := simpleTester(c, "") - if x.Error != nil { - t.Errorf("Calling command without subcommands should not have error: %v", x.Error) - return - } -} - -func TestCommandWithoutSubcommandsWithArg(t *testing.T) { - c := initializeWithRootCmd() - expectedArgs := []string{"arg"} - - x := simpleTester(c, "arg") - if x.Error != nil { - t.Errorf("Calling command without subcommands but with arg should not have error: %v", x.Error) - return - } - if !reflect.DeepEqual(expectedArgs, tr) { - t.Errorf("Calling command without subcommands but with arg has wrong args: expected: %v, actual: %v", expectedArgs, tr) - return - } -} - -func TestReplaceCommandWithRemove(t *testing.T) { - versionUsed = 0 - c := initializeWithRootCmd() - c.AddCommand(cmdVersion1) - c.RemoveCommand(cmdVersion1) - c.AddCommand(cmdVersion2) - x := fullTester(c, "version") - if x.Error != nil { - t.Errorf("Valid Input shouldn't have errors, got:\n %q", x.Error) - return - } - if versionUsed == 1 { - t.Errorf("Removed command shouldn't be called\n") - } - if versionUsed != 2 { - t.Errorf("Replacing command should have been called but didn't\n") - } -} - -func TestDeprecatedSub(t *testing.T) { - c := fullSetupTest("deprecated") - - checkResultContains(t, c, cmdDeprecated.Deprecated) -} - -func TestPreRun(t *testing.T) { - noRRSetupTest("echo", "one", "two") - if echoPre == nil || echoPersPre == nil { - t.Error("PreRun or PersistentPreRun not called") - } - if rootPersPre != nil || timesPersPre != nil { - t.Error("Wrong *Pre functions called!") - } - - noRRSetupTest("echo", "times", "one", "two") - if timesPersPre == nil { - t.Error("PreRun or PersistentPreRun not called") - } - if echoPre != nil || echoPersPre != nil || rootPersPre != nil { - t.Error("Wrong *Pre functions called!") - } - - noRRSetupTest("print", "one", "two") - if rootPersPre == nil { - t.Error("Parent PersistentPreRun not called but should not have been") - } - if echoPre != nil || echoPersPre != nil || timesPersPre != nil { - t.Error("Wrong *Pre functions called!") - } -} - -// Check if cmdEchoSub gets PersistentPreRun from rootCmd even if is added last -func TestPeristentPreRunPropagation(t *testing.T) { - rootCmd := initialize() - - // First add the cmdEchoSub to cmdPrint - cmdPrint.AddCommand(cmdEchoSub) - // Now add cmdPrint to rootCmd - rootCmd.AddCommand(cmdPrint) - - rootCmd.SetArgs([]string{"print", "echosub", "lala"}) - rootCmd.Execute() - - if len(rootPersPre) == 0 || rootPersPre[0] != "lala" { - t.Error("RootCmd PersistentPreRun not called but should have been") - } -} - -func TestGlobalNormFuncPropagation(t *testing.T) { - normFunc := func(f *pflag.FlagSet, name string) pflag.NormalizedName { - return pflag.NormalizedName(name) - } - - rootCmd := initialize() - rootCmd.SetGlobalNormalizationFunc(normFunc) - if reflect.ValueOf(normFunc) != reflect.ValueOf(rootCmd.GlobalNormalizationFunc()) { - t.Error("rootCmd seems to have a wrong normalization function") - } - - // First add the cmdEchoSub to cmdPrint - cmdPrint.AddCommand(cmdEchoSub) - if cmdPrint.GlobalNormalizationFunc() != nil && cmdEchoSub.GlobalNormalizationFunc() != nil { - t.Error("cmdPrint and cmdEchoSub should had no normalization functions") - } - - // Now add cmdPrint to rootCmd - rootCmd.AddCommand(cmdPrint) - if reflect.ValueOf(cmdPrint.GlobalNormalizationFunc()).Pointer() != reflect.ValueOf(rootCmd.GlobalNormalizationFunc()).Pointer() || - reflect.ValueOf(cmdEchoSub.GlobalNormalizationFunc()).Pointer() != reflect.ValueOf(rootCmd.GlobalNormalizationFunc()).Pointer() { - t.Error("cmdPrint and cmdEchoSub should had the normalization function of rootCmd") - } -} - -func TestFlagOnPflagCommandLine(t *testing.T) { - flagName := "flagOnCommandLine" - pflag.String(flagName, "", "about my flag") - r := fullSetupTest("--help") - - checkResultContains(t, r, flagName) - - // Reset pflag.CommandLine flagset. - pflag.CommandLine = pflag.NewFlagSet(os.Args[0], pflag.ExitOnError) -} - func TestAddTemplateFunctions(t *testing.T) { AddTemplateFunc("t", func() bool { return true }) AddTemplateFuncs(template.FuncMap{ @@ -1131,43 +12,11 @@ func TestAddTemplateFunctions(t *testing.T) { "h": func() string { return "Hello," }, "w": func() string { return "world." }}) - const usage = "Hello, world." - c := &Command{} c.SetUsageTemplate(`{{if t}}{{h}}{{end}}{{if f}}{{h}}{{end}} {{w}}`) - if us := c.UsageString(); us != usage { - t.Errorf("c.UsageString() != \"%s\", is \"%s\"", usage, us) - } -} - -func TestUsageIsNotPrintedTwice(t *testing.T) { - var cmd = &Command{Use: "root"} - var sub = &Command{Use: "sub"} - cmd.AddCommand(sub) - - r := simpleTester(cmd, "") - if strings.Count(r.Output, "Usage:") != 1 { - t.Error("Usage output is not printed exactly once") - } -} - -func BenchmarkInheritedFlags(b *testing.B) { - initialize() - cmdEcho.AddCommand(cmdTimes) - b.ResetTimer() - - for i := 0; i < b.N; i++ { - cmdTimes.InheritedFlags() - } -} - -func BenchmarkLocalFlags(b *testing.B) { - initialize() - cmdEcho.AddCommand(cmdTimes) - b.ResetTimer() - - for i := 0; i < b.N; i++ { - cmdTimes.LocalFlags() + const expected = "Hello, world." + if got := c.UsageString(); got != expected { + t.Errorf("Expected UsageString: %v\nGot: %v", expected, got) } } diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go index c3e16b1d1..6cb642647 100644 --- a/vendor/github.com/spf13/cobra/command.go +++ b/vendor/github.com/spf13/cobra/command.go @@ -54,6 +54,9 @@ type Command struct { // ValidArgs is list of all valid non-flag arguments that are accepted in bash completions ValidArgs []string + // Expected arguments + Args PositionalArgs + // ArgAliases is List of aliases for ValidArgs. // These are not suggested to the user in the bash completion, // but accepted if entered manually. @@ -122,8 +125,9 @@ type Command struct { // Must be > 0. SuggestionsMinimumDistance int - // name is the command name, usually the executable's name. - name string + // TraverseChildren parses flags on all parents before executing child command. + TraverseChildren bool + // commands is the list of commands supported by this program. commands []*Command // parent is a parent command for this command. @@ -472,13 +476,14 @@ func argsMinusFirstX(args []string, x string) []string { return args } +func isFlagArg(arg string) bool { + return ((len(arg) >= 3 && arg[1] == '-') || + (len(arg) >= 2 && arg[0] == '-' && arg[1] != '-')) +} + // Find the target command given the args and command tree // Meant to be run on the highest node. Only searches down. func (c *Command) Find(args []string) (*Command, []string, error) { - if c == nil { - return nil, nil, fmt.Errorf("Called find() on a nil Command") - } - var innerfind func(*Command, []string) (*Command, []string) innerfind = func(c *Command, innerArgs []string) (*Command, []string) { @@ -487,57 +492,96 @@ func (c *Command) Find(args []string) (*Command, []string, error) { return c, innerArgs } nextSubCmd := argsWOflags[0] - matches := make([]*Command, 0) - for _, cmd := range c.commands { - if cmd.Name() == nextSubCmd || cmd.HasAlias(nextSubCmd) { // exact name or alias match - return innerfind(cmd, argsMinusFirstX(innerArgs, nextSubCmd)) - } - if EnablePrefixMatching { - if strings.HasPrefix(cmd.Name(), nextSubCmd) { // prefix match - matches = append(matches, cmd) - } - for _, x := range cmd.Aliases { - if strings.HasPrefix(x, nextSubCmd) { - matches = append(matches, cmd) - } - } - } - } - // only accept a single prefix match - multiple matches would be ambiguous - if len(matches) == 1 { - return innerfind(matches[0], argsMinusFirstX(innerArgs, argsWOflags[0])) + cmd := c.findNext(nextSubCmd) + if cmd != nil { + return innerfind(cmd, argsMinusFirstX(innerArgs, nextSubCmd)) } - return c, innerArgs } commandFound, a := innerfind(c, args) - argsWOflags := stripFlags(a, commandFound) + if commandFound.Args == nil { + return commandFound, a, legacyArgs(commandFound, stripFlags(a, commandFound)) + } + return commandFound, a, nil +} - // no subcommand, always take args - if !commandFound.HasSubCommands() { - return commandFound, a, nil +func (c *Command) findSuggestions(arg string) string { + if c.DisableSuggestions { + return "" } + if c.SuggestionsMinimumDistance <= 0 { + c.SuggestionsMinimumDistance = 2 + } + suggestionsString := "" + if suggestions := c.SuggestionsFor(arg); len(suggestions) > 0 { + suggestionsString += "\n\nDid you mean this?\n" + for _, s := range suggestions { + suggestionsString += fmt.Sprintf("\t%v\n", s) + } + } + return suggestionsString +} - // root command with subcommands, do subcommand checking - if commandFound == c && len(argsWOflags) > 0 { - suggestionsString := "" - if !c.DisableSuggestions { - if c.SuggestionsMinimumDistance <= 0 { - c.SuggestionsMinimumDistance = 2 - } - if suggestions := c.SuggestionsFor(argsWOflags[0]); len(suggestions) > 0 { - suggestionsString += "\n\nDid you mean this?\n" - for _, s := range suggestions { - suggestionsString += fmt.Sprintf("\t%v\n", s) - } - } +func (c *Command) findNext(next string) *Command { + matches := make([]*Command, 0) + for _, cmd := range c.commands { + if cmd.Name() == next || cmd.HasAlias(next) { + return cmd + } + if EnablePrefixMatching && cmd.hasNameOrAliasPrefix(next) { + matches = append(matches, cmd) } - return commandFound, a, fmt.Errorf("unknown command %q for %q%s", argsWOflags[0], commandFound.CommandPath(), suggestionsString) } - return commandFound, a, nil + if len(matches) == 1 { + return matches[0] + } + return nil +} + +// Traverse the command tree to find the command, and parse args for +// each parent. +func (c *Command) Traverse(args []string) (*Command, []string, error) { + flags := []string{} + inFlag := false + + for i, arg := range args { + switch { + // A long flag with a space separated value + case strings.HasPrefix(arg, "--") && !strings.Contains(arg, "="): + // TODO: this isn't quite right, we should really check ahead for 'true' or 'false' + inFlag = !hasNoOptDefVal(arg[2:], c.Flags()) + flags = append(flags, arg) + continue + // A short flag with a space separated value + case strings.HasPrefix(arg, "-") && !strings.Contains(arg, "=") && len(arg) == 2 && !shortHasNoOptDefVal(arg[1:], c.Flags()): + inFlag = true + flags = append(flags, arg) + continue + // The value for a flag + case inFlag: + inFlag = false + flags = append(flags, arg) + continue + // A flag without a value, or with an `=` separated value + case isFlagArg(arg): + flags = append(flags, arg) + continue + } + + cmd := c.findNext(arg) + if cmd == nil { + return c, args, nil + } + + if err := c.ParseFlags(flags); err != nil { + return nil, args, err + } + return cmd.Traverse(args[i+1:]) + } + return c, args, nil } // SuggestionsFor provides suggestions for the typedName. @@ -577,10 +621,8 @@ func (c *Command) Root() *Command { return c } -// ArgsLenAtDash will return the length of f.Args at the moment when a -- was -// found during arg parsing. This allows your program to know which args were -// before the -- and which came after. (Description from -// https://godoc.org/github.com/spf13/pflag#FlagSet.ArgsLenAtDash). +// ArgsLenAtDash will return the length of c.Flags().Args at the moment +// when a -- was found during args parsing. func (c *Command) ArgsLenAtDash() int { return c.Flags().ArgsLenAtDash() } @@ -624,6 +666,10 @@ func (c *Command) execute(a []string) (err error) { argWoFlags = a } + if err := c.ValidateArgs(argWoFlags); err != nil { + return err + } + for p := c; p != nil; p = p.Parent() { if p.PersistentPreRunE != nil { if err := p.PersistentPreRunE(c, argWoFlags); err != nil { @@ -643,6 +689,9 @@ func (c *Command) execute(a []string) (err error) { c.PreRun(c, argWoFlags) } + if err := c.validateRequiredFlags(); err != nil { + return err + } if c.RunE != nil { if err := c.RunE(c, argWoFlags); err != nil { return err @@ -711,7 +760,12 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { args = c.args } - cmd, flags, err := c.Find(args) + var flags []string + if c.TraverseChildren { + cmd, flags, err = c.Traverse(args) + } else { + cmd, flags, err = c.Find(args) + } if err != nil { // If found parse to a subcommand and then failed, talk about the subcommand if cmd != nil { @@ -723,6 +777,7 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { } return c, err } + err = cmd.execute(flags) if err != nil { // Always show help if requested, even if SilenceErrors is in @@ -747,6 +802,32 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { return cmd, err } +func (c *Command) ValidateArgs(args []string) error { + if c.Args == nil { + return nil + } + return c.Args(c, args) +} + +func (c *Command) validateRequiredFlags() error { + flags := c.Flags() + missingFlagNames := []string{} + flags.VisitAll(func(pflag *flag.Flag) { + requiredAnnotation, found := pflag.Annotations[BashCompOneRequiredFlag] + if !found { + return + } + if (requiredAnnotation[0] == "true") && !pflag.Changed { + missingFlagNames = append(missingFlagNames, pflag.Name) + } + }) + + if len(missingFlagNames) > 0 { + return fmt.Errorf(`Required flag(s) "%s" have/has not been set`, strings.Join(missingFlagNames, `", "`)) + } + return nil +} + // InitDefaultHelpFlag adds default help flag to c. // It is called automatically by executing the c or by calling help and usage. // If c already has help flag, it will do nothing. @@ -794,8 +875,9 @@ Simply type ` + c.Name() + ` help [path to command] for full details.`, c.AddCommand(c.helpCommand) } -// ResetCommands used for testing. +// ResetCommands delete parent, subcommand and help command from c. func (c *Command) ResetCommands() { + c.parent = nil c.commands = nil c.helpCommand = nil c.parentsPflags = nil @@ -961,15 +1043,12 @@ func (c *Command) DebugFlags() { // Name returns the command's name: the first word in the use line. func (c *Command) Name() string { - if c.name == "" { - name := c.Use - i := strings.Index(name, " ") - if i >= 0 { - name = name[:i] - } - c.name = name + name := c.Use + i := strings.Index(name, " ") + if i >= 0 { + name = name[:i] } - return c.name + return name } // HasAlias determines if a given string is an alias of the command. @@ -982,7 +1061,21 @@ func (c *Command) HasAlias(s string) bool { return false } -// NameAndAliases returns string containing name and all aliases +// hasNameOrAliasPrefix returns true if the Name or any of aliases start +// with prefix +func (c *Command) hasNameOrAliasPrefix(prefix string) bool { + if strings.HasPrefix(c.Name(), prefix) { + return true + } + for _, alias := range c.Aliases { + if strings.HasPrefix(alias, prefix) { + return true + } + } + return false +} + +// NameAndAliases returns a list of the command name and all aliases func (c *Command) NameAndAliases() string { return strings.Join(append([]string{c.Name()}, c.Aliases...), ", ") } @@ -1068,7 +1161,7 @@ func (c *Command) HasAvailableSubCommands() bool { } } - // the command either has no sub comamnds, or no available (non deprecated/help/hidden) + // the command either has no sub commands, or no available (non deprecated/help/hidden) // sub commands return false } @@ -1122,6 +1215,9 @@ func (c *Command) LocalFlags() *flag.FlagSet { c.lflags.SetOutput(c.flagErrorBuf) } c.lflags.SortFlags = c.Flags().SortFlags + if c.globNormFunc != nil { + c.lflags.SetNormalizeFunc(c.globNormFunc) + } addToLocal := func(f *flag.Flag) { if c.lflags.Lookup(f.Name) == nil && c.parentsPflags.Lookup(f.Name) == nil { @@ -1146,6 +1242,10 @@ func (c *Command) InheritedFlags() *flag.FlagSet { } local := c.LocalFlags() + if c.globNormFunc != nil { + c.iflags.SetNormalizeFunc(c.globNormFunc) + } + c.parentsPflags.VisitAll(func(f *flag.Flag) { if c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil { c.iflags.AddFlag(f) @@ -1171,7 +1271,7 @@ func (c *Command) PersistentFlags() *flag.FlagSet { return c.pflags } -// ResetFlags is used in testing. +// ResetFlags deletes all flags from command. func (c *Command) ResetFlags() { c.flagErrorBuf = new(bytes.Buffer) c.flagErrorBuf.Reset() @@ -1179,6 +1279,10 @@ func (c *Command) ResetFlags() { c.flags.SetOutput(c.flagErrorBuf) c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError) c.pflags.SetOutput(c.flagErrorBuf) + + c.lflags = nil + c.iflags = nil + c.parentsPflags = nil } // HasFlags checks if the command contains any flags (local plus persistent from the entire structure). @@ -1254,6 +1358,9 @@ func (c *Command) ParseFlags(args []string) error { return nil } + if c.flagErrorBuf == nil { + c.flagErrorBuf = new(bytes.Buffer) + } beforeErrorBufLen := c.flagErrorBuf.Len() c.mergePersistentFlags() err := c.Flags().Parse(args) @@ -1288,6 +1395,10 @@ func (c *Command) updateParentsPflags() { c.parentsPflags.SortFlags = false } + if c.globNormFunc != nil { + c.parentsPflags.SetNormalizeFunc(c.globNormFunc) + } + c.Root().PersistentFlags().AddFlagSet(flag.CommandLine) c.VisitParents(func(parent *Command) { diff --git a/vendor/github.com/spf13/cobra/command_test.go b/vendor/github.com/spf13/cobra/command_test.go index aa6658f85..edffc1501 100644 --- a/vendor/github.com/spf13/cobra/command_test.go +++ b/vendor/github.com/spf13/cobra/command_test.go @@ -11,27 +11,450 @@ import ( "github.com/spf13/pflag" ) -// test to ensure hidden commands run as intended -func TestHiddenCommandExecutes(t *testing.T) { +func emptyRun(*Command, []string) {} + +func executeCommand(root *Command, args ...string) (output string, err error) { + _, output, err = executeCommandC(root, args...) + return output, err +} + +func executeCommandC(root *Command, args ...string) (c *Command, output string, err error) { + buf := new(bytes.Buffer) + root.SetOutput(buf) + root.SetArgs(args) + + c, err = root.ExecuteC() + + return c, buf.String(), err +} + +func resetCommandLineFlagSet() { + pflag.CommandLine = pflag.NewFlagSet(os.Args[0], pflag.ExitOnError) +} + +func checkStringContains(t *testing.T, got, expected string) { + if !strings.Contains(got, expected) { + t.Errorf("Expected to contain: \n %v\nGot:\n %v\n", expected, got) + } +} + +func checkStringOmits(t *testing.T, got, expected string) { + if strings.Contains(got, expected) { + t.Errorf("Expected to not contain: \n %v\nGot: %v", expected, got) + } +} - // ensure that outs does not already equal what the command will be setting it - // to, if it did this test would not actually be testing anything... - if outs == "hidden" { - t.Errorf("outs should NOT EQUAL hidden") +func TestSingleCommand(t *testing.T) { + var rootCmdArgs []string + rootCmd := &Command{ + Use: "root", + Args: ExactArgs(2), + Run: func(_ *Command, args []string) { rootCmdArgs = args }, } + aCmd := &Command{Use: "a", Args: NoArgs, Run: emptyRun} + bCmd := &Command{Use: "b", Args: NoArgs, Run: emptyRun} + rootCmd.AddCommand(aCmd, bCmd) - cmdHidden.Execute() + output, err := executeCommand(rootCmd, "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } - // upon running the command, the value of outs should now be 'hidden' - if outs != "hidden" { - t.Errorf("Hidden command failed to run!") + got := strings.Join(rootCmdArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("rootCmdArgs expected: %q, got: %q", expected, got) } } -// test to ensure hidden commands do not show up in usage/help text -func TestHiddenCommandIsHidden(t *testing.T) { - if cmdHidden.IsAvailableCommand() { - t.Errorf("Hidden command found!") +func TestChildCommand(t *testing.T) { + var child1CmdArgs []string + rootCmd := &Command{Use: "root", Args: NoArgs, Run: emptyRun} + child1Cmd := &Command{ + Use: "child1", + Args: ExactArgs(2), + Run: func(_ *Command, args []string) { child1CmdArgs = args }, + } + child2Cmd := &Command{Use: "child2", Args: NoArgs, Run: emptyRun} + rootCmd.AddCommand(child1Cmd, child2Cmd) + + output, err := executeCommand(rootCmd, "child1", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + got := strings.Join(child1CmdArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("child1CmdArgs expected: %q, got: %q", expected, got) + } +} + +func TestCallCommandWithoutSubcommands(t *testing.T) { + rootCmd := &Command{Use: "root", Args: NoArgs, Run: emptyRun} + _, err := executeCommand(rootCmd) + if err != nil { + t.Errorf("Calling command without subcommands should not have error: %v", err) + } +} + +func TestRootExecuteUnknownCommand(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + rootCmd.AddCommand(&Command{Use: "child", Run: emptyRun}) + + output, _ := executeCommand(rootCmd, "unknown") + + expected := "Error: unknown command \"unknown\" for \"root\"\nRun 'root --help' for usage.\n" + + if output != expected { + t.Errorf("Expected:\n %q\nGot:\n %q\n", expected, output) + } +} + +func TestSubcommandExecuteC(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Run: emptyRun} + rootCmd.AddCommand(childCmd) + + c, output, err := executeCommandC(rootCmd, "child") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if c.Name() != "child" { + t.Errorf(`invalid command returned from ExecuteC: expected "child"', got %q`, c.Name()) + } +} + +func TestRootUnknownCommandSilenced(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + rootCmd.SilenceErrors = true + rootCmd.SilenceUsage = true + rootCmd.AddCommand(&Command{Use: "child", Run: emptyRun}) + + output, _ := executeCommand(rootCmd, "unknown") + if output != "" { + t.Errorf("Expected blank output, because of silenced usage.\nGot:\n %q\n", output) + } +} + +func TestCommandAlias(t *testing.T) { + var timesCmdArgs []string + rootCmd := &Command{Use: "root", Args: NoArgs, Run: emptyRun} + echoCmd := &Command{ + Use: "echo", + Aliases: []string{"say", "tell"}, + Args: NoArgs, + Run: emptyRun, + } + timesCmd := &Command{ + Use: "times", + Args: ExactArgs(2), + Run: func(_ *Command, args []string) { timesCmdArgs = args }, + } + echoCmd.AddCommand(timesCmd) + rootCmd.AddCommand(echoCmd) + + output, err := executeCommand(rootCmd, "tell", "times", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + got := strings.Join(timesCmdArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("timesCmdArgs expected: %v, got: %v", expected, got) + } +} + +func TestEnablePrefixMatching(t *testing.T) { + EnablePrefixMatching = true + + var aCmdArgs []string + rootCmd := &Command{Use: "root", Args: NoArgs, Run: emptyRun} + aCmd := &Command{ + Use: "aCmd", + Args: ExactArgs(2), + Run: func(_ *Command, args []string) { aCmdArgs = args }, + } + bCmd := &Command{Use: "bCmd", Args: NoArgs, Run: emptyRun} + rootCmd.AddCommand(aCmd, bCmd) + + output, err := executeCommand(rootCmd, "a", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + got := strings.Join(aCmdArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("aCmdArgs expected: %q, got: %q", expected, got) + } + + EnablePrefixMatching = false +} + +func TestAliasPrefixMatching(t *testing.T) { + EnablePrefixMatching = true + + var timesCmdArgs []string + rootCmd := &Command{Use: "root", Args: NoArgs, Run: emptyRun} + echoCmd := &Command{ + Use: "echo", + Aliases: []string{"say", "tell"}, + Args: NoArgs, + Run: emptyRun, + } + timesCmd := &Command{ + Use: "times", + Args: ExactArgs(2), + Run: func(_ *Command, args []string) { timesCmdArgs = args }, + } + echoCmd.AddCommand(timesCmd) + rootCmd.AddCommand(echoCmd) + + output, err := executeCommand(rootCmd, "sa", "times", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + got := strings.Join(timesCmdArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("timesCmdArgs expected: %v, got: %v", expected, got) + } + + EnablePrefixMatching = false +} + +// TestChildSameName checks the correct behaviour of cobra in cases, +// when an application with name "foo" and with subcommand "foo" +// is executed with args "foo foo". +func TestChildSameName(t *testing.T) { + var fooCmdArgs []string + rootCmd := &Command{Use: "foo", Args: NoArgs, Run: emptyRun} + fooCmd := &Command{ + Use: "foo", + Args: ExactArgs(2), + Run: func(_ *Command, args []string) { fooCmdArgs = args }, + } + barCmd := &Command{Use: "bar", Args: NoArgs, Run: emptyRun} + rootCmd.AddCommand(fooCmd, barCmd) + + output, err := executeCommand(rootCmd, "foo", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + got := strings.Join(fooCmdArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("fooCmdArgs expected: %v, got: %v", expected, got) + } +} + +// TestGrandChildSameName checks the correct behaviour of cobra in cases, +// when user has a root command and a grand child +// with the same name. +func TestGrandChildSameName(t *testing.T) { + var fooCmdArgs []string + rootCmd := &Command{Use: "foo", Args: NoArgs, Run: emptyRun} + barCmd := &Command{Use: "bar", Args: NoArgs, Run: emptyRun} + fooCmd := &Command{ + Use: "foo", + Args: ExactArgs(2), + Run: func(_ *Command, args []string) { fooCmdArgs = args }, + } + barCmd.AddCommand(fooCmd) + rootCmd.AddCommand(barCmd) + + output, err := executeCommand(rootCmd, "bar", "foo", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + got := strings.Join(fooCmdArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("fooCmdArgs expected: %v, got: %v", expected, got) + } +} + +func TestFlagLong(t *testing.T) { + var cArgs []string + c := &Command{ + Use: "c", + Args: ArbitraryArgs, + Run: func(_ *Command, args []string) { cArgs = args }, + } + + var intFlagValue int + var stringFlagValue string + c.Flags().IntVar(&intFlagValue, "intf", -1, "") + c.Flags().StringVar(&stringFlagValue, "sf", "", "") + + output, err := executeCommand(c, "--intf=7", "--sf=abc", "one", "--", "two") + if output != "" { + t.Errorf("Unexpected output: %v", err) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if c.ArgsLenAtDash() != 1 { + t.Errorf("Expected ArgsLenAtDash: %v but got %v", 1, c.ArgsLenAtDash()) + } + if intFlagValue != 7 { + t.Errorf("Expected intFlagValue: %v, got %v", 7, intFlagValue) + } + if stringFlagValue != "abc" { + t.Errorf("Expected stringFlagValue: %q, got %q", "abc", stringFlagValue) + } + + got := strings.Join(cArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("Expected arguments: %q, got %q", expected, got) + } +} + +func TestFlagShort(t *testing.T) { + var cArgs []string + c := &Command{ + Use: "c", + Args: ArbitraryArgs, + Run: func(_ *Command, args []string) { cArgs = args }, + } + + var intFlagValue int + var stringFlagValue string + c.Flags().IntVarP(&intFlagValue, "intf", "i", -1, "") + c.Flags().StringVarP(&stringFlagValue, "sf", "s", "", "") + + output, err := executeCommand(c, "-i", "7", "-sabc", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", err) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if intFlagValue != 7 { + t.Errorf("Expected flag value: %v, got %v", 7, intFlagValue) + } + if stringFlagValue != "abc" { + t.Errorf("Expected stringFlagValue: %q, got %q", "abc", stringFlagValue) + } + + got := strings.Join(cArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("Expected arguments: %q, got %q", expected, got) + } +} + +func TestChildFlag(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Run: emptyRun} + rootCmd.AddCommand(childCmd) + + var intFlagValue int + childCmd.Flags().IntVarP(&intFlagValue, "intf", "i", -1, "") + + output, err := executeCommand(rootCmd, "child", "-i7") + if output != "" { + t.Errorf("Unexpected output: %v", err) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if intFlagValue != 7 { + t.Errorf("Expected flag value: %v, got %v", 7, intFlagValue) + } +} + +func TestChildFlagWithParentLocalFlag(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Run: emptyRun} + rootCmd.AddCommand(childCmd) + + var intFlagValue int + rootCmd.Flags().StringP("sf", "s", "", "") + childCmd.Flags().IntVarP(&intFlagValue, "intf", "i", -1, "") + + _, err := executeCommand(rootCmd, "child", "-i7", "-sabc") + if err == nil { + t.Errorf("Invalid flag should generate error") + } + + checkStringContains(t, err.Error(), "unknown shorthand") + + if intFlagValue != 7 { + t.Errorf("Expected flag value: %v, got %v", 7, intFlagValue) + } +} + +func TestFlagInvalidInput(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + rootCmd.Flags().IntP("intf", "i", -1, "") + + _, err := executeCommand(rootCmd, "-iabc") + if err == nil { + t.Errorf("Invalid flag value should generate error") + } + + checkStringContains(t, err.Error(), "invalid syntax") +} + +func TestFlagBeforeCommand(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Run: emptyRun} + rootCmd.AddCommand(childCmd) + + var flagValue int + childCmd.Flags().IntVarP(&flagValue, "intf", "i", -1, "") + + // With short flag. + _, err := executeCommand(rootCmd, "-i7", "child") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if flagValue != 7 { + t.Errorf("Expected flag value: %v, got %v", 7, flagValue) + } + + // With long flag. + _, err = executeCommand(rootCmd, "--intf=8", "child") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if flagValue != 8 { + t.Errorf("Expected flag value: %v, got %v", 9, flagValue) } } @@ -45,11 +468,11 @@ func TestStripFlags(t *testing.T) { []string{"foo", "bar"}, }, { - []string{"foo", "--bar", "-b"}, + []string{"foo", "--str", "-s"}, []string{"foo"}, }, { - []string{"-b", "foo", "--bar", "bar"}, + []string{"-s", "foo", "--str", "bar"}, []string{}, }, { @@ -65,7 +488,7 @@ func TestStripFlags(t *testing.T) { []string{"echo"}, }, { - []string{"-ib", "echo", "-bfoo", "baz"}, + []string{"-ib", "echo", "-sfoo", "baz"}, []string{"echo", "baz"}, }, { @@ -73,15 +496,15 @@ func TestStripFlags(t *testing.T) { []string{"bar", "blah"}, }, { - []string{"--int=baz", "-bbar", "-i", "foo", "blah"}, + []string{"--int=baz", "-sbar", "-i", "foo", "blah"}, []string{"blah"}, }, { - []string{"--cat", "bar", "-i", "foo", "blah"}, + []string{"--bool", "bar", "-i", "foo", "blah"}, []string{"bar", "blah"}, }, { - []string{"-c", "bar", "-i", "foo", "blah"}, + []string{"-b", "bar", "-i", "foo", "blah"}, []string{"bar", "blah"}, }, { @@ -94,61 +517,757 @@ func TestStripFlags(t *testing.T) { }, } - cmdPrint := &Command{ - Use: "print [string to print]", - Short: "Print anything to the screen", - Long: `an utterly useless command for testing.`, - Run: func(cmd *Command, args []string) { - tp = args - }, - } - - var flagi int - var flagstr string - var flagbool bool - cmdPrint.PersistentFlags().BoolVarP(&flagbool, "persist", "p", false, "help for persistent one") - cmdPrint.Flags().IntVarP(&flagi, "int", "i", 345, "help message for flag int") - cmdPrint.Flags().StringVarP(&flagstr, "bar", "b", "bar", "help message for flag string") - cmdPrint.Flags().BoolVarP(&flagbool, "cat", "c", false, "help message for flag bool") + c := &Command{Use: "c", Run: emptyRun} + c.PersistentFlags().BoolP("persist", "p", false, "") + c.Flags().IntP("int", "i", -1, "") + c.Flags().StringP("str", "s", "", "") + c.Flags().BoolP("bool", "b", false, "") - for _, test := range tests { - output := stripFlags(test.input, cmdPrint) - if !reflect.DeepEqual(test.output, output) { - t.Errorf("expected: %v, got: %v", test.output, output) + for i, test := range tests { + got := stripFlags(test.input, c) + if !reflect.DeepEqual(test.output, got) { + t.Errorf("(%v) Expected: %v, got: %v", i, test.output, got) } } } func TestDisableFlagParsing(t *testing.T) { - targs := []string{} - cmdPrint := &Command{ + var cArgs []string + c := &Command{ + Use: "c", DisableFlagParsing: true, - Run: func(cmd *Command, args []string) { - targs = args + Run: func(_ *Command, args []string) { + cArgs = args }, } + args := []string{"cmd", "-v", "-race", "-file", "foo.go"} - cmdPrint.SetArgs(args) - err := cmdPrint.Execute() + output, err := executeCommand(c, args...) + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if !reflect.DeepEqual(args, cArgs) { + t.Errorf("Expected: %v, got: %v", args, cArgs) + } +} + +func TestPersistentFlagsOnSameCommand(t *testing.T) { + var rootCmdArgs []string + rootCmd := &Command{ + Use: "root", + Args: ArbitraryArgs, + Run: func(_ *Command, args []string) { rootCmdArgs = args }, + } + + var flagValue int + rootCmd.PersistentFlags().IntVarP(&flagValue, "intf", "i", -1, "") + + output, err := executeCommand(rootCmd, "-i7", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } if err != nil { - t.Error(err) + t.Errorf("Unexpected error: %v", err) } - if !reflect.DeepEqual(args, targs) { - t.Errorf("expected: %v, got: %v", args, targs) + + got := strings.Join(rootCmdArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("rootCmdArgs expected: %q, got %q", expected, got) + } + if flagValue != 7 { + t.Errorf("flagValue expected: %v, got %v", 7, flagValue) + } +} + +// TestEmptyInputs checks, +// if flags correctly parsed with blank strings in args. +func TestEmptyInputs(t *testing.T) { + c := &Command{Use: "c", Run: emptyRun} + + var flagValue int + c.Flags().IntVarP(&flagValue, "intf", "i", -1, "") + + output, err := executeCommand(c, "", "-i7", "") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if flagValue != 7 { + t.Errorf("flagValue expected: %v, got %v", 7, flagValue) + } +} + +func TestOverwrittenFlag(t *testing.T) { + // TODO: This test fails, but should work. + t.Skip() + + parent := &Command{Use: "parent", Run: emptyRun} + child := &Command{Use: "child", Run: emptyRun} + + parent.PersistentFlags().Bool("boolf", false, "") + parent.PersistentFlags().Int("intf", -1, "") + child.Flags().String("strf", "", "") + child.Flags().Int("intf", -1, "") + + parent.AddCommand(child) + + childInherited := child.InheritedFlags() + childLocal := child.LocalFlags() + + if childLocal.Lookup("strf") == nil { + t.Error(`LocalFlags expected to contain "strf", got "nil"`) + } + if childInherited.Lookup("boolf") == nil { + t.Error(`InheritedFlags expected to contain "boolf", got "nil"`) + } + + if childInherited.Lookup("intf") != nil { + t.Errorf(`InheritedFlags should not contain overwritten flag "intf"`) + } + if childLocal.Lookup("intf") == nil { + t.Error(`LocalFlags expected to contain "intf", got "nil"`) + } +} + +func TestPersistentFlagsOnChild(t *testing.T) { + var childCmdArgs []string + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{ + Use: "child", + Args: ArbitraryArgs, + Run: func(_ *Command, args []string) { childCmdArgs = args }, + } + rootCmd.AddCommand(childCmd) + + var parentFlagValue int + var childFlagValue int + rootCmd.PersistentFlags().IntVarP(&parentFlagValue, "parentf", "p", -1, "") + childCmd.Flags().IntVarP(&childFlagValue, "childf", "c", -1, "") + + output, err := executeCommand(rootCmd, "child", "-c7", "-p8", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + got := strings.Join(childCmdArgs, " ") + expected := "one two" + if got != expected { + t.Errorf("childCmdArgs expected: %q, got %q", expected, got) + } + if parentFlagValue != 8 { + t.Errorf("parentFlagValue expected: %v, got %v", 8, parentFlagValue) + } + if childFlagValue != 7 { + t.Errorf("childFlagValue expected: %v, got %v", 7, childFlagValue) + } +} + +func TestRequiredFlags(t *testing.T) { + c := &Command{Use: "c", Run: emptyRun} + c.Flags().String("foo1", "", "") + c.MarkFlagRequired("foo1") + c.Flags().String("foo2", "", "") + c.MarkFlagRequired("foo2") + c.Flags().String("bar", "", "") + + expected := fmt.Sprintf("Required flag(s) %q, %q have/has not been set", "foo1", "foo2") + + _, err := executeCommand(c) + got := err.Error() + + if got != expected { + t.Errorf("Expected error: %q, got: %q", expected, got) + } +} + +func TestPersistentRequiredFlags(t *testing.T) { + parent := &Command{Use: "parent", Run: emptyRun} + parent.PersistentFlags().String("foo1", "", "") + parent.MarkPersistentFlagRequired("foo1") + parent.PersistentFlags().String("foo2", "", "") + parent.MarkPersistentFlagRequired("foo2") + parent.Flags().String("foo3", "", "") + + child := &Command{Use: "child", Run: emptyRun} + child.Flags().String("bar1", "", "") + child.MarkFlagRequired("bar1") + child.Flags().String("bar2", "", "") + child.MarkFlagRequired("bar2") + child.Flags().String("bar3", "", "") + + parent.AddCommand(child) + + expected := fmt.Sprintf("Required flag(s) %q, %q, %q, %q have/has not been set", "bar1", "bar2", "foo1", "foo2") + + _, err := executeCommand(parent, "child") + if err.Error() != expected { + t.Errorf("Expected %q, got %q", expected, err.Error()) } } func TestInitHelpFlagMergesFlags(t *testing.T) { usage := "custom flag" - baseCmd := Command{Use: "testcmd"} - baseCmd.PersistentFlags().Bool("help", false, usage) - cmd := Command{Use: "do"} - baseCmd.AddCommand(&cmd) + rootCmd := &Command{Use: "root"} + rootCmd.PersistentFlags().Bool("help", false, "custom flag") + childCmd := &Command{Use: "child"} + rootCmd.AddCommand(childCmd) + + childCmd.InitDefaultHelpFlag() + got := childCmd.Flags().Lookup("help").Usage + if got != usage { + t.Errorf("Expected the help flag from the root command with usage: %v\nGot the default with usage: %v", usage, got) + } +} + +func TestHelpCommandExecuted(t *testing.T) { + rootCmd := &Command{Use: "root", Long: "Long description", Run: emptyRun} + rootCmd.AddCommand(&Command{Use: "child", Run: emptyRun}) + + output, err := executeCommand(rootCmd, "help") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + checkStringContains(t, output, rootCmd.Long) +} - cmd.InitDefaultHelpFlag() - actual := cmd.Flags().Lookup("help").Usage - if actual != usage { - t.Fatalf("Expected the help flag from the base command with usage '%s', but got the default with usage '%s'", usage, actual) +func TestHelpCommandExecutedOnChild(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Long: "Long description", Run: emptyRun} + rootCmd.AddCommand(childCmd) + + output, err := executeCommand(rootCmd, "help", "child") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + checkStringContains(t, output, childCmd.Long) +} + +func TestSetHelpCommand(t *testing.T) { + c := &Command{Use: "c", Run: emptyRun} + c.AddCommand(&Command{Use: "empty", Run: emptyRun}) + + expected := "WORKS" + c.SetHelpCommand(&Command{ + Use: "help [command]", + Short: "Help about any command", + Long: `Help provides help for any command in the application. + Simply type ` + c.Name() + ` help [path to command] for full details.`, + Run: func(c *Command, _ []string) { c.Print(expected) }, + }) + + got, err := executeCommand(c, "help") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if got != expected { + t.Errorf("Expected to contain %q, got %q", expected, got) + } +} + +func TestHelpFlagExecuted(t *testing.T) { + rootCmd := &Command{Use: "root", Long: "Long description", Run: emptyRun} + + output, err := executeCommand(rootCmd, "--help") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + checkStringContains(t, output, rootCmd.Long) +} + +func TestHelpFlagExecutedOnChild(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Long: "Long description", Run: emptyRun} + rootCmd.AddCommand(childCmd) + + output, err := executeCommand(rootCmd, "child", "--help") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + checkStringContains(t, output, childCmd.Long) +} + +// TestHelpFlagInHelp checks, +// if '--help' flag is shown in help for child (executing `parent help child`), +// that has no other flags. +// Related to https://github.com/spf13/cobra/issues/302. +func TestHelpFlagInHelp(t *testing.T) { + parentCmd := &Command{Use: "parent", Run: func(*Command, []string) {}} + + childCmd := &Command{Use: "child", Run: func(*Command, []string) {}} + parentCmd.AddCommand(childCmd) + + output, err := executeCommand(parentCmd, "help", "child") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + checkStringContains(t, output, "[flags]") +} + +func TestFlagsInUsage(t *testing.T) { + rootCmd := &Command{Use: "root", Args: NoArgs, Run: func(*Command, []string) {}} + output, err := executeCommand(rootCmd, "--help") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + checkStringContains(t, output, "[flags]") +} + +func TestHelpExecutedOnNonRunnableChild(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Long: "Long description"} + rootCmd.AddCommand(childCmd) + + output, err := executeCommand(rootCmd, "child") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + checkStringContains(t, output, childCmd.Long) +} + +func TestUsageIsNotPrintedTwice(t *testing.T) { + var cmd = &Command{Use: "root"} + var sub = &Command{Use: "sub"} + cmd.AddCommand(sub) + + output, _ := executeCommand(cmd, "") + if strings.Count(output, "Usage:") != 1 { + t.Error("Usage output is not printed exactly once") + } +} + +func TestVisitParents(t *testing.T) { + c := &Command{Use: "app"} + sub := &Command{Use: "sub"} + dsub := &Command{Use: "dsub"} + sub.AddCommand(dsub) + c.AddCommand(sub) + + total := 0 + add := func(x *Command) { + total++ + } + sub.VisitParents(add) + if total != 1 { + t.Errorf("Should have visited 1 parent but visited %d", total) + } + + total = 0 + dsub.VisitParents(add) + if total != 2 { + t.Errorf("Should have visited 2 parents but visited %d", total) + } + + total = 0 + c.VisitParents(add) + if total != 0 { + t.Errorf("Should have visited no parents but visited %d", total) + } +} + +func TestSuggestions(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + timesCmd := &Command{ + Use: "times", + SuggestFor: []string{"counts"}, + Run: emptyRun, + } + rootCmd.AddCommand(timesCmd) + + templateWithSuggestions := "Error: unknown command \"%s\" for \"root\"\n\nDid you mean this?\n\t%s\n\nRun 'root --help' for usage.\n" + templateWithoutSuggestions := "Error: unknown command \"%s\" for \"root\"\nRun 'root --help' for usage.\n" + + tests := map[string]string{ + "time": "times", + "tiems": "times", + "tims": "times", + "timeS": "times", + "rimes": "times", + "ti": "times", + "t": "times", + "timely": "times", + "ri": "", + "timezone": "", + "foo": "", + "counts": "times", + } + + for typo, suggestion := range tests { + for _, suggestionsDisabled := range []bool{true, false} { + rootCmd.DisableSuggestions = suggestionsDisabled + + var expected string + output, _ := executeCommand(rootCmd, typo) + + if suggestion == "" || suggestionsDisabled { + expected = fmt.Sprintf(templateWithoutSuggestions, typo) + } else { + expected = fmt.Sprintf(templateWithSuggestions, typo, suggestion) + } + + if output != expected { + t.Errorf("Unexpected response.\nExpected:\n %q\nGot:\n %q\n", expected, output) + } + } + } +} + +func TestRemoveCommand(t *testing.T) { + rootCmd := &Command{Use: "root", Args: NoArgs, Run: emptyRun} + childCmd := &Command{Use: "child", Run: emptyRun} + rootCmd.AddCommand(childCmd) + rootCmd.RemoveCommand(childCmd) + + _, err := executeCommand(rootCmd, "child") + if err == nil { + t.Error("Expected error on calling removed command. Got nil.") + } +} + +func TestReplaceCommandWithRemove(t *testing.T) { + childUsed := 0 + rootCmd := &Command{Use: "root", Run: emptyRun} + child1Cmd := &Command{ + Use: "child", + Run: func(*Command, []string) { childUsed = 1 }, + } + child2Cmd := &Command{ + Use: "child", + Run: func(*Command, []string) { childUsed = 2 }, + } + rootCmd.AddCommand(child1Cmd) + rootCmd.RemoveCommand(child1Cmd) + rootCmd.AddCommand(child2Cmd) + + output, err := executeCommand(rootCmd, "child") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if childUsed == 1 { + t.Error("Removed command shouldn't be called") + } + if childUsed != 2 { + t.Error("Replacing command should have been called but didn't") + } +} + +func TestDeprecatedCommand(t *testing.T) { + rootCmd := &Command{Use: "root", Run: emptyRun} + deprecatedCmd := &Command{ + Use: "deprecated", + Deprecated: "This command is deprecated", + Run: emptyRun, + } + rootCmd.AddCommand(deprecatedCmd) + + output, err := executeCommand(rootCmd, "deprecated") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + checkStringContains(t, output, deprecatedCmd.Deprecated) +} + +func TestHooks(t *testing.T) { + var ( + persPreArgs string + preArgs string + runArgs string + postArgs string + persPostArgs string + ) + + c := &Command{ + Use: "c", + PersistentPreRun: func(_ *Command, args []string) { + persPreArgs = strings.Join(args, " ") + }, + PreRun: func(_ *Command, args []string) { + preArgs = strings.Join(args, " ") + }, + Run: func(_ *Command, args []string) { + runArgs = strings.Join(args, " ") + }, + PostRun: func(_ *Command, args []string) { + postArgs = strings.Join(args, " ") + }, + PersistentPostRun: func(_ *Command, args []string) { + persPostArgs = strings.Join(args, " ") + }, + } + + output, err := executeCommand(c, "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if persPreArgs != "one two" { + t.Errorf("Expected persPreArgs %q, got %q", "one two", persPreArgs) + } + if preArgs != "one two" { + t.Errorf("Expected preArgs %q, got %q", "one two", preArgs) + } + if runArgs != "one two" { + t.Errorf("Expected runArgs %q, got %q", "one two", runArgs) + } + if postArgs != "one two" { + t.Errorf("Expected postArgs %q, got %q", "one two", postArgs) + } + if persPostArgs != "one two" { + t.Errorf("Expected persPostArgs %q, got %q", "one two", persPostArgs) + } +} + +func TestPersistentHooks(t *testing.T) { + var ( + parentPersPreArgs string + parentPreArgs string + parentRunArgs string + parentPostArgs string + parentPersPostArgs string + ) + + var ( + childPersPreArgs string + childPreArgs string + childRunArgs string + childPostArgs string + childPersPostArgs string + ) + + parentCmd := &Command{ + Use: "parent", + PersistentPreRun: func(_ *Command, args []string) { + parentPersPreArgs = strings.Join(args, " ") + }, + PreRun: func(_ *Command, args []string) { + parentPreArgs = strings.Join(args, " ") + }, + Run: func(_ *Command, args []string) { + parentRunArgs = strings.Join(args, " ") + }, + PostRun: func(_ *Command, args []string) { + parentPostArgs = strings.Join(args, " ") + }, + PersistentPostRun: func(_ *Command, args []string) { + parentPersPostArgs = strings.Join(args, " ") + }, + } + + childCmd := &Command{ + Use: "child", + PersistentPreRun: func(_ *Command, args []string) { + childPersPreArgs = strings.Join(args, " ") + }, + PreRun: func(_ *Command, args []string) { + childPreArgs = strings.Join(args, " ") + }, + Run: func(_ *Command, args []string) { + childRunArgs = strings.Join(args, " ") + }, + PostRun: func(_ *Command, args []string) { + childPostArgs = strings.Join(args, " ") + }, + PersistentPostRun: func(_ *Command, args []string) { + childPersPostArgs = strings.Join(args, " ") + }, + } + parentCmd.AddCommand(childCmd) + + output, err := executeCommand(parentCmd, "child", "one", "two") + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + // TODO: This test fails, but should not. + // Related to https://github.com/spf13/cobra/issues/252. + // + // if parentPersPreArgs != "one two" { + // t.Errorf("Expected parentPersPreArgs %q, got %q", "one two", parentPersPreArgs) + // } + if parentPreArgs != "" { + t.Errorf("Expected blank parentPreArgs, got %q", parentPreArgs) + } + if parentRunArgs != "" { + t.Errorf("Expected blank parentRunArgs, got %q", parentRunArgs) + } + if parentPostArgs != "" { + t.Errorf("Expected blank parentPostArgs, got %q", parentPostArgs) + } + // TODO: This test fails, but should not. + // Related to https://github.com/spf13/cobra/issues/252. + // + // if parentPersPostArgs != "one two" { + // t.Errorf("Expected parentPersPostArgs %q, got %q", "one two", parentPersPostArgs) + // } + + if childPersPreArgs != "one two" { + t.Errorf("Expected childPersPreArgs %q, got %q", "one two", childPersPreArgs) + } + if childPreArgs != "one two" { + t.Errorf("Expected childPreArgs %q, got %q", "one two", childPreArgs) + } + if childRunArgs != "one two" { + t.Errorf("Expected childRunArgs %q, got %q", "one two", childRunArgs) + } + if childPostArgs != "one two" { + t.Errorf("Expected childPostArgs %q, got %q", "one two", childPostArgs) + } + if childPersPostArgs != "one two" { + t.Errorf("Expected childPersPostArgs %q, got %q", "one two", childPersPostArgs) + } +} + +// Related to https://github.com/spf13/cobra/issues/521. +func TestGlobalNormFuncPropagation(t *testing.T) { + normFunc := func(f *pflag.FlagSet, name string) pflag.NormalizedName { + return pflag.NormalizedName(name) + } + + rootCmd := &Command{Use: "root", Run: emptyRun} + childCmd := &Command{Use: "child", Run: emptyRun} + rootCmd.AddCommand(childCmd) + + rootCmd.SetGlobalNormalizationFunc(normFunc) + if reflect.ValueOf(normFunc).Pointer() != reflect.ValueOf(rootCmd.GlobalNormalizationFunc()).Pointer() { + t.Error("rootCmd seems to have a wrong normalization function") + } + + if reflect.ValueOf(normFunc).Pointer() != reflect.ValueOf(childCmd.GlobalNormalizationFunc()).Pointer() { + t.Error("childCmd should have had the normalization function of rootCmd") + } +} + +// Related to https://github.com/spf13/cobra/issues/521. +func TestNormPassedOnLocal(t *testing.T) { + toUpper := func(f *pflag.FlagSet, name string) pflag.NormalizedName { + return pflag.NormalizedName(strings.ToUpper(name)) + } + + c := &Command{} + c.Flags().Bool("flagname", true, "this is a dummy flag") + c.SetGlobalNormalizationFunc(toUpper) + if c.LocalFlags().Lookup("flagname") != c.LocalFlags().Lookup("FLAGNAME") { + t.Error("Normalization function should be passed on to Local flag set") + } +} + +// Related to https://github.com/spf13/cobra/issues/521. +func TestNormPassedOnInherited(t *testing.T) { + toUpper := func(f *pflag.FlagSet, name string) pflag.NormalizedName { + return pflag.NormalizedName(strings.ToUpper(name)) + } + + c := &Command{} + c.SetGlobalNormalizationFunc(toUpper) + + child1 := &Command{} + c.AddCommand(child1) + + c.PersistentFlags().Bool("flagname", true, "") + + child2 := &Command{} + c.AddCommand(child2) + + inherited := child1.InheritedFlags() + if inherited.Lookup("flagname") == nil || inherited.Lookup("flagname") != inherited.Lookup("FLAGNAME") { + t.Error("Normalization function should be passed on to inherited flag set in command added before flag") + } + + inherited = child2.InheritedFlags() + if inherited.Lookup("flagname") == nil || inherited.Lookup("flagname") != inherited.Lookup("FLAGNAME") { + t.Error("Normalization function should be passed on to inherited flag set in command added after flag") + } +} + +// Related to https://github.com/spf13/cobra/issues/521. +func TestConsistentNormalizedName(t *testing.T) { + toUpper := func(f *pflag.FlagSet, name string) pflag.NormalizedName { + return pflag.NormalizedName(strings.ToUpper(name)) + } + n := func(f *pflag.FlagSet, name string) pflag.NormalizedName { + return pflag.NormalizedName(name) + } + + c := &Command{} + c.Flags().Bool("flagname", true, "") + c.SetGlobalNormalizationFunc(toUpper) + c.SetGlobalNormalizationFunc(n) + + if c.LocalFlags().Lookup("flagname") == c.LocalFlags().Lookup("FLAGNAME") { + t.Error("Normalizing flag names should not result in duplicate flags") + } +} + +func TestFlagOnPflagCommandLine(t *testing.T) { + flagName := "flagOnCommandLine" + pflag.String(flagName, "", "about my flag") + + c := &Command{Use: "c", Run: emptyRun} + c.AddCommand(&Command{Use: "child", Run: emptyRun}) + + output, _ := executeCommand(c, "--help") + checkStringContains(t, output, flagName) + + resetCommandLineFlagSet() +} + +// TestHiddenCommandExecutes checks, +// if hidden commands run as intended. +func TestHiddenCommandExecutes(t *testing.T) { + executed := false + c := &Command{ + Use: "c", + Hidden: true, + Run: func(*Command, []string) { executed = true }, + } + + output, err := executeCommand(c) + if output != "" { + t.Errorf("Unexpected output: %v", output) + } + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + if !executed { + t.Error("Hidden command should have been executed") + } +} + +// test to ensure hidden commands do not show up in usage/help text +func TestHiddenCommandIsHidden(t *testing.T) { + c := &Command{Use: "c", Hidden: true, Run: emptyRun} + if c.IsAvailableCommand() { + t.Errorf("Hidden command should be unavailable") } } @@ -158,15 +1277,16 @@ func TestCommandsAreSorted(t *testing.T) { originalNames := []string{"middle", "zlast", "afirst"} expectedNames := []string{"afirst", "middle", "zlast"} - var tmpCommand = &Command{Use: "tmp"} + var rootCmd = &Command{Use: "root"} for _, name := range originalNames { - tmpCommand.AddCommand(&Command{Use: name}) + rootCmd.AddCommand(&Command{Use: name}) } - for i, c := range tmpCommand.Commands() { - if expectedNames[i] != c.Name() { - t.Errorf("expected: %s, got: %s", expectedNames[i], c.Name()) + for i, c := range rootCmd.Commands() { + got := c.Name() + if expectedNames[i] != got { + t.Errorf("Expected: %s, got: %s", expectedNames[i], got) } } @@ -178,15 +1298,16 @@ func TestEnableCommandSortingIsDisabled(t *testing.T) { originalNames := []string{"middle", "zlast", "afirst"} - var tmpCommand = &Command{Use: "tmp"} + var rootCmd = &Command{Use: "root"} for _, name := range originalNames { - tmpCommand.AddCommand(&Command{Use: name}) + rootCmd.AddCommand(&Command{Use: name}) } - for i, c := range tmpCommand.Commands() { - if originalNames[i] != c.Name() { - t.Errorf("expected: %s, got: %s", originalNames[i], c.Name()) + for i, c := range rootCmd.Commands() { + got := c.Name() + if originalNames[i] != got { + t.Errorf("expected: %s, got: %s", originalNames[i], got) } } @@ -194,33 +1315,27 @@ func TestEnableCommandSortingIsDisabled(t *testing.T) { } func TestSetOutput(t *testing.T) { - cmd := &Command{} - cmd.SetOutput(nil) - if out := cmd.OutOrStdout(); out != os.Stdout { - t.Fatalf("expected setting output to nil to revert back to stdout, got %v", out) + c := &Command{} + c.SetOutput(nil) + if out := c.OutOrStdout(); out != os.Stdout { + t.Errorf("Expected setting output to nil to revert back to stdout") } } func TestFlagErrorFunc(t *testing.T) { - cmd := &Command{ - Use: "print", - RunE: func(cmd *Command, args []string) error { - return nil - }, - } - expectedFmt := "This is expected: %s" + c := &Command{Use: "c", Run: emptyRun} - cmd.SetFlagErrorFunc(func(c *Command, err error) error { + expectedFmt := "This is expected: %v" + c.SetFlagErrorFunc(func(_ *Command, err error) error { return fmt.Errorf(expectedFmt, err) }) - cmd.SetArgs([]string{"--bogus-flag"}) - cmd.SetOutput(new(bytes.Buffer)) - err := cmd.Execute() + _, err := executeCommand(c, "--unknown-flag") - expected := fmt.Sprintf(expectedFmt, "unknown flag: --bogus-flag") - if err.Error() != expected { - t.Errorf("expected %v, got %v", expected, err.Error()) + got := err.Error() + expected := fmt.Sprintf(expectedFmt, "unknown flag: --unknown-flag") + if got != expected { + t.Errorf("Expected %v, got %v", expected, got) } } @@ -228,19 +1343,19 @@ func TestFlagErrorFunc(t *testing.T) { // if cmd.LocalFlags() is unsorted when cmd.Flags().SortFlags set to false. // Related to https://github.com/spf13/cobra/issues/404. func TestSortedFlags(t *testing.T) { - cmd := &Command{} - cmd.Flags().SortFlags = false + c := &Command{} + c.Flags().SortFlags = false names := []string{"C", "B", "A", "D"} for _, name := range names { - cmd.Flags().Bool(name, false, "") + c.Flags().Bool(name, false, "") } i := 0 - cmd.LocalFlags().VisitAll(func(f *pflag.Flag) { + c.LocalFlags().VisitAll(func(f *pflag.Flag) { if i == len(names) { return } - if isStringInStringSlice(f.Name, names) { + if stringInSlice(f.Name, names) { if names[i] != f.Name { t.Errorf("Incorrect order. Expected %v, got %v", names[i], f.Name) } @@ -249,101 +1364,145 @@ func TestSortedFlags(t *testing.T) { }) } -// contains checks, if s is in ss. -func isStringInStringSlice(s string, ss []string) bool { - for _, v := range ss { - if v == s { - return true - } - } - return false -} - -// TestHelpFlagInHelp checks, -// if '--help' flag is shown in help for child (executing `parent help child`), -// that has no other flags. -// Related to https://github.com/spf13/cobra/issues/302. -func TestHelpFlagInHelp(t *testing.T) { - output := new(bytes.Buffer) - parent := &Command{Use: "parent", Run: func(*Command, []string) {}} - parent.SetOutput(output) - - child := &Command{Use: "child", Run: func(*Command, []string) {}} - parent.AddCommand(child) - - parent.SetArgs([]string{"help", "child"}) - err := parent.Execute() - if err != nil { - t.Fatal(err) - } - - if !strings.Contains(output.String(), "[flags]") { - t.Errorf("\nExpecting to contain: %v\nGot: %v", "[flags]", output.String()) - } -} - // TestMergeCommandLineToFlags checks, // if pflag.CommandLine is correctly merged to c.Flags() after first call // of c.mergePersistentFlags. // Related to https://github.com/spf13/cobra/issues/443. func TestMergeCommandLineToFlags(t *testing.T) { pflag.Bool("boolflag", false, "") - c := &Command{Use: "c", Run: func(*Command, []string) {}} + c := &Command{Use: "c", Run: emptyRun} c.mergePersistentFlags() if c.Flags().Lookup("boolflag") == nil { t.Fatal("Expecting to have flag from CommandLine in c.Flags()") } - // Reset pflag.CommandLine flagset. - pflag.CommandLine = pflag.NewFlagSet(os.Args[0], pflag.ExitOnError) + resetCommandLineFlagSet() } // TestUseDeprecatedFlags checks, // if cobra.Execute() prints a message, if a deprecated flag is used. // Related to https://github.com/spf13/cobra/issues/463. func TestUseDeprecatedFlags(t *testing.T) { - c := &Command{Use: "c", Run: func(*Command, []string) {}} - output := new(bytes.Buffer) - c.SetOutput(output) + c := &Command{Use: "c", Run: emptyRun} c.Flags().BoolP("deprecated", "d", false, "deprecated flag") c.Flags().MarkDeprecated("deprecated", "This flag is deprecated") - c.SetArgs([]string{"c", "-d"}) - if err := c.Execute(); err != nil { + output, err := executeCommand(c, "c", "-d") + if err != nil { t.Error("Unexpected error:", err) } - if !strings.Contains(output.String(), "This flag is deprecated") { - t.Errorf("Expected to contain deprecated message, but got %q", output.String()) + checkStringContains(t, output, "This flag is deprecated") +} + +func TestTraverseWithParentFlags(t *testing.T) { + rootCmd := &Command{Use: "root", TraverseChildren: true} + rootCmd.Flags().String("str", "", "") + rootCmd.Flags().BoolP("bool", "b", false, "") + + childCmd := &Command{Use: "child"} + childCmd.Flags().Int("int", -1, "") + + rootCmd.AddCommand(childCmd) + + c, args, err := rootCmd.Traverse([]string{"-b", "--str", "ok", "child", "--int"}) + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if len(args) != 1 && args[0] != "--add" { + t.Errorf("Wrong args: %v", args) + } + if c.Name() != childCmd.Name() { + t.Errorf("Expected command: %q, got: %q", childCmd.Name(), c.Name()) } } -// TestSetHelpCommand checks, if SetHelpCommand works correctly. -func TestSetHelpCommand(t *testing.T) { - c := &Command{Use: "c", Run: func(*Command, []string) {}} - output := new(bytes.Buffer) - c.SetOutput(output) - c.SetArgs([]string{"help"}) - - // Help will not be shown, if c has no subcommands. - c.AddCommand(&Command{ - Use: "empty", - Run: func(cmd *Command, args []string) {}, - }) +func TestTraverseNoParentFlags(t *testing.T) { + rootCmd := &Command{Use: "root", TraverseChildren: true} + rootCmd.Flags().String("foo", "", "foo things") - correctMessage := "WORKS" - c.SetHelpCommand(&Command{ - Use: "help [command]", - Short: "Help about any command", - Long: `Help provides help for any command in the application. - Simply type ` + c.Name() + ` help [path to command] for full details.`, - Run: func(c *Command, args []string) { c.Print(correctMessage) }, - }) + childCmd := &Command{Use: "child"} + childCmd.Flags().String("str", "", "") + rootCmd.AddCommand(childCmd) - if err := c.Execute(); err != nil { - t.Error("Unexpected error:", err) + c, args, err := rootCmd.Traverse([]string{"child"}) + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if len(args) != 0 { + t.Errorf("Wrong args %v", args) + } + if c.Name() != childCmd.Name() { + t.Errorf("Expected command: %q, got: %q", childCmd.Name(), c.Name()) + } +} + +func TestTraverseWithBadParentFlags(t *testing.T) { + rootCmd := &Command{Use: "root", TraverseChildren: true} + + childCmd := &Command{Use: "child"} + childCmd.Flags().String("str", "", "") + rootCmd.AddCommand(childCmd) + + expected := "unknown flag: --str" + + c, _, err := rootCmd.Traverse([]string{"--str", "ok", "child"}) + if err == nil || !strings.Contains(err.Error(), expected) { + t.Errorf("Expected error, %q, got %q", expected, err) + } + if c != nil { + t.Errorf("Expected nil command") } +} + +func TestTraverseWithBadChildFlag(t *testing.T) { + rootCmd := &Command{Use: "root", TraverseChildren: true} + rootCmd.Flags().String("str", "", "") + + childCmd := &Command{Use: "child"} + rootCmd.AddCommand(childCmd) + + // Expect no error because the last commands args shouldn't be parsed in + // Traverse. + c, args, err := rootCmd.Traverse([]string{"child", "--str"}) + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if len(args) != 1 && args[0] != "--str" { + t.Errorf("Wrong args: %v", args) + } + if c.Name() != childCmd.Name() { + t.Errorf("Expected command %q, got: %q", childCmd.Name(), c.Name()) + } +} + +func TestTraverseWithTwoSubcommands(t *testing.T) { + rootCmd := &Command{Use: "root", TraverseChildren: true} + + subCmd := &Command{Use: "sub", TraverseChildren: true} + rootCmd.AddCommand(subCmd) + + subsubCmd := &Command{ + Use: "subsub", + } + subCmd.AddCommand(subsubCmd) + + c, _, err := rootCmd.Traverse([]string{"sub", "subsub"}) + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } + if c.Name() != subsubCmd.Name() { + t.Fatalf("Expected command: %q, got %q", subsubCmd.Name(), c.Name()) + } +} + +// TestUpdateName checks if c.Name() updates on changed c.Use. +// Related to https://github.com/spf13/cobra/pull/422#discussion_r143918343. +func TestUpdateName(t *testing.T) { + c := &Command{Use: "name xyz"} + originalName := c.Name() - if output.String() != correctMessage { - t.Errorf("Expected to contain %q message, but got %q", correctMessage, output.String()) + c.Use = "changedName abc" + if originalName == c.Name() || c.Name() != "changedName" { + t.Error("c.Name() should be updated on changed c.Use") } } diff --git a/vendor/github.com/spf13/cobra/doc/cmd_test.go b/vendor/github.com/spf13/cobra/doc/cmd_test.go index a4b5568fa..d29c577df 100644 --- a/vendor/github.com/spf13/cobra/doc/cmd_test.go +++ b/vendor/github.com/spf13/cobra/doc/cmd_test.go @@ -1,145 +1,86 @@ package doc import ( - "bytes" - "fmt" - "runtime" "strings" "testing" "github.com/spf13/cobra" ) -var flagb1, flagb2, flagb3, flagbr, flagbp bool -var flags1, flags2a, flags2b, flags3 string -var flagi1, flagi2, flagi3, flagir int +func emptyRun(*cobra.Command, []string) {} -const strtwoParentHelp = "help message for parent flag strtwo" -const strtwoChildHelp = "help message for child flag strtwo" +func init() { + rootCmd.PersistentFlags().StringP("rootflag", "r", "two", "") + rootCmd.PersistentFlags().StringP("strtwo", "t", "two", "help message for parent flag strtwo") -var cmdEcho = &cobra.Command{ + echoCmd.PersistentFlags().StringP("strone", "s", "one", "help message for flag strone") + echoCmd.PersistentFlags().BoolP("persistentbool", "p", false, "help message for flag persistentbool") + echoCmd.Flags().IntP("intone", "i", 123, "help message for flag intone") + echoCmd.Flags().BoolP("boolone", "b", true, "help message for flag boolone") + + timesCmd.PersistentFlags().StringP("strtwo", "t", "2", "help message for child flag strtwo") + timesCmd.Flags().IntP("inttwo", "j", 234, "help message for flag inttwo") + timesCmd.Flags().BoolP("booltwo", "c", false, "help message for flag booltwo") + + printCmd.PersistentFlags().StringP("strthree", "s", "three", "help message for flag strthree") + printCmd.Flags().IntP("intthree", "i", 345, "help message for flag intthree") + printCmd.Flags().BoolP("boolthree", "b", true, "help message for flag boolthree") + + echoCmd.AddCommand(timesCmd, echoSubCmd, deprecatedCmd) + rootCmd.AddCommand(printCmd, echoCmd) +} + +var rootCmd = &cobra.Command{ + Use: "root", + Short: "Root short description", + Long: "Root long description", + Run: emptyRun, +} + +var echoCmd = &cobra.Command{ Use: "echo [string to echo]", Aliases: []string{"say"}, Short: "Echo anything to the screen", - Long: `an utterly useless command for testing.`, + Long: "an utterly useless command for testing", Example: "Just run cobra-test echo", } -var cmdEchoSub = &cobra.Command{ +var echoSubCmd = &cobra.Command{ Use: "echosub [string to print]", Short: "second sub command for echo", - Long: `an absolutely utterly useless command for testing gendocs!.`, - Run: func(cmd *cobra.Command, args []string) {}, + Long: "an absolutely utterly useless command for testing gendocs!.", + Run: emptyRun, +} + +var timesCmd = &cobra.Command{ + Use: "times [# times] [string to echo]", + SuggestFor: []string{"counts"}, + Short: "Echo anything to the screen more times", + Long: `a slightly useless command for testing.`, + Run: emptyRun, } -var cmdDeprecated = &cobra.Command{ +var deprecatedCmd = &cobra.Command{ Use: "deprecated [can't do anything here]", Short: "A command which is deprecated", Long: `an absolutely utterly useless command for testing deprecation!.`, Deprecated: "Please use echo instead", } -var cmdTimes = &cobra.Command{ - Use: "times [# times] [string to echo]", - SuggestFor: []string{"counts"}, - Short: "Echo anything to the screen more times", - Long: `a slightly useless command for testing.`, - PersistentPreRun: func(cmd *cobra.Command, args []string) {}, - Run: func(cmd *cobra.Command, args []string) {}, -} - -var cmdPrint = &cobra.Command{ +var printCmd = &cobra.Command{ Use: "print [string to print]", Short: "Print anything to the screen", Long: `an absolutely utterly useless command for testing.`, } -var cmdRootNoRun = &cobra.Command{ - Use: "cobra-test", - Short: "The root can run its own function", - Long: "The root description for help", -} - -var cmdRootSameName = &cobra.Command{ - Use: "print", - Short: "Root with the same name as a subcommand", - Long: "The root description for help", -} - -var cmdRootWithRun = &cobra.Command{ - Use: "cobra-test", - Short: "The root can run its own function", - Long: "The root description for help", -} - -var cmdSubNoRun = &cobra.Command{ - Use: "subnorun", - Short: "A subcommand without a Run function", - Long: "A long output about a subcommand without a Run function", -} - -var cmdVersion1 = &cobra.Command{ - Use: "version", - Short: "Print the version number", - Long: `First version of the version command`, -} - -var cmdVersion2 = &cobra.Command{ - Use: "version", - Short: "Print the version number", - Long: `Second version of the version command`, -} - -func flagInit() { - cmdEcho.ResetFlags() - cmdPrint.ResetFlags() - cmdTimes.ResetFlags() - cmdRootNoRun.ResetFlags() - cmdRootSameName.ResetFlags() - cmdRootWithRun.ResetFlags() - cmdSubNoRun.ResetFlags() - cmdRootNoRun.PersistentFlags().StringVarP(&flags2a, "strtwo", "t", "two", strtwoParentHelp) - cmdEcho.Flags().IntVarP(&flagi1, "intone", "i", 123, "help message for flag intone") - cmdTimes.Flags().IntVarP(&flagi2, "inttwo", "j", 234, "help message for flag inttwo") - cmdPrint.Flags().IntVarP(&flagi3, "intthree", "i", 345, "help message for flag intthree") - cmdEcho.PersistentFlags().StringVarP(&flags1, "strone", "s", "one", "help message for flag strone") - cmdEcho.PersistentFlags().BoolVarP(&flagbp, "persistentbool", "p", false, "help message for flag persistentbool") - cmdTimes.PersistentFlags().StringVarP(&flags2b, "strtwo", "t", "2", strtwoChildHelp) - cmdPrint.PersistentFlags().StringVarP(&flags3, "strthree", "s", "three", "help message for flag strthree") - cmdEcho.Flags().BoolVarP(&flagb1, "boolone", "b", true, "help message for flag boolone") - cmdTimes.Flags().BoolVarP(&flagb2, "booltwo", "c", false, "help message for flag booltwo") - cmdPrint.Flags().BoolVarP(&flagb3, "boolthree", "b", true, "help message for flag boolthree") - cmdVersion1.ResetFlags() - cmdVersion2.ResetFlags() -} - -func initializeWithRootCmd() *cobra.Command { - cmdRootWithRun.ResetCommands() - flagInit() - cmdRootWithRun.Flags().BoolVarP(&flagbr, "boolroot", "b", false, "help message for flag boolroot") - cmdRootWithRun.Flags().IntVarP(&flagir, "introot", "i", 321, "help message for flag introot") - return cmdRootWithRun -} - -func checkStringContains(t *testing.T, found, expected string) { - if !strings.Contains(found, expected) { - logErr(t, found, expected) +func checkStringContains(t *testing.T, got, expected string) { + if !strings.Contains(got, expected) { + t.Errorf("Expected to contain: \n %v\nGot:\n %v\n", expected, got) } } -func checkStringOmits(t *testing.T, found, expected string) { - if strings.Contains(found, expected) { - logErr(t, found, expected) - } -} - -func logErr(t *testing.T, found, expected string) { - out := new(bytes.Buffer) - - _, _, line, ok := runtime.Caller(2) - if ok { - fmt.Fprintf(out, "Line: %d ", line) +func checkStringOmits(t *testing.T, got, expected string) { + if strings.Contains(got, expected) { + t.Errorf("Expected to not contain: \n %v\nGot: %v", expected, got) } - fmt.Fprintf(out, "Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - t.Errorf(out.String()) } diff --git a/vendor/github.com/spf13/cobra/doc/man_docs_test.go b/vendor/github.com/spf13/cobra/doc/man_docs_test.go index 87991063e..62f85e47f 100644 --- a/vendor/github.com/spf13/cobra/doc/man_docs_test.go +++ b/vendor/github.com/spf13/cobra/doc/man_docs_test.go @@ -18,135 +18,97 @@ func translate(in string) string { } func TestGenManDoc(t *testing.T) { - c := initializeWithRootCmd() - // Need two commands to run the command alphabetical sort - cmdEcho.AddCommand(cmdTimes, cmdEchoSub, cmdDeprecated) - c.AddCommand(cmdPrint, cmdEcho) - cmdRootWithRun.PersistentFlags().StringVarP(&flags2a, "rootflag", "r", "two", strtwoParentHelp) - - out := new(bytes.Buffer) - header := &GenManHeader{ Title: "Project", Section: "2", } + // We generate on a subcommand so we have both subcommands and parents - if err := GenMan(cmdEcho, header, out); err != nil { + buf := new(bytes.Buffer) + if err := GenMan(echoCmd, header, buf); err != nil { t.Fatal(err) } - found := out.String() + output := buf.String() // Make sure parent has - in CommandPath() in SEE ALSO: - parentPath := cmdEcho.Parent().CommandPath() + parentPath := echoCmd.Parent().CommandPath() dashParentPath := strings.Replace(parentPath, " ", "-", -1) expected := translate(dashParentPath) expected = expected + "(" + header.Section + ")" - checkStringContains(t, found, expected) - - // Our description - expected = translate(cmdEcho.Name()) - checkStringContains(t, found, expected) - - // Better have our example - expected = translate(cmdEcho.Name()) - checkStringContains(t, found, expected) - - // A local flag - expected = "boolone" - checkStringContains(t, found, expected) - - // persistent flag on parent - expected = "rootflag" - checkStringContains(t, found, expected) - - // We better output info about our parent - expected = translate(cmdRootWithRun.Name()) - checkStringContains(t, found, expected) - - // And about subcommands - expected = translate(cmdEchoSub.Name()) - checkStringContains(t, found, expected) - - unexpected := translate(cmdDeprecated.Name()) - checkStringOmits(t, found, unexpected) - - // auto generated - expected = translate("Auto generated") - checkStringContains(t, found, expected) + checkStringContains(t, output, expected) + + checkStringContains(t, output, translate(echoCmd.Name())) + checkStringContains(t, output, translate(echoCmd.Name())) + checkStringContains(t, output, "boolone") + checkStringContains(t, output, "rootflag") + checkStringContains(t, output, translate(rootCmd.Name())) + checkStringContains(t, output, translate(echoSubCmd.Name())) + checkStringOmits(t, output, translate(deprecatedCmd.Name())) + checkStringContains(t, output, translate("Auto generated")) } func TestGenManNoGenTag(t *testing.T) { - c := initializeWithRootCmd() - // Need two commands to run the command alphabetical sort - cmdEcho.AddCommand(cmdTimes, cmdEchoSub, cmdDeprecated) - c.AddCommand(cmdPrint, cmdEcho) - cmdRootWithRun.PersistentFlags().StringVarP(&flags2a, "rootflag", "r", "two", strtwoParentHelp) - cmdEcho.DisableAutoGenTag = true - out := new(bytes.Buffer) + echoCmd.DisableAutoGenTag = true + defer func() { echoCmd.DisableAutoGenTag = false }() header := &GenManHeader{ Title: "Project", Section: "2", } + // We generate on a subcommand so we have both subcommands and parents - if err := GenMan(cmdEcho, header, out); err != nil { + buf := new(bytes.Buffer) + if err := GenMan(echoCmd, header, buf); err != nil { t.Fatal(err) } - found := out.String() + output := buf.String() unexpected := translate("#HISTORY") - checkStringOmits(t, found, unexpected) + checkStringOmits(t, output, unexpected) } func TestGenManSeeAlso(t *testing.T) { - noop := func(cmd *cobra.Command, args []string) {} - - top := &cobra.Command{Use: "top", Run: noop} - aaa := &cobra.Command{Use: "aaa", Run: noop, Hidden: true} // #229 - bbb := &cobra.Command{Use: "bbb", Run: noop} - ccc := &cobra.Command{Use: "ccc", Run: noop} - top.AddCommand(aaa, bbb, ccc) + rootCmd := &cobra.Command{Use: "root", Run: emptyRun} + aCmd := &cobra.Command{Use: "aaa", Run: emptyRun, Hidden: true} // #229 + bCmd := &cobra.Command{Use: "bbb", Run: emptyRun} + cCmd := &cobra.Command{Use: "ccc", Run: emptyRun} + rootCmd.AddCommand(aCmd, bCmd, cCmd) - out := new(bytes.Buffer) + buf := new(bytes.Buffer) header := &GenManHeader{} - if err := GenMan(top, header, out); err != nil { + if err := GenMan(rootCmd, header, buf); err != nil { t.Fatal(err) } + scanner := bufio.NewScanner(buf) - scanner := bufio.NewScanner(out) - - if err := AssertLineFound(scanner, ".SH SEE ALSO"); err != nil { - t.Fatal(fmt.Errorf("Couldn't find SEE ALSO section header: %s", err.Error())) + if err := assertLineFound(scanner, ".SH SEE ALSO"); err != nil { + t.Fatalf("Couldn't find SEE ALSO section header: %v", err) } - - if err := AssertNextLineEquals(scanner, ".PP"); err != nil { - t.Fatal(fmt.Errorf("First line after SEE ALSO wasn't break-indent: %s", err.Error())) + if err := assertNextLineEquals(scanner, ".PP"); err != nil { + t.Fatalf("First line after SEE ALSO wasn't break-indent: %v", err) } - - if err := AssertNextLineEquals(scanner, `\fBtop\-bbb(1)\fP, \fBtop\-ccc(1)\fP`); err != nil { - t.Fatal(fmt.Errorf("Second line after SEE ALSO wasn't correct: %s", err.Error())) + if err := assertNextLineEquals(scanner, `\fBroot\-bbb(1)\fP, \fBroot\-ccc(1)\fP`); err != nil { + t.Fatalf("Second line after SEE ALSO wasn't correct: %v", err) } } func TestManPrintFlagsHidesShortDeperecated(t *testing.T) { - cmd := &cobra.Command{} - flags := cmd.Flags() - flags.StringP("foo", "f", "default", "Foo flag") - flags.MarkShorthandDeprecated("foo", "don't use it no more") + c := &cobra.Command{} + c.Flags().StringP("foo", "f", "default", "Foo flag") + c.Flags().MarkShorthandDeprecated("foo", "don't use it no more") - out := new(bytes.Buffer) - manPrintFlags(out, flags) + buf := new(bytes.Buffer) + manPrintFlags(buf, c.Flags()) + got := buf.String() expected := "**--foo**=\"default\"\n\tFoo flag\n\n" - if out.String() != expected { - t.Fatalf("Expected %s, but got %s", expected, out.String()) + if got != expected { + t.Errorf("Expected %v, got %v", expected, got) } } func TestGenManTree(t *testing.T) { - cmd := &cobra.Command{ - Use: "do [OPTIONS] arg1 arg2", - } + c := &cobra.Command{Use: "do [OPTIONS] arg1 arg2"} header := &GenManHeader{Section: "2"} tmpdir, err := ioutil.TempDir("", "test-gen-man-tree") if err != nil { @@ -154,7 +116,7 @@ func TestGenManTree(t *testing.T) { } defer os.RemoveAll(tmpdir) - if err := GenManTree(cmd, header, tmpdir); err != nil { + if err := GenManTree(c, header, tmpdir); err != nil { t.Fatalf("GenManTree failed: %s", err.Error()) } @@ -167,7 +129,7 @@ func TestGenManTree(t *testing.T) { } } -func AssertLineFound(scanner *bufio.Scanner, expectedLine string) error { +func assertLineFound(scanner *bufio.Scanner, expectedLine string) error { for scanner.Scan() { line := scanner.Text() if line == expectedLine { @@ -176,30 +138,29 @@ func AssertLineFound(scanner *bufio.Scanner, expectedLine string) error { } if err := scanner.Err(); err != nil { - return fmt.Errorf("AssertLineFound: scan failed: %s", err.Error()) + return fmt.Errorf("scan failed: %s", err) } - return fmt.Errorf("AssertLineFound: hit EOF before finding %#v", expectedLine) + return fmt.Errorf("hit EOF before finding %v", expectedLine) } -func AssertNextLineEquals(scanner *bufio.Scanner, expectedLine string) error { +func assertNextLineEquals(scanner *bufio.Scanner, expectedLine string) error { if scanner.Scan() { line := scanner.Text() if line == expectedLine { return nil } - return fmt.Errorf("AssertNextLineEquals: got %#v, not %#v", line, expectedLine) + return fmt.Errorf("got %v, not %v", line, expectedLine) } if err := scanner.Err(); err != nil { - return fmt.Errorf("AssertNextLineEquals: scan failed: %s", err.Error()) + return fmt.Errorf("scan failed: %v", err) } - return fmt.Errorf("AssertNextLineEquals: hit EOF before finding %#v", expectedLine) + return fmt.Errorf("hit EOF before finding %v", expectedLine) } func BenchmarkGenManToFile(b *testing.B) { - c := initializeWithRootCmd() file, err := ioutil.TempFile("", "") if err != nil { b.Fatal(err) @@ -209,7 +170,7 @@ func BenchmarkGenManToFile(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { - if err := GenMan(c, nil, file); err != nil { + if err := GenMan(rootCmd, nil, file); err != nil { b.Fatal(err) } } diff --git a/vendor/github.com/spf13/cobra/doc/md_docs_test.go b/vendor/github.com/spf13/cobra/doc/md_docs_test.go index ba6b9a46e..b0fa68c0b 100644 --- a/vendor/github.com/spf13/cobra/doc/md_docs_test.go +++ b/vendor/github.com/spf13/cobra/doc/md_docs_test.go @@ -5,100 +5,51 @@ import ( "io/ioutil" "os" "path/filepath" - "strings" "testing" "github.com/spf13/cobra" ) func TestGenMdDoc(t *testing.T) { - c := initializeWithRootCmd() - // Need two commands to run the command alphabetical sort - cmdEcho.AddCommand(cmdTimes, cmdEchoSub, cmdDeprecated) - c.AddCommand(cmdPrint, cmdEcho) - cmdRootWithRun.PersistentFlags().StringVarP(&flags2a, "rootflag", "r", "two", strtwoParentHelp) - - out := new(bytes.Buffer) - - // We generate on s subcommand so we have both subcommands and parents - if err := GenMarkdown(cmdEcho, out); err != nil { + // We generate on subcommand so we have both subcommands and parents. + buf := new(bytes.Buffer) + if err := GenMarkdown(echoCmd, buf); err != nil { t.Fatal(err) } - found := out.String() - - // Our description - expected := cmdEcho.Long - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // Better have our example - expected = cmdEcho.Example - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // A local flag - expected = "boolone" - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // persistent flag on parent - expected = "rootflag" - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // We better output info about our parent - expected = cmdRootWithRun.Short - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // And about subcommands - expected = cmdEchoSub.Short - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - unexpected := cmdDeprecated.Short - if strings.Contains(found, unexpected) { - t.Errorf("Unexpected response.\nFound: %v\nBut should not have!!\n", unexpected) - } + output := buf.String() + + checkStringContains(t, output, echoCmd.Long) + checkStringContains(t, output, echoCmd.Example) + checkStringContains(t, output, "boolone") + checkStringContains(t, output, "rootflag") + checkStringContains(t, output, rootCmd.Short) + checkStringContains(t, output, echoSubCmd.Short) + checkStringOmits(t, output, deprecatedCmd.Short) } func TestGenMdNoTag(t *testing.T) { - c := initializeWithRootCmd() - // Need two commands to run the command alphabetical sort - cmdEcho.AddCommand(cmdTimes, cmdEchoSub, cmdDeprecated) - c.AddCommand(cmdPrint, cmdEcho) - c.DisableAutoGenTag = true - cmdRootWithRun.PersistentFlags().StringVarP(&flags2a, "rootflag", "r", "two", strtwoParentHelp) - out := new(bytes.Buffer) + rootCmd.DisableAutoGenTag = true + defer func() { rootCmd.DisableAutoGenTag = false }() - if err := GenMarkdown(c, out); err != nil { + buf := new(bytes.Buffer) + if err := GenMarkdown(rootCmd, buf); err != nil { t.Fatal(err) } - found := out.String() - - unexpected := "Auto generated" - checkStringOmits(t, found, unexpected) + output := buf.String() + checkStringOmits(t, output, "Auto generated") } func TestGenMdTree(t *testing.T) { - cmd := &cobra.Command{ - Use: "do [OPTIONS] arg1 arg2", - } + c := &cobra.Command{Use: "do [OPTIONS] arg1 arg2"} tmpdir, err := ioutil.TempDir("", "test-gen-md-tree") if err != nil { - t.Fatalf("Failed to create tmpdir: %s", err.Error()) + t.Fatalf("Failed to create tmpdir: %v", err) } defer os.RemoveAll(tmpdir) - if err := GenMarkdownTree(cmd, tmpdir); err != nil { - t.Fatalf("GenMarkdownTree failed: %s", err.Error()) + if err := GenMarkdownTree(c, tmpdir); err != nil { + t.Fatalf("GenMarkdownTree failed: %v", err) } if _, err := os.Stat(filepath.Join(tmpdir, "do.md")); err != nil { @@ -107,7 +58,6 @@ func TestGenMdTree(t *testing.T) { } func BenchmarkGenMarkdownToFile(b *testing.B) { - c := initializeWithRootCmd() file, err := ioutil.TempFile("", "") if err != nil { b.Fatal(err) @@ -117,7 +67,7 @@ func BenchmarkGenMarkdownToFile(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { - if err := GenMarkdown(c, file); err != nil { + if err := GenMarkdown(rootCmd, file); err != nil { b.Fatal(err) } } diff --git a/vendor/github.com/spf13/cobra/doc/rest_docs.go b/vendor/github.com/spf13/cobra/doc/rest_docs.go new file mode 100644 index 000000000..4913e3ee2 --- /dev/null +++ b/vendor/github.com/spf13/cobra/doc/rest_docs.go @@ -0,0 +1,185 @@ +//Copyright 2015 Red Hat Inc. All rights reserved. +// +// 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 doc + +import ( + "bytes" + "fmt" + "io" + "os" + "path/filepath" + "sort" + "strings" + "time" + + "github.com/spf13/cobra" +) + +func printOptionsReST(buf *bytes.Buffer, cmd *cobra.Command, name string) error { + flags := cmd.NonInheritedFlags() + flags.SetOutput(buf) + if flags.HasFlags() { + buf.WriteString("Options\n") + buf.WriteString("~~~~~~~\n\n::\n\n") + flags.PrintDefaults() + buf.WriteString("\n") + } + + parentFlags := cmd.InheritedFlags() + parentFlags.SetOutput(buf) + if parentFlags.HasFlags() { + buf.WriteString("Options inherited from parent commands\n") + buf.WriteString("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n") + parentFlags.PrintDefaults() + buf.WriteString("\n") + } + return nil +} + +// linkHandler for default ReST hyperlink markup +func defaultLinkHandler(name, ref string) string { + return fmt.Sprintf("`%s <%s.rst>`_", name, ref) +} + +// GenReST creates reStructured Text output. +func GenReST(cmd *cobra.Command, w io.Writer) error { + return GenReSTCustom(cmd, w, defaultLinkHandler) +} + +// GenReSTCustom creates custom reStructured Text output. +func GenReSTCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string, string) string) error { + cmd.InitDefaultHelpCmd() + cmd.InitDefaultHelpFlag() + + buf := new(bytes.Buffer) + name := cmd.CommandPath() + + short := cmd.Short + long := cmd.Long + if len(long) == 0 { + long = short + } + ref := strings.Replace(name, " ", "_", -1) + + buf.WriteString(".. _" + ref + ":\n\n") + buf.WriteString(name + "\n") + buf.WriteString(strings.Repeat("-", len(name)) + "\n\n") + buf.WriteString(short + "\n\n") + buf.WriteString("Synopsis\n") + buf.WriteString("~~~~~~~~\n\n") + buf.WriteString("\n" + long + "\n\n") + + if cmd.Runnable() { + buf.WriteString(fmt.Sprintf("::\n\n %s\n\n", cmd.UseLine())) + } + + if len(cmd.Example) > 0 { + buf.WriteString("Examples\n") + buf.WriteString("~~~~~~~~\n\n") + buf.WriteString(fmt.Sprintf("::\n\n%s\n\n", indentString(cmd.Example, " "))) + } + + if err := printOptionsReST(buf, cmd, name); err != nil { + return err + } + if hasSeeAlso(cmd) { + buf.WriteString("SEE ALSO\n") + buf.WriteString("~~~~~~~~\n\n") + if cmd.HasParent() { + parent := cmd.Parent() + pname := parent.CommandPath() + ref = strings.Replace(pname, " ", "_", -1) + buf.WriteString(fmt.Sprintf("* %s \t - %s\n", linkHandler(pname, ref), parent.Short)) + cmd.VisitParents(func(c *cobra.Command) { + if c.DisableAutoGenTag { + cmd.DisableAutoGenTag = c.DisableAutoGenTag + } + }) + } + + children := cmd.Commands() + sort.Sort(byName(children)) + + for _, child := range children { + if !child.IsAvailableCommand() || child.IsAdditionalHelpTopicCommand() { + continue + } + cname := name + " " + child.Name() + ref = strings.Replace(cname, " ", "_", -1) + buf.WriteString(fmt.Sprintf("* %s \t - %s\n", linkHandler(cname, ref), child.Short)) + } + buf.WriteString("\n") + } + if !cmd.DisableAutoGenTag { + buf.WriteString("*Auto generated by spf13/cobra on " + time.Now().Format("2-Jan-2006") + "*\n") + } + _, err := buf.WriteTo(w) + return err +} + +// GenReSTTree will generate a ReST page for this command and all +// descendants in the directory given. +// This function may not work correctly if your command names have `-` in them. +// If you have `cmd` with two subcmds, `sub` and `sub-third`, +// and `sub` has a subcommand called `third`, it is undefined which +// help output will be in the file `cmd-sub-third.1`. +func GenReSTTree(cmd *cobra.Command, dir string) error { + emptyStr := func(s string) string { return "" } + return GenReSTTreeCustom(cmd, dir, emptyStr, defaultLinkHandler) +} + +// GenReSTTreeCustom is the the same as GenReSTTree, but +// with custom filePrepender and linkHandler. +func GenReSTTreeCustom(cmd *cobra.Command, dir string, filePrepender func(string) string, linkHandler func(string, string) string) error { + for _, c := range cmd.Commands() { + if !c.IsAvailableCommand() || c.IsAdditionalHelpTopicCommand() { + continue + } + if err := GenReSTTreeCustom(c, dir, filePrepender, linkHandler); err != nil { + return err + } + } + + basename := strings.Replace(cmd.CommandPath(), " ", "_", -1) + ".rst" + filename := filepath.Join(dir, basename) + f, err := os.Create(filename) + if err != nil { + return err + } + defer f.Close() + + if _, err := io.WriteString(f, filePrepender(filename)); err != nil { + return err + } + if err := GenReSTCustom(cmd, f, linkHandler); err != nil { + return err + } + return nil +} + +// adapted from: https://github.com/kr/text/blob/main/indent.go +func indentString(s, p string) string { + var res []byte + b := []byte(s) + prefix := []byte(p) + bol := true + for _, c := range b { + if bol && c != '\n' { + res = append(res, prefix...) + } + res = append(res, c) + bol = c == '\n' + } + return string(res) +} diff --git a/vendor/github.com/spf13/cobra/doc/rest_docs.md b/vendor/github.com/spf13/cobra/doc/rest_docs.md new file mode 100644 index 000000000..6098430ef --- /dev/null +++ b/vendor/github.com/spf13/cobra/doc/rest_docs.md @@ -0,0 +1,114 @@ +# Generating ReStructured Text Docs For Your Own cobra.Command + +Generating ReST pages from a cobra command is incredibly easy. An example is as follows: + +```go +package main + +import ( + "log" + + "github.com/spf13/cobra" + "github.com/spf13/cobra/doc" +) + +func main() { + cmd := &cobra.Command{ + Use: "test", + Short: "my test program", + } + err := doc.GenReSTTree(cmd, "/tmp") + if err != nil { + log.Fatal(err) + } +} +``` + +That will get you a ReST document `/tmp/test.rst` + +## Generate ReST docs for the entire command tree + +This program can actually generate docs for the kubectl command in the kubernetes project + +```go +package main + +import ( + "log" + "io/ioutil" + "os" + + "k8s.io/kubernetes/pkg/kubectl/cmd" + cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + + "github.com/spf13/cobra/doc" +) + +func main() { + kubectl := cmd.NewKubectlCommand(cmdutil.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard) + err := doc.GenReSTTree(kubectl, "./") + if err != nil { + log.Fatal(err) + } +} +``` + +This will generate a whole series of files, one for each command in the tree, in the directory specified (in this case "./") + +## Generate ReST docs for a single command + +You may wish to have more control over the output, or only generate for a single command, instead of the entire command tree. If this is the case you may prefer to `GenReST` instead of `GenReSTTree` + +```go + out := new(bytes.Buffer) + err := doc.GenReST(cmd, out) + if err != nil { + log.Fatal(err) + } +``` + +This will write the ReST doc for ONLY "cmd" into the out, buffer. + +## Customize the output + +Both `GenReST` and `GenReSTTree` have alternate versions with callbacks to get some control of the output: + +```go +func GenReSTTreeCustom(cmd *Command, dir string, filePrepender func(string) string, linkHandler func(string, string) string) error { + //... +} +``` + +```go +func GenReSTCustom(cmd *Command, out *bytes.Buffer, linkHandler func(string, string) string) error { + //... +} +``` + +The `filePrepender` will prepend the return value given the full filepath to the rendered ReST file. A common use case is to add front matter to use the generated documentation with [Hugo](http://gohugo.io/): + +```go +const fmTemplate = `--- +date: %s +title: "%s" +slug: %s +url: %s +--- +` +filePrepender := func(filename string) string { + now := time.Now().Format(time.RFC3339) + name := filepath.Base(filename) + base := strings.TrimSuffix(name, path.Ext(name)) + url := "/commands/" + strings.ToLower(base) + "/" + return fmt.Sprintf(fmTemplate, now, strings.Replace(base, "_", " ", -1), base, url) +} +``` + +The `linkHandler` can be used to customize the rendered links to the commands, given a command name and reference. This is useful while converting rst to html or while generating documentation with tools like Sphinx where `:ref:` is used: + +```go +// Sphinx cross-referencing format +linkHandler := func(name, ref string) string { + return fmt.Sprintf(":ref:`%s <%s>`", name, ref) +} +``` diff --git a/vendor/github.com/spf13/cobra/doc/rest_docs_test.go b/vendor/github.com/spf13/cobra/doc/rest_docs_test.go new file mode 100644 index 000000000..aa3186e8f --- /dev/null +++ b/vendor/github.com/spf13/cobra/doc/rest_docs_test.go @@ -0,0 +1,76 @@ +package doc + +import ( + "bytes" + "io/ioutil" + "os" + "path/filepath" + "testing" + + "github.com/spf13/cobra" +) + +func TestGenRSTDoc(t *testing.T) { + // We generate on a subcommand so we have both subcommands and parents + buf := new(bytes.Buffer) + if err := GenReST(echoCmd, buf); err != nil { + t.Fatal(err) + } + output := buf.String() + + checkStringContains(t, output, echoCmd.Long) + checkStringContains(t, output, echoCmd.Example) + checkStringContains(t, output, "boolone") + checkStringContains(t, output, "rootflag") + checkStringContains(t, output, rootCmd.Short) + checkStringContains(t, output, echoSubCmd.Short) + checkStringOmits(t, output, deprecatedCmd.Short) +} + +func TestGenRSTNoTag(t *testing.T) { + rootCmd.DisableAutoGenTag = true + defer func() { rootCmd.DisableAutoGenTag = false }() + + buf := new(bytes.Buffer) + if err := GenReST(rootCmd, buf); err != nil { + t.Fatal(err) + } + output := buf.String() + + unexpected := "Auto generated" + checkStringOmits(t, output, unexpected) +} + +func TestGenRSTTree(t *testing.T) { + c := &cobra.Command{Use: "do [OPTIONS] arg1 arg2"} + + tmpdir, err := ioutil.TempDir("", "test-gen-rst-tree") + if err != nil { + t.Fatalf("Failed to create tmpdir: %s", err.Error()) + } + defer os.RemoveAll(tmpdir) + + if err := GenReSTTree(c, tmpdir); err != nil { + t.Fatalf("GenReSTTree failed: %s", err.Error()) + } + + if _, err := os.Stat(filepath.Join(tmpdir, "do.rst")); err != nil { + t.Fatalf("Expected file 'do.rst' to exist") + } +} + +func BenchmarkGenReSTToFile(b *testing.B) { + file, err := ioutil.TempFile("", "") + if err != nil { + b.Fatal(err) + } + defer os.Remove(file.Name()) + defer file.Close() + + b.ResetTimer() + for i := 0; i < b.N; i++ { + if err := GenReST(rootCmd, file); err != nil { + b.Fatal(err) + } + } +} diff --git a/vendor/github.com/spf13/cobra/doc/yaml_docs_test.go b/vendor/github.com/spf13/cobra/doc/yaml_docs_test.go index 29e985e40..c5a63594f 100644 --- a/vendor/github.com/spf13/cobra/doc/yaml_docs_test.go +++ b/vendor/github.com/spf13/cobra/doc/yaml_docs_test.go @@ -5,92 +5,42 @@ import ( "io/ioutil" "os" "path/filepath" - "strings" "testing" "github.com/spf13/cobra" ) func TestGenYamlDoc(t *testing.T) { - c := initializeWithRootCmd() - // Need two commands to run the command alphabetical sort - cmdEcho.AddCommand(cmdTimes, cmdEchoSub, cmdDeprecated) - c.AddCommand(cmdPrint, cmdEcho) - cmdRootWithRun.PersistentFlags().StringVarP(&flags2a, "rootflag", "r", "two", strtwoParentHelp) - - out := new(bytes.Buffer) - // We generate on s subcommand so we have both subcommands and parents - if err := GenYaml(cmdEcho, out); err != nil { + buf := new(bytes.Buffer) + if err := GenYaml(echoCmd, buf); err != nil { t.Fatal(err) } - found := out.String() - - // Our description - expected := cmdEcho.Long - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // Better have our example - expected = cmdEcho.Example - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // A local flag - expected = "boolone" - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // persistent flag on parent - expected = "rootflag" - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // We better output info about our parent - expected = cmdRootWithRun.Short - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - // And about subcommands - expected = cmdEchoSub.Short - if !strings.Contains(found, expected) { - t.Errorf("Unexpected response.\nExpecting to contain: \n %q\nGot:\n %q\n", expected, found) - } - - unexpected := cmdDeprecated.Short - if strings.Contains(found, unexpected) { - t.Errorf("Unexpected response.\nFound: %v\nBut should not have!!\n", unexpected) - } + output := buf.String() + + checkStringContains(t, output, echoCmd.Long) + checkStringContains(t, output, echoCmd.Example) + checkStringContains(t, output, "boolone") + checkStringContains(t, output, "rootflag") + checkStringContains(t, output, rootCmd.Short) + checkStringContains(t, output, echoSubCmd.Short) } func TestGenYamlNoTag(t *testing.T) { - c := initializeWithRootCmd() - // Need two commands to run the command alphabetical sort - cmdEcho.AddCommand(cmdTimes, cmdEchoSub, cmdDeprecated) - c.AddCommand(cmdPrint, cmdEcho) - c.DisableAutoGenTag = true - cmdRootWithRun.PersistentFlags().StringVarP(&flags2a, "rootflag", "r", "two", strtwoParentHelp) - out := new(bytes.Buffer) + rootCmd.DisableAutoGenTag = true + defer func() { rootCmd.DisableAutoGenTag = false }() - if err := GenYaml(c, out); err != nil { + buf := new(bytes.Buffer) + if err := GenYaml(rootCmd, buf); err != nil { t.Fatal(err) } - found := out.String() - - unexpected := "Auto generated" - checkStringOmits(t, found, unexpected) + output := buf.String() + checkStringOmits(t, output, "Auto generated") } func TestGenYamlTree(t *testing.T) { - cmd := &cobra.Command{ - Use: "do [OPTIONS] arg1 arg2", - } + c := &cobra.Command{Use: "do [OPTIONS] arg1 arg2"} tmpdir, err := ioutil.TempDir("", "test-gen-yaml-tree") if err != nil { @@ -98,7 +48,7 @@ func TestGenYamlTree(t *testing.T) { } defer os.RemoveAll(tmpdir) - if err := GenYamlTree(cmd, tmpdir); err != nil { + if err := GenYamlTree(c, tmpdir); err != nil { t.Fatalf("GenYamlTree failed: %s", err.Error()) } @@ -108,7 +58,6 @@ func TestGenYamlTree(t *testing.T) { } func BenchmarkGenYamlToFile(b *testing.B) { - c := initializeWithRootCmd() file, err := ioutil.TempFile("", "") if err != nil { b.Fatal(err) @@ -118,7 +67,7 @@ func BenchmarkGenYamlToFile(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { - if err := GenYaml(c, file); err != nil { + if err := GenYaml(rootCmd, file); err != nil { b.Fatal(err) } } diff --git a/vendor/github.com/spf13/cobra/zsh_completions.go b/vendor/github.com/spf13/cobra/zsh_completions.go new file mode 100644 index 000000000..889c22e27 --- /dev/null +++ b/vendor/github.com/spf13/cobra/zsh_completions.go @@ -0,0 +1,126 @@ +package cobra + +import ( + "bytes" + "fmt" + "io" + "os" + "strings" +) + +// GenZshCompletionFile generates zsh completion file. +func (c *Command) GenZshCompletionFile(filename string) error { + outFile, err := os.Create(filename) + if err != nil { + return err + } + defer outFile.Close() + + return c.GenZshCompletion(outFile) +} + +// GenZshCompletion generates a zsh completion file and writes to the passed writer. +func (c *Command) GenZshCompletion(w io.Writer) error { + buf := new(bytes.Buffer) + + writeHeader(buf, c) + maxDepth := maxDepth(c) + writeLevelMapping(buf, maxDepth) + writeLevelCases(buf, maxDepth, c) + + _, err := buf.WriteTo(w) + return err +} + +func writeHeader(w io.Writer, cmd *Command) { + fmt.Fprintf(w, "#compdef %s\n\n", cmd.Name()) +} + +func maxDepth(c *Command) int { + if len(c.Commands()) == 0 { + return 0 + } + maxDepthSub := 0 + for _, s := range c.Commands() { + subDepth := maxDepth(s) + if subDepth > maxDepthSub { + maxDepthSub = subDepth + } + } + return 1 + maxDepthSub +} + +func writeLevelMapping(w io.Writer, numLevels int) { + fmt.Fprintln(w, `_arguments \`) + for i := 1; i <= numLevels; i++ { + fmt.Fprintf(w, ` '%d: :->level%d' \`, i, i) + fmt.Fprintln(w) + } + fmt.Fprintf(w, ` '%d: :%s'`, numLevels+1, "_files") + fmt.Fprintln(w) +} + +func writeLevelCases(w io.Writer, maxDepth int, root *Command) { + fmt.Fprintln(w, "case $state in") + defer fmt.Fprintln(w, "esac") + + for i := 1; i <= maxDepth; i++ { + fmt.Fprintf(w, " level%d)\n", i) + writeLevel(w, root, i) + fmt.Fprintln(w, " ;;") + } + fmt.Fprintln(w, " *)") + fmt.Fprintln(w, " _arguments '*: :_files'") + fmt.Fprintln(w, " ;;") +} + +func writeLevel(w io.Writer, root *Command, i int) { + fmt.Fprintf(w, " case $words[%d] in\n", i) + defer fmt.Fprintln(w, " esac") + + commands := filterByLevel(root, i) + byParent := groupByParent(commands) + + for p, c := range byParent { + names := names(c) + fmt.Fprintf(w, " %s)\n", p) + fmt.Fprintf(w, " _arguments '%d: :(%s)'\n", i, strings.Join(names, " ")) + fmt.Fprintln(w, " ;;") + } + fmt.Fprintln(w, " *)") + fmt.Fprintln(w, " _arguments '*: :_files'") + fmt.Fprintln(w, " ;;") + +} + +func filterByLevel(c *Command, l int) []*Command { + cs := make([]*Command, 0) + if l == 0 { + cs = append(cs, c) + return cs + } + for _, s := range c.Commands() { + cs = append(cs, filterByLevel(s, l-1)...) + } + return cs +} + +func groupByParent(commands []*Command) map[string][]*Command { + m := make(map[string][]*Command) + for _, c := range commands { + parent := c.Parent() + if parent == nil { + continue + } + m[parent.Name()] = append(m[parent.Name()], c) + } + return m +} + +func names(commands []*Command) []string { + ns := make([]string, len(commands)) + for i, c := range commands { + ns[i] = c.Name() + } + return ns +} diff --git a/vendor/github.com/spf13/cobra/zsh_completions_test.go b/vendor/github.com/spf13/cobra/zsh_completions_test.go new file mode 100644 index 000000000..34e69496f --- /dev/null +++ b/vendor/github.com/spf13/cobra/zsh_completions_test.go @@ -0,0 +1,89 @@ +package cobra + +import ( + "bytes" + "strings" + "testing" +) + +func TestZshCompletion(t *testing.T) { + tcs := []struct { + name string + root *Command + expectedExpressions []string + }{ + { + name: "trivial", + root: &Command{Use: "trivialapp"}, + expectedExpressions: []string{"#compdef trivial"}, + }, + { + name: "linear", + root: func() *Command { + r := &Command{Use: "linear"} + + sub1 := &Command{Use: "sub1"} + r.AddCommand(sub1) + + sub2 := &Command{Use: "sub2"} + sub1.AddCommand(sub2) + + sub3 := &Command{Use: "sub3"} + sub2.AddCommand(sub3) + return r + }(), + expectedExpressions: []string{"sub1", "sub2", "sub3"}, + }, + { + name: "flat", + root: func() *Command { + r := &Command{Use: "flat"} + r.AddCommand(&Command{Use: "c1"}) + r.AddCommand(&Command{Use: "c2"}) + return r + }(), + expectedExpressions: []string{"(c1 c2)"}, + }, + { + name: "tree", + root: func() *Command { + r := &Command{Use: "tree"} + + sub1 := &Command{Use: "sub1"} + r.AddCommand(sub1) + + sub11 := &Command{Use: "sub11"} + sub12 := &Command{Use: "sub12"} + + sub1.AddCommand(sub11) + sub1.AddCommand(sub12) + + sub2 := &Command{Use: "sub2"} + r.AddCommand(sub2) + + sub21 := &Command{Use: "sub21"} + sub22 := &Command{Use: "sub22"} + + sub2.AddCommand(sub21) + sub2.AddCommand(sub22) + + return r + }(), + expectedExpressions: []string{"(sub11 sub12)", "(sub21 sub22)"}, + }, + } + + for _, tc := range tcs { + t.Run(tc.name, func(t *testing.T) { + buf := new(bytes.Buffer) + tc.root.GenZshCompletion(buf) + output := buf.String() + + for _, expectedExpression := range tc.expectedExpressions { + if !strings.Contains(output, expectedExpression) { + t.Errorf("Expected completion to contain %q somewhere; got %q", expectedExpression, output) + } + } + }) + } +} diff --git a/vendor/github.com/spf13/pflag/count.go b/vendor/github.com/spf13/pflag/count.go index 250a43814..aa126e44d 100644 --- a/vendor/github.com/spf13/pflag/count.go +++ b/vendor/github.com/spf13/pflag/count.go @@ -11,13 +11,13 @@ func newCountValue(val int, p *int) *countValue { } func (i *countValue) Set(s string) error { - v, err := strconv.ParseInt(s, 0, 64) - // -1 means that no specific value was passed, so increment - if v == -1 { + // "+1" means that no specific value was passed, so increment + if s == "+1" { *i = countValue(*i + 1) - } else { - *i = countValue(v) + return nil } + v, err := strconv.ParseInt(s, 0, 0) + *i = countValue(v) return err } @@ -54,7 +54,7 @@ func (f *FlagSet) CountVar(p *int, name string, usage string) { // CountVarP is like CountVar only take a shorthand for the flag name. func (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) { flag := f.VarPF(newCountValue(0, p), name, shorthand, usage) - flag.NoOptDefVal = "-1" + flag.NoOptDefVal = "+1" } // CountVar like CountVar only the flag is placed on the CommandLine instead of a given flag set diff --git a/vendor/github.com/spf13/pflag/count_test.go b/vendor/github.com/spf13/pflag/count_test.go index 460d96a6f..3785d375a 100644 --- a/vendor/github.com/spf13/pflag/count_test.go +++ b/vendor/github.com/spf13/pflag/count_test.go @@ -17,10 +17,14 @@ func TestCount(t *testing.T) { success bool expected int }{ + {[]string{}, true, 0}, + {[]string{"-v"}, true, 1}, {[]string{"-vvv"}, true, 3}, {[]string{"-v", "-v", "-v"}, true, 3}, {[]string{"-v", "--verbose", "-v"}, true, 3}, {[]string{"-v=3", "-v"}, true, 4}, + {[]string{"--verbose=0"}, true, 0}, + {[]string{"-v=0"}, true, 0}, {[]string{"-v=a"}, false, 0}, } @@ -45,7 +49,7 @@ func TestCount(t *testing.T) { t.Errorf("Got error trying to fetch the counter flag") } if c != tc.expected { - t.Errorf("expected %q, got %q", tc.expected, c) + t.Errorf("expected %d, got %d", tc.expected, c) } } } diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go index 6f1fc3007..28538c075 100644 --- a/vendor/github.com/spf13/pflag/flag.go +++ b/vendor/github.com/spf13/pflag/flag.go @@ -202,12 +202,18 @@ func sortFlags(flags map[NormalizedName]*Flag) []*Flag { func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) { f.normalizeNameFunc = n f.sortedFormal = f.sortedFormal[:0] - for k, v := range f.orderedFormal { - delete(f.formal, NormalizedName(v.Name)) - nname := f.normalizeFlagName(v.Name) - v.Name = string(nname) - f.formal[nname] = v - f.orderedFormal[k] = v + for fname, flag := range f.formal { + nname := f.normalizeFlagName(flag.Name) + if fname == nname { + continue + } + flag.Name = string(nname) + delete(f.formal, fname) + f.formal[nname] = flag + if _, set := f.actual[fname]; set { + delete(f.actual, fname) + f.actual[nname] = flag + } } } @@ -440,13 +446,15 @@ func (f *FlagSet) Set(name, value string) error { return fmt.Errorf("invalid argument %q for %q flag: %v", value, flagName, err) } - if f.actual == nil { - f.actual = make(map[NormalizedName]*Flag) - } - f.actual[normalName] = flag - f.orderedActual = append(f.orderedActual, flag) + if !flag.Changed { + if f.actual == nil { + f.actual = make(map[NormalizedName]*Flag) + } + f.actual[normalName] = flag + f.orderedActual = append(f.orderedActual, flag) - flag.Changed = true + flag.Changed = true + } if flag.Deprecated != "" { fmt.Fprintf(f.out(), "Flag --%s has been deprecated, %s\n", flag.Name, flag.Deprecated) @@ -556,6 +564,14 @@ func UnquoteUsage(flag *Flag) (name string, usage string) { name = "int" case "uint64": name = "uint" + case "stringSlice": + name = "strings" + case "intSlice": + name = "ints" + case "uintSlice": + name = "uints" + case "boolSlice": + name = "bools" } return @@ -660,6 +676,10 @@ func (f *FlagSet) FlagUsagesWrapped(cols int) string { if flag.NoOptDefVal != "true" { line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) } + case "count": + if flag.NoOptDefVal != "+1" { + line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) + } default: line += fmt.Sprintf("[=%s]", flag.NoOptDefVal) } @@ -857,8 +877,10 @@ func VarP(value Value, name, shorthand, usage string) { // returns the error. func (f *FlagSet) failf(format string, a ...interface{}) error { err := fmt.Errorf(format, a...) - fmt.Fprintln(f.out(), err) - f.usage() + if f.errorHandling != ContinueOnError { + fmt.Fprintln(f.out(), err) + f.usage() + } return err } @@ -912,6 +934,9 @@ func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []strin } err = fn(flag, value) + if err != nil { + f.failf(err.Error()) + } return } @@ -962,6 +987,9 @@ func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parse } err = fn(flag, value) + if err != nil { + f.failf(err.Error()) + } return } @@ -1034,6 +1062,7 @@ func (f *FlagSet) Parse(arguments []string) error { case ContinueOnError: return err case ExitOnError: + fmt.Println(err) os.Exit(2) case PanicOnError: panic(err) diff --git a/vendor/github.com/spf13/pflag/flag_test.go b/vendor/github.com/spf13/pflag/flag_test.go index c3def0fd4..d587752f3 100644 --- a/vendor/github.com/spf13/pflag/flag_test.go +++ b/vendor/github.com/spf13/pflag/flag_test.go @@ -106,8 +106,8 @@ func TestUsage(t *testing.T) { if GetCommandLine().Parse([]string{"--x"}) == nil { t.Error("parse did not fail for unknown flag") } - if !called { - t.Error("did not call Usage for unknown flag") + if called { + t.Error("did call Usage while using ContinueOnError") } } @@ -168,6 +168,7 @@ func testParse(f *FlagSet, t *testing.T) { bool3Flag := f.Bool("bool3", false, "bool3 value") intFlag := f.Int("int", 0, "int value") int8Flag := f.Int8("int8", 0, "int value") + int16Flag := f.Int16("int16", 0, "int value") int32Flag := f.Int32("int32", 0, "int value") int64Flag := f.Int64("int64", 0, "int64 value") uintFlag := f.Uint("uint", 0, "uint value") @@ -192,6 +193,7 @@ func testParse(f *FlagSet, t *testing.T) { "--bool3=false", "--int=22", "--int8=-8", + "--int16=-16", "--int32=-32", "--int64=0x23", "--uint", "24", @@ -236,9 +238,15 @@ func testParse(f *FlagSet, t *testing.T) { if *int8Flag != -8 { t.Error("int8 flag should be 0x23, is ", *int8Flag) } + if *int16Flag != -16 { + t.Error("int16 flag should be -16, is ", *int16Flag) + } if v, err := f.GetInt8("int8"); err != nil || v != *int8Flag { t.Error("GetInt8 does not work.") } + if v, err := f.GetInt16("int16"); err != nil || v != *int16Flag { + t.Error("GetInt16 does not work.") + } if *int32Flag != -32 { t.Error("int32 flag should be 0x23, is ", *int32Flag) } @@ -604,7 +612,6 @@ func aliasAndWordSepFlagNames(f *FlagSet, name string) NormalizedName { switch name { case oldName: name = newName - break } return NormalizedName(name) @@ -658,6 +665,70 @@ func TestNormalizationFuncShouldChangeFlagName(t *testing.T) { } } +// Related to https://github.com/spf13/cobra/issues/521. +func TestNormalizationSharedFlags(t *testing.T) { + f := NewFlagSet("set f", ContinueOnError) + g := NewFlagSet("set g", ContinueOnError) + nfunc := wordSepNormalizeFunc + testName := "valid_flag" + normName := nfunc(nil, testName) + if testName == string(normName) { + t.Error("TestNormalizationSharedFlags meaningless: the original and normalized flag names are identical:", testName) + } + + f.Bool(testName, false, "bool value") + g.AddFlagSet(f) + + f.SetNormalizeFunc(nfunc) + g.SetNormalizeFunc(nfunc) + + if len(f.formal) != 1 { + t.Error("Normalizing flags should not result in duplications in the flag set:", f.formal) + } + if f.orderedFormal[0].Name != string(normName) { + t.Error("Flag name not normalized") + } + for k := range f.formal { + if k != "valid.flag" { + t.Errorf("The key in the flag map should have been normalized: wanted \"%s\", got \"%s\" instead", normName, k) + } + } + + if !reflect.DeepEqual(f.formal, g.formal) || !reflect.DeepEqual(f.orderedFormal, g.orderedFormal) { + t.Error("Two flag sets sharing the same flags should stay consistent after being normalized. Original set:", f.formal, "Duplicate set:", g.formal) + } +} + +func TestNormalizationSetFlags(t *testing.T) { + f := NewFlagSet("normalized", ContinueOnError) + nfunc := wordSepNormalizeFunc + testName := "valid_flag" + normName := nfunc(nil, testName) + if testName == string(normName) { + t.Error("TestNormalizationSetFlags meaningless: the original and normalized flag names are identical:", testName) + } + + f.Bool(testName, false, "bool value") + f.Set(testName, "true") + f.SetNormalizeFunc(nfunc) + + if len(f.formal) != 1 { + t.Error("Normalizing flags should not result in duplications in the flag set:", f.formal) + } + if f.orderedFormal[0].Name != string(normName) { + t.Error("Flag name not normalized") + } + for k := range f.formal { + if k != "valid.flag" { + t.Errorf("The key in the flag map should have been normalized: wanted \"%s\", got \"%s\" instead", normName, k) + } + } + + if !reflect.DeepEqual(f.formal, f.actual) { + t.Error("The map of set flags should get normalized. Formal:", f.formal, "Actual:", f.actual) + } +} + // Declare a user-defined flag type. type flagVar []string @@ -978,16 +1049,17 @@ const defaultOutput = ` --A for bootstrapping, allo --IP ip IP address with no default --IPMask ipMask Netmask address with no default --IPNet ipNet IP network with no default - --Ints intSlice int slice with zero default + --Ints ints int slice with zero default --N int a non-zero int (default 27) --ND1 string[="bar"] a string with NoOptDefVal (default "foo") --ND2 num[=4321] a num with NoOptDefVal (default 1234) --StringArray stringArray string array with zero default - --StringSlice stringSlice string slice with zero default + --StringSlice strings string slice with zero default --Z int an int that defaults to zero --custom custom custom Value implementation --customP custom a VarP with default (default 10) --maxT timeout set timeout for dial + -v, --verbose count verbosity ` // Custom value that satisfies the Value interface. @@ -1028,6 +1100,7 @@ func TestPrintDefaults(t *testing.T) { fs.ShorthandLookup("E").NoOptDefVal = "1234" fs.StringSlice("StringSlice", []string{}, "string slice with zero default") fs.StringArray("StringArray", []string{}, "string array with zero default") + fs.CountP("verbose", "v", "verbosity") var cv customValue fs.Var(&cv, "custom", "custom Value implementation") diff --git a/vendor/github.com/spf13/pflag/int16.go b/vendor/github.com/spf13/pflag/int16.go new file mode 100644 index 000000000..f1a01d05e --- /dev/null +++ b/vendor/github.com/spf13/pflag/int16.go @@ -0,0 +1,88 @@ +package pflag + +import "strconv" + +// -- int16 Value +type int16Value int16 + +func newInt16Value(val int16, p *int16) *int16Value { + *p = val + return (*int16Value)(p) +} + +func (i *int16Value) Set(s string) error { + v, err := strconv.ParseInt(s, 0, 16) + *i = int16Value(v) + return err +} + +func (i *int16Value) Type() string { + return "int16" +} + +func (i *int16Value) String() string { return strconv.FormatInt(int64(*i), 10) } + +func int16Conv(sval string) (interface{}, error) { + v, err := strconv.ParseInt(sval, 0, 16) + if err != nil { + return 0, err + } + return int16(v), nil +} + +// GetInt16 returns the int16 value of a flag with the given name +func (f *FlagSet) GetInt16(name string) (int16, error) { + val, err := f.getFlagType(name, "int16", int16Conv) + if err != nil { + return 0, err + } + return val.(int16), nil +} + +// Int16Var defines an int16 flag with specified name, default value, and usage string. +// The argument p points to an int16 variable in which to store the value of the flag. +func (f *FlagSet) Int16Var(p *int16, name string, value int16, usage string) { + f.VarP(newInt16Value(value, p), name, "", usage) +} + +// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int16, usage string) { + f.VarP(newInt16Value(value, p), name, shorthand, usage) +} + +// Int16Var defines an int16 flag with specified name, default value, and usage string. +// The argument p points to an int16 variable in which to store the value of the flag. +func Int16Var(p *int16, name string, value int16, usage string) { + CommandLine.VarP(newInt16Value(value, p), name, "", usage) +} + +// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash. +func Int16VarP(p *int16, name, shorthand string, value int16, usage string) { + CommandLine.VarP(newInt16Value(value, p), name, shorthand, usage) +} + +// Int16 defines an int16 flag with specified name, default value, and usage string. +// The return value is the address of an int16 variable that stores the value of the flag. +func (f *FlagSet) Int16(name string, value int16, usage string) *int16 { + p := new(int16) + f.Int16VarP(p, name, "", value, usage) + return p +} + +// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) Int16P(name, shorthand string, value int16, usage string) *int16 { + p := new(int16) + f.Int16VarP(p, name, shorthand, value, usage) + return p +} + +// Int16 defines an int16 flag with specified name, default value, and usage string. +// The return value is the address of an int16 variable that stores the value of the flag. +func Int16(name string, value int16, usage string) *int16 { + return CommandLine.Int16P(name, "", value, usage) +} + +// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash. +func Int16P(name, shorthand string, value int16, usage string) *int16 { + return CommandLine.Int16P(name, shorthand, value, usage) +} diff --git a/vendor/google.golang.org/appengine/.travis.yml b/vendor/google.golang.org/appengine/.travis.yml index 1bdf271f0..7ef8b6c7f 100644 --- a/vendor/google.golang.org/appengine/.travis.yml +++ b/vendor/google.golang.org/appengine/.travis.yml @@ -1,9 +1,10 @@ language: go go: - - 1.6.3 - - 1.7.5 - - 1.8.1 + - 1.6.x + - 1.7.x + - 1.8.x + - 1.9.x go_import_path: google.golang.org/appengine diff --git a/vendor/k8s.io/api/Godeps/Godeps.json b/vendor/k8s.io/api/Godeps/Godeps.json index 38c60b57c..36d52200e 100644 --- a/vendor/k8s.io/api/Godeps/Godeps.json +++ b/vendor/k8s.io/api/Godeps/Godeps.json @@ -140,87 +140,87 @@ }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" } ] } diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go b/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go index 6a1977f83..4c66de146 100644 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go @@ -151,6 +151,10 @@ func (m *AdmissionHookClientConfig) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(len(m.CABundle))) i += copy(dAtA[i:], m.CABundle) } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.URLPath))) + i += copy(dAtA[i:], m.URLPath) return i, nil } @@ -554,6 +558,8 @@ func (m *AdmissionHookClientConfig) Size() (n int) { l = len(m.CABundle) n += 1 + l + sovGenerated(uint64(l)) } + l = len(m.URLPath) + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -715,6 +721,7 @@ func (this *AdmissionHookClientConfig) String() string { s := strings.Join([]string{`&AdmissionHookClientConfig{`, `Service:` + strings.Replace(strings.Replace(this.Service.String(), "ServiceReference", "ServiceReference", 1), `&`, ``, 1) + `,`, `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, + `URLPath:` + fmt.Sprintf("%v", this.URLPath) + `,`, `}`, }, "") return s @@ -919,6 +926,35 @@ func (m *AdmissionHookClientConfig) Unmarshal(dAtA []byte) error { m.CABundle = []byte{} } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field URLPath", 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.URLPath = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2128,60 +2164,61 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 871 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcd, 0x8b, 0x23, 0x45, - 0x14, 0x4f, 0x65, 0x32, 0x6c, 0x52, 0x49, 0xd8, 0xdd, 0x42, 0x97, 0x38, 0x48, 0x77, 0xe8, 0xc3, - 0x12, 0x11, 0xbb, 0x9d, 0x51, 0x16, 0x41, 0x44, 0xa7, 0xc7, 0xaf, 0x81, 0xfd, 0x18, 0xcb, 0x45, - 0x41, 0x3c, 0x58, 0xe9, 0xbc, 0x24, 0x65, 0xfa, 0x8b, 0xaa, 0xea, 0xe0, 0x78, 0x10, 0x2f, 0xde, - 0x05, 0x2f, 0x5e, 0xbd, 0x79, 0xf1, 0xff, 0x98, 0xe3, 0x1e, 0xf7, 0x14, 0x9c, 0x16, 0xbc, 0x08, - 0xfe, 0x01, 0x73, 0x92, 0xfe, 0x4a, 0x3a, 0x9b, 0x84, 0x4d, 0x5c, 0x98, 0x5b, 0xea, 0xf7, 0xea, - 0xf7, 0xde, 0xef, 0xfd, 0xf2, 0x5e, 0x35, 0xa6, 0x93, 0x77, 0xa4, 0xc9, 0x03, 0x6b, 0x12, 0xf5, - 0x41, 0xf8, 0xa0, 0x40, 0x5a, 0x53, 0xf0, 0x07, 0x81, 0xb0, 0xf2, 0x00, 0x0b, 0xb9, 0xc5, 0x06, - 0x1e, 0x97, 0x92, 0x07, 0xbe, 0x80, 0x11, 0x97, 0x4a, 0x30, 0xc5, 0x03, 0xdf, 0x9a, 0x1e, 0x32, - 0x37, 0x1c, 0xb3, 0x43, 0x6b, 0x04, 0x3e, 0x08, 0xa6, 0x60, 0x60, 0x86, 0x22, 0x50, 0x01, 0x79, - 0x2d, 0xa3, 0x9a, 0x2c, 0xe4, 0xe6, 0x5a, 0xaa, 0x59, 0x50, 0x0f, 0xde, 0x18, 0x71, 0x35, 0x8e, - 0xfa, 0xa6, 0x13, 0x78, 0xd6, 0x28, 0x18, 0x05, 0x56, 0x9a, 0xa1, 0x1f, 0x0d, 0xd3, 0x53, 0x7a, - 0x48, 0x7f, 0x65, 0x99, 0x0f, 0xde, 0x5e, 0x88, 0xf2, 0x98, 0x33, 0xe6, 0x3e, 0x88, 0x73, 0x2b, - 0x9c, 0x8c, 0x12, 0x40, 0x5a, 0x1e, 0x28, 0x66, 0x4d, 0x57, 0xf4, 0x1c, 0x58, 0x9b, 0x58, 0x22, - 0xf2, 0x15, 0xf7, 0x60, 0x85, 0x70, 0xef, 0x79, 0x04, 0xe9, 0x8c, 0xc1, 0x63, 0x2b, 0xbc, 0xb7, - 0x36, 0xf1, 0x22, 0xc5, 0x5d, 0x8b, 0xfb, 0x4a, 0x2a, 0xf1, 0x2c, 0xc9, 0xf8, 0x03, 0xe1, 0x57, - 0x8e, 0x0b, 0x97, 0x3e, 0x0d, 0x82, 0xc9, 0x89, 0xcb, 0xc1, 0x57, 0x27, 0x81, 0x3f, 0xe4, 0x23, - 0x32, 0xc4, 0x37, 0x24, 0x88, 0x29, 0x77, 0xa0, 0x83, 0xba, 0xa8, 0xd7, 0x3c, 0x7a, 0xd7, 0xdc, - 0xda, 0x5d, 0xf3, 0xf3, 0x8c, 0x49, 0x61, 0x08, 0x02, 0x7c, 0x07, 0xec, 0x9b, 0x17, 0x33, 0xbd, - 0x12, 0xcf, 0xf4, 0x1b, 0x45, 0xa4, 0x48, 0x4e, 0x7a, 0xb8, 0xee, 0x30, 0x3b, 0xf2, 0x07, 0x2e, - 0x74, 0xaa, 0x5d, 0xd4, 0x6b, 0xd9, 0xad, 0x78, 0xa6, 0xd7, 0x4f, 0x8e, 0x33, 0x8c, 0xce, 0xa3, - 0xc6, 0x3f, 0x55, 0xfc, 0xf2, 0x47, 0xdf, 0x29, 0x10, 0x3e, 0x73, 0x97, 0x74, 0x93, 0x2e, 0xae, - 0xf9, 0xcc, 0xcb, 0x84, 0x36, 0xec, 0x56, 0x5e, 0xab, 0xf6, 0x90, 0x79, 0x40, 0xd3, 0x08, 0xf9, - 0x01, 0xb7, 0x9c, 0x52, 0x77, 0x69, 0xa5, 0xe6, 0xd1, 0x87, 0x3b, 0xb4, 0xb4, 0xd1, 0x29, 0xfb, - 0xa5, 0xbc, 0x5e, 0xab, 0x8c, 0xd2, 0xa5, 0x7a, 0xa4, 0x8f, 0xf7, 0x45, 0xe4, 0x82, 0xec, 0xec, - 0x75, 0xf7, 0x7a, 0xcd, 0xa3, 0xf7, 0x76, 0x28, 0x4c, 0x23, 0x17, 0xbe, 0xe4, 0x6a, 0xfc, 0x28, - 0x84, 0x2c, 0x24, 0xed, 0x76, 0x5e, 0x71, 0x3f, 0x89, 0x49, 0x9a, 0xa5, 0x26, 0xf7, 0x71, 0x7b, - 0xc8, 0xb8, 0x1b, 0x09, 0x38, 0x0b, 0x5c, 0xee, 0x9c, 0x77, 0x6a, 0xa9, 0x1d, 0x77, 0xe3, 0x99, - 0xde, 0xfe, 0xb8, 0x1c, 0xb8, 0x9a, 0xe9, 0xb7, 0x97, 0x80, 0xc7, 0xe7, 0x21, 0xd0, 0x65, 0xb2, - 0xf1, 0x5b, 0x15, 0x1b, 0x6b, 0xdd, 0xce, 0x3a, 0x8a, 0x32, 0x2d, 0xe4, 0x1b, 0x5c, 0x4f, 0xa6, - 0x7f, 0xc0, 0x14, 0xcb, 0xe7, 0xe4, 0xcd, 0x52, 0x6f, 0xf3, 0x61, 0x34, 0xc3, 0xc9, 0x28, 0x01, - 0xa4, 0x99, 0xdc, 0x36, 0xa7, 0x87, 0xe6, 0xa3, 0xfe, 0xb7, 0xe0, 0xa8, 0x07, 0xa0, 0x98, 0x4d, - 0xf2, 0x76, 0xf0, 0x02, 0xa3, 0xf3, 0xac, 0xe4, 0x57, 0x84, 0xef, 0xc0, 0x3a, 0x21, 0xb2, 0x53, - 0x4d, 0xcd, 0xfc, 0x60, 0x07, 0x33, 0xd7, 0x76, 0x64, 0x6b, 0xb9, 0x80, 0x3b, 0x6b, 0xc3, 0x92, - 0x6e, 0xa8, 0x6f, 0x5c, 0x21, 0x7c, 0xf7, 0xf9, 0x1e, 0xdd, 0xe7, 0x52, 0x91, 0xaf, 0x57, 0x7c, - 0x32, 0xb7, 0xf3, 0x29, 0x61, 0xa7, 0x2e, 0xdd, 0xca, 0x45, 0xd6, 0x0b, 0xa4, 0xe4, 0x91, 0xc0, - 0xfb, 0x5c, 0x81, 0x57, 0x38, 0xf2, 0xe0, 0x45, 0x1d, 0x59, 0xd2, 0xbf, 0x18, 0xb7, 0xd3, 0xa4, - 0x06, 0xcd, 0x4a, 0x19, 0x3f, 0x21, 0xdc, 0x3c, 0xf5, 0xb9, 0xe2, 0xcc, 0xe5, 0xdf, 0x83, 0xd8, - 0x62, 0x09, 0x1f, 0x17, 0x4b, 0x90, 0xa9, 0xb4, 0x76, 0x5c, 0x82, 0xf5, 0x63, 0x6f, 0xfc, 0x8b, - 0x70, 0xa7, 0xa4, 0xe3, 0xba, 0xc7, 0x33, 0xc4, 0x2d, 0xbe, 0xa8, 0x5e, 0xf4, 0x76, 0x6f, 0x87, - 0xde, 0x4a, 0xe2, 0x17, 0x6f, 0x49, 0x09, 0x94, 0x74, 0xa9, 0x82, 0xf1, 0x37, 0xc2, 0xaf, 0x6e, - 0x6a, 0xf8, 0x1a, 0x66, 0x6d, 0xbc, 0x3c, 0x6b, 0x27, 0xff, 0xaf, 0xd3, 0x6d, 0x26, 0xec, 0x17, - 0x84, 0x6b, 0xc9, 0x5f, 0x4d, 0x5e, 0xc7, 0x0d, 0x16, 0xf2, 0x4f, 0x44, 0x10, 0x85, 0xb2, 0x83, - 0xba, 0x7b, 0xbd, 0x86, 0xdd, 0x8e, 0x67, 0x7a, 0xe3, 0xf8, 0xec, 0x34, 0x03, 0xe9, 0x22, 0x4e, - 0x0e, 0x71, 0x93, 0x85, 0xfc, 0x0b, 0x10, 0x89, 0x8e, 0x4c, 0x65, 0xc3, 0xbe, 0x19, 0xcf, 0xf4, - 0xe6, 0xf1, 0xd9, 0x69, 0x01, 0xd3, 0xf2, 0x9d, 0x24, 0xbf, 0x00, 0x19, 0x44, 0xc2, 0xc9, 0x5f, - 0xe8, 0x3c, 0x3f, 0x2d, 0x40, 0xba, 0x88, 0x1b, 0xbf, 0x23, 0x4c, 0x56, 0xdf, 0x64, 0xf2, 0x3e, - 0xc6, 0xc1, 0xfc, 0x94, 0x8b, 0xd4, 0xd3, 0xa9, 0x99, 0xa3, 0x57, 0x33, 0xbd, 0x3d, 0x3f, 0xa5, - 0x6f, 0x6e, 0x89, 0x42, 0x3e, 0xc3, 0xb5, 0x64, 0xa0, 0xf3, 0x4f, 0xd3, 0xce, 0xcb, 0x31, 0x5f, - 0xb8, 0xe4, 0x44, 0xd3, 0x54, 0x06, 0xe0, 0x5b, 0xcf, 0x7e, 0x89, 0x89, 0x85, 0x1b, 0xc9, 0x32, - 0xca, 0x90, 0x39, 0xc5, 0xae, 0xde, 0xce, 0xa9, 0x8d, 0x87, 0x45, 0x80, 0x2e, 0xee, 0xcc, 0xf7, - 0xba, 0xba, 0x69, 0xaf, 0x6d, 0xf3, 0xe2, 0x52, 0xab, 0x3c, 0xb9, 0xd4, 0x2a, 0x4f, 0x2f, 0xb5, - 0xca, 0x8f, 0xb1, 0x86, 0x2e, 0x62, 0x0d, 0x3d, 0x89, 0x35, 0xf4, 0x34, 0xd6, 0xd0, 0x9f, 0xb1, - 0x86, 0x7e, 0xfe, 0x4b, 0xab, 0x7c, 0x55, 0x2f, 0xf4, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0xe7, - 0xb5, 0x5f, 0xd5, 0xfb, 0x09, 0x00, 0x00, + // 893 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcf, 0x8b, 0x23, 0x45, + 0x14, 0x4e, 0x65, 0x32, 0x4c, 0x52, 0x49, 0xd8, 0xdd, 0x42, 0x97, 0x38, 0x48, 0x27, 0xf4, 0x61, + 0xc9, 0x22, 0x76, 0x3b, 0xa3, 0x2c, 0x82, 0x88, 0x4e, 0x8f, 0xbf, 0x06, 0x66, 0x77, 0xc7, 0x72, + 0x55, 0x10, 0x0f, 0x56, 0x3a, 0x2f, 0x49, 0x99, 0xfe, 0x45, 0x55, 0x75, 0x70, 0x3c, 0x88, 0x17, + 0xef, 0x82, 0x17, 0xaf, 0xde, 0xfc, 0x53, 0xe6, 0xb8, 0xc7, 0x39, 0x05, 0xa7, 0x05, 0x2f, 0x82, + 0x7f, 0xc0, 0x9c, 0xa4, 0x7f, 0xa5, 0x3b, 0x9b, 0x84, 0x9d, 0x28, 0xec, 0x2d, 0xf5, 0xbd, 0xfa, + 0xde, 0xfb, 0xde, 0x97, 0xf7, 0xaa, 0x31, 0x9d, 0xbe, 0x2d, 0x0d, 0xee, 0x9b, 0xd3, 0x70, 0x00, + 0xc2, 0x03, 0x05, 0xd2, 0x9c, 0x81, 0x37, 0xf4, 0x85, 0x99, 0x05, 0x58, 0xc0, 0x4d, 0x36, 0x74, + 0xb9, 0x94, 0xdc, 0xf7, 0x04, 0x8c, 0xb9, 0x54, 0x82, 0x29, 0xee, 0x7b, 0xe6, 0xec, 0x80, 0x39, + 0xc1, 0x84, 0x1d, 0x98, 0x63, 0xf0, 0x40, 0x30, 0x05, 0x43, 0x23, 0x10, 0xbe, 0xf2, 0xc9, 0xfd, + 0x94, 0x6a, 0xb0, 0x80, 0x1b, 0x6b, 0xa9, 0x46, 0x4e, 0xdd, 0x7f, 0x7d, 0xcc, 0xd5, 0x24, 0x1c, + 0x18, 0xb6, 0xef, 0x9a, 0x63, 0x7f, 0xec, 0x9b, 0x49, 0x86, 0x41, 0x38, 0x4a, 0x4e, 0xc9, 0x21, + 0xf9, 0x95, 0x66, 0xde, 0x7f, 0xab, 0x10, 0xe5, 0x32, 0x7b, 0xc2, 0x3d, 0x10, 0xe7, 0x66, 0x30, + 0x1d, 0xc7, 0x80, 0x34, 0x5d, 0x50, 0xcc, 0x9c, 0xad, 0xe8, 0xd9, 0x37, 0x37, 0xb1, 0x44, 0xe8, + 0x29, 0xee, 0xc2, 0x0a, 0xe1, 0xc1, 0xf3, 0x08, 0xd2, 0x9e, 0x80, 0xcb, 0x56, 0x78, 0x6f, 0x6e, + 0xe2, 0x85, 0x8a, 0x3b, 0x26, 0xf7, 0x94, 0x54, 0xe2, 0x59, 0x92, 0x7e, 0x89, 0xf0, 0x2b, 0x47, + 0xb9, 0x4b, 0x9f, 0xf8, 0xfe, 0xf4, 0xd8, 0xe1, 0xe0, 0xa9, 0x63, 0xdf, 0x1b, 0xf1, 0x31, 0x19, + 0xe1, 0x3d, 0x09, 0x62, 0xc6, 0x6d, 0xe8, 0xa0, 0x1e, 0xea, 0x37, 0x0f, 0xdf, 0x31, 0x6e, 0xec, + 0xae, 0xf1, 0x59, 0xca, 0xa4, 0x30, 0x02, 0x01, 0x9e, 0x0d, 0xd6, 0xad, 0x8b, 0x79, 0xb7, 0x12, + 0xcd, 0xbb, 0x7b, 0x79, 0x24, 0x4f, 0x4e, 0xfa, 0xb8, 0x6e, 0x33, 0x2b, 0xf4, 0x86, 0x0e, 0x74, + 0xaa, 0x3d, 0xd4, 0x6f, 0x59, 0xad, 0x68, 0xde, 0xad, 0x1f, 0x1f, 0xa5, 0x18, 0x5d, 0x44, 0xc9, + 0x7d, 0xbc, 0x17, 0x0a, 0xe7, 0x8c, 0xa9, 0x49, 0x67, 0xa7, 0x87, 0xfa, 0x8d, 0x22, 0xe9, 0xe7, + 0xf4, 0x34, 0x86, 0x69, 0x1e, 0xd7, 0xff, 0xae, 0xe2, 0x97, 0x3f, 0xfc, 0x4e, 0x81, 0xf0, 0x98, + 0xb3, 0xd4, 0x22, 0xe9, 0xe1, 0x9a, 0xc7, 0xdc, 0xb4, 0xa7, 0x86, 0xd5, 0xca, 0x32, 0xd4, 0x1e, + 0x31, 0x17, 0x68, 0x12, 0x21, 0x3f, 0xe0, 0x96, 0x5d, 0x32, 0x22, 0x11, 0xd5, 0x3c, 0xfc, 0x60, + 0x8b, 0xee, 0x37, 0x9a, 0x6a, 0xbd, 0x94, 0xd5, 0x6b, 0x95, 0x51, 0xba, 0x54, 0x8f, 0x0c, 0xf0, + 0xae, 0x08, 0x1d, 0x90, 0x9d, 0x9d, 0xde, 0x4e, 0xbf, 0x79, 0xf8, 0xee, 0x16, 0x85, 0x69, 0xe8, + 0xc0, 0x97, 0x5c, 0x4d, 0x1e, 0x07, 0x90, 0x86, 0xa4, 0xd5, 0xce, 0x2a, 0xee, 0xc6, 0x31, 0x49, + 0xd3, 0xd4, 0xe4, 0x14, 0xb7, 0x47, 0x8c, 0x3b, 0xa1, 0x80, 0x33, 0xdf, 0xe1, 0xf6, 0x79, 0xa7, + 0x96, 0xd8, 0x71, 0x2f, 0x9a, 0x77, 0xdb, 0x1f, 0x95, 0x03, 0xd7, 0xf3, 0xee, 0x9d, 0x25, 0xe0, + 0xc9, 0x79, 0x00, 0x74, 0x99, 0xac, 0xff, 0x56, 0xc5, 0xfa, 0x5a, 0xb7, 0xd3, 0x8e, 0xc2, 0x54, + 0x0b, 0xf9, 0x06, 0xd7, 0xe3, 0x45, 0x19, 0x32, 0xc5, 0xb2, 0x91, 0x7a, 0xa3, 0xd4, 0xdb, 0x62, + 0x6e, 0x8d, 0x60, 0x3a, 0x8e, 0x01, 0x69, 0xc4, 0xb7, 0x8d, 0xd9, 0x81, 0xf1, 0x78, 0xf0, 0x2d, + 0xd8, 0xea, 0x21, 0x28, 0x66, 0x91, 0xac, 0x1d, 0x5c, 0x60, 0x74, 0x91, 0x95, 0xfc, 0x8a, 0xf0, + 0x5d, 0x58, 0x27, 0x44, 0x76, 0xaa, 0x89, 0x99, 0xef, 0x6f, 0x61, 0xe6, 0xda, 0x8e, 0x2c, 0x2d, + 0x13, 0x70, 0x77, 0x6d, 0x58, 0xd2, 0x0d, 0xf5, 0xf5, 0x6b, 0x84, 0xef, 0x3d, 0xdf, 0xa3, 0x53, + 0x2e, 0x15, 0xf9, 0x7a, 0xc5, 0x27, 0xe3, 0x66, 0x3e, 0xc5, 0xec, 0xc4, 0xa5, 0xdb, 0x99, 0xc8, + 0x7a, 0x8e, 0x94, 0x3c, 0x12, 0x78, 0x97, 0x2b, 0x70, 0x73, 0x47, 0x1e, 0xfe, 0x5f, 0x47, 0x96, + 0xf4, 0x17, 0xe3, 0x76, 0x12, 0xd7, 0xa0, 0x69, 0x29, 0xfd, 0x27, 0x84, 0x9b, 0x27, 0x1e, 0x57, + 0x9c, 0x39, 0xfc, 0x7b, 0x10, 0x37, 0x58, 0xc2, 0x27, 0xf9, 0x12, 0xa4, 0x2a, 0xcd, 0x2d, 0x97, + 0x60, 0xfd, 0xd8, 0xeb, 0xff, 0x20, 0xdc, 0x29, 0xe9, 0x78, 0xd1, 0xe3, 0x19, 0xe0, 0x16, 0x2f, + 0xaa, 0xe7, 0xbd, 0x3d, 0xd8, 0xa2, 0xb7, 0x92, 0xf8, 0xe2, 0x2d, 0x29, 0x81, 0x92, 0x2e, 0x55, + 0xd0, 0xff, 0x42, 0xf8, 0xd5, 0x4d, 0x0d, 0xbf, 0x80, 0x59, 0x9b, 0x2c, 0xcf, 0xda, 0xf1, 0x7f, + 0xeb, 0xf4, 0x26, 0x13, 0xf6, 0x0b, 0xc2, 0xb5, 0xf8, 0xaf, 0x26, 0xaf, 0xe1, 0x06, 0x0b, 0xf8, + 0xc7, 0xc2, 0x0f, 0x03, 0xd9, 0x41, 0xbd, 0x9d, 0x7e, 0xc3, 0x6a, 0x47, 0xf3, 0x6e, 0xe3, 0xe8, + 0xec, 0x24, 0x05, 0x69, 0x11, 0x27, 0x07, 0xb8, 0xc9, 0x02, 0xfe, 0x05, 0x88, 0x58, 0x47, 0xaa, + 0xb2, 0x61, 0xdd, 0x8a, 0xe6, 0xdd, 0xe6, 0xd1, 0xd9, 0x49, 0x0e, 0xd3, 0xf2, 0x9d, 0x38, 0xbf, + 0x00, 0xe9, 0x87, 0xc2, 0xce, 0x5e, 0xe8, 0x2c, 0x3f, 0xcd, 0x41, 0x5a, 0xc4, 0xf5, 0xdf, 0x11, + 0x26, 0xab, 0x6f, 0x32, 0x79, 0x0f, 0x63, 0x7f, 0x71, 0xca, 0x44, 0x76, 0x93, 0xa9, 0x59, 0xa0, + 0xd7, 0xf3, 0x6e, 0x7b, 0x71, 0x4a, 0xde, 0xdc, 0x12, 0x85, 0x7c, 0x8a, 0x6b, 0xf1, 0x40, 0x67, + 0x9f, 0xa6, 0xad, 0x97, 0x63, 0xb1, 0x70, 0xf1, 0x89, 0x26, 0xa9, 0x74, 0xc0, 0xb7, 0x9f, 0xfd, + 0x68, 0x13, 0x13, 0x37, 0xe2, 0x65, 0x94, 0x01, 0xb3, 0xf3, 0x5d, 0xbd, 0x93, 0x51, 0x1b, 0x8f, + 0xf2, 0x00, 0x2d, 0xee, 0x2c, 0xf6, 0xba, 0xba, 0x69, 0xaf, 0x2d, 0xe3, 0xe2, 0x4a, 0xab, 0x3c, + 0xbd, 0xd2, 0x2a, 0x97, 0x57, 0x5a, 0xe5, 0xc7, 0x48, 0x43, 0x17, 0x91, 0x86, 0x9e, 0x46, 0x1a, + 0xba, 0x8c, 0x34, 0xf4, 0x47, 0xa4, 0xa1, 0x9f, 0xff, 0xd4, 0x2a, 0x5f, 0xd5, 0x73, 0xbd, 0xff, + 0x06, 0x00, 0x00, 0xff, 0xff, 0x01, 0xf7, 0xd5, 0xa0, 0x26, 0x0a, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto b/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto index 5b0d4f006..b5ad69cd7 100644 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto +++ b/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto @@ -38,6 +38,9 @@ message AdmissionHookClientConfig { // Required optional ServiceReference service = 1; + // URLPath is an optional field that specifies the URL path to use when posting the AdmissionReview object. + optional string urlPath = 3; + // CABundle is a PEM encoded CA bundle which will be used to validate webhook's server certificate. // Required optional bytes caBundle = 2; diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/types.go b/vendor/k8s.io/api/admissionregistration/v1alpha1/types.go index d4827e59d..84f47b62f 100644 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/types.go +++ b/vendor/k8s.io/api/admissionregistration/v1alpha1/types.go @@ -108,7 +108,7 @@ type Rule struct { type FailurePolicyType string const ( - // Ignore means the initilizer is removed from the initializers list of an + // Ignore means the initializer is removed from the initializers list of an // object if the initializer is timed out. Ignore FailurePolicyType = "Ignore" // For 1.7, only "Ignore" is allowed. "Fail" will be allowed when the @@ -203,6 +203,10 @@ type AdmissionHookClientConfig struct { // ports open, port 443 will be used if it is open, otherwise it is an error. // Required Service ServiceReference `json:"service" protobuf:"bytes,1,opt,name=service"` + + // URLPath is an optional field that specifies the URL path to use when posting the AdmissionReview object. + URLPath string `json:"urlPath" protobuf:"bytes,3,opt,name=urlPath"` + // CABundle is a PEM encoded CA bundle which will be used to validate webhook's server certificate. // Required CABundle []byte `json:"caBundle" protobuf:"bytes,2,opt,name=caBundle"` diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go index 0b30ecc80..77a8a5197 100644 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go @@ -30,6 +30,7 @@ package v1alpha1 var map_AdmissionHookClientConfig = map[string]string{ "": "AdmissionHookClientConfig contains the information to make a TLS connection with the webhook", "service": "Service is a reference to the service for this webhook. If there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error. Required", + "urlPath": "URLPath is an optional field that specifies the URL path to use when posting the AdmissionReview object.", "caBundle": "CABundle is a PEM encoded CA bundle which will be used to validate webhook's server certificate. Required", } diff --git a/vendor/k8s.io/api/authorization/v1/generated.proto b/vendor/k8s.io/api/authorization/v1/generated.proto index 7f31d599a..de8323fc1 100644 --- a/vendor/k8s.io/api/authorization/v1/generated.proto +++ b/vendor/k8s.io/api/authorization/v1/generated.proto @@ -121,7 +121,8 @@ message ResourceRule { // +optional repeated string apiGroups = 2; - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all. + // Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. + // "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. // +optional repeated string resources = 3; diff --git a/vendor/k8s.io/api/authorization/v1/types.go b/vendor/k8s.io/api/authorization/v1/types.go index 99ec3bcbf..23b5ae705 100644 --- a/vendor/k8s.io/api/authorization/v1/types.go +++ b/vendor/k8s.io/api/authorization/v1/types.go @@ -241,7 +241,8 @@ type ResourceRule struct { // the enumerated resources in any API group will be allowed. "*" means all. // +optional APIGroups []string `json:"apiGroups,omitempty" protobuf:"bytes,2,rep,name=apiGroups"` - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all. + // Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. + // "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. // +optional Resources []string `json:"resources,omitempty" protobuf:"bytes,3,rep,name=resources"` // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. "*" means all. diff --git a/vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go index 8a0fb8a85..1e3f780d9 100644 --- a/vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go @@ -76,7 +76,7 @@ var map_ResourceRule = map[string]string{ "": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", "verbs": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", "apiGroups": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", - "resources": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all.", + "resources": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", "resourceNames": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", } diff --git a/vendor/k8s.io/api/authorization/v1beta1/generated.proto b/vendor/k8s.io/api/authorization/v1beta1/generated.proto index 9e9942f36..2c940f273 100644 --- a/vendor/k8s.io/api/authorization/v1beta1/generated.proto +++ b/vendor/k8s.io/api/authorization/v1beta1/generated.proto @@ -121,7 +121,8 @@ message ResourceRule { // +optional repeated string apiGroups = 2; - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all. + // Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. + // "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. // +optional repeated string resources = 3; diff --git a/vendor/k8s.io/api/authorization/v1beta1/types.go b/vendor/k8s.io/api/authorization/v1beta1/types.go index a0659d519..f62f59569 100644 --- a/vendor/k8s.io/api/authorization/v1beta1/types.go +++ b/vendor/k8s.io/api/authorization/v1beta1/types.go @@ -241,7 +241,8 @@ type ResourceRule struct { // the enumerated resources in any API group will be allowed. "*" means all. // +optional APIGroups []string `json:"apiGroups,omitempty" protobuf:"bytes,2,rep,name=apiGroups"` - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all. + // Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. + // "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. // +optional Resources []string `json:"resources,omitempty" protobuf:"bytes,3,rep,name=resources"` // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. "*" means all. diff --git a/vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go index 1d8bb9849..544c2fa43 100644 --- a/vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go @@ -76,7 +76,7 @@ var map_ResourceRule = map[string]string{ "": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", "verbs": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", "apiGroups": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", - "resources": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all.", + "resources": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", "resourceNames": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", } diff --git a/vendor/k8s.io/api/batch/v1/generated.proto b/vendor/k8s.io/api/batch/v1/generated.proto index 08635ad2b..0f43d2fd5 100644 --- a/vendor/k8s.io/api/batch/v1/generated.proto +++ b/vendor/k8s.io/api/batch/v1/generated.proto @@ -128,7 +128,7 @@ message JobSpec { // and other jobs to not function correctly. However, You may see // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` // API. - // More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector // +optional optional bool manualSelector = 5; diff --git a/vendor/k8s.io/api/batch/v1/types.go b/vendor/k8s.io/api/batch/v1/types.go index 4f3b83e8a..84abb1a90 100644 --- a/vendor/k8s.io/api/batch/v1/types.go +++ b/vendor/k8s.io/api/batch/v1/types.go @@ -107,7 +107,7 @@ type JobSpec struct { // and other jobs to not function correctly. However, You may see // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` // API. - // More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector // +optional ManualSelector *bool `json:"manualSelector,omitempty" protobuf:"varint,5,opt,name=manualSelector"` diff --git a/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go index 53b2d634f..0ddf4b116 100644 --- a/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go @@ -69,7 +69,7 @@ var map_JobSpec = map[string]string{ "activeDeadlineSeconds": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", "backoffLimit": "Specifies the number of retries before marking this job failed. Defaults to 6", "selector": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "manualSelector": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md", + "manualSelector": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", "template": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", } diff --git a/vendor/k8s.io/api/core/v1/generated.pb.go b/vendor/k8s.io/api/core/v1/generated.pb.go index 14075df3c..1cd0bdc71 100644 --- a/vendor/k8s.io/api/core/v1/generated.pb.go +++ b/vendor/k8s.io/api/core/v1/generated.pb.go @@ -158,6 +158,7 @@ limitations under the License. Probe ProjectedVolumeSource QuobyteVolumeSource + RBDPersistentVolumeSource RBDVolumeSource RangeAllocation ReplicationController @@ -172,6 +173,7 @@ limitations under the License. ResourceQuotaStatus ResourceRequirements SELinuxOptions + ScaleIOPersistentVolumeSource ScaleIOVolumeSource Secret SecretEnvSource @@ -798,198 +800,210 @@ func (m *QuobyteVolumeSource) Reset() { *m = QuobyteVolumeSou func (*QuobyteVolumeSource) ProtoMessage() {} func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{132} } +func (m *RBDPersistentVolumeSource) Reset() { *m = RBDPersistentVolumeSource{} } +func (*RBDPersistentVolumeSource) ProtoMessage() {} +func (*RBDPersistentVolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{133} +} + func (m *RBDVolumeSource) Reset() { *m = RBDVolumeSource{} } func (*RBDVolumeSource) ProtoMessage() {} -func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{133} } +func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{134} } func (m *RangeAllocation) Reset() { *m = RangeAllocation{} } func (*RangeAllocation) ProtoMessage() {} -func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{134} } +func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{135} } func (m *ReplicationController) Reset() { *m = ReplicationController{} } func (*ReplicationController) ProtoMessage() {} -func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{135} } +func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } func (m *ReplicationControllerCondition) Reset() { *m = ReplicationControllerCondition{} } func (*ReplicationControllerCondition) ProtoMessage() {} func (*ReplicationControllerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{136} + return fileDescriptorGenerated, []int{137} } func (m *ReplicationControllerList) Reset() { *m = ReplicationControllerList{} } func (*ReplicationControllerList) ProtoMessage() {} func (*ReplicationControllerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{137} + return fileDescriptorGenerated, []int{138} } func (m *ReplicationControllerSpec) Reset() { *m = ReplicationControllerSpec{} } func (*ReplicationControllerSpec) ProtoMessage() {} func (*ReplicationControllerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{138} + return fileDescriptorGenerated, []int{139} } func (m *ReplicationControllerStatus) Reset() { *m = ReplicationControllerStatus{} } func (*ReplicationControllerStatus) ProtoMessage() {} func (*ReplicationControllerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{139} + return fileDescriptorGenerated, []int{140} } func (m *ResourceFieldSelector) Reset() { *m = ResourceFieldSelector{} } func (*ResourceFieldSelector) ProtoMessage() {} -func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } +func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } func (m *ResourceQuota) Reset() { *m = ResourceQuota{} } func (*ResourceQuota) ProtoMessage() {} -func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } +func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } func (m *ResourceQuotaList) Reset() { *m = ResourceQuotaList{} } func (*ResourceQuotaList) ProtoMessage() {} -func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } +func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } func (m *ResourceQuotaSpec) Reset() { *m = ResourceQuotaSpec{} } func (*ResourceQuotaSpec) ProtoMessage() {} -func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } +func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } func (m *ResourceQuotaStatus) Reset() { *m = ResourceQuotaStatus{} } func (*ResourceQuotaStatus) ProtoMessage() {} -func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } +func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} } func (*ResourceRequirements) ProtoMessage() {} -func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } +func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } func (m *SELinuxOptions) Reset() { *m = SELinuxOptions{} } func (*SELinuxOptions) ProtoMessage() {} -func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } +func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } + +func (m *ScaleIOPersistentVolumeSource) Reset() { *m = ScaleIOPersistentVolumeSource{} } +func (*ScaleIOPersistentVolumeSource) ProtoMessage() {} +func (*ScaleIOPersistentVolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{148} +} func (m *ScaleIOVolumeSource) Reset() { *m = ScaleIOVolumeSource{} } func (*ScaleIOVolumeSource) ProtoMessage() {} -func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } +func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } func (m *Secret) Reset() { *m = Secret{} } func (*Secret) ProtoMessage() {} -func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } +func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } func (m *SecretEnvSource) Reset() { *m = SecretEnvSource{} } func (*SecretEnvSource) ProtoMessage() {} -func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } +func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } func (m *SecretKeySelector) Reset() { *m = SecretKeySelector{} } func (*SecretKeySelector) ProtoMessage() {} -func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } +func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } func (m *SecretList) Reset() { *m = SecretList{} } func (*SecretList) ProtoMessage() {} -func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } +func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } func (m *SecretProjection) Reset() { *m = SecretProjection{} } func (*SecretProjection) ProtoMessage() {} -func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } +func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } func (m *SecretReference) Reset() { *m = SecretReference{} } func (*SecretReference) ProtoMessage() {} -func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } +func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } func (m *SecretVolumeSource) Reset() { *m = SecretVolumeSource{} } func (*SecretVolumeSource) ProtoMessage() {} -func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } +func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } func (m *SecurityContext) Reset() { *m = SecurityContext{} } func (*SecurityContext) ProtoMessage() {} -func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } +func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } func (m *SerializedReference) Reset() { *m = SerializedReference{} } func (*SerializedReference) ProtoMessage() {} -func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } +func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } func (m *Service) Reset() { *m = Service{} } func (*Service) ProtoMessage() {} -func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } +func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } func (m *ServiceAccount) Reset() { *m = ServiceAccount{} } func (*ServiceAccount) ProtoMessage() {} -func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } +func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } func (m *ServiceAccountList) Reset() { *m = ServiceAccountList{} } func (*ServiceAccountList) ProtoMessage() {} -func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } +func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } func (m *ServiceList) Reset() { *m = ServiceList{} } func (*ServiceList) ProtoMessage() {} -func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } +func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } func (m *ServicePort) Reset() { *m = ServicePort{} } func (*ServicePort) ProtoMessage() {} -func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } +func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } func (m *ServiceProxyOptions) Reset() { *m = ServiceProxyOptions{} } func (*ServiceProxyOptions) ProtoMessage() {} -func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } +func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } func (m *ServiceSpec) Reset() { *m = ServiceSpec{} } func (*ServiceSpec) ProtoMessage() {} -func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } +func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } func (m *ServiceStatus) Reset() { *m = ServiceStatus{} } func (*ServiceStatus) ProtoMessage() {} -func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } +func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } func (m *SessionAffinityConfig) Reset() { *m = SessionAffinityConfig{} } func (*SessionAffinityConfig) ProtoMessage() {} -func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } +func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } func (m *StorageOSPersistentVolumeSource) Reset() { *m = StorageOSPersistentVolumeSource{} } func (*StorageOSPersistentVolumeSource) ProtoMessage() {} func (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{166} + return fileDescriptorGenerated, []int{168} } func (m *StorageOSVolumeSource) Reset() { *m = StorageOSVolumeSource{} } func (*StorageOSVolumeSource) ProtoMessage() {} -func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } +func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } func (m *Sysctl) Reset() { *m = Sysctl{} } func (*Sysctl) ProtoMessage() {} -func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } +func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } func (m *TCPSocketAction) Reset() { *m = TCPSocketAction{} } func (*TCPSocketAction) ProtoMessage() {} -func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } +func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } func (m *Taint) Reset() { *m = Taint{} } func (*Taint) ProtoMessage() {} -func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } +func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{172} } func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} -func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } +func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{173} } func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} -func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{172} } +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{174} } func (m *VolumeMount) Reset() { *m = VolumeMount{} } func (*VolumeMount) ProtoMessage() {} -func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{173} } +func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } func (m *VolumeProjection) Reset() { *m = VolumeProjection{} } func (*VolumeProjection) ProtoMessage() {} -func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{174} } +func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{176} } func (m *VolumeSource) Reset() { *m = VolumeSource{} } func (*VolumeSource) ProtoMessage() {} -func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } +func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{177} } func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} } func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {} func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{176} + return fileDescriptorGenerated, []int{178} } func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} } func (*WeightedPodAffinityTerm) ProtoMessage() {} func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{177} + return fileDescriptorGenerated, []int{179} } func init() { @@ -1126,6 +1140,7 @@ func init() { proto.RegisterType((*Probe)(nil), "k8s.io.api.core.v1.Probe") proto.RegisterType((*ProjectedVolumeSource)(nil), "k8s.io.api.core.v1.ProjectedVolumeSource") proto.RegisterType((*QuobyteVolumeSource)(nil), "k8s.io.api.core.v1.QuobyteVolumeSource") + proto.RegisterType((*RBDPersistentVolumeSource)(nil), "k8s.io.api.core.v1.RBDPersistentVolumeSource") proto.RegisterType((*RBDVolumeSource)(nil), "k8s.io.api.core.v1.RBDVolumeSource") proto.RegisterType((*RangeAllocation)(nil), "k8s.io.api.core.v1.RangeAllocation") proto.RegisterType((*ReplicationController)(nil), "k8s.io.api.core.v1.ReplicationController") @@ -1140,6 +1155,7 @@ func init() { proto.RegisterType((*ResourceQuotaStatus)(nil), "k8s.io.api.core.v1.ResourceQuotaStatus") proto.RegisterType((*ResourceRequirements)(nil), "k8s.io.api.core.v1.ResourceRequirements") proto.RegisterType((*SELinuxOptions)(nil), "k8s.io.api.core.v1.SELinuxOptions") + proto.RegisterType((*ScaleIOPersistentVolumeSource)(nil), "k8s.io.api.core.v1.ScaleIOPersistentVolumeSource") proto.RegisterType((*ScaleIOVolumeSource)(nil), "k8s.io.api.core.v1.ScaleIOVolumeSource") proto.RegisterType((*Secret)(nil), "k8s.io.api.core.v1.Secret") proto.RegisterType((*SecretEnvSource)(nil), "k8s.io.api.core.v1.SecretEnvSource") @@ -7541,7 +7557,7 @@ func (m *QuobyteVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *RBDVolumeSource) Marshal() (dAtA []byte, err error) { +func (m *RBDPersistentVolumeSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -7551,7 +7567,7 @@ func (m *RBDVolumeSource) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { +func (m *RBDPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -7612,6 +7628,77 @@ func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *RBDVolumeSource) 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 *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.CephMonitors) > 0 { + for _, s := range m.CephMonitors { + 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) + } + } + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDImage))) + i += copy(dAtA[i:], m.RBDImage) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType))) + i += copy(dAtA[i:], m.FSType) + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDPool))) + i += copy(dAtA[i:], m.RBDPool) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RadosUser))) + i += copy(dAtA[i:], m.RadosUser) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Keyring))) + i += copy(dAtA[i:], m.Keyring) + if m.SecretRef != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) + n150, err := m.SecretRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n150 + } + dAtA[i] = 0x40 + i++ + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + return i, nil +} + func (m *RangeAllocation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7630,11 +7717,11 @@ func (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n150, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n151, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n150 + i += n151 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Range))) @@ -7666,27 +7753,27 @@ func (m *ReplicationController) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n151, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n152, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n151 + i += n152 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n152, err := m.Spec.MarshalTo(dAtA[i:]) + n153, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n152 + i += n153 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n153, err := m.Status.MarshalTo(dAtA[i:]) + n154, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n153 + i += n154 return i, nil } @@ -7716,11 +7803,11 @@ func (m *ReplicationControllerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n154, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n155, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n154 + i += n155 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7750,11 +7837,11 @@ func (m *ReplicationControllerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n155, err := m.ListMeta.MarshalTo(dAtA[i:]) + n156, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n155 + i += n156 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7816,11 +7903,11 @@ func (m *ReplicationControllerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n156, err := m.Template.MarshalTo(dAtA[i:]) + n157, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n156 + i += n157 } dAtA[i] = 0x20 i++ @@ -7899,11 +7986,11 @@ func (m *ResourceFieldSelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Divisor.Size())) - n157, err := m.Divisor.MarshalTo(dAtA[i:]) + n158, err := m.Divisor.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n157 + i += n158 return i, nil } @@ -7925,27 +8012,27 @@ func (m *ResourceQuota) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n158, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n159, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n158 + i += n159 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n159, err := m.Spec.MarshalTo(dAtA[i:]) + n160, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n159 + i += n160 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n160, err := m.Status.MarshalTo(dAtA[i:]) + n161, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n160 + i += n161 return i, nil } @@ -7967,11 +8054,11 @@ func (m *ResourceQuotaList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n161, err := m.ListMeta.MarshalTo(dAtA[i:]) + n162, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n161 + i += n162 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8026,11 +8113,11 @@ func (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n162, err := (&v).MarshalTo(dAtA[i:]) + n163, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n162 + i += n163 } } if len(m.Scopes) > 0 { @@ -8090,11 +8177,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n163, err := (&v).MarshalTo(dAtA[i:]) + n164, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n163 + i += n164 } } if len(m.Used) > 0 { @@ -8121,11 +8208,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n164, err := (&v).MarshalTo(dAtA[i:]) + n165, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n164 + i += n165 } } return i, nil @@ -8170,11 +8257,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n165, err := (&v).MarshalTo(dAtA[i:]) + n166, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n165 + i += n166 } } if len(m.Requests) > 0 { @@ -8201,11 +8288,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n166, err := (&v).MarshalTo(dAtA[i:]) + n167, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n166 + i += n167 } } return i, nil @@ -8245,6 +8332,78 @@ func (m *SELinuxOptions) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *ScaleIOPersistentVolumeSource) 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 *ScaleIOPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Gateway))) + i += copy(dAtA[i:], m.Gateway) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.System))) + i += copy(dAtA[i:], m.System) + if m.SecretRef != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) + n168, err := m.SecretRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n168 + } + dAtA[i] = 0x20 + i++ + if m.SSLEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ProtectionDomain))) + i += copy(dAtA[i:], m.ProtectionDomain) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePool))) + i += copy(dAtA[i:], m.StoragePool) + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageMode))) + i += copy(dAtA[i:], m.StorageMode) + dAtA[i] = 0x42 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName))) + i += copy(dAtA[i:], m.VolumeName) + dAtA[i] = 0x4a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType))) + i += copy(dAtA[i:], m.FSType) + dAtA[i] = 0x50 + i++ + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + return i, nil +} + func (m *ScaleIOVolumeSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -8272,11 +8431,11 @@ func (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n167, err := m.SecretRef.MarshalTo(dAtA[i:]) + n169, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n167 + i += n169 } dAtA[i] = 0x20 i++ @@ -8335,11 +8494,11 @@ func (m *Secret) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n168, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n170, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n168 + i += n170 if len(m.Data) > 0 { keysForData := make([]string, 0, len(m.Data)) for k := range m.Data { @@ -8415,11 +8574,11 @@ func (m *SecretEnvSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n169, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n171, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n169 + i += n171 if m.Optional != nil { dAtA[i] = 0x10 i++ @@ -8451,11 +8610,11 @@ func (m *SecretKeySelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n170, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n172, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n170 + i += n172 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) @@ -8491,11 +8650,11 @@ func (m *SecretList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n171, err := m.ListMeta.MarshalTo(dAtA[i:]) + n173, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n171 + i += n173 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8529,11 +8688,11 @@ func (m *SecretProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n172, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n174, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n172 + i += n174 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8653,11 +8812,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Capabilities.Size())) - n173, err := m.Capabilities.MarshalTo(dAtA[i:]) + n175, err := m.Capabilities.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n173 + i += n175 } if m.Privileged != nil { dAtA[i] = 0x10 @@ -8673,11 +8832,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n174, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n176, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n174 + i += n176 } if m.RunAsUser != nil { dAtA[i] = 0x20 @@ -8735,11 +8894,11 @@ func (m *SerializedReference) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Reference.Size())) - n175, err := m.Reference.MarshalTo(dAtA[i:]) + n177, err := m.Reference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n175 + i += n177 return i, nil } @@ -8761,27 +8920,27 @@ func (m *Service) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n176, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n178, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n176 + i += n178 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n177, err := m.Spec.MarshalTo(dAtA[i:]) + n179, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n177 + i += n179 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n178, err := m.Status.MarshalTo(dAtA[i:]) + n180, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n178 + i += n180 return i, nil } @@ -8803,11 +8962,11 @@ func (m *ServiceAccount) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n179, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n181, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n179 + i += n181 if len(m.Secrets) > 0 { for _, msg := range m.Secrets { dAtA[i] = 0x12 @@ -8863,11 +9022,11 @@ func (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n180, err := m.ListMeta.MarshalTo(dAtA[i:]) + n182, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n180 + i += n182 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8901,11 +9060,11 @@ func (m *ServiceList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n181, err := m.ListMeta.MarshalTo(dAtA[i:]) + n183, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n181 + i += n183 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8950,11 +9109,11 @@ func (m *ServicePort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetPort.Size())) - n182, err := m.TargetPort.MarshalTo(dAtA[i:]) + n184, err := m.TargetPort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n182 + i += n184 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodePort)) @@ -9101,11 +9260,11 @@ func (m *ServiceSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SessionAffinityConfig.Size())) - n183, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) + n185, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n183 + i += n185 } return i, nil } @@ -9128,11 +9287,11 @@ func (m *ServiceStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LoadBalancer.Size())) - n184, err := m.LoadBalancer.MarshalTo(dAtA[i:]) + n186, err := m.LoadBalancer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n184 + i += n186 return i, nil } @@ -9155,11 +9314,11 @@ func (m *SessionAffinityConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ClientIP.Size())) - n185, err := m.ClientIP.MarshalTo(dAtA[i:]) + n187, err := m.ClientIP.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n185 + i += n187 } return i, nil } @@ -9203,11 +9362,11 @@ func (m *StorageOSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n186, err := m.SecretRef.MarshalTo(dAtA[i:]) + n188, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n186 + i += n188 } return i, nil } @@ -9251,11 +9410,11 @@ func (m *StorageOSVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n187, err := m.SecretRef.MarshalTo(dAtA[i:]) + n189, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n187 + i += n189 } return i, nil } @@ -9304,11 +9463,11 @@ func (m *TCPSocketAction) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n188, err := m.Port.MarshalTo(dAtA[i:]) + n190, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n188 + i += n190 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) @@ -9347,11 +9506,11 @@ func (m *Taint) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TimeAdded.Size())) - n189, err := m.TimeAdded.MarshalTo(dAtA[i:]) + n191, err := m.TimeAdded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n189 + i += n191 } return i, nil } @@ -9417,11 +9576,11 @@ func (m *Volume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VolumeSource.Size())) - n190, err := m.VolumeSource.MarshalTo(dAtA[i:]) + n192, err := m.VolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n190 + i += n192 return i, nil } @@ -9488,31 +9647,31 @@ func (m *VolumeProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n191, err := m.Secret.MarshalTo(dAtA[i:]) + n193, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n191 + i += n193 } if m.DownwardAPI != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n192, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n194, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n192 + i += n194 } if m.ConfigMap != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n193, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n195, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n193 + i += n195 } return i, nil } @@ -9536,151 +9695,151 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n194, err := m.HostPath.MarshalTo(dAtA[i:]) + n196, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n194 + i += n196 } if m.EmptyDir != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) - n195, err := m.EmptyDir.MarshalTo(dAtA[i:]) + n197, err := m.EmptyDir.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n195 + i += n197 } if m.GCEPersistentDisk != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n196, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) + n198, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n196 + i += n198 } if m.AWSElasticBlockStore != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n197, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) + n199, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n197 + i += n199 } if m.GitRepo != nil { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) - n198, err := m.GitRepo.MarshalTo(dAtA[i:]) + n200, err := m.GitRepo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n198 + i += n200 } if m.Secret != nil { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n199, err := m.Secret.MarshalTo(dAtA[i:]) + n201, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n199 + i += n201 } if m.NFS != nil { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n200, err := m.NFS.MarshalTo(dAtA[i:]) + n202, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n200 + i += n202 } if m.ISCSI != nil { dAtA[i] = 0x42 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n201, err := m.ISCSI.MarshalTo(dAtA[i:]) + n203, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n201 + i += n203 } if m.Glusterfs != nil { dAtA[i] = 0x4a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n202, err := m.Glusterfs.MarshalTo(dAtA[i:]) + n204, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n202 + i += n204 } if m.PersistentVolumeClaim != nil { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) - n203, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) + n205, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n203 + i += n205 } if m.RBD != nil { dAtA[i] = 0x5a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n204, err := m.RBD.MarshalTo(dAtA[i:]) + n206, err := m.RBD.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n204 + i += n206 } if m.FlexVolume != nil { dAtA[i] = 0x62 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n205, err := m.FlexVolume.MarshalTo(dAtA[i:]) + n207, err := m.FlexVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n205 + i += n207 } if m.Cinder != nil { dAtA[i] = 0x6a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n206, err := m.Cinder.MarshalTo(dAtA[i:]) + n208, err := m.Cinder.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n206 + i += n208 } if m.CephFS != nil { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n207, err := m.CephFS.MarshalTo(dAtA[i:]) + n209, err := m.CephFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n207 + i += n209 } if m.Flocker != nil { dAtA[i] = 0x7a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n208, err := m.Flocker.MarshalTo(dAtA[i:]) + n210, err := m.Flocker.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n208 + i += n210 } if m.DownwardAPI != nil { dAtA[i] = 0x82 @@ -9688,11 +9847,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n209, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n211, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n209 + i += n211 } if m.FC != nil { dAtA[i] = 0x8a @@ -9700,11 +9859,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n210, err := m.FC.MarshalTo(dAtA[i:]) + n212, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n210 + i += n212 } if m.AzureFile != nil { dAtA[i] = 0x92 @@ -9712,11 +9871,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n211, err := m.AzureFile.MarshalTo(dAtA[i:]) + n213, err := m.AzureFile.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n211 + i += n213 } if m.ConfigMap != nil { dAtA[i] = 0x9a @@ -9724,11 +9883,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n212, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n214, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n212 + i += n214 } if m.VsphereVolume != nil { dAtA[i] = 0xa2 @@ -9736,11 +9895,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n213, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + n215, err := m.VsphereVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n213 + i += n215 } if m.Quobyte != nil { dAtA[i] = 0xaa @@ -9748,11 +9907,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n214, err := m.Quobyte.MarshalTo(dAtA[i:]) + n216, err := m.Quobyte.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n214 + i += n216 } if m.AzureDisk != nil { dAtA[i] = 0xb2 @@ -9760,11 +9919,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n215, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n217, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n215 + i += n217 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0xba @@ -9772,11 +9931,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n216, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n218, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n216 + i += n218 } if m.PortworxVolume != nil { dAtA[i] = 0xc2 @@ -9784,11 +9943,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n217, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n219, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n217 + i += n219 } if m.ScaleIO != nil { dAtA[i] = 0xca @@ -9796,11 +9955,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n218, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n220, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n218 + i += n220 } if m.Projected != nil { dAtA[i] = 0xd2 @@ -9808,11 +9967,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Projected.Size())) - n219, err := m.Projected.MarshalTo(dAtA[i:]) + n221, err := m.Projected.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n219 + i += n221 } if m.StorageOS != nil { dAtA[i] = 0xda @@ -9820,11 +9979,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n220, err := m.StorageOS.MarshalTo(dAtA[i:]) + n222, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n220 + i += n222 } return i, nil } @@ -9884,11 +10043,11 @@ func (m *WeightedPodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodAffinityTerm.Size())) - n221, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) + n223, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n221 + i += n223 return i, nil } @@ -12242,6 +12401,33 @@ func (m *QuobyteVolumeSource) Size() (n int) { return n } +func (m *RBDPersistentVolumeSource) Size() (n int) { + var l int + _ = l + if len(m.CephMonitors) > 0 { + for _, s := range m.CephMonitors { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = len(m.RBDImage) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.FSType) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.RBDPool) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.RadosUser) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Keyring) + n += 1 + l + sovGenerated(uint64(l)) + if m.SecretRef != nil { + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 2 + return n +} + func (m *RBDVolumeSource) Size() (n int) { var l int _ = l @@ -12485,6 +12671,32 @@ func (m *SELinuxOptions) Size() (n int) { return n } +func (m *ScaleIOPersistentVolumeSource) Size() (n int) { + var l int + _ = l + l = len(m.Gateway) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.System) + n += 1 + l + sovGenerated(uint64(l)) + if m.SecretRef != nil { + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 2 + l = len(m.ProtectionDomain) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.StoragePool) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.StorageMode) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.VolumeName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.FSType) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + return n +} + func (m *ScaleIOVolumeSource) Size() (n int) { var l int _ = l @@ -14520,7 +14732,7 @@ func (this *PersistentVolumeSource) String() string { `HostPath:` + strings.Replace(fmt.Sprintf("%v", this.HostPath), "HostPathVolumeSource", "HostPathVolumeSource", 1) + `,`, `Glusterfs:` + strings.Replace(fmt.Sprintf("%v", this.Glusterfs), "GlusterfsVolumeSource", "GlusterfsVolumeSource", 1) + `,`, `NFS:` + strings.Replace(fmt.Sprintf("%v", this.NFS), "NFSVolumeSource", "NFSVolumeSource", 1) + `,`, - `RBD:` + strings.Replace(fmt.Sprintf("%v", this.RBD), "RBDVolumeSource", "RBDVolumeSource", 1) + `,`, + `RBD:` + strings.Replace(fmt.Sprintf("%v", this.RBD), "RBDPersistentVolumeSource", "RBDPersistentVolumeSource", 1) + `,`, `ISCSI:` + strings.Replace(fmt.Sprintf("%v", this.ISCSI), "ISCSIVolumeSource", "ISCSIVolumeSource", 1) + `,`, `Cinder:` + strings.Replace(fmt.Sprintf("%v", this.Cinder), "CinderVolumeSource", "CinderVolumeSource", 1) + `,`, `CephFS:` + strings.Replace(fmt.Sprintf("%v", this.CephFS), "CephFSPersistentVolumeSource", "CephFSPersistentVolumeSource", 1) + `,`, @@ -14533,7 +14745,7 @@ func (this *PersistentVolumeSource) String() string { `AzureDisk:` + strings.Replace(fmt.Sprintf("%v", this.AzureDisk), "AzureDiskVolumeSource", "AzureDiskVolumeSource", 1) + `,`, `PhotonPersistentDisk:` + strings.Replace(fmt.Sprintf("%v", this.PhotonPersistentDisk), "PhotonPersistentDiskVolumeSource", "PhotonPersistentDiskVolumeSource", 1) + `,`, `PortworxVolume:` + strings.Replace(fmt.Sprintf("%v", this.PortworxVolume), "PortworxVolumeSource", "PortworxVolumeSource", 1) + `,`, - `ScaleIO:` + strings.Replace(fmt.Sprintf("%v", this.ScaleIO), "ScaleIOVolumeSource", "ScaleIOVolumeSource", 1) + `,`, + `ScaleIO:` + strings.Replace(fmt.Sprintf("%v", this.ScaleIO), "ScaleIOPersistentVolumeSource", "ScaleIOPersistentVolumeSource", 1) + `,`, `Local:` + strings.Replace(fmt.Sprintf("%v", this.Local), "LocalVolumeSource", "LocalVolumeSource", 1) + `,`, `StorageOS:` + strings.Replace(fmt.Sprintf("%v", this.StorageOS), "StorageOSPersistentVolumeSource", "StorageOSPersistentVolumeSource", 1) + `,`, `}`, @@ -14944,6 +15156,23 @@ func (this *QuobyteVolumeSource) String() string { }, "") return s } +func (this *RBDPersistentVolumeSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RBDPersistentVolumeSource{`, + `CephMonitors:` + fmt.Sprintf("%v", this.CephMonitors) + `,`, + `RBDImage:` + fmt.Sprintf("%v", this.RBDImage) + `,`, + `FSType:` + fmt.Sprintf("%v", this.FSType) + `,`, + `RBDPool:` + fmt.Sprintf("%v", this.RBDPool) + `,`, + `RadosUser:` + fmt.Sprintf("%v", this.RadosUser) + `,`, + `Keyring:` + fmt.Sprintf("%v", this.Keyring) + `,`, + `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "SecretReference", 1) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `}`, + }, "") + return s +} func (this *RBDVolumeSource) String() string { if this == nil { return "nil" @@ -15179,6 +15408,25 @@ func (this *SELinuxOptions) String() string { }, "") return s } +func (this *ScaleIOPersistentVolumeSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ScaleIOPersistentVolumeSource{`, + `Gateway:` + fmt.Sprintf("%v", this.Gateway) + `,`, + `System:` + fmt.Sprintf("%v", this.System) + `,`, + `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "SecretReference", 1) + `,`, + `SSLEnabled:` + fmt.Sprintf("%v", this.SSLEnabled) + `,`, + `ProtectionDomain:` + fmt.Sprintf("%v", this.ProtectionDomain) + `,`, + `StoragePool:` + fmt.Sprintf("%v", this.StoragePool) + `,`, + `StorageMode:` + fmt.Sprintf("%v", this.StorageMode) + `,`, + `VolumeName:` + fmt.Sprintf("%v", this.VolumeName) + `,`, + `FSType:` + fmt.Sprintf("%v", this.FSType) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `}`, + }, "") + return s +} func (this *ScaleIOVolumeSource) String() string { if this == nil { return "nil" @@ -32302,7 +32550,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.RBD == nil { - m.RBD = &RBDVolumeSource{} + m.RBD = &RBDPersistentVolumeSource{} } if err := m.RBD.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -32731,7 +32979,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.ScaleIO == nil { - m.ScaleIO = &ScaleIOVolumeSource{} + m.ScaleIO = &ScaleIOPersistentVolumeSource{} } if err := m.ScaleIO.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -37868,7 +38116,7 @@ func (m *QuobyteVolumeSource) Unmarshal(dAtA []byte) error { } return nil } -func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { +func (m *RBDPersistentVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -37891,10 +38139,10 @@ func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RBDVolumeSource: wiretype end group for non-group") + return fmt.Errorf("proto: RBDPersistentVolumeSource: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RBDVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RBDPersistentVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -38098,7 +38346,7 @@ func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.SecretRef == nil { - m.SecretRef = &LocalObjectReference{} + m.SecretRef = &SecretReference{} } if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -38145,7 +38393,7 @@ func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { } return nil } -func (m *RangeAllocation) Unmarshal(dAtA []byte) error { +func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -38168,17 +38416,17 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RangeAllocation: wiretype end group for non-group") + return fmt.Errorf("proto: RBDVolumeSource: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RangeAllocation: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RBDVolumeSource: 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) + return fmt.Errorf("proto: wrong wireType = %d for field CephMonitors", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -38188,25 +38436,24 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.CephMonitors = append(m.CephMonitors, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Range", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RBDImage", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -38231,13 +38478,13 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Range = string(dAtA[iNdEx:postIndex]) + m.RBDImage = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FSType", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -38247,78 +38494,55 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} - } + m.FSType = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RBDPool", wireType) } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + 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 + } } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReplicationController) 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 + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated } - if iNdEx >= l { + postIndex := iNdEx + intStringLen + if postIndex > 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: ReplicationController: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReplicationController: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.RBDPool = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RadosUser", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -38328,27 +38552,26 @@ func (m *ReplicationController) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.RadosUser = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Keyring", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -38358,25 +38581,24 @@ func (m *ReplicationController) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Keyring = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -38400,7 +38622,310 @@ func (m *ReplicationController) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.SecretRef == nil { + m.SecretRef = &LocalObjectReference{} + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ReadOnly = bool(v != 0) + 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 *RangeAllocation) 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: RangeAllocation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RangeAllocation: 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 Range", 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.Range = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + 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 *ReplicationController) 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: ReplicationController: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicationController: 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 Spec", 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.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -40485,6 +41010,332 @@ func (m *SELinuxOptions) Unmarshal(dAtA []byte) error { } return nil } +func (m *ScaleIOPersistentVolumeSource) 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: ScaleIOPersistentVolumeSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ScaleIOPersistentVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gateway", 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.Gateway = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field System", 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.System = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", 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.SecretRef == nil { + m.SecretRef = &SecretReference{} + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SSLEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.SSLEnabled = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProtectionDomain", 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.ProtectionDomain = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StoragePool", 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.StoragePool = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorageMode", 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.StorageMode = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeName", 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.VolumeName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FSType", 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.FSType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ReadOnly = bool(v != 0) + 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 *ScaleIOVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -46344,745 +47195,749 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 11832 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x24, 0xd7, - 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x77, 0xb1, 0xe4, 0x10, 0x24, 0x17, 0xcb, 0xa6, - 0x44, 0x2e, 0x5f, 0x80, 0xb8, 0x24, 0x45, 0x5a, 0xa4, 0x28, 0x01, 0x18, 0x60, 0x17, 0xdc, 0xc5, - 0xee, 0xf0, 0x0e, 0x76, 0x57, 0xa4, 0x68, 0x7e, 0x6a, 0x4c, 0x5f, 0x00, 0x4d, 0x34, 0xba, 0x87, - 0xdd, 0x3d, 0xd8, 0x05, 0xcb, 0xaa, 0xfa, 0xa2, 0xc8, 0xca, 0x43, 0xfe, 0xe1, 0x4a, 0x54, 0x89, - 0x63, 0xa9, 0x9c, 0xaa, 0x3c, 0xca, 0x56, 0x9c, 0xa4, 0xe2, 0xc8, 0xb1, 0x1d, 0xc9, 0xa9, 0x38, - 0xce, 0xa3, 0xe4, 0x3f, 0x8a, 0x9d, 0x3f, 0x52, 0x95, 0x2b, 0x88, 0xb5, 0x4a, 0x25, 0xe5, 0x1f, - 0x49, 0x25, 0xf1, 0x2f, 0x23, 0x4e, 0x94, 0xba, 0xcf, 0xbe, 0xb7, 0xa7, 0x7b, 0x66, 0xb0, 0xdc, - 0x05, 0x29, 0x95, 0xff, 0xcd, 0x9c, 0x73, 0xee, 0xb9, 0xb7, 0xef, 0xe3, 0xdc, 0x73, 0xcf, 0x3d, - 0xe7, 0x5c, 0x78, 0x79, 0xf7, 0xa5, 0x78, 0xde, 0x0b, 0x17, 0x76, 0xdb, 0x9b, 0x24, 0x0a, 0x48, - 0x42, 0xe2, 0x85, 0x7d, 0x12, 0xb8, 0x61, 0xb4, 0x20, 0x10, 0x4e, 0xcb, 0x5b, 0x68, 0x86, 0x11, - 0x59, 0xd8, 0x7f, 0x76, 0x61, 0x9b, 0x04, 0x24, 0x72, 0x12, 0xe2, 0xce, 0xb7, 0xa2, 0x30, 0x09, - 0x11, 0xe2, 0x34, 0xf3, 0x4e, 0xcb, 0x9b, 0xa7, 0x34, 0xf3, 0xfb, 0xcf, 0xce, 0x3e, 0xb3, 0xed, - 0x25, 0x3b, 0xed, 0xcd, 0xf9, 0x66, 0xb8, 0xb7, 0xb0, 0x1d, 0x6e, 0x87, 0x0b, 0x8c, 0x74, 0xb3, - 0xbd, 0xc5, 0xfe, 0xb1, 0x3f, 0xec, 0x17, 0x67, 0x31, 0xbb, 0x9e, 0x56, 0x43, 0x6e, 0x25, 0x24, - 0x88, 0xbd, 0x30, 0x88, 0x9f, 0x71, 0x5a, 0x5e, 0x4c, 0xa2, 0x7d, 0x12, 0x2d, 0xb4, 0x76, 0xb7, - 0x29, 0x2e, 0x36, 0x09, 0x16, 0xf6, 0x9f, 0xdd, 0x24, 0x89, 0xd3, 0xd1, 0xa2, 0xd9, 0xe7, 0x53, - 0x76, 0x7b, 0x4e, 0x73, 0xc7, 0x0b, 0x48, 0x74, 0x20, 0x79, 0x2c, 0x44, 0x24, 0x0e, 0xdb, 0x51, - 0x93, 0x1c, 0xab, 0x54, 0xbc, 0xb0, 0x47, 0x12, 0x27, 0xe7, 0xeb, 0x67, 0x17, 0x8a, 0x4a, 0x45, - 0xed, 0x20, 0xf1, 0xf6, 0x3a, 0xab, 0xf9, 0x44, 0xaf, 0x02, 0x71, 0x73, 0x87, 0xec, 0x39, 0x1d, - 0xe5, 0x9e, 0x2b, 0x2a, 0xd7, 0x4e, 0x3c, 0x7f, 0xc1, 0x0b, 0x92, 0x38, 0x89, 0xb2, 0x85, 0xec, - 0xef, 0x59, 0x70, 0x76, 0xf1, 0x46, 0x63, 0xc5, 0x77, 0xe2, 0xc4, 0x6b, 0x2e, 0xf9, 0x61, 0x73, - 0xb7, 0x91, 0x84, 0x11, 0xb9, 0x1e, 0xfa, 0xed, 0x3d, 0xd2, 0x60, 0x1d, 0x81, 0x9e, 0x86, 0x91, - 0x7d, 0xf6, 0x7f, 0xad, 0x56, 0xb5, 0xce, 0x5a, 0xe7, 0x2a, 0x4b, 0x53, 0xdf, 0x39, 0x9c, 0xfb, - 0xc8, 0xed, 0xc3, 0xb9, 0x91, 0xeb, 0x02, 0x8e, 0x15, 0x05, 0x7a, 0x0c, 0x86, 0xb6, 0xe2, 0x8d, - 0x83, 0x16, 0xa9, 0x96, 0x18, 0xed, 0x84, 0xa0, 0x1d, 0x5a, 0x6d, 0x50, 0x28, 0x16, 0x58, 0xb4, - 0x00, 0x95, 0x96, 0x13, 0x25, 0x5e, 0xe2, 0x85, 0x41, 0xb5, 0x7c, 0xd6, 0x3a, 0x37, 0xb8, 0x34, - 0x2d, 0x48, 0x2b, 0x75, 0x89, 0xc0, 0x29, 0x0d, 0x6d, 0x46, 0x44, 0x1c, 0xf7, 0x6a, 0xe0, 0x1f, - 0x54, 0x07, 0xce, 0x5a, 0xe7, 0x46, 0xd2, 0x66, 0x60, 0x01, 0xc7, 0x8a, 0xc2, 0xfe, 0xc5, 0x12, - 0x8c, 0x2c, 0x6e, 0x6d, 0x79, 0x81, 0x97, 0x1c, 0xa0, 0xeb, 0x30, 0x16, 0x84, 0x2e, 0x91, 0xff, - 0xd9, 0x57, 0x8c, 0x9e, 0x3f, 0x3b, 0xdf, 0x39, 0x33, 0xe7, 0xaf, 0x68, 0x74, 0x4b, 0x53, 0xb7, - 0x0f, 0xe7, 0xc6, 0x74, 0x08, 0x36, 0xf8, 0x20, 0x0c, 0xa3, 0xad, 0xd0, 0x55, 0x6c, 0x4b, 0x8c, - 0xed, 0x5c, 0x1e, 0xdb, 0x7a, 0x4a, 0xb6, 0x34, 0x79, 0xfb, 0x70, 0x6e, 0x54, 0x03, 0x60, 0x9d, - 0x09, 0xda, 0x84, 0x49, 0xfa, 0x37, 0x48, 0x3c, 0xc5, 0xb7, 0xcc, 0xf8, 0x3e, 0x5a, 0xc4, 0x57, - 0x23, 0x5d, 0x3a, 0x75, 0xfb, 0x70, 0x6e, 0x32, 0x03, 0xc4, 0x59, 0x86, 0xf6, 0x7b, 0x30, 0xb1, - 0x98, 0x24, 0x4e, 0x73, 0x87, 0xb8, 0x7c, 0x04, 0xd1, 0xf3, 0x30, 0x10, 0x38, 0x7b, 0x44, 0x8c, - 0xef, 0x59, 0xd1, 0xb1, 0x03, 0x57, 0x9c, 0x3d, 0x72, 0x74, 0x38, 0x37, 0x75, 0x2d, 0xf0, 0xde, - 0x6d, 0x8b, 0x59, 0x41, 0x61, 0x98, 0x51, 0xa3, 0xf3, 0x00, 0x2e, 0xd9, 0xf7, 0x9a, 0xa4, 0xee, - 0x24, 0x3b, 0x62, 0xbc, 0x91, 0x28, 0x0b, 0x35, 0x85, 0xc1, 0x1a, 0x95, 0x7d, 0x0b, 0x2a, 0x8b, - 0xfb, 0xa1, 0xe7, 0xd6, 0x43, 0x37, 0x46, 0xbb, 0x30, 0xd9, 0x8a, 0xc8, 0x16, 0x89, 0x14, 0xa8, - 0x6a, 0x9d, 0x2d, 0x9f, 0x1b, 0x3d, 0x7f, 0x2e, 0xf7, 0x63, 0x4d, 0xd2, 0x95, 0x20, 0x89, 0x0e, - 0x96, 0xee, 0x17, 0xf5, 0x4d, 0x66, 0xb0, 0x38, 0xcb, 0xd9, 0xfe, 0x37, 0x25, 0x38, 0xbd, 0xf8, - 0x5e, 0x3b, 0x22, 0x35, 0x2f, 0xde, 0xcd, 0xce, 0x70, 0xd7, 0x8b, 0x77, 0xaf, 0xa4, 0x3d, 0xa0, - 0xa6, 0x56, 0x4d, 0xc0, 0xb1, 0xa2, 0x40, 0xcf, 0xc0, 0x30, 0xfd, 0x7d, 0x0d, 0xaf, 0x89, 0x4f, - 0x3e, 0x25, 0x88, 0x47, 0x6b, 0x4e, 0xe2, 0xd4, 0x38, 0x0a, 0x4b, 0x1a, 0xb4, 0x0e, 0xa3, 0x4d, - 0xb6, 0x20, 0xb7, 0xd7, 0x43, 0x97, 0xb0, 0xc1, 0xac, 0x2c, 0x3d, 0x45, 0xc9, 0x97, 0x53, 0xf0, - 0xd1, 0xe1, 0x5c, 0x95, 0xb7, 0x4d, 0xb0, 0xd0, 0x70, 0x58, 0x2f, 0x8f, 0x6c, 0xb5, 0xbe, 0x06, - 0x18, 0x27, 0xc8, 0x59, 0x5b, 0xe7, 0xb4, 0xa5, 0x32, 0xc8, 0x96, 0xca, 0x58, 0xfe, 0x32, 0x41, - 0xcf, 0xc2, 0xc0, 0xae, 0x17, 0xb8, 0xd5, 0x21, 0xc6, 0xeb, 0x61, 0x3a, 0xe6, 0x97, 0xbc, 0xc0, - 0x3d, 0x3a, 0x9c, 0x9b, 0x36, 0x9a, 0x43, 0x81, 0x98, 0x91, 0xda, 0x7f, 0x62, 0xc1, 0x1c, 0xc3, - 0xad, 0x7a, 0x3e, 0xa9, 0x93, 0x28, 0xf6, 0xe2, 0x84, 0x04, 0x89, 0xd1, 0xa1, 0xe7, 0x01, 0x62, - 0xd2, 0x8c, 0x48, 0xa2, 0x75, 0xa9, 0x9a, 0x18, 0x0d, 0x85, 0xc1, 0x1a, 0x15, 0x15, 0x08, 0xf1, - 0x8e, 0x13, 0xb1, 0xf9, 0x25, 0x3a, 0x56, 0x09, 0x84, 0x86, 0x44, 0xe0, 0x94, 0xc6, 0x10, 0x08, - 0xe5, 0x5e, 0x02, 0x01, 0x7d, 0x0a, 0x26, 0xd3, 0xca, 0xe2, 0x96, 0xd3, 0x94, 0x1d, 0xc8, 0x96, - 0x4c, 0xc3, 0x44, 0xe1, 0x2c, 0xad, 0xfd, 0x0f, 0x2c, 0x31, 0x79, 0xe8, 0x57, 0x7f, 0xc8, 0xbf, - 0xd5, 0xfe, 0x2d, 0x0b, 0x86, 0x97, 0xbc, 0xc0, 0xf5, 0x82, 0x6d, 0xf4, 0x79, 0x18, 0xa1, 0x7b, - 0x93, 0xeb, 0x24, 0x8e, 0x90, 0x7b, 0x1f, 0xd7, 0xd6, 0x96, 0xda, 0x2a, 0xe6, 0x5b, 0xbb, 0xdb, - 0x14, 0x10, 0xcf, 0x53, 0x6a, 0xba, 0xda, 0xae, 0x6e, 0xbe, 0x43, 0x9a, 0xc9, 0x3a, 0x49, 0x9c, - 0xf4, 0x73, 0x52, 0x18, 0x56, 0x5c, 0xd1, 0x25, 0x18, 0x4a, 0x9c, 0x68, 0x9b, 0x24, 0x42, 0x00, - 0xe6, 0x0a, 0x2a, 0x5e, 0x12, 0xd3, 0x15, 0x49, 0x82, 0x26, 0x49, 0xb7, 0x85, 0x0d, 0x56, 0x14, - 0x0b, 0x16, 0x76, 0x13, 0xc6, 0x96, 0x9d, 0x96, 0xb3, 0xe9, 0xf9, 0x5e, 0xe2, 0x91, 0x18, 0x3d, - 0x0e, 0x65, 0xc7, 0x75, 0x99, 0x54, 0xa8, 0x2c, 0x9d, 0xbe, 0x7d, 0x38, 0x57, 0x5e, 0x74, 0xe9, - 0xf4, 0x04, 0x45, 0x75, 0x80, 0x29, 0x05, 0x7a, 0x12, 0x06, 0xdc, 0x28, 0x6c, 0x55, 0x4b, 0x8c, - 0xf2, 0x3e, 0x3a, 0x93, 0x6b, 0x51, 0xd8, 0xca, 0x90, 0x32, 0x1a, 0xfb, 0x77, 0x4a, 0xf0, 0xd0, - 0x32, 0x69, 0xed, 0xac, 0x36, 0x0a, 0xe6, 0xef, 0x39, 0x18, 0xd9, 0x0b, 0x03, 0x2f, 0x09, 0xa3, - 0x58, 0x54, 0xcd, 0x16, 0xd0, 0xba, 0x80, 0x61, 0x85, 0x45, 0x67, 0x61, 0xa0, 0x95, 0x0a, 0xbf, - 0x31, 0x29, 0x38, 0x99, 0xd8, 0x63, 0x18, 0x4a, 0xd1, 0x8e, 0x49, 0x24, 0x16, 0xbe, 0xa2, 0xb8, - 0x16, 0x93, 0x08, 0x33, 0x4c, 0x3a, 0x83, 0xe8, 0xdc, 0x12, 0xb3, 0x32, 0x33, 0x83, 0x28, 0x06, - 0x6b, 0x54, 0xa8, 0x0e, 0x15, 0xfe, 0x0f, 0x93, 0x2d, 0xb6, 0xc6, 0x0b, 0xfa, 0xbd, 0x21, 0x89, - 0x44, 0xbf, 0x8f, 0xb3, 0x29, 0x26, 0x81, 0x38, 0x65, 0x62, 0x4c, 0xb1, 0xa1, 0x9e, 0x53, 0xec, - 0xdb, 0x25, 0x40, 0xbc, 0x0b, 0x7f, 0xcc, 0x3a, 0xee, 0x5a, 0x67, 0xc7, 0xe5, 0x6e, 0x36, 0x97, - 0xc3, 0xa6, 0xe3, 0x67, 0x67, 0xed, 0xdd, 0xea, 0xbd, 0x5f, 0xb0, 0x00, 0x2d, 0x7b, 0x81, 0x4b, - 0xa2, 0x13, 0xd0, 0xb4, 0x8e, 0x27, 0x3b, 0x2e, 0xc3, 0xc4, 0xb2, 0xef, 0x91, 0x20, 0x59, 0xab, - 0x2f, 0x87, 0xc1, 0x96, 0xb7, 0x8d, 0x3e, 0x09, 0x13, 0x54, 0xf1, 0x0c, 0xdb, 0x49, 0x83, 0x34, - 0xc3, 0x80, 0xed, 0xd1, 0x54, 0x5d, 0x43, 0xb7, 0x0f, 0xe7, 0x26, 0x36, 0x0c, 0x0c, 0xce, 0x50, - 0xda, 0x7f, 0x48, 0x3f, 0x34, 0xdc, 0x6b, 0x85, 0x01, 0x09, 0x92, 0xe5, 0x30, 0x70, 0xb9, 0x2e, - 0xf7, 0x49, 0x18, 0x48, 0x68, 0xc3, 0xf9, 0x47, 0x3e, 0x26, 0x87, 0x96, 0x36, 0xf7, 0xe8, 0x70, - 0xee, 0xbe, 0xce, 0x12, 0xec, 0x83, 0x58, 0x19, 0xf4, 0x53, 0x30, 0x14, 0x27, 0x4e, 0xd2, 0x8e, - 0xc5, 0x67, 0x3f, 0x22, 0x3f, 0xbb, 0xc1, 0xa0, 0x47, 0x87, 0x73, 0x93, 0xaa, 0x18, 0x07, 0x61, - 0x51, 0x00, 0x3d, 0x01, 0xc3, 0x7b, 0x24, 0x8e, 0x9d, 0x6d, 0xb9, 0x0d, 0x4f, 0x8a, 0xb2, 0xc3, - 0xeb, 0x1c, 0x8c, 0x25, 0x1e, 0x3d, 0x0a, 0x83, 0x24, 0x8a, 0xc2, 0x48, 0xcc, 0xaa, 0x71, 0x41, - 0x38, 0xb8, 0x42, 0x81, 0x98, 0xe3, 0xec, 0x7f, 0x6f, 0xc1, 0xa4, 0x6a, 0x2b, 0xaf, 0xeb, 0x04, - 0xe4, 0xed, 0x9b, 0x00, 0x4d, 0xf9, 0x81, 0x31, 0x93, 0x77, 0xa3, 0xe7, 0x1f, 0xcb, 0x9b, 0xc2, - 0x9d, 0xdd, 0x98, 0x72, 0x56, 0xa0, 0x18, 0x6b, 0xdc, 0xec, 0x7f, 0x61, 0xc1, 0xa9, 0xcc, 0x17, - 0x5d, 0xf6, 0xe2, 0x04, 0xbd, 0xd5, 0xf1, 0x55, 0xf3, 0xfd, 0x7d, 0x15, 0x2d, 0xcd, 0xbe, 0x49, - 0xcd, 0x39, 0x09, 0xd1, 0xbe, 0xe8, 0x22, 0x0c, 0x7a, 0x09, 0xd9, 0x93, 0x1f, 0xf3, 0x68, 0xd7, - 0x8f, 0xe1, 0xad, 0x4a, 0x47, 0x64, 0x8d, 0x96, 0xc4, 0x9c, 0x81, 0xfd, 0x3f, 0x2d, 0xa8, 0xf0, - 0x69, 0xbb, 0xee, 0xb4, 0x4e, 0x60, 0x2c, 0xd6, 0x60, 0x80, 0x71, 0xe7, 0x0d, 0x7f, 0x3c, 0xbf, - 0xe1, 0xa2, 0x39, 0xf3, 0x54, 0x99, 0xe2, 0x4a, 0xab, 0x12, 0x66, 0x14, 0x84, 0x19, 0x8b, 0xd9, - 0x17, 0xa1, 0xa2, 0x08, 0xd0, 0x14, 0x94, 0x77, 0x09, 0x3f, 0xa8, 0x54, 0x30, 0xfd, 0x89, 0x66, - 0x60, 0x70, 0xdf, 0xf1, 0xdb, 0x62, 0xb1, 0x63, 0xfe, 0xe7, 0x93, 0xa5, 0x97, 0x2c, 0xfb, 0x5b, - 0x6c, 0x8d, 0x89, 0x4a, 0x56, 0x82, 0x7d, 0x21, 0x4c, 0xde, 0x83, 0x19, 0x3f, 0x47, 0x86, 0x89, - 0x8e, 0xe8, 0x5f, 0xe6, 0x3d, 0x24, 0xda, 0x3a, 0x93, 0x87, 0xc5, 0xb9, 0x75, 0xd0, 0x6d, 0x20, - 0x6c, 0xd1, 0x19, 0xe5, 0xf8, 0xac, 0xbd, 0x42, 0x01, 0xbd, 0x2a, 0x60, 0x58, 0x61, 0xa9, 0x80, - 0x98, 0x51, 0x8d, 0xbf, 0x44, 0x0e, 0x1a, 0xc4, 0x27, 0xcd, 0x24, 0x8c, 0x3e, 0xd0, 0xe6, 0x3f, - 0xcc, 0x7b, 0x9f, 0xcb, 0x97, 0x51, 0xc1, 0xa0, 0x7c, 0x89, 0x1c, 0xf0, 0xa1, 0xd0, 0xbf, 0xae, - 0xdc, 0xf5, 0xeb, 0x7e, 0xcd, 0x82, 0x71, 0xf5, 0x75, 0x27, 0xb0, 0x90, 0x96, 0xcc, 0x85, 0xf4, - 0x70, 0xd7, 0xf9, 0x58, 0xb0, 0x84, 0x7e, 0xc4, 0x44, 0x80, 0xa0, 0xa9, 0x47, 0x21, 0xed, 0x1a, - 0x2a, 0xb3, 0x3f, 0xc8, 0x01, 0xe9, 0xe7, 0xbb, 0x2e, 0x91, 0x83, 0x8d, 0x90, 0xaa, 0x0f, 0xf9, - 0xdf, 0x65, 0x8c, 0xda, 0x40, 0xd7, 0x51, 0xfb, 0xf5, 0x12, 0x9c, 0x56, 0x3d, 0x60, 0x6c, 0xd0, - 0x3f, 0xee, 0x7d, 0xf0, 0x2c, 0x8c, 0xba, 0x64, 0xcb, 0x69, 0xfb, 0x89, 0x3a, 0x8b, 0x0e, 0x72, - 0x7b, 0x44, 0x2d, 0x05, 0x63, 0x9d, 0xe6, 0x18, 0xdd, 0xf6, 0x6f, 0x81, 0xc9, 0xde, 0xc4, 0xa1, - 0x33, 0x98, 0x6a, 0x6f, 0x9a, 0x45, 0x61, 0x4c, 0xb7, 0x28, 0x08, 0xeb, 0xc1, 0xa3, 0x30, 0xe8, - 0xed, 0xd1, 0xbd, 0xb8, 0x64, 0x6e, 0xb1, 0x6b, 0x14, 0x88, 0x39, 0x0e, 0x7d, 0x0c, 0x86, 0x9b, - 0xe1, 0xde, 0x9e, 0x13, 0xb8, 0xd5, 0x32, 0xd3, 0x27, 0x47, 0xe9, 0x76, 0xbd, 0xcc, 0x41, 0x58, - 0xe2, 0xd0, 0x43, 0x30, 0xe0, 0x44, 0xdb, 0x71, 0x75, 0x80, 0xd1, 0x8c, 0xd0, 0x9a, 0x16, 0xa3, - 0xed, 0x18, 0x33, 0x28, 0xd5, 0x13, 0x6f, 0x86, 0xd1, 0xae, 0x17, 0x6c, 0xd7, 0xbc, 0x88, 0x29, - 0x7d, 0x9a, 0x9e, 0x78, 0x43, 0x61, 0xb0, 0x46, 0x85, 0x56, 0x61, 0xb0, 0x15, 0x46, 0x49, 0x5c, - 0x1d, 0x62, 0xdd, 0xfd, 0x48, 0xc1, 0x52, 0xe2, 0x5f, 0x5b, 0x0f, 0xa3, 0x24, 0xfd, 0x00, 0xfa, - 0x2f, 0xc6, 0xbc, 0x38, 0xfa, 0x29, 0x28, 0x93, 0x60, 0xbf, 0x3a, 0xcc, 0xb8, 0xcc, 0xe6, 0x71, - 0x59, 0x09, 0xf6, 0xaf, 0x3b, 0x51, 0x2a, 0x67, 0x56, 0x82, 0x7d, 0x4c, 0xcb, 0xa0, 0x37, 0xa0, - 0x22, 0xad, 0x91, 0x71, 0x75, 0xa4, 0x78, 0x8a, 0x61, 0x41, 0x84, 0xc9, 0xbb, 0x6d, 0x2f, 0x22, - 0x7b, 0x24, 0x48, 0xe2, 0xf4, 0x3c, 0x29, 0xb1, 0x31, 0x4e, 0xb9, 0xa1, 0x37, 0x60, 0x8c, 0xeb, - 0x91, 0xeb, 0x61, 0x3b, 0x48, 0xe2, 0x6a, 0x85, 0x35, 0x2f, 0xd7, 0x74, 0x75, 0x3d, 0xa5, 0x5b, - 0x9a, 0x11, 0x4c, 0xc7, 0x34, 0x60, 0x8c, 0x0d, 0x56, 0x08, 0xc3, 0xb8, 0xef, 0xed, 0x93, 0x80, - 0xc4, 0x71, 0x3d, 0x0a, 0x37, 0x49, 0x15, 0x58, 0xcb, 0x1f, 0xc8, 0xb7, 0xe8, 0x84, 0x9b, 0x64, - 0x69, 0xfa, 0xf6, 0xe1, 0xdc, 0xf8, 0x65, 0xbd, 0x0c, 0x36, 0x59, 0xa0, 0x6b, 0x30, 0x41, 0x15, - 0x54, 0x2f, 0x65, 0x3a, 0xda, 0x8b, 0x29, 0xd3, 0x4e, 0xb1, 0x51, 0x08, 0x67, 0x98, 0xa0, 0xd7, - 0xa0, 0xe2, 0x7b, 0x5b, 0xa4, 0x79, 0xd0, 0xf4, 0x49, 0x75, 0x8c, 0x71, 0xcc, 0x5d, 0x56, 0x97, - 0x25, 0x11, 0x3f, 0x00, 0xa8, 0xbf, 0x38, 0x2d, 0x8e, 0xae, 0xc3, 0x7d, 0x09, 0x89, 0xf6, 0xbc, - 0xc0, 0xa1, 0xcb, 0x41, 0xe8, 0x93, 0xcc, 0x2e, 0x36, 0xce, 0xe6, 0xdb, 0x19, 0xd1, 0x75, 0xf7, - 0x6d, 0xe4, 0x52, 0xe1, 0x82, 0xd2, 0xe8, 0x2a, 0x4c, 0xb2, 0x95, 0x50, 0x6f, 0xfb, 0x7e, 0x3d, - 0xf4, 0xbd, 0xe6, 0x41, 0x75, 0x82, 0x31, 0xfc, 0x98, 0x34, 0x7c, 0xad, 0x99, 0x68, 0x7a, 0xe2, - 0x4d, 0xff, 0xe1, 0x6c, 0x69, 0xb4, 0xc9, 0x0c, 0x21, 0xed, 0xc8, 0x4b, 0x0e, 0xe8, 0xfc, 0x25, - 0xb7, 0x92, 0xea, 0x64, 0xd7, 0xf3, 0xa3, 0x4e, 0xaa, 0xac, 0x25, 0x3a, 0x10, 0x67, 0x19, 0xd2, - 0xa5, 0x1d, 0x27, 0xae, 0x17, 0x54, 0xa7, 0x98, 0xc4, 0x50, 0x2b, 0xa3, 0x41, 0x81, 0x98, 0xe3, - 0x98, 0x11, 0x84, 0xfe, 0xb8, 0x4a, 0x25, 0xe8, 0x34, 0x23, 0x4c, 0x8d, 0x20, 0x12, 0x81, 0x53, - 0x1a, 0xba, 0x2d, 0x27, 0xc9, 0x41, 0x15, 0x31, 0x52, 0xb5, 0x5c, 0x36, 0x36, 0xde, 0xc0, 0x14, - 0x8e, 0x2e, 0xc3, 0x30, 0x09, 0xf6, 0x57, 0xa3, 0x70, 0xaf, 0x7a, 0xaa, 0x78, 0xcd, 0xae, 0x70, - 0x12, 0x2e, 0xd0, 0xd3, 0x03, 0x80, 0x00, 0x63, 0xc9, 0x02, 0xdd, 0x82, 0x6a, 0xce, 0x88, 0xf0, - 0x01, 0x98, 0x61, 0x03, 0xf0, 0x8a, 0x28, 0x5b, 0xdd, 0x28, 0xa0, 0x3b, 0xea, 0x82, 0xc3, 0x85, - 0xdc, 0xed, 0x4d, 0x98, 0x50, 0x82, 0x85, 0x8d, 0x2d, 0x9a, 0x83, 0x41, 0x2a, 0x31, 0xe5, 0x91, - 0xba, 0x42, 0xbb, 0x92, 0x99, 0xa6, 0x30, 0x87, 0xb3, 0xae, 0xf4, 0xde, 0x23, 0x4b, 0x07, 0x09, - 0xe1, 0xc7, 0xa2, 0xb2, 0xd6, 0x95, 0x12, 0x81, 0x53, 0x1a, 0xfb, 0xff, 0x72, 0xc5, 0x24, 0x95, - 0x5e, 0x7d, 0xc8, 0xeb, 0xa7, 0x61, 0x64, 0x27, 0x8c, 0x13, 0x4a, 0xcd, 0xea, 0x18, 0x4c, 0x55, - 0x91, 0x8b, 0x02, 0x8e, 0x15, 0x05, 0x7a, 0x19, 0xc6, 0x9b, 0x7a, 0x05, 0x62, 0xb3, 0x39, 0x2d, - 0x8a, 0x98, 0xb5, 0x63, 0x93, 0x16, 0xbd, 0x04, 0x23, 0xec, 0x82, 0xa2, 0x19, 0xfa, 0xe2, 0x00, - 0x26, 0x77, 0xcc, 0x91, 0xba, 0x80, 0x1f, 0x69, 0xbf, 0xb1, 0xa2, 0xa6, 0x87, 0x62, 0xda, 0x84, - 0xb5, 0xba, 0x10, 0xf3, 0xea, 0x50, 0x7c, 0x91, 0x41, 0xb1, 0xc0, 0xda, 0x7f, 0xad, 0xa4, 0xf5, - 0x32, 0x3d, 0x52, 0x10, 0x54, 0x87, 0xe1, 0x9b, 0x8e, 0x97, 0x78, 0xc1, 0xb6, 0xd8, 0xcf, 0x9f, - 0xe8, 0x2a, 0xf3, 0x59, 0xa1, 0x1b, 0xbc, 0x00, 0xdf, 0x95, 0xc4, 0x1f, 0x2c, 0xd9, 0x50, 0x8e, - 0x51, 0x3b, 0x08, 0x28, 0xc7, 0x52, 0xbf, 0x1c, 0x31, 0x2f, 0xc0, 0x39, 0x8a, 0x3f, 0x58, 0xb2, - 0x41, 0x6f, 0x01, 0xc8, 0x79, 0x43, 0x5c, 0x71, 0x31, 0xf0, 0x74, 0x6f, 0xa6, 0x1b, 0xaa, 0xcc, - 0xd2, 0x04, 0xdd, 0xf3, 0xd2, 0xff, 0x58, 0xe3, 0x67, 0x27, 0x4c, 0xef, 0xe9, 0x6c, 0x0c, 0xfa, - 0x1c, 0x5d, 0xaa, 0x4e, 0x94, 0x10, 0x77, 0x31, 0x11, 0x9d, 0xf3, 0x64, 0x7f, 0x6a, 0xeb, 0x86, - 0xb7, 0x47, 0xf4, 0x65, 0x2d, 0x98, 0xe0, 0x94, 0x9f, 0xfd, 0x9b, 0x65, 0xa8, 0x16, 0x35, 0x97, - 0x4e, 0x3a, 0x72, 0xcb, 0x4b, 0x96, 0xa9, 0xba, 0x62, 0x99, 0x93, 0x6e, 0x45, 0xc0, 0xb1, 0xa2, - 0xa0, 0xa3, 0x1f, 0x7b, 0xdb, 0xf2, 0xd4, 0x31, 0x98, 0x8e, 0x7e, 0x83, 0x41, 0xb1, 0xc0, 0x52, - 0xba, 0x88, 0x38, 0xb1, 0xb8, 0x79, 0xd2, 0x66, 0x09, 0x66, 0x50, 0x2c, 0xb0, 0xba, 0xc1, 0x60, - 0xa0, 0x87, 0xc1, 0xc0, 0xe8, 0xa2, 0xc1, 0xbb, 0xdb, 0x45, 0xe8, 0x6d, 0x80, 0x2d, 0x2f, 0xf0, - 0xe2, 0x1d, 0xc6, 0x7d, 0xe8, 0xd8, 0xdc, 0x95, 0xb2, 0xb3, 0xaa, 0xb8, 0x60, 0x8d, 0x23, 0x7a, - 0x01, 0x46, 0xd5, 0x02, 0x5c, 0xab, 0x55, 0x87, 0xcd, 0x6b, 0x8d, 0x54, 0x1a, 0xd5, 0xb0, 0x4e, - 0x67, 0xbf, 0x93, 0x9d, 0x2f, 0x62, 0x05, 0x68, 0xfd, 0x6b, 0xf5, 0xdb, 0xbf, 0xa5, 0xee, 0xfd, - 0x6b, 0xff, 0x6e, 0x19, 0x26, 0x8d, 0xca, 0xda, 0x71, 0x1f, 0x32, 0xeb, 0x02, 0xdd, 0x88, 0x9c, - 0x84, 0x88, 0xf5, 0x67, 0xf7, 0x5e, 0x2a, 0xfa, 0x66, 0x45, 0x57, 0x00, 0x2f, 0x8f, 0xde, 0x86, - 0x8a, 0xef, 0xc4, 0xcc, 0xf8, 0x40, 0xc4, 0xba, 0xeb, 0x87, 0x59, 0xaa, 0xe8, 0x3b, 0x71, 0xa2, - 0xed, 0x05, 0x9c, 0x77, 0xca, 0x92, 0xee, 0x98, 0x54, 0x39, 0x91, 0x57, 0x9b, 0xaa, 0x11, 0x54, - 0x83, 0x39, 0xc0, 0x1c, 0x87, 0x5e, 0x82, 0xb1, 0x88, 0xb0, 0x59, 0xb1, 0x4c, 0x75, 0x2d, 0x36, - 0xcd, 0x06, 0x53, 0xa5, 0x0c, 0x6b, 0x38, 0x6c, 0x50, 0xa6, 0xba, 0xf6, 0x50, 0x17, 0x5d, 0xfb, - 0x09, 0x18, 0x66, 0x3f, 0xd4, 0x0c, 0x50, 0xa3, 0xb1, 0xc6, 0xc1, 0x58, 0xe2, 0xb3, 0x13, 0x66, - 0xa4, 0xcf, 0x09, 0xf3, 0x24, 0x4c, 0xd4, 0x1c, 0xb2, 0x17, 0x06, 0x2b, 0x81, 0xdb, 0x0a, 0xbd, - 0x20, 0x41, 0x55, 0x18, 0x60, 0xbb, 0x03, 0x5f, 0xdb, 0x03, 0x94, 0x03, 0x1e, 0xa0, 0x9a, 0xb3, - 0xfd, 0x07, 0x25, 0x18, 0xaf, 0x11, 0x9f, 0x24, 0x84, 0x9f, 0x35, 0x62, 0xb4, 0x0a, 0x68, 0x3b, - 0x72, 0x9a, 0xa4, 0x4e, 0x22, 0x2f, 0x74, 0x75, 0x63, 0x64, 0x99, 0x19, 0xfc, 0xd1, 0x85, 0x0e, - 0x2c, 0xce, 0x29, 0x81, 0xde, 0x84, 0xf1, 0x56, 0x44, 0x0c, 0x1b, 0x9a, 0x55, 0xa4, 0x2e, 0xd4, - 0x75, 0x42, 0xae, 0xa9, 0x1a, 0x20, 0x6c, 0xb2, 0x42, 0x9f, 0x81, 0xa9, 0x30, 0x6a, 0xed, 0x38, - 0x41, 0x8d, 0xb4, 0x48, 0xe0, 0x52, 0x55, 0x5c, 0xd8, 0x08, 0x66, 0x6e, 0x1f, 0xce, 0x4d, 0x5d, - 0xcd, 0xe0, 0x70, 0x07, 0x35, 0x7a, 0x13, 0xa6, 0x5b, 0x51, 0xd8, 0x72, 0xb6, 0xd9, 0x44, 0x11, - 0x1a, 0x07, 0x97, 0x3e, 0x4f, 0xdf, 0x3e, 0x9c, 0x9b, 0xae, 0x67, 0x91, 0x47, 0x87, 0x73, 0xa7, - 0x58, 0x47, 0x51, 0x48, 0x8a, 0xc4, 0x9d, 0x6c, 0xec, 0x6d, 0x38, 0x5d, 0x0b, 0x6f, 0x06, 0x37, - 0x9d, 0xc8, 0x5d, 0xac, 0xaf, 0x69, 0x87, 0xfb, 0x2b, 0xf2, 0x70, 0xc9, 0xaf, 0x5f, 0x73, 0xf7, - 0x29, 0xad, 0x24, 0x57, 0xff, 0x57, 0x3d, 0x9f, 0x14, 0x18, 0x11, 0xfe, 0x66, 0xc9, 0xa8, 0x29, - 0xa5, 0x57, 0x76, 0x7f, 0xab, 0xd0, 0xee, 0xff, 0x3a, 0x8c, 0x6c, 0x79, 0xc4, 0x77, 0x31, 0xd9, - 0x12, 0x23, 0xf3, 0x78, 0xf1, 0x8d, 0xd2, 0x2a, 0xa5, 0x94, 0x46, 0x23, 0x7e, 0x34, 0x5d, 0x15, - 0x85, 0xb1, 0x62, 0x83, 0x76, 0x61, 0x4a, 0x9e, 0x7d, 0x24, 0x56, 0x2c, 0xe2, 0x27, 0xba, 0x1d, - 0xa8, 0x4c, 0xe6, 0x6c, 0x00, 0x71, 0x86, 0x0d, 0xee, 0x60, 0x4c, 0xcf, 0xa2, 0x7b, 0x74, 0xbb, - 0x1a, 0x60, 0x53, 0x9a, 0x9d, 0x45, 0xd9, 0xb1, 0x9a, 0x41, 0xed, 0xaf, 0x5b, 0x70, 0x7f, 0x47, - 0xcf, 0x08, 0xf3, 0xc2, 0x5d, 0x1e, 0x85, 0xec, 0x71, 0xbf, 0xd4, 0xfb, 0xb8, 0x6f, 0xff, 0x43, - 0x0b, 0x66, 0x56, 0xf6, 0x5a, 0xc9, 0x41, 0xcd, 0x33, 0xef, 0x26, 0x5e, 0x84, 0xa1, 0x3d, 0xe2, - 0x7a, 0xed, 0x3d, 0x31, 0x72, 0x73, 0x52, 0xa4, 0xaf, 0x33, 0xe8, 0xd1, 0xe1, 0xdc, 0x78, 0x23, - 0x09, 0x23, 0x67, 0x9b, 0x70, 0x00, 0x16, 0xe4, 0x6c, 0x63, 0xf4, 0xde, 0x23, 0x97, 0xbd, 0x3d, - 0x4f, 0xde, 0x10, 0x76, 0x35, 0x79, 0xcd, 0xcb, 0x0e, 0x9d, 0x7f, 0xbd, 0xed, 0x04, 0x89, 0x97, - 0x1c, 0x88, 0x6b, 0x17, 0xc9, 0x04, 0xa7, 0xfc, 0xec, 0xef, 0x59, 0x30, 0x29, 0x65, 0xc9, 0xa2, - 0xeb, 0x46, 0x24, 0x8e, 0xd1, 0x2c, 0x94, 0xbc, 0x96, 0x68, 0x25, 0x88, 0x56, 0x96, 0xd6, 0xea, - 0xb8, 0xe4, 0xb5, 0x50, 0x1d, 0x2a, 0xfc, 0xa2, 0x31, 0x9d, 0x5c, 0x7d, 0x5d, 0x57, 0xb2, 0x16, - 0x6c, 0xc8, 0x92, 0x38, 0x65, 0x22, 0xb5, 0x62, 0xb6, 0x0f, 0x95, 0xcd, 0x3b, 0x9b, 0x8b, 0x02, - 0x8e, 0x15, 0x05, 0x3a, 0x07, 0x23, 0x41, 0xe8, 0xf2, 0x7b, 0x5f, 0xbe, 0xa6, 0xd9, 0x94, 0xbd, - 0x22, 0x60, 0x58, 0x61, 0xed, 0x9f, 0xb3, 0x60, 0x4c, 0x7e, 0x59, 0x9f, 0x0a, 0x3a, 0x5d, 0x5a, - 0xa9, 0x72, 0x9e, 0x2e, 0x2d, 0xaa, 0x60, 0x33, 0x8c, 0xa1, 0x57, 0x97, 0x8f, 0xa3, 0x57, 0xdb, - 0x5f, 0x2b, 0xc1, 0x84, 0x6c, 0x4e, 0xa3, 0xbd, 0x19, 0x93, 0x04, 0x6d, 0x40, 0xc5, 0xe1, 0x5d, - 0x4e, 0xe4, 0x8c, 0x7d, 0x34, 0xff, 0xc4, 0x65, 0x8c, 0x4f, 0xaa, 0xea, 0x2c, 0xca, 0xd2, 0x38, - 0x65, 0x84, 0x7c, 0x98, 0x0e, 0xc2, 0x84, 0x6d, 0x7b, 0x0a, 0xdf, 0xed, 0x5e, 0x20, 0xcb, 0xfd, - 0x01, 0xc1, 0x7d, 0xfa, 0x4a, 0x96, 0x0b, 0xee, 0x64, 0x8c, 0x56, 0xa4, 0x95, 0xa7, 0xcc, 0x6a, - 0x38, 0xdb, 0xad, 0x86, 0x62, 0x23, 0x8f, 0xfd, 0xdb, 0x16, 0x54, 0x24, 0xd9, 0x49, 0x5c, 0x01, - 0xad, 0xc3, 0x70, 0xcc, 0x06, 0x41, 0x76, 0x8d, 0xdd, 0xad, 0xe1, 0x7c, 0xbc, 0xd2, 0xdd, 0x9c, - 0xff, 0x8f, 0xb1, 0xe4, 0xc1, 0xcc, 0xd4, 0xaa, 0xf9, 0x1f, 0x12, 0x33, 0xb5, 0x6a, 0x4f, 0xc1, - 0x0e, 0xf3, 0x5f, 0x59, 0x9b, 0xb5, 0xb3, 0x3c, 0x55, 0x3a, 0x5b, 0x11, 0xd9, 0xf2, 0x6e, 0x65, - 0x95, 0xce, 0x3a, 0x83, 0x62, 0x81, 0x45, 0x6f, 0xc1, 0x58, 0x53, 0x5a, 0x77, 0x53, 0x31, 0xf0, - 0x58, 0x57, 0x5b, 0xb9, 0xba, 0x56, 0xe1, 0x3e, 0x61, 0xcb, 0x5a, 0x79, 0x6c, 0x70, 0x33, 0x2f, - 0xe6, 0xcb, 0xbd, 0x2e, 0xe6, 0x53, 0xbe, 0x85, 0x57, 0xcb, 0xf6, 0x2f, 0x59, 0x30, 0xc4, 0x6d, - 0x84, 0xfd, 0x19, 0x55, 0xb5, 0x6b, 0xa2, 0xb4, 0xef, 0xae, 0x53, 0xa0, 0xb8, 0x35, 0x42, 0xeb, - 0x50, 0x61, 0x3f, 0x98, 0xad, 0xa4, 0x5c, 0xec, 0x0c, 0xc7, 0x6b, 0xd5, 0x1b, 0x78, 0x5d, 0x16, - 0xc3, 0x29, 0x07, 0xfb, 0xab, 0x65, 0x2a, 0xaa, 0x52, 0x52, 0x63, 0x07, 0xb7, 0xee, 0xdd, 0x0e, - 0x5e, 0xba, 0x57, 0x3b, 0xf8, 0x36, 0x4c, 0x36, 0xb5, 0x3b, 0xa9, 0x74, 0x24, 0xcf, 0x75, 0x9d, - 0x24, 0xda, 0xf5, 0x15, 0xb7, 0x93, 0x2d, 0x9b, 0x4c, 0x70, 0x96, 0x2b, 0xfa, 0x1c, 0x8c, 0xf1, - 0x71, 0x16, 0xb5, 0x0c, 0xb0, 0x5a, 0x3e, 0x56, 0x3c, 0x5f, 0xf4, 0x2a, 0xd8, 0x4c, 0x6c, 0x68, - 0xc5, 0xb1, 0xc1, 0xcc, 0xfe, 0xf2, 0x20, 0x0c, 0xae, 0xec, 0x93, 0x20, 0x39, 0x01, 0x81, 0xd4, - 0x84, 0x09, 0x2f, 0xd8, 0x0f, 0xfd, 0x7d, 0xe2, 0x72, 0xfc, 0x71, 0x36, 0xd7, 0xfb, 0x04, 0xeb, - 0x89, 0x35, 0x83, 0x05, 0xce, 0xb0, 0xbc, 0x17, 0xa7, 0xf6, 0x0b, 0x30, 0xc4, 0xc7, 0x5e, 0x1c, - 0xd9, 0x73, 0x2d, 0xe0, 0xac, 0x13, 0xc5, 0x2a, 0x48, 0x2d, 0x0a, 0xdc, 0xe4, 0x2e, 0x8a, 0xa3, - 0x77, 0x60, 0x62, 0xcb, 0x8b, 0xe2, 0x84, 0x1e, 0xb7, 0xe3, 0xc4, 0xd9, 0x6b, 0xdd, 0xc1, 0x29, - 0x5d, 0xf5, 0xc3, 0xaa, 0xc1, 0x09, 0x67, 0x38, 0xa3, 0x6d, 0x18, 0xa7, 0x07, 0xc7, 0xb4, 0xaa, - 0xe1, 0x63, 0x57, 0xa5, 0xcc, 0x70, 0x97, 0x75, 0x46, 0xd8, 0xe4, 0x4b, 0x85, 0x49, 0x93, 0x1d, - 0x34, 0x47, 0x98, 0x46, 0xa1, 0x84, 0x09, 0x3f, 0x61, 0x72, 0x1c, 0x95, 0x49, 0xcc, 0x97, 0xa3, - 0x62, 0xca, 0xa4, 0xd4, 0x63, 0xc3, 0xfe, 0x06, 0xdd, 0x1d, 0x69, 0x1f, 0x9e, 0xc0, 0xd6, 0xf2, - 0xaa, 0xb9, 0xb5, 0x3c, 0x50, 0x38, 0x9e, 0x05, 0xdb, 0xca, 0xe7, 0x61, 0x54, 0x1b, 0x6e, 0xb4, - 0x00, 0x95, 0xa6, 0x74, 0x3c, 0x10, 0x52, 0x57, 0xa9, 0x2f, 0xca, 0x23, 0x01, 0xa7, 0x34, 0xb4, - 0x37, 0xa8, 0xb2, 0x97, 0x75, 0x6b, 0xa2, 0xaa, 0x20, 0x66, 0x18, 0xfb, 0x39, 0x80, 0x95, 0x5b, - 0xa4, 0xb9, 0xc8, 0x0f, 0x5e, 0xda, 0xfd, 0x96, 0x55, 0x7c, 0xbf, 0x65, 0xff, 0x07, 0x0b, 0x26, - 0x56, 0x97, 0x0d, 0x85, 0x7c, 0x1e, 0x80, 0x6b, 0xa1, 0x37, 0x6e, 0x5c, 0x91, 0x96, 0x61, 0x6e, - 0xdc, 0x53, 0x50, 0xac, 0x51, 0xa0, 0x07, 0xa0, 0xec, 0xb7, 0x03, 0xa1, 0x1c, 0x0e, 0xdf, 0x3e, - 0x9c, 0x2b, 0x5f, 0x6e, 0x07, 0x98, 0xc2, 0x34, 0x4f, 0xa2, 0x72, 0xdf, 0x9e, 0x44, 0x3d, 0x5d, - 0xb0, 0xd1, 0x1c, 0x0c, 0xde, 0xbc, 0xe9, 0xb9, 0x71, 0x75, 0x30, 0xb5, 0x5a, 0xdf, 0xb8, 0xb1, - 0x56, 0x8b, 0x31, 0x87, 0xdb, 0x7f, 0xa1, 0x0c, 0x53, 0xab, 0x3e, 0xb9, 0x65, 0x7c, 0xd6, 0x63, - 0x30, 0xe4, 0x46, 0xde, 0x3e, 0x89, 0xb2, 0xbb, 0x78, 0x8d, 0x41, 0xb1, 0xc0, 0xf6, 0xed, 0xfd, - 0x74, 0xad, 0x73, 0x3f, 0xbe, 0xdb, 0xfe, 0x5e, 0xbd, 0xbb, 0xe2, 0x2d, 0x18, 0xe6, 0xd7, 0xa4, - 0xbc, 0x33, 0x46, 0xcf, 0x3f, 0x9b, 0xd7, 0x84, 0x6c, 0x5f, 0xcc, 0x0b, 0xc3, 0x07, 0xf7, 0x19, - 0x51, 0x42, 0x4c, 0x40, 0xb1, 0x64, 0x39, 0xfb, 0x49, 0x18, 0xd3, 0x29, 0x8f, 0xe5, 0x3c, 0xf2, - 0x17, 0x2d, 0x38, 0xb5, 0xea, 0x87, 0xcd, 0xdd, 0x8c, 0x2b, 0xda, 0x0b, 0x30, 0x4a, 0xd7, 0x53, - 0x6c, 0xb8, 0xb5, 0x1a, 0x8e, 0xce, 0x02, 0x85, 0x75, 0x3a, 0xad, 0xd8, 0xb5, 0x6b, 0x6b, 0xb5, - 0x3c, 0xff, 0x68, 0x81, 0xc2, 0x3a, 0x9d, 0xfd, 0x5d, 0x0b, 0x1e, 0xbe, 0xb0, 0xbc, 0x92, 0x7a, - 0x63, 0x76, 0xb8, 0x68, 0x53, 0xe5, 0xce, 0xd5, 0x9a, 0x92, 0x2a, 0x77, 0x35, 0xd6, 0x0a, 0x81, - 0xfd, 0xb0, 0x84, 0x1f, 0xfc, 0x8a, 0x05, 0xa7, 0x2e, 0x78, 0x09, 0x26, 0xad, 0x30, 0xeb, 0x2c, - 0x1c, 0x91, 0x56, 0x18, 0x7b, 0x49, 0x18, 0x1d, 0x64, 0x9d, 0x85, 0xb1, 0xc2, 0x60, 0x8d, 0x8a, - 0xd7, 0xbc, 0xef, 0xc5, 0xb4, 0xa5, 0x25, 0xf3, 0x84, 0x89, 0x05, 0x1c, 0x2b, 0x0a, 0xfa, 0x61, - 0xae, 0x17, 0x31, 0x0d, 0xe1, 0x40, 0x2c, 0x67, 0xf5, 0x61, 0x35, 0x89, 0xc0, 0x29, 0x8d, 0xfd, - 0x75, 0x0b, 0x4e, 0x5f, 0xf0, 0xdb, 0x71, 0x42, 0xa2, 0xad, 0xd8, 0x68, 0xec, 0x73, 0x50, 0x21, - 0x52, 0x0b, 0x17, 0x6d, 0x55, 0xfb, 0x86, 0x52, 0xcf, 0xb9, 0xa7, 0xb2, 0xa2, 0xeb, 0xc3, 0xaf, - 0xf3, 0x78, 0xfe, 0x88, 0xdf, 0x2c, 0xc1, 0xf8, 0xc5, 0x8d, 0x8d, 0xfa, 0x05, 0x92, 0x08, 0x91, - 0xd9, 0xdb, 0x82, 0x84, 0xb5, 0x83, 0x70, 0x37, 0x5d, 0xa7, 0x9d, 0x78, 0xfe, 0x3c, 0x0f, 0x8d, - 0x99, 0x5f, 0x0b, 0x92, 0xab, 0x51, 0x23, 0x89, 0xbc, 0x60, 0x3b, 0xf7, 0xe8, 0x2c, 0x05, 0x7b, - 0xb9, 0x48, 0xb0, 0xa3, 0xe7, 0x60, 0x88, 0xc5, 0xe6, 0x48, 0xad, 0xe3, 0x41, 0xa5, 0x2a, 0x30, - 0xe8, 0xd1, 0xe1, 0x5c, 0xe5, 0x1a, 0x5e, 0xe3, 0x7f, 0xb0, 0x20, 0x45, 0xd7, 0x60, 0x74, 0x27, - 0x49, 0x5a, 0x17, 0x89, 0xe3, 0x92, 0x48, 0x4a, 0x87, 0x33, 0x79, 0xd2, 0x81, 0x76, 0x02, 0x27, - 0x4b, 0x17, 0x54, 0x0a, 0x8b, 0xb1, 0xce, 0xc7, 0x6e, 0x00, 0xa4, 0xb8, 0xbb, 0x74, 0x6c, 0xb0, - 0x7f, 0x68, 0xc1, 0xf0, 0x45, 0x27, 0x70, 0x7d, 0x12, 0xa1, 0x57, 0x60, 0x80, 0xdc, 0x22, 0x4d, - 0xb1, 0x83, 0xe7, 0x36, 0x38, 0xdd, 0xe5, 0xb8, 0x11, 0x8c, 0xfe, 0xc7, 0xac, 0x14, 0xba, 0x08, - 0xc3, 0xb4, 0xb5, 0x17, 0x94, 0xcf, 0xf8, 0x23, 0x45, 0x5f, 0xac, 0x86, 0x9d, 0x6f, 0x8c, 0x02, - 0x84, 0x65, 0x71, 0x66, 0xd0, 0x69, 0xb6, 0x1a, 0x54, 0x80, 0x25, 0xdd, 0x8e, 0x5b, 0x1b, 0xcb, - 0x75, 0x4e, 0x24, 0xb8, 0x71, 0x83, 0x8e, 0x04, 0xe2, 0x94, 0x89, 0xbd, 0x01, 0x15, 0x3a, 0xa8, - 0x8b, 0xbe, 0xe7, 0x74, 0xb7, 0x25, 0x3d, 0x05, 0x15, 0x69, 0xd7, 0x89, 0x85, 0xdb, 0x39, 0xe3, - 0x2a, 0xcd, 0x3e, 0x31, 0x4e, 0xf1, 0xf6, 0x16, 0xcc, 0xb0, 0x4b, 0x52, 0x27, 0xd9, 0x31, 0xd6, - 0x58, 0xef, 0xc9, 0xfc, 0xb4, 0xd0, 0xaf, 0xf8, 0xc8, 0x54, 0x35, 0x3f, 0xd9, 0x31, 0xc9, 0x51, - 0xd3, 0xb5, 0xfe, 0xf3, 0x00, 0x4c, 0xaf, 0x35, 0x96, 0x1b, 0xa6, 0x61, 0xf1, 0x25, 0x18, 0xe3, - 0x9a, 0x00, 0x9d, 0xd0, 0x8e, 0x2f, 0x6a, 0x53, 0x17, 0x07, 0x1b, 0x1a, 0x0e, 0x1b, 0x94, 0xe8, - 0x61, 0x28, 0x7b, 0xef, 0x06, 0x59, 0x57, 0xb8, 0xb5, 0xd7, 0xaf, 0x60, 0x0a, 0xa7, 0x68, 0xaa, - 0x54, 0x70, 0x01, 0xaa, 0xd0, 0x4a, 0xb1, 0x78, 0x15, 0x26, 0xbc, 0xb8, 0x19, 0x7b, 0x6b, 0x01, - 0x95, 0x2e, 0x69, 0xcc, 0x45, 0xaa, 0xf1, 0xd3, 0xa6, 0x2a, 0x2c, 0xce, 0x50, 0x6b, 0xd2, 0x7c, - 0xb0, 0x6f, 0xc5, 0xa4, 0xa7, 0xf7, 0x35, 0xd5, 0xb9, 0x5a, 0xec, 0xeb, 0x62, 0xe6, 0x96, 0x23, - 0x74, 0x2e, 0xfe, 0xc1, 0x31, 0x96, 0x38, 0x74, 0x01, 0xa6, 0x9b, 0x3b, 0x4e, 0x6b, 0xb1, 0x9d, - 0xec, 0xd4, 0xbc, 0xb8, 0x19, 0xee, 0x93, 0xe8, 0x80, 0x69, 0xc2, 0x23, 0xa9, 0x91, 0x49, 0x21, - 0x96, 0x2f, 0x2e, 0xd6, 0x29, 0x25, 0xee, 0x2c, 0x63, 0xaa, 0x20, 0x70, 0xd7, 0x54, 0x90, 0x45, - 0x98, 0x94, 0x75, 0x35, 0x48, 0xcc, 0xb6, 0x87, 0x51, 0xd6, 0x3a, 0x15, 0x12, 0x25, 0xc0, 0xaa, - 0x6d, 0x59, 0x7a, 0xf4, 0x22, 0x8c, 0x7b, 0x81, 0x97, 0x78, 0x4e, 0x12, 0x46, 0x6c, 0x73, 0x1d, - 0xe3, 0x1b, 0x06, 0x95, 0xf0, 0x6b, 0x3a, 0x02, 0x9b, 0x74, 0xf6, 0x3b, 0x50, 0x51, 0xbe, 0x66, - 0xd2, 0x5d, 0xd2, 0x2a, 0x70, 0x97, 0xec, 0xbd, 0x23, 0x48, 0x8b, 0x79, 0x39, 0xd7, 0x62, 0xfe, - 0xb7, 0x2c, 0x48, 0x5d, 0x6e, 0xd0, 0x45, 0xa8, 0xb4, 0x42, 0x76, 0x6b, 0x16, 0xc9, 0xab, 0xe8, - 0x07, 0x73, 0x85, 0x07, 0x17, 0x54, 0xbc, 0xff, 0xea, 0xb2, 0x04, 0x4e, 0x0b, 0xa3, 0x25, 0x18, - 0x6e, 0x45, 0xa4, 0x91, 0xb0, 0xa0, 0x91, 0x9e, 0x7c, 0xf8, 0x1c, 0xe1, 0xf4, 0x58, 0x16, 0xb4, - 0x7f, 0xdd, 0x02, 0xe0, 0x46, 0x69, 0x27, 0xd8, 0x26, 0x27, 0x70, 0xd0, 0xae, 0xc1, 0x40, 0xdc, - 0x22, 0xcd, 0x6e, 0xf7, 0x99, 0x69, 0x7b, 0x1a, 0x2d, 0xd2, 0x4c, 0x3b, 0x9c, 0xfe, 0xc3, 0xac, - 0xb4, 0xfd, 0xb3, 0x00, 0x13, 0x29, 0x19, 0x3d, 0x00, 0xa1, 0x67, 0x0c, 0x97, 0xfc, 0x07, 0x32, - 0x2e, 0xf9, 0x15, 0x46, 0xad, 0x79, 0xe1, 0xbf, 0x03, 0xe5, 0x3d, 0xe7, 0x96, 0x38, 0x65, 0x3d, - 0xd5, 0xbd, 0x19, 0x94, 0xff, 0xfc, 0xba, 0x73, 0x8b, 0xeb, 0xb1, 0x4f, 0xc9, 0x09, 0xb2, 0xee, - 0xdc, 0x3a, 0xe2, 0xb7, 0x96, 0x4c, 0x48, 0xd1, 0xc3, 0xdc, 0x17, 0xff, 0x53, 0xfa, 0x9f, 0x4d, - 0x3b, 0x5a, 0x09, 0xab, 0xcb, 0x0b, 0x84, 0x89, 0xb6, 0xaf, 0xba, 0xbc, 0x20, 0x5b, 0x97, 0x17, - 0xf4, 0x51, 0x97, 0x17, 0xa0, 0xf7, 0x60, 0x58, 0x5c, 0x87, 0x30, 0x5f, 0xc2, 0xd1, 0xf3, 0x0b, - 0x7d, 0xd4, 0x27, 0x6e, 0x53, 0x78, 0x9d, 0x0b, 0x52, 0x4f, 0x17, 0xd0, 0x9e, 0xf5, 0xca, 0x0a, - 0xd1, 0xdf, 0xb0, 0x60, 0x42, 0xfc, 0xc6, 0xe4, 0xdd, 0x36, 0x89, 0x13, 0xa1, 0x0f, 0x7c, 0xa2, - 0xff, 0x36, 0x88, 0x82, 0xbc, 0x29, 0x9f, 0x90, 0x62, 0xd6, 0x44, 0xf6, 0x6c, 0x51, 0xa6, 0x15, - 0xe8, 0x1f, 0x5b, 0x30, 0xb3, 0xe7, 0xdc, 0xe2, 0x35, 0x72, 0x18, 0x76, 0x12, 0x2f, 0x14, 0xbe, - 0x91, 0xaf, 0xf4, 0x37, 0xfc, 0x1d, 0xc5, 0x79, 0x23, 0xa5, 0x1b, 0xd5, 0x4c, 0x1e, 0x49, 0xcf, - 0xa6, 0xe6, 0xb6, 0x6b, 0x76, 0x0b, 0x46, 0xe4, 0x7c, 0xcb, 0x39, 0x0d, 0xd5, 0x74, 0x65, 0xe7, - 0xd8, 0xb7, 0x51, 0xda, 0xe9, 0x89, 0xd5, 0x23, 0xe6, 0xda, 0x3d, 0xad, 0xe7, 0x1d, 0x18, 0xd3, - 0xe7, 0xd8, 0x3d, 0xad, 0xeb, 0x5d, 0x38, 0x95, 0x33, 0x97, 0xee, 0x69, 0x95, 0x37, 0xe1, 0x81, - 0xc2, 0xf9, 0x71, 0x2f, 0x2b, 0xb6, 0xbf, 0x69, 0xe9, 0x72, 0xf0, 0x04, 0xcc, 0x53, 0xcb, 0xa6, - 0x79, 0xea, 0x4c, 0xf7, 0x95, 0x53, 0x60, 0xa3, 0x7a, 0x4b, 0x6f, 0x34, 0x95, 0xea, 0xe8, 0x35, - 0x18, 0xf2, 0x29, 0x44, 0xde, 0xc3, 0xd9, 0xbd, 0x57, 0x64, 0xaa, 0x4b, 0x31, 0x78, 0x8c, 0x05, - 0x07, 0xfb, 0xb7, 0x2c, 0x18, 0x38, 0x81, 0x9e, 0xc0, 0x66, 0x4f, 0x3c, 0x53, 0xc8, 0x5a, 0xe4, - 0x3d, 0x98, 0xc7, 0xce, 0xcd, 0x15, 0x99, 0xdb, 0xa1, 0xa0, 0x63, 0xfe, 0x4f, 0x09, 0x46, 0x69, - 0x55, 0xd2, 0x61, 0xe4, 0x65, 0x18, 0xf7, 0x9d, 0x4d, 0xe2, 0x4b, 0x93, 0x79, 0xf6, 0x10, 0x7b, - 0x59, 0x47, 0x62, 0x93, 0x96, 0x16, 0xde, 0xd2, 0x6f, 0x0f, 0x84, 0xfe, 0xa2, 0x0a, 0x1b, 0x57, - 0x0b, 0xd8, 0xa4, 0xa5, 0xe7, 0xa9, 0x9b, 0x4e, 0xd2, 0xdc, 0x11, 0x07, 0x5c, 0xd5, 0xdc, 0x1b, - 0x14, 0x88, 0x39, 0x8e, 0x2a, 0x70, 0x72, 0x76, 0x5e, 0x27, 0x11, 0x53, 0xe0, 0xb8, 0x7a, 0xac, - 0x14, 0x38, 0x6c, 0xa2, 0x71, 0x96, 0x3e, 0x27, 0x36, 0x6f, 0x90, 0xb9, 0xc3, 0xf4, 0x11, 0x9b, - 0x87, 0xea, 0x30, 0xe3, 0x05, 0x4d, 0xbf, 0xed, 0x92, 0x6b, 0x01, 0xd7, 0xee, 0x7c, 0xef, 0x3d, - 0xe2, 0x0a, 0x05, 0x5a, 0x79, 0x2e, 0xad, 0xe5, 0xd0, 0xe0, 0xdc, 0x92, 0xf6, 0xff, 0x07, 0xa7, - 0x2e, 0x87, 0x8e, 0xbb, 0xe4, 0xf8, 0x4e, 0xd0, 0x24, 0xd1, 0x5a, 0xb0, 0xdd, 0xf3, 0x42, 0x5e, - 0xbf, 0x3e, 0x2f, 0xf5, 0xba, 0x3e, 0xb7, 0x77, 0x00, 0xe9, 0x15, 0x08, 0x37, 0x30, 0x0c, 0xc3, - 0x1e, 0xaf, 0x4a, 0x4c, 0xff, 0xc7, 0xf3, 0xb5, 0xeb, 0x8e, 0x96, 0x69, 0x0e, 0x4e, 0x1c, 0x80, - 0x25, 0x23, 0xfb, 0x25, 0xc8, 0x8d, 0xcd, 0xe8, 0x7d, 0x94, 0xb6, 0x5f, 0x80, 0x69, 0x56, 0xf2, - 0x78, 0xc7, 0x3c, 0xfb, 0xaf, 0x58, 0x30, 0x79, 0x25, 0x13, 0x4d, 0xfb, 0x18, 0x0c, 0xf1, 0x0c, - 0x27, 0x59, 0xa3, 0x57, 0x83, 0x41, 0xb1, 0xc0, 0xde, 0x75, 0x9b, 0xcb, 0x8f, 0x2c, 0xa8, 0xa8, - 0xd0, 0xf7, 0x13, 0x50, 0x6a, 0x97, 0x0d, 0xa5, 0x36, 0xd7, 0x16, 0xa0, 0x9a, 0x53, 0xa4, 0xd3, - 0xa2, 0x4b, 0x2a, 0x2e, 0xb4, 0x8b, 0x19, 0x20, 0x65, 0xc3, 0xa3, 0x08, 0x27, 0xcc, 0xe0, 0x51, - 0x19, 0x29, 0xca, 0x6e, 0xc4, 0x15, 0xed, 0x87, 0xe4, 0x46, 0x5c, 0xb5, 0xa7, 0x40, 0xfa, 0xd5, - 0xb5, 0x26, 0xb3, 0x5d, 0xe1, 0xd3, 0xcc, 0x6b, 0x94, 0xad, 0x4d, 0x15, 0x8e, 0x3d, 0x27, 0xbc, - 0x40, 0x05, 0xf4, 0x88, 0x09, 0x32, 0xf1, 0x8f, 0xa7, 0x29, 0x48, 0x8b, 0xd8, 0x17, 0x61, 0x32, - 0xd3, 0x61, 0xe8, 0x05, 0x18, 0x6c, 0xed, 0x38, 0x31, 0xc9, 0x78, 0x01, 0x0d, 0xd6, 0x29, 0xf0, - 0xe8, 0x70, 0x6e, 0x42, 0x15, 0x60, 0x10, 0xcc, 0xa9, 0xed, 0xff, 0x61, 0xc1, 0xc0, 0x95, 0xd0, - 0x3d, 0x89, 0xc9, 0xf4, 0xaa, 0x31, 0x99, 0x1e, 0x2a, 0x4a, 0xf2, 0x52, 0x38, 0x8f, 0x56, 0x33, - 0xf3, 0xe8, 0x4c, 0x21, 0x87, 0xee, 0x53, 0x68, 0x0f, 0x46, 0x59, 0xea, 0x18, 0xe1, 0x95, 0xf4, - 0x9c, 0x71, 0xbe, 0x9a, 0xcb, 0x9c, 0xaf, 0x26, 0x35, 0x52, 0xed, 0x94, 0xf5, 0x04, 0x0c, 0x0b, - 0xcf, 0x98, 0xac, 0x7f, 0xac, 0xa0, 0xc5, 0x12, 0x6f, 0xff, 0x52, 0x19, 0x8c, 0x54, 0x35, 0xe8, - 0xb7, 0x2d, 0x98, 0x8f, 0x78, 0x44, 0x90, 0x5b, 0x6b, 0x47, 0x5e, 0xb0, 0xdd, 0x68, 0xee, 0x10, - 0xb7, 0xed, 0x7b, 0xc1, 0xf6, 0xda, 0x76, 0x10, 0x2a, 0xf0, 0xca, 0x2d, 0xd2, 0x6c, 0x33, 0x3b, - 0x78, 0x8f, 0xbc, 0x38, 0xea, 0xe6, 0xf9, 0xfc, 0xed, 0xc3, 0xb9, 0x79, 0x7c, 0x2c, 0xde, 0xf8, - 0x98, 0x6d, 0x41, 0xdf, 0xb5, 0x60, 0x81, 0x67, 0x70, 0xe9, 0xbf, 0xfd, 0x5d, 0x4e, 0xa3, 0x75, - 0xc9, 0x2a, 0x65, 0xb2, 0x41, 0xa2, 0xbd, 0xa5, 0x17, 0x45, 0x87, 0x2e, 0xd4, 0x8f, 0x57, 0x17, - 0x3e, 0x6e, 0xe3, 0xec, 0x7f, 0x55, 0x86, 0x71, 0xda, 0x8b, 0x69, 0x14, 0xfc, 0x0b, 0xc6, 0x94, - 0x78, 0x24, 0x33, 0x25, 0xa6, 0x0d, 0xe2, 0xbb, 0x13, 0x00, 0x1f, 0xc3, 0xb4, 0xef, 0xc4, 0xc9, - 0x45, 0xe2, 0x44, 0xc9, 0x26, 0x71, 0xd8, 0x55, 0xaf, 0x98, 0xe6, 0xc7, 0xb9, 0x3d, 0x56, 0xe6, - 0xaf, 0xcb, 0x59, 0x66, 0xb8, 0x93, 0x3f, 0xda, 0x07, 0xc4, 0xae, 0x95, 0x23, 0x27, 0x88, 0xf9, - 0xb7, 0x78, 0xc2, 0x46, 0x7e, 0xbc, 0x5a, 0x67, 0x45, 0xad, 0xe8, 0x72, 0x07, 0x37, 0x9c, 0x53, - 0x83, 0xe6, 0x2e, 0x30, 0xd8, 0xaf, 0xbb, 0xc0, 0x50, 0x0f, 0x27, 0xf4, 0x3d, 0x98, 0x12, 0xa3, - 0xb2, 0xe5, 0x6d, 0x8b, 0x4d, 0xfa, 0x8d, 0x8c, 0x3b, 0x91, 0xd5, 0xbf, 0xe3, 0x43, 0x0f, 0x5f, - 0x22, 0xfb, 0x67, 0xe0, 0x14, 0xad, 0xce, 0x74, 0x99, 0x8e, 0x11, 0x81, 0xc9, 0xdd, 0xf6, 0x26, - 0xf1, 0x49, 0x22, 0x61, 0xa2, 0xd2, 0x5c, 0xb5, 0xdf, 0x2c, 0x9d, 0xea, 0x96, 0x97, 0x4c, 0x16, - 0x38, 0xcb, 0xd3, 0xfe, 0x65, 0x0b, 0x98, 0x63, 0xe2, 0x09, 0x6c, 0x7f, 0x9f, 0x32, 0xb7, 0xbf, - 0x6a, 0x91, 0x04, 0x2a, 0xd8, 0xf9, 0x9e, 0xe7, 0xc3, 0x52, 0x8f, 0xc2, 0x5b, 0x07, 0x52, 0xf7, - 0xef, 0xad, 0x71, 0xfd, 0x6f, 0x8b, 0x2f, 0x48, 0x15, 0x20, 0x89, 0xbe, 0x00, 0x23, 0x4d, 0xa7, - 0xe5, 0x34, 0x79, 0x8e, 0xb0, 0x42, 0xeb, 0x8f, 0x51, 0x68, 0x7e, 0x59, 0x94, 0xe0, 0xd6, 0x8c, - 0x8f, 0xcb, 0xaf, 0x94, 0xe0, 0x9e, 0x16, 0x0c, 0x55, 0xe5, 0xec, 0x2e, 0x8c, 0x1b, 0xcc, 0xee, - 0xe9, 0xd1, 0xf7, 0x0b, 0x7c, 0xbb, 0x50, 0x27, 0x96, 0x3d, 0x98, 0x0e, 0xb4, 0xff, 0x54, 0x38, - 0x4a, 0x75, 0xfa, 0xa3, 0xbd, 0x36, 0x04, 0x26, 0x49, 0x35, 0xc7, 0xcb, 0x0c, 0x1b, 0xdc, 0xc9, - 0xd9, 0xfe, 0x3b, 0x16, 0xdc, 0xaf, 0x13, 0x6a, 0xb1, 0xab, 0xbd, 0xec, 0xc9, 0x35, 0x18, 0x09, - 0x5b, 0x24, 0x72, 0xd2, 0x33, 0xd9, 0x39, 0xd9, 0xe9, 0x57, 0x05, 0xfc, 0xe8, 0x70, 0x6e, 0x46, - 0xe7, 0x2e, 0xe1, 0x58, 0x95, 0x44, 0x36, 0x0c, 0xb1, 0xce, 0x88, 0x45, 0x5c, 0x31, 0xcb, 0xa3, - 0xc5, 0xae, 0xbb, 0x62, 0x2c, 0x30, 0xf6, 0xcf, 0x5a, 0x7c, 0x62, 0xe9, 0x4d, 0x47, 0xef, 0xc2, - 0xd4, 0x1e, 0x3d, 0xbe, 0xad, 0xdc, 0x6a, 0x45, 0xdc, 0x8c, 0x2e, 0xfb, 0xe9, 0xa9, 0x5e, 0xfd, - 0xa4, 0x7d, 0xe4, 0x52, 0x55, 0xb4, 0x79, 0x6a, 0x3d, 0xc3, 0x0c, 0x77, 0xb0, 0xb7, 0xff, 0xb4, - 0xc4, 0x57, 0x22, 0xd3, 0xea, 0x9e, 0x80, 0xe1, 0x56, 0xe8, 0x2e, 0xaf, 0xd5, 0xb0, 0xe8, 0x21, - 0x25, 0xae, 0xea, 0x1c, 0x8c, 0x25, 0x1e, 0x9d, 0x07, 0x20, 0xb7, 0x12, 0x12, 0x05, 0x8e, 0xaf, - 0x2e, 0xe3, 0x95, 0xf2, 0xb4, 0xa2, 0x30, 0x58, 0xa3, 0xa2, 0x65, 0x5a, 0x51, 0xb8, 0xef, 0xb9, - 0x2c, 0xb0, 0xa3, 0x6c, 0x96, 0xa9, 0x2b, 0x0c, 0xd6, 0xa8, 0xe8, 0x51, 0xb9, 0x1d, 0xc4, 0x7c, - 0x03, 0x74, 0x36, 0x45, 0x2a, 0x9e, 0x91, 0xf4, 0xa8, 0x7c, 0x4d, 0x47, 0x62, 0x93, 0x16, 0x2d, - 0xc2, 0x50, 0xe2, 0xb0, 0x2b, 0xe6, 0xc1, 0x62, 0x97, 0x9d, 0x0d, 0x4a, 0xa1, 0x27, 0x8d, 0xa2, - 0x05, 0xb0, 0x28, 0x88, 0xde, 0x94, 0x22, 0x98, 0x8b, 0x64, 0xe1, 0x7a, 0x55, 0x38, 0x6d, 0x75, - 0xf1, 0xad, 0xcb, 0x60, 0xe1, 0xd2, 0x65, 0xf0, 0xb2, 0xbf, 0x54, 0x01, 0x48, 0xb5, 0x3d, 0xf4, - 0x5e, 0x87, 0x88, 0x78, 0xba, 0xbb, 0x7e, 0x78, 0xf7, 0xe4, 0x03, 0xfa, 0xb2, 0x05, 0xa3, 0x8e, - 0xef, 0x87, 0x4d, 0x27, 0x61, 0xbd, 0x5c, 0xea, 0x2e, 0xa2, 0x44, 0xfd, 0x8b, 0x69, 0x09, 0xde, - 0x84, 0xe7, 0xe4, 0xed, 0xb1, 0x86, 0xe9, 0xd9, 0x0a, 0xbd, 0x62, 0xf4, 0x71, 0x79, 0x08, 0xe0, - 0xd3, 0x63, 0x36, 0x7b, 0x08, 0xa8, 0x30, 0x69, 0xac, 0xe9, 0xff, 0xe8, 0x9a, 0x91, 0xb3, 0x66, - 0xa0, 0x38, 0x3c, 0xd7, 0x50, 0x7a, 0x7a, 0xa5, 0xab, 0x41, 0x75, 0xdd, 0x05, 0x7d, 0xb0, 0x38, - 0x86, 0x5d, 0xd3, 0xae, 0x7b, 0xb8, 0x9f, 0xbf, 0x03, 0x93, 0xae, 0xb9, 0xdd, 0x8a, 0xd9, 0xf4, - 0x78, 0x11, 0xdf, 0xcc, 0xee, 0x9c, 0x6e, 0xb0, 0x19, 0x04, 0xce, 0x32, 0x46, 0x75, 0x1e, 0x0c, - 0xb0, 0x16, 0x6c, 0x85, 0xc2, 0x85, 0xcf, 0x2e, 0x1c, 0xcb, 0x83, 0x38, 0x21, 0x7b, 0x94, 0x32, - 0xdd, 0x47, 0xaf, 0x88, 0xb2, 0x58, 0x71, 0x41, 0xaf, 0xc1, 0x10, 0x8b, 0xd0, 0x8a, 0xab, 0x23, - 0xc5, 0x76, 0x40, 0x33, 0xb8, 0x38, 0x5d, 0x54, 0xec, 0x6f, 0x8c, 0x05, 0x07, 0x74, 0x51, 0xa6, - 0x08, 0x88, 0xd7, 0x82, 0x6b, 0x31, 0x61, 0x29, 0x02, 0x2a, 0x4b, 0x1f, 0x4d, 0xa3, 0xff, 0x39, - 0x3c, 0x37, 0x3d, 0xa4, 0x51, 0x92, 0xea, 0x2b, 0xe2, 0xbf, 0xcc, 0x3a, 0x59, 0x85, 0xe2, 0xe6, - 0x99, 0x99, 0x29, 0xd3, 0xee, 0xbc, 0x6e, 0xb2, 0xc0, 0x59, 0x9e, 0x27, 0xba, 0x7d, 0xce, 0x06, - 0x30, 0x95, 0x5d, 0x58, 0xf7, 0x74, 0xbb, 0xfe, 0xe1, 0x00, 0x4c, 0x98, 0x13, 0x01, 0x2d, 0x40, - 0x45, 0x30, 0x51, 0xe9, 0xc2, 0xd4, 0xdc, 0x5e, 0x97, 0x08, 0x9c, 0xd2, 0xb0, 0x74, 0x69, 0xac, - 0xb8, 0xe6, 0x9b, 0x95, 0xa6, 0x4b, 0x53, 0x18, 0xac, 0x51, 0x51, 0x25, 0x7a, 0x33, 0x0c, 0x13, - 0xb5, 0x15, 0xa8, 0xd9, 0xb2, 0xc4, 0xa0, 0x58, 0x60, 0xe9, 0x16, 0xb0, 0x4b, 0xa2, 0x80, 0xf8, - 0xa6, 0x25, 0x53, 0x6d, 0x01, 0x97, 0x74, 0x24, 0x36, 0x69, 0xe9, 0x96, 0x16, 0xc6, 0x6c, 0xfa, - 0x09, 0x55, 0x3d, 0xf5, 0x75, 0x6b, 0xf0, 0x08, 0x45, 0x89, 0x47, 0x6f, 0xc0, 0xfd, 0x2a, 0xa0, - 0x10, 0x73, 0xcb, 0xb0, 0xac, 0x71, 0xc8, 0x38, 0x59, 0xdf, 0xbf, 0x9c, 0x4f, 0x86, 0x8b, 0xca, - 0xa3, 0x57, 0x61, 0x42, 0xa8, 0xc0, 0x92, 0xe3, 0xb0, 0xe9, 0xac, 0x70, 0xc9, 0xc0, 0xe2, 0x0c, - 0x35, 0xaa, 0xc1, 0x14, 0x85, 0x30, 0x2d, 0x54, 0x72, 0xe0, 0x81, 0x91, 0x6a, 0xaf, 0xbf, 0x94, - 0xc1, 0xe3, 0x8e, 0x12, 0x68, 0x11, 0x26, 0xb9, 0x8e, 0x42, 0xcf, 0x94, 0x6c, 0x1c, 0x84, 0x67, - 0xad, 0x5a, 0x08, 0x57, 0x4d, 0x34, 0xce, 0xd2, 0xa3, 0x97, 0x60, 0xcc, 0x89, 0x9a, 0x3b, 0x5e, - 0x42, 0x9a, 0x49, 0x3b, 0xe2, 0x09, 0x38, 0x34, 0x6f, 0x8f, 0x45, 0x0d, 0x87, 0x0d, 0x4a, 0xfb, - 0x3d, 0x38, 0x95, 0xe3, 0x94, 0x4f, 0x27, 0x8e, 0xd3, 0xf2, 0xe4, 0x37, 0x65, 0xbc, 0xd6, 0x16, - 0xeb, 0x6b, 0xf2, 0x6b, 0x34, 0x2a, 0x3a, 0x3b, 0x99, 0x49, 0x5c, 0x4b, 0x0d, 0xab, 0x66, 0xe7, - 0xaa, 0x44, 0xe0, 0x94, 0xc6, 0xfe, 0x3d, 0x00, 0xcd, 0xa0, 0xd3, 0x87, 0xcf, 0xd2, 0x4b, 0x30, - 0x26, 0xf3, 0x19, 0x6b, 0x79, 0x34, 0xd5, 0x67, 0x5e, 0xd0, 0x70, 0xd8, 0xa0, 0xa4, 0x6d, 0x0b, - 0x54, 0x16, 0xd0, 0x8c, 0x8f, 0x5c, 0x9a, 0x03, 0x34, 0xa5, 0x41, 0x4f, 0xc3, 0x48, 0x4c, 0xfc, - 0xad, 0xcb, 0x5e, 0xb0, 0x2b, 0x26, 0xb6, 0x92, 0xc2, 0x0d, 0x01, 0xc7, 0x8a, 0x02, 0x2d, 0x41, - 0xb9, 0xed, 0xb9, 0x62, 0x2a, 0xcb, 0x0d, 0xbf, 0x7c, 0x6d, 0xad, 0x76, 0x74, 0x38, 0xf7, 0x48, - 0x51, 0x9a, 0x66, 0x7a, 0xb4, 0x8f, 0xe7, 0xe9, 0xf2, 0xa3, 0x85, 0xf3, 0xee, 0x06, 0x86, 0x8e, - 0x79, 0x37, 0x70, 0x1e, 0x40, 0x7c, 0xb5, 0x9c, 0xcb, 0xe5, 0x74, 0xd4, 0x2e, 0x28, 0x0c, 0xd6, - 0xa8, 0x50, 0x0c, 0xd3, 0xcd, 0x88, 0x38, 0xf2, 0x0c, 0xcd, 0xdd, 0xcb, 0x47, 0xee, 0xdc, 0x40, - 0xb0, 0x9c, 0x65, 0x86, 0x3b, 0xf9, 0xa3, 0x10, 0xa6, 0x5d, 0x11, 0xbf, 0x9a, 0x56, 0x5a, 0x39, - 0xbe, 0x4f, 0x3b, 0x73, 0xc8, 0xc9, 0x32, 0xc2, 0x9d, 0xbc, 0xd1, 0xdb, 0x30, 0x2b, 0x81, 0x9d, - 0x21, 0xc3, 0x6c, 0xb9, 0x94, 0x97, 0xce, 0xdc, 0x3e, 0x9c, 0x9b, 0xad, 0x15, 0x52, 0xe1, 0x2e, - 0x1c, 0x10, 0x86, 0x21, 0x76, 0x97, 0x14, 0x57, 0x47, 0xd9, 0x3e, 0xf7, 0x64, 0xb1, 0x31, 0x80, - 0xce, 0xf5, 0x79, 0x76, 0x0f, 0x25, 0xdc, 0x7c, 0xd3, 0x6b, 0x39, 0x06, 0xc4, 0x82, 0x13, 0xda, - 0x82, 0x51, 0x27, 0x08, 0xc2, 0xc4, 0xe1, 0x2a, 0xd4, 0x58, 0xb1, 0xee, 0xa7, 0x31, 0x5e, 0x4c, - 0x4b, 0x70, 0xee, 0xca, 0x73, 0x50, 0xc3, 0x60, 0x9d, 0x31, 0xba, 0x09, 0x93, 0xe1, 0x4d, 0x2a, - 0x1c, 0xa5, 0x95, 0x22, 0xae, 0x8e, 0xb3, 0xba, 0x9e, 0xef, 0xd3, 0x4e, 0x6b, 0x14, 0xd6, 0xa4, - 0x96, 0xc9, 0x14, 0x67, 0x6b, 0x41, 0xf3, 0x86, 0xb5, 0x7a, 0x22, 0xf5, 0x67, 0x4f, 0xad, 0xd5, - 0xba, 0x71, 0x9a, 0x85, 0xa0, 0x73, 0xb7, 0x55, 0xb6, 0xfa, 0x27, 0x33, 0x21, 0xe8, 0x29, 0x0a, - 0xeb, 0x74, 0x68, 0x07, 0xc6, 0xd2, 0x2b, 0xab, 0x28, 0x66, 0x19, 0x6a, 0x46, 0xcf, 0x9f, 0xef, - 0xef, 0xe3, 0xd6, 0xb4, 0x92, 0xfc, 0xe4, 0xa0, 0x43, 0xb0, 0xc1, 0x79, 0xf6, 0xa7, 0x60, 0x54, - 0x1b, 0xd8, 0xe3, 0x78, 0x65, 0xcf, 0xbe, 0x0a, 0x53, 0xd9, 0xa1, 0x3b, 0x96, 0x57, 0xf7, 0xff, - 0x2a, 0xc1, 0x64, 0xce, 0xcd, 0x15, 0x4b, 0xf5, 0x9c, 0x11, 0xa8, 0x69, 0x66, 0x67, 0x53, 0x2c, - 0x96, 0xfa, 0x10, 0x8b, 0x52, 0x46, 0x97, 0x0b, 0x65, 0xb4, 0x10, 0x85, 0x03, 0xef, 0x47, 0x14, - 0x9a, 0xbb, 0xcf, 0x60, 0x5f, 0xbb, 0xcf, 0x5d, 0x10, 0x9f, 0xc6, 0x06, 0x36, 0xdc, 0xc7, 0x06, - 0xf6, 0xd5, 0x12, 0x4c, 0x65, 0xf3, 0x09, 0x9f, 0xc0, 0x7d, 0xc7, 0x6b, 0xc6, 0x7d, 0x47, 0x7e, - 0xe2, 0xf4, 0x6c, 0x96, 0xe3, 0xa2, 0xbb, 0x0f, 0x9c, 0xb9, 0xfb, 0x78, 0xb2, 0x2f, 0x6e, 0xdd, - 0xef, 0x41, 0xfe, 0x6e, 0x09, 0x4e, 0x67, 0x8b, 0x2c, 0xfb, 0x8e, 0xb7, 0x77, 0x02, 0x7d, 0x73, - 0xd5, 0xe8, 0x9b, 0x67, 0xfa, 0xf9, 0x1a, 0xd6, 0xb4, 0xc2, 0x0e, 0xba, 0x91, 0xe9, 0xa0, 0x85, - 0xfe, 0x59, 0x76, 0xef, 0xa5, 0xef, 0x95, 0xe1, 0x4c, 0x6e, 0xb9, 0xf4, 0xba, 0x60, 0xd5, 0xb8, - 0x2e, 0x38, 0x9f, 0xb9, 0x2e, 0xb0, 0xbb, 0x97, 0xbe, 0x3b, 0xf7, 0x07, 0x22, 0xf2, 0x8c, 0x65, - 0x4f, 0xbb, 0xc3, 0xbb, 0x03, 0x23, 0xf2, 0x4c, 0x31, 0xc2, 0x26, 0xdf, 0x9f, 0xa4, 0x3b, 0x83, - 0xdf, 0xb3, 0xe0, 0x81, 0xdc, 0xb1, 0x39, 0x01, 0xbb, 0xfa, 0x15, 0xd3, 0xae, 0xfe, 0x44, 0xdf, - 0xb3, 0xb5, 0xc0, 0xd0, 0xfe, 0xf5, 0x72, 0xc1, 0xb7, 0x30, 0xcb, 0xe4, 0x55, 0x18, 0x75, 0x9a, - 0x4d, 0x12, 0xc7, 0xeb, 0xa1, 0xab, 0x92, 0x95, 0x3d, 0xc3, 0xb4, 0x8d, 0x14, 0x7c, 0x74, 0x38, - 0x37, 0x9b, 0x65, 0x91, 0xa2, 0xb1, 0xce, 0xc1, 0x4c, 0x80, 0x58, 0xba, 0xab, 0x09, 0x10, 0xcf, - 0x03, 0xec, 0x2b, 0x7b, 0x45, 0xd6, 0xcc, 0xa9, 0x59, 0x32, 0x34, 0x2a, 0xf4, 0xd3, 0xec, 0x14, - 0xc0, 0x9d, 0x81, 0xf8, 0x54, 0x7c, 0xae, 0xcf, 0xb1, 0xd2, 0x1d, 0x8b, 0x78, 0x88, 0xb3, 0x32, - 0x09, 0x2b, 0x96, 0xe8, 0x33, 0x30, 0x15, 0xf3, 0x0c, 0x1a, 0xcb, 0xbe, 0x13, 0xb3, 0xc0, 0x1a, - 0x31, 0x0b, 0x59, 0xdc, 0x72, 0x23, 0x83, 0xc3, 0x1d, 0xd4, 0xf6, 0x57, 0x07, 0xe0, 0xc1, 0x2e, - 0xc2, 0x07, 0x2d, 0x9a, 0x97, 0xf7, 0x4f, 0x65, 0xed, 0x76, 0xb3, 0xb9, 0x85, 0x0d, 0x43, 0x5e, - 0x66, 0x8c, 0x4b, 0xef, 0x7b, 0x8c, 0xbf, 0x62, 0x69, 0x16, 0x55, 0xee, 0xe2, 0xfb, 0xa9, 0x63, - 0x0a, 0xd5, 0xbb, 0x68, 0x62, 0xdd, 0xca, 0xb1, 0x53, 0x9e, 0xef, 0xbb, 0x39, 0x7d, 0x1b, 0x2e, - 0x4f, 0xf6, 0xaa, 0xe7, 0x8b, 0x16, 0x3c, 0x92, 0xdb, 0x5e, 0xc3, 0xd9, 0x68, 0x01, 0x2a, 0x4d, - 0x0a, 0xd4, 0x82, 0xec, 0xd2, 0x50, 0x57, 0x89, 0xc0, 0x29, 0x8d, 0xe1, 0x53, 0x54, 0xea, 0xe9, - 0x53, 0xf4, 0x2f, 0x2d, 0x98, 0xc9, 0x36, 0xe2, 0x04, 0x24, 0xe0, 0x9a, 0x29, 0x01, 0x3f, 0xda, - 0xcf, 0x58, 0x16, 0x08, 0xbf, 0x3f, 0x9e, 0x80, 0xfb, 0x0a, 0xde, 0x8b, 0xd8, 0x87, 0xe9, 0xed, - 0x26, 0x31, 0xc3, 0x17, 0xc5, 0xc7, 0xe4, 0x46, 0x7a, 0x76, 0x8d, 0x75, 0xe4, 0x07, 0xd9, 0x0e, - 0x12, 0xdc, 0x59, 0x05, 0xfa, 0xa2, 0x05, 0x33, 0xce, 0xcd, 0xb8, 0xe3, 0xfd, 0x26, 0x31, 0x67, - 0x9e, 0xcf, 0xb5, 0xaf, 0xf6, 0x78, 0xef, 0x89, 0x85, 0x18, 0xcd, 0xe4, 0x51, 0xe1, 0xdc, 0xba, - 0x10, 0x16, 0x79, 0x21, 0xa9, 0x9e, 0xdc, 0x25, 0xc0, 0x36, 0x2f, 0xfc, 0x89, 0xcb, 0x42, 0x89, - 0xc1, 0x8a, 0x0f, 0xba, 0x0e, 0x95, 0x6d, 0x19, 0x93, 0x28, 0x64, 0x6d, 0xee, 0xe6, 0x95, 0x1b, - 0xb8, 0xc8, 0x63, 0x3e, 0x14, 0x0a, 0xa7, 0xac, 0xd0, 0xab, 0x50, 0x0e, 0xb6, 0xe2, 0x6e, 0x0f, - 0x66, 0x64, 0x7c, 0xf0, 0x78, 0xa4, 0xf4, 0x95, 0xd5, 0x06, 0xa6, 0x05, 0x69, 0xf9, 0x68, 0xd3, - 0x15, 0x57, 0x02, 0xb9, 0xe5, 0xf1, 0x52, 0xad, 0xb3, 0x3c, 0x5e, 0xaa, 0x61, 0x5a, 0x10, 0xad, - 0xc2, 0x20, 0x0b, 0x71, 0x12, 0xf6, 0xfe, 0xdc, 0x4c, 0x0f, 0x1d, 0xe1, 0x5b, 0x3c, 0x74, 0x9a, - 0x81, 0x31, 0x2f, 0x8e, 0x5e, 0x83, 0xa1, 0x26, 0x7b, 0x3f, 0x42, 0x18, 0x67, 0xf2, 0xb3, 0x97, - 0x74, 0xbc, 0x30, 0xc1, 0x6f, 0x39, 0x39, 0x1c, 0x0b, 0x0e, 0x68, 0x03, 0x86, 0x9a, 0xa4, 0xb5, - 0xb3, 0x15, 0x0b, 0x9b, 0xcb, 0xc7, 0x73, 0x79, 0x75, 0x79, 0x2e, 0x45, 0x70, 0x65, 0x14, 0x58, - 0xf0, 0x42, 0x9f, 0x84, 0xd2, 0x56, 0x53, 0x44, 0x3b, 0xe5, 0xda, 0xf9, 0xcd, 0x70, 0xf6, 0xa5, - 0xa1, 0xdb, 0x87, 0x73, 0xa5, 0xd5, 0x65, 0x5c, 0xda, 0x6a, 0xa2, 0x2b, 0x30, 0xbc, 0xc5, 0x63, - 0x92, 0x45, 0x9e, 0xdf, 0xc7, 0xf3, 0xc3, 0xa5, 0x3b, 0xc2, 0x96, 0x79, 0x94, 0x8e, 0x40, 0x60, - 0xc9, 0x04, 0x6d, 0x00, 0x6c, 0xa9, 0xd8, 0x6a, 0x91, 0xe8, 0xf7, 0xa3, 0xfd, 0x44, 0x60, 0x0b, - 0x03, 0x84, 0x82, 0x62, 0x8d, 0x0f, 0xfa, 0x3c, 0x54, 0x1c, 0xf9, 0x22, 0x10, 0x4b, 0xf2, 0x6b, - 0xea, 0x03, 0xe9, 0x82, 0xeb, 0xfe, 0x58, 0x12, 0x9f, 0xad, 0x8a, 0x08, 0xa7, 0x4c, 0xd1, 0x2e, - 0x8c, 0xef, 0xc7, 0xad, 0x1d, 0x22, 0x17, 0x28, 0xcb, 0xfc, 0x5b, 0xb0, 0x21, 0x5d, 0x17, 0x84, - 0x5e, 0x94, 0xb4, 0x1d, 0xbf, 0x43, 0xa6, 0xb0, 0x90, 0xae, 0xeb, 0x3a, 0x33, 0x6c, 0xf2, 0xa6, - 0x9d, 0xfe, 0x6e, 0x3b, 0xdc, 0x3c, 0x48, 0x88, 0xc8, 0x07, 0x9c, 0xdb, 0xe9, 0xaf, 0x73, 0x92, - 0xce, 0x4e, 0x17, 0x08, 0x2c, 0x99, 0xd0, 0x25, 0xec, 0xc8, 0xd7, 0xb6, 0x84, 0x95, 0xe5, 0x89, - 0xc2, 0xee, 0xe9, 0x68, 0x6f, 0xda, 0x29, 0x4c, 0xf6, 0xa5, 0xac, 0x98, 0xcc, 0x6b, 0xed, 0x84, - 0x49, 0x18, 0x64, 0xe4, 0xed, 0x74, 0xb1, 0xcc, 0xab, 0xe7, 0xd0, 0x77, 0xca, 0xbc, 0x3c, 0x2a, - 0x9c, 0x5b, 0x17, 0x72, 0x61, 0xa2, 0x15, 0x46, 0xc9, 0xcd, 0x30, 0x92, 0xb3, 0x0a, 0x75, 0x39, - 0x7e, 0x1b, 0x94, 0xa2, 0x46, 0xe6, 0xa1, 0x6d, 0x62, 0x70, 0x86, 0x27, 0x1d, 0x92, 0xb8, 0xe9, - 0xf8, 0x64, 0xed, 0x6a, 0xf5, 0x54, 0xf1, 0x90, 0x34, 0x38, 0x49, 0xe7, 0x90, 0x08, 0x04, 0x96, - 0x4c, 0xa8, 0xf4, 0x61, 0xa9, 0xe5, 0x59, 0x02, 0xe3, 0x02, 0xe9, 0xd3, 0xe1, 0xbb, 0xcc, 0xa5, - 0x0f, 0x03, 0x63, 0x5e, 0x9c, 0xce, 0x7c, 0xa1, 0x7b, 0x86, 0x71, 0xf5, 0x74, 0xf1, 0xcc, 0x17, - 0x2a, 0xeb, 0xd5, 0x46, 0xb7, 0x99, 0xaf, 0x88, 0x70, 0xca, 0xd4, 0xfe, 0xd6, 0x50, 0xa7, 0xb6, - 0xc0, 0xce, 0x18, 0x5f, 0xb2, 0x3a, 0x2e, 0xe0, 0x3f, 0xd1, 0xaf, 0xc9, 0xe3, 0x2e, 0xea, 0x89, - 0x5f, 0xb4, 0xe0, 0xbe, 0x56, 0xee, 0x47, 0x89, 0xad, 0xb7, 0x3f, 0xcb, 0x09, 0xef, 0x06, 0x95, - 0x1a, 0x3c, 0x1f, 0x8f, 0x0b, 0x6a, 0xca, 0xea, 0xe2, 0xe5, 0xf7, 0xad, 0x8b, 0xaf, 0xc3, 0x08, - 0x53, 0xef, 0xd2, 0x54, 0x44, 0x7d, 0xb9, 0xb1, 0xb1, 0x4d, 0x7c, 0x59, 0x14, 0xc4, 0x8a, 0x05, - 0xfa, 0x39, 0x0b, 0x1e, 0xce, 0x36, 0x1d, 0x13, 0x86, 0x16, 0x69, 0x2d, 0xf9, 0xf1, 0x66, 0x55, - 0x7c, 0xff, 0xc3, 0xf5, 0x6e, 0xc4, 0x47, 0xbd, 0x08, 0x70, 0xf7, 0xca, 0x50, 0x2d, 0xe7, 0x7c, - 0x35, 0x64, 0xde, 0xcf, 0xf5, 0x3e, 0x63, 0xa1, 0xe7, 0x61, 0x6c, 0x2f, 0x6c, 0x07, 0x32, 0xc6, - 0x44, 0x44, 0x10, 0x33, 0x5b, 0xf0, 0xba, 0x06, 0xc7, 0x06, 0xd5, 0xc9, 0xea, 0xfb, 0xdf, 0xb0, - 0x72, 0x14, 0x55, 0x7e, 0x02, 0x7c, 0xc5, 0x3c, 0x01, 0x3e, 0x96, 0x3d, 0x01, 0x76, 0x58, 0xea, - 0x8c, 0xc3, 0x5f, 0xff, 0xe9, 0x7a, 0xfb, 0xcd, 0xd5, 0x64, 0xfb, 0x70, 0xb6, 0x97, 0x70, 0x66, - 0xae, 0x7c, 0xae, 0xba, 0xe3, 0x4e, 0x5d, 0xf9, 0xdc, 0xb5, 0x1a, 0x66, 0x98, 0x7e, 0xb3, 0x7e, - 0xd8, 0xff, 0xcd, 0x82, 0x72, 0x3d, 0x74, 0x4f, 0xc0, 0xf2, 0xf8, 0x29, 0xc3, 0xf2, 0xf8, 0x60, - 0xc1, 0xdb, 0x9d, 0x85, 0x76, 0xc6, 0x95, 0x8c, 0x9d, 0xf1, 0xe1, 0x22, 0x06, 0xdd, 0xad, 0x8a, - 0x7f, 0xaf, 0x0c, 0xfa, 0x4b, 0xa3, 0xe8, 0x5f, 0xdf, 0x89, 0x4f, 0x78, 0xb9, 0xdb, 0xe3, 0xa3, - 0x82, 0x33, 0xf3, 0x00, 0x94, 0xe1, 0xa6, 0x3f, 0x66, 0xae, 0xe1, 0x37, 0x88, 0xb7, 0xbd, 0x93, - 0x10, 0x37, 0xfb, 0x39, 0x27, 0xe7, 0x1a, 0xfe, 0x5f, 0x2c, 0x98, 0xcc, 0xd4, 0x8e, 0xfc, 0xbc, - 0xd8, 0xb5, 0x3b, 0xb4, 0x38, 0x4d, 0xf7, 0x0c, 0x76, 0x9b, 0x07, 0x50, 0xd7, 0x3a, 0xd2, 0xaa, - 0xc3, 0x74, 0x5f, 0x75, 0xef, 0x13, 0x63, 0x8d, 0x02, 0xbd, 0x00, 0xa3, 0x49, 0xd8, 0x0a, 0xfd, - 0x70, 0xfb, 0xe0, 0x12, 0x91, 0x79, 0x66, 0xd4, 0xe5, 0xdb, 0x46, 0x8a, 0xc2, 0x3a, 0x9d, 0xfd, - 0x2b, 0x65, 0xc8, 0xbe, 0x4e, 0xfb, 0xe7, 0x73, 0xf2, 0xc3, 0x39, 0x27, 0xbf, 0x67, 0xc1, 0x14, - 0xad, 0x9d, 0x79, 0x57, 0x49, 0xa7, 0x6a, 0xf5, 0xae, 0x87, 0xd5, 0xe5, 0x5d, 0x8f, 0xc7, 0xa8, - 0xec, 0x72, 0xc3, 0x76, 0x22, 0xac, 0x42, 0x9a, 0x70, 0xa2, 0x50, 0x2c, 0xb0, 0x82, 0x8e, 0x44, - 0x91, 0x88, 0x48, 0xd3, 0xe9, 0x48, 0x14, 0x61, 0x81, 0x95, 0xcf, 0x7e, 0x0c, 0x14, 0x3c, 0xfb, - 0xc1, 0x52, 0xb4, 0x09, 0x8f, 0x1e, 0xa1, 0x50, 0x68, 0x29, 0xda, 0xa4, 0xab, 0x4f, 0x4a, 0x63, - 0x7f, 0xb3, 0x0c, 0x63, 0xf5, 0xd0, 0x4d, 0x2f, 0x56, 0x9e, 0x37, 0x2e, 0x56, 0xce, 0x66, 0x2e, - 0x56, 0xa6, 0x74, 0xda, 0x3f, 0xbf, 0x46, 0xf9, 0xa0, 0xae, 0x51, 0xfe, 0xcc, 0x82, 0x89, 0x7a, - 0xe8, 0xd2, 0x09, 0xfa, 0x93, 0x34, 0x1b, 0xf5, 0x04, 0x80, 0x43, 0x5d, 0x12, 0x00, 0xfe, 0x7d, - 0x0b, 0x86, 0xeb, 0xa1, 0x7b, 0x02, 0x16, 0xd3, 0x57, 0x4c, 0x8b, 0xe9, 0xfd, 0x05, 0x52, 0xb6, - 0xc0, 0x48, 0xfa, 0x1b, 0x65, 0x18, 0xa7, 0xed, 0x0c, 0xb7, 0xe5, 0x28, 0x19, 0x3d, 0x62, 0xf5, - 0xd1, 0x23, 0x54, 0x99, 0x0b, 0x7d, 0x3f, 0xbc, 0x99, 0x1d, 0xb1, 0x55, 0x06, 0xc5, 0x02, 0x8b, - 0x9e, 0x86, 0x91, 0x56, 0x44, 0xf6, 0xbd, 0xb0, 0x1d, 0x67, 0x63, 0x5a, 0xeb, 0x02, 0x8e, 0x15, - 0x05, 0xd5, 0xdb, 0x63, 0x2f, 0x68, 0x12, 0xe9, 0xe5, 0x33, 0xc0, 0xbc, 0x7c, 0x78, 0x0e, 0x55, - 0x0d, 0x8e, 0x0d, 0x2a, 0x74, 0x03, 0x2a, 0xec, 0x3f, 0x5b, 0x37, 0xc7, 0x7f, 0xd5, 0x43, 0x24, - 0x2e, 0x17, 0x0c, 0x70, 0xca, 0x0b, 0x9d, 0x07, 0x48, 0xa4, 0x3f, 0x52, 0x2c, 0x42, 0xae, 0x95, - 0x46, 0xa9, 0x3c, 0x95, 0x62, 0xac, 0x51, 0xa1, 0xa7, 0xa0, 0x92, 0x38, 0x9e, 0x7f, 0xd9, 0x0b, - 0x48, 0x2c, 0xfc, 0xb9, 0x44, 0x5e, 0x72, 0x01, 0xc4, 0x29, 0x9e, 0xee, 0xe8, 0x2c, 0xa0, 0x9f, - 0xbf, 0x09, 0x34, 0xc2, 0xa8, 0xd9, 0x8e, 0x7e, 0x59, 0x41, 0xb1, 0x46, 0x61, 0xbf, 0x04, 0xa7, - 0xeb, 0xa1, 0x5b, 0x0f, 0xa3, 0x64, 0x35, 0x8c, 0x6e, 0x3a, 0x91, 0x2b, 0xc7, 0x6f, 0x4e, 0xa6, - 0xc8, 0xa6, 0xbb, 0xee, 0x20, 0xb7, 0x06, 0x18, 0xc9, 0xaf, 0x9f, 0x63, 0x7b, 0xfa, 0x31, 0x83, - 0x6f, 0xfe, 0x5d, 0x09, 0x50, 0x9d, 0x79, 0x4c, 0x19, 0x0f, 0x47, 0xbd, 0x0d, 0x13, 0x31, 0xb9, - 0xec, 0x05, 0xed, 0x5b, 0xf2, 0x7c, 0xd5, 0x25, 0xb2, 0xa9, 0xb1, 0xa2, 0x53, 0x72, 0x8b, 0x8a, - 0x09, 0xc3, 0x19, 0x6e, 0xb4, 0x0b, 0xa3, 0x76, 0xb0, 0x18, 0x5f, 0x8b, 0x49, 0x24, 0x1e, 0x4a, - 0x62, 0x5d, 0x88, 0x25, 0x10, 0xa7, 0x78, 0x3a, 0x65, 0xd8, 0x9f, 0x2b, 0x61, 0x80, 0xc3, 0x30, - 0x91, 0x93, 0x8c, 0x3d, 0xb5, 0xa1, 0xc1, 0xb1, 0x41, 0x85, 0x56, 0x01, 0xc5, 0xed, 0x56, 0xcb, - 0x67, 0xd7, 0x90, 0x8e, 0x7f, 0x21, 0x0a, 0xdb, 0x2d, 0x7e, 0x95, 0x24, 0x5e, 0xa9, 0x68, 0x74, - 0x60, 0x71, 0x4e, 0x09, 0x2a, 0x18, 0xb6, 0x62, 0xf6, 0x5b, 0xc4, 0xf4, 0x73, 0xdb, 0x66, 0x83, - 0x81, 0xb0, 0xc4, 0xd9, 0x5f, 0x60, 0x9b, 0x19, 0x7b, 0xdf, 0x26, 0x69, 0x47, 0x04, 0xed, 0xc1, - 0x78, 0x8b, 0x6d, 0x58, 0x49, 0x14, 0xfa, 0x3e, 0x91, 0x7a, 0xe3, 0x9d, 0x79, 0x6f, 0xf1, 0xf7, - 0x2e, 0x74, 0x76, 0xd8, 0xe4, 0x6e, 0x7f, 0x69, 0x92, 0xc9, 0xa5, 0x06, 0x3f, 0xb4, 0x0c, 0x0b, - 0x9f, 0x6c, 0xa1, 0xa1, 0xcd, 0x16, 0xbf, 0x27, 0x97, 0x4a, 0x7a, 0xe1, 0xd7, 0x8d, 0x65, 0x59, - 0xf4, 0x3a, 0xbb, 0x83, 0xe3, 0xc2, 0xa0, 0xd7, 0x4b, 0x96, 0x9c, 0xca, 0xb8, 0x6e, 0x13, 0x05, - 0xb1, 0xc6, 0x04, 0x5d, 0x86, 0x71, 0xf1, 0x1c, 0x8a, 0x30, 0x3c, 0x94, 0x8d, 0xe3, 0xef, 0x38, - 0xd6, 0x91, 0x47, 0x59, 0x00, 0x36, 0x0b, 0xa3, 0x6d, 0x78, 0x58, 0x7b, 0xbc, 0x2b, 0xc7, 0x83, - 0x90, 0xcb, 0x96, 0x47, 0x6e, 0x1f, 0xce, 0x3d, 0xbc, 0xd1, 0x8d, 0x10, 0x77, 0xe7, 0x83, 0xae, - 0xc2, 0x69, 0xa7, 0x99, 0x78, 0xfb, 0xa4, 0x46, 0x1c, 0xd7, 0xf7, 0x02, 0x62, 0x26, 0x79, 0x78, - 0xe0, 0xf6, 0xe1, 0xdc, 0xe9, 0xc5, 0x3c, 0x02, 0x9c, 0x5f, 0x0e, 0xbd, 0x02, 0x15, 0x37, 0x88, - 0x45, 0x1f, 0x0c, 0x19, 0xef, 0xd2, 0x55, 0x6a, 0x57, 0x1a, 0xea, 0xfb, 0xd3, 0x3f, 0x38, 0x2d, - 0x80, 0xb6, 0x61, 0x4c, 0x0f, 0xe4, 0x12, 0x6f, 0x1a, 0x3e, 0xd3, 0xe5, 0x6c, 0x6b, 0x44, 0x3f, - 0x71, 0xab, 0x9b, 0xf2, 0xcf, 0x35, 0x02, 0xa3, 0x0c, 0xc6, 0xe8, 0x35, 0x40, 0x31, 0x89, 0xf6, - 0xbd, 0x26, 0x59, 0x6c, 0xb2, 0x24, 0xc3, 0xcc, 0x56, 0x33, 0x62, 0x04, 0x9b, 0xa0, 0x46, 0x07, - 0x05, 0xce, 0x29, 0x85, 0x2e, 0x52, 0x89, 0xa2, 0x43, 0x85, 0x3b, 0xb5, 0x54, 0xf3, 0xaa, 0x35, - 0xd2, 0x8a, 0x48, 0xd3, 0x49, 0x88, 0x6b, 0x72, 0xc4, 0x99, 0x72, 0x74, 0xbf, 0x51, 0x6f, 0x37, - 0x80, 0xe9, 0x04, 0xdc, 0xf9, 0x7e, 0x03, 0x3d, 0x21, 0xed, 0x84, 0x71, 0x72, 0x85, 0x24, 0x37, - 0xc3, 0x68, 0x57, 0x64, 0x66, 0x4b, 0x13, 0x37, 0xa6, 0x28, 0xac, 0xd3, 0x51, 0x8d, 0x88, 0x5d, - 0x82, 0xad, 0xd5, 0xd8, 0x3d, 0xc5, 0x48, 0xba, 0x4e, 0x2e, 0x72, 0x30, 0x96, 0x78, 0x49, 0xba, - 0x56, 0x5f, 0x66, 0xb7, 0x0f, 0x19, 0xd2, 0xb5, 0xfa, 0x32, 0x96, 0x78, 0x44, 0x3a, 0xdf, 0xfc, - 0x9b, 0x28, 0xbe, 0x37, 0xea, 0x94, 0xcb, 0x7d, 0x3e, 0xfb, 0x17, 0xc0, 0x94, 0x7a, 0x6d, 0x90, - 0xa7, 0xac, 0x8b, 0xab, 0x93, 0x6c, 0x92, 0xf4, 0x9f, 0xef, 0x4e, 0xd9, 0xe2, 0xd6, 0x32, 0x9c, - 0x70, 0x07, 0x6f, 0x23, 0x79, 0xc8, 0x54, 0xcf, 0xb7, 0x37, 0x16, 0xa0, 0x12, 0xb7, 0x37, 0xdd, - 0x70, 0xcf, 0xf1, 0x02, 0x76, 0x59, 0xa0, 0x29, 0x22, 0x0d, 0x89, 0xc0, 0x29, 0x0d, 0x5a, 0x85, - 0x11, 0x47, 0x1c, 0xbe, 0x84, 0x79, 0x3f, 0x37, 0x9b, 0x80, 0x3c, 0xa0, 0x71, 0x3b, 0xa8, 0xfc, - 0x87, 0x55, 0x59, 0xf4, 0x32, 0x8c, 0x8b, 0x80, 0x37, 0xe1, 0xab, 0x7a, 0xca, 0x8c, 0x8d, 0x68, - 0xe8, 0x48, 0x6c, 0xd2, 0xa2, 0x9f, 0x86, 0x09, 0xca, 0x25, 0x15, 0x6c, 0xd5, 0x99, 0x7e, 0x24, - 0xa2, 0x96, 0x53, 0x5d, 0x2f, 0x8c, 0x33, 0xcc, 0x90, 0x0b, 0x0f, 0x39, 0xed, 0x24, 0x64, 0xc6, - 0x4a, 0x73, 0xfe, 0x6f, 0x84, 0xbb, 0x24, 0x60, 0xd6, 0xfd, 0x91, 0xa5, 0xb3, 0xb7, 0x0f, 0xe7, - 0x1e, 0x5a, 0xec, 0x42, 0x87, 0xbb, 0x72, 0x41, 0xd7, 0x60, 0x34, 0x09, 0x7d, 0xe1, 0x64, 0x1e, - 0x57, 0xef, 0x2b, 0x4e, 0x7e, 0xb4, 0xa1, 0xc8, 0x74, 0x73, 0x82, 0x2a, 0x8a, 0x75, 0x3e, 0x68, - 0x83, 0xaf, 0x31, 0x96, 0xaa, 0x93, 0xc4, 0xd5, 0xfb, 0x8b, 0x3b, 0x46, 0x65, 0xf4, 0x34, 0x97, - 0xa0, 0x28, 0x89, 0x75, 0x36, 0xe8, 0x02, 0x4c, 0xb7, 0x22, 0x2f, 0x64, 0x13, 0x5b, 0x19, 0x8a, - 0xab, 0x46, 0x5a, 0xbc, 0xe9, 0x7a, 0x96, 0x00, 0x77, 0x96, 0x41, 0xe7, 0xa8, 0x82, 0xca, 0x81, - 0xd5, 0x07, 0xf8, 0x9b, 0x2c, 0x5c, 0x39, 0xe5, 0x30, 0xac, 0xb0, 0xb3, 0x9f, 0x86, 0xe9, 0x0e, - 0x49, 0x79, 0x2c, 0x87, 0xdf, 0x7f, 0x32, 0x08, 0x15, 0x65, 0x0e, 0x44, 0x0b, 0xa6, 0x95, 0xf7, - 0x81, 0xac, 0x95, 0x77, 0x84, 0xea, 0x6b, 0xba, 0x61, 0x77, 0x23, 0xe7, 0x49, 0xf9, 0xb3, 0x05, - 0xa2, 0xa1, 0xff, 0xe8, 0xbc, 0x63, 0x3c, 0xb7, 0x9f, 0x1e, 0x18, 0x07, 0xba, 0x1e, 0x18, 0xfb, - 0x7c, 0xde, 0x91, 0x1e, 0x0d, 0x5b, 0xa1, 0xbb, 0x56, 0xcf, 0xbe, 0x77, 0x56, 0xa7, 0x40, 0xcc, - 0x71, 0x4c, 0xb9, 0xa7, 0xdb, 0x3a, 0x53, 0xee, 0x87, 0xef, 0x50, 0xb9, 0x97, 0x0c, 0x70, 0xca, - 0x0b, 0xf9, 0x30, 0xdd, 0x34, 0x9f, 0xaa, 0x53, 0x11, 0x79, 0x8f, 0xf6, 0x7c, 0x34, 0xae, 0xad, - 0xbd, 0x61, 0xb3, 0x9c, 0xe5, 0x82, 0x3b, 0x19, 0xa3, 0x97, 0x61, 0xe4, 0xdd, 0x30, 0x66, 0xd3, - 0x4e, 0xec, 0x6d, 0x32, 0x06, 0x6a, 0xe4, 0xf5, 0xab, 0x0d, 0x06, 0x3f, 0x3a, 0x9c, 0x1b, 0xad, - 0x87, 0xae, 0xfc, 0x8b, 0x55, 0x01, 0x74, 0x0b, 0x4e, 0x1b, 0x12, 0x41, 0x35, 0x17, 0xfa, 0x6f, - 0xee, 0xc3, 0xa2, 0xba, 0xd3, 0x6b, 0x79, 0x9c, 0x70, 0x7e, 0x05, 0xf6, 0xb7, 0xb8, 0xd1, 0x53, - 0x98, 0x46, 0x48, 0xdc, 0xf6, 0x4f, 0xe2, 0xa1, 0x8a, 0x15, 0xc3, 0x6a, 0x73, 0xc7, 0x86, 0xf5, - 0xdf, 0xb5, 0x98, 0x61, 0x7d, 0x83, 0xec, 0xb5, 0x7c, 0x27, 0x39, 0x09, 0x37, 0xef, 0xd7, 0x61, - 0x24, 0x11, 0xb5, 0x75, 0x7b, 0x5b, 0x43, 0x6b, 0x14, 0xbb, 0x5c, 0x50, 0x1b, 0xa2, 0x84, 0x62, - 0xc5, 0xc6, 0xfe, 0x67, 0x7c, 0x04, 0x24, 0xe6, 0x04, 0x6c, 0x0b, 0x35, 0xd3, 0xb6, 0x30, 0xd7, - 0xe3, 0x0b, 0x0a, 0x6c, 0x0c, 0xff, 0xd4, 0x6c, 0x37, 0x3b, 0x7b, 0x7c, 0xd8, 0x6f, 0x74, 0xec, - 0x5f, 0xb4, 0x60, 0x26, 0xcf, 0x11, 0x80, 0x2a, 0x31, 0xfc, 0xe4, 0xa3, 0x6e, 0xb8, 0x54, 0x0f, - 0x5e, 0x17, 0x70, 0xac, 0x28, 0xfa, 0xce, 0x6f, 0x7f, 0xbc, 0x84, 0x5f, 0x57, 0xc1, 0x7c, 0xd5, - 0x10, 0xbd, 0xca, 0xe3, 0x36, 0x2c, 0xf5, 0xec, 0xe0, 0xf1, 0x62, 0x36, 0xec, 0x5f, 0x2d, 0xc1, - 0x0c, 0x37, 0x51, 0x2f, 0xee, 0x87, 0x9e, 0x5b, 0x0f, 0x5d, 0x11, 0xc5, 0xf2, 0x26, 0x8c, 0xb5, - 0xb4, 0xe3, 0x6a, 0xb7, 0x94, 0x43, 0xfa, 0xb1, 0x36, 0x3d, 0x36, 0xe8, 0x50, 0x6c, 0xf0, 0x42, - 0x2e, 0x8c, 0x91, 0x7d, 0xaf, 0xa9, 0xec, 0x9c, 0xa5, 0x63, 0x8b, 0x74, 0x55, 0xcb, 0x8a, 0xc6, - 0x07, 0x1b, 0x5c, 0xef, 0xc1, 0x2b, 0x34, 0xf6, 0xd7, 0x2c, 0xb8, 0xbf, 0x20, 0x41, 0x11, 0xad, - 0xee, 0x26, 0xbb, 0x0c, 0x10, 0x4f, 0x64, 0xaa, 0xea, 0xf8, 0x15, 0x01, 0x16, 0x58, 0xf4, 0x59, - 0x00, 0x6e, 0xe2, 0xa7, 0x5a, 0xb4, 0xf8, 0xf4, 0xfe, 0x12, 0x77, 0x68, 0xd9, 0x1d, 0x64, 0x79, - 0xac, 0xf1, 0xb2, 0x7f, 0xb9, 0x0c, 0x83, 0xfc, 0xbd, 0xf4, 0x55, 0x18, 0xde, 0xe1, 0xe9, 0x90, - 0xfb, 0xc9, 0xbc, 0x9c, 0x1e, 0x47, 0x38, 0x00, 0xcb, 0xc2, 0x68, 0x1d, 0x4e, 0x89, 0x48, 0xa9, - 0x1a, 0xf1, 0x9d, 0x03, 0x79, 0xaa, 0xe5, 0x4f, 0x93, 0xc8, 0xb4, 0xf9, 0xa7, 0xd6, 0x3a, 0x49, - 0x70, 0x5e, 0x39, 0xf4, 0x6a, 0x47, 0x12, 0x44, 0x9e, 0x48, 0x5a, 0xe9, 0xc0, 0x3d, 0x12, 0x21, - 0xbe, 0x0c, 0xe3, 0xad, 0x8e, 0xf3, 0xbb, 0xf6, 0x54, 0xb5, 0x79, 0x66, 0x37, 0x69, 0x99, 0x57, - 0x41, 0x9b, 0xf9, 0x50, 0x6c, 0xec, 0x44, 0x24, 0xde, 0x09, 0x7d, 0x57, 0xbc, 0xcb, 0x9a, 0x7a, - 0x15, 0x64, 0xf0, 0xb8, 0xa3, 0x04, 0xe5, 0xb2, 0xe5, 0x78, 0x7e, 0x3b, 0x22, 0x29, 0x97, 0x21, - 0x93, 0xcb, 0x6a, 0x06, 0x8f, 0x3b, 0x4a, 0xd0, 0x79, 0x74, 0x5a, 0x3c, 0xea, 0x29, 0xe3, 0xe7, - 0x95, 0xab, 0xc8, 0xb0, 0xf4, 0xa3, 0xef, 0x92, 0xd3, 0x45, 0x5c, 0xf9, 0xab, 0x67, 0x41, 0xb5, - 0x27, 0xe3, 0x84, 0x07, 0xbd, 0xe4, 0x72, 0x27, 0x4f, 0x4b, 0xfe, 0x91, 0x05, 0xa7, 0x72, 0xdc, - 0xc7, 0xb8, 0xa8, 0xda, 0xf6, 0xe2, 0x44, 0xbd, 0x88, 0xa1, 0x89, 0x2a, 0x0e, 0xc7, 0x8a, 0x82, - 0xae, 0x07, 0x2e, 0x0c, 0xb3, 0x02, 0x50, 0xb8, 0x7c, 0x08, 0xec, 0xf1, 0x04, 0x20, 0x3a, 0x0b, - 0x03, 0xed, 0x98, 0x44, 0xf2, 0x4d, 0x46, 0x29, 0xbf, 0x99, 0x45, 0x90, 0x61, 0xa8, 0x46, 0xb9, - 0xad, 0x8c, 0x71, 0x9a, 0x46, 0xc9, 0xcd, 0x71, 0x1c, 0x67, 0x7f, 0xa5, 0x0c, 0x93, 0x19, 0x07, - 0x50, 0xda, 0x90, 0xbd, 0x30, 0xf0, 0x92, 0x50, 0xe5, 0xe0, 0xe3, 0x29, 0x47, 0x48, 0x6b, 0x67, - 0x5d, 0xc0, 0xb1, 0xa2, 0x40, 0x8f, 0xc9, 0x87, 0x7a, 0xb3, 0x2f, 0x7d, 0x2c, 0xd5, 0x8c, 0xb7, - 0x7a, 0xfb, 0x7d, 0xb2, 0xe7, 0x51, 0x18, 0x68, 0x85, 0xea, 0x15, 0x75, 0x35, 0x9e, 0x78, 0xa9, - 0x56, 0x0f, 0x43, 0x1f, 0x33, 0x24, 0xfa, 0x98, 0xf8, 0xfa, 0xcc, 0x7d, 0x05, 0x76, 0xdc, 0x30, - 0xd6, 0xba, 0xe0, 0x09, 0x18, 0xde, 0x25, 0x07, 0x91, 0x17, 0x6c, 0x67, 0x6f, 0x6b, 0x2e, 0x71, - 0x30, 0x96, 0x78, 0x33, 0xe5, 0xfd, 0xf0, 0x3d, 0x79, 0x75, 0x67, 0xa4, 0xe7, 0xae, 0xf6, 0x1b, - 0x16, 0x4c, 0xb2, 0x7c, 0xb7, 0x22, 0x53, 0x83, 0x17, 0x06, 0x27, 0xa0, 0x27, 0x3c, 0x0a, 0x83, - 0x11, 0xad, 0x34, 0xfb, 0x94, 0x06, 0x6b, 0x09, 0xe6, 0x38, 0xf4, 0x10, 0x0c, 0xb0, 0x26, 0xd0, - 0xc1, 0x1b, 0xe3, 0x19, 0xef, 0x6b, 0x4e, 0xe2, 0x60, 0x06, 0x65, 0x21, 0x73, 0x98, 0xb4, 0x7c, - 0x8f, 0x37, 0x3a, 0x35, 0xb7, 0x7e, 0x38, 0x42, 0xe6, 0x72, 0x9b, 0xf6, 0xfe, 0x42, 0xe6, 0xf2, - 0x59, 0x76, 0xd7, 0xc1, 0xff, 0x7b, 0x09, 0xce, 0xe4, 0x96, 0xeb, 0x3b, 0x64, 0xae, 0x7b, 0xe9, - 0xbb, 0x73, 0xd7, 0x9b, 0x7f, 0x05, 0x5b, 0x3e, 0xc1, 0x2b, 0xd8, 0x81, 0x7e, 0xd5, 0x94, 0xc1, - 0x3e, 0x22, 0xd9, 0x72, 0xbb, 0xec, 0x43, 0x12, 0xc9, 0x96, 0xdb, 0xb6, 0x82, 0x33, 0xc4, 0x8f, - 0x4a, 0x05, 0xdf, 0xc2, 0x4e, 0x13, 0xe7, 0xa8, 0x9c, 0x61, 0xc8, 0x58, 0xa8, 0x5d, 0x63, 0x5c, - 0xc6, 0x70, 0x18, 0x56, 0x58, 0xe4, 0x69, 0x31, 0x61, 0xbc, 0x69, 0x2f, 0x1f, 0x6b, 0xc9, 0xcc, - 0x9b, 0xd6, 0x71, 0x3d, 0xad, 0x44, 0x36, 0x3e, 0x6c, 0x5d, 0x3b, 0x01, 0x96, 0xfb, 0x3f, 0x01, - 0x8e, 0xe5, 0x9f, 0xfe, 0xd0, 0x22, 0x4c, 0xee, 0x79, 0x01, 0x7b, 0x0f, 0xd7, 0xd4, 0x7b, 0x54, - 0x88, 0xf4, 0xba, 0x89, 0xc6, 0x59, 0xfa, 0xd9, 0x97, 0x61, 0xfc, 0xce, 0x4d, 0x56, 0xdf, 0x2b, - 0xc3, 0x83, 0x5d, 0x96, 0x3d, 0x97, 0xf5, 0xc6, 0x18, 0x68, 0xb2, 0xbe, 0x63, 0x1c, 0xea, 0x30, - 0xb3, 0xd5, 0xf6, 0xfd, 0x03, 0xe6, 0xe5, 0x44, 0x5c, 0x49, 0x21, 0x14, 0x13, 0x95, 0xcc, 0x7a, - 0x35, 0x87, 0x06, 0xe7, 0x96, 0x44, 0xaf, 0x01, 0x0a, 0x37, 0x59, 0x82, 0x65, 0x37, 0x4d, 0x96, - 0xc1, 0x3a, 0xbe, 0x9c, 0x2e, 0xc6, 0xab, 0x1d, 0x14, 0x38, 0xa7, 0x14, 0xd5, 0x30, 0xd9, 0x0b, - 0xfe, 0xaa, 0x59, 0x19, 0x0d, 0x13, 0xeb, 0x48, 0x6c, 0xd2, 0xa2, 0x0b, 0x30, 0xed, 0xec, 0x3b, - 0x1e, 0x4f, 0x9e, 0x26, 0x19, 0x70, 0x15, 0x53, 0x19, 0x8a, 0x16, 0xb3, 0x04, 0xb8, 0xb3, 0x4c, - 0x26, 0xb8, 0x6d, 0xa8, 0x38, 0xb8, 0xad, 0xbb, 0x5c, 0xec, 0x65, 0xf7, 0xb3, 0xff, 0xa3, 0x45, - 0xb7, 0xaf, 0x9c, 0x07, 0x58, 0x69, 0x3f, 0x28, 0xfb, 0x95, 0x16, 0x67, 0xa6, 0xfa, 0x61, 0x59, - 0x47, 0x62, 0x93, 0x96, 0x4f, 0x88, 0x38, 0x75, 0xb2, 0x36, 0xf4, 0x44, 0x11, 0x00, 0xaa, 0x28, - 0xd0, 0x1b, 0x30, 0xec, 0x7a, 0xfb, 0x5e, 0x1c, 0x46, 0x62, 0xb1, 0x1c, 0xf7, 0xd1, 0x71, 0x25, - 0x07, 0x6b, 0x9c, 0x0d, 0x96, 0xfc, 0xec, 0xaf, 0x94, 0x60, 0x5c, 0xd6, 0xf8, 0x7a, 0x3b, 0x4c, - 0x9c, 0x13, 0xd8, 0x96, 0x2f, 0x18, 0xdb, 0xf2, 0xc7, 0xba, 0x45, 0xc1, 0xb2, 0x26, 0x15, 0x6e, - 0xc7, 0x57, 0x33, 0xdb, 0xf1, 0xe3, 0xbd, 0x59, 0x75, 0xdf, 0x86, 0xff, 0xb9, 0x05, 0xd3, 0x06, - 0xfd, 0x09, 0xec, 0x06, 0xab, 0xe6, 0x6e, 0xf0, 0x48, 0xcf, 0x6f, 0x28, 0xd8, 0x05, 0xbe, 0x51, - 0xca, 0xb4, 0x9d, 0x49, 0xff, 0x77, 0x61, 0x60, 0xc7, 0x89, 0xdc, 0x6e, 0x29, 0x40, 0x3b, 0x0a, - 0xcd, 0x5f, 0x74, 0x22, 0x97, 0xcb, 0xf0, 0xa7, 0xd5, 0xdb, 0x70, 0x4e, 0xe4, 0xf6, 0x8c, 0x29, - 0x60, 0x55, 0xa1, 0x97, 0x60, 0x28, 0x6e, 0x86, 0x2d, 0xe5, 0x7b, 0x79, 0x96, 0xbf, 0x1b, 0x47, - 0x21, 0x47, 0x87, 0x73, 0xc8, 0xac, 0x8e, 0x82, 0xb1, 0xa0, 0x9f, 0xdd, 0x86, 0x8a, 0xaa, 0xfa, - 0x9e, 0x7a, 0x95, 0xff, 0x41, 0x19, 0x4e, 0xe5, 0xcc, 0x0b, 0x14, 0x1b, 0xbd, 0xf5, 0x6c, 0x9f, - 0xd3, 0xe9, 0x7d, 0xf6, 0x57, 0xcc, 0x4e, 0x2c, 0xae, 0x18, 0xff, 0xbe, 0x2b, 0xbd, 0x16, 0x93, - 0x6c, 0xa5, 0x14, 0xd4, 0xbb, 0x52, 0x5a, 0xd9, 0x89, 0x75, 0x35, 0xad, 0x48, 0xb5, 0xf4, 0x9e, - 0x8e, 0xe9, 0x9f, 0x94, 0x61, 0x26, 0x2f, 0x78, 0x1e, 0xfd, 0x4c, 0xe6, 0x41, 0x91, 0xe7, 0xfb, - 0x0d, 0xbb, 0xe7, 0xaf, 0x8c, 0x88, 0x6c, 0x43, 0xf3, 0xe6, 0x13, 0x23, 0x3d, 0xbb, 0x59, 0xd4, - 0xc9, 0x82, 0x7c, 0x22, 0xfe, 0x10, 0x8c, 0x5c, 0xe2, 0x9f, 0xe8, 0xbb, 0x01, 0xe2, 0x05, 0x99, - 0x38, 0x13, 0xe4, 0x23, 0xc1, 0xbd, 0x83, 0x7c, 0x64, 0xcd, 0xb3, 0x1e, 0x8c, 0x6a, 0x5f, 0x73, - 0x4f, 0x47, 0x7c, 0x97, 0xee, 0x28, 0x5a, 0xbb, 0xef, 0xe9, 0xa8, 0x7f, 0xcd, 0x82, 0x8c, 0x9f, - 0x94, 0xb2, 0x7f, 0x58, 0x85, 0xf6, 0x8f, 0xb3, 0x30, 0x10, 0x85, 0x3e, 0xc9, 0xbe, 0x31, 0x81, - 0x43, 0x9f, 0x60, 0x86, 0x51, 0x0f, 0x41, 0x97, 0x8b, 0x1e, 0x82, 0xa6, 0x47, 0x63, 0x9f, 0xec, - 0x13, 0x69, 0x8d, 0x50, 0x32, 0xf9, 0x32, 0x05, 0x62, 0x8e, 0xb3, 0x7f, 0x6d, 0x00, 0x4e, 0xe5, - 0x84, 0xb4, 0xd1, 0x83, 0xca, 0xb6, 0x93, 0x90, 0x9b, 0xce, 0x41, 0x36, 0xef, 0xed, 0x05, 0x0e, - 0xc6, 0x12, 0xcf, 0x7c, 0x39, 0x79, 0xea, 0xbc, 0x8c, 0x8d, 0x48, 0x64, 0xcc, 0x13, 0xd8, 0x7b, - 0xf5, 0x36, 0xf0, 0x79, 0x80, 0x38, 0xf6, 0x57, 0x02, 0xaa, 0x7c, 0xb9, 0xc2, 0x53, 0x34, 0xcd, - 0xb3, 0xd8, 0xb8, 0x2c, 0x30, 0x58, 0xa3, 0x42, 0x35, 0x98, 0x6a, 0x45, 0x61, 0xc2, 0xed, 0x6e, - 0x35, 0xee, 0xa3, 0x30, 0x68, 0x06, 0x27, 0xd5, 0x33, 0x78, 0xdc, 0x51, 0x02, 0xbd, 0x00, 0xa3, - 0x22, 0x60, 0xa9, 0x1e, 0x86, 0xbe, 0xb0, 0xd2, 0xa8, 0x1b, 0xef, 0x46, 0x8a, 0xc2, 0x3a, 0x9d, - 0x56, 0x8c, 0x19, 0xf3, 0x86, 0x73, 0x8b, 0x71, 0x83, 0x9e, 0x46, 0x97, 0xc9, 0xa1, 0x31, 0xd2, - 0x57, 0x0e, 0x8d, 0xd4, 0x6e, 0x55, 0xe9, 0xfb, 0xfe, 0x02, 0x7a, 0x5a, 0x7a, 0xbe, 0x55, 0x86, - 0x21, 0x3e, 0x14, 0x27, 0xa0, 0x8a, 0xad, 0x0a, 0xdb, 0x4d, 0x97, 0x8c, 0x02, 0xbc, 0x2d, 0xf3, - 0x35, 0x27, 0x71, 0xb8, 0x18, 0x52, 0xab, 0x21, 0xb5, 0xf2, 0xa0, 0x79, 0x63, 0xbd, 0xcc, 0x66, - 0x8c, 0x13, 0xc0, 0x79, 0x68, 0xab, 0xe7, 0x6d, 0x80, 0x98, 0xbd, 0x4f, 0x4b, 0x79, 0x88, 0xdc, - 0x14, 0x4f, 0x76, 0xa9, 0xbd, 0xa1, 0x88, 0x79, 0x1b, 0xd2, 0x29, 0xa8, 0x10, 0x58, 0xe3, 0x38, - 0xfb, 0x22, 0x54, 0x14, 0x71, 0xaf, 0x93, 0xdc, 0x98, 0x2e, 0xbc, 0x3e, 0x05, 0x93, 0x99, 0xba, - 0x8e, 0x75, 0x10, 0xfc, 0x4d, 0x0b, 0x26, 0x79, 0x93, 0x57, 0x82, 0x7d, 0xb1, 0xd8, 0xdf, 0x83, - 0x19, 0x3f, 0x67, 0xd1, 0x89, 0x11, 0xed, 0x7f, 0x91, 0xaa, 0x83, 0x5f, 0x1e, 0x16, 0xe7, 0xd6, - 0x41, 0x0f, 0xff, 0xfc, 0x65, 0x6d, 0xc7, 0x17, 0x1e, 0xc8, 0x63, 0x3c, 0xb7, 0x38, 0x87, 0x61, - 0x85, 0xb5, 0xbf, 0x6f, 0xc1, 0x34, 0x6f, 0xf9, 0x25, 0x72, 0xa0, 0x0e, 0x39, 0x1f, 0x64, 0xdb, - 0x45, 0xea, 0xf4, 0x52, 0x41, 0xea, 0x74, 0xfd, 0xd3, 0xca, 0x5d, 0x3f, 0xed, 0x57, 0x2d, 0x10, - 0x33, 0xf0, 0x04, 0xd4, 0xf9, 0x4f, 0x9b, 0xea, 0xfc, 0x6c, 0xf1, 0xa4, 0x2e, 0xd0, 0xe3, 0xff, - 0xcc, 0x82, 0x29, 0x4e, 0x90, 0x5e, 0x5e, 0x7c, 0xa0, 0xe3, 0xd0, 0xcf, 0x7b, 0x3e, 0xea, 0x01, - 0xd5, 0xfc, 0x8f, 0x32, 0x06, 0x6b, 0xa0, 0xeb, 0x60, 0xb9, 0x72, 0x01, 0x1d, 0xe3, 0x9d, 0xaa, - 0x63, 0x67, 0xfb, 0xb3, 0xff, 0xd8, 0x02, 0xc4, 0xab, 0xc9, 0x3e, 0x69, 0xce, 0xb7, 0x3e, 0xed, - 0x40, 0x9f, 0x8a, 0x1a, 0x85, 0xc1, 0x1a, 0xd5, 0x5d, 0xe9, 0x9e, 0xcc, 0x0d, 0x54, 0xb9, 0xf7, - 0x0d, 0xd4, 0x31, 0x7a, 0xf4, 0xaf, 0x0e, 0x40, 0xd6, 0xdd, 0x11, 0x5d, 0x87, 0xb1, 0xa6, 0xd3, - 0x72, 0x36, 0x3d, 0xdf, 0x4b, 0x3c, 0x12, 0x77, 0xbb, 0xba, 0x5e, 0xd6, 0xe8, 0xc4, 0x75, 0x8f, - 0x06, 0xc1, 0x06, 0x1f, 0x34, 0x0f, 0xd0, 0x8a, 0xbc, 0x7d, 0xcf, 0x27, 0xdb, 0xec, 0x44, 0xc3, - 0x62, 0x1e, 0xf8, 0x7d, 0xac, 0x84, 0x62, 0x8d, 0x22, 0xc7, 0x47, 0xbe, 0x7c, 0xef, 0x7c, 0xe4, - 0x07, 0x8e, 0xe9, 0x23, 0x3f, 0xd8, 0x97, 0x8f, 0x3c, 0x86, 0xfb, 0xe4, 0xde, 0x4d, 0xff, 0xaf, - 0x7a, 0x3e, 0x11, 0x0a, 0x1b, 0x8f, 0x84, 0x98, 0xbd, 0x7d, 0x38, 0x77, 0x1f, 0xce, 0xa5, 0xc0, - 0x05, 0x25, 0xd1, 0x67, 0xa1, 0xea, 0xf8, 0x7e, 0x78, 0x53, 0xf5, 0xda, 0x4a, 0xdc, 0x74, 0xfc, - 0x34, 0xf9, 0xed, 0xc8, 0xd2, 0x43, 0xb7, 0x0f, 0xe7, 0xaa, 0x8b, 0x05, 0x34, 0xb8, 0xb0, 0xb4, - 0xbd, 0x0b, 0xa7, 0x1a, 0x24, 0x92, 0x4f, 0xdf, 0xa9, 0x25, 0xb6, 0x01, 0x95, 0x28, 0x23, 0x54, - 0xfa, 0x0a, 0x97, 0xd7, 0x12, 0x93, 0x49, 0x21, 0x92, 0x32, 0xb2, 0xff, 0xd4, 0x82, 0x61, 0xe1, - 0x42, 0x79, 0x02, 0xba, 0xcc, 0xa2, 0x61, 0x56, 0x9a, 0xcb, 0x17, 0xbc, 0xac, 0x31, 0x85, 0x06, - 0xa5, 0xb5, 0x8c, 0x41, 0xe9, 0x91, 0x6e, 0x4c, 0xba, 0x9b, 0x92, 0x7e, 0xa1, 0x0c, 0x13, 0xa6, - 0xfb, 0xe8, 0x09, 0x74, 0xc1, 0x15, 0x18, 0x8e, 0x85, 0xaf, 0x72, 0xa9, 0xd8, 0xe7, 0x2d, 0x3b, - 0x88, 0xe9, 0xcd, 0xb8, 0xf0, 0x4e, 0x96, 0x4c, 0x72, 0x9d, 0xa0, 0xcb, 0xf7, 0xd0, 0x09, 0xba, - 0x97, 0x07, 0xef, 0xc0, 0xdd, 0xf0, 0xe0, 0xb5, 0xbf, 0xcd, 0x84, 0xbf, 0x0e, 0x3f, 0x01, 0xbd, - 0xe0, 0x82, 0xb9, 0x4d, 0xd8, 0x5d, 0x66, 0x96, 0x68, 0x54, 0x81, 0x7e, 0xf0, 0x8f, 0x2c, 0x18, - 0x15, 0x84, 0x27, 0xd0, 0xec, 0xcf, 0x98, 0xcd, 0x7e, 0xb0, 0x4b, 0xb3, 0x0b, 0xda, 0xfb, 0xb7, - 0x4b, 0xaa, 0xbd, 0xf5, 0x30, 0x4a, 0xfa, 0x4a, 0x86, 0x3e, 0x42, 0x4f, 0x83, 0x61, 0x33, 0xf4, - 0xc5, 0x66, 0xfe, 0x50, 0x1a, 0x0c, 0xc7, 0xe1, 0x47, 0xda, 0x6f, 0xac, 0xa8, 0x59, 0xac, 0x56, - 0x18, 0x25, 0x62, 0x03, 0x4d, 0x63, 0xb5, 0xc2, 0x28, 0xc1, 0x0c, 0x83, 0x5c, 0x80, 0xc4, 0x89, - 0xb6, 0x49, 0x42, 0x61, 0x22, 0x7a, 0xb4, 0x78, 0x15, 0xb6, 0x13, 0xcf, 0x9f, 0xf7, 0x82, 0x24, - 0x4e, 0xa2, 0xf9, 0xb5, 0x20, 0xb9, 0x1a, 0xf1, 0xb3, 0x81, 0x16, 0xdd, 0xa6, 0x78, 0x61, 0x8d, - 0xaf, 0x0c, 0xaf, 0x60, 0x75, 0x0c, 0x9a, 0xf7, 0x3d, 0x57, 0x04, 0x1c, 0x2b, 0x0a, 0xfb, 0x45, - 0x26, 0x93, 0x59, 0x07, 0x1d, 0x2f, 0xf0, 0xec, 0xbb, 0x23, 0xaa, 0x6b, 0x99, 0xb1, 0xb7, 0xa6, - 0x87, 0xb7, 0x75, 0x17, 0x81, 0xb4, 0x62, 0xdd, 0x95, 0x38, 0x8d, 0x81, 0x43, 0x9f, 0xeb, 0xb8, - 0x06, 0x7c, 0xa6, 0x87, 0x2c, 0x3d, 0xc6, 0xc5, 0x1f, 0xcb, 0xcc, 0xc7, 0x32, 0x98, 0xad, 0xd5, - 0xb3, 0xe9, 0xea, 0x97, 0x25, 0x02, 0xa7, 0x34, 0x68, 0x41, 0x9c, 0x2c, 0xb9, 0x99, 0xe5, 0xc1, - 0xcc, 0xc9, 0x52, 0x7e, 0xbe, 0x76, 0xb4, 0x7c, 0x16, 0x46, 0xd5, 0x13, 0x40, 0x75, 0xfe, 0x92, - 0x4a, 0x85, 0xeb, 0x52, 0x2b, 0x29, 0x18, 0xeb, 0x34, 0x68, 0x03, 0x26, 0x63, 0xfe, 0x3e, 0x91, - 0x8c, 0x78, 0x10, 0x76, 0x83, 0x27, 0xe5, 0xf5, 0x61, 0xc3, 0x44, 0x1f, 0x31, 0x10, 0x5f, 0xac, - 0x32, 0x46, 0x22, 0xcb, 0x02, 0xbd, 0x0a, 0x13, 0xbe, 0xfe, 0x4e, 0x6b, 0x5d, 0x98, 0x15, 0x94, - 0x2b, 0x97, 0xf1, 0x8a, 0x6b, 0x1d, 0x67, 0xa8, 0xa9, 0x12, 0xa0, 0x43, 0x44, 0x02, 0x1d, 0x27, - 0xd8, 0x26, 0xb1, 0x78, 0xc0, 0x84, 0x29, 0x01, 0x97, 0x0b, 0x68, 0x70, 0x61, 0x69, 0xf4, 0x12, - 0x8c, 0xc9, 0xcf, 0xd7, 0x22, 0x80, 0x52, 0x87, 0x41, 0x0d, 0x87, 0x0d, 0x4a, 0x74, 0x13, 0x4e, - 0xcb, 0xff, 0x1b, 0x91, 0xb3, 0xb5, 0xe5, 0x35, 0x45, 0x00, 0xd6, 0x28, 0x63, 0xb1, 0x28, 0xbd, - 0xa7, 0x57, 0xf2, 0x88, 0x8e, 0x0e, 0xe7, 0xce, 0x8a, 0x5e, 0xcb, 0xc5, 0xb3, 0x41, 0xcc, 0xe7, - 0x8f, 0xd6, 0xe1, 0xd4, 0x0e, 0x71, 0xfc, 0x64, 0x67, 0x79, 0x87, 0x34, 0x77, 0xe5, 0x22, 0x62, - 0x71, 0x45, 0x9a, 0x9b, 0xdd, 0xc5, 0x4e, 0x12, 0x9c, 0x57, 0x0e, 0xbd, 0x05, 0xd5, 0x56, 0x7b, - 0xd3, 0xf7, 0xe2, 0x9d, 0x2b, 0x61, 0xc2, 0x6e, 0x2c, 0xd5, 0x0b, 0x3a, 0x22, 0x00, 0x49, 0xc5, - 0x54, 0xd5, 0x0b, 0xe8, 0x70, 0x21, 0x07, 0xf4, 0x1e, 0x9c, 0xce, 0x4c, 0x06, 0xfe, 0x28, 0x93, - 0x08, 0x54, 0x7a, 0x22, 0x7f, 0x39, 0xe5, 0x14, 0xe0, 0x61, 0x71, 0xb9, 0x28, 0x9c, 0x5f, 0xc5, - 0xfb, 0xbb, 0xc7, 0x7e, 0x97, 0x16, 0xd6, 0xb4, 0x1b, 0xf4, 0x79, 0x18, 0xd3, 0x67, 0x91, 0xd8, - 0x60, 0x1e, 0xeb, 0xf5, 0x26, 0xb1, 0xd0, 0x8d, 0xd4, 0x8c, 0xd2, 0x71, 0xd8, 0xe0, 0x68, 0x13, - 0xc8, 0xff, 0x3e, 0x74, 0x19, 0x46, 0x9a, 0xbe, 0x47, 0x82, 0x64, 0xad, 0xde, 0x2d, 0x70, 0x76, - 0x59, 0xd0, 0x88, 0x0e, 0x13, 0xf9, 0x9b, 0x38, 0x0c, 0x2b, 0x0e, 0xf6, 0xef, 0x94, 0x60, 0xae, - 0x47, 0x0a, 0xaf, 0x8c, 0x0d, 0xd0, 0xea, 0xcb, 0x06, 0xb8, 0x28, 0xdf, 0x03, 0xba, 0x92, 0x39, - 0x7f, 0x66, 0xde, 0xfa, 0x49, 0x4f, 0xa1, 0x59, 0xfa, 0xbe, 0xdd, 0xdf, 0x74, 0x33, 0xe2, 0x40, - 0x4f, 0x2f, 0xc0, 0xba, 0x6e, 0x0f, 0x1e, 0xec, 0x5f, 0xa3, 0x2f, 0x34, 0x05, 0xdb, 0xdf, 0x2e, - 0xc1, 0x69, 0xd5, 0x85, 0x3f, 0xb9, 0x1d, 0x77, 0xad, 0xb3, 0xe3, 0xee, 0x82, 0x21, 0xdd, 0xbe, - 0x0a, 0x43, 0x8d, 0x83, 0xb8, 0x99, 0xf8, 0x7d, 0x28, 0x40, 0x8f, 0x1a, 0x0b, 0x34, 0xdd, 0xa6, - 0xd9, 0x93, 0x7e, 0x62, 0xbd, 0xda, 0x7f, 0xc9, 0x82, 0xc9, 0x8d, 0xe5, 0x7a, 0x23, 0x6c, 0xee, - 0x92, 0x64, 0x91, 0x9b, 0x89, 0xb0, 0xd0, 0x7f, 0xac, 0x3b, 0xd4, 0x6b, 0xf2, 0x34, 0xa6, 0xb3, - 0x30, 0xb0, 0x13, 0xc6, 0x49, 0xf6, 0xb2, 0xe4, 0x62, 0x18, 0x27, 0x98, 0x61, 0xec, 0x3f, 0xb4, - 0x60, 0x90, 0xbd, 0x62, 0xd7, 0xeb, 0xb5, 0xc3, 0x7e, 0xbe, 0x0b, 0xbd, 0x00, 0x43, 0x64, 0x6b, - 0x8b, 0x34, 0x13, 0x31, 0xaa, 0x32, 0x22, 0x67, 0x68, 0x85, 0x41, 0xe9, 0xa6, 0xcf, 0x2a, 0xe3, - 0x7f, 0xb1, 0x20, 0x46, 0x37, 0xa0, 0x92, 0x78, 0x7b, 0x64, 0xd1, 0x75, 0xc5, 0x3d, 0xc5, 0x1d, - 0x04, 0x40, 0x6d, 0x48, 0x06, 0x38, 0xe5, 0x65, 0xff, 0x7c, 0x09, 0x20, 0x8d, 0xda, 0xeb, 0xf5, - 0x89, 0x4b, 0x1d, 0x0f, 0x3a, 0x3e, 0x96, 0xf3, 0xa0, 0x23, 0x4a, 0x19, 0xe6, 0x3c, 0xe7, 0xa8, - 0xba, 0xa9, 0xdc, 0x57, 0x37, 0x0d, 0x1c, 0xa7, 0x9b, 0x96, 0x61, 0x3a, 0x8d, 0x3a, 0x34, 0x43, - 0xb0, 0x59, 0xaa, 0xde, 0x8d, 0x2c, 0x12, 0x77, 0xd2, 0xdb, 0x5f, 0xb6, 0x40, 0xb8, 0x28, 0xf7, - 0x31, 0x99, 0xdf, 0x94, 0x6f, 0xaf, 0x19, 0x39, 0x05, 0xcf, 0x16, 0xfb, 0x6c, 0x8b, 0x4c, 0x82, - 0x6a, 0xf3, 0x30, 0xf2, 0x07, 0x1a, 0xbc, 0xec, 0xbf, 0x5e, 0x82, 0x51, 0x8e, 0x66, 0xf9, 0xea, - 0xfa, 0x68, 0xcd, 0xb1, 0x12, 0x3d, 0xb3, 0x67, 0xc9, 0x28, 0x63, 0x95, 0x0f, 0x58, 0x7f, 0x96, - 0x4c, 0x22, 0x70, 0x4a, 0x83, 0x9e, 0x80, 0xe1, 0xb8, 0xbd, 0xc9, 0xc8, 0x33, 0x5e, 0xca, 0x0d, - 0x0e, 0xc6, 0x12, 0x8f, 0x3e, 0x0b, 0x53, 0xbc, 0x5c, 0x14, 0xb6, 0x9c, 0x6d, 0x6e, 0xdb, 0x19, - 0x54, 0x31, 0x2a, 0x53, 0xeb, 0x19, 0xdc, 0xd1, 0xe1, 0xdc, 0x4c, 0x16, 0xc6, 0xac, 0x82, 0x1d, - 0x5c, 0xe8, 0x8c, 0x9d, 0xca, 0xba, 0xbf, 0xa3, 0x8b, 0x30, 0xc4, 0x85, 0x91, 0x10, 0x0e, 0x5d, - 0xee, 0x7a, 0x34, 0xa7, 0x79, 0xe0, 0x2f, 0xf4, 0x33, 0x21, 0x26, 0xca, 0xa3, 0xb7, 0x60, 0xd4, - 0x0d, 0x6f, 0x06, 0x37, 0x9d, 0xc8, 0x5d, 0xac, 0xaf, 0x89, 0xf1, 0xcc, 0xd5, 0x69, 0x6a, 0x29, - 0x99, 0xee, 0x88, 0xcf, 0xec, 0x9a, 0x29, 0x0a, 0xeb, 0xec, 0xd0, 0x06, 0x4b, 0xb1, 0xc2, 0xdf, - 0x0d, 0xee, 0xe6, 0xd6, 0xa3, 0x9e, 0x1a, 0xd6, 0x38, 0x8f, 0x8b, 0x3c, 0x2c, 0xe2, 0xd5, 0xe1, - 0x94, 0x91, 0xfd, 0xc5, 0x53, 0x60, 0xcc, 0x23, 0x23, 0xd1, 0xb3, 0x75, 0x97, 0x12, 0x3d, 0x63, - 0x18, 0x21, 0x7b, 0xad, 0xe4, 0xa0, 0xe6, 0x45, 0xdd, 0x32, 0xfc, 0xaf, 0x08, 0x9a, 0x4e, 0x9e, - 0x12, 0x83, 0x15, 0x9f, 0xfc, 0x6c, 0xdc, 0xe5, 0x0f, 0x30, 0x1b, 0xf7, 0xc0, 0x09, 0x66, 0xe3, - 0xbe, 0x02, 0xc3, 0xdb, 0x5e, 0x82, 0x49, 0x2b, 0x14, 0x1b, 0x71, 0xee, 0x4c, 0xb8, 0xc0, 0x49, - 0x3a, 0x73, 0xc6, 0x0a, 0x04, 0x96, 0x4c, 0xd0, 0x6b, 0x6a, 0x0d, 0x0c, 0x15, 0xeb, 0xb1, 0x9d, - 0xd7, 0x02, 0xb9, 0xab, 0x40, 0x64, 0xdf, 0x1e, 0xbe, 0xd3, 0xec, 0xdb, 0x2a, 0x7b, 0xf6, 0xc8, - 0xfb, 0xcb, 0x9e, 0x6d, 0x64, 0x17, 0xaf, 0xdc, 0xbd, 0xec, 0xe2, 0x5f, 0xb6, 0xe0, 0x74, 0x2b, - 0x2f, 0xd1, 0xbe, 0xc8, 0x83, 0xfd, 0x42, 0xdf, 0x2f, 0x09, 0x18, 0x15, 0xb2, 0x03, 0x4d, 0x2e, - 0x19, 0xce, 0xaf, 0x4e, 0xa6, 0x29, 0x1f, 0xbd, 0xd3, 0x34, 0xe5, 0xf7, 0x26, 0x61, 0x76, 0x9a, - 0xb4, 0x7c, 0xfc, 0x7d, 0x27, 0x2d, 0x7f, 0x4d, 0x25, 0x2d, 0xef, 0x92, 0xc8, 0x82, 0xa7, 0x24, - 0xef, 0x99, 0xaa, 0x5c, 0x4b, 0x37, 0x3e, 0x79, 0x37, 0xd2, 0x8d, 0xbf, 0x6d, 0x0a, 0x7b, 0x9e, - 0xfb, 0xfa, 0xa9, 0x1e, 0xc2, 0xde, 0xe0, 0xdb, 0x5d, 0xdc, 0xf3, 0xd4, 0xea, 0xd3, 0x77, 0x94, - 0x5a, 0xfd, 0xba, 0x9e, 0xb4, 0x1c, 0xf5, 0xc8, 0xca, 0x4d, 0x89, 0xfa, 0x4c, 0x55, 0x7e, 0x5d, - 0xdf, 0x82, 0x4e, 0x15, 0xf3, 0x55, 0x3b, 0x4d, 0x27, 0xdf, 0xbc, 0x4d, 0xa8, 0x33, 0x05, 0xfa, - 0xcc, 0xc9, 0xa4, 0x40, 0x3f, 0x7d, 0xd7, 0x53, 0xa0, 0xdf, 0x77, 0x02, 0x29, 0xd0, 0xef, 0xff, - 0x40, 0x53, 0xa0, 0x57, 0xef, 0x6d, 0x0a, 0xf4, 0x07, 0xee, 0x46, 0x0a, 0xf4, 0xeb, 0x50, 0x69, - 0xc9, 0x08, 0xc9, 0xea, 0x6c, 0xf1, 0x90, 0xe4, 0x86, 0x51, 0xf2, 0x21, 0x51, 0x28, 0x9c, 0xb2, - 0xa2, 0x7c, 0xd3, 0x94, 0xe8, 0x0f, 0x76, 0x31, 0x59, 0xe5, 0x19, 0x03, 0xba, 0x24, 0x42, 0xff, - 0xcb, 0x25, 0x38, 0xd3, 0x7d, 0x5e, 0xa7, 0x96, 0x84, 0x7a, 0x6a, 0xf9, 0xce, 0x58, 0x12, 0x98, - 0xd2, 0xa5, 0x51, 0xf5, 0x1d, 0x46, 0x7e, 0x01, 0xa6, 0x95, 0xa3, 0x98, 0xef, 0x35, 0x0f, 0xb4, - 0xd7, 0x92, 0x54, 0xec, 0x41, 0x23, 0x4b, 0x80, 0x3b, 0xcb, 0xa0, 0x45, 0x98, 0x34, 0x80, 0x6b, - 0x35, 0xa1, 0xec, 0x2b, 0xd3, 0x45, 0xc3, 0x44, 0xe3, 0x2c, 0xbd, 0xfd, 0x0d, 0x0b, 0xee, 0x2f, - 0xc8, 0x8b, 0xda, 0x77, 0x94, 0xf4, 0x16, 0x4c, 0xb6, 0xcc, 0xa2, 0x3d, 0x92, 0x29, 0x18, 0xd9, - 0x57, 0x55, 0x5b, 0x33, 0x08, 0x9c, 0x65, 0xba, 0x74, 0xee, 0x3b, 0x3f, 0x38, 0xf3, 0x91, 0xdf, - 0xff, 0xc1, 0x99, 0x8f, 0x7c, 0xff, 0x07, 0x67, 0x3e, 0xf2, 0xff, 0xdf, 0x3e, 0x63, 0x7d, 0xe7, - 0xf6, 0x19, 0xeb, 0xf7, 0x6f, 0x9f, 0xb1, 0xbe, 0x7f, 0xfb, 0x8c, 0xf5, 0x47, 0xb7, 0xcf, 0x58, - 0x3f, 0xff, 0xc3, 0x33, 0x1f, 0x79, 0xb3, 0xb4, 0xff, 0xec, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, - 0x4f, 0x1e, 0xcd, 0x7b, 0x5c, 0xd1, 0x00, 0x00, + // 11903 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6b, 0x70, 0x24, 0xc7, + 0x79, 0x98, 0x66, 0x17, 0xaf, 0xfd, 0xf0, 0xee, 0xc3, 0x91, 0x7b, 0x20, 0xef, 0x70, 0x1c, 0x4a, + 0xe4, 0xf1, 0x05, 0x88, 0x47, 0x52, 0xa4, 0x45, 0x8a, 0x36, 0x80, 0x05, 0xee, 0xc0, 0x3b, 0xdc, + 0x2d, 0x7b, 0x71, 0x77, 0x22, 0x4d, 0x33, 0x1a, 0xec, 0x36, 0x16, 0x43, 0x0c, 0x66, 0x96, 0x33, + 0xb3, 0xb8, 0x03, 0xcb, 0xaa, 0x4a, 0x14, 0x59, 0x79, 0xc8, 0x3f, 0x54, 0x89, 0x2a, 0x71, 0x2c, + 0x95, 0x53, 0x95, 0x47, 0xd9, 0x8a, 0x93, 0x54, 0x1c, 0x39, 0xb2, 0x23, 0x39, 0x15, 0xc7, 0x79, + 0x94, 0xfc, 0x47, 0xb1, 0xf3, 0x47, 0xaa, 0x72, 0x05, 0xb1, 0x4e, 0xa9, 0xa4, 0xf2, 0x23, 0xa9, + 0x24, 0xfe, 0x65, 0xc4, 0x89, 0x52, 0xfd, 0x9c, 0xee, 0xd9, 0x99, 0xdd, 0xc5, 0x11, 0x07, 0x52, + 0x2a, 0xfd, 0xdb, 0xed, 0xef, 0xeb, 0xaf, 0x7b, 0xfa, 0xf1, 0xf5, 0xd7, 0x5f, 0x7f, 0x0f, 0x78, + 0x79, 0xe7, 0xa5, 0x68, 0xde, 0x0d, 0x16, 0x76, 0xda, 0x9b, 0x24, 0xf4, 0x49, 0x4c, 0xa2, 0x85, + 0x3d, 0xe2, 0x37, 0x82, 0x70, 0x41, 0x00, 0x9c, 0x96, 0xbb, 0x50, 0x0f, 0x42, 0xb2, 0xb0, 0xf7, + 0xec, 0x42, 0x93, 0xf8, 0x24, 0x74, 0x62, 0xd2, 0x98, 0x6f, 0x85, 0x41, 0x1c, 0x20, 0xc4, 0x71, + 0xe6, 0x9d, 0x96, 0x3b, 0x4f, 0x71, 0xe6, 0xf7, 0x9e, 0x9d, 0x7d, 0xa6, 0xe9, 0xc6, 0xdb, 0xed, + 0xcd, 0xf9, 0x7a, 0xb0, 0xbb, 0xd0, 0x0c, 0x9a, 0xc1, 0x02, 0x43, 0xdd, 0x6c, 0x6f, 0xb1, 0x7f, + 0xec, 0x0f, 0xfb, 0xc5, 0x49, 0xcc, 0xae, 0x27, 0xcd, 0x90, 0x3b, 0x31, 0xf1, 0x23, 0x37, 0xf0, + 0xa3, 0x67, 0x9c, 0x96, 0x1b, 0x91, 0x70, 0x8f, 0x84, 0x0b, 0xad, 0x9d, 0x26, 0x85, 0x45, 0x26, + 0xc2, 0xc2, 0xde, 0xb3, 0x9b, 0x24, 0x76, 0x3a, 0x7a, 0x34, 0xfb, 0x7c, 0x42, 0x6e, 0xd7, 0xa9, + 0x6f, 0xbb, 0x3e, 0x09, 0xf7, 0x25, 0x8d, 0x85, 0x90, 0x44, 0x41, 0x3b, 0xac, 0x93, 0x23, 0xd5, + 0x8a, 0x16, 0x76, 0x49, 0xec, 0x64, 0x7c, 0xfd, 0xec, 0x42, 0x5e, 0xad, 0xb0, 0xed, 0xc7, 0xee, + 0x6e, 0x67, 0x33, 0x9f, 0xe8, 0x55, 0x21, 0xaa, 0x6f, 0x93, 0x5d, 0xa7, 0xa3, 0xde, 0x73, 0x79, + 0xf5, 0xda, 0xb1, 0xeb, 0x2d, 0xb8, 0x7e, 0x1c, 0xc5, 0x61, 0xba, 0x92, 0xfd, 0x5d, 0x0b, 0xce, + 0x2f, 0xde, 0xaa, 0xad, 0x78, 0x4e, 0x14, 0xbb, 0xf5, 0x25, 0x2f, 0xa8, 0xef, 0xd4, 0xe2, 0x20, + 0x24, 0x37, 0x03, 0xaf, 0xbd, 0x4b, 0x6a, 0x6c, 0x20, 0xd0, 0xd3, 0x30, 0xb2, 0xc7, 0xfe, 0xaf, + 0x55, 0xca, 0xd6, 0x79, 0xeb, 0x42, 0x69, 0x69, 0xea, 0xdb, 0x07, 0x73, 0x1f, 0xb9, 0x7b, 0x30, + 0x37, 0x72, 0x53, 0x94, 0x63, 0x85, 0x81, 0x1e, 0x83, 0xa1, 0xad, 0x68, 0x63, 0xbf, 0x45, 0xca, + 0x05, 0x86, 0x3b, 0x21, 0x70, 0x87, 0x56, 0x6b, 0xb4, 0x14, 0x0b, 0x28, 0x5a, 0x80, 0x52, 0xcb, + 0x09, 0x63, 0x37, 0x76, 0x03, 0xbf, 0x5c, 0x3c, 0x6f, 0x5d, 0x18, 0x5c, 0x9a, 0x16, 0xa8, 0xa5, + 0xaa, 0x04, 0xe0, 0x04, 0x87, 0x76, 0x23, 0x24, 0x4e, 0xe3, 0xba, 0xef, 0xed, 0x97, 0x07, 0xce, + 0x5b, 0x17, 0x46, 0x92, 0x6e, 0x60, 0x51, 0x8e, 0x15, 0x86, 0xfd, 0xcb, 0x05, 0x18, 0x59, 0xdc, + 0xda, 0x72, 0x7d, 0x37, 0xde, 0x47, 0x37, 0x61, 0xcc, 0x0f, 0x1a, 0x44, 0xfe, 0x67, 0x5f, 0x31, + 0x7a, 0xf1, 0xfc, 0x7c, 0xe7, 0xca, 0x9c, 0xbf, 0xa6, 0xe1, 0x2d, 0x4d, 0xdd, 0x3d, 0x98, 0x1b, + 0xd3, 0x4b, 0xb0, 0x41, 0x07, 0x61, 0x18, 0x6d, 0x05, 0x0d, 0x45, 0xb6, 0xc0, 0xc8, 0xce, 0x65, + 0x91, 0xad, 0x26, 0x68, 0x4b, 0x93, 0x77, 0x0f, 0xe6, 0x46, 0xb5, 0x02, 0xac, 0x13, 0x41, 0x9b, + 0x30, 0x49, 0xff, 0xfa, 0xb1, 0xab, 0xe8, 0x16, 0x19, 0xdd, 0x47, 0xf3, 0xe8, 0x6a, 0xa8, 0x4b, + 0xa7, 0xee, 0x1e, 0xcc, 0x4d, 0xa6, 0x0a, 0x71, 0x9a, 0xa0, 0xfd, 0x1e, 0x4c, 0x2c, 0xc6, 0xb1, + 0x53, 0xdf, 0x26, 0x0d, 0x3e, 0x83, 0xe8, 0x79, 0x18, 0xf0, 0x9d, 0x5d, 0x22, 0xe6, 0xf7, 0xbc, + 0x18, 0xd8, 0x81, 0x6b, 0xce, 0x2e, 0x39, 0x3c, 0x98, 0x9b, 0xba, 0xe1, 0xbb, 0xef, 0xb6, 0xc5, + 0xaa, 0xa0, 0x65, 0x98, 0x61, 0xa3, 0x8b, 0x00, 0x0d, 0xb2, 0xe7, 0xd6, 0x49, 0xd5, 0x89, 0xb7, + 0xc5, 0x7c, 0x23, 0x51, 0x17, 0x2a, 0x0a, 0x82, 0x35, 0x2c, 0xfb, 0x0e, 0x94, 0x16, 0xf7, 0x02, + 0xb7, 0x51, 0x0d, 0x1a, 0x11, 0xda, 0x81, 0xc9, 0x56, 0x48, 0xb6, 0x48, 0xa8, 0x8a, 0xca, 0xd6, + 0xf9, 0xe2, 0x85, 0xd1, 0x8b, 0x17, 0x32, 0x3f, 0xd6, 0x44, 0x5d, 0xf1, 0xe3, 0x70, 0x7f, 0xe9, + 0x41, 0xd1, 0xde, 0x64, 0x0a, 0x8a, 0xd3, 0x94, 0xed, 0x7f, 0x53, 0x80, 0xd3, 0x8b, 0xef, 0xb5, + 0x43, 0x52, 0x71, 0xa3, 0x9d, 0xf4, 0x0a, 0x6f, 0xb8, 0xd1, 0xce, 0xb5, 0x64, 0x04, 0xd4, 0xd2, + 0xaa, 0x88, 0x72, 0xac, 0x30, 0xd0, 0x33, 0x30, 0x4c, 0x7f, 0xdf, 0xc0, 0x6b, 0xe2, 0x93, 0x4f, + 0x09, 0xe4, 0xd1, 0x8a, 0x13, 0x3b, 0x15, 0x0e, 0xc2, 0x12, 0x07, 0xad, 0xc3, 0x68, 0x9d, 0x6d, + 0xc8, 0xe6, 0x7a, 0xd0, 0x20, 0x6c, 0x32, 0x4b, 0x4b, 0x4f, 0x51, 0xf4, 0xe5, 0xa4, 0xf8, 0xf0, + 0x60, 0xae, 0xcc, 0xfb, 0x26, 0x48, 0x68, 0x30, 0xac, 0xd7, 0x47, 0xb6, 0xda, 0x5f, 0x03, 0x8c, + 0x12, 0x64, 0xec, 0xad, 0x0b, 0xda, 0x56, 0x19, 0x64, 0x5b, 0x65, 0x2c, 0x7b, 0x9b, 0xa0, 0x67, + 0x61, 0x60, 0xc7, 0xf5, 0x1b, 0xe5, 0x21, 0x46, 0xeb, 0x2c, 0x9d, 0xf3, 0x2b, 0xae, 0xdf, 0x38, + 0x3c, 0x98, 0x9b, 0x36, 0xba, 0x43, 0x0b, 0x31, 0x43, 0xb5, 0xff, 0xc4, 0x82, 0x39, 0x06, 0x5b, + 0x75, 0x3d, 0x52, 0x25, 0x61, 0xe4, 0x46, 0x31, 0xf1, 0x63, 0x63, 0x40, 0x2f, 0x02, 0x44, 0xa4, + 0x1e, 0x92, 0x58, 0x1b, 0x52, 0xb5, 0x30, 0x6a, 0x0a, 0x82, 0x35, 0x2c, 0xca, 0x10, 0xa2, 0x6d, + 0x27, 0x64, 0xeb, 0x4b, 0x0c, 0xac, 0x62, 0x08, 0x35, 0x09, 0xc0, 0x09, 0x8e, 0xc1, 0x10, 0x8a, + 0xbd, 0x18, 0x02, 0xfa, 0x14, 0x4c, 0x26, 0x8d, 0x45, 0x2d, 0xa7, 0x2e, 0x07, 0x90, 0x6d, 0x99, + 0x9a, 0x09, 0xc2, 0x69, 0x5c, 0xfb, 0x1f, 0x58, 0x62, 0xf1, 0xd0, 0xaf, 0xfe, 0x90, 0x7f, 0xab, + 0xfd, 0xdb, 0x16, 0x0c, 0x2f, 0xb9, 0x7e, 0xc3, 0xf5, 0x9b, 0xe8, 0x33, 0x30, 0x42, 0xcf, 0xa6, + 0x86, 0x13, 0x3b, 0x82, 0xef, 0x7d, 0x5c, 0xdb, 0x5b, 0xea, 0xa8, 0x98, 0x6f, 0xed, 0x34, 0x69, + 0x41, 0x34, 0x4f, 0xb1, 0xe9, 0x6e, 0xbb, 0xbe, 0xf9, 0x0e, 0xa9, 0xc7, 0xeb, 0x24, 0x76, 0x92, + 0xcf, 0x49, 0xca, 0xb0, 0xa2, 0x8a, 0xae, 0xc0, 0x50, 0xec, 0x84, 0x4d, 0x12, 0x0b, 0x06, 0x98, + 0xc9, 0xa8, 0x78, 0x4d, 0x4c, 0x77, 0x24, 0xf1, 0xeb, 0x24, 0x39, 0x16, 0x36, 0x58, 0x55, 0x2c, + 0x48, 0xd8, 0x75, 0x18, 0x5b, 0x76, 0x5a, 0xce, 0xa6, 0xeb, 0xb9, 0xb1, 0x4b, 0x22, 0xf4, 0x38, + 0x14, 0x9d, 0x46, 0x83, 0x71, 0x85, 0xd2, 0xd2, 0xe9, 0xbb, 0x07, 0x73, 0xc5, 0xc5, 0x06, 0x5d, + 0x9e, 0xa0, 0xb0, 0xf6, 0x31, 0xc5, 0x40, 0x4f, 0xc2, 0x40, 0x23, 0x0c, 0x5a, 0xe5, 0x02, 0xc3, + 0x7c, 0x80, 0xae, 0xe4, 0x4a, 0x18, 0xb4, 0x52, 0xa8, 0x0c, 0xc7, 0xfe, 0xdd, 0x02, 0x3c, 0xbc, + 0x4c, 0x5a, 0xdb, 0xab, 0xb5, 0x9c, 0xf5, 0x7b, 0x01, 0x46, 0x76, 0x03, 0xdf, 0x8d, 0x83, 0x30, + 0x12, 0x4d, 0xb3, 0x0d, 0xb4, 0x2e, 0xca, 0xb0, 0x82, 0xa2, 0xf3, 0x30, 0xd0, 0x4a, 0x98, 0xdf, + 0x98, 0x64, 0x9c, 0x8c, 0xed, 0x31, 0x08, 0xc5, 0x68, 0x47, 0x24, 0x14, 0x1b, 0x5f, 0x61, 0xdc, + 0x88, 0x48, 0x88, 0x19, 0x24, 0x59, 0x41, 0x74, 0x6d, 0x89, 0x55, 0x99, 0x5a, 0x41, 0x14, 0x82, + 0x35, 0x2c, 0x54, 0x85, 0x12, 0xff, 0x87, 0xc9, 0x16, 0xdb, 0xe3, 0x39, 0xe3, 0x5e, 0x93, 0x48, + 0x62, 0xdc, 0xc7, 0xd9, 0x12, 0x93, 0x85, 0x38, 0x21, 0x62, 0x2c, 0xb1, 0xa1, 0x9e, 0x4b, 0xec, + 0x5b, 0x05, 0x40, 0x7c, 0x08, 0x7f, 0xc4, 0x06, 0xee, 0x46, 0xe7, 0xc0, 0x65, 0x1e, 0x36, 0x57, + 0x83, 0xba, 0xe3, 0xa5, 0x57, 0xed, 0x71, 0x8d, 0xde, 0x2f, 0x59, 0x80, 0x96, 0x5d, 0xbf, 0x41, + 0xc2, 0x13, 0x90, 0xb4, 0x8e, 0xc6, 0x3b, 0xae, 0xc2, 0xc4, 0xb2, 0xe7, 0x12, 0x3f, 0x5e, 0xab, + 0x2e, 0x07, 0xfe, 0x96, 0xdb, 0x44, 0x9f, 0x84, 0x09, 0x2a, 0x78, 0x06, 0xed, 0xb8, 0x46, 0xea, + 0x81, 0xcf, 0xce, 0x68, 0x2a, 0xae, 0xa1, 0xbb, 0x07, 0x73, 0x13, 0x1b, 0x06, 0x04, 0xa7, 0x30, + 0xed, 0x3f, 0xa2, 0x1f, 0x1a, 0xec, 0xb6, 0x02, 0x9f, 0xf8, 0xf1, 0x72, 0xe0, 0x37, 0xb8, 0x2c, + 0xf7, 0x49, 0x18, 0x88, 0x69, 0xc7, 0xf9, 0x47, 0x3e, 0x26, 0xa7, 0x96, 0x76, 0xf7, 0xf0, 0x60, + 0xee, 0x81, 0xce, 0x1a, 0xec, 0x83, 0x58, 0x1d, 0xf4, 0x53, 0x30, 0x14, 0xc5, 0x4e, 0xdc, 0x8e, + 0xc4, 0x67, 0x3f, 0x22, 0x3f, 0xbb, 0xc6, 0x4a, 0x0f, 0x0f, 0xe6, 0x26, 0x55, 0x35, 0x5e, 0x84, + 0x45, 0x05, 0xf4, 0x04, 0x0c, 0xef, 0x92, 0x28, 0x72, 0x9a, 0xf2, 0x18, 0x9e, 0x14, 0x75, 0x87, + 0xd7, 0x79, 0x31, 0x96, 0x70, 0xf4, 0x28, 0x0c, 0x92, 0x30, 0x0c, 0x42, 0xb1, 0xaa, 0xc6, 0x05, + 0xe2, 0xe0, 0x0a, 0x2d, 0xc4, 0x1c, 0x66, 0xff, 0x7b, 0x0b, 0x26, 0x55, 0x5f, 0x79, 0x5b, 0x27, + 0xc0, 0x6f, 0xdf, 0x04, 0xa8, 0xcb, 0x0f, 0x8c, 0x18, 0xbf, 0x1b, 0xbd, 0xf8, 0x58, 0xd6, 0x12, + 0xee, 0x1c, 0xc6, 0x84, 0xb2, 0x2a, 0x8a, 0xb0, 0x46, 0xcd, 0xfe, 0x17, 0x16, 0x9c, 0x4a, 0x7d, + 0xd1, 0x55, 0x37, 0x8a, 0xd1, 0x5b, 0x1d, 0x5f, 0x35, 0xdf, 0xdf, 0x57, 0xd1, 0xda, 0xec, 0x9b, + 0xd4, 0x9a, 0x93, 0x25, 0xda, 0x17, 0x5d, 0x86, 0x41, 0x37, 0x26, 0xbb, 0xf2, 0x63, 0x1e, 0xed, + 0xfa, 0x31, 0xbc, 0x57, 0xc9, 0x8c, 0xac, 0xd1, 0x9a, 0x98, 0x13, 0xb0, 0xff, 0x97, 0x05, 0x25, + 0xbe, 0x6c, 0xd7, 0x9d, 0xd6, 0x09, 0xcc, 0xc5, 0x1a, 0x0c, 0x30, 0xea, 0xbc, 0xe3, 0x8f, 0x67, + 0x77, 0x5c, 0x74, 0x67, 0x9e, 0x0a, 0x53, 0x5c, 0x68, 0x55, 0xcc, 0x8c, 0x16, 0x61, 0x46, 0x62, + 0xf6, 0x45, 0x28, 0x29, 0x04, 0x34, 0x05, 0xc5, 0x1d, 0xc2, 0x2f, 0x2a, 0x25, 0x4c, 0x7f, 0xa2, + 0x19, 0x18, 0xdc, 0x73, 0xbc, 0xb6, 0xd8, 0xec, 0x98, 0xff, 0xf9, 0x64, 0xe1, 0x25, 0xcb, 0xfe, + 0x26, 0xdb, 0x63, 0xa2, 0x91, 0x15, 0x7f, 0x4f, 0x30, 0x93, 0xf7, 0x60, 0xc6, 0xcb, 0xe0, 0x61, + 0x62, 0x20, 0xfa, 0xe7, 0x79, 0x0f, 0x8b, 0xbe, 0xce, 0x64, 0x41, 0x71, 0x66, 0x1b, 0xf4, 0x18, + 0x08, 0x5a, 0x74, 0x45, 0x39, 0x1e, 0xeb, 0xaf, 0x10, 0x40, 0xaf, 0x8b, 0x32, 0xac, 0xa0, 0x94, + 0x41, 0xcc, 0xa8, 0xce, 0x5f, 0x21, 0xfb, 0x35, 0xe2, 0x91, 0x7a, 0x1c, 0x84, 0x1f, 0x68, 0xf7, + 0xcf, 0xf2, 0xd1, 0xe7, 0xfc, 0x65, 0x54, 0x10, 0x28, 0x5e, 0x21, 0xfb, 0x7c, 0x2a, 0xf4, 0xaf, + 0x2b, 0x76, 0xfd, 0xba, 0xdf, 0xb0, 0x60, 0x5c, 0x7d, 0xdd, 0x09, 0x6c, 0xa4, 0x25, 0x73, 0x23, + 0x9d, 0xed, 0xba, 0x1e, 0x73, 0xb6, 0xd0, 0x0f, 0x19, 0x0b, 0x10, 0x38, 0xd5, 0x30, 0xa0, 0x43, + 0x43, 0x79, 0xf6, 0x07, 0x39, 0x21, 0xfd, 0x7c, 0xd7, 0x15, 0xb2, 0xbf, 0x11, 0x50, 0xf1, 0x21, + 0xfb, 0xbb, 0x8c, 0x59, 0x1b, 0xe8, 0x3a, 0x6b, 0xbf, 0x59, 0x80, 0xd3, 0x6a, 0x04, 0x8c, 0x03, + 0xfa, 0x47, 0x7d, 0x0c, 0x9e, 0x85, 0xd1, 0x06, 0xd9, 0x72, 0xda, 0x5e, 0xac, 0xee, 0xa2, 0x83, + 0x5c, 0x1f, 0x51, 0x49, 0x8a, 0xb1, 0x8e, 0x73, 0x84, 0x61, 0xfb, 0xb7, 0xc0, 0x78, 0x6f, 0xec, + 0xd0, 0x15, 0x4c, 0xa5, 0x37, 0x4d, 0xa3, 0x30, 0xa6, 0x6b, 0x14, 0x84, 0xf6, 0xe0, 0x51, 0x18, + 0x74, 0x77, 0xe9, 0x59, 0x5c, 0x30, 0x8f, 0xd8, 0x35, 0x5a, 0x88, 0x39, 0x0c, 0x7d, 0x0c, 0x86, + 0xeb, 0xc1, 0xee, 0xae, 0xe3, 0x37, 0xca, 0x45, 0x26, 0x4f, 0x8e, 0xd2, 0xe3, 0x7a, 0x99, 0x17, + 0x61, 0x09, 0x43, 0x0f, 0xc3, 0x80, 0x13, 0x36, 0xa3, 0xf2, 0x00, 0xc3, 0x19, 0xa1, 0x2d, 0x2d, + 0x86, 0xcd, 0x08, 0xb3, 0x52, 0x2a, 0x27, 0xde, 0x0e, 0xc2, 0x1d, 0xd7, 0x6f, 0x56, 0xdc, 0x90, + 0x09, 0x7d, 0x9a, 0x9c, 0x78, 0x4b, 0x41, 0xb0, 0x86, 0x85, 0x56, 0x61, 0xb0, 0x15, 0x84, 0x71, + 0x54, 0x1e, 0x62, 0xc3, 0xfd, 0x48, 0xce, 0x56, 0xe2, 0x5f, 0x5b, 0x0d, 0xc2, 0x38, 0xf9, 0x00, + 0xfa, 0x2f, 0xc2, 0xbc, 0x3a, 0xfa, 0x29, 0x28, 0x12, 0x7f, 0xaf, 0x3c, 0xcc, 0xa8, 0xcc, 0x66, + 0x51, 0x59, 0xf1, 0xf7, 0x6e, 0x3a, 0x61, 0xc2, 0x67, 0x56, 0xfc, 0x3d, 0x4c, 0xeb, 0xa0, 0x37, + 0xa0, 0x24, 0xb5, 0x91, 0x51, 0x79, 0x24, 0x7f, 0x89, 0x61, 0x81, 0x84, 0xc9, 0xbb, 0x6d, 0x37, + 0x24, 0xbb, 0xc4, 0x8f, 0xa3, 0xe4, 0x3e, 0x29, 0xa1, 0x11, 0x4e, 0xa8, 0xa1, 0x37, 0x60, 0x8c, + 0xcb, 0x91, 0xeb, 0x41, 0xdb, 0x8f, 0xa3, 0x72, 0x89, 0x75, 0x2f, 0x53, 0x75, 0x75, 0x33, 0xc1, + 0x5b, 0x9a, 0x11, 0x44, 0xc7, 0xb4, 0xc2, 0x08, 0x1b, 0xa4, 0x10, 0x86, 0x71, 0xcf, 0xdd, 0x23, + 0x3e, 0x89, 0xa2, 0x6a, 0x18, 0x6c, 0x92, 0x32, 0xb0, 0x9e, 0x9f, 0xc9, 0xd6, 0xe8, 0x04, 0x9b, + 0x64, 0x69, 0xfa, 0xee, 0xc1, 0xdc, 0xf8, 0x55, 0xbd, 0x0e, 0x36, 0x49, 0xa0, 0x1b, 0x30, 0x41, + 0x05, 0x54, 0x37, 0x21, 0x3a, 0xda, 0x8b, 0x28, 0x93, 0x4e, 0xb1, 0x51, 0x09, 0xa7, 0x88, 0xa0, + 0xd7, 0xa0, 0xe4, 0xb9, 0x5b, 0xa4, 0xbe, 0x5f, 0xf7, 0x48, 0x79, 0x8c, 0x51, 0xcc, 0xdc, 0x56, + 0x57, 0x25, 0x12, 0xbf, 0x00, 0xa8, 0xbf, 0x38, 0xa9, 0x8e, 0x6e, 0xc2, 0x03, 0x31, 0x09, 0x77, + 0x5d, 0xdf, 0xa1, 0xdb, 0x41, 0xc8, 0x93, 0x4c, 0x2f, 0x36, 0xce, 0xd6, 0xdb, 0x39, 0x31, 0x74, + 0x0f, 0x6c, 0x64, 0x62, 0xe1, 0x9c, 0xda, 0xe8, 0x3a, 0x4c, 0xb2, 0x9d, 0x50, 0x6d, 0x7b, 0x5e, + 0x35, 0xf0, 0xdc, 0xfa, 0x7e, 0x79, 0x82, 0x11, 0xfc, 0x98, 0x54, 0x7c, 0xad, 0x99, 0x60, 0x7a, + 0xe3, 0x4d, 0xfe, 0xe1, 0x74, 0x6d, 0xb4, 0xc9, 0x14, 0x21, 0xed, 0xd0, 0x8d, 0xf7, 0xe9, 0xfa, + 0x25, 0x77, 0xe2, 0xf2, 0x64, 0xd7, 0xfb, 0xa3, 0x8e, 0xaa, 0xb4, 0x25, 0x7a, 0x21, 0x4e, 0x13, + 0xa4, 0x5b, 0x3b, 0x8a, 0x1b, 0xae, 0x5f, 0x9e, 0x62, 0x1c, 0x43, 0xed, 0x8c, 0x1a, 0x2d, 0xc4, + 0x1c, 0xc6, 0x94, 0x20, 0xf4, 0xc7, 0x75, 0xca, 0x41, 0xa7, 0x19, 0x62, 0xa2, 0x04, 0x91, 0x00, + 0x9c, 0xe0, 0xd0, 0x63, 0x39, 0x8e, 0xf7, 0xcb, 0x88, 0xa1, 0xaa, 0xed, 0xb2, 0xb1, 0xf1, 0x06, + 0xa6, 0xe5, 0xe8, 0x2a, 0x0c, 0x13, 0x7f, 0x6f, 0x35, 0x0c, 0x76, 0xcb, 0xa7, 0xf2, 0xf7, 0xec, + 0x0a, 0x47, 0xe1, 0x0c, 0x3d, 0xb9, 0x00, 0x88, 0x62, 0x2c, 0x49, 0xa0, 0x3b, 0x50, 0xce, 0x98, + 0x11, 0x3e, 0x01, 0x33, 0x6c, 0x02, 0x5e, 0x11, 0x75, 0xcb, 0x1b, 0x39, 0x78, 0x87, 0x5d, 0x60, + 0x38, 0x97, 0xba, 0xbd, 0x09, 0x13, 0x8a, 0xb1, 0xb0, 0xb9, 0x45, 0x73, 0x30, 0x48, 0x39, 0xa6, + 0xbc, 0x52, 0x97, 0xe8, 0x50, 0x32, 0xd5, 0x14, 0xe6, 0xe5, 0x6c, 0x28, 0xdd, 0xf7, 0xc8, 0xd2, + 0x7e, 0x4c, 0xf8, 0xb5, 0xa8, 0xa8, 0x0d, 0xa5, 0x04, 0xe0, 0x04, 0xc7, 0xfe, 0x7f, 0x5c, 0x30, + 0x49, 0xb8, 0x57, 0x1f, 0xfc, 0xfa, 0x69, 0x18, 0xd9, 0x0e, 0xa2, 0x98, 0x62, 0xb3, 0x36, 0x06, + 0x13, 0x51, 0xe4, 0xb2, 0x28, 0xc7, 0x0a, 0x03, 0xbd, 0x0c, 0xe3, 0x75, 0xbd, 0x01, 0x71, 0xd8, + 0x9c, 0x16, 0x55, 0xcc, 0xd6, 0xb1, 0x89, 0x8b, 0x5e, 0x82, 0x11, 0xf6, 0x40, 0x51, 0x0f, 0x3c, + 0x71, 0x01, 0x93, 0x27, 0xe6, 0x48, 0x55, 0x94, 0x1f, 0x6a, 0xbf, 0xb1, 0xc2, 0xa6, 0x97, 0x62, + 0xda, 0x85, 0xb5, 0xaa, 0x60, 0xf3, 0xea, 0x52, 0x7c, 0x99, 0x95, 0x62, 0x01, 0xb5, 0xff, 0x5a, + 0x41, 0x1b, 0x65, 0x7a, 0xa5, 0x20, 0xa8, 0x0a, 0xc3, 0xb7, 0x1d, 0x37, 0x76, 0xfd, 0xa6, 0x38, + 0xcf, 0x9f, 0xe8, 0xca, 0xf3, 0x59, 0xa5, 0x5b, 0xbc, 0x02, 0x3f, 0x95, 0xc4, 0x1f, 0x2c, 0xc9, + 0x50, 0x8a, 0x61, 0xdb, 0xf7, 0x29, 0xc5, 0x42, 0xbf, 0x14, 0x31, 0xaf, 0xc0, 0x29, 0x8a, 0x3f, + 0x58, 0x92, 0x41, 0x6f, 0x01, 0xc8, 0x75, 0x43, 0x1a, 0xe2, 0x61, 0xe0, 0xe9, 0xde, 0x44, 0x37, + 0x54, 0x9d, 0xa5, 0x09, 0x7a, 0xe6, 0x25, 0xff, 0xb1, 0x46, 0xcf, 0x8e, 0x99, 0xdc, 0xd3, 0xd9, + 0x19, 0xf4, 0xb3, 0x74, 0xab, 0x3a, 0x61, 0x4c, 0x1a, 0x8b, 0xb1, 0x18, 0x9c, 0x27, 0xfb, 0x13, + 0x5b, 0x37, 0xdc, 0x5d, 0xa2, 0x6f, 0x6b, 0x41, 0x04, 0x27, 0xf4, 0xec, 0xdf, 0x2a, 0x42, 0x39, + 0xaf, 0xbb, 0x74, 0xd1, 0x91, 0x3b, 0x6e, 0xbc, 0x4c, 0xc5, 0x15, 0xcb, 0x5c, 0x74, 0x2b, 0xa2, + 0x1c, 0x2b, 0x0c, 0x3a, 0xfb, 0x91, 0xdb, 0x94, 0xb7, 0x8e, 0xc1, 0x64, 0xf6, 0x6b, 0xac, 0x14, + 0x0b, 0x28, 0xc5, 0x0b, 0x89, 0x13, 0x89, 0x97, 0x27, 0x6d, 0x95, 0x60, 0x56, 0x8a, 0x05, 0x54, + 0x57, 0x18, 0x0c, 0xf4, 0x50, 0x18, 0x18, 0x43, 0x34, 0x78, 0xbc, 0x43, 0x84, 0xde, 0x06, 0xd8, + 0x72, 0x7d, 0x37, 0xda, 0x66, 0xd4, 0x87, 0x8e, 0x4c, 0x5d, 0x09, 0x3b, 0xab, 0x8a, 0x0a, 0xd6, + 0x28, 0xa2, 0x17, 0x60, 0x54, 0x6d, 0xc0, 0xb5, 0x4a, 0x79, 0xd8, 0x7c, 0xd6, 0x48, 0xb8, 0x51, + 0x05, 0xeb, 0x78, 0xf6, 0x3b, 0xe9, 0xf5, 0x22, 0x76, 0x80, 0x36, 0xbe, 0x56, 0xbf, 0xe3, 0x5b, + 0xe8, 0x3e, 0xbe, 0xf6, 0xef, 0x15, 0x61, 0xd2, 0x68, 0xac, 0x1d, 0xf5, 0xc1, 0xb3, 0x2e, 0xd1, + 0x83, 0xc8, 0x89, 0x89, 0xd8, 0x7f, 0x76, 0xef, 0xad, 0xa2, 0x1f, 0x56, 0x74, 0x07, 0xf0, 0xfa, + 0xe8, 0x6d, 0x28, 0x79, 0x4e, 0xc4, 0x94, 0x0f, 0x44, 0xec, 0xbb, 0x7e, 0x88, 0x25, 0x82, 0xbe, + 0x13, 0xc5, 0xda, 0x59, 0xc0, 0x69, 0x27, 0x24, 0xe9, 0x89, 0x49, 0x85, 0x13, 0xf9, 0xb4, 0xa9, + 0x3a, 0x41, 0x25, 0x98, 0x7d, 0xcc, 0x61, 0xe8, 0x25, 0x18, 0x0b, 0x09, 0x5b, 0x15, 0xcb, 0x54, + 0xd6, 0x62, 0xcb, 0x6c, 0x30, 0x11, 0xca, 0xb0, 0x06, 0xc3, 0x06, 0x66, 0x22, 0x6b, 0x0f, 0x75, + 0x91, 0xb5, 0x9f, 0x80, 0x61, 0xf6, 0x43, 0xad, 0x00, 0x35, 0x1b, 0x6b, 0xbc, 0x18, 0x4b, 0x78, + 0x7a, 0xc1, 0x8c, 0xf4, 0xb9, 0x60, 0x9e, 0x84, 0x89, 0x8a, 0x43, 0x76, 0x03, 0x7f, 0xc5, 0x6f, + 0xb4, 0x02, 0xd7, 0x8f, 0x51, 0x19, 0x06, 0xd8, 0xe9, 0xc0, 0xf7, 0xf6, 0x00, 0xa5, 0x80, 0x07, + 0xa8, 0xe4, 0x6c, 0xff, 0x61, 0x01, 0xc6, 0x2b, 0xc4, 0x23, 0x31, 0xe1, 0x77, 0x8d, 0x08, 0xad, + 0x02, 0x6a, 0x86, 0x4e, 0x9d, 0x54, 0x49, 0xe8, 0x06, 0x0d, 0x5d, 0x19, 0x59, 0x64, 0x0a, 0x7f, + 0x74, 0xa9, 0x03, 0x8a, 0x33, 0x6a, 0xa0, 0x37, 0x61, 0xbc, 0x15, 0x12, 0x43, 0x87, 0x66, 0xe5, + 0x89, 0x0b, 0x55, 0x1d, 0x91, 0x4b, 0xaa, 0x46, 0x11, 0x36, 0x49, 0xa1, 0x9f, 0x81, 0xa9, 0x20, + 0x6c, 0x6d, 0x3b, 0x7e, 0x85, 0xb4, 0x88, 0xdf, 0xa0, 0xa2, 0xb8, 0xd0, 0x11, 0xcc, 0xdc, 0x3d, + 0x98, 0x9b, 0xba, 0x9e, 0x82, 0xe1, 0x0e, 0x6c, 0xf4, 0x26, 0x4c, 0xb7, 0xc2, 0xa0, 0xe5, 0x34, + 0xd9, 0x42, 0x11, 0x12, 0x07, 0xe7, 0x3e, 0x4f, 0xdf, 0x3d, 0x98, 0x9b, 0xae, 0xa6, 0x81, 0x87, + 0x07, 0x73, 0xa7, 0xd8, 0x40, 0xd1, 0x92, 0x04, 0x88, 0x3b, 0xc9, 0xd8, 0x4d, 0x38, 0x5d, 0x09, + 0x6e, 0xfb, 0xb7, 0x9d, 0xb0, 0xb1, 0x58, 0x5d, 0xd3, 0x2e, 0xf7, 0xd7, 0xe4, 0xe5, 0x92, 0x3f, + 0xbf, 0x66, 0x9e, 0x53, 0x5a, 0x4d, 0x2e, 0xfe, 0xaf, 0xba, 0x1e, 0xc9, 0x51, 0x22, 0xfc, 0xcd, + 0x82, 0xd1, 0x52, 0x82, 0xaf, 0xf4, 0xfe, 0x56, 0xae, 0xde, 0xff, 0x75, 0x18, 0xd9, 0x72, 0x89, + 0xd7, 0xc0, 0x64, 0x4b, 0xcc, 0xcc, 0xe3, 0xf9, 0x2f, 0x4a, 0xab, 0x14, 0x53, 0x2a, 0x8d, 0xf8, + 0xd5, 0x74, 0x55, 0x54, 0xc6, 0x8a, 0x0c, 0xda, 0x81, 0x29, 0x79, 0xf7, 0x91, 0x50, 0xb1, 0x89, + 0x9f, 0xe8, 0x76, 0xa1, 0x32, 0x89, 0xb3, 0x09, 0xc4, 0x29, 0x32, 0xb8, 0x83, 0x30, 0xbd, 0x8b, + 0xee, 0xd2, 0xe3, 0x6a, 0x80, 0x2d, 0x69, 0x76, 0x17, 0x65, 0xd7, 0x6a, 0x56, 0x6a, 0x7f, 0xd5, + 0x82, 0x07, 0x3b, 0x46, 0x46, 0xa8, 0x17, 0x8e, 0x79, 0x16, 0xd2, 0xd7, 0xfd, 0x42, 0xef, 0xeb, + 0xbe, 0xfd, 0x0f, 0x2d, 0x98, 0x59, 0xd9, 0x6d, 0xc5, 0xfb, 0x15, 0xd7, 0x7c, 0x9b, 0x78, 0x11, + 0x86, 0x76, 0x49, 0xc3, 0x6d, 0xef, 0x8a, 0x99, 0x9b, 0x93, 0x2c, 0x7d, 0x9d, 0x95, 0x1e, 0x1e, + 0xcc, 0x8d, 0xd7, 0xe2, 0x20, 0x74, 0x9a, 0x84, 0x17, 0x60, 0x81, 0xce, 0x0e, 0x46, 0xf7, 0x3d, + 0x72, 0xd5, 0xdd, 0x75, 0xe5, 0x0b, 0x61, 0x57, 0x95, 0xd7, 0xbc, 0x1c, 0xd0, 0xf9, 0xd7, 0xdb, + 0x8e, 0x1f, 0xbb, 0xf1, 0xbe, 0x78, 0x76, 0x91, 0x44, 0x70, 0x42, 0xcf, 0xfe, 0xae, 0x05, 0x93, + 0x92, 0x97, 0x2c, 0x36, 0x1a, 0x21, 0x89, 0x22, 0x34, 0x0b, 0x05, 0xb7, 0x25, 0x7a, 0x09, 0xa2, + 0x97, 0x85, 0xb5, 0x2a, 0x2e, 0xb8, 0x2d, 0x54, 0x85, 0x12, 0x7f, 0x68, 0x4c, 0x16, 0x57, 0x5f, + 0xcf, 0x95, 0xac, 0x07, 0x1b, 0xb2, 0x26, 0x4e, 0x88, 0x48, 0xa9, 0x98, 0x9d, 0x43, 0x45, 0xf3, + 0xcd, 0xe6, 0xb2, 0x28, 0xc7, 0x0a, 0x03, 0x5d, 0x80, 0x11, 0x3f, 0x68, 0xf0, 0x77, 0x5f, 0xbe, + 0xa7, 0xd9, 0x92, 0xbd, 0x26, 0xca, 0xb0, 0x82, 0xda, 0xbf, 0x68, 0xc1, 0x98, 0xfc, 0xb2, 0x3e, + 0x05, 0x74, 0xba, 0xb5, 0x12, 0xe1, 0x3c, 0xd9, 0x5a, 0x54, 0xc0, 0x66, 0x10, 0x43, 0xae, 0x2e, + 0x1e, 0x45, 0xae, 0xb6, 0xbf, 0x52, 0x80, 0x09, 0xd9, 0x9d, 0x5a, 0x7b, 0x33, 0x22, 0x31, 0xda, + 0x80, 0x92, 0xc3, 0x87, 0x9c, 0xc8, 0x15, 0xfb, 0x68, 0xf6, 0x8d, 0xcb, 0x98, 0x9f, 0x44, 0xd4, + 0x59, 0x94, 0xb5, 0x71, 0x42, 0x08, 0x79, 0x30, 0xed, 0x07, 0x31, 0x3b, 0xf6, 0x14, 0xbc, 0xdb, + 0xbb, 0x40, 0x9a, 0xfa, 0x19, 0x41, 0x7d, 0xfa, 0x5a, 0x9a, 0x0a, 0xee, 0x24, 0x8c, 0x56, 0xa4, + 0x96, 0xa7, 0xc8, 0x5a, 0x38, 0xdf, 0xad, 0x85, 0x7c, 0x25, 0x8f, 0xfd, 0x3b, 0x16, 0x94, 0x24, + 0xda, 0x49, 0x3c, 0x01, 0xad, 0xc3, 0x70, 0xc4, 0x26, 0x41, 0x0e, 0x8d, 0xdd, 0xad, 0xe3, 0x7c, + 0xbe, 0x92, 0xd3, 0x9c, 0xff, 0x8f, 0xb0, 0xa4, 0xc1, 0xd4, 0xd4, 0xaa, 0xfb, 0x1f, 0x12, 0x35, + 0xb5, 0xea, 0x4f, 0xce, 0x09, 0xf3, 0x5f, 0x59, 0x9f, 0xb5, 0xbb, 0x3c, 0x15, 0x3a, 0x5b, 0x21, + 0xd9, 0x72, 0xef, 0xa4, 0x85, 0xce, 0x2a, 0x2b, 0xc5, 0x02, 0x8a, 0xde, 0x82, 0xb1, 0xba, 0xd4, + 0xee, 0x26, 0x6c, 0xe0, 0xb1, 0xae, 0xba, 0x72, 0xf5, 0xac, 0xc2, 0x6d, 0xc2, 0x96, 0xb5, 0xfa, + 0xd8, 0xa0, 0x66, 0x3e, 0xcc, 0x17, 0x7b, 0x3d, 0xcc, 0x27, 0x74, 0x73, 0x9f, 0x96, 0xed, 0x5f, + 0xb1, 0x60, 0x88, 0xeb, 0x08, 0xfb, 0x53, 0xaa, 0x6a, 0xcf, 0x44, 0xc9, 0xd8, 0xdd, 0xa4, 0x85, + 0xe2, 0xd5, 0x08, 0xad, 0x43, 0x89, 0xfd, 0x60, 0xba, 0x92, 0x62, 0xbe, 0x31, 0x1c, 0x6f, 0x55, + 0xef, 0xe0, 0x4d, 0x59, 0x0d, 0x27, 0x14, 0xec, 0x2f, 0x17, 0x29, 0xab, 0x4a, 0x50, 0x8d, 0x13, + 0xdc, 0xba, 0x7f, 0x27, 0x78, 0xe1, 0x7e, 0x9d, 0xe0, 0x4d, 0x98, 0xac, 0x6b, 0x6f, 0x52, 0xc9, + 0x4c, 0x5e, 0xe8, 0xba, 0x48, 0xb4, 0xe7, 0x2b, 0xae, 0x27, 0x5b, 0x36, 0x89, 0xe0, 0x34, 0x55, + 0xf4, 0xb3, 0x30, 0xc6, 0xe7, 0x59, 0xb4, 0x32, 0xc0, 0x5a, 0xf9, 0x58, 0xfe, 0x7a, 0xd1, 0x9b, + 0x60, 0x2b, 0xb1, 0xa6, 0x55, 0xc7, 0x06, 0x31, 0xfb, 0x0b, 0x83, 0x30, 0xb8, 0xb2, 0x47, 0xfc, + 0xf8, 0x04, 0x18, 0x52, 0x1d, 0x26, 0x5c, 0x7f, 0x2f, 0xf0, 0xf6, 0x48, 0x83, 0xc3, 0x8f, 0x72, + 0xb8, 0x3e, 0x20, 0x48, 0x4f, 0xac, 0x19, 0x24, 0x70, 0x8a, 0xe4, 0xfd, 0xb8, 0xb5, 0x5f, 0x82, + 0x21, 0x3e, 0xf7, 0xe2, 0xca, 0x9e, 0xa9, 0x01, 0x67, 0x83, 0x28, 0x76, 0x41, 0xa2, 0x51, 0xe0, + 0x2a, 0x77, 0x51, 0x1d, 0xbd, 0x03, 0x13, 0x5b, 0x6e, 0x18, 0xc5, 0xf4, 0xba, 0x1d, 0xc5, 0xce, + 0x6e, 0xeb, 0x1e, 0x6e, 0xe9, 0x6a, 0x1c, 0x56, 0x0d, 0x4a, 0x38, 0x45, 0x19, 0x35, 0x61, 0x9c, + 0x5e, 0x1c, 0x93, 0xa6, 0x86, 0x8f, 0xdc, 0x94, 0x52, 0xc3, 0x5d, 0xd5, 0x09, 0x61, 0x93, 0x2e, + 0x65, 0x26, 0x75, 0x76, 0xd1, 0x1c, 0x61, 0x12, 0x85, 0x62, 0x26, 0xfc, 0x86, 0xc9, 0x61, 0x94, + 0x27, 0x31, 0x5b, 0x8e, 0x92, 0xc9, 0x93, 0x12, 0x8b, 0x0d, 0xfb, 0x6b, 0xf4, 0x74, 0xa4, 0x63, + 0x78, 0x02, 0x47, 0xcb, 0xab, 0xe6, 0xd1, 0x72, 0x26, 0x77, 0x3e, 0x73, 0x8e, 0x95, 0xcf, 0xc0, + 0xa8, 0x36, 0xdd, 0x68, 0x01, 0x4a, 0x75, 0x69, 0x78, 0x20, 0xb8, 0xae, 0x12, 0x5f, 0x94, 0x45, + 0x02, 0x4e, 0x70, 0xe8, 0x68, 0x50, 0x61, 0x2f, 0x6d, 0xd6, 0x44, 0x45, 0x41, 0xcc, 0x20, 0xf6, + 0x73, 0x00, 0x2b, 0x77, 0x48, 0x7d, 0x91, 0x5f, 0xbc, 0xb4, 0xf7, 0x2d, 0x2b, 0xff, 0x7d, 0xcb, + 0xfe, 0x0f, 0x16, 0x4c, 0xac, 0x2e, 0x1b, 0x02, 0xf9, 0x3c, 0x00, 0x97, 0x42, 0x6f, 0xdd, 0xba, + 0x26, 0x35, 0xc3, 0x5c, 0xb9, 0xa7, 0x4a, 0xb1, 0x86, 0x81, 0xce, 0x40, 0xd1, 0x6b, 0xfb, 0x42, + 0x38, 0x1c, 0xbe, 0x7b, 0x30, 0x57, 0xbc, 0xda, 0xf6, 0x31, 0x2d, 0xd3, 0x2c, 0x89, 0x8a, 0x7d, + 0x5b, 0x12, 0xf5, 0x34, 0xc1, 0x46, 0x73, 0x30, 0x78, 0xfb, 0xb6, 0xdb, 0x88, 0xca, 0x83, 0x89, + 0xd6, 0xfa, 0xd6, 0xad, 0xb5, 0x4a, 0x84, 0x79, 0xb9, 0xfd, 0x17, 0x8a, 0x30, 0xb5, 0xea, 0x91, + 0x3b, 0xc6, 0x67, 0x3d, 0x06, 0x43, 0x8d, 0xd0, 0xdd, 0x23, 0x61, 0xfa, 0x14, 0xaf, 0xb0, 0x52, + 0x2c, 0xa0, 0x7d, 0x5b, 0x3f, 0xdd, 0xe8, 0x3c, 0x8f, 0x8f, 0xdb, 0xde, 0xab, 0xf7, 0x50, 0xbc, + 0x05, 0xc3, 0xfc, 0x99, 0x94, 0x0f, 0xc6, 0xe8, 0xc5, 0x67, 0xb3, 0xba, 0x90, 0x1e, 0x8b, 0x79, + 0xa1, 0xf8, 0xe0, 0x36, 0x23, 0x8a, 0x89, 0x89, 0x52, 0x2c, 0x49, 0xce, 0x7e, 0x12, 0xc6, 0x74, + 0xcc, 0x23, 0x19, 0x8f, 0xfc, 0x45, 0x0b, 0x4e, 0xad, 0x7a, 0x41, 0x7d, 0x27, 0x65, 0x8a, 0xf6, + 0x02, 0x8c, 0xd2, 0xfd, 0x14, 0x19, 0x66, 0xad, 0x86, 0xa1, 0xb3, 0x00, 0x61, 0x1d, 0x4f, 0xab, + 0x76, 0xe3, 0xc6, 0x5a, 0x25, 0xcb, 0x3e, 0x5a, 0x80, 0xb0, 0x8e, 0x67, 0x7f, 0xc7, 0x82, 0xb3, + 0x97, 0x96, 0x57, 0x12, 0x6b, 0xcc, 0x0e, 0x13, 0x6d, 0x2a, 0xdc, 0x35, 0xb4, 0xae, 0x24, 0xc2, + 0x5d, 0x85, 0xf5, 0x42, 0x40, 0x3f, 0x2c, 0xee, 0x07, 0xbf, 0x66, 0xc1, 0xa9, 0x4b, 0x6e, 0x8c, + 0x49, 0x2b, 0x48, 0x1b, 0x0b, 0x87, 0xa4, 0x15, 0x44, 0x6e, 0x1c, 0x84, 0xfb, 0x69, 0x63, 0x61, + 0xac, 0x20, 0x58, 0xc3, 0xe2, 0x2d, 0xef, 0xb9, 0x11, 0xed, 0x69, 0xc1, 0xbc, 0x61, 0x62, 0x51, + 0x8e, 0x15, 0x06, 0xfd, 0xb0, 0x86, 0x1b, 0x32, 0x09, 0x61, 0x5f, 0x6c, 0x67, 0xf5, 0x61, 0x15, + 0x09, 0xc0, 0x09, 0x8e, 0xfd, 0x55, 0x0b, 0x4e, 0x5f, 0xf2, 0xda, 0x51, 0x4c, 0xc2, 0xad, 0xc8, + 0xe8, 0xec, 0x73, 0x50, 0x22, 0x52, 0x0a, 0x17, 0x7d, 0x55, 0xe7, 0x86, 0x12, 0xcf, 0xb9, 0xa5, + 0xb2, 0xc2, 0xeb, 0xc3, 0xae, 0xf3, 0x68, 0xf6, 0x88, 0x5f, 0x2f, 0xc0, 0xf8, 0xe5, 0x8d, 0x8d, + 0xea, 0x25, 0x12, 0x0b, 0x96, 0xd9, 0x5b, 0x83, 0x84, 0xb5, 0x8b, 0x70, 0x37, 0x59, 0xa7, 0x1d, + 0xbb, 0xde, 0x3c, 0x77, 0x8d, 0x99, 0x5f, 0xf3, 0xe3, 0xeb, 0x61, 0x2d, 0x0e, 0x5d, 0xbf, 0x99, + 0x79, 0x75, 0x96, 0x8c, 0xbd, 0x98, 0xc7, 0xd8, 0xd1, 0x73, 0x30, 0xc4, 0x7c, 0x73, 0xa4, 0xd4, + 0xf1, 0x90, 0x12, 0x15, 0x58, 0xe9, 0xe1, 0xc1, 0x5c, 0xe9, 0x06, 0x5e, 0xe3, 0x7f, 0xb0, 0x40, + 0x45, 0x37, 0x60, 0x74, 0x3b, 0x8e, 0x5b, 0x97, 0x89, 0xd3, 0x20, 0xa1, 0xe4, 0x0e, 0xe7, 0xb2, + 0xb8, 0x03, 0x1d, 0x04, 0x8e, 0x96, 0x6c, 0xa8, 0xa4, 0x2c, 0xc2, 0x3a, 0x1d, 0xbb, 0x06, 0x90, + 0xc0, 0x8e, 0xe9, 0xda, 0x60, 0xff, 0xc0, 0x82, 0xe1, 0xcb, 0x8e, 0xdf, 0xf0, 0x48, 0x88, 0x5e, + 0x81, 0x01, 0x72, 0x87, 0xd4, 0xc5, 0x09, 0x9e, 0xd9, 0xe1, 0xe4, 0x94, 0xe3, 0x4a, 0x30, 0xfa, + 0x1f, 0xb3, 0x5a, 0xe8, 0x32, 0x0c, 0xd3, 0xde, 0x5e, 0x52, 0x36, 0xe3, 0x8f, 0xe4, 0x7d, 0xb1, + 0x9a, 0x76, 0x7e, 0x30, 0x8a, 0x22, 0x2c, 0xab, 0x33, 0x85, 0x4e, 0xbd, 0x55, 0xa3, 0x0c, 0x2c, + 0xee, 0x76, 0xdd, 0xda, 0x58, 0xae, 0x72, 0x24, 0x41, 0x8d, 0x2b, 0x74, 0x64, 0x21, 0x4e, 0x88, + 0xd8, 0x1b, 0x50, 0xa2, 0x93, 0xba, 0xe8, 0xb9, 0x4e, 0x77, 0x5d, 0xd2, 0x53, 0x50, 0x92, 0x7a, + 0x9d, 0x48, 0x98, 0x9d, 0x33, 0xaa, 0x52, 0xed, 0x13, 0xe1, 0x04, 0x6e, 0x6f, 0xc1, 0x0c, 0x7b, + 0x24, 0x75, 0xe2, 0x6d, 0x63, 0x8f, 0xf5, 0x5e, 0xcc, 0x4f, 0x0b, 0xf9, 0x8a, 0xcf, 0x4c, 0x59, + 0xb3, 0x93, 0x1d, 0x93, 0x14, 0x35, 0x59, 0xeb, 0x3f, 0x0f, 0xc0, 0xf4, 0x5a, 0x6d, 0xb9, 0x66, + 0x2a, 0x16, 0x5f, 0x82, 0x31, 0x2e, 0x09, 0xd0, 0x05, 0xed, 0x78, 0xa2, 0x35, 0xf5, 0x70, 0xb0, + 0xa1, 0xc1, 0xb0, 0x81, 0x89, 0xce, 0x42, 0xd1, 0x7d, 0xd7, 0x4f, 0x9b, 0xc2, 0xad, 0xbd, 0x7e, + 0x0d, 0xd3, 0x72, 0x0a, 0xa6, 0x42, 0x05, 0x67, 0xa0, 0x0a, 0xac, 0x04, 0x8b, 0x57, 0x61, 0xc2, + 0x8d, 0xea, 0x91, 0xbb, 0xe6, 0x53, 0xee, 0x92, 0xf8, 0x5c, 0x24, 0x12, 0x3f, 0xed, 0xaa, 0x82, + 0xe2, 0x14, 0xb6, 0xc6, 0xcd, 0x07, 0xfb, 0x16, 0x4c, 0x7a, 0x5a, 0x5f, 0x53, 0x99, 0xab, 0xc5, + 0xbe, 0x2e, 0x62, 0x66, 0x39, 0x42, 0xe6, 0xe2, 0x1f, 0x1c, 0x61, 0x09, 0x43, 0x97, 0x60, 0xba, + 0xbe, 0xed, 0xb4, 0x16, 0xdb, 0xf1, 0x76, 0xc5, 0x8d, 0xea, 0xc1, 0x1e, 0x09, 0xf7, 0x99, 0x24, + 0x3c, 0x92, 0x28, 0x99, 0x14, 0x60, 0xf9, 0xf2, 0x62, 0x95, 0x62, 0xe2, 0xce, 0x3a, 0xa6, 0x08, + 0x02, 0xc7, 0x26, 0x82, 0x2c, 0xc2, 0xa4, 0x6c, 0xab, 0x46, 0x22, 0x76, 0x3c, 0x8c, 0xb2, 0xde, + 0x29, 0x97, 0x28, 0x51, 0xac, 0xfa, 0x96, 0xc6, 0x47, 0x2f, 0xc2, 0xb8, 0xeb, 0xbb, 0xb1, 0xeb, + 0xc4, 0x41, 0xc8, 0x0e, 0xd7, 0x31, 0x7e, 0x60, 0x50, 0x0e, 0xbf, 0xa6, 0x03, 0xb0, 0x89, 0x67, + 0xbf, 0x03, 0x25, 0x65, 0x6b, 0x26, 0xcd, 0x25, 0xad, 0x1c, 0x73, 0xc9, 0xde, 0x27, 0x82, 0xd4, + 0x98, 0x17, 0x33, 0x35, 0xe6, 0x7f, 0xcb, 0x82, 0xc4, 0xe4, 0x06, 0x5d, 0x86, 0x52, 0x2b, 0x60, + 0xaf, 0x66, 0xa1, 0x7c, 0x8a, 0x7e, 0x28, 0x93, 0x79, 0x70, 0x46, 0xc5, 0xc7, 0xaf, 0x2a, 0x6b, + 0xe0, 0xa4, 0x32, 0x5a, 0x82, 0xe1, 0x56, 0x48, 0x6a, 0x31, 0x73, 0x1a, 0xe9, 0x49, 0x87, 0xaf, + 0x11, 0x8e, 0x8f, 0x65, 0x45, 0xfb, 0x37, 0x2d, 0x00, 0xae, 0x94, 0x76, 0xfc, 0x26, 0x39, 0x81, + 0x8b, 0x76, 0x05, 0x06, 0xa2, 0x16, 0xa9, 0x77, 0x7b, 0xcf, 0x4c, 0xfa, 0x53, 0x6b, 0x91, 0x7a, + 0x32, 0xe0, 0xf4, 0x1f, 0x66, 0xb5, 0xed, 0x5f, 0x00, 0x98, 0x48, 0xd0, 0xe8, 0x05, 0x08, 0x3d, + 0x63, 0x98, 0xe4, 0x9f, 0x49, 0x99, 0xe4, 0x97, 0x18, 0xb6, 0x66, 0x85, 0xff, 0x0e, 0x14, 0x77, + 0x9d, 0x3b, 0xe2, 0x96, 0xf5, 0x54, 0xf7, 0x6e, 0x50, 0xfa, 0xf3, 0xeb, 0xce, 0x1d, 0x2e, 0xc7, + 0x3e, 0x25, 0x17, 0xc8, 0xba, 0x73, 0xe7, 0x90, 0xbf, 0x5a, 0x32, 0x26, 0x45, 0x2f, 0x73, 0x9f, + 0xfb, 0x4f, 0xc9, 0x7f, 0xb6, 0xec, 0x68, 0x23, 0xac, 0x2d, 0xd7, 0x17, 0x2a, 0xda, 0xbe, 0xda, + 0x72, 0xfd, 0x74, 0x5b, 0xae, 0xdf, 0x47, 0x5b, 0xae, 0x8f, 0xde, 0x83, 0x61, 0xf1, 0x1c, 0xc2, + 0x6c, 0x09, 0x47, 0x2f, 0x2e, 0xf4, 0xd1, 0x9e, 0x78, 0x4d, 0xe1, 0x6d, 0x2e, 0x48, 0x39, 0x5d, + 0x94, 0xf6, 0x6c, 0x57, 0x36, 0x88, 0xfe, 0x86, 0x05, 0x13, 0xe2, 0x37, 0x26, 0xef, 0xb6, 0x49, + 0x14, 0x0b, 0x79, 0xe0, 0x13, 0xfd, 0xf7, 0x41, 0x54, 0xe4, 0x5d, 0xf9, 0x84, 0x64, 0xb3, 0x26, + 0xb0, 0x67, 0x8f, 0x52, 0xbd, 0x40, 0xff, 0xd8, 0x82, 0x99, 0x5d, 0xe7, 0x0e, 0x6f, 0x91, 0x97, + 0x61, 0x27, 0x76, 0x03, 0x61, 0x1b, 0xf9, 0x4a, 0x7f, 0xd3, 0xdf, 0x51, 0x9d, 0x77, 0x52, 0x9a, + 0x51, 0xcd, 0x64, 0xa1, 0xf4, 0xec, 0x6a, 0x66, 0xbf, 0x66, 0xb7, 0x60, 0x44, 0xae, 0xb7, 0x8c, + 0xdb, 0x50, 0x45, 0x17, 0x76, 0x8e, 0xfc, 0x1a, 0xa5, 0xdd, 0x9e, 0x58, 0x3b, 0x62, 0xad, 0xdd, + 0xd7, 0x76, 0xde, 0x81, 0x31, 0x7d, 0x8d, 0xdd, 0xd7, 0xb6, 0xde, 0x85, 0x53, 0x19, 0x6b, 0xe9, + 0xbe, 0x36, 0x79, 0x1b, 0xce, 0xe4, 0xae, 0x8f, 0xfb, 0xd9, 0xb0, 0xfd, 0x75, 0x4b, 0xe7, 0x83, + 0x27, 0xa0, 0x9e, 0x5a, 0x36, 0xd5, 0x53, 0xe7, 0xba, 0xef, 0x9c, 0x1c, 0x1d, 0xd5, 0x5b, 0x7a, + 0xa7, 0x29, 0x57, 0x47, 0xaf, 0xc1, 0x90, 0x47, 0x4b, 0xe4, 0x3b, 0x9c, 0xdd, 0x7b, 0x47, 0x26, + 0xb2, 0x14, 0x2b, 0x8f, 0xb0, 0xa0, 0x60, 0xff, 0xb6, 0x05, 0x03, 0x27, 0x30, 0x12, 0xd8, 0x1c, + 0x89, 0x67, 0x72, 0x49, 0x8b, 0xb8, 0x07, 0xf3, 0xd8, 0xb9, 0xbd, 0x22, 0x63, 0x3b, 0xe4, 0x0c, + 0xcc, 0xff, 0x2d, 0xc0, 0x28, 0x6d, 0x4a, 0x1a, 0x8c, 0xbc, 0x0c, 0xe3, 0x9e, 0xb3, 0x49, 0x3c, + 0xa9, 0x32, 0x4f, 0x5f, 0x62, 0xaf, 0xea, 0x40, 0x6c, 0xe2, 0xd2, 0xca, 0x5b, 0xfa, 0xeb, 0x81, + 0x90, 0x5f, 0x54, 0x65, 0xe3, 0x69, 0x01, 0x9b, 0xb8, 0xf4, 0x3e, 0x75, 0xdb, 0x89, 0xeb, 0xdb, + 0xe2, 0x82, 0xab, 0xba, 0x7b, 0x8b, 0x16, 0x62, 0x0e, 0xa3, 0x02, 0x9c, 0x5c, 0x9d, 0x37, 0x49, + 0xc8, 0x04, 0x38, 0x2e, 0x1e, 0x2b, 0x01, 0x0e, 0x9b, 0x60, 0x9c, 0xc6, 0xcf, 0xf0, 0xcd, 0x1b, + 0x64, 0xe6, 0x30, 0x7d, 0xf8, 0xe6, 0xa1, 0x2a, 0xcc, 0xb8, 0x7e, 0xdd, 0x6b, 0x37, 0xc8, 0x0d, + 0x9f, 0x4b, 0x77, 0x9e, 0xfb, 0x1e, 0x69, 0x08, 0x01, 0x5a, 0x59, 0x2e, 0xad, 0x65, 0xe0, 0xe0, + 0xcc, 0x9a, 0xf6, 0x9f, 0x83, 0x53, 0x57, 0x03, 0xa7, 0xb1, 0xe4, 0x78, 0x8e, 0x5f, 0x27, 0xe1, + 0x9a, 0xdf, 0xec, 0xf9, 0x20, 0xaf, 0x3f, 0x9f, 0x17, 0x7a, 0x3d, 0x9f, 0xdb, 0xdb, 0x80, 0xf4, + 0x06, 0x84, 0x19, 0x18, 0x86, 0x61, 0x97, 0x37, 0x25, 0x96, 0xff, 0xe3, 0xd9, 0xd2, 0x75, 0x47, + 0xcf, 0x34, 0x03, 0x27, 0x5e, 0x80, 0x25, 0x21, 0xfb, 0x25, 0xc8, 0xf4, 0xcd, 0xe8, 0x7d, 0x95, + 0xb6, 0x5f, 0x80, 0x69, 0x56, 0xf3, 0x68, 0xd7, 0x3c, 0xfb, 0xaf, 0x58, 0x30, 0x79, 0x2d, 0xe5, + 0x4d, 0xfb, 0x18, 0x0c, 0xf1, 0x08, 0x27, 0x69, 0xa5, 0x57, 0x8d, 0x95, 0x62, 0x01, 0x3d, 0x76, + 0x9d, 0xcb, 0x0f, 0x2d, 0x28, 0x29, 0xd7, 0xf7, 0x13, 0x10, 0x6a, 0x97, 0x0d, 0xa1, 0x36, 0x53, + 0x17, 0xa0, 0xba, 0x93, 0x27, 0xd3, 0xa2, 0x2b, 0xca, 0x2f, 0xb4, 0x8b, 0x1a, 0x20, 0x21, 0xc3, + 0xbd, 0x08, 0x27, 0x4c, 0xe7, 0x51, 0xe9, 0x29, 0xca, 0x5e, 0xc4, 0x15, 0xee, 0x87, 0xe4, 0x45, + 0x5c, 0xf5, 0x27, 0x87, 0xfb, 0x55, 0xb5, 0x2e, 0xb3, 0x53, 0xe1, 0xa7, 0x99, 0xd5, 0x28, 0xdb, + 0x9b, 0xca, 0x1d, 0x7b, 0x4e, 0x58, 0x81, 0x8a, 0xd2, 0x43, 0xc6, 0xc8, 0xc4, 0x3f, 0x1e, 0xa6, + 0x20, 0xa9, 0x62, 0x5f, 0x86, 0xc9, 0xd4, 0x80, 0xa1, 0x17, 0x60, 0xb0, 0xb5, 0xed, 0x44, 0x24, + 0x65, 0x05, 0x34, 0x58, 0xa5, 0x85, 0x87, 0x07, 0x73, 0x13, 0xaa, 0x02, 0x2b, 0xc1, 0x1c, 0xdb, + 0xfe, 0x9f, 0x16, 0x0c, 0x5c, 0x0b, 0x1a, 0x27, 0xb1, 0x98, 0x5e, 0x35, 0x16, 0xd3, 0xc3, 0x79, + 0x41, 0x5e, 0x72, 0xd7, 0xd1, 0x6a, 0x6a, 0x1d, 0x9d, 0xcb, 0xa5, 0xd0, 0x7d, 0x09, 0xed, 0xc2, + 0x28, 0x0b, 0x1d, 0x23, 0xac, 0x92, 0x9e, 0x33, 0xee, 0x57, 0x73, 0xa9, 0xfb, 0xd5, 0xa4, 0x86, + 0xaa, 0xdd, 0xb2, 0x9e, 0x80, 0x61, 0x61, 0x19, 0x93, 0xb6, 0x8f, 0x15, 0xb8, 0x58, 0xc2, 0xed, + 0x5f, 0x29, 0x82, 0x11, 0xaa, 0x06, 0xfd, 0x8e, 0x05, 0xf3, 0x21, 0xf7, 0x08, 0x6a, 0x54, 0xda, + 0xa1, 0xeb, 0x37, 0x6b, 0xf5, 0x6d, 0xd2, 0x68, 0x7b, 0xae, 0xdf, 0x5c, 0x6b, 0xfa, 0x81, 0x2a, + 0x5e, 0xb9, 0x43, 0xea, 0x6d, 0xa6, 0x07, 0xef, 0x11, 0x17, 0x47, 0xbd, 0x3c, 0x5f, 0xbc, 0x7b, + 0x30, 0x37, 0x8f, 0x8f, 0x44, 0x1b, 0x1f, 0xb1, 0x2f, 0xe8, 0x3b, 0x16, 0x2c, 0xf0, 0x08, 0x2e, + 0xfd, 0xf7, 0xbf, 0xcb, 0x6d, 0xb4, 0x2a, 0x49, 0x25, 0x44, 0x36, 0x48, 0xb8, 0xbb, 0xf4, 0xa2, + 0x18, 0xd0, 0x85, 0xea, 0xd1, 0xda, 0xc2, 0x47, 0xed, 0x9c, 0xfd, 0xaf, 0x8a, 0x30, 0x4e, 0x47, + 0x31, 0xf1, 0x82, 0x7f, 0xc1, 0x58, 0x12, 0x8f, 0xa4, 0x96, 0xc4, 0xb4, 0x81, 0x7c, 0x3c, 0x0e, + 0xf0, 0x11, 0x4c, 0x7b, 0x4e, 0x14, 0x5f, 0x26, 0x4e, 0x18, 0x6f, 0x12, 0x87, 0x3d, 0xf5, 0x8a, + 0x65, 0x7e, 0x94, 0xd7, 0x63, 0xa5, 0xfe, 0xba, 0x9a, 0x26, 0x86, 0x3b, 0xe9, 0xa3, 0x3d, 0x40, + 0xec, 0x59, 0x39, 0x74, 0xfc, 0x88, 0x7f, 0x8b, 0x2b, 0x74, 0xe4, 0x47, 0x6b, 0x75, 0x56, 0xb4, + 0x8a, 0xae, 0x76, 0x50, 0xc3, 0x19, 0x2d, 0x68, 0xe6, 0x02, 0x83, 0xfd, 0x9a, 0x0b, 0x0c, 0xf5, + 0x30, 0x42, 0xdf, 0x85, 0x29, 0x31, 0x2b, 0x5b, 0x6e, 0x53, 0x1c, 0xd2, 0x6f, 0xa4, 0xcc, 0x89, + 0xac, 0xfe, 0x0d, 0x1f, 0x7a, 0xd8, 0x12, 0xd9, 0x3f, 0x0f, 0xa7, 0x68, 0x73, 0xa6, 0xc9, 0x74, + 0x84, 0x08, 0x4c, 0xee, 0xb4, 0x37, 0x89, 0x47, 0x62, 0x59, 0x26, 0x1a, 0xcd, 0x14, 0xfb, 0xcd, + 0xda, 0x89, 0x6c, 0x79, 0xc5, 0x24, 0x81, 0xd3, 0x34, 0xed, 0x5f, 0xb5, 0x80, 0x19, 0x26, 0x9e, + 0xc0, 0xf1, 0xf7, 0x29, 0xf3, 0xf8, 0x2b, 0xe7, 0x71, 0xa0, 0x9c, 0x93, 0xef, 0x79, 0x3e, 0x2d, + 0xd5, 0x30, 0xb8, 0xb3, 0x2f, 0x65, 0xff, 0xde, 0x12, 0xd7, 0xff, 0xb1, 0xf8, 0x86, 0x54, 0x0e, + 0x92, 0xe8, 0xb3, 0x30, 0x52, 0x77, 0x5a, 0x4e, 0x9d, 0xc7, 0x08, 0xcb, 0xd5, 0xfe, 0x18, 0x95, + 0xe6, 0x97, 0x45, 0x0d, 0xae, 0xcd, 0xf8, 0xb8, 0xfc, 0x4a, 0x59, 0xdc, 0x53, 0x83, 0xa1, 0x9a, + 0x9c, 0xdd, 0x81, 0x71, 0x83, 0xd8, 0x7d, 0xbd, 0xfa, 0x7e, 0x96, 0x1f, 0x17, 0xea, 0xc6, 0xb2, + 0x0b, 0xd3, 0xbe, 0xf6, 0x9f, 0x32, 0x47, 0x29, 0x4e, 0x7f, 0xb4, 0xd7, 0x81, 0xc0, 0x38, 0xa9, + 0x66, 0x78, 0x99, 0x22, 0x83, 0x3b, 0x29, 0xdb, 0x7f, 0xc7, 0x82, 0x07, 0x75, 0x44, 0xcd, 0x77, + 0xb5, 0x97, 0x3e, 0xb9, 0x02, 0x23, 0x41, 0x8b, 0x84, 0x4e, 0x72, 0x27, 0xbb, 0x20, 0x07, 0xfd, + 0xba, 0x28, 0x3f, 0x3c, 0x98, 0x9b, 0xd1, 0xa9, 0xcb, 0x72, 0xac, 0x6a, 0x22, 0x1b, 0x86, 0xd8, + 0x60, 0x44, 0xc2, 0xaf, 0x98, 0xc5, 0xd1, 0x62, 0xcf, 0x5d, 0x11, 0x16, 0x10, 0xfb, 0x17, 0x2c, + 0xbe, 0xb0, 0xf4, 0xae, 0xa3, 0x77, 0x61, 0x6a, 0x97, 0x5e, 0xdf, 0x56, 0xee, 0xb4, 0x42, 0xae, + 0x46, 0x97, 0xe3, 0xf4, 0x54, 0xaf, 0x71, 0xd2, 0x3e, 0x72, 0xa9, 0x2c, 0xfa, 0x3c, 0xb5, 0x9e, + 0x22, 0x86, 0x3b, 0xc8, 0xdb, 0x7f, 0x5a, 0xe0, 0x3b, 0x91, 0x49, 0x75, 0x4f, 0xc0, 0x70, 0x2b, + 0x68, 0x2c, 0xaf, 0x55, 0xb0, 0x18, 0x21, 0xc5, 0xae, 0xaa, 0xbc, 0x18, 0x4b, 0x38, 0xba, 0x08, + 0x40, 0xee, 0xc4, 0x24, 0xf4, 0x1d, 0x4f, 0x3d, 0xc6, 0x2b, 0xe1, 0x69, 0x45, 0x41, 0xb0, 0x86, + 0x45, 0xeb, 0xb4, 0xc2, 0x60, 0xcf, 0x6d, 0x30, 0xc7, 0x8e, 0xa2, 0x59, 0xa7, 0xaa, 0x20, 0x58, + 0xc3, 0xa2, 0x57, 0xe5, 0xb6, 0x1f, 0xf1, 0x03, 0xd0, 0xd9, 0x14, 0xa1, 0x78, 0x46, 0x92, 0xab, + 0xf2, 0x0d, 0x1d, 0x88, 0x4d, 0x5c, 0xb4, 0x08, 0x43, 0xb1, 0xc3, 0x9e, 0x98, 0x07, 0xf3, 0x4d, + 0x76, 0x36, 0x28, 0x86, 0x1e, 0x34, 0x8a, 0x56, 0xc0, 0xa2, 0x22, 0x7a, 0x53, 0xb2, 0x60, 0xce, + 0x92, 0x85, 0xe9, 0x55, 0xee, 0xb2, 0xd5, 0xd9, 0xb7, 0xce, 0x83, 0x85, 0x49, 0x97, 0x41, 0xcb, + 0xfe, 0x7c, 0x09, 0x20, 0x91, 0xf6, 0xd0, 0x7b, 0x1d, 0x2c, 0xe2, 0xe9, 0xee, 0xf2, 0xe1, 0xf1, + 0xf1, 0x07, 0xf4, 0x05, 0x0b, 0x46, 0x1d, 0xcf, 0x0b, 0xea, 0x4e, 0xcc, 0x46, 0xb9, 0xd0, 0x9d, + 0x45, 0x89, 0xf6, 0x17, 0x93, 0x1a, 0xbc, 0x0b, 0xcf, 0xc9, 0xd7, 0x63, 0x0d, 0xd2, 0xb3, 0x17, + 0x7a, 0xc3, 0xe8, 0xe3, 0xf2, 0x12, 0xc0, 0x97, 0xc7, 0x6c, 0xfa, 0x12, 0x50, 0x62, 0xdc, 0x58, + 0x93, 0xff, 0xd1, 0x0d, 0x23, 0x66, 0xcd, 0x40, 0xbe, 0x7b, 0xae, 0x21, 0xf4, 0xf4, 0x0a, 0x57, + 0x83, 0xaa, 0xba, 0x09, 0xfa, 0x60, 0xbe, 0x0f, 0xbb, 0x26, 0x5d, 0xf7, 0x30, 0x3f, 0x7f, 0x07, + 0x26, 0x1b, 0xe6, 0x71, 0x2b, 0x56, 0xd3, 0xe3, 0x79, 0x74, 0x53, 0xa7, 0x73, 0x72, 0xc0, 0xa6, + 0x00, 0x38, 0x4d, 0x18, 0x55, 0xb9, 0x33, 0xc0, 0x9a, 0xbf, 0x15, 0x08, 0x13, 0x3e, 0x3b, 0x77, + 0x2e, 0xf7, 0xa3, 0x98, 0xec, 0x52, 0xcc, 0xe4, 0x1c, 0xbd, 0x26, 0xea, 0x62, 0x45, 0x05, 0xbd, + 0x06, 0x43, 0xcc, 0x43, 0x2b, 0x2a, 0x8f, 0xe4, 0xeb, 0x01, 0x4d, 0xe7, 0xe2, 0x64, 0x53, 0xb1, + 0xbf, 0x11, 0x16, 0x14, 0xd0, 0x65, 0x19, 0x22, 0x20, 0x5a, 0xf3, 0x6f, 0x44, 0x84, 0x85, 0x08, + 0x28, 0x2d, 0x7d, 0x34, 0xf1, 0xfe, 0xe7, 0xe5, 0x99, 0xe1, 0x21, 0x8d, 0x9a, 0x54, 0x5e, 0x11, + 0xff, 0x65, 0xd4, 0xc9, 0x32, 0xe4, 0x77, 0xcf, 0x8c, 0x4c, 0x99, 0x0c, 0xe7, 0x4d, 0x93, 0x04, + 0x4e, 0xd3, 0x3c, 0xd1, 0xe3, 0x73, 0xd6, 0x87, 0xa9, 0xf4, 0xc6, 0xba, 0xaf, 0xc7, 0xf5, 0x0f, + 0x06, 0x60, 0xc2, 0x5c, 0x08, 0x68, 0x01, 0x4a, 0x82, 0x88, 0x0a, 0x17, 0xa6, 0xd6, 0xf6, 0xba, + 0x04, 0xe0, 0x04, 0x87, 0x85, 0x4b, 0x63, 0xd5, 0x35, 0xdb, 0xac, 0x24, 0x5c, 0x9a, 0x82, 0x60, + 0x0d, 0x8b, 0x0a, 0xd1, 0x9b, 0x41, 0x10, 0xab, 0xa3, 0x40, 0xad, 0x96, 0x25, 0x56, 0x8a, 0x05, + 0x94, 0x1e, 0x01, 0x3b, 0x24, 0xf4, 0x89, 0x67, 0x6a, 0x32, 0xd5, 0x11, 0x70, 0x45, 0x07, 0x62, + 0x13, 0x97, 0x1e, 0x69, 0x41, 0xc4, 0x96, 0x9f, 0x10, 0xd5, 0x13, 0x5b, 0xb7, 0x1a, 0xf7, 0x50, + 0x94, 0x70, 0xf4, 0x06, 0x3c, 0xa8, 0x1c, 0x0a, 0x31, 0xd7, 0x0c, 0xcb, 0x16, 0x87, 0x8c, 0x9b, + 0xf5, 0x83, 0xcb, 0xd9, 0x68, 0x38, 0xaf, 0x3e, 0x7a, 0x15, 0x26, 0x84, 0x08, 0x2c, 0x29, 0x0e, + 0x9b, 0xc6, 0x0a, 0x57, 0x0c, 0x28, 0x4e, 0x61, 0xa3, 0x0a, 0x4c, 0xd1, 0x12, 0x26, 0x85, 0x4a, + 0x0a, 0xdc, 0x31, 0x52, 0x9d, 0xf5, 0x57, 0x52, 0x70, 0xdc, 0x51, 0x03, 0x2d, 0xc2, 0x24, 0x97, + 0x51, 0xe8, 0x9d, 0x92, 0xcd, 0x83, 0xb0, 0xac, 0x55, 0x1b, 0xe1, 0xba, 0x09, 0xc6, 0x69, 0x7c, + 0xf4, 0x12, 0x8c, 0x39, 0x61, 0x7d, 0xdb, 0x8d, 0x49, 0x3d, 0x6e, 0x87, 0x3c, 0x00, 0x87, 0x66, + 0xed, 0xb1, 0xa8, 0xc1, 0xb0, 0x81, 0x69, 0xbf, 0x07, 0xa7, 0x32, 0x8c, 0xf2, 0xe9, 0xc2, 0x71, + 0x5a, 0xae, 0xfc, 0xa6, 0x94, 0xd5, 0xda, 0x62, 0x75, 0x4d, 0x7e, 0x8d, 0x86, 0x45, 0x57, 0x27, + 0x53, 0x89, 0x6b, 0xa1, 0x61, 0xd5, 0xea, 0x5c, 0x95, 0x00, 0x9c, 0xe0, 0xd8, 0xbf, 0x0f, 0xa0, + 0x29, 0x74, 0xfa, 0xb0, 0x59, 0x7a, 0x09, 0xc6, 0x64, 0x3c, 0x63, 0x2d, 0x8e, 0xa6, 0xfa, 0xcc, + 0x4b, 0x1a, 0x0c, 0x1b, 0x98, 0xb4, 0x6f, 0xbe, 0x8a, 0x02, 0x9a, 0xb2, 0x91, 0x4b, 0x62, 0x80, + 0x26, 0x38, 0xe8, 0x69, 0x18, 0x89, 0x88, 0xb7, 0x75, 0xd5, 0xf5, 0x77, 0xc4, 0xc2, 0x56, 0x5c, + 0xb8, 0x26, 0xca, 0xb1, 0xc2, 0x40, 0x4b, 0x50, 0x6c, 0xbb, 0x0d, 0xb1, 0x94, 0xe5, 0x81, 0x5f, + 0xbc, 0xb1, 0x56, 0x39, 0x3c, 0x98, 0x7b, 0x24, 0x2f, 0x4c, 0x33, 0xbd, 0xda, 0x47, 0xf3, 0x74, + 0xfb, 0xd1, 0xca, 0x59, 0x6f, 0x03, 0x43, 0x47, 0x7c, 0x1b, 0xb8, 0x08, 0x20, 0xbe, 0x5a, 0xae, + 0xe5, 0x62, 0x32, 0x6b, 0x97, 0x14, 0x04, 0x6b, 0x58, 0x28, 0x82, 0xe9, 0x7a, 0x48, 0x1c, 0x79, + 0x87, 0xe6, 0xe6, 0xe5, 0x23, 0xf7, 0xae, 0x20, 0x58, 0x4e, 0x13, 0xc3, 0x9d, 0xf4, 0x51, 0x00, + 0xd3, 0x0d, 0xe1, 0xbf, 0x9a, 0x34, 0x5a, 0x3a, 0xba, 0x4d, 0x3b, 0x33, 0xc8, 0x49, 0x13, 0xc2, + 0x9d, 0xb4, 0xd1, 0xdb, 0x30, 0x2b, 0x0b, 0x3b, 0x5d, 0x86, 0xd9, 0x76, 0x29, 0x2e, 0x9d, 0xbb, + 0x7b, 0x30, 0x37, 0x5b, 0xc9, 0xc5, 0xc2, 0x5d, 0x28, 0x20, 0x0c, 0x43, 0xec, 0x2d, 0x29, 0x2a, + 0x8f, 0xb2, 0x73, 0xee, 0xc9, 0x7c, 0x65, 0x00, 0x5d, 0xeb, 0xf3, 0xec, 0x1d, 0x4a, 0x98, 0xf9, + 0x26, 0xcf, 0x72, 0xac, 0x10, 0x0b, 0x4a, 0x68, 0x0b, 0x46, 0x1d, 0xdf, 0x0f, 0x62, 0x87, 0x8b, + 0x50, 0x63, 0xf9, 0xb2, 0x9f, 0x46, 0x78, 0x31, 0xa9, 0xc1, 0xa9, 0x2b, 0xcb, 0x41, 0x0d, 0x82, + 0x75, 0xc2, 0xe8, 0x36, 0x4c, 0x06, 0xb7, 0x29, 0x73, 0x94, 0x5a, 0x8a, 0xa8, 0x3c, 0xce, 0xda, + 0x7a, 0xbe, 0x4f, 0x3d, 0xad, 0x51, 0x59, 0xe3, 0x5a, 0x26, 0x51, 0x9c, 0x6e, 0x05, 0xcd, 0x1b, + 0xda, 0xea, 0x89, 0xc4, 0x9e, 0x3d, 0xd1, 0x56, 0xeb, 0xca, 0x69, 0xe6, 0x82, 0xce, 0xcd, 0x56, + 0xd9, 0xee, 0x9f, 0x4c, 0xb9, 0xa0, 0x27, 0x20, 0xac, 0xe3, 0xa1, 0x6d, 0x18, 0x4b, 0x9e, 0xac, + 0xc2, 0x88, 0x45, 0xa8, 0x19, 0xbd, 0x78, 0xb1, 0xbf, 0x8f, 0x5b, 0xd3, 0x6a, 0xf2, 0x9b, 0x83, + 0x5e, 0x82, 0x0d, 0xca, 0xb3, 0x3f, 0x05, 0xa3, 0xda, 0xc4, 0x1e, 0xc5, 0x2a, 0x7b, 0xf6, 0x55, + 0x98, 0x4a, 0x4f, 0xdd, 0x91, 0xac, 0xba, 0xff, 0x77, 0x01, 0x26, 0x33, 0x5e, 0xae, 0x58, 0xa8, + 0xe7, 0x14, 0x43, 0x4d, 0x22, 0x3b, 0x9b, 0x6c, 0xb1, 0xd0, 0x07, 0x5b, 0x94, 0x3c, 0xba, 0x98, + 0xcb, 0xa3, 0x05, 0x2b, 0x1c, 0x78, 0x3f, 0xac, 0xd0, 0x3c, 0x7d, 0x06, 0xfb, 0x3a, 0x7d, 0x8e, + 0x81, 0x7d, 0x1a, 0x07, 0xd8, 0x70, 0x1f, 0x07, 0xd8, 0x97, 0x0b, 0x30, 0x95, 0x8e, 0x27, 0x7c, + 0x02, 0xef, 0x1d, 0xaf, 0x19, 0xef, 0x1d, 0xd9, 0x81, 0xd3, 0xd3, 0x51, 0x8e, 0xf3, 0xde, 0x3e, + 0x70, 0xea, 0xed, 0xe3, 0xc9, 0xbe, 0xa8, 0x75, 0x7f, 0x07, 0xf9, 0xbb, 0x05, 0x38, 0x9d, 0xae, + 0xb2, 0xec, 0x39, 0xee, 0xee, 0x09, 0x8c, 0xcd, 0x75, 0x63, 0x6c, 0x9e, 0xe9, 0xe7, 0x6b, 0x58, + 0xd7, 0x72, 0x07, 0xe8, 0x56, 0x6a, 0x80, 0x16, 0xfa, 0x27, 0xd9, 0x7d, 0x94, 0xbe, 0x5b, 0x84, + 0x73, 0x99, 0xf5, 0x92, 0xe7, 0x82, 0x55, 0xe3, 0xb9, 0xe0, 0x62, 0xea, 0xb9, 0xc0, 0xee, 0x5e, + 0xfb, 0x78, 0xde, 0x0f, 0x84, 0xe7, 0x19, 0x8b, 0x9e, 0x76, 0x8f, 0x6f, 0x07, 0x86, 0xe7, 0x99, + 0x22, 0x84, 0x4d, 0xba, 0x3f, 0x4e, 0x6f, 0x06, 0xbf, 0x6f, 0xc1, 0x99, 0xcc, 0xb9, 0x39, 0x01, + 0xbd, 0xfa, 0x35, 0x53, 0xaf, 0xfe, 0x44, 0xdf, 0xab, 0x35, 0x47, 0xd1, 0xfe, 0xd5, 0x62, 0xce, + 0xb7, 0x30, 0xcd, 0xe4, 0x75, 0x18, 0x75, 0xea, 0x75, 0x12, 0x45, 0xeb, 0x41, 0x43, 0x05, 0x2b, + 0x7b, 0x86, 0x49, 0x1b, 0x49, 0xf1, 0xe1, 0xc1, 0xdc, 0x6c, 0x9a, 0x44, 0x02, 0xc6, 0x3a, 0x05, + 0x33, 0x00, 0x62, 0xe1, 0x58, 0x03, 0x20, 0x5e, 0x04, 0xd8, 0x53, 0xfa, 0x8a, 0xb4, 0x9a, 0x53, + 0xd3, 0x64, 0x68, 0x58, 0xe8, 0xe7, 0xd8, 0x2d, 0x80, 0x1b, 0x03, 0xf1, 0xa5, 0xf8, 0x5c, 0x9f, + 0x73, 0xa5, 0x1b, 0x16, 0x71, 0x17, 0x67, 0xa5, 0x12, 0x56, 0x24, 0xd1, 0xcf, 0xc0, 0x54, 0xc4, + 0x23, 0x68, 0x2c, 0x7b, 0x4e, 0xc4, 0x1c, 0x6b, 0xc4, 0x2a, 0x64, 0x7e, 0xcb, 0xb5, 0x14, 0x0c, + 0x77, 0x60, 0xdb, 0x5f, 0x1e, 0x80, 0x87, 0xba, 0x30, 0x1f, 0xb4, 0x68, 0x3e, 0xde, 0x3f, 0x95, + 0xd6, 0xdb, 0xcd, 0x66, 0x56, 0x36, 0x14, 0x79, 0xa9, 0x39, 0x2e, 0xbc, 0xef, 0x39, 0xfe, 0xa2, + 0xa5, 0x69, 0x54, 0xb9, 0x89, 0xef, 0xa7, 0x8e, 0xc8, 0x54, 0x8f, 0x51, 0xc5, 0xba, 0x95, 0xa1, + 0xa7, 0xbc, 0xd8, 0x77, 0x77, 0xfa, 0x56, 0x5c, 0x9e, 0xec, 0x53, 0xcf, 0xe7, 0x2c, 0x78, 0x24, + 0xb3, 0xbf, 0x86, 0xb1, 0xd1, 0x02, 0x94, 0xea, 0xb4, 0x50, 0x73, 0xb2, 0x4b, 0x5c, 0x5d, 0x25, + 0x00, 0x27, 0x38, 0x86, 0x4d, 0x51, 0xa1, 0xa7, 0x4d, 0xd1, 0xbf, 0xb4, 0x60, 0x26, 0xdd, 0x89, + 0x13, 0xe0, 0x80, 0x6b, 0x26, 0x07, 0xfc, 0x68, 0x3f, 0x73, 0x99, 0x67, 0x5d, 0x38, 0x01, 0x0f, + 0xe4, 0xe4, 0x8b, 0xd8, 0x83, 0xe9, 0x66, 0x9d, 0x98, 0xee, 0x8b, 0xe2, 0x63, 0x32, 0x3d, 0x3d, + 0xbb, 0xfa, 0x3a, 0xf2, 0x8b, 0x6c, 0x07, 0x0a, 0xee, 0x6c, 0x02, 0x7d, 0xce, 0x82, 0x19, 0xe7, + 0x76, 0xd4, 0x91, 0xbf, 0x49, 0xac, 0x99, 0xe7, 0x33, 0xf5, 0xab, 0x3d, 0xf2, 0x3d, 0x31, 0x17, + 0xa3, 0x99, 0x2c, 0x2c, 0x9c, 0xd9, 0x16, 0xc2, 0x22, 0x2e, 0x24, 0x95, 0x93, 0xbb, 0x38, 0xd8, + 0x66, 0xb9, 0x3f, 0x71, 0x5e, 0x28, 0x21, 0x58, 0xd1, 0x41, 0x37, 0xa1, 0xd4, 0x94, 0x3e, 0x89, + 0x82, 0xd7, 0x66, 0x1e, 0x5e, 0x99, 0x8e, 0x8b, 0xdc, 0xe7, 0x43, 0x81, 0x70, 0x42, 0x0a, 0xbd, + 0x0a, 0x45, 0x7f, 0x2b, 0xea, 0x96, 0x30, 0x23, 0x65, 0x83, 0xc7, 0x3d, 0xa5, 0xaf, 0xad, 0xd6, + 0x30, 0xad, 0x88, 0x2e, 0x43, 0x31, 0xdc, 0x6c, 0x88, 0x27, 0x81, 0x4c, 0x79, 0x12, 0x2f, 0x55, + 0xb2, 0x17, 0x09, 0xa7, 0x84, 0x97, 0x2a, 0x98, 0x92, 0x40, 0xab, 0x30, 0xc8, 0x9c, 0x9d, 0x84, + 0xe6, 0x3f, 0x33, 0xe6, 0x43, 0x87, 0x23, 0x17, 0x77, 0xa2, 0x66, 0xc5, 0x98, 0x57, 0x47, 0xaf, + 0xc1, 0x50, 0x9d, 0x65, 0x92, 0x10, 0x6a, 0x9a, 0xec, 0x38, 0x26, 0x1d, 0xb9, 0x26, 0xf8, 0x7b, + 0x27, 0x2f, 0xc7, 0x82, 0x02, 0xda, 0x80, 0xa1, 0x3a, 0x69, 0x6d, 0x6f, 0x45, 0x42, 0xfb, 0xf2, + 0xf1, 0x4c, 0x5a, 0x5d, 0x12, 0xa7, 0x08, 0xaa, 0x0c, 0x03, 0x0b, 0x5a, 0xe8, 0x93, 0x50, 0xd8, + 0xaa, 0x0b, 0xbf, 0xa7, 0x4c, 0x8d, 0xbf, 0xe9, 0xd8, 0xbe, 0x34, 0x74, 0xf7, 0x60, 0xae, 0xb0, + 0xba, 0x8c, 0x0b, 0x5b, 0x75, 0x74, 0x0d, 0x86, 0xb7, 0xb8, 0x77, 0xb2, 0x88, 0xf8, 0xfb, 0x78, + 0xb6, 0xe3, 0x74, 0x87, 0x03, 0x33, 0xf7, 0xd7, 0x11, 0x00, 0x2c, 0x89, 0xa0, 0x0d, 0x80, 0x2d, + 0xe5, 0x65, 0x2d, 0x42, 0xfe, 0x7e, 0xb4, 0x1f, 0x5f, 0x6c, 0xa1, 0x8a, 0x50, 0xa5, 0x58, 0xa3, + 0x83, 0x3e, 0x03, 0x25, 0x47, 0xe6, 0x06, 0x62, 0xe1, 0x7e, 0x4d, 0xc9, 0x20, 0xd9, 0x7a, 0xdd, + 0xd3, 0x26, 0xf1, 0x75, 0xab, 0x90, 0x70, 0x42, 0x14, 0xed, 0xc0, 0xf8, 0x5e, 0xd4, 0xda, 0x26, + 0x72, 0xab, 0xb2, 0x18, 0xc0, 0x39, 0x47, 0xd3, 0x4d, 0x81, 0xe8, 0x86, 0x71, 0xdb, 0xf1, 0x3a, + 0xb8, 0x0b, 0x73, 0xee, 0xba, 0xa9, 0x13, 0xc3, 0x26, 0x6d, 0x3a, 0xe8, 0xef, 0xb6, 0x83, 0xcd, + 0xfd, 0x98, 0x88, 0xc8, 0xc0, 0x99, 0x83, 0xfe, 0x3a, 0x47, 0xe9, 0x1c, 0x74, 0x01, 0xc0, 0x92, + 0x08, 0xdd, 0xcc, 0x8e, 0xcc, 0xbb, 0x25, 0xf4, 0x2d, 0x4f, 0xe4, 0x0e, 0x4f, 0x47, 0x7f, 0x93, + 0x41, 0x61, 0x5c, 0x30, 0x21, 0xc5, 0xb8, 0x5f, 0x6b, 0x3b, 0x88, 0x03, 0x3f, 0xc5, 0x79, 0xa7, + 0xf3, 0xb9, 0x5f, 0x35, 0x03, 0xbf, 0x93, 0xfb, 0x65, 0x61, 0xe1, 0xcc, 0xb6, 0x50, 0x03, 0x26, + 0x5a, 0x41, 0x18, 0xdf, 0x0e, 0x42, 0xb9, 0xaa, 0x50, 0x97, 0x8b, 0xb8, 0x81, 0x29, 0x5a, 0x64, + 0xb6, 0xda, 0x26, 0x04, 0xa7, 0x68, 0xa2, 0x4f, 0xc3, 0x70, 0x54, 0x77, 0x3c, 0xb2, 0x76, 0xbd, + 0x7c, 0x2a, 0xff, 0x58, 0xa9, 0x71, 0x94, 0x9c, 0xd5, 0xc5, 0x26, 0x47, 0xa0, 0x60, 0x49, 0x8e, + 0xf2, 0x21, 0x16, 0x6e, 0x9e, 0x05, 0x35, 0xce, 0xe1, 0x43, 0x1d, 0xf6, 0xcc, 0x9c, 0x0f, 0xb1, + 0x62, 0xcc, 0xab, 0xd3, 0x3d, 0x20, 0xe4, 0xd1, 0x20, 0x2a, 0x9f, 0xce, 0xdf, 0x03, 0x42, 0x8c, + 0xbd, 0x5e, 0xeb, 0xb6, 0x07, 0x14, 0x12, 0x4e, 0x88, 0xda, 0xdf, 0x1c, 0xea, 0x94, 0x20, 0xd8, + 0xbd, 0xe3, 0xf3, 0x56, 0xc7, 0xa3, 0xfc, 0x27, 0xfa, 0x55, 0x83, 0x1c, 0xa3, 0xec, 0xf8, 0x39, + 0x0b, 0x1e, 0x68, 0x65, 0x7e, 0x94, 0x38, 0x8e, 0xfb, 0xd3, 0xa6, 0xf0, 0x61, 0x50, 0xe1, 0xc2, + 0xb3, 0xe1, 0x38, 0xa7, 0xa5, 0xb4, 0x7c, 0x5e, 0x7c, 0xdf, 0xf2, 0xf9, 0x3a, 0x8c, 0x30, 0x91, + 0x2f, 0x09, 0x4f, 0xd4, 0x97, 0x69, 0x1b, 0x3b, 0xd8, 0x97, 0x45, 0x45, 0xac, 0x48, 0xa0, 0x5f, + 0xb4, 0xe0, 0x6c, 0xba, 0xeb, 0x98, 0x30, 0xb0, 0x08, 0x75, 0xc9, 0xaf, 0x3c, 0xab, 0xe2, 0xfb, + 0xcf, 0x56, 0xbb, 0x21, 0x1f, 0xf6, 0x42, 0xc0, 0xdd, 0x1b, 0x43, 0x95, 0x8c, 0x3b, 0xd7, 0x90, + 0xf9, 0x66, 0xd7, 0xfb, 0xde, 0x85, 0x9e, 0x87, 0xb1, 0xdd, 0xa0, 0xed, 0x4b, 0xbf, 0x13, 0xe1, + 0x55, 0xcc, 0xf4, 0xc3, 0xeb, 0x5a, 0x39, 0x36, 0xb0, 0x4e, 0xf6, 0x0e, 0xf0, 0x35, 0x2b, 0x43, + 0x78, 0xe5, 0xb7, 0xc2, 0x57, 0xcc, 0x5b, 0xe1, 0x63, 0xe9, 0x5b, 0x61, 0x87, 0xf6, 0xce, 0xb8, + 0x10, 0xf6, 0x1f, 0xc2, 0xb7, 0xdf, 0xf8, 0x4d, 0xb6, 0x07, 0xe7, 0x7b, 0xb1, 0x69, 0x66, 0xde, + 0xd7, 0x50, 0xef, 0xde, 0x89, 0x79, 0x5f, 0x63, 0xad, 0x82, 0x19, 0xa4, 0xdf, 0x48, 0x20, 0xf6, + 0x7f, 0xb7, 0xa0, 0x58, 0x0d, 0x1a, 0x27, 0xa0, 0x8d, 0xfc, 0x94, 0xa1, 0x8d, 0x7c, 0x28, 0x27, + 0x9f, 0x67, 0xae, 0xee, 0x71, 0x25, 0xa5, 0x7b, 0x3c, 0x9b, 0x47, 0xa0, 0xbb, 0xa6, 0xf1, 0xef, + 0x15, 0x41, 0xcf, 0x3e, 0x8a, 0xfe, 0xf5, 0xbd, 0xd8, 0x89, 0x17, 0xbb, 0x25, 0x24, 0x15, 0x94, + 0x99, 0x55, 0xa0, 0x74, 0x41, 0xfd, 0x11, 0x33, 0x17, 0xbf, 0x45, 0xdc, 0xe6, 0x76, 0x4c, 0x1a, + 0xe9, 0xcf, 0x39, 0x39, 0x73, 0xf1, 0xff, 0x62, 0xc1, 0x64, 0xaa, 0x75, 0xe4, 0x65, 0xf9, 0xb3, + 0xdd, 0xa3, 0x16, 0x6a, 0xba, 0xa7, 0x03, 0xdc, 0x3c, 0x80, 0x7a, 0xea, 0x91, 0x9a, 0x1e, 0x26, + 0x05, 0xab, 0xb7, 0xa0, 0x08, 0x6b, 0x18, 0xe8, 0x05, 0x18, 0x8d, 0x83, 0x56, 0xe0, 0x05, 0xcd, + 0xfd, 0x2b, 0x44, 0xc6, 0x9e, 0x51, 0x0f, 0x72, 0x1b, 0x09, 0x08, 0xeb, 0x78, 0xf6, 0xaf, 0x15, + 0x21, 0x9d, 0xb1, 0xf6, 0x27, 0x6b, 0xf2, 0xc3, 0xb9, 0x26, 0xbf, 0x6b, 0xc1, 0x14, 0x6d, 0x9d, + 0x59, 0x5c, 0x49, 0x43, 0x6b, 0x95, 0xeb, 0xc3, 0xea, 0x92, 0xeb, 0xe3, 0x31, 0xca, 0xbb, 0x1a, + 0x41, 0x3b, 0x16, 0x9a, 0x22, 0x8d, 0x39, 0xd1, 0x52, 0x2c, 0xa0, 0x02, 0x8f, 0x84, 0xa1, 0xf0, + 0x52, 0xd3, 0xf1, 0x48, 0x18, 0x62, 0x01, 0x95, 0xa9, 0x40, 0x06, 0x72, 0x52, 0x81, 0xb0, 0xb0, + 0x6d, 0xc2, 0xca, 0x47, 0x08, 0x14, 0x5a, 0xd8, 0x36, 0x69, 0xfe, 0x93, 0xe0, 0xd8, 0x5f, 0x2f, + 0xc2, 0x58, 0x35, 0x68, 0x24, 0x8f, 0x2d, 0xcf, 0x1b, 0x8f, 0x2d, 0xe7, 0x53, 0x8f, 0x2d, 0x53, + 0x3a, 0xee, 0x4f, 0x9e, 0x56, 0x3e, 0xa8, 0xa7, 0x95, 0x3f, 0xb3, 0x60, 0xa2, 0x1a, 0x34, 0xe8, + 0x02, 0xfd, 0x71, 0x5a, 0x8d, 0x7a, 0x50, 0xc0, 0xa1, 0x2e, 0x41, 0x01, 0xff, 0xbe, 0x05, 0xc3, + 0xd5, 0xa0, 0x71, 0x02, 0x5a, 0xd4, 0x57, 0x4c, 0x2d, 0xea, 0x83, 0x39, 0x5c, 0x36, 0x47, 0x71, + 0xfa, 0x8d, 0x22, 0x8c, 0xd3, 0x7e, 0x06, 0x4d, 0x39, 0x4b, 0xc6, 0x88, 0x58, 0x7d, 0x8c, 0x08, + 0x15, 0xe6, 0x02, 0xcf, 0x0b, 0x6e, 0xa7, 0x67, 0x6c, 0x95, 0x95, 0x62, 0x01, 0x45, 0x4f, 0xc3, + 0x48, 0x2b, 0x24, 0x7b, 0x6e, 0xd0, 0x8e, 0xd2, 0x7e, 0xae, 0x55, 0x51, 0x8e, 0x15, 0x06, 0x95, + 0xdb, 0x23, 0xd7, 0xaf, 0x13, 0x69, 0xf9, 0x33, 0xc0, 0x2c, 0x7f, 0x78, 0x5c, 0x55, 0xad, 0x1c, + 0x1b, 0x58, 0xe8, 0x16, 0x94, 0xd8, 0x7f, 0xb6, 0x6f, 0x8e, 0x9e, 0xe9, 0x43, 0x04, 0x33, 0x17, + 0x04, 0x70, 0x42, 0x0b, 0x5d, 0x04, 0x88, 0xa5, 0x8d, 0x52, 0x24, 0xdc, 0xb0, 0x95, 0x44, 0xa9, + 0xac, 0x97, 0x22, 0xac, 0x61, 0xa1, 0xa7, 0xa0, 0x14, 0x3b, 0xae, 0x77, 0xd5, 0xf5, 0x49, 0x24, + 0x6c, 0xbc, 0x44, 0xac, 0x72, 0x51, 0x88, 0x13, 0x38, 0x3d, 0xd1, 0x99, 0x93, 0x3f, 0xcf, 0x13, + 0x34, 0xc2, 0xb0, 0xd9, 0x89, 0x7e, 0x55, 0x95, 0x62, 0x0d, 0xc3, 0x7e, 0x09, 0x4e, 0x57, 0x83, + 0x46, 0x35, 0x08, 0xe3, 0xd5, 0x20, 0xbc, 0xed, 0x84, 0x0d, 0x39, 0x7f, 0x73, 0x32, 0x6c, 0x36, + 0x3d, 0x75, 0x07, 0xb9, 0x36, 0xc0, 0x08, 0x88, 0xfd, 0x1c, 0x3b, 0xd3, 0x8f, 0xe8, 0x90, 0xf3, + 0xef, 0x0a, 0x80, 0xaa, 0xcc, 0x8a, 0xca, 0x48, 0x26, 0xf5, 0x36, 0x4c, 0x44, 0xe4, 0xaa, 0xeb, + 0xb7, 0xef, 0xc8, 0xfb, 0x55, 0x17, 0x6f, 0xa7, 0xda, 0x8a, 0x8e, 0xc9, 0x75, 0x2b, 0x66, 0x19, + 0x4e, 0x51, 0xa3, 0x43, 0x18, 0xb6, 0xfd, 0xc5, 0xe8, 0x46, 0x44, 0x42, 0x91, 0x3c, 0x89, 0x0d, + 0x21, 0x96, 0x85, 0x38, 0x81, 0xd3, 0x25, 0xc3, 0xfe, 0x5c, 0x0b, 0x7c, 0x1c, 0x04, 0xb1, 0x5c, + 0x64, 0x2c, 0xfd, 0x86, 0x56, 0x8e, 0x0d, 0x2c, 0xb4, 0x0a, 0x28, 0x6a, 0xb7, 0x5a, 0x1e, 0x7b, + 0x9a, 0x74, 0xbc, 0x4b, 0x61, 0xd0, 0x6e, 0xf1, 0xe7, 0x25, 0x91, 0xb9, 0xa2, 0xd6, 0x01, 0xc5, + 0x19, 0x35, 0x28, 0x63, 0xd8, 0x8a, 0xd8, 0x6f, 0xe1, 0xe7, 0xcf, 0xb5, 0x9c, 0x35, 0x56, 0x84, + 0x25, 0xcc, 0xfe, 0x2c, 0x3b, 0xcc, 0x58, 0xce, 0x9b, 0xb8, 0x1d, 0x12, 0xb4, 0x0b, 0xe3, 0x2d, + 0x76, 0x60, 0xc5, 0x61, 0xe0, 0x79, 0x44, 0xca, 0x8d, 0xf7, 0x66, 0xd1, 0xc5, 0x73, 0x60, 0xe8, + 0xe4, 0xb0, 0x49, 0xdd, 0xfe, 0xfc, 0x24, 0xe3, 0x4b, 0x35, 0x7e, 0x69, 0x19, 0x16, 0x76, 0xda, + 0x42, 0x42, 0x9b, 0xcd, 0xcf, 0x31, 0x97, 0x70, 0x7a, 0x61, 0xeb, 0x8d, 0x65, 0x5d, 0xf4, 0x3a, + 0x7b, 0x97, 0xe3, 0xcc, 0xa0, 0x57, 0x76, 0x4b, 0x8e, 0x65, 0x3c, 0xc1, 0x89, 0x8a, 0x58, 0x23, + 0x82, 0xae, 0xc2, 0xb8, 0x48, 0x91, 0x22, 0x14, 0x0f, 0x45, 0xe3, 0xfa, 0x3b, 0x8e, 0x75, 0xe0, + 0x61, 0xba, 0x00, 0x9b, 0x95, 0x51, 0x13, 0xce, 0x6a, 0x09, 0xbd, 0x32, 0xac, 0x0a, 0x39, 0x6f, + 0x79, 0xe4, 0xee, 0xc1, 0xdc, 0xd9, 0x8d, 0x6e, 0x88, 0xb8, 0x3b, 0x1d, 0x74, 0x1d, 0x4e, 0x3b, + 0xf5, 0xd8, 0xdd, 0x23, 0x15, 0xe2, 0x34, 0x3c, 0xd7, 0x27, 0x66, 0xe0, 0x87, 0x33, 0x77, 0x0f, + 0xe6, 0x4e, 0x2f, 0x66, 0x21, 0xe0, 0xec, 0x7a, 0xe8, 0x15, 0x28, 0x35, 0xfc, 0x48, 0x8c, 0xc1, + 0x90, 0x91, 0xab, 0xae, 0x54, 0xb9, 0x56, 0x53, 0xdf, 0x9f, 0xfc, 0xc1, 0x49, 0x05, 0xd4, 0x84, + 0x31, 0xdd, 0xb9, 0x4b, 0xe4, 0x39, 0x7c, 0xa6, 0xcb, 0xdd, 0xd6, 0xf0, 0x88, 0xe2, 0x5a, 0x37, + 0x65, 0xb3, 0x6b, 0x38, 0x4b, 0x19, 0x84, 0xd1, 0x6b, 0x80, 0x22, 0x12, 0xee, 0xb9, 0x75, 0xb2, + 0x58, 0x67, 0x81, 0x87, 0x99, 0xae, 0x66, 0xc4, 0x70, 0x40, 0x41, 0xb5, 0x0e, 0x0c, 0x9c, 0x51, + 0x0b, 0x5d, 0xa6, 0x1c, 0x45, 0x2f, 0x15, 0x26, 0xd6, 0x52, 0xcc, 0x2b, 0x57, 0x48, 0x2b, 0x24, + 0x75, 0x27, 0x26, 0x0d, 0x93, 0x22, 0x4e, 0xd5, 0xa3, 0xe7, 0x8d, 0xca, 0xe7, 0x00, 0xa6, 0x61, + 0x70, 0x67, 0x4e, 0x07, 0x7a, 0x43, 0xda, 0x0e, 0xa2, 0xf8, 0x1a, 0x89, 0x6f, 0x07, 0xe1, 0x8e, + 0x88, 0xd6, 0x96, 0x04, 0x73, 0x4c, 0x40, 0x58, 0xc7, 0xa3, 0x12, 0x11, 0x7b, 0x18, 0x5b, 0xab, + 0xb0, 0x17, 0x8b, 0x91, 0x64, 0x9f, 0x5c, 0xe6, 0xc5, 0x58, 0xc2, 0x25, 0xea, 0x5a, 0x75, 0x99, + 0xbd, 0x43, 0xa4, 0x50, 0xd7, 0xaa, 0xcb, 0x58, 0xc2, 0x11, 0xe9, 0xcc, 0x03, 0x38, 0x91, 0xff, + 0x82, 0xd4, 0xc9, 0x97, 0xfb, 0x4c, 0x05, 0xe8, 0xc3, 0x94, 0xca, 0x40, 0xc8, 0xc3, 0xd8, 0x45, + 0xe5, 0x49, 0xb6, 0x48, 0xfa, 0x8f, 0x81, 0xa7, 0x74, 0x71, 0x6b, 0x29, 0x4a, 0xb8, 0x83, 0xb6, + 0x11, 0x50, 0x64, 0xaa, 0x67, 0x3e, 0x8e, 0x05, 0x28, 0x45, 0xed, 0xcd, 0x46, 0xb0, 0xeb, 0xb8, + 0x3e, 0x7b, 0x36, 0xd0, 0x04, 0x91, 0x9a, 0x04, 0xe0, 0x04, 0x07, 0xad, 0xc2, 0x88, 0x23, 0x2e, + 0x5f, 0x42, 0xd1, 0x9f, 0x19, 0x61, 0x40, 0x5e, 0xd0, 0xb8, 0x1e, 0x54, 0xfe, 0xc3, 0xaa, 0x2e, + 0x7a, 0x19, 0xc6, 0x85, 0x13, 0x9c, 0xb0, 0x5f, 0x3d, 0x65, 0xfa, 0x4b, 0xd4, 0x74, 0x20, 0x36, + 0x71, 0xd1, 0xcf, 0xc1, 0x04, 0xa5, 0x92, 0x30, 0xb6, 0xf2, 0x4c, 0x3f, 0x1c, 0x51, 0x8b, 0xb3, + 0xae, 0x57, 0xc6, 0x29, 0x62, 0xa8, 0x01, 0x0f, 0x3b, 0xed, 0x38, 0x60, 0xca, 0x4a, 0x73, 0xfd, + 0x6f, 0x04, 0x3b, 0xc4, 0x67, 0xda, 0xfd, 0x91, 0xa5, 0xf3, 0x77, 0x0f, 0xe6, 0x1e, 0x5e, 0xec, + 0x82, 0x87, 0xbb, 0x52, 0x41, 0x37, 0x60, 0x34, 0x0e, 0x3c, 0x61, 0x78, 0x1e, 0x95, 0x1f, 0xc8, + 0x0f, 0x88, 0xb4, 0xa1, 0xd0, 0x74, 0x75, 0x82, 0xaa, 0x8a, 0x75, 0x3a, 0x68, 0x83, 0xef, 0x31, + 0x16, 0xbe, 0x93, 0x44, 0xe5, 0x07, 0xf3, 0x07, 0x46, 0x45, 0xf9, 0x34, 0xb7, 0xa0, 0xa8, 0x89, + 0x75, 0x32, 0xe8, 0x12, 0x4c, 0xb7, 0x42, 0x37, 0x60, 0x0b, 0x5b, 0x29, 0x8a, 0xcb, 0x46, 0xa8, + 0xbc, 0xe9, 0x6a, 0x1a, 0x01, 0x77, 0xd6, 0x41, 0x17, 0xa8, 0x80, 0xca, 0x0b, 0xcb, 0x67, 0x78, + 0x9e, 0x16, 0x2e, 0x9c, 0xf2, 0x32, 0xac, 0xa0, 0xb3, 0x3f, 0x0d, 0xd3, 0x1d, 0x9c, 0xf2, 0x48, + 0x46, 0xc0, 0xff, 0x64, 0x10, 0x4a, 0x4a, 0x1d, 0x88, 0x16, 0x4c, 0x2d, 0xef, 0x99, 0xb4, 0x96, + 0x77, 0x84, 0xca, 0x6b, 0xba, 0x62, 0x77, 0x23, 0x23, 0xcd, 0xfc, 0xf9, 0x1c, 0xd6, 0xd0, 0xbf, + 0xc7, 0xde, 0x11, 0x52, 0xf0, 0x27, 0x17, 0xc6, 0x81, 0xae, 0x17, 0xc6, 0x3e, 0x53, 0x3e, 0xd2, + 0xab, 0x61, 0x2b, 0x68, 0xac, 0x55, 0xd3, 0x39, 0xd0, 0xaa, 0xb4, 0x10, 0x73, 0x18, 0x13, 0xee, + 0xe9, 0xb1, 0xce, 0x84, 0xfb, 0xe1, 0x7b, 0x14, 0xee, 0x25, 0x01, 0x9c, 0xd0, 0x42, 0x1e, 0x4c, + 0xd7, 0xcd, 0xf4, 0x75, 0xca, 0x4b, 0xef, 0xd1, 0x9e, 0x89, 0xe4, 0xda, 0x5a, 0x5e, 0x9b, 0xe5, + 0x34, 0x15, 0xdc, 0x49, 0x18, 0xbd, 0x0c, 0x23, 0xef, 0x06, 0x11, 0x5b, 0x76, 0xe2, 0x6c, 0x93, + 0x7e, 0x51, 0x23, 0xaf, 0x5f, 0xaf, 0xb1, 0xf2, 0xc3, 0x83, 0xb9, 0xd1, 0x6a, 0xd0, 0x90, 0x7f, + 0xb1, 0xaa, 0x80, 0xee, 0xc0, 0x69, 0x83, 0x23, 0xa8, 0xee, 0x42, 0xff, 0xdd, 0x3d, 0x2b, 0x9a, + 0x3b, 0xbd, 0x96, 0x45, 0x09, 0x67, 0x37, 0x60, 0x7f, 0x93, 0x2b, 0x3d, 0x85, 0x6a, 0x84, 0x44, + 0x6d, 0xef, 0x24, 0x92, 0x57, 0xac, 0x18, 0x5a, 0x9b, 0x7b, 0x56, 0xac, 0xff, 0x9e, 0xc5, 0x14, + 0xeb, 0x1b, 0x64, 0xb7, 0xe5, 0x39, 0xf1, 0x49, 0x98, 0x7e, 0xbf, 0x0e, 0x23, 0xb1, 0x68, 0xad, + 0x5b, 0xbe, 0x0d, 0xad, 0x53, 0xec, 0x71, 0x41, 0x1d, 0x88, 0xb2, 0x14, 0x2b, 0x32, 0xf6, 0x3f, + 0xe3, 0x33, 0x20, 0x21, 0x27, 0xa0, 0x5b, 0xa8, 0x98, 0xba, 0x85, 0xb9, 0x1e, 0x5f, 0x90, 0xa3, + 0x63, 0xf8, 0xa7, 0x66, 0xbf, 0xd9, 0xdd, 0xe3, 0xc3, 0xfe, 0xa2, 0x63, 0xff, 0xb2, 0x05, 0x33, + 0x59, 0x26, 0x01, 0x54, 0x88, 0xe1, 0x37, 0x1f, 0xf5, 0xc2, 0xa5, 0x46, 0xf0, 0xa6, 0x28, 0xc7, + 0x0a, 0xa3, 0xef, 0x98, 0xf7, 0x47, 0x0b, 0x02, 0x76, 0x1d, 0xcc, 0x4c, 0x87, 0xe8, 0x55, 0xee, + 0xcb, 0x61, 0xa9, 0x54, 0x84, 0x47, 0xf3, 0xe3, 0xb0, 0x7f, 0xbd, 0x00, 0x33, 0x5c, 0x45, 0xbd, + 0xb8, 0x17, 0xb8, 0x8d, 0x6a, 0xd0, 0x10, 0x9e, 0x2d, 0x6f, 0xc2, 0x58, 0x4b, 0xbb, 0xae, 0x76, + 0x0b, 0x43, 0xa4, 0x5f, 0x6b, 0x93, 0x6b, 0x83, 0x5e, 0x8a, 0x0d, 0x5a, 0xa8, 0x01, 0x63, 0x64, + 0xcf, 0xad, 0x2b, 0x3d, 0x67, 0xe1, 0xc8, 0x2c, 0x5d, 0xb5, 0xb2, 0xa2, 0xd1, 0xc1, 0x06, 0xd5, + 0xfb, 0x90, 0x99, 0xc6, 0xfe, 0x8a, 0x05, 0x0f, 0xe6, 0x04, 0x2d, 0xa2, 0xcd, 0xdd, 0x66, 0x8f, + 0x01, 0x22, 0x6d, 0xa6, 0x6a, 0x8e, 0x3f, 0x11, 0x60, 0x01, 0x45, 0x9f, 0x06, 0xe0, 0x2a, 0x7e, + 0x2a, 0x45, 0x8b, 0x4f, 0xef, 0x2f, 0x98, 0x87, 0x16, 0xf1, 0x41, 0xd6, 0xc7, 0x1a, 0x2d, 0xfb, + 0x57, 0x8b, 0x30, 0xc8, 0x73, 0xa8, 0xaf, 0xc2, 0xf0, 0x36, 0x0f, 0x91, 0xdc, 0x4f, 0x34, 0xe6, + 0xe4, 0x3a, 0xc2, 0x0b, 0xb0, 0xac, 0x8c, 0xd6, 0xe1, 0x94, 0xf0, 0x9e, 0xaa, 0x10, 0xcf, 0xd9, + 0x97, 0xb7, 0x5a, 0x9e, 0xae, 0x44, 0x86, 0xd2, 0x3f, 0xb5, 0xd6, 0x89, 0x82, 0xb3, 0xea, 0xa1, + 0x57, 0x3b, 0x02, 0x23, 0xf2, 0xe0, 0xd2, 0x4a, 0x06, 0xee, 0x11, 0x1c, 0xf1, 0x65, 0x18, 0x6f, + 0x75, 0xdc, 0xdf, 0xb5, 0xf4, 0xd5, 0xe6, 0x9d, 0xdd, 0xc4, 0x65, 0x56, 0x05, 0x6d, 0x66, 0x43, + 0xb1, 0xb1, 0x1d, 0x92, 0x68, 0x3b, 0xf0, 0x1a, 0x22, 0x57, 0x6b, 0x62, 0x55, 0x90, 0x82, 0xe3, + 0x8e, 0x1a, 0x94, 0xca, 0x96, 0xe3, 0x7a, 0xed, 0x90, 0x24, 0x54, 0x86, 0x4c, 0x2a, 0xab, 0x29, + 0x38, 0xee, 0xa8, 0x41, 0xd7, 0xd1, 0x69, 0x91, 0xe8, 0x53, 0xfa, 0xd4, 0x2b, 0x53, 0x91, 0x61, + 0x69, 0x5b, 0xdf, 0x25, 0xce, 0x8b, 0x78, 0xf2, 0x57, 0xa9, 0x42, 0xb5, 0x34, 0x72, 0xc2, 0xaa, + 0x5e, 0x52, 0xb9, 0x97, 0x74, 0x93, 0x7f, 0x6c, 0xc1, 0xa9, 0x0c, 0x43, 0x32, 0xce, 0xaa, 0x9a, + 0x6e, 0x14, 0xab, 0x2c, 0x19, 0x1a, 0xab, 0xe2, 0xe5, 0x58, 0x61, 0xd0, 0xfd, 0xc0, 0x99, 0x61, + 0x9a, 0x01, 0x0a, 0x93, 0x0f, 0x01, 0x3d, 0x1a, 0x03, 0x44, 0xe7, 0x61, 0xa0, 0x1d, 0x91, 0x50, + 0xe6, 0x69, 0x94, 0xfc, 0x9b, 0x69, 0x04, 0x19, 0x84, 0x4a, 0x94, 0x4d, 0xa5, 0x8c, 0xd3, 0x24, + 0x4a, 0xae, 0x8e, 0xe3, 0x30, 0xfb, 0x4b, 0x45, 0x38, 0x93, 0x6b, 0x14, 0x4a, 0xbb, 0xb4, 0x1b, + 0xf8, 0x6e, 0x1c, 0xa8, 0x08, 0x7d, 0x3c, 0x20, 0x09, 0x69, 0x6d, 0xaf, 0x8b, 0x72, 0xac, 0x30, + 0xd0, 0x63, 0x32, 0x8d, 0x6f, 0x3a, 0x0f, 0xc8, 0x52, 0xc5, 0xc8, 0xe4, 0xdb, 0x6f, 0x42, 0x9f, + 0x47, 0x61, 0xa0, 0x15, 0xa8, 0x1c, 0xeb, 0x6a, 0x66, 0x69, 0x77, 0x83, 0xc0, 0xc3, 0x0c, 0x88, + 0x3e, 0x26, 0xc6, 0x21, 0xf5, 0x72, 0x81, 0x9d, 0x46, 0x10, 0x69, 0x83, 0xf1, 0x04, 0x0c, 0xef, + 0x90, 0xfd, 0xd0, 0xf5, 0x9b, 0xe9, 0x77, 0x9b, 0x2b, 0xbc, 0x18, 0x4b, 0xb8, 0x99, 0x23, 0x6f, + 0xb8, 0x57, 0x8e, 0xbc, 0xa3, 0xa6, 0xe3, 0x19, 0xe9, 0x79, 0xb4, 0x7d, 0xb1, 0x08, 0x93, 0x78, + 0xa9, 0xf2, 0x93, 0x89, 0xb8, 0xd1, 0x39, 0x11, 0xc7, 0x9d, 0x1c, 0xa9, 0xf7, 0x6c, 0x7c, 0xc3, + 0x82, 0x49, 0x16, 0x96, 0x58, 0x04, 0xd4, 0x70, 0x03, 0xff, 0x04, 0x44, 0xb7, 0x47, 0x61, 0x30, + 0xa4, 0x8d, 0xa6, 0x33, 0x9e, 0xb0, 0x9e, 0x60, 0x0e, 0x43, 0x0f, 0xc3, 0x00, 0xeb, 0x02, 0x9d, + 0xbc, 0x31, 0x9e, 0x98, 0xa0, 0xe2, 0xc4, 0x0e, 0x66, 0xa5, 0xcc, 0xb3, 0x11, 0x93, 0x96, 0xe7, + 0xf2, 0x4e, 0x27, 0x1a, 0xf0, 0x0f, 0x87, 0x67, 0x63, 0x66, 0xd7, 0xde, 0x9f, 0x67, 0x63, 0x36, + 0xc9, 0xee, 0xd7, 0xa2, 0xff, 0x51, 0x80, 0x73, 0x99, 0xf5, 0xfa, 0xf6, 0x6c, 0xec, 0x5e, 0xfb, + 0x78, 0x9e, 0xdf, 0xb3, 0x5f, 0xc5, 0x8b, 0x27, 0xf8, 0x2a, 0x3e, 0xd0, 0xaf, 0xe4, 0x38, 0xd8, + 0x87, 0xc3, 0x61, 0xe6, 0x90, 0x7d, 0x48, 0x1c, 0x0e, 0x33, 0xfb, 0x96, 0x73, 0xad, 0xfb, 0x61, + 0x21, 0xe7, 0x5b, 0xd8, 0x05, 0xef, 0x02, 0xe5, 0x33, 0x0c, 0x18, 0x09, 0x49, 0x78, 0x8c, 0xf3, + 0x18, 0x5e, 0x86, 0x15, 0x14, 0xb9, 0x9a, 0xeb, 0x1e, 0xef, 0xda, 0xcb, 0x47, 0xda, 0x32, 0xf3, + 0xe6, 0x83, 0x85, 0x1e, 0xfd, 0x23, 0xed, 0xc6, 0xb7, 0xae, 0x5d, 0xca, 0x8b, 0xfd, 0x5f, 0xca, + 0xc7, 0xb2, 0x2f, 0xe4, 0x68, 0x11, 0x26, 0x77, 0x5d, 0x9f, 0xa5, 0x2d, 0x36, 0x45, 0x51, 0xe5, + 0xc9, 0xbe, 0x6e, 0x82, 0x71, 0x1a, 0x7f, 0xf6, 0x65, 0x18, 0xbf, 0x77, 0x2d, 0xe2, 0x77, 0x8b, + 0xf0, 0x50, 0x97, 0x6d, 0xcf, 0x79, 0xbd, 0x31, 0x07, 0x1a, 0xaf, 0xef, 0x98, 0x87, 0x2a, 0xcc, + 0x6c, 0xb5, 0x3d, 0x6f, 0x9f, 0x19, 0x9e, 0x91, 0x86, 0xc4, 0x10, 0xb2, 0xa2, 0x8a, 0x39, 0xbe, + 0x9a, 0x81, 0x83, 0x33, 0x6b, 0xa2, 0xd7, 0x00, 0x05, 0x9b, 0x2c, 0x0e, 0x76, 0x23, 0x89, 0x69, + 0xc2, 0x06, 0xbe, 0x98, 0x6c, 0xc6, 0xeb, 0x1d, 0x18, 0x38, 0xa3, 0x16, 0x15, 0xfa, 0xe9, 0xa9, + 0xb4, 0xaf, 0xba, 0x95, 0x12, 0xfa, 0xb1, 0x0e, 0xc4, 0x26, 0x2e, 0xba, 0x04, 0xd3, 0xce, 0x9e, + 0xe3, 0xf2, 0x18, 0x77, 0x92, 0x00, 0x97, 0xfa, 0x95, 0xee, 0x6e, 0x31, 0x8d, 0x80, 0x3b, 0xeb, + 0xa4, 0x7c, 0x10, 0x87, 0xf2, 0x7d, 0x10, 0xbb, 0xf3, 0xc5, 0x5e, 0xaa, 0x58, 0xfb, 0x3f, 0x5a, + 0xf4, 0xf8, 0xca, 0xc8, 0x93, 0x4b, 0xc7, 0x41, 0xa9, 0x14, 0x35, 0x77, 0x40, 0x35, 0x0e, 0xcb, + 0x3a, 0x10, 0x9b, 0xb8, 0x7c, 0x41, 0x44, 0x89, 0xdd, 0xbb, 0x21, 0xba, 0x0b, 0x3f, 0x5d, 0x85, + 0x81, 0xde, 0x80, 0xe1, 0x86, 0xbb, 0xe7, 0x46, 0x41, 0x28, 0x36, 0xcb, 0x51, 0x73, 0xc3, 0x2b, + 0x3e, 0x58, 0xe1, 0x64, 0xb0, 0xa4, 0x67, 0x7f, 0xb1, 0x00, 0xe3, 0xb2, 0xc5, 0xd7, 0xdb, 0x41, + 0xec, 0x9c, 0xc0, 0xb1, 0x7c, 0xc9, 0x38, 0x96, 0x3f, 0xd6, 0xcd, 0x59, 0x99, 0x75, 0x29, 0xf7, + 0x38, 0xbe, 0x9e, 0x3a, 0x8e, 0x1f, 0xef, 0x4d, 0xaa, 0xfb, 0x31, 0xfc, 0xcf, 0x2d, 0x98, 0x36, + 0xf0, 0x4f, 0xe0, 0x34, 0x58, 0x35, 0x4f, 0x83, 0x47, 0x7a, 0x7e, 0x43, 0xce, 0x29, 0xf0, 0xb5, + 0x42, 0xaa, 0xef, 0x8c, 0xfb, 0xbf, 0x0b, 0x03, 0xdb, 0x4e, 0xd8, 0xe8, 0x16, 0xa9, 0xb5, 0xa3, + 0xd2, 0xfc, 0x65, 0x27, 0x6c, 0x70, 0x1e, 0xfe, 0xb4, 0x4a, 0xe1, 0xe7, 0x84, 0x8d, 0x9e, 0x6e, + 0x1e, 0xac, 0x29, 0xf4, 0x12, 0x0c, 0x45, 0xf5, 0xa0, 0xa5, 0xcc, 0x61, 0xcf, 0xf3, 0xf4, 0x7e, + 0xb4, 0xe4, 0xf0, 0x60, 0x0e, 0x99, 0xcd, 0xd1, 0x62, 0x2c, 0xf0, 0x67, 0x9b, 0x50, 0x52, 0x4d, + 0xdf, 0x57, 0x43, 0xff, 0x3f, 0x2c, 0xc2, 0xa9, 0x8c, 0x75, 0x81, 0x22, 0x63, 0xb4, 0x9e, 0xed, + 0x73, 0x39, 0xbd, 0xcf, 0xf1, 0x8a, 0xd8, 0x8d, 0xa5, 0x21, 0xe6, 0xbf, 0xef, 0x46, 0x6f, 0x44, + 0x24, 0xdd, 0x28, 0x2d, 0xea, 0xdd, 0x28, 0x6d, 0xec, 0xc4, 0x86, 0x9a, 0x36, 0xa4, 0x7a, 0x7a, + 0x5f, 0xe7, 0xf4, 0x4f, 0x8a, 0x30, 0x93, 0x15, 0xe3, 0x00, 0xfd, 0x7c, 0x2a, 0xef, 0xcb, 0xf3, + 0xfd, 0x46, 0x47, 0xe0, 0xc9, 0x60, 0x44, 0x50, 0xa8, 0x79, 0x33, 0x13, 0x4c, 0xcf, 0x61, 0x16, + 0x6d, 0x32, 0xbf, 0xab, 0x90, 0xe7, 0xeb, 0x91, 0x5b, 0xfc, 0x13, 0x7d, 0x77, 0x40, 0x24, 0xfa, + 0x89, 0x52, 0x7e, 0x57, 0xb2, 0xb8, 0xb7, 0xdf, 0x95, 0x6c, 0x79, 0xd6, 0x85, 0x51, 0xed, 0x6b, + 0xee, 0xeb, 0x8c, 0xef, 0xd0, 0x13, 0x45, 0xeb, 0xf7, 0x7d, 0x9d, 0xf5, 0xaf, 0x58, 0x90, 0x32, + 0x5d, 0x53, 0x2a, 0x29, 0x2b, 0x57, 0x25, 0x75, 0x1e, 0x06, 0xc2, 0xc0, 0x23, 0xe9, 0x54, 0x20, + 0x38, 0xf0, 0x08, 0x66, 0x10, 0x95, 0xaf, 0xbb, 0x98, 0x97, 0xaf, 0x9b, 0x5e, 0x8d, 0x3d, 0xb2, + 0x47, 0xa4, 0x36, 0x42, 0xf1, 0xe4, 0xab, 0xb4, 0x10, 0x73, 0x98, 0xfd, 0x8d, 0x01, 0x38, 0xdb, + 0xd5, 0xdf, 0x90, 0x5e, 0x59, 0x9a, 0x4e, 0x4c, 0x6e, 0x3b, 0xfb, 0xe9, 0x40, 0xc5, 0x97, 0x78, + 0x31, 0x96, 0x70, 0x66, 0x68, 0xcb, 0x63, 0x1d, 0xa6, 0x14, 0x78, 0x22, 0xc4, 0xa1, 0x80, 0x9a, + 0x8a, 0xa3, 0xe2, 0x71, 0x28, 0x8e, 0x2e, 0x02, 0x44, 0x91, 0xb7, 0xe2, 0x53, 0x09, 0xac, 0x21, + 0x2c, 0x78, 0x93, 0x98, 0x98, 0xb5, 0xab, 0x02, 0x82, 0x35, 0x2c, 0x54, 0x81, 0xa9, 0x56, 0x18, + 0xc4, 0x5c, 0x1f, 0x5a, 0xe1, 0xb6, 0x23, 0x83, 0xa6, 0xd3, 0x58, 0x35, 0x05, 0xc7, 0x1d, 0x35, + 0xd0, 0x0b, 0x30, 0x2a, 0x1c, 0xc9, 0xaa, 0x41, 0xe0, 0x09, 0x55, 0x8d, 0xb2, 0x44, 0xa8, 0x25, + 0x20, 0xac, 0xe3, 0x69, 0xd5, 0x98, 0x92, 0x75, 0x38, 0xb3, 0x1a, 0x57, 0xb4, 0x6a, 0x78, 0xa9, + 0x78, 0x27, 0x23, 0x7d, 0xc5, 0x3b, 0x49, 0x94, 0x57, 0xa5, 0xbe, 0xdf, 0x95, 0xa0, 0xa7, 0xba, + 0xe7, 0x37, 0x06, 0xe0, 0x94, 0x58, 0x38, 0xf7, 0x7b, 0xb9, 0xdc, 0xa7, 0xdc, 0xdf, 0x3f, 0x59, + 0x33, 0x27, 0xbd, 0x66, 0xbe, 0x59, 0x84, 0x21, 0x3e, 0x15, 0x27, 0x20, 0xc3, 0xaf, 0x0a, 0xa5, + 0x5f, 0x97, 0x88, 0x21, 0xbc, 0x2f, 0xf3, 0x15, 0x27, 0x76, 0xf8, 0xf9, 0xa5, 0xd8, 0x68, 0xa2, + 0x1e, 0x44, 0xf3, 0x06, 0xa3, 0x9d, 0x4d, 0x69, 0xb5, 0x80, 0xd3, 0xd0, 0xd8, 0xee, 0xdb, 0x00, + 0x11, 0xcb, 0x3f, 0x4d, 0x69, 0x88, 0xd8, 0x33, 0x4f, 0x76, 0x69, 0xbd, 0xa6, 0x90, 0x79, 0x1f, + 0x92, 0x25, 0xa8, 0x00, 0x58, 0xa3, 0x38, 0xfb, 0x22, 0x94, 0x14, 0x72, 0x2f, 0x15, 0xc0, 0x98, + 0x7e, 0xea, 0x7d, 0x0a, 0x26, 0x53, 0x6d, 0x1d, 0x49, 0x83, 0xf0, 0x5b, 0x16, 0x4c, 0xf2, 0x2e, + 0xaf, 0xf8, 0x7b, 0x62, 0xb3, 0xbf, 0x07, 0x33, 0x5e, 0xc6, 0xa6, 0x13, 0x33, 0xda, 0xff, 0x26, + 0x55, 0x1a, 0x83, 0x2c, 0x28, 0xce, 0x6c, 0x03, 0x5d, 0x80, 0x11, 0x9e, 0x39, 0xdf, 0xf1, 0x84, + 0x37, 0xc1, 0x18, 0xcf, 0x1d, 0xc0, 0xcb, 0xb0, 0x82, 0xda, 0xdf, 0xb3, 0x60, 0x9a, 0xf7, 0xfc, + 0x0a, 0xd9, 0x57, 0xb7, 0xe3, 0x0f, 0xb2, 0xef, 0x22, 0x35, 0x42, 0x21, 0x27, 0x35, 0x82, 0xfe, + 0x69, 0xc5, 0xae, 0x9f, 0xf6, 0xeb, 0x16, 0x88, 0x15, 0x78, 0x02, 0xf7, 0xc0, 0x9f, 0x36, 0xef, + 0x81, 0xb3, 0xf9, 0x8b, 0x3a, 0xe7, 0x02, 0xf8, 0x67, 0x16, 0x4c, 0x71, 0x84, 0xe4, 0x21, 0xf2, + 0x03, 0x9d, 0x87, 0x7e, 0xf2, 0x75, 0xa9, 0x04, 0xc9, 0xd9, 0x1f, 0x65, 0x4c, 0xd6, 0x40, 0xd7, + 0xc9, 0x6a, 0xc8, 0x0d, 0x74, 0x84, 0x3c, 0x74, 0x47, 0x8e, 0xe6, 0x69, 0xff, 0x37, 0x0b, 0x10, + 0x6f, 0xc6, 0x38, 0x97, 0xe9, 0x69, 0xc7, 0x4a, 0x35, 0x4d, 0x50, 0xc2, 0x6a, 0x14, 0x04, 0x6b, + 0x58, 0xc7, 0x32, 0x3c, 0xa9, 0xd7, 0xe4, 0x62, 0xef, 0xd7, 0xe4, 0x23, 0x8c, 0xe8, 0x5f, 0x1d, + 0x80, 0xb4, 0xe9, 0x32, 0xba, 0x09, 0x63, 0x75, 0xa7, 0xe5, 0x6c, 0xba, 0x9e, 0x1b, 0xbb, 0x24, + 0xea, 0x66, 0x86, 0xb2, 0xac, 0xe1, 0x89, 0x77, 0x42, 0xad, 0x04, 0x1b, 0x74, 0xd0, 0x3c, 0x40, + 0x2b, 0x74, 0xf7, 0x5c, 0x8f, 0x34, 0xd9, 0x55, 0x98, 0xf9, 0x2f, 0x71, 0xdb, 0x0a, 0x59, 0x8a, + 0x35, 0x8c, 0x0c, 0x7f, 0x97, 0xe2, 0xfd, 0xf3, 0x77, 0x19, 0x38, 0xa2, 0xbf, 0xcb, 0x60, 0x5f, + 0xfe, 0x2e, 0x18, 0x1e, 0x90, 0x67, 0x37, 0xfd, 0xbf, 0xea, 0x7a, 0x44, 0x08, 0x6c, 0xdc, 0xab, + 0x69, 0xf6, 0xee, 0xc1, 0xdc, 0x03, 0x38, 0x13, 0x03, 0xe7, 0xd4, 0x44, 0x9f, 0x86, 0xb2, 0xe3, + 0x79, 0xc1, 0x6d, 0x35, 0x6a, 0x2b, 0x51, 0xdd, 0xf1, 0x92, 0xe0, 0xd6, 0x23, 0x4b, 0x0f, 0xdf, + 0x3d, 0x98, 0x2b, 0x2f, 0xe6, 0xe0, 0xe0, 0xdc, 0xda, 0xf6, 0x0e, 0x9c, 0xaa, 0x91, 0x50, 0xa6, + 0xb6, 0x54, 0x5b, 0x6c, 0x03, 0x4a, 0x61, 0x8a, 0xa9, 0xf4, 0x15, 0xfa, 0x42, 0x0b, 0x3c, 0x28, + 0x99, 0x48, 0x42, 0xc8, 0xfe, 0x53, 0x0b, 0x86, 0x85, 0x39, 0xf4, 0x09, 0xc8, 0x32, 0x8b, 0x86, + 0x3e, 0x72, 0x2e, 0x9b, 0xf1, 0xb2, 0xce, 0xe4, 0x6a, 0x22, 0xd7, 0x52, 0x9a, 0xc8, 0x47, 0xba, + 0x11, 0xe9, 0xae, 0x83, 0xfc, 0xa5, 0x22, 0x4c, 0x98, 0xa6, 0xe0, 0x27, 0x30, 0x04, 0xd7, 0x60, + 0x38, 0x12, 0x7e, 0x07, 0x85, 0x7c, 0xfb, 0xd5, 0xf4, 0x24, 0x26, 0x56, 0x2e, 0xc2, 0xd3, 0x40, + 0x12, 0xc9, 0x74, 0x68, 0x28, 0xde, 0x47, 0x87, 0x86, 0x5e, 0xd6, 0xf8, 0x03, 0xc7, 0x61, 0x8d, + 0x6f, 0x7f, 0x8b, 0x31, 0x7f, 0xbd, 0xfc, 0x04, 0xe4, 0x82, 0x4b, 0xe6, 0x31, 0x61, 0x77, 0x59, + 0x59, 0xa2, 0x53, 0x39, 0xf2, 0xc1, 0x3f, 0xb2, 0x60, 0x54, 0x20, 0x9e, 0x40, 0xb7, 0x7f, 0xc6, + 0xec, 0xf6, 0x43, 0x5d, 0xba, 0x9d, 0xd3, 0xdf, 0xbf, 0x5d, 0x50, 0xfd, 0xad, 0x06, 0x61, 0xdc, + 0x57, 0xb2, 0x83, 0x11, 0x7a, 0x1b, 0x0c, 0xea, 0x81, 0x27, 0x0e, 0xf3, 0x87, 0x13, 0xc7, 0x56, + 0x5e, 0x7e, 0xa8, 0xfd, 0xc6, 0x0a, 0x9b, 0xf9, 0x5d, 0x06, 0x61, 0x2c, 0x0e, 0xd0, 0xc4, 0xef, + 0x32, 0x08, 0x63, 0xcc, 0x20, 0xa8, 0x01, 0x10, 0x3b, 0x61, 0x93, 0xc4, 0xb4, 0x4c, 0x78, 0x82, + 0xe7, 0xef, 0xc2, 0x76, 0xec, 0x7a, 0xf3, 0xae, 0x1f, 0x47, 0x71, 0x38, 0xbf, 0xe6, 0xc7, 0xd7, + 0x43, 0x7e, 0x37, 0xd0, 0x3c, 0x55, 0x15, 0x2d, 0xac, 0xd1, 0x95, 0xae, 0x52, 0xac, 0x8d, 0x41, + 0xf3, 0xa1, 0xf0, 0x9a, 0x28, 0xc7, 0x0a, 0xc3, 0x7e, 0x91, 0xf1, 0x64, 0x36, 0x40, 0x47, 0x73, + 0x22, 0xfd, 0xce, 0x88, 0x1a, 0x5a, 0xf6, 0x4a, 0x50, 0xd1, 0x5d, 0x55, 0xbb, 0xb3, 0x40, 0xda, + 0xb0, 0xee, 0x16, 0x90, 0xf8, 0xb3, 0xa2, 0x9f, 0xed, 0x78, 0x3f, 0x7e, 0xa6, 0x07, 0x2f, 0x3d, + 0xc2, 0x8b, 0x31, 0x8b, 0xbc, 0xc9, 0x22, 0x14, 0xae, 0x55, 0xd3, 0xe9, 0x28, 0x96, 0x25, 0x00, + 0x27, 0x38, 0x68, 0x41, 0xdc, 0x2c, 0xb9, 0x7e, 0xee, 0xa1, 0xd4, 0xcd, 0x52, 0x7e, 0xbe, 0x76, + 0xb5, 0x7c, 0x16, 0x46, 0x55, 0x8a, 0xaf, 0x2a, 0xcf, 0x94, 0x54, 0xe2, 0xb2, 0xd4, 0x4a, 0x52, + 0x8c, 0x75, 0x1c, 0xb4, 0x01, 0x93, 0x11, 0xcf, 0x3f, 0x26, 0xbd, 0x97, 0x84, 0xde, 0xe0, 0x49, + 0xf9, 0xee, 0x5c, 0x33, 0xc1, 0x87, 0xac, 0x88, 0x6f, 0x56, 0xe9, 0xef, 0x94, 0x26, 0x81, 0x5e, + 0x85, 0x09, 0x4f, 0xcf, 0xc3, 0x5c, 0x15, 0x6a, 0x05, 0x65, 0x96, 0x69, 0x64, 0x69, 0xae, 0xe2, + 0x14, 0x36, 0x15, 0x02, 0xf4, 0x12, 0x11, 0x0c, 0xcb, 0xf1, 0x9b, 0x24, 0x12, 0x09, 0x8a, 0x98, + 0x10, 0x70, 0x35, 0x07, 0x07, 0xe7, 0xd6, 0x46, 0x2f, 0xc1, 0x98, 0xfc, 0x7c, 0xcd, 0x9b, 0x2f, + 0x31, 0xfe, 0xd5, 0x60, 0xd8, 0xc0, 0x44, 0xb7, 0xe1, 0xb4, 0xfc, 0xbf, 0x11, 0x3a, 0x5b, 0x5b, + 0x6e, 0x5d, 0x38, 0x53, 0x8e, 0x32, 0x12, 0x8b, 0xd2, 0x13, 0x62, 0x25, 0x0b, 0xe9, 0xf0, 0x60, + 0xee, 0xbc, 0x18, 0xb5, 0x4c, 0x38, 0x9b, 0xc4, 0x6c, 0xfa, 0x68, 0x1d, 0x4e, 0x6d, 0x13, 0xc7, + 0x8b, 0xb7, 0x97, 0xb7, 0x49, 0x7d, 0x47, 0x6e, 0x22, 0xe6, 0x23, 0xa8, 0x99, 0xcc, 0x5e, 0xee, + 0x44, 0xc1, 0x59, 0xf5, 0xd0, 0x5b, 0x50, 0x6e, 0xb5, 0x37, 0x3d, 0x37, 0xda, 0xbe, 0x16, 0xc4, + 0xec, 0xa9, 0x5b, 0x65, 0xc8, 0x12, 0xce, 0x84, 0xca, 0x3f, 0xb2, 0x9a, 0x83, 0x87, 0x73, 0x29, + 0xa0, 0xf7, 0xe0, 0x74, 0x6a, 0x31, 0xf0, 0xa4, 0x6b, 0xc2, 0xe9, 0xf0, 0x89, 0xec, 0xed, 0x94, + 0x51, 0x81, 0xbb, 0xb8, 0x66, 0x82, 0x70, 0x76, 0x13, 0xef, 0xcf, 0x00, 0xe2, 0x5d, 0x5a, 0x59, + 0x93, 0x6e, 0xd0, 0x67, 0x60, 0x4c, 0x5f, 0x45, 0xe2, 0x80, 0x79, 0xac, 0x57, 0xce, 0x71, 0x21, + 0x1b, 0xa9, 0x15, 0xa5, 0xc3, 0xb0, 0x41, 0xd1, 0x26, 0x90, 0xfd, 0x7d, 0xe8, 0x2a, 0x8c, 0xd4, + 0x3d, 0x97, 0xf8, 0xf1, 0x5a, 0xb5, 0x9b, 0x13, 0xfc, 0xb2, 0xc0, 0x11, 0x03, 0x26, 0x62, 0xb1, + 0xf1, 0x32, 0xac, 0x28, 0xd8, 0xbf, 0x5b, 0x80, 0xb9, 0x1e, 0xe1, 0xf8, 0x52, 0x3a, 0x40, 0xab, + 0x2f, 0x1d, 0xe0, 0xa2, 0xcc, 0xf7, 0x75, 0x2d, 0x75, 0xff, 0x4c, 0xe5, 0xf2, 0x4a, 0x6e, 0xa1, + 0x69, 0xfc, 0xbe, 0xed, 0x26, 0x75, 0x35, 0xe2, 0x40, 0x4f, 0x8b, 0x5e, 0xe3, 0xf9, 0x60, 0xb0, + 0x7f, 0x89, 0x3e, 0x57, 0x15, 0x6c, 0x7f, 0xab, 0x00, 0xa7, 0xd5, 0x10, 0xfe, 0xf8, 0x0e, 0xdc, + 0x8d, 0xce, 0x81, 0x3b, 0x06, 0x45, 0xba, 0x7d, 0x1d, 0x86, 0x6a, 0xfb, 0x51, 0x3d, 0xf6, 0xfa, + 0x10, 0x80, 0x1e, 0x35, 0x36, 0x68, 0x72, 0x4c, 0xb3, 0x94, 0x9d, 0x62, 0xbf, 0xda, 0x7f, 0xc9, + 0x82, 0xc9, 0x8d, 0xe5, 0x6a, 0x2d, 0xa8, 0xef, 0x90, 0x78, 0x91, 0xab, 0x89, 0xb0, 0x90, 0x7f, + 0xac, 0x7b, 0x94, 0x6b, 0xb2, 0x24, 0xa6, 0xf3, 0x30, 0xb0, 0x1d, 0x44, 0x71, 0xfa, 0x95, 0xed, + 0x72, 0x10, 0xc5, 0x98, 0x41, 0xec, 0x3f, 0xb2, 0x60, 0x90, 0x65, 0xa9, 0xec, 0x95, 0xcd, 0xb4, + 0x9f, 0xef, 0x42, 0x2f, 0xc0, 0x10, 0xd9, 0xda, 0x22, 0xf5, 0x58, 0xcc, 0xaa, 0xf4, 0xae, 0x1b, + 0x5a, 0x61, 0xa5, 0xf4, 0xd0, 0x67, 0x8d, 0xf1, 0xbf, 0x58, 0x20, 0xa3, 0x5b, 0x50, 0x8a, 0xdd, + 0x5d, 0xb2, 0xd8, 0x68, 0x88, 0x77, 0x8a, 0x7b, 0x70, 0x66, 0xdc, 0x90, 0x04, 0x70, 0x42, 0xcb, + 0xfe, 0x52, 0x01, 0x20, 0xf1, 0xc0, 0xed, 0xf5, 0x89, 0x4b, 0x1d, 0x09, 0x5b, 0x1f, 0xcb, 0x48, + 0xd8, 0x8a, 0x12, 0x82, 0x19, 0xe9, 0x5a, 0xd5, 0x30, 0x15, 0xfb, 0x1a, 0xa6, 0x81, 0xa3, 0x0c, + 0xd3, 0x32, 0x4c, 0x27, 0x1e, 0xc4, 0x66, 0x38, 0x05, 0x16, 0x8a, 0x7b, 0x23, 0x0d, 0xc4, 0x9d, + 0xf8, 0xf6, 0x17, 0x2c, 0x10, 0xee, 0x06, 0x7d, 0x2c, 0xe6, 0x37, 0x65, 0x6e, 0x45, 0x23, 0x3e, + 0xe8, 0xf9, 0x7c, 0xff, 0x0b, 0x11, 0x15, 0x54, 0x1d, 0x1e, 0x46, 0x2c, 0x50, 0x83, 0x96, 0xfd, + 0xd7, 0x0b, 0x30, 0xca, 0xc1, 0x2c, 0xf6, 0x64, 0x1f, 0xbd, 0x39, 0x52, 0x20, 0x77, 0x96, 0x76, + 0x90, 0x12, 0x56, 0xf1, 0xbe, 0xf5, 0xb4, 0x83, 0x12, 0x80, 0x13, 0x1c, 0xf4, 0x04, 0x0c, 0x47, + 0xed, 0x4d, 0x86, 0x9e, 0x32, 0x6f, 0xaf, 0xf1, 0x62, 0x2c, 0xe1, 0xe8, 0xd3, 0x30, 0xc5, 0xeb, + 0x85, 0x41, 0xcb, 0x69, 0x72, 0xdd, 0xce, 0xa0, 0xf2, 0x37, 0x9b, 0x5a, 0x4f, 0xc1, 0x0e, 0x0f, + 0xe6, 0x66, 0xd2, 0x65, 0x4c, 0x2b, 0xd8, 0x41, 0x85, 0xae, 0xd8, 0xa9, 0xb4, 0x2b, 0x0b, 0xba, + 0x0c, 0x43, 0x9c, 0x19, 0x09, 0xe6, 0xd0, 0xe5, 0xad, 0x47, 0x73, 0x80, 0x61, 0x31, 0xae, 0x05, + 0x3f, 0x13, 0xf5, 0xd1, 0x5b, 0x30, 0xda, 0x08, 0x6e, 0xfb, 0xb7, 0x9d, 0xb0, 0xb1, 0x58, 0x5d, + 0x13, 0xf3, 0x99, 0x29, 0xd3, 0x54, 0x12, 0x34, 0xdd, 0xa9, 0x86, 0xe9, 0x35, 0x13, 0x10, 0xd6, + 0xc9, 0xa1, 0x0d, 0x16, 0x2e, 0x89, 0xe7, 0x05, 0xef, 0x66, 0x0f, 0xa6, 0x52, 0x89, 0x6b, 0x94, + 0xc7, 0x45, 0x4c, 0x25, 0x91, 0x55, 0x3c, 0x21, 0x64, 0x7f, 0xee, 0x14, 0x18, 0xeb, 0xc8, 0x08, + 0xe4, 0x6e, 0x1d, 0x53, 0x20, 0x77, 0x0c, 0x23, 0x64, 0xb7, 0x15, 0xef, 0x57, 0xdc, 0xb0, 0x5b, + 0x06, 0x8f, 0x15, 0x81, 0xd3, 0x49, 0x53, 0x42, 0xb0, 0xa2, 0x93, 0x1d, 0x6d, 0xbf, 0xf8, 0x01, + 0x46, 0xdb, 0x1f, 0x38, 0xc1, 0x68, 0xfb, 0xd7, 0x60, 0xb8, 0xe9, 0xc6, 0x98, 0xb4, 0x02, 0x71, + 0x10, 0x67, 0xae, 0x84, 0x4b, 0x1c, 0xa5, 0x33, 0xfe, 0xb3, 0x00, 0x60, 0x49, 0x04, 0xbd, 0xa6, + 0xf6, 0xc0, 0x50, 0xbe, 0x1c, 0xdb, 0xf9, 0x2c, 0x90, 0xb9, 0x0b, 0x44, 0x74, 0xfd, 0xe1, 0x7b, + 0x8d, 0xae, 0xaf, 0x62, 0xe2, 0x8f, 0xbc, 0xbf, 0x98, 0xf8, 0x46, 0xf6, 0x80, 0xd2, 0xf1, 0x65, + 0x0f, 0xf8, 0x82, 0x05, 0xa7, 0x5b, 0x59, 0x89, 0x34, 0x44, 0x74, 0xfb, 0x17, 0xfa, 0xce, 0x14, + 0x62, 0x34, 0xc8, 0x2e, 0x34, 0x99, 0x68, 0x38, 0xbb, 0x39, 0x3a, 0xd0, 0xe1, 0x66, 0x43, 0x84, + 0xc4, 0x7f, 0x34, 0x27, 0x0d, 0x41, 0x97, 0xe4, 0x03, 0xf7, 0x27, 0x0c, 0x7e, 0x92, 0x8a, 0x60, + 0xfc, 0x7d, 0xa7, 0x22, 0x78, 0x4d, 0xa5, 0x22, 0xe8, 0x12, 0x94, 0x86, 0x27, 0x1a, 0xe8, 0x99, + 0x80, 0x40, 0x4b, 0x22, 0x30, 0x79, 0x1c, 0x49, 0x04, 0xde, 0x36, 0x99, 0x3d, 0x8f, 0x68, 0xff, + 0x54, 0x0f, 0x66, 0x6f, 0xd0, 0xed, 0xce, 0xee, 0x79, 0xc2, 0x84, 0xe9, 0x7b, 0x4a, 0x98, 0x70, + 0x53, 0x4f, 0x45, 0x80, 0x7a, 0xc4, 0xda, 0xa7, 0x48, 0x7d, 0x26, 0x20, 0xb8, 0xa9, 0x1f, 0x41, + 0xa7, 0xf2, 0xe9, 0xaa, 0x93, 0xa6, 0x93, 0x6e, 0xd6, 0x21, 0xd4, 0x99, 0xd8, 0x60, 0xe6, 0x64, + 0x12, 0x1b, 0x9c, 0x3e, 0xf6, 0xc4, 0x06, 0x0f, 0x9c, 0x40, 0x62, 0x83, 0x07, 0x3f, 0xd0, 0xc4, + 0x06, 0xe5, 0xfb, 0x90, 0xd8, 0xe0, 0x5a, 0x92, 0xd8, 0xe0, 0x4c, 0xfe, 0x94, 0x64, 0xd8, 0x8b, + 0xe5, 0xa4, 0x33, 0xb8, 0x09, 0xa5, 0x96, 0xf4, 0x76, 0x2e, 0xcf, 0xe6, 0x4f, 0x49, 0xa6, 0x4b, + 0x34, 0x9f, 0x12, 0x05, 0xc2, 0x09, 0x29, 0x4a, 0x37, 0x49, 0x6f, 0xf0, 0x50, 0x17, 0x95, 0x55, + 0x96, 0x32, 0xa0, 0x4b, 0x52, 0x83, 0xbf, 0x5c, 0x80, 0x73, 0xdd, 0xd7, 0x75, 0xa2, 0x49, 0xa8, + 0x26, 0x9a, 0xef, 0x94, 0x26, 0x81, 0x09, 0x5d, 0x1a, 0x56, 0xdf, 0x21, 0x21, 0x2e, 0xc1, 0xb4, + 0x32, 0x14, 0xf3, 0xdc, 0xfa, 0xbe, 0x96, 0x0d, 0x4d, 0x39, 0xad, 0xd4, 0xd2, 0x08, 0xb8, 0xb3, + 0x0e, 0x5a, 0x84, 0x49, 0xa3, 0x70, 0xad, 0x22, 0x84, 0x7d, 0xa5, 0xba, 0xa8, 0x99, 0x60, 0x9c, + 0xc6, 0xb7, 0xbf, 0x66, 0xc1, 0x83, 0x39, 0x31, 0x8e, 0xfb, 0x8e, 0x78, 0xb0, 0x05, 0x93, 0x2d, + 0xb3, 0x6a, 0x8f, 0xc0, 0x28, 0x46, 0x24, 0x65, 0xd5, 0xd7, 0x14, 0x00, 0xa7, 0x89, 0x2e, 0x5d, + 0xf8, 0xf6, 0xf7, 0xcf, 0x7d, 0xe4, 0x0f, 0xbe, 0x7f, 0xee, 0x23, 0xdf, 0xfb, 0xfe, 0xb9, 0x8f, + 0xfc, 0xf9, 0xbb, 0xe7, 0xac, 0x6f, 0xdf, 0x3d, 0x67, 0xfd, 0xc1, 0xdd, 0x73, 0xd6, 0xf7, 0xee, + 0x9e, 0xb3, 0xfe, 0xf8, 0xee, 0x39, 0xeb, 0x4b, 0x3f, 0x38, 0xf7, 0x91, 0x37, 0x0b, 0x7b, 0xcf, + 0xfe, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xea, 0xa0, 0xb7, 0x43, 0x3c, 0xd5, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/core/v1/generated.proto b/vendor/k8s.io/api/core/v1/generated.proto index 7bd3bc2c3..22dbf10fa 100644 --- a/vendor/k8s.io/api/core/v1/generated.proto +++ b/vendor/k8s.io/api/core/v1/generated.proto @@ -565,7 +565,7 @@ message Container { // Security options the pod should run with. // More info: https://kubernetes.io/docs/concepts/policy/security-context/ - // More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional optional SecurityContext securityContext = 15; @@ -1442,7 +1442,7 @@ message LimitRangeList { optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; // Items is a list of LimitRange objects. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md + // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ repeated LimitRange items = 2; } @@ -1593,7 +1593,7 @@ message NamespaceList { // NamespaceSpec describes the attributes on a Namespace. message NamespaceSpec { // Finalizers is an opaque list of values that must be empty to permanently remove object from storage. - // More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers + // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ // +optional repeated string finalizers = 1; } @@ -1601,7 +1601,7 @@ message NamespaceSpec { // NamespaceStatus is information about the current status of a Namespace. message NamespaceStatus { // Phase is the current lifecycle phase of the namespace. - // More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases + // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ // +optional optional string phase = 1; } @@ -2287,7 +2287,7 @@ message PersistentVolumeSource { // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md // +optional - optional RBDVolumeSource rbd = 6; + optional RBDPersistentVolumeSource rbd = 6; // ISCSI represents an ISCSI Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. Provisioned by an admin. @@ -2342,7 +2342,7 @@ message PersistentVolumeSource { // ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. // +optional - optional ScaleIOVolumeSource scaleIO = 19; + optional ScaleIOPersistentVolumeSource scaleIO = 19; // Local represents directly-attached storage with node affinity // +optional @@ -2474,7 +2474,7 @@ message PodAffinity { // relative to the given namespace(s)) that this pod should be // co-located (affinity) or not co-located (anti-affinity) with, // where co-located is defined as running on a node whose value of -// the label with key tches that of any node on which +// the label with key matches that of any node on which // a pod of the set of pods is running message PodAffinityTerm { // A label query over a set of resources, in this case pods. @@ -3157,6 +3157,57 @@ message QuobyteVolumeSource { optional string group = 5; } +// Represents a Rados Block Device mount that lasts the lifetime of a pod. +// RBD volumes support ownership management and SELinux relabeling. +message RBDPersistentVolumeSource { + // A collection of Ceph monitors. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + repeated string monitors = 1; + + // The rados image name. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + optional string image = 2; + + // Filesystem type of the volume that you want to mount. + // Tip: Ensure that the filesystem type is supported by the host operating system. + // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd + // TODO: how do we prevent errors in the filesystem from compromising the machine + // +optional + optional string fsType = 3; + + // The rados pool name. + // Default is rbd. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional string pool = 4; + + // The rados user name. + // Default is admin. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional string user = 5; + + // Keyring is the path to key ring for RBDUser. + // Default is /etc/ceph/keyring. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional string keyring = 6; + + // SecretRef is name of the authentication secret for RBDUser. If provided + // overrides keyring. + // Default is nil. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional SecretReference secretRef = 7; + + // ReadOnly here will force the ReadOnly setting in VolumeMounts. + // Defaults to false. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional bool readOnly = 8; +} + // Represents a Rados Block Device mount that lasts the lifetime of a pod. // RBD volumes support ownership management and SELinux relabeling. message RBDVolumeSource { @@ -3377,14 +3428,14 @@ message ResourceQuotaList { optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; // Items is a list of ResourceQuota objects. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ repeated ResourceQuota items = 2; } // ResourceQuotaSpec defines the desired hard limits to enforce for Quota. message ResourceQuotaSpec { // Hard is the set of desired hard limits for each named resource. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional map hard = 1; @@ -3397,7 +3448,7 @@ message ResourceQuotaSpec { // ResourceQuotaStatus defines the enforced hard limits and observed use. message ResourceQuotaStatus { // Hard is the set of enforced hard limits for each named resource. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional map hard = 1; @@ -3440,6 +3491,50 @@ message SELinuxOptions { optional string level = 4; } +// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume +message ScaleIOPersistentVolumeSource { + // The host address of the ScaleIO API Gateway. + optional string gateway = 1; + + // The name of the storage system as configured in ScaleIO. + optional string system = 2; + + // SecretRef references to the secret for ScaleIO user and other + // sensitive information. If this is not provided, Login operation will fail. + optional SecretReference secretRef = 3; + + // Flag to enable/disable SSL communication with Gateway, default false + // +optional + optional bool sslEnabled = 4; + + // The name of the ScaleIO Protection Domain for the configured storage. + // +optional + optional string protectionDomain = 5; + + // The ScaleIO Storage Pool associated with the protection domain. + // +optional + optional string storagePool = 6; + + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. + // +optional + optional string storageMode = 7; + + // The name of a volume already created in the ScaleIO system + // that is associated with this volume source. + optional string volumeName = 8; + + // Filesystem type to mount. + // Must be a filesystem type supported by the host operating system. + // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // +optional + optional string fsType = 9; + + // Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + optional bool readOnly = 10; +} + // ScaleIOVolumeSource represents a persistent ScaleIO volume message ScaleIOVolumeSource { // The host address of the ScaleIO API Gateway. @@ -3456,15 +3551,15 @@ message ScaleIOVolumeSource { // +optional optional bool sslEnabled = 4; - // The name of the Protection Domain for the configured storage (defaults to "default"). + // The name of the ScaleIO Protection Domain for the configured storage. // +optional optional string protectionDomain = 5; - // The Storage Pool associated with the protection domain (defaults to "default"). + // The ScaleIO Storage Pool associated with the protection domain. // +optional optional string storagePool = 6; - // Indicates whether the storage for a volume should be thick or thin (defaults to "thin"). + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. // +optional optional string storageMode = 7; diff --git a/vendor/k8s.io/api/core/v1/types.go b/vendor/k8s.io/api/core/v1/types.go index b9cbf2d4b..3c369858d 100644 --- a/vendor/k8s.io/api/core/v1/types.go +++ b/vendor/k8s.io/api/core/v1/types.go @@ -398,7 +398,7 @@ type PersistentVolumeSource struct { // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md // +optional - RBD *RBDVolumeSource `json:"rbd,omitempty" protobuf:"bytes,6,opt,name=rbd"` + RBD *RBDPersistentVolumeSource `json:"rbd,omitempty" protobuf:"bytes,6,opt,name=rbd"` // ISCSI represents an ISCSI Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. Provisioned by an admin. // +optional @@ -440,7 +440,7 @@ type PersistentVolumeSource struct { PortworxVolume *PortworxVolumeSource `json:"portworxVolume,omitempty" protobuf:"bytes,18,opt,name=portworxVolume"` // ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. // +optional - ScaleIO *ScaleIOVolumeSource `json:"scaleIO,omitempty" protobuf:"bytes,19,opt,name=scaleIO"` + ScaleIO *ScaleIOPersistentVolumeSource `json:"scaleIO,omitempty" protobuf:"bytes,19,opt,name=scaleIO"` // Local represents directly-attached storage with node affinity // +optional Local *LocalVolumeSource `json:"local,omitempty" protobuf:"bytes,20,opt,name=local"` @@ -838,6 +838,50 @@ type RBDVolumeSource struct { ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,8,opt,name=readOnly"` } +// Represents a Rados Block Device mount that lasts the lifetime of a pod. +// RBD volumes support ownership management and SELinux relabeling. +type RBDPersistentVolumeSource struct { + // A collection of Ceph monitors. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + CephMonitors []string `json:"monitors" protobuf:"bytes,1,rep,name=monitors"` + // The rados image name. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + RBDImage string `json:"image" protobuf:"bytes,2,opt,name=image"` + // Filesystem type of the volume that you want to mount. + // Tip: Ensure that the filesystem type is supported by the host operating system. + // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd + // TODO: how do we prevent errors in the filesystem from compromising the machine + // +optional + FSType string `json:"fsType,omitempty" protobuf:"bytes,3,opt,name=fsType"` + // The rados pool name. + // Default is rbd. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + RBDPool string `json:"pool,omitempty" protobuf:"bytes,4,opt,name=pool"` + // The rados user name. + // Default is admin. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + RadosUser string `json:"user,omitempty" protobuf:"bytes,5,opt,name=user"` + // Keyring is the path to key ring for RBDUser. + // Default is /etc/ceph/keyring. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + Keyring string `json:"keyring,omitempty" protobuf:"bytes,6,opt,name=keyring"` + // SecretRef is name of the authentication secret for RBDUser. If provided + // overrides keyring. + // Default is nil. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + SecretRef *SecretReference `json:"secretRef,omitempty" protobuf:"bytes,7,opt,name=secretRef"` + // ReadOnly here will force the ReadOnly setting in VolumeMounts. + // Defaults to false. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,8,opt,name=readOnly"` +} + // Represents a cinder volume resource in Openstack. // A Cinder volume must exist before mounting to a container. // The volume must also be in the same region as the kubelet. @@ -1352,13 +1396,48 @@ type ScaleIOVolumeSource struct { // Flag to enable/disable SSL communication with Gateway, default false // +optional SSLEnabled bool `json:"sslEnabled,omitempty" protobuf:"varint,4,opt,name=sslEnabled"` - // The name of the Protection Domain for the configured storage (defaults to "default"). + // The name of the ScaleIO Protection Domain for the configured storage. + // +optional + ProtectionDomain string `json:"protectionDomain,omitempty" protobuf:"bytes,5,opt,name=protectionDomain"` + // The ScaleIO Storage Pool associated with the protection domain. + // +optional + StoragePool string `json:"storagePool,omitempty" protobuf:"bytes,6,opt,name=storagePool"` + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. + // +optional + StorageMode string `json:"storageMode,omitempty" protobuf:"bytes,7,opt,name=storageMode"` + // The name of a volume already created in the ScaleIO system + // that is associated with this volume source. + VolumeName string `json:"volumeName,omitempty" protobuf:"bytes,8,opt,name=volumeName"` + // Filesystem type to mount. + // Must be a filesystem type supported by the host operating system. + // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // +optional + FSType string `json:"fsType,omitempty" protobuf:"bytes,9,opt,name=fsType"` + // Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,10,opt,name=readOnly"` +} + +// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume +type ScaleIOPersistentVolumeSource struct { + // The host address of the ScaleIO API Gateway. + Gateway string `json:"gateway" protobuf:"bytes,1,opt,name=gateway"` + // The name of the storage system as configured in ScaleIO. + System string `json:"system" protobuf:"bytes,2,opt,name=system"` + // SecretRef references to the secret for ScaleIO user and other + // sensitive information. If this is not provided, Login operation will fail. + SecretRef *SecretReference `json:"secretRef" protobuf:"bytes,3,opt,name=secretRef"` + // Flag to enable/disable SSL communication with Gateway, default false + // +optional + SSLEnabled bool `json:"sslEnabled,omitempty" protobuf:"varint,4,opt,name=sslEnabled"` + // The name of the ScaleIO Protection Domain for the configured storage. // +optional ProtectionDomain string `json:"protectionDomain,omitempty" protobuf:"bytes,5,opt,name=protectionDomain"` - // The Storage Pool associated with the protection domain (defaults to "default"). + // The ScaleIO Storage Pool associated with the protection domain. // +optional StoragePool string `json:"storagePool,omitempty" protobuf:"bytes,6,opt,name=storagePool"` - // Indicates whether the storage for a volume should be thick or thin (defaults to "thin"). + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. // +optional StorageMode string `json:"storageMode,omitempty" protobuf:"bytes,7,opt,name=storageMode"` // The name of a volume already created in the ScaleIO system @@ -1996,7 +2075,7 @@ type Container struct { ImagePullPolicy PullPolicy `json:"imagePullPolicy,omitempty" protobuf:"bytes,14,opt,name=imagePullPolicy,casttype=PullPolicy"` // Security options the pod should run with. // More info: https://kubernetes.io/docs/concepts/policy/security-context/ - // More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional SecurityContext *SecurityContext `json:"securityContext,omitempty" protobuf:"bytes,15,opt,name=securityContext"` @@ -2394,7 +2473,7 @@ type WeightedPodAffinityTerm struct { // relative to the given namespace(s)) that this pod should be // co-located (affinity) or not co-located (anti-affinity) with, // where co-located is defined as running on a node whose value of -// the label with key tches that of any node on which +// the label with key matches that of any node on which // a pod of the set of pods is running type PodAffinityTerm struct { // A label query over a set of resources, in this case pods. @@ -3825,7 +3904,7 @@ const ( // NamespaceSpec describes the attributes on a Namespace. type NamespaceSpec struct { // Finalizers is an opaque list of values that must be empty to permanently remove object from storage. - // More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers + // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ // +optional Finalizers []FinalizerName `json:"finalizers,omitempty" protobuf:"bytes,1,rep,name=finalizers,casttype=FinalizerName"` } @@ -3833,7 +3912,7 @@ type NamespaceSpec struct { // NamespaceStatus is information about the current status of a Namespace. type NamespaceStatus struct { // Phase is the current lifecycle phase of the namespace. - // More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases + // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ // +optional Phase NamespacePhase `json:"phase,omitempty" protobuf:"bytes,1,opt,name=phase,casttype=NamespacePhase"` } @@ -4376,7 +4455,7 @@ type LimitRangeList struct { metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of LimitRange objects. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md + // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ Items []LimitRange `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -4433,7 +4512,7 @@ const ( // ResourceQuotaSpec defines the desired hard limits to enforce for Quota. type ResourceQuotaSpec struct { // Hard is the set of desired hard limits for each named resource. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional Hard ResourceList `json:"hard,omitempty" protobuf:"bytes,1,rep,name=hard,casttype=ResourceList,castkey=ResourceName"` // A collection of filters that must match each object tracked by a quota. @@ -4445,7 +4524,7 @@ type ResourceQuotaSpec struct { // ResourceQuotaStatus defines the enforced hard limits and observed use. type ResourceQuotaStatus struct { // Hard is the set of enforced hard limits for each named resource. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional Hard ResourceList `json:"hard,omitempty" protobuf:"bytes,1,rep,name=hard,casttype=ResourceList,castkey=ResourceName"` // Used is the current observed total usage of the resource in the namespace. @@ -4486,7 +4565,7 @@ type ResourceQuotaList struct { metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of ResourceQuota objects. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ Items []ResourceQuota `json:"items" protobuf:"bytes,2,rep,name=items"` } 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 d27c94ced..d8176d2f8 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 @@ -284,7 +284,7 @@ var map_Container = map[string]string{ "terminationMessagePath": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", "terminationMessagePolicy": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", "imagePullPolicy": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "securityContext": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md", + "securityContext": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", "stdin": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", "stdinOnce": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", "tty": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", @@ -765,7 +765,7 @@ func (LimitRangeItem) SwaggerDoc() map[string]string { var map_LimitRangeList = map[string]string{ "": "LimitRangeList is a list of LimitRange items.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "items": "Items is a list of LimitRange objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md", + "items": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", } func (LimitRangeList) SwaggerDoc() map[string]string { @@ -866,7 +866,7 @@ func (NamespaceList) SwaggerDoc() map[string]string { var map_NamespaceSpec = map[string]string{ "": "NamespaceSpec describes the attributes on a Namespace.", - "finalizers": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers", + "finalizers": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", } func (NamespaceSpec) SwaggerDoc() map[string]string { @@ -875,7 +875,7 @@ func (NamespaceSpec) SwaggerDoc() map[string]string { var map_NamespaceStatus = map[string]string{ "": "NamespaceStatus is information about the current status of a Namespace.", - "phase": "Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases", + "phase": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", } func (NamespaceStatus) SwaggerDoc() map[string]string { @@ -1275,7 +1275,7 @@ func (PodAffinity) SwaggerDoc() map[string]string { } var map_PodAffinityTerm = map[string]string{ - "": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key tches that of any node on which a pod of the set of pods is running", + "": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running", "labelSelector": "A label query over a set of resources, in this case pods.", "namespaces": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", "topologyKey": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.", @@ -1571,6 +1571,22 @@ func (QuobyteVolumeSource) SwaggerDoc() map[string]string { return map_QuobyteVolumeSource } +var map_RBDPersistentVolumeSource = map[string]string{ + "": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "monitors": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "image": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "pool": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "user": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "keyring": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "secretRef": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "readOnly": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", +} + +func (RBDPersistentVolumeSource) SwaggerDoc() map[string]string { + return map_RBDPersistentVolumeSource +} + var map_RBDVolumeSource = map[string]string{ "": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", "monitors": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", @@ -1683,7 +1699,7 @@ func (ResourceQuota) SwaggerDoc() map[string]string { var map_ResourceQuotaList = map[string]string{ "": "ResourceQuotaList is a list of ResourceQuota items.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "items": "Items is a list of ResourceQuota objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "items": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", } func (ResourceQuotaList) SwaggerDoc() map[string]string { @@ -1692,7 +1708,7 @@ func (ResourceQuotaList) SwaggerDoc() map[string]string { var map_ResourceQuotaSpec = map[string]string{ "": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "hard": "Hard is the set of desired hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "hard": "Hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "scopes": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", } @@ -1702,7 +1718,7 @@ func (ResourceQuotaSpec) SwaggerDoc() map[string]string { var map_ResourceQuotaStatus = map[string]string{ "": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "hard": "Hard is the set of enforced hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "hard": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "used": "Used is the current observed total usage of the resource in the namespace.", } @@ -1732,15 +1748,33 @@ func (SELinuxOptions) SwaggerDoc() map[string]string { return map_SELinuxOptions } +var map_ScaleIOPersistentVolumeSource = map[string]string{ + "": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", + "gateway": "The host address of the ScaleIO API Gateway.", + "system": "The name of the storage system as configured in ScaleIO.", + "secretRef": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", + "sslEnabled": "Flag to enable/disable SSL communication with Gateway, default false", + "protectionDomain": "The name of the ScaleIO Protection Domain for the configured storage.", + "storagePool": "The ScaleIO Storage Pool associated with the protection domain.", + "storageMode": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", + "volumeName": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", + "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "readOnly": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", +} + +func (ScaleIOPersistentVolumeSource) SwaggerDoc() map[string]string { + return map_ScaleIOPersistentVolumeSource +} + var map_ScaleIOVolumeSource = map[string]string{ "": "ScaleIOVolumeSource represents a persistent ScaleIO volume", "gateway": "The host address of the ScaleIO API Gateway.", "system": "The name of the storage system as configured in ScaleIO.", "secretRef": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", "sslEnabled": "Flag to enable/disable SSL communication with Gateway, default false", - "protectionDomain": "The name of the Protection Domain for the configured storage (defaults to \"default\").", - "storagePool": "The Storage Pool associated with the protection domain (defaults to \"default\").", - "storageMode": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\").", + "protectionDomain": "The name of the ScaleIO Protection Domain for the configured storage.", + "storagePool": "The ScaleIO Storage Pool associated with the protection domain.", + "storageMode": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", "volumeName": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "readOnly": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", 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 18d046eb6..8263ba0cc 100644 --- a/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -571,6 +571,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { in.(*QuobyteVolumeSource).DeepCopyInto(out.(*QuobyteVolumeSource)) return nil }, InType: reflect.TypeOf(&QuobyteVolumeSource{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RBDPersistentVolumeSource).DeepCopyInto(out.(*RBDPersistentVolumeSource)) + return nil + }, InType: reflect.TypeOf(&RBDPersistentVolumeSource{})}, conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { in.(*RBDVolumeSource).DeepCopyInto(out.(*RBDVolumeSource)) return nil @@ -627,6 +631,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { in.(*SELinuxOptions).DeepCopyInto(out.(*SELinuxOptions)) return nil }, InType: reflect.TypeOf(&SELinuxOptions{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ScaleIOPersistentVolumeSource).DeepCopyInto(out.(*ScaleIOPersistentVolumeSource)) + return nil + }, InType: reflect.TypeOf(&ScaleIOPersistentVolumeSource{})}, conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { in.(*ScaleIOVolumeSource).DeepCopyInto(out.(*ScaleIOVolumeSource)) return nil @@ -3733,7 +3741,7 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(RBDVolumeSource) + *out = new(RBDPersistentVolumeSource) (*in).DeepCopyInto(*out) } } @@ -3850,7 +3858,7 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(ScaleIOVolumeSource) + *out = new(ScaleIOPersistentVolumeSource) (*in).DeepCopyInto(*out) } } @@ -4801,6 +4809,36 @@ func (in *QuobyteVolumeSource) DeepCopy() *QuobyteVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RBDPersistentVolumeSource) DeepCopyInto(out *RBDPersistentVolumeSource) { + *out = *in + if in.CephMonitors != nil { + in, out := &in.CephMonitors, &out.CephMonitors + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + if *in == nil { + *out = nil + } else { + *out = new(SecretReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDPersistentVolumeSource. +func (in *RBDPersistentVolumeSource) DeepCopy() *RBDPersistentVolumeSource { + if in == nil { + return nil + } + out := new(RBDPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RBDVolumeSource) DeepCopyInto(out *RBDVolumeSource) { *out = *in @@ -5191,6 +5229,31 @@ func (in *SELinuxOptions) DeepCopy() *SELinuxOptions { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ScaleIOPersistentVolumeSource) DeepCopyInto(out *ScaleIOPersistentVolumeSource) { + *out = *in + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + if *in == nil { + *out = nil + } else { + *out = new(SecretReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleIOPersistentVolumeSource. +func (in *ScaleIOPersistentVolumeSource) DeepCopy() *ScaleIOPersistentVolumeSource { + if in == nil { + return nil + } + out := new(ScaleIOPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ScaleIOVolumeSource) DeepCopyInto(out *ScaleIOVolumeSource) { *out = *in diff --git a/vendor/k8s.io/api/extensions/v1beta1/generated.proto b/vendor/k8s.io/api/extensions/v1beta1/generated.proto index a6fe9dd72..339810810 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/generated.proto +++ b/vendor/k8s.io/api/extensions/v1beta1/generated.proto @@ -1016,7 +1016,7 @@ message SELinuxStrategyOptions { optional string rule = 1; // seLinuxOptions required to run as; required for MustRunAs - // More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional optional k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 2; } diff --git a/vendor/k8s.io/api/extensions/v1beta1/types.go b/vendor/k8s.io/api/extensions/v1beta1/types.go index 4993d6398..d3cff2aba 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/types.go +++ b/vendor/k8s.io/api/extensions/v1beta1/types.go @@ -1038,7 +1038,7 @@ type SELinuxStrategyOptions struct { // type is the strategy that will dictate the allowable labels that may be set. Rule SELinuxStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=SELinuxStrategy"` // seLinuxOptions required to run as; required for MustRunAs - // More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional SELinuxOptions *v1.SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,2,opt,name=seLinuxOptions"` } 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 e722f925d..f65f895e1 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 @@ -575,7 +575,7 @@ func (RunAsUserStrategyOptions) SwaggerDoc() map[string]string { var map_SELinuxStrategyOptions = map[string]string{ "": "SELinux Strategy Options defines the strategy type and any options used to create the strategy.", "rule": "type is the strategy that will dictate the allowable labels that may be set.", - "seLinuxOptions": "seLinuxOptions required to run as; required for MustRunAs More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md", + "seLinuxOptions": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", } func (SELinuxStrategyOptions) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/rbac/v1/generated.pb.go b/vendor/k8s.io/api/rbac/v1/generated.pb.go index dba0ec95b..1285ac194 100644 --- a/vendor/k8s.io/api/rbac/v1/generated.pb.go +++ b/vendor/k8s.io/api/rbac/v1/generated.pb.go @@ -2504,52 +2504,52 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 751 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x94, 0xcd, 0x6e, 0xd3, 0x4a, - 0x14, 0xc7, 0xe3, 0x7c, 0x28, 0xf1, 0xe4, 0x46, 0xb9, 0xf5, 0x95, 0xee, 0xb5, 0x2a, 0x5d, 0x27, - 0x0a, 0x2c, 0x2a, 0x95, 0xda, 0xb4, 0x20, 0x60, 0x83, 0x04, 0x66, 0x01, 0x55, 0x4b, 0xa8, 0x06, - 0xc1, 0x02, 0xb1, 0x60, 0xe2, 0x4c, 0xd3, 0x21, 0xf1, 0x87, 0x66, 0xc6, 0x91, 0x2a, 0x36, 0x3c, - 0x00, 0x0b, 0x24, 0x5e, 0x83, 0x15, 0x3b, 0x78, 0x82, 0x2c, 0xbb, 0xec, 0x2a, 0xa2, 0xe6, 0x41, - 0x40, 0x33, 0xb6, 0xe3, 0xa4, 0x69, 0xda, 0xac, 0x22, 0x21, 0xb1, 0x4a, 0xe6, 0x9c, 0xdf, 0xf9, - 0x9f, 0x0f, 0xcf, 0x1c, 0xf0, 0xa0, 0x7f, 0x8f, 0x99, 0xc4, 0xb7, 0xfa, 0x61, 0x07, 0x53, 0x0f, - 0x73, 0xcc, 0xac, 0x21, 0xf6, 0xba, 0x3e, 0xb5, 0x12, 0x07, 0x0a, 0x88, 0x45, 0x3b, 0xc8, 0xb1, - 0x86, 0xdb, 0x1d, 0xcc, 0xd1, 0xb6, 0xd5, 0xc3, 0x1e, 0xa6, 0x88, 0xe3, 0xae, 0x19, 0x50, 0x9f, - 0xfb, 0xda, 0x7f, 0x31, 0x68, 0xa2, 0x80, 0x98, 0x02, 0x34, 0x13, 0x70, 0x7d, 0xab, 0x47, 0xf8, - 0x51, 0xd8, 0x31, 0x1d, 0xdf, 0xb5, 0x7a, 0x7e, 0xcf, 0xb7, 0x24, 0xdf, 0x09, 0x0f, 0xe5, 0x49, - 0x1e, 0xe4, 0xbf, 0x58, 0x67, 0xfd, 0x76, 0x96, 0xd0, 0x45, 0xce, 0x11, 0xf1, 0x30, 0x3d, 0xb6, - 0x82, 0x7e, 0x4f, 0x18, 0x98, 0xe5, 0x62, 0x8e, 0xac, 0xe1, 0x5c, 0xf6, 0x75, 0x6b, 0x51, 0x14, - 0x0d, 0x3d, 0x4e, 0x5c, 0x3c, 0x17, 0x70, 0xe7, 0xaa, 0x00, 0xe6, 0x1c, 0x61, 0x17, 0xcd, 0xc5, - 0xdd, 0x5a, 0x14, 0x17, 0x72, 0x32, 0xb0, 0x88, 0xc7, 0x19, 0xa7, 0xe7, 0x83, 0x5a, 0x5f, 0x15, - 0x50, 0x7d, 0x34, 0x08, 0x19, 0xc7, 0x14, 0xfa, 0x03, 0xac, 0xbd, 0x01, 0x15, 0xd1, 0x48, 0x17, - 0x71, 0xa4, 0x2b, 0x4d, 0x65, 0xa3, 0xba, 0x73, 0xd3, 0xcc, 0xc6, 0x37, 0xd1, 0x35, 0x83, 0x7e, - 0x4f, 0x18, 0x98, 0x29, 0x68, 0x73, 0xb8, 0x6d, 0x3e, 0xeb, 0xbc, 0xc5, 0x0e, 0x7f, 0x8a, 0x39, - 0xb2, 0xb5, 0xd1, 0xb8, 0x91, 0x8b, 0xc6, 0x0d, 0x90, 0xd9, 0xe0, 0x44, 0x55, 0x7b, 0x02, 0x4a, - 0x34, 0x1c, 0x60, 0xa6, 0xe7, 0x9b, 0x85, 0x8d, 0xea, 0xce, 0x35, 0x73, 0xc1, 0xd7, 0x31, 0x0f, - 0xfc, 0x01, 0x71, 0x8e, 0x61, 0x38, 0xc0, 0x76, 0x2d, 0x51, 0x2c, 0x89, 0x13, 0x83, 0xb1, 0x40, - 0xeb, 0x53, 0x1e, 0x68, 0x53, 0xb5, 0xdb, 0xc4, 0xeb, 0x12, 0xaf, 0xb7, 0x82, 0x16, 0xda, 0xa0, - 0xc2, 0x42, 0xe9, 0x48, 0xbb, 0x68, 0x2e, 0xec, 0xe2, 0x79, 0x0c, 0xda, 0x7f, 0x27, 0x8a, 0x95, - 0xc4, 0xc0, 0xe0, 0x44, 0x43, 0xdb, 0x03, 0x65, 0xea, 0x0f, 0x30, 0xc4, 0x87, 0x7a, 0x41, 0x16, - 0xbc, 0x58, 0x0e, 0xc6, 0x9c, 0x5d, 0x4f, 0xe4, 0xca, 0x89, 0x01, 0xa6, 0x0a, 0xad, 0x91, 0x02, - 0xfe, 0x9d, 0x9f, 0xca, 0x3e, 0x61, 0x5c, 0x7b, 0x3d, 0x37, 0x19, 0x73, 0xb9, 0xc9, 0x88, 0x68, - 0x39, 0x97, 0x49, 0x17, 0xa9, 0x65, 0x6a, 0x2a, 0x07, 0xa0, 0x44, 0x38, 0x76, 0xd3, 0x91, 0x6c, - 0x2e, 0xec, 0x61, 0xbe, 0xba, 0xec, 0x03, 0xef, 0x0a, 0x05, 0x18, 0x0b, 0xb5, 0xbe, 0x29, 0xa0, - 0x3e, 0x05, 0xaf, 0xa0, 0x87, 0xdd, 0xd9, 0x1e, 0xae, 0x2f, 0xd5, 0xc3, 0xc5, 0xc5, 0xff, 0x54, - 0x00, 0xc8, 0xae, 0xb0, 0xd6, 0x00, 0xa5, 0x21, 0xa6, 0x1d, 0xa6, 0x2b, 0xcd, 0xc2, 0x86, 0x6a, - 0xab, 0x82, 0x7f, 0x29, 0x0c, 0x30, 0xb6, 0x6b, 0x9b, 0x40, 0x45, 0x01, 0x79, 0x4c, 0xfd, 0x30, - 0x88, 0xd3, 0xab, 0x76, 0x2d, 0x1a, 0x37, 0xd4, 0x87, 0x07, 0xbb, 0xb1, 0x11, 0x66, 0x7e, 0x01, - 0x53, 0xcc, 0xfc, 0x90, 0x3a, 0x98, 0xe9, 0x85, 0x0c, 0x86, 0xa9, 0x11, 0x66, 0x7e, 0xed, 0x2e, - 0xa8, 0xa5, 0x87, 0x36, 0x72, 0x31, 0xd3, 0x8b, 0x32, 0x60, 0x2d, 0x1a, 0x37, 0x6a, 0x70, 0xda, - 0x01, 0x67, 0x39, 0xed, 0x3e, 0xa8, 0x7b, 0xbe, 0x97, 0x22, 0x2f, 0xe0, 0x3e, 0xd3, 0x4b, 0x32, - 0xf4, 0x9f, 0x68, 0xdc, 0xa8, 0xb7, 0x67, 0x5d, 0xf0, 0x3c, 0xdb, 0xfa, 0xa2, 0x80, 0xe2, 0x6f, - 0xb7, 0x54, 0x3e, 0xe4, 0x41, 0xf5, 0xcf, 0x36, 0x99, 0x6c, 0x13, 0xf1, 0x04, 0x57, 0xbb, 0x46, - 0x96, 0x7e, 0x82, 0x57, 0xef, 0x8f, 0xcf, 0x0a, 0xa8, 0xac, 0x68, 0x71, 0xd8, 0xb3, 0x55, 0xff, - 0x7f, 0x79, 0xd5, 0x17, 0x97, 0xfb, 0x0e, 0xa4, 0xf3, 0xd7, 0x6e, 0x80, 0x4a, 0xfa, 0xd8, 0x65, - 0xb1, 0x6a, 0x96, 0x3c, 0xdd, 0x07, 0x70, 0x42, 0x68, 0x4d, 0x50, 0xec, 0x13, 0xaf, 0xab, 0xe7, - 0x25, 0xf9, 0x57, 0x42, 0x16, 0xf7, 0x88, 0xd7, 0x85, 0xd2, 0x23, 0x08, 0x0f, 0xb9, 0x58, 0x5e, - 0x88, 0x29, 0x42, 0x3c, 0x73, 0x28, 0x3d, 0x62, 0x56, 0xe5, 0xe4, 0x32, 0x4d, 0xf4, 0x94, 0x85, - 0x7a, 0xd3, 0xf5, 0xe5, 0x97, 0xa9, 0xef, 0xf2, 0xec, 0x9a, 0x05, 0x54, 0xf1, 0xcb, 0x02, 0xe4, - 0x60, 0xbd, 0x28, 0xb1, 0xb5, 0x04, 0x53, 0xdb, 0xa9, 0x03, 0x66, 0x8c, 0xbd, 0x35, 0x3a, 0x33, - 0x72, 0x27, 0x67, 0x46, 0xee, 0xf4, 0xcc, 0xc8, 0xbd, 0x8f, 0x0c, 0x65, 0x14, 0x19, 0xca, 0x49, - 0x64, 0x28, 0xa7, 0x91, 0xa1, 0x7c, 0x8f, 0x0c, 0xe5, 0xe3, 0x0f, 0x23, 0xf7, 0xaa, 0x9c, 0x4c, - 0xfd, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x74, 0x24, 0x6a, 0xfa, 0x45, 0x0a, 0x00, 0x00, + // 743 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x94, 0x4f, 0x6b, 0x13, 0x4f, + 0x18, 0xc7, 0x33, 0xf9, 0x43, 0xb3, 0x93, 0x5f, 0xc8, 0xaf, 0x2b, 0xc8, 0x52, 0x61, 0x13, 0x72, + 0x90, 0x80, 0xba, 0x6b, 0xaa, 0xa8, 0x20, 0x3d, 0xb8, 0x15, 0xa5, 0xb4, 0xd6, 0x32, 0xa2, 0x07, + 0xf1, 0xe0, 0x66, 0x33, 0x4d, 0xc7, 0x64, 0xff, 0x30, 0x33, 0x1b, 0x28, 0x5e, 0xc4, 0x9b, 0x37, + 0xdf, 0x85, 0x17, 0xbd, 0xe9, 0x2b, 0xf0, 0xd2, 0x63, 0x8f, 0x3d, 0x05, 0xbb, 0xbe, 0x10, 0x65, + 0x66, 0x77, 0xb3, 0x49, 0x93, 0xd8, 0x9e, 0x02, 0xe2, 0x29, 0x99, 0xe7, 0xf9, 0x7c, 0x9f, 0xf9, + 0xce, 0xb3, 0x33, 0x0f, 0xbc, 0xdf, 0xbf, 0xc7, 0x0c, 0xe2, 0x9b, 0xfd, 0xb0, 0x83, 0xa9, 0x87, + 0x39, 0x66, 0xe6, 0x10, 0x7b, 0x5d, 0x9f, 0x9a, 0x49, 0xc2, 0x0e, 0x88, 0x49, 0x3b, 0xb6, 0x63, + 0x0e, 0xdb, 0x66, 0x0f, 0x7b, 0x98, 0xda, 0x1c, 0x77, 0x8d, 0x80, 0xfa, 0xdc, 0x57, 0xd5, 0x98, + 0x31, 0xec, 0x80, 0x18, 0x82, 0x31, 0x86, 0xed, 0xb5, 0x1b, 0x3d, 0xc2, 0x0f, 0xc2, 0x8e, 0xe1, + 0xf8, 0xae, 0xd9, 0xf3, 0x7b, 0xbe, 0x29, 0xd1, 0x4e, 0xb8, 0x2f, 0x57, 0x72, 0x21, 0xff, 0xc5, + 0x25, 0xd6, 0x6e, 0x67, 0xdb, 0xb8, 0xb6, 0x73, 0x40, 0x3c, 0x4c, 0x0f, 0xcd, 0xa0, 0xdf, 0x13, + 0x01, 0x66, 0xba, 0x98, 0xdb, 0x73, 0x36, 0x5e, 0x33, 0x17, 0xa9, 0x68, 0xe8, 0x71, 0xe2, 0xe2, + 0x19, 0xc1, 0x9d, 0xf3, 0x04, 0xcc, 0x39, 0xc0, 0xae, 0x3d, 0xa3, 0xbb, 0xb5, 0x48, 0x17, 0x72, + 0x32, 0x30, 0x89, 0xc7, 0x19, 0xa7, 0x67, 0x45, 0xcd, 0xaf, 0x00, 0x56, 0x36, 0x07, 0x21, 0xe3, + 0x98, 0x22, 0x7f, 0x80, 0xd5, 0xd7, 0xb0, 0x2c, 0x0e, 0xd2, 0xb5, 0xb9, 0xad, 0x81, 0x06, 0x68, + 0x55, 0xd6, 0x6f, 0x1a, 0x59, 0xe7, 0xc6, 0x75, 0x8d, 0xa0, 0xdf, 0x13, 0x01, 0x66, 0x08, 0xda, + 0x18, 0xb6, 0x8d, 0xa7, 0x9d, 0x37, 0xd8, 0xe1, 0x4f, 0x30, 0xb7, 0x2d, 0xf5, 0x68, 0x54, 0xcf, + 0x45, 0xa3, 0x3a, 0xcc, 0x62, 0x68, 0x5c, 0x55, 0xdd, 0x84, 0x25, 0x1a, 0x0e, 0x30, 0xd3, 0xf2, + 0x8d, 0x42, 0xab, 0xb2, 0xae, 0x1b, 0xb3, 0x1f, 0xc6, 0xd8, 0xf3, 0x07, 0xc4, 0x39, 0x44, 0xe1, + 0x00, 0x5b, 0xd5, 0xa4, 0x58, 0x49, 0xac, 0x18, 0x8a, 0xb5, 0xcd, 0x0f, 0x79, 0xa8, 0x4e, 0xd8, + 0xb6, 0x88, 0xd7, 0x25, 0x5e, 0x6f, 0x09, 0xee, 0xb7, 0x60, 0x99, 0x85, 0x32, 0x91, 0x1e, 0xe0, + 0xca, 0xbc, 0x03, 0x3c, 0x8b, 0x19, 0xeb, 0xff, 0xa4, 0x58, 0x39, 0x09, 0x30, 0x34, 0x96, 0xab, + 0x8f, 0xe0, 0x0a, 0xf5, 0x07, 0x18, 0xe1, 0x7d, 0xad, 0x20, 0xbd, 0xce, 0xad, 0x84, 0x62, 0xc4, + 0xaa, 0x25, 0x95, 0x56, 0x92, 0x00, 0x4a, 0xc5, 0xcd, 0xef, 0x00, 0x5e, 0x9e, 0xed, 0xc5, 0x0e, + 0x61, 0x5c, 0x7d, 0x35, 0xd3, 0x0f, 0xe3, 0x62, 0xfd, 0x10, 0x6a, 0xd9, 0x8d, 0xf1, 0x01, 0xd2, + 0xc8, 0x44, 0x2f, 0xb6, 0x61, 0x89, 0x70, 0xec, 0xa6, 0x8d, 0xb8, 0x3a, 0xcf, 0xfe, 0xac, 0xb1, + 0xec, 0x8b, 0x6e, 0x09, 0x31, 0x8a, 0x6b, 0x34, 0xbf, 0x01, 0x58, 0x9b, 0x80, 0x97, 0x60, 0xff, + 0xe1, 0xb4, 0xfd, 0xfa, 0x79, 0xf6, 0xe7, 0xfb, 0xfe, 0x05, 0x20, 0xcc, 0xae, 0xab, 0x5a, 0x87, + 0xa5, 0x21, 0xa6, 0x1d, 0xa6, 0x81, 0x46, 0xa1, 0xa5, 0x58, 0x8a, 0xe0, 0x5f, 0x88, 0x00, 0x8a, + 0xe3, 0xea, 0x35, 0xa8, 0xd8, 0x01, 0x79, 0x4c, 0xfd, 0x30, 0x88, 0x77, 0x56, 0xac, 0x6a, 0x34, + 0xaa, 0x2b, 0x0f, 0xf6, 0xb6, 0xe2, 0x20, 0xca, 0xf2, 0x02, 0xa6, 0x98, 0xf9, 0x21, 0x75, 0x30, + 0xd3, 0x0a, 0x19, 0x8c, 0xd2, 0x20, 0xca, 0xf2, 0xea, 0x5d, 0x58, 0x4d, 0x17, 0xbb, 0xb6, 0x8b, + 0x99, 0x56, 0x94, 0x82, 0xd5, 0x68, 0x54, 0xaf, 0xa2, 0xc9, 0x04, 0x9a, 0xe6, 0xd4, 0x0d, 0x58, + 0xf3, 0x7c, 0x2f, 0x45, 0x9e, 0xa3, 0x1d, 0xa6, 0x95, 0xa4, 0xf4, 0x52, 0x34, 0xaa, 0xd7, 0x76, + 0xa7, 0x53, 0xe8, 0x2c, 0xdb, 0xfc, 0x02, 0x60, 0xf1, 0x6f, 0x9a, 0x1d, 0xef, 0xf3, 0xb0, 0xf2, + 0xcf, 0x0f, 0x0d, 0xf1, 0xdc, 0x96, 0x3b, 0x2d, 0x2e, 0xf2, 0xdc, 0xce, 0x1f, 0x13, 0x9f, 0x00, + 0x2c, 0x2f, 0x69, 0x3e, 0x6c, 0x4c, 0x1b, 0xd6, 0x16, 0x1a, 0x9e, 0xef, 0xf4, 0x2d, 0x4c, 0xbb, + 0xae, 0x5e, 0x87, 0xe5, 0xf4, 0x4d, 0x4b, 0x9f, 0x4a, 0xb6, 0x6f, 0xfa, 0xec, 0xd1, 0x98, 0x50, + 0x1b, 0xb0, 0xd8, 0x27, 0x5e, 0x57, 0xcb, 0x4b, 0xf2, 0xbf, 0x84, 0x2c, 0x6e, 0x13, 0xaf, 0x8b, + 0x64, 0x46, 0x10, 0x9e, 0xed, 0x62, 0x79, 0x03, 0x26, 0x08, 0xf1, 0x9a, 0x91, 0xcc, 0x34, 0x3f, + 0x03, 0xb8, 0x92, 0xdc, 0x9e, 0x71, 0x3d, 0xb0, 0xb0, 0xde, 0xa4, 0xbf, 0xfc, 0x45, 0xfc, 0xfd, + 0x79, 0x77, 0xd5, 0x84, 0x8a, 0xf8, 0x65, 0x81, 0xed, 0x60, 0xad, 0x28, 0xb1, 0xd5, 0x04, 0x53, + 0x76, 0xd3, 0x04, 0xca, 0x18, 0xab, 0x75, 0x74, 0xaa, 0xe7, 0x8e, 0x4f, 0xf5, 0xdc, 0xc9, 0xa9, + 0x9e, 0x7b, 0x17, 0xe9, 0xe0, 0x28, 0xd2, 0xc1, 0x71, 0xa4, 0x83, 0x93, 0x48, 0x07, 0x3f, 0x22, + 0x1d, 0x7c, 0xfc, 0xa9, 0xe7, 0x5e, 0xe6, 0x87, 0xed, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x66, + 0x92, 0x08, 0x1d, 0x04, 0x0a, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/rbac/v1beta1/generated.proto b/vendor/k8s.io/api/rbac/v1beta1/generated.proto index 6469de720..fa4418771 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/generated.proto +++ b/vendor/k8s.io/api/rbac/v1beta1/generated.proto @@ -85,7 +85,8 @@ message PolicyRule { // +optional repeated string apiGroups = 2; - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. + // Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. + // '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups. // +optional repeated string resources = 3; diff --git a/vendor/k8s.io/api/rbac/v1beta1/types.go b/vendor/k8s.io/api/rbac/v1beta1/types.go index 30f95a774..ee3964a3c 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/types.go +++ b/vendor/k8s.io/api/rbac/v1beta1/types.go @@ -54,7 +54,8 @@ type PolicyRule struct { // the enumerated resources in any API group will be allowed. // +optional APIGroups []string `json:"apiGroups,omitempty" protobuf:"bytes,2,rep,name=apiGroups"` - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. + // Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. + // '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups. // +optional Resources []string `json:"resources,omitempty" protobuf:"bytes,3,rep,name=resources"` // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. diff --git a/vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go index 1463d8fea..16a265c5a 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go @@ -72,7 +72,7 @@ var map_PolicyRule = map[string]string{ "": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", "verbs": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", "apiGroups": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", - "resources": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", + "resources": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", "resourceNames": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", "nonResourceURLs": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", } diff --git a/vendor/k8s.io/apiextensions-apiserver/Godeps/Godeps.json b/vendor/k8s.io/apiextensions-apiserver/Godeps/Godeps.json index 4f196cecf..1b6e52e51 100644 --- a/vendor/k8s.io/apiextensions-apiserver/Godeps/Godeps.json +++ b/vendor/k8s.io/apiextensions-apiserver/Godeps/Godeps.json @@ -514,1077 +514,1085 @@ "ImportPath": "gopkg.in/yaml.v2", "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" }, + { + "ImportPath": "k8s.io/api/admission/v1alpha1", + "Rev": "218912509d74a117d05a718bb926d0948e531c20" + }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/apps/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/apps/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/apps/v1beta2", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/authentication/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/authentication/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/authorization/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/authorization/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/autoscaling/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/autoscaling/v2beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/batch/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/batch/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/batch/v2alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/certificates/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/core/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/extensions/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/networking/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/policy/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/rbac/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/rbac/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/rbac/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/scheduling/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/settings/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/storage/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/storage/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/validation", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/validation/path", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/validation", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/unstructured", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/proxy", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/rand", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/uuid", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apiserver/pkg/admission", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/configuration", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/initializer", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/initialization", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/webhook", + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver/install", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver/v1alpha1", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit/install", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit/v1alpha1", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit/v1beta1", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/apis/audit/validation", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/audit", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/audit/policy", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/authenticator", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/authenticatorfactory", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/group", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/anonymous", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/bearertoken", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/headerrequest", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/union", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/websocket", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/request/x509", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/serviceaccount", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/token/tokenfile", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authentication/user", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authorization/authorizer", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authorization/authorizerfactory", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/authorization/union", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/discovery", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/filters", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers/negotiation", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers/responsewriters", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/metrics", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/openapi", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/endpoints/request", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/features", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/registry/generic", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/registry/generic/registry", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/registry/rest", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/server", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/server/filters", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/server/healthz", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/server/httplog", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/server/mux", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/server/options", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/server/routes", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/server/routes/data/swagger", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/server/storage", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/errors", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/etcd", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/etcd/metrics", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/etcd/util", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/etcd3", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/etcd3/preflight", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/names", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/storagebackend", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/storagebackend/factory", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/storage/value", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/util/feature", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/util/flag", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/util/flushwriter", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/util/logs", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/util/trace", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/util/webhook", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/pkg/util/wsstream", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/audit/log", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/audit/webhook", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/authenticator/token/webhook", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/apiserver/plugin/pkg/authorizer/webhook", - "Rev": "d299c880c4e33854f8c45bdd7ab599fb54cbe575" + "Rev": "7001bc4df8883d4a0ec84cd4b2117655a0009b6c" }, { "ImportPath": "k8s.io/client-go/discovery", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/discovery/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/dynamic", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/apps", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta2", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/batch", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/certificates", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/core", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/core/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/extensions", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/internalinterfaces", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/networking", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/networking/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/policy", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/policy/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/rbac", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/scheduling", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/settings", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/storage", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/scheme", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta2", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/core/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/networking/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/policy/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/pkg/version", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/rest", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/rest/watch", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/testing", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/auth", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/cache", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/metrics", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/pager", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/reference", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/transport", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/buffer", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/cert", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/flowcontrol", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/homedir", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/integer", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/workqueue", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" } ] } diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/helpers.go b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/helpers.go index 299ddc22b..8dc7f72d6 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/helpers.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/helpers.go @@ -16,11 +16,18 @@ limitations under the License. package apiextensions +import ( + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + // SetCRDCondition sets the status condition. It either overwrites the existing one or // creates a new one func SetCRDCondition(crd *CustomResourceDefinition, newCondition CustomResourceDefinitionCondition) { existingCondition := FindCRDCondition(crd, newCondition.Type) if existingCondition == nil { + newCondition.LastTransitionTime = metav1.NewTime(time.Now()) crd.Status.Conditions = append(crd.Status.Conditions, newCondition) return } diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD index 023b4d894..54732b7f9 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions: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/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go index 27bb4cad8..1bd848051 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go @@ -21,7 +21,6 @@ package internalversion import ( apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *customResourceDefinitionLister) List(selector labels.Selector) (ret []* // Get retrieves the CustomResourceDefinition from the index for a given name. func (s *customResourceDefinitionLister) Get(name string) (*apiextensions.CustomResourceDefinition, error) { - key := &apiextensions.CustomResourceDefinition{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD index 5970f58a1..f57e6d77f 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1: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/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go index f9b2a8f1e..316721bd6 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *customResourceDefinitionLister) List(selector labels.Selector) (ret []* // Get retrieves the CustomResourceDefinition from the index for a given name. func (s *customResourceDefinitionLister) Get(name string) (*v1beta1.CustomResourceDefinition, error) { - key := &v1beta1.CustomResourceDefinition{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD b/vendor/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD index 9dbd03a3b..2abd62ff1 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD @@ -30,7 +30,6 @@ go_library( "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion: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/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/controller/status/naming_controller.go b/vendor/k8s.io/apiextensions-apiserver/pkg/controller/status/naming_controller.go index 271d11adf..c0a7cc86f 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/controller/status/naming_controller.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/controller/status/naming_controller.go @@ -25,7 +25,6 @@ import ( "github.com/golang/glog" apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" utilerrors "k8s.io/apimachinery/pkg/util/errors" utilruntime "k8s.io/apimachinery/pkg/util/runtime" @@ -192,22 +191,20 @@ func (c *NamingConditionController) calculateNamesAndConditions(in *apiextension // set EstablishedCondition to true if all names are accepted. Never set it back to false. establishedCondition := apiextensions.CustomResourceDefinitionCondition{ - Type: apiextensions.Established, - Status: apiextensions.ConditionFalse, - Reason: "NotAccepted", - Message: "not all names are accepted", - LastTransitionTime: metav1.NewTime(time.Now()), + Type: apiextensions.Established, + Status: apiextensions.ConditionFalse, + Reason: "NotAccepted", + Message: "not all names are accepted", } if old := apiextensions.FindCRDCondition(in, apiextensions.Established); old != nil { establishedCondition = *old } if establishedCondition.Status != apiextensions.ConditionTrue && namesAcceptedCondition.Status == apiextensions.ConditionTrue { establishedCondition = apiextensions.CustomResourceDefinitionCondition{ - Type: apiextensions.Established, - Status: apiextensions.ConditionTrue, - Reason: "InitialNamesAccepted", - Message: "the initial names have been accepted", - LastTransitionTime: metav1.NewTime(time.Now()), + Type: apiextensions.Established, + Status: apiextensions.ConditionTrue, + Reason: "InitialNamesAccepted", + Message: "the initial names have been accepted", } } diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/registry/customresource/strategy.go b/vendor/k8s.io/apiextensions-apiserver/pkg/registry/customresource/strategy.go index 18c6c2b74..f001dc57a 100644 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/registry/customresource/strategy.go +++ b/vendor/k8s.io/apiextensions-apiserver/pkg/registry/customresource/strategy.go @@ -135,7 +135,7 @@ func (a customResourceValidator) Validate(ctx genericapirequest.Context, obj run return field.ErrorList{field.Invalid(field.NewPath("kind"), typeAccessor.GetKind(), fmt.Sprintf("must be %v", a.kind.Kind))} } if typeAccessor.GetAPIVersion() != a.kind.Group+"/"+a.kind.Version { - return field.ErrorList{field.Invalid(field.NewPath("apiVersion"), typeAccessor.GetKind(), fmt.Sprintf("must be %v", a.kind.Group+"/"+a.kind.Version))} + return field.ErrorList{field.Invalid(field.NewPath("apiVersion"), typeAccessor.GetAPIVersion(), fmt.Sprintf("must be %v", a.kind.Group+"/"+a.kind.Version))} } customResourceObject, ok := obj.(*unstructured.Unstructured) @@ -169,7 +169,7 @@ func (a customResourceValidator) ValidateUpdate(ctx genericapirequest.Context, o return field.ErrorList{field.Invalid(field.NewPath("kind"), typeAccessor.GetKind(), fmt.Sprintf("must be %v", a.kind.Kind))} } if typeAccessor.GetAPIVersion() != a.kind.Group+"/"+a.kind.Version { - return field.ErrorList{field.Invalid(field.NewPath("apiVersion"), typeAccessor.GetKind(), fmt.Sprintf("must be %v", a.kind.Group+"/"+a.kind.Version))} + return field.ErrorList{field.Invalid(field.NewPath("apiVersion"), typeAccessor.GetAPIVersion(), fmt.Sprintf("must be %v", a.kind.Group+"/"+a.kind.Version))} } customResourceObject, ok := obj.(*unstructured.Unstructured) diff --git a/vendor/k8s.io/apimachinery/Godeps/Godeps.json b/vendor/k8s.io/apimachinery/Godeps/Godeps.json index 603fd650e..1e51afd5a 100644 --- a/vendor/k8s.io/apimachinery/Godeps/Godeps.json +++ b/vendor/k8s.io/apimachinery/Godeps/Godeps.json @@ -216,7 +216,7 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" } ] } diff --git a/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_test.go b/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_test.go index e61a2547d..74f091a38 100644 --- a/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_test.go +++ b/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_test.go @@ -29,8 +29,6 @@ import ( inf "gopkg.in/inf.v0" ) -var useInfDec bool - func amount(i int64, exponent int) infDecAmount { // See the below test-- scale is the negative of an exponent. return infDecAmount{inf.NewDec(i, inf.Scale(-exponent))} @@ -79,7 +77,7 @@ func TestQuantityParseZero(t *testing.T) { } } -// TestQuantityParseNonNumericError ensures that when a non-numeric string is parsed +// TestQuantityParseNonNumericPanic ensures that when a non-numeric string is parsed // it panics func TestQuantityParseNonNumericPanic(t *testing.T) { defer func() { @@ -140,7 +138,7 @@ func TestQuantitySubZeroPreservesSuffix(t *testing.T) { } } -// Verifies that you get 0 as canonical value if internal value is 0, and not 0 +// TestQuantityCanocicalizeZero verifies that you get 0 as canonical value if internal value is 0, and not 0 func TestQuantityCanocicalizeZero(t *testing.T) { val := MustParse("1000m") val.i.Sub(int64Amount{value: 1}) diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go index e5f5bd4c7..27dfb3d9e 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go @@ -18,7 +18,10 @@ package fuzzer import ( "fmt" + "math/rand" + "sort" "strconv" + "strings" "github.com/google/gofuzz" @@ -96,7 +99,80 @@ func genericFuzzerFuncs(codecs runtimeserializer.CodecFactory) []interface{} { } } +// taken from gofuzz internals for RandString +type charRange struct { + first, last rune +} + +func (c *charRange) choose(r *rand.Rand) rune { + count := int64(c.last - c.first + 1) + ch := c.first + rune(r.Int63n(count)) + + return ch +} + +// randomLabelPart produces a valid random label value or name-part +// of a label key. +func randomLabelPart(c fuzz.Continue, canBeEmpty bool) string { + validStartEnd := []charRange{{'0', '9'}, {'a', 'z'}, {'A', 'Z'}} + validMiddle := []charRange{{'0', '9'}, {'a', 'z'}, {'A', 'Z'}, + {'.', '.'}, {'-', '-'}, {'_', '_'}} + + partLen := c.Rand.Intn(64) // len is [0, 63] + if !canBeEmpty { + partLen = c.Rand.Intn(63) + 1 // len is [1, 63] + } + + runes := make([]rune, partLen) + if partLen == 0 { + return string(runes) + } + + runes[0] = validStartEnd[c.Rand.Intn(len(validStartEnd))].choose(c.Rand) + for i := range runes[1:] { + runes[i+1] = validMiddle[c.Rand.Intn(len(validMiddle))].choose(c.Rand) + } + runes[len(runes)-1] = validStartEnd[c.Rand.Intn(len(validStartEnd))].choose(c.Rand) + + return string(runes) +} + +func randomDNSLabel(c fuzz.Continue) string { + validStartEnd := []charRange{{'0', '9'}, {'a', 'z'}} + validMiddle := []charRange{{'0', '9'}, {'a', 'z'}, {'-', '-'}} + + partLen := c.Rand.Intn(63) + 1 // len is [1, 63] + runes := make([]rune, partLen) + + runes[0] = validStartEnd[c.Rand.Intn(len(validStartEnd))].choose(c.Rand) + for i := range runes[1:] { + runes[i+1] = validMiddle[c.Rand.Intn(len(validMiddle))].choose(c.Rand) + } + runes[len(runes)-1] = validStartEnd[c.Rand.Intn(len(validStartEnd))].choose(c.Rand) + + return string(runes) +} + +func randomLabelKey(c fuzz.Continue) string { + namePart := randomLabelPart(c, false) + prefixPart := "" + + usePrefix := c.RandBool() + if usePrefix { + // we can fit, with dots, at most 3 labels in the 253 allotted characters + prefixPartsLen := c.Rand.Intn(2) + 1 + prefixParts := make([]string, prefixPartsLen) + for i := range prefixParts { + prefixParts[i] = randomDNSLabel(c) + } + prefixPart = strings.Join(prefixParts, ".") + "/" + } + + return prefixPart + namePart +} + func v1FuzzerFuncs(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ func(j *metav1.TypeMeta, c fuzz.Continue) { // We have to customize the randomization of TypeMetas because their @@ -120,6 +196,57 @@ func v1FuzzerFuncs(codecs runtimeserializer.CodecFactory) []interface{} { j.ResourceVersion = strconv.FormatUint(c.RandUint64(), 10) j.SelfLink = c.RandString() }, + func(j *metav1.LabelSelector, c fuzz.Continue) { + c.FuzzNoCustom(j) + // we can't have an entirely empty selector, so force + // use of MatchExpression if necessary + if len(j.MatchLabels) == 0 && len(j.MatchExpressions) == 0 { + j.MatchExpressions = make([]metav1.LabelSelectorRequirement, c.Rand.Intn(2)+1) + } + + if j.MatchLabels != nil { + fuzzedMatchLabels := make(map[string]string, len(j.MatchLabels)) + for i := 0; i < len(j.MatchLabels); i++ { + fuzzedMatchLabels[randomLabelKey(c)] = randomLabelPart(c, true) + } + j.MatchLabels = fuzzedMatchLabels + } + + validOperators := []metav1.LabelSelectorOperator{ + metav1.LabelSelectorOpIn, + metav1.LabelSelectorOpNotIn, + metav1.LabelSelectorOpExists, + metav1.LabelSelectorOpDoesNotExist, + } + + if j.MatchExpressions != nil { + // NB: the label selector parser code sorts match expressions by key, and sorts the values, + // so we need to make sure ours are sorted as well here to preserve round-trip comparision. + // In practice, not sorting doesn't hurt anything... + + for i := range j.MatchExpressions { + req := metav1.LabelSelectorRequirement{} + c.Fuzz(&req) + req.Key = randomLabelKey(c) + req.Operator = validOperators[c.Rand.Intn(len(validOperators))] + if req.Operator == metav1.LabelSelectorOpIn || req.Operator == metav1.LabelSelectorOpNotIn { + if len(req.Values) == 0 { + // we must have some values here, so randomly choose a short length + req.Values = make([]string, c.Rand.Intn(2)+1) + } + for i := range req.Values { + req.Values[i] = randomLabelPart(c, true) + } + sort.Strings(req.Values) + } else { + req.Values = nil + } + j.MatchExpressions[i] = req + } + + sort.Slice(j.MatchExpressions, func(a, b int) bool { return j.MatchExpressions[a].Key < j.MatchExpressions[b].Key }) + } + }, } } diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD index 7354f5e2f..4a96c3f94 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD @@ -93,3 +93,13 @@ filegroup( srcs = ["generated.proto"], visibility = ["//visibility:public"], ) + +go_test( + name = "go_default_xtest", + srcs = ["conversion_test.go"], + importpath = "k8s.io/apimachinery/pkg/apis/meta/v1_test", + deps = [ + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + ], +) 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 7049c9a33..a96f38ee2 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go @@ -252,7 +252,6 @@ func Convert_map_to_unversioned_LabelSelector(in *map[string]string, out *LabelS if in == nil { return nil } - out = new(LabelSelector) for labelKey, labelValue := range *in { AddLabelToSelector(out, labelKey, labelValue) } diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion_test.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion_test.go new file mode 100644 index 000000000..bc591584e --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion_test.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 v1_test + +import ( + "testing" + + apiequality "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func TestMapToLabelSelectorRoundTrip(t *testing.T) { + // We should be able to round-trip a map-only selector through LabelSelector. + inputs := []map[string]string{ + nil, + {}, + {"one": "foo"}, + {"one": "foo", "two": "bar"}, + } + for _, in := range inputs { + ls := &v1.LabelSelector{} + if err := v1.Convert_map_to_unversioned_LabelSelector(&in, ls, nil); err != nil { + t.Errorf("Convert_map_to_unversioned_LabelSelector(%#v): %v", in, err) + continue + } + out := map[string]string{} + if err := v1.Convert_unversioned_LabelSelector_to_map(ls, &out, nil); err != nil { + t.Errorf("Convert_unversioned_LabelSelector_to_map(%#v): %v", ls, err) + continue + } + if !apiequality.Semantic.DeepEqual(in, out) { + t.Errorf("map-selector conversion round-trip failed: got %v; want %v", out, in) + } + } +} diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time.go index 435f6a8f5..0a9f2a377 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time.go @@ -80,7 +80,13 @@ func (t *Time) Before(u *Time) bool { // Equal reports whether the time instant t is equal to u. func (t *Time) Equal(u *Time) bool { - return t.Time.Equal(u.Time) + if t == nil && u == nil { + return true + } + if t != nil && u != nil { + return t.Time.Equal(u.Time) + } + return false } // Unix returns the local time corresponding to the given Unix time diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time_test.go b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time_test.go index c0fafab9b..9923958ee 100644 --- a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time_test.go +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time_test.go @@ -171,3 +171,27 @@ func TestTimeProto(t *testing.T) { } } } + +func TestTimeEqual(t *testing.T) { + t1 := NewTime(time.Now()) + cases := []struct { + name string + x *Time + y *Time + result bool + }{ + {"nil =? nil", nil, nil, true}, + {"!nil =? !nil", &t1, &t1, true}, + {"nil =? !nil", nil, &t1, false}, + {"!nil =? nil", &t1, nil, false}, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + result := c.x.Equal(c.y) + if result != c.result { + t.Errorf("Failed equality test for '%v', '%v': expected %+v, got %+v", c.x, c.y, c.result, result) + } + }) + } +} diff --git a/vendor/k8s.io/apimachinery/pkg/labels/selector.go b/vendor/k8s.io/apimachinery/pkg/labels/selector.go index ac123033a..b301b4284 100644 --- a/vendor/k8s.io/apimachinery/pkg/labels/selector.go +++ b/vendor/k8s.io/apimachinery/pkg/labels/selector.go @@ -550,7 +550,7 @@ func (p *Parser) lookahead(context ParserContext) (Token, string) { return tok, lit } -// consume returns current token and string. Increments the the position +// consume returns current token and string. Increments the position func (p *Parser) consume(context ParserContext) (Token, string) { p.position++ tok, lit := p.scannedItems[p.position-1].tok, p.scannedItems[p.position-1].literal diff --git a/vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy/roundtripper.go b/vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy/roundtripper.go index 12bef075d..d2d3ad8cb 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy/roundtripper.go +++ b/vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy/roundtripper.go @@ -110,7 +110,7 @@ func (s *SpdyRoundTripper) Dial(req *http.Request) (net.Conn, error) { func (s *SpdyRoundTripper) dial(req *http.Request) (net.Conn, error) { proxier := s.proxier if proxier == nil { - proxier = http.ProxyFromEnvironment + proxier = utilnet.NewProxierWithNoProxyCIDR(http.ProxyFromEnvironment) } proxyURL, err := proxier(req) if err != nil { diff --git a/vendor/k8s.io/apimachinery/pkg/util/proxy/transport.go b/vendor/k8s.io/apimachinery/pkg/util/proxy/transport.go index 5bf229697..6c34ab524 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/proxy/transport.go +++ b/vendor/k8s.io/apimachinery/pkg/util/proxy/transport.go @@ -109,7 +109,7 @@ func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { } if redirect := resp.Header.Get("Location"); redirect != "" { - resp.Header.Set("Location", t.rewriteURL(redirect, req.URL)) + resp.Header.Set("Location", t.rewriteURL(redirect, req.URL, req.Host)) return resp, nil } @@ -131,21 +131,39 @@ func (rt *Transport) WrappedRoundTripper() http.RoundTripper { // rewriteURL rewrites a single URL to go through the proxy, if the URL refers // to the same host as sourceURL, which is the page on which the target URL -// occurred. If any error occurs (e.g. parsing), it returns targetURL. -func (t *Transport) rewriteURL(targetURL string, sourceURL *url.URL) string { +// occurred, or if the URL matches the sourceRequestHost. If any error occurs (e.g. +// parsing), it returns targetURL. +func (t *Transport) rewriteURL(targetURL string, sourceURL *url.URL, sourceRequestHost string) string { url, err := url.Parse(targetURL) if err != nil { return targetURL } - isDifferentHost := url.Host != "" && url.Host != sourceURL.Host + // Example: + // When API server processes a proxy request to a service (e.g. /api/v1/namespace/foo/service/bar/proxy/), + // the sourceURL.Host (i.e. req.URL.Host) is the endpoint IP address of the service. The + // sourceRequestHost (i.e. req.Host) is the Host header that specifies the host on which the + // URL is sought, which can be different from sourceURL.Host. For example, if user sends the + // request through "kubectl proxy" locally (i.e. localhost:8001/api/v1/namespace/foo/service/bar/proxy/), + // sourceRequestHost is "localhost:8001". + // + // If the service's response URL contains non-empty host, and url.Host is equal to either sourceURL.Host + // or sourceRequestHost, we should not consider the returned URL to be a completely different host. + // It's the API server's responsibility to rewrite a same-host-and-absolute-path URL and append the + // necessary URL prefix (i.e. /api/v1/namespace/foo/service/bar/proxy/). + isDifferentHost := url.Host != "" && url.Host != sourceURL.Host && url.Host != sourceRequestHost isRelative := !strings.HasPrefix(url.Path, "/") if isDifferentHost || isRelative { return targetURL } - url.Scheme = t.Scheme - url.Host = t.Host + // Do not rewrite scheme and host if the Transport has empty scheme and host + // when targetURL already contains the sourceRequestHost + if !(url.Host == sourceRequestHost && t.Scheme == "" && t.Host == "") { + url.Scheme = t.Scheme + url.Host = t.Host + } + origPath := url.Path // Do not rewrite URL if the sourceURL already contains the necessary prefix. if strings.HasPrefix(url.Path, t.PathPrepend) { @@ -223,7 +241,7 @@ func (t *Transport) rewriteResponse(req *http.Request, resp *http.Response) (*ht } urlRewriter := func(targetUrl string) string { - return t.rewriteURL(targetUrl, req.URL) + return t.rewriteURL(targetUrl, req.URL, req.Host) } err := rewriteHTML(reader, writer, urlRewriter) if err != nil { diff --git a/vendor/k8s.io/apimachinery/pkg/util/proxy/transport_test.go b/vendor/k8s.io/apimachinery/pkg/util/proxy/transport_test.go index f32bcf69e..e54500784 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/proxy/transport_test.go +++ b/vendor/k8s.io/apimachinery/pkg/util/proxy/transport_test.go @@ -53,6 +53,9 @@ func TestProxyTransport(t *testing.T) { Host: "foo.com", PathPrepend: "/proxy/node/node1:10250", } + emptyHostAndSchemeTransport := &Transport{ + PathPrepend: "/proxy/node/node1:10250", + } type Item struct { input string sourceURL string @@ -62,6 +65,7 @@ func TestProxyTransport(t *testing.T) { forwardedURI string redirect string redirectWant string + reqHost string } table := map[string]Item{ @@ -158,6 +162,14 @@ func TestProxyTransport(t *testing.T) { redirectWant: "http://example.com/redirected/target/", forwardedURI: "/proxy/node/node1:10250/redirect", }, + "redirect abs use reqHost no host no scheme": { + sourceURL: "http://mynode.com/redirect", + transport: emptyHostAndSchemeTransport, + redirect: "http://10.0.0.1:8001/redirected/target/", + redirectWant: "http://10.0.0.1:8001/proxy/node/node1:10250/redirected/target/", + forwardedURI: "/proxy/node/node1:10250/redirect", + reqHost: "10.0.0.1:8001", + }, "source contains the redirect already": { input: `
kubelet.loggoogle.log
`, sourceURL: "http://foo.com/logs/log.log", @@ -233,6 +245,9 @@ func TestProxyTransport(t *testing.T) { t.Errorf("%v: Unexpected error: %v", name, err) return } + if item.reqHost != "" { + req.Host = item.reqHost + } resp, err := item.transport.RoundTrip(req) if err != nil { t.Errorf("%v: Unexpected error: %v", name, err) diff --git a/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go b/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go index 748174e19..442dde7df 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go +++ b/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go @@ -128,7 +128,9 @@ func (r *rudimentaryErrorBackoff) OnError(error) { r.lastErrorTimeLock.Lock() defer r.lastErrorTimeLock.Unlock() d := time.Since(r.lastErrorTime) - if d < r.minPeriod { + if d < r.minPeriod && d >= 0 { + // If the time moves backwards for any reason, do nothing + // TODO: remove check "d >= 0" after go 1.8 is no longer supported time.Sleep(r.minPeriod - d) } r.lastErrorTime = time.Now() diff --git a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go index 8884c738e..01014f9d3 100644 --- a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go +++ b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go @@ -515,6 +515,9 @@ func normalizeSliceOrder(toSort, order []interface{}, mergeKey string, kind refl return nil, err } toSort, toDelete, err = extractToDeleteItems(toSort) + if err != nil { + return nil, err + } } sort.SliceStable(toSort, func(i, j int) bool { @@ -554,7 +557,13 @@ func diffLists(original, modified []interface{}, t reflect.Type, mergeKey string switch kind { case reflect.Map: patchList, deleteList, err = diffListsOfMaps(original, modified, t, mergeKey, diffOptions) + if err != nil { + return nil, nil, nil, err + } patchList, err = normalizeSliceOrder(patchList, modified, mergeKey, kind) + if err != nil { + return nil, nil, nil, err + } orderSame, err := isOrderSame(original, modified, mergeKey) if err != nil { return nil, nil, nil, err @@ -580,6 +589,9 @@ func diffLists(original, modified []interface{}, t reflect.Type, mergeKey string return nil, nil, nil, mergepatch.ErrNoListOfLists default: patchList, deleteList, err = diffListsOfScalars(original, modified, diffOptions) + if err != nil { + return nil, nil, nil, err + } patchList, err = normalizeSliceOrder(patchList, modified, mergeKey, kind) // generate the setElementOrder list when there are content changes or order changes if diffOptions.SetElementOrder && ((!diffOptions.IgnoreDeletions && len(deleteList) > 0) || @@ -1054,7 +1066,7 @@ func applyRetainKeysDirective(original, patch map[string]interface{}, options Me // Then, sort them by the relative order in setElementOrder, patch list and live list. // 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/preserve-order-in-strategic-merge-patch.md +// 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 { for key, patchV := range patch { // Do nothing if there is no ordering directive diff --git a/vendor/k8s.io/apiserver/Godeps/Godeps.json b/vendor/k8s.io/apiserver/Godeps/Godeps.json index f2489ffa6..d6977b419 100644 --- a/vendor/k8s.io/apiserver/Godeps/Godeps.json +++ b/vendor/k8s.io/apiserver/Godeps/Godeps.json @@ -404,31 +404,31 @@ }, { "ImportPath": "github.com/gophercloud/gophercloud", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/utils", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/pagination", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gregjones/httpcache", @@ -762,877 +762,881 @@ "ImportPath": "gopkg.in/yaml.v2", "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" }, + { + "ImportPath": "k8s.io/api/admission/v1alpha1", + "Rev": "218912509d74a117d05a718bb926d0948e531c20" + }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/apps/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/apps/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/apps/v1beta2", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/authentication/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/authentication/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/authorization/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/authorization/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/autoscaling/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/autoscaling/v2beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/batch/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/batch/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/batch/v2alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/certificates/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/core/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/extensions/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/networking/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/policy/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/rbac/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/rbac/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/rbac/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/scheduling/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/settings/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/storage/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/api/storage/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "218912509d74a117d05a718bb926d0948e531c20" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/validation", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/validation/path", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/validation", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/unstructured", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/proxy", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/rand", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/uuid", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "18a564baac720819100827c16fdebcadb05b2d0d" }, { "ImportPath": "k8s.io/client-go/discovery", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/discovery/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/apps", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/apps/v1beta2", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/batch", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/batch/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/certificates", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/core", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/core/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/extensions", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/internalinterfaces", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/networking", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/networking/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/policy", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/policy/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/rbac", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/scheduling", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/settings", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/storage", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/scheme", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/apps/v1beta2", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/batch/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/core/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/networking/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/policy/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/pkg/version", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/rest", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/rest/watch", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/testing", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/auth", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/cache", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/metrics", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/pager", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/tools/reference", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/transport", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/buffer", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/cert", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/flowcontrol", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/homedir", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/client-go/util/integer", - "Rev": "076e344c86e52f088b78615f815b245f6d613537" + "Rev": "dbe8fe09ed1682bc26b4e55cac5ef65dcd7664e9" }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" } ] } diff --git a/vendor/k8s.io/apiserver/pkg/admission/BUILD b/vendor/k8s.io/apiserver/pkg/admission/BUILD index 2dba798d7..294e34eaf 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/BUILD +++ b/vendor/k8s.io/apiserver/pkg/admission/BUILD @@ -68,6 +68,7 @@ filegroup( "//staging/src/k8s.io/apiserver/pkg/admission/initializer:all-srcs", "//staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization:all-srcs", "//staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/apiserver/pkg/admission/initializer/initializer.go b/vendor/k8s.io/apiserver/pkg/admission/initializer/initializer.go index bce5433a3..9ee990a3a 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/initializer/initializer.go +++ b/vendor/k8s.io/apiserver/pkg/admission/initializer/initializer.go @@ -28,11 +28,7 @@ type pluginInitializer struct { externalClient kubernetes.Interface externalInformers informers.SharedInformerFactory authorizer authorizer.Authorizer - // serverIdentifyingClientCert used to provide identity when calling out to admission plugins - serverIdentifyingClientCert []byte - // serverIdentifyingClientKey private key for the client certificate used when calling out to admission plugins - serverIdentifyingClientKey []byte - scheme *runtime.Scheme + scheme *runtime.Scheme } // New creates an instance of admission plugins initializer. @@ -41,17 +37,13 @@ func New( extClientset kubernetes.Interface, extInformers informers.SharedInformerFactory, authz authorizer.Authorizer, - serverIdentifyingClientCert, - serverIdentifyingClientKey []byte, scheme *runtime.Scheme, ) (pluginInitializer, error) { return pluginInitializer{ - externalClient: extClientset, - externalInformers: extInformers, - authorizer: authz, - serverIdentifyingClientCert: serverIdentifyingClientCert, - serverIdentifyingClientKey: serverIdentifyingClientKey, - scheme: scheme, + externalClient: extClientset, + externalInformers: extInformers, + authorizer: authz, + scheme: scheme, }, nil } @@ -70,10 +62,6 @@ func (i pluginInitializer) Initialize(plugin admission.Interface) { wants.SetAuthorizer(i.authorizer) } - if wants, ok := plugin.(WantsClientCert); ok { - wants.SetClientCert(i.serverIdentifyingClientCert, i.serverIdentifyingClientKey) - } - if wants, ok := plugin.(WantsScheme); ok { wants.SetScheme(i.scheme) } diff --git a/vendor/k8s.io/apiserver/pkg/admission/initializer/initializer_test.go b/vendor/k8s.io/apiserver/pkg/admission/initializer/initializer_test.go index 0550bd17c..e046ee2d4 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/initializer/initializer_test.go +++ b/vendor/k8s.io/apiserver/pkg/admission/initializer/initializer_test.go @@ -33,7 +33,7 @@ import ( // the WantsScheme interface is implemented by a plugin. func TestWantsScheme(t *testing.T) { scheme := runtime.NewScheme() - target, err := initializer.New(nil, nil, nil, nil, nil, scheme) + target, err := initializer.New(nil, nil, nil, scheme) if err != nil { t.Fatal(err) } @@ -47,7 +47,7 @@ func TestWantsScheme(t *testing.T) { // TestWantsAuthorizer ensures that the authorizer is injected // when the WantsAuthorizer interface is implemented by a plugin. func TestWantsAuthorizer(t *testing.T) { - target, err := initializer.New(nil, nil, &TestAuthorizer{}, nil, nil, nil) + target, err := initializer.New(nil, nil, &TestAuthorizer{}, nil) if err != nil { t.Fatal(err) } @@ -62,7 +62,7 @@ func TestWantsAuthorizer(t *testing.T) { // when the WantsExternalKubeClientSet interface is implemented by a plugin. func TestWantsExternalKubeClientSet(t *testing.T) { cs := &fake.Clientset{} - target, err := initializer.New(cs, nil, &TestAuthorizer{}, nil, nil, nil) + target, err := initializer.New(cs, nil, &TestAuthorizer{}, nil) if err != nil { t.Fatal(err) } @@ -78,7 +78,7 @@ func TestWantsExternalKubeClientSet(t *testing.T) { func TestWantsExternalKubeInformerFactory(t *testing.T) { cs := &fake.Clientset{} sf := informers.NewSharedInformerFactory(cs, time.Duration(1)*time.Second) - target, err := initializer.New(cs, sf, &TestAuthorizer{}, nil, nil, nil) + target, err := initializer.New(cs, sf, &TestAuthorizer{}, nil) if err != nil { t.Fatal(err) } @@ -89,20 +89,6 @@ func TestWantsExternalKubeInformerFactory(t *testing.T) { } } -// TestWantsClientCert ensures that the client certificate and key are injected -// when the WantsClientCert interface is implemented by a plugin. -func TestWantsClientCert(t *testing.T) { - target, err := initializer.New(nil, nil, nil, []byte("cert"), []byte("key"), nil) - if err != nil { - t.Fatal(err) - } - wantClientCert := &clientCertWanter{} - target.Initialize(wantClientCert) - if string(wantClientCert.gotCert) != "cert" || string(wantClientCert.gotKey) != "key" { - t.Errorf("expected client cert to be initialized, clientCert = %v, clientKey = %v", wantClientCert.gotCert, wantClientCert.gotKey) - } -} - // WantExternalKubeInformerFactory is a test stub that fulfills the WantsExternalKubeInformerFactory interface type WantExternalKubeInformerFactory struct { sf informers.SharedInformerFactory diff --git a/vendor/k8s.io/apiserver/pkg/admission/initializer/interfaces.go b/vendor/k8s.io/apiserver/pkg/admission/initializer/interfaces.go index 067b4a1da..16131f9dc 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/initializer/interfaces.go +++ b/vendor/k8s.io/apiserver/pkg/admission/initializer/interfaces.go @@ -42,13 +42,6 @@ type WantsAuthorizer interface { admission.Validator } -// WantsClientCert defines a fuction that accepts a cert & key for admission -// plugins that need to make calls and prove their identity. -type WantsClientCert interface { - SetClientCert(cert, key []byte) - admission.Validator -} - // WantsScheme defines a function that accepts runtime.Scheme for admission plugins that need it. type WantsScheme interface { SetScheme(*runtime.Scheme) diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission_test.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission_test.go index b0cad52f8..5937eb643 100644 --- a/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission_test.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission_test.go @@ -48,7 +48,7 @@ func newHandlerForTestWithClock(c clientset.Interface, cacheClock clock.Clock) ( if err != nil { return nil, f, err } - pluginInitializer, err := kubeadmission.New(c, f, nil, nil, nil, nil) + pluginInitializer, err := kubeadmission.New(c, f, nil, nil) if err != nil { return handler, f, err } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/BUILD b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/BUILD similarity index 73% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/BUILD rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/BUILD index 0190d6aae..78d390927 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/BUILD +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/BUILD @@ -5,15 +5,15 @@ go_library( srcs = [ "admission.go", "admissionreview.go", + "authentication.go", + "config.go", "doc.go", "rules.go", "serviceresolver.go", ], - importpath = "k8s.io/kubernetes/plugin/pkg/admission/webhook", + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/webhook", visibility = ["//visibility:public"], deps = [ - "//pkg/apis/admission/install:go_default_library", - "//pkg/kubeapiserver/admission:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/admission/v1alpha1:go_default_library", "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", @@ -21,15 +21,17 @@ go_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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/yaml:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/configuration:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/initializer:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", ], ) @@ -37,21 +39,26 @@ go_test( name = "go_default_test", srcs = [ "admission_test.go", + "authentication_test.go", "certs_test.go", "rules_test.go", "serviceresolver_test.go", ], - importpath = "k8s.io/kubernetes/plugin/pkg/admission/webhook", + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/webhook", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/apis/admission/install:go_default_library", "//vendor/k8s.io/api/admission/v1alpha1:go_default_library", "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality: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", + "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/admission.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/admission.go similarity index 70% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/admission.go rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/admission.go index efcd53417..2636c58df 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/admission.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/admission.go @@ -21,10 +21,9 @@ import ( "context" "fmt" "io" - "net" - "net/http" + "net/url" + "path" "sync" - "time" "github.com/golang/glog" @@ -33,25 +32,20 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission/configuration" genericadmissioninit "k8s.io/apiserver/pkg/admission/initializer" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" - admissioninit "k8s.io/kubernetes/pkg/kubeapiserver/admission" - - // install the clientgo admission API for use with api registry - _ "k8s.io/kubernetes/pkg/apis/admission/install" ) -var ( - groupVersions = []schema.GroupVersion{ - admissionv1alpha1.SchemeGroupVersion, - } +const ( + // Name of admission plug-in + PluginName = "GenericAdmissionWebhook" ) type ErrCallingWebhook struct { @@ -68,8 +62,8 @@ func (e *ErrCallingWebhook) Error() string { // Register registers a plugin func Register(plugins *admission.Plugins) { - plugins.Register("GenericAdmissionWebhook", func(configFile io.Reader) (admission.Interface, error) { - plugin, err := NewGenericAdmissionWebhook() + plugins.Register(PluginName, func(configFile io.Reader) (admission.Interface, error) { + plugin, err := NewGenericAdmissionWebhook(configFile) if err != nil { return nil, err } @@ -85,7 +79,23 @@ type WebhookSource interface { } // NewGenericAdmissionWebhook returns a generic admission webhook plugin. -func NewGenericAdmissionWebhook() (*GenericAdmissionWebhook, error) { +func NewGenericAdmissionWebhook(configFile io.Reader) (*GenericAdmissionWebhook, error) { + kubeconfigFile := "" + if configFile != nil { + // TODO: move this to a versioned configuration file format + var config AdmissionConfig + d := yaml.NewYAMLOrJSONDecoder(configFile, 4096) + err := d.Decode(&config) + if err != nil { + return nil, err + } + kubeconfigFile = config.KubeConfigFile + } + authInfoResolver, err := newDefaultAuthenticationInfoResolver(kubeconfigFile) + if err != nil { + return nil, err + } + return &GenericAdmissionWebhook{ Handler: admission.NewHandler( admission.Connect, @@ -93,7 +103,8 @@ func NewGenericAdmissionWebhook() (*GenericAdmissionWebhook, error) { admission.Delete, admission.Update, ), - serviceResolver: defaultServiceResolver{}, + authInfoResolver: authInfoResolver, + serviceResolver: defaultServiceResolver{}, }, nil } @@ -101,26 +112,31 @@ func NewGenericAdmissionWebhook() (*GenericAdmissionWebhook, error) { type GenericAdmissionWebhook struct { *admission.Handler hookSource WebhookSource - serviceResolver admissioninit.ServiceResolver + serviceResolver ServiceResolver negotiatedSerializer runtime.NegotiatedSerializer - clientCert []byte - clientKey []byte - proxyTransport *http.Transport + + authInfoResolver AuthenticationInfoResolver +} + +// serviceResolver knows how to convert a service reference into an actual location. +type ServiceResolver interface { + ResolveEndpoint(namespace, name string) (*url.URL, error) } var ( - _ = admissioninit.WantsServiceResolver(&GenericAdmissionWebhook{}) - _ = genericadmissioninit.WantsClientCert(&GenericAdmissionWebhook{}) _ = genericadmissioninit.WantsExternalKubeClientSet(&GenericAdmissionWebhook{}) ) -func (a *GenericAdmissionWebhook) SetProxyTransport(pt *http.Transport) { - a.proxyTransport = pt +// TODO find a better way wire this, but keep this pull small for now. +func (a *GenericAdmissionWebhook) SetAuthenticationInfoResolverWrapper(wrapper AuthenticationInfoResolverWrapper) { + if wrapper != nil { + a.authInfoResolver = wrapper(a.authInfoResolver) + } } // SetServiceResolver sets a service resolver for the webhook admission plugin. // Passing a nil resolver does not have an effect, instead a default one will be used. -func (a *GenericAdmissionWebhook) SetServiceResolver(sr admissioninit.ServiceResolver) { +func (a *GenericAdmissionWebhook) SetServiceResolver(sr ServiceResolver) { if sr != nil { a.serviceResolver = sr } @@ -135,19 +151,11 @@ func (a *GenericAdmissionWebhook) SetScheme(scheme *runtime.Scheme) { } } -func (a *GenericAdmissionWebhook) SetClientCert(cert, key []byte) { - a.clientCert = cert - a.clientKey = key -} - func (a *GenericAdmissionWebhook) SetExternalKubeClientSet(client clientset.Interface) { a.hookSource = configuration.NewExternalAdmissionHookConfigurationManager(client.Admissionregistration().ExternalAdmissionHookConfigurations()) } func (a *GenericAdmissionWebhook) Validate() error { - if a.clientCert == nil || a.clientKey == nil { - return fmt.Errorf("the GenericAdmissionWebhook admission plugin requires a client certificate and the private key to be provided") - } if a.hookSource == nil { return fmt.Errorf("the GenericAdmissionWebhook admission plugin requires a Kubernetes client to be provided") } @@ -192,16 +200,28 @@ func (a *GenericAdmissionWebhook) Admit(attr admission.Attributes) error { for i := range hooks { go func(hook *v1alpha1.ExternalAdmissionHook) { defer wg.Done() - if err := a.callHook(ctx, hook, attr); err == nil { + + err := a.callHook(ctx, hook, attr) + if err == nil { return - } else if callErr, ok := err.(*ErrCallingWebhook); ok { - glog.Warningf("Failed calling webhook %v: %v", hook.Name, callErr) - utilruntime.HandleError(callErr) - // Since we are failing open to begin with, we do not send an error down the channel - } else { - glog.Warningf("rejected by webhook %v %t: %v", hook.Name, err, err) + } + + ignoreClientCallFailures := hook.FailurePolicy != nil && *hook.FailurePolicy == v1alpha1.Ignore + if callErr, ok := err.(*ErrCallingWebhook); ok { + if ignoreClientCallFailures { + glog.Warningf("Failed calling webhook, failing open %v: %v", hook.Name, callErr) + utilruntime.HandleError(callErr) + // Since we are failing open to begin with, we do not send an error down the channel + return + } + + glog.Warningf("Failed calling webhook, failing closed %v: %v", hook.Name, err) errCh <- err + return } + + glog.Warningf("rejected by webhook %v %t: %v", hook.Name, err, err) + errCh <- err }(&hooks[i]) } wg.Wait() @@ -242,50 +262,41 @@ func (a *GenericAdmissionWebhook) callHook(ctx context.Context, h *v1alpha1.Exte if err != nil { return &ErrCallingWebhook{WebhookName: h.Name, Reason: err} } - if err := client.Post().Context(ctx).Body(&request).Do().Into(&request); err != nil { + response := &admissionv1alpha1.AdmissionReview{} + if err := client.Post().Context(ctx).Body(&request).Do().Into(response); err != nil { return &ErrCallingWebhook{WebhookName: h.Name, Reason: err} } - if request.Status.Allowed { + if response.Status.Allowed { return nil } - if request.Status.Result == nil { + if response.Status.Result == nil { return fmt.Errorf("admission webhook %q denied the request without explanation", h.Name) } return &apierrors.StatusError{ - ErrStatus: *request.Status.Result, + ErrStatus: *response.Status.Result, } } func (a *GenericAdmissionWebhook) hookClient(h *v1alpha1.ExternalAdmissionHook) (*rest.RESTClient, error) { + serverName := h.ClientConfig.Service.Name + "." + h.ClientConfig.Service.Namespace + ".svc" u, err := a.serviceResolver.ResolveEndpoint(h.ClientConfig.Service.Namespace, h.ClientConfig.Service.Name) if err != nil { return nil, err } - var dial func(network, addr string) (net.Conn, error) - if a.proxyTransport != nil && a.proxyTransport.Dial != nil { - dial = a.proxyTransport.Dial - } - // TODO: cache these instead of constructing one each time - cfg := &rest.Config{ - Host: u.Host, - APIPath: u.Path, - TLSClientConfig: rest.TLSClientConfig{ - ServerName: h.ClientConfig.Service.Name + "." + h.ClientConfig.Service.Namespace + ".svc", - CAData: h.ClientConfig.CABundle, - CertData: a.clientCert, - KeyData: a.clientKey, - }, - UserAgent: "kube-apiserver-admission", - Timeout: 30 * time.Second, - ContentConfig: rest.ContentConfig{ - NegotiatedSerializer: a.negotiatedSerializer, - }, - Dial: dial, + restConfig, err := a.authInfoResolver.ClientConfigFor(serverName) + if err != nil { + return nil, err } + cfg := rest.CopyConfig(restConfig) + cfg.Host = u.Host + cfg.APIPath = path.Join(u.Path, h.ClientConfig.URLPath) + cfg.TLSClientConfig.ServerName = serverName + cfg.TLSClientConfig.CAData = h.ClientConfig.CABundle + cfg.ContentConfig.NegotiatedSerializer = a.negotiatedSerializer return rest.UnversionedRESTClientFor(cfg) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/admission_test.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/admission_test.go similarity index 64% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/admission_test.go rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/admission_test.go index a5ccc2e39..391f16f94 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/admission_test.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/admission_test.go @@ -29,12 +29,12 @@ import ( "k8s.io/api/admission/v1alpha1" registrationv1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + api "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/kubernetes/pkg/api" - - _ "k8s.io/kubernetes/pkg/apis/admission/install" + "k8s.io/client-go/rest" ) type fakeHookSource struct { @@ -53,7 +53,6 @@ func (f *fakeHookSource) Run(stopCh <-chan struct{}) {} type fakeServiceResolver struct { base url.URL - path string } func (f fakeServiceResolver) ResolveEndpoint(namespace, name string) (*url.URL, error) { @@ -61,12 +60,15 @@ func (f fakeServiceResolver) ResolveEndpoint(namespace, name string) (*url.URL, return nil, fmt.Errorf("couldn't resolve service location") } u := f.base - u.Path = f.path return &u, nil } // TestAdmit tests that GenericAdmissionWebhook#Admit works as expected func TestAdmit(t *testing.T) { + scheme := runtime.NewScheme() + v1alpha1.AddToScheme(scheme) + api.AddToScheme(scheme) + // Create the test webhook server sCert, err := tls.X509KeyPair(serverCert, serverKey) if err != nil { @@ -86,15 +88,22 @@ func TestAdmit(t *testing.T) { if err != nil { t.Fatalf("this should never happen? %v", err) } - wh, err := NewGenericAdmissionWebhook() + wh, err := NewGenericAdmissionWebhook(nil) if err != nil { t.Fatal(err) } - wh.clientCert = clientCert - wh.clientKey = clientKey + wh.authInfoResolver = &fakeAuthenticationInfoResolver{ + restConfig: &rest.Config{ + TLSClientConfig: rest.TLSClientConfig{ + CAData: caCert, + CertData: clientCert, + KeyData: clientKey, + }, + }, + } // Set up a test object for the call - kind := api.Kind("Pod").WithVersion("v1") + kind := api.SchemeGroupVersion.WithKind("Pod") name := "my-pod" namespace := "webhook-test" object := api.Pod{ @@ -127,13 +136,17 @@ func TestAdmit(t *testing.T) { expectAllow bool errorContains string } - ccfg := registrationv1alpha1.AdmissionHookClientConfig{ - Service: registrationv1alpha1.ServiceReference{ - Name: "webhook-test", - Namespace: "default", - }, - CABundle: caCert, + ccfg := func(urlPath string) registrationv1alpha1.AdmissionHookClientConfig { + return registrationv1alpha1.AdmissionHookClientConfig{ + Service: registrationv1alpha1.ServiceReference{ + Name: "webhook-test", + Namespace: "default", + }, + URLPath: urlPath, + CABundle: caCert, + } } + matchEverythingRules := []registrationv1alpha1.RuleWithOperations{{ Operations: []registrationv1alpha1.OperationType{registrationv1alpha1.OperationAll}, Rule: registrationv1alpha1.Rule{ @@ -143,89 +156,131 @@ func TestAdmit(t *testing.T) { }, }} + policyFail := registrationv1alpha1.Fail + policyIgnore := registrationv1alpha1.Ignore + table := map[string]test{ "no match": { hookSource: fakeHookSource{ hooks: []registrationv1alpha1.ExternalAdmissionHook{{ Name: "nomatch", - ClientConfig: ccfg, + ClientConfig: ccfg("disallow"), Rules: []registrationv1alpha1.RuleWithOperations{{ Operations: []registrationv1alpha1.OperationType{registrationv1alpha1.Create}, }}, }}, }, - path: "disallow", expectAllow: true, }, "match & allow": { hookSource: fakeHookSource{ hooks: []registrationv1alpha1.ExternalAdmissionHook{{ Name: "allow", - ClientConfig: ccfg, + ClientConfig: ccfg("allow"), Rules: matchEverythingRules, }}, }, - path: "allow", expectAllow: true, }, "match & disallow": { hookSource: fakeHookSource{ hooks: []registrationv1alpha1.ExternalAdmissionHook{{ Name: "disallow", - ClientConfig: ccfg, + ClientConfig: ccfg("disallow"), Rules: matchEverythingRules, }}, }, - path: "disallow", errorContains: "without explanation", }, "match & disallow ii": { hookSource: fakeHookSource{ hooks: []registrationv1alpha1.ExternalAdmissionHook{{ Name: "disallowReason", - ClientConfig: ccfg, + ClientConfig: ccfg("disallowReason"), Rules: matchEverythingRules, }}, }, - path: "disallowReason", errorContains: "you shall not pass", }, "match & fail (but allow because fail open)": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.ExternalAdmissionHook{{ + Name: "internalErr A", + ClientConfig: ccfg("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyIgnore, + }, { + Name: "internalErr B", + ClientConfig: ccfg("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyIgnore, + }, { + Name: "internalErr C", + ClientConfig: ccfg("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyIgnore, + }}, + }, + expectAllow: true, + }, + "match & fail (but disallow because fail closed on nil)": { hookSource: fakeHookSource{ hooks: []registrationv1alpha1.ExternalAdmissionHook{{ Name: "internalErr A", - ClientConfig: ccfg, + ClientConfig: ccfg("internalErr"), Rules: matchEverythingRules, }, { Name: "internalErr B", - ClientConfig: ccfg, + ClientConfig: ccfg("internalErr"), Rules: matchEverythingRules, }, { Name: "internalErr C", - ClientConfig: ccfg, + ClientConfig: ccfg("internalErr"), Rules: matchEverythingRules, }}, }, - path: "internalErr", - expectAllow: true, + expectAllow: false, + }, + "match & fail (but fail because fail closed)": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.ExternalAdmissionHook{{ + Name: "internalErr A", + ClientConfig: ccfg("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyFail, + }, { + Name: "internalErr B", + ClientConfig: ccfg("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyFail, + }, { + Name: "internalErr C", + ClientConfig: ccfg("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyFail, + }}, + }, + expectAllow: false, }, } for name, tt := range table { - wh.hookSource = &tt.hookSource - wh.serviceResolver = fakeServiceResolver{base: *serverURL, path: tt.path} - wh.SetScheme(api.Scheme) + t.Run(name, func(t *testing.T) { + wh.hookSource = &tt.hookSource + wh.serviceResolver = fakeServiceResolver{base: *serverURL} + wh.SetScheme(scheme) - err = wh.Admit(admission.NewAttributesRecord(&object, &oldObject, kind, namespace, name, resource, subResource, operation, &userInfo)) - if tt.expectAllow != (err == nil) { - t.Errorf("%q: expected allowed=%v, but got err=%v", name, tt.expectAllow, err) - } - // ErrWebhookRejected is not an error for our purposes - if tt.errorContains != "" { - if err == nil || !strings.Contains(err.Error(), tt.errorContains) { - t.Errorf("%q: expected an error saying %q, but got %v", name, tt.errorContains, err) + err = wh.Admit(admission.NewAttributesRecord(&object, &oldObject, kind, namespace, name, resource, subResource, operation, &userInfo)) + if tt.expectAllow != (err == nil) { + t.Errorf("expected allowed=%v, but got err=%v", tt.expectAllow, err) } - } + // ErrWebhookRejected is not an error for our purposes + if tt.errorContains != "" { + if err == nil || !strings.Contains(err.Error(), tt.errorContains) { + t.Errorf(" expected an error saying %q, but got %v", tt.errorContains, err) + } + } + }) } } @@ -270,3 +325,11 @@ func webhookHandler(w http.ResponseWriter, r *http.Request) { http.NotFound(w, r) } } + +type fakeAuthenticationInfoResolver struct { + restConfig *rest.Config +} + +func (c *fakeAuthenticationInfoResolver) ClientConfigFor(server string) (*rest.Config, error) { + return c.restConfig, nil +} diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/admissionreview.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/admissionreview.go similarity index 100% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/admissionreview.go rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/admissionreview.go diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/authentication.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/authentication.go new file mode 100644 index 000000000..02b63d058 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/authentication.go @@ -0,0 +1,149 @@ +/* +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 webhook + +import ( + "io/ioutil" + "strings" + "time" + + "fmt" + + "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" +) + +type AuthenticationInfoResolverWrapper func(AuthenticationInfoResolver) AuthenticationInfoResolver + +type AuthenticationInfoResolver interface { + ClientConfigFor(server string) (*rest.Config, error) +} + +type AuthenticationInfoResolverFunc func(server string) (*rest.Config, error) + +func (a AuthenticationInfoResolverFunc) ClientConfigFor(server string) (*rest.Config, error) { + return a(server) +} + +type defaultAuthenticationInfoResolver struct { + kubeconfig clientcmdapi.Config +} + +func newDefaultAuthenticationInfoResolver(kubeconfigFile string) (AuthenticationInfoResolver, error) { + if len(kubeconfigFile) == 0 { + return &defaultAuthenticationInfoResolver{}, nil + } + + loadingRules := clientcmd.NewDefaultClientConfigLoadingRules() + loadingRules.ExplicitPath = kubeconfigFile + loader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, &clientcmd.ConfigOverrides{}) + clientConfig, err := loader.RawConfig() + if err != nil { + return nil, err + } + + return &defaultAuthenticationInfoResolver{kubeconfig: clientConfig}, nil +} + +func (c *defaultAuthenticationInfoResolver) ClientConfigFor(server string) (*rest.Config, error) { + // exact match + if authConfig, ok := c.kubeconfig.AuthInfos[server]; ok { + return restConfigFromKubeconfig(authConfig) + } + + // star prefixed match + serverSteps := strings.Split(server, ".") + for i := 1; i < len(serverSteps); i++ { + nickName := "*." + strings.Join(serverSteps[i:], ".") + if authConfig, ok := c.kubeconfig.AuthInfos[nickName]; ok { + return restConfigFromKubeconfig(authConfig) + } + } + + // if we're trying to hit the kube-apiserver and there wasn't an explicit config, use the in-cluster config + if server == "kubernetes.default.svc" { + // if we can find an in-cluster-config use that. If we can't, fall through. + inClusterConfig, err := rest.InClusterConfig() + if err == nil { + return setGlobalDefaults(inClusterConfig), nil + } + } + + // star (default) match + if authConfig, ok := c.kubeconfig.AuthInfos["*"]; ok { + return restConfigFromKubeconfig(authConfig) + } + + // use the current context from the kubeconfig if possible + if len(c.kubeconfig.CurrentContext) > 0 { + if currContext, ok := c.kubeconfig.Contexts[c.kubeconfig.CurrentContext]; ok { + if len(currContext.AuthInfo) > 0 { + if currAuth, ok := c.kubeconfig.AuthInfos[currContext.AuthInfo]; ok { + return restConfigFromKubeconfig(currAuth) + } + } + } + } + + // anonymous + return setGlobalDefaults(&rest.Config{}), nil +} + +func restConfigFromKubeconfig(configAuthInfo *clientcmdapi.AuthInfo) (*rest.Config, error) { + config := &rest.Config{} + + // blindly overwrite existing values based on precedence + if len(configAuthInfo.Token) > 0 { + config.BearerToken = configAuthInfo.Token + } else if len(configAuthInfo.TokenFile) > 0 { + tokenBytes, err := ioutil.ReadFile(configAuthInfo.TokenFile) + if err != nil { + return nil, err + } + config.BearerToken = string(tokenBytes) + } + if len(configAuthInfo.Impersonate) > 0 { + config.Impersonate = rest.ImpersonationConfig{ + UserName: configAuthInfo.Impersonate, + Groups: configAuthInfo.ImpersonateGroups, + Extra: configAuthInfo.ImpersonateUserExtra, + } + } + if len(configAuthInfo.ClientCertificate) > 0 || len(configAuthInfo.ClientCertificateData) > 0 { + config.CertFile = configAuthInfo.ClientCertificate + config.CertData = configAuthInfo.ClientCertificateData + config.KeyFile = configAuthInfo.ClientKey + config.KeyData = configAuthInfo.ClientKeyData + } + if len(configAuthInfo.Username) > 0 || len(configAuthInfo.Password) > 0 { + config.Username = configAuthInfo.Username + config.Password = configAuthInfo.Password + } + if configAuthInfo.AuthProvider != nil { + return nil, fmt.Errorf("auth provider not supported") + } + + return setGlobalDefaults(config), nil +} + +func setGlobalDefaults(config *rest.Config) *rest.Config { + config.UserAgent = "kube-apiserver-admission" + config.Timeout = 30 * time.Second + + return config +} diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/authentication_test.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/authentication_test.go new file mode 100644 index 000000000..d91a428c0 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/authentication_test.go @@ -0,0 +1,130 @@ +/* +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 webhook + +import ( + "testing" + + "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/client-go/rest" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" +) + +func TestAuthenticationDetection(t *testing.T) { + tests := []struct { + name string + kubeconfig clientcmdapi.Config + serverName string + expected rest.Config + }{ + { + name: "empty", + serverName: "foo.com", + }, + { + name: "fallback to current context", + serverName: "foo.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "bar.com": {Token: "bar"}, + }, + Contexts: map[string]*clientcmdapi.Context{ + "ctx": { + AuthInfo: "bar.com", + }, + }, + CurrentContext: "ctx", + }, + expected: rest.Config{BearerToken: "bar"}, + }, + { + name: "exact match", + serverName: "foo.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "foo.com": {Token: "foo"}, + "*.com": {Token: "foo-star"}, + "bar.com": {Token: "bar"}, + }, + }, + expected: rest.Config{BearerToken: "foo"}, + }, + { + name: "partial star match", + serverName: "foo.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "*.com": {Token: "foo-star"}, + "bar.com": {Token: "bar"}, + }, + }, + expected: rest.Config{BearerToken: "foo-star"}, + }, + { + name: "full star match", + serverName: "foo.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "*": {Token: "star"}, + "bar.com": {Token: "bar"}, + }, + }, + expected: rest.Config{BearerToken: "star"}, + }, + { + name: "skip bad in cluster config", + serverName: "kubernetes.default.svc", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "*": {Token: "star"}, + "bar.com": {Token: "bar"}, + }, + }, + expected: rest.Config{BearerToken: "star"}, + }, + { + name: "most selective", + serverName: "one.two.three.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "*.two.three.com": {Token: "first"}, + "*.three.com": {Token: "second"}, + "*.com": {Token: "third"}, + }, + }, + expected: rest.Config{BearerToken: "first"}, + }, + } + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + resolver := defaultAuthenticationInfoResolver{kubeconfig: tc.kubeconfig} + actual, err := resolver.ClientConfigFor(tc.serverName) + if err != nil { + t.Fatal(err) + } + actual.UserAgent = "" + actual.Timeout = 0 + + if !equality.Semantic.DeepEqual(*actual, tc.expected) { + t.Errorf("%v", diff.ObjectReflectDiff(tc.expected, *actual)) + } + }) + } + +} diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/certs_test.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/certs_test.go new file mode 100644 index 000000000..9026bd056 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/certs_test.go @@ -0,0 +1,216 @@ +/* +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 generated using openssl by the gencerts.sh script +// and holds raw certificates for the webhook tests. + +package webhook + +var caKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAt8E1XykA4860Tj7mypnsSU+hW0taUEvz26a5rgFSrwgKe1g+ +zOXc0XoAdnWivWKwWXTW+P1mmjMApEf8ndfPy+juKIrPKP6ccF31iPvOGfNRm/g/ +ulZAJnAjBn0zkZ9ARhpdDxKwDpwIKSrTna5GB/gX0VbHQ/M23u0RjVUZuNM9cayW +HReRx7xlOQD+uREQ/wh1zkgQime+rji5U3jxB9YD3zfTeGBJdrq9ptTdkPEIQUKf +DM8SnM8fleEPkBq3XrhfmAEfkHBGpn4Hc82tk/oEZ+LMyMaR/GmzdJXU2/d4zixC +Dgqdg1nB76uXJ4aITX2BuR+ttmAI0b6Si4UvHwIDAQABAoIBAA/Msg0blnL/++ra +Z7e14mYvTZ1u7jYHQdF6FW8LuBNKqrQOU2AEx6bPSajl1ndYO/eFH1LLXv4VMpHt +ip/7xWcwAQJFZSiOM99JhOohVIhQroytnLUl42AqtihBraRwv/MHI0c/gRnQercn +coiVSno2771VK88A44/pbF/tmEeW5Nq7bwHrtjdt3MDKjv2LQaPToDzBivSwz/F8 +3dMBpCUKT3tKC6QiDAFi4WaVOqXZrDfm/HJ1L8LWYjrcGTwwzMGpDfQEMxhq+2AR +Ya89jKF1I2+3kgXrZER7eHktUEQ0bGckSmAN9yo01rdm7E5gmmPuTK13riSFWrJn +/Dg21PECgYEA3vM0OLGevaUP4geBv1nPLpANC551Wf8wu2QG+Ts1/LFQHtFTOTst +JjFy/XT90ki1wni8P/pcIbMEXDJJezR4giWfiwMzr/E4arkJc5rJwV3kcmGrVihS +9BIJVlWq8kPmklTctfoqjDMa7tkYZoYStg+1Xljvw/HJFqZ6VoWyxFcCgYEA0v6S +Fx960kQyqPYyQMaZpce9rAsgGBJ4uMU6dXVfYxDy0CEKZ1lV1xwUg9eWNFj7E46A +RJDl9fR2KztTbgBobEOCVlO9QftY8RiIzibq8R4P5XyEV+TCkPk+eYffDZfOueGK +uCzBcAcl12SkAy/KMeS0+/+KYfetGyh23GH/bnkCgYEAnqMefVilQvu4GXSN9cHJ +kbAeGC5gAfF6k1vROnXPLEZeZA890HMy5QI6d+5OzNm/uuh9ymgyNihS6ec+MdRc +Cv8KTrewh3h0VDvlZcS12kkcy+aDK4L1w4Ux76R1RnzaCzUm9rVSoP+cImeG3Sx5 +E+KJguB1ek8Ibn12fyoS0XECgYEAvKyAHsU7o0Lwuj5NebceNiyC45GfRWdfJHrZ +Z6dpgMDrIEorb3dnV0/42Fy0KGNZQYewE6Auwt2zvbzzQe6Dcix8JI4FMzd7tTxn +OVF7zdlABcpu3dnmUpVO1IY3Y4RYi8evsDn1UCRUJmQMdf0KJcuKO72rFSfRV/O7 +Nh87tqECgYAN21eEb68fg7z7WqnUhL24SilIFNx7qmyhFZ5ZbIuNBrCOW4lxj7z4 +1A4WyB3Wj2CeTeFrFamq+bgI5gl4DNzcml8bFxij3WDbwzq6C2FTJ1U+Ax/Z9Y60 +qdc1fMRy+0Wkglk26VZ+xA4gW0eetIDXf/IocFYZ56ti36lWfXMKFA== +-----END RSA PRIVATE KEY-----`) + +var caCert = []byte(`-----BEGIN CERTIFICATE----- +MIIDPTCCAiWgAwIBAgIJALl4JUWeGrsQMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV +BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX +DTE3MTAxNzAxMDcyM1oYDzIyOTEwODAyMDEwNzIzWjA0MTIwMAYDVQQDDClnZW5l +cmljX3dlYmhvb2tfYWRtaXNzaW9uX3BsdWdpbl90ZXN0c19jYTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALfBNV8pAOPOtE4+5sqZ7ElPoVtLWlBL89um +ua4BUq8ICntYPszl3NF6AHZ1or1isFl01vj9ZpozAKRH/J3Xz8vo7iiKzyj+nHBd +9Yj7zhnzUZv4P7pWQCZwIwZ9M5GfQEYaXQ8SsA6cCCkq052uRgf4F9FWx0PzNt7t +EY1VGbjTPXGslh0Xkce8ZTkA/rkREP8Idc5IEIpnvq44uVN48QfWA98303hgSXa6 +vabU3ZDxCEFCnwzPEpzPH5XhD5Aat164X5gBH5BwRqZ+B3PNrZP6BGfizMjGkfxp +s3SV1Nv3eM4sQg4KnYNZwe+rlyeGiE19gbkfrbZgCNG+kouFLx8CAwEAAaNQME4w +HQYDVR0OBBYEFJ+UXeXeN9DfxuCA65LuhRaXI5bnMB8GA1UdIwQYMBaAFJ+UXeXe +N9DfxuCA65LuhRaXI5bnMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AJlfuK7LcFxXCjB6rnRYvjIFF3JewaPGx273YDpV2DkvCJXvez+mDC6ZfD1U7nEw +P+0A+NJctU2Vv+bbhh1vXlmBUoA9zKyIPld0pXDt8PxK8L9QRdLdzN96MtUjE0Cr +jBDxy3eIke+ElQQyU3MSx1uohZao40WOTDvR1fBswrFGhFNtELgwT3zIJ7tMO4ws +1f6LRVB4xsD6cPNUmFyJW6UqecJ3ZSeErF0r8uN4Ta0zUoJ03CflwsgujoVNpIPR +/VVElRE6Cd2C1i3qLBMOZ+aQrxGw4teNXilXbKtwJzpDYU+bypPgim+vxAwD9XnQ +J/rCqIaSYOI/3WkZmQ+E6aE= +-----END CERTIFICATE-----`) + +var badCAKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEpgIBAAKCAQEAsLjPsYMRv5T3+OoPbE+mKqUkBrn6ZQZU28UulLaS8UsaX/Dx +o/N2P6YGSlBeEnO0IV7fHqfdlgTRqqhlhX9L+suj963skZUmwoHB54lsHBYnXEBr +UlkVn5Wv+BEp5FX9iC9EV+wyWxuddGqElNUSMvuC71lRAE1edKbFZYIgqpGson6u +kcn5cpBoyFjFyxKhuKh5WTCQGYFZBtIhcggyduUw5+JzbPUlrlOcCiW8aQwL0f+s +9vA+4lDcngyOXDgAOip/Cr3lYiajhv41TyMNR9aSCH3gwI06QabQpXeHmYKjdMDO +epo9czAOJ2ZI+o2sKRZGUvyfACg6VJpU2jiWdwIDAQABAoIBAQCClDxbFNcDcaZ8 +1S4KQRwt/JIPKlJ7XV9MeHl/xxvykSTu6VETbOzeAOY6+QFZrwbVdY110GGp3Ouz +pvRE3ReeO+RvOaNIuyXFqS1G0UMBydjRkIP8d/jDT06UBNKodmV8wDhGoy9eJJyG +jcJjWsE0zKUmCCATEhgOJ8BJzgonHXwSkgjhBophYpDNGi4W1Ke8a80V0S26UOsV +b72mBqPYDAcGNR9dFpJGYRRdZ77SjcAAOFOqnU6KXUFHvitNYSkUG22wHa4+yuO6 +fTDUitdXhxCcFCWEFyX6Chm3lmf1NgSI4bni46K6/BC9mlNjZ+7QrTJTTp1/WyHj +fV2TnwRhAoGBAN2kTatss76FZwKFamPSvX45ulo0/U9LB1Eb9A7/M+enfAJGPPuk +LRdy3JjDiEKxgsBlA7zy0Gc9wUjBGmPBOiJmCTfmMykoqV1qVH5YQcuVUaKE589a +iUAUn6PNcNsnu2Z8BIDU3Fvyq2KJammSz/zqNtkH7I6SDur6Sb9SRJORAoGBAMwd +5OkOOGvZKxnJz8s5hwDicN2Fk5zxWpA74mgUt44sOiG3F8/7y/ntT/O3DGKz/yDb +2Ju6Yf3ojqYnirAPlWLxIm0Y3K9gNQffJ5cpe/kCzbhCLAnLk6YXu8ZVoMMq/0LF +f0bh+UAktqlFi5Tl+0LGAGd9wWxAe7/DHmolBfWHAoGBAJxLy/Wx3wLgQebWPFMO +flAv10jbizHKX+uDgdS9hFW8lsdnzoNJn/6kIgmcAU++q8yOr1ckB3B2bQGoIrrr +vNobCC8iJzvED8LvQ4whIqy0rG+lt25SkuzcXkL9kbMJzq4TkH1lHcu9UbxX2PF/ +9SmN5IWhf+B+AQUU4MKI+hDxAoGBAIRXrZ/d9H8Yo3VpAC2H8xyDtSIsBXVwl4OF +EFrjc8/epSJPEEVtwOcfEwO133Xvtq+bW2o9AmQacMMSSD23HOi159hMkmmzOy8L +ZSQBZbwiMTgSz3LaZ7T9FmaWBlIEgtTMMKXIxk7sfvJpgQLdyneU4ZY4VzzU4meH +HyU7NA3pAoGBAM53r4pKMsdH9c4w/aRiRZeRge+MdPqdBo4Kje50uXVUaplJr1fJ +9Bm2P1oSfr+Zh6pNyDQE2OhptOxskd/+XDC4i6+MZ1iR1JHFq4oTF5OUYc3Je23G +FjD/vUn+ha2d750IPhsDztb8XyGfQdn7oo0ikhg1Ayjix6LE0GAd+Ve2 +-----END RSA PRIVATE KEY-----`) + +var badCACert = []byte(`-----BEGIN CERTIFICATE----- +MIIDPTCCAiWgAwIBAgIJANumDUaVJHIhMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV +BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX +DTE3MTAxNzAxMDcyNFoYDzIyOTEwODAyMDEwNzI0WjA0MTIwMAYDVQQDDClnZW5l +cmljX3dlYmhvb2tfYWRtaXNzaW9uX3BsdWdpbl90ZXN0c19jYTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALC4z7GDEb+U9/jqD2xPpiqlJAa5+mUGVNvF +LpS2kvFLGl/w8aPzdj+mBkpQXhJztCFe3x6n3ZYE0aqoZYV/S/rLo/et7JGVJsKB +weeJbBwWJ1xAa1JZFZ+Vr/gRKeRV/YgvRFfsMlsbnXRqhJTVEjL7gu9ZUQBNXnSm +xWWCIKqRrKJ+rpHJ+XKQaMhYxcsSobioeVkwkBmBWQbSIXIIMnblMOfic2z1Ja5T +nAolvGkMC9H/rPbwPuJQ3J4Mjlw4ADoqfwq95WImo4b+NU8jDUfWkgh94MCNOkGm +0KV3h5mCo3TAznqaPXMwDidmSPqNrCkWRlL8nwAoOlSaVNo4lncCAwEAAaNQME4w +HQYDVR0OBBYEFAYhiaN5L1bHf3VQO9bAwLTCFOyZMB8GA1UdIwQYMBaAFAYhiaN5 +L1bHf3VQO9bAwLTCFOyZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AAb6qDKiWDuYbFI3f/AGkHaiWnVrdU/2oQ1P03N/CD0DEGzRTmEQrl5l0pHDUJ5g +XTszW/5Bgjgzx8HLG3VeMQlZpCeGrUBsWWIlGFsdfAKQ8xkB1JYNCtb920WBCOpZ +FewLzQwbRyeYju+VP7lq+IF3htOTbeXRax61c0qu2o402NbKCNMlwAWMWl92dji5 +zJG0U0g+U+GC1QVyRlpf6hsXONgNOWTuZJgZDmN0exZOH7rF9syr3lfDwX0I/no7 +zIJHt7Tx9oanqZbj/Oe8FC4jYNJiZryQ4MaWBk7Op+aR5bUgk5SwA9pLuKLm3Zyl +KkC1zS2x3RD1WxxiJjXcJ3M= +-----END CERTIFICATE-----`) + +var serverKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA4Slves29h8gstITXD8cuHT0sZzP9x7Ip5pcSrQgjIpk9V7zB +ulRsFfTaPVMAzq5nlX5qbM6OezidzdC0oVQi7DCRd+TqQi2zNDJNeWAjDMkRa6ir +vq9XNuQJlMxi/YdFzjWl8LPMyq+WoW+0gtM86jPOEk69iw0nFqmUTt/4WXLOIDH9 +ffIiZ6h+x6IJGFqcn4heNE9SK++bMmjijmhIF3i0dKquApVm0+E/NYDDHLzeQ42r +BhgPWmuLqGBvVavTHweXRJ9qdZ5LVzMJj1KNNLA4T/vsk17jADJGPikrvZWZ0MJE +SPKpDAJ9uxDpIGNg8EBdUoStfrQMMsDEnNE1/QIDAQABAoIBAQC/ROumbk+qoKkZ +UB9BD/pkbCrkII5crURa1crPojH2miY5+ea32i9XF4Csx23QJOdpXtIZS/5NPnMO ++1P2F/rymO954cP+I8QveuvFR51+pu9dfRMoENsNjfl1pYoRxG/QFFK6foJhS3ex ++6pj1/3PFeLgOnNZQ/sIjVWnCyt1DzFUaELE1jsDWtsQ9j2ed1ceqjrEVG0BbB8O +LeXUp0lDWgRmF9LexFVd361ew6DM4Zr3l9W3Dubd/6gIPNSRCB7T1usErFKPi8Dq +ML2lnO98+gKZHp6DKUISWEwt0By3QRLV09fBTes8fr+gylZfhwX2Q2EjiZ/v0Nlb +YGLAZwMhAoGBAPigApUlA8L0AGgVoSuBRthdFVzqLKTIKYimiZirRnXljTs3HvS4 +Z/RCkXRVP6aQ8tORVUyct0drBUgddu+YPS/hfk8ipYraGonAKWfxL2+sFcxHg9iy +O6OxR7jOlI7bG8Ue78lJjqfzpXyi2/ikL2udHLzMeCh3czzix4wKXl2LAoGBAOfX +QKCudMGOHb2LCkC1jP2VLUAg09Y7q7sX5avNXhZsLNhVgu1i8FNTTXXCHwyBLvxY +AX7AnYaUP5K1YOyHVXnfqp2uuctR8tm7TUh9mw3RGnE+D9yw39RjlF4ZjZMtBC0+ +5/A2upRqY5H2pepxi/bPCAC58UgHbvjTS3LD6zuXAoGAQUj7BKDgmPurc6liVeMv +cDcZGfnf2TE6PsjETtOCwAiUCl2SAl695VTpjuunuBxNtyJtjJ2GPvmqPGKITafj +QURr/2mwoIJe/5b3CHU7qI4+dxK8W1WJ9ZTiqXONbOm6JAvYmTl4fT+sT8sQCf1K ++m4aErV6Q94B45YFIg/C8bsCgYEAx2pkAZHthasrM6UL3ZsLufb9pCJYc/aBgX1N +pRgRrPHBJRdwdaXbl6CYiQi/Ui8v7gf4yUD+fgq4IAX5Z5oE0L6tb9Ihp5xGajfs +gsTfgOPyfaNnW2mcLYC11rbeCtD2vcBVGk7I7+4O1Tc1gVHHlTSA6rcFrfIO5uJA +DGguxuMCgYB9y4JY44YLVpxbHOmQcp5XzN2uDESkBDmzXhn6Kx4wyyMI1/J2a44p +68AL0TaVWK1vvzV8X4f+92ufvUCXuuItIVDvkSdKMl6kL54djCA25tGuxNHxMk7e +/l4fshoaRwF3ybwHbREMOy8pQHrsek7m21sC/q/DIDN/IPdqo7aaVw== +-----END RSA PRIVATE KEY-----`) + +var serverCert = []byte(`-----BEGIN CERTIFICATE----- +MIIDQDCCAiigAwIBAgIJAM2Hyhl1N+5sMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV +BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX +DTE3MTAxNzAxMDcyNFoYDzIyOTEwODAyMDEwNzI0WjAjMSEwHwYDVQQDDBh3ZWJo +b29rLXRlc3QuZGVmYXVsdC5zdmMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQDhKW96zb2HyCy0hNcPxy4dPSxnM/3HsinmlxKtCCMimT1XvMG6VGwV9No9 +UwDOrmeVfmpszo57OJ3N0LShVCLsMJF35OpCLbM0Mk15YCMMyRFrqKu+r1c25AmU +zGL9h0XONaXws8zKr5ahb7SC0zzqM84STr2LDScWqZRO3/hZcs4gMf198iJnqH7H +ogkYWpyfiF40T1Ir75syaOKOaEgXeLR0qq4ClWbT4T81gMMcvN5DjasGGA9aa4uo +YG9Vq9MfB5dEn2p1nktXMwmPUo00sDhP++yTXuMAMkY+KSu9lZnQwkRI8qkMAn27 +EOkgY2DwQF1ShK1+tAwywMSc0TX9AgMBAAGjZDBiMAkGA1UdEwQCMAAwCwYDVR0P +BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATApBgNVHREEIjAg +hwR/AAABghh3ZWJob29rLXRlc3QuZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQELBQAD +ggEBAFwJ5UtHJsSx7mrJ7X51XDVg8ocNdWYLuehWfpM2Tlrv9kklONF7VehS+9kg +MjSiuXtIhtEEN7GIy08sl6rhANtwXxWhj5b+qPNSNiHGNRvmHkCJuO2PGG7TpSpH +CfOgX+HH9CnX/piC7Uqr+vmS+SmhSjIyw1bUtP9cDmFvNQB9/0qvcXZP/oX90jsa +qF6fQvKP/OtRcW/kyWmhzqeIMufru82Hbrf/WJuQXCvpgtY43cOlHVEr8X2PbF9F +t4eliujfewSu1cyXNcT5KcriCvZyXU/d8UHm+z9rnMJdC4bfvwOLeG7VmEG1Vp/X +sRiMsjRcun8Jvbl7BbH86nu1xus= +-----END CERTIFICATE-----`) + +var clientKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA05j8mb6tyOYOxfdmra9nlBu+VefZ46d+Q018EEi8LLpXFovP ++4D6mdZiG2K1Or9Kx7wpiG4gyrqn8aENTEbREtw7+GWpsrtWcOnmtCoMrcqV97S+ +TurL5DY1Rh9XOBxa/QninOnP4O1dASYmi0uZBZW/Neidwt70/sb3VGxj8Ex8rzD/ +LWsiVj+ijkK2A18+S2m01HNuNramJiJ8Ns5VxHj5TspRIBik1NEfEDFEi42ddZ0n +9q4u3eZmFC1QqMLB/371+oFrieC+gmbg2FCMUw4LIiUMWURhUP8kXNEFCDWvTLbM +40wU6lejJw+JF0SBs3AIcI4GJeSfxEuT2AFCBwIDAQABAoIBAC3Rb8ke1+SrpEFL +vAkZ9TTF+SYC6VR5XUbXjWi9RznsM5VnOub728fZ+y5w5ktNRrUPUnL/XcxoNJuG +wylkIDuUQswbv247UJFspI8Yl9w+BNE5awgNoY7OCiUf/jPhN/aY4GAX5PKQk1X/ +W9NH0F+8OEZFE3wx6R0OGlpGijFrCbEoqfMcReOVkXt9jjHAxHxI6erMlQvQ6Jop +KZ+OndRt8ilNtcjZLxAK8d3odgXN7OGezi74/VnG8b6NVmXsZMRkgS5xcP/42h2e +GDGGm4Gia8x0lcosgr+LdZ4FMEITj2p84PGNoeoh7PtTMUQs2qnfPPbpQpab6w9/ +7j7jRXECgYEA7/R8ByzNFUfcBOW0F8mmQ4bAmJcjuVEBay/XFf8gxWrefxsIEBu/ +n3GPI10bxGdEpSQGln1P9VCyZPauHPQC6DNB2OQjbmAujuigj2uM3GbXmYt20z2s +iUHhZQstznEO+BLqOMhk2SICnwsecPn0jP2MvWS7tY+szwvdLROHZj8CgYEA4b8V +iGU8/3mXGYRsT/tuuWjnalstCYzKosK92K8PS6LnAjv8t/8CMrL5gHAGXdf6fEAh +qDndlB1VkQ/ymiqR35el/ErVRt1/2pbwTLSQzAGJawY/osnClMnShO8gdQnsJnmi +zx909lWVxrKkN38szLQfK2bq4C8z6Bw5+6IxAjkCgYBnEUas9kto1qLk352Jki3+ +V0UmxdSsZuULG1NxuVJkOdE0G3JNKP4YCHkJIZcpt4m+vUivH0hXAMB/qY2EFjOh +dVLVTLkDUgDtlXJR6Epq6Sm2ZDc36QfRNSERe8nDIMDjQYylsz3OHlOt6OK8eEDY +xpfLShdulzYNAPWRxQ+llQKBgQCmWEvhqdf82PgCkZXOihPZA/giYvUY6GoY7S8/ +kB/ROETJXLKoUnyoJ0G65tGKLTAiho9Giv0/uy3mKr4149CB1hk1g18NTQJ9bGO9 +4gAgk7FS79PMfKepQ96gniRomdstrsvNm/xv2Dj5pYFkc43reX7OWJQShjXVf5cq +WSWL4QKBgGVoe8yldF7dijRgB0NYJ7LV+xTQxLpSzK+3b5LyrvSTMwGut0O6QsbK +S060B37PdwBxMD05yTy8Jcr0abl9+tiLGAdok5Ufnm2e7sNsxf8fLhsyPuReutB8 +zg1721jMeo9rwnduEi4/U1PIjqYUBIH/jjc9RHSvhk+MVUKXS95R +-----END RSA PRIVATE KEY-----`) + +var clientCert = []byte(`-----BEGIN CERTIFICATE----- +MIIDVTCCAj2gAwIBAgIJAM2Hyhl1N+5tMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV +BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX +DTE3MTAxNzAxMDcyNFoYDzIyOTEwODAyMDEwNzI0WjA4MTYwNAYDVQQDDC1nZW5l +cmljX3dlYmhvb2tfYWRtaXNzaW9uX3BsdWdpbl90ZXN0c19jbGllbnQwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTmPyZvq3I5g7F92atr2eUG75V59nj +p35DTXwQSLwsulcWi8/7gPqZ1mIbYrU6v0rHvCmIbiDKuqfxoQ1MRtES3Dv4Zamy +u1Zw6ea0KgytypX3tL5O6svkNjVGH1c4HFr9CeKc6c/g7V0BJiaLS5kFlb816J3C +3vT+xvdUbGPwTHyvMP8tayJWP6KOQrYDXz5LabTUc242tqYmInw2zlXEePlOylEg +GKTU0R8QMUSLjZ11nSf2ri7d5mYULVCowsH/fvX6gWuJ4L6CZuDYUIxTDgsiJQxZ +RGFQ/yRc0QUINa9MtszjTBTqV6MnD4kXRIGzcAhwjgYl5J/ES5PYAUIHAgMBAAGj +ZDBiMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMC +BggrBgEFBQcDATApBgNVHREEIjAghwR/AAABghh3ZWJob29rLXRlc3QuZGVmYXVs +dC5zdmMwDQYJKoZIhvcNAQELBQADggEBAAgu8K/+UA6V7+AiOPP0Hs3jGTsVjnPB +3XRCSWof5LL93iSRu1rI5LYmjS4N80lV0JkaJNvsoAKxETS3MW4rgv6t3kFOyLMw +mTfIli3iSBMz4WF55px1yhgF85wghEv2+YRF9aSUqAyz4DmlTGlFCEUx+ntkysUD +F97k/jB56EJVqMpSoY5O81vxr21Jpzlryd/UoMVwhYuO3tN0FP+PjoRiQhCGdQTz +2H+TQytZ6Xx6B8BE/joh3WBnQ4705jFhFaDSP8DSH45r48dzbxNLJVNeqLQQ0PhI +clrHwa1WiAnv+4Ydc5CiXGjLjU0sIvETjVtQGPv/gAykeVJo/4nXM8c= +-----END CERTIFICATE-----`) diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/config.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/config.go new file mode 100644 index 000000000..7285d4e9f --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/config.go @@ -0,0 +1,22 @@ +/* +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 webhook + +// AdmissionConfig holds config data that is unique to each API server. +type AdmissionConfig struct { + KubeConfigFile string `json:"kubeConfigFile"` +} diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/doc.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/doc.go rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/doc.go diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/gencerts.sh b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/gencerts.sh similarity index 98% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/gencerts.sh rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/gencerts.sh index 3ee1a094f..7c0c52227 100755 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/gencerts.sh +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/gencerts.sh @@ -35,6 +35,7 @@ extendedKeyUsage = clientAuth, serverAuth subjectAltName = @alt_names [alt_names] IP.1 = 127.0.0.1 +DNS.1 = webhook-test.default.svc EOF cat > client.conf << EOF @@ -49,6 +50,7 @@ extendedKeyUsage = clientAuth, serverAuth subjectAltName = @alt_names [alt_names] IP.1 = 127.0.0.1 +DNS.1 = webhook-test.default.svc EOF # Create a certificate authority diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/rules.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/rules.go similarity index 100% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/rules.go rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/rules.go diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/rules_test.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/rules_test.go similarity index 100% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/rules_test.go rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/rules_test.go diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/serviceresolver.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/serviceresolver.go similarity index 79% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/serviceresolver.go rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/serviceresolver.go index 018402934..274e6881b 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/serviceresolver.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/serviceresolver.go @@ -21,22 +21,17 @@ import ( "errors" "fmt" "net/url" - - admissioninit "k8s.io/kubernetes/pkg/kubeapiserver/admission" ) type defaultServiceResolver struct{} -var _ admissioninit.ServiceResolver = defaultServiceResolver{} - // ResolveEndpoint constructs a service URL from a given namespace and name // note that the name and namespace are required and by default all created addresses use HTTPS scheme. // for example: -// name=ross namespace=andromeda resolves to https://ross.andromeda.svc +// name=ross namespace=andromeda resolves to https://ross.andromeda.svc:443 func (sr defaultServiceResolver) ResolveEndpoint(namespace, name string) (*url.URL, error) { if len(name) == 0 || len(namespace) == 0 { - return &url.URL{}, errors.New("cannot resolve an empty service name or namespace") + return nil, errors.New("cannot resolve an empty service name or namespace") } - - return url.Parse(fmt.Sprintf("https://%s.%s.svc", name, namespace)) + return &url.URL{Scheme: "https", Host: fmt.Sprintf("%s.%s.svc:443", name, namespace)}, nil } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/serviceresolver_test.go b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/serviceresolver_test.go similarity index 88% rename from vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/serviceresolver_test.go rename to vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/serviceresolver_test.go index 3fb2f7a53..bf50af520 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/serviceresolver_test.go +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook/serviceresolver_test.go @@ -30,7 +30,7 @@ func TestDefaultServiceResolver(t *testing.T) { expectError bool }{ // scenario 1: a service name along with a namespace resolves - {serviceName: "ross", serviceNamespace: "andromeda", expectedOutput: "https://ross.andromeda.svc"}, + {serviceName: "ross", serviceNamespace: "andromeda", expectedOutput: "https://ross.andromeda.svc:443"}, // scenario 2: a service name without a namespace does not resolve {serviceName: "ross", expectError: true}, // scenario 3: cannot resolve an empty service name @@ -49,8 +49,10 @@ func TestDefaultServiceResolver(t *testing.T) { if err == nil && scenario.expectError { t.Error("expected an error but got nothing") } - if serviceURL.String() != scenario.expectedOutput { - t.Errorf("expected = %s, got = %s", scenario.expectedOutput, serviceURL.String()) + if !scenario.expectError { + if serviceURL.String() != scenario.expectedOutput { + t.Errorf("expected = %s, got = %s", scenario.expectedOutput, serviceURL.String()) + } } }) } diff --git a/vendor/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD b/vendor/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD index 3075c3bbe..2640ff64b 100644 --- a/vendor/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD +++ b/vendor/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD @@ -8,6 +8,7 @@ load( go_library( name = "go_default_library", srcs = [ + "conversion.go", "doc.go", "register.go", "types.go", diff --git a/vendor/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/conversion.go b/vendor/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/conversion.go new file mode 100644 index 000000000..378cc080d --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/conversion.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 v1alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +var _ runtime.NestedObjectDecoder = &AdmissionConfiguration{} + +// DecodeNestedObjects handles encoding RawExtensions on the AdmissionConfiguration, ensuring the +// objects are decoded with the provided decoder. +func (c *AdmissionConfiguration) DecodeNestedObjects(d runtime.Decoder) error { + // decoding failures result in a runtime.Unknown object being created in Object and passed + // to conversion + for k, v := range c.Plugins { + decodeNestedRawExtensionOrUnknown(d, &v.Configuration) + c.Plugins[k] = v + } + return nil +} + +var _ runtime.NestedObjectEncoder = &AdmissionConfiguration{} + +// EncodeNestedObjects handles encoding RawExtensions on the AdmissionConfiguration, ensuring the +// objects are encoded with the provided encoder. +func (c *AdmissionConfiguration) EncodeNestedObjects(e runtime.Encoder) error { + for k, v := range c.Plugins { + if err := encodeNestedRawExtension(e, &v.Configuration); err != nil { + return err + } + c.Plugins[k] = v + } + return nil +} + +// decodeNestedRawExtensionOrUnknown decodes the raw extension into an object once. If called +// On a RawExtension that has already been decoded (has an object), it will not run again. +func decodeNestedRawExtensionOrUnknown(d runtime.Decoder, ext *runtime.RawExtension) { + if ext.Raw == nil || ext.Object != nil { + return + } + obj, gvk, err := d.Decode(ext.Raw, nil, nil) + if err != nil { + unk := &runtime.Unknown{Raw: ext.Raw} + if runtime.IsNotRegisteredError(err) { + if _, gvk, err := d.Decode(ext.Raw, nil, unk); err == nil { + unk.APIVersion = gvk.GroupVersion().String() + unk.Kind = gvk.Kind + ext.Object = unk + return + } + } + // TODO: record mime-type with the object + if gvk != nil { + unk.APIVersion = gvk.GroupVersion().String() + unk.Kind = gvk.Kind + } + obj = unk + } + ext.Object = obj +} + +func encodeNestedRawExtension(e runtime.Encoder, ext *runtime.RawExtension) error { + if ext.Raw != nil || ext.Object == nil { + return nil + } + data, err := runtime.Encode(e, ext.Object) + if err != nil { + return err + } + ext.Raw = data + return nil +} diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/BUILD b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/BUILD index f90e24c35..d4aff8c66 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/BUILD +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/BUILD @@ -37,12 +37,16 @@ go_test( go_library( name = "go_default_library", srcs = [ + "create.go", + "delete.go", "doc.go", + "get.go", "namer.go", "patch.go", "proxy.go", "response.go", "rest.go", + "update.go", "watch.go", ], importpath = "k8s.io/apiserver/pkg/endpoints/handlers", diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go new file mode 100644 index 000000000..96c2da4b8 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/create.go @@ -0,0 +1,162 @@ +/* +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 handlers + +import ( + "fmt" + "net/http" + "time" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + utiltrace "k8s.io/apiserver/pkg/util/trace" +) + +func createHandler(r rest.NamedCreater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface, includeName bool) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // For performance tracking purposes. + trace := utiltrace.New("Create " + req.URL.Path) + defer trace.LogIfLong(500 * time.Millisecond) + + // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + var ( + namespace, name string + err error + ) + if includeName { + namespace, name, err = scope.Namer.Name(req) + } else { + namespace, err = scope.Namer.Namespace(req) + } + if err != nil { + scope.err(err, w, req) + return + } + + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + gv := scope.Kind.GroupVersion() + s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) + if err != nil { + scope.err(err, w, req) + return + } + decoder := scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}) + + body, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + + defaultGVK := scope.Kind + original := r.New() + trace.Step("About to convert to expected version") + obj, gvk, err := decoder.Decode(body, &defaultGVK, original) + if err != nil { + err = transformDecodeError(typer, err, original, gvk, body) + scope.err(err, w, req) + return + } + if gvk.GroupVersion() != gv { + err = errors.NewBadRequest(fmt.Sprintf("the API version in the data (%s) does not match the expected API version (%v)", gvk.GroupVersion().String(), gv.String())) + scope.err(err, w, req) + return + } + trace.Step("Conversion done") + + ae := request.AuditEventFrom(ctx) + audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) + + if admit != nil && admit.Handles(admission.Create) { + userInfo, _ := request.UserFrom(ctx) + + err = admit.Admit(admission.NewAttributesRecord(obj, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, userInfo)) + if err != nil { + scope.err(err, w, req) + return + } + } + + // TODO: replace with content type negotiation? + includeUninitialized := req.URL.Query().Get("includeUninitialized") == "1" + + trace.Step("About to store object in database") + result, err := finishRequest(timeout, func() (runtime.Object, error) { + return r.Create(ctx, name, obj, includeUninitialized) + }) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Object stored in database") + + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + trace.Step("Self-link added") + + // If the object is partially initialized, always indicate it via StatusAccepted + code := http.StatusCreated + if accessor, err := meta.Accessor(result); err == nil { + if accessor.GetInitializers() != nil { + code = http.StatusAccepted + } + } + status, ok := result.(*metav1.Status) + if ok && err == nil && status.Code == 0 { + status.Code = int32(code) + } + + transformResponseObject(ctx, scope, req, w, code, result) + } +} + +// CreateNamedResource returns a function that will handle a resource creation with name. +func CreateNamedResource(r rest.NamedCreater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { + return createHandler(r, scope, typer, admit, true) +} + +// CreateResource returns a function that will handle a resource creation. +func CreateResource(r rest.Creater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { + return createHandler(&namedCreaterAdapter{r}, scope, typer, admit, false) +} + +type namedCreaterAdapter struct { + rest.Creater +} + +func (c *namedCreaterAdapter) Create(ctx request.Context, name string, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { + return c.Creater.Create(ctx, obj, includeUninitialized) +} diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go new file mode 100644 index 000000000..81fe41be1 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/delete.go @@ -0,0 +1,264 @@ +/* +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 handlers + +import ( + "fmt" + "net/http" + "time" + + "k8s.io/apimachinery/pkg/api/errors" + metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + utiltrace "k8s.io/apiserver/pkg/util/trace" +) + +// DeleteResource returns a function that will handle a resource deletion +func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope RequestScope, admit admission.Interface) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // For performance tracking purposes. + trace := utiltrace.New("Delete " + req.URL.Path) + defer trace.LogIfLong(500 * time.Millisecond) + + // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + namespace, name, err := scope.Namer.Name(req) + if err != nil { + scope.err(err, w, req) + return + } + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + options := &metav1.DeleteOptions{} + if allowsOptions { + body, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + if len(body) > 0 { + s, err := negotiation.NegotiateInputSerializer(req, metainternalversion.Codecs) + if err != nil { + scope.err(err, w, req) + return + } + // For backwards compatibility, we need to allow existing clients to submit per group DeleteOptions + // It is also allowed to pass a body with meta.k8s.io/v1.DeleteOptions + defaultGVK := scope.MetaGroupVersion.WithKind("DeleteOptions") + obj, _, err := metainternalversion.Codecs.DecoderToVersion(s.Serializer, defaultGVK.GroupVersion()).Decode(body, &defaultGVK, options) + if err != nil { + scope.err(err, w, req) + return + } + if obj != options { + scope.err(fmt.Errorf("decoded object cannot be converted to DeleteOptions"), w, req) + return + } + trace.Step("Decoded delete options") + + ae := request.AuditEventFrom(ctx) + audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) + trace.Step("Recorded the audit event") + } else { + if values := req.URL.Query(); len(values) > 0 { + if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, options); err != nil { + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + } + } + } + + trace.Step("About to check admission control") + if admit != nil && admit.Handles(admission.Delete) { + userInfo, _ := request.UserFrom(ctx) + + err = admit.Admit(admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Delete, userInfo)) + if err != nil { + scope.err(err, w, req) + return + } + } + + trace.Step("About to delete object from database") + wasDeleted := true + result, err := finishRequest(timeout, func() (runtime.Object, error) { + obj, deleted, err := r.Delete(ctx, name, options) + wasDeleted = deleted + return obj, err + }) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Object deleted from database") + + status := http.StatusOK + // Return http.StatusAccepted if the resource was not deleted immediately and + // user requested cascading deletion by setting OrphanDependents=false. + // Note: We want to do this always if resource was not deleted immediately, but + // that will break existing clients. + // Other cases where resource is not instantly deleted are: namespace deletion + // and pod graceful deletion. + if !wasDeleted && options.OrphanDependents != nil && *options.OrphanDependents == false { + status = http.StatusAccepted + } + // if the rest.Deleter returns a nil object, fill out a status. Callers may return a valid + // object with the response. + if result == nil { + result = &metav1.Status{ + Status: metav1.StatusSuccess, + Code: int32(status), + Details: &metav1.StatusDetails{ + Name: name, + Kind: scope.Kind.Kind, + }, + } + } else { + // when a non-status response is returned, set the self link + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if _, ok := result.(*metav1.Status); !ok { + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + } + } + + transformResponseObject(ctx, scope, req, w, status, result) + } +} + +// DeleteCollection returns a function that will handle a collection deletion +func DeleteCollection(r rest.CollectionDeleter, checkBody bool, scope RequestScope, admit admission.Interface) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + namespace, err := scope.Namer.Namespace(req) + if err != nil { + scope.err(err, w, req) + return + } + + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + if admit != nil && admit.Handles(admission.Delete) { + userInfo, _ := request.UserFrom(ctx) + + err = admit.Admit(admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, "", scope.Resource, scope.Subresource, admission.Delete, userInfo)) + if err != nil { + scope.err(err, w, req) + return + } + } + + listOptions := metainternalversion.ListOptions{} + if err := metainternalversion.ParameterCodec.DecodeParameters(req.URL.Query(), scope.MetaGroupVersion, &listOptions); err != nil { + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + + // transform fields + // TODO: DecodeParametersInto should do this. + if listOptions.FieldSelector != nil { + fn := func(label, value string) (newLabel, newValue string, err error) { + return scope.Convertor.ConvertFieldLabel(scope.Kind.GroupVersion().String(), scope.Kind.Kind, label, value) + } + if listOptions.FieldSelector, err = listOptions.FieldSelector.Transform(fn); err != nil { + // TODO: allow bad request to set field causes based on query parameters + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + } + + options := &metav1.DeleteOptions{} + if checkBody { + body, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + if len(body) > 0 { + s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) + if err != nil { + scope.err(err, w, req) + return + } + defaultGVK := scope.Kind.GroupVersion().WithKind("DeleteOptions") + obj, _, err := scope.Serializer.DecoderToVersion(s.Serializer, defaultGVK.GroupVersion()).Decode(body, &defaultGVK, options) + if err != nil { + scope.err(err, w, req) + return + } + if obj != options { + scope.err(fmt.Errorf("decoded object cannot be converted to DeleteOptions"), w, req) + return + } + + ae := request.AuditEventFrom(ctx) + audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) + } + } + + result, err := finishRequest(timeout, func() (runtime.Object, error) { + return r.DeleteCollection(ctx, options, &listOptions) + }) + if err != nil { + scope.err(err, w, req) + return + } + + // if the rest.Deleter returns a nil object, fill out a status. Callers may return a valid + // object with the response. + if result == nil { + result = &metav1.Status{ + Status: metav1.StatusSuccess, + Code: http.StatusOK, + Details: &metav1.StatusDetails{ + Kind: scope.Kind.Kind, + }, + } + } else { + // when a non-status response is returned, set the self link + if _, ok := result.(*metav1.Status); !ok { + if _, err := setListSelfLink(result, ctx, req, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + } + } + + transformResponseObject(ctx, scope, req, w, http.StatusOK, result) + } +} diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/get.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/get.go new file mode 100644 index 000000000..7461ece64 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/get.go @@ -0,0 +1,278 @@ +/* +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 handlers + +import ( + "fmt" + "math/rand" + "net/http" + "net/url" + "strings" + "time" + + "github.com/golang/glog" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/endpoints/metrics" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + utiltrace "k8s.io/apiserver/pkg/util/trace" +) + +// getterFunc performs a get request with the given context and object name. The request +// may be used to deserialize an options object to pass to the getter. +type getterFunc func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) + +// getResourceHandler is an HTTP handler function for get requests. It delegates to the +// passed-in getterFunc to perform the actual get. +func getResourceHandler(scope RequestScope, getter getterFunc) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + trace := utiltrace.New("Get " + req.URL.Path) + defer trace.LogIfLong(500 * time.Millisecond) + + namespace, name, err := scope.Namer.Name(req) + if err != nil { + scope.err(err, w, req) + return + } + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + result, err := getter(ctx, name, req, trace) + if err != nil { + scope.err(err, w, req) + return + } + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + + trace.Step("About to write a response") + transformResponseObject(ctx, scope, req, w, http.StatusOK, result) + } +} + +// GetResource returns a function that handles retrieving a single resource from a rest.Storage object. +func GetResource(r rest.Getter, e rest.Exporter, scope RequestScope) http.HandlerFunc { + return getResourceHandler(scope, + func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) { + // check for export + options := metav1.GetOptions{} + if values := req.URL.Query(); len(values) > 0 { + exports := metav1.ExportOptions{} + if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &exports); err != nil { + err = errors.NewBadRequest(err.Error()) + return nil, err + } + if exports.Export { + if e == nil { + return nil, errors.NewBadRequest(fmt.Sprintf("export of %q is not supported", scope.Resource.Resource)) + } + return e.Export(ctx, name, exports) + } + if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &options); err != nil { + err = errors.NewBadRequest(err.Error()) + return nil, err + } + } + if trace != nil { + trace.Step("About to Get from storage") + } + return r.Get(ctx, name, &options) + }) +} + +// GetResourceWithOptions returns a function that handles retrieving a single resource from a rest.Storage object. +func GetResourceWithOptions(r rest.GetterWithOptions, scope RequestScope, isSubresource bool) http.HandlerFunc { + return getResourceHandler(scope, + func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) { + opts, subpath, subpathKey := r.NewGetOptions() + trace.Step("About to process Get options") + if err := getRequestOptions(req, scope, opts, subpath, subpathKey, isSubresource); err != nil { + err = errors.NewBadRequest(err.Error()) + return nil, err + } + if trace != nil { + trace.Step("About to Get from storage") + } + return r.Get(ctx, name, opts) + }) +} + +// getRequestOptions parses out options and can include path information. The path information shouldn't include the subresource. +func getRequestOptions(req *http.Request, scope RequestScope, into runtime.Object, subpath bool, subpathKey string, isSubresource bool) error { + if into == nil { + return nil + } + + query := req.URL.Query() + if subpath { + newQuery := make(url.Values) + for k, v := range query { + newQuery[k] = v + } + + ctx := scope.ContextFunc(req) + requestInfo, _ := request.RequestInfoFrom(ctx) + startingIndex := 2 + if isSubresource { + startingIndex = 3 + } + + p := strings.Join(requestInfo.Parts[startingIndex:], "/") + + // ensure non-empty subpaths correctly reflect a leading slash + if len(p) > 0 && !strings.HasPrefix(p, "/") { + p = "/" + p + } + + // ensure subpaths correctly reflect the presence of a trailing slash on the original request + if strings.HasSuffix(requestInfo.Path, "/") && !strings.HasSuffix(p, "/") { + p += "/" + } + + newQuery[subpathKey] = []string{p} + query = newQuery + } + return scope.ParameterCodec.DecodeParameters(query, scope.Kind.GroupVersion(), into) +} + +func ListResource(r rest.Lister, rw rest.Watcher, scope RequestScope, forceWatch bool, minRequestTimeout time.Duration) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // For performance tracking purposes. + trace := utiltrace.New("List " + req.URL.Path) + + namespace, err := scope.Namer.Namespace(req) + if err != nil { + scope.err(err, w, req) + return + } + + // Watches for single objects are routed to this function. + // Treat a name parameter the same as a field selector entry. + hasName := true + _, name, err := scope.Namer.Name(req) + if err != nil { + hasName = false + } + + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + opts := metainternalversion.ListOptions{} + if err := metainternalversion.ParameterCodec.DecodeParameters(req.URL.Query(), scope.MetaGroupVersion, &opts); err != nil { + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + + // transform fields + // TODO: DecodeParametersInto should do this. + if opts.FieldSelector != nil { + fn := func(label, value string) (newLabel, newValue string, err error) { + return scope.Convertor.ConvertFieldLabel(scope.Kind.GroupVersion().String(), scope.Kind.Kind, label, value) + } + if opts.FieldSelector, err = opts.FieldSelector.Transform(fn); err != nil { + // TODO: allow bad request to set field causes based on query parameters + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + } + + if hasName { + // metadata.name is the canonical internal name. + // SelectionPredicate will notice that this is + // a request for a single object and optimize the + // storage query accordingly. + nameSelector := fields.OneTermEqualSelector("metadata.name", name) + if opts.FieldSelector != nil && !opts.FieldSelector.Empty() { + // It doesn't make sense to ask for both a name + // and a field selector, since just the name is + // sufficient to narrow down the request to a + // single object. + scope.err(errors.NewBadRequest("both a name and a field selector provided; please provide one or the other."), w, req) + return + } + opts.FieldSelector = nameSelector + } + + if opts.Watch || forceWatch { + if rw == nil { + scope.err(errors.NewMethodNotSupported(scope.Resource.GroupResource(), "watch"), w, req) + return + } + // TODO: Currently we explicitly ignore ?timeout= and use only ?timeoutSeconds=. + timeout := time.Duration(0) + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + if timeout == 0 && minRequestTimeout > 0 { + timeout = time.Duration(float64(minRequestTimeout) * (rand.Float64() + 1.0)) + } + glog.V(2).Infof("Starting watch for %s, rv=%s labels=%s fields=%s timeout=%s", req.URL.Path, opts.ResourceVersion, opts.LabelSelector, opts.FieldSelector, timeout) + + watcher, err := rw.Watch(ctx, &opts) + if err != nil { + scope.err(err, w, req) + return + } + requestInfo, _ := request.RequestInfoFrom(ctx) + metrics.RecordLongRunning(req, requestInfo, func() { + serveWatch(watcher, scope, req, w, timeout) + }) + return + } + + // Log only long List requests (ignore Watch). + defer trace.LogIfLong(500 * time.Millisecond) + trace.Step("About to List from storage") + result, err := r.List(ctx, &opts) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Listing from storage done") + numberOfItems, err := setListSelfLink(result, ctx, req, scope.Namer) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Self-linking done") + // Ensure empty lists return a non-nil items slice + if numberOfItems == 0 && meta.IsListType(result) { + if err := meta.SetList(result, []runtime.Object{}); err != nil { + scope.err(err, w, req) + return + } + } + + transformResponseObject(ctx, scope, req, w, http.StatusOK, result) + trace.Step(fmt.Sprintf("Writing http response done (%d items)", numberOfItems)) + } +} diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go index ca585e6dd..b5d2192e3 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/patch.go @@ -18,16 +18,344 @@ package handlers import ( "fmt" + "net/http" + "strings" + "time" + "github.com/evanphx/json-patch" + "github.com/golang/glog" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/conversion/unstructured" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/json" + "k8s.io/apimachinery/pkg/util/mergepatch" "k8s.io/apimachinery/pkg/util/strategicpatch" - - "github.com/evanphx/json-patch" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" ) +// PatchResource returns a function that will handle a resource patch +// TODO: Eventually PatchResource should just use GuaranteedUpdate and this routine should be a bit cleaner +func PatchResource(r rest.Patcher, scope RequestScope, admit admission.Interface, converter runtime.ObjectConvertor) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // TODO: we either want to remove timeout or document it (if we + // document, move timeout out of this function and declare it in + // api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + namespace, name, err := scope.Namer.Name(req) + if err != nil { + scope.err(err, w, req) + return + } + + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + versionedObj, err := converter.ConvertToVersion(r.New(), scope.Kind.GroupVersion()) + if err != nil { + scope.err(err, w, req) + return + } + + // TODO: handle this in negotiation + contentType := req.Header.Get("Content-Type") + // Remove "; charset=" if included in header. + if idx := strings.Index(contentType, ";"); idx > 0 { + contentType = contentType[:idx] + } + patchType := types.PatchType(contentType) + + patchJS, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + + ae := request.AuditEventFrom(ctx) + audit.LogRequestPatch(ae, patchJS) + + s, ok := runtime.SerializerInfoForMediaType(scope.Serializer.SupportedMediaTypes(), runtime.ContentTypeJSON) + if !ok { + scope.err(fmt.Errorf("no serializer defined for JSON"), w, req) + return + } + gv := scope.Kind.GroupVersion() + codec := runtime.NewCodec( + scope.Serializer.EncoderForVersion(s.Serializer, gv), + scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}), + ) + + updateAdmit := func(updatedObject runtime.Object, currentObject runtime.Object) error { + if admit != nil && admit.Handles(admission.Update) { + userInfo, _ := request.UserFrom(ctx) + return admit.Admit(admission.NewAttributesRecord(updatedObject, currentObject, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)) + } + + return nil + } + + result, err := patchResource(ctx, updateAdmit, timeout, versionedObj, r, name, patchType, patchJS, + scope.Namer, scope.Creater, scope.Defaulter, scope.UnsafeConvertor, scope.Kind, scope.Resource, codec) + if err != nil { + scope.err(err, w, req) + return + } + + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + + transformResponseObject(ctx, scope, req, w, http.StatusOK, result) + } +} + +type updateAdmissionFunc func(updatedObject runtime.Object, currentObject runtime.Object) error + +// patchResource divides PatchResource for easier unit testing +func patchResource( + ctx request.Context, + admit updateAdmissionFunc, + timeout time.Duration, + versionedObj runtime.Object, + patcher rest.Patcher, + name string, + patchType types.PatchType, + patchJS []byte, + namer ScopeNamer, + creater runtime.ObjectCreater, + defaulter runtime.ObjectDefaulter, + unsafeConvertor runtime.ObjectConvertor, + kind schema.GroupVersionKind, + resource schema.GroupVersionResource, + codec runtime.Codec, +) (runtime.Object, error) { + + namespace := request.NamespaceValue(ctx) + + var ( + originalObjJS []byte + originalPatchedObjJS []byte + originalObjMap map[string]interface{} + getOriginalPatchMap func() (map[string]interface{}, error) + lastConflictErr error + originalResourceVersion string + ) + + // applyPatch is called every time GuaranteedUpdate asks for the updated object, + // and is given the currently persisted object as input. + applyPatch := func(_ request.Context, _, currentObject runtime.Object) (runtime.Object, error) { + // Make sure we actually have a persisted currentObject + if hasUID, err := hasUID(currentObject); err != nil { + return nil, err + } else if !hasUID { + return nil, errors.NewNotFound(resource.GroupResource(), name) + } + + currentResourceVersion := "" + if currentMetadata, err := meta.Accessor(currentObject); err == nil { + currentResourceVersion = currentMetadata.GetResourceVersion() + } + + switch { + case originalObjJS == nil && originalObjMap == nil: + // first time through, + // 1. apply the patch + // 2. save the original and patched to detect whether there were conflicting changes on retries + + originalResourceVersion = currentResourceVersion + objToUpdate := patcher.New() + + // For performance reasons, in case of strategicpatch, we avoid json + // marshaling and unmarshaling and operate just on map[string]interface{}. + // In case of other patch types, we still have to operate on JSON + // representations. + switch patchType { + case types.JSONPatchType, types.MergePatchType: + originalJS, patchedJS, err := patchObjectJSON(patchType, codec, currentObject, patchJS, objToUpdate, versionedObj) + if err != nil { + return nil, err + } + originalObjJS, originalPatchedObjJS = originalJS, patchedJS + + // Make a getter that can return a fresh strategic patch map if needed for conflict retries + // We have to rebuild it each time we need it, because the map gets mutated when being applied + var originalPatchBytes []byte + getOriginalPatchMap = func() (map[string]interface{}, error) { + if originalPatchBytes == nil { + // Compute once + originalPatchBytes, err = strategicpatch.CreateTwoWayMergePatch(originalObjJS, originalPatchedObjJS, versionedObj) + if err != nil { + return nil, err + } + } + // Return a fresh map every time + originalPatchMap := make(map[string]interface{}) + if err := json.Unmarshal(originalPatchBytes, &originalPatchMap); err != nil { + return nil, err + } + return originalPatchMap, nil + } + + case types.StrategicMergePatchType: + // Since the patch is applied on versioned objects, we need to convert the + // current object to versioned representation first. + currentVersionedObject, err := unsafeConvertor.ConvertToVersion(currentObject, kind.GroupVersion()) + if err != nil { + return nil, err + } + versionedObjToUpdate, err := creater.New(kind) + if err != nil { + return nil, err + } + // Capture the original object map and patch for possible retries. + originalMap, err := unstructured.DefaultConverter.ToUnstructured(currentVersionedObject) + if err != nil { + return nil, err + } + if err := strategicPatchObject(codec, defaulter, currentVersionedObject, patchJS, versionedObjToUpdate, versionedObj); err != nil { + return nil, err + } + // Convert the object back to unversioned. + gvk := kind.GroupKind().WithVersion(runtime.APIVersionInternal) + unversionedObjToUpdate, err := unsafeConvertor.ConvertToVersion(versionedObjToUpdate, gvk.GroupVersion()) + if err != nil { + return nil, err + } + objToUpdate = unversionedObjToUpdate + // Store unstructured representation for possible retries. + originalObjMap = originalMap + // Make a getter that can return a fresh strategic patch map if needed for conflict retries + // We have to rebuild it each time we need it, because the map gets mutated when being applied + getOriginalPatchMap = func() (map[string]interface{}, error) { + patchMap := make(map[string]interface{}) + if err := json.Unmarshal(patchJS, &patchMap); err != nil { + return nil, err + } + return patchMap, nil + } + } + if err := checkName(objToUpdate, name, namespace, namer); err != nil { + return nil, err + } + return objToUpdate, nil + + default: + // on a conflict, + // 1. build a strategic merge patch from originalJS and the patchedJS. Different patch types can + // be specified, but a strategic merge patch should be expressive enough handle them. Build the + // patch with this type to handle those cases. + // 2. build a strategic merge patch from originalJS and the currentJS + // 3. ensure no conflicts between the two patches + // 4. apply the #1 patch to the currentJS object + + // Since the patch is applied on versioned objects, we need to convert the + // current object to versioned representation first. + currentVersionedObject, err := unsafeConvertor.ConvertToVersion(currentObject, kind.GroupVersion()) + if err != nil { + return nil, err + } + currentObjMap, err := unstructured.DefaultConverter.ToUnstructured(currentVersionedObject) + if err != nil { + return nil, err + } + + var currentPatchMap map[string]interface{} + if originalObjMap != nil { + var err error + currentPatchMap, err = strategicpatch.CreateTwoWayMergeMapPatch(originalObjMap, currentObjMap, versionedObj) + if err != nil { + return nil, err + } + } else { + // Compute current patch. + currentObjJS, err := runtime.Encode(codec, currentObject) + if err != nil { + return nil, err + } + currentPatch, err := strategicpatch.CreateTwoWayMergePatch(originalObjJS, currentObjJS, versionedObj) + if err != nil { + return nil, err + } + currentPatchMap = make(map[string]interface{}) + if err := json.Unmarshal(currentPatch, ¤tPatchMap); err != nil { + return nil, err + } + } + + // Get a fresh copy of the original strategic patch each time through, since applying it mutates the map + originalPatchMap, err := getOriginalPatchMap() + if err != nil { + return nil, err + } + + hasConflicts, err := mergepatch.HasConflicts(originalPatchMap, currentPatchMap) + if err != nil { + return nil, err + } + + if hasConflicts { + diff1, _ := json.Marshal(currentPatchMap) + diff2, _ := json.Marshal(originalPatchMap) + patchDiffErr := fmt.Errorf("there is a meaningful conflict (firstResourceVersion: %q, currentResourceVersion: %q):\n diff1=%v\n, diff2=%v\n", originalResourceVersion, currentResourceVersion, string(diff1), string(diff2)) + glog.V(4).Infof("patchResource failed for resource %s, because there is a meaningful conflict(firstResourceVersion: %q, currentResourceVersion: %q):\n diff1=%v\n, diff2=%v\n", name, originalResourceVersion, currentResourceVersion, string(diff1), string(diff2)) + + // Return the last conflict error we got if we have one + if lastConflictErr != nil { + return nil, lastConflictErr + } + // Otherwise manufacture one of our own + return nil, errors.NewConflict(resource.GroupResource(), name, patchDiffErr) + } + + versionedObjToUpdate, err := creater.New(kind) + if err != nil { + return nil, err + } + if err := applyPatchToObject(codec, defaulter, currentObjMap, originalPatchMap, versionedObjToUpdate, versionedObj); err != nil { + return nil, err + } + // Convert the object back to unversioned. + gvk := kind.GroupKind().WithVersion(runtime.APIVersionInternal) + objToUpdate, err := unsafeConvertor.ConvertToVersion(versionedObjToUpdate, gvk.GroupVersion()) + if err != nil { + return nil, err + } + + return objToUpdate, nil + } + } + + // applyAdmission is called every time GuaranteedUpdate asks for the updated object, + // and is given the currently persisted object and the patched object as input. + applyAdmission := func(ctx request.Context, patchedObject runtime.Object, currentObject runtime.Object) (runtime.Object, error) { + return patchedObject, admit(patchedObject, currentObject) + } + + updatedObjectInfo := rest.DefaultUpdatedObjectInfo(nil, applyPatch, applyAdmission) + + return finishRequest(timeout, func() (runtime.Object, error) { + updateObject, _, updateErr := patcher.Update(ctx, name, updatedObjectInfo) + for i := 0; i < MaxRetryWhenPatchConflicts && (errors.IsConflict(updateErr)); i++ { + lastConflictErr = updateErr + updateObject, _, updateErr = patcher.Update(ctx, name, updatedObjectInfo) + } + return updateObject, updateErr + }) +} + // patchObjectJSON patches the with and stores // the result in . // Currently it also returns the original and patched objects serialized to diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go index 6e6306585..cd4d7349e 100644 --- a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/rest.go @@ -20,36 +20,23 @@ import ( "encoding/hex" "fmt" "io/ioutil" - "math/rand" "net/http" - "net/url" - "strings" "time" "github.com/golang/glog" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" - metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1alpha1 "k8s.io/apimachinery/pkg/apis/meta/v1alpha1" - "k8s.io/apimachinery/pkg/conversion/unstructured" - "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/json" - "k8s.io/apimachinery/pkg/util/mergepatch" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/audit" - "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/handlers/responsewriters" "k8s.io/apiserver/pkg/endpoints/metrics" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - utiltrace "k8s.io/apiserver/pkg/util/trace" ) // RequestScope encapsulates common fields across all RESTful handler methods. @@ -104,133 +91,9 @@ func (scope *RequestScope) AllowsStreamSchema(s string) bool { return s == "watch" } -// getterFunc performs a get request with the given context and object name. The request -// may be used to deserialize an options object to pass to the getter. -type getterFunc func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) - // MaxRetryWhenPatchConflicts is the maximum number of conflicts retry during a patch operation before returning failure const MaxRetryWhenPatchConflicts = 5 -// getResourceHandler is an HTTP handler function for get requests. It delegates to the -// passed-in getterFunc to perform the actual get. -func getResourceHandler(scope RequestScope, getter getterFunc) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - trace := utiltrace.New("Get " + req.URL.Path) - defer trace.LogIfLong(500 * time.Millisecond) - - namespace, name, err := scope.Namer.Name(req) - if err != nil { - scope.err(err, w, req) - return - } - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - result, err := getter(ctx, name, req, trace) - if err != nil { - scope.err(err, w, req) - return - } - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - - trace.Step("About to write a response") - transformResponseObject(ctx, scope, req, w, http.StatusOK, result) - } -} - -// GetResource returns a function that handles retrieving a single resource from a rest.Storage object. -func GetResource(r rest.Getter, e rest.Exporter, scope RequestScope) http.HandlerFunc { - return getResourceHandler(scope, - func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) { - // check for export - options := metav1.GetOptions{} - if values := req.URL.Query(); len(values) > 0 { - exports := metav1.ExportOptions{} - if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &exports); err != nil { - err = errors.NewBadRequest(err.Error()) - return nil, err - } - if exports.Export { - if e == nil { - return nil, errors.NewBadRequest(fmt.Sprintf("export of %q is not supported", scope.Resource.Resource)) - } - return e.Export(ctx, name, exports) - } - if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &options); err != nil { - err = errors.NewBadRequest(err.Error()) - return nil, err - } - } - if trace != nil { - trace.Step("About to Get from storage") - } - return r.Get(ctx, name, &options) - }) -} - -// GetResourceWithOptions returns a function that handles retrieving a single resource from a rest.Storage object. -func GetResourceWithOptions(r rest.GetterWithOptions, scope RequestScope, isSubresource bool) http.HandlerFunc { - return getResourceHandler(scope, - func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) { - opts, subpath, subpathKey := r.NewGetOptions() - trace.Step("About to process Get options") - if err := getRequestOptions(req, scope, opts, subpath, subpathKey, isSubresource); err != nil { - err = errors.NewBadRequest(err.Error()) - return nil, err - } - if trace != nil { - trace.Step("About to Get from storage") - } - return r.Get(ctx, name, opts) - }) -} - -// getRequestOptions parses out options and can include path information. The path information shouldn't include the subresource. -func getRequestOptions(req *http.Request, scope RequestScope, into runtime.Object, subpath bool, subpathKey string, isSubresource bool) error { - if into == nil { - return nil - } - - query := req.URL.Query() - if subpath { - newQuery := make(url.Values) - for k, v := range query { - newQuery[k] = v - } - - ctx := scope.ContextFunc(req) - requestInfo, _ := request.RequestInfoFrom(ctx) - startingIndex := 2 - if isSubresource { - startingIndex = 3 - } - - p := strings.Join(requestInfo.Parts[startingIndex:], "/") - - // ensure non-empty subpaths correctly reflect a leading slash - if len(p) > 0 && !strings.HasPrefix(p, "/") { - p = "/" + p - } - - // ensure subpaths correctly reflect the presence of a trailing slash on the original request - if strings.HasSuffix(requestInfo.Path, "/") && !strings.HasSuffix(p, "/") { - p += "/" - } - - newQuery[subpathKey] = []string{p} - query = newQuery - } - return scope.ParameterCodec.DecodeParameters(query, scope.Kind.GroupVersion(), into) -} - // ConnectResource returns a function that handles a connect request on a rest.Storage object. func ConnectResource(connecter rest.Connecter, scope RequestScope, admit admission.Interface, restPath string, isSubresource bool) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { @@ -289,889 +152,6 @@ func (r *responder) Error(err error) { r.scope.err(err, r.w, r.req) } -func ListResource(r rest.Lister, rw rest.Watcher, scope RequestScope, forceWatch bool, minRequestTimeout time.Duration) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // For performance tracking purposes. - trace := utiltrace.New("List " + req.URL.Path) - - namespace, err := scope.Namer.Namespace(req) - if err != nil { - scope.err(err, w, req) - return - } - - // Watches for single objects are routed to this function. - // Treat a name parameter the same as a field selector entry. - hasName := true - _, name, err := scope.Namer.Name(req) - if err != nil { - hasName = false - } - - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - opts := metainternalversion.ListOptions{} - if err := metainternalversion.ParameterCodec.DecodeParameters(req.URL.Query(), scope.MetaGroupVersion, &opts); err != nil { - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - - // transform fields - // TODO: DecodeParametersInto should do this. - if opts.FieldSelector != nil { - fn := func(label, value string) (newLabel, newValue string, err error) { - return scope.Convertor.ConvertFieldLabel(scope.Kind.GroupVersion().String(), scope.Kind.Kind, label, value) - } - if opts.FieldSelector, err = opts.FieldSelector.Transform(fn); err != nil { - // TODO: allow bad request to set field causes based on query parameters - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - } - - if hasName { - // metadata.name is the canonical internal name. - // SelectionPredicate will notice that this is - // a request for a single object and optimize the - // storage query accordingly. - nameSelector := fields.OneTermEqualSelector("metadata.name", name) - if opts.FieldSelector != nil && !opts.FieldSelector.Empty() { - // It doesn't make sense to ask for both a name - // and a field selector, since just the name is - // sufficient to narrow down the request to a - // single object. - scope.err(errors.NewBadRequest("both a name and a field selector provided; please provide one or the other."), w, req) - return - } - opts.FieldSelector = nameSelector - } - - if opts.Watch || forceWatch { - if rw == nil { - scope.err(errors.NewMethodNotSupported(scope.Resource.GroupResource(), "watch"), w, req) - return - } - // TODO: Currently we explicitly ignore ?timeout= and use only ?timeoutSeconds=. - timeout := time.Duration(0) - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - if timeout == 0 && minRequestTimeout > 0 { - timeout = time.Duration(float64(minRequestTimeout) * (rand.Float64() + 1.0)) - } - glog.V(2).Infof("Starting watch for %s, rv=%s labels=%s fields=%s timeout=%s", req.URL.Path, opts.ResourceVersion, opts.LabelSelector, opts.FieldSelector, timeout) - - watcher, err := rw.Watch(ctx, &opts) - if err != nil { - scope.err(err, w, req) - return - } - requestInfo, _ := request.RequestInfoFrom(ctx) - metrics.RecordLongRunning(req, requestInfo, func() { - serveWatch(watcher, scope, req, w, timeout) - }) - return - } - - // Log only long List requests (ignore Watch). - defer trace.LogIfLong(500 * time.Millisecond) - trace.Step("About to List from storage") - result, err := r.List(ctx, &opts) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Listing from storage done") - numberOfItems, err := setListSelfLink(result, ctx, req, scope.Namer) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Self-linking done") - // Ensure empty lists return a non-nil items slice - if numberOfItems == 0 && meta.IsListType(result) { - if err := meta.SetList(result, []runtime.Object{}); err != nil { - scope.err(err, w, req) - return - } - } - - transformResponseObject(ctx, scope, req, w, http.StatusOK, result) - trace.Step(fmt.Sprintf("Writing http response done (%d items)", numberOfItems)) - } -} - -func createHandler(r rest.NamedCreater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface, includeName bool) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // For performance tracking purposes. - trace := utiltrace.New("Create " + req.URL.Path) - defer trace.LogIfLong(500 * time.Millisecond) - - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - var ( - namespace, name string - err error - ) - if includeName { - namespace, name, err = scope.Namer.Name(req) - } else { - namespace, err = scope.Namer.Namespace(req) - } - if err != nil { - scope.err(err, w, req) - return - } - - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - gv := scope.Kind.GroupVersion() - s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) - if err != nil { - scope.err(err, w, req) - return - } - decoder := scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}) - - body, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - - defaultGVK := scope.Kind - original := r.New() - trace.Step("About to convert to expected version") - obj, gvk, err := decoder.Decode(body, &defaultGVK, original) - if err != nil { - err = transformDecodeError(typer, err, original, gvk, body) - scope.err(err, w, req) - return - } - if gvk.GroupVersion() != gv { - err = errors.NewBadRequest(fmt.Sprintf("the API version in the data (%s) does not match the expected API version (%v)", gvk.GroupVersion().String(), gv.String())) - scope.err(err, w, req) - return - } - trace.Step("Conversion done") - - ae := request.AuditEventFrom(ctx) - audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) - - if admit != nil && admit.Handles(admission.Create) { - userInfo, _ := request.UserFrom(ctx) - - err = admit.Admit(admission.NewAttributesRecord(obj, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, userInfo)) - if err != nil { - scope.err(err, w, req) - return - } - } - - // TODO: replace with content type negotiation? - includeUninitialized := req.URL.Query().Get("includeUninitialized") == "1" - - trace.Step("About to store object in database") - result, err := finishRequest(timeout, func() (runtime.Object, error) { - return r.Create(ctx, name, obj, includeUninitialized) - }) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Object stored in database") - - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - trace.Step("Self-link added") - - // If the object is partially initialized, always indicate it via StatusAccepted - code := http.StatusCreated - if accessor, err := meta.Accessor(result); err == nil { - if accessor.GetInitializers() != nil { - code = http.StatusAccepted - } - } - status, ok := result.(*metav1.Status) - if ok && err == nil && status.Code == 0 { - status.Code = int32(code) - } - - transformResponseObject(ctx, scope, req, w, code, result) - } -} - -// CreateNamedResource returns a function that will handle a resource creation with name. -func CreateNamedResource(r rest.NamedCreater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { - return createHandler(r, scope, typer, admit, true) -} - -// CreateResource returns a function that will handle a resource creation. -func CreateResource(r rest.Creater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { - return createHandler(&namedCreaterAdapter{r}, scope, typer, admit, false) -} - -type namedCreaterAdapter struct { - rest.Creater -} - -func (c *namedCreaterAdapter) Create(ctx request.Context, name string, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { - return c.Creater.Create(ctx, obj, includeUninitialized) -} - -// PatchResource returns a function that will handle a resource patch -// TODO: Eventually PatchResource should just use GuaranteedUpdate and this routine should be a bit cleaner -func PatchResource(r rest.Patcher, scope RequestScope, admit admission.Interface, converter runtime.ObjectConvertor) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // TODO: we either want to remove timeout or document it (if we - // document, move timeout out of this function and declare it in - // api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - namespace, name, err := scope.Namer.Name(req) - if err != nil { - scope.err(err, w, req) - return - } - - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - versionedObj, err := converter.ConvertToVersion(r.New(), scope.Kind.GroupVersion()) - if err != nil { - scope.err(err, w, req) - return - } - - // TODO: handle this in negotiation - contentType := req.Header.Get("Content-Type") - // Remove "; charset=" if included in header. - if idx := strings.Index(contentType, ";"); idx > 0 { - contentType = contentType[:idx] - } - patchType := types.PatchType(contentType) - - patchJS, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - - ae := request.AuditEventFrom(ctx) - audit.LogRequestPatch(ae, patchJS) - - s, ok := runtime.SerializerInfoForMediaType(scope.Serializer.SupportedMediaTypes(), runtime.ContentTypeJSON) - if !ok { - scope.err(fmt.Errorf("no serializer defined for JSON"), w, req) - return - } - gv := scope.Kind.GroupVersion() - codec := runtime.NewCodec( - scope.Serializer.EncoderForVersion(s.Serializer, gv), - scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}), - ) - - updateAdmit := func(updatedObject runtime.Object, currentObject runtime.Object) error { - if admit != nil && admit.Handles(admission.Update) { - userInfo, _ := request.UserFrom(ctx) - return admit.Admit(admission.NewAttributesRecord(updatedObject, currentObject, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)) - } - - return nil - } - - result, err := patchResource(ctx, updateAdmit, timeout, versionedObj, r, name, patchType, patchJS, - scope.Namer, scope.Creater, scope.Defaulter, scope.UnsafeConvertor, scope.Kind, scope.Resource, codec) - if err != nil { - scope.err(err, w, req) - return - } - - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - - transformResponseObject(ctx, scope, req, w, http.StatusOK, result) - } -} - -type updateAdmissionFunc func(updatedObject runtime.Object, currentObject runtime.Object) error - -// patchResource divides PatchResource for easier unit testing -func patchResource( - ctx request.Context, - admit updateAdmissionFunc, - timeout time.Duration, - versionedObj runtime.Object, - patcher rest.Patcher, - name string, - patchType types.PatchType, - patchJS []byte, - namer ScopeNamer, - creater runtime.ObjectCreater, - defaulter runtime.ObjectDefaulter, - unsafeConvertor runtime.ObjectConvertor, - kind schema.GroupVersionKind, - resource schema.GroupVersionResource, - codec runtime.Codec, -) (runtime.Object, error) { - - namespace := request.NamespaceValue(ctx) - - var ( - originalObjJS []byte - originalPatchedObjJS []byte - originalObjMap map[string]interface{} - getOriginalPatchMap func() (map[string]interface{}, error) - lastConflictErr error - originalResourceVersion string - ) - - // applyPatch is called every time GuaranteedUpdate asks for the updated object, - // and is given the currently persisted object as input. - applyPatch := func(_ request.Context, _, currentObject runtime.Object) (runtime.Object, error) { - // Make sure we actually have a persisted currentObject - if hasUID, err := hasUID(currentObject); err != nil { - return nil, err - } else if !hasUID { - return nil, errors.NewNotFound(resource.GroupResource(), name) - } - - currentResourceVersion := "" - if currentMetadata, err := meta.Accessor(currentObject); err == nil { - currentResourceVersion = currentMetadata.GetResourceVersion() - } - - switch { - case originalObjJS == nil && originalObjMap == nil: - // first time through, - // 1. apply the patch - // 2. save the original and patched to detect whether there were conflicting changes on retries - - originalResourceVersion = currentResourceVersion - objToUpdate := patcher.New() - - // For performance reasons, in case of strategicpatch, we avoid json - // marshaling and unmarshaling and operate just on map[string]interface{}. - // In case of other patch types, we still have to operate on JSON - // representations. - switch patchType { - case types.JSONPatchType, types.MergePatchType: - originalJS, patchedJS, err := patchObjectJSON(patchType, codec, currentObject, patchJS, objToUpdate, versionedObj) - if err != nil { - return nil, err - } - originalObjJS, originalPatchedObjJS = originalJS, patchedJS - - // Make a getter that can return a fresh strategic patch map if needed for conflict retries - // We have to rebuild it each time we need it, because the map gets mutated when being applied - var originalPatchBytes []byte - getOriginalPatchMap = func() (map[string]interface{}, error) { - if originalPatchBytes == nil { - // Compute once - originalPatchBytes, err = strategicpatch.CreateTwoWayMergePatch(originalObjJS, originalPatchedObjJS, versionedObj) - if err != nil { - return nil, err - } - } - // Return a fresh map every time - originalPatchMap := make(map[string]interface{}) - if err := json.Unmarshal(originalPatchBytes, &originalPatchMap); err != nil { - return nil, err - } - return originalPatchMap, nil - } - - case types.StrategicMergePatchType: - // Since the patch is applied on versioned objects, we need to convert the - // current object to versioned representation first. - currentVersionedObject, err := unsafeConvertor.ConvertToVersion(currentObject, kind.GroupVersion()) - if err != nil { - return nil, err - } - versionedObjToUpdate, err := creater.New(kind) - if err != nil { - return nil, err - } - // Capture the original object map and patch for possible retries. - originalMap, err := unstructured.DefaultConverter.ToUnstructured(currentVersionedObject) - if err != nil { - return nil, err - } - if err := strategicPatchObject(codec, defaulter, currentVersionedObject, patchJS, versionedObjToUpdate, versionedObj); err != nil { - return nil, err - } - // Convert the object back to unversioned. - gvk := kind.GroupKind().WithVersion(runtime.APIVersionInternal) - unversionedObjToUpdate, err := unsafeConvertor.ConvertToVersion(versionedObjToUpdate, gvk.GroupVersion()) - if err != nil { - return nil, err - } - objToUpdate = unversionedObjToUpdate - // Store unstructured representation for possible retries. - originalObjMap = originalMap - // Make a getter that can return a fresh strategic patch map if needed for conflict retries - // We have to rebuild it each time we need it, because the map gets mutated when being applied - getOriginalPatchMap = func() (map[string]interface{}, error) { - patchMap := make(map[string]interface{}) - if err := json.Unmarshal(patchJS, &patchMap); err != nil { - return nil, err - } - return patchMap, nil - } - } - if err := checkName(objToUpdate, name, namespace, namer); err != nil { - return nil, err - } - return objToUpdate, nil - - default: - // on a conflict, - // 1. build a strategic merge patch from originalJS and the patchedJS. Different patch types can - // be specified, but a strategic merge patch should be expressive enough handle them. Build the - // patch with this type to handle those cases. - // 2. build a strategic merge patch from originalJS and the currentJS - // 3. ensure no conflicts between the two patches - // 4. apply the #1 patch to the currentJS object - - // Since the patch is applied on versioned objects, we need to convert the - // current object to versioned representation first. - currentVersionedObject, err := unsafeConvertor.ConvertToVersion(currentObject, kind.GroupVersion()) - if err != nil { - return nil, err - } - currentObjMap, err := unstructured.DefaultConverter.ToUnstructured(currentVersionedObject) - if err != nil { - return nil, err - } - - var currentPatchMap map[string]interface{} - if originalObjMap != nil { - var err error - currentPatchMap, err = strategicpatch.CreateTwoWayMergeMapPatch(originalObjMap, currentObjMap, versionedObj) - if err != nil { - return nil, err - } - } else { - // Compute current patch. - currentObjJS, err := runtime.Encode(codec, currentObject) - if err != nil { - return nil, err - } - currentPatch, err := strategicpatch.CreateTwoWayMergePatch(originalObjJS, currentObjJS, versionedObj) - if err != nil { - return nil, err - } - currentPatchMap = make(map[string]interface{}) - if err := json.Unmarshal(currentPatch, ¤tPatchMap); err != nil { - return nil, err - } - } - - // Get a fresh copy of the original strategic patch each time through, since applying it mutates the map - originalPatchMap, err := getOriginalPatchMap() - if err != nil { - return nil, err - } - - hasConflicts, err := mergepatch.HasConflicts(originalPatchMap, currentPatchMap) - if err != nil { - return nil, err - } - - if hasConflicts { - diff1, _ := json.Marshal(currentPatchMap) - diff2, _ := json.Marshal(originalPatchMap) - patchDiffErr := fmt.Errorf("there is a meaningful conflict (firstResourceVersion: %q, currentResourceVersion: %q):\n diff1=%v\n, diff2=%v\n", originalResourceVersion, currentResourceVersion, string(diff1), string(diff2)) - glog.V(4).Infof("patchResource failed for resource %s, because there is a meaningful conflict(firstResourceVersion: %q, currentResourceVersion: %q):\n diff1=%v\n, diff2=%v\n", name, originalResourceVersion, currentResourceVersion, string(diff1), string(diff2)) - - // Return the last conflict error we got if we have one - if lastConflictErr != nil { - return nil, lastConflictErr - } - // Otherwise manufacture one of our own - return nil, errors.NewConflict(resource.GroupResource(), name, patchDiffErr) - } - - versionedObjToUpdate, err := creater.New(kind) - if err != nil { - return nil, err - } - if err := applyPatchToObject(codec, defaulter, currentObjMap, originalPatchMap, versionedObjToUpdate, versionedObj); err != nil { - return nil, err - } - // Convert the object back to unversioned. - gvk := kind.GroupKind().WithVersion(runtime.APIVersionInternal) - objToUpdate, err := unsafeConvertor.ConvertToVersion(versionedObjToUpdate, gvk.GroupVersion()) - if err != nil { - return nil, err - } - - return objToUpdate, nil - } - } - - // applyAdmission is called every time GuaranteedUpdate asks for the updated object, - // and is given the currently persisted object and the patched object as input. - applyAdmission := func(ctx request.Context, patchedObject runtime.Object, currentObject runtime.Object) (runtime.Object, error) { - return patchedObject, admit(patchedObject, currentObject) - } - - updatedObjectInfo := rest.DefaultUpdatedObjectInfo(nil, applyPatch, applyAdmission) - - return finishRequest(timeout, func() (runtime.Object, error) { - updateObject, _, updateErr := patcher.Update(ctx, name, updatedObjectInfo) - for i := 0; i < MaxRetryWhenPatchConflicts && (errors.IsConflict(updateErr)); i++ { - lastConflictErr = updateErr - updateObject, _, updateErr = patcher.Update(ctx, name, updatedObjectInfo) - } - return updateObject, updateErr - }) -} - -// UpdateResource returns a function that will handle a resource update -func UpdateResource(r rest.Updater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // For performance tracking purposes. - trace := utiltrace.New("Update " + req.URL.Path) - defer trace.LogIfLong(500 * time.Millisecond) - - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - namespace, name, err := scope.Namer.Name(req) - if err != nil { - scope.err(err, w, req) - return - } - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - body, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - - s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) - if err != nil { - scope.err(err, w, req) - return - } - defaultGVK := scope.Kind - original := r.New() - trace.Step("About to convert to expected version") - decoder := scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: defaultGVK.Group, Version: runtime.APIVersionInternal}) - obj, gvk, err := decoder.Decode(body, &defaultGVK, original) - if err != nil { - err = transformDecodeError(typer, err, original, gvk, body) - scope.err(err, w, req) - return - } - if gvk.GroupVersion() != defaultGVK.GroupVersion() { - err = errors.NewBadRequest(fmt.Sprintf("the API version in the data (%s) does not match the expected API version (%s)", gvk.GroupVersion(), defaultGVK.GroupVersion())) - scope.err(err, w, req) - return - } - trace.Step("Conversion done") - - ae := request.AuditEventFrom(ctx) - audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) - - if err := checkName(obj, name, namespace, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - - var transformers []rest.TransformFunc - if admit != nil && admit.Handles(admission.Update) { - transformers = append(transformers, func(ctx request.Context, newObj, oldObj runtime.Object) (runtime.Object, error) { - userInfo, _ := request.UserFrom(ctx) - return newObj, admit.Admit(admission.NewAttributesRecord(newObj, oldObj, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)) - }) - } - - trace.Step("About to store object in database") - wasCreated := false - result, err := finishRequest(timeout, func() (runtime.Object, error) { - obj, created, err := r.Update(ctx, name, rest.DefaultUpdatedObjectInfo(obj, transformers...)) - wasCreated = created - return obj, err - }) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Object stored in database") - - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - trace.Step("Self-link added") - - status := http.StatusOK - if wasCreated { - status = http.StatusCreated - } - - transformResponseObject(ctx, scope, req, w, status, result) - } -} - -// DeleteResource returns a function that will handle a resource deletion -func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope RequestScope, admit admission.Interface) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // For performance tracking purposes. - trace := utiltrace.New("Delete " + req.URL.Path) - defer trace.LogIfLong(500 * time.Millisecond) - - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - namespace, name, err := scope.Namer.Name(req) - if err != nil { - scope.err(err, w, req) - return - } - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - options := &metav1.DeleteOptions{} - if allowsOptions { - body, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - if len(body) > 0 { - s, err := negotiation.NegotiateInputSerializer(req, metainternalversion.Codecs) - if err != nil { - scope.err(err, w, req) - return - } - // For backwards compatibility, we need to allow existing clients to submit per group DeleteOptions - // It is also allowed to pass a body with meta.k8s.io/v1.DeleteOptions - defaultGVK := scope.MetaGroupVersion.WithKind("DeleteOptions") - obj, _, err := metainternalversion.Codecs.DecoderToVersion(s.Serializer, defaultGVK.GroupVersion()).Decode(body, &defaultGVK, options) - if err != nil { - scope.err(err, w, req) - return - } - if obj != options { - scope.err(fmt.Errorf("decoded object cannot be converted to DeleteOptions"), w, req) - return - } - trace.Step("Decoded delete options") - - ae := request.AuditEventFrom(ctx) - audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) - trace.Step("Recorded the audit event") - } else { - if values := req.URL.Query(); len(values) > 0 { - if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, options); err != nil { - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - } - } - } - - trace.Step("About to check admission control") - if admit != nil && admit.Handles(admission.Delete) { - userInfo, _ := request.UserFrom(ctx) - - err = admit.Admit(admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Delete, userInfo)) - if err != nil { - scope.err(err, w, req) - return - } - } - - trace.Step("About to delete object from database") - wasDeleted := true - result, err := finishRequest(timeout, func() (runtime.Object, error) { - obj, deleted, err := r.Delete(ctx, name, options) - wasDeleted = deleted - return obj, err - }) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Object deleted from database") - - status := http.StatusOK - // Return http.StatusAccepted if the resource was not deleted immediately and - // user requested cascading deletion by setting OrphanDependents=false. - // Note: We want to do this always if resource was not deleted immediately, but - // that will break existing clients. - // Other cases where resource is not instantly deleted are: namespace deletion - // and pod graceful deletion. - if !wasDeleted && options.OrphanDependents != nil && *options.OrphanDependents == false { - status = http.StatusAccepted - } - // if the rest.Deleter returns a nil object, fill out a status. Callers may return a valid - // object with the response. - if result == nil { - result = &metav1.Status{ - Status: metav1.StatusSuccess, - Code: int32(status), - Details: &metav1.StatusDetails{ - Name: name, - Kind: scope.Kind.Kind, - }, - } - } else { - // when a non-status response is returned, set the self link - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if _, ok := result.(*metav1.Status); !ok { - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - } - } - - transformResponseObject(ctx, scope, req, w, status, result) - } -} - -// DeleteCollection returns a function that will handle a collection deletion -func DeleteCollection(r rest.CollectionDeleter, checkBody bool, scope RequestScope, admit admission.Interface) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - namespace, err := scope.Namer.Namespace(req) - if err != nil { - scope.err(err, w, req) - return - } - - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - if admit != nil && admit.Handles(admission.Delete) { - userInfo, _ := request.UserFrom(ctx) - - err = admit.Admit(admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, "", scope.Resource, scope.Subresource, admission.Delete, userInfo)) - if err != nil { - scope.err(err, w, req) - return - } - } - - listOptions := metainternalversion.ListOptions{} - if err := metainternalversion.ParameterCodec.DecodeParameters(req.URL.Query(), scope.MetaGroupVersion, &listOptions); err != nil { - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - - // transform fields - // TODO: DecodeParametersInto should do this. - if listOptions.FieldSelector != nil { - fn := func(label, value string) (newLabel, newValue string, err error) { - return scope.Convertor.ConvertFieldLabel(scope.Kind.GroupVersion().String(), scope.Kind.Kind, label, value) - } - if listOptions.FieldSelector, err = listOptions.FieldSelector.Transform(fn); err != nil { - // TODO: allow bad request to set field causes based on query parameters - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - } - - options := &metav1.DeleteOptions{} - if checkBody { - body, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - if len(body) > 0 { - s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) - if err != nil { - scope.err(err, w, req) - return - } - defaultGVK := scope.Kind.GroupVersion().WithKind("DeleteOptions") - obj, _, err := scope.Serializer.DecoderToVersion(s.Serializer, defaultGVK.GroupVersion()).Decode(body, &defaultGVK, options) - if err != nil { - scope.err(err, w, req) - return - } - if obj != options { - scope.err(fmt.Errorf("decoded object cannot be converted to DeleteOptions"), w, req) - return - } - - ae := request.AuditEventFrom(ctx) - audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) - } - } - - result, err := finishRequest(timeout, func() (runtime.Object, error) { - return r.DeleteCollection(ctx, options, &listOptions) - }) - if err != nil { - scope.err(err, w, req) - return - } - - // if the rest.Deleter returns a nil object, fill out a status. Callers may return a valid - // object with the response. - if result == nil { - result = &metav1.Status{ - Status: metav1.StatusSuccess, - Code: http.StatusOK, - Details: &metav1.StatusDetails{ - Kind: scope.Kind.Kind, - }, - } - } else { - // when a non-status response is returned, set the self link - if _, ok := result.(*metav1.Status); !ok { - if _, err := setListSelfLink(result, ctx, req, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - } - } - - transformResponseObject(ctx, scope, req, w, http.StatusOK, result) - } -} - // resultFunc is a function that returns a rest result and can be run in a goroutine type resultFunc func() (runtime.Object, error) diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go new file mode 100644 index 000000000..9743f4c7a --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/update.go @@ -0,0 +1,128 @@ +/* +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 handlers + +import ( + "fmt" + "net/http" + "time" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + utiltrace "k8s.io/apiserver/pkg/util/trace" +) + +// UpdateResource returns a function that will handle a resource update +func UpdateResource(r rest.Updater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // For performance tracking purposes. + trace := utiltrace.New("Update " + req.URL.Path) + defer trace.LogIfLong(500 * time.Millisecond) + + // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + namespace, name, err := scope.Namer.Name(req) + if err != nil { + scope.err(err, w, req) + return + } + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + body, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + + s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) + if err != nil { + scope.err(err, w, req) + return + } + defaultGVK := scope.Kind + original := r.New() + trace.Step("About to convert to expected version") + decoder := scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: defaultGVK.Group, Version: runtime.APIVersionInternal}) + obj, gvk, err := decoder.Decode(body, &defaultGVK, original) + if err != nil { + err = transformDecodeError(typer, err, original, gvk, body) + scope.err(err, w, req) + return + } + if gvk.GroupVersion() != defaultGVK.GroupVersion() { + err = errors.NewBadRequest(fmt.Sprintf("the API version in the data (%s) does not match the expected API version (%s)", gvk.GroupVersion(), defaultGVK.GroupVersion())) + scope.err(err, w, req) + return + } + trace.Step("Conversion done") + + ae := request.AuditEventFrom(ctx) + audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) + + if err := checkName(obj, name, namespace, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + + var transformers []rest.TransformFunc + if admit != nil && admit.Handles(admission.Update) { + transformers = append(transformers, func(ctx request.Context, newObj, oldObj runtime.Object) (runtime.Object, error) { + userInfo, _ := request.UserFrom(ctx) + return newObj, admit.Admit(admission.NewAttributesRecord(newObj, oldObj, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)) + }) + } + + trace.Step("About to store object in database") + wasCreated := false + result, err := finishRequest(timeout, func() (runtime.Object, error) { + obj, created, err := r.Update(ctx, name, rest.DefaultUpdatedObjectInfo(obj, transformers...)) + wasCreated = created + return obj, err + }) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Object stored in database") + + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + trace.Step("Self-link added") + + status := http.StatusOK + if wasCreated { + status = http.StatusCreated + } + + transformResponseObject(ctx, scope, req, w, status, result) + } +} diff --git a/vendor/k8s.io/apiserver/pkg/server/BUILD b/vendor/k8s.io/apiserver/pkg/server/BUILD index f0e3ac3d4..77a1caaa5 100644 --- a/vendor/k8s.io/apiserver/pkg/server/BUILD +++ b/vendor/k8s.io/apiserver/pkg/server/BUILD @@ -77,6 +77,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", @@ -84,6 +85,7 @@ go_library( "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/initialization:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/apiserver/install:go_default_library", "//vendor/k8s.io/apiserver/pkg/audit:go_default_library", "//vendor/k8s.io/apiserver/pkg/audit/policy:go_default_library", diff --git a/vendor/k8s.io/apiserver/pkg/server/config.go b/vendor/k8s.io/apiserver/pkg/server/config.go index 9ededc431..e1c81c7d4 100644 --- a/vendor/k8s.io/apiserver/pkg/server/config.go +++ b/vendor/k8s.io/apiserver/pkg/server/config.go @@ -67,7 +67,7 @@ import ( ) const ( - // DefaultLegacyAPIPrefix is where the the legacy APIs will be located. + // DefaultLegacyAPIPrefix is where the legacy APIs will be located. DefaultLegacyAPIPrefix = "/api" // APIGroupPrefix is where non-legacy API group will be located. @@ -460,6 +460,7 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G openAPIConfig: c.OpenAPIConfig, postStartHooks: map[string]postStartHookEntry{}, + preShutdownHooks: map[string]preShutdownHookEntry{}, disabledPostStartHooks: c.DisabledPostStartHooks, healthzChecks: c.HealthzChecks, @@ -473,8 +474,12 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G s.postStartHooks[k] = v } + for k, v := range delegationTarget.PreShutdownHooks() { + s.preShutdownHooks[k] = v + } + genericApiServerHookName := "generic-apiserver-start-informers" - if c.SharedInformerFactory != nil && !s.isHookRegistered(genericApiServerHookName) { + if c.SharedInformerFactory != nil && !s.isPostStartHookRegistered(genericApiServerHookName) { err := s.AddPostStartHook(genericApiServerHookName, func(context PostStartHookContext) error { c.SharedInformerFactory.Start(context.StopCh) return nil diff --git a/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go b/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go index ad24415bc..6dc65a20c 100644 --- a/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go +++ b/vendor/k8s.io/apiserver/pkg/server/genericapiserver.go @@ -134,6 +134,10 @@ type GenericAPIServer struct { postStartHooksCalled bool disabledPostStartHooks sets.String + preShutdownHookLock sync.Mutex + preShutdownHooks map[string]preShutdownHookEntry + preShutdownHooksCalled bool + // healthz checks healthzLock sync.Mutex healthzChecks []healthz.HealthzChecker @@ -163,6 +167,9 @@ type DelegationTarget interface { // PostStartHooks returns the post-start hooks that need to be combined PostStartHooks() map[string]postStartHookEntry + // PreShutdownHooks returns the pre-stop hooks that need to be combined + PreShutdownHooks() map[string]preShutdownHookEntry + // HealthzChecks returns the healthz checks that need to be combined HealthzChecks() []healthz.HealthzChecker @@ -180,6 +187,9 @@ func (s *GenericAPIServer) UnprotectedHandler() http.Handler { func (s *GenericAPIServer) PostStartHooks() map[string]postStartHookEntry { return s.postStartHooks } +func (s *GenericAPIServer) PreShutdownHooks() map[string]preShutdownHookEntry { + return s.preShutdownHooks +} func (s *GenericAPIServer) HealthzChecks() []healthz.HealthzChecker { return s.healthzChecks } @@ -205,6 +215,9 @@ func (s emptyDelegate) UnprotectedHandler() http.Handler { func (s emptyDelegate) PostStartHooks() map[string]postStartHookEntry { return map[string]postStartHookEntry{} } +func (s emptyDelegate) PreShutdownHooks() map[string]preShutdownHookEntry { + return map[string]preShutdownHookEntry{} +} func (s emptyDelegate) HealthzChecks() []healthz.HealthzChecker { return []healthz.HealthzChecker{} } @@ -253,6 +266,14 @@ func (s *GenericAPIServer) PrepareRun() preparedGenericAPIServer { // Run spawns the secure http server. It only returns if stopCh is closed // or the secure port cannot be listened on initially. func (s preparedGenericAPIServer) Run(stopCh <-chan struct{}) error { + // Register audit backend preShutdownHook. + if s.AuditBackend != nil { + s.AddPreShutdownHook("audit-backend", func() error { + s.AuditBackend.Shutdown() + return nil + }) + } + err := s.NonBlockingRun(stopCh) if err != nil { return err @@ -260,16 +281,20 @@ func (s preparedGenericAPIServer) Run(stopCh <-chan struct{}) error { <-stopCh - if s.GenericAPIServer.AuditBackend != nil { - s.GenericAPIServer.AuditBackend.Shutdown() - } - - return nil + return s.RunPreShutdownHooks() } // NonBlockingRun spawns the secure http server. An error is // returned if the secure port cannot be listened on. func (s preparedGenericAPIServer) NonBlockingRun(stopCh <-chan struct{}) error { + // Start the audit backend before any request comes in. This means we must call Backend.Run + // before http server start serving. Otherwise the Backend.ProcessEvents call might block. + if s.AuditBackend != nil { + if err := s.AuditBackend.Run(stopCh); err != nil { + return fmt.Errorf("failed to run the audit backend: %v", err) + } + } + // Use an internal stop channel to allow cleanup of the listeners on error. internalStopCh := make(chan struct{}) @@ -288,14 +313,6 @@ func (s preparedGenericAPIServer) NonBlockingRun(stopCh <-chan struct{}) error { close(internalStopCh) }() - // Start the audit backend before any request comes in. This means we cannot turn it into a - // post start hook because without calling Backend.Run the Backend.ProcessEvents call might block. - if s.AuditBackend != nil { - if err := s.AuditBackend.Run(stopCh); err != nil { - return fmt.Errorf("failed to run the audit backend: %v", err) - } - } - s.RunPostStartHooks(stopCh) if _, err := systemd.SdNotify(true, "READY=1\n"); err != nil { diff --git a/vendor/k8s.io/apiserver/pkg/server/handler.go b/vendor/k8s.io/apiserver/pkg/server/handler.go index 48d1408a4..5368e2e0f 100644 --- a/vendor/k8s.io/apiserver/pkg/server/handler.go +++ b/vendor/k8s.io/apiserver/pkg/server/handler.go @@ -62,7 +62,7 @@ type APIServerHandler struct { // which we don't fit into and it still muddies up swagger. Trying to switch the webservices into a route doesn't work because the // containing webservice faces all the same problems listed above. // This leads to the crazy thing done here. Our mux does what we need, so we'll place it in front of gorestful. It will introspect to - // decide if the the route is likely to be handled by goresful and route there if needed. Otherwise, it goes to PostGoRestful mux in + // decide if the route is likely to be handled by goresful and route there if needed. Otherwise, it goes to PostGoRestful mux in // order to handle "normal" paths and delegation. Hopefully no API consumers will ever have to deal with this level of detail. I think // we should consider completely removing gorestful. // Other servers should only use this opaquely to delegate to an API server. diff --git a/vendor/k8s.io/apiserver/pkg/server/hooks.go b/vendor/k8s.io/apiserver/pkg/server/hooks.go index a190f5622..ccf8ee17a 100644 --- a/vendor/k8s.io/apiserver/pkg/server/hooks.go +++ b/vendor/k8s.io/apiserver/pkg/server/hooks.go @@ -23,6 +23,7 @@ import ( "github.com/golang/glog" + utilerrors "k8s.io/apimachinery/pkg/util/errors" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apiserver/pkg/server/healthz" restclient "k8s.io/client-go/rest" @@ -39,6 +40,9 @@ import ( // until it becomes easier to use. type PostStartHookFunc func(context PostStartHookContext) error +// PreShutdownHookFunc is a function that can be added to the shutdown logic. +type PreShutdownHookFunc func() error + // PostStartHookContext provides information about this API server to a PostStartHookFunc type PostStartHookContext struct { // LoopbackClientConfig is a config for a privileged loopback connection to the API server @@ -59,6 +63,10 @@ type postStartHookEntry struct { done chan struct{} } +type preShutdownHookEntry struct { + hook PreShutdownHookFunc +} + // AddPostStartHook allows you to add a PostStartHook. func (s *GenericAPIServer) AddPostStartHook(name string, hook PostStartHookFunc) error { if len(name) == 0 { @@ -97,6 +105,37 @@ func (s *GenericAPIServer) AddPostStartHookOrDie(name string, hook PostStartHook } } +// AddPreShutdownHook allows you to add a PreShutdownHook. +func (s *GenericAPIServer) AddPreShutdownHook(name string, hook PreShutdownHookFunc) error { + if len(name) == 0 { + return fmt.Errorf("missing name") + } + if hook == nil { + return nil + } + + s.preShutdownHookLock.Lock() + defer s.preShutdownHookLock.Unlock() + + if s.preShutdownHooksCalled { + return fmt.Errorf("unable to add %q because PreShutdownHooks have already been called", name) + } + if _, exists := s.preShutdownHooks[name]; exists { + return fmt.Errorf("unable to add %q because it is already registered", name) + } + + s.preShutdownHooks[name] = preShutdownHookEntry{hook: hook} + + return nil +} + +// AddPreShutdownHookOrDie allows you to add a PostStartHook, but dies on failure +func (s *GenericAPIServer) AddPreShutdownHookOrDie(name string, hook PreShutdownHookFunc) { + if err := s.AddPreShutdownHook(name, hook); err != nil { + glog.Fatalf("Error registering PreShutdownHook %q: %v", name, err) + } +} + // RunPostStartHooks runs the PostStartHooks for the server func (s *GenericAPIServer) RunPostStartHooks(stopCh <-chan struct{}) { s.postStartHookLock.Lock() @@ -113,8 +152,24 @@ func (s *GenericAPIServer) RunPostStartHooks(stopCh <-chan struct{}) { } } -// isHookRegistered checks whether a given hook is registered -func (s *GenericAPIServer) isHookRegistered(name string) bool { +// RunPreShutdownHooks runs the PreShutdownHooks for the server +func (s *GenericAPIServer) RunPreShutdownHooks() error { + var errorList []error + + s.preShutdownHookLock.Lock() + defer s.preShutdownHookLock.Unlock() + s.preShutdownHooksCalled = true + + for hookName, hookEntry := range s.preShutdownHooks { + if err := runPreShutdownHook(hookName, hookEntry); err != nil { + errorList = append(errorList, err) + } + } + return utilerrors.NewAggregate(errorList) +} + +// isPostStartHookRegistered checks whether a given PostStartHook is registered +func (s *GenericAPIServer) isPostStartHookRegistered(name string) bool { s.postStartHookLock.Lock() defer s.postStartHookLock.Unlock() _, exists := s.postStartHooks[name] @@ -135,6 +190,19 @@ func runPostStartHook(name string, entry postStartHookEntry, context PostStartHo close(entry.done) } +func runPreShutdownHook(name string, entry preShutdownHookEntry) error { + var err error + func() { + // don't let the hook *accidentally* panic and kill the server + defer utilruntime.HandleCrash() + err = entry.hook() + }() + if err != nil { + return fmt.Errorf("PreShutdownHook %q failed: %v", name, err) + } + return nil +} + // postStartHookHealthz implements a healthz check for poststarthooks. It will return a "hookNotFinished" // error until the poststarthook is finished. type postStartHookHealthz struct { diff --git a/vendor/k8s.io/apiserver/pkg/server/options/BUILD b/vendor/k8s.io/apiserver/pkg/server/options/BUILD index 2fe0d4652..422e9a22c 100644 --- a/vendor/k8s.io/apiserver/pkg/server/options/BUILD +++ b/vendor/k8s.io/apiserver/pkg/server/options/BUILD @@ -32,6 +32,7 @@ go_library( "//vendor/k8s.io/apiserver/pkg/admission/initializer:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/initialization:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/webhook:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1:go_default_library", "//vendor/k8s.io/apiserver/pkg/audit:go_default_library", "//vendor/k8s.io/apiserver/pkg/audit/policy:go_default_library", diff --git a/vendor/k8s.io/apiserver/pkg/server/options/admission.go b/vendor/k8s.io/apiserver/pkg/server/options/admission.go index 1c23d3e2f..184afdbe8 100644 --- a/vendor/k8s.io/apiserver/pkg/server/options/admission.go +++ b/vendor/k8s.io/apiserver/pkg/server/options/admission.go @@ -26,6 +26,7 @@ import ( "k8s.io/apiserver/pkg/admission/initializer" "k8s.io/apiserver/pkg/admission/plugin/initialization" "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle" + "k8s.io/apiserver/pkg/admission/plugin/webhook/webhook" "k8s.io/apiserver/pkg/server" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes" @@ -55,8 +56,8 @@ func NewAdmissionOptions() *AdmissionOptions { options := &AdmissionOptions{ Plugins: &admission.Plugins{}, PluginNames: []string{}, - RecommendedPluginOrder: []string{lifecycle.PluginName, initialization.PluginName}, - DefaultOffPlugins: []string{initialization.PluginName}, + RecommendedPluginOrder: []string{lifecycle.PluginName, initialization.PluginName, webhook.PluginName}, + DefaultOffPlugins: []string{initialization.PluginName, webhook.PluginName}, } server.RegisterAllAdmissionPlugins(options.Plugins) return options @@ -80,9 +81,7 @@ func (a *AdmissionOptions) AddFlags(fs *pflag.FlagSet) { func (a *AdmissionOptions) ApplyTo( c *server.Config, informers informers.SharedInformerFactory, - serverIdentifyingClientCert []byte, - serverIdentifyingClientKey []byte, - clientConfig *rest.Config, + kubeAPIServerClientConfig *rest.Config, scheme *runtime.Scheme, pluginInitializers ...admission.PluginInitializer, ) error { @@ -96,11 +95,11 @@ func (a *AdmissionOptions) ApplyTo( return fmt.Errorf("failed to read plugin config: %v", err) } - clientset, err := kubernetes.NewForConfig(clientConfig) + clientset, err := kubernetes.NewForConfig(kubeAPIServerClientConfig) if err != nil { return err } - genericInitializer, err := initializer.New(clientset, informers, c.Authorizer, serverIdentifyingClientCert, serverIdentifyingClientKey, scheme) + genericInitializer, err := initializer.New(clientset, informers, c.Authorizer, scheme) if err != nil { return err } diff --git a/vendor/k8s.io/apiserver/pkg/server/plugins.go b/vendor/k8s.io/apiserver/pkg/server/plugins.go index c54a4f41d..99ed7e891 100644 --- a/vendor/k8s.io/apiserver/pkg/server/plugins.go +++ b/vendor/k8s.io/apiserver/pkg/server/plugins.go @@ -21,10 +21,12 @@ import ( "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission/plugin/initialization" "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle" + "k8s.io/apiserver/pkg/admission/plugin/webhook/webhook" ) // RegisterAllAdmissionPlugins registers all admission plugins func RegisterAllAdmissionPlugins(plugins *admission.Plugins) { lifecycle.Register(plugins) initialization.Register(plugins) + webhook.Register(plugins) } diff --git a/vendor/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/secretbox.go b/vendor/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/secretbox.go index f53aa2c37..0eaa62824 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/secretbox.go +++ b/vendor/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/secretbox.go @@ -27,7 +27,7 @@ import ( ) // secretbox implements at rest encryption of the provided values given a 32 byte secret key. -// Uses a standard 24 byte nonce (placed at the the beginning of the cipher text) generated +// Uses a standard 24 byte nonce (placed at the beginning of the cipher text) generated // from crypto/rand. Does not perform authentication of the data at rest. type secretboxTransformer struct { key [32]byte diff --git a/vendor/k8s.io/apiserver/pkg/util/feature/feature_gate.go b/vendor/k8s.io/apiserver/pkg/util/feature/feature_gate.go index 17187ea69..95ca0e77a 100644 --- a/vendor/k8s.io/apiserver/pkg/util/feature/feature_gate.go +++ b/vendor/k8s.io/apiserver/pkg/util/feature/feature_gate.go @@ -157,7 +157,7 @@ func (f *featureGate) Set(value string) error { } arr := strings.SplitN(s, "=", 2) k := Feature(strings.TrimSpace(arr[0])) - _, ok := known[Feature(k)] + _, ok := known[k] if !ok { return fmt.Errorf("unrecognized key: %s", k) } diff --git a/vendor/k8s.io/apiserver/pkg/util/webhook/BUILD b/vendor/k8s.io/apiserver/pkg/util/webhook/BUILD index 1f40526e9..e3624b96b 100644 --- a/vendor/k8s.io/apiserver/pkg/util/webhook/BUILD +++ b/vendor/k8s.io/apiserver/pkg/util/webhook/BUILD @@ -16,6 +16,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", diff --git a/vendor/k8s.io/apiserver/pkg/util/webhook/webhook.go b/vendor/k8s.io/apiserver/pkg/util/webhook/webhook.go index 3dc241813..563a6eced 100755 --- a/vendor/k8s.io/apiserver/pkg/util/webhook/webhook.go +++ b/vendor/k8s.io/apiserver/pkg/util/webhook/webhook.go @@ -27,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" @@ -104,17 +105,14 @@ func WithExponentialBackoff(initialBackoff time.Duration, webhookFn func() error var err error wait.ExponentialBackoff(backoff, func() (bool, error) { err = webhookFn() - // these errors indicate a need to retry an authentication check - if apierrors.IsServerTimeout(err) || apierrors.IsTimeout(err) || apierrors.IsTooManyRequests(err) { + // these errors indicate a transient error that should be retried. + if net.IsConnectionReset(err) || apierrors.IsInternalError(err) || apierrors.IsTimeout(err) || apierrors.IsTooManyRequests(err) { return false, nil } // if the error sends the Retry-After header, we respect it as an explicit confirmation we should retry. if _, shouldRetry := apierrors.SuggestsClientDelay(err); shouldRetry { return false, nil } - if apierrors.IsInternalError(err) { - return false, nil - } if err != nil { return false, err } diff --git a/vendor/k8s.io/client-go/CHANGELOG.md b/vendor/k8s.io/client-go/CHANGELOG.md index 2bd29ba1e..88ffb2201 100644 --- a/vendor/k8s.io/client-go/CHANGELOG.md +++ b/vendor/k8s.io/client-go/CHANGELOG.md @@ -2,18 +2,81 @@ TODO: This document was manually maintained so might be incomplete. The automation effort is tracked in https://github.com/kubernetes/client-go/issues/234. -# HEAD (changes that will go into v5) +# v5.0.1 -** Breaking changes** +Bug fix: picked up a security fix [kubernetes/kubernetes#53443](https://github.com/kubernetes/kubernetes/pull/53443) for `PodSecurityPolicy`. -pkg/api and pkg/apis are moved to -[k8s.io/api](https://github.com/kubernetes/api). Other kubernetes repositories -also import types from there, so they are composable with client-go. +# v5.0.0 -Helper functions in pkg/api and pkg/apis are also removed. They are planned to -be exported in other repos. The issue is tracked -[here](https://github.com/kubernetes/kubernetes/issues/48209#issuecomment-314537745). -During the transition, you'll have to copy the helper functions to your projects. +**New features:** + +* Added paging support + + * [https://github.com/kubernetes/kubernetes/pull/51876](https://github.com/kubernetes/kubernetes/pull/51876) + +* Added support for client-side spam filtering of events + + * [https://github.com/kubernetes/kubernetes/pull/47367](https://github.com/kubernetes/kubernetes/pull/47367) + +* Added support for http etag and caching + + * [https://github.com/kubernetes/kubernetes/pull/50404](https://github.com/kubernetes/kubernetes/pull/50404) + +* Added priority queue support to informer cache + + * [https://github.com/kubernetes/kubernetes/pull/49752](https://github.com/kubernetes/kubernetes/pull/49752) + +* Added openstack auth provider + + * [https://github.com/kubernetes/kubernetes/pull/39587](https://github.com/kubernetes/kubernetes/pull/39587) + +* Added metrics for checking reflector health + + * [https://github.com/kubernetes/kubernetes/pull/48224](https://github.com/kubernetes/kubernetes/pull/48224) + +* Client-go now includes the leaderelection package + + * [https://github.com/kubernetes/kubernetes/pull/39173](https://github.com/kubernetes/kubernetes/pull/39173) + +**API changes:** + +* Promoted Autoscaling v2alpha1 to v2beta1 + + * [https://github.com/kubernetes/kubernetes/pull/50708](https://github.com/kubernetes/kubernetes/pull/50708) + +* Promoted CronJobs to batch/v1beta1 + + * [https://github.com/kubernetes/kubernetes/pull/41901](https://github.com/kubernetes/kubernetes/pull/41901) + +* Promoted rbac.authorization.k8s.io/v1beta1 to rbac.authorization.k8s.io/v1 + + * [https://github.com/kubernetes/kubernetes/pull/49642](https://github.com/kubernetes/kubernetes/pull/49642) + +* Added a new API version apps/v1beta2 + + * [https://github.com/kubernetes/kubernetes/pull/48746](https://github.com/kubernetes/kubernetes/pull/48746) + +* Added a new API version scheduling/v1alpha1 + + * [https://github.com/kubernetes/kubernetes/pull/48377](https://github.com/kubernetes/kubernetes/pull/48377) + +**Breaking changes:** + +* Moved pkg/api and pkg/apis to [k8s.io/api](https://github.com/kubernetes/api). Other kubernetes repositories also import types from there, so they are composable with client-go. + +* Removed helper functions in pkg/api and pkg/apis. They are planned to be exported in other repos. The issue is tracked [here](https://github.com/kubernetes/kubernetes/issues/48209#issuecomment-314537745). During the transition, you'll have to copy the helper functions to your projects. + +* The discovery client now fetches the protobuf encoded OpenAPI schema and returns `openapi_v2.Document` + + * [https://github.com/kubernetes/kubernetes/pull/46803](https://github.com/kubernetes/kubernetes/pull/46803) + +* Enforced explicit references to API group client interfaces in clientsets to avoid ambiguity. + + * [https://github.com/kubernetes/kubernetes/pull/49370](https://github.com/kubernetes/kubernetes/pull/49370) + +* The generic RESTClient type (`k8s.io/client-go/rest`) no longer exposes `LabelSelectorParam` or `FieldSelectorParam` methods - use `VersionedParams` with `metav1.ListOptions` instead. The `UintParam` method has been removed. The `timeout` parameter will no longer cause an error when using `Param()`. + + * [https://github.com/kubernetes/kubernetes/pull/48991](https://github.com/kubernetes/kubernetes/pull/48991) # v4.0.0 diff --git a/vendor/k8s.io/client-go/Godeps/Godeps.json b/vendor/k8s.io/client-go/Godeps/Godeps.json index 0df632b2c..df1a2e795 100644 --- a/vendor/k8s.io/client-go/Godeps/Godeps.json +++ b/vendor/k8s.io/client-go/Godeps/Godeps.json @@ -172,31 +172,31 @@ }, { "ImportPath": "github.com/gophercloud/gophercloud", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/utils", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/pagination", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gregjones/httpcache", @@ -372,307 +372,327 @@ }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/apps/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/apps/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/apps/v1beta2", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/authentication/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/authentication/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/authorization/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/authorization/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/autoscaling/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/autoscaling/v2beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/batch/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/batch/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/batch/v2alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/certificates/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/core/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/extensions/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/imagepolicy/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/networking/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/policy/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/rbac/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/rbac/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/rbac/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/scheduling/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/settings/v1alpha1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/storage/v1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/api/storage/v1beta1", - "Rev": "409c3b2393cd3359f275bd8b883b4d9c5aec41f6" + "Rev": "a302fba76bd80836fb4755b5fb89a1ca0df24c5b" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/testing", + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer", + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip", + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced", + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/unstructured", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "e9a29eff7d472df0f7da9ead5ab59b74e74a07ec" + "Rev": "9803991b41b5fcfc77691455885b65f7b86ca82a" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "61b46af70dfed79c6d24530cd23b41440a7f22a5" } ] } diff --git a/vendor/k8s.io/client-go/INSTALL.md b/vendor/k8s.io/client-go/INSTALL.md index c4e4d99b2..3417e0cd7 100644 --- a/vendor/k8s.io/client-go/INSTALL.md +++ b/vendor/k8s.io/client-go/INSTALL.md @@ -143,38 +143,20 @@ After modifying, run `glide up -v` again to re-populate your /vendor directory. Optionally, Glide users can also use [`glide-vc`](https://github.com/sgotti/glide-vc) after running `glide up -v` to remove unused files from /vendor. -### Dep - -[dep](https://github.com/golang/dep) is an up-and-coming dependency management tool, -which has the goal of being accepted as part of the standard go toolchain. Its -status is currently alpha. However, it comes the closest to working easily out -of the box. - -```sh -$ go get github.com/golang/dep -$ go install github.com/golang/dep/cmd/dep - -# Make sure you have a go file in your directory which imports a package of -# k8s.io/client-go first--I suggest copying one of the examples. -$ dep init -$ dep ensure k8s.io/client-go@^2.0.0 -``` - -Then you can try one of the -[examples](https://github.com/kubernetes/client-go/tree/v2.0.0/examples/) from -the 2.0.0 release. - -This will set up a `vendor` directory in your current directory, add `k8s.io/client-go` -to it, and flatten all of `k8s.io/client-go`'s dependencies into that vendor directory, -so that your code and `client-go` will both get the same copy of each -dependency. - -After installing like this, you could either use dep for your other -dependencies, or copy everything in the `vendor` directory into your -`$GOPATH/src` directory and proceed as if you had done a fancy `go get` that -flattened dependencies sanely. - -One thing to note about dep is that it will omit dependencies that aren't -actually used, and some dependencies of `client-go` are used only if you import -one of the plugins (for example, the auth plugins). So you may need to run `dep -ensure` again if you start importing a plugin that you weren't using before. +### Dep (Not supported yet!) + +[dep](https://github.com/golang/dep) is an up-and-coming dependency management +tool, which has the goal of being accepted as part of the standard go toolchain. +However, client-go does **NOT** work well with `dep` yet. To support `dep`, we +need to fix at least two issues: +1. publish native `Gopkg.toml` in client-go and other k8s.io repos, like `k8s.io/apimachinery`; +2. find a way to express transitive constraints (see https://github.com/golang/dep/issues/1124). + +As a workaround, which may or may not be worthwhile, you can specify all +client-go dependencies manually as +[override](https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md#override) +in Gopkg.toml with the versions listed in [Godeps.json](./Godeps/Godeps.json), +and manually update them when you upgrade client-go version. + +We are actively working on the two issues blocking using `dep`. For the +meantime, we recommend using `glide` or `godeps`. diff --git a/vendor/k8s.io/client-go/README.md b/vendor/k8s.io/client-go/README.md index afd03ced3..ed1b887fc 100644 --- a/vendor/k8s.io/client-go/README.md +++ b/vendor/k8s.io/client-go/README.md @@ -17,6 +17,7 @@ will give you head and doesn't handle the dependencies well. - [Compatibility: client-go <-> Kubernetes clusters](#compatibility-client-go---kubernetes-clusters) - [Compatibility matrix](#compatibility-matrix) - [Why do the 1.4 and 1.5 branch contain top-level folder named after the version?](#why-do-the-14-and-15-branch-contain-top-level-folder-named-after-the-version) +- [Kuberentes tags](#kubernetes-tags) - [How to get it](#how-to-get-it) - [How to use it](#how-to-use-it) - [Dependency management](#dependency-management) @@ -80,27 +81,29 @@ We will backport bugfixes--but not new features--into older versions of #### Compatibility matrix -| | Kubernetes 1.3 | Kubernetes 1.4 | Kubernetes 1.5 | Kubernetes 1.6 | Kubernetes 1.7 | +| | Kubernetes 1.4 | Kubernetes 1.5 | Kubernetes 1.6 | Kubernetes 1.7 | Kubernetes 1.8 | |---------------------|----------------|----------------|----------------|----------------|----------------| -| client-go 1.4 | + | ✓ | - | - | - | -| client-go 1.5 | + | + | - | - | - | -| client-go 2.0 | + | + | ✓ | - | - | -| client-go 3.0 | † | † | † | ✓ | - | -| client-go 4.0 | † | † | † | + | ✓ | -| client-go HEAD | † | † | † | + | + | +| client-go 1.4 | ✓ | - | - | - | - | +| client-go 1.5 | + | - | - | - | - | +| client-go 2.0 | +- | ✓ | +- | +- | +- | +| client-go 3.0 | +- | +- | ✓ | - | +- | +| client-go 4.0 | +- | +- | +- | ✓ | +- | +| client-go 5.0 | +- | +- | +- | +- | ✓ | +| client-go HEAD | +- | +- | +- | +- | + | Key: * `✓` Exactly the same features / API objects in both client-go and the Kubernetes version. -* `+` client-go has features or api objects that may not be present in the - Kubernetes cluster, but everything they have in common will work. Please - note that alpha APIs may vanish or change significantly in a single release. -* `†` client-go has new features or api objects, and some APIs running in the - cluster may have been deprecated and removed from client-go. But everything - they share in common (i.e., most APIs) will work. -* `-` The Kubernetes cluster has features the client-go library can't use - (additional API objects, etc). +* `+` client-go has features or API objects that may not be present in the + Kubernetes cluster, either due to that client-go has additional new API, or + that the server has removed old API. However, everything they have in + common (i.e., most APIs) will work. Please note that alpha APIs may vanish or + change significantly in a single release. +* `-` The Kubernetes cluster has features the client-go library can't use, + either due to the server has additional new API, or that client-go has + removed old API. However, everything they share in common (i.e., most APIs) + will work. See the [CHANGELOG](./CHANGELOG.md) for a detailed description of changes between client-go versions. @@ -112,6 +115,7 @@ between client-go versions. | client-go 2.0 | Kubernetes main repo, 1.5 branch | ✓ | | client-go 3.0 | Kubernetes main repo, 1.6 branch | ✓ | | client-go 4.0 | Kubernetes main repo, 1.7 branch | ✓ | +| client-go 5.0 | Kubernetes main repo, 1.8 branch | ✓ | | client-go HEAD | Kubernetes main repo, master branch | ✓ | Key: @@ -134,6 +138,23 @@ separate directories for each minor version. That soon proved to be a mistake. We are keeping the top-level folders in the 1.4 and 1.5 branches so that existing users won't be broken. +### Kubernetes tags + +As of October 2017, client-go is still a mirror of +[k8s.io/kubernetes/staging/src/client-go](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/client-go), +the code development is still done in the staging area. Since Kubernetes 1.8 +release, when syncing the code from the staging area, we also sync the Kubernetes +version tags to client-go, prefixed with "kubernetes-". For example, if you check +out the `kubernetes-v1.8.0` tag in client-go, the code you get is exactly the +same as if you check out the `v1.8.0` tag in kubernetes, and change directory to +`staging/src/k8s.io/client-go`. The purpose is to let users quickly find matching +commits among published repos, like +[sample-apiserver](https://github.com/kubernetes/sample-apiserver), +[apiextension-apiserver](https://github.com/kubernetes/apiextensions-apiserver), +etc. The Kubernetes version tag does NOT claim any backwards compatibility +guarantees for client-go. Please check the [semantic versions](#versioning) if +you care about backwards compatibility. + ### How to get it You can use `go get k8s.io/client-go/...` to get client-go, but **you will get diff --git a/vendor/k8s.io/client-go/discovery/fake/discovery.go b/vendor/k8s.io/client-go/discovery/fake/discovery.go index 13ccebfa7..984a0ba1e 100644 --- a/vendor/k8s.io/client-go/discovery/fake/discovery.go +++ b/vendor/k8s.io/client-go/discovery/fake/discovery.go @@ -68,7 +68,44 @@ func (c *FakeDiscovery) ServerPreferredNamespacedResources() ([]*metav1.APIResou } func (c *FakeDiscovery) ServerGroups() (*metav1.APIGroupList, error) { - return nil, nil + action := testing.ActionImpl{ + Verb: "get", + Resource: schema.GroupVersionResource{Resource: "group"}, + } + c.Invokes(action, nil) + + groups := map[string]*metav1.APIGroup{} + + for _, res := range c.Resources { + gv, err := schema.ParseGroupVersion(res.GroupVersion) + if err != nil { + return nil, err + } + group := groups[gv.Group] + if group == nil { + group = &metav1.APIGroup{ + Name: gv.Group, + PreferredVersion: metav1.GroupVersionForDiscovery{ + GroupVersion: res.GroupVersion, + Version: gv.Version, + }, + } + groups[gv.Group] = group + } + + group.Versions = append(group.Versions, metav1.GroupVersionForDiscovery{ + GroupVersion: res.GroupVersion, + Version: gv.Version, + }) + } + + list := &metav1.APIGroupList{} + for _, apiGroup := range groups { + list.Groups = append(list.Groups, *apiGroup) + } + + return list, nil + } func (c *FakeDiscovery) ServerVersion() (*version.Info, error) { diff --git a/vendor/k8s.io/client-go/dynamic/client_pool.go b/vendor/k8s.io/client-go/dynamic/client_pool.go index 728c1c2e0..a5e1b2978 100644 --- a/vendor/k8s.io/client-go/dynamic/client_pool.go +++ b/vendor/k8s.io/client-go/dynamic/client_pool.go @@ -56,7 +56,7 @@ type clientPoolImpl struct { mapper meta.RESTMapper } -// NewClientPool returns a ClientPool from the specified config. It reuses clients for the the same +// NewClientPool returns a ClientPool from the specified config. It reuses clients for the same // group version. It is expected this type may be wrapped by specific logic that special cases certain // resources or groups. func NewClientPool(config *restclient.Config, mapper meta.RESTMapper, apiPathResolverFunc APIPathResolverFunc) ClientPool { diff --git a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/BUILD b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/BUILD index 106adfe44..741403b31 100644 --- a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/BUILD +++ b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/BUILD @@ -19,10 +19,11 @@ go_library( deps = [ "//vendor/k8s.io/api/apps/v1beta1: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/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", + "//vendor/k8s.io/client-go/util/homedir:go_default_library", + "//vendor/k8s.io/client-go/util/retry:go_default_library", ], ) diff --git a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/README.md b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/README.md index 6b7ed4eac..e9c11a935 100644 --- a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/README.md +++ b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/README.md @@ -22,6 +22,8 @@ go build -o ./app Now, run this application on your workstation with your local kubeconfig file: ``` +./app +# or specify a kubeconfig file with flag ./app -kubeconfig=$HOME/.kube/config ``` @@ -30,13 +32,19 @@ Running this command will execute the following operations on your cluster: 1. **Create Deployment:** This will create a 2 replica Deployment. Verify with `kubectl get pods`. 2. **Update Deployment:** This will update the Deployment resource created in - previous step to set the replica count to 1 and add annotations. You are - encouraged to inspect the retry loop that handles conflicts. Verify the new - replica count and `foo=bar` annotation with `kubectl describe deployment - demo`. -3. **List Deployments:** This will retrieve Deployments in the `default` + previous step by setting the replica count to 1 and changing the container + image to `nginx:1.13`. You are encouraged to inspect the retry loop that + handles conflicts. Verify the new replica count and container image with + `kubectl describe deployment demo`. +3. **Rollback Deployment:** This will rollback the Deployment to the last + revision. In this case, it's the revision that was created in Step 1. + Use `kubectl describe` to verify the container image is now `nginx:1.12`. + Also note that the Deployment's replica count is still 1; this is because a + Deployment revision is created if and only if the Deployment's pod template + (`.spec.template`) is changed. +4. **List Deployments:** This will retrieve Deployments in the `default` namespace and print their names and replica counts. -4. **Delete Deployment:** This will delete the Deployment object and its +5. **Delete Deployment:** This will delete the Deployment object and its dependent ReplicaSet resource. Verify with `kubectl get deployments`. Each step is separated by an interactive prompt. You must hit the @@ -55,6 +63,10 @@ Updating deployment... Updated deployment... -> Press Return key to continue. +Rolling back deployment... +Rolled back deployment... +-> Press Return key to continue. + Listing deployments in namespace "default": * demo-deployment (1 replicas) -> Press Return key to continue. diff --git a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/main.go b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/main.go index 722a39458..f6d622745 100644 --- a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/main.go +++ b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/main.go @@ -22,23 +22,28 @@ import ( "flag" "fmt" "os" + "path/filepath" appsv1beta1 "k8s.io/api/apps/v1beta1" apiv1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" + "k8s.io/client-go/util/homedir" + "k8s.io/client-go/util/retry" // Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters). // _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" ) func main() { - kubeconfig := flag.String("kubeconfig", "", "absolute path to the kubeconfig file") - flag.Parse() - if *kubeconfig == "" { - panic("-kubeconfig not specified") + var kubeconfig *string + if home := homedir.HomeDir(); home != "" { + kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file") + } else { + kubeconfig = flag.String("kubeconfig", "", "absolute path to the kubeconfig file") } + flag.Parse() + config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) if err != nil { panic(err) @@ -66,7 +71,7 @@ func main() { Containers: []apiv1.Container{ { Name: "web", - Image: "nginx:1.13", + Image: "nginx:1.12", Ports: []apiv1.ContainerPort{ { Name: "http", @@ -97,35 +102,52 @@ func main() { // 1. Modify the "deployment" variable and call: Update(deployment). // This works like the "kubectl replace" command and it overwrites/loses changes // made by other clients between you Create() and Update() the object. - // 2. Modify the "result" returned by Create()/Get() and retry Update(result) until + // 2. Modify the "result" returned by Get() and retry Update(result) until // you no longer get a conflict error. This way, you can preserve changes made - // by other clients between Create() and Update(). This is implemented below: - - for { - result.Spec.Replicas = int32Ptr(1) // reduce replica count - result.Spec.Template.Annotations = map[string]string{ // add annotations - "foo": "bar", + // by other clients between Create() and Update(). This is implemented below + // using the retry utility package included with client-go. (RECOMMENDED) + // + // More Info: + // https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#concurrency-control-and-consistency + + retryErr := retry.RetryOnConflict(retry.DefaultRetry, func() error { + // Retrieve the latest version of Deployment before attempting update + // RetryOnConflict uses exponential backoff to avoid exhausting the apiserver + result, getErr := deploymentsClient.Get("demo-deployment", metav1.GetOptions{}) + if getErr != nil { + panic(fmt.Errorf("Failed to get latest version of Deployment: %v", getErr)) } - if _, err := deploymentsClient.Update(result); errors.IsConflict(err) { - // Deployment is modified in the meanwhile, query the latest version - // and modify the retrieved object. - fmt.Println("encountered conflict, retrying") - result, err = deploymentsClient.Get("demo-deployment", metav1.GetOptions{}) - if err != nil { - panic(fmt.Errorf("Get failed: %+v", err)) - } - } else if err != nil { - panic(err) - } else { - break + result.Spec.Replicas = int32Ptr(1) // reduce replica count + result.Spec.Template.Spec.Containers[0].Image = "nginx:1.13" // change nginx version + _, updateErr := deploymentsClient.Update(result) + return updateErr + }) + if retryErr != nil { + panic(fmt.Errorf("Update failed: %v", retryErr)) + } + fmt.Println("Updated deployment...") + + // Rollback Deployment + prompt() + fmt.Println("Rolling back deployment...") + // Once again use RetryOnConflict to avoid update conflicts + retryErr = retry.RetryOnConflict(retry.DefaultRetry, func() error { + result, getErr := deploymentsClient.Get("demo-deployment", metav1.GetOptions{}) + if getErr != nil { + panic(fmt.Errorf("Failed to get latest version of Deployment: %v", getErr)) } - // TODO: You should sleep here with an exponential backoff to avoid - // exhausting the apiserver, and add a limit/timeout on the retries to - // avoid getting stuck in this loop indefintiely. + result.Spec.RollbackTo = &appsv1beta1.RollbackConfig{ + Revision: 0, // can be specific revision number, or 0 for last revision + } + _, updateErr := deploymentsClient.Update(result) + return updateErr + }) + if retryErr != nil { + panic(fmt.Errorf("Rollback failed: %v", retryErr)) } - fmt.Println("Updated deployment...") + fmt.Println("Rolled back deployment...") // List Deployments prompt() diff --git a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD index 64bbbe59b..132295031 100644 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD +++ b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1: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/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go index 9a536c99e..490fc4155 100644 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go +++ b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *externalAdmissionHookConfigurationLister) List(selector labels.Selector // Get retrieves the ExternalAdmissionHookConfiguration from the index for a given name. func (s *externalAdmissionHookConfigurationLister) Get(name string) (*v1alpha1.ExternalAdmissionHookConfiguration, error) { - key := &v1alpha1.ExternalAdmissionHookConfiguration{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go index a19d20807..60b004ef9 100644 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go +++ b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *initializerConfigurationLister) List(selector labels.Selector) (ret []* // Get retrieves the InitializerConfiguration from the index for a given name. func (s *initializerConfigurationLister) Get(name string) (*v1alpha1.InitializerConfiguration, error) { - key := &v1alpha1.InitializerConfiguration{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/authentication/v1/BUILD b/vendor/k8s.io/client-go/listers/authentication/v1/BUILD index 09e46ffea..18c90f1d3 100644 --- a/vendor/k8s.io/client-go/listers/authentication/v1/BUILD +++ b/vendor/k8s.io/client-go/listers/authentication/v1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/authentication/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/authentication/v1/tokenreview.go b/vendor/k8s.io/client-go/listers/authentication/v1/tokenreview.go index deea23293..cfae0476f 100644 --- a/vendor/k8s.io/client-go/listers/authentication/v1/tokenreview.go +++ b/vendor/k8s.io/client-go/listers/authentication/v1/tokenreview.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/authentication/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *tokenReviewLister) List(selector labels.Selector) (ret []*v1.TokenRevie // Get retrieves the TokenReview from the index for a given name. func (s *tokenReviewLister) Get(name string) (*v1.TokenReview, error) { - key := &v1.TokenReview{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/authentication/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/authentication/v1beta1/BUILD index 7838effea..45a7b02eb 100644 --- a/vendor/k8s.io/client-go/listers/authentication/v1beta1/BUILD +++ b/vendor/k8s.io/client-go/listers/authentication/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/authentication/v1beta1: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/authentication/v1beta1/tokenreview.go b/vendor/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go index ec62c1f2e..035ad62da 100644 --- a/vendor/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go +++ b/vendor/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/authentication/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *tokenReviewLister) List(selector labels.Selector) (ret []*v1beta1.Token // Get retrieves the TokenReview from the index for a given name. func (s *tokenReviewLister) Get(name string) (*v1beta1.TokenReview, error) { - key := &v1beta1.TokenReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/authorization/v1/BUILD b/vendor/k8s.io/client-go/listers/authorization/v1/BUILD index e9f892806..dbea6dcc2 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1/BUILD +++ b/vendor/k8s.io/client-go/listers/authorization/v1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/authorization/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/authorization/v1/selfsubjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go index 108a37b49..64ff1744b 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/authorization/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *selfSubjectAccessReviewLister) List(selector labels.Selector) (ret []*v // Get retrieves the SelfSubjectAccessReview from the index for a given name. func (s *selfSubjectAccessReviewLister) Get(name string) (*v1.SelfSubjectAccessReview, error) { - key := &v1.SelfSubjectAccessReview{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go b/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go index b654974b4..63ad0f1ff 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/authorization/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *selfSubjectRulesReviewLister) List(selector labels.Selector) (ret []*v1 // Get retrieves the SelfSubjectRulesReview from the index for a given name. func (s *selfSubjectRulesReviewLister) Get(name string) (*v1.SelfSubjectRulesReview, error) { - key := &v1.SelfSubjectRulesReview{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go index 8a701e526..f389e07b1 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/authorization/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *subjectAccessReviewLister) List(selector labels.Selector) (ret []*v1.Su // Get retrieves the SubjectAccessReview from the index for a given name. func (s *subjectAccessReviewLister) Get(name string) (*v1.SubjectAccessReview, error) { - key := &v1.SubjectAccessReview{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/authorization/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/authorization/v1beta1/BUILD index 63d0b70b9..665642706 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/BUILD +++ b/vendor/k8s.io/client-go/listers/authorization/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/authorization/v1beta1: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/authorization/v1beta1/selfsubjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go index 1f2a42113..4936b9b6c 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/authorization/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *selfSubjectAccessReviewLister) List(selector labels.Selector) (ret []*v // Get retrieves the SelfSubjectAccessReview from the index for a given name. func (s *selfSubjectAccessReviewLister) Get(name string) (*v1beta1.SelfSubjectAccessReview, error) { - key := &v1beta1.SelfSubjectAccessReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go b/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go index 8c775961a..8eb7a21b5 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/authorization/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *selfSubjectRulesReviewLister) List(selector labels.Selector) (ret []*v1 // Get retrieves the SelfSubjectRulesReview from the index for a given name. func (s *selfSubjectRulesReviewLister) Get(name string) (*v1beta1.SelfSubjectRulesReview, error) { - key := &v1beta1.SelfSubjectRulesReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go index f994f3a1b..4b155de15 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/authorization/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *subjectAccessReviewLister) List(selector labels.Selector) (ret []*v1bet // Get retrieves the SubjectAccessReview from the index for a given name. func (s *subjectAccessReviewLister) Get(name string) (*v1beta1.SubjectAccessReview, error) { - key := &v1beta1.SubjectAccessReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/certificates/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/certificates/v1beta1/BUILD index 2e40008b6..b7ca4270c 100644 --- a/vendor/k8s.io/client-go/listers/certificates/v1beta1/BUILD +++ b/vendor/k8s.io/client-go/listers/certificates/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/certificates/v1beta1: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/certificates/v1beta1/certificatesigningrequest.go b/vendor/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go index 62af289b2..425dc6b4d 100644 --- a/vendor/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go +++ b/vendor/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/certificates/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *certificateSigningRequestLister) List(selector labels.Selector) (ret [] // Get retrieves the CertificateSigningRequest from the index for a given name. func (s *certificateSigningRequestLister) Get(name string) (*v1beta1.CertificateSigningRequest, error) { - key := &v1beta1.CertificateSigningRequest{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/core/v1/BUILD b/vendor/k8s.io/client-go/listers/core/v1/BUILD index adc506198..313cdc299 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/BUILD +++ b/vendor/k8s.io/client-go/listers/core/v1/BUILD @@ -33,7 +33,6 @@ go_library( deps = [ "//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/core/v1/componentstatus.go b/vendor/k8s.io/client-go/listers/core/v1/componentstatus.go index a612a544c..6ba67d0bd 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/componentstatus.go +++ b/vendor/k8s.io/client-go/listers/core/v1/componentstatus.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *componentStatusLister) List(selector labels.Selector) (ret []*v1.Compon // Get retrieves the ComponentStatus from the index for a given name. func (s *componentStatusLister) Get(name string) (*v1.ComponentStatus, error) { - key := &v1.ComponentStatus{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/core/v1/namespace.go b/vendor/k8s.io/client-go/listers/core/v1/namespace.go index 9b184f71c..21be6878a 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/namespace.go +++ b/vendor/k8s.io/client-go/listers/core/v1/namespace.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *namespaceLister) List(selector labels.Selector) (ret []*v1.Namespace, e // Get retrieves the Namespace from the index for a given name. func (s *namespaceLister) Get(name string) (*v1.Namespace, error) { - key := &v1.Namespace{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/core/v1/node.go b/vendor/k8s.io/client-go/listers/core/v1/node.go index 24a01fbdd..d43a682c9 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/node.go +++ b/vendor/k8s.io/client-go/listers/core/v1/node.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *nodeLister) List(selector labels.Selector) (ret []*v1.Node, err error) // Get retrieves the Node from the index for a given name. func (s *nodeLister) Get(name string) (*v1.Node, error) { - key := &v1.Node{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/core/v1/persistentvolume.go b/vendor/k8s.io/client-go/listers/core/v1/persistentvolume.go index ea2f79dd7..593ba14ed 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/persistentvolume.go +++ b/vendor/k8s.io/client-go/listers/core/v1/persistentvolume.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *persistentVolumeLister) List(selector labels.Selector) (ret []*v1.Persi // Get retrieves the PersistentVolume from the index for a given name. func (s *persistentVolumeLister) Get(name string) (*v1.PersistentVolume, error) { - key := &v1.PersistentVolume{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go index da47dbb52..3189ff7c9 100644 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *podSecurityPolicyLister) List(selector labels.Selector) (ret []*v1beta1 // Get retrieves the PodSecurityPolicy from the index for a given name. func (s *podSecurityPolicyLister) Get(name string) (*v1beta1.PodSecurityPolicy, error) { - key := &v1beta1.PodSecurityPolicy{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/thirdpartyresource.go b/vendor/k8s.io/client-go/listers/extensions/v1beta1/thirdpartyresource.go index 3cd699a86..9cc5a6ea0 100644 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/thirdpartyresource.go +++ b/vendor/k8s.io/client-go/listers/extensions/v1beta1/thirdpartyresource.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *thirdPartyResourceLister) List(selector labels.Selector) (ret []*v1beta // Get retrieves the ThirdPartyResource from the index for a given name. func (s *thirdPartyResourceLister) Get(name string) (*v1beta1.ThirdPartyResource, error) { - key := &v1beta1.ThirdPartyResource{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD index bef22aaf1..da825e6a5 100644 --- a/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD +++ b/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/imagepolicy/v1alpha1: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/imagepolicy/v1alpha1/imagereview.go b/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go index ee8c19f12..8ffd9d05f 100644 --- a/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go +++ b/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/imagepolicy/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *imageReviewLister) List(selector labels.Selector) (ret []*v1alpha1.Imag // Get retrieves the ImageReview from the index for a given name. func (s *imageReviewLister) Get(name string) (*v1alpha1.ImageReview, error) { - key := &v1alpha1.ImageReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/rbac/v1/BUILD b/vendor/k8s.io/client-go/listers/rbac/v1/BUILD index a046b68ee..9facdc04d 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1/BUILD +++ b/vendor/k8s.io/client-go/listers/rbac/v1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/rbac/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/rbac/v1/clusterrole.go b/vendor/k8s.io/client-go/listers/rbac/v1/clusterrole.go index f95d063be..5dc9a225e 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1/clusterrole.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1/clusterrole.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleLister) List(selector labels.Selector) (ret []*v1.ClusterRol // Get retrieves the ClusterRole from the index for a given name. func (s *clusterRoleLister) Get(name string) (*v1.ClusterRole, error) { - key := &v1.ClusterRole{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go b/vendor/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go index cce8a0f48..bb3186a06 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*v1.Clu // Get retrieves the ClusterRoleBinding from the index for a given name. func (s *clusterRoleBindingLister) Get(name string) (*v1.ClusterRoleBinding, error) { - key := &v1.ClusterRoleBinding{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/BUILD index 3501bfbb4..917c535fc 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/BUILD +++ b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/rbac/v1alpha1: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/rbac/v1alpha1/clusterrole.go b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go index 21adfb351..9e20a6d16 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/rbac/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleLister) List(selector labels.Selector) (ret []*v1alpha1.Clus // Get retrieves the ClusterRole from the index for a given name. func (s *clusterRoleLister) Get(name string) (*v1alpha1.ClusterRole, error) { - key := &v1alpha1.ClusterRole{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go index 5c1b93a77..155666aba 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/rbac/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*v1alph // Get retrieves the ClusterRoleBinding from the index for a given name. func (s *clusterRoleBindingLister) Get(name string) (*v1alpha1.ClusterRoleBinding, error) { - key := &v1alpha1.ClusterRoleBinding{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/rbac/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/rbac/v1beta1/BUILD index babebd826..bde3d52e8 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1beta1/BUILD +++ b/vendor/k8s.io/client-go/listers/rbac/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/rbac/v1beta1: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/rbac/v1beta1/clusterrole.go b/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go index 4e759c494..65ec3eb97 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/rbac/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleLister) List(selector labels.Selector) (ret []*v1beta1.Clust // Get retrieves the ClusterRole from the index for a given name. func (s *clusterRoleLister) Get(name string) (*v1beta1.ClusterRole, error) { - key := &v1beta1.ClusterRole{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go b/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go index 6781ac60e..146f2d7f2 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/rbac/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*v1beta // Get retrieves the ClusterRoleBinding from the index for a given name. func (s *clusterRoleBindingLister) Get(name string) (*v1beta1.ClusterRoleBinding, error) { - key := &v1beta1.ClusterRoleBinding{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD index c076382da..cf60e8132 100644 --- a/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD +++ b/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/scheduling/v1alpha1: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/scheduling/v1alpha1/priorityclass.go b/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go index 67b6864e7..9ed04fd2a 100644 --- a/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go +++ b/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/scheduling/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *priorityClassLister) List(selector labels.Selector) (ret []*v1alpha1.Pr // Get retrieves the PriorityClass from the index for a given name. func (s *priorityClassLister) Get(name string) (*v1alpha1.PriorityClass, error) { - key := &v1alpha1.PriorityClass{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/storage/v1/BUILD b/vendor/k8s.io/client-go/listers/storage/v1/BUILD index ed6bb7981..b90f06bb7 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1/BUILD +++ b/vendor/k8s.io/client-go/listers/storage/v1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/storage/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/storage/v1/storageclass.go b/vendor/k8s.io/client-go/listers/storage/v1/storageclass.go index 09e659438..7c37321fd 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1/storageclass.go +++ b/vendor/k8s.io/client-go/listers/storage/v1/storageclass.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/storage/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *storageClassLister) List(selector labels.Selector) (ret []*v1.StorageCl // Get retrieves the StorageClass from the index for a given name. func (s *storageClassLister) Get(name string) (*v1.StorageClass, error) { - key := &v1.StorageClass{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/listers/storage/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/storage/v1beta1/BUILD index fbae43859..d4b82cbc8 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1beta1/BUILD +++ b/vendor/k8s.io/client-go/listers/storage/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/storage/v1beta1: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/storage/v1beta1/storageclass.go b/vendor/k8s.io/client-go/listers/storage/v1beta1/storageclass.go index 04efe5f8d..9253319be 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1beta1/storageclass.go +++ b/vendor/k8s.io/client-go/listers/storage/v1beta1/storageclass.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/storage/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *storageClassLister) List(selector labels.Selector) (ret []*v1beta1.Stor // Get retrieves the StorageClass from the index for a given name. func (s *storageClassLister) Get(name string) (*v1beta1.StorageClass, error) { - key := &v1beta1.StorageClass{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/rest/config.go b/vendor/k8s.io/client-go/rest/config.go index 57848c8a7..038fee945 100644 --- a/vendor/k8s.io/client-go/rest/config.go +++ b/vendor/k8s.io/client-go/rest/config.go @@ -420,5 +420,45 @@ func AnonymousClientConfig(config *Config) *Config { QPS: config.QPS, Burst: config.Burst, Timeout: config.Timeout, + Dial: config.Dial, + } +} + +// CopyConfig returns a copy of the given config +func CopyConfig(config *Config) *Config { + return &Config{ + Host: config.Host, + APIPath: config.APIPath, + Prefix: config.Prefix, + ContentConfig: config.ContentConfig, + Username: config.Username, + Password: config.Password, + BearerToken: config.BearerToken, + CacheDir: config.CacheDir, + Impersonate: ImpersonationConfig{ + Groups: config.Impersonate.Groups, + Extra: config.Impersonate.Extra, + UserName: config.Impersonate.UserName, + }, + AuthProvider: config.AuthProvider, + AuthConfigPersister: config.AuthConfigPersister, + TLSClientConfig: TLSClientConfig{ + Insecure: config.TLSClientConfig.Insecure, + ServerName: config.TLSClientConfig.ServerName, + CertFile: config.TLSClientConfig.CertFile, + KeyFile: config.TLSClientConfig.KeyFile, + CAFile: config.TLSClientConfig.CAFile, + CertData: config.TLSClientConfig.CertData, + KeyData: config.TLSClientConfig.KeyData, + CAData: config.TLSClientConfig.CAData, + }, + UserAgent: config.UserAgent, + Transport: config.Transport, + WrapTransport: config.WrapTransport, + QPS: config.QPS, + Burst: config.Burst, + RateLimiter: config.RateLimiter, + Timeout: config.Timeout, + Dial: config.Dial, } } diff --git a/vendor/k8s.io/client-go/rest/config_test.go b/vendor/k8s.io/client-go/rest/config_test.go index ff851e6ad..0e86442db 100644 --- a/vendor/k8s.io/client-go/rest/config_test.go +++ b/vendor/k8s.io/client-go/rest/config_test.go @@ -35,6 +35,8 @@ import ( clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/util/flowcontrol" + "errors" + "github.com/stretchr/testify/assert" ) @@ -206,6 +208,19 @@ func (n *fakeNegotiatedSerializer) DecoderToVersion(serializer runtime.Decoder, return &fakeCodec{} } +var fakeDialFunc = func(network, addr string) (net.Conn, error) { + return nil, fakeDialerError +} +var fakeDialerError = errors.New("fakedialer") + +type fakeAuthProviderConfigPersister struct{} + +func (fakeAuthProviderConfigPersister) Persist(map[string]string) error { + return fakeAuthProviderConfigPersisterError +} + +var fakeAuthProviderConfigPersisterError = errors.New("fakeAuthProviderConfigPersisterError") + func TestAnonymousConfig(t *testing.T) { f := fuzz.New().NilChance(0.0).NumElements(1, 1) f.Funcs( @@ -268,9 +283,94 @@ func TestAnonymousConfig(t *testing.T) { actual.WrapTransport = nil expected.WrapTransport = nil } + if actual.Dial != nil { + _, actualError := actual.Dial("", "") + _, expectedError := actual.Dial("", "") + if !reflect.DeepEqual(expectedError, actualError) { + t.Fatalf("CopyConfig dropped the Dial field") + } + } else { + actual.Dial = nil + expected.Dial = nil + } if !reflect.DeepEqual(*actual, expected) { t.Fatalf("AnonymousClientConfig dropped unexpected fields, identify whether they are security related or not: %s", diff.ObjectGoPrintDiff(expected, actual)) } } } + +func TestCopyConfig(t *testing.T) { + f := fuzz.New().NilChance(0.0).NumElements(1, 1) + f.Funcs( + func(r *runtime.Codec, f fuzz.Continue) { + codec := &fakeCodec{} + f.Fuzz(codec) + *r = codec + }, + func(r *http.RoundTripper, f fuzz.Continue) { + roundTripper := &fakeRoundTripper{} + f.Fuzz(roundTripper) + *r = roundTripper + }, + func(fn *func(http.RoundTripper) http.RoundTripper, f fuzz.Continue) { + *fn = fakeWrapperFunc + }, + func(r *runtime.NegotiatedSerializer, f fuzz.Continue) { + serializer := &fakeNegotiatedSerializer{} + f.Fuzz(serializer) + *r = serializer + }, + func(r *flowcontrol.RateLimiter, f fuzz.Continue) { + limiter := &fakeLimiter{} + f.Fuzz(limiter) + *r = limiter + }, + func(r *AuthProviderConfigPersister, f fuzz.Continue) { + *r = fakeAuthProviderConfigPersister{} + }, + func(r *func(network, addr string) (net.Conn, error), f fuzz.Continue) { + *r = fakeDialFunc + }, + ) + for i := 0; i < 20; i++ { + original := &Config{} + f.Fuzz(original) + actual := CopyConfig(original) + expected := *original + + // this is the list of known risky fields, add to this list if a new field + // is added to Config, update CopyConfig to preserve the field otherwise. + + // The DeepEqual cannot handle the func comparison, so we just verify if the + // function return the expected object. + if actual.WrapTransport == nil || !reflect.DeepEqual(expected.WrapTransport(nil), &fakeRoundTripper{}) { + t.Fatalf("CopyConfig dropped the WrapTransport field") + } else { + actual.WrapTransport = nil + expected.WrapTransport = nil + } + if actual.Dial != nil { + _, actualError := actual.Dial("", "") + _, expectedError := actual.Dial("", "") + if !reflect.DeepEqual(expectedError, actualError) { + t.Fatalf("CopyConfig dropped the Dial field") + } + } + actual.Dial = nil + expected.Dial = nil + if actual.AuthConfigPersister != nil { + actualError := actual.AuthConfigPersister.Persist(nil) + expectedError := actual.AuthConfigPersister.Persist(nil) + if !reflect.DeepEqual(expectedError, actualError) { + t.Fatalf("CopyConfig dropped the Dial field") + } + } + actual.AuthConfigPersister = nil + expected.AuthConfigPersister = nil + + if !reflect.DeepEqual(*actual, expected) { + t.Fatalf("CopyConfig dropped unexpected fields, identify whether they are security related or not: %s", diff.ObjectReflectDiff(expected, *actual)) + } + } +} diff --git a/vendor/k8s.io/client-go/rest/fake/BUILD b/vendor/k8s.io/client-go/rest/fake/BUILD index 524701f1e..e511b207a 100644 --- a/vendor/k8s.io/client-go/rest/fake/BUILD +++ b/vendor/k8s.io/client-go/rest/fake/BUILD @@ -10,7 +10,6 @@ go_library( srcs = ["fake.go"], importpath = "k8s.io/client-go/rest/fake", deps = [ - "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/client-go/rest/fake/fake.go b/vendor/k8s.io/client-go/rest/fake/fake.go index 2e1bc55a9..db2c01c71 100644 --- a/vendor/k8s.io/client-go/rest/fake/fake.go +++ b/vendor/k8s.io/client-go/rest/fake/fake.go @@ -22,7 +22,6 @@ import ( "net/http" "net/url" - "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" @@ -46,8 +45,7 @@ func (f roundTripperFunc) RoundTrip(req *http.Request) (*http.Response, error) { type RESTClient struct { Client *http.Client NegotiatedSerializer runtime.NegotiatedSerializer - GroupName string - APIRegistry *registered.APIRegistrationManager + GroupVersion schema.GroupVersion VersionedAPIPath string Req *http.Request @@ -80,7 +78,7 @@ func (c *RESTClient) Verb(verb string) *restclient.Request { } func (c *RESTClient) APIVersion() schema.GroupVersion { - return c.APIRegistry.GroupOrDie("").GroupVersion + return c.GroupVersion } func (c *RESTClient) GetRateLimiter() flowcontrol.RateLimiter { @@ -89,22 +87,20 @@ func (c *RESTClient) GetRateLimiter() flowcontrol.RateLimiter { func (c *RESTClient) request(verb string) *restclient.Request { config := restclient.ContentConfig{ - ContentType: runtime.ContentTypeJSON, - // TODO this was hardcoded before, but it doesn't look right - GroupVersion: &c.APIRegistry.GroupOrDie("").GroupVersion, + ContentType: runtime.ContentTypeJSON, + GroupVersion: &c.GroupVersion, NegotiatedSerializer: c.NegotiatedSerializer, } ns := c.NegotiatedSerializer info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON) internalVersion := schema.GroupVersion{ - Group: c.APIRegistry.GroupOrDie(c.GroupName).GroupVersion.Group, + Group: c.GroupVersion.Group, Version: runtime.APIVersionInternal, } - internalVersion.Version = runtime.APIVersionInternal serializers := restclient.Serializers{ // TODO this was hardcoded before, but it doesn't look right - Encoder: ns.EncoderForVersion(info.Serializer, c.APIRegistry.GroupOrDie("").GroupVersion), + Encoder: ns.EncoderForVersion(info.Serializer, c.GroupVersion), Decoder: ns.DecoderToVersion(info.Serializer, internalVersion), } if info.StreamSerializer != nil { diff --git a/vendor/k8s.io/client-go/rest/url_utils.go b/vendor/k8s.io/client-go/rest/url_utils.go index 14f94650a..a56d1838d 100644 --- a/vendor/k8s.io/client-go/rest/url_utils.go +++ b/vendor/k8s.io/client-go/rest/url_utils.go @@ -56,6 +56,14 @@ func DefaultServerURL(host, apiPath string, groupVersion schema.GroupVersion, de // hostURL.Path should be blank. // // versionedAPIPath, a path relative to baseURL.Path, points to a versioned API base + versionedAPIPath := DefaultVersionedAPIPath(apiPath, groupVersion) + + return hostURL, versionedAPIPath, nil +} + +// DefaultVersionedAPIPathFor constructs the default path for the given group version, assuming the given +// API path, following the standard conventions of the Kubernetes API. +func DefaultVersionedAPIPath(apiPath string, groupVersion schema.GroupVersion) string { versionedAPIPath := path.Join("/", apiPath) // Add the version to the end of the path @@ -64,10 +72,9 @@ func DefaultServerURL(host, apiPath string, groupVersion schema.GroupVersion, de } else { versionedAPIPath = path.Join(versionedAPIPath, groupVersion.Version) - } - return hostURL, versionedAPIPath, nil + return versionedAPIPath } // defaultServerUrlFor is shared between IsConfigTransportTLS and RESTClientFor. It diff --git a/vendor/k8s.io/client-go/scale/BUILD b/vendor/k8s.io/client-go/scale/BUILD new file mode 100644 index 000000000..e3b3cac1a --- /dev/null +++ b/vendor/k8s.io/client-go/scale/BUILD @@ -0,0 +1,73 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "doc.go", + "interfaces.go", + "util.go", + ], + importpath = "k8s.io/client-go/scale", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/dynamic:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme/autoscalingv1:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme/extensionsint:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = [ + "client_test.go", + "roundtrip_test.go", + ], + importpath = "k8s.io/client-go/scale", + library = ":go_default_library", + deps = [ + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/k8s.io/api/apps/v1beta2:go_default_library", + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip: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", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/discovery/fake:go_default_library", + "//vendor/k8s.io/client-go/dynamic:go_default_library", + "//vendor/k8s.io/client-go/rest/fake:go_default_library", + "//vendor/k8s.io/client-go/testing: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/scale/fake:all-srcs", + "//staging/src/k8s.io/client-go/scale/scheme:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/client-go/scale/client.go b/vendor/k8s.io/client-go/scale/client.go new file mode 100644 index 000000000..3f85197a0 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/client.go @@ -0,0 +1,197 @@ +/* +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 scale + +import ( + "fmt" + + autoscaling "k8s.io/api/autoscaling/v1" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/dynamic" + restclient "k8s.io/client-go/rest" +) + +var scaleConverter = NewScaleConverter() +var codecs = serializer.NewCodecFactory(scaleConverter.Scheme()) + +// restInterfaceProvider turns a restclient.Config into a restclient.Interface. +// It's overridable for the purposes of testing. +type restInterfaceProvider func(*restclient.Config) (restclient.Interface, error) + +// scaleClient is an implementation of ScalesGetter +// which makes use of a RESTMapper and a generic REST +// client to support an discoverable resource. +// It behaves somewhat similarly to the dynamic ClientPool, +// but is more specifically scoped to Scale. +type scaleClient struct { + mapper meta.RESTMapper + + apiPathResolverFunc dynamic.APIPathResolverFunc + scaleKindResolver ScaleKindResolver + clientBase restclient.Interface +} + +// NewForConfig creates a new ScalesGetter which resolves kinds +// to resources using the given RESTMapper, and API paths using +// the given dynamic.APIPathResolverFunc. +func NewForConfig(cfg *restclient.Config, mapper meta.RESTMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) (ScalesGetter, error) { + // so that the RESTClientFor doesn't complain + cfg.GroupVersion = &schema.GroupVersion{} + + cfg.NegotiatedSerializer = serializer.DirectCodecFactory{ + CodecFactory: codecs, + } + if len(cfg.UserAgent) == 0 { + cfg.UserAgent = restclient.DefaultKubernetesUserAgent() + } + + client, err := restclient.RESTClientFor(cfg) + if err != nil { + return nil, err + } + + return New(client, mapper, resolver, scaleKindResolver), nil +} + +// New creates a new ScalesGetter using the given client to make requests. +// The GroupVersion on the client is ignored. +func New(baseClient restclient.Interface, mapper meta.RESTMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) ScalesGetter { + return &scaleClient{ + mapper: mapper, + + apiPathResolverFunc: resolver, + scaleKindResolver: scaleKindResolver, + clientBase: baseClient, + } +} + +// pathAndVersionFor returns the appropriate base path and the associated full GroupVersionResource +// for the given GroupResource +func (c *scaleClient) pathAndVersionFor(resource schema.GroupResource) (string, schema.GroupVersionResource, error) { + gvr, err := c.mapper.ResourceFor(resource.WithVersion("")) + if err != nil { + return "", gvr, fmt.Errorf("unable to get full preferred group-version-resource for %s: %v", resource.String(), err) + } + + groupVer := gvr.GroupVersion() + + // we need to set the API path based on GroupVersion (defaulting to the legacy path if none is set) + // TODO: we "cheat" here since the API path really only depends on group ATM, but this should + // *probably* take GroupVersionResource and not GroupVersionKind. + apiPath := c.apiPathResolverFunc(groupVer.WithKind("")) + if apiPath == "" { + apiPath = "/api" + } + + path := restclient.DefaultVersionedAPIPath(apiPath, groupVer) + + return path, gvr, nil +} + +// namespacedScaleClient is an ScaleInterface for fetching +// Scales in a given namespace. +type namespacedScaleClient struct { + client *scaleClient + namespace string +} + +func (c *scaleClient) Scales(namespace string) ScaleInterface { + return &namespacedScaleClient{ + client: c, + namespace: namespace, + } +} + +func (c *namespacedScaleClient) Get(resource schema.GroupResource, name string) (*autoscaling.Scale, error) { + // Currently, a /scale endpoint can return different scale types. + // Until we have support for the alternative API representations proposal, + // we need to deal with accepting different API versions. + // In practice, this is autoscaling/v1.Scale and extensions/v1beta1.Scale + + path, gvr, err := c.client.pathAndVersionFor(resource) + if err != nil { + return nil, fmt.Errorf("unable to get client for %s: %v", resource.String(), err) + } + + rawObj, err := c.client.clientBase.Get(). + AbsPath(path). + Namespace(c.namespace). + Resource(gvr.Resource). + Name(name). + SubResource("scale"). + Do(). + Get() + + if err != nil { + return nil, err + } + + // convert whatever this is to autoscaling/v1.Scale + scaleObj, err := scaleConverter.ConvertToVersion(rawObj, autoscaling.SchemeGroupVersion) + if err != nil { + return nil, fmt.Errorf("received an object from a /scale endpoint which was not convertible to autoscaling Scale: %v", err) + } + + return scaleObj.(*autoscaling.Scale), nil +} + +func (c *namespacedScaleClient) Update(resource schema.GroupResource, scale *autoscaling.Scale) (*autoscaling.Scale, error) { + path, gvr, err := c.client.pathAndVersionFor(resource) + if err != nil { + return nil, fmt.Errorf("unable to get client for %s: %v", resource.String(), err) + } + + // Currently, a /scale endpoint can receive and return different scale types. + // Until we hvae support for the alternative API representations proposal, + // we need to deal with sending and accepting differnet API versions. + + // figure out what scale we actually need here + desiredGVK, err := c.client.scaleKindResolver.ScaleForResource(gvr) + if err != nil { + return nil, fmt.Errorf("could not find proper group-version for scale subresource of %s: %v", gvr.String(), err) + } + + // convert this to whatever this endpoint wants + scaleUpdate, err := scaleConverter.ConvertToVersion(scale, desiredGVK.GroupVersion()) + if err != nil { + return nil, fmt.Errorf("could not convert scale update to internal Scale: %v", err) + } + + rawObj, err := c.client.clientBase.Put(). + AbsPath(path). + Namespace(c.namespace). + Resource(gvr.Resource). + Name(scale.Name). + SubResource("scale"). + Body(scaleUpdate). + Do(). + Get() + + if err != nil { + return nil, fmt.Errorf("could not fetch the scale for %s %s: %v", resource.String(), scale.Name, err) + } + + // convert whatever this is back to autoscaling/v1.Scale + scaleObj, err := scaleConverter.ConvertToVersion(rawObj, autoscaling.SchemeGroupVersion) + if err != nil { + return nil, fmt.Errorf("received an object from a /scale endpoint which was not convertible to autoscaling Scale: %v", err) + } + + return scaleObj.(*autoscaling.Scale), err +} diff --git a/vendor/k8s.io/client-go/scale/client_test.go b/vendor/k8s.io/client-go/scale/client_test.go new file mode 100644 index 000000000..a10429c0d --- /dev/null +++ b/vendor/k8s.io/client-go/scale/client_test.go @@ -0,0 +1,246 @@ +/* +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 scale + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net/http" + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/discovery" + fakedisco "k8s.io/client-go/discovery/fake" + "k8s.io/client-go/dynamic" + fakerest "k8s.io/client-go/rest/fake" + + "github.com/stretchr/testify/assert" + appsv1beta2 "k8s.io/api/apps/v1beta2" + autoscalingv1 "k8s.io/api/autoscaling/v1" + corev1 "k8s.io/api/core/v1" + extv1beta1 "k8s.io/api/extensions/v1beta1" + apimeta "k8s.io/apimachinery/pkg/api/meta" + coretesting "k8s.io/client-go/testing" +) + +func bytesBody(bodyBytes []byte) io.ReadCloser { + return ioutil.NopCloser(bytes.NewReader(bodyBytes)) +} + +func defaultHeaders() http.Header { + header := http.Header{} + header.Set("Content-Type", runtime.ContentTypeJSON) + return header +} + +func fakeScaleClient(t *testing.T) (ScalesGetter, []schema.GroupResource) { + fakeDiscoveryClient := &fakedisco.FakeDiscovery{Fake: &coretesting.Fake{}} + fakeDiscoveryClient.Resources = []*metav1.APIResourceList{ + { + GroupVersion: corev1.SchemeGroupVersion.String(), + APIResources: []metav1.APIResource{ + {Name: "pods", Namespaced: true, Kind: "Pod"}, + {Name: "replicationcontrollers", Namespaced: true, Kind: "ReplicationController"}, + {Name: "replicationcontrollers/scale", Namespaced: true, Kind: "Scale", Group: "autoscaling", Version: "v1"}, + }, + }, + { + GroupVersion: extv1beta1.SchemeGroupVersion.String(), + APIResources: []metav1.APIResource{ + {Name: "replicasets", Namespaced: true, Kind: "ReplicaSet"}, + {Name: "replicasets/scale", Namespaced: true, Kind: "Scale"}, + }, + }, + { + GroupVersion: appsv1beta2.SchemeGroupVersion.String(), + APIResources: []metav1.APIResource{ + {Name: "deployments", Namespaced: true, Kind: "Deployment"}, + {Name: "deployments/scale", Namespaced: true, Kind: "Scale", Group: "autoscaling", Version: "v1"}, + }, + }, + // test a resource that doesn't exist anywere to make sure we're not accidentally depending + // on a static RESTMapper anywhere. + { + GroupVersion: "cheese.testing.k8s.io/v27alpha15", + APIResources: []metav1.APIResource{ + {Name: "cheddars", Namespaced: true, Kind: "Cheddar"}, + {Name: "cheddars/scale", Namespaced: true, Kind: "Scale", Group: "extensions", Version: "v1beta1"}, + }, + }, + } + + restMapperRes, err := discovery.GetAPIGroupResources(fakeDiscoveryClient) + if err != nil { + t.Fatalf("unexpected error while constructing resource list from fake discovery client: %v") + } + restMapper := discovery.NewRESTMapper(restMapperRes, apimeta.InterfacesForUnstructured) + + autoscalingScale := &autoscalingv1.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: autoscalingv1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: autoscalingv1.ScaleSpec{Replicas: 10}, + Status: autoscalingv1.ScaleStatus{ + Replicas: 10, + Selector: "foo=bar", + }, + } + extScale := &extv1beta1.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: extv1beta1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: extv1beta1.ScaleSpec{Replicas: 10}, + Status: extv1beta1.ScaleStatus{ + Replicas: 10, + TargetSelector: "foo=bar", + }, + } + + resourcePaths := map[string]runtime.Object{ + "/api/v1/namespaces/default/replicationcontrollers/foo/scale": autoscalingScale, + "/apis/extensions/v1beta1/namespaces/default/replicasets/foo/scale": extScale, + "/apis/apps/v1beta2/namespaces/default/deployments/foo/scale": autoscalingScale, + "/apis/cheese.testing.k8s.io/v27alpha15/namespaces/default/cheddars/foo/scale": extScale, + } + + fakeReqHandler := func(req *http.Request) (*http.Response, error) { + scale, isScalePath := resourcePaths[req.URL.Path] + if !isScalePath { + return nil, fmt.Errorf("unexpected request for URL %q with method %q", req.URL.String(), req.Method) + } + + switch req.Method { + case "GET": + res, err := json.Marshal(scale) + if err != nil { + return nil, err + } + return &http.Response{StatusCode: 200, Header: defaultHeaders(), Body: bytesBody(res)}, nil + case "PUT": + decoder := codecs.UniversalDeserializer() + body, err := ioutil.ReadAll(req.Body) + if err != nil { + return nil, err + } + newScale, newScaleGVK, err := decoder.Decode(body, nil, nil) + if err != nil { + return nil, fmt.Errorf("unexpected request body: %v", err) + } + if *newScaleGVK != scale.GetObjectKind().GroupVersionKind() { + return nil, fmt.Errorf("unexpected scale API version %s (expected %s)", newScaleGVK.String(), scale.GetObjectKind().GroupVersionKind().String()) + } + res, err := json.Marshal(newScale) + if err != nil { + return nil, err + } + return &http.Response{StatusCode: 200, Header: defaultHeaders(), Body: bytesBody(res)}, nil + default: + return nil, fmt.Errorf("unexpected request for URL %q with method %q", req.URL.String(), req.Method) + } + } + + fakeClient := &fakerest.RESTClient{ + Client: fakerest.CreateHTTPClient(fakeReqHandler), + NegotiatedSerializer: serializer.DirectCodecFactory{ + CodecFactory: codecs, + }, + GroupVersion: schema.GroupVersion{}, + VersionedAPIPath: "/not/a/real/path", + } + + resolver := NewDiscoveryScaleKindResolver(fakeDiscoveryClient) + client := New(fakeClient, restMapper, dynamic.LegacyAPIPathResolverFunc, resolver) + + groupResources := []schema.GroupResource{ + {Group: corev1.GroupName, Resource: "replicationcontroller"}, + {Group: extv1beta1.GroupName, Resource: "replicaset"}, + {Group: appsv1beta2.GroupName, Resource: "deployment"}, + {Group: "cheese.testing.k8s.io", Resource: "cheddar"}, + } + + return client, groupResources +} + +func TestGetScale(t *testing.T) { + scaleClient, groupResources := fakeScaleClient(t) + expectedScale := &autoscalingv1.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: autoscalingv1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: autoscalingv1.ScaleSpec{Replicas: 10}, + Status: autoscalingv1.ScaleStatus{ + Replicas: 10, + Selector: "foo=bar", + }, + } + + for _, groupResource := range groupResources { + scale, err := scaleClient.Scales("default").Get(groupResource, "foo") + if !assert.NoError(t, err, "should have been able to fetch a scale for %s", groupResource.String()) { + continue + } + assert.NotNil(t, scale, "should have returned a non-nil scale for %s", groupResource.String()) + + assert.Equal(t, expectedScale, scale, "should have returned the expected scale for %s", groupResource.String()) + } +} + +func TestUpdateScale(t *testing.T) { + scaleClient, groupResources := fakeScaleClient(t) + expectedScale := &autoscalingv1.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: autoscalingv1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: autoscalingv1.ScaleSpec{Replicas: 10}, + Status: autoscalingv1.ScaleStatus{ + Replicas: 10, + Selector: "foo=bar", + }, + } + + for _, groupResource := range groupResources { + scale, err := scaleClient.Scales("default").Update(groupResource, expectedScale) + if !assert.NoError(t, err, "should have been able to fetch a scale for %s", groupResource.String()) { + continue + } + assert.NotNil(t, scale, "should have returned a non-nil scale for %s", groupResource.String()) + + assert.Equal(t, expectedScale, scale, "should have returned the expected scale for %s", groupResource.String()) + } +} diff --git a/vendor/k8s.io/client-go/scale/doc.go b/vendor/k8s.io/client-go/scale/doc.go new file mode 100644 index 000000000..59fd39146 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/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. +*/ + +// Package scale provides a polymorphic scale client capable of fetching +// and updating Scale for any resource which implements the `scale` subresource, +// as long as that subresource operates on a version of scale convertable to +// autoscaling.Scale. +package scale diff --git a/vendor/k8s.io/client-go/scale/fake/BUILD b/vendor/k8s.io/client-go/scale/fake/BUILD new file mode 100644 index 000000000..8c9374305 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/fake/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["client.go"], + importpath = "k8s.io/client-go/scale/fake", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale:go_default_library", + "//vendor/k8s.io/client-go/testing: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/scale/fake/client.go b/vendor/k8s.io/client-go/scale/fake/client.go new file mode 100644 index 000000000..1736680f1 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/fake/client.go @@ -0,0 +1,67 @@ +/* +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 fake provides a fake client interface to arbitrary Kubernetes +// APIs that exposes common high level operations and exposes common +// metadata. +package fake + +import ( + autoscalingapi "k8s.io/api/autoscaling/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/scale" + "k8s.io/client-go/testing" +) + +// FakeScaleClient provides a fake implementation of scale.ScalesGetter. +type FakeScaleClient struct { + testing.Fake +} + +func (f *FakeScaleClient) Scales(namespace string) scale.ScaleInterface { + return &fakeNamespacedScaleClient{ + namespace: namespace, + fake: &f.Fake, + } +} + +type fakeNamespacedScaleClient struct { + namespace string + fake *testing.Fake +} + +func (f *fakeNamespacedScaleClient) Get(resource schema.GroupResource, name string) (*autoscalingapi.Scale, error) { + obj, err := f.fake. + Invokes(testing.NewGetSubresourceAction(resource.WithVersion(""), f.namespace, "scale", name), &autoscalingapi.Scale{}) + + if err != nil { + return nil, err + } + + return obj.(*autoscalingapi.Scale), err +} + +func (f *fakeNamespacedScaleClient) Update(resource schema.GroupResource, scale *autoscalingapi.Scale) (*autoscalingapi.Scale, error) { + obj, err := f.fake. + Invokes(testing.NewUpdateSubresourceAction(resource.WithVersion(""), f.namespace, "scale", scale), &autoscalingapi.Scale{}) + + if err != nil { + return nil, err + } + + return obj.(*autoscalingapi.Scale), err + +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/scale.go b/vendor/k8s.io/client-go/scale/interfaces.go similarity index 53% rename from vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/scale.go rename to vendor/k8s.io/client-go/scale/interfaces.go index ad1d91b01..4668c7417 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/scale.go +++ b/vendor/k8s.io/client-go/scale/interfaces.go @@ -14,33 +14,26 @@ See the License for the specific language governing permissions and limitations under the License. */ -package internalversion +package scale import ( - rest "k8s.io/client-go/rest" + autoscalingapi "k8s.io/api/autoscaling/v1" + "k8s.io/apimachinery/pkg/runtime/schema" ) -// ScalesGetter has a method to return a ScaleInterface. -// A group's client should implement this interface. +// ScalesGetter can produce a ScaleInterface +// for a particular namespace. type ScalesGetter interface { Scales(namespace string) ScaleInterface } -// ScaleInterface has methods to work with Scale resources. +// ScaleInterface can fetch and update scales for +// resources in a particular namespace which implement +// the scale subresource. type ScaleInterface interface { - ScaleExpansion -} - -// scales implements ScaleInterface -type scales struct { - client rest.Interface - ns string -} + // Get fetches the scale of the given scalable resource. + Get(resource schema.GroupResource, name string) (*autoscalingapi.Scale, error) -// newScales returns a Scales -func newScales(c *ExtensionsClient, namespace string) *scales { - return &scales{ - client: c.RESTClient(), - ns: namespace, - } + // Update updates the scale of the the given scalable resource. + Update(resource schema.GroupResource, scale *autoscalingapi.Scale) (*autoscalingapi.Scale, error) } diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/framework/util.go b/vendor/k8s.io/client-go/scale/roundtrip_test.go similarity index 58% rename from vendor/k8s.io/kubernetes/federation/test/integration/framework/util.go rename to vendor/k8s.io/client-go/scale/roundtrip_test.go index 6ce72607a..2ea288757 100644 --- a/vendor/k8s.io/kubernetes/federation/test/integration/framework/util.go +++ b/vendor/k8s.io/client-go/scale/roundtrip_test.go @@ -14,27 +14,21 @@ See the License for the specific language governing permissions and limitations under the License. */ -package framework +package scale import ( "testing" - "time" -) -const ( - DefaultWaitInterval = 50 * time.Millisecond + "k8s.io/apimachinery/pkg/api/testing/roundtrip" ) -// SetUp is likely to be fixture-specific, but TearDown needs to be -// consistent to enable TearDownOnPanic. -type TestFixture interface { - TearDown(t *testing.T) -} +// NB: this can't be in the scheme package, because importing' +// scheme/autoscalingv1 from scheme causes a depedency loop from +// conversions -// TearDownOnPanic can be used to ensure cleanup on setup failure. -func TearDownOnPanic(t *testing.T, f TestFixture) { - if r := recover(); r != nil { - f.TearDown(t) - panic(r) - } +func TestRoundTrip(t *testing.T) { + scheme := NewScaleConverter().Scheme() + // we don't actually need any custom fuzzer funcs ATM -- the defaults + // will do just fine + roundtrip.RoundTripTestForScheme(t, scheme, nil) } diff --git a/vendor/k8s.io/client-go/scale/scheme/BUILD b/vendor/k8s.io/client-go/scale/scheme/BUILD new file mode 100644 index 000000000..effa91419 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "register.go", + "types.go", + "zz_generated.deepcopy.go", + ], + importpath = "k8s.io/client-go/scale/scheme", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion: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", + "//staging/src/k8s.io/client-go/scale/scheme/autoscalingv1:all-srcs", + "//staging/src/k8s.io/client-go/scale/scheme/extensionsint:all-srcs", + "//staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD new file mode 100644 index 000000000..646a6fdf8 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "conversion.go", + "doc.go", + "register.go", + "zz_generated.conversion.go", + ], + importpath = "k8s.io/client-go/scale/scheme/autoscalingv1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme: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/scale/scheme/autoscalingv1/conversion.go b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/conversion.go new file mode 100644 index 000000000..a775bcc22 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/conversion.go @@ -0,0 +1,69 @@ +/* +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 autoscalingv1 + +import ( + "fmt" + + v1 "k8s.io/api/autoscaling/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +// addConversions registers conversions between the internal version +// of Scale and supported external versions of Scale. +func addConversionFuncs(scheme *runtime.Scheme) error { + err := scheme.AddConversionFuncs( + Convert_scheme_ScaleStatus_To_v1_ScaleStatus, + Convert_v1_ScaleStatus_To_scheme_ScaleStatus, + ) + if err != nil { + return err + } + + return nil +} + +func Convert_scheme_ScaleStatus_To_v1_ScaleStatus(in *scheme.ScaleStatus, out *v1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.Selector = "" + if in.Selector != nil { + selector, err := metav1.LabelSelectorAsSelector(in.Selector) + if err != nil { + return fmt.Errorf("invalid label selector: %v", err) + } + out.Selector = selector.String() + } + + return nil +} + +func Convert_v1_ScaleStatus_To_scheme_ScaleStatus(in *v1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + if in.Selector != "" { + labelSelector, err := metav1.ParseToLabelSelector(in.Selector) + if err != nil { + out.Selector = nil + return fmt.Errorf("failed to parse target selector: %v", err) + } + out.Selector = labelSelector + } + + return nil +} diff --git a/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go new file mode 100644 index 000000000..aff53e4c3 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go @@ -0,0 +1,20 @@ +/* +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:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme +// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/autoscaling/v1 + +package autoscalingv1 // import "k8s.io/client-go/scale/scheme/autoscalingv1" diff --git a/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/register.go b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/register.go new file mode 100644 index 000000000..b15701c4f --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/register.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. +*/ + +package autoscalingv1 + +import ( + autoscalingapiv1 "k8s.io/api/autoscaling/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = autoscalingapiv1.GroupName + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + localSchemeBuilder = &autoscalingapiv1.SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addConversionFuncs) +} diff --git a/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go new file mode 100644 index 000000000..1eaa0d180 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go @@ -0,0 +1,109 @@ +// +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 conversion-gen. Do not edit it manually! + +package autoscalingv1 + +import ( + v1 "k8s.io/api/autoscaling/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1_Scale_To_scheme_Scale, + Convert_scheme_Scale_To_v1_Scale, + Convert_v1_ScaleSpec_To_scheme_ScaleSpec, + Convert_scheme_ScaleSpec_To_v1_ScaleSpec, + Convert_v1_ScaleStatus_To_scheme_ScaleStatus, + Convert_scheme_ScaleStatus_To_v1_ScaleStatus, + ) +} + +func autoConvert_v1_Scale_To_scheme_Scale(in *v1.Scale, out *scheme.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_ScaleSpec_To_scheme_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_ScaleStatus_To_scheme_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_Scale_To_scheme_Scale is an autogenerated conversion function. +func Convert_v1_Scale_To_scheme_Scale(in *v1.Scale, out *scheme.Scale, s conversion.Scope) error { + return autoConvert_v1_Scale_To_scheme_Scale(in, out, s) +} + +func autoConvert_scheme_Scale_To_v1_Scale(in *scheme.Scale, out *v1.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_scheme_ScaleSpec_To_v1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_scheme_ScaleStatus_To_v1_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_scheme_Scale_To_v1_Scale is an autogenerated conversion function. +func Convert_scheme_Scale_To_v1_Scale(in *scheme.Scale, out *v1.Scale, s conversion.Scope) error { + return autoConvert_scheme_Scale_To_v1_Scale(in, out, s) +} + +func autoConvert_v1_ScaleSpec_To_scheme_ScaleSpec(in *v1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_v1_ScaleSpec_To_scheme_ScaleSpec is an autogenerated conversion function. +func Convert_v1_ScaleSpec_To_scheme_ScaleSpec(in *v1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1_ScaleSpec_To_scheme_ScaleSpec(in, out, s) +} + +func autoConvert_scheme_ScaleSpec_To_v1_ScaleSpec(in *scheme.ScaleSpec, out *v1.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_scheme_ScaleSpec_To_v1_ScaleSpec is an autogenerated conversion function. +func Convert_scheme_ScaleSpec_To_v1_ScaleSpec(in *scheme.ScaleSpec, out *v1.ScaleSpec, s conversion.Scope) error { + return autoConvert_scheme_ScaleSpec_To_v1_ScaleSpec(in, out, s) +} + +func autoConvert_v1_ScaleStatus_To_scheme_ScaleStatus(in *v1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + return nil +} + +func autoConvert_scheme_ScaleStatus_To_v1_ScaleStatus(in *scheme.ScaleStatus, out *v1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs string) + return nil +} diff --git a/vendor/k8s.io/client-go/scale/scheme/doc.go b/vendor/k8s.io/client-go/scale/scheme/doc.go new file mode 100644 index 000000000..8a050ce47 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/doc.go @@ -0,0 +1,22 @@ +/* +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,register + +// Package scheme contains a runtime.Scheme to be used for serializing +// and deserializing different versions of Scale, and for converting +// in between them. +package scheme diff --git a/vendor/k8s.io/client-go/scale/scheme/extensionsint/BUILD b/vendor/k8s.io/client-go/scale/scheme/extensionsint/BUILD new file mode 100644 index 000000000..6174a88b1 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/extensionsint/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "register.go", + ], + importpath = "k8s.io/client-go/scale/scheme/extensionsint", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme: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/scale/scheme/extensionsint/doc.go b/vendor/k8s.io/client-go/scale/scheme/extensionsint/doc.go new file mode 100644 index 000000000..cc92bf188 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/extensionsint/doc.go @@ -0,0 +1,22 @@ +/* +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 extensionsint contains the necessary scaffolding of the +// internal version of extensions as required by conversion logic. +// It doesn't have any of its own types -- it's just necessary to +// get the expected behavoir out of runtime.Scheme.ConvertToVersion +// and associated methods. +package extensionsint diff --git a/vendor/k8s.io/client-go/scale/scheme/extensionsint/register.go b/vendor/k8s.io/client-go/scale/scheme/extensionsint/register.go new file mode 100644 index 000000000..5a96ac561 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/extensionsint/register.go @@ -0,0 +1,53 @@ +/* +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 extensionsint + +import ( + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + scalescheme "k8s.io/client-go/scale/scheme" +) + +// GroupName is the group name use in this package +const GroupName = extensionsv1beta1.GroupName + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &scalescheme.Scale{}, + ) + return nil +} diff --git a/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD new file mode 100644 index 000000000..4c992c7d1 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "conversion.go", + "doc.go", + "register.go", + "zz_generated.conversion.go", + ], + importpath = "k8s.io/client-go/scale/scheme/extensionsv1beta1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme: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/scale/scheme/extensionsv1beta1/conversion.go b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/conversion.go new file mode 100644 index 000000000..1b6b9e610 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/conversion.go @@ -0,0 +1,87 @@ +/* +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 extensionsv1beta1 + +import ( + "fmt" + + v1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +// addConversions registers conversions between the internal version +// of Scale and supported external versions of Scale. +func addConversionFuncs(scheme *runtime.Scheme) error { + err := scheme.AddConversionFuncs( + Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus, + Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus, + ) + if err != nil { + return err + } + + return nil +} +func Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(in *scheme.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.Selector = nil + out.TargetSelector = "" + if in.Selector != nil { + if in.Selector.MatchExpressions == nil || len(in.Selector.MatchExpressions) == 0 { + out.Selector = in.Selector.MatchLabels + } + + selector, err := metav1.LabelSelectorAsSelector(in.Selector) + if err != nil { + return fmt.Errorf("invalid label selector: %v", err) + } + out.TargetSelector = selector.String() + } + + return nil +} + +func Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(in *v1beta1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + + // Normally when 2 fields map to the same internal value we favor the old field, since + // old clients can't be expected to know about new fields but clients that know about the + // new field can be expected to know about the old field (though that's not quite true, due + // to kubectl apply). However, these fields are readonly, so any non-nil value should work. + if in.TargetSelector != "" { + labelSelector, err := metav1.ParseToLabelSelector(in.TargetSelector) + if err != nil { + out.Selector = nil + return fmt.Errorf("failed to parse target selector: %v", err) + } + out.Selector = labelSelector + } else if in.Selector != nil { + out.Selector = new(metav1.LabelSelector) + selector := make(map[string]string) + for key, val := range in.Selector { + selector[key] = val + } + out.Selector.MatchLabels = selector + } else { + out.Selector = nil + } + + return nil +} diff --git a/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go new file mode 100644 index 000000000..40d0fc0e9 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go @@ -0,0 +1,20 @@ +/* +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:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme +// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/extensions/v1beta1 + +package extensionsv1beta1 // import "k8s.io/client-go/scale/scheme/extensionsv1beta1" diff --git a/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/register.go b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/register.go new file mode 100644 index 000000000..aed1174e0 --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/register.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. +*/ + +package extensionsv1beta1 + +import ( + extensionsapiv1beta1 "k8s.io/api/extensions/v1beta1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = extensionsapiv1beta1.GroupName + +// 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 ( + localSchemeBuilder = &extensionsapiv1beta1.SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addConversionFuncs) +} diff --git a/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go new file mode 100644 index 000000000..848cb8d2a --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go @@ -0,0 +1,110 @@ +// +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 conversion-gen. Do not edit it manually! + +package extensionsv1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1beta1_Scale_To_scheme_Scale, + Convert_scheme_Scale_To_v1beta1_Scale, + Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec, + Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec, + Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus, + Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus, + ) +} + +func autoConvert_v1beta1_Scale_To_scheme_Scale(in *v1beta1.Scale, out *scheme.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_Scale_To_scheme_Scale is an autogenerated conversion function. +func Convert_v1beta1_Scale_To_scheme_Scale(in *v1beta1.Scale, out *scheme.Scale, s conversion.Scope) error { + return autoConvert_v1beta1_Scale_To_scheme_Scale(in, out, s) +} + +func autoConvert_scheme_Scale_To_v1beta1_Scale(in *scheme.Scale, out *v1beta1.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_scheme_Scale_To_v1beta1_Scale is an autogenerated conversion function. +func Convert_scheme_Scale_To_v1beta1_Scale(in *scheme.Scale, out *v1beta1.Scale, s conversion.Scope) error { + return autoConvert_scheme_Scale_To_v1beta1_Scale(in, out, s) +} + +func autoConvert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(in *v1beta1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec is an autogenerated conversion function. +func Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(in *v1beta1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(in, out, s) +} + +func autoConvert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(in *scheme.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec is an autogenerated conversion function. +func Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(in *scheme.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + return autoConvert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(in, out, s) +} + +func autoConvert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(in *v1beta1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + // WARNING: in.TargetSelector requires manual conversion: does not exist in peer-type + return nil +} + +func autoConvert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(in *scheme.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs map[string]string) + return nil +} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/register.go b/vendor/k8s.io/client-go/scale/scheme/register.go similarity index 90% rename from vendor/k8s.io/kubernetes/federation/apis/federation/register.go rename to vendor/k8s.io/client-go/scale/scheme/register.go index 9fe9bfc86..7e6decfff 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/register.go +++ b/vendor/k8s.io/client-go/scale/scheme/register.go @@ -14,15 +14,16 @@ See the License for the specific language governing permissions and limitations under the License. */ -package federation +package scheme import ( + autoscalingv1 "k8s.io/api/autoscaling/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) // GroupName is the group name use in this package -const GroupName = "federation" +const GroupName = autoscalingv1.GroupName // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} @@ -42,10 +43,10 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) +// Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, - &Cluster{}, - &ClusterList{}, + &Scale{}, ) return nil } diff --git a/vendor/k8s.io/client-go/scale/scheme/types.go b/vendor/k8s.io/client-go/scale/scheme/types.go new file mode 100644 index 000000000..13aec2b3c --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/types.go @@ -0,0 +1,60 @@ +/* +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 scheme + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// This file contains our own "internal" version of scale that we use for conversions, +// since we can't use the main Kubernetes internal versions. + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Scale represents a scaling request for a resource. +type Scale struct { + metav1.TypeMeta + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. + // +optional + metav1.ObjectMeta + + // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. + // +optional + Spec ScaleSpec + + // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only. + // +optional + Status ScaleStatus +} + +// ScaleSpec describes the attributes of a scale subresource. +type ScaleSpec struct { + // desired number of instances for the scaled object. + // +optional + Replicas int32 +} + +// ScaleStatus represents the current status of a scale subresource. +type ScaleStatus struct { + // actual number of observed instances of the scaled object. + Replicas int32 + + // label query over pods that should match the replicas count. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + // +optional + Selector *metav1.LabelSelector +} diff --git a/vendor/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go b/vendor/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go new file mode 100644 index 000000000..ec9f5f95e --- /dev/null +++ b/vendor/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go @@ -0,0 +1,123 @@ +// +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 scheme + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + reflect "reflect" +) + +func init() { + SchemeBuilder.Register(RegisterDeepCopies) +} + +// RegisterDeepCopies adds deep-copy functions to the given scheme. Public +// to allow building arbitrary schemes. +// +// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. +func RegisterDeepCopies(scheme *runtime.Scheme) error { + return scheme.AddGeneratedDeepCopyFuncs( + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*Scale).DeepCopyInto(out.(*Scale)) + return nil + }, InType: reflect.TypeOf(&Scale{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ScaleSpec).DeepCopyInto(out.(*ScaleSpec)) + return nil + }, InType: reflect.TypeOf(&ScaleSpec{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ScaleStatus).DeepCopyInto(out.(*ScaleStatus)) + return nil + }, InType: reflect.TypeOf(&ScaleStatus{})}, + ) +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Scale) DeepCopyInto(out *Scale) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale. +func (in *Scale) DeepCopy() *Scale { + if in == nil { + return nil + } + out := new(Scale) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Scale) 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 *ScaleSpec) DeepCopyInto(out *ScaleSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec. +func (in *ScaleSpec) DeepCopy() *ScaleSpec { + if in == nil { + return nil + } + out := new(ScaleSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) { + *out = *in + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus. +func (in *ScaleStatus) DeepCopy() *ScaleStatus { + if in == nil { + return nil + } + out := new(ScaleStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/client-go/scale/util.go b/vendor/k8s.io/client-go/scale/util.go new file mode 100644 index 000000000..f5de4bc9a --- /dev/null +++ b/vendor/k8s.io/client-go/scale/util.go @@ -0,0 +1,159 @@ +/* +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 scale + +import ( + "fmt" + "strings" + "sync" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" + scalescheme "k8s.io/client-go/scale/scheme" + scaleautoscaling "k8s.io/client-go/scale/scheme/autoscalingv1" + scaleextint "k8s.io/client-go/scale/scheme/extensionsint" + scaleext "k8s.io/client-go/scale/scheme/extensionsv1beta1" +) + +// ScaleKindResolver knows about the relationship between +// resources and the GroupVersionKind of their scale subresources. +type ScaleKindResolver interface { + // ScaleForResource returns the GroupVersionKind of the + // scale subresource for the given GroupVersionResource. + ScaleForResource(resource schema.GroupVersionResource) (scaleVersion schema.GroupVersionKind, err error) +} + +// discoveryScaleResolver is a ScaleKindResolver that uses +// a DiscoveryInterface to associate resources with their +// scale-kinds +type discoveryScaleResolver struct { + discoveryClient discovery.ServerResourcesInterface +} + +func (r *discoveryScaleResolver) ScaleForResource(inputRes schema.GroupVersionResource) (scaleVersion schema.GroupVersionKind, err error) { + groupVerResources, err := r.discoveryClient.ServerResourcesForGroupVersion(inputRes.GroupVersion().String()) + if err != nil { + return schema.GroupVersionKind{}, fmt.Errorf("unable to fetch discovery information for %s: %v", inputRes.String(), err) + } + + for _, resource := range groupVerResources.APIResources { + resourceParts := strings.SplitN(resource.Name, "/", 2) + if len(resourceParts) != 2 || resourceParts[0] != inputRes.Resource || resourceParts[1] != "scale" { + // skip non-scale resources, or scales for resources that we're not looking for + continue + } + + scaleGV := inputRes.GroupVersion() + if resource.Group != "" && resource.Version != "" { + scaleGV = schema.GroupVersion{ + Group: resource.Group, + Version: resource.Version, + } + } + + return scaleGV.WithKind(resource.Kind), nil + } + + return schema.GroupVersionKind{}, fmt.Errorf("could not find scale subresource for %s in discovery information", inputRes.String()) +} + +// cachedScaleKindResolver is a ScaleKindResolver that caches results +// from another ScaleKindResolver, re-fetching on cache misses. +type cachedScaleKindResolver struct { + base ScaleKindResolver + + cache map[schema.GroupVersionResource]schema.GroupVersionKind + mu sync.RWMutex +} + +func (r *cachedScaleKindResolver) ScaleForResource(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) { + r.mu.RLock() + gvk, isCached := r.cache[resource] + r.mu.RUnlock() + if isCached { + return gvk, nil + } + + // we could have multiple fetches of the same resources, but that's probably + // better than limiting to only one reader at once (mu.Mutex), + // or blocking checks for other resources while we fetch + // (mu.Lock before fetch). + gvk, err := r.base.ScaleForResource(resource) + if err != nil { + return schema.GroupVersionKind{}, err + } + + r.mu.Lock() + defer r.mu.Unlock() + r.cache[resource] = gvk + + return gvk, nil +} + +// NewDiscoveryScaleKindResolver creates a new ScaleKindResolver which uses information from the given +// disovery client to resolve the correct Scale GroupVersionKind for different resources. +func NewDiscoveryScaleKindResolver(client discovery.ServerResourcesInterface) ScaleKindResolver { + base := &discoveryScaleResolver{ + discoveryClient: client, + } + + return &cachedScaleKindResolver{ + base: base, + cache: make(map[schema.GroupVersionResource]schema.GroupVersionKind), + } +} + +// ScaleConverter knows how to convert between external scale versions. +type ScaleConverter struct { + scheme *runtime.Scheme + internalVersioner runtime.GroupVersioner +} + +// NewScaleConverter creates a new ScaleConverter for converting between +// Scales in autoscaling/v1 and extensions/v1beta1. +func NewScaleConverter() *ScaleConverter { + scheme := runtime.NewScheme() + scaleautoscaling.AddToScheme(scheme) + scalescheme.AddToScheme(scheme) + scaleext.AddToScheme(scheme) + scaleextint.AddToScheme(scheme) + + return &ScaleConverter{ + scheme: scheme, + internalVersioner: runtime.NewMultiGroupVersioner( + scalescheme.SchemeGroupVersion, + schema.GroupKind{Group: scaleext.GroupName, Kind: "Scale"}, + schema.GroupKind{Group: scaleautoscaling.GroupName, Kind: "Scale"}, + ), + } +} + +// Scheme returns the scheme used by this scale converter. +func (c *ScaleConverter) Scheme() *runtime.Scheme { + return c.scheme +} + +// ConvertToVersion converts the given *external* input object to the given output *external* output group-version. +func (c *ScaleConverter) ConvertToVersion(in runtime.Object, outVersion schema.GroupVersion) (runtime.Object, error) { + scaleInt, err := c.scheme.ConvertToVersion(in, c.internalVersioner) + if err != nil { + return nil, err + } + + return c.scheme.ConvertToVersion(scaleInt, outVersion) +} diff --git a/vendor/k8s.io/client-go/tools/cache/fifo.go b/vendor/k8s.io/client-go/tools/cache/fifo.go index 3f6e2a948..ef70b7aca 100644 --- a/vendor/k8s.io/client-go/tools/cache/fifo.go +++ b/vendor/k8s.io/client-go/tools/cache/fifo.go @@ -169,7 +169,7 @@ func (f *FIFO) AddIfNotPresent(obj interface{}) error { return nil } -// addIfNotPresent assumes the fifo lock is already held and adds the the provided +// addIfNotPresent assumes the fifo lock is already held and adds the provided // item to the queue under id if it does not already exist. func (f *FIFO) addIfNotPresent(id string, obj interface{}) { f.populated = true diff --git a/vendor/k8s.io/client-go/tools/cache/listwatch.go b/vendor/k8s.io/client-go/tools/cache/listwatch.go index 454d50aad..db2329c55 100644 --- a/vendor/k8s.io/client-go/tools/cache/listwatch.go +++ b/vendor/k8s.io/client-go/tools/cache/listwatch.go @@ -25,6 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/pager" @@ -103,6 +104,8 @@ func (lw *ListWatch) Watch(options metav1.ListOptions) (watch.Interface, error) return lw.WatchFunc(options) } +// ListWatchUntil checks the provided conditions against the items returned by the list watcher, returning wait.ErrWaitTimeout +// if timeout is exceeded without all conditions returning true, or an error if an error occurs. // TODO: check for watch expired error and retry watch from latest point? Same issue exists for Until. func ListWatchUntil(timeout time.Duration, lw ListerWatcher, conditions ...watch.ConditionFunc) (*watch.Event, error) { if len(conditions) == 0 { @@ -166,5 +169,10 @@ func ListWatchUntil(timeout time.Duration, lw ListerWatcher, conditions ...watch return nil, err } - return watch.Until(timeout, watchInterface, remainingConditions...) + evt, err := watch.Until(timeout, watchInterface, remainingConditions...) + if err == watch.ErrWatchClosed { + // present a consistent error interface to callers + err = wait.ErrWaitTimeout + } + return evt, err } diff --git a/vendor/k8s.io/client-go/util/cert/io.go b/vendor/k8s.io/client-go/util/cert/io.go index 487456b69..a41f8054a 100644 --- a/vendor/k8s.io/client-go/util/cert/io.go +++ b/vendor/k8s.io/client-go/util/cert/io.go @@ -66,10 +66,7 @@ func WriteCert(certPath string, data []byte) error { if err := os.MkdirAll(filepath.Dir(certPath), os.FileMode(0755)); err != nil { return err } - if err := ioutil.WriteFile(certPath, data, os.FileMode(0644)); err != nil { - return err - } - return nil + return ioutil.WriteFile(certPath, data, os.FileMode(0644)) } // WriteKey writes the pem-encoded key data to keyPath. @@ -80,10 +77,7 @@ func WriteKey(keyPath string, data []byte) error { if err := os.MkdirAll(filepath.Dir(keyPath), os.FileMode(0755)); err != nil { return err } - if err := ioutil.WriteFile(keyPath, data, os.FileMode(0600)); err != nil { - return err - } - return nil + return ioutil.WriteFile(keyPath, data, os.FileMode(0600)) } // LoadOrGenerateKeyFile looks for a key in the file at the given path. If it diff --git a/vendor/k8s.io/client-go/util/certificate/BUILD b/vendor/k8s.io/client-go/util/certificate/BUILD index 87f88964c..f10a2d9e2 100644 --- a/vendor/k8s.io/client-go/util/certificate/BUILD +++ b/vendor/k8s.io/client-go/util/certificate/BUILD @@ -19,7 +19,10 @@ go_test( tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1: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/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", @@ -37,12 +40,12 @@ go_library( deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", + "//vendor/k8s.io/client-go/util/certificate/csr:go_default_library", ], ) @@ -55,7 +58,10 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/client-go/util/certificate/csr:all-srcs", + ], tags = ["automanaged"], visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/client-go/util/certificate/certificate_manager.go b/vendor/k8s.io/client-go/util/certificate/certificate_manager.go index 08363491b..e27966f5e 100644 --- a/vendor/k8s.io/client-go/util/certificate/certificate_manager.go +++ b/vendor/k8s.io/client-go/util/certificate/certificate_manager.go @@ -30,14 +30,18 @@ import ( "github.com/golang/glog" certificates "k8s.io/api/certificates/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/api/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" "k8s.io/client-go/util/cert" + "k8s.io/client-go/util/certificate/csr" ) +// certificateWaitBackoff controls the amount and timing of retries when the +// watch for certificate approval is interrupted. +var certificateWaitBackoff = wait.Backoff{Duration: 30 * time.Second, Steps: 4, Factor: 1.5, Jitter: 0.1} + // Manager maintains and updates the certificates in use by this certificate // manager. In the background it communicates with the API server to get new // certificates for certificates about to expire. @@ -51,6 +55,12 @@ type Manager interface { // certificate manager, as well as the associated certificate and key data // in PEM format. Current() *tls.Certificate + // ServerHealthy returns true if the manager is able to communicate with + // the server. This allows a caller to determine whether the cert manager + // thinks it can potentially talk to the API server. The cert manager may + // be very conservative and only return true if recent communication has + // occurred with the server. + ServerHealthy() bool } // Config is the set of configuration parameters available for a new Manager. @@ -134,6 +144,7 @@ type manager struct { rotationDeadline time.Time forceRotation bool certificateExpiration Gauge + serverHealth bool } // NewManager returns a new certificate manager. A certificate manager is @@ -171,6 +182,14 @@ func (m *manager) Current() *tls.Certificate { return m.cert } +// ServerHealthy returns true if the cert manager believes the server +// is currently alive. +func (m *manager) ServerHealthy() bool { + m.certAccessLock.RLock() + defer m.certAccessLock.RUnlock() + return m.serverHealth +} + // SetCertificateSigningRequestClient sets the client interface that is used // for signing new certificates generated as part of rotation. It must be // called before Start() and can not be used to change the @@ -205,9 +224,8 @@ func (m *manager) Start() { // doesn't have a certificate at all yet. if m.shouldRotate() { glog.V(1).Infof("shouldRotate() is true, forcing immediate rotation") - _, err := m.rotateCerts() - if err != nil { - glog.Errorf("Could not rotate certificates: %v", err) + if _, err := m.rotateCerts(); err != nil { + utilruntime.HandleError(fmt.Errorf("Could not rotate certificates: %v", err)) } } backoff := wait.Backoff{ @@ -221,7 +239,7 @@ func (m *manager) Start() { glog.V(2).Infof("Waiting %v for next certificate rotation", sleepInterval) time.Sleep(sleepInterval) if err := wait.ExponentialBackoff(backoff, m.rotateCerts); err != nil { - glog.Errorf("Reached backoff limit, still unable to rotate certs: %v", err) + utilruntime.HandleError(fmt.Errorf("Reached backoff limit, still unable to rotate certs: %v", err)) wait.PollInfinite(128*time.Second, m.rotateCerts) } }, 0) @@ -275,26 +293,58 @@ func (m *manager) shouldRotate() bool { return time.Now().After(m.rotationDeadline) } +// rotateCerts attempts to request a client cert from the server, wait a reasonable +// period of time for it to be signed, and then update the cert on disk. If it cannot +// retrieve a cert, it will return false. It will only return error in exceptional cases. +// This method also keeps track of "server health" by interpreting the responses it gets +// from the server on the various calls it makes. func (m *manager) rotateCerts() (bool, error) { glog.V(2).Infof("Rotating certificates") - csrPEM, keyPEM, err := m.generateCSR() + csrPEM, keyPEM, privateKey, err := m.generateCSR() if err != nil { - glog.Errorf("Unable to generate a certificate signing request: %v", err) + utilruntime.HandleError(fmt.Errorf("Unable to generate a certificate signing request: %v", err)) return false, nil } // Call the Certificate Signing Request API to get a certificate for the // new private key. - crtPEM, err := requestCertificate(m.certSigningRequestClient, csrPEM, m.usages) + req, err := csr.RequestCertificate(m.certSigningRequestClient, csrPEM, "", m.usages, privateKey) if err != nil { - glog.Errorf("Failed while requesting a signed certificate from the master: %v", err) + utilruntime.HandleError(fmt.Errorf("Failed while requesting a signed certificate from the master: %v", err)) + return false, m.updateServerError(err) + } + + // Wait for the certificate to be signed. Instead of one long watch, we retry with slighly longer + // intervals each time in order to tolerate failures from the server AND to preserve the liveliness + // of the cert manager loop. This creates slightly more traffic against the API server in return + // for bounding the amount of time we wait when a certificate expires. + var crtPEM []byte + watchDuration := time.Minute + if err := wait.ExponentialBackoff(certificateWaitBackoff, func() (bool, error) { + data, err := csr.WaitForCertificate(m.certSigningRequestClient, req, watchDuration) + switch { + case err == nil: + crtPEM = data + return true, nil + case err == wait.ErrWaitTimeout: + watchDuration += time.Minute + if watchDuration > 5*time.Minute { + watchDuration = 5 * time.Minute + } + return false, nil + default: + utilruntime.HandleError(fmt.Errorf("Unable to check certificate signing status: %v", err)) + return false, m.updateServerError(err) + } + }); err != nil { + utilruntime.HandleError(fmt.Errorf("Certificate request was not signed: %v", err)) return false, nil } cert, err := m.certStore.Update(crtPEM, keyPEM) if err != nil { - glog.Errorf("Unable to store the new cert/key pair: %v", err) + utilruntime.HandleError(fmt.Errorf("Unable to store the new cert/key pair: %v", err)) return false, nil } @@ -337,91 +387,54 @@ var jitteryDuration = func(totalDuration float64) time.Duration { return wait.Jitter(time.Duration(totalDuration), 0.2) - time.Duration(totalDuration*0.3) } +// updateCached sets the most recent retrieved cert. It also sets the server +// as assumed healthy. func (m *manager) updateCached(cert *tls.Certificate) { m.certAccessLock.Lock() defer m.certAccessLock.Unlock() + m.serverHealth = true m.cert = cert } -func (m *manager) generateCSR() (csrPEM []byte, keyPEM []byte, err error) { +// updateServerError takes an error returned by the server and infers +// the health of the server based on the error. It will return nil if +// the error does not require immediate termination of any wait loops, +// and otherwise it will return the error. +func (m *manager) updateServerError(err error) error { + m.certAccessLock.Lock() + defer m.certAccessLock.Unlock() + switch { + case errors.IsUnauthorized(err): + // SSL terminating proxies may report this error instead of the master + m.serverHealth = true + case errors.IsUnexpectedServerError(err): + // generally indicates a proxy or other load balancer problem, rather than a problem coming + // from the master + m.serverHealth = false + default: + // Identify known errors that could be expected for a cert request that + // indicate everything is working normally + m.serverHealth = errors.IsNotFound(err) || errors.IsForbidden(err) + } + return nil +} + +func (m *manager) generateCSR() (csrPEM []byte, keyPEM []byte, key interface{}, err error) { // Generate a new private key. privateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader) if err != nil { - return nil, nil, fmt.Errorf("unable to generate a new private key: %v", err) + return nil, nil, nil, fmt.Errorf("unable to generate a new private key: %v", err) } der, err := x509.MarshalECPrivateKey(privateKey) if err != nil { - return nil, nil, fmt.Errorf("unable to marshal the new key to DER: %v", err) + return nil, nil, nil, fmt.Errorf("unable to marshal the new key to DER: %v", err) } keyPEM = pem.EncodeToMemory(&pem.Block{Type: cert.ECPrivateKeyBlockType, Bytes: der}) csrPEM, err = cert.MakeCSRFromTemplate(privateKey, m.template) if err != nil { - return nil, nil, fmt.Errorf("unable to create a csr from the private key: %v", err) - } - return csrPEM, keyPEM, nil -} - -// requestCertificate will create a certificate signing request using the PEM -// encoded CSR and send it to API server, then it will watch the object's -// status, once approved by API server, it will return the API server's issued -// certificate (pem-encoded). If there is any errors, or the watch timeouts, it -// will return an error. -// -// NOTE This is a copy of a function with the same name in -// k8s.io/kubernetes/pkg/kubelet/util/csr/csr.go, changing only the package that -// CertificateSigningRequestInterface and KeyUsage are imported from. -func requestCertificate(client certificatesclient.CertificateSigningRequestInterface, csrData []byte, usages []certificates.KeyUsage) (certData []byte, err error) { - glog.Infof("Requesting new certificate.") - req, err := client.Create(&certificates.CertificateSigningRequest{ - // Username, UID, Groups will be injected by API server. - TypeMeta: metav1.TypeMeta{Kind: "CertificateSigningRequest"}, - ObjectMeta: metav1.ObjectMeta{GenerateName: "csr-"}, - - Spec: certificates.CertificateSigningRequestSpec{ - Request: csrData, - Usages: usages, - }, - }) - if err != nil { - return nil, fmt.Errorf("cannot create certificate signing request: %v", err) + return nil, nil, nil, fmt.Errorf("unable to create a csr from the private key: %v", err) } - - // Make a default timeout = 3600s. - var defaultTimeoutSeconds int64 = 3600 - certWatch, err := client.Watch(metav1.ListOptions{ - Watch: true, - TimeoutSeconds: &defaultTimeoutSeconds, - FieldSelector: fields.OneTermEqualSelector("metadata.name", req.Name).String(), - }) - if err != nil { - return nil, fmt.Errorf("cannot watch on the certificate signing request: %v", err) - } - defer certWatch.Stop() - ch := certWatch.ResultChan() - - for { - event, ok := <-ch - if !ok { - break - } - - if event.Type == watch.Modified || event.Type == watch.Added { - if event.Object.(*certificates.CertificateSigningRequest).UID != req.UID { - continue - } - status := event.Object.(*certificates.CertificateSigningRequest).Status - for _, c := range status.Conditions { - if c.Type == certificates.CertificateDenied { - return nil, fmt.Errorf("certificate signing request is not approved, reason: %v, message: %v", c.Reason, c.Message) - } - if c.Type == certificates.CertificateApproved && status.Certificate != nil { - return status.Certificate, nil - } - } - } - } - - return nil, fmt.Errorf("watch channel closed") + return csrPEM, keyPEM, privateKey, nil } diff --git a/vendor/k8s.io/client-go/util/certificate/certificate_manager_test.go b/vendor/k8s.io/client-go/util/certificate/certificate_manager_test.go index 6a77f99bf..ab19e37b1 100644 --- a/vendor/k8s.io/client-go/util/certificate/certificate_manager_test.go +++ b/vendor/k8s.io/client-go/util/certificate/certificate_manager_test.go @@ -27,7 +27,10 @@ import ( "time" certificates "k8s.io/api/certificates/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/wait" watch "k8s.io/apimachinery/pkg/watch" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" ) @@ -288,6 +291,7 @@ func TestRotateCertWaitingForResultError(t *testing.T) { }, } + certificateWaitBackoff = wait.Backoff{Steps: 1} if success, err := m.rotateCerts(); success { t.Errorf("Got success from 'rotateCerts', wanted failure.") } else if err != nil { @@ -612,10 +616,14 @@ func TestInitializeOtherRESTClients(t *testing.T) { } else { m.setRotationDeadline() if m.shouldRotate() { - if success, err := certificateManager.(*manager).rotateCerts(); !success { - t.Errorf("Got failure from 'rotateCerts', expected success") - } else if err != nil { + success, err := certificateManager.(*manager).rotateCerts() + if err != nil { t.Errorf("Got error %v, expected none.", err) + return + } + if !success { + t.Errorf("Unexpected response 'rotateCerts': %t", success) + return } } } @@ -628,6 +636,161 @@ func TestInitializeOtherRESTClients(t *testing.T) { } } +func TestServerHealth(t *testing.T) { + type certs struct { + storeCert *certificateData + bootstrapCert *certificateData + apiCert *certificateData + expectedCertBeforeStart *certificateData + expectedCertAfterStart *certificateData + } + + updatedCerts := certs{ + storeCert: storeCertData, + bootstrapCert: bootstrapCertData, + apiCert: apiServerCertData, + expectedCertBeforeStart: storeCertData, + expectedCertAfterStart: apiServerCertData, + } + + currentCerts := certs{ + storeCert: storeCertData, + bootstrapCert: bootstrapCertData, + apiCert: apiServerCertData, + expectedCertBeforeStart: storeCertData, + expectedCertAfterStart: storeCertData, + } + + testCases := []struct { + description string + certs + + failureType fakeClientFailureType + clientErr error + + expectRotateFail bool + expectHealthy bool + }{ + { + description: "Current certificate, bootstrap certificate", + certs: updatedCerts, + expectHealthy: true, + }, + { + description: "Generic error on create", + certs: currentCerts, + + failureType: createError, + expectRotateFail: true, + }, + { + description: "Unauthorized error on create", + certs: currentCerts, + + failureType: createError, + clientErr: errors.NewUnauthorized("unauthorized"), + expectRotateFail: true, + expectHealthy: true, + }, + { + description: "Generic unauthorized error on create", + certs: currentCerts, + + failureType: createError, + clientErr: errors.NewGenericServerResponse(401, "POST", schema.GroupResource{}, "", "", 0, true), + expectRotateFail: true, + expectHealthy: true, + }, + { + description: "Generic not found error on create", + certs: currentCerts, + + failureType: createError, + clientErr: errors.NewGenericServerResponse(404, "POST", schema.GroupResource{}, "", "", 0, true), + expectRotateFail: true, + expectHealthy: false, + }, + { + description: "Not found error on create", + certs: currentCerts, + + failureType: createError, + clientErr: errors.NewGenericServerResponse(404, "POST", schema.GroupResource{}, "", "", 0, false), + expectRotateFail: true, + expectHealthy: true, + }, + { + description: "Conflict error on watch", + certs: currentCerts, + + failureType: watchError, + clientErr: errors.NewGenericServerResponse(409, "POST", schema.GroupResource{}, "", "", 0, false), + expectRotateFail: true, + expectHealthy: false, + }, + } + + for _, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + certificateStore := &fakeStore{ + cert: tc.storeCert.certificate, + } + + certificateManager, err := NewManager(&Config{ + Template: &x509.CertificateRequest{ + Subject: pkix.Name{ + Organization: []string{"system:nodes"}, + CommonName: "system:node:fake-node-name", + }, + }, + Usages: []certificates.KeyUsage{ + certificates.UsageDigitalSignature, + certificates.UsageKeyEncipherment, + certificates.UsageClientAuth, + }, + CertificateStore: certificateStore, + BootstrapCertificatePEM: tc.bootstrapCert.certificatePEM, + BootstrapKeyPEM: tc.bootstrapCert.keyPEM, + CertificateSigningRequestClient: &fakeClient{ + certificatePEM: tc.apiCert.certificatePEM, + failureType: tc.failureType, + err: tc.clientErr, + }, + }) + if err != nil { + t.Errorf("Got %v, wanted no error.", err) + } + + certificate := certificateManager.Current() + if !certificatesEqual(certificate, tc.expectedCertBeforeStart.certificate) { + t.Errorf("Got %v, wanted %v", certificateString(certificate), certificateString(tc.expectedCertBeforeStart.certificate)) + } + + if _, ok := certificateManager.(*manager); !ok { + t.Errorf("Expected a '*manager' from 'NewManager'") + } else { + success, err := certificateManager.(*manager).rotateCerts() + if err != nil { + t.Errorf("Got error %v, expected none.", err) + return + } + if !success != tc.expectRotateFail { + t.Errorf("Unexpected response 'rotateCerts': %t", success) + return + } + if actual := certificateManager.(*manager).ServerHealthy(); actual != tc.expectHealthy { + t.Errorf("Unexpected manager server health: %t", actual) + } + } + + certificate = certificateManager.Current() + if !certificatesEqual(certificate, tc.expectedCertAfterStart.certificate) { + t.Errorf("Got %v, wanted %v", certificateString(certificate), certificateString(tc.expectedCertAfterStart.certificate)) + } + }) + } +} + type fakeClientFailureType int const ( @@ -641,10 +804,29 @@ type fakeClient struct { certificatesclient.CertificateSigningRequestInterface failureType fakeClientFailureType certificatePEM []byte + err error +} + +func (c fakeClient) List(opts v1.ListOptions) (*certificates.CertificateSigningRequestList, error) { + if c.failureType == watchError { + if c.err != nil { + return nil, c.err + } + return nil, fmt.Errorf("Watch error") + } + csrReply := certificates.CertificateSigningRequestList{ + Items: []certificates.CertificateSigningRequest{ + {ObjectMeta: v1.ObjectMeta{UID: "fake-uid"}}, + }, + } + return &csrReply, nil } func (c fakeClient) Create(*certificates.CertificateSigningRequest) (*certificates.CertificateSigningRequest, error) { if c.failureType == createError { + if c.err != nil { + return nil, c.err + } return nil, fmt.Errorf("Create error") } csrReply := certificates.CertificateSigningRequest{} @@ -654,6 +836,9 @@ func (c fakeClient) Create(*certificates.CertificateSigningRequest) (*certificat func (c fakeClient) Watch(opts v1.ListOptions) (watch.Interface, error) { if c.failureType == watchError { + if c.err != nil { + return nil, c.err + } return nil, fmt.Errorf("Watch error") } return &fakeWatch{ diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/csr/BUILD b/vendor/k8s.io/client-go/util/certificate/csr/BUILD similarity index 90% rename from vendor/k8s.io/kubernetes/pkg/kubelet/util/csr/BUILD rename to vendor/k8s.io/client-go/util/certificate/csr/BUILD index 3414983f2..c6def5bbf 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/csr/BUILD +++ b/vendor/k8s.io/client-go/util/certificate/csr/BUILD @@ -9,9 +9,8 @@ load( go_library( name = "go_default_library", srcs = ["csr.go"], - importpath = "k8s.io/kubernetes/pkg/kubelet/util/csr", + importpath = "k8s.io/client-go/util/certificate/csr", deps = [ - "//pkg/apis/certificates/v1beta1:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -19,6 +18,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", @@ -42,7 +42,7 @@ filegroup( go_test( name = "go_default_test", srcs = ["csr_test.go"], - importpath = "k8s.io/kubernetes/pkg/kubelet/util/csr", + importpath = "k8s.io/client-go/util/certificate/csr", library = ":go_default_library", deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/csr/csr.go b/vendor/k8s.io/client-go/util/certificate/csr/csr.go similarity index 71% rename from vendor/k8s.io/kubernetes/pkg/kubelet/util/csr/csr.go rename to vendor/k8s.io/client-go/util/certificate/csr/csr.go index 316de1abe..22112a5b5 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/csr/csr.go +++ b/vendor/k8s.io/client-go/util/certificate/csr/csr.go @@ -19,25 +19,26 @@ package csr import ( "crypto" "crypto/sha512" + "crypto/x509" "crypto/x509/pkix" "encoding/base64" + "encoding/pem" "fmt" + "github.com/golang/glog" "reflect" "time" - "github.com/golang/glog" - certificates "k8s.io/api/certificates/v1beta1" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" "k8s.io/client-go/tools/cache" certutil "k8s.io/client-go/util/cert" - certhelper "k8s.io/kubernetes/pkg/apis/certificates/v1beta1" ) // RequestNodeCertificate will create a certificate signing request for a node @@ -68,16 +69,20 @@ func RequestNodeCertificate(client certificatesclient.CertificateSigningRequestI certificates.UsageClientAuth, } name := digestedName(privateKeyData, subject, usages) - return requestCertificate(client, csrData, name, usages, privateKey) + req, err := RequestCertificate(client, csrData, name, usages, privateKey) + if err != nil { + return nil, err + } + return WaitForCertificate(client, req, 3600*time.Second) } -// requestCertificate will either use an existing (if this process has run +// RequestCertificate will either use an existing (if this process has run // before but not to completion) or create a certificate signing request using the // PEM encoded CSR and send it to API server, then it will watch the object's // status, once approved by API server, it will return the API server's issued // certificate (pem-encoded). If there is any errors, or the watch timeouts, it // will return an error. -func requestCertificate(client certificatesclient.CertificateSigningRequestInterface, csrData []byte, name string, usages []certificates.KeyUsage, privateKey interface{}) (certData []byte, err error) { +func RequestCertificate(client certificatesclient.CertificateSigningRequestInterface, csrData []byte, name string, usages []certificates.KeyUsage, privateKey interface{}) (req *certificates.CertificateSigningRequest, err error) { csr := &certificates.CertificateSigningRequest{ // Username, UID, Groups will be injected by API server. TypeMeta: metav1.TypeMeta{Kind: "CertificateSigningRequest"}, @@ -89,28 +94,35 @@ func requestCertificate(client certificatesclient.CertificateSigningRequestInter Usages: usages, }, } + if len(csr.Name) == 0 { + csr.GenerateName = "csr-" + } - req, err := client.Create(csr) + req, err = client.Create(csr) switch { case err == nil: - case errors.IsAlreadyExists(err): + case errors.IsAlreadyExists(err) && len(name) > 0: glog.Infof("csr for this node already exists, reusing") req, err = client.Get(name, metav1.GetOptions{}) if err != nil { - return nil, fmt.Errorf("cannot retrieve certificate signing request: %v", err) + return nil, formatError("cannot retrieve certificate signing request: %v", err) } if err := ensureCompatible(req, csr, privateKey); err != nil { return nil, fmt.Errorf("retrieved csr is not compatible: %v", err) } glog.Infof("csr for this node is still valid") default: - return nil, fmt.Errorf("cannot create certificate signing request: %v", err) + return nil, formatError("cannot create certificate signing request: %v", err) } + return req, nil +} +// WaitForCertificate waits for a certificate to be issued until timeout, or returns an error. +func WaitForCertificate(client certificatesclient.CertificateSigningRequestInterface, req *certificates.CertificateSigningRequest, timeout time.Duration) (certData []byte, err error) { fieldSelector := fields.OneTermEqualSelector("metadata.name", req.Name).String() event, err := cache.ListWatchUntil( - 3600*time.Second, + timeout, &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { options.FieldSelector = fieldSelector @@ -124,6 +136,8 @@ func requestCertificate(client certificatesclient.CertificateSigningRequestInter func(event watch.Event) (bool, error) { switch event.Type { case watch.Modified, watch.Added: + case watch.Deleted: + return false, fmt.Errorf("csr %q was deleted", req.Name) default: return false, nil } @@ -142,12 +156,14 @@ func requestCertificate(client certificatesclient.CertificateSigningRequestInter return false, nil }, ) + if err == wait.ErrWaitTimeout { + return nil, wait.ErrWaitTimeout + } if err != nil { - return nil, fmt.Errorf("cannot watch on the certificate signing request: %v", err) + return nil, formatError("cannot watch on the certificate signing request: %v", err) } return event.Object.(*certificates.CertificateSigningRequest).Status.Certificate, nil - } // This digest should include all the relevant pieces of the CSR we care about. @@ -184,11 +200,11 @@ func digestedName(privateKeyData []byte, subject *pkix.Name, usages []certificat // ensureCompatible ensures that a CSR object is compatible with an original CSR func ensureCompatible(new, orig *certificates.CertificateSigningRequest, privateKey interface{}) error { - newCsr, err := certhelper.ParseCSR(new) + newCsr, err := ParseCSR(new) if err != nil { return fmt.Errorf("unable to parse new csr: %v", err) } - origCsr, err := certhelper.ParseCSR(orig) + origCsr, err := ParseCSR(orig) if err != nil { return fmt.Errorf("unable to parse original csr: %v", err) } @@ -203,5 +219,43 @@ func ensureCompatible(new, orig *certificates.CertificateSigningRequest, private if err := newCsr.CheckSignature(); err != nil { return fmt.Errorf("error validating signature new CSR against old key: %v", err) } + if len(new.Status.Certificate) > 0 { + certs, err := certutil.ParseCertsPEM(new.Status.Certificate) + if err != nil { + return fmt.Errorf("error parsing signed certificate for CSR: %v", err) + } + now := time.Now() + for _, cert := range certs { + if now.After(cert.NotAfter) { + return fmt.Errorf("one of the certificates for the CSR has expired: %s", cert.NotAfter) + } + } + } return nil } + +// formatError preserves the type of an API message but alters the message. Expects +// a single argument format string, and returns the wrapped error. +func formatError(format string, err error) error { + if s, ok := err.(errors.APIStatus); ok { + se := &errors.StatusError{ErrStatus: s.Status()} + se.ErrStatus.Message = fmt.Sprintf(format, se.ErrStatus.Message) + return se + } + return fmt.Errorf(format, err) +} + +// ParseCSR extracts the CSR from the API object and decodes it. +func ParseCSR(obj *certificates.CertificateSigningRequest) (*x509.CertificateRequest, error) { + // extract PEM from request object + pemBytes := obj.Spec.Request + block, _ := pem.Decode(pemBytes) + if block == nil || block.Type != "CERTIFICATE REQUEST" { + return nil, fmt.Errorf("PEM block type must be CERTIFICATE REQUEST") + } + csr, err := x509.ParseCertificateRequest(block.Bytes) + if err != nil { + return nil, err + } + return csr, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/csr/csr_test.go b/vendor/k8s.io/client-go/util/certificate/csr/csr_test.go similarity index 100% rename from vendor/k8s.io/kubernetes/pkg/kubelet/util/csr/csr_test.go rename to vendor/k8s.io/client-go/util/certificate/csr/csr_test.go diff --git a/vendor/k8s.io/ingress-gce/OWNERS b/vendor/k8s.io/ingress-gce/OWNERS index f8994e84d..ee042e974 100644 --- a/vendor/k8s.io/ingress-gce/OWNERS +++ b/vendor/k8s.io/ingress-gce/OWNERS @@ -1,4 +1,4 @@ -assignees: +approvers: - thockin - bowei - nicksardo diff --git a/vendor/k8s.io/ingress-gce/cmd/glbc/main.go b/vendor/k8s.io/ingress-gce/cmd/glbc/main.go index 81b2c9b04..ae488c37c 100644 --- a/vendor/k8s.io/ingress-gce/cmd/glbc/main.go +++ b/vendor/k8s.io/ingress-gce/cmd/glbc/main.go @@ -48,8 +48,10 @@ import ( "k8s.io/ingress-gce/pkg/context" "k8s.io/ingress-gce/pkg/controller" "k8s.io/ingress-gce/pkg/loadbalancers" + neg "k8s.io/ingress-gce/pkg/networkendpointgroup" "k8s.io/ingress-gce/pkg/storage" "k8s.io/ingress-gce/pkg/utils" + "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" ) @@ -288,19 +290,25 @@ func main() { // Create fake cluster manager clusterManager = controller.NewFakeClusterManager(*clusterName, controller.DefaultFirewallName).ClusterManager } - - ctx := context.NewControllerContext(kubeClient, *watchNamespace, *resyncPeriod, false) - + enableNEG := cloud.AlphaFeatureGate.Enabled(gce.AlphaFeatureNetworkEndpointGroup) + ctx := context.NewControllerContext(kubeClient, *watchNamespace, *resyncPeriod, enableNEG) // Start loadbalancer controller - lbc, err := controller.NewLoadBalancerController(kubeClient, ctx, clusterManager) + lbc, err := controller.NewLoadBalancerController(kubeClient, ctx, clusterManager, enableNEG) if err != nil { glog.Fatalf("%v", err) } - if clusterManager.ClusterNamer.GetClusterName() != "" { - glog.V(3).Infof("Cluster name %+v", clusterManager.ClusterNamer.GetClusterName()) + if clusterManager.ClusterNamer.UID() != "" { + glog.V(3).Infof("Cluster name %+v", clusterManager.ClusterNamer.UID()) } clusterManager.Init(&controller.GCETranslator{LoadBalancerController: lbc}) + + // Start NEG controller + if enableNEG { + negController, _ := neg.NewController(kubeClient, cloud, ctx, lbc.Translator, namer, *resyncPeriod) + go negController.Run(ctx.StopCh) + } + go registerHandlers(lbc) go handleSigterm(lbc, *deleteAllOnQuit) @@ -345,14 +353,14 @@ func newNamer(kubeClient kubernetes.Interface, clusterName string, fwName string switch key { case storage.UidDataKey: - if uid := namer.GetClusterName(); uid != val { + if uid := namer.UID(); uid != val { glog.Infof("Cluster uid changed from %v -> %v", uid, val) - namer.SetClusterName(val) + namer.SetUID(val) } case storage.ProviderDataKey: - if fw_name := namer.GetFirewallName(); fw_name != val { + if fw_name := namer.Firewall(); fw_name != val { glog.Infof("Cluster firewall name changed from %v -> %v", fw_name, val) - namer.SetFirewallName(val) + namer.SetFirewall(val) } } } diff --git a/vendor/k8s.io/ingress-gce/pkg/annotations/annotations.go b/vendor/k8s.io/ingress-gce/pkg/annotations/annotations.go index 6850ca2c1..79f528626 100644 --- a/vendor/k8s.io/ingress-gce/pkg/annotations/annotations.go +++ b/vendor/k8s.io/ingress-gce/pkg/annotations/annotations.go @@ -68,6 +68,15 @@ const ( // This is read only for users. Controller will overrite any user updates. // This is only set for ingresses with ingressClass = "gce-multi-cluster" InstanceGroupsAnnotationKey = "ingress.gcp.kubernetes.io/instance-groups" + + // NetworkEndpointGroupAlphaAnnotation is the annotation key to enable GCE NEG feature for ingress backend services. + // To enable this feature, the value of the annotation must be "true". + // This annotation should be specified on services that are backing ingresses. + // WARNING: The feature will NOT be effective in the following circumstances: + // 1. NEG feature is not enabled in feature gate. + // 2. Service is not referenced in any ingress. + // 3. Adding this annotation on ingress. + NetworkEndpointGroupAlphaAnnotation = "alpha.cloud.google.com/load-balancer-neg" ) // IngAnnotations represents ingress annotations. @@ -135,3 +144,8 @@ func (svc SvcAnnotations) ApplicationProtocols() (map[string]utils.AppProtocol, return portToProtos, err } + +func (svc SvcAnnotations) NEGEnabled() bool { + v, ok := svc[NetworkEndpointGroupAlphaAnnotation] + return ok && v == "true" +} diff --git a/vendor/k8s.io/ingress-gce/pkg/backends/backends.go b/vendor/k8s.io/ingress-gce/pkg/backends/backends.go index 5c7dd1eaa..9a9bbc1d0 100644 --- a/vendor/k8s.io/ingress-gce/pkg/backends/backends.go +++ b/vendor/k8s.io/ingress-gce/pkg/backends/backends.go @@ -25,6 +25,7 @@ import ( "github.com/golang/glog" + computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" v1 "k8s.io/api/core/v1" @@ -76,6 +77,7 @@ const maxRPS = 1 // Backends implements BackendPool. type Backends struct { cloud BackendServices + negGetter NEGGetter nodePool instances.NodePool healthChecker healthchecks.HealthChecker snapshotter storage.Snapshotter @@ -93,10 +95,14 @@ func portKey(port int64) string { // ServicePort for tupling port and protocol type ServicePort struct { - Port int64 - Protocol utils.AppProtocol - SvcName types.NamespacedName - SvcPort intstr.IntOrString + // Port is the service node port + // TODO: rename it to NodePort + Port int64 + Protocol utils.AppProtocol + SvcName types.NamespacedName + SvcPort intstr.IntOrString + SvcTargetPort string + NEGEnabled bool } // Description returns a string describing the ServicePort. @@ -116,6 +122,7 @@ func (sp ServicePort) Description() string { // - resyncWithCloud: if true, periodically syncs with cloud resources. func NewBackendPool( cloud BackendServices, + negGetter NEGGetter, healthChecker healthchecks.HealthChecker, nodePool instances.NodePool, namer *utils.Namer, @@ -128,6 +135,7 @@ func NewBackendPool( } backendPool := &Backends{ cloud: cloud, + negGetter: negGetter, nodePool: nodePool, healthChecker: healthChecker, namer: namer, @@ -143,7 +151,7 @@ func NewBackendPool( if !namer.NameBelongsToCluster(bs.Name) { return "", fmt.Errorf("unrecognized name %v", bs.Name) } - port, err := namer.BePort(bs.Name) + port, err := namer.BackendPort(bs.Name) if err != nil { return "", err } @@ -162,7 +170,7 @@ func (b *Backends) Init(pp probeProvider) { // Get returns a single backend. func (b *Backends) Get(port int64) (*compute.BackendService, error) { - be, err := b.cloud.GetGlobalBackendService(b.namer.BeName(port)) + be, err := b.cloud.GetGlobalBackendService(b.namer.Backend(port)) if err != nil { return nil, err } @@ -171,8 +179,7 @@ func (b *Backends) Get(port int64) (*compute.BackendService, error) { } func (b *Backends) ensureHealthCheck(sp ServicePort) (string, error) { - hc := b.healthChecker.New(sp.Port, sp.Protocol) - + hc := b.healthChecker.New(sp.Port, sp.Protocol, sp.NEGEnabled) existingLegacyHC, err := b.healthChecker.GetLegacy(sp.Port) if err != nil && !utils.IsNotFoundError(err) { return "", err @@ -255,10 +262,13 @@ func (b *Backends) ensureBackendService(p ServicePort, igs []*compute.InstanceGr } // Verify existance of a backend service for the proper port, but do not specify any backends/igs - beName := b.namer.BeName(p.Port) + beName := b.namer.Backend(p.Port) be, _ = b.Get(p.Port) if be == nil { - namedPort := utils.GetNamedPort(p.Port) + namedPort := &compute.NamedPort{ + Name: b.namer.NamedPort(p.Port), + Port: p.Port, + } glog.V(2).Infof("Creating backend service for port %v named port %v", p.Port, namedPort) be, err = b.create(namedPort, hcLink, p, beName) if err != nil { @@ -271,7 +281,15 @@ func (b *Backends) ensureBackendService(p ServicePort, igs []*compute.InstanceGr if len(be.HealthChecks) == 1 { existingHCLink = be.HealthChecks[0] } - if be.Protocol != string(p.Protocol) || existingHCLink != hcLink || be.Description != p.Description() { + + // Compare health check name instead of health check link. + // This is because health check link contains api version. + // For NEG, the api version for health check will be alpha. + // Hence, it will cause the health check links to be always different + // TODO (mixia): compare health check link directly once NEG is GA + existingHCName := retrieveObjectName(existingHCLink) + expectedHCName := retrieveObjectName(hcLink) + if be.Protocol != string(p.Protocol) || existingHCName != expectedHCName || be.Description != p.Description() { glog.V(2).Infof("Updating backend protocol %v (%v) for change in protocol (%v) or health check", beName, be.Protocol, string(p.Protocol)) be.Protocol = string(p.Protocol) be.HealthChecks = []string{hcLink} @@ -293,13 +311,17 @@ func (b *Backends) ensureBackendService(p ServicePort, igs []*compute.InstanceGr return nil } + // If NEG is enabled, do not link backend service to instance groups. + if p.NEGEnabled { + return nil + } // Verify that backend service contains links to all backends/instance-groups return b.edgeHop(be, igs) } // Delete deletes the Backend for the given port. func (b *Backends) Delete(port int64) (err error) { - name := b.namer.BeName(port) + name := b.namer.Backend(port) glog.V(2).Infof("Deleting backend service %v", name) defer func() { if utils.IsHTTPErrorCode(err, http.StatusNotFound) { @@ -352,6 +374,19 @@ func getBackendsForIGs(igs []*compute.InstanceGroup, bm BalancingMode) []*comput return backends } +func getBackendsForNEGs(negs []*computealpha.NetworkEndpointGroup) []*computealpha.Backend { + var backends []*computealpha.Backend + for _, neg := range negs { + b := &computealpha.Backend{ + Group: neg.SelfLink, + BalancingMode: string(Rate), + MaxRatePerEndpoint: maxRPS, + } + backends = append(backends, b) + } + return backends +} + // edgeHop checks the links of the given backend by executing an edge hop. // It fixes broken links. func (b *Backends) edgeHop(be *compute.BackendService, igs []*compute.InstanceGroup) error { @@ -369,7 +404,15 @@ func (b *Backends) edgeHop(be *compute.BackendService, igs []*compute.InstanceGr glog.V(2).Infof("Updating backend service %v with %d backends: expected igs %+v, current igs %+v", be.Name, igLinks.Len(), igLinks.List(), beIGs.List()) - originalBackends := be.Backends + originalIGBackends := []*compute.Backend{} + for _, backend := range be.Backends { + // Backend service is not able to point to NEG and IG at the same time. + // Filter IG backends here. + if strings.Contains(backend.Group, "instanceGroups") { + originalIGBackends = append(originalIGBackends, backend) + } + } + var addIGs []*compute.InstanceGroup for _, ig := range igs { if !beIGs.Has(ig.SelfLink) { @@ -387,7 +430,7 @@ func (b *Backends) edgeHop(be *compute.BackendService, igs []*compute.InstanceGr for _, bm := range []BalancingMode{Rate, Utilization} { // Generate backends with given instance groups with a specific mode newBackends := getBackendsForIGs(addIGs, bm) - be.Backends = append(originalBackends, newBackends...) + be.Backends = append(originalIGBackends, newBackends...) if err := b.cloud.UpdateGlobalBackendService(be); err != nil { if utils.IsHTTPErrorCode(err, http.StatusBadRequest) { @@ -457,6 +500,46 @@ func (b *Backends) Status(name string) string { return hs.HealthStatus[0].HealthState } +func (b *Backends) Link(port ServicePort, zones []string) error { + if !port.NEGEnabled { + return nil + } + negName := b.namer.NEG(port.SvcName.Namespace, port.SvcName.Name, port.SvcTargetPort) + var negs []*computealpha.NetworkEndpointGroup + var err error + for _, zone := range zones { + neg, err := b.negGetter.GetNetworkEndpointGroup(negName, zone) + if err != nil { + return err + } + negs = append(negs, neg) + } + + backendService, err := b.cloud.GetAlphaGlobalBackendService(b.namer.Backend(port.Port)) + if err != nil { + return err + } + + targetBackends := getBackendsForNEGs(negs) + oldBackends := sets.NewString() + newBackends := sets.NewString() + + // WARNING: the backend link includes api version. + // API versions has to match, otherwise backend link will be always different. + for _, be := range backendService.Backends { + oldBackends.Insert(be.Group) + } + for _, be := range targetBackends { + newBackends.Insert(be.Group) + } + + if !oldBackends.Equal(newBackends) { + backendService.Backends = targetBackends + return b.cloud.UpdateAlphaGlobalBackendService(backendService) + } + return nil +} + func applyLegacyHCToHC(existing *compute.HttpHealthCheck, hc *healthchecks.HealthCheck) { hc.Description = existing.Description hc.CheckIntervalSec = existing.CheckIntervalSec @@ -482,10 +565,21 @@ func applyProbeSettingsToHC(p *v1.Probe, hc *healthchecks.HealthCheck) { break } } - hc.RequestPath = healthPath hc.Host = host hc.Description = "Kubernetes L7 health check generated with readiness probe settings." - hc.CheckIntervalSec = int64(p.PeriodSeconds) + int64(healthchecks.DefaultHealthCheckInterval.Seconds()) hc.TimeoutSec = int64(p.TimeoutSeconds) + if hc.ForNEG { + // For NEG mode, we can support more aggresive healthcheck interval. + hc.CheckIntervalSec = int64(p.PeriodSeconds) + } else { + // For IG mode, short healthcheck interval may health check flooding problem. + hc.CheckIntervalSec = int64(p.PeriodSeconds) + int64(healthchecks.DefaultHealthCheckInterval.Seconds()) + } +} + +//retrieveObjectName takes a GCE object link and return the last part of the url as object name +func retrieveObjectName(url string) string { + splited := strings.Split(url, "/") + return splited[len(splited)-1] } diff --git a/vendor/k8s.io/ingress-gce/pkg/backends/backends_test.go b/vendor/k8s.io/ingress-gce/pkg/backends/backends_test.go index 99d7acffa..f791bbd71 100644 --- a/vendor/k8s.io/ingress-gce/pkg/backends/backends_test.go +++ b/vendor/k8s.io/ingress-gce/pkg/backends/backends_test.go @@ -19,16 +19,20 @@ package backends import ( "fmt" "net/http" + "strings" "testing" + computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" "google.golang.org/api/googleapi" api_v1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/ingress-gce/pkg/healthchecks" "k8s.io/ingress-gce/pkg/instances" + "k8s.io/ingress-gce/pkg/networkendpointgroup" "k8s.io/ingress-gce/pkg/storage" "k8s.io/ingress-gce/pkg/utils" ) @@ -52,11 +56,12 @@ var existingProbe = &api_v1.Probe{ func newTestJig(f BackendServices, fakeIGs instances.InstanceGroups, syncWithCloud bool) (*Backends, healthchecks.HealthCheckProvider) { namer := &utils.Namer{} - nodePool := instances.NewNodePool(fakeIGs) + negGetter := networkendpointgroup.NewFakeNetworkEndpointGroupCloud("test-subnetwork", "test-network") + nodePool := instances.NewNodePool(fakeIGs, namer) nodePool.Init(&instances.FakeZoneLister{Zones: []string{defaultZone}}) healthCheckProvider := healthchecks.NewFakeHealthCheckProvider() healthChecks := healthchecks.NewHealthChecker(healthCheckProvider, "/", namer) - bp := NewBackendPool(f, healthChecks, nodePool, namer, []int64{}, syncWithCloud) + bp := NewBackendPool(f, negGetter, healthChecks, nodePool, namer, []int64{}, syncWithCloud) probes := map[ServicePort]*api_v1.Probe{{Port: 443, Protocol: utils.ProtocolHTTPS}: existingProbe} bp.Init(NewFakeProbeProvider(probes)) @@ -84,7 +89,7 @@ func TestBackendPoolAdd(t *testing.T) { if err != nil { t.Fatalf("Did not find expect error when adding a nodeport: %v, err: %v", nodePort, err) } - beName := namer.BeName(nodePort.Port) + beName := namer.Backend(nodePort.Port) // Check that the new backend has the right port be, err := f.GetGlobalBackendService(beName) @@ -96,7 +101,7 @@ func TestBackendPoolAdd(t *testing.T) { } // Check that the instance group has the new port. - ig, err := fakeIGs.GetInstanceGroup(namer.IGName(), defaultZone) + ig, err := fakeIGs.GetInstanceGroup(namer.InstanceGroup(), defaultZone) var found bool for _, port := range ig.NamedPorts { if port.Port == nodePort.Port { @@ -108,7 +113,7 @@ func TestBackendPoolAdd(t *testing.T) { } // Check the created healthcheck is the correct protocol - hc, err := pool.healthChecker.Get(nodePort.Port) + hc, err := pool.healthChecker.Get(nodePort.Port, false) if err != nil { t.Fatalf("Unexpected err when querying fake healthchecker: %v", err) } @@ -134,7 +139,7 @@ func TestHealthCheckMigration(t *testing.T) { // Create a legacy health check and insert it into the HC provider. legacyHC := &compute.HttpHealthCheck{ - Name: namer.BeName(p.Port), + Name: namer.Backend(p.Port), RequestPath: "/my-healthz-path", Host: "k8s.io", Description: "My custom HC", @@ -147,7 +152,7 @@ func TestHealthCheckMigration(t *testing.T) { pool.Ensure([]ServicePort{p}, nil) // Assert the proper health check was created - hc, _ := pool.healthChecker.Get(p.Port) + hc, _ := pool.healthChecker.Get(p.Port, false) if hc == nil || hc.Protocol() != p.Protocol { t.Fatalf("Expected %s health check, received %v: ", p.Protocol, hc) } @@ -170,7 +175,7 @@ func TestBackendPoolUpdate(t *testing.T) { p := ServicePort{Port: 3000, Protocol: utils.ProtocolHTTP} pool.Ensure([]ServicePort{p}, nil) - beName := namer.BeName(p.Port) + beName := namer.Backend(p.Port) be, err := f.GetGlobalBackendService(beName) if err != nil { @@ -182,7 +187,7 @@ func TestBackendPoolUpdate(t *testing.T) { } // Assert the proper health check was created - hc, _ := pool.healthChecker.Get(p.Port) + hc, _ := pool.healthChecker.Get(p.Port, false) if hc == nil || hc.Protocol() != p.Protocol { t.Fatalf("Expected %s health check, received %v: ", p.Protocol, hc) } @@ -202,7 +207,7 @@ func TestBackendPoolUpdate(t *testing.T) { } // Assert the proper health check was created - hc, _ = pool.healthChecker.Get(p.Port) + hc, _ = pool.healthChecker.Get(p.Port, false) if hc == nil || hc.Protocol() != p.Protocol { t.Fatalf("Expected %s health check, received %v: ", p.Protocol, hc) } @@ -216,7 +221,7 @@ func TestBackendPoolChaosMonkey(t *testing.T) { nodePort := ServicePort{Port: 8080, Protocol: utils.ProtocolHTTP} pool.Ensure([]ServicePort{nodePort}, nil) - beName := namer.BeName(nodePort.Port) + beName := namer.Backend(nodePort.Port) be, _ := f.GetGlobalBackendService(beName) @@ -238,9 +243,9 @@ func TestBackendPoolChaosMonkey(t *testing.T) { if err != nil { t.Fatalf("Failed to find a backend with name %v: %v", beName, err) } - gotGroup, err := fakeIGs.GetInstanceGroup(namer.IGName(), defaultZone) + gotGroup, err := fakeIGs.GetInstanceGroup(namer.InstanceGroup(), defaultZone) if err != nil { - t.Fatalf("Failed to find instance group %v", namer.IGName()) + t.Fatalf("Failed to find instance group %v", namer.InstanceGroup()) } backendLinks := sets.NewString() for _, be := range gotBackend.Backends { @@ -261,8 +266,8 @@ func TestBackendPoolSync(t *testing.T) { f := NewFakeBackendServices(noOpErrFunc) fakeIGs := instances.NewFakeInstanceGroups(sets.NewString()) pool, _ := newTestJig(f, fakeIGs, true) - pool.Ensure([]ServicePort{ServicePort{Port: 81}}, nil) - pool.Ensure([]ServicePort{ServicePort{Port: 90}}, nil) + pool.Ensure([]ServicePort{{Port: 81}}, nil) + pool.Ensure([]ServicePort{{Port: 90}}, nil) if err := pool.Ensure(svcNodePorts, nil); err != nil { t.Errorf("Expected backend pool to add node ports, err: %v", err) } @@ -302,7 +307,7 @@ func TestBackendPoolSync(t *testing.T) { namer := &utils.Namer{} // This backend should get deleted again since it is managed by this cluster. - f.CreateGlobalBackendService(&compute.BackendService{Name: namer.BeName(deletedPorts[0].Port)}) + f.CreateGlobalBackendService(&compute.BackendService{Name: namer.Backend(deletedPorts[0].Port)}) // TODO: Avoid casting. // Repopulate the pool with a cloud list, which now includes the 82 port @@ -318,7 +323,7 @@ func TestBackendPoolSync(t *testing.T) { currSet.Insert(b.Name) } // Port 81 still exists because it's an in-use service NodePort. - knownBe := namer.BeName(81) + knownBe := namer.Backend(81) if !currSet.Has(knownBe) { t.Fatalf("Expected %v to exist in backend pool", knownBe) } @@ -332,16 +337,17 @@ func TestBackendPoolDeleteLegacyHealthChecks(t *testing.T) { namer := &utils.Namer{} f := NewFakeBackendServices(noOpErrFunc) fakeIGs := instances.NewFakeInstanceGroups(sets.NewString()) - nodePool := instances.NewNodePool(fakeIGs) + negGetter := networkendpointgroup.NewFakeNetworkEndpointGroupCloud("test-subnetwork", "test-network") + nodePool := instances.NewNodePool(fakeIGs, namer) nodePool.Init(&instances.FakeZoneLister{Zones: []string{defaultZone}}) hcp := healthchecks.NewFakeHealthCheckProvider() healthChecks := healthchecks.NewHealthChecker(hcp, "/", namer) - bp := NewBackendPool(f, healthChecks, nodePool, namer, []int64{}, false) + bp := NewBackendPool(f, negGetter, healthChecks, nodePool, namer, []int64{}, false) probes := map[ServicePort]*api_v1.Probe{} bp.Init(NewFakeProbeProvider(probes)) // Create a legacy HTTP health check - beName := namer.BeName(80) + beName := namer.Backend(80) if err := hcp.CreateHttpHealthCheck(&compute.HttpHealthCheck{ Name: beName, Port: 80, @@ -362,7 +368,7 @@ func TestBackendPoolDeleteLegacyHealthChecks(t *testing.T) { }) // Have pool sync the above backend service - bp.Ensure([]ServicePort{ServicePort{Port: 80, Protocol: utils.ProtocolHTTPS}}, nil) + bp.Ensure([]ServicePort{{Port: 80, Protocol: utils.ProtocolHTTPS}}, nil) // Verify the legacy health check has been deleted _, err = hcp.GetHttpHealthCheck(beName) @@ -389,9 +395,9 @@ func TestBackendPoolShutdown(t *testing.T) { namer := utils.Namer{} // Add a backend-service and verify that it doesn't exist after Shutdown() - pool.Ensure([]ServicePort{ServicePort{Port: 80}}, nil) + pool.Ensure([]ServicePort{{Port: 80}}, nil) pool.Shutdown() - if _, err := f.GetGlobalBackendService(namer.BeName(80)); err == nil { + if _, err := f.GetGlobalBackendService(namer.Backend(80)); err == nil { t.Fatalf("%v", err) } } @@ -403,9 +409,9 @@ func TestBackendInstanceGroupClobbering(t *testing.T) { namer := utils.Namer{} // This will add the instance group k8s-ig to the instance pool - pool.Ensure([]ServicePort{ServicePort{Port: 80}}, nil) + pool.Ensure([]ServicePort{{Port: 80}}, nil) - be, err := f.GetGlobalBackendService(namer.BeName(80)) + be, err := f.GetGlobalBackendService(namer.Backend(80)) if err != nil { t.Fatalf("%v", err) } @@ -421,8 +427,8 @@ func TestBackendInstanceGroupClobbering(t *testing.T) { } // Make sure repeated adds don't clobber the inserted instance group - pool.Ensure([]ServicePort{ServicePort{Port: 80}}, nil) - be, err = f.GetGlobalBackendService(namer.BeName(80)) + pool.Ensure([]ServicePort{{Port: 80}}, nil) + be, err = f.GetGlobalBackendService(namer.Backend(80)) if err != nil { t.Fatalf("%v", err) } @@ -464,7 +470,7 @@ func TestBackendCreateBalancingMode(t *testing.T) { } pool.Ensure([]ServicePort{nodePort}, nil) - be, err := f.GetGlobalBackendService(namer.BeName(nodePort.Port)) + be, err := f.GetGlobalBackendService(namer.Backend(nodePort.Port)) if err != nil { t.Fatalf("%v", err) } @@ -503,3 +509,92 @@ func TestApplyProbeSettingsToHC(t *testing.T) { t.Errorf("Failed to apply probe's requestpath") } } + +func TestLinkBackendServiceToNEG(t *testing.T) { + clusterId := "clusterid" + zones := []string{"zone1", "zone2"} + namespace := "ns" + name := "name" + port := "port" + namer := utils.NewNamer(clusterId, "") + f := NewFakeBackendServices(noOpErrFunc) + fakeIGs := instances.NewFakeInstanceGroups(sets.NewString()) + fakeNEG := networkendpointgroup.NewFakeNetworkEndpointGroupCloud("test-subnetwork", "test-network") + nodePool := instances.NewNodePool(fakeIGs, namer) + nodePool.Init(&instances.FakeZoneLister{Zones: []string{defaultZone}}) + hcp := healthchecks.NewFakeHealthCheckProvider() + healthChecks := healthchecks.NewHealthChecker(hcp, "/", namer) + bp := NewBackendPool(f, fakeNEG, healthChecks, nodePool, namer, []int64{}, false) + + svcPort := ServicePort{ + Port: 30001, + Protocol: utils.ProtocolHTTP, + SvcName: types.NamespacedName{ + Namespace: namespace, + Name: name, + }, + SvcPort: intstr.FromInt(80), + SvcTargetPort: port, + NEGEnabled: true, + } + if err := bp.Ensure([]ServicePort{svcPort}, nil); err != nil { + t.Fatalf("Failed to ensure backend service: %v", err) + } + + for _, zone := range zones { + err := fakeNEG.CreateNetworkEndpointGroup(&computealpha.NetworkEndpointGroup{Name: namer.NEG(namespace, name, port)}, zone) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + } + + if err := bp.Link(svcPort, zones); err != nil { + t.Fatalf("Failed to link backend service to NEG: %v", err) + } + + bs, err := f.GetGlobalBackendService(namer.Backend(svcPort.Port)) + if err != nil { + t.Fatalf("Failed to retrieve backend service: %v", err) + } + if len(bs.Backends) != len(zones) { + t.Errorf("Expect %v backends, but got %v.", len(zones), len(bs.Backends)) + } + + for _, be := range bs.Backends { + neg := "NetworkEndpointGroup" + if !strings.Contains(be.Group, neg) { + t.Errorf("Expect backend to be a NEG, but got %q", be.Group) + } + } +} + +func TestRetrieveObjectName(t *testing.T) { + testCases := []struct { + url string + expect string + }{ + { + "", + "", + }, + { + "a/b/c/d/", + "", + }, + { + "a/b/c/d", + "d", + }, + { + "compute", + "compute", + }, + } + + for _, tc := range testCases { + if retrieveObjectName(tc.url) != tc.expect { + t.Errorf("expect %q, but got %q", tc.expect, retrieveObjectName(tc.url)) + } + } + +} diff --git a/vendor/k8s.io/ingress-gce/pkg/backends/fakes.go b/vendor/k8s.io/ingress-gce/pkg/backends/fakes.go index 2bdf8e64b..047110e5c 100644 --- a/vendor/k8s.io/ingress-gce/pkg/backends/fakes.go +++ b/vendor/k8s.io/ingress-gce/pkg/backends/fakes.go @@ -17,6 +17,9 @@ limitations under the License. package backends import ( + "encoding/json" + + computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" api_v1 "k8s.io/api/core/v1" "k8s.io/client-go/tools/cache" @@ -60,6 +63,14 @@ func (f *FakeBackendServices) GetGlobalBackendService(name string) (*compute.Bac return nil, utils.FakeGoogleAPINotFoundErr() } +func (f *FakeBackendServices) GetAlphaGlobalBackendService(name string) (*computealpha.BackendService, error) { + obj, err := f.GetGlobalBackendService(name) + if err != nil { + return nil, err + } + return toAlphaBackendService(obj), nil +} + // CreateGlobalBackendService fakes backend service creation. func (f *FakeBackendServices) CreateGlobalBackendService(be *compute.BackendService) error { if f.errFunc != nil { @@ -106,6 +117,11 @@ func (f *FakeBackendServices) UpdateGlobalBackendService(be *compute.BackendServ return f.backendServices.Update(be) } +// UpdateGlobalBackendService fakes updating a backend service. +func (f *FakeBackendServices) UpdateAlphaGlobalBackendService(be *computealpha.BackendService) error { + return f.UpdateGlobalBackendService(toV1BackendService(be)) +} + // GetGlobalBackendServiceHealth fakes getting backend service health. func (f *FakeBackendServices) GetGlobalBackendServiceHealth(name, instanceGroupLink string) (*compute.BackendServiceGroupHealth, error) { be, err := f.GetGlobalBackendService(name) @@ -140,3 +156,17 @@ func (pp *FakeProbeProvider) GetProbe(port ServicePort) (*api_v1.Probe, error) { } return nil, nil } + +func toV1BackendService(be *computealpha.BackendService) *compute.BackendService { + bytes, _ := be.MarshalJSON() + res := &compute.BackendService{} + json.Unmarshal(bytes, res) + return res +} + +func toAlphaBackendService(be *compute.BackendService) *computealpha.BackendService { + bytes, _ := be.MarshalJSON() + res := &computealpha.BackendService{} + json.Unmarshal(bytes, res) + return res +} diff --git a/vendor/k8s.io/ingress-gce/pkg/backends/interfaces.go b/vendor/k8s.io/ingress-gce/pkg/backends/interfaces.go index 451d5ea73..e35f8cc86 100644 --- a/vendor/k8s.io/ingress-gce/pkg/backends/interfaces.go +++ b/vendor/k8s.io/ingress-gce/pkg/backends/interfaces.go @@ -17,6 +17,7 @@ limitations under the License. package backends import ( + computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" api_v1 "k8s.io/api/core/v1" ) @@ -37,14 +38,22 @@ type BackendPool interface { Shutdown() error Status(name string) string List() ([]interface{}, error) + Link(port ServicePort, zones []string) error } // BackendServices is an interface for managing gce backend services. type BackendServices interface { GetGlobalBackendService(name string) (*compute.BackendService, error) + GetAlphaGlobalBackendService(name string) (*computealpha.BackendService, error) UpdateGlobalBackendService(bg *compute.BackendService) error + UpdateAlphaGlobalBackendService(bg *computealpha.BackendService) error CreateGlobalBackendService(bg *compute.BackendService) error DeleteGlobalBackendService(name string) error ListGlobalBackendServices() (*compute.BackendServiceList, error) GetGlobalBackendServiceHealth(name, instanceGroupLink string) (*compute.BackendServiceGroupHealth, error) } + +// NEGGetter is an interface to retrieve NEG object +type NEGGetter interface { + GetNetworkEndpointGroup(name string, zone string) (*computealpha.NetworkEndpointGroup, error) +} diff --git a/vendor/k8s.io/ingress-gce/pkg/controller/cluster_manager.go b/vendor/k8s.io/ingress-gce/pkg/controller/cluster_manager.go index dad058f28..c9e2ffe09 100644 --- a/vendor/k8s.io/ingress-gce/pkg/controller/cluster_manager.go +++ b/vendor/k8s.io/ingress-gce/pkg/controller/cluster_manager.go @@ -119,10 +119,11 @@ func (c *ClusterManager) shutdown() error { // instance groups. // - backendServicePorts are the ports for which we require BackendServices. // - namedPorts are the ports which must be opened on instance groups. +// - firewallPorts are the ports which must be opened in the firewall rule. // Returns the list of all instance groups corresponding to the given loadbalancers. // If in performing the checkpoint the cluster manager runs out of quota, a // googleapi 403 is returned. -func (c *ClusterManager) Checkpoint(lbs []*loadbalancers.L7RuntimeInfo, nodeNames []string, backendServicePorts []backends.ServicePort, namedPorts []backends.ServicePort) ([]*compute.InstanceGroup, error) { +func (c *ClusterManager) Checkpoint(lbs []*loadbalancers.L7RuntimeInfo, nodeNames []string, backendServicePorts []backends.ServicePort, namedPorts []backends.ServicePort, firewallPorts []int64) ([]*compute.InstanceGroup, error) { if len(namedPorts) != 0 { // Add the default backend node port to the list of named ports for instance groups. namedPorts = append(namedPorts, c.defaultBackendNodePort) @@ -147,24 +148,11 @@ func (c *ClusterManager) Checkpoint(lbs []*loadbalancers.L7RuntimeInfo, nodeName return igs, err } - // TODO: Manage default backend and its firewall rule in a centralized way. - // DefaultBackend is managed in l7 pool, which doesn't understand instances, - // which the firewall rule requires. - fwNodePorts := backendServicePorts - if len(lbs) != 0 { - // If there are no Ingresses, we shouldn't be allowing traffic to the - // default backend. Equally importantly if the cluster gets torn down - // we shouldn't leak the firewall rule. - fwNodePorts = append(fwNodePorts, c.defaultBackendNodePort) - } - - var np []int64 - for _, p := range fwNodePorts { - np = append(np, p.Port) + if err := c.firewallPool.Sync(firewallPorts, nodeNames); err != nil { + return igs, err } - err = c.firewallPool.Sync(np, nodeNames) - return igs, err + return igs, nil } func (c *ClusterManager) EnsureInstanceGroupsAndPorts(servicePorts []backends.ServicePort) ([]*compute.InstanceGroup, error) { @@ -207,7 +195,7 @@ func (c *ClusterManager) GC(lbNames []string, nodePorts []backends.ServicePort) // TODO(ingress#120): Move this to the backend pool so it mirrors creation var igErr error if len(lbNames) == 0 { - igName := c.ClusterNamer.IGName() + igName := c.ClusterNamer.InstanceGroup() glog.Infof("Deleting instance group %v", igName) igErr = c.instancePool.DeleteInstanceGroup(igName) } @@ -232,7 +220,7 @@ func NewClusterManager( cluster := ClusterManager{ClusterNamer: namer} // NodePool stores GCE vms that are in this Kubernetes cluster. - cluster.instancePool = instances.NewNodePool(cloud) + cluster.instancePool = instances.NewNodePool(cloud, namer) // BackendPool creates GCE BackendServices and associated health checks. healthChecker := healthchecks.NewHealthChecker(cloud, defaultHealthCheckPath, cluster.ClusterNamer) @@ -242,8 +230,8 @@ func NewClusterManager( cluster.healthCheckers = []healthchecks.HealthChecker{healthChecker, defaultBackendHealthChecker} // TODO: This needs to change to a consolidated management of the default backend. - cluster.backendPool = backends.NewBackendPool(cloud, healthChecker, cluster.instancePool, cluster.ClusterNamer, []int64{defaultBackendNodePort.Port}, true) - defaultBackendPool := backends.NewBackendPool(cloud, defaultBackendHealthChecker, cluster.instancePool, cluster.ClusterNamer, []int64{}, false) + cluster.backendPool = backends.NewBackendPool(cloud, cloud, healthChecker, cluster.instancePool, cluster.ClusterNamer, []int64{defaultBackendNodePort.Port}, true) + defaultBackendPool := backends.NewBackendPool(cloud, cloud, defaultBackendHealthChecker, cluster.instancePool, cluster.ClusterNamer, []int64{}, false) cluster.defaultBackendNodePort = defaultBackendNodePort // L7 pool creates targetHTTPProxy, ForwardingRules, UrlMaps, StaticIPs. diff --git a/vendor/k8s.io/ingress-gce/pkg/controller/controller.go b/vendor/k8s.io/ingress-gce/pkg/controller/controller.go index 240a509d9..39b0b67b1 100644 --- a/vendor/k8s.io/ingress-gce/pkg/controller/controller.go +++ b/vendor/k8s.io/ingress-gce/pkg/controller/controller.go @@ -37,6 +37,7 @@ import ( "k8s.io/ingress-gce/pkg/context" "k8s.io/ingress-gce/pkg/firewalls" "k8s.io/ingress-gce/pkg/loadbalancers" + "k8s.io/ingress-gce/pkg/tls" ) var ( @@ -59,15 +60,18 @@ var ( type LoadBalancerController struct { client kubernetes.Interface - ingressSynced cache.InformerSynced - serviceSynced cache.InformerSynced - podSynced cache.InformerSynced - nodeSynced cache.InformerSynced - ingLister StoreToIngressLister - nodeLister StoreToNodeLister - svcLister StoreToServiceLister + ingressSynced cache.InformerSynced + serviceSynced cache.InformerSynced + podSynced cache.InformerSynced + nodeSynced cache.InformerSynced + endpointSynced cache.InformerSynced + ingLister StoreToIngressLister + nodeLister StoreToNodeLister + svcLister StoreToServiceLister // Health checks are the readiness probes of containers on pods. podLister StoreToPodLister + // endpoint lister is needed when translating service target port to real endpoint target ports. + endpointLister StoreToEndpointLister // TODO: Watch secrets CloudClusterManager *ClusterManager recorder record.EventRecorder @@ -81,10 +85,12 @@ type LoadBalancerController struct { stopLock sync.Mutex shutdown bool // tlsLoader loads secrets from the Kubernetes apiserver for Ingresses. - tlsLoader tlsLoader + tlsLoader tls.TlsLoader // hasSynced returns true if all associated sub-controllers have synced. // Abstracted into a func for testing. hasSynced func() bool + // negEnabled indicates whether NEG feature is enabled. + negEnabled bool } // NewLoadBalancerController creates a controller for gce loadbalancers. @@ -92,7 +98,7 @@ type LoadBalancerController struct { // - clusterManager: A ClusterManager capable of creating all cloud resources // required for L7 loadbalancing. // - resyncPeriod: Watchers relist from the Kubernetes API server this often. -func NewLoadBalancerController(kubeClient kubernetes.Interface, ctx *context.ControllerContext, clusterManager *ClusterManager) (*LoadBalancerController, error) { +func NewLoadBalancerController(kubeClient kubernetes.Interface, ctx *context.ControllerContext, clusterManager *ClusterManager, negEnabled bool) (*LoadBalancerController, error) { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) eventBroadcaster.StartRecordingToSink(&unversionedcore.EventSinkImpl{ @@ -104,6 +110,7 @@ func NewLoadBalancerController(kubeClient kubernetes.Interface, ctx *context.Con stopCh: ctx.StopCh, recorder: eventBroadcaster.NewRecorder(scheme.Scheme, apiv1.EventSource{Component: "loadbalancer-controller"}), + negEnabled: negEnabled, } lbc.nodeQueue = NewTaskQueue(lbc.syncNodes) lbc.ingQueue = NewTaskQueue(lbc.sync) @@ -113,11 +120,17 @@ func NewLoadBalancerController(kubeClient kubernetes.Interface, ctx *context.Con lbc.serviceSynced = ctx.ServiceInformer.HasSynced lbc.podSynced = ctx.PodInformer.HasSynced lbc.nodeSynced = ctx.NodeInformer.HasSynced + lbc.endpointSynced = func() bool { return true } lbc.ingLister.Store = ctx.IngressInformer.GetStore() lbc.svcLister.Indexer = ctx.ServiceInformer.GetIndexer() lbc.podLister.Indexer = ctx.PodInformer.GetIndexer() lbc.nodeLister.Indexer = ctx.NodeInformer.GetIndexer() + if negEnabled { + lbc.endpointSynced = ctx.EndpointInformer.HasSynced + lbc.endpointLister.Indexer = ctx.EndpointInformer.GetIndexer() + } + // ingress event handler ctx.IngressInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: func(obj interface{}) { @@ -169,7 +182,7 @@ func NewLoadBalancerController(kubeClient kubernetes.Interface, ctx *context.Con }) lbc.Translator = &GCETranslator{&lbc} - lbc.tlsLoader = &apiServerTLSLoader{client: lbc.client} + lbc.tlsLoader = &tls.TLSCertsFromSecretsLoader{Client: lbc.client} glog.V(3).Infof("Created new loadbalancer controller") return &lbc, nil @@ -237,7 +250,8 @@ func (lbc *LoadBalancerController) storesSynced() bool { // group just because we don't realize there are nodes in that zone. lbc.nodeSynced() && // Wait for ingresses as a safety measure. We don't really need this. - lbc.ingressSynced()) + lbc.ingressSynced() && + lbc.endpointSynced()) } // sync manages Ingress create/updates/deletes. @@ -297,7 +311,7 @@ func (lbc *LoadBalancerController) sync(key string) (err error) { // Record any errors during sync and throw a single error at the end. This // allows us to free up associated cloud resources ASAP. - igs, err := lbc.CloudClusterManager.Checkpoint(lbs, nodeNames, gceNodePorts, allNodePorts) + igs, err := lbc.CloudClusterManager.Checkpoint(lbs, nodeNames, gceNodePorts, allNodePorts, lbc.Translator.gatherFirewallPorts(gceNodePorts, len(lbs) > 0)) if err != nil { if fwErr, ok := err.(*firewalls.FirewallSyncError); ok { if ingExists { @@ -333,6 +347,22 @@ func (lbc *LoadBalancerController) sync(key string) (err error) { return nil } + if lbc.negEnabled { + svcPorts := lbc.Translator.toNodePorts(&extensions.IngressList{Items: []extensions.Ingress{ing}}) + for _, svcPort := range svcPorts { + if svcPort.NEGEnabled { + + zones, err := lbc.Translator.ListZones() + if err != nil { + return err + } + if err := lbc.CloudClusterManager.backendPool.Link(svcPort, zones); err != nil { + return err + } + } + } + } + // Update the UrlMap of the single loadbalancer that came through the watch. l7, err := lbc.CloudClusterManager.l7Pool.Get(key) if err != nil { @@ -421,7 +451,7 @@ func (lbc *LoadBalancerController) toRuntimeInfo(ingList extensions.IngressList) // Load the TLS cert from the API Spec if it is not specified in the annotation. // TODO: enforce this with validation. if annotations.UseNamedTLS() == "" { - tls, err = lbc.tlsLoader.load(&ing) + tls, err = lbc.tlsLoader.Load(&ing) if err != nil { glog.Warningf("Cannot get certs for Ingress %v/%v: %v", ing.Namespace, ing.Name, err) } diff --git a/vendor/k8s.io/ingress-gce/pkg/controller/controller_test.go b/vendor/k8s.io/ingress-gce/pkg/controller/controller_test.go index 316c3950c..80fed0fb4 100644 --- a/vendor/k8s.io/ingress-gce/pkg/controller/controller_test.go +++ b/vendor/k8s.io/ingress-gce/pkg/controller/controller_test.go @@ -37,6 +37,7 @@ import ( "k8s.io/ingress-gce/pkg/context" "k8s.io/ingress-gce/pkg/firewalls" "k8s.io/ingress-gce/pkg/loadbalancers" + "k8s.io/ingress-gce/pkg/tls" "k8s.io/ingress-gce/pkg/utils" ) @@ -56,7 +57,7 @@ func defaultBackendName(clusterName string) string { func newLoadBalancerController(t *testing.T, cm *fakeClusterManager) *LoadBalancerController { kubeClient := fake.NewSimpleClientset() ctx := context.NewControllerContext(kubeClient, api_v1.NamespaceAll, 1*time.Second, true) - lb, err := NewLoadBalancerController(kubeClient, ctx, cm.ClusterManager) + lb, err := NewLoadBalancerController(kubeClient, ctx, cm.ClusterManager, true) if err != nil { t.Fatalf("%v", err) } @@ -160,7 +161,7 @@ func (p *nodePortManager) toNodePortSvcNames(inputMap map[string]utils.FakeIngre for host, rules := range inputMap { ruleMap := utils.FakeIngressRuleValueMap{} for path, svc := range rules { - ruleMap[path] = p.namer.BeName(int64(p.portMap[svc])) + ruleMap[path] = p.namer.Backend(int64(p.portMap[svc])) } expectedMap[host] = ruleMap } @@ -232,7 +233,9 @@ func TestLbCreateDelete(t *testing.T) { if err != nil { t.Fatalf("%v", err) } - cm.fakeLbs.CheckURLMap(t, l7, pm.toNodePortSvcNames(m)) + if err := cm.fakeLbs.CheckURLMap(l7, pm.toNodePortSvcNames(m)); err != nil { + t.Fatalf("%v", err) + } ings = append(ings, newIng) } lbc.ingLister.Store.Delete(ings[0]) @@ -244,8 +247,8 @@ func TestLbCreateDelete(t *testing.T) { unexpected := []int{pm.portMap["foo2svc"], pm.portMap["bar2svc"]} expected := []int{pm.portMap["foo1svc"], pm.portMap["bar1svc"]} firewallPorts := sets.NewString() - pm.namer.SetFirewallName(testFirewallName) - firewallName := pm.namer.FrName(pm.namer.FrSuffix()) + pm.namer.SetFirewall(testFirewallName) + firewallName := pm.namer.FirewallRule() if firewallRule, err := cm.firewallPool.(*firewalls.FirewallRules).GetFirewall(firewallName); err != nil { t.Fatalf("%v", err) @@ -317,7 +320,9 @@ func TestLbFaultyUpdate(t *testing.T) { if err != nil { t.Fatalf("%v", err) } - cm.fakeLbs.CheckURLMap(t, l7, pm.toNodePortSvcNames(inputMap)) + if err := cm.fakeLbs.CheckURLMap(l7, pm.toNodePortSvcNames(inputMap)); err != nil { + t.Fatalf("%v", err) + } // Change the urlmap directly through the lb pool, resync, and // make sure the controller corrects it. @@ -328,7 +333,9 @@ func TestLbFaultyUpdate(t *testing.T) { }) lbc.sync(ingStoreKey) - cm.fakeLbs.CheckURLMap(t, l7, pm.toNodePortSvcNames(inputMap)) + if err := cm.fakeLbs.CheckURLMap(l7, pm.toNodePortSvcNames(inputMap)); err != nil { + t.Fatalf("%v", err) + } } func TestLbDefaulting(t *testing.T) { @@ -346,7 +353,9 @@ func TestLbDefaulting(t *testing.T) { t.Fatalf("%v", err) } expectedMap := map[string]utils.FakeIngressRuleValueMap{loadbalancers.DefaultHost: {loadbalancers.DefaultPath: "foo1svc"}} - cm.fakeLbs.CheckURLMap(t, l7, pm.toNodePortSvcNames(expectedMap)) + if err := cm.fakeLbs.CheckURLMap(l7, pm.toNodePortSvcNames(expectedMap)); err != nil { + t.Fatalf("%v", err) + } } func TestLbNoService(t *testing.T) { @@ -390,7 +399,9 @@ func TestLbNoService(t *testing.T) { utils.DefaultBackendKey: "foo1svc", } expectedMap := pm.toNodePortSvcNames(inputMap) - cm.fakeLbs.CheckURLMap(t, l7, expectedMap) + if err := cm.fakeLbs.CheckURLMap(l7, expectedMap); err != nil { + t.Fatalf("%v", err) + } } func TestLbChangeStaticIP(t *testing.T) { @@ -408,8 +419,8 @@ func TestLbChangeStaticIP(t *testing.T) { // Add some certs so we get 2 forwarding rules, the changed static IP // should be assigned to both the HTTP and HTTPS forwarding rules. - lbc.tlsLoader = &fakeTLSSecretLoader{ - fakeCerts: map[string]*loadbalancers.TLSCerts{ + lbc.tlsLoader = &tls.FakeTLSSecretLoader{ + FakeCerts: map[string]*loadbalancers.TLSCerts{ cert.SecretName: {Key: "foo", Cert: "bar"}, }, } diff --git a/vendor/k8s.io/ingress-gce/pkg/controller/fakes.go b/vendor/k8s.io/ingress-gce/pkg/controller/fakes.go index 98baf484e..77b62fd6b 100644 --- a/vendor/k8s.io/ingress-gce/pkg/controller/fakes.go +++ b/vendor/k8s.io/ingress-gce/pkg/controller/fakes.go @@ -26,6 +26,7 @@ import ( "k8s.io/ingress-gce/pkg/healthchecks" "k8s.io/ingress-gce/pkg/instances" "k8s.io/ingress-gce/pkg/loadbalancers" + "k8s.io/ingress-gce/pkg/networkendpointgroup" "k8s.io/ingress-gce/pkg/utils" ) @@ -48,15 +49,17 @@ func NewFakeClusterManager(clusterName, firewallName string) *fakeClusterManager fakeBackends := backends.NewFakeBackendServices(func(op int, be *compute.BackendService) error { return nil }) fakeIGs := instances.NewFakeInstanceGroups(sets.NewString()) fakeHCP := healthchecks.NewFakeHealthCheckProvider() + fakeNEG := networkendpointgroup.NewFakeNetworkEndpointGroupCloud("test-subnet", "test-network") namer := utils.NewNamer(clusterName, firewallName) - nodePool := instances.NewNodePool(fakeIGs) + nodePool := instances.NewNodePool(fakeIGs, namer) nodePool.Init(&instances.FakeZoneLister{Zones: []string{"zone-a"}}) healthChecker := healthchecks.NewHealthChecker(fakeHCP, "/", namer) backendPool := backends.NewBackendPool( fakeBackends, + fakeNEG, healthChecker, nodePool, namer, []int64{}, false) l7Pool := loadbalancers.NewLoadBalancerPool( fakeLbs, diff --git a/vendor/k8s.io/ingress-gce/pkg/controller/utils.go b/vendor/k8s.io/ingress-gce/pkg/controller/utils.go index d690aedaa..0d2aa370b 100644 --- a/vendor/k8s.io/ingress-gce/pkg/controller/utils.go +++ b/vendor/k8s.io/ingress-gce/pkg/controller/utils.go @@ -20,6 +20,7 @@ import ( "encoding/json" "fmt" "sort" + "strconv" "time" "github.com/golang/glog" @@ -166,6 +167,11 @@ type StoreToPodLister struct { cache.Indexer } +// StoreToPodLister makes a Store that lists Endpoints. +type StoreToEndpointLister struct { + cache.Indexer +} + // List returns a list of all pods based on selector func (s *StoreToPodLister) List(selector labels.Selector) (ret []*api_v1.Pod, err error) { err = ListAll(s.Indexer, selector, func(m interface{}) { @@ -246,6 +252,41 @@ IngressLoop: return } +func (s *StoreToEndpointLister) ListEndpointTargetPorts(namespace, name, targetPort string) []int { + // if targetPort is integer, no need to translate to endpoint ports + if i, err := strconv.Atoi(targetPort); err == nil { + return []int{i} + } + + ep, exists, err := s.Indexer.Get( + &api_v1.Endpoints{ + ObjectMeta: meta_v1.ObjectMeta{ + Name: name, + Namespace: namespace, + }, + }, + ) + + if !exists { + glog.Errorf("Endpoint object %v/%v does not exist.", namespace, name) + return []int{} + } + if err != nil { + glog.Errorf("Failed to retrieve endpoint object %v/%v: %v", namespace, name, err) + return []int{} + } + + ret := []int{} + for _, subset := range ep.(*api_v1.Endpoints).Subsets { + for _, port := range subset.Ports { + if port.Protocol == api_v1.ProtocolTCP && port.Name == targetPort { + ret = append(ret, int(port.Port)) + } + } + } + return ret +} + // GCETranslator helps with kubernetes -> gce api conversion. type GCETranslator struct { *LoadBalancerController @@ -377,10 +418,12 @@ PortLoop: } p := backends.ServicePort{ - Port: int64(port.NodePort), - Protocol: proto, - SvcName: types.NamespacedName{Namespace: namespace, Name: be.ServiceName}, - SvcPort: be.ServicePort, + Port: int64(port.NodePort), + Protocol: proto, + SvcName: types.NamespacedName{Namespace: namespace, Name: be.ServiceName}, + SvcPort: be.ServicePort, + SvcTargetPort: port.TargetPort.String(), + NEGEnabled: t.negEnabled && annotations.SvcAnnotations(svc.GetAnnotations()).NEGEnabled(), } return p, nil } @@ -511,6 +554,38 @@ func (t *GCETranslator) getHTTPProbe(svc api_v1.Service, targetPort intstr.IntOr return nil, nil } +// gatherFirewallPorts returns all ports needed for open for ingress. +// It gathers both node ports (for IG backends) and target ports (for NEG backends). +func (t *GCETranslator) gatherFirewallPorts(svcPorts []backends.ServicePort, includeDefaultBackend bool) []int64 { + // TODO: Manage default backend and its firewall rule in a centralized way. + // DefaultBackend is managed in l7 pool, which doesn't understand instances, + // which the firewall rule requires. + if includeDefaultBackend { + svcPorts = append(svcPorts, t.CloudClusterManager.defaultBackendNodePort) + } + portMap := map[int64]bool{} + for _, p := range svcPorts { + if p.NEGEnabled { + // For NEG backend, need to open firewall to all endpoint target ports + // TODO(mixia): refactor firewall syncing into a separate go routine with different trigger. + // With NEG, endpoint changes may cause firewall ports to be different if user specifies inconsistent backends. + endpointPorts := t.endpointLister.ListEndpointTargetPorts(p.SvcName.Namespace, p.SvcName.Name, p.SvcTargetPort) + for _, ep := range endpointPorts { + portMap[int64(ep)] = true + } + } else { + // For IG backend, need to open service node port. + portMap[p.Port] = true + } + } + + var np []int64 + for p := range portMap { + np = append(np, p) + } + return np +} + // isSimpleHTTPProbe returns true if the given Probe is: // - an HTTPGet probe, as opposed to a tcp or exec probe // - has no special host or headers fields, except for possibly an HTTP Host header diff --git a/vendor/k8s.io/ingress-gce/pkg/controller/utils_test.go b/vendor/k8s.io/ingress-gce/pkg/controller/utils_test.go index ccee85857..c84a839e5 100644 --- a/vendor/k8s.io/ingress-gce/pkg/controller/utils_test.go +++ b/vendor/k8s.io/ingress-gce/pkg/controller/utils_test.go @@ -25,6 +25,7 @@ import ( api_v1 "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/ingress-gce/pkg/annotations" @@ -269,7 +270,7 @@ func TestAddInstanceGroupsAnnotation(t *testing.T) { }{ { // Single zone. - []*compute.InstanceGroup{&compute.InstanceGroup{ + []*compute.InstanceGroup{{ Name: "ig-name", Zone: "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-b", }}, @@ -278,11 +279,11 @@ func TestAddInstanceGroupsAnnotation(t *testing.T) { { // Multiple zones. []*compute.InstanceGroup{ - &compute.InstanceGroup{ + { Name: "ig-name-1", Zone: "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-b", }, - &compute.InstanceGroup{ + { Name: "ig-name-2", Zone: "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a", }, @@ -301,3 +302,100 @@ func TestAddInstanceGroupsAnnotation(t *testing.T) { } } } + +func TestGatherFirewallPorts(t *testing.T) { + cm := NewFakeClusterManager(DefaultClusterUID, DefaultFirewallName) + lbc := newLoadBalancerController(t, cm) + lbc.CloudClusterManager.defaultBackendNodePort.Port = int64(30000) + + ep1 := "ep1" + ep2 := "ep2" + + svcPorts := []backends.ServicePort{ + {Port: int64(30001)}, + {Port: int64(30002)}, + { + SvcName: types.NamespacedName{ + "ns", + ep1, + }, + Port: int64(30003), + NEGEnabled: true, + SvcTargetPort: "80", + }, + { + SvcName: types.NamespacedName{ + "ns", + ep2, + }, + Port: int64(30004), + NEGEnabled: true, + SvcTargetPort: "named-port", + }, + } + + lbc.endpointLister.Indexer.Add(newDefaultEndpoint(ep1)) + lbc.endpointLister.Indexer.Add(newDefaultEndpoint(ep2)) + + res := lbc.Translator.gatherFirewallPorts(svcPorts, true) + expect := map[int64]bool{ + int64(30000): true, + int64(30001): true, + int64(30002): true, + int64(80): true, + int64(8080): true, + int64(8081): true, + } + if len(res) != len(expect) { + t.Errorf("got firewall ports == %v, want %v", res, expect) + } + + for _, p := range res { + if _, ok := expect[p]; !ok { + t.Errorf("firewall port %v is missing, (got %v, want %v)", p, res, expect) + } + } +} + +func newDefaultEndpoint(name string) *api_v1.Endpoints { + return &api_v1.Endpoints{ + ObjectMeta: meta_v1.ObjectMeta{ + Name: name, + Namespace: "ns", + }, + Subsets: []api_v1.EndpointSubset{ + { + Ports: []api_v1.EndpointPort{ + { + Name: "", + Port: int32(80), + Protocol: api_v1.ProtocolTCP, + }, + { + Name: "named-port", + Port: int32(8080), + Protocol: api_v1.ProtocolTCP, + }, + }, + }, + { + Ports: []api_v1.EndpointPort{ + { + Name: "named-port", + Port: int32(80), + Protocol: api_v1.ProtocolTCP, + }, + }, + }, + { + Ports: []api_v1.EndpointPort{ + { + Name: "named-port", + Port: int32(8081), + Protocol: api_v1.ProtocolTCP, + }, + }, + }, + }, + } +} diff --git a/vendor/k8s.io/ingress-gce/pkg/firewalls/firewalls.go b/vendor/k8s.io/ingress-gce/pkg/firewalls/firewalls.go index af5f8e8f3..19cbb2ded 100644 --- a/vendor/k8s.io/ingress-gce/pkg/firewalls/firewalls.go +++ b/vendor/k8s.io/ingress-gce/pkg/firewalls/firewalls.go @@ -57,11 +57,9 @@ func (fr *FirewallRules) Sync(nodePorts []int64, nodeNames []string) error { if len(nodePorts) == 0 { return fr.Shutdown() } - // Firewall rule prefix must match that inserted by the gce library. - suffix := fr.namer.FrSuffix() // TODO: Fix upstream gce cloudprovider lib so GET also takes the suffix // instead of the whole name. - name := fr.namer.FrName(suffix) + name := fr.namer.FirewallRule() rule, _ := fr.cloud.GetFirewall(name) firewall, err := fr.createFirewallObject(name, "GCE L7 firewall rule", nodePorts, nodeNames) @@ -100,7 +98,7 @@ func (fr *FirewallRules) Sync(nodePorts []int64, nodeNames []string) error { // Shutdown shuts down this firewall rules manager. func (fr *FirewallRules) Shutdown() error { - name := fr.namer.FrName(fr.namer.FrSuffix()) + name := fr.namer.FirewallRule() glog.Infof("Deleting firewall %v", name) return fr.deleteFirewall(name) } diff --git a/vendor/k8s.io/ingress-gce/pkg/firewalls/firewalls_test.go b/vendor/k8s.io/ingress-gce/pkg/firewalls/firewalls_test.go index 0886a6403..fb126baa1 100644 --- a/vendor/k8s.io/ingress-gce/pkg/firewalls/firewalls_test.go +++ b/vendor/k8s.io/ingress-gce/pkg/firewalls/firewalls_test.go @@ -29,7 +29,7 @@ func TestSyncFirewallPool(t *testing.T) { namer := utils.NewNamer("ABC", "XYZ") fwp := NewFakeFirewallsProvider(false, false) fp := NewFirewallPool(fwp, namer) - ruleName := namer.FrName(namer.FrSuffix()) + ruleName := namer.FirewallRule() // Test creating a firewall rule via Sync nodePorts := []int64{80, 443, 3000} @@ -48,7 +48,7 @@ func TestSyncFirewallPool(t *testing.T) { } verifyFirewallRule(fwp, ruleName, nodePorts, nodes, l7SrcRanges, t) - firewall, err := fp.(*FirewallRules).createFirewallObject(namer.FrName(namer.FrSuffix()), "", nodePorts, nodes) + firewall, err := fp.(*FirewallRules).createFirewallObject(namer.FirewallRule(), "", nodePorts, nodes) if err != nil { t.Errorf("unexpected err when creating firewall object, err: %v", err) } @@ -93,7 +93,7 @@ func TestSyncOnXPNWithPermission(t *testing.T) { namer := utils.NewNamer("ABC", "XYZ") fwp := NewFakeFirewallsProvider(true, false) fp := NewFirewallPool(fwp, namer) - ruleName := namer.FrName(namer.FrSuffix()) + ruleName := namer.FirewallRule() // Test creating a firewall rule via Sync nodePorts := []int64{80, 443, 3000} @@ -112,7 +112,7 @@ func TestSyncOnXPNReadOnly(t *testing.T) { namer := utils.NewNamer("ABC", "XYZ") fwp := NewFakeFirewallsProvider(true, true) fp := NewFirewallPool(fwp, namer) - ruleName := namer.FrName(namer.FrSuffix()) + ruleName := namer.FirewallRule() // Test creating a firewall rule via Sync nodePorts := []int64{80, 443, 3000} diff --git a/vendor/k8s.io/ingress-gce/pkg/healthchecks/fakes.go b/vendor/k8s.io/ingress-gce/pkg/healthchecks/fakes.go index b9d0b11f2..4ada4cd25 100644 --- a/vendor/k8s.io/ingress-gce/pkg/healthchecks/fakes.go +++ b/vendor/k8s.io/ingress-gce/pkg/healthchecks/fakes.go @@ -17,6 +17,7 @@ limitations under the License. package healthchecks import ( + computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" "k8s.io/ingress-gce/pkg/utils" @@ -26,14 +27,14 @@ import ( func NewFakeHealthCheckProvider() *FakeHealthCheckProvider { return &FakeHealthCheckProvider{ http: make(map[string]compute.HttpHealthCheck), - generic: make(map[string]compute.HealthCheck), + generic: make(map[string]computealpha.HealthCheck), } } // FakeHealthCheckProvider fakes out health checks. type FakeHealthCheckProvider struct { http map[string]compute.HttpHealthCheck - generic map[string]compute.HealthCheck + generic map[string]computealpha.HealthCheck } // CreateHttpHealthCheck fakes out http health check creation. @@ -77,19 +78,37 @@ func (f *FakeHealthCheckProvider) UpdateHttpHealthCheck(hc *compute.HttpHealthCh func (f *FakeHealthCheckProvider) CreateHealthCheck(hc *compute.HealthCheck) error { v := *hc v.SelfLink = "https://fake.google.com/compute/healthChecks/" + hc.Name - f.generic[hc.Name] = v + alphaHC, _ := toAlphaHealthCheck(hc) + f.generic[hc.Name] = *alphaHC + return nil +} + +// CreateHealthCheck fakes out http health check creation. +func (f *FakeHealthCheckProvider) CreateAlphaHealthCheck(hc *computealpha.HealthCheck) error { + v := *hc + v.SelfLink = "https://fake.google.com/compute/healthChecks/" + hc.Name + f.generic[hc.Name] = *hc return nil } // GetHealthCheck fakes out getting a http health check from the cloud. func (f *FakeHealthCheckProvider) GetHealthCheck(name string) (*compute.HealthCheck, error) { if hc, found := f.generic[name]; found { - return &hc, nil + v1HC, _ := toV1HealthCheck(&hc) + return v1HC, nil } return nil, utils.FakeGoogleAPINotFoundErr() } +// GetHealthCheck fakes out getting a http health check from the cloud. +func (f *FakeHealthCheckProvider) GetAlphaHealthCheck(name string) (*computealpha.HealthCheck, error) { + if hc, found := f.generic[name]; found { + return &hc, nil + } + return nil, utils.FakeGoogleAPINotFoundErr() +} + // DeleteHealthCheck fakes out deleting a http health check. func (f *FakeHealthCheckProvider) DeleteHealthCheck(name string) error { if _, exists := f.generic[name]; !exists { @@ -105,6 +124,15 @@ func (f *FakeHealthCheckProvider) UpdateHealthCheck(hc *compute.HealthCheck) err if _, exists := f.generic[hc.Name]; !exists { return utils.FakeGoogleAPINotFoundErr() } + alphaHC, _ := toAlphaHealthCheck(hc) + f.generic[hc.Name] = *alphaHC + return nil +} + +func (f *FakeHealthCheckProvider) UpdateAlphaHealthCheck(hc *computealpha.HealthCheck) error { + if _, exists := f.generic[hc.Name]; !exists { + return utils.FakeGoogleAPINotFoundErr() + } f.generic[hc.Name] = *hc return nil diff --git a/vendor/k8s.io/ingress-gce/pkg/healthchecks/healthchecks.go b/vendor/k8s.io/ingress-gce/pkg/healthchecks/healthchecks.go index 9bf89f45e..0f6d9c335 100644 --- a/vendor/k8s.io/ingress-gce/pkg/healthchecks/healthchecks.go +++ b/vendor/k8s.io/ingress-gce/pkg/healthchecks/healthchecks.go @@ -20,10 +20,12 @@ import ( "net/http" "time" + computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" "github.com/golang/glog" + "encoding/json" "k8s.io/ingress-gce/pkg/utils" ) @@ -32,14 +34,30 @@ const ( // We're just trying to detect if the node networking is // borked, service level outages will get detected sooner // by kube-proxy. - // DefaultHealthCheckInterval defines how frequently a probe runs + // DefaultHealthCheckInterval defines how frequently a probe runs with IG backends DefaultHealthCheckInterval = 60 * time.Second + // DefaultNEGHealthCheckInterval defines how frequently a probe runs with NEG backends + DefaultNEGHealthCheckInterval = 15 * time.Second // DefaultHealthyThreshold defines the threshold of success probes that declare a backend "healthy" DefaultHealthyThreshold = 1 - // DefaultUnhealthyThreshold defines the threshold of failure probes that declare a backend "unhealthy" + // DefaultUnhealthyThreshold defines the threshold of failure probes that declare a instance "unhealthy" DefaultUnhealthyThreshold = 10 - // DefaultTimeout defines the timeout of each probe + // DefaultNEGUnhealthyThreshold defines the threshold of failure probes that declare a network endpoint "unhealthy" + // In NEG mode, cloud loadbalancer health check request will no longer be loadbalanced by kube-proxy(iptables). + // Instead, health checks can reach endpoints directly. Hence the loadbalancer health check can get a clear signal + // of endpoint health status. As a result, we are able to tune down the unhealthy threshold to 2. + DefaultNEGUnhealthyThreshold = 2 + // DefaultTimeout defines the timeout of each probe for IG DefaultTimeout = 60 * time.Second + // DefaultTimeout defines the timeout of each probe for NEG + DefaultNEGTimeout = 15 * time.Second + + // This is a constant for GCE API. + // USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for + // each network endpoint is used for health checking. For other + // backends, the port or named port specified in the Backend Service is + // used for health checking. + UseServingPortSpecification = "USE_SERVING_PORT" ) // HealthChecks manages health checks. @@ -57,9 +75,17 @@ func NewHealthChecker(cloud HealthCheckProvider, defaultHealthCheckPath string, } // New returns a *HealthCheck with default settings and specified port/protocol -func (h *HealthChecks) New(port int64, protocol utils.AppProtocol) *HealthCheck { - hc := DefaultHealthCheck(port, protocol) - hc.Name = h.namer.BeName(port) +func (h *HealthChecks) New(port int64, protocol utils.AppProtocol, enableNEG bool) *HealthCheck { + var hc *HealthCheck + if enableNEG { + hc = DefaultNEGHealthCheck(protocol) + } else { + hc = DefaultHealthCheck(port, protocol) + } + // port is the key for retriving existing health-check + // TODO: rename backend-service and health-check to not use port as key + hc.Name = h.namer.Backend(port) + hc.Port = port return hc } @@ -71,23 +97,23 @@ func (h *HealthChecks) Sync(hc *HealthCheck) (string, error) { hc.RequestPath = h.defaultPath } - existingHC, err := h.Get(hc.Port) + nodePort := hc.Port + // only use alpha API when PORT_SPECIFICATION field is specified + existingHC, err := h.Get(nodePort, hc.ForNEG) if err != nil { if !utils.IsHTTPErrorCode(err, http.StatusNotFound) { return "", err } - glog.V(2).Infof("Creating health check for port %v with protocol %v", hc.Port, hc.Type) - if err = h.cloud.CreateHealthCheck(hc.ToComputeHealthCheck()); err != nil { + if err = h.create(hc); err != nil { return "", err } - return h.getHealthCheckLink(hc.Port) + return h.getHealthCheckLink(nodePort) } - if existingHC.Protocol() != hc.Protocol() { - glog.V(2).Infof("Updating health check %v because it has protocol %v but need %v", existingHC.Name, existingHC.Type, hc.Type) - err = h.cloud.UpdateHealthCheck(hc.ToComputeHealthCheck()) + if needToUpdate(existingHC, hc) { + err = h.update(existingHC, hc) return existingHC.SelfLink, err } @@ -103,8 +129,48 @@ func (h *HealthChecks) Sync(hc *HealthCheck) (string, error) { return existingHC.SelfLink, nil } +func (h *HealthChecks) create(hc *HealthCheck) error { + if hc.ForNEG { + glog.V(2).Infof("Creating health check with protocol %v", hc.Type) + return h.cloud.CreateAlphaHealthCheck(hc.ToAlphaComputeHealthCheck()) + } else { + glog.V(2).Infof("Creating health check for port %v with protocol %v", hc.Port, hc.Type) + v1hc, err := hc.ToComputeHealthCheck() + if err != nil { + return err + } + return h.cloud.CreateHealthCheck(v1hc) + } +} + +func (h *HealthChecks) update(oldHC, newHC *HealthCheck) error { + if newHC.ForNEG { + glog.V(2).Infof("Updating health check with protocol %v", newHC.Type) + return h.cloud.UpdateAlphaHealthCheck(mergeHealthcheckForNEG(oldHC, newHC).ToAlphaComputeHealthCheck()) + } else { + glog.V(2).Infof("Updating health check for port %v with protocol %v", newHC.Port, newHC.Type) + v1hc, err := newHC.ToComputeHealthCheck() + if err != nil { + return err + } + return h.cloud.UpdateHealthCheck(v1hc) + } +} + +// mergeHealthcheckForNEG merges old health check configuration (potentially for IG) with the new one. +// This is to preserve the existing health check setting as much as possible. +// WARNING: if a service backend is converted from IG mode to NEG mode, +// the existing health check setting will be preserve, although it may not suit the customer needs. +func mergeHealthcheckForNEG(oldHC, newHC *HealthCheck) *HealthCheck { + portSpec := newHC.PortSpecification + newHC.HTTPHealthCheck = oldHC.HTTPHealthCheck + newHC.Port = 0 + newHC.PortSpecification = portSpec + return newHC +} + func (h *HealthChecks) getHealthCheckLink(port int64) (string, error) { - hc, err := h.Get(port) + hc, err := h.Get(port, false) if err != nil { return "", err } @@ -113,41 +179,51 @@ func (h *HealthChecks) getHealthCheckLink(port int64) (string, error) { // Delete deletes the health check by port. func (h *HealthChecks) Delete(port int64) error { - name := h.namer.BeName(port) + name := h.namer.Backend(port) glog.V(2).Infof("Deleting health check %v", name) return h.cloud.DeleteHealthCheck(name) } // Get returns the health check by port -func (h *HealthChecks) Get(port int64) (*HealthCheck, error) { - name := h.namer.BeName(port) - hc, err := h.cloud.GetHealthCheck(name) +func (h *HealthChecks) Get(port int64, alpha bool) (*HealthCheck, error) { + var hc *computealpha.HealthCheck + var err error + name := h.namer.Backend(port) + if alpha { + hc, err = h.cloud.GetAlphaHealthCheck(name) + } else { + v1hc, err := h.cloud.GetHealthCheck(name) + if err != nil { + return nil, err + } + hc, err = toAlphaHealthCheck(v1hc) + } return NewHealthCheck(hc), err } // GetLegacy deletes legacy HTTP health checks func (h *HealthChecks) GetLegacy(port int64) (*compute.HttpHealthCheck, error) { - name := h.namer.BeName(port) + name := h.namer.Backend(port) return h.cloud.GetHttpHealthCheck(name) } // DeleteLegacy deletes legacy HTTP health checks func (h *HealthChecks) DeleteLegacy(port int64) error { - name := h.namer.BeName(port) + name := h.namer.Backend(port) glog.V(2).Infof("Deleting legacy HTTP health check %v", name) return h.cloud.DeleteHttpHealthCheck(name) } // DefaultHealthCheck simply returns the default health check. func DefaultHealthCheck(port int64, protocol utils.AppProtocol) *HealthCheck { - httpSettings := compute.HTTPHealthCheck{ + httpSettings := computealpha.HTTPHealthCheck{ Port: port, // Empty string is used as a signal to the caller to use the appropriate // default. RequestPath: "", } - hcSettings := compute.HealthCheck{ + hcSettings := computealpha.HealthCheck{ // How often to health check. CheckIntervalSec: int64(DefaultHealthCheckInterval.Seconds()), // How long to wait before claiming failure of a health check. @@ -163,6 +239,36 @@ func DefaultHealthCheck(port int64, protocol utils.AppProtocol) *HealthCheck { return &HealthCheck{ HTTPHealthCheck: httpSettings, HealthCheck: hcSettings, + ForNEG: false, + } +} + +// DefaultHealthCheck simply returns the default health check. +func DefaultNEGHealthCheck(protocol utils.AppProtocol) *HealthCheck { + httpSettings := computealpha.HTTPHealthCheck{ + PortSpecification: UseServingPortSpecification, + // Empty string is used as a signal to the caller to use the appropriate + // default. + RequestPath: "", + } + + hcSettings := computealpha.HealthCheck{ + // How often to health check. + CheckIntervalSec: int64(DefaultNEGHealthCheckInterval.Seconds()), + // How long to wait before claiming failure of a health check. + TimeoutSec: int64(DefaultNEGTimeout.Seconds()), + // Number of healthchecks to pass for a vm to be deemed healthy. + HealthyThreshold: DefaultHealthyThreshold, + // Number of healthchecks to fail before the vm is deemed unhealthy. + UnhealthyThreshold: DefaultNEGUnhealthyThreshold, + Description: "Default kubernetes L7 Loadbalancing health check for NEG.", + Type: string(protocol), + } + + return &HealthCheck{ + HTTPHealthCheck: httpSettings, + HealthCheck: hcSettings, + ForNEG: true, } } @@ -172,12 +278,13 @@ func DefaultHealthCheck(port int64, protocol utils.AppProtocol) *HealthCheck { // Consumers should call .Out() func to generate a compute.HealthCheck // with the proper child struct (.HttpHealthCheck, .HttpshealthCheck, etc). type HealthCheck struct { - compute.HTTPHealthCheck - compute.HealthCheck + computealpha.HTTPHealthCheck + computealpha.HealthCheck + ForNEG bool } // NewHealthCheck creates a HealthCheck which abstracts nested structs away -func NewHealthCheck(hc *compute.HealthCheck) *HealthCheck { +func NewHealthCheck(hc *computealpha.HealthCheck) *HealthCheck { if hc == nil { return nil } @@ -188,7 +295,7 @@ func NewHealthCheck(hc *compute.HealthCheck) *HealthCheck { v.HTTPHealthCheck = *hc.HttpHealthCheck case utils.ProtocolHTTPS: // HTTPHealthCheck and HTTPSHealthChecks have identical fields - v.HTTPHealthCheck = compute.HTTPHealthCheck(*hc.HttpsHealthCheck) + v.HTTPHealthCheck = computealpha.HTTPHealthCheck(*hc.HttpsHealthCheck) } // Users should be modifying HTTP(S) specific settings on the embedded @@ -205,7 +312,22 @@ func (hc *HealthCheck) Protocol() utils.AppProtocol { } // ToComputeHealthCheck returns a valid compute.HealthCheck object -func (hc *HealthCheck) ToComputeHealthCheck() *compute.HealthCheck { +func (hc *HealthCheck) ToComputeHealthCheck() (*compute.HealthCheck, error) { + hc.merge() + return toV1HealthCheck(&hc.HealthCheck) +} + +// ToComputeHealthCheck returns a valid compute.HealthCheck object +func (hc *HealthCheck) ToAlphaComputeHealthCheck() *computealpha.HealthCheck { + // Cannot specify both portSpecification and port field. + if len(hc.PortSpecification) > 0 { + hc.Port = 0 + } + hc.merge() + return &hc.HealthCheck +} + +func (hc *HealthCheck) merge() { // Zeroing out child settings as a precaution. GoogleAPI throws an error // if the wrong child struct is set. hc.HealthCheck.HttpsHealthCheck = nil @@ -215,9 +337,50 @@ func (hc *HealthCheck) ToComputeHealthCheck() *compute.HealthCheck { case utils.ProtocolHTTP: hc.HealthCheck.HttpHealthCheck = &hc.HTTPHealthCheck case utils.ProtocolHTTPS: - https := compute.HTTPSHealthCheck(hc.HTTPHealthCheck) + https := computealpha.HTTPSHealthCheck(hc.HTTPHealthCheck) hc.HealthCheck.HttpsHealthCheck = &https } +} - return &hc.HealthCheck +func needToUpdate(old, new *HealthCheck) bool { + if old.Protocol() != new.Protocol() { + glog.V(2).Infof("Updating health check %v because it has protocol %v but need %v", old.Name, old.Type, new.Type) + return true + } + + if old.PortSpecification != new.PortSpecification { + glog.V(2).Infof("Updating health check %v because it has port specification %q but need %q", old.Name, old.PortSpecification, new.PortSpecification) + return true + } + return false +} + +// toV1HealthCheck converts alpha health check to v1 health check. +// WARNING: alpha health check has a additional PORT_SPECIFICATION field. +// This field will be omitted after conversion. +func toV1HealthCheck(hc *computealpha.HealthCheck) (*compute.HealthCheck, error) { + ret := &compute.HealthCheck{} + err := copyViaJSON(ret, hc) + return ret, err +} + +// toV1HealthCheck converts v1 health check to alpha health check. +// There should be no information lost after conversion. +func toAlphaHealthCheck(hc *compute.HealthCheck) (*computealpha.HealthCheck, error) { + ret := &computealpha.HealthCheck{} + err := copyViaJSON(ret, hc) + return ret, err +} + +type jsonConvertable interface { + MarshalJSON() ([]byte, error) +} + +func copyViaJSON(dest interface{}, src jsonConvertable) error { + var err error + bytes, err := src.MarshalJSON() + if err != nil { + return err + } + return json.Unmarshal(bytes, dest) } diff --git a/vendor/k8s.io/ingress-gce/pkg/healthchecks/healthchecks_test.go b/vendor/k8s.io/ingress-gce/pkg/healthchecks/healthchecks_test.go index 26e79d45a..3233505ea 100644 --- a/vendor/k8s.io/ingress-gce/pkg/healthchecks/healthchecks_test.go +++ b/vendor/k8s.io/ingress-gce/pkg/healthchecks/healthchecks_test.go @@ -30,24 +30,24 @@ func TestHealthCheckAdd(t *testing.T) { hcp := NewFakeHealthCheckProvider() healthChecks := NewHealthChecker(hcp, "/", namer) - hc := healthChecks.New(80, utils.ProtocolHTTP) + hc := healthChecks.New(80, utils.ProtocolHTTP, false) _, err := healthChecks.Sync(hc) if err != nil { t.Fatalf("unexpected error: %v", err) } // Verify the health check exists - _, err = hcp.GetHealthCheck(namer.BeName(80)) + _, err = hcp.GetHealthCheck(namer.Backend(80)) if err != nil { t.Fatalf("expected the health check to exist, err: %v", err) } - hc = healthChecks.New(443, utils.ProtocolHTTPS) + hc = healthChecks.New(443, utils.ProtocolHTTPS, false) _, err = healthChecks.Sync(hc) if err != nil { t.Fatalf("unexpected error: %v", err) } // Verify the health check exists - _, err = hcp.GetHealthCheck(namer.BeName(443)) + _, err = hcp.GetHealthCheck(namer.Backend(443)) if err != nil { t.Fatalf("expected the health check to exist, err: %v", err) } @@ -61,13 +61,17 @@ func TestHealthCheckAddExisting(t *testing.T) { // HTTP // Manually insert a health check httpHC := DefaultHealthCheck(3000, utils.ProtocolHTTP) - httpHC.Name = namer.BeName(3000) + httpHC.Name = namer.Backend(3000) httpHC.RequestPath = "/my-probes-health" - hcp.CreateHealthCheck(httpHC.ToComputeHealthCheck()) + v1hc, err := httpHC.ToComputeHealthCheck() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + hcp.CreateHealthCheck(v1hc) // Should not fail adding the same type of health check - hc := healthChecks.New(3000, utils.ProtocolHTTP) - _, err := healthChecks.Sync(hc) + hc := healthChecks.New(3000, utils.ProtocolHTTP, false) + _, err = healthChecks.Sync(hc) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -80,11 +84,15 @@ func TestHealthCheckAddExisting(t *testing.T) { // HTTPS // Manually insert a health check httpsHC := DefaultHealthCheck(4000, utils.ProtocolHTTPS) - httpsHC.Name = namer.BeName(4000) + httpsHC.Name = namer.Backend(4000) httpsHC.RequestPath = "/my-probes-health" - hcp.CreateHealthCheck(httpsHC.ToComputeHealthCheck()) + v1hc, err = httpHC.ToComputeHealthCheck() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + hcp.CreateHealthCheck(v1hc) - hc = healthChecks.New(4000, utils.ProtocolHTTPS) + hc = healthChecks.New(4000, utils.ProtocolHTTPS, false) _, err = healthChecks.Sync(hc) if err != nil { t.Fatalf("unexpected error: %v", err) @@ -103,15 +111,19 @@ func TestHealthCheckDelete(t *testing.T) { // Create HTTP HC for 1234 hc := DefaultHealthCheck(1234, utils.ProtocolHTTP) - hc.Name = namer.BeName(1234) - hcp.CreateHealthCheck(hc.ToComputeHealthCheck()) + hc.Name = namer.Backend(1234) + v1hc, err := hc.ToComputeHealthCheck() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + hcp.CreateHealthCheck(v1hc) // Create HTTPS HC for 1234) - hc.Type = string(utils.ProtocolHTTPS) - hcp.CreateHealthCheck(hc.ToComputeHealthCheck()) + v1hc.Type = string(utils.ProtocolHTTPS) + hcp.CreateHealthCheck(v1hc) // Delete only HTTP 1234 - err := healthChecks.Delete(1234) + err = healthChecks.Delete(1234) if err != nil { t.Errorf("unexpected error when deleting health check, err: %v", err) } @@ -137,12 +149,16 @@ func TestHealthCheckUpdate(t *testing.T) { // HTTP // Manually insert a health check hc := DefaultHealthCheck(3000, utils.ProtocolHTTP) - hc.Name = namer.BeName(3000) + hc.Name = namer.Backend(3000) hc.RequestPath = "/my-probes-health" - hcp.CreateHealthCheck(hc.ToComputeHealthCheck()) + v1hc, err := hc.ToComputeHealthCheck() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + hcp.CreateHealthCheck(v1hc) // Verify the health check exists - _, err := healthChecks.Get(3000) + _, err = healthChecks.Get(3000, false) if err != nil { t.Fatalf("expected the health check to exist, err: %v", err) } @@ -155,7 +171,7 @@ func TestHealthCheckUpdate(t *testing.T) { } // Verify the health check exists - _, err = healthChecks.Get(3000) + _, err = healthChecks.Get(3000, false) if err != nil { t.Fatalf("expected the health check to exist, err: %v", err) } @@ -172,7 +188,7 @@ func TestHealthCheckDeleteLegacy(t *testing.T) { healthChecks := NewHealthChecker(hcp, "/", namer) err := hcp.CreateHttpHealthCheck(&compute.HttpHealthCheck{ - Name: namer.BeName(80), + Name: namer.Backend(80), }) if err != nil { t.Fatalf("expected health check to be created, err: %v", err) @@ -184,3 +200,25 @@ func TestHealthCheckDeleteLegacy(t *testing.T) { } } + +func TestAlphaHealthCheck(t *testing.T) { + namer := &utils.Namer{} + hcp := NewFakeHealthCheckProvider() + healthChecks := NewHealthChecker(hcp, "/", namer) + hc := healthChecks.New(8000, utils.ProtocolHTTP, true) + _, err := healthChecks.Sync(hc) + if err != nil { + t.Fatalf("got %v, want nil", err) + } + + ret, err := healthChecks.Get(8000, true) + if err != nil { + t.Fatalf("got %v, want nil", err) + } + if ret.Port != 0 { + t.Errorf("got ret.Port == %d, want 0", ret.Port) + } + if ret.PortSpecification != UseServingPortSpecification { + t.Errorf("got ret.PortSpecification = %q, want %q", UseServingPortSpecification, ret.PortSpecification) + } +} diff --git a/vendor/k8s.io/ingress-gce/pkg/healthchecks/interfaces.go b/vendor/k8s.io/ingress-gce/pkg/healthchecks/interfaces.go index 5b8090a63..1a65cfef7 100644 --- a/vendor/k8s.io/ingress-gce/pkg/healthchecks/interfaces.go +++ b/vendor/k8s.io/ingress-gce/pkg/healthchecks/interfaces.go @@ -17,6 +17,7 @@ limitations under the License. package healthchecks import ( + computealpha "google.golang.org/api/compute/v0.alpha" compute "google.golang.org/api/compute/v1" "k8s.io/ingress-gce/pkg/utils" @@ -29,18 +30,21 @@ type HealthCheckProvider interface { DeleteHttpHealthCheck(name string) error GetHttpHealthCheck(name string) (*compute.HttpHealthCheck, error) + CreateAlphaHealthCheck(hc *computealpha.HealthCheck) error CreateHealthCheck(hc *compute.HealthCheck) error + UpdateAlphaHealthCheck(hc *computealpha.HealthCheck) error UpdateHealthCheck(hc *compute.HealthCheck) error DeleteHealthCheck(name string) error + GetAlphaHealthCheck(name string) (*computealpha.HealthCheck, error) GetHealthCheck(name string) (*compute.HealthCheck, error) } // HealthChecker is an interface to manage cloud HTTPHealthChecks. type HealthChecker interface { - New(port int64, protocol utils.AppProtocol) *HealthCheck + New(port int64, protocol utils.AppProtocol, enableNEG bool) *HealthCheck Sync(hc *HealthCheck) (string, error) Delete(port int64) error - Get(port int64) (*HealthCheck, error) + Get(port int64, alpha bool) (*HealthCheck, error) GetLegacy(port int64) (*compute.HttpHealthCheck, error) DeleteLegacy(port int64) error } diff --git a/vendor/k8s.io/ingress-gce/pkg/instances/instances.go b/vendor/k8s.io/ingress-gce/pkg/instances/instances.go index 734655916..59f8a6c2d 100644 --- a/vendor/k8s.io/ingress-gce/pkg/instances/instances.go +++ b/vendor/k8s.io/ingress-gce/pkg/instances/instances.go @@ -42,15 +42,17 @@ type Instances struct { // TODO: we can figure this out. snapshotter storage.Snapshotter zoneLister + namer *utils.Namer } // NewNodePool creates a new node pool. // - cloud: implements InstanceGroups, used to sync Kubernetes nodes with // members of the cloud InstanceGroup. -func NewNodePool(cloud InstanceGroups) NodePool { +func NewNodePool(cloud InstanceGroups, namer *utils.Namer) NodePool { return &Instances{ cloud: cloud, snapshotter: storage.NewInMemoryPool(), + namer: namer, } } @@ -128,8 +130,8 @@ func (i *Instances) ensureInstanceGroupAndPorts(name, zone string, ports []int64 // Build slice of NamedPorts for adding var newNamedPorts []*compute.NamedPort - for _, v := range newPorts { - newNamedPorts = append(newNamedPorts, utils.GetNamedPort(v)) + for _, port := range newPorts { + newNamedPorts = append(newNamedPorts, &compute.NamedPort{Name: i.namer.NamedPort(port), Port: port}) } if len(newNamedPorts) > 0 { diff --git a/vendor/k8s.io/ingress-gce/pkg/instances/instances_test.go b/vendor/k8s.io/ingress-gce/pkg/instances/instances_test.go index 76ff446b8..9cec686e7 100644 --- a/vendor/k8s.io/ingress-gce/pkg/instances/instances_test.go +++ b/vendor/k8s.io/ingress-gce/pkg/instances/instances_test.go @@ -20,12 +20,13 @@ import ( "testing" "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/ingress-gce/pkg/utils" ) const defaultZone = "default-zone" func newNodePool(f *FakeInstanceGroups, zone string) NodePool { - pool := NewNodePool(f) + pool := NewNodePool(f, utils.NewNamer("cluster-uid", "cluster-fw")) pool.Init(&FakeZoneLister{[]string{zone}}) return pool } diff --git a/vendor/k8s.io/ingress-gce/pkg/instances/utils.go b/vendor/k8s.io/ingress-gce/pkg/instances/utils.go index 042eb85b9..23d7e5a39 100644 --- a/vendor/k8s.io/ingress-gce/pkg/instances/utils.go +++ b/vendor/k8s.io/ingress-gce/pkg/instances/utils.go @@ -9,5 +9,5 @@ import ( // Helper method to create instance groups. // This method exists to ensure that we are using the same logic at all places. func EnsureInstanceGroupsAndPorts(nodePool NodePool, namer *utils.Namer, ports []int64) ([]*compute.InstanceGroup, error) { - return nodePool.EnsureInstanceGroupsAndPorts(namer.IGName(), ports) + return nodePool.EnsureInstanceGroupsAndPorts(namer.InstanceGroup(), ports) } diff --git a/vendor/k8s.io/ingress-gce/pkg/loadbalancers/fakes.go b/vendor/k8s.io/ingress-gce/pkg/loadbalancers/fakes.go index 9f9c3e94e..d343bbacc 100644 --- a/vendor/k8s.io/ingress-gce/pkg/loadbalancers/fakes.go +++ b/vendor/k8s.io/ingress-gce/pkg/loadbalancers/fakes.go @@ -18,7 +18,6 @@ package loadbalancers import ( "fmt" - "testing" compute "google.golang.org/api/compute/v1" "k8s.io/apimachinery/pkg/util/sets" @@ -49,26 +48,30 @@ type FakeLoadBalancers struct { Certs []*compute.SslCertificate name string calls []string // list of calls that were made + + namer *utils.Namer } // TODO: There is some duplication between these functions and the name mungers in // loadbalancer file. func (f *FakeLoadBalancers) fwName(https bool) string { + proto := utils.HTTPProtocol if https { - return fmt.Sprintf("%v-%v", httpsForwardingRulePrefix, f.name) + proto = utils.HTTPSProtocol } - return fmt.Sprintf("%v-%v", forwardingRulePrefix, f.name) + return f.namer.ForwardingRule(f.name, proto) } func (f *FakeLoadBalancers) umName() string { - return fmt.Sprintf("%v-%v", urlMapPrefix, f.name) + return f.namer.UrlMap(f.name) } func (f *FakeLoadBalancers) tpName(https bool) string { + protocol := utils.HTTPProtocol if https { - return fmt.Sprintf("%v-%v", targetHTTPSProxyPrefix, f.name) + protocol = utils.HTTPSProtocol } - return fmt.Sprintf("%v-%v", targetProxyPrefix, f.name) + return f.namer.TargetProxy(f.name, protocol) } // String is the string method for FakeLoadBalancers. @@ -315,11 +318,11 @@ func (f *FakeLoadBalancers) SetSslCertificateForTargetHttpsProxy(proxy *compute. // UrlMap fakes // CheckURLMap checks the URL map. -func (f *FakeLoadBalancers) CheckURLMap(t *testing.T, l7 *L7, expectedMap map[string]utils.FakeIngressRuleValueMap) { +func (f *FakeLoadBalancers) CheckURLMap(l7 *L7, expectedMap map[string]utils.FakeIngressRuleValueMap) error { f.calls = append(f.calls, "CheckURLMap") um, err := f.GetUrlMap(l7.um.Name) if err != nil || um == nil { - t.Fatalf("%v", err) + return err } // Check the default backend var d string @@ -331,7 +334,7 @@ func (f *FakeLoadBalancers) CheckURLMap(t *testing.T, l7 *L7, expectedMap map[st } // The urlmap should have a default backend, and each path matcher. if d != "" && l7.um.DefaultService != d { - t.Fatalf("Expected default backend %v found %v", + return fmt.Errorf("Expected default backend %v found %v", d, l7.um.DefaultService) } @@ -341,10 +344,10 @@ func (f *FakeLoadBalancers) CheckURLMap(t *testing.T, l7 *L7, expectedMap map[st for _, hostRule := range l7.um.HostRules { if matcher.Name == hostRule.PathMatcher { if len(hostRule.Hosts) != 1 { - t.Fatalf("Unexpected hosts in hostrules %+v", hostRule) + return fmt.Errorf("Unexpected hosts in hostrules %+v", hostRule) } if d != "" && matcher.DefaultService != d { - t.Fatalf("Expected default backend %v found %v", + return fmt.Errorf("Expected default backend %v found %v", d, matcher.DefaultService) } hostname = hostRule.Hosts[0] @@ -354,15 +357,15 @@ func (f *FakeLoadBalancers) CheckURLMap(t *testing.T, l7 *L7, expectedMap map[st // These are all pathrules for a single host, found above for _, rule := range matcher.PathRules { if len(rule.Paths) != 1 { - t.Fatalf("Unexpected rule in pathrules %+v", rule) + return fmt.Errorf("Unexpected rule in pathrules %+v", rule) } pathRule := rule.Paths[0] if hostMap, ok := expectedMap[hostname]; !ok { - t.Fatalf("Expected map for host %v: %v", hostname, hostMap) + return fmt.Errorf("Expected map for host %v: %v", hostname, hostMap) } else if svc, ok := expectedMap[hostname][pathRule]; !ok { - t.Fatalf("Expected rule %v in host map", pathRule) + return fmt.Errorf("Expected rule %v in host map", pathRule) } else if svc != rule.Service { - t.Fatalf("Expected service %v found %v", svc, rule.Service) + return fmt.Errorf("Expected service %v found %v", svc, rule.Service) } delete(expectedMap[hostname], pathRule) if len(expectedMap[hostname]) == 0 { @@ -371,8 +374,9 @@ func (f *FakeLoadBalancers) CheckURLMap(t *testing.T, l7 *L7, expectedMap map[st } } if len(expectedMap) != 0 { - t.Fatalf("Untranslated entries %+v", expectedMap) + return fmt.Errorf("Untranslated entries %+v", expectedMap) } + return nil } // Static IP fakes @@ -447,7 +451,8 @@ func (f *FakeLoadBalancers) DeleteSslCertificate(name string) error { // eg: forwardingRule.SelfLink == k8-fw-name. func NewFakeLoadBalancers(name string) *FakeLoadBalancers { return &FakeLoadBalancers{ - Fw: []*compute.ForwardingRule{}, - name: name, + Fw: []*compute.ForwardingRule{}, + name: name, + namer: utils.NewNamer("fake-cluster", "fake-fw"), } } diff --git a/vendor/k8s.io/ingress-gce/pkg/loadbalancers/loadbalancers.go b/vendor/k8s.io/ingress-gce/pkg/loadbalancers/loadbalancers.go index a419858ec..ba31faa49 100644 --- a/vendor/k8s.io/ingress-gce/pkg/loadbalancers/loadbalancers.go +++ b/vendor/k8s.io/ingress-gce/pkg/loadbalancers/loadbalancers.go @@ -48,19 +48,8 @@ const ( // recognized by GCE. DefaultPath = "/*" - // A single target proxy/urlmap/forwarding rule is created per loadbalancer. - // Tagged with the namespace/name of the Ingress. - // TODO: Move the namer to its own package out of utils and move the prefix - // with it. Currently the construction of the loadbalancer resources names - // are split between the namer and the loadbalancers package. - targetProxyPrefix = "k8s-tp" - targetHTTPSProxyPrefix = "k8s-tps" - sslCertPrefix = "k8s-ssl" - forwardingRulePrefix = "k8s-fw" - httpsForwardingRulePrefix = "k8s-fws" - urlMapPrefix = "k8s-um" - httpDefaultPortRange = "80-80" - httpsDefaultPortRange = "443-443" + httpDefaultPortRange = "80-80" + httpsDefaultPortRange = "443-443" ) // L7s implements LoadBalancerPool. @@ -94,7 +83,7 @@ func (l *L7s) create(ri *L7RuntimeInfo) (*L7, error) { } return &L7{ runtimeInfo: ri, - Name: l.namer.LBName(ri.Name), + Name: l.namer.LoadBalancer(ri.Name), cloud: l.cloud, glbcDefaultBackend: l.glbcDefaultBackend, namer: l.namer, @@ -104,7 +93,7 @@ func (l *L7s) create(ri *L7RuntimeInfo) (*L7, error) { // Get returns the loadbalancer by name. func (l *L7s) Get(name string) (*L7, error) { - name = l.namer.LBName(name) + name = l.namer.LoadBalancer(name) lb, exists := l.snapshotter.Get(name) if !exists { return nil, fmt.Errorf("loadbalancer %v not in pool", name) @@ -115,7 +104,7 @@ func (l *L7s) Get(name string) (*L7, error) { // Add gets or creates a loadbalancer. // If the loadbalancer already exists, it checks that its edges are valid. func (l *L7s) Add(ri *L7RuntimeInfo) (err error) { - name := l.namer.LBName(ri.Name) + name := l.namer.LoadBalancer(ri.Name) lb, _ := l.Get(name) if lb == nil { @@ -148,7 +137,7 @@ func (l *L7s) Add(ri *L7RuntimeInfo) (err error) { // Delete deletes a loadbalancer by name. func (l *L7s) Delete(name string) error { - name = l.namer.LBName(name) + name = l.namer.LoadBalancer(name) lb, err := l.Get(name) if err != nil { return err @@ -191,7 +180,7 @@ func (l *L7s) Sync(lbs []*L7RuntimeInfo) error { func (l *L7s) GC(names []string) error { knownLoadBalancers := sets.NewString() for _, n := range names { - knownLoadBalancers.Insert(l.namer.LBName(n)) + knownLoadBalancers.Insert(l.namer.LoadBalancer(n)) } pool := l.snapshotter.Snapshot() @@ -300,7 +289,7 @@ func (l *L7) checkUrlMap(backend *compute.BackendService) (err error) { if l.glbcDefaultBackend == nil { return fmt.Errorf("cannot create urlmap without default backend") } - urlMapName := l.namer.Truncate(fmt.Sprintf("%v-%v", urlMapPrefix, l.Name)) + urlMapName := l.namer.UrlMap(l.Name) urlMap, _ := l.cloud.GetUrlMap(urlMapName) if urlMap != nil { glog.V(3).Infof("Url map %v already exists", urlMap.Name) @@ -328,7 +317,7 @@ func (l *L7) checkProxy() (err error) { if l.um == nil { return fmt.Errorf("cannot create proxy without urlmap") } - proxyName := l.namer.Truncate(fmt.Sprintf("%v-%v", targetProxyPrefix, l.Name)) + proxyName := l.namer.TargetProxy(l.Name, utils.HTTPProtocol) proxy, _ := l.cloud.GetTargetHttpProxy(proxyName) if proxy == nil { glog.Infof("Creating new http proxy for urlmap %v", l.um.Name) @@ -358,8 +347,7 @@ func (l *L7) checkProxy() (err error) { } func (l *L7) deleteOldSSLCert() (err error) { - if l.oldSSLCert == nil || l.sslCert == nil || - l.oldSSLCert.Name == l.sslCert.Name || !strings.HasPrefix(l.oldSSLCert.Name, sslCertPrefix) { + if l.oldSSLCert == nil || l.sslCert == nil || l.oldSSLCert.Name == l.sslCert.Name || !l.namer.IsSSLCert(l.oldSSLCert.Name) { return nil } glog.Infof("Cleaning up old SSL Certificate %v, current name %v", l.oldSSLCert.Name, l.sslCert.Name) @@ -426,8 +414,8 @@ func (l *L7) nextCertificateName() string { // every certificate update. We don't append the index at the end so we're // sure it isn't truncated. // TODO: Clean this code up into a ring buffer. - primaryCertName := l.namer.Truncate(fmt.Sprintf("%v-%v", sslCertPrefix, l.Name)) - secondaryCertName := l.namer.Truncate(fmt.Sprintf("%v-%d-%v", sslCertPrefix, 1, l.Name)) + primaryCertName := l.namer.SSLCert(l.Name, true) + secondaryCertName := l.namer.SSLCert(l.Name, false) if l.sslCert != nil && l.sslCert.Name == primaryCertName { return secondaryCertName @@ -487,7 +475,7 @@ func (l *L7) checkSSLCert() error { } func (l *L7) getSslCertLinkInUse() string { - proxyName := l.namer.Truncate(fmt.Sprintf("%v-%v", targetHTTPSProxyPrefix, l.Name)) + proxyName := l.namer.TargetProxy(l.Name, utils.HTTPSProtocol) proxy, _ := l.cloud.GetTargetHttpsProxy(proxyName) if proxy != nil && len(proxy.SslCertificates) > 0 { return proxy.SslCertificates[0] @@ -503,7 +491,7 @@ func (l *L7) checkHttpsProxy() (err error) { if l.um == nil { return fmt.Errorf("no UrlMap for %v, will not create HTTPS proxy", l.Name) } - proxyName := l.namer.Truncate(fmt.Sprintf("%v-%v", targetHTTPSProxyPrefix, l.Name)) + proxyName := l.namer.TargetProxy(l.Name, utils.HTTPSProtocol) proxy, _ := l.cloud.GetTargetHttpsProxy(proxyName) if proxy == nil { glog.Infof("Creating new https proxy for urlmap %v", l.um.Name) @@ -627,7 +615,7 @@ func (l *L7) checkHttpForwardingRule() (err error) { if l.tp == nil { return fmt.Errorf("cannot create forwarding rule without proxy") } - name := l.namer.Truncate(fmt.Sprintf("%v-%v", forwardingRulePrefix, l.Name)) + name := l.namer.ForwardingRule(l.Name, utils.HTTPProtocol) address, _ := l.getEffectiveIP() fw, err := l.checkForwardingRule(name, l.tp.SelfLink, address, httpDefaultPortRange) if err != nil { @@ -642,7 +630,7 @@ func (l *L7) checkHttpsForwardingRule() (err error) { glog.V(3).Infof("No https target proxy for %v, not created https forwarding rule", l.Name) return nil } - name := l.namer.Truncate(fmt.Sprintf("%v-%v", httpsForwardingRulePrefix, l.Name)) + name := l.namer.ForwardingRule(l.Name, utils.HTTPSProtocol) address, _ := l.getEffectiveIP() fws, err := l.checkForwardingRule(name, l.tps.SelfLink, address, httpsDefaultPortRange) if err != nil { @@ -662,7 +650,7 @@ func (l *L7) checkStaticIP() (err error) { glog.V(3).Infof("Not managing user specified static IP %v", address) return nil } - staticIPName := l.namer.Truncate(fmt.Sprintf("%v-%v", forwardingRulePrefix, l.Name)) + staticIPName := l.namer.ForwardingRule(l.Name, utils.HTTPProtocol) ip, _ := l.cloud.GetGlobalAddress(staticIPName) if ip == nil { glog.Infof("Creating static ip %v", staticIPName) diff --git a/vendor/k8s.io/ingress-gce/pkg/loadbalancers/loadbalancers_test.go b/vendor/k8s.io/ingress-gce/pkg/loadbalancers/loadbalancers_test.go index 45e86b95c..c74e0f663 100644 --- a/vendor/k8s.io/ingress-gce/pkg/loadbalancers/loadbalancers_test.go +++ b/vendor/k8s.io/ingress-gce/pkg/loadbalancers/loadbalancers_test.go @@ -26,6 +26,7 @@ import ( "k8s.io/ingress-gce/pkg/backends" "k8s.io/ingress-gce/pkg/healthchecks" "k8s.io/ingress-gce/pkg/instances" + "k8s.io/ingress-gce/pkg/networkendpointgroup" "k8s.io/ingress-gce/pkg/utils" ) @@ -41,12 +42,13 @@ func newFakeLoadBalancerPool(f LoadBalancers, t *testing.T) LoadBalancerPool { fakeBackends := backends.NewFakeBackendServices(func(op int, be *compute.BackendService) error { return nil }) fakeIGs := instances.NewFakeInstanceGroups(sets.NewString()) fakeHCP := healthchecks.NewFakeHealthCheckProvider() + fakeNEG := networkendpointgroup.NewFakeNetworkEndpointGroupCloud("test-subnet", "test-network") namer := &utils.Namer{} healthChecker := healthchecks.NewHealthChecker(fakeHCP, "/", namer) - nodePool := instances.NewNodePool(fakeIGs) + nodePool := instances.NewNodePool(fakeIGs, namer) nodePool.Init(&instances.FakeZoneLister{Zones: []string{defaultZone}}) backendPool := backends.NewBackendPool( - fakeBackends, healthChecker, nodePool, namer, []int64{}, false) + fakeBackends, fakeNEG, healthChecker, nodePool, namer, []int64{}, false) return NewLoadBalancerPool(f, backendPool, testDefaultBeNodePort, namer) } @@ -62,16 +64,24 @@ func TestCreateHTTPLoadBalancer(t *testing.T) { t.Fatalf("Expected l7 not created") } um, err := f.GetUrlMap(f.umName()) - if err != nil || - um.DefaultService != pool.(*L7s).glbcDefaultBackend.SelfLink { - t.Fatalf("%v", err) + if err != nil { + t.Fatalf("f.GetUrlMap(%q) = _, %v, want nil", f.umName(), err) + } + if um.DefaultService != pool.(*L7s).glbcDefaultBackend.SelfLink { + t.Fatalf("got um.DefaultService = %v, want %v", um.DefaultService, pool.(*L7s).glbcDefaultBackend.SelfLink) } tp, err := f.GetTargetHttpProxy(f.tpName(false)) - if err != nil || tp.UrlMap != um.SelfLink { + if err != nil { + t.Fatalf("f.GetTargetHttpProxy(%q) = _, %v, want nil", f.tpName(false), err) + } + if tp.UrlMap != um.SelfLink { t.Fatalf("%v", err) } fw, err := f.GetGlobalForwardingRule(f.fwName(false)) - if err != nil || fw.Target != tp.SelfLink { + if err != nil { + t.Fatalf("f.GetGlobalForwardingRule(%q) = _, %v, want nil", f.fwName(false), err) + } + if fw.Target != tp.SelfLink { t.Fatalf("%v", err) } } @@ -338,7 +348,9 @@ func TestUpdateUrlMap(t *testing.T) { "/bar1": "bar1svc", }, } - f.CheckURLMap(t, l7, expectedMap) + if err := f.CheckURLMap(l7, expectedMap); err != nil { + t.Fatalf("%v", err) + } } func TestUpdateUrlMapNoChanges(t *testing.T) { @@ -387,14 +399,14 @@ func TestNameParsing(t *testing.T) { clusterName := "123" firewallName := clusterName namer := utils.NewNamer(clusterName, firewallName) - fullName := namer.Truncate(fmt.Sprintf("%v-%v", forwardingRulePrefix, namer.LBName("testlb"))) + fullName := namer.ForwardingRule(namer.LoadBalancer("testlb"), utils.HTTPProtocol) annotationsMap := map[string]string{ fmt.Sprintf("%v/forwarding-rule", utils.K8sAnnotationPrefix): fullName, } components := namer.ParseName(GCEResourceName(annotationsMap, "forwarding-rule")) - t.Logf("%+v", components) + t.Logf("components = %+v", components) if components.ClusterName != clusterName { - t.Errorf("Failed to parse cluster name from %v, expected %v got %v", fullName, clusterName, components.ClusterName) + t.Errorf("namer.ParseName(%q), got components.ClusterName == %q, want %q", fullName, clusterName, components.ClusterName) } resourceName := "fw" if components.Resource != resourceName { @@ -429,7 +441,7 @@ func TestClusterNameChange(t *testing.T) { } newName := "newName" namer := pool.(*L7s).namer - namer.SetClusterName(newName) + namer.SetUID(newName) f.name = fmt.Sprintf("%v--%v", lbInfo.Name, newName) // Now the components should get renamed with the next suffix. @@ -459,7 +471,7 @@ func TestClusterNameChange(t *testing.T) { func TestInvalidClusterNameChange(t *testing.T) { namer := utils.NewNamer("test--123", "test--123") - if got := namer.GetClusterName(); got != "123" { + if got := namer.UID(); got != "123" { t.Fatalf("Expected name 123, got %v", got) } // A name with `--` should take the last token @@ -469,8 +481,8 @@ func TestInvalidClusterNameChange(t *testing.T) { {"", ""}, {"foo--bar--com", "com"}, } { - namer.SetClusterName(testCase.newName) - if got := namer.GetClusterName(); got != testCase.expected { + namer.SetUID(testCase.newName) + if got := namer.UID(); got != testCase.expected { t.Fatalf("Expected %q got %q", testCase.expected, got) } } diff --git a/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/controller.go b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/controller.go new file mode 100644 index 000000000..576b8bd2b --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/controller.go @@ -0,0 +1,368 @@ +/* +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 networkendpointgroup + +import ( + "fmt" + "reflect" + "strconv" + "time" + + "github.com/golang/glog" + apiv1 "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/kubernetes/scheme" + unversionedcore "k8s.io/client-go/kubernetes/typed/core/v1" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" + "k8s.io/ingress-gce/pkg/annotations" + "k8s.io/ingress-gce/pkg/context" +) + +const ( + // For each service, only retries 15 times to process it. + // This is a convention in kube-controller-manager. + maxRetries = 15 +) + +// Controller is network endpoint group controller. +// It determines whether NEG for a service port is needed, then signals negSyncerManager to sync it. +type Controller struct { + manager negSyncerManager + resyncPeriod time.Duration + recorder record.EventRecorder + + ingressSynced cache.InformerSynced + serviceSynced cache.InformerSynced + endpointSynced cache.InformerSynced + ingressLister cache.Indexer + serviceLister cache.Indexer + + // serviceQueue takes service key as work item. Service key with format "namespace/name". + serviceQueue workqueue.RateLimitingInterface +} + +// NewController returns a network endpoint group controller. +func NewController( + kubeClient kubernetes.Interface, + cloud networkEndpointGroupCloud, + ctx *context.ControllerContext, + zoneGetter zoneGetter, + namer networkEndpointGroupNamer, + resyncPeriod time.Duration, +) (*Controller, error) { + // init event recorder + // TODO: move event recorder initializer to main. Reuse it among controllers. + eventBroadcaster := record.NewBroadcaster() + eventBroadcaster.StartLogging(glog.Infof) + eventBroadcaster.StartRecordingToSink(&unversionedcore.EventSinkImpl{ + Interface: kubeClient.Core().Events(""), + }) + recorder := eventBroadcaster.NewRecorder(scheme.Scheme, + apiv1.EventSource{Component: "networkendpointgroup-controller"}) + + manager := newSyncerManager(namer, + recorder, + cloud, + zoneGetter, + ctx.ServiceInformer.GetIndexer(), + ctx.EndpointInformer.GetIndexer()) + + negController := &Controller{ + manager: manager, + resyncPeriod: resyncPeriod, + recorder: recorder, + ingressSynced: ctx.IngressInformer.HasSynced, + serviceSynced: ctx.ServiceInformer.HasSynced, + endpointSynced: ctx.EndpointInformer.HasSynced, + ingressLister: ctx.IngressInformer.GetIndexer(), + serviceLister: ctx.ServiceInformer.GetIndexer(), + serviceQueue: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()), + } + + ctx.ServiceInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: negController.enqueueService, + DeleteFunc: negController.enqueueService, + UpdateFunc: func(old, cur interface{}) { + negController.enqueueService(cur) + }, + }) + + ctx.IngressInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: negController.enqueueIngressServices, + DeleteFunc: negController.enqueueIngressServices, + UpdateFunc: func(old, cur interface{}) { + keys := gatherIngressServiceKeys(old) + keys = keys.Union(gatherIngressServiceKeys(cur)) + for _, key := range keys.List() { + negController.enqueueService(cache.ExplicitKey(key)) + } + }, + }) + + ctx.EndpointInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: negController.processEndpoint, + DeleteFunc: negController.processEndpoint, + UpdateFunc: func(old, cur interface{}) { + negController.processEndpoint(cur) + }, + }) + return negController, nil +} + +func (c *Controller) Run(stopCh <-chan struct{}) { + wait.PollUntil(5*time.Second, func() (bool, error) { + glog.V(2).Infof("Waiting for initial sync") + return c.synced(), nil + }, stopCh) + + glog.V(2).Infof("Starting network endpoint group controller") + defer func() { + glog.V(2).Infof("Shutting down network endpoint group controller") + c.stop() + }() + + go wait.Until(c.serviceWorker, time.Second, stopCh) + go wait.Until(c.gc, c.resyncPeriod, stopCh) + + <-stopCh +} + +func (c *Controller) stop() { + glog.V(2).Infof("Shutting down network endpoint group controller") + c.serviceQueue.ShutDown() + c.manager.ShutDown() +} + +// processEndpoint finds the related syncers and signal it to sync +func (c *Controller) processEndpoint(obj interface{}) { + key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) + if err != nil { + glog.Errorf("Failed to generate endpoint key: %v", err) + return + } + namespace, name, err := cache.SplitMetaNamespaceKey(key) + if err != nil { + return + } + c.manager.Sync(namespace, name) +} + +func (c *Controller) serviceWorker() { + for { + func() { + key, quit := c.serviceQueue.Get() + if quit { + return + } + defer c.serviceQueue.Done(key) + err := c.processService(key.(string)) + c.handleErr(err, key) + }() + } +} + +// processService takes a service and determines whether it needs NEGs or not. +func (c *Controller) processService(key string) error { + namespace, name, err := cache.SplitMetaNamespaceKey(key) + if err != nil { + return err + } + + svc, exists, err := c.serviceLister.GetByKey(key) + if err != nil { + return err + } + if !exists { + c.manager.StopSyncer(namespace, name) + return nil + } + + var service *apiv1.Service + var enabled bool + if exists { + service = svc.(*apiv1.Service) + enabled = annotations.SvcAnnotations(service.GetAnnotations()).NEGEnabled() + } + + if !enabled { + c.manager.StopSyncer(namespace, name) + return nil + } + + glog.V(2).Infof("Syncing service %q", key) + // Only service ports referenced by ingress are synced for NEG + ings := getIngressServicesFromStore(c.ingressLister, service) + return c.manager.EnsureSyncers(namespace, name, gatherSerivceTargetPortUsedByIngress(ings, service)) +} + +func (c *Controller) handleErr(err error, key interface{}) { + if err == nil { + c.serviceQueue.Forget(key) + return + } + + glog.Errorf("Error processing service %q: %v", key, err) + if c.serviceQueue.NumRequeues(key) < maxRetries { + c.serviceQueue.AddRateLimited(key) + return + } + + defer c.serviceQueue.Forget(key) + service, exists, err := c.serviceLister.GetByKey(key.(string)) + if err != nil { + glog.Warning("Failed to retrieve service %q from store: %v", key.(string), err) + return + } + if exists { + c.recorder.Eventf(service.(*apiv1.Service), apiv1.EventTypeWarning, "ProcessServiceFailed", "Service %q dropped from queue (requeued %v times)", key, c.serviceQueue.NumRequeues(key)) + } +} + +func (c *Controller) enqueueService(obj interface{}) { + key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) + if err != nil { + glog.Errorf("Failed to generate service key: %v", err) + return + } + c.serviceQueue.Add(key) +} + +func (c *Controller) enqueueIngressServices(obj interface{}) { + keys := gatherIngressServiceKeys(obj) + for key := range keys { + c.enqueueService(cache.ExplicitKey(key)) + } +} + +func (c *Controller) gc() { + if err := c.manager.GC(); err != nil { + glog.Errorf("NEG controller garbage collection failed: %v", err) + } +} + +func (c *Controller) synced() bool { + return c.endpointSynced() && + c.serviceSynced() && + c.ingressSynced() +} + +// gatherSerivceTargetPortUsedByIngress returns all target ports of the service that are referenced by ingresses +func gatherSerivceTargetPortUsedByIngress(ings []extensions.Ingress, svc *apiv1.Service) sets.String { + servicePorts := sets.NewString() + targetPorts := sets.NewString() + for _, ing := range ings { + if ing.Spec.Backend != nil && ing.Spec.Backend.ServiceName == svc.Name { + servicePorts.Insert(ing.Spec.Backend.ServicePort.String()) + } + } + for _, ing := range ings { + for _, rule := range ing.Spec.Rules { + for _, path := range rule.IngressRuleValue.HTTP.Paths { + if path.Backend.ServiceName == svc.Name { + servicePorts.Insert(path.Backend.ServicePort.String()) + } + } + } + } + + for _, svcPort := range svc.Spec.Ports { + found := false + for _, refSvcPort := range servicePorts.List() { + port, err := strconv.Atoi(refSvcPort) + if err != nil { + // port name matches + if refSvcPort == svcPort.Name { + found = true + break + } + } else { + // service port matches + if port == int(svcPort.Port) { + found = true + break + } + } + } + if found { + targetPorts.Insert(svcPort.TargetPort.String()) + } + } + + return targetPorts +} + +// gatherIngressServiceKeys returns all service key (formatted as namespace/name) referenced in the ingress +func gatherIngressServiceKeys(obj interface{}) sets.String { + set := sets.NewString() + ing, ok := obj.(*extensions.Ingress) + if !ok { + glog.Errorf("Expecting ingress type but got: %T", reflect.TypeOf(ing)) + return set + } + + if ing.Spec.Backend != nil { + set.Insert(serviceKeyFunc(ing.Namespace, ing.Spec.Backend.ServiceName)) + } + + for _, rule := range ing.Spec.Rules { + for _, path := range rule.IngressRuleValue.HTTP.Paths { + set.Insert(serviceKeyFunc(ing.Namespace, path.Backend.ServiceName)) + } + } + return set +} + +func serviceKeyFunc(namespace, name string) string { + return fmt.Sprintf("%s/%s", namespace, name) +} + +func getIngressServicesFromStore(store cache.Store, svc *apiv1.Service) (ings []extensions.Ingress) { +IngressLoop: + for _, m := range store.List() { + ing := *m.(*extensions.Ingress) + if ing.Namespace != svc.Namespace { + continue + } + + // Check service of default backend + if ing.Spec.Backend != nil && ing.Spec.Backend.ServiceName == svc.Name { + ings = append(ings, ing) + continue + } + + // Check the target service for each path rule + for _, rule := range ing.Spec.Rules { + if rule.IngressRuleValue.HTTP == nil { + continue + } + for _, p := range rule.IngressRuleValue.HTTP.Paths { + if p.Backend.ServiceName == svc.Name { + ings = append(ings, ing) + // Skip the rest of the rules to avoid duplicate ingresses in list. + // Check next ingress + continue IngressLoop + } + } + } + } + return +} diff --git a/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/controller_test.go b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/controller_test.go new file mode 100644 index 000000000..1101eccf3 --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/controller_test.go @@ -0,0 +1,301 @@ +/* +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 networkendpointgroup + +import ( + "testing" + "time" + + apiv1 "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/kubernetes/fake" + "k8s.io/ingress-gce/pkg/annotations" + "k8s.io/ingress-gce/pkg/context" + "k8s.io/ingress-gce/pkg/utils" + + "k8s.io/apimachinery/pkg/util/intstr" +) + +func newTestController(kubeClient kubernetes.Interface) *Controller { + context := context.NewControllerContext(kubeClient, apiv1.NamespaceAll, 1*time.Second, true) + + controller, _ := NewController(kubeClient, + NewFakeNetworkEndpointGroupCloud("test-subnetwork", "test-network"), + context, + NewFakeZoneGetter(), + utils.NewNamer(CluseterID, ""), + 1*time.Second, + ) + return controller +} + +func TestNewNonNEGService(t *testing.T) { + controller := newTestController(fake.NewSimpleClientset()) + defer controller.stop() + controller.serviceLister.Add(newTestService(false)) + controller.ingressLister.Add(newTestIngress()) + err := controller.processService(serviceKeyFunc(ServiceNamespace, ServiceName)) + if err != nil { + t.Fatalf("Failed to process service: %v", err) + } + + validateSyncers(t, controller, 0, true) +} + +func TestNewNEGService(t *testing.T) { + controller := newTestController(fake.NewSimpleClientset()) + defer controller.stop() + controller.serviceLister.Add(newTestService(true)) + controller.ingressLister.Add(newTestIngress()) + err := controller.processService(serviceKeyFunc(ServiceNamespace, ServiceName)) + if err != nil { + t.Fatalf("Failed to process service: %v", err) + } + + validateSyncers(t, controller, 3, false) +} + +func TestEnableNEGService(t *testing.T) { + controller := newTestController(fake.NewSimpleClientset()) + defer controller.stop() + controller.serviceLister.Add(newTestService(false)) + controller.ingressLister.Add(newTestIngress()) + err := controller.processService(serviceKeyFunc(ServiceNamespace, ServiceName)) + if err != nil { + t.Fatalf("Failed to process service: %v", err) + } + validateSyncers(t, controller, 0, true) + + controller.serviceLister.Update(newTestService(true)) + err = controller.processService(serviceKeyFunc(ServiceNamespace, ServiceName)) + if err != nil { + t.Fatalf("Failed to process service: %v", err) + } + validateSyncers(t, controller, 3, false) +} + +func TestDisableNEGService(t *testing.T) { + controller := newTestController(fake.NewSimpleClientset()) + defer controller.stop() + controller.serviceLister.Add(newTestService(true)) + controller.ingressLister.Add(newTestIngress()) + err := controller.processService(serviceKeyFunc(ServiceNamespace, ServiceName)) + if err != nil { + t.Fatalf("Failed to process service: %v", err) + } + validateSyncers(t, controller, 3, false) + + controller.serviceLister.Update(newTestService(false)) + err = controller.processService(serviceKeyFunc(ServiceNamespace, ServiceName)) + if err != nil { + t.Fatalf("Failed to process service: %v", err) + } + validateSyncers(t, controller, 3, true) +} + +func TestGatherServiceTargetPortUsedByIngress(t *testing.T) { + testCases := []struct { + ings []extensions.Ingress + expect []string + }{ + // no match + { + []extensions.Ingress{{ + ObjectMeta: metav1.ObjectMeta{ + Name: ServiceName, + Namespace: ServiceNamespace, + }, + Spec: extensions.IngressSpec{ + Backend: &extensions.IngressBackend{ + "nonExists", + intstr.FromString(NamedPort), + }, + }, + }}, + []string{}, + }, + // ingress spec point to non-existed service port + { + []extensions.Ingress{{ + ObjectMeta: metav1.ObjectMeta{ + Name: ServiceName, + Namespace: ServiceNamespace, + }, + Spec: extensions.IngressSpec{ + Backend: &extensions.IngressBackend{ + ServiceName, + intstr.FromString("NonExisted"), + }, + }, + }}, + []string{}, + }, + // ingress point to multiple services + { + []extensions.Ingress{{ + ObjectMeta: metav1.ObjectMeta{ + Name: ServiceName, + Namespace: ServiceNamespace, + }, + Spec: extensions.IngressSpec{ + Rules: []extensions.IngressRule{ + { + IngressRuleValue: extensions.IngressRuleValue{ + HTTP: &extensions.HTTPIngressRuleValue{ + Paths: []extensions.HTTPIngressPath{ + { + "/path1", + extensions.IngressBackend{ + ServiceName, + intstr.FromInt(80), + }, + }, + { + "/path2", + extensions.IngressBackend{ + "nonExisted", + intstr.FromInt(443), + }, + }, + }, + }, + }, + }, + }, + }, + }}, + []string{"8080"}, + }, + // two ingresses with multiple different references to service + { + []extensions.Ingress{*newTestIngress(), *newTestIngress()}, + []string{"8080", "8081", NamedPort}, + }, + // one ingress iwth multiple different references to service + { + []extensions.Ingress{*newTestIngress()}, + []string{"8080", "8081", NamedPort}, + }, + } + + for _, tc := range testCases { + ports := gatherSerivceTargetPortUsedByIngress(tc.ings, newTestService(true)) + if len(ports) != len(tc.expect) { + t.Errorf("Expect %v ports, but got %v.", len(tc.expect), len(ports)) + } + + for _, exp := range tc.expect { + if !ports.Has(exp) { + t.Errorf("Expect ports to include %q.", exp) + } + } + } +} + +func validateSyncers(t *testing.T, controller *Controller, num int, stopped bool) { + if len(controller.manager.(*syncerManager).syncerMap) != num { + t.Errorf("got %v syncer, want %v.", len(controller.manager.(*syncerManager).syncerMap), num) + } + for key, syncer := range controller.manager.(*syncerManager).syncerMap { + if syncer.IsStopped() != stopped { + t.Errorf("got syncer %q IsStopped() == %v, want %v.", key, syncer.IsStopped(), stopped) + } + } +} + +func newTestIngress() *extensions.Ingress { + return &extensions.Ingress{ + ObjectMeta: metav1.ObjectMeta{ + Name: ServiceName, + Namespace: ServiceNamespace, + }, + Spec: extensions.IngressSpec{ + Backend: &extensions.IngressBackend{ + ServiceName, + intstr.FromString(NamedPort), + }, + Rules: []extensions.IngressRule{ + { + IngressRuleValue: extensions.IngressRuleValue{ + HTTP: &extensions.HTTPIngressRuleValue{ + Paths: []extensions.HTTPIngressPath{ + { + "/path1", + extensions.IngressBackend{ + ServiceName, + intstr.FromInt(80), + }, + }, + { + "/path2", + extensions.IngressBackend{ + ServiceName, + intstr.FromInt(443), + }, + }, + { + "/path3", + extensions.IngressBackend{ + ServiceName, + intstr.FromString(NamedPort), + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func newTestService(negEnabled bool) *apiv1.Service { + svcAnnotations := map[string]string{} + if negEnabled { + svcAnnotations[annotations.NetworkEndpointGroupAlphaAnnotation] = "true" + } + return &apiv1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: ServiceName, + Namespace: ServiceNamespace, + Annotations: svcAnnotations, + }, + Spec: apiv1.ServiceSpec{ + Ports: []apiv1.ServicePort{ + { + Port: 80, + TargetPort: intstr.FromInt(8080), + }, + { + Port: 443, + TargetPort: intstr.FromString(NamedPort), + }, + { + Name: NamedPort, + Port: 8081, + TargetPort: intstr.FromInt(8081), + }, + { + Port: 8888, + TargetPort: intstr.FromInt(8888), + }, + }, + }, + } +} diff --git a/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/fakes.go b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/fakes.go new file mode 100644 index 000000000..f1d6d20b4 --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/fakes.go @@ -0,0 +1,195 @@ +/* +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 networkendpointgroup + +import ( + "fmt" + computealpha "google.golang.org/api/compute/v0.alpha" + "k8s.io/apimachinery/pkg/util/sets" + "reflect" + "sync" +) + +const ( + TestZone1 = "zone1" + TestZone2 = "zone2" + TestInstance1 = "instance1" + TestInstance2 = "instance2" + TestInstance3 = "instance3" + TestInstance4 = "instance4" +) + +type fakeZoneGetter struct { + zoneInstanceMap map[string]sets.String +} + +func NewFakeZoneGetter() *fakeZoneGetter { + return &fakeZoneGetter{ + zoneInstanceMap: map[string]sets.String{ + TestZone1: sets.NewString(TestInstance1, TestInstance2), + TestZone2: sets.NewString(TestInstance3, TestInstance4), + }, + } +} + +func (f *fakeZoneGetter) ListZones() ([]string, error) { + ret := []string{} + for key := range f.zoneInstanceMap { + ret = append(ret, key) + } + return ret, nil +} +func (f *fakeZoneGetter) GetZoneForNode(name string) (string, error) { + for zone, instances := range f.zoneInstanceMap { + if instances.Has(name) { + return zone, nil + } + } + return "", NotFoundError +} + +type FakeNetworkEndpointGroupCloud struct { + NetworkEndpointGroups map[string][]*computealpha.NetworkEndpointGroup + NetworkEndpoints map[string][]*computealpha.NetworkEndpoint + Subnetwork string + Network string + mu sync.Mutex +} + +func NewFakeNetworkEndpointGroupCloud(subnetwork, network string) networkEndpointGroupCloud { + return &FakeNetworkEndpointGroupCloud{ + Subnetwork: subnetwork, + Network: network, + NetworkEndpointGroups: map[string][]*computealpha.NetworkEndpointGroup{}, + NetworkEndpoints: map[string][]*computealpha.NetworkEndpoint{}, + } +} + +var NotFoundError = fmt.Errorf("Not Found") + +func (cloud *FakeNetworkEndpointGroupCloud) GetNetworkEndpointGroup(name string, zone string) (*computealpha.NetworkEndpointGroup, error) { + cloud.mu.Lock() + defer cloud.mu.Unlock() + negs, ok := cloud.NetworkEndpointGroups[zone] + if ok { + for _, neg := range negs { + if neg.Name == name { + return neg, nil + } + } + } + return nil, NotFoundError +} + +func networkEndpointKey(name, zone string) string { + return fmt.Sprintf("%s-%s", zone, name) +} + +func (cloud *FakeNetworkEndpointGroupCloud) ListNetworkEndpointGroup(zone string) ([]*computealpha.NetworkEndpointGroup, error) { + cloud.mu.Lock() + defer cloud.mu.Unlock() + return cloud.NetworkEndpointGroups[zone], nil +} + +func (cloud *FakeNetworkEndpointGroupCloud) AggregatedListNetworkEndpointGroup() (map[string][]*computealpha.NetworkEndpointGroup, error) { + cloud.mu.Lock() + defer cloud.mu.Unlock() + return cloud.NetworkEndpointGroups, nil +} + +func (cloud *FakeNetworkEndpointGroupCloud) CreateNetworkEndpointGroup(neg *computealpha.NetworkEndpointGroup, zone string) error { + cloud.mu.Lock() + defer cloud.mu.Unlock() + neg.SelfLink = fmt.Sprintf("https://fake.google.com/compute/%s/NetworkEndpointGroup/%s", zone, neg.Name) + if _, ok := cloud.NetworkEndpointGroups[zone]; !ok { + cloud.NetworkEndpointGroups[zone] = []*computealpha.NetworkEndpointGroup{} + } + cloud.NetworkEndpointGroups[zone] = append(cloud.NetworkEndpointGroups[zone], neg) + cloud.NetworkEndpoints[networkEndpointKey(neg.Name, zone)] = []*computealpha.NetworkEndpoint{} + return nil +} + +func (cloud *FakeNetworkEndpointGroupCloud) DeleteNetworkEndpointGroup(name string, zone string) error { + cloud.mu.Lock() + defer cloud.mu.Unlock() + delete(cloud.NetworkEndpoints, networkEndpointKey(name, zone)) + negs := cloud.NetworkEndpointGroups[zone] + newList := []*computealpha.NetworkEndpointGroup{} + found := false + for _, neg := range negs { + if neg.Name == name { + found = true + continue + } + newList = append(newList, neg) + } + if !found { + return NotFoundError + } + cloud.NetworkEndpointGroups[zone] = newList + return nil +} + +func (cloud *FakeNetworkEndpointGroupCloud) AttachNetworkEndpoints(name, zone string, endpoints []*computealpha.NetworkEndpoint) error { + cloud.mu.Lock() + defer cloud.mu.Unlock() + cloud.NetworkEndpoints[networkEndpointKey(name, zone)] = append(cloud.NetworkEndpoints[networkEndpointKey(name, zone)], endpoints...) + return nil +} + +func (cloud *FakeNetworkEndpointGroupCloud) DetachNetworkEndpoints(name, zone string, endpoints []*computealpha.NetworkEndpoint) error { + cloud.mu.Lock() + defer cloud.mu.Unlock() + newList := []*computealpha.NetworkEndpoint{} + for _, ne := range cloud.NetworkEndpoints[networkEndpointKey(name, zone)] { + found := false + for _, remove := range endpoints { + if reflect.DeepEqual(*ne, *remove) { + found = true + break + } + } + if found { + continue + } + newList = append(newList, ne) + } + cloud.NetworkEndpoints[networkEndpointKey(name, zone)] = newList + return nil +} + +func (cloud *FakeNetworkEndpointGroupCloud) ListNetworkEndpoints(name, zone string, showHealthStatus bool) ([]*computealpha.NetworkEndpointWithHealthStatus, error) { + cloud.mu.Lock() + defer cloud.mu.Unlock() + ret := []*computealpha.NetworkEndpointWithHealthStatus{} + nes, ok := cloud.NetworkEndpoints[networkEndpointKey(name, zone)] + if !ok { + return nil, NotFoundError + } + for _, ne := range nes { + ret = append(ret, &computealpha.NetworkEndpointWithHealthStatus{NetworkEndpoint: ne}) + } + return ret, nil +} + +func (cloud *FakeNetworkEndpointGroupCloud) NetworkURL() string { + return cloud.Network +} + +func (cloud *FakeNetworkEndpointGroupCloud) SubnetworkURL() string { + return cloud.Subnetwork +} diff --git a/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/interfaces.go b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/interfaces.go new file mode 100644 index 000000000..177ce9e58 --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/interfaces.go @@ -0,0 +1,76 @@ +/* +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 networkendpointgroup + +import ( + computealpha "google.golang.org/api/compute/v0.alpha" + "k8s.io/apimachinery/pkg/util/sets" +) + +// networkEndpointGroupCloud is an interface for managing gce network endpoint group. +type networkEndpointGroupCloud interface { + GetNetworkEndpointGroup(name string, zone string) (*computealpha.NetworkEndpointGroup, error) + ListNetworkEndpointGroup(zone string) ([]*computealpha.NetworkEndpointGroup, error) + AggregatedListNetworkEndpointGroup() (map[string][]*computealpha.NetworkEndpointGroup, error) + CreateNetworkEndpointGroup(neg *computealpha.NetworkEndpointGroup, zone string) error + DeleteNetworkEndpointGroup(name string, zone string) error + AttachNetworkEndpoints(name, zone string, endpoints []*computealpha.NetworkEndpoint) error + DetachNetworkEndpoints(name, zone string, endpoints []*computealpha.NetworkEndpoint) error + ListNetworkEndpoints(name, zone string, showHealthStatus bool) ([]*computealpha.NetworkEndpointWithHealthStatus, error) + NetworkURL() string + SubnetworkURL() string +} + +// networkEndpointGroupNamer is an interface for generating network endpoint group name. +type networkEndpointGroupNamer interface { + NEG(namespace, name, port string) string + IsNEG(name string) bool +} + +// zoneGetter is an interface for retrieve zone related information +type zoneGetter interface { + ListZones() ([]string, error) + GetZoneForNode(name string) (string, error) +} + +// negSyncer is an interface to interact with syncer +type negSyncer interface { + // Start starts the syncer. This call is synchronous. It will return after syncer is started. + Start() error + // Stop stops the syncer. This call is asynchronous. It will not block until syncer is stopped. + Stop() + // Sync signals the syncer to sync NEG. This call is asynchronous. Syncer will sync once it becomes idle. + Sync() bool + // IsStopped returns true if syncer is stopped + IsStopped() bool + // IsShuttingDown returns true if syncer is shutting down + IsShuttingDown() bool +} + +// negSyncerManager is an interface for controllers to manage syncer +type negSyncerManager interface { + // EnsureSyncer ensures corresponding syncers are started and stops any unnecessary syncer + EnsureSyncers(namespace, name string, targetPorts sets.String) error + // StopSyncer stops all syncers related to the service. This call is asynchronous. It will not wait for all syncers to stop. + StopSyncer(namespace, name string) + // Sync signals all syncers related to the service to sync. This call is asynchronous. + Sync(namespace, name string) + // GC garbage collects network endpoint group and syncers + GC() error + // ShutDown shuts down the manager + ShutDown() +} diff --git a/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/manager.go b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/manager.go new file mode 100644 index 000000000..92e80a4cc --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/manager.go @@ -0,0 +1,264 @@ +/* +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 networkendpointgroup + +import ( + "fmt" + "sync" + + "github.com/golang/glog" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" +) + +type serviceKey struct { + namespace string + name string +} + +// syncerManager contains all the active syncer goroutines and manage their lifecycle. +type syncerManager struct { + namer networkEndpointGroupNamer + recorder record.EventRecorder + cloud networkEndpointGroupCloud + zoneGetter zoneGetter + + serviceLister cache.Indexer + endpointLister cache.Indexer + + // TODO: lock per service instead of global lock + mu sync.Mutex + // svcPortMap is the canonical indicator for whether a service needs NEG. + // key consists of service namespace and name. Value is the list of target ports that requires NEG + svcPortMap map[serviceKey]sets.String + // syncerMap stores the NEG syncer + // key consists of service namespace, name and targetPort. Value is the corresponding syncer. + syncerMap map[servicePort]negSyncer +} + +func newSyncerManager(namer networkEndpointGroupNamer, recorder record.EventRecorder, cloud networkEndpointGroupCloud, zoneGetter zoneGetter, serviceLister cache.Indexer, endpointLister cache.Indexer) *syncerManager { + return &syncerManager{ + namer: namer, + recorder: recorder, + cloud: cloud, + zoneGetter: zoneGetter, + serviceLister: serviceLister, + endpointLister: endpointLister, + svcPortMap: make(map[serviceKey]sets.String), + syncerMap: make(map[servicePort]negSyncer), + } +} + +// EnsureSyncer starts and stops syncers based on the input service ports. +func (manager *syncerManager) EnsureSyncers(namespace, name string, targetPorts sets.String) error { + manager.mu.Lock() + defer manager.mu.Unlock() + key := getServiceKey(namespace, name) + currentPorts, ok := manager.svcPortMap[key] + if !ok { + currentPorts = sets.NewString() + } + + removes := currentPorts.Difference(targetPorts).List() + adds := targetPorts.Difference(currentPorts).List() + manager.svcPortMap[key] = targetPorts + glog.V(3).Infof("EnsureSyncer %v/%v: removing %v ports, adding %v ports", namespace, name, removes, adds) + + // Stop syncer for removed ports + for _, port := range removes { + syncer, ok := manager.syncerMap[getSyncerKey(namespace, name, port)] + if ok { + syncer.Stop() + } + } + + errList := []error{} + // Ensure a syncer is running for each port that is being added. + for _, port := range adds { + syncer, ok := manager.syncerMap[getSyncerKey(namespace, name, port)] + if !ok { + syncer = newSyncer( + servicePort{ + namespace: namespace, + name: name, + targetPort: port, + }, + manager.namer.NEG(namespace, name, port), + manager.recorder, + manager.cloud, + manager.zoneGetter, + manager.serviceLister, + manager.endpointLister, + ) + manager.syncerMap[getSyncerKey(namespace, name, port)] = syncer + } + + if syncer.IsStopped() { + if err := syncer.Start(); err != nil { + errList = append(errList, err) + } + } + } + return utilerrors.NewAggregate(errList) +} + +// StopSyncer stops all syncers for the input service. +func (manager *syncerManager) StopSyncer(namespace, name string) { + manager.mu.Lock() + defer manager.mu.Unlock() + key := getServiceKey(namespace, name) + if ports, ok := manager.svcPortMap[key]; ok { + for _, port := range ports.List() { + if syncer, ok := manager.syncerMap[getSyncerKey(namespace, name, port)]; ok { + syncer.Stop() + } + } + delete(manager.svcPortMap, key) + } + return +} + +// Sync signals all syncers related to the service to sync. +func (manager *syncerManager) Sync(namespace, name string) { + manager.mu.Lock() + defer manager.mu.Unlock() + key := getServiceKey(namespace, name) + if portList, ok := manager.svcPortMap[key]; ok { + for _, port := range portList.List() { + if syncer, ok := manager.syncerMap[getSyncerKey(namespace, name, port)]; ok { + if !syncer.IsStopped() { + syncer.Sync() + } + } + } + } +} + +// ShutDown signals all syncers to stop +func (manager *syncerManager) ShutDown() { + manager.mu.Lock() + defer manager.mu.Unlock() + for _, s := range manager.syncerMap { + s.Stop() + } +} + +// GC garbage collects syncers and NEGs. +func (manager *syncerManager) GC() error { + glog.V(2).Infof("Start NEG garbage collection.") + defer glog.V(2).Infof("NEG garbage collection finished.") + for _, key := range manager.getAllStoppedSyncerKeys() { + manager.garbageCollectSyncer(key) + } + + // Garbage collect NEGs + if err := manager.garbageCollectNEG(); err != nil { + return fmt.Errorf("Failed to garbage collect negs: %v", err) + } + return nil +} + +func (manager *syncerManager) garbageCollectSyncer(key servicePort) { + manager.mu.Lock() + defer manager.mu.Unlock() + if manager.syncerMap[key].IsStopped() && !manager.syncerMap[key].IsShuttingDown() { + delete(manager.syncerMap, key) + } +} + +func (manager *syncerManager) getAllStoppedSyncerKeys() []servicePort { + manager.mu.Lock() + defer manager.mu.Unlock() + ret := []servicePort{} + for key, syncer := range manager.syncerMap { + if syncer.IsStopped() { + ret = append(ret, key) + } + } + return ret +} + +func (manager *syncerManager) garbageCollectNEG() error { + // Retrieve aggregated NEG list from cloud + // Compare against svcPortMap and Remove unintended NEGs by best effort + zoneNEGList, err := manager.cloud.AggregatedListNetworkEndpointGroup() + if err != nil { + return fmt.Errorf("failed to retrieve aggregated NEG list: %v", err) + } + + negNames := sets.String{} + for _, list := range zoneNEGList { + for _, neg := range list { + if manager.namer.IsNEG(neg.Name) { + negNames.Insert(neg.Name) + } + } + } + + func() { + manager.mu.Lock() + defer manager.mu.Unlock() + for key, ports := range manager.svcPortMap { + for _, port := range ports.List() { + name := manager.namer.NEG(key.namespace, key.name, port) + negNames.Delete(name) + } + } + }() + + // This section includes a potential race condition between deleting neg here and users adds the neg annotation. + // The worst outcome of the race condition is that neg is deleted in the end but user actually specifies a neg. + // This would be resolved (sync neg) when the next endpoint update or resync arrives. + // TODO: avoid race condition here + for zone := range zoneNEGList { + for _, name := range negNames.List() { + if err := manager.ensureDeleteNetworkEndpointGroup(name, zone); err != nil { + return fmt.Errorf("failed to delete NEG %q in %q: %v", name, zone, err) + } + } + } + return nil +} + +// ensureDeleteNetworkEndpointGroup ensures neg is delete from zone +func (manager *syncerManager) ensureDeleteNetworkEndpointGroup(name, zone string) error { + _, err := manager.cloud.GetNetworkEndpointGroup(name, zone) + if err != nil { + // Assume error is caused by not existing + return nil + } + glog.V(2).Infof("Deleting NEG %q in %q.", name, zone) + return manager.cloud.DeleteNetworkEndpointGroup(name, zone) +} + +// getSyncerKey encodes a service namespace, name and targetPort into a string key +func getSyncerKey(namespace, name, port string) servicePort { + return servicePort{ + namespace: namespace, + name: name, + targetPort: port, + } +} + +func getServiceKey(namespace, name string) serviceKey { + return serviceKey{ + namespace: namespace, + name: name, + } +} diff --git a/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/manager_test.go b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/manager_test.go new file mode 100644 index 000000000..15ce78e24 --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/manager_test.go @@ -0,0 +1,195 @@ +/* +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 networkendpointgroup + +import ( + compute "google.golang.org/api/compute/v0.alpha" + apiv1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/kubernetes/fake" + "k8s.io/client-go/tools/record" + "k8s.io/ingress-gce/pkg/context" + "k8s.io/ingress-gce/pkg/utils" + "testing" + "time" +) + +const ( + CluseterID = "clusterid" +) + +func NewTestSyncerManager(kubeClient kubernetes.Interface) *syncerManager { + context := context.NewControllerContext(kubeClient, apiv1.NamespaceAll, 1*time.Second, true) + manager := newSyncerManager( + utils.NewNamer(CluseterID, ""), + record.NewFakeRecorder(100), + NewFakeNetworkEndpointGroupCloud("test-subnetwork", "test-network"), + NewFakeZoneGetter(), + context.ServiceInformer.GetIndexer(), + context.EndpointInformer.GetIndexer(), + ) + return manager +} + +func TestEnsureAndStopSyncer(t *testing.T) { + testCases := []struct { + namespace string + name string + ports sets.String + stop bool + expect []servicePort // keys of running syncers + }{ + { + "ns1", + "n1", + sets.NewString("80", "443"), + false, + []servicePort{ + getSyncerKey("ns1", "n1", "80"), + getSyncerKey("ns1", "n1", "443"), + }, + }, + { + "ns1", + "n1", + sets.NewString("80", "namedport"), + false, + []servicePort{ + getSyncerKey("ns1", "n1", "80"), + getSyncerKey("ns1", "n1", "namedport"), + }, + }, + { + "ns2", + "n1", + sets.NewString("80"), + false, + []servicePort{ + getSyncerKey("ns1", "n1", "80"), + getSyncerKey("ns1", "n1", "namedport"), + getSyncerKey("ns2", "n1", "80"), + }, + }, + { + "ns1", + "n1", + sets.NewString(), + true, + []servicePort{ + getSyncerKey("ns2", "n1", "80"), + }, + }, + } + + manager := NewTestSyncerManager(fake.NewSimpleClientset()) + for _, tc := range testCases { + if tc.stop { + manager.StopSyncer(tc.namespace, tc.name) + } else { + if err := manager.EnsureSyncers(tc.namespace, tc.name, tc.ports); err != nil { + t.Errorf("Failed to ensure syncer %s/%s-%v: %v", tc.namespace, tc.name, tc.ports, err) + } + } + + for _, key := range tc.expect { + syncer, ok := manager.syncerMap[key] + if !ok { + t.Errorf("Expect syncer key %q to be present.", key) + continue + } + if syncer.IsStopped() || syncer.IsShuttingDown() { + t.Errorf("Expect syncer %q to be running.", key) + } + } + for key, syncer := range manager.syncerMap { + found := false + for _, k := range tc.expect { + if k == key { + found = true + break + } + } + if found { + continue + } + if !syncer.IsStopped() { + t.Errorf("Expect syncer %q to be stopped.", key) + } + } + } + + // make sure there is no leaking go routine + manager.StopSyncer("ns1", "n1") + manager.StopSyncer("ns2", "n1") +} + +func TestGarbageCollectionSyncer(t *testing.T) { + manager := NewTestSyncerManager(fake.NewSimpleClientset()) + if err := manager.EnsureSyncers("ns1", "n1", sets.NewString("80", "namedport")); err != nil { + t.Fatalf("Failed to ensure syncer: %v", err) + } + manager.StopSyncer("ns1", "n1") + + syncer1 := manager.syncerMap[getSyncerKey("ns1", "n1", "80")] + syncer2 := manager.syncerMap[getSyncerKey("ns1", "n1", "namedport")] + + if err := wait.PollImmediate(time.Second, 30*time.Second, func() (bool, error) { + return !syncer1.IsShuttingDown() && syncer1.IsStopped() && !syncer2.IsShuttingDown() && syncer2.IsStopped(), nil + }); err != nil { + t.Fatalf("Syncer failed to shutdown: %v", err) + } + + if err := manager.GC(); err != nil { + t.Fatalf("Failed to GC: %v", err) + } + + if len(manager.syncerMap) != 0 { + t.Fatalf("Expect 0 syncers left, but got %v", len(manager.syncerMap)) + } +} + +func TestGarbageCollectionNEG(t *testing.T) { + kubeClient := fake.NewSimpleClientset() + if _, err := kubeClient.Core().Endpoints(ServiceNamespace).Create(getDefaultEndpoint()); err != nil { + t.Fatalf("Failed to create endpoint: %v", err) + } + manager := NewTestSyncerManager(kubeClient) + if err := manager.EnsureSyncers(ServiceNamespace, ServiceName, sets.NewString("80")); err != nil { + t.Fatalf("Failed to ensure syncer: %v", err) + } + + negName := manager.namer.NEG("test", "test", "80") + manager.cloud.CreateNetworkEndpointGroup(&compute.NetworkEndpointGroup{ + Name: negName, + }, TestZone1) + + if err := manager.GC(); err != nil { + t.Fatalf("Failed to GC: %v", err) + } + + negs, _ := manager.cloud.ListNetworkEndpointGroup(TestZone1) + for _, neg := range negs { + if neg.Name == negName { + t.Errorf("Expect NEG %q to be GCed.", negName) + } + } + + // make sure there is no leaking go routine + manager.StopSyncer(ServiceNamespace, ServiceName) +} diff --git a/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/syncer.go b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/syncer.go new file mode 100644 index 000000000..2b5afcc68 --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/syncer.go @@ -0,0 +1,526 @@ +/* +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 networkendpointgroup + +import ( + "fmt" + "math" + "strconv" + "strings" + "sync" + "time" + + "github.com/golang/glog" + compute "google.golang.org/api/compute/v0.alpha" + apiv1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/clock" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" +) + +const ( + MAX_NETWORK_ENDPOINTS_PER_BATCH = 500 + minRetryDelay = 5 * time.Second + maxRetryDelay = 300 * time.Second +) + +// servicePort includes information to uniquely identify a NEG +type servicePort struct { + namespace string + name string + // Serivice target port + targetPort string +} + +// syncer handles synchorizing NEGs for one service port. It handles sync, resync and retry on error. +type syncer struct { + servicePort + negName string + + serviceLister cache.Indexer + endpointLister cache.Indexer + + recorder record.EventRecorder + cloud networkEndpointGroupCloud + zoneGetter zoneGetter + + stateLock sync.Mutex + stopped bool + shuttingDown bool + + clock clock.Clock + syncCh chan interface{} + lastRetryDelay time.Duration + retryCount int +} + +func newSyncer(svcPort servicePort, networkEndpointGroupName string, recorder record.EventRecorder, cloud networkEndpointGroupCloud, zoneGetter zoneGetter, serviceLister cache.Indexer, endpointLister cache.Indexer) *syncer { + glog.V(2).Infof("New syncer for service %s/%s port %s NEG %q", svcPort.namespace, svcPort.name, svcPort.targetPort, networkEndpointGroupName) + return &syncer{ + servicePort: svcPort, + negName: networkEndpointGroupName, + recorder: recorder, + serviceLister: serviceLister, + cloud: cloud, + endpointLister: endpointLister, + zoneGetter: zoneGetter, + stopped: true, + shuttingDown: false, + clock: clock.RealClock{}, + lastRetryDelay: time.Duration(0), + retryCount: 0, + } +} + +func (s *syncer) init() { + s.stateLock.Lock() + defer s.stateLock.Unlock() + s.stopped = false + s.syncCh = make(chan interface{}, 1) +} + +// Start starts the syncer go routine if it has not been started. +func (s *syncer) Start() error { + if !s.IsStopped() { + return fmt.Errorf("NEG syncer for %s/%s-%s is already running.", s.namespace, s.name, s.targetPort) + } + if s.IsShuttingDown() { + return fmt.Errorf("NEG syncer for %s/%s-%s is shutting down. ", s.namespace, s.name, s.targetPort) + } + + glog.V(2).Infof("Starting NEG syncer for service port %s/%s-%s", s.namespace, s.name, s.targetPort) + s.init() + go func() { + for { + // equivalent to never retry + retryCh := make(<-chan time.Time) + err := s.sync() + if err != nil { + retryMesg := "" + if s.retryCount > maxRetries { + retryMesg = "(will not retry)" + } else { + retryCh = s.clock.After(s.nextRetryDelay()) + retryMesg = "(will retry)" + } + + if svc := getService(s.serviceLister, s.namespace, s.name); svc != nil { + s.recorder.Eventf(svc, apiv1.EventTypeWarning, "SyncNetworkEndpiontGroupFailed", "Failed to sync NEG %q %s: %v", s.negName, retryMesg, err) + } + } else { + s.resetRetryDelay() + } + + select { + case _, open := <-s.syncCh: + if !open { + s.stateLock.Lock() + s.shuttingDown = false + s.stateLock.Unlock() + glog.V(2).Infof("Stopping NEG syncer for %s/%s-%s", s.namespace, s.name, s.targetPort) + return + } + case <-retryCh: + // continue to sync + } + } + }() + return nil +} + +// Stop stops syncer and return only when syncer shutdown completes. +func (s *syncer) Stop() { + s.stateLock.Lock() + defer s.stateLock.Unlock() + if !s.stopped { + glog.V(2).Infof("Stopping NEG syncer for service port %s/%s-%s", s.namespace, s.name, s.targetPort) + s.stopped = true + s.shuttingDown = true + close(s.syncCh) + } +} + +// Sync informs syncer to run sync loop as soon as possible. +func (s *syncer) Sync() bool { + if s.IsStopped() { + glog.Warningf("NEG syncer for %s/%s-%s is already stopped.", s.namespace, s.name, s.targetPort) + return false + } + select { + case s.syncCh <- struct{}{}: + return true + default: + return false + } +} + +func (s *syncer) IsStopped() bool { + s.stateLock.Lock() + defer s.stateLock.Unlock() + return s.stopped +} + +func (s *syncer) IsShuttingDown() bool { + s.stateLock.Lock() + defer s.stateLock.Unlock() + return s.shuttingDown +} + +func (s *syncer) sync() error { + if s.IsStopped() || s.IsShuttingDown() { + glog.V(4).Infof("Skip syncing NEG %q for %s/%s-%s.", s.negName, s.namespace, s.name, s.targetPort) + return nil + } + + glog.V(2).Infof("Sync NEG %q for %s/%s-%s", s.negName, s.namespace, s.name, s.targetPort) + ep, exists, err := s.endpointLister.Get( + &apiv1.Endpoints{ + ObjectMeta: metav1.ObjectMeta{ + Name: s.name, + Namespace: s.namespace, + }, + }, + ) + if err != nil { + return err + } + + if !exists { + glog.Warningf("Endpoint %s/%s does not exists. Skipping NEG sync", s.namespace, s.name) + return nil + } + + err = s.ensureNetworkEndpointGroups() + if err != nil { + return err + } + + targetMap, err := s.toZoneNetworkEndpointMap(ep.(*apiv1.Endpoints)) + if err != nil { + return err + } + + currentMap, err := s.retrieveExistingZoneNetworkEndpointMap() + if err != nil { + return err + } + + addEndpoints, removeEndpoints := calculateDifference(targetMap, currentMap) + if len(addEndpoints) == 0 && len(removeEndpoints) == 0 { + glog.V(4).Infof("No endpoint change for %s/%s, skip syncing NEG. ", s.namespace, s.name) + return nil + } + + return s.syncNetworkEndpoints(addEndpoints, removeEndpoints) +} + +// ensureNetworkEndpointGroups ensures negs are created in the related zones. +func (s *syncer) ensureNetworkEndpointGroups() error { + var err error + zones, err := s.zoneGetter.ListZones() + if err != nil { + return err + } + + var errList []error + for _, zone := range zones { + // Assume error is caused by not existing + neg, err := s.cloud.GetNetworkEndpointGroup(s.negName, zone) + if err != nil { + // Most likely to be caused by non-existed NEG + glog.V(4).Infof("Error while retriving %q in zone %q: %v", s.negName, zone, err) + } + + needToCreate := false + if neg == nil { + needToCreate = true + } else if retrieveName(neg.LoadBalancer.Network) != retrieveName(s.cloud.NetworkURL()) || + retrieveName(neg.LoadBalancer.Subnetwork) != retrieveName(s.cloud.SubnetworkURL()) { + // Only compare network and subnetwork names to avoid api endpoint differences that cause deleting NEG accidentally. + // TODO: change to compare network/subnetwork url instead of name when NEG API reach GA. + needToCreate = true + glog.V(2).Infof("NEG %q in %q does not match network and subnetwork of the cluster. Deleting NEG.", s.negName, zone) + err = s.cloud.DeleteNetworkEndpointGroup(s.negName, zone) + if err != nil { + errList = append(errList, err) + } else { + if svc := getService(s.serviceLister, s.namespace, s.name); svc != nil { + s.recorder.Eventf(svc, apiv1.EventTypeNormal, "Delete", "Deleted NEG %q for %s/%s-%s in %q.", s.negName, s.namespace, s.name, s.targetPort, zone) + } + } + } + + if needToCreate { + glog.V(2).Infof("Creating NEG %q for %s/%s in %q.", s.negName, s.namespace, s.name, zone) + err = s.cloud.CreateNetworkEndpointGroup(&compute.NetworkEndpointGroup{ + Name: s.negName, + Type: gce.NEGLoadBalancerType, + NetworkEndpointType: gce.NEGIPPortNetworkEndpointType, + LoadBalancer: &compute.NetworkEndpointGroupLbNetworkEndpointGroup{ + Network: s.cloud.NetworkURL(), + Subnetwork: s.cloud.SubnetworkURL(), + }, + }, zone) + if err != nil { + errList = append(errList, err) + } else { + if svc := getService(s.serviceLister, s.namespace, s.name); svc != nil { + s.recorder.Eventf(svc, apiv1.EventTypeNormal, "Create", "Created NEG %q for %s/%s-%s in %q.", s.negName, s.namespace, s.name, s.targetPort, zone) + } + } + } + } + return utilerrors.NewAggregate(errList) +} + +// toZoneNetworkEndpointMap translates addresses in endpoints object into zone and endpoints map +func (s *syncer) toZoneNetworkEndpointMap(endpoints *apiv1.Endpoints) (map[string]sets.String, error) { + zoneNetworkEndpointMap := map[string]sets.String{} + targetPort, _ := strconv.Atoi(s.targetPort) + for _, subset := range endpoints.Subsets { + matchPort := "" + // service spec allows target port to be a named port. + // support both explicit port and named port. + for _, port := range subset.Ports { + if targetPort != 0 { + // targetPort is int + if int(port.Port) == targetPort { + matchPort = s.targetPort + } + } else { + // targetPort is string + if port.Name == s.targetPort { + matchPort = strconv.Itoa(int(port.Port)) + } + } + if len(matchPort) > 0 { + break + } + } + + // subset does not contain target port + if len(matchPort) == 0 { + continue + } + for _, address := range subset.Addresses { + zone, err := s.zoneGetter.GetZoneForNode(*address.NodeName) + if err != nil { + return nil, err + } + if zoneNetworkEndpointMap[zone] == nil { + zoneNetworkEndpointMap[zone] = sets.String{} + } + zoneNetworkEndpointMap[zone].Insert(encodeEndpoint(address.IP, *address.NodeName, matchPort)) + } + } + return zoneNetworkEndpointMap, nil +} + +// retrieveExistingZoneNetworkEndpointMap lists existing network endpoints in the neg and return the zone and endpoints map +func (s *syncer) retrieveExistingZoneNetworkEndpointMap() (map[string]sets.String, error) { + zones, err := s.zoneGetter.ListZones() + if err != nil { + return nil, err + } + + zoneNetworkEndpointMap := map[string]sets.String{} + for _, zone := range zones { + zoneNetworkEndpointMap[zone] = sets.String{} + networkEndpointsWithHealthStatus, err := s.cloud.ListNetworkEndpoints(s.negName, zone, false) + if err != nil { + return nil, err + } + for _, ne := range networkEndpointsWithHealthStatus { + zoneNetworkEndpointMap[zone].Insert(encodeEndpoint(ne.NetworkEndpoint.IpAddress, ne.NetworkEndpoint.Instance, strconv.FormatInt(ne.NetworkEndpoint.Port, 10))) + } + } + return zoneNetworkEndpointMap, nil +} + +type ErrorList struct { + errList []error + lock sync.Mutex +} + +func (e *ErrorList) Add(err error) { + e.lock.Lock() + defer e.lock.Unlock() + e.errList = append(e.errList, err) +} + +func (e *ErrorList) List() []error { + e.lock.Lock() + defer e.lock.Unlock() + return e.errList +} + +// syncNetworkEndpoints adds and removes endpoints for negs +func (s *syncer) syncNetworkEndpoints(addEndpoints, removeEndpoints map[string]sets.String) error { + var wg sync.WaitGroup + errList := &ErrorList{} + + // Detach Endpoints + for zone, endpointSet := range removeEndpoints { + for { + if endpointSet.Len() == 0 { + break + } + networkEndpoints, err := s.toNetworkEndpointBatch(endpointSet) + if err != nil { + return err + } + s.detachNetworkEndpoints(&wg, zone, networkEndpoints, errList) + } + } + + // Attach Endpoints + for zone, endpointSet := range addEndpoints { + for { + if endpointSet.Len() == 0 { + break + } + networkEndpoints, err := s.toNetworkEndpointBatch(endpointSet) + if err != nil { + return err + } + s.attachNetworkEndpoints(&wg, zone, networkEndpoints, errList) + } + } + wg.Wait() + return utilerrors.NewAggregate(errList.List()) +} + +// translate a endpoints set to a batch of network endpoints object +func (s *syncer) toNetworkEndpointBatch(endpoints sets.String) ([]*compute.NetworkEndpoint, error) { + var ok bool + list := make([]string, int(math.Min(float64(endpoints.Len()), float64(MAX_NETWORK_ENDPOINTS_PER_BATCH)))) + for i := range list { + list[i], ok = endpoints.PopAny() + if !ok { + break + } + } + networkEndpointList := make([]*compute.NetworkEndpoint, len(list)) + for i, enc := range list { + ip, instance, port := decodeEndpoint(enc) + portNum, err := strconv.Atoi(port) + if err != nil { + return nil, fmt.Errorf("Failed to decode endpoint %q: %v", enc, err) + } + networkEndpointList[i] = &compute.NetworkEndpoint{ + Instance: instance, + IpAddress: ip, + Port: int64(portNum), + } + } + return networkEndpointList, nil +} + +func (s *syncer) attachNetworkEndpoints(wg *sync.WaitGroup, zone string, networkEndpoints []*compute.NetworkEndpoint, errList *ErrorList) { + wg.Add(1) + glog.V(2).Infof("Attaching %d endpoints for %s/%s-%s into NEG %s in %s.", len(networkEndpoints), s.namespace, s.name, s.targetPort, s.negName, zone) + go s.operationInternal(wg, zone, networkEndpoints, errList, s.cloud.AttachNetworkEndpoints, "Attach") +} + +func (s *syncer) detachNetworkEndpoints(wg *sync.WaitGroup, zone string, networkEndpoints []*compute.NetworkEndpoint, errList *ErrorList) { + wg.Add(1) + glog.V(2).Infof("Detaching %d endpoints for %s/%s-%s into NEG %s in %s.", len(networkEndpoints), s.namespace, s.name, s.targetPort, s.negName, zone) + go s.operationInternal(wg, zone, networkEndpoints, errList, s.cloud.DetachNetworkEndpoints, "Detach") +} + +func (s *syncer) operationInternal(wg *sync.WaitGroup, zone string, networkEndpoints []*compute.NetworkEndpoint, errList *ErrorList, syncFunc func(name, zone string, endpoints []*compute.NetworkEndpoint) error, operationName string) { + defer wg.Done() + err := syncFunc(s.negName, zone, networkEndpoints) + if err != nil { + errList.Add(err) + } + if svc := getService(s.serviceLister, s.namespace, s.name); svc != nil { + if err == nil { + s.recorder.Eventf(svc, apiv1.EventTypeNormal, operationName, "%s %d network endpoints to NEG %q in %q.", operationName, len(networkEndpoints), s.negName, zone) + } else { + s.recorder.Eventf(svc, apiv1.EventTypeWarning, operationName+"Failed", "Failed to %s %d network endpoints to NEG %q in %q: %v", operationName, len(networkEndpoints), s.negName, zone, err) + } + } +} + +func (s *syncer) nextRetryDelay() time.Duration { + s.retryCount += 1 + s.lastRetryDelay *= 2 + if s.lastRetryDelay < minRetryDelay { + s.lastRetryDelay = minRetryDelay + } else if s.lastRetryDelay > maxRetryDelay { + s.lastRetryDelay = maxRetryDelay + } + return s.lastRetryDelay +} + +func (s *syncer) resetRetryDelay() { + s.retryCount = 0 + s.lastRetryDelay = time.Duration(0) +} + +// encodeEndpoint encodes ip and instance into a single string +func encodeEndpoint(ip, instance, port string) string { + return fmt.Sprintf("%s||%s||%s", ip, instance, port) +} + +// decodeEndpoint decodes ip and instance from an encoded string +func decodeEndpoint(str string) (string, string, string) { + strs := strings.Split(str, "||") + return strs[0], strs[1], strs[2] +} + +// calculateDifference determines what endpoints needs to be added and removed in order to move current state to target state. +func calculateDifference(targetMap, currentMap map[string]sets.String) (map[string]sets.String, map[string]sets.String) { + addSet := map[string]sets.String{} + removeSet := map[string]sets.String{} + for zone, endpointSet := range targetMap { + diff := endpointSet.Difference(currentMap[zone]) + if len(diff) > 0 { + addSet[zone] = diff + } + } + + for zone, endpointSet := range currentMap { + diff := endpointSet.Difference(targetMap[zone]) + if len(diff) > 0 { + removeSet[zone] = diff + } + } + return addSet, removeSet +} + +func retrieveName(url string) string { + strs := strings.Split(url, "/") + return strs[len(strs)-1] +} + +// getService retrieves service object from serviceLister based on the input namespace and name +func getService(serviceLister cache.Indexer, namespace, name string) *apiv1.Service { + service, exists, err := serviceLister.GetByKey(serviceKeyFunc(namespace, name)) + if exists && err == nil { + return service.(*apiv1.Service) + } + if err != nil { + glog.Errorf("Failed to retrieve service %s/%s from store: %v", namespace, name, err) + } + return nil +} diff --git a/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/syncer_test.go b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/syncer_test.go new file mode 100644 index 000000000..74946c5e9 --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/networkendpointgroup/syncer_test.go @@ -0,0 +1,439 @@ +package networkendpointgroup + +import ( + apiv1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/kubernetes/fake" + "k8s.io/client-go/tools/record" + "k8s.io/ingress-gce/pkg/context" + "reflect" + "testing" + "time" +) + +const ( + NegName = "test-neg-name" + ServiceNamespace = "test-ns" + ServiceName = "test-name" + NamedPort = "named-port" +) + +func NewTestSyncer() *syncer { + kubeClient := fake.NewSimpleClientset() + context := context.NewControllerContext(kubeClient, apiv1.NamespaceAll, 1*time.Second, true) + svcPort := servicePort{ + namespace: ServiceNamespace, + name: ServiceName, + targetPort: "80", + } + + return newSyncer(svcPort, + NegName, + record.NewFakeRecorder(100), + NewFakeNetworkEndpointGroupCloud("test-subnetwork", "test-newtork"), + NewFakeZoneGetter(), + context.ServiceInformer.GetIndexer(), + context.EndpointInformer.GetIndexer()) +} + +func TestStartAndStopSyncer(t *testing.T) { + syncer := NewTestSyncer() + if !syncer.IsStopped() { + t.Fatalf("Syncer is not stopped after creation.") + } + if syncer.IsShuttingDown() { + t.Fatalf("Syncer is shutting down after creation.") + } + + if err := syncer.Start(); err != nil { + t.Fatalf("Failed to start syncer: %v", err) + } + if syncer.IsStopped() { + t.Fatalf("Syncer is stopped after Start.") + } + if syncer.IsShuttingDown() { + t.Fatalf("Syncer is shutting down after Start.") + } + + syncer.Stop() + if !syncer.IsStopped() { + t.Fatalf("Syncer is not stopped after Stop.") + } + + if err := wait.PollImmediate(time.Second, 30*time.Second, func() (bool, error) { + return !syncer.IsShuttingDown() && syncer.IsStopped(), nil + }); err != nil { + t.Fatalf("Syncer failed to shutdown: %v", err) + } + + if err := syncer.Start(); err != nil { + t.Fatalf("Failed to restart syncer: %v", err) + } + if syncer.IsStopped() { + t.Fatalf("Syncer is stopped after restart.") + } + if syncer.IsShuttingDown() { + t.Fatalf("Syncer is shutting down after restart.") + } + + syncer.Stop() + if !syncer.IsStopped() { + t.Fatalf("Syncer is not stopped after Stop.") + } +} + +func TestEnsureNetworkEndpointGroups(t *testing.T) { + syncer := NewTestSyncer() + if err := syncer.ensureNetworkEndpointGroups(); err != nil { + t.Errorf("Failed to ensure NEGs: %v", err) + } + + ret, _ := syncer.cloud.AggregatedListNetworkEndpointGroup() + expectZones := []string{TestZone1, TestZone2} + for _, zone := range expectZones { + negs, ok := ret[zone] + if !ok { + t.Errorf("Failed to find zone %q from ret %v", zone, ret) + continue + } + + if len(negs) != 1 { + t.Errorf("Unexpected negs %v", negs) + } else { + if negs[0].Name != NegName { + t.Errorf("Unexpected neg %q", negs[0].Name) + } + } + } +} + +func TestToZoneNetworkEndpointMap(t *testing.T) { + syncer := NewTestSyncer() + testCases := []struct { + targetPort string + expect map[string]sets.String + }{ + { + targetPort: "80", + expect: map[string]sets.String{ + TestZone1: sets.NewString("10.100.1.1||instance1||80", "10.100.1.2||instance1||80", "10.100.2.1||instance2||80"), + TestZone2: sets.NewString("10.100.3.1||instance3||80"), + }, + }, + { + targetPort: NamedPort, + expect: map[string]sets.String{ + TestZone1: sets.NewString("10.100.2.2||instance2||81"), + TestZone2: sets.NewString("10.100.4.1||instance4||81", "10.100.3.2||instance3||8081", "10.100.4.2||instance4||8081"), + }, + }, + } + + for _, tc := range testCases { + syncer.targetPort = tc.targetPort + res, _ := syncer.toZoneNetworkEndpointMap(getDefaultEndpoint()) + + if !reflect.DeepEqual(res, tc.expect) { + t.Errorf("Expect %v, but got %v.", tc.expect, res) + } + } +} + +func TestEncodeDecodeEndpoint(t *testing.T) { + ip := "10.0.0.10" + instance := "somehost" + port := "8080" + + retIp, retInstance, retPort := decodeEndpoint(encodeEndpoint(ip, instance, port)) + + if ip != retIp || instance != retInstance || retPort != port { + t.Fatalf("Encode and decode endpoint failed. Expect %q, %q, %q but got %q, %q, %q.", ip, instance, port, retIp, retInstance, retPort) + } +} + +func TestCalculateDifference(t *testing.T) { + testCases := []struct { + targetSet map[string]sets.String + currentSet map[string]sets.String + addSet map[string]sets.String + removeSet map[string]sets.String + }{ + // unchanged + { + targetSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + }, + currentSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + }, + addSet: map[string]sets.String{}, + removeSet: map[string]sets.String{}, + }, + // unchanged + { + targetSet: map[string]sets.String{}, + currentSet: map[string]sets.String{}, + addSet: map[string]sets.String{}, + removeSet: map[string]sets.String{}, + }, + // add in one zone + { + targetSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + }, + currentSet: map[string]sets.String{}, + addSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + }, + removeSet: map[string]sets.String{}, + }, + // add in 2 zones + { + targetSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + TestZone2: sets.NewString("e", "f", "g"), + }, + currentSet: map[string]sets.String{}, + addSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + TestZone2: sets.NewString("e", "f", "g"), + }, + removeSet: map[string]sets.String{}, + }, + // remove in one zone + { + targetSet: map[string]sets.String{}, + currentSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + }, + addSet: map[string]sets.String{}, + removeSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + }, + }, + // remove in 2 zones + { + targetSet: map[string]sets.String{}, + currentSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + TestZone2: sets.NewString("e", "f", "g"), + }, + addSet: map[string]sets.String{}, + removeSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + TestZone2: sets.NewString("e", "f", "g"), + }, + }, + // add and delete in one zone + { + targetSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + }, + currentSet: map[string]sets.String{ + TestZone1: sets.NewString("b", "c", "d"), + }, + addSet: map[string]sets.String{ + TestZone1: sets.NewString("a"), + }, + removeSet: map[string]sets.String{ + TestZone1: sets.NewString("d"), + }, + }, + // add and delete in 2 zones + { + targetSet: map[string]sets.String{ + TestZone1: sets.NewString("a", "b", "c"), + TestZone2: sets.NewString("a", "b", "c"), + }, + currentSet: map[string]sets.String{ + TestZone1: sets.NewString("b", "c", "d"), + TestZone2: sets.NewString("b", "c", "d"), + }, + addSet: map[string]sets.String{ + TestZone1: sets.NewString("a"), + TestZone2: sets.NewString("a"), + }, + removeSet: map[string]sets.String{ + TestZone1: sets.NewString("d"), + TestZone2: sets.NewString("d"), + }, + }, + } + + for _, tc := range testCases { + addSet, removeSet := calculateDifference(tc.targetSet, tc.currentSet) + + if !reflect.DeepEqual(addSet, tc.addSet) { + t.Errorf("Failed to calculate difference for add, expecting %v, but got %v", tc.addSet, addSet) + } + + if !reflect.DeepEqual(removeSet, tc.removeSet) { + t.Errorf("Failed to calculate difference for remove, expecting %v, but got %v", tc.removeSet, removeSet) + } + } +} + +func TestSyncNetworkEndpoints(t *testing.T) { + syncer := NewTestSyncer() + if err := syncer.ensureNetworkEndpointGroups(); err != nil { + t.Fatalf("Failed to ensure NEG: %v", err) + } + + testCases := []struct { + expectSet map[string]sets.String + addSet map[string]sets.String + removeSet map[string]sets.String + }{ + { + expectSet: map[string]sets.String{ + TestZone1: sets.NewString("10.100.1.1||instance1||80", "10.100.2.1||instance2||80"), + TestZone2: sets.NewString("10.100.3.1||instance3||80", "10.100.4.1||instance4||80"), + }, + addSet: map[string]sets.String{ + TestZone1: sets.NewString("10.100.1.1||instance1||80", "10.100.2.1||instance2||80"), + TestZone2: sets.NewString("10.100.3.1||instance3||80", "10.100.4.1||instance4||80"), + }, + removeSet: map[string]sets.String{}, + }, + { + expectSet: map[string]sets.String{ + TestZone1: sets.NewString("10.100.1.2||instance1||80"), + TestZone2: sets.NewString(), + }, + addSet: map[string]sets.String{ + TestZone1: sets.NewString("10.100.1.2||instance1||80"), + }, + removeSet: map[string]sets.String{ + TestZone1: sets.NewString("10.100.1.1||instance1||80", "10.100.2.1||instance2||80"), + TestZone2: sets.NewString("10.100.3.1||instance3||80", "10.100.4.1||instance4||80"), + }, + }, + { + expectSet: map[string]sets.String{ + TestZone1: sets.NewString("10.100.1.2||instance1||80"), + TestZone2: sets.NewString("10.100.3.2||instance3||80"), + }, + addSet: map[string]sets.String{ + TestZone2: sets.NewString("10.100.3.2||instance3||80"), + }, + removeSet: map[string]sets.String{}, + }, + } + + for _, tc := range testCases { + if err := syncer.syncNetworkEndpoints(tc.addSet, tc.removeSet); err != nil { + t.Fatalf("Failed to sync network endpoints: %v", err) + } + examineNetworkEndpoints(tc.expectSet, syncer, t) + } +} + +func examineNetworkEndpoints(expectSet map[string]sets.String, syncer *syncer, t *testing.T) { + for zone, endpoints := range expectSet { + expectEndpoints, err := syncer.toNetworkEndpointBatch(endpoints) + if err != nil { + t.Fatalf("Failed to convert endpoints to network endpoints: %v", err) + } + if cloudEndpoints, err := syncer.cloud.ListNetworkEndpoints(syncer.negName, zone, false); err == nil { + if len(expectEndpoints) != len(cloudEndpoints) { + t.Errorf("Expect number of endpoints to be %v, but got %v.", len(expectEndpoints), len(cloudEndpoints)) + } + for _, expectEp := range expectEndpoints { + found := false + for _, cloudEp := range cloudEndpoints { + if reflect.DeepEqual(*expectEp, *cloudEp.NetworkEndpoint) { + found = true + break + } + } + if !found { + t.Errorf("Endpoint %v not found.", expectEp) + } + } + } else { + t.Errorf("Failed to list network endpoints in zone %q: %v.", zone, err) + } + } +} + +func getDefaultEndpoint() *apiv1.Endpoints { + instance1 := TestInstance1 + instance2 := TestInstance2 + instance3 := TestInstance3 + instance4 := TestInstance4 + return &apiv1.Endpoints{ + ObjectMeta: metav1.ObjectMeta{ + Name: ServiceName, + Namespace: ServiceNamespace, + }, + Subsets: []apiv1.EndpointSubset{ + { + Addresses: []apiv1.EndpointAddress{ + { + IP: "10.100.1.1", + NodeName: &instance1, + }, + { + IP: "10.100.1.2", + NodeName: &instance1, + }, + { + IP: "10.100.2.1", + NodeName: &instance2, + }, + { + IP: "10.100.3.1", + NodeName: &instance3, + }, + }, + Ports: []apiv1.EndpointPort{ + { + Name: "", + Port: int32(80), + Protocol: apiv1.ProtocolTCP, + }, + }, + }, + { + Addresses: []apiv1.EndpointAddress{ + { + IP: "10.100.2.2", + NodeName: &instance2, + }, + { + IP: "10.100.4.1", + NodeName: &instance4, + }, + }, + Ports: []apiv1.EndpointPort{ + { + Name: NamedPort, + Port: int32(81), + Protocol: apiv1.ProtocolTCP, + }, + }, + }, + { + Addresses: []apiv1.EndpointAddress{ + { + IP: "10.100.3.2", + NodeName: &instance3, + }, + { + IP: "10.100.4.2", + NodeName: &instance4, + }, + }, + Ports: []apiv1.EndpointPort{ + { + Name: NamedPort, + Port: int32(8081), + Protocol: apiv1.ProtocolTCP, + }, + }, + }, + }, + } +} diff --git a/vendor/k8s.io/ingress-gce/pkg/controller/tls.go b/vendor/k8s.io/ingress-gce/pkg/tls/tls.go similarity index 64% rename from vendor/k8s.io/ingress-gce/pkg/controller/tls.go rename to vendor/k8s.io/ingress-gce/pkg/tls/tls.go index 58350c16b..3c503c3f5 100644 --- a/vendor/k8s.io/ingress-gce/pkg/controller/tls.go +++ b/vendor/k8s.io/ingress-gce/pkg/tls/tls.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package controller +package tls import ( "fmt" @@ -29,26 +29,31 @@ import ( "k8s.io/ingress-gce/pkg/loadbalancers" ) -// secretLoaders returns a type containing all the secrets of an Ingress. -type tlsLoader interface { - load(ing *extensions.Ingress) (*loadbalancers.TLSCerts, error) - validate(certs *loadbalancers.TLSCerts) error +// TlsLoader is the interface for loading the relevant TLSCerts for a given ingress. +type TlsLoader interface { + // Load loads the relevant TLSCerts based on ing.Spec.TLS + Load(ing *extensions.Ingress) (*loadbalancers.TLSCerts, error) + // Validate validates the given TLSCerts and returns an error if they are invalid. + Validate(certs *loadbalancers.TLSCerts) error } // TODO: Add better cert validation. type noOPValidator struct{} -func (n *noOPValidator) validate(certs *loadbalancers.TLSCerts) error { +func (n *noOPValidator) Validate(certs *loadbalancers.TLSCerts) error { return nil } -// apiServerTLSLoader loads TLS certs from the apiserver. -type apiServerTLSLoader struct { +// TLSCertsFromSecretsLoader loads TLS certs from kubernetes secrets. +type TLSCertsFromSecretsLoader struct { noOPValidator - client kubernetes.Interface + Client kubernetes.Interface } -func (t *apiServerTLSLoader) load(ing *extensions.Ingress) (*loadbalancers.TLSCerts, error) { +// Ensure that TLSCertsFromSecretsLoader implements TlsLoader interface. +var _ TlsLoader = &TLSCertsFromSecretsLoader{} + +func (t *TLSCertsFromSecretsLoader) Load(ing *extensions.Ingress) (*loadbalancers.TLSCerts, error) { if len(ing.Spec.TLS) == 0 { return nil, nil } @@ -60,7 +65,7 @@ func (t *apiServerTLSLoader) load(ing *extensions.Ingress) (*loadbalancers.TLSCe secretName := ing.Spec.TLS[0].SecretName // TODO: Replace this for a secret watcher. glog.V(3).Infof("Retrieving secret for ing %v with name %v", ing.Name, secretName) - secret, err := t.client.Core().Secrets(ing.Namespace).Get(secretName, meta_v1.GetOptions{}) + secret, err := t.Client.Core().Secrets(ing.Namespace).Get(secretName, meta_v1.GetOptions{}) if err != nil { return nil, err } @@ -73,7 +78,7 @@ func (t *apiServerTLSLoader) load(ing *extensions.Ingress) (*loadbalancers.TLSCe return nil, fmt.Errorf("secret %v has no 'tls.key'", secretName) } certs := &loadbalancers.TLSCerts{Key: string(key), Cert: string(cert)} - if err := t.validate(certs); err != nil { + if err := t.Validate(certs); err != nil { return nil, err } return certs, nil @@ -82,16 +87,19 @@ func (t *apiServerTLSLoader) load(ing *extensions.Ingress) (*loadbalancers.TLSCe // TODO: Add support for file loading so we can support HTTPS default backends. // fakeTLSSecretLoader fakes out TLS loading. -type fakeTLSSecretLoader struct { +type FakeTLSSecretLoader struct { noOPValidator - fakeCerts map[string]*loadbalancers.TLSCerts + FakeCerts map[string]*loadbalancers.TLSCerts } -func (f *fakeTLSSecretLoader) load(ing *extensions.Ingress) (*loadbalancers.TLSCerts, error) { +// Ensure that FakeTLSSecretLoader implements TlsLoader interface. +var _ TlsLoader = &FakeTLSSecretLoader{} + +func (f *FakeTLSSecretLoader) Load(ing *extensions.Ingress) (*loadbalancers.TLSCerts, error) { if len(ing.Spec.TLS) == 0 { return nil, nil } - for name, cert := range f.fakeCerts { + for name, cert := range f.FakeCerts { if ing.Spec.TLS[0].SecretName == name { return cert, nil } diff --git a/vendor/k8s.io/ingress-gce/pkg/utils/namer.go b/vendor/k8s.io/ingress-gce/pkg/utils/namer.go new file mode 100644 index 000000000..68072f2c4 --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/utils/namer.go @@ -0,0 +1,360 @@ +/* +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 utils + +import ( + "crypto/md5" + "fmt" + "regexp" + "strconv" + "strings" + "sync" + + "github.com/golang/glog" +) + +const ( + // A single target proxy/urlmap/forwarding rule is created per loadbalancer. + // Tagged with the namespace/name of the Ingress. + targetHTTPProxyPrefix = "k8s-tp" + targetHTTPSProxyPrefix = "k8s-tps" + sslCertPrefix = "k8s-ssl" + // TODO: this should really be "fr" and "frs". + forwardingRulePrefix = "k8s-fw" + httpsForwardingRulePrefix = "k8s-fws" + urlMapPrefix = "k8s-um" + + // This allows sharing of backends across loadbalancers. + backendPrefix = "k8s-be" + backendRegex = "k8s-be-([0-9]+).*" + + // Prefix used for instance groups involved in L7 balancing. + igPrefix = "k8s-ig" + + // Suffix used in the l7 firewall rule. There is currently only one. + // Note that this name is used by the cloudprovider lib that inserts + // its own k8s-fw prefix. + globalFirewallSuffix = "l7" + + // A delimiter used for clarity in naming GCE resources. + clusterNameDelimiter = "--" + + // Arbitrarily chosen alphanumeric character to use in constructing + // resource names, eg: to avoid cases where we end up with a name + // ending in '-'. + alphaNumericChar = "0" + + // Names longer than this are truncated, because of GCE + // restrictions. Note that this is less than 63 as one character is + // reserved at the end for adding alphaNumericChar to the end to + // avoid terminating on an invalid character ('-'). + nameLenLimit = 62 + + // DefaultBackendKey is the key used to transmit the defaultBackend + // through a urlmap. It's not a valid subdomain, and it is a catch + // all path. TODO: Find a better way to transmit this, once we've + // decided on default backend semantics (i.e do we want a default + // per host, per lb etc). + DefaultBackendKey = "DefaultBackend" + + // maxNEGDescriptiveLabel is the max length for namespace, name and + // port for neg name. 63 - 5 (k8s and naming schema version prefix) + // - 16 (cluster id) - 8 (suffix hash) - 4 (hyphen connector) = 30 + maxNEGDescriptiveLabel = 30 + + // schemaVersionV1 is the version 1 naming scheme for NEG + schemaVersionV1 = "1" +) + +// NamerProtocol is an enum for the different protocols given as +// parameters to Namer. +type NamerProtocol string + +const ( + HTTPProtocol NamerProtocol = "HTTP" + HTTPSProtocol NamerProtocol = "HTTPS" +) + +// Namer is the centralized naming policy for Ingress-related GCP +// resources. +type Namer struct { + nameLock sync.Mutex + clusterName string + firewallName string +} + +// NewNamer creates a new namer with a Cluster and Firewall name. +func NewNamer(clusterName, firewallName string) *Namer { + namer := &Namer{} + namer.SetUID(clusterName) + namer.SetFirewall(firewallName) + + return namer +} + +// NameComponents is a struct representing the components of a a GCE +// resource name constructed by the namer. The format of such a name +// is: k8s-resource---uid +type NameComponents struct { + ClusterName, Resource, Metadata string +} + +// SetUID sets the UID/name of this cluster. +func (n *Namer) SetUID(name string) { + n.nameLock.Lock() + defer n.nameLock.Unlock() + + if strings.Contains(name, clusterNameDelimiter) { + tokens := strings.Split(name, clusterNameDelimiter) + glog.Warningf("Given name %v contains %v, taking last token in: %+v", name, clusterNameDelimiter, tokens) + name = tokens[len(tokens)-1] + } + glog.Infof("Changing cluster name from %v to %v", n.clusterName, name) + n.clusterName = name +} + +// SetFirewall sets the firewall name of this cluster. +func (n *Namer) SetFirewall(name string) { + n.nameLock.Lock() + defer n.nameLock.Unlock() + + if n.firewallName != name { + glog.Infof("Changing firewall name from %v to %v", n.firewallName, name) + n.firewallName = name + } +} + +// UID returns the UID/name of this cluster. +func (n *Namer) UID() string { + n.nameLock.Lock() + defer n.nameLock.Unlock() + return n.clusterName +} + +// GetFirewallName returns the firewall name of this cluster. +func (n *Namer) Firewall() string { + n.nameLock.Lock() + defer n.nameLock.Unlock() + + // Retain backwards compatible behavior where firewallName == clusterName. + if n.firewallName == "" { + return n.clusterName + } else { + return n.firewallName + } +} + +// truncate truncates the given key to a GCE length limit. +func truncate(key string) string { + if len(key) > nameLenLimit { + // GCE requires names to end with an alphanumeric, but allows + // characters like '-', so make sure the trucated name ends + // legally. + return fmt.Sprintf("%v%v", key[:nameLenLimit], alphaNumericChar) + } + return key +} + +func (n *Namer) decorateName(name string) string { + clusterName := n.UID() + if clusterName == "" { + return name + } + return truncate(fmt.Sprintf("%v%v%v", name, clusterNameDelimiter, clusterName)) +} + +// ParseName parses the name of a resource generated by the namer. +// This is only valid for the following resources: +// +// Backend, InstanceGroup, TargetProxy, SSLCert, ForwardingRule, +// UrlMap. +func (n *Namer) ParseName(name string) *NameComponents { + l := strings.Split(name, clusterNameDelimiter) + var uid, resource string + if len(l) >= 2 { + uid = l[len(l)-1] + } + c := strings.Split(name, "-") + if len(c) >= 2 { + resource = c[1] + } + return &NameComponents{ + ClusterName: uid, + Resource: resource, + } +} + +// NameBelongsToCluster checks if a given name is tagged with this +// cluster's UID. +func (n *Namer) NameBelongsToCluster(name string) bool { + if !strings.HasPrefix(name, "k8s-") { + return false + } + + parts := strings.Split(name, clusterNameDelimiter) + clusterName := n.UID() + if len(parts) == 1 { + return clusterName == "" + } + + if len(parts) > 2 { + return false + } + + return parts[1] == clusterName +} + +// BeName constructs the name for a backend. +func (n *Namer) Backend(port int64) string { + return n.decorateName(fmt.Sprintf("%v-%d", backendPrefix, port)) +} + +// BackendPort retrieves the port from the given backend name. +func (n *Namer) BackendPort(beName string) (string, error) { + r, err := regexp.Compile(backendRegex) + if err != nil { + return "", err + } + match := r.FindStringSubmatch(beName) + if len(match) < 2 { + return "", fmt.Errorf("unable to lookup port for %v", beName) + } + _, err = strconv.Atoi(match[1]) + if err != nil { + return "", fmt.Errorf("unexpected regex match: %v", beName) + } + return match[1], nil +} + +// InstanceGroup constructs the name for an Instance Group. +func (n *Namer) InstanceGroup() string { + return n.decorateName(igPrefix) +} + +// firewallRuleSuffix constructs the glbc specific suffix for the FirewallRule. +func (n *Namer) firewallRuleSuffix() string { + firewallName := n.Firewall() + // The entire cluster only needs a single firewall rule. + if firewallName == "" { + return globalFirewallSuffix + } + return truncate(fmt.Sprintf("%v%v%v", globalFirewallSuffix, clusterNameDelimiter, firewallName)) +} + +// FirewallRule constructs the full firewall rule name, this is the name +// assigned by the cloudprovider lib + suffix from glbc, so we don't +// mix this rule with a rule created for L4 loadbalancing. +func (n *Namer) FirewallRule() string { + return fmt.Sprintf("k8s-fw-%s", n.firewallRuleSuffix()) +} + +// LoadBalancer constructs a loadbalancer name from the given key. The key +// is usually the namespace/name of a Kubernetes Ingress. +func (n *Namer) LoadBalancer(key string) string { + // TODO: Pipe the clusterName through, for now it saves code churn + // to just grab it globally, especially since we haven't decided how + // to handle namespace conflicts in the Ubernetes context. + parts := strings.Split(key, clusterNameDelimiter) + scrubbedName := strings.Replace(key, "/", "-", -1) + clusterName := n.UID() + if clusterName == "" || parts[len(parts)-1] == clusterName { + return scrubbedName + } + return truncate(fmt.Sprintf("%v%v%v", scrubbedName, clusterNameDelimiter, clusterName)) +} + +// TargetProxy returns the name for target proxy given the load +// balancer name and the protocol. +func (n *Namer) TargetProxy(lbName string, protocol NamerProtocol) string { + switch protocol { + case HTTPProtocol: + return truncate(fmt.Sprintf("%v-%v", targetHTTPProxyPrefix, lbName)) + case HTTPSProtocol: + return truncate(fmt.Sprintf("%v-%v", targetHTTPSProxyPrefix, lbName)) + } + glog.Fatalf("Invalid TargetProxy protocol: %v", protocol) + return "invalid" +} + +// IsSSLCert returns true if certName is an Ingress managed name. +func (n *Namer) IsSSLCert(name string) bool { + return strings.HasPrefix(name, sslCertPrefix) +} + +// SSLCert returns the name of the certificate. isPrimary denotes +// whether the name is for a primary certificate or secondary. +func (n *Namer) SSLCert(lbName string, isPrimary bool) string { + if isPrimary { + return truncate(fmt.Sprintf("%v-%v", sslCertPrefix, lbName)) + } + return truncate(fmt.Sprintf("%v-%d-%v", sslCertPrefix, 1, lbName)) +} + +// ForwardingRule returns the name of the forwarding rule prefix. +func (n *Namer) ForwardingRule(lbName string, protocol NamerProtocol) string { + switch protocol { + case HTTPProtocol: + return truncate(fmt.Sprintf("%v-%v", forwardingRulePrefix, lbName)) + case HTTPSProtocol: + return truncate(fmt.Sprintf("%v-%v", httpsForwardingRulePrefix, lbName)) + } + glog.Fatalf("invalid ForwardingRule protocol: %q", protocol) + return "invalid" +} + +// UrlMap returns the name for the UrlMap for a given load balancer. +func (n *Namer) UrlMap(lbName string) string { + return truncate(fmt.Sprintf("%v-%v", urlMapPrefix, lbName)) +} + +// NamedPort returns the name for a named port. +func (n *Namer) NamedPort(port int64) string { + return fmt.Sprintf("port%v", port) +} + +// NEG returns the gce neg name based on the service namespace, name +// and target port. NEG naming convention: +// +// k8s-{clusterid}-{namespace}-{name}-{target port}-{hash} +// +// Output name is at most 63 characters. NEG tries to keep as much +// information as possible. +// +// WARNING: Controllers depend on the naming pattern to get the list +// of all NEGs associated with the current cluster. Any modifications +// must be backward compatible. +func (n *Namer) NEG(namespace, name, port string) string { + trimmedFields := trimFieldsEvenly(maxNEGDescriptiveLabel, namespace, name, port) + trimedNamespace := trimmedFields[0] + trimedName := trimmedFields[1] + trimedPort := trimmedFields[2] + return fmt.Sprintf("%s-%s-%s-%s-%s", n.negPrefix(), trimedNamespace, trimedName, trimedPort, negSuffix(namespace, name, port)) +} + +// IsNEG returns true if the name is a NEG owned by this cluster. +func (n *Namer) IsNEG(name string) bool { + return strings.HasPrefix(name, n.negPrefix()) +} + +func (n *Namer) negPrefix() string { + return fmt.Sprintf("k8s%s-%s", schemaVersionV1, n.UID()) +} + +// negSuffix returns hash code with 8 characters +func negSuffix(namespace, name, port string) string { + return fmt.Sprintf("%x", md5.Sum([]byte(namespace+name+port)))[:8] +} diff --git a/vendor/k8s.io/ingress-gce/pkg/utils/namer_test.go b/vendor/k8s.io/ingress-gce/pkg/utils/namer_test.go new file mode 100644 index 000000000..8db704a9f --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/utils/namer_test.go @@ -0,0 +1,234 @@ +/* +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 utils + +import "testing" + +const ( + longString = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + clusterId = "0123456789abcdef" +) + +func TestTruncate(t *testing.T) { + for i := 0; i < len(longString); i++ { + s := truncate(longString[:i]) + if len(s) > 63 { + t.Errorf("truncate(longString[:%v]) = %q, length was greater than 63", i, s) + } + } +} + +func TestNamerUID(t *testing.T) { + const uid = "cluster-uid" + namer := NewNamer(uid, "cluster-fw") + if namer.UID() != uid { + t.Errorf("namer.UID() = %q, want %q", namer.UID(), uid) + } + + for _, tc := range []struct { + uidToSet string + want string + }{ + {"", ""}, + {"--", ""}, + {"--my-uid", "my-uid"}, + {"xxx--yyyyy", "yyyyy"}, + {"xxx--yyyyy--zzz", "zzz"}, + {"xxx--yyyyy--zzz--abc", "abc"}, + } { + namer.SetUID(tc.uidToSet) + if namer.UID() != tc.want { + t.Errorf("namer.UID() = %q, want %q", namer.UID(), tc.want) + } + } +} + +func TestNamerFirewall(t *testing.T) { + const fw1 = "fw1" + namer := NewNamer("cluster-uid", fw1) + if namer.Firewall() != fw1 { + t.Errorf("namer.Firewall() = %q, want %q", namer.Firewall(), fw1) + } + const fw2 = "fw2" + namer.SetFirewall(fw2) + if namer.Firewall() != fw2 { + t.Errorf("namer.Firewall() = %q, want %q", namer.Firewall(), fw2) + } +} + +func TestNamerParseName(t *testing.T) { + const uid = "uid1" + namer := NewNamer(uid, "fw1") + lbName := namer.LoadBalancer("key1") + + for _, tc := range []struct { + in string + want *NameComponents + }{ + {"", &NameComponents{}}, // TODO: this should really be a parse error. + {namer.Backend(80), &NameComponents{uid, "be", ""}}, + {namer.InstanceGroup(), &NameComponents{uid, "ig", ""}}, + {namer.TargetProxy(lbName, HTTPProtocol), &NameComponents{uid, "tp", ""}}, + {namer.TargetProxy(lbName, HTTPSProtocol), &NameComponents{uid, "tps", ""}}, + {namer.SSLCert(lbName, true), &NameComponents{uid, "ssl", ""}}, + {namer.SSLCert(lbName, false), &NameComponents{uid, "ssl", ""}}, + {namer.ForwardingRule(lbName, HTTPProtocol), &NameComponents{uid, "fw", ""}}, + {namer.ForwardingRule(lbName, HTTPSProtocol), &NameComponents{uid, "fws", ""}}, + {namer.UrlMap(lbName), &NameComponents{uid, "um", ""}}, + } { + nc := namer.ParseName(tc.in) + if *nc != *tc.want { + t.Errorf("namer.ParseName(%q) = %+v, want %+v", tc.in, nc, *tc.want) + } + } +} + +func TestNameBelongsToCluster(t *testing.T) { + const uid = "uid1" + namer := NewNamer(uid, "fw1") + lbName := namer.LoadBalancer("key1") + + // Positive cases. + for _, tc := range []string{ + namer.Backend(80), + namer.InstanceGroup(), + namer.TargetProxy(lbName, HTTPProtocol), + namer.TargetProxy(lbName, HTTPSProtocol), + namer.SSLCert(lbName, true), + namer.SSLCert(lbName, false), + namer.ForwardingRule(lbName, HTTPProtocol), + namer.ForwardingRule(lbName, HTTPSProtocol), + namer.UrlMap(lbName), + } { + if !namer.NameBelongsToCluster(tc) { + t.Errorf("namer.NameBelongsToCluster(%q) = false, want true", tc) + } + } + // Negative cases. + for _, tc := range []string{"", "invalid", "not--the-right-uid"} { + if namer.NameBelongsToCluster(tc) { + t.Errorf("namer.NameBelongsToCluster(%q) = true, want false", tc) + } + } +} + +func TestNamerBackend(t *testing.T) { + for _, tc := range []struct { + desc string + uid string + port int64 + want string + }{ + {desc: "default", port: 80, want: "k8s-be-80--uid1"}, + {desc: "uid", uid: "uid2", port: 80, want: "k8s-be-80--uid2"}, + {desc: "port", port: 8080, want: "k8s-be-8080--uid1"}, + { + desc: "truncation", + uid: longString, + port: 8080, + want: "k8s-be-8080--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0", + }, + } { + namer := NewNamer("uid1", "fw1") + if tc.uid != "" { + namer.SetUID(tc.uid) + } + name := namer.Backend(tc.port) + if name != tc.want { + t.Errorf("%s: namer.Backend() = %q, want %q", tc.desc, name, tc.want) + } + } +} + +func TestNamerInstanceGroup(t *testing.T) { + namer := NewNamer("uid1", "fw1") + name := namer.InstanceGroup() + if name != "k8s-ig--uid1" { + t.Errorf("namer.InstanceGroup() = %q, want %q", name, "k8s-ig--uid1") + } +} + +func TestNamerFirewallRule(t *testing.T) { + namer := NewNamer("uid1", "fw1") + name := namer.FirewallRule() + if name != "k8s-fw-l7--fw1" { + t.Errorf("namer.FirewallRule() = %q, want %q", name, "k8s-fw-l7--fw1") + } +} + +func TestNamerLoadBalancer(t *testing.T) { + // TODO: check names for all of the resources +} + +func TestNamerNEG(t *testing.T) { + longstring := "01234567890123456789012345678901234567890123456789" + testCases := []struct { + desc string + namespace string + name string + port string + expect string + }{ + { + "simple case", + "namespace", + "name", + "80", + "k8s1-0123456789abcdef-namespace-name-80-1e047e33", + }, + { + "63 characters", + longstring[:10], + longstring[:10], + longstring[:10], + "k8s1-0123456789abcdef-0123456789-0123456789-0123456789-4f7223eb", + }, + { + "long namespace", + longstring, + "0", + "0", + "k8s1-0123456789abcdef-01234567890123456789012345678-0--44255b67", + }, + + { + "long name and namespace", + longstring, + longstring, + "0", + "k8s1-0123456789abcdef-012345678901234-012345678901234--525cce3d", + }, + { + " long name, namespace and port", + longstring, + longstring[:40], + longstring[:30], + "k8s1-0123456789abcdef-0123456789012-0123456789-0123456-71877a60", + }, + } + + namer := NewNamer(clusterId, "") + for _, tc := range testCases { + res := namer.NEG(tc.namespace, tc.name, tc.port) + if len(res) > 63 { + t.Errorf("%s: got len(res) == %v, want <= 63", tc.desc, len(res)) + } + if res != tc.expect { + t.Errorf("%s: got %q, want %q", tc.desc, res, tc.expect) + } + } +} diff --git a/vendor/k8s.io/ingress-gce/pkg/utils/utils.go b/vendor/k8s.io/ingress-gce/pkg/utils/utils.go index caccbfa60..30decf703 100644 --- a/vendor/k8s.io/ingress-gce/pkg/utils/utils.go +++ b/vendor/k8s.io/ingress-gce/pkg/utils/utils.go @@ -19,12 +19,8 @@ package utils import ( "fmt" "net/http" - "regexp" - "strconv" "strings" - "sync" - "github.com/golang/glog" compute "google.golang.org/api/compute/v1" "google.golang.org/api/googleapi" ) @@ -49,34 +45,6 @@ const ( // RemoveInstances used to record a call to RemoveInstances. RemoveInstances - // This allows sharing of backends across loadbalancers. - backendPrefix = "k8s-be" - backendRegex = "k8s-be-([0-9]+).*" - - // Prefix used for instance groups involved in L7 balancing. - igPrefix = "k8s-ig" - - // Suffix used in the l7 firewall rule. There is currently only one. - // Note that this name is used by the cloudprovider lib that inserts its - // own k8s-fw prefix. - globalFirewallSuffix = "l7" - - // A delimiter used for clarity in naming GCE resources. - clusterNameDelimiter = "--" - - // Arbitrarily chosen alphanumeric character to use in constructing resource - // names, eg: to avoid cases where we end up with a name ending in '-'. - alphaNumericChar = "0" - - // Names longer than this are truncated, because of GCE restrictions. - nameLenLimit = 62 - - // DefaultBackendKey is the key used to transmit the defaultBackend through - // a urlmap. It's not a valid subdomain, and it is a catch all path. - // TODO: Find a better way to transmit this, once we've decided on default - // backend semantics (i.e do we want a default per host, per lb etc). - DefaultBackendKey = "DefaultBackend" - // K8sAnnotationPrefix is the prefix used in annotations used to record // debug information in the Ingress annotations. K8sAnnotationPrefix = "ingress.kubernetes.io" @@ -89,184 +57,6 @@ const ( type AppProtocol string -// Namer handles centralized naming for the cluster. -type Namer struct { - clusterName string - firewallName string - nameLock sync.Mutex -} - -// NewNamer creates a new namer with a Cluster and Firewall name. -func NewNamer(clusterName, firewallName string) *Namer { - namer := &Namer{} - namer.SetClusterName(clusterName) - namer.SetFirewallName(firewallName) - return namer -} - -// NameComponents is a struct representing the components of a a GCE resource -// name constructed by the namer. The format of such a name is: -// k8s-resource---uid -type NameComponents struct { - ClusterName, Resource, Metadata string -} - -// SetClusterName sets the UID/name of this cluster. -func (n *Namer) SetClusterName(name string) { - n.nameLock.Lock() - defer n.nameLock.Unlock() - if strings.Contains(name, clusterNameDelimiter) { - tokens := strings.Split(name, clusterNameDelimiter) - glog.Warningf("Given name %v contains %v, taking last token in: %+v", name, clusterNameDelimiter, tokens) - name = tokens[len(tokens)-1] - } - glog.Infof("Changing cluster name from %v to %v", n.clusterName, name) - n.clusterName = name -} - -// SetFirewallName sets the firewall name of this cluster. -func (n *Namer) SetFirewallName(firewall_name string) { - n.nameLock.Lock() - defer n.nameLock.Unlock() - if n.firewallName != firewall_name { - glog.Infof("Changing firewall name from %v to %v", n.firewallName, firewall_name) - n.firewallName = firewall_name - } -} - -// GetClusterName returns the UID/name of this cluster. -func (n *Namer) GetClusterName() string { - n.nameLock.Lock() - defer n.nameLock.Unlock() - return n.clusterName -} - -// GetFirewallName returns the firewall name of this cluster. -func (n *Namer) GetFirewallName() string { - n.nameLock.Lock() - defer n.nameLock.Unlock() - // Retain backwards compatible behavior where firewallName == clusterName. - if n.firewallName == "" { - return n.clusterName - } else { - return n.firewallName - } -} - -// Truncate truncates the given key to a GCE length limit. -func (n *Namer) Truncate(key string) string { - if len(key) > nameLenLimit { - // GCE requires names to end with an albhanumeric, but allows characters - // like '-', so make sure the trucated name ends legally. - return fmt.Sprintf("%v%v", key[:nameLenLimit], alphaNumericChar) - } - return key -} - -func (n *Namer) decorateName(name string) string { - clusterName := n.GetClusterName() - if clusterName == "" { - return name - } - return n.Truncate(fmt.Sprintf("%v%v%v", name, clusterNameDelimiter, clusterName)) -} - -// ParseName parses the name of a resource generated by the namer. -func (n *Namer) ParseName(name string) *NameComponents { - l := strings.Split(name, clusterNameDelimiter) - var uid, resource string - if len(l) >= 2 { - uid = l[len(l)-1] - } - c := strings.Split(name, "-") - if len(c) >= 2 { - resource = c[1] - } - return &NameComponents{ - ClusterName: uid, - Resource: resource, - } -} - -// NameBelongsToCluster checks if a given name is tagged with this cluster's UID. -func (n *Namer) NameBelongsToCluster(name string) bool { - if !strings.HasPrefix(name, "k8s-") { - return false - } - parts := strings.Split(name, clusterNameDelimiter) - clusterName := n.GetClusterName() - if len(parts) == 1 { - if clusterName == "" { - return true - } - return false - } - if len(parts) > 2 { - return false - } - return parts[1] == clusterName -} - -// BeName constructs the name for a backend. -func (n *Namer) BeName(port int64) string { - return n.decorateName(fmt.Sprintf("%v-%d", backendPrefix, port)) -} - -// BePort retrieves the port from the given backend name. -func (n *Namer) BePort(beName string) (string, error) { - r, err := regexp.Compile(backendRegex) - if err != nil { - return "", err - } - match := r.FindStringSubmatch(beName) - if len(match) < 2 { - return "", fmt.Errorf("unable to lookup port for %v", beName) - } - _, err = strconv.Atoi(match[1]) - if err != nil { - return "", fmt.Errorf("unexpected regex match: %v", beName) - } - return match[1], nil -} - -// IGName constructs the name for an Instance Group. -func (n *Namer) IGName() string { - // Currently all ports are added to a single instance group. - return n.decorateName(igPrefix) -} - -// FrSuffix constructs the glbc specific suffix for the FirewallRule. -func (n *Namer) FrSuffix() string { - firewallName := n.GetFirewallName() - // The entire cluster only needs a single firewall rule. - if firewallName == "" { - return globalFirewallSuffix - } - return n.Truncate(fmt.Sprintf("%v%v%v", globalFirewallSuffix, clusterNameDelimiter, firewallName)) -} - -// FrName constructs the full firewall rule name, this is the name assigned by -// the cloudprovider lib + suffix from glbc, so we don't mix this rule with a -// rule created for L4 loadbalancing. -func (n *Namer) FrName(suffix string) string { - return fmt.Sprintf("k8s-fw-%s", suffix) -} - -// LBName constructs a loadbalancer name from the given key. The key is usually -// the namespace/name of a Kubernetes Ingress. -func (n *Namer) LBName(key string) string { - // TODO: Pipe the clusterName through, for now it saves code churn to just - // grab it globally, especially since we haven't decided how to handle - // namespace conflicts in the Ubernetes context. - parts := strings.Split(key, clusterNameDelimiter) - scrubbedName := strings.Replace(key, "/", "-", -1) - clusterName := n.GetClusterName() - if clusterName == "" || parts[len(parts)-1] == clusterName { - return scrubbedName - } - return n.Truncate(fmt.Sprintf("%v%v%v", scrubbedName, clusterNameDelimiter, clusterName)) -} - // GCEURLMap is a nested map of hostname->path regex->backend type GCEURLMap map[string]map[string]*compute.BackendService @@ -364,8 +154,39 @@ func CompareLinks(l1, l2 string) bool { // that share the same testing methods. type FakeIngressRuleValueMap map[string]string -// GetNamedPort creates the NamedPort API object for the given port. -func GetNamedPort(port int64) *compute.NamedPort { - // TODO: move port naming to namer - return &compute.NamedPort{Name: fmt.Sprintf("port%v", port), Port: port} +// trimFieldsEvenly trims the fields evenly and keeps the total length +// <= max. Truncation is spread in ratio with their original length, +// meaning smaller fields will be truncated less than longer ones. +func trimFieldsEvenly(max int, fields ...string) []string { + if max <= 0 { + return fields + } + total := 0 + for _, s := range fields { + total += len(s) + } + if total <= max { + return fields + } + // Distribute truncation evenly among the fields. + excess := total - max + remaining := max + var lengths []int + for _, s := range fields { + // Scale truncation to shorten longer fields more than ones that are already short. + l := len(s) - len(s)*excess/total - 1 + lengths = append(lengths, l) + remaining -= l + } + // Add fractional space that was rounded down. + for i := 0; i < remaining; i++ { + lengths[i]++ + } + + var ret []string + for i, l := range lengths { + ret = append(ret, fields[i][:l]) + } + + return ret } diff --git a/vendor/k8s.io/ingress-gce/pkg/utils/utils_test.go b/vendor/k8s.io/ingress-gce/pkg/utils/utils_test.go new file mode 100644 index 000000000..650235ee9 --- /dev/null +++ b/vendor/k8s.io/ingress-gce/pkg/utils/utils_test.go @@ -0,0 +1,97 @@ +/* +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 utils + +import ( + "testing" +) + +func TestGCEURLMap(t *testing.T) { + // TODO +} + +func TestTrimFieldsEvenly(t *testing.T) { + longString := "01234567890123456789012345678901234567890123456789" + testCases := []struct { + desc string + fields []string + expect []string + max int + }{ + { + "no change", + []string{longString}, + []string{longString}, + 100, + }, + { + "equal to max and no change", + []string{longString, longString}, + []string{longString, longString}, + 100, + }, + { + "equally trimmed to half", + []string{longString, longString}, + []string{longString[:25], longString[:25]}, + 50, + }, + { + "trimmed to only 10", + []string{longString, longString, longString}, + []string{longString[:4], longString[:3], longString[:3]}, + 10, + }, + { + "trimmed to only 3", + []string{longString, longString, longString}, + []string{longString[:1], longString[:1], longString[:1]}, + 3, + }, + { + "one long field with one short field", + []string{longString, longString[:1]}, + []string{longString[:1], ""}, + 1, + }, + { + "one long field with one short field and trimmed to 5", + []string{longString, longString[:1]}, + []string{longString[:5], ""}, + 5, + }, + } + + for _, tc := range testCases { + res := trimFieldsEvenly(tc.max, tc.fields...) + if len(res) != len(tc.expect) { + t.Fatalf("%s: expect length == %d, got %d", tc.desc, len(tc.expect), len(res)) + } + + totalLen := 0 + for i := range res { + totalLen += len(res[i]) + if res[i] != tc.expect[i] { + t.Errorf("%s: the %d field is expected to be %q, but got %q", tc.desc, i, tc.expect[i], res[i]) + } + } + + if tc.max < totalLen { + t.Errorf("%s: expect totalLen to be less than %d, but got %d", tc.desc, tc.max, totalLen) + } + } +} diff --git a/vendor/k8s.io/kube-openapi/Godeps/Godeps.json b/vendor/k8s.io/kube-openapi/Godeps/Godeps.json index c2ad16c1f..0e95fb3de 100644 --- a/vendor/k8s.io/kube-openapi/Godeps/Godeps.json +++ b/vendor/k8s.io/kube-openapi/Godeps/Godeps.json @@ -12,6 +12,7 @@ }, { "ImportPath": "github.com/PuerkitoBio/purell", + "Comment": "v1.0.0", "Rev": "8a290539e2e8629dbc4e6bad948158f790ec31f4" }, { @@ -24,10 +25,12 @@ }, { "ImportPath": "github.com/emicklei/go-restful", + "Comment": "2.2.0-4-gff4f55a", "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" }, { "ImportPath": "github.com/emicklei/go-restful/log", + "Comment": "2.2.0-4-gff4f55a", "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" }, { @@ -98,6 +101,156 @@ "ImportPath": "github.com/mailru/easyjson/jwriter", "Rev": "d5b7844b561a7bc640052f1b935f7b800330d7e0" }, + { + "ImportPath": "github.com/onsi/ginkgo", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/config", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/codelocation", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/containernode", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/failer", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/leafnodes", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/remote", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/spec", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/spec_iterator", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/specrunner", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/suite", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/testingtproxy", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/internal/writer", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/reporters", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/reporters/stenographer", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/ginkgo/types", + "Comment": "v1.4.0-4-g11459a8", + "Rev": "11459a886d9cd66b319dac7ef1e917ee221372c9" + }, + { + "ImportPath": "github.com/onsi/gomega", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/format", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/internal/assertion", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/internal/asyncassertion", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/internal/oraclematcher", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/internal/testingtsupport", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/matchers", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/matchers/support/goraph/bipartitegraph", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/matchers/support/goraph/edge", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/matchers/support/goraph/node", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/matchers/support/goraph/util", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, + { + "ImportPath": "github.com/onsi/gomega/types", + "Comment": "v1.2.0-2-gdcabb60", + "Rev": "dcabb60a477c2b6f456df65037cb6708210fbb02" + }, { "ImportPath": "github.com/pmezard/go-difflib/difflib", "Rev": "d8ed2627bdf02c080bf22230dbb337003b7aba2d" @@ -108,20 +261,81 @@ }, { "ImportPath": "github.com/stretchr/testify/assert", + "Comment": "v1.0-88-ge3a8ff8", "Rev": "e3a8ff8ce36581f87a15341206f205b1da467059" }, + { + "ImportPath": "golang.org/x/net/html", + "Rev": "f2499483f923065a842d38eb4c7f1927e6fc6e6d" + }, + { + "ImportPath": "golang.org/x/net/html/atom", + "Rev": "f2499483f923065a842d38eb4c7f1927e6fc6e6d" + }, + { + "ImportPath": "golang.org/x/net/html/charset", + "Rev": "f2499483f923065a842d38eb4c7f1927e6fc6e6d" + }, { "ImportPath": "golang.org/x/net/idna", "Rev": "f2499483f923065a842d38eb4c7f1927e6fc6e6d" }, + { + "ImportPath": "golang.org/x/sys/unix", + "Rev": "bb24a47a89eac6c1227fbcb2ae37a8b9ed323366" + }, { "ImportPath": "golang.org/x/text/cases", "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" }, + { + "ImportPath": "golang.org/x/text/encoding", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, + { + "ImportPath": "golang.org/x/text/encoding/charmap", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, + { + "ImportPath": "golang.org/x/text/encoding/htmlindex", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, + { + "ImportPath": "golang.org/x/text/encoding/internal", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, + { + "ImportPath": "golang.org/x/text/encoding/internal/identifier", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, + { + "ImportPath": "golang.org/x/text/encoding/japanese", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, + { + "ImportPath": "golang.org/x/text/encoding/korean", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, + { + "ImportPath": "golang.org/x/text/encoding/simplifiedchinese", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, + { + "ImportPath": "golang.org/x/text/encoding/traditionalchinese", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, + { + "ImportPath": "golang.org/x/text/encoding/unicode", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, { "ImportPath": "golang.org/x/text/internal/tag", "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" }, + { + "ImportPath": "golang.org/x/text/internal/utf8internal", + "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" + }, { "ImportPath": "golang.org/x/text/language", "Rev": "2910a502d2bf9e43193af9d68ca516529614eed3" @@ -157,6 +371,26 @@ { "ImportPath": "gopkg.in/yaml.v2", "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" + }, + { + "ImportPath": "k8s.io/gengo/args", + "Rev": "75356185a9af8f0464efa792e2e9508d5b4be83c" + }, + { + "ImportPath": "k8s.io/gengo/generator", + "Rev": "75356185a9af8f0464efa792e2e9508d5b4be83c" + }, + { + "ImportPath": "k8s.io/gengo/namer", + "Rev": "75356185a9af8f0464efa792e2e9508d5b4be83c" + }, + { + "ImportPath": "k8s.io/gengo/parser", + "Rev": "75356185a9af8f0464efa792e2e9508d5b4be83c" + }, + { + "ImportPath": "k8s.io/gengo/types", + "Rev": "75356185a9af8f0464efa792e2e9508d5b4be83c" } ] } diff --git a/vendor/k8s.io/kube-openapi/pkg/common/common.go b/vendor/k8s.io/kube-openapi/pkg/common/common.go index 94b026edb..fbe01cabb 100644 --- a/vendor/k8s.io/kube-openapi/pkg/common/common.go +++ b/vendor/k8s.io/kube-openapi/pkg/common/common.go @@ -89,6 +89,30 @@ type Config struct { DefaultSecurity []map[string][]string } +var schemaTypeFormatMap = map[string][]string{ + "uint": {"integer", "int32"}, + "uint8": {"integer", "byte"}, + "uint16": {"integer", "int32"}, + "uint32": {"integer", "int64"}, + "uint64": {"integer", "int64"}, + "int": {"integer", "int32"}, + "int8": {"integer", "byte"}, + "int16": {"integer", "int32"}, + "int32": {"integer", "int32"}, + "int64": {"integer", "int64"}, + "byte": {"integer", "byte"}, + "float64": {"number", "double"}, + "float32": {"number", "float"}, + "bool": {"boolean", ""}, + "time.Time": {"string", "date-time"}, + "string": {"string", ""}, + "integer": {"integer", ""}, + "number": {"number", ""}, + "boolean": {"boolean", ""}, + "[]byte": {"string", "byte"}, // base64 encoded characters + "interface{}": {"object", ""}, +} + // This function is a reference for converting go (or any custom type) to a simple open API type,format pair. There are // two ways to customize spec for a type. If you add it here, a type will be converted to a simple type and the type // comment (the comment that is added before type definition) will be lost. The spec will still have the property @@ -129,29 +153,6 @@ type Config struct { // } // func GetOpenAPITypeFormat(typeName string) (string, string) { - schemaTypeFormatMap := map[string][]string{ - "uint": {"integer", "int32"}, - "uint8": {"integer", "byte"}, - "uint16": {"integer", "int32"}, - "uint32": {"integer", "int64"}, - "uint64": {"integer", "int64"}, - "int": {"integer", "int32"}, - "int8": {"integer", "byte"}, - "int16": {"integer", "int32"}, - "int32": {"integer", "int32"}, - "int64": {"integer", "int64"}, - "byte": {"integer", "byte"}, - "float64": {"number", "double"}, - "float32": {"number", "float"}, - "bool": {"boolean", ""}, - "time.Time": {"string", "date-time"}, - "string": {"string", ""}, - "integer": {"integer", ""}, - "number": {"number", ""}, - "boolean": {"boolean", ""}, - "[]byte": {"string", "byte"}, // base64 encoded characters - "interface{}": {"object", ""}, - } mapped, ok := schemaTypeFormatMap[typeName] if !ok { return "", "" diff --git a/vendor/k8s.io/kube-openapi/pkg/generators/openapi.go b/vendor/k8s.io/kube-openapi/pkg/generators/openapi.go index c9f05fd29..5efb3f45c 100644 --- a/vendor/k8s.io/kube-openapi/pkg/generators/openapi.go +++ b/vendor/k8s.io/kube-openapi/pkg/generators/openapi.go @@ -118,17 +118,32 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat `)...) - if err := context.AddDir(arguments.OutputPackagePath); err != nil { + outputPath := arguments.OutputPackagePath + + if err := context.AddDir(outputPath); err != nil { glog.Fatalf("Failed to load output package: %v", err) } - pkg := context.Universe[arguments.OutputPackagePath] + + // Compute the canonical output path to allow retrieval of the + // package for a vendored output path. + const vendorPath = "/vendor/" + canonicalOutputPath := outputPath + if strings.Contains(outputPath, vendorPath) { + canonicalOutputPath = outputPath[strings.Index(outputPath, vendorPath)+len(vendorPath):] + } + + // The package for outputPath is mapped to the canonical path + pkg := context.Universe[canonicalOutputPath] if pkg == nil { glog.Fatalf("Got nil output package: %v", err) } return generator.Packages{ &generator.DefaultPackage{ PackageName: strings.Split(filepath.Base(pkg.Path), ".")[0], - PackagePath: pkg.Path, + // Use the supplied output path rather than the canonical + // one to allow generation into the path of a + // vendored package. + PackagePath: outputPath, HeaderText: header, GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) { return []generator.Generator{NewOpenAPIGen(arguments.OutputFileBaseName, pkg, context)} 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 000000000..11ed8a6b7 --- /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/kubernetes/pkg/kubectl/cmd/util/openapi/document.go b/vendor/k8s.io/kube-openapi/pkg/util/proto/document.go similarity index 73% rename from vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/document.go rename to vendor/k8s.io/kube-openapi/pkg/util/proto/document.go index 6b2f6782b..5f607c767 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/document.go +++ b/vendor/k8s.io/kube-openapi/pkg/util/proto/document.go @@ -14,16 +14,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -package openapi +package proto import ( "fmt" + "sort" "strings" openapi_v2 "github.com/googleapis/gnostic/OpenAPIv2" yaml "gopkg.in/yaml.v2" - - "k8s.io/apimachinery/pkg/runtime/schema" ) func newSchemaError(path *Path, format string, a ...interface{}) error { @@ -34,12 +33,8 @@ func newSchemaError(path *Path, format string, a ...interface{}) error { return fmt.Errorf("SchemaError(%v): %v", path, err) } -// groupVersionKindExtensionKey is the key used to lookup the -// GroupVersionKind value for an object definition from the -// definition's "extensions" map. -const groupVersionKindExtensionKey = "x-kubernetes-group-version-kind" - -func vendorExtensionToMap(e []*openapi_v2.NamedAny) map[string]interface{} { +// VendorExtensionToMap converts openapi VendorExtension to a map. +func VendorExtensionToMap(e []*openapi_v2.NamedAny) map[string]interface{} { values := map[string]interface{}{} for _, na := range e { @@ -61,67 +56,18 @@ func vendorExtensionToMap(e []*openapi_v2.NamedAny) map[string]interface{} { return values } -// Get and parse GroupVersionKind from the extension. Returns empty if it doesn't have one. -func parseGroupVersionKind(s *openapi_v2.Schema) schema.GroupVersionKind { - extensionMap := vendorExtensionToMap(s.GetVendorExtension()) - - // Get the extensions - gvkExtension, ok := extensionMap[groupVersionKindExtensionKey] - if !ok { - return schema.GroupVersionKind{} - } - - // gvk extension must be a list of 1 element. - gvkList, ok := gvkExtension.([]interface{}) - if !ok { - return schema.GroupVersionKind{} - } - if len(gvkList) != 1 { - return schema.GroupVersionKind{} - - } - gvk := gvkList[0] - - // gvk extension list must be a map with group, version, and - // kind fields - gvkMap, ok := gvk.(map[interface{}]interface{}) - if !ok { - return schema.GroupVersionKind{} - } - group, ok := gvkMap["group"].(string) - if !ok { - return schema.GroupVersionKind{} - } - version, ok := gvkMap["version"].(string) - if !ok { - return schema.GroupVersionKind{} - } - kind, ok := gvkMap["kind"].(string) - if !ok { - return schema.GroupVersionKind{} - } - - return schema.GroupVersionKind{ - Group: group, - Version: version, - Kind: kind, - } -} - -// Definitions is an implementation of `Resources`. It looks for -// resources in an openapi Schema. +// Definitions is an implementation of `Models`. It looks for +// models in an openapi Schema. type Definitions struct { - models map[string]Schema - resources map[schema.GroupVersionKind]string + models map[string]Schema } -var _ Resources = &Definitions{} +var _ Models = &Definitions{} -// NewOpenAPIData creates a new `Resources` out of the openapi document. -func NewOpenAPIData(doc *openapi_v2.Document) (Resources, error) { +// NewOpenAPIData creates a new `Models` out of the openapi document. +func NewOpenAPIData(doc *openapi_v2.Document) (Models, error) { definitions := Definitions{ - models: map[string]Schema{}, - resources: map[schema.GroupVersionKind]string{}, + models: map[string]Schema{}, } // Save the list of all models first. This will allow us to @@ -138,10 +84,6 @@ func NewOpenAPIData(doc *openapi_v2.Document) (Resources, error) { return nil, err } definitions.models[namedSchema.GetName()] = schema - gvk := parseGroupVersionKind(namedSchema.GetValue()) - if len(gvk.Kind) > 0 { - definitions.resources[gvk] = namedSchema.GetName() - } } return &definitions, nil @@ -174,7 +116,7 @@ func (d *Definitions) parseReference(s *openapi_v2.Schema, path *Path) (Schema, func (d *Definitions) parseBaseSchema(s *openapi_v2.Schema, path *Path) BaseSchema { return BaseSchema{ Description: s.GetDescription(), - Extensions: vendorExtensionToMap(s.GetVendorExtension()), + Extensions: VendorExtensionToMap(s.GetVendorExtension()), Path: *path, } } @@ -290,18 +232,21 @@ func (d *Definitions) ParseSchema(s *openapi_v2.Schema, path *Path) (Schema, err return d.parsePrimitive(s, path) } -// LookupResource is public through the interface of Resources. It -// returns a visitable schema from the given group-version-kind. -func (d *Definitions) LookupResource(gvk schema.GroupVersionKind) Schema { - modelName, found := d.resources[gvk] - if !found { - return nil - } - model, found := d.models[modelName] - if !found { - return nil +// 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) } - return model + + sort.Strings(models) + return models } type Ref struct { 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 000000000..02ab06d6d --- /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 +} diff --git a/vendor/k8s.io/kube-openapi/pkg/util/proto/openapi_suite_test.go b/vendor/k8s.io/kube-openapi/pkg/util/proto/openapi_suite_test.go new file mode 100644 index 000000000..24b5168e4 --- /dev/null +++ b/vendor/k8s.io/kube-openapi/pkg/util/proto/openapi_suite_test.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 proto_test + +import ( + . "github.com/onsi/ginkgo" + . "github.com/onsi/ginkgo/config" + . "github.com/onsi/ginkgo/types" + . "github.com/onsi/gomega" + + "fmt" + "testing" +) + +func TestOpenapi(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecsWithDefaultAndCustomReporters(t, "Openapi Suite", []Reporter{newlineReporter{}}) +} + +// Print a newline after the default newlineReporter due to issue +// https://github.com/jstemmer/go-junit-report/issues/31 +type newlineReporter struct{} + +func (newlineReporter) SpecSuiteWillBegin(config GinkgoConfigType, summary *SuiteSummary) {} + +func (newlineReporter) BeforeSuiteDidRun(setupSummary *SetupSummary) {} + +func (newlineReporter) AfterSuiteDidRun(setupSummary *SetupSummary) {} + +func (newlineReporter) SpecWillRun(specSummary *SpecSummary) {} + +func (newlineReporter) SpecDidComplete(specSummary *SpecSummary) {} + +// SpecSuiteDidEnd Prints a newline between "35 Passed | 0 Failed | 0 Pending | 0 Skipped" and "--- PASS:" +func (newlineReporter) SpecSuiteDidEnd(summary *SuiteSummary) { fmt.Printf("\n") } diff --git a/vendor/k8s.io/kube-openapi/pkg/util/proto/openapi_test.go b/vendor/k8s.io/kube-openapi/pkg/util/proto/openapi_test.go new file mode 100644 index 000000000..916abe0c0 --- /dev/null +++ b/vendor/k8s.io/kube-openapi/pkg/util/proto/openapi_test.go @@ -0,0 +1,207 @@ +/* +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_test + +import ( + "path/filepath" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + + "k8s.io/kube-openapi/pkg/util/proto" + "k8s.io/kube-openapi/pkg/util/proto/testing" +) + +var fakeSchema = testing.Fake{Path: filepath.Join("testing", "swagger.json")} + +var _ = Describe("Reading apps/v1beta1/Deployment from openAPIData", func() { + var models proto.Models + BeforeEach(func() { + s, err := fakeSchema.OpenAPISchema() + Expect(err).To(BeNil()) + models, err = proto.NewOpenAPIData(s) + Expect(err).To(BeNil()) + }) + + model := "io.k8s.api.apps.v1beta1.Deployment" + var schema proto.Schema + It("should lookup the Schema by its model name", func() { + schema = models.LookupModel(model) + Expect(schema).ToNot(BeNil()) + }) + + var deployment *proto.Kind + It("should be a Kind", func() { + deployment = schema.(*proto.Kind) + Expect(deployment).ToNot(BeNil()) + }) + + It("should have a path", func() { + Expect(deployment.GetPath().Get()).To(Equal([]string{"io.k8s.api.apps.v1beta1.Deployment"})) + }) + + It("should have a kind key of type string", func() { + Expect(deployment.Fields).To(HaveKey("kind")) + key := deployment.Fields["kind"].(*proto.Primitive) + Expect(key).ToNot(BeNil()) + Expect(key.Type).To(Equal("string")) + Expect(key.GetPath().Get()).To(Equal([]string{"io.k8s.api.apps.v1beta1.Deployment", ".kind"})) + }) + + It("should have a apiVersion key of type string", func() { + Expect(deployment.Fields).To(HaveKey("apiVersion")) + key := deployment.Fields["apiVersion"].(*proto.Primitive) + Expect(key).ToNot(BeNil()) + Expect(key.Type).To(Equal("string")) + Expect(key.GetPath().Get()).To(Equal([]string{"io.k8s.api.apps.v1beta1.Deployment", ".apiVersion"})) + }) + + It("should have a metadata key of type Reference", func() { + Expect(deployment.Fields).To(HaveKey("metadata")) + key := deployment.Fields["metadata"].(proto.Reference) + Expect(key).ToNot(BeNil()) + Expect(key.Reference()).To(Equal("io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta")) + subSchema := key.SubSchema().(*proto.Kind) + Expect(subSchema).ToNot(BeNil()) + }) + + var status *proto.Kind + It("should have a status key of type Reference", func() { + Expect(deployment.Fields).To(HaveKey("status")) + key := deployment.Fields["status"].(proto.Reference) + Expect(key).ToNot(BeNil()) + Expect(key.Reference()).To(Equal("io.k8s.api.apps.v1beta1.DeploymentStatus")) + status = key.SubSchema().(*proto.Kind) + Expect(status).ToNot(BeNil()) + }) + + It("should have a valid DeploymentStatus", func() { + By("having availableReplicas key") + Expect(status.Fields).To(HaveKey("availableReplicas")) + replicas := status.Fields["availableReplicas"].(*proto.Primitive) + Expect(replicas).ToNot(BeNil()) + Expect(replicas.Type).To(Equal("integer")) + + By("having conditions key") + Expect(status.Fields).To(HaveKey("conditions")) + conditions := status.Fields["conditions"].(*proto.Array) + Expect(conditions).ToNot(BeNil()) + Expect(conditions.GetName()).To(Equal(`Array of Reference to "io.k8s.api.apps.v1beta1.DeploymentCondition"`)) + Expect(conditions.GetExtensions()).To(Equal(map[string]interface{}{ + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + })) + condition := conditions.SubType.(proto.Reference) + Expect(condition.Reference()).To(Equal("io.k8s.api.apps.v1beta1.DeploymentCondition")) + }) + + var spec *proto.Kind + It("should have a spec key of type Reference", func() { + Expect(deployment.Fields).To(HaveKey("spec")) + key := deployment.Fields["spec"].(proto.Reference) + Expect(key).ToNot(BeNil()) + Expect(key.Reference()).To(Equal("io.k8s.api.apps.v1beta1.DeploymentSpec")) + spec = key.SubSchema().(*proto.Kind) + Expect(spec).ToNot(BeNil()) + }) + + It("should have a spec with no gvk", func() { + _, found := spec.GetExtensions()["x-kubernetes-group-version-kind"] + Expect(found).To(BeFalse()) + }) + + It("should have a spec with a PodTemplateSpec sub-field", func() { + Expect(spec.Fields).To(HaveKey("template")) + key := spec.Fields["template"].(proto.Reference) + Expect(key).ToNot(BeNil()) + Expect(key.Reference()).To(Equal("io.k8s.api.core.v1.PodTemplateSpec")) + }) +}) + +var _ = Describe("Reading authorization.k8s.io/v1/SubjectAccessReview from openAPIData", func() { + var models proto.Models + BeforeEach(func() { + s, err := fakeSchema.OpenAPISchema() + Expect(err).To(BeNil()) + models, err = proto.NewOpenAPIData(s) + Expect(err).To(BeNil()) + }) + + model := "io.k8s.api.authorization.v1.LocalSubjectAccessReview" + var schema proto.Schema + It("should lookup the Schema by its model", func() { + schema = models.LookupModel(model) + Expect(schema).ToNot(BeNil()) + }) + + var sarspec *proto.Kind + It("should be a Kind and have a spec", func() { + sar := schema.(*proto.Kind) + Expect(sar).ToNot(BeNil()) + Expect(sar.Fields).To(HaveKey("spec")) + specRef := sar.Fields["spec"].(proto.Reference) + Expect(specRef).ToNot(BeNil()) + Expect(specRef.Reference()).To(Equal("io.k8s.api.authorization.v1.SubjectAccessReviewSpec")) + sarspec = specRef.SubSchema().(*proto.Kind) + Expect(sarspec).ToNot(BeNil()) + }) + + It("should have a valid SubjectAccessReviewSpec", func() { + Expect(sarspec.Fields).To(HaveKey("extra")) + extra := sarspec.Fields["extra"].(*proto.Map) + Expect(extra).ToNot(BeNil()) + Expect(extra.GetName()).To(Equal("Map of Array of string")) + Expect(extra.GetPath().Get()).To(Equal([]string{"io.k8s.api.authorization.v1.SubjectAccessReviewSpec", ".extra"})) + array := extra.SubType.(*proto.Array) + Expect(array).ToNot(BeNil()) + Expect(array.GetName()).To(Equal("Array of string")) + Expect(array.GetPath().Get()).To(Equal([]string{"io.k8s.api.authorization.v1.SubjectAccessReviewSpec", ".extra"})) + str := array.SubType.(*proto.Primitive) + Expect(str).ToNot(BeNil()) + Expect(str.Type).To(Equal("string")) + Expect(str.GetName()).To(Equal("string")) + Expect(str.GetPath().Get()).To(Equal([]string{"io.k8s.api.authorization.v1.SubjectAccessReviewSpec", ".extra"})) + }) +}) + +var _ = Describe("Path", func() { + It("can be created by NewPath", func() { + path := proto.NewPath("key") + Expect(path.String()).To(Equal("key")) + }) + It("can create and print complex paths", func() { + key := proto.NewPath("key") + array := key.ArrayPath(12) + field := array.FieldPath("subKey") + + Expect(field.String()).To(Equal("key[12].subKey")) + }) + It("has a length", func() { + key := proto.NewPath("key") + array := key.ArrayPath(12) + field := array.FieldPath("subKey") + + Expect(field.Len()).To(Equal(3)) + }) + It("can look like an array", func() { + key := proto.NewPath("key") + array := key.ArrayPath(12) + field := array.FieldPath("subKey") + + Expect(field.Get()).To(Equal([]string{"key", "[12]", ".subKey"})) + }) +}) diff --git a/vendor/k8s.io/kube-openapi/pkg/util/proto/testing/openapi.go b/vendor/k8s.io/kube-openapi/pkg/util/proto/testing/openapi.go new file mode 100644 index 000000000..4aee2f107 --- /dev/null +++ b/vendor/k8s.io/kube-openapi/pkg/util/proto/testing/openapi.go @@ -0,0 +1,62 @@ +/* +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 testing + +import ( + "io/ioutil" + "os" + "sync" + + yaml "gopkg.in/yaml.v2" + + "github.com/googleapis/gnostic/OpenAPIv2" + "github.com/googleapis/gnostic/compiler" +) + +// Fake opens and returns a openapi swagger from a file Path. It will +// parse only once and then return the same copy everytime. +type Fake struct { + Path string + + once sync.Once + document *openapi_v2.Document + err error +} + +// OpenAPISchema returns the openapi document and a potential error. +func (f *Fake) OpenAPISchema() (*openapi_v2.Document, error) { + f.once.Do(func() { + _, err := os.Stat(f.Path) + if err != nil { + f.err = err + return + } + spec, err := ioutil.ReadFile(f.Path) + if err != nil { + f.err = err + return + } + var info yaml.MapSlice + err = yaml.Unmarshal(spec, &info) + if err != nil { + f.err = err + return + } + f.document, f.err = openapi_v2.NewDocument(info, compiler.NewContext("$root", nil)) + }) + return f.document, f.err +} diff --git a/vendor/k8s.io/kube-openapi/pkg/util/proto/testing/swagger.json b/vendor/k8s.io/kube-openapi/pkg/util/proto/testing/swagger.json new file mode 100644 index 000000000..a944bf381 --- /dev/null +++ b/vendor/k8s.io/kube-openapi/pkg/util/proto/testing/swagger.json @@ -0,0 +1,6375 @@ +{ + "swagger": "2.0", + "info": { + "title": "Kubernetes", + "version": "v1.8.0" + }, + "paths": {}, + "definitions": { + "io.k8s.api.apps.v1beta1.ControllerRevision": { + "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", + "required": [ + "revision" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "data": { + "description": "Data is the serialized representation of the state.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "revision": { + "description": "Revision indicates the revision of the state represented by Data.", + "type": "integer", + "format": "int64" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.apps.v1beta1.ControllerRevisionList": { + "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of ControllerRevisions", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ControllerRevisionList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.apps.v1beta1.Deployment": { + "description": "Deployment enables declarative updates for Pods and ReplicaSets.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Specification of the desired behavior of the Deployment.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec" + }, + "status": { + "description": "Most recently observed status of the Deployment.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "Deployment", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.apps.v1beta1.DeploymentCondition": { + "description": "DeploymentCondition describes the state of a deployment at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "lastTransitionTime": { + "description": "Last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "lastUpdateTime": { + "description": "The last time this condition was updated.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of deployment condition.", + "type": "string" + } + } + }, + "io.k8s.api.apps.v1beta1.DeploymentList": { + "description": "DeploymentList is a list of Deployments.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of Deployments.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DeploymentList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.apps.v1beta1.DeploymentRollback": { + "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", + "required": [ + "name", + "rollbackTo" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "Required: This must match the Name of a deployment.", + "type": "string" + }, + "rollbackTo": { + "description": "The config of this deployment rollback.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig" + }, + "updatedAnnotations": { + "description": "The annotations to be updated to a deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DeploymentRollback", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.apps.v1beta1.DeploymentSpec": { + "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", + "required": [ + "template" + ], + "properties": { + "minReadySeconds": { + "description": "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)", + "type": "integer", + "format": "int32" + }, + "paused": { + "description": "Indicates that the deployment is paused.", + "type": "boolean" + }, + "progressDeadlineSeconds": { + "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", + "type": "integer", + "format": "int32" + }, + "replicas": { + "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", + "type": "integer", + "format": "int32" + }, + "revisionHistoryLimit": { + "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 2.", + "type": "integer", + "format": "int32" + }, + "rollbackTo": { + "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig" + }, + "selector": { + "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "strategy": { + "description": "The deployment strategy to use to replace existing pods with new ones.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy" + }, + "template": { + "description": "Template describes the pods that will be created.", + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" + } + } + }, + "io.k8s.api.apps.v1beta1.DeploymentStatus": { + "description": "DeploymentStatus is the most recently observed status of the Deployment.", + "properties": { + "availableReplicas": { + "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", + "type": "integer", + "format": "int32" + }, + "collisionCount": { + "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", + "type": "integer", + "format": "int32" + }, + "conditions": { + "description": "Represents the latest available observations of a deployment's current state.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "observedGeneration": { + "description": "The generation observed by the deployment controller.", + "type": "integer", + "format": "int64" + }, + "readyReplicas": { + "description": "Total number of ready pods targeted by this deployment.", + "type": "integer", + "format": "int32" + }, + "replicas": { + "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", + "type": "integer", + "format": "int32" + }, + "unavailableReplicas": { + "description": "Total number of unavailable pods targeted by this deployment.", + "type": "integer", + "format": "int32" + }, + "updatedReplicas": { + "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.apps.v1beta1.DeploymentStrategy": { + "description": "DeploymentStrategy describes how to replace existing pods with new ones.", + "properties": { + "rollingUpdate": { + "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment" + }, + "type": { + "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", + "type": "string" + } + } + }, + "io.k8s.api.apps.v1beta1.RollbackConfig": { + "description": "DEPRECATED.", + "properties": { + "revision": { + "description": "The revision to rollback to. If set to 0, rollback to the last revision.", + "type": "integer", + "format": "int64" + } + } + }, + "io.k8s.api.apps.v1beta1.RollingUpdateDeployment": { + "description": "Spec to control the desired behavior of rolling update.", + "properties": { + "maxSurge": { + "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + }, + "maxUnavailable": { + "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + } + } + }, + "io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy": { + "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", + "properties": { + "partition": { + "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned.", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.apps.v1beta1.Scale": { + "description": "Scale represents a scaling request for a resource.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec" + }, + "status": { + "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "Scale", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.apps.v1beta1.ScaleSpec": { + "description": "ScaleSpec describes the attributes of a scale subresource", + "properties": { + "replicas": { + "description": "desired number of instances for the scaled object.", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.apps.v1beta1.ScaleStatus": { + "description": "ScaleStatus represents the current status of a scale subresource.", + "required": [ + "replicas" + ], + "properties": { + "replicas": { + "description": "actual number of observed instances of the scaled object.", + "type": "integer", + "format": "int32" + }, + "selector": { + "description": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "targetSelector": { + "description": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "type": "string" + } + } + }, + "io.k8s.api.apps.v1beta1.StatefulSet": { + "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines the desired identities of pods in this set.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec" + }, + "status": { + "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.apps.v1beta1.StatefulSetList": { + "description": "StatefulSetList is a collection of StatefulSets.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "StatefulSetList", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.apps.v1beta1.StatefulSetSpec": { + "description": "A StatefulSetSpec is the specification of a StatefulSet.", + "required": [ + "template", + "serviceName" + ], + "properties": { + "podManagementPolicy": { + "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", + "type": "string" + }, + "replicas": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "revisionHistoryLimit": { + "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", + "type": "integer", + "format": "int32" + }, + "selector": { + "description": "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", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "serviceName": { + "description": "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.", + "type": "string" + }, + "template": { + "description": "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.", + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" + }, + "updateStrategy": { + "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy" + }, + "volumeClaimTemplates": { + "description": "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.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + } + } + }, + "io.k8s.api.apps.v1beta1.StatefulSetStatus": { + "description": "StatefulSetStatus represents the current state of a StatefulSet.", + "required": [ + "replicas" + ], + "properties": { + "collisionCount": { + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "type": "integer", + "format": "int32" + }, + "currentReplicas": { + "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", + "type": "integer", + "format": "int32" + }, + "currentRevision": { + "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", + "type": "integer", + "format": "int64" + }, + "readyReplicas": { + "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", + "type": "integer", + "format": "int32" + }, + "replicas": { + "description": "replicas is the number of Pods created by the StatefulSet controller.", + "type": "integer", + "format": "int32" + }, + "updateRevision": { + "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", + "type": "string" + }, + "updatedReplicas": { + "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy": { + "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", + "properties": { + "rollingUpdate": { + "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy" + }, + "type": { + "description": "Type indicates the type of the StatefulSetUpdateStrategy.", + "type": "string" + } + } + }, + "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { + "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", + "required": [ + "spec" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted.", + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec" + }, + "status": { + "description": "Status is filled in by the server and indicates whether the request is allowed or not", + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.NonResourceAttributes": { + "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", + "properties": { + "path": { + "description": "Path is the URL path of the request", + "type": "string" + }, + "verb": { + "description": "Verb is the standard HTTP verb", + "type": "string" + } + } + }, + "io.k8s.api.authorization.v1.ResourceAttributes": { + "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", + "type": "string" + }, + "resource": { + "description": "Resource is one of the existing resource types. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is one of the existing resource types. \"\" means none.", + "type": "string" + }, + "verb": { + "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", + "type": "string" + } + } + }, + "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { + "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", + "required": [ + "spec" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec holds information about the request being evaluated. user and groups must be empty", + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec" + }, + "status": { + "description": "Status is filled in by the server and indicates whether the request is allowed or not", + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { + "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "nonResourceAttributes": { + "description": "NonResourceAttributes describes information for a non-resource access request", + "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes" + }, + "resourceAttributes": { + "description": "ResourceAuthorizationAttributes describes information for a resource access request", + "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes" + } + } + }, + "io.k8s.api.authorization.v1.SubjectAccessReview": { + "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", + "required": [ + "spec" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec holds information about the request being evaluated", + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec" + }, + "status": { + "description": "Status is filled in by the server and indicates whether the request is allowed or not", + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1" + } + ] + }, + "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { + "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "extra": { + "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "groups": { + "description": "Groups is the groups you're testing for.", + "type": "array", + "items": { + "type": "string" + } + }, + "nonResourceAttributes": { + "description": "NonResourceAttributes describes information for a non-resource access request", + "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes" + }, + "resourceAttributes": { + "description": "ResourceAuthorizationAttributes describes information for a resource access request", + "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes" + }, + "uid": { + "description": "UID information about the requesting user.", + "type": "string" + }, + "user": { + "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", + "type": "string" + } + } + }, + "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { + "description": "SubjectAccessReviewStatus", + "required": [ + "allowed" + ], + "properties": { + "allowed": { + "description": "Allowed is required. True if the action would be allowed, false otherwise.", + "type": "boolean" + }, + "evaluationError": { + "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", + "type": "string" + }, + "reason": { + "description": "Reason is optional. It indicates why a request was allowed or denied.", + "type": "string" + } + } + }, + "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview": { + "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", + "required": [ + "spec" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted.", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec" + }, + "status": { + "description": "Status is filled in by the server and indicates whether the request is allowed or not", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.authorization.v1beta1.NonResourceAttributes": { + "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", + "properties": { + "path": { + "description": "Path is the URL path of the request", + "type": "string" + }, + "verb": { + "description": "Verb is the standard HTTP verb", + "type": "string" + } + } + }, + "io.k8s.api.authorization.v1beta1.ResourceAttributes": { + "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", + "type": "string" + }, + "namespace": { + "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", + "type": "string" + }, + "resource": { + "description": "Resource is one of the existing resource types. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is one of the existing resource types. \"\" means none.", + "type": "string" + }, + "verb": { + "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", + "type": "string" + } + } + }, + "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview": { + "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", + "required": [ + "spec" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec holds information about the request being evaluated. user and groups must be empty", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec" + }, + "status": { + "description": "Status is filled in by the server and indicates whether the request is allowed or not", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec": { + "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "nonResourceAttributes": { + "description": "NonResourceAttributes describes information for a non-resource access request", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes" + }, + "resourceAttributes": { + "description": "ResourceAuthorizationAttributes describes information for a resource access request", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes" + } + } + }, + "io.k8s.api.authorization.v1beta1.SubjectAccessReview": { + "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", + "required": [ + "spec" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec holds information about the request being evaluated", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec" + }, + "status": { + "description": "Status is filled in by the server and indicates whether the request is allowed or not", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1beta1" + } + ] + }, + "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec": { + "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", + "properties": { + "extra": { + "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "group": { + "description": "Groups is the groups you're testing for.", + "type": "array", + "items": { + "type": "string" + } + }, + "nonResourceAttributes": { + "description": "NonResourceAttributes describes information for a non-resource access request", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes" + }, + "resourceAttributes": { + "description": "ResourceAuthorizationAttributes describes information for a resource access request", + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes" + }, + "uid": { + "description": "UID information about the requesting user.", + "type": "string" + }, + "user": { + "description": "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups", + "type": "string" + } + } + }, + "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus": { + "description": "SubjectAccessReviewStatus", + "required": [ + "allowed" + ], + "properties": { + "allowed": { + "description": "Allowed is required. True if the action would be allowed, false otherwise.", + "type": "boolean" + }, + "evaluationError": { + "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", + "type": "string" + }, + "reason": { + "description": "Reason is optional. It indicates why a request was allowed or denied.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": { + "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", + "required": [ + "volumeID" + ], + "properties": { + "fsType": { + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "string" + }, + "partition": { + "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).", + "type": "integer", + "format": "int32" + }, + "readOnly": { + "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "boolean" + }, + "volumeID": { + "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Affinity": { + "description": "Affinity is a group of affinity scheduling rules.", + "properties": { + "nodeAffinity": { + "description": "Describes node affinity scheduling rules for the pod.", + "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity" + }, + "podAffinity": { + "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity" + }, + "podAntiAffinity": { + "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", + "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity" + } + } + }, + "io.k8s.api.core.v1.AttachedVolume": { + "description": "AttachedVolume describes a volume attached to a node", + "required": [ + "name", + "devicePath" + ], + "properties": { + "devicePath": { + "description": "DevicePath represents the device path where the volume should be available", + "type": "string" + }, + "name": { + "description": "Name of the attached volume", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.AzureDiskVolumeSource": { + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "required": [ + "diskName", + "diskURI" + ], + "properties": { + "cachingMode": { + "description": "Host Caching mode: None, Read Only, Read Write.", + "type": "string" + }, + "diskName": { + "description": "The Name of the data disk in the blob storage", + "type": "string" + }, + "diskURI": { + "description": "The URI the data disk in the blob storage", + "type": "string" + }, + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "kind": { + "description": "Expected values Shared: mulitple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", + "type": "string" + }, + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "required": [ + "secretName", + "shareName" + ], + "properties": { + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretName": { + "description": "the name of secret that contains Azure Storage Account Name and Key", + "type": "string" + }, + "secretNamespace": { + "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", + "type": "string" + }, + "shareName": { + "description": "Share Name", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.AzureFileVolumeSource": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "required": [ + "secretName", + "shareName" + ], + "properties": { + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretName": { + "description": "the name of secret that contains Azure Storage Account Name and Key", + "type": "string" + }, + "shareName": { + "description": "Share Name", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Binding": { + "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", + "required": [ + "target" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "target": { + "description": "The target object that you want to bind to the standard object.", + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Binding", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.Capabilities": { + "description": "Adds and removes POSIX capabilities from running containers.", + "properties": { + "add": { + "description": "Added capabilities", + "type": "array", + "items": { + "type": "string" + } + }, + "drop": { + "description": "Removed capabilities", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.core.v1.CephFSPersistentVolumeSource": { + "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", + "required": [ + "monitors" + ], + "properties": { + "monitors": { + "description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "type": "array", + "items": { + "type": "string" + } + }, + "path": { + "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", + "type": "string" + }, + "readOnly": { + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "type": "boolean" + }, + "secretFile": { + "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + }, + "secretRef": { + "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" + }, + "user": { + "description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.CephFSVolumeSource": { + "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", + "required": [ + "monitors" + ], + "properties": { + "monitors": { + "description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "type": "array", + "items": { + "type": "string" + } + }, + "path": { + "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", + "type": "string" + }, + "readOnly": { + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "type": "boolean" + }, + "secretFile": { + "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + }, + "secretRef": { + "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "user": { + "description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.CinderVolumeSource": { + "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", + "required": [ + "volumeID" + ], + "properties": { + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "type": "string" + }, + "readOnly": { + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "type": "boolean" + }, + "volumeID": { + "description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ClientIPConfig": { + "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", + "properties": { + "timeoutSeconds": { + "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.core.v1.ComponentCondition": { + "description": "Information about the condition of a component.", + "required": [ + "type", + "status" + ], + "properties": { + "error": { + "description": "Condition error code for a component. For example, a health check error code.", + "type": "string" + }, + "message": { + "description": "Message about the condition for a component. For example, information about a health check.", + "type": "string" + }, + "status": { + "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", + "type": "string" + }, + "type": { + "description": "Type of condition for a component. Valid value: \"Healthy\"", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ComponentStatus": { + "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "conditions": { + "description": "List of component conditions observed", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ComponentStatus", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ComponentStatusList": { + "description": "Status of all the conditions for the component as a list of ComponentStatus objects.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of ComponentStatus objects.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ComponentStatusList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ConfigMap": { + "description": "ConfigMap holds configuration data for pods to consume.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "data": { + "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ConfigMap", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ConfigMapEnvSource": { + "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", + "properties": { + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the ConfigMap must be defined", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.ConfigMapKeySelector": { + "description": "Selects a key from a ConfigMap.", + "required": [ + "key" + ], + "properties": { + "key": { + "description": "The key to select.", + "type": "string" + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the ConfigMap or it's key must be defined", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.ConfigMapList": { + "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of ConfigMaps.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ConfigMapList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ConfigMapProjection": { + "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", + "properties": { + "items": { + "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + } + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the ConfigMap or it's keys must be defined", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.ConfigMapVolumeSource": { + "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", + "properties": { + "defaultMode": { + "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "items": { + "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + } + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the ConfigMap or it's keys must be defined", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.Container": { + "description": "A single application container that you want to run within a pod.", + "required": [ + "name", + "image" + ], + "properties": { + "args": { + "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "type": "array", + "items": { + "type": "string" + } + }, + "command": { + "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", + "type": "array", + "items": { + "type": "string" + } + }, + "env": { + "description": "List of environment variables to set in the container. Cannot be updated.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "envFrom": { + "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" + } + }, + "image": { + "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images", + "type": "string" + }, + "imagePullPolicy": { + "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", + "type": "string" + }, + "lifecycle": { + "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated.", + "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle" + }, + "livenessProbe": { + "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "$ref": "#/definitions/io.k8s.api.core.v1.Probe" + }, + "name": { + "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", + "type": "string" + }, + "ports": { + "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" + }, + "x-kubernetes-patch-merge-key": "containerPort", + "x-kubernetes-patch-strategy": "merge" + }, + "readinessProbe": { + "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "$ref": "#/definitions/io.k8s.api.core.v1.Probe" + }, + "resources": { + "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements" + }, + "securityContext": { + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md", + "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext" + }, + "stdin": { + "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", + "type": "boolean" + }, + "stdinOnce": { + "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", + "type": "boolean" + }, + "terminationMessagePath": { + "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", + "type": "string" + }, + "terminationMessagePolicy": { + "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", + "type": "string" + }, + "tty": { + "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", + "type": "boolean" + }, + "volumeMounts": { + "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" + }, + "x-kubernetes-patch-merge-key": "mountPath", + "x-kubernetes-patch-strategy": "merge" + }, + "workingDir": { + "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ContainerImage": { + "description": "Describe a container image", + "required": [ + "names" + ], + "properties": { + "names": { + "description": "Names by which this image is known. e.g. [\"gcr.io/google_containers/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]", + "type": "array", + "items": { + "type": "string" + } + }, + "sizeBytes": { + "description": "The size of the image in bytes.", + "type": "integer", + "format": "int64" + } + } + }, + "io.k8s.api.core.v1.ContainerPort": { + "description": "ContainerPort represents a network port in a single container.", + "required": [ + "containerPort" + ], + "properties": { + "containerPort": { + "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536.", + "type": "integer", + "format": "int32" + }, + "hostIP": { + "description": "What host IP to bind the external port to.", + "type": "string" + }, + "hostPort": { + "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", + "type": "integer", + "format": "int32" + }, + "name": { + "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", + "type": "string" + }, + "protocol": { + "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\".", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ContainerState": { + "description": "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.", + "properties": { + "running": { + "description": "Details about a running container", + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning" + }, + "terminated": { + "description": "Details about a terminated container", + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated" + }, + "waiting": { + "description": "Details about a waiting container", + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting" + } + } + }, + "io.k8s.api.core.v1.ContainerStateRunning": { + "description": "ContainerStateRunning is a running state of a container.", + "properties": { + "startedAt": { + "description": "Time at which the container was last (re-)started", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + } + }, + "io.k8s.api.core.v1.ContainerStateTerminated": { + "description": "ContainerStateTerminated is a terminated state of a container.", + "required": [ + "exitCode" + ], + "properties": { + "containerID": { + "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'", + "type": "string" + }, + "exitCode": { + "description": "Exit status from the last termination of the container", + "type": "integer", + "format": "int32" + }, + "finishedAt": { + "description": "Time at which the container last terminated", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "Message regarding the last termination of the container", + "type": "string" + }, + "reason": { + "description": "(brief) reason from the last termination of the container", + "type": "string" + }, + "signal": { + "description": "Signal from the last termination of the container", + "type": "integer", + "format": "int32" + }, + "startedAt": { + "description": "Time at which previous execution of the container started", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + } + }, + "io.k8s.api.core.v1.ContainerStateWaiting": { + "description": "ContainerStateWaiting is a waiting state of a container.", + "properties": { + "message": { + "description": "Message regarding why the container is not yet running.", + "type": "string" + }, + "reason": { + "description": "(brief) reason the container is not yet running.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ContainerStatus": { + "description": "ContainerStatus contains details for the current status of this container.", + "required": [ + "name", + "ready", + "restartCount", + "image", + "imageID" + ], + "properties": { + "containerID": { + "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'.", + "type": "string" + }, + "image": { + "description": "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images", + "type": "string" + }, + "imageID": { + "description": "ImageID of the container's image.", + "type": "string" + }, + "lastState": { + "description": "Details about the container's last termination condition.", + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState" + }, + "name": { + "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.", + "type": "string" + }, + "ready": { + "description": "Specifies whether the container has passed its readiness probe.", + "type": "boolean" + }, + "restartCount": { + "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.", + "type": "integer", + "format": "int32" + }, + "state": { + "description": "Details about the container's current condition.", + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState" + } + } + }, + "io.k8s.api.core.v1.DaemonEndpoint": { + "description": "DaemonEndpoint contains information about a single Daemon endpoint.", + "required": [ + "Port" + ], + "properties": { + "Port": { + "description": "Port number of the given endpoint.", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.core.v1.DownwardAPIProjection": { + "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", + "properties": { + "items": { + "description": "Items is a list of DownwardAPIVolume file", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" + } + } + } + }, + "io.k8s.api.core.v1.DownwardAPIVolumeFile": { + "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", + "required": [ + "path" + ], + "properties": { + "fieldRef": { + "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.", + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector" + }, + "mode": { + "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "path": { + "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", + "type": "string" + }, + "resourceFieldRef": { + "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector" + } + } + }, + "io.k8s.api.core.v1.DownwardAPIVolumeSource": { + "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", + "properties": { + "defaultMode": { + "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "items": { + "description": "Items is a list of downward API volume file", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" + } + } + } + }, + "io.k8s.api.core.v1.EmptyDirVolumeSource": { + "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + "properties": { + "medium": { + "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + "type": "string" + }, + "sizeLimit": { + "description": "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + } + }, + "io.k8s.api.core.v1.EndpointAddress": { + "description": "EndpointAddress is a tuple that describes single IP address.", + "required": [ + "ip" + ], + "properties": { + "hostname": { + "description": "The Hostname of this endpoint", + "type": "string" + }, + "ip": { + "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.", + "type": "string" + }, + "nodeName": { + "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", + "type": "string" + }, + "targetRef": { + "description": "Reference to object providing the endpoint.", + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + } + } + }, + "io.k8s.api.core.v1.EndpointPort": { + "description": "EndpointPort is a tuple that describes a single port.", + "required": [ + "port" + ], + "properties": { + "name": { + "description": "The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined.", + "type": "string" + }, + "port": { + "description": "The port number of the endpoint.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "The IP protocol for this port. Must be UDP or TCP. Default is TCP.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.EndpointSubset": { + "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", + "properties": { + "addresses": { + "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" + } + }, + "notReadyAddresses": { + "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" + } + }, + "ports": { + "description": "Port numbers available on the related IP addresses.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" + } + } + } + }, + "io.k8s.api.core.v1.Endpoints": { + "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", + "required": [ + "subsets" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "subsets": { + "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" + } + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Endpoints", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EndpointsList": { + "description": "EndpointsList is a list of endpoints.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of endpoints.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "EndpointsList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EnvFromSource": { + "description": "EnvFromSource represents the source of a set of ConfigMaps", + "properties": { + "configMapRef": { + "description": "The ConfigMap to select from", + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource" + }, + "prefix": { + "description": "An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", + "type": "string" + }, + "secretRef": { + "description": "The Secret to select from", + "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource" + } + } + }, + "io.k8s.api.core.v1.EnvVar": { + "description": "EnvVar represents an environment variable present in a Container.", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "Name of the environment variable. Must be a C_IDENTIFIER.", + "type": "string" + }, + "value": { + "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", + "type": "string" + }, + "valueFrom": { + "description": "Source for the environment variable's value. Cannot be used if value is not empty.", + "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource" + } + } + }, + "io.k8s.api.core.v1.EnvVarSource": { + "description": "EnvVarSource represents a source for the value of an EnvVar.", + "properties": { + "configMapKeyRef": { + "description": "Selects a key of a ConfigMap.", + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector" + }, + "fieldRef": { + "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.", + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector" + }, + "resourceFieldRef": { + "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector" + }, + "secretKeyRef": { + "description": "Selects a key of a secret in the pod's namespace", + "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector" + } + } + }, + "io.k8s.api.core.v1.Event": { + "description": "Event is a report of an event somewhere in the cluster.", + "required": [ + "metadata", + "involvedObject" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "count": { + "description": "The number of times this event has occurred.", + "type": "integer", + "format": "int32" + }, + "firstTimestamp": { + "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "involvedObject": { + "description": "The object that this event is about.", + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "lastTimestamp": { + "description": "The time at which the most recent occurrence of this event was recorded.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human-readable description of the status of this operation.", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "reason": { + "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", + "type": "string" + }, + "source": { + "description": "The component reporting this event. Should be a short machine understandable string.", + "$ref": "#/definitions/io.k8s.api.core.v1.EventSource" + }, + "type": { + "description": "Type of this event (Normal, Warning), new types could be added in the future", + "type": "string" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Event", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EventList": { + "description": "EventList is a list of events.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of events", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Event" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "EventList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.EventSource": { + "description": "EventSource contains information for an event.", + "properties": { + "component": { + "description": "Component from which the event is generated.", + "type": "string" + }, + "host": { + "description": "Node name on which the event is generated.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ExecAction": { + "description": "ExecAction describes a \"run in container\" action.", + "properties": { + "command": { + "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.core.v1.FCVolumeSource": { + "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", + "properties": { + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "lun": { + "description": "Optional: FC target lun number", + "type": "integer", + "format": "int32" + }, + "readOnly": { + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "targetWWNs": { + "description": "Optional: FC target worldwide names (WWNs)", + "type": "array", + "items": { + "type": "string" + } + }, + "wwids": { + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.core.v1.FlexVolumeSource": { + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", + "required": [ + "driver" + ], + "properties": { + "driver": { + "description": "Driver is the name of the driver to use for this volume.", + "type": "string" + }, + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", + "type": "string" + }, + "options": { + "description": "Optional: Extra command options if any.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "readOnly": { + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + } + } + }, + "io.k8s.api.core.v1.FlockerVolumeSource": { + "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", + "properties": { + "datasetName": { + "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", + "type": "string" + }, + "datasetUUID": { + "description": "UUID of the dataset. This is unique identifier of a Flocker dataset", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": { + "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", + "required": [ + "pdName" + ], + "properties": { + "fsType": { + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "string" + }, + "partition": { + "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "integer", + "format": "int32" + }, + "pdName": { + "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.GitRepoVolumeSource": { + "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", + "required": [ + "repository" + ], + "properties": { + "directory": { + "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", + "type": "string" + }, + "repository": { + "description": "Repository URL", + "type": "string" + }, + "revision": { + "description": "Commit hash for the specified revision.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.GlusterfsVolumeSource": { + "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", + "required": [ + "endpoints", + "path" + ], + "properties": { + "endpoints": { + "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "path": { + "description": "Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.HTTPGetAction": { + "description": "HTTPGetAction describes an action based on HTTP Get requests.", + "required": [ + "port" + ], + "properties": { + "host": { + "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", + "type": "string" + }, + "httpHeaders": { + "description": "Custom headers to set in the request. HTTP allows repeated headers.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" + } + }, + "path": { + "description": "Path to access on the HTTP server.", + "type": "string" + }, + "port": { + "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + }, + "scheme": { + "description": "Scheme to use for connecting to the host. Defaults to HTTP.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.HTTPHeader": { + "description": "HTTPHeader describes a custom header to be used in HTTP probes", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "description": "The header field name", + "type": "string" + }, + "value": { + "description": "The header field value", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Handler": { + "description": "Handler defines a specific action that should be taken", + "properties": { + "exec": { + "description": "One and only one of the following should be specified. Exec specifies the action to take.", + "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction" + }, + "httpGet": { + "description": "HTTPGet specifies the http request to perform.", + "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction" + }, + "tcpSocket": { + "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported", + "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction" + } + } + }, + "io.k8s.api.core.v1.HostAlias": { + "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", + "properties": { + "hostnames": { + "description": "Hostnames for the above IP address.", + "type": "array", + "items": { + "type": "string" + } + }, + "ip": { + "description": "IP address of the host file entry.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.HostPathVolumeSource": { + "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", + "required": [ + "path" + ], + "properties": { + "path": { + "description": "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "type": "string" + }, + "type": { + "description": "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ISCSIVolumeSource": { + "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "properties": { + "chapAuthDiscovery": { + "description": "whether support iSCSI Discovery CHAP authentication", + "type": "boolean" + }, + "chapAuthSession": { + "description": "whether support iSCSI Session CHAP authentication", + "type": "boolean" + }, + "fsType": { + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", + "type": "string" + }, + "initiatorName": { + "description": "Custom iSCSI initiator name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection.", + "type": "string" + }, + "iqn": { + "description": "Target iSCSI Qualified Name.", + "type": "string" + }, + "iscsiInterface": { + "description": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.", + "type": "string" + }, + "lun": { + "description": "iSCSI target lun number.", + "type": "integer", + "format": "int32" + }, + "portals": { + "description": "iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "type": "array", + "items": { + "type": "string" + } + }, + "readOnly": { + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", + "type": "boolean" + }, + "secretRef": { + "description": "CHAP secret for iSCSI target and initiator authentication", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "targetPortal": { + "description": "iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.KeyToPath": { + "description": "Maps a string key to a path within a volume.", + "required": [ + "key", + "path" + ], + "properties": { + "key": { + "description": "The key to project.", + "type": "string" + }, + "mode": { + "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "path": { + "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Lifecycle": { + "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", + "properties": { + "postStart": { + "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks", + "$ref": "#/definitions/io.k8s.api.core.v1.Handler" + }, + "preStop": { + "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks", + "$ref": "#/definitions/io.k8s.api.core.v1.Handler" + } + } + }, + "io.k8s.api.core.v1.LimitRange": { + "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "LimitRange", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.LimitRangeItem": { + "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", + "properties": { + "default": { + "description": "Default resource requirement limit value by resource name if resource limit is omitted.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "defaultRequest": { + "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "max": { + "description": "Max usage constraints on this kind by resource name.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "maxLimitRequestRatio": { + "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "min": { + "description": "Min usage constraints on this kind by resource name.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "type": { + "description": "Type of resource that this limit applies to.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.LimitRangeList": { + "description": "LimitRangeList is a list of LimitRange items.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of LimitRange objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "LimitRangeList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.LimitRangeSpec": { + "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", + "required": [ + "limits" + ], + "properties": { + "limits": { + "description": "Limits is the list of LimitRangeItem objects that are enforced.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" + } + } + } + }, + "io.k8s.api.core.v1.LoadBalancerIngress": { + "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", + "properties": { + "hostname": { + "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", + "type": "string" + }, + "ip": { + "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.LoadBalancerStatus": { + "description": "LoadBalancerStatus represents the status of a load-balancer.", + "properties": { + "ingress": { + "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" + } + } + } + }, + "io.k8s.api.core.v1.LocalObjectReference": { + "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", + "properties": { + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.LocalVolumeSource": { + "description": "Local represents directly-attached storage with node affinity", + "required": [ + "path" + ], + "properties": { + "path": { + "description": "The full path to the volume on the node For alpha, this path must be a directory Once block as a source is supported, then this path can point to a block device", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.NFSVolumeSource": { + "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + "required": [ + "server", + "path" + ], + "properties": { + "path": { + "description": "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "type": "boolean" + }, + "server": { + "description": "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Namespace": { + "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec" + }, + "status": { + "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Namespace", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NamespaceList": { + "description": "NamespaceList is a list of Namespaces.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "NamespaceList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NamespaceSpec": { + "description": "NamespaceSpec describes the attributes on a Namespace.", + "properties": { + "finalizers": { + "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.core.v1.NamespaceStatus": { + "description": "NamespaceStatus is information about the current status of a Namespace.", + "properties": { + "phase": { + "description": "Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Node": { + "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec" + }, + "status": { + "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Node", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NodeAddress": { + "description": "NodeAddress contains information for the node's address.", + "required": [ + "type", + "address" + ], + "properties": { + "address": { + "description": "The node address.", + "type": "string" + }, + "type": { + "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.NodeAffinity": { + "description": "Node affinity is a group of node affinity scheduling rules.", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" + } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector" + } + } + }, + "io.k8s.api.core.v1.NodeCondition": { + "description": "NodeCondition contains condition information for a node.", + "required": [ + "type", + "status" + ], + "properties": { + "lastHeartbeatTime": { + "description": "Last time we got an update on a given condition.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "lastTransitionTime": { + "description": "Last time the condition transit from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "Human readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "(brief) reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of node condition.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.NodeConfigSource": { + "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "configMapRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "NodeConfigSource", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NodeDaemonEndpoints": { + "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", + "properties": { + "kubeletEndpoint": { + "description": "Endpoint on which Kubelet is listening.", + "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint" + } + } + }, + "io.k8s.api.core.v1.NodeList": { + "description": "NodeList is the whole list of all Nodes which have been registered with master.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of nodes", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Node" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "NodeList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.NodeSelector": { + "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", + "required": [ + "nodeSelectorTerms" + ], + "properties": { + "nodeSelectorTerms": { + "description": "Required. A list of node selector terms. The terms are ORed.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" + } + } + } + }, + "io.k8s.api.core.v1.NodeSelectorRequirement": { + "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "required": [ + "key", + "operator" + ], + "properties": { + "key": { + "description": "The label key that the selector applies to.", + "type": "string" + }, + "operator": { + "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", + "type": "string" + }, + "values": { + "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.core.v1.NodeSelectorTerm": { + "description": "A null or empty node selector term matches no objects.", + "required": [ + "matchExpressions" + ], + "properties": { + "matchExpressions": { + "description": "Required. A list of node selector requirements. The requirements are ANDed.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" + } + } + } + }, + "io.k8s.api.core.v1.NodeSpec": { + "description": "NodeSpec describes the attributes that a node is created with.", + "properties": { + "configSource": { + "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field", + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource" + }, + "externalID": { + "description": "External ID of the node assigned by some machine database (e.g. a cloud provider). Deprecated.", + "type": "string" + }, + "podCIDR": { + "description": "PodCIDR represents the pod IP range assigned to the node.", + "type": "string" + }, + "providerID": { + "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e", + "type": "string" + }, + "taints": { + "description": "If specified, the node's taints.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Taint" + } + }, + "unschedulable": { + "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.NodeStatus": { + "description": "NodeStatus is information about the current status of a node.", + "properties": { + "addresses": { + "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "allocatable": { + "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "capacity": { + "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "conditions": { + "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "daemonEndpoints": { + "description": "Endpoints of daemons running on the Node.", + "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints" + }, + "images": { + "description": "List of container images on this node", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" + } + }, + "nodeInfo": { + "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info", + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo" + }, + "phase": { + "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", + "type": "string" + }, + "volumesAttached": { + "description": "List of volumes that are attached to the node.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" + } + }, + "volumesInUse": { + "description": "List of attachable volumes in use (mounted) by the node.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.core.v1.NodeSystemInfo": { + "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", + "required": [ + "machineID", + "systemUUID", + "bootID", + "kernelVersion", + "osImage", + "containerRuntimeVersion", + "kubeletVersion", + "kubeProxyVersion", + "operatingSystem", + "architecture" + ], + "properties": { + "architecture": { + "description": "The Architecture reported by the node", + "type": "string" + }, + "bootID": { + "description": "Boot ID reported by the node.", + "type": "string" + }, + "containerRuntimeVersion": { + "description": "ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).", + "type": "string" + }, + "kernelVersion": { + "description": "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).", + "type": "string" + }, + "kubeProxyVersion": { + "description": "KubeProxy Version reported by the node.", + "type": "string" + }, + "kubeletVersion": { + "description": "Kubelet Version reported by the node.", + "type": "string" + }, + "machineID": { + "description": "MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html", + "type": "string" + }, + "operatingSystem": { + "description": "The Operating System reported by the node", + "type": "string" + }, + "osImage": { + "description": "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).", + "type": "string" + }, + "systemUUID": { + "description": "SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ObjectFieldSelector": { + "description": "ObjectFieldSelector selects an APIVersioned field of an object.", + "required": [ + "fieldPath" + ], + "properties": { + "apiVersion": { + "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".", + "type": "string" + }, + "fieldPath": { + "description": "Path of the field to select in the specified API version.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ObjectReference": { + "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", + "properties": { + "apiVersion": { + "description": "API version of the referent.", + "type": "string" + }, + "fieldPath": { + "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", + "type": "string" + }, + "kind": { + "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", + "type": "string" + }, + "resourceVersion": { + "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", + "type": "string" + }, + "uid": { + "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.PersistentVolume": { + "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes", + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec" + }, + "status": { + "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes", + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolume", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeClaim": { + "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec" + }, + "status": { + "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeClaim", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeClaimList": { + "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeClaimList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeClaimSpec": { + "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes", + "properties": { + "accessModes": { + "description": "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "description": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements" + }, + "selector": { + "description": "A label query over volumes to consider for binding.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "storageClassName": { + "description": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", + "type": "string" + }, + "volumeName": { + "description": "VolumeName is the binding reference to the PersistentVolume backing this claim.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { + "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", + "properties": { + "accessModes": { + "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", + "type": "array", + "items": { + "type": "string" + } + }, + "capacity": { + "description": "Represents the actual resources of the underlying volume.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "phase": { + "description": "Phase represents the current phase of PersistentVolumeClaim.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": { + "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", + "required": [ + "claimName" + ], + "properties": { + "claimName": { + "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "type": "string" + }, + "readOnly": { + "description": "Will force the ReadOnly setting in VolumeMounts. Default false.", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.PersistentVolumeList": { + "description": "PersistentVolumeList is a list of PersistentVolume items.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PersistentVolumeList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PersistentVolumeSpec": { + "description": "PersistentVolumeSpec is the specification of a persistent volume.", + "properties": { + "accessModes": { + "description": "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", + "type": "array", + "items": { + "type": "string" + } + }, + "awsElasticBlockStore": { + "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" + }, + "azureDisk": { + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource" + }, + "azureFile": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource" + }, + "capacity": { + "description": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "cephfs": { + "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource" + }, + "cinder": { + "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource" + }, + "claimRef": { + "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding", + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "fc": { + "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", + "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource" + }, + "flexVolume": { + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", + "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource" + }, + "flocker": { + "description": "Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running", + "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource" + }, + "gcePersistentDisk": { + "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" + }, + "glusterfs": { + "description": "Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md", + "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource" + }, + "hostPath": { + "description": "HostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource" + }, + "iscsi": { + "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.", + "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource" + }, + "local": { + "description": "Local represents directly-attached storage with node affinity", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource" + }, + "mountOptions": { + "description": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", + "type": "array", + "items": { + "type": "string" + } + }, + "nfs": { + "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource" + }, + "persistentVolumeReclaimPolicy": { + "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default) and Recycle. Recycling must be supported by the volume plugin underlying this persistent volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", + "type": "string" + }, + "photonPersistentDisk": { + "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", + "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" + }, + "portworxVolume": { + "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource" + }, + "quobyte": { + "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource" + }, + "rbd": { + "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", + "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource" + }, + "scaleIO": { + "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", + "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource" + }, + "storageClassName": { + "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", + "type": "string" + }, + "storageos": { + "description": "StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md", + "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource" + }, + "vsphereVolume": { + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" + } + } + }, + "io.k8s.api.core.v1.PersistentVolumeStatus": { + "description": "PersistentVolumeStatus is the current status of a persistent volume.", + "properties": { + "message": { + "description": "A human-readable message indicating details about why the volume is in this state.", + "type": "string" + }, + "phase": { + "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", + "type": "string" + }, + "reason": { + "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { + "description": "Represents a Photon Controller persistent disk resource.", + "required": [ + "pdID" + ], + "properties": { + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "pdID": { + "description": "ID that identifies Photon Controller persistent disk", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Pod": { + "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec" + }, + "status": { + "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Pod", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodAffinity": { + "description": "Pod affinity is a group of inter pod affinity scheduling rules.", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" + } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" + } + } + } + }, + "io.k8s.api.core.v1.PodAffinityTerm": { + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", + "properties": { + "labelSelector": { + "description": "A label query over a set of resources, in this case pods.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "namespaces": { + "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", + "type": "array", + "items": { + "type": "string" + } + }, + "topologyKey": { + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.PodAntiAffinity": { + "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" + } + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" + } + } + } + }, + "io.k8s.api.core.v1.PodCondition": { + "description": "PodCondition contains details for the current condition of this pod.", + "required": [ + "type", + "status" + ], + "properties": { + "lastProbeTime": { + "description": "Last time we probed the condition.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "lastTransitionTime": { + "description": "Last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "Human-readable message indicating details about last transition.", + "type": "string" + }, + "reason": { + "description": "Unique, one-word, CamelCase reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "type": "string" + }, + "type": { + "description": "Type is the type of the condition. Currently only Ready. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.PodList": { + "description": "PodList is a list of Pods.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of pods. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Pod" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PodList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodSecurityContext": { + "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", + "properties": { + "fsGroup": { + "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", + "type": "integer", + "format": "int64" + }, + "runAsNonRoot": { + "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "type": "boolean" + }, + "runAsUser": { + "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", + "type": "integer", + "format": "int64" + }, + "seLinuxOptions": { + "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", + "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" + }, + "supplementalGroups": { + "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "io.k8s.api.core.v1.PodSpec": { + "description": "PodSpec is a description of a pod.", + "required": [ + "containers" + ], + "properties": { + "activeDeadlineSeconds": { + "description": "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.", + "type": "integer", + "format": "int64" + }, + "affinity": { + "description": "If specified, the pod's scheduling constraints", + "$ref": "#/definitions/io.k8s.api.core.v1.Affinity" + }, + "automountServiceAccountToken": { + "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", + "type": "boolean" + }, + "containers": { + "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Container" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "dnsPolicy": { + "description": "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'.", + "type": "string" + }, + "hostAliases": { + "description": "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.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" + }, + "x-kubernetes-patch-merge-key": "ip", + "x-kubernetes-patch-strategy": "merge" + }, + "hostIPC": { + "description": "Use the host's ipc namespace. Optional: Default to false.", + "type": "boolean" + }, + "hostNetwork": { + "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", + "type": "boolean" + }, + "hostPID": { + "description": "Use the host's pid namespace. Optional: Default to false.", + "type": "boolean" + }, + "hostname": { + "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", + "type": "string" + }, + "imagePullSecrets": { + "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "initContainers": { + "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Container" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "nodeName": { + "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", + "type": "string" + }, + "nodeSelector": { + "description": "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/", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "priority": { + "description": "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.", + "type": "integer", + "format": "int32" + }, + "priorityClassName": { + "description": "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.", + "type": "string" + }, + "restartPolicy": { + "description": "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", + "type": "string" + }, + "schedulerName": { + "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", + "type": "string" + }, + "securityContext": { + "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.", + "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext" + }, + "serviceAccount": { + "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", + "type": "string" + }, + "serviceAccountName": { + "description": "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/", + "type": "string" + }, + "subdomain": { + "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all.", + "type": "string" + }, + "terminationGracePeriodSeconds": { + "description": "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.", + "type": "integer", + "format": "int64" + }, + "tolerations": { + "description": "If specified, the pod's tolerations.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" + } + }, + "volumes": { + "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Volume" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge,retainKeys" + } + } + }, + "io.k8s.api.core.v1.PodStatus": { + "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system.", + "properties": { + "conditions": { + "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "containerStatuses": { + "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" + } + }, + "hostIP": { + "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", + "type": "string" + }, + "initContainerStatuses": { + "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" + } + }, + "message": { + "description": "A human readable message indicating details about why the pod is in this condition.", + "type": "string" + }, + "phase": { + "description": "Current condition of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", + "type": "string" + }, + "podIP": { + "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", + "type": "string" + }, + "qosClass": { + "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md", + "type": "string" + }, + "reason": { + "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", + "type": "string" + }, + "startTime": { + "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + } + }, + "io.k8s.api.core.v1.PodTemplate": { + "description": "PodTemplate describes a template for creating copies of a predefined pod.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "template": { + "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PodTemplate", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodTemplateList": { + "description": "PodTemplateList is a list of PodTemplates.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of pod templates", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "PodTemplateList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.PodTemplateSpec": { + "description": "PodTemplateSpec describes the data a pod should have when created from a template", + "properties": { + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec" + } + } + }, + "io.k8s.api.core.v1.PortworxVolumeSource": { + "description": "PortworxVolumeSource represents a Portworx volume resource.", + "required": [ + "volumeID" + ], + "properties": { + "fsType": { + "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "volumeID": { + "description": "VolumeID uniquely identifies a Portworx volume", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.PreferredSchedulingTerm": { + "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", + "required": [ + "weight", + "preference" + ], + "properties": { + "preference": { + "description": "A node selector term, associated with the corresponding weight.", + "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" + }, + "weight": { + "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.core.v1.Probe": { + "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "properties": { + "exec": { + "description": "One and only one of the following should be specified. Exec specifies the action to take.", + "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction" + }, + "failureThreshold": { + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "httpGet": { + "description": "HTTPGet specifies the http request to perform.", + "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction" + }, + "initialDelaySeconds": { + "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + }, + "periodSeconds": { + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "successThreshold": { + "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.", + "type": "integer", + "format": "int32" + }, + "tcpSocket": { + "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported", + "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction" + }, + "timeoutSeconds": { + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.core.v1.ProjectedVolumeSource": { + "description": "Represents a projected volume source", + "required": [ + "sources" + ], + "properties": { + "defaultMode": { + "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "sources": { + "description": "list of volume projections", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" + } + } + } + }, + "io.k8s.api.core.v1.QuobyteVolumeSource": { + "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", + "required": [ + "registry", + "volume" + ], + "properties": { + "group": { + "description": "Group to map volume access to Default is no group", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", + "type": "boolean" + }, + "registry": { + "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", + "type": "string" + }, + "user": { + "description": "User to map volume access to Defaults to serivceaccount user", + "type": "string" + }, + "volume": { + "description": "Volume is a string that references an already created Quobyte volume by name.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.RBDVolumeSource": { + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "required": [ + "monitors", + "image" + ], + "properties": { + "fsType": { + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "type": "string" + }, + "image": { + "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "keyring": { + "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "monitors": { + "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "array", + "items": { + "type": "string" + } + }, + "pool": { + "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "boolean" + }, + "secretRef": { + "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "user": { + "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ReplicationController": { + "description": "ReplicationController represents the configuration of a replication controller.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec" + }, + "status": { + "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ReplicationController", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ReplicationControllerCondition": { + "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "lastTransitionTime": { + "description": "The last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of replication controller condition.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ReplicationControllerList": { + "description": "ReplicationControllerList is a collection of replication controllers.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ReplicationControllerList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ReplicationControllerSpec": { + "description": "ReplicationControllerSpec is the specification of a replication controller.", + "properties": { + "minReadySeconds": { + "description": "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)", + "type": "integer", + "format": "int32" + }, + "replicas": { + "description": "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", + "type": "integer", + "format": "int32" + }, + "selector": { + "description": "Selector is a label query over pods that should match the Replicas count. If 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 replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "template": { + "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" + } + } + }, + "io.k8s.api.core.v1.ReplicationControllerStatus": { + "description": "ReplicationControllerStatus represents the current status of a replication controller.", + "required": [ + "replicas" + ], + "properties": { + "availableReplicas": { + "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", + "type": "integer", + "format": "int32" + }, + "conditions": { + "description": "Represents the latest available observations of a replication controller's current state.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "fullyLabeledReplicas": { + "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", + "type": "integer", + "format": "int32" + }, + "observedGeneration": { + "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", + "type": "integer", + "format": "int64" + }, + "readyReplicas": { + "description": "The number of ready replicas for this replication controller.", + "type": "integer", + "format": "int32" + }, + "replicas": { + "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.core.v1.ResourceFieldSelector": { + "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", + "required": [ + "resource" + ], + "properties": { + "containerName": { + "description": "Container name: required for volumes, optional for env vars", + "type": "string" + }, + "divisor": { + "description": "Specifies the output format of the exposed resources, defaults to \"1\"", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "resource": { + "description": "Required: resource to select", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ResourceQuota": { + "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec" + }, + "status": { + "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ResourceQuota", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ResourceQuotaList": { + "description": "ResourceQuotaList is a list of ResourceQuota items.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of ResourceQuota objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ResourceQuotaList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ResourceQuotaSpec": { + "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", + "properties": { + "hard": { + "description": "Hard is the set of desired hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "scopes": { + "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.core.v1.ResourceQuotaStatus": { + "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", + "properties": { + "hard": { + "description": "Hard is the set of enforced hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "used": { + "description": "Used is the current observed total usage of the resource in the namespace.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + } + } + }, + "io.k8s.api.core.v1.ResourceRequirements": { + "description": "ResourceRequirements describes the compute resource requirements.", + "properties": { + "limits": { + "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + }, + "requests": { + "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + } + } + }, + "io.k8s.api.core.v1.SELinuxOptions": { + "description": "SELinuxOptions are the labels to be applied to the container", + "properties": { + "level": { + "description": "Level is SELinux level label that applies to the container.", + "type": "string" + }, + "role": { + "description": "Role is a SELinux role label that applies to the container.", + "type": "string" + }, + "type": { + "description": "Type is a SELinux type label that applies to the container.", + "type": "string" + }, + "user": { + "description": "User is a SELinux user label that applies to the container.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ScaleIOVolumeSource": { + "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", + "required": [ + "gateway", + "system", + "secretRef" + ], + "properties": { + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "gateway": { + "description": "The host address of the ScaleIO API Gateway.", + "type": "string" + }, + "protectionDomain": { + "description": "The name of the Protection Domain for the configured storage (defaults to \"default\").", + "type": "string" + }, + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "sslEnabled": { + "description": "Flag to enable/disable SSL communication with Gateway, default false", + "type": "boolean" + }, + "storageMode": { + "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\").", + "type": "string" + }, + "storagePool": { + "description": "The Storage Pool associated with the protection domain (defaults to \"default\").", + "type": "string" + }, + "system": { + "description": "The name of the storage system as configured in ScaleIO.", + "type": "string" + }, + "volumeName": { + "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Secret": { + "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "data": { + "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", + "type": "object", + "additionalProperties": { + "type": "string", + "format": "byte" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "stringData": { + "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "type": { + "description": "Used to facilitate programmatic handling of secret data.", + "type": "string" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Secret", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.SecretEnvSource": { + "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", + "properties": { + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the Secret must be defined", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.SecretKeySelector": { + "description": "SecretKeySelector selects a key of a Secret.", + "required": [ + "key" + ], + "properties": { + "key": { + "description": "The key of the secret to select from. Must be a valid secret key.", + "type": "string" + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the Secret or it's key must be defined", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.SecretList": { + "description": "SecretList is a list of Secret.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Secret" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "SecretList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.SecretProjection": { + "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", + "properties": { + "items": { + "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + } + }, + "name": { + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the Secret or its key must be defined", + "type": "boolean" + } + } + }, + "io.k8s.api.core.v1.SecretReference": { + "description": "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", + "properties": { + "name": { + "description": "Name is unique within a namespace to reference a secret resource.", + "type": "string" + }, + "namespace": { + "description": "Namespace defines the space within which the secret name must be unique.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.SecretVolumeSource": { + "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", + "properties": { + "defaultMode": { + "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "type": "integer", + "format": "int32" + }, + "items": { + "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" + } + }, + "optional": { + "description": "Specify whether the Secret or it's keys must be defined", + "type": "boolean" + }, + "secretName": { + "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.SecurityContext": { + "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", + "properties": { + "allowPrivilegeEscalation": { + "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than it's parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN", + "type": "boolean" + }, + "capabilities": { + "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.", + "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities" + }, + "privileged": { + "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", + "type": "boolean" + }, + "readOnlyRootFilesystem": { + "description": "Whether this container has a read-only root filesystem. Default is false.", + "type": "boolean" + }, + "runAsNonRoot": { + "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "type": "boolean" + }, + "runAsUser": { + "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "type": "integer", + "format": "int64" + }, + "seLinuxOptions": { + "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" + } + } + }, + "io.k8s.api.core.v1.Service": { + "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec" + }, + "status": { + "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Service", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServiceAccount": { + "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "automountServiceAccountToken": { + "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", + "type": "boolean" + }, + "imagePullSecrets": { + "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "secrets": { + "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceAccount", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServiceAccountList": { + "description": "ServiceAccountList is a list of ServiceAccount objects", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceAccountList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServiceList": { + "description": "ServiceList holds a list of services.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of services", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.Service" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "ServiceList", + "version": "v1" + } + ] + }, + "io.k8s.api.core.v1.ServicePort": { + "description": "ServicePort contains information on service's port.", + "required": [ + "port" + ], + "properties": { + "name": { + "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service.", + "type": "string" + }, + "nodePort": { + "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "The port that will be exposed by this service.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "The IP protocol for this port. Supports \"TCP\" and \"UDP\". Default is TCP.", + "type": "string" + }, + "targetPort": { + "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + } + } + }, + "io.k8s.api.core.v1.ServiceSpec": { + "description": "ServiceSpec describes the attributes that a user creates on a service.", + "properties": { + "clusterIP": { + "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "type": "string" + }, + "externalIPs": { + "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", + "type": "array", + "items": { + "type": "string" + } + }, + "externalName": { + "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid DNS name and requires Type to be ExternalName.", + "type": "string" + }, + "externalTrafficPolicy": { + "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", + "type": "string" + }, + "healthCheckNodePort": { + "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", + "type": "integer", + "format": "int32" + }, + "loadBalancerIP": { + "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", + "type": "string" + }, + "loadBalancerSourceRanges": { + "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", + "type": "array", + "items": { + "type": "string" + } + }, + "ports": { + "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" + }, + "x-kubernetes-patch-merge-key": "port", + "x-kubernetes-patch-strategy": "merge" + }, + "publishNotReadyAddresses": { + "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.", + "type": "boolean" + }, + "selector": { + "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sessionAffinity": { + "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", + "type": "string" + }, + "sessionAffinityConfig": { + "description": "sessionAffinityConfig contains the configurations of session affinity.", + "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig" + }, + "type": { + "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.ServiceStatus": { + "description": "ServiceStatus represents the current status of a service.", + "properties": { + "loadBalancer": { + "description": "LoadBalancer contains the current status of the load-balancer, if one is present.", + "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus" + } + } + }, + "io.k8s.api.core.v1.SessionAffinityConfig": { + "description": "SessionAffinityConfig represents the configurations of session affinity.", + "properties": { + "clientIP": { + "description": "clientIP contains the configurations of Client IP based session affinity.", + "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig" + } + } + }, + "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { + "description": "Represents a StorageOS persistent volume resource.", + "properties": { + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "volumeName": { + "description": "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", + "type": "string" + }, + "volumeNamespace": { + "description": "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.StorageOSVolumeSource": { + "description": "Represents a StorageOS persistent volume resource.", + "properties": { + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "volumeName": { + "description": "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", + "type": "string" + }, + "volumeNamespace": { + "description": "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.TCPSocketAction": { + "description": "TCPSocketAction describes an action based on opening a socket", + "required": [ + "port" + ], + "properties": { + "host": { + "description": "Optional: Host name to connect to, defaults to the pod IP.", + "type": "string" + }, + "port": { + "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + } + } + }, + "io.k8s.api.core.v1.Taint": { + "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", + "required": [ + "key", + "effect" + ], + "properties": { + "effect": { + "description": "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.", + "type": "string" + }, + "key": { + "description": "Required. The taint key to be applied to a node.", + "type": "string" + }, + "timeAdded": { + "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "value": { + "description": "Required. The taint value corresponding to the taint key.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Toleration": { + "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", + "properties": { + "effect": { + "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", + "type": "string" + }, + "key": { + "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", + "type": "string" + }, + "operator": { + "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", + "type": "string" + }, + "tolerationSeconds": { + "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", + "type": "integer", + "format": "int64" + }, + "value": { + "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.Volume": { + "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", + "required": [ + "name" + ], + "properties": { + "awsElasticBlockStore": { + "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", + "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" + }, + "azureDisk": { + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource" + }, + "azureFile": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource" + }, + "cephfs": { + "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource" + }, + "cinder": { + "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource" + }, + "configMap": { + "description": "ConfigMap represents a configMap that should populate this volume", + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource" + }, + "downwardAPI": { + "description": "DownwardAPI represents downward API about the pod that should populate this volume", + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource" + }, + "emptyDir": { + "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", + "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource" + }, + "fc": { + "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", + "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource" + }, + "flexVolume": { + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", + "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource" + }, + "flocker": { + "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", + "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource" + }, + "gcePersistentDisk": { + "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", + "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" + }, + "gitRepo": { + "description": "GitRepo represents a git repository at a particular revision.", + "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource" + }, + "glusterfs": { + "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md", + "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource" + }, + "hostPath": { + "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource" + }, + "iscsi": { + "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md", + "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource" + }, + "name": { + "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "nfs": { + "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", + "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource" + }, + "persistentVolumeClaim": { + "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource" + }, + "photonPersistentDisk": { + "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", + "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" + }, + "portworxVolume": { + "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource" + }, + "projected": { + "description": "Items for all in one resources secrets, configmaps, and downward API", + "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource" + }, + "quobyte": { + "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", + "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource" + }, + "rbd": { + "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", + "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource" + }, + "scaleIO": { + "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", + "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource" + }, + "secret": { + "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", + "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource" + }, + "storageos": { + "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", + "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource" + }, + "vsphereVolume": { + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", + "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" + } + } + }, + "io.k8s.api.core.v1.VolumeMount": { + "description": "VolumeMount describes a mounting of a Volume within a container.", + "required": [ + "name", + "mountPath" + ], + "properties": { + "mountPath": { + "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", + "type": "string" + }, + "name": { + "description": "This must match the Name of a Volume.", + "type": "string" + }, + "readOnly": { + "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", + "type": "boolean" + }, + "subPath": { + "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.VolumeProjection": { + "description": "Projection that may be projected along with other supported volume types", + "properties": { + "configMap": { + "description": "information about the configMap data to project", + "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection" + }, + "downwardAPI": { + "description": "information about the downwardAPI data to project", + "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection" + }, + "secret": { + "description": "information about the secret data to project", + "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection" + } + } + }, + "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { + "description": "Represents a vSphere volume resource.", + "required": [ + "volumePath" + ], + "properties": { + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "storagePolicyID": { + "description": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", + "type": "string" + }, + "storagePolicyName": { + "description": "Storage Policy Based Management (SPBM) profile name.", + "type": "string" + }, + "volumePath": { + "description": "Path that identifies vSphere volume vmdk", + "type": "string" + } + } + }, + "io.k8s.api.core.v1.WeightedPodAffinityTerm": { + "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", + "required": [ + "weight", + "podAffinityTerm" + ], + "properties": { + "podAffinityTerm": { + "description": "Required. A pod affinity term, associated with the corresponding weight.", + "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" + }, + "weight": { + "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.apimachinery.pkg.api.resource.Quantity": { + "type": "string" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { + "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", + "required": [ + "name", + "versions", + "serverAddressByClientCIDRs" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "name is the name of the group.", + "type": "string" + }, + "preferredVersion": { + "description": "preferredVersion is the version preferred by the API server, which probably is the storage version.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" + }, + "serverAddressByClientCIDRs": { + "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" + } + }, + "versions": { + "description": "versions are the versions supported in this group.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" + } + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "APIGroup", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { + "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", + "required": [ + "groups" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "groups": { + "description": "groups is a list of APIGroup.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "APIGroupList", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { + "description": "APIResource specifies the name of a resource and whether it is namespaced.", + "required": [ + "name", + "singularName", + "namespaced", + "kind", + "verbs" + ], + "properties": { + "categories": { + "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", + "type": "array", + "items": { + "type": "string" + } + }, + "kind": { + "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", + "type": "string" + }, + "name": { + "description": "name is the plural name of the resource.", + "type": "string" + }, + "namespaced": { + "description": "namespaced indicates if a resource is namespaced or not.", + "type": "boolean" + }, + "shortNames": { + "description": "shortNames is a list of suggested short names of the resource.", + "type": "array", + "items": { + "type": "string" + } + }, + "singularName": { + "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", + "type": "string" + }, + "verbs": { + "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { + "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", + "required": [ + "groupVersion", + "resources" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "groupVersion": { + "description": "groupVersion is the group and version this APIResourceList is for.", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "resources": { + "description": "resources contains the name of the resources and if they are namespaced.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" + } + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "APIResourceList", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { + "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", + "required": [ + "versions", + "serverAddressByClientCIDRs" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "serverAddressByClientCIDRs": { + "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" + } + }, + "versions": { + "description": "versions are the api versions that are available.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "APIVersions", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { + "description": "DeleteOptions may be provided when deleting an API object.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "gracePeriodSeconds": { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "type": "integer", + "format": "int64" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "orphanDependents": { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "type": "boolean" + }, + "preconditions": { + "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions" + }, + "propagationPolicy": { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "type": "string" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "admission.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "admissionregistration.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "apps", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "apps", + "kind": "DeleteOptions", + "version": "v1beta2" + }, + { + "group": "authentication.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "authentication.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "autoscaling", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "autoscaling", + "kind": "DeleteOptions", + "version": "v2alpha1" + }, + { + "group": "batch", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "batch", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "batch", + "kind": "DeleteOptions", + "version": "v2alpha1" + }, + { + "group": "certificates.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "extensions", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "federation", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "imagepolicy.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "networking.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "policy", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + }, + { + "group": "scheduling.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "settings.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, + { + "group": "storage.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, + { + "group": "storage.k8s.io", + "kind": "DeleteOptions", + "version": "v1beta1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { + "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", + "required": [ + "groupVersion", + "version" + ], + "properties": { + "groupVersion": { + "description": "groupVersion specifies the API group and version in the form \"group/version\"", + "type": "string" + }, + "version": { + "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", + "type": "string" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Initializer": { + "description": "Initializer is information about an initializer that has not yet completed.", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "name of the process that is responsible for initializing this object.", + "type": "string" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Initializers": { + "description": "Initializers tracks the progress of initialization.", + "required": [ + "pending" + ], + "properties": { + "pending": { + "description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "result": { + "description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": { + "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + "properties": { + "matchExpressions": { + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + } + }, + "matchLabels": { + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { + "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "required": [ + "key", + "operator" + ], + "properties": { + "key": { + "description": "key is the label key that the selector applies to.", + "type": "string", + "x-kubernetes-patch-merge-key": "key", + "x-kubernetes-patch-strategy": "merge" + }, + "operator": { + "description": "operator represents a key's relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist.", + "type": "string" + }, + "values": { + "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { + "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", + "properties": { + "resourceVersion": { + "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", + "type": "string" + }, + "selfLink": { + "description": "SelfLink is a URL representing this object. Populated by the system. Read-only.", + "type": "string" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { + "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", + "properties": { + "annotations": { + "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "clusterName": { + "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", + "type": "string" + }, + "creationTimestamp": { + "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "deletionGracePeriodSeconds": { + "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.", + "type": "integer", + "format": "int64" + }, + "deletionTimestamp": { + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "finalizers": { + "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.", + "type": "array", + "items": { + "type": "string" + }, + "x-kubernetes-patch-strategy": "merge" + }, + "generateName": { + "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency", + "type": "string" + }, + "generation": { + "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", + "type": "integer", + "format": "int64" + }, + "initializers": { + "description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers" + }, + "labels": { + "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "name": { + "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", + "type": "string" + }, + "namespace": { + "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces", + "type": "string" + }, + "ownerReferences": { + "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" + }, + "x-kubernetes-patch-merge-key": "uid", + "x-kubernetes-patch-strategy": "merge" + }, + "resourceVersion": { + "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", + "type": "string" + }, + "selfLink": { + "description": "SelfLink is a URL representing this object. Populated by the system. Read-only.", + "type": "string" + }, + "uid": { + "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", + "type": "string" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": { + "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ], + "properties": { + "apiVersion": { + "description": "API version of the referent.", + "type": "string" + }, + "blockOwnerDeletion": { + "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.", + "type": "boolean" + }, + "controller": { + "description": "If true, this reference points to the managing controller.", + "type": "boolean" + }, + "kind": { + "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names", + "type": "string" + }, + "uid": { + "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", + "type": "string" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body." + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { + "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", + "properties": { + "uid": { + "description": "Specifies the target UID.", + "type": "string" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { + "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", + "required": [ + "clientCIDR", + "serverAddress" + ], + "properties": { + "clientCIDR": { + "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", + "type": "string" + }, + "serverAddress": { + "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", + "type": "string" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { + "description": "Status is a return value for calls that don't return other objects.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "code": { + "description": "Suggested HTTP return code for this status, 0 if not set.", + "type": "integer", + "format": "int32" + }, + "details": { + "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "message": { + "description": "A human-readable description of the status of this operation.", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + }, + "reason": { + "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", + "type": "string" + }, + "status": { + "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "type": "string" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "Status", + "version": "v1" + } + ] + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { + "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", + "properties": { + "field": { + "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", + "type": "string" + }, + "message": { + "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", + "type": "string" + }, + "reason": { + "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", + "type": "string" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { + "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", + "properties": { + "causes": { + "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" + } + }, + "group": { + "description": "The group attribute of the resource associated with the status StatusReason.", + "type": "string" + }, + "kind": { + "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "name": { + "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", + "type": "string" + }, + "retryAfterSeconds": { + "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", + "type": "integer", + "format": "int32" + }, + "uid": { + "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", + "type": "string" + } + } + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { + "type": "string", + "format": "date-time" + }, + "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { + "description": "Event represents a single event to a watched resource.", + "required": [ + "type", + "object" + ], + "properties": { + "object": { + "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" + }, + "type": { + "type": "string" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "admission.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "admissionregistration.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "apps", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "apps", + "kind": "WatchEvent", + "version": "v1beta2" + }, + { + "group": "authentication.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "authentication.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "autoscaling", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "autoscaling", + "kind": "WatchEvent", + "version": "v2alpha1" + }, + { + "group": "batch", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "batch", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "batch", + "kind": "WatchEvent", + "version": "v2alpha1" + }, + { + "group": "certificates.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "extensions", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "federation", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "imagepolicy.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "networking.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "policy", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "rbac.authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + }, + { + "group": "scheduling.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "settings.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, + { + "group": "storage.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, + { + "group": "storage.k8s.io", + "kind": "WatchEvent", + "version": "v1beta1" + } + ] + }, + "io.k8s.apimachinery.pkg.runtime.RawExtension": { + "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", + "required": [ + "Raw" + ], + "properties": { + "Raw": { + "description": "Raw is the underlying serialization of this object.", + "type": "string", + "format": "byte" + } + } + }, + "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { + "type": "string", + "format": "int-or-string" + }, + "io.k8s.apimachinery.pkg.version.Info": { + "description": "Info contains versioning information. how we'll want to distribute that information.", + "required": [ + "major", + "minor", + "gitVersion", + "gitCommit", + "gitTreeState", + "buildDate", + "goVersion", + "compiler", + "platform" + ], + "properties": { + "buildDate": { + "type": "string" + }, + "compiler": { + "type": "string" + }, + "gitCommit": { + "type": "string" + }, + "gitTreeState": { + "type": "string" + }, + "gitVersion": { + "type": "string" + }, + "goVersion": { + "type": "string" + }, + "major": { + "type": "string" + }, + "minor": { + "type": "string" + }, + "platform": { + "type": "string" + } + } + } + }, + "securityDefinitions": { + "BearerToken": { + "description": "Bearer Token authentication", + "type": "apiKey", + "name": "authorization", + "in": "header" + } + }, + "security": [ + { + "BearerToken": [] + } + ] + } diff --git a/vendor/k8s.io/kubernetes/.gitattributes b/vendor/k8s.io/kubernetes/.gitattributes index 0bf66f3ab..aa3877d91 100644 --- a/vendor/k8s.io/kubernetes/.gitattributes +++ b/vendor/k8s.io/kubernetes/.gitattributes @@ -1,10 +1,11 @@ hack/verify-flags/known-flags.txt merge=union test/test_owners.csv merge=union -**/zz_generated.*.go -diff -**/types.generated.go -diff -**/generated.pb.go -diff +**/zz_generated.*.go -diff linguist-generated=true +**/types.generated.go -diff linguist-generated=true +**/generated.pb.go -diff linguist-generated=true **/generated.proto -diff -**/types_swagger_doc_generated.go -diff -docs/api-reference/** -diff -federation/docs/api-reference/** -diff +**/types_swagger_doc_generated.go -diff linguist-generated=true +docs/api-reference/** -diff linguist-generated=true +api/swagger-spec/*.json -diff linguist-generated=true +api/openapi-spec/*.json -diff linguist-generated=true diff --git a/vendor/k8s.io/kubernetes/.github/ISSUE_TEMPLATE.md b/vendor/k8s.io/kubernetes/.github/ISSUE_TEMPLATE.md index 8a562b523..d397f16b1 100644 --- a/vendor/k8s.io/kubernetes/.github/ISSUE_TEMPLATE.md +++ b/vendor/k8s.io/kubernetes/.github/ISSUE_TEMPLATE.md @@ -22,7 +22,7 @@ If you're looking for help check [Stack Overflow](https://stackoverflow.com/ques **Environment**: - Kubernetes version (use `kubectl version`): -- Cloud provider or hardware configuration**: +- Cloud provider or hardware configuration: - OS (e.g. from /etc/os-release): - Kernel (e.g. `uname -a`): - Install tools: diff --git a/vendor/k8s.io/kubernetes/.github/PULL_REQUEST_TEMPLATE.md b/vendor/k8s.io/kubernetes/.github/PULL_REQUEST_TEMPLATE.md index 756c905e0..2ac1d28d9 100644 --- a/vendor/k8s.io/kubernetes/.github/PULL_REQUEST_TEMPLATE.md +++ b/vendor/k8s.io/kubernetes/.github/PULL_REQUEST_TEMPLATE.md @@ -2,18 +2,21 @@ 1. If this is your first time, read our contributor guidelines https://git.k8s.io/community/contributors/devel/pull-requests.md#the-pr-submit-process and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide 2. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/devel/pull-requests.md#best-practices-for-faster-reviews 3. Follow the instructions for writing a release note: https://git.k8s.io/community/contributors/devel/pull-requests.md#write-release-notes-if-needed +4. If the PR is unfinished, see how to mark it: https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#marking-unfinished-pull-requests --> **What this PR does / why we need it**: -**Which issue this PR fixes** *(optional, in `fixes #(, fixes #, ...)` format, will close that issue when PR gets merged)*: fixes # +**Which issue(s) this PR fixes** *(optional, in `fixes #(, fixes #, ...)` format, will close the issue(s) when PR gets merged)*: +Fixes # **Special notes for your reviewer**: **Release note**: - ```release-note + ``` diff --git a/vendor/k8s.io/kubernetes/CHANGELOG-1.4.md b/vendor/k8s.io/kubernetes/CHANGELOG-1.4.md index 11e704844..8c229de49 100644 --- a/vendor/k8s.io/kubernetes/CHANGELOG-1.4.md +++ b/vendor/k8s.io/kubernetes/CHANGELOG-1.4.md @@ -68,8 +68,8 @@ - [Known Issues](#known-issues) - [Notable Changes to Existing Behavior](#notable-changes-to-existing-behavior) - [Deployments](#deployments) - - [kubectl rolling-update: < v1.4.0 client vs >=v1.4.0 cluster](#kubectl-rolling-update:-<-v140-client-vs->=v140-cluster) - - [kubectl delete: < v1.4.0 client vs >=v1.4.0 cluster](#kubectl-delete:-<-v140-client-vs->=v140-cluster) + - [kubectl rolling-update: < v1.4.0 client vs >=v1.4.0 cluster](#kubectl-rolling-update--v140-client-vs-v140-cluster) + - [kubectl delete: < v1.4.0 client vs >=v1.4.0 cluster](#kubectl-delete--v140-client-vs-v140-cluster) - [DELETE operation in REST API](#delete-operation-in-rest-api) - [Action Required Before Upgrading](#action-required-before-upgrading) - [optionally, remove the old secret](#optionally-remove-the-old-secret) diff --git a/vendor/k8s.io/kubernetes/CHANGELOG-1.6.md b/vendor/k8s.io/kubernetes/CHANGELOG-1.6.md index 6f47be1eb..f3efb16d4 100644 --- a/vendor/k8s.io/kubernetes/CHANGELOG-1.6.md +++ b/vendor/k8s.io/kubernetes/CHANGELOG-1.6.md @@ -1,88 +1,95 @@ -- [v1.6.11](#v1611) - - [Downloads for v1.6.11](#downloads-for-v1611) +- [v1.6.12](#v1612) + - [Downloads for v1.6.12](#downloads-for-v1612) - [Client Binaries](#client-binaries) - [Server Binaries](#server-binaries) - [Node Binaries](#node-binaries) - - [Changelog since v1.6.10](#changelog-since-v1610) + - [Changelog since v1.6.11](#changelog-since-v1611) - [Other notable changes](#other-notable-changes) -- [v1.6.10](#v1610) - - [Downloads for v1.6.10](#downloads-for-v1610) +- [v1.6.11](#v1611) + - [Downloads for v1.6.11](#downloads-for-v1611) - [Client Binaries](#client-binaries-1) - [Server Binaries](#server-binaries-1) - [Node Binaries](#node-binaries-1) - - [Changelog since v1.6.9](#changelog-since-v169) + - [Changelog since v1.6.10](#changelog-since-v1610) - [Other notable changes](#other-notable-changes-1) -- [v1.6.9](#v169) - - [Downloads for v1.6.9](#downloads-for-v169) +- [v1.6.10](#v1610) + - [Downloads for v1.6.10](#downloads-for-v1610) - [Client Binaries](#client-binaries-2) - [Server Binaries](#server-binaries-2) - [Node Binaries](#node-binaries-2) - - [Changelog since v1.6.8](#changelog-since-v168) + - [Changelog since v1.6.9](#changelog-since-v169) - [Other notable changes](#other-notable-changes-2) -- [v1.6.8](#v168) - - [Downloads for v1.6.8](#downloads-for-v168) +- [v1.6.9](#v169) + - [Downloads for v1.6.9](#downloads-for-v169) - [Client Binaries](#client-binaries-3) - [Server Binaries](#server-binaries-3) - [Node Binaries](#node-binaries-3) - - [Changelog since v1.6.7](#changelog-since-v167) + - [Changelog since v1.6.8](#changelog-since-v168) - [Other notable changes](#other-notable-changes-3) -- [v1.6.7](#v167) - - [Downloads for v1.6.7](#downloads-for-v167) +- [v1.6.8](#v168) + - [Downloads for v1.6.8](#downloads-for-v168) - [Client Binaries](#client-binaries-4) - [Server Binaries](#server-binaries-4) - [Node Binaries](#node-binaries-4) - - [Changelog since v1.6.6](#changelog-since-v166) + - [Changelog since v1.6.7](#changelog-since-v167) - [Other notable changes](#other-notable-changes-4) -- [v1.6.6](#v166) - - [Downloads for v1.6.6](#downloads-for-v166) +- [v1.6.7](#v167) + - [Downloads for v1.6.7](#downloads-for-v167) - [Client Binaries](#client-binaries-5) - [Server Binaries](#server-binaries-5) - [Node Binaries](#node-binaries-5) + - [Changelog since v1.6.6](#changelog-since-v166) + - [Other notable changes](#other-notable-changes-5) +- [v1.6.6](#v166) + - [Downloads for v1.6.6](#downloads-for-v166) + - [Client Binaries](#client-binaries-6) + - [Server Binaries](#server-binaries-6) + - [Node Binaries](#node-binaries-6) - [Changelog since v1.6.5](#changelog-since-v165) - [Action Required](#action-required) - - [Other notable changes](#other-notable-changes-5) + - [Other notable changes](#other-notable-changes-6) - [v1.6.5](#v165) - [Known Issues for v1.6.5](#known-issues-for-v165) - [Downloads for v1.6.5](#downloads-for-v165) - - [Client Binaries](#client-binaries-6) - - [Server Binaries](#server-binaries-6) - - [Node Binaries](#node-binaries-6) + - [Client Binaries](#client-binaries-7) + - [Server Binaries](#server-binaries-7) + - [Node Binaries](#node-binaries-7) - [Changelog since v1.6.4](#changelog-since-v164) - - [Other notable changes](#other-notable-changes-6) + - [Other notable changes](#other-notable-changes-7) - [v1.6.4](#v164) - [Known Issues for v1.6.4](#known-issues-for-v164) - [Downloads for v1.6.4](#downloads-for-v164) - - [Client Binaries](#client-binaries-7) - - [Server Binaries](#server-binaries-7) - - [Node Binaries](#node-binaries-7) + - [Client Binaries](#client-binaries-8) + - [Server Binaries](#server-binaries-8) + - [Node Binaries](#node-binaries-8) - [Changelog since v1.6.3](#changelog-since-v163) - - [Other notable changes](#other-notable-changes-7) + - [Other notable changes](#other-notable-changes-8) - [v1.6.3](#v163) - [Known Issues for v1.6.3](#known-issues-for-v163) - [Downloads for v1.6.3](#downloads-for-v163) - - [Client Binaries](#client-binaries-8) - - [Server Binaries](#server-binaries-8) - - [Node Binaries](#node-binaries-8) + - [Client Binaries](#client-binaries-9) + - [Server Binaries](#server-binaries-9) + - [Node Binaries](#node-binaries-9) - [Changelog since v1.6.2](#changelog-since-v162) - - [Other notable changes](#other-notable-changes-8) + - [Other notable changes](#other-notable-changes-9) - [v1.6.2](#v162) - [Downloads for v1.6.2](#downloads-for-v162) - - [Client Binaries](#client-binaries-9) - - [Server Binaries](#server-binaries-9) + - [Client Binaries](#client-binaries-10) + - [Server Binaries](#server-binaries-10) - [Changelog since v1.6.1](#changelog-since-v161) - - [Other notable changes](#other-notable-changes-9) + - [Other notable changes](#other-notable-changes-10) - [v1.6.1](#v161) - [Downloads for v1.6.1](#downloads-for-v161) - - [Client Binaries](#client-binaries-10) - - [Server Binaries](#server-binaries-10) + - [Client Binaries](#client-binaries-11) + - [Server Binaries](#server-binaries-11) - [Changelog since v1.6.0](#changelog-since-v160) - - [Other notable changes](#other-notable-changes-10) + - [Other notable changes](#other-notable-changes-11) - [v1.6.0](#v160) - [Downloads for v1.6.0](#downloads-for-v160) - - [Client Binaries](#client-binaries-11) - - [Server Binaries](#server-binaries-11) - - [WARNING: etcd backup strongly recommended](#warning:-etcd-backup-strongly-recommended) + - [Client Binaries](#client-binaries-12) + - [Server Binaries](#server-binaries-12) + - [WARNING: etcd backup strongly recommended](#warning-etcd-backup-strongly-recommended) - [Major updates and release themes](#major-updates-and-release-themes) - [Action Required](#action-required-1) - [Certificates API](#certificates-api) @@ -148,7 +155,7 @@ - [vSphere](#vsphere) - [Federation](#federation-2) - [kubefed](#kubefed) - - [Other Notable Changes](#other-notable-changes-11) + - [Other Notable Changes](#other-notable-changes-12) - [Garbage Collector](#garbage-collector) - [kubeadm](#kubeadm-2) - [kubectl](#kubectl-1) @@ -158,7 +165,7 @@ - [Updates to apply](#updates-to-apply) - [Updates to edit](#updates-to-edit) - [Bug fixes](#bug-fixes) - - [Other Notable Changes](#other-notable-changes-12) + - [Other Notable Changes](#other-notable-changes-13) - [Node Components](#node-components-2) - [Bug fixes](#bug-fixes-1) - [kube-controller-manager](#kube-controller-manager) @@ -171,7 +178,7 @@ - [Photon](#photon) - [rbd](#rbd) - [vSphere](#vsphere-1) - - [Other Notable Changes](#other-notable-changes-13) + - [Other Notable Changes](#other-notable-changes-14) - [Changes to Cluster Provisioning Scripts](#changes-to-cluster-provisioning-scripts) - [AWS](#aws-1) - [Juju](#juju) @@ -179,7 +186,7 @@ - [GCE](#gce-1) - [OpenStack](#openstack) - [Container Images](#container-images) - - [Other Notable Changes](#other-notable-changes-14) + - [Other Notable Changes](#other-notable-changes-15) - [Changes to Addons](#changes-to-addons) - [Dashboard](#dashboard) - [DNS](#dns) @@ -195,60 +202,117 @@ - [Previous Releases Included in v1.6.0](#previous-releases-included-in-v160) - [v1.6.0-rc.1](#v160-rc1) - [Downloads for v1.6.0-rc.1](#downloads-for-v160-rc1) - - [Client Binaries](#client-binaries-12) - - [Server Binaries](#server-binaries-12) + - [Client Binaries](#client-binaries-13) + - [Server Binaries](#server-binaries-13) - [Changelog since v1.6.0-beta.4](#changelog-since-v160-beta4) - - [Other notable changes](#other-notable-changes-15) + - [Other notable changes](#other-notable-changes-16) - [v1.6.0-beta.4](#v160-beta4) - [Downloads for v1.6.0-beta.4](#downloads-for-v160-beta4) - - [Client Binaries](#client-binaries-13) - - [Server Binaries](#server-binaries-13) + - [Client Binaries](#client-binaries-14) + - [Server Binaries](#server-binaries-14) - [Changelog since v1.6.0-beta.3](#changelog-since-v160-beta3) - - [Other notable changes](#other-notable-changes-16) + - [Other notable changes](#other-notable-changes-17) - [v1.6.0-beta.3](#v160-beta3) - [Downloads for v1.6.0-beta.3](#downloads-for-v160-beta3) - - [Client Binaries](#client-binaries-14) - - [Server Binaries](#server-binaries-14) + - [Client Binaries](#client-binaries-15) + - [Server Binaries](#server-binaries-15) - [Changelog since v1.6.0-beta.2](#changelog-since-v160-beta2) - - [Other notable changes](#other-notable-changes-17) + - [Other notable changes](#other-notable-changes-18) - [v1.6.0-beta.2](#v160-beta2) - [Downloads for v1.6.0-beta.2](#downloads-for-v160-beta2) - - [Client Binaries](#client-binaries-15) - - [Server Binaries](#server-binaries-15) + - [Client Binaries](#client-binaries-16) + - [Server Binaries](#server-binaries-16) - [Changelog since v1.6.0-beta.1](#changelog-since-v160-beta1) - [Action Required](#action-required-2) - - [Other notable changes](#other-notable-changes-18) + - [Other notable changes](#other-notable-changes-19) - [v1.6.0-beta.1](#v160-beta1) - [Downloads for v1.6.0-beta.1](#downloads-for-v160-beta1) - - [Client Binaries](#client-binaries-16) - - [Server Binaries](#server-binaries-16) + - [Client Binaries](#client-binaries-17) + - [Server Binaries](#server-binaries-17) - [Changelog since v1.6.0-alpha.3](#changelog-since-v160-alpha3) - [Action Required](#action-required-3) - - [Other notable changes](#other-notable-changes-19) + - [Other notable changes](#other-notable-changes-20) - [v1.6.0-alpha.3](#v160-alpha3) - [Downloads for v1.6.0-alpha.3](#downloads-for-v160-alpha3) - - [Client Binaries](#client-binaries-17) - - [Server Binaries](#server-binaries-17) + - [Client Binaries](#client-binaries-18) + - [Server Binaries](#server-binaries-18) - [Changelog since v1.6.0-alpha.2](#changelog-since-v160-alpha2) - - [Other notable changes](#other-notable-changes-20) + - [Other notable changes](#other-notable-changes-21) - [v1.6.0-alpha.2](#v160-alpha2) - [Downloads for v1.6.0-alpha.2](#downloads-for-v160-alpha2) - - [Client Binaries](#client-binaries-18) - - [Server Binaries](#server-binaries-18) + - [Client Binaries](#client-binaries-19) + - [Server Binaries](#server-binaries-19) - [Changelog since v1.6.0-alpha.1](#changelog-since-v160-alpha1) - - [Other notable changes](#other-notable-changes-21) + - [Other notable changes](#other-notable-changes-22) - [v1.6.0-alpha.1](#v160-alpha1) - [Downloads for v1.6.0-alpha.1](#downloads-for-v160-alpha1) - - [Client Binaries](#client-binaries-19) - - [Server Binaries](#server-binaries-19) + - [Client Binaries](#client-binaries-20) + - [Server Binaries](#server-binaries-20) - [Changelog since v1.5.0](#changelog-since-v150) - [Action Required](#action-required-4) - - [Other notable changes](#other-notable-changes-22) + - [Other notable changes](#other-notable-changes-23) +# v1.6.12 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.6/examples) + +## Downloads for v1.6.12 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes.tar.gz) | `d57a05942f581959bc31778def4df4b526df80adaa75942214e9439fdecbe74f` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-src.tar.gz) | `c1781161d1b0fa0c8dbd3a644ee42e65968a0a4bb5bec47f2c70796edbc1d396` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-darwin-386.tar.gz) | `85956c72c8fc1a1c4768e95fb403ddb1740db1f2d6dec8263d74a67cfce429b9` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-darwin-amd64.tar.gz) | `bcea37dc2852ee83bdcac505600e724ae391e3a5879232d47ddd763cb2253c14` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-linux-386.tar.gz) | `8e0f3d0a6807b050070717efacd25db9f96ad3f0ef59d9095aae71ab20734212` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-linux-amd64.tar.gz) | `5f324e91dce59e05acdc0d6c0a8a6a56d5a5d1a3144e58b6de5c22a9b9020f8b` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-linux-arm64.tar.gz) | `442fadf05af70826231e03b0146c0f9283ec474d6a1ba390eac7204888db5dc7` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-linux-arm.tar.gz) | `2e8073e626ba6a6f6148ccca3d5bbfd20f051f9992de676446d2ae259555a75a` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-linux-ppc64le.tar.gz) | `f6af1ea1762e9fe889e10da670f61ce0bd2c1bc8fd5c1bd9fc3d1eacabe820a1` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-linux-s390x.tar.gz) | `77aee845c290b5637d2560586e9065220aa433d6e15be03c6bbb6dfc75292564` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-windows-386.tar.gz) | `6a47f85d4e01595bb7e58469a4cab09053e5e11819440c630ae47008aa0b000d` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-client-windows-amd64.tar.gz) | `6b4f1ae4bed0523a0c5b2b1d6dc9cb1ac54399a2a78b548acd876b8029a2dd6c` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-server-linux-amd64.tar.gz) | `0970f6da85acd1bb61e92a77c7dbfa3f059da409db68c3d940781708795a0204` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-server-linux-arm64.tar.gz) | `d598d846882744e724e65156807a3b2fa5bb92e1c389ff2e08984455346a7305` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-server-linux-arm.tar.gz) | `6c02ade45ba8495917f0a7fe0542369ba482bc98f2dc008f7f69a21fd2e653d2` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-server-linux-ppc64le.tar.gz) | `5479030e4ff21afcd638f4dd22bd0f6fb221dc3b27731954c0a5e53877ed1131` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-server-linux-s390x.tar.gz) | `6407d6c580acc2fafbe2d87b309e60c6d16624403308e41a8a973d772bf26e3b` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-node-linux-amd64.tar.gz) | `9cb5a28417cbc34165eaa2eb412488738b0e190e9128bb68b16d68d2a942b4c9` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-node-linux-arm64.tar.gz) | `e4c1d1994b7595f2ac9c7ffebaaefc0737c1fbbcc4d2a9a9097d52d060236ad8` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-node-linux-arm.tar.gz) | `77879441f3b5e753959b32103ef6a49fbc9ccea16cac1b1fb83446b5d573901d` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-node-linux-ppc64le.tar.gz) | `c6866605adf86d5bc91acb670c5d8bba00c989a8758014a17322c041289e472d` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-node-linux-s390x.tar.gz) | `8a280b31c7118728660ac4b7010ed0af9bc3b058e98964c04b47f58c5fd84671` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.6.12/kubernetes-node-windows-amd64.tar.gz) | `bc3d39ed8f23e59692bcffc23eaae7f575bef01e3c7c1510528662f984283a9c` + +## Changelog since v1.6.11 + +### Other notable changes + +* Azure cloudprovider: Fix controller manager crash issue on a manually created k8s cluster. ([#53694](https://github.com/kubernetes/kubernetes/pull/53694), [@andyzhangx](https://github.com/andyzhangx)) +* Fix kubelet reset liveness probe failure count across pod restart boundaries. ([#46371](https://github.com/kubernetes/kubernetes/pull/46371), [@sjenning](https://github.com/sjenning)) + + + # v1.6.11 [Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.6/examples) @@ -1135,7 +1199,7 @@ Anyway, the cluster should get back to the proper size after 10 min. clusters post upgrade where kubelet hard eviction has been turned on for memory. To opt-out set `--experimental-allocatable-ignore-eviction=true`. * More details on these feature here: - https://kubernetes.io/docs/concepts/cluster-administration/node-allocatable/ + https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ * Drop the support for docker 1.9.x. Docker versions 1.10.3, 1.11.2, 1.12.6 have been validated. * The following deprecated kubelet flags are removed: `--config`, `--auth-path`, diff --git a/vendor/k8s.io/kubernetes/CHANGELOG-1.7.md b/vendor/k8s.io/kubernetes/CHANGELOG-1.7.md index 478466ed6..a4828d21f 100644 --- a/vendor/k8s.io/kubernetes/CHANGELOG-1.7.md +++ b/vendor/k8s.io/kubernetes/CHANGELOG-1.7.md @@ -1,65 +1,79 @@ -- [v1.7.8](#v178) - - [Downloads for v1.7.8](#downloads-for-v178) +- [v1.7.10](#v1710) + - [Downloads for v1.7.10](#downloads-for-v1710) - [Client Binaries](#client-binaries) - [Server Binaries](#server-binaries) - [Node Binaries](#node-binaries) - - [Changelog since v1.7.7](#changelog-since-v177) + - [Changelog since v1.7.9](#changelog-since-v179) - [Other notable changes](#other-notable-changes) -- [v1.7.7](#v177) - - [Downloads for v1.7.7](#downloads-for-v177) +- [v1.7.9](#v179) + - [Downloads for v1.7.9](#downloads-for-v179) - [Client Binaries](#client-binaries-1) - [Server Binaries](#server-binaries-1) - [Node Binaries](#node-binaries-1) - - [Changelog since v1.7.6](#changelog-since-v176) + - [Changelog since v1.7.8](#changelog-since-v178) - [Other notable changes](#other-notable-changes-1) -- [v1.7.6](#v176) - - [Downloads for v1.7.6](#downloads-for-v176) +- [v1.7.8](#v178) + - [Downloads for v1.7.8](#downloads-for-v178) - [Client Binaries](#client-binaries-2) - [Server Binaries](#server-binaries-2) - [Node Binaries](#node-binaries-2) - - [Changelog since v1.7.5](#changelog-since-v175) + - [Changelog since v1.7.7](#changelog-since-v177) - [Other notable changes](#other-notable-changes-2) -- [v1.7.5](#v175) - - [Downloads for v1.7.5](#downloads-for-v175) +- [v1.7.7](#v177) + - [Downloads for v1.7.7](#downloads-for-v177) - [Client Binaries](#client-binaries-3) - [Server Binaries](#server-binaries-3) - [Node Binaries](#node-binaries-3) - - [Changelog since v1.7.4](#changelog-since-v174) + - [Changelog since v1.7.6](#changelog-since-v176) - [Other notable changes](#other-notable-changes-3) -- [v1.7.4](#v174) - - [Downloads for v1.7.4](#downloads-for-v174) +- [v1.7.6](#v176) + - [Downloads for v1.7.6](#downloads-for-v176) - [Client Binaries](#client-binaries-4) - [Server Binaries](#server-binaries-4) - [Node Binaries](#node-binaries-4) - - [Changelog since v1.7.3](#changelog-since-v173) + - [Changelog since v1.7.5](#changelog-since-v175) - [Other notable changes](#other-notable-changes-4) -- [v1.7.3](#v173) - - [Downloads for v1.7.3](#downloads-for-v173) +- [v1.7.5](#v175) + - [Downloads for v1.7.5](#downloads-for-v175) - [Client Binaries](#client-binaries-5) - [Server Binaries](#server-binaries-5) - [Node Binaries](#node-binaries-5) - - [Changelog since v1.7.2](#changelog-since-v172) + - [Changelog since v1.7.4](#changelog-since-v174) - [Other notable changes](#other-notable-changes-5) -- [v1.7.2](#v172) - - [Downloads for v1.7.2](#downloads-for-v172) +- [v1.7.4](#v174) + - [Downloads for v1.7.4](#downloads-for-v174) - [Client Binaries](#client-binaries-6) - [Server Binaries](#server-binaries-6) - [Node Binaries](#node-binaries-6) - - [Changelog since v1.7.1](#changelog-since-v171) + - [Changelog since v1.7.3](#changelog-since-v173) - [Other notable changes](#other-notable-changes-6) -- [v1.7.1](#v171) - - [Downloads for v1.7.1](#downloads-for-v171) +- [v1.7.3](#v173) + - [Downloads for v1.7.3](#downloads-for-v173) - [Client Binaries](#client-binaries-7) - [Server Binaries](#server-binaries-7) - [Node Binaries](#node-binaries-7) - - [Changelog since v1.7.0](#changelog-since-v170) + - [Changelog since v1.7.2](#changelog-since-v172) - [Other notable changes](#other-notable-changes-7) -- [v1.7.0](#v170) - - [Downloads for v1.7.0](#downloads-for-v170) +- [v1.7.2](#v172) + - [Downloads for v1.7.2](#downloads-for-v172) - [Client Binaries](#client-binaries-8) - [Server Binaries](#server-binaries-8) - [Node Binaries](#node-binaries-8) + - [Changelog since v1.7.1](#changelog-since-v171) + - [Other notable changes](#other-notable-changes-8) +- [v1.7.1](#v171) + - [Downloads for v1.7.1](#downloads-for-v171) + - [Client Binaries](#client-binaries-9) + - [Server Binaries](#server-binaries-9) + - [Node Binaries](#node-binaries-9) + - [Changelog since v1.7.0](#changelog-since-v170) + - [Other notable changes](#other-notable-changes-9) +- [v1.7.0](#v170) + - [Downloads for v1.7.0](#downloads-for-v170) + - [Client Binaries](#client-binaries-10) + - [Server Binaries](#server-binaries-10) + - [Node Binaries](#node-binaries-10) - [**Major Themes**](#major-themes) - [**Action Required Before Upgrading**](#action-required-before-upgrading) - [Network](#network) @@ -115,7 +129,7 @@ - [Local Storage](#local-storage) - [Volume Plugins](#volume-plugins) - [Metrics](#metrics) - - [**Other notable changes**](#other-notable-changes-8) + - [**Other notable changes**](#other-notable-changes-10) - [Admission plugin](#admission-plugin) - [API Machinery](#api-machinery-1) - [Application autoscaling](#application-autoscaling-1) @@ -143,62 +157,185 @@ - [Previous Releases Included in v1.7.0](#previous-releases-included-in-v170) - [v1.7.0-rc.1](#v170-rc1) - [Downloads for v1.7.0-rc.1](#downloads-for-v170-rc1) - - [Client Binaries](#client-binaries-9) - - [Server Binaries](#server-binaries-9) - - [Node Binaries](#node-binaries-9) + - [Client Binaries](#client-binaries-11) + - [Server Binaries](#server-binaries-11) + - [Node Binaries](#node-binaries-11) - [Changelog since v1.7.0-beta.2](#changelog-since-v170-beta2) - [Action Required](#action-required) - - [Other notable changes](#other-notable-changes-9) + - [Other notable changes](#other-notable-changes-11) - [v1.7.0-beta.2](#v170-beta2) - [Downloads for v1.7.0-beta.2](#downloads-for-v170-beta2) - - [Client Binaries](#client-binaries-10) - - [Server Binaries](#server-binaries-10) - - [Node Binaries](#node-binaries-10) + - [Client Binaries](#client-binaries-12) + - [Server Binaries](#server-binaries-12) + - [Node Binaries](#node-binaries-12) - [Changelog since v1.7.0-beta.1](#changelog-since-v170-beta1) - [Action Required](#action-required-1) - - [Other notable changes](#other-notable-changes-10) + - [Other notable changes](#other-notable-changes-12) - [v1.7.0-beta.1](#v170-beta1) - [Downloads for v1.7.0-beta.1](#downloads-for-v170-beta1) - - [Client Binaries](#client-binaries-11) - - [Server Binaries](#server-binaries-11) - - [Node Binaries](#node-binaries-11) + - [Client Binaries](#client-binaries-13) + - [Server Binaries](#server-binaries-13) + - [Node Binaries](#node-binaries-13) - [Changelog since v1.7.0-alpha.4](#changelog-since-v170-alpha4) - [Action Required](#action-required-2) - - [Other notable changes](#other-notable-changes-11) + - [Other notable changes](#other-notable-changes-13) - [v1.7.0-alpha.4](#v170-alpha4) - [Downloads for v1.7.0-alpha.4](#downloads-for-v170-alpha4) - - [Client Binaries](#client-binaries-12) - - [Server Binaries](#server-binaries-12) - - [Node Binaries](#node-binaries-12) + - [Client Binaries](#client-binaries-14) + - [Server Binaries](#server-binaries-14) + - [Node Binaries](#node-binaries-14) - [Changelog since v1.7.0-alpha.3](#changelog-since-v170-alpha3) - [Action Required](#action-required-3) - - [Other notable changes](#other-notable-changes-12) + - [Other notable changes](#other-notable-changes-14) - [v1.7.0-alpha.3](#v170-alpha3) - [Downloads for v1.7.0-alpha.3](#downloads-for-v170-alpha3) - - [Client Binaries](#client-binaries-13) - - [Server Binaries](#server-binaries-13) - - [Node Binaries](#node-binaries-13) + - [Client Binaries](#client-binaries-15) + - [Server Binaries](#server-binaries-15) + - [Node Binaries](#node-binaries-15) - [Changelog since v1.7.0-alpha.2](#changelog-since-v170-alpha2) - [Action Required](#action-required-4) - - [Other notable changes](#other-notable-changes-13) + - [Other notable changes](#other-notable-changes-15) - [v1.7.0-alpha.2](#v170-alpha2) - [Downloads for v1.7.0-alpha.2](#downloads-for-v170-alpha2) - - [Client Binaries](#client-binaries-14) - - [Server Binaries](#server-binaries-14) + - [Client Binaries](#client-binaries-16) + - [Server Binaries](#server-binaries-16) - [Changelog since v1.7.0-alpha.1](#changelog-since-v170-alpha1) - [Action Required](#action-required-5) - - [Other notable changes](#other-notable-changes-14) + - [Other notable changes](#other-notable-changes-16) - [v1.7.0-alpha.1](#v170-alpha1) - [Downloads for v1.7.0-alpha.1](#downloads-for-v170-alpha1) - - [Client Binaries](#client-binaries-15) - - [Server Binaries](#server-binaries-15) + - [Client Binaries](#client-binaries-17) + - [Server Binaries](#server-binaries-17) - [Changelog since v1.6.0](#changelog-since-v160) - - [Other notable changes](#other-notable-changes-15) + - [Other notable changes](#other-notable-changes-17) +# v1.7.10 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.7/examples) + +## Downloads for v1.7.10 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes.tar.gz) | `a4a4e63576f25cfc3b1f5be2a74c992f42caca75adace41db1edf4d692c478c5` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-src.tar.gz) | `0592c01139e1d056fede2eaca1c957d2dfd8c907939e2e20846a819ede07c7ad` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-darwin-386.tar.gz) | `2b55ee1675ead0825a866653c609354eaedb3ef9254bc1625c1b9fada35070b5` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-darwin-amd64.tar.gz) | `b63a89d0ac4452c5f05a3836962809a80fb1a8a97a2d42d67fcbb587d608acca` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-linux-386.tar.gz) | `3d3d5721469adcf6eac9b581c2bed2c7d16b9994ae6f367a24f9b89380bfa864` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-linux-amd64.tar.gz) | `5c9bbfe045ecc4725a258d6b854ef799f841f62e02fbee5e8fdc6918c86f282e` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-linux-arm64.tar.gz) | `c835369962b05aa22b9304a49050986242a23a56a1b0aa5162fc77dd5202ad78` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-linux-arm.tar.gz) | `3c67b7088803bd2de4ecc933c70e29e1cf67aff98bc5bd6b6a8bc06df94248a1` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-linux-ppc64le.tar.gz) | `eecb107511eadd50f2757cac63ec09dd103ffcd5e03b6d6d9b8a91e45a8d6710` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-linux-s390x.tar.gz) | `711941d5eb230e483c1fba7337d4175fc9e390469f0870dc2cc9e7bafc39058e` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-windows-386.tar.gz) | `3ba41679dd6d7c3925e24036b583b061ae706dab65b540818aa533fc3a658aeb` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-client-windows-amd64.tar.gz) | `c1e10d051de9ad569d32f66b6df238c111fac153299a8bb3b76cf7bf6787ed68` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-server-linux-amd64.tar.gz) | `636cfbe99af340e7d3c067253698c1e531f22a37035f41c535e27f4cde9b74bf` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-server-linux-arm64.tar.gz) | `16a8a2b61b0e10da3950feb1226849f3c73990414f350121ccecccf625b943ff` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-server-linux-arm.tar.gz) | `5719656a79f1f28c9b100e2dc863144e8d1e9b8bcc11e2f42387544ca4d8c02f` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-server-linux-ppc64le.tar.gz) | `a5997050ce825e48aae5604b348f68d9ef2fec42db26ee1e8eebc48a795fcbfd` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-server-linux-s390x.tar.gz) | `6834c4a3c81484c835221bc17bb0df76c153bdabefc7b6fd6b26969df5f34d6f` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-node-linux-amd64.tar.gz) | `2946cd7f7b2f6be9bd5c416fe8048ea2371f2aad60c974d154a8a9078ccf6e2b` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-node-linux-arm64.tar.gz) | `fad120efc9474d18ea8e45addb2291c9a3a1649da05722889bc087fe1e0a8e06` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-node-linux-arm.tar.gz) | `a8c339b7308738c6b7dd021c294eeffee28c1fc7c3e4619779bc8f9f61af09ad` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-node-linux-ppc64le.tar.gz) | `360fc062e935313020b98cc8e04ce3cf26401c046ab96783d404da598e54baa8` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-node-linux-s390x.tar.gz) | `82808a27b89638ea77816b05629a2dbcb3a22da7b140f834c813980260f6cc7c` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.7.10/kubernetes-node-windows-amd64.tar.gz) | `420d525a25d28059aa4e938d8b8043242d7ebdf1e4ad9ae27e7260064fec4b51` + +## Changelog since v1.7.9 + +### Other notable changes + +* Fix for service controller so that it won't retry on doNotRetry service update failure. ([#54184](https://github.com/kubernetes/kubernetes/pull/54184), [@MrHohn](https://github.com/MrHohn)) +* [fluentd-gcp addon] Fluentd now runs in its own network, not in the host one. ([#54395](https://github.com/kubernetes/kubernetes/pull/54395), [@crassirostris](https://github.com/crassirostris)) +* fix azure disk mount failure on coreos and some other distros ([#54334](https://github.com/kubernetes/kubernetes/pull/54334), [@andyzhangx](https://github.com/andyzhangx)) +* Update busybox image link to gcr.io for kube-proxy. ([#53818](https://github.com/kubernetes/kubernetes/pull/53818), [@MrHohn](https://github.com/MrHohn)) +* Restores the ability to apply network policy objects against the networking.k8s.io/v1 API ([#54106](https://github.com/kubernetes/kubernetes/pull/54106), [@liggitt](https://github.com/liggitt)) +* Allow for configuring etcd hostname in the manifest ([#54403](https://github.com/kubernetes/kubernetes/pull/54403), [@wojtek-t](https://github.com/wojtek-t)) +* fix a bug where disk pressure could trigger prematurely when using overlay2 ([#53684](https://github.com/kubernetes/kubernetes/pull/53684), [@dashpole](https://github.com/dashpole)) + + + +# v1.7.9 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.7/examples) + +## Downloads for v1.7.9 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes.tar.gz) | `8c7c16c137c421cfe27311aba0fea49411ed725d3d41938706474c328647afcc` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-src.tar.gz) | `eb2d967731d20b2f42787400fd9114ebd40c2722f3afd7ebb232324d2e66815e` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-darwin-386.tar.gz) | `930e24595a8cf87f65d0cbee6f033f8c441a64da86cdc22ad9d31cd5e0496928` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-darwin-amd64.tar.gz) | `59c10f48351347821216d1cb9726db0b31868cd5e059814a5154dfdeb36548e1` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-linux-386.tar.gz) | `3a7e20a3d45eab69bd8a6c9572ecd98f50499b1880882c0e78c8cdd726046802` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-linux-amd64.tar.gz) | `ac530a89b701669df889c7d5e34c7c5ba0b1c231e45fd9a1ff441d807d0fba8f` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-linux-arm64.tar.gz) | `cdad0b14762b01aac8820e41cb89b850b1dc8d539ac892ca9f718d9e00e8505e` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-linux-arm.tar.gz) | `11c1bb76f2fc7fa9038d1d8687df857a231bd8a44b00d3f3bfef277b44e1c604` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-linux-ppc64le.tar.gz) | `e7ed462fb6d86b1205ca9c4701b521d80b9c614fb98ca3a75579d18835303f7f` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-linux-s390x.tar.gz) | `7aff3b2d0540c3efd53d383dc87d95b62b4203933bd154f66e167fffa5dd0d72` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-windows-386.tar.gz) | `45f64fae0368f80bff7f11fafcce4ccc5c79876cb496481fbcdb35fd5aa85a49` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-client-windows-amd64.tar.gz) | `f7c34d11b35424fe96e1477a9347618169b911d4ecc57f00945f63d5cef53968` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-server-linux-amd64.tar.gz) | `9b94e2b1c13dd3304aa36d0800f88a86d1c335a2b56de8a69d67f50c6f08d0ad` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-server-linux-arm64.tar.gz) | `2c5cb85515137f58ddc475963cd42cd69a881b2269724e0c5237b365644974db` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-server-linux-arm.tar.gz) | `e62d8e234bc31d8dd4c88b28261445f4bc00e9e19795c57f7e72da91c037b6cd` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-server-linux-ppc64le.tar.gz) | `b59c47ff865c4f21da816500d1013e5bab71bcb2ed214ceb022395eb6d729634` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-server-linux-s390x.tar.gz) | `2c057b4dcfd40457fb5ee7d692239b702b61c17a9cc095ecd2a65ac553e4d2d7` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-node-linux-amd64.tar.gz) | `e92e3deb34ce06b11b667027ddd9753f8c3149996320bb9dd3555d758775e60d` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-node-linux-arm64.tar.gz) | `96bf63c7ba4a322ec21b22c3fa3f37c713aa846bdde311bc7a52df8abc7ef291` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-node-linux-arm.tar.gz) | `4274d183d002c57cf6fff21ba71cdb69121f520ae77c913013adb92f7efee2a6` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-node-linux-ppc64le.tar.gz) | `8c9a7ef4141dc59be1b613b461ca8e16612c5d36ca9cd1b9fbb92f35f02e63f1` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-node-linux-s390x.tar.gz) | `14314c3c958bf4b966bc6960495271412019973834e9ca427bcedb1bd51c787f` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.7.9/kubernetes-node-windows-amd64.tar.gz) | `a20e882b046f95ebb6c94f87aee99b27d43422ea5e09b48fa67aa4926b2edbfe` + +## Changelog since v1.7.8 + +### Other notable changes + +* Support German cloud for azure disk mount feature ([#50673](https://github.com/kubernetes/kubernetes/pull/50673), [@clement-buchart](https://github.com/clement-buchart)) +* BugFix: Exited containers are not Garbage Collected by the kubelet while the pod is running ([#53167](https://github.com/kubernetes/kubernetes/pull/53167), [@dashpole](https://github.com/dashpole)) +* Address a bug which allowed the horizontal pod autoscaler to allocate `desiredReplicas` > `maxReplicas` in certain instances. ([#53690](https://github.com/kubernetes/kubernetes/pull/53690), [@mattjmcnaughton](https://github.com/mattjmcnaughton)) +* Use separate client for leader election in scheduler to avoid starving leader election by regular scheduler operations. ([#53793](https://github.com/kubernetes/kubernetes/pull/53793), [@wojtek-t](https://github.com/wojtek-t)) +* fix azure disk mounter issue ([#52260](https://github.com/kubernetes/kubernetes/pull/52260), [@andyzhangx](https://github.com/andyzhangx)) +* GCE: Fix issue deleting internal load balancers when the firewall resource may not exist. ([#53450](https://github.com/kubernetes/kubernetes/pull/53450), [@nicksardo](https://github.com/nicksardo)) +* Fix compilation of k8s.io/apiextensions-apiserver ([#48036](https://github.com/kubernetes/kubernetes/pull/48036), [@hongchaodeng](https://github.com/hongchaodeng)) + + # v1.7.8 [Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.7/examples) @@ -521,8 +658,8 @@ filename | sha256 hash * Fix an issue where if a CSR is not approved initially by the SAR approver is not retried. ([#49788](https://github.com/kubernetes/kubernetes/pull/49788), [@mikedanese](https://github.com/mikedanese)) * Cluster Autoscaler - fixes issues with taints and updates kube-proxy cpu request. ([#50514](https://github.com/kubernetes/kubernetes/pull/50514), [@mwielgus](https://github.com/mwielgus)) * Bumped Heapster version to 1.4.1: ([#50642](https://github.com/kubernetes/kubernetes/pull/50642), [@piosz](https://github.com/piosz)) - * - handle gracefully problem when kubelet reports duplicated stats for the same container (see [#47853](https://github.com/kubernetes/kubernetes/pull/47853)) on Heapster side - * - fixed bugs and improved performance in Stackdriver Sink + * handle gracefully problem when kubelet reports duplicated stats for the same container (see [#47853](https://github.com/kubernetes/kubernetes/pull/47853)) on Heapster side + * fixed bugs and improved performance in Stackdriver Sink * fluentd-gcp addon: Fix a bug in the event-exporter, when repeated events were not sent to Stackdriver. ([#50511](https://github.com/kubernetes/kubernetes/pull/50511), [@crassirostris](https://github.com/crassirostris)) * Collect metrics from Heapster in Stackdriver mode. ([#50517](https://github.com/kubernetes/kubernetes/pull/50517), [@piosz](https://github.com/piosz)) * fixes a bug around using the Global config ElbSecurityGroup where Kuberentes would modify the passed in Security Group. ([#49805](https://github.com/kubernetes/kubernetes/pull/49805), [@nbutton23](https://github.com/nbutton23)) @@ -2337,20 +2474,20 @@ filename | sha256 hash * Ensure that autoscaling/v1 is the preferred version for API discovery when autoscaling/v2alpha1 is enabled. ([#45741](https://github.com/kubernetes/kubernetes/pull/45741), [@DirectXMan12](https://github.com/DirectXMan12)) * Promotes Source IP preservation for Virtual IPs to GA. ([#41162](https://github.com/kubernetes/kubernetes/pull/41162), [@MrHohn](https://github.com/MrHohn)) * Two api fields are defined correspondingly: - * - Service.Spec.ExternalTrafficPolicy <- 'service.beta.kubernetes.io/external-traffic' annotation. - * - Service.Spec.HealthCheckNodePort <- 'service.beta.kubernetes.io/healthcheck-nodeport' annotation. + * Service.Spec.ExternalTrafficPolicy <- 'service.beta.kubernetes.io/external-traffic' annotation. + * Service.Spec.HealthCheckNodePort <- 'service.beta.kubernetes.io/healthcheck-nodeport' annotation. * Fix pods failing to start if they specify a file as a volume subPath to mount. ([#45623](https://github.com/kubernetes/kubernetes/pull/45623), [@wongma7](https://github.com/wongma7)) * the resource quota controller was not adding quota to be resynced at proper interval ([#45685](https://github.com/kubernetes/kubernetes/pull/45685), [@derekwaynecarr](https://github.com/derekwaynecarr)) * Marks the Kubelet's --master-service-namespace flag deprecated ([#44250](https://github.com/kubernetes/kubernetes/pull/44250), [@mtaufen](https://github.com/mtaufen)) * fluentd will tolerate all NoExecute Taints when run in gcp configuration. ([#45715](https://github.com/kubernetes/kubernetes/pull/45715), [@gmarek](https://github.com/gmarek)) * Added Group/Version/Kind and Action extension to OpenAPI Operations ([#44787](https://github.com/kubernetes/kubernetes/pull/44787), [@mbohlool](https://github.com/mbohlool)) * Updates kube-dns to 1.14.2 ([#45684](https://github.com/kubernetes/kubernetes/pull/45684), [@bowei](https://github.com/bowei)) - * - Support kube-master-url flag without kubeconfig - * - Fix concurrent R/Ws in dns.go - * - Fix confusing logging when initialize server - * - Fix printf in cmd/kube-dns/app/server.go - * - Fix version on startup and --version flag - * - Support specifying port number for nameserver in stubDomains + * Support kube-master-url flag without kubeconfig + * Fix concurrent R/Ws in dns.go + * Fix confusing logging when initialize server + * Fix printf in cmd/kube-dns/app/server.go + * Fix version on startup and --version flag + * Support specifying port number for nameserver in stubDomains * detach the volume when pod is terminated ([#45286](https://github.com/kubernetes/kubernetes/pull/45286), [@gnufied](https://github.com/gnufied)) * Don't append :443 to registry domain in the kubernetes-worker layer registry action ([#45550](https://github.com/kubernetes/kubernetes/pull/45550), [@jacekn](https://github.com/jacekn)) * vSphere cloud provider: Fix volume detach on node failure. ([#45569](https://github.com/kubernetes/kubernetes/pull/45569), [@divyenpatel](https://github.com/divyenpatel)) @@ -2472,9 +2609,9 @@ filename | sha256 hash * `zone` is the target zone (Will be "" if not applicable) * Note: this fixes some issues with the previous implementation of * metrics for disks: - * - Time duration tracked was of the initial API call, not the entire + * Time duration tracked was of the initial API call, not the entire * operation. - * - Metrics label tuple would have resulted in many independent + * Metrics label tuple would have resulted in many independent * histograms stored, one for each disk. (Did not aggregate well). * Update kubernetes-e2e charm to use snaps ([#45044](https://github.com/kubernetes/kubernetes/pull/45044), [@Cynerva](https://github.com/Cynerva)) * Log the error (if any) in e2e metrics gathering step ([#45039](https://github.com/kubernetes/kubernetes/pull/45039), [@shyamjvs](https://github.com/shyamjvs)) diff --git a/vendor/k8s.io/kubernetes/CHANGELOG-1.8.md b/vendor/k8s.io/kubernetes/CHANGELOG-1.8.md index 38dc2f575..8c8193b4a 100644 --- a/vendor/k8s.io/kubernetes/CHANGELOG-1.8.md +++ b/vendor/k8s.io/kubernetes/CHANGELOG-1.8.md @@ -1,17 +1,31 @@ -- [v1.8.1](#v181) - - [Downloads for v1.8.1](#downloads-for-v181) +- [v1.8.3](#v183) + - [Downloads for v1.8.3](#downloads-for-v183) - [Client Binaries](#client-binaries) - [Server Binaries](#server-binaries) - [Node Binaries](#node-binaries) - - [Changelog since v1.8.0](#changelog-since-v180) - - [Action Required](#action-required) + - [Changelog since v1.8.2](#changelog-since-v182) - [Other notable changes](#other-notable-changes) -- [v1.8.0](#v180) - - [Downloads for v1.8.0](#downloads-for-v180) +- [v1.8.2](#v182) + - [Downloads for v1.8.2](#downloads-for-v182) - [Client Binaries](#client-binaries-1) - [Server Binaries](#server-binaries-1) - [Node Binaries](#node-binaries-1) + - [Changelog since v1.8.1](#changelog-since-v181) + - [Other notable changes](#other-notable-changes-1) +- [v1.8.1](#v181) + - [Downloads for v1.8.1](#downloads-for-v181) + - [Client Binaries](#client-binaries-2) + - [Server Binaries](#server-binaries-2) + - [Node Binaries](#node-binaries-2) + - [Changelog since v1.8.0](#changelog-since-v180) + - [Action Required](#action-required) + - [Other notable changes](#other-notable-changes-2) +- [v1.8.0](#v180) + - [Downloads for v1.8.0](#downloads-for-v180) + - [Client Binaries](#client-binaries-3) + - [Server Binaries](#server-binaries-3) + - [Node Binaries](#node-binaries-3) - [Introduction to v1.8.0](#introduction-to-v180) - [Major Themes](#major-themes) - [SIG API Machinery](#sig-api-machinery) @@ -45,8 +59,8 @@ - [Scheduling](#scheduling-1) - [Storage](#storage) - [Cluster Federation](#cluster-federation) - - [[alpha] Federated Jobs](#[alpha]-federated-jobs) - - [[alpha] Federated Horizontal Pod Autoscaling (HPA)](#[alpha]-federated-horizontal-pod-autoscaling-hpa) + - [[alpha] Federated Jobs](#alpha-federated-jobs) + - [[alpha] Federated Horizontal Pod Autoscaling (HPA)](#alpha-federated-horizontal-pod-autoscaling-hpa) - [Node Components](#node-components) - [Autoscaling and Metrics](#autoscaling-and-metrics) - [Cluster Autoscaler](#cluster-autoscaler) @@ -72,49 +86,201 @@ - [External Dependencies](#external-dependencies) - [v1.8.0-rc.1](#v180-rc1) - [Downloads for v1.8.0-rc.1](#downloads-for-v180-rc1) - - [Client Binaries](#client-binaries-2) - - [Server Binaries](#server-binaries-2) - - [Node Binaries](#node-binaries-2) + - [Client Binaries](#client-binaries-4) + - [Server Binaries](#server-binaries-4) + - [Node Binaries](#node-binaries-4) - [Changelog since v1.8.0-beta.1](#changelog-since-v180-beta1) - [Action Required](#action-required-1) - - [Other notable changes](#other-notable-changes-1) + - [Other notable changes](#other-notable-changes-3) - [v1.8.0-beta.1](#v180-beta1) - [Downloads for v1.8.0-beta.1](#downloads-for-v180-beta1) - - [Client Binaries](#client-binaries-3) - - [Server Binaries](#server-binaries-3) - - [Node Binaries](#node-binaries-3) + - [Client Binaries](#client-binaries-5) + - [Server Binaries](#server-binaries-5) + - [Node Binaries](#node-binaries-5) - [Changelog since v1.8.0-alpha.3](#changelog-since-v180-alpha3) - [Action Required](#action-required-2) - - [Other notable changes](#other-notable-changes-2) + - [Other notable changes](#other-notable-changes-4) - [v1.8.0-alpha.3](#v180-alpha3) - [Downloads for v1.8.0-alpha.3](#downloads-for-v180-alpha3) - - [Client Binaries](#client-binaries-4) - - [Server Binaries](#server-binaries-4) - - [Node Binaries](#node-binaries-4) + - [Client Binaries](#client-binaries-6) + - [Server Binaries](#server-binaries-6) + - [Node Binaries](#node-binaries-6) - [Changelog since v1.8.0-alpha.2](#changelog-since-v180-alpha2) - [Action Required](#action-required-3) - - [Other notable changes](#other-notable-changes-3) + - [Other notable changes](#other-notable-changes-5) - [v1.8.0-alpha.2](#v180-alpha2) - [Downloads for v1.8.0-alpha.2](#downloads-for-v180-alpha2) - - [Client Binaries](#client-binaries-5) - - [Server Binaries](#server-binaries-5) - - [Node Binaries](#node-binaries-5) + - [Client Binaries](#client-binaries-7) + - [Server Binaries](#server-binaries-7) + - [Node Binaries](#node-binaries-7) - [Changelog since v1.7.0](#changelog-since-v170) - [Action Required](#action-required-4) - - [Other notable changes](#other-notable-changes-4) + - [Other notable changes](#other-notable-changes-6) - [v1.8.0-alpha.1](#v180-alpha1) - [Downloads for v1.8.0-alpha.1](#downloads-for-v180-alpha1) - - [Client Binaries](#client-binaries-6) - - [Server Binaries](#server-binaries-6) - - [Node Binaries](#node-binaries-6) + - [Client Binaries](#client-binaries-8) + - [Server Binaries](#server-binaries-8) + - [Node Binaries](#node-binaries-8) - [Changelog since v1.7.0-alpha.4](#changelog-since-v170-alpha4) - [Action Required](#action-required-5) - - [Other notable changes](#other-notable-changes-5) + - [Other notable changes](#other-notable-changes-7) +# v1.8.3 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.8/examples) + +## Downloads for v1.8.3 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes.tar.gz) | `86a565d47afb2b4440a3d706e24b9590225e576f1aee1d0117f6a82c13a7ca1a` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-src.tar.gz) | `3fa0d5f87f92004297f17ed9791a9c309c6ed6958bbd4df6e3de5da640d35c25` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-darwin-386.tar.gz) | `e85d9804e14c0acc3f9e71a03e0ea10fc4848c94bb0fed56776d8137b71f70d7` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-darwin-amd64.tar.gz) | `2095e610c6b838a51ef054175794a9fe2436b02c1c4f36dfe4ac7b6ea77a59e5` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-linux-386.tar.gz) | `970764b73734809daf11337ced1f71708a8be15573fa6c68dcf2a12b70820640` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-linux-amd64.tar.gz) | `8796ce36f2f59e34e9bd7e788bc23076ccc8371a79535443b6105a9aae544c2a` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-linux-arm64.tar.gz) | `94a5ce6fea8ce9d3e3b726f79820d3c85d87322687ff9b97f5bbc0d28f41816b` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-linux-arm.tar.gz) | `6ff7bdabf7a5ff01d9f0d03d991c9dcd11503cf5c7b1ead5a9103ebf6f6dc2a1` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-linux-ppc64le.tar.gz) | `000b8c1138e3074d6880bf3eb0b2ed5c6db8c6fba4792dba720c489cf2f82b58` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-linux-s390x.tar.gz) | `c77de362e41606c2fa7757cdf47c95e0dce6dc448017a8b9550f7bab9eb52cca` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-windows-386.tar.gz) | `3a7561fb0e90add10b286e738ec369987a1bc4750ccf05d00dc0e4fd735b86e1` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-client-windows-amd64.tar.gz) | `0e1bc781f607cf580696b929a9e40805701ebf25f8b166ec7687de46eb417011` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-server-linux-amd64.tar.gz) | `557c231a63f5975d08565dd690381bd63d9db14528da07c7e86305a82fbd9c8b` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-server-linux-arm64.tar.gz) | `b1c2cbe6a308df51815c98f93a1ec5e8e5be390ae1e4c31ab7c03c581e8442f2` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-server-linux-arm.tar.gz) | `db5cb69166b482bc705f56a4b50fbe1c553dcbcf83c569bef2828ec70c94fa36` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-server-linux-ppc64le.tar.gz) | `aca313f74aa682e9ced1b3f238fd6b03795d6a2f12a6604481fafe9756f88c82` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-server-linux-s390x.tar.gz) | `42e7cc141555ffa7a7653de5065715164817c7b096d13b58b7770a6b66283b39` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-node-linux-amd64.tar.gz) | `6035027a39fd8cac6de9f33efcb929300798a5601b0c2ca0569baaf18ce12559` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-node-linux-arm64.tar.gz) | `495ebf4885af7896cf28fbd6988bd954d576bee99ba815e6e741a0c407bae92a` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-node-linux-arm.tar.gz) | `d1c0595f086a1a2c9c73ee556750db3e7485c3e75f9496214313f935ad6d0350` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-node-linux-ppc64le.tar.gz) | `2b036ca22970d9dcb6b80da45f3ecaeb6b1e78b4474718a8581d2f987779c3fa` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-node-linux-s390x.tar.gz) | `f936cbfe0f2888a25620c8fe21b297459dd235044f1587f02456921be458d5ff` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.8.3/kubernetes-node-windows-amd64.tar.gz) | `b913fb8267c545db77c0c43234c773043031c7564cc745e61842f58277041c58` + +## Changelog since v1.8.2 + +### Other notable changes + +* Fixed 'Schedulercache is corrupted' error in kube-scheduler ([#55262](https://github.com/kubernetes/kubernetes/pull/55262), [@liggitt](https://github.com/liggitt)) +* Add support for PodSecurityPolicy on GCE: `ENABLE_POD_SECURITY_POLICY=true` enables the admission controller, and installs policies for default addons. ([#52367](https://github.com/kubernetes/kubernetes/pull/52367), [@tallclair](https://github.com/tallclair)) +* Azure cloudprovider: Fix controller manager crash issue on a manually created k8s cluster. ([#53694](https://github.com/kubernetes/kubernetes/pull/53694), [@andyzhangx](https://github.com/andyzhangx)) +* Cluster Autoscaler 1.0.2 ([#55161](https://github.com/kubernetes/kubernetes/pull/55161), [@mwielgus](https://github.com/mwielgus)) +* - fluentd-gcp runs with a dedicated fluentd-gcp service account ([#54175](https://github.com/kubernetes/kubernetes/pull/54175), [@tallclair](https://github.com/tallclair)) + * - Stop mounting the host certificates into fluentd's prometheus-to-sd container +* Fix a bug where pod address is not removed from endpoints object while pod is in graceful termination. ([#54828](https://github.com/kubernetes/kubernetes/pull/54828), [@freehan](https://github.com/freehan)) +* fix warning messages due to GetMountRefs func not implemented in windows ([#52401](https://github.com/kubernetes/kubernetes/pull/52401), [@andyzhangx](https://github.com/andyzhangx)) +* allow windows mount path ([#51240](https://github.com/kubernetes/kubernetes/pull/51240), [@andyzhangx](https://github.com/andyzhangx)) +* Reduce log noise produced by prometheus-to-sd, by bumping it to version 0.2.2. ([#54635](https://github.com/kubernetes/kubernetes/pull/54635), [@loburm](https://github.com/loburm)) +* Fix clustered datastore name to be absolute. ([#54438](https://github.com/kubernetes/kubernetes/pull/54438), [@pshahzeb](https://github.com/pshahzeb)) +* Fix `kubeadm upgrade plan` for offline operation: ignore errors when trying to fetch latest versions from dl.k8s.io ([#54016](https://github.com/kubernetes/kubernetes/pull/54016), [@praseodym](https://github.com/praseodym)) +* Add openssh-client back into the hyperkube image. This allows the gitRepo volume plugin to work properly. ([#54250](https://github.com/kubernetes/kubernetes/pull/54250), [@ixdy](https://github.com/ixdy)) +* Fix an issue where pods were briefly transitioned to a "Pending" state during the deletion process. ([#54593](https://github.com/kubernetes/kubernetes/pull/54593), [@dashpole](https://github.com/dashpole)) +* Add a label which prevents a node from being added to a cloud load balancer ([#53146](https://github.com/kubernetes/kubernetes/pull/53146), [@brendandburns](https://github.com/brendandburns)) +* Add a new feature gate for enabling an alpha annotation which, if present, excludes the annotated node from being added to a service load balancers. ([#54644](https://github.com/kubernetes/kubernetes/pull/54644), [@brendandburns](https://github.com/brendandburns)) +* Support German cloud for azure disk mount feature ([#50673](https://github.com/kubernetes/kubernetes/pull/50673), [@clement-buchart](https://github.com/clement-buchart)) +* Fix overlay2 container disk metrics for Docker and CRI-O ([#54827](https://github.com/kubernetes/kubernetes/pull/54827), [@dashpole](https://github.com/dashpole)) +* API machinery's httpstream/spdy calls now support CIDR notation for NO_PROXY ([#54413](https://github.com/kubernetes/kubernetes/pull/54413), [@kad](https://github.com/kad)) +* fix a bug where disk pressure could trigger prematurely when using overlay2 ([#53684](https://github.com/kubernetes/kubernetes/pull/53684), [@dashpole](https://github.com/dashpole)) +* PodSecurityPolicy: when multiple policies allow a submitted pod, priority is given to ones which do not require any fields in the pod spec to be defaulted. If the pod must be defaulted, the first policy (ordered by name) that allows the pod is used. ([#52849](https://github.com/kubernetes/kubernetes/pull/52849), [@liggitt](https://github.com/liggitt)) +* Fixes discovery information for scale subresources in the apps API group ([#54683](https://github.com/kubernetes/kubernetes/pull/54683), [@liggitt](https://github.com/liggitt)) +* BugFix: Exited containers are not Garbage Collected by the kubelet while the pod is running ([#53167](https://github.com/kubernetes/kubernetes/pull/53167), [@dashpole](https://github.com/dashpole)) +* fix azure pv crash due to volumeSource.ReadOnly value nil ([#54607](https://github.com/kubernetes/kubernetes/pull/54607), [@andyzhangx](https://github.com/andyzhangx)) +* kubeadm init: fix a bug that prevented the --token-ttl flag and tokenTTL configuration value from working as expected for infinite (0) values. ([#54640](https://github.com/kubernetes/kubernetes/pull/54640), [@mattmoyer](https://github.com/mattmoyer)) +* [fluentd-gcp addon] Fluentd now runs in its own network, not in the host one. ([#54395](https://github.com/kubernetes/kubernetes/pull/54395), [@crassirostris](https://github.com/crassirostris)) +* fix azure disk mount failure on coreos and some other distros ([#54334](https://github.com/kubernetes/kubernetes/pull/54334), [@andyzhangx](https://github.com/andyzhangx)) +* Fix for service controller so that it won't retry on doNotRetry service update failure. ([#54184](https://github.com/kubernetes/kubernetes/pull/54184), [@MrHohn](https://github.com/MrHohn)) +* BulkVerifyVolumes() implementation for vSphere ([#52131](https://github.com/kubernetes/kubernetes/pull/52131), [@BaluDontu](https://github.com/BaluDontu)) +* Added option lb-provider to OpenStack cloud provider config ([#54176](https://github.com/kubernetes/kubernetes/pull/54176), [@gonzolino](https://github.com/gonzolino)) + + + +# v1.8.2 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.8/examples) + +## Downloads for v1.8.2 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes.tar.gz) | `06a800c414e776640a7861baa4f0b6edbd898c13ad3ebcd33860fe5d949bbdee` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-src.tar.gz) | `fbfb65a4eb1ddff32e302a0821204fa780ebb5b27298e31699c43c19da48191e` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-darwin-386.tar.gz) | `3eb81f1178ff73ca683738606acea1d9537a33c6e3d15571795a24af6c53dbd7` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-darwin-amd64.tar.gz) | `15da279f018a73f93b857639931c4ba8a714c86e5c5738c33840c47df44ac2a4` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-linux-386.tar.gz) | `bd9f144e6ddfc715fa77d9cb0310763e49f8121e894ed33714658fb2d6eb2675` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-linux-amd64.tar.gz) | `7c20d4a3859c07aadf9a1676876bafdf56187478a69d3bfca5277fb275febb96` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-linux-arm64.tar.gz) | `395c3fb5992509191cacbaf6e7ed4fd0fbee5c0b9c890f496879784454f88aa3` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-linux-arm.tar.gz) | `a1cff2f8ab5f77f000e20f87b00a3723a8323fec82926afcc984722ab3f8d714` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-linux-ppc64le.tar.gz) | `832a1e399802bfd8871cd911f17dbb6b2264680e9477c2944d442a3f9e5fa6f2` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-linux-s390x.tar.gz) | `6afc2c4a331ee70e095a6d1e1f11bf69923afb1830840d110459e32b849b1b6c` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-windows-386.tar.gz) | `ecaadb5a4c08357685dbaee288d1220bd60ff0f86281ec88a5467da6eebf213b` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-client-windows-amd64.tar.gz) | `b8ff337615f740b1501cf7284d7f0a51a82880dcf23fff2464f8d37045c27f3f` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-server-linux-amd64.tar.gz) | `8ccd4912473e0d334694434936a5ca9547caddaa39d771a1fb94620c5d6002d4` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-server-linux-arm64.tar.gz) | `39b3c61927c905f142d74fe69391156e6bf61cc5e7a798cdf2c295a76e72161d` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-server-linux-arm.tar.gz) | `fc6b01b233f8d0c61dd485d8d571c9a2e1a5b085f0d0db734a84c42b71416537` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-server-linux-ppc64le.tar.gz) | `6f6d8dcef0334736021d9f6cc2bbfdb78500483f8961e7ff14b09f1c67d37056` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-server-linux-s390x.tar.gz) | `6f1b6b5fb818fdb787cdf65ff3da81235b5b4db5b4a9b5579920d11dc8a3fa73` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-node-linux-amd64.tar.gz) | `93c6b5d2a5e4aaf8776f56e5b8f40038c76d3d03709124fb8900f83acb49c782` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-node-linux-arm64.tar.gz) | `ab4535e19825e0e9b76987dbb11d9fd746281e45a90f90b453dbc7d6fecb2c69` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-node-linux-arm.tar.gz) | `96acd6ec41d4a3ec7ea6f95acecf116755340915e3d261de760d9ed84708e3f0` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-node-linux-ppc64le.tar.gz) | `4256a8c315de083435fcdfc8ee2ae370bd603fa976218edadbf7bfe11adcf223` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-node-linux-s390x.tar.gz) | `30f2254bf442fc36fc23bd962930eb48fd000c9ffce81c26c0d64d4a0fd0c193` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.8.2/kubernetes-node-windows-amd64.tar.gz) | `b92c2670ce8dd75f744537abb6e98df84ce5a18da7df6b70741e92d9e57098bf` + +## Changelog since v1.8.1 + +### Other notable changes + +* Allow for configuring etcd hostname in the manifest ([#54403](https://github.com/kubernetes/kubernetes/pull/54403), [@wojtek-t](https://github.com/wojtek-t)) +* Allow standard flags in client-gen. ([#53999](https://github.com/kubernetes/kubernetes/pull/53999), [@sttts](https://github.com/sttts)) +* Cluster Autoscaler 1.0.1 ([#54298](https://github.com/kubernetes/kubernetes/pull/54298), [@mwielgus](https://github.com/mwielgus)) +* Resolves forbidden error when accessing replicasets and daemonsets via the apps API group ([#54309](https://github.com/kubernetes/kubernetes/pull/54309), [@liggitt](https://github.com/liggitt)) +* kubelet: prevent removal of default labels from Node API objects on startup ([#54073](https://github.com/kubernetes/kubernetes/pull/54073), [@liggitt](https://github.com/liggitt)) +* Fix a bug that prevents client-go metrics from being registered in prometheus in multiple components. ([#53434](https://github.com/kubernetes/kubernetes/pull/53434), [@crassirostris](https://github.com/crassirostris)) +* Webhook always retries connection reset error. ([#53947](https://github.com/kubernetes/kubernetes/pull/53947), [@crassirostris](https://github.com/crassirostris)) +* Adjust batching audit webhook default parameters: increase queue size, batch size, and initial backoff. Add throttling to the batching audit webhook. Default rate limit is 10 QPS. ([#53417](https://github.com/kubernetes/kubernetes/pull/53417), [@crassirostris](https://github.com/crassirostris)) +* Address a bug which allowed the horizontal pod autoscaler to allocate `desiredReplicas` > `maxReplicas` in certain instances. ([#53690](https://github.com/kubernetes/kubernetes/pull/53690), [@mattjmcnaughton](https://github.com/mattjmcnaughton)) +* Fix metrics API group name in audit configuration ([#53493](https://github.com/kubernetes/kubernetes/pull/53493), [@piosz](https://github.com/piosz)) +* Use separate client for leader election in scheduler to avoid starving leader election by regular scheduler operations. ([#53793](https://github.com/kubernetes/kubernetes/pull/53793), [@wojtek-t](https://github.com/wojtek-t)) +* kubeadm: Strip bootstrap tokens from the `kubeadm-config` ConfigMap ([#53559](https://github.com/kubernetes/kubernetes/pull/53559), [@fabriziopandini](https://github.com/fabriziopandini)) + + + # v1.8.1 [Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.8/examples) @@ -416,7 +582,7 @@ Consider the following changes, limitations, and guidelines before you upgrade: * The `--audit-policy-file` option is required if the `AdvancedAudit` feature is not explicitly turned off (`--feature-gates=AdvancedAudit=false`) on the API server. * The audit log file defaults to JSON encoding when using the advanced auditing feature gate. - * The `--audit-policy-file` option requires `kind` and `apiVersion` fields specifying what format version the `Policy` is using. + * An audit policy file without either an `apiVersion` or a `kind` field may be treated as invalid. * The webhook and log file now output the `v1beta1` event format. For more details, see [Advanced audit](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#advanced-audit). @@ -526,7 +692,7 @@ This section provides an overview of deprecated API versions, options, flags, an - Enable an out-of-tree cloud provider with `--cloud-provider=external` in either version. - For more information on deprecating auto-detecting cloud providers in kubelet, see [PR [#51312](https://github.com/kubernetes/kubernetes/pull/51312) and [announcement](https://groups.google.com/forum/#!topic/kubernetes-dev/UAxwa2inbTA). + For more information on deprecating auto-detecting cloud providers in kubelet, see PR [#51312](https://github.com/kubernetes/kubernetes/pull/51312) and [announcement](https://groups.google.com/forum/#!topic/kubernetes-dev/UAxwa2inbTA). - The `PersistentVolumeLabel` admission controller in the API server is deprecated. @@ -539,7 +705,7 @@ This section provides an overview of deprecated API versions, options, flags, an ### OpenStack - The `openstack-heat` provider for `kube-up` is deprecated and will be removed - in a future release. Refer to [Issue [#49213](https://github.com/kubernetes/kubernetes/issues/49213) + in a future release. Refer to Issue [#49213](https://github.com/kubernetes/kubernetes/issues/49213) for background information. ### Scheduling @@ -1106,7 +1272,6 @@ filename | sha256 hash * kubeadm: Use the release-1.8 branch by default ([#52085](https://github.com/kubernetes/kubernetes/pull/52085), [@luxas](https://github.com/luxas)) * PersistentVolumeLabel admission controller is now deprecated. ([#52618](https://github.com/kubernetes/kubernetes/pull/52618), [@dims](https://github.com/dims)) * Mark the LBaaS v1 of OpenStack cloud provider deprecated. ([#52821](https://github.com/kubernetes/kubernetes/pull/52821), [@FengyunPan](https://github.com/FengyunPan)) -* NONE ([#52819](https://github.com/kubernetes/kubernetes/pull/52819), [@verult](https://github.com/verult)) * Mark image as deliberately optional in v1 Container struct. Many objects in the Kubernetes API inherit the container struct and only Pods require the field to be set. ([#48406](https://github.com/kubernetes/kubernetes/pull/48406), [@gyliu513](https://github.com/gyliu513)) * [fluentd-gcp addon] Update Stackdriver plugin to version 0.6.7 ([#52565](https://github.com/kubernetes/kubernetes/pull/52565), [@crassirostris](https://github.com/crassirostris)) * Remove duplicate proto errors in kubelet. ([#52132](https://github.com/kubernetes/kubernetes/pull/52132), [@adityadani](https://github.com/adityadani)) @@ -1145,7 +1310,6 @@ filename | sha256 hash * The `kube-cloud-controller-manager` flag `--service-account-private-key-file` was non-functional and is now deprecated. ([#50289](https://github.com/kubernetes/kubernetes/pull/50289), [@liggitt](https://github.com/liggitt)) * The `kube-cloud-controller-manager` flag `--use-service-account-credentials` is now honored consistently, regardless of whether `--service-account-private-key-file` was specified. * Fix credentials providers for docker sandbox image. ([#51870](https://github.com/kubernetes/kubernetes/pull/51870), [@feiskyer](https://github.com/feiskyer)) -* NONE ([#52120](https://github.com/kubernetes/kubernetes/pull/52120), [@abgworrall](https://github.com/abgworrall)) * Fixed an issue looking up cronjobs when they existed in more than one API version ([#52227](https://github.com/kubernetes/kubernetes/pull/52227), [@liggitt](https://github.com/liggitt)) * Add priority-based preemption to the scheduler. ([#50949](https://github.com/kubernetes/kubernetes/pull/50949), [@bsalamat](https://github.com/bsalamat)) * Add CLUSTER_SIGNING_DURATION environment variable to cluster configuration scripts ([#51844](https://github.com/kubernetes/kubernetes/pull/51844), [@jcbsmpsn](https://github.com/jcbsmpsn)) @@ -1492,7 +1656,6 @@ filename | sha256 hash * Make rolling update the default update strategy for v1beta2.DaemonSet and v1beta2.StatefulSet ([#50175](https://github.com/kubernetes/kubernetes/pull/50175), [@foxish](https://github.com/foxish)) * Deprecate Deployment .spec.rollbackTo field ([#49340](https://github.com/kubernetes/kubernetes/pull/49340), [@janetkuo](https://github.com/janetkuo)) * Collect metrics from Heapster in Stackdriver mode. ([#50290](https://github.com/kubernetes/kubernetes/pull/50290), [@piosz](https://github.com/piosz)) -* N/A ([#50179](https://github.com/kubernetes/kubernetes/pull/50179), [@k82cn](https://github.com/k82cn)) * [Federation] HPA controller ([#45993](https://github.com/kubernetes/kubernetes/pull/45993), [@irfanurrehman](https://github.com/irfanurrehman)) * Relax restrictions on environment variable names. ([#48986](https://github.com/kubernetes/kubernetes/pull/48986), [@timoreimann](https://github.com/timoreimann)) * The node condition 'NodeInodePressure' was removed, as kubelet did not report it. ([#50124](https://github.com/kubernetes/kubernetes/pull/50124), [@k82cn](https://github.com/k82cn)) diff --git a/vendor/k8s.io/kubernetes/CHANGELOG-1.9.md b/vendor/k8s.io/kubernetes/CHANGELOG-1.9.md index 28e2f2b5f..6003d3de6 100644 --- a/vendor/k8s.io/kubernetes/CHANGELOG-1.9.md +++ b/vendor/k8s.io/kubernetes/CHANGELOG-1.9.md @@ -1,17 +1,286 @@ -- [v1.9.0-alpha.1](#v190-alpha1) - - [Downloads for v1.9.0-alpha.1](#downloads-for-v190-alpha1) +- [v1.9.0-alpha.2](#v190-alpha2) + - [Downloads for v1.9.0-alpha.2](#downloads-for-v190-alpha2) - [Client Binaries](#client-binaries) - [Server Binaries](#server-binaries) - [Node Binaries](#node-binaries) - - [Changelog since v1.8.0-alpha.3](#changelog-since-v180-alpha3) + - [Changelog since v1.8.0](#changelog-since-v180) - [Action Required](#action-required) - [Other notable changes](#other-notable-changes) +- [v1.9.0-alpha.1](#v190-alpha1) + - [Downloads for v1.9.0-alpha.1](#downloads-for-v190-alpha1) + - [Client Binaries](#client-binaries-1) + - [Server Binaries](#server-binaries-1) + - [Node Binaries](#node-binaries-1) + - [Changelog since v1.8.0-alpha.3](#changelog-since-v180-alpha3) + - [Action Required](#action-required-1) + - [Other notable changes](#other-notable-changes-1) +# v1.9.0-alpha.2 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/master/examples) + +## Downloads for v1.9.0-alpha.2 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes.tar.gz) | `9d548271e8475171114b3b68323ab3c0e024cf54e25debe4702ffafe3f1d0952` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-src.tar.gz) | `99901fa7f996ddf75ecab7fcd1d33a3faca38e9d1398daa2ae30c9b3ac6a71ce` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-darwin-386.tar.gz) | `5a5e1ce20db98d7f7f0c88957440ab6c7d4b4a4dfefcb31dcd1d6546e9db01d6` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-darwin-amd64.tar.gz) | `094481f8f650321f39ba79cd6348de5052db2bb3820f55a74cf5ce33d5c98701` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-linux-386.tar.gz) | `9a7d8e682a35772ba24bd3fa7a06fb153067b9387daa4db285e15dda75de757d` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-linux-amd64.tar.gz) | `3bb742ffed1a6a51cac01c16614873fea2864c2a4432057a15db90a9d7e40aed` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-linux-arm64.tar.gz) | `928936f06161e8a6f40196381d3e0dc215ca7e7dbc5f7fe6ebccd8d8268b8177` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-linux-arm.tar.gz) | `0a0fa24107f490db0ad57f33638b1aa9ba2baccb5f250caa75405d6612a3e10a` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-linux-ppc64le.tar.gz) | `a92f790d1a480318ea206d84d24d2c1d7e43c3683e60f22e7735b63ee73ccbb4` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-linux-s390x.tar.gz) | `1bfb7f056ad91fcbc50657fb9760310a0920c15a5770eaa74cf1a17b1725a232` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-windows-386.tar.gz) | `d1b0abbc9cd0376fa0d56096e42094db8a40485082b301723d05c8e78d8f4717` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-client-windows-amd64.tar.gz) | `69799ea8741caadac8949a120a455e08aba4d2babba6b63fba2ee9aaeb10c84b` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-server-linux-amd64.tar.gz) | `f3d9f67e94176aa65cffcc6557a7a251ec2384a3f89a81d3daedd8f8dd4c51a7` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-server-linux-arm64.tar.gz) | `3747b7e26d8bfba59c53b3f20d547e7e90cbb9356e513183ac27f901d7317630` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-server-linux-arm.tar.gz) | `397b7a49adf90735ceea54720dbf012c8566b34dadde911599bceefb507bc29a` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-server-linux-ppc64le.tar.gz) | `56f76ebb0788c4e23fc3ede36b52eb34b50b456bb5ff0cf7d78c383c04837565` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-server-linux-s390x.tar.gz) | `83d961657a50513db82bf421854c567206ccd34240eb8a017167cb98bdb6d38f` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-node-linux-amd64.tar.gz) | `1bb0f5ac920e27b4e51260a80fbfaa013ed7d446d58cd1f9d5f73af4d9517edf` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-node-linux-arm64.tar.gz) | `47635b9097fc6e3d9b1f1f2c3bd1558d144b1a26d1bf03cfc2e97a3c6db4c439` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-node-linux-arm.tar.gz) | `212117f1d027c79d50e7c7388951da40b440943748691ba82a3f9f6af75b3ed0` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-node-linux-ppc64le.tar.gz) | `f2b1d086d07bf2f807dbf02e1f0cd7f6528e57c55be9dadfcecde73e73980068` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-node-linux-s390x.tar.gz) | `ba6803a5c065b06cf43d1db674319008f15d4bc45900299d0b90105002af245e` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.9.0-alpha.2/kubernetes-node-windows-amd64.tar.gz) | `6d928e3bdba87db3b9198e02f84696f7345b4b78d07ff4ea048d47691c67b212` + +## Changelog since v1.8.0 + +### Action Required + +* PodSecurityPolicy: Fixes a compatibility issue that caused policies that previously allowed privileged pods to start forbidding them, due to an incorrect default value for `allowPrivilegeEscalation`. PodSecurityPolicy objects defined using a 1.8.0 client or server that intended to set `allowPrivilegeEscalation` to `false` must be reapplied after upgrading to 1.8.1. ([#53443](https://github.com/kubernetes/kubernetes/pull/53443), [@liggitt](https://github.com/liggitt)) +* RBAC objects are now stored in etcd in v1 format. After completing an upgrade to 1.9, RBAC objects (Roles, RoleBindings, ClusterRoles, ClusterRoleBindings) should be migrated to ensure all persisted objects are written in `v1` format, prior to `v1alpha1` support being removed in a future release. ([#52950](https://github.com/kubernetes/kubernetes/pull/52950), [@liggitt](https://github.com/liggitt)) + +### Other notable changes + +* Log error of failed healthz check ([#53048](https://github.com/kubernetes/kubernetes/pull/53048), [@mrIncompetent](https://github.com/mrIncompetent)) +* fix azure file mount limit issue on windows due to using drive letter ([#53629](https://github.com/kubernetes/kubernetes/pull/53629), [@andyzhangx](https://github.com/andyzhangx)) +* Update AWS SDK to 1.12.7 ([#53561](https://github.com/kubernetes/kubernetes/pull/53561), [@justinsb](https://github.com/justinsb)) +* The `kubernetes.io/created-by` annotation is no longer added to controller-created objects. Use the `metadata.ownerReferences` item that has `controller` set to `true` to determine which controller, if any, owns an object. ([#54445](https://github.com/kubernetes/kubernetes/pull/54445), [@crimsonfaith91](https://github.com/crimsonfaith91)) +* Fix overlay2 container disk metrics for Docker and CRI-O ([#54827](https://github.com/kubernetes/kubernetes/pull/54827), [@dashpole](https://github.com/dashpole)) +* Fix iptables FORWARD policy for Docker 1.13 in kubernetes-worker charm ([#54796](https://github.com/kubernetes/kubernetes/pull/54796), [@Cynerva](https://github.com/Cynerva)) +* Fix `kubeadm upgrade plan` for offline operation: ignore errors when trying to fetch latest versions from dl.k8s.io ([#54016](https://github.com/kubernetes/kubernetes/pull/54016), [@praseodym](https://github.com/praseodym)) +* fluentd now supports CRI log format. ([#54777](https://github.com/kubernetes/kubernetes/pull/54777), [@Random-Liu](https://github.com/Random-Liu)) +* Validate that PersistentVolumeSource is not changed during PV Update ([#54761](https://github.com/kubernetes/kubernetes/pull/54761), [@ianchakeres](https://github.com/ianchakeres)) +* If you are using the cloud provider API to determine the external host address of the apiserver, set --external-hostname explicitly instead. The cloud provider detection has been deprecated and will be removed in the future ([#54516](https://github.com/kubernetes/kubernetes/pull/54516), [@dims](https://github.com/dims)) +* Fixes discovery information for scale subresources in the apps API group ([#54683](https://github.com/kubernetes/kubernetes/pull/54683), [@liggitt](https://github.com/liggitt)) +* Optimize Repeated registration of AlgorithmProvider when ApplyFeatureGates ([#54047](https://github.com/kubernetes/kubernetes/pull/54047), [@kuramal](https://github.com/kuramal)) +* `kubectl get` will by default fetch large lists of resources in chunks of up to 500 items rather than requesting all resources up front from the server. This reduces the perceived latency of managing large clusters since the server returns the first set of results to the client much more quickly. A new flag `--chunk-size=SIZE` may be used to alter the number of items or disable this feature when `0` is passed. This is a beta feature. ([#53768](https://github.com/kubernetes/kubernetes/pull/53768), [@smarterclayton](https://github.com/smarterclayton)) +* Add a new feature gate for enabling an alpha annotation which, if present, excludes the annotated node from being added to a service load balancers. ([#54644](https://github.com/kubernetes/kubernetes/pull/54644), [@brendandburns](https://github.com/brendandburns)) +* Implement graceful shutdown of the kube-apiserver by waiting for open connections to finish before exiting. Moreover, the audit backend will stop dropping events on shutdown. ([#53695](https://github.com/kubernetes/kubernetes/pull/53695), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) +* fix warning messages due to GetMountRefs func not implemented in windows ([#52401](https://github.com/kubernetes/kubernetes/pull/52401), [@andyzhangx](https://github.com/andyzhangx)) +* Object count quotas supported on all standard resources using `count/.` syntax ([#54320](https://github.com/kubernetes/kubernetes/pull/54320), [@derekwaynecarr](https://github.com/derekwaynecarr)) +* Add openssh-client back into the hyperkube image. This allows the gitRepo volume plugin to work properly. ([#54250](https://github.com/kubernetes/kubernetes/pull/54250), [@ixdy](https://github.com/ixdy)) +* Bump version of all prometheus-to-sd images to v0.2.2. ([#54635](https://github.com/kubernetes/kubernetes/pull/54635), [@loburm](https://github.com/loburm)) +* [fluentd-gcp addon] Fluentd now runs in its own network, not in the host one. ([#54395](https://github.com/kubernetes/kubernetes/pull/54395), [@crassirostris](https://github.com/crassirostris)) +* fix azure storage account num exhausting issue ([#54459](https://github.com/kubernetes/kubernetes/pull/54459), [@andyzhangx](https://github.com/andyzhangx)) +* Add Windows support to the system verification check ([#53730](https://github.com/kubernetes/kubernetes/pull/53730), [@bsteciuk](https://github.com/bsteciuk)) +* allow windows mount path ([#51240](https://github.com/kubernetes/kubernetes/pull/51240), [@andyzhangx](https://github.com/andyzhangx)) +* Development of Kubernetes Federation has moved to github.com/kubernetes/federation. This move out of tree also means that Federation will begin releasing separately from Kubernetes. The impact of this is Federation-specific behavior will no longer be included in kubectl, kubefed will no longer be released as part of Kubernetes, and the Federation servers will no longer be included in the hyperkube binary and image. ([#53816](https://github.com/kubernetes/kubernetes/pull/53816), [@marun](https://github.com/marun)) +* Metadata concealment on GCE is now controlled by the `ENABLE_METADATA_CONCEALMENT` env var. See cluster/gce/config-default.sh for more info. ([#54150](https://github.com/kubernetes/kubernetes/pull/54150), [@ihmccreery](https://github.com/ihmccreery)) +* Fixed a bug which is causes kube-apiserver to not run without specifying service-cluster-ip-range ([#52870](https://github.com/kubernetes/kubernetes/pull/52870), [@jennybuckley](https://github.com/jennybuckley)) +* the generic admission webhook is now available in the generic apiserver ([#54513](https://github.com/kubernetes/kubernetes/pull/54513), [@deads2k](https://github.com/deads2k)) +* ScaleIO persistent volumes now support referencing a secret in a namespace other than the bound persistent volume claim's namespace; this is controlled during provisioning with the `secretNamespace` storage class parameter; StoragePool and ProtectionDomain attributes no longer defaults to the value `default` ([#54013](https://github.com/kubernetes/kubernetes/pull/54013), [@vladimirvivien](https://github.com/vladimirvivien)) +* Feature gates now check minimum versions ([#54539](https://github.com/kubernetes/kubernetes/pull/54539), [@jamiehannaford](https://github.com/jamiehannaford)) +* fix azure pv crash due to volumeSource.ReadOnly value nil ([#54607](https://github.com/kubernetes/kubernetes/pull/54607), [@andyzhangx](https://github.com/andyzhangx)) +* Fix an issue where pods were briefly transitioned to a "Pending" state during the deletion process. ([#54593](https://github.com/kubernetes/kubernetes/pull/54593), [@dashpole](https://github.com/dashpole)) +* move getMaxVols function to predicates.go and add some NewVolumeCountPredicate funcs ([#51783](https://github.com/kubernetes/kubernetes/pull/51783), [@jiulongzaitian](https://github.com/jiulongzaitian)) +* Remove the LbaasV1 of OpenStack cloud provider, currently only support LbaasV2. ([#52717](https://github.com/kubernetes/kubernetes/pull/52717), [@FengyunPan](https://github.com/FengyunPan)) +* generic webhook admission now takes a config file which describes how to authenticate to webhook servers ([#54414](https://github.com/kubernetes/kubernetes/pull/54414), [@deads2k](https://github.com/deads2k)) +* The NodeController will not support kubelet 1.2. ([#48996](https://github.com/kubernetes/kubernetes/pull/48996), [@k82cn](https://github.com/k82cn)) +* - fluentd-gcp runs with a dedicated fluentd-gcp service account ([#54175](https://github.com/kubernetes/kubernetes/pull/54175), [@tallclair](https://github.com/tallclair)) + * - Stop mounting the host certificates into fluentd's prometheus-to-sd container +* fix azure disk mount failure on coreos and some other distros ([#54334](https://github.com/kubernetes/kubernetes/pull/54334), [@andyzhangx](https://github.com/andyzhangx)) +* Allow GCE users to configure the service account made available on their nodes ([#52868](https://github.com/kubernetes/kubernetes/pull/52868), [@ihmccreery](https://github.com/ihmccreery)) +* Load kernel modules automatically inside a kube-proxy pod ([#52003](https://github.com/kubernetes/kubernetes/pull/52003), [@vfreex](https://github.com/vfreex)) +* kube-apiserver: `--ssh-user` and `--ssh-keyfile` are now deprecated and will be removed in a future release. Users of SSH tunnel functionality used in Google Container Engine for the Master -> Cluster communication should plan to transition to alternate methods for bridging master and node networks. ([#54433](https://github.com/kubernetes/kubernetes/pull/54433), [@dims](https://github.com/dims)) +* Fix hyperkube kubelet --experimental-dockershim ([#54508](https://github.com/kubernetes/kubernetes/pull/54508), [@ivan4th](https://github.com/ivan4th)) +* Fix clustered datastore name to be absolute. ([#54438](https://github.com/kubernetes/kubernetes/pull/54438), [@pshahzeb](https://github.com/pshahzeb)) +* Fix for service controller so that it won't retry on doNotRetry service update failure. ([#54184](https://github.com/kubernetes/kubernetes/pull/54184), [@MrHohn](https://github.com/MrHohn)) +* Add support for RBAC support to Kubernetes via Juju ([#53820](https://github.com/kubernetes/kubernetes/pull/53820), [@ktsakalozos](https://github.com/ktsakalozos)) +* RBD Persistent Volume Sources can now reference User's Secret in namespaces other than the namespace of the bound Persistent Volume Claim ([#54302](https://github.com/kubernetes/kubernetes/pull/54302), [@sbezverk](https://github.com/sbezverk)) +* Apiserver proxy rewrites URL when service returns absolute path with request's host. ([#52556](https://github.com/kubernetes/kubernetes/pull/52556), [@roycaihw](https://github.com/roycaihw)) +* Logging cleanups ([#54443](https://github.com/kubernetes/kubernetes/pull/54443), [@bowei](https://github.com/bowei)) + * Updates kube-dns to use client-go 3 + * Updates containers to use alpine as the base image on all platforms + * Adds support for IPv6 +* add `--raw` to `kubectl create` to POST using the normal transport ([#54245](https://github.com/kubernetes/kubernetes/pull/54245), [@deads2k](https://github.com/deads2k)) +* Remove the --network-plugin-dir flag. ([#53564](https://github.com/kubernetes/kubernetes/pull/53564), [@supereagle](https://github.com/supereagle)) +* Introduces a polymorphic scale client, allowing HorizontalPodAutoscalers to properly function on scalable resources in any API group. ([#53743](https://github.com/kubernetes/kubernetes/pull/53743), [@DirectXMan12](https://github.com/DirectXMan12)) +* Add PodDisruptionBudget to scheduler cache. ([#53914](https://github.com/kubernetes/kubernetes/pull/53914), [@bsalamat](https://github.com/bsalamat)) +* - API machinery's httpstream/spdy calls now support CIDR notation for NO_PROXY ([#54413](https://github.com/kubernetes/kubernetes/pull/54413), [@kad](https://github.com/kad)) +* Added option lb-provider to OpenStack cloud provider config ([#54176](https://github.com/kubernetes/kubernetes/pull/54176), [@gonzolino](https://github.com/gonzolino)) +* Allow for configuring etcd hostname in the manifest ([#54403](https://github.com/kubernetes/kubernetes/pull/54403), [@wojtek-t](https://github.com/wojtek-t)) +* - kubeadm will warn users if access to IP ranges for Pods or Services will be done via HTTP proxy. ([#52792](https://github.com/kubernetes/kubernetes/pull/52792), [@kad](https://github.com/kad)) +* Resolves forbidden error when accessing replicasets and daemonsets via the apps API group ([#54309](https://github.com/kubernetes/kubernetes/pull/54309), [@liggitt](https://github.com/liggitt)) +* Cluster Autoscaler 1.0.1 ([#54298](https://github.com/kubernetes/kubernetes/pull/54298), [@mwielgus](https://github.com/mwielgus)) +* secret data containing Docker registry auth objects is now generated using the config.json format ([#53916](https://github.com/kubernetes/kubernetes/pull/53916), [@juanvallejo](https://github.com/juanvallejo)) +* Added support for SAN entries in the master node certificate via juju kubernetes-master config. ([#54234](https://github.com/kubernetes/kubernetes/pull/54234), [@hyperbolic2346](https://github.com/hyperbolic2346)) +* support imagePullSecrets and imagePullPolicy in kubefed init ([#50740](https://github.com/kubernetes/kubernetes/pull/50740), [@dixudx](https://github.com/dixudx)) +* update gRPC to v1.6.0 to pick up data race fix grpc/grpc-go#1316 ([#53128](https://github.com/kubernetes/kubernetes/pull/53128), [@dixudx](https://github.com/dixudx)) +* admission webhook registrations without a specific failure policy default to failing closed. ([#54162](https://github.com/kubernetes/kubernetes/pull/54162), [@deads2k](https://github.com/deads2k)) +* Device plugin Alpha API no longer supports returning artifacts per device as part of AllocateResponse. ([#53031](https://github.com/kubernetes/kubernetes/pull/53031), [@vishh](https://github.com/vishh)) +* admission webhook registration now allows URL paths ([#54145](https://github.com/kubernetes/kubernetes/pull/54145), [@deads2k](https://github.com/deads2k)) +* The Kubelet's --enable-custom-metrics flag is now marked deprecated. ([#54154](https://github.com/kubernetes/kubernetes/pull/54154), [@mtaufen](https://github.com/mtaufen)) +* Use multi-arch busybox image for e2e ([#54034](https://github.com/kubernetes/kubernetes/pull/54034), [@dixudx](https://github.com/dixudx)) +* sample-controller: add example CRD controller ([#52753](https://github.com/kubernetes/kubernetes/pull/52753), [@munnerz](https://github.com/munnerz)) +* RBAC PolicyRules now allow resource=`*/` to cover `any-resource/`. For example, `*/scale` covers `replicationcontroller/scale`. ([#53722](https://github.com/kubernetes/kubernetes/pull/53722), [@deads2k](https://github.com/deads2k)) +* Upgrade to go1.9 ([#51375](https://github.com/kubernetes/kubernetes/pull/51375), [@cblecker](https://github.com/cblecker)) +* Webhook always retries connection reset error. ([#53947](https://github.com/kubernetes/kubernetes/pull/53947), [@crassirostris](https://github.com/crassirostris)) +* fix PV Recycle failed on non-amd64 platfrom ([#53958](https://github.com/kubernetes/kubernetes/pull/53958), [@dixudx](https://github.com/dixudx)) +* Verbose option is added to each status function in CRI. Container runtime could return extra information in status response for debugging. ([#53965](https://github.com/kubernetes/kubernetes/pull/53965), [@Random-Liu](https://github.com/Random-Liu)) +* Fixed log fallback termination messages when using docker with journald log driver ([#52503](https://github.com/kubernetes/kubernetes/pull/52503), [@joelsmith](https://github.com/joelsmith)) +* falls back to parse Docker runtime version as generic if not semver ([#54040](https://github.com/kubernetes/kubernetes/pull/54040), [@dixudx](https://github.com/dixudx)) +* kubelet: prevent removal of default labels from Node API objects on startup ([#54073](https://github.com/kubernetes/kubernetes/pull/54073), [@liggitt](https://github.com/liggitt)) +* Change scheduler to skip pod with updates only on pod annotations ([#54008](https://github.com/kubernetes/kubernetes/pull/54008), [@yguo0905](https://github.com/yguo0905)) +* PodSecurityPolicy: when multiple policies allow a submitted pod, priority is given to ones which do not require any fields in the pod spec to be defaulted. If the pod must be defaulted, the first policy (ordered by name) that allows the pod is used. ([#52849](https://github.com/kubernetes/kubernetes/pull/52849), [@liggitt](https://github.com/liggitt)) +* Control HPA tolerance through the `horizontal-pod-autoscaler-tolerance` flag. ([#52275](https://github.com/kubernetes/kubernetes/pull/52275), [@mattjmcnaughton](https://github.com/mattjmcnaughton)) +* bump CNI to v0.6.0 ([#51250](https://github.com/kubernetes/kubernetes/pull/51250), [@dixudx](https://github.com/dixudx)) +* Improve resilience by annotating kube-dns addon with podAntiAffinity to prefer scheduling on different nodes. ([#52193](https://github.com/kubernetes/kubernetes/pull/52193), [@StevenACoffman](https://github.com/StevenACoffman)) +* Azure cloudprovider: Fix controller manager crash issue on a manually created k8s cluster. ([#53694](https://github.com/kubernetes/kubernetes/pull/53694), [@andyzhangx](https://github.com/andyzhangx)) +* Enable Priority admission control in kubeadm. ([#53175](https://github.com/kubernetes/kubernetes/pull/53175), [@andrewsykim](https://github.com/andrewsykim)) +* Add --no-negcache flag to kube-dns to prevent caching of NXDOMAIN responses. ([#53604](https://github.com/kubernetes/kubernetes/pull/53604), [@cblecker](https://github.com/cblecker)) +* kubelet provides more specific events when unable to sync pod ([#53857](https://github.com/kubernetes/kubernetes/pull/53857), [@derekwaynecarr](https://github.com/derekwaynecarr)) +* Kubelet evictions take pod priority into account ([#53542](https://github.com/kubernetes/kubernetes/pull/53542), [@dashpole](https://github.com/dashpole)) +* Adds a new controller which automatically cleans up Certificate Signing Requests that are ([#51840](https://github.com/kubernetes/kubernetes/pull/51840), [@jcbsmpsn](https://github.com/jcbsmpsn)) + * Approved and Issued, or Denied. +* Optimize random string generator to avoid multiple locks & use bit-masking ([#53720](https://github.com/kubernetes/kubernetes/pull/53720), [@shyamjvs](https://github.com/shyamjvs)) +* update cluster printer to enable --show-labels ([#53771](https://github.com/kubernetes/kubernetes/pull/53771), [@dixudx](https://github.com/dixudx)) +* add RequestReceivedTimestamp and StageTimestamp to audit event ([#52981](https://github.com/kubernetes/kubernetes/pull/52981), [@CaoShuFeng](https://github.com/CaoShuFeng)) +* Deprecation: The flag `etcd-quorum-read ` of kube-apiserver is deprecated and the ability to switch off quorum read will be removed in a future release. ([#53795](https://github.com/kubernetes/kubernetes/pull/53795), [@xiangpengzhao](https://github.com/xiangpengzhao)) +* Use separate client for leader election in scheduler to avoid starving leader election by regular scheduler operations. ([#53793](https://github.com/kubernetes/kubernetes/pull/53793), [@wojtek-t](https://github.com/wojtek-t)) +* Support autoprobing node-security-group for openstack cloud provider, Support multiple Security Groups for cluster's nodes. ([#50836](https://github.com/kubernetes/kubernetes/pull/50836), [@FengyunPan](https://github.com/FengyunPan)) +* fix a bug where disk pressure could trigger prematurely when using overlay2 ([#53684](https://github.com/kubernetes/kubernetes/pull/53684), [@dashpole](https://github.com/dashpole)) +* "kubectl cp" updated to honor destination names ([#51215](https://github.com/kubernetes/kubernetes/pull/51215), [@juanvallejo](https://github.com/juanvallejo)) +* kubeadm: Strip bootstrap tokens from the `kubeadm-config` ConfigMap ([#53559](https://github.com/kubernetes/kubernetes/pull/53559), [@fabriziopandini](https://github.com/fabriziopandini)) +* Skip podpreset test if the alpha feature setttings/v1alpha1 is disabled ([#53080](https://github.com/kubernetes/kubernetes/pull/53080), [@jennybuckley](https://github.com/jennybuckley)) +* Log when node is successfully initialized by Cloud Controller Manager ([#53517](https://github.com/kubernetes/kubernetes/pull/53517), [@andrewsykim](https://github.com/andrewsykim)) +* apiserver: --etcd-quorum-read now defaults to true, to ensure correct operation with HA etcd clusters ([#53717](https://github.com/kubernetes/kubernetes/pull/53717), [@liggitt](https://github.com/liggitt)) +* The Kubelet's feature gates are now specified as a map when provided via a JSON or YAML KubeletConfiguration, rather than as a string of key-value pairs. ([#53025](https://github.com/kubernetes/kubernetes/pull/53025), [@mtaufen](https://github.com/mtaufen)) +* Address a bug which allowed the horizontal pod autoscaler to allocate `desiredReplicas` > `maxReplicas` in certain instances. ([#53690](https://github.com/kubernetes/kubernetes/pull/53690), [@mattjmcnaughton](https://github.com/mattjmcnaughton)) +* Horizontal pod autoscaler uses REST clients through the kube-aggregator instead of the legacy client through the API server proxy. ([#53205](https://github.com/kubernetes/kubernetes/pull/53205), [@kawych](https://github.com/kawych)) +* Fix to prevent downward api change break on older versions ([#53673](https://github.com/kubernetes/kubernetes/pull/53673), [@timothysc](https://github.com/timothysc)) +* API chunking via the `limit` and `continue` request parameters is promoted to beta in this release. Client libraries using the Informer or ListWatch types will automatically opt in to chunking. ([#52949](https://github.com/kubernetes/kubernetes/pull/52949), [@smarterclayton](https://github.com/smarterclayton)) +* GCE: Bump GLBC version to [0.9.7](https://github.com/kubernetes/ingress/releases/tag/0.9.7). ([#53625](https://github.com/kubernetes/kubernetes/pull/53625), [@nikhiljindal](https://github.com/nikhiljindal)) +* kubelet's `--cloud-provider` flag no longer defaults to "auto-detect". If you want cloud-provider support in kubelet, you must set a specific cloud-provider explicitly. ([#53573](https://github.com/kubernetes/kubernetes/pull/53573), [@dims](https://github.com/dims)) +* Ignore extended resources that are not registered with kubelet during container resource allocation. ([#53547](https://github.com/kubernetes/kubernetes/pull/53547), [@jiayingz](https://github.com/jiayingz)) +* kubectl top pod and node should sort by namespace / name so that results don't jump around. ([#53560](https://github.com/kubernetes/kubernetes/pull/53560), [@dixudx](https://github.com/dixudx)) +* Added --dry-run option to `kubectl drain` ([#52440](https://github.com/kubernetes/kubernetes/pull/52440), [@juanvallejo](https://github.com/juanvallejo)) +* Fix a bug that prevents client-go metrics from being registered in prometheus in multiple components. ([#53434](https://github.com/kubernetes/kubernetes/pull/53434), [@crassirostris](https://github.com/crassirostris)) +* Adjust batching audit webhook default parameters: increase queue size, batch size, and initial backoff. Add throttling to the batching audit webhook. Default rate limit is 10 QPS. ([#53417](https://github.com/kubernetes/kubernetes/pull/53417), [@crassirostris](https://github.com/crassirostris)) +* Added integration test for TaintNodeByCondition. ([#53184](https://github.com/kubernetes/kubernetes/pull/53184), [@k82cn](https://github.com/k82cn)) +* Add API version apps/v1, and bump DaemonSet to apps/v1 ([#53278](https://github.com/kubernetes/kubernetes/pull/53278), [@janetkuo](https://github.com/janetkuo)) +* Change `kubeadm create token` to default to the group that almost everyone will want to use. The group is system:bootstrappers:kubeadm:default-node-token and is the group that kubeadm sets up, via an RBAC binding, for auto-approval (system:certificates.k8s.io:certificatesigningrequests:nodeclient). ([#53512](https://github.com/kubernetes/kubernetes/pull/53512), [@jbeda](https://github.com/jbeda)) +* Using OpenStack service catalog to do version detection ([#53115](https://github.com/kubernetes/kubernetes/pull/53115), [@FengyunPan](https://github.com/FengyunPan)) +* Fix metrics API group name in audit configuration ([#53493](https://github.com/kubernetes/kubernetes/pull/53493), [@piosz](https://github.com/piosz)) +* GCE: Fixes ILB sync on legacy networks and auto networks with unique subnet names ([#53410](https://github.com/kubernetes/kubernetes/pull/53410), [@nicksardo](https://github.com/nicksardo)) +* outputs `` for columns specified by `-o custom-columns` but not found in object ([#51750](https://github.com/kubernetes/kubernetes/pull/51750), [@jianhuiz](https://github.com/jianhuiz)) +* Metrics were added to network plugin to report latency of CNI operations ([#53446](https://github.com/kubernetes/kubernetes/pull/53446), [@sjenning](https://github.com/sjenning)) +* GCE: Fix issue deleting internal load balancers when the firewall resource may not exist. ([#53450](https://github.com/kubernetes/kubernetes/pull/53450), [@nicksardo](https://github.com/nicksardo)) +* Custom resources served through CustomResourceDefinition now support field selectors for `metadata.name` and `metadata.namespace`. ([#53345](https://github.com/kubernetes/kubernetes/pull/53345), [@ncdc](https://github.com/ncdc)) +* Add generate-groups.sh and generate-internal-groups.sh to k8s.io/code-generator to easily run generators against CRD or User API Server types. ([#52186](https://github.com/kubernetes/kubernetes/pull/52186), [@sttts](https://github.com/sttts)) +* kubelet `--cert-dir` now defaults to `/var/lib/kubelet/pki`, in order to ensure bootstrapped and rotated certificates persist beyond a reboot. resolves an issue in kubeadm with false-positive `/var/lib/kubelet is not empty` message during pre-flight checks ([#53317](https://github.com/kubernetes/kubernetes/pull/53317), [@liggitt](https://github.com/liggitt)) +* Fix multi-attach error spam in logs and events ([#53401](https://github.com/kubernetes/kubernetes/pull/53401), [@gnufied](https://github.com/gnufied)) +* Use `not-ready` to replace `notReady` in node condition taint keys. ([#51266](https://github.com/kubernetes/kubernetes/pull/51266), [@resouer](https://github.com/resouer)) +* Support completion for --clusterrole of kubectl create clusterrolebinding ([#48267](https://github.com/kubernetes/kubernetes/pull/48267), [@superbrothers](https://github.com/superbrothers)) +* Don't remove extended resource capacities that are not registered with kubelet from node status. ([#53353](https://github.com/kubernetes/kubernetes/pull/53353), [@jiayingz](https://github.com/jiayingz)) +* Kubectl: Remove swagger 1.2 validation. Also removes options `--use-openapi` and `--schema-cache-dir` as these are no longer needed. ([#53232](https://github.com/kubernetes/kubernetes/pull/53232), [@apelisse](https://github.com/apelisse)) +* `kubectl explain` now uses openapi rather than swagger 1.2. ([#53228](https://github.com/kubernetes/kubernetes/pull/53228), [@apelisse](https://github.com/apelisse)) +* Fixes a performance issue ([#51899](https://github.com/kubernetes/kubernetes/pull/51899)) identified in large-scale clusters when deleting thousands of pods simultaneously across hundreds of nodes, by actively removing containers of deleted pods, rather than waiting for periodic garbage collection and batching resulting pod API deletion requests. ([#53233](https://github.com/kubernetes/kubernetes/pull/53233), [@dashpole](https://github.com/dashpole)) +* Improve explanation of ReplicaSet ([#53403](https://github.com/kubernetes/kubernetes/pull/53403), [@rcorre](https://github.com/rcorre)) +* avoid newline " +" in the error to break log msg to 2 lines ([#49826](https://github.com/kubernetes/kubernetes/pull/49826), [@dixudx](https://github.com/dixudx)) +* don't recreate a mirror pod for static pod when node gets deleted ([#48339](https://github.com/kubernetes/kubernetes/pull/48339), [@dixudx](https://github.com/dixudx)) +* Fix permissions for Metrics Server. ([#53330](https://github.com/kubernetes/kubernetes/pull/53330), [@kawych](https://github.com/kawych)) +* default fail-swap-on to false for kubelet on kubernetes-worker charm ([#53386](https://github.com/kubernetes/kubernetes/pull/53386), [@wwwtyro](https://github.com/wwwtyro)) +* Add --etcd-compaction-interval to apiserver for controlling request of compaction to etcd3 from apiserver. ([#51765](https://github.com/kubernetes/kubernetes/pull/51765), [@mitake](https://github.com/mitake)) +* Apply algorithm in scheduler by feature gates. ([#52723](https://github.com/kubernetes/kubernetes/pull/52723), [@k82cn](https://github.com/k82cn)) +* etcd: update version to 3.1.10 ([#49393](https://github.com/kubernetes/kubernetes/pull/49393), [@hongchaodeng](https://github.com/hongchaodeng)) +* support nodeSelector in kubefed init ([#50749](https://github.com/kubernetes/kubernetes/pull/50749), [@dixudx](https://github.com/dixudx)) +* Upgrade fluentd-elasticsearch addon to Elasticsearch/Kibana 5.6.2 ([#53307](https://github.com/kubernetes/kubernetes/pull/53307), [@aknuds1](https://github.com/aknuds1)) +* enable to specific unconfined AppArmor profile ([#52395](https://github.com/kubernetes/kubernetes/pull/52395), [@dixudx](https://github.com/dixudx)) +* Update Influxdb image to latest version. ([#53319](https://github.com/kubernetes/kubernetes/pull/53319), [@kairen](https://github.com/kairen)) + * Update Grafana image to latest version. + * Change influxdb-grafana-controller resource to Deployment. +* Only do UpdateContainerResources when cpuset is set ([#53122](https://github.com/kubernetes/kubernetes/pull/53122), [@resouer](https://github.com/resouer)) +* Fixes an issue with RBAC reconciliation that could cause duplicated subjects in some bootstrapped rolebindings on each restart of the API server. ([#53239](https://github.com/kubernetes/kubernetes/pull/53239), [@enj](https://github.com/enj)) +* gce: remove compute-rw, see what breaks ([#53266](https://github.com/kubernetes/kubernetes/pull/53266), [@mikedanese](https://github.com/mikedanese)) +* Fix the bug that query Kubelet's stats summary with CRI stats enabled results in error. ([#53107](https://github.com/kubernetes/kubernetes/pull/53107), [@Random-Liu](https://github.com/Random-Liu)) +* kubeadm allows the kubelets in the cluster to automatically renew their client certificates ([#53252](https://github.com/kubernetes/kubernetes/pull/53252), [@kad](https://github.com/kad)) +* Fixes an issue with `kubectl set` commands encountering conversion errors for ReplicaSet and DaemonSet objects ([#53158](https://github.com/kubernetes/kubernetes/pull/53158), [@liggitt](https://github.com/liggitt)) +* RBAC: The default `admin` and `edit` roles now include read/write permissions and the `view` role includes read permissions on `poddisruptionbudget.policy` resources. ([#52654](https://github.com/kubernetes/kubernetes/pull/52654), [@liggitt](https://github.com/liggitt)) +* Change ImageGCManage to consume ImageFS stats from StatsProvider ([#53094](https://github.com/kubernetes/kubernetes/pull/53094), [@yguo0905](https://github.com/yguo0905)) +* BugFix: Exited containers are not Garbage Collected by the kubelet while the pod is running ([#53167](https://github.com/kubernetes/kubernetes/pull/53167), [@dashpole](https://github.com/dashpole)) +* - Improved generation of deb and rpm packages in bazel build ([#53163](https://github.com/kubernetes/kubernetes/pull/53163), [@kad](https://github.com/kad)) +* Add a label which prevents a node from being added to a cloud load balancer ([#53146](https://github.com/kubernetes/kubernetes/pull/53146), [@brendandburns](https://github.com/brendandburns)) +* Fixes an issue pulling pod specs referencing unqualified images from docker.io on centos/fedora/rhel ([#53161](https://github.com/kubernetes/kubernetes/pull/53161), [@dims](https://github.com/dims)) +* Update kube-dns to 1.14.5 ([#53153](https://github.com/kubernetes/kubernetes/pull/53153), [@bowei](https://github.com/bowei)) +* - kubeadm init can now deploy exact build from CI area by specifying ID with "ci/" prefix. Example: "ci/v1.9.0-alpha.1.123+01234567889" ([#53043](https://github.com/kubernetes/kubernetes/pull/53043), [@kad](https://github.com/kad)) + * - kubeadm upgrade apply supports all standard ways of specifying version via labels. Examples: stable-1.8, latest-1.8, ci/latest-1.9 and similar. +* - kubeadm 1.9 will detect and fail init or join pre-flight checks if kubelet is lower than 1.8.0-alpha ([#52913](https://github.com/kubernetes/kubernetes/pull/52913), [@kad](https://github.com/kad)) +* s390x ingress controller support ([#52663](https://github.com/kubernetes/kubernetes/pull/52663), [@wwwtyro](https://github.com/wwwtyro)) +* NONE ([#50532](https://github.com/kubernetes/kubernetes/pull/50532), [@steveperry-53](https://github.com/steveperry-53)) +* CRI: Add stdout/stderr fields to Exec and Attach requests. ([#52686](https://github.com/kubernetes/kubernetes/pull/52686), [@yujuhong](https://github.com/yujuhong)) +* NONE ([#53001](https://github.com/kubernetes/kubernetes/pull/53001), [@ericchiang](https://github.com/ericchiang)) +* Cluster Autoscaler 1.0.0 ([#53005](https://github.com/kubernetes/kubernetes/pull/53005), [@mwielgus](https://github.com/mwielgus)) +* Remove the --docker-exec-handler flag. Only native exec handler is supported. ([#52287](https://github.com/kubernetes/kubernetes/pull/52287), [@yujuhong](https://github.com/yujuhong)) +* The Rackspace cloud provider has been removed after a long deprecation period. It was deprecated because it duplicates a lot of the OpenStack logic and can no longer be maintained. Please use the OpenStack cloud provider instead. ([#52855](https://github.com/kubernetes/kubernetes/pull/52855), [@NickrenREN](https://github.com/NickrenREN)) +* Fixes an initializer bug where update requests which had an empty pending initializers list were erroneously rejected. ([#52558](https://github.com/kubernetes/kubernetes/pull/52558), [@jennybuckley](https://github.com/jennybuckley)) +* BulkVerifyVolumes() implementation for vSphere ([#52131](https://github.com/kubernetes/kubernetes/pull/52131), [@BaluDontu](https://github.com/BaluDontu)) +* added --list option to the `kubectl label` command ([#51971](https://github.com/kubernetes/kubernetes/pull/51971), [@juanvallejo](https://github.com/juanvallejo)) +* Removing `--prom-push-gateway` flag from e2e tests ([#52485](https://github.com/kubernetes/kubernetes/pull/52485), [@nielsole](https://github.com/nielsole)) +* If a container does not create a file at the `terminationMessagePath`, no message should be output about being unable to find the file. ([#52567](https://github.com/kubernetes/kubernetes/pull/52567), [@smarterclayton](https://github.com/smarterclayton)) +* Support German cloud for azure disk mount feature ([#50673](https://github.com/kubernetes/kubernetes/pull/50673), [@clement-buchart](https://github.com/clement-buchart)) +* Add s390x to juju kubernetes ([#52537](https://github.com/kubernetes/kubernetes/pull/52537), [@ktsakalozos](https://github.com/ktsakalozos)) +* Fix kubernetes charms not restarting services properly after host reboot on LXD ([#52445](https://github.com/kubernetes/kubernetes/pull/52445), [@Cynerva](https://github.com/Cynerva)) +* Add monitoring of Windows Server containers metrics in the kubelet via the stats/summary endpoint. ([#50396](https://github.com/kubernetes/kubernetes/pull/50396), [@bobbypage](https://github.com/bobbypage)) +* Restores redirect behavior for proxy subresources ([#52933](https://github.com/kubernetes/kubernetes/pull/52933), [@liggitt](https://github.com/liggitt)) +* A new service annotation has been added for services of type LoadBalancer on Azure, ([#51757](https://github.com/kubernetes/kubernetes/pull/51757), [@itowlson](https://github.com/itowlson)) + * to specify the subnet on which the service's front end IP should be provisioned. The + * annotation is service.beta.kubernetes.io/azure-load-balancer-internal-subnet and its + * value is the subnet name (not the subnet ARM ID). If omitted, the default is the + * master subnet. It is ignored if the service is not on Azure, if the type is not + * LoadBalancer, or if the load balancer is not internal. +* Adds a command-line argument to kube-apiserver called ([#51698](https://github.com/kubernetes/kubernetes/pull/51698), [@rphillips](https://github.com/rphillips)) + * --alpha-endpoint-reconciler-type=(master-count, lease, none) (default + * "master-count"). The original reconciler is 'master-count'. The 'lease' + * reconciler uses the storageapi and a TTL to keep alive an endpoint within the + * `kube-apiserver-endpoint` storage namespace. The 'none' reconciler is a noop + * reconciler that does not do anything. This is useful for self-hosted + * environments. +* Improved Italian translation for kubectl ([#51463](https://github.com/kubernetes/kubernetes/pull/51463), [@lucab85](https://github.com/lucab85)) +* Add a metric to the kubelet to monitor remaining lifetime of the certificate that ([#51031](https://github.com/kubernetes/kubernetes/pull/51031), [@jcbsmpsn](https://github.com/jcbsmpsn)) + * authenticates the kubelet to the API server. +* change AddEventHandlerWithResyncPeriod to AddEventHandler in factory.go ([#51582](https://github.com/kubernetes/kubernetes/pull/51582), [@jiulongzaitian](https://github.com/jiulongzaitian)) +* Validate that cronjob names are 52 characters or less ([#52733](https://github.com/kubernetes/kubernetes/pull/52733), [@julia-stripe](https://github.com/julia-stripe)) +* add readme file of ipvs ([#51937](https://github.com/kubernetes/kubernetes/pull/51937), [@Lion-Wei](https://github.com/Lion-Wei)) + + + # v1.9.0-alpha.1 [Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/master/examples) diff --git a/vendor/k8s.io/kubernetes/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/Godeps/Godeps.json index 9522823b0..f0078d931 100644 --- a/vendor/k8s.io/kubernetes/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/kubernetes", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "github.com/onsi/ginkgo/ginkgo", @@ -30,33 +30,33 @@ }, { "ImportPath": "github.com/Azure/azure-sdk-for-go/arm/compute", - "Comment": "v10.0.4-beta-1-g786cc84", - "Rev": "786cc84138518bf7fd6d60e92fad1ac9d1a117ad" + "Comment": "v11.1.1-beta", + "Rev": "509eea43b93cec2f3f17acbe2578ef58703923f8" }, { "ImportPath": "github.com/Azure/azure-sdk-for-go/arm/containerregistry", - "Comment": "v10.0.4-beta-1-g786cc84", - "Rev": "786cc84138518bf7fd6d60e92fad1ac9d1a117ad" + "Comment": "v11.1.1-beta", + "Rev": "509eea43b93cec2f3f17acbe2578ef58703923f8" }, { "ImportPath": "github.com/Azure/azure-sdk-for-go/arm/disk", - "Comment": "v10.0.4-beta-1-g786cc84", - "Rev": "786cc84138518bf7fd6d60e92fad1ac9d1a117ad" + "Comment": "v11.1.1-beta", + "Rev": "509eea43b93cec2f3f17acbe2578ef58703923f8" }, { "ImportPath": "github.com/Azure/azure-sdk-for-go/arm/network", - "Comment": "v10.0.4-beta-1-g786cc84", - "Rev": "786cc84138518bf7fd6d60e92fad1ac9d1a117ad" + "Comment": "v11.1.1-beta", + "Rev": "509eea43b93cec2f3f17acbe2578ef58703923f8" }, { "ImportPath": "github.com/Azure/azure-sdk-for-go/arm/storage", - "Comment": "v10.0.4-beta-1-g786cc84", - "Rev": "786cc84138518bf7fd6d60e92fad1ac9d1a117ad" + "Comment": "v11.1.1-beta", + "Rev": "509eea43b93cec2f3f17acbe2578ef58703923f8" }, { "ImportPath": "github.com/Azure/azure-sdk-for-go/storage", - "Comment": "v10.0.4-beta-1-g786cc84", - "Rev": "786cc84138518bf7fd6d60e92fad1ac9d1a117ad" + "Comment": "v11.1.1-beta", + "Rev": "509eea43b93cec2f3f17acbe2578ef58703923f8" }, { "ImportPath": "github.com/Azure/go-ansiterm", @@ -68,41 +68,41 @@ }, { "ImportPath": "github.com/Azure/go-autorest/autorest", - "Comment": "v8.0.0", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Comment": "v9.1.0", + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/adal", - "Comment": "v8.0.0", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Comment": "v9.1.0", + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/azure", - "Comment": "v8.0.0", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Comment": "v9.1.0", + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/date", - "Comment": "v8.0.0", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Comment": "v9.1.0", + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/to", - "Comment": "v8.0.0", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Comment": "v9.1.0", + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/validation", - "Comment": "v8.0.0", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Comment": "v9.1.0", + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/MakeNowJust/heredoc", - "Rev": "1d91351acdc1cb2f2c995864674b754134b86ca7" + "Rev": "bb23615498cded5e105af4ce27de75b089cbe851" }, { "ImportPath": "github.com/Microsoft/go-winio", - "Comment": "v0.4.4-7-g7843996", + "Comment": "v0.4.5", "Rev": "78439966b38d69bf38227fbf57ac8a6fee70f69a" }, { @@ -162,168 +162,158 @@ }, { "ImportPath": "github.com/aws/aws-sdk-go/aws", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/awserr", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/awsutil", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/client", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/client/metadata", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/corehandlers", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/stscreds", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/defaults", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/ec2metadata", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/endpoints", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/request", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/session", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/aws/signer/v4", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/internal/shareddefaults", + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/private/protocol", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/ec2query", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/query", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/rest", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" - }, - { - "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/restxml", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" - }, - { - "ImportPath": "github.com/aws/aws-sdk-go/private/waiter", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/service/autoscaling", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/service/ec2", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/service/ecr", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/service/elb", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/service/kms", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" - }, - { - "ImportPath": "github.com/aws/aws-sdk-go/service/route53", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/aws/aws-sdk-go/service/sts", - "Comment": "v1.6.10", - "Rev": "63ce630574a5ec05ecd8e8de5cea16332a5a684d" + "Comment": "v1.12.7", + "Rev": "760741802ad40f49ae9fc4a69ef6706d2527d62e" }, { "ImportPath": "github.com/beorn7/perks/quantile", @@ -855,152 +845,152 @@ }, { "ImportPath": "github.com/docker/distribution/digestset", - "Comment": "v2.6.0-rc.1-209-gedc3ab2", + "Comment": "v2.6.0-rc.1-209-gedc3ab29", "Rev": "edc3ab29cdff8694dd6feb85cfeb4b5f1b38ed9c" }, { "ImportPath": "github.com/docker/distribution/reference", - "Comment": "v2.6.0-rc.1-209-gedc3ab2", + "Comment": "v2.6.0-rc.1-209-gedc3ab29", "Rev": "edc3ab29cdff8694dd6feb85cfeb4b5f1b38ed9c" }, { "ImportPath": "github.com/docker/docker/api", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/blkiodev", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/container", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/events", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/filters", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/image", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/mount", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/network", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/registry", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/strslice", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/swarm", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/swarm/runtime", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/time", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/versions", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/api/types/volume", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/client", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/ioutils", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/jsonlog", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/jsonmessage", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/longpath", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/mount", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/stdcopy", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/symlink", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/system", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/term", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/term/windows", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { "ImportPath": "github.com/docker/docker/pkg/tlsconfig", - "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616f", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, { @@ -1070,17 +1060,17 @@ }, { "ImportPath": "github.com/docker/go-connections/nat", - "Comment": "v0.2.1-30-g3ede32e", + "Comment": "v0.3.0", "Rev": "3ede32e2033de7505e6500d6c868c2b9ed9f169d" }, { "ImportPath": "github.com/docker/go-connections/sockets", - "Comment": "v0.2.1-30-g3ede32e", + "Comment": "v0.3.0", "Rev": "3ede32e2033de7505e6500d6c868c2b9ed9f169d" }, { "ImportPath": "github.com/docker/go-connections/tlsconfig", - "Comment": "v0.2.1-30-g3ede32e", + "Comment": "v0.3.0", "Rev": "3ede32e2033de7505e6500d6c868c2b9ed9f169d" }, { @@ -1090,7 +1080,7 @@ }, { "ImportPath": "github.com/docker/libnetwork/ipvs", - "Comment": "v0.8.0-dev.2-910-gba46b92", + "Comment": "v0.8.0-dev.2-910-gba46b928", "Rev": "ba46b928444931e6865d8618dc03622cac79aa6f" }, { @@ -1167,8 +1157,8 @@ }, { "ImportPath": "github.com/go-ini/ini", - "Comment": "v0-54-g2e44421", - "Rev": "2e44421e256d82ebbf3d4d4fcabe8930b905eff3" + "Comment": "v1.25.4", + "Rev": "300e940a926eb277d3901b20bdfcc54928ad3642" }, { "ImportPath": "github.com/go-openapi/analysis", @@ -1217,127 +1207,127 @@ }, { "ImportPath": "github.com/gogo/protobuf/gogoproto", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/compare", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/defaultcheck", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/description", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/embedcheck", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/enumstringer", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/equal", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/face", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/gostring", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/marshalto", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/oneofcheck", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/populate", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/size", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/stringer", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/testgen", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/union", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/plugin/unmarshal", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/proto", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/descriptor", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/generator", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/grpc", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/plugin", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/sortkeys", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/vanity", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { "ImportPath": "github.com/gogo/protobuf/vanity/command", - "Comment": "v0.4-3-gc0656ed", + "Comment": "v0.4-3-gc0656edd", "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" }, { @@ -1354,27 +1344,31 @@ }, { "ImportPath": "github.com/golang/protobuf/jsonpb", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/any", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/duration", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/struct", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/google/btree", @@ -1382,208 +1376,208 @@ }, { "ImportPath": "github.com/google/cadvisor/api", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/cache/memory", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/client/v2", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/collector", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/container", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/container/common", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/container/crio", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/container/docker", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/container/libcontainer", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/container/raw", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/container/rkt", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/container/systemd", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/devicemapper", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/events", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/fs", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/healthz", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/http", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/http/mux", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/info/v1", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/info/v2", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/machine", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/manager", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/manager/watcher", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/manager/watcher/raw", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/manager/watcher/rkt", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/metrics", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/pages", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/pages/static", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/storage", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/summary", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/utils", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/utils/cloudinfo", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/utils/cpuload", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/utils/docker", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/utils/oomparser", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/utils/sysfs", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/utils/sysinfo", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/validate", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/version", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/cadvisor/zfs", - "Comment": "v0.27.1", - "Rev": "cda62a43857256fbc95dd31e7c810888f00f8ec7" + "Comment": "v0.27.2", + "Rev": "4957b7a942b01fe044a9ca8ba2dc9f5ca997431c" }, { "ImportPath": "github.com/google/certificate-transparency/go", @@ -1623,123 +1617,107 @@ }, { "ImportPath": "github.com/gophercloud/gophercloud", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/common/extensions", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/flavors", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/images", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/servers", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" - }, - { - "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" - }, - { - "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" - }, - { - "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" - }, - { - "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/ports", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/utils", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/pagination", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gorilla/context", @@ -1880,8 +1858,8 @@ }, { "ImportPath": "github.com/jmespath/go-jmespath", - "Comment": "0.2.2", - "Rev": "3433f3ea46d9f8019119e7dd41274e112a2359a9" + "Comment": "0.2.2-12-g0b12d6b", + "Rev": "0b12d6b521d83fc7f755e7cfc1b1fbdd35a01a74" }, { "ImportPath": "github.com/jonboulle/clockwork", @@ -1991,11 +1969,6 @@ "ImportPath": "github.com/matttproud/golang_protobuf_extensions/pbutil", "Rev": "fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a" }, - { - "ImportPath": "github.com/miekg/coredns/middleware/etcd/msg", - "Comment": "v003", - "Rev": "20e25559d5eada5a68a0720816a6e947b94860ce" - }, { "ImportPath": "github.com/miekg/dns", "Rev": "5d001d020961ae1c184f9f8152fdc73810481677" @@ -2245,77 +2218,77 @@ }, { "ImportPath": "github.com/opencontainers/runc/libcontainer", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/apparmor", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/fs", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/rootless", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/systemd", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/configs", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/configs/validate", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/criurpc", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/keys", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/seccomp", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/stacktrace", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/system", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/user", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { "ImportPath": "github.com/opencontainers/runc/libcontainer/utils", - "Comment": "v1.0.0-rc4-50-g4d6e672", + "Comment": "v1.0.0-rc4-50-g4d6e6720", "Rev": "4d6e6720a7c885c37b4cb083c0d372dda3425120" }, { @@ -2339,7 +2312,6 @@ }, { "ImportPath": "github.com/pelletier/go-buffruneio", - "Comment": "v0.1.0", "Rev": "df1e16fde7fc330a0ca68167c23bf7ed6ac31d6d" }, { @@ -2658,7 +2630,6 @@ }, { "ImportPath": "github.com/xiang90/probing", - "Comment": "0.0.1", "Rev": "07dd2e8dfe18522e9c447ba95f2fe95262f63bb2" }, { @@ -2874,10 +2845,6 @@ "ImportPath": "golang.org/x/tools/go/vcs", "Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32" }, - { - "ImportPath": "google.golang.org/api/cloudkms/v1", - "Rev": "654f863362977d69086620b5f72f13e911da2410" - }, { "ImportPath": "google.golang.org/api/cloudmonitoring/v2beta2", "Rev": "654f863362977d69086620b5f72f13e911da2410" @@ -2898,10 +2865,6 @@ "ImportPath": "google.golang.org/api/container/v1", "Rev": "654f863362977d69086620b5f72f13e911da2410" }, - { - "ImportPath": "google.golang.org/api/dns/v1", - "Rev": "654f863362977d69086620b5f72f13e911da2410" - }, { "ImportPath": "google.golang.org/api/gensupport", "Rev": "654f863362977d69086620b5f72f13e911da2410" @@ -3041,43 +3004,43 @@ }, { "ImportPath": "k8s.io/gengo/args", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/import-boss/generators", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/set-gen/generators", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/set-gen/sets", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/generator", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/namer", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/parser", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/types", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/heapster/metrics/api/v1/types", @@ -3086,27 +3049,35 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/aggregator", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/generators", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/util/proto/validation", + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/utils/exec", diff --git a/vendor/k8s.io/kubernetes/Godeps/LICENSES b/vendor/k8s.io/kubernetes/Godeps/LICENSES index 505e9b9aa..afd0e64f5 100644 --- a/vendor/k8s.io/kubernetes/Godeps/LICENSES +++ b/vendor/k8s.io/kubernetes/Godeps/LICENSES @@ -5173,7 +5173,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/private/protocol licensed under: = += vendor/github.com/aws/aws-sdk-go/internal/shareddefaults licensed under: = Apache License @@ -5383,7 +5383,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query licensed under: = += vendor/github.com/aws/aws-sdk-go/private/protocol licensed under: = Apache License @@ -5593,7 +5593,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil licensed under: = += vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query licensed under: = Apache License @@ -5803,7 +5803,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc licensed under: = += vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil licensed under: = Apache License @@ -6013,7 +6013,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/private/protocol/query licensed under: = += vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc licensed under: = Apache License @@ -6223,7 +6223,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil licensed under: = += vendor/github.com/aws/aws-sdk-go/private/protocol/query licensed under: = Apache License @@ -6433,7 +6433,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/private/protocol/rest licensed under: = += vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil licensed under: = Apache License @@ -6643,7 +6643,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/private/protocol/restxml licensed under: = += vendor/github.com/aws/aws-sdk-go/private/protocol/rest licensed under: = Apache License @@ -7063,7 +7063,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/private/waiter licensed under: = += vendor/github.com/aws/aws-sdk-go/service/autoscaling licensed under: = Apache License @@ -7273,7 +7273,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/service/autoscaling licensed under: = += vendor/github.com/aws/aws-sdk-go/service/ec2 licensed under: = Apache License @@ -7483,7 +7483,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/service/ec2 licensed under: = += vendor/github.com/aws/aws-sdk-go/service/ecr licensed under: = Apache License @@ -7693,7 +7693,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/service/ecr licensed under: = += vendor/github.com/aws/aws-sdk-go/service/elb licensed under: = Apache License @@ -7903,7 +7903,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/service/elb licensed under: = += vendor/github.com/aws/aws-sdk-go/service/kms licensed under: = Apache License @@ -8113,7 +8113,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/service/kms licensed under: = += vendor/github.com/aws/aws-sdk-go/service/sts licensed under: = Apache License @@ -8323,7 +8323,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/aws/aws-sdk-go/service/route53 licensed under: = += vendor/github.com/Azure/azure-sdk-for-go/arm/compute licensed under: = Apache License @@ -8514,7 +8514,7 @@ SOFTWARE. same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [yyyy] [name of copyright owner] + Copyright 2016 Microsoft Corporation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -8528,12 +8528,12 @@ SOFTWARE. See the License for the specific language governing permissions and limitations under the License. -= vendor/github.com/aws/aws-sdk-go/LICENSE.txt 3b83ef96387f14655fc854ddc3c6bd57 += vendor/github.com/Azure/azure-sdk-for-go/LICENSE cce6fd055830ca30ff78fdf077e870d6 ================================================================================ ================================================================================ -= vendor/github.com/aws/aws-sdk-go/service/sts licensed under: = += vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry licensed under: = Apache License @@ -8724,7 +8724,7 @@ SOFTWARE. same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [yyyy] [name of copyright owner] + Copyright 2016 Microsoft Corporation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -8738,12 +8738,12 @@ SOFTWARE. See the License for the specific language governing permissions and limitations under the License. -= vendor/github.com/aws/aws-sdk-go/LICENSE.txt 3b83ef96387f14655fc854ddc3c6bd57 += vendor/github.com/Azure/azure-sdk-for-go/LICENSE cce6fd055830ca30ff78fdf077e870d6 ================================================================================ ================================================================================ -= vendor/github.com/Azure/azure-sdk-for-go/arm/compute licensed under: = += vendor/github.com/Azure/azure-sdk-for-go/arm/disk licensed under: = Apache License @@ -8953,7 +8953,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry licensed under: = += vendor/github.com/Azure/azure-sdk-for-go/arm/network licensed under: = Apache License @@ -9163,7 +9163,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/Azure/azure-sdk-for-go/arm/disk licensed under: = += vendor/github.com/Azure/azure-sdk-for-go/arm/storage licensed under: = Apache License @@ -9373,7 +9373,7 @@ SOFTWARE. ================================================================================ -= vendor/github.com/Azure/azure-sdk-for-go/arm/network licensed under: = += vendor/github.com/Azure/azure-sdk-for-go/storage licensed under: = Apache License @@ -9583,485 +9583,65 @@ SOFTWARE. ================================================================================ -= vendor/github.com/Azure/azure-sdk-for-go/arm/storage licensed under: = - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. += vendor/github.com/Azure/go-ansiterm licensed under: = - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +The MIT License (MIT) - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +Copyright (c) 2015 Microsoft Corporation - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. += vendor/github.com/Azure/go-ansiterm/LICENSE 6000442264015a23894024af9930539b +================================================================================ - END OF TERMS AND CONDITIONS - APPENDIX: How to apply the Apache License to your work. +================================================================================ += vendor/github.com/Azure/go-ansiterm/winterm licensed under: = - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. +The MIT License (MIT) - Copyright 2016 Microsoft Corporation +Copyright (c) 2015 Microsoft Corporation - 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 +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - http://www.apache.org/licenses/LICENSE-2.0 +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. - 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. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -= vendor/github.com/Azure/azure-sdk-for-go/LICENSE cce6fd055830ca30ff78fdf077e870d6 += vendor/github.com/Azure/go-ansiterm/LICENSE 6000442264015a23894024af9930539b ================================================================================ ================================================================================ -= vendor/github.com/Azure/azure-sdk-for-go/storage licensed under: = - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2016 Microsoft Corporation - - 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. - -= vendor/github.com/Azure/azure-sdk-for-go/LICENSE cce6fd055830ca30ff78fdf077e870d6 -================================================================================ - - -================================================================================ -= vendor/github.com/Azure/go-ansiterm licensed under: = - -The MIT License (MIT) - -Copyright (c) 2015 Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -= vendor/github.com/Azure/go-ansiterm/LICENSE 6000442264015a23894024af9930539b -================================================================================ - - -================================================================================ -= vendor/github.com/Azure/go-ansiterm/winterm licensed under: = - -The MIT License (MIT) - -Copyright (c) 2015 Microsoft Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -= vendor/github.com/Azure/go-ansiterm/LICENSE 6000442264015a23894024af9930539b -================================================================================ - - -================================================================================ -= vendor/github.com/Azure/go-autorest/autorest licensed under: = += vendor/github.com/Azure/go-autorest/autorest licensed under: = Apache License @@ -44932,6 +44512,45 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ +================================================================================ += vendor/github.com/golang/protobuf/ptypes/struct licensed under: = + +Go support for Protocol Buffers - Google's data interchange format + +Copyright 2010 The Go Authors. All rights reserved. +https://github.com/golang/protobuf + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + += vendor/github.com/golang/protobuf/LICENSE 14db3a56c3796a940ba32948a15f97d0 +================================================================================ + + ================================================================================ = vendor/github.com/golang/protobuf/ptypes/timestamp licensed under: = @@ -58576,7 +58195,7 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members licensed under: = += vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners licensed under: = Copyright 2012-2013 Rackspace, Inc. @@ -58775,7 +58394,7 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors licensed under: = += vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers licensed under: = Copyright 2012-2013 Rackspace, Inc. @@ -58974,7 +58593,7 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools licensed under: = += vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors licensed under: = Copyright 2012-2013 Rackspace, Inc. @@ -59173,7 +58792,7 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips licensed under: = += vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools licensed under: = Copyright 2012-2013 Rackspace, Inc. @@ -59372,7 +58991,7 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners licensed under: = += vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups licensed under: = Copyright 2012-2013 Rackspace, Inc. @@ -59571,7 +59190,7 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers licensed under: = += vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules licensed under: = Copyright 2012-2013 Rackspace, Inc. @@ -59770,7 +59389,7 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors licensed under: = += vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports licensed under: = Copyright 2012-2013 Rackspace, Inc. @@ -59969,7 +59588,7 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools licensed under: = += vendor/github.com/gophercloud/gophercloud/openstack/utils licensed under: = Copyright 2012-2013 Rackspace, Inc. @@ -60168,7 +59787,7 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups licensed under: = += vendor/github.com/gophercloud/gophercloud/pagination licensed under: = Copyright 2012-2013 Rackspace, Inc. @@ -60367,933 +59986,137 @@ specific language governing permissions and limitations under the License. ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules licensed under: = += vendor/github.com/gorilla/context licensed under: = -Copyright 2012-2013 Rackspace, Inc. +Copyright (c) 2012 Rodrigo Moraes. All rights reserved. -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 +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - http://www.apache.org/licenses/LICENSE-2.0 + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. -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 SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------- - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ += vendor/github.com/gorilla/context/LICENSE c50f6bd9c1e15ed0bad3bea18e3c1b7f +================================================================================ - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - 1. Definitions. +================================================================================ += vendor/github.com/gorilla/mux licensed under: = - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +Copyright (c) 2012 Rodrigo Moraes. All rights reserved. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. += vendor/github.com/gorilla/mux/LICENSE c50f6bd9c1e15ed0bad3bea18e3c1b7f +================================================================================ - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). +================================================================================ += vendor/github.com/gorilla/websocket licensed under: = - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. +Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: += vendor/github.com/gorilla/websocket/LICENSE c007b54a1743d596f46b2748d9f8c044 +================================================================================ - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +================================================================================ += vendor/github.com/gregjones/httpcache licensed under: = - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +Copyright © 2012 Greg Jones (greg.jones@gmail.com) - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. += vendor/github.com/gregjones/httpcache/LICENSE.txt 3cfef421226b2dacde78a4871380ac24 +================================================================================ - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +================================================================================ += vendor/github.com/gregjones/httpcache/diskcache licensed under: = - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +Copyright © 2012 Greg Jones (greg.jones@gmail.com) - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - END OF TERMS AND CONDITIONS +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -= vendor/github.com/gophercloud/gophercloud/LICENSE dd19699707373c2ca31531a659130416 +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. += vendor/github.com/gregjones/httpcache/LICENSE.txt 3cfef421226b2dacde78a4871380ac24 ================================================================================ ================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports licensed under: = - -Copyright 2012-2013 Rackspace, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. += vendor/github.com/grpc-ecosystem/go-grpc-prometheus licensed under: = ------- - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - -= vendor/github.com/gophercloud/gophercloud/LICENSE dd19699707373c2ca31531a659130416 -================================================================================ - - -================================================================================ -= vendor/github.com/gophercloud/gophercloud/openstack/utils licensed under: = - -Copyright 2012-2013 Rackspace, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. - ------- - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - -= vendor/github.com/gophercloud/gophercloud/LICENSE dd19699707373c2ca31531a659130416 -================================================================================ - - -================================================================================ -= vendor/github.com/gophercloud/gophercloud/pagination licensed under: = - -Copyright 2012-2013 Rackspace, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. - ------- - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - -= vendor/github.com/gophercloud/gophercloud/LICENSE dd19699707373c2ca31531a659130416 -================================================================================ - - -================================================================================ -= vendor/github.com/gorilla/context licensed under: = - -Copyright (c) 2012 Rodrigo Moraes. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -= vendor/github.com/gorilla/context/LICENSE c50f6bd9c1e15ed0bad3bea18e3c1b7f -================================================================================ - - -================================================================================ -= vendor/github.com/gorilla/mux licensed under: = - -Copyright (c) 2012 Rodrigo Moraes. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -= vendor/github.com/gorilla/mux/LICENSE c50f6bd9c1e15ed0bad3bea18e3c1b7f -================================================================================ - - -================================================================================ -= vendor/github.com/gorilla/websocket licensed under: = - -Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -= vendor/github.com/gorilla/websocket/LICENSE c007b54a1743d596f46b2748d9f8c044 -================================================================================ - - -================================================================================ -= vendor/github.com/gregjones/httpcache licensed under: = - -Copyright © 2012 Greg Jones (greg.jones@gmail.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -= vendor/github.com/gregjones/httpcache/LICENSE.txt 3cfef421226b2dacde78a4871380ac24 -================================================================================ - - -================================================================================ -= vendor/github.com/gregjones/httpcache/diskcache licensed under: = - -Copyright © 2012 Greg Jones (greg.jones@gmail.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -= vendor/github.com/gregjones/httpcache/LICENSE.txt 3cfef421226b2dacde78a4871380ac24 -================================================================================ - - -================================================================================ -= vendor/github.com/grpc-ecosystem/go-grpc-prometheus licensed under: = - - Apache License + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -67509,405 +66332,7 @@ THE SOFTWARE. ================================================================================ -= vendor/github.com/libopenstorage/openstorage/pkg/parser licensed under: = - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2015 Openstorage.org. - - 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. - -= vendor/github.com/libopenstorage/openstorage/LICENSE 40c3e1c9eacda859a17048003909a2f8 -================================================================================ - - -================================================================================ -= vendor/github.com/libopenstorage/openstorage/pkg/units licensed under: = - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2015 Openstorage.org. - - 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. - -= vendor/github.com/libopenstorage/openstorage/LICENSE 40c3e1c9eacda859a17048003909a2f8 -================================================================================ - - -================================================================================ -= vendor/github.com/libopenstorage/openstorage/volume licensed under: = += vendor/github.com/libopenstorage/openstorage/pkg/parser licensed under: = Apache License @@ -68106,9 +66531,10 @@ THE SOFTWARE. ================================================================================ -= vendor/github.com/lpabon/godbc licensed under: = += vendor/github.com/libopenstorage/openstorage/pkg/units licensed under: = -Apache License + + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -68285,18 +66711,7 @@ Apache License END OF TERMS AND CONDITIONS - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} + Copyright 2015 Openstorage.org. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -68309,152 +66724,214 @@ Apache License 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. -= vendor/github.com/lpabon/godbc/LICENSE 6c4db32a2fa8717faffa1d4f10136f47 -================================================================================ - += vendor/github.com/libopenstorage/openstorage/LICENSE 40c3e1c9eacda859a17048003909a2f8 ================================================================================ -= vendor/github.com/lxn/win licensed under: = - -Copyright (c) 2010 The win Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. The names of the authors may not be used to endorse or promote products - derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -= vendor/github.com/lxn/win/LICENSE 794c9d5b17cb1deeb131552549b6e7f2 ================================================================================ += vendor/github.com/libopenstorage/openstorage/volume licensed under: = -================================================================================ -= vendor/github.com/magiconair/properties licensed under: = - -goproperties - properties file decoder for Go + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -Copyright (c) 2013-2014 - Frank Schroeder + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -All rights reserved. + 1. Definitions. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. -= vendor/github.com/magiconair/properties/LICENSE c383a608fb9a0d227953e928803b9631 -================================================================================ + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -================================================================================ -= vendor/github.com/mailru/easyjson/buffer licensed under: = + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -Copyright (c) 2016 Mail.Ru Group + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -= vendor/github.com/mailru/easyjson/LICENSE 819e81c2ec13e1bbc47dc5e90bb4d88b -================================================================================ + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -================================================================================ -= vendor/github.com/mailru/easyjson/jlexer licensed under: = + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -Copyright (c) 2016 Mail.Ru Group + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -= vendor/github.com/mailru/easyjson/LICENSE 819e81c2ec13e1bbc47dc5e90bb4d88b -================================================================================ + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -================================================================================ -= vendor/github.com/mailru/easyjson/jwriter licensed under: = + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -Copyright (c) 2016 Mail.Ru Group + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + END OF TERMS AND CONDITIONS -= vendor/github.com/mailru/easyjson/LICENSE 819e81c2ec13e1bbc47dc5e90bb4d88b -================================================================================ + Copyright 2015 Openstorage.org. + 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 -================================================================================ -= vendor/github.com/MakeNowJust/heredoc licensed under: = + http://www.apache.org/licenses/LICENSE-2.0 -The MIT License (MIT) - -Copyright (c) 2014 TSUYUSATO Kitsune - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. + 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. -= vendor/github.com/MakeNowJust/heredoc/LICENSE 15e1c8f1d3c204c05f71630afacbc92b += vendor/github.com/libopenstorage/openstorage/LICENSE 40c3e1c9eacda859a17048003909a2f8 ================================================================================ ================================================================================ -= vendor/github.com/matttproud/golang_protobuf_extensions/pbutil licensed under: = += vendor/github.com/lpabon/godbc licensed under: = - Apache License +Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -68634,7 +67111,7 @@ THE SOFTWARE. APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" + boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a @@ -68642,7 +67119,7 @@ THE SOFTWARE. same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2013 Matt T. Proud + Copyright {yyyy} {name of copyright owner} Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -68655,47 +67132,125 @@ THE SOFTWARE. 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. += vendor/github.com/lpabon/godbc/LICENSE 6c4db32a2fa8717faffa1d4f10136f47 +================================================================================ + -= vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE a45ffb9ad39d4b4c1053bb27f6bb4272 ================================================================================ += vendor/github.com/lxn/win licensed under: = + +Copyright (c) 2010 The win Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The names of the authors may not be used to endorse or promote products + derived from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. += vendor/github.com/lxn/win/LICENSE 794c9d5b17cb1deeb131552549b6e7f2 ================================================================================ -= vendor/github.com/Microsoft/go-winio licensed under: = -The MIT License (MIT) -Copyright (c) 2015 Microsoft +================================================================================ += vendor/github.com/magiconair/properties licensed under: = -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +goproperties - properties file decoder for Go -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +Copyright (c) 2013-2014 - Frank Schroeder -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -= vendor/github.com/Microsoft/go-winio/LICENSE 69205ff73858f2c22b2ca135b557e8ef +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + += vendor/github.com/magiconair/properties/LICENSE c383a608fb9a0d227953e928803b9631 ================================================================================ ================================================================================ -= vendor/github.com/Microsoft/hcsshim licensed under: = += vendor/github.com/mailru/easyjson/buffer licensed under: = + +Copyright (c) 2016 Mail.Ru Group + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + += vendor/github.com/mailru/easyjson/LICENSE 819e81c2ec13e1bbc47dc5e90bb4d88b +================================================================================ + + +================================================================================ += vendor/github.com/mailru/easyjson/jlexer licensed under: = + +Copyright (c) 2016 Mail.Ru Group + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + += vendor/github.com/mailru/easyjson/LICENSE 819e81c2ec13e1bbc47dc5e90bb4d88b +================================================================================ + + +================================================================================ += vendor/github.com/mailru/easyjson/jwriter licensed under: = + +Copyright (c) 2016 Mail.Ru Group + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + += vendor/github.com/mailru/easyjson/LICENSE 819e81c2ec13e1bbc47dc5e90bb4d88b +================================================================================ + + +================================================================================ += vendor/github.com/MakeNowJust/heredoc licensed under: = The MIT License (MIT) -Copyright (c) 2015 Microsoft +Copyright (c) 2014-2017 TSUYUSATO Kitsune Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -68704,22 +67259,23 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -= vendor/github.com/Microsoft/hcsshim/LICENSE d4c2cbbea5ee1e7c86dff68a7073718e +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + += vendor/github.com/MakeNowJust/heredoc/LICENSE 59c4411f6d7dfdaa85623e672d3d4438 ================================================================================ ================================================================================ -= vendor/github.com/miekg/coredns/middleware/etcd/msg licensed under: = += vendor/github.com/matttproud/golang_protobuf_extensions/pbutil licensed under: = Apache License Version 2.0, January 2004 @@ -68901,7 +67457,7 @@ SOFTWARE. APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" + boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a @@ -68909,7 +67465,7 @@ SOFTWARE. same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright 2013 Matt T. Proud Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -68923,7 +67479,65 @@ SOFTWARE. See the License for the specific language governing permissions and limitations under the License. -= vendor/github.com/miekg/coredns/LICENSE e3fc50a88d0a364313df4b21ef20c29e += vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE a45ffb9ad39d4b4c1053bb27f6bb4272 +================================================================================ + + +================================================================================ += vendor/github.com/Microsoft/go-winio licensed under: = + +The MIT License (MIT) + +Copyright (c) 2015 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + += vendor/github.com/Microsoft/go-winio/LICENSE 69205ff73858f2c22b2ca135b557e8ef +================================================================================ + + +================================================================================ += vendor/github.com/Microsoft/hcsshim licensed under: = + +The MIT License (MIT) + +Copyright (c) 2015 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. += vendor/github.com/Microsoft/hcsshim/LICENSE d4c2cbbea5ee1e7c86dff68a7073718e ================================================================================ @@ -86214,41 +84828,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ -================================================================================ -= vendor/google.golang.org/api/cloudkms/v1 licensed under: = - -Copyright (c) 2011 Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -= vendor/google.golang.org/api/LICENSE a651bb3d8b1c412632e28823bb432b40 -================================================================================ - - ================================================================================ = vendor/google.golang.org/api/cloudmonitoring/v2beta2 licensed under: = @@ -86424,41 +85003,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ -================================================================================ -= vendor/google.golang.org/api/dns/v1 licensed under: = - -Copyright (c) 2011 Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -= vendor/google.golang.org/api/LICENSE a651bb3d8b1c412632e28823bb432b40 -================================================================================ - - ================================================================================ = vendor/google.golang.org/api/gensupport licensed under: = @@ -91388,6 +89932,426 @@ Apache License ================================================================================ +================================================================================ += vendor/k8s.io/kube-openapi/pkg/util/proto licensed under: = + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + += vendor/k8s.io/kube-openapi/LICENSE 3b83ef96387f14655fc854ddc3c6bd57 +================================================================================ + + +================================================================================ += vendor/k8s.io/kube-openapi/pkg/util/proto/validation licensed under: = + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + += vendor/k8s.io/kube-openapi/LICENSE 3b83ef96387f14655fc854ddc3c6bd57 +================================================================================ + + ================================================================================ = vendor/k8s.io/utils/exec licensed under: = diff --git a/vendor/k8s.io/kubernetes/OWNERS_ALIASES b/vendor/k8s.io/kubernetes/OWNERS_ALIASES index 9662e4677..d5f3f3dd1 100644 --- a/vendor/k8s.io/kubernetes/OWNERS_ALIASES +++ b/vendor/k8s.io/kubernetes/OWNERS_ALIASES @@ -175,4 +175,48 @@ aliases: - radhikpac - jpbetz - cmluciano - + - bsalamat + api-approvers: + - erictune + - lavalamp + - smarterclayton + - thockin + - liggitt + # - bgrant0607 # manual escalations only + api-reviewers: + - erictune + - lavalamp + - smarterclayton + - thockin + - liggitt + - wojtek-t + - deads2k + - yujuhong + - brendandburns + - derekwaynecarr + - caesarxuchao + - vishh + - mikedanese + - nikhiljindal + - gmarek + - davidopp + - pmorie + - sttts + - dchen1107 + - saad-ali + - zmerlynn + - luxas + - janetkuo + - justinsb + - pwittrock + - roberthbailey + - ncdc + - tallclair + - yifan-gu + - eparis + - mwielgus + - timothysc + - soltysh + - piosz + - jsafrane + - jbeda diff --git a/vendor/k8s.io/kubernetes/api/OWNERS b/vendor/k8s.io/kubernetes/api/OWNERS index 4d61bb354..8f7783f9f 100644 --- a/vendor/k8s.io/kubernetes/api/OWNERS +++ b/vendor/k8s.io/kubernetes/api/OWNERS @@ -1,44 +1,4 @@ approvers: -- erictune -- lavalamp -- smarterclayton -- thockin -- liggitt -# - bgrant0607 # manual escalations only +- api-approvers reviewers: -- thockin -- lavalamp -- smarterclayton -- wojtek-t -- deads2k -- yujuhong -- brendandburns -- derekwaynecarr -- caesarxuchao -- vishh -- mikedanese -- liggitt -- nikhiljindal -- gmarek -- erictune -- davidopp -- pmorie -- sttts -- dchen1107 -- saad-ali -- zmerlynn -- luxas -- janetkuo -- justinsb -- pwittrock -- roberthbailey -- ncdc -- tallclair -- yifan-gu -- eparis -- mwielgus -- timothysc -- soltysh -- piosz -- jsafrane -- jbeda +- api-reviewers diff --git a/vendor/k8s.io/kubernetes/api/openapi-spec/README.md b/vendor/k8s.io/kubernetes/api/openapi-spec/README.md index 31e0ed851..59fbd9010 100644 --- a/vendor/k8s.io/kubernetes/api/openapi-spec/README.md +++ b/vendor/k8s.io/kubernetes/api/openapi-spec/README.md @@ -4,7 +4,7 @@ This folder contains an [OpenAPI specification][openapi] for Kubernetes API. ## Vendor Extensions -Kuberntes extends OpenAPI using these extensions. Note the version that +Kuberntes extends OpenAPI using these extensions. Note the version that extensions has been added. ### `x-kubernetes-group-version-kind` @@ -56,5 +56,5 @@ For example: ### `x-kubernetes-patch-strategy` and `x-kubernetes-patch-merge-key` -Some of the definitions may have these extensions. For more information about PatchStrategy and PatchMergeKey see -[strategic-merge-patch] (https://github.com/kubernetes/community/blob/3a1e6d22f812751ee88eccf7c59101852de63d5b/contributors/devel/strategic-merge-patch.md). +Some of the definitions may have these extensions. For more information about PatchStrategy and PatchMergeKey see +[strategic-merge-patch] (https://github.com/kubernetes/community/blob/master/contributors/devel/strategic-merge-patch.md). diff --git a/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json b/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json index 214870b74..329931c11 100644 --- a/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json +++ b/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json @@ -1294,7 +1294,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -1800,7 +1800,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -2306,7 +2306,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -2812,7 +2812,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -3318,7 +3318,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -3984,7 +3984,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -5796,7 +5796,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -6302,7 +6302,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -7128,7 +7128,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -7794,7 +7794,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -8300,7 +8300,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -9608,7 +9608,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -10320,7 +10320,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -11574,7 +11574,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -18835,9 +18835,9 @@ } } }, - "/apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations": { + "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations": { "get": { - "description": "list or watch objects of kind ExternalAdmissionHookConfiguration", + "description": "list or watch objects of kind InitializerConfiguration", "consumes": [ "*/*" ], @@ -18854,7 +18854,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "listAdmissionregistrationV1alpha1ExternalAdmissionHookConfiguration", + "operationId": "listAdmissionregistrationV1alpha1InitializerConfiguration", "parameters": [ { "uniqueItems": true, @@ -18917,7 +18917,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfigurationList" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList" } }, "401": { @@ -18927,12 +18927,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", + "kind": "InitializerConfiguration", "version": "v1alpha1" } }, "post": { - "description": "create an ExternalAdmissionHookConfiguration", + "description": "create an InitializerConfiguration", "consumes": [ "*/*" ], @@ -18947,14 +18947,14 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "createAdmissionregistrationV1alpha1ExternalAdmissionHookConfiguration", + "operationId": "createAdmissionregistrationV1alpha1InitializerConfiguration", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" } } ], @@ -18962,19 +18962,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" } }, "401": { @@ -18984,12 +18984,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", + "kind": "InitializerConfiguration", "version": "v1alpha1" } }, "delete": { - "description": "delete collection of ExternalAdmissionHookConfiguration", + "description": "delete collection of InitializerConfiguration", "consumes": [ "*/*" ], @@ -19004,7 +19004,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "deleteAdmissionregistrationV1alpha1CollectionExternalAdmissionHookConfiguration", + "operationId": "deleteAdmissionregistrationV1alpha1CollectionInitializerConfiguration", "parameters": [ { "uniqueItems": true, @@ -19077,7 +19077,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", + "kind": "InitializerConfiguration", "version": "v1alpha1" } }, @@ -19091,9 +19091,9 @@ } ] }, - "/apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations/{name}": { + "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}": { "get": { - "description": "read the specified ExternalAdmissionHookConfiguration", + "description": "read the specified InitializerConfiguration", "consumes": [ "*/*" ], @@ -19108,7 +19108,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "readAdmissionregistrationV1alpha1ExternalAdmissionHookConfiguration", + "operationId": "readAdmissionregistrationV1alpha1InitializerConfiguration", "parameters": [ { "uniqueItems": true, @@ -19129,7 +19129,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" } }, "401": { @@ -19139,12 +19139,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", + "kind": "InitializerConfiguration", "version": "v1alpha1" } }, "put": { - "description": "replace the specified ExternalAdmissionHookConfiguration", + "description": "replace the specified InitializerConfiguration", "consumes": [ "*/*" ], @@ -19159,14 +19159,14 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "replaceAdmissionregistrationV1alpha1ExternalAdmissionHookConfiguration", + "operationId": "replaceAdmissionregistrationV1alpha1InitializerConfiguration", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" } } ], @@ -19174,13 +19174,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" } }, "401": { @@ -19190,12 +19190,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", + "kind": "InitializerConfiguration", "version": "v1alpha1" } }, "delete": { - "description": "delete an ExternalAdmissionHookConfiguration", + "description": "delete an InitializerConfiguration", "consumes": [ "*/*" ], @@ -19210,7 +19210,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "deleteAdmissionregistrationV1alpha1ExternalAdmissionHookConfiguration", + "operationId": "deleteAdmissionregistrationV1alpha1InitializerConfiguration", "parameters": [ { "name": "body", @@ -19237,7 +19237,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -19256,12 +19256,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", + "kind": "InitializerConfiguration", "version": "v1alpha1" } }, "patch": { - "description": "partially update the specified ExternalAdmissionHookConfiguration", + "description": "partially update the specified InitializerConfiguration", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -19278,7 +19278,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "patchAdmissionregistrationV1alpha1ExternalAdmissionHookConfiguration", + "operationId": "patchAdmissionregistrationV1alpha1InitializerConfiguration", "parameters": [ { "name": "body", @@ -19293,7 +19293,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" } }, "401": { @@ -19303,7 +19303,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", + "kind": "InitializerConfiguration", "version": "v1alpha1" } }, @@ -19311,7 +19311,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the ExternalAdmissionHookConfiguration", + "description": "name of the InitializerConfiguration", "name": "name", "in": "path", "required": true @@ -19325,9 +19325,9 @@ } ] }, - "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations": { + "/apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations": { "get": { - "description": "list or watch objects of kind InitializerConfiguration", + "description": "list or watch objects of kind MutatingWebhookConfiguration", "consumes": [ "*/*" ], @@ -19344,7 +19344,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "listAdmissionregistrationV1alpha1InitializerConfiguration", + "operationId": "listAdmissionregistrationV1alpha1MutatingWebhookConfiguration", "parameters": [ { "uniqueItems": true, @@ -19407,7 +19407,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfigurationList" } }, "401": { @@ -19417,12 +19417,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", + "kind": "MutatingWebhookConfiguration", "version": "v1alpha1" } }, "post": { - "description": "create an InitializerConfiguration", + "description": "create a MutatingWebhookConfiguration", "consumes": [ "*/*" ], @@ -19437,14 +19437,14 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "createAdmissionregistrationV1alpha1InitializerConfiguration", + "operationId": "createAdmissionregistrationV1alpha1MutatingWebhookConfiguration", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" } } ], @@ -19452,19 +19452,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" } }, "401": { @@ -19474,12 +19474,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", + "kind": "MutatingWebhookConfiguration", "version": "v1alpha1" } }, "delete": { - "description": "delete collection of InitializerConfiguration", + "description": "delete collection of MutatingWebhookConfiguration", "consumes": [ "*/*" ], @@ -19494,7 +19494,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "deleteAdmissionregistrationV1alpha1CollectionInitializerConfiguration", + "operationId": "deleteAdmissionregistrationV1alpha1CollectionMutatingWebhookConfiguration", "parameters": [ { "uniqueItems": true, @@ -19567,7 +19567,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", + "kind": "MutatingWebhookConfiguration", "version": "v1alpha1" } }, @@ -19581,9 +19581,9 @@ } ] }, - "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}": { + "/apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations/{name}": { "get": { - "description": "read the specified InitializerConfiguration", + "description": "read the specified MutatingWebhookConfiguration", "consumes": [ "*/*" ], @@ -19598,7 +19598,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "readAdmissionregistrationV1alpha1InitializerConfiguration", + "operationId": "readAdmissionregistrationV1alpha1MutatingWebhookConfiguration", "parameters": [ { "uniqueItems": true, @@ -19619,7 +19619,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" } }, "401": { @@ -19629,12 +19629,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", + "kind": "MutatingWebhookConfiguration", "version": "v1alpha1" } }, "put": { - "description": "replace the specified InitializerConfiguration", + "description": "replace the specified MutatingWebhookConfiguration", "consumes": [ "*/*" ], @@ -19649,14 +19649,14 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "replaceAdmissionregistrationV1alpha1InitializerConfiguration", + "operationId": "replaceAdmissionregistrationV1alpha1MutatingWebhookConfiguration", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" } } ], @@ -19664,13 +19664,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" } }, "401": { @@ -19680,12 +19680,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", + "kind": "MutatingWebhookConfiguration", "version": "v1alpha1" } }, "delete": { - "description": "delete an InitializerConfiguration", + "description": "delete a MutatingWebhookConfiguration", "consumes": [ "*/*" ], @@ -19700,7 +19700,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "deleteAdmissionregistrationV1alpha1InitializerConfiguration", + "operationId": "deleteAdmissionregistrationV1alpha1MutatingWebhookConfiguration", "parameters": [ { "name": "body", @@ -19727,7 +19727,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -19746,12 +19746,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", + "kind": "MutatingWebhookConfiguration", "version": "v1alpha1" } }, "patch": { - "description": "partially update the specified InitializerConfiguration", + "description": "partially update the specified MutatingWebhookConfiguration", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -19768,7 +19768,7 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "patchAdmissionregistrationV1alpha1InitializerConfiguration", + "operationId": "patchAdmissionregistrationV1alpha1MutatingWebhookConfiguration", "parameters": [ { "name": "body", @@ -19783,7 +19783,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" } }, "401": { @@ -19793,7 +19793,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", + "kind": "MutatingWebhookConfiguration", "version": "v1alpha1" } }, @@ -19801,7 +19801,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the InitializerConfiguration", + "description": "name of the MutatingWebhookConfiguration", "name": "name", "in": "path", "required": true @@ -19815,9 +19815,9 @@ } ] }, - "/apis/admissionregistration.k8s.io/v1alpha1/watch/externaladmissionhookconfigurations": { + "/apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations": { "get": { - "description": "watch individual changes to a list of ExternalAdmissionHookConfiguration", + "description": "list or watch objects of kind ValidatingWebhookConfiguration", "consumes": [ "*/*" ], @@ -19834,103 +19834,149 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "watchAdmissionregistrationV1alpha1ExternalAdmissionHookConfigurationList", + "operationId": "listAdmissionregistrationV1alpha1ValidatingWebhookConfiguration", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfigurationList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", + "kind": "ValidatingWebhookConfiguration", "version": "v1alpha1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" + "post": { + "description": "create a ValidatingWebhookConfiguration", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1alpha1" + ], + "operationId": "createAdmissionregistrationV1alpha1ValidatingWebhookConfiguration", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1alpha1" } - ] - }, - "/apis/admissionregistration.k8s.io/v1alpha1/watch/externaladmissionhookconfigurations/{name}": { - "get": { - "description": "watch changes to an object of kind ExternalAdmissionHookConfiguration", + }, + "delete": { + "description": "delete collection of ValidatingWebhookConfiguration", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -19938,111 +19984,103 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "watchAdmissionregistrationV1alpha1ExternalAdmissionHookConfiguration", + "operationId": "deleteAdmissionregistrationV1alpha1CollectionValidatingWebhookConfiguration", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", + "kind": "ValidatingWebhookConfiguration", "version": "v1alpha1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ExternalAdmissionHookConfiguration", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations": { + "/apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations/{name}": { "get": { - "description": "watch individual changes to a list of InitializerConfiguration", + "description": "read the specified ValidatingWebhookConfiguration", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -20050,103 +20088,50 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "watchAdmissionregistrationV1alpha1InitializerConfigurationList", + "operationId": "readAdmissionregistrationV1alpha1ValidatingWebhookConfiguration", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", + "kind": "ValidatingWebhookConfiguration", "version": "v1alpha1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations/{name}": { - "get": { - "description": "watch changes to an object of kind InitializerConfiguration", + "put": { + "description": "replace the specified ValidatingWebhookConfiguration", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -20154,240 +20139,86 @@ "tags": [ "admissionregistration_v1alpha1" ], - "operationId": "watchAdmissionregistrationV1alpha1InitializerConfiguration", + "operationId": "replaceAdmissionregistrationV1alpha1ValidatingWebhookConfiguration", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" + } + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", + "kind": "ValidatingWebhookConfiguration", "version": "v1alpha1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the InitializerConfiguration", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apiextensions.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions" - ], - "operationId": "getApiextensionsAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "getApiextensionsV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions": { - "get": { - "description": "list or watch objects of kind CustomResourceDefinition", + "delete": { + "description": "delete a ValidatingWebhookConfiguration", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apiextensions_v1beta1" + "admissionregistration_v1alpha1" ], - "operationId": "listApiextensionsV1beta1CustomResourceDefinition", + "operationId": "deleteAdmissionregistrationV1alpha1ValidatingWebhookConfiguration", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } }, { "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", "in": "query" }, { "uniqueItems": true, "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", "in": "query" } ], @@ -20395,24 +20226,26 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1alpha1" } }, - "post": { - "description": "create a CustomResourceDefinition", + "patch": { + "description": "partially update the specified ValidatingWebhookConfiguration", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -20423,16 +20256,16 @@ "https" ], "tags": [ - "apiextensions_v1beta1" + "admissionregistration_v1alpha1" ], - "operationId": "createApiextensionsV1beta1CustomResourceDefinition", + "operationId": "patchAdmissionregistrationV1alpha1ValidatingWebhookConfiguration", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } } ], @@ -20440,359 +20273,327 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1alpha1" } }, - "delete": { - "description": "delete collection of CustomResourceDefinition", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ValidatingWebhookConfiguration", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations": { + "get": { + "description": "watch individual changes to a list of InitializerConfiguration", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "deleteApiextensionsV1beta1CollectionCustomResourceDefinition", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "admissionregistration_v1alpha1" ], + "operationId": "watchAdmissionregistrationV1alpha1InitializerConfigurationList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" + "group": "admissionregistration.k8s.io", + "kind": "InitializerConfiguration", + "version": "v1alpha1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}": { + "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations/{name}": { "get": { - "description": "read the specified CustomResourceDefinition", + "description": "watch changes to an object of kind InitializerConfiguration", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "readApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "admissionregistration_v1alpha1" ], + "operationId": "watchAdmissionregistrationV1alpha1InitializerConfiguration", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" + "group": "admissionregistration.k8s.io", + "kind": "InitializerConfiguration", + "version": "v1alpha1" } }, - "put": { - "description": "replace the specified CustomResourceDefinition", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the InitializerConfiguration", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/admissionregistration.k8s.io/v1alpha1/watch/mutatingwebhookconfigurations": { + "get": { + "description": "watch individual changes to a list of MutatingWebhookConfiguration", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - } + "admissionregistration_v1alpha1" ], + "operationId": "watchAdmissionregistrationV1alpha1MutatingWebhookConfigurationList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1alpha1" } }, - "delete": { - "description": "delete a CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "deleteApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified CustomResourceDefinition", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "patchApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the CustomResourceDefinition", - "name": "name", - "in": "path", - "required": true + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -20800,66 +20601,108 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status": { - "put": { - "description": "replace status of the specified CustomResourceDefinition", + "/apis/admissionregistration.k8s.io/v1alpha1/watch/mutatingwebhookconfigurations/{name}": { + "get": { + "description": "watch changes to an object of kind MutatingWebhookConfiguration", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - } + "admissionregistration_v1alpha1" ], + "operationId": "watchAdmissionregistrationV1alpha1MutatingWebhookConfiguration", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1alpha1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the CustomResourceDefinition", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the MutatingWebhookConfiguration", "name": "name", "in": "path", "required": true @@ -20870,12 +20713,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions": { + "/apis/admissionregistration.k8s.io/v1alpha1/watch/validatingwebhookconfigurations": { "get": { - "description": "watch individual changes to a list of CustomResourceDefinition", + "description": "watch individual changes to a list of ValidatingWebhookConfiguration", "consumes": [ "*/*" ], @@ -20890,9 +20754,9 @@ "https" ], "tags": [ - "apiextensions_v1beta1" + "admissionregistration_v1alpha1" ], - "operationId": "watchApiextensionsV1beta1CustomResourceDefinitionList", + "operationId": "watchAdmissionregistrationV1alpha1ValidatingWebhookConfigurationList", "responses": { "200": { "description": "OK", @@ -20906,9 +20770,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1alpha1" } }, "parameters": [ @@ -20977,9 +20841,9 @@ } ] }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}": { + "/apis/admissionregistration.k8s.io/v1alpha1/watch/validatingwebhookconfigurations/{name}": { "get": { - "description": "watch changes to an object of kind CustomResourceDefinition", + "description": "watch changes to an object of kind ValidatingWebhookConfiguration", "consumes": [ "*/*" ], @@ -20994,9 +20858,9 @@ "https" ], "tags": [ - "apiextensions_v1beta1" + "admissionregistration_v1alpha1" ], - "operationId": "watchApiextensionsV1beta1CustomResourceDefinition", + "operationId": "watchAdmissionregistrationV1alpha1ValidatingWebhookConfiguration", "responses": { "200": { "description": "OK", @@ -21010,9 +20874,9 @@ }, "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1alpha1" } }, "parameters": [ @@ -21054,7 +20918,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the CustomResourceDefinition", + "description": "name of the ValidatingWebhookConfiguration", "name": "name", "in": "path", "required": true @@ -21089,7 +20953,7 @@ } ] }, - "/apis/apiregistration.k8s.io/": { + "/apis/apiextensions.k8s.io/": { "get": { "description": "get information of a group", "consumes": [ @@ -21106,9 +20970,9 @@ "https" ], "tags": [ - "apiregistration" + "apiextensions" ], - "operationId": "getApiregistrationAPIGroup", + "operationId": "getApiextensionsAPIGroup", "responses": { "200": { "description": "OK", @@ -21122,7 +20986,7 @@ } } }, - "/apis/apiregistration.k8s.io/v1beta1/": { + "/apis/apiextensions.k8s.io/v1beta1/": { "get": { "description": "get available resources", "consumes": [ @@ -21139,9 +21003,9 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "getApiregistrationV1beta1APIResources", + "operationId": "getApiextensionsV1beta1APIResources", "responses": { "200": { "description": "OK", @@ -21155,9 +21019,9 @@ } } }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices": { + "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions": { "get": { - "description": "list or watch objects of kind APIService", + "description": "list or watch objects of kind CustomResourceDefinition", "consumes": [ "*/*" ], @@ -21172,9 +21036,9 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "listApiregistrationV1beta1APIService", + "operationId": "listApiextensionsV1beta1CustomResourceDefinition", "parameters": [ { "uniqueItems": true, @@ -21237,7 +21101,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList" } }, "401": { @@ -21246,13 +21110,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, "post": { - "description": "create an APIService", + "description": "create a CustomResourceDefinition", "consumes": [ "*/*" ], @@ -21265,16 +21129,16 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "createApiregistrationV1beta1APIService", + "operationId": "createApiextensionsV1beta1CustomResourceDefinition", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } } ], @@ -21282,19 +21146,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } }, "401": { @@ -21303,13 +21167,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, "delete": { - "description": "delete collection of APIService", + "description": "delete collection of CustomResourceDefinition", "consumes": [ "*/*" ], @@ -21322,9 +21186,9 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "deleteApiregistrationV1beta1CollectionAPIService", + "operationId": "deleteApiextensionsV1beta1CollectionCustomResourceDefinition", "parameters": [ { "uniqueItems": true, @@ -21396,8 +21260,8 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, @@ -21411,9 +21275,9 @@ } ] }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}": { + "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}": { "get": { - "description": "read the specified APIService", + "description": "read the specified CustomResourceDefinition", "consumes": [ "*/*" ], @@ -21426,9 +21290,9 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "readApiregistrationV1beta1APIService", + "operationId": "readApiextensionsV1beta1CustomResourceDefinition", "parameters": [ { "uniqueItems": true, @@ -21449,7 +21313,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } }, "401": { @@ -21458,13 +21322,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, "put": { - "description": "replace the specified APIService", + "description": "replace the specified CustomResourceDefinition", "consumes": [ "*/*" ], @@ -21477,16 +21341,16 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "replaceApiregistrationV1beta1APIService", + "operationId": "replaceApiextensionsV1beta1CustomResourceDefinition", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } } ], @@ -21494,13 +21358,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } }, "401": { @@ -21509,13 +21373,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, "delete": { - "description": "delete an APIService", + "description": "delete a CustomResourceDefinition", "consumes": [ "*/*" ], @@ -21528,9 +21392,9 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "deleteApiregistrationV1beta1APIService", + "operationId": "deleteApiextensionsV1beta1CustomResourceDefinition", "parameters": [ { "name": "body", @@ -21557,7 +21421,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -21575,13 +21439,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, "patch": { - "description": "partially update the specified APIService", + "description": "partially update the specified CustomResourceDefinition", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -21596,9 +21460,9 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "patchApiregistrationV1beta1APIService", + "operationId": "patchApiextensionsV1beta1CustomResourceDefinition", "parameters": [ { "name": "body", @@ -21613,7 +21477,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } }, "401": { @@ -21622,8 +21486,8 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, @@ -21631,7 +21495,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the APIService", + "description": "name of the CustomResourceDefinition", "name": "name", "in": "path", "required": true @@ -21645,9 +21509,9 @@ } ] }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status": { + "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status": { "put": { - "description": "replace status of the specified APIService", + "description": "replace status of the specified CustomResourceDefinition", "consumes": [ "*/*" ], @@ -21660,16 +21524,16 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "replaceApiregistrationV1beta1APIServiceStatus", + "operationId": "replaceApiextensionsV1beta1CustomResourceDefinitionStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } } ], @@ -21677,13 +21541,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" } }, "401": { @@ -21692,8 +21556,8 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, @@ -21701,7 +21565,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the APIService", + "description": "name of the CustomResourceDefinition", "name": "name", "in": "path", "required": true @@ -21715,9 +21579,9 @@ } ] }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices": { + "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions": { "get": { - "description": "watch individual changes to a list of APIService", + "description": "watch individual changes to a list of CustomResourceDefinition", "consumes": [ "*/*" ], @@ -21732,9 +21596,9 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "watchApiregistrationV1beta1APIServiceList", + "operationId": "watchApiextensionsV1beta1CustomResourceDefinitionList", "responses": { "200": { "description": "OK", @@ -21748,8 +21612,8 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, @@ -21819,9 +21683,9 @@ } ] }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}": { + "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}": { "get": { - "description": "watch changes to an object of kind APIService", + "description": "watch changes to an object of kind CustomResourceDefinition", "consumes": [ "*/*" ], @@ -21836,9 +21700,9 @@ "https" ], "tags": [ - "apiregistration_v1beta1" + "apiextensions_v1beta1" ], - "operationId": "watchApiregistrationV1beta1APIService", + "operationId": "watchApiextensionsV1beta1CustomResourceDefinition", "responses": { "200": { "description": "OK", @@ -21852,8 +21716,8 @@ }, "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", + "group": "apiextensions.k8s.io", + "kind": "CustomResourceDefinition", "version": "v1beta1" } }, @@ -21896,7 +21760,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the APIService", + "description": "name of the CustomResourceDefinition", "name": "name", "in": "path", "required": true @@ -21931,7 +21795,7 @@ } ] }, - "/apis/apps/": { + "/apis/apiregistration.k8s.io/": { "get": { "description": "get information of a group", "consumes": [ @@ -21948,9 +21812,9 @@ "https" ], "tags": [ - "apps" + "apiregistration" ], - "operationId": "getAppsAPIGroup", + "operationId": "getApiregistrationAPIGroup", "responses": { "200": { "description": "OK", @@ -21964,7 +21828,7 @@ } } }, - "/apis/apps/v1/": { + "/apis/apiregistration.k8s.io/v1beta1/": { "get": { "description": "get available resources", "consumes": [ @@ -21981,9 +21845,9 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "getAppsV1APIResources", + "operationId": "getApiregistrationV1beta1APIResources", "responses": { "200": { "description": "OK", @@ -21997,113 +21861,9 @@ } } }, - "/apis/apps/v1/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1DaemonSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets": { + "/apis/apiregistration.k8s.io/v1beta1/apiservices": { "get": { - "description": "list or watch objects of kind DaemonSet", + "description": "list or watch objects of kind APIService", "consumes": [ "*/*" ], @@ -22118,9 +21878,9 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "listAppsV1NamespacedDaemonSet", + "operationId": "listApiregistrationV1beta1APIService", "parameters": [ { "uniqueItems": true, @@ -22183,7 +21943,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList" } }, "401": { @@ -22192,13 +21952,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "post": { - "description": "create a DaemonSet", + "description": "create an APIService", "consumes": [ "*/*" ], @@ -22211,16 +21971,16 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "createAppsV1NamespacedDaemonSet", + "operationId": "createApiregistrationV1beta1APIService", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } } ], @@ -22228,19 +21988,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } }, "401": { @@ -22249,13 +22009,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "delete": { - "description": "delete collection of DaemonSet", + "description": "delete collection of APIService", "consumes": [ "*/*" ], @@ -22268,9 +22028,9 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", + "operationId": "deleteApiregistrationV1beta1CollectionAPIService", "parameters": [ { "uniqueItems": true, @@ -22342,20 +22102,12 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -22365,9 +22117,9 @@ } ] }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { + "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}": { "get": { - "description": "read the specified DaemonSet", + "description": "read the specified APIService", "consumes": [ "*/*" ], @@ -22380,9 +22132,9 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "readAppsV1NamespacedDaemonSet", + "operationId": "readApiregistrationV1beta1APIService", "parameters": [ { "uniqueItems": true, @@ -22403,7 +22155,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } }, "401": { @@ -22412,13 +22164,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "put": { - "description": "replace the specified DaemonSet", + "description": "replace the specified APIService", "consumes": [ "*/*" ], @@ -22431,16 +22183,16 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "replaceAppsV1NamespacedDaemonSet", + "operationId": "replaceApiregistrationV1beta1APIService", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } } ], @@ -22448,13 +22200,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } }, "401": { @@ -22463,13 +22215,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "delete": { - "description": "delete a DaemonSet", + "description": "delete an APIService", "consumes": [ "*/*" ], @@ -22482,9 +22234,9 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "deleteAppsV1NamespacedDaemonSet", + "operationId": "deleteApiregistrationV1beta1APIService", "parameters": [ { "name": "body", @@ -22511,7 +22263,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -22529,13 +22281,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "patch": { - "description": "partially update the specified DaemonSet", + "description": "partially update the specified APIService", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -22550,9 +22302,9 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "patchAppsV1NamespacedDaemonSet", + "operationId": "patchApiregistrationV1beta1APIService", "parameters": [ { "name": "body", @@ -22567,7 +22319,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } }, "401": { @@ -22576,28 +22328,20 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", + "description": "name of the APIService", "name": "name", "in": "path", "required": true }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -22607,44 +22351,9 @@ } ] }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "description": "read status of the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedDaemonSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, + "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status": { "put": { - "description": "replace status of the specified DaemonSet", + "description": "replace status of the specified APIService", "consumes": [ "*/*" ], @@ -22657,16 +22366,16 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "replaceAppsV1NamespacedDaemonSetStatus", + "operationId": "replaceApiregistrationV1beta1APIServiceStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } } ], @@ -22674,13 +22383,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" } }, "401": { @@ -22689,75 +22398,20 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified DaemonSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", + "description": "name of the APIService", "name": "name", "in": "path", "required": true }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -22767,9 +22421,9 @@ } ] }, - "/apis/apps/v1/watch/daemonsets": { + "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices": { "get": { - "description": "watch individual changes to a list of DaemonSet", + "description": "watch individual changes to a list of APIService", "consumes": [ "*/*" ], @@ -22784,9 +22438,9 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "watchAppsV1DaemonSetListForAllNamespaces", + "operationId": "watchApiregistrationV1beta1APIServiceList", "responses": { "200": { "description": "OK", @@ -22800,9 +22454,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "parameters": [ @@ -22871,9 +22525,9 @@ } ] }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets": { + "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}": { "get": { - "description": "watch individual changes to a list of DaemonSet", + "description": "watch changes to an object of kind APIService", "consumes": [ "*/*" ], @@ -22888,9 +22542,9 @@ "https" ], "tags": [ - "apps_v1" + "apiregistration_v1beta1" ], - "operationId": "watchAppsV1NamespacedDaemonSetList", + "operationId": "watchApiregistrationV1beta1APIService", "responses": { "200": { "description": "OK", @@ -22902,11 +22556,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" + "group": "apiregistration.k8s.io", + "kind": "APIService", + "version": "v1beta1" } }, "parameters": [ @@ -22948,8 +22602,8 @@ { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", + "description": "name of the APIService", + "name": "name", "in": "path", "required": true }, @@ -22983,9 +22637,75 @@ } ] }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { + "/apis/apps/": { "get": { - "description": "watch changes to an object of kind DaemonSet", + "description": "get information of a group", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps" + ], + "operationId": "getAppsAPIGroup", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/apps/v1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "operationId": "getAppsV1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/apps/v1/controllerrevisions": { + "get": { + "description": "list or watch objects of kind ControllerRevision", "consumes": [ "*/*" ], @@ -23002,22 +22722,22 @@ "tags": [ "apps_v1" ], - "operationId": "watchAppsV1NamespacedDaemonSet", + "operationId": "listAppsV1ControllerRevisionForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", + "kind": "ControllerRevision", "version": "v1" } }, @@ -23057,22 +22777,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -23103,42 +22807,9 @@ } ] }, - "/apis/apps/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "getAppsV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apps/v1beta1/controllerrevisions": { + "/apis/apps/v1/daemonsets": { "get": { - "description": "list or watch objects of kind ControllerRevision", + "description": "list or watch objects of kind DaemonSet", "consumes": [ "*/*" ], @@ -23153,14 +22824,14 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "listAppsV1beta1ControllerRevisionForAllNamespaces", + "operationId": "listAppsV1DaemonSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" } }, "401": { @@ -23170,8 +22841,8 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" + "kind": "DaemonSet", + "version": "v1" } }, "parameters": [ @@ -23240,7 +22911,7 @@ } ] }, - "/apis/apps/v1beta1/deployments": { + "/apis/apps/v1/deployments": { "get": { "description": "list or watch objects of kind Deployment", "consumes": [ @@ -23257,14 +22928,14 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "listAppsV1beta1DeploymentForAllNamespaces", + "operationId": "listAppsV1DeploymentForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentList" + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" } }, "401": { @@ -23275,7 +22946,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -23344,7 +23015,7 @@ } ] }, - "/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions": { + "/apis/apps/v1/namespaces/{namespace}/controllerrevisions": { "get": { "description": "list or watch objects of kind ControllerRevision", "consumes": [ @@ -23361,9 +23032,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "listAppsV1beta1NamespacedControllerRevision", + "operationId": "listAppsV1NamespacedControllerRevision", "parameters": [ { "uniqueItems": true, @@ -23426,7 +23097,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" } }, "401": { @@ -23437,7 +23108,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", - "version": "v1beta1" + "version": "v1" } }, "post": { @@ -23454,16 +23125,16 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "createAppsV1beta1NamespacedControllerRevision", + "operationId": "createAppsV1NamespacedControllerRevision", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } } ], @@ -23471,19 +23142,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "401": { @@ -23494,7 +23165,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -23511,9 +23182,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "deleteAppsV1beta1CollectionNamespacedControllerRevision", + "operationId": "deleteAppsV1CollectionNamespacedControllerRevision", "parameters": [ { "uniqueItems": true, @@ -23587,7 +23258,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -23608,7 +23279,7 @@ } ] }, - "/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}": { + "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}": { "get": { "description": "read the specified ControllerRevision", "consumes": [ @@ -23623,9 +23294,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "readAppsV1beta1NamespacedControllerRevision", + "operationId": "readAppsV1NamespacedControllerRevision", "parameters": [ { "uniqueItems": true, @@ -23646,7 +23317,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "401": { @@ -23657,7 +23328,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", - "version": "v1beta1" + "version": "v1" } }, "put": { @@ -23674,16 +23345,16 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "replaceAppsV1beta1NamespacedControllerRevision", + "operationId": "replaceAppsV1NamespacedControllerRevision", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } } ], @@ -23691,13 +23362,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "401": { @@ -23708,7 +23379,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -23725,9 +23396,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "deleteAppsV1beta1NamespacedControllerRevision", + "operationId": "deleteAppsV1NamespacedControllerRevision", "parameters": [ { "name": "body", @@ -23754,7 +23425,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -23774,7 +23445,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", - "version": "v1beta1" + "version": "v1" } }, "patch": { @@ -23793,9 +23464,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "patchAppsV1beta1NamespacedControllerRevision", + "operationId": "patchAppsV1NamespacedControllerRevision", "parameters": [ { "name": "body", @@ -23810,7 +23481,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "401": { @@ -23821,7 +23492,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -23850,9 +23521,9 @@ } ] }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments": { + "/apis/apps/v1/namespaces/{namespace}/daemonsets": { "get": { - "description": "list or watch objects of kind Deployment", + "description": "list or watch objects of kind DaemonSet", "consumes": [ "*/*" ], @@ -23867,9 +23538,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "listAppsV1beta1NamespacedDeployment", + "operationId": "listAppsV1NamespacedDaemonSet", "parameters": [ { "uniqueItems": true, @@ -23932,7 +23603,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentList" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" } }, "401": { @@ -23942,12 +23613,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "kind": "DaemonSet", + "version": "v1" } }, "post": { - "description": "create a Deployment", + "description": "create a DaemonSet", "consumes": [ "*/*" ], @@ -23960,16 +23631,16 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "createAppsV1beta1NamespacedDeployment", + "operationId": "createAppsV1NamespacedDaemonSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } } ], @@ -23977,19 +23648,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { @@ -23999,12 +23670,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "kind": "DaemonSet", + "version": "v1" } }, "delete": { - "description": "delete collection of Deployment", + "description": "delete collection of DaemonSet", "consumes": [ "*/*" ], @@ -24017,9 +23688,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "deleteAppsV1beta1CollectionNamespacedDeployment", + "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", "parameters": [ { "uniqueItems": true, @@ -24092,8 +23763,8 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "kind": "DaemonSet", + "version": "v1" } }, "parameters": [ @@ -24114,9 +23785,9 @@ } ] }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}": { + "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { "get": { - "description": "read the specified Deployment", + "description": "read the specified DaemonSet", "consumes": [ "*/*" ], @@ -24129,9 +23800,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "readAppsV1beta1NamespacedDeployment", + "operationId": "readAppsV1NamespacedDaemonSet", "parameters": [ { "uniqueItems": true, @@ -24152,7 +23823,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { @@ -24162,12 +23833,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "kind": "DaemonSet", + "version": "v1" } }, "put": { - "description": "replace the specified Deployment", + "description": "replace the specified DaemonSet", "consumes": [ "*/*" ], @@ -24180,16 +23851,16 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "replaceAppsV1beta1NamespacedDeployment", + "operationId": "replaceAppsV1NamespacedDaemonSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } } ], @@ -24197,13 +23868,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { @@ -24213,12 +23884,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "kind": "DaemonSet", + "version": "v1" } }, "delete": { - "description": "delete a Deployment", + "description": "delete a DaemonSet", "consumes": [ "*/*" ], @@ -24231,9 +23902,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "deleteAppsV1beta1NamespacedDeployment", + "operationId": "deleteAppsV1NamespacedDaemonSet", "parameters": [ { "name": "body", @@ -24260,7 +23931,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -24279,12 +23950,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "kind": "DaemonSet", + "version": "v1" } }, "patch": { - "description": "partially update the specified Deployment", + "description": "partially update the specified DaemonSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -24299,9 +23970,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "patchAppsV1beta1NamespacedDeployment", + "operationId": "patchAppsV1NamespacedDaemonSet", "parameters": [ { "name": "body", @@ -24316,7 +23987,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { @@ -24326,15 +23997,15 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "kind": "DaemonSet", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Deployment", + "description": "name of the DaemonSet", "name": "name", "in": "path", "required": true @@ -24356,9 +24027,9 @@ } ] }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/rollback": { - "post": { - "description": "create rollback of a Deployment", + "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { + "get": { + "description": "read status of the specified DaemonSet", "consumes": [ "*/*" ], @@ -24371,16 +24042,51 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "createAppsV1beta1NamespacedDeploymentRollback", + "operationId": "readAppsV1NamespacedDaemonSetStatus", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "put": { + "description": "replace status of the specified DaemonSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "operationId": "replaceAppsV1NamespacedDaemonSetStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } } ], @@ -24388,37 +24094,78 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, - "202": { - "description": "Accepted", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + }, + "patch": { + "description": "partially update status of the specified DaemonSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "operationId": "patchAppsV1NamespacedDaemonSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DeploymentRollback", - "version": "v1beta1" + "kind": "DaemonSet", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the DeploymentRollback", + "description": "name of the DaemonSet", "name": "name", "in": "path", "required": true @@ -24440,329 +24187,9 @@ } ] }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "description": "read scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "readAppsV1beta1NamespacedDeploymentScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - }, - "put": { - "description": "replace scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "replaceAppsV1beta1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update scale of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "patchAppsV1beta1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "description": "read status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "readAppsV1beta1NamespacedDeploymentStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "replaceAppsV1beta1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "patchAppsV1beta1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets": { + "/apis/apps/v1/namespaces/{namespace}/deployments": { "get": { - "description": "list or watch objects of kind StatefulSet", + "description": "list or watch objects of kind Deployment", "consumes": [ "*/*" ], @@ -24777,9 +24204,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "listAppsV1beta1NamespacedStatefulSet", + "operationId": "listAppsV1NamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -24842,7 +24269,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList" + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" } }, "401": { @@ -24852,12 +24279,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "post": { - "description": "create a StatefulSet", + "description": "create a Deployment", "consumes": [ "*/*" ], @@ -24870,16 +24297,16 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "createAppsV1beta1NamespacedStatefulSet", + "operationId": "createAppsV1NamespacedDeployment", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } } ], @@ -24887,19 +24314,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { @@ -24909,12 +24336,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "delete": { - "description": "delete collection of StatefulSet", + "description": "delete collection of Deployment", "consumes": [ "*/*" ], @@ -24927,9 +24354,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "deleteAppsV1beta1CollectionNamespacedStatefulSet", + "operationId": "deleteAppsV1CollectionNamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -25002,8 +24429,8 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "parameters": [ @@ -25024,9 +24451,9 @@ } ] }, - "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}": { + "/apis/apps/v1/namespaces/{namespace}/deployments/{name}": { "get": { - "description": "read the specified StatefulSet", + "description": "read the specified Deployment", "consumes": [ "*/*" ], @@ -25039,9 +24466,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "readAppsV1beta1NamespacedStatefulSet", + "operationId": "readAppsV1NamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -25062,7 +24489,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { @@ -25072,12 +24499,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "put": { - "description": "replace the specified StatefulSet", + "description": "replace the specified Deployment", "consumes": [ "*/*" ], @@ -25090,16 +24517,16 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "replaceAppsV1beta1NamespacedStatefulSet", + "operationId": "replaceAppsV1NamespacedDeployment", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } } ], @@ -25107,13 +24534,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { @@ -25123,12 +24550,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "delete": { - "description": "delete a StatefulSet", + "description": "delete a Deployment", "consumes": [ "*/*" ], @@ -25141,9 +24568,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "deleteAppsV1beta1NamespacedStatefulSet", + "operationId": "deleteAppsV1NamespacedDeployment", "parameters": [ { "name": "body", @@ -25170,7 +24597,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -25189,12 +24616,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "patch": { - "description": "partially update the specified StatefulSet", + "description": "partially update the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -25209,9 +24636,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "patchAppsV1beta1NamespacedStatefulSet", + "operationId": "patchAppsV1NamespacedDeployment", "parameters": [ { "name": "body", @@ -25226,7 +24653,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { @@ -25236,15 +24663,15 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the StatefulSet", + "description": "name of the Deployment", "name": "name", "in": "path", "required": true @@ -25266,9 +24693,9 @@ } ] }, - "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale": { + "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale": { "get": { - "description": "read scale of the specified StatefulSet", + "description": "read scale of the specified Deployment", "consumes": [ "*/*" ], @@ -25281,14 +24708,14 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "readAppsV1beta1NamespacedStatefulSetScale", + "operationId": "readAppsV1NamespacedDeploymentScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { @@ -25297,13 +24724,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "apps", + "group": "autoscaling", "kind": "Scale", - "version": "v1beta1" + "version": "v1" } }, "put": { - "description": "replace scale of the specified StatefulSet", + "description": "replace scale of the specified Deployment", "consumes": [ "*/*" ], @@ -25316,16 +24743,16 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "replaceAppsV1beta1NamespacedStatefulSetScale", + "operationId": "replaceAppsV1NamespacedDeploymentScale", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } } ], @@ -25333,13 +24760,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { @@ -25348,13 +24775,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "apps", + "group": "autoscaling", "kind": "Scale", - "version": "v1beta1" + "version": "v1" } }, "patch": { - "description": "partially update scale of the specified StatefulSet", + "description": "partially update scale of the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -25369,9 +24796,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "patchAppsV1beta1NamespacedStatefulSetScale", + "operationId": "patchAppsV1NamespacedDeploymentScale", "parameters": [ { "name": "body", @@ -25386,7 +24813,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { @@ -25395,9 +24822,9 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "apps", + "group": "autoscaling", "kind": "Scale", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -25426,9 +24853,9 @@ } ] }, - "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status": { + "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status": { "get": { - "description": "read status of the specified StatefulSet", + "description": "read status of the specified Deployment", "consumes": [ "*/*" ], @@ -25441,14 +24868,14 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "readAppsV1beta1NamespacedStatefulSetStatus", + "operationId": "readAppsV1NamespacedDeploymentStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { @@ -25458,12 +24885,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "put": { - "description": "replace status of the specified StatefulSet", + "description": "replace status of the specified Deployment", "consumes": [ "*/*" ], @@ -25476,16 +24903,16 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "replaceAppsV1beta1NamespacedStatefulSetStatus", + "operationId": "replaceAppsV1NamespacedDeploymentStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } } ], @@ -25493,13 +24920,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { @@ -25509,12 +24936,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "patch": { - "description": "partially update status of the specified StatefulSet", + "description": "partially update status of the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -25529,9 +24956,9 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "patchAppsV1beta1NamespacedStatefulSetStatus", + "operationId": "patchAppsV1NamespacedDeploymentStatus", "parameters": [ { "name": "body", @@ -25546,7 +24973,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { @@ -25556,15 +24983,15 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "Deployment", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the StatefulSet", + "description": "name of the Deployment", "name": "name", "in": "path", "required": true @@ -25586,9 +25013,9 @@ } ] }, - "/apis/apps/v1beta1/statefulsets": { + "/apis/apps/v1/namespaces/{namespace}/replicasets": { "get": { - "description": "list or watch objects of kind StatefulSet", + "description": "list or watch objects of kind ReplicaSet", "consumes": [ "*/*" ], @@ -25603,270 +25030,243 @@ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "listAppsV1beta1StatefulSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList" - } + "operationId": "listAppsV1NamespacedReplicaSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" } - ] - }, - "/apis/apps/v1beta1/watch/controllerrevisions": { - "get": { - "description": "watch individual changes to a list of ControllerRevision", + }, + "post": { + "description": "create a ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" + ], + "operationId": "createAppsV1NamespacedReplicaSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + } ], - "operationId": "watchAppsV1beta1ControllerRevisionListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" + "kind": "ReplicaSet", + "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", + "delete": { + "description": "delete collection of ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" + ], + "operationId": "deleteAppsV1CollectionNamespacedReplicaSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "watchAppsV1beta1DeploymentListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "kind": "ReplicaSet", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -25874,220 +25274,230 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions": { + "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}": { "get": { - "description": "watch individual changes to a list of ControllerRevision", + "description": "read the specified ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" + ], + "operationId": "readAppsV1NamespacedReplicaSet", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "watchAppsV1beta1NamespacedControllerRevisionList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" + "kind": "ReplicaSet", + "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "description": "watch changes to an object of kind ControllerRevision", + "put": { + "description": "replace the specified ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" + ], + "operationId": "replaceAppsV1NamespacedReplicaSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + } ], - "operationId": "watchAppsV1beta1NamespacedControllerRevision", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" + "kind": "ReplicaSet", + "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" + "delete": { + "description": "delete a ReplicaSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "operationId": "deleteAppsV1NamespacedReplicaSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "patch": { + "description": "partially update the specified ReplicaSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "operationId": "patchAppsV1NamespacedReplicaSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ControllerRevision", + "description": "name of the ReplicaSet", "name": "name", "in": "path", "required": true @@ -26106,220 +25516,148 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments": { + "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale": { "get": { - "description": "watch individual changes to a list of Deployment", + "description": "read scale of the specified ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "watchAppsV1beta1NamespacedDeploymentList", + "operationId": "readAppsV1NamespacedReplicaSetScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "Scale", + "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" + "put": { + "description": "replace scale of the specified ReplicaSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1" + ], + "operationId": "replaceAppsV1NamespacedReplicaSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "Scale", + "version": "v1" } - ] - }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "watch changes to an object of kind Deployment", + }, + "patch": { + "description": "partially update scale of the specified ReplicaSet", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" + ], + "operationId": "patchAppsV1NamespacedReplicaSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } ], - "operationId": "watchAppsV1beta1NamespacedDeployment", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "Scale", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", + "description": "name of the Scale", "name": "name", "in": "path", "required": true @@ -26338,335 +25676,159 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets": { + "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status": { "get": { - "description": "watch individual changes to a list of StatefulSet", + "description": "read status of the specified ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" ], - "operationId": "watchAppsV1beta1NamespacedStatefulSetList", + "operationId": "readAppsV1NamespacedReplicaSetStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "ReplicaSet", + "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "description": "watch changes to an object of kind StatefulSet", + "put": { + "description": "replace status of the specified ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" + ], + "operationId": "replaceAppsV1NamespacedReplicaSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + } ], - "operationId": "watchAppsV1beta1NamespacedStatefulSet", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "ReplicaSet", + "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/statefulsets": { - "get": { - "description": "watch individual changes to a list of StatefulSet", + "patch": { + "description": "partially update status of the specified ReplicaSet", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta1" + "apps_v1" + ], + "operationId": "patchAppsV1NamespacedReplicaSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } ], - "operationId": "watchAppsV1beta1StatefulSetListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" + "kind": "ReplicaSet", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "description": "name of the ReplicaSet", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -26674,240 +25836,263 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/apps/v1beta2/": { + "/apis/apps/v1/namespaces/{namespace}/statefulsets": { "get": { - "description": "get available resources", + "description": "list or watch objects of kind StatefulSet", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" + ], + "operationId": "listAppsV1NamespacedStatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "getAppsV1beta2APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1" } - } - }, - "/apis/apps/v1beta2/controllerrevisions": { - "get": { - "description": "list or watch objects of kind ControllerRevision", + }, + "post": { + "description": "create a StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" + ], + "operationId": "createAppsV1NamespacedStatefulSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + } ], - "operationId": "listAppsV1beta2ControllerRevisionForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", + "delete": { + "description": "delete collection of StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" + ], + "operationId": "deleteAppsV1CollectionNamespacedStatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "listAppsV1beta2DaemonSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -26915,232 +26100,114 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/apps/v1beta2/deployments": { + "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}": { "get": { - "description": "list or watch objects of kind Deployment", + "description": "read the specified StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" + ], + "operationId": "readAppsV1NamespacedStatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "listAppsV1beta2DeploymentForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions": { - "get": { - "description": "list or watch objects of kind ControllerRevision", + "put": { + "description": "replace the specified StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "listAppsV1beta2NamespacedControllerRevision", + "operationId": "replaceAppsV1NamespacedStatefulSet", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, - "post": { - "description": "create a ControllerRevision", + "delete": { + "description": "delete a StatefulSet", "consumes": [ "*/*" ], @@ -27153,53 +26220,64 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "createAppsV1beta2NamespacedControllerRevision", + "operationId": "deleteAppsV1NamespacedStatefulSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, - "delete": { - "description": "delete collection of ControllerRevision", + "patch": { + "description": "partially update the specified StatefulSet", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -27210,86 +26288,46 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "deleteAppsV1beta2CollectionNamespacedControllerRevision", + "operationId": "patchAppsV1NamespacedStatefulSet", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the StatefulSet", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -27307,9 +26345,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}": { + "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale": { "get": { - "description": "read the specified ControllerRevision", + "description": "read scale of the specified StatefulSet", "consumes": [ "*/*" ], @@ -27322,30 +26360,14 @@ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "apps_v1" ], + "operationId": "readAppsV1NamespacedStatefulSetScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { @@ -27354,13 +26376,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" + "group": "autoscaling", + "kind": "Scale", + "version": "v1" } }, "put": { - "description": "replace the specified ControllerRevision", + "description": "replace scale of the specified StatefulSet", "consumes": [ "*/*" ], @@ -27373,16 +26395,16 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "replaceAppsV1beta2NamespacedControllerRevision", + "operationId": "replaceAppsV1NamespacedStatefulSetScale", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } } ], @@ -27390,13 +26412,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { @@ -27405,79 +26427,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete a ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" + "group": "autoscaling", + "kind": "Scale", + "version": "v1" } }, "patch": { - "description": "partially update the specified ControllerRevision", + "description": "partially update scale of the specified StatefulSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -27492,9 +26448,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "patchAppsV1beta2NamespacedControllerRevision", + "operationId": "patchAppsV1NamespacedStatefulSetScale", "parameters": [ { "name": "body", @@ -27509,7 +26465,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { @@ -27518,16 +26474,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" + "group": "autoscaling", + "kind": "Scale", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ControllerRevision", + "description": "name of the Scale", "name": "name", "in": "path", "required": true @@ -27549,104 +26505,44 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets": { + "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status": { "get": { - "description": "list or watch objects of kind DaemonSet", + "description": "read status of the specified StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "apps_v1" ], + "operationId": "readAppsV1NamespacedStatefulSetStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, - "post": { - "description": "create a DaemonSet", + "put": { + "description": "replace status of the specified StatefulSet", "consumes": [ "*/*" ], @@ -27659,16 +26555,16 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "createAppsV1beta2NamespacedDaemonSet", + "operationId": "replaceAppsV1NamespacedStatefulSetStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } } ], @@ -27676,36 +26572,32 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, - "delete": { - "description": "delete collection of DaemonSet", + "patch": { + "description": "partially update status of the specified StatefulSet", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -27716,86 +26608,46 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "deleteAppsV1beta2CollectionNamespacedDaemonSet", + "operationId": "patchAppsV1NamespacedStatefulSetStatus", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the StatefulSet", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -27813,238 +26665,391 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}": { + "/apis/apps/v1/replicasets": { "get": { - "description": "read the specified DaemonSet", + "description": "list or watch objects of kind ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "apps_v1" ], + "operationId": "listAppsV1ReplicaSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "ReplicaSet", + "version": "v1" } }, - "put": { - "description": "replace the specified DaemonSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1/statefulsets": { + "get": { + "description": "list or watch objects of kind StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - } + "apps_v1" ], + "operationId": "listAppsV1StatefulSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, - "delete": { - "description": "delete a DaemonSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1/watch/controllerrevisions": { + "get": { + "description": "watch individual changes to a list of ControllerRevision", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } + "apps_v1" ], + "operationId": "watchAppsV1ControllerRevisionListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1" } }, - "patch": { - "description": "partially update the specified DaemonSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1/watch/daemonsets": { + "get": { + "description": "watch individual changes to a list of DaemonSet", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "apps_v1" ], + "operationId": "watchAppsV1DaemonSetListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", - "version": "v1beta2" + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -28052,148 +27057,324 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status": { + "/apis/apps/v1/watch/deployments": { "get": { - "description": "read status of the specified DaemonSet", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "readAppsV1beta2NamespacedDaemonSetStatus", + "operationId": "watchAppsV1DeploymentListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1" } }, - "put": { - "description": "replace status of the specified DaemonSet", - "consumes": [ + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions": { + "get": { + "description": "watch individual changes to a list of ControllerRevision", + "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - } + "apps_v1" ], + "operationId": "watchAppsV1NamespacedControllerRevisionList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1" } }, - "patch": { - "description": "partially update status of the specified DaemonSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}": { + "get": { + "description": "watch changes to an object of kind ControllerRevision", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "apps_v1" ], + "operationId": "watchAppsV1NamespacedControllerRevision", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ControllerRevision", "name": "name", "in": "path", "required": true @@ -28212,12 +27393,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments": { + "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets": { "get": { - "description": "list or watch objects of kind Deployment", + "description": "watch individual changes to a list of DaemonSet", "consumes": [ "*/*" ], @@ -28232,236 +27434,183 @@ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "apps_v1" ], + "operationId": "watchAppsV1NamespacedDaemonSetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta2" + "kind": "DaemonSet", + "version": "v1" } }, - "post": { - "description": "create a Deployment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { + "get": { + "description": "watch changes to an object of kind DaemonSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "createAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - } + "apps_v1" ], + "operationId": "watchAppsV1NamespacedDaemonSet", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete collection of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2CollectionNamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" + "kind": "DaemonSet", + "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the DaemonSet", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -28476,233 +27625,335 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}": { + "/apis/apps/v1/watch/namespaces/{namespace}/deployments": { "get": { - "description": "read the specified Deployment", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "apps_v1" ], + "operationId": "watchAppsV1NamespacedDeploymentList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", - "version": "v1beta2" + "version": "v1" } }, - "put": { - "description": "replace the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "delete": { - "description": "delete a Deployment", + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}": { + "get": { + "description": "watch changes to an object of kind Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } + "apps_v1" ], + "operationId": "watchAppsV1NamespacedDeployment", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", - "version": "v1beta2" + "version": "v1" } }, - "patch": { - "description": "partially update the specified Deployment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Deployment", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/replicasets": { + "get": { + "description": "watch individual changes to a list of ReplicaSet", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "apps_v1" ], + "operationId": "watchAppsV1NamespacedReplicaSetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta2" + "kind": "ReplicaSet", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -28718,151 +27969,223 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale": { + "/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}": { "get": { - "description": "read scale of the specified Deployment", + "description": "watch changes to an object of kind ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "readAppsV1beta2NamespacedDeploymentScale", + "operationId": "watchAppsV1NamespacedReplicaSet", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Scale", - "version": "v1beta2" + "kind": "ReplicaSet", + "version": "v1" } }, - "put": { - "description": "replace scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ReplicaSet", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "patch": { - "description": "partially update scale of the specified Deployment", + ] + }, + "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets": { + "get": { + "description": "watch individual changes to a list of StatefulSet", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "apps_v1" ], + "operationId": "watchAppsV1NamespacedStatefulSetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Scale", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -28878,159 +28201,327 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status": { + "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}": { "get": { - "description": "read status of the specified Deployment", + "description": "watch changes to an object of kind StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1" ], - "operationId": "readAppsV1beta2NamespacedDeploymentStatus", + "operationId": "watchAppsV1NamespacedStatefulSet", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, - "put": { - "description": "replace status of the specified Deployment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the StatefulSet", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1/watch/replicasets": { + "get": { + "description": "watch individual changes to a list of ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - } + "apps_v1" ], + "operationId": "watchAppsV1ReplicaSetListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta2" + "kind": "ReplicaSet", + "version": "v1" } }, - "patch": { - "description": "partially update status of the specified Deployment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1/watch/statefulsets": { + "get": { + "description": "watch individual changes to a list of StatefulSet", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "apps_v1" ], + "operationId": "watchAppsV1StatefulSetListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -29038,40 +28529,302 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets": { + "/apis/apps/v1beta1/": { "get": { - "description": "list or watch objects of kind ReplicaSet", + "description": "get available resources", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "listAppsV1beta2NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", + "operationId": "getAppsV1beta1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/apps/v1beta1/controllerrevisions": { + "get": { + "description": "list or watch objects of kind ControllerRevision", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "listAppsV1beta1ControllerRevisionForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta1/deployments": { + "get": { + "description": "list or watch objects of kind Deployment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "listAppsV1beta1DeploymentForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Deployment", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions": { + "get": { + "description": "list or watch objects of kind ControllerRevision", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "listAppsV1beta1NamespacedControllerRevision", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", "name": "fieldSelector", "in": "query" @@ -29123,7 +28876,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList" } }, "401": { @@ -29133,12 +28886,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1beta1" } }, "post": { - "description": "create a ReplicaSet", + "description": "create a ControllerRevision", "consumes": [ "*/*" ], @@ -29151,16 +28904,16 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "createAppsV1beta2NamespacedReplicaSet", + "operationId": "createAppsV1beta1NamespacedControllerRevision", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" } } ], @@ -29168,19 +28921,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" } }, "401": { @@ -29190,12 +28943,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1beta1" } }, "delete": { - "description": "delete collection of ReplicaSet", + "description": "delete collection of ControllerRevision", "consumes": [ "*/*" ], @@ -29208,9 +28961,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "deleteAppsV1beta2CollectionNamespacedReplicaSet", + "operationId": "deleteAppsV1beta1CollectionNamespacedControllerRevision", "parameters": [ { "uniqueItems": true, @@ -29283,8 +29036,8 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1beta1" } }, "parameters": [ @@ -29305,9 +29058,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}": { + "/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}": { "get": { - "description": "read the specified ReplicaSet", + "description": "read the specified ControllerRevision", "consumes": [ "*/*" ], @@ -29320,9 +29073,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "readAppsV1beta2NamespacedReplicaSet", + "operationId": "readAppsV1beta1NamespacedControllerRevision", "parameters": [ { "uniqueItems": true, @@ -29343,7 +29096,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" } }, "401": { @@ -29353,12 +29106,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1beta1" } }, "put": { - "description": "replace the specified ReplicaSet", + "description": "replace the specified ControllerRevision", "consumes": [ "*/*" ], @@ -29371,16 +29124,16 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "replaceAppsV1beta2NamespacedReplicaSet", + "operationId": "replaceAppsV1beta1NamespacedControllerRevision", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" } } ], @@ -29388,13 +29141,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" } }, "401": { @@ -29404,12 +29157,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1beta1" } }, "delete": { - "description": "delete a ReplicaSet", + "description": "delete a ControllerRevision", "consumes": [ "*/*" ], @@ -29422,9 +29175,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "deleteAppsV1beta2NamespacedReplicaSet", + "operationId": "deleteAppsV1beta1NamespacedControllerRevision", "parameters": [ { "name": "body", @@ -29451,7 +29204,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -29470,12 +29223,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1beta1" } }, "patch": { - "description": "partially update the specified ReplicaSet", + "description": "partially update the specified ControllerRevision", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -29490,9 +29243,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "patchAppsV1beta2NamespacedReplicaSet", + "operationId": "patchAppsV1beta1NamespacedControllerRevision", "parameters": [ { "name": "body", @@ -29507,7 +29260,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" } }, "401": { @@ -29517,15 +29270,15 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ReplicaSet", + "description": "name of the ControllerRevision", "name": "name", "in": "path", "required": true @@ -29547,44 +29300,104 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale": { + "/apis/apps/v1beta1/namespaces/{namespace}/deployments": { "get": { - "description": "read scale of the specified ReplicaSet", + "description": "list or watch objects of kind Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" + ], + "operationId": "listAppsV1beta1NamespacedDeployment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "readAppsV1beta2NamespacedReplicaSetScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Scale", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, - "put": { - "description": "replace scale of the specified ReplicaSet", + "post": { + "description": "create a Deployment", "consumes": [ "*/*" ], @@ -29597,16 +29410,16 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "replaceAppsV1beta2NamespacedReplicaSetScale", + "operationId": "createAppsV1beta1NamespacedDeployment", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } } ], @@ -29614,32 +29427,36 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Scale", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, - "patch": { - "description": "partially update scale of the specified ReplicaSet", + "delete": { + "description": "delete collection of Deployment", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", @@ -29650,400 +29467,16 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "patchAppsV1beta2NamespacedReplicaSetScale", + "operationId": "deleteAppsV1beta1CollectionNamespacedDeployment", "parameters": [ { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "description": "read status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedReplicaSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "put": { - "description": "replace status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update status of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets": { - "get": { - "description": "list or watch objects of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "post": { - "description": "create a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "createAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete collection of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2CollectionNamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, { "uniqueItems": true, @@ -30109,8 +29542,8 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, "parameters": [ @@ -30131,9 +29564,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}": { + "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}": { "get": { - "description": "read the specified StatefulSet", + "description": "read the specified Deployment", "consumes": [ "*/*" ], @@ -30146,9 +29579,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "readAppsV1beta2NamespacedStatefulSet", + "operationId": "readAppsV1beta1NamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -30169,7 +29602,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "401": { @@ -30179,12 +29612,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, "put": { - "description": "replace the specified StatefulSet", + "description": "replace the specified Deployment", "consumes": [ "*/*" ], @@ -30197,16 +29630,16 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "replaceAppsV1beta2NamespacedStatefulSet", + "operationId": "replaceAppsV1beta1NamespacedDeployment", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } } ], @@ -30214,13 +29647,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "401": { @@ -30230,12 +29663,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, "delete": { - "description": "delete a StatefulSet", + "description": "delete a Deployment", "consumes": [ "*/*" ], @@ -30248,9 +29681,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "deleteAppsV1beta2NamespacedStatefulSet", + "operationId": "deleteAppsV1beta1NamespacedDeployment", "parameters": [ { "name": "body", @@ -30277,7 +29710,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -30296,12 +29729,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, "patch": { - "description": "partially update the specified StatefulSet", + "description": "partially update the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -30316,9 +29749,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "patchAppsV1beta2NamespacedStatefulSet", + "operationId": "patchAppsV1beta1NamespacedDeployment", "parameters": [ { "name": "body", @@ -30333,7 +29766,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "401": { @@ -30343,15 +29776,15 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the StatefulSet", + "description": "name of the Deployment", "name": "name", "in": "path", "required": true @@ -30373,9 +29806,93 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale": { + "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/rollback": { + "post": { + "description": "create rollback of a Deployment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "createAppsV1beta1NamespacedDeploymentRollback", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DeploymentRollback", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the DeploymentRollback", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/scale": { "get": { - "description": "read scale of the specified StatefulSet", + "description": "read scale of the specified Deployment", "consumes": [ "*/*" ], @@ -30388,14 +29905,14 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "readAppsV1beta2NamespacedStatefulSetScale", + "operationId": "readAppsV1beta1NamespacedDeploymentScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" } }, "401": { @@ -30406,11 +29923,11 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Scale", - "version": "v1beta2" + "version": "v1beta1" } }, "put": { - "description": "replace scale of the specified StatefulSet", + "description": "replace scale of the specified Deployment", "consumes": [ "*/*" ], @@ -30423,16 +29940,16 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "replaceAppsV1beta2NamespacedStatefulSetScale", + "operationId": "replaceAppsV1beta1NamespacedDeploymentScale", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" } } ], @@ -30440,13 +29957,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" } }, "401": { @@ -30457,11 +29974,11 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Scale", - "version": "v1beta2" + "version": "v1beta1" } }, "patch": { - "description": "partially update scale of the specified StatefulSet", + "description": "partially update scale of the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -30476,9 +29993,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "patchAppsV1beta2NamespacedStatefulSetScale", + "operationId": "patchAppsV1beta1NamespacedDeploymentScale", "parameters": [ { "name": "body", @@ -30493,7 +30010,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" } }, "401": { @@ -30504,7 +30021,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Scale", - "version": "v1beta2" + "version": "v1beta1" } }, "parameters": [ @@ -30533,9 +30050,9 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status": { + "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/status": { "get": { - "description": "read status of the specified StatefulSet", + "description": "read status of the specified Deployment", "consumes": [ "*/*" ], @@ -30548,14 +30065,14 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "readAppsV1beta2NamespacedStatefulSetStatus", + "operationId": "readAppsV1beta1NamespacedDeploymentStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "401": { @@ -30565,12 +30082,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, "put": { - "description": "replace status of the specified StatefulSet", + "description": "replace status of the specified Deployment", "consumes": [ "*/*" ], @@ -30583,16 +30100,16 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "replaceAppsV1beta2NamespacedStatefulSetStatus", + "operationId": "replaceAppsV1beta1NamespacedDeploymentStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } } ], @@ -30600,13 +30117,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "401": { @@ -30616,12 +30133,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, "patch": { - "description": "partially update status of the specified StatefulSet", + "description": "partially update status of the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -30636,9 +30153,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "patchAppsV1beta2NamespacedStatefulSetStatus", + "operationId": "patchAppsV1beta1NamespacedDeploymentStatus", "parameters": [ { "name": "body", @@ -30653,7 +30170,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" } }, "401": { @@ -30663,15 +30180,15 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the StatefulSet", + "description": "name of the Deployment", "name": "name", "in": "path", "required": true @@ -30693,9 +30210,9 @@ } ] }, - "/apis/apps/v1beta2/replicasets": { + "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets": { "get": { - "description": "list or watch objects of kind ReplicaSet", + "description": "list or watch objects of kind StatefulSet", "consumes": [ "*/*" ], @@ -30710,14 +30227,72 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" + ], + "operationId": "listAppsV1beta1NamespacedStatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "listAppsV1beta2ReplicaSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList" } }, "401": { @@ -30727,149 +30302,168 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" + "post": { + "description": "create a StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "createAppsV1beta1NamespacedStatefulSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta1" } - ] - }, - "/apis/apps/v1beta2/statefulsets": { - "get": { - "description": "list or watch objects of kind StatefulSet", + }, + "delete": { + "description": "delete collection of StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" + ], + "operationId": "deleteAppsV1beta1CollectionNamespacedStatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "listAppsV1beta2StatefulSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", - "version": "v1beta2" + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -30877,207 +30471,401 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/apps/v1beta2/watch/controllerrevisions": { + "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}": { "get": { - "description": "watch individual changes to a list of ControllerRevision", + "description": "read the specified StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" + ], + "operationId": "readAppsV1beta1NamespacedStatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "watchAppsV1beta2ControllerRevisionListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", + "put": { + "description": "replace the specified StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" + ], + "operationId": "replaceAppsV1beta1NamespacedStatefulSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + } ], - "operationId": "watchAppsV1beta2DaemonSetListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete a StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "deleteAppsV1beta1NamespacedStatefulSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update the specified StatefulSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "patchAppsV1beta1NamespacedStatefulSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "description": "name of the StatefulSet", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", "in": "query" + } + ] + }, + "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale": { + "get": { + "description": "read scale of the specified StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "readAppsV1beta1NamespacedStatefulSetScale", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Scale", + "version": "v1beta1" + } + }, + "put": { + "description": "replace scale of the specified StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "replaceAppsV1beta1NamespacedStatefulSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Scale", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update scale of the specified StatefulSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "patchAppsV1beta1NamespacedStatefulSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Scale", + "version": "v1beta1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" + "description": "name of the Scale", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -31085,33 +30873,172 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + } + ] + }, + "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status": { + "get": { + "description": "read status of the specified StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "readAppsV1beta1NamespacedStatefulSetStatus", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta1" + } + }, + "put": { + "description": "replace status of the specified StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "replaceAppsV1beta1NamespacedStatefulSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update status of the specified StatefulSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "patchAppsV1beta1NamespacedStatefulSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" + "description": "name of the StatefulSet", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", "in": "query" } ] }, - "/apis/apps/v1beta2/watch/deployments": { + "/apis/apps/v1beta1/statefulsets": { "get": { - "description": "watch individual changes to a list of Deployment", + "description": "list or watch objects of kind StatefulSet", "consumes": [ "*/*" ], @@ -31126,25 +31053,25 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2DeploymentListForAllNamespaces", + "operationId": "listAppsV1beta1StatefulSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "Deployment", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1beta1" } }, "parameters": [ @@ -31213,7 +31140,7 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions": { + "/apis/apps/v1beta1/watch/controllerrevisions": { "get": { "description": "watch individual changes to a list of ControllerRevision", "consumes": [ @@ -31230,9 +31157,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2NamespacedControllerRevisionList", + "operationId": "watchAppsV1beta1ControllerRevisionListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -31248,7 +31175,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", - "version": "v1beta2" + "version": "v1beta1" } }, "parameters": [ @@ -31287,14 +31214,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -31325,9 +31244,9 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions/{name}": { + "/apis/apps/v1beta1/watch/deployments": { "get": { - "description": "watch changes to an object of kind ControllerRevision", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], @@ -31342,9 +31261,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2NamespacedControllerRevision", + "operationId": "watchAppsV1beta1DeploymentListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -31356,11 +31275,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" + "kind": "Deployment", + "version": "v1beta1" } }, "parameters": [ @@ -31399,22 +31318,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ControllerRevision", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -31445,9 +31348,9 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions": { "get": { - "description": "watch individual changes to a list of DaemonSet", + "description": "watch individual changes to a list of ControllerRevision", "consumes": [ "*/*" ], @@ -31462,9 +31365,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2NamespacedDaemonSetList", + "operationId": "watchAppsV1beta1NamespacedControllerRevisionList", "responses": { "200": { "description": "OK", @@ -31479,8 +31382,8 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1beta1" } }, "parameters": [ @@ -31557,9 +31460,9 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets/{name}": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions/{name}": { "get": { - "description": "watch changes to an object of kind DaemonSet", + "description": "watch changes to an object of kind ControllerRevision", "consumes": [ "*/*" ], @@ -31574,9 +31477,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2NamespacedDaemonSet", + "operationId": "watchAppsV1beta1NamespacedControllerRevision", "responses": { "200": { "description": "OK", @@ -31591,8 +31494,8 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" + "kind": "ControllerRevision", + "version": "v1beta1" } }, "parameters": [ @@ -31634,7 +31537,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", + "description": "name of the ControllerRevision", "name": "name", "in": "path", "required": true @@ -31677,7 +31580,7 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments": { "get": { "description": "watch individual changes to a list of Deployment", "consumes": [ @@ -31694,9 +31597,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2NamespacedDeploymentList", + "operationId": "watchAppsV1beta1NamespacedDeploymentList", "responses": { "200": { "description": "OK", @@ -31712,7 +31615,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", - "version": "v1beta2" + "version": "v1beta1" } }, "parameters": [ @@ -31789,7 +31692,7 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments/{name}": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments/{name}": { "get": { "description": "watch changes to an object of kind Deployment", "consumes": [ @@ -31806,9 +31709,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2NamespacedDeployment", + "operationId": "watchAppsV1beta1NamespacedDeployment", "responses": { "200": { "description": "OK", @@ -31824,7 +31727,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", - "version": "v1beta2" + "version": "v1beta1" } }, "parameters": [ @@ -31909,239 +31812,7 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedReplicaSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "watch changes to an object of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedReplicaSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets": { "get": { "description": "watch individual changes to a list of StatefulSet", "consumes": [ @@ -32158,9 +31829,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2NamespacedStatefulSetList", + "operationId": "watchAppsV1beta1NamespacedStatefulSetList", "responses": { "200": { "description": "OK", @@ -32176,7 +31847,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", - "version": "v1beta2" + "version": "v1beta1" } }, "parameters": [ @@ -32253,7 +31924,7 @@ } ] }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets/{name}": { + "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets/{name}": { "get": { "description": "watch changes to an object of kind StatefulSet", "consumes": [ @@ -32270,9 +31941,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2NamespacedStatefulSet", + "operationId": "watchAppsV1beta1NamespacedStatefulSet", "responses": { "200": { "description": "OK", @@ -32288,7 +31959,7 @@ "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", - "version": "v1beta2" + "version": "v1beta1" } }, "parameters": [ @@ -32373,9 +32044,9 @@ } ] }, - "/apis/apps/v1beta2/watch/replicasets": { + "/apis/apps/v1beta1/watch/statefulsets": { "get": { - "description": "watch individual changes to a list of ReplicaSet", + "description": "watch individual changes to a list of StatefulSet", "consumes": [ "*/*" ], @@ -32390,9 +32061,9 @@ "https" ], "tags": [ - "apps_v1beta2" + "apps_v1beta1" ], - "operationId": "watchAppsV1beta2ReplicaSetListForAllNamespaces", + "operationId": "watchAppsV1beta1StatefulSetListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -32407,8 +32078,8 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" + "kind": "StatefulSet", + "version": "v1beta1" } }, "parameters": [ @@ -32477,9 +32148,42 @@ } ] }, - "/apis/apps/v1beta2/watch/statefulsets": { + "/apis/apps/v1beta2/": { "get": { - "description": "watch individual changes to a list of StatefulSet", + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "getAppsV1beta2APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/apps/v1beta2/controllerrevisions": { + "get": { + "description": "list or watch objects of kind ControllerRevision", "consumes": [ "*/*" ], @@ -32496,22 +32200,22 @@ "tags": [ "apps_v1beta2" ], - "operationId": "watchAppsV1beta2StatefulSetListForAllNamespaces", + "operationId": "listAppsV1beta2ControllerRevisionForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", - "kind": "StatefulSet", + "kind": "ControllerRevision", "version": "v1beta2" } }, @@ -32581,176 +32285,312 @@ } ] }, - "/apis/authentication.k8s.io/": { + "/apis/apps/v1beta2/daemonsets": { "get": { - "description": "get information of a group", + "description": "list or watch objects of kind DaemonSet", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "authentication" + "apps_v1beta2" ], - "operationId": "getAuthenticationAPIGroup", + "operationId": "listAppsV1beta2DaemonSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } - } - }, - "/apis/authentication.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "operationId": "getAuthenticationV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - } + ] }, - "/apis/authentication.k8s.io/v1/tokenreviews": { - "post": { - "description": "create a TokenReview", + "/apis/apps/v1beta2/deployments": { + "get": { + "description": "list or watch objects of kind Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "authentication_v1" - ], - "operationId": "createAuthenticationV1TokenReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - } + "apps_v1beta2" ], + "operationId": "listAppsV1beta2DeploymentForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/authentication.k8s.io/v1beta1/": { + "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions": { "get": { - "description": "get available resources", + "description": "list or watch objects of kind ControllerRevision", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "authentication_v1beta1" + "apps_v1beta2" + ], + "operationId": "listAppsV1beta2NamespacedControllerRevision", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "getAuthenticationV1beta1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } - } - }, - "/apis/authentication.k8s.io/v1beta1/tokenreviews": { + }, "post": { - "description": "create a TokenReview", + "description": "create a ControllerRevision", "consumes": [ "*/*" ], @@ -32763,16 +32603,16 @@ "https" ], "tags": [ - "authentication_v1beta1" + "apps_v1beta2" ], - "operationId": "createAuthenticationV1beta1TokenReview", + "operationId": "createAppsV1beta2NamespacedControllerRevision", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } } ], @@ -32780,19 +32620,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "401": { @@ -32801,28 +32641,15 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/": { - "get": { - "description": "get information of a group", + "delete": { + "description": "delete collection of ControllerRevision", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", @@ -32833,29 +32660,108 @@ "https" ], "tags": [ - "authorization" + "apps_v1beta2" + ], + "operationId": "deleteAppsV1beta2CollectionNamespacedControllerRevision", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "getAuthorizationAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } - } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] }, - "/apis/authorization.k8s.io/v1/": { + "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}": { "get": { - "description": "get available resources", + "description": "read the specified ControllerRevision", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", @@ -32866,25 +32772,45 @@ "https" ], "tags": [ - "authorization_v1" + "apps_v1beta2" + ], + "operationId": "readAppsV1beta2NamespacedControllerRevision", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "getAuthorizationV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } - } - }, - "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", + }, + "put": { + "description": "replace the specified ControllerRevision", "consumes": [ "*/*" ], @@ -32897,16 +32823,16 @@ "https" ], "tags": [ - "authorization_v1" + "apps_v1beta2" ], - "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", + "operationId": "replaceAppsV1beta2NamespacedControllerRevision", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } } ], @@ -32914,53 +32840,28 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { - "post": { - "description": "create a SelfSubjectAccessReview", + "delete": { + "description": "delete a ControllerRevision", "consumes": [ "*/*" ], @@ -32973,64 +32874,64 @@ "https" ], "tags": [ - "authorization_v1" + "apps_v1beta2" ], - "operationId": "createAuthorizationV1SelfSubjectAccessReview", + "operationId": "deleteAppsV1beta2NamespacedControllerRevision", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { - "post": { - "description": "create a SelfSubjectRulesReview", + "patch": { + "description": "partially update the specified ControllerRevision", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -33041,16 +32942,16 @@ "https" ], "tags": [ - "authorization_v1" + "apps_v1beta2" ], - "operationId": "createAuthorizationV1SelfSubjectRulesReview", + "operationId": "patchAppsV1beta2NamespacedControllerRevision", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } } ], @@ -33058,33 +32959,37 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ControllerRevision", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -33094,81 +32999,106 @@ } ] }, - "/apis/authorization.k8s.io/v1/subjectaccessreviews": { - "post": { - "description": "create a SubjectAccessReview", + "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets": { + "get": { + "description": "list or watch objects of kind DaemonSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "authorization_v1" + "apps_v1beta2" ], - "operationId": "createAuthorizationV1SubjectAccessReview", + "operationId": "listAppsV1beta2NamespacedDaemonSet", "parameters": [ { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", + "post": { + "description": "create a DaemonSet", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", @@ -33179,25 +33109,51 @@ "https" ], "tags": [ - "authorization_v1beta1" + "apps_v1beta2" + ], + "operationId": "createAppsV1beta2NamespacedDaemonSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + } ], - "operationId": "getAuthorizationV1beta1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } - } - }, - "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", + }, + "delete": { + "description": "delete collection of DaemonSet", "consumes": [ "*/*" ], @@ -33210,47 +33166,83 @@ "https" ], "tags": [ - "authorization_v1beta1" + "apps_v1beta2" ], - "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", + "operationId": "deleteAppsV1beta2CollectionNamespacedDaemonSet", "parameters": [ { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } }, "parameters": [ @@ -33271,9 +33263,9 @@ } ] }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { - "post": { - "description": "create a SelfSubjectAccessReview", + "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}": { + "get": { + "description": "read the specified DaemonSet", "consumes": [ "*/*" ], @@ -33286,62 +33278,45 @@ "https" ], "tags": [ - "authorization_v1beta1" + "apps_v1beta2" ], - "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", + "operationId": "readAppsV1beta2NamespacedDaemonSet", "parameters": [ { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { - "post": { - "description": "create a SelfSubjectRulesReview", + "put": { + "description": "replace the specified DaemonSet", "consumes": [ "*/*" ], @@ -33354,16 +33329,16 @@ "https" ], "tags": [ - "authorization_v1beta1" + "apps_v1beta2" ], - "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", + "operationId": "replaceAppsV1beta2NamespacedDaemonSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } } ], @@ -33371,45 +33346,28 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { - "post": { - "description": "create a SubjectAccessReview", + "delete": { + "description": "delete a DaemonSet", "consumes": [ "*/*" ], @@ -33422,50 +33380,122 @@ "https" ], "tags": [ - "authorization_v1beta1" + "apps_v1beta2" ], - "operationId": "createAuthorizationV1beta1SubjectAccessReview", + "operationId": "deleteAppsV1beta2NamespacedDaemonSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, - "201": { - "description": "Created", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" + } + }, + "patch": { + "description": "partially update the specified DaemonSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "patchAppsV1beta2NamespacedDaemonSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } - }, - "202": { - "description": "Accepted", + } + ], + "responses": { + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the DaemonSet", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -33475,13 +33505,11 @@ } ] }, - "/apis/autoscaling/": { + "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status": { "get": { - "description": "get information of a group", + "description": "read status of the specified DaemonSet", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", @@ -33492,29 +33520,31 @@ "https" ], "tags": [ - "autoscaling" + "apps_v1beta2" ], - "operationId": "getAutoscalingAPIGroup", + "operationId": "readAppsV1beta2NamespacedDaemonSetStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } - } - }, - "/apis/autoscaling/v1/": { - "get": { - "description": "get available resources", + }, + "put": { + "description": "replace status of the specified DaemonSet", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", @@ -33525,95 +33555,106 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" + ], + "operationId": "replaceAppsV1beta2NamespacedDaemonSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + } ], - "operationId": "getAutoscalingV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } - } - }, - "/apis/autoscaling/v1/horizontalpodautoscalers": { - "get": { - "description": "list or watch objects of kind HorizontalPodAutoscaler", + }, + "patch": { + "description": "partially update status of the specified DaemonSet", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" + ], + "operationId": "patchAppsV1beta2NamespacedDaemonSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } ], - "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "description": "name of the DaemonSet", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -33621,33 +33662,12 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { + "/apis/apps/v1beta2/namespaces/{namespace}/deployments": { "get": { - "description": "list or watch objects of kind HorizontalPodAutoscaler", + "description": "list or watch objects of kind Deployment", "consumes": [ "*/*" ], @@ -33662,9 +33682,9 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", + "operationId": "listAppsV1beta2NamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -33727,7 +33747,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" } }, "401": { @@ -33736,13 +33756,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "post": { - "description": "create a HorizontalPodAutoscaler", + "description": "create a Deployment", "consumes": [ "*/*" ], @@ -33755,16 +33775,16 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", + "operationId": "createAppsV1beta2NamespacedDeployment", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } } ], @@ -33772,19 +33792,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { @@ -33793,13 +33813,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "delete": { - "description": "delete collection of HorizontalPodAutoscaler", + "description": "delete collection of Deployment", "consumes": [ "*/*" ], @@ -33812,9 +33832,9 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", + "operationId": "deleteAppsV1beta2CollectionNamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -33886,9 +33906,9 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "parameters": [ @@ -33909,9 +33929,9 @@ } ] }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { + "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}": { "get": { - "description": "read the specified HorizontalPodAutoscaler", + "description": "read the specified Deployment", "consumes": [ "*/*" ], @@ -33924,9 +33944,9 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", + "operationId": "readAppsV1beta2NamespacedDeployment", "parameters": [ { "uniqueItems": true, @@ -33947,7 +33967,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { @@ -33956,13 +33976,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "put": { - "description": "replace the specified HorizontalPodAutoscaler", + "description": "replace the specified Deployment", "consumes": [ "*/*" ], @@ -33975,16 +33995,16 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", + "operationId": "replaceAppsV1beta2NamespacedDeployment", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } } ], @@ -33992,13 +34012,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { @@ -34007,13 +34027,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "delete": { - "description": "delete a HorizontalPodAutoscaler", + "description": "delete a Deployment", "consumes": [ "*/*" ], @@ -34026,9 +34046,9 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", + "operationId": "deleteAppsV1beta2NamespacedDeployment", "parameters": [ { "name": "body", @@ -34055,7 +34075,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -34073,13 +34093,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "patch": { - "description": "partially update the specified HorizontalPodAutoscaler", + "description": "partially update the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -34094,9 +34114,9 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", + "operationId": "patchAppsV1beta2NamespacedDeployment", "parameters": [ { "name": "body", @@ -34111,7 +34131,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { @@ -34120,16 +34140,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the HorizontalPodAutoscaler", + "description": "name of the Deployment", "name": "name", "in": "path", "required": true @@ -34151,9 +34171,9 @@ } ] }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { + "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale": { "get": { - "description": "read status of the specified HorizontalPodAutoscaler", + "description": "read scale of the specified Deployment", "consumes": [ "*/*" ], @@ -34166,14 +34186,14 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", + "operationId": "readAppsV1beta2NamespacedDeploymentScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -34182,13 +34202,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Scale", + "version": "v1beta2" } }, "put": { - "description": "replace status of the specified HorizontalPodAutoscaler", + "description": "replace scale of the specified Deployment", "consumes": [ "*/*" ], @@ -34201,16 +34221,16 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", + "operationId": "replaceAppsV1beta2NamespacedDeploymentScale", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } } ], @@ -34218,13 +34238,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -34233,13 +34253,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Scale", + "version": "v1beta2" } }, "patch": { - "description": "partially update status of the specified HorizontalPodAutoscaler", + "description": "partially update scale of the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -34254,9 +34274,9 @@ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", + "operationId": "patchAppsV1beta2NamespacedDeploymentScale", "parameters": [ { "name": "body", @@ -34271,7 +34291,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -34280,16 +34300,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Scale", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the HorizontalPodAutoscaler", + "description": "name of the Scale", "name": "name", "in": "path", "required": true @@ -34311,349 +34331,99 @@ } ] }, - "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { + "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status": { "get": { - "description": "watch individual changes to a list of HorizontalPodAutoscaler", + "description": "read status of the specified Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", + "operationId": "readAppsV1beta2NamespacedDeploymentStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "description": "watch individual changes to a list of HorizontalPodAutoscaler", + "put": { + "description": "replace status of the specified Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "autoscaling_v1" + "apps_v1beta2" ], - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", - "responses": { - "200": { - "description": "OK", + "operationId": "replaceAppsV1beta2NamespacedDeploymentStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } - }, - "401": { - "description": "Unauthorized" } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "description": "watch changes to an object of kind HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the HorizontalPodAutoscaler", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/": { - "get": { - "description": "get available resources", + "patch": { + "description": "partially update status of the specified Deployment", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -34664,95 +34434,53 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "getAutoscalingV2beta1APIResources", - "responses": { - "200": { - "description": "OK", + "operationId": "patchAppsV1beta2NamespacedDeploymentStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } - }, - "401": { - "description": "Unauthorized" } - } - } - }, - "/apis/autoscaling/v2beta1/horizontalpodautoscalers": { - "get": { - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" ], - "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "description": "name of the Deployment", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -34760,33 +34488,12 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers": { + "/apis/apps/v1beta2/namespaces/{namespace}/replicasets": { "get": { - "description": "list or watch objects of kind HorizontalPodAutoscaler", + "description": "list or watch objects of kind ReplicaSet", "consumes": [ "*/*" ], @@ -34801,9 +34508,9 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "operationId": "listAppsV1beta2NamespacedReplicaSet", "parameters": [ { "uniqueItems": true, @@ -34866,7 +34573,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" } }, "401": { @@ -34875,13 +34582,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "post": { - "description": "create a HorizontalPodAutoscaler", + "description": "create a ReplicaSet", "consumes": [ "*/*" ], @@ -34894,16 +34601,16 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "operationId": "createAppsV1beta2NamespacedReplicaSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } } ], @@ -34911,19 +34618,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -34932,13 +34639,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "delete": { - "description": "delete collection of HorizontalPodAutoscaler", + "description": "delete collection of ReplicaSet", "consumes": [ "*/*" ], @@ -34951,9 +34658,9 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler", + "operationId": "deleteAppsV1beta2CollectionNamespacedReplicaSet", "parameters": [ { "uniqueItems": true, @@ -35025,9 +34732,9 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "parameters": [ @@ -35048,9 +34755,9 @@ } ] }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { + "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}": { "get": { - "description": "read the specified HorizontalPodAutoscaler", + "description": "read the specified ReplicaSet", "consumes": [ "*/*" ], @@ -35063,9 +34770,9 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "operationId": "readAppsV1beta2NamespacedReplicaSet", "parameters": [ { "uniqueItems": true, @@ -35086,7 +34793,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -35095,13 +34802,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "put": { - "description": "replace the specified HorizontalPodAutoscaler", + "description": "replace the specified ReplicaSet", "consumes": [ "*/*" ], @@ -35114,16 +34821,16 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "operationId": "replaceAppsV1beta2NamespacedReplicaSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } } ], @@ -35131,13 +34838,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -35146,13 +34853,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "delete": { - "description": "delete a HorizontalPodAutoscaler", + "description": "delete a ReplicaSet", "consumes": [ "*/*" ], @@ -35165,9 +34872,9 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "operationId": "deleteAppsV1beta2NamespacedReplicaSet", "parameters": [ { "name": "body", @@ -35194,7 +34901,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -35212,13 +34919,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "patch": { - "description": "partially update the specified HorizontalPodAutoscaler", + "description": "partially update the specified ReplicaSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -35233,9 +34940,9 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "operationId": "patchAppsV1beta2NamespacedReplicaSet", "parameters": [ { "name": "body", @@ -35250,7 +34957,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { @@ -35259,16 +34966,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the HorizontalPodAutoscaler", + "description": "name of the ReplicaSet", "name": "name", "in": "path", "required": true @@ -35290,9 +34997,9 @@ } ] }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { + "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale": { "get": { - "description": "read status of the specified HorizontalPodAutoscaler", + "description": "read scale of the specified ReplicaSet", "consumes": [ "*/*" ], @@ -35305,14 +35012,14 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", + "operationId": "readAppsV1beta2NamespacedReplicaSetScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -35321,13 +35028,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "Scale", + "version": "v1beta2" } }, "put": { - "description": "replace status of the specified HorizontalPodAutoscaler", + "description": "replace scale of the specified ReplicaSet", "consumes": [ "*/*" ], @@ -35340,16 +35047,16 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", + "operationId": "replaceAppsV1beta2NamespacedReplicaSetScale", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } } ], @@ -35357,13 +35064,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -35372,13 +35079,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "Scale", + "version": "v1beta2" } }, "patch": { - "description": "partially update status of the specified HorizontalPodAutoscaler", + "description": "partially update scale of the specified ReplicaSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -35393,9 +35100,9 @@ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", + "operationId": "patchAppsV1beta2NamespacedReplicaSetScale", "parameters": [ { "name": "body", @@ -35410,7 +35117,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -35419,16 +35126,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "Scale", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the HorizontalPodAutoscaler", + "description": "name of the Scale", "name": "name", "in": "path", "required": true @@ -35450,300 +35157,145 @@ } ] }, - "/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers": { + "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status": { "get": { - "description": "watch individual changes to a list of HorizontalPodAutoscaler", + "description": "read status of the specified ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" ], - "operationId": "watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces", + "operationId": "readAppsV1beta2NamespacedReplicaSetStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "description": "watch individual changes to a list of HorizontalPodAutoscaler", + "put": { + "description": "replace status of the specified ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" + ], + "operationId": "replaceAppsV1beta2NamespacedReplicaSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + } + } ], - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "description": "watch changes to an object of kind HorizontalPodAutoscaler", + "patch": { + "description": "partially update status of the specified ReplicaSet", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "autoscaling_v2beta1" + "apps_v1beta2" + ], + "operationId": "patchAppsV1beta2NamespacedReplicaSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } ], - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the HorizontalPodAutoscaler", + "description": "name of the ReplicaSet", "name": "name", "in": "path", "required": true @@ -35762,70 +35314,109 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/batch/": { + "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets": { "get": { - "description": "get information of a group", + "description": "list or watch objects of kind StatefulSet", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "batch" + "apps_v1beta2" + ], + "operationId": "listAppsV1beta2NamespacedStatefulSet", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "getBatchAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } - } - }, - "/apis/batch/v1/": { - "get": { - "description": "get available resources", + }, + "post": { + "description": "create a StatefulSet", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", @@ -35836,281 +35427,51 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" + ], + "operationId": "createAppsV1beta2NamespacedStatefulSet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + } + } ], - "operationId": "getBatchV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } - } - }, - "/apis/batch/v1/jobs": { - "get": { - "description": "list or watch objects of kind Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "listBatchV1JobForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v1/namespaces/{namespace}/jobs": { - "get": { - "description": "list or watch objects of kind Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "listBatchV1NamespacedJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "post": { - "description": "create a Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "createBatchV1NamespacedJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Job", + }, + "delete": { + "description": "delete collection of StatefulSet", "consumes": [ "*/*" ], @@ -36123,9 +35484,9 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "deleteBatchV1CollectionNamespacedJob", + "operationId": "deleteAppsV1beta2CollectionNamespacedStatefulSet", "parameters": [ { "uniqueItems": true, @@ -36197,9 +35558,9 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, "parameters": [ @@ -36220,9 +35581,9 @@ } ] }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { + "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}": { "get": { - "description": "read the specified Job", + "description": "read the specified StatefulSet", "consumes": [ "*/*" ], @@ -36235,9 +35596,9 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "readBatchV1NamespacedJob", + "operationId": "readAppsV1beta2NamespacedStatefulSet", "parameters": [ { "uniqueItems": true, @@ -36258,7 +35619,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -36267,13 +35628,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, "put": { - "description": "replace the specified Job", + "description": "replace the specified StatefulSet", "consumes": [ "*/*" ], @@ -36286,16 +35647,16 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "replaceBatchV1NamespacedJob", + "operationId": "replaceAppsV1beta2NamespacedStatefulSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } } ], @@ -36303,13 +35664,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -36318,13 +35679,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, "delete": { - "description": "delete a Job", + "description": "delete a StatefulSet", "consumes": [ "*/*" ], @@ -36337,9 +35698,9 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "deleteBatchV1NamespacedJob", + "operationId": "deleteAppsV1beta2NamespacedStatefulSet", "parameters": [ { "name": "body", @@ -36366,7 +35727,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -36384,13 +35745,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, "patch": { - "description": "partially update the specified Job", + "description": "partially update the specified StatefulSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -36405,9 +35766,9 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "patchBatchV1NamespacedJob", + "operationId": "patchAppsV1beta2NamespacedStatefulSet", "parameters": [ { "name": "body", @@ -36422,7 +35783,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { @@ -36431,16 +35792,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Job", + "description": "name of the StatefulSet", "name": "name", "in": "path", "required": true @@ -36462,9 +35823,9 @@ } ] }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { + "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale": { "get": { - "description": "read status of the specified Job", + "description": "read scale of the specified StatefulSet", "consumes": [ "*/*" ], @@ -36477,14 +35838,14 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "readBatchV1NamespacedJobStatus", + "operationId": "readAppsV1beta2NamespacedStatefulSetScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -36493,13 +35854,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "Scale", + "version": "v1beta2" } }, "put": { - "description": "replace status of the specified Job", + "description": "replace scale of the specified StatefulSet", "consumes": [ "*/*" ], @@ -36512,16 +35873,16 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "replaceBatchV1NamespacedJobStatus", + "operationId": "replaceAppsV1beta2NamespacedStatefulSetScale", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } } ], @@ -36529,13 +35890,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -36544,13 +35905,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "Scale", + "version": "v1beta2" } }, "patch": { - "description": "partially update status of the specified Job", + "description": "partially update scale of the specified StatefulSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -36565,9 +35926,9 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "patchBatchV1NamespacedJobStatus", + "operationId": "patchAppsV1beta2NamespacedStatefulSetScale", "parameters": [ { "name": "body", @@ -36582,7 +35943,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" } }, "401": { @@ -36591,16 +35952,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "Scale", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Job", + "description": "name of the Scale", "name": "name", "in": "path", "required": true @@ -36622,158 +35983,214 @@ } ] }, - "/apis/batch/v1/watch/jobs": { + "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status": { "get": { - "description": "watch individual changes to a list of Job", + "description": "read status of the specified StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "watchBatchV1JobListForAllNamespaces", + "operationId": "readAppsV1beta2NamespacedStatefulSetStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs": { - "get": { - "description": "watch individual changes to a list of Job", + "put": { + "description": "replace status of the specified StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" + ], + "operationId": "replaceAppsV1beta2NamespacedStatefulSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + } + } ], - "operationId": "watchBatchV1NamespacedJobList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, + "patch": { + "description": "partially update status of the specified StatefulSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "patchAppsV1beta2NamespacedStatefulSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the StatefulSet", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/replicasets": { + "get": { + "description": "list or watch objects of kind ReplicaSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "listAppsV1beta2ReplicaSetForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, "type": "string", "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", "name": "fieldSelector", @@ -36800,14 +36217,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -36838,9 +36247,9 @@ } ] }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { + "/apis/apps/v1beta2/statefulsets": { "get": { - "description": "watch changes to an object of kind Job", + "description": "list or watch objects of kind StatefulSet", "consumes": [ "*/*" ], @@ -36855,25 +36264,25 @@ "https" ], "tags": [ - "batch_v1" + "apps_v1beta2" ], - "operationId": "watchBatchV1NamespacedJob", + "operationId": "listAppsV1beta2StatefulSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, "parameters": [ @@ -36912,22 +36321,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Job", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -36958,42 +36351,113 @@ } ] }, - "/apis/batch/v1beta1/": { + "/apis/apps/v1beta2/watch/controllerrevisions": { "get": { - "description": "get available resources", + "description": "watch individual changes to a list of ControllerRevision", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "batch_v1beta1" + "apps_v1beta2" ], - "operationId": "getBatchV1beta1APIResources", + "operationId": "watchAppsV1beta2ControllerRevisionListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } - } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] }, - "/apis/batch/v1beta1/cronjobs": { + "/apis/apps/v1beta2/watch/daemonsets": { "get": { - "description": "list or watch objects of kind CronJob", + "description": "watch individual changes to a list of DaemonSet", "consumes": [ "*/*" ], @@ -37008,25 +36472,25 @@ "https" ], "tags": [ - "batch_v1beta1" + "apps_v1beta2" ], - "operationId": "listBatchV1beta1CronJobForAllNamespaces", + "operationId": "watchAppsV1beta2DaemonSetListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } }, "parameters": [ @@ -37095,9 +36559,9 @@ } ] }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs": { + "/apis/apps/v1beta2/watch/deployments": { "get": { - "description": "list or watch objects of kind CronJob", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], @@ -37112,477 +36576,166 @@ "https" ], "tags": [ - "batch_v1beta1" - ], - "operationId": "listBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "apps_v1beta2" ], + "operationId": "watchAppsV1beta2DeploymentListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, - "post": { - "description": "create a CronJob", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions": { + "get": { + "description": "watch individual changes to a list of ControllerRevision", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "batch_v1beta1" - ], - "operationId": "createBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - } + "apps_v1beta2" ], + "operationId": "watchAppsV1beta2NamespacedControllerRevisionList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "deleteBatchV1beta1CollectionNamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", "in": "query" - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "description": "read the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "readBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "replaceBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "deleteBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified CronJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "patchBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -37598,172 +36751,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status": { - "get": { - "description": "read status of the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "readBatchV1beta1NamespacedCronJobStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "replaceBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified CronJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "patchBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" }, { "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" }, { "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", "in": "query" } ] }, - "/apis/batch/v1beta1/watch/cronjobs": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions/{name}": { "get": { - "description": "watch individual changes to a list of CronJob", + "description": "watch changes to an object of kind ControllerRevision", "consumes": [ "*/*" ], @@ -37778,9 +36792,9 @@ "https" ], "tags": [ - "batch_v1beta1" + "apps_v1beta2" ], - "operationId": "watchBatchV1beta1CronJobListForAllNamespaces", + "operationId": "watchAppsV1beta2NamespacedControllerRevision", "responses": { "200": { "description": "OK", @@ -37792,11 +36806,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" + "group": "apps", + "kind": "ControllerRevision", + "version": "v1beta2" } }, "parameters": [ @@ -37835,6 +36849,22 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ControllerRevision", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -37865,9 +36895,9 @@ } ] }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets": { "get": { - "description": "watch individual changes to a list of CronJob", + "description": "watch individual changes to a list of DaemonSet", "consumes": [ "*/*" ], @@ -37882,9 +36912,9 @@ "https" ], "tags": [ - "batch_v1beta1" + "apps_v1beta2" ], - "operationId": "watchBatchV1beta1NamespacedCronJobList", + "operationId": "watchAppsV1beta2NamespacedDaemonSetList", "responses": { "200": { "description": "OK", @@ -37898,9 +36928,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } }, "parameters": [ @@ -37977,9 +37007,9 @@ } ] }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets/{name}": { "get": { - "description": "watch changes to an object of kind CronJob", + "description": "watch changes to an object of kind DaemonSet", "consumes": [ "*/*" ], @@ -37994,9 +37024,9 @@ "https" ], "tags": [ - "batch_v1beta1" + "apps_v1beta2" ], - "operationId": "watchBatchV1beta1NamespacedCronJob", + "operationId": "watchAppsV1beta2NamespacedDaemonSet", "responses": { "200": { "description": "OK", @@ -38010,9 +37040,9 @@ }, "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" + "group": "apps", + "kind": "DaemonSet", + "version": "v1beta2" } }, "parameters": [ @@ -38054,7 +37084,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the CronJob", + "description": "name of the DaemonSet", "name": "name", "in": "path", "required": true @@ -38097,42 +37127,9 @@ } ] }, - "/apis/batch/v2alpha1/": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments": { "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "getBatchV2alpha1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/batch/v2alpha1/cronjobs": { - "get": { - "description": "list or watch objects of kind CronJob", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], @@ -38147,25 +37144,25 @@ "https" ], "tags": [ - "batch_v2alpha1" + "apps_v1beta2" ], - "operationId": "listBatchV2alpha1CronJobForAllNamespaces", + "operationId": "watchAppsV1beta2NamespacedDeploymentList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, "parameters": [ @@ -38204,6 +37201,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -38234,9 +37239,9 @@ } ] }, - "/apis/batch/v2alpha1/namespaces/{namespace}/cronjobs": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments/{name}": { "get": { - "description": "list or watch objects of kind CronJob", + "description": "watch changes to an object of kind Deployment", "consumes": [ "*/*" ], @@ -38251,236 +37256,303 @@ "https" ], "tags": [ - "batch_v2alpha1" - ], - "operationId": "listBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "apps_v1beta2" ], + "operationId": "watchAppsV1beta2NamespacedDeployment", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" + "group": "apps", + "kind": "Deployment", + "version": "v1beta2" } }, - "post": { - "description": "create a CronJob", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Deployment", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets": { + "get": { + "description": "watch individual changes to a list of ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "batch_v2alpha1" - ], - "operationId": "createBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - } + "apps_v1beta2" ], + "operationId": "watchAppsV1beta2NamespacedReplicaSetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, - "delete": { - "description": "delete collection of CronJob", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets/{name}": { + "get": { + "description": "watch changes to an object of kind ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "batch_v2alpha1" - ], - "operationId": "deleteBatchV2alpha1CollectionNamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "apps_v1beta2" ], + "operationId": "watchAppsV1beta2NamespacedReplicaSet", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ReplicaSet", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -38495,233 +37567,103 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets": { "get": { - "description": "read the specified CronJob", + "description": "watch individual changes to a list of StatefulSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "batch_v2alpha1" - ], - "operationId": "readBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "apps_v1beta2" ], + "operationId": "watchAppsV1beta2NamespacedStatefulSetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, - "put": { - "description": "replace the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "replaceBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "delete": { - "description": "delete a CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "deleteBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "patch": { - "description": "partially update the specified CronJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "patchBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -38737,172 +37679,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}/status": { - "get": { - "description": "read status of the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "readBatchV2alpha1NamespacedCronJobStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "put": { - "description": "replace status of the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "replaceBatchV2alpha1NamespacedCronJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "patch": { - "description": "partially update status of the specified CronJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "patchBatchV2alpha1NamespacedCronJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" }, { "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" }, { "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", "in": "query" } ] }, - "/apis/batch/v2alpha1/watch/cronjobs": { + "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets/{name}": { "get": { - "description": "watch individual changes to a list of CronJob", + "description": "watch changes to an object of kind StatefulSet", "consumes": [ "*/*" ], @@ -38917,9 +37720,9 @@ "https" ], "tags": [ - "batch_v2alpha1" + "apps_v1beta2" ], - "operationId": "watchBatchV2alpha1CronJobListForAllNamespaces", + "operationId": "watchAppsV1beta2NamespacedStatefulSet", "responses": { "200": { "description": "OK", @@ -38931,11 +37734,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, "parameters": [ @@ -38974,6 +37777,22 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the StatefulSet", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -39004,9 +37823,9 @@ } ] }, - "/apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs": { + "/apis/apps/v1beta2/watch/replicasets": { "get": { - "description": "watch individual changes to a list of CronJob", + "description": "watch individual changes to a list of ReplicaSet", "consumes": [ "*/*" ], @@ -39021,9 +37840,9 @@ "https" ], "tags": [ - "batch_v2alpha1" + "apps_v1beta2" ], - "operationId": "watchBatchV2alpha1NamespacedCronJobList", + "operationId": "watchAppsV1beta2ReplicaSetListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -39037,9 +37856,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1beta2" } }, "parameters": [ @@ -39078,14 +37897,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -39116,9 +37927,9 @@ } ] }, - "/apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs/{name}": { + "/apis/apps/v1beta2/watch/statefulsets": { "get": { - "description": "watch changes to an object of kind CronJob", + "description": "watch individual changes to a list of StatefulSet", "consumes": [ "*/*" ], @@ -39133,9 +37944,9 @@ "https" ], "tags": [ - "batch_v2alpha1" + "apps_v1beta2" ], - "operationId": "watchBatchV2alpha1NamespacedCronJob", + "operationId": "watchAppsV1beta2StatefulSetListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -39147,11 +37958,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" + "group": "apps", + "kind": "StatefulSet", + "version": "v1beta2" } }, "parameters": [ @@ -39190,22 +38001,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -39236,7 +38031,7 @@ } ] }, - "/apis/certificates.k8s.io/": { + "/apis/authentication.k8s.io/": { "get": { "description": "get information of a group", "consumes": [ @@ -39253,9 +38048,9 @@ "https" ], "tags": [ - "certificates" + "authentication" ], - "operationId": "getCertificatesAPIGroup", + "operationId": "getAuthenticationAPIGroup", "responses": { "200": { "description": "OK", @@ -39269,7 +38064,7 @@ } } }, - "/apis/certificates.k8s.io/v1beta1/": { + "/apis/authentication.k8s.io/v1/": { "get": { "description": "get available resources", "consumes": [ @@ -39286,9 +38081,9 @@ "https" ], "tags": [ - "certificates_v1beta1" + "authentication_v1" ], - "operationId": "getCertificatesV1beta1APIResources", + "operationId": "getAuthenticationV1APIResources", "responses": { "200": { "description": "OK", @@ -39302,104 +38097,110 @@ } } }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests": { - "get": { - "description": "list or watch objects of kind CertificateSigningRequest", + "/apis/authentication.k8s.io/v1/tokenreviews": { + "post": { + "description": "create a TokenReview", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "certificates_v1beta1" + "authentication_v1" ], - "operationId": "listCertificatesV1beta1CertificateSigningRequest", + "operationId": "createAuthenticationV1TokenReview", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" + } }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" + } }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "401": { + "description": "Unauthorized" } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authentication.k8s.io", + "kind": "TokenReview", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authentication.k8s.io/v1beta1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], + "schemes": [ + "https" + ], + "tags": [ + "authentication_v1beta1" + ], + "operationId": "getAuthenticationV1beta1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" } - }, + } + }, + "/apis/authentication.k8s.io/v1beta1/tokenreviews": { "post": { - "description": "create a CertificateSigningRequest", + "description": "create a TokenReview", "consumes": [ "*/*" ], @@ -39412,16 +38213,16 @@ "https" ], "tags": [ - "certificates_v1beta1" + "authentication_v1beta1" ], - "operationId": "createCertificatesV1beta1CertificateSigningRequest", + "operationId": "createAuthenticationV1beta1TokenReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" } } ], @@ -39429,19 +38230,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" } }, "401": { @@ -39450,15 +38251,28 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", + "group": "authentication.k8s.io", + "kind": "TokenReview", "version": "v1beta1" } }, - "delete": { - "description": "delete collection of CertificateSigningRequest", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.k8s.io/": { + "get": { + "description": "get information of a group", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", @@ -39469,100 +38283,29 @@ "https" ], "tags": [ - "certificates_v1beta1" - ], - "operationId": "deleteCertificatesV1beta1CollectionCertificateSigningRequest", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "authorization" ], + "operationId": "getAuthorizationAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" } - ] + } }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}": { + "/apis/authorization.k8s.io/v1/": { "get": { - "description": "read the specified CertificateSigningRequest", + "description": "get available resources", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", @@ -39573,45 +38316,25 @@ "https" ], "tags": [ - "certificates_v1beta1" - ], - "operationId": "readCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "authorization_v1" ], + "operationId": "getAuthorizationV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" } - }, - "put": { - "description": "replace the specified CertificateSigningRequest", + } + }, + "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { + "post": { + "description": "create a LocalSubjectAccessReview", "consumes": [ "*/*" ], @@ -39624,16 +38347,16 @@ "https" ], "tags": [ - "certificates_v1beta1" + "authorization_v1" ], - "operationId": "replaceCertificatesV1beta1CertificateSigningRequest", + "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" } } ], @@ -39641,28 +38364,53 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", + "version": "v1" } }, - "delete": { - "description": "delete a CertificateSigningRequest", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { + "post": { + "description": "create a SelfSubjectAccessReview", "consumes": [ "*/*" ], @@ -39675,64 +38423,64 @@ "https" ], "tags": [ - "certificates_v1beta1" + "authorization_v1" ], - "operationId": "deleteCertificatesV1beta1CertificateSigningRequest", + "operationId": "createAuthorizationV1SelfSubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", + "version": "v1" } }, - "patch": { - "description": "partially update the specified CertificateSigningRequest", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { + "post": { + "description": "create a SelfSubjectRulesReview", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", @@ -39743,16 +38491,16 @@ "https" ], "tags": [ - "certificates_v1beta1" + "authorization_v1" ], - "operationId": "patchCertificatesV1beta1CertificateSigningRequest", + "operationId": "createAuthorizationV1SelfSubjectRulesReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" } } ], @@ -39760,29 +38508,33 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" + "group": "authorization.k8s.io", + "kind": "SelfSubjectRulesReview", + "version": "v1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CertificateSigningRequest", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -39792,9 +38544,9 @@ } ] }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval": { - "put": { - "description": "replace approval of the specified CertificateSigningRequest", + "/apis/authorization.k8s.io/v1/subjectaccessreviews": { + "post": { + "description": "create a SubjectAccessReview", "consumes": [ "*/*" ], @@ -39807,16 +38559,16 @@ "https" ], "tags": [ - "certificates_v1beta1" + "authorization_v1" ], - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestApproval", + "operationId": "createAuthorizationV1SubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } } ], @@ -39824,35 +38576,33 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CertificateSigningRequest", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -39862,9 +38612,42 @@ } ] }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status": { - "put": { - "description": "replace status of the specified CertificateSigningRequest", + "/apis/authorization.k8s.io/v1beta1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "authorization_v1beta1" + ], + "operationId": "getAuthorizationV1beta1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { + "post": { + "description": "create a LocalSubjectAccessReview", "consumes": [ "*/*" ], @@ -39877,16 +38660,16 @@ "https" ], "tags": [ - "certificates_v1beta1" + "authorization_v1beta1" ], - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestStatus", + "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" } } ], @@ -39894,23 +38677,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", + "group": "authorization.k8s.io", + "kind": "LocalSubjectAccessReview", "version": "v1beta1" } }, @@ -39918,8 +38707,8 @@ { "uniqueItems": true, "type": "string", - "description": "name of the CertificateSigningRequest", - "name": "name", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", "in": "path", "required": true }, @@ -39932,229 +38721,147 @@ } ] }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests": { - "get": { - "description": "watch individual changes to a list of CertificateSigningRequest", + "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { + "post": { + "description": "create a SelfSubjectAccessReview", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "certificates_v1beta1" + "authorization_v1beta1" ], - "operationId": "watchCertificatesV1beta1CertificateSigningRequestList", - "responses": { + "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + } + } + ], + "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", + "group": "authorization.k8s.io", + "kind": "SelfSubjectAccessReview", "version": "v1beta1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}": { - "get": { - "description": "watch changes to an object of kind CertificateSigningRequest", + "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { + "post": { + "description": "create a SelfSubjectRulesReview", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "certificates_v1beta1" + "authorization_v1beta1" + ], + "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } + } ], - "operationId": "watchCertificatesV1beta1CertificateSigningRequest", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", + "group": "authorization.k8s.io", + "kind": "SelfSubjectRulesReview", "version": "v1beta1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the CertificateSigningRequest", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/extensions/": { - "get": { - "description": "get information of a group", + "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { + "post": { + "description": "create a SubjectAccessReview", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", @@ -40165,25 +38872,62 @@ "https" ], "tags": [ - "extensions" + "authorization_v1beta1" + ], + "operationId": "createAuthorizationV1beta1SubjectAccessReview", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + } + } ], - "operationId": "getExtensionsAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "authorization.k8s.io", + "kind": "SubjectAccessReview", + "version": "v1beta1" } - } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] }, - "/apis/extensions/v1beta1/": { + "/apis/autoscaling/": { "get": { - "description": "get available resources", + "description": "get information of a group", "consumes": [ "application/json", "application/yaml", @@ -40198,14 +38942,14 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling" ], - "operationId": "getExtensionsV1beta1APIResources", + "operationId": "getAutoscalingAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" } }, "401": { @@ -40214,217 +38958,42 @@ } } }, - "/apis/extensions/v1beta1/daemonsets": { + "/apis/autoscaling/v1/": { "get": { - "description": "list or watch objects of kind DaemonSet", + "description": "get available resources", "consumes": [ - "*/*" - ], - "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1DaemonSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "listExtensionsV1beta1DeploymentForAllNamespaces", + "operationId": "getAutoscalingV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } - ] + } }, - "/apis/extensions/v1beta1/ingresses": { + "/apis/autoscaling/v1/horizontalpodautoscalers": { "get": { - "description": "list or watch objects of kind Ingress", + "description": "list or watch objects of kind HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -40439,14 +39008,14 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "listExtensionsV1beta1IngressForAllNamespaces", + "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" } }, "401": { @@ -40455,9 +39024,9 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "parameters": [ @@ -40526,9 +39095,9 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets": { + "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { "get": { - "description": "list or watch objects of kind DaemonSet", + "description": "list or watch objects of kind HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -40543,9 +39112,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "listExtensionsV1beta1NamespacedDaemonSet", + "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", "parameters": [ { "uniqueItems": true, @@ -40608,7 +39177,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" } }, "401": { @@ -40617,13 +39186,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "post": { - "description": "create a DaemonSet", + "description": "create a HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -40636,16 +39205,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "createExtensionsV1beta1NamespacedDaemonSet", + "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } } ], @@ -40653,19 +39222,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { @@ -40674,13 +39243,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "delete": { - "description": "delete collection of DaemonSet", + "description": "delete collection of HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -40693,9 +39262,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedDaemonSet", + "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", "parameters": [ { "uniqueItems": true, @@ -40767,9 +39336,9 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "parameters": [ @@ -40790,9 +39359,9 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}": { + "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { "get": { - "description": "read the specified DaemonSet", + "description": "read the specified HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -40805,9 +39374,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "readExtensionsV1beta1NamespacedDaemonSet", + "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", "parameters": [ { "uniqueItems": true, @@ -40828,7 +39397,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { @@ -40837,13 +39406,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "put": { - "description": "replace the specified DaemonSet", + "description": "replace the specified HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -40856,16 +39425,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "replaceExtensionsV1beta1NamespacedDaemonSet", + "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } } ], @@ -40873,13 +39442,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { @@ -40888,13 +39457,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "delete": { - "description": "delete a DaemonSet", + "description": "delete a HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -40907,9 +39476,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "deleteExtensionsV1beta1NamespacedDaemonSet", + "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", "parameters": [ { "name": "body", @@ -40936,7 +39505,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -40954,13 +39523,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "patch": { - "description": "partially update the specified DaemonSet", + "description": "partially update the specified HorizontalPodAutoscaler", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -40975,9 +39544,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "patchExtensionsV1beta1NamespacedDaemonSet", + "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", "parameters": [ { "name": "body", @@ -40992,7 +39561,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { @@ -41001,16 +39570,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", + "description": "name of the HorizontalPodAutoscaler", "name": "name", "in": "path", "required": true @@ -41032,9 +39601,9 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status": { + "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { "get": { - "description": "read status of the specified DaemonSet", + "description": "read status of the specified HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -41047,14 +39616,14 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "readExtensionsV1beta1NamespacedDaemonSetStatus", + "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { @@ -41063,13 +39632,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "put": { - "description": "replace status of the specified DaemonSet", + "description": "replace status of the specified HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -41082,16 +39651,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "replaceExtensionsV1beta1NamespacedDaemonSetStatus", + "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } } ], @@ -41099,13 +39668,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { @@ -41114,13 +39683,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "patch": { - "description": "partially update status of the specified DaemonSet", + "description": "partially update status of the specified HorizontalPodAutoscaler", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -41135,9 +39704,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v1" ], - "operationId": "patchExtensionsV1beta1NamespacedDaemonSetStatus", + "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", "parameters": [ { "name": "body", @@ -41152,7 +39721,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { @@ -41161,16 +39730,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", + "description": "name of the HorizontalPodAutoscaler", "name": "name", "in": "path", "required": true @@ -41192,9 +39761,9 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments": { + "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { "get": { - "description": "list or watch objects of kind Deployment", + "description": "watch individual changes to a list of HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -41209,236 +39778,167 @@ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "autoscaling_v1" ], + "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, - "post": { - "description": "create a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "delete": { - "description": "delete collection of Deployment", + ] + }, + "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { + "get": { + "description": "watch individual changes to a list of HorizontalPodAutoscaler", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "autoscaling_v1" ], + "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", @@ -41453,157 +39953,362 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}": { + "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { "get": { - "description": "read the specified Deployment", + "description": "watch changes to an object of kind HorizontalPodAutoscaler", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "autoscaling_v1" ], + "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v1" } }, - "put": { - "description": "replace the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the HorizontalPodAutoscaler", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/autoscaling/v2beta1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" ], + "operationId": "getAutoscalingV2beta1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, - "201": { - "description": "Created", + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/autoscaling/v2beta1/horizontalpodautoscalers": { + "get": { + "description": "list or watch objects of kind HorizontalPodAutoscaler", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", + "responses": { + "200": { + "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, - "delete": { - "description": "delete a Deployment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers": { + "get": { + "description": "list or watch objects of kind HorizontalPodAutoscaler", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v2beta1" ], - "operationId": "deleteExtensionsV1beta1NamespacedDeployment", + "operationId": "listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", "parameters": [ { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, { "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", "in": "query" }, { "uniqueItems": true, "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", "in": "query" } ], @@ -41611,26 +40316,24 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, - "patch": { - "description": "partially update the specified Deployment", + "post": { + "description": "create a HorizontalPodAutoscaler", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", @@ -41641,16 +40344,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v2beta1" ], - "operationId": "patchExtensionsV1beta1NamespacedDeployment", + "operationId": "createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } } ], @@ -41658,49 +40361,34 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback": { - "post": { - "description": "create rollback of a Deployment", + "delete": { + "description": "delete collection of HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -41713,58 +40401,86 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v2beta1" ], - "operationId": "createExtensionsV1beta1NamespacedDeploymentRollback", + "operationId": "deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler", "parameters": [ { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DeploymentRollback", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DeploymentRollback", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -41782,9 +40498,9 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale": { + "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { "get": { - "description": "read scale of the specified Deployment", + "description": "read the specified HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -41797,14 +40513,30 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v2beta1" + ], + "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "readExtensionsV1beta1NamespacedDeploymentScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } }, "401": { @@ -41813,13 +40545,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, "put": { - "description": "replace scale of the specified Deployment", + "description": "replace the specified HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -41832,16 +40564,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v2beta1" ], - "operationId": "replaceExtensionsV1beta1NamespacedDeploymentScale", + "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } } ], @@ -41849,13 +40581,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } }, "401": { @@ -41864,17 +40596,15 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, - "patch": { - "description": "partially update scale of the specified Deployment", + "delete": { + "description": "delete a HorizontalPodAutoscaler", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", @@ -41885,24 +40615,92 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v2beta1" ], - "operationId": "patchExtensionsV1beta1NamespacedDeploymentScale", + "operationId": "deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } - } - ], + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" + } + }, + "patch": { + "description": "partially update the specified HorizontalPodAutoscaler", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "autoscaling_v2beta1" + ], + "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } }, "401": { @@ -41911,16 +40709,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Scale", + "description": "name of the HorizontalPodAutoscaler", "name": "name", "in": "path", "required": true @@ -41942,9 +40740,9 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status": { + "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { "get": { - "description": "read status of the specified Deployment", + "description": "read status of the specified HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -41957,14 +40755,14 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v2beta1" ], - "operationId": "readExtensionsV1beta1NamespacedDeploymentStatus", + "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } }, "401": { @@ -41973,13 +40771,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, "put": { - "description": "replace status of the specified Deployment", + "description": "replace status of the specified HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -41992,16 +40790,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v2beta1" ], - "operationId": "replaceExtensionsV1beta1NamespacedDeploymentStatus", + "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } } ], @@ -42009,13 +40807,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } }, "401": { @@ -42024,13 +40822,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, "patch": { - "description": "partially update status of the specified Deployment", + "description": "partially update status of the specified HorizontalPodAutoscaler", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -42045,9 +40843,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "autoscaling_v2beta1" ], - "operationId": "patchExtensionsV1beta1NamespacedDeploymentStatus", + "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", "parameters": [ { "name": "body", @@ -42062,7 +40860,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" } }, "401": { @@ -42071,16 +40869,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Deployment", + "description": "name of the HorizontalPodAutoscaler", "name": "name", "in": "path", "required": true @@ -42102,9 +40900,9 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { + "/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers": { "get": { - "description": "list or watch objects of kind Ingress", + "description": "watch individual changes to a list of HorizontalPodAutoscaler", "consumes": [ "*/*" ], @@ -42119,236 +40917,167 @@ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "autoscaling_v2beta1" ], + "operationId": "watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, - "post": { - "description": "create an Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "delete": { - "description": "delete collection of Ingress", + ] + }, + "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers": { + "get": { + "description": "watch individual changes to a list of HorizontalPodAutoscaler", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "autoscaling_v2beta1" ], + "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", @@ -42363,230 +41092,108 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { + "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { "get": { - "description": "read the specified Ingress", + "description": "watch changes to an object of kind HorizontalPodAutoscaler", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "autoscaling_v2beta1" ], + "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" + "group": "autoscaling", + "kind": "HorizontalPodAutoscaler", + "version": "v2beta1" } }, - "put": { - "description": "replace the specified Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete an Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified Ingress", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Ingress", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the HorizontalPodAutoscaler", "name": "name", "in": "path", "required": true @@ -42605,14 +41212,37 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { + "/apis/batch/": { "get": { - "description": "read status of the specified Ingress", + "description": "get information of a group", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", @@ -42623,31 +41253,29 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch" ], - "operationId": "readExtensionsV1beta1NamespacedIngressStatus", + "operationId": "getBatchAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" } - }, - "put": { - "description": "replace status of the specified Ingress", + } + }, + "/apis/batch/v1/": { + "get": { + "description": "get available resources", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", @@ -42658,106 +41286,95 @@ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } + "batch_v1" ], + "operationId": "getBatchV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" } - }, - "patch": { - "description": "partially update status of the specified Ingress", + } + }, + "/apis/batch/v1/jobs": { + "get": { + "description": "list or watch objects of kind Job", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "batch_v1" ], + "operationId": "listBatchV1JobForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" + "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -42765,12 +41382,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies": { + "/apis/batch/v1/namespaces/{namespace}/jobs": { "get": { - "description": "list or watch objects of kind NetworkPolicy", + "description": "list or watch objects of kind Job", "consumes": [ "*/*" ], @@ -42785,9 +41423,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "listExtensionsV1beta1NamespacedNetworkPolicy", + "operationId": "listBatchV1NamespacedJob", "parameters": [ { "uniqueItems": true, @@ -42850,7 +41488,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList" + "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" } }, "401": { @@ -42859,13 +41497,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "post": { - "description": "create a NetworkPolicy", + "description": "create a Job", "consumes": [ "*/*" ], @@ -42878,16 +41516,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "createExtensionsV1beta1NamespacedNetworkPolicy", + "operationId": "createBatchV1NamespacedJob", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } } ], @@ -42895,19 +41533,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { @@ -42916,13 +41554,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "delete": { - "description": "delete collection of NetworkPolicy", + "description": "delete collection of Job", "consumes": [ "*/*" ], @@ -42935,9 +41573,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedNetworkPolicy", + "operationId": "deleteBatchV1CollectionNamespacedJob", "parameters": [ { "uniqueItems": true, @@ -43009,9 +41647,9 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "parameters": [ @@ -43032,9 +41670,9 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies/{name}": { + "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { "get": { - "description": "read the specified NetworkPolicy", + "description": "read the specified Job", "consumes": [ "*/*" ], @@ -43047,9 +41685,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "readExtensionsV1beta1NamespacedNetworkPolicy", + "operationId": "readBatchV1NamespacedJob", "parameters": [ { "uniqueItems": true, @@ -43070,7 +41708,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { @@ -43079,13 +41717,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "put": { - "description": "replace the specified NetworkPolicy", + "description": "replace the specified Job", "consumes": [ "*/*" ], @@ -43098,16 +41736,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "replaceExtensionsV1beta1NamespacedNetworkPolicy", + "operationId": "replaceBatchV1NamespacedJob", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } } ], @@ -43115,13 +41753,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { @@ -43130,13 +41768,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "delete": { - "description": "delete a NetworkPolicy", + "description": "delete a Job", "consumes": [ "*/*" ], @@ -43149,9 +41787,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "deleteExtensionsV1beta1NamespacedNetworkPolicy", + "operationId": "deleteBatchV1NamespacedJob", "parameters": [ { "name": "body", @@ -43178,7 +41816,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -43196,13 +41834,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "patch": { - "description": "partially update the specified NetworkPolicy", + "description": "partially update the specified Job", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -43217,9 +41855,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "patchExtensionsV1beta1NamespacedNetworkPolicy", + "operationId": "patchBatchV1NamespacedJob", "parameters": [ { "name": "body", @@ -43234,7 +41872,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { @@ -43243,16 +41881,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the NetworkPolicy", + "description": "name of the Job", "name": "name", "in": "path", "required": true @@ -43274,104 +41912,44 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets": { + "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { "get": { - "description": "list or watch objects of kind ReplicaSet", + "description": "read status of the specified Job", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "listExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList" - } + "operationId": "readBatchV1NamespacedJobStatus", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" + } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, - "post": { - "description": "create a ReplicaSet", + "put": { + "description": "replace status of the specified Job", "consumes": [ "*/*" ], @@ -43384,16 +41962,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "createExtensionsV1beta1NamespacedReplicaSet", + "operationId": "replaceBatchV1NamespacedJobStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } } ], @@ -43401,36 +41979,32 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, - "delete": { - "description": "delete collection of ReplicaSet", + "patch": { + "description": "partially update status of the specified Job", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -43441,86 +42015,46 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedReplicaSet", + "operationId": "patchBatchV1NamespacedJobStatus", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Job", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -43538,230 +42072,183 @@ } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}": { + "/apis/batch/v1/watch/jobs": { "get": { - "description": "read the specified ReplicaSet", + "description": "watch individual changes to a list of Job", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "batch_v1" ], + "operationId": "watchBatchV1JobListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, - "put": { - "description": "replace the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "patch": { - "description": "partially update the specified ReplicaSet", + ] + }, + "/apis/batch/v1/watch/namespaces/{namespace}/jobs": { + "get": { + "description": "watch individual changes to a list of Job", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "batch_v1" ], + "operationId": "watchBatchV1NamespacedJobList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -43777,308 +42264,108 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale": { + "/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { "get": { - "description": "read scale of the specified ReplicaSet", + "description": "watch changes to an object of kind Job", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1" ], - "operationId": "readExtensionsV1beta1NamespacedReplicaSetScale", + "operationId": "watchBatchV1NamespacedJob", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "put": { - "description": "replace scale of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update scale of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" + "group": "batch", + "kind": "Job", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" }, { "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "description": "read status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicaSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ReplicaSet", + "description": "name of the Job", "name": "name", "in": "path", "required": true @@ -44097,103 +42384,38 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { + "/apis/batch/v1beta1/": { "get": { - "description": "read scale of the specified ReplicationControllerDummy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicationControllerDummyScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "put": { - "description": "replace scale of the specified ReplicationControllerDummy", + "description": "get available resources", "consumes": [ - "*/*" - ], - "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicationControllerDummyScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update scale of the specified ReplicationControllerDummy", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], "produces": [ "application/json", "application/yaml", @@ -44203,66 +42425,25 @@ "https" ], "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicationControllerDummyScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "batch_v1beta1" ], + "operationId": "getBatchV1beta1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" } - ] + } }, - "/apis/extensions/v1beta1/networkpolicies": { + "/apis/batch/v1beta1/cronjobs": { "get": { - "description": "list or watch objects of kind NetworkPolicy", + "description": "list or watch objects of kind CronJob", "consumes": [ "*/*" ], @@ -44277,14 +42458,14 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "listExtensionsV1beta1NetworkPolicyForAllNamespaces", + "operationId": "listBatchV1beta1CronJobForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" } }, "401": { @@ -44293,8 +42474,8 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, @@ -44364,9 +42545,9 @@ } ] }, - "/apis/extensions/v1beta1/podsecuritypolicies": { + "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs": { "get": { - "description": "list or watch objects of kind PodSecurityPolicy", + "description": "list or watch objects of kind CronJob", "consumes": [ "*/*" ], @@ -44381,9 +42562,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "listExtensionsV1beta1PodSecurityPolicy", + "operationId": "listBatchV1beta1NamespacedCronJob", "parameters": [ { "uniqueItems": true, @@ -44446,7 +42627,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" } }, "401": { @@ -44455,13 +42636,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, "post": { - "description": "create a PodSecurityPolicy", + "description": "create a CronJob", "consumes": [ "*/*" ], @@ -44474,16 +42655,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "createExtensionsV1beta1PodSecurityPolicy", + "operationId": "createBatchV1beta1NamespacedCronJob", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } } ], @@ -44491,19 +42672,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "401": { @@ -44512,13 +42693,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, "delete": { - "description": "delete collection of PodSecurityPolicy", + "description": "delete collection of CronJob", "consumes": [ "*/*" ], @@ -44531,9 +42712,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "deleteExtensionsV1beta1CollectionPodSecurityPolicy", + "operationId": "deleteBatchV1beta1CollectionNamespacedCronJob", "parameters": [ { "uniqueItems": true, @@ -44605,12 +42786,20 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -44620,9 +42809,9 @@ } ] }, - "/apis/extensions/v1beta1/podsecuritypolicies/{name}": { + "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}": { "get": { - "description": "read the specified PodSecurityPolicy", + "description": "read the specified CronJob", "consumes": [ "*/*" ], @@ -44635,9 +42824,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "readExtensionsV1beta1PodSecurityPolicy", + "operationId": "readBatchV1beta1NamespacedCronJob", "parameters": [ { "uniqueItems": true, @@ -44658,7 +42847,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "401": { @@ -44667,13 +42856,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, "put": { - "description": "replace the specified PodSecurityPolicy", + "description": "replace the specified CronJob", "consumes": [ "*/*" ], @@ -44686,16 +42875,16 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "replaceExtensionsV1beta1PodSecurityPolicy", + "operationId": "replaceBatchV1beta1NamespacedCronJob", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } } ], @@ -44703,13 +42892,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "401": { @@ -44718,13 +42907,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, "delete": { - "description": "delete a PodSecurityPolicy", + "description": "delete a CronJob", "consumes": [ "*/*" ], @@ -44737,9 +42926,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "deleteExtensionsV1beta1PodSecurityPolicy", + "operationId": "deleteBatchV1beta1NamespacedCronJob", "parameters": [ { "name": "body", @@ -44766,7 +42955,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -44784,13 +42973,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, "patch": { - "description": "partially update the specified PodSecurityPolicy", + "description": "partially update the specified CronJob", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -44805,9 +42994,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "patchExtensionsV1beta1PodSecurityPolicy", + "operationId": "patchBatchV1beta1NamespacedCronJob", "parameters": [ { "name": "body", @@ -44822,7 +43011,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "401": { @@ -44831,8 +43020,8 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, @@ -44840,11 +43029,19 @@ { "uniqueItems": true, "type": "string", - "description": "name of the PodSecurityPolicy", + "description": "name of the CronJob", "name": "name", "in": "path", "required": true }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -44854,249 +43051,137 @@ } ] }, - "/apis/extensions/v1beta1/replicasets": { + "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status": { "get": { - "description": "list or watch objects of kind ReplicaSet", + "description": "read status of the specified CronJob", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "listExtensionsV1beta1ReplicaSetForAllNamespaces", + "operationId": "readBatchV1beta1NamespacedCronJobStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", + "put": { + "description": "replace status of the specified CronJob", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" + ], + "operationId": "replaceBatchV1beta1NamespacedCronJobStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + } ], - "operationId": "watchExtensionsV1beta1DaemonSetListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", + "patch": { + "description": "partially update status of the specified CronJob", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" + ], + "operationId": "patchBatchV1beta1NamespacedCronJobStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } ], - "operationId": "watchExtensionsV1beta1DeploymentListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, @@ -45104,37 +43189,18 @@ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "description": "name of the CronJob", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -45142,33 +43208,12 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/extensions/v1beta1/watch/ingresses": { + "/apis/batch/v1beta1/watch/cronjobs": { "get": { - "description": "watch individual changes to a list of Ingress", + "description": "watch individual changes to a list of CronJob", "consumes": [ "*/*" ], @@ -45183,9 +43228,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", + "operationId": "watchBatchV1beta1CronJobListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -45199,8 +43244,8 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, @@ -45270,9 +43315,9 @@ } ] }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets": { + "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs": { "get": { - "description": "watch individual changes to a list of DaemonSet", + "description": "watch individual changes to a list of CronJob", "consumes": [ "*/*" ], @@ -45287,9 +43332,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "watchExtensionsV1beta1NamespacedDaemonSetList", + "operationId": "watchBatchV1beta1NamespacedCronJobList", "responses": { "200": { "description": "OK", @@ -45303,8 +43348,8 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, @@ -45382,9 +43427,9 @@ } ] }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}": { + "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}": { "get": { - "description": "watch changes to an object of kind DaemonSet", + "description": "watch changes to an object of kind CronJob", "consumes": [ "*/*" ], @@ -45399,9 +43444,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v1beta1" ], - "operationId": "watchExtensionsV1beta1NamespacedDaemonSet", + "operationId": "watchBatchV1beta1NamespacedCronJob", "responses": { "200": { "description": "OK", @@ -45415,8 +43460,8 @@ }, "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", + "group": "batch", + "kind": "CronJob", "version": "v1beta1" } }, @@ -45459,7 +43504,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the DaemonSet", + "description": "name of the CronJob", "name": "name", "in": "path", "required": true @@ -45502,121 +43547,42 @@ } ] }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments": { + "/apis/batch/v2alpha1/": { "get": { - "description": "watch individual changes to a list of Deployment", + "description": "get available resources", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" ], - "operationId": "watchExtensionsV1beta1NamespacedDeploymentList", + "operationId": "getBatchV2alpha1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } - ] + } }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}": { + "/apis/batch/v2alpha1/cronjobs": { "get": { - "description": "watch changes to an object of kind Deployment", + "description": "list or watch objects of kind CronJob", "consumes": [ "*/*" ], @@ -45631,25 +43597,25 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" ], - "operationId": "watchExtensionsV1beta1NamespacedDeployment", + "operationId": "listBatchV2alpha1CronJobForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } }, "parameters": [ @@ -45688,22 +43654,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -45734,9 +43684,9 @@ } ] }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { + "/apis/batch/v2alpha1/namespaces/{namespace}/cronjobs": { "get": { - "description": "watch individual changes to a list of Ingress", + "description": "list or watch objects of kind CronJob", "consumes": [ "*/*" ], @@ -45751,295 +43701,236 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" ], - "operationId": "watchExtensionsV1beta1NamespacedIngressList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } + "operationId": "listBatchV2alpha1NamespacedCronJob", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobList" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "description": "watch changes to an object of kind Ingress", + }, + "post": { + "description": "create a CronJob", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" + ], + "operationId": "createBatchV2alpha1NamespacedCronJob", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + } ], - "operationId": "watchExtensionsV1beta1NamespacedIngress", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies": { - "get": { - "description": "watch individual changes to a list of NetworkPolicy", + "delete": { + "description": "delete collection of CronJob", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" + ], + "operationId": "deleteBatchV2alpha1CollectionNamespacedCronJob", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "watchExtensionsV1beta1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, { "uniqueItems": true, "type": "string", @@ -46054,108 +43945,230 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies/{name}": { + "/apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}": { "get": { - "description": "watch changes to an object of kind NetworkPolicy", + "description": "read the specified CronJob", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" + ], + "operationId": "readBatchV2alpha1NamespacedCronJob", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "watchExtensionsV1beta1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" + "put": { + "description": "replace the specified CronJob", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "batch_v2alpha1" + ], + "operationId": "replaceBatchV2alpha1NamespacedCronJob", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" + } + }, + "delete": { + "description": "delete a CronJob", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "batch_v2alpha1" + ], + "operationId": "deleteBatchV2alpha1NamespacedCronJob", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" + } + }, + "patch": { + "description": "partially update the specified CronJob", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "batch_v2alpha1" + ], + "operationId": "patchBatchV2alpha1NamespacedCronJob", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the NetworkPolicy", + "description": "name of the CronJob", "name": "name", "in": "path", "required": true @@ -46174,220 +44187,148 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets": { + "/apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}/status": { "get": { - "description": "watch individual changes to a list of ReplicaSet", + "description": "read status of the specified CronJob", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" ], - "operationId": "watchExtensionsV1beta1NamespacedReplicaSetList", + "operationId": "readBatchV2alpha1NamespacedCronJobStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" + "put": { + "description": "replace status of the specified CronJob", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "batch_v2alpha1" + ], + "operationId": "replaceBatchV2alpha1NamespacedCronJobStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "watch changes to an object of kind ReplicaSet", + }, + "patch": { + "description": "partially update status of the specified CronJob", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" + ], + "operationId": "patchBatchV2alpha1NamespacedCronJobStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } ], - "operationId": "watchExtensionsV1beta1NamespacedReplicaSet", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", + "description": "name of the CronJob", "name": "name", "in": "path", "required": true @@ -46406,33 +44347,12 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/extensions/v1beta1/watch/networkpolicies": { + "/apis/batch/v2alpha1/watch/cronjobs": { "get": { - "description": "watch individual changes to a list of NetworkPolicy", + "description": "watch individual changes to a list of CronJob", "consumes": [ "*/*" ], @@ -46447,9 +44367,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" ], - "operationId": "watchExtensionsV1beta1NetworkPolicyListForAllNamespaces", + "operationId": "watchBatchV2alpha1CronJobListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -46463,9 +44383,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } }, "parameters": [ @@ -46534,9 +44454,9 @@ } ] }, - "/apis/extensions/v1beta1/watch/podsecuritypolicies": { + "/apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs": { "get": { - "description": "watch individual changes to a list of PodSecurityPolicy", + "description": "watch individual changes to a list of CronJob", "consumes": [ "*/*" ], @@ -46551,9 +44471,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" ], - "operationId": "watchExtensionsV1beta1PodSecurityPolicyList", + "operationId": "watchBatchV2alpha1NamespacedCronJobList", "responses": { "200": { "description": "OK", @@ -46567,9 +44487,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } }, "parameters": [ @@ -46608,6 +44528,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -46638,9 +44566,9 @@ } ] }, - "/apis/extensions/v1beta1/watch/podsecuritypolicies/{name}": { + "/apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs/{name}": { "get": { - "description": "watch changes to an object of kind PodSecurityPolicy", + "description": "watch changes to an object of kind CronJob", "consumes": [ "*/*" ], @@ -46655,9 +44583,9 @@ "https" ], "tags": [ - "extensions_v1beta1" + "batch_v2alpha1" ], - "operationId": "watchExtensionsV1beta1PodSecurityPolicy", + "operationId": "watchBatchV2alpha1NamespacedCronJob", "responses": { "200": { "description": "OK", @@ -46671,9 +44599,9 @@ }, "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" + "group": "batch", + "kind": "CronJob", + "version": "v2alpha1" } }, "parameters": [ @@ -46715,11 +44643,19 @@ { "uniqueItems": true, "type": "string", - "description": "name of the PodSecurityPolicy", + "description": "name of the CronJob", "name": "name", "in": "path", "required": true }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -46750,135 +44686,31 @@ } ] }, - "/apis/extensions/v1beta1/watch/replicasets": { + "/apis/certificates.k8s.io/": { "get": { - "description": "watch individual changes to a list of ReplicaSet", + "description": "get information of a group", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "extensions_v1beta1" + "certificates" ], - "operationId": "watchExtensionsV1beta1ReplicaSetListForAllNamespaces", + "operationId": "getCertificatesAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/networking.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking" - ], - "operationId": "getNetworkingAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" } }, "401": { @@ -46887,7 +44719,7 @@ } } }, - "/apis/networking.k8s.io/v1/": { + "/apis/certificates.k8s.io/v1beta1/": { "get": { "description": "get available resources", "consumes": [ @@ -46904,9 +44736,9 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "getNetworkingV1APIResources", + "operationId": "getCertificatesV1beta1APIResources", "responses": { "200": { "description": "OK", @@ -46920,9 +44752,9 @@ } } }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { + "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests": { "get": { - "description": "list or watch objects of kind NetworkPolicy", + "description": "list or watch objects of kind CertificateSigningRequest", "consumes": [ "*/*" ], @@ -46937,9 +44769,9 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "listNetworkingV1NamespacedNetworkPolicy", + "operationId": "listCertificatesV1beta1CertificateSigningRequest", "parameters": [ { "uniqueItems": true, @@ -47002,7 +44834,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" } }, "401": { @@ -47011,13 +44843,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" } }, "post": { - "description": "create a NetworkPolicy", + "description": "create a CertificateSigningRequest", "consumes": [ "*/*" ], @@ -47030,16 +44862,16 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "createNetworkingV1NamespacedNetworkPolicy", + "operationId": "createCertificatesV1beta1CertificateSigningRequest", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" } } ], @@ -47047,19 +44879,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" } }, "401": { @@ -47068,13 +44900,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" } }, "delete": { - "description": "delete collection of NetworkPolicy", + "description": "delete collection of CertificateSigningRequest", "consumes": [ "*/*" ], @@ -47087,9 +44919,9 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", + "operationId": "deleteCertificatesV1beta1CollectionCertificateSigningRequest", "parameters": [ { "uniqueItems": true, @@ -47161,20 +44993,12 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -47184,9 +45008,9 @@ } ] }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { + "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}": { "get": { - "description": "read the specified NetworkPolicy", + "description": "read the specified CertificateSigningRequest", "consumes": [ "*/*" ], @@ -47199,9 +45023,9 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "readNetworkingV1NamespacedNetworkPolicy", + "operationId": "readCertificatesV1beta1CertificateSigningRequest", "parameters": [ { "uniqueItems": true, @@ -47222,7 +45046,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" } }, "401": { @@ -47231,13 +45055,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" } }, "put": { - "description": "replace the specified NetworkPolicy", + "description": "replace the specified CertificateSigningRequest", "consumes": [ "*/*" ], @@ -47250,16 +45074,16 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", + "operationId": "replaceCertificatesV1beta1CertificateSigningRequest", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" } } ], @@ -47267,13 +45091,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" } }, "401": { @@ -47282,13 +45106,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" } }, "delete": { - "description": "delete a NetworkPolicy", + "description": "delete a CertificateSigningRequest", "consumes": [ "*/*" ], @@ -47301,9 +45125,9 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", + "operationId": "deleteCertificatesV1beta1CertificateSigningRequest", "parameters": [ { "name": "body", @@ -47330,7 +45154,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -47348,13 +45172,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" } }, "patch": { - "description": "partially update the specified NetworkPolicy", + "description": "partially update the specified CertificateSigningRequest", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -47369,9 +45193,9 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "patchNetworkingV1NamespacedNetworkPolicy", + "operationId": "patchCertificatesV1beta1CertificateSigningRequest", "parameters": [ { "name": "body", @@ -47386,7 +45210,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" } }, "401": { @@ -47395,16 +45219,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the NetworkPolicy", + "description": "name of the CertificateSigningRequest", "name": "name", "in": "path", "required": true @@ -47412,8 +45236,70 @@ { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval": { + "put": { + "description": "replace approval of the specified CertificateSigningRequest", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "operationId": "replaceCertificatesV1beta1CertificateSigningRequestApproval", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the CertificateSigningRequest", + "name": "name", "in": "path", "required": true }, @@ -47426,9 +45312,79 @@ } ] }, - "/apis/networking.k8s.io/v1/networkpolicies": { + "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status": { + "put": { + "description": "replace status of the specified CertificateSigningRequest", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "certificates_v1beta1" + ], + "operationId": "replaceCertificatesV1beta1CertificateSigningRequestStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the CertificateSigningRequest", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests": { "get": { - "description": "list or watch objects of kind NetworkPolicy", + "description": "watch individual changes to a list of CertificateSigningRequest", "consumes": [ "*/*" ], @@ -47443,25 +45399,25 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", + "operationId": "watchCertificatesV1beta1CertificateSigningRequestList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" } }, "parameters": [ @@ -47530,9 +45486,9 @@ } ] }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { + "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}": { "get": { - "description": "watch individual changes to a list of NetworkPolicy", + "description": "watch changes to an object of kind CertificateSigningRequest", "consumes": [ "*/*" ], @@ -47547,9 +45503,9 @@ "https" ], "tags": [ - "networking_v1" + "certificates_v1beta1" ], - "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", + "operationId": "watchCertificatesV1beta1CertificateSigningRequest", "responses": { "200": { "description": "OK", @@ -47561,11 +45517,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "certificates.k8s.io", + "kind": "CertificateSigningRequest", + "version": "v1beta1" } }, "parameters": [ @@ -47607,8 +45563,8 @@ { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", + "description": "name of the CertificateSigningRequest", + "name": "name", "in": "path", "required": true }, @@ -47642,9 +45598,75 @@ } ] }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { + "/apis/extensions/": { "get": { - "description": "watch changes to an object of kind NetworkPolicy", + "description": "get information of a group", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions" + ], + "operationId": "getExtensionsAPIGroup", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/extensions/v1beta1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "getExtensionsV1beta1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/extensions/v1beta1/daemonsets": { + "get": { + "description": "list or watch objects of kind DaemonSet", "consumes": [ "*/*" ], @@ -47659,25 +45681,25 @@ "https" ], "tags": [ - "networking_v1" + "extensions_v1beta1" ], - "operationId": "watchNetworkingV1NamespacedNetworkPolicy", + "operationId": "listExtensionsV1beta1DaemonSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "extensions", + "kind": "DaemonSet", + "version": "v1beta1" } }, "parameters": [ @@ -47716,22 +45738,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the NetworkPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -47762,9 +45768,9 @@ } ] }, - "/apis/networking.k8s.io/v1/watch/networkpolicies": { + "/apis/extensions/v1beta1/deployments": { "get": { - "description": "watch individual changes to a list of NetworkPolicy", + "description": "list or watch objects of kind Deployment", "consumes": [ "*/*" ], @@ -47779,25 +45785,25 @@ "https" ], "tags": [ - "networking_v1" + "extensions_v1beta1" ], - "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", + "operationId": "listExtensionsV1beta1DeploymentForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" } }, "parameters": [ @@ -47866,75 +45872,113 @@ } ] }, - "/apis/policy/": { + "/apis/extensions/v1beta1/ingresses": { "get": { - "description": "get information of a group", + "description": "list or watch objects of kind Ingress", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "policy" + "extensions_v1beta1" ], - "operationId": "getPolicyAPIGroup", + "operationId": "listExtensionsV1beta1IngressForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } - } - }, - "/apis/policy/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "getPolicyV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - } + ] }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets": { + "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets": { "get": { - "description": "list or watch objects of kind PodDisruptionBudget", + "description": "list or watch objects of kind DaemonSet", "consumes": [ "*/*" ], @@ -47949,9 +45993,9 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "listPolicyV1beta1NamespacedPodDisruptionBudget", + "operationId": "listExtensionsV1beta1NamespacedDaemonSet", "parameters": [ { "uniqueItems": true, @@ -48014,7 +46058,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList" } }, "401": { @@ -48023,13 +46067,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, "post": { - "description": "create a PodDisruptionBudget", + "description": "create a DaemonSet", "consumes": [ "*/*" ], @@ -48042,16 +46086,16 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "createPolicyV1beta1NamespacedPodDisruptionBudget", + "operationId": "createExtensionsV1beta1NamespacedDaemonSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } } ], @@ -48059,19 +46103,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "401": { @@ -48080,13 +46124,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, "delete": { - "description": "delete collection of PodDisruptionBudget", + "description": "delete collection of DaemonSet", "consumes": [ "*/*" ], @@ -48099,9 +46143,9 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget", + "operationId": "deleteExtensionsV1beta1CollectionNamespacedDaemonSet", "parameters": [ { "uniqueItems": true, @@ -48173,8 +46217,8 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, @@ -48196,9 +46240,9 @@ } ] }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}": { + "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}": { "get": { - "description": "read the specified PodDisruptionBudget", + "description": "read the specified DaemonSet", "consumes": [ "*/*" ], @@ -48211,9 +46255,9 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudget", + "operationId": "readExtensionsV1beta1NamespacedDaemonSet", "parameters": [ { "uniqueItems": true, @@ -48234,7 +46278,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "401": { @@ -48243,13 +46287,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, "put": { - "description": "replace the specified PodDisruptionBudget", + "description": "replace the specified DaemonSet", "consumes": [ "*/*" ], @@ -48262,16 +46306,16 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudget", + "operationId": "replaceExtensionsV1beta1NamespacedDaemonSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } } ], @@ -48279,13 +46323,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "401": { @@ -48294,13 +46338,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, "delete": { - "description": "delete a PodDisruptionBudget", + "description": "delete a DaemonSet", "consumes": [ "*/*" ], @@ -48313,9 +46357,9 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "deletePolicyV1beta1NamespacedPodDisruptionBudget", + "operationId": "deleteExtensionsV1beta1NamespacedDaemonSet", "parameters": [ { "name": "body", @@ -48342,7 +46386,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -48360,13 +46404,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, "patch": { - "description": "partially update the specified PodDisruptionBudget", + "description": "partially update the specified DaemonSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -48381,9 +46425,9 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudget", + "operationId": "patchExtensionsV1beta1NamespacedDaemonSet", "parameters": [ { "name": "body", @@ -48398,7 +46442,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "401": { @@ -48407,8 +46451,8 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, @@ -48416,7 +46460,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the PodDisruptionBudget", + "description": "name of the DaemonSet", "name": "name", "in": "path", "required": true @@ -48438,9 +46482,9 @@ } ] }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { + "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status": { "get": { - "description": "read status of the specified PodDisruptionBudget", + "description": "read status of the specified DaemonSet", "consumes": [ "*/*" ], @@ -48453,14 +46497,14 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "operationId": "readExtensionsV1beta1NamespacedDaemonSetStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "401": { @@ -48469,13 +46513,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, "put": { - "description": "replace status of the specified PodDisruptionBudget", + "description": "replace status of the specified DaemonSet", "consumes": [ "*/*" ], @@ -48488,16 +46532,16 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "operationId": "replaceExtensionsV1beta1NamespacedDaemonSetStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } } ], @@ -48505,13 +46549,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "401": { @@ -48520,13 +46564,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, "patch": { - "description": "partially update status of the specified PodDisruptionBudget", + "description": "partially update status of the specified DaemonSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -48541,9 +46585,9 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "operationId": "patchExtensionsV1beta1NamespacedDaemonSetStatus", "parameters": [ { "name": "body", @@ -48558,7 +46602,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" } }, "401": { @@ -48567,8 +46611,8 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "DaemonSet", "version": "v1beta1" } }, @@ -48576,7 +46620,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the PodDisruptionBudget", + "description": "name of the DaemonSet", "name": "name", "in": "path", "required": true @@ -48598,9 +46642,9 @@ } ] }, - "/apis/policy/v1beta1/poddisruptionbudgets": { + "/apis/extensions/v1beta1/namespaces/{namespace}/deployments": { "get": { - "description": "list or watch objects of kind PodDisruptionBudget", + "description": "list or watch objects of kind Deployment", "consumes": [ "*/*" ], @@ -48615,14 +46659,72 @@ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" + ], + "operationId": "listExtensionsV1beta1NamespacedDeployment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList" } }, "401": { @@ -48631,271 +46733,162 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "Deployment", "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets": { - "get": { - "description": "watch individual changes to a list of PodDisruptionBudget", + "post": { + "description": "create a Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" + ], + "operationId": "createExtensionsV1beta1NamespacedDeployment", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + } + } ], - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudgetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "Deployment", "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "get": { - "description": "watch changes to an object of kind PodDisruptionBudget", + "delete": { + "description": "delete collection of Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" + ], + "operationId": "deleteExtensionsV1beta1CollectionNamespacedDeployment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudget", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "Deployment", "version": "v1beta1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodDisruptionBudget", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -48910,141 +46903,65 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/policy/v1beta1/watch/poddisruptionbudgets": { + "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}": { "get": { - "description": "watch individual changes to a list of PodDisruptionBudget", + "description": "read the specified Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "policy_v1beta1" + "extensions_v1beta1" ], - "operationId": "watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces", - "responses": { + "operationId": "readExtensionsV1beta1NamespacedDeployment", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", + "group": "extensions", + "kind": "Deployment", "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/": { - "get": { - "description": "get information of a group", + "put": { + "description": "replace the specified Deployment", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", @@ -49055,130 +46972,88 @@ "https" ], "tags": [ - "rbacAuthorization" + "extensions_v1beta1" ], - "operationId": "getRbacAuthorizationAPIGroup", - "responses": { - "200": { - "description": "OK", + "operationId": "replaceExtensionsV1beta1NamespacedDeployment", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" } - }, - "401": { - "description": "Unauthorized" } - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "getRbacAuthorizationV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { - "get": { - "description": "list or watch objects of kind ClusterRoleBinding", + }, + "delete": { + "description": "delete a Deployment", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "listRbacAuthorizationV1ClusterRoleBinding", + "operationId": "deleteExtensionsV1beta1NamespacedDeployment", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } }, { "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", "in": "query" }, { "uniqueItems": true, "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", "in": "query" } ], @@ -49186,24 +47061,26 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" } }, - "post": { - "description": "create a ClusterRoleBinding", + "patch": { + "description": "partially update the specified Deployment", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" ], "produces": [ "application/json", @@ -49214,16 +47091,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "createRbacAuthorizationV1ClusterRoleBinding", + "operationId": "patchExtensionsV1beta1NamespacedDeployment", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } } ], @@ -49231,34 +47108,49 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" } }, - "delete": { - "description": "delete collection of ClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Deployment", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback": { + "post": { + "description": "create rollback of a Deployment", "consumes": [ "*/*" ], @@ -49271,86 +47163,66 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", + "operationId": "createExtensionsV1beta1NamespacedDeploymentRollback", "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" + } } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" + "group": "extensions", + "kind": "DeploymentRollback", + "version": "v1beta1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the DeploymentRollback", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -49360,9 +47232,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { + "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale": { "get": { - "description": "read the specified ClusterRoleBinding", + "description": "read scale of the specified Deployment", "consumes": [ "*/*" ], @@ -49375,14 +47247,14 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "readRbacAuthorizationV1ClusterRoleBinding", + "operationId": "readExtensionsV1beta1NamespacedDeploymentScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" } }, "401": { @@ -49391,13 +47263,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Scale", + "version": "v1beta1" } }, "put": { - "description": "replace the specified ClusterRoleBinding", + "description": "replace scale of the specified Deployment", "consumes": [ "*/*" ], @@ -49410,16 +47282,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", + "operationId": "replaceExtensionsV1beta1NamespacedDeploymentScale", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" } } ], @@ -49427,13 +47299,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" } }, "401": { @@ -49442,79 +47314,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "delete": { - "description": "delete a ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Scale", + "version": "v1beta1" } }, "patch": { - "description": "partially update the specified ClusterRoleBinding", + "description": "partially update scale of the specified Deployment", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -49529,9 +47335,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", + "operationId": "patchExtensionsV1beta1NamespacedDeploymentScale", "parameters": [ { "name": "body", @@ -49546,7 +47352,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" } }, "401": { @@ -49555,20 +47361,28 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } + "group": "extensions", + "kind": "Scale", + "version": "v1beta1" + } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ClusterRoleBinding", + "description": "name of the Scale", "name": "name", "in": "path", "required": true }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -49578,9 +47392,169 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles": { + "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status": { "get": { - "description": "list or watch objects of kind ClusterRole", + "description": "read status of the specified Deployment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "readExtensionsV1beta1NamespacedDeploymentStatus", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" + } + }, + "put": { + "description": "replace status of the specified Deployment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "replaceExtensionsV1beta1NamespacedDeploymentStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update status of the specified Deployment", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "patchExtensionsV1beta1NamespacedDeploymentStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Deployment", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { + "get": { + "description": "list or watch objects of kind Ingress", "consumes": [ "*/*" ], @@ -49595,9 +47569,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "listRbacAuthorizationV1ClusterRole", + "operationId": "listExtensionsV1beta1NamespacedIngress", "parameters": [ { "uniqueItems": true, @@ -49660,7 +47634,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" } }, "401": { @@ -49669,13 +47643,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, "post": { - "description": "create a ClusterRole", + "description": "create an Ingress", "consumes": [ "*/*" ], @@ -49688,16 +47662,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "createRbacAuthorizationV1ClusterRole", + "operationId": "createExtensionsV1beta1NamespacedIngress", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } } ], @@ -49705,19 +47679,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "401": { @@ -49726,13 +47700,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, "delete": { - "description": "delete collection of ClusterRole", + "description": "delete collection of Ingress", "consumes": [ "*/*" ], @@ -49745,9 +47719,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", + "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", "parameters": [ { "uniqueItems": true, @@ -49819,12 +47793,20 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -49834,9 +47816,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { + "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { "get": { - "description": "read the specified ClusterRole", + "description": "read the specified Ingress", "consumes": [ "*/*" ], @@ -49849,14 +47831,30 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" + ], + "operationId": "readExtensionsV1beta1NamespacedIngress", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "readRbacAuthorizationV1ClusterRole", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "401": { @@ -49865,13 +47863,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, "put": { - "description": "replace the specified ClusterRole", + "description": "replace the specified Ingress", "consumes": [ "*/*" ], @@ -49884,16 +47882,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "replaceRbacAuthorizationV1ClusterRole", + "operationId": "replaceExtensionsV1beta1NamespacedIngress", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } } ], @@ -49901,13 +47899,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "401": { @@ -49916,13 +47914,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, "delete": { - "description": "delete a ClusterRole", + "description": "delete an Ingress", "consumes": [ "*/*" ], @@ -49935,9 +47933,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "deleteRbacAuthorizationV1ClusterRole", + "operationId": "deleteExtensionsV1beta1NamespacedIngress", "parameters": [ { "name": "body", @@ -49964,7 +47962,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -49982,13 +47980,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, "patch": { - "description": "partially update the specified ClusterRole", + "description": "partially update the specified Ingress", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -50003,9 +48001,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "patchRbacAuthorizationV1ClusterRole", + "operationId": "patchExtensionsV1beta1NamespacedIngress", "parameters": [ { "name": "body", @@ -50020,7 +48018,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "401": { @@ -50029,20 +48027,28 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ClusterRole", + "description": "name of the Ingress", "name": "name", "in": "path", "required": true }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -50052,104 +48058,44 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { + "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { "get": { - "description": "list or watch objects of kind RoleBinding", + "description": "read status of the specified Ingress", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "extensions_v1beta1" ], + "operationId": "readExtensionsV1beta1NamespacedIngressStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, - "post": { - "description": "create a RoleBinding", + "put": { + "description": "replace status of the specified Ingress", "consumes": [ "*/*" ], @@ -50162,16 +48108,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", + "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } } ], @@ -50179,49 +48125,119 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, - "202": { - "description": "Accepted", + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update status of the specified Ingress", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, - "delete": { - "description": "delete collection of RoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Ingress", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies": { + "get": { + "description": "list or watch objects of kind NetworkPolicy", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", + "operationId": "listExtensionsV1beta1NamespacedNetworkPolicy", "parameters": [ { "uniqueItems": true, @@ -50284,19 +48300,169 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" + } + }, + "post": { + "description": "create a NetworkPolicy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "createExtensionsV1beta1NamespacedNetworkPolicy", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete collection of NetworkPolicy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "deleteExtensionsV1beta1CollectionNamespacedNetworkPolicy", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" + } }, "parameters": [ { @@ -50316,9 +48482,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { + "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies/{name}": { "get": { - "description": "read the specified RoleBinding", + "description": "read the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -50331,14 +48497,30 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" + ], + "operationId": "readExtensionsV1beta1NamespacedNetworkPolicy", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" } }, "401": { @@ -50347,13 +48529,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" } }, "put": { - "description": "replace the specified RoleBinding", + "description": "replace the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -50366,16 +48548,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", + "operationId": "replaceExtensionsV1beta1NamespacedNetworkPolicy", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" } } ], @@ -50383,13 +48565,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" } }, "401": { @@ -50398,13 +48580,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" } }, "delete": { - "description": "delete a RoleBinding", + "description": "delete a NetworkPolicy", "consumes": [ "*/*" ], @@ -50417,9 +48599,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", + "operationId": "deleteExtensionsV1beta1NamespacedNetworkPolicy", "parameters": [ { "name": "body", @@ -50446,7 +48628,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -50464,13 +48646,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" } }, "patch": { - "description": "partially update the specified RoleBinding", + "description": "partially update the specified NetworkPolicy", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -50485,9 +48667,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", + "operationId": "patchExtensionsV1beta1NamespacedNetworkPolicy", "parameters": [ { "name": "body", @@ -50502,7 +48684,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" } }, "401": { @@ -50511,16 +48693,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the RoleBinding", + "description": "name of the NetworkPolicy", "name": "name", "in": "path", "required": true @@ -50542,9 +48724,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { + "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets": { "get": { - "description": "list or watch objects of kind Role", + "description": "list or watch objects of kind ReplicaSet", "consumes": [ "*/*" ], @@ -50559,9 +48741,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "listRbacAuthorizationV1NamespacedRole", + "operationId": "listExtensionsV1beta1NamespacedReplicaSet", "parameters": [ { "uniqueItems": true, @@ -50624,7 +48806,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList" } }, "401": { @@ -50633,13 +48815,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, "post": { - "description": "create a Role", + "description": "create a ReplicaSet", "consumes": [ "*/*" ], @@ -50652,16 +48834,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "createRbacAuthorizationV1NamespacedRole", + "operationId": "createExtensionsV1beta1NamespacedReplicaSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } } ], @@ -50669,19 +48851,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } }, "401": { @@ -50690,13 +48872,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, "delete": { - "description": "delete collection of Role", + "description": "delete collection of ReplicaSet", "consumes": [ "*/*" ], @@ -50709,9 +48891,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", + "operationId": "deleteExtensionsV1beta1CollectionNamespacedReplicaSet", "parameters": [ { "uniqueItems": true, @@ -50783,9 +48965,9 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, "parameters": [ @@ -50806,9 +48988,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { + "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}": { "get": { - "description": "read the specified Role", + "description": "read the specified ReplicaSet", "consumes": [ "*/*" ], @@ -50821,14 +49003,30 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" + ], + "operationId": "readExtensionsV1beta1NamespacedReplicaSet", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "readRbacAuthorizationV1NamespacedRole", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } }, "401": { @@ -50837,13 +49035,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, "put": { - "description": "replace the specified Role", + "description": "replace the specified ReplicaSet", "consumes": [ "*/*" ], @@ -50856,16 +49054,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "replaceRbacAuthorizationV1NamespacedRole", + "operationId": "replaceExtensionsV1beta1NamespacedReplicaSet", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } } ], @@ -50873,13 +49071,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } }, "401": { @@ -50888,13 +49086,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, "delete": { - "description": "delete a Role", + "description": "delete a ReplicaSet", "consumes": [ "*/*" ], @@ -50907,9 +49105,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "deleteRbacAuthorizationV1NamespacedRole", + "operationId": "deleteExtensionsV1beta1NamespacedReplicaSet", "parameters": [ { "name": "body", @@ -50936,7 +49134,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -50954,13 +49152,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, "patch": { - "description": "partially update the specified Role", + "description": "partially update the specified ReplicaSet", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -50975,9 +49173,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "patchRbacAuthorizationV1NamespacedRole", + "operationId": "patchExtensionsV1beta1NamespacedReplicaSet", "parameters": [ { "name": "body", @@ -50992,7 +49190,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } }, "401": { @@ -51001,16 +49199,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Role", + "description": "name of the ReplicaSet", "name": "name", "in": "path", "required": true @@ -51032,79 +49230,156 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/rolebindings": { + "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale": { "get": { - "description": "list or watch objects of kind RoleBinding", + "description": "read scale of the specified ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", + "operationId": "readExtensionsV1beta1NamespacedReplicaSetScale", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Scale", + "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" + "put": { + "description": "replace scale of the specified ReplicaSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "replaceExtensionsV1beta1NamespacedReplicaSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Scale", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update scale of the specified ReplicaSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "patchExtensionsV1beta1NamespacedReplicaSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Scale", + "version": "v1beta1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" + "description": "name of the Scale", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -51112,103 +49387,159 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/rbac.authorization.k8s.io/v1/roles": { + "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status": { "get": { - "description": "list or watch objects of kind Role", + "description": "read status of the specified ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", + "operationId": "readExtensionsV1beta1NamespacedReplicaSetStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" + "put": { + "description": "replace status of the specified ReplicaSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "replaceExtensionsV1beta1NamespacedReplicaSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update status of the specified ReplicaSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "patchExtensionsV1beta1NamespacedReplicaSetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" + "description": "name of the ReplicaSet", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, @@ -51216,33 +49547,172 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { + "get": { + "description": "read scale of the specified ReplicationControllerDummy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "readExtensionsV1beta1NamespacedReplicationControllerDummyScale", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Scale", + "version": "v1beta1" + } + }, + "put": { + "description": "replace scale of the specified ReplicationControllerDummy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "replaceExtensionsV1beta1NamespacedReplicationControllerDummyScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Scale", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update scale of the specified ReplicationControllerDummy", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "patchExtensionsV1beta1NamespacedReplicationControllerDummyScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "Scale", + "version": "v1beta1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" + "description": "name of the Scale", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", "in": "query" } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { + "/apis/extensions/v1beta1/networkpolicies": { "get": { - "description": "watch individual changes to a list of ClusterRoleBinding", + "description": "list or watch objects of kind NetworkPolicy", "consumes": [ "*/*" ], @@ -51257,25 +49727,25 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", + "operationId": "listExtensionsV1beta1NetworkPolicyForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" } }, "parameters": [ @@ -51344,9 +49814,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { + "/apis/extensions/v1beta1/podsecuritypolicies": { "get": { - "description": "watch changes to an object of kind ClusterRoleBinding", + "description": "list or watch objects of kind PodSecurityPolicy", "consumes": [ "*/*" ], @@ -51361,67 +49831,466 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" + ], + "operationId": "listExtensionsV1beta1PodSecurityPolicy", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" + "group": "extensions", + "kind": "PodSecurityPolicy", + "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "post": { + "description": "create a PodSecurityPolicy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "createExtensionsV1beta1PodSecurityPolicy", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete collection of PodSecurityPolicy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "deleteExtensionsV1beta1CollectionPodSecurityPolicy", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/podsecuritypolicies/{name}": { + "get": { + "description": "read the specified PodSecurityPolicy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "readExtensionsV1beta1PodSecurityPolicy", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "put": { + "description": "replace the specified PodSecurityPolicy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "replaceExtensionsV1beta1PodSecurityPolicy", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete a PodSecurityPolicy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "deleteExtensionsV1beta1PodSecurityPolicy", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update the specified PodSecurityPolicy", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "patchExtensionsV1beta1PodSecurityPolicy", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "PodSecurityPolicy", + "version": "v1beta1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ClusterRoleBinding", + "description": "name of the PodSecurityPolicy", "name": "name", "in": "path", "required": true @@ -51432,33 +50301,12 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { + "/apis/extensions/v1beta1/replicasets": { "get": { - "description": "watch individual changes to a list of ClusterRole", + "description": "list or watch objects of kind ReplicaSet", "consumes": [ "*/*" ], @@ -51473,25 +50321,25 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "watchRbacAuthorizationV1ClusterRoleList", + "operationId": "listExtensionsV1beta1ReplicaSetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, "parameters": [ @@ -51560,9 +50408,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { + "/apis/extensions/v1beta1/watch/daemonsets": { "get": { - "description": "watch changes to an object of kind ClusterRole", + "description": "watch individual changes to a list of DaemonSet", "consumes": [ "*/*" ], @@ -51577,9 +50425,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "watchRbacAuthorizationV1ClusterRole", + "operationId": "watchExtensionsV1beta1DaemonSetListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -51591,11 +50439,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" + "group": "extensions", + "kind": "DaemonSet", + "version": "v1beta1" } }, "parameters": [ @@ -51634,14 +50482,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -51672,9 +50512,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { + "/apis/extensions/v1beta1/watch/deployments": { "get": { - "description": "watch individual changes to a list of RoleBinding", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], @@ -51689,9 +50529,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", + "operationId": "watchExtensionsV1beta1DeploymentListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -51705,9 +50545,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" } }, "parameters": [ @@ -51746,14 +50586,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -51784,9 +50616,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { + "/apis/extensions/v1beta1/watch/ingresses": { "get": { - "description": "watch changes to an object of kind RoleBinding", + "description": "watch individual changes to a list of Ingress", "consumes": [ "*/*" ], @@ -51801,9 +50633,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", + "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -51815,11 +50647,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, "parameters": [ @@ -51861,10 +50693,106 @@ { "uniqueItems": true, "type": "string", - "description": "name of the RoleBinding", - "name": "name", - "in": "path", - "required": true + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets": { + "get": { + "description": "watch individual changes to a list of DaemonSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "extensions_v1beta1" + ], + "operationId": "watchExtensionsV1beta1NamespacedDaemonSetList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "extensions", + "kind": "DaemonSet", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -51904,9 +50832,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}": { "get": { - "description": "watch individual changes to a list of Role", + "description": "watch changes to an object of kind DaemonSet", "consumes": [ "*/*" ], @@ -51921,9 +50849,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "watchRbacAuthorizationV1NamespacedRoleList", + "operationId": "watchExtensionsV1beta1NamespacedDaemonSet", "responses": { "200": { "description": "OK", @@ -51935,11 +50863,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "DaemonSet", + "version": "v1beta1" } }, "parameters": [ @@ -51978,6 +50906,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the DaemonSet", + "name": "name", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -52016,9 +50952,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments": { "get": { - "description": "watch changes to an object of kind Role", + "description": "watch individual changes to a list of Deployment", "consumes": [ "*/*" ], @@ -52033,9 +50969,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "watchRbacAuthorizationV1NamespacedRole", + "operationId": "watchExtensionsV1beta1NamespacedDeploymentList", "responses": { "200": { "description": "OK", @@ -52047,11 +50983,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" } }, "parameters": [ @@ -52090,14 +51026,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -52136,9 +51064,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}": { "get": { - "description": "watch individual changes to a list of RoleBinding", + "description": "watch changes to an object of kind Deployment", "consumes": [ "*/*" ], @@ -52153,9 +51081,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", + "operationId": "watchExtensionsV1beta1NamespacedDeployment", "responses": { "200": { "description": "OK", @@ -52167,11 +51095,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" + "group": "extensions", + "kind": "Deployment", + "version": "v1beta1" } }, "parameters": [ @@ -52210,6 +51138,22 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Deployment", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -52240,9 +51184,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1/watch/roles": { + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { "get": { - "description": "watch individual changes to a list of Role", + "description": "watch individual changes to a list of Ingress", "consumes": [ "*/*" ], @@ -52257,9 +51201,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1" + "extensions_v1beta1" ], - "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", + "operationId": "watchExtensionsV1beta1NamespacedIngressList", "responses": { "200": { "description": "OK", @@ -52273,9 +51217,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, "parameters": [ @@ -52314,6 +51258,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -52344,42 +51296,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "getRbacAuthorizationV1alpha1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings": { + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { "get": { - "description": "list or watch objects of kind ClusterRoleBinding", + "description": "watch changes to an object of kind Ingress", "consumes": [ "*/*" ], @@ -52394,453 +51313,646 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "listRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "extensions_v1beta1" ], + "operationId": "watchExtensionsV1beta1NamespacedIngress", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" + "group": "extensions", + "kind": "Ingress", + "version": "v1beta1" } }, - "post": { - "description": "create a ClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Ingress", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies": { + "get": { + "description": "watch individual changes to a list of NetworkPolicy", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "createRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - } + "extensions_v1beta1" ], + "operationId": "watchExtensionsV1beta1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" } }, - "delete": { - "description": "delete collection of ClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies/{name}": { + "get": { + "description": "watch changes to an object of kind NetworkPolicy", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1CollectionClusterRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "extensions_v1beta1" ], + "operationId": "watchExtensionsV1beta1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the NetworkPolicy", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name}": { + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets": { "get": { - "description": "read the specified ClusterRoleBinding", + "description": "watch individual changes to a list of ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "extensions_v1beta1" ], - "operationId": "readRbacAuthorizationV1alpha1ClusterRoleBinding", + "operationId": "watchExtensionsV1beta1NamespacedReplicaSetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, - "put": { - "description": "replace the specified ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "replaceRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "delete": { - "description": "delete a ClusterRoleBinding", + ] + }, + "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}": { + "get": { + "description": "watch changes to an object of kind ReplicaSet", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } + "extensions_v1beta1" ], + "operationId": "watchExtensionsV1beta1NamespacedReplicaSet", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, - "patch": { - "description": "partially update the specified ClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ReplicaSet", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/watch/networkpolicies": { + "get": { + "description": "watch individual changes to a list of NetworkPolicy", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "patchRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "extensions_v1beta1" ], + "operationId": "watchExtensionsV1beta1NetworkPolicyListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" + "group": "extensions", + "kind": "NetworkPolicy", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -52848,12 +51960,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/clusterroles": { + "/apis/extensions/v1beta1/watch/podsecuritypolicies": { "get": { - "description": "list or watch objects of kind ClusterRole", + "description": "watch individual changes to a list of PodSecurityPolicy", "consumes": [ "*/*" ], @@ -52868,286 +52001,317 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "listRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "extensions_v1beta1" ], + "operationId": "watchExtensionsV1beta1PodSecurityPolicyList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" + "group": "extensions", + "kind": "PodSecurityPolicy", + "version": "v1beta1" } }, - "post": { - "description": "create a ClusterRole", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/watch/podsecuritypolicies/{name}": { + "get": { + "description": "watch changes to an object of kind PodSecurityPolicy", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "createRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - } + "extensions_v1beta1" ], + "operationId": "watchExtensionsV1beta1PodSecurityPolicy", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" + "group": "extensions", + "kind": "PodSecurityPolicy", + "version": "v1beta1" } }, - "delete": { - "description": "delete collection of ClusterRole", - "consumes": [ + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the PodSecurityPolicy", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/extensions/v1beta1/watch/replicasets": { + "get": { + "description": "watch individual changes to a list of ReplicaSet", + "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1CollectionClusterRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "extensions_v1beta1" ], + "operationId": "watchExtensionsV1beta1ReplicaSetListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" + "group": "extensions", + "kind": "ReplicaSet", + "version": "v1beta1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name}": { + "/apis/networking.k8s.io/": { "get": { - "description": "read the specified ClusterRole", + "description": "get information of a group", "consumes": [ - "*/*" - ], - "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "readRbacAuthorizationV1alpha1ClusterRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified ClusterRole", - "consumes": [ - "*/*" - ], "produces": [ "application/json", "application/yaml", @@ -53157,116 +52321,30 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "replaceRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - } + "networking" ], + "operationId": "getNetworkingAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" } - }, - "delete": { - "description": "delete a ClusterRole", + } + }, + "/apis/networking.k8s.io/v1/": { + "get": { + "description": "get available resources", "consumes": [ - "*/*" - ], - "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified ClusterRole", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], "produces": [ "application/json", "application/yaml", @@ -53276,58 +52354,25 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "patchRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "networking_v1" ], + "operationId": "getNetworkingV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" } - ] + } }, - "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings": { + "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { "get": { - "description": "list or watch objects of kind RoleBinding", + "description": "list or watch objects of kind NetworkPolicy", "consumes": [ "*/*" ], @@ -53342,9 +52387,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" ], - "operationId": "listRbacAuthorizationV1alpha1NamespacedRoleBinding", + "operationId": "listNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "uniqueItems": true, @@ -53407,7 +52452,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBindingList" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" } }, "401": { @@ -53416,13 +52461,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "post": { - "description": "create a RoleBinding", + "description": "create a NetworkPolicy", "consumes": [ "*/*" ], @@ -53435,16 +52480,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" ], - "operationId": "createRbacAuthorizationV1alpha1NamespacedRoleBinding", + "operationId": "createNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } } ], @@ -53452,19 +52497,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { @@ -53473,13 +52518,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "delete": { - "description": "delete collection of RoleBinding", + "description": "delete collection of NetworkPolicy", "consumes": [ "*/*" ], @@ -53492,9 +52537,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" ], - "operationId": "deleteRbacAuthorizationV1alpha1CollectionNamespacedRoleBinding", + "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", "parameters": [ { "uniqueItems": true, @@ -53566,9 +52611,9 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "parameters": [ @@ -53589,9 +52634,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name}": { + "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { "get": { - "description": "read the specified RoleBinding", + "description": "read the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -53604,14 +52649,30 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" + ], + "operationId": "readNetworkingV1NamespacedNetworkPolicy", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } ], - "operationId": "readRbacAuthorizationV1alpha1NamespacedRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { @@ -53620,13 +52681,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "put": { - "description": "replace the specified RoleBinding", + "description": "replace the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -53639,16 +52700,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" ], - "operationId": "replaceRbacAuthorizationV1alpha1NamespacedRoleBinding", + "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } } ], @@ -53656,13 +52717,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { @@ -53671,13 +52732,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "delete": { - "description": "delete a RoleBinding", + "description": "delete a NetworkPolicy", "consumes": [ "*/*" ], @@ -53690,9 +52751,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" ], - "operationId": "deleteRbacAuthorizationV1alpha1NamespacedRoleBinding", + "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "name": "body", @@ -53719,7 +52780,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -53737,13 +52798,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "patch": { - "description": "partially update the specified RoleBinding", + "description": "partially update the specified NetworkPolicy", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -53758,9 +52819,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" ], - "operationId": "patchRbacAuthorizationV1alpha1NamespacedRoleBinding", + "operationId": "patchNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "name": "body", @@ -53775,7 +52836,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { @@ -53784,16 +52845,16 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the RoleBinding", + "description": "name of the NetworkPolicy", "name": "name", "in": "path", "required": true @@ -53815,9 +52876,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles": { + "/apis/networking.k8s.io/v1/networkpolicies": { "get": { - "description": "list or watch objects of kind Role", + "description": "list or watch objects of kind NetworkPolicy", "consumes": [ "*/*" ], @@ -53832,72 +52893,14 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "listRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "networking_v1" ], + "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleList" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" } }, "401": { @@ -53906,395 +52909,46 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "post": { - "description": "create a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "createRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete collection of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1CollectionNamespacedRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, { "uniqueItems": true, "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name}": { - "get": { - "description": "read the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "readRbacAuthorizationV1alpha1NamespacedRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "replaceRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified Role", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "patchRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "401": { - "description": "Unauthorized" - } + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" }, { "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" }, { "uniqueItems": true, @@ -54302,12 +52956,33 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/rolebindings": { + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { "get": { - "description": "list or watch objects of kind RoleBinding", + "description": "watch individual changes to a list of NetworkPolicy", "consumes": [ "*/*" ], @@ -54322,25 +52997,25 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" ], - "operationId": "listRbacAuthorizationV1alpha1RoleBindingForAllNamespaces", + "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBindingList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "parameters": [ @@ -54379,6 +53054,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -54409,9 +53092,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/roles": { + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { "get": { - "description": "list or watch objects of kind Role", + "description": "watch changes to an object of kind NetworkPolicy", "consumes": [ "*/*" ], @@ -54426,25 +53109,25 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" ], - "operationId": "listRbacAuthorizationV1alpha1RoleForAllNamespaces", + "operationId": "watchNetworkingV1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "parameters": [ @@ -54483,6 +53166,22 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the NetworkPolicy", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -54513,9 +53212,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings": { + "/apis/networking.k8s.io/v1/watch/networkpolicies": { "get": { - "description": "watch individual changes to a list of ClusterRoleBinding", + "description": "watch individual changes to a list of NetworkPolicy", "consumes": [ "*/*" ], @@ -54530,9 +53229,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "networking_v1" ], - "operationId": "watchRbacAuthorizationV1alpha1ClusterRoleBindingList", + "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -54546,9 +53245,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" } }, "parameters": [ @@ -54617,225 +53316,75 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings/{name}": { + "/apis/policy/": { "get": { - "description": "watch changes to an object of kind ClusterRoleBinding", + "description": "get information of a group", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "policy" ], - "operationId": "watchRbacAuthorizationV1alpha1ClusterRoleBinding", + "operationId": "getPolicyAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } - ] + } }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles": { + "/apis/policy/v1beta1/": { "get": { - "description": "watch individual changes to a list of ClusterRole", + "description": "get available resources", "consumes": [ - "*/*" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "policy_v1beta1" ], - "operationId": "watchRbacAuthorizationV1alpha1ClusterRoleList", + "operationId": "getPolicyV1beta1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" } }, "401": { "description": "Unauthorized" } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } - ] + } }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles/{name}": { + "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets": { "get": { - "description": "watch changes to an object of kind ClusterRole", + "description": "list or watch objects of kind PodDisruptionBudget", "consumes": [ "*/*" ], @@ -54850,291 +53399,474 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "policy_v1beta1" + ], + "operationId": "listPolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "watchRbacAuthorizationV1alpha1ClusterRole", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "description": "watch individual changes to a list of RoleBinding", + "post": { + "description": "create a PodDisruptionBudget", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "policy_v1beta1" + ], + "operationId": "createPolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + } ], - "operationId": "watchRbacAuthorizationV1alpha1NamespacedRoleBindingList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "description": "watch changes to an object of kind RoleBinding", + "delete": { + "description": "delete collection of PodDisruptionBudget", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "policy_v1beta1" + ], + "operationId": "deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "watchRbacAuthorizationV1alpha1NamespacedRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", "in": "query" + } + ] + }, + "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}": { + "get": { + "description": "read the specified PodDisruptionBudget", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "put": { + "description": "replace the specified PodDisruptionBudget", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete a PodDisruptionBudget", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "operationId": "deletePolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update the specified PodDisruptionBudget", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudget", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the RoleBinding", + "description": "name of the PodDisruptionBudget", "name": "name", "in": "path", "required": true @@ -55153,33 +53885,172 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + } + ] + }, + "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { + "get": { + "description": "read status of the specified PodDisruptionBudget", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "put": { + "description": "replace status of the specified PodDisruptionBudget", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update status of the specified PodDisruptionBudget", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "policy_v1beta1" + ], + "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" + } + }, + "401": { + "description": "Unauthorized" + } }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" + } + }, + "parameters": [ { "uniqueItems": true, "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" + "description": "name of the PodDisruptionBudget", + "name": "name", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true }, { "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", "in": "query" } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles": { + "/apis/policy/v1beta1/poddisruptionbudgets": { "get": { - "description": "watch individual changes to a list of Role", + "description": "list or watch objects of kind PodDisruptionBudget", "consumes": [ "*/*" ], @@ -55194,25 +54065,25 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "policy_v1beta1" ], - "operationId": "watchRbacAuthorizationV1alpha1NamespacedRoleList", + "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" } }, "parameters": [ @@ -55251,14 +54122,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -55289,9 +54152,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles/{name}": { + "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets": { "get": { - "description": "watch changes to an object of kind Role", + "description": "watch individual changes to a list of PodDisruptionBudget", "consumes": [ "*/*" ], @@ -55306,9 +54169,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "policy_v1beta1" ], - "operationId": "watchRbacAuthorizationV1alpha1NamespacedRole", + "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudgetList", "responses": { "200": { "description": "OK", @@ -55320,11 +54183,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" } }, "parameters": [ @@ -55363,14 +54226,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -55409,9 +54264,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/rolebindings": { + "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { "get": { - "description": "watch individual changes to a list of RoleBinding", + "description": "watch changes to an object of kind PodDisruptionBudget", "consumes": [ "*/*" ], @@ -55426,9 +54281,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "policy_v1beta1" ], - "operationId": "watchRbacAuthorizationV1alpha1RoleBindingListForAllNamespaces", + "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudget", "responses": { "200": { "description": "OK", @@ -55440,11 +54295,11 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" } }, "parameters": [ @@ -55483,6 +54338,22 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the PodDisruptionBudget", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -55513,9 +54384,9 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/roles": { + "/apis/policy/v1beta1/watch/poddisruptionbudgets": { "get": { - "description": "watch individual changes to a list of Role", + "description": "watch individual changes to a list of PodDisruptionBudget", "consumes": [ "*/*" ], @@ -55530,9 +54401,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1alpha1" + "policy_v1beta1" ], - "operationId": "watchRbacAuthorizationV1alpha1RoleListForAllNamespaces", + "operationId": "watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -55546,9 +54417,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" + "group": "policy", + "kind": "PodDisruptionBudget", + "version": "v1beta1" } }, "parameters": [ @@ -55617,7 +54488,40 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/": { + "/apis/rbac.authorization.k8s.io/": { + "get": { + "description": "get information of a group", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization" + ], + "operationId": "getRbacAuthorizationAPIGroup", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/": { "get": { "description": "get available resources", "consumes": [ @@ -55634,9 +54538,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "getRbacAuthorizationV1beta1APIResources", + "operationId": "getRbacAuthorizationV1APIResources", "responses": { "200": { "description": "OK", @@ -55650,7 +54554,7 @@ } } }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings": { + "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { "get": { "description": "list or watch objects of kind ClusterRoleBinding", "consumes": [ @@ -55667,9 +54571,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "listRbacAuthorizationV1beta1ClusterRoleBinding", + "operationId": "listRbacAuthorizationV1ClusterRoleBinding", "parameters": [ { "uniqueItems": true, @@ -55732,7 +54636,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" } }, "401": { @@ -55743,7 +54647,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", - "version": "v1beta1" + "version": "v1" } }, "post": { @@ -55760,16 +54664,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "createRbacAuthorizationV1beta1ClusterRoleBinding", + "operationId": "createRbacAuthorizationV1ClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } } ], @@ -55777,19 +54681,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "401": { @@ -55800,7 +54704,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -55817,9 +54721,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding", + "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", "parameters": [ { "uniqueItems": true, @@ -55893,7 +54797,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -55906,7 +54810,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}": { + "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { "get": { "description": "read the specified ClusterRoleBinding", "consumes": [ @@ -55921,14 +54825,14 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "readRbacAuthorizationV1beta1ClusterRoleBinding", + "operationId": "readRbacAuthorizationV1ClusterRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "401": { @@ -55939,7 +54843,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", - "version": "v1beta1" + "version": "v1" } }, "put": { @@ -55956,16 +54860,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "replaceRbacAuthorizationV1beta1ClusterRoleBinding", + "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } } ], @@ -55973,13 +54877,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "401": { @@ -55990,7 +54894,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -56007,9 +54911,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "deleteRbacAuthorizationV1beta1ClusterRoleBinding", + "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", "parameters": [ { "name": "body", @@ -56036,7 +54940,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -56056,7 +54960,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", - "version": "v1beta1" + "version": "v1" } }, "patch": { @@ -56075,9 +54979,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "patchRbacAuthorizationV1beta1ClusterRoleBinding", + "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", "parameters": [ { "name": "body", @@ -56092,7 +54996,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "401": { @@ -56103,7 +55007,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -56124,7 +55028,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles": { + "/apis/rbac.authorization.k8s.io/v1/clusterroles": { "get": { "description": "list or watch objects of kind ClusterRole", "consumes": [ @@ -56141,9 +55045,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "listRbacAuthorizationV1beta1ClusterRole", + "operationId": "listRbacAuthorizationV1ClusterRole", "parameters": [ { "uniqueItems": true, @@ -56206,7 +55110,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" } }, "401": { @@ -56217,7 +55121,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", - "version": "v1beta1" + "version": "v1" } }, "post": { @@ -56234,16 +55138,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "createRbacAuthorizationV1beta1ClusterRole", + "operationId": "createRbacAuthorizationV1ClusterRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } } ], @@ -56251,19 +55155,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "401": { @@ -56274,7 +55178,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -56291,9 +55195,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRole", + "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", "parameters": [ { "uniqueItems": true, @@ -56367,7 +55271,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -56380,7 +55284,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}": { + "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { "get": { "description": "read the specified ClusterRole", "consumes": [ @@ -56395,14 +55299,14 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "readRbacAuthorizationV1beta1ClusterRole", + "operationId": "readRbacAuthorizationV1ClusterRole", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "401": { @@ -56413,7 +55317,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", - "version": "v1beta1" + "version": "v1" } }, "put": { @@ -56430,16 +55334,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "replaceRbacAuthorizationV1beta1ClusterRole", + "operationId": "replaceRbacAuthorizationV1ClusterRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } } ], @@ -56447,13 +55351,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "401": { @@ -56464,7 +55368,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -56481,9 +55385,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "deleteRbacAuthorizationV1beta1ClusterRole", + "operationId": "deleteRbacAuthorizationV1ClusterRole", "parameters": [ { "name": "body", @@ -56510,7 +55414,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -56530,7 +55434,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", - "version": "v1beta1" + "version": "v1" } }, "patch": { @@ -56549,9 +55453,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "patchRbacAuthorizationV1beta1ClusterRole", + "operationId": "patchRbacAuthorizationV1ClusterRole", "parameters": [ { "name": "body", @@ -56566,7 +55470,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "401": { @@ -56577,7 +55481,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -56598,7 +55502,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings": { + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { "get": { "description": "list or watch objects of kind RoleBinding", "consumes": [ @@ -56615,9 +55519,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "listRbacAuthorizationV1beta1NamespacedRoleBinding", + "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", "parameters": [ { "uniqueItems": true, @@ -56680,7 +55584,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" } }, "401": { @@ -56691,7 +55595,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "post": { @@ -56708,16 +55612,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "createRbacAuthorizationV1beta1NamespacedRoleBinding", + "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } } ], @@ -56725,19 +55629,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "401": { @@ -56748,7 +55652,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -56765,9 +55669,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding", + "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", "parameters": [ { "uniqueItems": true, @@ -56841,7 +55745,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -56862,7 +55766,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}": { + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { "get": { "description": "read the specified RoleBinding", "consumes": [ @@ -56877,14 +55781,14 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "readRbacAuthorizationV1beta1NamespacedRoleBinding", + "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "401": { @@ -56895,7 +55799,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "put": { @@ -56912,16 +55816,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRoleBinding", + "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } } ], @@ -56929,13 +55833,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "401": { @@ -56946,7 +55850,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -56963,9 +55867,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRoleBinding", + "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", "parameters": [ { "name": "body", @@ -56992,7 +55896,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -57012,7 +55916,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "patch": { @@ -57031,9 +55935,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "patchRbacAuthorizationV1beta1NamespacedRoleBinding", + "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", "parameters": [ { "name": "body", @@ -57048,7 +55952,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "401": { @@ -57059,7 +55963,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -57088,7 +55992,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles": { + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { "get": { "description": "list or watch objects of kind Role", "consumes": [ @@ -57105,9 +56009,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "listRbacAuthorizationV1beta1NamespacedRole", + "operationId": "listRbacAuthorizationV1NamespacedRole", "parameters": [ { "uniqueItems": true, @@ -57170,7 +56074,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" } }, "401": { @@ -57181,7 +56085,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "post": { @@ -57198,16 +56102,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "createRbacAuthorizationV1beta1NamespacedRole", + "operationId": "createRbacAuthorizationV1NamespacedRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } } ], @@ -57215,19 +56119,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "401": { @@ -57238,7 +56142,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -57255,9 +56159,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRole", + "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", "parameters": [ { "uniqueItems": true, @@ -57331,7 +56235,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -57352,7 +56256,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}": { + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { "get": { "description": "read the specified Role", "consumes": [ @@ -57367,14 +56271,14 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "readRbacAuthorizationV1beta1NamespacedRole", + "operationId": "readRbacAuthorizationV1NamespacedRole", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "401": { @@ -57385,7 +56289,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "put": { @@ -57402,16 +56306,16 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRole", + "operationId": "replaceRbacAuthorizationV1NamespacedRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } } ], @@ -57419,13 +56323,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "401": { @@ -57436,7 +56340,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "delete": { @@ -57453,9 +56357,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRole", + "operationId": "deleteRbacAuthorizationV1NamespacedRole", "parameters": [ { "name": "body", @@ -57482,7 +56386,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -57502,7 +56406,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "patch": { @@ -57521,9 +56425,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "patchRbacAuthorizationV1beta1NamespacedRole", + "operationId": "patchRbacAuthorizationV1NamespacedRole", "parameters": [ { "name": "body", @@ -57538,7 +56442,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "401": { @@ -57549,7 +56453,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -57578,7 +56482,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/rolebindings": { + "/apis/rbac.authorization.k8s.io/v1/rolebindings": { "get": { "description": "list or watch objects of kind RoleBinding", "consumes": [ @@ -57595,14 +56499,14 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", + "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" } }, "401": { @@ -57613,7 +56517,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -57682,7 +56586,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/roles": { + "/apis/rbac.authorization.k8s.io/v1/roles": { "get": { "description": "list or watch objects of kind Role", "consumes": [ @@ -57699,14 +56603,14 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", + "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" } }, "401": { @@ -57717,7 +56621,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -57786,7 +56690,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings": { + "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { "get": { "description": "watch individual changes to a list of ClusterRoleBinding", "consumes": [ @@ -57803,9 +56707,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBindingList", + "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", "responses": { "200": { "description": "OK", @@ -57821,7 +56725,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -57890,7 +56794,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}": { + "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { "get": { "description": "watch changes to an object of kind ClusterRoleBinding", "consumes": [ @@ -57907,9 +56811,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBinding", + "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", "responses": { "200": { "description": "OK", @@ -57925,7 +56829,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -58002,7 +56906,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles": { + "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { "get": { "description": "watch individual changes to a list of ClusterRole", "consumes": [ @@ -58019,9 +56923,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleList", + "operationId": "watchRbacAuthorizationV1ClusterRoleList", "responses": { "200": { "description": "OK", @@ -58037,7 +56941,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -58106,7 +57010,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}": { + "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { "get": { "description": "watch changes to an object of kind ClusterRole", "consumes": [ @@ -58123,9 +57027,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1ClusterRole", + "operationId": "watchRbacAuthorizationV1ClusterRole", "responses": { "200": { "description": "OK", @@ -58141,7 +57045,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -58218,7 +57122,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings": { + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { "get": { "description": "watch individual changes to a list of RoleBinding", "consumes": [ @@ -58235,9 +57139,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBindingList", + "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", "responses": { "200": { "description": "OK", @@ -58253,7 +57157,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -58330,7 +57234,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}": { + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { "get": { "description": "watch changes to an object of kind RoleBinding", "consumes": [ @@ -58347,9 +57251,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBinding", + "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", "responses": { "200": { "description": "OK", @@ -58365,7 +57269,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -58450,7 +57354,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles": { + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { "get": { "description": "watch individual changes to a list of Role", "consumes": [ @@ -58467,9 +57371,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleList", + "operationId": "watchRbacAuthorizationV1NamespacedRoleList", "responses": { "200": { "description": "OK", @@ -58485,7 +57389,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -58562,7 +57466,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}": { + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { "get": { "description": "watch changes to an object of kind Role", "consumes": [ @@ -58579,9 +57483,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1NamespacedRole", + "operationId": "watchRbacAuthorizationV1NamespacedRole", "responses": { "200": { "description": "OK", @@ -58597,7 +57501,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -58682,7 +57586,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings": { + "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { "get": { "description": "watch individual changes to a list of RoleBinding", "consumes": [ @@ -58699,9 +57603,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces", + "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -58717,7 +57621,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -58786,7 +57690,7 @@ } ] }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/roles": { + "/apis/rbac.authorization.k8s.io/v1/watch/roles": { "get": { "description": "watch individual changes to a list of Role", "consumes": [ @@ -58803,9 +57707,9 @@ "https" ], "tags": [ - "rbacAuthorization_v1beta1" + "rbacAuthorization_v1" ], - "operationId": "watchRbacAuthorizationV1beta1RoleListForAllNamespaces", + "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -58821,7 +57725,7 @@ "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", - "version": "v1beta1" + "version": "v1" } }, "parameters": [ @@ -58890,40 +57794,7 @@ } ] }, - "/apis/scheduling.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling" - ], - "operationId": "getSchedulingAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/scheduling.k8s.io/v1alpha1/": { + "/apis/rbac.authorization.k8s.io/v1alpha1/": { "get": { "description": "get available resources", "consumes": [ @@ -58940,9 +57811,9 @@ "https" ], "tags": [ - "scheduling_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "getSchedulingV1alpha1APIResources", + "operationId": "getRbacAuthorizationV1alpha1APIResources", "responses": { "200": { "description": "OK", @@ -58956,9 +57827,9 @@ } } }, - "/apis/scheduling.k8s.io/v1alpha1/priorityclasses": { + "/apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings": { "get": { - "description": "list or watch objects of kind PriorityClass", + "description": "list or watch objects of kind ClusterRoleBinding", "consumes": [ "*/*" ], @@ -58973,9 +57844,9 @@ "https" ], "tags": [ - "scheduling_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "listSchedulingV1alpha1PriorityClass", + "operationId": "listRbacAuthorizationV1alpha1ClusterRoleBinding", "parameters": [ { "uniqueItems": true, @@ -59038,7 +57909,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClassList" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList" } }, "401": { @@ -59047,13 +57918,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", "version": "v1alpha1" } }, "post": { - "description": "create a PriorityClass", + "description": "create a ClusterRoleBinding", "consumes": [ "*/*" ], @@ -59066,16 +57937,16 @@ "https" ], "tags": [ - "scheduling_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "createSchedulingV1alpha1PriorityClass", + "operationId": "createRbacAuthorizationV1alpha1ClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" } } ], @@ -59083,19 +57954,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" } }, "401": { @@ -59104,13 +57975,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", "version": "v1alpha1" } }, "delete": { - "description": "delete collection of PriorityClass", + "description": "delete collection of ClusterRoleBinding", "consumes": [ "*/*" ], @@ -59123,9 +57994,9 @@ "https" ], "tags": [ - "scheduling_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "deleteSchedulingV1alpha1CollectionPriorityClass", + "operationId": "deleteRbacAuthorizationV1alpha1CollectionClusterRoleBinding", "parameters": [ { "uniqueItems": true, @@ -59197,8 +58068,8 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", "version": "v1alpha1" } }, @@ -59212,9 +58083,9 @@ } ] }, - "/apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name}": { + "/apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name}": { "get": { - "description": "read the specified PriorityClass", + "description": "read the specified ClusterRoleBinding", "consumes": [ "*/*" ], @@ -59227,30 +58098,14 @@ "https" ], "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "readSchedulingV1alpha1PriorityClass", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "rbacAuthorization_v1alpha1" ], + "operationId": "readRbacAuthorizationV1alpha1ClusterRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" } }, "401": { @@ -59259,13 +58114,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", "version": "v1alpha1" } }, "put": { - "description": "replace the specified PriorityClass", + "description": "replace the specified ClusterRoleBinding", "consumes": [ "*/*" ], @@ -59278,16 +58133,16 @@ "https" ], "tags": [ - "scheduling_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "replaceSchedulingV1alpha1PriorityClass", + "operationId": "replaceRbacAuthorizationV1alpha1ClusterRoleBinding", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" } } ], @@ -59295,13 +58150,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" } }, "401": { @@ -59310,13 +58165,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", "version": "v1alpha1" } }, "delete": { - "description": "delete a PriorityClass", + "description": "delete a ClusterRoleBinding", "consumes": [ "*/*" ], @@ -59329,9 +58184,9 @@ "https" ], "tags": [ - "scheduling_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "deleteSchedulingV1alpha1PriorityClass", + "operationId": "deleteRbacAuthorizationV1alpha1ClusterRoleBinding", "parameters": [ { "name": "body", @@ -59358,7 +58213,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -59376,13 +58231,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", "version": "v1alpha1" } }, "patch": { - "description": "partially update the specified PriorityClass", + "description": "partially update the specified ClusterRoleBinding", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -59397,9 +58252,9 @@ "https" ], "tags": [ - "scheduling_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "patchSchedulingV1alpha1PriorityClass", + "operationId": "patchRbacAuthorizationV1alpha1ClusterRoleBinding", "parameters": [ { "name": "body", @@ -59414,7 +58269,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" } }, "401": { @@ -59423,168 +58278,8 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PriorityClass", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses": { - "get": { - "description": "watch individual changes to a list of PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "watchSchedulingV1alpha1PriorityClassList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses/{name}": { - "get": { - "description": "watch changes to an object of kind PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "watchSchedulingV1alpha1PriorityClass", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", "version": "v1alpha1" } }, @@ -59592,42 +58287,7 @@ { "uniqueItems": true, "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PriorityClass", + "description": "name of the ClusterRoleBinding", "name": "name", "in": "path", "required": true @@ -59638,99 +58298,12 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/settings.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings" - ], - "operationId": "getSettingsAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/settings.k8s.io/v1alpha1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "getSettingsV1alpha1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets": { + "/apis/rbac.authorization.k8s.io/v1alpha1/clusterroles": { "get": { - "description": "list or watch objects of kind PodPreset", + "description": "list or watch objects of kind ClusterRole", "consumes": [ "*/*" ], @@ -59745,9 +58318,9 @@ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "listSettingsV1alpha1NamespacedPodPreset", + "operationId": "listRbacAuthorizationV1alpha1ClusterRole", "parameters": [ { "uniqueItems": true, @@ -59810,7 +58383,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPresetList" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleList" } }, "401": { @@ -59819,13 +58392,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", "version": "v1alpha1" } }, "post": { - "description": "create a PodPreset", + "description": "create a ClusterRole", "consumes": [ "*/*" ], @@ -59838,16 +58411,16 @@ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "createSettingsV1alpha1NamespacedPodPreset", + "operationId": "createRbacAuthorizationV1alpha1ClusterRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" } } ], @@ -59855,19 +58428,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" } }, "401": { @@ -59876,13 +58449,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", "version": "v1alpha1" } }, "delete": { - "description": "delete collection of PodPreset", + "description": "delete collection of ClusterRole", "consumes": [ "*/*" ], @@ -59895,9 +58468,9 @@ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "deleteSettingsV1alpha1CollectionNamespacedPodPreset", + "operationId": "deleteRbacAuthorizationV1alpha1CollectionClusterRole", "parameters": [ { "uniqueItems": true, @@ -59969,20 +58542,12 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", "version": "v1alpha1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -59992,9 +58557,9 @@ } ] }, - "/apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name}": { + "/apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name}": { "get": { - "description": "read the specified PodPreset", + "description": "read the specified ClusterRole", "consumes": [ "*/*" ], @@ -60007,30 +58572,14 @@ "https" ], "tags": [ - "settings_v1alpha1" - ], - "operationId": "readSettingsV1alpha1NamespacedPodPreset", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "rbacAuthorization_v1alpha1" ], + "operationId": "readRbacAuthorizationV1alpha1ClusterRole", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" } }, "401": { @@ -60039,13 +58588,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", "version": "v1alpha1" } }, "put": { - "description": "replace the specified PodPreset", + "description": "replace the specified ClusterRole", "consumes": [ "*/*" ], @@ -60058,16 +58607,16 @@ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "replaceSettingsV1alpha1NamespacedPodPreset", + "operationId": "replaceRbacAuthorizationV1alpha1ClusterRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" } } ], @@ -60075,13 +58624,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" } }, "401": { @@ -60090,13 +58639,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", "version": "v1alpha1" } }, "delete": { - "description": "delete a PodPreset", + "description": "delete a ClusterRole", "consumes": [ "*/*" ], @@ -60109,9 +58658,9 @@ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "deleteSettingsV1alpha1NamespacedPodPreset", + "operationId": "deleteRbacAuthorizationV1alpha1ClusterRole", "parameters": [ { "name": "body", @@ -60138,7 +58687,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -60156,13 +58705,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", "version": "v1alpha1" } }, "patch": { - "description": "partially update the specified PodPreset", + "description": "partially update the specified ClusterRole", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -60177,9 +58726,9 @@ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "patchSettingsV1alpha1NamespacedPodPreset", + "operationId": "patchRbacAuthorizationV1alpha1ClusterRole", "parameters": [ { "name": "body", @@ -60194,7 +58743,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" } }, "401": { @@ -60203,8 +58752,8 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", "version": "v1alpha1" } }, @@ -60212,19 +58761,11 @@ { "uniqueItems": true, "type": "string", - "description": "name of the PodPreset", + "description": "name of the ClusterRole", "name": "name", "in": "path", "required": true }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -60234,9 +58775,9 @@ } ] }, - "/apis/settings.k8s.io/v1alpha1/podpresets": { + "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings": { "get": { - "description": "list or watch objects of kind PodPreset", + "description": "list or watch objects of kind RoleBinding", "consumes": [ "*/*" ], @@ -60251,287 +58792,236 @@ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "listSettingsV1alpha1PodPresetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPresetList" - } + "operationId": "listRbacAuthorizationV1alpha1NamespacedRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", "version": "v1alpha1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets": { - "get": { - "description": "watch individual changes to a list of PodPreset", + "post": { + "description": "create a RoleBinding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" + ], + "operationId": "createRbacAuthorizationV1alpha1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + } + } ], - "operationId": "watchSettingsV1alpha1NamespacedPodPresetList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", "version": "v1alpha1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets/{name}": { - "get": { - "description": "watch changes to an object of kind PodPreset", + "delete": { + "description": "delete collection of RoleBinding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" + ], + "operationId": "deleteRbacAuthorizationV1alpha1CollectionNamespacedRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } ], - "operationId": "watchSettingsV1alpha1NamespacedPodPreset", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", "version": "v1alpha1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodPreset", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -60546,141 +59036,49 @@ "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" } ] }, - "/apis/settings.k8s.io/v1alpha1/watch/podpresets": { + "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name}": { "get": { - "description": "watch individual changes to a list of PodPreset", + "description": "read the specified RoleBinding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" ], "tags": [ - "settings_v1alpha1" + "rbacAuthorization_v1alpha1" ], - "operationId": "watchSettingsV1alpha1PodPresetListForAllNamespaces", + "operationId": "readRbacAuthorizationV1alpha1NamespacedRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", "version": "v1alpha1" } }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/": { - "get": { - "description": "get information of a group", + "put": { + "description": "replace the specified RoleBinding", "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" + "*/*" ], "produces": [ "application/json", @@ -60691,30 +59089,116 @@ "https" ], "tags": [ - "storage" + "rbacAuthorization_v1alpha1" + ], + "operationId": "replaceRbacAuthorizationV1alpha1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + } + } ], - "operationId": "getStorageAPIGroup", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" } }, "401": { "description": "Unauthorized" } - } - } - }, - "/apis/storage.k8s.io/v1/": { - "get": { - "description": "get available resources", + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete a RoleBinding", "consumes": [ + "*/*" + ], + "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1alpha1" + ], + "operationId": "deleteRbacAuthorizationV1alpha1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1alpha1" + } + }, + "patch": { + "description": "partially update the specified RoleBinding", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], "produces": [ "application/json", "application/yaml", @@ -60724,25 +59208,66 @@ "https" ], "tags": [ - "storage_v1" + "rbacAuthorization_v1alpha1" + ], + "operationId": "patchRbacAuthorizationV1alpha1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } ], - "operationId": "getStorageV1APIResources", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1alpha1" } - } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the RoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] }, - "/apis/storage.k8s.io/v1/storageclasses": { + "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles": { "get": { - "description": "list or watch objects of kind StorageClass", + "description": "list or watch objects of kind Role", "consumes": [ "*/*" ], @@ -60757,9 +59282,9 @@ "https" ], "tags": [ - "storage_v1" + "rbacAuthorization_v1alpha1" ], - "operationId": "listStorageV1StorageClass", + "operationId": "listRbacAuthorizationV1alpha1NamespacedRole", "parameters": [ { "uniqueItems": true, @@ -60822,7 +59347,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleList" } }, "401": { @@ -60831,13 +59356,13 @@ }, "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "post": { - "description": "create a StorageClass", + "description": "create a Role", "consumes": [ "*/*" ], @@ -60850,16 +59375,16 @@ "https" ], "tags": [ - "storage_v1" + "rbacAuthorization_v1alpha1" ], - "operationId": "createStorageV1StorageClass", + "operationId": "createRbacAuthorizationV1alpha1NamespacedRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" } } ], @@ -60867,19 +59392,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" } }, "401": { @@ -60888,13 +59413,13 @@ }, "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "delete": { - "description": "delete collection of StorageClass", + "description": "delete collection of Role", "consumes": [ "*/*" ], @@ -60907,9 +59432,9 @@ "https" ], "tags": [ - "storage_v1" + "rbacAuthorization_v1alpha1" ], - "operationId": "deleteStorageV1CollectionStorageClass", + "operationId": "deleteRbacAuthorizationV1alpha1CollectionNamespacedRole", "parameters": [ { "uniqueItems": true, @@ -60981,12 +59506,20 @@ }, "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -60996,9 +59529,9 @@ } ] }, - "/apis/storage.k8s.io/v1/storageclasses/{name}": { + "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name}": { "get": { - "description": "read the specified StorageClass", + "description": "read the specified Role", "consumes": [ "*/*" ], @@ -61011,30 +59544,14 @@ "https" ], "tags": [ - "storage_v1" - ], - "operationId": "readStorageV1StorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "rbacAuthorization_v1alpha1" ], + "operationId": "readRbacAuthorizationV1alpha1NamespacedRole", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" } }, "401": { @@ -61043,13 +59560,13 @@ }, "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "put": { - "description": "replace the specified StorageClass", + "description": "replace the specified Role", "consumes": [ "*/*" ], @@ -61062,16 +59579,16 @@ "https" ], "tags": [ - "storage_v1" + "rbacAuthorization_v1alpha1" ], - "operationId": "replaceStorageV1StorageClass", + "operationId": "replaceRbacAuthorizationV1alpha1NamespacedRole", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" } } ], @@ -61079,13 +59596,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" } }, "401": { @@ -61094,13 +59611,13 @@ }, "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "delete": { - "description": "delete a StorageClass", + "description": "delete a Role", "consumes": [ "*/*" ], @@ -61113,9 +59630,9 @@ "https" ], "tags": [ - "storage_v1" + "rbacAuthorization_v1alpha1" ], - "operationId": "deleteStorageV1StorageClass", + "operationId": "deleteRbacAuthorizationV1alpha1NamespacedRole", "parameters": [ { "name": "body", @@ -61142,7 +59659,7 @@ { "uniqueItems": true, "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "name": "propagationPolicy", "in": "query" } @@ -61160,13 +59677,13 @@ }, "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "patch": { - "description": "partially update the specified StorageClass", + "description": "partially update the specified Role", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -61181,9 +59698,9 @@ "https" ], "tags": [ - "storage_v1" + "rbacAuthorization_v1alpha1" ], - "operationId": "patchStorageV1StorageClass", + "operationId": "patchRbacAuthorizationV1alpha1NamespacedRole", "parameters": [ { "name": "body", @@ -61198,7 +59715,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" } }, "401": { @@ -61207,20 +59724,28 @@ }, "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the StorageClass", + "description": "name of the Role", "name": "name", "in": "path", "required": true }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -61230,9 +59755,9 @@ } ] }, - "/apis/storage.k8s.io/v1/watch/storageclasses": { + "/apis/rbac.authorization.k8s.io/v1alpha1/rolebindings": { "get": { - "description": "watch individual changes to a list of StorageClass", + "description": "list or watch objects of kind RoleBinding", "consumes": [ "*/*" ], @@ -61247,25 +59772,25 @@ "https" ], "tags": [ - "storage_v1" + "rbacAuthorization_v1alpha1" ], - "operationId": "watchStorageV1StorageClassList", + "operationId": "listRbacAuthorizationV1alpha1RoleBindingForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBindingList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1alpha1" } }, "parameters": [ @@ -61334,9 +59859,9 @@ } ] }, - "/apis/storage.k8s.io/v1/watch/storageclasses/{name}": { + "/apis/rbac.authorization.k8s.io/v1alpha1/roles": { "get": { - "description": "watch changes to an object of kind StorageClass", + "description": "list or watch objects of kind Role", "consumes": [ "*/*" ], @@ -61351,25 +59876,25 @@ "https" ], "tags": [ - "storage_v1" + "rbacAuthorization_v1alpha1" ], - "operationId": "watchStorageV1StorageClass", + "operationId": "listRbacAuthorizationV1alpha1RoleForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "parameters": [ @@ -61408,14 +59933,6 @@ "name": "limit", "in": "query" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the StorageClass", - "name": "name", - "in": "path", - "required": true - }, { "uniqueItems": true, "type": "string", @@ -61446,42 +59963,9 @@ } ] }, - "/apis/storage.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "getStorageV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses": { + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings": { "get": { - "description": "list or watch objects of kind StorageClass", + "description": "watch individual changes to a list of ClusterRoleBinding", "consumes": [ "*/*" ], @@ -61496,482 +59980,656 @@ "https" ], "tags": [ - "storage_v1beta1" - ], - "operationId": "listStorageV1beta1StorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "rbacAuthorization_v1alpha1" ], + "operationId": "watchRbacAuthorizationV1alpha1ClusterRoleBindingList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1alpha1" } }, - "post": { - "description": "create a StorageClass", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings/{name}": { + "get": { + "description": "watch changes to an object of kind ClusterRoleBinding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "storage_v1beta1" - ], - "operationId": "createStorageV1beta1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - } + "rbacAuthorization_v1alpha1" ], + "operationId": "watchRbacAuthorizationV1alpha1ClusterRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1alpha1" } }, - "delete": { - "description": "delete collection of StorageClass", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles": { + "get": { + "description": "watch individual changes to a list of ClusterRole", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "storage_v1beta1" - ], - "operationId": "deleteStorageV1beta1CollectionStorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } + "rbacAuthorization_v1alpha1" ], + "operationId": "watchRbacAuthorizationV1alpha1ClusterRoleList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1alpha1" } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/storage.k8s.io/v1beta1/storageclasses/{name}": { + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles/{name}": { "get": { - "description": "read the specified StorageClass", + "description": "watch changes to an object of kind ClusterRole", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "storage_v1beta1" - ], - "operationId": "readStorageV1beta1StorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } + "rbacAuthorization_v1alpha1" ], + "operationId": "watchRbacAuthorizationV1alpha1ClusterRole", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1alpha1" } }, - "put": { - "description": "replace the specified StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "replaceStorageV1beta1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRole", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } - }, - "delete": { - "description": "delete a StorageClass", + ] + }, + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings": { + "get": { + "description": "watch individual changes to a list of RoleBinding", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "storage_v1beta1" - ], - "operationId": "deleteStorageV1beta1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } + "rbacAuthorization_v1alpha1" ], + "operationId": "watchRbacAuthorizationV1alpha1NamespacedRoleBindingList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1alpha1" } }, - "patch": { - "description": "partially update the specified StorageClass", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings/{name}": { + "get": { + "description": "watch changes to an object of kind RoleBinding", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "storage_v1beta1" - ], - "operationId": "patchStorageV1beta1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } + "rbacAuthorization_v1alpha1" ], + "operationId": "watchRbacAuthorizationV1alpha1NamespacedRoleBinding", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1alpha1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the StorageClass", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the RoleBinding", "name": "name", "in": "path", "required": true }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", "description": "If 'true', then the output is pretty printed.", "name": "pretty", "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses": { + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles": { "get": { - "description": "watch individual changes to a list of StorageClass", + "description": "watch individual changes to a list of Role", "consumes": [ "*/*" ], @@ -61986,9 +60644,9 @@ "https" ], "tags": [ - "storage_v1beta1" + "rbacAuthorization_v1alpha1" ], - "operationId": "watchStorageV1beta1StorageClassList", + "operationId": "watchRbacAuthorizationV1alpha1NamespacedRoleList", "responses": { "200": { "description": "OK", @@ -62002,9 +60660,9 @@ }, "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "parameters": [ @@ -62043,6 +60701,14 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -62073,9 +60739,9 @@ } ] }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}": { + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles/{name}": { "get": { - "description": "watch changes to an object of kind StorageClass", + "description": "watch changes to an object of kind Role", "consumes": [ "*/*" ], @@ -62090,9 +60756,9 @@ "https" ], "tags": [ - "storage_v1beta1" + "rbacAuthorization_v1alpha1" ], - "operationId": "watchStorageV1beta1StorageClass", + "operationId": "watchRbacAuthorizationV1alpha1NamespacedRole", "responses": { "200": { "description": "OK", @@ -62106,9 +60772,9 @@ }, "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } }, "parameters": [ @@ -62150,11 +60816,19 @@ { "uniqueItems": true, "type": "string", - "description": "name of the StorageClass", + "description": "name of the Role", "name": "name", "in": "path", "required": true }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -62185,99 +60859,7896 @@ } ] }, - "/logs/": { + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/rolebindings": { "get": { - "schemes": [ - "https" + "description": "watch individual changes to a list of RoleBinding", + "consumes": [ + "*/*" ], - "tags": [ - "logs" + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], - "operationId": "logFileListHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - } - } - }, - "/logs/{logpath}": { - "get": { "schemes": [ "https" ], "tags": [ - "logs" + "rbacAuthorization_v1alpha1" ], - "operationId": "logFileHandler", + "operationId": "watchRbacAuthorizationV1alpha1RoleBindingListForAllNamespaces", "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1alpha1" } }, "parameters": [ { "uniqueItems": true, "type": "string", - "description": "path to the log", - "name": "logpath", - "in": "path", - "required": true + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" } ] }, - "/version/": { + "/apis/rbac.authorization.k8s.io/v1alpha1/watch/roles": { "get": { - "description": "get the code version", + "description": "watch individual changes to a list of Role", "consumes": [ - "application/json" + "*/*" ], "produces": [ - "application/json" + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" ], "tags": [ - "version" + "rbacAuthorization_v1alpha1" ], - "operationId": "getCodeVersion", + "operationId": "watchRbacAuthorizationV1alpha1RoleListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1alpha1" } - } - } - }, - "definitions": { - "io.k8s.api.admissionregistration.v1alpha1.AdmissionHookClientConfig": { - "description": "AdmissionHookClientConfig contains the information to make a TLS connection with the webhook", + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "getRbacAuthorizationV1beta1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings": { + "get": { + "description": "list or watch objects of kind ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "listRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "post": { + "description": "create a ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "createRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete collection of ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}": { + "get": { + "description": "read the specified ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "readRbacAuthorizationV1beta1ClusterRoleBinding", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "put": { + "description": "replace the specified ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "replaceRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete a ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "deleteRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update the specified ClusterRoleBinding", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "patchRbacAuthorizationV1beta1ClusterRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles": { + "get": { + "description": "list or watch objects of kind ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "listRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "post": { + "description": "create a ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "createRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete collection of ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRole", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}": { + "get": { + "description": "read the specified ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "readRbacAuthorizationV1beta1ClusterRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "put": { + "description": "replace the specified ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "replaceRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete a ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "deleteRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update the specified ClusterRole", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "patchRbacAuthorizationV1beta1ClusterRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRole", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings": { + "get": { + "description": "list or watch objects of kind RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "listRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "post": { + "description": "create a RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "createRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete collection of RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}": { + "get": { + "description": "read the specified RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "readRbacAuthorizationV1beta1NamespacedRoleBinding", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "put": { + "description": "replace the specified RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "replaceRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete a RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "deleteRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update the specified RoleBinding", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "patchRbacAuthorizationV1beta1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the RoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles": { + "get": { + "description": "list or watch objects of kind Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "listRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "post": { + "description": "create a Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "createRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete collection of Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRole", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}": { + "get": { + "description": "read the specified Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "readRbacAuthorizationV1beta1NamespacedRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "put": { + "description": "replace the specified Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "replaceRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete a Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "deleteRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update the specified Role", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "patchRbacAuthorizationV1beta1NamespacedRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Role", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/rolebindings": { + "get": { + "description": "list or watch objects of kind RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/roles": { + "get": { + "description": "list or watch objects of kind Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings": { + "get": { + "description": "watch individual changes to a list of ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBindingList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}": { + "get": { + "description": "watch changes to an object of kind ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBinding", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles": { + "get": { + "description": "watch individual changes to a list of ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1ClusterRoleList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}": { + "get": { + "description": "watch changes to an object of kind ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1ClusterRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRole", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings": { + "get": { + "description": "watch individual changes to a list of RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBindingList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}": { + "get": { + "description": "watch changes to an object of kind RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBinding", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the RoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles": { + "get": { + "description": "watch individual changes to a list of Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}": { + "get": { + "description": "watch changes to an object of kind Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1NamespacedRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Role", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings": { + "get": { + "description": "watch individual changes to a list of RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1beta1/watch/roles": { + "get": { + "description": "watch individual changes to a list of Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1beta1" + ], + "operationId": "watchRbacAuthorizationV1beta1RoleListForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/scheduling.k8s.io/": { + "get": { + "description": "get information of a group", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling" + ], + "operationId": "getSchedulingAPIGroup", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/scheduling.k8s.io/v1alpha1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "getSchedulingV1alpha1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/scheduling.k8s.io/v1alpha1/priorityclasses": { + "get": { + "description": "list or watch objects of kind PriorityClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "listSchedulingV1alpha1PriorityClass", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1alpha1" + } + }, + "post": { + "description": "create a PriorityClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "createSchedulingV1alpha1PriorityClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete collection of PriorityClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "deleteSchedulingV1alpha1CollectionPriorityClass", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name}": { + "get": { + "description": "read the specified PriorityClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "readSchedulingV1alpha1PriorityClass", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1alpha1" + } + }, + "put": { + "description": "replace the specified PriorityClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "replaceSchedulingV1alpha1PriorityClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete a PriorityClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "deleteSchedulingV1alpha1PriorityClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1alpha1" + } + }, + "patch": { + "description": "partially update the specified PriorityClass", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "patchSchedulingV1alpha1PriorityClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the PriorityClass", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses": { + "get": { + "description": "watch individual changes to a list of PriorityClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "watchSchedulingV1alpha1PriorityClassList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses/{name}": { + "get": { + "description": "watch changes to an object of kind PriorityClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "scheduling_v1alpha1" + ], + "operationId": "watchSchedulingV1alpha1PriorityClass", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "scheduling.k8s.io", + "kind": "PriorityClass", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the PriorityClass", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/settings.k8s.io/": { + "get": { + "description": "get information of a group", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings" + ], + "operationId": "getSettingsAPIGroup", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/settings.k8s.io/v1alpha1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "getSettingsV1alpha1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets": { + "get": { + "description": "list or watch objects of kind PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "listSettingsV1alpha1NamespacedPodPreset", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPresetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "post": { + "description": "create a PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "createSettingsV1alpha1NamespacedPodPreset", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete collection of PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "deleteSettingsV1alpha1CollectionNamespacedPodPreset", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name}": { + "get": { + "description": "read the specified PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "readSettingsV1alpha1NamespacedPodPreset", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "put": { + "description": "replace the specified PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "replaceSettingsV1alpha1NamespacedPodPreset", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete a PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "deleteSettingsV1alpha1NamespacedPodPreset", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "patch": { + "description": "partially update the specified PodPreset", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "patchSettingsV1alpha1NamespacedPodPreset", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the PodPreset", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/settings.k8s.io/v1alpha1/podpresets": { + "get": { + "description": "list or watch objects of kind PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "listSettingsV1alpha1PodPresetForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPresetList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets": { + "get": { + "description": "watch individual changes to a list of PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "watchSettingsV1alpha1NamespacedPodPresetList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets/{name}": { + "get": { + "description": "watch changes to an object of kind PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "watchSettingsV1alpha1NamespacedPodPreset", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the PodPreset", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/settings.k8s.io/v1alpha1/watch/podpresets": { + "get": { + "description": "watch individual changes to a list of PodPreset", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "settings_v1alpha1" + ], + "operationId": "watchSettingsV1alpha1PodPresetListForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "settings.k8s.io", + "kind": "PodPreset", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/": { + "get": { + "description": "get information of a group", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage" + ], + "operationId": "getStorageAPIGroup", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/storage.k8s.io/v1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "getStorageV1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/storage.k8s.io/v1/storageclasses": { + "get": { + "description": "list or watch objects of kind StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "listStorageV1StorageClass", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "post": { + "description": "create a StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "createStorageV1StorageClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "delete": { + "description": "delete collection of StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "deleteStorageV1CollectionStorageClass", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1/storageclasses/{name}": { + "get": { + "description": "read the specified StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "readStorageV1StorageClass", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "put": { + "description": "replace the specified StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "replaceStorageV1StorageClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "delete": { + "description": "delete a StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "deleteStorageV1StorageClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "patch": { + "description": "partially update the specified StorageClass", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "patchStorageV1StorageClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the StorageClass", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1/watch/storageclasses": { + "get": { + "description": "watch individual changes to a list of StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "watchStorageV1StorageClassList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1/watch/storageclasses/{name}": { + "get": { + "description": "watch changes to an object of kind StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1" + ], + "operationId": "watchStorageV1StorageClass", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the StorageClass", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1alpha1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "getStorageV1alpha1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/storage.k8s.io/v1alpha1/volumeattachments": { + "get": { + "description": "list or watch objects of kind VolumeAttachment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "listStorageV1alpha1VolumeAttachment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + }, + "post": { + "description": "create a VolumeAttachment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "createStorageV1alpha1VolumeAttachment", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete collection of VolumeAttachment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "deleteStorageV1alpha1CollectionVolumeAttachment", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1alpha1/volumeattachments/{name}": { + "get": { + "description": "read the specified VolumeAttachment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "readStorageV1alpha1VolumeAttachment", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + }, + "put": { + "description": "replace the specified VolumeAttachment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "replaceStorageV1alpha1VolumeAttachment", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete a VolumeAttachment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "deleteStorageV1alpha1VolumeAttachment", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + }, + "patch": { + "description": "partially update the specified VolumeAttachment", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "patchStorageV1alpha1VolumeAttachment", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the VolumeAttachment", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1alpha1/watch/volumeattachments": { + "get": { + "description": "watch individual changes to a list of VolumeAttachment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "watchStorageV1alpha1VolumeAttachmentList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1alpha1/watch/volumeattachments/{name}": { + "get": { + "description": "watch changes to an object of kind VolumeAttachment", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1alpha1" + ], + "operationId": "watchStorageV1alpha1VolumeAttachment", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the VolumeAttachment", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1beta1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "getStorageV1beta1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/storage.k8s.io/v1beta1/storageclasses": { + "get": { + "description": "list or watch objects of kind StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "listStorageV1beta1StorageClass", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "post": { + "description": "create a StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "createStorageV1beta1StorageClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete collection of StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "deleteStorageV1beta1CollectionStorageClass", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1beta1/storageclasses/{name}": { + "get": { + "description": "read the specified StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "readStorageV1beta1StorageClass", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "name": "exact", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "name": "export", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "put": { + "description": "replace the specified StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "replaceStorageV1beta1StorageClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "delete": { + "description": "delete a StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "deleteStorageV1beta1StorageClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update the specified StorageClass", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "patchStorageV1beta1StorageClass", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the StorageClass", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1beta1/watch/storageclasses": { + "get": { + "description": "watch individual changes to a list of StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "watchStorageV1beta1StorageClassList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}": { + "get": { + "description": "watch changes to an object of kind StorageClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storage_v1beta1" + ], + "operationId": "watchStorageV1beta1StorageClass", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.k8s.io", + "kind": "StorageClass", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the StorageClass", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/logs/": { + "get": { + "schemes": [ + "https" + ], + "tags": [ + "logs" + ], + "operationId": "logFileListHandler", + "responses": { + "401": { + "description": "Unauthorized" + } + } + } + }, + "/logs/{logpath}": { + "get": { + "schemes": [ + "https" + ], + "tags": [ + "logs" + ], + "operationId": "logFileHandler", + "responses": { + "401": { + "description": "Unauthorized" + } + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "path to the log", + "name": "logpath", + "in": "path", + "required": true + } + ] + }, + "/version/": { + "get": { + "description": "get the code version", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "schemes": [ + "https" + ], + "tags": [ + "version" + ], + "operationId": "getCodeVersion", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + } + }, + "definitions": { + "io.k8s.api.admissionregistration.v1alpha1.Initializer": { + "description": "Initializer describes the name and the failure policy of an initializer, and what resources it applies to.", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "Name is the identifier of the initializer. It will be added to the object that needs to be initialized. Name should be fully qualified, e.g., alwayspullimages.kubernetes.io, where \"alwayspullimages\" is the name of the webhook, and kubernetes.io is the name of the organization. Required", + "type": "string" + }, + "rules": { + "description": "Rules describes what resources/subresources the initializer cares about. The initializer cares about an operation if it matches _any_ Rule. Rule.Resources must not include subresources.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Rule" + } + } + } + }, + "io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration": { + "description": "InitializerConfiguration describes the configuration of initializers.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "initializers": { + "description": "Initializers is a list of resources and their default initializers Order-sensitive. When merging multiple InitializerConfigurations, we sort the initializers from different InitializerConfigurations by the name of the InitializerConfigurations; the order of the initializers from the same InitializerConfiguration is preserved.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Initializer" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "InitializerConfiguration", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList": { + "description": "InitializerConfigurationList is a list of InitializerConfiguration.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of InitializerConfiguration.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "InitializerConfigurationList", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration": { + "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "webhooks": { + "description": "Webhooks is a list of webhooks and the affected resources and operations.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Webhook" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfiguration", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfigurationList": { + "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "List of MutatingWebhookConfiguration.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "MutatingWebhookConfigurationList", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.admissionregistration.v1alpha1.Rule": { + "description": "Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.", + "properties": { + "apiGroups": { + "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "type": "array", + "items": { + "type": "string" + } + }, + "apiVersions": { + "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.admissionregistration.v1alpha1.RuleWithOperations": { + "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", + "properties": { + "apiGroups": { + "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "type": "array", + "items": { + "type": "string" + } + }, + "apiVersions": { + "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "type": "array", + "items": { + "type": "string" + } + }, + "operations": { + "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required.", + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.admissionregistration.v1alpha1.ServiceReference": { + "description": "ServiceReference holds a reference to Service.legacy.k8s.io", + "required": [ + "namespace", + "name" + ], + "properties": { + "name": { + "description": "`name` is the name of the service. Required", + "type": "string" + }, + "namespace": { + "description": "`namespace` is the namespace of the service. Required", + "type": "string" + }, + "path": { + "description": "`path` is an optional URL path which will be sent in any request to this service.", + "type": "string" + } + } + }, + "io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration": { + "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "webhooks": { + "description": "Webhooks is a list of webhooks and the affected resources and operations.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Webhook" + }, + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfiguration", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfigurationList": { + "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", "required": [ - "service", - "caBundle" + "items" ], "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate webhook's server certificate. Required", - "type": "string", - "format": "byte" + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" }, - "service": { - "description": "Service is a reference to the service for this webhook. If there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error. Required", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ServiceReference" + "items": { + "description": "List of ValidatingWebhookConfiguration.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } - } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingWebhookConfigurationList", + "version": "v1alpha1" + } + ] }, - "io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHook": { - "description": "ExternalAdmissionHook describes an external admission webhook and the resources and operations it applies to.", + "io.k8s.api.admissionregistration.v1alpha1.Webhook": { + "description": "Webhook describes an admission webhook and the resources and operations it applies to.", "required": [ "name", "clientConfig" @@ -62285,16 +68756,20 @@ "properties": { "clientConfig": { "description": "ClientConfig defines how to communicate with the hook. Required", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.AdmissionHookClientConfig" + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.WebhookClientConfig" }, "failurePolicy": { "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", "type": "string" }, "name": { - "description": "The name of the external admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", + "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", "type": "string" }, + "namespaceSelector": { + "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is other cluster scoped resource, it is not subjected to the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, "rules": { "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule.", "type": "array", @@ -62304,127 +68779,570 @@ } } }, - "io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration": { - "description": "ExternalAdmissionHookConfiguration describes the configuration of initializers.", + "io.k8s.api.admissionregistration.v1alpha1.WebhookClientConfig": { + "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", + "required": [ + "caBundle" + ], + "properties": { + "caBundle": { + "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. Required.", + "type": "string", + "format": "byte" + }, + "service": { + "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.\n\nIf there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error.", + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ServiceReference" + }, + "url": { + "description": "`url` gives the location of the webhook, in standard URL form (`[scheme://]host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", + "type": "string" + } + } + }, + "io.k8s.api.apps.v1.ControllerRevision": { + "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", + "required": [ + "revision" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "data": { + "description": "Data is the serialized representation of the state.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "revision": { + "description": "Revision indicates the revision of the state represented by Data.", + "type": "integer", + "format": "int64" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ControllerRevision", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.ControllerRevisionList": { + "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of ControllerRevisions", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "ControllerRevisionList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DaemonSet": { + "description": "DaemonSet represents the configuration of a daemon set.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec" + }, + "status": { + "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DaemonSet", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DaemonSetCondition": { + "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "lastTransitionTime": { + "description": "Last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of DaemonSet condition.", + "type": "string" + } + } + }, + "io.k8s.api.apps.v1.DaemonSetList": { + "description": "DaemonSetList is a collection of daemon sets.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "A list of daemon sets.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DaemonSetList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DaemonSetSpec": { + "description": "DaemonSetSpec is the specification of a daemon set.", + "required": [ + "selector", + "template" + ], + "properties": { + "minReadySeconds": { + "description": "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).", + "type": "integer", + "format": "int32" + }, + "revisionHistoryLimit": { + "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", + "type": "integer", + "format": "int32" + }, + "selector": { + "description": "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", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "template": { + "description": "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", + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" + }, + "updateStrategy": { + "description": "An update strategy to replace existing DaemonSet pods with new pods.", + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy" + } + } + }, + "io.k8s.api.apps.v1.DaemonSetStatus": { + "description": "DaemonSetStatus represents the current status of a daemon set.", + "required": [ + "currentNumberScheduled", + "numberMisscheduled", + "desiredNumberScheduled", + "numberReady" + ], + "properties": { + "collisionCount": { + "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "type": "integer", + "format": "int32" + }, + "conditions": { + "description": "Represents the latest available observations of a DaemonSet's current state.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "currentNumberScheduled": { + "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "type": "integer", + "format": "int32" + }, + "desiredNumberScheduled": { + "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "type": "integer", + "format": "int32" + }, + "numberAvailable": { + "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", + "type": "integer", + "format": "int32" + }, + "numberMisscheduled": { + "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "type": "integer", + "format": "int32" + }, + "numberReady": { + "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", + "type": "integer", + "format": "int32" + }, + "numberUnavailable": { + "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", + "type": "integer", + "format": "int32" + }, + "observedGeneration": { + "description": "The most recent generation observed by the daemon set controller.", + "type": "integer", + "format": "int64" + }, + "updatedNumberScheduled": { + "description": "The total number of nodes that are running updated daemon pod", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { + "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", + "properties": { + "rollingUpdate": { + "description": "Rolling update config params. Present only if type = \"RollingUpdate\".", + "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet" + }, + "type": { + "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", + "type": "string" + } + } + }, + "io.k8s.api.apps.v1.Deployment": { + "description": "Deployment enables declarative updates for Pods and ReplicaSets.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Specification of the desired behavior of the Deployment.", + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec" + }, + "status": { + "description": "Most recently observed status of the Deployment.", + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "Deployment", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DeploymentCondition": { + "description": "DeploymentCondition describes the state of a deployment at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "lastTransitionTime": { + "description": "Last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "lastUpdateTime": { + "description": "The last time this condition was updated.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of deployment condition.", + "type": "string" + } + } + }, + "io.k8s.api.apps.v1.DeploymentList": { + "description": "DeploymentList is a list of Deployments.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of Deployments.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "apps", + "kind": "DeploymentList", + "version": "v1" + } + ] + }, + "io.k8s.api.apps.v1.DeploymentSpec": { + "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", + "required": [ + "selector", + "template" + ], + "properties": { + "minReadySeconds": { + "description": "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)", + "type": "integer", + "format": "int32" + }, + "paused": { + "description": "Indicates that the deployment is paused.", + "type": "boolean" + }, + "progressDeadlineSeconds": { + "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", + "type": "integer", + "format": "int32" + }, + "replicas": { + "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", + "type": "integer", + "format": "int32" + }, + "revisionHistoryLimit": { + "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", + "type": "integer", + "format": "int32" + }, + "selector": { + "description": "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.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "strategy": { + "description": "The deployment strategy to use to replace existing pods with new ones.", + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy" + }, + "template": { + "description": "Template describes the pods that will be created.", + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" + } + } + }, + "io.k8s.api.apps.v1.DeploymentStatus": { + "description": "DeploymentStatus is the most recently observed status of the Deployment.", + "properties": { + "availableReplicas": { + "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", + "type": "integer", + "format": "int32" + }, + "collisionCount": { + "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", + "type": "integer", + "format": "int32" + }, + "conditions": { + "description": "Represents the latest available observations of a deployment's current state.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "observedGeneration": { + "description": "The generation observed by the deployment controller.", + "type": "integer", + "format": "int64" + }, + "readyReplicas": { + "description": "Total number of ready pods targeted by this deployment.", + "type": "integer", + "format": "int32" + }, + "replicas": { + "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", + "type": "integer", + "format": "int32" + }, + "unavailableReplicas": { + "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", + "type": "integer", + "format": "int32" + }, + "updatedReplicas": { + "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.apps.v1.DeploymentStrategy": { + "description": "DeploymentStrategy describes how to replace existing pods with new ones.", "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "externalAdmissionHooks": { - "description": "ExternalAdmissionHooks is a list of external admission webhooks and the affected resources and operations.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHook" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" + "rollingUpdate": { + "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", + "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment" }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": { + "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", "type": "string" - }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfiguration", - "version": "v1alpha1" - } - ] + } }, - "io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfigurationList": { - "description": "ExternalAdmissionHookConfigurationList is a list of ExternalAdmissionHookConfiguration.", - "required": [ - "items" - ], + "io.k8s.api.apps.v1.ReplicaSet": { + "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", "type": "string" }, - "items": { - "description": "List of ExternalAdmissionHookConfiguration.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" - } - }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec" + }, + "status": { + "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus" } }, "x-kubernetes-group-version-kind": [ { - "group": "admissionregistration.k8s.io", - "kind": "ExternalAdmissionHookConfigurationList", - "version": "v1alpha1" + "group": "apps", + "kind": "ReplicaSet", + "version": "v1" } ] }, - "io.k8s.api.admissionregistration.v1alpha1.Initializer": { - "description": "Initializer describes the name and the failure policy of an initializer, and what resources it applies to.", + "io.k8s.api.apps.v1.ReplicaSetCondition": { + "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", "required": [ - "name" + "type", + "status" ], "properties": { - "name": { - "description": "Name is the identifier of the initializer. It will be added to the object that needs to be initialized. Name should be fully qualified, e.g., alwayspullimages.kubernetes.io, where \"alwayspullimages\" is the name of the webhook, and kubernetes.io is the name of the organization. Required", - "type": "string" + "lastTransitionTime": { + "description": "The last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, - "rules": { - "description": "Rules describes what resources/subresources the initializer cares about. The initializer cares about an operation if it matches _any_ Rule. Rule.Resources must not include subresources.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Rule" - } - } - } - }, - "io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration": { - "description": "InitializerConfiguration describes the configuration of initializers.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "message": { + "description": "A human readable message indicating details about the transition.", "type": "string" }, - "initializers": { - "description": "Initializers is a list of resources and their default initializers Order-sensitive. When merging multiple InitializerConfigurations, we sort the initializers from different InitializerConfigurations by the name of the InitializerConfigurations; the order of the initializers from the same InitializerConfiguration is preserved.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Initializer" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "status": { + "description": "Status of the condition, one of True, False, Unknown.", "type": "string" }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" + "type": { + "description": "Type of replica set condition.", + "type": "string" } - ] + } }, - "io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList": { - "description": "InitializerConfigurationList is a list of InitializerConfiguration.", + "io.k8s.api.apps.v1.ReplicaSetList": { + "description": "ReplicaSetList is a collection of ReplicaSets.", "required": [ "items" ], @@ -62434,10 +69352,10 @@ "type": "string" }, "items": { - "description": "List of InitializerConfiguration.", + "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", "type": "array", "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "kind": { @@ -62451,90 +69369,114 @@ }, "x-kubernetes-group-version-kind": [ { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfigurationList", - "version": "v1alpha1" + "group": "apps", + "kind": "ReplicaSetList", + "version": "v1" } ] }, - "io.k8s.api.admissionregistration.v1alpha1.Rule": { - "description": "Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.", + "io.k8s.api.apps.v1.ReplicaSetSpec": { + "description": "ReplicaSetSpec is the specification of a ReplicaSet.", + "required": [ + "selector" + ], "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "type": "array", - "items": { - "type": "string" - } + "minReadySeconds": { + "description": "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)", + "type": "integer", + "format": "int32" }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "type": "array", - "items": { - "type": "string" - } + "replicas": { + "description": "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", + "type": "integer", + "format": "int32" }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "type": "array", - "items": { - "type": "string" - } + "selector": { + "description": "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", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "template": { + "description": "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", + "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" } } }, - "io.k8s.api.admissionregistration.v1alpha1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", + "io.k8s.api.apps.v1.ReplicaSetStatus": { + "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", + "required": [ + "replicas" + ], "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "type": "array", - "items": { - "type": "string" - } + "availableReplicas": { + "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", + "type": "integer", + "format": "int32" }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "conditions": { + "description": "Represents the latest available observations of a replica set's current state.", "type": "array", "items": { - "type": "string" - } + "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required.", - "type": "array", - "items": { - "type": "string" - } + "fullyLabeledReplicas": { + "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", + "type": "integer", + "format": "int32" }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "type": "array", - "items": { - "type": "string" - } + "observedGeneration": { + "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", + "type": "integer", + "format": "int64" + }, + "readyReplicas": { + "description": "The number of ready replicas for this replica set.", + "type": "integer", + "format": "int32" + }, + "replicas": { + "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", + "type": "integer", + "format": "int32" } } }, - "io.k8s.api.admissionregistration.v1alpha1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "required": [ - "namespace", - "name" - ], + "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { + "description": "Spec to control the desired behavior of daemon set rolling update.", "properties": { - "name": { - "description": "Name is the name of the service Required", - "type": "string" + "maxUnavailable": { + "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + } + } + }, + "io.k8s.api.apps.v1.RollingUpdateDeployment": { + "description": "Spec to control the desired behavior of rolling update.", + "properties": { + "maxSurge": { + "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" }, - "namespace": { - "description": "Namespace is the namespace of the service Required", - "type": "string" + "maxUnavailable": { + "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" } } }, - "io.k8s.api.apps.v1.DaemonSet": { - "description": "DaemonSet represents the configuration of a daemon set.", + "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { + "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", + "properties": { + "partition": { + "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", + "type": "integer", + "format": "int32" + } + } + }, + "io.k8s.api.apps.v1.StatefulSet": { + "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", @@ -62545,28 +69487,56 @@ "type": "string" }, "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" }, "spec": { - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec" + "description": "Spec defines the desired identities of pods in this set.", + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec" }, "status": { - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus" + "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus" } }, "x-kubernetes-group-version-kind": [ { "group": "apps", - "kind": "DaemonSet", + "kind": "StatefulSet", "version": "v1" } ] }, - "io.k8s.api.apps.v1.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", + "io.k8s.api.apps.v1.StatefulSetCondition": { + "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "lastTransitionTime": { + "description": "Last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of statefulset condition.", + "type": "string" + } + } + }, + "io.k8s.api.apps.v1.StatefulSetList": { + "description": "StatefulSetList is a collection of StatefulSets.", "required": [ "items" ], @@ -62576,10 +69546,9 @@ "type": "string" }, "items": { - "description": "A list of daemon sets.", "type": "array", "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "kind": { @@ -62587,126 +69556,132 @@ "type": "string" }, "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" } }, "x-kubernetes-group-version-kind": [ { "group": "apps", - "kind": "DaemonSetList", + "kind": "StatefulSetList", "version": "v1" } ] }, - "io.k8s.api.apps.v1.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", + "io.k8s.api.apps.v1.StatefulSetSpec": { + "description": "A StatefulSetSpec is the specification of a StatefulSet.", "required": [ - "template" + "selector", + "template", + "serviceName" ], "properties": { - "minReadySeconds": { - "description": "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).", + "podManagementPolicy": { + "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", + "type": "string" + }, + "replicas": { + "description": "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.", "type": "integer", "format": "int32" }, "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", + "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", "type": "integer", "format": "int32" }, "selector": { - "description": "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", + "description": "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", "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" }, + "serviceName": { + "description": "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.", + "type": "string" + }, "template": { - "description": "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", + "description": "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.", "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" }, "updateStrategy": { - "description": "An update strategy to replace existing DaemonSet pods with new pods.", - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy" + "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy" + }, + "volumeClaimTemplates": { + "description": "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.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" + } } } }, - "io.k8s.api.apps.v1.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", + "io.k8s.api.apps.v1.StatefulSetStatus": { + "description": "StatefulSetStatus represents the current state of a StatefulSet.", "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" + "replicas" ], "properties": { "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", "type": "integer", "format": "int32" }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" + "conditions": { + "description": "Represents the latest available observations of a statefulset's current state.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "currentReplicas": { + "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "type": "integer", "format": "int32" }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "type": "integer", - "format": "int32" + "currentRevision": { + "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", + "type": "string" }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "observedGeneration": { + "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", "type": "integer", - "format": "int32" + "format": "int64" }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", + "readyReplicas": { + "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", "type": "integer", "format": "int32" }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", + "replicas": { + "description": "replicas is the number of Pods created by the StatefulSet controller.", "type": "integer", "format": "int32" }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "type": "integer", - "format": "int64" + "updateRevision": { + "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", + "type": "string" }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", + "updatedReplicas": { + "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", "type": "integer", "format": "int32" } } }, - "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { - "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", + "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { + "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", "properties": { "rollingUpdate": { - "description": "Rolling update config params. Present only if type = \"RollingUpdate\".", - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet" + "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", + "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy" }, "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", + "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", "type": "string" } } }, - "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, "io.k8s.api.apps.v1beta1.ControllerRevision": { "description": "DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", "required": [ @@ -63155,6 +70130,35 @@ } ] }, + "io.k8s.api.apps.v1beta1.StatefulSetCondition": { + "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "lastTransitionTime": { + "description": "Last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of statefulset condition.", + "type": "string" + } + } + }, "io.k8s.api.apps.v1beta1.StatefulSetList": { "description": "StatefulSetList is a collection of StatefulSets.", "required": [ @@ -63244,6 +70248,15 @@ "type": "integer", "format": "int32" }, + "conditions": { + "description": "Represents the latest available observations of a statefulset's current state.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, "currentReplicas": { "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "type": "integer", @@ -63394,6 +70407,35 @@ } ] }, + "io.k8s.api.apps.v1beta2.DaemonSetCondition": { + "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "lastTransitionTime": { + "description": "Last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of DaemonSet condition.", + "type": "string" + } + } + }, "io.k8s.api.apps.v1beta2.DaemonSetList": { "description": "DaemonSetList is a collection of daemon sets.", "required": [ @@ -63472,6 +70514,15 @@ "type": "integer", "format": "int32" }, + "conditions": { + "description": "Represents the latest available observations of a DaemonSet's current state.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, "currentNumberScheduled": { "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "type": "integer", @@ -64021,6 +71072,35 @@ } ] }, + "io.k8s.api.apps.v1beta2.StatefulSetCondition": { + "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "lastTransitionTime": { + "description": "Last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of statefulset condition.", + "type": "string" + } + } + }, "io.k8s.api.apps.v1beta2.StatefulSetList": { "description": "StatefulSetList is a collection of StatefulSets.", "required": [ @@ -64110,6 +71190,15 @@ "type": "integer", "format": "int32" }, + "conditions": { + "description": "Represents the latest available observations of a statefulset's current state.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, "currentReplicas": { "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "type": "integer", @@ -64461,7 +71550,7 @@ } }, "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all.", + "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", "type": "array", "items": { "type": "string" @@ -64644,7 +71733,11 @@ ], "properties": { "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", + "description": "Allowed is required. True if the action would be allowed, false otherwise.", + "type": "boolean" + }, + "denied": { + "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", "type": "boolean" }, "evaluationError": { @@ -64812,7 +71905,7 @@ } }, "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all.", + "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", "type": "array", "items": { "type": "string" @@ -64995,7 +72088,11 @@ ], "properties": { "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", + "description": "Allowed is required. True if the action would be allowed, false otherwise.", + "type": "boolean" + }, + "denied": { + "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", "type": "boolean" }, "evaluationError": { @@ -65727,7 +72824,7 @@ "format": "int32" }, "manualSelector": { - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md", + "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", "type": "boolean" }, "parallelism": { @@ -65856,7 +72953,7 @@ ], "properties": { "concurrencyPolicy": { - "description": "Specifies how to treat concurrent executions of a Job. Defaults to Allow.", + "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", "type": "string" }, "failedJobsHistoryLimit": { @@ -65991,7 +73088,7 @@ ], "properties": { "concurrencyPolicy": { - "description": "Specifies how to treat concurrent executions of a Job. Defaults to Allow.", + "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", "type": "string" }, "failedJobsHistoryLimit": { @@ -66795,7 +73892,7 @@ "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements" }, "securityContext": { - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md", + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext" }, "stdin": { @@ -67817,7 +74914,7 @@ "type": "string" }, "items": { - "description": "Items is a list of LimitRange objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md", + "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", "type": "array", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" @@ -67992,7 +75089,7 @@ "description": "NamespaceSpec describes the attributes on a Namespace.", "properties": { "finalizers": { - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers", + "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", "type": "array", "items": { "type": "string" @@ -68004,7 +75101,7 @@ "description": "NamespaceStatus is information about the current status of a Namespace.", "properties": { "phase": { - "description": "Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases", + "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", "type": "string" } } @@ -68776,11 +75873,11 @@ }, "rbd": { "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource" + "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource" }, "scaleIO": { "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource" + "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource" }, "storageClassName": { "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", @@ -68881,7 +75978,10 @@ } }, "io.k8s.api.core.v1.PodAffinityTerm": { - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "required": [ + "topologyKey" + ], "properties": { "labelSelector": { "description": "A label query over a set of resources, in this case pods.", @@ -68895,7 +75995,7 @@ } }, "topologyKey": { - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.", + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", "type": "string" } } @@ -69419,6 +76519,50 @@ } } }, + "io.k8s.api.core.v1.RBDPersistentVolumeSource": { + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "required": [ + "monitors", + "image" + ], + "properties": { + "fsType": { + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "type": "string" + }, + "image": { + "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "keyring": { + "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "monitors": { + "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "array", + "items": { + "type": "string" + } + }, + "pool": { + "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "boolean" + }, + "secretRef": { + "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" + }, + "user": { + "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "type": "string" + } + } + }, "io.k8s.api.core.v1.RBDVolumeSource": { "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", "required": [ @@ -69689,7 +76833,7 @@ "type": "string" }, "items": { - "description": "Items is a list of ResourceQuota objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "type": "array", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" @@ -69716,7 +76860,7 @@ "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", "properties": { "hard": { - "description": "Hard is the set of desired hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "description": "Hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "type": "object", "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" @@ -69735,7 +76879,7 @@ "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", "properties": { "hard": { - "description": "Hard is the set of enforced hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "type": "object", "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" @@ -69790,6 +76934,56 @@ } } }, + "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { + "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", + "required": [ + "gateway", + "system", + "secretRef" + ], + "properties": { + "fsType": { + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "type": "string" + }, + "gateway": { + "description": "The host address of the ScaleIO API Gateway.", + "type": "string" + }, + "protectionDomain": { + "description": "The name of the ScaleIO Protection Domain for the configured storage.", + "type": "string" + }, + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretRef": { + "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", + "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" + }, + "sslEnabled": { + "description": "Flag to enable/disable SSL communication with Gateway, default false", + "type": "boolean" + }, + "storageMode": { + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", + "type": "string" + }, + "storagePool": { + "description": "The ScaleIO Storage Pool associated with the protection domain.", + "type": "string" + }, + "system": { + "description": "The name of the storage system as configured in ScaleIO.", + "type": "string" + }, + "volumeName": { + "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", + "type": "string" + } + } + }, "io.k8s.api.core.v1.ScaleIOVolumeSource": { "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", "required": [ @@ -69807,7 +77001,7 @@ "type": "string" }, "protectionDomain": { - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\").", + "description": "The name of the ScaleIO Protection Domain for the configured storage.", "type": "string" }, "readOnly": { @@ -69823,11 +77017,11 @@ "type": "boolean" }, "storageMode": { - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\").", + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", "type": "string" }, "storagePool": { - "description": "The Storage Pool associated with the protection domain (defaults to \"default\").", + "description": "The ScaleIO Storage Pool associated with the protection domain.", "type": "string" }, "system": { @@ -70672,6 +77866,35 @@ } ] }, + "io.k8s.api.extensions.v1beta1.DaemonSetCondition": { + "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "lastTransitionTime": { + "description": "Last time the condition transitioned from one status to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of DaemonSet condition.", + "type": "string" + } + } + }, "io.k8s.api.extensions.v1beta1.DaemonSetList": { "description": "DaemonSetList is a collection of daemon sets.", "required": [ @@ -70755,6 +77978,15 @@ "type": "integer", "format": "int32" }, + "conditions": { + "description": "Represents the latest available observations of a DaemonSet's current state.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetCondition" + }, + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, "currentNumberScheduled": { "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "type": "integer", @@ -71555,7 +78787,7 @@ } }, "defaultAddCapabilities": { - "description": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capabiility in both DefaultAddCapabilities and RequiredDropCapabilities.", + "description": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the AllowedCapabilities list.", "type": "array", "items": { "type": "string" @@ -71846,7 +79078,7 @@ "type": "string" }, "seLinuxOptions": { - "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md", + "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" } } @@ -72267,12 +79499,28 @@ } } }, + "io.k8s.api.rbac.v1.AggregationRule": { + "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "properties": { + "clusterRoleSelectors": { + "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + } + } + } + }, "io.k8s.api.rbac.v1.ClusterRole": { "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", "required": [ "rules" ], "properties": { + "aggregationRule": { + "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", + "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule" + }, "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", "type": "string" @@ -72639,12 +79887,28 @@ } } }, + "io.k8s.api.rbac.v1alpha1.AggregationRule": { + "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "properties": { + "clusterRoleSelectors": { + "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + } + } + } + }, "io.k8s.api.rbac.v1alpha1.ClusterRole": { "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", "required": [ "rules" ], "properties": { + "aggregationRule": { + "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", + "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.AggregationRule" + }, "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", "type": "string" @@ -73011,12 +80275,28 @@ } } }, + "io.k8s.api.rbac.v1beta1.AggregationRule": { + "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "properties": { + "clusterRoleSelectors": { + "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + } + } + } + }, "io.k8s.api.rbac.v1beta1.ClusterRole": { "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", "required": [ "rules" ], "properties": { + "aggregationRule": { + "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", + "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule" + }, "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", "type": "string" @@ -73180,7 +80460,7 @@ } }, "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", + "description": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", "type": "array", "items": { "type": "string" @@ -73597,6 +80877,10 @@ "reclaimPolicy": { "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", "type": "string" + }, + "volumeBindingMode": { + "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.", + "type": "string" } }, "x-kubernetes-group-version-kind": [ @@ -73641,6 +80925,146 @@ } ] }, + "io.k8s.api.storage.v1alpha1.VolumeAttachment": { + "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", + "required": [ + "spec" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.", + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec" + }, + "status": { + "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.", + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "VolumeAttachment", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.storage.v1alpha1.VolumeAttachmentList": { + "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is the list of VolumeAttachments", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "storage.k8s.io", + "kind": "VolumeAttachmentList", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.storage.v1alpha1.VolumeAttachmentSource": { + "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", + "properties": { + "persistentVolumeName": { + "description": "Name of the persistent volume to attach.", + "type": "string" + } + } + }, + "io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec": { + "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", + "required": [ + "attacher", + "source", + "nodeName" + ], + "properties": { + "attacher": { + "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", + "type": "string" + }, + "nodeName": { + "description": "The node that the volume should be attached to.", + "type": "string" + }, + "source": { + "description": "Source represents the volume that should be attached.", + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentSource" + } + } + }, + "io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus": { + "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", + "required": [ + "attached" + ], + "properties": { + "attachError": { + "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeError" + }, + "attached": { + "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "type": "boolean" + }, + "attachmentMetadata": { + "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "detachError": { + "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.", + "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeError" + } + } + }, + "io.k8s.api.storage.v1alpha1.VolumeError": { + "description": "VolumeError captures an error encountered during a volume operation.", + "properties": { + "message": { + "description": "String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.", + "type": "string" + }, + "time": { + "description": "Time the error was encountered.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + } + }, "io.k8s.api.storage.v1beta1.StorageClass": { "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", "required": [ @@ -73684,6 +81108,10 @@ "reclaimPolicy": { "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", "type": "string" + }, + "volumeBindingMode": { + "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.", + "type": "string" } }, "x-kubernetes-group-version-kind": [ @@ -74357,7 +81785,7 @@ "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions" }, "propagationPolicy": { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "type": "string" } }, @@ -74447,11 +81875,6 @@ "kind": "DeleteOptions", "version": "v1beta1" }, - { - "group": "federation", - "kind": "DeleteOptions", - "version": "v1beta1" - }, { "group": "imagepolicy.k8s.io", "kind": "DeleteOptions", @@ -74497,6 +81920,11 @@ "kind": "DeleteOptions", "version": "v1" }, + { + "group": "storage.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" + }, { "group": "storage.k8s.io", "kind": "DeleteOptions", @@ -74640,7 +82068,7 @@ "format": "int64" }, "deletionTimestamp": { - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, "finalizers": { @@ -74966,11 +82394,6 @@ "kind": "WatchEvent", "version": "v1beta1" }, - { - "group": "federation", - "kind": "WatchEvent", - "version": "v1beta1" - }, { "group": "imagepolicy.k8s.io", "kind": "WatchEvent", @@ -75016,6 +82439,11 @@ "kind": "WatchEvent", "version": "v1" }, + { + "group": "storage.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" + }, { "group": "storage.k8s.io", "kind": "WatchEvent", @@ -75825,22 +83253,6 @@ "description": "Deprecated. Please use io.k8s.api.core.v1.WeightedPodAffinityTerm instead.", "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" }, - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.AdmissionHookClientConfig": { - "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.AdmissionHookClientConfig instead.", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.AdmissionHookClientConfig" - }, - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ExternalAdmissionHook": { - "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHook instead.", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHook" - }, - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration": { - "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration instead.", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration" - }, - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ExternalAdmissionHookConfigurationList": { - "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfigurationList instead.", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfigurationList" - }, "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Initializer": { "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.Initializer instead.", "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Initializer" @@ -75865,6 +83277,18 @@ "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.ServiceReference instead.", "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ServiceReference" }, + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ValidatingWebhookConfiguration": { + "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration instead.", + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration" + }, + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ValidatingWebhookConfigurationList": { + "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfigurationList instead.", + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfigurationList" + }, + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Webhook": { + "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.Webhook instead.", + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Webhook" + }, "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevision": { "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.ControllerRevision instead.", "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/admissionregistration.k8s.io_v1alpha1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/admissionregistration.k8s.io_v1alpha1.json index c3218e0ff..a2b65c8a9 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/admissionregistration.k8s.io_v1alpha1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/admissionregistration.k8s.io_v1alpha1.json @@ -9,14 +9,14 @@ }, "apis": [ { - "path": "/apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations", + "path": "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations", "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", "operations": [ { - "type": "v1alpha1.ExternalAdmissionHookConfigurationList", + "type": "v1alpha1.InitializerConfigurationList", "method": "GET", - "summary": "list or watch objects of kind ExternalAdmissionHookConfiguration", - "nickname": "listExternalAdmissionHookConfiguration", + "summary": "list or watch objects of kind InitializerConfiguration", + "nickname": "listInitializerConfiguration", "parameters": [ { "type": "string", @@ -95,7 +95,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.ExternalAdmissionHookConfigurationList" + "responseModel": "v1alpha1.InitializerConfigurationList" } ], "produces": [ @@ -110,10 +110,10 @@ ] }, { - "type": "v1alpha1.ExternalAdmissionHookConfiguration", + "type": "v1alpha1.InitializerConfiguration", "method": "POST", - "summary": "create an ExternalAdmissionHookConfiguration", - "nickname": "createExternalAdmissionHookConfiguration", + "summary": "create an InitializerConfiguration", + "nickname": "createInitializerConfiguration", "parameters": [ { "type": "string", @@ -124,7 +124,7 @@ "allowMultiple": false }, { - "type": "v1alpha1.ExternalAdmissionHookConfiguration", + "type": "v1alpha1.InitializerConfiguration", "paramType": "body", "name": "body", "description": "", @@ -136,17 +136,17 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.ExternalAdmissionHookConfiguration" + "responseModel": "v1alpha1.InitializerConfiguration" }, { "code": 201, "message": "Created", - "responseModel": "v1alpha1.ExternalAdmissionHookConfiguration" + "responseModel": "v1alpha1.InitializerConfiguration" }, { "code": 202, "message": "Accepted", - "responseModel": "v1alpha1.ExternalAdmissionHookConfiguration" + "responseModel": "v1alpha1.InitializerConfiguration" } ], "produces": [ @@ -161,8 +161,8 @@ { "type": "v1.Status", "method": "DELETE", - "summary": "delete collection of ExternalAdmissionHookConfiguration", - "nickname": "deletecollectionExternalAdmissionHookConfiguration", + "summary": "delete collection of InitializerConfiguration", + "nickname": "deletecollectionInitializerConfiguration", "parameters": [ { "type": "string", @@ -256,14 +256,14 @@ ] }, { - "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/externaladmissionhookconfigurations", + "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations", "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", "operations": [ { "type": "v1.WatchEvent", "method": "GET", - "summary": "watch individual changes to a list of ExternalAdmissionHookConfiguration", - "nickname": "watchExternalAdmissionHookConfigurationList", + "summary": "watch individual changes to a list of InitializerConfiguration", + "nickname": "watchInitializerConfigurationList", "parameters": [ { "type": "string", @@ -359,14 +359,14 @@ ] }, { - "path": "/apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations/{name}", + "path": "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}", "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", "operations": [ { - "type": "v1alpha1.ExternalAdmissionHookConfiguration", + "type": "v1alpha1.InitializerConfiguration", "method": "GET", - "summary": "read the specified ExternalAdmissionHookConfiguration", - "nickname": "readExternalAdmissionHookConfiguration", + "summary": "read the specified InitializerConfiguration", + "nickname": "readInitializerConfiguration", "parameters": [ { "type": "string", @@ -396,7 +396,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the ExternalAdmissionHookConfiguration", + "description": "name of the InitializerConfiguration", "required": true, "allowMultiple": false } @@ -405,7 +405,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.ExternalAdmissionHookConfiguration" + "responseModel": "v1alpha1.InitializerConfiguration" } ], "produces": [ @@ -418,10 +418,10 @@ ] }, { - "type": "v1alpha1.ExternalAdmissionHookConfiguration", + "type": "v1alpha1.InitializerConfiguration", "method": "PUT", - "summary": "replace the specified ExternalAdmissionHookConfiguration", - "nickname": "replaceExternalAdmissionHookConfiguration", + "summary": "replace the specified InitializerConfiguration", + "nickname": "replaceInitializerConfiguration", "parameters": [ { "type": "string", @@ -432,7 +432,7 @@ "allowMultiple": false }, { - "type": "v1alpha1.ExternalAdmissionHookConfiguration", + "type": "v1alpha1.InitializerConfiguration", "paramType": "body", "name": "body", "description": "", @@ -443,7 +443,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the ExternalAdmissionHookConfiguration", + "description": "name of the InitializerConfiguration", "required": true, "allowMultiple": false } @@ -452,12 +452,12 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.ExternalAdmissionHookConfiguration" + "responseModel": "v1alpha1.InitializerConfiguration" }, { "code": 201, "message": "Created", - "responseModel": "v1alpha1.ExternalAdmissionHookConfiguration" + "responseModel": "v1alpha1.InitializerConfiguration" } ], "produces": [ @@ -470,10 +470,10 @@ ] }, { - "type": "v1alpha1.ExternalAdmissionHookConfiguration", + "type": "v1alpha1.InitializerConfiguration", "method": "PATCH", - "summary": "partially update the specified ExternalAdmissionHookConfiguration", - "nickname": "patchExternalAdmissionHookConfiguration", + "summary": "partially update the specified InitializerConfiguration", + "nickname": "patchInitializerConfiguration", "parameters": [ { "type": "string", @@ -495,7 +495,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the ExternalAdmissionHookConfiguration", + "description": "name of the InitializerConfiguration", "required": true, "allowMultiple": false } @@ -504,7 +504,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.ExternalAdmissionHookConfiguration" + "responseModel": "v1alpha1.InitializerConfiguration" } ], "produces": [ @@ -521,8 +521,8 @@ { "type": "v1.Status", "method": "DELETE", - "summary": "delete an ExternalAdmissionHookConfiguration", - "nickname": "deleteExternalAdmissionHookConfiguration", + "summary": "delete an InitializerConfiguration", + "nickname": "deleteInitializerConfiguration", "parameters": [ { "type": "string", @@ -560,7 +560,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -568,7 +568,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the ExternalAdmissionHookConfiguration", + "description": "name of the InitializerConfiguration", "required": true, "allowMultiple": false } @@ -592,14 +592,14 @@ ] }, { - "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/externaladmissionhookconfigurations/{name}", + "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations/{name}", "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", "operations": [ { "type": "v1.WatchEvent", "method": "GET", - "summary": "watch changes to an object of kind ExternalAdmissionHookConfiguration", - "nickname": "watchExternalAdmissionHookConfiguration", + "summary": "watch changes to an object of kind InitializerConfiguration", + "nickname": "watchInitializerConfiguration", "parameters": [ { "type": "string", @@ -677,7 +677,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the ExternalAdmissionHookConfiguration", + "description": "name of the InitializerConfiguration", "required": true, "allowMultiple": false } @@ -703,14 +703,14 @@ ] }, { - "path": "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations", + "path": "/apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations", "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", "operations": [ { - "type": "v1alpha1.InitializerConfigurationList", + "type": "v1alpha1.MutatingWebhookConfigurationList", "method": "GET", - "summary": "list or watch objects of kind InitializerConfiguration", - "nickname": "listInitializerConfiguration", + "summary": "list or watch objects of kind MutatingWebhookConfiguration", + "nickname": "listMutatingWebhookConfiguration", "parameters": [ { "type": "string", @@ -789,7 +789,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.InitializerConfigurationList" + "responseModel": "v1alpha1.MutatingWebhookConfigurationList" } ], "produces": [ @@ -804,10 +804,10 @@ ] }, { - "type": "v1alpha1.InitializerConfiguration", + "type": "v1alpha1.MutatingWebhookConfiguration", "method": "POST", - "summary": "create an InitializerConfiguration", - "nickname": "createInitializerConfiguration", + "summary": "create a MutatingWebhookConfiguration", + "nickname": "createMutatingWebhookConfiguration", "parameters": [ { "type": "string", @@ -818,7 +818,7 @@ "allowMultiple": false }, { - "type": "v1alpha1.InitializerConfiguration", + "type": "v1alpha1.MutatingWebhookConfiguration", "paramType": "body", "name": "body", "description": "", @@ -830,17 +830,17 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.InitializerConfiguration" + "responseModel": "v1alpha1.MutatingWebhookConfiguration" }, { "code": 201, "message": "Created", - "responseModel": "v1alpha1.InitializerConfiguration" + "responseModel": "v1alpha1.MutatingWebhookConfiguration" }, { "code": 202, "message": "Accepted", - "responseModel": "v1alpha1.InitializerConfiguration" + "responseModel": "v1alpha1.MutatingWebhookConfiguration" } ], "produces": [ @@ -855,8 +855,8 @@ { "type": "v1.Status", "method": "DELETE", - "summary": "delete collection of InitializerConfiguration", - "nickname": "deletecollectionInitializerConfiguration", + "summary": "delete collection of MutatingWebhookConfiguration", + "nickname": "deletecollectionMutatingWebhookConfiguration", "parameters": [ { "type": "string", @@ -950,14 +950,14 @@ ] }, { - "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations", + "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/mutatingwebhookconfigurations", "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", "operations": [ { "type": "v1.WatchEvent", "method": "GET", - "summary": "watch individual changes to a list of InitializerConfiguration", - "nickname": "watchInitializerConfigurationList", + "summary": "watch individual changes to a list of MutatingWebhookConfiguration", + "nickname": "watchMutatingWebhookConfigurationList", "parameters": [ { "type": "string", @@ -1053,14 +1053,14 @@ ] }, { - "path": "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}", + "path": "/apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations/{name}", "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", "operations": [ { - "type": "v1alpha1.InitializerConfiguration", + "type": "v1alpha1.MutatingWebhookConfiguration", "method": "GET", - "summary": "read the specified InitializerConfiguration", - "nickname": "readInitializerConfiguration", + "summary": "read the specified MutatingWebhookConfiguration", + "nickname": "readMutatingWebhookConfiguration", "parameters": [ { "type": "string", @@ -1090,7 +1090,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the InitializerConfiguration", + "description": "name of the MutatingWebhookConfiguration", "required": true, "allowMultiple": false } @@ -1099,7 +1099,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.InitializerConfiguration" + "responseModel": "v1alpha1.MutatingWebhookConfiguration" } ], "produces": [ @@ -1112,10 +1112,10 @@ ] }, { - "type": "v1alpha1.InitializerConfiguration", + "type": "v1alpha1.MutatingWebhookConfiguration", "method": "PUT", - "summary": "replace the specified InitializerConfiguration", - "nickname": "replaceInitializerConfiguration", + "summary": "replace the specified MutatingWebhookConfiguration", + "nickname": "replaceMutatingWebhookConfiguration", "parameters": [ { "type": "string", @@ -1126,7 +1126,7 @@ "allowMultiple": false }, { - "type": "v1alpha1.InitializerConfiguration", + "type": "v1alpha1.MutatingWebhookConfiguration", "paramType": "body", "name": "body", "description": "", @@ -1137,7 +1137,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the InitializerConfiguration", + "description": "name of the MutatingWebhookConfiguration", "required": true, "allowMultiple": false } @@ -1146,12 +1146,12 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.InitializerConfiguration" + "responseModel": "v1alpha1.MutatingWebhookConfiguration" }, { "code": 201, "message": "Created", - "responseModel": "v1alpha1.InitializerConfiguration" + "responseModel": "v1alpha1.MutatingWebhookConfiguration" } ], "produces": [ @@ -1164,10 +1164,10 @@ ] }, { - "type": "v1alpha1.InitializerConfiguration", + "type": "v1alpha1.MutatingWebhookConfiguration", "method": "PATCH", - "summary": "partially update the specified InitializerConfiguration", - "nickname": "patchInitializerConfiguration", + "summary": "partially update the specified MutatingWebhookConfiguration", + "nickname": "patchMutatingWebhookConfiguration", "parameters": [ { "type": "string", @@ -1189,7 +1189,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the InitializerConfiguration", + "description": "name of the MutatingWebhookConfiguration", "required": true, "allowMultiple": false } @@ -1198,7 +1198,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1alpha1.InitializerConfiguration" + "responseModel": "v1alpha1.MutatingWebhookConfiguration" } ], "produces": [ @@ -1215,8 +1215,8 @@ { "type": "v1.Status", "method": "DELETE", - "summary": "delete an InitializerConfiguration", - "nickname": "deleteInitializerConfiguration", + "summary": "delete a MutatingWebhookConfiguration", + "nickname": "deleteMutatingWebhookConfiguration", "parameters": [ { "type": "string", @@ -1254,7 +1254,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1262,7 +1262,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the InitializerConfiguration", + "description": "name of the MutatingWebhookConfiguration", "required": true, "allowMultiple": false } @@ -1286,14 +1286,14 @@ ] }, { - "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations/{name}", + "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/mutatingwebhookconfigurations/{name}", "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", "operations": [ { "type": "v1.WatchEvent", "method": "GET", - "summary": "watch changes to an object of kind InitializerConfiguration", - "nickname": "watchInitializerConfiguration", + "summary": "watch changes to an object of kind MutatingWebhookConfiguration", + "nickname": "watchMutatingWebhookConfiguration", "parameters": [ { "type": "string", @@ -1371,7 +1371,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the InitializerConfiguration", + "description": "name of the MutatingWebhookConfiguration", "required": true, "allowMultiple": false } @@ -1397,79 +1397,773 @@ ] }, { - "path": "/apis/admissionregistration.k8s.io/v1alpha1", + "path": "/apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations", "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", "operations": [ { - "type": "v1.APIResourceList", + "type": "v1alpha1.ValidatingWebhookConfigurationList", "method": "GET", - "summary": "get available resources", - "nickname": "getAPIResources", - "parameters": [], + "summary": "list or watch objects of kind ValidatingWebhookConfiguration", + "nickname": "listValidatingWebhookConfiguration", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1alpha1.ValidatingWebhookConfigurationList" + } + ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "consumes": [ + "*/*" + ] + }, + { + "type": "v1alpha1.ValidatingWebhookConfiguration", + "method": "POST", + "summary": "create a ValidatingWebhookConfiguration", + "nickname": "createValidatingWebhookConfiguration", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1alpha1.ValidatingWebhookConfiguration", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1alpha1.ValidatingWebhookConfiguration" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1alpha1.ValidatingWebhookConfiguration" + }, + { + "code": 202, + "message": "Accepted", + "responseModel": "v1alpha1.ValidatingWebhookConfiguration" + } + ], + "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" ] - } - ] - } - ], - "models": { - "v1alpha1.ExternalAdmissionHookConfigurationList": { - "id": "v1alpha1.ExternalAdmissionHookConfigurationList", - "description": "ExternalAdmissionHookConfigurationList is a list of ExternalAdmissionHookConfiguration.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1alpha1.ExternalAdmissionHookConfiguration" - }, - "description": "List of ExternalAdmissionHookConfiguration." - } - } - }, - "v1.ListMeta": { - "id": "v1.ListMeta", - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "selfLink": { - "type": "string", - "description": "selfLink is a URL representing this object. Populated by the system. Read-only." }, - "resourceVersion": { - "type": "string", - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "continue": { - "type": "string", - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response." - } + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete collection of ValidatingWebhookConfiguration", + "nickname": "deletecollectionValidatingWebhookConfiguration", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/validatingwebhookconfigurations", + "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of ValidatingWebhookConfiguration", + "nickname": "watchValidatingWebhookConfigurationList", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations/{name}", + "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", + "operations": [ + { + "type": "v1alpha1.ValidatingWebhookConfiguration", + "method": "GET", + "summary": "read the specified ValidatingWebhookConfiguration", + "nickname": "readValidatingWebhookConfiguration", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "export", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "exact", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ValidatingWebhookConfiguration", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1alpha1.ValidatingWebhookConfiguration" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1alpha1.ValidatingWebhookConfiguration", + "method": "PUT", + "summary": "replace the specified ValidatingWebhookConfiguration", + "nickname": "replaceValidatingWebhookConfiguration", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1alpha1.ValidatingWebhookConfiguration", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ValidatingWebhookConfiguration", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1alpha1.ValidatingWebhookConfiguration" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1alpha1.ValidatingWebhookConfiguration" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1alpha1.ValidatingWebhookConfiguration", + "method": "PATCH", + "summary": "partially update the specified ValidatingWebhookConfiguration", + "nickname": "patchValidatingWebhookConfiguration", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ValidatingWebhookConfiguration", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1alpha1.ValidatingWebhookConfiguration" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete a ValidatingWebhookConfiguration", + "nickname": "deleteValidatingWebhookConfiguration", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "gracePeriodSeconds", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "orphanDependents", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "propagationPolicy", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ValidatingWebhookConfiguration", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/admissionregistration.k8s.io/v1alpha1/watch/validatingwebhookconfigurations/{name}", + "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch changes to an object of kind ValidatingWebhookConfiguration", + "nickname": "watchValidatingWebhookConfiguration", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ValidatingWebhookConfiguration", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/admissionregistration.k8s.io/v1alpha1", + "description": "API at /apis/admissionregistration.k8s.io/v1alpha1", + "operations": [ + { + "type": "v1.APIResourceList", + "method": "GET", + "summary": "get available resources", + "nickname": "getAPIResources", + "parameters": [], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ] + } + ] + } + ], + "models": { + "v1alpha1.InitializerConfigurationList": { + "id": "v1alpha1.InitializerConfigurationList", + "description": "InitializerConfigurationList is a list of InitializerConfiguration.", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1alpha1.InitializerConfiguration" + }, + "description": "List of InitializerConfiguration." + } + } + }, + "v1.ListMeta": { + "id": "v1.ListMeta", + "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", + "properties": { + "selfLink": { + "type": "string", + "description": "selfLink is a URL representing this object. Populated by the system. Read-only." + }, + "resourceVersion": { + "type": "string", + "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" + }, + "continue": { + "type": "string", + "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response." + } } }, - "v1alpha1.ExternalAdmissionHookConfiguration": { - "id": "v1alpha1.ExternalAdmissionHookConfiguration", - "description": "ExternalAdmissionHookConfiguration describes the configuration of initializers.", + "v1alpha1.InitializerConfiguration": { + "id": "v1alpha1.InitializerConfiguration", + "description": "InitializerConfiguration describes the configuration of initializers.", "properties": { "kind": { "type": "string", @@ -1483,12 +2177,12 @@ "$ref": "v1.ObjectMeta", "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata." }, - "externalAdmissionHooks": { + "initializers": { "type": "array", "items": { - "$ref": "v1alpha1.ExternalAdmissionHook" + "$ref": "v1alpha1.Initializer" }, - "description": "ExternalAdmissionHooks is a list of external admission webhooks and the affected resources and operations." + "description": "Initializers is a list of resources and their default initializers Order-sensitive. When merging multiple InitializerConfigurations, we sort the initializers from different InitializerConfigurations by the name of the InitializerConfigurations; the order of the initializers from the same InitializerConfiguration is preserved." } } }, @@ -1531,7 +2225,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1730,82 +2424,30 @@ } } }, - "v1alpha1.ExternalAdmissionHook": { - "id": "v1alpha1.ExternalAdmissionHook", - "description": "ExternalAdmissionHook describes an external admission webhook and the resources and operations it applies to.", + "v1alpha1.Initializer": { + "id": "v1alpha1.Initializer", + "description": "Initializer describes the name and the failure policy of an initializer, and what resources it applies to.", "required": [ - "name", - "clientConfig" + "name" ], "properties": { "name": { "type": "string", - "description": "The name of the external admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required." - }, - "clientConfig": { - "$ref": "v1alpha1.AdmissionHookClientConfig", - "description": "ClientConfig defines how to communicate with the hook. Required" + "description": "Name is the identifier of the initializer. It will be added to the object that needs to be initialized. Name should be fully qualified, e.g., alwayspullimages.kubernetes.io, where \"alwayspullimages\" is the name of the webhook, and kubernetes.io is the name of the organization. Required" }, "rules": { "type": "array", "items": { - "$ref": "v1alpha1.RuleWithOperations" + "$ref": "v1alpha1.Rule" }, - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule." - }, - "failurePolicy": { - "$ref": "v1alpha1.FailurePolicyType", - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore." - } - } - }, - "v1alpha1.AdmissionHookClientConfig": { - "id": "v1alpha1.AdmissionHookClientConfig", - "description": "AdmissionHookClientConfig contains the information to make a TLS connection with the webhook", - "required": [ - "service", - "caBundle" - ], - "properties": { - "service": { - "$ref": "v1alpha1.ServiceReference", - "description": "Service is a reference to the service for this webhook. If there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error. Required" - }, - "caBundle": { - "type": "string", - "description": "CABundle is a PEM encoded CA bundle which will be used to validate webhook's server certificate. Required" - } - } - }, - "v1alpha1.ServiceReference": { - "id": "v1alpha1.ServiceReference", - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "required": [ - "namespace", - "name" - ], - "properties": { - "namespace": { - "type": "string", - "description": "Namespace is the namespace of the service Required" - }, - "name": { - "type": "string", - "description": "Name is the name of the service Required" + "description": "Rules describes what resources/subresources the initializer cares about. The initializer cares about an operation if it matches _any_ Rule. Rule.Resources must not include subresources." } } }, - "v1alpha1.RuleWithOperations": { - "id": "v1alpha1.RuleWithOperations", - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", + "v1alpha1.Rule": { + "id": "v1alpha1.Rule", + "description": "Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.", "properties": { - "operations": { - "type": "array", - "items": { - "$ref": "v1alpha1.OperationType" - }, - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required." - }, "apiGroups": { "type": "array", "items": { @@ -1829,14 +2471,6 @@ } } }, - "v1alpha1.OperationType": { - "id": "v1alpha1.OperationType", - "properties": {} - }, - "v1alpha1.FailurePolicyType": { - "id": "v1alpha1.FailurePolicyType", - "properties": {} - }, "v1.WatchEvent": { "id": "v1.WatchEvent", "required": [ @@ -1884,7 +2518,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, @@ -1906,9 +2540,9 @@ "id": "v1.DeletionPropagation", "properties": {} }, - "v1alpha1.InitializerConfigurationList": { - "id": "v1alpha1.InitializerConfigurationList", - "description": "InitializerConfigurationList is a list of InitializerConfiguration.", + "v1alpha1.MutatingWebhookConfigurationList": { + "id": "v1alpha1.MutatingWebhookConfigurationList", + "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", "required": [ "items" ], @@ -1928,15 +2562,15 @@ "items": { "type": "array", "items": { - "$ref": "v1alpha1.InitializerConfiguration" + "$ref": "v1alpha1.MutatingWebhookConfiguration" }, - "description": "List of InitializerConfiguration." + "description": "List of MutatingWebhookConfiguration." } } }, - "v1alpha1.InitializerConfiguration": { - "id": "v1alpha1.InitializerConfiguration", - "description": "InitializerConfiguration describes the configuration of initializers.", + "v1alpha1.MutatingWebhookConfiguration": { + "id": "v1alpha1.MutatingWebhookConfiguration", + "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", "properties": { "kind": { "type": "string", @@ -1950,39 +2584,103 @@ "$ref": "v1.ObjectMeta", "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata." }, - "initializers": { + "webhooks": { "type": "array", "items": { - "$ref": "v1alpha1.Initializer" + "$ref": "v1alpha1.Webhook" }, - "description": "Initializers is a list of resources and their default initializers Order-sensitive. When merging multiple InitializerConfigurations, we sort the initializers from different InitializerConfigurations by the name of the InitializerConfigurations; the order of the initializers from the same InitializerConfiguration is preserved." + "description": "Webhooks is a list of webhooks and the affected resources and operations." } } }, - "v1alpha1.Initializer": { - "id": "v1alpha1.Initializer", - "description": "Initializer describes the name and the failure policy of an initializer, and what resources it applies to.", + "v1alpha1.Webhook": { + "id": "v1alpha1.Webhook", + "description": "Webhook describes an admission webhook and the resources and operations it applies to.", "required": [ - "name" + "name", + "clientConfig" ], "properties": { "name": { "type": "string", - "description": "Name is the identifier of the initializer. It will be added to the object that needs to be initialized. Name should be fully qualified, e.g., alwayspullimages.kubernetes.io, where \"alwayspullimages\" is the name of the webhook, and kubernetes.io is the name of the organization. Required" + "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required." + }, + "clientConfig": { + "$ref": "v1alpha1.WebhookClientConfig", + "description": "ClientConfig defines how to communicate with the hook. Required" }, "rules": { "type": "array", "items": { - "$ref": "v1alpha1.Rule" + "$ref": "v1alpha1.RuleWithOperations" }, - "description": "Rules describes what resources/subresources the initializer cares about. The initializer cares about an operation if it matches _any_ Rule. Rule.Resources must not include subresources." + "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule." + }, + "failurePolicy": { + "$ref": "v1alpha1.FailurePolicyType", + "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore." + }, + "namespaceSelector": { + "$ref": "v1.LabelSelector", + "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is other cluster scoped resource, it is not subjected to the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." } } }, - "v1alpha1.Rule": { - "id": "v1alpha1.Rule", - "description": "Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.", + "v1alpha1.WebhookClientConfig": { + "id": "v1alpha1.WebhookClientConfig", + "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", + "required": [ + "service", + "caBundle" + ], + "properties": { + "url": { + "type": "string", + "description": "`url` gives the location of the webhook, in standard URL form (`[scheme://]host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either." + }, + "service": { + "$ref": "v1alpha1.ServiceReference", + "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.\n\nIf there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error." + }, + "caBundle": { + "type": "string", + "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. Required." + } + } + }, + "v1alpha1.ServiceReference": { + "id": "v1alpha1.ServiceReference", + "description": "ServiceReference holds a reference to Service.legacy.k8s.io", + "required": [ + "namespace", + "name" + ], + "properties": { + "namespace": { + "type": "string", + "description": "`namespace` is the namespace of the service. Required" + }, + "name": { + "type": "string", + "description": "`name` is the name of the service. Required" + }, + "path": { + "type": "string", + "description": "`path` is an optional URL path which will be sent in any request to this service." + } + } + }, + "v1alpha1.RuleWithOperations": { + "id": "v1alpha1.RuleWithOperations", + "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", "properties": { + "operations": { + "type": "array", + "items": { + "$ref": "v1alpha1.OperationType" + }, + "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required." + }, "apiGroups": { "type": "array", "items": { @@ -2006,6 +2704,109 @@ } } }, + "v1alpha1.OperationType": { + "id": "v1alpha1.OperationType", + "properties": {} + }, + "v1alpha1.FailurePolicyType": { + "id": "v1alpha1.FailurePolicyType", + "properties": {} + }, + "v1.LabelSelector": { + "id": "v1.LabelSelector", + "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + "properties": { + "matchLabels": { + "type": "object", + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." + }, + "matchExpressions": { + "type": "array", + "items": { + "$ref": "v1.LabelSelectorRequirement" + }, + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." + } + } + }, + "v1.LabelSelectorRequirement": { + "id": "v1.LabelSelectorRequirement", + "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "required": [ + "key", + "operator" + ], + "properties": { + "key": { + "type": "string", + "description": "key is the label key that the selector applies to." + }, + "operator": { + "type": "string", + "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." + } + } + }, + "v1alpha1.ValidatingWebhookConfigurationList": { + "id": "v1alpha1.ValidatingWebhookConfigurationList", + "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1alpha1.ValidatingWebhookConfiguration" + }, + "description": "List of ValidatingWebhookConfiguration." + } + } + }, + "v1alpha1.ValidatingWebhookConfiguration": { + "id": "v1alpha1.ValidatingWebhookConfiguration", + "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata." + }, + "webhooks": { + "type": "array", + "items": { + "$ref": "v1alpha1.Webhook" + }, + "description": "Webhooks is a list of webhooks and the affected resources and operations." + } + } + }, "v1.APIResourceList": { "id": "v1.APIResourceList", "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1.json index 62e905572..1c5680023 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1.json @@ -9,14 +9,14 @@ }, "apis": [ { - "path": "/apis/apps/v1/namespaces/{namespace}/daemonsets", + "path": "/apis/apps/v1/namespaces/{namespace}/controllerrevisions", "description": "API at /apis/apps/v1", "operations": [ { - "type": "v1.DaemonSetList", + "type": "v1.ControllerRevisionList", "method": "GET", - "summary": "list or watch objects of kind DaemonSet", - "nickname": "listNamespacedDaemonSet", + "summary": "list or watch objects of kind ControllerRevision", + "nickname": "listNamespacedControllerRevision", "parameters": [ { "type": "string", @@ -103,7 +103,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1.DaemonSetList" + "responseModel": "v1.ControllerRevisionList" } ], "produces": [ @@ -118,10 +118,10 @@ ] }, { - "type": "v1.DaemonSet", + "type": "v1.ControllerRevision", "method": "POST", - "summary": "create a DaemonSet", - "nickname": "createNamespacedDaemonSet", + "summary": "create a ControllerRevision", + "nickname": "createNamespacedControllerRevision", "parameters": [ { "type": "string", @@ -132,7 +132,7 @@ "allowMultiple": false }, { - "type": "v1.DaemonSet", + "type": "v1.ControllerRevision", "paramType": "body", "name": "body", "description": "", @@ -152,17 +152,17 @@ { "code": 200, "message": "OK", - "responseModel": "v1.DaemonSet" + "responseModel": "v1.ControllerRevision" }, { "code": 201, "message": "Created", - "responseModel": "v1.DaemonSet" + "responseModel": "v1.ControllerRevision" }, { "code": 202, "message": "Accepted", - "responseModel": "v1.DaemonSet" + "responseModel": "v1.ControllerRevision" } ], "produces": [ @@ -177,8 +177,8 @@ { "type": "v1.Status", "method": "DELETE", - "summary": "delete collection of DaemonSet", - "nickname": "deletecollectionNamespacedDaemonSet", + "summary": "delete collection of ControllerRevision", + "nickname": "deletecollectionNamespacedControllerRevision", "parameters": [ { "type": "string", @@ -280,14 +280,14 @@ ] }, { - "path": "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets", + "path": "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions", "description": "API at /apis/apps/v1", "operations": [ { "type": "v1.WatchEvent", "method": "GET", - "summary": "watch individual changes to a list of DaemonSet", - "nickname": "watchNamespacedDaemonSetList", + "summary": "watch individual changes to a list of ControllerRevision", + "nickname": "watchNamespacedControllerRevisionList", "parameters": [ { "type": "string", @@ -391,14 +391,14 @@ ] }, { - "path": "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}", + "path": "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}", "description": "API at /apis/apps/v1", "operations": [ { - "type": "v1.DaemonSet", + "type": "v1.ControllerRevision", "method": "GET", - "summary": "read the specified DaemonSet", - "nickname": "readNamespacedDaemonSet", + "summary": "read the specified ControllerRevision", + "nickname": "readNamespacedControllerRevision", "parameters": [ { "type": "string", @@ -436,7 +436,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the DaemonSet", + "description": "name of the ControllerRevision", "required": true, "allowMultiple": false } @@ -445,7 +445,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1.DaemonSet" + "responseModel": "v1.ControllerRevision" } ], "produces": [ @@ -458,10 +458,10 @@ ] }, { - "type": "v1.DaemonSet", + "type": "v1.ControllerRevision", "method": "PUT", - "summary": "replace the specified DaemonSet", - "nickname": "replaceNamespacedDaemonSet", + "summary": "replace the specified ControllerRevision", + "nickname": "replaceNamespacedControllerRevision", "parameters": [ { "type": "string", @@ -472,7 +472,7 @@ "allowMultiple": false }, { - "type": "v1.DaemonSet", + "type": "v1.ControllerRevision", "paramType": "body", "name": "body", "description": "", @@ -491,7 +491,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the DaemonSet", + "description": "name of the ControllerRevision", "required": true, "allowMultiple": false } @@ -500,12 +500,12 @@ { "code": 200, "message": "OK", - "responseModel": "v1.DaemonSet" + "responseModel": "v1.ControllerRevision" }, { "code": 201, "message": "Created", - "responseModel": "v1.DaemonSet" + "responseModel": "v1.ControllerRevision" } ], "produces": [ @@ -518,10 +518,10 @@ ] }, { - "type": "v1.DaemonSet", + "type": "v1.ControllerRevision", "method": "PATCH", - "summary": "partially update the specified DaemonSet", - "nickname": "patchNamespacedDaemonSet", + "summary": "partially update the specified ControllerRevision", + "nickname": "patchNamespacedControllerRevision", "parameters": [ { "type": "string", @@ -551,7 +551,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the DaemonSet", + "description": "name of the ControllerRevision", "required": true, "allowMultiple": false } @@ -560,7 +560,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1.DaemonSet" + "responseModel": "v1.ControllerRevision" } ], "produces": [ @@ -577,8 +577,8 @@ { "type": "v1.Status", "method": "DELETE", - "summary": "delete a DaemonSet", - "nickname": "deleteNamespacedDaemonSet", + "summary": "delete a ControllerRevision", + "nickname": "deleteNamespacedControllerRevision", "parameters": [ { "type": "string", @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -632,7 +632,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the DaemonSet", + "description": "name of the ControllerRevision", "required": true, "allowMultiple": false } @@ -656,14 +656,14 @@ ] }, { - "path": "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}", + "path": "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}", "description": "API at /apis/apps/v1", "operations": [ { "type": "v1.WatchEvent", "method": "GET", - "summary": "watch changes to an object of kind DaemonSet", - "nickname": "watchNamespacedDaemonSet", + "summary": "watch changes to an object of kind ControllerRevision", + "nickname": "watchNamespacedControllerRevision", "parameters": [ { "type": "string", @@ -749,7 +749,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the DaemonSet", + "description": "name of the ControllerRevision", "required": true, "allowMultiple": false } @@ -775,14 +775,14 @@ ] }, { - "path": "/apis/apps/v1/daemonsets", + "path": "/apis/apps/v1/controllerrevisions", "description": "API at /apis/apps/v1", "operations": [ { - "type": "v1.DaemonSetList", + "type": "v1.ControllerRevisionList", "method": "GET", - "summary": "list or watch objects of kind DaemonSet", - "nickname": "listDaemonSetForAllNamespaces", + "summary": "list or watch objects of kind ControllerRevision", + "nickname": "listControllerRevisionForAllNamespaces", "parameters": [ { "type": "string", @@ -861,7 +861,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1.DaemonSetList" + "responseModel": "v1.ControllerRevisionList" } ], "produces": [ @@ -878,14 +878,14 @@ ] }, { - "path": "/apis/apps/v1/watch/daemonsets", + "path": "/apis/apps/v1/watch/controllerrevisions", "description": "API at /apis/apps/v1", "operations": [ { "type": "v1.WatchEvent", "method": "GET", - "summary": "watch individual changes to a list of DaemonSet", - "nickname": "watchDaemonSetListForAllNamespaces", + "summary": "watch individual changes to a list of ControllerRevision", + "nickname": "watchControllerRevisionListForAllNamespaces", "parameters": [ { "type": "string", @@ -981,14 +981,14 @@ ] }, { - "path": "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status", + "path": "/apis/apps/v1/namespaces/{namespace}/daemonsets", "description": "API at /apis/apps/v1", "operations": [ { - "type": "v1.DaemonSet", + "type": "v1.DaemonSetList", "method": "GET", - "summary": "read status of the specified DaemonSet", - "nickname": "readNamespacedDaemonSetStatus", + "summary": "list or watch objects of kind DaemonSet", + "nickname": "listNamespacedDaemonSet", "parameters": [ { "type": "string", @@ -1000,17 +1000,73 @@ }, { "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false } @@ -1019,13 +1075,15 @@ { "code": 200, "message": "OK", - "responseModel": "v1.DaemonSet" + "responseModel": "v1.DaemonSetList" } ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "consumes": [ "*/*" @@ -1033,9 +1091,9 @@ }, { "type": "v1.DaemonSet", - "method": "PUT", - "summary": "replace status of the specified DaemonSet", - "nickname": "replaceNamespacedDaemonSetStatus", + "method": "POST", + "summary": "create a DaemonSet", + "nickname": "createNamespacedDaemonSet", "parameters": [ { "type": "string", @@ -1060,14 +1118,6 @@ "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false } ], "responseMessages": [ @@ -1080,6 +1130,11 @@ "code": 201, "message": "Created", "responseModel": "v1.DaemonSet" + }, + { + "code": 202, + "message": "Accepted", + "responseModel": "v1.DaemonSet" } ], "produces": [ @@ -1092,10 +1147,10 @@ ] }, { - "type": "v1.DaemonSet", - "method": "PATCH", - "summary": "partially update status of the specified DaemonSet", - "nickname": "patchNamespacedDaemonSetStatus", + "type": "v1.Status", + "method": "DELETE", + "summary": "delete collection of DaemonSet", + "nickname": "deletecollectionNamespacedDaemonSet", "parameters": [ { "type": "string", @@ -1106,26 +1161,74 @@ "allowMultiple": false }, { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, "allowMultiple": false }, { "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, "allowMultiple": false }, { "type": "string", "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", "required": true, "allowMultiple": false } @@ -1134,7 +1237,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1.DaemonSet" + "responseModel": "v1.Status" } ], "produces": [ @@ -1143,801 +1246,6374 @@ "application/vnd.kubernetes.protobuf" ], "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" + "*/*" ] } ] }, { - "path": "/apis/apps/v1", + "path": "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets", "description": "API at /apis/apps/v1", "operations": [ { - "type": "v1.APIResourceList", + "type": "v1.WatchEvent", "method": "GET", - "summary": "get available resources", - "nickname": "getAPIResources", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], + "summary": "watch individual changes to a list of DaemonSet", + "nickname": "watchNamespacedDaemonSetList", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.DaemonSet", + "method": "GET", + "summary": "read the specified DaemonSet", + "nickname": "readNamespacedDaemonSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "export", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "exact", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the DaemonSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.DaemonSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.DaemonSet", + "method": "PUT", + "summary": "replace the specified DaemonSet", + "nickname": "replaceNamespacedDaemonSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DaemonSet", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the DaemonSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.DaemonSet" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.DaemonSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.DaemonSet", + "method": "PATCH", + "summary": "partially update the specified DaemonSet", + "nickname": "patchNamespacedDaemonSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the DaemonSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.DaemonSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete a DaemonSet", + "nickname": "deleteNamespacedDaemonSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "gracePeriodSeconds", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "orphanDependents", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "propagationPolicy", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the DaemonSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch changes to an object of kind DaemonSet", + "nickname": "watchNamespacedDaemonSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the DaemonSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/daemonsets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.DaemonSetList", + "method": "GET", + "summary": "list or watch objects of kind DaemonSet", + "nickname": "listDaemonSetForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.DaemonSetList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/daemonsets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of DaemonSet", + "nickname": "watchDaemonSetListForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.DaemonSet", + "method": "GET", + "summary": "read status of the specified DaemonSet", + "nickname": "readNamespacedDaemonSetStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the DaemonSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.DaemonSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.DaemonSet", + "method": "PUT", + "summary": "replace status of the specified DaemonSet", + "nickname": "replaceNamespacedDaemonSetStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DaemonSet", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the DaemonSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.DaemonSet" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.DaemonSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.DaemonSet", + "method": "PATCH", + "summary": "partially update status of the specified DaemonSet", + "nickname": "patchNamespacedDaemonSetStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the DaemonSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.DaemonSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/deployments", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.DeploymentList", + "method": "GET", + "summary": "list or watch objects of kind Deployment", + "nickname": "listNamespacedDeployment", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.DeploymentList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Deployment", + "method": "POST", + "summary": "create a Deployment", + "nickname": "createNamespacedDeployment", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Deployment", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Deployment" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.Deployment" + }, + { + "code": 202, + "message": "Accepted", + "responseModel": "v1.Deployment" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete collection of Deployment", + "nickname": "deletecollectionNamespacedDeployment", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/namespaces/{namespace}/deployments", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of Deployment", + "nickname": "watchNamespacedDeploymentList", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/deployments/{name}", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.Deployment", + "method": "GET", + "summary": "read the specified Deployment", + "nickname": "readNamespacedDeployment", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "export", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "exact", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Deployment", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Deployment" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Deployment", + "method": "PUT", + "summary": "replace the specified Deployment", + "nickname": "replaceNamespacedDeployment", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Deployment", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Deployment", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Deployment" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.Deployment" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Deployment", + "method": "PATCH", + "summary": "partially update the specified Deployment", + "nickname": "patchNamespacedDeployment", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Deployment", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Deployment" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete a Deployment", + "nickname": "deleteNamespacedDeployment", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "gracePeriodSeconds", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "orphanDependents", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "propagationPolicy", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Deployment", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch changes to an object of kind Deployment", + "nickname": "watchNamespacedDeployment", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Deployment", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/deployments", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.DeploymentList", + "method": "GET", + "summary": "list or watch objects of kind Deployment", + "nickname": "listDeploymentForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.DeploymentList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/deployments", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of Deployment", + "nickname": "watchDeploymentListForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.Scale", + "method": "GET", + "summary": "read scale of the specified Deployment", + "nickname": "readNamespacedDeploymentScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Scale", + "method": "PUT", + "summary": "replace scale of the specified Deployment", + "nickname": "replaceNamespacedDeploymentScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Scale", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Scale" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Scale", + "method": "PATCH", + "summary": "partially update scale of the specified Deployment", + "nickname": "patchNamespacedDeploymentScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.Deployment", + "method": "GET", + "summary": "read status of the specified Deployment", + "nickname": "readNamespacedDeploymentStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Deployment", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Deployment" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Deployment", + "method": "PUT", + "summary": "replace status of the specified Deployment", + "nickname": "replaceNamespacedDeploymentStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Deployment", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Deployment", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Deployment" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.Deployment" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Deployment", + "method": "PATCH", + "summary": "partially update status of the specified Deployment", + "nickname": "patchNamespacedDeploymentStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Deployment", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Deployment" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/replicasets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.ReplicaSetList", + "method": "GET", + "summary": "list or watch objects of kind ReplicaSet", + "nickname": "listNamespacedReplicaSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ReplicaSetList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ReplicaSet", + "method": "POST", + "summary": "create a ReplicaSet", + "nickname": "createNamespacedReplicaSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.ReplicaSet", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ReplicaSet" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.ReplicaSet" + }, + { + "code": 202, + "message": "Accepted", + "responseModel": "v1.ReplicaSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete collection of ReplicaSet", + "nickname": "deletecollectionNamespacedReplicaSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/namespaces/{namespace}/replicasets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of ReplicaSet", + "nickname": "watchNamespacedReplicaSetList", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.ReplicaSet", + "method": "GET", + "summary": "read the specified ReplicaSet", + "nickname": "readNamespacedReplicaSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "export", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "exact", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicaSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ReplicaSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ReplicaSet", + "method": "PUT", + "summary": "replace the specified ReplicaSet", + "nickname": "replaceNamespacedReplicaSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.ReplicaSet", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicaSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ReplicaSet" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.ReplicaSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ReplicaSet", + "method": "PATCH", + "summary": "partially update the specified ReplicaSet", + "nickname": "patchNamespacedReplicaSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicaSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ReplicaSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete a ReplicaSet", + "nickname": "deleteNamespacedReplicaSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "gracePeriodSeconds", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "orphanDependents", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "propagationPolicy", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicaSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch changes to an object of kind ReplicaSet", + "nickname": "watchNamespacedReplicaSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicaSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/replicasets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.ReplicaSetList", + "method": "GET", + "summary": "list or watch objects of kind ReplicaSet", + "nickname": "listReplicaSetForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ReplicaSetList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/replicasets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of ReplicaSet", + "nickname": "watchReplicaSetListForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.Scale", + "method": "GET", + "summary": "read scale of the specified ReplicaSet", + "nickname": "readNamespacedReplicaSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Scale", + "method": "PUT", + "summary": "replace scale of the specified ReplicaSet", + "nickname": "replaceNamespacedReplicaSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Scale", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Scale" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Scale", + "method": "PATCH", + "summary": "partially update scale of the specified ReplicaSet", + "nickname": "patchNamespacedReplicaSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.ReplicaSet", + "method": "GET", + "summary": "read status of the specified ReplicaSet", + "nickname": "readNamespacedReplicaSetStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicaSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ReplicaSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ReplicaSet", + "method": "PUT", + "summary": "replace status of the specified ReplicaSet", + "nickname": "replaceNamespacedReplicaSetStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.ReplicaSet", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicaSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ReplicaSet" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.ReplicaSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ReplicaSet", + "method": "PATCH", + "summary": "partially update status of the specified ReplicaSet", + "nickname": "patchNamespacedReplicaSetStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ReplicaSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ReplicaSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/statefulsets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.StatefulSetList", + "method": "GET", + "summary": "list or watch objects of kind StatefulSet", + "nickname": "listNamespacedStatefulSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.StatefulSetList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.StatefulSet", + "method": "POST", + "summary": "create a StatefulSet", + "nickname": "createNamespacedStatefulSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.StatefulSet", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.StatefulSet" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.StatefulSet" + }, + { + "code": 202, + "message": "Accepted", + "responseModel": "v1.StatefulSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete collection of StatefulSet", + "nickname": "deletecollectionNamespacedStatefulSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of StatefulSet", + "nickname": "watchNamespacedStatefulSetList", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.StatefulSet", + "method": "GET", + "summary": "read the specified StatefulSet", + "nickname": "readNamespacedStatefulSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "export", + "description": "Should this value be exported. Export strips fields that a user can not specify.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "exact", + "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the StatefulSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.StatefulSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.StatefulSet", + "method": "PUT", + "summary": "replace the specified StatefulSet", + "nickname": "replaceNamespacedStatefulSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.StatefulSet", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the StatefulSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.StatefulSet" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.StatefulSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.StatefulSet", + "method": "PATCH", + "summary": "partially update the specified StatefulSet", + "nickname": "patchNamespacedStatefulSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the StatefulSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.StatefulSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete a StatefulSet", + "nickname": "deleteNamespacedStatefulSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "gracePeriodSeconds", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "orphanDependents", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "propagationPolicy", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the StatefulSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch changes to an object of kind StatefulSet", + "nickname": "watchNamespacedStatefulSet", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the StatefulSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/statefulsets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.StatefulSetList", + "method": "GET", + "summary": "list or watch objects of kind StatefulSet", + "nickname": "listStatefulSetForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.StatefulSetList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/watch/statefulsets", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of StatefulSet", + "nickname": "watchStatefulSetListForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "limit", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "continue", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.Scale", + "method": "GET", + "summary": "read scale of the specified StatefulSet", + "nickname": "readNamespacedStatefulSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Scale", + "method": "PUT", + "summary": "replace scale of the specified StatefulSet", + "nickname": "replaceNamespacedStatefulSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Scale", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Scale" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Scale", + "method": "PATCH", + "summary": "partially update scale of the specified StatefulSet", + "nickname": "patchNamespacedStatefulSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + } + ] + }, + { + "path": "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.StatefulSet", + "method": "GET", + "summary": "read status of the specified StatefulSet", + "nickname": "readNamespacedStatefulSetStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the StatefulSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.StatefulSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.StatefulSet", + "method": "PUT", + "summary": "replace status of the specified StatefulSet", + "nickname": "replaceNamespacedStatefulSetStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.StatefulSet", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the StatefulSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.StatefulSet" + }, + { + "code": 201, + "message": "Created", + "responseModel": "v1.StatefulSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.StatefulSet", + "method": "PATCH", + "summary": "partially update status of the specified StatefulSet", + "nickname": "patchNamespacedStatefulSetStatus", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the StatefulSet", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.StatefulSet" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + } + ] + }, + { + "path": "/apis/apps/v1", + "description": "API at /apis/apps/v1", + "operations": [ + { + "type": "v1.APIResourceList", + "method": "GET", + "summary": "get available resources", + "nickname": "getAPIResources", + "parameters": [], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ] + } + ] + } + ], "models": { + "v1.ControllerRevisionList": { + "id": "v1.ControllerRevisionList", + "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1.ControllerRevision" + }, + "description": "Items is the list of ControllerRevisions" + } + } + }, + "v1.ListMeta": { + "id": "v1.ListMeta", + "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", + "properties": { + "selfLink": { + "type": "string", + "description": "selfLink is a URL representing this object. Populated by the system. Read-only." + }, + "resourceVersion": { + "type": "string", + "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" + }, + "continue": { + "type": "string", + "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response." + } + } + }, + "v1.ControllerRevision": { + "id": "v1.ControllerRevision", + "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", + "required": [ + "revision" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "data": { + "type": "string", + "description": "Data is the serialized representation of the state." + }, + "revision": { + "type": "integer", + "format": "int64", + "description": "Revision indicates the revision of the state represented by Data." + } + } + }, + "v1.ObjectMeta": { + "id": "v1.ObjectMeta", + "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", + "properties": { + "name": { + "type": "string", + "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" + }, + "generateName": { + "type": "string", + "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" + }, + "namespace": { + "type": "string", + "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" + }, + "selfLink": { + "type": "string", + "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." + }, + "uid": { + "type": "string", + "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" + }, + "resourceVersion": { + "type": "string", + "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" + }, + "generation": { + "type": "integer", + "format": "int64", + "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only." + }, + "creationTimestamp": { + "type": "string", + "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "deletionTimestamp": { + "type": "string", + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "deletionGracePeriodSeconds": { + "type": "integer", + "format": "int64", + "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." + }, + "labels": { + "type": "object", + "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" + }, + "annotations": { + "type": "object", + "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" + }, + "ownerReferences": { + "type": "array", + "items": { + "$ref": "v1.OwnerReference" + }, + "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller." + }, + "initializers": { + "$ref": "v1.Initializers", + "description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user." + }, + "finalizers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed." + }, + "clusterName": { + "type": "string", + "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." + } + } + }, + "v1.OwnerReference": { + "id": "v1.OwnerReference", + "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ], + "properties": { + "apiVersion": { + "type": "string", + "description": "API version of the referent." + }, + "kind": { + "type": "string", + "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "name": { + "type": "string", + "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" + }, + "uid": { + "type": "string", + "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" + }, + "controller": { + "type": "boolean", + "description": "If true, this reference points to the managing controller." + }, + "blockOwnerDeletion": { + "type": "boolean", + "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." + } + } + }, + "v1.Initializers": { + "id": "v1.Initializers", + "description": "Initializers tracks the progress of initialization.", + "required": [ + "pending" + ], + "properties": { + "pending": { + "type": "array", + "items": { + "$ref": "v1.Initializer" + }, + "description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients." + }, + "result": { + "$ref": "v1.Status", + "description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion." + } + } + }, + "v1.Initializer": { + "id": "v1.Initializer", + "description": "Initializer is information about an initializer that has not yet completed.", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "name of the process that is responsible for initializing this object." + } + } + }, + "v1.Status": { + "id": "v1.Status", + "description": "Status is a return value for calls that don't return other objects.", + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "status": { + "type": "string", + "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + }, + "message": { + "type": "string", + "description": "A human-readable description of the status of this operation." + }, + "reason": { + "type": "string", + "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." + }, + "details": { + "$ref": "v1.StatusDetails", + "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." + }, + "code": { + "type": "integer", + "format": "int32", + "description": "Suggested HTTP return code for this status, 0 if not set." + } + } + }, + "v1.StatusDetails": { + "id": "v1.StatusDetails", + "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", + "properties": { + "name": { + "type": "string", + "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)." + }, + "group": { + "type": "string", + "description": "The group attribute of the resource associated with the status StatusReason." + }, + "kind": { + "type": "string", + "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "uid": { + "type": "string", + "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids" + }, + "causes": { + "type": "array", + "items": { + "$ref": "v1.StatusCause" + }, + "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes." + }, + "retryAfterSeconds": { + "type": "integer", + "format": "int32", + "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action." + } + } + }, + "v1.StatusCause": { + "id": "v1.StatusCause", + "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", + "properties": { + "reason": { + "type": "string", + "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available." + }, + "message": { + "type": "string", + "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader." + }, + "field": { + "type": "string", + "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"" + } + } + }, + "v1.WatchEvent": { + "id": "v1.WatchEvent", + "required": [ + "type", + "object" + ], + "properties": { + "type": { + "type": "string" + }, + "object": { + "type": "string" + } + } + }, + "v1.Patch": { + "id": "v1.Patch", + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "properties": {} + }, + "v1.DeleteOptions": { + "id": "v1.DeleteOptions", + "description": "DeleteOptions may be provided when deleting an API object.", + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "gracePeriodSeconds": { + "type": "integer", + "format": "int64", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." + }, + "preconditions": { + "$ref": "v1.Preconditions", + "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." + }, + "orphanDependents": { + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." + }, + "propagationPolicy": { + "$ref": "v1.DeletionPropagation", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." + } + } + }, + "v1.Preconditions": { + "id": "v1.Preconditions", + "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", + "properties": { + "uid": { + "$ref": "types.UID", + "description": "Specifies the target UID." + } + } + }, + "types.UID": { + "id": "types.UID", + "properties": {} + }, + "v1.DeletionPropagation": { + "id": "v1.DeletionPropagation", + "properties": {} + }, "v1.DaemonSetList": { "id": "v1.DaemonSetList", "description": "DaemonSetList is a collection of daemon sets.", "required": [ - "items" + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1.DaemonSet" + }, + "description": "A list of daemon sets." + } + } + }, + "v1.DaemonSet": { + "id": "v1.DaemonSet", + "description": "DaemonSet represents the configuration of a daemon set.", + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "spec": { + "$ref": "v1.DaemonSetSpec", + "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + }, + "status": { + "$ref": "v1.DaemonSetStatus", + "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + } + } + }, + "v1.DaemonSetSpec": { + "id": "v1.DaemonSetSpec", + "description": "DaemonSetSpec is the specification of a daemon set.", + "required": [ + "selector", + "template" + ], + "properties": { + "selector": { + "$ref": "v1.LabelSelector", + "description": "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": { + "$ref": "v1.PodTemplateSpec", + "description": "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": { + "$ref": "v1.DaemonSetUpdateStrategy", + "description": "An update strategy to replace existing DaemonSet pods with new pods." + }, + "minReadySeconds": { + "type": "integer", + "format": "int32", + "description": "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)." + }, + "revisionHistoryLimit": { + "type": "integer", + "format": "int32", + "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10." + } + } + }, + "v1.LabelSelector": { + "id": "v1.LabelSelector", + "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + "properties": { + "matchLabels": { + "type": "object", + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." + }, + "matchExpressions": { + "type": "array", + "items": { + "$ref": "v1.LabelSelectorRequirement" + }, + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." + } + } + }, + "v1.LabelSelectorRequirement": { + "id": "v1.LabelSelectorRequirement", + "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "required": [ + "key", + "operator" + ], + "properties": { + "key": { + "type": "string", + "description": "key is the label key that the selector applies to." + }, + "operator": { + "type": "string", + "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." + } + } + }, + "v1.PodTemplateSpec": { + "id": "v1.PodTemplateSpec", + "description": "PodTemplateSpec describes the data a pod should have when created from a template", + "properties": { + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "spec": { + "$ref": "v1.PodSpec", + "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + } + } + }, + "v1.PodSpec": { + "id": "v1.PodSpec", + "description": "PodSpec is a description of a pod.", + "required": [ + "containers" + ], + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "v1.Volume" + }, + "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes" + }, + "initContainers": { + "type": "array", + "items": { + "$ref": "v1.Container" + }, + "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/" + }, + "containers": { + "type": "array", + "items": { + "$ref": "v1.Container" + }, + "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated." + }, + "restartPolicy": { + "type": "string", + "description": "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": { + "type": "integer", + "format": "int64", + "description": "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": { + "type": "integer", + "format": "int64", + "description": "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": { + "type": "string", + "description": "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'." + }, + "nodeSelector": { + "type": "object", + "description": "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": { + "type": "string", + "description": "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": { + "type": "string", + "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead." + }, + "automountServiceAccountToken": { + "type": "boolean", + "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted." + }, + "nodeName": { + "type": "string", + "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements." + }, + "hostNetwork": { + "type": "boolean", + "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false." + }, + "hostPID": { + "type": "boolean", + "description": "Use the host's pid namespace. Optional: Default to false." + }, + "hostIPC": { + "type": "boolean", + "description": "Use the host's ipc namespace. Optional: Default to false." + }, + "securityContext": { + "$ref": "v1.PodSecurityContext", + "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." + }, + "imagePullSecrets": { + "type": "array", + "items": { + "$ref": "v1.LocalObjectReference" + }, + "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod" + }, + "hostname": { + "type": "string", + "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value." + }, + "subdomain": { + "type": "string", + "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all." + }, + "affinity": { + "$ref": "v1.Affinity", + "description": "If specified, the pod's scheduling constraints" + }, + "schedulerName": { + "type": "string", + "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler." + }, + "tolerations": { + "type": "array", + "items": { + "$ref": "v1.Toleration" + }, + "description": "If specified, the pod's tolerations." + }, + "hostAliases": { + "type": "array", + "items": { + "$ref": "v1.HostAlias" + }, + "description": "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": { + "type": "string", + "description": "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": { + "type": "integer", + "format": "int32", + "description": "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." + } + } + }, + "v1.Volume": { + "id": "v1.Volume", + "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", + "required": [ + "name" ], "properties": { - "kind": { + "name": { "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" }, - "apiVersion": { + "hostPath": { + "$ref": "v1.HostPathVolumeSource", + "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + }, + "emptyDir": { + "$ref": "v1.EmptyDirVolumeSource", + "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + }, + "gcePersistentDisk": { + "$ref": "v1.GCEPersistentDiskVolumeSource", + "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + }, + "awsElasticBlockStore": { + "$ref": "v1.AWSElasticBlockStoreVolumeSource", + "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + }, + "gitRepo": { + "$ref": "v1.GitRepoVolumeSource", + "description": "GitRepo represents a git repository at a particular revision." + }, + "secret": { + "$ref": "v1.SecretVolumeSource", + "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + }, + "nfs": { + "$ref": "v1.NFSVolumeSource", + "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + }, + "iscsi": { + "$ref": "v1.ISCSIVolumeSource", + "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md" + }, + "glusterfs": { + "$ref": "v1.GlusterfsVolumeSource", + "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md" + }, + "persistentVolumeClaim": { + "$ref": "v1.PersistentVolumeClaimVolumeSource", + "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + }, + "rbd": { + "$ref": "v1.RBDVolumeSource", + "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" + }, + "flexVolume": { + "$ref": "v1.FlexVolumeSource", + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." + }, + "cinder": { + "$ref": "v1.CinderVolumeSource", + "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" + }, + "cephfs": { + "$ref": "v1.CephFSVolumeSource", + "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" + }, + "flocker": { + "$ref": "v1.FlockerVolumeSource", + "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" + }, + "downwardAPI": { + "$ref": "v1.DownwardAPIVolumeSource", + "description": "DownwardAPI represents downward API about the pod that should populate this volume" + }, + "fc": { + "$ref": "v1.FCVolumeSource", + "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." + }, + "azureFile": { + "$ref": "v1.AzureFileVolumeSource", + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + }, + "configMap": { + "$ref": "v1.ConfigMapVolumeSource", + "description": "ConfigMap represents a configMap that should populate this volume" + }, + "vsphereVolume": { + "$ref": "v1.VsphereVirtualDiskVolumeSource", + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + }, + "quobyte": { + "$ref": "v1.QuobyteVolumeSource", + "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" + }, + "azureDisk": { + "$ref": "v1.AzureDiskVolumeSource", + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + }, + "photonPersistentDisk": { + "$ref": "v1.PhotonPersistentDiskVolumeSource", + "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + }, + "projected": { + "$ref": "v1.ProjectedVolumeSource", + "description": "Items for all in one resources secrets, configmaps, and downward API" + }, + "portworxVolume": { + "$ref": "v1.PortworxVolumeSource", + "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + }, + "scaleIO": { + "$ref": "v1.ScaleIOVolumeSource", + "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + }, + "storageos": { + "$ref": "v1.StorageOSVolumeSource", + "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." + } + } + }, + "v1.HostPathVolumeSource": { + "id": "v1.HostPathVolumeSource", + "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", + "required": [ + "path" + ], + "properties": { + "path": { "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + "description": "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "type": { + "$ref": "v1.HostPathType", + "description": "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + } + } + }, + "v1.HostPathType": { + "id": "v1.HostPathType", + "properties": {} + }, + "v1.EmptyDirVolumeSource": { + "id": "v1.EmptyDirVolumeSource", + "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + "properties": { + "medium": { + "type": "string", + "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" }, - "items": { - "type": "array", - "items": { - "$ref": "v1.DaemonSet" - }, - "description": "A list of daemon sets." + "sizeLimit": { + "type": "string", + "description": "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" } } }, - "v1.ListMeta": { - "id": "v1.ListMeta", - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", + "v1.GCEPersistentDiskVolumeSource": { + "id": "v1.GCEPersistentDiskVolumeSource", + "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", + "required": [ + "pdName" + ], "properties": { - "selfLink": { + "pdName": { "type": "string", - "description": "selfLink is a URL representing this object. Populated by the system. Read-only." + "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" }, - "resourceVersion": { + "fsType": { "type": "string", - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" }, - "continue": { + "partition": { + "type": "integer", + "format": "int32", + "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + }, + "readOnly": { + "type": "boolean", + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + } + } + }, + "v1.AWSElasticBlockStoreVolumeSource": { + "id": "v1.AWSElasticBlockStoreVolumeSource", + "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", + "required": [ + "volumeID" + ], + "properties": { + "volumeID": { "type": "string", - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response." + "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + }, + "fsType": { + "type": "string", + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + }, + "partition": { + "type": "integer", + "format": "int32", + "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." + }, + "readOnly": { + "type": "boolean", + "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" } } }, - "v1.DaemonSet": { - "id": "v1.DaemonSet", - "description": "DaemonSet represents the configuration of a daemon set.", + "v1.GitRepoVolumeSource": { + "id": "v1.GitRepoVolumeSource", + "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", + "required": [ + "repository" + ], "properties": { - "kind": { + "repository": { "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + "description": "Repository URL" }, - "apiVersion": { + "revision": { "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + "description": "Commit hash for the specified revision." }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "directory": { + "type": "string", + "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + } + } + }, + "v1.SecretVolumeSource": { + "id": "v1.SecretVolumeSource", + "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", + "properties": { + "secretName": { + "type": "string", + "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1.KeyToPath" + }, + "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." }, - "spec": { - "$ref": "v1.DaemonSetSpec", - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + "defaultMode": { + "type": "integer", + "format": "int32", + "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." }, - "status": { - "$ref": "v1.DaemonSetStatus", - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + "optional": { + "type": "boolean", + "description": "Specify whether the Secret or it's keys must be defined" } } }, - "v1.ObjectMeta": { - "id": "v1.ObjectMeta", - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", + "v1.KeyToPath": { + "id": "v1.KeyToPath", + "description": "Maps a string key to a path within a volume.", + "required": [ + "key", + "path" + ], "properties": { - "name": { + "key": { "type": "string", - "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" + "description": "The key to project." }, - "generateName": { + "path": { "type": "string", - "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" + "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." }, - "namespace": { + "mode": { + "type": "integer", + "format": "int32", + "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + } + } + }, + "v1.NFSVolumeSource": { + "id": "v1.NFSVolumeSource", + "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + "required": [ + "server", + "path" + ], + "properties": { + "server": { "type": "string", - "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" + "description": "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" }, - "selfLink": { + "path": { "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." + "description": "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" }, - "uid": { + "readOnly": { + "type": "boolean", + "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + } + } + }, + "v1.ISCSIVolumeSource": { + "id": "v1.ISCSIVolumeSource", + "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", + "required": [ + "targetPortal", + "iqn", + "lun" + ], + "properties": { + "targetPortal": { "type": "string", - "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" + "description": "iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." }, - "resourceVersion": { + "iqn": { "type": "string", - "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" + "description": "Target iSCSI Qualified Name." }, - "generation": { + "lun": { "type": "integer", - "format": "int64", - "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only." + "format": "int32", + "description": "iSCSI target lun number." }, - "creationTimestamp": { + "iscsiInterface": { "type": "string", - "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport." }, - "deletionTimestamp": { + "fsType": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "deletionGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." - }, - "labels": { - "type": "object", - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi" }, - "annotations": { - "type": "object", - "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" + "readOnly": { + "type": "boolean", + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." }, - "ownerReferences": { + "portals": { "type": "array", "items": { - "$ref": "v1.OwnerReference" + "type": "string" }, - "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller." + "description": "iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." }, - "initializers": { - "$ref": "v1.Initializers", - "description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user." + "chapAuthDiscovery": { + "type": "boolean", + "description": "whether support iSCSI Discovery CHAP authentication" }, - "finalizers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed." + "chapAuthSession": { + "type": "boolean", + "description": "whether support iSCSI Session CHAP authentication" }, - "clusterName": { + "secretRef": { + "$ref": "v1.LocalObjectReference", + "description": "CHAP secret for iSCSI target and initiator authentication" + }, + "initiatorName": { "type": "string", - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." + "description": "Custom iSCSI initiator name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection." } } }, - "v1.OwnerReference": { - "id": "v1.OwnerReference", - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], + "v1.LocalObjectReference": { + "id": "v1.LocalObjectReference", + "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "kind": { - "type": "string", - "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, "name": { "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "controller": { - "type": "boolean", - "description": "If true, this reference points to the managing controller." - }, - "blockOwnerDeletion": { - "type": "boolean", - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" } } }, - "v1.Initializers": { - "id": "v1.Initializers", - "description": "Initializers tracks the progress of initialization.", + "v1.GlusterfsVolumeSource": { + "id": "v1.GlusterfsVolumeSource", + "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", "required": [ - "pending" + "endpoints", + "path" ], "properties": { - "pending": { - "type": "array", - "items": { - "$ref": "v1.Initializer" - }, - "description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients." + "endpoints": { + "type": "string", + "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" }, - "result": { - "$ref": "v1.Status", - "description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion." + "path": { + "type": "string", + "description": "Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" + }, + "readOnly": { + "type": "boolean", + "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" } } }, - "v1.Initializer": { - "id": "v1.Initializer", - "description": "Initializer is information about an initializer that has not yet completed.", + "v1.PersistentVolumeClaimVolumeSource": { + "id": "v1.PersistentVolumeClaimVolumeSource", + "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", "required": [ - "name" + "claimName" ], "properties": { - "name": { + "claimName": { "type": "string", - "description": "name of the process that is responsible for initializing this object." + "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + }, + "readOnly": { + "type": "boolean", + "description": "Will force the ReadOnly setting in VolumeMounts. Default false." } } }, - "v1.Status": { - "id": "v1.Status", - "description": "Status is a return value for calls that don't return other objects.", + "v1.RBDVolumeSource": { + "id": "v1.RBDVolumeSource", + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "required": [ + "monitors", + "image" + ], "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + "monitors": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" }, - "apiVersion": { + "image": { "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" }, - "status": { + "fsType": { "type": "string", - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd" }, - "message": { + "pool": { "type": "string", - "description": "A human-readable description of the status of this operation." + "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" }, - "reason": { + "user": { "type": "string", - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." + "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" }, - "details": { - "$ref": "v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." + "keyring": { + "type": "string", + "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" }, - "code": { - "type": "integer", - "format": "int32", - "description": "Suggested HTTP return code for this status, 0 if not set." + "secretRef": { + "$ref": "v1.LocalObjectReference", + "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "readOnly": { + "type": "boolean", + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" } } }, - "v1.StatusDetails": { - "id": "v1.StatusDetails", - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", + "v1.FlexVolumeSource": { + "id": "v1.FlexVolumeSource", + "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", + "required": [ + "driver" + ], "properties": { - "name": { - "type": "string", - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)." - }, - "group": { + "driver": { "type": "string", - "description": "The group attribute of the resource associated with the status StatusReason." + "description": "Driver is the name of the driver to use for this volume." }, - "kind": { + "fsType": { "type": "string", - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." }, - "uid": { - "type": "string", - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids" + "secretRef": { + "$ref": "v1.LocalObjectReference", + "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." }, - "causes": { - "type": "array", - "items": { - "$ref": "v1.StatusCause" - }, - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes." + "readOnly": { + "type": "boolean", + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action." + "options": { + "type": "object", + "description": "Optional: Extra command options if any." } } }, - "v1.StatusCause": { - "id": "v1.StatusCause", - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", + "v1.CinderVolumeSource": { + "id": "v1.CinderVolumeSource", + "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", + "required": [ + "volumeID" + ], "properties": { - "reason": { + "volumeID": { "type": "string", - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available." + "description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" }, - "message": { + "fsType": { "type": "string", - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader." + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" }, - "field": { - "type": "string", - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"" + "readOnly": { + "type": "boolean", + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" } } }, - "v1.DaemonSetSpec": { - "id": "v1.DaemonSetSpec", - "description": "DaemonSetSpec is the specification of a daemon set.", + "v1.CephFSVolumeSource": { + "id": "v1.CephFSVolumeSource", + "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", "required": [ - "template" + "monitors" ], "properties": { - "selector": { - "$ref": "v1.LabelSelector", - "description": "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" + "monitors": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "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" + "path": { + "type": "string", + "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" }, - "updateStrategy": { - "$ref": "v1.DaemonSetUpdateStrategy", - "description": "An update strategy to replace existing DaemonSet pods with new pods." + "user": { + "type": "string", + "description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "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)." + "secretFile": { + "type": "string", + "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" }, - "revisionHistoryLimit": { - "type": "integer", - "format": "int32", - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10." + "secretRef": { + "$ref": "v1.LocalObjectReference", + "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" + }, + "readOnly": { + "type": "boolean", + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" } } }, - "v1.LabelSelector": { - "id": "v1.LabelSelector", - "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + "v1.FlockerVolumeSource": { + "id": "v1.FlockerVolumeSource", + "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", "properties": { - "matchLabels": { - "type": "object", - "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." + "datasetName": { + "type": "string", + "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated" }, - "matchExpressions": { + "datasetUUID": { + "type": "string", + "description": "UUID of the dataset. This is unique identifier of a Flocker dataset" + } + } + }, + "v1.DownwardAPIVolumeSource": { + "id": "v1.DownwardAPIVolumeSource", + "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", + "properties": { + "items": { "type": "array", "items": { - "$ref": "v1.LabelSelectorRequirement" + "$ref": "v1.DownwardAPIVolumeFile" }, - "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." + "description": "Items is a list of downward API volume file" + }, + "defaultMode": { + "type": "integer", + "format": "int32", + "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." } } }, - "v1.LabelSelectorRequirement": { - "id": "v1.LabelSelectorRequirement", - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "v1.DownwardAPIVolumeFile": { + "id": "v1.DownwardAPIVolumeFile", + "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", "required": [ - "key", - "operator" + "path" ], "properties": { - "key": { + "path": { "type": "string", - "description": "key is the label key that the selector applies to." + "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'" }, - "operator": { - "type": "string", - "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." + "fieldRef": { + "$ref": "v1.ObjectFieldSelector", + "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." + "resourceFieldRef": { + "$ref": "v1.ResourceFieldSelector", + "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." + }, + "mode": { + "type": "integer", + "format": "int32", + "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." } } }, - "v1.PodTemplateSpec": { - "id": "v1.PodTemplateSpec", - "description": "PodTemplateSpec describes the data a pod should have when created from a template", + "v1.ObjectFieldSelector": { + "id": "v1.ObjectFieldSelector", + "description": "ObjectFieldSelector selects an APIVersioned field of an object.", + "required": [ + "fieldPath" + ], "properties": { - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "apiVersion": { + "type": "string", + "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." }, - "spec": { - "$ref": "v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + "fieldPath": { + "type": "string", + "description": "Path of the field to select in the specified API version." } } }, - "v1.PodSpec": { - "id": "v1.PodSpec", - "description": "PodSpec is a description of a pod.", + "v1.ResourceFieldSelector": { + "id": "v1.ResourceFieldSelector", + "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", "required": [ - "containers" + "resource" ], "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "v1.Volume" - }, - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes" - }, - "initContainers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/" - }, - "containers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated." - }, - "restartPolicy": { - "type": "string", - "description": "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": { - "type": "integer", - "format": "int64", - "description": "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": { - "type": "integer", - "format": "int64", - "description": "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": { + "containerName": { "type": "string", - "description": "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'." - }, - "nodeSelector": { - "type": "object", - "description": "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/" + "description": "Container name: required for volumes, optional for env vars" }, - "serviceAccountName": { + "resource": { "type": "string", - "description": "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/" + "description": "Required: resource to select" }, - "serviceAccount": { + "divisor": { "type": "string", - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead." + "description": "Specifies the output format of the exposed resources, defaults to \"1\"" + } + } + }, + "v1.FCVolumeSource": { + "id": "v1.FCVolumeSource", + "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", + "properties": { + "targetWWNs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional: FC target worldwide names (WWNs)" }, - "automountServiceAccountToken": { - "type": "boolean", - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted." + "lun": { + "type": "integer", + "format": "int32", + "description": "Optional: FC target lun number" }, - "nodeName": { + "fsType": { "type": "string", - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements." - }, - "hostNetwork": { - "type": "boolean", - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false." - }, - "hostPID": { - "type": "boolean", - "description": "Use the host's pid namespace. Optional: Default to false." + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." }, - "hostIPC": { + "readOnly": { "type": "boolean", - "description": "Use the host's ipc namespace. Optional: Default to false." - }, - "securityContext": { - "$ref": "v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." + "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." }, - "imagePullSecrets": { + "wwids": { "type": "array", "items": { - "$ref": "v1.LocalObjectReference" + "type": "string" }, - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod" - }, - "hostname": { + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + } + } + }, + "v1.AzureFileVolumeSource": { + "id": "v1.AzureFileVolumeSource", + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "required": [ + "secretName", + "shareName" + ], + "properties": { + "secretName": { "type": "string", - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value." + "description": "the name of secret that contains Azure Storage Account Name and Key" }, - "subdomain": { + "shareName": { "type": "string", - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all." - }, - "affinity": { - "$ref": "v1.Affinity", - "description": "If specified, the pod's scheduling constraints" + "description": "Share Name" }, - "schedulerName": { + "readOnly": { + "type": "boolean", + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + } + } + }, + "v1.ConfigMapVolumeSource": { + "id": "v1.ConfigMapVolumeSource", + "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", + "properties": { + "name": { "type": "string", - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler." - }, - "tolerations": { - "type": "array", - "items": { - "$ref": "v1.Toleration" - }, - "description": "If specified, the pod's tolerations." + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" }, - "hostAliases": { + "items": { "type": "array", "items": { - "$ref": "v1.HostAlias" + "$ref": "v1.KeyToPath" }, - "description": "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": { - "type": "string", - "description": "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." + "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." }, - "priority": { + "defaultMode": { "type": "integer", "format": "int32", - "description": "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." + "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + }, + "optional": { + "type": "boolean", + "description": "Specify whether the ConfigMap or it's keys must be defined" } } }, - "v1.Volume": { - "id": "v1.Volume", - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", + "v1.VsphereVirtualDiskVolumeSource": { + "id": "v1.VsphereVirtualDiskVolumeSource", + "description": "Represents a vSphere volume resource.", "required": [ - "name" + "volumePath" ], "properties": { - "name": { + "volumePath": { "type": "string", - "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "hostPath": { - "$ref": "v1.HostPathVolumeSource", - "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" - }, - "emptyDir": { - "$ref": "v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" - }, - "gcePersistentDisk": { - "$ref": "v1.GCEPersistentDiskVolumeSource", - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" - }, - "awsElasticBlockStore": { - "$ref": "v1.AWSElasticBlockStoreVolumeSource", - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" - }, - "gitRepo": { - "$ref": "v1.GitRepoVolumeSource", - "description": "GitRepo represents a git repository at a particular revision." - }, - "secret": { - "$ref": "v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" - }, - "nfs": { - "$ref": "v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - }, - "iscsi": { - "$ref": "v1.ISCSIVolumeSource", - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md" - }, - "glusterfs": { - "$ref": "v1.GlusterfsVolumeSource", - "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md" - }, - "persistentVolumeClaim": { - "$ref": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "rbd": { - "$ref": "v1.RBDVolumeSource", - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" - }, - "flexVolume": { - "$ref": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." - }, - "cinder": { - "$ref": "v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "cephfs": { - "$ref": "v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "flocker": { - "$ref": "v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "fc": { - "$ref": "v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "azureFile": { - "$ref": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "configMap": { - "$ref": "v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "vsphereVolume": { - "$ref": "v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "azureDisk": { - "$ref": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "photonPersistentDisk": { - "$ref": "v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "portworxVolume": { - "$ref": "v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" + "description": "Path that identifies vSphere volume vmdk" }, - "scaleIO": { - "$ref": "v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." + "fsType": { + "type": "string", + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." }, - "storageos": { - "$ref": "v1.StorageOSVolumeSource", - "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." - } - } - }, - "v1.HostPathVolumeSource": { - "id": "v1.HostPathVolumeSource", - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "required": [ - "path" - ], - "properties": { - "path": { + "storagePolicyName": { "type": "string", - "description": "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + "description": "Storage Policy Based Management (SPBM) profile name." }, - "type": { - "$ref": "v1.HostPathType", - "description": "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + "storagePolicyID": { + "type": "string", + "description": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." } } }, - "v1.HostPathType": { - "id": "v1.HostPathType", - "properties": {} - }, - "v1.EmptyDirVolumeSource": { - "id": "v1.EmptyDirVolumeSource", - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", + "v1.QuobyteVolumeSource": { + "id": "v1.QuobyteVolumeSource", + "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", + "required": [ + "registry", + "volume" + ], "properties": { - "medium": { + "registry": { "type": "string", - "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" + "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" }, - "sizeLimit": { + "volume": { "type": "string", - "description": "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" + "description": "Volume is a string that references an already created Quobyte volume by name." + }, + "readOnly": { + "type": "boolean", + "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + }, + "user": { + "type": "string", + "description": "User to map volume access to Defaults to serivceaccount user" + }, + "group": { + "type": "string", + "description": "Group to map volume access to Default is no group" } } }, - "v1.GCEPersistentDiskVolumeSource": { - "id": "v1.GCEPersistentDiskVolumeSource", - "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", + "v1.AzureDiskVolumeSource": { + "id": "v1.AzureDiskVolumeSource", + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", "required": [ - "pdName" + "diskName", + "diskURI" ], "properties": { - "pdName": { + "diskName": { "type": "string", - "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + "description": "The Name of the data disk in the blob storage" }, - "fsType": { + "diskURI": { "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + "description": "The URI the data disk in the blob storage" }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + "cachingMode": { + "$ref": "v1.AzureDataDiskCachingMode", + "description": "Host Caching mode: None, Read Only, Read Write." + }, + "fsType": { + "type": "string", + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." }, "readOnly": { "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "kind": { + "$ref": "v1.AzureDataDiskKind", + "description": "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" } } }, - "v1.AWSElasticBlockStoreVolumeSource": { - "id": "v1.AWSElasticBlockStoreVolumeSource", - "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", + "v1.AzureDataDiskCachingMode": { + "id": "v1.AzureDataDiskCachingMode", + "properties": {} + }, + "v1.AzureDataDiskKind": { + "id": "v1.AzureDataDiskKind", + "properties": {} + }, + "v1.PhotonPersistentDiskVolumeSource": { + "id": "v1.PhotonPersistentDiskVolumeSource", + "description": "Represents a Photon Controller persistent disk resource.", "required": [ - "volumeID" + "pdID" ], "properties": { - "volumeID": { + "pdID": { "type": "string", - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + "description": "ID that identifies Photon Controller persistent disk" }, "fsType": { "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + } + } + }, + "v1.ProjectedVolumeSource": { + "id": "v1.ProjectedVolumeSource", + "description": "Represents a projected volume source", + "required": [ + "sources" + ], + "properties": { + "sources": { + "type": "array", + "items": { + "$ref": "v1.VolumeProjection" + }, + "description": "list of volume projections" }, - "partition": { + "defaultMode": { "type": "integer", "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." - }, - "readOnly": { - "type": "boolean", - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." } } }, - "v1.GitRepoVolumeSource": { - "id": "v1.GitRepoVolumeSource", - "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", - "required": [ - "repository" - ], + "v1.VolumeProjection": { + "id": "v1.VolumeProjection", + "description": "Projection that may be projected along with other supported volume types", "properties": { - "repository": { - "type": "string", - "description": "Repository URL" + "secret": { + "$ref": "v1.SecretProjection", + "description": "information about the secret data to project" }, - "revision": { - "type": "string", - "description": "Commit hash for the specified revision." + "downwardAPI": { + "$ref": "v1.DownwardAPIProjection", + "description": "information about the downwardAPI data to project" }, - "directory": { - "type": "string", - "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." + "configMap": { + "$ref": "v1.ConfigMapProjection", + "description": "information about the configMap data to project" } } }, - "v1.SecretVolumeSource": { - "id": "v1.SecretVolumeSource", - "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", + "v1.SecretProjection": { + "id": "v1.SecretProjection", + "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", "properties": { - "secretName": { + "name": { "type": "string", - "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" }, "items": { "type": "array", @@ -1946,1753 +7622,1828 @@ }, "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + "optional": { + "type": "boolean", + "description": "Specify whether the Secret or its key must be defined" + } + } + }, + "v1.DownwardAPIProjection": { + "id": "v1.DownwardAPIProjection", + "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "v1.DownwardAPIVolumeFile" + }, + "description": "Items is a list of DownwardAPIVolume file" + } + } + }, + "v1.ConfigMapProjection": { + "id": "v1.ConfigMapProjection", + "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", + "properties": { + "name": { + "type": "string", + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + }, + "items": { + "type": "array", + "items": { + "$ref": "v1.KeyToPath" + }, + "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." }, "optional": { "type": "boolean", - "description": "Specify whether the Secret or it's keys must be defined" + "description": "Specify whether the ConfigMap or it's keys must be defined" } } }, - "v1.KeyToPath": { - "id": "v1.KeyToPath", - "description": "Maps a string key to a path within a volume.", + "v1.PortworxVolumeSource": { + "id": "v1.PortworxVolumeSource", + "description": "PortworxVolumeSource represents a Portworx volume resource.", "required": [ - "key", - "path" + "volumeID" ], "properties": { - "key": { + "volumeID": { "type": "string", - "description": "The key to project." + "description": "VolumeID uniquely identifies a Portworx volume" }, - "path": { + "fsType": { "type": "string", - "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." + "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + "readOnly": { + "type": "boolean", + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." } } }, - "v1.NFSVolumeSource": { - "id": "v1.NFSVolumeSource", - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", + "v1.ScaleIOVolumeSource": { + "id": "v1.ScaleIOVolumeSource", + "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", "required": [ - "server", - "path" + "gateway", + "system", + "secretRef" ], "properties": { - "server": { + "gateway": { + "type": "string", + "description": "The host address of the ScaleIO API Gateway." + }, + "system": { + "type": "string", + "description": "The name of the storage system as configured in ScaleIO." + }, + "secretRef": { + "$ref": "v1.LocalObjectReference", + "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + }, + "sslEnabled": { + "type": "boolean", + "description": "Flag to enable/disable SSL communication with Gateway, default false" + }, + "protectionDomain": { + "type": "string", + "description": "The name of the ScaleIO Protection Domain for the configured storage." + }, + "storagePool": { + "type": "string", + "description": "The ScaleIO Storage Pool associated with the protection domain." + }, + "storageMode": { "type": "string", - "description": "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." }, - "path": { + "volumeName": { "type": "string", - "description": "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source." + }, + "fsType": { + "type": "string", + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." }, "readOnly": { "type": "boolean", - "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." } } }, - "v1.ISCSIVolumeSource": { - "id": "v1.ISCSIVolumeSource", - "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - "required": [ - "targetPortal", - "iqn", - "lun" - ], + "v1.StorageOSVolumeSource": { + "id": "v1.StorageOSVolumeSource", + "description": "Represents a StorageOS persistent volume resource.", "properties": { - "targetPortal": { - "type": "string", - "description": "iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - }, - "iqn": { + "volumeName": { "type": "string", - "description": "Target iSCSI Qualified Name." - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "iSCSI target lun number." + "description": "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." }, - "iscsiInterface": { + "volumeNamespace": { "type": "string", - "description": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport." + "description": "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." }, "fsType": { "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi" + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." }, "readOnly": { "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." - }, - "portals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - }, - "chapAuthDiscovery": { - "type": "boolean", - "description": "whether support iSCSI Discovery CHAP authentication" - }, - "chapAuthSession": { - "type": "boolean", - "description": "whether support iSCSI Session CHAP authentication" + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." }, "secretRef": { "$ref": "v1.LocalObjectReference", - "description": "CHAP secret for iSCSI target and initiator authentication" - }, - "initiatorName": { - "type": "string", - "description": "Custom iSCSI initiator name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection." - } - } - }, - "v1.LocalObjectReference": { - "id": "v1.LocalObjectReference", - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." } } }, - "v1.GlusterfsVolumeSource": { - "id": "v1.GlusterfsVolumeSource", - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", + "v1.Container": { + "id": "v1.Container", + "description": "A single application container that you want to run within a pod.", "required": [ - "endpoints", - "path" + "name" ], "properties": { - "endpoints": { + "name": { "type": "string", - "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" + "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated." }, - "path": { + "image": { "type": "string", - "description": "Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" + "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets." }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - } - } - }, - "v1.PersistentVolumeClaimVolumeSource": { - "id": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", - "required": [ - "claimName" - ], - "properties": { - "claimName": { - "type": "string", - "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + "command": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell" }, - "readOnly": { - "type": "boolean", - "description": "Will force the ReadOnly setting in VolumeMounts. Default false." - } - } - }, - "v1.RBDVolumeSource": { - "id": "v1.RBDVolumeSource", - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "required": [ - "monitors", - "image" - ], - "properties": { - "monitors": { + "args": { "type": "array", "items": { "type": "string" }, - "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell" }, - "image": { + "workingDir": { "type": "string", - "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated." }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd" + "ports": { + "type": "array", + "items": { + "$ref": "v1.ContainerPort" + }, + "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated." }, - "pool": { + "envFrom": { + "type": "array", + "items": { + "$ref": "v1.EnvFromSource" + }, + "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated." + }, + "env": { + "type": "array", + "items": { + "$ref": "v1.EnvVar" + }, + "description": "List of environment variables to set in the container. Cannot be updated." + }, + "resources": { + "$ref": "v1.ResourceRequirements", + "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + }, + "volumeMounts": { + "type": "array", + "items": { + "$ref": "v1.VolumeMount" + }, + "description": "Pod volumes to mount into the container's filesystem. Cannot be updated." + }, + "livenessProbe": { + "$ref": "v1.Probe", + "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + }, + "readinessProbe": { + "$ref": "v1.Probe", + "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + }, + "lifecycle": { + "$ref": "v1.Lifecycle", + "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." + }, + "terminationMessagePath": { "type": "string", - "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated." }, - "user": { + "terminationMessagePolicy": { "type": "string", - "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated." }, - "keyring": { + "imagePullPolicy": { "type": "string", - "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images" }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + "securityContext": { + "$ref": "v1.SecurityContext", + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" }, - "readOnly": { + "stdin": { "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false." + }, + "stdinOnce": { + "type": "boolean", + "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false" + }, + "tty": { + "type": "boolean", + "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false." } } }, - "v1.FlexVolumeSource": { - "id": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", + "v1.ContainerPort": { + "id": "v1.ContainerPort", + "description": "ContainerPort represents a network port in a single container.", "required": [ - "driver" + "containerPort" ], "properties": { - "driver": { + "name": { "type": "string", - "description": "Driver is the name of the driver to use for this volume." + "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services." }, - "fsType": { + "hostPort": { + "type": "integer", + "format": "int32", + "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this." + }, + "containerPort": { + "type": "integer", + "format": "int32", + "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536." + }, + "protocol": { "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." + "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\"." }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." + "hostIP": { + "type": "string", + "description": "What host IP to bind the external port to." + } + } + }, + "v1.EnvFromSource": { + "id": "v1.EnvFromSource", + "description": "EnvFromSource represents the source of a set of ConfigMaps", + "properties": { + "prefix": { + "type": "string", + "description": "An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER." }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + "configMapRef": { + "$ref": "v1.ConfigMapEnvSource", + "description": "The ConfigMap to select from" }, - "options": { - "type": "object", - "description": "Optional: Extra command options if any." + "secretRef": { + "$ref": "v1.SecretEnvSource", + "description": "The Secret to select from" } } }, - "v1.CinderVolumeSource": { - "id": "v1.CinderVolumeSource", - "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], + "v1.ConfigMapEnvSource": { + "id": "v1.ConfigMapEnvSource", + "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", "properties": { - "volumeID": { - "type": "string", - "description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "fsType": { + "name": { "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" }, - "readOnly": { + "optional": { "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" + "description": "Specify whether the ConfigMap must be defined" } } }, - "v1.CephFSVolumeSource": { - "id": "v1.CephFSVolumeSource", - "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "monitors" - ], + "v1.SecretEnvSource": { + "id": "v1.SecretEnvSource", + "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "path": { - "type": "string", - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" - }, - "user": { - "type": "string", - "description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretFile": { + "name": { "type": "string", - "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" }, - "readOnly": { + "optional": { "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" + "description": "Specify whether the Secret must be defined" } } }, - "v1.FlockerVolumeSource": { - "id": "v1.FlockerVolumeSource", - "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", + "v1.EnvVar": { + "id": "v1.EnvVar", + "description": "EnvVar represents an environment variable present in a Container.", + "required": [ + "name" + ], "properties": { - "datasetName": { + "name": { "type": "string", - "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated" + "description": "Name of the environment variable. Must be a C_IDENTIFIER." }, - "datasetUUID": { + "value": { "type": "string", - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset" + "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\"." + }, + "valueFrom": { + "$ref": "v1.EnvVarSource", + "description": "Source for the environment variable's value. Cannot be used if value is not empty." } } }, - "v1.DownwardAPIVolumeSource": { - "id": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", + "v1.EnvVarSource": { + "id": "v1.EnvVarSource", + "description": "EnvVarSource represents a source for the value of an EnvVar.", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of downward API volume file" + "fieldRef": { + "$ref": "v1.ObjectFieldSelector", + "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP." }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + "resourceFieldRef": { + "$ref": "v1.ResourceFieldSelector", + "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." + }, + "configMapKeyRef": { + "$ref": "v1.ConfigMapKeySelector", + "description": "Selects a key of a ConfigMap." + }, + "secretKeyRef": { + "$ref": "v1.SecretKeySelector", + "description": "Selects a key of a secret in the pod's namespace" } } }, - "v1.DownwardAPIVolumeFile": { - "id": "v1.DownwardAPIVolumeFile", - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", + "v1.ConfigMapKeySelector": { + "id": "v1.ConfigMapKeySelector", + "description": "Selects a key from a ConfigMap.", "required": [ - "path" + "key" ], "properties": { - "path": { + "name": { "type": "string", - "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'" - }, - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." + "key": { + "type": "string", + "description": "The key to select." }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + "optional": { + "type": "boolean", + "description": "Specify whether the ConfigMap or it's key must be defined" } } }, - "v1.ObjectFieldSelector": { - "id": "v1.ObjectFieldSelector", - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", + "v1.SecretKeySelector": { + "id": "v1.SecretKeySelector", + "description": "SecretKeySelector selects a key of a Secret.", "required": [ - "fieldPath" + "key" ], "properties": { - "apiVersion": { + "name": { "type": "string", - "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" }, - "fieldPath": { + "key": { "type": "string", - "description": "Path of the field to select in the specified API version." + "description": "The key of the secret to select from. Must be a valid secret key." + }, + "optional": { + "type": "boolean", + "description": "Specify whether the Secret or it's key must be defined" } } }, - "v1.ResourceFieldSelector": { - "id": "v1.ResourceFieldSelector", - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", + "v1.ResourceRequirements": { + "id": "v1.ResourceRequirements", + "description": "ResourceRequirements describes the compute resource requirements.", + "properties": { + "limits": { + "type": "object", + "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" + }, + "requests": { + "type": "object", + "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" + } + } + }, + "v1.VolumeMount": { + "id": "v1.VolumeMount", + "description": "VolumeMount describes a mounting of a Volume within a container.", "required": [ - "resource" + "name", + "mountPath" ], "properties": { - "containerName": { + "name": { "type": "string", - "description": "Container name: required for volumes, optional for env vars" + "description": "This must match the Name of a Volume." }, - "resource": { + "readOnly": { + "type": "boolean", + "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false." + }, + "mountPath": { "type": "string", - "description": "Required: resource to select" + "description": "Path within the container at which the volume should be mounted. Must not contain ':'." }, - "divisor": { + "subPath": { "type": "string", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" + "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)." + }, + "mountPropagation": { + "$ref": "v1.MountPropagationMode", + "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationHostToContainer is used. This field is alpha in 1.8 and can be reworked or removed in a future release." } } }, - "v1.FCVolumeSource": { - "id": "v1.FCVolumeSource", - "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", + "v1.MountPropagationMode": { + "id": "v1.MountPropagationMode", + "properties": {} + }, + "v1.Probe": { + "id": "v1.Probe", + "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", "properties": { - "targetWWNs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional: FC target worldwide names (WWNs)" + "exec": { + "$ref": "v1.ExecAction", + "description": "One and only one of the following should be specified. Exec specifies the action to take." }, - "lun": { + "httpGet": { + "$ref": "v1.HTTPGetAction", + "description": "HTTPGet specifies the http request to perform." + }, + "tcpSocket": { + "$ref": "v1.TCPSocketAction", + "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" + }, + "initialDelaySeconds": { "type": "integer", "format": "int32", - "description": "Optional: FC target lun number" + "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + "timeoutSeconds": { + "type": "integer", + "format": "int32", + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + "periodSeconds": { + "type": "integer", + "format": "int32", + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1." + }, + "successThreshold": { + "type": "integer", + "format": "int32", + "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1." }, - "wwids": { + "failureThreshold": { + "type": "integer", + "format": "int32", + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1." + } + } + }, + "v1.ExecAction": { + "id": "v1.ExecAction", + "description": "ExecAction describes a \"run in container\" action.", + "properties": { + "command": { "type": "array", "items": { "type": "string" }, - "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." + "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy." } } }, - "v1.AzureFileVolumeSource": { - "id": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "v1.HTTPGetAction": { + "id": "v1.HTTPGetAction", + "description": "HTTPGetAction describes an action based on HTTP Get requests.", "required": [ - "secretName", - "shareName" + "port" ], "properties": { - "secretName": { + "path": { "type": "string", - "description": "the name of secret that contains Azure Storage Account Name and Key" + "description": "Path to access on the HTTP server." }, - "shareName": { + "port": { "type": "string", - "description": "Share Name" + "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.ConfigMapVolumeSource": { - "id": "v1.ConfigMapVolumeSource", - "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", - "properties": { - "name": { + "host": { "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead." }, - "items": { + "scheme": { + "type": "string", + "description": "Scheme to use for connecting to the host. Defaults to HTTP." + }, + "httpHeaders": { "type": "array", "items": { - "$ref": "v1.KeyToPath" + "$ref": "v1.HTTPHeader" }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" + "description": "Custom headers to set in the request. HTTP allows repeated headers." } } }, - "v1.VsphereVirtualDiskVolumeSource": { - "id": "v1.VsphereVirtualDiskVolumeSource", - "description": "Represents a vSphere volume resource.", + "v1.HTTPHeader": { + "id": "v1.HTTPHeader", + "description": "HTTPHeader describes a custom header to be used in HTTP probes", "required": [ - "volumePath" + "name", + "value" ], "properties": { - "volumePath": { - "type": "string", - "description": "Path that identifies vSphere volume vmdk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "storagePolicyName": { + "name": { "type": "string", - "description": "Storage Policy Based Management (SPBM) profile name." + "description": "The header field name" }, - "storagePolicyID": { + "value": { "type": "string", - "description": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." + "description": "The header field value" } } }, - "v1.QuobyteVolumeSource": { - "id": "v1.QuobyteVolumeSource", - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", + "v1.TCPSocketAction": { + "id": "v1.TCPSocketAction", + "description": "TCPSocketAction describes an action based on opening a socket", "required": [ - "registry", - "volume" + "port" ], "properties": { - "registry": { + "port": { "type": "string", - "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" + "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." }, - "volume": { + "host": { "type": "string", - "description": "Volume is a string that references an already created Quobyte volume by name." + "description": "Optional: Host name to connect to, defaults to the pod IP." + } + } + }, + "v1.Lifecycle": { + "id": "v1.Lifecycle", + "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", + "properties": { + "postStart": { + "$ref": "v1.Handler", + "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." + "preStop": { + "$ref": "v1.Handler", + "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" + } + } + }, + "v1.Handler": { + "id": "v1.Handler", + "description": "Handler defines a specific action that should be taken", + "properties": { + "exec": { + "$ref": "v1.ExecAction", + "description": "One and only one of the following should be specified. Exec specifies the action to take." }, - "user": { - "type": "string", - "description": "User to map volume access to Defaults to serivceaccount user" + "httpGet": { + "$ref": "v1.HTTPGetAction", + "description": "HTTPGet specifies the http request to perform." }, - "group": { - "type": "string", - "description": "Group to map volume access to Default is no group" + "tcpSocket": { + "$ref": "v1.TCPSocketAction", + "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" } } }, - "v1.AzureDiskVolumeSource": { - "id": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "required": [ - "diskName", - "diskURI" - ], + "v1.SecurityContext": { + "id": "v1.SecurityContext", + "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", "properties": { - "diskName": { - "type": "string", - "description": "The Name of the data disk in the blob storage" + "capabilities": { + "$ref": "v1.Capabilities", + "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." }, - "diskURI": { - "type": "string", - "description": "The URI the data disk in the blob storage" + "privileged": { + "type": "boolean", + "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false." }, - "cachingMode": { - "$ref": "v1.AzureDataDiskCachingMode", - "description": "Host Caching mode: None, Read Only, Read Write." + "seLinuxOptions": { + "$ref": "v1.SELinuxOptions", + "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + "runAsUser": { + "type": "integer", + "format": "int64", + "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." }, - "readOnly": { + "runAsNonRoot": { "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." }, - "kind": { - "$ref": "v1.AzureDataDiskKind", - "description": "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + "readOnlyRootFilesystem": { + "type": "boolean", + "description": "Whether this container has a read-only root filesystem. Default is false." + }, + "allowPrivilegeEscalation": { + "type": "boolean", + "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN" } } }, - "v1.AzureDataDiskCachingMode": { - "id": "v1.AzureDataDiskCachingMode", - "properties": {} + "v1.Capabilities": { + "id": "v1.Capabilities", + "description": "Adds and removes POSIX capabilities from running containers.", + "properties": { + "add": { + "type": "array", + "items": { + "$ref": "v1.Capability" + }, + "description": "Added capabilities" + }, + "drop": { + "type": "array", + "items": { + "$ref": "v1.Capability" + }, + "description": "Removed capabilities" + } + } }, - "v1.AzureDataDiskKind": { - "id": "v1.AzureDataDiskKind", + "v1.Capability": { + "id": "v1.Capability", "properties": {} }, - "v1.PhotonPersistentDiskVolumeSource": { - "id": "v1.PhotonPersistentDiskVolumeSource", - "description": "Represents a Photon Controller persistent disk resource.", - "required": [ - "pdID" - ], + "v1.SELinuxOptions": { + "id": "v1.SELinuxOptions", + "description": "SELinuxOptions are the labels to be applied to the container", "properties": { - "pdID": { + "user": { "type": "string", - "description": "ID that identifies Photon Controller persistent disk" + "description": "User is a SELinux user label that applies to the container." }, - "fsType": { + "role": { "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + "description": "Role is a SELinux role label that applies to the container." + }, + "type": { + "type": "string", + "description": "Type is a SELinux type label that applies to the container." + }, + "level": { + "type": "string", + "description": "Level is SELinux level label that applies to the container." } } }, - "v1.ProjectedVolumeSource": { - "id": "v1.ProjectedVolumeSource", - "description": "Represents a projected volume source", - "required": [ - "sources" - ], + "v1.PodSecurityContext": { + "id": "v1.PodSecurityContext", + "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", "properties": { - "sources": { + "seLinuxOptions": { + "$ref": "v1.SELinuxOptions", + "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." + }, + "runAsUser": { + "type": "integer", + "format": "int64", + "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." + }, + "runAsNonRoot": { + "type": "boolean", + "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." + }, + "supplementalGroups": { "type": "array", "items": { - "$ref": "v1.VolumeProjection" + "type": "integer" }, - "description": "list of volume projections" + "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container." }, - "defaultMode": { + "fsGroup": { "type": "integer", - "format": "int32", - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." + "format": "int64", + "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw " } } }, - "v1.VolumeProjection": { - "id": "v1.VolumeProjection", - "description": "Projection that may be projected along with other supported volume types", + "v1.Affinity": { + "id": "v1.Affinity", + "description": "Affinity is a group of affinity scheduling rules.", "properties": { - "secret": { - "$ref": "v1.SecretProjection", - "description": "information about the secret data to project" + "nodeAffinity": { + "$ref": "v1.NodeAffinity", + "description": "Describes node affinity scheduling rules for the pod." }, - "downwardAPI": { - "$ref": "v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" + "podAffinity": { + "$ref": "v1.PodAffinity", + "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." }, - "configMap": { - "$ref": "v1.ConfigMapProjection", - "description": "information about the configMap data to project" + "podAntiAffinity": { + "$ref": "v1.PodAntiAffinity", + "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." } } }, - "v1.SecretProjection": { - "id": "v1.SecretProjection", - "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", + "v1.NodeAffinity": { + "id": "v1.NodeAffinity", + "description": "Node affinity is a group of node affinity scheduling rules.", "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + "requiredDuringSchedulingIgnoredDuringExecution": { + "$ref": "v1.NodeSelector", + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." }, - "items": { + "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", "items": { - "$ref": "v1.KeyToPath" + "$ref": "v1.PreferredSchedulingTerm" }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or its key must be defined" + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." } } }, - "v1.DownwardAPIProjection": { - "id": "v1.DownwardAPIProjection", - "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", + "v1.NodeSelector": { + "id": "v1.NodeSelector", + "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", + "required": [ + "nodeSelectorTerms" + ], "properties": { - "items": { + "nodeSelectorTerms": { "type": "array", "items": { - "$ref": "v1.DownwardAPIVolumeFile" + "$ref": "v1.NodeSelectorTerm" }, - "description": "Items is a list of DownwardAPIVolume file" + "description": "Required. A list of node selector terms. The terms are ORed." } } }, - "v1.ConfigMapProjection": { - "id": "v1.ConfigMapProjection", - "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", + "v1.NodeSelectorTerm": { + "id": "v1.NodeSelectorTerm", + "description": "A null or empty node selector term matches no objects.", + "required": [ + "matchExpressions" + ], "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "items": { + "matchExpressions": { "type": "array", "items": { - "$ref": "v1.KeyToPath" + "$ref": "v1.NodeSelectorRequirement" }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" + "description": "Required. A list of node selector requirements. The requirements are ANDed." } } }, - "v1.PortworxVolumeSource": { - "id": "v1.PortworxVolumeSource", - "description": "PortworxVolumeSource represents a Portworx volume resource.", + "v1.NodeSelectorRequirement": { + "id": "v1.NodeSelectorRequirement", + "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "required": [ - "volumeID" + "key", + "operator" ], "properties": { - "volumeID": { + "key": { "type": "string", - "description": "VolumeID uniquely identifies a Portworx volume" + "description": "The label key that the selector applies to." }, - "fsType": { + "operator": { "type": "string", - "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." } } }, - "v1.ScaleIOVolumeSource": { - "id": "v1.ScaleIOVolumeSource", - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", + "v1.PreferredSchedulingTerm": { + "id": "v1.PreferredSchedulingTerm", + "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", "required": [ - "gateway", - "system", - "secretRef" + "weight", + "preference" ], "properties": { - "gateway": { - "type": "string", - "description": "The host address of the ScaleIO API Gateway." - }, - "system": { - "type": "string", - "description": "The name of the storage system as configured in ScaleIO." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "type": "boolean", - "description": "Flag to enable/disable SSL communication with Gateway, default false" - }, - "protectionDomain": { - "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." - }, - "storagePool": { - "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." - }, - "storageMode": { - "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." - }, - "volumeName": { - "type": "string", - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.StorageOSVolumeSource": { - "id": "v1.StorageOSVolumeSource", - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "volumeName": { - "type": "string", - "description": "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." - }, - "volumeNamespace": { - "type": "string", - "description": "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + "weight": { + "type": "integer", + "format": "int32", + "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." + "preference": { + "$ref": "v1.NodeSelectorTerm", + "description": "A node selector term, associated with the corresponding weight." } } }, - "v1.Container": { - "id": "v1.Container", - "description": "A single application container that you want to run within a pod.", - "required": [ - "name" - ], + "v1.PodAffinity": { + "id": "v1.PodAffinity", + "description": "Pod affinity is a group of inter pod affinity scheduling rules.", "properties": { - "name": { - "type": "string", - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated." - }, - "image": { - "type": "string", - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets." - }, - "command": { + "requiredDuringSchedulingIgnoredDuringExecution": { "type": "array", "items": { - "type": "string" + "$ref": "v1.PodAffinityTerm" }, - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell" + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, - "args": { + "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", "items": { - "type": "string" + "$ref": "v1.WeightedPodAffinityTerm" }, - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell" - }, - "workingDir": { - "type": "string", - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated." + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." + } + } + }, + "v1.PodAffinityTerm": { + "id": "v1.PodAffinityTerm", + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "required": [ + "topologyKey" + ], + "properties": { + "labelSelector": { + "$ref": "v1.LabelSelector", + "description": "A label query over a set of resources, in this case pods." }, - "ports": { + "namespaces": { "type": "array", "items": { - "$ref": "v1.ContainerPort" + "type": "string" }, - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated." + "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"" }, - "envFrom": { - "type": "array", - "items": { - "$ref": "v1.EnvFromSource" - }, - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated." + "topologyKey": { + "type": "string", + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." + } + } + }, + "v1.WeightedPodAffinityTerm": { + "id": "v1.WeightedPodAffinityTerm", + "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", + "required": [ + "weight", + "podAffinityTerm" + ], + "properties": { + "weight": { + "type": "integer", + "format": "int32", + "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100." }, - "env": { + "podAffinityTerm": { + "$ref": "v1.PodAffinityTerm", + "description": "Required. A pod affinity term, associated with the corresponding weight." + } + } + }, + "v1.PodAntiAffinity": { + "id": "v1.PodAntiAffinity", + "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", + "properties": { + "requiredDuringSchedulingIgnoredDuringExecution": { "type": "array", "items": { - "$ref": "v1.EnvVar" + "$ref": "v1.PodAffinityTerm" }, - "description": "List of environment variables to set in the container. Cannot be updated." - }, - "resources": { - "$ref": "v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, - "volumeMounts": { + "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", "items": { - "$ref": "v1.VolumeMount" + "$ref": "v1.WeightedPodAffinityTerm" }, - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated." - }, - "livenessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "readinessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "lifecycle": { - "$ref": "v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "terminationMessagePath": { - "type": "string", - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated." - }, - "terminationMessagePolicy": { - "type": "string", - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated." - }, - "imagePullPolicy": { - "type": "string", - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images" - }, - "securityContext": { - "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" - }, - "stdin": { - "type": "boolean", - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false." - }, - "stdinOnce": { - "type": "boolean", - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false" - }, - "tty": { - "type": "boolean", - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false." + "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." } } }, - "v1.ContainerPort": { - "id": "v1.ContainerPort", - "description": "ContainerPort represents a network port in a single container.", - "required": [ - "containerPort" - ], + "v1.Toleration": { + "id": "v1.Toleration", + "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", "properties": { - "name": { + "key": { "type": "string", - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services." - }, - "hostPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this." + "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys." }, - "containerPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536." + "operator": { + "type": "string", + "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category." }, - "protocol": { + "value": { "type": "string", - "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\"." + "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string." }, - "hostIP": { + "effect": { "type": "string", - "description": "What host IP to bind the external port to." + "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." + }, + "tolerationSeconds": { + "type": "integer", + "format": "int64", + "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system." } } }, - "v1.EnvFromSource": { - "id": "v1.EnvFromSource", - "description": "EnvFromSource represents the source of a set of ConfigMaps", + "v1.HostAlias": { + "id": "v1.HostAlias", + "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", "properties": { - "prefix": { + "ip": { "type": "string", - "description": "An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER." - }, - "configMapRef": { - "$ref": "v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" + "description": "IP address of the host file entry." }, - "secretRef": { - "$ref": "v1.SecretEnvSource", - "description": "The Secret to select from" + "hostnames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Hostnames for the above IP address." } } }, - "v1.ConfigMapEnvSource": { - "id": "v1.ConfigMapEnvSource", - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", + "v1.DaemonSetUpdateStrategy": { + "id": "v1.DaemonSetUpdateStrategy", + "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", "properties": { - "name": { + "type": { "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate." }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap must be defined" + "rollingUpdate": { + "$ref": "v1.RollingUpdateDaemonSet", + "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." } } }, - "v1.SecretEnvSource": { - "id": "v1.SecretEnvSource", - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", + "v1.RollingUpdateDaemonSet": { + "id": "v1.RollingUpdateDaemonSet", + "description": "Spec to control the desired behavior of daemon set rolling update.", "properties": { - "name": { + "maxUnavailable": { "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret must be defined" + "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." } } }, - "v1.EnvVar": { - "id": "v1.EnvVar", - "description": "EnvVar represents an environment variable present in a Container.", + "v1.DaemonSetStatus": { + "id": "v1.DaemonSetStatus", + "description": "DaemonSetStatus represents the current status of a daemon set.", "required": [ - "name" + "currentNumberScheduled", + "numberMisscheduled", + "desiredNumberScheduled", + "numberReady" ], "properties": { - "name": { - "type": "string", - "description": "Name of the environment variable. Must be a C_IDENTIFIER." + "currentNumberScheduled": { + "type": "integer", + "format": "int32", + "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" }, - "value": { - "type": "string", - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\"." + "numberMisscheduled": { + "type": "integer", + "format": "int32", + "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" }, - "valueFrom": { - "$ref": "v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - } - }, - "v1.EnvVarSource": { - "id": "v1.EnvVarSource", - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP." + "desiredNumberScheduled": { + "type": "integer", + "format": "int32", + "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." + "numberReady": { + "type": "integer", + "format": "int32", + "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready." + }, + "observedGeneration": { + "type": "integer", + "format": "int64", + "description": "The most recent generation observed by the daemon set controller." + }, + "updatedNumberScheduled": { + "type": "integer", + "format": "int32", + "description": "The total number of nodes that are running updated daemon pod" + }, + "numberAvailable": { + "type": "integer", + "format": "int32", + "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)" + }, + "numberUnavailable": { + "type": "integer", + "format": "int32", + "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)" }, - "configMapKeyRef": { - "$ref": "v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." + "collisionCount": { + "type": "integer", + "format": "int32", + "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." }, - "secretKeyRef": { - "$ref": "v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" + "conditions": { + "type": "array", + "items": { + "$ref": "v1.DaemonSetCondition" + }, + "description": "Represents the latest available observations of a DaemonSet's current state." } } }, - "v1.ConfigMapKeySelector": { - "id": "v1.ConfigMapKeySelector", - "description": "Selects a key from a ConfigMap.", + "v1.DaemonSetCondition": { + "id": "v1.DaemonSetCondition", + "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", "required": [ - "key" + "type", + "status" ], "properties": { - "name": { + "type": { "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + "description": "Type of DaemonSet condition." }, - "key": { + "status": { "type": "string", - "description": "The key to select." + "description": "Status of the condition, one of True, False, Unknown." }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's key must be defined" + "lastTransitionTime": { + "type": "string", + "description": "Last time the condition transitioned from one status to another." + }, + "reason": { + "type": "string", + "description": "The reason for the condition's last transition." + }, + "message": { + "type": "string", + "description": "A human readable message indicating details about the transition." } } }, - "v1.SecretKeySelector": { - "id": "v1.SecretKeySelector", - "description": "SecretKeySelector selects a key of a Secret.", + "v1.DeploymentList": { + "id": "v1.DeploymentList", + "description": "DeploymentList is a list of Deployments.", "required": [ - "key" + "items" ], "properties": { - "name": { + "kind": { "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" }, - "key": { + "apiVersion": { "type": "string", - "description": "The key of the secret to select from. Must be a valid secret key." + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's key must be defined" + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard list metadata." + }, + "items": { + "type": "array", + "items": { + "$ref": "v1.Deployment" + }, + "description": "Items is the list of Deployments." } } }, - "v1.ResourceRequirements": { - "id": "v1.ResourceRequirements", - "description": "ResourceRequirements describes the compute resource requirements.", + "v1.Deployment": { + "id": "v1.Deployment", + "description": "Deployment enables declarative updates for Pods and ReplicaSets.", "properties": { - "limits": { - "type": "object", - "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" }, - "requests": { - "type": "object", - "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object metadata." + }, + "spec": { + "$ref": "v1.DeploymentSpec", + "description": "Specification of the desired behavior of the Deployment." + }, + "status": { + "$ref": "v1.DeploymentStatus", + "description": "Most recently observed status of the Deployment." } } }, - "v1.VolumeMount": { - "id": "v1.VolumeMount", - "description": "VolumeMount describes a mounting of a Volume within a container.", + "v1.DeploymentSpec": { + "id": "v1.DeploymentSpec", + "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", "required": [ - "name", - "mountPath" + "selector", + "template" ], "properties": { - "name": { - "type": "string", - "description": "This must match the Name of a Volume." + "replicas": { + "type": "integer", + "format": "int32", + "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1." }, - "readOnly": { + "selector": { + "$ref": "v1.LabelSelector", + "description": "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": { + "$ref": "v1.PodTemplateSpec", + "description": "Template describes the pods that will be created." + }, + "strategy": { + "$ref": "v1.DeploymentStrategy", + "description": "The deployment strategy to use to replace existing pods with new ones." + }, + "minReadySeconds": { + "type": "integer", + "format": "int32", + "description": "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)" + }, + "revisionHistoryLimit": { + "type": "integer", + "format": "int32", + "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10." + }, + "paused": { "type": "boolean", - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false." + "description": "Indicates that the deployment is paused." }, - "mountPath": { + "progressDeadlineSeconds": { + "type": "integer", + "format": "int32", + "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s." + } + } + }, + "v1.DeploymentStrategy": { + "id": "v1.DeploymentStrategy", + "description": "DeploymentStrategy describes how to replace existing pods with new ones.", + "properties": { + "type": { "type": "string", - "description": "Path within the container at which the volume should be mounted. Must not contain ':'." + "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate." }, - "subPath": { + "rollingUpdate": { + "$ref": "v1.RollingUpdateDeployment", + "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." + } + } + }, + "v1.RollingUpdateDeployment": { + "id": "v1.RollingUpdateDeployment", + "description": "Spec to control the desired behavior of rolling update.", + "properties": { + "maxUnavailable": { "type": "string", - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)." + "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." }, - "mountPropagation": { - "$ref": "v1.MountPropagationMode", - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationHostToContainer is used. This field is alpha in 1.8 and can be reworked or removed in a future release." + "maxSurge": { + "type": "string", + "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods." } } }, - "v1.MountPropagationMode": { - "id": "v1.MountPropagationMode", - "properties": {} - }, - "v1.Probe": { - "id": "v1.Probe", - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "v1.DeploymentStatus": { + "id": "v1.DeploymentStatus", + "description": "DeploymentStatus is the most recently observed status of the Deployment.", "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" + "observedGeneration": { + "type": "integer", + "format": "int64", + "description": "The generation observed by the deployment controller." }, - "initialDelaySeconds": { + "replicas": { "type": "integer", "format": "int32", - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector)." }, - "timeoutSeconds": { + "updatedReplicas": { "type": "integer", "format": "int32", - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec." }, - "periodSeconds": { + "readyReplicas": { "type": "integer", "format": "int32", - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1." + "description": "Total number of ready pods targeted by this deployment." }, - "successThreshold": { + "availableReplicas": { "type": "integer", "format": "int32", - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1." + "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment." }, - "failureThreshold": { + "unavailableReplicas": { "type": "integer", "format": "int32", - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1." - } - } - }, - "v1.ExecAction": { - "id": "v1.ExecAction", - "description": "ExecAction describes a \"run in container\" action.", - "properties": { - "command": { + "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created." + }, + "conditions": { "type": "array", "items": { - "type": "string" + "$ref": "v1.DeploymentCondition" }, - "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy." + "description": "Represents the latest available observations of a deployment's current state." + }, + "collisionCount": { + "type": "integer", + "format": "int32", + "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet." } } }, - "v1.HTTPGetAction": { - "id": "v1.HTTPGetAction", - "description": "HTTPGetAction describes an action based on HTTP Get requests.", + "v1.DeploymentCondition": { + "id": "v1.DeploymentCondition", + "description": "DeploymentCondition describes the state of a deployment at a certain point.", "required": [ - "port" + "type", + "status" ], "properties": { - "path": { + "type": { "type": "string", - "description": "Path to access on the HTTP server." + "description": "Type of deployment condition." }, - "port": { + "status": { "type": "string", - "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." + "description": "Status of the condition, one of True, False, Unknown." }, - "host": { + "lastUpdateTime": { "type": "string", - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead." + "description": "The last time this condition was updated." }, - "scheme": { + "lastTransitionTime": { "type": "string", - "description": "Scheme to use for connecting to the host. Defaults to HTTP." + "description": "Last time the condition transitioned from one status to another." }, - "httpHeaders": { - "type": "array", - "items": { - "$ref": "v1.HTTPHeader" - }, - "description": "Custom headers to set in the request. HTTP allows repeated headers." - } - } - }, - "v1.HTTPHeader": { - "id": "v1.HTTPHeader", - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "required": [ - "name", - "value" - ], - "properties": { - "name": { + "reason": { "type": "string", - "description": "The header field name" + "description": "The reason for the condition's last transition." }, - "value": { + "message": { "type": "string", - "description": "The header field value" + "description": "A human readable message indicating details about the transition." } } }, - "v1.TCPSocketAction": { - "id": "v1.TCPSocketAction", - "description": "TCPSocketAction describes an action based on opening a socket", - "required": [ - "port" - ], + "v1.Scale": { + "id": "v1.Scale", + "description": "Scale represents a scaling request for a resource.", "properties": { - "port": { + "kind": { "type": "string", - "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" }, - "host": { + "apiVersion": { "type": "string", - "description": "Optional: Host name to connect to, defaults to the pod IP." - } - } - }, - "v1.Lifecycle": { - "id": "v1.Lifecycle", - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" }, - "preStop": { - "$ref": "v1.Handler", - "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - } - } - }, - "v1.Handler": { - "id": "v1.Handler", - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata." }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." + "spec": { + "$ref": "v1.ScaleSpec", + "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status." }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" + "status": { + "$ref": "v1.ScaleStatus", + "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only." } } }, - "v1.SecurityContext": { - "id": "v1.SecurityContext", - "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", + "v1.ScaleSpec": { + "id": "v1.ScaleSpec", + "description": "ScaleSpec describes the attributes of a scale subresource.", "properties": { - "capabilities": { - "$ref": "v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "type": "boolean", - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false." - }, - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsUser": { + "replicas": { "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "readOnlyRootFilesystem": { - "type": "boolean", - "description": "Whether this container has a read-only root filesystem. Default is false." - }, - "allowPrivilegeEscalation": { - "type": "boolean", - "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN" + "format": "int32", + "description": "desired number of instances for the scaled object." } } }, - "v1.Capabilities": { - "id": "v1.Capabilities", - "description": "Adds and removes POSIX capabilities from running containers.", + "v1.ScaleStatus": { + "id": "v1.ScaleStatus", + "description": "ScaleStatus represents the current status of a scale subresource.", + "required": [ + "replicas" + ], "properties": { - "add": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Added capabilities" + "replicas": { + "type": "integer", + "format": "int32", + "description": "actual number of observed instances of the scaled object." }, - "drop": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Removed capabilities" + "selector": { + "type": "string", + "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors" } } }, - "v1.Capability": { - "id": "v1.Capability", - "properties": {} - }, - "v1.SELinuxOptions": { - "id": "v1.SELinuxOptions", - "description": "SELinuxOptions are the labels to be applied to the container", + "v1.ReplicaSetList": { + "id": "v1.ReplicaSetList", + "description": "ReplicaSetList is a collection of ReplicaSets.", + "required": [ + "items" + ], "properties": { - "user": { + "kind": { "type": "string", - "description": "User is a SELinux user label that applies to the container." + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" }, - "role": { + "apiVersion": { "type": "string", - "description": "Role is a SELinux role label that applies to the container." + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" }, - "type": { - "type": "string", - "description": "Type is a SELinux type label that applies to the container." + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" }, - "level": { - "type": "string", - "description": "Level is SELinux level label that applies to the container." + "items": { + "type": "array", + "items": { + "$ref": "v1.ReplicaSet" + }, + "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller" } } }, - "v1.PodSecurityContext": { - "id": "v1.PodSecurityContext", - "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", + "v1.ReplicaSet": { + "id": "v1.ReplicaSet", + "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", "properties": { - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, - "supplementalGroups": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container." + "spec": { + "$ref": "v1.ReplicaSetSpec", + "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" }, - "fsGroup": { - "type": "integer", - "format": "int64", - "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw " + "status": { + "$ref": "v1.ReplicaSetStatus", + "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" } } }, - "v1.Affinity": { - "id": "v1.Affinity", - "description": "Affinity is a group of affinity scheduling rules.", + "v1.ReplicaSetSpec": { + "id": "v1.ReplicaSetSpec", + "description": "ReplicaSetSpec is the specification of a ReplicaSet.", + "required": [ + "selector" + ], "properties": { - "nodeAffinity": { - "$ref": "v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." + "replicas": { + "type": "integer", + "format": "int32", + "description": "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" }, - "podAffinity": { - "$ref": "v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." + "minReadySeconds": { + "type": "integer", + "format": "int32", + "description": "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)" }, - "podAntiAffinity": { - "$ref": "v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." + "selector": { + "$ref": "v1.LabelSelector", + "description": "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": { + "$ref": "v1.PodTemplateSpec", + "description": "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" } } }, - "v1.NodeAffinity": { - "id": "v1.NodeAffinity", - "description": "Node affinity is a group of node affinity scheduling rules.", + "v1.ReplicaSetStatus": { + "id": "v1.ReplicaSetStatus", + "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", + "required": [ + "replicas" + ], "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." + "replicas": { + "type": "integer", + "format": "int32", + "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller" }, - "preferredDuringSchedulingIgnoredDuringExecution": { + "fullyLabeledReplicas": { + "type": "integer", + "format": "int32", + "description": "The number of pods that have labels matching the labels of the pod template of the replicaset." + }, + "readyReplicas": { + "type": "integer", + "format": "int32", + "description": "The number of ready replicas for this replica set." + }, + "availableReplicas": { + "type": "integer", + "format": "int32", + "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set." + }, + "observedGeneration": { + "type": "integer", + "format": "int64", + "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet." + }, + "conditions": { "type": "array", "items": { - "$ref": "v1.PreferredSchedulingTerm" + "$ref": "v1.ReplicaSetCondition" }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." + "description": "Represents the latest available observations of a replica set's current state." } } }, - "v1.NodeSelector": { - "id": "v1.NodeSelector", - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", + "v1.ReplicaSetCondition": { + "id": "v1.ReplicaSetCondition", + "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", "required": [ - "nodeSelectorTerms" + "type", + "status" ], "properties": { - "nodeSelectorTerms": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorTerm" - }, - "description": "Required. A list of node selector terms. The terms are ORed." + "type": { + "type": "string", + "description": "Type of replica set condition." + }, + "status": { + "type": "string", + "description": "Status of the condition, one of True, False, Unknown." + }, + "lastTransitionTime": { + "type": "string", + "description": "The last time the condition transitioned from one status to another." + }, + "reason": { + "type": "string", + "description": "The reason for the condition's last transition." + }, + "message": { + "type": "string", + "description": "A human readable message indicating details about the transition." } } }, - "v1.NodeSelectorTerm": { - "id": "v1.NodeSelectorTerm", - "description": "A null or empty node selector term matches no objects.", + "v1.StatefulSetList": { + "id": "v1.StatefulSetList", + "description": "StatefulSetList is a collection of StatefulSets.", "required": [ - "matchExpressions" + "items" ], "properties": { - "matchExpressions": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta" + }, + "items": { "type": "array", "items": { - "$ref": "v1.NodeSelectorRequirement" - }, - "description": "Required. A list of node selector requirements. The requirements are ANDed." + "$ref": "v1.StatefulSet" + } } } }, - "v1.NodeSelectorRequirement": { - "id": "v1.NodeSelectorRequirement", - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], + "v1.StatefulSet": { + "id": "v1.StatefulSet", + "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", "properties": { - "key": { + "kind": { "type": "string", - "description": "The label key that the selector applies to." + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" }, - "operator": { + "apiVersion": { "type": "string", - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" }, - "values": { + "metadata": { + "$ref": "v1.ObjectMeta" + }, + "spec": { + "$ref": "v1.StatefulSetSpec", + "description": "Spec defines the desired identities of pods in this set." + }, + "status": { + "$ref": "v1.StatefulSetStatus", + "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time." + } + } + }, + "v1.StatefulSetSpec": { + "id": "v1.StatefulSetSpec", + "description": "A StatefulSetSpec is the specification of a StatefulSet.", + "required": [ + "selector", + "template", + "serviceName" + ], + "properties": { + "replicas": { + "type": "integer", + "format": "int32", + "description": "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": { + "$ref": "v1.LabelSelector", + "description": "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": { + "$ref": "v1.PodTemplateSpec", + "description": "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": { "type": "array", "items": { - "type": "string" + "$ref": "v1.PersistentVolumeClaim" }, - "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." + "description": "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": { + "type": "string", + "description": "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." + }, + "podManagementPolicy": { + "type": "string", + "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once." + }, + "updateStrategy": { + "$ref": "v1.StatefulSetUpdateStrategy", + "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template." + }, + "revisionHistoryLimit": { + "type": "integer", + "format": "int32", + "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10." } } }, - "v1.PreferredSchedulingTerm": { - "id": "v1.PreferredSchedulingTerm", - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "required": [ - "weight", - "preference" - ], + "v1.PersistentVolumeClaim": { + "id": "v1.PersistentVolumeClaim", + "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" }, - "preference": { - "$ref": "v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "spec": { + "$ref": "v1.PersistentVolumeClaimSpec", + "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + }, + "status": { + "$ref": "v1.PersistentVolumeClaimStatus", + "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" } } }, - "v1.PodAffinity": { - "id": "v1.PodAffinity", - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", + "v1.PersistentVolumeClaimSpec": { + "id": "v1.PersistentVolumeClaimSpec", + "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes", "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { + "accessModes": { "type": "array", "items": { - "$ref": "v1.PodAffinityTerm" + "$ref": "v1.PersistentVolumeAccessMode" }, - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.PodAffinityTerm": { - "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { + "selector": { "$ref": "v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." + "description": "A label query over volumes to consider for binding." }, - "namespaces": { - "type": "array", - "items": { - "type": "string" - }, - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"" + "resources": { + "$ref": "v1.ResourceRequirements", + "description": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" }, - "topologyKey": { + "volumeName": { "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." - } - } - }, - "v1.WeightedPodAffinityTerm": { - "id": "v1.WeightedPodAffinityTerm", - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "required": [ - "weight", - "podAffinityTerm" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100." + "description": "VolumeName is the binding reference to the PersistentVolume backing this claim." }, - "podAffinityTerm": { - "$ref": "v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." + "storageClassName": { + "type": "string", + "description": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1" } } }, - "v1.PodAntiAffinity": { - "id": "v1.PodAntiAffinity", - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", + "v1.PersistentVolumeAccessMode": { + "id": "v1.PersistentVolumeAccessMode", + "properties": {} + }, + "v1.PersistentVolumeClaimStatus": { + "id": "v1.PersistentVolumeClaimStatus", + "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { + "phase": { + "type": "string", + "description": "Phase represents the current phase of PersistentVolumeClaim." + }, + "accessModes": { "type": "array", "items": { - "$ref": "v1.PodAffinityTerm" + "$ref": "v1.PersistentVolumeAccessMode" }, - "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1" }, - "preferredDuringSchedulingIgnoredDuringExecution": { + "capacity": { + "type": "object", + "description": "Represents the actual resources of the underlying volume." + }, + "conditions": { "type": "array", "items": { - "$ref": "v1.WeightedPodAffinityTerm" + "$ref": "v1.PersistentVolumeClaimCondition" }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." + "description": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'." } } }, - "v1.Toleration": { - "id": "v1.Toleration", - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", + "v1.PersistentVolumeClaimCondition": { + "id": "v1.PersistentVolumeClaimCondition", + "description": "PersistentVolumeClaimCondition contails details about state of pvc", + "required": [ + "type", + "status" + ], "properties": { - "key": { - "type": "string", - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys." + "type": { + "type": "string" }, - "operator": { - "type": "string", - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category." + "status": { + "type": "string" }, - "value": { + "lastProbeTime": { "type": "string", - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string." + "description": "Last time we probed the condition." }, - "effect": { + "lastTransitionTime": { "type": "string", - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." + "description": "Last time the condition transitioned from one status to another." }, - "tolerationSeconds": { - "type": "integer", - "format": "int64", - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system." - } - } - }, - "v1.HostAlias": { - "id": "v1.HostAlias", - "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - "properties": { - "ip": { + "reason": { "type": "string", - "description": "IP address of the host file entry." + "description": "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized." }, - "hostnames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Hostnames for the above IP address." + "message": { + "type": "string", + "description": "Human-readable message indicating details about last transition." } } }, - "v1.DaemonSetUpdateStrategy": { - "id": "v1.DaemonSetUpdateStrategy", - "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", + "v1.StatefulSetUpdateStrategy": { + "id": "v1.StatefulSetUpdateStrategy", + "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", "properties": { "type": { "type": "string", - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate." + "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate." }, "rollingUpdate": { - "$ref": "v1.RollingUpdateDaemonSet", - "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." + "$ref": "v1.RollingUpdateStatefulSetStrategy", + "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType." } } }, - "v1.RollingUpdateDaemonSet": { - "id": "v1.RollingUpdateDaemonSet", - "description": "Spec to control the desired behavior of daemon set rolling update.", + "v1.RollingUpdateStatefulSetStrategy": { + "id": "v1.RollingUpdateStatefulSetStrategy", + "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", "properties": { - "maxUnavailable": { - "type": "string", - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." + "partition": { + "type": "integer", + "format": "int32", + "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0." } } }, - "v1.DaemonSetStatus": { - "id": "v1.DaemonSetStatus", - "description": "DaemonSetStatus represents the current status of a daemon set.", + "v1.StatefulSetStatus": { + "id": "v1.StatefulSetStatus", + "description": "StatefulSetStatus represents the current state of a StatefulSet.", "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" + "replicas" ], "properties": { - "currentNumberScheduled": { + "observedGeneration": { "type": "integer", - "format": "int32", - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" + "format": "int64", + "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server." }, - "numberMisscheduled": { + "replicas": { "type": "integer", "format": "int32", - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" + "description": "replicas is the number of Pods created by the StatefulSet controller." }, - "desiredNumberScheduled": { + "readyReplicas": { "type": "integer", "format": "int32", - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" + "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition." }, - "numberReady": { + "currentReplicas": { "type": "integer", "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready." - }, - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "The most recent generation observed by the daemon set controller." + "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision." }, - "updatedNumberScheduled": { + "updatedReplicas": { "type": "integer", "format": "int32", - "description": "The total number of nodes that are running updated daemon pod" + "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision." }, - "numberAvailable": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)" + "currentRevision": { + "type": "string", + "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas)." }, - "numberUnavailable": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)" + "updateRevision": { + "type": "string", + "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)" }, "collisionCount": { "type": "integer", "format": "int32", - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." + }, + "conditions": { + "type": "array", + "items": { + "$ref": "v1.StatefulSetCondition" + }, + "description": "Represents the latest available observations of a statefulset's current state." } } }, - "v1.WatchEvent": { - "id": "v1.WatchEvent", + "v1.StatefulSetCondition": { + "id": "v1.StatefulSetCondition", + "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", "required": [ "type", - "object" + "status" ], "properties": { "type": { - "type": "string" - }, - "object": { - "type": "string" - } - } - }, - "v1.Patch": { - "id": "v1.Patch", - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "properties": {} - }, - "v1.DeleteOptions": { - "id": "v1.DeleteOptions", - "description": "DeleteOptions may be provided when deleting an API object.", - "properties": { - "kind": { "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + "description": "Type of statefulset condition." }, - "apiVersion": { + "status": { "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." + "description": "Status of the condition, one of True, False, Unknown." }, - "preconditions": { - "$ref": "v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." + "lastTransitionTime": { + "type": "string", + "description": "Last time the condition transitioned from one status to another." }, - "orphanDependents": { - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." + "reason": { + "type": "string", + "description": "The reason for the condition's last transition." }, - "propagationPolicy": { - "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." - } - } - }, - "v1.Preconditions": { - "id": "v1.Preconditions", - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "uid": { - "$ref": "types.UID", - "description": "Specifies the target UID." + "message": { + "type": "string", + "description": "A human readable message indicating details about the transition." } } }, - "types.UID": { - "id": "types.UID", - "properties": {} - }, - "v1.DeletionPropagation": { - "id": "v1.DeletionPropagation", - "properties": {} - }, "v1.APIResourceList": { "id": "v1.APIResourceList", "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta1.json index 3972b3f65..10c2c6d61 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1588,7 +1588,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -2971,7 +2971,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -3815,7 +3815,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -4061,7 +4061,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, @@ -5344,15 +5344,15 @@ }, "protectionDomain": { "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." + "description": "The name of the ScaleIO Protection Domain for the configured storage." }, "storagePool": { "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." + "description": "The ScaleIO Storage Pool associated with the protection domain." }, "storageMode": { "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." }, "volumeName": { "type": "string", @@ -5485,7 +5485,7 @@ }, "securityContext": { "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" }, "stdin": { "type": "boolean", @@ -6111,7 +6111,10 @@ }, "v1.PodAffinityTerm": { "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "required": [ + "topologyKey" + ], "properties": { "labelSelector": { "$ref": "v1.LabelSelector", @@ -6126,7 +6129,7 @@ }, "topologyKey": { "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." } } }, @@ -6709,6 +6712,43 @@ "type": "integer", "format": "int32", "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." + }, + "conditions": { + "type": "array", + "items": { + "$ref": "v1beta1.StatefulSetCondition" + }, + "description": "Represents the latest available observations of a statefulset's current state." + } + } + }, + "v1beta1.StatefulSetCondition": { + "id": "v1beta1.StatefulSetCondition", + "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "type": { + "type": "string", + "description": "Type of statefulset condition." + }, + "status": { + "type": "string", + "description": "Status of the condition, one of True, False, Unknown." + }, + "lastTransitionTime": { + "type": "string", + "description": "Last time the condition transitioned from one status to another." + }, + "reason": { + "type": "string", + "description": "The reason for the condition's last transition." + }, + "message": { + "type": "string", + "description": "A human readable message indicating details about the transition." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta2.json b/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta2.json index e041cfbef..8108a1001 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta2.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta2.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1588,7 +1588,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -2730,7 +2730,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -4042,7 +4042,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -5354,7 +5354,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -6198,7 +6198,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -6444,7 +6444,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, @@ -7709,15 +7709,15 @@ }, "protectionDomain": { "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." + "description": "The name of the ScaleIO Protection Domain for the configured storage." }, "storagePool": { "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." + "description": "The ScaleIO Storage Pool associated with the protection domain." }, "storageMode": { "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." }, "volumeName": { "type": "string", @@ -7850,7 +7850,7 @@ }, "securityContext": { "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" }, "stdin": { "type": "boolean", @@ -8476,7 +8476,10 @@ }, "v1.PodAffinityTerm": { "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "required": [ + "topologyKey" + ], "properties": { "labelSelector": { "$ref": "v1.LabelSelector", @@ -8491,7 +8494,7 @@ }, "topologyKey": { "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." } } }, @@ -8656,6 +8659,43 @@ "type": "integer", "format": "int32", "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." + }, + "conditions": { + "type": "array", + "items": { + "$ref": "v1beta2.DaemonSetCondition" + }, + "description": "Represents the latest available observations of a DaemonSet's current state." + } + } + }, + "v1beta2.DaemonSetCondition": { + "id": "v1beta2.DaemonSetCondition", + "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "type": { + "type": "string", + "description": "Type of DaemonSet condition." + }, + "status": { + "type": "string", + "description": "Status of the condition, one of True, False, Unknown." + }, + "lastTransitionTime": { + "type": "string", + "description": "Last time the condition transitioned from one status to another." + }, + "reason": { + "type": "string", + "description": "The reason for the condition's last transition." + }, + "message": { + "type": "string", + "description": "A human readable message indicating details about the transition." } } }, @@ -9362,6 +9402,43 @@ "type": "integer", "format": "int32", "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." + }, + "conditions": { + "type": "array", + "items": { + "$ref": "v1beta2.StatefulSetCondition" + }, + "description": "Represents the latest available observations of a statefulset's current state." + } + } + }, + "v1beta2.StatefulSetCondition": { + "id": "v1beta2.StatefulSetCondition", + "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "type": { + "type": "string", + "description": "Type of statefulset condition." + }, + "status": { + "type": "string", + "description": "Status of the condition, one of True, False, Unknown." + }, + "lastTransitionTime": { + "type": "string", + "description": "Last time the condition transitioned from one status to another." + }, + "reason": { + "type": "string", + "description": "The reason for the condition's last transition." + }, + "message": { + "type": "string", + "description": "A human readable message indicating details about the transition." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1.json index 035bc3de8..99e1146a8 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1.json @@ -155,7 +155,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1beta1.json index 290648a51..fa507c2b8 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1beta1.json @@ -155,7 +155,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1.json index 46f957024..56f1720c4 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1.json @@ -328,7 +328,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -635,7 +635,11 @@ "properties": { "allowed": { "type": "boolean", - "description": "Allowed is required. True if the action would be allowed, false otherwise." + "description": "Allowed is required. True if the action would be allowed, false otherwise." + }, + "denied": { + "type": "boolean", + "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true." }, "reason": { "type": "string", @@ -785,7 +789,7 @@ "items": { "type": "string" }, - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all." + "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups." }, "resourceNames": { "type": "array", diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1beta1.json index dcc02d2b0..e2c8f923a 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1beta1.json @@ -328,7 +328,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -635,7 +635,11 @@ "properties": { "allowed": { "type": "boolean", - "description": "Allowed is required. True if the action would be allowed, false otherwise." + "description": "Allowed is required. True if the action would be allowed, false otherwise." + }, + "denied": { + "type": "boolean", + "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true." }, "reason": { "type": "string", @@ -785,7 +789,7 @@ "items": { "type": "string" }, - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all." + "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups." }, "resourceNames": { "type": "array", diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v1.json index 36a600473..ab8f6e011 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1286,7 +1286,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1617,7 +1617,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v2beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v2beta1.json index 9b09f31b9..082485c75 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v2beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v2beta1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1286,7 +1286,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1837,7 +1837,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1.json index e64f92ce4..4baf3b1a6 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1286,7 +1286,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1518,7 +1518,7 @@ }, "manualSelector": { "type": "boolean", - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md" + "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector" }, "template": { "$ref": "v1.PodTemplateSpec", @@ -2684,15 +2684,15 @@ }, "protectionDomain": { "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." + "description": "The name of the ScaleIO Protection Domain for the configured storage." }, "storagePool": { "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." + "description": "The ScaleIO Storage Pool associated with the protection domain." }, "storageMode": { "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." }, "volumeName": { "type": "string", @@ -2825,7 +2825,7 @@ }, "securityContext": { "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" }, "stdin": { "type": "boolean", @@ -3451,7 +3451,10 @@ }, "v1.PodAffinityTerm": { "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "required": [ + "topologyKey" + ], "properties": { "labelSelector": { "$ref": "v1.LabelSelector", @@ -3466,7 +3469,7 @@ }, "topologyKey": { "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." } } }, @@ -3670,7 +3673,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1beta1.json index 8dcb9ea0b..d6463d9bd 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1beta1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1286,7 +1286,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1504,7 +1504,7 @@ }, "concurrencyPolicy": { "type": "string", - "description": "Specifies how to treat concurrent executions of a Job. Defaults to Allow." + "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one" }, "suspend": { "type": "boolean", @@ -1573,7 +1573,7 @@ }, "manualSelector": { "type": "boolean", - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md" + "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector" }, "template": { "$ref": "v1.PodTemplateSpec", @@ -2739,15 +2739,15 @@ }, "protectionDomain": { "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." + "description": "The name of the ScaleIO Protection Domain for the configured storage." }, "storagePool": { "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." + "description": "The ScaleIO Storage Pool associated with the protection domain." }, "storageMode": { "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." }, "volumeName": { "type": "string", @@ -2880,7 +2880,7 @@ }, "securityContext": { "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" }, "stdin": { "type": "boolean", @@ -3506,7 +3506,10 @@ }, "v1.PodAffinityTerm": { "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "required": [ + "topologyKey" + ], "properties": { "labelSelector": { "$ref": "v1.LabelSelector", @@ -3521,7 +3524,7 @@ }, "topologyKey": { "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." } } }, @@ -3706,7 +3709,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v2alpha1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v2alpha1.json index 52bd44dbf..9c8b2ee61 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v2alpha1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/batch_v2alpha1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1286,7 +1286,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1504,7 +1504,7 @@ }, "concurrencyPolicy": { "type": "string", - "description": "Specifies how to treat concurrent executions of a Job. Defaults to Allow." + "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one" }, "suspend": { "type": "boolean", @@ -1573,7 +1573,7 @@ }, "manualSelector": { "type": "boolean", - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md" + "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector" }, "template": { "$ref": "v1.PodTemplateSpec", @@ -2739,15 +2739,15 @@ }, "protectionDomain": { "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." + "description": "The name of the ScaleIO Protection Domain for the configured storage." }, "storagePool": { "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." + "description": "The ScaleIO Storage Pool associated with the protection domain." }, "storageMode": { "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." }, "volumeName": { "type": "string", @@ -2880,7 +2880,7 @@ }, "securityContext": { "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" }, "stdin": { "type": "boolean", @@ -3506,7 +3506,10 @@ }, "v1.PodAffinityTerm": { "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "required": [ + "topologyKey" + ], "properties": { "labelSelector": { "$ref": "v1.LabelSelector", @@ -3521,7 +3524,7 @@ }, "topologyKey": { "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." } } }, @@ -3706,7 +3709,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/certificates.k8s.io_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/certificates.k8s.io_v1beta1.json index 0c301503c..025b54ae5 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/certificates.k8s.io_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/certificates.k8s.io_v1beta1.json @@ -560,7 +560,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -950,7 +950,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1279,7 +1279,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/extensions_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/extensions_v1beta1.json index 6d86c3f52..e941401a4 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/extensions_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/extensions_v1beta1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1758,7 +1758,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -3141,7 +3141,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -4283,7 +4283,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -5199,7 +5199,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -5949,7 +5949,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -6959,7 +6959,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -8352,15 +8352,15 @@ }, "protectionDomain": { "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." + "description": "The name of the ScaleIO Protection Domain for the configured storage." }, "storagePool": { "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." + "description": "The ScaleIO Storage Pool associated with the protection domain." }, "storageMode": { "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." }, "volumeName": { "type": "string", @@ -8493,7 +8493,7 @@ }, "securityContext": { "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" }, "stdin": { "type": "boolean", @@ -9119,7 +9119,10 @@ }, "v1.PodAffinityTerm": { "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "required": [ + "topologyKey" + ], "properties": { "labelSelector": { "$ref": "v1.LabelSelector", @@ -9134,7 +9137,7 @@ }, "topologyKey": { "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." } } }, @@ -9298,6 +9301,43 @@ "type": "integer", "format": "int32", "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." + }, + "conditions": { + "type": "array", + "items": { + "$ref": "v1beta1.DaemonSetCondition" + }, + "description": "Represents the latest available observations of a DaemonSet's current state." + } + } + }, + "v1beta1.DaemonSetCondition": { + "id": "v1beta1.DaemonSetCondition", + "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "required": [ + "type", + "status" + ], + "properties": { + "type": { + "type": "string", + "description": "Type of DaemonSet condition." + }, + "status": { + "type": "string", + "description": "Status of the condition, one of True, False, Unknown." + }, + "lastTransitionTime": { + "type": "string", + "description": "Last time the condition transitioned from one status to another." + }, + "reason": { + "type": "string", + "description": "The reason for the condition's last transition." + }, + "message": { + "type": "string", + "description": "A human readable message indicating details about the transition." } } }, @@ -9348,7 +9388,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, @@ -10129,7 +10169,7 @@ "items": { "$ref": "v1.Capability" }, - "description": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capabiility in both DefaultAddCapabilities and RequiredDropCapabilities." + "description": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the AllowedCapabilities list." }, "requiredDropCapabilities": { "type": "array", @@ -10245,7 +10285,7 @@ }, "seLinuxOptions": { "$ref": "v1.SELinuxOptions", - "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" + "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/networking.k8s.io_v1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/networking.k8s.io_v1.json index d11ed82b3..fd4634e9e 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/networking.k8s.io_v1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/networking.k8s.io_v1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1112,7 +1112,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1534,7 +1534,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/policy_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/policy_v1beta1.json index 884b287e2..18b6119d9 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/policy_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/policy_v1beta1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1283,7 +1283,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1631,7 +1631,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1.json index cd46e7dfd..722df344c 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1.json @@ -544,7 +544,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1222,7 +1222,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1956,7 +1956,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -2912,7 +2912,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -3419,7 +3419,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -3714,7 +3714,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, @@ -3789,6 +3789,10 @@ "$ref": "v1.PolicyRule" }, "description": "Rules holds all the PolicyRules for this ClusterRole" + }, + "aggregationRule": { + "$ref": "v1.AggregationRule", + "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." } } }, @@ -3836,6 +3840,61 @@ } } }, + "v1.AggregationRule": { + "id": "v1.AggregationRule", + "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "properties": { + "clusterRoleSelectors": { + "type": "array", + "items": { + "$ref": "v1.LabelSelector" + }, + "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added" + } + } + }, + "v1.LabelSelector": { + "id": "v1.LabelSelector", + "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + "properties": { + "matchLabels": { + "type": "object", + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." + }, + "matchExpressions": { + "type": "array", + "items": { + "$ref": "v1.LabelSelectorRequirement" + }, + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." + } + } + }, + "v1.LabelSelectorRequirement": { + "id": "v1.LabelSelectorRequirement", + "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "required": [ + "key", + "operator" + ], + "properties": { + "key": { + "type": "string", + "description": "key is the label key that the selector applies to." + }, + "operator": { + "type": "string", + "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." + } + } + }, "v1.RoleBindingList": { "id": "v1.RoleBindingList", "description": "RoleBindingList is a collection of RoleBindings", diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1alpha1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1alpha1.json index e258ca81f..a12516c92 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1alpha1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1alpha1.json @@ -544,7 +544,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1222,7 +1222,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1956,7 +1956,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -2912,7 +2912,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -3419,7 +3419,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -3714,7 +3714,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, @@ -3789,6 +3789,10 @@ "$ref": "v1alpha1.PolicyRule" }, "description": "Rules holds all the PolicyRules for this ClusterRole" + }, + "aggregationRule": { + "$ref": "v1alpha1.AggregationRule", + "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." } } }, @@ -3836,6 +3840,61 @@ } } }, + "v1alpha1.AggregationRule": { + "id": "v1alpha1.AggregationRule", + "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "properties": { + "clusterRoleSelectors": { + "type": "array", + "items": { + "$ref": "v1.LabelSelector" + }, + "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added" + } + } + }, + "v1.LabelSelector": { + "id": "v1.LabelSelector", + "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + "properties": { + "matchLabels": { + "type": "object", + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." + }, + "matchExpressions": { + "type": "array", + "items": { + "$ref": "v1.LabelSelectorRequirement" + }, + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." + } + } + }, + "v1.LabelSelectorRequirement": { + "id": "v1.LabelSelectorRequirement", + "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "required": [ + "key", + "operator" + ], + "properties": { + "key": { + "type": "string", + "description": "key is the label key that the selector applies to." + }, + "operator": { + "type": "string", + "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." + } + } + }, "v1alpha1.RoleBindingList": { "id": "v1alpha1.RoleBindingList", "description": "RoleBindingList is a collection of RoleBindings", diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1beta1.json index b52fcc084..880d4b1c7 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1beta1.json @@ -544,7 +544,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1222,7 +1222,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1956,7 +1956,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -2912,7 +2912,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -3419,7 +3419,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -3714,7 +3714,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, @@ -3789,6 +3789,10 @@ "$ref": "v1beta1.PolicyRule" }, "description": "Rules holds all the PolicyRules for this ClusterRole" + }, + "aggregationRule": { + "$ref": "v1beta1.AggregationRule", + "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." } } }, @@ -3818,7 +3822,7 @@ "items": { "type": "string" }, - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources." + "description": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups." }, "resourceNames": { "type": "array", @@ -3836,6 +3840,61 @@ } } }, + "v1beta1.AggregationRule": { + "id": "v1beta1.AggregationRule", + "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "properties": { + "clusterRoleSelectors": { + "type": "array", + "items": { + "$ref": "v1.LabelSelector" + }, + "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added" + } + } + }, + "v1.LabelSelector": { + "id": "v1.LabelSelector", + "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", + "properties": { + "matchLabels": { + "type": "object", + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." + }, + "matchExpressions": { + "type": "array", + "items": { + "$ref": "v1.LabelSelectorRequirement" + }, + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." + } + } + }, + "v1.LabelSelectorRequirement": { + "id": "v1.LabelSelectorRequirement", + "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", + "required": [ + "key", + "operator" + ], + "properties": { + "key": { + "type": "string", + "description": "key is the label key that the selector applies to." + }, + "operator": { + "type": "string", + "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." + } + } + }, "v1beta1.RoleBindingList": { "id": "v1beta1.RoleBindingList", "description": "RoleBindingList is a collection of RoleBindings", diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/resourceListing.json b/vendor/k8s.io/kubernetes/api/swagger-spec/resourceListing.json index cf0a4eb57..90384d660 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/resourceListing.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/resourceListing.json @@ -145,6 +145,10 @@ "path": "/apis/storage.k8s.io/v1beta1", "description": "API at /apis/storage.k8s.io/v1beta1" }, + { + "path": "/apis/storage.k8s.io/v1alpha1", + "description": "API at /apis/storage.k8s.io/v1alpha1" + }, { "path": "/apis/storage.k8s.io", "description": "get information of a group" diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/scheduling.k8s.io_v1alpha1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/scheduling.k8s.io_v1alpha1.json index ba86df622..76bec8c02 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/scheduling.k8s.io_v1alpha1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/scheduling.k8s.io_v1alpha1.json @@ -560,7 +560,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -846,7 +846,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1092,7 +1092,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/settings.k8s.io_v1alpha1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/settings.k8s.io_v1alpha1.json index c7290358a..e86edfe97 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/settings.k8s.io_v1alpha1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/settings.k8s.io_v1alpha1.json @@ -616,7 +616,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1110,7 +1110,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -2492,15 +2492,15 @@ }, "protectionDomain": { "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." + "description": "The name of the ScaleIO Protection Domain for the configured storage." }, "storagePool": { "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." + "description": "The ScaleIO Storage Pool associated with the protection domain." }, "storageMode": { "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." }, "volumeName": { "type": "string", @@ -2623,7 +2623,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1.json index 8e379de74..5757f49f5 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1.json @@ -560,7 +560,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -814,6 +814,10 @@ "allowVolumeExpansion": { "type": "boolean", "description": "AllowVolumeExpansion shows whether the storage class allow volume expand" + }, + "volumeBindingMode": { + "$ref": "v1.VolumeBindingMode", + "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature." } } }, @@ -856,7 +860,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1059,6 +1063,10 @@ "id": "v1.PersistentVolumeReclaimPolicy", "properties": {} }, + "v1.VolumeBindingMode": { + "id": "v1.VolumeBindingMode", + "properties": {} + }, "v1.WatchEvent": { "id": "v1.WatchEvent", "required": [ @@ -1106,7 +1114,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/federation_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1alpha1.json similarity index 86% rename from vendor/k8s.io/kubernetes/federation/apis/swagger-spec/federation_v1beta1.json rename to vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1alpha1.json index 925cfba20..2d7704b18 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/federation_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1alpha1.json @@ -1,22 +1,22 @@ { "swaggerVersion": "1.2", - "apiVersion": "federation/v1beta1", + "apiVersion": "storage.k8s.io/v1alpha1", "basePath": "https://10.10.10.10:6443", - "resourcePath": "/apis/federation/v1beta1", + "resourcePath": "/apis/storage.k8s.io/v1alpha1", "info": { "title": "", "description": "" }, "apis": [ { - "path": "/apis/federation/v1beta1/clusters", - "description": "API at /apis/federation/v1beta1", + "path": "/apis/storage.k8s.io/v1alpha1/volumeattachments", + "description": "API at /apis/storage.k8s.io/v1alpha1", "operations": [ { - "type": "v1beta1.ClusterList", + "type": "v1alpha1.VolumeAttachmentList", "method": "GET", - "summary": "list or watch objects of kind Cluster", - "nickname": "listCluster", + "summary": "list or watch objects of kind VolumeAttachment", + "nickname": "listVolumeAttachment", "parameters": [ { "type": "string", @@ -95,7 +95,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1beta1.ClusterList" + "responseModel": "v1alpha1.VolumeAttachmentList" } ], "produces": [ @@ -110,10 +110,10 @@ ] }, { - "type": "v1beta1.Cluster", + "type": "v1alpha1.VolumeAttachment", "method": "POST", - "summary": "create a Cluster", - "nickname": "createCluster", + "summary": "create a VolumeAttachment", + "nickname": "createVolumeAttachment", "parameters": [ { "type": "string", @@ -124,7 +124,7 @@ "allowMultiple": false }, { - "type": "v1beta1.Cluster", + "type": "v1alpha1.VolumeAttachment", "paramType": "body", "name": "body", "description": "", @@ -136,17 +136,17 @@ { "code": 200, "message": "OK", - "responseModel": "v1beta1.Cluster" + "responseModel": "v1alpha1.VolumeAttachment" }, { "code": 201, "message": "Created", - "responseModel": "v1beta1.Cluster" + "responseModel": "v1alpha1.VolumeAttachment" }, { "code": 202, "message": "Accepted", - "responseModel": "v1beta1.Cluster" + "responseModel": "v1alpha1.VolumeAttachment" } ], "produces": [ @@ -161,8 +161,8 @@ { "type": "v1.Status", "method": "DELETE", - "summary": "delete collection of Cluster", - "nickname": "deletecollectionCluster", + "summary": "delete collection of VolumeAttachment", + "nickname": "deletecollectionVolumeAttachment", "parameters": [ { "type": "string", @@ -256,14 +256,14 @@ ] }, { - "path": "/apis/federation/v1beta1/watch/clusters", - "description": "API at /apis/federation/v1beta1", + "path": "/apis/storage.k8s.io/v1alpha1/watch/volumeattachments", + "description": "API at /apis/storage.k8s.io/v1alpha1", "operations": [ { "type": "v1.WatchEvent", "method": "GET", - "summary": "watch individual changes to a list of Cluster", - "nickname": "watchClusterList", + "summary": "watch individual changes to a list of VolumeAttachment", + "nickname": "watchVolumeAttachmentList", "parameters": [ { "type": "string", @@ -359,14 +359,14 @@ ] }, { - "path": "/apis/federation/v1beta1/clusters/{name}", - "description": "API at /apis/federation/v1beta1", + "path": "/apis/storage.k8s.io/v1alpha1/volumeattachments/{name}", + "description": "API at /apis/storage.k8s.io/v1alpha1", "operations": [ { - "type": "v1beta1.Cluster", + "type": "v1alpha1.VolumeAttachment", "method": "GET", - "summary": "read the specified Cluster", - "nickname": "readCluster", + "summary": "read the specified VolumeAttachment", + "nickname": "readVolumeAttachment", "parameters": [ { "type": "string", @@ -396,7 +396,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the Cluster", + "description": "name of the VolumeAttachment", "required": true, "allowMultiple": false } @@ -405,7 +405,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1beta1.Cluster" + "responseModel": "v1alpha1.VolumeAttachment" } ], "produces": [ @@ -418,10 +418,10 @@ ] }, { - "type": "v1beta1.Cluster", + "type": "v1alpha1.VolumeAttachment", "method": "PUT", - "summary": "replace the specified Cluster", - "nickname": "replaceCluster", + "summary": "replace the specified VolumeAttachment", + "nickname": "replaceVolumeAttachment", "parameters": [ { "type": "string", @@ -432,7 +432,7 @@ "allowMultiple": false }, { - "type": "v1beta1.Cluster", + "type": "v1alpha1.VolumeAttachment", "paramType": "body", "name": "body", "description": "", @@ -443,7 +443,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the Cluster", + "description": "name of the VolumeAttachment", "required": true, "allowMultiple": false } @@ -452,12 +452,12 @@ { "code": 200, "message": "OK", - "responseModel": "v1beta1.Cluster" + "responseModel": "v1alpha1.VolumeAttachment" }, { "code": 201, "message": "Created", - "responseModel": "v1beta1.Cluster" + "responseModel": "v1alpha1.VolumeAttachment" } ], "produces": [ @@ -470,10 +470,10 @@ ] }, { - "type": "v1beta1.Cluster", + "type": "v1alpha1.VolumeAttachment", "method": "PATCH", - "summary": "partially update the specified Cluster", - "nickname": "patchCluster", + "summary": "partially update the specified VolumeAttachment", + "nickname": "patchVolumeAttachment", "parameters": [ { "type": "string", @@ -495,7 +495,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the Cluster", + "description": "name of the VolumeAttachment", "required": true, "allowMultiple": false } @@ -504,7 +504,7 @@ { "code": 200, "message": "OK", - "responseModel": "v1beta1.Cluster" + "responseModel": "v1alpha1.VolumeAttachment" } ], "produces": [ @@ -521,8 +521,8 @@ { "type": "v1.Status", "method": "DELETE", - "summary": "delete a Cluster", - "nickname": "deleteCluster", + "summary": "delete a VolumeAttachment", + "nickname": "deleteVolumeAttachment", "parameters": [ { "type": "string", @@ -560,7 +560,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -568,7 +568,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the Cluster", + "description": "name of the VolumeAttachment", "required": true, "allowMultiple": false } @@ -592,14 +592,14 @@ ] }, { - "path": "/apis/federation/v1beta1/watch/clusters/{name}", - "description": "API at /apis/federation/v1beta1", + "path": "/apis/storage.k8s.io/v1alpha1/watch/volumeattachments/{name}", + "description": "API at /apis/storage.k8s.io/v1alpha1", "operations": [ { "type": "v1.WatchEvent", "method": "GET", - "summary": "watch changes to an object of kind Cluster", - "nickname": "watchCluster", + "summary": "watch changes to an object of kind VolumeAttachment", + "nickname": "watchVolumeAttachment", "parameters": [ { "type": "string", @@ -677,7 +677,7 @@ "type": "string", "paramType": "path", "name": "name", - "description": "name of the Cluster", + "description": "name of the VolumeAttachment", "required": true, "allowMultiple": false } @@ -703,66 +703,8 @@ ] }, { - "path": "/apis/federation/v1beta1/clusters/{name}/status", - "description": "API at /apis/federation/v1beta1", - "operations": [ - { - "type": "v1beta1.Cluster", - "method": "PUT", - "summary": "replace status of the specified Cluster", - "nickname": "replaceClusterStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Cluster", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Cluster", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Cluster" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.Cluster" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/federation/v1beta1", - "description": "API at /apis/federation/v1beta1", + "path": "/apis/storage.k8s.io/v1alpha1", + "description": "API at /apis/storage.k8s.io/v1alpha1", "operations": [ { "type": "v1.APIResourceList", @@ -785,9 +727,9 @@ } ], "models": { - "v1beta1.ClusterList": { - "id": "v1beta1.ClusterList", - "description": "A list of all the kubernetes clusters registered to the federation", + "v1alpha1.VolumeAttachmentList": { + "id": "v1alpha1.VolumeAttachmentList", + "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", "required": [ "items" ], @@ -802,14 +744,14 @@ }, "metadata": { "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "items": { "type": "array", "items": { - "$ref": "v1beta1.Cluster" + "$ref": "v1alpha1.VolumeAttachment" }, - "description": "List of Cluster objects." + "description": "Items is the list of VolumeAttachments" } } }, @@ -831,9 +773,12 @@ } } }, - "v1beta1.Cluster": { - "id": "v1beta1.Cluster", - "description": "Information about a registered cluster in a federated kubernetes setup. Clusters are not namespaced and have unique names in the federation.", + "v1alpha1.VolumeAttachment": { + "id": "v1alpha1.VolumeAttachment", + "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", + "required": [ + "spec" + ], "properties": { "kind": { "type": "string", @@ -845,15 +790,15 @@ }, "metadata": { "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "spec": { - "$ref": "v1beta1.ClusterSpec", - "description": "Spec defines the behavior of the Cluster." + "$ref": "v1alpha1.VolumeAttachmentSpec", + "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." }, "status": { - "$ref": "v1beta1.ClusterStatus", - "description": "Status describes the current status of a Cluster" + "$ref": "v1alpha1.VolumeAttachmentStatus", + "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." } } }, @@ -896,7 +841,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1095,109 +1040,75 @@ } } }, - "v1beta1.ClusterSpec": { - "id": "v1beta1.ClusterSpec", - "description": "ClusterSpec describes the attributes of a kubernetes cluster.", + "v1alpha1.VolumeAttachmentSpec": { + "id": "v1alpha1.VolumeAttachmentSpec", + "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", "required": [ - "serverAddressByClientCIDRs" + "attacher", + "source", + "nodeName" ], "properties": { - "serverAddressByClientCIDRs": { - "type": "array", - "items": { - "$ref": "v1beta1.ServerAddressByClientCIDR" - }, - "description": "A map of client CIDR to server address. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Name of the secret containing kubeconfig to access this cluster. The secret is read from the kubernetes cluster that is hosting federation control plane. Admin needs to ensure that the required secret exists. Secret should be in the same namespace where federation control plane is hosted and it should have kubeconfig in its data with key \"kubeconfig\". This will later be changed to a reference to secret in federation control plane when the federation control plane supports secrets. This can be left empty if the cluster allows insecure access." - } - } - }, - "v1beta1.ServerAddressByClientCIDR": { - "id": "v1beta1.ServerAddressByClientCIDR", - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "required": [ - "clientCIDR", - "serverAddress" - ], - "properties": { - "clientCIDR": { + "attacher": { "type": "string", - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use." + "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName()." + }, + "source": { + "$ref": "v1alpha1.VolumeAttachmentSource", + "description": "Source represents the volume that should be attached." }, - "serverAddress": { + "nodeName": { "type": "string", - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port." + "description": "The node that the volume should be attached to." } } }, - "v1.LocalObjectReference": { - "id": "v1.LocalObjectReference", - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", + "v1alpha1.VolumeAttachmentSource": { + "id": "v1alpha1.VolumeAttachmentSource", + "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", "properties": { - "name": { + "persistentVolumeName": { "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + "description": "Name of the persistent volume to attach." } } }, - "v1beta1.ClusterStatus": { - "id": "v1beta1.ClusterStatus", - "description": "ClusterStatus is information about the current status of a cluster updated by cluster controller periodically.", + "v1alpha1.VolumeAttachmentStatus": { + "id": "v1alpha1.VolumeAttachmentStatus", + "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", + "required": [ + "attached" + ], "properties": { - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta1.ClusterCondition" - }, - "description": "Conditions is an array of current cluster conditions." + "attached": { + "type": "boolean", + "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." }, - "zones": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Zones is the list of availability zones in which the nodes of the cluster exist, e.g. 'us-east1-a'. These will always be in the same region." + "attachmentMetadata": { + "type": "object", + "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." }, - "region": { - "type": "string", - "description": "Region is the name of the region in which all of the nodes in the cluster exist. e.g. 'us-east1'." + "attachError": { + "$ref": "v1alpha1.VolumeError", + "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." + }, + "detachError": { + "$ref": "v1alpha1.VolumeError", + "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." } } }, - "v1beta1.ClusterCondition": { - "id": "v1beta1.ClusterCondition", - "description": "ClusterCondition describes current state of a cluster.", - "required": [ - "type", - "status" - ], + "v1alpha1.VolumeError": { + "id": "v1alpha1.VolumeError", + "description": "VolumeError captures an error encountered during a volume operation.", "properties": { - "type": { - "type": "string", - "description": "Type of cluster condition, Complete or Failed." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastProbeTime": { - "type": "string", - "description": "Last time the condition was checked." - }, - "lastTransitionTime": { - "type": "string", - "description": "Last time the condition transit from one status to another." - }, - "reason": { + "time": { "type": "string", - "description": "(brief) reason for the condition's last transition." + "description": "Time the error was encountered." }, "message": { "type": "string", - "description": "Human readable message indicating details about last transition." + "description": "String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information." } } }, @@ -1248,7 +1159,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1beta1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1beta1.json index 9692cb275..21af56a87 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1beta1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1beta1.json @@ -560,7 +560,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -814,6 +814,10 @@ "allowVolumeExpansion": { "type": "boolean", "description": "AllowVolumeExpansion shows whether the storage class allow volume expand" + }, + "volumeBindingMode": { + "$ref": "v1beta1.VolumeBindingMode", + "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature." } } }, @@ -856,7 +860,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -1059,6 +1063,10 @@ "id": "v1.PersistentVolumeReclaimPolicy", "properties": {} }, + "v1beta1.VolumeBindingMode": { + "id": "v1beta1.VolumeBindingMode", + "properties": {} + }, "v1.WatchEvent": { "id": "v1.WatchEvent", "required": [ @@ -1106,7 +1114,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, diff --git a/vendor/k8s.io/kubernetes/api/swagger-spec/v1.json b/vendor/k8s.io/kubernetes/api/swagger-spec/v1.json index fe4bf3b76..de18ce7a9 100644 --- a/vendor/k8s.io/kubernetes/api/swagger-spec/v1.json +++ b/vendor/k8s.io/kubernetes/api/swagger-spec/v1.json @@ -827,7 +827,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -1799,7 +1799,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -2771,7 +2771,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -3743,7 +3743,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -4564,7 +4564,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -5462,7 +5462,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -7222,7 +7222,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -8308,7 +8308,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -9204,7 +9204,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -12076,7 +12076,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -13048,7 +13048,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -14360,7 +14360,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -15502,7 +15502,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -16474,7 +16474,7 @@ "type": "string", "paramType": "query", "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "required": false, "allowMultiple": false }, @@ -19022,7 +19022,7 @@ }, "deletionTimestamp": { "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "type": "integer", @@ -19449,7 +19449,7 @@ }, "propagationPolicy": { "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground." } } }, @@ -19722,7 +19722,7 @@ "items": { "$ref": "v1.LimitRange" }, - "description": "Items is a list of LimitRange objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md" + "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" } } }, @@ -19857,7 +19857,7 @@ "items": { "$ref": "v1.FinalizerName" }, - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers" + "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/" } } }, @@ -19871,7 +19871,7 @@ "properties": { "phase": { "type": "string", - "description": "Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases" + "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/" } } }, @@ -20529,7 +20529,7 @@ "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" }, "rbd": { - "$ref": "v1.RBDVolumeSource", + "$ref": "v1.RBDPersistentVolumeSource", "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" }, "iscsi": { @@ -20581,7 +20581,7 @@ "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" }, "scaleIO": { - "$ref": "v1.ScaleIOVolumeSource", + "$ref": "v1.ScaleIOPersistentVolumeSource", "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." }, "local": { @@ -20737,8 +20737,8 @@ } } }, - "v1.RBDVolumeSource": { - "id": "v1.RBDVolumeSource", + "v1.RBDPersistentVolumeSource": { + "id": "v1.RBDPersistentVolumeSource", "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", "required": [ "monitors", @@ -20773,7 +20773,7 @@ "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" }, "secretRef": { - "$ref": "v1.LocalObjectReference", + "$ref": "v1.SecretReference", "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" }, "readOnly": { @@ -20782,13 +20782,17 @@ } } }, - "v1.LocalObjectReference": { - "id": "v1.LocalObjectReference", - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", + "v1.SecretReference": { + "id": "v1.SecretReference", + "description": "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", "properties": { "name": { "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + "description": "Name is unique within a namespace to reference a secret resource." + }, + "namespace": { + "type": "string", + "description": "Namespace defines the space within which the secret name must be unique." } } }, @@ -20851,6 +20855,16 @@ } } }, + "v1.LocalObjectReference": { + "id": "v1.LocalObjectReference", + "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", + "properties": { + "name": { + "type": "string", + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + } + } + }, "v1.CinderVolumeSource": { "id": "v1.CinderVolumeSource", "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", @@ -20908,20 +20922,6 @@ } } }, - "v1.SecretReference": { - "id": "v1.SecretReference", - "description": "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", - "properties": { - "name": { - "type": "string", - "description": "Name is unique within a namespace to reference a secret resource." - }, - "namespace": { - "type": "string", - "description": "Namespace defines the space within which the secret name must be unique." - } - } - }, "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", @@ -21160,9 +21160,9 @@ } } }, - "v1.ScaleIOVolumeSource": { - "id": "v1.ScaleIOVolumeSource", - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", + "v1.ScaleIOPersistentVolumeSource": { + "id": "v1.ScaleIOPersistentVolumeSource", + "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", "required": [ "gateway", "system", @@ -21178,7 +21178,7 @@ "description": "The name of the storage system as configured in ScaleIO." }, "secretRef": { - "$ref": "v1.LocalObjectReference", + "$ref": "v1.SecretReference", "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." }, "sslEnabled": { @@ -21187,15 +21187,15 @@ }, "protectionDomain": { "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." + "description": "The name of the ScaleIO Protection Domain for the configured storage." }, "storagePool": { "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." + "description": "The ScaleIO Storage Pool associated with the protection domain." }, "storageMode": { "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." }, "volumeName": { "type": "string", @@ -21674,6 +21674,51 @@ } } }, + "v1.RBDVolumeSource": { + "id": "v1.RBDVolumeSource", + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "required": [ + "monitors", + "image" + ], + "properties": { + "monitors": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "image": { + "type": "string", + "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "fsType": { + "type": "string", + "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd" + }, + "pool": { + "type": "string", + "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "user": { + "type": "string", + "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "keyring": { + "type": "string", + "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "secretRef": { + "$ref": "v1.LocalObjectReference", + "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + }, + "readOnly": { + "type": "boolean", + "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" + } + } + }, "v1.CephFSVolumeSource": { "id": "v1.CephFSVolumeSource", "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", @@ -21934,6 +21979,57 @@ } } }, + "v1.ScaleIOVolumeSource": { + "id": "v1.ScaleIOVolumeSource", + "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", + "required": [ + "gateway", + "system", + "secretRef" + ], + "properties": { + "gateway": { + "type": "string", + "description": "The host address of the ScaleIO API Gateway." + }, + "system": { + "type": "string", + "description": "The name of the storage system as configured in ScaleIO." + }, + "secretRef": { + "$ref": "v1.LocalObjectReference", + "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." + }, + "sslEnabled": { + "type": "boolean", + "description": "Flag to enable/disable SSL communication with Gateway, default false" + }, + "protectionDomain": { + "type": "string", + "description": "The name of the ScaleIO Protection Domain for the configured storage." + }, + "storagePool": { + "type": "string", + "description": "The ScaleIO Storage Pool associated with the protection domain." + }, + "storageMode": { + "type": "string", + "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned." + }, + "volumeName": { + "type": "string", + "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source." + }, + "fsType": { + "type": "string", + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + }, + "readOnly": { + "type": "boolean", + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + } + } + }, "v1.StorageOSVolumeSource": { "id": "v1.StorageOSVolumeSource", "description": "Represents a StorageOS persistent volume resource.", @@ -22051,7 +22147,7 @@ }, "securityContext": { "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" + "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" }, "stdin": { "type": "boolean", @@ -22663,7 +22759,10 @@ }, "v1.PodAffinityTerm": { "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", + "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", + "required": [ + "topologyKey" + ], "properties": { "labelSelector": { "$ref": "v1.LabelSelector", @@ -22678,7 +22777,7 @@ }, "topologyKey": { "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed." } } }, @@ -23295,7 +23394,7 @@ "items": { "$ref": "v1.ResourceQuota" }, - "description": "Items is a list of ResourceQuota objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md" + "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/" } } }, @@ -23331,7 +23430,7 @@ "properties": { "hard": { "type": "object", - "description": "Hard is the set of desired hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md" + "description": "Hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/" }, "scopes": { "type": "array", @@ -23352,7 +23451,7 @@ "properties": { "hard": { "type": "object", - "description": "Hard is the set of enforced hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md" + "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/" }, "used": { "type": "object", diff --git a/vendor/k8s.io/kubernetes/build/BUILD b/vendor/k8s.io/kubernetes/build/BUILD index 0864c9cdd..5f531a1f6 100644 --- a/vendor/k8s.io/kubernetes/build/BUILD +++ b/vendor/k8s.io/kubernetes/build/BUILD @@ -103,7 +103,6 @@ release_filegroup( name = "client-targets", srcs = [ "//cmd/kubectl", - "//federation/cmd/kubefed", ], ) @@ -112,6 +111,7 @@ release_filegroup( name = "node-targets", srcs = [ "//cmd/kube-proxy", + "//cmd/kubeadm", "//cmd/kubelet", ], ) @@ -122,11 +122,11 @@ release_filegroup( release_filegroup( name = "server-targets", srcs = [ + "//cluster/gce/gci/mounter", "//cmd/cloud-controller-manager", "//cmd/hyperkube", "//cmd/kube-apiserver", "//cmd/kube-controller-manager", - "//cmd/kubeadm", "//plugin/cmd/kube-scheduler", "//vendor/k8s.io/kube-aggregator", ], @@ -143,7 +143,6 @@ filegroup( "//cmd/genyaml", "//cmd/kubemark", # TODO: server platforms only "//cmd/linkcheck", - "//federation/cmd/genfeddocs", "//test/e2e:e2e.test", "//test/e2e_node:e2e_node.test", # TODO: server platforms only "//vendor/github.com/onsi/ginkgo/ginkgo", @@ -154,9 +153,7 @@ filegroup( filegroup( name = "test-portable-targets", srcs = [ - "//federation/develop:all-srcs", "//hack:e2e.go", - "//hack:federated-ginkgo-e2e.sh", "//hack:get-build.sh", "//hack:ginkgo-e2e.sh", "//hack/e2e-internal:all-srcs", diff --git a/vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile b/vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile index 15823fd17..420fb569e 100644 --- a/vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile +++ b/vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile @@ -15,7 +15,7 @@ # This file creates a standard build environment for building cross # platform go binary for the architecture kubernetes cares about. -FROM golang:1.8.3 +FROM golang:1.9.1 ENV GOARM 7 ENV KUBE_DYNAMIC_CROSSPLATFORMS \ diff --git a/vendor/k8s.io/kubernetes/build/build-image/cross/VERSION b/vendor/k8s.io/kubernetes/build/build-image/cross/VERSION index e331872b2..da72815c9 100644 --- a/vendor/k8s.io/kubernetes/build/build-image/cross/VERSION +++ b/vendor/k8s.io/kubernetes/build/build-image/cross/VERSION @@ -1 +1 @@ -v1.8.3-3 +v1.9.1-1 diff --git a/vendor/k8s.io/kubernetes/build/common.sh b/vendor/k8s.io/kubernetes/build/common.sh index 750440dcd..ecb74f4f2 100755 --- a/vendor/k8s.io/kubernetes/build/common.sh +++ b/vendor/k8s.io/kubernetes/build/common.sh @@ -85,7 +85,7 @@ readonly KUBE_CONTAINER_RSYNC_PORT=8730 # # $1 - server architecture kube::build::get_docker_wrapped_binaries() { - debian_iptables_version=v8 + debian_iptables_version=v9 ### If you change any of these lists, please also update DOCKERIZED_BINARIES ### in build/BUILD. case $1 in @@ -720,7 +720,7 @@ function kube::build::sync_to_container() { # necessary. kube::build::rsync \ --delete \ - --filter='H /.git/' \ + --filter='H /.git' \ --filter='- /.make/' \ --filter='- /_tmp/' \ --filter='- /_output/' \ diff --git a/vendor/k8s.io/kubernetes/build/debian-base/Dockerfile.build b/vendor/k8s.io/kubernetes/build/debian-base/Dockerfile.build index 8992d6bea..7b7b99d3a 100644 --- a/vendor/k8s.io/kubernetes/build/debian-base/Dockerfile.build +++ b/vendor/k8s.io/kubernetes/build/debian-base/Dockerfile.build @@ -44,7 +44,6 @@ RUN echo "Yes, do as I say!" | apt-get purge \ debconf-i18n \ e2fslibs \ e2fsprogs \ - gcc-4.8-base \ init \ initscripts \ libcap2-bin \ @@ -54,7 +53,7 @@ RUN echo "Yes, do as I say!" | apt-get purge \ libudev1 \ libblkid1 \ libncursesw5 \ - libprocps3 \ + libprocps6 \ libslang2 \ libss2 \ libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl \ diff --git a/vendor/k8s.io/kubernetes/build/debian-base/Makefile b/vendor/k8s.io/kubernetes/build/debian-base/Makefile index 6baa8d5dd..47eafa5c6 100755 --- a/vendor/k8s.io/kubernetes/build/debian-base/Makefile +++ b/vendor/k8s.io/kubernetes/build/debian-base/Makefile @@ -18,7 +18,7 @@ REGISTRY ?= gcr.io/google-containers IMAGE ?= debian-base BUILD_IMAGE ?= debian-build -TAG ?= 0.2 +TAG ?= 0.3 TAR_FILE ?= rootfs.tar ARCH?=amd64 @@ -26,22 +26,22 @@ TEMP_DIR:=$(shell mktemp -d) QEMUVERSION=v2.9.1 ifeq ($(ARCH),amd64) - BASEIMAGE?=debian:jessie + BASEIMAGE?=debian:stretch endif ifeq ($(ARCH),arm) - BASEIMAGE?=arm32v7/debian:jessie + BASEIMAGE?=arm32v7/debian:stretch QEMUARCH=arm endif ifeq ($(ARCH),arm64) - BASEIMAGE?=arm64v8/debian:jessie + BASEIMAGE?=arm64v8/debian:stretch QEMUARCH=aarch64 endif ifeq ($(ARCH),ppc64le) - BASEIMAGE?=ppc64le/debian:jessie + BASEIMAGE?=ppc64le/debian:stretch QEMUARCH=ppc64le endif ifeq ($(ARCH),s390x) - BASEIMAGE?=s390x/debian:jessie + BASEIMAGE?=s390x/debian:stretch QEMUARCH=s390x endif diff --git a/vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Dockerfile b/vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Dockerfile index a4882d87b..52f609ff2 100644 --- a/vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Dockerfile +++ b/vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Dockerfile @@ -20,20 +20,21 @@ FROM BASEIMAGE RUN ln -s /bin/sh /bin/bash RUN echo CACHEBUST>/dev/null && clean-install \ - iptables \ + ca-certificates \ + ceph-common \ + cifs-utils \ + conntrack \ e2fsprogs \ ebtables \ ethtool \ - kmod \ - ca-certificates \ - conntrack \ - util-linux \ - socat \ git \ + glusterfs-client \ + iptables \ jq \ + kmod \ + openssh-client \ nfs-common \ - glusterfs-client \ - cifs-utils \ - ceph-common + socat \ + util-linux COPY cni-bin/bin /opt/cni/bin diff --git a/vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Makefile b/vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Makefile index b33a92c58..882d3b9bb 100644 --- a/vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Makefile +++ b/vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Makefile @@ -19,11 +19,11 @@ REGISTRY?=gcr.io/google-containers IMAGE?=debian-hyperkube-base -TAG=0.4 +TAG=0.6 ARCH?=amd64 CACHEBUST?=1 -BASEIMAGE=gcr.io/google-containers/debian-base-$(ARCH):0.2 +BASEIMAGE=gcr.io/google-containers/debian-base-$(ARCH):0.3 CNI_VERSION=v0.6.0 TEMP_DIR:=$(shell mktemp -d) diff --git a/vendor/k8s.io/kubernetes/build/debian-iptables/Makefile b/vendor/k8s.io/kubernetes/build/debian-iptables/Makefile index bcf5d17b8..e1e98d0ae 100644 --- a/vendor/k8s.io/kubernetes/build/debian-iptables/Makefile +++ b/vendor/k8s.io/kubernetes/build/debian-iptables/Makefile @@ -16,7 +16,7 @@ REGISTRY?="gcr.io/google-containers" IMAGE=debian-iptables -TAG=v8 +TAG=v9 ARCH?=amd64 TEMP_DIR:=$(shell mktemp -d) QEMUVERSION=v2.9.1 @@ -34,7 +34,7 @@ ifeq ($(ARCH),s390x) QEMUARCH=s390x endif -BASEIMAGE=gcr.io/google-containers/debian-base-$(ARCH):0.2 +BASEIMAGE=gcr.io/google-containers/debian-base-$(ARCH):0.3 build: cp ./* $(TEMP_DIR) diff --git a/vendor/k8s.io/kubernetes/build/debs/BUILD b/vendor/k8s.io/kubernetes/build/debs/BUILD index f091030f6..1ff31b739 100644 --- a/vendor/k8s.io/kubernetes/build/debs/BUILD +++ b/vendor/k8s.io/kubernetes/build/debs/BUILD @@ -82,7 +82,7 @@ deb_data( pkg_tar( name = "kubernetes-cni-data", - package_dir = "/opt/cni", + package_dir = "/opt/cni/bin", deps = ["@kubernetes_cni//file"], ) diff --git a/vendor/k8s.io/kubernetes/build/lib/release.sh b/vendor/k8s.io/kubernetes/build/lib/release.sh index d0a0464ab..85a1d784f 100644 --- a/vendor/k8s.io/kubernetes/build/lib/release.sh +++ b/vendor/k8s.io/kubernetes/build/lib/release.sh @@ -412,13 +412,18 @@ function kube::release::package_kube_manifests_tarball() { cp "${salt_dir}/rescheduler/rescheduler.manifest" "${gci_dst_dir}/" cp "${salt_dir}/e2e-image-puller/e2e-image-puller.manifest" "${gci_dst_dir}/" cp "${KUBE_ROOT}/cluster/gce/gci/configure-helper.sh" "${gci_dst_dir}/gci-configure-helper.sh" - cp "${KUBE_ROOT}/cluster/gce/gci/mounter/mounter" "${gci_dst_dir}/gci-mounter" cp "${KUBE_ROOT}/cluster/gce/gci/health-monitor.sh" "${gci_dst_dir}/health-monitor.sh" cp "${KUBE_ROOT}/cluster/gce/container-linux/configure-helper.sh" "${gci_dst_dir}/container-linux-configure-helper.sh" cp -r "${salt_dir}/kube-admission-controls/limit-range" "${gci_dst_dir}" local objects objects=$(cd "${KUBE_ROOT}/cluster/addons" && find . \( -name \*.yaml -or -name \*.yaml.in -or -name \*.json \) | grep -v demo) tar c -C "${KUBE_ROOT}/cluster/addons" ${objects} | tar x -C "${gci_dst_dir}" + # Merge GCE-specific addons with general purpose addons. + local gce_objects + gce_objects=$(cd "${KUBE_ROOT}/cluster/gce/addons" && find . \( -name \*.yaml -or -name \*.yaml.in -or -name \*.json \) \( -not -name \*demo\* \)) + if [[ -n "${gce_objects}" ]]; then + tar c -C "${KUBE_ROOT}/cluster/gce/addons" ${gce_objects} | tar x -C "${gci_dst_dir}" + fi kube::release::clean_cruft @@ -503,11 +508,6 @@ EOF mkdir -p "${release_stage}/third_party" cp -R "${KUBE_ROOT}/third_party/htpasswd" "${release_stage}/third_party/htpasswd" - # Include only federation/cluster and federation/deploy - mkdir "${release_stage}/federation" - cp -R "${KUBE_ROOT}/federation/cluster" "${release_stage}/federation/" - cp -R "${KUBE_ROOT}/federation/deploy" "${release_stage}/federation/" - # Include hack/lib as a dependency for the cluster/ scripts mkdir -p "${release_stage}/hack" cp -R "${KUBE_ROOT}/hack/lib" "${release_stage}/hack/" diff --git a/vendor/k8s.io/kubernetes/build/openapi.bzl b/vendor/k8s.io/kubernetes/build/openapi.bzl new file mode 100644 index 000000000..4b673e28a --- /dev/null +++ b/vendor/k8s.io/kubernetes/build/openapi.bzl @@ -0,0 +1,9 @@ +# A project wanting to generate openapi code for vendored +# k8s.io/kubernetes will need to set the following variables in +# //build/openapi.bzl in their project and customize the go prefix: +# +# openapi_go_prefix = "k8s.io/myproject/" +# openapi_vendor_prefix = "vendor/k8s.io/kubernetes/" + +openapi_go_prefix = "k8s.io/kubernetes/" +openapi_vendor_prefix = "" diff --git a/vendor/k8s.io/kubernetes/build/release-tars/BUILD b/vendor/k8s.io/kubernetes/build/release-tars/BUILD index 0d09ffccc..39f588e95 100644 --- a/vendor/k8s.io/kubernetes/build/release-tars/BUILD +++ b/vendor/k8s.io/kubernetes/build/release-tars/BUILD @@ -38,6 +38,7 @@ grep ^STABLE_BUILD_GIT_COMMIT bazel-out/stable-status.txt | cut -d' ' -f2 >>$@ pkg_tar( name = "kubernetes-src", + build_tar = "@io_kubernetes_build//tools/build_tar", extension = "tar.gz", files = select({ ":package_src": ["//:all-srcs"], @@ -65,6 +66,7 @@ filegroup( pkg_tar( name = "_client-bin", + build_tar = "@io_kubernetes_build//tools/build_tar", files = ["//build:client-targets"], mode = "0755", package_dir = "client/bin", @@ -73,6 +75,7 @@ pkg_tar( pkg_tar( name = "kubernetes-client-%s" % PLATFORM_ARCH_STRING, + build_tar = "@io_kubernetes_build//tools/build_tar", extension = "tar.gz", package_dir = "kubernetes", deps = [ @@ -82,6 +85,7 @@ pkg_tar( pkg_tar( name = "_node-bin", + build_tar = "@io_kubernetes_build//tools/build_tar", files = [ "//build:client-targets", "//build:node-targets", @@ -93,6 +97,7 @@ pkg_tar( pkg_tar( name = "kubernetes-node-%s" % PLATFORM_ARCH_STRING, + build_tar = "@io_kubernetes_build//tools/build_tar", extension = "tar.gz", files = [":license-targets"], mode = "0644", @@ -104,6 +109,7 @@ pkg_tar( pkg_tar( name = "_server-bin", + build_tar = "@io_kubernetes_build//tools/build_tar", files = [ "//build:client-targets", "//build:docker-artifacts", @@ -125,6 +131,7 @@ genrule( # Some of the startup scripts fail if there isn't an addons/ directory in the server tarball. pkg_tar( name = "_server-addons", + build_tar = "@io_kubernetes_build//tools/build_tar", files = [ ":.dummy", ], @@ -134,6 +141,7 @@ pkg_tar( pkg_tar( name = "kubernetes-server-%s" % PLATFORM_ARCH_STRING, + build_tar = "@io_kubernetes_build//tools/build_tar", extension = "tar.gz", files = [":license-targets"], mode = "0644", @@ -146,6 +154,7 @@ pkg_tar( pkg_tar( name = "_test-bin", + build_tar = "@io_kubernetes_build//tools/build_tar", files = ["//build:test-targets"], mode = "0755", package_dir = "platforms/" + PLATFORM_ARCH_STRING.replace("-", "/"), @@ -155,6 +164,7 @@ pkg_tar( pkg_tar( name = "kubernetes-test", + build_tar = "@io_kubernetes_build//tools/build_tar", extension = "tar.gz", files = ["//build:test-portable-targets"], package_dir = "kubernetes", @@ -167,6 +177,7 @@ pkg_tar( pkg_tar( name = "_full_server", + build_tar = "@io_kubernetes_build//tools/build_tar", files = [ ":kubernetes-manifests.tar.gz", ":kubernetes-salt.tar.gz", @@ -177,6 +188,7 @@ pkg_tar( pkg_tar( name = "kubernetes", + build_tar = "@io_kubernetes_build//tools/build_tar", extension = "tar.gz", files = [ "//:Godeps/LICENSES", @@ -193,12 +205,12 @@ pkg_tar( strip_prefix = "//", deps = [ ":_full_server", - "//federation:release", ], ) pkg_tar( name = "kubernetes-manifests", + build_tar = "@io_kubernetes_build//tools/build_tar", extension = "tar.gz", deps = [ "//cluster:manifests", @@ -207,6 +219,7 @@ pkg_tar( pkg_tar( name = "kubernetes-salt", + build_tar = "@io_kubernetes_build//tools/build_tar", extension = "tar.gz", deps = [ "//cluster/saltbase:salt", diff --git a/vendor/k8s.io/kubernetes/build/root/.bazelrc b/vendor/k8s.io/kubernetes/build/root/.bazelrc index 9101ce7a7..fc36b294e 100644 --- a/vendor/k8s.io/kubernetes/build/root/.bazelrc +++ b/vendor/k8s.io/kubernetes/build/root/.bazelrc @@ -12,16 +12,5 @@ build --sandbox_tmpfs_path=/tmp # This flag requires Bazel 0.5.0+ build --sandbox_fake_username -# rules_go@82483596ec203eb9c1849937636f4cbed83733eb has a typo that -# inadvertently relies on comprehension variables leaking. -# TODO(ixdy): Remove these defaults once rules_go is bumped. -# Ref kubernetes/kubernetes#52677 -build --incompatible_comprehension_variables_do_not_leak=false -query --incompatible_comprehension_variables_do_not_leak=false - -# TODO(ixdy): remove the following once repo-infra is bumped. -build --incompatible_disallow_set_constructor=false -query --incompatible_disallow_set_constructor=false - # Enable go race detection. test --features=race diff --git a/vendor/k8s.io/kubernetes/build/root/BUILD.root b/vendor/k8s.io/kubernetes/build/root/BUILD.root index a56e73165..5b162716f 100644 --- a/vendor/k8s.io/kubernetes/build/root/BUILD.root +++ b/vendor/k8s.io/kubernetes/build/root/BUILD.root @@ -63,7 +63,6 @@ filegroup( "//cmd:all-srcs", "//docs:all-srcs", "//examples:all-srcs", - "//federation:all-srcs", "//hack:all-srcs", "//pkg:all-srcs", "//plugin:all-srcs", diff --git a/vendor/k8s.io/kubernetes/build/root/Makefile b/vendor/k8s.io/kubernetes/build/root/Makefile index e39c50532..76c8af23d 100644 --- a/vendor/k8s.io/kubernetes/build/root/Makefile +++ b/vendor/k8s.io/kubernetes/build/root/Makefile @@ -291,7 +291,6 @@ else test-cmd: generated_files hack/make-rules/test-kubeadm-cmd.sh hack/make-rules/test-cmd.sh - hack/make-rules/test-federation-cmd.sh endif define CLEAN_HELP_INFO @@ -482,21 +481,6 @@ $(notdir $(abspath $(wildcard plugin/cmd/*/))): generated_files hack/make-rules/build.sh plugin/cmd/$@ endif -define FED_CMD_HELP_INFO -# Add rules for all directories in federation/cmd/ -# -# Example: -# make federation-apiserver federation-controller-manager -endef -.PHONY: $(notdir $(abspath $(wildcard federation/cmd/*/))) -ifeq ($(PRINT_HELP),y) -$(notdir $(abspath $(wildcard federation/cmd/*/))): - @echo "$$FED_CMD_HELP_INFO" -else -$(notdir $(abspath $(wildcard federation/cmd/*/))): generated_files - hack/make-rules/build.sh federation/cmd/$@ -endif - define GENERATED_FILES_HELP_INFO # Produce auto-generated files needed for the build. # diff --git a/vendor/k8s.io/kubernetes/build/root/Makefile.generated_files b/vendor/k8s.io/kubernetes/build/root/Makefile.generated_files index 96caaf87a..066da2daa 100644 --- a/vendor/k8s.io/kubernetes/build/root/Makefile.generated_files +++ b/vendor/k8s.io/kubernetes/build/root/Makefile.generated_files @@ -628,6 +628,7 @@ CONVERSION_DIRS := $(shell \ ) CONVERSION_FILES := $(addsuffix /$(CONVERSION_FILENAME), $(CONVERSION_DIRS)) +CONVERSION_EXTRA_PEER_DIRS := k8s.io/kubernetes/pkg/apis/core,k8s.io/kubernetes/pkg/apis/core/v1,k8s.io/api/core/v1 # Shell function for reuse in rules. RUN_GEN_CONVERSION = \ @@ -638,6 +639,7 @@ RUN_GEN_CONVERSION = \ echo "DBG: running $(CONVERSION_GEN) for $$pkgs"; \ fi; \ ./hack/run-in-gopath.sh $(CONVERSION_GEN) \ + --extra-peer-dirs $(CONVERSION_EXTRA_PEER_DIRS) \ --v $(KUBE_VERBOSE) \ --logtostderr \ -i "$$pkgs" \ diff --git a/vendor/k8s.io/kubernetes/build/root/WORKSPACE b/vendor/k8s.io/kubernetes/build/root/WORKSPACE index 6ca56c530..a679fdfbc 100644 --- a/vendor/k8s.io/kubernetes/build/root/WORKSPACE +++ b/vendor/k8s.io/kubernetes/build/root/WORKSPACE @@ -1,15 +1,15 @@ http_archive( name = "io_bazel_rules_go", - sha256 = "a4ea00b71a6fc3bd381cbbf6eb83ec91fe8b32b1c622c048f1e6f0d965bb1a2d", - strip_prefix = "rules_go-a280fbac1a0a4c67b0eee660b4fd1b3db7c9f058", - urls = ["https://github.com/bazelbuild/rules_go/archive/a280fbac1a0a4c67b0eee660b4fd1b3db7c9f058.tar.gz"], + sha256 = "441e560e947d8011f064bd7348d86940d6b6131ae7d7c4425a538e8d9f884274", + strip_prefix = "rules_go-c72631a220406c4fae276861ee286aaec82c5af2", + urls = ["https://github.com/bazelbuild/rules_go/archive/c72631a220406c4fae276861ee286aaec82c5af2.tar.gz"], ) http_archive( name = "io_kubernetes_build", - sha256 = "8e49ac066fbaadd475bd63762caa90f81cd1880eba4cc25faa93355ef5fa2739", - strip_prefix = "repo-infra-e26fc85d14a1d3dc25569831acc06919673c545a", - urls = ["https://github.com/kubernetes/repo-infra/archive/e26fc85d14a1d3dc25569831acc06919673c545a.tar.gz"], + sha256 = "89788eb30f10258ae0c6ab8b8625a28cb4c101fba93a8a6725ba227bb778ff27", + strip_prefix = "repo-infra-653485c1a6d554513266d55683da451bd41f7d65", + urls = ["https://github.com/kubernetes/repo-infra/archive/653485c1a6d554513266d55683da451bd41f7d65.tar.gz"], ) ETCD_VERSION = "3.1.10" @@ -49,7 +49,7 @@ load("@io_bazel_rules_docker//docker:docker.bzl", "docker_repositories", "docker go_rules_dependencies() go_register_toolchains( - go_version = "1.8.3", + go_version = "1.9.1", ) docker_repositories() @@ -62,18 +62,18 @@ http_file( docker_pull( name = "debian-iptables-amd64", - digest = "sha256:2e747bc7455b46350d8e57f05c03e109fa306861e7b2a2e8e1cd563932170cf1", + digest = "sha256:efc1d8a37f141869b7e45fa4e153ebea11502ee3d0ac29b25cd94cb02a40a91c", registry = "gcr.io", repository = "google-containers/debian-iptables-amd64", - tag = "v8", # ignored, but kept here for documentation + tag = "v9", # ignored, but kept here for documentation ) docker_pull( name = "debian-hyperkube-base-amd64", - digest = "sha256:f3a37c4d8700a5ff454d94a2bef7d165d287759cea737a621c20e4aa3891dbbb", + digest = "sha256:1a05a58432254268c31ef5c8d9c21f3d01a40611b14707de6ac2772c0793bd13", registry = "gcr.io", repository = "google-containers/debian-hyperkube-base-amd64", - tag = "0.4", # ignored, but kept here for documentation + tag = "0.6", # ignored, but kept here for documentation ) docker_pull( diff --git a/vendor/k8s.io/kubernetes/build/visible_to/BUILD b/vendor/k8s.io/kubernetes/build/visible_to/BUILD index 50c4a1c79..08a65dbd1 100644 --- a/vendor/k8s.io/kubernetes/build/visible_to/BUILD +++ b/vendor/k8s.io/kubernetes/build/visible_to/BUILD @@ -50,18 +50,6 @@ package_group( ], ) -package_group( - name = "FEDERATION_BAD", - packages = [ - "//federation/cmd/genfeddocs", - "//federation/cmd/kubefed/app", - "//federation/pkg/kubefed", - "//federation/pkg/kubefed/init", - "//federation/pkg/kubefed/testing", - "//federation/pkg/kubefed/util", - ], -) - package_group( name = "cluster", packages = [ @@ -93,7 +81,6 @@ package_group( package_group( name = "pkg_kubectl_CONSUMERS_BAD", includes = [ - ":FEDERATION_BAD", ":KUBEADM_BAD", ], packages = [ @@ -125,9 +112,6 @@ package_group( package_group( name = "pkg_kubectl_cmd_CONSUMERS_BAD", - includes = [ - ":FEDERATION_BAD", - ], packages = [ "//cmd/clicheck", "//cmd/hyperkube", @@ -178,19 +162,11 @@ package_group( ], ) -package_group( - name = "pkg_kubectl_cmd_templates_CONSUMERS_BAD", - packages = [ - "//federation/pkg/kubefed/init", - ], -) - package_group( name = "pkg_kubectl_cmd_templates_CONSUMERS", includes = [ ":COMMON_generators", ":COMMON_testing", - ":FEDERATION_BAD", ], packages = [ "//cmd/kubectl", @@ -198,6 +174,7 @@ package_group( "//pkg/kubectl/cmd", "//pkg/kubectl/cmd/auth", "//pkg/kubectl/cmd/config", + "//pkg/kubectl/cmd/resource", "//pkg/kubectl/cmd/rollout", "//pkg/kubectl/cmd/set", "//pkg/kubectl/cmd/templates", @@ -213,22 +190,12 @@ package_group( ], ) -package_group( - name = "pkg_kubectl_cmd_testing_CONSUMERS_BAD", - packages = [ - "//federation/pkg/kubefed", - "//federation/pkg/kubefed/init", - ], -) - package_group( name = "pkg_kubectl_cmd_testing_CONSUMERS", - includes = [ - ":pkg_kubectl_cmd_testing_CONSUMERS_BAD", - ], packages = [ "//pkg/kubectl/cmd", "//pkg/kubectl/cmd/auth", + "//pkg/kubectl/cmd/resource", "//pkg/kubectl/cmd/set", ], ) @@ -236,13 +203,13 @@ package_group( package_group( name = "pkg_kubectl_cmd_util_CONSUMERS_BAD", includes = [ - ":FEDERATION_BAD", ":KUBEADM_BAD", ], packages = [ "//cmd/clicheck", "//cmd/hyperkube", "//cmd/kube-proxy/app", + "//plugin/cmd/kube-scheduler/app", ], ) @@ -259,6 +226,7 @@ package_group( "//pkg/kubectl/cmd", "//pkg/kubectl/cmd/auth", "//pkg/kubectl/cmd/config", + "//pkg/kubectl/cmd/resource", "//pkg/kubectl/cmd/rollout", "//pkg/kubectl/cmd/set", "//pkg/kubectl/cmd/testing", @@ -293,9 +261,6 @@ package_group( package_group( name = "pkg_kubectl_metricsutil_CONSUMERS_BAD", - includes = [ - ":FEDERATION_BAD", - ], packages = [ "//cmd/clicheck", "//cmd/hyperkube", @@ -316,19 +281,11 @@ package_group( ], ) -package_group( - name = "pkg_kubectl_resource_CONSUMERS_BAD", - packages = [ - "//federation/pkg/kubefed", - ], -) - package_group( name = "pkg_kubectl_resource_CONSUMERS", includes = [ ":COMMON_generators", ":COMMON_testing", - ":pkg_kubectl_resource_CONSUMERS_BAD", ], packages = [ "//cmd/kubectl", @@ -337,6 +294,7 @@ package_group( "//pkg/kubectl/cmd", "//pkg/kubectl/cmd/auth", "//pkg/kubectl/cmd/config", + "//pkg/kubectl/cmd/resource", "//pkg/kubectl/cmd/rollout", "//pkg/kubectl/cmd/set", "//pkg/kubectl/cmd/testing", diff --git a/vendor/k8s.io/kubernetes/build/visible_to/README.md b/vendor/k8s.io/kubernetes/build/visible_to/README.md index 6f5e7cf53..9daa99a0f 100644 --- a/vendor/k8s.io/kubernetes/build/visible_to/README.md +++ b/vendor/k8s.io/kubernetes/build/visible_to/README.md @@ -34,7 +34,7 @@ generally inhibit progress. one can specify the following visibility rule in any `BUILD` rule: ``` visibility = [ "//build/visible_to:database_CONSUMERS" ], - ``` + ``` * A visibility rule takes a list of package groups as its argument - or one of the pre-defined groups @@ -59,7 +59,7 @@ generally inhibit progress. * One set of `OWNERS` to manage visibility. The alternative is to use special [package literals] directly -in visibility rules, e.g. +in visibility rules, e.g. ``` visibility = [ @@ -114,7 +114,7 @@ visibility = ["//visible_to:client_foo,//visible_to:server_foo"], #### Quickly check for visibility violations ``` bazel build --check_visibility --nobuild \ - //cmd/... //pkg/... //federation/... //plugin/... \ + //cmd/... //pkg/... //plugin/... \ //third_party/... //examples/... //test/... //vendor/k8s.io/... ``` @@ -179,6 +179,6 @@ bazel query --nohost_deps --noimplicit_deps \ bazel query "somepath(cmd/kubectl:kubectl, pkg/util/parsers:go_default_library)" ``` - + [package literals]: https://bazel.build/versions/master/docs/be/common-definitions.html#common.visibility diff --git a/vendor/k8s.io/kubernetes/cluster/BUILD b/vendor/k8s.io/kubernetes/cluster/BUILD index 9c11052e7..1f55e38dc 100644 --- a/vendor/k8s.io/kubernetes/cluster/BUILD +++ b/vendor/k8s.io/kubernetes/cluster/BUILD @@ -35,6 +35,7 @@ pkg_tar( deps = [ "//cluster/addons", "//cluster/gce:gci-trusty-manifests", + "//cluster/gce/addons", "//cluster/saltbase:gci-trusty-salt-manifests", ], ) diff --git a/vendor/k8s.io/kubernetes/cluster/addons/README.md b/vendor/k8s.io/kubernetes/cluster/addons/README.md index 7c305cedc..bee324522 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/README.md +++ b/vendor/k8s.io/kubernetes/cluster/addons/README.md @@ -1,4 +1,6 @@ -# Cluster add-ons +# Legacy Cluster add-ons + +For more information on add-ons see [the documentation](https://kubernetes.io/docs/concepts/cluster-administration/addons/). ## Overview diff --git a/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/Makefile b/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/Makefile index 8ccc4cd25..01956102d 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/Makefile +++ b/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/Makefile @@ -15,7 +15,7 @@ IMAGE=gcr.io/google-containers/kube-addon-manager ARCH?=amd64 TEMP_DIR:=$(shell mktemp -d) -VERSION=v6.4-beta.2 +VERSION=v6.5 KUBECTL_VERSION?=v1.6.4 ifeq ($(ARCH),amd64) diff --git a/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/README.md b/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/README.md index b9da7039b..e9ae53458 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/README.md +++ b/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/README.md @@ -1,26 +1,27 @@ ### Addon-manager -addon-manager manages two classes of addons with given template files. +addon-manager manages two classes of addons with given template files in +`$ADDON_PATH` (default `/etc/kubernetes/addons/`). - Addons with label `addonmanager.kubernetes.io/mode=Reconcile` will be periodically reconciled. Direct manipulation to these addons through apiserver is discouraged because addon-manager will bring them back to the original state. In particular: - Addon will be re-created if it is deleted. - Addon will be reconfigured to the state given by the supplied fields in the template file periodically. - - Addon will be deleted when its manifest file is deleted. + - Addon will be deleted when its manifest file is deleted from the `$ADDON_PATH`. - Addons with label `addonmanager.kubernetes.io/mode=EnsureExists` will be checked for existence only. Users can edit these addons as they want. In particular: - Addon will only be created/re-created with the given template file when there is no instance of the resource with that name. - - Addon will not be deleted when the manifest file is deleted. + - Addon will not be deleted when the manifest file is deleted from the `$ADDON_PATH`. Notes: - Label `kubernetes.io/cluster-service=true` is deprecated (only for Addon Manager). In future release (after one year), Addon Manager may not respect it anymore. Addons have this label but without `addonmanager.kubernetes.io/mode=EnsureExists` will be treated as "reconcile class addons" for now. -- Resources under $ADDON_PATH (default `/etc/kubernetes/addons/`) needs to have either one -of these two labels. Meanwhile namespaced resources need to be in `kube-system` namespace. +- Resources under `$ADDON_PATH` need to have either one of these two labels. +Meanwhile namespaced resources need to be in `kube-system` namespace. Otherwise it will be omitted. - The above label and namespace rule does not stand for `/opt/namespace.yaml` and resources under `/etc/kubernetes/admission-controls/`. addon-manager will attempt to diff --git a/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/kube-addons.sh b/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/kube-addons.sh index 841068520..314190f5f 100755 --- a/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/kube-addons.sh +++ b/vendor/k8s.io/kubernetes/cluster/addons/addon-manager/kube-addons.sh @@ -26,9 +26,6 @@ # 3. Kubectl prints the output to stderr (the output should be captured and then # logged) -# The business logic for whether a given object should be created -# was already enforced by salt, and /etc/kubernetes/addons is the -# managed result is of that. Start everything below that directory. KUBECTL=${KUBECTL_BIN:-/usr/local/bin/kubectl} KUBECTL_OPTS=${KUBECTL_OPTS:-} @@ -47,6 +44,11 @@ ADDON_MANAGER_LABEL="addonmanager.kubernetes.io/mode" # will be reconciled for now. CLUSTER_SERVICE_LABEL="kubernetes.io/cluster-service" +# Whether only one addon manager should be running in a multi-master setup. +# Disabling this flag will force all addon managers to assume they are the +# leaders. +ADDON_MANAGER_LEADER_ELECTION=${ADDON_MANAGER_LEADER_ELECTION:-true} + # Remember that you can't log from functions that print some output (because # logs are also printed on stdout). # $1 level @@ -143,6 +145,25 @@ function ensure_addons() { log INFO "== Kubernetes addon ensure completed at $(date -Is) ==" } +function is_leader() { + # In multi-master setup, only one addon manager should be running. We use + # existing leader election in kube-controller-manager instead of implementing + # a separate mechanism here. + if ! $ADDON_MANAGER_LEADER_ELECTION; then + log INFO "Leader election disabled." + return 0; + fi + KUBE_CONTROLLER_MANAGER_LEADER=`${KUBECTL} -n kube-system get ep kube-controller-manager \ + -o go-template=$'{{index .metadata.annotations "control-plane.alpha.kubernetes.io/leader"}}' \ + | sed 's/^.*"holderIdentity":"\([^"]*\)".*/\1/'` + # If there was any problem with getting the leader election results, var will + # be empty. Since it's better to have multiple addon managers than no addon + # managers at all, we're going to assume that we're the leader in such case. + log INFO "Leader is $KUBE_CONTROLLER_MANAGER_LEADER" + [[ "$KUBE_CONTROLLER_MANAGER_LEADER" == "" || + "$HOSTNAME" == "$KUBE_CONTROLLER_MANAGER_LEADER" ]] +} + # The business logic for whether a given object should be created # was already enforced by salt, and /etc/kubernetes/addons is the # managed result is of that. Start everything below that directory. @@ -178,8 +199,12 @@ done log INFO "== Entering periodical apply loop at $(date -Is) ==" while true; do start_sec=$(date +"%s") - ensure_addons - reconcile_addons + if is_leader; then + ensure_addons + reconcile_addons + else + log INFO "Not elected leader, going back to sleep." + fi end_sec=$(date +"%s") len_sec=$((${end_sec}-${start_sec})) # subtract the time passed from the sleep time diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-clusterrole.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-clusterrole.yaml index a23589cd3..35508b2a6 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-clusterrole.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-clusterrole.yaml @@ -1,5 +1,5 @@ kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1beta1 +apiVersion: rbac.authorization.k8s.io/v1 metadata: name: calico namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-clusterrolebinding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-clusterrolebinding.yaml index b40c21875..83a4ceb3d 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-clusterrolebinding.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-clusterrolebinding.yaml @@ -1,4 +1,4 @@ -apiVersion: rbac.authorization.k8s.io/v1beta1 +apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: calico diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrole.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrole.yaml index 658b126ac..eba229fd4 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrole.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrole.yaml @@ -1,5 +1,5 @@ kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1beta1 +apiVersion: rbac.authorization.k8s.io/v1 metadata: name: calico-cpva labels: diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrolebinding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrolebinding.yaml index f2b88270f..6a1ccb100 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrolebinding.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrolebinding.yaml @@ -1,5 +1,5 @@ kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1beta1 +apiVersion: rbac.authorization.k8s.io/v1 metadata: name: calico-cpva labels: diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-node-daemonset.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-node-daemonset.yaml index 7015b4145..5c4b69f71 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-node-daemonset.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/calico-node-daemonset.yaml @@ -24,12 +24,15 @@ spec: projectcalico.org/ds-ready: "true" hostNetwork: true serviceAccountName: calico + # Minimize downtime during a rolling upgrade or deletion; tell Kubernetes to do a "force + # deletion": https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods. + terminationGracePeriodSeconds: 0 containers: # Runs calico/node container on each Kubernetes node. This # container programs network policy and routes on each # host. - name: calico-node - image: calico/node:v2.5.1 + image: calico/node:v2.6.1 env: - name: CALICO_DISABLE_FILE_LOGGING value: "true" @@ -83,7 +86,7 @@ spec: # This container installs the Calico CNI binaries # and CNI network config file on each node. - name: install-cni - image: calico/cni:v1.10.0 + image: calico/cni:v1.11.0 command: ["/install-cni.sh"] env: - name: CNI_CONF_NAME diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/podsecuritypolicies/calico-node-psp-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/podsecuritypolicies/calico-node-psp-binding.yaml new file mode 100644 index 000000000..9394d1d27 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/podsecuritypolicies/calico-node-psp-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:calico + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: gce:podsecuritypolicy:privileged +subjects: +- kind: ServiceAccount + name: calico + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-deployment.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-deployment.yaml index f2442ffd0..c2fd28346 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-deployment.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-deployment.yaml @@ -22,7 +22,7 @@ spec: hostNetwork: true serviceAccountName: calico containers: - - image: calico/typha:v0.4.1 + - image: calico/typha:v0.5.1 name: calico-typha ports: - containerPort: 5473 diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrole.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrole.yaml new file mode 100644 index 000000000..28cfbada6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrole.yaml @@ -0,0 +1,11 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: typha-cpha + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +rules: + - apiGroups: [""] + resources: ["nodes"] + verbs: ["list"] diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrolebinding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrolebinding.yaml new file mode 100644 index 000000000..c32aa2ce6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrolebinding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: typha-cpha + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: typha-cpha +subjects: + - kind: ServiceAccount + name: typha-cpha + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-deployment.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-deployment.yaml index b5d7f657d..4f493b8bc 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-deployment.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-deployment.yaml @@ -31,3 +31,4 @@ spec: cpu: 10m limits: cpu: 10m + serviceAccountName: typha-cpha diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-role.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-role.yaml new file mode 100644 index 000000000..c605313fb --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-role.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: typha-cpha + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +rules: + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["get"] + - apiGroups: ["extensions"] + resources: ["deployments/scale"] + verbs: ["get", "update"] diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-rolebinding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-rolebinding.yaml new file mode 100644 index 000000000..4f926cf1d --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-rolebinding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: typha-cpha + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: typha-cpha +subjects: + - kind: ServiceAccount + name: typha-cpha + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-serviceaccount.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-serviceaccount.yaml new file mode 100644 index 000000000..429b40a85 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-serviceaccount.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: typha-cpha + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile diff --git a/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/google/heapster-controller.yaml b/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/google/heapster-controller.yaml index deefc5b07..1f498fb93 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/google/heapster-controller.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/google/heapster-controller.yaml @@ -58,26 +58,12 @@ spec: - /heapster - --source=kubernetes.summary_api:'' - --sink=gcm - volumeMounts: - - name: ssl-certs - mountPath: /etc/ssl/certs - readOnly: true - - name: usr-ca-certs - mountPath: /usr/share/ca-certificates - readOnly: true - image: gcr.io/google_containers/heapster-amd64:v1.5.0-beta.0 name: eventer command: - /eventer - --source=kubernetes:'' - --sink=gcl - volumeMounts: - - name: ssl-certs - mountPath: /etc/ssl/certs - readOnly: true - - name: usr-ca-certs - mountPath: /usr/share/ca-certificates - readOnly: true - image: gcr.io/google_containers/addon-resizer:1.7 name: heapster-nanny resources: @@ -136,13 +122,6 @@ spec: - --container=eventer - --poll-period=300000 - --estimator=exponential - volumes: - - name: ssl-certs - hostPath: - path: "/etc/ssl/certs" - - name: usr-ca-certs - hostPath: - path: "/usr/share/ca-certificates" serviceAccountName: heapster tolerations: - key: "CriticalAddonsOnly" diff --git a/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/googleinfluxdb/heapster-controller-combined.yaml b/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/googleinfluxdb/heapster-controller-combined.yaml index d33245a1e..710332b55 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/googleinfluxdb/heapster-controller-combined.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/googleinfluxdb/heapster-controller-combined.yaml @@ -59,26 +59,12 @@ spec: - --source=kubernetes.summary_api:'' - --sink=influxdb:http://monitoring-influxdb:8086 - --sink=gcm:?metrics=autoscaling - volumeMounts: - - name: ssl-certs - mountPath: /etc/ssl/certs - readOnly: true - - name: usr-ca-certs - mountPath: /usr/share/ca-certificates - readOnly: true - image: gcr.io/google_containers/heapster-amd64:v1.5.0-beta.0 name: eventer command: - /eventer - --source=kubernetes:'' - --sink=gcl - volumeMounts: - - name: ssl-certs - mountPath: /etc/ssl/certs - readOnly: true - - name: usr-ca-certs - mountPath: /usr/share/ca-certificates - readOnly: true - image: gcr.io/google_containers/addon-resizer:1.7 name: heapster-nanny resources: @@ -137,13 +123,6 @@ spec: - --container=eventer - --poll-period=300000 - --estimator=exponential - volumes: - - name: ssl-certs - hostPath: - path: "/etc/ssl/certs" - - name: usr-ca-certs - hostPath: - path: "/usr/share/ca-certificates" serviceAccountName: heapster tolerations: - key: "CriticalAddonsOnly" diff --git a/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml b/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml index 25c9673f3..b017af227 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml @@ -56,16 +56,9 @@ spec: - /heapster - --source=kubernetes.summary_api:'' - --sink=stackdriver:?cluster_name={{ cluster_name }}&min_interval_sec=100&batch_export_timeout_sec=110 - volumeMounts: - - name: ssl-certs - mountPath: /etc/ssl/certs - readOnly: true - - name: usr-ca-certs - mountPath: /usr/share/ca-certificates - readOnly: true # BEGIN_PROMETHEUS_TO_SD - name: prom-to-sd - image: gcr.io/google-containers/prometheus-to-sd:v0.2.1 + image: gcr.io/google-containers/prometheus-to-sd:v0.2.2 command: - /monitor - --source=heapster:http://localhost:8082?whitelisted=stackdriver_requests_count,stackdriver_timeseries_count @@ -73,9 +66,6 @@ spec: - --api-override={{ prometheus_to_sd_endpoint }} - --pod-id=$(POD_NAME) - --namespace-id=$(POD_NAMESPACE) - volumeMounts: - - name: ssl-certs - mountPath: /etc/ssl/certs env: - name: POD_NAME valueFrom: @@ -115,13 +105,6 @@ spec: - --container=heapster - --poll-period=300000 - --estimator=exponential - volumes: - - name: ssl-certs - hostPath: - path: "/etc/ssl/certs" - - name: usr-ca-certs - hostPath: - path: "/usr/share/ca-certificates" serviceAccountName: heapster tolerations: - key: "CriticalAddonsOnly" diff --git a/vendor/k8s.io/kubernetes/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml b/vendor/k8s.io/kubernetes/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml new file mode 100644 index 000000000..a5eaf1da7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml @@ -0,0 +1,45 @@ +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: nvidia-gpu-device-plugin + namespace: kube-system + labels: + k8s-app: nvidia-gpu-device-plugin + addonmanager.kubernetes.io/mode: Reconcile +spec: + template: + metadata: + labels: + k8s-app: nvidia-gpu-device-plugin + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: cloud.google.com/gke-accelerator + operator: Exists + hostNetwork: true + hostPID: true + volumes: + - name: device-plugin + hostPath: + path: /var/lib/kubelet/device-plugins + - name: dev + hostPath: + path: /dev + containers: + - image: "gcr.io/google-containers/nvidia-gpu-device-plugin@sha256:943a62949cd80c26e7371d4e123dac61b4cc7281390721aaa95f265171094842" + command: ["/usr/bin/nvidia-gpu-device-plugin", "-logtostderr"] + name: nvidia-gpu-device-plugin + resources: + requests: + cpu: 10m + memory: 10Mi + securityContext: + privileged: true + volumeMounts: + - name: device-plugin + mountPath: /device-plugin + - name: dev + mountPath: /dev diff --git a/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.base b/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.base index 0fbda4f44..e93884df0 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.base +++ b/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.base @@ -84,17 +84,6 @@ spec: annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: k8s-app - operator: In - values: ["kube-dns"] - topologyKey: kubernetes.io/hostname tolerations: - key: "CriticalAddonsOnly" operator: "Exists" @@ -105,7 +94,7 @@ spec: optional: true containers: - name: kubedns - image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5 + image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7 resources: # TODO: Set memory limits when we've profiled the container for large # clusters, then set request = limit to keep this container in @@ -156,7 +145,7 @@ spec: - name: kube-dns-config mountPath: /kube-dns-config - name: dnsmasq - image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5 + image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.7 livenessProbe: httpGet: path: /healthcheck/dnsmasq @@ -195,7 +184,7 @@ spec: - name: kube-dns-config mountPath: /etc/k8s/dns/dnsmasq-nanny - name: sidecar - image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.5 + image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.7 livenessProbe: httpGet: path: /metrics @@ -208,8 +197,8 @@ spec: args: - --v=2 - --logtostderr - - --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.__PILLAR__DNS__DOMAIN__,5,A - - --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.__PILLAR__DNS__DOMAIN__,5,A + - --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.__PILLAR__DNS__DOMAIN__,5,SRV + - --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.__PILLAR__DNS__DOMAIN__,5,SRV ports: - containerPort: 10054 name: metrics diff --git a/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.in b/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.in index b8a431ab3..12b092367 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.in +++ b/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.in @@ -84,17 +84,6 @@ spec: annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: k8s-app - operator: In - values: ["kube-dns"] - topologyKey: kubernetes.io/hostname tolerations: - key: "CriticalAddonsOnly" operator: "Exists" @@ -105,7 +94,7 @@ spec: optional: true containers: - name: kubedns - image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5 + image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7 resources: # TODO: Set memory limits when we've profiled the container for large # clusters, then set request = limit to keep this container in @@ -156,7 +145,7 @@ spec: - name: kube-dns-config mountPath: /kube-dns-config - name: dnsmasq - image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5 + image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.7 livenessProbe: httpGet: path: /healthcheck/dnsmasq @@ -195,7 +184,7 @@ spec: - name: kube-dns-config mountPath: /etc/k8s/dns/dnsmasq-nanny - name: sidecar - image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.5 + image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.7 livenessProbe: httpGet: path: /metrics @@ -208,8 +197,8 @@ spec: args: - --v=2 - --logtostderr - - --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.{{ pillar['dns_domain'] }},5,A - - --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.{{ pillar['dns_domain'] }},5,A + - --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.{{ pillar['dns_domain'] }},5,SRV + - --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.{{ pillar['dns_domain'] }},5,SRV ports: - containerPort: 10054 name: metrics diff --git a/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.sed b/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.sed index 92a29c94c..101cf588e 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.sed +++ b/vendor/k8s.io/kubernetes/cluster/addons/dns/kube-dns.yaml.sed @@ -84,17 +84,6 @@ spec: annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: k8s-app - operator: In - values: ["kube-dns"] - topologyKey: kubernetes.io/hostname tolerations: - key: "CriticalAddonsOnly" operator: "Exists" @@ -105,7 +94,7 @@ spec: optional: true containers: - name: kubedns - image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5 + image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7 resources: # TODO: Set memory limits when we've profiled the container for large # clusters, then set request = limit to keep this container in @@ -156,7 +145,7 @@ spec: - name: kube-dns-config mountPath: /kube-dns-config - name: dnsmasq - image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5 + image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.7 livenessProbe: httpGet: path: /healthcheck/dnsmasq @@ -195,7 +184,7 @@ spec: - name: kube-dns-config mountPath: /etc/k8s/dns/dnsmasq-nanny - name: sidecar - image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.5 + image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.7 livenessProbe: httpGet: path: /metrics @@ -208,8 +197,8 @@ spec: args: - --v=2 - --logtostderr - - --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.$DNS_DOMAIN,5,A - - --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.$DNS_DOMAIN,5,A + - --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.$DNS_DOMAIN,5,SRV + - --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.$DNS_DOMAIN,5,SRV ports: - containerPort: 10054 name: metrics diff --git a/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/etcd-empty-dir-cleanup.yaml b/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/etcd-empty-dir-cleanup.yaml index cf7e5b5f5..05943c8c4 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/etcd-empty-dir-cleanup.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/etcd-empty-dir-cleanup.yaml @@ -1,4 +1,14 @@ apiVersion: v1 +kind: ServiceAccount +metadata: + name: etcd-empty-dir-cleanup + namespace: kube-system + labels: + k8s-app: etcd-empty-dir-cleanup + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +--- +apiVersion: v1 kind: Pod metadata: name: etcd-empty-dir-cleanup @@ -8,6 +18,7 @@ metadata: labels: k8s-app: etcd-empty-dir-cleanup spec: + serviceAccountName: etcd-empty-dir-cleanup hostNetwork: true dnsPolicy: Default containers: diff --git a/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp-binding.yaml new file mode 100644 index 000000000..77003f69c --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:etcd-empty-dir-cleanup + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: gce:podsecuritypolicy:etcd-empty-dir-cleanup +subjects: +- kind: ServiceAccount + name: etcd-empty-dir-cleanup + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp-role.yaml b/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp-role.yaml new file mode 100644 index 000000000..6b577479d --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp-role.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: gce:podsecuritypolicy:etcd-empty-dir-cleanup + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +rules: +- apiGroups: + - extensions + resourceNames: + - gce.etcd-empty-dir-cleanup + resources: + - podsecuritypolicies + verbs: + - use diff --git a/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp.yaml b/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp.yaml new file mode 100644 index 000000000..d51c47811 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/etcd-empty-dir-cleanup/podsecuritypolicies/etcd-empty-dir-cleanup-psp.yaml @@ -0,0 +1,31 @@ +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: + name: gce.etcd-empty-dir-cleanup + annotations: + kubernetes.io/description: 'Policy used by the etcd-empty-dir-cleanup addon.' + # TODO: etcd-empty-dir-cleanup should run with the default seccomp profile + seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' + # 'runtime/default' is already the default, but must be filled in on the + # pod to pass admission. + apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' + apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' + labels: + kubernetes.io/cluster-service: 'true' + addonmanager.kubernetes.io/mode: Reconcile +spec: + privileged: false + volumes: + - 'secret' + hostNetwork: true + hostIPC: false + hostPID: false + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'RunAsAny' + fsGroup: + rule: 'RunAsAny' + readOnlyRootFilesystem: false diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image/BUILD b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image/BUILD index 99680582c..be7850941 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image/BUILD +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image/BUILD @@ -17,7 +17,7 @@ go_library( srcs = ["elasticsearch_logging_discovery.go"], importpath = "k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go index a896faf80..ed3a623a6 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go @@ -28,7 +28,7 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" clientapi "k8s.io/client-go/tools/clientcmd/api" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" ) @@ -81,10 +81,15 @@ func main() { } var elasticsearch *api.Service + serviceName := os.Getenv("ELASTICSEARCH_SERVICE_NAME") + if serviceName == "" { + serviceName = "elasticsearch-logging" + } + // Look for endpoints associated with the Elasticsearch loggging service. // First wait for the service to become available. for t := time.Now(); time.Since(t) < 5*time.Minute; time.Sleep(10 * time.Second) { - elasticsearch, err = client.Core().Services(namespace).Get("elasticsearch-logging", metav1.GetOptions{}) + elasticsearch, err = client.Core().Services(namespace).Get(serviceName, metav1.GetOptions{}) if err == nil { break } @@ -101,7 +106,7 @@ func main() { // Wait for some endpoints. count := 0 for t := time.Now(); time.Since(t) < 5*time.Minute; time.Sleep(10 * time.Second) { - endpoints, err = client.Core().Endpoints(namespace).Get("elasticsearch-logging", metav1.GetOptions{}) + endpoints, err = client.Core().Endpoints(namespace).Get(serviceName, metav1.GetOptions{}) if err != nil { continue } diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-configmap.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-configmap.yaml index 3fe62d8ae..161e4a62e 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-configmap.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-configmap.yaml @@ -96,16 +96,27 @@ data: # the name of the Kubernetes container regardless of how many times the # Kubernetes pod has been restarted (resulting in a several Docker container IDs). - # Example: + # Json Log Example: # {"log":"[info:2016-02-16T16:04:05.930-08:00] Some log text here\n","stream":"stdout","time":"2016-02-17T00:04:05.931087621Z"} + # CRI Log Example: + # 2016-02-17T00:04:05.931087621Z stdout [info:2016-02-16T16:04:05.930-08:00] Some log text here type tail path /var/log/containers/*.log pos_file /var/log/es-containers.log.pos time_format %Y-%m-%dT%H:%M:%S.%NZ tag kubernetes.* - format json read_from_head true + format multi_format + + format json + time_key time + time_format %Y-%m-%dT%H:%M:%S.%NZ + + + format /^(? system.input.conf: |- # Example: @@ -356,7 +367,7 @@ data: num_threads 2 metadata: - name: fluentd-es-config-v0.1.0 + name: fluentd-es-config-v0.1.1 namespace: kube-system labels: addonmanager.kubernetes.io/mode: Reconcile diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml index cb14b33e3..4de45498e 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml @@ -48,11 +48,11 @@ roleRef: apiVersion: apps/v1beta2 kind: DaemonSet metadata: - name: fluentd-es-v2.0.1 + name: fluentd-es-v2.0.2 namespace: kube-system labels: k8s-app: fluentd-es - version: v2.0.1 + version: v2.0.2 kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile spec: @@ -61,7 +61,7 @@ spec: labels: k8s-app: fluentd-es kubernetes.io/cluster-service: "true" - version: v2.0.1 + version: v2.0.2 # This annotation ensures that fluentd does not get evicted if the node # supports critical pod annotation based priority scheme. # Note that this does not guarantee admission on the nodes (#40573). @@ -71,7 +71,7 @@ spec: serviceAccountName: fluentd-es containers: - name: fluentd-es - image: gcr.io/google-containers/fluentd-elasticsearch:v2.0.1 + image: gcr.io/google-containers/fluentd-elasticsearch:v2.0.2 env: - name: FLUENTD_ARGS value: --no-supervisor -q @@ -108,4 +108,4 @@ spec: path: /usr/lib64 - name: config-volume configMap: - name: fluentd-es-config-v0.1.0 + name: fluentd-es-config-v0.1.1 diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Gemfile b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Gemfile index 5ef6d20e2..c936b40f3 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Gemfile +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Gemfile @@ -6,4 +6,5 @@ gem 'fluent-plugin-kubernetes_metadata_filter', '~>0.27.0' gem 'fluent-plugin-elasticsearch', '~>1.9.5' gem 'fluent-plugin-systemd', '~>0.0.8' gem 'fluent-plugin-prometheus', '~>0.3.0' +gem 'fluent-plugin-multi-format-parser', '~>0.1.1' gem 'oj', '~>2.18.1' diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Makefile b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Makefile index 23f35c886..0b5fa8a48 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Makefile +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Makefile @@ -16,7 +16,7 @@ PREFIX = gcr.io/google-containers IMAGE = fluentd-elasticsearch -TAG = v2.0.1 +TAG = v2.0.2 build: docker build --pull -t $(PREFIX)/$(IMAGE):$(TAG) . diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/podsecuritypolicies/es-psp-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/podsecuritypolicies/es-psp-binding.yaml new file mode 100644 index 000000000..fbe06861c --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/podsecuritypolicies/es-psp-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:elasticsearch-logging + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: gce:podsecuritypolicy:privileged +subjects: +- kind: ServiceAccount + name: elasticsearch-logging + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/event-exporter.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/event-exporter.yaml index 3c661bbb5..de6f48813 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/event-exporter.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/event-exporter.yaml @@ -52,16 +52,23 @@ spec: - '/event-exporter' # BEGIN_PROMETHEUS_TO_SD - name: prometheus-to-sd-exporter - image: gcr.io/google-containers/prometheus-to-sd:v0.2.1 + image: gcr.io/google-containers/prometheus-to-sd:v0.2.2 command: - /monitor - - --component=event_exporter - --stackdriver-prefix={{ prometheus_to_sd_prefix }}/addons - --api-override={{ prometheus_to_sd_endpoint }} - - --whitelisted-metrics=stackdriver_sink_received_entry_count,stackdriver_sink_request_count,stackdriver_sink_successfully_sent_entry_count - volumeMounts: - - name: ssl-certs - mountPath: /etc/ssl/certs + - --source=event_exported:http://localhost:80?whitelisted=stackdriver_sink_received_entry_count,stackdriver_sink_request_count,stackdriver_sink_successfully_sent_entry_count + - --pod-id=$(POD_NAME) + - --namespace-id=$(POD_NAMESPACE) + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace # END_PROMETHEUS_TO_SD terminationGracePeriodSeconds: 30 volumes: diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-configmap.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-configmap.yaml index a1049e22e..bbd02f8f5 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-configmap.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-configmap.yaml @@ -41,17 +41,26 @@ data: # Tag is then parsed by google_cloud plugin and translated to the metadata, # visible in the log viewer - # Example: + # Json Log Example: # {"log":"[info:2016-02-16T16:04:05.930-08:00] Some log text here\n","stream":"stdout","time":"2016-02-17T00:04:05.931087621Z"} + # CRI Log Example: + # 2016-02-17T00:04:05.931087621Z stdout [info:2016-02-16T16:04:05.930-08:00] Some log text here type tail - format json - time_key time path /var/log/containers/*.log pos_file /var/log/gcp-containers.log.pos - time_format %Y-%m-%dT%H:%M:%S.%N%Z tag reform.* read_from_head true + format multi_format + + format json + time_key time + time_format %Y-%m-%dT%H:%M:%S.%NZ + + + format /^(? @@ -389,7 +398,7 @@ data: num_threads 2 metadata: - name: fluentd-gcp-config-v1.2.2 + name: fluentd-gcp-config-v1.2.3 namespace: kube-system labels: addonmanager.kubernetes.io/mode: Reconcile diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-ds.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-ds.yaml index c9cc6bd55..01034cf7a 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-ds.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-ds.yaml @@ -1,13 +1,22 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: fluentd-gcp + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +--- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: - name: fluentd-gcp-v2.0.9 + name: fluentd-gcp-v2.0.10 namespace: kube-system labels: k8s-app: fluentd-gcp kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile - version: v2.0.9 + version: v2.0.10 spec: updateStrategy: type: RollingUpdate @@ -16,18 +25,18 @@ spec: labels: k8s-app: fluentd-gcp kubernetes.io/cluster-service: "true" - version: v2.0.9 + version: v2.0.10 # This annotation ensures that fluentd does not get evicted if the node # supports critical pod annotation based priority scheme. # Note that this does not guarantee admission on the nodes (#40573). annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: + serviceAccountName: fluentd-gcp dnsPolicy: Default - hostNetwork: true containers: - name: fluentd-gcp - image: gcr.io/google-containers/fluentd-gcp:2.0.9 + image: gcr.io/google-containers/fluentd-gcp:2.0.10 env: - name: FLUENTD_ARGS value: --no-supervisor -q @@ -82,17 +91,23 @@ spec: fi; # BEGIN_PROMETHEUS_TO_SD - name: prometheus-to-sd-exporter - image: gcr.io/google-containers/prometheus-to-sd:v0.1.3 + image: gcr.io/google-containers/prometheus-to-sd:v0.2.2 command: - /monitor - - --component=fluentd - - --target-port=31337 - --stackdriver-prefix={{ prometheus_to_sd_prefix }}/addons - --api-override={{ prometheus_to_sd_endpoint }} - - --whitelisted-metrics=stackdriver_successful_requests_count,stackdriver_failed_requests_count,stackdriver_ingested_entries_count,stackdriver_dropped_entries_count - volumeMounts: - - name: ssl-certs - mountPath: /etc/ssl/certs + - --source=fluentd:http://localhost:31337?whitelisted=stackdriver_successful_requests_count,stackdriver_failed_requests_count,stackdriver_ingested_entries_count,stackdriver_dropped_entries_count + - --pod-id=$(POD_NAME) + - --namespace-id=$(POD_NAMESPACE) + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace # END_PROMETHEUS_TO_SD nodeSelector: beta.kubernetes.io/fluentd-ds-ready: "true" @@ -117,7 +132,4 @@ spec: path: /usr/lib64 - name: config-volume configMap: - name: fluentd-gcp-config-v1.2.2 - - name: ssl-certs - hostPath: - path: /etc/ssl/certs + name: fluentd-gcp-config-v1.2.3 diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-binding.yaml new file mode 100644 index 000000000..5ef3b6734 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:event-exporter + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: gce:podsecuritypolicy:event-exporter +subjects: +- kind: ServiceAccount + name: event-exporter-sa + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-role.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-role.yaml new file mode 100644 index 000000000..f360a87f4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-role.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: gce:podsecuritypolicy:event-exporter + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +rules: +- apiGroups: + - extensions + resourceNames: + - gce.event-exporter + resources: + - podsecuritypolicies + verbs: + - use diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp.yaml new file mode 100644 index 000000000..48e57f7f0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp.yaml @@ -0,0 +1,38 @@ +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: + name: gce.event-exporter + annotations: + kubernetes.io/description: 'Policy used by the event-exporter addon.' + # TODO: event-exporter should run with the default seccomp profile + seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' + # 'runtime/default' is already the default, but must be filled in on the + # pod to pass admission. + apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' + apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' + labels: + kubernetes.io/cluster-service: 'true' + addonmanager.kubernetes.io/mode: Reconcile +spec: + privileged: false + allowPrivilegeEscalation: false + volumes: + - 'hostPath' + - 'secret' + # TODO: This only needs a hostPath to read /etc/ssl/certs, + # but it should be able to just include these in the image. + allowedHostPaths: + - pathPrefix: /etc/ssl/certs + hostNetwork: false + hostIPC: false + hostPID: false + # TODO: This doesn't need to run as root. + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'RunAsAny' + fsGroup: + rule: 'RunAsAny' + readOnlyRootFilesystem: false diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-binding.yaml new file mode 100644 index 000000000..b34f524c9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:fluentd-gcp + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: gce:podsecuritypolicy:fluentd-gcp +subjects: +- kind: ServiceAccount + name: fluentd-gcp + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-role.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-role.yaml new file mode 100644 index 000000000..478257bf2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-role.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: gce:podsecuritypolicy:fluentd-gcp + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +rules: +- apiGroups: + - extensions + resourceNames: + - gce.fluentd-gcp + resources: + - podsecuritypolicies + verbs: + - use diff --git a/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp.yaml b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp.yaml new file mode 100644 index 000000000..36b3168f8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp.yaml @@ -0,0 +1,38 @@ +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: + name: gce.fluentd-gcp + annotations: + kubernetes.io/description: 'Policy used by the fluentd-gcp addon.' + # TODO: fluentd-gcp should run with the default seccomp profile + seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' + # 'runtime/default' is already the default, but must be filled in on the + # pod to pass admission. + apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' + apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' + labels: + kubernetes.io/cluster-service: 'true' + addonmanager.kubernetes.io/mode: Reconcile +spec: + privileged: false + allowPrivilegeEscalation: false + volumes: + - 'configMap' + - 'hostPath' + - 'secret' + allowedHostPaths: + - pathPrefix: /var/log + - pathPrefix: /var/lib/docker/containers + - pathPrefix: /usr/lib64 + hostNetwork: true + hostIPC: false + hostPID: false + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'RunAsAny' + fsGroup: + rule: 'RunAsAny' + readOnlyRootFilesystem: false diff --git a/vendor/k8s.io/kubernetes/cluster/addons/ip-masq-agent/ip-masq-agent.yaml b/vendor/k8s.io/kubernetes/cluster/addons/ip-masq-agent/ip-masq-agent.yaml index 02152357f..f6bb21c01 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/ip-masq-agent/ip-masq-agent.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/ip-masq-agent/ip-masq-agent.yaml @@ -1,3 +1,13 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: ip-masq-agent + namespace: kube-system + labels: + k8s-app: ip-masq-agent + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +--- # https://github.com/kubernetes-incubator/ip-masq-agent/blob/v2.0.0/README.md apiVersion: extensions/v1beta1 kind: DaemonSet @@ -14,6 +24,7 @@ spec: annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: + serviceAccountName: ip-masq-agent hostNetwork: true containers: - name: ip-masq-agent diff --git a/vendor/k8s.io/kubernetes/cluster/addons/ip-masq-agent/podsecuritypolicies/ip-masq-agent-psp-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/ip-masq-agent/podsecuritypolicies/ip-masq-agent-psp-binding.yaml new file mode 100644 index 000000000..95f056ef7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/ip-masq-agent/podsecuritypolicies/ip-masq-agent-psp-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:ip-masq-agent + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: gce:podsecuritypolicy:privileged +subjects: +- kind: ServiceAccount + name: ip-masq-agent + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/kube-proxy/kube-proxy-ds.yaml b/vendor/k8s.io/kubernetes/cluster/addons/kube-proxy/kube-proxy-ds.yaml index a2b41e7db..479c6eeb0 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/kube-proxy/kube-proxy-ds.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/kube-proxy/kube-proxy-ds.yaml @@ -52,6 +52,9 @@ spec: - mountPath: /run/xtables.lock name: xtables-lock readOnly: false + - mountPath: /lib/modules + name: lib-modules + readOnly: true volumes: - name: varlog hostPath: @@ -60,4 +63,7 @@ spec: hostPath: path: /run/xtables.lock type: FileOrCreate + - name: lib-modules + hostPath: + path: /lib/modules serviceAccountName: kube-proxy diff --git a/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy-configmap.yaml b/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy-configmap.yaml deleted file mode 100644 index 2d23f42ad..000000000 --- a/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy-configmap.yaml +++ /dev/null @@ -1,88 +0,0 @@ -kind: ConfigMap -apiVersion: v1 -metadata: - name: metadata-proxy-config - namespace: kube-system - labels: - addonmanager.kubernetes.io/mode: EnsureExists -data: - nginx.conf: |- - user www-data; - worker_processes 4; - pid /run/nginx.pid; - error_log /dev/stdout; - - events { - worker_connections 20; - } - - http { - access_log /dev/stdout; - server { - listen 127.0.0.1:988; - # When serving 301s, don't redirect to port 988. - port_in_redirect off; - - # By default, return 403. This protects us from new API versions. - location / { - return 403 "This metadata API is not allowed by the metadata proxy."; - } - - # Allow for REST discovery. - location = / { - if ($args ~* "^(.+&)?recursive=") { - return 403 "?recursive calls are not allowed by the metadata proxy."; - } - proxy_pass http://169.254.169.254; - } - location = /computeMetadata/ { - if ($args ~* "^(.+&)?recursive=") { - return 403 "?recursive calls are not allowed by the metadata proxy."; - } - proxy_pass http://169.254.169.254; - } - - # By default, allow the v0.1, v1beta1, and v1 APIs. - location /0.1/ { - if ($args ~* "^(.+&)?recursive=") { - return 403 "?recursive calls are not allowed by the metadata proxy."; - } - proxy_pass http://169.254.169.254; - } - location /computeMetadata/v1beta1/ { - if ($args ~* "^(.+&)?recursive=") { - return 403 "?recursive calls are not allowed by the metadata proxy."; - } - proxy_pass http://169.254.169.254; - } - location /computeMetadata/v1/ { - if ($args ~* "^(.+&)?recursive=") { - return 403 "?recursive calls are not allowed by the metadata proxy."; - } - proxy_pass http://169.254.169.254; - } - - # Return a 403 for the kube-env attribute in all allowed API versions. - location /0.1/meta-data/attributes/kube-env { - return 403 "This metadata endpoint is concealed."; - } - location /computeMetadata/v1beta1/instance/attributes/kube-env { - return 403 "This metadata endpoint is concealed."; - } - location /computeMetadata/v1/instance/attributes/kube-env { - return 403 "This metadata endpoint is concealed."; - } - - # Return a 403 for instance identity in all allowed API versions. - location ~ /0.1/meta-data/service-accounts/.+/identity { - return 403 "This metadata endpoint is concealed."; - } - location ~ /computeMetadata/v1beta1/instance/service-accounts/.+/identity { - return 403 "This metadata endpoint is concealed."; - } - location ~ /computeMetadata/v1/instance/service-accounts/.+/identity { - return 403 "This metadata endpoint is concealed."; - } - } - } - diff --git a/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy.yaml b/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy.yaml index 209534509..376fb65f1 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy.yaml @@ -1,3 +1,13 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: metadata-proxy + namespace: kube-system + labels: + k8s-app: metadata-proxy + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +--- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: @@ -23,30 +33,41 @@ spec: annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: + serviceAccountName: metadata-proxy hostNetwork: true dnsPolicy: Default containers: - name: metadata-proxy - image: gcr.io/google-containers/metadata-proxy:0.1.3 - imagePullPolicy: Always + image: gcr.io/google_containers/metadata-proxy:v0.1.4 securityContext: privileged: true - command: - - '/start-proxy.sh' resources: requests: memory: "32Mi" - cpu: "50m" + cpu: "30m" limits: memory: "32Mi" - cpu: "50m" - volumeMounts: - - name: config-volume - mountPath: /etc/nginx/ + cpu: "30m" + # BEGIN_PROMETHEUS_TO_SD + - name: prometheus-to-sd-exporter + image: gcr.io/google_containers/prometheus-to-sd:v0.2.2 + command: + - /monitor + - --stackdriver-prefix={{ prometheus_to_sd_prefix }}/addons + - --api-override={{ prometheus_to_sd_endpoint }} + - --source=metadata_proxy:http://127.0.0.1:989?whitelisted=request_count + - --pod-id=$(POD_NAME) + - --namespace-id=$(POD_NAMESPACE) + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + # END_PROMETHEUS_TO_SD nodeSelector: beta.kubernetes.io/metadata-proxy-ready: "true" terminationGracePeriodSeconds: 30 - volumes: - - name: config-volume - configMap: - name: metadata-proxy-config diff --git a/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/podsecuritypolicies/metadata-proxy-psp-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/podsecuritypolicies/metadata-proxy-psp-binding.yaml new file mode 100644 index 000000000..86c5d06db --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/metadata-proxy/gce/podsecuritypolicies/metadata-proxy-psp-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:metadata-proxy + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: gce:podsecuritypolicy:privileged +subjects: +- kind: ServiceAccount + name: metadata-proxy + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/metrics-server/metrics-server-deployment.yaml b/vendor/k8s.io/kubernetes/cluster/addons/metrics-server/metrics-server-deployment.yaml index d018f8a34..5b19bf769 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/metrics-server/metrics-server-deployment.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/metrics-server/metrics-server-deployment.yaml @@ -62,7 +62,7 @@ spec: fieldPath: metadata.namespace command: - /pod_nanny - - --cpu=80m + - --cpu=40m - --extra-cpu=0.5m - --memory=140Mi - --extra-memory=4Mi diff --git a/vendor/k8s.io/kubernetes/cluster/addons/node-problem-detector/podsecuritypolicies/npd-psp-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/node-problem-detector/podsecuritypolicies/npd-psp-binding.yaml new file mode 100644 index 000000000..e55a28503 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/node-problem-detector/podsecuritypolicies/npd-psp-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:npd + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: gce:podsecuritypolicy:privileged +subjects: +- kind: ServiceAccount + name: node-problem-detector + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/podsecuritypolicies/privileged.yaml b/vendor/k8s.io/kubernetes/cluster/addons/podsecuritypolicies/privileged.yaml deleted file mode 100644 index 345c0797c..000000000 --- a/vendor/k8s.io/kubernetes/cluster/addons/podsecuritypolicies/privileged.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: PodSecurityPolicy -metadata: - annotations: - kubernetes.io/description: 'privileged allows access to all privileged and host - features and the ability to run as any user, any group, any fsGroup, and with - any SELinux context.' - creationTimestamp: 2016-05-06T19:28:58Z - name: privileged -spec: - privileged: true - defaultAddCapabilities: null - requiredDropCapabilities: null - allowedCapabilities: null - volumes: - - '*' - hostNetwork: true - hostPorts: - - - min: 0 - max: 65535 - hostIPC: true - hostPID: true - runAsUser: - rule: 'RunAsAny' - seLinux: - rule: 'RunAsAny' - supplementalGroups: - rule: 'RunAsAny' - fsGroup: - rule: 'RunAsAny' - readOnlyRootFilesystem: false diff --git a/vendor/k8s.io/kubernetes/cluster/addons/rbac/kube-apiserver-kubelet-api-admin-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-api-auth/kube-apiserver-kubelet-api-admin-binding.yaml similarity index 100% rename from vendor/k8s.io/kubernetes/cluster/addons/rbac/kube-apiserver-kubelet-api-admin-binding.yaml rename to vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-api-auth/kube-apiserver-kubelet-api-admin-binding.yaml diff --git a/vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-api-admin-role.yaml b/vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-api-auth/kubelet-api-admin-role.yaml similarity index 100% rename from vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-api-admin-role.yaml rename to vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-api-auth/kubelet-api-admin-role.yaml diff --git a/vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-certificate-management.yaml b/vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-cert-rotation/kubelet-certificate-management.yaml similarity index 100% rename from vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-certificate-management.yaml rename to vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-cert-rotation/kubelet-certificate-management.yaml diff --git a/vendor/k8s.io/kubernetes/cluster/addons/rbac/legacy-kubelet-user-disable/kubelet-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/rbac/legacy-kubelet-user-disable/kubelet-binding.yaml new file mode 100644 index 000000000..1d1832763 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/rbac/legacy-kubelet-user-disable/kubelet-binding.yaml @@ -0,0 +1,17 @@ +# This is required so that old clusters don't remove required bindings for 1.5 +# kubelets to function. +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: kubelet-cluster-admin + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: EnsureExists +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:node-bootstrapper +subjects: +- apiGroup: rbac.authorization.k8s.io + kind: User + name: kubelet diff --git a/vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-binding.yaml b/vendor/k8s.io/kubernetes/cluster/addons/rbac/legacy-kubelet-user/kubelet-binding.yaml similarity index 100% rename from vendor/k8s.io/kubernetes/cluster/addons/rbac/kubelet-binding.yaml rename to vendor/k8s.io/kubernetes/cluster/addons/rbac/legacy-kubelet-user/kubelet-binding.yaml diff --git a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/aws/default.yaml b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/aws/default.yaml index defd7cd73..85fc31616 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/aws/default.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/aws/default.yaml @@ -1,4 +1,4 @@ -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gp2 diff --git a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/azure/default.yaml b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/azure/default.yaml index fb24e0e00..045416451 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/azure/default.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/azure/default.yaml @@ -1,4 +1,4 @@ -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: standard diff --git a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/gce/default.yaml b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/gce/default.yaml index 7a00fd039..cf3320908 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/gce/default.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/gce/default.yaml @@ -1,4 +1,4 @@ -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: standard diff --git a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/local/default.yaml b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/local/default.yaml index 7e7d58b57..a90a74b16 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/local/default.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/local/default.yaml @@ -1,4 +1,4 @@ -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/openstack/default.yaml b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/openstack/default.yaml index 2fe85cd50..01687637e 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/openstack/default.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/openstack/default.yaml @@ -1,4 +1,4 @@ -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: standard diff --git a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/vsphere/default.yaml b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/vsphere/default.yaml index 288c54116..5678b8f08 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/storage-class/vsphere/default.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/storage-class/vsphere/default.yaml @@ -1,4 +1,4 @@ -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: thin diff --git a/vendor/k8s.io/kubernetes/cluster/centos/config-build.sh b/vendor/k8s.io/kubernetes/cluster/centos/config-build.sh index 4887bc13b..4854f7e10 100755 --- a/vendor/k8s.io/kubernetes/cluster/centos/config-build.sh +++ b/vendor/k8s.io/kubernetes/cluster/centos/config-build.sh @@ -40,8 +40,7 @@ FLANNEL_DOWNLOAD_URL=\ ETCD_DOWNLOAD_URL=\ "https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-linux-amd64.tar.gz" -# TODO(#33726): switch to dl.k8s.io K8S_CLIENT_DOWNLOAD_URL=\ -"https://storage.googleapis.com/kubernetes-release/release/v${K8S_VERSION}/kubernetes-client-linux-amd64.tar.gz" +"https://dl.k8s.io/v${K8S_VERSION}/kubernetes-client-linux-amd64.tar.gz" K8S_SERVER_DOWNLOAD_URL=\ -"https://storage.googleapis.com/kubernetes-release/release/v${K8S_VERSION}/kubernetes-server-linux-amd64.tar.gz" +"https://dl.k8s.io/v${K8S_VERSION}/kubernetes-server-linux-amd64.tar.gz" diff --git a/vendor/k8s.io/kubernetes/cluster/centos/master/scripts/apiserver.sh b/vendor/k8s.io/kubernetes/cluster/centos/master/scripts/apiserver.sh index 6b7b1c2b9..686e95d68 100755 --- a/vendor/k8s.io/kubernetes/cluster/centos/master/scripts/apiserver.sh +++ b/vendor/k8s.io/kubernetes/cluster/centos/master/scripts/apiserver.sh @@ -16,7 +16,7 @@ MASTER_ADDRESS=${1:-"8.8.8.18"} -ETCD_SERVERS=${2:-"http://8.8.8.18:2379"} +ETCD_SERVERS=${2:-"https://8.8.8.18:2379"} SERVICE_CLUSTER_IP_RANGE=${3:-"10.10.10.0/24"} ADMISSION_CONTROL=${4:-""} diff --git a/vendor/k8s.io/kubernetes/cluster/centos/node/scripts/flannel.sh b/vendor/k8s.io/kubernetes/cluster/centos/node/scripts/flannel.sh index 2830daefd..58783c5e3 100755 --- a/vendor/k8s.io/kubernetes/cluster/centos/node/scripts/flannel.sh +++ b/vendor/k8s.io/kubernetes/cluster/centos/node/scripts/flannel.sh @@ -15,7 +15,7 @@ # limitations under the License. -ETCD_SERVERS=${1:-"http://8.8.8.18:2379"} +ETCD_SERVERS=${1:-"https://8.8.8.18:2379"} FLANNEL_NET=${2:-"172.16.0.0/16"} CA_FILE="/srv/kubernetes/etcd/ca.pem" diff --git a/vendor/k8s.io/kubernetes/cluster/common.sh b/vendor/k8s.io/kubernetes/cluster/common.sh index 23208b453..c1c9261b5 100755 --- a/vendor/k8s.io/kubernetes/cluster/common.sh +++ b/vendor/k8s.io/kubernetes/cluster/common.sh @@ -160,20 +160,6 @@ function clear-kubeconfig() { echo "Cleared config for ${CONTEXT} from ${KUBECONFIG}" } -# Creates a kubeconfig file with the credentials for only the current-context -# cluster. This is used by federation to create secrets in test setup. -function create-kubeconfig-for-federation() { - if [[ "${FEDERATION:-}" == "true" ]]; then - echo "creating kubeconfig for federation secret" - local kubectl="${KUBE_ROOT}/cluster/kubectl.sh" - local cc=$("${kubectl}" config view -o jsonpath='{.current-context}') - KUBECONFIG_DIR=$(dirname ${KUBECONFIG:-$DEFAULT_KUBECONFIG}) - KUBECONFIG_PATH="${KUBECONFIG_DIR}/federation/kubernetes-apiserver/${cc}" - mkdir -p "${KUBECONFIG_PATH}" - "${kubectl}" config view --minify --flatten > "${KUBECONFIG_PATH}/kubeconfig" - fi -} - function tear_down_alive_resources() { local kubectl="${KUBE_ROOT}/cluster/kubectl.sh" "${kubectl}" delete deployments --all || true @@ -647,6 +633,7 @@ KUBE_PROXY_DAEMONSET: $(yaml-quote ${KUBE_PROXY_DAEMONSET:-false}) KUBE_PROXY_TOKEN: $(yaml-quote ${KUBE_PROXY_TOKEN:-}) NODE_PROBLEM_DETECTOR_TOKEN: $(yaml-quote ${NODE_PROBLEM_DETECTOR_TOKEN:-}) ADMISSION_CONTROL: $(yaml-quote ${ADMISSION_CONTROL:-}) +ENABLE_POD_SECURITY_POLICY: $(yaml-quote ${ENABLE_POD_SECURITY_POLICY:-}) MASTER_IP_RANGE: $(yaml-quote ${MASTER_IP_RANGE}) RUNTIME_CONFIG: $(yaml-quote ${RUNTIME_CONFIG}) CA_CERT: $(yaml-quote ${CA_CERT_BASE64:-}) @@ -679,6 +666,9 @@ PROMETHEUS_TO_SD_ENDPOINT: $(yaml-quote ${PROMETHEUS_TO_SD_ENDPOINT:-}) PROMETHEUS_TO_SD_PREFIX: $(yaml-quote ${PROMETHEUS_TO_SD_PREFIX:-}) ENABLE_PROMETHEUS_TO_SD: $(yaml-quote ${ENABLE_PROMETHEUS_TO_SD:-false}) ENABLE_POD_PRIORITY: $(yaml-quote ${ENABLE_POD_PRIORITY:-}) +CONTAINER_RUNTIME: $(yaml-quote ${CONTAINER_RUNTIME:-}) +CONTAINER_RUNTIME_ENDPOINT: $(yaml-quote ${CONTAINER_RUNTIME_ENDPOINT:-}) +LOAD_IMAGE_COMMAND: $(yaml-quote ${LOAD_IMAGE_COMMAND:-}) EOF if [ -n "${KUBELET_PORT:-}" ]; then cat >>$file <>$file <>$file <>$file <>$file <>$file <>$file <>$file <>$file <>$file <>$file <>$file <>$file <>$file <>$file <${cert_create_debug_output} || { - # If there was an error in the subshell, just die. - # TODO(roberthbailey): add better error handling here + cp -r easy-rsa-master/easyrsa3/* easy-rsa-master/aggregator) &>${cert_create_debug_output} || true + CERT_DIR="${KUBE_TEMP}/easy-rsa-master/easyrsa3" + AGGREGATOR_CERT_DIR="${KUBE_TEMP}/easy-rsa-master/aggregator" + if [ ! -x "${CERT_DIR}/easyrsa" -o ! -x "${AGGREGATOR_CERT_DIR}/easyrsa" ]; then + # TODO(roberthbailey,porridge): add better error handling here, + # see https://github.com/kubernetes/kubernetes/issues/55229 cat "${cert_create_debug_output}" >&2 echo "=== Failed to setup easy-rsa: Aborting ===" >&2 exit 2 - } + fi } # Runs the easy RSA commands to generate certificate files. -# The generated files are at ${KUBE_TEMP}/easy-rsa-master/easyrsa3 +# The generated files are IN ${CERT_DIR} # # Assumed vars # KUBE_TEMP # MASTER_NAME +# CERT_DIR # PRIMARY_CN: Primary canonical name # SANS: Subject alternate names # @@ -1080,7 +1079,7 @@ function generate-certs { local -r cert_create_debug_output=$(mktemp "${KUBE_TEMP}/cert_create_debug_output.XXX") # Note: This was heavily cribbed from make-ca-cert.sh (set -x - cd "${KUBE_TEMP}/easy-rsa-master/easyrsa3" + cd "${CERT_DIR}" ./easyrsa init-pki # this puts the cert into pki/ca.crt and the key into pki/private/ca.key ./easyrsa --batch "--req-cn=${PRIMARY_CN}@$(date +%s)" build-ca nopass @@ -1101,21 +1100,42 @@ function generate-certs { ./easyrsa --dn-mode=org \ --req-cn=kubecfg --req-org=system:masters \ --req-c= --req-st= --req-city= --req-email= --req-ou= \ - build-client-full kubecfg nopass) &>${cert_create_debug_output} || { - # If there was an error in the subshell, just die. - # TODO(roberthbailey): add better error handling here + build-client-full kubecfg nopass) &>${cert_create_debug_output} || true + local output_file_missing=0 + local output_file + for output_file in \ + "${CERT_DIR}/pki/private/ca.key" \ + "${CERT_DIR}/pki/ca.crt" \ + "${CERT_DIR}/pki/issued/${MASTER_NAME}.crt" \ + "${CERT_DIR}/pki/private/${MASTER_NAME}.key" \ + "${CERT_DIR}/pki/issued/kubelet.crt" \ + "${CERT_DIR}/pki/private/kubelet.key" \ + "${CERT_DIR}/pki/issued/kubecfg.crt" \ + "${CERT_DIR}/pki/private/kubecfg.key" \ + "${CERT_DIR}/pki/issued/kube-apiserver.crt" \ + "${CERT_DIR}/pki/private/kube-apiserver.key" + do + if [[ ! -s "${output_file}" ]]; then + echo "Expected file ${output_file} not created" >&2 + output_file_missing=1 + fi + done + if (( $output_file_missing )); then + # TODO(roberthbailey,porridge): add better error handling here, + # see https://github.com/kubernetes/kubernetes/issues/55229 cat "${cert_create_debug_output}" >&2 echo "=== Failed to generate master certificates: Aborting ===" >&2 exit 2 - } + fi } # Runs the easy RSA commands to generate aggregator certificate files. -# The generated files are at ${KUBE_TEMP}/easy-rsa-master/aggregator +# The generated files are in ${AGGREGATOR_CERT_DIR} # # Assumed vars # KUBE_TEMP # AGGREGATOR_MASTER_NAME +# AGGREGATOR_CERT_DIR # AGGREGATOR_PRIMARY_CN: Primary canonical name # AGGREGATOR_SANS: Subject alternate names # @@ -1145,13 +1165,27 @@ function generate-aggregator-certs { ./easyrsa --dn-mode=org \ --req-cn=proxy-clientcfg --req-org=system:aggregator \ --req-c= --req-st= --req-city= --req-email= --req-ou= \ - build-client-full proxy-clientcfg nopass) &>${cert_create_debug_output} || { - # If there was an error in the subshell, just die. - # TODO(roberthbailey): add better error handling here + build-client-full proxy-clientcfg nopass) &>${cert_create_debug_output} || true + local output_file_missing=0 + local output_file + for output_file in \ + "${AGGREGATOR_CERT_DIR}/pki/private/ca.key" \ + "${AGGREGATOR_CERT_DIR}/pki/ca.crt" \ + "${AGGREGATOR_CERT_DIR}/pki/issued/proxy-client.crt" \ + "${AGGREGATOR_CERT_DIR}/pki/private/proxy-client.key" + do + if [[ ! -s "${output_file}" ]]; then + echo "Expected file ${output_file} not created" >&2 + output_file_missing=1 + fi + done + if (( $output_file_missing )); then + # TODO(roberthbailey,porridge): add better error handling here, + # see https://github.com/kubernetes/kubernetes/issues/55229 cat "${cert_create_debug_output}" >&2 echo "=== Failed to generate aggregator certificates: Aborting ===" >&2 exit 2 - } + fi } # Run the cfssl command to generates certificate files for etcd service, the diff --git a/vendor/k8s.io/kubernetes/cluster/gce/BUILD b/vendor/k8s.io/kubernetes/cluster/gce/BUILD index 35e6e600c..8be2252d9 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/BUILD +++ b/vendor/k8s.io/kubernetes/cluster/gce/BUILD @@ -34,6 +34,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//cluster/gce/addons:all-srcs", "//cluster/gce/gci/mounter:all-srcs", ], tags = ["automanaged"], diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/BUILD b/vendor/k8s.io/kubernetes/cluster/gce/addons/BUILD new file mode 100644 index 000000000..c3e5620e2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/BUILD @@ -0,0 +1,38 @@ +package(default_visibility = ["//visibility:public"]) + +load("@io_bazel//tools/build_defs/pkg:pkg.bzl", "pkg_tar") + +filegroup( + name = "addon-srcs", + srcs = glob( + [ + "**/*.json", + "**/*.yaml", + "**/*.yaml.in", + ], + exclude = ["**/*demo*/**"], + ), +) + +pkg_tar( + name = "addons", + extension = "tar.gz", + files = [ + ":addon-srcs", + ], + mode = "0644", + strip_prefix = ".", +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/README.md b/vendor/k8s.io/kubernetes/cluster/gce/addons/README.md new file mode 100644 index 000000000..de55c8e9a --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/README.md @@ -0,0 +1,7 @@ +# GCE Cluster addons + +These cluster add-ons are specific to GCE and GKE clusters. The GCE-specific addon directory is +merged with the general cluster addon directory at release, so addon paths (relative to the addon +directory) must be unique across the 2 directory structures. + +More details on addons in general can be found [here](../../addons/README.md). diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/kube-proxy-binding.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/kube-proxy-binding.yaml new file mode 100644 index 000000000..49e865035 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/kube-proxy-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:kube-proxy + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: gce:podsecuritypolicy:privileged +subjects: + - kind: ServiceAccount + name: kube-proxy + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/kube-system-binding.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/kube-system-binding.yaml new file mode 100644 index 000000000..0c3c97eca --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/kube-system-binding.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:unprivileged-addon + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: gce:podsecuritypolicy:unprivileged-addon +subjects: +- kind: Group + # All service accounts in the kube-system namespace are allowed to use this. + name: system:serviceaccounts:kube-system + apiGroup: rbac.authorization.k8s.io diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/node-binding.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/node-binding.yaml new file mode 100644 index 000000000..332358240 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/node-binding.yaml @@ -0,0 +1,24 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: gce:podsecuritypolicy:nodes + namespace: kube-system + annotations: + kubernetes.io/description: 'Allow nodes to create privileged pods. Should + be used in combination with the NodeRestriction admission plugin to limit + nodes to mirror pods bound to themselves.' + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: 'true' +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: gce:podsecuritypolicy:privileged +subjects: + - kind: Group + apiGroup: rbac.authorization.k8s.io + name: system:nodes + - kind: User + apiGroup: rbac.authorization.k8s.io + # Legacy node ID + name: kubelet diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-binding.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-binding.yaml new file mode 100644 index 000000000..40d202b83 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-binding.yaml @@ -0,0 +1,18 @@ +apiVersion: rbac.authorization.k8s.io/v1 +# The persistent volume binder creates recycler pods in the default namespace, +# but the addon manager only creates namespaced objects in the kube-system +# namespace, so this is a ClusterRoleBinding. +kind: ClusterRoleBinding +metadata: + name: gce:podsecuritypolicy:persistent-volume-binder + labels: + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/cluster-service: "true" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: gce:podsecuritypolicy:persistent-volume-binder +subjects: +- kind: ServiceAccount + name: persistent-volume-binder + namespace: kube-system diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-role.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-role.yaml new file mode 100644 index 000000000..277707019 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-role.yaml @@ -0,0 +1,20 @@ +apiVersion: rbac.authorization.k8s.io/v1 +# The persistent volume binder creates recycler pods in the default namespace, +# but the addon manager only creates namespaced objects in the kube-system +# namespace, so this is a ClusterRole. +kind: ClusterRole +metadata: + name: gce:podsecuritypolicy:persistent-volume-binder + namespace: default + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +rules: +- apiGroups: + - extensions + resourceNames: + - gce.persistent-volume-binder + resources: + - podsecuritypolicies + verbs: + - use diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder.yaml new file mode 100644 index 000000000..f15462037 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder.yaml @@ -0,0 +1,29 @@ +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: + name: gce.persistent-volume-binder + annotations: + kubernetes.io/description: 'Policy used by the persistent-volume-binder + (a.k.a. persistentvolume-controller) to run recycler pods.' + # TODO: This should use the default seccomp profile. + seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' + labels: + kubernetes.io/cluster-service: 'true' + addonmanager.kubernetes.io/mode: Reconcile +spec: + privileged: false + volumes: + - 'nfs' + - 'secret' # Required for service account credentials. + hostNetwork: false + hostIPC: false + hostPID: false + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'RunAsAny' + fsGroup: + rule: 'RunAsAny' + readOnlyRootFilesystem: false diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/privileged-role.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/privileged-role.yaml new file mode 100644 index 000000000..84bc91898 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/privileged-role.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: gce:podsecuritypolicy:privileged + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +rules: +- apiGroups: + - extensions + resourceNames: + - gce.privileged + resources: + - podsecuritypolicies + verbs: + - use diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/privileged.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/privileged.yaml new file mode 100644 index 000000000..0fb96e164 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/privileged.yaml @@ -0,0 +1,33 @@ +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: + name: gce.privileged + annotations: + kubernetes.io/description: 'privileged allows full unrestricted access to + pod features, as if the PodSecurityPolicy controller was not enabled.' + seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +spec: + privileged: true + allowPrivilegeEscalation: true + allowedCapabilities: + - '*' + volumes: + - '*' + hostNetwork: true + hostPorts: + - min: 0 + max: 65535 + hostIPC: true + hostPID: true + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'RunAsAny' + fsGroup: + rule: 'RunAsAny' + readOnlyRootFilesystem: false diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon-role.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon-role.yaml new file mode 100644 index 000000000..580d67dec --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon-role.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: gce:podsecuritypolicy:unprivileged-addon + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +rules: +- apiGroups: + - extensions + resourceNames: + - gce.unprivileged-addon + resources: + - podsecuritypolicies + verbs: + - use diff --git a/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon.yaml b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon.yaml new file mode 100644 index 000000000..334e8b4c5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon.yaml @@ -0,0 +1,38 @@ +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: + name: gce.unprivileged-addon + annotations: + kubernetes.io/description: 'This policy grants the minimum ammount of + privilege necessary to run non-privileged kube-system pods. This policy is + not intended for use outside of kube-system, and may include further + restrictions in the future.' + # TODO: Addons should use the default seccomp profile. + seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' + # 'runtime/default' is already the default, but must be filled in on the + # pod to pass admission. + apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' + apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' + labels: + kubernetes.io/cluster-service: 'true' + addonmanager.kubernetes.io/mode: Reconcile +spec: + privileged: false + allowPrivilegeEscalation: false + volumes: + - 'emptyDir' + - 'configMap' + - 'secret' + hostNetwork: false + hostIPC: false + hostPID: false + # TODO: The addons using this profile should not run as root. + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'RunAsAny' + fsGroup: + rule: 'RunAsAny' + readOnlyRootFilesystem: false diff --git a/vendor/k8s.io/kubernetes/cluster/gce/config-common.sh b/vendor/k8s.io/kubernetes/cluster/gce/config-common.sh index 0b252825d..4c1bc3abe 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/config-common.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/config-common.sh @@ -95,11 +95,7 @@ function get-cluster-ip-range { if [[ "${NUM_NODES}" -gt 4000 ]]; then suggested_range="10.64.0.0/11" fi - echo "${suggested_range}" + echo "${suggested_range}" } -if [[ "${FEDERATION:-}" == true ]]; then - NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro,https://www.googleapis.com/auth/ndev.clouddns.readwrite}" -else - NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro}" -fi +NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro}" diff --git a/vendor/k8s.io/kubernetes/cluster/gce/config-default.sh b/vendor/k8s.io/kubernetes/cluster/gce/config-default.sh index 370939b7c..3c9cb99af 100755 --- a/vendor/k8s.io/kubernetes/cluster/gce/config-default.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/config-default.sh @@ -43,7 +43,7 @@ REGISTER_MASTER_KUBELET=${REGISTER_MASTER:-true} PREEMPTIBLE_NODE=${PREEMPTIBLE_NODE:-false} PREEMPTIBLE_MASTER=${PREEMPTIBLE_MASTER:-false} KUBE_DELETE_NODES=${KUBE_DELETE_NODES:-true} -KUBE_DELETE_NETWORK=${KUBE_DELETE_NETWORK:-false} +KUBE_DELETE_NETWORK=${KUBE_DELETE_NETWORK:-} # default value calculated below CREATE_CUSTOM_NETWORK=${CREATE_CUSTOM_NETWORK:-false} MASTER_OS_DISTRIBUTION=${KUBE_MASTER_OS_DISTRIBUTION:-${KUBE_OS_DISTRIBUTION:-gci}} @@ -79,11 +79,24 @@ MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-} MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-cos-cloud} NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${GCI_VERSION}} NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-cos-cloud} +NODE_SERVICE_ACCOUNT=${KUBE_GCE_NODE_SERVICE_ACCOUNT:-default} CONTAINER_RUNTIME=${KUBE_CONTAINER_RUNTIME:-docker} +CONTAINER_RUNTIME_ENDPOINT=${KUBE_CONTAINER_RUNTIME_ENDPOINT:-} +LOAD_IMAGE_COMMAND=${KUBE_LOAD_IMAGE_COMMAND:-docker load -i} RKT_VERSION=${KUBE_RKT_VERSION:-1.23.0} RKT_STAGE1_IMAGE=${KUBE_RKT_STAGE1_IMAGE:-coreos.com/rkt/stage1-coreos} +# MASTER_EXTRA_METADATA is the extra instance metadata on master instance separated by commas. +MASTER_EXTRA_METADATA=${KUBE_MASTER_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}} +# MASTER_EXTRA_METADATA is the extra instance metadata on node instance separated by commas. +NODE_EXTRA_METADATA=${KUBE_NODE_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}} NETWORK=${KUBE_GCE_NETWORK:-default} +# Enable network deletion by default (for kube-down), unless we're using 'default' network. +if [[ "${NETWORK}" == "default" ]]; then + KUBE_DELETE_NETWORK=${KUBE_DELETE_NETWORK:-false} +else + KUBE_DELETE_NETWORK=${KUBE_DELETE_NETWORK:-true} +fi if [[ "${CREATE_CUSTOM_NETWORK}" == true ]]; then SUBNETWORK="${SUBNETWORK:-${NETWORK}-custom-subnet}" fi @@ -102,11 +115,7 @@ MASTER_IP_RANGE="${MASTER_IP_RANGE:-10.246.0.0/24}" # It is the primary range in the subnet and is the range used for node instance IPs. NODE_IP_RANGE="$(get-node-ip-range)" -if [[ "${FEDERATION:-}" == true ]]; then - NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro,https://www.googleapis.com/auth/ndev.clouddns.readwrite}" -else - NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro}" -fi +NODE_SCOPES="${NODE_SCOPES:-monitoring,logging-write,storage-ro}" # Extra docker options for nodes. EXTRA_DOCKER_OPTS="${EXTRA_DOCKER_OPTS:-}" @@ -147,18 +156,25 @@ HEAPSTER_MACHINE_TYPE="${HEAPSTER_MACHINE_TYPE:-}" # TODO(piosz): remove this in 1.8 NODE_LABELS="${KUBE_NODE_LABELS:-beta.kubernetes.io/fluentd-ds-ready=true}" +# NON_MASTER_NODE_LABELS are labels will only be applied on non-master nodes. +NON_MASTER_NODE_LABELS="${KUBE_NON_MASTER_NODE_LABELS:-}" + # To avoid running Calico on a node that is not configured appropriately, # label each Node so that the DaemonSet can run the Pods only on ready Nodes. if [[ ${NETWORK_POLICY_PROVIDER:-} == "calico" ]]; then - NODE_LABELS="${NODE_LABELS},projectcalico.org/ds-ready=true" + NON_MASTER_NODE_LABELS="${NON_MASTER_NODE_LABELS:+${NON_MASTER_NODE_LABELS},}projectcalico.org/ds-ready=true" fi -# Currently, ENABLE_METADATA_PROXY supports only "simple". In the future, we -# may add other options. -ENABLE_METADATA_PROXY="${ENABLE_METADATA_PROXY:-}" -# Apply the right node label if metadata proxy is on. -if [[ ${ENABLE_METADATA_PROXY:-} == "simple" ]]; then - NODE_LABELS="${NODE_LABELS},beta.kubernetes.io/metadata-proxy-ready=true" +# Enable metadata concealment by firewalling pod traffic to the metadata server +# and run a proxy daemonset on nodes. +# +# TODO(#8867) Enable by default. +ENABLE_METADATA_CONCEALMENT="${ENABLE_METADATA_CONCEALMENT:-false}" # true, false +if [[ ${ENABLE_METADATA_CONCEALMENT:-} == "true" ]]; then + # Put the necessary label on the node so the daemonset gets scheduled. + NODE_LABELS="${NODE_LABELS},beta.kubernetes.io/metadata-proxy-ready=true" + # Add to the provider custom variables. + PROVIDER_VARS="${PROVIDER_VARS:-} ENABLE_METADATA_CONCEALMENT" fi # Optional: Enable node logging. @@ -181,7 +197,10 @@ RUNTIME_CONFIG="${KUBE_RUNTIME_CONFIG:-}" FEATURE_GATES="${KUBE_FEATURE_GATES:-ExperimentalCriticalPodAnnotation=true}" if [[ ! -z "${NODE_ACCELERATORS}" ]]; then - FEATURE_GATES="${FEATURE_GATES},Accelerators=true" + FEATURE_GATES="${FEATURE_GATES},DevicePlugins=true" + if [[ "${NODE_ACCELERATORS}" =~ .*type=([a-zA-Z0-9-]+).* ]]; then + NODE_LABELS="${NODE_LABELS},cloud.google.com/gke-accelerator=${BASH_REMATCH[1]}" + fi fi # Optional: Install cluster DNS. @@ -244,15 +263,30 @@ if [ ${ENABLE_IP_ALIASES} = true ]; then PROVIDER_VARS="${PROVIDER_VARS:-} ENABLE_IP_ALIASES" fi - # Enable GCE Alpha features. if [[ -n "${GCE_ALPHA_FEATURES:-}" ]]; then PROVIDER_VARS="${PROVIDER_VARS:-} GCE_ALPHA_FEATURES" fi +# Disable Docker live-restore. +if [[ -n "${DISABLE_DOCKER_LIVE_RESTORE:-}" ]]; then + PROVIDER_VARS="${PROVIDER_VARS:-} DISABLE_DOCKER_LIVE_RESTORE" +fi + +# Override default GLBC image +if [[ -n "${GCE_GLBC_IMAGE:-}" ]]; then + PROVIDER_VARS="${PROVIDER_VARS:-} GCE_GLBC_IMAGE" +fi + # Admission Controllers to invoke prior to persisting objects in cluster -# If we included ResourceQuota, we should keep it at the end of the list to prevent incrementing quota usage prematurely. -ADMISSION_CONTROL=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,Priority,ResourceQuota +ADMISSION_CONTROL=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,Priority + +if [[ "${ENABLE_POD_SECURITY_POLICY:-}" == "true" ]]; then + ADMISSION_CONTROL="${ADMISSION_CONTROL},PodSecurityPolicy" +fi + +# ResourceQuota must come last, or a creation is recorded, but the pod was forbidden. +ADMISSION_CONTROL="${ADMISSION_CONTROL},ResourceQuota" # Optional: if set to true kube-up will automatically check for existing resources and clean them up. KUBE_UP_AUTOMATIC_CLEANUP=${KUBE_UP_AUTOMATIC_CLEANUP:-false} @@ -269,6 +303,8 @@ OPENCONTRAIL_PUBLIC_SUBNET="${OPENCONTRAIL_PUBLIC_SUBNET:-10.1.0.0/16}" # Network Policy plugin specific settings. NETWORK_POLICY_PROVIDER="${NETWORK_POLICY_PROVIDER:-none}" # calico +NON_MASQUERADE_CIDR="0.0.0.0/0" + # How should the kubelet configure hairpin mode? HAIRPIN_MODE="${HAIRPIN_MODE:-promiscuous-bridge}" # promiscuous-bridge, hairpin-veth, none # Optional: if set to true, kube-up will configure the cluster to run e2e tests. diff --git a/vendor/k8s.io/kubernetes/cluster/gce/config-test.sh b/vendor/k8s.io/kubernetes/cluster/gce/config-test.sh index f736b7147..46995d709 100755 --- a/vendor/k8s.io/kubernetes/cluster/gce/config-test.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/config-test.sh @@ -78,10 +78,17 @@ MASTER_IMAGE=${KUBE_GCE_MASTER_IMAGE:-} MASTER_IMAGE_PROJECT=${KUBE_GCE_MASTER_PROJECT:-cos-cloud} NODE_IMAGE=${KUBE_GCE_NODE_IMAGE:-${GCI_VERSION}} NODE_IMAGE_PROJECT=${KUBE_GCE_NODE_PROJECT:-cos-cloud} +NODE_SERVICE_ACCOUNT=${KUBE_GCE_NODE_SERVICE_ACCOUNT:-default} CONTAINER_RUNTIME=${KUBE_CONTAINER_RUNTIME:-docker} +CONTAINER_RUNTIME_ENDPOINT=${KUBE_CONTAINER_RUNTIME_ENDPOINT:-} +LOAD_IMAGE_COMMAND=${KUBE_LOAD_IMAGE_COMMAND:-docker load -i} GCI_DOCKER_VERSION=${KUBE_GCI_DOCKER_VERSION:-} RKT_VERSION=${KUBE_RKT_VERSION:-1.23.0} RKT_STAGE1_IMAGE=${KUBE_RKT_STAGE1_IMAGE:-coreos.com/rkt/stage1-coreos} +# MASTER_EXTRA_METADATA is the extra instance metadata on master instance separated by commas. +MASTER_EXTRA_METADATA=${KUBE_MASTER_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}} +# MASTER_EXTRA_METADATA is the extra instance metadata on node instance separated by commas. +NODE_EXTRA_METADATA=${KUBE_NODE_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}} NETWORK=${KUBE_GCE_NETWORK:-e2e-test-${USER}} if [[ "${CREATE_CUSTOM_NETWORK}" == true ]]; then @@ -107,10 +114,6 @@ RUNTIME_CONFIG="${KUBE_RUNTIME_CONFIG:-}" # Optional: set feature gates FEATURE_GATES="${KUBE_FEATURE_GATES:-ExperimentalCriticalPodAnnotation=true}" -if [[ ! -z "${NODE_ACCELERATORS}" ]]; then - FEATURE_GATES="${FEATURE_GATES},Accelerators=true" -fi - TERMINATED_POD_GC_THRESHOLD=${TERMINATED_POD_GC_THRESHOLD:-100} # Extra docker options for nodes. @@ -198,15 +201,23 @@ KUBEPROXY_TEST_ARGS="${KUBEPROXY_TEST_ARGS:-} ${TEST_CLUSTER_API_CONTENT_TYPE}" # TODO(piosz): remove this in 1.8 NODE_LABELS="${KUBE_NODE_LABELS:-beta.kubernetes.io/fluentd-ds-ready=true}" +# NON_MASTER_NODE_LABELS are labels will only be applied on non-master nodes. +NON_MASTER_NODE_LABELS="${KUBE_NON_MASTER_NODE_LABELS:-}" + # To avoid running Calico on a node that is not configured appropriately, # label each Node so that the DaemonSet can run the Pods only on ready Nodes. if [[ ${NETWORK_POLICY_PROVIDER:-} == "calico" ]]; then - NODE_LABELS="$NODE_LABELS,projectcalico.org/ds-ready=true" + NON_MASTER_NODE_LABELS="${NON_MASTER_NODE_LABELS:+${NON_MASTER_NODE_LABELS},}projectcalico.org/ds-ready=true" fi -# Apply the right node label if metadata proxy is on. -if [[ ${ENABLE_METADATA_PROXY:-} == "simple" ]]; then - NODE_LABELS="${NODE_LABELS},beta.kubernetes.io/metadata-proxy-ready=true" +# Enable metadata concealment by firewalling pod traffic to the metadata server +# and run a proxy daemonset on nodes. +ENABLE_METADATA_CONCEALMENT="${ENABLE_METADATA_CONCEALMENT:-true}" # true, false +if [[ ${ENABLE_METADATA_CONCEALMENT:-} == "true" ]]; then + # Put the necessary label on the node so the daemonset gets scheduled. + NODE_LABELS="${NODE_LABELS},beta.kubernetes.io/metadata-proxy-ready=true" + # Add to the provider custom variables. + PROVIDER_VARS="${PROVIDER_VARS:-} ENABLE_METADATA_CONCEALMENT" fi # Optional: Enable node logging. @@ -222,6 +233,13 @@ if [[ ${KUBE_ENABLE_INSECURE_REGISTRY:-false} == "true" ]]; then EXTRA_DOCKER_OPTS="${EXTRA_DOCKER_OPTS} --insecure-registry 10.0.0.0/8" fi +if [[ ! -z "${NODE_ACCELERATORS}" ]]; then + FEATURE_GATES="${FEATURE_GATES},DevicePlugins=true" + if [[ "${NODE_ACCELERATORS}" =~ .*type=([a-zA-Z0-9-]+).* ]]; then + NODE_LABELS="${NODE_LABELS},cloud.google.com/gke-accelerator=${BASH_REMATCH[1]}" + fi +fi + # Optional: Install cluster DNS. ENABLE_CLUSTER_DNS="${KUBE_ENABLE_CLUSTER_DNS:-true}" DNS_SERVER_IP="10.0.0.10" @@ -287,8 +305,26 @@ if [[ -n "${GCE_ALPHA_FEATURES:-}" ]]; then PROVIDER_VARS="${PROVIDER_VARS:-} GCE_ALPHA_FEATURES" fi -# If we included ResourceQuota, we should keep it at the end of the list to prevent incrementing quota usage prematurely. -ADMISSION_CONTROL="${KUBE_ADMISSION_CONTROL:-Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,PodPreset,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,Priority,ResourceQuota}" +# Disable Docker live-restore. +if [[ -n "${DISABLE_DOCKER_LIVE_RESTORE:-}" ]]; then + PROVIDER_VARS="${PROVIDER_VARS:-} DISABLE_DOCKER_LIVE_RESTORE" +fi + +# Override default GLBC image +if [[ -n "${GCE_GLBC_IMAGE:-}" ]]; then + PROVIDER_VARS="${PROVIDER_VARS:-} GCE_GLBC_IMAGE" +fi + +if [[ -z "${KUBE_ADMISSION_CONTROL:-}" ]]; then + ADMISSION_CONTROL="Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,PodPreset,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,Priority" + if [[ "${ENABLE_POD_SECURITY_POLICY:-}" == "true" ]]; then + ADMISSION_CONTROL="${ADMISSION_CONTROL},PodSecurityPolicy" + fi + # ResourceQuota must come last, or a creation is recorded, but the pod may be forbidden. + ADMISSION_CONTROL="${ADMISSION_CONTROL},GenericAdmissionWebhook,ResourceQuota" +else + ADMISSION_CONTROL=${KUBE_ADMISSION_CONTROL} +fi # Optional: if set to true kube-up will automatically check for existing resources and clean them up. KUBE_UP_AUTOMATIC_CLEANUP=${KUBE_UP_AUTOMATIC_CLEANUP:-false} diff --git a/vendor/k8s.io/kubernetes/cluster/gce/configure-vm.sh b/vendor/k8s.io/kubernetes/cluster/gce/configure-vm.sh index 6d96a5d95..92f615775 100755 --- a/vendor/k8s.io/kubernetes/cluster/gce/configure-vm.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/configure-vm.sh @@ -66,10 +66,6 @@ function create-node-pki { KUBELET_KEY_PATH="${pki_dir}/kubelet.key" echo "${KUBELET_KEY}" | base64 --decode > "${KUBELET_KEY_PATH}" fi - - # TODO(mikedanese): remove this when we don't support downgrading to versions - # < 1.6. - ln -sf "${CA_CERT_BUNDLE_PATH}" /etc/kubernetes/ca.crt } # A hookpoint for setting up local devices @@ -93,7 +89,7 @@ function config-ip-firewall { iptables -N KUBE-METADATA-SERVER iptables -I FORWARD -p tcp -d 169.254.169.254 --dport 80 -j KUBE-METADATA-SERVER - if [[ -n "${KUBE_FIREWALL_METADATA_SERVER:-}" ]]; then + if [[ "${ENABLE_METADATA_CONCEALMENT:-}" == "true" ]]; then iptables -A KUBE-METADATA-SERVER -j DROP fi } @@ -419,8 +415,9 @@ enable_cluster_ui: '$(echo "$ENABLE_CLUSTER_UI" | sed -e "s/'/''/g")' enable_node_problem_detector: '$(echo "$ENABLE_NODE_PROBLEM_DETECTOR" | sed -e "s/'/''/g")' enable_l7_loadbalancing: '$(echo "$ENABLE_L7_LOADBALANCING" | sed -e "s/'/''/g")' enable_node_logging: '$(echo "$ENABLE_NODE_LOGGING" | sed -e "s/'/''/g")' -enable_metadata_proxy: '$(echo "$ENABLE_METADATA_PROXY" | sed -e "s/'/''/g")' +enable_metadata_proxy: '$(echo "$ENABLE_METADATA_CONCEALMENT" | sed -e "s/'/''/g")' enable_metrics_server: '$(echo "$ENABLE_METRICS_SERVER" | sed -e "s/'/''/g")' +enable_pod_security_policy: '$(echo "$ENABLE_POD_SECURITY_POLICY" | sed -e "s/'/''/g")' enable_rescheduler: '$(echo "$ENABLE_RESCHEDULER" | sed -e "s/'/''/g")' logging_destination: '$(echo "$LOGGING_DESTINATION" | sed -e "s/'/''/g")' elasticsearch_replicas: '$(echo "$ELASTICSEARCH_LOGGING_REPLICAS" | sed -e "s/'/''/g")' @@ -447,7 +444,7 @@ kube_uid: '$(echo "${KUBE_UID}" | sed -e "s/'/''/g")' initial_etcd_cluster: '$(echo "${INITIAL_ETCD_CLUSTER:-}" | sed -e "s/'/''/g")' initial_etcd_cluster_state: '$(echo "${INITIAL_ETCD_CLUSTER_STATE:-}" | sed -e "s/'/''/g")' ca_cert_bundle_path: '$(echo "${CA_CERT_BUNDLE_PATH:-}" | sed -e "s/'/''/g")' -hostname: $(hostname -s) +hostname: '$(echo "${ETCD_HOSTNAME:-$(hostname -s)}" | sed -e "s/'/''/g")' enable_pod_priority: '$(echo "${ENABLE_POD_PRIORITY:-}" | sed -e "s/'/''/g")' enable_default_storage_class: '$(echo "$ENABLE_DEFAULT_STORAGE_CLASS" | sed -e "s/'/''/g")' kube_proxy_daemonset: '$(echo "$KUBE_PROXY_DAEMONSET" | sed -e "s/'/''/g")' @@ -583,6 +580,11 @@ EOF if [ -n "${NODE_LABELS:-}" ]; then cat <>/srv/salt-overlay/pillar/cluster-params.sls node_labels: '$(echo "${NODE_LABELS}" | sed -e "s/'/''/g")' +EOF + fi + if [ -n "${NON_MASTER_NODE_LABELS:-}" ]; then + cat <>/srv/salt-overlay/pillar/cluster-params.sls +non_master_node_labels: '$(echo "${NON_MASTER_NODE_LABELS}" | sed -e "s/'/''/g")' EOF fi if [ -n "${NODE_TAINTS:-}" ]; then diff --git a/vendor/k8s.io/kubernetes/cluster/gce/container-linux/configure-helper.sh b/vendor/k8s.io/kubernetes/cluster/gce/container-linux/configure-helper.sh index 1d4b54033..ac54e662f 100755 --- a/vendor/k8s.io/kubernetes/cluster/gce/container-linux/configure-helper.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/container-linux/configure-helper.sh @@ -239,7 +239,7 @@ EOF if [[ -n "${SECONDARY_RANGE_NAME:-}" ]]; then use_cloud_config="true" cat <> /etc/gce.conf -secondary-range-name = ${SECONDARY-RANGE-NAME} +secondary-range-name = ${SECONDARY_RANGE_NAME} EOF fi if [[ "${use_cloud_config}" != "true" ]]; then @@ -598,6 +598,9 @@ function start-kubelet { if [[ -n "${NODE_LABELS:-}" ]]; then node_labels="${node_labels:+${node_labels},}${NODE_LABELS}" fi + if [[ -n "${NON_MASTER_NODE_LABELS:-}" && "${KUBERNETES_MASTER:-}" != "true" ]]; then + node_labels="${node_labels:+${node_labels},}${NON_MASTER_NODE_LABELS}" + fi if [[ -n "${node_labels:-}" ]]; then flags+=" --node-labels=${node_labels}" fi @@ -730,7 +733,7 @@ function start-kube-proxy { # $4: value for variable 'cpulimit' # $5: pod name, which should be either etcd or etcd-events function prepare-etcd-manifest { - local host_name=$(hostname -s) + local host_name=${ETCD_HOSTNAME:-$(hostname -s)} local etcd_cluster="" local cluster_state="new" local etcd_protocol="http" @@ -964,9 +967,13 @@ function start-kube-apiserver { fi if [[ -n "${PROJECT_ID:-}" && -n "${TOKEN_URL:-}" && -n "${TOKEN_BODY:-}" && -n "${NODE_NETWORK:-}" ]]; then local -r vm_external_ip=$(curl --retry 5 --retry-delay 3 --fail --silent -H 'Metadata-Flavor: Google' "http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip") - params+=" --advertise-address=${vm_external_ip}" - params+=" --ssh-user=${PROXY_SSH_USER}" - params+=" --ssh-keyfile=/etc/srv/sshproxy/.sshkeyfile" + if [[ -n "${PROXY_SSH_USER:-}" ]]; then + params+=" --advertise-address=${vm_external_ip}" + params+=" --ssh-user=${PROXY_SSH_USER}" + params+=" --ssh-keyfile=/etc/srv/sshproxy/.sshkeyfile" + else + params+=" --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname", + fi elif [ -n "${MASTER_ADVERTISE_ADDRESS:-}" ]; then params="${params} --advertise-address=${MASTER_ADVERTISE_ADDRESS}" fi @@ -1234,6 +1241,13 @@ function start-kube-addons { # Set up manifests of other addons. if [[ "${KUBE_PROXY_DAEMONSET:-}" == "true" ]]; then + if [ -n "${CUSTOM_KUBE_PROXY_YAML:-}" ]; then + # Replace with custom GKE kube proxy. + cat > "$src_dir/kube-proxy/kube-proxy-ds.yaml" < "${kubedns_file}" < /dev/null; then @@ -52,9 +57,23 @@ function config-ip-firewall { iptables -N KUBE-METADATA-SERVER iptables -I FORWARD -p tcp -d 169.254.169.254 --dport 80 -j KUBE-METADATA-SERVER - if [[ -n "${KUBE_FIREWALL_METADATA_SERVER:-}" ]]; then + if [[ "${ENABLE_METADATA_CONCEALMENT:-}" == "true" ]]; then iptables -A KUBE-METADATA-SERVER -j DROP fi + + # Flush iptables nat table + iptables -t nat -F || true + + echo "Add rules for ip masquerade" + if [[ "${NON_MASQUERADE_CIDR:-}" == "0.0.0.0/0" ]]; then + iptables -t nat -N IP-MASQ + iptables -t nat -A POSTROUTING -m comment --comment "ip-masq: ensure nat POSTROUTING directs all non-LOCAL destination traffic to our custom IP-MASQ chain" -m addrtype ! --dst-type LOCAL -j IP-MASQ + iptables -t nat -A IP-MASQ -d 169.254.0.0/16 -m comment --comment "ip-masq: local traffic is not subject to MASQUERADE" -j RETURN + iptables -t nat -A IP-MASQ -d 10.0.0.0/8 -m comment --comment "ip-masq: local traffic is not subject to MASQUERADE" -j RETURN + iptables -t nat -A IP-MASQ -d 172.16.0.0/12 -m comment --comment "ip-masq: local traffic is not subject to MASQUERADE" -j RETURN + iptables -t nat -A IP-MASQ -d 192.168.0.0/16 -m comment --comment "ip-masq: local traffic is not subject to MASQUERADE" -j RETURN + iptables -t nat -A IP-MASQ -m comment --comment "ip-masq: outbound traffic is subject to MASQUERADE (must be last in chain)" -j MASQUERADE + fi } function create-dirs { @@ -225,10 +244,6 @@ function create-node-pki { KUBELET_KEY_PATH="${pki_dir}/kubelet.key" write-pki-data "${KUBELET_KEY}" "${KUBELET_KEY_PATH}" fi - - # TODO(mikedanese): remove this when we don't support downgrading to versions - # < 1.6. - ln -sf "${CA_CERT_BUNDLE_PATH}" /etc/srv/kubernetes/ca.crt } function create-master-pki { @@ -279,11 +294,6 @@ function create-master-pki { SERVICEACCOUNT_KEY_PATH="${pki_dir}/serviceaccount.key" write-pki-data "${SERVICEACCOUNT_KEY}" "${SERVICEACCOUNT_KEY_PATH}" - # TODO(mikedanese): remove this when we don't support downgrading to versions - # < 1.6. - ln -sf "${APISERVER_SERVER_KEY_PATH}" /etc/srv/kubernetes/server.key - ln -sf "${APISERVER_SERVER_CERT_PATH}" /etc/srv/kubernetes/server.cert - if [[ ! -z "${REQUESTHEADER_CA_CERT:-}" ]]; then AGGREGATOR_CA_KEY_PATH="${pki_dir}/aggr_ca.key" write-pki-data "${AGGREGATOR_CA_KEY}" "${AGGREGATOR_CA_KEY_PATH}" @@ -405,7 +415,7 @@ EOF if [[ -n "${SECONDARY_RANGE_NAME:-}" ]]; then use_cloud_config="true" cat <> /etc/gce.conf -secondary-range-name = ${SECONDARY-RANGE-NAME} +secondary-range-name = ${SECONDARY_RANGE_NAME} EOF fi if [[ "${use_cloud_config}" != "true" ]]; then @@ -836,6 +846,12 @@ function assemble-docker-flags { docker_opts+=" --log-opt=max-size=${DOCKER_LOG_MAX_SIZE:-10m}" docker_opts+=" --log-opt=max-file=${DOCKER_LOG_MAX_FILE:-5}" + # Disable live-restore if the environment variable is set. + + if [[ "${DISABLE_DOCKER_LIVE_RESTORE:-false}" == "true" ]]; then + docker_opts+=" --live-restore=false" + fi + echo "DOCKER_OPTS=\"${docker_opts} ${EXTRA_DOCKER_OPTS:-}\"" > /etc/default/docker if [[ "${use_net_plugin}" == "true" ]]; then @@ -933,7 +949,9 @@ function start-kubelet { flags+=" --cni-bin-dir=/home/kubernetes/bin" if [[ "${NETWORK_POLICY_PROVIDER:-}" == "calico" ]]; then # Calico uses CNI always. - if [[ "${KUBERNETES_PRIVATE_MASTER:-}" == "true" ]]; then + # Keep KUBERNETES_PRIVATE_MASTER for backward compatibility. + # Note that network policy won't work for master node. + if [[ "${KUBERNETES_PRIVATE_MASTER:-}" == "true" || "${KUBERNETES_MASTER:-}" == "true" ]]; then flags+=" --network-plugin=${NETWORK_PROVIDER}" else flags+=" --network-plugin=cni" @@ -966,6 +984,9 @@ function start-kubelet { if [[ -n "${NODE_LABELS:-}" ]]; then node_labels="${node_labels:+${node_labels},}${NODE_LABELS}" fi + if [[ -n "${NON_MASTER_NODE_LABELS:-}" && "${KUBERNETES_MASTER:-}" != "true" ]]; then + node_labels="${node_labels:+${node_labels},}${NON_MASTER_NODE_LABELS}" + fi if [[ -n "${node_labels:-}" ]]; then flags+=" --node-labels=${node_labels}" fi @@ -981,6 +1002,13 @@ function start-kubelet { if [[ -n "${ROTATE_CERTIFICATES:-}" ]]; then flags+=" --rotate-certificates=true" fi + if [[ -n "${CONTAINER_RUNTIME:-}" ]]; then + flags+=" --container-runtime=${CONTAINER_RUNTIME}" + fi + if [[ -n "${CONTAINER_RUNTIME_ENDPOINT:-}" ]]; then + flags+=" --container-runtime-endpoint=${CONTAINER_RUNTIME_ENDPOINT}" + fi + local -r kubelet_env_file="/etc/default/kubelet" echo "KUBELET_OPTS=\"${flags}\"" > "${kubelet_env_file}" @@ -1002,9 +1030,6 @@ ExecStart=${kubelet_bin} \$KUBELET_OPTS WantedBy=multi-user.target EOF - # Flush iptables nat table - iptables -t nat -F || true - systemctl start kubelet.service } @@ -1014,6 +1039,7 @@ function start-node-problem-detector { echo "Start node problem detector" local -r npd_bin="${KUBE_HOME}/bin/node-problem-detector" local -r km_config="${KUBE_HOME}/node-problem-detector/config/kernel-monitor.json" + # TODO(random-liu): Handle this for alternative container runtime. local -r dm_config="${KUBE_HOME}/node-problem-detector/config/docker-monitor.json" echo "Using node problem detector binary at ${npd_bin}" local flags="${NPD_TEST_LOG_LEVEL:-"--v=2"} ${NPD_TEST_ARGS:-}" @@ -1119,7 +1145,7 @@ function start-kube-proxy { # $4: value for variable 'cpulimit' # $5: pod name, which should be either etcd or etcd-events function prepare-etcd-manifest { - local host_name=$(hostname) + local host_name=${ETCD_HOSTNAME:-$(hostname -s)} local etcd_cluster="" local cluster_state="new" local etcd_protocol="http" @@ -1423,9 +1449,13 @@ function start-kube-apiserver { fi if [[ -n "${PROJECT_ID:-}" && -n "${TOKEN_URL:-}" && -n "${TOKEN_BODY:-}" && -n "${NODE_NETWORK:-}" ]]; then local -r vm_external_ip=$(curl --retry 5 --retry-delay 3 --fail --silent -H 'Metadata-Flavor: Google' "http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip") - params+=" --advertise-address=${vm_external_ip}" - params+=" --ssh-user=${PROXY_SSH_USER}" - params+=" --ssh-keyfile=/etc/srv/sshproxy/.sshkeyfile" + if [[ -n "${PROXY_SSH_USER:-}" ]]; then + params+=" --advertise-address=${vm_external_ip}" + params+=" --ssh-user=${PROXY_SSH_USER}" + params+=" --ssh-keyfile=/etc/srv/sshproxy/.sshkeyfile" + else + params+=" --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname", + fi elif [ -n "${MASTER_ADVERTISE_ADDRESS:-}" ]; then params="${params} --advertise-address=${MASTER_ADVERTISE_ADDRESS}" fi @@ -1487,10 +1517,6 @@ function start-kube-apiserver { if [[ -n "${ENCRYPTION_PROVIDER_CONFIG:-}" ]]; then local encryption_provider_config_path="/etc/srv/kubernetes/encryption-provider-config.yml" - if [[ -n "${GOOGLE_CLOUD_KMS_CONFIG_FILE_NAME:-}" && -n "${GOOGLE_CLOUD_KMS_CONFIG:-}" ]]; then - echo "${GOOGLE_CLOUD_KMS_CONFIG}" | base64 --decode > "${GOOGLE_CLOUD_KMS_CONFIG_FILE_NAME}" - fi - echo "${ENCRYPTION_PROVIDER_CONFIG}" | base64 --decode > "${encryption_provider_config_path}" params+=" --experimental-encryption-provider-config=${encryption_provider_config_path}" fi @@ -1670,14 +1696,35 @@ function start-cluster-autoscaler { fi } -# A helper function for copying addon manifests and set dir/files -# permissions. +# A helper function for setting up addon manifests. # # $1: addon category under /etc/kubernetes # $2: manifest source dir +# $3: (optional) auxilary manifest source dir function setup-addon-manifests { - local -r src_dir="${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty/$2" + local -r src_dir="${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty" local -r dst_dir="/etc/kubernetes/$1/$2" + + copy-manifests "${src_dir}/$2" "${dst_dir}" + + # If the PodSecurityPolicy admission controller is enabled, + # set up the corresponding addon policies. + if [[ "${ENABLE_POD_SECURITY_POLICY:-}" == "true" ]]; then + local -r psp_dir="${src_dir}/${3:-$2}/podsecuritypolicies" + if [[ -d "${psp_dir}" ]]; then + copy-manifests "${psp_dir}" "${dst_dir}" + fi + fi +} + +# A helper function for copying manifests and setting dir/files +# permissions. +# +# $1: absolute source dir +# $2: absolute destination dir +function copy-manifests { + local -r src_dir="$1" + local -r dst_dir="$2" if [[ ! -d "${dst_dir}" ]]; then mkdir -p "${dst_dir}" fi @@ -1739,10 +1786,27 @@ function start-kube-addons { local -r dst_dir="/etc/kubernetes/addons" # prep addition kube-up specific rbac objects - setup-addon-manifests "addons" "rbac" + setup-addon-manifests "addons" "rbac/kubelet-api-auth" + setup-addon-manifests "addons" "rbac/kubelet-cert-rotation" + if [[ "${REGISTER_MASTER_KUBELET:-false}" == "true" ]]; then + setup-addon-manifests "addons" "rbac/legacy-kubelet-user" + else + setup-addon-manifests "addons" "rbac/legacy-kubelet-user-disable" + fi + + if [[ "${ENABLE_POD_SECURITY_POLICY:-}" == "true" ]]; then + setup-addon-manifests "addons" "podsecuritypolicies" + fi # Set up manifests of other addons. if [[ "${KUBE_PROXY_DAEMONSET:-}" == "true" ]]; then + if [ -n "${CUSTOM_KUBE_PROXY_YAML:-}" ]; then + # Replace with custom GKE kube proxy. + cat > "$src_dir/kube-proxy/kube-proxy-ds.yaml" < "${kubedns_file}" < /etc/motd <L2U!AG^zuJLgZpzERiBTYJf~ zb9KgJJLzMmD);ORs&@9Z>=^alxw_kNjvmiZs=nuvlX2{!hh_su0+7q};efR6VQW z#NVE{Wsg0*hFct zb68)w`hLsalmGn5Te%y6zwY)P>rz$2%9HEzvFg$J>vwMK>q1;pMhIM{N&;&9jX-y)OHb+TA4zLJvZ_kzjjTFau2auTZISxq@vKd2|Kz=sq}`ME z9wXPDlTurxK6yNUPHX?Pb%nHh+9G8iI(cd zU6*hEhX38~w%F~r*zI-IEb-S}moJ~f|L%AFZdT*>yIGAt`jb?Nch_b6Q}91!z@d_3 zM;!Z7!b+}xsl9nTGg0QWbyf3ts*jgP?>TBjQga&qcl3wCuE%p5-Z{K44eUSOpPV3f zFPxkTaq5%1#eeVri-G@Q;J+C7F9!aLf&XIQzZm##7@$8>i2r#V{bTqjL#CW_c2ViM zQ?DI-Zc$0`lp)t#dtJ$S=bm@Xd1n_FPrK&2^9C0Wo^oF4wNrJY_sQ)Y9UZz^Ua(#t zTISOhy$nZ2U$AR6y3(Uh6+F$WX0J)Lt8YM^^Gfhx-lVNum2`Ti>wz|bI#b+ zTbfoA#2SW>yqSTk+{~35Gw0~-hoKrk0THVe_Bkb%T6h1RecKrGvv3CCmk~EtP6|oHBE6xxHYYZUBez8g z>QKgiyl+&ufY>4Pt|rwIq>|oLeR3J=0`k^Dg44$jq~i4Y3^z_m8QpZ+c8%5(?{uMc zNT7!&_V|I0j^Zt`JOFAvcX6giJKQ=$E}Tjg0ji8G{TB-79G&Bdo%n4>#~W|Bxd5<|8iwi8dCyRT|>zehq9qnTM?SclUi%3Dc z{j9o)6fnvoYFFSr|MC85bxV;6z2k7Q-4vAblGhY7zw%qOz-;|C`WH(-I)s~jp#94O zh-W~KCf)KY6ME>k&k}%y9;zJ8?r+Bb5rs)$ly&uJnb*ks(Vz1?ku6%o zR|s8oW2uezKDx22pdG{M=B!Mzag|ui)LC>MIKA|Mc2^||LuO9z zw-57#IDfWSI8sR8GcIuuViI2)PJmYz&E1LL_`43P%XQ?Z&u#@KaJCAIl0D z7xSUWI^k2ol(W;K4BI$n!jO|w&``{PN6~ap(Gw|#6CrS~RVmgHg=x*1pLnvhG1_22 zM~Eg;PA3-Vx&g>Ibbt~KJU>@Z$Ke__Xps^Otef+w?uJ3TNU_vLW9zcNWdSH#zR__~ zw-sILmcupZ&5Ay)*jMz=d$fJ9D%FDiA@iR}p=NkwlA20JBC4iCU9e4!w9I+w({v=6 zc3sg$WJKl*gb{gT{qphzQnCxIiSyJG%pdI>FbQ-*b?MP%wx$V_Tc1132Vtgl`fUA_Z*Ce-uaEbzkYauX66qoL_BCimB=< zMNE%|bQAx8SqQ88CxO{F*`<+Vk%w@n`q|+^xxy6jj%;+FsRKI0i>ZaVoxBVw6 zxA?b`EiP#071Z)ORKb0r>%Pc!U*g=GIq}U&%BikWC^z{D^a^|>DaZbaFZSI% z<^H@1mHwXYiMVisL61vMdc9A;slBg&IE)<5TbFJ{4vl^OtXsSeVZWF)+-?Ffpju@}+H z(#_$|zsU*F&^U;6m{oBt?2q4i`WGbjyn+&?Wx*U4L3ZrAW7O%T#)hJMop#A7r6soB z7nj0mXL|~Ejo2r90nsw7BgIbHL)T9JCH=dh*Z5`+)tYk7+?eMXmN7e{wKm5(qCC^H zF6TJB$*>mY^zc|ezYu>`EX1GspW@H)D|?`P|AstIW~)_(uH!51ew|Bd|JUjDyI^&u zgL6#$DQ@OWON7<+`u5EE=jzclddtpinyMl_W19#(QD!|(bB)TjDKjt1NVJ-_kys7r z2D`0aTi9x?IvkKRbe^BK=s{Aweiw$EjsXBe5nupw7RvBH)T1qG_=)Uqawe?j;7pQ4 z4;ke>@s!;&RN7iwEOabzfnjlmRf@s4noAeMtPR>Gkj8FY6%qD}b8ln*Xvo#@GNxEuI`-S
@IyGpuy;a1JII^TYV1&F{6Y=l7MG-!x8eCjP1!?uG^aPt8zR zssj;XS0aZQ-u-=Ncv2Q-czn8fPo?K6_%!H$e;q&m;oJk#TN_s)4T1KBVYa zBB4^DZjR5^qkZ97!kk)vO_bpgek41oU+ZtR9?t{^-Jixk-)+1bnDujy2X1x7t4Nfk zjW@Wf@w7$L>Co2is^lDX&Jk)_a*tj~%9M(~8-z$q!sL(A8@6bX2fzYaQ}CEQE&lK* z-K4C*?R9bSWaMy)-&LNqaahM@1?vkgb`y@SAvSbiqY|qE|C?Uca|m}YfWulmIa^o+ zAk#T@@+W5A-?JHlz$uroDW7}{6hV0-pMx+yPH;+_t; zubiEqgP|+n0ZqNusxcB~;AM3hjMh`w?HHQ_Ds^Qav_&-sr^gVX$Nwv|@LbsqEhc3h zgcf(d*)1(TDDR#Yv%r^K(c-jVx3utgWP4(_Cuu>FAPUIOP_BVch+TTMCa@FMIJBmI zCGToWTN*)ayN)VfWtXq&H?1_af|PU73(bvwX@wX;%4JoIYbZuPJ*|qAL*)oJ8>n%t zUb?;ZDBY+;pOd_J(3Y-gL{6}^cuRb*-5<@3w7^X-=wwvUe%3rt)stx@{z(5+-%=kp zy{N>yZy@#AKmOOVok7NDk99bSfRhe`||c zmC~fWN6y{Hz$f3j=S2GK&yNusu)tJ20h?jYl7i$-*(kEnS|TeOCwSfK$6 zefz0V4IO3zGi}%szDjEf9J9h7K8=bKY7iz9H#0;*>PBYACRtnsFmv5@z^MvC9-=Bb zv>v%kDHyT5Q0#WH+|0Z8Ft>u~FUnptH0Ey&+Ssjvxg*fMf;sX&rC=~aG6*Lm=6@q{ zGTPzL8*?R@pe!06fey#OSB;IF+ zk9d-6W8t27@_K5+u>PN~&V!!-QX^OD^|LXPro6Gf8kh-!A%1h>yRiqu%y~*ZeXgFKP){A|sqh6C zkaZ4_ys;_-NT+k_%yytC=0*{a0mo%Jv=S63U(7PnBH93 zMsl%T{aV`~qCd1_<`4b(*{;axPh2W!K}H&A?z5KsOfA&qBg1rRN>x;_hX`Q^2$L?d z<;OUMOw{Qzta?nSO1U}seC$pyAK9zBDZRHYbxLXS`Y&R)epd~rSj{O`gWz*}VT%BD zV8q6KA+99a)e9gy@CcFFWJ*)qN?=4ZTYxB@OB8caz77p=TZvnCg4>C>ZB(~axLvGn zC+nuf9q@Ed{HGF3^y@6T5}f+AHSnip5Jg5A!;3EJR2M$n+GF&^tvyCQZtXGpTRqRo zaqyGgwH3#(u}=~#1Z04&Oqv22MG%fki~_@!bJriR6b_u+O9cja0)nAwcuJzw2o@Rl zy$q47Uy~V?n`9YKPzYO66v;FO9P>OF+2H7+cy_=7$VGP*&9Lt~a+U0Km z0zG;kACvuIEF#;l8~3%dykiZj@Xol;gNhw%qH<*&9}EfOO>A%Zt6?iSYwPKm9_%Zb z!nvT6I`*!EIq}c7JJzOVY6Mv|QmEIJ1eN#@2SaUu{{5Z0Q(w#EyZ(4rxx{*+lr4$H zdSs%PSP!N=tL!!f?jGb9WQ5pBh+NfshM=>Z_ae7K9&F!Q{AVtVAt<5pLN?7~{b-ap z!`NWtUd`r-5bF{tQvRsXC@9$wm8(^?J=5d3#GrRI>0L#7R{_1*YPT8Z0rOv^8_|c* zonE?LYgo=3yo*4cJu@Q<4_M#NXY1W;z1#Zd$>g(}SxHHPZY-%|BdP}nQ|GT$ScS~N z}YT#=i{WZH};jr-=3^NgR);069< zm2NyEVWW9_hF{Cev;E$t3 z7pPGLzYEk*Zo$ZTypeDc^DhpfU}z1yY|6+SjVL*Y`#P}xOa(p~JP;}vohn|r$BTH8 zgTvBG?M8b(6XJE?@oYd(0_;X9Fv(gH3-~Sbt1tBp;?v!jObr}L(s%2IW_8$p+ zvC}~NCD!gC?tZOXPNr~S&rbex_MRQY6oAfg`59;Utt%JOGs0#MtiV9tVGT=yCS6DI zgoVPOX>2GoEZE_?-_x{%9hUy22la&)m|paEJE>G1Yv%5-NxPwu!?>dXWIv2ofv{;w z-lUd%cpK2t(HfPjPIYMXiDY8qT_BQ$y@~63fLH zv!LI5Zv@QYUN9~Bdg<0#hw0IGv3@)h4Yj6QrUoK=YV#m+0)6S%+WoL2@5Tn8G*EXS zqxM+cxW%uxe3GkYysamS50IMD&Hv!e8hsKuMFFqSmiPte^f#(3;7+Z6uXSnx7BflVuc z{+oI$)C~j(f+RySHKw|!xr69J;R1%=?V?snc6G2jnG@zy$oZfT#~;+1bR-Y!Y7zJ` zGG@2yz`gd=!j~tfwKDm-_FTROYM`Q3Gm(C7Dx8AMsm6M3} zSCONH66goeo}vXQCi=&K;5S4{)_C6>66epuxgoEEDxJl+$L;P10|J9t| z43#@tR#3;$kUv_qoK|SicHMYRZR09^TU!+2yXaDRp*77oCa`B+K#L#@1GHgG#~l7_ zHbuE3{KJrO7rP1>_fnLD(XT2>H)(fqA4Wy##xm{xmXR=Z4Q(I`YErIIlX5N9R^YX} z+SNk6SCxc!)IO$1_lAs|qc8632@PrsM%(q4FLFah?gN>4VdOo?3v6EfKr{;)!}e)S zcTNq|b!2FfcQAr(41Z%xUr$A}CD>x+paZ?*tzb(mD_H+wR`CWQPB|z9a?C3z3Yppc zLP%-U{{$_|wWgls(G6u=tq{mi7%bgBvsc+(?rQPW_N(8QH7mCqn+byE81KkvOZ<8C zJF>Vr{zZkEeRf&IQ(mg#1YqB5aL~q}*}EV6g|t(aej(5~DGS+c8zdi`)T75nHGUgVA3~t?-c>(Wr<3gg) zuV)<4OZU${nXZvPIH+A8v_Dk3X0})FXbBBk6MvkDovSZcTZcZ7zx^Qow%Ws$%0T*H*@Hx~D+X;04SGFPx@C56 zy?$N3-q98sv?czF6mWvkcjH^gB=(jZ$APp?NShhBB{?%-kpSA8qYA1*V5gec9I!_y zx-QlmSNN0b*SkW(-hkS=vV=N8NBFO1+O<$VfWrqVFzS%YuSAsHByrQndghrdPi#8s zxY#p2AJ<4GtKU^c=By-hVoD)$%XnaUBK_lj`U0euGdx;-8R}|HGxOkQd9}N^PmeRM z(Hr(?i&s+xHSCyutiJjY%=AvuvUrQW_iMd$op#s5ECo*?^r}2&&zd?dB2I#~5|Pm* z)p``Grwsehh#`Y7!&>)j9E^g8mZZ;=XM>32dw>-`)#H~Jh zh~xC=Bp*2m{MK(;bW*-CV1g9i;)jEKj2<2D=ZOK<0LeJ*`n6SH>A|o?6A=#m>JJV8 z7`-IERq;7CxLJm~M0|^)_=6aJz*moP_*;DFAG$B-i`S{{7+qb~xl!yYas=lB)6%d9 z2WEDWyUe_P=a5DE7Fd0LqhJ7(vaAv!=aW4q0_g(fBX$iRaZ~~z@@^I&Ci&p*AB72` zpd6JsO6(u(UVI;*+FJW8JLlZqgI;^`3yw+06LipzBlXOjKBp!V#Q~POcDy#+s$lcm z)B#wmU=2S*xY^8U{g^$%zLBu}&dsfz*|$44Yp^=ueC#D-W_n<&5mZLJvCd|PzqM8NE!3bEXzblAm2!Y6vSp^vr z2cds~^(h=RYDo5E==~9^gA| z50}K1Zv!H9>mH;}bOTfX3P9UHAqK9$4ta=xAs4EXwdGI zmS80%vovFCyKfd7B-Q()x}yYW67TP_MeP0kfC@B*G(mHnu?W(mm>L|E%GBB_u1;4L z>P8jp5(5udTW#e=J;T|oQP*j_Nx`$MS61Y28*B<9UxXT zB!K8FS!V8&H>lXHhEA74B)tHK5h+?q^)VY`+Qv5Dnh7C4n7k?koQ|vx>RjRbq|_DTn>k%cT}<+t)=Vs6>jqpU+Y~seKlU@Ej*ZIxus98O zNER9P0m-@Ez%%sbj&L50(V{6*#EhEOa5?U~rBcG6)#i6sCy@oFuEFG}Prli#l#Duh z#E(Qli~8lMP_);zqoGC3oZ&CKREI2zOcI~LI&ufB|ILWX61JH)Q}tv#h5Y_sIasHZ z7MwiYPpx|0$t!oN5VVMeBjE7RPOycwi5sO5s#5u z@GyjB{(9STJ9&3%RveACHk~nkGiltsfE@_D->^lCs z0H%7QXE+RN-BKbW#2>Q`-wrhNfKgUxNSXiaY2D3TWc&>-m=mhLg0j7QKt`Hqr(DXMmJ|0jxV6B7=Bg2HCL=^B0e(12TeT zf+~(;W#F|_YI`|#C~ph&$6t>+XA+^996kqr1}8|;>A(W-`A-Md#r%ucayAwe38IcBwSOXUXMi*3wkGJapbkyUoO|C< zs;ZJrtLUoZW!~{gJq5)^VkEqS=*_5tj{Rg=;1Bp@1*;5u9mG4xdQwmvrpGV*?9pm}8zM1F#RXtKV2NpOFrUa2n1+^3q5#|Z2aO=_;{01wF`T?g zzNhPxyOpaCOaOcC{0!YNAP(O{u$}znctIy$S5E%2rM8pbud|bn>A}g*oX>$(0z=q8 z42|ps^Jxte7TK-r>Wi8&v~4_##9$hgK0O0_#z}tIXj!Cz zLb{Q(kcuerTH|qmCD|30hQ)$HCrJDt7PJUGqYf-6vawJZ4E@oEHSG?ubu@z+Fapp~ z^ifkX4OM>5l8AvjW&|=p?o6%Y=M>j-aPI{nHY5g6UZQTGJ!ASu~QX#71 zMdv_eG4XB(DoZ5Bu;-r=s7zxmBqxy4_#>Tj1}!D59bLpnW57sM;LCl~XVD^zD0a*k zaJuwAH^9PQvJfdb;e}`w;95j`z<+4qldE}q3B#1z1IaMu9gKi*i+u z*(prHt}a0A3RA{ViQajs6R&`Nhz*k3wC$n*T3|GUDaS#LfCYpV$fi|f(+8UCcW2+?pm9dNL4?yq~Z-7R4@vkmVK!S*IY6X|_EE?s6Ujhg; z0v_xjLRj4)2?-o~HxUw02YvqNp<66Tv|teN(xF?ZAfk-=2SHK1j`9x#9*P6qSQ@MVBpN<5(GF1$#r`{1f>ko6C5m!U5&o3dhVXy9$;P ztXe~RtYk9XZ&#zH`t2`fB)aZSmpM@USh89;_07>?H3vA1-!(`?pACw(3X9b;-5ogS zL9NR^;;&jS|AXdTdF_PR(Sxy#X|6iV^p5ZV_?2^VV#`>D-mTxy>VekEHXx_z*acIE z?+L7R%yc#-z{$4@69d>zJ_WZMl%}^h8N)iw;q*GQ@20iAKS)HJV;}}N<1I=wSFa%V z`E(`HVt}iLLPeQ5rBAygUt)ku#doldcng+(k~;>Ns;Bt>3qj1TTmbGlXBurI0RdM5 zn;XJ@m^#1s+kgqyjaeJx3cNu=-^#L6%(OOsv_dm6WN5_fp%V=F84MhA4~SD+1u$pAqo?IYqiV6n&$zTAz(PE$VbAn-eR)P3q@OF!|Rh9W^M&FKCVDZNy z#>0GQhh>KB-I!$0a3EF>*&Cyyr17sp^6*`^@kbfF&e(3Mw?uCVtNxx15;}1LrTE>} zv_FAP*PunJKQ$Yhue){6;O!)+07((|%wtW*(R(h#aa%mFp1@c(Mu`8?-cJKrZvZPD(95_$CkXzXz)FwO7*H#g z|4b1FpaHM(`|PcZjw2Fpgbe!k5_m_LOWkX7?8UpGT&fIGh>d-(xT2_OozT0aCtaf5)^ z|2i`Oc%nUU$I%=Qt1RsSZQ;d#RvuAlD6tCYrMKS ztVuTqAJ8+tLg~DZSQosA#T}G$jc36}9dzt&*g_9ZHz)VO%&^j2+<|X2WzRn?WR~|S z3`Y0qH*|1EM9Azrw8AJa@rFv_+xr1X(7Y9)XGiwDzW@SgUGDy1%TdA}djKPMJ*d{Y zF>GkaI4p!E$NINW5{j;=xS^T-jxmR2h2$d)--M!wG3{RFy~qW$h8=T8>d}i3LS+ie zm{<6)-r+mcLBd4h0hBmGhw0GO@yE_aHOxBJA6G2Q2TPmh z`-6aY)>-3>$!mOLje>O*r5|ez&CmeB4wlc`sTB?W~Th1$Wsh4#uvBhFDI|Gd~%d-K6g%`XP`$nUMggvIj=NRU(i7z z)b8CzPBMNX1wap`T@vY`FTh~~u3KX54J<$GZQZ;r!)a3gf8=H8Z7|qvPDgWY3z-Wu zJ($zpZ52>CGllWYxjuOK_4@*It_+s0zhk`4w52%%WD}Bo2$C`Une{J{j3N&X_3LJN zMyBG`=mLQYMKCoORg9wg@P&#=v7ICS8|xgwRB;Ei>xyp$X^+Z<<_HpUcE{UVQ+5G} zT&f5-rBNYiU*;_Acl(eC@+t(`{<1=6>~Elvb(wSpV_XRs9dcU%dFx27x~A#VUPOOq zogM)J8V8dO;7I!ToED-9&J@__Z9Q;fLLq9A=cSNbXP;KJ_RL^)yfI`J9UJz(8&&g} zvVk8aoOOpxiRQau%j}!6Dw;iqJ3~oZGjGXNTtFmKo0IW*j4Wh)jJ(_VQta0z@VvkaiC~5eooxu=(>TopUAE2#JAI^E*(G!}1 zH%g(Kxo3T-z87jOnvR!Ka$c&3-$I3g0grOZ?*0+Vq!TPj_2nH{nPvctp$N&k5>w?#Sut9Evl{UZA2z}cA zgPi6aoQ8mu`xNh)Gx-DqtHsn3;!W2}*UTR#M=+rVq4SF=j{)j09E{t4$Klv9lzl;2 zUHkCx*)S(C7uYAt^Zj<)d22Zxup!3B&0M(w2HYC~5FT3KQUTEO$aO&VjupTLhg2gJKCSMumx%p=Qe|Y%q7m%h}gZh(>iM( zxeiwP^JbTW%%uZs@X?YA`@9thUG3t)BtFeZK{eI8d~y~mmR!R23v)cBKC)%nSGfI! zd~cuAq}$ww)y>>Jzre6(`&*07o-=F0`@I%MUwWa7kef_ZWx z=4QNFY<~}LsrnwC9GOGT3j1~}_JH!;G6piG;-W8A9|*&HABS^73v;m=38+%}N95Xs zT=~4QJomZ|x%t_v97(}(9N7_P*z;YmmT17f^LenD=8!8=fo}UB>TLj>08&XYRppe5hdgSkt8#bRg;m>2}hZFmc|2kTk)-lqnyLFocX^Ye2ioXz9#V54ydTKN*4O9T;%kWasq_F zF!N1-znX$#yPTgj!{uyrAYf&94`O$1P3Cv|#7X(!_q@*UN|#0vX#eFnWxc&h_n|-0 z6oI5tv}SVLr&IdF`CR&*>HGWe`8ll*l>j777>9Y}FCk)v?!#nGCkm>70b%88xiRyy zj%9uvS{7piilugjgL|uC<$#6BP(OdXRyliq_yMv{y9(znKxI3D(XlC^&cUG+8Vnb( zR^ylp3qToKCYc)sv6`_B-a73#6{#lo^#MBFfv!?Pm-F`{?d-iXB?VvVUj0-B7rQ~o!1%xC6|~D=peifPPRTf z766+$YwsaLVLkxYi%vb(m)J4M7U|P`m+#G-SKJLi4D6?n1~!cZ0F|v55?CMMz>$>; z)W!ZvP%uo9jf|4p>5CARPFo>a5_&-fxR=Nn`ojdtu*Zwr0IfpK0Dz(fSnozGa#+8@ zt5~f)PK}I%0cWTIbMLy-ITo{6F%-z!nMZ0Ak8GTr9IzKgIX$)*{aSy(hCL1nwZ;@$ zl#v9P;3Z^UtRHarJxmFrhOHfppr7!m?}vbsh*&iBi9WHW+TEoidpf&&2Zga;Q)vum zH8ZE!jeELYRypgfWW76CFYgs7m*q$aCgsa4FIb_BSznMBLbeU<pXyE z4!KTT!h|JSFIhJ#b^F7RfF9F|*ye{?1rNKWLqW-6^<8D)buML3IaRg{;+YIab^nmG zus@Cr^(l5Rq2z@1$O<5x>?7h$KCP*BX`@T80k5`lD*v4jdg{siK<|#0M0@& z`h&l;Ra>-}O%Q(-!TIcclk)p@+*_CAf(p#enMh1WdWhe@l`jo!k6sg=pqnEQ!8=I0 z=2-=dPa$uLM8O;bs&oeVc`hwr9R~wxsi=|WU4n}Q164?HR3nJq7XKaptRM!IJmO|9 zY5^yaf;!&dAMe=%|8>#J_ic+AO$Uz>0_&R>K;)AhA}8g8_Us1G7V}|(2(bbFo$l1*!I4Tl4~W zA{7Q4J?=Y4jvhBmW1*2V=vFSqk;wd(78sy}KJZIFJ!<=dxsRQ6ivGv4yxq4h*;VqH z{^~nhX1D+Dp111hc5{m&%qF3z-u?!+d``;`~nR`K7%T< zPoa@$cytPQm8)_pyr1dt+u1_Oj;lpaplb&XRXM^x<`2!r240rrXAI z-8T}zdpuO)2$ffBIGeSk%A9^qm4*RMm6A5C!6*IPR)WJE!3FKoSpfpyF_-YjSL7YY zADLz+t&t`8p3Gx-(wb)5oBVH+r#tZkc(07;0sUBHD4X?x?V*M?ZSjey`L(W{+KkU2<=zm?#n+K0t>=qY zd`xNfk>+@80^jZQbLZ;lW}v45JK#YWF$1(;Al?kF!Od3op$(|@cp5M6wQhtL{@I7w z@+m#A*NkXcZzCr=%q5}mO!%K>+du5KZ!61ZD_s3@b?gh|)k!SC!^fE5Q9552)Dr~s z8DGl;Z8dmAN2;>G%DasPjP_WWpF}z!PS-cDsz1-?5;tGKE zE2pU7BUe!&i|$sw$;XzR%lOweSB(PJs8KaqoEigGxN2~pzBS6}{-#G=MSWOwnp1S$ zBd#JJi+oPe?|gF8b&4IgV_w_PtVVVdP-x4xL_(B=Yxa2b(f11Ae zANs%pD0wqz4)#WRz;yJ+L3?e{DD+qdAL0HMsy#`lw0uzlrIoGK_d}UEF1s;Qa01C! zsB(y~#ou^m9UH-<2KxdfZ-xVQf=~)(eoAT7wN)3R)?zO_8Xi^MU9@2=Xp5lYK%r^5m_R&mmTW} zL8Az(FU;`+SI{Xq#tv91yeH7$_yv8jDqH?_kYa**udUpS2biYNM)b|Ii)Q~m`1IE$ z$Pnc5!vfiTIBhqe@Md@MNZKu;686PDr2I#BiypuU(-%Y?9qE5T-uq?l4+xHNvd5Z_?}OoOd1^3Tp4%I}lk2=cVDn`U?(2#g>5m()jHf#cwdG)1kiMzXd2* zRifW;m<6a*`fY%l-~MUyTP2nkpw_O0-zW!H@zqD#XsrJkbD`g`JfIurcf6C(Z&h9E zw*z{|o8T!IyH$?FexZp$ZRHvlyPc`n4R62F&EDrlGN78yqyAWQ72v_4%j|%5|2k19 zBU4!JtTdJ@>PE#~l*)2o`CGbBZ?90`Yrs6PPEN!NehVN-)LWr(Z=r$%g!6iMM`}%F z<3~ndDjr95D#>sUFZF&QwH%yMYB_kzp(xXu&~g<kSh`9f%}B4f$jSMMZ&*&ws=}(xV4rSK7??Ct<$z zu|JUc_QW1j%=e!AfbKv{%X(3)`N6PaUH%(z-$GG-N&bVwuw3P@1|tQ8{MAn4H2ReK z#S+uLI%y~x+-Kk$CzM_k5A_?e8~HKK#VT)=u(pc}n%Nf(E`Hcby6w{DLh*x#m)VOg zv#{d@*62-ad3G~ubg#aZwz%Th=HS5HL32ij4y6Zjfe>PNwT5faM2xWw3D`F{5mD`% z7sC!yi$eVk%bt~0-<*wYJfn*@6mP+|3ixYED*zmR{e!=Y1sQaX+o(iZ2+vHn1YwG` z`VYXxkshP8rv68dH4Ba|D`^d1I1+nta+tBm33jZBzsR4{ve=>4G^w&8`d5js&57rb z5hqRH(>QZ-+>0RcoKW<``0F7|-L5~S62%`?n9~Qd@|ECPENxAt;6z3u3ov;wj*hDz zf(jXr3wA5OIbh%C1ivB3dHJVKSQ`7p&ch(UA_yy-<8_+XKLfROD;b`XnUj zVfjQ9M**0P1Xo;RJScYLXphdp^oBs%Dx&e&&mmqR0Ile;>WYaK=G1fA%OcqY!2UVy z6$rdQg7;%>kRrsUSN1B8z8j2wt8e`@WSl14xuYWbesJLaV8a1zG2(X5*Fl7LjQ4IG zYR7wc@fza2nLh~D|I0hiuhb5RX5EGGfSM*D46*&P`_v{09b7I`I2m4tF%t|6E+E`m z(;X6~H^}LACmozDgdW1)ZG?1S5qmMfF4T?L@Y@H2CKFZSUSWxcl5U@^Xu<)2R7E=A zk<5`ms3#^Sdv10}x25(}JqlYROq|N24pY-Zni1nkVQ~maX)6*|y-MV&CTCSAM^c$l4)zcLXQStV(ypP%J7OpS>5g_FY$n64p+M$AR8F!*?__{ZU@@9rNB5YWRA`VmhRT> zJx*9A()&N)h2`#mPmCf+6?U5eF@F%50N9|zD9B)uS8=zE~)-c7 zVN=yb96tVls~6iNJm`#Ij`&yI z#g4$}A*i*@alQV-j9{#%MDb73fm8xhT?C@-Q6$2G*j#ID0;Y0g1- z-Uy0R&{yG#mB+fno`=sEaLF~C$8!o_<{kV@1tP;yU~%fj=+`j|KZm8bgHw2X21ixZ z<2zstiht(v%EcNyice^ZSH5%=ix#UrA6N+4grS*0LaRT0N{nJYrd=#X3Gn$)?y)X7 zPt7f#RQE$%fIwI+YtLuw+Ui&izv?&1ALl|une?yZdyfN=r9=J#nr=FH3I078it|w$ z?VR1TxXO6A=5yTSKCnQc{aj>UOXP}NziwjRHPkf%YHqQ{Ml<4FhYN-8CKwkWKtzz9 zHVj+_q=WGVQTo3DoB?|OYH9-<>%v)o;9;)M$bB8JXyfrID7=}GuQiSB)u`iu=~$nU z_j?vXdHhXO47O+jEdgX$pvCxu4|QSecp3}M1%ow9G!-6>_rx z6%*2Y8Cst}k@dkFDvJpw1;*i(XiZo2s@vaRyXzj-Y8r#=Oy`86c@;cDObKgldh{xQ zf@)hW$=>W>LH)-)8?VxJV^n}A=hux20>7gKuUgYZ-uj(c!?O4>5}2Yp1?B{jOl*k- z$q~zWv#hNndVt{olMEDp%Q~CDLZVteMhXPlLpQS#E}%k8B2qK&nMU$fUq{O@(|_iV zfmC4t(kga1O_qu83MwYFUY)9nLBJ3PQd*<*D$yFyQP3J93~$DsO;Hs8=VrD;lQ=$D zlUpj|!uZT^x-)YB`9n$hHrNU3HE_=Ug9|@jAMkRyi{I*D^3y zMf4Lm?;nSvQwu7`ne(#YC(bLFp*3AK0kQIqG3Mm2!A4k!8Ef{>qLW^QTw7WF-+P9j z6Lh+QT73;xLPsN>E*yzS@vt&{C{k;<9?Vzzi$K!f*Uq#f4zrfGw{ald1rOuF1?H^}m4-DGsK@AoEiK74=E@=yR zF(+_~%{>d&F2^HOL^~F@{tTxb+HO2^wAf39(5vUgMkpJ^gT)89vo8a65T8P&2aO~3 zD0mx&tqvWO8@KchF@X>=&Mr$NloiJyl*Q3&rM05(J1Zg3SRd%-)wpbqQwVDbH2~0jT4%#(u6wgEpqbf_ZC@nu148q8t*| z3j|j6(G05n8IzRtcpejho9!?uPcU7IB3LwL%Oyb3qc{iTP)&?X6iMX73vPV0zmZtF zIees%n43BZvvrM=>G?s(tK!7P&gB!WS!}WC#XiGT$Mn9-B)P2(&NSTnI+191klV zSxJ(@zRcjB7df9c@i4%wk_`+R!k06u=%}5lM~}AC|5zcgr@>Vt1A>+We@Hp%nZt!dctn8X-U7g;P}ib*^U=&<0x7A#-}OZSBfxx{=ZdG3eZ z^&xDhP`nTuC~?0CmxLKyzduA5AwUMp2ICWgf2W6pKv%+F4@LLI0`%LH-LJu;727Dz z>qQU3=$dfPlbf?T`>*q<8#kXmLTB0$@y>|_XoB`NkA*i3K0Lud-gKNW^}cj z2G!!V>ah)w41lKg3S~fR8t;v6t^erTJ*^qxton_aNSpQQXlqYU1t{CWf=(}YgJp+xwo2y;K4sKQ+Q<_?Nj z&vur9M0Lg zuTVtXAFr*df}(p){enD_z}m{Msb>Qy!X~Huv1Z>R;Eh%FDl;#Jvmyr8aU|fWyhnEo zVo_BTG%g00ESBFMFNjnWb8vNMr1)3G`cm=Mf(L(gannmk3M@Zcbl&;cxk@YppV z50|MIUWe`yE<`0B@abfT!pm~{feC0HSg0@x@DA^dmxUvJ|$@MM=ts!^{pb2 z?ivnDx5xiwK#Pjt`*S}Sr@yQQ1>6~5(TSqtuRh6fInVt z42ej)J+-%1L{GyJL{z`2vLfR%UMEy!#HqWWs-IGX1((x(2w{Rk*eHBv#T}vO+o5Q@ zBKj}REFVJ$qwipeiU!A~S}3{=K6*v;%U~2A7Pcvw34IZQI%0_7wdP)(z@VaogL;Kz z8?E+QfQ>K=C%6J4n_Ux(sp#So1WSF@iUW-{r>@jTMfHDfsMll?eZgQ$)v+7V#lOAk z-yR`$q4+zO6sbu-DRYROiAgm6`}m5z2XDl>6Iux$9W+KDti-06of8%4Pzn*XWgBd( zjsi`B@w@VvJ*{#Dj6JJa2Fc@oe1T3mN#1HNJxkwNZy@ zgkX5#foS(~<4FjEdE}~s6?*@3E6l#T%Z&l=SCG5$DVe{bRWO>pTLv`F4MoSIvpewF zmzPmPmJNhKqdjC%791neW|m)o@Dt%r?gP@%hFY8>#=8(ad2sqQm1E7xJAqs(ndrMB z+ug9yh%5V1womCun8nJ|WO!7kgs3ng*W@>&q497>RM1 z>ZAr#ly(TKC>6U(^*!aJ7+vm1QN!OS~hwmr&a&L~Fij*H<{IqYW6Vgv=3XaqPdb&S}2>6?x+{dXqdXle}$0Su-!0 zs;r;H^pvvJFc(qQ!^rPlDQjw~&dU0oF>JS|b_A8RSxG}M0%m@&k2e#>nZxoq1^Cz9 zSQ$H=5E~)RyrXtAu27@|E*w%Si`Pl*!V=h12TEktAjo|GP+f}eg6GP#Et~;miLb-YWIe5j!6CI)$S-H`<%7JbFl?KsdlN0+l7H$ zY8OuHI;h?2b(h*56U|-+6H!=Uz^~A;T>)A6;UiHap>~5&d}RfDVW4(JZjx&Ecrio^^ZzvQR4#J z5-}#!?it5&u?{GGLq-FaN zh?;b@6uT2Aab(?gMMfBI1^1yL;;Yen;q$ex;|GvR5FB6=O-nWsm15^nvfj*AQTd=;++Xjz_gn^wZc=UrXRyb)zfr%>`|&7(P&^9j>jK zi#-_S=hMNcFeaYg&N=C#*HsY6lt-02_-d&CN{(xA7jS0y!XQ5(f^6~+baPxrFsl25 zrEk<88?=|$Pzuj#1HUm|=EbPMsvUkVSj(ui)!yX$7IJ!6+6nc6KO`S7oQP90?UE_7 zmaNJ~Gv#u337urjkj9Sv{7a~%%@KsgyLKl+V~LQH@iEU!b@_Y2Q8+`OLqGZfP{lm5kTzFGV!RKew*LsNMcv@Fe7R3RBK!P5$t3xbkpT&l%%L z1Uf}(hbcy2faAmYr_W4Lw0eJR1Hs1t$Mz#vfbYwGT#s?@OI;70{R4~#uL(g3*FwcJ z%$Lz}K4CX}RlnBPYCXZmYl$FE5cMz`*3WQoT0JABgZu^n1qcWI-V%KSj0vY{IwpZJ zF%u>?xbQQFW%mBcn{bbCS?wPmp&oiM8T}Js4c&)5i}l!%jfLXL_W>9jXZk1;ZW*$i zVDpmF?O6FVFT;m=zVXg{k2osSR!zX}#mR@YbJtVouy!(AW_&eLJ(J)ob2@@8JF|jh zMg-|D{M~}DT0EzEXqqrV?PUxd0V1U~06hv5+uO0x&XlZn?*cQbwkeuEVJoZt4OHmS)m?;otbTa5OQNpq zhNx_XIDxF0OtLv!DgUpb>>Fv6oybpdP#-V}I*^n-dy7rkTj5Q2g%4}fognXNDdbJ3 z?^C2w z&c#tmzh*M4s?G^u#}W*0f9|D^WWn2Zn4y<`6+T~&GVh25LgnhJY2t7g`n@A*0G7FEHFWHgeO?QqeCQ53&@^s;Ro z9Z~r(pm)~sAv3#_xizfsm&(SCU$b>b8$SN$or!}2T(qe_;0@2jFKyuibeP-ZVlOou zE;>@b#3i6dLSA7NcRuS!k0hX1-)T!gTJn7$HFF*)C&Q>ROa=c0Ox(e(p1^<$Qf3fAK z^5THJIKUTg<3;FjghTU&c9fOut6fKA*Ww3caKimSEKJb?_|<7H7!cl_3s&=;T(IhH zTriyV>dFOEztHTsVOr#Ds??T$;Ar6iob}?jY|ODd>UD~E=lFmnxB#)ie($USI5L*S zBV&WJc)ajp`5>cRIP+t&3_!UO9&9)Zn|{I6S@2+ayb$Iv=l@)EFzV~r=F;*p7;;{g zSGJvGAwP{{%%RdY3ftG%mSarL0$XC=13rZozEJOuU0+?6U{`hGFu+jf6bc)}4$#I% zrb}EQ_;@{KFrXh=;-X*1K2S~h_ip6(S%)6<5pw%B(gVniHw1(^0<=6Ux1FWyrkE0qlhhOj*zJ_NG z-m4=qZ}mC02c|0FTiU*TFcP*(;xLcL~Tg0;FP>vjVpVpnvWHMc|`0bu~^d=w;o4nPafuoI?sD zV%|J}-6@@j1!}~5{rTCIr_l-jF~J}f!1)a=K*X}n@2R|mDy%~@l! z`;PtuPI5)5RE{Ge%r2mtl{JnXDmRxoP%L1%=^a|Ql=4`?}*IQaXkF5u1V439U(O@j`~{5SWJ(WR#WQ_#}j8hqh=oSkLfa z&R%QrRwfj|Iz$0-DK>~u>(+Se{7V$+RR3TM`!E3E*Q0$4tkdmED3a4G_6Ml~R4SEH zRM8>s;`X4fd;`pl(FzMz+;5;ak&Q|;_bX$vR@M-yF->iI_Q@x+W-=_5DuKrMTN zqXKsdHv!xf8oA#TOC2PLYOmmH*eJDey975SM(%c1UW9T#%WLo&qL=&ZOUzmVQ-YW5 zmxUMr&aOi)JE2U0Ssj0iVB5X3BqvewfKvjvSP~D|ZDi|}HTeleC{XB@5$QHo02VaiYMc)qh)p+mibq!QA4rE-g^?fQPm3Dm+NK z2-~Ev2ev>UbUrF3>8En${`dznS1t2<0t0FFbnmIMLF2(-10o5C--a?AcEt9$HJBoh z2#FerZHoL&ZLf8r8(vY2AOkv}Y|8ZDzZ&7AvYGa`MoMLh3dpkr{qpAxBTtDoVKi@! zfJGJ%9eCYPF1`Z#gufiH4=o`pvS)*`P1a~D%ZKNgx)iC0FBXOF%1_(Q7?5oS>;*oEgN|Sb2}xV)O|1 z?j*#hFWOoUH?xSku^o>*>`{&RQjr1K;E>xkB>2XTW<*q)QQ5%(`P7==u2-FqnboXk z=1r}%RoDJ=ROjf#wr}>nI+ymUfr^3lsy-vBy`Gfe?1RI$0;@(fD6mphjS6fUrz|7d zI!s3u=&++z73#2)SY-u!Q)(>U*8MAPk4d-s*j#EVu&_ zvIT)tvl81h8DDP9xS!s!r2gqf*{ycT4pP@RpZz6e97?vF55=NPBjDGXj)RX_iw#$k zVKGtwc$8fc6%GIo$$S$4)ZLc^pr^Etwl4l_M?G?`UC52e_NZ5Pc%<0w*ZH-2&|n+Kv}KWFz+&24Hd3+$)Bo#qp%{i z>S{n^g{7+Xxw@>o5jL$DKWCDjPkEXBq@EWubM!$rBaOoshQL@=^+$rSxN8=UGS!)7@=L&6@b{vTkBwFB|<6xP!3qM{NI|Tw@2Q*20E$88QmZo!l zw-Biz93S&52c?8dB>|EPb_S7(9<@~?pMYWd^?xtrs8T4)PPSpvU3ql0vVL?HtAXzE zrvdX{#<_GOHh<#$A@Y+r$9Eoqo*+P{!TYd+7cg*P3+qQf5P>iPUIK!pHy7Y=CO3qK z5^zB8f?3$pXBFEp%M<`90Y@JY5@*qjt*jT%v|(nAd;$E_PJq9LUkw7_chmszU=rJ% z)=TD*Zk_UT)r{mCxXi^*ArN4|M7l%1X6R9P_1Cp3-j`VdR@+G}Bzx58QJ8}fb`76m z3nE#~+{~*QW7~o+&QMg6UO-GHz_G=_$eo5?kfzW27}1N@x}0zbk@IL6Mx$7{wfN0A z6azZt()w`&i*Sl6r$qoM1l@3H+X6-C4u|^!C2}=$zj)fM`^%n5>V9cMeK7f41!773 zRZhzujU^W)N*aWk3QU$1Iwi8jL5MbF4e^D|(ColV%2mf6r;2!Q8Ypx)WGx$v=a1Do@OZ>V#DoZgnKx3mS>nCZ6uwa+9$JDWE;%`sB`R%}Aj!cJgHh~e3Eg1{vJ6Q{?9{2?*h}Gi2*;-B!`~3JZr11SVwufBFgxqHn9G1w)`+j%2Fwq*XC`zn$LOzGl}DqN5E3N&bn#} z=2ChP{dks=KcHbclo0eg*qOUkDSz_QF6gKVbKx)SD!HWKDF|)B6Yl4<`T#--o({pQ zgv;&%4$J^qvd$uK?{Q*Q_8(meHb8j6BJkxXO;sXIAHCvYouo7|Pq4S#W}SNqIV7bU z($tA{(5Wpwdj_UT4-Ah|sJ8UHt;!RuRMHJA{o=Q7R@(hrH!GnHCE@U51rk_^)8Nc7 z8cV)}dM2<%_;p2GFiYU!+m~Il#OzU#wF8)CA7_>;PI1jLaZcwT0>W8CCwS6k#aVY{ zCf5JPJ*$2xv$A0yV#8ht0qJ!OnCdxOK+@zx!k85K!1sn9J07YH26v$dh`0|FVn_&n zCRn@xmv9Wl0h%=7z-O$ES>X>O@13Ze5Q}B-a9CXu(zYx`!Fj5x=>3FjJdH`jw^+wM z2(LH{p|CEj#!Sw4i$`*Q4Hma-ABTN`IpG}2RvV>;;7R&19S^qTr2I?62fuCzeF2R{ zAII^Z;Nd~O-WGJg;Lsa~d7Dk@>-3=ti~;2*0B1XDb(|A5a?Zm8PJVf@<_19!B$P3s zsD7o$4|&7)q2ab9XKh7nFG|c)k@M43z=w5XYRRLDOVwQ2sV~EtV=;bU))>0$Faa=j zHPFO&0I(T5tx~l#VF7O^{J8H}&-x>NGBU<>+5`^M@OP!cAGmNjvmE?`zAFWP3j}{e z83|4sPv||?3!ggB1E1AAc)NE1kh!Jy0zu|yc)*uoiOi$e8RW1GL}1tT_{lVd4tY&% z4HFj*{ZMb&!&s*zUOp`-K^`m$SuT3PrPIVQvvnHmf55T-C;jhad9XlTnb1&0-N^E{ zPq<}y?62J#3T>!|Za7_mKv^FCLlB_RMSwK?Yn}KP^1P*=l4nZ@KsN?U7KMU|@5CJ9 z(7H&LVfB#hZ#KhCcgaECu>L~25kk7N@L-efAaX#ZD>6d*%@cnMOah~rpx^b0m%sh4 zP+K1(bc-E9t@NECP3AOAyAlB}K2 zXMkKece{UF0+{z$pJIc$YD2O4DWA+7-x;px6scEy-`K8JNEBKVUXf~3&vsR#i>TTI z0zigpr>ScHILB437pu**dlQ0K1!~YCr@E>Ew;tBjjp8HHmW=is1M?QohkcFKvMVsC55el>G^g;#6f3O`2a zPY(7IM?iO?akv$qZ{~N7tm|iG0}EVRGcUza3!mAklqB_m z6dl&d_}MR+^lG+J-vmyYurBVf30pqXl`JxIZn(* z{)Aec;~$%E9XeT~fh08vEmDUTSV0d@aWRr!WZXwa>ev{SE28`&BdSzLZB3ZXk*Cj9+Z>M$mAaKMMXGtNc}i>7+E3a{y&@cqjBG+ zYln4q%{tg)Jhgn)y?u~|S9jV@0#@3ntraI;f z^7-kUizhqD_G(s|dt}dRzpo21^yYLwr>}dfH?P_fX>{}X^yb9wz3F*hX*b{*2F
  • w_0g}cW)T^@{ zF4p?wZPq0AhqlA-3W|?|WzDkb}y1|p2ZDBgy?5!R!iInTA<13+}lepVUFd4JP_!La{BKxv19hl9$lIzIy z@jw8r>_)TCROSH68bw}okOTCMa{%4w$!|$s1Ic z4|{FcXSza}lm3Z;yZ-v0x=6Kh|DUR>S#=fe5bY6bn(v2q?3Y)j>Wv^3M;Xo-Od#D1 z$Z?-|hqw&HWYaX3dbJkCi4V2L{pJ2MR2DYmI! zVZZ)Rn4C0tlXRy|Q7`tv=<-J<=uobCmTKVT8KNO#)O0Y!d_kSs-X|H_(n`?VC%)+i ztPj!s4i=v2e%>bfj0)A(!ZF>n)L1~j3WP5>0oB3}EkICgc2c~#-u0^vQLA-)wL#Yi z*u*ua{jnVC!YAe?tYB({mZ_;HK=X7=nV;S+MLhkndfHe(g=*5*aMY>@glEh5kGQdV z&yAHXN=j4!d+JM2`q4v5&>G^FMQV^UPUH3YG-3&G3ZjjL`FUL|!xHxG^fWr{ zOqvfQy0YPRRm=oI@o)B&LH3Jspu@i2*H6#XqaVaXJae&V8jv6Q9sunnhdA0Up}PR$fHU~DrLh&*7}J}0L(T%&o>hi*Ytlq&LC z=*SBS$^6YsL|cnkt~w`X9=9)$Ugim{@P^*t<8!JrDdg5?quLszP>Q3EddlzQ?8_D7 zGIL`C?TPKK7292_WtO>oLCXo|Hrx8<{HOE-B@ba=V^;*q?EO_fya8h3ruVlf16Rv( z42Lu8Xq~#^ljNL@l5fH7k60C3{2?6DcuB`U;EoO@&;E({Kikmlt|428d%+*_s^VN` z|3Z8d%(V)Jyx>=CNzVD9K3T)vL>$DZp%#%tK9Xc7&XO0@24(&Qs)m_H#8_(_nXsDY zS$F+lfdf%t?-eVOsowc&#`>=Y%&_vtNPeA|kSLL985Lu!; zX?e8g=<#M29>}&RcTzJ&^i>vNlx?!n+*K}HdjFi-fFmz@EY60gfx1VzZ1Zxn(U-g^ zAY1gAK+3kP2asWs&Z{dEHo!sjyIOide5M#&|1_iJTr#>ygA|wrb4TwiW?_yu z{2{CVsT>3_C+E0(A{P2v*7ygRAj@CjP@E-|eB2SjYVZpi-io!;NB9qz1S(dTj6mq# zeCYjTS`GqmfagUk?+~k*C^u0x2nm)YRpCTz0S+~Pf3`;!r3fsMGLp$!4rV%f)}lql z!fCtt=>_fsqm=o9`t#Ko`6^VUU+shm!(|CnK3A(5VWL28Ti_{)j=gACpmt(snXm&^ zC4kSwV(r;0lGLlRxK~VpJ$fbL`CssPXnjw7&SX-tJJiu8g4+!ZCa7sjvn^A-woDvm zTil&%ju}iWk!?M2xT{!Ef4FFD97t9z(vc3CJ5z}8*$Ex@(%2`{-=cFIpH(bO&T(N+ z(h3O2XU_A7*qK~0uWg=YKvdf30u6A*j=iGjZQBX%@X&snpMKhPfO#I@R}VrQYSbTX z!o=!{T9Sm?e=+T;4;VY$P@B^iDbE1v`f>SxBNdlr2m;qV9jH_1R-cX#{u!2RH+8zZ zKAoKXJ;|fg#xWAczJxIo2&CBvQnlM6`48N9G8j_ZPfex{GvPIMMY%?bKg2D3VOl@8 z!`PsUo*ylJOx`Out&M7-*;u8IW_D|v01aXLA`1get#&UZesB!|r9U3m(KZ2*yw8O6 zkLeVb1?I1@tn{M<$hL4X-}DmIY?MEFuA)^DPd-N0m_^atyBMs{n|)XgMJFU7Zu$eV z?*@eeKIyvH?5B~H_utRwseGo;=G=MT{DK#&(6^OJ$7qxS(^cSie2V_$nrc2hrzsQK zqi#206nf8|l9RNLpcrCF(FQaF8vN|kp6MBMiRhi*^@OsQ8hwt>6sq0{%0H{n!%FRh zawS%N^f{lR-5ivU|177eVFKkhw+YH&t1?r+gakL?G{U=6#UN%H(H^?nbFfzA?2$LY z3rc}WW$Y1Cv9U+=>-I!&Y3S#@WRdhrHr}SpC=7R!YE$YJdyM$b0EXa%6_y*(@Yzl#8No6OI)3EPHHw-0;lBf`gT}g+=_fHwVQ(rfHoux1}IY zs%rn(J9#mr`zwQ40sgB<6kAO6gP+e8i4S24a!-_Kln{@?hl;~vjav0%&?N)30-R%}i-mh!c&L3td_-{O!#Cr5N;)D08C6XgQM6eCV^ zxStYs-Q>#M>=@$H_Z|6JbHhmN@llwVM-fCT6Dm0;NwTbf#v`O{rM4F(Q{UjJIykGu z-?EUzykyhc=vY;$mffmSZ*Aq2mEF0trD*!q)xjl2y1L`?GsC_Es?!(1e;1V5-oXpX z9K;mP3+AiafI86n6i(?#KcX+VL*dHp zy&`L}B60@}LvJ#i(tP8>nl>`fY`pTVLxb+*ol~t#Y7k|qbI4_vx1Pm@t2iwUj+oMw zPxPbltVE_AY54pZ0+gfVxR>^&yY|kj8M1_@zv_t-<}j&ihO}_=K}S`~2feFO8#udq z<;bU{SC3r%7W?i>xFB})fK{UhEgQLozpF>jEzzAiCMp^Es259Xf%jrZ|2)~q?`hy+ z-7z_6H|IHMcN836)RDg3(7w&kKC27urx@A;@3;9-K9xQPg{y6y(1a$k%3oi z;Mdo|@rNqLI7s{+R|GzkDc@xw@Sg{3A+YYOz{_{}Dg*D$FRjDBZf1S8RE<_j!`l_P zm|X^R_%pb{bI~-o`vp$5ZsY$V{{NHze+4_))rU@}@xrXr*s*7=pLV(*4M}y$b_@0^ zio}{ZbzqA*&vSTjNBS2rjVGJdBON<^&dJ7=yk`B*nZ-B2?zqFqZ}5!6M|-lycd zK({zE{x)=x?)hV%S5b7@i#Y9dpl@~HZ9jMKJe^U#8zOF~#!hlWR7tnweb5+byG4N# zie$-@M5i61G0tvipwAS+Qkqs}yUAeq3T^oxvW(*@SmVYsQ5~F8P?f)=I?a*())@w! zx%Fio+hSr!HDv6->h#OQmbNd$DN2Jcw{ywkS%?r~75{?jmicuYOsp~M6`iarDX6Z< z!mu3_Rd6k(P*nUYoEnfX<#Kj3O*ZnJu=X3*-I^hK3bX(U2$PDxF0(L^q; z`oXx79simzI{kxjI#mA5u+P^s+t8ml8E-Q`$UB%kuRejSgDKzoJd<=^;Rs|$FJ7uT zT1faZ^O;r+W^Ug~{^T6yVon7-W4Ef7Oz*0h+h!_vN*nO2!{Riw%kk}fcdtRcLT;j2 zjklE2qk0$TogNJQdCmCObVBK!lxqCiS;6@)b6C~I5_4}OT)V{F`l{6Dh`9qPTos&x zm^-{rO)v#9_n%}+A?Jv>KAmFj?^IUJbv3rx!o*zN)x(xbG?|P7YwjdUyD4}y{X*oN zaXD}GUglW!*~lX+<)p*rPj<>#rAC9rBhkcHjmD=!PI~xYovL3DP5%#X8b_TX<&M+& z@5R53`dbxN4`wvED@CKJBWG*Umol1kJh+(Ayi}t(h0$zfG^c1ZH!_-sW%i;hqp7rpxE$a#!87f%<^_EZib1a%cQ!>_5&hc zPq;C%d^&G%0~KYFIX71B$v9d38GZ3Bhch33AIcD!N{F>2Ud49>UfmE4#vH^InvV} z89*PfN3bF$VH#kMn0-*`hja7FNMXL2^%}K0A9TXsVm{}(-hM~3sJKkFSj+l^XjRgy zAo}8MGKbz1bL5DWJhe;+6D<)@ktT!wcH5PY3RE10y*o8tnHfx9=OdX=W6oz@$=8I{ zpyu^S!+8J;MxtXs&`iJ=lbd`g7dS=Hhh|*IuVZ9V#B1fDcff%;qhQv=_vgg})O)9- z(<~|Kr~rw}pvo>JGTHQXnxW3KISdquMpNo79WA2Dl0{Lqs(hxa%5L=~XRi}Bd)zlH zf1Z~7pEgV@9wgY0^@BmlRH!eZ7oC9~67*REIZQtca}IwuQ=i70(IlMgcAazvFhDBX z5@6y`tI$hcDy$1c2w>EWdXgSiW0LbgMr(+pO(w@sVg&<$HoZ_O<2hmb`IaFDU{B^K_OK84XKoz->@@b0~6?_*aaFKnKWJaWafVLS*?1#zjO;#IB$bzZb^bMo-! zj%FKokmeTrl0^&KpR@bV-{$`FHF3GxrS0>gR9+#?%U2DI7aPClXC*l+y2U&x7MJ>E6-|Rbq*L4t~!ZG`4(yMe{!D|Zq{1rA1IlZbI zTps*G&{u^hBKXrratpbrW`Iy;Yg3fD}^#;w8@sR zTRSz-q*6Q=q!sO^y{6+v!PKGmfO4nB?y>W+AlhfNo0iI~7Vb(36K|iPDGh2^w$4c? z(&$0^d}??>X%#JX`}4e|CTE_(gPj*`Yl`QYJFN<&_Z+HdUoEKvk|atc2p-cg>yw?; z;RkydSbwkh`Jz}2Ibf=si|CC z;D^632i|W8-l{CT7hjf>bf}V!bV+S3;;PIQTA>QPrW10qS$xWFmMwbZ%U*ezc4SnR zS$ptDQF8X9)C14LXOo!AnB%xvz#Fm|O41nz3`m)Dg1xXy_r6&;UNUw6VN21G30hWx z6o)Bl=%SZUx7*wOp!m}T%C=%EKKq6KkR=qHQpJ~`bi96AA}%9aGW9q==(9)_bI2l^ zMa8nI2;&u)MfYGkHwYv?{hLFMF2l%umn75r+UGm>UB)kC08J0cF|uBVQsr9bP{{tU!k;_-ZYth+#t z!a@la)WIo`KXeLw1(B|SR{!Eao3MDZ^~s<%)k59r?8HHFCtPD3JK0sTv&Kh9Iu>zx z?5t9Qmqs;_OQC|;{{E4Ot^PYaK5CD3r>PgFixwbp1txwDQ%16^x?2pZ)49O^B}>Hu z2#4@Uhure^X9ZH6f%?jFi{UoxAq7ZEXNDCa$ z#|u*Y_}Zh{pq=41+N?Gq;R0wun#&*2b#t)Og(nrwHf1zoP0^@O&csxc3BKx#`oS=QB%aZK2ddg1f%v=h>E!G$)aFhk zwF{Kg8l2H}Y=8nETmP*=bXRNf8rf^zHM!`~K8H@~0#UWtwFOfU8JZ@xto6CdHMLyC2MQ~ql6nrWs=lLfTmesu$Q9sv!xHEJ$+$r^M!uD=?$OdDf_RM4e6K=2lq zMK7I<^W_u}6a_~hTciXzp$Rfdy3uQ2*EhRd%7kNKJpQhOS&FNcAtK7b>qkeY_G*7i zT`KqUT|bNnZzASdeaIGqOml4qvF_mfW?bLz(an#Ge%ngkfNqj`rD@o||l<|Z)cQR*7a%~#PN z&(3k)4K7=Mh2etMF)0;FZO zNvhz>UP1=_^LutD-D1~xJHm+n_TZn#RjvpBcx!IZ45)D-O0Xs4`Qc1k#XrcRkvx?D zJpUk~s8BRa7k06f!GimxAyzD$$_9c3cj{SdED|j)1*2og3Kc=p+iEZtJz~{6Cr|nm z0wg-{TNGl1K!Sx(&9oYG*f7hG(XF66zI(-n+xJDi)TTob5fS~Qn5O;8MLqg^ortVQ ze{BjH1Nqm&gWBj{u{PN_nvBUggN-I9SNh4neM$Iv?Ar5_qqcJFU}gPx{P2`YKefKu zz}NXNskJr`2EC*|?v99cZ0T#-Pp{4)oOf9v+y*&lah9sFycNUT4i zT35E}@b1--bFy(kWD8f5@bUb82|iKTEeo}3Qtxrhfi7{q0ICticj3^;ZzXmiU`gKp z)#fI{xyq}Z_BID+x|Y(CWnHBW{#|?z6K5RarZi0j1-9-v?5C#3(n?MZ(QD<5+=Nbf z)nj}TZhVR)!km65P+a)kU35$7yT0GdE2oG`24s zvnEqQ#^~I!raS)e5b&jQq#Xly!`HNAQG9etPD+W(p( z5xUoRZO{6=XJzmZYwNttDk@*}J{s51q zX;sI3`$VDR#MAV{Qg4bQQFtHzie_b|vCryY;h$k4>|otZ_L**tB4|W+fL_xNUbHbWYF~3157BR?1G75=SUvF@XliZBL_Nx%WP*B9h8hK8CKJsxK(vuvYXwryTcHj5yg7iU9~QQHA7 z+Z#J&yFAW@oFLnr+16o zZpL&C(_u8xPGH`5>SMJ7@u>0~#0^lT=c&?vkeWFX;Zq&VZs2Qm#iA(%5OwBYOnH{1 zPP>eCbKEL?=`Z6x_@As)y}}=|!ymMk33*@c5T4+#{=hC-o8KRG(SmzWRGNvxr00RoL<+-t~3)|K=9t`Dc>3uoHo`q)@~OxFRdQ5 zoHI+2)n{G7oM`~ORyAl1*HEwU^S8s@I)C?vCY87A0_A^4uU}vTckI`ZMl)Ge>n?w$ z?Ia&Hsc?}~z3t61Qbcnpx0RmN>j?-LuxgMF2rY>2Zq1d$8WfisVaY8yPZfdOY=IRf zxTkh25Zyg!*YXiz2*XZ7Lq!;laf6K#0mUrx3s?9L$T~?jT?d_@G3UKyW>4c~CYreB zY%NqhtXZKXcax7HdA&hHLNuqwr`cZK%o(4Sj~JErd%L)Xa+aP^afAZq12A8b-nP1Z z%OY_~{lL_=-cyUhi#Y6?wpLHbP&66;vPO$Zy!vZ&^Mc&%x3&yOuA;l6xp9 zWQtcO&_>3kUvQg9#~_|-rO#zOCM@>{4UXQL>x#9EQt|3^4*p`Hn)6d9}sFF?Q9wI-QAjt_jX_rMB1Z-E45uHUgDxs@LnArc%&UJ%$G*d=_%~&B$TAp-( ztdLHa0xxmBCaOirS^JopcZ_H6pCnUX(|dNHuRoSt!HJXg)6$O1Ythsb!SkE3%Zsbz zE8dv8J4Y3>PWyuK`RxWUUq6VwUK>bt3!D#;A-eTE@lg&ap?76H zrJq^|3c5;6d0ySmYCa0k4^KF{TL*V+bX-~MY%<_01JwiD|FW{Z{mz`iaB_6=wa_LU zTqN3rJLS)jeILCy-6q0wt8z$ykd?gX-)IX_gbJu)l|Gf21W@^cXoV7&D>3wL&&w%l z3czDZP5gvECD&S(%G}7x!K(dX)*+xmfp+(F2O8Zln97A|;4}qQk;F1|qLUn)f5_ER z4bIVOtnw@1ELY+;9GtKGCuja8@-Z*kU8!DNwA_F>glRR}?4Z6eR~OMV5WUJw9=)hk za5B*fe1_c`4Wf?da0lV}xlyLp*F`_HzJ^?2C`|Qr8r2Y0c)uk%LPUP%`p@P|&~$T2 zYt)!WMwVe#(YTOgEB0oEt%_GH(Tm-BYTL-6w4k*b9rB1ofy>%P`ti3h_N$YHHL&4G zU*n4BSN0lo6y4O9v^4CIVYnpOqKW#X!)f6 z`v?lpjc#hY&CD`Dff(C_X)V2`HIH2i3%R4GquD*y|3`GpM9zVIDp=`84|{CCo99uS(jSlHpItSj+jJ5@!A{S9@i zk*2>R@%KfSB-TdULT{ds}=rP8lBUu>KCVvkc9&e<)XjI!bx zAy5-SSITojZcZ< z@M}Jz-!T3qx^Ri!A+=_}!WGJ>SkGQ0 zR0n4lSXf(XTSaot!vqG8*1g=X)l@8>dRR?3zJS27^6K=fRjc21UZl@z2K}d|@B?mT z7I9r$lYX15Q(mfyr(HEt9ri7(vihp1PsOGWtVyq|TD`$lLG0ezn!;s%{!+b9d&erO zYGcbK@mpH0-b2OOnkxjTB*(}2P?p3OuvfvG*^1t&8uVfnt2Q0ggH{b|u1YT(J?x!o zWCih7ce`yty!bX_a&?DrQeMqGpG87dMKjwv87@@HKM!u;H`&BK3y^hsfe70QJ}#S` zSalZh+M1bm85umh+$!AkYu>8UA6BK_O;*i(&aj%=+9x^ZBV~$Dr~u8giPof$ZK6)K zeC}@nmv5`%{($CcTtRYzwAu;Jg{{?tJ``|9BLYC1TtbRh&i$s(MeWAA6$_^)TM=-b zY&`8_&Fk}=sl&uH&QCS>qG)~p!29`Xa|G;{d?G)!{@KDcbLo6ci!&FCM4{upb~^vF z(aFzvbUo{@c5~}Evo4A)#gSY4KV*?{55+wCME5giGHRpd9wstv`H)*nMt&Z5zADxH zxi0B8!qmiG#SWd+dr5!h^P7Z{@W*}pine6xbePRLIF;zVkNVV9dJvC67cYe7{->(nC~zczaAK;+$` zFRNOjKJhL0)oJ7wf{7cyzs#~w=DQN9S$<->ZTgd%^y_f}yPt`^Y^_P}0Ep`Jmi8NJ z@YI~!6ROXu27Osm_+?di!tT0eX6hlZ&S*w{Th;3I4(^VcL2cxy2}c9>Co(5b6v>BN za95L#+S}FRshq@1^zSR3M2-!*+B(~RcRxI1D|>=#(wl11Z^YnnrHEZ>4s`8r(xa&$B(W?|Jn6*jumz5zt63OnP@5AqWTE%N++Dzf zNQk1#oEmq+;OO-qIyJ69YdCk3C{R%2@Eb%kQFAE&gQA?N*&NYx@y0}{A4!FX3t1m* zho$t)iArBYdi1=j;?CUdJx2(H%MFAYvm=MCs@k%Nvo||*ABrDbSWp%AK}mwSg@erP zxDBFPVFBHA{x_4&H5FT{(g;*$tgV?#m0oY@Sqa%@Hgk1)Ri=Q%n(zn2CI7p3O<3P? zc6eDiJoH{~M4|Q_)C}1St#>b{UWp@hc5UVb0(t*S4x0+zA>V!E(*QH?F#RGOp_d{* zupqM%)o9X>k7ZKTFyJfuD9h03czAm!i9ICbr_Y;sDo5d9m-{osU*@geAV{qe~sSmpS5 z=s`Y;pVvnzW0=q*7P$fYA}u-&@9z}k|rbb z4S?+WoTK_{QCCjLI%=F}XW5@~;N;|`?u|t4NtC&J3C`W6{(YOxMH?r|ZVZxW?g~su4s)cNwrw9C}Bgk(LmDvYB`!FW^P-_pJ`n!4G z7!=2X+Hi?Ng6iiF`NVDl`IynxDcK`5J?+S6>f-}K;af8`JG8X|8>-Qc27aa-R>d?j zbGe?0DJ)N>*oBrickJ*His1G;Abw6Dv#e8Jav3maEQ7Dpwo^MOGR~?WIHH03m#SuN zwR#VifSh1L8^~PNVlU zLXgf-jjj!#-Ger7a097+KK>0!4>>k0ZFN5%yPps2$8TFCNbOE?qRFq89kRko zbrYKOsDNyACcX>Kg??Bk^W#n;F=XY*l;9XMD7HZb*cFVBS&}J6%119>VWRrHlX670 z1&qBu87aKx2NKm*2bTMGjQHqZ`V@Lce3WBdn}7d76}Zm|G`fb6?NO`Be9YJAbJx;8 za$7nKc%q+QVv`D|E*zHwgcU}ehII}~)6!`dsk9puwGd6Ra!No!G|5DHSxPfHZ3RH&ol1lo0ay~cMp*CzOz*&;kxW6JKugcEV7>dh4?a) zT6uRXhq1IU3e6#n8l+`f)T}9AH&N4c6N<^)ULyCFh*jIRt{hX}P%ojg8G{SZYxYFA z)G$A$-nzbO%fbeF%za$+o|o(GfF;PZ2vA8nM#CzMP@5!{72I z9`4=z{2j=@X?xLrYSGp#3{9_1|4^eiF4tcmcM0;;YPhMh29~0&h7}Swsr5-eA#K*G z``quq)cuh8bW{5}S!%Iyb_`uP*p$n6oO1c^nn4?@3K!EmgZ6?^bH5HGRV^C}syY@` zr`O9&TP`z@05q=b=;eb^mzr7RYd?+*)V(w}CutDqCfYp}CW zFKGV&8;^Bp@z=9QGPaFs2GE`Mn!@E(TNXD^UtM8!c+PG$=~vsI<3?~-@L($_a9qI{ z4;ZNL)f7HowdG&A1wU?ojy*)5u$2@u_aMn0O;AmrG4Sl{>Zq=GbLzfGAep=UstZ?C z;UG!174UgVhCj*K3zc!mn>uyK#Z&kLSeU{=v^U z**JWtOjmBmKACb}b$V%a(0_1EdUdC1%tojURfXH}t7?j)E_WmqWZr+&+`Vi(KXBA7 z3u9x|5a!8OtJ2%5)33PgvW1quW?XOldEvC0+3hDRRVc-4b z3z%N7UA)urR0!NoOKw&5pjWC3U#JcT;xX7!Ic>eu(23$a>8l+8L|??71d6W`e+*)I zZi%rcQX#WI)6vKiByrGvg$G*2Zfaj!1+)-FyMN`$F;I1JP&1CiuFo5T9X#l!c2?BOvy%Vf1#GW*r>SG%=~z-q6XDCHHMn^ z7vWU48p31)YKFW~jb2@%QA3^52o4u4xh0&(WCJCjf~t<^vxERCmDHqPq|EeZ(fPH| zA&FB0n;CzPq@u!Zv{2QttY*+kt2<`-RW*Z_)f8?JS(ZQmgS05QV?05rd_ zCamt)u`@z?2_dIa*#O!3R?fU9@utDT7hzSP>n@ZGMbP92eMCR65l%x#9SspU0=t2^;ilU|F{EAx^hV%y@F%i1%BoQ1YbUXxy) zxd78l{?Qy^ULBr`q+BjeVe)}}mO4q!h#B=l^8&FiBh*h)Hwo|X$7d0a+-dd{q&tFom6(c^+$VA^>&ee#{WfL5Esw3Z21e>q034)+SfhT@oZ_v}m29{un0}fvOVhECX&Sd)#s#*e>*r zUFJvKpi6Y5yyv^0nM$GIM_X(XGUWUd?+sy0fjI&CezscvOzc zR}Rooy(LA@vyBa7;t<9uGX?h8X*}-OiC&4v188u(_0;QFvY=a>vl*Pv!7yRzP5TR# zYwM4Q_k&ul8EYMBv{e>S8TM;siT!qxn>47anuYV5YJ~H~-5ky#Pe!vKdet1fMp&gs zs0G7idTdL1`)%mIfPT7>su5NXe!EF!chcX-_~ThAh7*#hE0iHDE?(R}FX(%NKYl5j z;)n*z)#L?jH2eWK`sji%<`ehAKHk9Z?yWP5?KEOW@f?^@3Oq4~LxPKI!^vNA+F9d| z5L@=v!CTY*y!pXi*^KqCP^>KbR(DWWu`(2%Y%$$-)>Q=0F|2j|{f;&qJpY3#-AS83 zz=HF$My{s3lHCJfWf+5@LVHqd6cJ883!*|8!KJBdJMMEiNi=(w>}-cNtZ4ffhF6}= z+}RaE)suYk9FFyQa`TW)YFYcLS=qxFxdyIa$GdT2^2vqvVoF!?;We_L%jAQY6NxH9 z@0kx|DM==Y&xseJ{etLkzti#0UejOqwt#+F>w$O0-{gdRhG@vjFGhASZ`{;skS`rfqkdJ;{;(1t_XUAZ(_#FoZO*yh;JQ$0K{<2ljKih_jJ z%JGmm2jdF5)LYHAj%BF3WOWudl{PwHy@?Ak;z=hlrlkUbGpR?UPo7R(YR=k-_0};`} zyIn1GCX1Gva3!hm(9FX$5sia0khV|nfEdn4+mOKOA+L55@AL?fp*+*LnmGA)YJzcV z9XXzf=NyjqI)Ctf6U3K~LojYt|00-`E%@5oDZAJ$e zTLjjO*WS~!NN%mXJYOedj9`b|89+ufp0ofRgG7h&GDDWx_JoQ6UA4$=Dce)^<3hg=iwT*;u+u6h?7sO3mVh9j`Xbls9!*-IP zoKVRu2DfMPYQqmTvEUFic{u4+Hx!g%x#&x@&djJ0kMhQcBHM=bj> z7mOAHhJz!;MO;)M8((hi{+v$U>zu>w=MP)JnrxF@ z>MttUZ9j|Czkn6BS9@2_6zHIGAVd=T3c;~(*!M4DNiY$$u|E~yOHx}us6SLC%lvR= z9t0xTJFA-V7sxO7bo12KPwRWNzo4%MemOlFx+vQAndDcja`hPBK5l%G4bo{DU*@>Z zz%LE7s0o0_AP}h;0V{!QnjBe}r(gZR?EmCz|ZE-ud$K|NY41;=4 zt&%P+;83A@+!RqaS2UteaG)IlPZ9N>pITbPV}BlN`7PmhEWZPzzMY`( zsnRz0`)S8%G%F3|hHqlk;H}LSeoN0 z7oB+#Ui2qO1r&77yl6k|!~9#cw<~bIi9b3_odu~97ql)J?Q63M?WytB*`fK0kL3=V=0I>IS^;XiOPcKWae9W>{k>ZeTM`TKDq)CQMLo1YN4d;1~V3(GK5UQRYH6ykK&RmvV#)v>K=S^b!} zwIso2Lv$L39w0@KAn_v6iqVi4wZK&(M#mOR6{{jyV02!%+FM!nB+3)j4KH-|v)Wb- z)R`AuZ#AfY>OlJ(g%C-KseHGL7j$K`?%GZ+ikRh-Q+H)o-QVacqKxGbCCkE}LXjYk z+d&rb6dm~qRQlswD(yBN(=Ok6ZZ)O~7YNN++yeYiKcBThHzF0wrr6$EXZ1_|rV&gi z-wc&ukFy_HuOFJFn$^*Ln|pI>hY*?Fx>`wt?v^BH-=hbXj7wWu7WcbwX{2o(d zZpG32whNu2?YQxBT8y5Lx2OB90!Ve!=`mfsjK4wB5_Rql0tX-@Y-jH%p(J{by{Znt zPO&t_BBuS;d}iR7?_<|l29zySxMXCr=joy7yHECimUQ6xTLr|!u(}}67BuEUlpW@5; zY3vo0{zaMCK(n%!G9k_qXOa>W|2i)GTl=2)Fi%%5B#wK?oPL)x2OQ2L0gxypWhk_j z*PY`(b;Sht&)@QaPMW)iD zg~613R}aTAPvUG2$1WKf9CH=fY*+s?8YEIDDiz(ZZpnz?#2QQOsJ9K!lX226L6x1c zq-<2+9ZeFu&vc2*4EYWC+UlL~2dVU-_XWR3wbe!`p{Rx|9?Oo23=rqe{6R|qjy-4Ot**$6Iuo!v@6n{m5%wWrlwH9N9yqRYN zMYqaL-;c(WnTQAz9be+4O2<+*dYb&1AHpxzrU|%v<0^(`D)l`q{=1c+8B3nincRou zXe$mkL=WdJTP_5a<@&zrJxl(PbhhAG`gEYVOuQ?*Wgf1ScjUF$y&d))&67>3-S~If zPkKz(p?BE>@xc5X6#>Uxa6eSiTvx;6O!s(Ft5?rcUaR*b{XouJzfkuz!GwvyRvvSB z>dzh43Y1c&DalRjY~v%4zWs%0$_K!u&3)Oaei!gf0KPKK9W1l(C-8>Qqyhz0U#y>m zUVlD{nB4pZy*p^4abcIws8{>5SzVp;on}emio%XyIjQ}z=)DZeK%)TYhM(l@QF1S* zHbU8xAben$IILManr!aZRLi~C);bFe-=D7@dz(LZ*r@f}ybV0-AJVV>CsgfLLW0CT zV2M=*$lUuYSz5hs+~@e>U4E@AVIqHpW z5aou6tE~AfEgr!n&o-biG0!SyTwY^bMa}S(^aaS=n9c2SdWedH+9EZ}luZ&|s2c}M zf-FaMKHMMw2~rNBa{gJFtuysNx zX(O|Z7Y}9GhY@-}bR3=rGdW1hb`KogBsZ6x^?r6BMM_>7=D*-sbWLp~V)4d4RUJI}f2%d~hQrgZ*5v3qX6Y${(q!&6xyx{NbwHs@($wS(JL5#o$()SaQ1~n{ ze(H`S*0VF)C4LXvPZdXv?;`Df8#|42Bwm-i2}cdS)9q(jO(X&PS=K{#+Rw5^zoGjL zyy1?(8CH!3 zUu9p{HV{G}Eg4Iv@t^h~8{8UKauXljrSc8Q##xr55dQ_o+}FqDw_5daD5csR7#B%x zIIv;+-awCB#Q}cwge?p68j?+`ktfL}Nfka0oxnl%$OOGTaZ&%z7Ui>ZM*^j7k#DF# zrNR^5_%(SDXTPD8p#K0ryA@qmXB>qf=q$SrFLBxAlh+*W=Pyq_Sv7R#dpdVC|9Prf z%Ky(emZsw4_w}Iz2e-i3>jPh7lj>g@v?cI=aE><`8ocJ!|w=W}c}D-j%F{ZPzk+CpH| zK}fPAJ@ha0Qi?fBs4Xv=*yJ2}Whf3f$g|WFlS3SEYNtbYCL)fayG|6mCWjRIkHDj1 z+d&lvRipMqGvZ7IN+*sIqk(@+!!3O@r{hNy97SK(M_BV(lWBUItfw+EE@%_)E0&Rr zLp85J|VZxUhRL#)|7b-v`0~K?qGe6RFRC2t~tTs3oPkG2EzyV z0&_X|s_x9x178bz{~z)7{nr12ukaCvFPopn2rN@sqL*-_2w#A??D+q~u-+4A+G$un zuvOLn!>~T{udfCZmYem0k~NVs>SLspMd!q@L*+U?u5+vh#IPeB_xvib7AJGDH$((L zWqEE#JRsg$B>M74J01h(vJybY26P9 zX@FT45ePD!^EA)7R%dr$-z{hmAbjMsg#~l%dG(YFc{Y-dzZ;O`Kbh}VZ~Wba65kK; zgLJLransWJ+W`8M0XaYqr_$(GLk%B2``7cGW65m5Vl4lg&&rrZM#Cm(vG}U4O+T^?*5QVBj))bPq7= zn*S{x`|IGQ>l5)t;HzBt0{xok2)0hUry#NN1o;VySJ{s?Hl){RL1~}~Kssiw6qCsM zQl>8q>WZmvx?|6{bu^Pu%msSsx2P!`-olg`^ldRkVW!Fl*Fe!+?zH*8S6Us+Y#@6z zd!E-2UOZBV&eT6&9gLjFTh*l~Yjs2YA)6K9J%~sFRMpodU2{7bV<_Y*~>f)A2DtW5*(Dz5p$Vnic-%s;9d4 zr9o}Eopf@e;Zp0h=KLQ++pFp?QH4Qm83#B9rC)OmmNmY{)okf8Wx<$oPU;-8HmzSB zeOF@VJn}>pzKq}8wvmp}sIInYge{|H#^Li2WE?lz!STe_aiuoeyjkfeqyXqZf_8W_ z646iNFo=>MG5MD=S8Qo!Y8e_gJGo9RYdf_(PbG<()S85h9C1)VwD1A-Uh5$1qW{tH z>I6m>=WvE`_peW4@u}cgOa1q2;3#zNSW1aZvY?6GMN|LU}7-4>8E}d)m2(``&)JOqy6+O-&JMu zFbi(eIYMgSZG2dL@ZQB8=|4rjJpJdxn9s2A82{K8AKqYr{NPi3Mf{&?kKA*};06%`2Y z(LS5q`iS+9uAyO~d5UvztqizYRIZ-A`KS?gG%qd>l$P1)q~y+v<`FH{>K#Kwghh0e z0WcRwOn3$Gz7Kdk{ZBFe%es7Ef^V?g$I$yn*Adi^D80460$}I}FlqijL6{U=~BOa$iDG)i~kp+gA#2x|rb-eN6n2cW}rW z;(BBic@JL!-ftr4n4kIj8SmBnTvZp(vX6=l(Kcp7>tDM@?`@49tG28Cm9KFo6ce{{ z>M&rgkPJ$XP+{%_U_}M+ruOmE7mWzK9XH#EHVcy9{~*2)0vMV(7p5}4z+tT7C`Z;N zFI=jzPR=fuOl_NaKm9fl6ndF$od2_XJcBUwzSK3`R{XTV-WJ9adEaX%XX>DcE;T~*-RK$C|l_5_otkMLX|Iz%fo;) zbBddzU-(^4HlaP*rs)}=5q4zT-(~yTPT5wGEjm#s5(j0bGn2%0LM3^b)!4YYj>OUU zU-gZD4SwO;%Kd(<{(7RhB+y9!}(Do;Dl|5NE9{ClnVce40* za@GK6JSt&1h91pj_xVQXOZiy5d4dyNq@nwu?e_ZzWP$cKkFAkLWb83a^v!;JE#~1@ zA+*($FTL5ykL9@^0ybLCu2Vl?a==a2K##DHP;OU9)wuBnNf*VDk1w5n6OC}Tq3fEv ziA5pGMTtYLzFM&vIOfYafL#O;CX3z%VQZ5`5ly>fXt}6vaCx%mOHwv-6U!!k-{9jh z8!tEZ<+)anoii?Z;cGDL+T`qaC0LUEE*ckjM=da4;f;0|3Fojf>xdU>;e~nTptilG zrFr&U>wa`%UZWFChw7S`(p#;W+I2MT5K!p{!^A0L4Caz#(WgKJ-2E;a%+`#eHr{sd zhMPEAaG23y&EIkeOky>CJ_s(58 z{k4wVpUo&4D`87#7CR`n?v(kb+02lJdi_U&4J9;o%6P8J=&j{+QP4PA$Hcwcu9WE@UUzaKX?faS}9H%i{dj%s7)S zMWz3~)YxDhq`x{jTY`m#E*h7~bLok{TY8cA7k)E0nCDD;_K-Ut_=PJ~C464{S|+)x zBxdc}Rhc(&+DHF-4v{pOryly_H9(I%LLy7!K^`%K*yQ6^O2piFI_W_o6`;&)%TL}2 zh2)s`vOxDz1+w$?LZlrpX`6xc{vVJXR24|Mb1@01JKMeMu81ZOT8#_}5<{rDW2y2k zBrlfrmXDFfeJhqF=ly{X;VJo2|4!62oJ=iHmaurpW|6 z)NY!Y@e7SbyvQ0<%9yI#i|%KyDdJKh&J5T~$CDCe`b=)-`DPNaj|R&V{bON$A69(V zwAu}+tjxJPeoT{VUl{EUaLGMT6m@*`<>PZgWc@Iz}uEK zDcE?IVHYE~k?zkeL02)PPuFL$AUdDx@9R>bIXykDu_anX5f9_5D?xd>Ae2c5K+W zZ?O$R$-HQ;&UIQ!HREHDl^*UOJ4leN&O-L%sPt>u*($N&B~(?pd*sE^ zt|e}w9kA2%R8=drZ#u`dcJ)b+XAWU>^wE@uF3V`%)gJ00unWc<`2RnD;_Ah(<#-K_ zRoCYX6p2KYTpXF%qr1i0jUT5S%Gd*7r+I;qCe4Y3b8f8d7enZ5hG_Fr*8H2hl~2wd z>-38pdyov-18sNSx>z~1t32);&IN5Gk|4gIS*ut#;mQClx35s!EEG4uwHq z7dFp~NX59pOdRPhYzEIrgyy=#q8XQ~JamxS$~x5bs@!XSYp*c_x9_BjfB%? zW@yyW3T|ncTg{QHjRVMI5te$b-zO+uHy6>S<+=~VFm26_$^{c=XZ%J!jQ+OAi1W*j z>?NxIDTlXfn}vDiV&IdFKc`%@zKlOtv3J!v3`3Me3A{Td=qdp#?Y;5tUU})nI{wC_ z=)Gvqi4*@U)h6+o-rBs^_|ZSnIy!aYIDJlgEA$f<4-=~ZR`dwR<1ibY^F2pz(Ve_U z%Ll2PLu#_=1=SLI(^jb`$cR6EEH3bVWAEN?sSpxVpQCS(61~Cc;ced7cNic3wRxAu zPtku4wtB8^5}17kcRCgllVBfOgJ`{xs+0@7#>L?D6F6hpb8F}b5`_XkDBj&VW49D= zFiqOqOdEc>bTvQX`+X59W)YQ{Yk>+&Ed#)>ABqHdCo0TVnf88TN#1YuLp+{)Tgp$w zDaLv24@Wh`IU6=Im%w+?8|%0MOndoL+d1g0zp4Dq;;>ACp2Olt-xe_0A^*|gy&%__ zjV6Da8p$UJM?mVAoAl?Q7Lq7eBwBM_Rp4D|S?iAvJl_@4wbZ&UEFKTG0qvWaDf1!p zPP3-yRw3Pz{#=%N{1TbP;C6$j8IKg?f! zD9G%gPlVpM4MM8hltz62VM6NRDf5pco8Ex>0`Ch%L6CT#zpUsqE#q5uX*60(d_z1T z#9W7^`hufp-;UiBtvUzRKPEzsp?B1ZT_^vRWX9{qvov1GrbVLrJ)rDX?{YpVuCHDq z2~b7gsy4dA)%ff9do&g)K)&a`6BGI291Fnvw_||JZ{@@K1<}#29d8 z3R%(VM;KCyo{y!>ZjvQOQ^xk9P}e2doTbXy1^JO+FY`2{+v)J?qNk8`clGo5k=)BS zc@J8gxp9*SgOHL)zhU;*d!?ZVsMD@sE1fr=&z;*!PPKEUy%*(>22TJKHRF=ais~^r z=-SmhX)Bx7YGVDZyFz3a;2f-}X+(x~>#UDqh+bx62REBmse7HR7sNpRRia0_m7F*Q zQRSJk9~xbHnE3W%){afRZ4GP4rdffJ+{%${I=<7C#Zc})Ue+6Mx44g*9d6crb(}YU zu`)LfUSjEHLlJ9XFY!l>;N{9p(+=>;p{)%9ybBug_)iH^`)c%kGgBMPbk)z?e7G2c zNj2QAs@obwX8ISCnjVA1ao4*E{yOqTr+ls^MYTjrM8oeEVYs(S!Y zGcYNKZ1Kk*v;8{2OFsN1w@XO#m2*n|ZMS#)7erPCiGaVvOD9tNqDqWe6RQ$o;;mZo zIZ*-E{=+CEb3x4a6W#k#RW4$vognez6}}7zbnjX^?%8wJV^sVe@<;(o^No&5Z?cl? zEI(q74INo5L04FnW*-FVPDRMfMOBUvBs;{f7X?Tl>^& z!=HF%)*Jhus^x^15B8FMQ=op**QL2HeEi#2p%%jyS*(M4tI znCIP?lT&OM6~#HNa&oGa>NbQ&n+I93F*_A|l>|`e&;|v?9-YlZZPUytx%myC2go1w z7r23U&}$4lL$Qfw^iR)Q-J?C{(NFz@WO^wpy;W9TcdT`<%FXMi@v90DkR0CP@{#{` zWq`IGF}%vl#`;?_>~9#{Pm*$??B1ppc8Yjd6(a-QdApP^u1NKge3zzMCI<6RxR9;4SF zajbqMFB=D|LJ|&-^Qlf@YOdNQS@p7o7(TTM`7+;9<_*4IIa6D`Wa!*T{WK=y_=2Xs z1A340T}LzMt<-BUAoD<@lPi1pn?s8ri1hJoT5j1kGGbI!z5U z5IwZF75Qy$5hJO;s7M(_qWvA7DsL3sgN^TeU9{lzod5S%6~`*;%*C5%W>IvcYybWQ zIUw609HaK{BsEhj<0iGWcd~JZtT#L*p528NZN~M=u)HuQr>w!g4Ln4bsb;`5?qaFO zxC=TTmw83ipx!UbDQ6q2-zqdO)fvxYBOm=4l4bsrXy;dbnxmcX6wmSx4O2INrI+u3mtyxyqK@y#7!w0xw&Vd8OvoY#6Csj zL08y9@wd*B`XYa1`2xd4{)=ifCJ{5<&c4jL8m-u@&6(00YtdFA`(Awuje|Umk z9z=e#LAum`$YAwH8?w7Ju&!A#;I|V%y9WG+}YMVWM=@ z?j)ddoj(ImXcn;|9h|l)%gS5ZEEUo}9#v5P8fCm?{nQr^4IbAV*U_4`Uq8Teoi36# zGFhvT;p771-qN+~UMl@^l~8~pcF*^$=X+)^f2ZX!YMD%ljlUJJ(o^82k|L_czgT7) zbIR3vv_zT%B_@Nk*cD7;wd_q#HXV%-(1oMmqMd+K$e$e?yGM{Xd8+CAjT_J-qI20} z3+_y~RszQE25a9gQ+wD&&in<;5kca$mAJ~P2cMt_&jFM-fB>hAAvC|Yoq4QPiKZvu za$L&gN&(j#FN7!%$MId_MLBv~j1doXV!k=}dpV33=%l!JilTZ9S;u$w5e%DjY?;2hG zp{?-zH;1npgcM8%fqsb0IHw@9(!56^sNk1|2!#kn^Y=8q>XjR)YA4X#hEfsTT;!<4 z7e=B#Gr>jI>r?18+>#?&Ocj}+0^cW|1}yX~-h*O3@t@)LQ)D-zBfHu|@RJy%%^85SY#!s{sj%o4O^>QF7>QwU4m? zF;RMTXSpwhp|E&#w{mB@a&i$|2C`^l`XGrYI$~trznAWUD;!jd#?Y zn1C%1_pCmyJKbp;bBXzkctqPe8D;t!)<@<>wON?QCgH0cRDtyoF%J7`PJ6|n@41_E z&}ZZH50!Y@mB?a!Ei*~vCHYg7u!b(o-Jy+z#QE49i6E>e^4I0`0LL2fVlD|GJ`R5_ z=Z7EvDB|{i2<3JzpDtNq@^&F*daQu}yw-Z^4u~GH_Hn?pj7XyPyN#Yv=HIdx=%uk=dp+}9qdIj<~r79oA=xutLJP{|wj z&iX=TI(*9Zl*#-=7d%2I2l3QB9&Q@3gt_ZG?kt@G+zErO#;B}Va^1;puADlO?u?YG zLOe4ap4pNWZqXi>s8yo%II9fRQJoy0*ziLuKBJ|pAJLR|kT!cn%O3_5#jx!X-+xD( z15>5uH zMfK_UYnX%6K1b`usuLSPFG}A{x7tMF9YPbP1YXH|;7#Tg zfRb}g5 z`h%vEU_qsbMTytjdwPVuW5)hS?E3?n-u9=*#65D%rj+85)L(v*dI#6=C2q#+Wq}oyQbF$gS ziAUpXWtQ!6mu+gU#bPq^hBzC#F15{b*|y%EQ=1lUqw#UJBFlEU%XaXLoNPAZoItkd zJ_q@uzsyOsN>2JxJWY&}g{3X=b*6#-5tg>nj=0dlMBTzeh{GZ*Z7mZ_G>jV=Bli5^7}!hZ0&n zM=uf4fRb(BW-I?a&gwWa*W8qj99?CVM~&RJkoi8DqC*z~=F6-w0n2Zq99Tvu`w1@l z=ts%^Jw>*({{i`SaOZ+lkNIQ=NJYLe(vzSRw&j$x4rYY5-aUJ%|n~_IDhr8&HG}Z6LA!|G+U(VJYa>KhRRn_{{xav&nE3jZOIFp ziRtlvPaVj}`Ega`8kEgdKn2mFQ^jfsG8W3~iURMqw4_Dy+xTsNE2_H>V1L9PN%%6i zG>V@a4=Nnlp=e^<(kQ*``8+YNEIxx&4`M+gdlHW;@LrSSPsRvbZ^zew2bnnUcXUi* zq*;9^(bJNwNBJY=Y4g_cqklXu%|6n9tB~=nBJhRotZIo-IDiJ=V78+rnJzT!mB}@&oS`y{IS2&iy-lPeh3PySa{tLelTD{TdJMxuvkhSLx8|+ zO37KMf6h6;`MnEgVDEZm*&1Ka__TR-i({s2^M+*~1MdTZ#lhWSd};MwTx2wsRr18B zUgmphCG-k%-BpMo^y96r|M$}WJ;?M`{hxMr&%S>FXb?Rz(j5QZ-=9`zv(3`jgZjW2 z#u+p&RrSIP`P*NLN@=qFS6|g$a`pzp#zrQQNg6%<35sh~r*sQD;wChPQXA1t)vDRM zQ;dZMO{5mb=(JVJCG{$_{)^@+>TVjhg@G*~(Bqf`~^-p!1f&UW{%I~E`2 zlG{}bpAJ=D%x2M3%z>ag*O@4&y3sON-FEc5H)9!=q>Uhhn9WcsZvk!8hC%c)YRGflZ0{0 z9tSMuXxY^WSaFS9jeja6y;B3Tz8GD{5^?*lqkZ_voD4pq&wmeQzUn@l zX;Zq>V;62fORyjUpr%zbj!tba6Vnx9a5x3aMU*iz6aSGj-Ad#woTPzD zdeoAlD+LiG?6{=Ic)d?XVCqJ%LNB+Z%1t!F=ek$c;bf@uivFe(SW+FkPdU&3f0%n0 z@T!XI|C>OLM&x*+5{(KPHEOV4KtU4)4H$JtgGNg=-tmU0s0az50tS*`j@zT4*5Vy) z>!sDI)#AM-LJ452Tv|n~h}G&ojn><*a#6|q`L5aLWS?OB>;Jtx&Zd(U1ovu3R| zYu2n;GxOY^!fxQL{{)|RpPE$ut<@{n)eP$3tQKN7Uw1b>R<;i3rpuXJ^OIl7vHIv( zu5}%|r0USFgS@6Co8481DsuAUoVhr?w>Fj?uk4eDw&ow|4f@jYW6&4sAp_abxw|aM zO4-27bj(+m5zryubiN<#hT>;h)!%-+#6^G zs(vC@g55En2v>|hj^Ug7`}=o2_`TAty!9V=$jwA846l5f?XKIfvjjrp1zw(LzC)z# zAY_9d!?phSF*qkdxn3#dVT3J&bk30Z-%g1ivgalZ|-6 z{_>dcp<0n}qM)t@Hp8dcxT)#o*sW?z9jI7|2Hc=GIS;nPY&U28> z`+wAe;HPY~va_yw$g@Qz<=B(x&l-j@{o}DZd_?bDz@ws!mg)=Bkmof|k}Zau{TTOw zYxDd@edcl}YhZkaE(=Q)P2s1DZ5 zWqa^jyWHrnp89L0`fH^htDp#|KERJ3swa4Xk9zh@pRcsidDODHS{asz?T$JH3MG`Z_htFxW7tu%QlFF_v%f5(gn{I;s# zA8482?;9QbPJ*8=c$FU<<=QLMUwl=a$wn(9f#o;fp=r3>Mw#1ZYuL4R`G$0y3} z!fCgL=Rg0}IQkd;a7Mww;$~uD(ipjnbA937pCH)NEfMsrrpv9SVDSo77z|vGks{fG z)nIxq^L=t1bwwnXk-3OQ0aqNt9p>QrM%NL|1^k&vSx2FiGRPLG(D$-yc2+At|I8|V zI_OziBZ9LC2EVQ?qp%5%^J0-sz)ZwpJS1JjPG&D5I`Zr2J!=(d4R66hA zqGVKm?C{5t67VVquS7G8l$h3>(m?0tVi=}T{gT{w!VIm3{+WuOVIr8*?4V^&*H{MS zyv}F1L#|<0Kepy{Q#PzEZ7=1fJ+JAld1~tF-LMa;d&NRi-LW*g!DY-hhBqMxm&`{1 z-XpPM#Q*SNw8~y&wDR35j|9pZxf5X+f|Fxg{lkh1%o# z`||`m&}#HkJ_lvlXMOTr=qb+g?Ihwci5lQF)F^DdQips$@_DOpC8*+2(!Kl-< zI2fu?wR^PfSfX5=E4q_{*`o0|v^6q2-NGMW25e3|03_KUrAW(zt`VYg>6X2#8aR^IjJDHcQX34h)?6~f^xQLqMX-HctE zseP8!j&;Q1fghi&Vha;TKYGxWg0jXSTyZG`x&vje(1P2+afk6S>CXfDxeGB@V)xgAS6#StU<5I zS=IbErKS44?l$K!_^OXpY?{F-N1R8;^enM(@8YjIEPZxKfz-5q9Djx4wUOA=I2K@adsEE*CVInU^jaoMu(VQ`T7J`|0b`%QwjAC}fkM~->sXyQDp81A= z*)N#a9qO4@*Op;gQ4suXpwQGVvCMTN8W#(Md@6qIWo}rYXN6OZ;$VAby&=+IYc&S( z<#x6Rr)2ZMt;OT%${<~Ihn^+gdlc+x8v=HN;~ zxYHcm`U`u)#eoZ^x!Urtk9?)q_X-jp3p*AicSiVv50;u9O1_o;+xL(^75mxqkqo8E zu=ei)34V4P0(&YzTgdCLWe?2yv=Ly5>@w)SL@e=j_5PO4fwFETnEl$_i*hSoGRC&;Qw(i z@EvXT>YUduPn%Q$%q^NF0C*qFJuEXFVC&$uj+L11soQMG&Y(UogUCGc<0T?sSCgM!4i+T2WniiAuSUi8IEe@ z>Wbs3uJm9D>qI@(SsPxO+s6#wgKYzg`fnzSSJjb*8Wxx0KIv)ScQW4JM|0W z0wiSSnPK;jU8T}UW&Dd>u4gRAie@<^QH!bhRvKoLDRt;uE|4TjNFl+q%kjMHz^L4^GbHuzGR`u_Go*j*CEY9jTMo``P*={uDEboo z=@xo&xeSZ&U(Wb5)@882zwyY>!{{UI1A2;lUQzw1U(p0bDe#Oxsk7X*I0@@lLlqAYn!4N?t2fqAk zD1%5AJ;MVva6lU;zU&I}cPl|O>U+4O5q?iD%2D$Qt$Fcf^VJ#pm1cC1wao0Gg5WPh zV!b+_SKxfn1*$^KID-ey%1$~x;G0FGD!CWAQLWHFEbBu;cy6|`Zl`{F*E)Sm73~y$ zi^X{u(v}7_OzQT||H(GX9WamGW5_`fnqO&sCKw4$Vzz5YaB2!>4|G;fM*5=TNs3Tq ziTsfxixYDmWOQU)StGV29}D*fxk%8W-ATm2fj^hlN`|R(^u!XVm=%;m3Z}3&dc# ze-WQLi=RjT`?1OzEuhWB+si8)pbJIXw23K|mwL$}ds$mnPrHFXP0gl}ndDktsZo4_+IAv}tzl z5Yk93<*=uNe6=nD2_K37fxW>o4!0jojeNBjn|I#Xg7%*ft@Gcs_q-1cx2G?Ulxgi9 zM~yk{EmA@%)_zU|(%L&bgv_@0EW8Im{`Q&(q_ua45Hj1|Ar5lY=@Ce4ZvY{JA3NM0 ziXOLBB5M5OZME0DAfFPJDX&fQhxV{lqD2ST|HpptM+Ki|8QXpMhtCN%;yJ#16rgQ{Ttd?apRIW%_~|E1)ELmyWyP`11Mo zQjeYUFhPa1xP;K5hTcQkC?3abrg%-o&M2`}R?VT9f!#nL7$iESl9wq*@PHY=s(z&B zk1Al&rgP=wCE~Wr_P=4e7#D>#d|F^t%3qWpR}o>OW-V4*QIOiO6+t!l4Ty;s*5rvc zFrEbU{Q}uwReBmzdH_q(`&BIGAU*^@wFPyvU9MujQmt!9`a&BBZ5Tqo{o+~&gM?|# zk^z)DG>VdEqIaR~`d$y+ijZ`XIr+XcwmxkA9?EeNHwSQMM) zUAT>T-@9pM{xWl%8bP<{3me$7%iCSFdq*S(tS4h%b*#90Y=mPb zs*i>loT$F$#*wB|B48$}vjGb}!xTX}9*^26CaTS=b4B%|DI!W{f0~Y`mU42Z86%!{ z9JqG+GU+Xpq}Bz!UC|d@7OB`Ib(??Fpf4Q-9*<@)=~<%>P{2v*Wv)Rt)JDoRNqs5= zqst(v$2hS1Ex>LBEch4J67BvnI`UgxH?7JHB#jUsw?QjEi-KW|Ope+ZNP5hF_oHU! zzs0iZ3uV<4PnUO;rUPM2nX^qnU*DU!Xi^O+VeyQNO&hy7J4Mx`;$!aB^b+awxi#5f z!km8msS%XNiEDEN>BmP2(l0txKNZXC>ymR-79R#FC3R*VXMj&V5?{{t1{m*cfbUG+ zQy#D6fR$AC$vt6ZN0q6v3~IsWPpk34_-Bj;srX4|Y_ZCvvCP&duUHv=`bDOQZ#k%| zy9f%uX|@;>W-`;X+%g4U&V+_9VW4!+E~E2H+fTwa${zIWK`%3I{rJ7Z9Zg<$)Y~b8 z&1g0TS`P0*BQb>Pt#AIoKKkL3j3yW8IdnNoEDbp7CS%mEojev1erE&Z!5i>4M|Fb+ z=ic+Tqfvit8sx`2?p9Gn&*`U&0+vsOs6~(JH5I>AKjNV7z3!$+u&X2LZNCjE_ZySB zkUnO?7Oya}Uu_W43Nws}l=j#Rh}h9h#2)fEsE^T)uCLV$z+b0 z-j(?A0e7)JRz~LvK3REqP`oQwRxoKdO#E6p7i+eO z=KF;aNR}iPKFu)eZVB9AiNj(-spXqQ^DTN`->yo++rE7q1AO?5(ma1AHXEJp_q+`G z#?o(6x&VHoocJ=GAy6L^xFN$z@2rh0wx+<8TPlfSr%eooUd#Dr@7UqK!=}u4=(Jp| z#3bsd|BqaG5dwtmM3FL(saY+A2|MUF%LHAIInYgyES#`y(cy)5lR(S6?m*%)w98=K zetyIpc_}am!+Qp>&-Rd`M}D72#ZK(fr z2^@!7Z|?ga+Mgbc_}8S4=T5NW3ae*r_?|{g?hCm#7p4dCDJXkF{b|TI>D_ok%l|ey z_uLui;GsWSk2~*LI@1dgZ|fHNXrZJdXML3Zw5-DQr06miz-;-=oF7E2 zgQ!-VSa_GDR##wZOfmN4v0YkT;)<_lOhrc>eTT$`IYnvr2mZIeCVC}V=5y4BG1iPY#=cTALZXMbC02R;T@JZ`LeH@!=y zE4;g3mdLq9*%f%H*s$o992;(yF{Cnz&7KBx5A4>IZq(_aFY6tDCrV$kexpBrEO<-$ zO-8yOxAPn{QDM!MWrIc$odeEU=6RFIMUFv#$rfm8Qu#-WY{uW%{|MGUck@!GRYt%k z5gMqX70Yt$kTzXBf-S?L#%PYJ>ZT0^iPVQy@Y+NZ-i%)BUj;4n*JA#16JhDJ(W(AJ zM*BOAX4==creej^ST&bsZ(H5f#<8+ZOA0z4uSteC-Kp5Z;7!|bpe1o~J6jEw&`pVW zVOG~bxRW)HcG2alvZ(UCHrpgXJgdF)4sljlrkQe7utKdJS+3fOnV^`2Q+zmwgL0YDB{jrt&}to(rCA@($A=mel!K{T-B31Tl7CW4Zg?u+cEFWEPsls>{(vR40l-6 z8HANJVh6rdqkq~vV;&J9sq@em9o6kYpX#P{eQNypt*IR#ZqaT0cQHZQqz^vhItcK0Z=jn5NVDJhH2;3a(aZwg#U!79^U> zN#;J9ZL5;)BUh(Ku5XupS%0#U+&kalFRpXG$AETtME)!^!PubvvRYX)-JKG ze)yyIGq)a@dJ*4g#K7#)-?6l$&p~Sf%%#73YGa+@o^{ypAYSzfZb4-A{oiz>`YS1Y zxNZ1HVCZJAJVGw5kJ4MVD6L0dN!^gy4_m2D1tHX5Mo<9vH4m}CumfWd{`+4*iTe=_anMijNXM|)?{|7dTS+FPRbmZ-?V-lLc^y%H_Q>oaUZ z*tHLF>lY=Ht3Pyc=uF};m}*gNJ0rC5uEBN>W}^8Qj549FYknuud_H+R|1_k2Q$eD| zCPYY!msq%~_`j-?&ag|@p6^$F(~+0>=^_n(#CD=z`hB}K%Ys11G z6QC<>2P^C!D(u}oSL=?(pX$WeNy2_?cu>jtY-%a=W_>GzpyA*ltN4ytpf)#g>4}%@ zSE|B{(gnfK2dZpa%%_CTx43c&;pb!hJCL1ny2x>6q3sLq{9W+pha_S{R&iHeD*lw6 z%}#M*@*rvpeuApj0zlYs)M)CYJlFPb_FP-}&5}a!wb3tvkb^#=3M^_zro6n$RiD$o zV|Q6rwdWgAWX1clfn77Q=M4E4 zz=BOG>0(#Xf`$l)4W1LilFB`mv>7h|74Ei0Nymm@$Sz=SIj}vVVCG}kT@@x>T~CdQ z)FnGq2vd!@XTn9v;sB?CYFrd83L(w3PQVbo7-8=Uo^-Giqx-@3AT8*4RopNc?RP}; z+YM*v`dK2VxqrDRmf?CRWX&(wiu~D<*xkA%Hp8`+yX~_H84h2&@B|H;6{_wh_!2!8 zV{ajHlpzwVzlsief!Uco`sZ;Fg8u2Le^#o0R$_mQe}f^(ck7AAxnbg%dD0UPK+SaSGBCfH6vsSt(FTNGD$B2hF`B& z@T(BaAv4^8jXE^~hAX^R&=i7|SZTjxV4!I)pBw?}C$O_aurdRi>A?0lDgtJN8U|Rf z0L(Mjb)!S%AoI^0?^UcxH2G4JBM8y#m6+XN3R7cgYI37jv4qIf)YFYrhDT!3wst^< zF0|=h99~_+dsb6K{y>L}hB=HjkbqdX zLUrZ8bXdh7MDeqV{|d!}m>zWI^2icw|pHeI^D#RM+9I$GrvEol%dd&0m*@0Yh@Dy!CRF%)Qx-^`Q-v zJNRQaln*kyA;IIG_DGlxtx%6>9Yk#o)`{Al(ENIstkZC{9|8KT`q-5m()%Gv4z5B+kA87yh zf7AXK9RHErjK4FmBh7urxA0(wt!BA{88$cSUXfnDN6{$Eli^?QZ=gYy`OK8_1xcu+rn;<^PH`1s$E$oBAeyke)X1jsHN{My= z?f5n{5N)yPdNqP^c;t4v`cJRifkKE5Q2PGDfbQD@D9Ty#8RkcY0Mr}%-|Br3E4OnFnYPK4Ix#_5rg>abvF~O&DyUfn z+z-l^b+V%;jDzAo<0+(gmXMyUKTMXPlA})m=-#hRzwCL~xF0{3vkIt%?c_zbTCHyF z--r|MoAHbzWo1p^qP zNCpfn=oKiSE(ERrk$@0Q>v`2|JzoPtUCWd9D;XItk#<`LP)KhEf4Eaxnf0Goyor18i+8YELD+N!gbP-fsM5E>2C4?VF`@s-8Aa3qUn z3*qg07`-}36|oKOe#NA^YG!2Mut~s!p%vgpwO{J(&j4EQGr z=ud2Ay`g|_11j3MLS7*|!c}d4SfuAJMin z8C98)@JcnNTNQUdrDCb32t)P)F1YO(v)F2&+z+4E0C692@j^^FEcjK$EBIBvDfdf& zXMzLH7m%diC&S-1e!B^&m`xJ8b;%DCbO{p09UH$l?E({TFI`72Hr!mqRCbUYDSv0e z<4>wfUDJhwZD_^jM9XSY5(@{;*_|^q0ChFyM_`2J!9RtRkrFSU#4>_R z#%p@PtmUN;L33(p;P8?zfVCzydoD;YwXShD5X+M|Z8Xl%sUs85jwJk_m9%|SE7r#P zZxmXccw$MWrW*g$+G?h%?dd-1yyHiwO8ZtfeYkZ^^6il?ON|_x{O8Eke;?VLUs}Tm zIsW*>!qOd&ZT>XTd@7dqXg{wexpZ{0y*h~t-BsI=3T#B_r$mYy92S?;4nWn8usHYFCe4s-&+NfcyXuO!ALp!m(+~_fs8UTgmtm^d zjQuG+gd(?O)Wvz`8AM9hYBq^3Rxg*~`aw&^@pM2H8@a}glmGjmV{vv5`of;~A6Lbh zA2*!EFf%SWX{^;cb7-bka9t-{eQsmz7&(|nroSr^x3{%cl_IC7)cOO@-yQO$uJ$Cz z|I)aeB=Ak}!vCULWk$pK@e09(s1pBBt9IBaeo4tf|87@o@cyAX>8h%9KdpxAbXieX zXe1V%a#8CTIu(cV+?z+II-?F};LwV%6D>FM>aaXaeoR6?V z6DM?-qHWeG7j!L>2wh#6o#!l@ihG=XUj^DB?-F{ia&aLjif6ot< z69LiWT@>8k&>KX7?R+ojb1O)1o2AC>0Qj+S1J#vgUYM<$Xaqj!pL5^Hg=*{ivZ_{G zCT?b8f?DUQX%c1k#Qr9uaCQo)S4Eunaw|cp*a|}Pw`i%XOaTR}5Q@$Pc>ni6W`gAxndR6(!=TMNkFRYV|dyq*E1hZv1D zu=^d@ZpTHy3WdvQfB`i)+}=0U!4)46fis*B0xr1Iq2)&p`rc2a4E~Lg{Mj1G4MHl< zWBMBT7p0rU=HRpaMN+5f-7&LFAT)p$1grR@M!^9mwCT_BCgw5C0Kd;}N6`9T>* zAWcVw0*hZZu+G5|Fmx*RPY8xu1ngc1w)LSAumXXN0ZbBqfC;ZaCppjo(YUrEfes2m z56Xfb??BrR=~?P#2xzdOnec{hCu zj*!UfC|+w)PVdVZ?4||RGxZXQ(2tqHHC!dNF>o#=r|%=QdgTYLPA#YB^QLkZ@Tt3; z!~ctNw$7CEh)T`ljX`E`4c%uc3DtzmoJvA*jX!F9P2!2Rn!I*Y{_DH2=E8byEPXq% zXI_%-m#jw?rkv||`=1cMfE=0OMAc}hI5x4cS5-56W{%}!=Pfm<;ak;UI@DsIU+uBg_QIF>APvp3+!b`|lx23c3J>E0V4 zyuVEiLuf1S7$8-C(b2_Pl3LYJJ33k5h-0PktVQsV9x_3P0n47;9jO2yOcuRS_iEZd6ie#8g|{qr*&GyvDzAq6H5W%d4bZ2(>{IaWX&BshWG^ka$n*QT6;+#$uLF|#NLlwBNE5=X zIfo~6VSKaAol~(7wUr*WscB64q)eaO#6b$Ya&E9mZCfDr1i-PdTd6|PV_X^JWO8u5vd7HfWexdK!QHV2|kIO_D{KnwwI{wpvfP#V_PZ-+s@|1RID>{pg~!7 zNAvG!i8WnKHdl8sNR<#D7VCFrgcHT$#QcZFr0aTjJ}K-SU~r6((%~9e*OWcv;&&qW z6$(FmNc;(IHj7nEsG*!>UJz%DF?!+W;j|D-WtKoS1>jS-C^$RJ(fPMvQpO>J)b_mT)QH!kFEhT!K~#2&>nU2A6KQ%+VnkTNdIJCChsAC9CSW= zB_)x}X$?t!y0LtdUd`~5BrNVl5Dp$P>sZ=&xvM`}*!df__jW$&A%ekM^z9HY>R#D- zTkx+RLrodqIrK}+VMBoAJHlh-D-*H``Mpn{g%LAEkfa4U?Lk9%Awjx;l#ha8;{ z-|Fn1v3{lhatefc!Z6X-amvoQQc6~n0K$xHe5{GUY24uSOT+VaFi2km_w8+t-Z+q} zEBLe)s;sAfg#A269;RGJUqEk6Knl?($aWRo()vREX(sy$%xHPHfpr#|+_Wj*#lD7- z^+q3?f{SsMH(Aih89K}t^T8naT=emUzRE=@bYg3$o+bkGgHwc>mRzDLC>OtxKZqZ+ z!0IuIhM1({KeHuJs-nvj*noP-gC=#IC!^&a%~tVWm!Es`XZ#Xd_YTWvy@&bI16IEO zAIeY6xlt6z@$cb!U2(Y$jSWZR{Xh*Q)FCi{vuhZ-4+SZ*rc|l`HjI=q=LW1Wc#&8P z(X+U7Dd{aLDv1ir{}&4hB-4RJYiw9Wck4@E2?bwDI&Tfuo&?Fyh>|>)9;1GU-YVn| z(y*!6PGNOc9>)Z!CkHw%E5g=msiX6e48e2DKkwg_Z~G`yvEN+gnv+w0lJfo7ZvEUY zP?A4D64B??+R)pQ)VR-1^U;{*vzTofZubYYY~B9U&kBro&EE@a3Vd zrT>}2=~l!!uR)V)o|ju+Vh+b^i~p6Xvs`_QKe45khDRd!hWqJh&W*+}7N4N9(KnO)_%a^-qNn*=v9h7RAAi8! z@3;3v(@)6OO`N6;eG{qm)WqT{Bip<+e6?ZOo)AbA`6pOD^U%^|UU;{LYTPv5YOKE* zeRUdzO92UOq^v8L@kJJGHb3mg=Me2?PAODFUs7(-`52R;P=FmR+MVp@S)q|zh03}M zE%xK9D8Usv71@9(ws0GKjenf-PppbqU)G3CPtbY)^@v&9nezd6!c!1@KpHvTih3Dr zgV$2!SmbhKPA2;3ancf))WNP;b7Xscbfh8+8hGknXT;Droxd;K21|%Mb(V5;VCAA< zw8Qe3$3!w4mSa@s$*#_l&Rm-;TVT1Z!?I~Z z{~3FP%(p{5Ws}X*Q?M+F(y$KdWJCAJJK4|^vT+f73XW+8>V0(BAz3^Ptwj@hIIDOb_Rnn*Td zM(I6SX57hK{0EuQR!tL*%-NpMvp(N^^=SS7W1e&Mj=}Bj^XSli{3iVnPIpt0DYSevAV>0TI9g$ID>t&ir&kHJ z-rOmS>AjVbnp%?@9_lg=W9v&3S&&o&b2MJIk;>g zcU;EKw6y%y{;)M$*-3E?TmaZy+6W1}Wd3RvY0H6V&P&cKw<5&=ZE)ZtQj`JIfLy$j z2ot6VyG~A+8!@R#SM3eQ{8q>eLWUe_Du?f;Bxv9S548q`uDJ^wK}*S#oGe;?j)svc zaKiJ$m>7GM1UAn+Xg~5t0qCVU4hajP=q9Bmk!#9keoAn;O7uEk@AkP~6DCeef8?x+ zI?JOTB){vKd`>^;zWjc+a8~<$nCWe2L)PGJT;toTA*R_=5L@Wvf#C_;n6sa0s%KK$4AmrKECx z^pD5N@Uf%O>rSi|k@B0{n_g>eryaMIgYA3ac=m?eiK*Jd=iA=vzmRf@7H0d zR4`nikHSz7{09bSxonT<3)wDGwvI-<>YpD!(tUq2{9fk1>s9{%eXjelEqv@~T-u$u zB7EfB^4>;_H6$2@rYYmgak4@~rNYW}`q-Od^&sz&U-Z0Xn;+;4dgdHu>uA)g{`p0B zy6<0v-*Zs>mOHN>TMG!}$Ud@l?i{i2gxQN<*vs%K5Tw(8aG&(TiJMoO45 zO@0fV(}U(HL6_S(k>G!JL4lX5FDUd!^r0x?xY%@Qg`8bLV0m*vae=GfOWkA7Uh0{G z64Lw;tMfwmJ_dh}C3~q8@>E5p-s!C{QFR#;U8Q2u9b|@hO7K$i3k3i#A25wPSFdE# z&7PJ`5BlfF&vV(7K(-PAknL2LO|P!iOgdR&Okq*MsO6rP6Rp{_L5qpaeUi5qtl>e8 zT4xDrs-E;Old7f$r1>L)USU(0=yUQOOBUD{+01&JNuZTDlZEll)YC#(oe~zpJeHo z>MAnnDy-OUFY2ytK=;S6y5jV0(zaHtny`s5J!?X`Jd>{Jil`f`&3r>sj4JBiEB(4W zP0E@Dc`*XAhd_J-fk3Hvf_F!!pGKfI_6KT61}a<7qzp*9L$d>onb~irWxx5EZ>jj5 zl;cW2Jo~vk^EsP!x9qpqW$@(`+l6`Ontp5MTPl7?w%B#q&qrrI+wiqCoBp;;XBC-> zpZJyr6%q8&?C1OV99(-8gV`{iY!;5)8eLzo#e*Ll&-~UWCA_e-(i?;>`A6Kw;M9#> z36f`hz|CD$Z9JV@s}9P2c&B^*dwvEBO2+$oLfVC4Fj~hB_*0JH5Ja8(ChNORCAt29ka}` znG1uxg%J3$2^=H;AZ0MRg`SSE^yzkD0;T7dnhj<{g?fR2p*DgRyluu^rX=kz&TLXa z?}kc=W29HixGKc>5|8B&${bKS`6pg-Nr+{iZY()1lP)2XJ(!*?oC=NTRx!jal%SQ_ z#GIIr6`ePC3s5lUDzi#yo}nHr3|UhmDwG75{8?>BQnbpZHH_Sndv~r8Wn9*?;9Pgf zKlBt7TW!JBN5IG7As@r;)03ZNGEQ>z0Sxbs|D}Iww(9~OKd_k`{T03@k*}2m7z?j* zzqJx2p!J&v3?#nuzI1e`LH0Arez!%``DYb)+@_g~ZzM!ku>f3bWgj|5n(}AT`i6ap zW`V-WvT%zmbQsBy>s^)NYe7&cTM&c_MO7z9vJw3F>Faj{Jze4upKc`;#j5aIqNHYR z44}Y_t-TI5N-KBK-umJXtPvbHKeep7o{zRaT??r??Ro#@iNY0`D+u!e=Xp8dukl_y z6P2`)>-mUE+Dm*yw?U~6tYwY^x zu<_^BNna!Hm8P`qHL-9^X$@vcEWOe?VbS$*8ZQS_QG=dRMMvR(^pa@!_7AB>Hb>Q8 zL$s`RXN68a$V^ZekC*kPzOMgd=3t9h9~X0q4UzOER+9+C-Qq$?r9+*9;4T1(;=a%V z$tIsj?azJ39fkdG)QN9Nb}^>cX`e%t)y#IuPP+qR(9 zqgU6gMig2_f%Ny(7j#{2-7r^bcGVCLV&&;k>f5Qb7fQt#8-;WS_{qDg*=D?{_sC>T?xo}%^3WBf4hdGy2 zUTlo8UNT<7Scx#QD{SOpH17aR!))WW)cx+o0XjXf{VQ@H}J;dP^_U@3g zexV+Fa|oC1vGqSf%$X2YmWgCe-08L7^hN&sTAIV90@_Ix|Hx8oV1+E>*1GbogH@_c zCA5h>(5cu@q6cD?P-t-H4aUt=A!T}CkLLE|=WtDce_;Q-Sd^K29YP~r2S_x<1kapA zQ!$%-`8CYISP!VSX@LWq{<9*1E|^=#DRg)L%n4L!!`lsVjb;N%aIV-KmZYL}>1;;vNr@DkGv ze6M4COWj#A*pV^ld%DY8prR_pGe$0Vq7TelYbud#(sqXB*O^u7j&K>eLnEUKlDE08 z#MC#h9hKvijI8&`(z>H^nt|d@(J%kd-gDg(kaXIPN^r8=Uie#Uzsajh=p2qyp8ulb z(H5zz7(SvTkKGt zWX)R}$aId&bP_+hzoY4WDy~iqUjh8DGVu2+Ey+zg{f~uP zsrp0rR!cDA>`t_F<^zFSUb&R-b6fK$)O0OFVkc-6?>zor(Ca{ZLLVf zkF+t0Dm3rh9l{5TGM^glMVdVl7J40knMTgw3l0%dqdBrPf_9%81_L4Yf$Q}scmbnkKT|Ou9@xh>Q%^vn_67PHr0!$Q0`Qh z*-GNyQK4Ze_9U7g3@1%SF#cFaK-J;DOx=~$XGeribkk>^2uyd8$)+iP2eeg^ zLaY7%NPUIJ_l))YyPWFMRic=g;j9^{sN;W~Rl?;G6>rPyFz^pma+8f%qMwS5lSeTA zyhi-+?w?6_wKc$-{MU%h@BF=6aZ!(-{hhNBtjQE;V*sUgz7>3OzUx+Qf1!V)8Q-Gs z>nroArmECK;-^L0J$?=eJ)n8)D_~ zT70%4&rWd$=%5v>!d+;|=qpDYq{YUoya@9vRXHUaNbo8*Yzg(OWqLt0G{P3Ix~7}X ze2zw@*}5Y_=Fl%OXM%>n-1!9+a4DCz&?Z{CFh3K|dSk~yy`5~&#fPN$wRN&~YMcA` zPfN715?dZIyU};EK@4jRLiVOP#aQMNyD(N=(xtoLL$lk4sh^M{i1R~;5m5*;%zs3R z8=uWyt3S|2!Hj*pH`QWHnt6QFwz)IJrw~MuYrLpk=Or2TrPbb+z1lI-8Atv|^ep~7 zR9Z$`tg!=OIu=1MY@9`jIb4lPIRhW8l!_SkbN!^Iaq8*%L=y}7q@BHJgA_YQwQ#H; z8$@Xl2O>0X#+)XI2mqaWAcf9|AZ4GonO7bsPvdu5V&T;nCl+3J@iv<)Td%&DREYP5 z`YI5^4zx-~9HgI$4T+|2q`yM&tmIqCku?Ws_E$@Wsw$wI%V z7YSIl`l{8WuQXgFXX#Z{fW94i#+J#{P#XWde6rQaFTkn~<65Gr*oK#3Cmb!hjyRDY z?z2ub{et8Z{Gn#hLsIrbey$ej*nq|^Ncw^Gf|-z!APfrk&z#0FThrVt)I1Yv&b)Y= zZ(GlVn5w+0n0_+w!=tR4kMyHz4pZ%^;ftVT`6nSIwH4b-_D7{2SCVlxu2Xg9XROMD zkWyUr5OU1cu9fui|6@Wf{aA$L=57)3MP9N*Y&a%Dz&h(HvoRY3(JlDc0G}onx(8Zdvybx03XQY z4jEaGOXF{{N(;_{AKM0b_S0S4)fxEo_bBb|3eU)`aIrq7erpw8Xn@0^sYb`aAs{@> z25q2c%F}xR7TkKKYE^jj&n?%=w2qbvuFEFhq}RWWl|pwmr}g=CA;vE%BIV01lzz{= zGnzfI*5pqFgdrP6_M#M-&e6YL1vDZ6)TtOGr^cLdb7oa`Ky=oEj216%$-k%|%A zUcncw4nH?E@8H0m-U4hHV8Kw=$kEZ`pY~QEuT3#BOTXI@f^0ZyILO8T7xk?4GA$>i z;;-2$_LwSa`XFV#*=0_}Z`k6~Wcw5xP|8>|HM5$u#dxH7VD9)Tf)92v%!%g5`K)7D zEkI9x9H*5Ur z;%Ygy+CPquPQF@=>h*_pY}m0^O&%I(*vooKzFCbeTa!Fxn)3kA|7-H_X3Bs6*g=rO zp{N=R0k$2{x%k@IBGPyujof5v3 z6um+fIQ{2_f)_5oOZ%{ktI>)=P3XmyD{|<(Sb)(}AoPws}dq=|@cl_};e>z-@y8cVP^MT{_Wxi3v_EhQ3y0E8a=8ybNBR&n%V=P5!XD_cg>`Tfoh(4X1g@ z6OdW{t1W2m?GGEyH>EQK_5F9V)oj=GB>Yrc5VZW$P5!_{i?e@lqo%%Gp8Mr?#+IVD z)(U~i1+0mniB2qtgj6U?c}|w}xiUO`nqvy)+iQ$JYmbP~vqWU?jl>4ui+e^9iQN;> zKKMtNv+a9RT<#nVY%9e8(=b|dvNM{rF^j8uT8_@}QZI+ti%oC0_Xo~<&)J_{ zVlJD~{Oy&a`6XWcf%SYO0<%B{Dsxf*Miux)=PJvphKt!s=NFw~Aa&xx5gwaY*#GKM z3Q5_H6pGBu1ifU&;eGd~j?>@_A{@h%{W2@}%af+{hwF=LCw<1!`vGE6Eli8)DqCRs2IcKWKK*Mz(oZIGjSLVg$ zQh_`XJF5t2ViQ=b%y;V#OFTQdfTgeoP7b-QZ)N$$MDucqQN>r2c5C1~yUC<|ISHDr ziR5ZnZdH#d?!o27*KQnDMxM)xKG~TQkli{6_8=F}9>8 z?^N@fHsv+!NCZ^CGwu=&l&dUUizSYSZLIkND;e577e8);)Vfd9Itb8trzj8nh@GB{lM{{#nQu6r&TUt=dwgp-4Tpd4I%nHxa{u9zymbCpbitVI{y7DNf zm(`d|F4`HHywY?`bb#t1pM#uyR!Tm@{ai2vacw7bqr~t;KJUrOr=}f==BxiZ`79IF zgLj^G@`)@u`J{9%h#zPM;L}zCWw7@l*-FZ6`&TEE9--R+&0%pO$@u5sjZwO^-OjM@+d4S2( z=lc1NGF75nKOj?*P-JSS6HKPAV)IK{r_OXsR1bOjeoK9qig~wDy@>Sri!e78d+yfo zy{p`bMuFOo_{DcONQCC^p%~y^>YGRW^Pe?@Ig@a(9J6-aF0xVQ%oe*BuCCZ0c!dE@ zERh+syKuog9j}#Qf7q$^X<8Z9ZlYx+60C{yL@zlJ#cB6Z$PJ@ms{)-8F5)GczlX|x z?8;S|ur(x5HPfQ12Hw?L%l^)G5s6%3H$D7Q2K#rJ+Fq2jU)zmlR-Zrb5sJm-C_blV zmnl$`s_8FQ|Glm(6D;#B6aWp~7NiRe4m&LbE)FK#Eo5VNtVAZ;8b;|$iQlSf!Nd(9 zsWZBg^G$(nWc4uk;SU=9Uh1#*-rQs@72Wy7s`?eP9L)Z02QiR zB_Ip(#rDt#KOXR|V=j`h?JOboISIrYKs4gEPF5c-mjxPoLn&2p!*TU)ZD1}@9hYP4f2E{fm-`(m>t2@1p7 zU?&a&NpEfa1kK|lM9$$S|4oMUD~P-qFHYh#XKCINHeC-`aN-X1k&mRoJ9@kCfyQp;Z7dl!Ug&{5Q%{~^g()^LKjfPRDv)lOFSgbT+Bl7J8WK<3~|F&GAvFp^rd&pzQ7$ADXiQ0#mo zEGff)Yb|V%!WE*M$r@B`4;i|kakr|lrylfJx+OhQvEmFmuRLolU3znf-Wx+5aZFzn zqc8qxU!ckFo)_X!41LktkB?j7^hKuO$ctt-W-?`L&{Mz3cJrKT9#XNc=rLdWfMKxk z0#ma|@;YIb2+Vpvtkcpu7X-D1w0So=RHV&4+PhYIXN&n@IqOY*aWp2HKc=?Ejd=NA z6=Cd@1n5kip5wp>1&^m<-{{gAG3?%jMxlpzw;uT?eL!F8$7JCpONiaej~_qzjh;Pn zgi_iXBn#IHl6&g)qoOa6n88rDG{~1T!Y>Y!CR@2wzw6l}FU@|r9~N!5N&XTVAt$L# zf-XJZjafAq!}<_T^)UsVTN*~OMCK-Nwdh3rXTdPGSb)Ojn?mG%`8#X(mAqTKf2t3D z{9OH5yPGW`b}>K1tG?dd2b?B4Rw-?`Mw9VTg5=U_{ixlSA#`?{4vG7QiLS|W-xEdD zWa|SFB{U`bWRXOkSU^GbiqTs!eW;h%+-o&u0k@hP-o%kxBpq*b*CR_>HE3#14u6wd`E11e)JD)H|-r_JJO^z({j4{ z2K$ns{RQtZSS%(vos)c`l7C9_3pvR{Np@F0XF0W}lF;~F=(FY4foXTFiEQa3#L`rJ zYEBVfz70HjqATd=3sYwsQ+v?=4{Ae?@i#WuigCj&GYNdFeo?7vT-7if1+l$-rhiF; znLw^*M~AqtOYBIY$k6G6&|za_20{ADU-lBQG~{T+I2jBrAM25!a6`}sWjna7HH6ivuzc_2X2)2*4$_b3%O9c{rJy2NF_gO8wx4C-Cog+ZlpEc?xDOxbr23B zO`Cc*Y=v^Glmx`S?;mNKxo=K7%i6ZJ+IEPwEvG$Gi1^vEKWdb0VwDc8s4-Qul-AZr z6GlYS>xzs*=DPXN)=h(Z3h1wQb<^;_uCMohtZ(t=p7l+3^&Rk^>PyV&n{VEPs?HD1Vj4q_2%Pv5c;~1%)!p`DBBT$A%C3 zUTqoCMopVa5;w?ck-gN9MUk7ElwbyjD5wtEeI&*2j&wb`Tom$fej-e)JMvJ1w*1*H z&dktWK0kkjKX9uhXa}a4J6e&<2xIjQBsE}#KP>ozt*Inh{;J-W?1!!v{!JV58m<6z z9-w~FB7j1tH$e|LTVqd=f=#juz3ECobfoiq6@VPqF}RGi=zIG>|1^El^=Ii55N5lJ zsZEV}|HvjjMrD64R%NGkS9X}Itjbl!a!mXwKsx8qA0OetsBDElm?UB_cohMNV!Ihk~+ib{7UUvhQ20o@#oJi^9oPS;j5^)J#?7+I659LzbL z;^x!_7nF7$+PM=E>6h9ZrDAHSVZ+4tD?)EW-$DEe}d4H<_*(s4UO zN%mjs2a_$9KF&oTpSgQPpt3jQxlWBb`E~fd$eFOJ)r8{3E@J*C+2;Q_<0|gV(gEK)VGhmQ4SU8E1Lk zBK_rT=R?bdNcb{`dOL6bf$`*z;!^IJQ+}*%C!sDxG+n)4AT%Tx8BS#}?D>zru7QFl zmM-D0z3EXCvsz+N`KU+v2y5M?KYH{kNiN}+PKkE+J=mmvuFz7CqrWRFsgCit(hGlU z!{0jlg))@MiIExf!fTc%Ford8o@H=PZz#NT_b{4E-x0JG?J@zeLl^TWc6PfsPwV!6 zbaPk0Oh?m_<1>i|{aPJTkWD(A@@NY0d_2p$TzaOOOF6=$%Uua@mK4dXPb~x>`569e zUQ?N0PKf1H8lmxp(D)+o2TNOBVHPq22B4ZVsKd!dDJ)SE55;;2-Wl!o#FYp@PPRMS z)C4BYV;^zm2qwS=6sFAxka6m!^qcT>@oQ?5a8Zg^zoQ6@9=e)}Mp(-7f+GlKkr)nE z|EaV*kf&;cOBI7F?No1m#62{)6>R*jg?N1p9kP50MR~vR=Ne#|OFb1u1jj@xvbnU@ z-fs%4xT&;G@2Q&{oSHMQOAQT)HfynHxhVMSFzdm;>jj$|;Z`nx$Mvu$QnBf;g#10` zVMm-2<95UP?&h#3wLKI@^oU|etSyi>c2p+!K59$W00|DG`p)Jp_+OUg{{Rhvvp%&p z!GCKj{C90`cJk2Drmd50G|TAYWF)@h??Z0x@bi3{FByPIm2}1Hk^HcTS&LQjB5~ES zan9N;Q%Hdt;d)DIIu{t`2-&^|g+iv@8D2(BJOKf|D-tboi;6i;V9{DgAU*VlC9v+q z9ul~72IsZE%#pwaDisNY7$(5Zwq~;)MXMwKfb_kD7bh!yCNk=rhlQy~AKDIX@eoRs zKJVQ9SsLheM-=0t`uMb$Lm4>FWFVJ@!HtKS#!ku?lp%oHouPocV6r4^LWv%N<3b9Q zr8jEiJDo6VAEKe1nCfrrs^87K(_7E2!5Q`}PuzSyfaxQpU$`{%@4^4zSvNmqjyBoC z-k&EqYWj4%l*L#n3;x6kGwr$R7ty55#5Rl-A=Nm-EZ%Kh|@Jr zwLQ+Y(k|HoO!)yWmroLiA-9w~r3tJiPP+IIW5 zID|V#czJ{_e#`!Wch~@sns1pQvR6a=YgkCbi@_xax*>{~*bQv_lG4OMlDPSO`43nQ z^qRiqN}1*MHteKVWi?WdkCI-Kir@MYy8`?%$?s^WL#S0596|_eHOB`i z{_Jw4fa#eNHCJ?tx(7Mw zZ*ok1e`?nejAJ}3ld)cESb~Iz3EW&3S|_RaGN}tp)G@ksF&xWj;Ed7!AuZq3@8Rd) zNqlqDW)RD#>^s+QcK7Js@-8fC`G$x@wym^0E&dQ9?5wKO^6mQW?!u-&jb3VmQiSQa z(<_*ka%R?J5(NC^uxiG!{(!mOh3_h|;}&PgaZ}Ys*p`NE?7`dE2gq4uNHkesUuxJ@ z&+gc(wf}Zr>coPukm)Z@KRH{>^;K+)=%tyX<9>ygx@VX0eQSOpcFf9lq@`Ne-1brghA=1t%uYUR_wtwdJ6*uW9_Sbe%~PcEMST)gu=LcMx4q z+}thp6Ot;uN;1RZWi-le0BsKnju$kaF6VfvCi9a}-;V1F?kvmT{1~zj+~|lv6B>A>qoz@Rov#Fw99U}L^GE{8 ztCai*)?@l5?fD>l?UP8=*2?#fwUXTyo9Uc|>CSj<{|5p~p!p`&p3rgcq>oVnO`8g* zYyP2z3o`j?=eppWuTim&FwxJb*lzu5>)i@PrA-9{aiJAw`tNvMuX*cN5BX-j9RbtO zuWQN5f4JxR|M6G7ay0PCjn!_JQ@wg!txvo_5Itbra90?t~j{ELFUMw8o*y}MLF9So5dX#6`+Qi4D!Pf)9r>qrUa z2sRbFZ0CqPmx4?%uu2>Z-o$cD4^gAK+XMZlT#`G#b;oKKcq8(l+T=m_0{$e|jo+_b zUMh@{>M|Z0cJ{j3G-`x^limt;+Sdd{R?Ul|0sXt66L0ba+T5gNub+TGXA?q@TmQAW zwnc9J2T}j%Nd3oH{pc9{NLwPYDwwxV7KtUFyLqECE(&gOhrJebvVlB1`oH=GG`S+n z=ukkR_%ekXV}>#FBRDY+36CvQQuf@W*v|~&6t`_7mUJIWXt)?QNxoDAd1ADvIAx!r-x&4M&J5G5E$D)!}YyK@=cJ%d2NdsehcCHv2; zoNsx)M(3ZdJjnrXavY28!d&tK#Xb8o4-bsD^}Kz=QB2A`v#r8BX=^#)yy@(7ga({ z>bN}is!lzkCfO7ww<@_}$>b8-bersVxaaqU6Ni&CUi%oOCi~(pEY4dLEZ@^q)-ikO zM`^v}g63~f_!&L+#2j|_#DBGr$c>+%HI*C)xx=QLaR(`B@ z#ieRBB2&op7ddN280lZ+*ctUHEGQx)h~u43OM~H#8bzPdbeoQB(Kye7akmfGJqGqM z7QKTfpQ>vK=;|&rcmq=cfm-(~(OXtOof+E9YZDgWR}wrfh*a$Smm?Btg8YmI9!jJ( zy6ABy8Cb`^B4D;an+n0o3~UbvR=p?!RzO|BxDX7TLTMY^=(RYi7i>4!(IFVb1MGYU z*89asX{Hy70SlVIJoqOD3+NvkofX@Z^Iu>RjJ4*AArxm0DJa|(JWnB>Z+ybrXKZF` zl-L#A=gK=X>YcF}=`YnX^1x9rJKSORlNWkoHZufs^Wb!0_o}Pw@^>SJ zm;rdkaP@?6eCp9(KN9D1M1nEYxN6GUHD(N4!zr73T);l-hbE2#N`pPF!umpGu<}^n zw`oJ4`dHJ3{02^E(9|o*&EI^Ba}X`Kl zq^A4rG)+>n-yVrYzb&7tH@V4E+Igm4!k)|Yk+3Ery8Y91fd4&S@E(nQIronQ?_hi* z6U(2A(AC7|gBqw_Q{`}>1+CIis0h;yu)j?6MI)6a9u=z-saFi(YJ>z6QcLRed~Jb9 z+@iR>8ozM?05uhh63wmlP6xENgLw;1b$A@K1s-RBha+baS?Y9S>GoTI9TI}MKC>9G z;1(5$su`ToIVE1|T+=x;M-GD>m4i!a@az8M5coYz+*j>-| zB-w9Hq}E-m)(O}LO}f(KS_gb%6k$^tvjqI9zQTF0^UBLvfq1buE6vAv7yg=_1gaSaJWPV4V`q@ zExVGF&c@(~U8R0haPYYym9?Nt>`T~?ZvB+mp_A!PPTuTjHGDmj6LwOAU$s5m2>r4s zczc(KeuEz9RLvWphoa@f(gbQaz33!y%_5TAh5|wn~l8Op7Xw;~vsHmV)gP@KY zHCSyCQBhn_u~JA76)-UgWPBY3#frOiXbzURL0 z%sT2pets!by7rlcBZ_;vW_GbF z^fkg(f!++u$li{%mkPHtbv}`v?c3vu6BFX%a2=61+c(U*Qek3?m@0LtLc{g`5>W0= z9i*nceNHRk8DNsGe$zo_QfK-BwbT54w}xfOd9xkQEi3AuVwz*Y{<%jD;zC)?7tbyx zj~KMF2q#+Q5msD}wjQz7L%j0;*G)A*9TKVEdkhsBL2(W%hG(xX@MIF7-7MP%UR`g7 z-NaN%$iY>*OBT_Puesx0W}^?U-M{3F4}qOJ!TfkBB>mB9wz{N;-g=}W_>=}Vl~Fi8j_x4+v7y%*-58P9D(pi&0^5LFHxvF&EP z9cHOCi%zHER#U7Ha6F_K|%h@|!I|mGBIi%~y z@td5nO3fD87uE&QJXH-h;q^JMp$9J$Lc_`IP}uIfZuKMN{%yUC8j|xybKvc3^%MDj zR;pt$gApPzg2cY2Ox=?$e(>}r7-wgXCOVHmDpc4&P$V*)vS2;3la-a`)^u;^?!59g6rp1N|DC(jXw%0v>kIIEss`yd<9~yS z{`1P&e27~pOUIJ)=2WFf){eUsyw9ihPMCltaP6w>XkQ5Y<^c*4Up`!30yAidagYf^ zfGuw%oleR4+RUA^H7mhTo0n=hIdeUU&1?SMuwm3pZh`xDUjdWo6Zag7QC$hPjr$(! zF*P>PMpI%uw-t)Y{Zk(^iT-hmdm|Nj7TxZakV>P~t6zyufB5H6K5smPKYjMIl5^wB zVC5?L;O?d-=)nM9aULTR`wwoPwtH$U$3B18$hTy(1Xn7v+0o`ne3xVL2qFyjzp=Hm zVK{Qu3QV==KEvR``i;fJ1LW@MnSLV6*%)R;GCEtT>O_JdBt_GcqRgVz9a~g#_v+C@ z=W8Uc?&!nc`U8e$rkqC$-E-G-MC|qZbJk68%x0XRs>2Y{eLNG|6z((JnCdre_BYV7 zXF$8*>5kmOgLYq-`-|IcQ}vO{mHP`40@DP9{&fY!o%SY-b)O=~iZ}O0=n-2E@+E6o zzGz)K&9-LMi9{rs3e=g6o}8uj!^M=k$UpSGlWQK5C=v;*(}-i_Z(uwvwa4}+S)P@^#e zfH3qUuW7-1;rgJcqeOp&kQ5@2vug8Cc_<6xJMPbY9neylm_K*QHc)!TQ~KQWadjm> zjQUFbGV1;BROC)ayH<9*KNr^x*^Nl0C6-gc&qAS_>ATcB-QK=t>vq?-+miM*>uGG+ zO4E6xSZM*@mCQE=FPetT+k<1hIG3I?dz$~*t=s3R<)5a~Kk%*L<5cq#1gtC~-_%za z6@BIlsf>mJYLL-jpfx=yh!>@o5Et@q5P}2vMUa%`Jk{d(rsRx!DG$lUh-8E&=nr%@ z&J0~qh>5xfBs*k)MS`kaOd%$9z1T)fme!!uvOxC4(n)dyBB^buyQLe-B1k;MM`0)_ zSFA-&$ofQsjPqP(Pr)X7L5;!R?m+gfh!1!fn1@9?3p4mQHrg-A1Je9+%RVr=k9s5= zKuGM^vZKG*7;wih;3VWeycHes8cx-%~M&r-jM>cW|Ot%*# z<3D`nmb+rJ0(1rb2r|1*Xi+7a*L+P3PbSgva4g#f$~LvX(Pys^v@K$wQ8V!&s^;o_ z_;U+ca*w)=Rzb-t1;HE9>r-DA4YOiz; zPVM|B894u4m(D533BBueX>ZIzMK!{66?QdK6={80?QeQ3q~Tl5j*(U#lVE3f%IV_4o%xn5E( z2vu$pWsO&;_uUbz%xL--vbik>nwyr6vA)MH#t^<}@|oRBU?qNLV4di}n({%cCi9b> zR@C53-{4mNiDi>8aled1f3nZD#adwX7Ff+RML!L!57}s_?qEvhahIPRXU~`NYW{u; z_WbB6y}E^EyF|}VHx`aSR-#Av$kBg8uJ#AKva@E$JD+Uqw?frs5-;-XL#|oQbyxq< zFSo3_y((I9UtwM_i$oxM|E3$p(Y)DT7AC@>gf8Oe$=k!r&}6(s4}aV*G01`*Rp~_H zD$IN;D`k`uNc+u881zr7ilXw#8M})Aiu^&yqTT?H+j$H9U`3yz!GY)F>FK{R-WTV= zYqAU^^B4~0?%|C*M)|G@wuGA{@`O$j$ER%seK%@-zs2=M6?x-Couvkis)C++&FGY`=|{>ZUcW2Sxog#6^am$v z!6LAV=#`vtyXSwnH8RP_P;jZ(>~?_Q%d34o)c7w@PALSe!8gMCZtPtLV}tG#wn8z^ zI~I!q3Jnk~7|8dE{l^?Et zx!(`zfpdL$%h0L!MzmoBtb;7W*_A6s^M<24i1i1FD;b&aD?pFn;b`!PK2o$h=Nksc z@#%Oz{i@WG6U$5iD${}Gg#riKguW*Bfhqk^qVj|nM8J|P8{|9Poi?Kg-%_7O>IF#p6-3`GT*jBd&sie;&@ zq=zNtuzopW81~^@!|>xEZ2xmN+Q2eQ;dwp#erZ)BjifSj>^Cgp&ZM4TPSwpy;=H6* z87o{2blYWYxLI1y;Z^EnCee6?+EWaxVs}Hs^z86sbrA0E8N1NB>H8b!6?MZKy@&J? zvxFFJdQu2R&RcMA;z9w#^B6TUCT!$%KI)L6Wq#94p1LMKVE^&Lf&Tmi0Z2;GkOtrw zo0rE4qJ;cF^>a2U6?X%AivpGS4q5}{F^=Y_5@VS2N8r||C2%r8p9DTu)NUZ6#gBoI!sHf?z?=0?N}Nxg!l$uAIKtcg zmM3w`bkDgXVaDGZ(`e=n=Z*>4ut^^g4y+O{Z{URd#C@e=U#VoylMmSpI>YcGTkK{Z z{a!{1pDC%PCmU(am`NP_+^Or}*aiA%LWwP1-E+U!MnD_mMKxp+kG~K@JPvQ}Z?6>M zW7swRgQVjD8swTfC?}^O*Jk}f38naA{DHYtqdgN+j!1n3UwL@Tkv|sfahO9I+;3D4mX{*e}w)yrd%)R zpYOU)8XkWfPaaZDw&s zKlw_u-;T5iKJ9l!X|J6Xg?7Omy$faDL$rXmkDtaey`;e6|E>M~eH%lH+PE4uO#78S ztzS{v@juf3Sl|Bm|FQk?Z(0A((NCfOzWq9%Hlir)wKIRD|C{>$Fa6*8-`}^fOHmtF z%W)Yb%6;0#MQO+XNc&@b`{Vz|_NTsS{hy|vLjQgHV|?1lMQN{%`;q<=D~7)4CO<9seWkkM-@3|H<}ug#Y1L&1c|${v?LS4=vtK z8$XCLX3Dyc=b16g(3E2137udi&HfJ!0VKQR0+rJb$ptSGXmpRoY~gtJD^(~<#w-i^ z*B(~@N zk6xM=^<;kq5&GXZkull4l|E+ndUmGn=jii`RPyhy`CSvb#VhDDSAqV>dt%<_^l$xU z+TQ8WbNbs(!w{eucCch-1gqg6^$;;USQnpZqA&934}KE`zr=0cPmLv3#CN?&*ScTq zL;|#cDo{X|_>t|jxiOR{lx;Omu8?G8+rno%@upZd^F=NTvsGGcU+iGDU3pb38+|Kr zcaqI*=0SQP9*kwi-QAlT`}RsV7#7Mzpc>k!mA&@D6L^A+rbZ@n-gCscmZ2NP=O0sHx4={xGN( zW3i1)M`%W%tLAa$l_KDe2<9vkU`J%Gx8K_I^;M0Qk9AD#gsII`Odwxvnr$72ggS6! zDu_(aW7;v-Mz`1K5PDfh9RIQWht%LNlbOpX>^)eSzBiggeQ2ejfFP^y%b3#cH~bXM6P#2VGLE?|Oii-GRJpM%jFyQaakFs#YY{ zVG)ckg%oL+x_yuF(d5;#d>{elyt>CU$*!~WxMxIj#AwA2O?KqN&hW~c0L>rm)k=RJ z;p4J5#9ZKk4iT-SJBT!q6@gM9+OybT1KFC1wUE27aI}StFZp4UKi0YJqjs|Q+3=~j zT^~fs>(@m}^#xMm<-g2Aeh3!PaBLPIK!jCmkj1Okc#??lgI`L{l+_E0Rg9HzS+Rm? zLdf9ho*G?aQi0tLE2NFXAyOUmeZ5gm!1Jm(WO_;}{hR8b;%WPGTs7`LjQ{hif8w-C z9rqiaRH@^B{VA1jP1SwIE#XjWdh%vonN!K>Bs96pJr4j55aw=7r3aFNd(}NxNHGXW z&YopNk|!~tHcky`;_IY?nJeA}4zNwz zt*ZZ!nsQyM=Vs%wZ;)R>FRE|n)XPj;NhJ^tZl8E%Dq*5@J4sS5-)LSqAiFo+b1zx_ z?kM}&y)!$AM)}#@n8oX;?Aff2y9`J8WP9@zS=a@6i@bAQ-eo}r^3D(Pd;Huq6aEH| zRox8eso;=G;j{H_(cNh78^2G?flcbc|gomhPkjJ`o_`nT1!=}&S^UhHVCuj#QBo6fj~tP9xrbfiOEHX_{)K)J-4DMSitbCpd0P!! zQqD)}Z8t(?uJ^wnYKlbCn3nZ}A-^;j59UnV&SdMupeU98HA8dP ziNjT?tdRpx7yKSjogC5J@tG{&&t&<2=Bfy2weg7+D2u}wO9MArA z@L?9`mI^}7YTh^ zhS^i}rBD3JFnzh;QAEPmkw_?vP{j+bJ>Pk9dCZ*r1(mrA@HE1zdr}Sao&Q$;x%gfJ zW=bV)Utj*qM}Bg?B--Gx!Wfj&)?sPG#k_Lg39+u~)o3PUT3tK8bdE^{nE)vYX=UZ2 z%aP4dkY-eoOjB_~X=oxD1jv7q1 zwkU~l#_@o^J&CeVu0|BKxfV~1t;O@Z$HBr8@_!AlL`siQWw4uhJ;m&L<5Q`7i$$~8 z?9EtQZ1dMP&o*=c@cl82g-KriX&v)9y9=+Y3pZSR0EEyXO8|=vab#n)c@>RFIu(w- z+m=Jl=h98<`Fstp2+o4P6vIAcDCMEf9x{DL^pYn_N}shWKTHwUDI2S9&hc#cW-~*j z&X6-N8faiZ)xae(wbH$+I+qDG<$9;M&4g|3Akq5*jejr~O^*v+J$LDm9#vLN@4VDb zA66QaeRiJ7tX{T0lwOv#<9#xR(aUHyapX*u_L82PGU&{ps8=<S9fh6N?&wHWJBB&ZZs!*|%17Y=kje##yOpbLRMomV z+OtbX4=_6--qF(t%rA7*?fq9|NV}$SMdLp?V+~Dp@tOEG{qD5ZTLj9QjWv=Ji!(9N z!unl_>qJ1fvvACWfXZJjrV_fv*GGNxAKwSgSFU8fw~M>iS9RlzSXGFC68Dg*+S;m; zYL+c1%(U1qQMRMS~D&QKx+j>T^Dbr;Tpsd;6T1@ zW&Zw5n6~U1KWQX!tz4Bj_|=fxnq(}<4!w{sBt_GcqRb+%h3jFvaU3?WR-^PQE9cMR zVLiG9dp$Ktn7FXgE+bGFG1p>M=G%E0TBriVk`^7q=Jf>$=9Nq-F${@I)$a_MD_*^ep-UQpH7qjOt#)*=&@M7p_Ju6l7ENfyt;mhnoe74P4A%M zaphmpaH2nE)3P#KEPE~8g+L{j>Wd=9N@r)>6!Y;?2iyXjW& znGFyB>k*In6G9zZBLKl$kSaGaUoOUk;)jidI;@j$2qqjs(`B=ZjYtn@h@?Y zA_*|x>V4@0*J}PkmHwwvf3*1}pV9oDzJjW?n%`Fy+)k=1_gOxR2f&%nadTz4*xE4c zE2^Z;Bp1vHmo_f3ZZn5>{~!)cJX7Pb5U%`|x)-R(9iUe3QV!0!Z;bWS@NmDf^zks9 zcYiDuk0vl?t;BukQ=hprmI}#;pY+Y|^A{A|Hg@Uhx|DtE!s-1|s5{0vBm079y$Gwe zPGJRlZ5(D0LG$0dzKo1_BsOBE)a!bdMk7;34<_h{7cZ4C!1P~E48)s@YbuFI(V?R? zCTUI9^^Qk>+4?n~$5V!BEq@YM9ui8RZSM8Pw2#Y)R5<;E_44c8^eSb&+KlyH@nzT$ zf`IR+olB$d1;Z#)arLjrjE=-2HsNayN^v^sV1N)o0+_n_p6+pVq(+;GNQ^+S-(q~b zdrOTGPPigQDMmi_Ph^^?W&vuA;s5pq%{kLz1&r{`B)Ctgu3&=Lp1Ot9M&$a29gTXj ztXw2f(4ic^&mFFL9U7500=j?(i+5(SE&FhgP)g7B2iR&D{-zv257e7w%E9o(F(zzX z20f$cz~EOW9-9g#K7i6-C>@$&bKE$fMuiR?BhXVB z5-I3TyUP#JY|n?U6D<&ZxC(#I%TyUHR-MizXh}3rb+BdyRulj#YXDv zcXqth4CrW78fu00E!kU{#PYwyU^NxGoq95hRBRu#X^H!a&4N7Ja+l*-LZH%?Y&x1$ zouTP@*|eF&eK*FcGwJyf7;{6_SY*l_gHGkypqOj*(Yx#k=zCwEQNN?Hw|@D@84i_& zM|Ib}W)kDZVaP!{WK5~Py5m`?0fwqG{df0$oo@V{c9t%Xn%;Xcp(1Y0L*!ezE4Ai3 z5hQ-&b9|V4-3_vEYYjt1K;Q}0O^sKo!ps9|8ee)cmA=@JPI%#^WDf;l-{O!=>#ati8%9pm?YufKkeOROe;<-&dtb1J? zgB9sQJieJWp&V81p=9c=KAfXcYB44eYGM*$P%4;fJSpSV{YB6cmKGm4Fa`Jfgtmnr z>?yB=_gX94%A&vwoEF^G*<$A#GjST^pzQKNTEiDffx9ZEKL4_O$7%G-=Mv%wrbnd z;2)B$gnqMwuzT`StsuC+X*_2VXU63{vV{9@0p9HXv;-Y)U_z2V zf7`7jJBE~0Fl<23xR9O-d&BtRuY0lmP?^MylVijX)4PYDlG|F?%2zh~8}I4;KVWC^ zC$!5QKSbycuXNOJG<(J3?`JA^?NELT|cq%GOHb2JX<&F_-q ze)MWtE33=1&&vM4a+OK%kJ$l~J&zCJuq@W^@J!wsLQ~3kKqK~IK-gq}(;#$(UA1A} zn^nQASLl8)S61YXt2h>C?F2{r;c6P#vYt<+WSE4vr9A2tWR6zs{yIKOigGKUY^6!4CyAprJd-{{}+CBqL){)z0 z>49~D-eHcV(XRifS=LL|oFWd!C_ChE$xy1xEq52*2Er%9K$zoThR&{-nHJBeWOCF9K%`hA+F3Nh_cW;Va@NTjr=p zFx#|6aE%mND!5-p>!Nb#foGOb7KSIi&o?~E-*=J`)+^~XP)oeY^u-w zr5OFi{>ruLKhf8J)LQkQruvsDwNU@=|GoY*i{TF)*qqq%H6xym^sSF|#B|NSQR425 z;)a&^%v&&NOQjL)lE`K_$v$%Xk{Q0f^$+y6sknd18QS>)3^mf{K4kZcWI2>MJ-I9E zwl%%)5)2g@Rt%BdR?#~zsr*|7mDM61nJ-( z2IzsYzthfEq?KJ&RK6L1X)^JTy*A?a#CFn_O-?A=F1s&O!XgsvnvdB02i$FOtVC;h@rQYnJW74dO85?dD_klmuXsvAGk}3 zou0<*^EZ0=)(Jy4eEC*M&EDEyt?SOBE!OL^#k%>40jTA@QuEI^-TzCi&JhaJJ=}d= z34bqm7CG_FJ8kbS{Aj(iR}g})F_?aC$K}oK1At-gRHoOw)be+@>^5__KI|jM&rUW5 zL?et;Ls7XNTz63s?(vg4A#w7?h6iEcje#41-%lYzdE$PacV9||B@@epgye}!^fKv7 z5-VCPBV|ciDzvDg^DOCiDyRK8J*ScQ1m%|LWh#jypSJ3HhSjC8GIe=^`z=vlu;CLE zVw`1c*dR0JZKdWR_V<5e5}CC!rQ^h@-4i2Zmb2eV;`!}^rAxUts4;t z;^)GkEeJrS$)9=u`RBsxy7$S5BdbV8XHTuFX5oru?6<}I;WGA-az^N;jUe=BcRVpx zx&35w#q`5c^PdeHPpy83SU+~(_PHXp{5{B?+VNG6&_fMNI5vNO>ZH@!YWonJ`NM`2 zf39Ot(`?0E71eanJe`?9uJagn!>$)!+G<%wMe;(@gmBhQ^C{k)!qKKLxX)IYiEyU> zd4eOyv;Tr>1?2Elz>nnR$YOcpMLRpJH}rO7oWp3aYYcwYitXD|>4hies+N>N<3W7*UPN z47iiL;{NQ+uGxMbW`j4#HppjtZLMs0YCGMiaLEgDkoS5%NhVjCuf*MZ4P6?Pw`RNW zUvh@6%@oD3y9)>!1NLLqYOTqtHcZpdo_fn9c3&&os4yEiB3mz?t>;?VRNmdFwh9ub zb1u-1ib1;;yqp3r{MQNpDdArswc!*98bErjh_Yj`X{1DzsMV3EJ-56>2c@{btdum- zs7_q}8*KkfV#t8dyF2{qq6iF~7WNnhPIG(rv^^9xQ=?|I<@pn<xKb&eG?WhUqe#Qt39mdbYtk#yn)o0;YdDiN6Qw?xR$9nMwO_LKuI=S>;TkHKzpL zt9BE-*beT&=Q}$UV<$VyEq>f4&zIMR>-!8O6<|H!e!n7K9+VvjELyB3s)@xQgD-J%^j_xQkBi>l6)ZvG+dISjf7Lt0mRRx4{`wEBA^hPI zwVk*`#l#AK_}hPU<@Y`%?!0N3e)AG5k5StVXY=^9e;niPnff2xXWfAcH-fwe){TEY zFVA;}o=b8>tNPFR_CUe(w}mDtkGHog+g(xjB!7exMLAJ*`)PvVKUqF})6G>xwNu3|Vnitvb8 z1jVZbUB*|}`)?yW!*~57zPs*R5kHzmyIR`#iTiIAZ^d{;HfdJJc&!c+3!rsgtP-x% z`VvUz61`XN200w;sUPvn{oIBWB%a|_eExf7$|N2OQ^jgV*Ruzk|8-9Ioh&EV+6C!i zg>oFrVujwD=}nW@5{Hy22@;C|gG;kEkGP3U+{b?D(_mH8e>V|#2DN?u+ZZ9thkrhX zfP3L{{=7w&+~Z^#62vmGu2{`uUfbc^rgI?9bH&OAI)N;N{&;`~ zS^P;%Vgb?6vCS2Jn(Xa?h@^Q$rfmJ>E|2e+ekuqqWLCJI*yTvVa-6Aig8S? zw!+{ZwiagVRT+BAPEMuL7JnD?z0EQ|u#8N&ySX+~H>9Mm)w?{Tb#1fR>1hQ=rqZ)H zy@Ak{S4gCL-fQ~b14A=q2N*8ZKaO25Xh~b~_cjCeg1hEq?+rqk(9c|>4+v1oMMWug zGE6GXa=!1oM&Jp>Ilhn{M>wUsvd6LSo6Yz$Xqp`yXM!SnPCgEHz_`e-g|Vc&lV=CD z34+AsKnWg25}weE5K*(>k!_ld@@b4dRl5}u6%1SqUES1u@M?zgK00uJAnR= zeZZ7&Cbamh8GsV6VAPeS(jYWZgiyD)D!)xUirwD`nbZdiZvOlq_z^3v?G7tM6cMg0 zrxgLkEKL>*WGe2sM-qa-l*{+=lp<5xXUfE;IGvHkf!{%!m0JFt4iLzgmo_Ln&kELJ zlFCtL`@n(`QF?msIEy!r7P-`jbk$b0WO*KwrURMT7AKN)=p-=ePs8+nA*%R zf|@_Oh|R;32xz{~vSkLY3Wh8{YSR)$Cv5{Qo-W(g@<95X*jylP z6cIe7!0miPU7Lqvmd6R_d~oP;vkCH`ez`WCESKm2xt@B1pE<7~l@1YoFy73C4Tq^_ z(!-&?nQflpMx*pxebFt@>)tXFhGoO646gCLyWexf0*~ye91(3{?#2-l;fVV~j#wECdHe{^5k!pk z;6jxp*;j>2i#L++s64?_VnXgcIO3L{M;xK(V<-{lh*tJf2{k{>5l7J;9IHG_R@=&f*1^D-zOH)@PEZr$B%6ksY6nDsd0>W@mfQB@PJW= zeQT{dGq~;kY?cP;K06{(!6Qnw>$5u#ICRG~d=P?agG*HS(B*56VD@~O9O_5lIyeFo zy}6N>BZFg}XIBU@VTW}Le?DYkUlo@mjH*pvY;6<2cxcOd!H}hgD^hV-xnx1F+Vro= zYq=3wCWayiRZXeep6KNQA|=Hk2b};&_M33n_CIRVFXcMi4-1V?&$AyEj&A&uB;o#5 zu5}Mpkodjc8KomNIT=B_gs+!tW^##1wxQ)gVn4o0X&9N|dynZuK zwZ(>XUI=<#zt8h}JyJzm^#;F{ynLpJlsOK5_v1Iy3@K`(mXuTXNqrm#|V7{4thPsiZffqyyGUS`;N+ z&eCWejO|tGjwmT>(SjiuR$<1HB4bqgo=I!DPKeZ0ETAGx@A#afFt8*47gQNfUTg#Y zB;JaLhFEuYvL@VnZEO3#*0CSupSKBm&@Lnzh##%8F>~v>%8$X`sZsklVeL<1cec;aig&!-u#n_eBH2hZTw)I}w{%ZD;0)mSApPX@sMB3W% z6spFJkXENHP08gM0Fd<$W=JdTs$Ffo|MEtS_p(Fmr(%$Pw5@9JGs(+;qw$?Ni~(6z zY2SNskNqzX(SYQ7J{$aI8unU--1y-JF>B(cgJj$%KGR!JvBB;93|@8-tJH~%Qq=JN zETYMZtiy`rsG&^ancGy9l*rf8s-x>d*G%zNIg zeAJJEy+%DO;wfClj8*Zam{J0v(hXsKRCS?8&3gopcFLR$06vW|YP%WK>6?7s#_C=N zb&Dz$GkE1}lP6W`Ht#B6K!z=>R@^{*T~P5?u<2z>Vk#d%d4qn^PiGIa>MKsSS7sLC zHCGz8p31!l9;)MWO>-}lzG58S-pXV`{=WjZb(!BMXPhI#7tJYP$b$c@x+C%B&72## z1Ec|sL zB_^W?v?y_N9`}we8-`F=mb7s9`e~jPSRf0hpWUUpG~BdRJ=Fpv_R7MB-5|w^p|sBP z7U25Z z_(zK9Q7NVyWY`{t@4>({=C#j-i+;-8lW&6SOk!bt9ZdqtJ@cU_0=3ZFX?n{fc04X7 zCDkQ&TbK>hk!|q@maT7mMcJHORvs`IK4iPeXR9IBMeina=}?LLHMO~RfkfU)%iD}+ z(7y$33(2G5*qc$|M~~~_;r}e|Z87*a3IX%A{0+AX@Sn*Mm-!YA{`ZxT2W)*0*kSSI zbA#W?lg)SYEoR}=)_8QRHiQ57)aJSw{J5+Tbwo9saxsLI|2{svis#SC8CR-jMOT1u z-xuOED7%Tjba}JEOD-C0#P!abK*r47N5CC+ua7(${)5CiC88KLG z-S{K=>W=l*Z1B5Ssup#P_%HMqF`(5?bYOLX|3X*#;3f6@3A2OH z>X|nAhB?;{&!7+$e(<7IDzQ=@dFZVNchs}Ug}ZJF2ex=Nm_46_rY9~r@S8)sElW3j z#T#R7!w!4WSLiX)q#ykCmmTB*JlRAfh0{$c93<-a(77<3Nb&0~gdzr>_`waiJ9-OJ zb<8H}f2JD;nx3$u9MdC^4rRAoDG@xd2H}#Ki}*(pV;@s7o_W0@UM?a_L4+LIhG=0C z{5pN4jlnx=D_-K~zcdYH#PlperhhH;mVz68u$P9VLD|v+q*W#VGuO&z$;LEX0vGEs z$1T2*DY(s1DnYi~z5b(=S($wV`PtJTo_q5m$T&F8gI(x(hB{E>!vWGexL8mo|1L^| zl2Ds&e9^-TltK*}kqSR8-V+_P>N6UWScTKqO zJ6iOj=EI_zpY0dbOyt>Z?nVT3?uL9HqWFgX7siH-Iolt$Ror~WPz;MAJ6}iWpB>^b zVmic_8Yc#lp@2=>SZY42Yh$JaTlJs7bZqL2M3Gs{ho$uyN12kO#-vyqA zwcz=9ZV1mXgXjGH1kZW=rR8CQXWtN>mCBf@c+B!|R@K?Q;}QVq<#rCC!AiZU%e^ds z(*ZaO+ztX~qQEJJCpqIb&#x$_$j1o+WA+Gx@i1!lu%(BqjSf*Q`kDQgF-wVB@whJ%m+$JVB2=sDH2Si#d~qJ~hp#oIyRW2!d8 zlO)#Dbsm|NNOB@F*vH9o3QO z57>0zA_&{hdf;!`0RbiM=B<0MpRZLO{~lFD9ao}doQ%vrX_q72V1hW5360dZ&IP+a zN}ox(ThU^>2duzkD=oNd9P^IZLX_izPF1xO;ml(7H>qMg~-|M3B zot)9n&)+J=zqrHsLyZIcipk6@y&BRDD<;{RJhw9WAb!K-o8%vP@+B|$KT zamls#5g`8^YvsGr=NlO2tMd7dJv1gMjc8|+&%Gp|@@@C_(GNF17|T0QAfEJ$Sc>~r zs-cA;iT$J>z*H{bd)0DJtcV%YW*_Bi{=0`_y|tkIfP`4DCgU@pS1aO%o%Q~2K3~+U zBYnP$Qn6;OS67kGl@#^rz^|;%0pxr`4+=>xs}Uo70;iJ&fi%(8+91^=^kL z@ZS^vS%>_yW9N$PMQEdV{+a)xZcg$|wm#28y1lG~N z_#;5c-to=t{RIA9;2?&&{cx9%Z^%)xZk8(F#Xetzx=nq);fKWX8R|xn&pqW^>u2+{ zkV}ET#Eo7mWYIw=F9fCA)hFAC!-bW}mQDGlODjLLYna78K>CF7f3kVe&r3S#zJI(%&i0Ro(Ur(RWFBUUgsCex~h721>qM zZn3+-lJK8oZfs)?CG1&g<*CjNfnJyeZ)~JxNf7++NglzzfnG|rrn>V)(Rxw7M(hjH z+YIUK9h96Mi4`*jhf>)ieLMwI>PMZH7K4eVA{c&v#s0(rl!B7m`oydn3BcXX_h} zku>dj4B6b{9;n0OV#vG|zh10S;4yO1p^(+Z+0jCW7=LCkwGe&%p= zImhm6cJpi4!&N>2CvIfLnKxvb#BRBj?pxb|o zs486C_z`^|Z!~>ZvVg1+kfrWew2sx_G1V=%&?JIio1{Dys{$q%eF}38ZZBi=aMQPM zeg_U(I+03Nt0Yf}VkCUkTPoFKDA}?~nFLS)Qci~glm#lFg1*r0t0DHiWcGk}Tiht~ zl6khD+~l5tKuAnmDNuE)!`=5U#Qm~XYMV>Yi@|GY}c(nJ=IDN=R)26jXna)h*Q z*%kJ+G}*#(k5^g^w`8k%c9VaH*qtrj>%woLe*;qI=QPw0@0pWn2HCDcXjmxx3s` z69BjlCh7ujn=ssU4tC7J{_Z?Q{BWKOf|*jq`=~IY?7)GbY@-2k6wF#eMHubdhw!)Q z9eLBbK^UFW<6QA}WG+e+hMkcqeh7v$TQDjGjdzgJQPT@sANNifMLL&oClJ403s!RN*IWIe1JY#w)DS<_TP_`&Df?c& znqV`gbEuNNUU4;XAy8C$WBwY7X&RX8V|R0DKN zf}?vif43e!WoCF|D>n6croJxf3_|hMXeH&c_!Mjl;c7R(+}n1GX$v+>u9c%KTnSFR zZgA2uA^PSS_}y;7A0J8Tp6;RZkfkrv%7bKN#?z7bBMD711%i#>OxbByaQf;6h!TD9 zGm=v-jaEg{$gbfRvjKEolzneyXA>UxfBhls>%0qM8rp__zsHs2R*h#A9Te%s0(;s{ zb4Q2hPG^3}v1oiHXYB6z8~OPo{)V-J0PktlE*-jyL_&NV)xZKLDr@W33~xahoSbP_`9M79Zi+ zyEdwK(Pmy_S!~zlZMC!t50CW+U~!Hu#~h)GxyNlo73`>~R8yQFe4l>sTC~2bhm5^* zl5o1&5;D!+_du_XX7Gw%HfR5Vs2DcUa05*9%?$O9Ow)cA`O_Lsx6JT^x$KxL=fey0 z$CVUh#gDq|2EhG;#Qnq83j^E4z=GW^Cv-D+D@jwM);r6h*74>wx@DWgy_1c56JzGY z*u|oFzj(|z3FAYx3D2c&I#n|L+>$aKiF>Kmk}_p~wickv5fPSc|5Li%pGtkkS+Lv# z#&X31I>vp9cWKxaEI?AM7hYH-rtL~$oeyapR)$vCk=s-4mdR9_52d^;6HlhGEYhjo zu9slV%j~u6y~9M@qWNM01bSF5Dk%P42IP9=W%AO@5u0MUqtEcxS3Xb2(3FOX+mQq} z=PJ+PJ~h+#eMB1vYBX%iy*vGPz|+07KFQ-2_Lyvu{IijM{otSA_7JUL$*dZD9H3Hq0NrlUz!>7Uy`eDO#s z*sycCwVa!?IMKL0`@-E{U>pxjrth{imp#ri$3$Dk3x%Twp?mQWlO>mpgRs{ick)^> zE-!i~XY7rW8+?zGyci>WIHrK_0>gKSr`4W>=z{J;AxG#7CoBgvT*yHxHd9*hGYN{} zEk3;Y0d!xG_-?yRO%d(N*B~)V$i{C!ku-H{0!xv-NI|15C!;LK0g>l(=D}pb+Rya; z=u$Nh9=M=u@TTpM3ii|laAa!m>SXH&CIT06?I?>6v20Ucb(jB64JAqpM8%gPVYpbg zEv0kv#MOB%e*1=b)sSpGM>Pf({cDnUWnVt6e}vWM+mr+S&50aWs1bPie6Pcg z@_DDeKm~tlQqK^NKlGws9f`5juYV+68YQhqmt(wBOSdh6nd{He*JwT#9%#GHg^e+c zlyQ=hXUEq^Ibx9c(tP9OQ?E5?#|qT3F+m8#B`*8dFzM|OmV%8i9c5Lp5oVnm+6aFo zquB^|@t}X^g6V1_D8XG{nr8%#*9Xm&Q0WYfy#|IAM#IkAn9%?aGV=&heYh7oWn1f9 zKgMxXVlR~#7TODbcC$x|w-@}|W*1;DJnE)hV|}5n8X-Jn9V7u`hvOS%#C^eU_8f#Y zTCQoaXWfAX`*XhydRVJ)oQ98_7@CgO*#PlJug&$1WD++~m2budpEStSFbrZscJjYv zHYL7qjp2J6q2&B|g3)cmuAuC_OqcVrWgYhRBNRZsR7<{qIsU|WBySpwMXJs zJ@W+MX0)IpcacVjJV1sYMioG=uaCUD6E>94d7f7;HcFQ*=0UfGDa7a9>0zGZ#Kfqe zN|>%%Om|0Adbcv>F)tL-+>v9EpF1LC^L+&TQ1sb;gzvq+T4(ebrxRMn&Y9psIhRLJE;)LD`wx*bGgYNBf(+55SxkZKjRX@5DRCjHgtZL~Z$i zyeMZ=e;e-a*^rgmt*J>>+$pNS9tbnmU%JsqMGtGlF0q`9qK0t{`Z^x2xWlsRw8X)y z>am76Rrmpo=+5WT_G@3R&=sS{Dc<<;fXc)WgT9teJdo~%7Kqz!zkDb6?Wa!a5Lw?rvxdT#sFL63EBTMc zq|IgxqiX(qOEi_wx9s&cYBiS9kmvQ|LeR5^@ZIflG7RD(V;wGm*~u6=tB?=R|3V~@ zaglh;9+NFMfgUq1E|>O=XkAGdxR&M=BRr?Qt?e_@I{uSdJ|*EZR~nFv$n#C9W^e*-8lG9-Jd7(bd0_QDsFa zV*D-ZD`j7}NZ#$!!|Y()EQ?l~+@A$eJa2>BC-ru4j#deJ6Zr??`uOh?otVo9DcFfr zdxsW<4I+;)-7hIzS4!!3&pqd)I|w;G`y?R#b$*C<8Q*(~2u1#aXgifD8LB}4AOlr1 zqe*ieY~pghUOC9O7lM!}J9;aHPSgTsrtG)hXtax`@Z5787G`WvcAP$Hg*27IxWuW^ z{x;7w45D#r$M#L9kmDq$+Zy#HAT`aoGxlp+N)|WD=iIHMu@Q1;_zSP81$?su%KZ46 zOUO}>*aU9Wus|$xA{W-ec49vIfn*)ZC9^@rXQE4H?pz9M=|H2Jmi5}vsLi9|4DP@1 zxuQLy=J-$Badtt)pDpbgc}9o_oWR~uTRF&79CW^fG1G;-#kFa7ueT5ff+^j!(3*qs z?|c!rq0Si_69UM*Lf+WSYz-IgOGr1_xX~aPB6<~^4kl70HE!?krK(As%IpP(nMmHW z6(=54lz4V=qWt_`UKpZO_o2l(o{(IqI03G@54q5VpVI2oPv}E&5ab*wLY2GA+ocK|R58;^L1ps#kYb?W zJXz|HRo0uy_2$^)jbFj|nTqrI>0G9S9dd2zLAA;;76grE(UycP)wWry=v+2u&ev1+ zSdk@@n6X7cl30!#tSKPMJ!61nPgh2KaK6d)3r%J>F+9+Jm~Xt;OMfCL%E7?`s~i;q z_km8SicfwJHk45_y>-|>I|2n&GGfQ00jaV^RYG3bcG?GF)%*$XxV~Fpxu#JF?aW+F z4qMja_#r(Yde67^>qaK$Rb0>;rNS!P-AZ8yRr6~P1EL3{j}_Yg9Lehy^@JqT2TqYx zjj{=w7mg8np>tx&hLTL;JocY{0WEk&D&TZMGSPD4PvOTwJm-mWb1Lc(gXFMnso zK!5&ZIT$~`=pM^~&~9q??j;JZT(3AOGh0bWr^3F#j;2-5cAjvntF*}QNj11Vsrk=Lz`5tOvRdss*lCmb3=kk=OgONJ(kFDEtkOFma#% zwt&_RgTyF+0e)88!VG@7E1(S#rP5}1LE^$qwGBSmYL;9kQ66@|UC9Mllq>}ga^8G3 zA?*Ey;djX2r`r(9CH4E-1Al;=9hV;fRVO(lA3wzq?L3o7p31b5og z9RAD>NC3NUyaD>{x#|k<6S_9{vZc`6yw#Bw$BWg|TFgC0AO9W|-OGv=A$AY>1LDBX zj%q7iJ9DB-=5@H(4g?1AF9Bd;Guq1j++V^41*_TgaHl_cP2Tke2BJUaV zCO(J&9}g_K_vy+G;g{5W5LO~#>c_-0-xQinWQi@LQ?Y(_bBBe4#xqbp(QR^z_a!l^ zS#jpvk>Y~fFJDy9ZSpHPzHe8KFXH#fqq~?J$cNv0;&lakvjW)2ztGn6M><^dohMA> zZjQ_mH;d?r+-1cBuBiRwjEPumRXC^(r&NPF%@Ep!AW`yu9N&*&QoH_E$zNAitL7w5$vhyM z2xhv{E~ER4mE-v|}yF^-<3h_!hEV7k*2KUy9^=zJJ^|bhe4OmZyXSI+s`04d=Ss zjILg9VW*aDMqV?~&JORy=^e@7#Jwb$sJM*>iHfbE;QMEVLh<-DboGy4`>uv#Jd>Da z)j`Al-y%Pr_lAt5{@YetfHmCm zIXPtXz*qi+?$66K{eQrw|F0!mA5wbyV!bK{=bu>mgaPb;o{n>gbN~%;A1A5lJ&U@zzo{ z9v|k-Es=3I@oxfz9_FsK*mC)!+~4|mo0@?_PwavkpD1(a=HkS?p=Z9sp_?-p)my9n zy|Z6H8F$nX(CDlp8Ws4N`Ohog-W4#sDGav&A4vwgN-iAlEVoF`^`GdI+1PcFoYY4(_GeWFxtAr^a`#RFJi_lZa+ zOJ^o&?1NXGy!GVGO+FK8<%7;4Z{qngppz1R(^FYbrBckGfefpEDMj_xf9lO6&^Qo- zMgiR$;D8JgJCm8BEuWY_t;KqP=dw5MGlnb2lBV&dMh6nB$I6Zo-tWPaxkvRxKyKJ3Sof zzl+tcSyUJW%MP6#{tInG;Us#W`{P-@FRWrps%-&eTOs4FM(>w{4Q0n#%TVd$QY#Ae-&y>9s=5f1l ziGr&Z;)GUsbQTOrhKHjJ{lD}?vhP%}sX(5RN<+UUm?xW5g?d|bpej*X(Dt?}5lK!Y zOTIvA0jv>PVsf5rtgU-R%_lRIEb+HH3d z4cWKNeu&yn4OrZyxhmFC*{HD2ytnkJkJl?9cKOI@>Y&f3w)cqTGi`MP`5=lWXq!Y` zvtDJp36@OajniX_yq}PEZM4!l_P|(@ssD?756iJrnZ#I&0{Q+DClP=b8H zElHy37_pTMjvu9|F!Ipv3)Zz^q>&QY2SbeLMORiJWEhoTywT(h6~&XFPaJuVDv;KnII5GtSx`}MLGIuSEL&9c zYNEc~9`>y;hJJpsXUzNe*)njHPrE7irmx_MJgJI{Z$D z2JYBSjseTx*10+UxZqHkVNGkrqQsqes(MB>Le>N?f-eQQxQyIadWJj`BpJH0@xQc5 zZC+w=w}Ol$-+$xbsIoi*|N7)mM!sPz#&{c;^TMeS;;Z3&)~&+GJsZ&D==xn&gs%7d zmmkpMd_T--{og;yGwj88{+kbFt4lnr{|~Eh39qWN}R7hr4Kso;)Ii9Le}K(mRA`sXA+N(jwNjk zpsv%_RNedo>CK)D8m0~fd(`3)=1Tq)E#agBAFPyY(Oe&U{DMw`UzXPIC6;8wF09|V z2*+-xlVoOVGzaOojXRb^SsMiLwI}%QyU$tow%TPyX~lpsZx(2aH*{zD(iVaR5g#pR ze}Zt`rtFnd=}P3fGU^|Tpi@=51m8Wp;~8KBMdq5f^~}1(Y(2n|zaf*-5=Zh7RMhde z^NDmtN@Wo^Om!tk!u5#)T&);s=)8(oMym%5@}oZTJuqH3J8ZY0>?2YURolg#EG2GW zR^Y0GI%J#fDtiL~deP#PmS?%QoWh!6m)*ldc7zGGD2FQ<3f&Y19GmiWq2Eq2W{c=o z$N+lLW6}0?LSb9qG0|~Fp5UG1W75(FI-j!75_QjU~M@DOu1#z_v}7G99gNd)MY7@3Oo;*%Y5EP~2gDiq>5|TVSPSG{Y#>Xwr(el#rFt@nbK=|l zwxPeSVYXK|YMgByVGXI^I$5c~Fl}h=^XLIjZ8vQ7d+i_fID5qqVqE&{xKc!W39&y(nRuVrXJG@2NC``MM80Pj&@8ueL5Y)_1{}wvy4Xffc25jUTEgNXa5rJA;bG ze{Uj2Xc;QqX2T(djZ8(qL$%dHtFyAk_natEtVuI5bB6rX{KAM89Zv4>)l>@3yi9iA zjq>uM(k?uJtG4{!xT^IowBYVbvybrOK6q7SA$hh{uak4d5Jg@-@4{b0=(*3l8<{~) zTYUM7py(3!_2t69`!nnP*#$5}enb_9i_Rz5nXv?(#-o5)ODGi*40?C$Kkck$e@_pg z7CM3cWGc%&p0CM26xElUF+l@h-To^RlE~LBzoYw0>v!>HV7inM-6n&|7*Pki8ot%P z0eUKT8*o&eAmbIhE?_JwT*qf~A3tR=1d$8SDlzfeF?0Z#C}?g@ebPVGgWy)SYwRRi z2HhwmsGgCaL3li^wJo4VlJPn_(^fkpQo)v;E6pb_@Tdpj(Q&cL`nn1B?XVMY^{SvI zH^fZg@nE%?SUN0~KHt*&g?5HHI-!Pp?%=&dW zW^`NVN{(H(9y5h;DS1p`H1iOYwelC^xonz>X3BQePnw~9`+H0_mwhYL zsgKPZh~X8^aB^7r{dmaTo$sBSG|z_4>OL_eqL+~R$fY)PCSiAG|Ll<(TRN*Mv?^tN|j@yjta}RW(*E;I^_?xcvZCPC3*}lFf2d}HX zeb<8TdS9OcKD#aVU3W`##%}?_!N&mMTW+FiysxOg`Sa@F-0>(6_$hW?kl8qli$S7D z>Jf41`o=wSJPv=tv-KcM`#LdYP_gkEE|wh3h5%&ZqHi$Z5yfx#r0rK*QnK}O-Zf`L zVkBF~D6yl)kL!*`Ir{ZaW3e(EixQOjx41E@A97cRzm@*?zuoW{+d0?K_=?K#FSZjQ zT*3z}{w!MQazum|Im1GcbF{=lLFC9JQ9KwTq|fR_kgv00kB*D=#VW@k98j`s-n_ zRP(z(kv5f`Df{+lKd7Wpfwj|3dChy`24$xk?^S&GwWr*MMw;vx|8+Jr6g|VQhxxCI zd|pB}vm6xM=}T}_V5i#{wp;7GIvDoHmEG3*(j#%3&1&RRDz9bGMWO7Q@wg}Ip@KjFt8zsFWu}(ia1}V?!o({!#-t+4?szFZ&@4xrl{5UyUX_xM-CY zRv+;Ke(tpSxnX=Sm!-7K@fjT5Cq26l&@FD%LII{cNnIjhLYuB*XeBwQ+!UjXFJx_V zJA3{7xhtkds#gI@;))TnxEgl!fJBkWsL!=;(8~ur?EQ~Wge2%J*pJk(2?2#^5?NLh zquEh2#^C9w39+wm&bnNHEMM`g>H={K2u1k+prr6<2kV3F8=nc`JI&X*7JTyJr0d|0 zFotw3_)sGw>$05Its(WYfe7(_{{L4Uj(6CJaATH;n_uB2`w)Lj%fSDYg~jGn#wKaB z_~Z!5Xhx*C3{8%yXvo^1HEjPKT$k&U7a$LX0S11VsGz_Kh?V_!0nNd!dD|e9c>PEX ze(~ojbT<1}jtbwKUyAs(LCWKyDBsSnOSk8hF6$RziO4D8mcESm;7qQlrYt3LkGW02 zVfGy4O942Zir`Dmcu&mxBle^$JHK^UUDl%K)&>+TH2GC6syxXnr#_ApetK*BM9TQy z8#aZ({pySBF;KxO7F&Nt?D?OX%00r0MLSl4#AIr-Wz%zb(6Xt}aPJWzda7RYXz+#} zDTf;@Ao4p>v}q!;2S$zX<}7$8b^k+9wpY2t9w0*j$#iy#2r@y+bwXiC(ZlMsuf~(g3j{*O!m7wv-KgDBxJcU% z@JPIJtKNvZ6wC?uBN%KWke@0uyHTVK^tuK6CX&s2n-D}&XZBkCszfTjToD%8YzKDR zq4k_vqQFZMa8JzI&BI(ROm?N}$^~9z3u}3iy-;mt%2u!PA{+j(L1W@dZXkvg+6Q#( zrK&kcx+9by+u3{MBZqDSS)LY6OGDm^;p@&QsR&h&`@f-T377;`M(K5l-3i#WQ&{2& z1;=RECA+J5CO8gJ!qNJlBBrwQ`BNBD1sF8mb)N)6BAV~P?3aFQ%-+Y1-AUvCkK)Q1 zHXY5|tiL&;TU@%w#vOStVZ%*sp&JH2WUDMbRnZ%B?K8`6{=B<#^bkMH6P7G`%X`Hj(CjX_ zPI`3ks)o(nE$4U$XxwLNc+GuMt8XC1fJ!&1TEXCN(IuqPZqtQPj(93$l&SsmwV29P zn5r7=&lsH|p!^uMh@fa7`cX_uG*6_$Cx7NEw8`E^lyloOntjHeWE}TqjTl0)349w^ z&r8XNF+Kkydb|P;T^QPn4TQzAGTCCMcVx;+jjQ4Eqq+cV&Y4I$zz3-Xl9I9!ybt6e z&6zxg3!N!Gr;*?VM}7-v2yKY9yH^xok$WphiwIaXSXC`@P5Emo@bH#(MMB?;ypfuC zVNrNNrrw#4NG%q6YIn6j@E?C=d$t zkD2#4qsT}G9p@4i3@A~vS1^L}95`qqLsp;Wm!!K`VI56TeYkG#JOo|A3XpDGj@QlW z){;smzv89RAdQNxg>l5C$vO!^EP+8bHm}`Db|qzSBXrL_sLHSa)nfxRH14|2-oJV- zujG;~PaD*-R;^ne^x){~pl{zCHhkuOag@#pN-JYJyh}K5e=?uWjH;Bw`LK8mF*4Tw z0!Pp8P6MxD8*{;UMIC9=u0UtXdc5pAk1V$prO3XyXGcGtDs%G-Q7o$oLJ}WVhT9eN z6dti$B=3?l7O4YWOsd41gF>Z!)N;HAhYb@6CHQ1mVF9yQz3fHH!Vsxl>6W7 z_w6>u9^N{7Go_EzfzzbO>fhV{xQpcM#bc1y`Oh^VxA#p>TNx*&;3q%upsijw~|jRRdFp3 zLB;j_)tbc|6=y$`ex&msgJdGTQEHf;=%Xnl^N~Wn&76As+YXz0vSE3 zAQuP!+>esOIW3ZI-%qfHE=HevrBZM5uyqa#Vf%)MY%K(V!V?W7D17EKc?u_0Nx8() zfb7AREpfPIi&6TKe;B3r3%|Qn^oV_S>s3Qx?h=UUZfWr%dQTn?tzkl0+w$cV#G6Nf zTn=L6QjP0SE=MzEeX+1JB+w=@7;Om?(v5;SA^93J zAmG>s?bZr#*nNAA)W~LtiWI|t*8ds)cnDrlwkvoCZdCTV>>}R-4Yuj5!HWc?xfk67 zz{BNTUEzK2u~2awz1@F>H#tM=I8=e;9S>uJbN(bs-_`9vbor!@Ju{jSSPs=|T9-~s ziUKKNVgSNm&?3P#13nj6q}0GVJFN7=E;Kce^p&LGPm6X)%&YQJ4_1mJ0ixROv0!5&KjE& z{+c8fL#u{u3?^0D%y~uYq;GP@D>$o zmPZkHB81F;9nF$#xy-)Mk#E^GB4ThrS+ey6zVgyX$E-Imtklq@$cWO^j&?dmCAWO5 z_gYAAwB{%XbZvSb`a*m;(6>eo20_+y;@)&1Y|i(!<&{T}qo_056Sx zyQjgK;(5xWVog)_T*egcEgP$kI?-Y%R9OAEf1AJK z*t^?#hytqA%SYtnNmTZUUYDl`O$`Q}#9S~7{TzYNvUM^EL&?@{V*O-%Ux-%lbE^$5l=3ChqN z2b1g4;zUW*Omm@`YxsWZ3Qsre%tZMko^E3_cE+@Hvps>|FW@7Tn34)MCJLR{!jl-H zuFvzBx3(J-ZI%iyF{;2arS6J-5emQ$=DSVnWO|H(4CF_j3~ji@aWe*7Zd;^$r5tdUe?j|nye6mqBO_L$sZ zXK_UB)F5JN)!St2YZ@UPjT*)J$K%cRz+=WojlvsvzHsb*sC%?H5NpOVL(u-`Mb*G zrQOM$Ij}R`q%WzUNtK2fXBh;2-+$9YN$Wh|LD*OZ#102ujK&E3=f3}swR3^5s<`%l z0y!9!cp?&s3L0(Hps1iwNrg5D>W&^XDi*A?;zcQ~RuK|F1r44AbKD$X#rF%VR;{+B zY5^bB1Sko#Du`8lEQHHTxtx3H0{f`{(l^XYV~TYpq$cX3d&4Yi2-` zHezMtxiUqIRpv$9iK*D1$>0|?^H)aSv;1a|16rf#VHH(hfv)`E+c3t8P6CCke+BlH z%Fqq=I0u`H7Gmd+q4igQn$QW7E!v_4 zZNW(?sq9q_<2%Y)a{<`y`L(e~%2?GwczK84bmgF?NqiOOn_(c&%@qiQ{i@ST5;WxK zUuXG{!qUHps92l771m6HYjUX_ z2Gjbv5+A>)S2?_waet;0r+*GtV`1=oxx%rBf+j>;O5*7oM5bTxqUDjLp;7sH`)Gkn z{(!sRa6)vWKBkHuBqyF0iSBYdE&TdL_wh|zS?}PN4&YyBbae@V@{7&@5<;OwB#hD0 z(XYC6P_#f(D>}h&qX??c{`0qOnO*hKno{azfyDt*EOVG;9SsIA`F5B{MRZC{;5!@u zMW0(r*wKUIGGR?x9|HXgO6!LHo>vV$;!*HBGGyi$ilSe20`yH7R9I$5rgyOa{p@#R zf2NSK!Q#DW0l)K<5@w_1E|B%WA6lcsKPGj=98v4i$t^vmC){MqUYoY18uZYS-zJ#) zgj7XN`DN~(U4lm=<@eP9K9 zpKnTReKFI!rq1K<%wECARD4CSM2YW9>N?3=d-_fPP5R93q^IjjwN&S}H0_7gt1V4Z zmnpVj=r`?tLeA{h^B0u1 z@YS^A?UrqKj~T}@eUp>Fgl{_NZw^POk8f04exkPgB-jh(?fJjR@fXV;um9?D9Kegs zpygr{wwFCq3mUJ!t(yG`^~ zC6eh9%#UX+Q~3+=I?n&%+ta0s^~*)1vObWbJ4zevgB;JM2eJH000fgJVq24meRs?* zEA)wn;g-gOJ^*N3sTV9C>FicNk-9YLfXxr_?-Jk4LE z@A!{b$w+5bBx2G9i|uxa1*KNA^g{a$&lb8-Np9oPR6$a^pkUXE8jWvus49@ungG7g zAhC7DUYWD<8_w5GH%PRLg3O!621tN#zo_7EF5K{XeM%R7{St~wmcUcIhchSz{+@`_ zJzS2&m(`mymZf?oWT|Rh>Bm-3l)z*TbyPxfbH%JFj5=G&oG$Xx3GrC=1&Gnu_{b_i z5v;9538iE63~|IGRfcb{i!h>LC6t~Y$~N1JsL6_8?uqJrT**x$e5ns?qT!?+&_8)t zeY~!8cE}g~hI|>VBzH37v`n}weZN2Nl#^+&5zetZv(Dh5B*qQVNJ{lGd+3vdbs@cv z!&|Yf7@rxT<_(4xg|o75%Vy^~*KJTtp8p3E(6E1rb1fn$+l!i)YtEV}6QCXB$@CDi z)u5ZNTC-Ik4*VAF^jubafPPT|+`CARcj!gBks zvx9n(Z#ZIZ21}ar_xM!@=v(sZig>!Wo?LH{X`t3@dKcSS_h)VLBov+THj`ginSm0PDC0QLb&o(AzCHwqpM!U z4Ez`qUkZD8a(Sb-=`|I{C)}-*^Tkuy;MMXj9X->B;Dz9Z6C`TZ20awa(7e2Y+!;w+ z@Rg;BpLQ}OQM8Iw%Ce;OU*^Fne{DuA^P){47lsN-?FXN-Qp4F8Sw3_Yk<9H@Z2O6B zZhM*KaC$j&fxUF;D??bk%skC%Q-}4__53?Owt1}^5FVm#bfACGH`y-0#anat^!&ap zCPFr+LOJnu&PQt85^_F8K`)hu1BQ~J`jADs>mS?INA-9=c8kH6wJ85na&yTnM#O^W zOS7t?;4;$&os>lh0E0bFGG#F?L_=#~_3?cx@Iim>3l4qz_xJQ2!!it38;ARwt%V}i ztl}&WI*rHi`7-CajQK_=6$|d!CTY{$A6<94j_@P?Q)tUuYz@sVz&PhGNuRl->c8`R zdHBp7=LMIBMS8UU1qYH_rg4SzYD;JCHK;A5!OlXEvcz_^AL8>rg$a!NwIZ95ceX~} z*?#QU=lf`fFxv>@3mzkj-C7#I_CX#|J`Lo?cD?3SUYY4j0IyB+%u;Q^b4+8Yd z3T)M{Vi=kAAW{3LPfFf zoT%k%=T>=>H+b{5x&!n7B?oDG*qWh$@<(8j^?yqv@l;HLc-?(6Xt*95<#~3Qsi)Q0 z8QiiMg*Rt0eYrnDOX<1Nr<0erZ+#;#GntDFbRIKddV74yup|Dudrn2&SJeY(^`Qr{ zuZu1^6AaFCTmDJBZU_ba#f|#AY$boow^h$b&uU98*2}yP+Qeu7@lRTK^Zb#s4iOig z*=XF~q<;?2T~6MKT$^46X3a0hi2ZrmS^<40MT>o(WwT6u#-fCG=UJo^Pde~vDZ zzD`%N%kA?I8|loO-=J^Wd?cTCa!YJ3Czr1An%>Fx(hKqzQ&=fgvdN{M^Cg%;?+`D( z?A{fguQ1ByF>5NwEJJOLSE7gX#5KeHVW0lBk6JfgKfzGy4BZq7UfRPkwYDAWoU55v zlnF}^-^F<&ff>f-s-I^*m0Za8p|?Z(hHg;KtAG*aoKIKfO6)`7TaaW(Mxr`qF4Ht~ z$;QyC*I2M+YK{M+eE)Ile&wIX)5lQ1=3_Ok=A=(<8}cHR@2kOyMVmQ4@Fu_7-chtu z6#2Plh?=_p+v+4<0xuyK2tG*RMEQ!E3Cuw|iqBaDj*&vc_pi zhM5LR(k=3XCl@b@hwSZ8YeYmi@Ix*VqiX27TtqfZQvMmN~2!UkMw!MTDQW^Nu8)(H`K z8mTAjsHg=38{LV~S$Z;4G_>E&(S@x+NMdW+JTcILY{?z-E$(L3q0B@xbDfMcvsS|8 zE6%?Sa||~V&N|hzk|U8O1(zQ@K?F1;+|Vo%;`PogrG40)HrnlR5EY=x=g7^vy-jwX z9Y}f7Vi_Jd_m982l=eM-+4%*@^n~lx<;D4VuJ5<-xsXmp?A?H4k6@0!RlaH4=y1Eh zk+a|i9$0v$l9SXDu4_Vk@P~sqQ2I1lDcA&$l)?3wE&GOV5#WD69N_n2l>{e!UyaA& z>7}fV&!pS*4;ArQ^qAY#V%m6i>=-|`|LQ*6PkBn&aWo8m)3eJm-(tKZQm6;b>VkPp ze?eMoXxtFPaB`V2y+lUDz3?-)Flsc%Me{EhPVqSYFy{8L`UOw7&?Df$U_waBhz{A$ zOC4L*9qNICdbyysJ5_stURy#(4tzvdMwA8{pLfDw^PItuRm>#|;W0O8L{pobFSuQ` zS#*>LN#A1XH@(=jC*$z%O-gPt#c4)6Hq+O!xhFDMo<^-URFE!3xWOsH)XNy?D;-_n%jnUN12uaFV{xV;a&5&A=d6^9bG-uGfPpgjDJsVp`8hzjY(vijF+M)=cv z*MG(St<-wrq%<5Tj^$Q8sAgXJ#1bimV@tx3ro$vQqsk($QXBl*WfVXF`uZp0??ZBf zo{&!)ocqtNU1*o^BooKfLF~~b+mgRUvO#E0@ZQgCb*cTn@SZN?_zxo)rG|qi$*4vu zwnlp6rv`6sH+a7!Td-}CrQWeiL@?}luN%ipFqj?>*Qk+>eVG@@VWKm`as-27w2ZDT z3vFryBD!9-zf6bZ$7uHpG_3KbLt}V{Yd*F_ zzqF-(1Rg((C{3=c!pdbjIcG1Ye4!NFt-tq=r9H)5A!WEJVZXR>XnMDX7@`)UA)FR} z&oxBLE0Ok+nALd_>5%o2Dwu4leDLT`EVX&(h@_Y-Rk9q;R52ZU z;oC^TBGvtHOA0>hfe>xy{?wUgAUjm}0_KRw4u4|(_mxEh2WC8^EdcxTisC5FZArz7 zc&=Z4g~Il~8W86C#lun}Dw@<5*WEzM*0)*UYrWAVwu`(zjw#VuUeQSYQ*wG|1Exc-qz1;|6#G}7okkpfgtmVw<23(@IiKTr9ZfI*E_q94DD!$+% znK~ci2+iNsHI-$@^1kvbxu+V|eRYZ!{rqp6^z!L0cH!Vyx>DuhLqj zc0%;!jkP5N0U>QNxoMS2JYI0s7`@o*tk2L>+ejf*U~o`4(In!FXq2yQMe8R)BD)jP z^2wI%UvEdG!({mrP7fhhq2Fjoc6a$6T^q@#x&$rc3yyNgj{7>2YBIJ4lS((za`|i} z%8UyW>lO;*~O*)YUO`ROypo#pO&^2z57LZn=s%+`tf zAO@NOX<>Cort8sUGSl^N9{ku~{>pSM<2N{_SmFZ(%rBB1zv>(sD}*F2m%ZkuKdel5RqI<$sy96)RFq zt@kT8Hm-UvB2dyF!I>^&`$&9=%eX!|#O5pGV3*Ni&jhi`W&HHH2t*U$oyZtWcZ3b= z8zF38f!W#BsbgH)&QoyTw@e<6=p4Hu1=mHtJ%Zjrzs;6TohF?+&5u3wC(~fp%u`x( z?1T03oZ6di;juC2up!tw>dI#fm%AdbR5#8Jd0p#8HX#dl?=ZquGiV}~^@jrFNd?u+ z`&yT|&Wt^&A5>MTM$>1$%c)PX3WxC8Pf>r|>w{ubM`&`&@EGYiaqEVA={@P#>)H2r z?{0U@*PZ9`z7VF#yJ3v{{ypZr+|)0GapC>yfw6v6Ns6m!^AF@98QA2l+oHb3@u4VG zcP2rXR3sz>?k1)~8E&BF&Mf3Fer4}tBNR~SoZ#t2M!`tFGs|cQ8`)Kx!0Yhs8 zQV{Id!2rMBn$p)USt9=y*hwbxJv>gT0E+Y1z&m#}7i1NDZ60A}5!c@pBJ~Tt{{$kk zn%iAb8kjy(oG{UkJ;NP-I)w1rH>sWD=yup#<>ivuNO*P5Y!ydfOmukihYfiO;9s$g zZ}L~(&%UZS7LZJhJTG^fSN_)JxXIxP#ux0FsDj%vSKt-!hkf;=idDq#URBXB6nh}% zD5!GqDZu=94*rd24I0}E(y@z9aB?9^b%8kSv=vO2I)c%!XbP)f)AY%?GWIBLdy6+@ zPH{Hy{=0`#HQ~;zBog)K;`m};6o!efFZ!0d2S4Ri|KQQPN{Q<5*xGE~A1pOpv@HAn zEJBs}qm3{oB8*M)nIJ0ziUhu|Nrt03H~=c_kgYAnZlo~bz}wqc6Asm)Kf^6_x+RDz zv;}uF#Z%p|=SSU7DRi-8u7PmEKrb&2G^tdCDi0mSrh0$eOW#=!+A&JDZ z%H*PVDFUyHeezLjHZKYK-QLrRY6t6VEYPKoqg@(nEF8AeoofP97OujU1&cUo*L{H@ zW!a{_?ThSJk%?NQOo{oO91$r*<0cHnjk?I z#FH-ntM`!#e?~DbqF#U*BJ--ie8P)HvN(SJ^O+UI&7lgO2 zm$s zk-8{&My?Pq?S6yagFA*UW(x&ri^2(KO?K9fj^pOGp8ib^2%MZM!ulq#vO)mI4E@@p*T1yUpK%oJjh(mtz zu)tEPv4KW@X^({5Bqqml$&x^%Ck3aV`H}bKEfIsw=IlS5AQ^E^e@`8z=7*MZ+Z&Ob z<{%xUoWOjPIw)hpW!&^)B%@7sdK$>AZa&auTNyPKccuct8@OH6nWh=EZOoq`@T`py zXc~BeKZe;b^g#NG%XU!Isld`vPH>H7t1GSL#d7}E<@|YcjCiF73R5SdJpV4BjV5pvG`g3+4@sRXBi z7X59p%FbB{%(`JVs>hy>sSU&J4>DQ4mSXnp%CBs|f`5x5)6Dew5+l^F%mr& zS+@QSjaJKXvQ*g=q0_zakh_nJl<_5tKPE#(Lv?At_>yJ+u;)3YdnSB4Ks*8ZMSM#T zDytuL@5E%g>Ms!rWn!{LKqpdnl-4TC4vQn(fEAH!)P?h3$VRS`>6Y=7 zKSwf}_}(1CW7tGGo^aXfqit>?IW5dK)w12-vfcQ61e%G4{5zt~iRAe%+pMU7n_uz( z%jTFUfGRRUc3^(6lakW0s#OutJE=zhR8`66#JJFbKA>B+X3G{4;}4kg18{J(<05@I z!JT2w23|x&@U+XBj&?Mw)eLfKxbD|Lu7ePD;JvsyLZEfWv0<(~l`F^PYVMZnV8g1p zyiis;lpj4C0cJ*64%ve9Pg0c^ggbra6-%Zgl3(A;Sy^xVHdH9*-z1-rv#0%nf?n!e zMZ4)oX3xDU?)Pqz0<;m$f&jzw2q~EOb$0jReA`{0CEoM#>IEU zH*(erl^B`ha$fyRS4J)kb1n*VN`yjDyTdVmWt0xuvL^qL z%h*1vztm;iryCVR$Qay#&q*_qD)Tg*fqC$hO!3Sjo}RR)r0k7!Y}ZG^27QtS<^8Cg zrShodZ}jem!|1$~jnrv{*UTBPKp8EIxp}!gAHeey_LQfu>DZ_FA%v;hgJ6puca%OT z7Ns9mgoc)0f;rcrh4MncAQH*apTR1)i!iVoZCfr%P*j9K-pM8h>Z|XJHOcES(lKpI{X_<4=)> zHsN_5-qUDktI5hNi9_aEt8I?ZE_l8W8Xm{B< z)_8NrQxVj#J|}pToWTG%mu)T@Yfwf7dL-%6sa5GD`h|)lzooH`D2pi+*RX3rlN3!5sx{W;$T- z`NOWW6zsiVrbAN|Z3Yv7x#D}foZRgO0g0{n=*CGm&CN*fu+Mcq z%=hGv$b(&Q9Nj$61(&qoVE8Lv<#vs&;K7gmnZI%w|B2sV!v~7FKNbw#&I`0Px=!n_ zeyoWybYI=aUiT%9;1~3KK<=Y>-A3M$TZl$`frnc+Z6T5fk{D4Wb1J>WO+~5kfe?(WadgM9>gbW#Q{o7$M)4v%7ucP^rU_H^e$jQFKOpk z#QquegMSAM!ENQDKREqEh*kX}#PZl#o(N9wd{4m#h1 z(1Kd!Nf*qstnQpT@U#V=Tq+iZix>S zzA-Abe&BNF0-Me;>Af-4ZPyqb1Q>;&>Kjyt!YEXB?nzney{fl66G4~}%jK!J=DlYz zo~ebeT8wA5A^MgQHKQIE_{Qyyf*ntEpbW!TThQ`84AjC~C;3a)l~&0^dCaK7`24L% zH!g?4n$zKODAR8``^zf5*W5G@iib3Q?mbNSY=U&`5RadMudVwCLi*49x>i-Hze$i7 zV26`7WOezv8Hd&7q=)X>Iabx*;>~Llz<83=;z3#cO-Wl*`MT-rJ4qs(%1`&+gNEuI zoX!nCYFm7G?8l)HEb8x#bU<8NFDR`L-KoUNk|8gaFP~B2zedcW%kd(}a5251V|mh# zZRD+Ox&L)L6^~i+oNr1Lt@4zT%a>1YL?e8>%^h+bjK10y83-u^yc)EG%^J~@Tn6N} zkrj{Egmx4H_DcZ+(0c%~b-CAg@C)AHuNK{368v2wwEC1?H_( z!?4|cz>VayQ(zYG(E4DI?q|wozWs#dsAuPL!A~t2G#_n=42QNj_Awm`ZFT>f*@yj()|EWYN!StItR+KhQ-z*ELy>aJ^DdE~);d>JjXP9f!PphvK2UxDMvE z-Vt`I5IKBmM-I7FB3DF3z6a@d;ET3YWVLt~{#+&L?arTw6lbe5xvpKQq7O6>cJ$@o z_%M<0r2|`1%hv@1Rf`gwl$X1XHR}NpUnMW8{H7Czw3WXy1p)wZp}`FFgX zg)~^vATzx5Rc`d4zbCGAVqq<>rG&EF7TX;$V~DsSUb?xXEo%%CCxcs(Zh)mdJGB)Z z{9n-!q+*B*b{%5o6l6tORgE!;)Cd=YUvW-v=D9BH6aT_Ea)JlKlWy6GX)cWLaM8)( zZQR-W%e&>*c4Tl_I?ONDVpE|Oo3I_E4G1ZjqeI`Kdr$mWpF8>}c;@mC{8&#O{etVa zpg4=J}s)kyVq>T4u7Gqup?j!(Kao4 z6RT+I6D|xYTBM774RG=`NgyVuiuic&Nz=O1Qgnd|(}}h!K=&R~zGl{s5H%V#FZdh| zk(E<-SgC2Trjaw-_li9oXz5RYW79CHv>KDXESJc=E6Tj|NyHa;I$3EUVF`0=nMvi#{F?C~YL*M40azmgO2=*zI{8ifzV zmzxsk z@AMKrP>dAP%MTx!LnoNC)5x~BdE2cWn^fm^ux%HA&-gW(;KrAX>Y4nc_QA%Q^J~A} zJY!sZ$r`Z5m#p7;9ls!d*&gCc8h36&pSJC1XFBHOY_HZj?XfWD@*b`4n>c{B1XJTb zqo_NL|G&P#%XS7?<8%iccET?G?+S7wF(tI|EDlygf>_X)$p&%crh&Cb=~q=R7`L0$ zqBYH|<5EpcL9c>F5~Thq^5V=xG}7ib^i00sjF^iNdV^5~|(>8>6UB2vMb4nlimQ<2w+1$&EiK2npx`0i%i7 zhX50s;F#we}+neF{E_VqkNORYn+kcg8Rp3|9S4Xbu8RG+$5Eyr&^H=?ID( z#@*b{PVOhi{hYah9)51v!@IQ4w<4?45u^-Sv(Zgn3blR2U2@e*ZPO41tN$sRSc(MS z$5ly6YM-!-AT%7|IO}Gek41dhttu@41Lc$*^{uV9{(yNZ?+?4$enwtq&=jSP%EKh7 zCMxUqVb~=QP1kC?7tztqhd*fk;X8kt_KacMsi7z_cJF< z!v(8M^5bbnqwjkN<=}XWgIe3-$aXMvtXhe2FJ2_OapalznNXmZ-jLvsn~#D%6fTkAp_{@ zn(s&y5Wj-aL17N`Nn-PZgSIMoN(NCZX5d(n{bnpAJ);Yzd@@clH19#`tZ3h`0!jcMkuFr9dq*(4Qv$+ zu|xRrW2GXW;qD>$0`)OI+Gg6Je!)oKl()=fA3?!|A5vuUT6P1iW0vaoUZ*+)#W*KT zY(+XYU(pL6N%96X^21zas5hBNwO3}G=rw(q2S1L<_tL%h^Naof-!M7$qZyA$AD;`= zAX|IAkj?p}xD`$u#U@oL$RXlU@LJaeHTg~$V-tm{ozHJ6KukwL29I;bW9HfRZrE

    U~C8$X9M`UNLJL|c=B@`~nspc=2H#%rv`Yfx6zc|?Z43Q2=$$=4T(`H(od#oAhb zIL~TwgyS@+G*+tMm5hjuZQ#d`JqlaJaku5F=rKNq9A`=izia%W71u$>@?0EM1HSmX z=-}9sq3iKFSa<-wscZfqG_hHN3-7VqG`#r(E)<3==ilZ~0^|I+;c&k1aDTwjLj5}7 zimBeivz#}ibNndZ)x{;54flk6UmtwiE985gP#WLmq?$sG%=g9j5ii2`n>+a4h2Li~ zt|7muVFmsmzZE#C6R`Ub$z5}-oJakmhkuVpwfk^Iro!OhoHmT~bnJle`{3;NGu`)H z!tZoGm;Y4v{WF*-I3?NdmG1j%_MIN;7c|?W_$O^IMH0MU?dHx*V&nAwm2G=GX$>jcyLt>i~9XcVIV1fYq@fNWe~4w&dnR;`Oge2L0HH?t^9r`jC#5hcJUO zio5=0lLv*PlDv1A>^&iZbM(<#>*qD(PRF)ht7@YlKbny(-H}oEV$0Gc-}*3LS1|X6 zNDJLb+Bu?H#a?r*b4M1u-vOR1c3QgSyV>Qd&Vsk|m)%Wbl9;;fg0HEBqET7UgF8UW z9J0dYO*OVNt^!T!p-E$h{xRb6vem~e`-d`G*e&U;Y*O%e*HSC8NzZjldN7-`aY>|< zEp(-`Nk!dCP0uF1@rOt$Tg@7uO={|vG$Nby>uyQ=XOsMHNxdv7c=mZZ-_ zD=v0@&|JbX2cT55wE8!Z2NmZVGTdGqA5Y|D%-l%vdY0vdpW=D(`l(@Y6c($y+2YIe zism95Rin-FX%X!Ev=`qNum2npmwo3CZ){V>Dz9ndF75$HSW?uZS?myLJectqobk7B z%wb{bKuZwy}!QOaZC%b|MtwNwM}D#Ve`;)Og-i64$T z?0n^_8yzO=KC3X9Oo`IrWNM1n>9EXro%94C1`EXJ0x{Si+~YnEQc?GrzbtQ4vifJi z^UPN9$>hMj;I#SHV)-NWR&!+V?kBm>o>z*?$25R*eV_p*M1uhK1b(o|Eis}5UyXFV z{z`hok}m5(yly(y$97VO4QA`xe{#vO4AF*K_`mm|2mmA+e|I*=elEwq9**QN7?)&o zY@(9DSl%ti_-u|PF2{}CatzDnxW?r;up1qFSPsB%ygx#K1#@ifA1c7l?~Ej=a|CZ@ zlh$`jTAodMtXt9p*`$$oL;$Mu1q-rC`*usZIGfaVd)HDw%qDH@mUK)usi|91NjB+M z-I8M2q|c&^vgY_`A8{kNcQv~4p9Cg%=tezt*e7(G&2F*m6goSLWewC%i)FR?O}pRb z*!ihG8f$Z!WA)(^Z7}riNDc7@1&K(+1#nXveoh zqbza!jq&s?q5;~b3JZ{;1lFJJWP8^KBh@ly9@f)U3nMcjla{_?M#nG+^kbXujOV0c zW9Ks;ik;m+Ohe=43PO0~E`|Ck!;yT%hPiyVRk6pff{&|W59`PCLoUx-DW>BTOi(Yv z-mgl+43FbabW_+>Gxai%IfrIgikJ9_K3Mg0?U*f8!sguwX9Wfm-!toFqROA@k35d& z;c8RwywH9(_PuW7J`W^1&VP zoXlI_as=FqncK-9)H8uq48LoaSp&m1nN_0pU`9k7fut}!l*5ddd#O({zhuOuxFv&b-b@jkxORit= zGB5O{8Mn(Z(6@Bw7OPd_=dyk;ppr>KOepgcSLTJ*H302deV#y9m#Ah;G_o_zU;jGf zMbpL}$rcS3ozg*b_RY~QYpSs6qjtHd-if0D&Qfc^(2CZ3x)tAcW3)K>CMUQuQhb+X zibKxqm4zT8GlaYo8uY%HklY-L*WKuzdQ~Sl7WWv-8m$CGzH)06i-k7#?}SAoTIR7( zASyCn*;5xF)!l)-l4-ALy#AtWaj5E*xp;eYT-u3QHV`fB08zcmGU=Agp;kPNeIj(13243*U3e89P7OH&-IBrIymC4>JE&gyA)tuqp zzsbxz^%_pA6r7naeFn6+JEyHCgkahbtdE77R4== zub9&w;ZohJncQailu(H)Y<)wqKGi)^#c1o2_KPDzdOD3iEpGf7@5Y~Hz|r`#Sig)v z?l-o}ea_nxywebR3l;y2Hh~odXS@+-UnS>1Un$>8yj~tNkCmx(!DHrxWg7jPXt71E z*!L-hv*QT+8Bn616pK4e2?HI<&X4#g& zSWsGPztW6o(JHCl3XyB0k5o82X4o>2Y9U*K?APfxJwA6V@om?dzDK=HOK6-k-JMAH z-!{fSaOOOnF!O%AzMqPxdT;amCj!HyEh>I$qk%J}e(MH%c2`y;(vx#5%U`~2U_*X)@{_20nhS`!S{dx_L5nFA!CEVkRw z5KQG5CJEnc1q9cEE*uI(IiEQ@OXT|?Yh9K|ANJ5WTB;iqj{dL(jf;Os)RY8|oTlO^ zu`?ztMgd63H&6ggs#1N_7m5cgTY_x^a-X##L_-pEEyJ z_qQa~{P{5HK_zWs^a<{uJ7=!y7>7FgpW;99I7Z#k))0b*_8)AlO!s#hhbFV(I_oPA z#sGKw_gR;8xVO8*`_q0qfcM2S|0{Uk9FWvI}Qe!$~;wA z#|dWd;c!C=jRFXTQ49t`+qdlyKK`3%4j~M0hcMVd_%0A2a!^JmU{Kj9h8h9Gg3hP@ z9W!~esr4mT&Q23GXo+9&;T);RnhUX<<_Hh*UWWPK1DMwV;MWeoo&XpPfacgh{z6Jy z=1O&ybirXpes8BUf=vXGwZ6vZ-8y~VsLxjhPjD1arZ43*#L&3dcM342aZ5xmRfaCO z1Q)_KgpX>&!b#5KQB07gr?x7gt;#x&Se^Pye7*@sr}#{vn1JBS?csLafHMI!jQR8; zF*3QiFn-PN^whk(P(L(ESx~e|Lg(nBghG!}f01p8s-y6y?CnI~Rd~5uyi~{qYr|k- zk5KL$8fjV$?j;<-kldC(cWP=Y-kNjbux@Y^7I6vY~8pg71+nxZmMg z_^U{&CW*laTZIk2#1&|JfRJC%YA8g02Z!N%5>Ms<<^~D_YVo8Y#h5p@v;Hb#O*z>o z*T5$0R2usT>w%zs)*N;lN==k_juSa}o z;S^nyz8keBa%W1as)rX}%1TmiWZ<1V>vAB@FD7bK!#whwU#1Tw{(zfiqfoei@?oPw zXDyJ3q%!zVNlnZ@a!T` zG;L7TJ!5!YTERfu!%0t;g58^12BUW|H_bOoY4{zlA1x9?I`uDi)+Av?Ce`Aq2{c>U zH_SahzLY4tIqF#3W{hWcI@4?VAW!DX;7Y%GFlLSB&K!Ch^U7c5%*SL?4;}jSM~*C< zpt=Ny|HSdcgein8cm_f>FKk^CWLn+aINR@n;i`l7JRmY%^uusB-gc3f!5V0<>7_Jl z4-Dh^+RY#g74fAgu@&*;Mt#6e^_t$J-(!2xB>U#umc%DW8e*5RF+k47{=r(~#J4#U zi6V<97m_+AzBKRB%JRl|60d5`De1h5%BGEZC;MZ10io^kk(_(kR$0D!#<^rnT)M5Y zylKXnry!}7Nb1RcVz>OU#PRp@+Fr=Qo_k-1AaMe5WwLQXB1O0Ff41WoA|bV}3P^Nd zpivBAtxp6?KQhg_*nYw(L}sM4>z(dXq%6gTylz*;1RMVdUmp$!wy;-r;qTRA(sn`+ z{f0?!S3;s84~GTo^jx*gxdkzzfzYY`ne+_Z&;4pPOU;`~QFP&84BHFfXwug1Pee4( zGe?D@QPTRRmt5||Wxwn}nE*v5W-1}Are~GNKFglhH81~x*HmVH(}UBaPnl20aF z4rqdz=4Jp_Ha7{BW}cL*CaMbP^?}!l94j>Az64vizHP@?MrzPKYlZG^w)uZ}H@fyq%K1 z;1@ZSO@Bu_TySXq*!uS`KW}Why0mRk&_?9j_9<4eCn z&&HD{^Chc{;ptKNV^f(#`SUZrGq(Jtcyb`AQ%*ecXIO(|f z(%#c7^Oqc9N9Nv>6X_}R(nx{MRar0$eln4614w*1|N6ek;PY}TEB312~a45&s-K5hte>p7(pD%X8jnVyxKDE}ayZiG`~(E)m(IDY2k|fQA%QN@rDqeCfI6#ZyKlzsZf) zwSrcUJ*xZZrziU)+Zq$8b>^?FOs#4Cu6*|!vw|5u z2mv|ADnTc=Uxqi_W$bUl+_3mUS36fBd}Cs@t3ybtI->Z{nxxNSSX42Z69Mi|EAdiT zW%1vy@p8kFh!V9F7ss3)?agwtrfWku=gahrk-!o2y1$1XM+%4aWDl9=4qYWdWSs-S zfFn99oXNyjQ&F@J6x5k6aP~2I%u+7VXXz1rE(^+tzSkG=SVVN;pQxAy-<>39Udr<^<3ER)KO3q|Q<*Nc@=L4p0wT zC0#q~eX+f3oT0&&*~`MP8VgGs!}omslHL+#rZNjl*M^C%J_}1XgzsgRxv!fYiH2HL z*w4#Vr5Ta&v04r$4#5v!lq@(7WVX;1bV|7VW5(nE88=`15^knrGi?pHuCz)>Q1%n} zMH3?IvDu%8t`}&qWJ5&XDkME8$Q7@wd}E|V@!Hk` z#Ut|Bwa7RmY!w@|JDMPb>5t3B(f?v~&sBCrQm&?e1?{acBkTAJYlIBK3tA*7XX8uj zD;*xxY(JW~3*cS{Tu(-h34`NHrxnxj-l7v0dbyv=Zn;JL_lNExqov+n(0JBiWkv=Y z-;^nqWgs^ISO-M!nl7*oI9M&@sRMFo?fw6}GzeCzGm z=3H3HtujDHBdSoUTL^osyx?^%SqY``j#9&kce=vpT~L~% zU#vE)ysh!{00tl|q+SU+TLrVCcruSKr-U;q=>S%J9jj0AC-$&0s00YXXKd0$ouFTw zgPUcVg5OPbYb!UgCMM>KR^-Glx{(AgJt1FfI0+@D&F_g|F-Fc7wbsr25&MquV^hhT zNP8umxgW33urlVQW|wqmf6afn_0Glv+PsYt-*qJ_ti&%UA$venCQ=pVrdORu)#Z-y zi*_aJaUvs+Y?Y~85HTJ)uEdv4+_!j2aw{Q2xim8K!0Z;N%JhWcbv-Nn2^H!`i`9xc zQ))0^fw}ajB6vcv!F@rAsR_k=zuUf_Rmk@m?rIrb=nq)Hr?Kg(3c^*7tTf{4tYMgN z_7I=dSe5A?Aww-DV~~+ZtxBX;XNH(s4#h24Ia6IB;*iu9s`BD5jE}%~m_bcrhGaaC~9~fxH*G zFXGP5;!ftxPL+P4=0B-)=D|*dZnHxF<9h4J5k!IDyfXpUSrj}I1(d@bw$x*yu!|Fg zN6w3gf(t%3QCMi-ohVRHqA-t7h(c9Z*{aMZsC)%zI5q!n^?y{^r>u|+S2gl)tIV`qE6jrx~vCx7NdvIZMDBA01YbFK89{xQ7v9--r^LlZar zw&!elz2)X%TqVfpv2?^E5h2 zwM?m}LsN>4P{C6lIaoHd_zk9tQQyPqeo;#O>n7<7_HiKam|6RC`$Im@WIMJb{H?HG z|1<`a7i-?8yb9@`ys)8N2T=kc|4wK_15}D%-G419TKO&3yBkwC$J0fOaEz%a^z4}W z4TDYlm zj71$G0iz2kAo5M+S8^ij0JMXm1#ET^e0z}-^IGLs=1g zxrqH^|8q#$3e!kghzZ}-JaZ^yR)+hZN7Wrir4L+pwkmyo6@eNxyN^wcuF6&`qtli< z>NN0wPDzA<)`wtp_3TP@CGpN7kBxK4JuDm{pX_CMo6#)<9c*~y!v7OP9}>E;{%Eff zw?%yd(3Q=jJ<-8$m3}iv+i=(}GmU)9%FH63;m~lCnJHPB`GBv;#|=N}keN$DnYrA) zg)+1Ec4a2hYy(_YVE+1x|5N?$>EP6r|8q!nrH$03lL$&+7V$B2cz1zW^kWkktWqa1 z73~7^xeZ>~I&Hq-|5T^#3(R*M^5I#5!87eTV`gSMa`l_b{*TB*ff;TBvk#yV6w_7w zR=}8?OfNnL3%LoHv4pFZVwqcu_|bSPU$1pv8{E%4_j9THnc;pea6jj{pP#s&@%F=-V5TwvjAy(I_Ge3| zO~BBb&NrW(5wmJKd&aa$H-zK`xTqVe6I{qZ6kaj%rOTSLFm;_ zy_R*~d#P2bqu^$~^C3vrzhE^QbUQ0R<2fL1d+Sv*58d8c6>X`l8@Yi~<`-ZmBw2Y1 z-nk7w#JR+K3BvMHy=H|hVz~n@f|~?trC@X}U$s4Y zbbBQZA=(hPg8VwR9)&RyJj*W3j-|1nahVvb9BOe~ksSU#NSGo^=$-Jz=fBz$x;pI_ zCqrI%L!aGgd5a{KX?FcDl@-WStwQHwHYo_36F}ni7m^g*V8qBam9c~~f{bek_vk4B z9PT}J!l;TFbFbJd=52aUljz|dG2`oA^O`=|$@|%hb`H|O^{lOOq!WP>T-{g(VnZb~-M0K*NCN_k>QrdXGYXe}Mjf^V*oyb754pJ`#y$(&IBFG**e3XpD7!+8iAvhg^Dvqri=H| zn;k$A?7>dbj^?}(`3&oOeEn78Zf-D(gh?3Qj3OrY|O9K++d(1fq)Ey3yfJ zronQ8xr7o}(bm6ua;zf?`N6U&u2leU`yU){9_0#&Ou1Pma?&W{wcE{@QpQb;>S9E` zKQi+}V+7$SsWE%x+Z4P5S7N&$ju(i>%@7eT*c5zcyBT$_g}dVdc?p|UJ@3o&qE)bH zFUKJmqYjWCtk33f_f^1BWX|o>lR69T{hpIK^fSCX4?)e`0ztvn$Fo{e{HGfzw`+&p zuq=pc--(|H-_x=EquZATi0w0RT%gX6xC!OA3&UAfTXoSl@%h(EjyvxMrcI!!#Y?%9 z57j}ky|~1CvZEKjE22vNT`w*Uo+)>gBp#;V#XZzV`{ojElMZ_!^96!D9vbdW5Rl=n zaAYx31?~w8sJ{-jocoP%T&JAmFH-LQNV%V>9L{RguZ28IE}2hp2?H1Nm49B%c_62u zq}}J5jIpqwfFe;( z=iwkpoSb#fihF)lu|Ht+IO&LsixpOMy}qVSrMt8CL@AzWgR*dxF70asR1 zdRTke8#(|MXFrBpD6~N4VD1*eM1Rc)VQMjKkHQS6V1*DYl!NDGIeQ%V~KPqQc_5h*bqy!C};JO6@6HrqmYqq4CRvqWWg4Z0Xt#y&qJ(PO!`=$gAp)wgQzgvAeN0VB7Dtbx0$6%>o*RkzE7OSc>>|#B^ zw}OXGF+X{ob_D42x%}E;3H_6sN6lsT2I@jgPi`3%PgamfM^~gJW53px(gXf@BL^Z3 z-2-#F$nJDkxj8Ljxoh-It0dtZ$NY{&WBhW*Bzmx*ri*UUu%F7)MbZ6}TX1*Vag#E~ zFB|eA&T6~(sTZ-WxixvImexCH{NS_3Z92HQf9pRTztcs7MMVD|$-k7O`lEzmlm4Q0 zJ+lsCUksF=NQMfYso`}!bV5$-Z9W3Z1|wvoFgN)28Gv#yX6Cyl%dT=87Fy*tt*TWW zcEara8L9ClBd4Ei{jPeiO{?-rs!`I(Bw+|+rs|vwGMy4;`l$8QeQ(D%=3 zybcD@2nUf73!_d4vez|cX7aNt)`yR|8M%C&j_)F`FM)_YQ=ulNYWjn=GA&}J0LiEq zG*0Cc@6jX?A8UXg7u^r+2 zK{(epJ#`X-MlY|Wple+Q!;AF9K*h;6m0GK=8Ass?>J?-}E1S7nTyLVg$9`=WA4(+B zbl|#N>rL15F)S15Q4c>QW{LVFLEq6Q(6!zUIfpxP>fP2heXWMt`-=-gHk=@K==uL;)-6@ok5Agcsiy7HmjKpo7% znr?kF_}kTp#J%9@Tp#k$`4|JQLc{weqw!?5jfX`qR!L6#u8A)h@Dq;?#&RrMbLcr1 zkKU6(^15pnM|$IQ;(7{&A8%?Z;cvX|kNj0t^#%w9X)#AG@vuLuG7oZW@&|?Qz5U;f^c=ufxM)2-paXa;h+gOntnV0E4IBv%b9g>_|tj-5D!BmY&llEY;`?V%8D<`4b}9WE2E`6G0hH6bC`b74bzz+rrCz6m56RI_3wu1NMX8DK(>#`q=J^35Cm*l2gEMj zF#SulpiUDE(>#ai(eYjD)Izr4s2yW!2*p|e-7x(` zm{tqOcI#9*RialG^mAw`x}n)OL_=o>&0?qb-uYpK8f&CY;1B+5$7rSrO-Zo$9pl?K zKaP~Q+9>{Bd@C_Dl@86N-OyYoG+PB^`?aBgnYRX&4$Y6dp{WYd3^p|H;uD}1_vnUZ zpwKMbA)3@8YaVw$Q}D({gK|VSWbdgK(CNem?oD_2?mZ(?d*j{{8Zb(Ch_4dnyO7J^ zB8Tk4i4hRSz?mVkS|bf)F^BBC-H;`OY^mUEpNH^9$|&YA?b;1fZ^LA^ENJd>!`utw zA_Q5T{to`2YR71h+XMk&cfD=gn{ig8yjAFa(T_wFT2mbzj`rQqTrM;j0oi_S7$2Qy zJQ(UQ6?VgPjA6=#oKmMX9F~b(Y&|_flhtW=A)B*fWN3638y+-cgaG0vgN#b=~m&Jsh!>%kWh@ zeD_y%<>XW33=Y~cz9*yjE_C<~?}o3YE51C3Z&){cCkfvY!SO>AX5LD*7W->!vB|&T za;B(B)X5(D#MwhR&K`0`&LgffV-KlQlRaE5!n&IzBXu@ku?ZK3tRJUn$?zIC0!3;` zWbsaeL~_eMHK*f4NT0+6(er&1R{ya@B)REwcJYD_03_txQZ!@bsC-$ICBa)$G*Jsl znzvFEt}q|e2&BOOl#RyN;sbeRSx9>i!8Y=cq`WmpW4{j4mVnt~IbYub02bw9a+{+j zUUxmu5(wc;HMrQF1Xa=8H`QR#G+44!trCshFx+yxK}%NQ#br7pH0*v2<`0AZT3~gg z{=s!lnecu%#L`i<;9SEWqJNT2o4pkK{f<^ljFn|^>+-TXoVeF40u&zdvk%wYNoy$S zf@At=?xa(s(wt6F*GoJtI7lD67k8}g%r?1ygWsL6YHNx`nD4<^2FPf~!VjA?+nTcY zZA-Qapgx*Be`hsZ@Utk8(titN$XDjW`L}s&YGHSTsFmtZ!~-uZpYPf}WsBDz$VZVu z194e`vc>ok3Yt#kj^Qro8BYc*bKx?0U?eAGjk~%e)x>6U4wreaeto?DY0~gk58AX` z{;PQX4ZLq!&L3uAGgXenNuK|s!Oh7=KB}PJbSmxRp=@qSq?3#IuIS6uQ+o0TT>CxF z;bN{=2nd@RKF-1zvwwTOhi5OHS3&#zvX+Aj{E1D-7Z+hrnIm9#Qkzq`zuB(Wl<#hMuy%@~fHRtjs$wK^00kCth&i1ho)us=@iH_!Dx?wq0Se_;|=yyLiisY5*XpC4x zqV!NsE4q{eG6wjuPlt2DFZal0`1K2B-BhTZxqS!kwB2@f%>+NT`Do>@#*L|7BT7E|MDA#~ zlfg7+Er*r47ye3(K6=Tj`gR{WGfI+!R%gz#G*wf?_Xo4L614{ZAv7o%_PQFEH4 z7J|^)er@~w;8&}u37o-c#Zm|L%RUr#uj9*2sO4Q@9SIE%=_J_sT^P zdP@Nrj1s+%DAkeEE_Ip3wxSw>zc>2A&7^HX1Dm4oVZF277%}9O2w*cd0!DM1P&EtP zdcEAZ{eTzADuogJiL5~xG-S?Jl+kW$+DoDjq(V){JZ_SmSxba%SIJXL&CVds4qr;= ztq;nK+fL44-6JBqJ!59S?PS`-v2apw&*EXp+|Qrjb}Pj=*<(&&&NEVfnRV{;%zy)5t=Sm)6Dye5;>$xXM2XuK2b3(Jyl1yPvQbqOJonm67Z_k&uL= zu@~`O<5*#EkHW54h_W+V|B4#uWNg@;{W?3ZE}e}AS|crnH*5lec2+GQ--HE{DE?aZ8M?v(oaY4AugGu4a^X-*0t6gs+W!>j@k+GZ5=6gOWe6LE93>|Ry*^8C+#B@PiN;~*{&^Ki_T($_ZZ7|LP}L6 zsFhSli!G_$g@3k}yRN;OsgqzFdFCx&Yr2xGT0G7cvvp>(RjPn<8i^;e5|m{bBk3ig z985sLonT{vWxLXu38VN_K`8|93RY(Slcp1?j1;UH2ajlXomE2sz7GINbgin|e%PdJ zM9y?WvtLO_Nt^A5Xy@y$D#CFmLmXc{hRTfv&eW;$(&JdB>|v(PU+iOV_?oR6%Nk;* z2Hpr?&%(6J9BvN&v)D5F8V5V5!>5`uyMsHd9SbPcV^w$pWudr3Mj4qqWONc*NOCM? zDOwn!wIE+i|Lk7NuC?y`p6yl0xQjBWsKUccCw;LKjuC^?JHeK5Os z-j7yOWx>M$hwjOjMN}c)cJBWT$Nw@DtubyCuNfW5Ce;-9 zWDCA>K%PE6k{VNL`p?pF@g)rk^w#3&WfCB*6eYLh$LnqR)6Wvl=Hti7hAG&Cm2DOO z-9sVCer+Mx(7`j#cedG#iJ@J#b*AjHaoA7&=d4klza)a(8fAc*f$r)W<@atV-8d?e%^Kw^ zM*ZL%2jt-6BB|CWn^)|pQD8ldFrFHy5o+FWku03wdv65BA>zX01|#^z#q`!PI_P%$ zM|}PjQo)_hqmd3H#B%`0Wu5bOT@w%RT;yItG)phyxuht*|L+zr!opoh+@1S4bj_8s@ zDSLv-0+5xF;z+sb7SiKg zuMfIfS3vt?)aGQN7WenhUD=SCR3j~IOV@=yX_3;}q{_^gej&;z>Q z*a)fzY@#RVrgI$i!L<8KQdeI@8=V_QAav4S@%g8TnVs~H`U6UIcbL6@JlW4Nd*(cy zf0?&dYe|!|J#E1wqJv|1uDVwb%r&PH7Ch$!uYA?4W7#GAvZ-A4D2O61BX&r(yFvRj zN$@1qVz!U(37-qk|t_ z2+OY*%RBgu5(>}Heu`eW1G`M4myK97faY4CF*vsSXVOFW(cT=>_T`)6*Z!GAZA@JR z4VCjY=kOX|@SsYRZ=KuUOTFbaZT*4Q)cXBIy7#`7OxbMDprK^m z)|^_(C4cK)HZv)TUv-{dk}GziaL@KDWGnSCJ#5Y4eGu{f`+D(bUgrRq(eb2?F(BdM zBk5KB@A4*d($WUal8vA2tT!VmJOCBC7Z9%jbcxr?CSJq(T_N%6`!eSZ#jlbz7hh7@ z@2jTTc>Nc~UT20HU(^6jq#ivu+unSuBK~IHAQyjgD`i|f1*WD99WLQLT}*TU*xH!x zpD+3tGQvIV>7jdR!L%^=)`H$b%g-;AytCNddk@JeHkK^Q5ajgVN^I39WqvF&I^BK_ z<)!L%ZZBt7YbvG6I1iiPL4%Aso(hACdz_(H)q0<&Y|<*g4Wm|;9~7zY1k11kIGgd5 zi3kRI^<`o@tv5or=MCiaY1u$y?s9o1Sm+sD>%>{oK%tXxYS=rrE$--V)?p*P+iN~^HyBJL<>3F2|3$BWoP^yQR;PA zXBnHZmXEum2>qeR*ISv}WfGi54j zlyiDWCJwHk#||q*p<&2oXHYNj^#_1D&hLF|<>XgeA4{Zt)u*!j)#(p(u1o99Uh3t_ z`0v-M=_>3DhHM?~qHa{k>Tp)qI*bNI|88|SjIXQc!;v~jdC@$d*%2(2I^t_ZBGr-^ zt|{=LckQU1fb)}X&{eIeK+jfdQKVW6yHu;rWB=a8%zCp*%u8*}oMW?K=h;<9u}Kb2 zpQD*roL#1|bV1nbvUdK0(nfJ%M;$I5yU1)fjXU(H*`a8E=XV{VJ*~@7vUHm}2c)En z;=kxo@gkT#747~VCgT`A9s1qu`PW5BCws?jf*^2pbKczV%L~i7a=19h%)@ML&O>uj zAgyr6>K??(|LI^C34A&FsR#DVD7vl|Hz_@5xdTP$%jUhKpzgV9yP&3rp!V$q%1Y0n zBevT(m`bJ$gQoAQL!*eev$Xx=BjLy5%tcs*!Q7uxb$Noa_MSGjN{eAQ&g|{2%jkX< zo@ad_x(ioyIm|r2w(V+6;*-KV01&`ir+}L`! zwtTj0oG$f`J9+aYZxxca3RR}cA)OFkvJMjfwepVGq=SVSK!;=X6&hj`3ntRzg@)MT z^wJ}r-e0^MQ5u}Sv#S8A2RTw@p;(5Fad751^=ox$u>@IBB_}k<{`m-w+S_(HC@=#z z2qwik!<_X93>;zjVc_Sqo$3O)!U~hB82WlRj-d|plI2(hqUo&&YHu=*tv(En;TbR; z-GyILe8>y+xd0^tzxWetDGBA}Y@8xP8ads%-w2pitGpl|UY8qRveq%udSJ*%h`M8U z$H=#|Bs#?NziVNK>Hq-A58h@hmwsn!k0gpZP{w3T1!`X494`X^A_l{{-Blm`YYSw~E6p4*WR=39yvq>~(~Dbe=h1z}Ie`uGIrlik_2 zQ@)N_i1{G{9|cptE?)mTeL;25I6s{3vHTJo=r;4$tk0;jxhUn3F9jh|v zsG|Qz+nc~wRb74m32-$i@dgErQ;8aDXdO^diDOW-Cz>dzZPD5`Ew-httq2LAf+i-x zTn|UZQs-7`wbfQDRf=P60?K4-L0biFRkZ59##zfCD)0BV_PICbCg9`qf8ReJ%{}Mr zwfA0oO?&ONry;|{Gf?^cHlG-chjpOvS27b2YqL7RsPwHb2#g@|ZE?J-LT9IGAf$hB z`@-d_daO1F+E^hDn(9PN4~H07z_@3ISqYj~^+T$7+*7k_LaAP(H~7hGd>P1F;=1tI)DTJ)VdJ9BUPwMibpML@w`3}0*K2pF{Eixl zvMaaq{LDs5AEVO!F7X|NJ1~wpupoECZt2$FtBK~{l@1a}I0*O6ru>I~sJ!X2#QotIpJ`HdhWet@uCeBNAr0~Rnw8AIycl)Zi(hUcZcLZpbn4^(UWRD+ zh2Kv!+)m3LdXF_cN}ctiM3P*8_t78Xq`}FU+g?g~(UM#TjzIQ4Y*#P;M*S_~hW*48 zpNAY_KZ70%Li5L~SD@9XuqLabDcpkdLb`pnaz!KAE;IxFR)3nl?Av?^5Btg0 zt5$k$NLMT)@swU=C3e`nC|K1UzfF6;<4hS-P1IiRO@w5WL;4Vy`QAjVYa9(l{<~Xj z(r3r#|AUz(*s;ZCnNMU{5nxZ|z}hX;r8c$d_K9Xw%g&}haS^@79#bZoSYzN|@PhuP zUM-)>sOcEhx&3`F@MMtLnQqCyg|j^v@-WdnF8|(rgG7pEl(>UqV?~jo92BeRzSli` zm9ZyG9Y0wbwCC?1;%7L=0Pk6?4>@mfvxFt~7I7|OZ}I1R<&NZX$hy2~H`MFTzm?() ziv6+UaA31Tk$lvv!nE!fJ1H<$Z5hnEi+l!mMjYO#kZN;sj#ujglpKv=?`o`#qtpYG zxS>a*SW#*R%Z(vEtUvpOe~*|AGE=wO?;`6dfV`=^bK0=B~*c69l(b?N(Ug+91tgCxZ z4vP#Ym2_?DPsoIYS4ehIQBC^tw9tq zWH`V{$3b{enGU$(jva4i6m1-@18?U8UY}VJpX7XFIa;L?c!T=t=i=aCo#u!+-H{mT zZPt<1g?`CZZRSbjtbbkg+H~t^kUTNH@Z3^zvtDiOwxgeVb9C!}ibpqdR<4aB>oXs6 z7;^tQ(5X2s+JA>SOv7}YVsct|G%xJ@5N^wa4wm{0_3fLd?poWjxu^o=;hdv=zl*fm zX}Z$6y6R2SF0QR!KV>R-rdyxTr;N^Z*{F`B0R}eAf5u=K3c$uZ zXr(nJ!4MthKLK;={%EN;C0BP2RcgevAQ7Y2uCSkPhxRk-YmDrE%`l;$e~HFazU1}m zRV|2Yd2=2GNWZSvFZ!k5cmwcsaYrP@kok@5Hz*GQYdW6>X-Rn4c0=g`sy|4#eP2n{ zYa098A*(i+@n>t0p9(Y*Ar3Bm(Q3~r7$$8UI^#4~P#D5=JPY^`o+M`!;+`FC6+>cA#!sYdcVeLubN(pI<{0gvW9b z!!+XSmoVACX$n`CT*44@6QfWHqicI=>Nl|i9YU3VN#~XHK#`TN2I27~;f`1lLCKN0 zTEF3F<8C#v53-?{uQ%_CvcF_|_O~qQC-59_zclEA*Y)*bhl4(Do|#f;htnEB9x< z+*9^RfSI1144C_qZ$Gaz9FMM*yOzuVAkFaz}yGEu3UKT95bxeYYrmiPIT`N6S*9pGA`(9FP zjCZ?<4M2`J={nkjo%X#%dDbm{z_q0U>n+^R>wA>C;=n`(Q`bdt2CuIF@jcqj!xCVo zt~UYZw(+ev{m4YBG5Z(4Dpc1`#)v5SzG{TX=})ycLA8yl@r{io7VmJoYn4)zx;UwP zrmcH#r9s>I1}#ZuFkIdfX`p}?@>buVd0$ANY+|+|1{-DcJja7YeZYPVnA^c4w_Trh z-#$<6-dbm}weRl0Q}F~gCKqk?I7T*~#Oh;>H!G6ybPd8X64=sR{-ego1S0J4O^)GB zlf4*L;TrJ2#-i*PzBq`^(t!}+S>-`^2y>>>I7JE{y844Dj7lf_1KmlB&MGk|O57?` z2~ZUVRq+{6q_I?bWTlesIBGF^J0ivEyJXZ-y@Y^VRVAunlYRP?k6S z-i}r&pzqYlx$5VcJy7-G^;g^TeDfx%*UUU=%89yb&*l$~-hu5Ma_hr>wbdJ@4XF!{ z=l+qUQ?}=!tgd(|k>efMFoQSItCSfJaXwwMWW*iGooLyn91U^^G$4!O76=d^<#1TY za9j{x$lzgg4fk`@l&kpakER`lzr>)sdOe5Zg%>dKwgfJ|KW$f?$~T1A!qhZ`w+0iW zZ>+4~XrxcO-(*&+d!>k8(EjwSudCXE`8Xj|lVgaENZJb!;t>d!*x9%@GE}358trcw zoeJ)SGKMpShIAs4V@)>Qt~L^ozYun47$#<15FdDYAH3}o`PVvA9*1%@S)hovC=or$?F9X|lZR>12dcMH#aBw280+prfIqM{*+%Zhe1AhA3VzK5)8-^b`KqK$FqC1}IuWFtLs}6a@kh10JnbDY_nDpWugD@LP+4v*A z4JM;uUT$gi9FLEjoXi}NHXOQs8-||I4Z=`2Bm7k)2HxZ?Gsh!7=MMWCZ#~qcqW`k> z9VfJ+TzXbPMvFREb(I{`$P#+aXygY5QyMvND|6=bACFC5F%#{}^ zxu1zstcnG!He6=M!&wP$<%@s9rpi?TzD#yZ?hx zU|mP<-?>3vhdrCbJ2`SwZaEESa|CkT2}bzj<>DY8 zp5_$svf7pn2ZC3+?Z!c}EiGnZP>lzGtz-FV`#amQoiDxc>bLkHSt}~BLa<$2Yor3B z3(90%R_eLOc5TmY8E?C&d+F#hQhB%M5s7CC%YQG|b8QsV2-o@g4wc=}#|ywC6hs7L z^l|;`x`9W6bj%BID?L~9nfs;N&#@p)%vnYs;f<>)N4pOPS&E;CQFx?fu~){kQO5Wp z41~_TJ-XPUe*39B$(rb(#kx7OtzO`E#%|V0!>K9)IveB%OxMkFmyNNmW3WA!S!XeB zJigX=MR3}m$0los0d-iDI;?EXHI!-ZN83EJ*;n78&n&apA#676$?;>QNah~kLCa8i zqxJ6mzj_laEZGAfhe3M)?lAxq?m>YLfcR#|UC|RrBQZ@ao+c3FiQ4_o+!G~q$0e|M zv1m!N%HzlB#}xQMmF25PZQP_~J=MqQKng`)-%9Gs6|RG`TDm;Z;Uc8Xv-rXq-?JF4 zrJII!PcfNfF{HbI1yVib2BU&iYgOSSF6w@@oRzNCtEOFO_&lUSBx4f!5?9l!pdeHx zb#Z>hYp2aa#;P?86dCHncABNoKW?ccXP%nV&Y#Yf+Z@9<~{wy&E65kvJxV{=kJdSvz0sLxpPy z(Bu#{dX3hHDD{nGw8aeYM1zcn;_jnc4eU2%2{gq+r~K|NRhP3TA>{JG3pc={5hM@R zV6|(J+deLQy5aB(U-$*d!qM|0_a8Bna+`TE$SEH3wsZmwbsr?xlyN8@ z=VQ+C+`SO;Fqx^Tjg@@QPrEF$7kvNx4G55%sfM#y2hIdvUHBcm!*g|S8X-0%d7{+qQS(uJw>F?T~;p8vk3Z4s*f8^F7#} zNg5c~LQk9>lT0^O8hy!+6d{fW`TW06=9l?#Q{!sJ8d!-3YwQDdS_~E#*ji!;H1D^4 zkgoFB6eVL47P3jl`D-lyuYCT3))+QU^@DVkfnDUmUQ1SEU|liTC<8mggVhaAkkEpH zHyT(R(h(JEee>QaO+XqICz0USyJ6Jxie~fu*{K`lt)xykA(6>;IDNzBf5RJft_MA1 z`)f8!e4~U+8&BGwvG;54;5|HjkoGaOy}_sKqx|9U9u-)W+N~myU~+$ZoZrj+5kCKY$^0flm&9OR?#n#b zj6PsrkHNg$Ymp`9&uwMn5HC_JunNx8>40*kpCCK+Zp8W?VAfZ>0+Z9OHrp7|G4uRW(7-{Hie{WMX$$WnNHj2u} zD|Y#DkIn~5!pZX>iYdfdvIs}wSK*~~6U1+j2jnLWo( z`kp+B!PP(CkHbI*cP_yR%Z;A;#N&Rg<`k^wjc0rj5s4>Jg0IO{4Q-9lZtVEjpnYE9 zMKu0cO`2v-=Dvez>vgpF+2w7^n|25?$CoQ8#X1)4Xp|FVzWLLv@$hA;tnPm?be#YC zHqc9Lj!Flt6xlV(jF|iId$@m<_5U`f96`mUlf1}JSAp2N~d*9~U%(4|dQEgKrx zKTRc*zd>LPBEJxD3r0A$CK&z8P0#LQN$y{V!I&TP1RZrmc1<~|E5btBr=92+4euuVvHCN@J7l@^@ui;EBy8?xOJ)c8Cn_hNH zM^{*3xotCd3r^RD2DX+G9Oy&hpz&B8D8Wz{VG;caV7f<#m`S|9#h0!DRfTcJjU4E0 zVxVsb`Oq_b$;$1^Ynq=!+ha0&D&h{RU&^66?%xUni-fI@jZbJ+ttt&oN^7dX9=eqt zW*A7IHBh_1L=aLmug8!y%h+wR`@%@LSKGrqJHHm{o~Iy?{YjnhS8*On-Ft}4nLf5Y z))SEF;deBKk*EciAC-i*yy-3LT|Ryo`Cqdx@u&c6Ds7PUyMtdvfryQ3LrhS;Xy&d= zMA$i8?Z>FN)~>RErHR#xX1p%9tWCpEHbbx`YHe&<=cz2ks~77-^^$b!eR{~e&pBTM z6xC2Ab>V zxZSK^QFjK^&CsQb{&aU1w2TAXh==VuunC8F;&Gy!Q6z#Bxwy0*0tlxQH8-KL4cVv5 zr(^iy&z`B{GWjS11iuc9+2L9rR@7E6pVm~H`CHxa<+a?bI((Uw;@h>+fP?F**IY7A zywZrr;LF@OY@pH-tm*X;Ge$f#)J7K->w#J*@U(cdDUn2+NugYWyc6#R(Mj2J5y9Hb z6WzZ9$L^b58b!w+z!~TSseH(b5x;C82Y86(i(%4~18hlkIDioInLA;|a=m;UBS~PBF8F_9~iSSw2N7H|MOR5> z$R-HUkL$s$QJ@t0s1S*(BqS3BI!VgpCzRZ^BRH*Nu6pUh`p)`%^=ZUy_1Vz-hkfds zE>ERdKs{CNqble0s_&f7SD$=XtIwR-jW(^&)4teAqDqsBo+{@bM3qk`8 zA#c_L|HMiU9?kRHOQzR!;esf zWfdg5nFbT{mf4U+`l=Svk2MN)84d7x~AHuJbMGtO{stnM%M_ zRPP7fsyHo7$aMeHbsW&s9zg;gJH{2Nuqxrs7RqmW)=HsQc)tY&1n@82cDJD}9@5_Q zRc(6h?bp?m@s-at<^I>VmlmP7)|bo7gYtML!7ics5R6tp0;XBik(asd?|8OaZ_pt0 zL0Tfj6NT7m6z3r?t-9L+)B13bfikzplz}MLUV4u14mEpx_ls`&{?KEmE%H}^Y1-Q$ z{t{W&9}0l{EJRX=YOChzz?mlC%`d;?gdh_$*$p1+?Gii?MD?<1!!*UooI6%qi)4yd z>vt6M(8b*g4({yEx*fh_ykuJeD#0vCKdb&DsJQ`p>5wn*cvpD5>t>%F4}V%ozkHRE zwX;G$RELz9w}Nn?=FI07QOZ=7bUq9By~C{sA% z+jYTk+xA)`jDw(<_4~GqSKb+GPWIL`@z~Ls0oMo7#mqul-R#_XrjD&tlrgIN3U}|f ztq)q>{fOJI!HaBcG@0z^5Z?4+Ig5r2J=U<;eQJ56-R@_`L0eD}3wU{U7kK6#`V!nb zG3R6T*!LcPi5pC|<}aa$M^m-k=Nr$}a;kyJ6ZX|(MOU7mw5eV_^OW#l9kq5eYeRar zE1O2kT0_HfcZ6~NW}iPgWq^n^F^EopGNz4ha+H_BS_&8oXMfxxfeHTnj&ubp`b zrxZ+^T$}kf`>kp->*|I-seNka)E2MO-PPuMtB$fUR9WuEBO)rUnNo0j2FTl)m~(q7 z?O<8>Q`xZ!N*He|mA-{kS!;`aQOB%!vtYZ?vnQ-*c?%G2oWWw`ggDOk6H zD2p9AVI5r$ziqtwiZb@PUrkuZKHaP|X(vp#J?43)xpnc}ZAD({#|BFm`)+uN{lFN= zY`Y$35Fwnfl=VW5+XhRQe!|Wb31|eY|A~)F-qAY$k?m>)@c^R8!uL+WeFnZ4uv00C@8}rc!wT^I?a94t7C5u$gWe7dQJ@?i z;Jq}5cY5LC!bCT?5Ph04wpTMw`y$OaQq9Q!>(!n^#k#`%xOsB$Fy0E}p&|F+tJq>v zO%5ieW*p8m@l}$KMqK=oU%X_-q9QCk?QorpM!nZ51Cp{VQnImuQ|ueUnW1 zk11-V^K2cavX1cwBCQs6qJRUDvK%0@v4z)ktEMPu{)3Pvy^!-M(vRw}0S-j^wNGfs z4(7g?D}o7jxl@HThAK-)jhXSbq94?0%&1b!A-{}v^(q}=X3iX&g2U3=UlEs@I4dGn zAwN)w$2l^&BGTsfKi=HEmM{%7uIitkRxgbGFL7UG%ZVyV)PXfUZM-R9)Zx$I$#MqI z#@rb^Loe&qES;m;C?J^9x4H2g6U{+=2g%*wdsSc#tYoC3q}LU(Ns;e$*nz*Zo*<2w&+a@dHL)A7n6%HFjU?rhU!x^=i*oZt!jSD96`5f7h#h;_IG&dX2X2LEE0r4uhCM zbahdM=($LIU6kG4fAf5O+4yR!9;4LPxAEa9qeLl$ayL$~ZugA6VEGO?H*0J5?@uCa zpYh#zbuDfVqjkwF7{sCPpW62a`*gl#A}jPJ8RWp$R@J}!Fdxgi2NiW=X%%~;l_G?v6<{9r*r`wwKic?Ko4!;P) zz*=C*S#&a*ub_s>TJ@?K^Tik4JBFE&MQpV@+~ScBZO?zp$(mez$cYTQ!K@0?K^Dlc zs3^qbWds4kjj`QV9K1Yxp~}rX(|wuM0!~FeCA!nGpV_y13qS#Vrk>HO@1r7^G@w#7 z8hhZIG#q@&^n^|bGp0>rX9+s~LW`?FFW05GHD4gCab3)o-1$ThL;?Rx4offGwRzKs z$p1Xl(aq7xNESvs~~0aYwoqvO`g;>E*7oIL@OIMLjam5&ko}U zeXWfM|6F5PEc_M9GeUVJ#t=c{Lr|hqmE0rzaD2}>AF6v@J@r`5N^94%nF-SgYILV} z^>oRcBN)4y2%OJ-hR;3C&SCjX_JT-{AHRgL3@^3ikmka$eq0gVxj>$_<_6K8k z#rb9rPT(}A?yf@nKNW#2$nPr@|0TpUv&7wWnzU7gx9XDjkN2RMhkA6b5TC;e%X2?v zeR~j6-UPYBKkO`8apO_3ds>kw^tUSXPkr@wD(0X7KhBRnOsk_}85kC1VAb%LFUV@k zcmyYx+=Ru><2^=I+?tFhMs1aWe2DD$3aE zcxL6u){i!&+h1jjn_hU<0Nq)<#y_X@{5Su+O|#>Q`fhPu#_y`GuYN4uIuf}0aLle{^*S^3jsD8DvTnFK*i?G<6*R9dv#2ifO0Jq2 zH!$7CS_-y3fNed~2(!KgP<>cd%f9G#qfa<~d|ma5bnCGq7TYsw!@81pwHUg6u)c&H zSZJu33p-w2&Z`;{pZQ1>;Q;|uKaq|!3}jD79RuJJ<&D@H17#FAmUO=>>3-M!hn*WD zizW&LCh(V31fb4-7xd2Z$3&J5fM{p>yY@S`Qd1_iY{IDxk7QP(X|jgSnsX?LZLlH( z5i9t#B(kEdvvHj270R{I*eX4X+O?4`=<^bi56W+$iL>`KgA$8W%VUx>rde|t{S_)b zv?@_^pirlNiSb+Wa>X(=W6fsa!FhQP#)n&;Ppr)Iix$On=eL&m=9*qMwB}%cS z1tmW=>l>B2p~4WaN)_0l2XFnzjMGW=_H&&5)P`s73J>BSQ;2=_yD5TjI$Lc%O1Coh zD5{Hw98w3&N5y^7xrl1+{o~U!%|xpzgt)Re7bcF z37R=#5zvsz@SL5?dG=F7L6p0OhnNXtwTfbwHf`-$uPz36sO1DxR#S0!&USk!zxrm} z9L2e#1*Xr6zQl#Bu;swXLUOAnX8S_M6b~_}!}wB&dRk1AjDlX`LfYd(WQcNNrWhXU z_`H^9k7kymHuJo>k8a&5M$dQb2fc)z(9!6(G2L1LZ-e6Zq?*fUh3rB(;gNJ}5eaq0 zOKPkCk)D0OYKn$#dL3>qT_R}^OYQ((ZKDq)N_z|J4ZxyIp}=`Y7}RDc3}+CY zUCti23i&Mon~Kt{XHs@ffldtvadv~JtAbQlQ%tR{B{&G6lf!fRQ~1r5&3tvu7nqpt zmb{~Cq!KQ_2=TiNzgMzt49d_i48D-B=fz*QEd8e{W351nE8>3kg;fA#c`QpL_uiTg;^ewB3B0KR@YzeXJ@ZC{qY>Tpqzc6v^p4OOsp;YHZl zemD>5Rwml0XR$x;B}dg6+amc8ZU~7sdxvY`_F^qoj|HJm3CBWb^Ea4~v}yd| zY)p`E1#v|MaLVb9WL`E^c*PUHu?}%UIPqyK!`)?)d060Gm&(_n2>K|u1u^n|)tfthmOpqT{#%85@N)IwNT-c_XzTY%!~>NF!;#URXsy6n zb zDRE7W2a`TCSb!op&B?p`8XanL1D=}s=cM~k&ME>HgMyZ|o7oXf6anlf5fK=24gX)u zhTYbUW$D)6k&$8Bb_1}mrje5>!i}cATHh3Oy*?lak3N!KYVvoY3ya5uM5f=JvKyx( z4>*-&J+;-Vrwz$$%%?DT8Ge!pwU$4HMVu8^{oa%c+g29VZHHM{GiArvrLIc&yB{*c zf+j?%hNLXmiuDU8m@GVH5bg;N2;Hhck0$3?J9sd{!kV!jVL@tohy`gDfEmpN{unKBj#G07J0-5n|nOJjJbYc-ZcNS=Yg9#j6)zv~z z2#q9u50fzu{5QS?)P!m<;nN`VNM*CgQT<~2@@)k*d{Z!dBQnPFD)o}IO2yZQI1fZ= zA>WyZ&*q@`qX5T3wgOd=XcI}ISJ&KJbY>-|Rw{BOccC_9CT>%D?&1z6=G=d=R`N3g zZvcUxDC0Fs@C||=pq}{tf|X6#-})rz>id?PeLa!gqEz#XiQbCJiri_I zNAtsEaBF2$qtuVO6JW5V$W_Hf=Q=fazlXfwr354bSmZvHhXN8}R1S#-Lqh0a(`jDL z-}v3X6S;vea-HOMUseNSPI}SQzG+D1ogh1+zh1=;e@+{VC6KHICEX7Obf6F2QbHhC z8zRV2P9S496M=-e63q&U8qtO?=(?Y|i#iBMxN~CzT_c>4#W;G`AW&oxeWcR#LL#EN zsQpIJH>sB3Pjb()E(%J1`;|lsaixpg3nConfKV+2FCsDlSZQ+DVFWk&LNL#lS`T*7 zzY?Vxy{=Z5w@G#78*kbY(;u8CW;c7s;q*NcVP~?c43y8?T4e+I-vV zeTRO@^S#?X7cjTk7xMG>6REZb?AmXtIr(u@p>E6flPG6b6UhAxoL$-WbO74}l=l{r z_TT1jtxMZNe+oIaWx*g_@=ofKdvz@eq+}RB471H5@&bTA5NY?4E)zN7Y`V55)U_eM zg)Yag$Ek5!DAs*@I}kn__Vpm#(_d-5n&L?nTk=PAGoGjpUI^yv-MKeps7&=E^3ni0 z$JjghaA5CvlF{Rb(3LvIst!B@{h?HJ%QyJIr01fEosM)IFJ*@-;L6!V8?+amq2_peyB&FxyM$ z76$+F4NpjVS2O2Y6hST1L1HBRaC1T7uI3nHY?PX{`g399&M$%A4AQpB?{V;Alz1^h zyci)~V9?Y#XgCH-WSW zFz-A#N}aIY3_o3IFhmuq28bZJqMqsEay-WWl|SFexO1n>Wz*mUjmF~@HxMzhwL*|~ zpV*<97)%I;s5~UCOr^mZb3Wo@efY+rA2)_oXYhG`(p1P%cBc@W5sqU$U2FnCo#vtX z9;M!VCShA77jCyWgAvl*<@@8u`+$8wWJl%FRy3;JgZ;7(*k5BXxB=L=JlM28V7CKC zVIzYH%YqE8e|(~0_x(PAGXQk2vn)%{=DoVwZIF^PV<{=%*VKy&<%2xvfj)CK zj7!6D71b+ezN`b?qBC2n+WLiKS`d^$m54NajUxc?HP^%XDAMu|^IDe_q`-J^~!gtd1hJsK+QtII6;Nl_0q`m@uxwTaf6SIUxB$u-+ENG|te; z9qVnaOw+!!V~!nAr(?OIJ<4>d&;TUH3`^eDm9YE^QTRr3CyE z+4QhOdLgUlYtKtHwO~mpoH3 z&S^aLIbGNvVm*_$aRu_5p7m=LP;dvLCfwpNMwRd{&vaoN1~82_b!>X!vBBmQb$x?b*=zGsnX z;uswU91E0D}FH<*BsJeVBQn>TegeIbTOKk7kPcTfoOSHJDb zGdsQTWQ!%S+-ovx3mYq|(hDyl%Z$njW}=U0N(XPiU3iYEqmsj;R;AfGbvF0x6g`EcJ2nYaK+z0ZYxIkD$fn6T#xs|;OEQ!G|IDp;g!S3q= zw)R|)o;MUzJlO0$U=PJ$NED^jd9ay%z4wjvr-I*;!qkI*8LUH62HCb3hN|t4X{eehT~p33rYN;SKSJ$~zxjCc zlGGEt7Pv=xHsmE9VO_IUcB~JEFJa|o`l^MJyKo9q zS^e~9^erDa0YtoWBR;w%!&;@y>u^2crtzYZA!=-Hqc61cj=5^X@4{Y z(K-b|kh>Y40jtd|ngTP;Mt%c!*>NYw{B9S~=V<8jTfexfLDULDbA#fJl3W_-W2h*s z-{zH&b&6$!tY_cuvyI3ukXM$wKX{4}&!`LevJ*kbU3I8&xy1hz+fR^D_+!+K!KI4X9{im!-D&~f-_lf8o5oFF_>Hh$Q z7mC~mM*V#K?+CZ`t65h``|;%0%{*>Ns&nTutUgBw@N12ZQY{~QSJv+#(3}@eLHQ85 z*%g#nwj93YK)80FEh_eQ$OHA|JckHSn+s4ry+qRSb+$Lvx_;vBaJBSD=Oi<@WuA@gOS`d)vd;RAYgS zW*y=5hYihin?;4A)B{6(bKNZ*s?2dBdS||rRr9GoD~Uaw`e87*4=7xbgPtQsiw@Q- z%w}x8!_r+;fnpvt3Zo6A-BrtT@S4RCK#z-QFKVf=`mRLPjHR2z1|Yde%@$VK4tA_0kZvAGXrczuI%W1W1AE zbn9~_IeRc7(&m9sdT;YGw({~>Hiq@9i?Hp{$^C1qJJYN>XSCORXR?2mp2}S^|*mY{X!MA$S_f`_B*~Va~=B;0C zSx2{^KQGgdWJ@7(0ReioUw(1#_M3)wY#2<6tP*?0^{juGjK*&>2|evkYBifmj=d$1 za#yevK?Wu)ov&o93%yF}HUmxFuAeA%ti92WebtVniD|Qx;_jz=zPbvvfTi@w7WCjB zjmhojy^-MYR`&C{*-8r~-Sl^ebO}u&)}m03dd&2~Js(;CSBRPJZ;*Hcc6k%>&%x_0 zOUnnSUwJWT-8?cK6$^xsikq5JsbaI=pVJUza0~tD!)1rYzDJj1lG370@wg=9R6(Ya zhp%L=%x||JFMkIZT*R|*RhiH?GC!4`eV|eZGC#nFXi9NS^QZl%rXJ-ZUoQlCW{*c_ z-tBsA8$8k3mGk&MX5f=S3jtV}t1Nc0rei^MxiyL--!?A^G8dGMZr;$}A5W&kMVU4Y zGJ}jXC2pT>a=Uous}67)o12IhUP6P}y_q;uY{Xbl*=#^scPp#$n$aU(ArhTTOJq#3 zqTLG>Y4wdlYo3zDyYgA`_V5wVi9vXcNg^zn&f39rJFCNJXG}JKRIf}_G#ZabWJli1 z3r_rV^&3X#J+nH2hn}Wc->+=${?WoI4r$`4#rfSkRHE;E zf>GIPu)6f#Y=e%gqdh95gffcUQ^;!eO+bPSRp&oHY;v8W5>tIzQ`hp5#CFO-LA0P` z7bBw$AaiOHt3|90wsInSjNGJORvAsMv!9%{put&OO|CK+Eb$-Bd7a3AXP}cjK?VE? zTdh>vOWXlTY=k~-9dBmO?Py6k6qq4|+~X)V$h?;=<2SwV`f@hHNBZ;nv}NUl8zax;Hw5aulBTraalKtYD8AZqdEz5v3_d;hcSFZfUW0euHV zRcL{+S_z~rS4jHUEi{7F#F-n^8kQ6{?ZnxIj%Rv9bh)NXr$Wl``v?UH|LGnz3HA8+ zMwa@|cSAv?yR|R<#>-9=?iZrJ{)74-%*_Z=dkD_WDp&%eI8)R=*D~p08nV4>OjGn7 z?WE6I(KAGQ%}U}d$Uh4vQ~HeFGo{b!CoJu>)a8xeP#)cVIP?#et{J?{3eJe>43>71 zku3d!rN>*3&#$S6wywxL(C8|{GTQl*s<7NNdRrPTNv!C8&X0HKP@>XbEfG!V!rWIj zc|OyJbT+bHs7snZth=2uF3%>S0Yj+U?RJ70jBw~)R{VC^qf91B@4Z`XL253%PNM`0 z$gV?MAAn{IJ>*c$gEHBWr-TR5Lr(Gk`?3aDd(GI(l(c-*Ozz3US)b9mqM6+@rq>jH$&Hl6h*%?f_+qR%TFM9sdRh@@bLIyES z8rX{ae^eS&Y)~un21xgMD!PgumAO+7_k^@wg|UDsKfpAGT(XjkQYWg9qk-0462Mc| z3O9w)sj7;a+N-T5dU{5N659Q)^~GXIyh))j_@-hhOoUSCQpMtC$iwET!m&ZbN~HLa zDs?fWRBOgF54X8XajLj9%8(TJ_G#Qs4kXE@gcZ$V6wd@uhBLiA_T!mao>XBsO^H3z z;98^hyRw*KCP%h!!x&;ig&mx}nIqL-objes)UY&#>?f_**Gu#H|l9J8oG?Kj4iOHsZRFSykGP}5nK`f1bXx~QgNG)!yR+)P2! z>h#VAlG^HxGxxN$)$dI?_|$NZC%Am7X-I8rXG!hmE)r+F;v0+BvT7u=fzq391@jRU z!di`zy-jvo{Lk5MfΠoM}-3{#%^?1fBTYT(NWnD~tMbx=fYlxjX?;+jx$^=H~=H zB)n9(p5FQwt-HlOlKVW268Zs6)U_&n-1^c6F%%J0H5{6&LvI%-!!a8+%Oi^PZ1EP^ zpP_p#lKoMyxpZB^{+yQ2p8>04P7gK%7lg&MM7>PQM=FjrQgDMCr8z?fS2r3{hCG|x z3aM7k;&Ll1OkSeYqGTx5jM!I?jgy{DE>5r|%SZYo)l|GFu54;c_6R8MUg(DQ*`x(4 zq(4{07tBYh%cRj#!y3CMi1#JzDmLqZdO`-1H8B9#a{I)C4;?kw<$3v;$?s5k_f-ko z*~flOow$|y!7}FraNh8Q<_AaF=72#fbWFhf-`H-XmUMf2~VFsw}GdOd*YHa(a^qqzHnYNRUASy`b6_a#GA zEipOFv?zDjvYNl(GQ^_3(fFM6u)&;%%N(hAx;PKV=bZY;gqFu6E~i5G-I`8yGOMo2et z!T1BsY-q!I$&~yVG+XzsXRdc0+!wsr5QK9&_0a|a6fpt`EHw%+D(x-&_KEBjdT>+T_9TwAu92XnE$;GS zp8wm^JnN6tYUqK%(5xIXUjsnG)P>F03qmK)hjv(Y5MFJ0I9n~_pTet+Hf$lT?`c)o z+^KxA{(jM#U`q5^CUX8;z6muLj$m<)=y?M1Fp5IKro$I*-J~&26^(*cI}}ueCg(ba zLRx)=in@R9#=Z)Tx|6+8FMB+-ufC>xY5Zk&3ZBcpb6ZqCIFRv^NRb_YmC6 z9*rApRp;bsYgPZaunUbJLNnFJ0OpZ(UtKeDvC6{D<)6xrYipxTyt|LMuPM_@B)7ab&aly0393fT$hh z(nBjf_0pFQsqM4%#q5RIgm6w?Q~Xmn$7{;Urc*^qum537r^<{qg;S{G#W8Zp=!WtV zoa4K9ZQ5<&m~_^wN{f|Dq28A85UWbQbQHM7@S#Mh3Zb}UOr2O+f`lGhWiHLyTZ~ZOA zgeep`4cc!lFCvI?zp2-6loukok5c`oDljcoju_Xs*&r|Vc9TA)(!T)bC{%U;3#vv~-xjqS8CA zS3}t-?Tf!~iikbC(hLIl=r_*yElVoh67G}*cRoFiow6{!4Hbju0de7w@+j6X%Uzp7MOL`^3*%R zBT6;z?B%lA=#aY5u78S`3L=*se2(*d%aT&B-(dOfxK_<&Gmp9!-xhCKBJ^9}D z`O>N{jMb;*F=^Feclz_#p_xn^6!d64-3FHBU9XHUN&8yfwCYes;U#7CzcVUF>2QM9 zr7Pt_zbha5UH1g5-*eYD2pt?~x^kIMt#h(N&2-bH?u)ox$(Y|7e(hmY?qO2yVY+{4 zt8CT-{}j2YQIHbiTDX$Mn#=*-p(JJz8I#PdoM&)HZhlq{4mTDt%}p+PyHhaaxee+u zM(sb9;ekNbq?X6jQbK9H-*?iugnF51etfAi$Sb4gWw#1Gh3_6BI#i$#T%<#wN{d&K z&)eOjUM|!LOzP~wc<*u^CG|1cJq(@L@vCxojI>p3-+Vg}O1CMvdsq-JETAn>-qA-J z*yKACU~sO;bpYl*@P$-yCy}7dg4<@AE52;e!4uf|p8fPQ)+a=5l|}eJ@sZWL(Ug`q zn;BQgK2O&#B4NK_>bmQYH-)@s0ER@x11dyzwM2=TO6~T-QPGt`T!tLawpOo9w;e8NSk1n(8cglMqnc@?Gcc5Ozvq5T5anlzWms}jGJDsBk9N4 z%MHycgR*R+8haG0fbOdaT`VrQGbv#72%$=jK)>M)6QM;NpEu|?{M96Tz0G8>F1&NP zz503BI_+N~Q@!>?K3vYk_~x398I_0Dg%?)Uu@g}v;ChZS7*-p8rG)9-%}qn=!%M4> zjFE|Cop;jak1ioTymwt@rPffv6yc>L;YB32MBnT=2QKM)`mr8~Pqz&N32j;l_uS`N zc+H_6ZNrFuid)M-+y~)IOC<&qhVqF*MIvqI?1XfMCz||_#qJ{0!JRAw2s!fvNNrFw zwo<6LEhdRpCm#H~PBl=Y>(EgXB}8RnO-EzpA=;Q}nc+KUIOM?CxG8WBCy$m8z^$VS zAtUO%OOd0)ONZ!u)*DGv^PswC_q{K-nf5#`+w4H<4NUk3|Ybr@I!p zw(;?_ux`bMI!>&={CpMH{(RFw>sS7fQvGQPn?+&u)$ff?&*gmH&5b`2xsBg6PfV!8 za2O>LOvw>mX@T%1O>&@rdY+Vf&b;XR9|$hialY!9%#-!Z!cWC|O7d&0pU6puHbEY$ z1w99Vo*K+-Af4cjyh-UKm$r6qBWnYU84kHo$~;mCH+8ChL~cI6p5`K+y)X|43Pkh&Qx#{&ONcP9!op0Gb<16U}UOe6%YlR zFZNbcFBNWgdTe2dI>sF$7CFdwLUaHfY73pb`rjTO!}sYr?0S6CyHNY(EyzpA-omAL z?#TY;FW=WsKXsWWvl(5LN4fLGa(QSUAPFkNdYEI1ipp33xmw>cmF(u=EZ@C&p;vCw zGO%1_S;yvEy{x2|+Vzi#gz2_(kv%ovio%t;ax@?6!~N>3Uz?hydq21GkQ3YJ!1op$ zLmzfnv9n^o#llFV6I_>-l%%l<#M0W6){W_O+pP+(=fXKYaGDYA%Pe`+QpoVk?~^;xI5vWl|xW>LO%<91V~K!&EHH6K4@ zSQKjNp7U<#?J@cdQ3FsZXIN3S_=g!9cR$mBE&{NE2?4DGrg_{9$ZV$~bR! zWivGd6SQVN?!(=hFB;}g+?2rF==l=uRr%%s7!TTfb_Bb`EmA6bpZjFHGtQRp;Fr-c zx&AS-CON2rALOIhjmE}u&v7SM%0IL7uH)fYY;JVuLp$Sna?JIPalWID z9i^NLQsf&}k))p4&TV51^PIibck4U%f&6#QQxMf4fjduaIf8=St@~R0e|BSUvfW7@ zH$-(K^5Zr0y*16BZ_?0P^Ls`YWu$9JA*J`eb58X!MJjz__GIi528Ht-`=w_qUYUJ0 zVVb-Dqs7#SfLiL_rHhASZ`_c;*hF-_c@DWl+-T)2dOJ5x4U9RJ{iaHl49L*3*yUsM z>$FshSP3@(Q~cm}G%~>E*3?ATF;NlfQ2GM)AbwsRqnSRb6N5B z>cc7oYaxRai*K@TYb^<5hfzT5U-lteT+*XQ4Jsy@>qo|!A)GHcqq3xfRbq~y9u;YY z65gCyQC=`2H`_p@Z;Lh5JEU*7)?2u@(7hE(diEJsk@!#9(=875h(8&P@p1dD*7|sS z+`4o_ZRXSZ@NkWoYLo)mKyZWIgl)mDF!ZvT~;lnd#j z;tCiRMiI zU>A?_%zKdP2ewFrhD;PNY%C)chN3#Yz}@Z+lsoo{XN(V|44xCA+STOy4?8< zkNb}Es^mz~1_*;x*EAJED?ZbiT=YE7yn+# zTh2V2{U^>OXYpLX4{?B#S}h*aw4KFbvgfl#gs&BaU(fPicP#vRg8y1s`1Jt)b=GA_ zHaDsaBG^-tp1U+VlNeR!~ssNkyNRkWCS(5aUNhn_>lbdy6`e(std2^ z&_@mvyPOl-I2h{1+Tp9~6_;a=1J2ni1L}&O0Lmhc;WZPj&fiTED4ow(#W7TXBA3=d zQm++{R}$F19~mW67$D4FjysbPU}v34U9_OG(~4-svSlBFNE2qrvJtBj3L#tc)NXr; zW{fhMFxJ|J;>F5bV7cOWUhJ4}P16hFG!~Q0_3qjISSG^ZPM=D~C$5+IuFX6dWZ0Sb zVqNBg`pnz)nZMO%x^xP1=KbskfPGf_)7CS_jQfmoexHC7|HL0(sRk&-auz2CyEgjVcPCR&+=v=Y3|y&=SK{~shTUw7 z;s@aX9DIaJn6V?G^*&3?jdMHZ+3VFd6b-MJNZO!cmLAyfzzNe>+wINTTI0g&jlAJ} zpW^|`p*u0(pLVLQhsDidD4U-lXgn;)5TH?S6Aju$q>*;I=kLySETHD~)p`VCzu93d z+u+dorS6OWl?1t4J~Tfd)?i|HhB7B>&@p?2V`Mh3&<@(x#|?EZs-@158!f6=X!GxT z*`4Wk-Mza((7X8qx$Bc>CLcyFw?KTLA|n=lqC0`r-9TPm3#( zsH2sTGG9@X{`u0@^~Ko{_W3MA-{Wescd}@pKJ&C4^$S?`hFcV_|0UBpF2&5b*20Bn0Jw8t*&S*8S^!uxXag#8>P|G)<3td!e0BzHmF#$6hR z_=^!nNV2u36aTyW_vQ`w0YPfRqiPpZn>HZ8Sub)$uk;KEI+X>Z8dL-!N1<}aHTF{% z@DdLjeQ~$mkw`65ai8qqJMx}^&u`2@$qjt0w=aJ=-_CUV z5c5%EQdVXEg5+`Y#Y}$Oq(|T|0k-4}_qjoQa7Pd&=QF>9sBLXNGm59Ud#1M^egkM` ztE5raD`y6LBO`)>E?P`fL2HaNdT@tpZVZE51F-&S5=?!!pD%njF>`)%u4o`eN%$gy zI*Ih7-{PB1lm*djgW%f2+(;d9Kw$Vx(H&=2?x&7fz64W(73qj0NXUAy>|T|{sfODJ z`e1?J9z^AQP+!`?2OI>BMsLAIQ21&+NY`dYu4Z81Rs2LQH5tS{kP?lzH!tpPtqX@% zJ((ukQ=`*AUo?j5zu5SbfQVg?`4pE!jsoM@*wyEy%zY=0)RoKV8=BFW64oPv+mdnl7rc-nn`q#!dm7luS0un_ zIP)KXxhGUeY$>zntJvjl%eHY+feppxi&(w;(*oA!MgUax=uQImOz7@%FFuGsUW9Af zv*e;j9?jnDrqWyAoFtA<3?luZebX`5ftZEv(*~AbpZME^qK;RGZ@05gWI5y{Ru0R+ z6ZEp+fvaZ1BpxcK+wL)*`yx9fiQ0tRubW#%a=W75_(P)T27ND6If2`2h|%qWWH`fo z{3;O?G#h-yW8@YpVpZk|y|$w_q1WRkxbLbsa$%K95Tojl*; z1N9}|Ief;(LA5h0Yux2{7Z{rh`&4B92z89jVTO7Lv#H)sIkHcNZz_QdHOk;FrPp&0 zsc?@cyc7et-LT5-kG(~8vtO_Fiq$=Fk-C+MO8 zItHr(REpe{{84`uuiHL|>bif?Bdk3AKdaB${)NK&{<82h>WkVcD`e~KK9=7~Pg>q= zFr~Pwa=b~6|K(7OqZ&C`gz-(IpwQ)J6MB}EGu!rMzY3YFhW29QG@U6oE))vqln8|9 zLE1R0jc0dQ(QxF7qwJizl6^O`$)c6>3fd=Hak*kUnynEOg`#&Tsr8jlWQ7fkA(0-qp{pWq;@}~ zQhbACTbK=3MP8uV;)ci<$=CJ2Zcyv;VsB=ycs_1a_Gs(cb99agO3=sZj)`rX{)3h- zjtm5!L6y+1M6Gu_oz<_9_u(Ivz zylpQl$vwyyv^Gu@R_LevXwa^Zj5jN-efd<5v(dDWZ=qK5L4{sg!j}N(B6rxDSg3@v z9}k{K19fDo%QB0}5axKHUY|hSn$QdX3R#qb@c;k=Y)_z0L-0Fuw0Pw$i4kbiH!p8w zSHsmd7Oh^lLE6F3YpAkV6}E0HnK@JMxM@6J`Xzg=(DPKz zL#Qb^di3ONk3KtnZD;r0oT_oB>v~mm;_;Uf15vxALRA)wc=-pLggD=Gf#$8aBo9hkxcr8XS<2Z;2g3(1(vOJA0&h=?(WFNsGP0_mZD` zz5LY3{;+~re<+m>88fmMDLp}vz>oNmj-~Uf}_t(^*h+(HbL$NA1csuJhz7-|94GZ>^#~u@ghh`l~gn-`V zjY|?>;9un4lSf2@M+i(0m=~Jw*6`hpp>RG8xl;s4w=YtyyqD9b70;ZgM_SWi#+s?* z16mK-}}+Flwir z_ZcsSzZX2P=P{p5{PfU$i-YyqpljoCLDxrn=*~$3s1ybq|&yc=ZxZr6TV(eb;M{koUeO1%j;EbS8ExTNs4nI+6vDea4QBhd#-qI=2n zIyhNq&)pl(AF-x1!>rCv&(JQ@ z)Ud_=Qa?;c>GnJ`4Ne(-zh0MKe|-hpkpN zJUis8Dm&K;h=c^7zCsAzwtRAX9>bysEh^G+uvg614cjzvn@l_kp|4cgsr@FlLOG#r=p8@QF?Z=U?(Bo7L$~)y>GqEy@`HTS?apnl@rz-vY~9#zX20&6 z+@H2FLHW(a2|*F8dnApZ?6pp@A{+;;;V}D&f$hJS;0Zvrq8F=jh_eWl~0~i!SO-tE&kn zxlKw12TU%s`ibUew@wrfC(7K$L@jSnS2(p=uepXZr_IxyO~a8n0hZTV|yVIn4N zW5rB-p)w6$xZGn%e(&d{asg>KU7Gt)#UmSZI>(oI$<1Fzn=56;LkUcB6x$>XM@^<{ zwwpo-xOf+_01G)I6*Di4kC?9zD(AU(`x|49{Y`=~J5z*PKgjc>!g!L|-oPH3o&Ymh zUkR8yij!7^FMDscgt%2alAWE|T9q+lEDe;D-TwKOr zJeR&o7pfVOAL;>t05o9Z3MzZMCE=f~$w)3@KOF_kMReV}ED=*ezJoJQyu@vw!R`#? z(tQgGx#a?jQV&n-(|*AnB_hTZv)hE#V?P%O=lV=@l0>uq?j}(ac<)mj5cko2%5GHI zFUAO#+oBmctKm38gHJVnF(!yzHalJt)I*ai-;_cUlV<+_lGD)BuLc>Y@kEEGh6q(A zN1;O8D^VHHMxGgly2|~dc+0f;mq&Qs)ZWBctOVNSW#(1ik^Zy~*v){sZR2*0&;COO zVxsDbQZtiN8|L1fFW?p8!9M{piE&5$2H9DnuCA{>+xaLUpi^#8$$qxW$J+x zfBMnvY70yEc~E_ox^9cr$t?|W5*BT?lO*w9xVwygF*jzgF{d9JbTvJw{)u9`?{^Ds zClu26e3ZxGJ^gJ>QhrkpJP;d`UyvH6+9w!JKccWlj}lIP6f*U6^UeV=gHvG-=3l^& zn7v|+cm}6RzpGN!5C)z!z#0M@7j5Q(kGv;!_Zm43TWL?a-7cVxQulyHwo(01PtK=r zgU(;zTY>rP?O$9gYzyu;kPLvM?#rkWQtl0wnCT;eg@Heslg|Ac&Gv>az3}WI>lXKG ztd{RMdH;aJTlBguh1o+M@_X@F05JE{SF#*3=E zB)u>gvaYL`OROlKmt9)d4r|^xWZFs18+V*m)x2?V&^ZrF3Lxw&wccGSfjFFpHssgH=c4~P{~o#gi%%)Y|BqX@kUu?Z zFgC2vpM;*1)KRXrey9%jPBUWGAME+LsY7oN)*2n)QylO7;*M zNZ>ez)s9X$NGJB4P2sNJC!eUm9j;7RF45Ty#0vuc6ZsR9>=Y-+IhStDy@TUTmdmFk zvLMYx?iqCstCUI}M1%|zl;KgI;iY8InSDM*?sjD;q7JvcM`O%Gx?o%p9TD%Bzyx83 z4I>bj8sZV2JU9fdmep%u@o7^6i)~csSQUCoj75!M@oyQ+Q67u#J{g87!)|c~#1XXb zQidP!$xT)@DCJlVVlX!3uxtOWXT?#;mFNcwfp^}QbrB6v3B{|>zVQ~c(Se!8@59+? z9CNs`SE8G?$y(H!oP0D^Tp}V~2!$vz&x(OU@mx=~=H$o>Q^Nf>%5suY$>WKzn(oCN z>NC85eu8SUCT=%n7#e5rMEI>Te3wt|Cmyq>|B}eHmvRk=o0{q#rOnX=jdj1h1yl2s zxtfLgI%;dS5fcudOWZHWB*e>9nN?}?wZi!M4J)hUW z%?o=pa3Tnoxnp*ZH857ZQ7+7ncEHMOUdKjb_hZQkJ!AJ(qWcw)T#d+S-fndDuF3PE zbW(y3rg`Tm%h#1ko{AuY2xp7Qj`upihR|m0@0-p~}!cL>b=VliQ$bU>$0o z*F3{6r+KF&SNECbHN9h+2M;DmXvU&+dmVcOO01cMibS!`K-&LwQnY^o$>X4HSJ!=o#gBB zvVOntJa{k}1~N5nQda9US_N z1=7K%8ez$eX5XvVNC$5;>hg>ZUgLYcr<(r7_(qXnQ@?(?CoW1IwK}hU&G+@FUxRV= z(OnW;<;y5HNVz~^l%(6M-@tXoro)mmo5rRx>yHpV;2U!4cazNEI#0hVlTh~jMc-&`ry(K|#Q@^{EVO#2OJ9;!ux$kqU-&j^{L4j1#gq!+(U4@<=W8sD6 zKlEPiIFH5qKTTj^8NR3td&L>Nu-vB%Kjo9VP}O{v`u%ccqC8W-b=^7jn<$wHP`|MZ zyidmXV%c%pA?F7{@snK9Fj3ABD)fw0=sl$;vbdkHB8?{AkThGyn?_Ofd`On$&1RXg zvppTB&PX6-Dl}SIj#espJXM}lhT%Sgo0!O8DpaNn+s7F^Reqrieo01r;7R~GrKNb@1@3U6Kb)TRq_nnh`~mzZQ)V7U}#H3pZ&68Gr$rH^Fq zepYz*u0Gehe^#11`#K1_<@1Nqv%3Bdd*2=(MS1m~ge)vboJB#R<+5tD!E0hc69ru$ z;siGu6*VGis)(pmBWwU^ki<p*J^89Ypu1dcP*f`8VC@;8<%=Psv_QIjS7Ml z6ePdz_dGMRGrJpzrN8&DH=j>-W}fRg=Q-y*=Q+>qhvOSV7deS80k(|Llq9%54} z^Uy$-wP3ZB6pN9jTA(m!^_zX!Hoc=$DG(lupwhvWs6}?zgAwAwV8z%&#sRu|?$FUBU z%`L1cYH`JCCbjHOJO>Cjw7^Hn&;YA9M_E+`SPL2=47Gt|l~f=W@JL(O-e^|AgOvCX zP39T@#TyHBHlwVs=!;ni_$|4RjOTmEdfK@4G<;_~!9EAp&AZTkT+|f+S=0TNYg!34 zmdSD1mk_>fD+#}qgx_k;bfSF=aV`LnAjW>7OMJdM^hsm|ACey*`DU;8)N#*2PUX%e z4dZziJqCd2>@42MizL*UPTXl>G9F%yO0KiuT&&iJWuHj<^K4wXK4&7+JR)hh1f6NZ z@!WUHjJ$tdz$y+n9WY=mAF%-fhZ<8oR0$O_dA4ki>z%HuOJMVwkR(2(m#^!V90 zEBh<#VX?yPqd3 zgPH=8;#up=D&NUKL--HPC@clKU^@8%0M7Z~xH{B|ANl6$Pj_Jv^W6oT077|uRxYm< znpt6OPL<4%KS-U$d|drUV9~7DSga_YM)vtJN?!aD_*L&OsAuxhm$m3bjKR-Lbo zZ!n(Qgh(*dnXlUn#buR{8g}a9*URUN`SClJkQjNrfHI+Zk_qC!VzXk#sp)e(_1LXq z#T&P7Vk8;{L+p8^ts1O>y7L83Sm;{(Y*MgTTr9@(!Yh34kr@nWf1b9vPiW|oQ8o;_YXruP@L@SD46_>2t&lTCow z%>z~J<%~^-5(|)6vc^aI>0z!$!$Eq)RV3%;J0;gWOrc_Nhz$XNGFH2l#m9ZyUQP1A zlT!1YLL7h&Rv5>$7B5H!;e{7JCYhgAG>V^-%T}(@;yP!op!a$G4b z6o}7awkz0FRf`#*Z=Grpt0c+l9NGOonun4bZ^y4#5KVjmWI_?xxkgXw46~nXXA*Ew z-!-@)nK(;*YotCRB(mT_m*2+o1b{R)HWhi2BRTL@lxl9<`Zz-8{O8gb8 z-5g51gv9(fVR-gb|8U&*cMk%F_tS2h;K%bIt(kVy@PoA`-giYVBwE@c9S&;MF505; zCrv_+-Na?&h$uopkp%pX0SjyThQ3*WiGwEQZ(E@g*KG7-miTa31FZGN?zs3BN!yV0 z97)=ylDBo8l0*5(>NsHsp!b+7;FP(wPH^k{#QY5I${D)kzqq zX^U!#8b0ipgDa4?1I}*9?8Z^>VAzIo(q8vNN#D1hGkSDtyVaad&A9RU!=MMpo!7YKIZ-M3Dzk= z*@-Wp-HX3TEN6GqwnTzv;=R+t-us7i1Z{1S^f8VotdgeVy|Zk?`)W-OcOxpcX5+LL zG{FnW=QU7QK@ZvG=f77UMc)p@of6IBZ2(4`E|$D9qEz zu9S4S1!YF>!Mx_$Z-(9KdZhr7RFwp%Uc&AdE5sOjFgr-IzdO?-Rwl_zs$RlXf3`Lh z1rCN2Z3yel9?n4h7hCC|`2h(>7`V%BDNfv^xTNcTDWePq?sJd2XgO07TNV^`|6h}B zDkct#c6B}iE%dkDAfbjs=($tp+Jx zEE~I3lzg|pVAj5`{GRu^yo&=-zgcI(_c((~9ic5wjBXmNld13FK~_r;YQCZ}R;OjW z>P=CN4g=WGSkmkeul?T+@vx&fnH);Rt9|ZX(kZ51bc$ECzcIYO*33hjhUaUIxAJ+Y z)-<)NYOWXwm72pi18OcxE#*>kn?M**bJ;90J{0%IJzG$ZK5lH{0MXfzh6OigHp`y>y01+QjM!`(C;@93q& zp<5gse~RFctauZ^)mbrhPY<#Dl96xQk$Zt^yqCHKe?caS=zE*DzwJV z#yBiR1z2PN1<3?>IK)Kd`b$g8SOyLl#+%tfY21H6=wK&=R{QEZM``iHE|i)Dl~kz0 zOJqEu&?#FQz@E5TQIl2sQj@}h^Jo7rsL9S0U}xdxre{U1ZjeW3sfHh>HT?$Wo)w>_ zY&{ZDQXsOucSPLr+zi;K*NeR(?l+YP`o#EA4xQx>LTqlg%udDjE6zn;8;!Y+G);Bc>mZF5Ob&whu_UmmR+ zDJa4KU}VXpveLF`!^7I5wun| z+8q=~yyey&S>Dl#yU8nJ8`8>}`mA~I(`065sXf2UI4XApeWM@M_6*1LUgIjsD0lNC)3f)7op)9fkY_ynB*;HIM!K5DpF+FxV|^(ef1?S&}(Ps3H=y-|2R zq7t&ACpN$;-~WTl|9g4EZZO7;QhK?o^eUFlwO8~+Dd_(q3(LS1U51{e!<}@a)-((y z0sc=G(tkHQJYfQ-TpJSBe1j6thhljM{ z&?0~xNQ^{NLZEZBrr~&F3doD@ugG2*j;%-(BFwyI7BtO+P}*tpfgEdRm=DARGk0a| zB&7|#n)YU)w&=W^NjsKiXVnfh&g-qm2lO&-g663!(94Xo0%fHuBB$aOb*#iV95l~f z>&+8+MN&$F+V|nFuLSC#U~+1%1{b0>b~F0+;<`47rg`h7&fvrvzCj=l(~YTqOpQcj zH(H3)FVtgi;i_Foo8?_~45qDUXUkyXnID`!l=Or-K>!#Ayh6E0(NlspgWTH?5k{a7 z{Ou4kcr(cOcd(mFVW;TpvuKt@KcC5IJ~+bpV|lQ(g?+dSW`Njj{oXy9OHIa6#|&JB zceTGPM2$I_M^wgTW2`X^Iy8bcXg^1zcOz3_3gv7$`W1@kJgB8h^fP&`9FOTpg=53~)cEeXf_o=@dlgrjE4aS+NFZQ;cJ zxo5^c9vS^e8`<(j?#TMxIT1`m++2i;u)N~CX=7ArwNGQ{JXZ+Ay++X$LD7(U{459x z5sJZkB{Q`aD)XsiNW~h=AkScBDIgb83GzMq4zofA>je;njSkOu?$J9!rT8T$RvIO3Yk|5U0j5EYC72M zei(`_c5|)Ih?f=YRL=H)ur(S!mqv*_T2Rl=xb=iRE&j>q&ckcr9M)@ z!J9Rz&^Z4%Jw_UUhai#xNK@Z3B+Uma4KT-Gx`03hm4d;oyGgAvK7!ik+HJ^GeqJd& zcQRxaUSDHw4Rvq_9NY3HtJ3Y%Y5E$2E$SCHO$-Gy;04T}M7}xmbs7A}u5}ImaS%(E zIp=MR@Mo=6E0~ZNveo-71YN_RxbK;2SB3yHoWl&|Rt9Ntb0ho!<~;~9f3K?fsrx*X z0_G~g_7RZ%r_<1=!`Y~=KQH}58E~;kkELBfLMV+(vIAa9?b%oW>uTcNQ$gLoBrEWi zKLq6i>?veQ`SCsDc5Dc=^Og&=qXBLEk`(?+&p$0K|5%m3Tc-TSqJF?V1$qbdLlul- z+ecffg!WI$;$DVFxuu|(sJxU!Mc%yl?7h5dZ+Rcww9oQRNTHAL61d{wzu?vvIEeh% zOAnqV>7vW>Tg}^9e_eZ#e2Pu}5L$EKjkKc} z6~&el^MthWz2#9}Gw?nN9vjdWo{wiwO6gphXrrvVP0xS$X2lLoFQNwNiZ6`{HQhae6Rgr3ho$bfcrdXVJO=?C@jsyvWQOD*1S>KqtG`~I40+h#j_#1ztGvyQNe;jRJmeH73oH4c}y;uiQa)S!bYzOqi1>S zopSAo4SM!=dP1A;0Gj3T@feFvC@2bRPrQt&L(Ld*-|>Cq+MlM;?AT((x`FB6lXdNh z_jIEOd5vK+Bn9re;h;>9LTwjC=iTKm&9GAbJW3Grt(wq&AVVd8oZ4R@caXlT{kISto$l29&i z2O}o>pj`9&>mWXUmyPU|pG^H5b){`rn0ZZ&1OV~@*mv5Ck0C2@eP@vb`1;5L zii@4c@MEO&fY&11@SVtymfFMhSl;KKB3In^GrOvB2eT@>V@1r%OyJ;MTZ&HRb;Vii z`>w_}c_Dx^KmL3zXi6UwRgwpP(MLedZO^DBjX-Yc#fp@cHFFh8N!3TwYeBmb<}acy zf|5c1>2#e_Ay?;vFG8@vVfPs$@dRuXDbyK(OhPvW%~Qug-@!I1#IgT!=wA_pi7S(R zPu}lRvU1ev<9`?3_|{}##3K?@@tKy|mSX#JoB14`Q&fcZa7aj)sJ&4P&XdK`5#3;` zH?_=$YGFP*fhhlfS_ul<7qK8QI4mP)1EJw=;B@*P4tQMj#Z|Z2=64;cB`v!C8oAq7 zS-nLnJ|}wf6Rvz2Y!n_uMT^PvDTjDkse+~b-6<`#JlG~~ctGPR9g4>0FR;0V)Um+I zWkLJg4=e4hWZ~e&9<+vDlOey>Y$|y}(^E#lGqC2A%>~BE`?QffombPOWf^(D{V}$E zuhQ-?kOkvJ{AQV7E?_0TUrIXg=q)eo?l64wkrErA=Lq*$mhHF)*^!X#V3tC-%x7NO z-68a!wP$ySHSRQjE9H?XxepcvRxFZ8sjNX&c8pzFA5_+Uzj+-BGKcLZAd(TKqaFGp zqdE9{D^!*>n?;kr7`r^?jaUA(=D(mOv)>Q1 z8?8BqCPccct9aww2?hOO)rQz;%J7}`l~N=9 zp+Mbg1mpy_A=P3`y<~~Efm+BMjh$`SbrS1apufma#!@T!%^`>(S{UOD3tmm}cybLR z+v-XG{(MC&;H9sUJvC3`>Yum?WMOgU5N!B?-QuUG`)>F~JZTf7sBR9K2s(a1&Pbt8 zIp<`epHC(~R8u~xZTSFCu%nX&pcol|9+;XOSaAg0+cB&)iuB0ILQQ@goQUq8EYwy% zmzqn!WjWDhlUvOZza#Xd8I%~jJ^!w!#HnKj0a%AQz%S(l*dj*W3PhvI0xs!13RD8L z_CXIJG)?^@C>{F9r__;n36;oI%E*l)!s`=CCICB>stg=qCE3w7z-VE$=8ISdZN?CW9CJpyavZ=MHOz6n%28nDn9m#+s~pYe zyK)dv^K|AYMJx^(T|c-_)?C!_89vP>{wz?Sl}&VIBm0{_mKkMIGDPMvKh>1P6w2w; z=E@fYz}K;eREWjK>c@Pq!?j|r#)>{rAZP*Dj&;fALWBXOM@PAG2uiQ!% z<0FKbTU13oE_7u>qh*=R&xoDyL^Z_hS8!M+JH!-u>rb}woPX%CVPL92#9_!lF@Rxa zK~KxcWTT2?<`W94L^Kn<)3{iocL9WfJfX&=mG3ClhcMudNN5WD9L9xu%~WDW-o1m+ zZ*k@}icc~8d7ydIH?_xM`iG~u9-wzD(PIZd3s;L$4nc_ZR(>M+6cC@EYz6>myBmzD zN)Pgi=p)E#>`bWa*M6YK{0x9z%LPc(UUZzuEC~i3?RN+W?NRk;FmJj7)O*F-eR=iO z^pillOntd|^|wS_=>pU)&|5w8VJNnJvE3q`_LzPn%0tgYR}6F?$d%%cK~umj1nos^ zEzj*-%)^=gE>Ii@qFG*<4?$e)LbRPjuzWmTnX(haD-*vQIC2!15gx61VrKq88-uJ$ z9~TD%^HQXjYQXO$LMvrW5v$u_NzkLBQf zHQw_!NLEq=*jjuA%|8iZAIQ#jrX|empQtvHbY`?WsbVv+nR^);VonOPp;5g2vCr|} zz%c8eSsA5&^YIDbHIIMOTOK6HYkS$_7xu6~27LnzEZ{*xi=>;E{*fA-)|yyEVb<^$ zn|o5>{SV6D^^m9h&oA9e`C2n}-DhRM0sNV-U#0jnV3sTr?Rx20mzwN@jOH0|HBkWw zvgTK+m*`dMO4f_X@~vb6VdqnouHJa8E17h~%x_L$T}kpB5AYLu=km2#!Cy(4$I=r1 zSTgU(SIG8f1#L|XA;-89GFNDnz?oy3_b4==XlT{&jtKZYZzL-sb5En+TZe(Gv492o zpiIY-4p9<#3GfBT!*Y(cKxWClGV-Ge$6JYhmFV+;*>3@*gy2QFa~&3!@P_&Q5T)Xa zaG6EiccS}bheDF>dzl0@j~)*)WRnbD{yPe72dYj%b-*2UQr|&kbpN%YqBR)%^b#<^ za$z!W{!@@2x}RfOP*DD;ZU_`5lcABvV2(UnToTp(~k4$9g0)Pgiwaag!@{FbjD@&1~+u7<}RxUwQD! z;6L8Dz*ST+i<+m38cnLC&VO~rZ=bxSl(EHcGXO>=esla~kQGlKZRj&eOh_meuYupd ziI(8JfMr`C+Yt9ur1<7rNhpvF>;g ze}{H~|DEewl=X-(##~3e^`>vNzI_b+eKw!u?N%WI~aDkyNNu zwbl(P+5EK9{$?dp(r}ha_HTDGDeZP7Grz?GGswy%?!l7KcfrF#-{&sqjJ_H4M^(&) z|M8T9v8t4A<1*-v5#W80&(mMwn0U(*AiQzFG}tfp*!Msm9l5hODg|I!2BI9QPdW)*G9w7&BllaH|hAw0|9u^aXcc( z&T}dvM;Q754!^)Y9|58ZG0tS1&t-j3e{U( ztCzQa68h9C4xM=U~dLM1}3Y^)zQ{dkV-I^<@!x1RbdP{MP@FK-qn| zN}!9esT?Z-9;gI?unN%`?4|PG^vgk?61Jr^pAknZ#m8d#8d{Zl9c?xh{7>r-4nEou zn8ZOGxO6O<67EWx7OE>0Wgov!QLG3QD`_1`w>HyPr3t$HLW#y`SWVe`6(9oE^+B*Mudr&%EfGLWaBCxRH*zj77kMtt25 z624R-|~?D2*MdY-Fvkl6$KomS~+ZCXXKydX=@8_Uw+|NV@nRLpmAuJE9y?tF(wXxw zfdz5OZTPusA%4DpZVx#0?Vf$Ia#HyhMc(#P&JI`|g4qYl(bVjJ+&97#v*R$tY==dM zJO_JX-et_sB_?l(#8A@F<(jRG!AYge^Ln+roT#AV zYSJRY#Tc=epB}2Ti}c>2^DD_eRj$rC?mOlPmH^_R+5J6OK-?D)rwN-4f%)`sBk;O` zs#UQZ7Odh!pgA4)TFIspvu-R9?Vr?A9(?8eZjY@*wa7XlaW0nb&N7!SaIrM{xAV|{ zVe*TO!HNT%05gB%Btm$|We9y;4t0<7yGbs;y5KHg90oJ$aGd&(i&GzRaq2^D02>w1 zOTxvC-Jl>>EB1Qs!2foq%k#jmH8+w3DfV7w9AGMBnS1W&6bJKZUB!u^Mf{+0-1vzr z>mN=5DfsmTeu*oRbhZIbfmhZirPxs73kLu2ZUW`sZxXb`u&M$$HHe($*Gu%!W+j>SKckw3fIo;}%A zPtUjEhq9o&fRWttA_5n85~U#d(U~rNpj!$-v48E6Xf-(f#`{Y))Z*+Sx>?6#M{P!> z;HA&xuF*$S)izl;Zka|I^w}dwWxnbpN`b$?g5O&|EJW|v6S~O7k6q_3 za%~U7KgVlHSZn`xx6tcmo|mG z?bAj23?=I8Vkz_~@$xrKG4nAeQ3`!>0Z%%8W_OJ~Qvc>_EbQQmI7QLJz}*MbMUaOQ z$ODe%G;mFVb$W~Rm@Ywwy86<}hAjBnWZpOmM7qvHBrkossK3P9`Se_yJ}Id8L@kc~ zA_VBZqnBS(T-Q#{m4 zkvFY*IhX)2!f0Y&4F63b5k>={Yf&9K$NX6D%=U`h!0tN&lB1iZN;7KkoC($TTI6Vn zVuJ<|6?C+np6unNL1po=_zq+hBzx{dCn-gNj84z}3=%(~Rw}b&gSP?N8B4m&&#z8P zoR|z8%?m=nc2EkoDfo6(zvNOh?rOH_YBfxXy(q;0nUg4miI$zAXpAP>L>9tpVYK>`kn&+0M;|xiBjl0 z5dfs?r?mYv(88E~6Q!dqJgn01PkU+2Rdf^VRsOM>4ye<7|5j`K9_UffwZ_khXu2NI8vo=Z!J*AeQm7kM_^$zH z&VpWeIZ`F60-Jd0)xuF>Mh%`bi>O7?M+O=6MdGJvDxiH8^aXb748?d3%VJ!^f)_F* zZYW-rm<56;{o++d^V8EOPDEN{DU>X%LR6CIuR5rtOEP5HfPuZ)avCUa;LYyL@$}Gt z`qke40lTKfR6q-&@pg8feKPK6(wA(?l_g1f_S?co!a@ZnlZ7yUOSS~3jlv>9D_5Ny zS{)(_1mW?+vei=nNPCk&;i(_z9kPu)K3}zSyHKjXjMsum^)j}@hJD=_3P(vDuU0JU zfv?;iyjZc!MR|;*>7C3sM^&?#;4VP_4}U|L{R@sBM4S{}_XkX7<1}DLG4T`pV(TgM z)>A>fwELJm@b80uJ@-PtkA`+ezny!&wbKw6oB3r{ko{H z#ZgluY#K;`l@AzZEO5taa<169zCP34;%tFali2E&+t;3wZu(=KYw-#eJZ{5 z5vDrcNt8mL#*;JAr;FncssBnWy|UN!JL8W^s!Mh|l{DmOu2$ir%CW^boxbPo(@S$6NS&N2ca6EPns|Co+DT`g0q8 zOCP{Ock_Qx_}@vCg5*OOBRc-nl=0OiwimVbY%~yhIPsp;o{EoreB`Uv!bqe5Ay67J z+z?L-?2Pe+PGctBuV}qB_;1Jmr>@R8tv|kE-}*?Mh(Q;&g?7>g6E|RpXkRqTrcDak zkNpH_8!iw$?W;AnA$KMi)CdBME9MA#(&c}y~P>w^^ z#ryDF04->axOF&V614-ct}4x~1G+B8|MU326aP=+|8aB4NsyKSw&7{v?7?>*{r70q ze_!8HlWzZ%apnXqfM!Use@3VG-=_eQ%=XV0irzq$Ltl=6mHh+5Y3FDy{v@Me0|^MC zI0nG{iLhrI-kmobH2sDx0mI0s>+a`wT-stn4&bWmj*;=M+FJm84*0gNI~aEtmt{`K z3Gx%h@UGfwexfz%x`S_b)t;xvC*%Mc%&^DHy5q(6W`$6$dB;UbmG)y|k8V?$R0`ht z9Ff6}!ks3tqhMxXl>$GrlAq?Wm~~Bj;~1sh_UNMjqz{3aI-?UFUsVKZ@0b5q%6|~c zq(pzG=&$Qod?)&=i|})b(tLV)C-C>&Z}_GB&Eqn||CbXxg&+Id0a+&b_t-=tj5=}n zvew4IQbrizzfCut`vshu=y zB7-X#QYj&ov(8~i6+@~d1}-PagF_#vC}@ZMA# zeM=s4y)^PM(Q~PZ0^UTz!FM}}QV7|8EC9dA;b1m47kKOFhHzvHTuimahMtSF|6pHs zbs`Ae<(7>7V;A+=QABI=O*ZZ+5SIet{nN)%{y~+Q_1QbebgIv$cM*PBZhk~(@ZZb| z_NzaU^3OjvGyI3`1^zCMkHuenWsOaLi}&D$a@)fJHqrhZoISRkCM>bqXS%Rx8o11ivT>uN;ZD;$?2ldb;D z4TS*xHj94=zw|hM?8A+e(C$Q$D_`#fK}aA_!W26;=q9k zUm;gyD=en%wVK|slzHox!Fb8frU{d8pUITcU;G(F_2Q_sZ+d^Z4D>f&yusT>cdkUJ z(@dsTprY+A^UgKyXi+m*aEA3usl~kQPG|B;21SRIMtg2bx`QN3!RL)1hR-b+ z={o(N!Ms-gS1*X61=*v;_#yq-HM6eP7A_!G+QR$zD0!#$T!gGuA$*j)12614Zx5%( z7dRNk?^LhQ?4|}paTOyQTpZ-6u6;Q=y(RenM=}gwPngdf4cvKgk;N$1!-IcU^@a3D z+osrUnL_1q)U<#4Ldrkl?9BS&Gibxk?9VRh3mHG3N2oOX0MPv&Cc)mfb8GC#cfXnGg?A-^8z)tRojtmJrL%(XUMQn2~W z5g>l2{*dXjz|R;2+hcR`AABGg=cbbr(BNU$avKZ;?4dC5{8E<*C7Hl+=9KR}i=4sH zv?`x#%$_lG09u0Q6}Y%NMPGN-ei!>=)MT3m7H zRM|gRH)Zt|$@LgOS;;$R?8P5i=y9RBgkPwq)Pzz1o6PrvAkp6Zp_9D&D8>HBo_&hg zA4@jpDjOvG9YqqFAiwC;1j(+$*`i((Yo()DBljJ*0N`p;qIxBj^o)$ z0hm7nu)_pi7uZ52diDl2_i%^wZ!l==DJ)F1DSwNUQTGBYlf4}m^Ah%5?TtP^Wc{b; zmpxaf@K7cjb3&!IiOHi*!<@OYMI{FZ->zUuy7QvVU8MQ@+aT)9+tclIR zn%EqETKb(HP{iEMHthl0lWu~8RpY%HjK<|rwU9|6I z{BVACiaaLOaMCb3-bs`qn2qour`z`tZ-1)n@mSh^2dV!`tdO$%`x7k7ohG2_?>UK9 zd+>Agn!y&_dpEx`AC$qiR$4+{dF&!R)Oh2H6ndnLcLKOj${gq}ZR&psTF0 zw~9!kB5LXJPO%Ek1pCn=8yYyfhOxF z*fg;Smr4E}a}uQxE|&ma;cdG#`%-J3tN1Tvi~`aL31Qk``JBD|Wk+PF(C`>+j4`S> zD8u>#uB64yLiS)gg`lu-J`=MP`&?k^vHQYO*nIO7tc`L;EU1mV_eZm`A7I|={@xUR zOR>ifpIsyt7K~vW{>x3iG{nCPkdB#p&co~0FbV2+e1We*^?3M=tuCyq{DFthK2ndZ z*KtD!{8G7n@Y6dWo~eUo1>~CV=y!+Ly_@d#Q^NC~>Yr|CC3ETc6n;pton_el8z)f; zKYV>~2K_U=i~bg=e_csZA3OdQn@wEHfnDTGY8EiUM`jIR*t@@_i~5)wK+UHwNufu| zdM;7gaVJp>Zqv#9#hwejZIm*9 zaqa;s+O`!so4;6;T8!h}N2~f>^B1b;yfX+ZLXWv8voPg@^ERDgQkbFbKnUYO(s_FL zQEQefe7iKCEBO8v%cU$Gp*5~2t-xNK-_Jb1p*8&#X|#EN;&tkFh`D(n zUn@K{Y5g7V>nKdFm-Y1DBX}X}>=LzN+($owuj<1bhYX!6>Ysi1Y!G#sy&H zya_jS`~sZGEalWKPE}rM_;%5MBjcUT=i9Q8!i}ZqEcVZTBjq1dZ1G}>|K^#aq*P7is!|gIw-l_k_*+1ms8H?R)!$UT-O>yh!OYwmgS8FcE zVuXYhm)QH2Y5Q@8p^L1&+ADwW0wrwz?w-!yw|3$% z9>IL+{Cy-KNWYKfWu*0viImScs7ojQb?89*|SpH}DhW zv=#$ifv6)mlHi*lYcQsKfjNR!Z5!_aW3TuC;y&miat$A0o83)qW$e z6gZLZ8pe3^aaZSCG1AR4Z#}mY`Pu->dH>`~%6}Rwlmy`v`I^PzJCU!w+jAp3wdd}U zo0Kz+X-1~obKmv=0JeSLp`UZ!545hmKTq*XA?6rH&iYK!?lsUb_qDLmd$o=QCbN0lE4P8k<&vNv_l`b!Y?6Y=Z1vm7JdU?t zPhf#%t#Dy4t;K#No>pz`s$ydX>Y|`;l`O0+!NS@QSEW?J9+`sqB7RatQ4~sP=Vedm zBHQ0JU-W_II4mVOhv?y-eXM`(X8U6^^ybUH?2O{w(*3cg0F2E3*pK%@?`~TBZbpl? z^HDt&*<`1JQ)KT>vUdmBb3k^r{5ccphaHn7eRY!b#<*-nc_Y#-P`a)5WK@t%ld2o6 zg{8Gvff9Ko}b z?k|{}1yaYZK=>8;a;efa{^AzxK|Qtte37L!E&!1lcAa(g4YjrX8@{{thO5hKwT5qR zh+I9Tw#N!z{Sr7fan3Y7t=faJyxZ^{>(_)|Tm{^tPFoDI#GXn-4V;WXBX1IZ8$Li_ zKJSsv%Ga9mkQXVk*F-mU$F4xFX*a@G_zICQdx!4?Jc0<&8aGJrK@7%;*YETL_)RTZ z<2(fGv2Ssk1Ltcy*5KNMlMhFnk*)jI);=K_xp~jD)Z8N zzsGeWM|}k#_>X&SM$AO1=CqN#P607H(Vj;FLx6k*s~f=&t?>o~$8wKCmMl35Xoat| z1p~Fj5o~_naeQxYf8`bTT^npxLgq)uO4SKQq7$nMPTNqB1v$5T$0ip+5Uu0Nap`cf z6iP6d`vS0KFHk~VL82Q_2&01tMv>R!;59mQP}=CA^@MX;zKi5(Ttv-qAztfE~I^L>6 z{A`JL@pBRr6_{Fo6-vLLQf?AyB+SOac#qVDjVN8|;nEgdXBYQ1e+WSVqYQft)YfA) zx*n@`!RnA@d`OSBgWUaUc?5OrU_JIP8#))xtW$~y9yT3NTw5qaa^WCHg^z%qN{ESi zsY1Or=T-Ef(<)N}q>mg8-=PTZXp-6@RScI68|(ze0Q%{bOaY!412itG(qlK&;CeN{ zV;@<6RmlAP^Ej&z4A~8=C4iBF7?WKK8aNb2`IdCx)()h?U4IYoas5VIX`Bmh?}Wqr z<|xAn*)AqRpHC4}QL3Hg^3g2WQ?7brfJ1}_pa6WxIdfoUZnW6&k55a2E$eW8|A zNYDz&L1GmWvO=~xApl5ny$5qsr2#+^@(RpsDO$Ha4A?JK@~C;>)ox8kP6|Ud{#)k3OT2b6OxrJ@C=8a&`Oh)BO%AYt7?bjN=QD& zdv=IlLb}7VZifUUt9PLmR3&k59}>x{-7{9rpL*? z$@3kGlIJ^M(~(#hu}`-@#BQ;q;~>hm1VU$p_1GtR_WOGFd$_PtrGV6V;yJ2>GNLsJ zeNThvcdyf=cbxYDK)KiX0|#D6)D-yrv0p0WfftI!K3@*kMFZZ+x(#oYf>#0o@04_S zD+#YFJ{{gIuPJz;b#U>AS&j4WI)@kXZrvxn7~<0DebS2BP#`Z9EMPhZfoBUIz&Ebs zeuTjajk^n|C5g!k?pR!Z{ir1JHo@Jh#7@$tqZbhL9xbS6S=QCkCN@xZB#w4eP?CS* zjRm~8Lmkm+p~yRdbX=KDb)d(sr^Qf$Vt^4Y6odE%igNXajbc8+6pF4`pm-efrf}Ka zIFBBoKrvI=bQF(&l`Uui*07B5wwm|i`mV&03Pmq|9MYdQ5^`eW2c;(X@k#vn^x($; zH-7jgehhZ-!-s`mGM4yBqSPh~FqHUZNSlsd#VZzm%mw`LXf+pq+ZldfU@v}9(SjeJ z#E(x8ehhHqhi~G?U!zS_c%xqu%Yt>#W# z5uc8qaZ^BV*u$&mw8qydu@Fcxr-y9SM^vGkNpdavCBd3cV$G)qYX-Qn#y7EMu!A)| zEUc5U#99)iVa-rtogr;H*1ue3Va;5?8jn^phgj!1ipR21lJdEC{Eu+sA0!^Yn@{4; zrw4xqxbep~@n^7uKRzt{ld;5K5~bnKP~x8;@W%uAf3rXMk8c+pG zcmQuci9eqn{2AcJAK%2E!4CfTu<%dD5`RgQhCf4ze}=Rf@Lyr!&s@MC58(gx{@{;` z9+UEq?pW~Wllb%L!Jh$c{P9iv8SLPX4-5ZfEb*5_Y4|gg_-9C)0srL|{>%mZ@c{nY z_Y40VH~zRFknNA|TH%kU7k>nJ@W&;L#Gm=Z-n|<;z;Yb?omj!2iPG_B6~sS1Z3g_8 z+4v(D@y{Xt+x83pTsQu?7XElj`{U`w9|0cxa~1x~=ir~~;P1o={!EmPKdT`A>1i|I z-)iHJT*N<@_8-L^?{(j=Wb-(ZrxbcUxPw>Z6@W<1OKLR}X!x2dSXFdo2fP=piEBG@}I{vJJ z_@}4Mfd3L3f8-+m0ph=9zwi&b@ef+~<0<&#>BS!b9{hs}f97-W4?6fev4TGnrQ^>k zh<|$84EVR$_#+qb4-$WP*#C3;Cnw~_KV;#Lr{IsL7k>nJ@DC~cna{yL1i|I{|_5~K0JnipS_#EV!&cPo( z4a$E2_8_y^tXAGGifTKET3`9GL~e^B9%d`bL+4*qtm!XJq;;EyV#{nOHBz<;rW ze^B8c1pc4wAO0aX{viwhkcEFJ75`8Q{vm}w@+I*PIr!VL3V$TZfIq4b{L|8Az<-g0 ze@NjU0{&R@oG$;IUfsSRYG&7dEAw^f^Nn042?swo{i>b1F$GTe=y3&D!El&NeNDtH znM`G3$v{CxOxMG4Y%;)0sJtyy4GocnXO%oLE!t|$=Sq38%}(ZWOuR>?Rp9Eqa)UFu z!`194ZWy_|+^E4U#Gc57h%s-6`)ZJHA$V7h~S2N7<>qFk+tVp3AdtZ-jz?>)M zAP_ObuOAyJC`4YX=-Aho?aps?@?#rN5uxM}N3P7sqgzRp!weY^!YLLx;1rV*MVJIF z;52oKOrY}(4JfND%hYMzn2Gms$swV!Cuc18+bbv!6Yo<;5_sVm&Rn=?aSOsO*RiGnjl@0AfGnsF*`yC?(__2CoZ83aXo1;# z%Xb}EoP;kc0jjhoSU=UX+jIj3#8}WRp(HeF65CZ9As{4ULToyj+P04?Qv5p#>N?S5jq;AReOAE`{ybA1^B_e zY)`r0mtb=}1E>7VB|oN=TMIYP9;vJ)EXD*N1Glxs#}xz<$AN2X-s97X=N2*8@>u_z zzyz-=#dhr$z&=S^wj_7ER?~uGXKq|MN!#LU1T`mVCI4!{Y<57q^_^V!2OAgT7vJb9 zCaX8-%zt14+nVCmnup}@;F=rP;(r7FKfr$i|6k$%Ta=o2x|F)5-x&2Ac#e7=b&+}= zf4O=No1~s2Zjfimzg7{Hb^O`LpO5(S1%JNbPsjE$?Zz^HJs)BJ0zSt1AK+tx|4BY3 z`dj#z;$Oo@#J`D;I{(&5W!jb&{;cB9I{s|r&qw_Efpk0bNnx)|DnyWCGWStQDlEuJqJE6PY+qanq=k4WNJ#15+rTQCNvjheakld@5&^k zT@Tyx3Ch@l|BokWZyo_Y*^=k80YQDNc>;u2+p-4#&@*n;kW>=(+m`hx<)Bt%@*_Ev zn}v?(6#Tr|t5t7W6~U^|mcXPxZ`C4)AgR7p&t8RY{WrJx!G{}ruWV-lVgDu-+&qWD zC0PjnD+_EvF*(vjiN3X!>ZwO$#Udoyaz!c7bD-tPj{EPcm@Q2m~rGhm6F9IEfwIU^5?2K6C3 z^!1-grA8e9Sic1pgb@Ke>%VN@K*C$?L;D?#3R?(908RA51iE7M^JoRF@yFRHzjS?h zY)x1Tx5AOY~tRm)5is2@yAj^gkCi zgEzL9$~lG&b8av-cC(e2jdd;?%Tx06h_%U89yMunhP2zbUjlD|>Bk^b28e2}Lmn8T zZ2{!L|IWaSH}UJAjz#;}?V;&dny-yD%DV3yYlM5C`Bvh(9c`tqtFZ5B zx(PnM+%r*CM|mu}Rmb}E;#DA)_PZABnFs5RRN>kSZzFDA??I>b9<2Sc#giwx0(bSa z6}7(uc!GEfwv*iivi23=jYIH182^*VC^rVdBul{{Eg)-0N9_sA--wW3R;bUzQt2@5 zMQ}^vYb>oH*ZhVbJco5`y!UcYjeMgujzNHM&nR$@zWx(opyS9u>p#`C*L3Z5y?BS# zI2g%*_v_#uJ^Bgpu0@F8H`b^Fg}`60jx{3Pg})Xl{^Alea25D#3i*pxb?KTJ$Kb%n zfEN9VoE6=fGvmZb#?NSA_V1WvoHD8O%gDi?1DvF9P2Iv{4|o?#N2`9UtY^dU4Pv*m z+l*5u8JA_-8TVKj`&b#LwW)yGEt8BH*^^4&i?rA=kF~Ey{@fXdT6KPJoPrvEZ%5zW zz6H@eW{f60+4_*B#suGPB$ZS)Tv~J@Kw?ns7e=IHcjkGh^h>SrBzMXmG3Ccd8JKalT_qH&4_X5>ksOhJPPt!jk(311wnKVLz?Z1{ z1BNP!Y0=gAXyJf?`V~Uhukh9%f&-iBt!-GzA~MH1f(zXZI%2P zvO@RU)m_SL|3aDxC0kL!+o)i>Q-SWTpqMG2Hu9$4rPjP-(yZ}&jQs#=Z!P*Alg4WU zlXk4ws%ecMAwp``aOMs+YD+Jz9^o0Yn%EqL0>UFRZKem$zX90l5{*H~X#fSP8p+&7A~o-4=OT znB}E-(;81y-%>Y=Z-=D(;9ECa*GnfR?A@xnYY z=Wj#&c5O}%{GSE0ea>01&gYy3BYe(TA^ueIrY6@wvcyK43kcw4N>2bB*=f zWIeaysW-F}0KK72J$4B=xAO9c#Lf6w{yng0;O6d}X=9e}nbQORXTcx_B>bsH{(32< zO+5s+X>TH~Z15)eZIRyxsd`?rxnF>oEy0ds^rAm|Hfuqt(rm7C&;AvJCynkq?sW!jYe|0i(OX zk=N0!D`WEu@P-kF`UXcHtKPtkz117I@h$SD&5hI4hvLRRu|$kPn@0<8?7~v5tm(sc z_zLF+xV$hc(kHgH=gvQKQ)Q$(W^}ec1WY!-+uBW!e%NEX{zuA8)8*iwR*S)40dXvN zP5?g_1@Uuv5q>6x@N+{Yex_IB=aw4!^qR>@e7Svr^>WVx*2{07v|b)=v0ffuW4$cg zWWBt&l`pEb&P8=|E=F~8u0VBju0eHkZbWr+W}vz`b6A}vK6tsqs&39NA5cZj`JGkW zoIkZ#Ax~J<%~`a`3VCTOUML}?RD7X&yd-3tKMtmKVi)aeY*of_x47K1`Eh>A7NYN6 zB-5i?;J^6N57O<1VBj4-jUn&rL*5hZvyhqC*0=S=+q~}c!h<@%CSkA%$ktWDmJO;W zS;K=C@G)-C1AI&v^duh>2et4qWzZTvB7-*ZQ8#ES$V74K3Lz;^AY&K;g~zzTEPl>} z!7P5xM92vqQwFp6IT6SN9(9m}%-|Cm1&o4aFQBkwRj?{Iz1VR;hIo2#87E>nAqhd) zi4Rji>58BSiGmuYpdtXWYIH~FZb)pH5^HpygwH)9xnW3d(w>fsKW#Yfm+}R`AJ(=s zSG+H=6w*#NIE;LHZ+JPydxQYa3HV!=luf3%kehDl{^dUiokG8` zWWerHMa05Z&>uxbEKjG59y`{!8VK|aa()<2ZT`d{I5?66q#TEQabI2-S`QRvTyz=Q z1Qhx9%>%jdK7yOxd==LFRmpKNV#Z^Nxrj-^#$4)SOc%h>HkUK>oI1cM2<0>Ra(vjR z=N7pNBt6`in=46c`|C#D|DfD(JnwP{9BTRWjRPUba-L4K<43jM6t~F1u5j8{Gz7A? zYEKRqASc%Tdf6X6 z0W1#|s-g&1QUoh0qLX>9#qB3E4z#Y;jXrW-l`$2_M7Z|hAgC9tv*A)6oJw*>Gity& ziz5#_69@T6MlLSGH;l*`S0Z-CW#zCBhir#66XDs6hd>>cu9)4sY;NvP^o|vHult%u zWyEIUC>h+QF>v0TKvv_%+B`i5#X*3g%c{_>R$pSa-_BJQfU5n2;%{&Z=EkpgcW4KU zTpUE5?elO{!t=NKz~oqj74HkQL@h&?nCs8Q=>udnwfF)nHgr<3kV(M)6No03^xT5M z-^qIE&RcLbIF2P&x(GVVoQCa6iZ+TQLI+vPG=cfY73hg?X{*KBa8bGgw>jV?7=pJU z!s3q<`ajEFpyBg+5)4f+lT9#FHyR7(B1BuL`*8~^CYErFaub#hU{)uKN8bYYD&05_ zFLFxH{jzHsJp;~%h!CxtaaIC+`Fm!};XD@5XK< zqKDipJT?+^C_^rsU1Iol%tn*6)b?W#N|Qr+W?~^*J>WspfKDm`owj*)d{;;NduG{o zHVf3?u?@Z~NSl4!64g4ufu@fX1kJ~#QR)gxDAWnmQddwTL5&Q`-lNBcf(p-Cu%QPd;W24+VygxJu2vz)t_!BL%2e1idsx0>s|QWWp^+#FK8FPK+mZ=h@C zGy-A~G>4xp9|3-6p9xUG7}@*AOYmTwt2fc z600C|=0CPtZ1~VEiVZEIfDH+b#fCqw*dvSZKo6mejh*PeG&URxdYEN@hg_eCmT~nJ zd`*$>KmAwb+otJ%Am7how~<5BRQc{dtLyT8eN5zg;uedrXV2b?e7|Se49_> zv=(9jF}3-%Dtk&bvodWRl^F^V<5O5H$~lt^EPeM=4{Q$_mK znOzd;>D;)#7m@BhS46tw3rnOw`ME99VjI(@<^dy0q^})IB8xP0d29xeb|Ifhq)qHZ z{~;pnu-`02R|rxKyO)WbcQ3=R*~uYVsz~2EW8WhEb+awfpM7p|-r8Av;kopBzt zRc4XCX%R$vc#24SXX=ya=QV_3GK~dvTxA6_8!;}_3mdUQKrhr5 zR`zVf^x;G%H7Wt_ICSXI?{c-OSNw z(H73^9csiG41Z&Ch(kToH$Vq+2j(HL5!rX^dbA@jwIm!r2a}rL!MUr2;{!i_ut(NN zoWXrsMd=bP`VsPl=GI}<+_AcR$!EFY*jwS)Ys@!oCG&;j{hqZloGKX}b!E_-*4;9w zJbqILx(+RBAZFBxvYs79EDIjCrgd{Rm&eaT?9yr1NzAeM+{4dt{M>V)wy@^F(A-GD zDJwz;Vp4mJK4d*D(vzgove!z3iF}J-nHS=40=Dic?1yL09f{ROq;+&zO)Jh6UTuDy zAQPJJsmELDu|_>s$pgy6yaS7NSc)IU)6vpUEKV2@T@B3$+BG&&6VK3o6k^8p4xKbR zRZQ@41=TCcayoEY-~9#kKph^|_+RlvtDzY>^dWGy&{{x_+vYPIC+7`W$-bn`G#nvUBuG`_V;W$VgxK=3RBC*=)0n3aV-9`> z(4XqjC?0*HHER%g$TLK33WOB$T%|3XUr-Nh8dqtJAEOciQ$y?jeqM`xO5?gnH!LAy zgVzw)$&KCg__V^t?)=pj{@gFJI$tvW97E;N!LjkW9&pZgK;lan+}2Wt;xQzZ2e=_b zZYaU{ZFEnJ-?YYMATTq+D}s##sJU^rgg_85s`hJlJdYN`TaMN=h&lmpQ;Wj!iy`?h z>(LLg_2`l!4$n&}N;hlKuhHal!>4zYuWb*@tGFobQz1NfD#xIjwLFFyirkV-g0<(d=|vybuD@;5A=p6SD}B9 za1NA90`yS2>tZAj*kuS+Ub5o-tA%vQ~#efe#7V1m_QCZxc(IO@wY5MyA;VqX6mw zIG(}G54!S9 zwGji-OhJxWO3$qSmKXq{UbW)@Q7`S*>Cgy-NMHP_Wyk9~KG2tZ)-4<#a2Me#U;ANr z$c8Wk4XpUiv_l9bH3MX3Ey&8tc~8MzmT!J&l^oET#)8seYk*A-m(ize%J55V*Fa8Q zg`8+%DB8hf^#j6CJt+Tcn+ji`b4-L|pSHJ|by6~9^FSQiJWP0wJZ78?yf`>K4%R5! zZ&*5OQKH2oGn{XJ`eu%ST<3#({N)`h6URU?A?EA@&cw}3U-B&vZ(8F)2ycJy%;J`W zA8&kS;R%{o+cZ}LOLQUT?9-K*1yYNTS4QzrO+pyaPl@|r&p>E;QZY4MLrch`ff6?} zh)NDeK^}&8Gw~R-=0CCIH^X>pAzMHCc?tDp5%nd^d$a~TB|YIO!P($?5cgukZhE-Pv^7d(oFz1>rNs(tx0 z)gRTk?aM|r0^(7(BN>h1mw3|AH_p@+j_=usDe0g@j1TIiFKh9G`GI~FB-o&@{m?d3 zn%>iHe-%BDws2}*sPP-E@nQ7=6^#$+ve1Dn`2c&^!-vA-0BR#CI<#*hhv>#sEKq;# zmOO;?lJv(Svu>OOj~$#{V`OZGCOH{wJhr#6@iytS<`+Ck%})7i-XI}&%YlPXdgB9S zb0-v>RS~bwDKFiv-4RCgs1>>0i^j~I&^;S`PkXQ`9Gh5BU0(XO7T=D7Q2cmE2{1kw zsnJ7fw|AfqtcXu2$SyD4rQOkpuP|`0MoC8pk^D+P^O4s0Q-muhD)ENeuSD$=S^M>< z{d?_>R&-HdMr0cV045H~4ucJ<(f1;pYJ?=O02tA$5imwuSdevQ?30l#pXZKj_=tYN ziqcoK=qSXUg}5W6?2*w=w2IQ#wCJ%ac<4!Guz<%@#Al<*4(*O#AlsO^1t*M|8#y7n zyrZQ;ZA?s}JU=p)Z0ivLIh}| zV7!az4fE#Hl(8n_0r`jV5{}Qz;RsfS>LR8riqel!KN}G|OFp1peng&%plBbo0WFPc zyn;4~&)Jdncu%^zEP2>E9K@e?SQsw8dK5q+<5X@{N@6NAt$UZ5!tr6H06rXpJ5T`+ z`_ck_3V?s%R10|Od(nghRUSgj}v2)uV*L_PVj<2GefoGM1b&A zsY8k+2v;Xbk=~BgsqF|7K!Ouv&_9{y|4Znf($W>NWr<>TU(}3LB12wNT(=$D&pW|3 z@esQt=q~b4;s$&`>rhKYa`k8{PQ$QbE|C~YK}Mz*j-M~pkgwm>V=pH@Mz?1BuM*GW z!`$^Sx`pXhZCM-UJ zNIu3&UPv}8Vsi75Y08)ikrpMYJ&-!!G?n=Y&iY7p3ucdp!1D(|X{PYI*8EFWpJw0b z`Utw4uma|LbakvHL|@l=g^jQk&MUO+JqS2k40eHtK!7bK^uKqZB4`lnHp*rQ3x@O< zdKYOm)mQ`|BbLv&O-rjsH3-SC6}55_=R26+Oq*`D3*`bI;K9g@5^gNiS6qYECA=3+&;Q@aXs|vVCM7yi` z5y*my*@W|=4nS`}c6Qz7gPq1M?7HnO#J9K|20Ix41CI`K6X`d58C8eodjwg?VU_Ge z!+tgW*Xq6qJ33RJLoH`sF?MquSOf3$YU&TC;a0XKecmANtFlpGsMA;vAW=v{k!Lm! z-UUBu@v80Qnw^|^*Pz)pY-}ZKg6g^K6)J>bx;MYl)4Ve+5E4W%IIUkoR4+yY=)A4w z4H?ySOdHI`uA!y$EU`qn#*J=HJk)P(;unB&veUq=WInvp;gkwo1pX}jgPyn3AgRu= ztKs5(SaAVKR zJ$~9i42A-ScJ}{B8{lzYl1()`$fCAc*af*Np^IUFM{y=qO|`iNa4|fU40@pUHOQz+;6fzUsD2-42Qk0k zLcN;9S{Ib^x1TMh~3+ZLJ*H(eJl7uazkC_IdFF zc2KC-+}R5jJDF(%jE2=w(t&SY@V1uv1d7V6wMS3Si{*FbKv&fuqP0U=3>QNfVK5@V z3YCcb;u1|#Uz&iJ#CJyjS|xGZrB`Uj9_{O<6LT~1cKi$CJQayXq7X2kPe~~qule~f z%gPP z7T|4Nc)P#x+!({(go z0=K8;;eaCHxl)m*YOp$}Q%)X$+QPj8W!_1hhYnbA{dr~H@t9h!n6eXQhM?-=#7bmU ze0V-7Og&*)mo-6Q7->~;i0@b%-vqw>;A}$Tf>y#m<-CKUONmw7qQoktu|yd}RB2@*yeK?;Bo zk%Cc#o+6M<$X6j9Fbe+ffwHyY`AZ;abt0PN^NLF~pQ8m-POMV<-2*218l2nCzj>Tk zOidBKr1YtFcMY2EXvj}|-^4p1y~{yE4E z^~y^TzuOx(-IU_W7gyddEgdSKXr`Dr2?OES!yAQZ#iLyH$lnMt`oM0TZdEKOM3PP8b<{BW(bfh$Feixa~V)I!d zpI+#!vxoq|;e|$R!CLIDpM zXgM%haCp0drzCzwk%N=%53}tT*Su!iKRFe44l+%@96%$OvR=fxW3m3rTjhZ_;DM13 zuXlH{J(LURUyI=WW~b>DhsKY$1W1#G|!9#U8;*W;@D?f}2M1f%5hOBy~I(@Vvt z8pdcrjA}!|{P=>FA^OA&OhFxM;71;Rh!cVz1xa^-6HUCi(-bRG!>&UG4Phx>QC%{1 zPm~x0U33!=PNJY0(VaadHJ9@(z)-?EMeGv#1zEjhVhohTjp6{Y%LH7B6C0mH)1*QB z-S`2THAwV}f}{zc8gB<;HUKec_*hP`BkRj4(=P3otB!)PYljbrn&6|1Zh#;|m_#sP z_(;Yocq>vTUW;azb}mHgf(xJk7%0d8$hwo3D7i#NfqLs=t(nsX4?d220-m;Z_}k?iCu5CBlpA;dS(T=-m+b8?Ox zR*LU)aXFfFfh2 zH+1D!gCh%8Akx2JxYs{>uxz~<5?zYMCcQvmFXGfmV{7s(PvTKpD!Zmu|rzd00ROdvUwWLsR2thMl;cGfn1mP;UrFh*CNmEZ)!c zu7ziXyzV%yjdu>btFv>PJMVU^i+Q&uDoBU#TKy4KLWY@BG>ZV4b+Q{ys1faEv{|jS zQKHB4sK&R3A2LYbA08 zrIV7rTyiR{mD4EB7l>UcDa^Q((dc1s9ERIGWjB2v>0k`C2Zrj$>%2jijHCDllkcMva05^Uo zL@)*nI|A0**G;MN>kTQ~pyO$akST?Dnhr-isin@-pUzne7!X6_+RtjPdjZ3S zFl%oR zWUbj$XFLNgyEuXsEuxgfNKuw3k$EnE=CKeKOq5TUckQ%=o zz~(f`H6}4Skrg!e#S|P;b~c)-02aIMuUP`c4d>J^AtNouJ+U)S*#-yq_;b2i12eS? z6Ma5hBz|W-M|PuY5)Da>Rw^D3v1sEzYtd^jzgHS@uwfnth*46R-rJ`my|+52jZRpZR%syR|ZvvV9?XPdfdfzhfpCtIy5xUVLVbZ#Yf(9)Yg z(tpzuZs{PLMXrKQm38OJ_=`|^{Z{o`9{($KU(78b!!|Pa3_n0KxWE`ZYCuHCiJrs6 z>^-N+PAtHHl+yw4O+@}C*34mdz5EHIDV_uj43Q^#?!z~>&4)(}6IGYoHSxOWVr^j{ ztF$mTV?EPKclhA<2^#9WpNHocQ5TcNl6hShPsf z$7)P9dg3-*2HQ{?qA=wHHE0olXW(yA;n*^-^I_sA;C6SX>D;9B0(tUiut={)AS$31 z8d3MZzHO|vxmtR^5qcS=hV3kAj>Cxo$H7W228)HM*x4mX=_M%(K(R1I*!TF<-G4!B zkvmBs8(W6A$FuKf)c5L$Yz!yNt7>*j@io9kizO#8DIO1^TM z5SMm}Xyi#UZ1|51)=j2VB1E6l!w_1u~1BmOXL#51IX8SycwtR}x|Bw)<26w0K6 z`0oOa*hCLObvt5FeUyNku-`*BiKtHX_-*dDFM63SrE#JSU--%@Wfhm>r{N)oI3xV zP>uf3;^myF@(;Q}&Xrq+wvS{AU&XZYG6on$@nC@ENwt#)CYI0_6jErsR!Cvt>h5@> zdal+BR+2#PP8(cCDD{e@$^|I#@n9$*B4zx})C5g=%K9%r8X0N%t22YQv`1PhoEZ#S zMOx0N0irP}Ok#z@c4bDXn%~oC(F?e!Rddo-3yTuvXo%Hvj2x;sbig?60R={M+$tdO zadsj!5Zs=OZ32ngBP|!!4BK}5^r3?7uf4im`(LjFR!#y|Fxr|sx7wU~YaPneAtCdj7X0&5*P za6{8es@mcF$`xpMwU|PN7A*gOuk*4M)*#yA^YBvoNZc1`sdXBEXW^~!T}D>ga8F`Jf%mZ%EOCm zZjSFH-!7>}ClhLJ=rHJ)SkO_uO_h9!j(!7ssVlLsDSi#U`6@b%9#3oiG?qHEk~*^z z%AWqTkmMq~1rD7VL*>f}PU9XdkD((W`qbgmMixR1>BTGV(e_Tn!d{Cr<0=xFt69-& z;ISWGMEnWbYc26i7CE-sEZmGkhQDxEV&R+9Il3{>LRGaJwmO4|mf z{SY!(-l!%&Z#|#xEvLNY1+dS+4n8d!ra{mOAO5 zT1a5(B^aC%jd}c7aYd1xBnyJs4EmikZSZiiVWn9Z>;_?!xAaR}Pu6z3D)E8(VXm>q z9~@`xvGpazy&^)w>a6bC9>YQ)ddQ}#2nhzq+4o_fIhIgwK??yNMx074FlZkpUs?z{ z9jKhTJoxo7;&C9-36JAw!v=`$&~AdvLY>X=LMk)g1v$hF1&wi~a4DIk;WHtEAj-(i zM%k>3C$fzR^5ZmcB0)L$DE^duv!Zan{#EmO{5JV^2{NhW%Y>RI;y2)%y8C+Y^bz{8mJS_mL83@*p~~ZY?FY@Du-AJN)E*gr?R~@BB6i-!7ouNz%s~Qh2A1|C|UT zhWL*HL6}dqj-Q_X1l#d~_(%%~b|g-Vp@Y=$9!ztjWsK8!Gov~vvH>+T3Xtc3g?uaR zl?>vBMf>RW!U`OLkcZO`+yOs3P1mwy^wq)z><@B<&QJxaOmGoN)4WRTboPS-{FgCj21N)q9tn`A;Q2V>|QA*2%TG{P%KYCF8#p-d54 ziZ+-X^eo%L91%(Xc=|YgjnHXA2#}sXd`F2#2Xx)J&u)9fuN)=n?gS1|Hx2cy^&9jt z^qY1z#=ynl2xKJ4_@II)m57i*WZWUENln`jmE&ha^`xC7#xlXX&*&LipSgpm-FhQd z1wo}w%j1}!-9|z`9@&jyVXi7-1`Yja5okyTMOW%$lZuR!H6RR_ihoLd7NbJf1oEmF zz?#w&D(u$|*o9-5w0;SBmZ7G70FE2=Bj^H-Kf`+rX+snufMXWUz?f!+$8qT( z`nUn2Z*|ZIe-TucQ2y#fB&lHEb+xTP1G9zy601SBM+XuajBCquRaCw7&KUUt9qRp; z66yWVW`1e;l~7PJFxk8SDmDqokamD9b0zMVOWzdWVWq`Hd}vUerh8?eRw9tzFHh_E z)EwI4<&OdTC0$zy{CtL8MMT8b1a2VVUQi{A-xP__Tq}Y0*(Pfi5n&7h zEAepZ%n;+Ffk*7FUp2r=xDaC!ll!pQRw&2-{13RMSWFl%C*oAi0W29_>aK#y=-Pyg|DH{(wpl zX5!?V=uo%q*b(^8KSJQwL7&4V=<}8v{W;+!l&8~i!D9`}d!aA(BHXYZ zo~c6ZE?kB8S?c|+94y=~(h-CTT0Wv z>`8{uG9BMz6Dc@^=@FbZ8{5sU_(P9@Djq-d060VWX-I&iVdFEHQq=OvDW}>fxksk6 zry0aUOQ~fDi@IvQTQpOk&^JVN$!S+u^`*19)$J1TRiNAx8j<|NC z#nS!1_uF!QyMFI~heI*r`iN)1cqV7%f57A8a#n${mfObT{ci^PyO=RZZyX%WJAX}1 zaFhO~hA=3Ah{;HBj0J-SBkal>NI}MH9Hg$|4K%YanM2Cpe)1K-}T#?LaVHKu@wTmOI7gn!A zz3O+_VI3MF`%wZ^^VjhAKa8|iO*uHydR6t4_*U~NF|A7(Il#GJWswcp*hrnHe!=a- ziH9Ps6P(8GG6Y=~)AVv4p7OMK$;mV=$%xqK%*f+&(PvjvpTX|fEC{U3;QLI0isFPH z8f_3ZHQ_vqf{d9FuxkjsQfOgSjR6zLW9Q%jlOw$Tq8Q8F*imJ%<9MEy({u!UXnJ-P zdI^M&_Mlsxy;%#jw8pW{$IdE>KWbZyq^#W*6w^m=8ebE~Tf`dH2LG8wN)5sIzzXuo zEQzk60N@nL3UYrw!hJmOIdLxLVWnh#dRsJkc$K9N+YS`B9IBysn<@{`qHTb{v>!|g z8gG-QTzbKVQ=K^ttc-`zqABLs4`B&_gL=dXANAy;?9~RQ=_xP)Q(5XhY(&}?X0{xn zVUp8Ue3;rT0Cf*60PU~0L3)D@JB+&8cX`FWK@V#C_Rp+O=3uk`gD-CaA-gu4};5gsQERxEHPh7Xwt_A!Gx8IYL7lPg51GCunL1%N1gGQ^vhupmt-4(D;FPubzHTPme;k71Md5UJ%z3 zeNmDOaSEg_c$Fq~#>i%+uc?w4n1s+RJk=AWIe&s7v=&d56O83se9+DGCKIi1JxFNn z=gyGvb>a*N{&T#EP7`GdVCJgtj!vif+mMo)LtSq$Y5@)}=hR~v1iNRUOnejzMp}9}4L$X@e5au+zXg=AQRQZl{Q*n3ie+Q(5mTkqb@6x2{$xC!Y1dN9PV1*Ek_3iHk@u=jh2~gP$8N# z1-4^Eb6VKG5ni&eA*ht4#@xRR*p}|EVUyjE7yw~wt|to9VjmnG*c%LrLF?3(J#r1w zoAqV~AN1sm0_xVEw(T$bNa4~iKFDe^nd6HH`qPOMH>ZmrupoLw_SG^+uLogXRnu-R zacffQs!Fufp)ND@)>t)*;ZZ10HLq*qdDOAT-Dh;{{@a4=$xVcep-!|}M0|i)LL^W} zl2X!oNgSzxsEzMJ?fKcgrkBMBZfpG8>}3p9CtxVoT~UNYlFOf$wyly7m8>p1&d<|z z8gM{@aH!<%<=S)>;D@YfmqzOEDoOnb<=ASeet0*9m5g%Dw^JhE6 znQHHhX96A&PyCge;ceLeQ>7&7zYMb-J5H`2aqy}HXTTG`-Du~+wv~Jax0B2QEa^VL zwv-U*48$W!paKfiec!dU%~U0iwY2fe; zGD$eVWmWuEpl;dGM+FYcHY^m6K`H!Sa5AaY;^a68jKv9bQW>X$L7V_8v6?}gh%v^~ zAWm+CKQU7k{v#7kcFFLRyw%9%%=lyY6KNffUE=a(0xp@AFYrtr=KE>*Loui$;_#2( zr|GW@mUN%LEs>~W1rV`74eb&T3D)Oh=wmxA#hx2znh(Ct=GTmiAF0>{}XB|LKB z4XAdX?fUHALKMSFsW0yq6rWD|7URwW)HaJ=yz`(P+j-}dYGY(sPrZ(X)|qPAqnU8~ ze1@n02e6O0a3jI42G~U!?2`#%seldrGZM+SA`=ibEhOZFS$h0*};i+1C0VsVt{7vm3CjCQ5!c4P1=747P>o*ALo-9=Sgudmc=v%!N%IU5Jm7mM_ z3ZH9O6wKNppEii(7R2&9?@4#SX?y{fUyv1a91EwZE-fuWVendMvH2{KPo9%_7z%^r zvLd&6WDNw>>eyM@3Rs( zaDc3}sc-<6Ll8swcl)1{CqybKMrJpeAC}4 z$ovOVEZVs}DP9%zqp5Mr@5zA}YET$_aJNE@r_-pxA+c8uX@Pv2MO(@V$Auw*Rf0qE zLhtk=lIc-mc*PLJEY*XlZg8+c!0Da#xyETaU1ab4Z#=fayWIO``=R11$nNi5Vy1 z>8T$65b&H1ckOo1l>myRn^usBLEKr*%*mtugSfv6liOh=&G9eQ#A(r&jORY(m z3^F;i?IANeP5DtpqeX+v>>x7F`T#I>F))oaFzwnW6HH?@O#1|2D%uVt)Qpn+;+GT6 zQN~DaCekin4QOg%km|P#Qp0d+1q0#rTRIJX>J_A?2$`=K+3N*(i-1%=2bue!0x(*t zp+Dk-j7FqXQ~8pXBu2L@K5Mv+6V!QswYfzS5e?$eA>^;4yf$arTZMR;eRAHQ*LP`; zQ*+dfkovuiNx%%LIc&dsbe74Y&|>*zfLzH9oC!?ei{50cWn4_GmhU>eO@ba)zc5#6 z2Y_C`<(7|!y#`-L5WU}mF7G%Ex1q2m1`xe$qab<+o`H3bc%oM(aT=l#z2&#$c(#k^ ztI%+86yR4hlZitfW!~|bC=Lo7E%KA!9}8o1v6YAKoxB{yh)thQK-NDHHn!H2~brUjVaD(D-(LAF@^0& zKvTbE?x?nPPSZ%C<*pOwf9N#K6?GX8o;3at$m{j{mV7dSpH;M=wBWtSX5IwUAQ_f^^i)m4CX2WPX8iO~8 z=@0N3rr0Y_^6gWnPllZ%ts`;VmQ7IgLNoW#K4V}3=l(k=BB`~pgpEBvOJ$}8M5^sFe1pqk(*f#1I(2N2qG>$h!18JZeYo!#}xo6{0z%y zbXW=Qf9sB!H%{j4FC~Fe>Ej#_b#5VVAa5`{U%}c z{N-cp92SYDlI{wM1G&?6=4`CIoLs@(#uBNko5K;I2qqckm`3z6)o+!3d0Tp7#H{r z=oB|ij(Y^5V2`k%40p1wCNUt81j90$NW*LywM5^Nb5X7|qcMR(rlSbqV4V00q;Xsr zNwK;##u_*hKV-Ugkf9AN2`QVvW@x(kx5Y>29Wn$QA)4#O(@NL{;x;{b-a z2G2nxk$cLnx&$y!mPCny_`6oG2`+R%Mt3LdsY$45lPA^54Z1pJ-tn7Eb;_qn8E@oK z=k1r_oEZ~1isVupGbll$`G&|EFH}Lu%a-wSf($ANv%{9 zN%h_VBvai>N*p=Dtec2>lYrS`sDa-vOcL3kPnw!O^a)7cH%#hbP`nqrPbm+sOxQWdSnUQ zOsUZsUlE{ld)hLe+h1ZGO_P(t_1>T}aB)p~atrMs$Qo8_KJVa|?%!F))Nal7hU74Q z$CVK6hOr9Xz-oW0loEH*5S-aj2>NIU+GTO>!?=@=%ZZtQcz^4{4@S~V4qB^gOEjl} zJ;hUqinhWm%q}fKzfBXGi_)AfhbsG8D|QZa6YpJxQkFtTm3f_UBc;wuYlSZ7$kYuBlF@_$rz=gXc{0=J=+Wd5D*f+*qtx3zmRZ`cSQZ}W`%>ZG@Z0I z`TC9^>*HLFtVd;pDag|Lh-x@!#e)n&l_*0L_r7;;J#uIx-=e1IC2<0*UkQ?lrOK$6 z26MiNZl!VWI9OUu?D$opDCk*OP^mC(`IDA3@`FBOsBSWs%%Q<9L1=ZW`zOBtgwk%3 zDPW1LzMgIfZW&k8L$(9^km%hcwnlo6{*+*%$K-eo0(B7lPrGhI^^6u^OmZyTM63VW zsnfz8Gpn9J>UjNbTTwj~J_JGxQRuMTTJ@}5(?R9;U>AWvAJl*pKkOtiihLmhvcB@! zl%D|%NrBxyZ>iT{=D2QyQ`NYFX&AsY5nmB~KW)j#h2+`bD3ZBGevlya2>BWshML94 zDKm$r@`Zmc$(sd~AL4}a1LcGL#n*L2e(uPj{OC<8x(_gGn$3x(^Xu0=ll+=kp;ljO z@;hG6-3EUQ`k2&7rrTK7vt!qTPT6av0iuLd1$vBQzS*YElTNXj^aOMo$R~tzBMTdJ zmBVV;N9vCpb88Bh^l_14UPeXEC}dUZVHnpzO( zK%#&m9Daip-ED(1S{T~&W@XH&3m0~@d&mh+X0*E!`qai>$+wNSZ&siUr$KvE5ZZ;* z!I9S8oTg9nAS#j8o=(F&&M_mc`8bdcdx3CYQ8}|~4nta<8|#YfZfw`nmbff74Ckqr z<1#SJm(dG$7dcJ$WA%vJ6t%UVE;1=Err^a;f2ZOTJ%c+HVZ^i4a}y03@x!VDT4;_- zw?@Oib0=-fLTHX}e0fA65&v!3GIhnCzTq~LvsI3~WR!cLdH+B9b_Y5y(9o z;a!N0oevwNedaVVory@}V9JcEG-3c=ynq)Yvftu$*|>kSt~-%t6&Rq)Qj;ch1Zf{- zX`~GnhbW0OqqJm1Pz6BsEIm?m0>5sy9-quP=W2e3|IC>(XBapE9Q()&E1-6fx(d6X zeJ&KejYfb!@w>34t&|AmRx#Pq*6S!zSraWijF9etXb7u06`X4z6iDV82&>V1zdo9_ zrAC4BEZPpcCYr(E(x}IO;2>seHt>!|kFzyva3%+U$uODNW%^39xV!;Gw7Z$L#|6Cd zm^+J!kLWn?EHzFGcb^;|NCoK)dZ3dv4B}`f=V6?)6ryzo4dB2?lJ-^|hr|{qnI{Uf zy$09%;4;AAo-=os3>F*lA%cnjB{x#eX#lQ!fTDoT0f9fc+x&hy1XNAN0kjinPFNTH(H>Fp z^HSzjeGLS<1v5v5u1Gia8@nYX^j$p9*(HdI!4=IL5PH{Vw<%E}J!R8vg%nF!56)v_`Li zuFY*bXW)f9t(Ax$PS?8~St?B>3S@jO)>qZZS8KBLIijsI$YSCs5-<#GPM!ZQhYVdn z+LUl45>Nq}*%I}EC@p9ri5o#3O4t$QG#RutjQ=LCNs8aIOERF8=>%FZa|3RTU>`Dr zGTB*v$J}jY=FwjN-F+80u;=Pt>Sd#oX`ialm~6(HOx0_5UQyFSV)E262w;lB7B<`3 zT>H*Vpe*Lv@QVOh(t2>f1Qt%))~Ao^)1JPI?=&*UUOJRPwwq7|_u^j1y}0`jhu)y6 ze{@DS1HlX#f+;&8tEWS%aYbuD;(eX-bK=J2WaeO`AB$Boaz}#mz%t{o1#Fs6i1C@` zBG&(zrTvrSTx7NM<@FiRjdKx>#-EEkcV$P2u`>tpzs^O@L|U>H7R*IXy3))=4*A{U zHG?L74mbCa5g`Gxy~^Uia3I*9dT}drk#CXxYkQ2Zf>u?luF$d}Y9MyDlt5WKn;3p!Y`{BQf&MuCZ0;Got8HT#fNwI#r zXPMX;RJl5@i*`ARsHJL&tT5-FdBWWiLq%y35qtDFHmAy2kCB${PNTf?d5b5T=-v9* zpg(lLk5kHBZz9ZZmF(2tSHw)5KZ>r{+~g!AOk9hWYFkLrE>hoo%Tc6GQsF`l+(hKV zn-q7C3rIBFut%I(y|Ju=k~H-R8^}o0mJ1@)t4HPKDWh+bOu%VMYAu`vYW?>bXs^}57G+^mGsS1Bw)Ic z09ufNdubel0c9SaDSA9pl&OgxmkOdSg|{C)zF$Uc#61{2p28RHqQ{s2ts|Ij{+XC| z8Vdv%i&nVzX6vla0K4mLLY4urXE&7rw8_V2-XH^v?$V9{J{;Q-unrZlYM=*vkmA@G zm4W(=os!g#BWBd5#*Z}&a1KJ^>9!I9HtnB(j*SbnmC)(J0EQKf2g%8m=yYL#b}W|{ z?34>MYRe@?r~m8M6rEme6qJrHjg?M=@g>a>(+g9XAuYbtg%aJt37m1!+7?g|7pd>Q zWK|PQoX==tq_tq;x%m4h9HDSOlN?f`C@1_`vvGme;nqYzQHuX5-V%sng4qS?j2GB} z7N7Ve>>xqYyE~27<|YFs>m@*;11369!sAz*8HeKe2+zgTc~~xPQ_j9lFH5cv#gd}G zvJl!Ku>h1gaf7Q2Cvw$<%a6tUVqkFQmCLyRV`Vu+pQ*mB6^9?F0xg%rl@Yzd6^D2E z!e4Q4vdPKS#!G?wm!)>T*o<6+dTXleq77QW&P@$CU?1-(kh_M%&EpQZk891W9!Myy z@TsG*HIn{=O=5r{YbdOxKzoc6c&`@LiR!o<$JBfHqefpy$gdEbNja1+5(O~b6rEl; zhoj5ljOTO(xYWF!(vtoKS|YZwb+5^4&qZz@#%~2 zaqKS7U>GjPE&{)fha&1617gl#0TFXGJ&6(>O_xa4`Io#-5Hqck34Z`2J?%HEWD7Xq zwm~gF<$-4@*|-+c9WZ~}84zHBuKB;j4!fo<8k^HDQS24MXk+(zNw=3ygW{tX3_|& z@>&O(a#%t}0WE?bR8+wF`Beem*%C1eb2MX1AV-13?RFphj05{Yv@-SYs(2L20_;Cpt@!)?RRLe&EbcJQtY( zh@3+esruUu2B^K3eJ15|oTi;jY zunECO`xPOv{ZxpDDE|PW8xEt7jMUE?N$IeWIVB{t0fm$ z%US#s&7IlRhz_T?xRZa^_q2+OOS39KvjM$1MWY(Od#Z7B3^K^RJAKOWr8IQ|ZUd84 z0y{!Bg|oDB4ZYAvH+As+fku{mf*+CA9h^q^v^d`ufABMR;u-kc#c4Q|zf=3TKIoCR z12-$#Q%|)x*wZ<>r>+y9Nj!x$l_F`@DifMxH5Xa`qMnEY&n?!(3rxG!EvAHaqs$!K zPE>4Lu+xl5$FEz>abj98C{0f{WB^GW2GrZsi+pw+Y&hN`*`z@qG5`x()(K<`f?boO zA>&^br08)4v7FK03U8i>yLQ85jUMwVHv&wm>XF`W zdrLe>suQO8F{r3cC3Dv+8#bUjo5UV?hFM~hSv7X#`iM1WIY>~VdF3#|DB(U62#4Zz0LD+1E ziG%UC6OOn8Wdx_ZtU znf{(&lIO@QT_kh>qHvV-qRG2C^Llr$+dR7Z5K_fFo%B5waV6?t1Hcejnd7;rRX`1! zjVy6t)?o6ftVCtoCJWS&H&Ob4dm^cb@E7CI6r3Q>VETZS)q5se#=X~UVQhNKZOiz$ z(ha_cE8_RerV{g$?Q8`?HE>U0?BgWH(&XU}jxObVb;4avNO45nvMKr+41tggQUx$; z1p)d(1{VQ|h+fkf$(vbvcdgreZq3_n3}&J^@+=z9cK2UKH=?1DJ!P--QKpWgO+aU` zTVPP~M7Uv9wS&TwU_<2)sx_1Pu|!F8-E*joevOEY<+lpC4-PO*Q-PP#S)q+K8V@@)OSU;~z9VwgIqU%3v1tp}?^* zSD!zKf4iUn{WBVSsI4sZ{78+DQsQH* zPJ9`{eZ9d;Wep~Q`}hZHYK#i! z9KC(I@i?CU%6c3b0@X)6t38eqQo2ZRPBFrOc6l$q+b*=CxXAWW=Jz6g zO>*YRq>A^SVK1UYMNWltNKEPFXfTEPy${&q-&75|;57d%^#`0JQXwPLRtix194ukjt?|c;i6nnKajM~uTfW=| zf8;;?Kk~;&+lA(j6KpRB`MqS|k7sa~#di4PGt3Aw^M^O2aE{)Lc3DpdUH$rXB70Ao zWFq~Ejndh=zK4hB6iDc&3R{D5sf(Lzv(4^Li&}?QBhQedX56~1o?8(H;hBU)oFER^xD-l)`eeC21kK6?1+P7T=tL8q4H^) zJ=BSOgcHC`vwJ&D)A0)(gq_Cud4Q&LM0T*Fl??yswNE;1)GFd8LHS^&3rCT2-Xe85 zBMV@lV$PsuvR~+l5?X^&==D=%#?7Z3^bmC8M2^H?J7xpS0Zv0Tx73OABih8qX4I2Y zb^BrZheR**X$8H`qG^L6=djGqyitXx!1>x4{@ISr^~TcJE$=uQ+^k|Un(Jk;8{E4P z*?{eOl7NFIk?+?nZ*X1fAx`5vc#O9EcBrJNpCw|$NSmJJlhztH#KBlb4?2j0^U#44 zITe4~jb-sDDmY80rI`)6lil-l02+p*#gfNLWy`#6p7v%HZ3 z9gWMC+dgDB)y66NNfx0T)80$g@Cl+DUExL-*;?^;bhNQzt&KJc*NM*Ol7Iv{*Wv(l zBD;u;2CmcR3lJRG8oSAk`C$)!43)YHN#8b3Cl-ul=#j^-5F5l9D9z8W-%*3vwsbRz zWt^Rm=bU+WldZ68R8CG|8v;EfSGZun&y%m?>E2g6^R6u`opx<`^KoUUbnS3_Kc)G& z;b6I+iO2Cn-RPI@!f!g0^SDiCM66rE(AcN~@RwCz0H;7r_$MiDdXc=vv16P@_2th&^CRxb^}{tJ(o|Bw!8o=x zI!|jp)W-29NnzF}1em=-nu)ZqJM(US79jCdExmDQmZ8oH$Gez8GVkoth8^6cgI$z@ zejKdzqq#5(p)fr@xj1X5GK{AV#dv{M)5}~6#E7K;1c}|qi@W*4Uu}CpoWg43e~Ep) zcUVUTxbXu$z+Gj@vHbu+9?fSsjO5>3HQXPw96Pg|t4kOjyZZ?5 zY$QG-HDttq#ZHsLVkOg}i4Kb|d9jRX)7dMTB!s;SH-6g%ugTxOuRL`q(IP1~zE&5a zvmfm-f3sTSAkvbmVrSYP;jfv6&OQzhp074;;5|Jf!+1>(DnZ=b83ldr#1hm+y?D z7CWTRSFHqQR@ESF(m$-+!nrtpZHhME@2d>j{4GGTTSo?WQBuP&^Op9=c*Tifrq_(m97pOBDXUBo2I zpro8`e@7Ns$L=A}BV?w`b;%iL**8Iz4%L&To;YELQ@imlb5$ zB_(>bVHKT2WMOsNU@X}#(N4W8#s^Sy2y|WQ@EK18*36O=d-C%D{?0)Wb@%Zae>wFl zty@=3;gf)-P>lQ3I|~rl20}JYp_s;-^|-XIjeD|@$_@x1Z2(AGpkerAnuVdlWkgiU z9|3+8saMvMKS${U5B!egI32hIm1ribdGOHe_;bIo+$?QG>A-+mf(OW-995AA^=qaD z9EA<^sbNg_!ywSFZ`%UiddgJk)JnH;)#Pr0j^Q?*IuvoVo;q$i)_Q^QLj)dsV}`k~ zGu97>6<{UWI%7xxdPopqHKTRL@FKz&+3-UpfOQPgo00)6OdYb+kAn%gk@F<%Vn&1r z63H6=jtFl-Qcz(yG|R+c-ZF^PU2Bspkyx#69BlaE>i1LlAsN~sKm2kpnNn1*Fhx33 zS_Bw==!%}zv!$XNz^LSg_;WuInr7~x`8oby{7^G=0sCw%3;e&3_!7B7jdldfLTNx;9<`KmiDf}XisIc4)3O{zN zq411%ErscgXzS%qAxzeWAa}TI$TYVcm9zL`IDVXh`)#q~0{(U9 z!to~!jjnVTevRpx)&nDAqjt?58tb{M#6zg~^Gcn0A49JcsKt+J+zRl>V}w6B7V(sL zZ%|e3CUB$K#G@9N_`}$2=l{3^KLGH79LezP_;~&E;F?f#DVU}7BHpOEg9J0UL?G3Nh<3Zeaa$!ZBFOfKj^~ZXnh&@F%C+ zvDD+83)SB5>VaanW@zGNd?=e4M6_5mvZP?K`cD@e-u0vjh08}u`_9w`@ZiT%=iLENGivuvS!(q) z`19Viow(+9DCQ|SH!P>ahFGGD-vq~CPxGs&>qc|(@DLp|9L($#R7JD7g>3fFK55nevpcI#lj=2>qUyi! z09E6?0#*C4>Msx-_H3eE(VSaZHD?5?E~o(wLO0?;bIypxP8ODuEn?8tI5tTzWCXK6 z*o50|K$Gj_u?Z)tMn0a3$0Ji7Ux~-@ezavna=-)UgFk}A!uJ$487v~)h58xQIJr#p6p*<-yl7&Y5g+QQEjw=j;7cEwEJA-p>NbBF3 zdKW5Xf`O}RV!V4n{ZyaWZ+XM=n!J9?r5a9E*n$n{&{Q#=}L zoJ%Gf;29W_(F=S7(v3mIk0SM%#Ha*jk^q30CPQQPq6~9&8?fsFyXA}3nFN&iD{1sS z3b+juHu#tPgHAziNc(L_zTz*S8H$#0fbP;Ei$#`%7pqQaGx2Q7cqeSNy?-(EyzTa$ z@6^7%A(?1T`0^pwY|n@f&;W{&Apj{5Qbs)cyj8)LAJL4S3h&8i9|PmsFvefR7SRM` z3!|21Wc)50%u_#d83ZN5d|SY09-p)V`l?rIbsmUSL_>f&8Cr5w z1#CVe{?h1;^F;i{x&eto6|S6uGyp>;UOxXU%0jED{Nqd&jhlL37BF6`FGRuZ9kFsW zhC3L7x0>K)3L=W#p&%k^vBS8O1U%B^$5zS}U4UZF)}X7xFhD4J4tRZB9*dzpPS(6W z!%eXg7Ax(90D9!QngsEZ`;xq-!G{WQt07K<)!qX z2^fd6nbZfeC@#Zus%FaWTE{Xj7gg666{Fe1s)LNXIN@yYwmmMv|G=Th~JGxZs5 z|4Z3s3EM;!avU>2#5ag({x8PejrE(>JRW_~X=$3RhjdM6baqI4|E6ygDO`=JD6?~ zPtg(AUId2+v>R>=Mz&!@TxYemJNrRz@R>ltnUFtV=`{utk0Y;xE*E@(m3%KGN7%*JA5ZK8|AWXk7@uvNCCx6{we#KvA zIppKti%&RI6&R=;x!N7aZ^!!^S0RNzoT>K^@2NV*%PII=>ooOWB)T#31H@y_-LNB8 zv)#zj4J7^s5`Tlb_dt5^+;bz`Q&tG-VTLN&2@z>8=ko4kZsYCX_oO~-TgaF*=Vp3U z#Bdim`-`d>Kiz;r9{oFDXV}2%eXUN;8iIwJlY?3`!33L+Yp;z zVi=(0bjTg>_N04k+<*k-WNHInK>BkT0kDBQP~I$OiJia?9f}(Tj`B=s5O0cMM=!BOXG*F%gw{}u;1kBuGXHhpC3+;s>cs-DhYVoLu6fYpZvNbPs+E?As{&aJw zY=ha#mcDp`YJwPP11eGtUq(7U-Ek2qn1e;`a8yX4kKo9Y8Ql%mmn);&9CZFKU34jq-Tp00;phUru($&Y!n5`jD zr{%D5IW}n^+yaGc?3S8Pz@bpTq0=G=yS~ngk{|DZlGUBD`w{9g|6X1WIABH12~d@f zzeNViM(`JhyJ-R>*(2xhFUcO7K4cTp#!aJ(R=gacmlGLAUIty%T{pp;?W{U&glZiD zl3Uf9!T&rh%{E{NCDLdt^w7?D5amXHVmit}$B#uh3QYD793g1p;gloM5bzYn zYPgP=t_4^Kz~j&_*Ol_$SOws=EbftSF)VMCBI|8+9xN(5rCQ zZVoP-#7}*rqq`L64?=jE7w`ZJ@qNRM{I+zFydf;V^kwySus}oAv81pcT8CoiI+mBO zmT3?*E)fI}5CI7taWChr#TwOm@&f+JQpXv%UDCOnYj-+$+ZCQ1TCQ{#Zpw}81IiKn zGzxzWRb%uEcj4w-lSP|+_bNz24H$iEVLVq;Mc8nEGZa`*G?U1&;WyQQ4Q=tZbnO$2A3-0qXnnA^ z)(27_`k;=0Kp)5_1}=I60i{T5Tg`<8)!j`>gl4X#iljm)gHtJ-&4J)$mik~?P$AH` zQLXTw4?dJD!KYHK<7fR6LI4+q@s+*wtVwVNznw(JF@cR`&;^pmjZgH2iz5hY&Lig% zEvR?zi|p2T)V0>5UJ>x>4o1GZ-NkN4X2zgzhY(^&yC4_%3yMK~ce|F1FbPyjIwq|w zcx)si`hf0fLIcg&DBSFYp831hn5v6_#W@h_SFwI6TpN50#7Ta!(8OnbZ)N~rqE~v@ zMim2ha|jRq5s$(w5+a7Kjb0fQdK49(Ls`-MxhktEA7RAK{?K^F)BbTyu*(S=`-XsE1Q zg74+L*|a05K=*HleR;R3)A(N~QzEuj5F5hE7b6C_h#24^#GGF{(TfRv#}BBjRNyuo zmI9oY)AtC?idNl9Py9i}AdtAwS`a-t4>v?j)PPKn&0$VMf~7QCAwAYN>}9-w0#++! zVZ1Ce6A{fQ`TOEZXTOH&$d7{TZac!5a4sL+Y;1?BK7e0K$kWmYew12~ovHFuhZf6O zpDl>^oFDBF@$Y^qh}a6p%v5irmh*C+KH13b-=7b#3ifANR_XJk&nn$oEvrc*XAZr; zDia`|6sKTA1JWp!2*_J6Ye3w@YwErPB=VY|M5f5&gwc>i=;zA|!;D{qNwH#gDFUn1 ze4*kj4$e$6l4>7z1=9)GuoXOL3%^SEi(g9R3&bgmm;@GO`l9=U7tjXpyu&V_AMxL* z_5cABz)jxbD#JoHlO)EaWen2e9c$^V|TG~uv}UI)SE;f=ZHOHlubW$ zG^e*UbUH)SjrHQ;!xGMA-b@K%rC3-#4swD0Ong#-C&-^VF3cZQd|d0ZH+Yr?Jn6mI z0H@$h{4L^*UsTb&z;rZBcAw9xkdy`dgj$`$Pjl(H`Xmk_ew#Udwu0KF{r)i;*@im4 zBX>Zg0WElg-vF}AJClxLf!dEJGJ`OHMaC^5ciLe16~&|w1FUeH;oQ~2FTH*z2~w;l zkkHBd>a8SJ3z=nbix6;w*|X*KX`7t`hQ-JVGiM=zB3iWWY|1C1&H9Vefh}6yCMz;6r|_s4DlBB}nERr5`K>YJOPt}p(b3A&-P_yH|Mwab6$8jBXi3_2EC zBz5v%Xjf-zh*Ij`Ab1Z=@T5G5{rpbT8|0+Tg3JO-v@N9f?LNKD>_U@#y0H$1>e|FG zdcBZ)FNEqq6Ua;_73hOLAXa*uhlWAIH83=sd3s^(J$fZs9z zq8($-6(VUT`>cm$evpfB<^(>524E-*)5M1CSpERK1(i>dm4R%igIc*wmi`Zc@p6{s z5Dwr8-)CK;9k>GZ(-sYGn6JRD99smrC2rJML{<3$OQ4s;qiz(<>7HqWPn0+CgyIvZ zb%6T{8H(SC>I{V*f5s^Ft>bqp5s{Mb0vPW+hVW`CW2juhD2P-CH}2H)~VCJ0mP#*oB*`#{QD;~ zKY*Dor{={UbXFT(xKA5iY+RU?RhLzr6UqW%`J+^RK;iR8p8OEzG?NnY=2+3iv^-UA z{o7fnNllX{16ce20%>GR^_%|2s$K+uYuObt2 z=_6PNUJ-Huf(esVfa-#Y8jWGX3M7eFB$G_vT60J@-lVxIk63m6alw8quQ^{Ipdr2; zIYAh7DbhoLd9P2nC)tdF)tv zg)D{ozToq!wRU6SMg#Rs$Sp63<)3oDF?FkIVCt~!2KY+x3Jy|#yh=B9RZFd@Lv|7d z(9SoS^0Wq_oLCrZO&ynNE=qlKyXyZX80pvmBN;7`M$hLoJNkkejv4!(N-9O zt8Ov4o*L{Jwlp;TSs&L{FQ5bJg~YwSUKnox(0T#vM!oPh-op+_oC-RLdciIc;7gTo zgcthtO=<`6#*M6k2V4jYPGAYB22pCcYNK&{O0bj!)-c^tHGFR0#IGRGZqSg2P|peDNrk?Y6=zc8HAFK2;{kwKB8tUMWc#D75Om!$h)5bl3EPa8le<; zoT(R(zv|c5k-lKDTCy1G+f_8XGOb;2t|?Q*0U@v^QGT9WVK$Puv18oWv8moH%NM9S z4d9@TpwXzBN)90myMrODVtddJY%hB?IZ`5^H@!%}uyR=H4)|$uG5$;}boc*=lyLR_ z=4xPQ62{Gq%|FIRVWe2%Sg(G~lO$Yk(CojEW$9syz7?ls5~To(ooWU&oXtn+%|L?`YlgvRI43gNR{c26ZFS@xL_@Qc7R<1 z@klsICca<2jrcw!qXeUeEw$kd)GKkLkTE>rfl%^Fj#%N70=g*b#CprxfVx8SHwFPM zp1-!g);U1}npt*%daou)K!-$v%h|H8)1VJ%CCwO8yoH_Or3S;x8T>ev6`cV9pbvXF z!$h$KZ4dzAa7d&V+D!^u!$|m5kzW|)YTHd_;W^AfG5(`R@tFP!2-4OiywI^DIX2kP zzuX^Ch}Ug)ML3ApGea3jOzo)oBY32_A;Nx0niThRNRws$Y| z;{xqr&0%9cFQ)@#Qh0THRGE)Is$r{2JS1fFLOTi=e0P(57sq+p4E~1z4@;?8E-1Qn z(yNB+1Lg*rz?d5ZPGD}nmf_|vxPy(sw7)2g<>Z}CbfNJb?+c)7EYU@y6AMj2g#fy~ z`G=1#C@rGvJSm{jRkEqddBLl@d3O0IiE!#37O*C+vl@6NaHG`cKHs)<)=WR%M2 z{>EQk&Z655DqlJYiwgs>xS-lTf_UO!d0(5S%_k;Ykm`S```Q@#6t`Ex8JxrA{J5Te zW#}h-#B$2e3liYFyV3lWeC~UhfM9_XgyhmcQxC$wN_?rV0}P3%H75c6fOyMqr@)11Nk)i34Xp@7{q)>e{*||3bXZ7xn`SPGVEb_B>ftaMG0KG-yOpBC z;lT_ocf1)aHvffLAMLAlKBT+5G44j+a~HNAi>2FM?*4DFi?Hhr>^c<3T>NcS)?0TU zO=E@V`2=v*9d3;FpW4U2T@nSR_M#EjvMz}NHB>t|uthtw6)$z%#cv1%-_Qhu< z%7*xcWo4GGUpkGKLh|Dm;SV0nv88fZs$4%@fTh>QA^6Vf*?e&%ez@N8psHoA6CR?} zfNpWDiNV+2UkM15lCDxf%i$@CFyq5g`^+pJYgE-4~(P|;${Y;cI9 zRR@{I!GnN5Q!%wW2SI#M$kO1?Cx=GXL)CLi3VA4JJC&j}KV{RfXnGMFUrO;np1AtU zq8|K>0l-SOb{%(|JO5oH$L_|j+=buo;Cj7paU%{_yT?dwvN7*EVjh-h*fW9$UlXcbYb`n+vBc zakF|pM_gFGN<=hgAtH=(SUbB1yKUxR%2Gl_fa=928-OIg5jf9NubIRAPlrBN4E7d(1uZl=}6V#F@2M1`~-2wf*X+Kzppf{+TI6^4@jXg<@6sYT<6@z z4BtGxDwgB{BgimCOfsX10QZ`;GnSI~F}HvbH8!$v8p;G3G4+`~Aunus{mWmUbBnoC zB36MxFxo~dgc9M!x_zcNhsIsV{c?oBb77v~@UWXCf5KTZ`E+vB^H%cdyqvCc*bY=l z_HERelAEIU)avvUaP|gr_6Bt~63K09N*xgjUa2KfHu48KSIdx{<-rNy;v#srR1&4Pdc9SUq&}`50Y4%;#gtCW2Thyqbd;TxvGXw(rn_iJnDGHGSgBpdz4c41eIT?WuA`T8|33ja zepkh7#G)mAXO!UZuQdB0s}fM09ARjZG|YFW`S0%X2N9eu;5!Gxf9ZoUx?fW-=aY4GJXgoG6Lcmah=$(5L-4|n zvO;C5%QnZO)2qKM)n}RNf6zgUhMv;Z_jn`FJFT7i{cGJjJRcGM&~R1{ox$puSUoJ& zbB@u~|NDA+_1Ds?A0*XxGu4Od>U~)q11`o-j^ZSrqb0sejUk^tQC1g9(@E_m0EH&8dMxLMsGgLdrC%OpOIBL3HVS?IFF0%b1IR zA5^^qRn@0RA!^RKw#n@4)eH?uyq4`op|Cgxwd79BZdT**_>{*_@o_yKk4$-dJ08am z5}D7r@C&vBmKBMg#5Zu@;NONyQ zo1T0#RNmw~D{m|Wo9@7y4P4vsawep_S;seb;EkHM4Eo?lW^<1=lY) zHt=e(9^lc7TZP8LE|`)bo{lNHM&hB(_8o9qlAKGb6VYE{7VT|Hf6mk=$sX)_z7KWu4NxL!?K3e0i-!olEQ+ISlDcp##e zbE?Qc=nAOQI260Dl|e2!{`HU+T?~T=_D%%=7MZIST4b7cuzcp7XcK8*vfltO4s5Z* z2vdnZz@dWi^OJCDXxqUX+Zz6p=+_(N7_(=Vz&O091u;IUMj8uAvlZP zQ-B6Q?SBHn*J`2``$E-=$a6}k!wV?b5g5*>S}p8jTMKY`NX4! z0aNfX;kf^y{k@RZ#bA8_-25P?f4>;bKbDcdJ9?f1CvfU8AATcm;E;Cm7V-j zzT9RrQ6QFT0?AhRhAV5R zDxgKG{y*Bz1iq^3+W!QIMg?!IP-6=k+O!h23KnXjpos=OS8p`V)S{-gRjl?&Ndl+= zf=M8^mjhadTC4u)Ykjq?t+Y~#!>eJC;80~~6{J-hs^=QDI8+8(^Z)+VKIaZeQ2YMx zpU(&G8TQ$G?KSVU*WR1oS?KMja#Z?gUh!`_8go`D`ychE(lhfo8C5c&YmX{jg&Q*} zosmOuB8g(X_0Bx@pTCyg_GbcOeaqXLmte+9a6~FVFZ&srzewHuSR1oKhhd56dH)}xI(yOc@lIepZx8gG{O{58Um1G7(LX)=AvrXi%)e>S^;+oq zL=MSeyU8f<>HJ>H%*&T@IgG@JY5pRGy=?PYbH%1` zzDjBwyW=#Md938zo4dh#Cn{Gr)i~iX%wr{$?pqRUB>yRzT*V$6qr1a3tn%icuj_g-hC`a&? z57vV8a15&oa6ocxgUovHHro!U5Pn*|h4TKJp7iez*c3n?eG2W|(o|w~$i|nw)OEOA zPsiHsq8+DC&5=lHDucY<$_-6(Q>T}t>Poo!F0&k^JVw?wG}Wh0A5CP6tFw8GtkofB z8*tQ!bM$qY{nP0eX>B)RslT?t~5E-^aq(2dn0#L zxz1cRy8mFpW1(qkj-5}^zY=EBsD9nJp}C(>W4LpujuBsGVsuxVg7D?IJBhJ+D!@KG@8 zi>^WNV?$Kwb-*en*4bFC&d}udI%zRA^wwF5t~9Za*OP~gEs_7(l>e%WN%Ax3Y09KFdfnh>0R9Qn1+ zb!YMu%c3v)=6R@qzd%T~{ePfLT}5$aG6 zz)iDMVn}mqGGc0E+)E#?kcc{yg(f}UNlAU)XX(Ey5b`VL7}Fg&GwQwck1tU2^t0{O zl2ICkPbT&TdXev>zkk32wkDzz=1*%NT)D3C(_=L)G5LnzoPX+s@M!kcfhcWgy@ui7 zFk>p2&b{&Tj9m z>VEhO$KRvpDX$KoCfmg2Hs%<#qe8rhq|hrzpa-wgjYwO_uVCGiwuQ*gFGN{3r z=Rk)+$uU6Fjiso>)YX6cc5CLh156VR6m^0mP%e_C~i0*>R3uSpdi))X5sNx{$_Y06~H@nG$Cv8k7OP;)4W)b--kg#SIe z3w3>hgC1(xqIB_LrZ7+Dgz@X`BMyw9;zLv8pKgo|sA_vZ*1lDBB@>4V0l&DUkZTtG zjJhtP-9t6u5A~%ZSm`_TW6~ z+J1hc?Ls{N0sA3PHY?$u3{uw5z0#c=e4`cfhdrN~_&Ec%M|*w@em-Q@Fb9sQhZP`B zf0~l$v@5QegE2inZ_N@O!Azmg6rA6xt~s!}?`L21@mI;h$eL$IZ0J9;8NrH48R3`v z2I;Frdbs)yN9^QH>Qrj@+y-g?rq6rHR_jpee)kh;S)0Crw~-Ata(uw0B1(!d<4I$`B+ql6H~(*ryDAc1Qp^*FZGc7$+XHmzCZr?AHw4Z zP*r-0^d^vWK&UL8e$5UL`Dj^AUtoWOPg-xGmB`c@iJw2dm8#Q!MzbdT;lF3OQNoCi z9m&RHk|zYE zxe3bMg@Z823C(lL(S+cZ*wKEv5isQS)cvNTQV*%~iBzj_lkih^$G4Lc{`t~6bLS@f zQ_wiAR(j>DgK^`w|6mAY7gk=B4)kgNiGGw=&_i48gCf>*V9P`v8 z!G2>-Zw~&$C+%%;1M7{_pJn6yXz{S($ktbNK*r=DQ7qus|gC!(XDV$h5Ch}QrM_u zp47-Naq6dZT2U4%1gUW@M0sFv5dF-1@Dt_6hdk z|G;PYR=+;W{x@fQmWHcBpJiW_OeV}{k!`?dkr#r`B8$++XSo3L|6FYGG59Q=e+fR3 zb9C^D;>mFpsga+hUJlM`e~pjh$(jneEHiD>M_iWwnC`d*ie+4u=MGW(MM95Z(tMOZ zUr8G=OrA zTj;_V{v@2+t`W$NFlpoiqolkhEKFd7yeU>_$ zi;`UTMJV~BmFV3UJfk%?;J!TW+?SmQ{vO?z&whNDocr?9RO`~{j2-(3_vLf_x-X@D zx?}E3r*W!;><)Kw7H*9Aw=eH5{P%d>?PHogLhcKDmF{P5OyP>_QF=)fTja)M#_T*O z5iG$$k2=4mRH8C1!}8dVaJ4CZ4Fk4be$94+`5`$h{rWW*M1IYwS-<8r`86er&96BD zzh?I3S-<84*e{fBFtSdy@Sh-sk}<@U7jR;9T;BD~cHtOWFL zcI808G>vDB?OS&Ziur3)o^%>8s40cybMCl22pjD^7@vsX1w>6#^vTx9Bbr3S7dEV}d!;_6z#ZzXmhB!anjRJcX1#`;E{y=`Q4Ta>P>- zFN4%S2d>iEb^mm}>D`Bg6U^*&bf|rMo4UcOHSg6QK?1AoG`jQ#E6^yPdPR#}M@MtD z7__MlgI0$g9smeB5mA(pt)9k&R&2q0_+<=SpWjDE9pc>TuoQ)@)Lw5qw_#*Uz>!|Oh0?bjfk&E?E^9V?*0}7ui*m0-p zZP2fX%E(5E$D~GH`gKsuT2-Tg|A!?sFF*E5Il9SPb!)8tm_dmtNX>V>U1aT~ zZk2##X>B?&VCOh+mXQnVxj%gB`HE;qL!#TGN&D2$7wQGV%^?W4tLJiakGCeTcZj&& zq0j8*_k>cnlk-&d<{p7ixq9|jrFk`|6N{A)j4sv-e|+pK(i9k_VEA=fTeZx6;hzCQ z8yVl(p^#Q{2m@@BTXFNxywvr^a|E)P-D)eF3;_Dmb$xVARG>;A&s*d1qok?#&vP?U z<`bxV@Y4swDc97{^d)({)~C!}(1Gi%7WIQJ6sZ-z@Z9n0g8bRDuT>Wupy9rmk?(!b z)iTiTRX27odfxLN+2`rs$ibCOPu)5|(5CKkg#3deWE5Nz9!r9MU=1^bG!5BNVjtaL zT${ShF|jE{!#iWzpfmiaMWDlZLY68q4&=Vx?t39CIRO?&AcM0F*oa>vR$XSyk^Zj2 zao~JCRqIdJo82W%V0N!5l053QcIDP9seZffT1~rr(W#&G7W3X<#vG9<3jX{ZVah3_ z^p7dRUZY3z6Fj_018G#>%Y&Wj3up7_bg16gqdWNG7qg2OI0hWr7A;Po5V2pO23;jHFoC(pMgvTE`$7MDJJW;1_QjdMRz0vbu7`x0`D6?h`=+*fYF8^Rnjj&8&3bYy6>-& zrez&&``J{M8b9-^@}?fThq`Qf?NessTXm23;tXtK+32y%Mt3qHZ7!R%nu=on57H!V(JVR3`nGIs-RVOc&yK67`iGBu3F{n-Yj8t8XiSsjUZ-S`^Luc zLN|NhGf;~A*V5ZW8QqCaLIoh!701cAq7)KB57U>*-%UQ={e*pK6?H#i_AYh5GfXzE z11u(rZpNrls#->^RL2HVS%spP?SVR?s>v-1H#xVXUb34@Yw7($mGXz){d%Dz!yOlA z#Hf0D6c)MGi;N3=njI829wCFx(kLK_biQTc6 zyGEzdSs?cGnSIVp-5%=*H!~k^ILm%ewZ{+48cFweUFO;Y>qe3s=1M;yON<*43=9)2 z`zw@GA%E!AyF%r3*+n^6tCwcdA#|ys&!3;sOnWcDX+_%8cM4gcs{u7$}g(7pOr^v>(J z4OtbD)epA5>{3ZyKXW9SAJOReK?$xVFT{JMK>VTQQD;hXJA*q~RU|G;4ZZC=!(tV< z+i{!g43g^c&Lp)ix|nPi{?HZ8>Zi?eh=Y?Q37PYr+LTwo>E^-}?dOrylk zn#!rM(^7>S^s2MzDxTn%pz^kH@Td4aG=^3>v*>~y>CR@6#XB>{YtMo5Orz{Rz)Yu{uPoPZ{vE z)&1+>)tg|%c?jW?06Ml@Lx{rP{@2g}t8?aij34h48T#Qzp#;o>Na=%_%N!v_3pu3@ z6?l(K**w-X#Y<`90vwn1eBjm|Yr%Bk=k8(UR%+>oKZ z#slH(g&IW<4NqPwS(0@HLfMl6!6ApqRD)v$C8kQ2{lbyoR59>HDcg4?*m;9PSBcP7 zELL`CtY>?1VHKXY=o~NIMo-{Rj<$~Pb$R42mZ%A_e@G$tBmenz8tGaqAk@w@e(hqG zyKtR}uBA8Z8UdIlQNZ{{=O^7!*21gIP?#~3(=ysKO8Q@&pkG$G+Y0Ex5b9DvZ5#mn zl95cm?vb{qU+@EQpaN528c6#}$5o;>i9dQ@A#7&*x^S4uS7CaH^a^pzsta;NraqcX za!EYP>LfPd&OZ=piD1+$+R)v1i_eCCpdZ`RCTT@A?^|cv|171b{xoJ>;Vxy;kGV#I z6;1(QP}ivlc35nJ9TxX!FEu(V`bqGYUgF@Z@4iRy3cw{QEPe@Yie6^+vZ<1xRpaXW zXx*rFLD9*t{&cNo_1CBA+GOUS{(f^1eX z_AlN~7-r+3=g-T*Fv1vyP;3hF>@yvP+YFefYhYNF8Dhs+3AbBN9gjW=yMLPbZ(x@u zs83j|4c)8B;ch{BC>|5NOkXa}$)F^{a+pf@Zz4K)U=jLcS!lJh`b6V}FZLQQpkp8; zta|qgE_*Q?7|fuG?lt-P$n>ibpx6E++9TZLpSb~lcz2T!g@NH2$UX}a#wRJ=xK@E zq4lq0biwd*pOvE5K-m^*Cu9%Ja_tNG9-M8v%1HxnHi|q?R+bml6^i(f$3v>UqXJJp|EoRKZ$@jn}#q2nRk92|J}p86g2@Wx-d9@2Bm_72U} zRM{BUrQi%fcttLR`S8^PALvvTD)5bVSV|4-S?{GJ-$H_b5o$|O_5Y_@#$9i$4;>ot z7~gt+I2qm)Raxpr8~s6HKyK!M>%2qvZhbKF%%qr;L<*(xTabBvox=a>dIF6= z$7_d#(XNjwK)C_IZ5!B$MJo^C3);;Qz-WqibRhm;{X|Ebj$*FN* z_nJ)E;9q3Su`A!FSv8bqjai@dW!BZa{Tf6YlwW6bB-zk?Nt`9~IM!|5li8A&=`#;qo~(_V!uC)m!o@giH?dk$>+wZAzB4= zT>dou^#p~G5jfx~u@nEXA4b)w+5Ip|>BwlEmww>N57<_qj8_H0YcI1E#`pimfB%gX z2e&;;Bdwq2>V)Ii8RO?Sb2aQp{#*P{j#R&Jl5Lc+()JaE;lz)hquJoBC8Ceq3Iq`u zEG)iD8!`OCvta`J84TT<2f=5E^QQmGEkv5a@I}-C(e)F!4wsub7&vVr`dk<*Y0)r&C@~l>HnAY z{)hS>xl+*7T_$+@IWl50Tt{axAl>tVg$qF7|Jr*0r`Ui%$Se_w@e^~``@ho`Av1gj z3q)p8s;Edj;%6!V;}|A!sTeYNWj=6Tl0)c_;Cb|p&Hu#f{WXuT9TujcFSPl>ho5}C z|2SCCLdPUVh#5KgG;Jgb{^eWVw?2!`FJi!_#j<~m<3aQZ}WT9rM6U8 zhkmK%6|1KE_bi~;KyYbJT!UscXlDiwQj9+WHGCn61c@>xTDM}l_k{Ue68=QaUrt3< zLD)499JF3Xf$Ft`OE~T;>_`p`vo$pWU)0fM4vcIq4PV%E4Q^80mYoJ?EO%+c*@_Gs zA$9;~_GcQNi_m)%GiX^*ICa1uIj2U>5l$t{goF}#4}Nq&&O~LY%m{kiQB3T<1bn3m zpQ$pNK1(w@hGJS&%aX1Z`wdfqD_6}-$m0~2)L$!Hxqi+uu2r*Onsz8;HI~Y4vvQG$ zio1zh)}=}9z;{~J{aEmq-?=bgI4xuTg2wu5&SY<(CUMAdu0#%Ud*fteE>4PbaFU*) zcKnf-pWFv6ZN;AeEsvbo7cKXMJ!-MvaDhtYdZFd!UT9gBhZam`@Yb@AM2j7Q$)<*n z1&=Zw)@sDwX!#ZS><%rTcO_u`zUX)YAe?@j6Jzy0=pXYX~#$@Q=w+qXQXHP4>^xcm0!QhT{-7ihamK#9IN8s zXG=d8LFuC;>%^1R1lPEp_t7O^KMmaI0N}Qbjr(fiYe4!KizJ7P*N$9_;z4>Nav0oy zpE26K?&og%5s|DTq-SCNLh>u{ImP5DT3Z|SC^Rkv16p91(ughjnIuw&5iS zc+2ji#Jw4GrtdZGExeSqJzg>#kE@Ht!Q6d50rx&wVcdIhF84aF?duyH)1P>Q&ph$g zQjhct#-6LXUk;x8RbSDS2e9f?A_m_Nj(4vkT!i*c+Ob6_#U&ci@EqFqP$}Acb9cKk zSp1P!9N)*>%`eI!`ku_)%44nL4Y_*F@n;|0&tzZah{+?TXyqIhGpgemvE2?O`qgXc z71{|7VSOri^4`AKkfmF83c`9V!a8;WezIgXc7rB$CHc=k0<$p+9%2=Dk@xCfDBq9Zy4(!Zppy`#O0q2hW*miqyG#0 zd9?}TeI07`iU)i=K7<+TdvWlh>CjM_fE2?=IENb!sprtnN8;mAF@_OJ1Lhywo$PFT z=bS@5zph7fo~^AsjxC>3(9`n4(M=F{J+J4!Xs_Eh>Rgvq4O2kZ0la3j%bv%X$C&+k z^MPK^D(NNW|Mfv*xzK|l_%!VIR84R8W5g%N(%6Oh|4qTmKQ~5i-`M@T-~zi2>f9s0 za8cjSgPR&b=^;XC-d`TSW%gf!w-n1KxAUG}-@6zjfwJ=p&?CJ~FHPDs*_g{KS6zV6Q z4hVJ3RaZVfdpL10=(m-8=+;j3JT!Q`x%(sGFW(>}Ob+SvZExjEgT2%g`h;OIhul0b zr#Oa%ealfCm0{ly1e^SdLb}yqdI*}pqE&r+3ZcIrJU5-*4vz@ei(db5{T-bb-~RfT ze&X9-MzYoxPU2NT&~-Ns$@I??%dREE5{fi8iXs388H*00&fw-`#P|RQ-xYpifr8g> zjy0YBZGzVq@_x2GMA zaKrpJr9#m3X0QFBFB~IF7%?(jSsXMMM3#_SoGL?>#qDee2n&<%kI}W37`xN71*^g* zgpOuKzH}{0mcUKS-`iT902&%W!|r*E9chaC$7SkAEN^yovRrw=)9MBsStZ||P!v&@ z-{}!k@U}MzyvqJ=W%co7qNJ$SA5v128vc1WVG^;STBUr?s!a|l(TOO`uvR1r9-H{D z9+F#zf%~hf_hMP_;F5S(O-T{sKuE4d#M`~(GhXuPgt8myWBQA-tdDiC(Vibxp{1Dz zC!DyuhlUOAEXXE11}O-sGRW*3v(LfzerhIQ(B1lBtT*TLaSq11B+kBdrzIN;cAn-> zDcGJG{|&f@WYDI=PD?fy08Z#ULo7GKa)WMZjj33fY3NT`A(Fm=pP%4#mr<+U;AaGM zpf!v2iY?w(4qtLzdLX~S*RF=o{tIu*@tHIMo-6`8b|aLnd}4Nq=QkAKK$Tpv@uq?S z1v5hx81qIp-j6$4WhD92C26wYOnc?7po$o}0!(mO$DOp%c(czR%Ur zyVo4F_*d3wFMGGMps89wO^Ypu2Q1&6xpBOl_t}nf_AmfDrmA9R(;y9gd)D%-`3;35 zTL4AK3Fpr3L&g=0e}urq+D0}jC;C`>bA!!eW|hSacxFI*ciON>`<`M02W z9ILfwA9h8Ly3XD+vDSc&!`%g^;9u`mQ}AqUa$Q)gc?)sVw#mGAsk<5#R*83ro^Oiz z?Lg`3AuciO5I$A5?W}lmYl4h9O0<5OPqD3s#O~Wt{(@ENe+~YG;}wwAsKFHmq}bvu z+$Jiw#uhxrMQ!pg@$#*;3Paz|tyl1FZRMuM(TU{C`9LhZj-G2hREtVwQ3gLHXa{Dn zEF}g+E=%_p-_L9g*2wUTt(FojegkzvTZA&O1@Diu-Xv1rEc0rU+q&EKR7g1CV^(L- zc`I%kfO5L>DZmzNX2A!dlKe~hL~i5!YJw}Mw#UkK6+Vh2XCyVtOmSNh49tP^@Lnxz zWrZjz7~{#!;eK%GixG&AC}{_&29GZ>#{^KPIqPTwqYMYvHX1URe`6L$pN{4oBpo^U z&7FU%Uq*2DA7LhF3r7G!C7}A9t&hUo}lGILC7*6`P7PGW?f3!$~HEI$Q(&T?? z;M7*W9P{6U)(MHP;)aRTy%zT(=-N1Pz#0C8Bb1zRY)!@XSi27Xi?{A9h_!E{)ktp~(s*V{Tu08FRlWabwDB({yhKsUkHK~bZ zkr$2=VNd{nIVM>N$T7}DsI97VrP=l11ZFN|X zjAk&9;7z8}Q5T~Qbo;?i?v$8}?Ma^{Ssi|t?qvNJJZ^o$s;^W(l2N#ft}n3%wj4lQ zR!!2DFhw$FW38dA7hD3rN)rYdI(D!R;UX?{uj))tPvUjgSWZ;LGwz93Xg5#~9 z!LmDC2cea^5ij3es{^Wit~2u>1s_1Oh8a37%t&_bF(i~s_;gLGaK>S78-U}z&2hr;iVG=or$xWvVuWCYwXMjbDZ=2MuQ&&QF-4dwJ*)c{!KbVg1W{s2 z(B{5@zi&`gN$Hj-c&mT}@suU@!UAE^X(!q0LCacV^WIP_(=!x<=f>57>&UfpP@+LY z5GMh|X$!y^9ZFo(wYIQp*^Lfb)NHiQ0(IEQz5eo&F?lXj=&uhtl9!?S+WO5GycT_j z4!a5&XYA(*s>!bJq5h`hp@ubmhj3_otr&?l#f5fN?g_p?^(s0>D8}K(FX z(aeM}7wXMv8SYLsfV|_q%I&d5&!g3(L@T_c+$(g8n`?}*K1%_vB_f*v{wtMqD?i=F z%^@chtYeuIZBTGrqBgmb#qV+| za6dN1%Qu=xDpIUx(-H+6CFx65vT|E&(Q>^=ep5ycsF4P=@6$jhV zO)5T%vj$;5t&Y&P0$kKd)m3=@utU<_=Da`M{Q!w+KMDT(HmRN3HRd)xrS{OQmjuU+i$-{kx}jBtkvl<1Z|NG_nLfuLSeyQgej^23&4(? zx2uJ_*`I6upt^Zv>jxLkEoog{%GnD8yPst5)_N!qt^Y}~W7U(Z25PiiM2C-LyVemf z@@V!qDS@4WrFrj~Ua@zpnk=Ol*|kX#Iw2vMY*wIm{aZlZ==3+lNn6uj;m64@&UJ9^ zbT>*DyO*f0$!sJx^XPC)&3@?`m=`={ECi=}$<;b^l$M~wJC?@C@Oeux^j7l<9!vk& zm?+dW!TaCsRlBF!j|gi&)EW8$w%st|KI=y1&~7gRDoNkuhQPh}&5rBpV>70id-{~|qSWs~cXeoN5l7!b zFnLc5Hrq5Vj4ggz3`v*xVj#y@u+d!RDac!RC55 z*c_ndIDP!;%)oN+fi(qPHavc=m43+wLY{88@t4%&0FW*qhGSRt22Wu-=HhwmdB<}c5^Nq5Sv)~zYLS*yQVGERm z-3R-UhmznjQoTaguIY0yNjP*Ab=7wmh@qo~bD*uF`_7P$WM4CNqw6%?5j=F0=pIjQ zw7lEkNW1kA6%pG8g?PLgzHnO-yxE#)FIRApMN@^wzmtuqmP(z0%s?5o z?ko(ShN^!mArvH|I5?GrVwEZB{as(cg5xhjI9|;RB=h8B#*t(jr$1xS*a9UP|N3SH zVV~hiL2&6cgjv7y$Uq{YkMdyP>R>zRHr;>7bAQ}?QL0FNvIvpD!jvGY?n&Q!v=L>B zLB+7`vES?$yP1AuXP87rvvb9!skVDzk!TVsy%na(0U`aPUiYb9_ubGxx4e=Ca_>*i zfB$jq+k3&ET)92Aa!|oK$wL-=@R5O^5*|fDM7YwrZ(Bpdy0=5@fO-2v9FSYwTeu&L~#bS1Ez;jo@y!hA%v<lj9 zJ%7$X&IuS8yMC0Z(XQBn5?%PSKEz=i7;Dq6r17p!)ck;W!Ma3J7K|vibKq>dZTf3+ z#Sp_IOGnTthOH62>=}?&c;s}JKVgo@FZGyb7|$(o5piJ`s26Q}$LHFg;rV`_If;bI zrR*j%WT{^rT(ZdN*7e4#`b(RO>PbNu~@B#A};1OKO zAx`e_%AY6Sv++8wV3Qt!zWE|$BDF{jlh`!#tMPfebUm}KwtQu+e}lZr_>Sio3p7^7 z3$`aJADeTej1-tv#1nSc9r;ZLQ8<7WX7?>HuO*&*tovyY(7h@+(fT`fYxlfh*+R1m z$!Bd2GWdeM5duDR2(T3^*xf}71wSm4ivU6%!MiL(ie$x@k)AUH$JE?yszF_@e0=6< zj(;k*%&hX5wi6%O%4%3xg9-)bGopjg2H#O@V6;SxNGAsGoBk_~4ij%r1@l6XpK%d^ z>F$<=(}(Q^gklGo1L#N%5leW<4e2vMU{H1eW}zn>WasEZb-`3`k)|V8%^tFL@Bw4o zOmOpisx?x?;Wv5uW5#*<9QEzA1+xl=qcS*CeYa51FosF!A||27G>!6-HyBnjCFeea zi`~^C%;}G@*JIsp28X1KFK3>Q;km_H%xf<;e+OlW35?FpFRIf;szMjV(M5?aGDA|F z5|qh|6LSwFe<^byIfs!ObHbVa#b}ycC9&2HKJS<^gk%De2;Ap087eA((AA=z=+9*u zG#{%^8qSU_KbP_$_2+$H7?{{G3`)ALGqW2aq31DrJDc&cLtC=L_$SGT;4XPF5U&(@ zX3<6Ldxnl8_w)7hAmJO7$RS^Td^k4$caR_apfaw4F6eV0l754mN^K4%2@~${HoXPR zRka6q#@h*Mif6pkQX>%gH-~v4^am*|orw;n;`|AZ#Qnx=)+;~#p6!}M+P zLvPdHl` zW(I;w1#iWZZ(C*5s>;0bcf*QidvSkyRBOXHt5JtF_#=L#bLznsQrrIi%oPA`C=#Iv zvlyX@AXM?{;Ia-Oq_%zCjJ?;kjHP!>`Fz;@aBzk_4^Fk8T+V^U?o%yD{);qoE5r2k zQN5_!D<6jVKhzv81yL%JLR^%FX4clu9_dv+Kl@7!Wtw0EfrH1^RCG1%Z&Pe*n_p(+ zIA*}=*!MNk8nZfBzCiHmVZrKPA6o7w{%_;=aW+zV0~}t3!iArz*omO?0Or3_Lw{pG zHnJq?WRObwgU|L-Ll7AYvRNF&+4xAUK4a`6XJ1BG5^E?;jlaq&n|P6aG~D?wano`jxjf4_NV zr0H9apbii=;>+>Y)$sRY@l7u~;drHX)L&`~UP>f8<2y`SB>WNIk8gOnw*0w-e@Rc= zNlDEAGkh3tT{R|p(E8uv;f`~UCxrhL1DyoZ-VkdH&CX6@#%7$HtGM^f3VnqGb`@p_{=yb%e3Y>hI*nIBOl->; zVk_pXc1@UbgohBC=AS?X!Kt((fJU=F>>5`=RCMm2tthueL8%o}8?9?fR?o(~x%$@3 z?p5E<3`MTK33>IcX?FGP*rJb%g4vYp{$;TCOnR$5vwQ2~2m0+F-RYc-XB~kO3iORe zG@?U)^Ng4cSHhMBEgy_;n#NgDxKqzGeKWTFMiGe=UvS1)Q~pojl4&!wk)uHDkz}yY z4xqLxVT4?^Z zaE5Y->YY8=>shB42Zy+;CRkF?vb%EnX!m0FYikR}dR^8s5|09#XCk55Si4%?v#MiQ zfz8fZq1C|+*9#-e!qHOq&fvvbu%XGA9Ppm(ivVYAJ)MT8p@UA>Yu46VJH2vD$*dw~ z70bp{bxh+ui&BYlE=~&^gnP#pLO9;0*PZ&=m>9Lu+w>Cu$167wzDb=^Omy5!6-yOt zcq!puSdj29CljEojIB-MU5~0)@lAhoU%y{F>aE(!w;NdmdYVl$R4FL#p-U9ww7`w% zPozSRrivFGz2e0A8y}Cad}&}@U-}n(7*GDG8+}s@WCDqfbyb z0MO!zIz7pz;PE7Og~obbmb;QEEtzpHbB6xL1|j@KsSV!BGvzpXU;>`!I}5CB9XfD8Q@PtU_dYa7tS0vFg-zui$NpJ!>5=*zh1|Xwh&&wKCMy z)+}xfGtO9I-zv5XDH1Gs@)(=HTiENh|Bwxdv=Z19+J#4H=zita5#EYH`yIKobKrhQ zdONzkmAeOfD?d2VE9cmr+b!E)cPqOmdj8Fyare6ise35k-4`?*ZKmEIKYKl!Or)CE z;%hb^UlmVwGAlHQ0r{HQBx~u+&{ZlveM3+)SF*&LZFBbGO^^1)uxP*#v{TJq#iyl4 ztUWE&NJTIw|1reERVfMXz`}$YSVx5p@(O>dCp$Jv^Wm0QSRo3y2Pd3{h;oi|Rz!Q@ zM^RMp1NyE)HnBGdXgH@Buu8?6qIDc2Nj==HQCN~8TI;S0Vy(Wu_J_os;YdE=t$cBi zuHnq_4NngtKHI#1F@ezMiDM37)*iiKqyDN6?cTY;%#S5y3`S&Sd;H-O_zbi@4ta+V zY-rSm0OuY94@tX$iejXvB)B#Fbc{f&m#~JZr*F;{T7y&K^!osbRJOl|z`441#L zM9?Sib<@3m_{)6IJ$gl=8U91Jo2v>^k|Oby#KNm^us zywR~6t9QIZxVt8HAEN@i(Mb%x0k%TYJelfj%vc{?OpPw4=_1~>s+1pq9@pMEqo(>{ zd6CsSURnA2pz7qGuH3k94OAFcUH<2|e|ArG>!S)$mBw1nqTy3It{QehO>&zQwcI3E z$IOS7k5wfcY6=tBOJ`Rrd8(>5`RCg5m*TDe;`@E|JtpEv5;x$@$wfLXrB(SUr*@1x zsMbG^`9-%BMin$aqKJDH-sd(#BndWXa>-i-FD8;+X|3Bye9$aQ?O{L))fS1?0DNAq`virO>OMsEgLsYR>()~hk@3j)3upDBLUoP-J@->U- ztLE;7d?*aZ^k@rpkL4fFYxY)H6cg*~ok?>Pp9ofLbvrSXN(q35$Pt^iSg^z$J<@+g z9R)+J{a`Qm)8l@2UZZk|fY-H3q?^R-Uzw!QA9`WCzzH*kf#?QaS38J)yH^BJ_&Oh` z&xb(azF4vqDoO={trjs#DZU3csb?LYlhbj;HBy=j}%9vi(;tE8rxq+1_b5Z5OZ0;^9jbh2RW%YcGnE(!0i zU#a`@&EAG>`egnR-BQ8i9L5=)!#K^3aVnesgNJYyK7f8KOtX3R@y_z%c0M*^^xAh&D+mBPjTs>@{K97ki?mS8*9+ceceV&l-{P39H(dw0*souBU$d*xv|^QG z-@^8s8Y_C$xNCF&HU7o|lEH%~LGs~|4emwnuM`4sul#q5VIQDqf7`2Oe%P%~+G>s6 zxb@IpihUHGjkW*8o}JHzA~`l>GBT(uuGkc7KU|yy8tW)+7rksk>Hrc1wEDmq4My%&{X`HaFo1u}63pV| zyW;*e7=jOoAg<**?EZ*4+cH5$hhcjsnIeIl7b!)TFz?cQzLfA2hZe*w_Snvsn1IBP zxF7+gT?Nr!+tb( z64Yu59+EW6$waif0IgSUnRAE+1H`@2{$};JdZXms8gNM#xnQ_DXpMuyxt`7^Z|jre zy>iUSYwnZxu^V2JArr5YBq${nDiS}-ECff}R_0+Qlb6k8`m(}Y`YOvTJ;WK=oWPus zL~4*Z9p;SG9=x%3)cQ%O&C0jl^m6T}O_;gb@-4N=?s)mXG*+9HNF7^S{%+iD4>@UU zPrS9qe3Mt@n-FLmw>-Y#RXvn%!T`(`4g9pMg}zN1`+jZZhcRECVj{V-wtPpNP!Sw~ zpQ7C+S-$vq^^gIlrKWtaQ+X}F z)3^Z5EiD&}00*-FV>-fx6sSkXslnUR&0KN}rTPS$86Fx@zy;g$dud~2s>K`6G`Z>J z#3%%b(*~phM&ou32()|a9vW-2#)8=mCKxm9F48pV7x9fVH-E~#=`yd`v1O*jZ$nqQ zh2~^T_|b2veq+neD(MZ76D{E*}Cn?2pEsz3w-g_Xh~p4Vut3B29{ zQM^F%L@Wjxcv;VS8(vTNgFns8DC-d#IQBsfWEDOgxyfhu;B7a2nk?v=1A3}^)=lc* z*DF9gce4n+@w;Z;3U+AGS;6BdXM)pY%kD)`xdI1^hD$YlTKUY(H_hsjtJTD)hxYN; zP^E{&mhaQDYYZ!VdtpEo5S2dA8gR9_|AYDoU|>Iua;_r*m7sY5sOkenx?A6gSs)X;$}>6e2C#H`5+Ze?r^xIMm-XK zm)LKZiwLjQp;afZ4(>i4(CYv_3$M?K8yayQUtJuV|CxRGeBK-P!0j5MEzz$Z{?hz5 z-D}6Y_HP#r7y#5{81v|z*oBY18#^FT)=ZC@asS@>wDx>l7@n`gm_Kze^!*IWqO|Y3 z8;#klPiHlOKw{Ko*Rdf-ZSslurnD4r?ZE`SU-Xh2^215q!33jT$1l=|U=%Y*TSDa+ z-}GwjsP{O(uM7qAe0*e{G`BSqHjMsyUSREyLO}0W7X_cg@ev;PPuS0ZBxr+PM zEL?~zXokeao}&9sH^!E8LJK`;*?noOtrJfxwtVDY_aCBTh}sV4*7F}Oo5p)>qSe~9 zT|W1A`P|!sS1%XZz5}#(lx-GD+P7B6?&z#R7Ossgyawgiviq`F+ZA?kYHUHRT}+C# zf1V31Clc-SAs$RDw&+l<#=ftk5!!6Q12}OsloT?OR|^Oe?8*2nyeU>=C1S~gi6tR| z{xSnL2g>E&4xvPA*HLhC@VvwZ-mecw4VJVQQk`skqc)t@AC+Y!9Z=%{YFP-BW~Czb zOPY>EThdgi02?LqVg5Dh72yxA7E)=xPR)DL1yx!EU`$7|u6YiUQWqInnpB5Ors3jF z=&nCq51>qRT@+n|0+rE8JkwMMDuGBO0*4A4>a~T-7~GLY9pR1( zl&VrG=&6tvrIxA%NVo{zRyVR()?vS@2NT(jUV_Hz)U+ORdn~Vu+P!j5Vl{%kwQv$0k>io_9s;1g~ zSaG^8y;!GaweGBH`eKg1aX`4<14Nrkx1rC*^wxl8(a7iSd(Tg;W>(v6gnQX z?8e%jAiVnFVrdPHm1JkFwX3zLE>whoY$JzdPwoHXlBm0(n}WF#q@r3UzcxS1weV`! zbasi}Q*OO}xxXj8-yGiWwEH23m;r_j&0$bbr#P7Ml5U+#Cz0!gWe4+=>#Vi6_Om|8 zI+m0eMc|Y=Ip@L$@;^B+CQiwRhqvpctEURC3Tx)(vMT#+EA#Y=*)=AZw?@3NTKH_= zDp!jgL@-93U=-LwBIKf0{23gzEsNH)CZ1Y$W2dgMi_04KZ`pl$tevz&)z-Z&smS zu`oKHnQ^*Aojp>Qfs0X(WqSIBlN@!?#cBa^88>28#>uJxS6H%VU3!4ffrYU1-}HI< zE!pjm8`Ce!s$(axBB7nICRo9}3JcuoKgNnATjqvhHMhVp5%4nfeymjY4W4?A_m!Pnj8ueJ8 zso3Gcv7W<2$a+gu9Bu;-H#riO~~}TXmY) z;I{R{F1uMv;zpR!P(!HxkNq68)Qj5x9;$=04@XPF;!-HP=>*ebb zseR(f=Mv>l)LzkP^Q~8I{iZhi@b_2MDBya2^(W&zmFvFhyOCUNr@rs7(jKN>sTD3J zT1u3kNPy<%Uf4+gum`HrOFEatL2fRI0qk57{~VYS2@je#iyblY) zoH*1FLSN^PWq{ABR=&ag)Hl>Zyq4jV>jP}nw*&W+zwJ8EsPQsP$~>KB$^`V`1~e7) zfmm$I41EUH_0Kw34Va%JZblkmUB=To?K2=J|26eMsZgNE`;V;H!)0Fd;G2@uF#ohw zqXR}jgTI`4a;$qYWUO`*Xc0v#pNaX}#)Wbtj+s=kGS-%+&PRAMU{b}FSlcGGVBjzx z#dWnt2kiaR(^xc#^VYu0Rnuv@`n;wkvY;*emQ(_o-?)#NXd1&iz!nk0mg`;=?7!vX zN;vv`R2|nE*78eCB6u{ZVspcO4%YOUK$7s!C}3L*#d&O>7OfFERuEd(nu-$&tXJ-= zirw6m9?WxgBG3|&>W9YA+w?1323LR0yz{B{Q@z4o=-dlQv$-x#WH!Xw9xy%9sIbl% zq{Tj-US<#Sp_D2Ub&((2qf~rq)Xqt{?}fe~@kO-2-p*H$0?5k0#lznhv&?&=1&|d; zn&tWYCkwxXC!BxPW)LFqrr@-q66QBmjm24froIM<4hpXwT*Us5(S%nR3Q&ejsTGQL zOb-18)-=r@zzc%h_z^XpKb`c==VOb1A`cEFujV?2fTJ+-Kt+q@ns;|T1!?+=R?s!K zcJLV1ix3p$Bi21r06zbh`HPK=Zd*Srh%J6o>>eIyh9#)WfLi&~+;UH+fmXf{TRekO zYX=vzz=IJ#YfthE&UrTTm46x^Y>6!{P__8hf;YB&S=lyz$&feVnxn#8c?4Pe`%MFt zT)i>ocS>vQcE8 zHu*5bpHA`onLz*i+=C(>>KIbdajrV?j)j347T@`5I4lmi%+!FbunMg>A`_HE@M?{% zgE#I^bMPwGc1i~5ySx?qJ^Pbs6Zd`gCj!-sDw8uHf2x<$iL`Yh3qSAcnJ4(ZX0fNn zSMJ&?UXD|@{((Ot_V2&g@lxmOgGhK%b@k;N$jc>J*(HeLS^wr3iIO>snG;8_OoK zTg4!(-CW{9j=UYiDnvJ4Rt!ueSEZQ;!DJQQ{kMQDoRsPO&Fp(!OTBK9pTf&I-VnorVEz4>`m%VOg~*5EkFPpeRo0|0K|B572-qNf zg7lO>{vRxqG(+b2NgjdovJ_#Q71itI@Y5O8>%=$x5b6ooenTBOux0BIY~!Lja%t>f z+YB60U235&T}g%N_6pu;R`DK{Kq)Mc=%Ck`lh(px+Zx?=pzP|BiAof(1vc9aCH$IW zD1wIzsb+pvv3pZ_p+xH8M6UqHhv5O`!zl1TGwM;KREj53l@agC*H6#EBMY86Plkch zjQ{&(^;z{8J)%B4`c^R!s-Xhjsbxw>bw^6p+7P^ysW;xVDKrexF|t#vocTbB`u@ZV zXvIr1Pvcr?%uq)@@N>V(w36ck8`T|Voim#xcqoN>jt}yYy7|@@7NA9R!`16D{Lu}wTK|;b9osY zb10VaO*R2Czc~7@mwg-}E0ULwBR^gWP!VPGnxSqB_pFXJjy9dG-L(EgrUAmuT03|U zmNASYQCeInXL|8#FrA0zp&YEmw{o*~@P1>Y!L2@|&Mb&b-*>H~Epdn~F0qn>jvCu3 zdSc0zxewU%{yP!Zd$2Og&lbK!TatjK`ek2#zbkwohSpyEOYFtdvDTk)LFUhd3MJ#7 z>YSVPb5E%1m_YVOXF?(H{KlGZl3=XoGeKaig3;NgdyI|CK}h&Rw{8=M|nCqSH4dC-LFGToMBnVR&sdfqaoxc)3m8zXHfEGTjan}lmIg>DxWbfT4(uZI! zg3WbK`xQR&e5CP>R9Uo2@ zAblZROJBSrF{UHaoU&k-K4oVvzQrE1;@@cspw~dqp&GCvve~e*l&uN}TxR3Tf`H8^ ztUheNCNcPGnvhlH`Cmn;Y>F+m1z+WORFa{kLgFv5gR$eDsT)nwO@w1-D)vD&1Wd+oF)bX__mpYsBJZC zpQ&J334El$Ze)1E-#mVr@!fo0%Itpt{fj^&BN~|7EqwuV(S&HZpd{%(X0E-Twe0WXxaJx<96M*?j9Ih_;;Du z*4<^X#kjSGj7xY&;pVb>MO^?iOyKz3DK6roi11E|DCOg)W}uh3V*%JILxZdKnG&h4 zmDSe9hx<+^>6!)mXuZ7D)>qx)cuQ^d%GpX|Elf|EBQ9lito2Chz@Z;;$^@1m? zf7Op@<&azCQ)hv>m{pP(a!E$iQ25R$M{{my%qU>KDYhV~ijbo9`lWv`#KUDvbW^!$ z=2XjLlf5%V1UZAxpDqkW;v5C2&6u>66{&ToP9<$_lAb`G{1p8us8n}+3N`s?*CW&p%u?ck&e^V_;89j8Kh%L%wZ;#g{ ze&B89T+siB5JqOv)fqAJ4PQ|gO?-k6{+3Y+k|AJMAX|UBR!5`j;^-RXroO80>Zd|j zofL}t$aY?S@Jd|$3@)-Ck`L1(r3KD#PfvAE{fS2%snt$Hp4D0-ceVpd!Mv`nYE@VH z%=8l&Kavx&(i^oMJ}PVY8bgR{D)*A(Hh3V@8PyH(j+zMOYz$ zZ0H6*ErLZZ&F@UNVvrRSyN#!WuUH-#Ix~^+MqoPhMHu4BxTW$~9AG#li{3+55^Ek% zJ#VM#kNJ1-AntZF)Ih$Dq&hYn9>Y_LXeazA@2;AV3dq!+<_msr5*qrwYQUb}&eMcH zY(I^`k)_2i7BX1TOrLm$3I_y7nB{PQ#+Da#rU%b^ktU>$i({?ls8)Y?dUv5@X-5oaYB<`r41hw5#f{UBnNfSC*iM31OcHk^n{}HaN6S>J zIa-ZkKZOA{{Ww&up`+C(N2|{KV$n!Lce)1b?s&1AYg8$E`-6><-nP!EX1WOjTTIca zm*#HlulmWos|RywWgi6Nt@_~C_5)#Vp%oV=$r~xSQDlkLZG!}J!y+z&vm>-b{-Qd^ z%0bYX{<|Vq8Y(y;K{jh(7M9ha_7$r`))toikgh{i#O>xXO_6t;i^SQ~2}6*oaAaa( z6W3^(kr%b%5h*Yfymct7OOq^ml{b{(f0Mar36R+M7(gGgCc4oa@R7mj7{}F)=K?bmSyX>6{WEnJd-^>Dxa;wF;yvD9n zMHftksM6BlXW6QHyS%f~`$~cTc_?b66II$vfBsYQlCM8O51K^!Ls3{Mj~i78NG;gd zD9u5cX?U|l-L)|e6G-fc#-$!NEQrf53JMAz@#p zqKIqg1`5dep0VYfczieTgrh&&-X|BKb=Qq%^j09(bHbe6V;xY|-P;#LxxF)nX?8 zpgaXA4Znm@6{e&XXzo-LHcoMNO*eXVlwPraK@yL{ANqx@g)ocU&Wx3L^hCVtu1-2( zjo8;_M-YR0iC>-kdRJ-4hA{uaWh&3Q2k+qby&cbZ``~B29U9l_EVdazS% zD(H`|eouC498tZ-vXec|NzNWX{Pf&nSp72`vh+_j`C%)F?hZg5`A6}!{3PRROosHM zldE9Kk3zoIBI_|yahMEd(vViORxLCt89KQJ#V7oA-x*9f!R!VBsCxtwGPTrx!zJ~| zl#3h&_q&4r_}iZhMa!Yq0uiR!GFcoY28X87!B$1sR)$uT& zrSXAmcKX|(B&$CDM}QyH7x0yp{Q|yT(`0v7Is%Ve*!6LM?`wb?%;pk@TJC=f@F{=l zgYlyN0Y6B9zflnazG>~p0e;pk!uXy6Z{4+DY*9Nh+PZ5E zn?4%w)?GwP-KyEhj{c7X;ZuEku;MHI_MmGAJ-Fj5VGml@d>rZvtOtAMr%%K)c@u7V zs^{w)`k=mNe7}J2FTh_O9|HdP>W>55`~F9x9)B!&1y@#9pol!WA)(4nA7m%fWXORh zmeHkiIjR_4N=QPMOJgeeUd{)LR!q5NTnYv`9}GP?@?(Mh(Ty3Y&3E}77~Q_0{YnnB z>_XF4_MZTe3;9Ltn-E#$!IZ~ik9s$-n=Q8(1enHGgiWIwv*)@9yDq0RsQ(l%a6U`r zk1@Tpb8u{dIldHX(MSF;)O^0%K9ebPbJ=tK_R8mGo|$pim9k*YI+Yd&BgTouHgysX z#JRz~hVe%FU@ijp3QJ~j8NB>uNB{AUv(VQ|=9|uZf7WB&j;Mv{F(*l#iMn7elD4eQ za<76k*%>$NDLYYB{Bat)n zXSQ9Tgr9K`TL@b=W#rU?kQR~8)O`~pj=yyF?QOnGcwv8)T|l241BI2QkCGcQ=U@No zNk8^>X7t!AK0AZe)xPoIdBR(tc*f+YO&CKX1Dcqst72VE(^ZMCa6D++ zCUXsP>rMo`{p4j|%9e?%VX}H7q zxk4SSV!CL~w+wGmRKYA_AK(OT3%MHXXjXvO+5$`eCM8q537MucJ)^z)85ii}pE<`( z?D>#mPm%m}EI1K1GmXss5xrETE)oyjnv!$UV#m-net|LU?84Ta`!o${-C5tbHvuj- zR9)JuY_D4;>%J=qfA}b=$>5e|U*m*p@)|$UHGUhD7~S(7i{|w|Hs8*W z?VYb38l8z6$^Fn`Iddu|{+I{NBPMEgA$Ch=M-;@m3e7WbO$$#~vr1h4fYGq` zL!)!%;Y0;bV*b(i-|TID(Q<91VLN9I|Dmo^BTuqNmg+EmhFv$xZcUtS*Vu_fs_-bT z6|+aSF@SEsOW^%7$#rmm4F^M6){zO#!}|qKQ{S!IKD09x6rUICPLBP4@X0tgV(H5& z*G^|b@^K8_;|J#z{;i0IW{`R@@lga0G6Iajz@R(uH7P)`Qda~R4qicz z2lR)#29$WBY$~i(9r{_9v4ZTD&hCxDj3bPTuC^c0b^h-hx;!s6{3N@!q1niz?3xJx zFExI;u2U1gVUL=X@KSgt*Fsl)LO?roHQJHBCBZjxA!QGnPlBzLA-3vMgIhynfva^P zu41j?m(<{!Dz{HxHV+*zaKP-@LdLWRXQl`YXJ~0~=HEJCKu=GYly(_UN`i!f8W933 z1lGqPa9SP$H#h{2KU@e5$)C@N!NK+}n9jxt>A%ukMwjcNm%IR=>~oI(1hxud+(-(W z*$th2zmPusGW!{MxqgzvK()oT|1WLt0$){e_5CN1qd|!$+$1Py)L7AK8x$VFYtU#< z>_MZ_8m-k>FQwMD2nnEqBqjk)4_kcdrMA^aY}H~*tF;zwy)-eDi?)hdE8Y=r`xvdL zeE_wV|M$0M_PKa{BW(F(cBy%>g1CLbM@$QT9x{z_X|IE=y z*l`HL#ES?>U#EPinw)_QFF8<%aJt4@7`z(VicDvC&p&`)*^4`ZzsJEpR()ip`p8O7 zC_3?;-HMJXo<+jB9xA7XqlyL|tfPt!;#G0@a~75p99i{740MnjdCmC7McMUaQP&WA zXpl~cU;W$NiBcM)R74#2)j$6M)i3+M zf`5nzzHfi0q%J!9T@hMWL)w(uX$Zfe3`9@?8`yfx~h|EaLS8HBKJ=Kk6DtC0qUsZG#ip{I#p zGZoZ%G;AF`@7P2znnNYVO;-elrnl12sQWdQry5tMY2cP zD|kH{zN7}bJ@(Y0B7lr)!#jp&kI`$|PdsG&$mBabv4-aU5c+7CEg;%fP87N7i*i51 zH(Al2nJfY61;6G`9n0D{SaI?H*iR%NzG6sx1#yiDXMegYk&e-OwS2-+h-dIR^>W*5 zJEykPbpE}h^-VW7@vm6CP1D`%JWLkHX@AYhCDqZyf&PdNKa+xhXyfcOF(6%$`^=>Q!B z+SfNc|Ksei<&%L;U*&^=v+CF%bKp^Z7Cq{Zvj+5pZEqdh_156FjXQU396IRPwl|OM zdUK~i|7zQC?4VUPxgls2zUdCXystV)E5B3Q#(3Ap!B&3I7P#Xwo;9)E9q#AKZQNT$ zH|{h@XFR(1nkDZJ2ip7X(GB0;M-9YRba!poyKC#-@fDAz9@(;PpRU%8qRXHsQAk&h zQKz5+DyHT^@50bX74M(v0ZRkT?~&G6^rO&t=jMcgTkivXV;{< zy0-4rwx&~}%Lh-*VuMmVjzt68UOl#LZ3~K7JgaOGb4L2!p;u+!hhuy-Oi#~hbW_vR zHMnifhHPEO`MOeTSg4j);eJ#I1KQT8{sGi~`~a)pk#}XKs1!crE-UO}`2jO_w)}uu zKQO0h)-{5CXxo}i+4iJqf?e$m&TH=&+H;8J8r_dZvqc69$AJce6NMVr_#}5Z)LlOB zF6})qVSb)t;O${AevE_K1tyYxn>e*=FP(wJHjiz)@E)xhVuHS#KgVmMj6h{~O?<^> zB43YwB#j(@I7QxXj!~rNq12YPH+N13C5P5c>b%k({i3Gxy^_|qoPKUYKYxL!XrJ34 zc2Aen&xz8{qb4SayzyDQt(6kmTxv-1#Tdd53sQ4VN&m({2& zi(EZ3$%>aDsN}YmnS*@ko^|~EKHvU{ zJ$RDanmYXLubsPuN8-ti=b0!?mmRbW=X@=T<*i%doQt6Bn@{YDM{O>zcb{+_R#pE>afUB>rRDQNE%>#3PX>;Qk8Wk1tptG5_rQ zhpP5DLdaQIKDLf%Y;;qtn=qlrl*E;@h{99_0s9Yn66DpEp)<%L%6z>yM!n#@3G24q z`gWO|X%Pt1?Iws_d#v9hoM?&?Rs}Uw$=moQ5!gmb8s+Y^@FVk`D+Td%nZju#9d-N- zTdm3)qRJb6<^Od|uJT3sl`Ht-$WG-AM*Hy21&(cvs+=4+0!^Id)v=E%2e@VWgyf(0 z=grndi8DSOkRY+e@}Zv~r9}pe#)sRbHi5Ln&4dVp>``WtvDuo)hJu7xt z3FC>$6Rwp-R~0a!`6a4W#cEU$HII4!BMph4Yf2K1Y^F1e=0|!#NN-V-`7V4Dk2_Tf zFt4$z+ig&ORW|IDNJYs<=`q)+f%Js`*2TH)P4MCmZ*O(HU<5nd0R-I)+IovA;wTGD zrQvI$#K^;jBMWUWTptEWK#*vqup%xHMp`K6P$^PkQxZrb!qC82M-FxuXHC3F%T89{ z%`}_za#C0GP~AB&5~=l>zhMywI1Dx%MwA&2>usp3w+eMyH9da_e?Lk#hJo|apKI>K zkKc=0pcJxIuAA_8O`3s`Ucr<~wKUfDnM$PV_;sC^VC8J_V=2&kM#I}D^&QaLKu4nw zM5NP7L~LN|D*Y~CL;5(Y*9ot$S5)!!LYj4|*FZ6#keS84-uC|48!mqhE&ft2iqlJf zZGVM=F*)&%&)?ct{9{kWKjOS1{_$0de@tE(%h8YU1@RA35(K7(1HwEuZ_8lCKYptC zN4!HDxe~~j&O^xGzAEo?W#)xn?EU!{?DIwb^Gf&mKJN4MZ}UEvlND|vcc7s4KW(eLir+PC48^uhwVu{`@@q{4ppd z+()?2r@GIp*XOl9T%RA-`|}z0`C|Y1gOmaI3*F~0S>BbGT>JbVmZXtK`TgwkDfYQV zp7wB`c9Ei(Ncm64sO8`H{`AKG71@TmPvK(O5+1CI4ZEdx31sy%aWxeWl>dw!3&ECzUrn|HyCq4ZX32z(K6I z;G4(v<}VsA2eB;$-~2{zns^f~+<=m7G$qODM^MY+Hru>uspPKp9jA`V-2`;tuUKI- zcy|)bEn+hk6Va~3{u{(@Y=b(9_=>YeCQ`&EFot&L|$=xb5~lcc@Y7%BOfkqhT@`o2Bec)3Jx)ppCI`l+;zbo=;0| zNZD2tNCr5S7@ID8q8V<+hNs`=P??_X*1)S#Kh{{Ao)2vs8WU}6hUvL8vYt<^E5$yN_<_l{ z?_iW8_w!#x9zg(@{6kZ1Yu;L@@o@g<`PH}h9tq)_qi!PV)^A=!lTd!M;Ipx0ex5<-MA-C zGRa5zs_cLuwKgR7=L$=rMC^zZoH;-com%VxI&;9Fr-6r!x{|xZ(jzXu3DJ8B*90-C z*7vwn^8L+W56q>C!h(PNr6XZ^&$E3&6MYrVei2&kYp!oE{JtiY=p!Eih#i$n*oqiL z8zV%g*$n_C0H|K_*B1vQE`uHgDfY^d)CZ@MKE#5C(4}ySFt~(Q+s-lMw_V#N-VtQt6~t2Bxcxq_Y2fN5G}4ccF`y~ z&CV8aZsRAVF39+M-Y;U80Sh1A&X1Z!m%`qLPYEs!jJGf535!nT_9Tj*&q>DP6^ea4(wWaj$?G&`&Sg7K`*F^8Hj4Op zwsX~Y`?j4|T2K?rGUuV~z*glUU#=717KLpb`8QDcFY7yG z!wT@3^#yRDs!M2*_!JJ5_yaM*3rGHQ8$U{Ein{fxjU%GNzdys&&4ZCG+`c~WDu{Pc z1rmaJhe<}?F}vrPcWiUEi@Q!W-_sku|MU84{~y=)kH0$jL?U|D#PH2s#qoBfqwr&7 z+pBxCuy^?EllXV&?1T7sNE1t|J{sDz3q5SL_|Cz(K?1q)cL{&j_R%no5(p9#vu{jF zDBbqa?z2_L2z%d5j(Ko)}UCC3ye47vi zOn8-!RjI^rtlhXCdFHj*9{EbiYh@ojGNNSiB$dO^)7PCfd~^4J zrb+5!W*kg+q6JaKO?$C44pWb}&imNpaM% zpY>B`cq(ieNBH@t(TC08-p`fLXyxY;|0QEQp`}^pFY4U#Bl?yVMh7v z-Bp=C2Y0%FYCv@wEmRxYP|-+^XA&5L_4%qXkBoc+T8 zy4(3**I*U#zt#zZ)Nzo@Y7`n*el_POJ;q$AP6f? z_ms2j01^p^_#yq#`t1hpwMtXtU;x7znXoEU8{@0Od9We+`BRIEs;#RQanlm&p@=ySfM;OzqhN(H_9wbQF`q6r%E|YP)Sg z*N8O)JvBDz$@x>{fLe=P8%l5{MVCzb0 zru^i+t!Y#*D@)vz^U`{g3f+XC?CzAWGF?^~D2UTMSaDmL&+H-xHz>Q*K#_SzBEu_g zB5LNs>5@x`u#9RlI=q|>oDWkttzm#!JVF~A)C7MDa|l-b>0a>aPrm&cT_c#Gaf^O~ z(*|9Ut{kE!YW-jvcK;b`crprKV9xUFm-4ri4?kA^SEc-~N>yK->r#d{P2z_yr)V!7qXcl<3zv%KGkB6($3k)D-~7?q<-_^gZ3(tJN^Ffn@UB5cUsi_ zrIy?IObJZt9Q_U+th$k_+va?opx-3uH-)#8-yZF0zepu=o)P;us74`iL>39_1Tjt5 zs8)t?i&yN-4b%3)uXMw%LwL~X(L>TrLk1IuYfLAHlwca@0$ApxZ%_>^LuokM)#R5c=LHc^d-tUVS*k(8rCMdeL;<~D zYR^#z`)!`?1;9u=As?o#0ODC0Z@-m22pEhect+4GeqVhxC)2dDbst+0ES#s8LD_^6 zatM&|tfu&l_rqVZE0W{{U&`Cu%52vZoJ9_FcYFyUbpz5wx%V~}8kGbSuG^p~K4_D>QvYT*09-cL=?rJ9U99hU11$-rPxV@+Hb}NWEY`IT$>EJp0qClh~FU zc`&)XxGqAYf^sJZB?C?vw>Am2uHkhu(iE&G&tt**& zEi>Cp2hU`%~K%N?!DU^xGP7P8_7^_Qa;o5V3GC1U_ zVcJXRV9b&n3gog}S_&!`XuN7%!+lGlp*V8r>y+R^Iw^my1zmtDqTNqk{w(b}^4M;e zdEB`Hm%(!f&YW~;UGX~O&}6nSn$K?i#ZOL&-}e;%ubtdpG==2#g`EJFH-#8i`#romDHy+s&G#iQBC=eF z4R%e+@8GC4`$3wzDhrh1lT7a>DO<{mBzqXuf!UJ9R?1CyXp1LY5q*yjkPOD$@Y1f} zJ9{^A$(Dphz10)gD@(jX=7^PwS28oQSfp5#yfG34~o(=YU zZq+nNi<1sorLhBPtmh7H8i$C=I1ch&BpgTxI&260hQ}MB@t~4vrH|4I62g{Hh|2VT z(~QGBvzug`>ceS+WNkDUK&(Tf1D1sQ7Q2^t@&md!`B5I6Y#o4#m>r9WB-b#K^`Bv-412o{XiOv`z>6Md=0YRcowvcl4k7_x1c9 zraCBNy$z6TP#OCBIl8v4R9EK`YK%MNb;V_ZVN$s0Y?~%YMJ`9_bwbENnVAOFbyUQO z@-+Vb(Z`xlS-ol^jb%0wKnh>5M`)!zx=@eS6g;|D{b4W_a|^K~SdKJuaBsP`FB6qD z73-eQnTpIQR?UQe?k1?mM^?zPJuFa6~CN*3(LbYmM4p(HXn#=hh3s@!Mj#_bEN+P(ocaig> zBE6U&mUrVH_2^W++}{O>?0H-5Rn=Ml=$o>5t?$%Zjlii@esjv6xv7r_=ZlC1T7R??^BPU8o&L zT^7)EjB!m#62~BrUTLG?wwDZW;`^`RU=i_u(4P=|lyj&)_fDjYFjR)ZX6&%^H|jf> zdn3>Er~9RL2TWz(Yt8vpU$z!pKiP+0rH{l_RV1OGrs9*Q4IA96pPUA)d(eoyRsR4xjZ$FK6M0h|IDg*(B5UgxYCcDaN7gUZd4iqh2_hOdl7v zld>-xT1l2sSp;C_TnPY$#WIsq1lBs1((t#eXwM3z^$j^d-e-wLB$Sc|31zP$kNYAX zREKmMa>gO^V++zbGG>0ykMOmB$P|TV|F2o39E~10r+`LZEo`?B z8aeHAQo$xX3t7?<3TEm3!KkTjaZrUYLiMv2AjO z{3lb(oIYASexRtief-k-+9mP!)dmu(RO=U7yU@#ZCJi<*NEcKja}*xxmpVJQO^$aZ zrI2uZZM$)C&h(X$jJuh~%I$>Pd~@%hSIUwlBv3*QJ|`M_kb!7hToI>K#Y zgqtfJUjGpA*Pva!;O}to*GQ};YLrP6kO=sF%zbF{Fmf{RLu|)Pz1PeNBdCclsyk9& zr*`*IJwe&SSE?gI>jS;uZC)>QsE_(piV783+Yr9JlSMZ_WXdda4iM)02Ho|7*SyYN z^Fsyj4r|^ceqZ9yi?(zXwZyOQTGSitA8yPCTa!S5z4H#hzT&jLJI})$*hdNMGjd?} zg7;#lKRcjre4$OAGNaLa5R|SK)Az)^JN+pQAZ;~m!GzPewXpt8Lg7OT%kQ`2@B9+Lh%cyvVrF46rs#GmW4Z;%E2uiiEett+CS#|4!b5?!iJGr_S z2@1*!q6ixGZM{BuowXd!+3`rUt`u(4(!csSh-~7~K89G?h%0h@r_(P`)YK_`^L_F_ zQ`D1w4~=h+Xq-pi_NqDJmZi|0DTrI&ariHHXG%h15lbYl=Bhs-HIe)6N&Gvq(H%|> z{Q?p%)u*1s;*diCZ>Q4#urb$I|Dz&2gRzN-UnyeVXzey(pJ?3Gl=WzS%)*VRRVzn% z!5YCS;`jRGo7qo1daWykwTM66Ja#`41Z%NPT^+BkzbvAEZlIWFD|b5Cv7ooDe7M+H zu=+k&aFwy3ANpI~QvdW9Y4j(&gx~h`pMZZBQ9|NZK>wfW(;d=3tlEbnkQ_swBY9;X zBtO9Gl6Em_QN5AVitlY4^dR;@`gd4^AsBINt^q{3bS7Xq4s@HfFXX@hY9uHdHfM(% zXixUdfuo9y11GG211)eMkN&k)El&8&HE(^#U`Z`^ZX3dH_69MK#OhDPkic$F{QFQ!*Q%`(x#@UzKSdT7xn|(3+5ZM-M z`m-k=b^Td`DBLLb(m6lltUn7kh6dc%GByBM-8B(VdVU77hyE$QqgBct4{vLZD6qX} zRB=+@=&$?KT6pfapsy1#`|yV>Zo4D=T_2tGDn4Di!#+AF`)|wfkK8&B{98@^1OK(U zzJVX+fFCX3b+oVVk$ds)-};|J%>S$r3(UjM`kzm(&8PBSj>^aE0ML69eFJ*&KaI*W z?*Y(ra)ACH!aJ%zc#rcvvGbR`<9YSW{s}w4!`nM*^9K&0W8m5SoBt>94r?BUzigw6 zLi!&1SU!FCcJzIDM*r}h_9aK(-tg|?;2rjv;9aG5b|lZknx{tkd|XbS35he&(@@>I zQ4#Ut=Lv?t!2eI7Tr158~JMcAR78&0m79I;dd|XAK~*(>>J@x z9~*=Ay&DFN=`B#bb3w)VLRV9tywpdLHTQXd|e%e|NsP_|e5()BC61ekb&; zjxTT?BI5n}uc6)(&gN&Gd2V{q@2$S&#d2!fe`zmSkKcZkyBpZ_b@iO#>>FJ8%@4?P zc|tYq!a}nL>YH}fSA-VuVThZCr_Rfp8AM~YPX;6u8*fn!dPNNlmQI)zI$l31Ume!FIbuR0WZV$Um{F>oR_BWQHv;(GEd(aKQDFu?Yvqd-jA>2)0NSA&7;+*h}@xnI; z;e!t~@L_{n-Qe9+LeVYy6x!k|`?+MI=*P&0Hfn`FB|={UQM7KxAYXhUydv0KPZNCa zsnoi113wD`^6A@D)eBbsP zdGhP+e(ENBY}A508H~u2u3nxR6f{`IZ~aNO?&j)bYeSwfYay*X8niA|Nn~sB5vn~J zRHjcwl+HBe!{J}Y`K^*=Z7Kxu$0pKEPZPl29B==*JwE#Jhh;SUQV{0J*QwIWP$1zns4sLJo$+OE$icR)TCt()8Z?xM8;+zV{am3TeMrwbQ;t@ zOln)Jr#=@n2ranp^tpX@jxlM*xyAAS8hT(uTI+ADOQnbo0eJPf&33H=P&nUr7 zquoG~vFW3KcTtuk%@aiq*5O}?y`P1>e+zQ_OP@E29Q-p^PKY~gTFD8W)RWoCOrO0u z%566kzRK!4sl`&>=NN2kv~*_R>G@G2eXq+rp?j?sH(|sv9*@s z?B3KM6NmxUx`%YCQs2=* z=+=0Pb-XC=`GI<9Y)FLOfPaf#O=cO|HE!Fu&6zW}!GCyjweugc;l6zZeh~W{^Qpoj zfzqMR1+&9HKC*8|?6mjH&GWeQ+!~&GJNkT-pC^iRI_G~-^?KJo>?-AHeMkDL{=rCs zKHC*3k`n1J5j<#p$M$-B|I;}=mJYPLiP>L3WP0*R54fJ(Bos;AN(t>07G+9!n;rG_ zn9xqOCT(v}4e3$pI_ID;^S>qW(D#xIt1mqt*|U7p@wPjGP4N4D6rzZVS;$<(_Ci*G zIIH7kV@dvnr9PXP-D)!5lI%teA<)<4H;61rm6GX&OZ6DVE|5lcAM!p2_}Pb%Zi1hK zJnExzlf9j)i5_ZBX0$aO)xa7C;BvJL_d6E=YKyguP+}mWjR&L)TKUkDYhQvJ!4S!A zxn#FA^G$2Uv$%DoIN!}gMQ3KJ`iY94Avmy99YLPF;C4wXEMEN9U?6UNr&IhvWXvBx zWOTJI01WgB=~>TJf0CXJ?scMV^@hA&;PNLuKPY`;RGRyxdH2im?(dH7q4XN=W&QLW zqV@$l{+R9$b5?4ta#J4NROlxBMUUHiuQF#fyHsN$Kpa%f>TdV5scOzRrLvH-m+#p% zstoyfVoQ>ytMyy!5fSsE6UIGt!nhYs827r80N1Hjt__q>2A_-m<$5Ri8cN>lq+BgC zUsozoD>#{IlIe>%XlQv=3vZI?8Kp_2ut=rTMLN@ZLUn>?g+-Zwm(%Sk$b^CCHN|bBRTBq zQg}eG)TRD9nLUGfw#irEDDbwn|D}3qMJDFu*CZX{v`{UZ#m#5!VcCD%QNl0>7_16; zf{B3i9RY?CGu3)_)qLGmgteQ+C1)(0r|HavHZ$>*1X7_OQ(%;&bSJ;b|AUmG`!c=F z(mm=|d})BQ(xSV$u8)uIIt&iiLMm4fsLF> z()FkNYyAC`j@O$el7RW0b9aN3O;rQQ!i;ykRZ2~;QeUuz-6d56`1gXU;<~QaOQ#Ha zLmXEHN~2T}@kPI*e^sEkTniRH zVKl2BS0V^!+)oimwb)C;b)IxLd1<)Ulh6^ZPRX@f*i3OUN3BLo(3a7Ei>!7s^;G6Z z)<-Tja1?{RHNN7^k=ik#?Gsrd`o|IfdS3n5a9AEmznN-fN_@DNm()bsdW$6-t_FZ! zTs6obUyhG+@+-8Zh|_h2)*HacunI=p5Vd1nB_d^IoJied1)Ws={X?WGh<($F%Q0W< z)K|W_#L|f^eMmSpAG|iU6+v5fb?+k2#hF@kd>AColpXd_+vihiZtW^<>hW+9M6u^o2_(!A!oxs5P zxOS$Q6k`f-EO}WEsi>X`Bs&#$#c=95fOm4mrHjc&5)yT(r#V{s7p;f0#Z3SN~Rv=q|IdNZzg6Lau&AL1%ufSTuSZ*!-hR?e%rZzMkd|} ziUe!qam~bqc8?!sEPTKhZ4qD|Lm46im`^)-E`(G?W+vu_(=oS{RE zM4~6aR z)SQX+E7=@f%+z`{fT^#DJe@oj=Yz*`E{?XK(VvK6n_K#Oo!_g!h@EC*j;GSd#!NH} z{61%R#|!ti2V$m6f8XB5eD`r@W8A0hRcc!lY*9OCzuMQ=&V1ceB^VOHr9|Ohp0Crc z*`tDtQY#b&7@>_8YDrD#Yz0kv z%s~xUp%stYak$oREkbUO@vo`Qw()A^*kM3@)xgM!witmpj?k0=ycYG zlsVX0Yu+Fp?JL#06FIPxb zQ59!8w@|5S-}wdUCe&gqp*M-#SV9)^|FXTzp=Ol{2pKj9FCp_*|ojN2?- zS;T$KqI;_rs%kQtgXOwOUq;wuGHz^lyln+FB!iN#os>R`r6y#9s{jBk<*Gm3OQ`gh zU>lY3wdvTerz#9|3f?RJ~7RI>?S!=w`%4Y+u7p!swmX#+=?3X&p8B#l*FNwg14|9QogZ+1;R5+XH8Qr>4 zeAihbX3wSUH>xK8oZW9ZrO(z9rhKqS&V)k>A4PVnBHWKOEditi>qDgQ#(IEr9QR=W zBww7?dD-H0<`-s_ptVuR^-n6``ln-klCM$3I>4xZnrP*-6gllrIgzt+BC?9)5u?{9 zd;3p3*7!7qSSR7lQXtVXDz{qb)$^PI_$-KtKoZc*wfG+40js0XmhdEeM$CO%c&gy(f74UA+%ttE1m1 zldnzrCwzG~mG@qEHzfx zdtU&fB(2w9)T_4_w-=>H46Aobp=^RFJtUFBS-ced=1^5uu5WuJlIsX`U`+@ShqP4- z_7%}hWpp!EH$*O~i^5UAa}>lU0piDg&q;mOb-Iv8YVugNeRLqrTjT zJe5aS}l8f6%V8O5~;~>!e{0|n``ur&2a3% zVU4dxq<=0M6gLAO){GozE6b0H@I86wK`dcK!DW82#Lp9++Sgl)Uea4vN&zs~s@^YD zGscfP$LX=y9RcrFf&?SVhKjM?7jvR|(7CR-aLmk!G7|99~I%g4w);gD9GGXBxL*qai5q3WhYx<6t%+&{~OGM*j^Dx zI~eku^{gNAq|4?{u>rFd=>PL}7U+-D7$_*)#C=Y0o@e!3hV6v(=3zUAmyXPE&7*R8 z_;gvJhPQ}FY`zuC{L%(DWmoxH!%_bdAABI8UoL6`n}a3z;hpz6c`lbg^+l*~B*#Ey zHnM>3&$i!4g;|a?<1uM>_q;t4!Hi_zyxTtvCM{=zubZPNJM4*3QS);i)PM#K-G|<>I$&uTwSHbP!&F4i$qqUA@=ayo@Car1y zyxve={U1|RM$K?2mQWpPIeIx=NfHT?B-r6krOW^Xu~+^kX{AW`J9c%jogc6EGcuMG zP(8s(<`1WM$qZ^`1|^p=nY=6tciq?VsnVIjlxJqx{frxU#GZIqW>!;Fd{gszSK|qJ zHDXr^YW#f^!&QxyS$M-st;X>3G|cHEpWEpBo~qw2KdIj6+seBv>8f^iq&wYHOr%SC z(-{7+)RT_L;V^aAvTcodnJF5J%!e z96`n>`zP_T%Dze5_*aoQ{MPs7pJP}gcfI6oZNKzrIyXy;ik%!S#^uqXRDiJiYIiyMAj^Jz#dX?aq3`t-e(-WPpvPIn+3BxR zRsG(;Ri+1P3iG2iNW zi#50ub?|Y`^kp@2Ac78xCDS!ENfxg}0}vb1T*!;)$RECLQ0cZh9y)9LtTIkiH=E}S zx7~9}!?W+n8b6r~4amSjf4WzXr$2bDeKGF(QZD!8DNt0W)yZp@`xI@ixh6Z_@RUeM zD$u3|IYmn;pB}vn;FX52{3fq)vR>Tig#y<2{kq}LH-2bdX?=5dJ{o!!nN08 z=2Pt9^IFVYn?8FK`$wH!bui1C6)zFfGi1c z!)jyYbymEObS!`SoEj+_3k!meBZpr5Auzh9ol}A z8hxq8-PMnq(8Ue*{3aJtp48nmR{BtrNRwTX2+l=#Y~6t6)UML^*HAulVWCD?1XKR! z4AP~d0sDZS->H105!B;ctz&Ws_N@ev#Es~)O0aA8lYAvOy$>a*$yb8I|BVueQaK_2 zs$V2IC-bmZ0wYaU3I5C8`)P%}qzAX%XL@k6UHa35@LxN8-Jg>7TiueY=8J7*x^C7Jy_2Jmm)gWXtYayiY^DYcEy9Pe6XRTIger2V~%4LGN>{e;ws&d zpT0n!*XSXm1Wl|_xw_cJ{-bggwx~pl3Qc;XnSr=UvY&{3rI9iYp6}k8JFB6!b_erSt5faNYm_N`{Bef@9-0Xxxc@64(FtM&@TbBQkS1U%dSpPhuw? zsO5dx_i!A)BacHjWnV!<9LTPwQR8${w8+q#!&%Les&{uqZRT;TPw5PA%oe2$1k;P) zq(_=c*t+!xJL1(#S9xC9zB&Z}9G9*2-vTf)TeLR-vCPv^_Xb!kLRywCPcyz2K|owO zX5-F&Sthb9_w+0fWa`^qki*t|(i>TV zIbI!gymzL~lHY@UWG2(oYZB=>jB0Fu&ky2lqg6{V{xr+Lwdt939iAOKrzCYm-)25a zrc1UcYrzI6*T5D1$tSwe-D+N?X+mv!MA?zbFKS?dhFzg%>PzNV^Z}EL^~L;C!wk(v zl8YYE^rF6=k}i2)RX3`-rM^1dFZ1_N)%P5cSM?JpqN>&heO9fnqe&l4II5uL>C~kB zPQf&VX{e6xSWQY^!h~t7FLE^GPVKie>rTbn6BJVK$ymiQ`KNZlLUy`g=+ez`t{=oZ zcC!-0+46_^%#k-c5wPME;xVNWK|AuRN%9<}(o;HflPitLdC_2)`AEFuXMh;FV~JFD zTe7Uf*Lq79!lujfp-YmfjeyZ`?IYzn`l?n#EL=(ru?l+-!BsC6GXYur3S!isI{h1q z38;nr&wpAz8F(&1LAL{7jjdqp4X|J}sKE&WBgNX1s8IWjH?61tpoM@N+@G&Riga;iD;cTwI?A!Y8;fqG>j;!yaJF@hkB0Jq8 zk#GhvD+VXc^CqH4CkT&VYVTs13K_rn%1E;Epz7QBy`J?Hoe=uAFj4JGY4krafRi5h z%&qR0E!wNq!k#G4GG@^}eQsnKwZmHd;jb3;NO1YQy;K87-oyGTBrt&VaCHs_LmwaNkG*Qs~R zoXg#l(W;lx=5&t7*Hgm9QbVAlO$_AXx{26!PKK^(aT7h*m&Kfr{Zn* zVegMmmt31TzcX39!6fjITO(O82B#F&umGVS4D$m$SX{M1uvuVd&zm$wrg30 zToL~6M_F4QZ+Cr(dKA}0xM+b-5X0gp*Q&x!p zOQgnkD~D#zl;C1yKEl6GGWI5#B0Wo~!&4O6W}Y?gY&^y&Khxod$0>#-NNA}(ilg-` zWHavMdx}E4&A26}Hd65J9Ec14%J8icr8xDu8FwNxM7)8PoqSyvoK+!g8tXLU(+4)a z zy@jto<@7<@1PtTc_GML^;)u0ZOUzeLp>)%(TVcnpn^=FeRJ9_Uxrr-wMS8$$h^^a4 zk$)d1qGg+NS9zH0LPyaEJ}>J-4FsbZpMO#kzxo7K)b>ef{OaA@U3vWKXUptaW&G-; z?ye?&^|y4_`bi6w$CniAM=)l_dupBSQ0oqN5zx|h9w#OeiPRAps~=Hmf#<}=uU0|S zu>sEUYaiIo#`LitRcnV>Ca9ZO1d>b-Os1%3CR4QqQ||||h(xPwi0-2ri$KHdspN5* z+%fSPm$+8SG)LnDF;=wbzN$;LapM!06iHcJgPnJwcpH`X-_W$}j zCAgIv;~oD^xhb~S?Njk3!}y^pEo@5t)2)${gM+(j(-WTmqQKuA@3@f$Pfm^QVp?u0 zw?!wUk1wCx6;^OoQq@%dqg+3};(wIt$5-`3H)oK{lL+QkO_gWwCIlHMAX0deO5W4$F zl!Ugbn|5lmbmJ{Vbi{&2lX^;uG9#tc!6AompWT#M)W&DREVwOq*A>YuFoWwiWybTH z5_}~O)a@F~=T@%4HE+}4T*E>h;RR49h|TzaYk9L8X-B#!ca$9-GtwK)p9T@S(t;NS}Javjln~mE+Z;YlBGk?uJifBya8Ki zqRHt?%e($wA?)hieYx&Wb@!#ZKTY?#IXy)LEZ{@ebyI~q z<|r#z(>6Htg^bK*T~Lo;F)dM|!3jTnLXhy9oFFaymz=D*5~K@=j8Zp(G_|U@ zk7nUZmM2kj!I%YV>4vNXF;YZ=#@!c5(9R_`!P@q(L*q-vu`WjXBV}4OdAQPOtg{92 zi&CdnUsRi#d}w?Hxr01tf2wKl8XhrFv8_wTWAA^z#G$Mp@1cz(AB?-dTw>J*^AuOG8c3=@hIp4o8ud zXHjI?&_ir))UQzqjxQCl8WR?KH2J0P&8vCt9e{YC!NqW+(t$iG`d##rp)kmPBQ@-k zQ7VYYw_*y`q$wQzvyZnaPwbW$FVeC9y$bX-PxVFp4r0IhMHc<%^-2nEojP+*2EUc%|JgR)7noSLMo^SZV zht5faA&RGfOt}luKvzFAH0cp>j8&#AMe7sfZ-#jwA8IbLJCraHd^w+EY9M7C%hv2b zb|9hFXh1_wt!d0zwdkfYx*4k*mwxu+s~rLp6T&%pZ7%)ne#(%3wtDixDlO##MV#0X zZ!HrSHG~~Ayj5I8fn@8$$KS|t5H;by8b~IvwZSm`t?xSh)UoTUH7OR1eB1G5a-Y$9%2g@wl#~Yp&?jN8h+cn9jAktW;uvb z#H<(rM3}H5Huo3Jnfsnj6wd6WkAevwye9J_B`ye%inx{G^&iRNV7WnAfM?Gv*wEs)F%>z)qe3zzIhRgAPx?L4zh5LO*HXgo|Gba!T3kh zM-Mol7k63!9)Q`J*nt;2~$#k$!xuU_g`Dq3kV__%M3 zU$HCf_PUUEJzE{^ zFlq(aj6Yj$vEJkl?Q;7!7}!^{obG}|HlEj>w?FM$j1U;lm#X>Ha&x{DOo12aci@6# zT1b=2{2uq;KJyzHcKU$H31YWQ5FU{@X21z(3Md1~!RuVev zRWl?{m@>&6*b^K&Dx9jYoL@U8u|4rN=irp$lD0o%4vr^?_8Q#AFiVIK|L9mRic@Wk z_QjIo*;s=h=!fxzws|(gFV|3$8uCB%_5{961|^e{DHenTu|`1G0Mr>4uqp~WuXmsu zQPMR~92@tw#RwoKfbj)(z&EXv&_M!sPD2Cww@rqvnq+clVVnJm0Ew>d?d)$5ii-2O z%$9wvuJ;7rbVN03o~o#(V_jWaSE<5a4O$ov-C9&XyB?%g*KsJ9mmQYGCsS)PrF8b; z=Ibl~799Q3zETcW{dkTT#y zXKT6yEfrF$C!9@Mcutu#+wnl*6l;pH?Rc7UXA#YnL@}NfgZy~*zV}2z8_&vh$X1i< zts1go0Sjv+HzK43f-{E`uS}%2CfQ3N^+9Haez68z5r`%CYWM@cYF3pTejqcp!#6*| zp&~!f)76h8r~$*no{^8l@0(uT`kL*P`62scZq|O8*r7=;#}}TX!UujRS*}k8SLYud zb(CHO!&&s`BjatK6vsOz%7U=QH_6n*66yM?lDHx%fYF#AFTqwl$6=HdNTzp@ty&|g z*G4C=nSYp&KEyq&rFv)O5V2F+U30uc!(L{^s=Ni$9_ z-JT`Z(bg`?if6n3&JX{bDUgK=Mh_^kP_q$-NJ68l8HEpLpOPs4IFTBTNw8XE5)K72 zF){?Gy5Lj{00gQF*!(Zcf6e9k8l}_V(1a@8BN_h3HC~2a*sBi)ZMSp4xmm!6&aMA-Z$n)eZas=toWf_A!WE~_uSK9{0PJHK|B&p4w+G|lz*&b7z@VB4OTiac!PSClM&ePPm%{uSw-rpnc z86!f81qB)?j#P#d-tihJT2woB*Uq!3)YBJy0?) zsZt=%y6E*+%l3JhcarU>E*{q>Qctka3TNKuEtL)fo60|dZe`L~@xs=~5w0wxQM&Vd%5{ooZlJPAb5n~ug^Zl}G!P}pKT^vua zE&Ov}dg8X@&RnB~+&^l-7yJi)z9xAJ{K2sjLz~}W9hdyU2DvKugY~-N584&=Y~;7H zJKZ_tq$%#H@+k8(6=bEvkoW&a-)6+ zBWkYqBuJ0>i+w70BDl#Fw=v0HcVwMkIu*a)LNJ|D?Bj2hUlJV_x-+X-qP-ApbusNO zvUXUeZr6KzfAUwBgG8TLQ3dwKDqS;(RT)6|PoJ!|-@~KdFZ9AK(F-@T*ujVkuFK-~ z{&z(dkDC=Y+>X1w5Vs=X<8do3#O?EWfLbwdyW8V-zsIfDCtDZgaI>Pq?Zr~VW!lq% z4cz9Bc0)eLRTRb|Gj4Y&_JpK#d_}{^&E1vpj>Y^)@3EzukYQ0X3w_QiO{8a3B+{3c zCxhdd0buPmfUwq`DF6HMB`XzL3}&RfRx4BbL_cUvyaRwX-=R#yoiB}`Z`sJ8KkdsOH8Mb7^-{KHzhsD z{FyHYgCRz{QzdMP>u()m>J0^d=Bt>G^r2YVOJvTrJeO#Db!W4QZmlcZ2ORHDP#sSI zoZ(V}uQ-?O%bd}5|l_csp|>yuwgEe5LckFm6#tY=aLUgy&0V zLMeJ}wkQ}A(TqaObojxD*2C0EN_*8wVvParIvbJeDQcQq(p*XL_I+LPu_`V*%Exka zkmVX|-x2m&{VT8Q;eAnf`@YT_Y1BZ5A-TMQXza;*bP#7hx~YtA#_GmJ;fK$5n9>M_ zXVn$CDEtP>5QQhKz2;jON=>HN=3haq^B4uGDE{ooJT8?2P-3-e<|2`@Yq?#6vgMt! zZGaafa1h;eZ}`Lf@3-oMpls#^TvDa!vR#JQqMXup_9M7Tb;JD)Dw9f-rboO}PRNnm z(4+0mbw1BP$KL0DWH+X@pMPK(FbrHrRE-P#)(6T25*6h8kd1 zQeFpxTcpu`IDOafA++DlUP$0KsXDG(^*k8!Vc>k(WO_`?w81n?hm)i;6>$22oxaI6 zz>kWsN9DjLK-UhH}^ ziJ+GTbil+R63TG%jjpdHhP-FoV#vc;W8UyhkoWCm7L!$jSk&rSB;Mh7X}9OasN1oD z)2@iF2!rZ-JzQ$SVtP3DpnN@~Q=l#sLyCpo#a`V@ueAmm$kZnkg=g>Oat0V>kn5EB zsf~5VLm`wod~Zyz{@L>fn2q!hO){6cO`hO!ZSn-wVYfZjvZ#TTIa#}tX`=u(JyS_o zJp7Rrq|cZL0GZV+4+ zlM+?z>g;)Nb9YO;;|)H@T*N=))@C;7;~;j)g#MP{jME}ObPZx3mU%S_ zV2r)Wx9{Nv8@&eUd+PKZKsfpaFDA2QNVcJ$zGXh7g{vS#r*5>WWt07Dz;Zp6AP)!m zs_CYrCaDsnUrOI~y{Zl${W8Ou2~0s)&RX7hCcB^dr^*3nedij(c)1H#2mXo#EaN$` zp^=*(L1elp>()Rp-if^$cVw_RJx8 zbR~P$E-Kl}IlMg!!Wr{DWuJ@4hdYR;EzZk?yHt_0Uo2EW#hD}RGgUP0``j+3eegY} zeIkptok07Ra;tu)A(47HbGo7cC`=0vb9}zQ93`v$UZY6QeIE6LBF~<|K!qC&s0Sm) zQ8($M`Cm^2S27B?oKe7GZWMsr&M1vW0ks6lW|Chrdbi#qfNs3I+C`&}@dE(j9g75z z-+?`xdZnk%1A`09lO@v36?J5uj(Op;P^WZ|QD;n_)M=_}$S4n6!Z{~LkEsyQ#AIsfMC5X!_*(q0Ex0E zSy;vKE2)qfi^C>8Id^$fXXa(~gj!D6u4Mq+u{XeR_Wcf|_XEi3S;+n$XNfK3sxp={ z>6KTFTV6NmgZYP(ooEBO$*W2#K7;6{!u#fW=IphrV~(Vjz5~20u+SJ(Q=fR5b&vb3!}K3vGOf9VeJ4xT24S zu!VvfZ#x(x*GqU$NOduSojhngK-K0Hx|gzGE25DzGxN#d45Rdv9S@mNmiK4wn;R}a z{p#dF?=upjnZbuSJ;^++7}w!fc>4d(paSK{_1y~m@3a21(7z{U^xv-!<(T|?(8ok_ zNW>@IoBDqYZ@%0^R#FIAq1rBd_On2Cs)MY5wLL;=fkaHp!F2QR-Z1?M zbr~67FifcgZ6C98caXaq#cm*NAMX+G*dK~!{(+Zd`*C1a8eIMpQ)Q3NI}e4OXiL;4 zeK3QfPg*E5eExX#_lQ%k{@(C;8i@lR=yQoIqyCXAO`|phl}C#}0=A-;o4W{H*(R@M z7PfS?@HXE5fXZ-QGF3ItH2Fx6hz&%_pK3lyp2x&=+2#TKT-*FPL0+x;AdnUy^OimU z=SEdPn0gktH;^=C?;@9I(ohBsk0t^w{L)Bdc>w;Bg!sDl+2qp+$uoo6u*mJV`eQc(`A3u2Wy+zM#q#6QfBV9uawS} z0=wur=T&7ty_yo?8~ojnQ4{!lHV zM4lzb55pl$d_5F4j}?=LFB&_*m2yKc76BB6&y_pZ*mw-(JbUqF&EtU0(_r)TZeb7} z#bPyqK*wQCWxekst@+6NcFkLAy19DhvDwTC2`q;V6%1$lVIW~5gBuEIwM!6NI9#uz z@Cz<#QTVwb4#Wnv+Sosc;mtMB@qXxN%ELbe^qh4Wxp0b;(x3XtdxX-a* zsLgb;$Q95(sIA)SCSSDY1LGBwuGI3X7U3NDE8dNbV-yCvK*E1#Bd_Bf_p8vIvRRyZ zg!ymL@79&7qdOcaB{TM=QL^0ee*5hqNs46Bg(IR7A^b|5=mgE_0^3m*g?}k4)CF|_ zFdNm2J;fHfl7$3_@KEBBHR&h*wQu|KuZ5ynINN+tM>xL9>P*|H?cvJ{mkh8WrFbeE zuK{g%h=;F6JV27o-IGDU{^h}ky(ob1j;9@b#(CK54Q+UigYQ{IU5tKwmPm+*)ZBmo z-TZqmKvM_i2~fRSPdEX3?4Kq;2k23Q1ZZ`Qb#us1OLTgu$VmDlnFPHlZq#$Jl z0(%%=@R{&!AbKYF9lpE#dwgU68NQF5-v_?u|FeI5pIz5CzDwE--y4tU3t!aMukU?{ zE(iN#xMP3T7=is2`xEjzH~Gs@@;VEIXy>r{i83eC6cCjuQpS7Ro_Z_!NIl1nStN!r z2cI6lhk_O17cOv=D@Piak(pDgk7#0(nnVa>rMH zd(}7(8EUGUmOgv0653%NxOQEogrOlE7BwYBq#g~;>B6NI>MzUfdYwz6zOENm|=G^Bp}Dj-^_T7p>H z#}R*{R|O*dkH`CF@p2cI&4GICe+KF_%Xo}z>Ii}Q+|Ip0T_z9#^==31`j2v;x>p6D z)_G8^bA}rd1=+S@A3=`&&v!%~zXXraU?>0(WJY`8HB~rkzrmC^w1&T7zr&K%Q!qytip0udREN72>(aW5dDXT_q2E~EG z)~=r|4?tA8dTmKL@Wm z7B;8HeE1=v$u#y5y>NcuY%b7>>T6-Ir|Be3@=Ac{g^toxx2Et2CA0b{DFCkWrAcHWcBl%4m2JJu8)cf zsys_o&hu5mo(To9SSulWp|Jq_*z2mR(79 z4KF$reR&eME>B;~A7m0u{vg7338cjzgue1B{df$|a%;Sq1FjI{598%ECHzzRVf?JM zAH;_+MC7iMyIT3w`m{~E0k&-|Z-x_m@j<-2i2oC%R;I?j$uAj{?e%K`%CP&HEs=E% z%FeMYSUK9IvQr`@thW){Zg%cxWEfj43>v1!fn1dzmtByE)<-z}B;9@ayIm2AmD)Qy z-u}E1V(aelj+E{^V=ogP_0E&gA<5Y7MEW#FystJUTGzIyWb0b_Guk21SqsQMO&cW+ zvLqs;G3)rIV>>^N`AC;-{fjOmiuDVLXcViEjY2nB4fiZ!l=1O$Pov-1k$*CiLD?1i z=v$-FP(cBWDm{(fzR;C7Q4h~{0axmgO%Tl~XF4Elws9*7nXw1>VOrCYi zz&3DWVa`U~q>rxudl{J@lXdQL^FfL&bI9;zoGMf24;g07fCx{VY^Oxq<25}C__vZ1 zP6Gn=iBxp%?)Sap0**3S$gpstJHnEW?fDhv;+!cGCdnW`Oy5U9(Eq=e>;DnXg5LS? zm3dr3?jr8JH`{gmWhdG)Y4rM29Vm$KNoL>6$?Pz-0XPuf^!mTf&zIR{R!#VuL*V;h z&-Z9p+l&9VtD+s-ud?Pbf^f%YPk|&AHQS;1~0-8NWR? zk(HYEjeKmLpCzJ%uN@3F$9O9hVY8h)TNXmwI}rR5IEyehN?conCCekcRUV5l4~chJ z>>tdg6s@Y*6^4?*>sGO4>-l|dRjQnk%!DP>4y{M4UsVWnMw%Lh$Ww< zh~I)QJISype1n&aJKxPoMtv{I81qQqlJQKlNk-dNc6<4qurW~Nu;;1K&;Z?$z$n|gw~5U5be*q5}~T#xER{Ne5124(+y zyH~;G@8t|ibA{Mzc({0c&QW;doO~5LW2TqBl58V?+^&(ft+5Ec^ZR(Y6Z`p~y=Eu2 zM<6UY5E{MG%UJd9uVytvE5zy&92#`H+*L*pexwfrU#IgECdxLsm>%r^^3tF-arN~Nl})!m zk+vw(*~D|&*ES7~;^MZG`JGCNXKkfvo{i0H6A5#%aX6VfkPp|#(@0#Xg8eQrYP~SE`q1^5LpHRV&}Y*M$I#e$B~@IW(0r z2CmWEjH;TnnbPwe(bpv`4mOdUqFXf_%G}{Q2p{tD z@i$eA_((O0uL#2+w)w68ZQjM&t-we`T|gLh=KD@}HY9f0PrU?Izmt=|FWX#@>7HW7 zc@lW>*YYLs#qXH}zOg?NsLe2Y$-~b5*pFOiha$k+g>Im-btv0ZGqsC2G=DL2()Skh z5W&KY*LSvUDn^NF@;Z3E?%9a^)*uUc-Tttq->UNFe_KIN)_ki&Dm>VqjxLAh44d94 zu%ifuIW!lZl~06cUHq|a>xg*!(J~@!3^dvgb9W<~Z^>N2ZP-->jb7|!LL6s&$6wjq z+y9;F=tsYB39cymG*%y=x>;wTlEz4Y`-PZ<+u#f!a#K?yDM9`8P20+94cvw{AFI!? z2nYc;Rs>B!0>idfB0=V5IO2>*6na$>l%2HHldAabs7z4yf<>zeOf{lrq&nivd{Qm{ zjyKgKnvMdZkq%zC={901gtwx3i378bxBcPqz{~k~JakJ0V<8^lcw%swCB2x@+n&c4 z)F6pF7=J)UDYJ&L;RkGYCTGq?I((d%aJU;1_%2sN4*G`JH!7VLSLpl7-Nn4@u!R-p zaAd6BRP&-J+{$~=At7r3sca7ax~ir63M*#~Mq`gVTX-68zd~{o0R!rdxo{1T0F{kd zES$g(H<(hs!n~Iv>Se<_5##{SD3K};C*JIcN>3+ytGMlxf+hNd?VN={gW56d@d2%g zLC+`JHa2Pl{?yAhhJIf3sIS?)sn&WG8a#;wnX%!1Ta1hYXL_5Q& zI6pcK5D9)+i*9+e#vbL5#pIv(Q(~e|aOnCd7yG&nuS%DlY?l$o>O#r;t>$PK^}bpN zoE&6Ykg#w~C9?Lj-u_ikTeZQ(Gf#2x%%xTuf_LN-9layRYd1+t!s zH!a1E&NKEgHupWfrRB}O#)#g?UK3vPLd5Kdj~&aAcbEEz!HrI+Q;&<3hj;(PQ5_>_ zQ?_NVysiZv5-9aju-w~{k#|S=Ulc?Ptlvq>7%9N#eP*=zC$)MyFEp9T}g`Mv@`htlMDg?D`{B1mqf}rBVjaJT_GU3lS zKZ|ST5W$v0le+z8N__8q5|K}@jG1Bu3L~AL;p&*h8(>YFmrcqb7nJDjukaP!*5rERl+!9HEf^_xrr> z%+Act?gr6+KA-Fy@Acfz^B(iQb-)TA7rct*-Y|Ij@cTCT6Zb#|3=`Sn5F}NGvngwI zv=NN0s*l({qVoY!8LgM04FwR-4gllU-A%g5m^AEB;&f=5HNGG1J4Zyle^(iv@k9BX zJ0)hv6hbqH11Z%y8o??>v~0m!KH$_y3VP0xp7@8}is3@W-N zJ7>PYs^|G`M;V(WfmPGtz+*I+8We9&FAwT(P+sVj4h1~cL_GyjWJd%psI8MxdFx{y z0{Q4Oj#`$|hZyIJKd==4Ya-7GLk^LH7|{@oWTXN}C{zX3QST_?!2*a?usakec5v+^ zP3Rhq1RXU4A9jJAf53oRJSuT<>eqxT*mW8nG?>;JU5hSSp=mem|Lu2(37)DX23FI7+ZINE%X1|Rmi zM{)b>3c=XU{93>#p`mm-*bkCrI7UHZ__=pwe&Zm%swNdca*VAmt58!WD2BJx%3g_` z?X4ezSFNKpuOwb6VUuQP(uQPzq(q4TB(eaBIoA5e6|EtWo-vr)uM~m5_fQarYZaAP z?gM?!(}eKRXTrN~`t-OYD}6#4=yTt?4$|i<>=h~W+2&cKrRg(jeR}#l{g+_++;D}^ z=cdB+^qGD`8hc=!s)+zEt!1Z>yf}TGqDBdMQ2{B(_mod#LuIU}6A>7!MF5>NtU!{o z5COcU2=o*btxbmjAZ{!u3`_D0@y!+$-)vOzjdCG>Rq+o+@g5vLM+a=3@}6x0P>GT5`&9U4smcy)`@`2M{V6fzo~v3Tx786WP!zyijL?8z zima#isxWfbH}<=DEeN~;hh)SHoEQsXvF&VQFCBs{sS!6c3v%@;E=AB}#}V`RUVld; zEMXXL#q`#e&}}r_`p3rbmv0LrWi>BoBWgalwMlVN*v;9>v+Z)NA3$-#QKijQ)aL4w z*peB#>z$;uLb+%r9c}LMXGOO{Hd~~?VYSOH6XR%x-aALtD978?p~8Wx(lcF^&h%CK z)T6;J1bw7FJe{LYF3t{Dd|XThWCdAVIcQtEi_Ls7lOzp8DjwJlr+2$X;NXQ z7NbUN;f>9+=HD&wof;G8jcBy*2A5=vV`!$D#o11}dy^|mRixJbm@KQpXUDZ~f%a=^ zhYH#C*WiAZI-;LEZ7G$tq~*gOD+tE5{vF(S>Rd(8$z;ORQw7@4*VxENh!3rs?4#y2 zkEr5)gL~Aaibdg>3$z=^JL8MzUV3Tm1G14KE zFlv%fgj1r8zq1OwgLKrqxSs{gnCbgJ}i5 z-%9`|HJ*d4umYrDYPY?l*bd=PGk{CJtjkJ4S1?&+zT(3_XY{bzIXxZ4g zab)K_(#*PJnDPV|oCwb==?+{;W~b}mjGdaH1=``O0muQY*$mabnUp^vh08=F9txJf z2Yw{-2S}{Nx^>Q4*Ib=k0LC@;nDF|cZ{^pta#{5?vM^6jB{G7JN z(#C0-cFt--M&t6QHA!3`@*Z>7PvZiq@|e4~C+HfZ(k#1_N*?XLmy3X1O{x!kPV-vZ zvY6q8GB^yXRpiTre{vOa+gWaHn<5QawFQuz*J0{>@^XaIuOf~Y7IM50fYK?t)_Zh~ z-1=KGEw=Ljdp<-(tB?-Y;Ay^2#L7?7z?<0BPJAjQ(G2%*(&l92+e!Rh&2h|$y`TYM zshE>PJqR{lER>Ax>{i={u$Kk_*F6*DJt7U$8IH5C4#Zv1TSFos-HW!;`RLa!l=&R- z#1yJMf210YLHq-0k;UOL$M!&c6sec4V?1;w9vj0AuZpkzF~tJP6+RVjNjBifAQyEY zGH9+jiQh4&F1Qf-BBLS0VPr!Qj9UqeTkpgF47xRj!*U7jeH2S8UWbalUCjES!>T=c ziCc681DqKE%#llChEO8(7z(1A-^!);L%g893WDfw)H?J)5a<(4ARm4B!DOoauA+Ob z{}*Z3I8RpWs&0Pr{Cc#5Q$~$L;xBQ<8k#P_AWrQK42n<~=UHIc4ZKc2GY)fEw!U_l z9w@-4A8mT=zr-)lN9nZC27;(1_9&kyoNZT)I7h5xd2#4}7b*K&V6FKBmr4=i$>KQy ztq=j4>J&6XgZHZZI1mIvFQRIOe)DS5B7nOdi_rb|!Paf*g_L9Kl^!7GQ?|6F*!Lca zp5Vb0a0BvILA1sRJ*lOUdWo9p|IFS~=aD#X)Pg5^T-17RjjdvUN(?_Dl(@};DpJBe zi6st;bKs3iFY<{*wW6Ry5H$)-5Ms*=1pAOKMwSdYF0_eg0$UQXB{7A9g>474e^VAz zrfJR4)vJ^A@>|di4+PWeS3eYbE$j|@@zkG`_yLiP9xp|&orCg=gn?tS8!Isdb89{}S=3wg*MP3N*s-#r0+lke8g*?d-pGob zkyo|$nC`dh>vW=9B-J|v$of=s3|{PEd}?yl9H-ex{TNCJvaVwlR5LO0s8e1z3E7LXO|`f^)9FrSJ{b~7?SfX?B4tHjQg zvpB*7_I>mKC!$-S0U)yoDwYEi>pOVg=)>GZIf|F6gebo#A2_Pka6+YrG}5-7U(1sj*rK(J`=m4MrSWU%s0rSzWf-K3H5#rR$tfC}%Sg9WnLiOIcl^Vm*ZkUmx0$pRB&H+W$QyHbm+v8wbV~*s~ z#4KaP-1=O9Ti0Ae#H@*p=2%mHtJJNK<%0Ur+`v`BuCkscsEF5p~nvO0BN$ zQ**u04d}x7lXy?fc1m!V7|16P=*7mv*Dtg^Y|@#V;rRh?$#ZZ3csX95mU^UN%O-Tb z;Z@1tX{S#OKA{AhiE0{R7U}6KVkdIHRLLeeB4gAO*juN31mzjLw+9D74-pjL3DwzH znI$_Y0(qdHARUL-J5=H4orG-}Rn82ZaWAQ%gGf8Hp~wtTPUOgd^jKS$$gQWMe4><< z#M-*g;0OI(BMn7-d6;?`o`LGxdPM5G^V#gZ=bj*@A1F*O#8H)9RJQknvhBjr$-m|3 z0njQ<{F`^NT?dHlb-_XEc8W{(W?%}tEpNt2_*F8uJg8n<<{}N))3LpE9ddV>u?Arr zamvSU*V<*RJWDe?<8b`;s96j|rUcfMM5LVHn7zjaW!n{w+$zRDwyS$&E+-Fw2xwF; z!T{uwC>${3LNw_{;oiH0D5%vY((ocwTTlqqtU<{xHLn1Qp9YrcCdlR2zKcE1;7SSFL z-jszl3|5F*?9{7ms222D6abf6NaT)DGzhE`jTRP^N2=Y^uF{KAOM}5XLp3MhHy=Av zBrBQ4O3Y9%LBp#WX6T%Nx3OIq)2dFD!b5<{$$|=0c7O|*j-ax=O`(D)4XAu^mUsUV@>otESKd3d6XRRM%c~uR16@mQl@w_lTGJaqj_Qo9>q5z`joG?dMLL?u_>^AyxPuz z0%9g0!t7v6c!VsaQYE7YDZmx_)$F69N}lF}yCSRfQ&kDPuRUx;!+?i*VpqUwxHEIh5!Gu;oqqE54ui)m_ptmt0QRAAMHHJ7Z62LbdvvtxG{-O`iAiPavE6`}v+=go^zmz-;oY=v@XnSUoY14` zAiR6pGQ<1JeWY&~c0()`RE$KAZ3Id4inkh(6Pwdh8O~0Gv!hUtCe&QDl%fw$?IXOG zKzn92hAU^K7CNw?pZtlQfcd{(8AFMPBWO#6FrWWqk6VGSj? z+@4)o9G|@C^xIGg}1g#5K ztEo-x{RL^nE_igI$A`&;S8SI?Y2m)3^rx?Z5{B3WrTxTb^Cz}Gc<`C~$~VR5m9JHW zrH+FDi`-MAsVsW;tMvFR-ADfPTVmq_34wHRu+5DbVJTodR%nfQQQ@fdc^`OYeWe=N z2QmD58*nTF&wTt^uJA(~!Jy2Jrx8pj{SmDZJr=>i{&*jF@Jm6>I&rze3Nq#pKq6*- znjGgqJq?3Hg`{%vZYEPpteqM^;UNMZS=?#|yG?p`0lmmK8A%^R6#FGLEzn-ANYCf)^CTO;rBiGrSdbXrF4JzS@MneIpWI>@bhm$KIOETC&a6WD?>#b8 zgGK6S>6GGj`AV7VJg_eni46itBOp2Em&zZP`K8NP%V0IXBvVw*l%^NlG~MLMLUHv0 zNNgpJ3h;N6ak>PI2I#Ds;h6rJJaU=9V1*nmTw+smg`p;1cU-F`UI#HhAYei1(sOzg zcYqXJ;$4NZ#cOZZl_iFODN+DAIF&l3%$`aeF;`Eew%%tw_+RjEIC}Pe{`FM+1K$JU z5#fw5L>A&xP-d@GWAKIb%{Au}4=_rZ-l-x})`{}zh_7Go4mnUp1u$yn(i?uTM%eZ= z!BF+H9_0r)N+hocjiOLM#4tvNH229`&Dacbts%L*^qM{%vhLB{5#Y}l&6%>7Y6=GO z16+fnMp_BsOTaxn;Y$(~P<9KgJFqm1Q@=&6uUa!d|6hCSodNbgbw59}2kKa({%-4# z8J_S2C+I{e1j#9ABF6pvj$*Z0_Ve4N>=8hm0)>J-!q|Q2`;UZkhUHGj91CB@@J()Q z$m(3&*1kN{2T8fs===WHZvAb?-gfK0%PE(};j<2Rz5I^M{ap%u>>Z%O+$N(U zx&0H(3{?7LiZBcg00Eyag?jRZ*femSvH_IGxxo&Net}?t7$8(WSN?&FE1ET^d|9Yp zPI_LwEaJj35I_<46T1I7wQL6Id)ZMqJ(Z z|82JT_~mE*zS1A-js-9rO0U<{i8WDb2*Kzpg5edGgooH6Hfe@NJnbg7Aiv-Q5c_`X zZVSRPUI(668J_WX^_j2tn|`(9SsHmiO~VU{aWf8pP46Ynh{n!pT59XI2)|=d0O7eJ z&R$fG2twttC2mwOd!J*ycsx+4w_g1WsFZ0`ga_X>K8L@Q7N46%yuJ9Gqq%@p9nfRV znlD6Q7>`kp`K7+~b$`KU@2CI2@#&EspU0mg*}eGu{GW;y9()e<*rj~pbF9MWq-^-; z@j;jW$zorJXOXwh-2=)+X)NyB&!%Gb2Q6eC%)Zj-x-9P5B|FH7)Q6sDUnYqb~VH~ z8b;Y`k@_c)pt9UAS;mwgOA)f*IoE!CjxTqqtSfs`d;NHw<0Ou`ooGNmpQ>2DPWCR6A&RB~Aif}JL>wu5JiCY5V z%`-dZ|4t#F&xgtd^7&66!L>c4J(P#P(?{$>{kLG{6(iO{dv^@&ImfX2hiwN)2=eP; zHyHH5ycGbnoW!888hz9L)t@fLQ8KP}GU^J0>sx$a#`+QuW=UTg$y|PUmh{E@nLeqP z(>|ie!pKFx<%{g{C8_22gj3sJt|r`b66b!; zsYh3r6`#j~>#HLOiJMDO>+|WOq7{%Xk`mAL_m#*(fAjc`7(FQ z6-9!}uT7io!|%QUc11S7T=ana73CzJ#y9si^}X_^(%a6K&qGuD@wnG*cUO)JH4Vk()NonlS=B}ysAaONjI&>{8pUECQ z7F7P$q!ng)QEj##V2`d3DDT*#=N&Wc;FJxYe!=zCiFNtHZ>>}5>C@K%$2yeI^mOSf zVUc*k0V=VlL-`YTItDwCpNZofLmZsGI7|8{$ME{g`|t~AvbW0K9FLIPA-_ldRQk1J zGpA2DCqp{@Esh@yuHT_=Vs2+Uj~^c&{rlzF8FiI``4e42cDCU3?M^kp>Bn`+T)t11 z^e+3E?y`r$@mk+50cu^)J#D_xn`8$)hM_IUX3@Fyw%mtZNLD|f1X`S>-q zup{{spE}vx{80As#zWmzxYGmR+vCX$NFC7A*vHj*sf0<4KFn#7|eLhjxbQ3T>e3&k1;Z*52?(M4*S?` zOuF&gB2IQH>zzxPO`r{8|`bts`g$U^_;lAa|){=|ij z0|~4z@oARy>5k(FE+5<uFl*DSk$8guD?BAy0ZW5%XAAe@%^u8lAq{BXLN}Eo2 z#s4Hm?aFA+9K;guIT^LYxZzFKx4bQ5eTl_c(m&mux%}EJ>C5*seR|Tq2HVH=Sf}n+ zgT(77EEwIwABQ+&rvxwy ze9w6@2jutbf6@{P`dRBwTD}bV6Bjy$EfC%`@p4jrr#pr$xO^AKZ28lD_^oy_DsVmc zY5gzHpuZUJI{u8z>3u6Qq*MPr>E8K-%Q`lnke`G3ir*F3^A&p1D>+|pEna3%Z29J_ z-dlyqhDMD$FW&aKKR)KbIQ3(%t;4iYK4Km}GFPwnFCk5eNE6Jo@k^&TrghOC+TuhQ?RF`7@>?u? zk~tnM@0u(*vHAhCaF`Fn5{ObRff$Q7-^auE@u2Aj(z489~thN;(rnBCkiK+8RpKi@)&y)6Q_BK0XfW9R4bJACK zw&3&)e+XGx#5pXq&){x8_S+=w;sDgI?DN~Q5HV*>Ik|MDYeXhraewhQZzG%D=34(%7Us-Qjn#y-U2_68WJE%I1QQdZNu8 ze-FUo`xHVx+lW7{7fipu7`*xA$=B(bZ+e=aS(1 z>Y%YXiIe@_K9!z6|8#vef9)HeC@=6q9LTT4S|?j@`lOzAHNolIv!u^;x{3bsKK#Zy z9Y332F8ieX@3n($SeV6KpGtq^w9M)E49<`a|9fqjJKgL5I^b{a{UEcysQ}}xF8GFy zkQe&bj9l`Vmn`Yq|C_mdw)6)bw@Nb=uzsQ27XfB22VOLdzgdsi z%5N5xziIuS4XRKy5MRe=C&oG*txWV!<}Y^!&NAgstaY-v+gJYP+D>kLbf-J~PPVt% zlNoI~NiM>;{mpZTn*4-GoaRiIWc4?*gUVmz4A)8dBB;Eqp9t_b30j-LvDf z8H>{W_&DP|&-=Z<*M25xWjo2l9*?spJze%Vfc~pf{C!aV#3aX|2iBL^o+W**u;{-({7zR&*Vgm*Lhn>xszb!VqE z{$}$t->Sd)*T(O}-v|y@NZr}}O<$mtt$))68`LX?`{lzIKi%hK43G~;{u6UQ%UEAx zdY1GDt<2@`%#uELKhp;#{b8`bxd&_7{bnVx0Hs`J)jfW8Z9snIZ*JOdqbd~5LjR79 zUpj^>vD)dVW#reS!0|@qZ`zzRR*?n1*+M3zFx6?+_-5S2{*n{ZJ1&yurX zEMEkbPv>t|BWm-v@A#V|{oXx0KC^@CqsC(Wo#WOuH&W^8v&UwN{|@pWNq%4A?JcL) zuf|KaJJ|yHnV9Q1{NVIHjzbSle=u#j55MdE9^GA^@+ZIOpTS>XeDS5@Gp9f8to`%L zuafUyoaipU&;I6_HJSYlKclsd`=1(LOzGdu{>QiKZ_Zi&o%kEUVe7jc>)$-`WOjdZ z=LfceyZKEq_W7Fu8|{o*V*>Lh`g~|-3r_EnC4JCGnadxSCB4snrZ0EgYMTDd@mTck zH&clsc+oWertQPj{L0^S-(sUG6b+UHxkLFAa~+2s$j?L{$6*JjKbR$bP}=n>KK%AL z8Et;M@KgS#?=fzF;D$$~PbkiuKIYgA>FD3|J?v$5{yL4n2|xa= z`kVLP{BHaWakxe5&fdQn@|W!X=D2rl1$FZ?z@9wkWDJlGCx7C>^%?6++?geP`G(Bp z7iUR-a6i*8blhqhfAjQ)05kanN~Q5PzX-^${LQ@y8&#ob7W(gT20k;FbPLvWhJ5-RH^7{O}jb#=zbO%->v(h%Ck5e3taVET5@=Ga#t^0nT(} z*73B>h}!(^JO1Vjzjx1$&wau5DSz`*$E|B_q|(!8k00|m`|R|eo#O9Z_B*MceH@1# z$j`)sS<(kN4n4U1^0etb{7k<`ch{%<$s^8ME)p#@eUr16D>!|eVyI2s zBQf?(JEO|(;lGnVG3YHjo14GM^y9LmU-)+B@}sh(58BW4PaU_K#@~#2JJn1jD&R%a z_?x}~`IWyp;bR-sj?mw9I$oLRpXAqUXW%kZ{zRX^@kixv9&yrGMIb+u?G5mHPvpywigbA7(GyldT#i zV&PuN3N=zDYv1(3y}w(xKLEdReY?B!_YLSn(Uj91tu>$7G|+@{t!JFO$R?t1{azSA zWLVEw6F{HHVnv?F;=Y4rIV1NUtHQe*@IMoT*%q{%kvouiH?X+n53W5gJj)qpE&^qy zDav@|<;ULjodcWoB0_RLw)3#rgLpK1%f>td+n$vgx$BHL)){gcp!LZ;qyV?V0Bdpb z!U!Bet4qy#iCJ8W2(2CWgDMRaSFgNA=H5w5=Q%GNFrXsrwua^};U>b;yok@lPN2vs z*duIKu@P+?c>tdB4v3a5<+a7=ns5q{9VDseIP& zp-$s+lRJ0uF(>(GjR4RIe4A-ob^+f7zwZ=y*RD#~^<-#mXCr=$XqL%6MTBP6*D%zx z_jB{tC+8i#7P$Xn6*t%b~0_=#Ak1{>17h0X#YkSZb zU@JLP+xlDFp7>z&ZYt# z^1@@EX(s~~@sXWoV6xv}EM`)h-Em}z8ZtYqKLF$Ef z0rJ0%bV%LrTJal%!g2`gCv!DGKpO?7k-MWsC_g3M(z3G?_NOb~(ZUV1cxcH;Zbp|^ zOwow7{4chu6YhFgyAuxhwbUhZ7|9*|V?3^1irbu=p3A*toisDl`$@$; z>?RCcHTRylB*{IjNcM2A`1`@!`}cpyJ?lUBf+le4{{4WzQ1rlpX3v^$&_j0M6hVNb z%>_~bI6t;Cx3*w`_0Yy$0xlGr8>J!z!UVy92IIXvfqK|nmd*_u3+^~2q*bW=&0Xy{ zx$Zj2h0WlwS0U=V$XB1%-~!-YNb;j5&ZD5F)lN;@)<{h~DFU#4oz#&tgIoW)z{>Yj zx4_!@fg4=w-FrX_^z4J=;}bLo`It<4RCB#|H6fkJ?NICg#WXNTL255Ne6 zi{x>#c>Vc0&rF`yR!5j26f+Hdu!6Ps8LEd};bA(nfgP*BPabargJ50E!-9|rl^R9Z z77h#WstODfdqBZfj5Ev|bFmTB&6i_|IIJsnh-&#rGy<*U9o!hY_hRhx*j#(8>$s4E zVYubQ2(SpthlF+2VBKWciIGT*L)ATpi@Y-#yQ#g5!lEhV=RXv)cgU_Wx;#9&^n zPERY|7s}qca?lIVf|FFd2LZwROLi&VvpP_09BQkAx1ZK-G;EJF{hIZay&s7+@TTQs z@O{>yJ3+HUw-{w>XIy8*r-C;&g9saH1=Dx5san}|?TLI3{^0%1tOieL36x?{-E({ z+a5vhy8lPPEL0c3s|_3{1&WtiKV3o+Lz)3=q4i5Vsptk&WaLz~GGhKgP?ivCVy9fu zSvfNof*Aus^@k9EyNw;YBm}GPY|Lq^7!k>d#CEXYHEW*W1&x7kBM&ZNLyD9L2GKMF zDKu3I$<9Ti6LUe7np`OFO<-XA?5mkW<-bZ8O>xmdQWD0di6Ehb7VtON99j0{m0gxe zj@Ys)SX`b?)OZ2*dR+rQ`fqLi$U|V?`ifEZ!L&0eABftH*vas$0!5D4LN!Kb;GG#q zLW2pL4Gj*u7U%~P`ij=M*4r-$ch6Cm(Q+}MW*A;*w+6o~iNE|ccsb0)%K&~ZAh|r} zQCTl7PBKaOS5lt~B>+Dm{{ucoet-o;s2gA`PzC3fPCK!_lQCyEc`>c8am@zdgPGTt z*-Fo4FXVAjG_gw2RUQjQWp*9a$9=m@!T70cf+a_h_^SH+D4k zPVOP_^$W>Gteo($rnoBcL&9P9-t;GcF5r;+O_wXDR@J&{f%VgOJR}%*JLK>tuMhIc zu&3io5%V3&LnE+bFS7B}YRO-I9xr8EBe5!0 zx+0Icat3Z^Q~^_P6L+ATJ;P`mN}>#|Kfsu?S6RNJk-aj$#kgj>GJZ7>mKAxYu{5I7 z)5N<)8>6QcL>tGSRyej{O{C!;I<3IYWDo0{R>U`z=2S2=+3c*iv4T-G>N``aGh)s8 zM!OvOmqe=x3#X`Uf4WG8!B){liq-tSZAEDM!`)d0Z>Q)@kpl{t}Kgl1xqt2C=E=KGM@#30 zsRV>yZX<-?!Gy>2zyku$&eu@{$qfBqT>8$}L&ZuEArlgO*)nw*OddL4lW&78;KQc? ze{-wCw}|*6&f^cM27Kd?fpfor!1EdSI21>TX6wZbx`#Rsj}_&7$1{CxH>eAZ0}(L7 zK(lyloc2 z=y)RGtC)QO2TN#RuYBDodt)}@Q1*Dt36PJ&i>+w@f^SOMuR)zBy7JC?OIk7Fpvehx z@E;r2106MwC~m2Njv@kRh8oUEatn4Gf=XVBN?5y&4(8Th*9y0uZUPyw-cymmga7n_ z*xmoyF|xaVE;sc*Y1uAp>VFa5_*otrj<=nbTGyev)_*!A_0$)c zYXV%HOce?r6~eV=$Q&Q`JU8GO=uGEjg$$q|OdU1*JochmcAa6w-!%HaWW3Ra<3>kK z8)n4cKyR=!D$IkptT+01 z^{an@hTY%8Q_x`KQ4zcdy5c_iz0ge$(A$YG3tx?U6*NFMI0RSr!tAjOLJ=^GGaCOd ze_*>&wqy3eBf+?#!|QgI*OVFUEAVR8W{MbGV3iSD3Id#m@my9Jf0q%6Q`xM)lf+X& z;+absO_Unusc)_z5~mbL8$+)z?2cfJI*IlmsN5XjlrT<|z))fdh7yMX++~Xhb@)ZO zu+9$N|&fvR3>+<)NAPtryOHr~=vZEwnxBiCcBk_BPvo&uXROScD*ZcVSs^TXa zpF%3|2TZJjPUJvbs-e_?mQT)W@O#N<)xE&&X4nPQ+?k&%Utq{s)VZwJ48Jcq;k(Xa z2hI$=D$kH$XY4H$b82XLUUft|OWDu}jO`e4gv5a{#-cL65?!ybB|JiExAj*k@yiO3YvX^G}j4VF9pl)|Lj`l!ASN77Z zFH(^fS}d^6MOTTEqfcu<_Wp06CsK2?kqgZgzCv1=Id_3|v?uexHLdHd`=1dBNTI2& zehd1o$?6wa8$Hiyq57vMn|04zaJ#o1*(LdHjx6433>{t&nR^U7k#jz$Yc}G4F0SL% z)K~N-7vPzH>{;HWZsmTFeQ$;qpXEqE>yfqu4BsR?-lWs4^R~=+afx4_EjWA_SS|B7f@!R>xS#D1JQlot*_!Ztu-p(AoM zuvm{B5fhUaInl<>RO`vn#wp_-X9sxIjep{EvA(6;2L0J+E+y5Z?u|>%f)0^L&qy=M8}yGz!pu#7z@po z%u=D|*5y&NU;U^~urc%rVrOIzc_=lTF0yXbh?YcAyp$CU9!p~mw9)hP)hGx7nFRK2 zX|IgGl(-64=g6vflkkuuyyV{ks}TbbMx*BToMjY(r3H2?WeQ`Bg z5|R1=3?4+Ph-`#Naa5clC0CzFu|@t-yq-|Ea=*m6&ny0(q=PbiM=3z{>P9*X*7DJK zf-NW_`6hF)b*c!^d9Y#quBo8(khHX%_$jcKAFLz?`PFEJ4uqSEn^`Z$!d3YR5U3kU zjrfy7w1MqW3_DW=qGc;)4~aH*r_@wM%U+F`Ln0_wwjvTc9yjP%;&r^&E{FvBg%F8X zT_tBNr(8}o%uCU!T&UR5_-ye^KpbrxJ#H+=?$;bhAyfpBaR5p_=c5F9-dGJF>ULK{I5q|{v zjZ&4G)G^^umxjB-NN3~M_FzV*y>T3?Y#4_=E*hUK4`<>bve+o3v;Vl8+#kyOn7Z%F z`(xC73GWYa-JjZ(6*a+7dPYF zAdF8BHZTU&FgnDCg~fFuD2lrlG$|77~2?85(Tyvv_nqBX#ha-!p9$rzuJgREGhG+B(LuXjWXW%eYzn2=p95{Mi8V?10keqlZ zwCc`etL*XF0#3fOLQ@Mo-oLIZ#%q8|V~tGm5)bMynS3N!KVW45V3_1bzCHTJXS%v0 zU+Y@yj=xK9#*_=oF&nn5f`zKlLU7=C)@TdCnDfg!|+N}A#-PUC^*{F*43HYdXLp)YpXzK66hY)4IhQ}s0d2ZfvF-O!LYUtPergclsFXr$HDSS zT~BAi?GTE^lZ1K%^(1iM3c3i}ut=9y#K9$5WSUU(mRdJuH z;izXW(yTHmDs}(|RyyVa?x51VA-k@SgQzC)7nxSo?7Wd!Ymgbqz>j&reX$~yST1Q8 zs*5Ywl@Ch?{*6-AEIOze=<}wxBX<$XHJqvgVE5sHG|wjq#K=lt$re{86(L3Pl-M_= zys@sSP_VTKEa_N((H+8=oS*aE7X;h$=kUC~K+hmk#xZ)>H zodDo;wrguVy)_&gydpz28%?WR7bxY-Whilz)z=!Mm1~+b2(WLIDed_&aRp3T>F)aqc`X}#o>WXOIUXr{rc;WRQz3Z{T{0_)zL(> zytLc|7d3)xs_WsHJ4y5gIOpr?eY^uu%08{a)|;`N`L#G9RX5@x|F&&t-ZuEQ!2XIt zr2B_`G#nzyH@cE93jA zcu=O+r`S_HXe}*Z*7!peJg(mRBGMIws@a{M+bB;mz=Li(L;=PqIRXGca;%D@ZJY!h zsMlGld~9d#^dImRqeB(>MjWD_TDp^`w4ADH9r%z8NJ7T^*jU>hOqaxl6d7cdqSgNf z@Ngu=&pSV2))!aNa?AM8#V}wPA1Wb1<9{xu4sd)(u8`|ec~6b4SA9T0l%eZaSUxDh>zjS5>imeYF-49 zo&`Fa=c2Czwj>%DQOWolda_pcgKhc&Yh=avCToEA+*6`V=qRYhh&I3ypQtL0e>(41wID_M1BsD_CFm=B&&r`KuSLz@(Iz=1ZKitD7! zX0|DFDqzvib(>S&ZA!khZBh^k?wPtM`~@3EpbRP1fTOWMfMG(382{)Hm`CnmrHhE5 zjTks51V~el_0UhCfw!RFVM;0$p%11K-UC6BuZOWTW#=p-!SzCVO2|=C z+95C6+elo%REt+Iy_r|L9B>?`as1oqZXENF%Nl=13XX|GXl_y6Mpk2MyRTa7rYVq> zwa%b^(%(W})+u>;Ldna+Qq7->7x4;tkt?uQ=0`B$&^h6SmDQL@bo4Ox+uCtWYDS`qoNLtoNL z*7y;lX2K3+NR||mn7#k{Vo+QHsih73Ll-A5sfkcYvA$$yr${}&nIJucT6PfP&a3gl4mw~nG*k=%F{Z`~{pOb``c;q!gGG47ktgX_ z4f<7qevoXLS_f)kK`a~y06c=}w~%6Cf6)_byO+d%I&%h1DrIfC0CMOik+l9>^==IIT zQ^z*;D6DLpScsqk77Kavtx23jL9GQOlu*E6g{Ye13->71VNt=hNNl%A%PdSVnRy?K zYz$8*;T$9^<6>zi?*o|0+MgQjVreRj_?Je!%?nY}PiPp*UY#}q{k^Ry1#IuouGAjr z))E5+Uc?OeqcT6NZUO5Q#6B^6kzs9EC~+YY=h=z4r}*)Yg(!Obqo^;EtB$~&N@RwM zl3|5UW5g#rmR?Q%>L}CZuG`Ijo4Y>K9l!nqAyB&b6)4k%@{j1RQ@3(or|;1`$Jjte z9TC8k)&G!nLabG6g9$shyZTe)rMBU^W>7(T$*fuK5#FhY8G4HQ!4zt`X6rylnNe>c zUxT(qN>({V_K3`gHA#dl>Iq9Aaj*zH9vBOYX|u4jR0JPH)Hb+4>SHtu0WIQ`S+k(T zXb>TsSQ?t>L!}WLFMc92voP9N!8vn?Kc{2>Yk_rzZU8muxXy0Kl4^BBq6yM~m^e=5 zHNndh?~Rg=1D!);if=DGBeij%8el_&O46benjdY9upioRA#$8GusMnrx1ey;3?F`M z7;|2T^EY5p%3+bYLk`z=$MabTYLwLD94(ez+Gp*>-mgTe46o7D--qtYf?KBlS^vY*O_xy^UZ4mwYBT zb=%z?`mKq@HDY8XPDO4gqTPQySq}k~kP0vny-)vFs>`)USy0G2sh!_YgGX5PHJU_O z#QI`8^J>fZBm^bb%_tkSgHUgyPv@hEv`6B!Vkx;h(zh|GSJT$0R7e2~rwZ!6o&d@| zjOvRBh8a3C+6_ct`|34CL&etw!K&V+7KlN@fK1{=9V*nZFdBG*S2MK!Y`YRWD0Aas z9pN|vLjeI`w1SVZAo+eMbn9`%54u%+29FzS%>siN z{_D@W=Omgruy2O`GZXjs#`VNA)?2p@z(lF0WiPS5rBR0 z-ml=TV2p#YO#T2kEQ)EKU2W`GM`K{cnFnv-7uiR#hxpCjlTLDXh^UoB0Qv+wZCyD) z#qI(){H^ppM{-1wjl}p#I4eIMSX;Lnh8as%>p;-h@sZK8sk31oe!KC;#|*`*jsEXr#TBBv zT}9KT&zsnz)M&@@eqDCjGJOB9(k_@c5^3h}jU*qs`)4Ex7Da*>bzwb8W%WBrQAs>V z5mQAlrjknIK&7gsIOFO$Yw<4`BwLTGOa3Jw2sVl#M}71dO=XUK?xqJgH<`q(=JM1R zX7|GK)SmVDi0&_>09UBKFza(zxur*H*M;#*;sstXs`~fms=orRN@O4|Soc@JRf;2` zH%ynm`|}@>p^8?{+^;q3m+F%ugXMviUYIX2mGC;rhqIa2LV!HB=yx=2_n z(>i9T<}BOGFs?z}Ek|Lsq&L4PdE0p!c1VB8&R`pbUpFRb$0ZvQ->7gqX6wQUmPG+D7Eh}v_~XhD#doD!%Kiu0m(I%TGa%HOBfvL`RF%&wih1Yj|p8e zLEwQjnRw#>R_y>bnRkWO^U^aAo9O@qx>j-Iw+obZSo{af2ml!;g2Q!ExdY(y7X!d+ zJplUjNt7goztGH`oodFoE*Fxi$@*-5ip^qJDg)pC4dd_lLWjljA!aW%zP5N zz_^mc25#Wq!F<5yLKox{Ie%5wCVY;QJTJnB&l0xL5qx@Oz^BUDEl~6eK!6_{LCt`V zBTo6&HQo{Yw3zuTwF-zCc7snVPm#IL2jWM67HRq|)5;t08!=7Z>&<`6-k)90RsDx! zwbDqeh^<#qagh@xge(((Q1M7QJfj$K>V9_KRYVw#{@G7o3#DZ3MRM@>so zEZ)-k3qaJ`VD-NUXkwFMLDTc`Osc(qE(5*`C2ePsAKODO2*may9ciRso9}V+7*7D@ z95+Af*!{$I=!L)*TPka&dgOKb6{)fc1)!J7WU#DTIp~2bMQ%eSQi=t2%33*ux1RnX zMr!8SChA*hpWg^O?L%#4HrUY;F-FPuhoosAmSBq-KVK!CoX^EQ#s93_m8q`?78eOe zNEBDE&ALDjAQvPJvmP3Rp6a2&$Z_mXgF%_~(bf%KSlM|Qo5iv_Mn&w{; zI^B!(L1&G*00JNIJ&p7q29f;U@8Q5z!43#aW^YSzhHDkTu5z}B{%W1H%%}~#h2cc# z#@9+@*jK}A(13h*T#du3Dm@MEW);T{7qQaVu1+(qt1Sg1u9-}J^q#;Aq9#d2PwQc6 zTKDxK)>Gm9`57E}ZH8YNN+$G>A&n}&bTOeIK_)On19Sipa?<)oG$@=1ufJNFdl{G3 z`FPu>_E7-wmU{alE{W+N{lGQYsf)YvSzFHoT_5v>YySB7Z9&N&17Xk&m^mf|gekzA z9FhuB3}Ig0OJzXB208r&(I%XE%FCSR7e;^$wSvF^umy&I0~g* zl;|S+AyPkSwOW_h;uu~%i9`s!ic9P7Y;g>)P;XcAZ4DG`W?k|bEwtbh?h;~~4WSdJreZLaYd=Br%{wHEggHmefHXr~x z#)K^D7!$(EQ0^-Cob6yrg-qAh-y;=527g?8JlOxAAB#||hzKi2yw&b zlqIFF!Y6&Ve@f{S!4nY#ms%fnq;H~XXe=(RzqX~X_c`)5d@e4s@sCK~G)iC1xgb9_ zC-srvPoK4lJ|H&5!;ZnRkku`J;D%7jwJ!KrO`bpjeEljCCEUUb5Et6QRQLsO_~7&c z*zg~vihcnMjaPM_g^No7N6FjJXuh=t@P>0hfv{fyJ^nN@w}-NCZutPV@I%d!+hisl zj2FWOiU21}hmphiL<^3Lf-G5dYtYA;=#`_|`VvvM zi(YLKg!gX6C52wMb+_r&Bbt$3621hCe*h)1M4%F=Av!`=ggdArWeayOCa}QP`U5*e zupcRKqr9Xem>R)hwKPU8r=%xX2+=oTC~{ok;MSyoy;d#EX~xAxuvO~q)3_*t(G^m_ ztk1@PNI236#>gj6!S)BUd?F)IOKqS1_UA=C!5nCR#t9(d;k*FXYSt29e_DQ!-u{F> zOk;oEx{RoYU&O^_f0oPJ&7SmxR7B!2TwMO?FY-40I4(Z_^p*kY zWcN=$QT7?;l7Srj)70c}wCZ7q@dRr5)|dJVeKE}7H>DTsAE!hZh@;z$Ibu;s6sTtZ zK?S57qCr@|g-5ROLJZh|0iMs2&e8MFr4H4>4)n~A)9(jMJSLSg9=nwD5uuh#L}dQP z3#`40mvy}AicdNIXogN4m=wwiw&IG)rpks0x*J*8`Zqf&3!R}_D8;39p&gZl%GBHA z`F1YJVNia?C1yY+>3$R-dJTgEh&5z1I8$qT0H3}VD}Dg$DIg&DAXrqyK;ZNSa%XOEUWJ{i?hTzlMu1`v2-IQ1N-2icWay zw|^gyazX3ADGd-w8C?bmAPR0^lhN=(J>?r{2uCaM2J?dQ)ubpCBN=Is%4TTENlBR# zs=H+Fe;Y^@N9LTKK2p1ja;?u6!>Qi# z)$Vqy{5mxqQeZUpD5jyy$EJA&!tYQ|TpB~&J7YH*EDd>#l#GWzCn?a694tQ83_W|I zjXEb$KqD9Lb3CY{@M~45G5pU?YJZ#IQe)@^ykw1~BCBTTT33y*lb#y?@~)ehsL_-f zuhun6Z#W*R(>0cGRSM*@(5X=dqdhipqQAzorN-V;V=W9)Xas9BL)(7N`6T!ZfJ*-= zFe4UKH>z9xc%udn{dy3(epPKDDtI8bd(QIEw)P%s%Ou4S7?U{O)B20ivySPB{p;4@ z^_q*^uY2%y9bP}`dHr<(Hm@n9AvVKvJSiKP@@E(hzSdi6>O=0A&QQEOiPoQ1A$fwQ~5HW*o!wOGy( z!jBC~fk{0~fD6K}4oQXZ<6dqEWsDsA_2`!hLcX+4AcT)trx3!+l+GrtcZ&Y*C%yk= zb%5T-1z^)V2%9dc*j#dp(0kGuf%Kk!4P>Q+zPyOOyvVb^m&{DehD}IwBEp(7DvR`0 zIB4OVh#=)=t)$#kkSj%y8|?J;@#z?+nd9fT3Rm508twBCRP&eFlOix}s4eY@2&0Vn zDQabiNFjH5D73a*nLH5z`*HIVDd$841?2+&wQRlQHJv* z?id_Qz1Ys8)bk`B!q#^Cex5|p{+%cBH!NVZ*M=SAqaLCBeHPkn9R}K^oG0O*KeArV zrw5b0D{9oZaM4)<*I*IjS^U@urYI6J%5(88-E^g-P)Uq$>rs7K5&~ytofU4w0%33+ z(#+WnWEc!>&aqBpg2TO6Ua@|Z+8(#J!B#}5GYTO=XDX#tZapNe8mv^eI?j5nhil@hb2{)(??%i?Ty$zyVRvEsjqC+uR)vyp)-m`ntGXoL^i*#;+izxHV6-dB2IRMG&LCkkS zs5$ASA;pJSIY#aq&d4EpKLj)hB%OlIsomW`^QF}}E6}U;*Eb!fG(KqR z0Hyn916sPrW_h23+(7fCbq-ceWu|nOeFj=ql4TW-nkiW*tpdC9w|cmN=1c4DiP?Zg zw6TveeRzi`{rq(TbZqxYk%n$c-LW=IjKs?kGmKUvu~yU+SzOa8x1w%uX{2E_D=vF^ z_92njGmNY2=m|o+|3v%PJywuE1U*SPIPj zYfxud?G?s~3^#Ay6l8VD-Nr znZK0mi|rm5X;{K)6wtG-asa*;Z*722t&I{w7)OEd6c-rUBz8kj(J=E4PETFHvC_I( z0bo|;rmsrv&Y88UCnpP^%&I)w-`K~4z~IWL4jqIHZ`%e}h8N9K%R|&C+d=T9H5%)_ z>`?21eRBrl^|EQZvf=#j3vOjHcPwsLgDqv@S*i&=9HFeXP>%2bQLH>{Mr%u|p0{_L zApFZx>j#PevE4twaby`O+Py=}$y`UcV|B!KkB!W~g8@Zs_o{Et0`O zD1pIL2tK&=Fw@8_*^I&FmU8Fit)1NVPu%(4SP!MS6{)|7g~g?t20|DKA4y{#1JFpx z7O$?hi3ZVcsJTW)m?MjO99XyO@*6Iy+jV2)&X)RBH8?W^oA_=`j3!u$Ju>W9<6}=J z#h!r~*|QQX!s>*Y;_BAL*tZ&RVmP=T5xvPnWp}GkjjG&V(kzb^qn^{HbyXtzYAt>D;D3M#XfQPoQMCw(LEyFW< zAV$e+Xk-rCwFhEEUK8UT)KbIGb+Q}JzJ#B>Db?9nsDoIMVA;=Aug!IW*e*mc7ZR_h zzk`CZwLY!|Iq^OR$L!#@KihBaQcVGQmman^g^fW~GX9RT{tYT;yh zpmk5__Pr#s4Yc%>-o=Wk%s?Nu&p^xAe>S6FwO^J6Xx&p^mCB;)p@&nNKK?IN zU!4JjkMPky7=k>J#k1IJYX3egPmAQ3i2;{c7)>kNHS2hsP87LSmP?hr7P*yCa%Fs{ z(SHZGv#sAOK&>@m?RhoXVs-hlHG8c7CXV9cL1GwPk#DNaQ}f!~_Cf;Z1F^RWXRhb*5jb9jG8jWcU}4`(RW~nS z=_)MJcn%5f>UIM@lDo0p{h`~3{Ln3G=3(JlOKIgB8`+(XwfBm|*kj}%tubO=H1Epf zngO_V><6LioA!j%2Z=%TEts-m$y-ozUbNShIN7F^(OeZzZy~r6o^W~#z1T$ni@Qj( zI~px(nSFf}XR}n6eR*?_<#~npxUMCNPrlxWn!S%t9^UJy&f%qmcZ6T{B-SZ`uI z_LQ2B#c(o*p%H;&XM3Cz3K7C28kY}Z(FvR4;DKScheaFGP2e(zSD9$e8g`Wtf3~;| z4>H2=CL5~4ei<|HzJ?I9$A-sq#+bc8PJ$yl4`4pVx(nYq(dS^`L2t@}2OwRqcT3^2 z3Ou~dmKwcl)vbvWM3T+kXIk7eM5D?1lma$fNH~hD<#L7~kYh9G43Ln}4Pd8WCSr?F zed1i|iuy>#nsYI$wr-RQrUyU#%-)tHx%>kJ9q(yrqO>H9&=QfLhIttXYA^6s;+goF zSbtrSLt`bci7Sz4T~Q3p*bIB?nhi*q&%2f)?_KW>8NLjth%i^njlJl7#S7xE05PUg z*Zh1GbR<=jF#?WnHa|7`f2jm=ch^XaM-dX0ih0pfF6E&rI4elka`V%a>_u!ZwzKQc z4=`3Vvk~qP^)RmJD4vYi`sY}`ZnQ&zP}!eQS!D6}yi4oaFa-1~RvqUc^3DH_)SoR+ zx;}s{Lp5@0j9&Uwwmvd{4I6`M*YS#VLCmx~@4%A?z>I4Qvj;o}#kcI;8COsSCQ}9s zK1Pk)ts*1l_+re|$?5|LiggG+j8Z`l#Ow)H3o#LylffQ57)jBzSLjh=~+EYS`INQp0K}bv#VdCYDk#1-u-egd=b2q@GiXlgLSZGP5o9;qwD) z_urlRM8H_7c@YH6OEp=($d`3Q$3e>;BC&UkvR5_PdS@dCek87EcVgCsq6D?-^6F8L zNs6u`lSzBc{a!AIELL!S7BKNgQ7*5TKp(;J8Csb(7?; zS?@YuWW&*@InDVZsJBG)7<{jnjd2v~oAkywH2H6rC=v)t^9UyJ19@z`fIC%NVlRMQ zM31*XvOTHy=XqAP=c`=N4Cvb{SG4dV6R{i48u-as12;#(lW_neYHuxx=L!K!U-2y4 z(EvD{6{5^@R4+4(qB(J_@jnzVLbFi_#?&Y_)sY(E=nU4xNb>oka06)&cV_+kWA>h) z_F8J?!!^!~0SBO}_Zo*a0Cw7d$y73GlIMqFM3ad`<>M5!K&eSOT~x(fK1 zNPS;EEO}~7{Dv-Po%BK!`PLy{<&KXL{}kY$L1UD^LlV@YV%wrfAS_zk0S zN9)-5dzCG_&oElrx<&i1uf)LOHERm6LcFs7+s2akJoQ((V{Zn2Bl8!)`QWZFGJl4; z>vMB2Jok>&o9Ij8u1}=lC%gj@MC`c2mIs#dvx7*3Y`|{Qp5xDDyKb&pp4Vl95r3UU zlsqa?92LX_~&EeUsuNWR>of=gM~#PJ1Iq@zD2IHFjO-aHZ*FM-}V7x zGskmC&@#*R96kS{EqxR+f=~j-hgQm_p0;dg6wo*;7S^XQS@Sd6_y>U^iuh@fWCkr| zKQADDXr%rCXb*hH-&{i3;T(fH2Fmi9BE zkl~ehL-tX1o0-~QBHeLZ$81J9S_6Vnexv3Uh*kd=na_}Yd0roUaiU68_J4;9cy_Fd zB0Lwj$TAvO5IcJJXe z6Y+aw4Ng1U+qY)izB9szuQlSk9GQ%Nz^I!%P1G|?MBR~wzvEH%bS-=L=1I%*h73`` zE|)99;kbxGhx0l!??@QAIQ5b2cv%jA#5@W#%7BK7i*jf)PX?-l5+Z0IOyV>O1kRKD zw~l#Lute%B_r}m>>Z24;A!7{%R6>z+5Q-@KsKOeMBvOASYm4tn7;O{{&a*VqHSE`SO6rfNFAL8l}<;hty@I!pO1vM!P4B-)eaX5q+R zvs$7vF*m>v!HiM@o5@+^#ig*+Iua|f3f%(Rv5hsarY_xl(1_)Er=I}rp}82Bc!nc2 zX1^2N&{CZsvm0DG#X4YFXQi*+%XbBc6wNxnA!-W(QB!S@_H;+3Ghn zkhIy#hU>-wve17sJ`T4&Je#30toX`z(^zrF>t{bq8bc0rC%`t|_H??&vttAfGU75~ z>zG6bX^)MzjWU6E+3RLLDjO}|nwWRfyxHQ(aRBVcJ%2lL**2OLz(!M$3>Ef>0iswr zAiyeDnmrDQ#@m!x-UWBQi=iD0`*b_ZaXSbfsKfYAj7gmKL8_%c^w|d^)jq7^(3GOE z)FIku3*0wleWDvTuP{TOzhfJ~WZ%y5&_8`JMSo}OTH>0M+ELbR8 z;Ux$_U=kLEuZ+JVJvG2u;f6J->m+88we*i!U>(n{$TuaI4O?O|)jihMH!}ZjOl>Ca z;QVH+ttc}8Pb5gJ?TE;2b?V)bh%0J&%jg*t6LYM(KM*IpD5Wr72@Pks+_DRXi-C2l z?Wo8dE%VSDvbKouM3riZ`KoZl{~KeH=t-F7v~lJ)GQWv1u*rJv0H$AKIP`d|T&XmN z1Gk+$BC*Sut7T&z7RMjn4NKq~$LER#dsu`Z4{LtvWfw}DN>mR=A)sQn{*oE(fYG*e zWxHn7R_5YtF2;vq*)XzTU5C$|_8-f%mhE7ipkf^`T3NPZ|N9m#Te0$Weu?_O-#Zc| z=1t*9vo4Ab;aB+Yw@lH(S=-JcOyB?)6hs<+hTkLuu1YfC-h7(@jf(IamEd)b-14Zf zLpk55c_R)VRqnL1tUYq;uLD?sgc(1x$Bcvph?xpx=I;}HFZCU=p$XxtRi{wK`Kxcz z2=U7ej}an6imXi!_#KR3Y=(b%04br+-9ODHKNBC23)kaFBR$KJqOu%OR$&{m=UCsD zZv{j$zD2V|e}j<4T0cZ9k+y%xUAKi8@hMmx1d3 z6bn|Qhx`bjjK*6kxlJEUkfu~J(p}R1o!?I_@Al5`D|cAYTzpp0)+HKWUfHtqjA;KC z5K3QV^hexI>*R#e<(~n(Z`~LD91$=eO^lcDnXvlJrF=jjV8}ev;!nQ|Fm_;7JLs5C zqBb0b-%4!z7cpgJqYaVnG~a|ybCEYd;1M1!@i_Q90dYJ*GusP@9{{E z8CtuS6i{dqL?OU_$qq$Px#*XMWs)6_4W2K%k$>AR`gNW=Kc|gLU?cPYieEf%O>Jbp z7>zk?T>TuWmzC}+1z!1GnyV#`J|cg|W8gR%e^&;M-)O_Qv0?T)AJ(Q*B}TGfnJ{9| zFqbm3q8ZytfbMjOnwl^gupBbZf#sm$5|Jgx`uzvrg`RxE4^ZPPW&eoaHRfrgjRUq3dTsifnPju%?qUWFqq5A*zO*YCN*57BMH;MRJ866 zv77fGIb(P4?Cu^DM40tpmKkb&iwlR?c&=M}b% zOdNvX)#_fREL!ia%QM7KwZHaQG&}lpAp52eCG4}TWi-G`KYa3G)6AwJy2z*7gMen} zp*K_LRz5gA-4aXLqd9D_#iigj_~b|kX}j7nT)7xLV7We+$y6dsn|zujZ>r? z$+>P#3I&Fq=B0p=nEf4fG~%xs@fBPO0`D~sFeKK00%E>8NE7oP%Q6Vh;9q@5#9Ysi zJD7wN9{&ikM|cX}NFiO$p!B3mG*fuqKUL%VB365)?Qj^k6JHsY6mxI)GwgwqZ>%g7 zo^)Qv(=B~)-FIOsKV#@Qr|m#ksM?#;!C{+hF=Iyv9N)J0yNqz8>1q8x_TD@`s_Oh7 zPe>-2B*cjoEUt};7O2I5sHCEX)rlk+0Ts7GmLZvvOomxl6ckBVVi=`WtF5SL-B;WI zt!)!gKx-AmeJk!a;(|N4@q53Y=gizYA>4lazFxooERVO{^y{~v7F`W9oeJ%#2+?eWS0xuRdOsK68k-c9#rTF-hBkw7%Oi0^gd8$GgA zBPlJ(H*k}oobDmKuHV3$>puV6wJ%*f7>)*77YxC|a(q<3!;8t_e#|GoK5JA5s~Jlw z%y5l>oOh|jtAat!chi1wnS>tgi(@M?H>m?GQ+rqlV|5Ir{_I|FGZ5@HxzhD3xJK5p zq0}fWTa0#aDAuPxR~qQExS1|`#UhC_G2l^beRAoyAQ>}|=0$inUM+wGaB4Dx1b|ZU zn1@n>Ohqs;QqlHJ*E3Y?_rCvbS62ocj5>dN@53<_fKoGy{1^ZDCT6aDt(lB9C9otB zQtcnO-G9Q%_->AG@rTS_{L#`P9NO;czko+9Jdz{c{9B1U|MA7>+Z^dtj`Uhbx+9rJ zZI>f0>_z%&NhkdSBEnDT$D>tw18XXid9wD15`?%5_6LT`oXP4TSA@kzERM1JLs#k= zEU&fY=$*T;Ze$U9L0sSmL^pJ1;D#X`U-<9j&PZ4S1(|4&XUjs=$(%6Yq9{&=COC&K zV;}k~87w80Lc(geSu2IAa9JHBVgTKuFbkpaN*FGf!wePy23UKUh>$12YL>ow64Rsv5)G1QPpuvFvBGDA zHTEL6wEE6E0_zuxxeBl!R{{286(Oqln!s1LutGf5@_6w&YyFPzc5Qo{C~5cm7GFp0 zN!uTb7-2|-FL42{ZRmtfiP%@EzaUM`K-Zt{QJM!(L5f9Thw={GKZU2JQCA>y%-YmL zuP^;b5YL71Q8HC{BmjZIzO~I*gkse@Wo5^O*hh(wu<8eMMpd8@)W(aP`BaK2{>+!R zU5+=rKexU;QhXe!U>FAD^|N$aDr?I>bnhuqfZ_fPWnO+{w!Lutn%>-q3R~9{j(L$T z6~19vxcE(k6jA9pRMQ1g-A0IN3%+te_M${TDT}eYb;)`K9=>h8x#f!Px1ed~07MMw z0w(Z}t&>FT@j-Ywk6%Kz^1p!)j73U>Ag%po4I{VluKh;N>qUQM=JfoZFj~VoJ(*I1 zeWT>{TW3xE4OwHY{TkA+T4gE?&$swJ)@--^@){ryvEHD1a1lbMrJXcx5HkIE9V>vg znc{yWBQLZRk^f!tN*GOUqVF5qP?ge6u?z9tPA;p8oraHhmf^*Wi~LA%k@NhM{OzNF zu)n{3Vv*dLdSMzSaRKYIHsi@x_6Gwl@@H;jgV28``|t_^K6oSz!YGQhNmgtziUNti zOuV=ws0VgdO&qjxJsNjI2PeaZJh$yH)&pOGt&DjqACkY__%WYdP`Zw#))cCMN*G!g zj3osh*X-E%XwHmM{hknF$eR(LUQVrOLvTO%wq1WH}NxpyJ=j3$oxh7T(H#{=(kDq-0 zcf0AlSn%Gzr1d#p>lspcEX&$?630+2Z{Z_JBe1yagDn5RXSt$u(IA#cO+8_)9r@zr zQm(d_I0eOrftYeEnja{kuvWgczZQ3K-@MjNHfGCr$NMf_!c<~B!fJVkv=)u>9@1)- zgyFe-eCM~>Y`T&_IuM}K0R zr2Xuk(3K}GA|?e2qXq5R%l)-G!0m18t6UL@02X*g+)xvOi2W zIFues_I2*^@|~^VE;c$R>jv)N+}#x&AYV4iE^pg3q(e3-PL()*$%(i16m(hK~yLUfcREV#O`YTE|_?AhR*FFVAhfC;U75TBkx%E}FOGSH@ zl;G<_+3hH`A>6^Zm z%XnYgm;TQ8v!T{U`%Ax>A1iO$UeWfx4RF!F=nNI%rKsp><(+S3kHWjk1zvyYi}>(v z=ldQQv>{;Lh#?q33@P%ht{Bqql=cJh3LgjQFz{uZr}JZ_3Hnv^h?LxEw!~XChf}~S z+uo{ddmhum*!QGL&Is=g7oHeX4)RZf4Lz#}mOEO9P6dzdlZCov;qmjb@aQpFypB=K z$P$S6h3JM3U=2_W_`j@>e<}UFwG?RlTfi2X!df{hkC+8iE643~)u;c0^b9MgP02YDA z7i>$n%-_%7_9k}C0m`}i^=o}Cb|5}xhvjiw=6yhZ3?LI6CIQWcN+lJMt?0;F0}d0@ zc!(T&xZSG%1iaGy$5jChjarqyzST3mWvySwet|c%iezJ;E%UaaHHtFU@i)`4-CDXm z@h$$5^-S-7Mc-jX&|ah$e^b2ZK(go0^luL&YE@9kTCRwk<33k{Ri`F1~SJCyfo=lkBg7xO;D^GZuf<`BvFV3g?rMhIQS&I{ zUTYja`$*1#>!51etME|%X$?74*q;9}nEPJRQRyasck@x*_9KP36Q)eR{|8Ot_y6$u zS^f6kcKg*GcGFNyaFEK1R6lF}KN$Km6)7fu(Z~n;b7@a$AKk`&l}&caJ<>@ItX!AAB5 z@nR<*lFxmZPbsx6d!ErR?tLn6yV)@F9%d6tFc9==lP&ANQkv`vL;ni%7`*;Mkj|}` z+-lXS>(a-3i6>wjekv=VQefUz!0{i`mLt7AnMOE*WhgDY&d2f^`bm{|ZpdpxzUCbrB%ClvZ*-(LCDV8e%kZT$UT2()*TA!vS%exm zK+f|63y$hvEf;sMegg}$&c_xa@lzP5bw+)*6Pj<<$#Wk}eHFe4dB(oTDaM=0NrsxG z?K(fmD#uFzi6i*|iJ$OThI+m7pm}&}4Csog%1m^58frBKg~~Arn~;wp{DdbA!TW|C zoK@-oT@{eMl|qMpU!89hF6DVVNuRtz=;1_xKKUjSSI16(ALsov+TbSRRYyMJYCaM~ z&@&w4TfIWe?pS=DcF|N|RwNF38gE!tv>hm6bV_RloJKEW>d8!zRXQu#M?t)$t1D(l zRmK57e8wweAvRnOwA{;h40owYd;utb;z1)~!}?oSU{xiZv)=w%V|i|Z(?HFXd+<&d z-QJ|V!1GIp&{mO!?hfxOF@rF?NGjL7%SF6m#v_ITzC;I?dZKZ7h5z;>_eQ?ypm0Ax z+&LF_I?uv$^0f}a$<`-*S7ISKUGF{DU{0zA)j9vKHP|0_?pA|;BevjMjV*)CYk{So z`4VdwZ)p3*Kkyj}><*Aw$szAX4tZNI$3;pLwWoqx*RVf}p)uK!S;N48Iu6C!?V+4S zE~OYfW*@}iviE5}=FY$M&L9gGaf5S!V07@Hw$ZNj1W;c`-thmz+2qR#=}aUJ`ui3J z01;;dbU!kO0_DsUSyog9s+fK36s-_swTz`9Qv=vhPg8-~%1V~5^CjfNG7zY(0ttZ{ zjfLpx0(An{Uw|)ij|fyYpDVC!y)mBRNDcegwP1%>6ns!#H}v%Z!^_$BLCq84L)tNRp zb`jjMt8|O+vYU|ctv=?wi?VSz;dC5Oe@_LD743y5;J~P4MO*L8F-yl}dO=BMUfI%E zX1)wkg|+OVR*{c*fA32ZuI+zYDqM@nCtftpePWJReT_{HU*qrahUD#ca?Ri7hl*4{ zGTQvb?S+510l|($RT0!@(F+8E_NX#*yd(~;zeMQuw^a>q@B2F`KV<--UyI^W{tB&K zTh##Tpac0Jy6uS8V*_o}d?Q5y?85FLn|+BJn8T_s4By$LLRR~Tz5IwST(%F;DiWhJ zE6|@W`hqQks*twwwz*~ge}TLFcM)>_^3qN7eZCgbjN$EGMLdTA;a=YI_PPBk+ec!w zxYO4n55r)vBD1sogoP`6XH+IeR$({Q_!;GG6}ACFgK^!_>e53SnrIZ~;NEQyV@uAHGI{jg%s#2rM)-H021m&&Pjf4dX6)F!StN!+KO3vpX{_zA>8 zARp2@Z~2LLR&p=Sd(lFb*!ftN1y&CHcjdsRDj8g5Xp`F<(EX)vNB6NZ^Q|%MeLuaX zcLsW-I9@i^F(0Cj?3I?Xtv^PGS&>NkwOBYIhGoQ^YFMhM&BG}jC@+pU8howfZAZL= zPd42j9n~saN9VBZYB-!-L0XfKizp9_+%CC-g}JvHw~Z|yxKl&(v3abUR^9mAnJrMKnn0nrc?WY%5<))6P zT8q^2rP&vj5BwHYti&90Gg+$jGb0Uzui8CV{FSWjh!-a7*Y$V2g0*|SKDzz?STFFc zYYre#rG&NGCu)Sa|{oQ72;}-_j;>Sj(!N%NO={tJ?j>193>A4vJZ|+f3CSLe-X8OZHNB zZJgbRkooL-KW3(NmvZ=0+IqC6%BPpx3tzfg=A6MN6(jaj3xLQ;C%?QAWQR!DO?j=u zr7|nzO&zl2KbY#i$?~P1dp@5V=W`Jr)<@U&_~>)>(O`vnbQ@weaQD>z?mCFe+7sQM ze(S9iA`?e}SF;jzWi1{>SMT76~g=t8Mw*)LuCCD&aeNo+R;`&{MH^*Dv`3$!>(-a|;Q_G&B@;+h$OE zn{`cZL+u|v79)HP4?l%kMED{XqRxmJPeIIhM|P|c-5-N`l#w)@O7z~h{h&MkEK2n& zUKOR<(4mE8E$b>){&u|DkuJdSZ>-O5X62KCObuLa>m2g+wyUfc3rK`@?~91Vo{!fb zlCvA#=JR}ue?ir5`3P#&h_xJ;V}!$JWR;Q1OWy-y@Cy0&SQOw}vY8nSbj(i6e`mIx zTS8(VVwP_8@CJyw&bRFCM*a&q|!2Y-++10@H#dcEe!urN><9z?3ZPiN{rz^f_^W@ zjSSgx-uY$?$m;tVpvtBO>WYdc_bJ0fgZ1!DI=mcC@3O3`4;}C}JGk3+%WlEltG@j% zx$S2B7b1W11hBH}AM|9wn>kXaWLwZir1*&pIA_{aDO5sBG^vShF{zw|)jaYAVbDpI$YAyje) zQy5+rPZTa{N=|>bKqWY~9dF{Sd~KWmSVgZRU6f3tTJlWF1`G$w>$n0j`Xbq{m%;jE zq8M7X%ev6icz_I}cOo+BTiq(Rasxtc4uyfE*PpkMS-$;~-|@^rq{4_W^SRpUK5 z__Tuo;I^^6qfn0Uz~s21zr0So`oaEtN&eCPJ{&PPZ|&b#6U+MZy=0uZqCdx`NUZ4J z2Z@Tr;Wu4r-Yo3=0QLC>FEgPYSkLhep8sD?$3hq8LC&PQowQAB!L0Jmx4o5lo69k8 zR+)$Qp|y0@aWpe7Z#Gf@#~FE$Yw4Y8DVt3nOf+bDO9r$E-CoxxEKt3{I$ zOe(gHG`2!H+EKs-pp+5?vEAvdd;-K|qde(Bsja_syD!mKEZn!4&cSB_GlpP+_^zt) znZ10AzGpS~!tlc5Z~@z%B0l$BzOVHVa?ixKaSwI_`W7+N@(t_wEg-z=jC-EL2}E9jU+i1>Pl>Re zy%lAPeXX}i*~g2e>~|=;K+3*`vV(jJ8>MUwb{zh05EcPR*(U}`+3!*RK2rAGing2j zuf)m9L~w9<%MXKn3%`V3m6yKZTe1y_io^^&8XuEseSxPptRGB(%x6wbOwJ!%nfYot z0#i#KV8MY{tE+8Q!R1RP=ETJs%Xk?>b{QRTTe~8OC29j(p&OHtJ4g~F!^|O+Zt}It zyL%9ojd-T40{RI;u}rp5N=|epJcI976Rj^e$t!%&{JS2dd0F)(Ntms^h@*1!P7)w~BAGvcsL zJC`I5or#;SRcB%jE^oWl?!O#-fO6$717Wl-fFg$!9A7`_8 z;8rJ#<#R<2Xf$m)i;J&!vRM3~J+t_>YaJ|JzzRTG(5agcZ=&y-qYR7hx!l3x<*Xr? zDR;Dy#lK3}EH2|!EEY{?api+OvG`03-1o#{#UYDFu22^9xnOakuox-fG?*wVpE&zq zD#s3zpza8k7g+<(bC}ibhCEnOgl~ibx=+w9ORhN0Djup1P13Bc6kwXw7q)2EDrU9y z1D?0r>i3U0+X@r5Y4R;?m6UJnCv}b1u7uhVCg%sRY6DocMBftz8_o~=lY{e1rQQ|% zG7H&$Tf5D6xoa|8cf`#r19L07ex2slf>(#kT^8aDEU`d9c7f< z*ZLNNqc-2rm0_7HIMDGf)koR06J6RtQmal;ZhXGom-rMc*Y6unfw&JzB*h)`gk+aS zX<5~AXFEiEE3ZkFAxAGu=KtzB7%!iJdES>e_uzv$sKDxR%pEZZ{Kh61xu3q~C&>Mz zs~vJbEhYCQD)(c5W8{9sWe&MtVB~(9%KfUPw%p5oyUG2V_x2?B76#;dl6%FW+&_1f z$~_;da$m*Av(eF(!dGalG`?^gnIfz5b>)x9jEp2;TeOp*joBm!>T)l)ru9@0C=A8X zw>mo?6B_xM#^LSy8bX92$2$zLANRu!3{UY5fRmUTC^@=)dSk`GSfX{{!FuB>U9Te4 zKIFBo4UEG7_&sm5i}pSk>)#H>Gv0v{iv_(}bQ+6pF-4QrIR&8m8%*EovwP_$=UzcF zOTFG#y6{18ZrR(_h`CGaa=CvjDmjSRR>_X@t*#rGiQm}3Ec}ibh@ZxRy~;b^g?M{mtFtF#$DL>x9fHstue{_4?Kh*hh*wK?{qavsdu~1WT}IbrTXlL zQs?f6Qttry)vo=e)N5THmfGjN3a2`H?nvq8z6(rS|__w7dJ z;yZgHb2%abd$KEvLo&}7AF5TNxZ7@BZk^rJUG1Y_H+uKqwaMQuHim<{6hr#1xQd1r z@nJg9MIJHn2;Yzjx|r;ASD8#P+BWkFEj~c}ZFDjyMn4<4Uz>wv)1;&+Bwom&EjHH#XE&}@-O&@*&i3w^Yl=gzjS>H+RW=FVcB|EQ z9Re&XvDZ(XKN(+<_tV&8A|8kOH^PHOJPtpe6D}wHu-o7kI=^ zo(+LYBnsC{aqxu=S!C6NIomKUG!;Z;p2PYFxkj4#U9AkO<^$U$SyaIw8){!hvWIsS zGnoiJG3mSKIz-C!V;!aBIWST(Q<&Jd|9R_ewpb%(N!O5Ly0srwT~ zKtf%@GeShu^YyF3v@dW_X?BqPtt?OxvY%x!^?FEl_>Um_5i73~vcS!J8Kt%5Au*=E z`F_A!`c-@Set_q>iwHUft<+xlPo#%neH#~tLzBv=2Fu9`I6q;o&S~&-t>M`s0CTbK zDpRNY8Sa4}d7BhP*oRXf^q{zwr=PXagkOvKm?>oY08#-PEP+Pz78f|#dN~2W+y=g+ zf=#sP;saNz(6RxrcpIiXQH5m-|Ms_;o}^wNt&h>z!4r5Ivp zK0txdUI%F4KNP8?@1jO5RTWuDeu?%am;o@ST!H;$I~tGT~`krGlsy z59?|Hsk2PvDJ-4|<0DgS?MS4&VOg5Z{RzMlELZ6JF_sZXu;ATRhcOdN2kK!GIi8ww zVUj?3DHYFD>PQTfukB_vV;#)Wx#O`%0_Ap6w>ZJ4X*_@1sx&;z6Dm-0iAXx9tl#_- z(tU)HZl`>Uy*r+xqO|u@v9{=`3wmda$efi=+fxSH<6jr|SS?@e*tOns4=!a|-^_*Q zap(~I{38TaOn53+lfA}5V%2tr_3raOh?;}7Vj&A#w&X*_Pnb{E_!iwxm1^_M!b#j7 zkk&D`W36?Db+ftMn8-Fy9dGyiI1jfYh^&h{3eVKr@4Vgd^djCqz5DIQ$nF0!x68Kf zZG{8$_E)~+xX3&mcSG`E9g>NDOjxJqXmc007oJZLkRVpP%`<)zRK9~!gb$MJ@Xnur z7G5HVFgfjgkHlr|Y7>3Rpkq(}9s%*hFc{ky?0;hN7W5vB>J0k@A0R@eZ`TRhy!*kO zORjW~=VfhPI$CXLk~@W==g8cxXdKq;U6cWHPs2&vzTySP?f7UzhUMR)ZIis+^UY>5 z_Xge$=C;f2g&*Ri^+P7B1>T@)kmKzBxCU(c6wnAx)pVFan@-g*9B-|?B&k2R3#wCi z)P1bpNU2`DAF8%5POSG-&+VPj%N8;)?#ET+7P}!l!CDRGbW$& z4Lq5yF}Py==MiYvZ5Zz)XZY;?gWtcI3f+ROZbWZ~ez};Y5&TegivQ%b#y|A6D2g;j zi9c}~1OjWVgvFFYM1nJ{uQOEqz&luQvaA?-IbfYtiRW)?Pd+@Y{}TPagw56R5gyuz zP6Ktom{JhX-|*!xz7`AzqWyfl2KP+?K*tWk}*F6k&orMNU)i|AB zqyHzrL^m-*kYT;OOBuHtPfGESZMT{yq~nkJ3HZNwQ~jNOc-79y@>kaa{G+uW z{2%Qt^=E|JIy6;((URR7UNrrOANN4yWY%Kg(@(QG(SFjLXte#=W{0$+7dqRE6c+Px z5$4%!N^QP=Y_)Ij_k~iBR)62(hg4o5n~jiE$V&;{LoCLeaIDaumH<(woZLKedG3XdqHG|p$C}9 zPYI66MJ_wHqI4bCA8-+=L{cFG>IJ|3YHIv}@e-;Ed!}8bfY19I-#?X?2UW6|MGGYb z%{mm7?y7X>-~Yj0Uvsa!y%x0{_uU@U_Sy%*xjowJS?8nuy4h;jXuoJT70X5gbSwmo3=Le;vO-1$@MDqr6D!~FDe zM7R=t;N!3(W0(DB39R=dUEX<5cbBfY4}eEYjDby)Z{OmlRKCh+pWu(<$CfYe{Q3Sw zZ(ORN)snB2ock0w7UR%t-ZL0&W#c`H-cR9UKJodfaTg~(VYSGY1uxqY1{1};8e)c< zC*!qR5XE!rU`ij0L;ko1#%KxU&pWRL0*5905IDGQ_%a={B7d4SP(a!Co@`yTW!oFp zrT2s9`#E{u#lFqZ&I9qhs7euP(r3HxzRC>W70}DnE4_Ox-`2U^*Eu#LvlH~$#kId^ z&!BY{jNR{-{zU97OQfE^WNZd+kUV))>k z`~1qbrz!__mT%t4^~0CFC5)TXk00Gy@*iYmS?qUMvMbA>ALQlCXUp;F@Jm-R-PRjc zM!ZkX)}He&gF{+JXssx2F~3wC)>p>;MeT)aLL4Z?%l&*`JlOo)i|tg?8r11K{h=Or{U;#$B)i}i`37ROh#kH%JjFZ!DmkD5BUmyK)=|HOyytP~4Jrb6^~DQEQ-#4=B1zPm3Qn!IO5Rr12;Zwn%oGyC#575unTutdwc>i!_Gqy@p0uk;PsR(W54&C@&r0Zj zPGLhAvndDg21pmzh`?P<1T^+EGs%_bbvuN8A64XT@_r+c)Az>!ieHFBqAHmX#Y%>c5}xZ$ zjMiYlq)`^-z*R9)2wYNv@#e&It8$3iM0<4*`+&cY}9k2{Z zUw^qZHZ5-*K?+8)qw7}x`ze+!A5EjaPNBY{B^f?X*H^F%52uTQmvZBx4}2+C)sOpi zOF$pa0$qh?wJVgP3pOql%d?Q3=N#P`Q_Vm)&pLtHIxX zVLw0YdK(T9;tTL-P(Tv?}n67^7t=J`oNyZup`3l+n~+pKt8{4nkYT9!~M`EyFIN>UsJ=0_M<<< z*5!-XNMrLMn#BfKYVek30VMCacX@H!H3-REVqN!|66#dOORyM#M9^uDA1;gqC|cD8 zu-#Mf2-~*s1RmHHatn2Z{GCQs(VopJxCN|SO;+yi|IM1-t#3vP!Y*fH|I4qbZ){3b zN+t>v4zIxd;bD353?5KaZC8A(wlml+fuQ91`Ja+tYw^t(^0l%8-SpFp9~|w8`3Y~W zJwKt3#r(uOkdgJCk7_tSaaHFJyQ~{?MfyI!$q{_{CD>q>0b-#6AV{LS!m z;k`Jq-m?-|5}r1sB|KN*yiL<*QHH0jr)~lR?eRmxbL}0f1S;nH;gOE<0~70#ah`S!DnC+8`ycSGRr^pEcObLv!BQeHQg`Pg_CIOy0@2pAI}-XKzp54ZMPT3 z%7`4Jy^e;culJmQOPSWKE56@ly$vC>{P#SOdxPGEDZV&MJ{dn9w=R50O6`*@^^{%eR4oOO^3Mt7`;{S?v&ZP zZl=z76#h2t^b(%F230whHA*Q}7^l0=L9d1@z0{J;L7(Q`AbnJY**K)!0+c?H(AHPo3jvKIkHEnR$&<+9+2zd3H=s7K;dbaMGIo z?$^7vU1>GnfXbi3Zaej_n|~jiB&)B0--5jt8^u}_PlBGG=9xGyPL1Zwxm4as2bAl`OQ>_SbJd~IrQzz z11b*3m%SV6RBX)!G?|>NpoybAc0FwP^7QAOp58XRt7XSU7ah>Dqk5jVWykp!Wwmr{ z1rAy!#TVlx;;h#?5p9o~iqeZ%XYx^3icI`ppEr`vJDbldP6uO{2|~n(nAhT7?>#*4 zgX?;Jo^SDyyU8DE^w)00n&t&S^)0jT3x0ldUXqdReP2eJTlf8YK73fX90)2rD?6}a z$JfnJ=H3|NgXjvp^VdQLyS(j5ES&7+ThluqrxLA1OjI1Nt2jOb&b+m>?-&jJd;Z?h zYQAsU`3{O7xPR%(u@P;sTrVnJUX&UD!@oZajy2JoOJ_%V4z}|W0FgP4CbDKfN71W5 z-7)%@g*LJRawfVT)cFrs+vZ!7O<8f?Gg?YmE3SobuEC>?M%(QNGre73Zu@i`2)y{C z<)pLiF0+nIkLXQ)dye!bMgDek>Eg#(l6}g5p%Uvo1t@^Pg=gez#_xoVcu_(eA?bUi z|Kb^I{`(rJ$GrZH=jzDzOg_EMa{;HKvA=br8mBq*q8H#6$_o0>Y`i~263bBLi3iyi+j`=#FXXd7uMx>&q$HD_t?qRLm#;&@=7Mc3);=?!4QL z_AJGmy$4KZyAQW9Z+6AJ_fz5L;d{U=bF|UB$!|-y7oO&dd5&Uk3HD6;mlJK7Uv6Xm zaF-kHxr#ZeJEm#(wGPY?Hs)JEr01 zqo>*JezlG1amDm0<{$TfxzvF<#>Tww4maBW{*lmr(jG8JI54;4>(}Caw-=u0idnCi zH%;%EpI19DSJ;?&u9*8M<~7|h4L@TJOuvo!(Cu!t|7)AjUcLv+0S?SBx1?yVcEy~b znBN4t(QfMbdX?SoD{ag|SIl23=FNM+T<*ZEurVLL&5ibT9}4Z0_JBFrfw|+k6zu_5 z%x1;R+ykc9fq9dSxwk9k0g8EVUC;b{{8XEtRW{~7Zgr!5LzmF*>5ggieWe5Qdu%#k zWIpJM8CA@@?wF?C>l~Q3*_eG@F@L3)YifI@-S5DhY-4ub;zs+wEulTI2h8s$*!;|} zF`Ha5XDjADd%#@fz`P5ua2bB?=ZbllV%F4jqusR82nX#`Y|JNacBB2-4}|ua-7!rY zZFkf&+s2&fig|%z{%Q}HH#sm@J)5HaAXm&^E9QTyyU}jyImLl_u8sNRO+C=gsUY}| z{j4qY^b?*VljU6o1r4vFC`Moy6eOy2P%z+kGALNgM_@&+Y3K$HB*KhXU_?-JvPuq? zrFhmqlcIEzvsMkM5y5aB5uBj4`oU1DfU?}J-LszqFm40(as~Y8Js~sRrmRyy3AA8* zG0v`Ge;e?=zd87}TMe&Kz^!Q{bL|~SUg7}U@}CsR(_8^hQNX)QhpRQ@_zZw2Isg~i zfIe5iod_0z=evyMQ9ubewR^rAYm+?02K?uZZY1BPfWPRehIcstw?3UBxycpqOa(kI zt(A?~)H(n!vjGou1{~)|d77pe)jP}qm}>)G;R<-60$%$29>nI=Q8o`(Kbhj;Xjj1BDqwiN6OeC&K(PPf z01ViGpI_%j^6OiLymb#0I>_74T{W+&@hYjo6HE0B+il zBKbU5z>^j5j`N%~G$emlW|Mr84cOZi@as2)TPka>&=$P{S=J+C2P5zFsY@-0BJ#Qo!rZbpje5Ug7|}#Rfdu z74RSh{8yUT7?MXi08h68-~Njm$xpu~B&ScK|lqfZt!`M)Lcw2+3>Hz>trX%`hL16(*gJ&>`QHiw`aQoj#0oT(s*cEdF}Bw59ir{d9Hw8yeuRS zPZJx{%FPbI-`Id_|Ln%Y8x?S1Pc=Nk0r+Z1isX7%z|$1)%`==lG$gHUp=p#;9e{tc0ZUu~_gBCN(p1lg&0Y?`i8kPWFLxvP$rps=1JmTt zXv!1AZ60RYfS0-g&QZXcDNY_5lIJ-9SK+(XhKDD(0{&V7_v;DpXb0d_8}Oq)xsm+h z^Fs1xX>w>fsSl5{N#4r_yv7x9kpkXxnv-PH1>E2O{Kumyl23639HxL6z>v1#Qq zT>(cbU~`od(C~1P18}YlnBxk#{W&4|%Ctr?JRIQw9AE=JwA_t{*DK(2r}j|8FOIQE ze(8}E$#t%P6BN*Yx)ac7${h~C#WvtRu7E#m7Ls?R83zMc?EpN+27K%?HENfDH=Rl-9~d^^SA^uCxJv>k9Zw1)Q12Lu0YuIojso zsW#y22{)40KPx0}OY?1vJ^ZT!@W(YNlG|MY;|lm&~#Aeh$EMZNRQ&ZX|DcMo6BK=40#Lv7Tp#+B__<0k3uiT&RF2rVV_Iv$WU&_{i!M z4^MUl9HM|@Lrys~qtO!_fI%DZ>vlJixBf>+?kINx8eRT!h)r@o8}MdVz{?ac+7sXd z4!{i$rAVIa3V5OdR;2ZMMpORa0Gwq5X1M}>{Irmq>vxiDI;le(fQQ?F_g~`1!xajc zon{Y>V82{q^YHlxQzTcr0*+U}M=G2(G=P^m09$OpB3Hm~|1Bi%o!09a9!_uo4z&UQ z)#gU>?Fx8Pn)%{u$#97a9e{5=kRmzc3OGdp%T9KZY~=9qqih~7w*e1w1}N20R>!=CN`!|$#ei-YXc5) z1?;1M52v|v#(b?EZ1b?f27G0S8_DaQ6p}wr6C2Y7G&=ylyDvrZQdhu;0=|$IkkmaT zJx4eI@2~-na|Jv^0nhHKhHw1VCiyHI@cqSZByZX%B)^zuZH!=F;Q;j7fLFQ#UZj9u zqy;1m$>SY>Yp|Q55t}itfP)nM-`G6dd{2tx-@5|(74WPych1P+O%A{XHejJE;5SbQ z$%mx%%f{MV-~c?z27I)|jpSPt@P{<>W#n+E1MtneQzXxD1w35=ze#gA@g)%UDR~aS zgbldAD`2()c8+#7iWvoL8e})h2pjOpg>EE2@VM|WZgT06fD6d}o0h$^UswNbXAGp;5iA0X7dk zHsGIJ0p}^;VLjDwr33K6J5oFx=?eH81-v&c%wo*fYzJVi4Y>UxHx7`6d_xX_K{4?2Y8 zD@Qs3jo3_b0RGAbyvr5v&kDFHt(A>|&36Dkb6bk!b6f$(D&P?(IcsQ0?mWWg;d~n~ z-xcu7e+kLQ_Ef_;4!|RAz=!9%@$hd7_;H#&G$bG80DSG%6v+*)fD;w){t-@+je&jt zaGT^yY`|Z-0%j`U^qv5(bpV#yfa~YEk-X}k!o#ahaMsW?%47$ibxVrmxGUgP1+3@^ zu)qO$l?~Y66>u*F%zQszLuuTriSM^0Pnjg#lsU_0S74HX~#KvXoj~3Ism8HfFI9wBl)Gj3(0wD z<7Lz9y>_V0L!S+}!WD3_0v>U!vxa7M?q3~%|NL8uZ9|9gL1Y)-WSpO3qdync<4ygE&6j6qoF z0Q~X#6v-{FfN=$U!MGn&a{ z7_~2YaDR{<|hvo=O- z);R!AvH>3tyOF&5e&ONoj&`b^@d?j&0Dkh<6ve{KE(-WG^N@Bc&!b1s4HL} z1#CXb31~)7MGn9U8*p>88_DbL6OunX-U(>BfLsUQcYjHdyucMOVgOCJUR&98Qb#xd z@2~-nas@m@0lzbIc?xKFSm*#e%LaTiJ$%0^aRMQX~Yd4tbj|BIPf;sT+*Rce=q(Hi49cr(&?y z%1<}A%J?&fn_6M-V$UJTr?eOTnYSd}U~Edl%|x(m#Q=4KufA9Kw&qADppm`T_f@_T zaMM*OGRL|Co~(cahB*O^lXECfSImmqP!;gRMtfArI5e~o)uS}6V)fKQ>0sor@Xh?pek4^GlY{0#G0_3KTq8&vF7)+LT z(TmDA7v ze&)c>9Qc_7KXc$`4*bl4pE>X|2Y%+j&m8!f13hwp12k?*nK=r7bQ8NH@UmKW+v_`_^Hvkj<8uZHvS z6J+5a3pWy~F@m2amJ9Jh^9=s*YBTEDD-6PVg;^wwD))*E;m=V14ChZNe|TF21ow*Y zjwnH+#EXHzUbA_1Hm}ac)r^d+=}ocBjI5D$pf785H7Lp&Q$3fzfm!?wM({f}#Prw* z(8t2t2DPJY&i9?RXnTbaalA_4qw~@@W2&Pgzsz(aKrXHDF;@bsf)CH-ea~Y7&fJa3-s! zn&)exEK?Il>u1$ggMR$-Ol>_Fl2sc5^;xxKNmgBuchyCCCP1cV1q3HBhj&e9(~wL2 zjWbd2dWO7HgFAbNQ56)#S-+(wmWy9i2;N zW@N{LO;FzKK|xAaHslk+mpw9454p%5iHkUl3dWcl)!f{O!|3WpIq0>~u^8krdrWn# zS`PspnnOH{Z4B`Cag7wO>~WE1$;Cqu!t9eH&5+$}e{-DA8y^(R@xc&8IlH2{b_NcW zO;nTY%H}$PRqFF5R5vj!@Ja69d(f z3)C_jX0xnhr~l9SjAD84S&ajAjR86v=F;GKrpn=9hy!y|J1mBD*mdf_&qkImiTa&5~=X zmI^jiM|rZTL0H}t43U&3eR>nbhB?uD93qm_$A%z8xE2D>v%n_rHr4jU`SjC?(o6zj3-AU#gIM9WP(v`osaJXnvbKGO5c z`)ax3!_Dy!y}tEVdaT+@&oB4sanc&Qf}&ZP#)u57+C?!*JIIiJ#IJ0q8d}K)?9DWW5$ho+%#67SF%)( zt4`Kq$HjUKhxE8LrpM*gdaSxYj~NYm+*GE=RlN*7ADeoK4+(v-?~eW3#KVQw|dO|=6uz+=K9~X{W>!AdPiL4qpD5so3^i>U-h*qe~9KY zex=9lIeJ{MpE)1V`-{SQES{;y45LTeKUCZjqelz!^uARFZ_|OA-)f$})#yjD(W4Th zM@2@DR`%EOD~nZsrWrljWcXiX^r*z>QHIf@t%i;wqem;hQTjRz9V*%jUE*nJz8nxtH|h4*yvH2(W4HdKP$gC z{4sWJm64xSMlZG-d9E^gRATgKrLmLSjr^}l>XXr<1xEi?8v8ZP=uw8zqYiTn8~H9V zIANnln~WZBPs*v$lPaS}(~KT%{jb)4H)xd4#5kAdu9^>NCc}7l;1>n7TMm7fPF*d>xV+kBb@je_!H(qfrdLBacxyh@LTlM!LS9v7uN5p0H=^%y>2YV-H4g&AfkHFu?H{j*WsluCbYJ zre_?SD?aDs(J}_}l-EU~%$JAi0&q1wy$)s1oH&kWYd^UsU~=@ogV!o}jTntYWb7{+5HQVp*{+6DeZ zs(os!Ya3V|UM7@@1_VU}`)k?B;@ z!6O_mIm&sqBl7jN;#Yg>)ob?9B`(2v_{8Dl5#uIizm)sbopAUxq(8T)%Mj;6cs zp<8i1Rv~S@MrZ(jTE5@)!>ZAETz8QHTZUr!UL$JhD7S$tREI zu|fP&93i*N2kR^2dK9`*?OHyM)hGSY=v2Dho@lI^BMBZEx8YIb7Tgy3i_Q)NST0ss zP0!jBGxdoXxrm{ni&Y*M7li^j)AR~e~ zG)+T}Lzhaz;i$AoMV2RA4&BGE7LzGci{OusNfvLzAe}Iinjm zNI+uj94IBUJ7-*Tq={xH2jlK|7OV|x-17E6pyh!mCjKlMm^o7+ zKtZ&4PIYZ8I13_`gJF0xgOEAZ;V`6w{FbhVG zcZm&?gtR-(OlR-IGc;R_N=afS$>Eu(oWa171H~Lzf_lbAbLwlSiZMV!t!YmEbi)?J z9z@S`8Ul@B8ibr+s6vM5NMOK70wJOB5 ze{#_ILcee()}V$xCl)mF9BZzJ^z%|=E~3^<7~`4~n>AIUBRO$&LQ*j?lYBbD3Xl^f z>ZVr5DThc%xR?pC^*OTw5ojSV1tO>k6U~iUjoF9*5il1PL3?l+z-Qz(M~@23VMxW~ z!O_M5d-h}=?u3LqO&;-6Kp?)7%+Cck*#ssZhw@9t!YN(UAS{^-vy&O{7HK6~)duq%)Iz*)q#6V8UwDrG>gnj6 za$)H;B+b<6K-6>EvG812BEY$mV$HDAto@{Tt$7+~Wh>(xD=eKs?&Qeai4q=WN<+iB zWJMk4X>!HCWiO=e2r%XlXP*;K!L&2EOLCaLvG)Gi2t6?O>Qs;^<%#b5ejcN&* z(g-J08f|2%xppe#JQw{4J9VTm%W_5_f|w~%jRsG6E7Gr>3iK%#7PmrruH2frQ#It5 zTTADcN}r3^=4go*=d$-vxk_nHZY@;WXj42A!A-cMjxrZ8fDLy3%_Z0HD~Q|r$=x%XLfR_Zd#Xm zL}kTO%tZ<&l25Cz6&Hl5Kx|SYL*2QIf7jCz=GG@oYA!oPMS+opcgAM~L!-6RLdx`G zxxwgI9hKxV@U893X!lg%b7QbZEl;j?g|NRSMXte#7$s8#x!MV`e(($^zLJWdym@0z9|cXH20ur;*<3hjlslFSOMjn@S*5wrX)u6x3RlCT$&;80h732t zs?$6-qh7<@xnb3Aoa|)l+psAQ!##7>P_XHC5)@G{q5sq@-8MjRvRUA$$f> z#>%5nQ|IdKb4g?k>qk@p>2tlH2Q&*PBP>omAZ-%hscI>j~u1oDvdnb zGOD(TskzZf5}jwtNCdk$ZA*4uW9f9}!mJq$KuTv|a?#=Hd<0W4ynF`TL~}1v;*92^ zi#2z!vjsTHv6BtbAI;?uPdPq2LLZk;o1N_D*)QheFEjJv>we_BO5Q=|3^)B8lI-W$ zMVTbEkx3cHFgcy^4=o@`Ex-;Cf0-!I939M93Ckj>PLx;rK!^?sjD~`Z!BiHKV;~uH zB#|5|W`lj1mv>j_*^`@-j=h&XTsd4<6o8$qj)77nD<`2D(HSs_>l%CU!u5^?!;LWe z-U+JYEP$bk3FdfDjWq-!dYklbXb==&cg66LN$P~BoW=Az&!SH<;Uy-=X(Y%yNjx)l zP+qiq?F_}m@9A{!aCS0>oYKd8IS;9GpWf5qZL9WsA+QsgLnp(X_Cl479rISpkdcFL zFDD)=WwOj$gDFLI*u4yqsV;iOLWx)*+1MC}P&&QnH82Y2aLCKfLL&-Dh9eL{2(6cQ z&xCk08Jr~{Bqp^>faUR`PiRo__lh?zdLl^;6L|yDZnS?$){W-)he-x!L;}6jVHhH? zuQ)p$bBIxi3V5d@%Ftj6Fe%e?URr$(`!Ol}(B$c^S?*xtV>cBz2tR<>aQp4MrI_pvriIF~+JmKJe1YQ#?#E z+)NMCYb-tty_YkZs?A7-iADZ0r~?m4lBv$z+a&gb^ZVXVO}zKSB_yF?62(F?I+sI7+=i)7(F-QyG1IAeF*w0Eggv5H z`URLBCe`$7G72L?bK*reFg+0CXqd@a!DbFWkc6ce$;oRkMID8L;2%nUHJ_>*TT|HPVLU?4%Gx<8{sT($9OP*~Jm@VrXQnIg-(l+L<#c z1_Zd^3>+9yX$;?*XKQ^qfQzcmi<_gkl9Z(=UI}$cukEFqq`?X=xR|s%=sS|l0&z&z zfz{UT*UO}OxtbIQRg#9x*)nveSS{<*~anq4PZH#QFjEMUPSPmT5bCVvVF6vzk;~(-#SBA`Mi3a%#JaIR z!x)XduBIC$#;IxT{_=uRGhj!VAVyl$XxP3yc_u3&>1b>+4GPmbkfFUvrfJ^tKoVj- z;&3C4zG{-V15D32b#_SFk?Ceceb}ZtE)kP}^qgcAFs~_!?ooT*ywIpglP0pgQ9cxy zRb3kwgN5{*7^$Z`gxIUAqmw7>H)%1^1_$H#6#tQ)iq3Q@I)FSp2~=qvw4+nm<60iF zg0!K}M4nW7o^H3Gz@8rpJiJDqX)4HRKoYzG=dAKX-o8+;N#bAnyH}j&+(=ofD@dXvtJZGpAdZ-gkZ(*lGG$-`Y5`#2#L&o%xD0XzJgOZFkga8~ZrIPnJ(S|uII?P#v zW1N{|ofSPc)uG}!#~zpLb(u+Zqs%w~j&o*)r+QTs8=iiJ6&cPCl2E!E$Uu=ecxFaM zx+8UML_TH@16b)P3kCAa*+Dh|g2fmajsy{(sYONx)5ht@=O`8N2br(SC(qQpq8MBR z)<}ZU%%q~h`KU_mj3j{0)~Wk|D|P6yQkmwk@|tLKqp?5}xr5APS_R_*<)4lPn#lpV z$*6OIOtgA>KrL9lSUd5A&?K7Cz@26)=sPE`NClY@F9aS8%yT}++3fsii}GvgX=2s= z%{S3mu{!zceW>};j64kYU~FI8P^Ghs`Ha-!0%9?|!qK-Go*@%#tdsWP6~x1n6G8cm zqe7Nsl##Ch`Jpk0Ul{Kp zKSa+kmEj~J^?^zoayUBqA$T9jAzwZgNoXLFav&=v%&0j(6s7l~&QU%FHbxY(F-a?P zv(pebOUnR2W**B!rwb1xGif$fx5yPR2ExYyZa$t#k&u8cGqa}hF>D`kKF-jPLq0>P z8ji*lYC<4#COSUJ$Yjb$#vt-Bv}P~>0w)=`9~Bd;#6U(dx<&?gyaG|Ila7`d5M2w6 zqz9P~znOy*aElpgFn}3O){JpFHG@bg7ko1liJ4$ezPJRbVsjDQFfq}56vhO(4i!y? zeK!G8T8~T&Yzl%^u0L68^!I#(!BoWLwc%+L4Yz$5JYl%qO(S=nJ!H-PjWUxF| zS8o+aSB*%4EY&~`j{bmwI;<`rV3p1<5(PQTCzRuD1fobYRAS`{W<(3Lhczqd3Pxd} zh99f9(6itgWg9Eg0ue5jDUfb))Lfbw>}Cr%4Ytmnxrt7f^w8LTtjoHfrvGnZ0*s~Q#_d|AYxKSWoj(rWn zk6uBCqXnGPqe~!N9dZcM+PP3P9tjvzR)8RG9h*sJ>jaSWalb8wowLb7~71b3pO3`mn!0J-KF zRBp(YTw{MySv|J~My^1IoI&lM3PLa`wKGg#QNR#uus+EN4m?L;v15=171uD|7OkeY z!<-4bN+`JiEA3#_We}8|n*Y&$Avqhw9PWdWueI$9a2@A2BKsY$a|pmyE_X_1rp zG7WwsCuX1CBruJOs?aYaN#kjNnj0vkfO6V?ReP+(CIP{e?U2&k)qqW)+UP`uY0 z6fueic&;~!V*I`EKwi~!)y!;d?@aK2@6Gomz11^ybai$0-L1wu*|Ddw6GqnX)|%t9 z`WCp5C5W8hTpn@2Ei_3oL>GIn@QS!GSYzFR=|?Y&93tsGUxJHBB|nkqtIy0W4B($m$HG z6{`6-a=U424Ic`VKe38oPfG-$JOc=ZW6gdL2)@9Yw9vc-M&LhSkyqiQT$uMokjL{> z0@0^({=!>us!+Fan;Sq_Up5zp?W|=109x*HHs}nx8)-b(M9RU@wPF|*T z7ekE%;^D{him`KGHCh3LX7FU_kqyPUY5=W~svHyrDXS-RSnYdgb4Z1A3Ca2o4h5kl-lQ|| zMQ{eeL4q3+JcVGB;1I!W2%bxD7QtbHdl0;w-~hoT1P>s1J;6ByM+hE8@K%C@1eX## zh2WB|1FecF)7U93?nRa2dfR1jh)D5L`}hDZxfZNhY2ntxP;&s!4ZPX2`(kr=tSu!ID_Caf=z;B1ZNRkPH=!=qbH@G;0%I; z1e*kh2+krnOmKkU5`uFGju0FqxRl@!!BK+41eXz9LU4@W2*Kq9mlAAbQ~C+cAh?WR zli(P^Sp=6893a@}Md>FvgWw>+Cczh-P zXAoRQut{)?;4Fg62@Vi!oK5K`ID_CI!6v~Wg0lz?6C4?GzExkJO#MlQVer>_7=|8o zJPc4n_~ZAf;(fY+8w%JkGUDi&;ynyB#=TDyFpM0@bv;t z7x2-ec+rWI{u1$ioq!Js{zf(R0n4*Vd>;|;W&s13f>DgWRlF||^lOXvI|TfsfTIF_ zMZk3he5ksLV0re6_eN^``&0o31Uyc_69sG-%`Jk=ufE{-iGa~o@!{{w6==hM2v}*? z`M#2+Z3j*jaGHSY3)mEJ8v&mx_?rR_itk&9_b^ClJ)FMz0$wTLHUfWl&3Jq&p0<7> z0>7QW-z?s56)=8|Q7m7ncn?zo*2C{(;yo1~8{eoD|9uyMpDNzN^5Qu98RC6I0mB%7 z-1nK{eGl=zi+CRpFcn8z{<8%BIPrb7K|KG7;{7xM2L!!Cf5qdUE8edX_~mpl0PCOJ zi!E!g%`n&340CuZL& zzGj%~YlgYLW|-@1hPl3GI3ncPEMNdFkH+6`74Nye=J#A*GtBih!(3l892NAqzUKE_ zUo*`0HN#wAGtBih!(3l8%=IUo*`0HN#wAGmN&155rtvGtBih!%Dl( z_gr7|d#uZL&zGk?G&_CDL{GRJ;hPl3GnCokXxxQwY>uZL&zGj%~YlZ_t9>uZL&zGk?uz~}m!-}e*mxxVK2TwgQH^)Uo*`0HN#wAGtBih!(3l8 z%=IUo&i&DnSf$ea$ew#rm3IuCE#9`kLWUik$sD*Vp`>>uZL&zGgT` z_=ZsfH^q0vZ6IoQd<|zMiM1>P;OwqyF+RiHx^(Gbul$4e-MV&lHV*(i)?PvZ^T2U% zh+un-VG6vrmULzIr8RO4@oX4YM&Rle zg4IWDZ5S7{bk4S5_@&llSnJ$t;Bt^bu%Lj}M_4eey2A7FYP6#RTQb#Q&5b>P}#pa<(La4lfpsfE_&xEj3l zq(5%Rf%hZecm~&MK?lb5f*>#Kvca`xYNa8<)_GI*8iN|ndh!vt$e@O`iq6^eTf;i% z4mZNV>xuAw60F^TmBMgp*(^Neq6RN3p^Zj0)M8<^UIrFv)PSWUxU$&(-dalHtctF| z>+fL29qxp#F}3(ST-1)MMl61?fCCnB+ow^~z!$JerHB^P*PzwgiXq_R-ey>8F*^h+ z+>suxu1jul9^?H<-=qhg(iBDJ;NiJ+tFAc9PNJW{t%IKoDuhi%N#Olu92 zLt_eVpK*UN1&*4tL}xBjC5-~K4L3>wt}Kd+zy&gK5x7Fv9RW)N(Tp8Ait)V4xCphx z$@K+pns$GYpbuQ!6el`n`W2{kT78%a-U<(#Pgg622Z7D1;+zgUSth{h;E6-%)Vg$Q zGi?4uEasL&O}8u&4U8-*U9HB&<>E!Kz#asH1-alc@@a<*L|7-pSqGFVBTa|JNpMEb zEZ72oej2|3|2-?8eFa1y1Khv>qFLoCeR5u3Yby$`4}%EYUJkp`=gcg^js59VQeg$9 z+Q*n)FdNTO;|&&7+^g)dLQ9AM8fr_VT9t_>0HlXteKI5s)&ZkZAp)#nn0q;CIxG^6 z^8o3X=azRlSM3`}2c=sl99aqjNozuxQ>S=kl5Jy5yy?1PthKrdi@vdT7{tX;j@Ptm z*Uqjr>ku=R${y8t7~`(Pkj|K~ERd>|YN{3MP+ECES4~={4(qw7rmJZcaz2p+?G0j7 zDYut@QjE1T4R}KRNihhRYOh+&c2JRxQH}uxOM!1#8upS-OaYyk2QjQLYgHjqwqqaz z@PtDr2G=3tnr|m&;)Kbt)5{$L24^pTrnWd zcuO0MHU2zYMvj!xkgP?s!{Lw;SpHcPw&7uwlSvEGvDFE6l63}MuhYTXpAO%+b`kUk z3xF6d$@a#$n!~2xHmBlQcFUrs-4al31>g>g0Y^@qHKo6O0!mHG*|_~cO~;p5wJKo2 z*;m#MD!UG^3FkfLg=WK&M%7AzZ}319*djOp9QGhwO;vNd_C`Sru9@$T zC+DiI^)<0JM>B!Ct*_;{Yg+5o(OdEEgbY_%Cew6Bk!@yRySZmv(-)&e$%LrvuHBul zptixN#IL#}MmbojVh2PgO4Z~T#YK&(T`P*+4AxC4z!BUvR9mw$p)H6ZMmc*?ARDkD zX+;fFOWnysWZ32SJg8gy;o(gu z9xCMNR_iLG9k_Kco+~pas)g$K6|IQJ<4JKN2U-rhq2Z1Y9EG=^z=@;y74HWgnhRY! zybDT1bWdadFfz!8q*ryPGB$$86adSaHObt7vx|SBe2$#>H1(R(i+AS6~>&{><8m z4ChE<91m$^&d8lV&$3>K1NFl8JBujVru7}h*$!kfG->ENJ1*qJSxqi(=+qJo9UN|` zWh)+e4Ts{Df^npQ!TAN~UBP0VILuMyE}S?#T{(9$HhG-5{27zFb?G+`dLJTg7#=+9 z#KHbGt8p41H`l6o-EoucMxBF;EpF9la^l$b-M9tzSzoU2H1uFsKWvxB>y@1EaPtCM ze_Wgfw;0asz^xSS@2s+H4U;(Zz=EtZXyU));Uecd%ycYD?(eJyywwD&WqUU4uB)L9 zh*Q;{wM$cNYINezewZG6vPrO!Iwu$F#aiufpH?Q^xdj`fEeD6btfuYDtX?5FvszZZ zPz!{7OD*Vc(Z(6LDhzub@Esf(Jr&Q`gDsW3@1>SiwdLVCCOEcYNU+8>kSt>d*E0S~sG_Q1MQl#af&bRJ519a9V zj2q&yU5YzJPR_%D6|0rudMK|yU#`gff}wD72OgE{L|VqHPL*&X zubfysla4&CZI^KCycOk^oX8pZldz27kY;VWWpW<0m+iuv;S^p=%}{!4tCDIB4nUDn zeaYIE`yBzB>}KHTh#I@7ZEa2#g|IevXmV#brMk9zfRKx3ZRktlC;51e=DF4uJ;SKe zPFK3>Sey3Mq2QUei9u|qtnQt=cj?rFc8#KqVQjaAQm0}$1G(15*hJG!j3v6T3sfV6 zh^22~`>AcMRPuo?Ogd;Nh*+W^oDA-A1qyHsfQEvIB??^~Pr>d3D8R8n8VVwoD8N=% zO)B8<0lO?v8w=>dfR2W)h$XtPM^^K#h^23P*lj^{Lzc$@ZZKJ+p&(+30&El3d^nQh4sfX)tuE z`j$?tsuAV4&U}o;jVQqI3+yV!Hnlr89~*Pl?H=w}wM$mHVuzcGRa;rtrZI`a6Ea=`Ifr3 zkS(ZnZo=T6XV^z;okQisqDRLjJRV3@$F3(VHwztnJiw}s>J#EX8O#mz#Y3r}yI2gzHTb z&9sF><*!9Ff30z;D2ecsLJyLWKImv`d^QN! zSudcBCP}QCnKGWMMI<8RCIR8x2%RJ{nrVyVaI`*m@HAabD)BJD3Pcm_E_wmGh$aCg zr;A|8M1;O6x@(eXO+^A4#8WcdaubnmdI9ki4c*sW?XqKcMUb}8ASFje6H7RBBaSwG z-CZwWcfC$rZo_U0fFyW=lE$B?Xf`V>_LeKaXs+G3H2_3<>UDzsNw-c&?znaa4c7w^ zo3N|nb?h5y(fCxoft*lGwf+JTn9&81C zt+tO74b$&Vm(Yn;75NZ#Uak|ZB(bu>5|CK(a7+#kKRaL30cTjnW8%4j9_Ac21z)=k ze{yw^>f&imL*WJvteY=5PYn^rd*U6umzow78J(~1`b1?|v^*O;vp zuW4ape5WLII*Ag;^mR22(t%Ub63PX}OHYZ#--_3iBaH8!ME>r{z8C3Y`bqSe-9zJd zfNy7*9@EM1G!tBf55DiJEAS8x{Vuj-XEYV!dsv6aS#uapF972m_wDopFy5Bm0z)i!p=yW7F;csL~AZpYSBZh}uHYHM0O4$Lpheb{BxTJ!?Fje44X1&&77 zvt0s|I4H3&T?z|y-0?8hWu2SP^0UsMy^l@R^VQ{~K!;K_X=YJgzM4`4r|rZ~&g)kM zEqPj$=fsC_I%9S|O@27>*p{Dx*RbVHht|9+-jWmi3-~p6Jj^C?!gd?wYs8shl-S)gNep8QH<+hurc6oiArtM}Mkkg687f!s(65&N>`+Ij* z!i#R!q05%ZxoQY_A#F=#0=#f4P30-wFDN72&3_9cuFzP05yQY2*jTf(kK1tgg8iIg zLDfQiuApqop>9BZ%fwWdF|PNjUby4us*zUs)%@{!YfPry% z>4tjMVpX5y71pjvUJ*e@@5Aw=-3j1ntrLa;i(a{XGdOySAiu(^w&2`qxBy43d2_HF zHIb8P8ywuv#5ps2h>YIF+2CNBk7=aQ75f$I-5ATpp{3wn%VZepU3@IA zq(OBxN}}X!uv2*F=nDoBp(e&T3rk_nyTnxnjhqqu5is6Ab-uOiQr*AQ7(Gyz9$lfq z#KfJEOL%F=Cgek7cj{#^Y;21#6<%rdVsb4~aO?Ze*Y1gt!|bupn+dTRU- zWMTqOwbxz19Xu0ZMh}+e=2_-M1G=Z$x#QF_!`xlgQ*E# z%P>yE`p{F#(})MJK3A68txJ2QMlb^B3)}>dU!?m2%|xjH?s;&JDv*yev6lB1#8iUV zDZ)w;+P+S{8U}r0E!Rz=5&8r&!8T~?xM&-)sn~X7bA&cEt|)^fn{Ef9x1P99^ai9p zK?AfcSg8Q*SCt^=6IU^bUwNecB)%jyw=G@ANLg!h$6C>|ScSZEc5idaeAV1Ri#^@> zrayau-X^ZlBl{K~O|WKbdYf~Rgsoxx=nS_4bwUAx_$sLa;%K?Pir0bq%GHe4+M)H; z7%qylARl0k&uI*iXF5Zx2UwqPT9rv?RuQJLg)&$srY(VBOZ1s49Z+_-X``xYyEbp( zr!kd{)@P1AS)SJE?SN#;H)=m~x-2|8*g~7o$syA&6O%EeEmcb6tsDwwT;l=u#FlFXSRc4p(+nO&AC9+?H!P28#_hu?=)7C^wUJkXycc9wW?nUU^{k~ z*O=%eUv--C)3z$(6UxFcr&6;E1bu6}>7+lv@Y!b{t=SB0( zB>f(gw_Sw{pNzGg+Xnrt>r8jW>?_BaZqmNl?DchGPPcdT;mW?DPWCxd*Qk;XqU`eW z!DL0agKeG_%brZFIIt0-NI74uv(OV;wK59S5xWVnCdW2HUu|~OvWW9~z0D9i7sbP- z?$S|cj)`4ZT%OR|1joR)JSNAOW7_Ae0|!VEp(93?QY>r9ntf;=H@M(5d1z`P%WW2n z=xzO3+O$tBcB;1CW^qxTJMnrH*GIigH@-@XtuH((+~m^0Yf>Tcxf4x3Hopg=bkYh| zY-dAnGqE1Yb{C?GGRk%su~-GT2@%YSS`@In-rade={h?|E&~uIWA&|Y7bzNNax7Tm z3hi1;!)VNKyMzNGRu^Rm)^HW55xNy>1jN;L7^d-;T^td4d9j@$jv&4B)o$j3R2bUD zhr{c>e0R8!n%b@G^x;3>@ZX=W5TZW#OAmi> zjSl}WXf0aLa&P{xUy`#;hrg(mLXVUTB0?%)xj8(i>i!x!{3X!C$0u;FH~xawMO$?E z6Q(Hq=pEkjZxpH2ADt={tIt(!DPhku01kMW>4{*K+v!aDq|l>f0w-u652(+_6o z@B^g3=zqNV|MJntAM5bnr~HeSdgB-V()(o{{*xrXvE3X0?IW`*>G1cm{qOL`|Kz>g zM|JoYQ~Hg4-ua*3`%bO>pWKM-H|ov5R zo`pL8fmJCMfv6Aun5u9&v!?xXi1N>< z&l^8&(rIVu@aI$hM||*ekEfih!(T!9AFS`q|IL$w$8`925&v*wZ~W?qS4`01SAm&4 zd}2QMufFxkMLPUT$bSTzdh_qwH1?|we;L_d%=E@T`OI&%`M;aXUvqE#Rv%ogEkE;D zsq{x$c;gqgy!cL?{FSd%_(n@_{L`bam+SEF;QaT&ue-d1*8jaj_G`59<{xV~b-IrK z-)ui^z40&D{>5E7{D-OiAM?SV-Qcxg`;T7U`2TJ6#&bIUBbk41Z~W2u zEiTdFcOd|{}c1UFRgQ~R{kLcihtx4Z~o`4e{-IWe>wF( zg0FewU%s$FJARUBD*iDa{GY3A_(sRS5-c{vC-S;Cf8(>p+V=MWvj3P5{{1bNpQGb{ zPHV+K_P#g&Evw3=>hSxS3O{(j8~?qcbgljTNcm@e;En%Qd5uCH|7g16ANj-^KlA$1 z9XkB7v6Oxv{P)k?tj+&xsQj2QZ~nEWJwIQ^|7$A0K_C3*nqRNQ?>v>{U+rD~KYHka zQ9Ayk>nQx_0&o0FzW(Pl9sUrL`1{CTXWOOP{?ll}H$U^%-{`N-xm?FTpT=(j3%%vP z_3Uwbboc|Q{6&56Ps{l30v-O(lz*``-u%z2zNeiIKSuT!Smcd==i>A(I{b3Nk4*C( zKWfrqvv&N(7^m_t__??K`z}wpP{;qFu);UL@W%h<@aZje_}^3}{BOMR>%B55qQlQ4 z`wjZww`wp-+kTxv_z@rc2Gw`9((#{7_%R>+A3uFw9$kYY={5u{VCv*()E{;V!bof>2fa$0Y{_*nu&*<>C+)DcU#hd@)IhSh3Pxcdj_*ZZInmf1sspG%= zX2n17n>YUS9fObR@Go7X@QvTS@ds4N)7Ibb(D-N62fycmbJywk*ITXlhmU&mpZ??{ zn{@b3-$v>G!yEtZ@49K*-vdei#-HB!{lX6w==i^~R`HMe;O}{MuU7sk%P9SSdGmiK zdQ4k>9=M*;|F<{(1N*+#wx8a+LE#(6yz$#Eyy6yJ`mZMYiTdE5dsh>!{C5+6_#bcn zU)&niwtst&{REDC<4<{GrndamLsKW2L4r+;vrw*9r4+D~R1@ATjF)ITeA{C^IU z{a)aWpEv2lzjgRws{f4H-uMq4OnpR$-=SFXkKN~;{_C$fM>~G7h}z$Q|9Ioif2xNz z|N1h2AN<{wnl8}E|05g;XFYAb(;uAjxwifG80BB!6mNVuzjd^Z|H+Gqf0{RbdDaKo z^0S8Y7xZcWq`%VtP96VdOBMgY ze|YVSn|1iR$^L=^yz!gtyK=S;|8>^ibZ`87j(&ZE4*vtnAn;Gp>b^QCUB>i3Jt-mMFeyp<&zy1vhKalQ?zw+b_9d-D3tRVa^z2)C}PM4`V z{Kv`ujjz1%OI{kF9X}Y%{>uk{W1F>;b^QM!`wcwe&Ht|JYVX(Kzs~a4^wwWtdFHb^ z{2#dd`S5@9t0R4N_@5I0@T1=H|2gNpuXOl}sr*Ejddt7=@yv}n{GW-x+0z?8ddV$0 zI{YDA{swyE&v@^LoZaV%|rYZS@tGxNod9nHzI{Yrw{x-h$ zPJgqx^|j*<8I#C=eB;f3)Qgq1<2MUPe-R)5TWNfC?fBn>m5P7N2mkwnEwuIT=_J4T zop=5JT-EC1boy(+`tRVazqcyw)2`oHK;2E%# zxpw|5kK~Un@aBK-@BvTj(fAUL5wf%=-WWO;V|2^od%eCWIE4cmrnm7N! zS)XY8pLY^|)W?3$ZqoI*F8$Nk|9|4m|Azy2YuAs>rt}AI^3K0rFPxI8<9{WWUmySV z_M0DntHXchCh}iC_Os_DQ#*fSjHmj?NB$QE?LS|~|6;QL$Q$1JYx7mMw*I?$rs8kz z^48zT587(SZ*HObH(270Kdt(dtvdNT-9Y;L)*Jt#XZnrR;SVDGsE_>Z&K;zkKfI69 z9}9cy&!}f+>G-c8`w2ebE&m(a&aR}xzmCiAAaDNPJXoxi|7t2fkq^A_>n=P;+kf7~ z_Wz`}{BO2D=Odl`pKv-c|e&8f+|LFyiKTy{jf5}hVwe`=t zoPR$3??+PxkJqJt73n|fgFk2JaBchjR?7dtci#H%yyXgQ`~48fZyffRkyRfqp5+wTnT^smVW1!>mr z@1pTHqnr?bfcpI-k~`8~eTS2W@&}giijJw^91v@y0jS-L+JQ-)6H)f3S;p`ZsjC zO51+90xqk?CtSrFfBYDj>CpJUktBcceQ){8a^`5)zukI^N`LS+Z~P4@eSX*RFa2EM z8wb4c>qqPTqQmcXlfsYr@ZY$o(ak#iPGmp94c`3QT>D-~hksAH(tn_;xBkno%-5E` zJsU}Xo4olq%nfPV9|uYmf3u%A|09QvwA9HzVgu>VhyNW{rF78Y=UlD$N2_`Bf3DYu zx9RW?QT_)GdZ+*Xcb8tJ!w*ka@<+10`L8&XeX$OI2-QE~AHDgn{;f-z4u1@_Kcfx3 z`3Ex^YsWv{qxMU1tvCKP*X=u1$Nx{lH*WC8Ke^)%+VRKo#Y%sHb>8?tWOSXU<6q-C z!Y}vM-`cL9YwNGH$qL{6-n;!cu=S`e=6}0H16@UNLm|E4lvn!9O~yqt<@b5x)6@xBj=bI=Df{ ze_p`rUhP~+|MjZ3{J-V} zwEc%$2|u{o8~=;X&&}5H&!X}dv-7_z9uaOG?5&Q_tmyGQU7cfYhQSfD_Axqxt)s__ zEx22k-e!Neftn#aRmX*gm)F~Pg#{L(jaP`LW)oyCXsFEAJ|E}iAKvU%DK)i0Se%cO zH%EOKT^V1#B>u%$XK&Qu^Zqz_K8?hG{eiVw{CUJba!O^a0i2bX)}_uX6iqYl4>_veW7X(azMF9F|4#{^j{H691AG1z+j#Bb0u5zKq1bv2fJ$I(*)rDbI(I z`1gIh=_eh29@~#NA4cN8_v>vh>F`TQetABO#9#WxO@Hg~YqlmwBhH7B_*=gHYOoH! z$})u?c;4IpJn;GO4Lba0gl{(Xw%-QZ^S;yJ&td&__Qv1Pru_mP{!Qe+Vq$-=O#hf^ zWgId{!elG-|)`A z+kai4^&gKCf4M(a@_*#3#oy@opT+G{u|HMfXLatrNr(R&@t6B66Yy8(YxQsMj~4p_ zCH|^Oe>BnYzl7SSrq~}R@$0u6T&%;-G*$k|{dp39-Kr~>>+pLLzTBTD@h3EUF-wQv zpWEkReYV68-TYlg9X{{xmizN0e$91jH|y|uf4AJ9C-Da#+W4*xzX|)Vncn5U<+9AZ zI{do%O8;_yh2;PA4?F+V;n$$`eSsgn+aLca+H{8wzeQN_m-{m$|BokK`??Ol6V?B6 ze}=@rKRfFJ9e!`-FZO3h{HZA?AJyT{rt={Tu|GrNH|}}#FCG33?7vU(*575TKJKH# z??&~9+}|Mizg5^Qs>9#0TBbs zki`G^<%j>P!~Z17{E)=I@9vf#>F`tTrTLY<-u2(l(+%zT#hhD}{86z!Me;xJ)7ZW` z{_83IK`}og@h9B;dovyW(;F23m=Auf9nbC2;U8G3pWl)E8+O>&K!<+{&9BP&9f`lH zRq$>d{ywVz17dzb;%}PV@p2vhtL#6-__)Nsa7L>Sb@<=(Ci@fP%MyRlPltNx@IU1C zhnQcG_`e0lEz;rVQ2SrbFG&1vR()aW@HkOFu*83=b9Af@e=qev<@|!g|N5d$TXp!ih84f4PyU~C zYT7g%{=?+I<@|!=|54sE+jaOa5x$&XkoX(d4ezSMKW8q%utv?dfZN1OA=m_<14Ozrw=*-P~vU^ZE7u2ihA(cQ@h* zO%cRlp1>pl^0eK9 zjNIa4ybHm);Grj9wQ$l*dE1KXi^**b<1DS* zBF!QDmJi4-`<@MCu1D8@-`k8Mi|DS0%RPsyM{HdTmcb9_FtMBZGc2Uw(7*$Toedr>0&b`In7_wZ(wHD_wml@tMx9 z0iS-Xlm8&sKQw+y$Bo(ZhKzsu?!U19N=W}KK3`>lN`Er^)gxZNLWe(+>t7oGOol(~ zt8v(VO5op$#@|@~jL&*t{S^#vydCscl5@szD~j(2!Se~j71006N-gIB{!IaakLMFc zD}X<`!MuaI{Ht6D;(VK8M5w}IxvQ|?6z=cyLTU9XRc}rYQ2MPQyqy8_KxFFdv<8fGL`0I0Z_`h-cnMy35lgW4-Zo1~ZojQCzACUR;IgyOV z;aAu7jOp`_$wP+i}NQ5{0}XU=O0VL|M#>x%XIiJ3;6@1^!)z{KQ~f` z|B=AwaePiUhj$meeyR@t%3L8ojUzA~hbKKT>mMEdnOOdFN!GiAOUz7WcKTE{<2$RDGAFykrehVkbW!+zJ* zKX|@q^ilrGX@695qO4#0!tZ`xy;7wmrK0^}oiDoG`Ize;S$|bJciU4?e=Us)d^}$? zpuv~&AK!S+I*|W5+5W-vMZ+3=&QF%Cb+p=EXn$QR+h2ITXjFqQd%)6DKmONl9$rI- zkLP;?Du93IvMn6|{|0G)cs@qp)kOYM|36<<@T^Y%*8cRp{`k|!T=~8ZANR*a_b1{@ z`zbhBX}8XPto?ECB;rf?&yS7krsI$M!vgOn;>-NMY3TXS==6vCqr&e&8fcv<`wtG8 z&W_8E#{j=!x$qyjzbO1ZmvYB{N%>pW3Ln+UkL$YwpBP5DkNwu3v+G^pzf9)8wZ8h( zME=r$M$-TLBlyo1r9ysOUmeikOZm?}G_VZhzh3%JTwfj5;IrOXvdkMhU8mDOuCI=2 z@TL8X@7rgR&VH=*)iLJc=wI?*^Zr20|CLgI*O`!h4}7Nc#!Hts0sLMPAJ^vwc#jT< z!FFR9eVl;^xLw-5d$~Q1>xh5dy1*5c_BFlvMMX1<+8V|=+OdcN*B#RZaaWEe-X`jz zkYAWPVMhK$x_7)VKYyYP)@DPTf$9 zehv+tDk^e|ERs3jA>$hHoZ<{r6->#`g+vs)Vv0k#g}u$(ygb+Ky^hISzkV9?BCc;+ zT_Vc&Kg;OD2UWW;_Oc2Ex-Yo&_G#GvN}zup)c@AAPxX7uSN|RTftR(#_WA0tkbm$s ziaf6`itYV(^k3<*^Fp2chuaf<>NlD1{5$&h%v|=pj{fCz{~6D(M8rKDio5^+YL7(^ zRH{@dLI1U8D_ovGF%MQu{^h4BJPt4X{#scb2!F?5>w~ISsqc7wbcF2ZCm!fh zuM_@H6ft{eHmp)9C1rJ>m7>q%U(-lGJb%UOFeSbqXY8)2VmMs9{{3c_{OuI|$fHXB zhRfA=ygn!Prh0F8TP0zF$B7E`z@UfTK>e4V883f6*{9UMAAQ4U9>@8r8y{NB1nH{Vt74Ov0QQ3F7}zhwV3)PIi9|L?sNqSSu^zNBx)M`SkaiR%kj2grUn ze}|KQNU(n?UpzTuqR@Y*LG9l}{g(;-FG!+)XjXeZ(**tZeoDU<>Bj{9TawU+YTxgP zYr^ckJGHWvzpdl*m+vR#^=~HGr@JMQjFFqckM*|PSgA^t)g@&Atbe}0l>6nbdxQeX z=wkdTp`Y+QOFE){%=Yo}Z%d*dn$}Os0-D`%&&Bgz?2PmyLjO(4|H$%navXLd5E1fk z{`lZ9q#qRWznnz=P$J2=m}dq3=cX2|MEWIy{>Mq^liQA?=?40`0r-9B*Iu)bevY8u zIf;Hw5%>~(Psndny7LjFUn=PTnneD2lAwV96!agM^VVB(9b3Mynlx8IrF7oEuP=8 zp>-!?`Hcww@b(Jz9iKlNA^+e@pF1uT&Mt0^>(^?PQ2k<1{g_SlBd_0#m8tUWOW*B$ zK*Y)AkG8@54YZB-57l}r`FVX!gzho(qc7iAdw1|fSbrHpKlc5~H15pp2Z^twaQ)}} zrKnfWKlBdzXSN^qpE+aI2eSSOyGZGNrV@P)FZglMXw-j*>faFA=kh5Eo5#I_)V^A* zBkGEi?^DC~9Y_6`LO(~TearV31z%VBBk^6Nt)Eef*hOKb&dd6v{E^cX{-jb>zU=#{ z536`?Kc^91vS5ICacYBO`_XXVOG*A9*+1Wp&Fe2& zei#%l^Z{{#zum{~J818%7uL{_;_~SE7F?7xjD94(dbRf5ZEzY6yG@ zUMwPRyQbt8)PK3q|4m8s??-==pg-WyXR}fMQemI>5`A936{P-)AN>;HKVSK(@)o3T zi1u?!s$V4il|nuV&Jg{Z(O0HCjQRaR7Dpnzipb9i9E`?x-#7WaRbQ~7#^ z^uz0;&HbvJ!L)(rBj2xkd}C{?{V()io9sun|0TX;rdBaHu@5a7a2Dz(N9gCBB=+M+ zf3!o|`ZaF#6DyE@si1#234Q7w3Mvk`!})3bs^4zSqi8>-u%Aj-s}H69_|Xp&eGWU1 zo4geBm+Pa}6Vy+cu>VG6pR)bzM?Wg) z4-H;khWZHz`_D>Z|95}+Hts~uE2Kov4+mq;Qtxqc-1d49o9L)Q?kVD~V+N;zvJ?6GGwV|7m@L z<==#VSVZ)tfAgcy`r+`ZJMVo2^wUX}-|<%{0b-oLw7$xZeniNBeb4K0d}(!5w4e8q z{-yoY75EaA?=u!|U5fS-6#ltC*{8H0i7)BT6%jY|U2V0WV?zJ4llW&p`U?g9=Z99? zgZ5J{=&wvdzn;LCV0{s>`-e48pnl4QeugE{kHi<`j3pwX!JW@;K>4#o{@#;Ben0xD z!oX@gUpNu%KPcL_PZE7;|9pkI(AeqNxkSM1x1UkrTs<6>Ka>#&)*OIgzKYg8Kz2q8PPvP`j_puCR(aaq#WN{c-^J%pneQd zzIG<*-!=5n|5k^U^=ocf*DXlDT>pK>KGzdDqrUnU>6=8~Ao}yEev$U+ zM?XmNkD~DS7wxV^`rJPqNc3lk^ATdSzQ~V0xgVl#7<+s4?rXK5MgL+2<*)g@%Gbzy z70X{Sd}5gUMqG&Y9~JbMk$&X(o1gsBewH2W_JGcQ))IZ`|4)?u+WQ{gucQAP`JagB zANkRj{g=jF*Ud)#l!@|n%WRcJvVY`9pY4(}c)@Q|dSL#__RoVvU$zhZ=to5Z@9}~? zbC7;i^zQ~OR}%34{TTIsvwZyLlPoxep*rU^M*U<7|J;H6o74|2KND0OaF*czRQ08A zqx|Kfeb|raOa1uKx9fl6v*Xp)*#4=-?T3}@e^~$b4zh&f^#i6Os{R+tPvMcD2IKyz z1o~sx|KFj?ZII4U^rIgZT-OhOW-RK*5cStxTzZ@~6KRH4_E0XBPk3Jo{V{^$}d{HOMe^UFF z^%F_rAN=T#6BY2BO+$yE{81tQ8%f%q`6;$&+8=bSiT&>22c2F=`9nhf$CJo^hK;HJ z!R>Q?``Rt(6OevH(BGGYehWrS5+14=|Dxl?BVR-MCBpyAB>R!`Yx8~d(?+~+`C^~$ zXrB>bpSQMBas;XU6QuP;E#t*YfMCl_+_PZRpI2l48iM{;N$k^)zO3Jy{&*dpUzJe5 z-$U~AzG?GyRgNpiNtXyPeGbdY+n)~f?e=FS^3P9^|1{`)QFCv_=m&`2{Y&~1pXqQ|&Oa#J{QYl(Q2(aT&)-S>gCG5v@NcQpIz~|cQ6YaF8fcg8TR-|J zw%bO39(86*w9laEzsz5y63FML2JQ9de4+v=Kohw8AcxmxTKWlgQ01TN-^y1iMA?7D zSfPRh4(|8g_1OIq=C54eeh2k`W&ZlnujD2UAIDA#eS!I#Bl5Q$>0kC=&Pyy zhOfBvQKTOf^v_K~zkNKp1Za~efJYk+wboBYh5m2k_8X56Q2n@1q+c@V;?7)n`A@H# zQqVp_qW?H5iG6mI1O*%r^p6y7-GlVQg8s}T^tt{JWNpx-UmTvB^(Xr0T2azJk1uWK z@iEcAlj9>cVfqmeVNUjscs^mR5Y=BTsQ!9qiuzEFU-{BcB?c5+d_kx^mfuq0|5LA5 zAMp9lL0aGCOP}ZlD7O8Wns>-WRTFY)?bKl<|hlD-X_TK!WoKK3xTKWTi4 z*Ply#)&qwo|DbTjS@m)KUPAx3HubL~V*JXFzT5XBi`HxA7F+EH;eQ&Df0q8ukG?E_ zD|W71f#tVU)L$KmzO29e=pgM|M|?zMTK>w6*YB)PGR;pQp(F<@$3!`C0FruJ#Kj zev0pKugG;I2%XOzqxJJ=3;86- z^f`X(qOmK{K1+!{+vn83=?gl4J4o|8e)JCs|MvTgs#f`m3jekviGSXUzv@=N@9>Hx9)^x~6ud*k~5)hs{T z&n9l4i~8M{zG(mdF|qI?EWa_K|Id@yk01T=<0Lo*SACx{-73F=emF_~O8j_g2&KkF z&2F;x2{p{qt7)Q22+8 zMM^U1ANopx1>8{B=cw1;9ftO4i2iA7qA%NrzVt~y4JmA1_i1Z>EsOMHQvTjf{(hKENYuYsl)tk5<41o0*(Gxs(e)MU{Dd-5ztmeoU(o$J zG3wv>(a&k7@G>Z@e&p0NwEq~<4{slAeeg5+alStxNb9@&=u7#V4!-DIw9j%O{}!qr z`F;bF)+hMU=X_=T%vyZXQ%Illm;I;NO?_dK|1@d-`b6nhn$!;O2TY*(S;P0&Bf@y{7a z=qv9hsXB0oeomqA(;AoJ{Y$k>(tkIy|B*@TUn~!H2-B~2BBuELxhv5=gF^qGCb3UH z`ojhN=0m=;##iP3++UN}ryqS&7R-$i-;? z0pUMCy-{KE{Zla-KQzolitd=rZUBBCNqPS=)PI?nzaB{P%lV6;0$+k{;+wZdtmI4U ze5Wi?emg87OuBz6LjBW`lAwTt@#-^CwDwMS~W&el>x9 zc)5~@@833Q{nd%mub$FHEC0tVKi#h#`Iq$PYvi;Zv;1$6{`aWxMCCvH-mQ2)t)0KDpHb{Tsa+eXAbrWd_@1tf&_8qe z<@UoFrph3`cOX_l`T>Pz|6h08yH!E{1p3)Y+MiNBn-KjlMMT$WPko5>yOjUaR_a69 z|MH_B5cGF$E_q2O|6!sp*XQ`r4-L+hwl94^B=~Ne~!`pwL!8YKl%ak{~T5w zQZUI)e?672C$1ww=ziNs1?iiF#zDW8lRr#^c^+fLu$6t> z^7kP5uSn9q@}nOm`s{zk6kc5e=?AF(Ouw{8>RHvVX zEdTe)FYx*zKl%YCOyMVQjkCrF;_4?0>lZ z^IxjpV?U_;HO2i6LQEUX6#ct>Cw=e)>L*8x?|n-3i_{MdyV~^R54pbLlF#N@`={jk zirYB6tvGs2c>7O zzbdy@n9@EazNAmpsvW)inTPH{{Rf2p2Pd&lKl%-cGTWKC^XQjwes}}6AC~_P5G3|o ziox;^AithrOQ!$9bUCaYE*=B^E#ZEZ#q3~dLc;t;>5uDsJ#}Yvp6OrMeL}I0{vEV_ zgC{)r{+JV`KXSv4!#eu2u2&MKP=C-oNA1JldyXn9|G3+}!~J&&`gxb?U#1@zr|N+d zrGG}=GneS-ub_fr7xyisfASXnFB`>S40eipqagQLt1;Kb#*g|G%~We`+D&57y%-uJ)WuA{%{CcXS8n!gXX>N8bGzZ>aa%Fp*uRaE~ASMB&tNB>P> zpS%u^!-~@1w&t!~I{N?6_z&9;(~X>9`5Li$yjDLq3ID@-IZ^v>_j^iMC;!2s`26K@ z^b@83QJ2SXd?3L-|110t>&4t~V)i*~-7MJldIzO6CwZ0 zVMX(|MXMiid?BI!xLuTAyIcuALjCsY9@c+RaeW+rPoUrI)_D1uK8MNlpFs>c{AOgN zA<(ZY&({l#izPle!~4%4;C9nU@^!E z9agve|K$pu6(B+>|H@xF&DGKGI1}W*|9_`{^|!y^{dWoSFGBja{O|NihUZ`3RwDLqjOnPpEIWFk^`o5bQJ44R|F%O!|GiJnpq~e^<;#zF+DPZ|ItouvZvXs=+ZgTv0I*lI%SE_n_K%Mw> z^r#8t1N@wsUETU)E=-rhccyPTtfQa9{`n+Tp9g_}TTe_s*s+>{fBZ0A4i7xA;&C1Q zAkhzeqU29Tzobz$1OND8x*Vo`@%S+v{man*!xP-%O+VDQnt^}(FkKF>YS8OB9sR3J zg%OVF>Cc4wTkzwGeY3%}RV$NCW;zIQtreXJ+(k01WU;fl)X z`8xUs$^IjxA4#9}6FN}cz(0PNE{CsF-d3Qa-w^6wd;<3={Y&~y>#6thKhx!~=lla& z`|r9`Va90wPtsr0Oj1@b)8+7mM*EiNc@KWjmrli;B@7a7(bNjy|?e@QKj9 z>XLr4b_&bQ;pF@Jtk==6IYH46&QtzJ(oa7PY#02Se3&kWv)(yd zsGmQY^}Sn1|BU&HzS&VPf0;Z;fW%?B?XXUht~&ZyzvIK}tE7G^s{e&4M^D$$$NC+g z0M)zymVVEnJ9_EpPoerf@UqhX0Z|W61Kwt}6eF}S)%vr9fq%AMDB`Dm9UJQC7t%(m zz!iG>#Z|yR|H)LHP}0BTj7=Fj`q+N3p34>en2?|SC$=N-j~_|D<(v7q|0JRRb?Y&O z0b*JYpVJb3IDQ<3$8G4d1pPF-=tW%LlR*DA>i;r*?w2MDlhL1@`qC#rzpI=-d-!IB z!S`qII<)97N?+y>RW4FN;u5RoQQu4bw5@gHHXZ%<1pU|>N-yDG75zXC({E^Gq&R*; z(yttwR7Xd@@l8q|UVp~@-N0{(e((~epJI&ikpJyd-^B5O1pPFl@d2jK<5tG+ihg(~ z)A!cT$bRM>I{GhC{b;X0qjgGAq8}N?^u6_y`9hPSI{N>;LFp$#<5fH^5I(Bpj}BM# zt3dvSJoNL|S$E<2zX|$zne3C--xyR+2L4d=Vth164$$~h(Kkj`O#Zs5=YFlD->*c`=W#1urxzvq<|vjQ+E<2?0BN6JeYhL<&nL*g zhUU+hKHE?DFC~BAvWn4v`iY>{KChzrMW)Z=l7YV!{ov?|(T|+mdVx;=KOn>leq*w$-^sCei`o9V1>s>I< zFv3x2zcGFC52j*kjXU8_9ygzMrjF8Ds;^Z zPMTeqcV#YI7N1)LGmjdECQdx!NJ}V>c_k+elZDPS+jyKh1fh!nQ6yyMq)ALHK2=Ei zvUX##yLS73qw29*jev+6ZBHzorHQo$nqVRjQ)*9?T1i!dN?d+8{Pd4@gQ5H~-kJDo9`Ir`DbQe%0w` zC;0amjlb*k6a4_{jm!M?bI(=pZ`a9>{i_&^{~q{4jn77?pT+6s5c_rbNV!$4VZ8rA z_i~UwVSM%w_}|#Z6r&vM(k=fJIDZ5A89tb5WWAVba6c>SgH$5`Fuc{4F>pHINZf7& zNiIc6+z`gl{g)uG+Y)-@a*{RoBm@6qjST}10(5cG|75-#?pVG53LSqe z|M&#yd`lePa_6I;A5hqd|Cuj`FMjvs+dBS}XnjC5P5Cb@r*8h7{?Mg{fq#B}f+bBkc{t2Hbr9T;e%TIx?`nUXFnR@?=I{sxe{uiF8Pyf2Sc)!@bmy*}-Kc}0+ zWs7=t)A7goKYW68|A|b$9G?o=4IhP<>_7A6u=2MJpVsk5|A!CzRmq?8AN?Ty{agJ% zar(l&I{r^l`lBb1{z%mmFMka-|F&Ppe=XUcLFZ@4^ao-5F$Uvnv9l^$e+QC`M=C8k z|5@)GR^3wNMjih*Dg8!mz5P{c>d?er1O6rd57uX1spEfINYM{ItLkl;{-?$G?%Suv z%aaV^baQz9zCa}%{~GfZg@|i>+3kMX73Pyhd|@>lxeo>O)FJCptcQ9b`9kY4vQ3j8xZ(Y8E`gU&n~`1#~eurLzF>d%P8?WFD_>F(b9!@uhl|C3hR>%Ln zZi+&L&ey_rnA`q%{5y0NjL*T}kJPRTE=V=-FWJLyIPBK?&)z!zFG2gwdK#+opNv2A zVg3v!3z;v68=I{AS;rsSkN9xAv|QBx?sg=$CEe{vY)dA4_zj11Ufok!$A2c-e~jig zB>#0_;xSiytC}be73H5==bIfm{x_5Tgokp&1g=%5`+*!Ej0sH0!W{ETMalqHb-3m+?6rsE$Q3%=ULKT<*dT+W!E47pr!SboQt zG8i9C7{7S(3Z=s;mRAEmf0r6Ri{vUj@O%W%+sIJzWtjPLxGDPMeLDWBMT&n_7(v0u zmp_lQexl@LelnE$AKK&bA9VURIzs;MfHAh1vOkm753^-)IEoms{WYu!`S0>Oe*9au zxj&}kUjz7uUHl^zlb^IGc`i-5A{v#FS-v$VuNc!Jwe#2oM|Ee(l5^(W1uho}-nf}^M zpx!xw^xwCC`#c^0Q$nD}x1I5;ND}_o?#74h&#(LkxZo)?m39@_g-|Xnv5# z=Q5V)(;qEY z>51PShx|=gzk6%~@P1H@zhT#$<>mS_dH~ipzmRHN&<1$B{7K?CQlX>g{2BQLYJ#8# z>?DGnJT~AS6PrG@aH2IZ*Qpx}kj=Dz7Uk#VPrWjKB94kf>j6j<0m0nj{8>{ARBm+Z zg8B}*CrbYRu)G5144fH*|6e@q*&vtw<~zokKPfj4CO{@7#1t0g&vHgSCxI@VPiWR; zrYj1@M{z0zRa@lbrHdz$bGCKmPMlbjFym6_@Cy|IajW$QvdzeyY?qoz6FHjaXF6vm zlpnTV4%du%vs~ByZ9wzaf!3=35rFoJ+m7Y>y-~HO08#L31F(NhJBj&nSZVB^-{|;% z5A8F2%pT78hnqij&y8rUO4i@U>T@FpVEo&FA8Q`w%i+nF_M4^S-(;pj4(93k^Y}wn zpA-ZC{u2EUd5$ED!hAV=`|dNe>tk_$f%Uk?zuf81CI=Q7TiL)r-FSql84qK=9A5X+ znkKsRkD~rxY`#AIubrX9D}g!;{|X_$@rg7@vHtdVhWv+lhO9=QANb>k`EodG|G{f? z{9mW>$3QJT|DB+3x8MA|n&QWNdWi8Uj%U6c&a0I+PRIXy@Zb2DuJH%A{(1Z@G#DHv z{M~T2`kw#K7vpmr&wM$2CirEsjz88P_?T30VgJ+3-(8PjUE*JlD0<#NS366F6(Rc1^&s;P^gEsb^=BhF|B37KqgSUG z1AbQRk0`CvXG`J`*X`reMg>NHs_%JS3`N@k^W`vn@xflY{)w5cI8>vSg1ydz`XRht zNQS)5hrj1}Ut0k2V@GD{D&72GDa=1apNDZRnm>)wI%G~ahul8o^f&vR`qQ-TRIszx zH*);TpDY-N{N?@#T>l&kJNyHy^zB2*fAew5ul};Vs5r9TZT<^3E`|J0;9q4LeDSi= zK8{w9|6P>-tbgXiA@k?(@w0P7z`v(V|1cG$Jru;G$G#fQ@$ zME-%cN?&|_%q>fyfA)sMKUzWlOa4~rk5!WPceT^@Dx5hh-`)m}01Uz97Ed?Fbhc)x zaY$|sY@LTq`mUI%lM81S#YaJl`bzgF#jt=!wWN{6)WX@tPA_JG!(KNWIH@S#)%2X4 z*LUiyV%*{ngM{`n6^_lDT~w6sZgldCP*MJsQ)kYGK3LK0LTuG%syD7yAp2hqU#atF z7U(}=e6I6U$e>cF&&mG;Xdawr7C4Mh$25!bbCU^vV_J&Q1wM$uvP>N2!SRxY$Z)2} ze298`#$}J`{2$K0$JRhwg8d)yCpLC~{3`*(>EU`2=j2OfC(g_BcO0I)D0`$X{Xb`d z{kz8J0yisr;&gM!{wMelaai8DHK9(%{^AJO7d5b&@n&m+iQuE~aj>$ZXYR)ahF3Gf&?uGV|GE}K zeuwlY^j}NB|C><%;JO1h|LM@qin-|DS)Uj~5d5IJF=qyZ(C))0@L_f1aGnEW9H)cB z4pY|R{l$%9l>TE6Lt_e_l=W6%*MFsJmHsiW@!{~~B>p~~`~4p&JWeClK9sfY#M00FV=KJ%-!9`Y?r%@v-&gQ2Jwg7bQ~LRSt7PeKeqNRFI{xPg{b${J zV(D*1{KI#vdMz3M$1B~|U&sI0%_9F#kpE8NFYS-qwOtPPn#X1$f3u~MlgnS)8pS_K z{x@s=iKYJ?Y6o#UJX!juw>X@wOMhLN{uAUsh}P8w==|Vh{NLW5m8;`lAoKsW6HEV@ zX-c2ro4xbDfAOujzaqi@ZzcY$|I!oWKa}&I?hoShbN(~@@T{G9|5KwdTgs&^ExfbKhQ+snSw9p{|6Vnf%ls? z%Ao!a``@1g|I#Gg+mSujy6vwr>HjMj{|Fz3_8fTUI$Nvc^|G^(z>HnAfV^ib#vmJ2Qe8DrH=*Iu>{8oI-feIh{IqrS{ z_GjGB_%?3HFs2inv7oAfe_Ol9zfT6STpTVKePoYLKI|Xi6Qq7w5PrMmbN7?5uXG~) zB;5SRf`TSY~qc*Si%lok~yAb17TQ2|>ah=6*BVVD^hX4;uS zaBp|qCukJZXeVw&qqb{s@3^A4v~eS@?T$-y+#;gU|2bXn+kLy}hQ{d6e9w2E=XBkB zZr!R=r{3C6RZ}jyyX+m?ypVi4e$p!q`POC}rQZd|QTl9;qm)tYz7s8zeGo!@b#l0bi*nJu`2EiRETq4>b4_5$ zO-#L_^Nd0Ho|O4#jx*Kgzc3%|4d~)1J-97|5!+BlXaxq0UVnKnRP3T$bUQ70ZmUA_ zT{qK&5Zm0yr}Ohc`Dh==c#gB89NLR-jQdmV_byuY^8PY@UuFI>>dM?rqH}Kj`x;Y@ zIWs`lm+1ArLMU^g-sXA1Wb-^0K0D65)lXv!wMIWI z`E-3G*n`V@Wxy7qU%~$=lCL`7!t(HrJf~%T<_%G*8<;1-=Z=dTx;?+SQs~W zC7+(J6F;ewlR*E#$2l^Ti*5o9zlU%yeD}YTkNpUi&-o88`@PEN^fmoJj$ibAo1~sE z2l*VFLqoafYQ3zNm-%&^^}i}CUnAt^c|2>837SIa}p(k-riA|7HL4qf%I878IOI!_R9{G}+n{bNBHxc@yd&qXXPE`3Kkk5mBGtQRs@z0!m z$)8ES_>QZWuM)tfoBCm$Nh+TY`5fTyJJDbI)tr3(jX#h6e2iC%>2EIdM|YFhCA+J9 zQOGv}`a50p7k?uspM(G5VY#Jim)|wv&)a+T`m@XR;N`c!DC--m%rBhW;5e~B{Sq%x zKF%xp%S}0D@npT@erWhscZ=Ru=^u>QHukvckLwSt|3*mtmkh|~-Beos9?1R^=G_?a zY|InzJRe(6^v8Usd*T6o&(Giw|KG6{^7mTNU;N=*{-#TmZ^ZsaKmIZKs2_vhL- z_mpYN?FIl2|+tdDFf=LhK zUjjQ`_b|gRRlZFwJyy>rkn&;jh5eUCEgui&*6001Vg1oQ#DgI0zi?iV^1a&0gwOMq z)+8UlyKnNvn~Qu4S$>(nm8Xc0WKKTk*3#sQK~J>fVLY?GJ|J^Telhua;{&>z9KG#K z)t|F1(ueZ-D0I z`#n~ue>H4|jNbzCId_#NAM2O+NBQzi;Cd4N@2nX9n7>GtGoI*qfA9XS{o&UgUWYYm$%eZ@Yb;#X^IZhuKVI?DxYul@6Xoq`%JEUBukW!b@5F6J@o7uJF9$l{jBF>r1k#;IRAG~Y5L3dudMcMqs|6*Yx*Bi_Nyr0 z&%rq|l#8w{-vHDvJokorD7Aev ztBL%|ajrV!&TcB7H^AVU?XRA1Jm+tnj z^gT-C%eHTlGx@`HCF+Oo>5@@UG`P2{JXI<+>=TVCXEB@Lm^6@uG^4GsCC!hOpY57b1`S8zpA0qxjCLHD?-_y1E z(NNq``Dp*e{Qa$zUoViq$r9!3iFPcF@f73j3O?&+<{#hFrF?w<^izHA%;c}tzZ%{q z^1Up1%>EzFNn*azO(Q@L5iH<5i&Z~Ql zd9-l;@_bFom;M6dG)umls8{q`i&QVGobP;h!{8qZ%@67SH^ffM$rmqCK8}xgE)^AX zC;NYpubBRrul(+~_|kP1e=NVmpPs+uUm@ogAb&lagT#EL+hOJJQk;k-HY zTB>}vZMs6wZ&^jYi=_Of1M;Q+OZnEL{?;I$iv&^rsegKVf|d`CkElQ0Kbw~GA80=v zd%Q6I(y*KI5bg-{lQ~ZXwzCZ7hIY;@r+iP>#%0~Wm2a1I?z}K*?Jqh_@;CXGeD$rt zySt>Yd^|_nLj(sPALG{eZ65pg;1eH|i>}Q-xyPBC>He>TCEukYpYyikEZ@S^+sPvG zEgxb+_7DNbAHFsJ!tn?Bo#5Ygn6GsER1UkUkp0&>I3FRNHuA+KL(~L~<%|2^60!$P ziTmMFa<9aFacQ|%;yx|+82P^wq3nJ+xp$OsQ7*cX3u>+|B;V)fnGa&~%{+j%vqAZ0 z^p*0xQv9f4r_g1?%yawbPL5KaQ_c78Sh2$uI$O_kQ2)4ox4U`vMs;$Ocu_98jbjhG zt&n^=f2CIp^H#QedVWGMzW$pU|IYUkmr&av^Bn#`&KD3Gy_JlobzdB=IXI8NTPgAh z@uFOGhn~I1-G$_vsq=w7_;11G-_<+seMzDGRr_we(!a8N3*V~WzL0!s|E-sQm8qBY z{@2jor`umq@O;?W(!S~CZD#5h?MDUW)AOm-{;~ZO`TrfEJB+%W*vaz0u|nOnysCZV zX@Vr7_dA>LQm4!Rxd`>@W1eGYh<_noyrbJ`^!K|L(qBmSuj|Eq3ATJJA06kGJ4!4c z?dOQRLPg7m_;rL>KH}$OZ$HFkf)|+y1P{XLJV~y2bXF zhS6V%J!sk=O2B<@ar9#-M=|*>dS;VNR6Ym$UpRld%lG;6g;Q%MU$On4FRyFlbz#4= zCi&v8*1fFqaePGiK3kYCUurGoi(tHF?+?5f^IM#MD<&WFxnqm&uLtGh{ErWc;$}jcC@_f{(gWnSQ zRv8~nvGmummh$!b#*7O%AH@3Q;eY4zdr}a%EEjY)9QNA4VE(dvZ1tb~{B3_>?es^S zr7e36?g#bfnec3VQ7*c-UO#tfA^EmP{gS}=H~iw-$>(4k%>RF({#Y;a|6y$TDxt>; zxXWg2_KC{J@#VU(ANni$FT`JJE#hJqntnvI@BB8ozHnX8Pwm8 zupggynfZe9MPFJw{q0QsS@~<9t6=Moa?xG?!Gp#ZlCQ5NU+Cqvlh1A^n7?+rV$0`3 zk#xWRY;b1(xsUp#9Qk{gg}=mF$~P9{aqm=jv9U4-B6Q6*#(T#&$5FbX z4&NUvuF!I1oO_6j3x)pF*UaZ650x>T&~BLT!B<5c%1!t2t^ag(A^8t$HbJ;vVflyr zM)bcj7fp}K{O7V$^Pj`p8hQD}(w*|(zc1@0!SLwMb}2XAe=U5o;Qv#tUt_*>hZ*_P zGGGkihx3W)9c6w|NyfuEKi08R_YB35KM{GS)PngnucEu7G@#y*ieKik`pbN!(4rFc zA4Y=cj-FKaLuP&)`v*5g`{v93<5*ySWBiT6^`DRMCc-@p?HBEEz;#Mv%K3Xve*f*l__5{RetKc~`@lZd9c=JV z`RB8r^R)Sn`h|F_ILsfGlS97TGm_Ci?2l=mu+1rgpZle4!T8R7r!@JA6Us>eXm`o| zQ!Ib$a-4;JF6H8PwrlJEq3fpV{+8_ckNWQ_?Qd*pPXFl=<*y&VcKUw+>+pWzWYALA%EB*P7&~{TuyF>UCDD%1`?@${(68 z@;{oBKmI{!`p=##20T#z+;Zsx1n9xN&U+-If6hO#{<&T1|Jah8 z{QmONC==QID8ZEpCnzZutse8n7o$M>7;`=?P_e$$qH#IEOx{sa3L(k06O zNLM3=U4FCno#+=4KTmQ!1pJ;9tcc6<%kOX6?Xrhe|MvXMrBg-zR8If#k4n>j75A@L z_%CLEJizL2+xoSW!S|H^@Y9Cr{|9Xzw(KvL&ye~vAiw`{Y4Wq2CKDzf7=N~(fO#^; zKNI-(k=`EsponYdPuJnYGW)|kOa6Cc{2L3{r@Nn&CVzH+oz;JSmE{zC&MpGJTa5y2mT6W1!gQ>}7J{olv_5B~RUP5QUxf8)E; zbbr+<^TYjQKE?^yuezU=CVw6F8T!_I_5zF($*26|tnu%fqt{XVu>EEK z;o##0|F6kh8pbc_BJy`w`tP89rX~ML7N6z!S?nuc)4nW-oh`q7{_(X1b%pf5-kIX# zjhy`Pj>7u4<##qS^`3kNrx)>Gto*W`vE__%KN|3F2ne9!aM{@Azd-^U65V`=e1 z`_C^5%TN1H%6}5)-z@yJS$yKh#d=Px(S%RET4H7&bq+IlE&8bIAhlm@x5h7b&lLQp z#V6!XuciF)BJz{ZVbtqinfWX7nXaIW!F#*?eXry3%?jCnKPB=zZ{_5VfBDPkpYo@X z-ZkmJ5{Yr)wrsfD!NK~6?bq>A|9AoU{jW-s{~pvc?mzSUKS}U?@QL$EtGtIHS23p@ zFX*1O*D3$h^j>BR}((?qx;(&*liUV>}OudOeu+@o*Df73A5h zi%DgSe!pThDdA%8jKw3ESlf^NUA&khdC zAA$VyE;3(I|Ly<&Y5I@vZN9VhA0JUze&-US|A;L(o{1Z}NB-%GErRklLH-Hz^W~3x z^YhB@j4Uj_2l-3I&lCTi|7B2q;^&3)jQs3BgjW1C`F+oPXY1c9qW>7=FNU8e@`3K5 zJB-QvKM2e3Sm=L~-y4ry-%tHi`Jrc9{`CGPT@{dr%q636v_o%=b6NDLH&0? z{`(f1FSGdn_NVFJ9aUKWG4SVE@;jFr{4Xg|eyMl5&5H*f5|p3%KM?f~^&eUJ)8tPV zk>3HXZ2fzXzo`C^-W1%)i;hwIm2CZgI`se8#qfasL+HDoCcn3DVf`l|zpeim^^fRn zhjP_4}E|1;|! z<=U3tSpfW-=vVor-svtmw)VzC^1pPh`813F|NOl2`}>*jZ27%4$lrk!(S78s_4^0q zKLPkT!D_!kKm0WL9mrXZc-jAP(SN7_pY>-9@-GM9b|^R9*xSRtFC_n;AwTt>`kCdA z6_G!=2Kl2%5Z$E*{Na|M{D(sSl~()J{^L*6Kier=|9+AFgR{`!zus0no?W;hxYzVM zc0HA!=QnZw;YG`SH{y)We8GM*-D3L}irKgS8{h$x--_Cx%bq?QWYP4%&={}Aj4xqiAQ1_+ct zwU+V^f}Z_TO}dGn?Ek0Yd?@O_ALg;*nBS#*S;bp=r~Y>zJL}vaerUf@js0tszrFL? z>Hl@epZtr_C*`;8aw)%Ums_g*M_>2sWkLCgp9ahRIGgxjFzP?lW$om*%PHlz%PHlz%ln$-=llB5^%to85exrE zTje*kmhuzlN$b2b+S_uzobum+dEYhdzovhdiz7bYf1=30Fb?^-{(iNM|E`7gALY4< znEzwAw_+a#D?Dzq+CQs`_Jo{Tb<2 zSpH(`?OX?AeL{J7zJXU~+C%E|2Cgs7Fnr>Ja?_>Ue4bwa!V9YZw59*Z3HkDe$_mSW z`?{taa{i3rK1e?5L(1QR{p$2j`D5g-q5fnzboYB~*NY0-ug1lGQZL#eshw4sJTt!Q zbu(t*x?oVgeX4C=oDlnBwfE%Jr;peM%KuyNx=rS>gU@9WU(i4OQEs}A*4?y6A^AHf zKi1*Y&gXwYeh&$uyWc(G-E{sl3j4!tfd7cd?*{Bw{qBYF<0HH%++y~tf9Cqj$NBaC z6&Bw`IJRAD82l>BbzZMKCpdrGAMy_p`}x@20sGG$rO7|tk_XW_jo`a4_;xZ@_;NcC8-xOb5d~{-Mu~6ZsdmL;tKl?-Bb|_o$rxZMsDHZ>F3mhm2gBpXR#iheprrf1kq&rG~flj9-4O1OXM^<@{8KMwobEg}E( z^JVSsqQLo2>lK!t_J`Ded6m(xz5ag2$b3F=P-F33$QASQ{ZsF5uFB2$oVV|D>t*l{ z`&HuqH)=odV9tIZU84NY01s)LHwkeZp3B61q5MAVZT$B9cK2TNQ|Z4qYs(;&l@+P%^ z4#=M_QT`>+n`~;N=ozi}}F7x2*e@o}a(a1%6on zJTyc4J^}gTy-L&na_E`ml<~Z7@rnQUdG5NEuGcL66Ib@Rp}nSTc!|p2ZrT4Vmi-IK z7jpRVaULn-rEAxp$D*GWo0MOF?g%~G_+k0A`#+a)zr%MX->7%j$?rhCeAx$~jQp1V z>!khl9}4t;HZ4v6#mest$iwnT{3h7WK4{WQJ@bDM{9%UgA|u0a`TdpWq`y-9bN+$& z`C9Owd`a2>+FKNnpZ14Qgxi<%p3Cy_|2Fv4Gxd3?#iyLMU19~o=XZ1$)n0H%P<{vf z&&>Hrp9ao<#5qdD4PBm3N%`MEf7m-ZA3qCVCziJQ6^HRW2k@y^jw{`Fj2@UT2`e3c z?Kyw_p!}U7|0B|W@GsBF@Aoc@A6x$YQ11A@?1;{}iTk9M=F7wXm*#nw)HDCz+Xw!` z2&l?(H|$d}IVeBJzmrv=ujkfJUHp$L^-i|~8L8g&`l;jJIPgaKi;aKXOe`|Cg?o9Q zzM20QB>p-7eBDg(@Nn*Y&UA_L+xkQ_P7j{HI^E!kIJp(|Rr)-`58;DLfJ1+R;S=wC z&v1A1?z%wqztFYn&pvfhe&3Mt%W>!yh4GVy{Ur6j!E!T?nYPC7{C`Q`!uedwezH3R zi&^|0;4|HH|MR*3o(fM^3<9p)kobydP!u5ghmL`8Vtw^`n`X0ymv6D=Brat%Nek9}*^>qSp!2hoz zp6qo7$_?>XahN{3U)1i}Iha14pR=o#zR*@{mp-09Epf^yMMraBgqpD4oXcQ^>gJJr%nr|kK?QNEPN)m zUc2;BE_*)<*GJh;VEVHAzmVUQ&&G49>0|kuaKwh+1k<-M@p)^0{(^ss&$$gOa zen+k=k!>t zUe|Ltc>UhZe|~*n{<_Nj8|S~jn-k3lVCpvc?=K27WaB=xMgIG7k}-wWZTM9=Zs?x6 z-k8q{wSSrUBk`NWyqAu1g6TX5=ch!U=;SDED(#b=f8vYbq0(YeNKg+kS*T3QdXxXS zA)f#1J}T!A3$4IHX1m-gO_TMh;I)&)pZWeV`CjPr-OY2*kKQv~beq1Ia&DpY&C>pr zTvp<*w4daQIGJlVuGdtW@GHQlvjjJlaL3pEdAz1Ch4gKK_Ce40 zipja%Jf9|sbH3Q`r0XLbrjP4m_WBIlu{6dFQvGDE#TeiC7v+y*uE4n?{^Ld;F8p5y zeK_YDKGT8MP8Dv*ANcOn4}01H+&g}erih%E7eURyk@_a$yfceFEs2{o$zCPq| zO&`ZcA*AoKx$?z*x%Bz{N=sj{{|7(DTGuLvKo_EZ;kbe6w%1F0!~e(al3OZaD>>IK8_ohzAdbEVB+g5j-y`9uU9`uetS2Y@ZG%BNu7v(5Z$W>-lp^K zo4eZ@|LNPtWWFeCmi!B(FI{5#CPKg7HTmh|xPg48Z#eQbZnYc4A^Gf<*AoX{n(&$5 zOeXV<&#zo_UtH3+ko618-)1wU{5_V-zvRxP<=>0wU$_{@F`m&_ha#Wp>yPy;@|l1C zw!&dLI%A%e{#`}@w+gNYclcSyW&Yo}9r@=1pZz6$$;Wf)i|it$fAX9k`~Ri?uiA%7%qKH_d;R_z#plALl|CK+rNusi>r39Qh4YW=OY;yQ z*OwfuYcU>seaVF!_WDu<`1blz82k|NkM?0#D?KcyjJMN{mt3#;XRjaY|6{}h>rd{W z!s+As4b#W|B-djY&zn6Bo`}P8yf_NwkNlqC-^_J!t6qJK>+9gNUS&KkZs@KP9hf;^ zl=dyOPmW3c#a?rA|NpjIY3VEH`U2_^#`^*KFHA=lyx{zlT`pESW~e`xUuOn(oS#o2ee6HcEjB;D1L}>~pH03ozxrEz%5Asvl-q9S znJ;!bUx9Sd<@Xm4ntiX%4|=fA=KN>HHTmgF>~8Xp>7rXKeZ}ni?R_syUkBR{YyQ)= z3u5}_(Lc)Jc2>SIea|0p)+?Gm<{#5nGe19l?R%_U`t0=*<{$fSTz6smKDX?}D4)Gw zgXv>Gm$+uWF&?^uy6*Ok)StgiS@WN2pB~#WcRpnd=X#n{^OQX41Bf7HqC18^5$hzj zeag>e&z>Gu<|t+D+2!65qCI&t_{ zcddS;hw#a#9+^(M)C={HUV1|2|6w_Pp?yeN@Sj`~NdJ)1((j{QjV&_m65|b{Ua;4* z*k4Y1yEykWBpBt_D&-$I?x5x~s|DFh> ze`smxXZ;;V{xCZB=gBAjhjU*h{4@PsF)vL2On(oH?;?UJ)EB~GJ~Mv0mAIiEdR}(y z?OOh6pVAxslUJt-{$B{Bf3MQgPy1HRKQdn1?t|&y2jkJS)sJL9#y>cJ9LISK&eOPv zfc9(D7t_c1=}yEA-G#60QV~r50Hj~f=a2m-@c*wkr=R7JZW{gfIKnM9f4vp^r7xLs z!F(RX{VXpVKJ)E>4b3z4;vxL^(GMWM3jCL`UJ-l1d=~-ValXj?Z%A8Bb!)9VyP>IV z*TM2fAbC&G=Elb6mTCM`kjkNMV{^^Sd`@fTi^+qIXl-kmUDM_s@76Zf&N6=sA|KS$ zSIggsXz=n7t;s|bZEG3o&TMF!mW{TxIeXhuTT|O`OzpI2_Nx{NP-JXtm}TS~yt{j1 zKoa>k5?7*U3bHci@vVO($togqL)_85dww`vXnjrhC+QW#z9e7n*A-&E)k+2K%Q|pm zvu+tWQ`QId*^y_Z>^g66c^2x0iajpxl;*cdU~;(!iEWY4o$_ASQzP=nqe|1{GY!w* zwp)fSk@Zr2PVOT1L_&Ay^GXRo|EN@G$!3}0obXPv-Y8U#1g3YC^-3XLtVfvsgKNCb zivKv~cUb@F|7#@We_A;{iQ#`XI9#Qx?Y}0CgOc3&*F)bD@ue;tW0 z9H-d-byPtSm2e+9x&AQi-?RSfgYxfK{rl)Xrv78kl5Vl_3+wyjd{Z8&Z`&S<>9zau z%qM%_wF|kQK!1nfSAg$g{)_gCVeskjnf|Za@B9mc>FAg%Um-tFTwC#@Sn8iNtsT(c9`$vzc%tq{r|me{?op! z;t?zTBMYaW^9TNgrk!FucD^zF?^^2v%>VA}?_oT;Ap#n>wZRYfiEjk{xNc}45HIz` z^{Mn@=DkaS;Cj~c*NxrIk@PQ2Zg2dv{4Yyb=^s@%{Tp*V(@HC?a}mU-0io`e~$S1&+GIz z?IXFz56^%8CfCGeyo}rq?IS)oWE#I*y<3mh5xBj*{WI+&+lL{*$Coi_AMX(&p7$?| z53Y|dMtDEh`uMx37yV{~i!j2k=Xs}SXFc$_ZXSQq;HC=v<}&ll`o#yon8SGJ9y;KS zf!cpaV11V3hb6V5n+I~^hh$Y@{c!$(`r*7-9OD7XaUjOGl#}CUyWJ$Ni?y>HpK*Ou zV4b--!G50Wye|0J@#&RDPZi)7a|m;O-!SUs*{UCZC-Xhe&)M%h(N8j`pY#Ex>BmkN z<#@kHdwUqy?XB_Ur=5*FtZ%4?q-E#KbUcRs8~bV0!}ZqqmAIf>w#)jS{ErXc!PWH* z`+VbrPm#X&!#Vvp2bHFuAGnVg?E>T36741X7hGR#W%-4F;%bJ)XZ7-uHNQi=Rl`5m z7kVP%wBd21)e^wtIsLe!OVf{CUMPl*E2fM8tHS^5q5KPx z?`hzQ_{si%`NsxdE+SZlbqO0k=Ueuzk9!{8=(5>!1#sz*E41QBKAy9Ki-(q z^uzuv(?$LCp`6wE{TW+t)Xz`u&*FSB>W%$bj`x{v%4NI!j&j^y_tDlF{9t{Q=fC|Z z_9fo)IsN!!OVdxW{w{IiU2F24_!-E3Vd&RVF1tQwf48?)URYmT33~>XFXC+y`upTt z-40tl4)H_xrQa>h{69V0_f62g|NRf;IHF$Y4*y`qpMw2k>gN+n zKkboUS3f-0+SU*Gzm$G%-SwKuh4k|X&W9v^5{LY{`r*0RwtmR}rSxW{9j5xTd%DCun>Oy1x7!tf5H=fUH$Ofa=Uzy|4ZrT%$wYg z3+d;xi}UdlIqcWfkB4))ZT*n{OX+9QhZknf2e!-C5}eP>|7VF#{B`vcE21Cre<}U! zvERat3gPFbx%u^T`{BQ?ev(D>L;f$NpJSi>IB))({ll(j82#{kfW)L)Sk6(z_{tzUMgDAvt|bcua2? z^E4jLEn|A^b#fQ-+v}&CuZZt$;$t{r__yaZE5WxN`e*z{_xRvO)er5zXx}?U_IB#U z@)fOKJNe z^QVI6Qeqz{)6)c;#jtPMLqMm&E`aMq3Gm0@f1k;}75pDLUxxX~+rXcV^%45N9emGn zn;#!AFQ^~xkNS{P}0Foy+{sZYc2RG1Zy31QCx!G^v!e;Y zyTa%%A^O`uSj6AfHRgTCY26&9qq$Inh~)^EjJ;y0P0mLXS|J~+{bF41m5#OWHB|H+ zyw0@VtNo;YpE_CaEVQpY2d^(?nx}ZHgfH|a-upFTKPmJI>?6II-5jOm&{taCDZPXD zsTmT!Py+gGZu!bgS6OSm@J}eLze?4I;4La?Q7W}Ohc6cUPN8Du zIVJCu*0ww!xm!M-kNIu>vm^GV!Sei~+TR4q_xHd9^|VOd7rMCK#dnuIdd+KPojNUy z?`-Nx+Mjjkxf#+J^L!L%rqLt6r_27uas;?N&c$H6&3I1denqtNEFnquqrj(Kz~St7 zfiKlr=2}4eO7Lkfu-M`go}0q%oAMAzVaq@5N$;}OONle4qk=bZuO0cu$*KLmrRmRJ z2S+qcFW9BTtbOdHItAGUphiwKI@32biJrLbBZ274HWFU?!#vh5r^ z@afd!hVGR!5Bg`Y|GNwH*Q-t1rNI93WK(JSbFKZ+jQ1esEBc|t-)p^%-Z*Ze{(b9tL{w{1vzJGYkl>!<~b%ndou^~m-+wi zCyqE*@#kZF!TL|_SKaBk{hQv=27j#I>1zF_b(V*GsEs0MU^{+roQO{ejQexi!MZE*!`7z=Saj=;dSYYMZwT%44k+K>h<=@a zEk?gR@I76&FOsy(m9@XT%9IaycWgT<>bH#JaFl!Izim&(@@>xpxrpF8&Wj+N3h+Cz zeFi@azP*3C68!B^AF#ghz~2S@B+^v{zU?qwbnjb#a&w{nW36kxy+ zeeL7?F&V~YF1obeE(dPR{y!N_59`a>mz*zqU@!h5|qhSN`6@iHrX}@~q*t zOZ*y6qlA~1crKA=4QGAnK&5AOa^9El;hDV#Nq_*Zw4 zelOu4DDwj9{~ZliT+SOzmi+Uj{^};<^0>IXM4ZgU^5ZuC{%oxuIDfhU>W9BnOL`y6 zoga`q#?%k%;(NN(FaLk2*!)+7{{w+?%JRc~;;fgM@8#%6q?em|Mv|Smc#gA=Z~#;1 z0qnOVpTl+9agvW=qEpU!?ki3By%GL@P!G_q+66z3a|d~@8uhn7<||$7e;)w<#T;Az zBmO@2PlfdVn(F_%-29q1x3K`cEEPn*OJt-|AcT>sz56B%k=_e0myqCjJj#yNPg! z&qLXt1s~P6GamlAKi@_A=3$)5c&WFE7N59`fbTwJ<}Fd}J28u2h45{AV(JyIS8)wujLh^*j{exHzAd>Gr++aAMHM7FGHDdEoD4#oG@4 zaPX6Rns^t0&ve@^=0|-tlpY8`}bDTZU^Sc{$|aatv8J+H11Yth!qSGgH{d4amqtBlBjxOu}Fq(Lt$C93tumAaI z?^r*uymLN+{7Qs>0O}d?J@9wKx)k}W2PW{mUX%-_FUj#e=GzWIIFI)<>1DfoDEJ=B z1^kZ#e=oEz@lVWmWXZ;gr{RX~^2(H3@0>;bw=NzlvV7^DJ zdWQL)pxzL^hwwL~p226nKQ}&Ke&+k0hvf5#`y|3!1o!KeS7i1dvi_L>{9oTJ9-ax{ z|CG}7&;5Q5&NoFgj@?dC|Jn6+q>K7bS^K=HfBT#g7ZLQ~K6ive{cp?jLH088Q~#TT z&wWAl2xl)VoGAGFSmDeCe@`o%1o$h_uBB047K6`p)7|j#JuWXaejPE@eBixoY-^s=ugaM+Lg)1{&#o-QD%~gThF*!+I%Vkc?aXud8yQOq z-Hh?C^R)1lid>!pMd5wFNAEd9>!*&sraZBJIzk7Sf%855(@j2UTdWsdwhunqhfml( zqkc8M<$oD?z75U+AU?QW&w7RV|5vM?6L@5<3#@&nF8Cbhd0&}yRDgdC?Ld05-(-OB z1H$3HtP1F*FZv^K^zXvpZ-@4Wc;6lTa>v9+ekJ$~+)oNU>;?WM?017d4EzheKOiG9 z+nM3uBNz?Thnpu6}dREG_?rLk_2l(HEne$NWHfXFlzT z^T^q5V%gLg2|o40@m+s}@1h=Kz8-4vT|_+H;xk`&2cO}idT@qQzmRixgtG(t3E&R~ zzY5_{eiqZ+E&oH{e~RT_rd2Z6HEd52ez9(v5C0zAM=tjd)c#o%sKDkmq#vae* zU;3=l@{j$nH1vyT9NI~d&+^CfKs?w1F<*I(X1dMbfceDzh789=1kJQt!~c6TpSZ8k zMfqbsP20lYH4ZsFgtIQkx8PTS|AV!^-;@@|vG+@wP#tG5>LDND5Y6m>sQn|K92+ zO$6U|s5iRD+*|WOq4rJxpG2?tb|&BSe@Jw0i2Chd1)A~YIOC=M)Oj~vhhZGcXU^wE z8oE15f3)5|F3-tU`M$M#hITU596xt9V}^h;Sl-8EJ~1|{dxrM0{O`+*g8yYQPZ*p} z<~(3~eRoIcG<+Ww*_7^)@BKh}9=Dz=L=h@)qOp61j8yr=zKog&kZ>4K{&+4caePm#KjYq{4V1C zp6wXIAudkgJQn!G#Z{cg0)GI)xx7n$ykYP=vwnwvw!>wd_X3|dI+Fb*@Y${+xU55c z(oLRy;aP?1U$sBh%Y)squ8%2;`W+z|7L#?6R7}>Rgw~aW#%4%;B=<_Lc+}^1xmRL+ z6+K1PmxL~dV%%@Vuh8{)_EyUJlu!)g5C2?Q-x8`px7)v2o`qayP)16}*$v~5*bnlp z&`$mE0?uFIKY5X?X9?Yf=ZM@Z{gvaFKT7yQ%Mf430$J}9`WxS0D({8f!~4j^^1aX( zcuvVd%u02LKY6*tC-j{xp=IiS(S;)v@{M4j+vQ&9p+V-^|6aluIvjwCEtd2M{dG6< zzTz#HG&?d4p-b1=M0cGU5~I4)e_`Ghj`Cx*#D zS7rv_o%j!4-p1zpcKKF`R|jw4R>YPyX#4A-|I7OM^Ya`h{$Xx@K0Uv1 z{mk*Fu7B#)j{1o0l;Jwgk*H_MC%*ck-%dX3hYwJnlFxefKFmjv?;?V)tng7CI8n@Z z(SI2JH(1Bin{0ns5AHO}@af-!|K}l(`<8iM1^$VUhx`cmCp98`_@4;=ahPYLe;<6> zcRiBCC{QF{uAK0!=>|wZ%@+y_gSTX^^)|jyg>gdd2!+VW&eu#8{#_1W2W3Q zo^p#H!i%n07oa{}@Y~VvBA@wHZ}G$MKhNSbzc#bN_u&6~t6#+YN?74U;D4pnzhZt3 z=KrFhUG(99kQFcUtDnV>!vBw)r$9J!!Czv@69a#Y70x{H=`!5Q7bG(O|HJv!3XESn zPLc8-$lv%SrRDD()Em}Y5v`Njz~DJ~pK(KYaUA62yh(5H6BZxc0cSDvN&l>-Z?^cX zPA6F5u-V=k{Z$wGbP;ctkdcq!SAc)Fvw^xCG z8OEb^)vw8e%TGIi~&Xxp)cUrnFg*jOds7JoZl?HH+~ykIp>OM@Bn%kkAy z^FNSe)XWraW36bSO$;~dTHRUI(aGjMbI`S>*gTG_Jvy7Jsk5h#E|7b|&X2$(G-pLw z4jj;399ep7q5jt`GmJ;?UV~e0hqY|5T+Sz+;NECG-(x-hV1{E^ZWkKVgVV!$4q4Be zTF+Zr&l}{ra+wf&SFHxVcUb;cTF?B>c6A)37u}l&U$vgjU$XvBaD914S=Sch0M$Q9R_5auWpV}Al>;Fd1tAJl&#B-)|J_O--;5+Cic&8ZLvYvba^}Khg z;rsAUy8`l~;D3br*?-u`69fM|)VIm|4SxanN1}ak_crZd9Q=)0pTnME5%{C9Zjt`I zktYHEN0>)Qo@n?<@XzJEH`WzW;Gcv3E#+JWesX^!UwWx=JHT(ld;$68$d~6apYK0u z{JY?%piloz!>Pn+G78|e$<)m+hwvcQV&-^sl)tL7ZQQ z@Y&x7?4A32nQ+(-brH@hIPaT$;`-d4`ToQ3-_COp(I2TKpLSK~FL>ae3VX>I{)ey% z{Kf1?gC7BZ8Sq8_6TyGS;``v&VjiFRuLpku(v{rAq)CE5pv_AYmnXeXSOu$5>p z9FccQv>R@hdnMWrr{!LWcEp~V@KX8 zaebm)-YL=UxV^DV_D7aw?TGEEP_)JLLO2nsEC$b6=pW(5RHX-6Oa#)$8M0`4; z3nk*SL%vlaKI8S0J|W^WK1QB}h|frageOFNdNU+`A>uPVsmxI#KEwNqJVL~$yPxP+ zi1TKp;zpGmn_%Hs0? zsc(dc&xqVB5ufc6wi5B#F7K3x&y?IN5ufgX5}r^NpAuJ0i1>`kJ0;@Nk#CiV&$zr( z%HmVvP6!d7DS4+ve1;^gO2nrp_e#WPLhhBa_>^xugow|O$fiVmc1T=G#AjIEDG{F$ zxmO}SV-mJf4xi#*z9&8%xmU{KQ|?nj#3yk>eDb*%KKY*bv3K5^4 z_|1^4k9pF+@{X4JL5TQFNZ3lmXK1#RS0Umva=O$nLd2&xN4^)z;#1;^31#sq@kND* zPgm}hviOwyxDfG~lDL(!_>^}kA>uPUM$#rkeEM>)M0}>?UMY)D`L;tSi%*d)Bt(3M z#II5opYkp&l*OmqM}&yaxcF5fJ|iNl67lKEy%O=+A@@rESNL=!t_&HtIm9L1F`sO* zWg&cC*knHN-pb)~M`79Hqj;sHUx@fj?IrpaB0gjCPKo#o4H5kc5uYLH8!Hi?9rCRb z@fi`nN~}L)a<4>uCM9eo;xj4ll!#AfsH9Yg_>9QC67iXkxRi*`xV%#$KEo2067iXm zcS^)(TH;nBJ{<{5iTLz>E3yj_pHaD2B0ke{uS9&h@~sl_>B+qk@#%_RCF0YUcS^)( zOzxG4&xH6@B0hbQRf+fv%e@lu>4;w?8=ubrKXmN+^aX2v_vfl#Ln50JFW%9eIDhN; zh49<|Jo80t(dzN*wu(N5h~LN@!G{p>>&QDL;}mw@SosTHYxUzmB9uiTDjm z*h<82x<&j85x)t!S0a9661LL+3Vz!~HYHxXqx)n{&Fh8m`{+653->Rp$8YK=!GjR- z>r9i7g^1sTyi+26y=uXi5b^7YUnSz#m3t-PHzt0Sh~I?VD-pjP61EcY+ad3ih~My3 z30sKxjmfb!$d~#-i1-c5J0;>bD({qt-?-c> z5x*e`TZ#CM$hS(wZ&dD;h~J2Ot3>>^%R43FHzD^*#BW;sDiOc!qAMlh*Oz-G;x{aQ zmHt=o>xpbiym&|V{`21cx)6TTz;AL5`1Phs_(H^QbcX0#i1>Boof7ezs1yAP5x)uX zt3>>^%e@lu+aZ3Hh+nr}!V@BXeF&UlC#BZur(kDdx#^s&T{|bH+BAXH~-qG!`v|&Uc z{LVPreBs})`uexyP{D%`@#`KY`V%64Q}RxU`1QvNzJ!QhU;HW&zn>! zUiTI64TuQ{RJ3-PXMEr&& zZYAP3BJY%l-*$PYMEoY@UWxb(OV~=pZ&bcjV*T4L_e#WXRK8UreiQOeiTF*)y%O>3 zNZ3lmZ$k1yiTI7ly%O;ok+7BiSMckLY)ZU%N4M#*%kC(I-|tZWIybH!zllcChY<0b zj!JzYMEthPJ0;@RZIb*KB7WVYv=&`1QrF67kzE_e#WXO2SqmepB*JiTDjQ z3!a6DUtjK(h~K2hszm%Iq%Hj#BW;ODG|RN61NiZ8=JIXsCE_6U zZ->aLMEthPJ0;>bE^#Xnze#zgMEpAPtrGDYmU|`QH!k-|#BW-@RU&>JkxhyCO-o!# z#IGywl!#wX?v;q&sD!OV{JQe367kzHQPL+w{3hj{(*Fv6QzDxZFW%AJ`L|E*Pzb-L z4m4l*j~hFPwAgp`7Z&Hw#^#oiGalocGX~=>ll=|B>%6^!Phtm8gA}ks(%%bSJ6rn= zCh7WlU_Co*`G3p`?;@S-3tU%O&qqr5!SFgP`4!K>>n#aCxSqa1`=^2Z7tgyv-?G*& z=cfg)@p}fJ9A~Qa?1~{yP@cGzzRGa^`?U4`JnMVn)0^5|_84_{mRb2_@7MT9^&3b} zH`(%%4(R)WZStSbsmo7K%t~*&_51@3neo|gB>Z4{cMyZ-;B#MjAG~C%f8Hfql=3d$ zI?o{QW#A!>`vq{1tl#@YwGT}0cwmMz3HE{0rb>Fx%$>iP#5wG=yQa(i9Xxl4=i#QO zn{tC_9G-`pJlVv<^2h%<@SZgN9G0(*VOK=^YFVDnTpiZ`VY}d`X$LmZgi`_jrQH7x z`znD^=DNoUrxN_PU>{C?ZZAX>75AvG1z}d`?D$F ze@eS_`1iqod0q3p5BViqGS>*6pA5UV8t~IR*9-oqfq%z3`Qg-pUjh3thA-PbGS}9$ zCqy`ed-hy1@ay4!G4>PE9xe+0R@S*RbHQ)7&clg;KLp{>ZfqX-y=a$~FzILq|55Jq zgggttFXr^d3%br$qmqh$X9pARkGB~6My>z-w>mrg|Fb080h;;J)plVA33DRCoyL8& zu=ArF+gSTE%kkn$o`3OrKK}ok_9ePf`WRMw@N>2=p>NBb|39}U?JLTE_V(oevVDke z+numn#r4t7(B168OFj(Rk1t01aJF_3mIlthc+%AOG{d9I_F)Oumo{U4w#<|_3ecJ7 zy`&7E<@3+52Ts3i_^iJp+^>yt&-!?=Rj;rEL^wVKO2f{U?GNj@XRUM0 zSdhR(ZoCOHyW7O;P9|!+ntKC}!{sb%h z1o%Anl;JD}zrxa668zrS2S)!(z`u<9>!F7f`1hhcPs2Wa8TcDepO2dS?EwE-w5w_C z4=4vN8~Yf4?sLEi_&wPUCrmvW2LBf5!2#a`|0&orJN3qY1bp^ioEuH}6TydAPCE?D z%i(T+>*C5_`EYMH?Z;SYKax-7%7^nzY2~Asz5EkAw+Zb^IRttRcHHbw^aP*hpd}B_ zZ&z+d`J?~d@ZZAr8~qRNqZ`6=S`dy4|Ht$Hrp`9uSAgGSo%0(8e`DlBY=H4!3H}M# zU*UpJJU$NpE^w4UfA=N&2Vb_XXRc}7R}A@+;2&r49|3;>%Do>l@+<*A4*4CVcgcDt z{4mM^?d4P8cVYQMzAOWOD)tS;A2T>ggMU8zh2I+f3h>_ppLX#pu)$#meIJS1K*+Qs$3duaMd1`AW z9A!2|TbgUKPi?XvPc|JQ)TTMr4Y|*orZqR!W_`+EB4nPq(XUB1HcDuts@tj$m55t4 z40#?gZd~wjT(r6=?^!qc1sR9d%D*E7y-?^;8aeh^s*HKNCDoI9$YV~e8zbyPWzS)5 zE2ELpyvc;93e4!Hd0K6Di(p;N7wb*aP9>}#H-V3IDa+?BO_ODi;f3^J612PpB>rGR8InGVi zxR&k58{D6V`ZR@8L#xm452#4*#``AxU|7;JIU>`jB z9>V{d6;2iSFK?M2egypf*yqP^CW7B+>A?qo7RHhEUl0CHmj5XDZ&-591%E#)-Wd3= zTJp~W|BFrYg%GPa{78eiyqP1>a--ZfM$@B=|1l zCBNLfSj_VY*zSf5-^2bpo@22D{Oh4N?#oMo{~GW>{&V2}ndc1*H1aG1A7ZWIRN$N( z7w%~vj=DM6Ka1TlCi9J+Z|eU!H@_9fIj1aFbnWt0tbg_$`{yf7enLIY)$I5D&B$Ml z7bjZ&dxQTV=9yyf-y7+@1^VawnVv7B*K&-H$PZILmw`bqixH2mB1Z7eq?mQ{a4 z7!NJSt8f2#NS|Q&nv3~?6J#PWDMqKy8v(t@d0+I`UGNuTTp0&nwhv~m(=GoM;Ge~DEBp@te>vi1If9y< z3YH_tQwjgyavX*F(*r*Q+%lX|;B%bA{(Tkr9OsZ90lyjJAEs*}_}vgM=UIL5J&dC{ z&Z!6gakLlYN5Ox}($8G*4@P~$@MGX}T*Uvan+JXw>Ph-<2cP4{{6>zuaK7;p@XzM{ZsY%G;%^pTXyR2tLa?Ror+F&YgAFZKnOp^tMJ`_Ah5h`HU^i zmCyJarhF3jbXh*5D4+bF3zkDhd;#VU$S=o>>v%4N)xTV3mGj>4|F*?%sxKy8!%Gt$5?$KV#*~BJh2Sp8&s) z)!r`#zc1<|m;Ffa*F|~A^2^POa;qPc3>p5r`x`vl{mY}Up2hZ+{mT_>U$I`s{^f1p zJLn%QL-U0{m|*ei;1QFi%ZASAzcv`T^v7;Lk&Ocj4X@zUQ;ff%9A1 z(Y`M3FatieuaUP+`Qw{)8|&35_^+`XApE)DUqxJl9|QkG%l|y^ zd$C-?e>?c+u>66~auWuhxQoO8)~vVDzFY(THkRHNfuBY{lj%x;KM?&r>YwFlG4uB$ zQy!A=&wjg$`Nt*T+wDji{7vHh_y+6ts@Y4bQKiD5$X4>Ty;Kz7A_~nMr{^F@t zyUh9d6H!mI9o!wbznbkY^vrW>RuCuPb3XrM>KXhhg!2aQOuTWPzX#@d$>%)(8SHl< z93SC$R{K*AewD?Kf*-N?bHTUIm5hN8^=0hD^q%3|@z1lC2m9AcQ2uw9^#$+IT>I_6 zZ_57w1VoqZcesmrk)r-^E*QK!RcOECRy#ex;`hb}ozQ-GR{vO5BxnX|8elEiBsrd z5%|5SH}F|54@UcHm&@<0b(Z@OP6*|dxJ!cnyoKK-j2Hih&ULU9_}3$R_V?4^@5S|( zH%xk$ga58oKYa-PeD-JI|0D2sK)uNN>|^jR;kqmQe*%7j`3U~Mz`vX0^5sUJPr+|R z|A66t2L4R+pQsPG6~gzQ(m)2! zJ*56|1NL!^qgOI?$5~?8 zJO0CZR{P=LrS`+YOYMb&SH@mAz)*YP;1#jHk6O>?h`i~5ejb+e2mg02a#S!h8N12% z!Sr_#`@-Ne?TbUZioLQ>*1lNolR_W5`Qi1o>=V`gIC!c3aqyzOvA>(xI}6dixP6e= z9tlmi(jT?tkM0=^&2hfA!XGd41kd+=#>$V^tml6KzYO&{+oA?j>58_qUI@X*vnvzdRMBU%*A@>zAbu2wEq<9XX;D-zoph+F*&r9{~sMkJ;rK_F6*_42$%n_ z=v`;(J+PfGur8iPJWzK(7KX!Z| z=LM~%eoQTwGeZLSO?+g|Yocz{U7Pwb@rj&46bLW&uQDfCKZZNxe5pYF*dgg#UHusS zs?1qk{TTl`cfOO>jR|=U){o(D%A8>R*#50K|0$Th)zy!w|K!eh(z-Du&p&7V82+Km z`8n&y_>X1IuUS8)JC!@Ds~@AC%bnHLkFjoRS3f4o%AH{SnC@Qgtge1cu3zr_lJ#Ta z#WH7g^<(OdGG}%5W71*m6GW)FUxbRS9B%IgbAJquFT?o%<$VUq`ppx$@n!NWQ{N3i zkaRh|jG?_qpuXce0VTMO{c()vDB;N%M{@k+;e!J)ZgWweR)N0-!eRIk@VlU2oSbRu zS=QGNpug|^*6@A!zXy$=7tszC;itj3 z*C*ZuzqhsCvmE@bDW^3qyqMz>Yg~9R$3x(AT-etdkA8;m2SR=qyh`t|KEsD zl*c6aU%>vr-`Ug;wDbPAHGhEVYUgUqbNC47bAQ z%-P4}lZ*W2IrJSE?{dDOH^N!P?iKtH|7R3(y5P@1zPLk8dMm)+&C(Cghu_=c`|v*n z_;i4Wdhky`J;w04?#6zk8#VbGhkv)CU;mv3?7Yjs@E$|<8a90Ik)y|qjf|T#xkvXS z{Q6m~ZiTy(>$wqk^7h;GbNf~F>oLIHdHBwA2JJD#9qR5gW@OFC=_8v*wvKKbJ!^FH z=(f?b$JC6e9n&;++Stai&5<#Yn#iZWP6P1EXX z)Ot_;grTXSv3cr@=IPU;HN(Up@u53gpSiE~vj^{Y_Zl|L9X4#Z>v^6#W<)=?y3KW` zM~BI0uG`S+x{WPE+~(=7+bqxWtyotM5gOJ{r0plN?sP!Y^Z{;@yR*2v9M=#X6b=vG zP2?WpMu#!jed?QMjjXSpHLAL`e*c5_A9>*H#$ykh-Bf!}L({a;4Xv}sG*mZ>>1M;& z+Bwycea2UfpVTmYe0_Dpc(K*&(S6piBiyE8B3A#Y)vdK^OIjnztEq0?RcMgVZbG{Y z?IAR{rd|_XJxvmS?DW}9HFeDm(;B8V);3I=J4`fDIaA`)|DrjHV- z>((^24Rh=Dv0mTSA0>~os^<=KMd7a7+Hl-3F$0|{Kh2`w+3Ih$_^Xht={LZY@Fmm3 z;axS$_pB5Z?jL8X<ZVSM$hhQOI>tWbxTY2v7*|j>N~0mkM34e zKdqsqrm?xTwx&fgb$WGUYwh&v*^O=gkG*#Ru=Bd=d(TL+EX$5HcAVHrO#IpLLvk$X z%zLC*&XGp1i7jcOkzyq#%pA>}nK{usPUg%=ngq~s2-Hw|D?(_^qhX*xgF~r$TS&?) zCkdqxN-7#2rWAUhw=^k_h(N$e!0zwA*IwWG&e6zDbGf~}y=-aC{?^*>z1LoQ?X~y! z9d-HE=?Q-NV|t-$#{iwz)z6=vZvOQ5&MolsEb8@y3%TV9^?i4BwmeY^_m|bxgXj3+ zl~S@5PTZV?+9ZtS;+|xJtG)bPI={3#nOI(=d*`-4LN`{nKQgx`Ia^$;?12pzmNavA z=kq&t33g}Ct~{Oj@OCl9-o@hS^2FZd>E-IuzQy9qTzROtST4@Pm}lmSLkn|r3-dz@ z6@IYg;9_~QxN_*&@ngqM99meKDNiu>rk7_A7x`I~`NO5ti=}giS1L25`A4~EJyU*k zX5k%Y%8!*Q6!X~11bIHTGRa>$oqUd$-a+cop~DCEC!^)*`Qq$o_-T~UWrdEeP=^VA zdu8mg(g~HabfPp%9by0Ce36l$El<2%7nN^VTB&eVn3kwLi~2>HsnYyJsU$u~N+Gm# zzBI8rAb7uFU8ydW z<}@B%{rcO}t-t-fnh52|WUDTFC+2NSw$dvV)O>PQL<~GUvpybS=D!bUuk~2 zI9p~2)j&pX9>yP9VTLR$?JreJi>0Llvq*~K{Gns}59~X6=n#XpG*e^@m**E2kfF=P z#g#{k^Yg{Y;t}R;u{;sx2x1imhA)q-6zAuPi^nFG7EYHIk5%W2^DD*U{O%63X>_Kz zNIJZ;jPPiAa*{b^!^-H+&lG2iCyLZ>VfsY*bcx(flo$DZq2h_9(hMdSP*?G&#W><=#J6x#gy27mDo%{)yk7JAf;XtY$>J{aisu7%nlXfU+OP@pCd+|1X;^7W474~kTciey zWlK=CC{@Fj=jR#tcv0P0jjQbol}c%n0hZtvCm|1)=g-XZqf3FK_&uX(?uLKr{m9JH zY-O5NhLuN?IhmV~$bf^&^ZcR{M9C$>=S$~kd}OIf!~icOl;kgvJzWc@Oq|*C#6!sx z=_lbUtpU4}ozvyXF~tAQW%GLn2fHO|_b$$r<{8j^bm%-xv~QuZFt;$Zuy1)f;6pQ| z#f3Aa(h$>i7J;?DG*Oy^IrcACW*1HZ)T{Qy!UNXvRj0qs;3?_zhk>U8IvGU=S%t z`tsOY%B7_fGs}zO#}nnL@_cc6=HxW85YhLxV@D4RA3b>Ni8yqdx65tbd_(L{meYxu z(!`m07I?Ec3Kv+3ZfvovzLl`H`(;>(s*HL}_vxdKUvM zk$ze)QE2GGoTzH-=h2W#$bSooVx%;QoJZzI;a^QAD$A_C;t~=(AsvMkwgd~?Pkw!}zj_+l`86F)SK6;3SII`A5$-?ZU zc+3_QttpeGvpeT`o2R?Cx2snx%WjIMs=E_Zq9985?BhL=;@De?GyBkA&QzDrl!s7s z%CvfJKY~7VGC${Ky>Pg6er$hvy1XZSlrG>fj#KPj>Y2I8xJt{ArUalsrD-0Fll^->mM>x$@W=rS$dnKi4 zw8T|~Rf1VYTh8p%%A>U(jiI_VOhL6GJS;9(mgrMdUzX$`tTgEtOB3)gy5*ut6&}u= zxBt~0^Q=^J)jg33d%FFh#~*tAq0b-s{b9f#2K`}IeCW;lLzh2z&b^*dCq;FbD!tj=Q;Oz&V8P9zvtZVIrn?c{ho7wuNGfP zQ07B%Vrkh#>9khcppsV5_Nqa#XK`F!oac2X&60O&zU&E4daX$lMjH0kZBp{fL6Gx= z@YZvtofRLv)U>!xsD!t%Yozjwr$B2!|23DJmkgPMh~$9F$EA7%q$@ErLT<^m!-yPaV=JZ`oCO_9N*PF7?V~tdJbYW^~Z2tnk+c^0+tL*$VahA%D&mdUG zc!P1GbVI1`o_AL!c8`snovbd5X_tpg<>k20PzgY7H%is29_R3xI(k&Z$@1CL(gN7M zuyN5+NLMB3vJ;G!ns9o>q^2qOQz)nq&#^_A;)#~>7GJf=Os?C(OLN`zNBLE=|5Y32BC;kp-5SHZdyg3jwoJyOhld^HwjpVrh^- z34%O`8NGw)3vzfC6G`Z-RM~ljvW$ryAKriB@V0GYxyWY^vHP2^E;9n!A%tlbwYx>~ zM`S_YuF{jR;BW5g>+TyI7z~@gf&T7YJ-d3tMq(ePfUzMKu*HSh;ho1&7OT}VEq@bA zqtlO+N=v0O@?oWPW&~~P+|1Zv>IZWz7RN?e1yO58S7sNM%40{1(`?>Omr+jHBP>nK zh*4PFD>JfF@H`#00zHQ=q9gPidvxXW@)F&(Fg*$#Y4X4lTQ@XiR?&H>HK=Bj2?7cE zZoCv$V-lB`$rCf>*-7yfj2CwfJ5C(ie{8Zid*ZSEmC~&s7>s{{GMa4NSv}1HwOEh0e(&>c3R46kjG#jr=D>yJHJK2toiT$Xq`yv*KIMupMgLyrzW_So)3yKs;JO?p17)vlV^JtCftkur>ln9vyw9zDWRTjX5Df1h8`TTyBbfe5i}PcnEAvam^KV|} zo$;me!aM?D@eBjGci(XaGVItx4qBAM+|lSY`&F1YGR(3t=fl8+aYnyp#gj-od!qY5 z3pO0Md}(1JVNIGYHTy(uUR~Z#TCvxy-big#W;*%M&x~(#~S9i@UBM1**Hr zVrgMwA+o5oRLVW8+BwyEF4ZT&7E39I$lPHQn+?Z`nk`ccLp^_nh!JCdwOC~j<$409 za94ed1()Zm#i`Pc5!?BrgKD2?vu83aWZ?r0ckfB^4<$=GG~I&SNcQv&^bht7boC8( z2j%l&@6xx3zaQB%IVQ{@nh(wp`a zC+Uo(auppwo2tMZ^fOE#0T$3;a0^l}Yz-01$yUvmZ5m6~6Q6sgoiPf!n4C?+n=dV?16-tQKv80r=gcVLBdWM4IvB*aA7UP|i4((XgflGVOIBQo zqO^CJ6ww{i3t@kkt_4BQLrY{LsHU3JD7~6ybF3MmT@_=HnFX=*bW%y!%xXOxl2|Vx z*o(8$g;&rNW$46Szyf4a&3JrH%Iyx{oUq4_(j!QTD*A%8#M_nc>h9_7>qk2%o}R$u z(A_iG+cnrXu&c`~@4K-jOT4khX%=YVh?2v`V;E_Mgr6P5o;)Yh;V4b!5MyaNg~Ju83W^V=s4@(Kk_wgHn%zJNJi ztxT4%uDVXm83;lS>Es+7@@H<+Z0)B?L`bBMm;qZXyhwj8m4ddio8y>D@^(-PBE{nVp<&q~Y^yNsdiTHE~J8YBOBIDjP2D02ljevD#`& zbr0_9>&u6eq`qDK`QHBC-hqKWI}%~`x#S4@hD6%SQ8u14 z;_K6BFd~dH5KThZH?vGiftCdbPThBMl(xFD2*S{@qb!f&u^3}mcxnb3l@%QZQzZIXd$J^DDC(83HsZ0=Ik|R4T7RSS&ZrzCpEGTr9I#&d#KL# zG>;_3SZr8JCA!gRrsqRzPM4>(kxRA*<{&e6<|6DX^VJ=nP0_B(48*3Y<&){4)i=RD zT%Of@rjDhh>a0vLI+C5vBaXsYf^g9%Pf<0?zk{A5tSBnVRegGmmsKOT`hUZUdIdx|XJ zDCX!pTEfY1dSc%!S(N5S*u7MiW>@x<8Hpuv_F|A)XIXU_(DO-D%7fZep06w~?Sz77 zt(fEZsXT+$EftiEFw`!f$Y`Gz*XR1mN;!e#YNecH zhDOTn>GQf78=W=y%=WO}3?Ey+VPrPksSMRQTS64qWkCog` z3I}@o@_mDOq~0zVDQpggup#P9c5E+)ZJ6BIYz*%o9oxsl;>y^u(1#0)>`!%!z=~ew zGg4s<4D0#WsBE8R}R@`@r1pk$%R-|d9T4S80AOG+iJ+>HB0b5?+T5{!F z$cD$nG`XO2 zIc7(ox!s_QzM-#V!IxD44nufTq;Z|R?SF;_)bYu3CxyJJ%haii#CRsuvKJ7*Qz9k+NX-g($Wg7 zf)v@7?wP_B3k?n%r_kppDA;~Z>aZ$q-&++ zP3s>WeR`P%V`<0f%GI}9uw%Qi~s6wb&pOPXZNq}G>UNe(+H?T1Yy zQ@RcfSj}abG}`onXQrKz$!Klg7U>z)$!(Y3OB^Pi4oeStJB?EVu_6WQFu{6rQK}g- zO80f(;36mXs##e7#gV?BJzc_%jslN8o%>i~DWAfoNXPwR%ZeirVY*LKM#TLmBDXX}n-|Fq?MEG_}<}?h(Al=9hIo8x{_3+Sw{;dj+mJAuGdPhM}HBx5QB1 z+%E)~i=MC|lQ`-q>wg%7J-WBHS;HI5CgE}kdYH}!WSu`-UO;0HT^>yNd%6buyZd|l zSV+5j^1J%%C~j9z7iw7F05iC+cVN&?<@RzK6^@=;X6(GJTvU#2akPNgww9|mT$7qB zjoH13u>P^RY+V7xLQEf-l^CsX1~wVaJ!Iry;NsN+Od<>O9R72>jR63gshw&BO9-cL z2jVJqKo%C8j0_+`4^_&nqNd~f0v1+GEo$?VUINz?WG_p&fD-H{@H9p0vyTV^?lT#K z8%IVdDN|K2V+3}tVw%N13QL}mhN$t;GDug8$Wfy-_H318+1S1?Kf7X5!h%|t5-z6c z;JuX?ZCy?KyH}1~c*=y-J*c@lmP&~n#9IRpzbUcFuE`!%x0D=3#SV)*k_aml#6@h) zn(A4@joWdU=e|iLCVO|aJX(yjXVDyB_wAKb9QF)4$=t~tES?FS8I&fUOtuvsLVmLA zMr4LXgHdM92^Q(3Yb|2;+47=Jzgx}KL0^=7OcyBKQ|-l^-_POhKu>;Ppl4USa)}Km zXkpIFY=~K(SVKlnJbLgkwzAY6ZVk$?R+iBd=zNH@(+kB#>P9=`@nNbcp~O*Dw~hqM zdb+ugg=_9KqaWD48Z9tE`uZUSohA`B$puU^$;HJtn!sd!4l0T3LxD$GmZV~yE+P04 z_dEupLbTj)jLH5)TpF?_q?BCUo#VFjD_3mmJfk%c$PKJqP zM=|NP;IV~iU5p$%hSXg|&`)4FgolnItaVqCQ^-Y3Mx2ucp~a*bK87gRDYMu)T4^V+ znqhC1EeXvd3P{-zns#&-+ca!?A)FlU*cZ+eQS4+%RO5r%gxJyX=vtan>kz~h2OdWa zSXf3wk|k^9>g|27Ur$f$=fWu`|3QOFcQj%4$k-&w)U@GC)eRa2^T#$iL5r5|p-Ngi zo139%iVNIH88DqTeXvI03Qqi#o6I{}Bb)nujcKs{=*B}UIh{l;)3A9oul0>)qpdc@ zGF=E6sW0u(m@XdpweW!~N_I!Bm7HEebFyh1Z;>^9h_UpkgfJmJs)FgEDOr_SnA)oI z8Qv|(&cc>C#)TP;uOWo=y#?Xj?Aoh$=8Y< z`DMgws`^fEutZRgCI2&ToL?ksA9M>WwPnsoJ-Z8aFeJuDAg9|-C!yqsV- zw519qplS6&@silDaA(||(lBNihpI$e~L(`lN#%lz~uWxMGpc{`T#LPk%pd zF~K7hM%(_<KEar7Gp5PvDG0AHP5e+(bAa*Gh4^_oWHKmZrct{t z9jt9p*1NgNr+gLmdnfvx&bam1+y?kgy?H)Dg{Pz|YHDzWDcmc@B&zl9!L2EseT(n7 z)d$T*ff0=Ar9{Y89Banaz{&e`F=B7n5~X%vV`Z~0WsEtS&B(&3KG#;cVhuxZ0WM5n zZPn2{blYSad8|%Uq1_yG^&s_i2G-MquHTQIuPe|&IX5Hh7^QIsEglgxg|M#++zXJJ z$E2P{-HB2=D0Rsp9a;t{ZaA&ZoF8SlbQ+y!7U>n)6sf3{Qm+WRM+y{e&w~F;KE>adldiTm)K6LiDsHB$&?r`u9zTB6&8u+ z=3%(>q^S0JK$tF&Qv*&`Jf91*8G{F0=tijBiJb%3{{BR;(E8;XuXyZs=Ur=|Hc!Q~ zyh4HDKf866(s<*e6k9xG2ssu(ah9Go{CMo59TMajz`TBrVC5mnX_d z=%9gnuXAN27?PP7c6l$zi6FhZdi(k?LG^W`>Gb!rjUCMQ+Xaz0Bf~!2j)DP2%A&0c;abz=j;Z;0+9VZU zX>@$+5{ToXX?8GerkSRxSqcg3Ew$ESk{!-)2%^5{B{2*-Qa_^h4~q|t4%1FqcO`hT zvm)M@l(3-`T^0%)K}NjV7Y@_5({;(#smGWp}&zU3lrOr4Yu{x{&@l8Rj8wm zo?O8Qs>P0>;(SIUG4p}8WPx+ix}}^RtOjvF^;+J8_Er>X<5^QB!xa==@sRqE+4UMn z$^^=}MtU2ig+Y>$A-keRzsVrQ-6^$Hhg-Tz(9_>Duxns&Fh9U@KhV{^tFMcdKU{Y{ z6mBU=ZUqlj)p#$saO(D>!jUtNSc=- z?2<${aSPX(;tcnLQ%UjZ32AIW&`^C0Jz2g?l}8Q7vC$LZ%??xLoXt&%l{TMBB(cLe zc3X=jy$uIbq6J}8kUHJe$*-CN3c5x$GC|C-mKti(6q8d2jt-w{w|y>fJx7{1tYvzU z{nm)|76oA$bD`;G4)Kj-^NEFM@;OqhB9HwPgrz_{iftt$8pRqMlewajStw=f!mztm zkloH}nuK^ehHYxNwQ3X3HJp!s*c9THMS*oa+)42bT=V(~lfc&X7ReX5mp`m3q1Ua? znp@t`DzOHqtxMX?&GQp3b_=3))o9rTWK?nuc2+I7yM$JvY==^+%N$#Y-?|3726qka z>gCmg-oC-U{@#H;^dq}Cu`9o;cUSK~zH4Bhn+p})OyI7*yxpNVSUz8x91V?NzN!hK z0oxa*ws#*ntQ+?S5!MpPk7;e3#4I2QZj-@J6!}#aOKaj~WU<8kU)FNnvd|$523M3f zzkPW4q>dQl-3g{O6O9?m%bra4$A^y&9ma&o7_+es-Kyz4T^b8Fq{f024b^1YPUlVA zkvs|3Hx#j;pz7t@C>>2%W6!9W!VlrhOIM1^kY0}9%pG}!jvJnvsyTw6OAsa}+#2R~ z-JlmW*B_PX%A#&NW=yfHHoBQ)w|6V1ZR>V~)!XYR<=ZvMz%<5z98B1Ygu0}`{lhgm z$>l|y4s0WuYTHM@{f96?l%R76 zZ_=Ks zF)QAc7OoAFWI-=y9lZlRefhz`elARPAsPAxP$0wW15C1!;gJJ6CeSotS%vUtsa-DcokkB0?>kE90!R{rKa$pC_5-;~y^B=;IDy zu~qvyvk0ast{#mY8q#&7DUO6&_GVipqXH{#^HNMf)F|85k^>C(w+lKhD^Bi=$HJ-c zQkOhr@hm2nuRIl*z%kkDNT#h z)r>R{4GQhKI1!d~yME;tHsRR{uc$?N<*b{g3=Exa?~S9IfyshJSX6~(NkoOZPs!(^=p)&qTI14F_Z7Yfu(X6XzZ zqpk`YyL8JGDpb{$k&i;e*0(RY-Q5E{1Kif{>+S8q2+d6$ju_dF+4UV;JoifLPghP2 z(R_G^MicG$v4cUAipI*;+h#qTIa~>JK_5Q$;iCSXND$unIj1*Q^t*R) zHPe0ilpEVL2)mk`hT6If%f!2b!B!Sc1G(oPCL!6z)t?Da&dTTXN$(PKS=Nr}x<_F0sX0~=mpOW~=ncAPn7*r)Zpds)xLtY; zb1w*D^5AL*>uR_G!gkQ^1L}^DuHG^ZrkZMc1U1Nom#e4oa!0t_Z%Z8vq!TS${8I+z z>|r=%;fx}K;oA2NW=Z14Tiiz^b19R?PL_6V$DmVO-_jQ<%+l*)BYC6=YPO0rcr7Wv zJLw+m?e1cq-;1S{e|cU^>K*Lu-8I1GUvE0Y4+o`6xcz*4Snq@VEgYW_e&WP2_U{s~ zb~&}Fc5vg%mEO=})Fnu5=8^YYM(1C%XEonA9n>uyY)|1-Fo;QBV+rxG0K~;QJ-UwD z@JZe;Df<=T9kLT0FSmtiv##mpqU3G+?PZ&i$PpApr4PGH+w<9y7v%KGtIy7k zKYk?0YZSG3B}vksMKlPKa1kLIZo9kkgQ(-!Zu5Lpj2E>Adb_)O2m9g|0tUMBeZA-r zm~iu5d@E>>SAM&?x_i4(E5b_;OrfE}kL|~X6s}OyBFrK|SFwHZWSC>aM_cBYna%YU zDwB)|rw)$3jajODu3<~vdio`mDsv+#B*vuHyq+X!%1{M6;F_CIi9QK(V-pRKR-TAz zDU`GmhmP{m7MAZ;OOJLmQ3z&cV#@{g%v2o09I(F}E){6{s~2pg_b+gSE3j(}b}DBr zLfjLY1-LZ_Qy;Eomox`EKUgDz&j*&emiLve+Fdr;+4{_mchVyZ?yiJaUY#T1O^kiV zMiVz+F$}ukZ?`^M_8{q;(xsypk03>AjT}OaS`01WU3?C#<2jdRAIpf{qiR`&MTHSe zgE@ZfiIXZs;RKX37>@OV;R1D12AXP5UtjkCx{3_V`Mx~w0qug+-`&M&pWW|ROTP{l z+OU|2BhBV~0DI(OiL37wG=MfkmEG^#Zy$Xd8=js=Mq}%4z3FlC_#yb!E-^AyO!W#@ zV|76|Yv$8fGLeS~Chkua#(VW4K=g$8_C@H&9eU9-7(&B_Sg&;Y^f?|y0@FRB5at#jmSr)fr zYs9cQu!E_7kUc?o8(J3dpc+KW-&3&~W3NFuU1SwJXD3(gID@2*E z>XsZT`lM-&ac>rDRpNzvDB)TZ2j-IWaon>e{q`3Jr)SFVI5RspzfgJSVs&Zx?78zR z@9ORC%@68z!a-yS_k^|gVF0`P`vHW1;Zj-bT8tw?$_n3<0s+^+A4_&R0h-r<&z zvzltc=UEWEFA|CRwMNQZI)UxkV=eLhSl&TT!qiMTVD0@eDnYT*RH`x?fS@R6yFjAR zzA|BFC2qTGzD`CAdUTQR68e3R7UgJ;_W-r);lQ3P`qehaFdBX)R1N!wrpOIznp*AQU0q%9R8PLUm+$y-2H(dvT>_0G`N90IeEcRvAGb%ky88HL04vnMVD~`2n==7E z8PP-ZzTWuF00g@UGK8M@f7mu^(KYGYb!Z=q5SE^3E#}Rb@LF9PORyiEK9U}gpwHN= zr4ou_4YsN1OT01TH%VPwNSoJ*tu~LrMoAmf5lpwQS=*ruDO~^CoyJ;28rbCs%^rQ% zd3(NVd%ipA>f4>~-JS2-vCEx4x|`2)vU#GLSIql3GU2TeT_^5hvxapy&#@_8NB6}S z(qH6KL%gUNHkhv6p%IBC4-JiQB7hA|tFkNjvLan;^)~%sbj5Dd#jC+V8phX`gI=Rc zTV@~*e3Y&XLFDgSIcnR5ury@%JT7S2v1rpjb|~(-wabiFiR||U){xa^;a5Q1@WrdD zVQItMbPh>@xXoNFUVGv9Ba?LT@8b1ow59axk9Yq$-^Px~=dtVvo2#gU zgM1!KC)(URm2s2fZ$5T}kmY_L%e|d^xdd42{3YBdjYo~a_RmzumN>ZsQJ$K(81Qf<4zo7zQxEb| zz`!71!0L&wR=rbg>o)EWAuM^|lvhv%1evgbu@ z<|%A?yZ96qDmk}TI7SP1%=k(z9|Gy+vU$%gK9$9NUwapRkf(m4>+B-jdKu6OTtCLO zJRAT6^z_GD$-WOd;(z z6ZGf@}`f%A2ROFv89Y}doV%UX+;>=~{gW`&U(B4l+9i;rvzFd^E@30QLn zpExol!Y`4vO%S%+YB-|U7aq8I?YVTdh@;Sy1J+tOwMDWEB`sg)$$a!Ol?{5&k{Pa( zotA4Ps6ZHj0@Jphq4Sz7x0d)Bg?Iy!ip0yvsfj#t80X(8r24MC-7Gelx^P;DlJt~c zH|83syFZXMH6>!YDndOUEm-Z4Ap+V2@x1kBcAnnDAne z>9{e^aLSP3u5>?RjDKdCH;OS>@KH{5f>7y2-7*{tANwmU?zA5SaElG{Brecv=oeK! zU#|~Bitnk3Du4!N5AjP>!S=w3zdi}6Bgyh)+kDUp7WSc0-)ahM@n6~(q3t@G4J_SU z1mZzKu$ZNhuf@H4(~Gw!(7vzwDg$-bHVG!m9BH)K@UE5h5Lb%yAvZK|@^<|%>Uzu` z`wncl`h~$cs+e2(sQ~7*$Icp`gRRn+uIz>>jcqzqls#sPvh&YW{FEk}7f!Nv>zB?u zO#NuYzGmzpyCfVHTK0UpD~yI0ULlp0Cfp&G=%CI!Hk(l^-dB&GPSYJdaTwZ}=7-;3 z49D>Hp&QK%a*)|U3rcETY}qVxUDI;s?YLRKeakeIqQM6Kn%Sq_7#W?VJD9(?Cx+sn zBR@Z2H%0LpYwbaO1|+Vw;aRKGDDx@Yk80i}ADh?r$`(sqE!;kb(9su@V5;mfe)h)m zAxEUE&N`i}q^f zi_8$ltM!G7aJbWAn85NY=H0z8YLoAP10Um%D110S+`+YZ!DYCtkn#I))P(zRV!U{7R(ywOwXgAoByPA$ z=aijeZVwEplbbV)w9ntjO0xIrR;+PRdR-_E5Nhy*zP#7IFVx$^%{ROK61cs#7qsTJ zH|kQMstm!ri~0$_9`xglKxC5rq$ z!~*x=WB}LEET41=yN=8?g3Z$t2z7lAnw{mS_ANVfpm03SziXLa(7w{r_*Jp+)_G*U z*t0th1x1nHxoFxHy#u9}9peQVe}yP+CAc)})}p?Ax-DeEy_$_UMSLkvLJhHvc*;_~ zp~;*^1k)HXo2_ZBBbWS{X{w8)H$Spe*011%+Yq)Apsi-Dj#{#rW@{|rk5ebd#D#!wPN(--x%7JV{LOwuGqge9t9VOKqU)GS%0b5u_XV5Xpq(Y^PV+rlZ8H774BBqOX944$#LW^?ZM24u?j1XJbo2zDvFCCR zTev7VT26kO7sFM}VBJSD2LqB5nyb3qF%65N-Z|9tW$lYg!q%WsCJ!vz#f0s%4{Y0! zNm}HxtgfpwgZ!=ri|~1Ct@wl6wHP+Gdh+FMkpa-ym@?sGhV}^`)1-^6pZ0MRUYefK zS`}oIzqVqhw{2Gf={Bi@e9x8@$-V;?xq)3Y2fA9$I5T+THt(vdmUBBU7*eDyO+GXN37OLIw=2BSpcZAi3pZ+Pc;sCYNF%zxYj%r%yh`caJAAG zAT@W9yMOcTE6A`!g?2ireJk#5+csOxy-sGY6~0Xpj@rYPX2<*#C(ty7U*IS%$(9lr zlgg(jA&-|Hy4exBXq-@xMN zy2@2t0Zq>7C)D*Uy4vZ_H^pbA^R&vx)2c3>m!6fE!a4zu?=(+CP>7@Wo|p326zTF` z6Q9*S^{dhIXSJt1Ry~A2X+WTT}<75nbiV=~?-CyA*z3 zq$@vZDnHLt?cEC~t*6to>Y_A?r)TBk z=~S-b3OpYkLmnPqxcJ?1OA}Czr=ymk`vguXdZ268u4*7eS z*GJ{KQ-0zHIS==CC`_RIvi0|}A*cC^=INBbgVKBXJf`hcdjtwsTrW$$%JMYARerYp zE@QLh5hcyT*QG&(yXWt97Ov+ko|SE0zRDB`_qy^JaE*^-k3iuXpKSlAUUFVP`Puvw zU$ksEXxa~+m(Op-m%9&8dFrohdgbkH@^DC@UcwbuPR|0hr#phvK!X#m{ImV7@+BMP zJUlC(6s|OK+5A)|;cAE6NhYvxZ@*}cdph~*-&aQvuKw^o5w7-1t_nO{zJt;~3do73 zx@G&v`@_RkpDaIkK3U(xmDc-WJsGb9L{lDFCz{gB$ya*Oyq`Rc)4VLAgm_+_a5=@3 zObBk|WbPy#;%Vh8ezpuBANdN;_Bm*vc{<_Qw2rH;isOB+I6haDpX9MS#S_RWp3(?c z9(s20cs?KGi{^dBV_FxDuiSe9FIV}gZ0~PR>-iFtmaDwwylwKcpfuuh(d63WWoar` z&ihkoo#wu1s+a02=lO{)CtU3muDW@fvoy#d{E6r*Kcy4MDXsU*`yu{AKr}Byb!qQY zg(<+5pvVl;(IUdqW=JnuL4shnsU59bx9 zX+Fz647>m+p4#B?;51(+eay4`?Dcb=%;uLJL$VEZRv9zEI3TAoypQAy7kGP> ze>-n@8u<#7)4oZv)zgcn@;$Bd-#01%r+AtJw`ai9s!V~LXx<-QPp5gf`?u)Pz#i=6Zs?<>zgTZZboR}paqAX`Q@p6J>1!ks614C$OETy<92qNy*k;PE^^g0Cu9 zaRh3I=C$h-qN&d9X?@%juCnF(7~K_d4+9P9J)Y9)*+KC%ZW>z$(FAf{zHlFB4{ML- zeWbj-KjkZ))12N;^LWZbWjZLHr*U62?*q}Ya}_j|-Cm#Uc<9;bimSX-mS_&j)60@C zy5l^iE}Kt#9_@XlMA`VBpT^wjqGdsJft>pa*R#sY#&x>#Q=0^G-dBq6bPrQL*=N;R z<0QI#IpyomS-PjomaAtu`A+w=At3%~FIRCqzVrTr(6(mizLtL*G{N5mviYdps=u7m zg*%Ambj4Ab-dCb~-4!P1^--ACD4&<|MN_`&QwJUc-RrOP9sKe5zP61%kjn|wf6C`t zpnMg_`57*H(G@3KuAV(U zk7<8PuE$f&!P*we)8o+ zQ$B0a+t&b(ud-mYvJPA51G*R$x}PH&T!r!YCy%fm!-Iq(6V zzaMxW5Z&YRnD((~s%N$?3Kw1Z%1NKl{!G5dS06d>80gu0D$MJtXLov5Jmuqb#nZFu zkfjS(SbKc0LpxpZ-6@Xh?=<-W(Y>#PtL>FYSAKG$t3G!FitlNZ&eMwKeCxi_i0uGZ~+iqb<_Nm%g$4kr?MOruJ~RL;VMITmM)so$cdh9Z?-<3 zkK+2X;tM>zm+kp0ZwDSjT=kX5b6;&z8jqXxJ&fSccEuAft3MUy_2sd}DNOau=H<`X zJVlf2)I3ys6(*1qekb7ez-*Z7^JQ@VZ@Ktp++r`J2% zcF#j$UQdsweC1R>2lct=o+pnj_3(Ony%nx!fx=XGIn}|(uRToTr#dLE_lu{4l$Ix& zm*@4*`d-g0P3eVuI^lUhb3*ly%hpqUu5#9zN0L)YlkHE(Max2ac`8%3HDa`8<2$??$^E$Wt3R6F>Mti-o934KM>OT3aMfGSzfQ*OkWHVh2hl@cC|vbYzsR{fa6g+~?G&zj zJdLMUog8=!&t5;zLv_xA;(30GyB2ubwZgLb``Vy9{n_V@>Z*Rrg5t?3e{cJ@^ZYY_ z@>N?4fQS2-$@gb3U${G`sW0T(>o1z(I4E2or+F=2^S&3&%NJi}L1A(V_p;6e3bt7M zCxBx>He7tN9e4=X0c-`b;e+7fy+;7amIP3^^PhAG=R5U}`c>h2_V&0BDbPH<=yD$J zzQR2$L}>e?aPME0BPU#KRyu{N-_&-&OoVZKftSx?=vVcD`cdnt*I#kmDNk>k&wq`F z_72(e9gnZH-v2&+%Krf1>AnA?SIF)w*{O28d~ZuB(iJ9e<{){HZ69dp z3x%sp>1_%ZxO+VhDpz$&0EKz~%2$}2w@Kk{)A$gT7i8lr+~azkRlfQx0Tk}-7yn2< zRX^xiXPQc@aQOn)a~#k51n1rftN?ofm8Wn|ud?LSh6GR>Ro5E<)kksV%Y7O6LtqFf z0KX6H2NcKqK>16CXgoz%{%Tt`j&RYHM(c*cRHl5DEB7yfe*s(qJ_4))2?;$<&`@9b zUT4))d1lKJP5kS0mE(ON-qW)Kk1fy2M``5>lsyi-9r#*6_z2)-Nls>EX!hCTgpBy3 zzE}UK?cNWHBf9E$El?bad{L)3o?a3CIqNHqkEzdX)qf8lS@uQ1>%(I@wklhFrT$iW z#nE0z?jmp*xB}ETq*vcMkEv{>lk>jL`pQS+lclvkD~{?Y`mfWu?I611cvrR@qSp#R~p4pf5_FTSiOfal~3n?0{`CvisSQC`Ka&Y?g0|Oc|+yONv2AMiB}ZY z>B>j*G7FkK(;<4S*Er3Rm101H}=@slSxJ&uyg}2NdpeE}IwRG;hUGT6fAzZBW}it!UoQ z?fsj@6;J81Wv%tBc*j9eW^p}xepx!?mUJFZaphF@ zlfcJ-PXNCR{5v2ID2~tBIiBUFfn}fw>;*c2Y&`Xa`bhel`lJBd4b{wZYyt-5gDbA$DD1_6 z;1JjQM{(6Ar5^^$z!BiBfSl-BLmq1b(5q;Q>-kErRzJQO7y(WI#{u<$`bBZQZR=^6 z>ad>5ya)f|fZD459Rw6t_=~m6!xUF@QT2E!P+awyWSO2{3ciy5RXvoC_d~*SFK{m) zHwj3Vi*LkViW}Pg75H91qK3W@-z9)}Q*~1xsgLCpSM-<4+vAFd!SR z0A-@MDpqN;0NR3knBuEk=}itiwm8wk|rq)!s!>RF(8F6$L6 zkn`uS)K?z5KPpF;T_ZM;5zBI2gZTZKmrti5k|5A z{0h%U0L=l_+uI_0PH;)|6(HkP*N_^F?)83m~saUn{O?s^7K3 zM3;N9@b<9Vh_5clx*A9#LJgoF)jdXta=o~$`v;31KyL{zhNC(-aWvrg@YT`jUU{wUN8fkmiD(F zeE){)fexNKatAi#Y5-}KpUQyM)by_!NV;ZP(d8tE`ofd{Id$>g;agdU%ztzAZ@9zo zm$`pu#7~)jL-gQ4Ssuc6r<;FrcxgY7@ zlDiVZYti4Bgqg=Wvo7~nKJm#%@?i(ibTM8ncK*19FhPP7!)M(FO*q`Qm>1@y9uGv^ zc~<8~a`%~+yYG%%P3sqK(!3A)5~t&(s}F4U-8O2UiIqNy!Nh#_*sdE_Z~QTYVjLC z@axZh;RU$ox_j^IxNpPYtA=kq*>Uo^ldm{=a(UfK$NR5;`ue9YeD@6>xc~b*KE2`D z^^G?^f8FzUzwkoG&3ERm-?$++{Jwj6MJgPvUZ+vm^JW}VzE z8*Wf!EtevW&-mZX`VheuBL;Iupsm!Agm@VC{(h#cwPR!=Sd#xo z2v;(>el_)YQ0d>;@#LE?v?&dR3)eR~&gWiRb8q}Yn{H9L&=OAU3+=kcg-rU8+l6-B zJ>C>+(3$Ia z@|y~nXfp0XW~}wtGTtA0>ZzwTUAX0zTb_L2-ln^7xXoR-*y=hj+}-9b>}zuu-rMRn zT)3glUAVQ)U1-+8p8n?R@yxAny71lFJHGkk$uH0u+Pq!($+-_bBllqV`^hjw16o4>G_D)e%8v*{|BpAeVer>`S(V@@=@~(pESSo^N~+tJ1=dsaw`AG=<9Ok zDrL(j_s5p*(jS@M5yMx1Z*O=ie1p;R_gnn@FBo1aSa@y8^6mV9`6JIn{3oOTz2+CD zE&WL3uki;BUybd%^o^EpEIwENDZ?9)KRP47)E~0^a`Ep+gzAnZK3F05o1n%_gd?H@CR=CO&c>Mo6xVOX0 zbKLW9$8V-wcPd}!f$oIASa^(A^Z5T?_b>nTW1$JxU85m~U$AhEX>>{S+mDSr{BP7h zf3t2z*qNmK(wD408mIpq-NXad-dA3uaTmU9?H5n4<#s%O)p)f;d#U`t*kR>oWl1)J zx882y*?Xqh@c-4G^O0X93)XTk6<+=u=C_wB@1?>IzeIcf!Iswf(%$BQmq`Co;m^Lt z^4B{8Yq_pm5#i`!(pl(w0wQpPgnOZEyD{zvm6A z|B-h3sYB1b4Ekg3^wp2#4|*js4Syl?tjE^VyKw&35<@nDEJ1jd5bzAa@FpSRDZz0k zqYv5l~~jc`L7fy3*T z7&^_)62kFzhG6I2O+q{XPYHe^?u7J+JQA8`=0@o;uTTzyODEw|ip z=WFk}KSb=HxQ&}`h*b>t6FSzdTZbv^y66HELfR1BbsIO`c+k>@s%*S|Gw#Nlj*DhV z*RLn;b!7b35YPWmA;OztNbw{he3*KbmVW+E*#gLHCdMC%CIW1PGG2FiWe z`9Pz})(}!|-uxa*YXw@;b>A$SVqH%GTrl8%!7WdRcyx@Ma-`%R5G|5IGib;ML%bN- zdS>H4GgN(W9rZV=|&qLltuUrca8dI5a<$&7V(&cwB4%CJtMnEzz)lvYW}^ZM)mz-Xapm9CIKw6x@B@l^chMYCWf3+{`ac3t4S8(+3% z%a%!jkTz8g2m$&k3Y64I*i<}}FfinI>m zl3HATv+hKNwm}jHsV?sqEvLGwA`mI%hXO6cq^F5X20!j;L#GDX=6@Av&Xkt?6P8w) zs{b{aHhxkx9_b?rF^>6-m^N(&)%m?Z3!Fl2%trd(EWeOfU<`t<1X>vF*y8o;^?m>) z1}0ZKZrZZtmT*@|DaHA*vtB0Ul%yhS%r?>6cZeoj&5G_W(c0WS*|gM<&bqlf#8ZaB zg+cALv=9QPieEPFws`6Uu|=rOP%}SceFpkXPD@+1e*F>4Pie^sNp|y=E&9elXmA+1 zO`C3fS?4YD7BAGAVuD)^`B4v*s_}&po^+Z3vw)|AgCoCQrZrpU!mRoMU z?Y7%q@mr#;N8B(sm>o#4+g@=+H1eliP;Pm-;%y8YO(N1uv?5%hdYx!t7Tw4Sck69j zt$KAqG<8adciSs&f7NU5{JM}<84~XnZeZR1syp8u(uP9dsasy5YgykFXyO<3DIH3# zKb+FY@V49K?$EpNfwAa);@r%zZTWPdvG>2Z^R_$gy!-BZaDQPmdNRxyMrGqhzndox z3Je4bU#E?Qmul1Z#?H9e&{R{uO1Ryg*?`1hTlcC+3%GIHy4PGCuj9@PO|_SM37SnM zioR!!v`&K&Hr_zDc6Q!+TYrq_?G@kb5lyo)&JViv#y5F9>jQdl%a*qW8jF-h4oc@O zx4wMN;vtBF3;k7%X`QH$^G-vgQYKm4aKn2<1HDdDBf4*o@qEsRcfZ@yhA~p=m%ZvI zJf7+dD@ewEBIIW+Q!MewCu2PIrTSl?|2D*nNXT>j`pY4n)i}%%GX2d=TBTQAe38(-A+%d=+Wf^&9UIG>rUfYeWap2>@=dd zMBOKvh7p-<%ixVS9Sbzg1Wg5v$PJs{YH6(yS}Wp&Xz>}*$Lzi3*0X`8(PF86`5mvl zXIt06KNoG|%UL=AZ zxW5iG#SJqeG`T~@Lijd1RdmyhfyVNt9tg8xOXrVQ7{Q~+u~9mxFz zI8X!XK#n`e1)v7hf!v3|ff`T;^s%S{Py^~f?q4y4mnajzR;S+IKs^QE$rx?;=5@I` z&kblf+EJiQHNBL|P113o2CWW^e=nL@VV?2LqU9NGNygt1yH~t&z zatR7eiD^j5+?XEbo@Gys}oM#abA=w@LU7xfL@9(05u@@SIP_jcF@*5I+wMXpmnGzYgU7H8h|Gtils@{M;`<19JOl&y&RExi0+Qkk5}Y{?L*s z!oX`lgS_kbdWpFJ)POpW`z3Io2GoJvC&Ae$6!7cRyFp$J@EZ8|57LMD`bb9sXnYI( zhClvYDt~6f|J`AJA{lkUxG6ye^u49OvH=4%C3; zrzjI&AG<05HJ}dUeia<30d*kv@4LPy^~f?mvJ7HJ}dUej6O90d*kvAHjjzA5!KYQ7>TpkEt_d*Qi78PZ(#Q!E=px zv9e$*Twl8bIOIgaf(P5DwIVj$` zBzF-GG=M@vIFP%WaG(w(_Ye*=fWqqt2Xglk4%C6_KpjZ75)L$g z!ZyNz+=GMzbs%{?;Xnf@JVZE<+fF!82NJII)PM$1*hx5$%M%XNfuxIYpaB%R2?ugL zgadUT=_MR!0EIrnfm}b~KpjX12nQNKVUTbjw~KI~4kWt?2O2=(4TJ;wi0?R12a-L6 z0}Y_?2;o5Pjf4YrpjIFb&;Sa12?uif2nXswGDIAp0TlKV4&)9H4%C6$aj z&_|lafjW>36AmaYwuu;fbkB- z2xtJwI&feWXaLE2a9|Z^0Lcb$U=?Tpg)=+@_3!6-m2sXW&UN@z;^D6X<9dc($8Uhw z6=x3E2pve4;1}=)P?#qTkXs-Os1eox>O2>g2_yb0e(o&kDufAtFY$ODht~Kp!oHdK zdWM#q1GU$H-wFOT;6UxQ;20N^1^f!S;5(r$ zq6bz9Ut%4T!R{R4=LugS{9S~Ok_X zgaZwr@NI+xJW09}wB=sl3zUD7w0}XJ_K+uj?GfS< zZ~TqK`%CEb@t-E2pQHcohtBi( z&k#1rGyeF`QXlArFOnb6<3EQFjDM6kCDOl}JZ~9A5y-Ljn_s`v{F>v@&)pj1MZXsP z@g$~;c<$v9FU0r}uQ@&Xg;!emmpOc6lfUU**N1BGa(p2?)Xy2-c)8(Eoj1JxHHJUE zVtDde!=H=zYQ)FiW#Qv@S@`9MHzHnmw}r1J7XFclCwCj3e7%J?B7QOA-0Z_guvN9_M(?;`=?$&qTcN zKp_NFp0sekkNRxH{T}Aw_r&mR7QYd3zh7DVCJXm_l+Q-I@_LJ(f3JmKjQCR#zZCIC z#4ksD@S82Z-$%U|aleoHnTV(NX1~SauRdhuJsokspLiwWe!q15?^yiH+b#a(h!=Jk zUUziZ)sZ}-`V`+eQ> z-)`aK{V{#SD+7j~|9ckh_a{gG55sG_E&Ni%>u)f;@b@kJ;=_hFBA(x4_{>EM?|j7Y zP2XYom4e}SywC95KEt1l`09ScbMLqCkwbYhWq{ITEs`5u<)7hweTxnYxo`CXZXn54Sy=)m54VS|2hko9ZRkj@kYdR zV}(FJ^?~3a%On2%hSyIUzG>C)D-(u)Fye(t!;>Gd@T6q;rHEIi3_tvX7Jg;MaM{1) zD&<1(&qw@X#Gj3LBjSgDC`8K@<}Ch|h}Y%~pZQ@6AFmj`=|>E2L|k?=xq7t_{K`KG zUT*cg;j){_b-ue0{P7@Xmi~`0BSCe#eg+p1j}i6@R5IR;TM0{@YR25cK2~+H-_gvX86c28UDeDC!aJt|8WZ+ zkNCxiul}-y4}QYJlV36X7b8CMDZ?v2Z{e3B-iY|f@eW!Yj`iUir0%f6?$wzixQ)CBs)EektOEzhU9yU$*dI z%Yt+%;`!gS@XLQ?;g=&m^4Er+de*|PJa2gCZy8>H!SJUe-iY|7|6t*@j=kaG*@$0S zXZXx-TX=50;f;u|MtuA~T6nU_!cYB<;q{0&B7X74nE&ruc;zO;Wyg}ca*CO8e`xf4LtA$^Tc;(fGSN@BI=U;31`9CmxQ5~EQn%q- zKWF%OkKvahezDi^!W9c&?KAvx#Pb7&*Zwr-7xCvJo*T6Ana{`kBmQi}FYU7M%AZ;I z#Wxtf>CX)xd1J)CVEC1YUyQiFx6=6+7T(w&^ZUz)KW6xq=L}Dd8vfK54bMkh`|jXI zEPVA#hF0Ee_|`AS;Nym0iujd?Z~ZF^zdUN;^@tZv7+&~m3(uW0Jpa7m7r)l^>wud|)RN}O@dbV7zQ2quB#7$IgxY_k=D zi31rT0}O;Bw%IDvjDi@YrYzA?aA^yo(BjepqNU){ma5ydw5VVBQn%3Z|2+48UlKyo zAK(AMV?D3DpL?Dg(n-3LWjb>q@_w87MQ}C-moA2#IDHA+M|+pT$tvXDW$+-Kz8ua} zBd^dE+UP;vQ-i#CCEQvI7p{iOfvX0XIfcqUd`28<^Zdy;yO~@;B@fNmkK%Tpu zc_ZxJ0e6ppoiD*1BjNIWaAp+jeiiO&f-?`nP694G4ENJU0UjESy!<#^7z1a&4tF)f zrEkE=v2gK8xSvix4fl>iUU~-3jED2j!j-^9Sf3-;Q~o*Fap7&hpGa4pN8Z-L{QK}Q zU7<4*kvjv(ok?u}6S#c}{W`4Auj|SEDcm&`&e213`VHhg(~zg%gp;lGAY7s|KZ7&V zkvng}`W(HUGIS4JqV3&~XMc|NIl4?6Gm)o%fxMe8(Zh7UjJz}p?StRb>zEBYzenCW z2QL2^ZcD<2cVT@kKu_*pVSPC{3v z{Sk6~EkRG|f5W|dz$MyggY%yt_pdWZ`($Kaf4<6|$dgexw+Qy)u)g--Pu1`+oveii z_G0e9J$u9X2DoDhTp0l;mcmYg_F#83T%esXaQi-NKNcRQi{s$FeVLDk6Z^rr32=$d zx^Q}b8bGW0mw^qW;tA(hTQ){7Bauv3U{|7&rgRF2g2?Q zI7eq@!tDn!p9AY_DtgK%;oiV=VSSy&pZ4JVhr$JVkj}OtPaVegd%`6;Pp4NP&n-f( zug~Zyy%_FD!O6WiKb@n!!;z=!`VaO!N7;X z-6tSVrC{eo*gX<1(`h<&67s@P$cN|>ojRH09gVz1muP+MN>9!)$P09ucGJj{9mogh z4BfVp^B>Rt>EsD;*Qv;JC&CrlISJ0JVondy-pQQ*G~^X}h|ZjXyrYvjJwRvD$lFe5 zPWRE7mBJx*w6hA%b)kK_6ZY1?WxAg(oq@b`2J`js;F++y0d8N*{^)+X zoI&2Tj_o(WiS@9z8SbOq^WkI$d4}$zOSE$qa$_snXXzY0Ob5S@p4o`@!S9U^)8#DY z*Vm);l(`hnZH7~q!R{8gO#9cJqdHQv@LZ{w@^=F;*RH9RNvi;B4p7!2? zvtL4<`8k}p3wC}9574DQ!1g`J^M8bU>GV5r`@P76@8L+@2M6EJ;a_i+<;(pQ?K|#A z9(=FK5bafvr@xFmM-S4$_oJj9K%ROZ?d`A7AHpR%_&%5RKIVT%J{Wiy?tTz?@VzhI zS7GNPUvT~*9^K|MlZ$0#{^uga&OUJIyPSVtxchn7*$*D3vvl_h$W!|xH@*kw zmchMrVL6=oKJrpKJVa*?V*3}77Y~M$18{}zp`AlGKV6`^et`C6dXRPxL;LQRkb88A zPN$G(e~8>T0&e{g>>df{Y40dF@iNDw^K|-X=C2?x9K-o(w*zi_6?y&y*e$`uH1pSB z?=?hd5O-_-p`p|kG!o6XXyf6q+5T@_Bpig3w#sY z{~P4xTj1W`!s%P##P2wNFPx`6dYE=@XMev(dxzhzl==glp$F&+-Tp`R&+mb%(82dY zbqujTevea$F3|1oAb0t_WBqiNPW}nGcMq1YLI>Xm)$?cM*{>n@{sNc20lR;N9e!_A z4_)a;-u@o)+|%$dZG0Qbr=2qL z?8nFpzhi&@g3EM?4!$oe`w4QF-yb$em+7>j{Ns7>y=<-tdmp0z3Z0?T3VG@u$lF42 zk?y0D|3sb$BQMZBbn+wQ!?f`+++(4AiB3e|3f)bY|AqE;6nXv=c#zJS`}^yavytZ% z?8aa(1ozQS7;cLrPg`(_cA{{)3b_-5hv^EPt!7?@JW&H@=^na757BNl+IQ5VeTgp9 zP7U%@9r83?qziP?;rO*^-$%Pm@K8PS4BgQH7wG}oNT7YP5qWAfTns#c{f$6wxNz4< zI86`Il@{cgQOqa8W!jm{`J0dz=pi~k1$lP@d1)$ajD~a5;2iC?!uA;C4!=jPk50}) z-q(!Wn+>;*g|kUGIgXwS>(80$$(zUa<6&bDxMu=fq#c*-+mPqz;-0YA!h8`t5O^=P zpUD3AhTTbUn$FYNCG2l9+b@Ot=`5X`f;{6PFVMz5aO+g|PxsPA+L?yj-52e9=q#=O z_KBX#bT=J*f8Q|eEaUvsxjghRU7<5Gm>+=lL$tdb?%EA`@V$T)I?wM3?3#%@cOd7d zvj@SMS;&opnbTRiV>WVU1@bcO9uD`;VZN6AEr2WQ;MU#YYzDR$!o`hnKb_pf_In`D z(|I~`HuCm12K zKk_o2r;VFA|1#v>op9d)aPA@I2f~%d;K75~{&BeHV7TygICTi;e}e7l3Y|I>dGP(K zMLN&#V{JW*Ils5Hj}E@awRHvZ;QL+s=+sjf&rKoE(>c0A8;2tgzP~n0r}{Df5S^#H zjzD|&o6PAvosrM7>#6uOa{DMa_+HK)y2S74w2ww!dWQYc?z3>$F&wW58^^+Fx|6OUyub};4;8!{SsmROp z5FLC!ZpSM2&+o|{pbK={X~>P&&|e=NeDARSyuY5DA0zLjQ?z|L^3+d|_t1scVS6>_ z=l2Wu&?(yJLSCS=box!q@2uhcgK&<{(#9FclRrbAr3-W=$lpSqJ`?RT^dRm19C^oD z9Wu>raJ8@QX!(?fLfx5(2Ow9nBcxW|31&B!Zsfldt}cefzV(plPl2l+7V z{0YvSjrKXZOc!bI9ORilqkTVJp_ARr-$mX>yMKXO&qbd9D_o%6_u#~N$jfvOovt9S z(C**h^!eV4$y1;|Tuj?R35-1q`>IzuP_7rFi&CV&6YsSDxc zhsX*OJ@PVbwvi9gWxD-FK0#k(cQKx;O`U+Y`w1Nw|;B&V>`-K%Sll_XM5~ z4+mZVcRk7WyTgNl7sBmNG2a9358MW~_A}oT?hU*Mw!g`IF`Ny&7d#wzZ#eTb+b@BK z0xyNr-(v2;gMs&fQ{QI3FFX)0Y|B9C_Ds$c=WmKs$7WPSWk)Q@0tw0g1kT{UxkCed(uspm>20X?Uc~ILZ@k?1LGHH zhc;g0@*IbJh%TQ9CtpXNIR(!C6n0m^?Qg;!-AkwFK{`#lgJ_?lyXgX5qRVva&(PjE zjpNg4dWg=@ZEvxEx`!^%Wx7Nse~$JQI!mWJFNcLubB-`G@G@4RGdv*#1W5bnzxQ{XX)-&F~;yyoLD($n&>yemZ>z-2cDG zQ}=QH58)!+@ptC;BQMeEufX|XQ8*ce-56Y=y*S)uBTrYuP7Kc0!u@pccg@;r zkY^?#&(rP{I9ZE4PxsR4smSd*F4EmC?EgsQZ4==#-A5;nLY|m}JbMgW zroCg~)MVxz%<1&;aPJi6bcN2-?NgB#={~wd8`F@N=?>aB0sZ&WF733UeeNXYbbckA zn~vN$6*gwDf4ZB_twKITd#Ax2yP>_&2@lW(x@{)=KOK1=ouQps$SZV~POe7#GF_xo zv$=d-9FNYef!pSAyffhfoul0(^3+=7IoeqV8*`B-*Tda`H^3FTuo2GBL;Lh5*qsjt ze|NE$4*vdPaRKt+?=vQMhjUvof052#0uL`l?pz9Y?*ZrO3Z1zgd1_DOC3=9a+=zT& z5%SC}aL-~mOPA@?t;oCf;&}Xfk*#~fWjY`DPPA`Z!v6U8D2uegzf0M+6uHO0Ls_Ep zdCcGKAEaL!K;(^ou@r|m`>9j$Dn}oG`%~b|&*2JPrn}R~v%f%YuY`-gg!}01+pu>ka^qKUKkb&` z_EpH8U&AH3@O#+pM4ta6JVYCRfjd^S|GzS)3v{{*dFAiO?K9x=N3d}w>=?`a*S|x7 z!*J_5#WN z7Zt;pRynA2H0aRKr&-9vkAXg^FB>C6|&0; z$cuDpZ#a7qmuCr_yqNuYaD~q91NUEo+}#&$y%hH79=bwT=)wVLU%U+MO9#T;m&5r( z;N%ssaVVUl%XFd#d3pu%emZp|T(}asdlcMy6`Y~-bdgS6jodk!p<>YhdfVb=mK4$OLX#jv@g>+I)4)S>&qceo(w0y2&Y!V#Tz*P8F257 zu(1|yy$LST{d8s>^0u3iyX)B>UDyEUZb9yx1t)HWa~t74+Sv@Z^&-!1fd>Mg4R_pz z+&c#zq$_mC?a1@p%<0s*oc|8ae;!<>v**K^JCWzM!p4{2@)zI%x*;En>EdmC>18r%OK&U_ut{sA7Q zGedCU3HJ96=l=$r{uA6!dw*vBB>VddT&Bx(>M7)GEheJ%HS8hV37~-dMPY&W(c;FCj0Ehx2rHBAosq@_Z}XzYJ%m!+o?j z15Unz+}RE8r;V9#+pEZpSB0i!9j_zL?hcpe^g_7(r^r)#z(qRQ2DiO|+}#r{&=tDvP2`2e$V+s2 zFE};G{`ZCl=>nbl8S>H+=5%f;=YNayd+-2VqP?FZclJTvM;B@L7szw_BG1w3{b2i- z$dmiSS=w0!57Q+&^EQ`fIr1U8KzIC#%hQg0fKJlMGV(N?qqB5{&eN%1qkWMs&}BOD z8|21;7_Xal=|S3~z2BmJhR)Lk+WsB#GTlWx2XTGqB;ERZv`^7FI!jmRBAxmJm-k@w z*H5Qt_m9Z)bPrvkhiKyv%-=qQ_AcE=d$jWo@-&^Hvvi3r(8)iceTnX+E41-vawQ*@Tj(Pg?sx5v@mJ)YZ#&d_cZ@;sfTOLUp8&|Wp#J13yOJ~~O; zHC#Tri_X#mbe>MuqJ5F>rOUKYhuk<3<8{$4U7}NTn}hZlx|hz;!*qe}s7Lz}U8F0t z+ko6T3FG(BNxDL(>5fLU&(lS^M7NGWZk){iXqT?g9^Ek#?K5;gou?C{keBFgx{K#Cz_Gx=p3Cs z6}dB(^V8jQfiBY}x_unlSLg!mtm1g%ktgXMIz?CL4Bat-%SRXKBHijDH%>$Uy>yZ` zT9BvdE;>t>=sfLBMEermM?0O|9+Qx#=q#P5D|CfUPeyz9bj&|Mr|9Gq+UP=mndxX>qAPTT?wG;x)}Vcn_UP8# zI3As&v-B{Xr@LmNeUUEFWx8z^a^nn)m#34oJsWw3?xyo}nJ&@obI`s*7ii~9^zSB- zdvp(-r7LuiPR~VqXD#M0(P`S7hdf93(M8&skGxEG)5bdVSEgOMeF2w`F3=e|u{+13 zd*}i^Oqb}cg=k-)2kFdujGx+r<89#j(P_G^jpNaIx}2NFjIWES;i<=nUO)INImv0lGl99f7<=_tB~IF`j!Q$J+|$X^*y# zLY|>BbdDaR3$%AM$D{k`3Y|CxxpM)=%hE}Dh)&TR$D)0fF49Fh*@3)5_tNec(7$mU za*yt!)AS&nqrKzNzC`!Y&V}eNaRTx*-9s1XVY*DGPegksi}?rWB%M47d5Z3(GqiCs z@*Leo7wHmRroB_p-na(CC9rM^Y_pNdYCTL=~Fr0C0sw+rIV{T z9^Ff)Y5O$fSvo`K=|Q?kw|Am_g)Y#^OEJECI`TB#L+9uUU7$NwqkV}UppDDWU$P6i zNB7cM+Frx?>2BJ+9PpnK?K5BfJYATQC~bm~gx8RTWUhfZIGe3*8xhP%$<^3a2H`dZ}u8<}4R zr#8Xa>)|0f_eD6r8M$#I+`a`a-2@wFbN-v*Eba8N{W-`hx4{)Uc{|+EjXXyeY2yy$ zZRc`+x=82mWdG+O&wmLXq$_mW`ONP^UZ9=3VRtLXr*m|f9-@sr+IttEed!*!Oc(Ei zd%l3&c>r#^5Y9Xaw_gk=`{4>*_!eBe1bO*8aQafXScDUo!TImP19XLMyBvAxCFK2A zz}X+d$sXAI5!^?oUS@tJ^5QG-0G)XiPF;oED8c=7o=#qkJo6gz0-gFXoV*5k@+WYS z_GtH7_;0 z7f${O?xrhrh0gpLdHOcCe-|#%1=_ovBrD~sW50Z#74{^-=+aQEZL-6hQF z!jZ7^4dmsc;R5ZgX5NoHwFWNI$+d9yo5*t;;P$6sCjMY{D{$lbG$_tII~{x))B zBl2$Aqf4~A3Ay(jw%^S0=q%m(403M^$D@mM;#uVBvzgOnI#EPkItO_lU8e2lIDR+s z4DHZGI!U|VsGE=KU@EhW)mvv!uOO} zQ7?r2n~Hi*#f|XWQDf$u@CbE?a>5hT8Z}?l#^aV7j@Nd!L?Ps++&8OVX=+i?+g#f za<<98>Gk-9)N9W*j0P#edUQ%%PrrBo%m48sJFdruE$cTQxPHH`jT<&>mKB;aXN|_G^VELoEi-(V8H$EaQkR%2W*=Mq zxZJ4ICq&(!nD$v=sm_Yd{)riBo$y<;F*@R0DR-DLHx>$4%Up9TC(>%!5nGBS-5Lk$ zZmu!S|1l#En(7Htov1RZO+6_UD`U5*Ta`LSy`$9Z=6%C6{q+m}&hjAFS8tEsO8pN~ z-jNb)kH0V#^I57&PXe1YG)VFZ7-x$Qi|NXWnG{tuJ- z(Na331pS{Nbv^CR`%TdQ=5sThvuAg$+|)Jugn1`z+Prbi`qeU2V=BGEHp1uY|BdA` zTJZOv^U_Z+&J$8EN_jy_FwTI~^)&n+$LT!lQ=>FxE;cuqnc59iMp(X=To+@FI!MnS z{Jm*M#t+7uDfRhM7D@@m+f(X#`fuyC;G{L{H+OD4edVf7_xua~)7r`RIZp8WezMYE zFy8G_e?ZDtr3B+WDs?^Wdi_2#+J9L~`8z|dhyJABVBFfRhA~n~LP{`hv()wU-_~>f zf7yR-i|5au*8NIN-%mD6JuBr>DZw~BQrFY2*KdbW{>z$`IbKQn3&wj_>hDYWP)ab~ zKcudw|F&N9KF9t`PxN#*h9~J z2IGEL>fe(xz_Ijkd*}7rC`Y(8>pEwz>s+TFd`Y=iRvD2hk>iZh$En@TsA24>TqDPEx}~3B`LCAx4N`8F5{z@F z)IY~Ka~JM7(Apga!t6$c;|)oF!FV4@U0rAxmXu(;YN>yY@#fFlalDP69WOQ6^ZV(L z{(|w&l=?;~TciZzZI!y7{vX?Mp&WPR;K&Wx{n_yf9B)AS3})PF1G4^o2h{v!3y zG2YyHZ95M5h0hEa{9XID?Dp{vlzK|aky3*3PLR5ucC~(TuFcxoIZaZ$7xEPu)<8ukuq zNL^36T#khcwk^j=J1&QO-~C_x<&Y)$&&#n`FNZhH^ZPHzIKh5?PU-_vekjG1R4>O* zq^_r3Eyt>D%hBi^xm33MdgF36E_{&Q?(@`MMuFobF5W)Q45`nRvOr2O&R$aguj9x) zDcHfmK)D?U!tC;Q^gO@TBmD*Ib%)d+m+}oM!FYpG*VDJp!t0fpTW}j3*ZgPPU<>EX z3+^_}yt&N(d7pW=DLeeika4?ek&PUSgjH02#?%2}z2lqoj*sQc*a*GX&r&}()!s&7 zy62DQUb20;7E1jPDJdzza-Ai0J?(0_)~{K+)1saG*+si7WIV$~`%eoN^%ra%77W7~ z-fo^>>zDC^?e;^dzar%|E|ZcLJ3sFP+e@AYI?vj&a;<(Mh!~NG@f*33DaC%BOSkts zN$OLjOqZgk&(p6yjEpfNV~ioWktxG|yLRYztJE))a`FG6U;lvLY($!kzp7^GH^+X9 zJM{ay)Zdiy*8ibj|G=IwA_?OIrMG8+{U$Ekz8z*teU6lQQuOqBwu65F_m}sd{_>XC zZ)S&nFOzzYl&k*_{o+79+lb6IvZ2|sFf%>9NXEbp{k|pjUrH%|j(+7h>E9n@ttJ|g ziN@ujiGF`c_Um50eLKvP`tDNNr0D6tZHLnrE(rRaWJD$z*Muhd^Q75t_YVDDCG~5i z?j_?dowS&wD}ljp>D_nCa=KM2*OK#+{*Y>KOeZ=_EBy&!3*< z=^G<2{RNNjC#3!@DbGj=#{0h1^|Y(;{DaT-5f3><4*9E%du6o!^l0sB0_HDqJf~;- zc+;dlTgqH1!FYR0T~E6jFF4+PX2`xz59!VJ{C=|1U#ryg`-3k^{ShgTO9{q%Me2H5 zoB7Yj{Z9QZtMe?m6E@||PXEw4!~c1g9QEZXpw>V3mzD8os6|<-HWG{2%965McsDub zN9(LQOOErmgJU8B|jF-YKc9p#Ju~e*KqH5rO@zGILtN#m6RPoWWp^j7d16Rp;SRU^x`EF`i zGQB*May;~gq>J?*@Ho6cRoYR*c3tEO2pkAGEO1jTPx#?%(&)W%e`?CFE#gj7@b1bvq6HZy#J zIaQvg7kGZZiEFkW2c}DX4=IbK1mmxfx}Hks;c>a(>`%WQTeW(_s+DWk>ebD>s^p|g zos=_;>R08ZjyX!z*|mwaav!Ug`&LV&aZI&xRdqNq&571FSz|0yekS50o1^j+KV(KG zh0as0rvHTGE%f|x`(=DvYI^$&Nd1RWUXc<4a#Q&+A!bG6pIL(z3EWDvUR8X$BxT2SKm>}=Ix65G zol@@Ry6D##yV{>y)}OOx{b}oDO*R?Tn~b-^)$s``7O%0B${Z&fCCmOR(w8Is==+U* zyKaij#>ZIRUV^fBLG4D6X?jA|*@#cFLkrs83{S}iiGt0U3K zNHs#X*a#Jkn1@NSOiHyCF^v0FxW*_h_WW_OdVHzr<+)4h-;nZ6DZ%o*A$2{S$jAAK zo3TH4Sf2g5I#-=}?8Y^lJNI3=apRiKjrx9;K1p6%93&;Sy%@Ff$Mj~_s_~H~|Lzty zW7Tncio6ku*T}(L@0l_BT>C5;FSnPchc(>X_T$i=Qa?mWN=mSNtE8@{>@JS)azFEz z@6gV5>o%O-sTVDEz8rdE+lx^ve*-il&oPlE`ERC@1=0T*#uRm~k=)z!`|p!+bWLxk z=cWFpl%Gopmg5tt>#3UC=Re%v{pC1v?V44c`)$a`>2EnQeNCSZj%_bSt^B#YTg+P3 z5NVDy*{a5>wUlMX)nqdkt`8|&HWZd^x?1I5@pYDX{dM^LZ`|&6_KYrT2Yd5SqQ!il2d^O}Bz4!2cF7-&wBZ3)c)9# zlP9&|F_96+*oW3u*Q*)vX;sx@YUFKhv#NE+%5B`NQE}Di#2UjRLUOMRjSMLjsZtHA ztdqm0eS*EfnqiyP2xZA%eApbHK1H4y;!V+-(Pl{Q#PQuiQ!R`2me5$Mszt@CLdRIg z$!_|W3TI7Kr{-EWn?}X+{1xqx^>wADx5s*^cT3qSCDvBY5&GUcFYSt?u?)Bn~QZ;Umn zQL?7Za*-*fTUoX>!fI6G9XY0jEIGjTn_=t?S)hGA`617JH*R14`BFbg%1SB0^1m;2 zJ@xXq|L)fRyg!fLBo{dJPL-7ylU1*ppO|J=9pwMK4!93DBm94>{zRUpYj3jT4b5aV zGCndg!j9RYNGz-lu$RfAkFb;0vKmz#sSE2@v9jVLLt{hDDp4~soFHLYn%9bq+F z%`sW2FPq_u%*Yt?jL<}NUSxi3CYCp~-195$&D+;+zSI{<*;`7me#@k;r>*O;UOT_e z(CfBIUTnYAmZfoStTR3|=Q#CC zoVa7Ei*!Fn29VKOg8Yiy@R;#&@F>)ZOuC9`EYI1f> zC8A>%%dV)eQ_bO#=R~^~)-=azo8_s0g?*59n`u97%Imuw+;291N^&*$Q~77xtB|}t z+}7WdrWG1Ba=V`}EvvDf9%WghYW(_%R-RvL!)w&{Rpgl1yy`hsi)!cBIFZxT z8Rmn^I!G-xk8!5fEpC`lk3a00TH*OStm{_8aHXdA>)BGjSjy#6g8lli)b&)&*Bv`Q zf9d;>evG8@raW`Dt&rU%f9Y~K)Y2+1pye2-cg*$}nl@Yoo#qE@ZiT^9IY zxqQBtS*P}u=kAo}k25Ue1?Ls2d*y|%lu=TG<(VvXJ?*uN=Tp5r`>)y9xoWd4Rby(U zoWggu8c&DEjjffJhOUaY$k~Mh!mc?A{ggOvM*0n2-(4d0o22wg3C8_E>U#S4cHF;T z=k2!p_u37cwjD4k=F_3~OtWG>Zoa1v7}r`xIozV^?HbiMDjJr%@Zs{NKN7QJk&vpg zN6u4A8^Wq;jDF78H$FvY`gE|LRjbjGIZcsxSPmhoA!LQD>i7jUYGhTkdSTTO`T)2{ zuDu_uj#CGzspkA}ORTN>2sItcn?BO>E2-PIZ`V~)KSRnoDZ%<}k-DD#+wnrS>e>GB zBE9GoIbJL^K9K!5O&>3kst&Uod5%|<{#xbV^!@6`Qjgtk7&TIY@%Fg`GZeps?fJo7 zxZSor<#?gTlf5WUPY)~qN$B>lfAdq^9PeWf|L3!KuG-tjQJ?6I{*^l8rpRQcex`ra z$XJ~X;pS1z4I{#dc#Yg0w?EFt)i<4Mueavdo^^Qq^qr3=vfJdCGJc06N-Uyxgg&C! z(OSEyYRnvY{+p+&cr@v>_qOjcEtdxia=d>m39#)@vWvzlG)f;xn2xoq+D4ygD2IiZml>_=B>dOtrY_2;F$C?(j>u{-@{#>0F)a?J&w-p|~}P3cEWc|%Y#Pmw)$ zcgVQQZcz<(+;$h#$d>*OhY-`U)vSagEtKOQG3~I`*fhr)FE6rewTIj%JJiJRUZJ}1 zme4Zg8kG}0e?dBAd0eUKF|le_hI(97D;!hj)H{?mS%&Fk3%AukF+? zKgJo(IOC>xJQC9n^$h!UzqGyIMN&UN%0W_s_2`zmo`UyhJ0G`OXPmQg&E~VF&pu7g zh<0w#F9VxWx9DT|-f|Vv`B1Jx##_QQauf>7=Y{kuT6r58jPp67x(i%o`>4yxW}&9+;za(Et|U5ZtzdUq+eC?Kv*s1a4EG$gM5(p{!pzPaq7%y zb==hNnd;>2L{-SLok(NYYF1+-ax|+A#mB2X)d5y4q9%#L@sQkML~(nBzOE?8>6Ov6 z8rc$emRoyS%dHcw8b`X4*U>R~>@1ZxQu2Djj#sI8EILhA{Ci5yMc-wbwf+jZE4lu% zey;qB-ml+~`twp=loG7}M^e|*oqXT4^LdI-Z}-l#*Z5D=;q-NStUs*!tNdc8^BA9A-qW}5sHXIv^bu?HDOE;;{OzLG z<@tS&NJDs}Jcq}WoFbF|?67S{BT-e?D9hg%jn(M~@Byl5>f_NW&mVUvzkPe!_ZUW< zlm;oLr226(M(TP>?czMfr*L**9-D~?K;zczjl`YbEqjQ4 zk>;rQ*yz-lWy?EIQ-v3XR5%uG*5`JfF~cV-d9Rf@-Sfxmk#Q4J)64aU)L)YFij-iv z-jlkXUf}Xvy3_gQ)*1Ru_CA|7b#C0eX2ber8#iv)IDNK%Ba1q*7`{S18#asbkw5=t ztN*k1*>K!QydO3e&6E4QycY=9L~6qG%!FDWnPARPXVzR0i^=0wmiHqwEFZtTAhaBd zVN|+2zvkVyeS4lD^;J?%ml7=ZI;rbvU>EzhQ!nU|{>LDi86)JPQ9_cT5 zoZK$;hon3vB^Yl|>Uyf?`GX%_kK=xDywAu7NjI-tf3ECoc^&&AUZ#E^FJNT{mm|iV z=1g^peb9)S=5>ktO*xn!kg%eOYOA?p#6;VwJIJw`CMB$KvZF5uFO=hRhuk~onm?5{ zeP&&Fo{a0Q^YrjW^2^)bpYJF2L!}%pC0NemrLHIE94udYr^iob<@zy{9@E*b23M0GT^ZVOZq z6)TRCz1NspCNGZ0%lpYO7aA|f>w`&h*>*&DLQL*8bJbz!MXtwl+@kdB%0KGI!D~`~ zTgq>w1mmvy3g+0=kjcYP4K0s6NJ8vrs>Uece)%g7qzK^89K+)+cyf^qkaxEaeR; z!TO%ohdG8W!TxtI{`CDopKs%(!Gif>*gtUpO>W}G__t!lzvWy)b9_vEL_Fr7{)m{i zoC=A^E1z1iuE+dSBjc-U<(%Bu$i(V#k-F-rDWCAK*`RW+N@kY98?DkXMA>`di9N!$_+A8U?Q zo_VnuZkBge&7lX($OJ1VE1U1e_9)8wy0Xf8|GzHvAt~=l3ARV-L2M6?kB6PF&&jq} zxoTDCrcHD8T_9^dr!F+JW}m5l9(7@rG5*(K469+XY=ua;E*i2`y}S?{9jcbowsC8& znqk#7TcbwG&OR&ruu@;z_KOY9`B=ZaEPpH4?+K|7NcoYJVEvL`#rjqAy5la_PYz;w z{l4$7-y{C|9jDi?5;m^0KD&Nn{q>U%M}B7gns>Q=BX(ZD`D&(Kzh8$;Uca2I-}R=MGoLp7o8zySgWLFj zhmDV|78UHm3EYM5_Enrvig$rsb41LN-4qmz5TF+GQEC3AFsR(p4asKbJM0Z ztJmxM=Y(RY&w4gw7DJcTJS!uPf1|Y zg{hWW7n}A)W~kjd%5Ieh;{|bfSjOdD&1lsS4VkK8l)MLsh4(zodd;-2G3}$HHFB3_ zTWj)&$P799MZyz~s*gmJV>O>5C)8`Eg)RBmq&2=-wwUcKSG8NLY4$=ZQ?Ex*cGF0? zY%#LhHm9jMa*V5w$Tll_@o4J!IMsn~mFQhi$7Z+E#0nHeZ#F=E%P! zP?sJaHf4vcY_8V}TrJQ2ds|jS9+T19S$3<6H8-E2ccr|`{{+G7C!1XPf&arpxo-m7c#JQ;%$a9os4ObEKRvCD`9JkNVAw zL-_jOiO=4j2K%Yr(7P2so01H z+3#`|r&{)`yd4^)8sg*B1UVVn5SgZ$CD;!Cd<@&+-CGa!EB!a%c8B}D-VWQq?P>sY&Npf5Lc?{p|g%gT{@O&$T#K zRc-YQWo@vI{ZyJYo0U7JUY_V1!usPc@`0DIYN;I~Cl=)y(i%DWo2K=#Y2RmBbE0>d z@lj)CF%#jj5g9IF*UMUc#gykiIlHf{t4(XOHN9Td%Ol^GXW((3wY2sKJ*%w#&8BsX ziq_r}^md4KxRtWzjvc@BTJuv2iVb@^URW$gYfH&B zQhCYIEN1}Zs*b!8X;4-1cvbCmYo?MH7IJ}btQBgM(-(5@ZEDsJ@viX0rg><%HRLaG z@n+9o4(IXhkKc(>pCx6klwf%el)9dF_4&uuvaH8$*m$O1Uhgz{w?1j9EbW7)aes~c zvVmP29c7P_mrn7}*gCn`uAdlB@qYm=bBpKqo0I;7_rdo{{cBQwASD?8%qRS2#)*8M z=-ui0qVw#PtG2A%+$rNvEQfCy_p7j34j=w2d7nG}m!>?lC#k4;kGya(KhQt^5;2~s znWuJ>mwoa`k<*XW`cW+}Y^?XA)`!u0c|65htT&_4!KgLaIm&WuTTT|&^7hN}0MidV z%W9ZlhvXPNNlJB04me?Zu^OpHPLO+Ic)wb?o7Z8^`Wiidz5dkKcv~0wNQGRJW`FZT zXW45*t)YgH9IWNAJ11m@w%E6uq54o;Xi7*f9Zt43)}Ccea+EdJKEv;8i+!FIny}?F z|5iV0^{4*Ll2&K#^enlWn7lryjKQ>>2AUe;6ksbj2tqWzj3D$8|md7?SjxmY%v zU)d_pHs?B95BGmA@qad+Z=dHsznp7t_3LtL&Dizo`iJS`xVq!*7AvVAp;({WO@D>H zte>-FVZZzz|Gj?Htvmg@Ua>nq^KUz>+V!R-zb{)IteiZPgLi zI`wa575&?qInm?{*7;;QE1GQepNOUPj!&tbGeg!s&Qz-{rfTe{emsUkDfN`;^qba^ zjbXLgo~jQ^H=3dG^7PwSKThw%`e)3zd=ybOdRTvW%C?;;)vEbda{k2{GOc&a5Pl2x zAEEG7q4+Qda{LL)2e!wrHp+G5)NG~fI{l`vDylCI z&e9z{;OU=6hx8jfj@L|ZIzSFuHTECN8`99={I=Z{k_!RmGYjHVBCL5T~D9+9NnkK<@0W%+cH7M z-OIQ|#;wJP`l(8vs4sB5wkNkA-w%=c3MofO(UU$8wX5qcvR(E1ovD8>Th$ulYmIxI zT4`TozquXy%}f10DGz+UeuK+7jYHu2|n6s-BYVFU6G-Y@an! z*VC@fYi+wf%su7wm76yEzc$k3-DS#=J}KpOQ%=t6zwt1pB`)tb?CP+bsZK`pvr;HN zO5PwYR|k!%i>t6)VQ!h`Ot9Qh@|JRp|CVyZ#L)Cmvo$d^Ssf^6wwvUQpmHL)x z6#6`WxeBs;!TY5jO8pm7%2I;mpWg2`GdAzyeB-v|pSR=k-=~*U#Q|+u#57 znkMg_PjCMpgp60rPp^P{hVB3F4!F+W0az>}{jlfP+P=AcKO8Cb)1-7s3D)ClQrFYx z+z(uj2R^+Yzf|8Yn3`a1%PWq6Nzs6D;?yy94?A0?$jO0XV@Z=u z=e&2iKglUyc|6ONfxB>J;6B_uh#S{G-Sn@Jf76G5Tjpc&WAaAb9gOSiJAB~8R9%xA zE0@VsI8-~PrLJ1lo1vI$*nPTujxQ1)vFDuF5`79S7K$y<$KY9V?y_ZfImsritcFJ0 zsgv6=v+R~8xt%yK5*ZhXSqC^*n$}hF0rc3K=ot zoR-FIBiq(U>u%G!)0EN2g=+n`z;~GHCevCxXIZn=qVMjXnBm95<})h%v>B3fF8Qxx zJ9o);bY)ZO`~A66ze~!!QiAO~^V{6c_u%beDspy zJYUzzyPrhWsE~b}yf!;VK1*dv?PP1Ws@d_~F8UT1y>+v`Vt*j{5F z#BH#>UX`eYR?MlXYn<#<*U1Ip#Y)~6Dkn5*jlEXZ(`q*3a(<+& zLQdG4GNn;oBS)s|pSGMXjEotlUo+1hrzTEOlc&kK^^ooOud_$VM-uhWP4cO;7J1j* zWGB@41!1cuYE2knO^8}i{SIM8xYv}08YNE(8|7~PXR~Jf#HPCDdUuq51#p)+I^nve zYmSSKvc7AYNqtgxVz?SVcR%BAE(%+Y?onWBeV z87FxDx=8BRNXbbFmg51b>uHytC*QFC?4#x_(+3%Er95HnCU37MK582M@+Ml|R>|9X zD?GZURz64}M@PdrMs=V+_c_n6RHXl4eDhhko+QPQ5{y4X>Uw&2SHCymkAI*ZKh-Ih z3z92j{HIL$^;!9(YOQ<3^|B1d%hs6^ye}?uIl5&W***U8;5w=I zO1V=?upEy`T~CQyaKHY=PUlDb>qw_<*sQO!;fOoze`t2%Z6V{TP)oSh4BOADP@^g5 zY4r8W1LPODCaddAYh<;4#5G2FWg+{#=Z|9-4a1e1zJD}JeK#p{qy)=zq}28FEA&WXTg3P>_ObvQ|MsM5w4dK%P_uEr{~}eDA%dDZ%Lb{ZIRy`DP}$ z=X<_q`=0N1-1|@o;$N-tB?_pFmqTNXs)`LuZcdepz}fO>F{r<9SAYLK4E`MO0$}KT z4_rz-@{1Vg_kuDN3o&#C`tag%hR|f7QHIfDirdN>ojR8PQYYj10j-&UR#rfvaE0C$ zJ|1U`Vt^GN?C0AG@D890P<$)$@1@{UUc55o*KybUGrk=X@@=O&;(7^M{DpnJ@Qu__ zdx#EXSjR$ILcYy~Wm|y-uuT*hD_IkSZJ)Nw<29<>9i}&{avz>aY5Q?8cz**r%((v$ zJoykl5P+d`EVz_^%{S-_`L-0EO#ns<-yT)g#kgf;Vj0$`46dkE@r+&XXz|Gvm!&p+ zx>b0h7(9PH^%TH@eGvQ{;M}Ng&F6#3eI3lZ#lgIvXbqic-RAf)$H{v6;Gw*0YV@T2fA{&hPSw=NFaiC?Q~`*i?PB83H_}KPZxuF;t%)ptq!~ym;@MlI>Dv3g0eo2^Z`ama z*kCevf&@%)SSC~ZnJBDt(-{}bS@3Obv}$cfgAmr+_DnHA`kX0M(kfVj%Ttm_Np5L)7wkZRl}~gB^t9F!K2*IqXrpK$})pT zlb?S;=^#2`lRjL3S*b-<+wNjePapLex#(f=-N5sJq32C-DTDbV8hW;L3prsvtQ?#9 zFc`hCQ4IbubliGGQm4xjfy3b#&T<`A_9w;Qxh;?O>lfyLp8%`^O#MFum+}eyg5gIP z*#sl*vt`UC_P=BWtA#BizUo*fN@kW^EFP=V@j^y>akt7r+b#oUXqi*VyPrxXs+>yH zFNGwZj;O>G!KZFA;W*&QvKq9I4HMl_1bCPErGDNgUeO)tm(r3NB@^c5UAr#cWj;&t_dboON*o5dhDV+Jz>>T+~}RR&p^6`-$3Q zMGQY?*-<8AWRm9=o-fLqwS#)%yvz8$3H&bLZots-2)LBN=-9kvTjv?r__qiB+qR7P zw~qNYg1EK|5m5>-r2_lUVLD*LWc{_Eb{_b%qCD2hKHgt{6L>Q)2{82^1}z$j^YC86K-zE z%Eap86;2kJKdUPwIx5VW0QI*MFFI}kc>Yax=gk#luE9H_JPDe}DD7mM;{O@AVI3&!bE@RNYmfT_Rn z$?*GlvukawX-h|RplH}lh|;rK?baXZXF0x(`g`2E-EKyZ&iHN{@mu)Zu!9}% ztW2iMVvfR2f2z9?<3o9ZSRcQRkiSYdmK7%V?M7e{}zN$pK z&nkDf7%aw?V;95yWMt(Mj;$HHJds76kaf%RPK{2dWGHw#>6BM{BgAsi%*h7lm(2HA zk?YIt@K@QM^0kwK$E4f~lzW@9?@;bF$~_l1+4EE|x0>}Iv_4;}3TKhs8!k4&l3x`A z#+(U%O#fX8{xI-3VEEVbRPbwq_TQ*6o7Q)(?jAj%=d7N2!b*A($G6Mycq6{>)4}T% zp%+|L@Iw@3_`hL<2f>E0`TV5y8scJeOwPiiW(^&dPc<+#6Y+Y-|CD=9f)4nK()n_a zu)FFci*Taq4EM}LMVYRvipR?B+Dge_PzIO0BzCna)tTysQCO4sjMxvpUq(DQr$V?M z!>dz!Xwpcq}D+bsu_%sSk*2|Z{{}=cpVE8!l>EPF_9T$djRNDZ5DEQd1x?_Fk=n10o zUbwZhQ>MdC^Q<1+)<38aAjx){k zF!!bL?I`mroW#4@{WWr7I#$7HqeNG;+oDKwva=k1JD$orVqX`z>#h*vJjbd7IUBaOqcWQ}lj1Pn6<>Pe=$~>rWzC*-t zsw6wZomOGHL=*l(?|%sO%&kY|XCC^zcJEiywA;)dlcLsh3fRcKx`dOm8L(f}@vBjN zVFH6yte_9{|KUB#P7xNXl#$^ym zL>Gd;Mo$>kw~Oax`Aq729{iWUD}br*b#N)4s4qGXY~S3odR^zL!#mGlCgoekHdEn3 z>vk#}Diw|}6=wff44%{SlYV~B2VV}X08D*d;8KiSGB8iwW~8&NTUVbYt4yz2D>82n zGViGOmGxcx8Cqgv?IRVoQPxFI4)-0TPhP_FvVSVdW34`(Z~FUD@TY;@fT{mwa4CcN zCv=A~Kf&%Bw0NGh_(ba&T3mq)glCqd`<)v;1-oKY@2H>l%Z0PR7XeEFQ|}gVDaCN!D{0yT|F;RIC=Av`(O?h`Dx3*%fYWcDy^8V-b6< zTRsvQyf)-3czm z#Q7L~vT1i$$EMX=Pd#JJs!h`3!i)x0*h>G7c}9uJj%BkB0fEpeuS-V%F}h2a2G8r> zR}9|!czza4`u(TiuK=$Brv4AXrR+cd4v0rPL-M4o3G<|MZ`-bJ}3sr9_lsxQa>jzI*O97~{#&BGD2>OJ& z9J_??BKBcAL1F1IZ5M<&wxyoFh^{lK*Q{fo2mdeNdce?iH@K9+;-p3Iy%y(vlT@bt z6c{DBZl(mx+5<7eAt#M5tYmDNBxFp`z4G{=wEwLbA}{pQQ2|~L6aYiV7;q_{pd;Ep z2GEfYB3;I`S^GG=kuptmN;5>K)ECv)&GU@B`k&xm26h6bzDL2Oe8T?mPwMMlO{`OJ zuB{Bx{YW6=;#Ev0vV2|48Ez;lS(>ksSd~Z>!tuthcB^zHp7`!mCol`l(JzNA+5KTL zs5ko}?FWuJGj+!}MGZ9QsN#;XJCL`h9Hn?xB{A4^SQjhy06^%uvN_%jl^e#O!zd}N#J zJiL-D3$MqM^aeF4q=J3vAH@J|`$hkJI|cl7;B3Iqy#rjzVDoMNxemj6l>4T#{U*^@ zBvvJ@al4guvu;e~SqVyYK0b?AKY?zGfuw>Q{kuLY2G8G3J!anj8T>E6`%&Gpk^YPN zd$28yp0Kr(*x-$UWO%R~km$&QHLgHj8qy@-v+7B@G~~^wzC|zf*S8-09H194?cNP8 z<=@t8j$w;8ukAdON-Nv0?wb`4s;YaJ;!2k2T$6V#89Ua1c`{LBsZ4B zr5zi>36^MG-$_Gr#&r}iy$x)S2fHhE1BP#0fivZ`ZbmeMpH=z`Fs4_{3+Sx+rDYYs zWc*D8pAF0dOnXiMmvUj0U(U!qW}lN?PWo@*maX&FuH7mPDXe0%yH&B29>-Ep+YB4NpsY9CdL~<|9UOf~BNguUtcg+mJ9&PQ=S#bP0R9T_8er;Q z@GGeuc_Xs-4b;CMQ2%msuHblod~mwIN(FBVf>)B{i0$oYIq;ABC~jREYh;l72&yRp z9}=+wih4gj)AuLLtabH7W?obLHN{7@?rC~FHv1;Wos>ax=N!5yg~cvg!-9)PDXuG= zU_E?Y(Nmp@#fWBZ^29Ryq;~#Osn6J&wJ2(MAs+Jm8ro(0`(E&efyV*U?iazO4A$SK z-O}GdA}tvJQK!#`|1HhTBl!RAxFqoz#vCDVT`W~NsL6A8MRXKi>7UoL!A}7;1BQ;r zz@;1)#oxa%ATHO?F@O8UQ|I@mr|VO{58Z#h6uz|vUO?gN_yE5&{G!$x_mFG7fwOR3 zEECHgH@ZWw3)My$Tt*Wz*?l`H!6FGls}f!QdbT>pKcr08RHTUBl)R2rpTbten@BTJ3x`icH#(4EbO6s$~^umyEkf;In`tVA_2;xRm1t8TV`Y z+sp80F=ymEZD*imJ=z*a?Bw1As&G+>Ig<7S4`c_OQo(M>6#OQ)DjRq3{*xBDdA|&C z-XRb&$MSTSB0aN|?o>$UF6c1h%NPCR*itkUWu)0ox@Qkh$aHgzquj zYZC zDMu?!W%ng=mTCf4ah@7?hizSvY}Dh4gb89{c#Y#xmO#xtn(#jKTTZD%{7a0q2W%X^ z2uuyN9w#b-g^3-&Q-?E@Y!;U(XEeg3-4rW#>w}Zw&TQC@MZfNs?>2&W1KR*8^qZYQ9UD7WZyiX;L~Gnc>(bN#WcVt4W^YvQqSyM@i?!hEfsKF^4gA~vzeDa~ ziuAAqdX5A3rLr+b7MiFeZ6}C~WGM2FyiJby3`@!8<^}J&sjC1c^Y%^f)Nl9>5Hh9y zqkqQ><*EM+&*Qg$;p69W(+?{;w;dI_)^NMkjqW>|>#hD658h@3uV)9ZYv0kVqc3Hx z$4iWkW-r%A6G>}dsocLR zX0KHBW9{8!6CajEoyp@%NQ%X$v4k%P_nbNMS((UE;Y<6spER}eumhtT}_i&D4u)pN2_@^ad?m?_8Pr30L z_fE$-*B%)^$Xmg6V(KmBk4%iVx@*Gm-N*Qy&iIw_{Vez%;J1Jo-)mnFhPUk};c;YZ$93!= z+elR~(o*cpPCUce67R|A6Mm9~mA1(`m6YG$96BLg;Ix-R92_#eRVLH$qo z7bcI%Q3LWJpzG;6%B1mKwz}t3;lU2|SQt0la=EbJT5Vlc*~kz*gnbT&(O4ca)l>Wv z-PG}1y|w^eGz1m3HH37vQLkBdJHWevZGfTchBrgHz8vYLOnzq5KfL$%N%xDQj=wD> zo7YWg>zT^NT&7gB4cXT??nk6#KrbcJ*K>Mew!T)`*C@N@W1pp+3LkHdFl5t{ zzwq2q;u@Gq`$u?3`R&fw3{P;*bE9|{h0S* ztRlzbag!uUa<0cGPsB*CI!Z4mEUnfZE{nIA!GvCY3zOGJd@IA^88kUw8nB3k1zF!o zxMYTMv*p_PtLN?WFsptvkU|*vlD5ybyWF}IkC{Ygz$G42%L7ZJ$6)okG49<=>-Y=_Nv`V2Ixz1=Lt6)ZJcXIgyVBB<1fyK zvVOR4kt+}=1MMdv*%|rSbw_fhnV0=`;!rUnjqiR> zrso;V&IzBl16QB4lXLKJ$K2_}M`K4XA;`W`<0V*1TJ`Trb9ClXwb*!F^sIw3H)Kkb7!88{U%bk+WE_!qk)xx9OTd@gih zY}vYcEO8@5NWh;DM?D8DV(u&!k2&s1IjO1MJ=5LZ=<&Na z^}ESB`Ap{%e0ov1GaRdN-}?^xWNf@Wo6~0-X%KcRCph8noDlZ&nefZ#=dK0+I&dps z`1v%rl)7l#5458k$j|MYKgQ9vvpHp6qL#zPn@CJgUuQX6=7>ZfpIsU@mJnAH8&~fR z)ujY3$f19nev0#%=pc4ChxAqb!Lka}FYClq@WsF~z|eOtxRk;4zz5PNbJcWr@fgP8 zrvdSFI&LmBe%-bnhsIJ)l-$V`W4d6E%En4^b#!?e(Ve%dci*jTn-re zZUUDwm_CPimaRRcI_X>`+!X5Cx1kO#M;$u(c4f6TVgMYg-9&96}=~rhjJOj!AL&rpLDdt|0f$P8AE3#_chBE_IQf2pA7Qp{ftbmih zrmglyJwN8BGE9lmSh0ljvPa}^iJwD>A;e78N2~eapL7wj`WL$%l^fD5UTzxsg*<8Z+5JdW&8YKAm-c zN=Q%kkNxAQ3A_cE3>bR0f=e0f91A^1Z{FS$vZwvOMRomcNmwxXGq!buYFtq6pwG!v zIH@5nVMQ_6Rh|}y%-Yg=I9D$zXL4?e^HH*OBcu%HBcr9q=hSKTnk)4E^1Xo^Ewx7#5SO}~Dax!P1)z)7K?X1#M z5aLsuEOI#@_k-pI_4QG20Zi!H1^!du=YXN>18^xz zjo(A07dLVYbS(>%k(J%&iS+UXdHF^#gI~6-+gRMHVkK2m*+U6BLFBEio{2Jm)MqHU zkzT|_V6y(J(ub>#pq?EwL%J5d+rO@~gP#U$2Mk^BflC<`$pyy^kPm|7xa&6Hrn}+n zFi#!1oI=6iIZ`_L*3=((sNF=y#8KCo#g0*@%gDwyUuAr9chi;SMDDmML1clCfw2Z5 z+B?KsgfQsl4=!6s3`D}8mRUd+5YM0H&nHK`?N7r?&Gn{ut!WNK`18fcx-yPX4#!O* zt1%u41J#^U*@+10kbUw^Cw97Bsq(l-REnvnZEn>5_xk0wmEfJg2Eercv*1z&ldHvN zo91`P_-xsPfojE|13on#L&loab(5*Dx|Og+cCg4ETF33n8yF|7JxD>_V1 z44=k1w;1xFEqcDxzZ(2hU<+XCU-8%QFGfXv!B!L(W$Ndh%1@IGZjag(e^q+^*Kz9x zZizzQ+=6g+7zs}~=wJkZ1zyrikE`O-;ba-pC3qt<(!M_456#hO6{(Ink!0`9M zeIbAAu3Z)&w-3mlk6v@(0ke#ZV$V83MzI&X;O$ivyk&w{lBL>7YwF)c7{3_>fqK}p z?s1y&k|q~;EE_Ko&(YS>ShM_`&0-ZOi%oJ86G|p}twn{(q?JQFjvys?^JZR9@fTG* zc%6;HGJBYAP3_j+v)Ub*O~D89s7)a~*P8fdg6rb~foc?<8khY`9*PY;v~Rm41Nnx-EH+N{=qV)EtyOOGEy*yx-6N1>lQ- zrGVjoFSwNZqV;#6+|J-$yWbG`fVQRrH!%=#qRs`1SIsS1Xu3THcOr&^R;*!&7=*<@X+ZYx$WOhpdnKFBr+}Zy z#xvt-+uFp8W01Fv3*&TU zQyYYp+Drl2%rQobToiV8Jr)Tn^&(1y*S(cgP_RP>y>pOVnY*d?jAcZrU_AR zOd;sGNfoTUQN8PVt{I;fg6{yX0!+Q%2A49(IBj0rxn_Hp7_-ric5W3_f^eevJ;es) zaf}omTm>1VHe`En(e5>~#K$vi2s&3vI6=65e_QI4vU^3y59{y!{Za;A4-^1H*K}|x z#=m3Wei>3kmNGe$IW2AM+@)6QI_rEkohs~AE&`p#5`eB&B@`o|Q6CaK@2If;UY>8p z#jW7q2Yv{c`bYdDsQzE*d%8Lf-hyIfi{$rRv5n1}n2>FFh8=tsCOl!%4)t@CDri_9 z33My1_j}e2_%S)-U1uKmJJ& zcPW?X3?+o1Ai$DaKz)?Mzozpn_tWn9WZa!ORkA7nz|rT2E9h}yd%J0mY44Z7Zvk!x zOnWDM^#7y1+(om$wR_cT-aB$9%w@ryFs(Zh)|a{DB0sK97qQFW$mPakPHaY;4DvCT zoB){YZHKAcHA4Igd<{{ip-VEFJpxRj>` z*+)i=`6vC}xp^Z#&60jD6rqc+$n+QoNW69;0A?)8%I_!0oyUGn@(VVb5@aG0_G0gj zCllPfnXK`>Mikq=nt+W)lN{6YeEBDKkBgKji)M%9S%s6s_AG*ObB_NM_%*1}AIe=;3qUd|GKA3kS*B*K>Q!(E%9Dl3UqID+@=G@dI-l1c{lV^KW z&kmkr*2%Ad-wk{ZF!gK;-R=fkCnt1uum)@m7RR>7T@-HHYK4nl5g++?}KJ*{zKX*f-#SQPL#!0wSH z{fRp|K7nkoIxQ(w9c~RIJ7tQY+`WqTicO>SF~_%yt-LrO0C6!~q0&ZfM0mFSmmRo=H% z;#x&U&x8cFJ*Ye+VD6HXl;&4ELSIW)*q$8`z0#gxAveM(3v;1M>t0 z?K!G*>n5apxe0+`H*}BpMER?p+C%-XBKo#|vC_IY*NX03LbvE5e7~xZHzmljiaaVA zE}+fkxH=FQ*laQ3#-WqAagboHS}-Kl*f32JVXlwPawy2^F@X_i z6hcVc8D^K$;x!C3;)hrxn^+@TfE?*jNAkBvNNOP#m>dVnc=}7q8|vUk=asu|S(DzO z$o(+}#y8c*hh42oTFVZCL~`G8BQTFLz~knT;i!r2DjS=g%{KCcdOwCLtxE`W5yKgH0S_Sqcm3Ywhk0|xxWzsiN zc5e;)r^OBVFa2{k`0>C=fa#y@(f5PPPxHHE#09f7T+w=DlWy-|Av;DEuwN?c?Xt$$ z5Voh3S50c$di2dDB`Fc+u2jyVkej`9r;%n#nx z5z^DYxZ()l%U#i}Z~4}3cmSkxl5()Y8K!gD?EKk&U3w&aopw-y`zbD_X&hJIrw$JR{=xcozeGZA2IJ{Kk4cSE;9;u z#b9gcgep&{xl~zysjTNrIb7AS5VLh7{_7dxxY-fazmMmeaTCXPtP-dNO#L@U{$zul zM?(I{$n8}(xN;J?+BuiXxkTVH?te)mTcjL0#vwwoz+~b{j=1avcs-K`fu#g(fiHSB zhLPvSrd4pfw(B{GMq<5qL~S0ps0W7` z8DTAVD#rG38QbqE>x$aOSejj?3JK0fioQ2|G4F;yfm>!b z^#|Qmc#b8e;5WdTk4QFB+vsHJFu8;zu5ikYGv?BXc$N_tm#oaur>RUrd3YE5GqGSx z7tYc@3R@4I7lm|IrNU2y&N1Lqff<0Ib6xbk@h|)2zOue^BSDVRf8EcEk)de|RN_*# zvyQpJD3|08NrXK~i^BBgAi~+*MQlV$M41y0D4XFdVWNCSS?w2xboE8`3SEzZ{}lK+ zVCZ@y`rh!(yc_;?5y~QT1xMsy-JC|}$r-Knb3Cbzz)vTS$uO{e$jZ4&ZmGhK71iHT zqO2l6Oa1e}mjOorrv6WXOL=M#yZwf3TUIaFz~Mqy79N()8zP-|A;H$LMRGA_i9QlH zBb=i=x%vR#_H2r~h;Ws&Z8A7Q(jMgu3o4P9OG3UpPQBClQRw<5_@98k0EVt1>5#7b zB72aLPYhqyZQ6GDig`WDRtRM~)ytvx_uRny`#gR?9@xdIQ!jctJdxrai<&rAG0r$R zg2z{8a(W76ZWBS}L8W{2ay8r9_1TcV^-=vo-v!{816KluzTMIHW;_klBZm9Ukz2NK zYhfpWZ-KbpwwF5Ej%LxF^*^?Ccq3O3CviF|)pdEV4B1wDZhhLx*;YN=kRSeUi{ zE#;%sM+Wh^;xtuD$~N>)91ZnkMbN5Fk~{Sa!G#6fW)Mr_-+XSiSGi}U(j?=_0$1feh+KM z@I-xlnKwS<2Is6RLVoO{y`%V0`ZZI^{tpZR3_qrWOSxna`>x@~e3SO6Z8JkL$1!`> zjmmo0Ze){0fF}yV#z&itlO(di8TO2DJ=qh{(HqqxbbJN;R^Sf6(D9q-`4&mocAOd>Cw?aylHpjIXWgN#TO2k9rbE(}V|HnZWxqs%Xv*Y0?-k_KUeUxw zeIlype3N8mf|cXY;f^M#c!4|D%3c-nttHn#jt&Js4mc4o^xgz6W#?x@`%~K`;k#L9 z488j$j$P^j{;6H+XLIyb7AZw$-T26c&!Ltrv$I5k61ou zJ?>c-#)ffd9*Xr*md()m7-w3ihq;+@E^SOZ6ERkMWo5V#l9fnTAL=fWOc4I3xzQqC zMPw=oirsnG$9}7_sXDv|5GeV3vic$iCGgqJe@1&(@MH-s!q>M_SLLU8GZO!)gTFeT z>xUEb$N44WIUzS98t9UF2+ChnC8a}1xWGC-yM);U=blvhVa0NOVW6CV4?C_4`PNbv z@1|GPSl#nKJeLiWjE%@@`;z@LlRu$U@Y1Oi;=XcNOj_^*(Td#K0s-%r3_0bTV+s^upZC!^JF`J7!Nvz!@<8a-0I#z|8nMzldxCz&FkFrTnmB_D{kkw=Ihqf-F&dn?!Sxn5&nNlp*>%_jtmKWSX6*+w~#l=7Q{3!uDMQ z{bs%XCistl#{kp5)fHj;z8szFKaAp_4WD~DkmzMOpk+h*yldRMJk{rYCKkNCukP|_ zT=h|8I$r} z-ZG;(-cqMi6XUIUQ6OcJU))khU%)RU(?es4VQzV@!Y%iz@joA0yTWOAw$uL*?VcY?u?7x59G_bt*bYYW+u{-H|)@Fhk@a@`j->UGiz7M`gW@MI941H#7HG< zJKQ0o^oh>ms%&CJf^$c#Zmg57Ef9g7@+z-{%u%n1X+E&uc`P%?<-25js_w4V5fX=bI_2&ZDG4_ptRh0QzLRGR&=L~16GP- zRz4nM5uvvTrAC#YJRH^JQ0kWkexvRB96eMmWNvnUGo-T(It-m%;Aa4z0t}ts0GBct zozXSf2T=NBq4HoL(M;#utF80XL{4+lAd+$zTmsGYrDEt4Wrw8V#=)A27+5O~7e$j8 zW}1U)t-jksI`=_`nO})&WmNz*fT8oJ;8F(j7wzg;u$7xsg_rGrwb^U$(5qnLqcQ7s z$U|+ON+o3f@?s9ck47U(e040BM_MDrXNf|KS)Ur>tZ`4k*>$`(Jr=7L%PBe4(|*MX zsb1xufa6Ci8ujL69hyvpqVtqHD<LU zP5-=`0e&cO7-0DI6>urTqPU}h{U> zkuhELKrt4MgIzw$%&*9k^@cq&F%bvg2KK~*VPYX{084KvxwOL1P!tADxlcI{DV2Mm-zl%P=MPs!Hw`Kbef-e=G`)t;DB|;JLfL z8`80ldW!rk;~-T}CQx7kVCc9IT*`&fzG}{;W*_O=+Idz#KikgNNdG%T1^6SImjobb zPiM`^xY=LEtXFc4PH8N4W7@qboyS)sQ_~u&(5)>sN9ZFRbPf6AxrUDzj7p5J2|m-~ zYt=Bzp8imxiCLEU1jEm7u#_V0)7dlC8z z&@b)#1GqB;z5}LxYrv%p79Yoa-M*=Nzo!z1)(>OBq4kL1b*o&gIqNrZ>zRC`9?ms4 zK8oCK)V^<^@kXK;fh#&zAv7u1DO~uQ8b~)ahN}d*^r@+q+#GaEQ)%!Sl7j1t!LZ5E zlQ?;JUUCgf5}kIAb4^Sgi55gmvAcg5wyO`i_wWDU&jBw0rd@A>OBpO5MVNnzENuHb z&uROH^jj_Rkg{$gO1Fj^HR~~ip~g$r1{OLVx$}Xr{+5RD`NG#l;Ku?d0P?B$S)CSr zZ^p~J(Yx({;2BUsJ2UWJ|O3xGlS#LN6Pv`nIxVVC&wN#<+s~qjw2#DS5mI% zcZ=S+E2L*vRG-lE3-C99w*fzSIl_ zrA;uYkxNCiD93sq3hCKHeTJStg1-;^9WeAvXbkBYsP{GfwWceeMJVZhTyEf;^QPu< zBt3)!wWr5(pdN?DNgRa(=Tq&cJr2_2s`+UMuBdXXld-%+UoWErJ>ri-y3V9tL)WF? zUjx1l7`k2um(m^O(-^2<4XBE&*1OboL>w`MRs^rT`~aOhT*Bc{wQ{Mq?{L1)mZ2^2 znp~o#vV_|F0s*dtF-&XhFVh$?~{0r_*|u_`NXko{yAWCO*c8I0bpm z-l*O_o@@B_4ESrn>wu{@))dxj&g}#Bam4u$Mnit1&dojBw|1^Lqq93W{I!2ahFKjT zNyNmHWDdIOD^P1C^e}W0!{ftAw#F$S=9iG)EFnp}>DP_U7Bxrc%RW9&-mEt2H|x`S z@Uwu=0fxTD;URs!(Y>eN9^n7HpFT6}xFr7e#9g-Pv#%?J#4tzeN%fcGE?-MT9fPaByXr&O@7DP1g5d-^m{7) zA-8{|6YiTT{ueGL`4eCLS`kftopwKq>z=$HTv3bn1WqCxq2o7mnL$N$|Iat6d?kCS zPL<(;?H%~JTUoF55yTVgjIw9P=eV0lk?V}dV;i%hxO`>G?4->-J|sR&h$C=Gm6LJm^{xdkE7H~ae;Br zzQFwSa}_(!i9cc|X2lQIB)Wf2`K^ijwEv22AEHhsdT};b@O3wK^kpwQ`{HX>UYO_IWGX#)x zy2do*msDZDC$otxRfp+sQC08rAzg(L{qt=O_+nrgVCY&6E@dz~>DJB-o7QaK+9NaV z0Mhcs!>}`s!p~;T6*!9Fm0ubkDMlB>d_1>>j)i(D&n^5cq~jLqG4p;G_>;ghfT80x za4CbWD#vTtV25k5{swON8&kHJr^?nOh4gd97h`@eqFp{ei)W#>th$ml5sSTzgLn76-c}Q zmA_r5C)f=UnO6G?A)VdOVd(q}_|?F5fT8mta4G+uPHse#UHKD4?)x~AH4sUf@_2Ty|k9C!&Z^t}uIf1_{B z>W!;6cgR^P-y$~9IjC2PSFs`yKt;OQApWZY1sML*c-sfcl;xrCvOGWgQbfUx%KvrX*n_`9@Ydr;39Oxtg2f@hP z7#fxCh>pjp$MEHU!2bli2N*ik*#9>={wWbJev*jYQT>Z}zNvpDcqgy{F!g^HT#Av0 z2FfLjW>aNl`&dMfm8%#o-%!?D*lx%Yi05I(9*LBTeTIdChyX)cY2=l)?DTDhJC=)x|@YplNbQ6t`I4r)nfUR$j6M$UZQNvtXn> zWL=8tpFY07{>9)Y18V?N|1R)=L9qGP)w#^WM?CAdY}e#a@o|uf zOB`@&=rGxxFrB8F6Y?{@9eCQ+dc!azReM9L@zg_D@$i&m-zZD+PN*I}{8L=K>QXb^ z5&5xvR>F63oFtUdMkn&F)=fg^&OP%2db1Py*XKs?@xVmDv}+l-l)?0(>sN1HyJg)v zS()3P5RuxGam?QFaEv>turo@6k`|a-&N(|x)VwERbfaEFGI`Mz?fi8}$2HVr_KDlU z?*|?P3>^*4Asw?KKZ|h#@`G$8@9WmJBI*k%d(@@&tD>oUh&SJw|A(0Mggqfv=?w94 z7IL`C5t)#TjoDT*elI|z^zDj?SUIL@bu79rpL?*&?Q}C*uV!xyn@Q%#SPeG{l*!E) zBT4Jejq=P&jJ$5CWR0aoS|>I}B3&y9JomY{kZgC{#YK7^0n~q1dn7hg!J!% zKEubC!2b&T4KVc2ZVl-lTrQ2qRYZSC`yIHD^s3|KC9(e{XvM>}b-vda%VFe<>1nDW zJvoi11(vvv4&;U$@|m2T6^CK z+p`0D3$#!A<2LZ`0S^PFJ#!|7?YSh%)ALC=Hfm20Y#6DK-qQ?=J8hXNUqT6=tpF}{ ztmnDX1<@6s^?cQEh6#o{Hu%IM0!ANE-lM7_cpV-~*04}jyDQv{x}%Pzi|q6aEAg_E z#VlEY!J^77FC{`VryFLvqup(8qGqlhQp1rFm5cmtoS35Kd?iK;)Sob5iSq@eu2s$@ zwl24uuu>HN9JQbJnfBiT{w?6UfNB43a49cG`L4G``u=`7{=oK2Z|+dv!q12)@w~D= zjEg=)E;eW;@R(~Z@$2R)8yQ@ix!?m&x5B$29aWS2^%zsY=K+TRhK>$!DfdO|?x6D` z=!d{DMTlv;IncGD8lV3gW+*0hjJ_;ZL)ma~PlUDA*!0S(1124UVSIdK!O6ZC($z=3 zM!)h?@OOYe1BR|Ur-XFviu_JqjQmjkIe%p3SjvrbVY-f;>RS7HF)3W&1#h|F6&z}R z;ag878o8wpQy$&w+a)=&pJHjiI$mYh`gJ)H-=}phR+7pMjXOgo>dC%tRwaa)m6Fva zW7lTVi`|884~ytpZkQV0D27Q#*P%gl^%R1tTY}N#hzHoIZns;)65PbiU!_>?l&4sV zo6w*i!q024+S#a0%+Kw_RaDmScU&`L4% zp(y(1ud&|p>-8Lka5Y~Sg6Hgs>b->L$|o}auLZvW_Jhro7O zdYuA#`NCLh{+ZT3Rvjj%N@X)%I&NoTaXid}>a6y^h3&Ma^|!MUd;-u4n0B5AE@fx5 z-aJ0w9*_O)G)aT{)CcxmO7*Eb!UV=+?vmm2u4`SBZ1jWcZ*g+LeQk)(ng4u+SY4q< zG9gi5#oR^~2<#_fEKVT&4bhpg`5L+$#nOMUa8;FZo#9B-BXTSBNn8Q450x20+&ud) zA(hC-{|MXlB6OR1@@Mc5fWHH#U5V-8U(`i;b#5PUAI1K5t?N(Tl;?Hu zKMr9OVcj}BxJYz&RBs#4HT%&<@H2sP08{T(;8N}z#J>9RdLsvx%FwhX7Pa|LSZ@hsewDV?B`bdAYL=7hpJZB)TW!wg?MB@sV^k~+BbqHkQ z6zn0kW${hQlXST%_*S_`v(ON4!}p~&5p+N`&cj38kvU>p(+!tsT|3pCMv@_&nD27y zcx|q>ni2IDSJ`X*w5_J<`MQ!!1BdDn_HCgjX-jN=z^9fO{rp@AegtqdVEB0fxRm<_ zxo-+P^y!_OyE-LMHP{f=qoF(v4dwg~mGyaCCrXuE^EpD5OwVv>2LgIroM01p9&rzx zkFjT*J6@9q0eT-$jtN7xTD*|H-PB*8e(CSugMTRW%U`T zT4v1Mw)I4Y6xUo-mrqp&@(3cChoG;ycDIC`1Xl!&nUN!aTtHjq=Kq6aaDm2$ge0fv zxoC-x2&mvC71BL@RzKZGgRcSB0fz4HfJ=!-_wB_m`nVtH$LQX$SuW)kPPgAB68x{k zmuCK*j`bJlZo!_A(iP}NbF%R&#(SKLf^F!JyCi{TTstbyCEx-AX^Aq&+(CP7dg6Nr&x;&+c!}Xz;1P48XLf2mJrBJ@Z5FyUO;R(x%IT zHa%loSL5!|68CVk$eR{r7}&_oQQiximiQPnWshgTy9q=6gGz7v81X_-Hl+V?=rim6 z%i!+<`v60KaZX78`m4fzxa5l;?+^0J^>lZ3YzVKD*`eOj!P0gCq9d6D&gYFDxx%$x zgnArASgjIVMMcIA!n=IdGB;N3mz1Kz#!*Z%1f-E^*mS3{a@pxdH}6iz z#j~u_IFntbaDOOQ_39+g-1D?E7q;gb=r!%R3;ajGV}NOoJvVI6zNkGP4zQzzQ{jLn z^{ShLL(Mul&wNR)U!MP{W8G8Q-<(nstgy<6>RlS-=aMuB(SM50m&&E(j;8MWQ{{gs^-BCYm96&$)fhqjJY*@bw zyW&@2$9yO3k?UgCRk*#F#H$JRkOU$@oi6zPkW6i!92g0*UUD5pY&^>O*+gn^cgrNN zn3(Mq7tE80Gj2egr|0MAxt%&ePU!X*Pls zXNSXraAV&tXEBCoQp5!Iqh=(76V&8LzARLSbnT^Hv)=mikOhDmz|b`VT#C^v4LsKn zn-*Q6w`M!%hHwx2Y)BYG>UZ=s9x?s>A*nV+YaMWqaJ66?7^5etc^cmmrf*G1*Co_z z#`{;mZv*ZG3|()7OBw85KM~Uo813zSvgX_xtT}(Pt)0+>Eh&{iu#6by`$)c0ugz40$J@8&!s*C0gNC0>v^1oB(x*zOJqbHG5ut^fJ<-=*G?`juJx*Tt@N@O-91#7 zC8cHfV{^N^TN{kUpX#99I~qc|vkUs??NIRXz(l~%eKfd~!Sw3FC!tqJZClHHJyArE z*Oc{-GF;%&$)f}Z*NCu;jeGAl+RTr7A-Sx;~POW~Lw^G9(86H{v@!wm-X37fj%O`Z#Q#P8a(7Ob;A#QH3$SV(*; z)~(~jy0t5+cPGy^yHSY%&;3$Rvax5X6LZ zSi`!IXKhO&MPmj&7>I$`K;_bL6Xt9HBIv-JIfUfcS)-HIeN2}*`x z+!zCQ$d7{dI+2}N>42f{QgA7QtrsDE z3&UK``IgmKVi%la{UhK^9!gAbRKT61EUPdktamrhHTC`$`~%=0fT?%tlCa*F2eD@a zzU`eH(M7Tu+UKsk%T;~uk96>M`dz}C2OVpd)5=&O=vPcUDDqKpIw+!atM77o@pAMS zql4hBEa4c_$oVsx-VE|F9Ir3axT|X?l|b`}1~iV816gurDB}@FfZ73OcbghT;G%D{BL?54+!e;83-Xb$Nv9@fwA72qcUs{upzXTYVH{D>b8 zxF0Q`TZA{*jjH}-qpR7 z2dQ(9*DJHSiR^au$CIsTBRBTw(W(T0xTJ1XxkSly_vVSPf+DDY{(Ou*1{ zSoFQ=H}h`Rb?LVW6Cq>z?v=%7SE}7Bmp;4Fw-!B%n}%M*Hcz4`cOud$>^MswWA#oC z`LH8;uGD)I_&0$&0aNc2(f6i4^KR-5ZbBgNF*sJ_Th_2{F8UAaQhYizee4qA=q7Dl zmL)xp(iMIs>*vvW6b(NptUtTFzulw3TY$-cssG66`@!bTx{ccjQQ5dLyqiQuZN9jj zU3Srx%DQDg6?htkRA@AAinN5HeqG7nOREC3P)*D;n`KNoZF4yioDU(7vJ4QzH!eslPNpF70r@(QYM&X_dkxPu``8`e z-vfRCn0kK<{(q@=L1$R+;;7!;igdeae`m3F@5*PzW5q=ML zK9u|vX9i}@`Qa^>()Gt$OOCbrNMOW`3{_lK#KmtU)X$9JIXj~IdU>|l_pS%O5%>nM zzn$PxW(^`oc6BV4INyyM53HN2zk|pQyeLY>bZ%JOv2(1}fsNJYCOwv~;jwD2cO#Lo zl58Svv%~ghkL(|B&EPYExqzW(1-O(;28lE4>Nqk`LLW#@c*5T$C;T)A{3UxOtzBd4 zc%4^cC1nQzO=(dx;G%u3k)(=qLV9*mpW)9B!5;^n0t`K`gG(9A4*AdMk%8Df4QlSU zttIc<)?0QO-FO*3tbWGjLTvW6N{w$f3YuA5i4{D*SPbcDS+ssI6y(ESmT6P7As8s)U~}LBF-b;Sz)xH*M-+nKDu>2HCLi)~OufkAzoC zor{!iq2K0(bUjYJX1?qJe+T$8VCXvNsF1D`2eH?8b+m2WuzA}Gj%};A2Bh?=Hv@&~ zof=)~l6zh2At-9nb42GxY~6AB99GM!s(h@J%zM7u)F?hhcsCTd2^TX$^$>#O6HVBd zs?)ray{npwcA&fwpLzXFr7l$Z*U-Emr2i7=GxXm8eml?y82TRvmok_iOIOFyo6jI! z=mE3ODSlUyS$Woyhm_TeiGWm=#4d0hyN!u8mdFOHf2F=u;mkt9%i#HYB6_NhK42bz zw*pfDL(fcbDMnryxDSc`CZeV7UZRw0bH*RufHCA7%&nr z^-lqpGT1)T)gk^9182KaT#J5t$p+lg(jY&$VI=qj zpcOE5%mJ4&I3JGQjC$}BoXEGV!>@YDh3JLx$sqMAQw2s$)1mprDjph*f1Yo~!S&!b z1GfUE{{IG-GWdAg)=dg%5xW9s7Ev(8t)+(%16GfJL2yiL;_r7v_3h(%W?fAmhYlPV z0+{+1f=d}p-@F+;IQ2OBu}XD57h7e~@9to4hjxs0e;_4W8pp|0UFRlZNL3g?xN~&g|Jp zjF0TDJ5*O-H{8an)y6Wv1lK4saZT5LndA+vp6GI+7o?n|nHf^{ERFh~ddzz8b@1;1 z_X38FC&8td_29k%ek%bTa+ykyn$Ov(E>VFOSAtio?Mq0VcvjBh9yD=$9h4!O0l{jU~MIemGnC)_3Ip-9I;BQi_d2*NIHf*IqeZ7Z=^xZ@KhEGp| zzYOdF41Mm2;qT9i_WQR7}y&GYikSXYNK95*J|($z$U=Z^)$GYLGu)x)q}5C zC=2a$k%ij0{`~{g!!h;|+%1>|8JuHk(>|9g;{6g&rqW|^r{Z?*nxWk~H5`Mv#!)Wm zx%^a%+DY#1#w_ht`>_cHx1n52oZ)9<2;H0DFQy&OD`za%Nsy)8Q7&{aADypl2&%HDAX5P!&l9%LV z0rIjzfB*qx5m2J2;2wcS+-g|DqCg@9i>=nUQ$YOUJVDplLs z)@o{(&$hPGMXTNX{%2-x0UEyQr;;PE0VZDvG+tuWGwk*t@q&>SMI@_qn?1Q(0-v>MZ7&^~_ODVPw zBj4_hdOY9uG0s8bP?UAtg7Td$X&l#G3`mfFkPV8{01a)?Y+scAkA>~bo;pOo0emdb z3K;scz@-$Wzj4i~jhHymQm3Pxi+abQ)^!NW2%Ao}S?pIVYr4+R-iTg5^_liw3w|T; z1;Eg|2V6?Ab!Hv(HembM6GTLGP>(}$u63)BI6}^ZKXE$d2(g2#dm%PfTE?yw{4qbeB6?j>eL}AX{9NDyz|eafT#AWL zu;QG3?NSJ19!BTdp}tIH8jN!{h&^rx8`xubMx_xuOEfAuVqiUAQ-Ni=k2OM@9Zxif z@}Lg!G?9lT8WZuU;$%e`3!^7HKT}~u=C&nazxYc-K7`L|@CKk6FnmsqzBm10o~B9cAM1SWS7-n3&~h*Cxv|71zoeRJOchb;6=dj z^;>W$=Df8#irZ+$hjlUPuYUbU^`QjnJ1F>BYjwP=tvB(YAB*`uzAdpjf~*{%#!H}{ zIK0e9Wx=`mGfYKB0Fn z_*a030YmS}=zBxQJolkzRLq0)4*m$eJrO;B;E|_MR=D{0KGfZxOxcqWXm1&%oaVehnCUe~7*}bj;Jx>sw9IV{=p` z);iO3F8MY|^dYi?$%78pZOg*;&0Ib7J{}3a1UMNm^ezOK@^FTn6MWlhMJX}@_6_5)|BfVYj2(h;TX#i7aN4j!x(&pFo3+()<$ zNkqCVE^cUTuoz({v;8hkA5IGQ8l9*~NamEv?Z}Z+tK^z_yVkdB;Z;gkcgSyl#EBKz9jtM@&ZaeoZD3CeZ5^xtDoYPCy0t)Ju=xbUsG zwFd{YI(B(EmmR|iYzk3oE6EP$>uH!|W8kcCpY=&^=&!(hTb|AG8ENY(y}|D!!$3Mt zm?AmNki8Qpic($4zuI(_ot}m>gcwavb*FHni@7uW)EA#hqyCRHr5zPgg>XQUI@xdn?#p(mubC8|&8-2{F+ za3^5s-5-5#=$Pk6=&fA8H?gbtAx8VUB6{yrpSgFX)+wtI7y}r3CxJ^jYFjwI$*cAq z=U|LCboXuAAoN(lp3%V(cXaSG&QELMKQ-A>LjgSTf|H2AvQ6Y9BBnV5TgUsrach!0 zMZ$w)B0mbl>uREwA{=&3)QeGtRoN}pKyTPTcfpV0cNh3>;1$5|>#Ps?-MlsA^X$v^ z<(F%5uPAte;gEZHO}{=VH~>Fse<;h^laBRWx0N*`PtfvISt>Kn*&unD@MqEX;k=rz z-NH*e4?7rQ1&5Z*ccMB(qP<0_rOxp|cUgsvA-_xD$MCxj{4C%c!0>w$xRhe|=zW>Z zw|!QuUc0!rR=;d>^DDpn)$V=$4q461%KYYQY#+B3x=WBQ&vAA194leOeaWa1apIAR zTt&6dbnyaU16>sTo7Ab|L{}R<8}+=s{>2~Cu-fYAcSJPwf_BCw@_N7cfI@id%u=)L zmRQzpRn=-vb{?|TwdlGRWaeZ)351 zS0PwgF6T@rF0vLbvhKwUohUti&P%a66EQm^v^%2HaYo3$tYa&{PY2cmrhR8d-<$Qz zJk31gX1F1INu`N}#yXnUV(nsQB<`nWRS!y7&JO!?7xkI<><8dK0e%h`dVd0!V)TbM zMs@^--ipC_%}wyr+yob1fKjQBgA`ISxe$s9hvS!J<@I7Dg4-gxGdB#4<9zUAfkl9! zy9!)NF}sl9ycvw*ZM@mm!n+V()5yipLO9CSC+`GQ)B5v4MeXN=?cGVeroB&rzX-ex z7`lH3mr`t9iAFQfS@m8nnxV(U>0sgSwRL_R3w7K|YXe=o1R^7-l}=RO!U-+|E6X&| zn|6LWkdBP=G2mUm3c&F3VD!B?w|&HqWN@6r7zG`7ix0`u@`Et4Fm#J!eHoKQ ziBC|@a_g7l&xwej5tDVIt=1*L$iy_6^y6a^97iQ|1g_|G99syk8N`H+Hcuh$;8;1&EpaBRcU%cF+`HVaGvI1U&kv-BkbtR~X30+1#*gS;rC#vvzSmVjY4o?z{{O6h~p zhg=l$(-qN^d9o4w)4=(F;ph73`(pDX*atkDEX_XYmg0}=g!sD7dUuHa{K_XQ07a&ReT9Wqa|J_PhP1*&b~pfC;DW*I^A7B90p zi4z8S3HE^}tVBv$Ja|pCIxdddPyJ@y?FH`#E(8qy+rXt1jT`=n4QR9>o$tCwG|UG8 z65wSq$AHs#J>-=jhrt*wI>@_AaYyqwPsIc0)yoyx<0jdn_O^O23HjL*(UbmApI|Kk zN&v%81-KN`59YZ~e{7WfCr8#O-&%YeCa5Es!;wN~zu>Qt???2yqWXm18Q`0NPXUJB zMbY<$j(P4wZ~fZ6>0R-k=(TN$=0EkB_3@YBe+2#n7?KvLX=cRMrJF;??>vl0|CYwmDciUM$J+ip<7bqPUe$ z;#5+)#$C&;{8YRl@v-3dYdF_x$ByOv5fPU3C+If*TE#FE4L&Q_2f59REh|rgnz3V& z<<+vTw>4>Xr1W1F_WOdfhT4A;_~}3oVA_8G!%F`o}5|>6d+hJ#g`7 zi5w(>0&s4bjCvR|LX}OA!}c1(@RGm{;Z3EnwUx4CYsk;5&@gcf zs{<)12kjTa#2nRf&R%?#Cd>UKr-h)lBcvOMF2q3@)rLTm&gPK~5E;cwk^X@zuF^B1 z({@G3*IUpveEl2T{S^NO3}0p7Qi`1$!uv=MJrW!RbA=|fxr-5z;gL}qzWie)lXGuG zZwd98eP|u{g}@fT(7O>_it!8Ri}JYa^WJalniO3El@5MBN+62{DJGX^&yQtUnLm&9rKtEvUUJ5RySUiw`Zud%@JER-h zE>u`kExrTWKs4BA(C-kf*B5dAx+FwloBGYu%+o;rI5pTT#Dg;Fu z48#6b)B_#Yh5T4td87zGrQlUSEnxU*jJ`K~n5W@qe$PhYmac%4@Uqs~V!eiHb?~y* zAJJJ&J#7&kQMg?QYyk|NUEoq)jpFhS42v@)@`nv_2+ViftGOhc#T}vZSsP1=de%Np ze%upAa}SuvBuwfyx*<`5%a9#J%82t6kA9CQ-u!{9?Z=z}rAEeT>>~n`>yGVVe~^7| zFfZO{@CiU0VECK`E~T$X{FIQ-p#x*@;vQy2kA)x(-_2lFoFKDeS46L$`po)p75H}G z2Efp}6I@C$doQ`4hbD-*j)RVc)XCQ8Atkrgz;*Dj;52Mmh3mui?V&!i55&$>Ryj}w z7LHn+@t#tmqMSgAmLvV#*7I`Qe2_uFadwdYOieQ+r3gp-X zjy%+FxbHD zL0o+dVpeCOT0|VDQQnurc4Th}+r5i+nf+}y_{+eLqPA+r^Zg?8b>*h@%L4=L3ahii zdfhdSP;F7Y1;inyKc|5256l5fe;xuZrP#S)+0qrb0!0CCa=e|_sX^1%lk|#CGsWBJkxp)stZMX*x`(}+HMWUsh9dp`_2Qu8n_NH^mc0GQ8HAm&HkbXy0zw}o(crVZg82aZ&-e;adE*lAA&XmeB1@K>DoS&9} z8!?GhJw?JcO(t$|1$oK}E}|N1t^S$jo_KfIKfUl_)~R#BF9WUw44;pKOL?q_pN`q> z@*V#WS>Y-<23%-cxBB&1j0X`Yb(-jWt(dapSu!!ZPgQZ16+ty}{9F}Vj?5fHfe$G) zpL5y0Az%KMq5i`V-D(0_0K?Z&;8Kd++g2?XWxmXrTw6ES#UxGdyb=dAeyfPEp*yvt5mLR!_rS?FZEJfd<3%Vzo^P)AHqKI0F?J?hrfwk51ANhEZbjA( zV!FghA66zAHt{}AxkOGO-C;bq@6K{QhuYg|wmFPTxj*E4AmU5j$M*$Ca_9ht?@{1V z%zJ2_=6w`B?kBtZR!hFjwZXF6zE#}8JHLz$GG6aXdeAC|OvjmW(m}YK1cFErM`{eq zrR&N~PELf{g>@Nqe~lwxvOnfF8MlG8Q?act)dyyP)GwXA~92Y-z{OhoTh z>NE7-6*`x3=LZbEso?*O-twgzS8nK8cj|oN0E&ZUv>vvvWx`GIne>a*obqtm2tV*iv?va~tM!lUh)t{Q!Ek)~;lr#4p9jAKxEnBh zeivLyv3ogu_Vuh9#$*>v;`;`Zk03Ka0*|RYwgppSQm=(v^L{=Yw)1`3VdjT- zIrjjd3NY=w5?o3#xrFq%TmXpfCp$%u{j>8O$GR(7pG{WL$j$J$E~6`J;)$k%6Zn1+ zb$MNUy?v2#$;e68vg{^(S{B0fxioU0GRgWMF~VH zwjYX3Ihx3ziEWcvI!}?MlTG+X(rjMx-f=J+_xrc2rO^^lJ) z=$L*!6Z|~jBEazRIdCb(-g{v?Hux?Egq=u~x ziEx-C;_#rJT@l?SQN2R{jdjhZA zFNs%f=QrFS-7NAb$=8e61*ai`GUgDF+B)u*j|ipUB>GM#_V?yEVyC8vLtCDh=P7-Z zhz$sfoJ`1-)2+=kVDLc*jifubfwV&eam0@otqN-_a#mcU#iPK>2Z_&)a&A@XKJE0` zp{Bk6@vy%aYzzBS+I<4}$-t@6XZpYN^SZ$evdZeLvVMa#M_NdK=-S4p*_YpdA2Sp^zvlVu0!PIq=f zqohl56r;bHs)srkD7{oS+c-m)$Ldu#aSgwd0PDIfa(f?^{I}tb2PL`Au<&bv$3a7@8#}I*3dj&3N z+%53eK%y^U9Es98l>nkS^f+VO0@*d1gLol_bATc6P_s(tSy9+>Yxg%pzIVfyS@+%q z{|oRp!0>&2B%r?Vx=^mOCwiKGL%w+E(&ei=gz??#Lia@p`+Fb3gy8;V-}*P)1p9ll;=GCFZh3}0ku~Xc@jmfGN!pnU zly@~|ttFpT-gP{uaZw%i4o+%t-5K6YQpfWql1ftW@J&p41olLZS5bp}Gm~@6lWt9% zO|m3-GuJqeD`&1<8G8tcO0u@3)<0O!Rzy(5EN7f*^hd-c-$2_lVSicI42^RYcoWb9 znEpB}`o7pW({GEGuI%m*&B$S53YYJ=UM?oJ$8tveG3Rz7Iad2k7%XMQy3r1jhs%cU zk_mUPcAU5hWBj~RgTD~Bq*x~9HoFOO?Zkt?aV5DFp0lK+MQBf0(4}1`aMYP}Djj+^iK)m6TR>Tg3pJaHXJg-1iOiXG zlK|+fds^1G{jlgMm3MSc#7}QTPx!eQ{2E|8VEXBg(f51ShVN(ZCE?S&pQHynru!3z z3QK$;`{6^jsE5yz?GVrDt(Eo30*b&%tZZVy;~@{{LdP>fY|H|tZV5KWDpF;}d4Vg0 z+dNs(H8~yabR*9uq^>xPae23MlB9c-JDzq-p~@Q+RxNU~wm-@F;`?F$wtp_{KWWdg z;Ku_e0j52hqVJ3K?}`mQy+Pl0T&U!gxdXL8z8?J&J2$&IEONO@^Gr;DjXBOdH6|FZ zJrVs~)NjsLFN6Oa_yu6-=eLLa6|<)k(~@9-W$yKUP7I>3?D#k5ynH&Q%bXM^PYJTv zQ1EdLm2je!AcyTU=CYa1v92R*8`kBPHNgp84%=P~>FuUI(;u&c{}K2zVCYp{AJQ}N z)L)76dz<;id=G|$2-qAG@d(~u0(Tec=82pK1IF6#(d?$j$!>bH zZM_0h99M|Ql1X3-5rj;vCCr3Kr$~OPGo@~o_&+8H%))=7qdnbuJCOVY>{*4ELjG{N z2tE-0a^RIfb@Z9$8*{!ePt#vy(_OP3v6);H0ulN()#Y+-Yme&fq7E}2z2FxCp8-s} z-vF2LeB|FaJidK!j0qav^^#)s31X=q2y%cdLsvQ09o6-0E$LCNnjlg*gvx}3SB-fHC*%ZShxAzbsm87I{P;|78fRp$AitNRms)iP8Of^D zM7`b?HA2@bVL!FqFf^YJ244=W0!({;2ri}Ay(-F&)+=il$xu|s4YFIV2aX0>fk)+o znX(rA(zW_)>bbtdE%q+6IO8Wc<+F{7Uxe6vjX?xdUXf0x%Mx+U_k5PBIoe&K_xGkq z^4r8TuPJ!u8Ya8#Zb^mw?F=wCyT7h%!3Bfg$>i}2;3;7S#%bdG1f}E0VS5WVhV7Ag zF$sJYZ~$Q1dt~&znHT11=7)r0kjCcPk7nA&=W=)2VEwUXq|?IAODGgcDL6yVwsuGK zwng;`y)S}42s{iJdT&PG|F`!fSkr>tG~fO^IeT6Z$U?5Pt@CT;b!m!a@u!g21U+@4 zT3(M5F)gemfhlgNvG?SGRlI!C(b zI@`K&gbbksh{Y}x`~NYz5@BhYOp)an)ib9`cq>}D+f=&+ok8(x^M-o_2euhlw~Dl? z!mo3uQXP5;^6#IA{Q6%Q;&&AI@xV!d;rBZ`LVlmV<>-L#)?34;ndd~RUje>;>9V!L zblq9uI~8x?BhUx-|T7RPc}0FS4I?KAE##A2CUnra9qbM^cj> zkw}jkNuIvOgGX2L{>uvgJ@LkPOqCIjqb5e`#}V;S)jIYIrT?r-b?Pkdlh|e1<)c$m z+}~?{^Ip!oBVrj`j^gA!<0MgVZ&Reii0jfzly@o5R2dewO#TWsxRO}2opd#Z?E!@dfRcUN( zPy56p%cC81Nias}$r6{_ubW{mT&bLID1VAKige`835eLz{xzy}bYclQ+6AQini^kF zKC!eTwnMphYIQP!;hZz=sd|y>^ha`S!(3`r~ENe;;W_op>i_FlZcs;EzyRZlu)7(7_`1TBJFXO4;#$AwRD| z&z!sd0R92+FTn7#|E(dvo6ig9@vi7;_*t|5G<3SFOq!nFKZ(+!zK31uA=~;V?4*Ol zA7!fA&k{Ze!lS(om)dp;S^;9hhq!=ZsYcIv1)i@J82f zLw>hJ{7CDNB^|p{-BQG0%?+dJOHU;lqzV~`zcB>;Ioo8d#mkY9DAR$Yp z{n{i(laj$Y7B7#_(;e|j%&#iS(W}NkC82;3+*i44B`%O`1MVjGO!Q{uZe1hs3Xpla zwI{fpIyHwKlQbYQ$0S__iA~0ls<}!Wev)n~Q>V!YN-nQf+*S3c3^kSptK?^tb3HDH zP9>-86ZLF@3^eFDsw3E6cD^0-id|BtY#*1~ z)|>Ux=_PsslJD`3>|>4Wvl$x=8<+n?ri9OPxGJ&K$f_mZ}*YY-WB8YSR(7{f+^SWqH) zsz5yvjMO-Nmkz2YFJ;J23*u(O&us9+fWra9&k5lF13y7m(R*0YcOGLs+#qW% zt1?+t5!i?Xdn6UL?+NMdpk71wA@E(mw*W);W$^z_7tcS*==@R2PyZ*%+akJETtubF z`#2VSKVSx6=+2M6H|v;rn)PEeC6tE5X9fK|hhZzKc5-Dg2^HCJh zzOLtTUy|^cr21+Ao$9rKrvUd&j|7h?DKpSA%F$Y{qF}?fnR&Z10fZSj0xMY5mpZ_To;XOSjP5A-c$!^S*<^L0kEBA|1Tv+AMF2AquQq7LhLKjiNb z=$rTCW$*#uSAgMf91=PyuYNk*->qT$``-Kw26Wn^ZgSpHYL99{;^A1kn}rFKeY_(w z!Eza&i1~h1PAvC$f3idyY{n0LBvY}#RLmaaFUZaJ7tBKmm8fQ#Riq@a^Cz6ID&jdD zNP4ZEAye?Rd%qjtw0-K_}B_ArI>w(taf|7ydAq_GkjeJ z`y{LLL&th-bkLUsJt&mXbGmdEk~1tP-BaCg-Yr1D*a!!Ox?DpI;5*2O_rqmu>xY3~gls z2f0N25v>y9Iir)KGsssZ_i#DM3*rb`GRKW|+VBqKI#8K&GNqM?I4RcAB@^?5gIGH) z`-SqS+m8^R-sBb7_F**t;oG$9$KbyKeg~L#mERY(tC+lfSi4T`U9%!QJhp$Fb9WjD zL~H}ZOK%ATOrpC;#yvI&If=t4Fc#=b7La z0G9xU&+mXsc{y|*P@uqF0{i0&3C5UUBvp5|t3=uOQ%dvIOg9Q5EzAmfCwF`rD)Wh5lE; zzX3b}82Zmd-<$QoJfnAT&&iM;SFXG<~;28E!1!5 zUk`o@a64e=KL#$v#1mROEbc3EdlOBlUoAhEGskM{?r}L3CrQ!4V*ts-k7dLyK+Ycr z8+|v4;DUPn2he+hN&9QS#{-i9L;nSEDTOE=&erH@_MwP=pzt10-$wp{v(^=kxM_91 z8@HaKC(zzQ`RB$8a-)?}Gq>6bXA_^1^4w};Y7&UIXq^!RpnE?xr(`oWOInK zkl#4QrZb;9I&4y^;sS*-b+elvB^5hvUHlV-#aZlDSFPcBn43ycQ7MoI+zHs#msCOm z-G!(!D{Avxc*G!-tLa$$sg~>CD^lEGq5rn>#&VjRZO;mtZCQ!1pV}TA8mGD7M*$sx z>8D-bQsxw~UtP75G$k@oI{sp_klht5WRJVn*4BCnZtSGW*)3utI48<-mYw7t<)ToK zV1^PrC{M;O+@%mRk}bS^XCmyY$DR*5c9%`lbYKrsS)sWktpsx4PuL%i8-AOZ|y>Lrm>`p6zi zO4;;@V(XB?EQ?g38skc3<7_Uv9lwyNmFO|NPY1XQbz^!$qD@bwQJwlNQmPV=#c5N- z$D*`l!gjp{-)0~B06g|pVxRz~T?@da6unn5Zeb4heESQE?eU^Orv9$Bo}M84qrBQl zw!dhMDsl?3B-ao|D&=CAB;$ktS<{>MkTYp2@$FYkRuNI3@Ij*#w$Ra!`F#COFqV&2*LOGzSN&;hLx#DTdI$t@- zp!rsNX~;*_Lt%diA5+0+0S5qvk3*yH&H8JeW<9_!B4nj!BcU!rR>BZS;s7%7BMu<_ z5#4Q3y+ZdE@Y{hq0Ymqm=zBxYJPqAb7oD}SF9;hq!s;Ah-98B!rG(hs5!JsZ`g^J0 zdzd)@qySTYDYz6^Z(;dE7uDfEs*va|v zLY1TnV>z9Y@><-IG)_uPYh>a#YDBbT+4Yj8B<0M;z1nnaN-0`$$Gu4Vw`=$Ccr1~L zAD|C&^JPx%TO!5wkMK)~w)Eo&&$*Zc>0{gj+B3SW3XkuSSgR&BTDgmRWgZhif1EqU zn-u)cw4Cd3yVs-LuPL9@r*UitRLvz(P4nH)MA(t6EQk2>-K$hqR=^Lm|Gu(W1=pzG z+fJS|#w=WIRnh!^B8fjNNb-(}JFX57rvj9=8h$Mme9k5~`0mN!LvTWWQ_ zPbP#Zau>n?kyV3+k$y8#5>L0 z`Vjp&;70?;0fzn)k4E$(y-@qG_)&5=LB>x|L3kkc)(`y;B?j#^aS6WFc}1CZ*Hnp? zHxWHP+n#Q8ygZ^~Y#id{W%<&B;p`yqVA%#oX0xpPY3HbTHk~8@T!~*%J}P$TxhPLc z^yt`ugps$s5+Y7X0G)IqxyoDWEKBxcChvF+_CJ(H%hBN0J39Ll<^2@pPu7mfzeki` ztG&;&Io0GnT^5_6Gqc?nl~?fouI&1F8X@@MdYm@~%VR8(R0S_7_BjxwrSGXe7 zX)yBVjKS0NaQ6sT<>sSqUd?$UcI-&qRCSATmN|313zZwMK*{7zz=fv7T^@Yc>E^tp zdL|jyV&y38)AddrVy*%vr=x29Li6CiMyH!KCR}0}eF*o;*^1>n7k%px>K$zpH=MMm zFxGM%1ob!#mD$)*bGTr=N4G2blGF88C%IXl;{Hyh54F$M$=p%dx!xiADWzJyi&X3o z&gM^xv*Bc$NkiGw5YEH4Zw&3D2ZJ9C90!Qmh(fGnN zjy%M!7~_Z^5xNIFLfIz6m@eb=rl3~t^^GAPk3h%l=idW=6?hFWd?=3J{|g_%fwk*= zc{$$=B&FAr4+&P{Xvu3hc*?OfQDJjyi92^-S5N4kNIlN2@fW2bW^}YS#|)tBw3lgMQhez7jg!|5gWH_jp=dJzdVv6R~=0Kz=OKPbOccBwoQ% zk<}$PW0@2WME5T;y$J_1hOm=k;+KX*q1!tq*@vIJAm5(L%-#T zkiOA#Z5Qr|>hh#WNKoc&x36U)~V#0;L{S*2k;IwX?+jg>CI>4aZ?~ z)K2M#E#OxJ*8!#S6@Nz-(eK2qzt5=Wet@;#cEv77)G3)I z7y_a?<{IF;m-87HZ(R8ZgO1tT*~9)V{{8(c>+7W)k< zc%pID4w1iZMJX+kr^EC!oUL((4JI!?woMNEd4PV*@^9(qJ>Y)_{tcLZzIa#oC&lu? z65wp~C#=>%Bauka9q`f>olYWfpCU5TSYOkic(P^^V-Q_4Mn%zojImkOi%%&5lE~<}r zKVBQNF)?gJTgY;Ff_IF2JXQhA(yM4U+1@v(Sp?%zZDGs1_6ytnD(y1w`P<-ofWHE! z-BsTV+g>bDOHe!l2^C^jQk z<*nOiO909w+M%ref~~Vj(YMBJeA5nzC8`)3{^QtSmpkMm#gHBcFwfcM))hu)CGDeV zl=wPEB1V2X&*^;nc(>Q>0jj-G@oNYW>sc6_MX0ePhh|Kud2ViCMea!~WYr|Cs*!GWY|)R{_(1&w)!Rw%g=$7G)GiqHm0iL zT*BHc(TnDV`A4z`h4ixD8q&WvgHHyg0fye`-~qiN@$goy?ODbd_>4#j(DfJDStp4P zH31@CIRL#gTIVFTN@C!Jn*&P`o>Rd(MXm_mem6#j$a)XQ98#6LIXS5RQaK0erhu%~ zb#Tb%Bk*DR<-6cN1bzY-KHmWk_$-nyHjsBmqL}t>?(?-`YH}+HNDd@mAG0XzCXVCr zNL;cxs4qJ&q(AfNA^Jyve+*ax82W3$r4*CD2lT^E%5{)vwPW0|h)LI54*oE}Y1mb`sD(ie)TbItQPo#LY#w%>CvXb^bnP^IR*+d+B6S3M%2WH17 zqmx7ZL0-R*uUDa4fUd0je*m|iQI-c7z77DF@@h1Xx8Jevx)brWF^sO?FpwqXa#jsw zX9PbR-pIn;4pfA5r|42q_uxORqF~9yecX8R_DW|eBnVvk^oms;*t!%E_uIIt^Oy{#o{RENw5z+X= zPXT^p{C^MrZ$Ljc#BT$*l>f#rf~2K^^-RBdC17=|uv#Wv`4w$Fbr2y3*x`Mw(wgbg za_o6V;_6gORL`6kg)Y=b>!m7kN8fd1$k%GwDE}|fc%#5y%b!^aQVYNbnqEo6jE{88oB$O5J(|7TwKKf9h@c? zZbmi7M#nNX8r<$6hVjmb{#{Z1(!R&Rp9Y=<4E-0Q?@jy6b07LEdJOqOT^(ebtR3^@ z)WBe28XoXJ5Yemp?ofNDgU<(!1Pr}(;8KdMuPx&?1Zl{Q-LRs2!`O*|d85qzU0BXM zDIVdM@nFtBs;%eeNh(H(2vJR*09zc15()QAf+dl6jzcrtEzoD{qm^W2DI61y$4=;* z_5X43UBI^@o@6|Rj|1yM-V%{U4}|k*zD%PNKd-H|0NR9JJwYAEJXsXd9iU!A_fJCa`^13&4Ba^Rf1_alBr+slqcM0{Hb#5K_X5ehV(7gd%O0oOLs-ED`ziep``PXURz!9x+ zF8tJ{rI_4jXcs8k5B9I(pD;^jOuGAL@TI+!TQt#-Va;|n08M1LHNCq zcMZ3H3FKYUz+LJ&H`qAta^#Ia`RatE;Ys>9@}kXl{Ju(5;TNiw1nB^=N=x~EsaqaA z>)j@KCY(6Q6CPD9G3s%jA`PSjAW{)t2^H^y#hL}nG&_0_JQ$h$42 zPE&1&mAkE_A?Dgmjb2rB%ip2kz6f|+-qVB%M8;AiLErYn z*Wq7D{v{C@33}1M6U~A&^;CUnXfeBUW!S!%FAtp;4hKIPI1Z2^Fa2v#9>U@4iX28r zm&Pxh$D$6r9dls2l$S{21;nxRCDko<>4Bh+HGNe`ZzpxPQLoIKZ-KuI{1`C(Iqj8@ z_M9lL!C$Y9?sZ|1zKMNj^>&jb{Pc}buG^!pkG-SS9zFdXnK2*4tfx>Z&d^7)q&7Le zpGOWnPcJ3yi>+*4D`E!`s7l=UwKKy;3yOd{5Pu>9O{sLu_k6;$@x7W6;2Ad+YmXEC zh>S+ANHS(o`Aa%+lv=D7au8It3iWhQcAXZsZyWrZ{rWEO`+)}m)4oT+rFU znmudJ>^^4cy6$6Fih4KKJ{70KlaH}}N?`bLB95P^3;2DV9@4XZI7F`sybfpp483vS z{{y|nbn7sBzuAXgS46Lu`b_(_fL{q*4H$Z#2mfE_;SoKI-k^X^c?8PRK3e90I zl;KaBMo>r|Qu%2+2{(U`K8OQijT{w3;w2ZvdaPBk#M;lk4L!)ZX#C-)06#LnzXZM$ z_zGb7{W`dmV(0LdajPVXdT$?>j^#^bmOC8>9!qZadDiEN%R5cNl}rEciRf8B9->zX z-T;gS480C;DUTJ2N69#JuV1k+xa&YH-}{mXaVinseEd>Pc(Qr~Be_^i@JE2h0K?ZC;8H&F9z^#X?9nz7 z%5`~Qi_~#}7$Sc|Y^}NmwDrk)J(*1|#<9I7k%*%xMS~Uwq}3&7p#NcPZbvFB6uNpt zep+4~>Zdv2hXRKKhM!ZwrF0ZIM~2LheMOc$hZvZu_hhT<0$kfvj!4besmAu_jFFOn zSXd#DYbPvwBKmhxzghQofqx(P0buBtBKwfCqsV$YMBlgswSPs-n642srY=r$?{Qk< z0EaN6k{huca7il=^iQq=UpCoZ*fMiDlrWC`i#%&$rXZ0z+4ku%0?uz!R@a8Gzm~v{ z;dc%A8NepM@cUVCDRUzI-cgYp&g}2-D>_D*QsN?BVs)V;{I0GK%qGeu_JJMuQyzyO z)G%H$Q3?m=IL(1;m(*L>81gXy9mB_8z&`}+pAPXc4P46EMe>QmM`*_+oU}hLT_)i; zyMCyx0bO6U04)vC@AP;(l_m`cJ(WmgjLiiIGG>P6BdRVkA;i57DrMh_GY_sc=NjeAxr*g`j zT&fBiP&-wP+k7gOAvZEdGfW;Zm22A+@{|49(7mkzd@Rrk7=C7fODU#r2 z2rg`0#|8nxMT95$d!U$?#032jy?*L5?Y|EEPT(HE(0lTYklr=-hWmK={rk#k4ZUbq zH|+ASOFikUUH)&HpClef*O#UeB76!LCc(#oZqLP<^?WD&n&bZ7@soa{s?>Qaz@1zralv>q%1*ME;i4YvijiLY zVTT&r!|X%-nIxh~a+Z8aK1sF4+Z%iig_`B0(mldIyaJ1r6vhN4Ro*CXu6=}!nTU;H zNeYwbc&vPe`*jSPQe#r*YyWV4seK^VTr3Va%^mew+y9+iDsID);w*QQ`k8#-rswLD z-r@eoAIH4vz5m>O*ggtAZ72SX;5WzDJZ|e(f=?uG9Jbe{>OW|y=`vOOGwtIFd<`cb zcg{`9=a26U{`9xDw;)dR9SQj5-Jtb>{(#CBd;;=GSfx^8;FVpb+^xux#_~HPYjO$> zS~c-0)GNkT`SusJf3psP8IDU&^EbM{IuRc6Ogn2DE>J zox0JU_8)(@?LU6nNS1nUoO{3RK8I}vYTMEC5Axr`j=-)hJxckv+U}hWX->%D&ia~S zrIoeTDCT@j?^c?GRcGmw zn(kEfM{!0Q7ypt<9_^i=&eAQ3N0pwGyIocOTl-VoL!D3SX=ERaO~Z`g(~6(^2=$E0 zAKvhS_Mcbw5$aN<@3b|+*?y&(*R+nVJEl-J{uov1t`Ah=!MfRYWw_369vE6@uL9o= z+yIz$?{@J2w9f7$&z7KwVLX0zCrMM|Tgwiz$N)_^6Y+E&Ka_u>Kcc&bdW~Ez{tM2= zKn^f;M}Yq?bR&BupTGSj|*yJU)vV;_gmC&=>HQu z_a?bM07L%<@SsHbCsv<7e4p8?s}aV06DbT*{J#5lv1`QRRtRBA2xj z7;L1ir?^u~vP3k`At-ig)AO6X(I*n5e5DMI7s-$G`vPJ&6nX>UgV+@%*0Ouu z;8clWyqd{7nN8N?a^Y2$>6)b5=ry?_xKgF*bP9J6#7vA`X{BC{-k;YxRx;jeZRVK; z(%>zw+nj7=6~(9?(<-uXX8NbBU3gGpvJLfCDd>F_e}8f zfr|k{{~B;9!{y)myx;44`qr#G>!>vw`{u3g4iCeUhp+82#rbX-T8_tDM4X5mdc#Z0 zbc{!WS{diW8^aCY0lq4UK^3DDr*IYI8&|F9@RVZ*F)_) z9Q+huDPY=nFSrzA|L~vkc4H$A0cV>!KMXY{3C5X24c3b9+Ey>}^>l`_R?Nq)7lBO4 zXrfJX+#c!R7b^KN+1PMzDsx9-p`&MEql>#paspxJM@mvKC4b9SDwfpODCglw0-gPQ z*e~zHpBbOB-zcj9Gy#VHBfzB$A0N{{fkJP2?ekDijjAmJz>QO*6+B{RbXpF#3|VrnnVx~l-`K0|9?aMQ3pO67z-G> z2Y^c{)*ma@bRR~%@I`A@;Ts{N+TP3If5j&2e54LFbO3Q0k&?K=gJm`9g+Xn|AtL%) zsNcM=JHU4WUj+>PH^HUMjP8lU?~5CjuGxrqbOr4X8OZlOE0PE?B{__+Eh|v8-b=2a zR5Fg3fkfbh$R6h>vj>U^NrgLt*gZLZPA;z^-h7H~vaExcj^qi5{D^J}$EWSBkPjK3 zx!{KZhXaPsMbY^-PCaIR-VgpT z@F-yDJPj_T*m$h(35Q})U#LOLx1GzHv0?`jXx5Aq$)HXP>-D)oCH%HlMT`i@=yQM%jzBi)@5-7VB>#{UNJTY)bEhVBF4QjGuO@bzTx zp?7e=WbSoacO$-TMIJXo=3HkGDY5W{=>4ZYLof9^?w~*|VCannmr_hGI7lzJ>gL+U z@~%~L8d-6Q^&oj)DiaBbA|=LK%|RZ%{)lcb^%kgC=Fj=yw*q$nhVC!GrEH1(p@+|N z`gi3gR)qKK-kW5GF90S3lYlf(3t&WLt$e_?#z};*ypyRZi^Xxf3_{>wd?~!7}`-^`mXO3DHrH``OZ;9sr?}z5c!Qe*$9f0BgJa8$+ zK>R+Se_Hy6F0oc$SY{O_>C>YBR%!XKSFa16>!RnX;M-n4@73Ayj3*g9 zIMa089rE=YbPLdxetiu*^|rD~0mE0#A40xv-x8iS*j^=jklL2S;%mzC?|}TwDyqN42m3CegYi zB(Y}RnX9v7a*O>_-LtZr3C@@s72+{upl()|m_n(T~$~k}}=cMf8G8aJ3bB@98+Wn$R&URlDi`87#^S`a)xP{;Xf%W(|1a~u8 z8+*mGu!|sA+4n@*cb{_pVLQK7L>hTb+out%+CJPFV=r+CG^BSbwM6De|AXPU^)oI; z{&NlZ1HeOo8Mo{o!*Saa#qa2f&gW)5W!x|nAZL$AoV;!NQ76y={#pf(%-~P!wC7@0 zVY;4<3@RS?M@vMHT8*w05k-ce2D~U78k%SOb4Fklk1ZEHSUTT7q5*TcseGFqSxVN3 zly05uPZ>e5t5lu6z@3-O9)JydHpfbGqVq}p6RoD|uPE7EcRv)iuPfqT=H*)Ojlh|J zY2Ufg_hz3kPwX#fn%T<9gYH{v5438;zarSdTcRsg_Tgy$NA(DupMw7icndIeCcP8( zqtP?Z**xq#53!}|*DR+OQE`0D{Q@Jo{#Dm17e{2gw7J!w<#0~IwE_KBIp)*oRYfPB z^-s5JQ@Aos;R-&MpVe^;;s<|IRgmG4NimhQZOFk+)OB`)J_QFCnFN$QkA(bhfj_ez zUk`pC@Bm=={~frLVs=e*)I?NDLH*Wa(fC8Jolj)^e+K?%;61?bb1UajDQ{m9^6~sIefp{m zJ)bcApi19^4jonco>=f$C<^rrKQFPisYzw!<-8fO3RD1jMQTrHNfiOYeRt%fL@L>= zGaL0Mv5HjXn6G7$(=r9@r8LP+3WV4omh_m4qrGFMt4c&lZoV5q9Z{z|&*ut7NDl6O zq^dOk(xNP5JspnyDhOOt!3!FUgFX zz)b6VpG%o0Es&msc}@vGLu(ihL!BUN*mq4{+NVN3HbckE`^&(u0IrH?%cLth--Z6# zo>h|PuFmSKvwlQpq5jvTY4&6M;kUy22llG}eQ@_L%8CP~okxO8F>x)1+n*4xb@}PN zpX-Oy_KbS&Vog=xm`3i6hZN$zVX>1kW2gt|URqP>41=ePdnLO!>^hq>?E3jSr_LBR0&8n~3_i|C<;`tj7| z@F~`ud3=vBlkrZ4MNZW(!J>p6X%58cDe*HSX)!m!1ZSlTwwn@qEa!zW8SV?1gI@1< zLjGFb8(Qz@fG+}$2Mm9|1eY>1ii=S`TwW&ck$H#e2J{v78yacZx18W{+#4*gec$)3 z^W8}VFCu?(wt@p(dIVX0kRnphi#WLoPJ>yNU3?0Zdt#Dkx6S&P@*TJQ9Md!Dc z{(bksVBE|*iX&&Z4?b-NHWt%mH|+a6{&wWGM9?V)|LHUeII(Y{PwaT5QzFR-qfR+6 zF)xv5zzDuU~vOrP)0!I7AtP!q`khP^>HUE`MI`F-|w&Zl%_j9}s;_eXx_9gxQC zi>Ax;B!)d=nM$?ZS-}2LPY8ja71$f^4%f+N%HpU158b(eG^cnqs>)S~WA1k4{8Ggxs_8_c9gP*5jd%WJd#fTw0Dh!N`KV-vN=`0$Mq1qVTG&5r ztjK0PJq-L9U?E`oXC=6lVtLcT{#ntzl316rM&Un2Ho-omTRTc{ec_rnTK+@Xmyk0| zyS_85ukiDb{$12>=syAeP2lN>ro5d0o$f|SYb z8hjiu5ispL5M0WLBKGuQ`!@ESzARXSFC+UY@M?*Ka+sv@F-2}?+Vx2%(nl0t58KsG zy#?x(_vvczYk}<%EooOVdnbuIzH!y+HKt8}EvXdqB6-7O*s+!n<`}ypJ8l-PZ4tfq z_o7$!Pwd`+M!>Z53~(tkBRR~VU07saBy#$wt)@@&y^o1JhLaHk`d4jTlO#J^nHXQB zxH6-#%;u7%ll4NJnfeqWdTf8eh zwaweDu4EPLyBUx2Yk2GE%!N>;|I=ODvH%avwv8tUz(V$owPEk5r0*V% z{jkiBPou)puR5yN8L8H&R_xh-70rLzW9I)O;NJkAh}tM)T?Y}WA%-( z?#4_HvsjUvgzhiaKvaMB-{H8+JZu1;3d{gZe;)i{_`Ma`C9k-1-}O)I&P;diaj)>+ zan&AoPuV-%f&1>Mv7SofFX)VoRVA~d#*2_9_^%={W<-o^TKH2pyDOY&BXG%&J0h_w z#eb$MRzp~rysm#p`420d&f|c>=0(gje%~(uqW4dxtNeoeOK0my5IhyPb1YRQQxX;g z9vM@|$eFt==H7w=UAfg9xi66=k%$}Qne?0jV4mbr(FC0zgcnso{%kWRxqNNul50*xx#(CAX*q0lU0Ov0DFH z#VYMQVH5l3ZI%6|tvgF+lplwtPyV}H)gBs5e=Gava6UW|jfafacfg+qUW`7I`C#sC z=4tM4>({K6)aOiynAI1v{w$GjrRG9ZZBXyj=t+{>pC*Ll`*g>Ov5Fy zeGoLxVUY0HPLMRuj>WSHolnLqF*2wi%!O!U#ScR4+s0``7eVR&YdAh#5q~m1o58mL zgv1!+pJ+M3?;Aglf$02f#z~Hbi-h|{h^K-bbEo8643-fAyb-w6;Vh*n$fC% zpopcaUj}{*7IMMP0a3;|Ms#IT6eC88o)wW+n%TCHidm0DY4wMwnFsZxv9 zYTR11E?BLiZI$|MEnjQf-}^bs%n&jG`~Cix*X#d3d3|P{%$<2Y&vVYX=brs|p-3<= znO!Z^R)H+u3-{;w8k`cSN(;rZr;hSQW_W>7krEmzV*{RLUVr$@m@_jQ8r`a}83{-OP=3MTU9smS$UHL!f2N0zWS#d>hn*Ld!Q z8(Dm*GbfyMJYS{Tf5UEP{>bKEyPV23#E%Xt=QbP?2(X-Gu(V63dez<%rJa{gwLN>_ zv-#a*)~|EA|x4VU>V9Hh_&>>GX`GQA6s-22Y_t#(?Zm zd}9z}6Rgf*hCeHc*!U?N;>pFH8lmtoZ)jR%XkT`g%?nPzmqmW1?D}+uJ2Nnh`SbtQ z{&03}Jbo*Y=YR#k`g1w5gbp)LY+?6tskM#u4dO>q{vO=nJ*>;#uqto=7;ygOP3RNJ zm8mR&ewkQIGs$H^9@WytMe5U7CcS5U7-=bIsaaMgMepE1X_`M)EWd(tPTB9uKi-=` zisdSUJ$hzNh4k}nZuOk! z14G!tc|?GX>++&((h~LudZp$o^K*c zNVUF18`H?1o037*h)!QBQvF#Gu=!qwIOxaCrgJOEKz0G!$$H^D`bAl!zz((4HHSOZ z0Ua;<;j#DQKan${)bD_`qZC;}s&(QCJLG9oP}6`B1Hlk6gdT!hd~3*1uSglvA4Am8 z*Aj2O+R8xb&+)ZATi~mhrPE6kP0N=PE7S9timz7Ywz~d9t|uoo)&{j*?3ff! zuaU@=U<$ByorWx7S8BVYRJTJ(1ksRi5a&IH|G4;Hhu(qciz8HLxpC3g21$Yuzd;W+lp%;7PE{xmL>R#{3YU;<_ zOR?x9&T_({!q7@((@m_EAIW)(r;-N`@}=ma)=W)iM}2 zHFk8uWApX1$ZvqRfVCqtQ`>QEih2#*CkA%?gW$ty1pd?~}aRqx_ z`feee5`Elawl3!M8YY@EnT%(G>YHFxOCSI4vPEGgN?x2brG_JRCZDS z*;v=8YW(@NC$6CC)9Ad<#F}|h^_lC9P(S9S)$nzquaN&GpFD&79C*=i2ve$cVs#sv zr0=N4*<9m%67(p}*x`&#kr}(A)Z}??^p|8M+Jna+&j8iH`opQjd^`0xkMvWm-=xNO z7CW04J8dBzQW*t|X0qa1+I^FJb}n$7ScZSmGR^XPQkXlNJLoZ_kGzZm!W0i-YWE^X2FdE2Q@jQEZS06;YaWT$D&(19 zHn4UaXRh0Jj(xXw$UG^vBeQLS>P?`x%#`WkMUt51UKW1jWNN?L(3ivi!q<*`7q}Z( zz6X#c95!#)tk+!Eu&#csJS+0c#xV79%Y0Q~W*aY=_E?sfmtJf5oSa1an)3ynVh{tC zuM}BAs`+lRF~a&fnW$@~rI!io@y-oYoR|e9ti|4V>IsIg+2|Ahu0j41xDi;sZ<*`1 zeroptvGKXCX(gw;t*qNvx4EH($-&CgIdE=0hlNhXbpNE0qZq*C%x0f{vz#m)ulvy( z!4KgLb&ZmJ2 z2EPN|EVhCe8Vrx7uZwZ8tjLcjyNBm{ zw|MTr5TmvHL<F zX|m?l`Ao$u_J+zmFw%>uUo);^_-;m@z5joJ{3EanSiVkV38~7pl2TzDJzf@q3uW~r zrmko?b}-6T;wv@5hb@NCHK3blpQ+p+4EgHPqNQO|}j^Ka?SjiCyr9py3=DKkBj)2q|6 zCNWqM;r?K^W7$z4G}jA-@`gmlg~vw*WLBon_wtIeBlNCRh8W1q8x*m-j9jS%ZL;Onedxia8~5x;22e-q0)D|EPQfj zvDL#!Zz2zdz_(p@M)XcMEz3VY@B?vQg_^-8|MyMgk7>w@z=^=dQ!TQDRP!9_CDGRF z%viwsRJUxpnlVeHe21CM;USby-=lo%uB7|E9{rZ7h{lTfqB64)gepRV&>6xZ$}9q z`%E-QIY|ZYH@bp%ma68JNi}cl_JFe&w~H8BnZ}lT>3(UTATml?+u5a3-5baL-uJlf zc%NN`sP7HY@z4RUtyevU{3Li9Si4?CmXNA{!P_)GKka%R828Wu zCJrXE2Uu?4Ziaznl_O1Z+6d+Bxrg4I;U@jzv3@^_yazlDtR1f+ODIgyuhLwvo|)!e z&2JuND!N<0%$zH>B$W-vWDCbC;cxMVC}q5K82*yNME*Ml`8aR_u>9vEOXw~Ci3Jh~ z)x+s~UkYmIbKgoo%QsjD%h6}b07is38YC8;#z8?$Phpsl1r#zA{AFfO(mydm$Hy-C zYT%P}c>?)2;1yu)IfyLb#T4~^_BNElnyEa`=qCPDS+ceDZqIoHVK6db-+d-^}-Qu#F zxIdU^>2#fakzqb3rbhjMoT^ep85f`%FC1X(ESugqnWu4`>(d)cXd9*N>4GoD{}M0n zApZsY4On{^yp*q}98Xr&)OB^uCavKTWGdiG?W{zGDrCzhtYZvpbqRvI{2AtVaV#-sF zDId&N=Cxnc{}J23OV7{`S^q~v7rvZQZQp*wFY)pZ%-^MiS_CW5NzA z+~r7;F1hBRIM3V=b9eHqQ8u ze>QzS5#I-TPA0JaPeYbq*Q<4}cZ>g@W9@>tU-mij#Bwlzs>dal>xD%*42aWI$IpBw zaZm*T^cEM(F+hDrc_oaJmUzQdYk9hNwd)Sk+ZVb1$H>OoQZ@OMd9fL_!%gW}u1LnxSlOBvWj%sgkF$ z#4;^ZDJjT?lL3w(%$mX6?#b*#63m*aW_dGPft~!>WrNA3{b}+Kk~CBAY2iM6HX^`* z>*_OkPvabPNs%|a&}g@m&K6v4Ez^EB-)qGiff4v`24W#)OAWx-)S^{#YwQcUwIe0n8nf^)K1%))#Oy5b6k zq%+No(=Vj4 z`c3qpR9ESE=t6%E`XwK|jrI1H^@qmqU>z;=cHf{N9D2kwzNBl zuc_MJR_w9%-imxXxC2;we~v66RlB03R9Q?^jUFGbM_h!p7daoK$;2a8uP`nY2*{a( z%naj13AI-QG356}Z}lyo&{a1oK7aRwy9hW0Zcs0eiiLpaXRajDY?%IaYTlZfqnBiEJC`CWVH>eY({&fOwy%R7-oWk z9K6vlJDkgk=k%MpYTXqHelIzoMYOdCPA29mG@6brL7Uan`KplFunU1RhL@5RVhfE~c{-e9gqSl)x?y5+O)-FYu)XlOp% z;e&@Uw;JB+5*?4idnR%nXaJVC$y~R5_Pr#dB`PiatCGrJ2jR4))Dt zQdK_Iurgz-wubiYJd^&0PtxI4$uj995OyW5@19>4h0a)G@$P$*M=zlZ$t%kh{ zAuXs~yuz)WsH&CUa-A+xI*onwqQP;p|D|;7oaX8FO>BYY--&*k-+zYuEO-%E{`Zk3 z93j7R%7w9@jX`(SK0a4xxG#Cm>ng*^_Lp;2b~}R&i7@3Rmvb zeQqykf`7K%*E9La{jKbjPj01_b6vC@9fn8cf8=Mu3&7g(nz?S{-M$|Z{|g)HnpKTX z;y+$p+Lhfyb;&v2_&+|8?lX|*f`!2Ho?@@6`|4ry#Ki%2pULJNXsfbQs0{#U4%GKW}{$p;R z`hNoNRiP>l9Vhj3PSSp}FGsxoJQcYHoCd7lUqqI$*sPPu=(f&X-S=Woe904=YrL;F z*T}wIw%B-`f1;ST&37JjC(x)EApKKxHt4^M!szJW*ioYgSFq7S0h73yrobriu;9qj zVVN8hxP)~D*xTj$kGo!z6FXVky%)QdVVA_;2gsRa)boI~J8z=4J7(5zEa`Us(`tHB zl6G7l+8X_C_P^8I*645Z)LTcUdb=X@Z<;;Z+_xq<2i*#0q33!-Vj0m@9Ad=exS{lS z(BaI0c9aS!%{eBR(0k%9@aJb{WU@C%pGZG%;MsXMG3v(djI2T1=H~y-^{Tyl0+GuD zg{uS2k%q`#H+aAe4q%JH;F`#zer^^kZ*p??dWEmhzKDF$&u70`7T7SD{Z1hAh@1EA zKqQpGp?4X1eSYbs?eRi`jvMB)qNCXRvFm2s7K(g>{hf<4 z1AY4B2Zl~#+IWZSy~}9(qoK&|Q1Ef}TCkF(s>8gZq5!*#&_(#1A7O{o0g<=d$v^WW z*M!(PB$6H(7%9#=0P%!0)0g6s_$9ypS{IYgAzu_4f_-lA4_@dg zFStUgO;9fxMpu*oOYB;11XPf+)Vi4Ri+bp7UV~{@u+y#XCt>iC!M? z4#2rcr`c11$bBL2_iP-RK~Bp}LNUp_-whT=ytBAxBh=NVu{t%_DOoemkKE?x&WIda z5E?K;GVnV(`$n=N@0;tdxxtrx??x}9-4A@%58O>xV&FA5^oq+C;kWt0TYCKTi(cgJ zP)}c17a~eedO}Yi@-?5a3KAu9bx2;{^)s17a<*4Ay3)@s9OG56PAZ3af2@pp()FHT zp*>ly@2q~DK+O4F#gb{W!zV;e3|_!(8eCB@gtahzf+GSWGX-aR6EiZ4hNwaHjsA@R zuRR?4jhpj|oBdngUl+L1jnt*x;YKTI^sn)213TQ%l;D?q?;Q6YFKtQmUN3mL>rUXa zCjWDR_X6~c1-5zK*S)|9Z;AJP*WKKwsEA2Cgq*dyTHlI3P7|&VVG>5r?JV|kYV)=)@Du_qva(H{t`6N=oSm8Jp zebQ6yN0?N>oM%o&@y18SWXh=yW7vR_)k3*`R%SRB80_Wr4Q2O_49I4Qb;dBt>TskF z{cD4xd5Z?{YtCo&*^@V8bYv`x=O^LhChserzteT6`Tgm~Y1aNNoSdj1)gm{8O~Cqh z2eO2nW*vNcw{`H%G6c#A>9odHo-4Du3ii3v-*DZ1?#qEUXc295AL99#HiWKv4#^!5 z?O!p#E7#(E1$jz-os&vEruZ=EgL-hJnQZwy(&vK0Ht$I}B-^J^EOy^KhcoS;K3ActWUFKvS#EQsV350MV3 zJZ1w1S*S2z7)f)P>;1|X-sa6Zes*AowexGpcYvM1+W7>sgj-F&?W<Sf^6(4^=@{(k?5_xK--ZsHF2K~ zMXmr-fVHCj0J#JVgdu)?UpMFDc_YRl;n3lfaT3PM)Mv>G2dpxnx+fvt^*Wn$Ejj%g?fEg?^P0&cHTDkQQvtT zBhsksX4AEv;SG&OBWVS}!h!w00a<`kF$eSqX<&RV+xhqLxLU5HAfJuXQh01yG>-)v znd+49b>3~RKhE8*jgyU#|6iy7l#=#$zt4EWsVM)Q_C;+{Ee>U5ea1% zYrm?dCHy)W`CPCXSigRYEWz#{yz81C#w+E%YTC%wH_~s-+@MaKUGDRBe))39`2f#k zS`Hh0aHR8Cp40tYIfp$ugoUq6*nS^9I?lo$aXlQPGkuF&F!1vE|1rE;BQa_m%}u(`z?s zTD9M0(-VFlk9-!W1J>{BkR{l1zPhJ!o@dySq{hX7R_~YYzg@T0`zCL4<6a+dKF%KQ z<@70GCjhSxC4Puqo}&<$!@%1846=k&@P_HLhU`{~ukt0^^eRPJtd zx4W|NWGaId+uYx?BXtfHtq7JxqJe>|1`qn_BrzK#g~OS}E~kv=tMSqsT*lYuI&D|# z`00SxmXl8+zXQK9zsT+9$gV!#QU^pR&ZGGbKZ*R@Mt9lInGtuj$MXR^7nJdd%^EOJRZz-+fQQO z?Q@FVw&Zjm4t3hFSf4YKuQpk%I+htt)O%&KAjh%0EYh!Lc+0A_uflsg@+sgnV0l-V z>z2>H_rQDFdeajYXWs1h)R5Ub4UsLeBGy=x0zt&hSRM8HGXb7+FKc6p(A(!Qr7<-W9GpAXMb{ z8O8Jbb779K5PFrH~RO=4g~Af>mIfX;-9>GCH^i8vy@%MAGd9x%i%j&^jOiyCMz4Rb^C@3 z<1v`+mxqejy+g-gTJ{7rLuo6sVe?HamWP(mY*zNQU9bJ=z+UUmQ^;?EKLG2`fH}SA zgM>fv6V#ZVe7S$S>$bZU>h)pfDo33v4r_cJPcq|v$eg~O{a`|X@uHl3(3s@Gb@6=g zC6f=Z&-UYAjNA$?H#W<6Q9V^cGf^X)ieBW6%48y!R8B5ot%2iwMaN6C;gj<7 zD&(8Nt-#u|X}-3n(9ByNZq9wO_hbD0M%%xAAo9a>wFc>B@52Z&^y4h&Q#$u@LYFbq zCn~#7=FvSdfmN^pYK&Ro2-`yCAx#lUZTV3|O^SKvp?=I=>d#Ep%xHwuDJFV!gbZaR z5>s3<+32WdLbz;fQQv%46uC^Eqg!DR^Mt~K!?EMM{Au3wfnMKP;kjiqy=wZ5+_7#X zE2lhMF)@1pXGZqxmv=>IW8wkGDW0cdSqCztPq~X>6v^! zx;VkpmuYcXY_m*M-sk#PyZ%D=1vm7n8)6;PS6mhsv!BY%Zr|dZyzIh^BKLTAzI$9y z+L98gZ`JX>pLn(T;8W!L7On?$-76wcqVlU#IxnFz@_LYIFag?fx$! zxBG6pU!YzWtJlfu^{!CT1$|k+j!61^fs)s&*Y|i1q3Pejr0dDQOO~~c!Rnjy)a$Gi zzbZNOb27&6LCz=P3O1plaUQyei8_NA?aJn6n!+a9xuKkXkx)hG4CXJ7b<<9ZED4?( zS<=^wlJ?<@<=~|BKo*nU+_bt#ZDd8HmgByog+aCu%noE^aGkvcWG6-GaAh`gVW4nO zBy_DC8a=`rn?+l*KOOLsyh}otgf4gcrd=A@8o4mi>Shf>h5X4BXn8N2aF^@tbmy*< zF%ByBoU64b703QN?MG zyOE!|kw@LgZZ~VBVG!+dKvJ;q3-pK=w)mmhk=a+dh2g@qLS|?O)5MBG$z;vkzSG?4 z{#+KI%n!fsMt|b@pLcI{(*#2h090J-}7S=`TQKf z5Pg+<(9J(D{d%3R+P-J*|Kk$n|5uRj0}le54}Y;pf4_RW&VPHlox`(v<%Xsea__HL z#c>lWSX8}&l|`- zmsE4u96rrIIerVjhN^6`aiq0JTqg4%^6hUQQv;$!OL| z?20oTaPBg%!-GTQ7u2L^#s!81v$EJGrTcZx?(uRmxY{pkc@J0FZ#*Z$)d5*64!=4g zk{PAh#es6OLoAXAXI;v7u5hV@9mA@~i}~jw-}OCOwuLgEo-^IDqf?`~g)S!`Mgz^2nh$Pxyc@yG7{%qpE^=HLp} zscvXg_5Fh8OL=&FN!FR?GHdDz_ZOb?Hc>~HvRXip8)aXn{2X@Z3}@u^t;l9;Qa`|Y zf*~UDX)ru6TTOiYuIt|_h7hXn)AsJc9$T+?8~JbG6JYHD-S_w&Q;)HJ)V0*FsoS(gP8nqz?{CMq!58D-U_QD(fv&*J$hZir4WrT( znCa)_=15zQy&zVwj^+WA{wE~TzZ7{Am1!k!)TTI8n8uc>0LWcZ{o zeST*;g~b$D?6&LDyqZCEAxo)o4jA4xqgUz&cOrie`~XMPVwtn!_V9C7yinrSCRoUEnn`7(~0sfy-mJMpv2@UJoYh5s7lFM%6@<-gTjx4icK2>cb2 z%4H)scqMD5a}N#oq%8%MKRFK>|BZg(_iH>S9b^H^-w*j{{GZ*paYMp$%ly${%r%C$ z*60=9Ey$OGZNTzwH`lGd_C4-5r;^CQ1_{pC$iWdOXBI~~%}P4quifx<8GXXHANfP@ z5wLt8o9mXxz9;j^DaD8LZ4W2&9WZ>=CnxTob;ujR1;Fxs9$7-Fc}XRu9HPa1UO7Z- z^!O5M#wuBX!1nf|$F1V2L=uml5OMP6($pt8N3i34^)8*RyU=g%-`A1f1aBKoVLm$E zx|J(WY+ApdDeiU1$qPBxvUt75@RXdQ{g8NFgnTks0<53snCmt^?YniTq;#Fy<$d({ z^)$R?u~3{Vzk2k{h*L7x`6w(cDRuvhxA#xG;ooWW3x6l_ufQ|F^1o`Xrz{sKteWaq z*C$wOPM}oIp;Ru};yfH3&q4zBqV(9{iw)NNa@Um0u^;PrE;%*f{{rMwz-hqp*PH99 z_?x8`z@k%jbrC}nX4EcO;nwD?z>G_s{h1Z2kKdS4oiM{`H+FOw9*Kv&$Zv!Fz}oRI zbKSc-SFC3r9=2pm6yXJBOIh>t4LM=2^d`^wmphJKY-MR&G%cMy z#ERU_GJ3Vbdq^0W_x!MqpM^^j@v|Da32Xq?u8Ym}RPoczu6XM-AE)$5HU;7! z8e6urypsWZLfcO?{~n`X;^jl+kHLQf%l}Vv-NuJ~KSI33?a+m6=}dYDXWBhmgul!1 zFFY;b|0?7Qz~_PGf74vI{;%yeektwxm1>tJ*{>!}TR>l1Ky|M@#-^Xd!@;1_=FjuS zFw8L2WAk2jpjX5;Nh94re|AciT1|eRfu73=lKI&KgM*^uveNrx1p`@W+0h`KHEgsx zNdIOyt@J>7aIE^xm_8HLZ^mR#3|4ZgtZc~hg6n_Vce;LR^8eC=f5#)A0!{x{aOdw5N@bj3&3BEdXLa)BHP)eo5cQke>n11Iz!B zxo+dPd%b9tO!!qLP$F)te<1xzV`oO4@$4Ag;g-_c$zpa{7Ta}(8O@0Xm1geZP+-!krVr5s3vY%er!0; zxXCk}AJBkeL_{KFv?i`Kyt|BEiH{eN-vDm`%lo0ZZu#tcN?uiyXg-a$Nf8}eliBR6 zEmZD}=Uh@%n>v|2_9PrI{8h^m_4MgWt&G zPufeTY+Aow){iZib9z(DdC8GdJ%ZF)NH1W;wXSn(v{=r^Odl92ko9(H+0qR<-|o4vD9~BmYZmJR@OeICKla_m(`voICn;$Lk~9@loE=PDl`KNiF!=0r z8onCz+2`?EjDlg>;^Cb8ay^0Vq76#i-)Z!V-)|!S z8Tu0Z) z6zX%84}NVJMQo!N9hQl7!lyyLhlINy7+)4W^Tu^%4WzD_%f zeIP+LkRY$A*2U_0I;E*;BTFafCrDJ^`a0A5I!k0Nsf0Gev&`s}bZJJu2($w0Z-=>V z_gmQ0ZM<$BzP7*?&khC6Ybcx4u}jl$mjjF{nW)0l4KKtPIy+krk|UIheQ$7~Hz=3o z3rrFV_Gc#@kz@(anowC_fa>B=c6R(i$A@#a_Fe2OMxF?&fVFeGxgIm=GWJV{_6x7B zpS3|McC!wt)fIHPOP_V!F82{nz1E~4q~C~KI6xP zC-&z*R_w7NJfGF+Q4V7zTNMll(LtU|7r8%%F8p)7qG3GZ2Lwm0_lid0)dEI5ycP87 zoy);;gM+(W4yj>B7srV`sr}oB{WjnIH*)qlo|6x(f76g9bea7%AL+Kw<_0+kTK4Ns zB!t;Wug%q4ax9a1MbjUkDw@8OMeze716i1z=5wk;E)$%*++21^WcLT=sT9aNMxW%5ou?v}*J`zJzsX5Xg zs@!!t3@h-zW45#{6#(%>jc6=B4e(*D3?f9d)Zts@^-R_sT9a7Pez2f7hFdOU*W`LzT zvp;Y-G>$dYIZe(tGLE6Cl}^UVW*S;H%h+?7;okrLVEBPxKlM6--fi;Z80+Grv}<&${-O{?K8sZ01f3wa?p z9$4Pf%yr9W-w)xHw27yS?lyw<*6881&OXE2ZuE-3KS6#R{1RB+=gjp~`E%7KrV3xc zVT+p*-Gb_&kxtWI_7^Ypw&F6WTuGbi9H;#m9nXd5Cj2c&o(1Ls%Ufrz+x&QAw{k-* zcWGvQblhKt*}t!M0b~EKsB;R3RP1t3WQAiIM-9j@!*J=ur&pFO6QnYCs$cK2T}wdU zDecdi^f$Z`AHPC=9=rssU2mA{Hva9qO$TLHOT)%ZEr~lMKNh2=amqC3_jGNWI^76U z&);WwOX?HxF%x+{I1X6eQ_XeDXW!$zP27`>iP*@mu9yku3C{D8(Xxq=)FY?BS=Ocf zyxHgzKkq@lA3O*wU#GcldF;F8TgT?H@u<%)8%s&Jbb<3Jo7uDRu#j;imfX*+hA*-* zQEwfHJQxfGmahU?LaKUeoKLDw6P%?JoI5F6GC1#u;-4jrFb?$c>E}0mTZ}&O?~BMc zfv*9}cZa!d{j%@YKjwupAvDoY&aWO%d@eoCxz!(G&LCtrhYho$&t{a)A$&_Z*QY!auLTQ)btu=aucPsK` z;0j=QuQk^#pM6iko9ORdI@5WKJs%G1?|okTyVvLy-j9&~8+-~Zue0hi`CBQ^Q+1mx zo#uR;&X#=U2B|T83ynVETZOzHv;fO@vAJ&jv+veVN=6nnv@o72!wT`7TTuHu*?eUw z?ehnRkMMqI;&>*9JgVe!YF^O(?lJm>|2^c7z{kMyyQ_QmH<|rhnU|I@fn7gjrt#8O zJ?G$vYVYsHhLgQ7pt9pd&A-s-7yd@%7O)vu{>#jD>$iQk{`btU+965&+eeP~u4a!j zDX%qu&TowWM!)dCh5SDFGqC)BGuJJzeUJ0ADzpm|s+S4Ns%V;%*w|b3^SK(cO zyb3e|%e%>3w|w@!2i{e68xqz1{8$xb^3qeCZ6!neKAiZcW(Ag+(`bly!{2H23;!F) z?}9%9%O7ae_Sxsuo!!Pg8xnrU`BkjfY~pNdsc90`=^M`f<` zbj~sFqpL+u?QeBD)EGXoXC?CaU=y(RTyCzXdS0)qTe~_r>$S+7*&NA!ce>7w(sACY ziF#xiPe@yj%-O5?yNrI}e;4@!@E2hD|6#7%bg=I>J=k34kf(Nj?Sd7g!?{ie+&rP> z(Xp6vwbk%de=d>!ry-vURsqYm(OggE@9I^o$Vzs2L)_tSb0*-pQZ|fG z{p~dR#ot$v-vaLd%m2Q)ZvC|H*53_mHC4ZHb<=U{niHi?e)Abk5vO*e(-mQr)j9GQ z=`eg{=Oz4IjC?9s3M}85=DOvv?PqTbwuW0|;jXv@3VdS5K-N5oaZLV7$ z`)>IX=Pkt}S>M(hXF6SZhuzjrv*9gVoA7f2@=P!nSl$|QJyp6&DNb=7C#6Mvi>ung zVQC6)b023gK6fOUm6&$>CG*C_`VQxeZMJRfI|XC~i@?CXql41Z!c-LRocQ1D z^oIBYKd%nFuKnAB{kC0x6Y?EkC$RqAgDfG{yu^~yhL)BlI!@&fh0)`gY0%Wd zGn(}Ym&y&akP>5u`=0BBfV0utq}iDl`G)2{hk!7yO?M|DSmD;5O|2*NG>pKx)NBTVp4jg-?=JM(czgl*74RCc zy!((Pbk9FMq~8kFCQ6ZV?S`+UIl(szc`>K~mTw8Ngd_WzV4FhEEG&j^Ys`;DwHOER8J;Rax3#Y0L)7lJQ z&iM(xQsi${$P$j|XENIiVO!?-%Y<#P`uzdJ*NQ&t-)+cug1dm_yBk@;QTQia zrZU9VV@fu^t>be)`Yd0dh567R4M>pJBl?xZGTjMHcl_zCSd*9 zf-K=^{87VoJ$gg__=EPR6MdHNW#qTPyTJ0jk1XNHekIt(kT1)a7!ca*_?sQ)46m5y zzu_y}klMe7+3}4R11Yap~IhY76-xOpCN8z73Y&n&GHScQwTG40yyBYZo za2K$A-$RygME??OtMD&RiWS=7zO==sdS^Qa4Br9tS-#9o%mD)h!14`1mT(mQ*&%J^ zV)p{2X214t8Tu^W2IS4)Lc<|UNAxR+Wwa9-?f9dWeXT}+XOjLmklz9C1MANR$P$ji zAAO94Jld5;;zhcgPZs!ryZnH*Tixuj);Q-Ggn0ukeBd-$djo z;20o5UXSQsGD}hdb{hSyN&0U?-U+@BtUvc5OX%*8t$dY~Hm{|tPu2gDs)5bNF<3UQ zNh*OHceD^VEL5Yh*!)Kwj|b6fyU2-Uk8@=8^{ul7_Z$}$JsJ_i{o#R{U<52B{cs@`@0{#mN)xC?s-rIEbm}s3Ektl z2Y;7P&t=fBp+$zP;}!4ftK}g3(D%r;z?tY>p!CK5tohfV-|}CFd<*ynu>9XbmT*MB zduFfws+@rLi1d|({^mJ8a2|6#7POks{(-jR06f-?&{p<^0y)6ik&i5)mv~q{`Rw@O z+5DPXsoQ+s@jtKDG&`{mHP15iSe~`WTfjxY^0XpLNa=4fOF{ECnKYl(LwHLo?4`{#2KA+&3i(CVi0L!xsSwd>Rl3052 zEA|)7*N#5x*Tcv^2fKmg`z5l3Ui`8}#R{1gp6V8DH+(r4CHP8^E5Q_C`KBRDNa^3< zY{%I81|y+9;9;`NDf>wK*NQ&t-`9}a!5zTzeFs^>QTVrpsqd-Wb2<#)0rXkE@Wt%= z0{Q{VHvn0}5&es^^;n&9YW_?6SBpN&w-xy^a0Re@S0PI{8vo2GpocxHPr%QXCto!tAXYF9I}L?@J~%MuxZ%6KGkLT zI?!kR`xWx@;3Z)B_99C-qJM|59o|4I`ld2J&3609d|7$P$jizjgI=^0$}< zX!kyn4#T$teb&D_kiP@IYdD1Ih<+upw9vY9e7c1QWglyQ4kYO>YvtYs#{lck3}gwt z_(S2pseWVZ^D#>mv-iCHU|OuXZe?uweggS9@Di|gy^Jg&rT_n#RRuMdP&&<(*23GAPJnr!OxtqW|8CO%vV>hLkexJZT5JPTXY1G2ZP*Y?%4^+=52wx8bpT##SHpS%wQDA_gp~32Ke6iY zV#YaO?AigZwd)n+H^JM$+Vw87gwGgX8)Bu22-`r1rjD;zX*@>PH#Dqd?r~G>+@_|r z=1x5<_UP~YM5k-n6$v|Ak*@;R0Bh%U$PzwN{QYNE_7I!gy~fVH*kR-IU&x^=xj%rl zGYeTlFY#$J+F=uwDa{IMej~$!p@S3}fIeYPhLF(l50n4VZ}~4m-T|%!mcI>ILdtmR zo&9?<>vND4TkOi<11wO77Pfz?`S+sV^8XF_Q}AzK`MvE&?LV`!)rfeHb*tDvHQz$? zS-yJY^`Hen=}x2n<|O^m z9jsRbeSr0=09isWe)UvR^>C-HNh(sMvuRq4J;GNvB+A@F3fRhuX|c6+EnM%tyomi< z$5SnK+Vtr{{w;U~SU+AvmXI>O{_pdm$MU4r_)&6o!jB7)TfybP`mr5Z!e>m6!y}&* zvbX*^U0~PMQ`_R%R#}m{cy{&~JG-#M#`j>J%p<{QVC@_$Piw+witqo(${wTBsdn^$ z;1=w#cK#T-6Fd&AolhW3IGXr8l^TG`u97+Rl+q3A|H%`l#pW}!$o^;IuY28Fcsh+; zkuN0dT7bL=oB$-q>yhK_vsrVD6FSE6k8vDV$4grh|4YcPf;WJTm)|2x=p|m3PcBc? zH$R&-`8DTACH+FjXA9POQV(u5cEzqu#7jN$D$ocd^cpY!18dH7LT5U1cnx8nv7;l& zj$b3c1YQOAy51x zWQcvnuIjdgU6<AB#suIrH{q>PXMfmJrF1YZp49g^s__ajL`S{=Xq%-|@(&fYX4D*Ja2@h*x_DtUP!1(mI*6lwWgr z*HEY7Ye%1rj~^rN277?zdm33n%6K`PjorH4+Ho>c!b&M0I2+Uy5T&O!qWvuVa)P%4 zc`BF=EbmNY3BBYW%gl`C4Gle)Dm>Q=-wyOyKiiSN2kr%y?|x(nNAxqn)?>eIYnt}& zAo?s{-y1z=AQ%iR-%w-;z4*7h{OrSBtdsh~MUH=w<1Cc=1DowBJ!{Zs`7TGk9^3#d z-%ZF8Qu@~;TcavCX@}dP{>6G!i2ggnyAQpV_fzD+S3D;SEN?opgkJo#POi~&MM=pX zCWO_bYd>qyXZb#dya`+gEZ@b*5>oov16%cJEPSqx`l;ArR`Al#&uza=15{~HSA#8`2=$(dd zC;F^^yODndo&lEcIb;b(<6q-yPAFZ{z2KSZ$xNo|OdX$vUrq2;AkP4^faRNqEaAxh zCD=GW&=fphpx^<{>iC4WF2mb~UhC&~kiQQ)faSd(Swb&17-s`)QewjhNlZXmgjBc z1K_W~@*G5#klL>#mR|g-$mzvUj{%nn;VJUQUSXp$e+> zbQ#`V=(T>nguD;D4J_||WC3KC90Y{bsbq0P!;7)VL$&|?QhvF3Em~h%fUIo z^41|s_)Pw)1A}{ZdY|FliC*jPQ^+rYmx1Md4Ozlx@Yk{y)SQmf)204R+sl{s*VV2q zVB7Pw-z8s9@GnF@37i5f|7pk)j>2!VA>fMh8swalo+>}+iREkFcJx}me~SDh_%*P+ z&ml`VqTk(EYv}-t(^vCGZcFgSkVk=1 zV0p(OOX$Vl<&~9ZuUgwwM}weyy3SHnA^Clq;cG^p^>aJ&)!<_^_k#O@<$DNOLdtmQnJwi2N=~8Xb=niW zLy$|r7+`tFBTMMTPZ>$J>`9{LA|jYO8vi(m1arn*C9z*PFm*0Vy7^`Y_p<@K_t-~5*{_tTGK z>{u*U*Oc+}f1$OFPN>oG86#?D%7vUXmEyaRjz*!aC3Swb)I zYg2YrQ%ilr>Uzml4eC+Sy=^XfVuN)2>_xBT{X6o%g!4NIULRRP%6Ll2dUzXM^t2k@ z8uVJ;YmvVUZUWZduOUn5#ou^IC;LCe=a$)i0yDR)vf>DH%LeOs*ax4rXTV+5g}`WF z?HPwGA!R&#c54c1PO^cc~IamR#UG>NkQpVSRXjMV&L-9#v`-wH+a5SGR{ZJt` zMBCQ^zm2!5@AB*dvw^j59zg(<#PgT@GcC5RZo_%8<&`RL$z%rUvTnQ)EychD`;H5X~U6bOK|@f|JtzM`q%Gn&nX5mVEr40EFoq5 z|3B?rx8h-+@oNosTfcT7e-YdOtY2S2me5POEuTCoUe9E#F5ZXNy-K0<)DAWGKYA_i zzmTKfW8W8GdGnAZq>Rs=SqqwPh_6UsB|B$tJI;mD_gpqi^DaZL<-Gv;5^x!?yjLJg z=*{2q$#H*^#!7m0*Xc04UFfyEe-@5=c=Q9y8$p(k+TWg7Syuinb$VNtEH3YJDOHMh z@ftYid35#D-#%RXU4wqh--3K0xCmJOOOYk?=67Y>?L!*zhpjacJ+Tp*cMp0k?|$Te zfPVwa8~FZ_{7%7&>yLJGeH&2#K6(mbuw&$$qJ2{^-W%lGVKwPj=3 ziq$gK{98`q$O&b;+2=UdxIYaz12|fkQx!P4f>V~loNpmApRmm#n^Pl)q9R&^`HuV- zQYUe+y|4VoH}s$9i?#s&amI(d=5Y*=$1&6V&%q7q3i_+UYQjRk5 zIq=mN)zwDtz9hXLApZsYtw+5om5xK}an6na2iSW7bZN~#k)V%C;TRNccAL>(eQ(0< zlaQB!Gl2~@AFwC!T3W5%sX1xcX^=EHKMVxfdsycHdG*zQl8TO%W%@0b%s~jb{4x4?+b&~hk?M-=UJmfoaCBRuOT#tyCk}Ks{bvI(X zg|ySy)oyGMKkr9=2t3k*UGe=-u!_6&8kd)wIM+t%a=XR%ktWJl{BzwA$_k!1e*dkW_9$7-f*tPGmL+um8DrFCzf||>vk$#O! z=Wu6OdWaWs%$`#-PVQT@Vf$9cIc+i@zU#}Z8H=j<}B z`EEvEjE^Lqzl(f7*aa-#qsS80?AHGDcjB{GP&I#JTE$EA(PyD+Y z`ODyDVEJxCmawds_?%QO2{*JY0v|`;DZV}3_}a@f-+uJP&?kJKAp1XJ-wR;*vXCWI z_2OT7S%viM4{ghVFvk!+btqwLx#nAjz8Lz1?{ml-!G*x`U4krOS1)`OWfLUhstGXv3>q=&?Hr1=UTO7M+Ao&u%=%Qp*I zLSZldRaQ)yEC~po+!C$oo`CPgWWLFoZwLBf=oA0Gj(ium2Ux!QkR{yQ3*Y2PlPYxr zw#qHhs_qH+ev`~MMe`j*UkrW1m$8ewGbjd@Zz!^aExpBOWqH{YlY(+fw5odo!o3N? z+A7Vr27NK~3ExG?JHU0o^4)+eVSg`t6_YESYIw+UIo!e0C< z=YF3w#iXFVC*n87>j_Gwr*@j=?L=>kPsGocklzCPf#v-(vV=Xo@K%&fol-u@B&5DI z;`heB?!41AZ`H#I-V>0QgIZvD8;~U|>?M9DmQS5nS!NPc-y-pQ$P#w; z63^w6r%ahrQEn4h-7@ie=AA={YiDZScJ#*3EB-!+yc;|TEblYO5=wgUx3Y55q=^$% zEr+70Roy!AduM+)-fGQT_(+0xJo0of3s~Oy$P#w;!aI3Nc^NTn6Ik6s@q6g~ZoIQJ zZyS1J=oNqOLVgH50xa*(ktOWtEuJeUR+JOdHigZt6u+1Lltf)STk}R39*Ln>cn2d- z026`bor)~sU@yECldC3HPMWA{K@!pCR*K(CA0+e6(Y&qbjiFa~zlwYpxCdC?`;aAU z=_Q^i^{b|oO;xoa#jBn+t?_&5Kr-)K&3h2NG4u*=&QFoS2w-_jktHna#a~MQ$|)1e zt5mH>5v#{eYy4*VC_!91PxCG_dWH8q$>*O8>}Y2;_Y3+6NVp7Z#j_5J2e=dNw6S0{}mT2Z>)dwql-v>Lt6&l2Zk zi0Fn7Z=#~v2Pd3j!J_5&Hx z%%z2{n#K~*B6&1_IqAgXcmVzv&*XpINY{SS8$!ys1LV4#k**u-@~(PZbPTl3H|gJ* z$am|IH-as|1{<%&NI74U9N@D^Mr>W^{3%V2lNUo0f6^<$?wcy?Gdx{MJbyy|82rQV z2;1IN_fz6rOZw-`jwycGOD<=@jK_iUvoO8%0Od*-5S- zBjuRi7e1yrCBKbDo&YM%XJSj-4(VB9-GoZM{%Gp&JYe#dzKQj1?35Y3&FHY_(p-sr zEokdOFS`Xx=51(c78Ctgr_MjjC579q< zup7%$9P^#m6^A6MN+mXgmVBsrIt@?N;|V`bK&}BxfDJZ&;(lz9J!_<`mF|4X@oe<7 zs;_n#eLKu=CBAP#z72e{2YqaZC5umFFf_A)4@V6B!rO?v7Bm}PK91*~x`qvAC%Qf;@8j&rG%Dpwgj%C-C%?6RJc9f)@OWx{ zjE-S*KUDT}UPPrX&4T!A^c^(675g%O!MbbE57=PS&)9cv(@L4d`Lx_Cyu6>uDcbx= zuch>(OE0`GD5M8IbPY+6_|rYd_B9b>NOX@L@~7f8=^K>Ee#Cb2n|GBNgMRGK}WmokJB^u2x(t0ZlaH&T*a z-@Ig&t`l{BU--*J{#=fH4mcOs&@DfyN_r)ksnR)^r{hnbz#cNHb57EF+mrO(kNhBb zIJI6?37?4GiO#k8qE{YQ@@Mtd7`@IOT?dr>pNHHR^am2ex#n*5301_;I+aQWJMKyS zXMesVw+uO{qO95Itr0!^Ui6-e+yEMlUeRsif%2u{{7q_;q~Yir?(CMsJ@7^E&yjb7J-z5n6kNklKg@YOu3jayRqu2e{gEdb^Dz1cAQ#L3zy@n~ z!}$~~Y{gAHXuDhc_Gq_Lqtma}=n%U%AYTA3>OrrH4^zs}^tpx;#hmuOx=fL31IL3& zje$QEJ?7PB??c~Z%rM}&Rq~5?Wkf|SpQ>uBeCnQ>tg$Bzd?yr$c%^*LkEqHYmBc)y zHA|{JT+b%SLSB(nd~{q@pRD~}_7wffCO*$YUJqJ;4K_aO*EPo@bP#TXf+P=}TBC2L z`K`p`kC7h*kM*q2#-cB==sOP zaz39fRI#Jjq<*3@v>MftDxrXQ^xP$4jsBBwxOZTS{Xl(T1d984*}P_XjJQ%l9#rOv zM&Xq4U-NE@K+hW#_@fv6y%%`Y^B(X5cX+`?qDv1L2QmVbbYzDNNjCXYwOVVCB%rU7 z(KkudeyUE#*wcx0oPsT~vhh^)=-nnGOT0WaKyGCd6VOTg zi|s)@N{GZQ-$nuDo+w{(U*i+wTk<#3#AGi+eOv#gzZcVSP2sG9x|Sw~=}8fy;ydXI zgR2tIKubqy2pJ957V~M62I4x&hLEvAbRVh#!%ZrXue9z=kMc&om$)Kc@d;PtJ5ska z-yPzO)z3qp@q9^JUALfc%?Ocq^gS$Pfa3LOZV>rpOLh8m{yI_5dI9-2;1ytlO`qc= zeP&;%W)v2ZG=>3uHx%-wc}lv%v& z7-Vv&+-KNIeEY!|Uf_v%tx`$m8b}GkpF59HV*=mc)!QtUS+PsUo6hGt4orUMH~gB+ ztbea`TtLjI2f2Q1t9VxFjD9LY@=FQwT`39V!P0uVjz8yF#)$Y|{LM%12L=EetiN(- zOiSJRmE{!tV{mnhb7M?54n?!7a>2ss!ba~htwY6QBl23%+=E_yL|GYHWymz(+!NCc zrcR@$-TX%E>p;FAJk*1p)lG834QlkL^D{A-;DMuEM$dkJW9L_Viu`X7=sMibW(IO; z8m-wVCdovFH0PC=WM%a3p>8#YF$e8sxR$d|-pUU#R!iua&m?l|kov zmzRN3`UiMgNV%PWmF#Eo^faKuQav%^uePae-*vk*G$J_OmsxZ?X7u;<=Tds>KY3cH zj0-c*itgWwicRrvo@upMZhOtXyOs7E@lT566Zy}jYR7B3bg{bBE8KLc9hm>Kl`Mrf zp?QUl&z&zN+Lu2@eiS?gY)FdFbxoTah|s&jPMgciTxDRtR1vBp)4V^rWFFsv^Z3SYm(FCFg=AgV@4BIxcs*4uB`H0u7pPDQyYS5(@OiaOHVeBDJ( z8fGiYbK{mJu9yUh)$4R@{;f(gRWI0vd?mPAf2O{W?(~s*S$RBz;dHKM8)Fq)*Q4L`NDr(wrMfHIrp(%L!IxX|^KTBBznzp>*JOOek2XZN6|saf?VjzrH$XR@g)sv4Bk`w|^1ZANc9 zIx;Xup1b!UKLB?1ptpW)(}spsGKy4;>SE_aZK7o2WVKF*(R&ab1C8GB%gh%CS-=MC z_XRENkB!z*XdUI8D>=PK&HIer8gy8_=OEXCh930FsivqMhT36{%E!8n+TGxsmFE7} zI#j;dh5R${cn^9vZCK0k*l704rcdC&Qg@cq?q;dmMOUUdq*VpUu=0uNx2-iiIjUF}bhv zyizB3lg(#sMqfvgzQ>WD08gdTCxeSbh1U7@VLHX94x=~nyF~d~gggig1vXf}88>L$ z*to7icQ4;a_wvWI%yj`McSM)bw~XJ~e9(xz7Bu&uk6F?6tTVyNB0Mj0wi{hGIu96q zJN0i>JpK^*QSkF5ePYx2^-UZ`LCPP)AXb@5{buK8FH23pl|mB})LGE@+# zWr~Pe2B88%MTCl|s645|6XfwE@=$pyS_hu!L;3#e483V=k@tPy&Trkb?#;bxt-bcV z_S$O)Mag@qa|1ZXpN5+5i}>$`SFFEBz#j#kI12x*Jsc5{a+VW42+@KTTdbS0W`t!T zdXyTEKYPF+yC%%vyU-fSC(^Iv{U`k%Py)m$&fnIab6~JymD~XW`C7==S`XkK9{)+s zAl(|#?SMutM1*c9_$pxSQRqT+%>~kaN}*V4J#$##uv@h{B6_{yZ^Lp2{|fN6qtj!3 zx+!S+?IWg3%O7pMXy+lFNGi+fpr!AO^WTqd=4a#|CC-Y2a?5ug42_`CrAJ>aFI@Y%GTgX~f(!U61HkPT5x|3-oQwd+ECXZr$O1oGE` z4+VyWp9Lz4^|NWk>hr@MyBz(LTW?1Cfpjo)ZI9@6_M^82d@FGNQRoHt*CXaIs139J z2DMlNqK&ALAwhRUcYi;+-v<9K@cpCEWnQpZI;ZW>1(@FpH9N3^i)9icRY=_p4Wztd z{|SEbO>FKsI{0?5BSkfZ|DlL~+s|`)S_s|&EDb+9LQm3pZ0rfV`41Pu6o@yTIEdZHZLzv)|%3g;_{6~ck~v~Kh%%DdV~58 z_&}WE^4+p6_R8@g?pseIvvf^6BRXy2Z-RQV1pG8$`BCTu$HdQJwy{>h`}Hn z>An?c;mFeEd|5<)cR%_MfKOmZorIG}b0EvDsMA9cO8IWNTys3cH0qJMK9OLdRWMOE6&N?^07=7Q zQ0FJ*-tPknTlO%!UC$7C+Bbyt;|1ia<-LqAuYex{-T`9y=e-%qzu=Bg{*9jwpZ(Gbv7 zi|%BM{KG5qiknM(-*CCE&om>Cqc>@jDgwNWm)DfalV=@&AY1E;vSR4{Z(extn}s$+wi}KJc#s&jN8iUjmopY!1sYzW2Fb zd4irJLE5{*TPEA56GgCLx<^rd%=(9_rVAV5C+#7QPI0IAY&|8Q*S#&|U;fJ+|5orB zz%n4_U-heh*&c-d_RZ^8ZCTw#y(;Tdf77ok)u$eCUJokNolGy)PdUP-I83N2fSZ)H zOV{aw^k90~WKmviezR$)FHOR@n(U^_dUDFR2jqX#^{!W zG9$g_Oocb7B=~kFe6929O@JBY6=oWSmzcCEHiN0-rO|60b^3oan^2AFkBX*buL$(o zenF_$ZuHj5CsMB0g7*TS17f`%d@I!JupME!c3$vL?NsziFq*El!D6HAfO^+{R;dH( zRVR2nsh$ng`%u!l+O9)!3~QH~3kuwfgKAQF^O8->{+zsF`NQN$s6&f(QKQQSSu1Bz zQLD}LMHyx1W#&7JTwN}oJ*f0^fq^AiD%%?)Ma`7mPgJ5JJfxb;>ih_!xAO9A+l==3 z)osddHWi*P8+@hwGW8XqWTbe$9R2s}(X+`jbPuDPD&~%SlNy0s92hJ<<_DXPdJ)LP#e$i0=)Kzc)n=%NB}c4#hg1%eb{&Y)Z(92X)h}tiRb43Ombxzv%d7UkbNig*!Dj$-fw;U@gG)-E7nW0e zA9}xb$kjia@i+|{LHG4?Y~jR=cJ)0 zn5^6Q{lSP|?XR`f&U>k^I)Iqp@xKZAJ+%Fp`49N56pIyoz&C09^Z|c1!J{SY z2|k{(_Lw@SK>6t!zmQfbRh5&)rlW`kQI#sflN# zdJg}u%(#VT*h}qlQ#SF`e!p={rCDNkQ!*QZ*C7+-KSuw*P1IhrORc_%xtetRce~a4WSz7r==H2It-gq# z|Jz)@R0%#57!Jhzjsusp>x20P#SFi$kl#*a?S+#3I?*Mv% znBM_#N&liApBL7u@2a3WUB&<-E$er-^@LkT`!Dd5)TWae=1z8WQJE@98q>qUV@hDQ ze!zx)$JL=c{@c0nZV-4QFcOI6nGP=L1Ll8H&&8}%*8K@-$p2dC$K(AS;P(R$12O;S!6p5R@&3F(fSu~PAY{Qp0yW&G zxS!~Ekq8C!F(;volN?=w5NmW??X2vzp&X2jhwEJ<_=&(`AeQ4ba7oR(!g_c8C&TA} z{w0Wmh%N^A>EGzrwd&JX+ri`c@ZCwln+314a%Eneu&(z;OP}p_>M~tmdyZXNm}pIw zQ+SS3#N3z|2?@G|A>L4C22Ch3ku1-+O?sj((XG?G<8NS6tV(50I>(fd zb$-36%?viR^^nRIWd>zV@)lI;>_WXjk6{Gz8L0B{Lr@9V_S`|HjHyTpz1*Vo=WX{^ z<(!)Ebfde%{-m>7h*5NIuixv5l z?ZHa4>>z#;FDZ3UofW)Z{1U^`9(A{4J#M($PcIqcKDq+oQgXLogGM!M^9o`Tt=$U*#F(HB~aw zHtY4ePKnc=q+L<{hfnM`up9gy;65Oh<8g3FLyy}3baxMLkvM$P*|o3d9^O6b8fD$d z)FwmKDMyxM0?wPYxF7~;SH$;S=*Im};t%X809iniybg?064rC!cl!F(J?o^o!>r7D zfTyH=5#0`G#B{sB*8v+p6x|NO39a82niWIZ4@3K4M0amLy8FSO2EP8G=+51^g2LCg zDCFhkah=L@bsm*T>rBd|Q)#!r)fvzDDM~6&{wMkA{$yA_!~UqPHr~rTU=sLzU=a|P z&pF`1_b&?T$C2yfKwr_02@}?@F-2v~xFfQilF;Y+Jbca4iw+o$vw?z5>Q!fAG!KVYWftc@7a7nv98uA-=eva>w9N%8` zJXQhW`%4u}&-3&Y-45TOA>Y}|_>L1g2R;?@?S*cv_lLlr2EGo&e7_4WDdv0qB{{yq z-PA#L_YsUEFhvY{Bv3igwf3+!_?i+`pGtRnhRg*d?YlMPTmI)9-$w8Wz!V_ndosAB zJGX}Xe%r5Kz^XGhI=Y1s`1hZGcdyvGt!wl4O%(WRQtNqn-YL>WZqjr7N}Zs4 zWR=4NGm$WP*+j9*D9>LQ(_d`gyn%g~&2oRY)WAOV6tfkk!hf=Z$10f$?@^C=Rv-E)@JH(J5uuo#{5)9^ zs3Jw5uRPE5o7k_aP$y$QX)>29>H1y6?)Z4un0%4_B7Ko_k$pa9lm+U`%9)F|V51oo z=7#y@9btanMc#P6k@_F@RDe1l&d=w;C8eWrzWL^X`B}MQ^=VyOSCW^(z4|-OJzDkZ zKP2yAMBk&{%(wpROk{z6wPJ=fv4DQek}>@aMQS$pGPzg8FYU>hQ1DL;>lCA?%) z%1>7?Y#BF`yp#d1sM4=Bw#O2@snV~?_r4?g7|)n}L5W|=4~zU#epuiYHWm5B6`8Gu z6A^Zi^3ju6rUGT$uH4xywDbk)740_C@2T0U5PdwQ=x@}63KP>}?-D+cHMyjY&xZOb z|4U9kBf%#ClYv-2i@+rveLg1T%}6m5>kIlRYMsOeSmkIB&1|vmHr0%Y)qXO8<TK2c#R*NqyrKE-O!K6j|agY1NH+k{};d|9eaF&f9sAg6!lKE#^nTb(Th_S}#orMs{vO-EXKwx{ z?HfO5v7`(>Xg_XVveiNRZaaAVCiN0s@gDV7vGtxiT4$#wCW)!>lZuXgXhLJGR_}q?0mnrIXkjvnBSx`ODFi_hXC4K8?1Gv`jeRN zvs7xD>QBkHOWXZv^n308^s=gwKLTFKaZp6y<^MaRmUOv^xrFWNIjkk9)o`$)b{H#){9=9Q-RrVR60Gvuoj`e z9d3`%E{A81Gb6wowXRDu;iF)NYHXQ|Re8MlwKb-?r`oU4UQvl(gQb!d(ZrCG?-W(= zK2=oU7c=nSGu2e!7v`&?e814B>1=A`tEB~|aEOd+xcS!)@u!-iiY7gl&B94ZMmE>2 z!uT*q8!I-4^t|zFPhf z{vds0sIM1~SdUBph3RqCx{ehX;-z2cQTpt$Foa7R zpD@XMSy7MBGjy+VXP7hHGdu?0d@4>mFu^bJ*64n7lQQoZmctq#&329IBdkCNcc-}}G$CU#)H z7yjpt!~c;H^w&x2MSnJX2&L}kY;k!OJ49JcP4z6!LCw{(b*Wuy=1=jLv+WhXuciyd zAYPd?b>~*_pK1KZnWjrkX_0)VO@1Q=q0^mZdIt^abo=kNd!erM?o`R?3F)GOwDW~f zFZ;-MEuTnzcpm&$z;A(AFO8fPkklUSPhKDGBjohbEsLNTTV*XcxX=EJdfiri_Qk>L zGlPQ1wBU8&>tPpGV?CTWMYm`+EeECba-Gd{u$d$V+s$)MDNSe13Rj;!VN7|Ax5msF zbBZ~8s^G=OX;^N~EF#U)4PG zFpc(+HR1Q>g)}k~1|8i_XEGgC3l)Fc%KUP|YUXJ=d%17p!Qhry1e+763h|BLW6P920^HIJ2!oYeRl;3G9 zHg4~t1nUoa|7%|I)Isl^@bRZ~@a_{8!DF`*Jf3X`9>ZUv-`S&j&$3=jj&a*kK{+bRpvC5Hw&Z42Y|18=8^5@A=i0=^M0vBNoo(w(ku2r1o#tn%CR-WLRUiVaKPnzXv13MW4|A^;%c|S?NN5 z=oOkP$b|rh+^$ew`mf6W8*7}>zbpT8bm#p+d4E(*y!#t7`jYTdXV_#jX~$LCzZ!Cv z{6+ci(nF2=y*!P%Cm0t0pnT{n?-$DZrE22cA61E6`nK{9v7_bvTzPM(iM;!rD&b@= z=lkqp$9zI{O!N=XD-U^6%kx&$;p*9=1^d9rXf1A2dnHyB;mz4jgN_w?qOA;N*|Obg50CLUNw<-52=#$lqZAlvJ87d zVI90o&6*-Q{iZO%1^PVVqB0!c<*+9uWAkFCv3P6Qt&U!;exQ;! zD0QjxpDIP=pwDW=H_j{MOTSk9`+lAKiC${%*Lg3g%*PexW})+j(!Wwlz6{0m*8Km_ zx?BB3>06b0OgoL`8!F|0KR0@te7$se#jWu#K{|pTK5b+?%er&rVeND6!}In7;6DI< z0>u62FfZ&sk7f^I+?%^~%cgMbE9+JJF~zA~^>-f9FTQMB_h#xa5S^iQo+DiCrtNxgq1Gjsy|rm$(kFL| zepBng)*&yHzZ?1Db>5ZW_W<_+vHafxm(+R`J9l8uLi$D9H?0h9?!iWz+NI98N%1;3 zcx{s4qI)P8>v!ZPpFLeqcEMDpur4!-$y}XNn=+V3>I~9-N{T}G)h0suvc7H2M%$kD@7sKuhGPU9fI~`DA!*2#`dbOfqx(P5fIDuS8z#3-*1t5F!riYcQOq= zpdQxGiVgZZn1QA6Kg~7^LQ!!Ggf~_-*4<-8aCgXP?`e%m&jlcHLBG(ivie-LzMUMT0g$Pv#&(n;H@ z2I_%W&hMr}Ip6CI=O4|V88{DFy`>{Irw=}0f2r_UTOF_;EqykaHQq4XdNFUZpKm+9 z`MmZ&hgLnO9=DRDn@4}ki5|C@6gDRWtbeNl6kKJDG1j&BWybGyhL_n4fRAH@j7R$u{< z0az!FEGT(I6BN6qyw=IuJK4POUqHf3o|UeiLFj8im#@4BwfB%FfSmt~E;K|Iv2ReU zg-X97zcoqk3) zMleh>FPc&M8^wTarg=YAMD}gs-EWnDygx1D&HgXt|5_PV8B8nOkt(4_V)F^K@*Sn0 z#>C?{nzGwf#{Zf!FRIe-DF10zz}}O}+pn53{#TX%T~$)xeNFkVD6`ByLC>>KFyp;T zBW#6`9OY=DIt7uZ%go1E`uTWl-L4D{5Q);Ol#G@FR>2o)hI9PVi~qey)0w8_Q$hGH@kz+%YAA|NePQD&r8S;za-A@kLcuIT~q8X zG^?F=ZTA|bx-kwrH_0@D$$;0GruY}C!c1e{WK-xh`lov3?l9Bno&#KAt7SSLWSm*= z?pKH3+@aiR^B0-g>cKd5o~`820x3HrY=1j4xqjk0@Lj;CfVlnb2A8z^DE6_n8@H@% zX_44u7>xt#vQH1T)Vf@*>Kqo{G}9gN>5J${fBtLmzX3RB9p*CvTvBZJjGwYzi~{qQ zb=P3S-K}|SwF1g7z z56IfTP2-bP+Ysiv8-DS+{z~vq05<_~zHbJXG|;}>!?sCFi-d#{!@7WEy<-*EL*1z^ zwVX@krc#zzy%C>RpcC`?HTXNg-+-9UKfomo^e+kdbe-3aOIgP_cD6g&*}hXf!L1hn zo)aCx&#lhJFkkcXbK~Y2;46W(K+JD5xTN%eaed3SmL)waw)S*zRHbX1*eRHpTq0Y9 zcQY-q+Uj(V3_8(nBm|m5e*2*p=kF!(p8&4{F~6UKOB$$0_zfEoF&o};N*CUt!TGA9 z_VLqwcy?HG@dZrxa=Uutm6n~5a^Bg z?S@`0@1@>81pXNCBoOm^23*oWyZw>*J3Vv&FY1_1J-J&gw^ml`31Q~O1wW^~g!=Rg za`Unp@CINw5c6vVm$Y+0dpwdKM`AVyv5Sg2=i^&ARp%aV^uwJGZC2sm!AK96tj3Bqy)Ec+sUZ$YmXdZN!i zf&UHo2N3h~3y-PK6S{i3HlH7`m=23x)YuD)dR;7DWUXPo+J}dF?0`<3ud~2c0c(Mn z&lYe=e;(ksj2`D~K7akz;51cOKYFQ*Z^0<2jn(0{xV0FD}f(X%et93S2iJfzk2;ifO%WB1~cY)t^H3796V?h#?Wh85-b%>-WnoD9VLP6a^$cX$t3FN}7nWR=F&BU(dJa6cF?MI=G~P{TTY3zirW$ zo;f?#ZwtE0_HnfDd(~oVYqcIJwWF0)3H}`sAHO)qrwqIi7zxCD)`9ou(;k%{eAf5p z!*x0P0^hU0Dz+T&Q!m=qxH>($*efdb{q)QtQ#_dQcU(~+pQO_%--MWKEU@%7Md@N4 zKz^~w&zBX-ol5V+)Z0EP)W<&Li1qO-__u)a50bVU4iK`&nC+z0+3@CXp|djee2zqyC&EE_c*}-p-0ECN2e?aq z%xKZ*b}ZK>k+D<7x*%WiI$URsT3TxAMpAlAcYfgLl?u0^zKNk;+sbp}$pY{VKsONQ z^8s*4Rnh*;ry~E6BkO5&K#MC%F6W98e6gO?!Q(68yU+7Tk<)LwRz11ZD}6jd*|K(v zeLVpO593VH2{(~$cUtXo94QJC9LC6hj#Z00h+|f!tXa%nYxVb)^O(}*geb?jIyj#Nc@R9l9R9`s$Go0KS`Xt{OK3)wU zqk>(xrr`Cg;B{m_yh?n49#GeKR`(=b$fD76N3;1jnFF4MdIaUz;9#GpDYpR{J)1<2sw3CxKz!{|W=^@{4=*I2j zGVm*bYa?E=vv*W}bJuTVzO!gWaIC!2dWduJXH|xDJ0rRW`_cUs_#c4(0pk3;4=yQg ze^aAzA}GfN>o;#0Fh~zRsQ<_gU|%S_g{h2+zFb2X%h3n_Ao#5Dsy(pGr+rn z?Lf@;9&kx-T^-h&z0v+$z&Fg-DP1e%03Nofdqe-oKZlRwo@I{kkb2v;o>y{uaGn?< z^PSRqdow15G&Xlm#c)8TDBobJALoseim+6l$J*5yq^=MN80Tk(avnmCHr~rTP*>Sj z5l{}qa?S;pbnp|QoIn0}zj_|Z88|J6Q>M4VTKz5$5%CJgx=o9S^KlN**;1XCO(x0- zUpL0SP{gb>RV4u3QoX4T#9Xe|=#$uVN6=*f-<`8VId>yRY$yE;`2D~afmqHjgG(A{ zCqW%y=hec2L zEb6*I6e61F{QOhpgsg8D%n=<4Qk>Zi4Nc8}i>N zJfSb;aTE9+;2t36|0KAii~o7P+||9lyDJW{UDmw;2})U?KdhLx?xLnFVGANj#n6fu zalaO?gA?@`0ln-AQT}Uk^&taZ0}KIT{$s%3=9z-NG%{};g}eL#OOOG3O* z3PtVHIN?~wH1}b3A;yqu4yTT=>t%-3q89{I@c)?~@_iS&G2i51+o}T^ftc@!;F2DX z+QIeL^lJxef_^9nEfY4_u4fgts3z*osMjZja`qxeY^S{+{3+mBAeQro;F4BH?eyAf56daj z2obMW?a}whM#m?E)yBi>`!-QH>hu&no;lZ#6n5G1;(^c{%!2O`F`Dh!0aacWhH?z6 z&DE1h;4^@^KrF{8;F9+KvwdUOh_K&?LfgR-PPU{I z;utGk2d-kWTEo9C;=dpIwY(Sod>#CC;7uUrUs4~{i#tQT{5Cod4gU_h4eAAxuBXD; z)~CYR*2Ceu%{O5b-KTEztn$&i(3$2=EzM&?w7^TRWuka?5i`Z~Xtu#T?C(ER%slfl zSXz^2IAV6;&oW<)N}huEO1er7N-cCAk{MUIiT(IHmxTJ;5y>a=Ujcq2a5E6ge^2!P z*d7@_kzdS`ErI2;ea>{%UdEB;N7V(^(CXw^_HD2|%6aB$ykr`X z3H>2Ceg)u?;&p95ek`Gb6?ARmU{#wQEZi1~At_0K6V8(vX~uBm+&;f=T^iaAkN2Ja7jn8=dAD9vO@Zwoobuh8r(>ue?mR2tWr+n z=uW3e+Wc5{+=Ab?pC0nt1-)2rd%zz69sy#0KLI}mzwI%@eN0D!!KhWnq9@d&9Osi+ zNu~C(h6w!y3=JH#bvXZ(ar5%@VrgZm!7^?7vC<-Z{(&p7bezK3+pNjm`m=0TLEa+hrqmXGC{cV@@B_z}tb@fFz-N)Ny)ERGSaa z-OHd{W_=&%jp*)#MlA1b;GYKW>PPpe_KqCgSmaU&ms$sbC>@CC_w}Ry4*0vkdmoobdPHH&glcXOT*|}gCRZGnh=g25Ii%iABUh7w=<%NSRRl9Bz=f-4Ev;N zXjfZp)%>P5qT2zDTHcG?TfwgbZUo}?vKKr^(R^xe|9REneTkJDx2)Q5>gJyH8^waZ zVr4MP#tia8Xa;$a*(Rq=MvF1zY4v-@8ZkOO-dRbr&hwM*j5??Oo62tWTN`K@ll3LK ziN&~cF5}So)~>U|{J$H?A#$qWwp9Wg55#g_1uiKb2jXWm{-7lKwHoQy4jOs=hvKa5 z)9UPs_mq2|($n>qRkk$0grEpx7?O+)s6nQLLpqBFC9S1rPn^zoI|>Cy==|{W2quq}~-#yGQQ0Tz?DxC*UtYoUgxuOB&ct z`|Yoh#r_6svRc%BGPCMu)JDtUJWH#d%0A}GkYD?V9KYq@UBJ0O%x^Qeq=Dny;eED$ z=2q5uG6UUdjC0T6o?$tFb+HboF;-v1cRzIFe7*?&Bj6Pv=KC7Bqz}%gG#Dw$j*oHm z?=$K%a09GqnuU0ncC8BYIc#K(-(>JPz==T2ZxOhp56WlEt@Bj!Hzvs6UN{2QmG~9} zzi(e1^4kr)IDe0TKLtDs#QeSiE@@!?P-i&*m7ayYp~FK@_i3yT=deDMR-v;afVt#jlOB$HJBkO5y*R+Uhh@^_1VL2>tC+XVY*VNNBVgBBNUd-?B;La%K zgFwtL1up4>%CA4SX#uxoma|N_4Ys-?J{{1B`D_H=23!Edd@cl+^r7+<7=oq!1^e93 z^xx+`6!F^+y_nw*!T%ljX~aYN@eh%on9F3;H`#I~2lBP94fR&rlA}Kfyd9VW#QB*I zF6m$7C*E)iI+IP)rLld2st?eeoXPJGMErI^FV4>wz#jwl12Mm+!6kiQzWQ-1>+GSi zT_>~VXBags4Ct1HtME=CNa|Y`)&J2szIEWkffgXT^mz7G^ZN zA>?}qx-nn3)wVJ~0TA;o2AA{!`8;#t+1ui7r3k+WX?7P`&PA4Wfrin%xxgYaf&2cN+LgU@Z{y+W;=d&witSVPg^Qs_c_gW;@4D8Ny3T!FI}Ledcw6bzI9<)z8Qf_Ljj3Sn zlt-Wfooc|Ayq_peVzTG3LW zl0Q|ebJ*@}nB-5^1vO3nWK&SfA@F2{Kg_TrpG@18UR6Vb-^dB?1fM3oDn3snlOu=t zER>rQtty>Ak!`=T^)OZB<#P}KiXPm=+s_^*R)y7?;LHDkQB|!{oA6EBqE@R7dY2+j zT6UURt0|g;7l!3yjnC<+47>)Y2Vy;q0GISH$_G7d*&bMlx=-FBrL)m`icN=kvgyz! zy<+=CA-`_u)k06omEtNp9Ye;-+8ZpgC^+U)HXCTqRH z2`Yx$uiBih*ZCb%ZAvg@QOLgEAV>ebO3u7AQE502o~tq(sE{gCn18s!NQDS1Oo2Vt zjGmXPH06FKsx(<2i%U>x*6DYY^Ba|vN;4mOSX^!HmugcORU51KicoKD6LaNw26!j1 z8i@6_6I#Y*~)Y3N2!+uY8pL`d zzO8LJzH`C10v7-=-@%hYz8#+n^PP>J1NbuM+$znbewXP@-elA+^NC$0E$LCdFr~F;`M(17R^xy z|0?$vI{Bt{Zr09a%6>%YL&~o38&fm9F?t0@MYnpd>+*?Z7Y3!o{_IU*x$Z)Lak)MO z{uuBi5bO6@@DDCmF;@>5+l$)Uf+1sx^$^k6MoXtOT#pFo9E|w-lXHBl!RG=e0WseP zz$Fch_7Se!bJTtya=2t~;Rz@3%%RrM>4P|*=zI=&D z3p~qBN$fXqk=S(C5rq@S4|Kj=cY7zRmFcq7%Dl)zc<7c;@BWlrKiC954VVeU`9BX_ z((Y(K@ZH1vY)ACVOm9}M-`ur&@%A1r7O&~ zqnwD3N2@b|xMqc%EI!pP%*Psx_eV{Jr(-glG9w!&v7=w6);VYEVzt0NFLLDQzAcph zKqQ}xD+j@U1iT!5ChNd>UK2m#_IP+RB_HpCe5;j+EI~eZMs#bZ=K8rd@DqRqK&+P) z;F69tJ`&t{^&BRg+hZ$US@(HpVJJ|SG6d zW4Z1D-wS*Zh~@eUxTIxKypuSN*8sT&&N~i^ShP=lRCa%!Q@1PYZ^(8W+NqIxHIM!7 zQP$48LOHDIIXSAphX74LEXNpdNmC<#y*SR*06Bv3EXTa_%wPyVpYZog0>e^iKs|Ii zcSre$ZoD7)De(J%`+=D6H^3!5e?eF-ex!$E@*OKR`w(#~ey`ObJ@xlN@A|B^{%A%! zBb;J0oz10km(5$Zf#~&Fip^T6PsI(OjsRREtoD0Cxw7rKai9@=JTMuE<=O-;sVX}E zH*j7P_9urmfsy>nfjjWkVjq8=Ydo#mI-eUrOp#N@78kLd(^{XLp>PD$Fns!C>uXf> z>#B%;J`hVPx;%BVC_-so@4QD%cDPGDJ zC+UuGaolnKk||3|my|5!exWwKPbe~9{!GZXbw*A;Ye;d>-uy5Y+Ywv6!9&e znd7?zd^vCq5c6FHF6jgEiIHggs-D`5YUkE&XBpkyvvo@C1-0w9gi$Yf)4jEJ1m+L1 z9@kzXV`X55f9?n~{LasYde{rUSPwr3|1IzbAeQGHa7oA1!~b2H!)E&D)IXW&t=9WO zx!Pvs7n?RiJ z7r-SIAH#lem`iRepa>&^52H0!-Woc#a3Xjx;^)uK<)QQ`tbP)PNamHDGv8F ztj~q|>V{UFpKHKx1a1N1{M-&M=|kivI`*;#Q_KspY$*k-)9KqK?TYyIL9dqg(oeht z?#^MK6Nvf!30%^F$RBfAG!Aw%R~Rj3KtWn&MM3lj_u8+O++(X=`wnxDowB~G?ybZf zd$gOwQld`mVuCc)P9;{k*LIy+k=<-Yn%ZVHRhx<41nk$r2kgv@b2x)J_BwTD@WG(w zii+kz`b6ar!fA#YLD|1)D}LRf?$o!%GqExmTEJK z;6}zO+YIwHTlr}dx^US1=$W;yR+wRY`!gyXzfQHjz zWKoD*uJv;D#rS`0ftITl{fg4#IWD?WsjK7zPoJvx2r^UQIvb?+$HIECb8fDjJ`H{+ z&d1UznZZaD=9LSeTD3ucHRi2VMBl>SaE4Blw6Bv7eG!WN=VsJ?V{Yj7H zv!r|D`kn>RiJIVu*LOMM^;@Q1!5OdCoc;S?#J3Z=aedzoz7x0#i22?DF6p(%4>|S| zI|^U&R#v+KAEd&;N%F|)z<+Rh~@9#QA>@ z+@8mtKM>224=(A0^M4|Nw-6&d-6mPzgORKM@iwb3;*bc<}?g5uH z&_C|Te9sIIC%&P`FE1~;1cUd7bKyf#kY`OSPoqnn)NozH31GZjxj(>^%4%t^3OBM2 zemTlN{Nntp`L>k@6ale3HQo6 zSkkU1LjLQZAM?K${6^pwAm;yha7iD`|J+djG3$>Ce}{?Hi|RMZT2$xY7NF9}Ds!P+ z4kdEjtMvSU?#?GeISxg9q+Fa6ZL1g<2E=mA0GAZcm*VG<<#NRA>9aC>YGL;DeYHeS zF;koZ0?7~r13#vuRk);Z${}aUWv1YAQ*s#xcS;U9`ZAe^x9L}5+PgoL>st86?c~$o z_X7_Dv0U~^p#3hYoS-?YyFV8k<*< zc7xc56E&ULA*ENS(!lpGP~2C;{B$61JYQJ>z8Y8;<>6@KXq*o@;mmY^Mz$Q$ms@Aa zt*1PNfOcHJUKTzJY|8+#{_Y2tbn$?GCgwY9%l6HI zy<(sGNZ>p7Xz0)VdiW>_J_}!2^QDmO4=y|U%;mWei)(-i9L^VsY(7U-_$+UTldtp` zd#b~APWi;X^NF+z?)y{RMO?taMJz5ZiFN#Dy1XkcOf>4mV81%q=FBj&ed0s~xWjiB zo7t4bLcOS%D3lzE$uy??YW#DPW`uK`?RYZ{-;Lf+F%!Ikk@N|riPDm>vi2l4&>c3X zewXQ?>UvQ}koukp%gI`p(_0~U1yBvddTRiebp3#Hzd5~eL-_j5q2YEBtG*wq_11fw zTAd?Sw%NKN_%$owXG4D7(3{6+(*7<7|1@wn5c6wU6!Kda#gX0^t@~nrYr8fFgAf%2 zBilFJo8;8gtD#}-I5{o#L-n3-y(T7gw?HCoBz-&IX)7VReKwgtm1XcUDld0g6ubGx zA!@wC1yh{7ETnY!lPiT_VyaFY3cu^)ch7McWS&6}eqsyxni znj)O0m4|ULT{+1k2t;PN3C?*CTk&%mlk80Od5IH6gK4*eo#}($h}u8-Zj1DCJ9sbf zIUv@{1K^U*Iz~CfN-649+vQB{4<*L=0f!fEQJKa#_VBRE!p$T3ViP?v>*IuDOav2eHyP^7?xOSR_WEF zR-uoZw0>4$2c3l(J22sXH`K!m){%3NypN|{LQPwz`4EZ%Q`qM zac1yJW#Z&SMesT;cr6TGCkL++<4;m}4)1ZTsya8129f@CtztYeA68yh`w}Dt6hob+-<9qy!>v=T7&$ND` zW?IEF#i2gv%DN-^t*7MdW{bd222KSe$@n(VPb|7WaCESr&Kb$kD|)tUTED7g!It3A zTiPOQtW}e?c1HAf^`rj?_@lrR|1arxBT^m=@~jcTodzP~u87aO{rHqGv8_sAFd*sw znvWpZcF1T#%&0fw(*aHKqn7g61l|qwM0|wTvGg-*MGzB&%jn9iTDkO$Snynh#zaPb z#kw`3zYkg!ychZ}f&UQr$%msKh&>1ngRGg1vqBp#5r@8res*b&{y6Z7z!V@(A0U5Z z{6U`vCdOK7_|c(=?mB2>Be`z?-vxZ?L(r9aGm!9dA^iQQU+hQs4e(z8|NVcUdsx~| zA&PxGqFa7yPTu3eX8?16I2}t5OV||e8Yu7@W7S4`FLPauP=}UIeFPev05w zMEu)OKZpCPzKDJ&wBmMuCHOVKCq4xIpdEED+HyKW5}o?1bm~NQ4a-1eI~37B04?nI zLH&6h{0-ojAC^9((~wRxk&h~nWxW*kE9Gb8__)^;C}$#`4Dtx zY+jus{P})_Be`26`tz3O>dPwd3xSUT@qFXw;F5+${!IPW@2j?KJ|BO?)m(eDX~o9= zKI;e6^Z4Fyvi4>tc=*qtj%+l?NF?MUZX>gfb3&zZ9 zmA+r;FDf;Jn}~>Zwm@ywCslqvI1Qf9C0w3La~M43s8nDnllAG@PCQTPi}+^G%GK|Y;1hwVK+JayxTN>~*^V%< z9A^;6a;=yP%R1f^6Hy)}qSw@?G*N--bS0wXa}qBfp9kAZ7G^O9)Nu71!Co*4B)ON( z%cl_DCRDtZ{?q#RQ1AQTANL#2gZ~)#DGw1=~TfZhScGSMDv8PT3 zd~B+(sUH$VO4X$~*ogt6LZ{0U70w{+8kJ^{SCUAIy~wsxg(bsvYZ}2>-4W~6#zd1y zrHS~T=8rgrR6?Q@`rM;o>;hBnNrs9%?EGHRHo6*v``{E=v}?JN*0Oq>%QfW_Zu44w zKMC`>n|!pAZ7Kgp!M_ZA1&H(c61b#`2gG5G%fEYT*P8V^=5Jd-P`Raq!lxM4lfm`Y zKkR&6iMK_T<+*EoBAntI$jvE^j3(GAUJm(}eFE+b|B{eIJl%^)q{;)YjSGd zrCzZE@5Ix^JMlI31IOCUB}c>cI<6nVVu`Zw7O=UDiH0zo1+rZK%Dt#4GL_<-ro(25 z&)vMye?k>=f1hIy=Q@INxz#Ym9Yd&@%V<$E2VzC(9<~WjZs<+qaa{wd?p6Ar)+hMkZvgfJFH!=M&%FRxSl@>{&nD6KrGjr;F6A||9*0vf@v>U z-nUjG*Fs=^AlpyyUN&O0PO1X8L5|Ml+uW<7=|^=USX}n#Il4MvV|D*WC|7G|POe4Z zX8>mdv0UeYOZpJ{3gnv2l~~lxqS|U2Ve?>2SE|c;6_ZFH7QzIrN6uF-7VinGFOp+F zd}96l82lCBKY>_|_rWE7SpA&ZjTE0!u;=BshBkuh3PHndztpCv3bewWoy4}~C48~V zT;#}Vi*vEBg?edU!QL5n*-t^Zq5Nx^iEG}>y5x$qKq2elJ>Cq+q9EH+E8=Cb@Lrv#<^}i-lOv=G}eLt z4CU)XmRMi!gJZCm4A9|8*e@w$;pJwVE{|;)7N!pE_!zHTDD8U6 zcHAj;Hi&s)?fh9N*A8T;MF`Q`ZQ!2GkvBuG1BXV*r+`h4AefP$XqO41h>JsZ! zo2Ue?#}&erSWA2wU*X{y?&~4nci|!9itsI2h0PbJ2jcqE4lZfIG5Xj3{JD8@NB5Xk z*q3#`qws3`nc^y>dre*O7+p!XU(am%$NbrN2AgEM?073d4fX;W=hZC@zQweYKj zpU86;_=CVcAeQHOa7lL#xaTgeN0AH*S8NtFutD^#!0pCkbLeMWkYl|;OP8B}=?QhC zL~fKyJVHM%XYwRve;&$_U7eF-EcjwzDGnB) zr*#O0L-^Hha9*G(c&!Oud$pV$_?gJ?rX>q!M(YMlJ)Mw=PxMjq}Txuu1ggern zTHsXjY5oqgVJJhfG*GTG*F_ji?UiP&pI5}zx}$5Av&vuX5>=e&#N1`To$pKXKEhbQ zU%4+ErfgK;^=&4~NqXB5<$Y+YmM{q=oF*tIUOMrFz49?0LreL3@7xKe63)V$PJI3f zZvC-2pipmLXdY2#rexLvO_?q((=Qv{Lukcwolf+*?-!vyJJA<4BPiEP!S4Wifmolf zflGQfieoZRpDR|MyM0^Ff)(3(X3NYmP^lDfFZaX-#>bh#YeDdOA0J71|AzGr-lYw0 zv74nwpc^BYNQz4VWX{D{=@+Iv?6OR}cv~i;qISP^l*mE zUxoP?wkBs^T?oDb=mz3^%vu}ft(@#q@SrD5f#m^(*^0xPNgHgT{4(CvI*=Z^9b==r|XSwU;^#yA!ixOQ@J!Tu4~)vD^=zS#cP6{!Yp$^ z*C|Q)V@yeQUb;qhx)O`Mk4S||aQ}RU*Yp+2zfwVt`jwy(CbxU%w-k6y2^sd?nFZ7w z<;|ZuC9E=qQf0nuI~D4Bqfb$lxH1RTfEjP7@7?H=g;!8-z6Abd;3**1_Z#4no<4@Y z2h>-MU?9 zNZJ?i?S*d4_sihF0)7j`e1E?_sQSUW0BM!ba&b>x$2<% zi|}!2@a8TrcwDW5$M)d$X5J*NKJ{#&wRtR;(w7lDWHg&Fm2QGABriRNo5HRldT8*- z3?`~PGblDEiO9j7$BuKMzp2bE@Hv;{7IXC^VG5}v&QQN3IZH21xZ}_C&st`GEHjja z*?jFR_B)EZ{Nwz|{zm^)cd>h~;?9mbs_$|31TNzu61hFdoNAwD8WN6?&n9u##{6Lf zD{W<+%T;X>Je3PD1q!sw)|1iM%8<}3T$9i9$LX~`_OOd^wJw+Y2>l`HLF_&0@{{<4 z=A#Q9RMpog@BEZK3QuObHfTI`o&Y ze#|>JH~%>U{9IrQ5SP=Rz$I;r=0OLedJ>n@%JpmGGV05}(|J8#_2qLskTqbRdfT)1 z<25xwmvR+Q6B|Uf%b^VIRx#yo@<$Zb`Qwt@3u;e2$7$zSS!acvberrEdWbi|pXj%h zvcZYgoP>Nf#&4-;@W+`ce!7*r*!Wf6IdVI@#>IP7pqF~XZ}6N#H${!?RB@jN+F^NU zeN_M14Kl$?-~WdBZr?x%7v4*|I1T(FU?&jg`#-=XJ#>tAu}0=pVc#y3J@ys96>jEU z6-HzFdiZW_u*-NkpQTX9XMJm@J(?{c=}g8_A%Jq%~~e} z@(kYx6+p7mXOtW(fftWU^J&_scCMi!?^ywV!&4CnZuokxbMI22)=hGZW81zc-z zrrw&Ri!bCxs{%snB)Fq+w@Qq3n_Vu1vp#i8 zp0yiK!>q36D4Ub@O@Xd*s^|o;T1|pDD;IsPRjf9}K2jEc6SgR=UP1q{7&2*7Clv-kX?^ zg`tl<$1B4wK}<`Ij1~JOzBa{v_3TtBXQm}cv1#-hGCC9JUb98Z`yqO0Uen~H=qt&* z)g-2J2d60=REY-O<~z=0`zo7IbEm7oajP>w%0Kyw$H6DSzYV+y#QFET!~C}m@B@z9 zANd!HIl)EuvVpD+sJ|#NruM0?JJt(9{>vyC$Dd7ruo{`(AhY94b;zqqWhhZG1kL#gZ^-S;EPmr zKy8%Rr*9~Ngf&(Zp0G@2r^|IKcG$v@-vQ{w>$vZO|2yzgAm-NxE@@zVvRE(k!-+u{ zKI9F;hm5V}z^P|hqxA^+U2nu^*m=3}Z7TRu;0z$<^DA&k<&odWyeJ-H%qQ&UXRhxF zdwKhH`zBlMvj2-KQhDsny@Y$%?Y=m+zgiTlNoPmnz7g!E>_mOns@T zUu;x)@`umc0U)m|R* z+Y7zeZ|XVl9|5lbF~9lSLVoWZ!ydjOn17xuTvx|z52~BJmlO-B>(xszd{Z6pt>!vC zQrA`$a{AD5GM<-L#a;C$(3rVCr=YsZ4*?y39R| zj%%=@vts{<+TgF2Zr+SifwXu$zAyHy-kMOp_MTk1oC$sza5WIiXP+O+cl|N!D4~3F zwyj#x-L+Z-3_Izap$F#`ML}Qvy|BxEh~*$l#N9kZ;wP&Jw95o&ND@CI9PASgy>h9W zPH+&ME0*kfx~z%pde99QXYn^&#H!4t)W}(}Ur<_DU*b*l+L|5D^%F_uFJwmTekA;U zGMhN!``n^u&h|e-(90R#%yDOU%adjG<)*AHs2OQJs@4pi%8}!Qnmfx|?w6!-f%8T* zm-}aUGn1*Bp=QXORx{eG_G+4k`a_cWHRH^2bK1>xyp{8sx$QY=*R+|5b7teEPek_S zHh&^xO)}vV_%Bn#Hr5=zkL_VlGdDpey&7oEnQEqZ1zurut3R5{-E>W}894_U9`mB+ zW`ATdU4u;Ap+3^9^Xi*rdt+1q3w@JcvA~>^k{Yo*nZQR?U4Q(&H}hsDlWnqxeZm^H5caSLBgm$xQBhGu!lr--k~1dn|=>%c({&^(=xMLO6@e_h70nvIrg zy==I4GHT4U)=Ke2UuZ>)M#Wcwz6kmR-+JV0!Hq!kZ9^6*3BDQ2PdsblG#LHyt+g92Kh;yoxxE*&)O|l&IgIBROT19HdYU!T zG2aLelDy^U)x4F+RbT_qyw@U&lq7G=XE*)(&FGC<#b1wp-5)rB{5|ljjq&$I7OAyy z-HCITO_)3X66f_Ka#~yyA}%g8EBdQXaf#u67Tpqp6)`T1$*f;4 zPgACy$(VSWcuFR6*P0q+g}1I$=2I1R==F*>A#VlSfX=5!kww~~_MIliQ}b3XoV#NF zqQN6Das&2kFy3UOFOyE2%}@pV0PNHdo68A`7`8Nw<$9twGFb8-LBHlty@KZeWCP7# zf}8~ZP_gaw3iz)uK7&6)@pG1JJpWS7U#Ix1&>w<8JQp`0zY5*}nm=ouxUWV0))xqLG1F-$gOlvZ!)bE;<0 zV}a%`MHWe~1J$28zvFg%+@*JX>^G-bYq%ylkJoAe`MEtX?P?bIk2&hk`maClsNcFe zkms|GijcU>sux^!Bcwf5@agCDcH|#}dw{m*K4g&+_fNX^(Q4Dw!V#*1?8P5+9|9O2 zsr*Nu=Cd}i#s;JV%@;xz=~(+m1xBfTAZcDNux5=Dc)N2YCqpZ{y*>`(7X-EA|2Py zIM#}ZJW2y;*bmZkF}%Q7VmTXE%STCni?53DPD3sSGl1qj7g?lZ_&cl2IXKU$MRB=& zq2uye!^_m&B(;UGUh!^6ulDyD2OQ3n5LKdlYKU-lfsN5>{ zFo?4P4>HtYu!77mRy$_}3VoGhq~FHXv3_R}axc&iX#Q2mA|>uqT)k}ZeD<3STD|I` zvJxh;kVQXf+Oo6s(TE@N5SskB-IL?ZWM+zWO&nm;-%9J`?JiFC&SukQijRw%kbK*&gC?t6NsKXwYjdj?;I{G0IPn_Sa#bevkhV`On}JpzZIu zQQDu_kBGB>(lTv7Z47_>naPh@JBK-oELMm3nM>;+UUy;&i)nS+*MTd|)pu4zFx8$W ze&hO`>Fpx-b+$yC{%(FT7Jjegb>8Hq5ov$vHL?0yjywaL2ekb^M;0lue;JqGP4>I0%NxQE zemv>R5lf-y#yLLt1EZA>;vjh8Lno^{K6LVzc!sn1NmyRwFHt`9L9)4Jq`1ikQEhfA zAB0`e6Qv(VurtheQ4Zcs9wQUv0_{g9WRad%>-_XNADlY3e1&uOjd&eJ&Kqw=I@0?& z#N{GJZWn8b2nveXTIuY~;qSu}Bwq#k^mD!eISMu@4pB!E+ZDybw6P$R50&e-MhFXx z;sVA2mHs{GDnpO(=N;q^Km*YJ97GnWDq)<2<0vLBuXNT-)S6d2bCO?}_nSsN>m{m$ zGxM#8_`62MQ+jP|9CkeNIbashJU>GgY0(X`-+H$i2ZU!nJQG%5bdhs)JH6JYJWfaS zI{9(#4-9~PVLt2U#Fn1E*@4-tuW26f0#wFq1u}Jqk+(Wey721A{&7{?-Uv ztYPhY22BZr?15lTuq05BQJ7a`(P9kt*{L)AGo2kmoEUYD>3PKTaraP9|L=vRG$oT| zxfs_;dquvbAa?`b9)d=45L zJ=0#Z#{0%+j1P?de>!!n{yZ;|Ejrivq27P)lc z{8c5F&b?&esS8&vTE5_%xl31zQ74XQUIT!*FY6&J>oteSiA^o3%%+$`g;Im_7LPvKZXi#>{gh$)440#i{0cbmZfh>|fpLT$nH;l8R@{)_o<(XZK zc*wnW-^x+To?_7QuzAEX_OZ|J8PHThLgfok(eJ80PS}VWRVi*OSIpoaGqQ2C>hq7og~g6n9sn_VRJ80 zXi5=vq@Q=TXn8KMmKot0s@|hl*ZWP#H-TG#=DibHq}J;HiiIneFI}_nO!@e#tj{U! zJ17A0NyesN7b`3V`+8el9X*wbw*kG{-){xqP3(&Ynl~L;q{R1+_P4m-3K4SlEfEjk z=@(t(y!D21e$HX@G~-cN`w7+(E9__?zE!+4(W`k^Ag=`*fabjxS)}9g3id?ar^U0R zx&HYn7EQC|!q^kc_T}{R_2p>9l3zlymm>?JW_~u!2f<1#QqYs~> z{D)Kf|0(h};CrC`&%IgNr1zoJt&4xIo9t=o#}`ySA_9r7pv!Xcc;9Fl&!rYw7xNH@ zKI!29O9vW6e;3hL7;N2Xdi$Ck@VWF{Y0pgfbiH4WyaKFIHYAlV>gJgYh%=16sTod= z((h6F>sbo@=%2iJ;nD^1BnKg>Rr&+B#O&{e+#U1=A|++NXdwAtvoSy0IFy?0 z{3ZPsrGJr2|JBHwz~;8-Z+c2Ziwjay9fk&_zaCv-ek0y%Um>SdGqwwKeb|gF(r$Gx z+}-N@?`G{COPa+h%>}ZP^t&osUuC2&}{A<0-~QZiEXl6Xf@DnT^lK z8Ot}k{xoK>O@Qr7+i0#WxwK}Gs z;y;O(rf>K(|H*?+@t>CB9e%oh@@TI;%|Dr|i-)EUqw7oW(C-$FOL%mlyZW=YSWxYIz-@0CUZ)MI06at+u#mFMH_Wo&V7fxG!smv1b zCMZ9VUT?MokrT{}e3;h7$_}LX#Fd}UrJrNv0X(G_N;@jysenh6&ke{sz%PNeYaB~!nKH0?u!P6oB@pHe3o&1s!cvz^@jXmm zCX*S;{-Cdw&*=|Sx_G*VIM5;2>cO`>_4nbdK#1Oas-ML~BUvI82zB8vtEeL9aPPO@ z?#ptUkloqC%Dn!bu4%us{cqXyYu>Q^Z&DBZuh{-q`92y(n|Wv!)tLU@*#4LJCsqKm z%xIQ>1dHDKi=O9Y-oKmPnbzx;?^5$w(|fb!y}&%hdv@mN?B3RoO{zji>-4O0vsZ4< zg3~&dc9|#2SfuicWqBC4#nu&dLp}ja0J=OjA&c~~nt%9Et?y{|yvXvHuvT?Vy4Tpx zdhW5!8vEy_^KrTJ^J>0`BHH3No=%@bfruxim=0hLg|dVLi~}s)%*hFKAL1X(TFx<@ z0-cAN!fDPUVv@<9704LkXUUdth;V+rcdhk=WnSj(W?f_x7mym3NWb=Bw|)2o< z{$`;4>WC~-YyI!0`d%LEgUc7;a9)I+7*#t=q-1=QE)Fp!4Dj7~--1XbvB^LuHmNg>qu7z*Y(wEV8lN~F zsSk%HrKI>%9FvAx=c#ekI%Urh_;h=a{UiGRpeNAwlp>3Cftr6CpvFO(*)x&Nb?VNe zs97R9!)IP4-kbNC#*Pd!Cy*o8)UWkAeeudmWqwqlU-SP6`9APdp!uIbPKtlp%5&zf zSj-^+^J$Rij}MQT!19@g9TPfA6F4iZDIN$fQ}zFjSh*A+j{@U>wqql*NKN&mwS1Vg zbm67af@#8nLE^{N&K?v;94fy1oSY#VeGaqo8KUdSiZfb<02^ZnV{+4(hs!@R$LCF< zG0Dy01;YQ6!ZL?kv6zw2E`{69bGv!N&T`znrgI;QW1dmFT>4Xwy;b~5w66z|kAUxh z_9u9!^yf{rPVPgsE~QzyI{gG3>elG_(EO*zZ1kM{PipsJ^8?G+pD~+9m%|I3aQ}MK z`njpXd?R$3v|}bbo0T1xBVP};0By%z$Rd5H;_zeJF=4GfpQd}Ym$UJ`X0>AV<_{h- z>Yeq2Q(~W6#_gG+#I`A$D6wBFo1&|wJ%PJo{iZI+{lHM5?U{xw(h;@3v_hTB+^pVA z6XP>HhnI*7zuc+t&MWvrFa>ag4td`2;WlX#UfXljYY{B0dN9Hz!A7`C3)}=-2-L68Q!2D$xA=p@=R;@$Pqp2$yP{rS1bRbT_q_B?|u(iU|O)+1^>I@WGDCt_X14O26mai*qz zJ(2iHP9!c?Y7>zERR!cM*xnc7OnIi`3dH-7o_;>vn?Tx$>_g)mMml3Xm?yf3kSd3z z^(+O+x6^az)!QOm+G29)9*5uFOZ(?xprYYQ>4&j1R^NIe_W}KZNXL$Q6YO`#M>2;0 zK12-PsCX*TS&2^3?%#?0D0l+s{Q5JpNIlhfeX%-!?>PC@)bH+A=Xr{8e6!B8%XB`* zyyyg}FMEwmS?96ouLDz>;$VR)Pk{S`^4ab=nBzakuzGi>*@ekWHb)u8Lnf~^?=my9 zslybxTIN&fJ+c19smK?C`9RzM46;a(AIZ3_=WU7c8&l*Qi!KXWw@l1EJSFEI{>Fzh z?BX{*$zEs;VhXmGHOC5Nv&X^;c?+^5R;bH7EY)@7bW!J&?|>{Gc``WLE+^%I66p9H1> z?cZg{A{AaO{c2S0Ppo{J`4{WFbgQ?%^}KDF^;XK;j+eji8jt79w)(NJ&d!*g*@d26 z2Qw51rFIFiF@j^rdNQ*W%1aT0Yag0{%RLX7svjS@UfNrSJyGlt_37`(N5FSL+k44< z(%$tdo__vk$1M+8msDq>d({6#{trGg>i@at2cHwVbu=1sF3F8_E$fnR`m;SfJR=G@ zzapgvbM;xC5uu7e=R%)-wK*Wq-?7^T>PumIV40`0&*!<5?Ms1d&w9_zCM(B7dARqZDW1EMo^xiqBqdFPXG1kR4c3m~Ll`Ul+Kd z@Z!LdbaVXLz!e17gZ)E>ULL5j?anNSF7??b_)Gh84MXQX{^C-{F8;oF>{S00A8Uqt zvX{tOYpuV;Dk{XLOK4a|%wuMw&^(cAk!=680+tZ_It>hDha6vgX9d_=*Q;;ryPcKa zsp;FLoVDxsPxo|A5uVu_P1{bn*$l1lTxQ>G7QQ1&{vFf%XVc8j`t$i!5h{W>_DY);(sI`GrFYt~GrZ+N-@4x${L`6{-AoSzj8d54sIFBsc*UPMDZE|kFMA;Nz9>gt1=a$ckDnupbi2A&aElsm)I3e& z3tS5^LmYeHpg$nnn8Q3dElopyZ*?2iH za7yOYCTrdYIDSTcBJ*YHgR%8E=OCX4W&@E#ChkjEf1vZ@qGfBuv3SGC^iWRV&+%6hBM5zzXZ@_X8)l|9jE5b&e9S-CRuMat2AZ8cPUJF!YivgA zeq!T2(yo2*hT#?Ybp+Y|smBNcZC6)hk&bKEL{2ALxMI~}mtp4!!>$B7dkRMPx~l@n%7h5xQ6E z--9mQFa8iYbr*a<`@0ocq=Wa%`cZLT{CjY*yIL^j@wV-Zc`S5(?v!5^IbXUuKMV9v z@k)F;-FUCyOakomaEET*-ne|-{HQ3!Xj@DTg)>9MJa`;K~C9lmSmS%YN15! zE@@8`K5fr~$O9kt7(;-z$M0dAB&xz`)%jL{daEp8L4)@^FQ4q zzr2({C2Gk1`Nn636R076E0oqVnA+b8pfmdeAw9v`6w~!6&eZ|)dZ=tWSps;&3 zn;r|N1i9CQqcIAvF$;rZ##m#QfB`9Iv9YUf(DoOmpVG_f&Gy{hS9yXL1UYm&pIwj{ z9LSMxZL%O(@9SD1Iun~&YMBu(k3BOuUG=knNyfrnBoKqe=)rmvZ0Lg0Y{o&TGkkIGB>cC&$h7FJb@+b zV*ZQCYN)b6ztsL#IsbNw*`NQ1W4?@rCsg@UzIy%Uoyhlshk!2s>_=qz4^VOAmW23m z6$QO=!rG?UYHq0c9g}n-&;R2$8alF#)yF9%ft<4JkzH7)?@7zCioJ6^950a-@TK!x zLWZC(E0~?r*$!oAX0UwY3}1oR+n$m#Fx!`B1xm9yYQLDn)tp(n!5mpOE_xnf?*Q<9SIAvOYGg&rR<)rZ-|%c;-9LQNuIR&qeq#mEVZ=xC;4xunTBECp{|t zO#6kb-<#B@e(pqfT=q+%zC$_Abk|Rq?qb&Kcc$~P+WC2s^RwFif$5RMW_>r~<*p~Q zM4%H>Pr1QhK>wFc$BUC8GXg!+dz^482X{=i&hng-&LNW7ox)ZM8~jqNkyZs4Ne0rg znZL~7a@lkb|9);@Iy=A5^CDR z(gGoC_)R8HLKmxtIY9P&ayg?dzn2xt^LH-!scG$!|CUi~b$N!KviugBE6RSnKeE;2 z$AD4(aV4Jo4J=oS6mJMzIXN>h$X~kE@`#I$h>pF)C|V4jFe@U9$y67yo;1UBVlj5Ft(73K^cpJ`?#1#`05 z%X^Zw!9Hw;dS>;>?qN<$pA_JFm!9c;GWcSi$hF_2%_6g>b!P6#eRr8=KXaR9b~EL< zR<*Cm`gf4}rQ6wWkb{r0?g{An*P&L{zbf^9tWS79UPS%lA)`%Y1pd8DX9WHxuN;Ek zk;5p~*&x%{86Lt323@W39!q@prgNx3ER(!x6u@XH_U^alEoBB$W9$@2dq5Qahw?sq|GZco!O9683^K} zg5vaSJ4+DF^+VQ{oxvTW6MdPw@2id|-vjtQs@D zBvg{wJ9t&*J!aZ^>jZyq->LQxyPr=SHCXqKEU)d9N119b9zos<_5od9|M{hAFCLcd z#rj9%-;1KWrq5lw+!^}pUYl|t^jL~noAP_x`B?7!JZwJ3fZk#Au3XAW%$IMsjT;9I zu{!v=^1wZBn*Ja&h-oQSm}2;m84C4E?VauwhwEIyy`U%hJ%JD#zQtlluPIIvDfH!@ z80a17ADEEN%P7yAN%@@I%@gL@a{doaF5~|wIM4Y%rgOl0TGvpjo#zuL_ldJ1gI1rF zsq1~*o%y^OnBfZrhj~)HX`UIraN4qaOn;5(#R{8-sNi1H{{ZJw&CbiGU^b46=GI@!AC$D^nK)P6+f0tY8goEAK z_swym=hBkSW}MH%p6TKdf#H^S>5$Oi*_@ozYe;~d%N&W)HG{(+QaCt=tubDV+eU4b|TvEwBQrssi zx~@@kq6lYl#1AoZ{k8dqX*|MK=6o*tDDdW{I5F0Jdg?fOK-y9EWUSwE3i1VDF3@(| zk1SH1Iv+4{O?>%PvdMOm81)u5)N%rYbHUI{+%_akX!LM#Ymqmbvu3h`DS39!%#N8> zk(pyzopO5EXMXx;4c**E56t zJ_n`Ujo78%1L;qBjIN*u&~}$1i`4qMOeY7OyE|R`5gN>E%2FD|*1 zqX{QCC0N-X1Fkn&ANjTU9;eu{HM-Cj^jz;OOPH?d)|g2j{)O>wsRV?NUe>h z$>(jt^5sjZ=sBe$Sg-uGd4}-?TagN^e2-sro4fP(4T`TCeWiRC`SKw0>VJ+t?%BS18BThcppR-Pef+?^{1AXl?#R8(C)~%)-IjR3b`WxCEP=1up>2pZl!jUs@yElSl4}Z&&1V zapuDL3l}qNLlzJaZL*x@iti8?i5l@kim^8^$lJl&mF4(pR_8!2UE3@c5z=gX7=Q>D zck|nqWcov+{FjK%nSU0qh3>uqoToY6+jS(bT24R8;eNeE9P%-ObF4aX#KtIbl=lYj zCDvG8h}I=$#5;>6aX&XR9y9%;gWXala#o&5b%&*&RrsNwzb(i=0rvsz=OJW~-c)ga zZo>E}(f-n=sY13OJnel6o=`Jrhv za0?YT%W+(x&+6%&BKCFMVR|{$OQiZE(vEs~^z*YH`8#0!DrQFnStR}Ze3-EBMA{Ks z%(T&&8y+a$jxRgnB3;8n$WMb`0iBOuB8xOt&A*kY z@!t4+)bon$GW)eW^kADM&O7+pJj{~m)Sgz?KyNBN118>Vdi4P_)#_3(-eSQON61-u zIXQMVSH1B9v3*w7nf@uFxAIHNdloZwD!*%wN_!*E$J)oUkr#l)K-;?xStQ*b(dSqs z*t>MOv;DguGMWnZf;capyj{W`z?fP5Hy12q3BzgGNe zJ~@)G4@{P~UR_mC&wJcC66yu{@tFL$iw}`|zp#y?*ptgrw0s}u=Z3h~kQsNT^cc0w zE;zGukfpNXW1{(Xro(y{Ybo~Kq28Ar}`0SiE95N5dYYx7=q zQHk}FV%Myg?eSSwVQ5OakD(yG6POfqz{;zy4+pl+$tkp&WnvZGSu~rmYv@doG$PP=jTWKO5{Sd*VxHg$qZj!8V6%{%nx+2 zdI!b@Ms_=q4W4JFIyrNtb-zW`ak9s#^h!JTVMiD{ME-m(Y^q}p1ZX=4A&YeE@|m{s zw8f(1A_uth#+#9T;3B6*=KQ9OEFWSM8nr~6i5u`1a0Mg--5#GwOXBP1ozf|nvz6^G z6yJ-cmyRO!*_QTI!XM_lux}Ic_24FDlb8=Vc7IB3vdAQdGL4rqSzl7C^wzud{uTLK z@B`3(7yTv~zty6(iU}MGaS~Vpx`1(W#Pjl{WxT09_ZEuftJe73DOv0y_wvMe3sc97 z+p?=Tvi1(sWL8h4Qor&Wejy3JHzPj)eg?FC?;?v7Rqgur7Tfnz=T_<_izfbc&ky4K zn?BCZQO?hF+1mfvYaGq&X?4uK+GIpA5SYV4?JOQ?jtFM4bQf#1x42+*4hPru!r)QX zD<-oxvp8aRw=l;^)hW{M;+JCeemrtHI2&lYA43*tkJ?YNKcT-OpEvAgJ)*Ojq>hN) zIRL)FdeP~!aG&g3oUq)H%QC#)u3TE0$z~F^dYECZ=HZS}TBDS-?2MDV8AU1L=FHxc z{iBC7pr6CmlHN8)Zg#QG>Vo7S-@z_m|9prO_IhO4oXICzuagJ_&-0GA_M04(T+EPS zKh_G^-92)*AnRY!rJteS#_DBX6UzxB$F?eK)*5%r`N`5EvlpzU}CS)^k>C$7bhIi+Pz>~WS6%_jDs z-ugxC;T&>;p3)5E|I0DnKFH(1M4)+BB8#N`PgCo2b^9jExjZ($P&tdpa0n;^RUp*~ z5?PbGGlz>&oYrHoXhAa4tU_;haejk0vyZs7%`TZTD9G$ZL4S^A7c1}17aI$z9D1WB zQ`%dHJ-WZQ5BUK22hjGKuSk23s(xO}@zPlfSGhu_Tb+*H#ZE_Whhze8upIdh`vl_f__U0c}qwWRdP}WnF?SPx7Z}hAF3XCUrT_c}X*q^;SU_CwIa! zZ$!@YwiX(d*^<8k{SovF{?*7ggKa?bA4V2w|6MYUyIp<8*Qc|VE}qZpL+sIi+j92k z|49z_J?d=L|JvLbFd7O5rR8#bG1J8s$Dx-o)E%&U^$!ka*R;5nsaINo)h|6Gona#u z;AC^}kY&@+?QHePV;RVZfoEsP#D zbvA>o=0-C}|3LSLqxq`*UyJ4UMab*H)j<1uJF-Z}?w2%WHVZVSItw)JW`PFlG`fn@ z2ER5RvW%BI6yX-b(N;L{6En4&2G*r2RG67v{UDKTjgR4c-IV z{%?^*((O^p@x|E;cRJk|(E%16Ux9h*Q+9%XWf^-rHg$qU$CuG^PBn8n!t7O%9bwUx z`LXG((b;T-J4rjIz8=fx^N<&UB|zJ`5m_W%?s{A=E}xwV&Vur5#qnyZP8S7zw`J@J zV^wH?_dHL>%pfNmaLaa9iRcltAnq(9(pmEFLBB5N_mK~QFM;My-7EP6s(ix<{R(v@ z9raDsv@)l@ohgkynE&fVO8FvPiAjbK1hoMS)dwuFNf_S#7Sl#WCb(mT_Z|FeJ#xOcyW925oW1 zp<~8rEKQt_Db7GkT~}#G13cyMi28E`IrN6d$OGDr>Bu5&QRh57a&!E6l5GFxI#=1r zb!v6ibEeaA`9^+xKsQF@5hu6Q7V$z2j$|5zcNqf#g)CCcq9N&I^#}~(t`%A)&k&}R z?M!w)=H6lrogQ!&Wv{os;>BjJ_7+>~t%!AQN)IF2UD{uReR{n531s_C<}QJ@-~OGn zzq1TdV)@ePl_EFGS5vXpgFI);swwZ~>&BO9pf@0d3r+4J5-y(ZqKKEJqRs~n{FZm)Gl>`K+9ua=~_>J>Z z{{J)VGxB@n<|q80+%LJ5Rj9|$Fm&!!@N_!5%r|tPKvi~jaM+MrRp2)|ur|I^V$VOpNwqw!Lrm;_1 z6u_bkvBHbt5le(X!UigyNRfWhj!JkUd>7B-waB-EJAk(1QDl*pwo;!(zPLvTZxxnw zaV+6{$-^#7x;U0_%aOK(L*(h__m_4YfhWRuVMp5Ayc0nupzY|7EYean&VESk7u3&{ zu*3b9evS9DcpyIIf}Ng4)=aC9wXq1j*a4Ei3jIP7{5K*02jatQb5PcDTCHTHUw%*|x0GcloS)^m|=}v^3@XbWRib2x9ndpn4Pw-ueyaucT znr{=bNXOuF9=9eZw@4@H;Jpv$HO>k7u-7PmxzMF@h~zE%eT?^Hs` zpm{5hkHhQY+$^1am@!Z2u97vFfj7el50!ko&==vmDA(taUj=Uf&G#O%NXN)uSF>4d z-buGgJT#0(Z0=RW1_H^s&QZdT2E`kGFUC7U$Y2uCyr&_HbPQg~HP%vAn-44IH@Q3# z=6e-0Op;4z?icO#2*41Xo1 z>!t7;^-}n&Y1G2ITk$?9be4~lyvF-6-a_Q=pbyZzrO3zObzTFl`1@Rmd$>3Rvd{Czpm-|#5O+lXGx>-j&<#sN7%^A1E7>B$W;4k%Wi zuJ;b7J+K5^^rtK4F(!P<9MSuKn~{)SMO^jEh+}TA6b4tlnd0<04h*NTM-U(NaV8TQ zl^s>^Xgf9|-vxF8ZATrlNW0a#nVAXeXL$e37&1*5QDbgpD3h^)TPSW}%8NvQxIf4m z!`8uY;2f?f;-EfH2Fu3=r`Q>`r(0^8Flnq+VohRJ(^;2MJ4WVDXkW~(F!Eq90%*IY zA&Yd3dN@tmRn2?Z3Ei$$)&Eh;*wnj-!}niYBgz}bO8#o}>v-o` zwQ=qQ|P;nE_jugUmpFKd9Kg?3Nz zRx7>Yx!8&PD0l*B-nZ4iYd-y{dG(>3&Ut0`iG$0AI^(T(u$#Hh%-1`fwYQ`H^^W;_ zJ7&G!F>h~2>-CPE_jaTd%Gf<8OsOBI{Qpy|9EKu~0~3L^V+yiJt(Sw^Y2DYg)w*&f z_DsT_BkW~1CWsT6PqkR2L8>0F${)SD{C6Qg0d@n;`#iEpt@Dbxq1H*Kx=GPf9+A9( z4`RH1kxRiapm|3kx5O*f-~&in=1 zzg%RIysh-Ni~BhvA$?2K)LQ}NsLPTwsqZ$$!PE@T%T*zahb!I+^lIKU$XA2wfabjk zIVoN>C0AL|MEja)>@@jd%&`_3)f1$j_2|=lhmijRjsneR{y9m$xG9`?)`yx{d4Ero zyi?JudFLZ911o{%twK)9PuG-9K|JllE?T4XB*|NcUR{6wh`b+s3N-H*$Rf4=yr^=G zy}&D%ki}D-rE|4?X~z_hV#{j{DriSSy|rSG?S3@*e+I9H-+2 z#=lML2BEWjiuAYm;~4KGt`IBxXA}KL#+OGMJ@upfJmYpYQ0_11bs_%!^dBA zq>1kcRYykwKS~wPB6MoMHX&aRZgTM?=AUj$W7_P_tJ-`(qH_SnEnaKlfX347X50`y3`*fuShjY|7Mr|`;i|454Taj zKHX9hY;*|fl>UP*{ee%|Ckiq_TkLmMm&KE8l3vh{Q#|G9)a9@Q`BHFM8+p{LM!IpG zVwfiDYpqNFo5*j2-?ve}d`&mi)*A&wSm_V_HD>=HeirP99-U6o4zx5(cCbAL?#1Ffu& zYOcTOh?U{63^%q}!-b8tiYJ0j{anvRt^f;MJjp!Qv7-j%gMGWz!)Q?YYh3!DL;f}R zO&j&A)$&sL9VjP-PFC&T-(uz61vw0Q0+Et!H&lMx&C$TxQAix$ci&mMH@a`*)KZ{SlGPcr48R=>)8x?AQ`ROv515Ig^7BJyN#GSK;S zk{TyZj7!}0Nv}>Fg$tv&onjP!T&MJJM%QM(i|65CqH&*fqNAf+@ytYLl-~${HV7GPa`6X+ntfX^DmQ-{v5;@OA%0r=R(lX!1pOYc?ZoHAMJ56M!e-=*}2560@% zDCDsq0z?weM>6$F9z`b!c4>m?vOJ>b((jAAknaXHF8#^$KV*m?TiSaoYE){6|lhN<$noE*LnwoPXqIjmFQ~NO=`695S?L1CVNRme#k_x4NmrMW4$ghDn z+OA)o#wH1B1wmBl4}2D@M@7gzK{3$zluSL6%4In}uFAPq>0jj1zZv-^aEnWSc@phM z+z}?S9ei51gY}B1-o^73^1s11ZRCkiQPatRm$v_Gx$ zFxoB`a*Noeg<#-iryiFpo=SA;_tdS(w}b62p4Quw1fGOo;8j)MqKao9I(5GN2l-p@ zy^AMlf8v6IJxvdOjpB)X9^;vVJP%w1+MI83!NJ}po;t;|%f+(?`3>-PdwAme?{8|N z2E`NlBIeI<k8O!3vD3U?(;3x@ulTDN-)YEafU|+lzqazlb)FBX&NIpy6yJ7q zNBJ)D@g?L}!0Rr)*89&b``4@!eNb|imdkPr{44f8?}c0p1^|&nKezS%PXeE-GyNI0 zqeAIlgf3nGu0y^7-0aeybp3O8rVlk$Kcial)T2|s_r5^>68zi6lk|Jf-KqYfsaZ8@ z6;IjW7|$%^3&A{~^DAkdW}WLshpb-l)VO%+kbetaYbTGZbN!X}s8R6*{vGqDFY*9T z3fkk3yOVub5rxi>^{f(|VU&t`y%qUZ@FN#b()G;U+5S3K4 z`+H4Tqxi!AiPeiq$Wy^|p#4j_p105mk9zWrI>ocu#q%KYF7QZFJmMhDmV4d@yc}7p z^dCf*Zht&SxCa~rf%c>I_NPgILXZ2Pw+DY5I#br`sp!(}&RpaLV3A9I>-iMZzxWEV z*Fy%UpJBU5rAq%Um;T=%zYO-YO@CYu`;gLKuJi}KiP_&BxfkdQL^}33V3YmvJ?k$d zL8a2a$ff^!;rZ)Vp{-MLq-?+r|^uqy9=U)GGa@-^TLk6y(#u znV=2%l+cs@+F__y`m0^~A4UEpc&cssn-9N#+mua4qvAP&&I*hc?QqV2SqBU{0_{iZ zkPje6^f@0o%*@{ z5cy;9R~Jtb&vjzN5w&|zpOpUa(U|^G$YVhS=zK~-e_W)oQ79+XDg9A&>2~98Hh)Q`i`~_h?L}W-9lt>ovrUVHfE^y51qOk<{~cui(EWO z#YHxXKkz1f5~Ub1w4v;6fKq>;1VV9#_P$O_e(1vPypqx^%tTjr=R{ zqDy}g^~xPF+^z{~m40UUo1VWyXrTqm;MdNQLw3P`kO@v z+aYOG`s-Z!|AhQ!@Rv60cSQy}qz9pMWIYO-vHTf>JPu3%A|;tW*zb-A?sf=DmHsHY z!srt9lv6RqCPU*Mm;NN`k2@0Bsmr%Q>2Gl9=dfhMvb+YzlnC=3`&*9#V)e6m1aMzd z`xjL_Q_&elr|@Gj@={RQHl7wEfCm&)jpC_w@w|)t2k^(X@wD9Ye@GJ5DV{=4tlUQ; zj|Ss_NJ*A^3qAf_P5IWKc%m+zdyww~4<*I3aw&VGTj}}N>c@~ZuCg8n_BEJgu zwpD*z1n{(@zf$QB*fINiBKHCPfzF?#?2nHCb_;@PrGJr2{|(4nKy_R7w-5n5r%Jk3 z@zlF`{(<}j_^PcuaS_1t4nw`tU+RnH)2YbiUN{p|KC+#6C!|D?NTG6^v^_>?*Fetz7lM7 z>3^Wr{(m$52@${^TSNd+#Z!k){ak;9{1@;y7f({pbz%gtSHDGA=c9Ov12LY7$dkdz zK<8IdJaLi0n+{2X(!Uv9y8UEDg6Dy9ED}@#v0ao$Myl7y0(n3r;ZN)FKy!bZMFf9piav}=#Wxe(Ve|^V%aB)r zDi>et{W=$)D>C>{J(4v_|88{Y`t>gIAHW}7`je_(?#SRHNl>r!7pBFY$05kW!6+co zvHL$R``wX2gM1bnmHsN1{yUL(fSqmC-z+ltr0IbV&64Hb;Nm%o`~&c$x6u!HToJ;4 zK~k#pN6@9)t=Y&GU_m?dyCZ}H5R@zZHRuYH=b|1xhx}{s8<+m1>XAD_I4H|Gs`MKf zG5tlzJwY)LNtAQz@qw$HTUeNLNcYb zpm3w~LD(3YEuW7%7tddi_k)9N=4l=)~jio++LRbZVaU$X9`D+RPIdINafoT&T()UAmrqjQj~W;L@Mm z^OzVoY;US)VZ~FN7vnh@`BZQQ5a~GmAy>Jy5IF4cIa3J{#Z!$=onMb2KL(y~@g!F+ zae>3#BEKq?{zi0#v02owV7}K#2U$QQ;m0xh6K+4mW#@9C?@n3dHA;Uuy0rb5ATI+e zT>6u<-`z2-aR};_{#tbD@_qyPE%2^Oe{$vR?wH=^ly#%hA1a9HFGU^-MgpBb$?0#_ zF?~Q+sL&i)Z>wB9KSJIP?rsl{t7G~QB&ACKK9~Nlk-q`owMW0ZW4cRw!TVhCL<(c| zX%_N@U>?xdfzOnJr$(yO@)X)1GYe3)hs?@-eF95 z8GByB`~z1ShBu%or~LfW#TM4phIh5tFgw;!%8#hBqaGe@$5CW|C&ssdwj+crQmgxB zld_^>B0Gi$Iva*Lx5g{Zu32LB6naB*Wq!xIp||MhjX;wZ zS1nvHtXU?MIwuNLE8cqaYThrAj|$GtFeiTP88JO+#hBDKw*xD5m^>lUty6p!5N_K`IivW)JvvH#Z&F#c?x+qc)ndc&10JP zpsH3pN6=ZJ%Bf@6YjgocK>O2rJd^mmCd4%F%b2E4@l>F*Qt@m?z6spo;(4Iec&25Z zgqUWZh-sX(K-Rx{bnEuvU&vpBZ(V%Jw-1T2&7YhGqEzve6~%aFBF_SIfJmZ!NS-Gy zw)s%DLd1iLrv{z+dHOB#t6;B-r}g)EV*Vw@I3GC`FRFL~-D5l@$b-Rfp#4dnr-c}& zLG>9>R-^c;(5=g9JMxdgJubfF^Di#e`9$Ymz2a#=XBE7nJu-WE4KD})?bq@5E$jD1 z{A9^~pR;_*2rX3aKXh(ZJe9~R!R0QV*4IxZmXpJiIB9Y~(HZ56Z?}u@W8_c3f&Yb1 zRYSSM_@M7ZCx<96#aG-jHh*#!@;Tsqp!2cy`IA=s6MU21yP7|9I2#q;c65hPF3Rm` z!CYl{i2DeT=6VIr+$vF zN4^nkb@3$se7R%SM*W&HDiu$?i{~)%f53m+#nUW?{YsEkE1t66F@MfOz5rAJoo~te z1CJ|)J*+&cRXjB=o|lkc0k5~0#~sUlEs5$CPoPh%zV$)w2TFkUC;9s3j%AND)dS;V zS>GyMJa-`91%Be#q%lhA<)<^p7{9g4n-7IJf#C-{+xq+9+(Y8YFj;MA->zLy`tZt_-b5yb;!R3 zueFOWF238Lnd%fzU|`Ize#isCV9<8I65_j^lBq%QRJwS6guETx-7cQy@!frbYKg4h z`_Nf|@uD667Wq5CZR}0{BpKiF93{ke5BN)kl2XMJL1(4nS%iEESnlF^Ai4Oii6izlO$IUkS*v_Hx7v=HAt8hcNM zE|K+bCc1SwRUxkfSGo9-FQ>Tpu2$z?MDf(2vkE6fJ^u^xesIvu)9O07_}6dWlKA-U zalef3qKc<@a4fznM?MRj3v~V^8Q)P(Eyj0GDmtT1@ojhUy@>o0c=dnbi;M4`_Mhlj z&bakbSzdu5^wapA$j70`Bfw}NlBn-V#&L$?eRIcmuQt_#O2t!-PR+9h zc`exB;z=^z67{-ye785&&Q>eFIv3wT3SgZI-N5uR)5BUO60dzhl z?_bOD-CK&VUh&nSTR&H?BEJrP=i*Dg9<~tQ)obsFKNMf#$XI(Z7I`9=0!$nf?ZwH+ zA|<}Rju+nz9>L$o&tf_gc$LfK^Hz;s-A+A@{A=(M(7dlAi`2IG&S5=ffEQV=+W)dx zJ`Y4L1;cVzuJg zhfZB@zCk`JI7YS0pSS?8LA77CiYJ0j%`+Ey0a(;Np11(-6U9@ncy_sX_9Fidywg6O z_yBLeBx+PVq0upaMk0>}<3Ky=K??!i0p%6_j!IeYqAtFBkskoN+Q%0c;2l&k3 zK6CLU8Rv=TDIw7N$_eyp6i@NkSe$nT@(eH&==^&ixi~MzlMv_~R)JoF;@ggH-A+7@ z{37_Ri?0psL}H-#wP+|pm&y8PoDkzFLhcEQf%dBnJaK{E5!Ew@D4s>=)b(Nu@-5&t z7f&17*Tg{YTTv@26i>a2=Re5bg74eM(?XzkwCRNzReX_gvHY8hyZ|f$?a05lK<|5% zf3=Ed7dop@D(d-OUZh&lTux4mg9k!swMUANQbBw-*PI{{jB#;%UQk z><;v9)I_C0qP{gE{|o%b z#nXoR<_`33*Y%)5@sv%B@ytP<2QC6S-;#`joO<0n(Ayr6vs`FfCF}Pt7vDR`?}2^o z<7+X{+o2f4im&jbn12(HCxL089sac(=-n*|BZ_Y`y7l|{SN3vph9;;lljZl`u2KL{QMn)gv; zk=hpLIjqNw^J-Viden%1ozHobu?2JnBDJCY8akwfIPYPe#CpXuQ|Lygcn;SgUkNt4 zcoOrql{ioEB*b}-$VYLF^rsG;+MmB5?*|86JW19YhsV9C>`~c#8DYg!JSE064S6~! z2kpqWxHzv?@kA6)wTtI*KRE*1dqojXil^Si^DpGD!ME+>Nr>~FbC~KBPuaAXKNlj;1q(qt z@~?TE_d-+l84ZeW7rHA@E}o}1klzCDy7-ce^F%#Qi1X?KrRWV^E}y5+$+0+Z6!KUQ z0V0X^;eq7hyckbHocB^dPUw{@z9_nNJMjSWPr=V!d~Ika663s=MMDu)JO^DoDW|ah z8H9lLs|`GHao(${V^FJj%7tE(igH?od^uR>;%P&Blo;pj5w)UT@$7c-e2n}FIM6$~*3qDtz z_r9tf>|azowdmCCMLqKG!T-5<+VC8^)$IUHkZ2jPnjE#%jf9oEh`4AM!vj7_`H`mgBt7Bw?-M zt3uH;xzQjc8>< zUimut98{oJ^KL}G8EgZZ_YP!{+7{BZ?=2PVMJ>Tjx=%R6M)Tsr`8!`Atyo;z_dJI6Uq+ z@2G0NsufS@>=@5rGtRD9*=*5z~=@+wf(KEAj(ZomL-MXFFf_w|O&BfP-b|Nv( z+m=F{*Qj{vT|8eR9|lL-#}gOl-7ZK-;VWhRD?2Y%FD^iy1Lgyf+StA(#(8&$S`kq^ zH7=glkoSVO+Q-vEoVPtik26;&zR>xxavF?043q)wR~yPHF3#Jb@~>L)RH3s9rJ|ni zK>i81*Ugh$oG0pEe4KZ8iZh>AuXq~Jxmod~%p&dwA)x(9GR|w_NsRM$N;)HSm8=)# z=+=By$m_sW{}W$aoL7@_qGP&Iq4?_19pzUd9}gk_6a34?mt>sh@~>H(cc0*_ReYrv z#QKY;BcBP*0V0WdpJcyV@VVl=2UP9gd^N?h9i6(p*p2)v@S=;S4fW6+=RKr}LQz>> z#_ZU097gT|`T*@u8~PRQIB%D3*-I7AA{Woi$kpKX_VF}}^B#t*T=CSqc)mjZH~6OA zJWdg*J5QxYm5QhA!dSk|LcS2p1MSE+{Bg&5k2*xvil+vhVU&vcU5ETz@S2OK4fV|( z=hfL$qoafZ*=5gMWP3>%h;;VA;-HZGH*wsG17UR69HRIK? zo*#7aWmmBFA9Mii@UP`KZ?_~2E54cN*8RY%kT-(sTzqYKu3Cump3~kL5ye-JZrxt| z8~Lc9xCji^w3kp;2*n}@s*EC%h# zzqo+!UC9(xJiA;xZz8`9e&0@>gn;jT!BnGoLJMR5j6@y{#)0&n&lg>V)PVq(2 zU4e4(etQ7@K{uTk+FL}#Vq$-ap8A9MgBiRbo#60m-6Wr@ndsK-;s)d>*yQ4COFNMm@HNm-R4AT07tbfie*>SklP50V`$YB-sufT1 z#j$#EDsnlP0d)SgrJYC&`1VsPY86kli)T0TufU7#93TpHskM(z&=0qswcai6T;%>%!UK{dcuuJ|fl zd^?bT0`6@mUyFg?CdpW-_!?Y%smmDq2ic%K{v~^>ybfID;%m$E z)k5I6S?6c1;@g96-ERCH`3vwB(DB#5kwr>uKU#?U&Y8P(^}!d2m>JD!gYsrQchM~PIdSiUXq_W-oA9Ak#Q% zo@@*m==EB*^Iy>UV}4XBzQPrpkH>exHvstrFac=)eu^y8fEAK&z-sxqa_zGDCB^+t zUA<~yRo{~7%jaJLWkHSkmU)k9)|mh0Bh~ocJj4x|Mcx4+E8QyONZO)QtVrt`@CAIH zRBxzbf4j5Y$ud()EnoHtR=%BTPYxEHImQ}hcgpVU&$6<;skW68v^&{>pk?18~lyc%PDWLo{qp9#A~s<>I^=Mn7J{$;G>%uCQ4X#Y+^7U|gj zoxN>&3lob1kVC(*ZasKjlE3f_j=V|R{4JVviS@9mYlR)WO~II9-7m^ zX&`e>su8ueSjN;MtGgBQWmvtfv_Qx%v4WX)E;;83iR>Eg%`iJyBh9rA2|uE@NV|$x z#p?TL`)q z_h&vkd;9r(W_D(FcG?P8ztXhp@)bwrhg?)JJu-6VR|&)Rk}t^~LiUn7OmE^IgJwU4`I~nNTNB^OI>Pv+~)J+grzQLN2eCccsrFb3hQBY77fv^^jx*8 z-i_pvGl>uTKCChA-VeL%df^xFY(B=m0o(2@@WNGFb{m#&rKf54*dl3nHTgr{<79D< zLyLvYUsL6I*qlsbXf(30us4A^X%clhTm*JIdaEg%6CUGg$6`{FU~5mB30u$5lKD_a zHWXiL+PNHd*mm9w{yyL#z_#;8@WLIw!c5ovE1OB*nMGBTO3N3DG~P}&()$S6PL`7U zhzpiJucB)4YaOXa^TN^uI-17ORLb1mxDFmIojKx}*FjaUMiWx0i+WWT3MVY*i6Vsq zv;)162FOHmf+L1z;5oF`v^#r2IKSqBKNpw|*mhTemv&qA!-3Lf?5-#g-w{a4o;jRk zcOEX%^&X-;K>gI~N})Qe>8+(EzzRQ|N~4GzfUUmH)L#erc6oUR{Ext|fUUpJLQ{YG zWv1T8s+-qur`vvV3)x4=e)5#*Eus5l=3L5@*J&RI!>#Q~y_%D%NW}h{Q%|B9G#ROL zg36sk9gKOS8AA=k&J=!Pw;00-!~19>$PjAKWHr|@RyF8kbv?lc?%|9Ztov`-DeBvs zz;6TY1MGNwVV$?ruhc64GM`qUbd4-6Dkz&@A=0sy?4`1{owiBd`ZrYN2=#jdG>uT) z{BFpsagO#;u?DAlLc4auP#y7hUP@zPo$<)F%*~u!<>I#AMQH);Ly$4+Z#3-;EHcwm z*m(l@QNTFBwlmK<|Fw0WZC~11QdUxx(HADh`8ucRxXr_qN7PiLi%aF$T85&H9JtBU zbAu&E=(!#I-N1Ih*7Kxw-j;uPdBlB{dgKC}{87_%<#IYrnVL$w;9=upP;?R$)mVCz z^TW@9B=DVpZh)<)KX~D~Sn_RsR{fB7ruC%DvmSME*#nV@xpzq<={ zyE>T$B*-UD7QM=R;?!GqC>Mn7NCfW(x&gKwL%|F8ck#EM^w|>-{ort6!e*k}O8jm^ z>!NYP72Of_NvxN4Mz-or7fGQYwHwUzSPngQdenm74m=FlcI*K!+~1`~I5}#`6=s_w zPn3dX^bk?rA^zAdl)Iv7EOAC@ZjbKOT?u)jTF#<3$%LuhXxfu}p{Y;YpU&XB0X+fR zo($`}ogZw!F`pxsk5!ffwSbaJdrI?_dQ1Ky>v|!7Dfkt@D!`V1yLH}{Yx{Ews%B+0 zmZNP%SxG@g#i0-xgliu7167w!P#YmuHxe3S>aD%mj90xSSLi(i-f*2RZ=~9iTp%JJ^2)# zOIb@_Qr2Q58jW(!G-_jj7y~?hPccL>|>Kio1I_T_k}r6`5r$ts`_K$<@-- zcxCS`rhUFkG$kG83i|@!#{s7TwteS=7cTjH(=OZ2%JWV8&~&oQt9X#&6{k1Q7l;PB z;dN&%{Z3VC$Ot?^y?B;()rM1t!!;>gXJx?nj zw-d)GayA(tQwh)eJ4|~Q!5%!UWxB2fe?RaDVA~tD#I$$s?WUbImT#wParwO2Bg$rs zUQ|?gQrXB^C8aZ9dZ#*VbH}GOQl~8=(wi!&|7p#ID7@!W7WH$vsoRmP_j6^_2B3a6LqH}M4d6td(`BcG<~(EZ&tm*DB6WMKan8=qg)=tlW33_I!M(uMs(Um*SBi= zHZ7p_j1sNm5M}KU!VDpSv(7l~*?64FItu<{wJ&9URx0>s)h;St{-~-Apv=*OCQ|J- zTl?iIyNZZEty23?c9Ue+sl7Gl3N^W%UahegNG@g1%kbZ5AL{yoCLg9Ot`CL$?{I}C zE`A$1%<}?Gev`7@@~^d2*PQMYT)=*p0XyhW%D$KE^K=Mh4^!h=%HER!o2lw{xYtj{zkMTn))^|PIaVH&N%HE_X*LKI$Wy=Sx@-;#BnJh=cqeWx|r3Fb}=b; zP?{o&M8zX!d03A8Zr3w6gMSjJ1MKqfDR|+kFEGo)DHk1Genoi@g(0`3qDWMRwd7Xw z>HnJPwUZ6vXwei{M|Y^o6Ua(r~ik?k0SGR)O@0ytgCEJfCbS#&a4N3W$Vtyc^v>NkSCb>UvPTc;ek; zkff>9=Sc746V=Z-vKfqal_ytAi!NYpZ6DdurJX~svnJlyY{3_b(s57_aU z2wu2Xt$v>G8~Yo~`d!9nQc=~+dFAsfM0C<>)Su~UmDH#MB|T%cDx$CrOqOk={GOe*o+QZ2Qm z&2(+W8>FIkYUX!k&(wi;mTVxL^{B`tAyz9Z%1g|qOJ!ZILCe2RK zyD;u^4yAz@9I3h&N5W<_rq@$Cg}iAR4Lj@VOuHw;u58Qh`QWbvY5?2r$G{7>-+CTR zw%$+e`h8MqNnufL)x0tD%IBE#V?^Sj>*O&iyG}+)+J6u7^9}S(RoQ}f`w@7nFU7N5 zB}{XWIJbumCY%jZlL;d(2gAEOOdd|ppidHQ0_iN9hPBU{_Ug;R?eA3ZU4V4JwzoHU z;j+ujbhg`tw!I@u%PWg=%0v-_opBZY%XJtwL3x%;5RGeV^aJmamcB)hCp3%ux)S^@ z;8noZcl{NnzKd=!^=(*xbUCuiyIFt^>9V-IN~Bk7diR^&d>Pj37@E8XPsJPP2hnIk z_oK<08x?$v!%dw*y_a}M;+f_+2bfHqvB`u6_0GxBYEX|hPSsD#a6Lir$m8vt=nZi% zCHgWl5OpRxftc=g#v9zd9+f-kMu$=NCcRV$9jX}puS3O?ur;pbC`WUsdK8B_C7NJQ9jnfm=1cdbJozR=( z7sLCpL0n^^OK~UBPR2X?YT|f@MAZ`SN7PeIy$jT3gj_4yzk6Rc@AmGzu&7dI%v!QScJ1Ck?;^^6)lc(ihGHW zn(2Px`Bg=-ZU|QlB009BCskTC?>=-_ZJ?i1CEt(y=tdiQC^~#cs(1zAW#XwYjb_s- z*>)Cs>RvbP(pQF`zn#GcfDmBYH4?mVS6Tf|c0ZI|{)JsfRafRs$`?1OGj7rbdI#QB ziJ$gHgRPI6Dl7@oQKBnRx{5uf9W~Hnr_asc?*#4!Y&#wVFI;{L`7)=XNHpT(YRJsh zNQs;2Qlb>6(y6#t%E@#v3V^BS0OZ(u_?75G1QGySPY>|Ib!Z_Uo>@>*C0_8LXpyOC z9Z`;;GfT&N3lq&s>d-ofF7;EyFpg4d>8*g=bR5h45B^G^2C(&R1}|Koh4|U+n`$yu zB<*-4Z7qF;C?6ncqv&{a@5P~;%Sq!!_uVAAND2d~c*Bf$J>&;)Ec7>kcVC6|zksd3 zD|q47wh(WjU-Yb@07?T+lLq{YD8DrtkQ!;g5+N8a_f1oO1>`5=Sm<90{sv$pVC#Pv zyl^d*LyXIom1o$av#?@=?2?ZYiQz)e*RAwJB8FXPJG`zj{ahB$R5y(RJV=nU>7|xE zfw!!D0DZb;PxRFo69*Cj;pDhl3+XVaWM)}GX@=?HujuOnwgINgw&dqSmL1=P;8y~x z0Xx2Tf)}o(_}Y5xaY@AZrlv9efGGE(vpl)E7*DZc?0eg~|IlaW`y=2Tt1un{*!IMO z7w(i6;+C1;aTVFZ&g}{Y?t#2v# z#Gj#B9Rml?mkke3aCB7f}%|1fA^0nRs{q@syTJ>0l{HRsOgq-9Z_vwAXZG^U6`eer z>04BJ4>x}Sh9nZTPHI2KT#Y87i<5~e=rW=$B9o>3iuX)=4nSWrLPR?88svGPJz(22 z2)uADg(wAzbTOLKl9%3jTnC!sJWJ|canQ*)u|uPCF%;Eq!9zG+7_ z^yroytH7@VZUSsOHiH+grFQ4&MJ3{HAwLd9e%wsYRO(qO?O~26j0m?o_gebuA+NFi z1MgjfwcvoQuRnO<_O_7!iwn!D#3(vmFfWm>lyk)^;Pk$VxMWxW6-$BPZ?|9ZJ|pT8RImHZ>UB9hQR`o+Dqko0wV|l?$DqqXRQv5B ztF;(cEc3Jz)&5{wh-YxIid0n;-)E*>`OqskVOJUWOMuG&+pgQd3-?$H_01gXF6|}v znv*5w?va`18LB+n-cM&7uiBqW_X;)AReWyRQxAQ1y?+F}XC2x+fNf6zyl^{?nO|bQ ze^fN~uT{zFuh=Z+hl%nY%*krGzRA(@36j3z3)7B8(Bp$1kuFz&Uk9uQY&#wYFWin6 z%9F4|wnJ;l{76IoBFgtLWKhe7n#H>+_B@wW`0WVX|`~&?T2hpi?pm5+^G2$qPPHz5LpA6fp1N{ zk3p^--#5X31bhnEdcOoOT+8uo)Z5s!K03zkqhefd=?&Z%);kV-4loI@^_~H~IlU3{ zOwaDyzklRJ!x@-pxRx$fw8dg-f;CW7@tqmZTFA5G`3U%Dfn9*D?-lUEwLGqQl(wXb zW%fkFwe(TkRzR7JKAOPyrat4Qu)gl#Gk|`8tuF*#xTfhE8NdGhBBLkfQLd#;=TUCA z^i@Ni9lz_q-vZnL*!s4C7p~>_MQV$fN4XYr>mue+R{UVbZ@($8T9o%6z}Ex6SvrKy zENdLsE*JAF#oLGZW*3V;R9kY=*N59DgTN03vH{_Q9N(^^-zz4W>>8*v1TpSDg9{~R_@OXsYK=XQ$tLSVfo~@i^ zE4KaPE6)GXOt<6>;rR9jp9%B_gp&p~(VJJWFdXGGp!p1C75YWQulX3;@s+|*uUUF) zpu>*u?clcncSq?Gp2TSCz~u$|x&ZR5ht;#>iRo%VgtbJ0=d^C;ALGo8Cjm@jfxny>5D|OmDor z`X2KjPafn-I#SXV=2X8O=J{t;88}+fQc3eAy+G3S=AVye!!xEJF?A3|-)efYzw=)D zcz4YD=!{;bZmWok#yZTOcPmLeNKVK(aVv?xo8;U>=)DB3tapNaYlaXPt7&FT$Q9^m#MvaS`^E z2-`{MQ)bwMA`HXIYR;pCJ|@D>cG1i!Y-*NcL=i1^vfebOfKI2=qR(P3Rz&mND({U{ zy@IfnWW<#O6U|`e3N(Y1=O~@84IvlMNW90?hlqBNkY5O?&??El3E4um%T)E)zkWs3 zONq8#)(rdUNutV89z*%dhA-;D-QeE`J_hXaIs6v0e9p4Q*9>cXO_om#z800uIH}C) z=UJ`Eex47|&*MT*+O-bl0hX!7(A1uK5A^M%>uK#N_p&Gl=I_MNPKkPwN>mq)-A>$r z6kX>Y>LIAs2*uQCm#$+JNJq8069qtT*NgVXJ1*yO!&N;)@4cPQZ@WZ{US{Z=qS=Y_Z0}WxOybhWSSm3d-dC?|SkJ z{YlIR`p|r%N&E>n<6e3NQ`R~BS}aXLbV5WWF1I&|V~S!AhXWJG`qKLe<|8mNoa)5G z26I&up=dds>}~28fT1jmCyPh6bTztZ_qbcb?_XzupAHlQw%ujmg{y1QuPyC9O;noZ zC?{%H^yQp`zMOmMLgi&gDxE~o(RZpnf6j1P_aE}IAWx*z%iuo%_5rrOKfw#pELPjO)=24pynLaEQ zbaY3$pcMZx^ox7#CazsXTTUE~_B4U0FA?JjqMj{;sJgm@c<+K(PduvTf%&@N^#M{u zw*ENLZzT}YiIFapT}NCSNMF2preMgyp=0V!iuWGkx|fW>B={K3$ks#2TS=2kmk|QdkpWYY4)IqfmiyrkZVe2RxIZ)MK!%P$TRm`lU1Ch_9-v2#wny?I?%6VKPg^%dcX zbRs(~7B7`4blmC9+{#JGRjiT^;X}KlwChAap)t8^+o1MeNP5mZ=+Dk+M#Pll3)uNQ z#0L!ckTe&$DeyUgtk4slwS`5$u$(KmS&1~kcBa)}H0)8r=kV!l_ z%_ZG)BI$V6xy@YbVHj|I#<1$_*`b)^O$A}(_M4jEtl_F8wWqXG6 zQJ7+NIZ3C^5FeU#B}&6FB7AH#N|Pt+;%3hc@i<-Hj?_7lkI%ZX`O8r*k%AkWKZztP z^=KZq^HGAtcG2?No6FInG7$6G_$`FrO1f9*<$5#!i)GqO)Fj&ozn$k+7Qyzmf2pNcTnhLLJd-Dh@M0 zv!K4Y6z$=pS+_KQs&f`%*4#C?zqg87l`~vvar3)Yi;5z49X0luRcIf!pQNv${%fed zhW1ipwPe&1Yv>6$zK(X%JlD{;`|#LO&YqFl_@fc$A7h=JUPb4)b9wgE`Y4wRw%659Y15?g0?HJvw zU9}hwCP{aTjh;Z67qe3JQ=)usJt_s2Ks2T=8(J(T>7Ae^7#P%wNmR#+IRy6-4KD{5 zlVV2@miJfBlh$DTF<{!iANHjqOtcfe1AhSc3$X2X-DTR}bi7@*6U1O3Y{!^up%`EG zVXS+*n8$FA=;>rMRr8wzS_K%r=xgfBg*@HTHx+ylPy*Qc=7ATk>3EjZS12Y?70(cD zpltte9m<9(rK#w1mg{4>iP5YYOV4AFW4C`^0RI*6Jz(pJyW7;0YmILn)lRGsH%7*+ zhHRzCBsHX;q-GyxqU5>g!rV@uRFx_}MmxFI%h6rT-f(w{#sGgur<2hNElE#HN^(-2 ziG(S160E!B9?e)tS2>!8CX@7hVs@GX)uKD5-OGLK`Z{y z8^E!Me;N2ofXe{euFt>=*K~YD+68+?70BW5r0hK^7S@QxHB*L1!KRy-@}kSHwa5H3 zFO7D`!zL^%b;XF~a_&?dsnn&#Iy|n^a#*hJaA{g%M@({KXd-Etg3W2X)9q1{sgpSyZ>~plMxmXfEU3PDWe~sCYY<*5Q5*G~*MvH@x0%4ETw_8Gs$1^S}$&bbY^! zPkK)*6Dp`GDKG1hfwhVvp9eBBNgyjTN_j}k)Ttp@d+2aGqSX$ZVJcptm_jy%_QpI( zOaFGrxAW6W;P(P=1GfGT!3%dx|D?FZk@_2RRa{_TrVjOam_wOLGsN3QH=)sV*;!`1 z)9(wvZ;k+e25>fD>)i=nxL2FZk2)sarRC+b&1HJo_fy=?8Uiv7I1TspA-aUgsXWPA zOl*2=rxaJTn&-w#X9_0Bt7%wcgC?iw#?rLzQ9N2zRUd25dvq~FvHC~V$# zG>*q0pHj`y-Qn_cR|m9b(7vY8VwPY}%xs{ksM65YV#agtU^AY^_VE4f2Yw82GGNDZ zE_mS%TjMhJJg^qxIi_S@Wz|{bWpYk-U?;)N_FC}Cn~uTHdWwAP8i+U~5T~K1Q6Ixv zCZ{*f866#s3E6mc7BziOicXAPrnTq~9b(%180;|+D9YD+;QtNmvuqUobbp%zvK=}{RFeP8g%{{@2 zH}u%gwU@xZ4ZIK7c6<$9xMrVg)5Rph@UTY-hFgYVEzToienOR)Hi-8D*KjsmB>Pl~ z=?;qG8)n7-fpC2`68vglEnw??*NN7b2l5y>0nIPXk(W^%G)iaxyv zgKwpVUR0?%)G{LK@V0LNDKz*1O{UW-fi+08)%Tkmj-hGjaY{?YIuNhwVKly* z(=kFH{2)Ou*+Sj>1EKXK5%XHysO}k!)&ib(iCG+rjnT)cI}I1}%7PN5yBOtBz0j!a z%m?;i8LW>wfF=l@_(@|EH}If-L8XE2eZkQdX?AjaVL8X zT_2(jrE}CWH=j6LFZHH~P`$qzq@o{@XX|XXKEoS>(5`p@7160qHt}42suxR=jIL@o zdM2IhWRuU-CwrO4VWg=(ihf!r8$VIcOH5JQ(Ua*ZPL_MJeoDtUH6F{|#yFz}_Zm!c zV)WQ#^us!xgUMvvsa|4?zM487aK(Nq_u(KpNAvCF?n*SK!mNRReCt<{xy-cK^iNAAPn zc1R)kYG5f~myg@Q3wPLBPjOWJX_pVH&78C!3k&v%#pqon{nI>XkFEe@csy`!#ysn6 zhtn|-b81Ja-S|X}MGbN=wU{J2FuPn#{GzK=+7bHppKjV$5B+vKi9UjPEWiZ7w(sso zP5U&f+}^z{qCIchcUDP-D86-$2cw>LkUGbwRC>Rg-XBaJT|uPxwR!ZVc@&ai4d#LG zX@`i&{!Yrb>U7*VyaFU*#WMOMsvHLO(Jt8KBf;U~(ORn3n+}PgMzSj<;6i`B$B~S8 zWEYw$I_)u0%>$jJo(6ilI=RQ0>RCOesAuVz{S=^H5=DKZ-J_C6rrdzN5MCktRWef2 zF%x^_>DLo>N(@>amlD2&jFfcDnf#IoG^9J|qz4Iqh-6DThR3cU^cun)4z=&Kgsvq~ zSYy#c4opPR%n|%Vth*w89O)U1PSw zPmuFFem4&~izfMFD8EXv-yPH(-e{WYO`$GNkh(||7PLlF$^tQ%i|N4v4lLKiIg}DA z)_8}oOpT7kjA7WDTVmR)JRW|I#)0n%WCFImv%m{iy2>mEuUdZN^UQA1qClV{d6_CZ zlJ}ea$>W~J#L>s-2TZw%WNHa`kM&?7yg~EO(axe13`evF{cc!}j^P6h^F#dDVIvWp zQ`F^jyhqgDV$X|fv5byjI|q6S>!O#@(b5_`*Gon!_3dcOkxQ{XUQ+dtw7(|&v2 zitRV1w`hmd5c9?Fb4|YaJ&1k-k;s#rA5q6}I-Fik! zo;@0GL7a@;=^g$T9e%<&6*1)r6|`@{32cX&@E1mvViE{DAt9R`(i3**>_&IO$0}Qm zCpKoW)S_)wQ*Op%IqbCC^*4jR9oP!k@wgkjaL2Uk&#x%T$iRZ@Ss5})7np5LbED>a ztySWI#$;2B3RB+!$g}mipTxI-fDVAI&j(((7UvyAYD>yL4O{H=ohEwg@5HPFKtVgf zhwJMseX}6X)^{2BmB1>%*0%<{aQ~P1oi?waOuVSZu|`l6>jck5rc@MPr5TTE z$g|_I4*V^^9e}NG8+hSPX|BD1eYQjo$x#ZYLt&0o_!d#l0^QhL6koi8T#z zUbq(H|M%L_Eqkk63gZ=>v+-E`b1(f0NdaI=+eK15zLRRD2lR=?x_D0h3I4Fq|BPva zuxWeaysxst%z~=&IVFV|=Dw3f*k)nU!h#A+7m%OVX37rAlu^u-zu%Id1zEQIv%sGV z6hz3c`&;>^BWpH{=L= zXMvv$lt;+l-;DfI&`r>&zzqd%I7zDLX(nrq3`p9{Q1Hy@P+1rBL+;ZH;A|clcxnA^EiwSSmBtBf1Z^@qp zS$4Wy3jT6nd4znu8Tpf{%I6g|CX5I2JxaYydDWaG2>BJ3{N0dcr^_ecKL@^!ke_@! z`EsM3XvmMo9$m7#u~B}tB|rW7u>2Fjj|NTxgcIqLemwb+36E_t#5FaR+#1NR>y0ho z9|Rr)giP^Ve-6BGO`nINOREwcyeG~tE-spP)Dy8BPsASR-g*k_-j(TCC#=s@)5L4h z4BDLrq%^z_oNtyd{e^J6Qo;LxE`V^&^(QvfYwiV|2xW=N0*u#GSaN4Y$Xx<{HLw=2 z;wNDP!HJgQFfW}xw}a_s%d=e^@d5gHU_qinPV@j``>{#I!##0)@_% z7<@<1)ISdLMP3s6r-MHqxCF5EzYSivfVJ4ntbIpEyek)b(dgQAti<$S=K_Ygh0N87XEKHXQ_L(3P(3q- zry-?TTq^USbAe#5pG3FXDT$?HbJc`c#z-^@7tv}6Hb8VtBAv0TQ7`o*rJ~x5U;6Iw zdW}KgM+4&lJAP+?7jA>K4~PAJZ^myIv@DUBV_&Tfb$6hr61o3q zj)v{l#9XhyrKa9m$hFh;aq#~FJ^*aJ`b(zX-PSngc57dlrs*p0>uGXcTpjrtQ`kry z$&}PD>3L7fwB4gB8}J$~?sODUwXqoTGc?R^bTf3qWI6-RPR=|$iQG)ZuClBL^1(_% zFURmXZ7-vbE;rNe$*{}Lk7eL50WJe!9pX_j{1H^ug-7x1{*=y;YWyuwK ztH56dtOjhoo2>J;KHE3-+N*4GJ3?6@kc4tsM<-xY%@}k|xG_#W;WIMia}x6zN%)-L z!J38QDdJJH)QtCj$hV(|>=nEZ0B%4yQLo?7Ai;89x z&5$e48yCqWV)b*P@*=R^(lZV+?Qxl6@Fl>U2tBh}(39S?Xii1d`6H{aYw{>dCoJ

    {m%+aVyb+Jj^}!{r6>C}GfhOk zo&bI-Pzc!h`U>m3ou6&r)@SGJ{Ep~BT1G*pqZ{d2x>Z#k;gcJ*;rdAv`p~p3TFjkV z!WNBg)sjw4n7~d?(AfdZ4n;oyS=?-!%v8Gr#KV}$%gdN)-zql!+(tYy^0m^&Y!@tv51^}?!vpf{6YPjfx7qZX5f zJ*36-ffZEitSG*fX8P1aubn=J!K-_)7YtzA6%Agvruo~pOFly4Do!ugVM>MaBPzU8 z#FT+NIm&|i#?mtxa_sV10=^1Z1lW3(gBPx8ISuPM9rJ=^`N{5sxOc*Ipck=x=KvI9 z4{@q$Uahl7&Wsk#AVs;-y8n=C>-_}$_dq>h>&5DP`S+Ifo>IQB8NI8t=Ji%sddESo zt@j-8Rlxaxt@k$Y!nLG#Qi=Fz#+dTb87R<6*}KJk_W%h%e}E5nA^tB>35sSszf!%b?DlEKTIC=eo(PO)e z<70c!E@Sv;1Mg@IaM3QK_(%i80BDtAH-s)H@(~7BlwhN12aXU&0}BQ)qKi%KyA0ze z7-(oR07pal5JPPC2HNMgwhz)=S8W2CTl48T!u-pgn&HsNO-aMY9cFt7_F18|hiyBld} zMFKeL#=9DR)(JZ^cEV8?-r4BPx}eS31xKB@-{{J^F#tzCo@R7MdlSG>N1ke6F$4o} z)Pc7*da>RNz)?G%V#u*;F-^QnGEXuxS%3jJO5_PfU)GNSIEv?SMt>G$0FGjLj3KuE z2XJKYXk#GDVgQc3++z%4gBgG$H;*!gu%QgVk&8PGO#Eg5j&#nA;Vc`|AF^@e;LI4o zPGkU%G_D#W*(e6!2m>F+Xf}ocF3Oh;7=~$@zxL<9_3uIb|LMlAve-`AQ2aR%8!2le85#(P6jk#O z1$lkYxR71M0381u7po?iqzJn& z#J7ixCyBYD2^3-Xhxh{_VIDH*ux?INXU4GFzg#4DZ(BN z@y9~Ob7H0wc9Z}`*yADoM96r7uonsTMg~RLlOet%Wb7i?{Fq6Ku$>|PRLFRVh!v%h zBJAl9uL~Kkh}EY|QiMGd;?IVR*9d!^Fi8>iT!=p(GWHO*moP~Y_Ckoi7&6|F3%n#n z*sc)Y9Wve`>}|p%Mc7Lr{&L9p7h&%ZCMm*R3Gr7$#=8XjEi*|G_F9O)9x~o1>;u9i zMcAGY-y1UiP1uKoNs6#HLj28;@eyI@o0k+}Z-w~VA+h3OKfy{XP=x&}#NP=SpAhyb zVUi;3-4K5-WPC>0=Y&a$u=hj!gOKqBVP6s^DZ>68;va^Luf+0XCMm)`3h|Fa#y5n0 zOPHhx+ZW>dL&kRm8%Z-s5%x)le;P7=AnZrNBt_U~A^v&D_=&K3!X!o57a{&-$oLr> zJrgD=!oCXeuS3SKg#AXCqzL;a#J>$0{~_47nn{YV??U|hknsm$2MCiCVLycUk0Ikv z!VVH9DZ+jV@%oT)h_J&1E7L#`_H&5;5;FcG>g&6k&%#{BX#)g0kh5Ns6$)Li|X` zSV7rJ%v=-{VGSW(J;1n9Y^}{CMcAbS_>uv})s$gqK~jWWHh^C~z*tRL4P}zL5V9?A z*hv2u6Zw}D(O&y%BL8}#(b!V=e>0JPJ29fY_T5DO{ltj&+7A=?j}s%>Yd=lo^%Eo7 zYd=rqzf6p1ul+ia|28qAz4o7p{P&3w?X^E9@&gki+G~GK#Pc_S$86{PMhr_S(`szAP`Iy>>+&U!G?)w&eXQ^7zWU zi1yl*dHkxpi1ymmd3;q~M0;&@9oAV;t zYq#g|JMtphYj@`HEqRUYH5|P@cUX-7$+>*TT;z_ObNN$qBXY;nb9vp|h}`kaT>k9b zh}`kqT>kvrh}`kQT>j$Rh}^MjF5f*jB6qwrm%ltWB6qwpm%lo0QdEK) zE4&h7*qXG2k!)Z4gf*1?+CO0|`+NajcTd6OV|r&2nXNr|hC17^Ap!GhA7mVZUU0Vo zd!v|A1B?a~V26t-3xNT^FHWXx2hIc1fiHBX+zLzu(AT8A#hJ1i7zf}DRjG3@31> zKsxYQgQnC1(|||1_lB@{e^jAKt9kB`0%i%+z6Zr!~=T|p^q6j72v=V2hlG9 z6apQA_x{A*tH4;`@Bw^-0hkAbfIt4g9`rypFdEQ-7k|e*4qzO>fmi;6V_+QM244OR z`hYyZ0ABl5Q?3Rs0)_y;{em$uU=uJIa05Gk)|B}`U*M~HOz8zi0YCkO?|%cuKv&@N zAF(eWPyqOV4}QSjslZgA6Y$aZnz8{n3pfc-fv3L1_f~)rfC@bOt)^TG30R&lwm7{P7vS zzX)su&H>s3?|zE(11fO=i!x`G&ne10ucU0z{LGA*3+5oW z66l*TFtc)AVW!ppl37(Sy%YnzGtoWRS`np1RT!a{B8C>suPUEeR8}+(L#i`|{r57h zZrn_}JGV7<$svwRu_Vv3>c5ScDPX!B`EFIph>sRolU_0lD(6fqm@{KQFauKz+nhdP zmSm=wlUY($Ts{pqaZ#%bJX(xMs#xSnQf*8KbDNJ=Szv8zCGRqZwdOAh z-|PQ2*F}i>N3x17?*g%vSmm@x>snK)8pT=6KPJ$Y*Xqn{TV@OTr($}Pyf)dOHfXX?o z7csxAvY@ziHJ>!0qI_ZBK&#Zt2h>7rfh|8X(|Qr}7S0hLCT@d(`DLxH{beM?r#f4& zz8s(TZT;1)kGu6X>7yG5|82>(h0G`_swkQ}AG_y^dcDm}3|s61@!9rPC5|mY?qS)Q zXN@gDOmh+wV_IcJNqMH&)V8(PmXx>Z$|CWd`^rqyYn24MWj?>EI4e_-R!PB3bF`rs zh*s$IwhAa|lYqJN%d1*<7wkBQPsOy!gyOaez|1B2#mqKYF{7xkWR6uz|Ld}D){~iX zGBiGv(d^sBKPFU8*Eb)ot*qPSOrOe3+(GeGwrPlZD{JW{g3LFm*3>DMDYi+ix|0>M z<$(=&B!g#g;jDi^PUZP?(4v~%`UcU_W{IPJQkINio1ZG^d=PEN%+iY1+h)sK4L6!MF*;)w| z_;OmSuSF}NZQ6@bCA8`83jwV)zilseR$-Xd=Hk?9^F@QHO^GMlTCG-JwxG3_&S+(p zE1px8*_LZ7@Jy|0mC-^oJ`+&Z>WkaZQ-*amveywk2}gAup;xrE?Us2}fqzQWoT52% z$`=&1zC*!|9t0JZwxMIfmNNsr&uzEnpY43MZIj;unucQ6s(fTiSumrr{HWX4npT}H ztZH6CVbS!0!r5&yNlIy(gw}Rt+Yu4PV^P+CHW`5iC5Cm{CZcM7D?7&;BO+VwZ8V~- zH?&fG^|x&{l+2tvzo@kxA$FZtGP9xp6Y*RBm}^W``B9gDOipFVOyv1F6>Uu-ypgu$ zb@Axf_4}uy*Y_U~R5Yh`T@Q^>Dk?21Y~9n^7Ge4Q+H{jFA$|V|A#Ih>wi4OuroNq? zt#3ayN)Uy)O{q|BHGe=(BBYziR$DPc=()pFh?3ptQi-3~MIpuhI;n?z}ZPpUpqrD8Vy@HZaR*ubp z#ID#%hDoPaR$8GJCkJCQrq3@aol!DF$tWr%Af_2X{C}SU1gpv#;KaAC!~(Mmf7fCZ;pcW(+(G!+TNZ8+zOtp4^sD*(@_)+hy`A%;oPx|sJUHGGtFQU<)XtpoH;I^-- zH@9@lmWRHPlccZ6U2eddLS!0<>uazllyGu0CivEArTXdGr>i&BJYBt7p2o&YL>V)N zG@e)5pWL1(x$Q3km2MVMvd#;iuWSD+&Kz#vV4rW-z8z6Iwo3z*E`Bl6YkTs4lFj2< z?9{mzu=Oh%QF4IB;{Z`If)U4zDBXd^^Sv{AWB1nHQ$d9bAoa!r_W2Qkb&#+zunAPS zYJ(`x0QPxo`iQiPINsW4D^W7HW`fH9!?q0(_T|P9WdUGcpRJ#*6RbL%3M&8aB+4eh zKA(@+mIC&%0^2%A*jMes{{j1aF3w#LaXugC7Dt>{+(a1%*#FOm-o=1@T!(Z%0NBTY zt&6B#_u~`9{kMqt zSGRu}ce<{_E}8prL6RHg#G4c^OAD?~nUjLA&!$v?3Rk`D*=>u!h7D;);n4h`vW66mQNa_qa+_=o-5e#afD zyXyyNuD|QgWArP=CZyv2tw$g^f7@c~?loSnC>)!kD$#sA=&3x%tn(sH=O>jSN0cR1 zfX+**v~oxI4}m^2`w*qPPX*}WK8rz*b^&D&Qh0qp%_9uMTfXu& zQJx3H`CahevG~UGs82^(^?WY;DHd;^uhxljGa##d?4?VeST^3GDuAJC*$dp;m-hFAJ`BGU$5ZH zd`K0?N1)O8JUvl9)jvfZ2)k(IuZC#o5Y7N^SiJd<<=P6|v8UR7Bnj(8cXmfY!9T5wy15 zJ)nx>R6MZPhaXXv;%BF2y49}sDYZ&9TFZ*B+DUvaAKF;HX+G?@8Bk;@;VjM(AN8p| z&BuHWANT1#C;ln^rv&a&l6`a1+WR`-$~4~~Ups|nXo!U~!;M&U$ncr5fF;elWA&Ss z9c@MP*UHdu(5?hTTyx=1vG}R*r&;`Qu133vC@FxrJ{5j1ix0pbZt=&vzArXDgH~)- zhUXu<0(2!?33@eK4H|bS>5!0o9Eb9Ds#WIl;FnwcV)z1obG4F9h_VV0|Eq;BAg_6o zD5HVDyM90N`Y%?U_Z$5GSo|UQ4HkbK>lFp%W&lc!(31`Sbc@f2KhxrmcYOs~JgWh5 z{Wb9KwD_&?AF=r3U0>@&{RD{Xcfj9c@o&O!u=wL$uau)K0pj{x_?KAxYWSNh{fE#8 z3kX@~!WTHcc15YiJIe#sdrKYsUo8G0{056Zp8jgI7uHy9h8y8;u=uU;@3Z*hU5^iD zC|7=9+PNP7CX2rX{(TmIyzBSl9tp^JRuJX;D=dCF;g~hjgHOkDAljZ5`6{j5UZ!MmyyV$(G?i|x^@sBN> zsH--wtF39B{_IQJc)b<>*6O$8Uwv*X<8P(k{x)7;JGE{4^GjNn{&xKHuW6h9y7IPN z?_1is>x(gDTk4au6bAb+Fzyp0<6=U)Z+a0{T@*EjVPmT1+za>=r;3-N_`AHf#iK!9|aaMhy~O z3OYCXde9rAcYr<>{VM3|(QkvkAN>Jn^X?>a5}x>#j!Ha-7e+6{|IUv-AN01Q&1k)x z=PUOSrAOzUom;xz5#X@g9}!z6`0%Ot_k@3K0{wH&L9}HLz7N{G%l3{!4^f@>dC-Sb z9z~n)CYqL(Yzp4OndIVx3`Z%57 z-+B4S!_U z7W8YEYj}UsGSOPC?ywwMdZqSCCCZ}IMWFlpG@!>P`;JY>{~1Rz?Y_APBWjHo47>pv zyFgzvUIX2090WaVG=M67y5jooeY%78fom=WypU%0^HKO|7GDj&!Q$)D57-bL?hA}i z50)zL+(FH>y^|`zM@>E(e(GZ;?}LBK>(+mczF5hgjralb{=pw<@z<7z+kZ#3F`8U2 z4#gKNhX7{*i-7Bahk>_&Ujbxo`7$*D{+uRBu!ikI%I{_0g4VO&KvNG5z&k_Mp`oC| z4h;j%J~RS!LvyJ*_=ptWgtfw0z_B^{EIBU8vb&NuYrG~#czPW z$>ODy{b+Xs;(8r^vck7B8+p7d;*VLg$O< z+u3dP@0^JL*m*fJ|Bm_wxdIUX7p@O}M7ak)`_0vn?7%yV;fwJRB`G5b{kDe!hXUvY zJyMAB?`iNfppI@R0u}Dq{)JlfD4;G$6g@|Z>`}1a=rbX48hQ;7ZuKre0BWD^fRGm1 zR~GqRBKnA)2Bb#V?vJoP9oO39Qjz^@k?%5fxOSg)eJ5NyGU9qM22qRr^x0jCatr+1 zth`nE2F7~;p;L@?_yAGP{qPrC^%4%1{Z_lHZdL2rZ+*~Ta4vg_De)(I9m$5zrN{UZ zd?MxBq5ouX#t@``c1DN5ha?cF4OA$7kMzS`n2dW7W!(#5Ma%Bk{&#!<0e6!h_1qtV zkpJ$vZ)>~HOLCyYgq$aPJuU@1$Da3;Hd- zryxIT%i+JCKfUCL*05gL-|z|Kf6?&eakM=14o1Czc2Io?e!{yZAA+A_@#XMWSo~J_ z&slu^k3{(ykoodh)6Ed{p)ji-MTajS{_lbxviO1Uvn+lnd;#&F;qV2HCx40OGSufw zJ?lVk^4t&lpyx@@ot~Ybb)FYNU-rBVy2tZ2=sTWwK;QH11O3wT6X-9V-#}Y*ZWX-% z%ha_L3cTKgTCT?9rRu2yPzLBKLXw7{0#I<=ONHYcd6?#7v#IH23_r11A47%3+Oi2 zcF+f04}w1IdK`3z>jltVu9rYxalHn**R>aPzw0y5FI_)_{^|M?^e7k8faXa?AQP$D zx9_UHINPsdKis>1mk7G`qOAzI`!?kG?eD$_`pUb9Kx-SGLTW$TunY9%hCQHfHoOb^ zLBofjk?t?FjRi#LevGsV2!1B&))K3Jy%7GA|Hs~Uz(-MS|KBayB)gkr2_=>6E&&3h zun8SP5)cFhB#87DP|6dP&;&#v^eP}$`eI2%r3(loAXNo|6j2lw6a>W36$m8%@0q!m zOa@ltYEY%XU5KjJbvq)YV&i({mjC*!`F zYMui=*E}D5fjJXA+q@Qhy?GP(7V}Q<-R8aEUzqoUA2lBXKWRP*?lS)fe$IRu{HmG! zU!@lfGvOPPmOSazxm*L-n9K3Nrd&=0w&QX#uosupfOoj8+`q=8GvWVbGK2e>Ea2r$ zHNb0`9N=-LI^gw8)N>hcY60HL)Ec~vsU3J{Qy1`_re5HEOwWQ3FpUB)wWPZ9i9K4o zr{ow`{3^Mh{hxamu;Ua_#}c%jf`)Gu8pGXRHt2(AWq(-WU&_U~CTF%Gesbjjtimnh(Cf z^cMI+(<1OCCi3?#Gc5;y-}C`^rYRfzW78(^ZKfUIyG?t+zcB3w&o||R%V+hR=?>%s zv|Wkl`*Z;kk-Q4NYa)`j0*Ofe1npZQlKbP?Kt%FOz+qgbwwh?8P4u1Qt6@`or+`oQ zodG_}cNX|-zORA5>H7}&Lf_@!D}3Jv|IqhC@C@G!@NC~4@Q-{qfq&+^6-k_ejTb|M?ziTXF|_|{~G!$_>IsT z;I~3=gXdMgiQ^YmE(Vul$?6?DZhm3A89C-DZV%f_)Le%pMT`Yox{$MbR9 zcw0j@*XA8QR%?Q1(8~T1F)~8Sc1QdiVP_X2E<>JD^WBi>XPy zx{h)VEvx7V0S}W}VhQ&Gi@sy^(H_&X)hpshgtnV^eiotqntSt=p~e zI#~~b|6n}@{;Tye_&sY8IPd4rsDyjMmSG25J_!xLba0dQS^+U;zH#T%E zxNL95I_lv%Ep;pdzw0Ohujs7k#D6K>oQ^k1)Tb&sN6kiCkV6xU%rifL|ze#QMteb*{S;5h=(`Rxqs!sS`O*<9WR%;oYm z;B_unKMKnLMB8=;_Tchd;5;tx0DjKp-+;e!xfX1>NDyt?8`y`-3xIEMnJ%=r?xK4E z(?&|md4AhkBIL4jnp`ufxu2v+d;48^#p#=v1Ov+#i^v7Y*iWWsB$x5|ms?A*ZI%y@ zoF~0=*i(Vz7*2Y{a-AH7X}dod{~8@+`;cqX!hy4Tjc)lY4)R>a+6^ur%$z(^AHHXn znMJ_2n84;~mg&5`>U(wey6&YnR=_Q{)l#pVtDL|8bpM(DbN!e3>&w?HA6vd|`R)~Z zR`5ntVP@!%s(qgCKDgiDPDhp=`RK^zBU_H_JYqOn@o43vjgKZCZF#iAQRjD_t}3o- zE`5QmAiSVPL7jqz1&s?@7d%@}acO@S|pVr%nxAEoOE^F9Yoa0Sw3)8W!Y#Zbo-na4Q878$Ld78%Eg1*x*~T%>+-j_rbehrah(VH`=~c z7vqg^v1&2+%Moux;299LAoeZ&8?kT2;@=-v6Shq2xc1;3;`)H6#mxj?9hVF4$gGzs z?t%w@hMm>McW%s*zmlqM?#L7fTzC3p~F+d%V7hT zpZy8<67jxiS@gK#efz*Kz!}u>HkAhuGoIqujQIgATrLl+!R1;&2bbf3b+}v)*oe#V zz!qF?1#HdbHo$gVP6iUuv6SsP@>M>|^#gz}a5)t?g3HR^&G#i(5&we2RGCl?WJ);=hk<%S5jh;ErQG27%fHr}>xG|o7&5FC1 zJOlk(`@=Wl-wr(4zcYAO|E}QO{d<9@_>;eQmOpul=lfHv<>f$#9& z1-{q+82E923(k>$`HJ9y<-3FTlKvxUE_*`uNUJ+vSig}z~s%|*imLqkez+cgg1D~Lq06qon2zc&w)4*rwW`WPq%>kdQ zTLJ#Q?lkxnT`_p|%C&Ik^s3w!e1OzO&6QfG%v#Zkt6;4RZnL%oZ*6S{o^0&`-p$$# zyoa?1crR-&@IKaY;Az%%;2W$v!FO8^gCDb=0RKU1xm>f}fc%@(eyMJ+j{C5GPJdhl z_lq)SbbzHKeoPt5NpZ=EAleVbhQyDX>jQ^zgxJDq_rwi?# z3m}rIud*A6|asU6~xxEd>9rkWJu8QtW+0PXi5vR~vaci9$AEnZd} z!;ry$v<)%)7c;;H^g@rK5gu1Fysf^>4-wbpm_I8Iqq!oh!~$3#3qoH_ z2n%JESr~fcY|PH8uy9tDRb$oBR;~eyw-$?JQRvrVX15=8^(sS5o{!TnT}fVZ^9<|6 zI=<)mu?j}Fd= z7OiNSx9=OYk!|cZoxxzydK$d&|8HS?8vou`Y_HnTVzSKv540!QYp`ba7I;s#vCp@+ zWUt%bguKYU7~E-3x9ix)_5*esJ81tJ@)7$D$T#i9RW!^NZV$&1!xzIcUJ||*^7rAV z!9T6Gy_%8Ts#aVL@6zgd5gjz!BX&lhUnSx!_?3uaa8`3tP58WOegpn}%|h^^n#Hxy z9*k@e2`_47Tkx8N{fZjto+}!Fwz;V|w749rTpU)6)?#sQw4lxuUqD;vV(}$t%C^kE zH+SUW&FP7O<@eqB?b!{9KaKfrPS-hkiF1w>HVV$$mH6(ZbKevxP%q}^0$%fZCP zp1wJrExt~i6|%q0=tV~oPnwtRx1TwdXbiB<+#K?4qH|Ki-+yU!BGGa&&ed_?4~hAP zF9%J1Rsb};(jfwbdFs}TxUtX_wCUOiAO4=-So=1 znD|{>r+IIV_$9HE^YnX55-uga?N$B7M2}w+U$~i=vvBXPiNl}ow|4i8g2YaSgR@;N zFZ1`-6}Rs%c{G^JC*V|)M3u9#)Z%3;a3Pi;U?(gUfln-``h-7UPZoW{xj#0fNTjc@ zn1L~y&%b8^(tgM{aD3*{<7B>9#fF44u+W$_I-VzRIu^pvJwrnYYkaa|ivc(Q3t`~2 zzJY`Ry+#}&he7j7YvvQu_aXeH!^SYeOFN&!jEjs7s=Z<>A-?7U!pFN7{DZIs7D7vN zFFPR}Uk7xz*qI$q*cg1!2E+#zv&T$$A*}{0{!>Q`N5Gk<))Re$p0~lD^X~5rd&SZQ zEuntp`@yOhSbh-rOO;-#gr16k`e^g%0(EHZc?Wufw+L#9woztq4!mC7LwcY+)H|dP zc$3h0yo1L}qp#y_P4RDSWqSfV1`B#QV&cKI4y^+%L22Z+Z@OPPJU{8z!GD*=dcQ1< z*glYX5Z1Xo?ssq2zAUt+rSWrDvae=q*e^N1NPg-0 zl5qkzArq0l!C>?#fk}8x{oNHWQ%rdSvt~2g7eqq#`YMNqAbxplZ zQ%tX$7Mqru_L=l%A9Fc#O>;~06Xq`FDdyMAubZ>X>&&~%`^=}zSIl}JAD?nQEq$Kw znc}m?XN%8KpKp97`_A-z*VpO$fp5C+O5e@CyL|Wfw)T71Z>!&azulH6{JZ#fgBNVI zf3E*_|8M-ul~1eW6Yyfd&;V;tpWxp^yIQ+jds=&2*IRd4zqj7B&a)MV?~AM*)hDWY zbVl?i(Vs@=M(>F}82wH3spv&9Nsf83*0|!hPcjZ<6=y}{)Xr&8*t9UQuz6w2!j44) zi$)gxT&y@-BjvcCr1XC-{ztK=|1U)Ky(ale|KOMZ(X;IjHoL!yo{|5~g`Vk;v|MZ_ zZ60No_axB5^<(K}gGJz~eNRi}4vrhUb-Q(0x_zjbkD518^AKuovu@U1LCy6nPj?J8ucGGX_`HwWM^U@FJs*2Nq`QGq zI%+skdl71_faYE70aYthHn9RD7zSMlG!Er=Jn}WO_=ZIHw8S^c($%uJ!CBkIo=k6p&x}w{4SdKT`rnTPj^^?#;A}3RhWEA*M0ISsk~|z; z(bw7sMEWtn30zi=(^igCtb~?}7%NR<0k?u^+dSaI#swzfy)R-O#z7trqWVjLBKHT4 zIVZmo>6PQ-m1F6ZW8IYF=2GBg8V{mvX>4bI-kwnA>S&C2dK3O$zlipf7z^DU?{^XN zuZ#swISl_bi1tb2-4B9DM%XnogCv>Cd{M?+oyG4EW9c{HyKLs)rw-aKB8S0n$V9ZC zJRlLtUjV=2ay_(T>hm_u1)vz;PyGT!RG<0*L|=eAKYw$ye~765<3J*kcK|=7>A6*-CvYr-t%#96VdmfTn$7dE64RK+oM--y>5c2PGb{(7l>r#I7@1? zit)pb+GcgvPHo4pg>rl;wOM!Z>r&P>>tp=73>*Or}*cI>Q& zv}I-cCkp-`VFi)*N7zE+b>ne8^mUG%xf=dg~<1~crU5JL!fX-mln8_Dcx2EQfQ zOLB%DInR)6J9U?G=6Lye!LRJ&=MOGhQ+*{n>P5+p`lZsZxPN79>PWyb+`r!id?@6AUlmFAl@GVCD2vvEmen4GWpzr*0i?9Ak|q1< z8HIgiE;iq{vVx04RJPW0#n0WhxMctRgT26i?9rF|h#&Op%e}_uq+VkYS4@4!vX5Wx zK^`FWAV190PkqWtPruy1ERO(GW;iMB`=^{AW%2!|+D0JmVq~cvYI#)QOgnn|9@0bY z=`iY)Bk#~-9jp11-fFprK^~DP_gp_(Z^K_5KM{Nc?{g6Scb@`2!)1!?7|7*Gz{OnN z0Nljo&wyJ&)aIv{kI%V&7w{mLF9LN(<^6{N8*uq);9xFK11{(CX5e8i7XUqv$=g-| zHsNw-;1Dj)0)EKl9l-Cn{5|kAm+t~Ad?W9t5-^0z^?^@uIT_fA%c;N_T%HA-$K`C` z4leHm?&I>8KpKbAr5t17K;?K8oSM>${x6P?!TAf~=dv!a9hV0ICvtfSa2bfM!*bw< zAZmuE1GBiC4O|JL>-;frJ(u%=7r3m)`S#%F-V=} zi0X6!5|P{uNJMfEAQ8#EfJ7ws0TPki7ub)>&jE=@KM?plmtO!5mp=q%aXAP08JEj6b_d7kEyeug>%K-i;V3LEiVC<2eghVk zhE=jvvf;Ye>VhZPlEC{)qnyUs#zTJ1HWxhK_C5G%+iCE#wsYXW*e-)>?OMDSJnf#~ zMtgbiiuQ`&LH5evRqa*5YuIaoN7)0ED$J-OZTS~FNZ`l_@USeMkzQX<< z_y_h6!4dKZo@M_Ce3gAQ_y+r@;9Knb!Sn5hzz^FGgCDh@0RO@M1Ncw&v*2Fgrf`hM z4qp%cY51q$`QiECXTr~bJFBfg@5sm1Hh^!bmIuDO+8*#Ps(lH5u-akpGu6(3|5WWK z@Sm$)0{5tHsE)H#Jqf&d_2%Fy)t?1_vHDBkyCQZ+;60A$Qw`!0->r%06hxmQRlf*fBQk2Xd^al-wU1}@ga77flci0&6^i&OhM7Bb~=qxScCJOruz zod~i)uZ(@C{EpNH9|}ED8uiTW|UF1h5AM$(HnEc4?L9`!gqxS;Qvwb&kdqvpRkg2_{^eaDB zNv@v)6nQY!K4vlgoO1M(rM*r*=jJ#T`JJ06+Uw+R?$H5#Bxs+DTra&Z;MoA8@BD`g zt{vmoPXqk#wftXpE%6`F65%3G0f{22 zFCq%}ehmK~!~yGYnfwwi5Qg%y)4(%auZ1r{#6Z$mlSJ;LXa@YVI7W(Hq+T%U3#7Qk zdiYO$4Y@wB0f@d^60jMUTLM>s21CCZxQ6RD0Y3xLdDsHn#`W8QG@hjZ`c=TyAlfJ8 z>idk#+kg)IPlrJt3ykCc-6p_zE++t2f?h(MkAa_XJ^4v&0eHtkZwFQfktew}{?iE{ z>ieWzTdP6TpScd$VF)7CpN7v0DDq*^IGX_=`ff^}34T3vJy;6(SRMzv3G!zT#Jg_d z5&ak7>ANJw@{iDsz|&Z^!Kdn`LRMPh6rWOJiBlFp*%D8ZqVVO6eR8fo+3rsCP4vaP z%7E{}4M zM}ZU~Y6-`UT^@`7O6-r|HYwV9LfpYP#GTeDt^<9$;&#}-G#+AxG#vMP zyt}1w2t9IoL3rCbxCelu83q*%1}`ou2G>@(QJ2a~gZo?LxN#Tv>CTU>j0aWvw3YcB-TAk5-c7t4vIOrWwBMfaZVUdDcYE+j z(zxtx-sJliW3In~{EfHH7=`hbRiFm$E z@QbvpWKot_iwA3HX=2f_cuQwXFzaIJXECv7Ezeotjj_B4KG`w_e7a>0_&m!ZtX*tb z0(nEgwg4}d8?X!SgFOLz!NY^9!_!rhXBv%#Tqmd@cu;U~Fl_1IF2P#XH~3lb=Yn4h z_GT{y4})GGQZFQyH3?}NqGbso%@FzVSV#--Ng*pjtSmhw19EoA&mm3O#gI#o3qr1i z=-Ks%C&Wsl8{VdJuY$$p6yWM78n zX7-Oc1?;Dsb2(b}bIt|ui#eCTU&b>;@`IlBsP& zL^8E;M0uHY?A&p50hrDhp!=x`58_c4zde|dxi?E$ncxz zEq2E{)%3FFy6G047}Lh9>(>yPZGO8T z@8Q|t4nme&ILoBG@AIW`A4x$cgO;&VQeN)9AGje0QnKiLLY4>Ao?Q%O*($AvEfUl)D?{7ksIjkH7>+sh>1!bZuru%p`V z@E$P9OORT9Ap8SwM&yF?nLr|IN8)acd>p)8c|+y~E$(%gSSn zl@F`$pjK9b)XJJ4`+6+KV=G!#a+Zu*ajoLuql`<5v#`E#6ClruTLqrSa{!jKxa64= zYDlw>)X!{yr&*)SQP~OF(b;40bh>x%r{bSA=Zk;E$eDuTyBO1QkGGfP@lRs3(@DB7 zH8C13i__ExZ=`7j{-kC!_!!MN@QIp98jNnyOoKdKGZTE4hWgp(YF-C_L-Qv1+nRU5 zmuQxPFV{H1-_xX{W`-sUe5K}N@J}?W!PjWkV(og(r;s;lwrKQH3UXw^6#2kknd>X5Y69M+XSutrrHGXX4=P~X`y`_a%=5VkX!0f zb&+hC?q!`GqjRR|JnxUlnXA*XdAirZ7w~a8IXbjbb;oty>^ofn^fz?B>vZh4?hf?# zbhY6vPtm98@vHTD;M?{4!SnSo9$F@6Y8LtG_FD{0p4)+iy&0xOv_}!Rm(|ZI#`M&% z)`r~Bng}kB?CEChW7V=j)*;Z$cp%s0M(Y;n_afsY-q_NZp7YjAkZ(!ZC#&0Q+4YEw zh{Hc`vYkaC-awimB_*m~l$Jdk^&IZXfl)6)ekm#y^026pQ93q0Dh=|as58+267?(i zwWy@@r^Yl-e*rn~($W`!SILOU!2OW%68M;map2=Krh(7Scny4h#scuSGqS;R_z1Rj z8F>F^*oy~usUnS6!=ujaB9FXVk9e3`%*99B72__{Aftg6ksS@d8*5sFx6zCOe?>DM ze1awo*M72QD&!fOIk;~YXx`H3*h0-B=$C0$Kz?8IA=YMUKGJxwRho6Evq7^7`mLH= z=qb(yXA|)?$ajFq8sx&%d=LE(n#U{I+mnu4!M=K zJ$SPA8Qf=`wOzowX?sA^Q=6jIv%cE?kOv?agO>e6`vTSu(GGL7^j^KK3zKp z`US|;U}DR(Ep-`eC`OZM*(lvu+^Mfhqsdn4KEa*0T6X|EAJI5?KI^^#{}%ItV9dId z+2N+H5cjA<-v@VRU;RYfk+b!=;5+mOzz-t#B3f1+)8LVm=NXanFpjA_t}@2dg}sIQ za&g#-FavuZqZi>nuzKRIvPh%PY}N?K4r>GOBxwv<2aG<`vJ~q;Xi}vSXREBMA#bzh zTm9J~tIO)gPFv4f^%&fo7)*f? zcRZJ4bhLprOMek}-o*69;Ncmyac|Yh7y|xE#;f2HFkVv2=48B{;lbX>cqc>87G`8Y zvmRq7wX9=KYEES~RGLer)JVyP-h&T&{{6e2eEV^C9xU~=y8+E_Wq!`3>W1N-cp2jl zy)p7|2IQH1~+8sc<;qzdjcA~G*8rj?o-gt!tu1LhLJ^Rv%+(! z#h9YT@CG(PEWIASubvo*M5DkB80$?lQRKp(m8+eu>+W$_(?gmSV5Uc&M+5e`$8HZD zyDnw;^fnkJ&z28(2(ppr;MscKfJj8ci_jdwFepT;Nb~mmUMj}qId6lezjvy)3B3|G zeDu2ZzTJIItcS1OFN=9dktP-Vruq$K`HHN;Pg>f;8Y#4-l<%+o;|P@FQUnT&3$WR2-pp>3$GA7N z!AoRI0B>e{47`=C19(SUC!3aamPWnbj=GEcph%iQDHTJv=A)Toi1A>aF<$V5nPPmA z4bd;A66C;`An=fwFlekXwPH*xQW{g>h-n0Ud`u#EvzW(_#{xby$5xG28aLk*IV`s^ zWh~6_^zrE?c1;>q;Uv%AB+uS+vQ&(WrKsA| z<%%l79~M;PC<@>s@}DSb3ym^%rjOK%HK^$MA}xatt@v$Zu+tU8A1h_BGh)nwmiZM2 zW7Km9MlR@?4Sigp7{BlwMtGED+${Z=6!$0W2*fzaxeDa?CfP4b`N#UeGaHKWW-C}# z+^IRZZ{>THe6)Jpuha27>dx;~n!92f?pW>r*d5#0uR5~RG=*g|)i2+#4LkIQcQ32( zVx4o?9v0VRN_vitStZRJ#4Wx)s^FSFWs>%`5oIEva)wq?kSZs zY!5;noj>czeAsEjPf^0a5>ZbvZaGBl0lO05Q3$PWJlY!m1oC2KA z<@vymxNNzNOkN<`)&`8=vIAHLMDa{@feBon1Z>0QWMFSDrvYE*avqRK`d!$b7WeiK zSw0OV%jbzdw0vIEEP#dcmS!Prl|>r5w@ceU+1O7GtRQVED`>N3E83RZU<)C-0``xt zl>KuB_K)tq{X>>dU2P-SDi5=N-hlos?I++5S}*f;D|MmlqcT`8cXbYZT^9Q%Hq3OD z4a1~d@*)GvB4p5z?U}d3mWILiPzHNO&ZeQXXCBNfzKZA6_|!^v&JNf%pY!}0d!WhZ zSvJ0b?6Uq0F0yR=4%uk;MN8EW@i%%z*fc^rHs0RU4v)MPTjS0~8X7emcF_n}O0Wi_ z#-imS+e<%1U5fHz1(*#IeXM_IFF7(|VTISp7z&GMSjK3`rERCV(7&GX2Kbv9Z(;2_ z3JdB^h9jrGE>_AulOp8@;WJZ8IcVfLr-WrC$1kNw{j-_Kvj%@1KJdTcgV-KqTtk1g z_9<8x$+|A!y>$J+N9aa^%X#^xNIkQY_0wU!cJt_lEBw003h?(mwu0w+_C|E!eJA-?qN!E%JQ|e6R0U;DLTYXob}Cs|Vh|uK{=?zeeD4 zpUWh_DUhf6O$XoYw;Q~HrGW)?ERDgZTV4a7XPF1S$g&uGU%=r2_{F996B|i0w~gep zv`q-cIS<|nUN@vJTGB0~9+SZ#!y#vfHahE<0d;&6Fh%Ad& z(yu}e;C;t4a97G17k6gv%*1~y^D20x)Q{Xz>Zw_qwKfY+RH=97Y}Q%GW3$J>+nFoP zHT#=1vuO`0TjM2Ze$%kRutE*9N%Ks|kzGkr&$6;lS)Hqo+7|ymwJEkA`{(nO(_CBs zYG(*$;1%JVzH+}^mwUhDelK^uTyk%gGQY@!nMMAtJ}o(N=wH>d#U9ABD*C!8x@eTt z%he;NX5oSMYoyGpccomp{feH0FQmVeB}JaIL76K>&dw@lOi{)X-BrdC9VtBqg~m2e z`<=!&(AWl&-vbhnOk*8roCC=;)muZ~JUm5Q}<5$Wu-hswE z(6MOTgBb5X<6Xo!73G)(^_UegenCBEMT})ok697p8q{M}#25$lm=zkULf=gpqx0W! z4DvboPZ-BQb1S%D+x>`Z^jBk9)cN0Od~iDULt}&~&LtQ|j0Q;YyL1mwyvyTUo&Z$F zyNI#G>UbCBxMGTV@xgv30+q2Zc_`EVm1B%44n`UKLNPBZP>14s#du?7>p?&4s?m}GTaFO5+qpTR)j!*Y^Re2f^MOffN^gXlY}V`B0u%6fH7j4}>Jj9XUD zH>{3>5o4I$#la}YHoJ?7p)t=3K=eJAD&k`(mRHQZp^W7%%lPN!U&CGj(LNb`RrR^Q zstND~E{_CG0a0wR+c{lb|9p&2{`t~luig}X@0lzA z8aqQ7J6cwMXz^9~IwGLuFZ)LS)9erOiPAkue$ju{A4;QWh)f_A}H z*dxtuXp!b!Xk+MNfCtIY2V9S3 za_OjGnu+O*GzXJBV@v57SlZ%^D9^x>Y8(oAq%`-6JU7#}Qu8i-g|%m-8JFaleG*E| z+S3*uDtXqPe$sqBlT4GKDLqe$98pa3&M+yWIHA-WTW#UXlIPg!C(W)kkw+RUXE^!_ zb>tZ1Gt%5f@*I%~rDlYbBaLYmn|{)~kn%iY56%%LM;*ud#=<{V*S9fvJKuKTt9@64 zuj6y0Y=OLAnh#~D-$Z!EUQ^6u8)>PJwn9S-wH}&S62LoKx`Fq$q=5HB#4^Py4+0-* z838`YG7Wr*Whr={@_q0=_75lzPg-0+9q^|EI)V=i7!JNcid&u4+#9@a@Ca}gqK9v-UdUtMX(5xqSA=ANuMGJJ{O6FX;8mq)3T6!FQsGIv2!J*!q0`ZBVf22abH48ATa7rbV6 z{cJ=>XFmqsHoG18s_a$ZYqHmYf114!d|UQ5@Lzbu@=eG;=3LBy^(lGA@E3kyu_0&X z3PdEmf~b-yy3X*=&hmH-|2mpcl;#sPAcsYm!N=1AziT_s)t-5ny@Gi~dpW#%cv030 zCuTP};x)&c<}P~!vz5_YWi(S6{X1xuGMX9bd;Bk?naMDV5zS##9y1liV}>G{pNM8B zqJKs=%t=Hu5>3QhWLw~mrMbsw<}sRgOqz8JGhEU9R^>6570qNt^H|X=R`hS^iT?u4 zTr~-^49&&tLJKjU5X~k;a|zK*LiGRG4UaC(9z=5o(ab>%^UpPff4386nxlEz9R z%=WbfeqOrwPvXu$N3(fhHq@q=|CDAwrMXWhVWzxAm>Z8~#v?!QLCoGnxgw-l@Nj=8 zB74U~%oa2qvjou`L2qIvplrnqeIqiq@Aa=(o-(vkes;>vPO*j*-Nh;_spPD53#n`?1lW*GF$wo`3hw4K_=zb8 z1b8RUQ$ISHQ@K`#cS28{?x3(5&v6|^rXKj=F| z0EYyJ!M{8KS*qs;FAR1fQiEpqVIgfok`WD@7IHo0Zb*aBCdgLZ4)gp{tVTX&_F?cG z7gnxlr99@8#hfA?lMy$ThF+6n$Vq+;xyWgz0tccrQZeJu2+YGn{t}w~huLS_=i94S zrO{0(Rfk8?m?j$0v=t+nXdDwmKgjK<2%7je+7Uf4dPsC?^aSLncSg5}NsGCT^t?xF zOL4c3w;c;HgSJO(bZl(w=2#lLbR~9uyS#Qsmow*_4=8pv|AWZ%B*bbk#E|`-5t&J& zmXZ*)k%s@=0p#0uW!{6ct0UqyUd>8F&h3*~^|O=kFQc5>J>hRYLEh#ZLk{J+r!4n2 z^qZu@>rC0WX?{DJ-HztAqZzMhzH7?oPdzD>;jK7an0Sxo`Jq{UXpSF-esUZ7#8YXG zAIyYD^Wf1ecr*td&4A~^h$r$<(4Y11vd_pa3xR#6w#g1W{gxpMXjm zPJ?GWZA&&>5{T-MJ@zm=tRd{KL~eUg?x+@ACfjT+=tXS14!Du)Hv@A)H0Ci6NV%ox zyOI622DaK|$ZLUOT*DT~Te%IV%sr*F=jv2KI|D@DxharxQqexi#-ni#H1_i&;3^Q= zl&gVa>;u_;WcLk#J`89D(SE7`t8qC3DDqi3La8@Mu0wNzH{~+fhh!U4mcBQD8C;(Y zT*c)zz_nan58S|IcebNDdvV~Q5_|FgoQ){Wk0$qSzRp{*+Y$Y=1AUo@LdKg^%S8KC zZn+*a3}D|#E!R_umg_~{a&>rGS!}63&g*E!R+9QSOSfO6(Pr(2w=lJ0<+;VQ-qe1L z_tvsz-mM|G^X}lSXHS=Ezi#nv!nR8@iSGA4<6V*c=&dn^F)iN5jajpY%o><#w6dXi zFYDPv<0K<`QjOb<9&871vr_cTe&ZP<_G8qT!Z62VB1XG4liIBGZuVxPotkG#VEggb zt-}(`NoZd_IOnTqk8UwzOr3eR*^_-G^|^{RXfvNA)?8|Xw)5%dQ;|K3x9>pqHJ_C> z*0%?5U$&BZWLNvH^VPBSiuR>E-=65BZG^EgL;c31t(m6imsPeqcl$+K2C^8715d#? zMNe&0sSVmy(FPUm&Z!tjHx2!`o@}Y5SNS|`Z{GT>fd6A$KwWTU>vLVedT2fk*b2To zU|)caeZhNtO@T4YjCVL9+IZX47Bq_4gQ}oa8WB_jJT9nFkSA*_^$G_B2cm5n65Khs z3F|7gR#SreVU%6};1{4D&ijm41;?`0QlBvk(V?AMH>5sB+%*Vk3^_ied5D3@{l{q` z6QOx8jy&jY!q`C&5v-asDf2j~71*-Xyb z^z5881EAcOJR#Z@-Itw?E{>)i<&rr8hop~4_h2KXzGS)GEcYU7GYy$~X3DIV8O*Aq z|9BbOg?D%eJ1zAhSI>$@i@8-+2k^A4N#JX0$>J^h6G@H~8S3_l6lv*?QM(V?z$N2##j{9`CXvVMk|o^hPo71G@f7+Y zz}=H463-m69!guqDW#q*G!v+7A=g#JqX;{hEaY>rA;>~*faivIV#u?FUJLcW*xiTE z7AnsZ`mm=2%{eX496BU@80_j1Zl4n2nSqSP1DDv_WNFJ0C*oPr5l;r$-d@WiPHJYi zV6_xa267?JYkge!;u}m$(HEn}J*4B0_}~ozZHF{P3)h<5bW? zBF*=l45V1=G|(Lo<9=u1b0&W?#r{!DD-rpb$u>xXk9i5m3CagiUk>@48RD=R^vg`&qeuDDL*geR-k?@%KM)WIuE)6x(y<` ziSjljgI)%ufhbQC&8Kw(#9-5qt&;|#+)Ol=8`(G_?*jEznL%RSJ(_cm=F=mahx)2o zfoL8*F^3+_okt|bYm0gFgk6-1bu?cdgB?Tpp3*>jK=~k=yDN>`G?Yh%#%43v9W6k~ zpl+ZP5aoSJ1CdRV2igZ>c#Z^tMBkJHGR0Rr(VC&W55=7F@U*x^PYgT@C{L8g1(6DQ z9*ArcvNxCw*CrfT72g+>270U-$_~UO*9EpfTk>(>Alwtr<9-DF10-_6=0pA!L^cb} zZNLWOcp#cjY!ql5XdZ~6pQ{BZ8AM~kMZRAbWFnR-&x4NPi0s-dlvlx~0c~@Ed)^vIpwbseLf<7oMOj^fyf@Bm~e^*ZwX?D<$fH|heQ206o(*U5Jda| z#U4<;M9P&&{r}YWPyPMW*H3*R)Zb3IvZ(*;6A+DQ4+MpPYJu2!#9M;)fG8g^+CDyqAbW7cuA}{+wdZ zDaKs%tx&%T#g>b>auHK5;>krUxrigD7;@?-5i#Q;UR=bAi#Tx+BQD~@MQpf;3l}lr z6c0`@;MCVaM136;@0|>ySZ@*MEn>VGEcRm1 z2x6BFcMK-Do9;qWY_ND@zAMk#coMhs{1AM#=NFzq>`Tv!(zCgu7ycn$l+#8zH?`iI zp1e)HlfBEcuHJni5A&wy?^N$O;N;oG_yO-s@NDl@;N<1ickG%dzjhe}H_- z`!x6!@2lWtpRr!dNk7b3fekl~Fygqz*TCl)Uk87~mUCkk^8~n?7 zTAKTUr7KUl&Igsa?=YuaWXM$&&*MhHy_Zhzno@YCAnNLH$O8#f&;bTV2)7QrW z?hkJ?_U!YNPdWCCPiM$|eENdF0?#zg8+_A<9`;!czSie6aPm{@*mn4;@wD=F_~LB% z)&WoQZ3!;swx5oc>J0d+wV2iZOra1PY&{#w?fOmm>_K+Vtpa1PY8^7HT})KsAN*^o*Tz$aE( z1n#VK5&SB=?fCuyX1v9G1ImHh0%F0F0y==F1iS$LQa~zrTEJTH?*nXsEtoy9Io@YJz)W!R#v9mbc;vCqps*l3Vc?C&a}WM_)PzSK?|%5?u{O98-jBB6XTUu| z>Y(M^625qh_6c!CW^xwj%v3nHG^vo3?* z$tnV8*)_7UpX}z~EwbByr(_QSADaC#_$%4tvyo3C`xD5kv)4o3ki98e$2Mngg(eSu z0$O$=`+LZ)?2F*n&_CeEwCE#nKO1gd&Kazw{sLTO^cc{)x)7Xt4R8;j-vBMALTe%3 zBZV~zaZU>BgEuUU2Tv$Wg1%YdW8f_c9|vz$xElJyg-!3_E<*nTo+s#Gz?r{S2%cIr z0#?S$)W^UE6b~uJ?>5dieL^-1$--_SnQRs-h-9)`lDOO)_ym{9j-jz7 z(tdzTx$FdzT|;`ZZ4PodSufi+(*E%-C0j`lOWAksGglFdUh**#?QkpDgj*oo^?fG=}74M;W-)pr4}arp+2Y$MV$Z;XZq zk!%Cfo0?>LKa+h#@-|>Dmzfd&CnD&}0n3A^PDNkrat6WY4F5xoSPkXq$ z5BL+8g&jrvOv3w7 zO2fEJHq&Gf#s5tKuHpLaz@1$F4){HYt_#^yHrpoDp9uUIMB5$*p5QXsaJ50CCtHqew|J@#%;tJwzfm2s)yPiUj>2{z*=wXH zo6QSEvJn`=)?^=+~ZN3yWrB)vnn;Ut;cagsbpw&h4Bd#*Q#^idHRzcPPFHPtBnIYSAQvFrX5uuK->qr*1 z9m&GJBU#vZQvLI?JtfHn_}_y_{-ZqYWK+@ep(fB>Zg#S{=zb={WvoWvKM0S_U`O9SlCVU8VnG_o6)kMX5R8tMu)^-?HuQ z>QTkNsr2S!gPUD`z4NwmcT0c&_`4J4e`L*nElQ=Iyr@%bjh-D2Kd#cR-oLvw;s>+g!V^#VWJC06z{fVzWep{vQa$rNRG5+zBR;%<4Iv2L9|E6Wfmnwbx zcUw0ca`El?=T!PVjVD$6a_We0kcdoL#5KF|PVPJV4^DH2sPt!7)(UvnSod;0m45D; zdbJ7%He8de(l<%m{q?CMd#4Om={N5`930W&hh0-u`nUI0`|QB-!EZQK`Y9jw8&~y( zl_xf<^uK-A$EWLnocE8a^wqC^e)5f5XRcpX={KeoXJ>x2e!a1%^zWVhh`G-D*e2TXE!e2dMbUMO8@4# z5i<_<$-0%L(jQ!$Iq!|s7Mpge^n)w<<=(pDHS3g0zaciZf2V4z_TN_NS56q4zxzz$ z!V2=wz5l;6G>NRW)6(;&7?u9;g5m#IShZ^Q6Dqy$7i{vi_0#V?tJ41xTyDX0UT3$A zSLwf+kvzovt1WXDs`OF)gU)mf`1H_Pm0rH@l9n8Jh~Dzyk@M#t(Dz%p>zC0V(Q{L| zO!0p6*62ow6T_5B$ZIQl?i+jHoxFxBeQM8(V-LiQpC`|PSh8|Z+J&4C8h(A0;!KoF z%PNZkszPU4%;iTk-}!#M^UPwE{_V9t_Uw4* z+sq9reSC|I559eMabdnnZ)x#CM%%V8fA)(?AG{=K!{xa-voWZ$)DktNOS+)1Ucd80|cZ*4VJrmFN)4`#g5yG@I<*(!bX4=Z&^ zKiP9XRO#mxx9DAa$-udJDt)t!bCxU(sB`2yl|C!v$8`%%1TDL%(tkVZ)aI9R-~Ppq zg1r>W;DRfQn`ozhQcI;*R4FCO`QiGqSJ0BlX6s?=Zf1GN#Tc~J zaF_Nc@JrePqG-p!-0 zhZpPTL3uAI;jPy9{5_W>S^Vzgn2KeC57BiJLPH#7VNKk+zN=W?dd z2ff9ta&Bc@yReE@^co_v8-8dhJE)w;R?ev-XR}R_a)hSw3_6s-wsZy^%4RDv=$wG; zl5*OL3_5qA8ETtg^JVi97Y@tPPMILZY*r7?0ZCbQ;I~lBVD*%Jvb`Rgf~>gkWJ&oT z9Z|ib;LVNt3H%r2Acc*OSaSR#MNS>r7d|99ExH_=_)mGnYsYvvj%f^zSVts_bJTO7 zhZH_?r`ciPGdc@4W0@^B=NHyyiC`Q)In+uen3Y zRMeAaD*AH|I>p|@qlW1FzsH+ym$Dwq8IlJ4sW<(9xBr|e{O2Mzh?>+QK8R!yBSf-@ z6O#03!%&P6$^Z4M%jeYIAo`yF zTYT?H@Vh_8eeY%U!@mJv{A2iyZvvNd|GbE?vO)j1_~(z5Z5%wsSCOfi4x|_>lGStB zD)YR!n~(VK$n)~Bd2RpG^1O(+GP;K;rtJRQ#ON#dZ=VPP9&jGAKy-eT^U3}z`$Xu} zi=`Qa?z~{**cbQ;$OYdgsR-8tiGJpOCBi(EkAY~hNgVHe;7KkEoeSmPK+65yLb*t# zqk|ER0ns8MPDE`GdaLgfn#vU3DJ_locZ@}uD3F&4<4|rO)hpSy5z4Jqx+hVV{f{N} zMngwL%XGfaF({9hbS3pBpiFcG{%@*Fn1(XZ=cK?wI1yzcTE3QnO+tC9q$}CqG?a;G zIUob(Sz#1bilwC9Oq6Hwdi#03*(lFZ)tiel5iRXyVDnHWqU8%2*nE_UX!%kG_BzV4 z|Fz_}Z$L*xi#YC^C==0gPzL0qWfJw}Wx}_iBckQ74D210iD)?_1A70G%0#q?dMi=>NLBA+l!=t}K0$evs@`gp*YJAZ%GKFglsBmAeTp&>Ehl8a zOgfBhQq|jn@>Z2D7iA*RH$k`)Wg=SWuTJ7FFe3a7iuo$!495JwAl&ZKeNXH5piD%I z*mf_dhz`wpiD$d4Zdw6%1NL^Q3f_cxw%xY zTw-mPn3z;e<=S5!W5K= zl>6(8GEo~|kMLQPiDLQw2>YW)~*Ob3A;R`4eHRH!19D*{Da(_cnCc4MBB^-t_Q6xVu;YgH;YH=OmIFyNg=Gzjc zp-fbr*CU*aGLcd@9c7|g{QD8kK$%EcZzjq_pYi<>&O&)MD1z$<=b%iqiR%a#piESa z>j;;kOjMB{mv9-%ME+by*it9cGx8~Agw)S99HjjJzKrrHm2ND`<3N-6wuBQmAHYzy>u_$+zbZGnY{q;q8 z8YrJ{OXx&k>n;#2DWNj%L79jaq1%r#ky7VGkmY3%E&1=rcm?H~Tqo|yTPP#bPN{n+ z4aXu{@U#3rBAkda(HmSxI0|$gs-AJ4m6(Y2-8rW4pM%<87R*K(IW1H`6$1ms`oC+%T@K9C}*hZWup9vs@^J; zSF7r+MVZK3KD2}zQQiciMSPddD1XLv8~DAy1!W>ye&@PvC=;FdvACG@grB2Kq&&u6 zl)nVgBHk-sp-e=J*k3-%hd|16bsXhyc|Gy{zC-y0*Dc}S#f9=|kaF9zC=)5)QRh*< z0HQ_g?;^^-aNT^qze^|+(IVbG*HI=?{^9Wg=Rdos!RMB+5jzZ05Q+l!<7;BTrhMLYe3%eoVp?l!x$o{ISncQJw(0 z!s`)EMtO=2;Q*A0j&mL1K$KqqDc`Fv zqD(}~PrU9+C==15N?lSq&H+fdzciE=t8`T| z@SXuF>&2lwM5P;p@~bM{IFyNKxjRz6PUBIYuBta1+J<+$VtS9ETXS9kMEC= z`tWi=wAdt$dMH!BUa9YQLBs4ITB`7RRZyn>l9POY61I@7QfE0CQ!aOuYCAc)INGkr z`V@{%jxLV2t9(62Cr1}Y+ckN;OB{!nokGvicAf8sqq8#qe!T4BXuHAp$Jg7!`1j{} zr&!N1g|D~W&P3+3mNmz^A4Vtp~+4@W0Qmq2kHt$aTmo&5W`F7V@A**)AITpog7^P#qo8#9!Dof7e||3Uhfp=g_mu= z$lu?|%Pyh!;QJHnIl9F4;p?3oT^wx&z8yy=M;Aw%CtuIe$$s-`*Vu@2Jr1Ty13rOf1m9Vzb`mCIoiDWb{t(o|0_R#V!xs+>T$g- zP~P6f^){niw(;jm3NJea^8KWU?L>VO{~jEj99;tWcD4fkJ2*P|er#sGJx3=;7e|{9 zU(eCW(Z$i`%hz*sa&&RD`N`{D{CFw6>=b&AHVfYmM<+*H5Z_*`=Vcpzo;!ItMU?sP zb8)os_ecsquP(8DFh3qgCr1}YTL@pz(aF)pam&57())_LcKDmF1P0}{D=9#7Rh9P_ z!nFcLrIc`ay=dbL6zf?9`TC&?L0SZg^*Rsvc*3^%ZRE$iRU+3&vdQ}wN`YegL3(-r zK3pMCtaqB^_2PR8yuUtCUO$^F1d8>xXnFn9Tp>`bPkK#We?V?JFo9xy-V%BJD}22` zvEErj{(VikLg4-N{CTbC3V~w1ZJ)e<(LXOxtWRqpukXqg0>%12!@!;L^|5hG;@8uY zZz%B3_9NEYo|nJRK&}vIYcK1=xn7|9dMEXk>!t8|0$p8X{r$EjU$2Hdqg+qi{{q$Z z+?CVbl(+wgR}ko$FYD#A1%H;C9oXv1^{Vmp0+Z^8X4YRcPJ;uQqCtFJzP zj6V;=brjz%>57#Q7AczCL;V z}^2y`XO`f#onsNO#BFJ3?O z_U_JKiktgay?tx`JH>q^P+iYmxrUqT-?fbA&)xS=E93Vc^oZX-&n90d-i3u(g#O~< z=Kf;=@_xm8OQ3r1X}rBB?r(wWdTz_^j_)HMU+hnydOr>~*H2x~U3v5)p8tlAc>EcU zczk#F-@A`^|2oTf|GGPVUKzJ{@p|I^66o%FsrAlBy#MmL$@f_=zGHzY(`0>Xt{13o zU*|pI@!g$2%v&QJS)31n>fi5fdzYK{w|e_DejL%R5vZ=`w(RErn_1TT&$Eob)7=+v zb9@#o?^m=}1U|4EH`{M4>-TrF{oXQe?{diB)5gD;zz4pk8%5qDUcck~dy4m_z@$e! zf9K2i``z8YDYfPEB4TF*s!u~ooLtY&R|rfhVDdX|op8qm#@A{kGUtU`Iya>BPp!)YGRgvq7 z|D8Z}J$L0iH~yEvG9JGMuP5#gf$om?fZpBxQ%(L|;(aPmy}grPC-Ht4sIKR>?B@7+ zWxW3G?jKhfw@;}q|4x7Y1qHhOzN!^A{{9pGErF_P_lpns2R!8C3;RIe{SE#^usx#x z$=&(OE9>*m&GmEg|AlyN2vq-^)_>FUyI~psKkj}%^ZI}6y?uP&XI<}~&-e5FHaBgP zGMH#6*JHah57yEa|ArES)xTe@{yCPT-e95bC-wVdB3 zs6&B+fXCsPQUo~#2TmM15pgIYa?qoQzXuBH@A-ON*C%a1TcGqie}A3y(a+8Gxo+Oq z`~G@gH{U>)OrElP9{#z?Z#~cU2P?E6+y9f~zq7*rSJj^%Uw2l>|8wDgutN9;&lCQ+ z+8;Yl`p;E^>K}zaV`M{(rv0{#VsjX1}YJh4NY4CA*(5{Lh^){^sca*Uq#2 z*ng7zbykSKQ|Bqa-;Vvv{HyH#0zA)=P?Me~o#!auUSav33d_$Wzk?Oxzdyp2ja#$( z3(znJ|Lv@>{i?=5mux(f-Sh1aUKH|W^TyeIYlZMnpC|m=E2Q5DxE|9Lym8R5*vP1!vU=Ung4_XPgQ)_r96x$@`j;NTqm_hiINmOs1a>)m;G zXy0cY@iDvad|gP-;(^&c8((MjJT}+*r#bx3JRH+ePh|CG_pJW>J&*tC*iK!{nBDW` zviCe6ovx679pE_Ur zzc#d!t-H0L2ByXX0*YE#J96Z2*F>GRb8r+zV%k6YTSvir{Wg!JRF z-t3;I|GO@_);Ti2>4UxDy*-v&)DhmB<9q(L<~zeq%Imd!z6*VSV_j%Jlbg4G;uRKw zXCmF6%E5Qjr&|rm>G=JpI?wIjk#B5VC|Jf~+~$k_9^lXP%J1afKOJ{&W&A&q+n;z- z8tTvd81sZjp8cz-6|PsjT^8^iZZZ}0s24es(IIlSzN=_~%@Tz(&m>Hm?Fv+&a_V)~OcAw9E$ z56AR_IX*ug(?62K!%R%yG(Xgn>6J%g`t!N^PsH?34CCC3iocsQ< zoVfHNp=IYy;!`B;f?_bH)zc<&P@!b2xO`$)TeB|{({(V!f{HYv#x8>mf(DG1!W*@(J zad^+-m|xA|b1GNgFRlssGkZIbYk%G)=hk=svhbd*b6l4D{zy)aM|1E0o}<@rP7apk zI6=cIM^yGE3i82>8nUnJoQhiy=K*AD^Xv zwK}9{`Z$C4ALdB^{o0T})4N&zSLW!J`D3q{BmJ%Qp`L}2a9RF~a`rIm_nJA<-<;!z zEdTD7P=ChfS^6s%hxE+8Wq8^;NBTFHg#4MjX8F5wertx;SI&|Cn>jx{%fEM3s6W#; z86EDOBmGTLp0apYmj9NV9A@dC&W#5$y8Y!G=|8eAz?1Dm&+=cjA*5&L_hs_AV~+IC z_J#b}`65~V(f*L0#Yq=N`ad{F`kezI|MHkG%m3V~L;8wb`thqmdKRzC?8dLnk^Wml zA%ADAC(Hkx*M;=1n4amIj;$}A-uFWxePu5HZ(SSGv-m;AkAFT#`dfZDS^9f&@|xB2 z6FGfT6Ai>WbM0p7U&!%M*0GP|;K}UFhQR<&#=luTpU&}VmVa9=f0q7VbMld;uj>r; zXLdWo+iP;^86JK-r&p3#(dHb#XZ-d493Ha%{%TGiWclBjt3OMB^Bnd6YYv}Tzn;p; zS(bizj=ov?1G)OM^aFW(#t$v|^w_c0IX=wl`CLx#X6e6{qf2IQ|2CI@Iu`hkoS&AZ z*USra%93n3ecK%AH_efL>m2EK%#l7hNBVtp zr2p6)=|3??`iVKxAD<)rSLaCo&>ZPc&5{0lbEJQEj`Tm7BmMa~(*Jgj^l#3Q{+&6} zi_uTa^XI}j(%a@pzbKcU>684uB{zQf^>UDp%wM^=IlO1~`teJ{dp17#;?nS**|!t9 z@}IgSe9!!=?YX$eU*_yZRc<`@uUkU-&ItJYmz`T*cl0MS{Wp;t-+d+L_wC5Re>#`{ z+8q3E&&6Zz&EaEp?)$rPaiHnwS7rXzy4-m1t2zDn7rFZWF=sdbEeHR-x$)`q-2p$D z|ND2j`tsx9dvf^w%;r!&gST~kc+dD@B1iA09KC)kH(tFh7Y}HT_NFV(i1GdXuL$jB ze({sJ_9k+6Y3bUKKZ_UqNUpyvx$*9XT>j0k3gt6@=+RvJTXOY%C`aGd=JNk*&OdoP z7bp9*uFziQNBnq>etER~&zyfTlEY^q$Nz83_4k@we}5`R-~W;0moyj8cs%$0e>Da8 zGktJtuD!SC=<_Q%{QZ57o^84Jdvo%*Df-=+pMFmc-+!3%Bbs{xe3`!aOwMorKe_S1 z{+xgK{H{=bT_nUOa^r;cyTkYO@%yto!u!kP`!D9?;XAqh|M8U}f99wDMh^Zz%JJ7= zF8?3q^xxm)-hXXof>FdAE;pf%Op?pUFpUAa;{Pp2` zHa>gf>%x0y#LrbZ{qR6e-!6*qWaFv!NUyBETW$&Ut%>!WxHi0J{}uY);x z`==bfzn+tiPv_t}d~s+m)2}Pnh4)PVe0WoM&&EX`$kq4J9DJ|H$=f|S`F?#4-@l!c z_wF3OmHR^bnf^?3<^L$x{?;74zgrW^XYq~?=KA}$IeCa=_`kRRi-G@(f%CvXvM5Pw zn&&S{nv%wO%ZPp!){>ytR}<1p`>N8KLfzGkdMRcv{9t`4rdL(XTgYQSS@`{wQk8Bs z(ml0ZJiijHT=y!zS5?jL=61#W`SYi*C*-&wp^>W_=QsFmVH@ABZshq#ucv%{D5jGv>^b5&JyGX-3$bF|F9^5aQoJ-3Cr0Q0KFg{nf;Rana; z`Hx~9R|iIts&z*WA6hqlaQCk9b+;Wnc-#2sy0L@%N7voH@4(cNb$1^;bjP~Ghjy>K zqyO;QeFxXwapcy~LkC7DM-Q*tJ$~fy+d&cKd)B`8 zw!8Mz=wbe^U;9e8bBIdz(fqFQ+bXSL^5Fh`yKk8|xKChJSlRB|4&JhV|E`J3s{zmB zFF`G1qr2~@w3@M92P&;%;>g6IgL^BiWzXoXM=GWE=z+T+_2GR}6~Z!l=+MDRnPqee zhN~2{W4jKIZR)GAH>#v^u8p(F*Gr-+Op+SH;|q#=GN|y+AZK}fr`5`d32&;#O~cU^^&mMZM*mHI#j6u7ihP5|N(R zbzonm>Sf{({$+&-hUF>+1HZXaj*G5$g?)*&tbb{$*-&9MheyXpcUMZD!=w9mRSL(x z+b|yMZ#ihG`A9>m&S8gyCAUm|?nd1UlR zrGj>Nd|$;*@JrzWAD%>aRXXrGJbC2SO3l>aqx&a!-CC)L9X))@RR5+5YfIw8xspg#R=g6Us5+)b zFVt_1r7McrWpz~GB~ZoQed8CZ@nh)+3}93+f}pg9nw3I;GjZX(tgy(1 zIuXF{;uTWi?p^yPZ_#Dno(u2Co_&YT2ID0#kMvGb_7aGit9U8oZQc09OWetcU6W&$ zLqF(pfh2fgMQ20$gSsZ?)`pXcxxC}0s}Q5P`$9V!Tz5&XT=)wWom?%^5xB64yL?@H zMt4^l`}M>f!{&9nJe3!30m@2;t1qa#GWV0-?>>0ou66W!9}@x>$i7)EOd#zYKX}1D zRaVX3$%7Xfx5%p4S9uk89yvI9p$0Ys0|wYvAx^2{LPwbR7rPJc8C`c|a&Nyc7YK?y zw&=KBsK_!0zwh7$woh648W&jl(CA*p($?+Yb;s!5BL^dgqY~mg20QT@|X7qX%}c+h4&1&}KjG2^ut6o4S`phYn2v}B`#q1$XVxW^R@Ue2lLB>)Jcb%Er`Ac^;vrk0lkHxZ&x zS7m-;q<&W8OMviuvbxR=XI-Ed8=<==3@Kk&;Y(m=BDCuy#uW*W49wXOUQlITZC6nU z&o$7gN`%>UR1kZ2`Fjo?7~OYZ?}fTY=hSh_q0wCz8VESIqO%zMC1DVT0Q&gob$)|P{o~}xheP6~frl^#qA)#;+7@MA)kpzqDWwOJLLse53Ja*3 z&&Sk=KO9opvgFyq$DREPNm@t>|1C-HPgWQH+(~aqR8MVMObUNemCj2FzpjLG;j2~Y zgz9Qc3V)R7>pxae*6I6{zS!x2+oODcm85qmwJs_AOV#Y-FC^)`NuiU=62MTK>jYq< zdfB6=8a>s_K9vOdqI5-4c)lwA&;vL z>FDvTT==B$7pq$ACYyzw8RMuW^t>sFrM`b5;B%qYv?*e=Q^?F+%1S$PIaQ^1u7zZ} z@W)jtC>G02i#>Q2Va|S@=`=FkfnL}wO?p34czJ{x02)L&U+Q4tvvYU6AUj<>lf5n7 zoD{m?s>_->sl7INbc8>c_HfcOG_>VWKNZtLbNbEulA-Y_il)gBO{a;TX?1zpkPJ;t z6^k&|t;r0aS10AmJ4Fk)bYJ1ms?tMAu|)dQRmmR8z`^xUtMCnR{m8Za{%yo&|VVzAK%a1DZ|KDn$=OuLi9 zTHZTJ_+i!1C29X{(+jL#obFU(WGV^tM(K&_^zP)Vyx*flz^miwo-UrjTz&doWNHE2 z`Y@K!E~EeY8=DItLdFY)qJ_~h@t zEP(fhz&YQSg-ldeP(|u{=Ze0cUyo8jLJMjqwm{`B+=`ywQdp{TE$PeE?VE&vdC9iI zrRx04gu?}}!(h)8>5a*;o(+S2Z~(NdRqub*6&l&i4^6piT*39`!t&mGC*LV*?k(d0mTU>_=LR=N9P3Kk=UGf24y#usUM2lP_< zBMFRrswx>8=;va{M;0q&?@^>HzRFwr&X8^x0Mf{cZM zO8x@97D`MO!jr}7LRDzqdPrm;?YA20hnwJ#GKEn`OECac>z>}7Y&{AL zLsEeQ34o&oL;(!nLcU--s$r<``6}VAHhq(_Lc*GKy()Qq(z&vysi&!ZU9+!e^;Ael#UWU=<#5f=@#7Q%%K2!$8Q7BSa z8waGd4V^FKs7tQ|fL6&+wR*5gPjEfo7p9*^*FHhxFnf1k_O>(3-mgwxOZCg7nwB9+ zH-lSHFPCd1V12oSYH|7+;rErwk2u$el}jl~rY?QO3&dh(Tkk_JA{Ii!KtCc;BV5~p zFBYUrsZmPXnBn~#VYpU}?b78Bs?=oTS+bD-)^J7?Uij%ONyvZvK6P3S+M*of%YxSE zvfO1}_V=<9u>=;7`pExhzU2AeUoKO2@&EF4Z{+gjFzt{@K_bLlDuY-P%rfj;o9@vo zcV z0CnOW41RyXSwW)|DX9K-@tg`DA1<$1!-u=XOt6rAPcD3ond!{@^pC2N>8IcgdRr@n zTL;hZWKQl(9vS4B@e0>s(mP1Mi`dP162*dyTbG`yg^`wEX=toYoLxYZXcR?j1!;n2 zIIvhlu20kF#`F(qRRdSFL!H`cf_OvyueCI7pajSgF1L07A)gJf?BGp2+UnOQ-P;4y zb?R0j-L1raM&23SInU zJ$W=4CO6!W3ejprsNJde=A`p>YAoR#)v2v&8QJ+bZ$n#7Vw|g!fju1~9fi~C?bd+- zY&5-VRJW?b1(j+?bp^_GBej}BXh?tdz(z`JrtnG-aKp|k%kLc+SaT^~Q!v~R{4HVu zcDt(uK!d7n!QUGCMzI!{e*ZoS+ty2PhA&@T?t5b&`62WYE|+!k@nBM{gGe}!+fDID z-;A*U8yy1n64fdi^sQ(`*WI7Al81Cz_~LwkUz9w%wY<&S;1@V{*? z{>@ImT|MCqW^9G{&w6m#AffF9M-LWy12SrprwV^jB_uOy!zWuPdjDOO^1a)E3NrxX zW=lIjvnE5q3dI%1s4n&?P>>FazR<0ex*iQ%|4hycxN_Hz_WJAO43NI1N#Q zM7E^M)%cF2OWr(~wS31X9P55q292Q@N?-RtM|q&5Z%;@6KnH#uII{~KFA&!}Uz?6d zQp?F;M;{H{oOBNi4s0FRiYZ62moU=ZezD{G2Fc5U;GbTf^i1sF<>kutL$Y4@ob}-1 zSEPKF3Am-Yv~Vdm^{nh&*$p2s)^6%uSzg)0U=5RJhtwB+Dy&r6ay>QhbP0$8^+kCL zpQw^Y=f`Z9)Hv(CwngjCjjAk3bO4{hoBbI z&_h@$YN*@PfJ?$z22k!Ea=K{_AUgt(8jpiyRAEVMkppts`2gw2(Rl%hxhzQMJNy_4 z0FZUaz|7fLd{|iQd?A1n$zVX>HW1hWY(qnn&2-9i2M_dSz`Qq_k!iOs*@Alh7PX|Q!Uob;4eTrd#d`8;;7zs7$M@dLSIOS5k zw1u8eC&Ty}?{hh)D&CtUb7}G$ z^z|ZrT*ON^rUIR_EZr7)M3V6yG9wj{XBv{J6+i>}f<>)Qx2X1U0lG|2{i+I(1vAB3 z#q4(VTVcOTpE$kMEs^oAWDNC;_-PnQmY*~1e+BFoO1bA6<3SkN%SrN5)56%ruepmj z05u?hTvO!L5S6^+kGo`rR-mOGo zH=gsRkkSKC;H(VaJm(EX5{iDlDrxy-FB*9E6=*^u)Jg@GGMs>AlFKtVTOe`r*UiGd zM;1|P;lcXg$F-QArGYNKk54=*s z3SLAzgFL6n6Cjh}YX^mBT0>5d`n6}a9%~ZniNOS;17b(zogqPp(MZByd_gxX zNUuQ5Y&|+UIy+!s%tCFDo=+L;@JCJho(Gbx!;el8Qlqw1TB}BJ)P@xD)9Vw^Ug4H9 zNP^)y!PldM;95a61x#smGHJgLX?>Hh(yrWpLCG}zO-edo79(&W^)c7CSa~f$N9wwNt3Gt?j z!}xWCR;=AHLy9AQm{MC+lum!o@~5hZZFgcYw@utIvJI$?5twv1rao9vIImv#i}HyU z?oQuDPfO{)1657>em{>1U=8Qwn;#q8Z*xu_SljXMn!x=g%X?koG@0dwZztDpIpuOy zdPlPDy7As?F^!#i-Kp}c&$JV$`y0-WcVR!iKK<{0KO3G)RQL_LfW=aZ(d&@udUg5{ zXZ;=srP-A6Gu`Qr07MgUP_H-Y^5Ug0PF8gB5gE0f_4HU8*a)vM)c`5hd5fM<35(OW zg~1px=x+~ol81-(sgX77Z7)U;QW(Rb*7{)aF^P5%?Rdnfn}w2Ao26=Ee8c_^ig=m8 zX=JD|gLoierevF*+9Wdeu54a9LSY2VmBEk*VP{{lf%<=pVOBl& z@1)5#joR?*mHeoatJ7~#t^407`{JR7^^JMFM&j^-wD%#VG6A!Kgm7(_wKBN5VrZB& zeVvMJ(i2)ZmBC4)j{iMc6gk_tZc(n!IDy7eJU1?Qj%f_^xeqASdetYE80HGaYSNA8 z!sd!LD-V6YDA?EY$xW+m>G1ci8@$G9uQ`v5Xb`y&lZEFJu+stmq0LHCoM{-dzB^b( z_hPN6Uz7d`Ly~&Fe*k1FIw4E@8gZVS8*%Jx!WGGl*|#f_!XJ8!7W49ch2{g#yfzd6 z;B_-5Hl)^|_+j*zO3gIlH2FI}Fay|f{)iyXF#wuEL3=)+^fUEx7Bxihvl$BxrU0%0 zB}_ggoI~yJRl+3v@b@cmhKL_LudFX5iMtgdum#YK@GX;Da!O79ocLvkpfF4cV#DTqomq*9Bc6wGA@B^Rx(Ho|-Qyz}lGpPXwuy zVrTcz4Dq9CtmUw{HO3-5EG=r}SF$f!NS~=vpR9e=C&f*=kmX#rtkV#hQu+b6@L9w* z_RcPvy%SIrhrLp?1CrT63ZA>_fTJ3?_&^&c(n<+HJVh9P7H3Y`gLoTxK8i4 zOI0iu^gLOm)QD)+@|EpK(Fer^aYeMwYdwho?;&|jP>lo$77N@OAzvRZr5+?qp$Bqf z{Tv;37+Hhq>;vVz_`s7pb!gR=`#xOwazTc>T27>0&ISgOr?;2s3`-iyzeIgzrn{5! z#L|Id&mNxwA5d>01;)F1298BU-3F!z6@uSd8DxFL3ZRM_1ID19u=?#U4si!bZDI}i zXicUFf9RnoSKe3qarvb&R2rHI3#x30@c=#{5eHHpMb^1L#Rs9#eS`pE>}o@ zW_a5Z*IeKE#@Cb1Vij5f3yYMwO9ml&?2J^qh*nXV=iD62lqSJbZ^hTI54MAjDF8aH ztO!@V+OQz<3( zWI^Fa6LrmxUv}zKPS7fdM~?MfcXeN^!BY-rYKRO=QIR_?N)Y5(eoyC~$^YuvR=#e__auE+Q}jr16 zx!+0Dv?iwnFY_OLS6@9%ZS&4GJM5F^yDGt zW_C_kNp0_CqUCOfQ|P3<5ih>^XcB_e@W^~(XOGCENt5AWas$0%7%gHTPq8&|o6iD8 zfTl?eppJ2EMCDZr&7LGJhNYqE1ZahKi^xVFz`#8VRA;S1>`J85ZlW>iAEY@F6zb^= zSv8VaAF??Bq_vZifmbimklxFO9G~)Mi@!VMr?`>?@%7>>ucKSQtm=&5HMa2PM$Fzs z*FCXjpTZ+!t5oayMu<0a+^y~*7u52s4SJ5pRv2Yw$m8Sj;fLWPSkP0nu}NMR!~8>A z`p*6ASsNL%(c!6K6j@k=22gPw6xg{~D!4;_q86Nh*_W$wgS0>dDAOt{}bz3Z@nN=o{!4r(sQsa!=+exv8nNeJZxrGBz^u8XXTm9Z7DQgiQ02Eqy(gfpXX1%z*#&HAD1`a=#fF7_HqJ z1QE#VLOs@bCO2kanI_`Th5OuHiJ@w_tME>P)~t?IL$*FtG1Q8pf=soC2;YGEJwMq2 z#i70V(>+-RA%>=QY@-ClVr+C&(=~K^3FhOyPfkHlsIB>i(EDYOr1P3ip*&4?3_wD3 zQyOeN8RN_|mT{G!ip#bZCY@_#*YI;{6!??$tX{gKZ)ykS$Ml|>&h08eP{!SeRZ-^5 zbauPqf-}E9v=6o}ChuH-Go-uUb5>TYgp*#o8r=ayw~OEYAx@NG%DkW_d#8JHq})GcLWVU#}q7M^b@{e$}lbbA*m&l`22n+kbu{R}q*RH_3W5&)QRE=(HJ`Q_@oRcImotm}C{^%T<2oyYTJ za`HI7CAE}9)gIMqqV&K*JiQ?qSp8mjAw>8gxz_fR{z_d�w9@&o$}anah_c6|qRu zzjE8m(Eq>A?ptr0RAt{UwVXcv>K*rZG%B?1|oRDGf{0{s^E-nnUIqn+{#r zDSQT({+zGB>a34HkbI32W@581nAdKF)$bscDz)x%Jq@cf1b0cPN#C9%_mv0xrDPS> z&$X(6LK*~eu|CqLc@7R5Mb^>F)DI2c`TUf@_#G;av#}WTLi&47eLtxeiIwd)FG>HJ zRI`cJu=bQ);>fqC1ch@79(PU*zO_+{Z2c$A`O`m%WR&nC%HoEXt6$7SKadQs=%j-A{OilLXc)lofd{d*c92UcTRwqQZlvei@eTD*7RJl<{SQC*+$B7uvP<; z-5$(^*XG#8wV$SS2c#jC1p%bkw2^l$?*I_pHH*ak$>qRrnILDQ=u`q_T;OC$s@N0J zc$tV5$%gn=hj`F!N;{eqTM(tMA5CWZJ^Ty^^r*qJ4=fc0y9+P^Lnr&6=Ii|^d0I`F zcG7C|rxB1+GBgOzN%KXvOz|F=!%N3yetEUl1u#>{>!rMcL(mMJRa#0zfsOlE+iElE zZtHzNf;2xFdMs-tWirr}>GG$1B+jHw4!|oLIP)mDCeH@)7nAYcC6jzZpV))_E)nmedRnGF zLPRf#twYw!WV|tvO2x8xU}i zz9i(DDQjAk*5{FR`N+juW(KedU94tU(WG&6G^e0r9yl)ZUP>O?NH=P+2V%peJ=E@S znc48oDzZj=H$mC3tZJoyduL6k9XSQL=N&ZX8ZpdL~ zX75yze2m7ACO^k@Z?biTw0L)@vJWCHOeQz38>uGaR00!v8cPj~~2qYmElVNSJwEbZCS zT1MjOa;>7Wb!nf<6sS7&d{n-^hlf$q_19k?6pe9gNJk;Yb63=G&RQ@9pp!i~Eyuc?ML2dHH=EmtCiQ3%sS|*JCN!C~2n8 zt|2N@fb!5cP8HIpIF6;HKP(h;CEmimB-f?yg?*~i&!gwt z)88UTA$`v1dIJ2Wer`(t{l0{G$f73B=iAk*PXCfjHR(h5Cl_-AJ}Z%h9uAelTtY+A zBQ5b|xBAlsWho-iW)4}qa{Kaf+bl9aiPkKn&yvkyIIWH=_fcGPij5jy4Z-(c1E!kv z3p8CwUn}r>blI-g8}!7ATCSS8D5VcQkhHf8=sz<6pG#0(CW}-KkcmC~o!TUWZ09Hv z#pR0_xmzXw88)s?-;Sh!2v_|ss!mhfT&^EBF#i*XiO2$dP5RF~d+SdG?42$@LwTF# zqPQ*%GWT6q@lLAqERV(-V;$Y&Gz#P3aL#^~^Fi@#O5LQ~<4O0P<>aHqH2r^P^QGx` z-P%L6R*2O;Qu=ppAh7pW;l=9oY1o;uxy%1yk_>3$ zxlW`UPBy8jom;>9nCc?V4XaPbq!E#1|tJV*W?Tf0?AN(F?I^5!XJ%$dYcD zhkSTxFl>ta7;1Tx}<#Iti-MDy}f(m zyF8sC8Fvt|mTKRzXJiMEqT=l&$5<>BKKlt;#n(N0>K5pC2-;RX-Kw;E7-B3|7fKrY z|DQ-?$YVp?rlm16dkXAMOp>9~*fg5Aqbh5E$t6?(!4_%TNS7kz4YIbLim`r9)8l4< z>HCxJzLs|S2!IeXO9a7h@$08#|Jc3`5FLi)H9u2cDP(mB@N-L8U2D~qA1FLeerIy|NiFhQDr-5-8} zk~Qf+`uS&g)_8uXy`!g}HE7jBxrc`B9qp5l)I9<#*5n0i{nSjG;-tK27P{mqAT4_9 zV-;9WM2w<>vvFoJ)oC42wN|6lX&rtMtZY>jaZt~UUb^X#)F2ROpJ_WFvh#Zvcy1^Em*`T~)!+B?kh=6~OT@3B0Kz&k(B!`3I(2Vr?^sGQIST17 zTg+aiY=EXMVjH{HV#+)(r%h>qi}J4ydo(}prhf+nwTVF@h+0cpic6Y6e03VK{gUy> z`V6mKDadlfRV*IB?PtkgM}Nc?#;7W3-?(kZlORD05Vt|bxDFh55OCmrj|1XFUJX&a zV)~Hb`EKgnyr;fDCIbE6XI|JWaE4WDeKN4)Io9vF-KlmY0MzIuw(AgHYx?&VK=i>0 z7=__ysyP`}s9Ofutg zXmxpP@G9y~830@M7HF`H>@I|ptQ}fucV^2Czm1wBrUL?sxS*cXlcAp&qZo}vH;WO0 z*WY@4X#dOW3akq35iKAFH8VI6MhW#Own44kJW9k$R(mzi$C9SvV({_v4rOlXq_=u&w~JK1>5B@v~w(?$tAe zgf^Ini;uPCzHQTR}jagl1hE*TN{RuBV9*rM8CxL6x99mBHsB*%^o z(VSV-S!F-0OzYFXM&(|sX$offwoeXijY*0 zV(4|?f~jOT|Cm?5@UA7NRLbyf36&0gYZ$FZW4<)g#}k`TPDi~86_m%N*z@2kJ3(En zI^9JbSYQQFMqy#hhpm*i$$0kFfV6@Eg$by{OP`m^UsxdfyO6wq&206Y4BuuI| zKi|hk@MOc=6wq)qX&vc>3~BO=KlaizbZ(Z0nNLkKjt(PU3y42UfT+|LYBs|wX#H)z zJ28XC18=^&??jN6LZ^RZx6bhRwclm>Ninj15e;V5OwGW=^sZwo)=&36G&uzq-7Hq> zw&pP?Z&p-omGD8MX7)Ovry(o=b{Y*itxhh4=W*OgrN%T^z1WW zY6U?YYP*UtfR{PR%Ir&e?~~T_MSA}*+$U}K7hyPDZ~-%YUUT}RivP8p7mmEo!G!D0kDgL z^+H@?S8wx$) zB|6X>T^vng_NkVJU!qX?X&RiznmG%Iqbi!})nv>Psj*b!{O}!0`@0=*iQS))X|e3r zZ9#!bYatee5UyX6Y&}F{R3HiKg8LrjV@>*vDqYV!Ycixv&2Lo6B}s7^!u&)c!K+T6 zqX*u1p=BgpG-o8Chc?E28tYXTl&ul84ukx6A4~E|!F2W)SYWw_-8EhesX+iORi__| zEq&B2arqT5dtfaBtiV=9v~ELKDg3JBT7ij!uq`)z|mv%&*r7`>)moxz#|Jr(3l-lQtHn|AxDSLTtl(Km@_62KWlh zQ($zz`{m#6luPG{Y3(#%0k7~Y*hMArS4>i$pms7s8H?aFruRBKkx z3`hHi=ip^#_KY@3`_y^RZvPP`mIEy}x@T~DfQgbCLFW};o-HwS_I0`fSJbf$b!{LA zKzRwUHA_4tjWp-BhvLydz}sTsv`xy$n=-XxfSw~$jYLET#=~<9ecDHzKP34@Csix| zd_0Dm%J`RvqBX2^{1^n?E;C1W9P^D!MJz2}B$ht{7#8{!L8Klo^ocKQ!)!QPLHqPo z@B&_*$L#Zh)H3cE0Jt9fMz0k4cVx1d{=x%Ei`D@_D#^qy@J4O&^}B{92Zs7L_XODN zK|6+0gYxelCd)GE4f5>>eB~7{^45kiuF<%I20^QNz9R{XLCt9q$99W15)1n8yoCmv7-MP(lY;;>0UxpGhK=ceg|EJ~BFL9|jk znjAq%EK1+QMm;nUU~fiYJiMuIBbkr@16LhJ3?0h2OHHp5+EKfW+T2yGburBv9_eYR z7G`YI^9F>kGpyTDbXF53<({5*QwSg0I>2GMI4IMi`RY`sw$wVH5_V|GNOu9m|KqQ+ zo6;(@#(;?xtPCN0HVwli73{T-x~lD9&T zQgZA>&(7(o;5Eyqo0{&ShiP(h)O>ImMa<630(@|_R?w7^p*5_sG)oGwzm)R1N;BR_ z?$7jmx(5kF*5qJ3(W6xwh_3#TJ?FZ_r#g{U5WOQc$$!zP~b z7NnckB$$xyChe!xl9Ow(94t4$(!km}b|EStJ2UntHPNVX9X;`}ebI6< zU~AR*Q1W6z4)15~OwQ8f)PtT9D3|pQ$!{}G%wRNapSYFj#_2s99;RMHQ$#symBO_H z9hYj-o6Hd-u8CLs>0Ya-7{cIeHU%-((xRq}yL_-CyQCv&O4E0 zTGqf>8yV+Uq22L6%ZxO_CYMvJ7}BDZrY<62B+Y>QN*zfr-E zHu;G1N+lonp%0psaAsY!gVkM%K1gr&4M<^Nr9LjQtfll?A^k>S2Lvn-V-;`{IsY1R z;p)~)BNpW=wP?U`5kv_Bvp($jUZUbKUv;`$U8W8%^7^Mpb$VJK2DuKIz~9Scxfgg^ zy<3R4f>}uwJ(spC45ZC@AlL{1-F)nMQO#o;}%GVaq2xE@T8Khs7ex-bSD#e>5W6T)$AGm=)qT zE&r36*rh}Z406zveuTlp@JJgA6ytnu@FOu|+Ey_`YAxqisXzO*{*Z#!apr5Sx4q2# z4sSvY8!AVXd|*i`(tA?OGft`26Up<{`Yda7RtFbrfa;cg)ryZSRI!RRkv{+|0J!#C+Md&LoXuyZEmO~mn(Xu;5Vc`!?#{!o zF)WSt@@iC{t^4^TXhb^f$0;it5f?uAgZL3{aEPcm{ZUwIofi2>Oow#}Ky}i)`Q&}5y~D)j)OYd@KKO$oNhzsnSljN>i*Z*3_SFu__)^vz_kjD z4A3Szqo}ZJP3RraWyNra{yY{#>>K6W)JY4^^bKr;DH(523;44KC@8u$ItB|0uZWkJ zf8iPKwohw+hE!TOYgR}ROKKqYgdk}p0WOsfQw$-YGv20HUgt&Ki@i8A(q9A{hkZU& z;%?oWp#AI^dU8vxHmx3`2<Xpn1mBeQ zSw_~mW?WzF(Y7htyugO1PLK0~v$VwVTlmrEO2#2fuuj_jpc%Suphi=^$hS+xm$+s= z+BdEZ98y)AC3b0YCD&ug5w4iuCEAWMUz}2qyY3mSg%Xl^S^}6#v8S4yFGb@>lS_46 zMhWb-Qs#h2Ks_%Ghj?j^d}S!A7nHq!#lgfevN@@7-Z-4Yy9TCh-D2!2+MY^-Cz7Hhqm zhS~$0ubzx+5f*B7NgWJ2xODsGc&48gRwCBI?4-SZ)Qw1^VZ=Wuxs~+KJ|jvt(uV}VRrscN*pU$oq3<+ zIz0QiK}3u=*hNA5wTKa6hzN{ql+#+1?C1@p?c!Rr8)p}KbqU{IN(`eWLwl)1Yq%RU zhA(I-tGzJ|(OF{YsGp}`zmq8NY*kf9j89u7HpZ`?}t8X;aR$+{SXPRf#+ z$&WHcV0`#uOXOdwU=tDN?@*3SviKR$K(6$inu4Q_W!T-GzKuJ25QbGUf?#}}X0Ey+ zCdw>|+o+z9*i_zQou)LU`HnN@Ko(@mM=)-1f0$+AicZl&nC*KIv8&Z9ooradiP_TZ0IXpG~GCdh7^ZJPGpma4A z&1I2s?We zkF)Y{xL)5&sZR5#Nxwr6?PGn@qPNU}V$T8<(s#J&@4$oSBw#XhW+TPIsU`ERqajO; z?9YvSge_m>qmbE*O4+6ZHf`zQ*Le2U3u;nkSZF&V z^mLp?W=Lc>)pZ#Zn(!#YTQ9w4*q`HRaV5(C3H<77AtZ)&B zM8(Jx(r>TRS$SNi_fm2xrE0M6=EP8_Szqq7lU}RGa3-Rl_SArhZ`3RN(g9AK3x#(U z8RK*(i(j=?6eD*LojZ07Kx=xk8!TYo>{6%_m=jagE8gfNitySxSirGuvefL7?*QL3WA>KP9y>2r$m z3nLU|_o(4iQ9A6={R@k(WHp*L$P|;!9pQc@Z}5w?iTXWprJMC_(gBIPd;K^9cHv1wS*pw zfVV}4)GvNm6tA)K&OG`E#)387^?qBvrTM)7M9Eu zp0L{e#j~#byb}@U=L)Y79GdF*8he4kpw21Ss%Z)Iw$7;-$73-0TjdZKge~KY4#^}XH&@OU3z?1P-y}Sg$ zGqS1st4J)?yH6LNv>q4ZxhO{yf7g)pDu$jZPDkTC!j(g*003K;bn1EuE^!1{PUHsI zhAy_@h;xR*?7SevTaY}q{rFAO$WM3D$C{6&DO*V3=4$Qu@LJWg-tm}dS8+bEzD?_m z>eVKJ`}*Wqxx1%#po5ja^HHZ7=9!#Fl5Ka6U@a_NcPRhmxOgXc4^Z0Ns4QQ zhJ!(N@4ZaNXT#Ko(AO%#|5{zFkv721ii*#K8NCj|@BpEZMCX@JKi$*O@eqJqqwM{< zz>e_*5_%sGjkVlvNSd@y-(ulU3}1cdka1TcR-r+;Wz62hi{&Y+h+CgbCLcl>(_<@@ z7_&mKbRdE`bDA%3q}Sef1+6LLvCAT@+?WoB32GVY(9~MUSR)yM-#pT?&*LGLr|$fN zb|Qn%xMBa6PQz$OHq7WqnGToMv#-hNM`{HbY6+MtYz;{Ll%B3}`jKXmjlh1S#Qg zT`C=`4Kn3B%XhMKU=5E$d;@91-0|{bW4&8@hXzi+x2!1-Lto9&0b~7J2fy(|S(>_( zd_cd3W&H(nd;A-fq*Wb59-o0Is$32REGRcC@fEtvGfgRNL5>Tyz_UCca^IyV$mu0A zu0jXr+@OS2s6ovtizmQXJb@39iBE{JnI*oCv$@x(b*Saxg0Q+QsJT6=?jBrhhqt}Z zFPayK;3Fj#X_zwedISW`{fh`lhe)y)m(s_XYsQ8dCOHsmsLBeV9taxiS%f$ zo)GfPwM`mmn>FuCdcROsr{bFt|HZX~U0R)jwf#~dEIYzHeb>i6cp%u$i3u}Ig6U{g zg_6g5*wpEvw+xQP=2%O6c^Zo79amj0=*>J@g2Ev_q? zCpt2+0bs1PY?DEY-Pvf|oCeKenrY@Vt9x?>(3_&syxnhN7!EUubK8KEF-nOh!E7^s zO!5M|WC+IsoIP~RAC+txlm(Mmx=*g(n$&x%BPKKT*CnDl_-QRcy zupQTHwyo>X@-R?mXbkYRYDMi}mY#>ocPGQ#y~HFcN#h*7aaN5ja^kferF^_Rb&PR1 z_4t<FZ&(Ho6)h{|(+XliH5d>N_G8Ho;^Nrop>dXfc zmimZ2-`qmxNIcr3tUa_PSh3LWxH-eDY{X=Bg9(qZv>*-LsC~HW$FjWUu-Six#g={74L!Vzai1bJ^JUll`=r{a zwXrjh)H7V4i4%I67NLaXrtn&gmMdwBHg1!4^$Jce|i z&4))>f#gj!Ry!K_7Q5*2FW-g4$^+`hhbtxT-NP8Rfl9mKLQonr!zTJg5bZ6}h&b+) zfy=b?_{CGh4B-_m+uAiih7Y7$diyqZTz%r?&!eJICqmIkM5~YW@kml!iE?<~ zy~*eMG%mbEeRvc8o{#|P6szp{3ePldLGVb!>F4PCxEGz&$MA zWC=>Ye%gsoMQ<7nD>@xXY7AQam}f3c6`&XY-31d-ZFZQ}J=*h}YGYAJD&LEQ7KdJS z3r@1upY;kUJUOK0iVEMrS#c_!C(B0sVM*&8ayO;F43RYGzATi~5V2QN@^H9*tfQ&x zYZ@OSZl<4hjucnH%0o%`)v9d}3({-K`x!a_=gv=0u*9Gx97U+Z;qPHnXiJDmO<`@c zya%kK8f74}j0(zS8O!wPZs%mc=Ywq)6T6=5-Pt?d&p%qg*U>7j-iKf}0CliSC&5sV zj`j*7>n8KyX7n1V{8$#X!j0599kYh0S}H+8W5 ziQx`@ep2)BQYK7n&XfH5JY4;*C8Hhi_NS7A8#&mCrC3s#u(o%2`V<%qX|#*2hO0hx z7QQIA>%>^$$L)S;Ez3*@Y-)J872QF3bGX)x4Y7~Wp%5X63J}gElD`w-ml^GKczA9D z#E)Rzm0Yj24B*uZ)g<;O0;*PN((X*GB~C?ow2WV;Stu=%0marFzN~^`O0@oj6Ia0m zdI$T~r&>%Q_;4vd@hx21`!Up>F?WR0ETCVbE)xZsM_07Yv2GlQ%0|c>oL1` z5WP*SWM?=ltO$&Q5DrQ7IUyd5I?!B{TJcgsuh^F)40eM&FlaW68#*C-+%|`bHfj~$ zDPF?!7w%(4ipQ$)5G>qyc_7z4E$0^8`m|v9DJgI$D$=-22=opG3nT9y0$?#cu(GmBJHHcvhII>$El*45bAm$fu>>LSe%jrM)G$1$%(%?E9#J5;b z%-u3T)w^`q~h7Vo{dqb$3-nBPR@E@pd@O6rR9yt4YoV-SoRc`x`7+_ zzfQ_wm6qoo?bVVO(&at0T-DOKfy!Wbru`Glj*hfy7iyrr=c;{XwypFDi9q6FMg_TIVBJ29+`je4M|4yONn+8VZF@#^94NG^4>K_Bq4H2yeV7bc zV##wYd!%;Jd4D9Z-$u3fCEsouZ=y1o#cI}zSmH)@#`^II&Emtbns6O;ems@Q9o*h` za_dK^r5>(UX!Y^&vW^PitA`;z$uK%=cP3rzG<1j}{sbF#S0-R{)@~g~KlVI_qB7^< z-9M`H^%BgTS8TS)-_vjYHWiL1NRW_Z?G3^e>XKXmrc61%so@E!RFeWFZ9O;eMxu^U zB~6im7_Fsz1B&Ot(6T_9edNfBAr0M4L!=T$und~_8k5PP-nWgGq4}7q)OgZj6@NM0 znh=tEx*`V4u)9y~L|TEtN2+MU}lw7xP>A{_(10uyce+b))>}`Vh-MI}_PG20;k4 zy>#E$(^N$T{{6RJCO8NgGmx*1r>^QWQw1V+ULUf_ZVwC$LqIxi!{ae_b36-2KXw)o z$@gae#!AV*lVZoW-lG_wlUNEr0O~Ob8n-^4RFea>L*0WJ9oLFV=f-@$$-*AshqMdW z_Y*HB^2adXSlQy zRlhawp;OedL;A@#=H4kdk@TGyzu%~?DBd~ahN%79$L(sI@ zz>QKL&B?J7Pmbyl{&LJsNX|1SR|C9f5wNGnxPK)-yU-a(AeM*&0X zy)hM)#2M$O-#76Lh40s~pN;6F4|9bheB!^Cta@H&F})M&Lhy(h*N_7|${YC9`*s|2 z4Kxevjx0#bI{G{MPg0wm_4yc?Xbq7)=UKvtZF*Y(O|i+D@xnh#ur>s1=mXUBY#l1p zzg6NSj<7DrnN_riVUB22yp-(8=~ z6f^TAsqehDvkQ7#n9$bh{pJ>s4ln3uoWTHAOH0}jd_eN#-0ag%W17!6JNlwfFobMR zcZ*M1I>jf>8yPqB@B#gQ>u~7#BGsl~-f#2Kut0n{nHrHm8?~{E1O%fUpVvAHY@8ez zbe->>`9%M~XND;YpfOfP%h5vd6eDR)v-;u5%Fhs;cE#M6q1Qvg>(313m9XxP{gnN=63dFrFs&>%^WQQP(T~4CVh5TKoRft z;Dq_|k+PQ3q{;KV((mZf0Jzzc-yd-qzQkWdL>S+mNE+pggEpRg9_2hnINJi6&n#Cu z_en;Th`|6#@_{6S1A5iah=^w{ZA3ti@Rt zK%m_ZPzHIis`ea=w&{zKQ+(4fr*OIG6XVEs$xJy*H5X6pc}TxeM2H><>NQU2XfF6W zCb8+$h9V3@G5I|kJNX;w?Ccu3nTIY`=4ee8mE6PONj0He-o4;T*7Q!pr41Bsl&q|m z`8;KV8m{I)`F)Qd`PS5cWcN1UOS4v*Cf7p8S8;u`g9@39+BVebSQq{A?78MkBMQYAD~jF zXI2~&lC{+VdlpA~Svc*U<#Uk3DkWgx)$G1;1xIQmCqV>HP0XbXZ8fRPS#-eN1BybBeE0ic@+4o-JC?NNiihg+Lzi|pl3!%ay9ff9)r&$@==;O;(Cdu@C>HwbP&VNugJ#E{*04W8BGHtQY?Q9 zZfV1Ggv|xkYQqELU1M9eA8V&iK-hxJMSl=JF|*O#I{63H@cmMbGMFa~Fi+!zIyMzu zLfe-l7)fi7_i6OEL@&Y9biuJV<=q0?NE1s@3J z1)jw)fWe@dWIC}oD8zeE?eSnKAhm9Y+=OI!8(Wjcf`u@0yp{1zbpMZ9f0{sW_5y_l zht`7)B5~2(R`gvvMsOH9IycX3p(G1JcgQXmahbd#)mmOY1s#Kw*8KV$23Ny3(=fl@ zWgPKn&kM1N3q$V0GRO5rC>rn0^$*P1LN{ZGXHK#KLt-Cx%Y5;w%z>;)w*4Z{Ch;B> zT@Hz<3*q(IJOx&nXc%eo^K%HA=`xpq?RnA^^MXRLR9&7BJN1NBgMYcGS|` zuh!O8!jGOH`o7G85nCAq#!#V@?Sut>iQ8q)e2IL6QdM|gXLtgmO~TTEDkP^NJi)a- zv}CDx+m4=9sQGMh`X$6Is3d9gox=)p*+(KS5!l)xDsxA4WD%yJ5wMablP3@%&0)Qa z>psXzoO!~GK;t$#`_&|z;svrXUWVPWGiWfHLq5B38sWM1cy_B3?@DgmNGh5=_R)N2 z8-R?6x@2ocRc?pL81|F58UogaJ#anAkdCF$Pi6zd4aw8s!e$j})@TRl@ujW3VKL-# z5~xa@+gS3wnURd%5n!99I-O!Dj_wG=0t_`ett$mh5Y+pl7)>z-YB2Up;xI1ulI+fTq&UyPZ730xisgpakTZK_o7kz8$`Pb$ROH zq0a4Fc_qK*u7-C|z}m-J)E6kffY|5`t~ins>IU4~H5&6tXRKX=L}Dnt5zo;dv1IqS zme9k3i-RGDaPFe{I1Uh9JE+o*?bg-X$q!e>i6u>rMJAn44*FNCnQ=3MoRmRuRseWyBnPqI_3?$NUo=yIb9doG|yz-#oXlE{N&x8er9 z!@P^J(hoYsqDd8s`r_Emmf-uz5!gKSu*S}%WJ0vNM*%0T?ovq8_Q}CDz_(_e4-RM6 zOFBW0{OW=7&S6O=StC_YQj6d-e$>!>Emw1B*vJC{DSDr510rpV%&7KqO$v|2J-gxN z+EMN^Tc(Fu0;Hkk6X<>Ye2Z5ddwk((cd@v72=%=frX(%zX-kKHES+vA4x*9M$QnQq zS35b)UDZ$jcrHK(Vw|QgoW2)YH0LiBeRaeHX%JqA=k^id!e6@tc^TfIBPVn`NDPOg zp5X@Qgd1;08U#d`hKEJ=3t=>8a0H9i=db}rr)6jX3)pB^# z3CEc&HX6}G0FCmcSFDWQZv#enTgMw}H(0f1*5%3|Yo?5>O?l_EwJYoX!#Q{eWuzlw z-<1A;<3%hszpV`7F%ttr9No= zK3}hUXLgc+wcp40`}yY+boTw@zVAKv+;h%7_ndRj{l1%gD{Ea_|9oC}htjM%Ke$fF zRrOb@_A_01mtH}8^R&a$;wzK>{T$r)k!=Gt=2@O(v?qlkD4;C5m5d{ohW&?}15PD6 z2K;ozf_tgs*)Fi&N=c-iR2|HvU#65sYZ_mvDMHQ%?T!C$Ew8UpB@pZq9q5pOE5<`8 zx`*`=r9!wf`5GWgfz74IPD6x?P~Xb0jxCNj{{xzmk)%ooKIz96N_FXFR_s7*CDs1^ zoVN>l*N6i<1mMI;h`u?Qc&EeA;v@+UsN@U@3NMY_Xf8}7u$0B1O`~3S#kVL4QONUc z1QSA-pZ*@f7789D$KrlgGH9=8_fY_xu!uI_QojeiOMGkM7#_MjC>6G0Mw2)+A8lH< zCmTqhh^KD9H?A>u%@=`eMT+%3mxFP)3TGCBx=+!9!eKO-z!ly|XLgppIUhpwwrbD*O zU|On$FQ8PZBgki>g)DREyB86|+X%wvhz@x{s*fVHantM(xXRn!=xY_igX`KXZ3b#9e;c+Q~ zb+&%##M5+JOT@TyFeEnfbjR3h9KB#_|krF z$l5TYOqBp;#&DowP8l+s)Y4afD3kmys(b@2OR!%6-7NKJW<59VPs(@GI-IT(Nddt= zTqC~>;KLIjy&rr?WbC7cNnznE0SU+1sV?R3QZ74_+O)K0$oq78wNsYglw}Ukxpl+a zK}VJ;RBP4IDTOdX0~D9xUSU9!lm#1}ydLR|5w(h#W)qFKa-?T+ zA(di!C_od$`MR`vP>2IOFhD1WtltV}jny-M?l2RHIe>wzEqrZ1)FvV?R@iNF z6^-M`)}J>aEPP0-RGbQJW&`OkB6f-uFZWKf_6IZBUnrsb` z<59VbDM*-vEZwA9N2e=$a1}R7hcHk7Vtu-{nIbm97Lu#RXaYP&!+|WT*1>dtv7EA! zN0um4;(YiM8<)&3gd`q)Q+ARo(U}`krDI4S-(X!vsOQd{$g+f`q>IS zqY^DWxB`;J&8wx&D{o1%7?y&ulSN02sPJ?Ej^rYj)MS_n={L02RxF@Wk#!O@B{95z z7INqg)V3-BvaLR{pO6EE*vnfb4JU5pxj_ZsT+!~Xx#)V}jN6p`ZXdy^&27tE(YVf4 z-O2zU#>J}X)b@34~z0Tyi$o*>_ljK~*TNb>iNL2XEKZL_(7 zMNLjND4V%rwxOFORTv|0ky(n6nVp!fjocp*M)%%G_tjqs*xQUdSklo|#e zJ9e+RrLe+1OjD2|hl4_tHoa@(PCm9220IpeGI80_b4GHX(sVH5Atc?JdaqQtBLzkq zyqpEstrOlDJ}V>gvTVx`t;Ne6^-v>qTPn??@4LTT-iyb$q~ap-=5fJ}&wVZg{N#Ec}P#O_{``D0A502;~Ru4HCc z=0`E^2g{^Qc}~L|*Wau4jB2&z2#w7>XU2%fP(NS*btsgkr1}7BV=YlmfO(s0P;!eC zo?fk|M)-2QaUms!v?HZgr^=0OU6r2}%xtj%K~RECCAA>r`Bd^pD_#$eDT|&fLlldC zX}ZOciw+kc8@}|ml>(VI4i9mQuIuc!LQWBt1K6P4FPBR-7HZa8wJG&`9V9+fhg-p1T4}O#|8B^y1 zW%%k)9xvxDQx2rDkMID#PSZDoj*K&~Wc5HgsLmU}r%wsac$Tz+mXrX-FR6nWJnzGr zJCuh-$A#{N!8GGPLwBxIIh{Ul6K{vI+tbWzBVwZ(4N3Y8w~n9_FomugAFtL(YUmAF zjS3V*WM;7t&%|nV3V~yUqxYQ3+MwKlpy5OV$Pl9@X4Zz9*QtDuB>sN~E+Zi;8Q&p2 zf^R{#QY+lVe9D z?$ovv0p|G;LiQSNLHet#{iuU@ncp(!Lh6=zCUvU^)EA{C)q9zvJat%X>=0b0S=xzz z-Ru2N z&c??neoG0$3F%BQudNpz9xc6galcCsU!7#$6Pu@yWtAnmUBP`Z5du2IFt8F~M8$}@ zIyEB{G@B`bAD3++dMN|GepE$#EtA>E{!7+uhfR!J(57i)*O>Hp6F%6rYr>}j_{d({ z;<{va@i^Pi7?UGTX@C$K^Yk`8Ylt9aF4@a$yF%kp(7E<8DbQwY$g3H<2c0Jk2rDsi z5vs__I&M(Y_)t?q0m)oeK>js)$y}82F;(GgzKrtyz6%f-FPHEsnN|RtB~w683{5fY z6o_VDx*cs&m*{FByx`z8ai1E>>oHk?r3=3vs*6vqm6-F#OvB5=L#NoNpitTailT|*e7imy_ zk%e*DYdvs2I<14ISfUz3?NhnHDePTVt6qMT2ORM>2NW#*W- z2`>yCA6DL1#~>;H!1?NHm7AuW#k# z%FK)pvU2qIyf7)4k#$6)MBRg-dS|OyA*Yc~4E4$GE5al+r+`5c|LUYYF_!%GT9vcw zaeSKe!eiQy;<-c_!nJmrfs`0TThVRJS7H~0##p|F$=%D<<^~^Nfn|MAo^$6%(ZeXk zQ{E6U1=cpRtmYUV+LMw+bM~AT5wU4?!`)TPd5o+uq{SLF^q`H#_`t4mmbubcWpL$|GpzSS{8z+)9+N zXP6q9AxkLUeYxHmY6EK&q{p^2ahLb~^oFE?!X+ zS0xB=op>^Gwo#KklScjsD1+_8W?id()_4WYE!NtrPth#k2#?>SGAyyJdEXSF z(6W10E7V0-HJa6ZyCygK=;6*}->#h$@y$;s*&2o9&o}}~lI%MD-A#V{Y50uv_+W_c zv{NtRZ2c_9&RlKF)X7)cd|LvqGebLN%f2gleW}c2Pi!b|VuO%=e&2 zG?8uxIO_LdAX1|8_xA)ELW4G2wX+=gra!e}-SR1{ObM%}i{<6!4=iHO)L__IHa|>iT?qyuo-G%p`-G*U1eeZ8L=4=ltEI_>O45XM>yQFhmzt%} z4$wz`?Td~6)N4L4@p(UU<;;K9d7~$b3RS@V^ zaVvq6X>T9%$x)guC?uxWF%I!khiZ}_9CUXi6+|ua)KRyw!|n}&(&EK})fu>bYhth} z8fCYUU^!)AAm;z*Ekit~%SO8yXp89eTUR=F1^t~awUvQ>GD$u=wCNiUfrz`%vScxQ zhHLn&ALZrvc?$GsONOg!==k*t4Y%|FG@l@v!U^}21G*xe#`B1!yL7e7ko?SaCq4{9 ztrkouV5wP}a`bdi3Xyja+r&C3dF`c@6`W`dM%eeE#vBCa2oOG8z{Dk;a3!GLl@x+! zUk8RT&uEi*iA%)sfQH3U?HkmV6UkfQu(4aLew@k>VtR=A!vPT1|1IJ@Z)nY;QdTNF zYuM5Sw$7*aie5pcu~v`Y0k)CCWAU0-^YorRES5?nO|me#JBCBad|Mk@xdELu5Au&a z6CE>}+um*BhqkmF!n1&u^;P8~UenuKVJyhZGoYvhs>AU^_o4-io#q4lcRnl&2o6N{ z8%+S?0~9^ssg(v(E~X~3d%ME$3%r~d{ZUAR2;i1K9m#C@QpQY)dPLA1<)ukk-ub9> zJ8~5^g%qy}#$*$-7&w;xPhsZvXqQ6)tvggtQHN<*57)wdx zhX?w!mjp8R!Oh-KZ9OOM%7EZ~7Jy6(*|Q+!-@TJMH!xcu>9Gdj9;Wg0uZD_hq}VD9fAdUW&o1% z9cB{X+Uemet-Pf}j^mA?0TJ{XO|A!Q@T4_QF|yQY-UD1`Hi_pJwI^HhLl-gRe%WASfnXK~A8mdusJgMzgv?&BvlfB~*-gE=F&mfpD6QBFHb{v(IN#;ZXnyG@$ML zz|@^gAAOKEUyX{`mi})S`t*V10>+)WOj%Fi62_IBaIj9lmatxQiKLF`#2da?n10yb z>4bah>eiJUNRUlG)_Ap!ismPyV^ZiYS1lWuuxmNaW#X~)FWPcj`qzBtuI=sPyZ5!!$_Oq? z-^+uHjLCcZ!VcA`28f?+DXJil)6+lmllQroZw19s8V)2G;LW0or|Cm2AN>;7I+2=Y zJCex|^2>vNw(t4yVkGPmdW!1lbpqrf-M(N?V=0i<3Vv(R7Qhjf zO9Xgp(J#8EfAzvW<%12u75M)LEYZ(}{?iH&E(1Etk?1@<3H7#7`t;MEN8z&^$oq41_4I;q#`(q8Pd zX65z&Wcd}LJPIKFuxiJpL+^iVQ-A7ym}ZQaQ+oTb`|(ltLxnf}Co8Z2C(Ao4Moh1Q zY-&p%G}50=k|CMvmL!@YU!~Cr=LI~JrM0X~l`TEZ^eQlgRV7^mkmz-XyD7N1&Ned@Vrr zqIwXxjk=%5Y(`OMZ05^sP=AosA#jIQME4W1&ote zEl7V~E;oC0EeS&gB6T#Y1AhOEwzaikCzzoZ-dW)VxfXlF4*&zSFkgi44CLOGq$ciW z@kx{O1)X(RD`ys8%IU;2O9AVoI(BPI(YBoKhD=y z>RBDij^l8@4xY9>iZg%e!UZf69bO90kwuK=q1HYehcmDfMq^3=sJUSw+Tz$=9mLiV z5;WhO8$_3C-Qh&DUR)^*MjKl};36Q_{wj*A^rAC4^K{g9=>g@In>bl+bxdhMT8t1d;dsW z`FA5`bQHRb!C6OX=;(tnJevcE6b-RiwNnGap*4dyIiD2tj-*+l$gEt5CHyJzz=%pQ zUt5d}octDA&v>7tZPqXR-7BQqZoyM8YLbT?WI9q)?u+SnAR-hOo;vR%FFwdkhi()! zzz5;%1EuhIbaEN3ElTpDZq!RXobCA>bxQmdH z@Jk)Y%mgq=TZY*WwN z>z=)Z5x#2}^Ax(u7r`HdcZ3`(Hr9GneISED1xA2$kz9|u-2DJs0sBXl9xe9^;HP~bo!CnL4BR^u}JKxu=V(0pN= zrhX=>a^^wT)^4;j5J1S11VgYbL*5P}1YA1$J7SoAnuM$-#UF-T)^9$44RI@darJ|f@ZP2%p8^{$G;_4BEP7KK8^MFci_Mj^^U}BQ4af@Kkc6WZ@^%VfiF<8YA zdApMnP}@TEYO;D=@?A?zday$! z{UIY6;igP?`mO}c246ba2+92Az4T{DceFa|Po((m7=_>Il=61bp*%j86_^@pqt5V2 zhA2R2L!24M+S$|cW}$rM4xY_v#!ny`&L% z5~viEVVdA<#4JE zjhX}=v)66^&^QslHc5Nk_V{Tcs2tfjuA+{12G+Ucg;F3@DvzAC>Zm*1sC6jKIa15n zOuXkRp12!DHBdre%kn#=yfR!8SWjLCm2zFA4VqY#JTk&Ri#Q_h$aKbXT4ssGGA8KU zU*NwXWGOUSHUz@3A}@P|gap+o#{(fW6+5kS>0d*tUbHR+Yt`y4_o>1xJfL4}Z;n8* z9lET?3cQ4mZR0~2+?b3m<9KHU7hMbt`+XQUy2IQAXQ|faa9%7t<_p$Q;WUzvcv}ix z{Xv9+vP()SS<`xbdG)RSPbX}9%2!};F0449Dl?6(NE_6-xTA)N#%W6)85y5x)ZALX zTWQw(X9?=ev%pNpeo@4{j|!2sEKLSBYCA^A{QsI{ zY!u3(4{>U5Zq`|%Ezn}CiR>1psPDj{+BXjn0HtvknE`~;-#8+llXmDH_ApCqE}f88 zho}w>%>0=`efB4>lkah-q)bWOr%+j%;AX8ZwU=OoH(bhkt0OUQ)@84NL+Dpk(!$n~S@m8=Q*f0w5N%-9$W*pS)`1GuZDno^DRcoybUwOfe^6yti6^}A zs}n1sj4W+vW#YDb;1{Habut@}bXFk!1aIDuqV!&^{8a3GZ}WU0I$OL3j3Av&wYmz z+QlFyR81cuOAhJkMYDiX+9gRAVjmcLVpG5dq$FbFnb}GKU8!86SprMUztJ z;`DLOvXDiJMYEOzw~+f%M`u%=rJ(a_Z={0JqOvU#;`U}Z#xUeiAF-)hyg{MXnmdX3 z+6RdNX|Imv%Sgo{ToENL^r)!d-<*Pf9T#T13p0V0xI2!`lM3-0Va+N6iGF?F>F;onAJRild5u}zWRcp5UE>m<0uzfrueNd6z)0tn( z2-C_k90u9yntzt4kT&>A6P0L=IRWlW>=A)nABvFE$P#HEGdf18Et&ZwZL)B@9E3su z9&m{zwnV8<Gl(21($E%QFqL=hRYRM3$;HDQ22 zIaS2HCzg_sqDjnqWr7v8Cv@T_p!m;w6G7u3dQJ$gBHx zQXHrH*peQbyh;tN)(_**rg3O#l3a@uYN@V73up_cTRqD#=$Zl{`O^v9rxi|n=e}PE zx+c!lmJbapGw9IS!PN9KYUJiPKn0yuJv(_-j168dI(9x$CFz^_M=(Uv(tZ3%ljpv> z8R5ozMfN?Yxq*>dD~`=0&SzwlW$b0g*!?W;AL#QytOmUTZFr4boMDPIjhEZ>Cn`qrLXp$z`SP*v~I}q zU5q|}*fpY1v)ZnGVK_DKhHzBcgy@w6L8sZ!ur{&AECxgRcsV~=Wp4fwAybnh)0@iM zwBDN!+d}{5xLry1d~o+e@TpVmt;d(Z28X^_J<#g1UYSMqb3|Kyyjc?|i*SN21<4p!Kd`<*~vE?Z)W5 zWptoJy9qj2fxN;V>C9CI7TW4yt+IX%J%bL-5Y3$wJGckOol&L3Eb?ZyD`@38 zT_t^0)HYE1!j{>5P>q|3mPOen()yR}#avcw$^BGAIq?djbY z*#uxwl!lmwW#Zi(bf!}(fx$HAEljWXL!*T?oiY?N8CgBGuHig9sg`Zg2q%oT-ZNC* zf)q=$P_eq^%^Ly#t@kb+#boxS%vl_IKa2GM<wYfD^Dxl1n>Eyz=UuN40TFUXOop=R+h0~?bH;bTU57iP5LLTGxCG8>J zeU`J=Nm|0qTn8B=^P-K>tXwXIj8SZA8)tOe-HYdb5J3t9V2Z{0U_Z#r=XeHe?o=IpI#~LQ0lDRr34B4s}qn2-VDP+c~0HyV(Zkc)1OD zLVFxq+nD8x1qYVAuF!qWNJ@)LeW5>;Ms6qA6{KP*)o^}Tyb8#oW5&hVnR>yRco!HRUXuFepXMpxI~q^8UxSu6vN zb@T4NwOWZO3lnb;2RLIXnu1El$?1-K*mc+X#+c ztj0vX<^EmF+Aw}rvz{%lU6jxv8cN|?k|x@tESF%t!%8~8KSYaim$@w1wSbg zfUhi)FH81o!3@c?*^rgmkfrT`K;!wUEvZe6aEj;x;XXC=UEVC8Y6N}8Pnv#)7TZ!H zXg5*uyMVhR{Q#ub9=GM*g!*Ia&`jo0Z@*iReh;F}rN2TGZpYq8PiOfs4K9}6#UyEK z?Zei}zZG@!ulm#X8M?2uT<`T6JxOvzCv|xJLM8Si$9eKE04ygcdFr9~We|FH`jj94 zoa@8mOA&CcGZ6S;s_9mqpSJX!enZSFPru|ZKFzgk4y+xFi?;N6p3m0;Y!JAw5q4Gz z3BL<=(p0fyP9Twn71JM>4kp7YUmI3lrBSQs0~5Fm=r&Jac;VCT^dG1_lfFHJ3&xH$ zD;R5#y6ZJNfU6ZSMGcT3B`=XzaCQGvndkhy)-udMc}?=zR?09? zUeDRC;xIOE2KH2OMsy22NR zKY6``$DCAS$S(aS)a9jrM{|Uw1}Kp)WMi>ovru>Xq}%=wO6Pv7r;O(x7I&c3M`@D^q+?NvJ?{Tgq3(j#{vz1pAaG&Ln_Oal1v)+!Ft7+9yGOscev3({GrHckJICs1|0x%3@KlK;5Ixw5&r);FKrx-0xAgK#fU1%@E<(_&A|kxQT8tvSnvE1S-c zf3HdY5{+p=^2n3RCN@G6mTtdJ6`2$Tt4B%~N+SlK`Rbl_kT|=~jAWj!Jgj%NP)1}_q)V4JJAe)DD@`&jO(VRzHRw8qb zc%v%j>~_uMF&*jNL>0}vbR)eWT()*L|@t(o*s?bi=m{}QI_&AlPs0nN<@@1xZo#n&{ zrj+jF_VE&(p#MGrCzuEorzhXk0a~!FgYya?eJ^xulhYvsyN^!Uz8H{e-Flg{gN0bR z9?%I^bu!WQX>4RO`MgfE0?HmpZ8meS=YLsmX6p}KMEeRWTP}S=J{=}NW^wNVECq`* zII!2nxjl^+U-dQLI$f-vt!M3_tx}AI(dKG4%ssRz+$GnwK4gGug4Ltu^@Jl(ZL#h` zFPt@IRzaO@c)e{@uWEp$f?r2V(1&NYzxP%X`Nk;r1DWdgFOst7uogFcMd zJ3W?nB%h-cW0i_7vcZ0EyCXqeKLnJj(fQf}Y%5GW$K4EoJ;hc~@Bf;Q(h)Z4k>5^! zv5ChvUI+Q<*jlOi*XA#WmLr<;thlLLRQGb=QceZ$0M`J8U8BvS0kcb`p2cN0oTLS( zKA}3}JR6*gh@=ILdci?#0caXm5;#n>KKxZqxnbkGf>o5yk8ZPs5*{ow zJp1vELV_uu#&mD;psRE%b zgK}2N2T6n0@@%LQ2^<)zFwBv8MtKR`isQYDU(*68P`T{s%#7c=Etx$!_B~jf50qjv zfW0`FJFs)4nkp^yoOnF?MG+7-XLbT1l}+k)W%Jo}dIn87!n_R!Jrz(yUL<~Q6tOXf zNOT)`TDHSd{`d(B#QQ*lqa*Kw6gZ#y`vYqRb^IfE(Q<4obB`r~r0(s2zZ;#|vf8-` zeq+uI?|1+m(BiGGhz-k(3r23<0#qHzSowH)O!Y!EGL@WA@5SskQoc_4;6V%&)~Fa5 z7s+U6lb0jLnl;vcY>nDYdvax6O4eK zfh~m}UMQaA`QVCr2M0;S!d9Ia3X2R+@IvP7)PY^gwvBJ9J+hD1n6HdE&jnpDU|0xe z?v6H{HVE5`L}8%*c(pfAA81?8YL`m_#G6n`j;qQ(s)WDna<<{v)*TtWICes7WL_ch zB~`w}CG@0exVE0b;hnu3jupWM1D1UNN=<7r=T(worg$~*I5$TtT>20tO&{G!=Chvb zmMEMy!|3nl(^sjc<%&4ou7~Ah=AECU2GFCtF}&+b$P9o)(J@%-5ZlO*9u7sI3|uEa z6YPKliih3I^>3A)F$S_;g~F0>7p?;de#$8LR8;rbJLHN|YF#bfTrRBUSj#NskT#Ek1r9;M!01cjyt$MIW9Wl?`_uZOuAj+prEIB;pmY?a@wIjV z@~qCgg6J3LnXlrrP#R=87feyEb%P3H0_z&7hdPgT?4dpPKBYw{55w(T@AU6^bC;_%^7CSL$#8P% zdx0zG@N-9Pw)SJL2fhk>uzbm0R>c@?jx!@s_K*O-NEui7ReL@Q<;NfxX18|H-z zAl45P6<*W%ywoTaMII##8cK*dJfe_HXi3IL30-PvzGUX1n8Tc~ISY-p);Z}z^uMCH z%cyd%;P)oyQl39H6Int~d?5j&3R)TPFYG3LO%FVEQYvnMaQSxN z)5Omp`VE}E5F-DNzt;>~=ToROeoB8AvPb+U`Bahlp4#H4RzW9!f=^d!pd=iNwHVpO zsHH^0cn)6(jjMUlR3=EUeiXcg=>>j#ezL5@Tc$DTt-)c&08pbf`_A-wO}?aD=ANKt zQV(&t#UM=fj=U(2dk0X>xV>{4kw@tG+KfHAUxTyX%ykQ4!bIVqAyvaF~OP>*GfsW$dpvwMgt7z zDmA~6?{tsU9|!|Y`~KQ)5CdU##qrOc8GA7%e^&c00A-ziqSKt(nhTE$7)1z73(V|= z5canSmN>F;RW{3K-N|#00VUkh1|~n8kntef&eh-CMSO2#jfptx)d>nmce^N&yP+^vP)?9cW}E&p7NBVi<9It4{y}DUfeE9{~}4A zd@SB(b=c=G-GOC#Im3oi(K?jZ4=Vj8#aqDpI%VdIt-vjoLP~&`WR1rIA0L|QA=<#@ zx}SA7VJ+|DhGB`ZpL3XkdUP^a512znm{c6n>LsKP-|;@@yhh2>p#3?DA>tO1A@Whw z9*5P0mJYv@mY9ZZ&-Y?3j>*kxY1v#$+%J-Wz&ktR#?;%BYylcOmPwAN`;1F3IJ$N`vjO1VMm{&ED1_jWtOo#W3R$89{dQrOL3-nj*XPZLvC8%%M_6Y_U7Nm*5)ZO{3}_DPH}k+|qf$=Dd_m{?blS z((T%nhW|0;9OR_IOQAo=yHityw9zuf+c;c{7s~ToX7_cg?~(y4q@P2h^xlYJ8X=0^ zINczb7WY=(lw|wC(jy?CoNAl$OQ>_t`ureu!j3Uoagn-%G!W2tbGe5+u>)cZiEjxc zGdnFhaezQDuU8Oa^deEKPt$$zc~Z*S zwSRwVcy@e0ukgcOwh3bCOFzI)Rb_1aD;Qn*$6D^+`;h4M<|JF8+~3~WAYYJqH+d-b zyCGo9H?Fg*x%(e?a{TcR-AMzYT*3^Ko!Hx;4D#dF>xcOktjr0v=-h={=ciwQ#3NBI zNS{lRhr^z0PABe6zrg9!dqTtAG^`T>7=A^r3qM?X<&o2YIfCiX^uiuIrNSSD}Yy!A^Kxs*F-~#p2gEI-jZZy z64t!g&HDRQe7JAIL77Ycjdrc<{jIB9#f-2t{ad!O+7(-K3a8hoUS==v24d<)5a{S` z?pe7s?s@24wcPL2`xUysX6}7S_dAu^h!Q=?Lo`(7J?)%{1mJOjr`$OT!AD{_p+`Zr z#VeYSqDDzy0YL$)5EW^=UiPPqp=>7eT`!>NWf%#5@ssg;+`r-ZtgoLsP0zz`Yx!{9 z`g^41+i>l#{v;D_Xp)Nj0dUk=i~$F&UK<~VR}qexv{^WFbne3wt^<6oFgDS8eJb4H zZTM{gCNrCv>tX9xvCn?nTKcIU3MV;b%GNwHWW-=mb_YOPdK&apJf=Luzzp>{B@|KLR4 zG9StyTgsR7`S5aZaIjD;76+?CioBbbREsN%IzbTSt2ijt}PU=h#wT zod+dO0;(y}%$$yDL!U~5K$pd0zM8L>y7}8(MOneRr*%oC-d_UXVxg)Sdw}AXLu9Bd zeAi#%g?s`2pC^l{05QAkSV{;-jkdKw@U>!q^Rm^!Ce zA(Qngt$>gG=5;`VK4X)GfE^#7dXaw$!9zwe;7k?a_bFe$*zZh6CI658rb&O^SV6B+ z7K$>MC>QB8W;0}S!*TYFiLrFSLDa&E0%>cHuh7pSdIv%hI*eus=9by=V_j? z2MujlE2&)ns(Ge3s6;z3>m_JTc3S9x$`(U=aVP<#*vBV^rc4uID7#pBW~Ggie+MFzLZsyAG6xD4dP2wZ>wu|RDEF7I7^CaeyvP%>&{0Bc zk}ktAVjM&zPm-0>M64NPE#0N4~2^rR)26|J&$?3_IbSLduB4TI-c}m_SF5x?ifKoJL{dt>;vH8Ko~pO5;lZsU)5=u2 zhK8U-K!PANR1mRl#MmuwI!IC>deXQ<>ycgq()>G^F9KGHmm)=kfo@%&F0PCp#SbW~ zr%1-=!Yw4FLJj8NUeD%HoIf2&k*tvkh6YhNZ*(YCAb0@jjwq7fpg5>jR|aCj;jeZE z8R3(E^_)+?%XrfX-tr3)-UQBN2o&(e0^R0LVzF2%mTH1vt!|32GS_TbMFtm(esPOO z%gfAtzC>b6kq%?XCF-=W#s7sh#>}IJTA%u4$~MPFr0G}DUNfn(cBMY~QH~cH2s0GV zY_fthgqHTCkLCv(uz?bBp8wFb(?~t(QCvwED@Ym3Bvz<(U|$W+`1ASD|K{5}=^j$Sa z1qKjfI*E!wsgzdsm2?0>w|Aydmd1k&uYxBC(1dzT(%;`-EcDaPxrjY6v&NH(^%u4i zEt@DrAY;_!fh%dai>MrW$`Pz3$yP`e=Gq|np63lhUS&0tb|>8xi&@A_=H-+BWViD8 zPhM*n`vvI#M?apgA$6+zzxV&yi$KHIIPfpX7skc^>Bp1QVAT^9bGij{ncREfpC*TP zc{1X$^UR9{mEn0_lS3GLn6*^wi_ak=tig?!>zY;SiT*(?H~L|`c|A9NiipumQk;v6 z;UV8JIX9oNOQf_o`(Iexf8b};7wrRS?ThAHcck4!+HN&b2Wr7C@Ul#IXoz_#G%s*> zi3@%WRUwhpv)bstJOKK4@_oR^HsRyn*zXDd=#U7r5uGmemr8xz;;~fjl|cSP#^(`M zG;m%M7gXbajp`fs6nc3RH+tEEF!YIlClE$QDf%WbWnAqG5Zu;iD7?sy!*Aq(M8je9 z&rhn^i&47As9y>(+PTs`NU* ztl9?i!{9sW6h^dq!;8&h{6UY?#s;q&pk9eT^gzu7e2C!G1-~qur13HkCK6g@Jbjrj zSG&Xfp;4kTHg{^3r3R_LA^<=GsLi753aRBP{6L=qVt_yp3X{C87AS}fQpJo3eI|@a zSFobOmF928*V;n3(L)MpaD)*)srygtIDj(6$|0)`H<|;D9Z7#ttO@|y!A}*kw8f^| z(ZA8*1xEG~YWnDY>|sLvE!vpfo(zRy>I<&!o}|3Yl6$xIu-_^cSfaTJV`$tc%v|Uw zYNg+M1}DAko+aZ$UVGcL7Gp*|JfpaXBsqV&=PNbiiDt0)31e|bo)Zz^ zS51hU=;Gb9wi980_6DJvtl`mXIFddLK5c9|zhq5IGh9ABL(Is4&g1fCNC$T@G2pZmmr{vn)dZ=nT-N1r6xYtjm(5 zSKUX3FGpMsmu8D}{6Nxc$yM6RT5FuKzl#SlNS206o9m?qWT?caoC$$2m}KLIQieEg z81fZ*O-vy{Lw16AhhwKKh+RNXpU%Dv+4H+e0)cg;WJ<1mx4uo#q49gir5$~CDtYgh z^ZPjXd!hMTI=S%tM#5cv?poMyy2j%IVj|6#IoQJ&NacA zVj97^-==5`$AdX{*D1HunAg6$S+VR(Remf4D_kI)F%*gj^*3UI&_(l8-4VGp= zxUk$VJ@W~++G%4`u~%D}pxQ2N3(lg#4(`?)C8^8E-i#oSM=Dm8G4M|G(L2kN(V!w$7%=crQr& z=r>M&V3#MnYV&Z10`+uqV1B5i^H=C?fj=OXoLV;~gF~fBJQ;Swc7TXfTTL9X&84bf zrruk+ckaXMl3HnMbkjEK+%7;WD3Wno!y9qvWYX)^o7Jl1s^--Wg?KCb2bY8~D!P`SeyoT5eR0{dyXM1?o5L-ioj56?(o-6azs@HVxuz zVHk0Y;5YN$$W&L&?-=^UM87+qO!Ny}qSwPh(VaeB_GP-?qwl7!ZqN#u!Qdkomnfe@x?iS_M8x^^TMqw zRP35ep-b#=;s=}V%Uw{o}m5GiXHQcHRA2%D#sMktas|BbN~3DL8>bdqkf z5S!Hyrp;8;pp0q42_Jp6Twu^TeAOk7Y?t<2cQ6|JcnC*lG%(KY>L3VPQ|yOVj8 zSA<4XE^O~xfEIIjqecwF2u@%#4=q~ZT9BSe8)9+5<_IfAcgN5IkT2im9n?w|=+TMY zvy3;WSDM_n1!uCdoXd0-0m~b706>~}D{ebY5Au-Kr1A0afXnME<$|8g{G3MM@!dTV z76>~vMPAIX8`C5?MldLiDn-rg*mD`Y7YQ2Cpq?o}em3(d`_p>TKav~Yfxk2e?8^?SZpLWfR?4Wq$Q(iVHDnDGx$j8Vsd9ao2k?a8fSB?5YQ z>Mdmkg0GNZKHb`M<#-_PdsrP_pb0sJUg#vU>YbUG4 z7|svdCm{dP$IDwViTJKuH-NV6e)l2+@2(@jsaix z4>O~aVsxh0iTufUt5_N!RmJ-DHI(2960|K8Sxk|EAk_Ipt{WHVZ5F^lt1l42isvFc zxi8FTK%w{vo?g!k3pl989*jy6R(`+9XqY@TUlLMQ@xV z4zb5vno~Z6i#8y?%>~ejJo|{XwXib_F>aP9HqHH(77L3$1c7Fh;9+1vM-nmInZCcpl^_6b18e7nw$b4zS|AH12gW?7(O=QLa=ZsnFtN}qfad^Q@>mnt>hJ&p zjAUQd`yDXNrqq|)gMt<|aX6^eb5FB_<%5)j7Gmbc*U~p~P|}AkDP_(`VJ7YuUcDpK z`y|R**X__jCCE>!&e{3Ld&z#9vJg?inKJ55m{s$mKBSn5mt=SV^)ViZt25?~SUJ z`}k%FROB>8nn~-N()5=m0;ka%ld$wCnUGL386|#mLV(%EM@0EHE({`(GZ;~NT?|ve zICuGrnz>bA#%7`;~8E2z&8AraGEOxsJgdR{YBUg0~$7I)M=q}x@z}MaiW7fe(Q9Wq#%CLCGE&{r zmRZ>mVWu+)_`X#gwpZzN_hhi z*XYO`ub_B4((<+wj$Ii#$(wvA^D~wuCshGX*rnhl6(zsojDoQV3;V%D=_ugiHbGEs z*3{aXVR@C~OjpN(t*>1VlJQKD+ey`&(xq1_L)MwG9D3LsxUL4tcxIRafu{9i-p&&T zoEeslysb51-PBTxVZBM^`eP&PdN`>O>Vk+?o&xMC^*|15W!!V8PU$jJcujlu{q_`C z5yWSPY3T&Kl2vgI8UqUjogHQ^3Z9A)rj0X$dT>HLtlKh`(M-9amPU*@*z3$7 z3t#9h+C@z(nKmtYAy61g88Edu6QL;OwOqIWVe}^Ut5{t0r2p$QwvuYk-R_U0h%ow{ z+HF3y>FDRKfF2?4s?R0rNWXQOvR%FnwcH!MebUg+Cd;%kp>A6ZX#pAf_9UnuNSiG| z!{U8jn$KYRefT?*z74p%HK_in3~9-ba|_ac9qA{Mfxv(_KTFx#Oq(u z`>KYrTjG$c2>;|Vs?l>7)&0;A&+XlfI?de&#nlqajNT#9Qbc zVTL$mVeGqob2nv;s*dy*c+iplD|lEPUs7@%lW()6U^BTgh`@$Nh3eFrVIvu+cI7*0 zlP9z|l!guAxSeSP7WdXRX$op9rxak)6@>JTR6FBW#}@*^o3MM+Uvx=wlSq31ic1o9 z$ykOL|KgH_BCK>buHjebtPv-+Q!N~E_W)%@`m~`95B~YCWYeI8vaJf?nefVI%*Kt+ ze!vsT+&uT>>pbZcP4Rmv_I3wS|GIH}o^~f?5V6nKcV>8mv}USg|3T(m^8DOfL&GMU z4WjEAK5t9!2TE`_uF8jzyycj5McF-gevzJUQH{*d+(Ym=naOkv^_fBg@r@ zTj%gmCIJMkbIE?mWH>BdQGh=k1nIziwdzFOVMT3TrEV#uhI9{_V`A@Du!4a4b&vXO(VjB&@E2hxM$U}4gC74KH{?L@ z#{?gs?myf5;XWqwHXRpyNV&)84BM#KzQVId8Ju44#LDSNc0|1n_vmnnjMXjA3+ip) z%wLTMx??)Oj*su+TUCEfz} zTV_)s_oy+!Obov(+Yi|t#Kyhp#~U{S`S-Z#keT8G;QkYSBV%?UmJ$oecsk-=KGw#u zT-rEuj!!St_vee+!mCg7g%;C0pl*;mN79TcJRmb3Z`7-hk~z?9{Rti5~1bAC|S0~iD%kqm2(3WWzaqlc)US*Bfv z06X~3msZ~>AbHp>O(&!2YNW9qSX+~&82%eVvs79-1_t zBBenqyb8p1YWXXFsP>|`BUtKo0|;H67gl91u!qDO&ZH?foUBSERdc--POI3TAGaG( zp$uUp!*>vD1za2*IS5I*QG|${s20bIS!2(RznQfHi6uURf}#8pD}@eyMM2OZ`MC=8 zkYzmcRx#vcux-em2COoN&MmX$_|Q^k_ki>c=v$7(|F_?ToZntK$zDiPzskVnbTaAW znnTJ%4r*;RH4iGD0*9paBwLa<67BfC0@`I%bpR5y|oGt26n%W*hwK~Go zieTR)>8|x|eofTt*3t84p)F|7N8Q?_)7CT_XanIhywOIhs!SFOCDgV4MrV(R$_`o*KMy`kNYJovsYi6w+s0vnDs$@ZJ`< z1k+YXf~BNsCSU~cQ!WX&N&qWt&zva%{I}e6r0=BcP<-(lTsy&lT@4mlxCCGvJKcIy zF>}sSsvmS{QlyGQe6~8ie0QUYUUwvy9_B%u%KpKnmC`DjnVP-0n`Whbx!+p=lNXq}31abCWK1UMsd9MrRQVP-+ z1X715-wtO3bB=?YPwmR3-=IW6W7(1F^G1ffn&@tuJ|2u$Hl}uHra9%sPXphlDM~zd zRRNrU)TY@elZL4fqIZ-4a3VPz5n(~w8_%T(a~6!(A!V{d%H-;nS2j$?L#d=G3n}m0nttg_S-g0IqZ}FbXd%jE#xew>$pZXe0 zG4|-bEJMD=NABV3|G$}v z;bL~)zC3d@VfLAo`3@|}v*h&MxFVIs8xPdi0D;7sT4+;X33JYj97P=V_R~lgb_pLs zH8r4ve3PBzDGnfXNaGCIG5R-F0YwlAx*)&X#E0*<%bo}nQzGKTc5 zM+&t|J76Z}jy>r`Fn03L4iBr}3-p~O=G>JxU|Oik%$B{}6US`Wd9EZ_P;QUrpjJS#8-JMwdo3?_9X`)fC5S;qQ9$taINSAUngUUA+#jk-HN_Mu=V<0>ds6c?RP*MeRqmv~YGI=ed=C z?IK9ggJ?is}NjrXt0rl(7CL@yN#vF zm+9yS%8RhYH;rz>in-!FKP8 z(7>V}-1sCjcEVqgij1R6? zXvu+q8XT?=y(Vv8*(TBl>&-s*6kZu=Rfk}0sBM8Vl-SRTeH|!Gt9`oaVV-|CBdG29 z(%=Wg!89eJ2)w1k5n?58&{)soQuLWBox zS(S9UET0hOwS?MP4>8gkEi1A=gN*;f1Ie)~g0eg!Ogf7b=0;fFDQv!F2z~iwOK;D7 za#S1x-+(E`sD~`J+S3mL?DmVfbJ?Cd%>aYRemeZ*#_e>A9(P-QDcVz;wLPf*@q9{b z##KDsmdrk1%a}%nVPR$emclW#S^x3=Wh6m}kg>i3rxtyUZW?fVaAUt4sLHZHxi{N$gZ!TbQr;!%XUHdwted zk={)EDPTj;!P1L(RL#gG^$T7?BrB>W45;cFL(?wWvqr)#1(pTw9-0&sy2Jpg{ z1reD|B{o$!fX`P>I%0a!C+~G%GmjYP9<4rB(S(vS@VNxezr$kmM_x9aQcd$U5roet z(sJV%mk5$}`8~X?Uu1L$j%I+FXjn@tK4p*mUyLmXp|B^QuRtHyOKTZm`S&+X{fB<} zDMaR&nSo%j;Z`=8x57yfsMA#H%&h@^=?A7*CK4S&K^;(*pi`U;$cW_;3VQ92{FDc0 z1{;#q7W%0~m46IZ>|=p$MF7G~k`GeNe)J3RyMYBcW*1BSsJ(-gs<2jI)MnI27*^`% zEK&iq{h>oPu-$u%hX>5NSN624SMJ1OK@EK0QUp0bxJVxoQA)wt!k7WAM!5j7J{Y zwKl1YdTTxtu01SXh_r_(hQa9MbH}50sdd_knM4`q7|=nXcC90n9kbjEPU2Twf%mNs z$d$=(tp$KBaJlgSEKU&`tAG@(PQ+)P?qG@+Qo!*?f*c3f2Ojl$!X@c2qp8c!J^kR+ zbmj{#YVwbBEnrxE9S~;ptimss#C$N>?11%uhYcZFC9vf%p~rY>I^)NL;#N%EPCDtu zr1SB;6#YY!MMrY~cQ>pFYD-wFi828R zS%)C<8d&PpXFncl(=2@?P(#%9Qsx`ga*6TtU#X!YS!5kvisV&HXi%otHqHmBtGuG! z=$(yL_SNdD2ey*sxT)b_qCN56qa#};W6+h>e5l%$@;R-QF^sDMSKuWt3)89d`t_R0 zvq%hHaUe)`r{-??W6t7s7&3*Cv^`6ylOSLjj|a7+XXbG}1|Qtu97(q1XR#%1xDuC)kJrF*k|?% z4CXKy+3(Mw-~DW|_lLl6wZ2~MaP6_?*9>t4q?aW~4HW#42iL0T3PUsAEP9=anrD|J zpQLugVH*eHDT&cdDsK+(&uWqgf)Gge-FDA9XJ?yw-XTdzDkZ=_SHt10V+ z{HaN=$jX#yZwN6vOjkwwMa#?!bGEB_$-(+=ZC9eD%~B>jX0|~X9OZMIEB%)WuCn60 z2GT7}hY#~`3LD{WfM5W^=VC@XA(a~XxTS@j$-tbw0Z@Lx2Dzc{$g2;@C|>j6b{z%; zOIl*Eg4Xg+?3uk033y$SeYKXl^Abq)-1HGLY2C=*|H1N1C*^+H_XXd-ny*|88=oI% z{CF3Q5~i&abpZ*s}<7p(xqH3qb0fn)`?Ta+r9QW)L>odb~>TH`=U5bxda zBFP+One4r15-3|&YG)tgnWdYJ!qQKswwiC>brA@7wYY3RW!R~FQE4rA&}pw`6Nf>}U&_V!8C;^PPCGfPJYadwIYv$FcPp$O{W5a#vfn|_|Uw(0O* zn7c|eusXR~IZ=?;CWTd!gZ?V6*!>YYb{5}WA7v`~zESfjWz0t4Pd4sHZh)qs+g{DX z8+Fx3LfX0WGD&j~t$vHeUePZ`dpf=FV(bQd7PmYwuANAx=f5a*-XlV7aT^UotW2d9 z>y#C3!(?>5jFw)tZXMTi#17!%f-UQdh|@b07kA~ip7@Q3rs6h3RRYOXfhVtG1&%Uo zAdFGjlH{9Q({7|VUn%6>D-#_^1c9MQYg4-AJTL}ZD{;ua^nzveGN=L1D zt?m)68hcRyg5P#RO>gx4vl$i;oeF;Jlx&;3(xPG%Q9w^R<@QnPjZqqeZfs<+7;BDQA1^7XVCQB6?_88WJFc6Cyh*~n~b~m*YR_uz~g(1*Ve0bDu1J@L+SJc zqkxvmF7#j)WNujETs!GtZu`B{Aam)9yB$v#$cB&Bs?e2e*UNY?t69Vd4x~zrq)=k>W4dJSD=5hCXsQ^I^1s;b6ZJM?`7fF`Q)aDC|Ij!_q z1OskPBdjAL`C_M9?$?&)e7aqrpOI{7@+}ZHLJh8u| z9Eo7iy0oxe72+Jp;pTs(aBk|`2@eZN8(KEDCh$b}<-$%6B z#(dmh4)WWR@rPD<>d9|rCp^QckN{dbKoo=AL9@>EnjfDWpW>A{j;y4$dzdK!UjkuF z=0~cI+ZABqUfIbiVgtXBEhWE)+E8vx^I4c)`}jeO`NDpCY4FUg7OC^aQ_4#SAjM>4 zsy@OUZ7Uq4$cKO_*vca#^<`DLDdA|7gl1$)G5?A8$g`&H*=s~EkdY4OsAb!x8Wf%&KM_gZ&bx) z*qzCRs~FJr$-&EphNnOagJ8Jr`HQ}X+mpQCA<@j^dUqLhB75gE^Ue-!w9az`(g%r} zQvjBHorSFwqC(3A#mUbMZJaC^qrlX|0F6T#c(N1;W=bGM$nYdI1iudPhvBl#R`XW& zR%qh)?&1LZU3Hv0?a7+$z168OZayDH40JIK?oCE&cmO=q9!cn69vBi_|&0J=W3582U`zD{JZ@2Yh}Y7GlNWZ9VH`SA2CK@=c8q&yTcIrV+sAj0(*_!lg6{{lGY?90$J-SpBR%V~ zedA0OBN~89lEc;7$XJOMH060_a!|BFtESH`y%kViF1A9*3nwF`kv<(b%Ve;SL%c`_ zgQ7~Jw%wdxlxmxgC!VI!nrHMW##r?r9K?FtuBATU^=>1Z#yzkOH7iP3m>Y^>nxZ!E zc4$ZQ*@{H%NdFX!#k7MS&o}r)O^}g_d9~x8tMgPwN2OsUzXRDI7{O-v2YdsZUQ zpwyi3@11zv(hU~SPn7m~AujkVvZU1S9j)_N-{w@0cJqTwC!5w6LGaW zsY?)maTdw9g_Fl$sQ|z0JT6{%FHMQVo`y-V&mN*W?aVVWB>^gs9mrG?x1X!6MD1$62O6)Vdhf`OcaSTMKG-8dpZ zUN$AJf(+s!zyts++AZe~nXX}SyZC8l`{N# zb+Z86K{2T5w-YV0e!-HQB=JzI_xq=@N*I1{FC&h)Gk`Gv8#Sj8LiOa+*R6Yy2IzoL zwQCAk7ZM0LFE}&`Vq?%~FrA?!79GIBV>=HEaPZ_|c*^!ZOVxIL9(UjYyP^>(vr|8% zqpq9g@Pv@Fn2lEC zn}snQffk<1p5TmE%mH0uVj0PJ#RFVc;8p-IwA<_yR(12@FQ$QZ9M=u66i|Aj$a}VP$K%2ev^Ndw|Td3mXmZzq*3N zhbGL=HYCKzyvx=5&B>*cS6m^lBaqEYA3=V!If3XrO_uE<(RK%?x7$$=L(~Au1Yojs z$_vNj#z;>nWeF3$wY8~}ev#?(TI!42`{{I>+fJi90%~fP`0$YrZSgGJkk=GCjTQh4 zSjNyQyBCqB5*=AAqm0GZ4FUsV%87xjkVuc8HdLULy-M$%z!id`Vi%7ysEPz953ro& zbiCK?g&^R%jzC@@Npb1rmls3QAm15z4-W$@t?Brp4YagfU4rezH{?oaK9*=WG6muI_rT-Hu9UCrOL8OHzFAvWK_*j9A!F1C>ZMD5lV3BH z5l&rR3t2AHgU0woJfO|Kw25t7P5K4dQVhfgH4x?|9ykujmJV6*87cG)%_W-b4S{6< z%BTjma^&X_U=5=5d~DU)gYK*45-sPbNCca998qFNL5CEEn1Bfuk5|Z79Z>IPl^MsE zkb=WocIxC(Qt`>34|nHax6$*9z4>o8?xA2uocS=hEn+|u4%8G(D}dtA6i<-00xy$z zS&Z2OMEFELOBpYvXp+&E$NQf8`eOgTVYA#1-scDUFd@)@EpN>uHUOSc@$$p#*O9;w z;K4(Y=iBTa1o1y`fIvLJ#*P*(^JnC}9YnA8@eA6(GC^aEZ>L(6-F^@@W|)*9rTTWM zzO*GbM2UfTmAd{?g{X>1C$#s4c^#z?;R4pi^?EphX74E78`HycB^=xULmq9Z*Qh;^ zWvh#|Rx1b{1e=sghtBT}d{{!ou{?XJ>P1AvZ?4eQCQ6Qcz$FFX>C({zASJ;@ENKd+ z3i~aQ+pLjZ2mN1$TJ@(^t8`4#>?4jgp^rEZ`(b#0-$9H*aD+In6n)Xr=lz-~9CvSK zw1V#0LstWNx(fM5W@Kx4d5fd~{1I(|o+<9YwdnXO^Q(-k3iQE6E?X@_4ue6umXcmg zxL8jt<{EOz=-Z(*=+;npwM_^YL(!>#v?D=}^N|}VDSGAn3X$Cz_ci4x|4JBxnrV33-rB`DBYFfZ4YNb{LhVivead2i|=b4zKtImWDo zRO%H6KA^eKKJ@EjFvn8yFv5FlJ0!LDaXw^qYh!tF?G`>|&b8K4)2F#m z9Thtr+JGi7M`B?OF6wfZN_#Rvn$?1OjGXWqe?Tgt^-@Zgb-7)o8{AOSYwN<6SOYTb zTL+>vQ*HEMnNR3;O|PwqxwL(;F9tc>Ne)1|%kv~9Xi`yrJmVpt^3buOsQkVe0>xL6Xb6m_ex-ltIQ86f3EyR|(2SO3Tr z=*vlFb&Br#<($<5dt~J8Fy~!lm+PT!9%^)T006|k1lz%k7Ibh?*dT^7nP8jI zzM?{TmqNpMXz#C*DEC&V7!H=z_hO{D3r)XBA#DhHx4iJ#WX%D-LL|Lh?*O^ z_L;(CyuDc{VQ_2*vLN>R{X^G+A~R<;xocEOSFcgY6|tl(gdL*erO5k(otZMY64eVyH_c)4Q<9)HbOwK2p5HtI*fHWRV}1&7L)(=9rxsR?``t)&-`vqAhxA25>Q zCm$>jI;h6c%`sKsHdl-rS(OD9(4-`k1q|SvS7iZv>HJ|?5Uk+DFs2Pn->b@^fgEo` zS)i^2(>k@LpYq{vSQfZNPDgY0(YX1mI^ie`J>?x3zt?dU3wx{4F-Ov0rt`VjT89x2 zPc$qIbt_WD4P2U3U}T34qwhUSUAwhmu&|oN-o=*6q+Bsy)W>tB1GP+`r31HM0QO=F zNh+1)E?wlK>E=+<7|bzf7zdIn>Obvu5mU7%Mte)J(g}v@S$+mO#*?s8I@oP^o^2nN zeIHuO`;f4fhWCl@&`azFJp&!;`$)Z)J|4DJycS8S7zTwXz6NXWXW%yw`u$jpEvqC(pp!TS2uG{pU+K-v9~XhG>0zd<2UxLvkC| zSO=CkIL$OEABz#;BkEPu0nf-e&H6y`1oCHF=D1uRMTESJWoOb}sPZ$>3hw~UV~pXG zy!h-?3-EDjBfqe_0AJW$&3kcR)`KI^Ql&WyH@UMWU?#Wc)y=D^%Z|!HTFXZY~ehP)Xble?tCoJ;iCMYryUmI5ou2v>a@^(W?07>a3SSmIC@WOU5Reb=;iuxU$S3a2C*nmUnHq>{1 z=?P!kIo))vX1d#vwOVn|IVL4i=hH~6fkN(cttq>!9mk^!Xk~O7cSBZCuk7MCDD8@Y zbpc;)mwE@~Q2chf&U6{eAma>-a*c~-*03^_dVU6n>}puB1+*3FEdOfh%!$@|t2n6! z7oflBVqO4W0uBkS;Q^Z{b%$+`=c*{;IRTsu?*uFn8T4|URHG{_#GcVrsY$rtZ98VG zDoa9n1gvET-ZH7z$Vq;b5VyJpS{PAsOYZ1H-DpD;TzdncSt04V?o|xp@VF4!xcEiP zG;1!4!O}^JfY;2=OQ+R*9sdEMPeXjeu{9qq-TlGD6j zAuHbM%e4ZCv5av!kd(mszmsRA<$cVy`J3hqdcqnhgwhwubyKF)@B%F7%jj@3a9HUR z*&5mjsUm7rB1_RtaKEOBo@C8>AwMGN-i~I$?X4!zODABwMTO+n&?wH3yN}cvzRIu984yCj0v|FgCBy||ksZWwR}eXTGF~kFZ|okp5e9sVa^UVdAEN-MydtrN#*Id zQptzM1(%?JDCs*Zxy(@+PP*?vYf!S1!5YZPwrKN<@dTw2)T|KCRBGyOO{iR)8a;EV zyPQJHqVR&G&;#72Imy9Usq5-^UKoW`o~5&Y+T$Si8E3Ue(k%i}9Yvpr~cXTV8JSRE{$kM<->Lg@v>Q^h#LXcH`<$MHB{Lujm0pWr|U65`kMdB-oicXLTz|pg|Dqkbj#L->bR_AiX{v z8^E@p5%zi+eKIICa-EJsFF~bIiqX}N_K@vzP8HwrO=cYVSpT#KN59E%XqwiI5#zPl8PdYDTm*EvS zCDMcJ_NR%-cWJz2 z!};xKlGRl$S{RtZpBi*(xm?Ll0}le zr9t*^hJ2P~0z(G#x45R}-Nzz8rrOpMr=@1W*58-Fy)i^p*am`8{626!U(R%WW~}$9 z;aG+G(P9>~I&~j%gp7=(E2sja#M4MqYEczvIDOT%j0U%~&;reYTQ&|sRgiJS+l3%T zkop?)gDL%i7@BxojlBRnC7bEqJccC#|1?I*dC4!wp*Uk~nGN;LaGPtX2!puQVsKaj zoM6jbpMcZMWQ2{713?ZTc{GM|+(HT@gkpZ|uFdD25bC8vB!n3reAOauTAMGbIjO<; z_;S#X}XKrv^fR_u;EAyMp(?ije{S{hsQnK4xyY7z-PVdDyS*~tXb z=k7Vl$U?MHFDlO;%9?aWjg8nkSX#pVG>I6_POLMg7%9<3bjJd}NsmyTCILR`H!gqk zsM^spql>uLhS$48o-{tibhl{rS?sDobQPzlpd-^wZg!1NP~fZNiWzL$n8qa}eLHs9 za!fa}<8nQP=qhEf^E61bG|wPb3CuFW=%^bKezYH9Sfz5dRCDI4fm6Bj+|rd0EH2~A zhbc#xWLvX8Z5ooRZxm~e$-UzQZzo3~Y9W$P?HGc@%JC@Eb$N77Gj`uR_5dAtJT^QQq6q!qVt;Tv^2YYP`lnRsYJZi z(I#66Z7$slg{NKxyFxpO`7K6nTtR_`a+p)G^%%j0eV&%Bzi4T6J{Zk~1w1~G`7(}W z^_m5fabv$eS5wVa@Be5ZT`gYNA3M3H6F4)Dk|LhnEhq*exVRYxC`*xS~spe;4xMI6Us?j+}|06d4(a~W|p zs&+UN@06;0jS~>GjU4CFSM(j%Koy}C^jpf<5tz?+(6DYr8$YRv$6+ciw1zpKlXj}} zqDUkWaAyF=GB}hroUE{^+-@buymmW^!|uclXqBVESk?oX&F(BKtj@Dji%|(HA}UJE zY}5~<0xx8ywTls#7x#^WY3TrnS06jXKtRH%s(?Yr0wE)IqM6lPL7dGW5M6#$tsLu( z)7({y=+1>}dAkoNy7gj=3PU(!=J3^p?t)gsu#JTNAdZdTD2?P1gzS~=CR8P1aHzzmFxW4O7j zf)>i2>`%IM$Vng~1~bC7{1k>jX1vKKV$<|Njp6W6LAlryr4NF<8Kc`uzoD18kQw5k z`{+vvzen=-veIw#CEeeS=`#nVp}bpc-RyN zip?WE<93mP5cK02AgZ^rf~SGd6!bq=yq!>VkkWX}adIh24koI7o~6u8g_(f{(;|d! zE2LUMr65pIiu*C4X*78m%*It4I_(2V=k8EEhHDFt6i6$7LxD^*D;I3$M_rIk4R8iT zh4;LmJW_sWac+~TolOBk`aL+~aC_p|Cv~m=9+VTBrPlVmzItl{k6Hg4md9Zo>)M@5B_zry0$Q+E3`O9@wxz2v+;=c|h zD~ozq{6Gb)OPw+0rwQgo4{3;(bI^H~a7h~sI#gQD9$f5)?x`!BH^YcKTLW0mZtR)N z2?c7SonEpc*n|tSqg!BtfE}_8hI3_C8{X9E2GcVw1w{AsVgP+}LgAw!dG6rG?C8z} zg^^UxNebKR>Pkq@IF^myra=?OxCo2Z#`O79(Ry?EewOLgT2>Mqga;PFouTsM>8?F( z(6F~zN;PJKrR!;R_lZ~_xs>uBsjF5ic)eU5wJ((12;bxsViaVY{T@w*a|&&HU}u;W zIhJp~6W$KvTkTQ8un%dKei&wD-;GsX%m=KV!K@0WF_Y09>Rr`%d5PF1QFt3y;?SS9 z8p2FEYX3ruy)5V@S_-3^BoxKl+0T5p<_u{G3o@Qb5zjr#b;O>LnykMN20K}<9=<2* zX@0pa<2PxJXenwW?aHBO!?6>JyqtLzh7IsYDjCfbQzc6|PvVr6AK$3r?OvnUBqzv) zg5g8^d?)aw_JKzXxm|r*rs`ippMe!3b6o3m+_{N7D^k;nw#=X`)!)#;v<*)FhVgzg zMHLHvCgq|6AE&~a$5yQKDasywU#eRtQ~0So=xRihz}Bn@Q1S;)pn`DU+&B#iXed|a zxxC6_j!?wfxXHc6Q*$%M!mvh97{YSua}v5@)y;nKj+e%wsWyvmX~K+$`^$1C!q|a! zF|Xd1P%l?vgvVZTJR!N-^d(iXB^27+%NL;Cpb{$S97=PH>FF!pf zLJw$GB{!K2uu6L5l~7`?MHPi~4#GuXBp!iXFnl6EB7N{E!T~)kId4 zPDb?l?NAl<4ldK$BWe~umCUH9A}|UA_bVeyR$Z0CKy9G z(lL=e$@w+A5_dfmnyC6mA6}rcE zuq8VwHSVr)5DHYQ^rndiu9I)T0n|`8|7{k-rYr7O`%vvo+6`RKm{8RohbZxiTa>9*1Lj(PDRYZ;UaZt&xGe;O$Fi)(VE)IjD3{! zz)s$w0r9AKaE79(2BX)r+m6zJHEM^sfS>?X?C=$w;qK0n1?4%4qPjDRGqqN$e5evX z5XF@mM&r7#mfEJNh&s)@=k9_z?FcpNf~IKcpf;}(QeW2H>AFl&OQtMw0VhyV_*s1H zK>^1&EiR$(s2rX~aVQQ|6&p|>olMyYnL`E3Msn_gm8tP4ry3!~@&U>TT_b;rCM-I0 zK7!^tM^#XofcikfI1Ud-6Cxp!oROL^p@lKXcONo)6o!Hu;lV{Tj(1|R0rsM#wk}6; zZ)oDV4xDZ)yaW3lEi%IvX@M6UXgEOv^_G3uK9u4b zJcUJE1M{mRVhjk@A{UXWQ!P|m?+j$Gsdaz-8dki39KJvs2o2j3b!E_>YG+8 z1vs%K4Q-ymKm&81JgrV1;nb)+mbF4nsRHnTO|m0Lqh0Z{X(pZggD{-#z>!sV^>O4G zX9eNd<$|v3qHl>|Rn#BaOtd>gSOtV-&1RpDT+vp}kUj%FOq<-GZd0khy82a_-iFDc zd$_?HXo>0==16ho>{=MGDCbRb)^1C742N;!u7~6q;X3tMRdF;oOruRT`5Wn2HwcQJ z{*OGKPK7T60y?EC3=+Gu(YK=vp+S+wP*}F?-A!yAyya5ka0DSFC>{FuQtRIkr!C`; zxdn=@%OB9P0$qN!2_)3jd?(ZZtvN3R*19`(x~SD@k4~^6!8Cz*Z$svz)j?}3aNj8h z?H%P9b`D1?#PPO}5j6qGO*L};?Ey^v%;wsYzbn73?MLrK{lG`v>?uVgD_F-7wZ^TV zoaS+5A4R`HUjRc!5)yRxt>6zS-ad78?UM1lseU@gwRDQt2$rW-%;!}UP)q!V*P-Ki z*Dz|}Rua#`IfLYH@beuRZZ01Dw#%W@uuHNC&yn@D5?}fS3H(vdTQULiG?hdTCcYEe zeh@E@<{?2MHcPdzWOix(1Z0SW_M=vUsPsE9J+$`-w)b$PNhI9bj2Z2!qU16$ipr@? z?UJeZv6MeB{xh$c_6kKG1XFn`#Li7}(Qz7>$zH^v@#WpqzSKcH`syOcWRU~%!7$|e&o2obGHIG={sFVH=T_4Tz79Ej!4%*=)%*RW@y2C{glLuz+I1<*69 zVecZM=x&AiamFG~IRJ0(VMHQKW4lNvF~S<5=o3Pi=ah@l ztqSvwi2mXG^`57Iio6OD_>l?^{QgR+6||{3zyypx3(i5ll4SJ)Xi3>Eo6+=m^4%^| zO>pi)PNZ(M>ZCqZx~@Z?PE~|_i`#PO+=2}K?%lIy9zo+6x0#-ay8Z)=&{r1U4u0K> zdBlkLX$*kap7>jg(-^w$fX|~sKSn6LmBQFhi1(4gV;L?#3oZEw1gM9@arp}VUF0wL zK8wRDPkwc$&~DLM&86{#&cSmO;k~JN4cLTKfED7f1sHTOi-gB|^)svS@3PBQKSN?T z--+KYXfNFMCvAdaiI2)x2alhE=7v8q_w z4-HmWY*+uTL@VNcnp{rLYz?S}r;-uS;!!8+ggYRV20*0N z-ZjnQ==S18Bv4!OHPYaly7eR^fOSZnzXtD-vpdKG+uV5>j%R2LAF$@ej+z6^4TO&&1{RW= zoIu~ocfc#p%L_C*$5~bg@rEXSw1n>9S+7>zcrbIJFxIgXy|>loMa>9)@PtgiKc4D9&QG z27j(Re|A0Yd%*UR6s9+z4|`jeRE_1BQBFUVX0+}KND$@Fz?(--$8iuqQ7G+rqogn! zl$4eY9%C_HaWub@0H#xO4@03)S*;_=Loe${XP7`59@z6}fJ{i0pRX&Au3D8^Fz>+0xp|n(s0|_5 z@^P^d$}b>O;kCa|8^JpCf*+hH|044|$*azbL<-l+3?Dvr?AY>)*~I*Sv&3m#cK03N zhl9(KURZEdEesA#LL*^zh&s!9*6NEcqnCSoGV;d->Vj{#n>$&cUK9(xYDj!HBCF%eU|9{0-$gQf z$Ob)U7zA(n4T!!X5xtbILvTVl(+7HB16B~RmN{+;dIah}IDTCeaIWN8ObnJgoz#o! zp-Wn=vDhtly)Xm#5)pN?Ni;2$K3 zq4BfA|4=z}qgZ zRjX-U>JwhwmclA(I{p)AWq1k);WrY|SK*DjQxUotXvjn9m>&pTo*AL08F(YRWQ(ce^REdL|?y+rgQcrz>h zg@41(RXv7Rw(Wz*h%ifr7;oV&$+oK}pl=8Bi$tLePb10ZF(f3sfxL(C&dd}$RvNnS z_h7!?9ShsqCOVnAdvjauf?luVcDXcmVsJ660~XK}sx^2dS7IYH88I2nCh2M7_;xGZ zH`?tolRA)dU5sTIIHs}SnBv54WgJ7r%GA+%0)P=uP&o*BXZJcg=LzXTSJu&fZU4{) zE-n(?9^Dvm0;+?d?vAta)Qj1AsNFc#XMYNqQy|w#G`zAb&gSq$J;|+ADSSePq~}Q+ zeo!wLAyyGk(A}6s7pP=SSyv;84wC6}CzGgCj^IJaaVv3b0)DkCo-X*Ph1utb4+v@G>nLj#6#lu~XIUG%EaZF5Ptwx!-~R?g;HK~D2Rpxcl? z$~Kcc(m_@&>rXcO64s#GBeR+I|E_>rN7vF!r$2f+hhZ66TiCgzDUi#VXs0?8-V9g7 zX^a<;=wucP&NnUe47Lrv@}7c*_K>^%zEIy&ToUB&lE8@4N1X{3B}&yV$njga5Cg8DhPMUxw!Fyhc5;Db8BhDgf&^Tz1{*7Be(MzKTb+__w5d(rY3MHBE!zQ#ucpEA=+ z0G`)LvW0_!4(9`WLHPcRXwtbWPp6q}@3EQ$r2P zgw>+&$Qa+ZE_bys`GILYtU$n`gnV$)x_+~v?`jj3crlv&dCT~3ln-1lvWfCB3Z_Nzjg4ut zVUYA<-$o$IuVU9LchQ#c(m;cEb9f*gKfye?a2Q7U6fR$*sESniHPqU=Xg6D3U7a0XJG>6F?(A0C zY#p6A<+w=K{`HTcp@a8{BuoMOJ|u8>zAnF(#jHwQw*Yf-eDj*i0Vw2pk74oGF?fxL z`3c#*Ifh`vH{T48`MGU4L+mUJKFZDOu%X`&fA1<>V49B2R6`E~D(u}Xp)l7XieH=7 zlo2R?e>&ou5(>wOh_cHvjTQ~Th;K?LY=t6dj&mqmOz z?1NgYfG%Z5+h~i^5*B8hzHWwLc_@}_rxq!6$MF4jxMmD?(H9t=zz1k*R%u6l!I-1? zb~0wN2p_@ljsZ3dSt0QOe6a@~XhZy-!{7`)<}yEohGK^){XQVBNwB&))GY9IbQy7# zfWsu}D(ya%yr8#kYg9<_n3`&_M(z!j66=v*g3bkazC+r1yp&u=l+M{}DzE*G$R2~0 z9DSDkAGDu9w;W8P3vxL3J)x2?j&(H!i^D>Js;t)O+-Rvin!L~!Az<%K=e3k}gi#AwkbkoNiz@~i}zc(NIF?w$>vxfVC(=m1{vw?VQEaKN?dF=eN zY}@A{DeLzVb(&%E4FKC`anTF-V|a{f=~$oZMCP@m%wpC_nZ=!sp|tkRUA!qtc9)?z zE%kMRu0fITriA*6p?;r0ak3S~cvC{*_Uq$&4WPGDH-4Z zraMvm8Orw&KL?sRlUUwrgo5`})mdxk zG!D;$y4%~d?M6q~+2#4g1k~pT(!A0Ea(V0KPK{?0SAF4?Tbq#)1aUAOX7XZeLx~)T zT`pJ7&yRhHANiz6I-Lqr)C{HZ?>Iw$*`Bak5NTNba2y!Q(c-zfJio7_ z@@_#CG|?~(UqfRIU*vKsHTO^yQuL0eWy+B*S@D5$V$lb=qVwb8ar};|!B0MO!_Cy$ z$cQW%D)zv~%Fhy~mFpgK8*_^)r>vuyR=kFMz)s{^Xga-F|8WvOxJ z8uMhi@8KLSQix1~&wHyBW0-n9WUnoo7iss1Iodf%dP$YJO)vgC zNwP!Nccoo=@?7% zV&4?m)ymPjU=66VYep_trd(1pWGrFi0@P# zxGvsjY##h#w1%hSGGSnSJprU-XL-Z^ClP=QozWRn;J zu306&(AjXu!RUrTyD0_1*jP<-Ax*=ff*uxKyS2N{5dXIhw?XrQl8&NHw=)SE+6L-Y z8zhuqkD$%Zt7x;9{c?- z(#~fu;lQv-3|z`quvB-fQn}G2n_O;_SX4nLNw_(88f+3i>3^8Kl)^f1)94;c8G(7^ zJ{tCU%E-jjvJo29@ysBkBjXlPC3KFq;(VaF!W9fHci*Kf8JzZ+7a zQdMwMA!y2~l&lc3ky0kB=L}3ZP(@?=Mpto&v)rtTFbXSVGgio(Fp&qQ2HQm)n?N_V zDzX97TD`4MsVcM_IguB6436vhuqNK9vZhH3ayDI@+hn;o36}nJHQpvCZDpp`z?-On zX!Q3p%2%)wbn|TZ7DLB`n2VD(3~VjC7xycPhb8+}<}p4lhh?gN!$zr*A%ulVgm;9> zJ_5?iOe4P8+r`4}x(5A$5tZ?4aO-`E{q?6P&H41ng~hWtbt}|AzUzb8OC=2!m`iXa z0--&WZoR);Cw4IV)L}nf29DVn#?CoA9DD?T$`_9+uI0-ct_zTKUKk4pn95aQQc!#& zdk#vE1|1Gu!FCkM{=Bk&GO7}%?s^ER(S^se6mCD)mh91IVOgms^bT%VyDNlH4y zPa!G4jx+OVTGqY+9`B`?fZ$^hGdm}tVkkZ*(1-Dm3VQT5=3E&J?~<-Q)O`rL5T`o6 zA%?qq43aj~gWjOjLVQ_>d#xJyB}7~l=flxq?n<2f1B=ByZQwwVoiWPmwh%+hf8 zOrb8D-3Gb|Ev-8Sw1mqOrogrF-ASn%>#{X=jU+_u1X3Htrfp)Vnq}x94xgJE3%0PhHqDJ`Q?J!6LW@I?=n(;xOe%XIUcmIz$KLok;yIuI zagzf>C$%<*)3L>U)Kj08xq*%r+!9)RyLRk}IBRiM>g{niBP*N*XrK*^{P&?;>cOKP z>$nn%^7Tqw!3Vh_z)Ea4M)~wYm&k3yZZe+r)f(xr_&Any9B0-LGk*5ceZh^3kfW>d z8r=S;^LrvkM`=4vcah7V%4mMdw@8O4`Yc|)UB>GT1TE)FOvmsROIdnbqB4b?Lkzqo z$ov)Ox^j=|11#WG70) zFFr;3YV20_>Fzz(FHI*FRIwee;o=6YVx5}eW(~*$?}Euf>Oe)yeQ>#f6Ek9X{t!oh z#J}}sn5NKC{BBulY4^;dKi9!+LUr>|-lb&fije0#jJ9SqbEglv-XhAu$?avxON zk@+c|4z%oH-i(oacOr{0h9UIx3c3RZ+d<*Y`STF|oXXhcsW{Ti_0w61 z%}=NS70H_*#Zkl@L}L>+$>c;hZ5B7wg}ZiRIW98MIr*VNS<}$3NqQXKZNJdi#9%!+ z5!OLzUA>{*lT`eq2Zke?a{2^!DJ*HDmwm& zTn=UF@LN0*T8H%Y9mUAH7&?~Fs0+H>VBVpwbp-X!jHzshux9$|wnAg9JBn!Z*b&sP z`hJtX<05IHP`6gKmMr%j& zj%3|%x-yGo2l^lT!E2~Cg3ue#liNG)Mq~!a@5v~Q+OO(-hmI0Sgg0X`p++$L!)J%5 z`qTt;k{f4Cp;p2tF;?G%F&nw_-T;Wfiqrw;JcM<56g8sO)-6Rmrii#N@ZAKb)2hRD z9Yg(~HU(Z}FpMJ*gGVyBgMx6E#ANzpvOlKBeKOq!3{83Rna@s#A#x1G2D77T&Ob)! zm<8^v;2K0l{3?3QqqZPnKj7*_Mw8hxgY`uox~dv@$px1?D&&hrg3=EpK+YBX(uSEs zya=zB2Scb?Dx_J!?$Qq=KtpV;I|?Fw-&`mDbrxw?-FFnl*mAY!c$6Zn)J=!?`&g2z zN%fA?#w3i+;F|8(9V%Nnk~QsbMBsPRvC@K;fgIt9@?gCL_+CVyJf$Bf584Oks9|?( zlc2P@3u9N<3`B&Y@CUDJQYmL($mC@UF&xpHkfX=MaFg-1YlRu}AwddHNhz#$+7XbE zz8#5nt;@GCWMUdJ`VPPpdXiB16Iu3=D!LD%;LyZ~JC$);D$WNHhi)aqri(*n`IjkX zKZJ~P$MWysldiym&o+4G@&3%zi@QNqA@N*WoQtYKY_;*qZTi3_y}B2PgrR`gc6Rd7 z*gaB(7d6l$5NDc5^SGEUVVAN&>162YBX-)pyf?KFk;7-1waI-V#iy6lfG9=~b)x6B zV_6qW@+Ld3MWc?`T>%>e+d=WX8ASHs%pYBERVueV4LvM3zTBBAzkx9i!-_|J_o3?x z#>#Y>ICEK+=>qUe+>Eb6Jd>v5m$3GZlvPTJ{L=C72d5U{4+vB-Blr}~VvsqfcHfvw`-s77K`3hT5?g#fy+rRq^C3wM>m~pGiTDTj;0o6vEN^|0F;l*h8ICajhkQ_9Z_T2Mw z)yAEQyigQEGt8F7MzDME?11hr)aU29HQ_O|2}T=twFCr(78KWTTPX6wDFE%bFt#2) zwqPV?m->!^`&t&{a|HBSG1tO_n#hgSK^lZ;QWs~Vo%ObgiD7(?W4v5UQUV|BWGcIm zL*G*FTtSuKdDup9$DIdwrlU2MUR3CM8pCNb% zpD(zTaDKnwHgu&_{18X;YVZg=10y-|XPcfun{UOWYU5_GC{6o@SK-v~nuX19tEFyq z(wBGi<&I$(ef5DXGzlkNg}SMu_QT0!^mN^dnf&=AwAUtulYhGGIw-mI4*TgV;lwak4XZa%E#?#v1d-3MmJ zWvAjN#HNDdH;*LMAWuB`x`wZhfi?);MRtNUNvO{hGN zUCa5GKJAj>{9fB}-SGx|fdJ`*`89t;aohsT|(GY8WH%WH5HnwPUE<;QWOIunh zLyhVbkP9&yHi9<0WWweJo$%&121XBKG%A{5<#p+b?$T$7(NM|ybd+v_(QOf$xoH_2 z(O|MZv6ms^b?=?Ng~bq4qlt7cqb_1fvjO$J4~7_x2G$OX3>#hDRo6r@#AqlOop#Gm zWZW4*7h*K*4|T4LZLEUm>9bjB2qB|2FNJ7kD6ZOfmG&V#bB zaWKQK;%+N)Ax1;($-k1}GDO;}1s7s;%xHAU47+KX9hRS^QfMlVgJH1Auw&~JRa(nu zXzGpI%JOhXR}@zyLa=CjLNx^92|{i`2yL3vht|1L%>O_&otG z6kq^NQWO72fG-L#fG(+t-xc5@0h|s&HG?*(iT^FY#R51j0zl9wHSxa$xI_T>`PSDc zHSs$FTq?i-I;AFlTY%L944_qN;3YT`ZtiUJIvU25Wg2ymqUnBlCiUuxpN3viVH18A6<_-_JSEdYjw^>s{5{DuH) z1b}$1uVrfD*9Evn00h_9Gd1yF1-MoK3~kgec(@RS_Adf_Nq_-#O-=lo0M`jHfVQcL z|17}u0t}#UYT{P~xIuscG)_(YCjq`Jz=k>ph5VxcHwv(!<^kXj0^B6P06M59eno(r z1z1QH)bim%J0qzjs2*&NmhYJz#8v*VV zU_Rrf@ZmxPydc0=1vs2>JMrN{1UxUmT>>1&xSjcMAp(9az}*5I%D7$la3KPICBWAN zXkc6&A1*||F9rCz0H0&ru6(!<0qX>~M}R{Zw;LZWM8Gcu_=W%nGww5dxDWw97vNq2 z<}q$6A1*||a{~O200%K{8Xqo1z*+&i1vrp#yYt~f1pG{Z`vf?EaeMILLInI&fNu&g zmvPhia3KPo72sO}?9aG8`EVfuo)O^N0?c9D3_e_lfS(9(zX1C&ZZAGuh=8XBctC)9 z#?9ozg$Q^`fbR&fFXQ&+!-WWVQh@IY@L9&q;=_dqctU{h2{4;+`|#mH1UxRlg979j z$L-2#+Zll%AwL%6`-0GumzG;EEw7%!1U)9uLjwI!phrX~gb8|7pdSdtqiks%!%pj1 zo5BP=BG3;7vOT|#iBbp?^sqob5{Mps+ZdeIR$zq*>Jg|%AZ{48bG>P8@KBhb9|`oZ zK-}_>PHbmWn4ljD^oT(AJ#My1Xz?p zn4s?q^kaeON%RL2LYSZj1$tZ{9Bu%}PNaq~LEjVT34u!M66w+!1wr2x=t+TiCc>YR z2w{T0BhXUIT(6a(@TR~boKhoM_pfEw-6zHb{aWT!GCkbJK?i1)|0+sfYq)U5C z2E@#3i~k4+G#C!UTOopkD}N z`+Q#zD1-^RN1$~A(QA(HGYS;K1btngUkZdhZUFsOpb#eLYXbdBAnxY(`};$fpt}Y7 zwLo7Hh&$)f+BEI<2GzuO3G}=`w+Zx;Kp{*@Ulr&Dfq29KUQ~fXn4mia`i(&J!KdYr zPs<;#FhO?+^jm>$5$I)63Sok77wAQSc<#Xt=akdRd_B1>#AN zwA;LmFhMs9^ol?{A(D1btbc zKM8b=Ks?8kjzgHB8w7e)AlrY=YX{P9FFL{mT`$m|1-e?4aAN>KAxzM90=*{CRRUp? zH9#Ru(3b@Ii$GTj#E)~O;}9n3T7mv5knIQJ1|ZwVoQ@GD=o*1u7w8I6`lmo4OwbyE z-Vg|mPtbtZ6VDJP=xTxfCeUR9;UX}ALYSbd1p2!`-0Q3(WO#-!L01a&4}rL+Jgq(D z*wXLA1QiA96X+5}@E(YC9Kr-$A<#bs;`aBnyNV%%3A$XMHwC&#AT00$8o~r!CeT{~ zaj$$@XWY^{@1`(8s|9*npbG_hPn1HKpi2dMN1zJ?;++=hID`qhM4*2ObiP11ZVFHc z6Lhga{}$*xfj$%{gbBJxpmzm2SD=ps3Sol2DA0cdI!B<71qxw;E)?iJfeHc@QY=#l z6Lf(Eu!03H=fj0q+KU8uSAeq^m*&HT2>7A^{}Et0;|B5JLIhkWz!-bf|c>;VWz<}as1UOd!=cEF_g$Vdifb#?x&|UR`0Ot!Zpu6gQ0WJ_=KzG%90$eD- zfbOdQ2=GM#26R`wE5Jnp4Ct=?gk$kui`S6YamkQ9txN1IJ zh=8{RSS`SS?y9#0xJ-a$OpLyraEik#C&1+bpkr_7uKK3{R|tUqx}m$OPk^ET1G=mJ zA;6Ua4Ct=Rav6Ww5>$2z(_+Zf$L-S5hkQ3Hdu?l(Str_fpMcjd~%E8C;S%9Z=u z3yk-Wk6`A7R=N+y$;EsYkeSvb)eu|!LVv)x;Y@ZYIm45hRHo$v+<|Z1xHQ*1g?1&Bz z>8vy+V8#VI3Lx$>yW=ICtZ-yH2{f4+hedwlm~!(Y%3f93{wFCV!b4L``p zmsPIZPaz-Q;NnMzcxy2qpLg+NLj2MF(idHPb%;NzUwrqcq+jdecMj=K?w7u7N>0DW zhxo<);_F=eb|HRAzxYNMzh{W=>=)nV;`a*i%N6qN*z4l$Z5jA?cx77$+1++x<;pps z|1|EDQ@RrZ9pIvQ8_31lPr-RTp4-{zHTG-gxiynx{hd}*D58wUALRz4?^DjSGlsjvNM`fxiY7pfiDGzYqQtF zwMUCcw;e^#c|MnY#u6Tqz;#9k1bV)l4GuRtQO>2&O{BLpI=WO&kIzpvx<3o}`pP_3 zQJ5hAIX$Cho!V$d|Lx#Scr+TNeF zbRctV15=Yv!~1dGIJxnJ%w%rKf=P4wso_ z>3$ygRA0F?{+al+^b96nD&u8ol+zDrZ@fA*$c1m0zMRoX2fm=4qwAG_w5+Vm=U4Vw z!>tMV9bLI7`WbPHj6aK_%k3A`E?&;p6CK&cRWDav^+xB8K!8|1iFyN<)PYT^WFO{hx=-%H`>LSpNrzrs`sM!2>Z*9j;4`#EQ)@l9~v?jMXvf~ zzPt@zu>5Zca&Z*;!#9|uEm|9j8_L_a(C~{wd8xF zc=G*P@f}4y(9_8;GCHn!XdnCS=@eZ2>4DDSm94D*{`SK6zp`U3-Pq7B;Iq?nZIO)i zwg}w@)jpUhJ%6%`E!|atKTJ1F?b#NI!)a^3@2kB z={Y{MMF;unh5U0%4fktc_>c105w(zBM>N;>x48k(N3X**#zv@eCH2!2EZw5G9pZ1r3+<6R+49{z@Z;FZ zx!CjPfxev!t%mz;z#Ub&42$t3yvz*EWzh1W{TlOzUuDHmz1t1fj?sI6Pq)|Meiir& zImdLCblb6x?px5~drmXDzbQAuZ11LcfA#C8_|#BAFV|h2hF_eZ-->l}(r=CKvOnnb zrkzXUZ{{pZm+zNuj!UQh-x^V1tr%h4E}U)YRwmN5U^4+TYKb1SKj?lwov&9}!O|T$ z#0XMv&x!9+z2?N{5AyBd>(zL%;b(<*=6qHoPafNHm`@&lDW5EquWPlXJ1ywRV=Iqz zdhy8ECgVrO{|J2a<;$+IbT=g0zb$%;`LsnBglvLb^;~24yUXmK^~*md0wH!RST8VvD0E`EJ|?(5m>;vY}&uOpHP-jNqqqIHxCkMF+A z%KyuLc$pOJ_S9}KB=Nh<@WehJU^v{!ZbO^i2zumF4a={DO3u{;A(t z`I{mYt0}shshb-0j6akNHdz;IvYy{W4Pog$zq`I=bjJj`v{#;1;-ilusiULY?9UJN zC;kTF4hVee`L3n^*&w6Kep4U+O8urj{#ooLv(}=^ia#>^3+^}Tk&nI;%H?tS9>d+6 zz;)1`0q0KwQIE?$Y`E_vaP5)iS?%C^!1X%Z^$C7A!Ncdv=i9yTsL}g+LVqlaWbiMG zcMaV#)W7a=!#|P8za!Gbq@!J>MVZlqJpHmK3_mYHzu5-%=JvE`E;$A7m#&-A9*_U^|SBQa|YWiP7s!;9Dc)N%j3V z&%Kh~&OU4SDG7YL8RmZ47#*o>Fqr{gd^1vst80xX9Xi5e~HJB}NoAgs*?`6{EKz z(T>eH))2{r-A-amCMzwmPha<1i8<@Yq$>rj{XB6&<>n# zTWqQS<^N-EO5+Rr2{Z!w$(ec@r#!#2?-{<-Pv|d0SDIbfsS&sH^UB%dyB)qief1aT zz-brWw@>5yM*q|17u^n*^q&R)kj)S2bqjo1`+?DIQ*M+Klw0$xP7P0;PSAWiHGF9J zt3&(mU%4>)HtV^NenkFJ@`WamzWjY3S-Q0$AI>Xp7bj7kFkkNZ*l^i^J60i|f3J)0 zZ|A-%I&u-T$ta=oR-)+nT}aIqogG5CAt#X*wU*N`a$*(asyj0LexV%b4`?3W&wRbg zV#8gT#F;(NNj)&rz3+0kRps`Ac1<%UC|n0vV}D>DQwf<9sF_OkfKZ<7;DPe_EK_vC zjybU2<N&fSbp;edv3hrVHk{{~;;pX@s1%tj_GFw~vqX!#+`n@6kiWGW7d}=vM)F6G* zV54;dm1xQS$&a@5-%jYQrSV*)Uy6&6*=RLbXf6y}|p|F_T{^?YjB)^N2I zC0sswUJQzN2-D5bUWM%q|3ia|uN~2it{0TrH8;_4hXowQ^D|0v?ep()xXTme%t!B7 z0|CE&f2o^nbiWtq(!N0tuwmf<-+%iY?w&+HXo=4jzgo=lYr)qcLI$BcI~)DlM0wh+ zMcO$W`||jF*6w2XI}-Q~qu*g>gSTSXSxfVk!mgHX$3(i;=rz`(RocJRj5Xh$-Mbn7 zosL+~@+{{Z`-9b1`~tV3!972^_cZ!1Cer1jbBN4GSK6PiqM9CG+{^IaPxMRp zc}&i5(#Lbem%m{j!(SchN&83Yv2!lK9@pn^D-yU4m?bphQQP3($mfjS;&KC0&n<~_ z&?nXsUjOvg8}6OZ&*@kCoXR;T{x#;uvn%IBzt z9?;>u;WlX(Pdf0l3fH@GXBS!ecT)C(^3-NaBmR%n6T6Ld9z3CbeS3JmWgCr7&e7HU z0qziQ*MxrRaAzj!*B(D9xonU6m`OXAWnHrbKK3p(`uhiafb)Zs#K(^4dm(}6W8Ddc zzh*OEuO*e|u8N-?${fyJMGuy$;PGqQ4FB6ue)0h-3)Q81U%$THry0IE%pZ@!`r}+o z)U4#beX?g7?)M40oi=~%G%G&&EKR^YU(1$T`b$E3>JKm$_8H~Tm%r$6N&k3je4F^% z8jrwVtAWSoR~g;v1V7uOUl{*?Y=5ABO7zb${IrzkC&%IM6WC!RoxS(vUVE9R7*9@zjC?-XuNl5RQ7+dHxHS@D8GTlNobL7cW_53$9Laj z_&I^k9B2P6xog95W#2F!U)F8-UnJMf5eJYu*LQwCIjz%gpi zc+Zc%M-5j@w9_(dQ76G=+{cJN*jMb61-(*u+|niWyZrL&+3$T0m(<&B(ful~+&|8H zp}xN`{D%p?wA+58_9irEz^yafRRKr;^g$%s zk;G+xX}HA+-14&sTMqD?(B4IdOZusn+dN=7-Jwp*1HSQBM)$2im*XuQvK(*CqJxvC zG{0>8^(NwD%vM&Zlj`H_FY@M}VO!g#roy};u#zcJiVN!(%vQrb77v<_@dEE zt|NEYYGwy4w*7s-SnF^S}bl@)J|?$}UIboCnjWc#*7PZQskwClQFHe73h z{u1ZEUJ^eNI$Y=ve=__}!ni~I-l6``7JnuT{DB{@8~&-l59$dR;3x+N4o|oH4a2ph z3`lutHOH*4CW{^XU)jGK{;?!p;|m!g|D;>klJ;#?VvzRv_5H)r@0X}|8*cwn!Qy*E zy?s4$ZyA1Fq8=^m*G@ruT=s3l{UL#CkM1N{jR3w~Gw&Gg^9lRD8DG^VusJ?Y<3KY6 z2ESBvPe1>jrCSo{b3Ys)P7pn=*Wo$?t{!$JJOWT0&3Nbe(D=U5dpn_bo8tFWjwaiW z*3_Kn2aO*Yerce~eQ4nEdik$)xMu^7>uNSGQpfuIyFNC07boPYC4R)l!T63KPaa=4 z=(D2uK|i|Cm>hQD!1v>2z*iVPO0@IR_*l^8#@ur#Qu^odxuJ&tR?6N}4%@jA1@v(z z*#`Ks%?-bERKmAK|3iEmuG!iEUpLI~KTXhYvwe?kN%~$+$})z(DnY*m7pgIXmgqeD zb8g5c*p*#dTe>-kbgj4*hY4D_5X(OpuDu@i`SlIAbfXjeYBBq}MfG8}7&d)6FK?M@ zOP5O2tKHT~+Tn%{<6d@@;r?Xoa`S+TSsvnoTx3QY?)?P4wy2x9Hr%`u3gFu-iL%Z|A!4MsH%d5u}_i zi-)UUEVF%+%S`N-MFo^&tjo7?drQ|6$`PH!pfBfI7yp+K&vE~W&@nx(XQI(LJm9cD zs&hmBXD1o15ct2O^7d7@3y4*}eU)@$GXJj0hF_7O+nLxe?CYQ1!Em!91M*ziU8~H2 zc-Jaip+ow3p~*TRzJ2pkEM0QmxinrU_|oXRp@Drpv%45RDL*YZH0K%Oab0zWOZqc9 z=znku&F9~>tKmxfrIu9Qwkp0#3KId2Ae1rRUS)e2{%e6B(cKJsdfhJmXCc0`a$S3r zWA*VDmY_+jFK1!8(K|cfA&1eD&~P4Cwx{8ee(8<~b8A;0U%oDfdp*#@=N9nK(<#m{ zI**5V%y;DQXphcG;2QTbT*?0ByhvlefIh#vnT9LbkI|7N?c<9s{{E0(^lb)xc^dY% z^nD?oe&-&ti|749f6dJ@+<$`HVjV>OpFDQol<4JhhD++rJpJbDwR^*C!+kHZjAb8b zBPJ9%Zuwfjoig=?evp*F1CDZram(?=<8u2Oy@QfC=tZx` zJ+A0*<)J-jhd#o5+fbXZ&et{9=>0p;WBXo5Tpo%RPkD**^a&E;`%%{cmaZYPgw!X0 zU*Qhc{Cx$N`c!g{?>orwFNb{UF|b18b9}`zT+Y4sBFm71G z`0{2CH{8rn-v0YveR&%l?w~~et>@cFKF@wbM2 z=@&kNgt!eN^v}W(MrXf(qrQOJ%h`)S&*An-;$WyaSdiDukw$NJ61Sp+3-xulM-ugI zR{w>iubn^r^RHWAbd&in*Zg$(Aw>Fe<{hr&7uz5ET^B~e*_PUIEuZ=j+}nF$@ay%mFHf%B@GlMW^sye`hM$G; zXe zM_-d1+H#w`6Jh?@TQK~^iFt5SJWKM`l$e0}`9%JF!~Z;4?z7Zfjn-(`E`YX!Z(KF; z^=-Jo(p?hL(ay2)3jHJKtzL&)lE5v8ISqFX-HJhO8ZIJ(cw|7cXN%|v9Qg0kpB6nKlrSxP zc?*{s{mRhpIM-qJ%F$p%;8)jb!?h;Mp?=wk%`qiEapp3^ZIz(6F#0KTUPuSH&$sS! z!zJ~{a+tTCPhKwb4tIQ@hy63=-&tbfxde?{TL106!stF3%1ODr)063 zas#lLUBU0uc%|Wze$8fgj;%SmhV^RZekHFz#yWc4Yb>2BHu`Z+F~0siF5ZtD>+j$8 zxXd+1XSYQC+wl1epQFb$Tx+;b(i@(i1&4bgL9gANzip?T=qeKEUT1WZe)aqS=d*eo zZeidj$EDe!K|Q_f^+xY!K@Y(GiO-cDScGxOzga=0r~p3j+E9WLZM zzaO9LTzpc_1{$yP8;R?7xTGB;zq)Hk&*!?^tXxYYUw)i_wE1FFygD>r&@)}P8~&0+ zyX4*YmtPW^CCG2xorZrjfp5bWTQ9(#k7aimE@{VgXj;_4*-_BX-42(Oi#FK_P;vD4 zIJxlkD}2r9o}b9SJ$j%0p?lHVJ-6Br%?)JsdDdKTm4tKdrZ#em*wg1lN zU-u28_i!Tryw*WEU{TW>0Z+H=e+++bpi4j6YR|5~*KUW~Bj7NOxB1>%8vptnZdPPK z>e~+PUw}U#{`Q9LTlY=Ne|n<49X9Wm8^P-jU*7z;4F6W3Uk`ucZ$Ov}x0NZ+hx`ME zJ0;+_enh(w?UvXd;OX{$*YHVsaQpmqs>0)n-!t4Dfe*BoH1Fu7!u7b^gN8db;4m-c z1}vw@eK~s^?)!;ywz~Z@t%>p9_v^wBjBa(HYaS*~ugk?BlAxE5FITRpwHn-{uitt#`lZA@+Yj9f9_eMn;cKu6XU7Rzt7=53i)$C^Oso8e6+Y! z&c2@-y_pFd_owIFZ%?o8XNH>->dk%he;~bpMb@r}aka%`Y>Z-^Jw) z`N?Q&w-f2S$-~(vzWxorHhOKLoZR<-oi(TyEYom)f33q^k*vS*se{X2Uamde#utq4 z3xO{6+c}~Ob2i9H?l*=TpP<`Ly~>Kf)bwmie9G ze>B7jV&?>p)jW27{0p_;d^?aj--+jZU5hZga(;9P$(7S2KT+;HF4km%{Nm6o0pIu+!|xyL9QyS}8D8fWt)`ye-ESCvcHlSk zDD3O??cuV&8Sb(~Iok1oD3+r=vGLW@E&ko`hb8cx(VK*KLO_Ea@B4@04oT)O*;@{` zP|3c}^=%xk=x_~5dKx~Ao^OX&fDWhW{|MH|z#G zuei+IBgGAopeT94_PiK)??*{0~BV zlb>%ne%|Hbp}l%GH~eu4d~5uw@U3icBOmZ}TN?iKM0<7E{JdkJ`$4)hhA-LUT(3Hs z4C$mT<@uZ2%5a}F&l>CaRB$-|+pjnH-(8;)-}4Fao`1bAzJ8GB_mawWE92M2a0GV5 z$iX4hm%Fao%Kfe@AN_W1(JQQ98+DhbTQ|yZ{p?}$!(fyHGtfCm*W-H~e%KHrtowc9 zBg%7b{ku`kOudN9Aut; z&lIEoR3cqteAfp2DDG;wM-p<~l2{k>^3pifa1R8&MOte1<;+gA_$xQ_?Qm@6A@PwF zEZHISPvB4D`jOzL?a5iX()bm9jud=7GP5myzkcoT7U|KB4*PQ&KWn(#Liwmqv0wmA z%HA31?Q6Kw`~?0JOiwVXHz&v6g2O$Npx0*m;drl3Sa)rxH+p*~%9po(p4V!RyQl9! zCo-O2#r-T@Ht>B(<(p@_jdX9G4GVlWelH1v=H;?`e@j=L$gh=t1G*ovZihdxstyc( zwY75%e|tat^M)_#j~u*yqoL2IaG<68OuuyNltAp_=}dG)FCRSz8Q!O_TxpW+Tgz_@6CpHr zz-JHNIK1aWZoc8a9Li6742~7_1CE*=*XwYFfTMko6T`X8=5dWj7`@qv^0wN1ruB3b z*Vn82NW&%f%eT6FDg<=-czkw&;X7iB;CNj+FFFk4s%cn{@A`t_w@#Pv%iQ_6W$~m9 z#`m5^!=D=Hb6v^y$u5k4z5)H*Qp2AZ+LiN6**9(RKLb3-d-pQKpA+~O6&Up8&7ENJ zXD0G*h(}3pH*jL-(s@4jG#frSFX%X}G%xYE%t;%EYy1?PFK4&Iy^(0&X4}`&j1Lut zg8KZsPPY8*$#Dz&4=};WtyiBuhZ~xpo40v8ccKKjDLcg|H70QFwm-C;$LQAQQ)Axn z=ehitKmE3}8@Z#x*Q?LrlJeML<8cS?f7pO-o6-G2pv!p&90kq~;OS;hGu#o0@^Wri+32VAtJ-~r%SvW*Dcu@NcTb`pwzzpt3%-}Y^ewVITv5rf5d%I=c;(lE!?sg zDSW<}8;ssR6Zy8<4RNh#jvxn_FB|Uj0SCQomM?0(f1sClIBj|X*5m~f+ngozIhDGbEdLpa{5h_A|A?3ej&?K*b=LtrE_1Wd`!rm)!yO;! z(O=mZ>f`BUZ!vnu1RVGygQOG7o^!&z#07`DFZ5H=)A^0O9Vf`2%EroT3m>;YA`E%N z6J}d3@Huy@%F*yO!;K$Y!ugx}@DWcEK02Nv^?!7HrnLx)m}VvB{^Grzonby%B6V)2LAQi zFY|!mo=^0%=J-3HZw=_n(f3`$mFyYn#rv6ayItqgZnt5#oAKi1uK1v(J0{O>ck}U`?7}&|GO~0bG+^o;}*twF>WFKD=wjzhu()RU1?s)^4+cSQNNCLeCU0| zaN7pHEKLrfMuz08|N&$(?dZtSOoo?h0)_k{c?r)U87 z_k{e_yZBy*Px?tZU=Pw9`i=e^@Ci>df_=V)x2;^?N${}=-*;x>CZ2O&uixkXW%y6> zGkW>TJ6vy&U)(3?{Co>E0xU4E>jKP?kcXGAhW{A-mcWO@(V&M0Me1=q4wv*V543Ni z?meTITtCwKxl_!ZUiU`g>fSec$#s?H=!;}mGt_c0scK`i?guMB3 z6jSw9f`I2bBTiGBV09ImwgjQb8RB`%Nk0BS1;cgYUSY-V&%4E*4ENm|nO!plv;;nw%x`S`Ui zeqNvx9mJq7e|B@rr#r;cj>f*foW1b4wGQ`5es7P}~1bVO!PYT5j`8GP73InY6 zzrcKU)eE?8hcj!z;S%33@chjTvwSOtSjN=DeJkT;4SWdXF_KaCeL1ruH?Ev{hb!?H z>&~Z_%IW#s<8USZtW-gK`O2y-zxsq+b=o~wxJB=;iGv)~}%;49Pw~|&n^R9LAWm&@~`Q0%9 zzZ)Iy!bE+VqhCqx&7I$j)-1_$Uyac{A(Vsqd|qIrFK^>`!`+jhyUfPFW$|Y)961H% z%bTe+d~#jW->b+D<>_`iTvC5_$n+1lbOUU>SM9V}fo zwhY+Ljq%42e`A>EL)}h>ixc$yy-&7o+KEN4(tSX=oejTR7{BQ!{JQLd7W(&HdwBYV zI>Wye>dAR2{5V!mJTZrWz}33=!mftbVg}wxKJ9y9+?Y|B; zGLe6~-6h?gnC1n#g;_>7x&JMn*#8#t-^XyK{Y+oyxn8`UomFtS*F!yM&phRuG31-i z8NCYvj(Q`gxqvI1Z8-WM`H$mCTa?=%-^Pu^_545L-UK|(s_Yv-%&>zJr~)qF2quXPslLCVv{{Y@eM4;koC2i|81t%5QW#d4;(g?{!=()V}FEaxg!J zWi>NSi_Bx5Jx`D0N*YIH@tUx1Ux$dE*m2vJo&n+g)rp_pC6f+U>+7G-`hx0X<#^@= zwu1%R$EyhM4CA-k$KACxyd1iBvQYbN2?_95Q(qQ$9i8j@#FoBpVs)R#Cqo4=I}cBfL_Nu$OP^GBO91^ zjENuXJI&RzysnoGXQ(&G($=-MJF$twJ?4bV!8gV+n{(kNQ!ttzJ&pO}O#Q|*5hY0@4H4{=w|$>^{8_gKi1%I9>jKA zh8GLq>3pvUuhGr-@TaIbbkKyh1HaN|(lK~G$M3iQsOycofO)4odOPL)jZQwd-ihx8 z!m14ow6s0_U*>T8IN`d(VX~(iChoW_d^ePqp3e+k%zWFQhE`$LXnhTrFz))xK7KD< zz6S(-22_?qBtO-q%zxhGFP;xM8zV-(8Rv}%?*PZ|$omI)JrCx|*ov$j>MN}Gh+SB* z%=><@6LMkRcM{Y@tg~-Pys>XEfA(IMfA`k#oE?#W_f}eHyL&4i9lU!htdXHKd?@%v z2Nst6LyHtPDApQUchu>| z{lK#*T^;-dgAVdO_|-Hge@DO1;oS2-1^)iFeutVysJdRnZe_lE&NU(DffM2JQW~~i z4Bp24-%I)6y7+2d*TS6@(?0sQF^?)CaB+Nx$HZYF2{PQC+Z`3&2BQzhi)&0jq3d_y zcGh>0;kD7PL*(xP!5=g@uETz_#-A1LU_JKyE!YKFD8nUF|A&QV*9Tz!2Q^2pljwLG z?qq#IytwdY82h~EsI|U-}b$oHbT|Iq{9?csN zo?A}(dp|HMHvK^4hpcIE1Kd`VzwXveAd_gH~j5`_y73O36E6E#lc!#gXQgYfTq@Qd4g7@Tf5@a8 z>&4~dXkg{Vj3){YGOv2Q-oz{Tr<`~Td~eR(&NTb4ga5<&I-LGF#q~EupPhtf=fby| zYGnH1$j>?4WG5b4zcnjG{0jCVlAgpbn17r}ANV0y53DY)LE)Y2@aSbrZg-}h#D2;8 zPIu#{(KB~II^N-jnaBSfqrN}Fj39qn*-qYw@a{6{kn)uNQQJ50D98K0!|UdE3~?dT zq<7#k<{f2tP~Q`^`8OiGMGmhI##z<*935tTT2AZW(6II2+V56`cev4)qhH$oLBVx> zMm_jJJgrCb)Z-lALq-qg$G5e6GX8N`c&rsC^#3_iJiyoRTk7nF{;@LEj1K)J&BqB{Qug?FRjVgA85wyHiQp5}P3cX&BI z2bzO^%haca-!QM;@UVY_A&o?Qh{!9#`)-ZyDp2a@OgI|AF;9 z?C^?wFOfb&R&8J8k7L_s;uqd|MlXyj*Hbry%VwsXMqglk?s+vl4_aMs`-QjC)d%+w zt9hfs3(CL3pE%y5jlNUqm$rXUa6dho7yUEqan~EmuwMw{dT_gTTt6thKz%Q=K6{QG z@(uT|SfOcm!@>*F7k`QMU2f8e`Z`D-Ot6i-&)4cE1?+v1#U5z-Oqd<1M^4 zcD#p3I!A@)nGeuDrMDgw{=)ib@dm=;eo-HO&$BvzUT2^%wEe+fc9F z`WO8d^MdlPUwA?JH@cnr;{WD&gY*pw?;TJ6!1;lyan#_utj}F%Ec3fmWmw-e{&(O# z<^{En$bXm@RG){0caz7ybB%qvz7+n;`n2DJ?=>EWK@O2{LxKmDL*#wd6O?Zi;RWd% z*-m{i#WQlheADS165f#}KQ_`Yoldm_>tU((pHM>5F0`JC@a#HXh?1i9j0pZy6A!kV z>rK9!_7&pz{_f$?ej#=Dx;(Vr!7%fK@~vS<<^`2QL3n=orsEwI-dV;@^cOH52Zs#p z)zsh0PTObSi132!i|x$%g6i+6@Tk&)jZlB7#I*gfU09Ewztg-S;a%#allJGpFF`kM z(wW$m^#$eIi132?iOO!QZ?h9GeZRe`-&VUb&#Mm>Cb=9;zday4zj41#Z+s8d=jN~e z!Y0hhOnTLx%nPb_3E>5m>yYq*$|Lq6j`sp5U+6qURe1~xFR0&%f0*?Jje8pQVqTEG ze&Ge_i#M>op!zZ_ye~QF)#pv!ae89!?bA0RyxWaF^h2~wQ{L>9@4!B+FQ_~s-&h{LFJIx zm*YDN1H=DlpQet#8x>xVzQTU2FQ~t6*q?bp{ZGH}vTPpuyLI?er&E25_4wJP^Q$5} zzy5GY@F06)ALsb|`ojUi-SaDDyzeOEB;6nOe}eV6_u$K+YskOhz4Yq-aQKtV-)iy! z`=wM(e;q%7d0mDVq6w?cuOY#M{9EKe))VC4D#8nDPwG>w&z*soK*Gt3L^z>0Bxo(uh`Mz7{aKg<04 z3_rYLhjE){j@vYM+~yh3I_09FZg-=HGGFM>eq$7o#?^SntJn239ur)*2Z+HlUhfw? zZSn;^BDWdVH)MdM^{5GB+tDEScdZ^;ve4m&1i#SY)KzOdK9TkBVsPFm)_6kjnFbG$ z>(=<7;5!+7HvQ80kl??y`Ti{aH06C5$Nw!89{ayDjNj3`_~&bR^nD@mPnxG1nfI*G zhx`14HTp(`_dCODA9wFoOVs*?4rhHX@4YRxyn$#P-f6YGN>d%)skOXBGxOdw_H7vV z-ugPcNp*PnI=snsc&&AKQ|j>Uw;7}JB{8)Q?|qvwhBvJq&t{C_O|QqZ8Dn@y)Z^KV zF}x$|@odHz-cj{hes+7~YJ! zJd-hoH?uC!WQ^g>s>?GOV|cUc@=V5Pf03BOygg05UqHV!UJ%^RFINOVz=U7z2|pls z_5P;TKP>p&CVc3J_*18&e=gf6ZW{Up{4NKq`^Pwd=8Xt%SL65aov&YG|Foe8s5-vU zd8|*4iGe;onWu4e9OJvQdce6y(RhR4A2T?Q1hgGd!KWJ>-p_%FV@&?myn^ubIU!8f zrW~4!*ArsK-XY=bVf3*B*7ghw9x-?;{nGJ_3O>u=-giZ`p4fa&_eTt`g??!~A^5%q zKhc9%1Yful6UJ=`FTkHV{P1GdKgopWl~|28EMZ)qYa6$vvwF}`=7(dYHU*m~CA^6cDCP4lig+F!pfff$` zMT?*A;?d=d?{D<4@aT^Vez3KVo;20^D=Rqs=S=u+PxwK>!v>$}!G{F*8@CJ#zMBcp zEmp@r5`d2e;A$n?@29^(@Ftu7s9QeqlQ_IRUmLDqT8(|H89&SB|Cw(77g`y=K{5!+ z@7r$pNRsh=O!`moJd`t+>FC7KJKWg+WqhC6Fe*iuxxSt;y7W@-NKhMB*Iz|OA z7#z|;`)K&}#F*)K5@}AaonK;qLi^45IgFULcSLxNMj!Szwq7-Ku$~A>aovRdvko5> zygEJF-nihl|AhC8;9Nya^l3d6;oWKC3EhD|H6F{b9e({tTyWcOttU;|j()+pR%1Fa zKj5BcjA$mFQQ`U3vq&e~;pfL2wqXx9bR@G7>aCDtLALIvtTNj-S07 zr=tw#C1Mnd)l(4Ot|He9C_0{s;MMg^;{$?M_XmfGz9GRk8h?e~SD5W}QEN8uNH`!RwSoT;H9?0ks{&!aLuwqdh!_;%^VX z#s9*1Ow2HLB+g*{ZoXul^);P;Bf_f~dt2Zh5M-U$q4O_sChPmFQxDqtyWH*J9Uxnz zB51wwvzfom=(X<+xaYAN&SBm=4ljr2DPRQ%k1^?V%@(}jT;~64M;7oqHtVQdmWI!k zfAPCpGsZ3D_obI&^VfQGzBYV`^&DvWQ8+IaKA6I#_yT#V-nwPT(;pg!v5~{$GvVnm2qY^IkOZ;=2F=!8=X=A7N&SD3ep z6K^Mn#=Kf+%JGbAH4KXC)|&vEjt$nV}3!wQmH#UH(q`M>nk`_)|U!;4G+t$*ld z=3nE{-;N0^hCgBGCf^gcFu!wmn}4&z+bI8Lhp(o1W`|!h`KaR=zLUeb-&0TUcjFS_ zZ9tzfF3}39(fq`H%)i}MM(zdP_gepUTV?D@g?l@BxjOCPc2J~!O78yYh=+`Na5 zK)2_HgPE_(h0eo6dzS9d`c>gw>*P}bj+$3GxE8We-c zIPNIJiCgGiJn!NsKFj*9k@|zYZhW^w{E6154rN~4@VxKGXkL6fc>}_;`-QM?2jeZB zKU$v}&+(?5c#C*WQ;3>Z5Z*cu4^EU<@kWH_##^itZ*0Q$rMF*r&zN}eKD8at8v7=) zzVAA`ZoE%jmCupSF>i_CK|Vvd>3q@ky&$}YoqChQ<#rtJ{L82{z)8$d1*aAJU)n6++#9qepSLb4)la=dU2K9S{2BKhM%Xa7qaN0JnxBND}-*=fL$J zm`c0eJ9I4T<<&nPznAf*S(OP*EcL-y*C)Wp>N|)J>D1+{Bl#T@x4?Y->$|7uCZNk zH@X_Hg6n=>+ns1({k(d@^|z1D1NFfy)ZBj^5#AzW2jBCB^?#UE+3)8>m$ANiPJJuN z`;EoWlg0oYe`PuI?=^bueImHsVCKoO70h$L%h}2AmUY5Hn7OxKS;@SoO#b5h{uavL zcARiZJi1*bRxy8X6F>Km8m|cMH!m9yym~!MhaVDLhJ)abz56%Af`7=wzmR_E@FRkM z%HV4~xH_5buU<#h^(`WJ-joNhc?CV}91yhx1#wieKd~8rqrnbHl^_3wSs%TyD!n>m3pPwGQ9C_oR9KN!EL# z!z=PV;v&w&b-H3H=KaXw(YsMFP;>8#Xue7_{}vB_F52tiYdZ#of0E(Dcxa2s2IF5F zI#};Ymk0hzvdi!a!t)y^>iRJ%yd#aijr2>~70qyb7Z@DN2l}`wzceH~_nvSOKPZRg zb6%bD>14e(8@=`Kzw~!8Z+q{*G^}I(sYWlJ2TPa?(&_3K-ff15{Rxc&Jm-+&S=Q&4 zd%gGk8+w@M-rFzY_Y^Vx;9#`h(D6re%zx8~za8IkuFBVFo_QOLe@1_FJ^Q2Z58z+c zto05SnSYa`w-{PNcEB}I;|~)h=DF*7eZ0=qhog_9CH#o+{=72_aQwEMzK4hJD)UXp z<=_C|FMM+t|9Kq~q3s#o#PPW8+kO95x0l$d%$wo(-7LSTn+<&*6=$Kb&o}*6|7PZY zXcyNmewSu>_#W~!+OAjX*fnqlhtHXO!trHGO+9HilX+)4ygvRuTOY8GUnuec;XS&$ zwx@mEcejQkwBi6i4x?eA#4m2$aBIJPNhzT%(tAeD=F_*dD0=FN9vgAO-$R ze1Su1|53P{!&UcBx?C%QKWx&0dcm`TLRiO!|6(p$JK|queG8rRtd#H0uME+`%u4>; z*Gl~SnW@hMS8_OAZ|UB6o6RqsuOq^H+p(vU$G@HE?+x!8tnaIa*8=+$FoBo$sd<&F znAhj<>b*0ku4djBO#N;h7w7v<@y!sg&ac=t%v)o4IG(v3bBdmg(tbqq2L_n$u8ZP@ zBAn;<(?2i@gFxEe{%e_^b?mLz->U1F_jAJ=yT2V4eo%i~`6lc2>u+_vieAq=ZMQz( zp#M$?-eK&+erbUzaII%JK#%$s$8)Bmr-=7rrJQv>_Y3bj8EBy&JU;x~?wG~Lhp&Y8 z#sPG^vD;X0^}esMU+|PC-r9AIVd1&!Gn;tcg9m3!eJyO``26%~yGDffM-y-85BO83 zbNF`FTM^%a^6`~$N&`yOBAPUi39)Nfs1ze)9# zCmGtFfxDQ$%8Wm;|J#B5Tl;#d+7z=+pSnl*#vZIiAL(z?&Em6Ogz|sz^Y``xHW!1^EU6uM65Tf!?S2*c{Q&Xti}nq z);s(Y=3naQ?GE*tjMw>6c#wJaom|x0&wiigud8WgRj+&WKg9eVCm#zu;V*C(R0utd z`Cowk2>gX!_fWs!a36QZAKl?8lu_OM&@Pz=@2;JM!MiE$Zm62@o7{CbloI>~31*-! zr^q9$ccw|F_uOwm@I4K_fPU%l6~RAjaGqIeygvXR5ZrHGHYE7RjeZ`PYyBgF%QgVa z%eaPVd^7-8k8=9`!Z!rqkpMgzfX4*)OJ728zjen34uN>Z{a1YtH ziQ4TZvQFDI@)Yx}zvKHeT3`HW#!qnkOE&x)(wD{a2;fujf0{q|4D)}_VrW13zIGAq zq|Z4E-SGRLW&Tqxe+|=NRTx7-=V{*)Dg2iCX~T#0CgN|(qLVi165eHo7b4fI?W{b< zdh9t!IJe5{9-G*2ZlZoc>l^wV^KZ5K2JxrHE6+22n#DKcPhEcM_l&#mSr_m_u@sBt zMMjwShS7ul?oTl%=o6f}9ya`ed0#X25a(|@Q~$G^7O9t0=eL|bHfF!~IrwJ|XTPU` z`$9Cs>kiGtXu4rO2LHu7%}`iJiyZ?makv(7Y*?=C;jd9WXb*pf`|S`E0j`dpZjxp4 zN4?JB?f5+OmM4Gy$~a{z0I0tczXv7xvrOz56y6thV*&1i!siAmWC;BDv;5$v3_x%d zWeI$N;B2%F{)Il5{=J0Kr|ZM$KRN!_O@G)v?u%Q(pQMDr51g4}-PQRq@-FiacJhBU zm(%L-PGrRD(2p^y)%Y4XuC|6idi-ojM}y)4#lM{Rp4uG#62UnG*=J~CQ>3TjOyssF0TgNR7|DNJs7e7ddw2n*r=8Eew1>WCqBZ$Cav1CBFzLZ@sht-c zBJ%j>nRm6}VY*=^T9yB!+sW&1WPN8DeYo#KLr{|Fcq508&C~5>PJ6{SMf_mwEja7=M}P zNm}pFROb7&6U~cEV_wkuaYcAR`bM@>Uu-(Z>+TD>@6BlYhJ^QJlRsF0XHhA`spF?x^s7=(dya?c}G{$~nrlIR2~hr-O4j z{sT=oQ@_LG$m^ByRH#`O8=lX6`+a%bhq|BQS%vFpRqcOZA@ff*_Vc^nI(=#p_e4bc@i=d7iKJ#RPZ1N7WIEVaashIqpyD@ z>#JU`*6|Gl;Ddtu-Fq1pd=Ha;EGV1g}rGjZyLbAROR8{)1^x4_(r-pe8g!Vx;&}>!`GN0LeuWD%pa2Yah%hK8)R_M z9(NTrZ%BC8IlLTndAO_yDK`B;p@;Q-$K_GP%+u{8l4G8GzBR}1{pD!;Du+n}?feHU z$-(crw*Kh!4(3_U$tJz6<6@!bkRHQrV_n}gzu^?-+w&T951clC;66BH4u{bE{vz|K zQ-Cz#yajmgU<->V7 zEQgg&ImFg8FQ~jmx05%pVQhUmzv3I2_kwF5Pt0@f_jWWtwu$-n-W<-GX+)L7=P7mi zb^lg5mH9iG{6#+OJV6G~aLoRf8oG|Be=~>k%!k;o({u>k(+d!t_B$goaH;l7THmPP zv(5Yp&(ZNZ>|A{B9gd-%3hhVpW2bZc_8tuOm)tL}qS>#v-Zh-X{Lef3mxcdLZeSU$ ztZ)V!{pT=$PqQD=KJLp~!;|(vOW+57S>j-R=Ft6YS+oWECb`Bq%$m@y9i zZPO*8^Jny{9R46v&TaHd`?1K^7(dXgJK+3p2lA^6@%%5$|EOs%4E>V+kg2BDAG?af z>vGrkadmntg4=eF^Cj@qxCAn!t+jr5EY~0#pt^2c_$o)<1d;^ItUS!+N$H z_2=AkSK8i@0p@?&@DucFq5R!&E#r6W%mVCZV&TVVWEJCcYq9Xv@@FST6Qk-JgP|Jy zHUlaQLwY(@j4;^f>c>xu@m7yd~VREArvT6O=74Z^5e|D8Q{9tYbR9 z{^vRTr*_fd(I31-R<8q3{*lWz2?D)IYTv)5aKZR_O2CC~x<#pztVD!Sc8~O{D+I$`n-s^^k`9^+1 za*P3;&%=LZ4cp5fdV~4z@5p+1{J0~PS9W_+92fy2A&7aQOhFK$raa8lQ&QQ>u& z^k994l>|21q$9!4I;jRH9i99g($3RRZ6{Ph{IvP=T$H+83OlkLhq&qB{n|blrh@Hc zR39F7z$&2om4Tf&T=h8QXt8rp@KYSUMcxo7a`P$TsbyG`qwFd|)=>^=yP~_W{xv2& zxDNeus=sT=@vo)EvUU;MrOUs6Hx6g_?QtK2{nzqv!c-W|Z}<@N-Er#%Do6Zqt1b=e zUxtO>;*`e*I4UK@Vf=9P!>reiw{aba`a%2-I;;jkAowpIvnnj$R9OEouos7S?>FV} zJUF%#NWU~k<0pq2wvVst)yUq=zralgj?^K^I6cwjP}qlgA;*ubl5^y%!p~B9titc} zRQZR>z8vnePWgA^2Mll=^bPuFEf%?sXK+8}M@@O-Iudwdth3}9IzupS#lL8_rR&+q z$2c54Is$2-@dlNjG(B#BIK=m~MqU1qPjGm99|GU~qH#N2vz2CR@;UZN=Fj(}ixWg8 z+U@P{`VU~f_kJ6dW47KrV(38T+jTOizxbs(JTdt%`Ue&YO?Ioxr2HxeakvA`I1ba% zivh}fAFxc#Sr!9ir3oA;<4vC z2gb8qzcTd<=kcc_u@5vEKUbN+ygNL+FA@(25W3#RCNgi>!=wB}$7^^EpJU!D4zD}( zka!u}p4DN@`-g}3WG(OW+sSKW-i?kvI*?c8{|C2|mpGjDeb1v0_K~XeHAI>Bq=)x) z%)cD8YLhRc!VA(j(8T(F>Cwmj$JJM8X5LL6-nljQMJ6%N^|RT~S8I49!h6`!mkr%i z!yBB;`hs|sDa;%3=)12*Ut%ir-1UKO+;FYR=lHbk(-)mSwm##3j$qznj(tV;Rg z?dL~@f4}R0!XG9-+#R|IN}3gE{ewrb{ziwN<-O}H9gLNDb^97Qn)%(v9@tl*ad8m_ zH1>XZ{21m1jdKTu=bm?$1zbK&TL7;DHfwu_k7d2y{S)e!Joh0qzyAx{$JgnL$Cw{< z-(gsI(@Z|}(Jviu!wlB*U4vu)4r5pB(|HK%;SUM_ArGHs#C7@oGg<%k@)NT@7(Y6j z`L4ex@Q92r5{sQW-x}sHf16`}8E;xk`_TC^EIhl8iTjq+e-*L7b$!-)SM$eCUnBsJ2_7}+ z&wJ8e5PXWk%N~4CaKHQ;3BVhUAKU(@;QN~RPxQne7u+xYir`0>@EbhghXQc5fbE-M z!iQq`Q`e7p06rkNpMAptxLP=N{zL-sSOA^~z$=3L**_?_U-=9N;G+R}!y-<0f*I)oX9Dt7o;0-5?ZGTK~zw${0;FSP;AOIf{+%JDd z1ozAThNWZI|7ZXn55Nlncz*ys7=RB4;G=^3^{`aKHSi1mJ^$`{mDY06rRkH!KgR--7$upAg)y zd@2F>Kma}zfR707mp^JnK>ZNhFMK=zF9hKI0r+45J{*9L2H*`VIsJa^J0`ea`>qJ? zSN?+m_=whq-xL(gv2~J-xE*il9_`LZlvq7kN72&!2zxB?qH?)nd zPp`Z63(sAzFY`^IGH$!-bvM0^k!T;g94dnQ*21+|O?`WI296JR!KBefI z?q`2NaKG~D55NZl@L?ZZ`;Ae-gZxGz$N8|mej}D2JKqw5`{hf2K={D`d^i9f4Zs@; zW7{7Mz~cdUL2y66F(9~~-xv|xFaH`&Vf+2?nBacxA|be6y{rW29~9irZ;S@u(IVUL z=NBpg_^{x9=~tz(^Cv2}U;e}c@InCIAAk=E?q~mq;C|(!%A7twJQ9G%d~oeI5`qW$ zjS=B(uiqH#WxM_IeOPe6d{KR4hmQo{u>d>~fL8+WfdG6c03Q+D&u=uW=k)vejkw@` z`Bw?R2L<;nAHn_V-DrUR$Og9G&u=6G@BzX7{KjYi9^1(A`{hp|03Q(CFMoyt@R0yq zZ3?L0g8SJY7u>IW3ITY306yr0Yriopc#z+SpUUanUcV99Ja)ds1oz9ALO}Tb0DLe2 z9}d7r1Mr5^#!g=}0FMjq=Qk>X`}vI_!Ts`YGysom8QcDt;C}ToA-G@s{et`Xjo|>i zVJq9`=Qk1o_@Ll^_KgJK4VAI;CmMjq1Mors-Y>YH{X>HLmCr~3u1@Fl`Gt@8;M#A* z1P}5XL&Do$ztR82vGaXUaKC&R2?(#w7+ZfN0FMRWi2%G3fDZ)VLxTJHjZwk<{6_Rl zPQPFNB?9n%!TtKvLBaj%)o_4*br##_=Qm;jctvnOzcCzuN6sEQf8qgnMR33T83@3K z0`QRlT%9wv{ZYaF$|oLx7Xt8pA6)y5LBaj}hUP`j<#f;^f3lBLhVu_!8@N-`&db2TpQy%S~>vPL}i*zRZ00o_molbm>>; z@lqpP2VBB&X}c;Hakw3vdts^2i%3o3hj;KFxSeF)Gw8pV`JGNWa{OI1yaxlfVc<>_ zWQNwSE@l3M4!<*e0NtnP#0wI#ai;6V@MX-u#grr7XQB&!CU+6pdQ`*lqVft5>zZ&3p9&yS)!S7Ne z+;@tOrcg=^U(0;={mnvn64jRiyj=m;QBI-%Lc4DsbOX}uqHqU?zt>4$H{S&6 z<~I?#VY3{Z4%mxLZ?>c}dKZV=61MSf+ZtX;hHl#$qPvOPwr<9-+qP1B+_n{(i}rgu zy@U6#o{3I+7s`i%7g9Z6h_7jwc0BSU=Ksp!FXQjNETjA9_#sESAGIv>1ccM^3=K&* zC!MMAbSjq=Uw}^G%_mb2A7K7sNiV%y00dpHSBrd9c+c+Q$%j*S|eJ$=@^R z#Cx4Ozv7QDFXiDqhE{jtbHBPAwcepeng4B1{0Zde&<|@~;W6g9?_y=^yf>+anRmI- zhu3>1GSD^2t2Azm)0Nu74x6-@acZB zyr%(?K*RW?;L#_TFWCnEBu0qV7Zdzhk3PN^+CsU-`gDFpo@9M|Ylg=uxe(l}t?DNR z0(d(9$gf$S^-uVo2!Ho@Rp=^{0h-_NH1k`WdXT_}bKrZd_&E^ij&1(_hWUSY(wF6X zY}tDKP~jQouP}Uge-yliZfDw#Vd3rV*wM|80C(53WAs_p`=-&m0_qPnH;)}!|LAX- z@7@ci?>ypo>$KW*Mt=9f`0?kNf1qQ3XXpZMPxbQg_aDsu!U*%XH-Gy7!2AmwdlI1$ zE?0Y9*pzGJ1?Ico`AOkB132KTXaAp=|DKco-TYmtZnqxj{4e~O`Tz0o$xGJfzsUT> zrXPUvrDmKBUrb&-OP}x7`iEX-e$YKu-R>%{F#lS|p28+fE?*DTdZVv?FukL~-)i*Y z`=@Y~x2ioCUSqv?8Xn$fJ(~=GQJV3m(Z4V+Xnry%Jiqyg_Fsk9S)Wu3I~h>e?B08(govAeiywHKUan! zshV`s*Rg}l`7wupc?~k*J}&%&-LPqQBO&&%!aG41?M>J zA`vcJ6A;m61hJwL-|fpt7ue|#E;bH`O1 za;P3(!?Evwj0kV3lOG#koUQv?T`sZdtnZ5+JDS7}`a)G7FTeEBut|p-K9a+^{oDqA zA8G^mEii}wi)Dl+==>W!io;DYc9rRuuGi6{8UKWnfBH=)euWgBsQr#a{21o{!stW) zNiSg)wm{shU8%^i%scy|OvL*7)|T-3d!ViGBSR^EYfC7`0)8?G{(esWmVfE-BjB&5 zf&W`ut7<3!z#w7!b)g5I}K zMb>wu(YKL)>3oR^?!Mbo2z8?Up7$X%KT=|SPZ)hz|J#`_b9sccovO_Ipm9V+cz)vu ztuNNg`hv=3NO+eTJMrCks2ET#?mBFukM(h`@I1(UH(sZEM0hV5eK^0n4)x{8^W>n+ zL6!D9!|PeEJU^^Q&m$ilJ}UU024CRO9}CbQ7yQE} z{31{Igy0`C_(Bg}5WM=`IBj3WCw^Vd{es_P^kY5CQ#}K3Yu?w7Z{&Qc-e=I|RuKFt zM^BEOZ4Uc84sF+o*`gHw_oX_zTOg!>Vs&put*DpLfzk=^XfTINU;N0!{xVnJ#`SFgH zcnZRE-_Pp{{frbYqW{98Gbo3pPx!AH_L}@0x{%}9TkOPlO;aYt2#*n8T#a*g;Og>zi~E8m+d&(F>3EavlNwGpzA#9g_rvbr4pDsL>L z8yh>@N}Y`-H?Jv`i(R>l`i}w9r#Rwvh|T3sUelE;r;8nJ$#mq@)6`=I#!yw@kudmh z!%ot1U26agWyCx0=;b$i<0=`LE%X@jJb*<=c2`fju_xVwiHoWx=#Hv{)76=^!ltR} zH?`79&FZk7YZOeKtSYtArsnDD*Nzx66-`iw?qU^mOll_CMprgNzkhoI}$ z$($iEK9*9B2(~*$g$O!(3T8-_w;WmGi}PLG?O7vaM85&w`+| zF_%2NjcAQ6$cyL6LUkyN8?@@4p0`NG&|Gt6WlV)B#Q` zfe*vL>TQ^TYOOtO>(a^2ww&4m{j3(Epal8Xq@JiFRX4#9Q&W+qA~0rk1+%+~>10`* z>xh%te2F7^-<3i{K<#T%%RXjRVDu0aHH#%yb7z8Zme_ zol_f7CjM^x#Pw}m*0BN(j-4UZ1^TD*Y9hr`8ezRH&vjCm>ES}RmUu~-=ZB_?N0kYH^>Zy@iMxhjL zwxd*rKCu9POAXhN=L>4$RELgz&sC0~H%Hyk!;UDIFQ?Z-6YMRhy{FlrC@y8w(EBf| zl9ox_N}YYKEvtT87gtTwy~;RPMqS~^d%$VrlT_Lpj9pGaC=0XBOj4Z)^BEl`+g8k^S=BR+IG0|ZZ|}w)@KeVC zS#rKNS8D4>w=PbvR~;ypyazH26WTVadmLebdm~DR`pB^^dqcUUt*4MptDGY)q>H7l z61ey>2YK5cYf?9S!RpH-d)kWY*0;Czs5cz(dK|vA^YEomF1F^NhlH_MlR7bG!&Z^h zwf>k^px$;k*qTz{x@jB~p8<*`r#!&TK0u)jx-Fe&j-SxMyKaQTxvJs9=_^J@a#^^agdaL&2Oz?Q`?R z8L3oJ?KH;**H~jIU0wvdbV|h>80)PBZ2?=4W*5SQMqsDIF*uSW)v`$^) zpkS(mxoD9ML+z10i~1i&-T@9q#P2v_>xHS1<*l;*)YwhUT0M+le zj@Y>4*-I@KgeT^DOF;c@l@w)v@ye*2XSR4k&u#0?memL zHaJZYI=Y}6>e>XO&kvtyA?(ut$*2}bm@KAYd`9Apju>hL$WBqA*!&kqI({N#BULS!lTcT7+zJ~NxG;@m=B+0gTN>+XP3N-E)!`@^isqnI0c_0HrM)>y=e$`G>T6D@d9&0V z&Yzhi7+)-_rjxDWOcGu4?0hb*R@8`>rHegKpg4t6zg_JHnwi01q>ke)sXf-z62zwO zc_0jlz>L1Ot}K<&dmfzTn4BIpWv#0eL#nMFQOkN9a6RIY;qn4D?2>xRBgYm(JrI?l zinQ{QOe54~TsUkkrZYIuD8}>o>@09XIT+xz0ZH&i^3MeTOX?g)oPqu_3!@bELLDL1 z6SZf;YUwKH+h%w5sdF4zM^AZi%Z$>Z7B%WfxonogDsCLsl-i1EHK)z$u_$#J>S71$ zfsCTn->L03fEM!l$~|=u^fmJ!bCT;y>ch#}kesQT9VC;4Nj78}cxxDQj!W4vndAy^ zCm?4+NqxZsQX$XG%qpf~LZdEsuu>9A4sB2i(pDWxJBn>RF#M#(@xFtROM}7%ikjSE z!^nDwAnP0?lbl_|HS^!q$`-3s#;QP_?KA%eLi`X*Kl}H%hFo?Y$i^X2GS?9As@zp}bM8AA`h<+Z_h3a8a^~v#;l9BT7ZLC>?{X^-d+|P+Iyie z%j!`F#C+8;eWqd+g7d{;2G07_6<#@Yas>R@18kr{1pqUOFzB39$R|71zNdRs5~AjN zg)`Zz+a2lniEQeG#-4(DuP)GDP_w>hm6yukUnq6Ia-``~Xf;3`a)xF0U}m(!m~f>l zgqa`-H`fRkaWi_i2Ebv0nsKJpOg&^8DqC6o#1X?}EtzH|$DU=`B*yGl->R0vApRLg zhOVUrrYR+rJ==y)=6lfh!5C^$Tc#_i?r<;+(b%L$9T80gVL$=p`Pp-<7TSgY<9MQ4 zQl~grp%6J zC!2LC>f`5G#hK(%YK1PLq)rN8sQWyGWyOuGWrjDVlKSZRZd7sHzi5Fv)mAL2>pjqk zv|VTt@rDE9!jJ&*S?bUWtVU>qi#=e`0W(STvfgxk--CnMwUm7>wE8p26KR3gtKC4=NP2TDd)JXc zm4MLd`b%sqEGkhq_lhHjL?JbMsY8X`skSUrZ*}Cog%nK8f!%|PSG!+kLr5{AqNR=) z`nawn4XDM@eW@CR=`}2K-c~JU&-zTYIMvnH1;c;!6&o`}0XyNvjx4MsO{hjd+E!Le zs>QHutV)is3 z(3uV(Izjq^BZWyM+kfactPaWpnp&=@mdc*fnT|X|Yyav=M??zXXvsgTWx1^S_*GRA zwZpQ7T39XR8hCBBxED%6{j*w%!tqyE>FtCTlC2gNC77V4RLPNH zrGxdR$hB4{i==q2^Z?w8{K=8EB~R&v!y+xcDOhVi>^iHZ2&X$>k&%J#I6wz1TSNc( zsv~M|OTh>QW^|wYrd6PY&1#8PD!WV+V50+pf((qg)lH6!5=?I8ZAY4dg^3I_m~wAP z9eurxlBTac+-D^nIf!7BE6481k#lzJ_${j;lSFS-Qga)-RH>R=v7BC-_tq|*Kq{@ofj|XGY;5tgH;NFbxyqI zh>@L9%Wkwp>>t6yWYpP?5W395vd%QDQh=>P9ssxodBua+Ab8lO1rB+r1>dm|!Hk=7 zCFjT}YOT(MdeUL^5Jl~FlcR`4P3l-j290A5Z2iU64;&#(V_RTnmyUzY&8g=c2{^dxy z1+u*H78@Qqv>tVlBfwJVQ4cs0*hA~eL4D1rmmDeON00i#_pB~i3n{3gBgElcL0#%d zFa|ObQvR?<4#lj2ao@LkGk8W2j5^Mdr8lILFo;y&a%8x=582PV7%vW51yJ2!Sfo?2 z*R2-m%Hhs@h9>+Q962@hUf8O5#u1`(<9uvQs>wgFS`dH^tj`g_3Lv`2`LH>!ZmyLB z`+1KPx_Dfh0{OVxtl~^Q4NkgAO|6kd)ka4Kf$@+r41CFvJ?TIm;6vN2ZWm~Ukl>Tl z(SCR)i6`dNIv<<|wr`Gww(6C#@wYoRK@tFQu8)NEGfC#*Mv?J>#32`eR@f3( zp?fVCGXZb%agoi;h&r25=0)5q9O0SS{F_sJ-s9nyFh(VHSPK zkxKpFbiXCSI2>G;dfyRABgMhRf%k_X0bKqyyK0mDr14Doo1Wu|3QhAbBK&~6l_=!cDmoF)%(r^fs zytjJ6A!L#%)%1`J0B3xQIhb(w!Zyr#jvNJLSX*o>su2)Zw|AQ4@Aos$(3lnu=7UTd zlgU%b;wf=;gCi&6pBzCZPojN)?uNxET6=R{8`K&{j&sf#bgCWBH=gAHR5{gAzpyHx zYk?yUxC`Hh>r3xiNcQGi;P48r8j^uW{?dlT4O*CCs{xcbXQ^Oa2R19S4_hf@a6a3Y zUJQGMOJFPG@mdIv#~>7aq$bod7*im0kpsa1bt%V)$g7CR`8L>5!l@FRBEvH&uqOAY z#Xu44`}2~F`kn)T@8sj%D*BkEvj`@eed?OJV(NQm4|_tOLr~XwW$YW(-j92j*r(%2 z9eX`5f&+%Uy1I^#Vm$82s;ZBJQl8kTGwNXCztnwz>1?9801i!;K_RL=e{GSHRkqP9 z)_U%D#5jhx0d{|?$}%{A+10TT_bq1OUYj}&2-*ai3{Fl(DSIL9Vl7EyFu?bl3boO zw9pDz^f#VJ7w5}Ma*T93h}C^>Jt-7w=oycmj`eU%Mr9o#PWIr?LrMMhSq~EjH<ww8&UTuAjoQ%$otKd(a&nUxnHTAexNLML7^E*q#BkVluzr>N^CK*e&K5w}& zI8Uyl8Rmo4Qn-rHtakl<6&KHF(DX!|TMweWhd)*$wB9c#(@q?z(kLL!+tpKb(N@}p zSCjrw6_gEG`^PFV8L{^ZR@#>8?k&MmH8>O)`>Ka)AUgh_uKH7T5MJ+7uhak~TzM#| zDSxgGfqO>Ki=6HNINK;?I=j@C#p$OoCM_Ww(LZBtaqL8yMWZ!AM!F3VwW zJ7}>DG7A!$DZ>Wf>esEpnqWw{*(GqWydkPD{M8BWqR?95c9x6c(P5Mtn_hpzhJ_j_ zmS#q+ltp;;Lfuz0bXEW9Z4JU^Wi>6|mbchXE3tK&8>%4qV+XkGpl~kr0!~6uba3ba6`Vidq`Aao2Zx#pn z$d1)9&7yO$N7c$(Z~{p2Wa@(y@RB+h9%$o`_xqp}^tBo=59j3YqTH07s;$hkzBRSL z94Ln~YQ-(MmZxs61>(GHr+!@r!mW@=JJ-Yw6J$hAt3_ZTW)}41>V~=yZP)z1E;N&- zHAnAK71wcaPlRfQ>ZpeBgaNGNe5qQFvq%~@KDld^GDKwDG=DdXWndZ6Oh0GCtKPZ> z!y?0sVrG7>Bd;EH#D+X8lgA_CV264T9);DxXp0V3grMM3?Hko`AGVMQs=ilG3UEQ~ zzgHc8le)zb<6sGgixc3%;F{qqA9|>p9n4sm zhdmdF;&c1haFj4e^fHrM7geK6a%m4?+&CK?4Fs@dV^4dY?;$L4QInbRSta#d2N^%H z6|dyr@p~Er{G%QQ{RHhvshJuf)tF+MS4`{$bFR5D`xUC4wTD=?k)XoRkFtpAx(gn_;ijyT%@at)U4LjA>naB z(Q$zb!xS6m!~)%31>ri7K)-jO@e|z(`{T7ibd(Kd!V^B<(W4Igl(p2$hjlDk#1_RR z50Q_-*$bjVy1^mAE&zDuOj4jfI#AUeO<^1ov8K3J7u{QzLS5@m6~=A;41EJrn16AY zSlv@JiNLYE5YGLywM*aNb8h$v>qia?=b4;C0>0vaux2?|pG_5bzk_THHE^?<i*QbLIQr6xKyNyb=kAH%PkqL!mu>yzI>E00ti@oCha)kQ zKk5YsH0PtK!b|8w4z-~Tfz}^j!Am$-I-DLDi*~f~(K3O5?!eT!y87R)22r;JjEuK& z(_uqCRVZk}L1|2bgJZ#7tH$^|mZ1AjuzKa>k{~l2gkFzgmz$|4ZdTVj;tWis;5?=1 zdBj2Nc?tplupV{-&)L@>F`VzsSs8;L*)!>Z= z^n^w4Mi&ZpZmJX5pzQ|rhNe|%b)P|yK%Q{AmsQUj+zD#XBPVOcp3uC2g(CHJ!*Ieo_&WyoXlU;$_rXS2zNl7A z(NQ=GEW8b1UE#)0v=0F3+Pl+K9o(be4$D;9Fq{Y+{3izYXu!cF+>~_QD^j1ErsHxn z)!|)ic%<>89J$ROTOw9x#j0o`B(%{oeJ^n@$n?f}Mkt-+n32K|pgJ)wK>jyOCy zpiVwoYj;8$^iG3PXqcSB<;KXV5lx8bJkx@sB89e8LKot$qsfx9{V_Xo-I zPNzy>mvB@B))q5qTW35KWK#1{5qhIYm&t!kq+n9L+ES-X{x75a{_MbX*2Vy4=)$G< zT#kysOKfGV^OKsPYR#CVb^0XZ18aQTX!Mpw3$!=NT+B+IsFdjMsgsY2;I4%J3#@9H zThFQwqTvanfvh-rYLoR(A4E^rJjas%wU*b77Ek?NlZyOwD@{<3)o|zn*W}bY26h^y23wBT(fZm9^NftG zoEh+f*m+{BGsZt{wD{D{?a*=3g8G*5!NacPI#Vf0vc5B&!}zgQ%Ji%3A@MO`OM~kA zZxe-U=KsS8u2|?vgRUW|_RMlPSn;+&oq`Z-$)dU;VX*>U7P!fPPC$mji#_2^Zd#)w zW&9L_L(m%ZcLw#;oK883cH|PR+=*9%UooI3EFQ(ewHx)O!JWVcT@u%-y`j4@u%Wn2 zeb>NlU;%eI!4no9n1=R(d;d8DU}BB<2_vSsPM)IqM=sThkZ;7-7_rATTAKks0NVub z8-`<^gRg1PihVTDuBm#!(CVsT(r1>{)g{a6t@x1T*@oiiaS4Am1dlzu=1wZ+oTy`Q zR5%scYj3ZL&8%aPg1M0{q4h-0U#$l$D$z^jUw z8)@|w!*O!M!+6^;ye$wPfikmC?UQBpIjPyqK8tI$5fFhX&g~5Rx(Tey!x`Fbr;e?y zjscL@A6&y;39Z4K1NbVd$pQT1s0iK=kHB{abjw@c1`EhA9k&wjNU)6U5#g4cOQDi6 zBb6?E&ri=peq&5=bMyZPL#}D_0d*pN_3UCNAFUiY;pFHMQ`LSMuQk(~j%Zd#RSBD>PMSVhC90&8nx{>juFk5G zPMtDk(o}U*m9%M6Q*;`fHLemjPi=0RJX!stN<5``a`W`*>XV&b+nOL1Q>IN-v#R9H z(IcicO=(u$Rr1MAM@*g+ovbddl24yBefresbahviylLvRY15kFLmDGhz@$l2rc9m; zWw&dW*P^M@nxddZB^9dFu4Zlcr3D()?l-0{J$5TJ#7k(<%h= zZql^LP1B)df9*iHdAPAF4VRYx?Mi#w;fOH31gWd*_-<=!C$$||ID}F9EJq9*V%PxS;AT>FJ8}qbnOP3H*6KZA9p{gad;`Tf|JJVMy zhbnPptrY6RkRzpp&uCes{^SV3JpQK1u07T;E!0L&axi!%iYHVn93cfD<2F0eWKTi3 z*LtPId=O*|m*7c0cs8Y_Ghc*vgo^5Q2bqt^OgQhY_Q_cTiI1niNz+jdf*YxLd9Fz% z94T*MN7WgQjIS1}Z#g2k+0p@J-dT>SU)B>hslU||H>>^f);6sK4wI{69eD~4;NpU? zYOfN~k@2$~A><~W3%}7TqF2>^39?q~$=Z5SQzy5=v8>(=>J1RmD;K*ItQolVtPXVq z`2tkGd5(a-LDG?eHw|qlelp|&M}k}P>SjmK%g+`);)tL@l)F;u4M#+GnN-6mRy9e` zRj4VB6xvu99hz3F94U0m@Pc4kodz;Q8*^}r^9qMx&dC4B5f<^~AB=(C^Lf#Ov;x$Y zq-SYAT(m}k6z({ws8<9v2o7s6bA;f5TDmeUKh=>#c&=M&z?E(+Ey4|?pExq~B(pMk zlE3Q6d*Hnzpzc|+M)kmXbhrto4tHd9hC{_22^1e3k3YqcU=p)%?*dmLzUIoIc;NKh z-Hs?jgh2>yMkMhr_M^2B%!bn$=t=Hb z?+FE4S$J_Lt(rD?&+s`1Tmw)ydqgX`QgEj8 zzaAMJ+)j4Uq08l`>DVy%+$@|6y}=`*$kiTOm^POV^1^*r`MX8_-ghhG^!1w#b)ozT z^=U4R4fd%pPDeU(y*=t`5wO|4Ie6+6ZbRTUe6a@4Zxi*b>z8fU@pC=HRp^f{w#PgFbfYA{j?g8%6q_>RROS%Dyi>Pi}hEr zjy=oeL$!owQ|Q*?eI9_XQ7(cfYx1d*>Ob2JMEMLy%GELF)`*wW-Ip8BX8@`NUNJ@P z#0ywNxekKGy*=$vWxgX~&igha@43)b4LQ$2)HaX2rwd+i&Sg;ldmbQ_k7J$eP_Zww z9=!42Cff8zj|Em{_80K_ZIQ60(@bRV=ygd;I_YPkyQn#^e z{6rBfIV-0eq)I#rjE!6JP~8v#-{O!O!FE+tDfjV#i0^TQ-)|5f_uHdHfNn z_59bITwhlajxb-(e?mNPj+)wnJ_zy`jerj94LsnqOGxMZ(&Bs>E;_)I9~)WHWhM8p zgjzo5!a9g^YwM@L5<9X>(g={?eAK)5bkh#^6AL0iXLV!#nH(FUKzWq1z#iL5*+n> zoqsP*ug6g8UH&tTSF?FGaP$?1OpM?1-*88cY?_5%Yf}e)U83$FAq}6@APX^b)U+!- zw$aGx3a^YhOV#}iBDTZ+4V}%ung5RCRq>Xq2*XAKCvXe=7hQe1l7B<&Su_iyq>JQG zBj1rg@J_s%d^IWP#Yf}SrTho-7eVg{ZHT(wPh3MBBc5M^Z`7$)mg3hGSiO|Sw`=7b z;IFkn3qE8rWq{PXiZFJyxvm^9z^R|sLfF*yyjC=sW==;DPK4L@v)F#=TLAYniTuj5 z@Z0e#=r)|zrlwt|Vel{2;3Wp6RVRQkBh*Vq%wb4)a%D1#m6IMGUb&W^NUsZ{G$JI2eCpDoFUMcBQ9kp_J855pt`9oa*EdMl#6Q- zYWv06@X>){R{;+e9(r?4XmTo+Qc|bYa$p#!9;g*VvEwDi@47nCZ+Nomc@Io!r*80^ zTijqIhn#GOTVAOpy=A<>`JTfN=XBurY#_XTFo&KbqbAwyKnwHvb#$qy;ro{FEfX0b z#2mu-iDU(pfWX^o;p#jU=A=OzlPIF>5qRrZaI?DGfjOxXE_|z1OWx*S5O|t2*H6lF zwZ(u`m0jp*15pDg=~H*kX^{1it~?L>i?I0u2SdOep|8P{H9yd?g5nPt_7Mo{G$UI- z#Csiho5fA-(XK7)fY1h=z~HLyc0dEscxk6?JE#J%{CId8LygvmXX3$$>339XDVZ3~s=>NZ(<3!vss(R? z7>WTLUa2v?0iO1Qu5R#7E5kB|>{UD8Wo5JQgIwxo9*I0Z5c#2{!R=B`+sE&=LY8D5 z38nL}dn|=K-P}AZ$zJD3X)#S5eXr$_{i{JBo2iFWyMzIo{^;<+JPfdI2_O{I`vDA? zk}ds_e=M`$C8X2G#zDgm#%9RTOZD;?G)#`>ed<1cgEUXIj6rI_C$6=&3&tR#Hpp09 zj~#=xlGad=_4XJn$f`n<`t1Gwwxb@kJb(bPoEt#VDZ76xUa~Wz-UuK-T%R8Dx0kZ9 zusFYBrdkn1Q|AUTAhLVL;4CRlSO15%_kfS9xZ1`KEukc|&=Q)GP;3K2TeZS8Tdv@S zWz&oitKF5fsO+*U*%rj~&CHmIn>zI3%Xy;<|FRe}vw12w=i%Q8m$mll4pz9yXn?RlY~y z*k2TwIf<{{!_^D?a_RJkOk{n2(KLKXn82@B$iole3Bb& z^{hej>go4juBgb@93;%KeSkKm^Ywb0TA6%^i7m2^Bfs{9niY}7$WDsVvXxp8@e&z zMdW~8YpFFhd#iRV&>y0~KtMz{^kV_7N0K=;lvD-=Y3%f>p9WOSvq}6akkDH6!f~a= zB(?URq#CQp5fJgdJ8X|zvU1I+*z1X3SjC2CoM}>n_P6cnlfZ`8MB&^>6;N=pF2{_zlIX{@ywG?XMc)L-q7@ zvz|hp^QPhCp%Uj=aQZk3`o~8seoJU6Eu6szLGAap!FI=J(H~S?EO752&e?iNi;DKC zpm8oL7i%0j;2oYZ?H!{tAX$XZ$GFl;q8Ksxop&uU{T-z=+s1k?{BA49E!e8>S#&Cg zILpT19#eD#&b3kMi;3p{Y~wlqX#4jq$rbcDCL=Zu%_P3Cmx})9g@gZWQGgEwnx}_s zw8!o8fhDTu#*e7?_HUcSEbn-cz7H+YRkRyzOgnl%JVE)bjhtG?`uQ?C*ae#Qkwxvq zew^)mhK#(K2L$nsu%tk1z&iuARO*Bx!1aD&QyzceZX4ec1h@CIQm za=Tq*03Qd{tler~85L!d_Wu7ga1qy&6o&doOwx3_pnI`)a%vG4W93)>T&&%x^^ag) zgfoOL{Mx7)0#F}6;KZ^PKM{73}_^xXd#7(-u9OF7;3 zX~m$KQ;l1*f62^z!QgK0zKJ|JO!o+M)EE^bG_pMb{YwE*;?a z@?-;TxDCE*6fWRz;D)LRNG`UDmjAI)@Z0zr zw^}rk@pI!>w{SW$Pi&z4#RKm&Fdd~Kz2IQX8c}`t0?ge^Tu<0QA(mI;Zf)fFJXh-d zUR0eI;o1g5)#;VLAC;e5#v7d)g;Ar=7nqtc`B(tl!QFYysII)4D}itOP*B{BhfAAT zrSWT-2;7gwyQfytnzjj#CFYcE|aPMK;*9nX3tbRR$>RcXK*T@zYsA2M>VMyi3 zCO-&?DYMw#ngv%89tjhW)sM3IdLczDtBD0+LW7TlLI1foTR)@(%DpEa4il{1W1a{z zDoZ?Ss|`ZhG^+FLurQ^v%!~DMn9``u)5L}$h3NXB&7sS~=$zzK%4`%8oC@eT0gW0{ zk9H4qkInm@^R|%XMn*R%9=Yicjczq;+DQQTsHFR(!K~m(A(mZAK)no#8$AE~8gIcq z5>%aaRgrf1kuQTmtv@&mNt_1>pYWQe(ap+ry=P}j!1m4ZnwNzEE1t#Uo(Z^6OwN6k58H3*YZh?>_C&CLVpv_^MH=1gXB55W5b*5Y zZZms)wQAuI2dO#}k2pv@NZV+0yIz%(TBP40qTb+b4pJ8oTD{4x-n`2B4hb*UZ;z$D zQB3;B_Eh{q+s_@m>IFULApN1+7C*5o7o)dD4iVJ@dC)=XvbyC@?b;RV_xMkV7gCS0 z`WCT@SY{Fm8=c^g!yxN@2gO6W)RuPjTv-oyaCpi3A)j>%AlV;pWmk>pJc>KWK{NNH zgA>D#+%cB&EvwC2vzlcF$%bn9~mbQ z)bv-DAq7*mYl%t8tMf<3$#BJgH%>s*{^^OB#6m7$Nt|TZ4{VW)QOX@vZ&G4$NRFpZ z!fxP6JMTGwO;a+JAhv4o543Zt(%)j|bah`PZB;5N`rdX4UB&I3SGoUgXYoqCwtP~? znz+Ya632QC{l;0V2H$h^*=bdsme@JpTddk@)hztPJiCPQ5Leha?Hj(6v#Jhxg-Wc9 zdVmj>DWW_&LtGo z>h$+_aU`H>^?okatJhb%cvG`i*wvAMSGNy{=e^p!)FtKD?`_99l2H}p5Etv$@h4mY zqL%+;ydw!!&ku63x~4x9OZ&a~9orpAcpgE!tK|?<^}TI^LmR5!SuT$2{JSoaYkhK} zLu*j)e;y-&q+f`kxq@#s$&mn)N4rQ-|37faggn5k$&O^gK46JkEbs!~pAu3fre}gN zeBLSI`GFhV0_+G@n(9hId4dintzE%yoxJb`Ups}AGuUl6mkFLXxWFl3+`(r~8P6Z= zvAZi3E#NtX$DLxnN7#ItOOdKY6({ZcgnOM5!YOPt-Ia>+3cXGm72!cA$(3;Z87|FS z3yV%RsD?}8M3DSyGhGQl1=qECP61|bbF!i;HqCOS5vq&FImN=2@v|7Ypf*n4!=G(a zvvGCHI`lzIdEit(UfqnP=QjrtFg>?y@t@8P>G!AZy1j`zwX!Zv#|BcCIX_S41IYN% z&CH)B#hk#njyN&Tf1DjJ#6IMsSP|t%c9|2Gl=dZO#L5VN@=2_q@+srz#--=^m2+Z+ zgl~zJ^Zd))J>yag`IzTpMSVZB&0cW|m9IH0R>b!=FUCpQ+~mAC73?Z|V?>VUZ9l&d>7Rz$nHKgG%jSC`GlrKeoo39%xct9vt6$hf+; zuDJ9(SNE&s5c0ZHn-t>o`L3=WE2UiBL$M;htJ|y?mz;2Qi(&$+8)vekamlVWc&irM` zup_%MR){4wD90rwT;1WZf+1J;aja8S*-3Y;DxjHOv->AkP%F6F9*GmnjF6?p~%4 zJGl*qW0Pc&L*hk*BYZzzGUN$67Q`kTc7^vWOE?%oZ?e#La@O@MYJiF@Jx2s$E?)?t zcOm5Pg{h?Qg*z>ZmGgYz8OxC3zTXG&GRhb3JQAClH_(k2629=$cuD08CmbA`q~{CI zkC!sO@QZjs&lm1{NNl2^;qKCSS>G2Xe-^7!xrSroWqe=wM!cBtg*z;cO;q{9Q{rW` zFZ^OTgnVDveQ0c=N}<<|{AIaCl`pIu7ONSK=h=7(_Jvy=9;<|X;lc4DfiHY+nQ|~` z^bxV?K^Z%`!{en`LVkULG%_ec?CpLc$mBeN1eU$`@W8FXQ>b zm5+_pWPIWN@q(T&yl;7=y!zaJTx`<5FFZe9O!>mU#>@D=aLVzqDGFbBNxY=;gB|xh`h}lBa#_BRk5`{_ zsxRkqhAg!NQjVS>XyFdm{bjtM=MN8DmKZz4yO$xPJmLnY#V4p;;=nSbgim~A8KTN5 zZhm@vs-9O|xC}Al7N1>)q~{lNXT+x)>LlK}3}N3hu6t&@QspUnmm%c)#(S0_C!FJ^ zXT_(hykmVCLfSnpT^=dFuQ=`O_;fvIsvi5P<(E|+a<6mZb;BRsz6=rek!znDuZEpu zX&Ewsm%MA)f-q}?^Wu|)I(CAC%MfFk=awNOJmoIu$EO-{l~*rAIP5DoxgcJ(=r}Hd zsKr^T4R`u1wU+}4;U)#2{Z&Xq-T#o?<=q&yh_8dwtH_%US&R?amj)4_aM|MPUKr9p zFBu$hcyPc#k-*;s?z`*(wOdq~+m2nBw8pPjr25DpA7nTkN8~IT-8`*=GrJcyz;g%t znfSdSW)2px27W??J~r4aoP#{Nc^2OMPQM8hYY=DD(#=s2M>2Qx<3ROE7e%D2Wt>M~ z0hRRD7kkoGB&QB=8^#epKFB+ya9-(Ep>UFx`r%PyX7A-a>umL~>s%5fZW!-*ce8LR z(%}}ui}SKisl8fXAcR9}dU3OWvTMEHiZCS*66I}PYfErp*?9rQuTv18`5G|K)6p?8 zP3v6B51>x+ZRUeEaE2ruC@}AM;QIvRpAkIkG7}ZY=JesvDLy-K>R@|s8ArBlc}19J zPMrz=;nWG(j*7R|gX^!ZG?5gC&7M6t2dG-74SyG*=9Y_-%f%q-uLa-1+dyXx z)znFR`b<0Ozskf{N8!#KWRvJ3f%9W1aJ#FGusU-A8AW5UHHzM#ogOz6Ofd&PxkBDye zPKy4mg;6<29}7mER6OklqkOL#E}^EY1;RHpVDt1rHyWXZ%IuA9GKfBlcpriAVT*LU z0J;lTKc{1fYrxO}^R0VUd2cbB_zmyR2Z#TZ~vosnka|NPv$* z9<#(q;6T!G4DeoTSeFqTF3lQXiY;QH$>JC@wF2Kq(z?uZO4`N3Qon>S$YBH}ZxL z;C#D$agfH}=ZR0R48mb|=y!39k1E^H3g)}&w9@^aC;}7sW`~P>VAL4259+R=(amVy z=r1&cN#$C7XkR`=ef)zK1>HV9w_YmJ=|+U_j2zvJ*j^MNdM#7ge?oS&M~Ixojw!maq$K%9+RhH(0Mb|`}d|6EqxdoH2p(6NwDq`-Zk z)DtVid-)-BeneKRN4_ZicsTNYlOO4uebAG#p znaz$7*KttwWj`99R-rmKbVGm{o0Tf;r%k-#%NvfB(K!JTDDn<1xF=v#C4U3K0^BMZ zhvp(;_TxbBiHi#AR$bMt@j5qKE;VvETyCH`G}1nVVaWt94lQ;Gu*bOFK_UhE%E76@ z5KVp6p04K`&l0qHo|^^02a;Nz$nPPn`==HCv-_HdDs++vB5Pj@1?S>4${KC{nu#%| zGOe-@SYBWqWj-TE9jbhpfR$l?|NhE+MG0<1sngnPs^4ghOUQs`gnBB?d{sfSe}?zA z!O`9{A2i?H1D5uqzikONB+$El_r6eV7(GL15_BjPvfVyI#QFop!0@y|;AJ z(ncbiW@4qag&kT8TqQHxg&Cx(uBD>6z&mjZSEuSt)`e8L4w%jq2+man#M*8bD6UOG zHNeeYOuQ=y$nx1pT{sA;C!y;Ri)^@#v2l2CArACVF?SYlH?-kiEI8Iut<$@?nkqto z-)tx6f2X>Av_;X#jCXMJOkaRX_-0M)@{sAOgMBGywRgZuFKmMPA( zTLjLxB=%Q&lDN+o9rm}ts27$hb%ov-t+4?!sbq7yrKlL%4v7B>`8GrNaoR&*>?)`x z096uC7XV`8vWSCbwbQKv1=KTpcyN%%VQ&e%tEbL4t3&#`8=90ch~cZQdrSRr+~87z zWB*v=w+DQlzsUnUj1b)vX<(Pt(m{e8-3! ztFNI zz0{;aMsVSlfYlY8tTE_pA;X_Q3Vc&3ri|_qcu#>JWOk*39t&=|k3DK<8+Q<#=+%37gQGvtCj{zTpuEfi zb(Ww8OGA9yEf*d%mv;-MRK*PDTLP$;dyviCFQ8SoG?sBcwl>7s+$>N94p(R6g0jkh zn&;b3u(*YD0WA-eiG!+f)KWuUWIT0jp997gDy@IDHI`f6gfV!f@5ZIIU2jH&_G z&VoUnVYZydNL7wh78EDpwO7PR}DVY`;mO-9xU_mw7`!yIfP8sUu3HeTyHS~aw4pxTB z-6NfzKNW-7FNMZ(oiDV&k;Am<7-MM}Z@sIQuZ>W^7S5M$k4DJ z{HhE)Rqz;@_g8!L_)5U2NK^9li9Fpfo!%4#F8=5r5w3~8zpb%O-$>6{k`kz%w4gl& zI#&|kJYdkWl%W09@5 zGnS$>bmY5BYBqP0YE9+}HlzTG1}aMAI3c3^`Q!>dZ}EZ%R)4c#r2;j*(8&&~(%sF1 zpGrY|`t&SSkFjyHvC&V$cf^wgS2FQTjaeiFx=JXf{9hj@d9h&f-Mo&(BOVh3&-Ez# z1cnQgby37nLe(x7XxiQw$&DS26F?^lO{s!JXb9nppnY+`&5`_=av%~3ZON#y`D3mcBM^AZfmNJGGYM71T_M=^Z z5XK$TGY32Pg>rGK3UZJ;07yR|ehf#DI-WkeQ+L)w@1`7`i zQ=7z1A?vI!Ec5l~?R20J(06I68CN#oOhFBn`?)n^_znT1N1#h$!PN1O1<#MelVeEe z2N`1_cY;O+x+-d*OFIch%`9R5Aqt_Usl<;LL^sC6ssvvH(4YVJ8qwww-|C~kacrx8 z)4L+7cFVA8wXCt~zyVZ~?vm=VB`i3^_ZG0KnVcbuCFo}e6PHOsRXC`4On|ka7Id6h z^s@#Oq8qdtXvLGZy!tfTK~@@1RZ{f zwr#E@4wsdJ*AnA#C1kMCg1W#MWUZJp2@oM+ETI zBP{SuL;zEr5sB@0G*)vO$xJpPk&j4VmOmnKdPE}8l8hSiU_>O@l8##P&xlC6r7dd8 zwmXH5%_Z8Rwsb~B64_KPYRu^onN+eh8@1-4h)gzxpm#|goL|Z!55;bebh*U0> z%Vk@lcGV(MiEL|YYcdfv?8=B(DwWBk(+y?%&4^gGHPM1pqo!@RYxn^YsdO@dWTVE- zjL0RkxpXR%ZYbr)M&$6ebFD3H4Q2hVh#cN{sx_U+HI(?Tq#%Fm9M>^DQg5~yXP%+C zr=k~+;HqL9oS_i`d%jJLIxY(1rGtj^{fc-rOt3S|vG4pmjH?KW*m%6L$4eoRe=!7#&V=#TGbhY1x$GxvlUj-o%ye;6iI6wR#H-e_1-nY?qD(UxhdEGSH5a60@f zr-oq_gYhK-SD)1V2yaD+Aj%pOj9KUfhGMl^xFBLtkodmor*vW%4#aPicsA{eFAc+i z_=*#aSp_3LIt&Nmdq^A&gs*-if(H>U2BD^GxLK#W{SdbvJlcCp#1nmxOe#m;ne#nXYsf^CL>;ltvjWMa6*8lTv>4TeYlcl|As0?#M7lKA;;!Io!?ES3O<__Z8NL;^DDl+~Sa8}-h5!^(699n5N zjbPNvH;8F)ln07#=k6ZFK2|+bzX$N=*k&_AI~{P4acsGsh*EmJ!P0{e0Rw32-~xP* zEYe>B1dHM8L$vDdz66H48rmj+W|e9KW!x-T+kj=I~4{iBmE0I#D{XU`E-0Cva&$(_ARF_1^r{!R`uu4k6#* zNto4|#?#pwPG4ECDn|(GJF*BOj(C}S1MyY+vGv3OE7!m1WE~BwOYvO8Ra|ZkAdns^ zqCh?!M!4eqEes(lZ7_q=-@b%BCoqDi-!NMej+V#nu;s6jk3rSZ}aGrpT55hbK-S1$M^ofH>(MEHOK~h_q z#ygk{^*fj>odqUzEw}pkO?O7&e4&7E5Y;3mgY=@i{$XHu>7x|P95m{#4(n1?Z4y3qz-1uoh`nw)+`#5Aepk}b5--o~_kbs?$=TtA|S%HdVa;+))#!6vW-a@1HF-DtM$wa1&Is~Qf zljN5_5Q~tA+B@+hktI#2~E+VVpO{pdZTG2E)vF-Wp=exFF2V<~vgj z`)HWegwnv8zp}AP1G8K0XDk(NV7h=K^*b^xajcLO#Uqt!qZ>fUeL!O43@81TM>k_A zI17FB`t)I1WxiLle2ljC5&jV4ZRO_JGksiGT?eLiQmfVspRnjm9}!Zw`WV(Nsol{_ zeE@@51|mFm$ON?5zSbIhbfk&^vA;lX$IJ_qjXYvWPzOgLon6 zaMC(m9-SYml+jLOz?$|Ud?p#{tgUi#(~}H)6SPZ#@f&x)ai#s&oEJXcJeWkLR(uK6>V@Uod{SuBFl!v z$g6)MHU_)-hNJE#@`MVVx(p};ZMBgWp^yd~yZ|L9Sb?_V^^~$ec<=f46TAP*F-c0Qy@B)s`uo zF)>)Ag9SWPDOTuw0r=Yp{jG=eupn{QdjXR!Mfx8BiUil|HG@z;Ve8I6Z>&5A^4{p6 zd9Plq;OxYzVYD7U6L>qOc)W4JB?883uhPs~7v@wS5oo?%D3{f?zfT1!EZm@MQf$Yh zTTcaB2XE?;9V3FX=(jRdp!;O7NN>wv ziB{-0sm{VuDj6)(E;3l5{bjIDi$$=5&X=JA-6n&5^ok4)&{r~8p$!L&75h>~hWcra z3|6TwgLOJh1Um|~auvh=n*}zm*qXiIo=M?Nzsr2-ZRMCuW zGiYoYSIc){4fl)?G*B8u9I8uj0WXlj)(?S=$Al_+!X>&R1oD=P*F#9Xp6}c<-%Bf3 zOv2-_L9dUtl1OQ=2O4QNiS_2oef8nKGF2s7sa6Imn4vjSg0+0_K$(_=p)$U6(4QnW z+@p0S?kyMTrvibiLF6hNNT5$QOI z4fU2QRakPh04J9!wI0sfXC>I5??FN4hyJI8vC0jxSu`^L&JlW3jJWnm@y@f<%WZll~AdxR$55= zNT^&x{to8pPyyo1HLQHh_jjUh;`>p7u9D;+mX@o%2G4}hx^fWsP=R=}^1c1}1!Y=k z*w{05Ff36+#<6`uWVbwCH&^F*0^A)-dXXcCh9GPzD(30p5Qf^!5Ask59Le`~PAk*L z670>_D)nAg`hx|=zTJDV6_YX{q;eqY{oWyHxR_svdP#>0bXvYb7ly*vOi6c3q*TQ+ zC3;6fWo$E{RTdfxrok=bYn|h0Od~j+W`@A}FjXZmQsB%yJp{4$pqm9WJ>Q!@5PpGP z4S|@6%CjS1VUe+AI@U1ro8K~wmGKnVNkr2^FqYF}j<_nZ67~_7JE!MIQ0&hQ5!iFl zxqG=U-#1*Q`$9~u!quy@eHcsIu{!^+Hd3}CKOPbGmhle8OQ3?6R0sisT!CTy@e;)V z^-38Y?nfh2rY9r@SA(rh^qIhBp?j5xfJRnvAmhBJ7;uS|2RZCp*cdjep6|yepTK*K6Wr_)Dozg-CBz+fIz}KJ@Ro3m$hO~yP;7;Qzp3TvISIoJ zu@n0;j4j|?-}q2tRY$p4S@|_)+Xhi3RZjuCs zLfYLfmFP%6Hqms>$oHVpUFk4k#|R2tfwmIR95fx+nNPcgF?2l^=BW|_Q71}tS_GQI z&vi=#+_Q{Mz@I{3A58f+gbbAXsp)WI+#I|de2;CHP^o{oXPCMr)SKrP;`lIBrr$}R z+*RT?_+$vfR@Qt^Fa0e9)_R9=`qhR<7&GQ_&Ezh^jsn~>U#9&;crU#7!5)-WH2y~m ze4jF1B7&IDLn}PQgR@5kJg%dC>eS9DrA3_+&?y|Ee+X`TxmfOO*Bh~E^COL26HxwW zR|%AGpc$VVRHPmW;|=QvI9Z^)%L87!MmGr1Sn#q$(Y;4g@Gk*PozT%a9@$qL>BK>Y z=<;A%Yn!8tZOqTX#<7sVeo~-V!e^*_mHSyo3w$@6WfDB?)q`~zl zYrKHsEg^%0H_((}=`>e(-oDbQCPHZaqm5-Vc@tgdxPF{cfHHy9$2X7@uxB4FM(5O? zK~yswSRi#B(IBqAW0tTUNM|YC*dQ@=f_fw@uEtRpHnxMm+0*xa9yL=P0mO3xlxyIo z6zrcOr&RO_+ zH#Dr$qc4QO+`)2p8OBca3mE-*j~?UG z2Ld+JtGO0h_jqHCAW}5ePGqQPCvtSMm1s-Q%~m3tpf{{UTZ&da!DdxkmJ)WNjrO$? zScgtWJD44>m@6Jg}$`Hi8jL$SZ1+}gGtg{E0b-dL#;$2k)bObOpczlGsy(~ z+sd@I(3U4zZN_KynGPmPBMv4;Jrj<7Nh1Il73r%t`Nvb-SG@WN<@L}veE0M@#>39q-l-QY_=ugb24@YKBv>cBTob^wAjv|9lhMar0E$4lcj$-m>g|+mesb_ z1kH3XDH?GwS-Ql*w9ylGCWrRI!DQ&iXIpK{W@S=1 zRAbX~Y__GaU3#*E$;GQwNiwAD(NqEzwHt4yKI;>%wJJG?U=?@O3mELeLZM532thS+U zryNY0<~x`y9qV9nbiJLypyO2slcrTJwA$9zO50l*9FRl%IG7Y2QtKca4@)d+ri}M zQaghh{FH-9(mx$chJJdH)i%`N>2?M+c%g$y(?t%Zl^(M*sKH-2m?Uj}vDG$=K&LvG zEY%%Mj(%ll(2sw}!6fN32a~3aFR|K&5z9me(?%6LgC7354kk_aIT(z8988Wj{H@hC zwDsd0Op^K>Oq$MgFs*c#mC3*#eBfY`^n*)nwq;r}w3CBrr5*>0A!Q|*IJA+=p8kbvbLoXoXU^3L{U|Q*TI|Cnb zqk~D&YYrw$-@U?WTe^)Bb_PCVo`Xrz&mByLu5~audd1G5@4wQOR@<^E+RnjbXfFqY z{RegiKIAF~lcX0MOosmBU~)A2cUG(6DLNcXnie~lR=V85w9zwm2A<+y4kkfcUS+in zvjj6847TPwm{z*P!C?GjWwMyE{L;Z-zU=ol+p?G?*xkXj(XgFK(uH;+MGx7D4E@zk zWa)=jTkXoxcstQXeO3a4%ropnlJ2w3CvbvX@NYdeUB28D?i3~k!CtB%Wb|ObxTxT;kfktqKgGtaL z2a}?U9ZZHEcQ9G{hl9yc)Ae@S+GsaBgNAd+!KCOy2a~3U9ZZ%!cQBYgzQJl68rw;B z1|9aQgGthP4kktSJD3c8;$T{7qZ_TZCEIAcok1tR-@&BlEC-XJyB$oHK6EfSTJI*S zZD_i8b}&imbucM9&B0{o4hNH^_Z>`**8YRtwl>tZ#x(q zt#Px}HVikg)sR=ve;TN@?q4BCPH91Je%b1-ST&cS49 zse@^ym6up;YlT0yGx%z{w}VO2kq!p?HyuotUUV?6M7LUPLt8P%&S2tWj)O_kp$;ZZ zS2&m~J?mg{^lvMZM7yxnZ8ocu=-AA1Fey6N!DQ&S4kk-aIv5;v=V03CC%0Q|L%T4| z!K7$`gUQfu988uTbuc;lyPbje-|P;nZTPl3#lfVg=3vrvfrH7?gAOJ~e|0cz^rJhi zwxL~^;9ycT=wQ-xj)Te4y$+_8K6Wr|w80;(wxPw?)xjj`KnIhiGaO8o{^(#@=`RkZ zjn=)(Y8$>H@91EX)a_tWbgF~N&}|MTOYb_E9Ibh`)i$&kIR}%ZE(epMlN?NjZgw!O z^rnMpqt)-R+J=E>+QB4ge+QGM;~Wh3FFKf3`jdmn(Rc2(+J<(a#la+KUk8(-qa6&^ zr#Kj#$KhaFX~p~Owzbi=b_OlRo(?8ShdY=w{m#K;>3Ij!O5Zw|HX3!m&FU0Bn9p`F zN&1W7V6cA1!KCRz2a~0T9ZZfscQ9?V$wOA#&|*w-Fjzn1V6cA1!DQ%u2h&QQIG8rt z=wYjESQ;?i!6d2Q!KCRd2ZQmCgK4D?9ZVao_lVUtv=}=(7>s`$48}hW2IC(GgYl1p z!T9Gs|Ou-eA+QFaCsQhPfXjDH+V zihl24GW4Q@$r3$jwXH2jV;oEy&9O3Rv?Yf+m?T}{VAAxggUQgp9ZV~2^_0!(bW4tA z*%`DY2RoP~{no*x=t&2Yp|2cFmVWZI)ixXtKFz_j(E>YzR^~SjCP|Mvm^A&}!DMK& zXRNj*TWN}eX``B*!3U)a988iPbTBFUtAokVkDj&KhJ~sV984Px+8MMm=Qx-Y-Roe| z^s$4<(gx32ZA-V(t`4S+4zx39WzKLgN&2IMNzq>%OorBd-fA0`x9;d*a@6f$+UQg} zgI4A?2a}?A9ZZJSe8FlPR%YiMOdECC8O&FmCvxCXdn+~RxR)5iI8(NICok5GS zzk^BAaSkR$H#nFK{mH?!(sy36+J+XR#m-=iv9E){_{YIy=o$xu@sESa(TXoyZNoV- z+gh0n+J!wGOo|S7Fc|+h7>s`$Opd;_Gw}YSUa?utx9QGyFlqXkgUQfk4yKi!b}%{m z+Rk8%vBgrWZSejx988K9IhYJx>|k2yaR<{z|FAO{Ni@A`wGD?&?&e_9G~{5ibfJUE z(Zdd=jXt+C@bR1c$!c3VNs}B*nyL;aL+3e|R=VH8g?=0o+(l0djIY+^LrEF`O5j7d)fz|Q^wFm87zL#OZ5Jr^spHlei1rGw6rjHl zXsx0yM!#M_I3-45F9?j2sneGNQ7PByNADVA260|-O-0>Rpd|zMNLUFTFOV*rMth|Q zml$|d07?;qp9)Z`XLSAdj43#iL+9)c62wvcoU8i_tf!#tI6^?U&|P7d3aqEVDLf<) zNHO#wAkLiTF|^A2>VPnQcL@CyA^$ad=@R~Zaum^u{DUS#;KA2cq#cI`>p0k6?N{BI zUI4P7QZCY~_yGpD8#a6AxY0)p;dnaaGJT2PzWPo!fS!LnihKlw<w$-hE!jQ^l3z3ECI zlsTiD_$mO}{lAhv6w)f%vG_4Y{W_a}aoRb$0zdsM7{npRIGLI55Ey3_V^0eV5%sa~ z>XmH%meCMqb`}ilrhF7w2w>iPKYg4mIn-Mz(nCVb$G)*(8@w%2<}!au6u1;X@Ych| zJt!$%xZaQuI}-X52%@2Et?&*kP0aUS*iSe(zpgKgEhFIlJOe-d6Y=SC1ia(_>0$Bv z6;Fr{Y^RSkp?+`su8N?3?}Xn-nkM2eYb=&=0Rs-~nx|#_;058}bqLN=R$?Zde z_O4QAtgP9dM{3E=)?Z+LSLo3+sG=U zOW$ASBw(40fySV>r0#k*Xeha|zBB{g%onJ483S?n>jE5W5AjS{~re$UIcs_7pBJk;|2 zO@X-{Ft(|hFE-7~>UxmF`??-+|2Og0{LGl>Cr1a_z!L!mDbiI!q`SOGRW6$LxltB? z-2m+kUAP^h-z=}-lMpm-Q1#dTEK(j&$m)MHwrJ$XKvWBbtWM$gy!l3nDlJFKD3#(c zycy23qL021nhgBif3OPw&G;S9y?{osUs|x=sn}e!&=7p40{VCBmm$kklkszf`D*pG zOMJ%^y$r$vw|-@XI{=UI8kLd|!Fj0*^kE(sTG3m9;H1#5&-k~;zVvj{5EN*HqwOVLZnkg z@)J?5Mo?>3_?M_PT-V}+$3fVkimKpjY0%v+;&s;MRbcisEBqVb*@)=dsv8|TXQc+{Ispy%y`cvLh5qc324AuSErb8CfCsAPK)l6zQB?*Tb zw>2QMfSB~voxyaVkm}UX=Z(j zXkHFQ&^I1kRpm0iwO|{rXXN_JT{v;7pN_R)zY*BL%nrIP5`F+-(=yhF`p^NU_0~7a zJ!oztGyo{bz4~ww2k9Lnr4+LB211oW<^oYoJD#?OfBTQy%Yy+rTtv{w0UH_>8d(U0 z^OFu2)IyxIdJz4g0eKvV9uje>TyGm?j=~Wn;6=EXDGUBTjC0H3n-DnKjW-D;p%|d2fBXAsjS4SN{!#j=#XY^4F_q|PxK7FV5UbyY9RGW@->S%O` zWP(m^gf11(Lbxq{ceetAgYkMruW+c%4}Hy{RBFE8UEg#wepK#Ya6!q@I2~?jGtaKN zYXgiMtcR8`0Kb4(D4?&XXvsDX=ICD>N~XQgrkf*#B>kGbE5bpO?PuozkF~}&`N2po zqP@O}wfK#Hj$V>Vkk5TVR8JFQGZzk)YE8jQ>=_#w(AROWBL;|iWIeVCLqeQ>$meb1 z^?8H)?h5*45zLR)Q5whx-Hm$bpbkE=FX(UJAi+M|-NO(vC7T}Gq>zb&MH3$2yAP$n zKuPdWIk`R1SJRh#1kWi7Af9WWIy7RZx`+Gwry#DI#YwhiI2KaNX-0AouC~xOC*KuT zhsRK8e`#!!E_d}N?q2KPUWd)6I!XrxPlX~o&GPmDhZE2>4dvjrpPD+OY&A*K54Ui0 zJ488MJ!^LO7gl&Y7b>psSA(9%*Ng`a#hAkU+tKLCNM`;GrXgc!)RxBZo`QF>Cz^Rg z!>Hivt>V~Cw}vfx#w|xXA`p~!d_3r4i)nA5e$5KNdu-sVN?A)HcrHE=wIAK;8m%@e zq{KrjR`dj*ff;Z~Y6A39A?jmGE!f|Hp*hh0Xx-7mS#VJfN{%k_EX8#Ta|bO={@5co z7KN|YS3}*MQCg&{Bo7IEaJNcVUFlKd1Pq=EL1?HhD*95C{}d18zcd-WKD3aFf_ibfv@8mRhdLIPN>x5>)PHJRu%zcGm3QYrh!w89 zn#cWCGdlc;Du~K$TtA+*+7e_DhZ3PsG8CFz!33JlXSl=@wl_6Xzd8C9p#Ot;OHD1y z(C5roT8yZT8BR|!oXm)UMV0;m%zra=&TKVTb$Y^vUIUc-AHICCykL4B=K<4FAs&Ej zNuwhGI{?OJlA19H{8&$6e0ivjD$OpX0WA#Ia9Fv8zyZt)%9Y`IGzwl^OG>y&t)6xR z=0B4Moz@8b4iL|wBwIW``3$R?muSW1SfcCJHC*V!AoTAn?clab3mZK7U4i*Fc+l;Q z&~pvY9RBq9AuII0n*AHUVP^1>FepaXVGeDbF$wtC{uXQ@u;2}`>k8a~_G1J2dS4U1 zulP=EA#UV=2NDQA%~Wb(2nS*>kRtG=Q0%L~iOhBFXYqoDv#{S+PiG>8+tzSE@MXcT zKj4?2Rb@5%@s|eVKLWwMDFu8jR%z0dRuefybPEE9h!-mZ>Wpi;)Pdg%Jjf^IO8v*_ zJ(zt?Dv5{rZVnH_J?KDEPhX**8a%y17UF1c-&1+_A#&H%2RHhK{FPNnED zp+`Z;hNE}T-8)-sy2T@Hap^;lcsmL6c53KF1m(Ssu?BY&yssqQ#0Y;SX&oz`Z8_td zggAZ%`kLu|8%R5H4bamtI9h>2sLx!w(1oLRgabY09?Z%FRs(D^cK6AJF`d+r0=nm_cxi zx=eH$?%`DT8_WO{MxJXxJ_IsvzLMhmH7Py8i=#q|LZK5860&p9;?!xW6wy$6qR^qC zX@InKN^c%PmG!Eb^p@cqYXdI=hzg3k6BjhAxhS=0<1;Jzy-94JFU_~xx1)nRMEe78 zM9;ONH?a<{w}fw{FLE%aUXn5aT{?AlGp#t;=nTLqHn0oeyp;aXO-FJ-xkY?ce}n^B z<;j(DWAQ(jNoTb?h2)Q>AdFMW{g^v*IMu3GeqdUyi^I7<{AeYv=fDyBQVzly<9Zs5 z*0vuW>drNb>*eVs@J@2wsWD_4WZ*u#JU6%~RGr}17Dy>s#?elyMskc_iPQuDCV2g@ zUcdwuZ$br6hb%*qHrtKeWvQDlXlT~c39W#_$a=d+k!=K`SGw&4Bv8cD61=``Zz<+s zr&zEn1Qsj;6Bz4Li@<3iHv*fkmwtV3x>4pqTL@^+ zd_V3LsWc$R2t+OXJ6ix9YAimfTI!TSRa zo)Akd_S8!)4iVA@z0Qh0#wtt`|0aU-l0mDvVu#8^!%t_RwI%p&QAJqHqjK3h7m$je zuCRVE6naI4^c~{za`icLIZh*f5O7$hiFOPiF|@~A7M&vG1^kK~{zAZBS7FsX`N4e6 zo+(o&Ovhrh`Jk-C4KCtoLCo^+i{E-Lqb2~y0SunUOI6)2e*g%yK*18lqdAQJJ_;-M zUM>^L_|9{Dm!VbnHVOFHkAW#a&b1Cz(Lf%nw(gFuAOW;%p;L{oxx2ySQBFL$yR4}DSg7hgu;o^x- z$B*_!jGP(Z<(qUak8SGG!)ay5c)PmGq1B)#vLq@D>>CTV!F~;~(aY%u z8qx^tDhqahD0aJlT{dkn-^4fQepYm$K#O#CDD*po%(L+|OtbRk8vRQM1z^kmCd~lc z4PdZv7g;cfuqXw#+`pWoq+0O#)yq=z0539?LtoHif@D_g2)9V4g2b zAUF5Z1bU8<7k4}p*$9pZH`#Ec@CM`QNXn33{QyoGwIP~7mWfo*N!29=5%MYm9DX#y z$xLt$Sz3w+OBj#nfkAI6Jtq77tXLxt@rZV4Ni!T#4lVN;PT(V&OceOBj7JiMmg|&w zgY+vF<&a*nODT^S1MSUB@P~1kDkAK|cp5Xi5{LZJ3J=2&znbA>u2Fs|6N#uI#Q1Ij zM58?|3@2J51|i}7m}rZX63!mRE&6Xzidq{Ly}?9lBxM-1dJ#B}r6Nz9VLTDRA%6hl zyg)u8f1=V8d5@64S;;rP_qP~te6H0?oGjKrMD=HxNJSz*f1dGVq@W;!PEv{*)4f^A zH|Eb6rj4*0u0kWMxx znqWMl1$nS9!;Ka6D2Ce_#jjz!HIijW^%ce=PXz5N_5$Yl$w*1qj`2j~jX=%bO1?4K zqm+Cki=qE&#v2R5iwyI0LL^x#1CLmVR7W$Mh~UuP!FZ}MD-TujjaFWva7*4luZTu_ zzEybSvDlyk*`RcUfJJ*Uk&al32uG+0k^F@GRg9xw9?ggs8Rwlv2>HDjPegJ8_>qifBRKS2t>jxGia@-g2=1PldA|Pu8)LTqtk=&rghh5>EFH!U z05&EH9-_dYAAPC{MwDFz(4PWT9nKEj%YKK2!(RpH8(=|4aFY7=f(|r)vJ;)Ikt3-l_@YY%>Z|A#PUVTz3VmY4PdpP)8;})22t6N9o1>>Fp4op*nG(h>r0yCYA#uIX7=VMvm}CO* zI05z)Ce+aHox~#rx(I~r#mNx}-uIs&X3Ds~C48l0g|Q1!Vz8p0HUsECfRA-qutOTL z-eQezvcpdU#^ejeg2*NA=Y0XdX1Jws?KK5ZHR>o%)jZA_2wYpJ<>uj1f4&Bud&_wC z`;W7y)TmZ0|Mc2*e5v<_W>7Tsc$taZ!R399B}V-W8z>FTE)^=ZA{`015xxHe8~O&& zK!w^3;3@f5h)aCziAIgY_XcjuR8*(PSgp(Csa`ya=ex%hTMR2r&5TrL#NX*8W7YK1 z0QXet^w(clz|~JdY0!%=^vd!MxhZ%$R_*f=Z+^eLXnPX2EcziNvo9hC5Bc9jd=wFb zZ1%PSzALe6rN4gy){zmNYK#uRmu=wZ00W)=LUmg6m+WRR_vx2_5^E{pc#I+18JqUUqH61d4%bwv6cR|GOm<$Aiix_@{8>Q zXgv#kL%3nwLHvt#_$}#=P7g~Jcn~^7$J^mc0S8&9(xE>BvONPTxN1Pu3<=tjAevVR z(Zr$5lxkH+NrgL*Ey{6cz-ZNpz$De>2pEO_9z_PlV9{Ve|l@?*Nw@JrVY<-uzEBl04_6Gq_fZ=htGoW&B}vtnHelC zG(kjr2hsc&hJD#Xy}XA`brflvbDY%fg2M7UEcl){I6OcX+u=U~wmm{;Pp2s@Juv1w z=h_9Ot8Iu>c1F@$Qc#;QEUW4rDPACDTFeH0tDa{!qJmzeUT=#m6`i;0*ro;@CpvT> z_j|-6!!C9z+-L``=--a0-PX#kt8=JeL#gl)rv4y*FFPM)(SO_e*nqnj3NT$bUjYW6 zEjDKK&!3ZmkqrcU@i!?bP_^&Ddew`S85VijG??T{Sskp z6!e2PcyzcH(^Fb1f_|xlJw>bk3W@?fvsEY}e-XgI=-zsX*X_|A0R0E?vE+q~*zUko ztAc6!`S=Z^{b(3})Jt@0F7 zMJ90{8x2fGF7t_K6T*TD`<(^5Phcq1!9e3%2fp#eBC&k&z~TCk(%lB!&piR3ZHI4^ zT80Ly*zikF2vHCEyb)Uc61?e*zhY?&LSy)gpf2>gFd2jnP^90+4I$(kh%$ir=MJ?5 zlCE|Uk8ylIia4|A1Bp*U@10iotGs_^q`x1A5^dihI@W%Tm~SUPV-V0)tN{F zFs9aUWQ^Y3O?$AU62hd*ISo=B?Az&P;QlL6rfPVT%dKz@Fn{qz!feYv2!@kZvGq!* zpEZzrkNA1410QLj19siUA^lMSp`{$sLr;XhMu_{3qk=U2VYZ{UH1Uf6GQuH<;6FXO z7aeK`2k*}wSL>nmu8bkGApP>zBs%f_{E2DUxOF$}d8GfSdSZIUrCPwC-t&XVTsXq- z{!V0XgL&J46}HdeH{XR<%BG(d!`&!2e@*m5oKld>;$*J(LEweks2^OVmSZ*RQRzH> zpYRN_E3Uph9KU>Ge}I_xEd~wn3p&)GjD8O(V~w6ro(XUa>i4oNSqwQA!{mq4+ObzJ zTc)UGoI1_}Z!)vg-XwLdW{`FANUx2G*7mr+p?`mUQC4S zM+1Kw6Bhhs;1+nbYomHXR-isml0{_H28n$k5i4*O1R7#(b)5y=6=36Y0GAO?5R?3XTr!JZGOFqStwJ{e>L1#K!zmC76fP*%E1jyJu#bpp&@FB<3Jtmo zP@_WZJlkIqVk6nlBrexnoG*#stIjPF4L;U9CsDC7;4{X}Nju;90|$enb~ff<;Bo!W zE=_*s`#|Hlm-{L`@?bk(b~z&dDwL}5^9>({)VL=6S@KO+WXsg48f3Y@OD1j>Zz|Yw zKb_GaPlR=r1R5t%|Esy#Kf01?)Vqwy*)?yGMtA%d^NBM!=Kp#&@-&X^7nfkx^O}$~ zA`9KKaesD2S&rfJ=q2*u{}1jMKaLeQ4DEi)sQ=8t*5tcGsCS6Kt4cwz6#lO&7>ol} zxs}z6ldd*lASinOyOW)}Sw~=9a6-jVDlOY#6qke&RaHiJJ1}t+e?H|qzRtkp|0ed< zw+TbN6E(*%re++BO5WET-rLWJ+1U>tp*O*Vg*0Zw(Dl1irWiWR-~ncWB$soCI^C{~ z{qOg~@5(WQFw~6yD2IUm`y%oC z244u>@op^9dD!E;;5v8eXkKtjF9=QgJKx(;;41+0vi@joqd$5kRI4-wzu5x(eBS(g z7eCdkl37`qxC_TuR+{-NH5fE06xs(Ny&GBKSo(xY|8NTJ6qi0^o_Oa4ix(7GaDoATo*1$bVYIM`{?_ zV&&3DCQg85?hW(?*bHF)_OrckyaC4^u2Ttcuybtoa2;Pq=`bPcLHFKgVtde10nPDd zy4Jeii22wkU@DLDL%n*%<*q>Zu>;_UC~&qH2V2?r^NfymgO&o(?`In)8<4*8)L!#)C>_ z5H29h6FJSCQFL)A^aq6em&M9Dhv?ad8lVpa#7fi`zNUwbTmbF>&?`k#d9HAeNVpqe zOnRWy(^2ZD|6%A7gwToymlfQ~VNa8K?5CALu(9(!&2L{?R4O#RhvTfYKi5SsIOi1y#dy3>^yE@ALn z1B`cYCa0G&Qu@-7QcRRRpTskn$L`}`=%J5dL^#HCIqW~+qF{6DVmc6@A8H!n4<2d~FOfxGGZf+l1Ns|=8ouGQMDta{N7VO^CRF)ABfjAb=yg1WT1tp0zIF*NX;dQ6=ibTUF!w2s?zW5GX~`|}5npo2&Byo=c! z3_Aiiw*}2b+%bjm2kihbid|&EZUZ(i7c2*OP3khow|p((;PjLYUT93XL+umEf{CQA zi4$GKl_2~BsB-j()ND>!d7okH=`P=Sks0gJEL($uOVMq@q*`Twc5OiR(unTW&Z*E~ zBzzRYK?hKu@u9nc7lZImVvzWM9QY&NSW>eFhOpp4N)Cfyi2DGJqCTuioVav z@$ua|%EXAT^Cu837Gg&b_+nws^U)TusjBl>i{aG{q$?qyLzq~tGR|2Jf9Mp{HCybiTq-y|rK ze2+$f3H`A%M+-RMXR~q{x?^z$a0~pD9sUTgc`EIB+TPH~gjTfBTtncA#l=1<(&6`4ffKCFc^2kqF*}iR)A7q82gOGl(GyWHGoXS z7YQm?N^c3V>DmYVh%wtc4;ReIGOAw&CzThKifJl?^Pea}-QcF41%*|Rf!W&ge(g*r zN1MFuNGC@nH}!K+_?#I@=W3t<6fzp0?w)pO1Gn)z4kN(r2#&uB1&Z}EbpsBdP+IsD zcDzd;xaVWIFE}lHb@z@o`W4sWLKa2;8 zBJzHpr=F*(e#dks6MWw{pAU{*zpCe|r>dTM>ZzwbNG)ws&hU7PR)N2EXmB6DrMK=E z0x2jv7iFu$JWypSP)`UZO*nI|42xU_q#IF+9U*T%%#Xq<@E1`nn}q3pd{J^(F|Zi zjJ&Lsv-g(ybxyl(UUSeI?1(@EmjeuiJe+17BUbAD6i2 zqOf$6%U?7a7IOj{OlmJr6k_JQi3*h_nj**W`08g-c*%2-e)UW@5m@ojvbo;;fj{r= zA3l=|to7#j-@v=TdBM}_pKL2#gG#FoTI=6Yi{9*O18CR(1)zh}c?0TP@?4@2O10j6 z5CodJZZrh?;90e^)!|xXRN}#Y&fk*SfXqO_@uG+<0Kmdh;rL6WVR{ zlaqC_^PctvD|Mq1)4pJh-w>GgRUY|Ur5y?Z%Xz(dDwh!LPCHrQH~?&@%A#P+-t&7eq?m5b2f@@duGo)Ek4_;2Upn^nzNqx-2* z>X*m;(P8rRuQxA7agyEj=ItntF}vPu`;$TsK{QZm8C9#tWuaVe-pn6~=jcZ}xy<6L zupj-543;NHOKgK@-s8!QeqX4?wP?YNEUx;6e^wS3SN|H+w~9q0HB8#M-h33_ggfe{ zb!&MvN9(Nmi)U!TN*AFL^RQrzWA9b67p(GBREf>=Y|O4VgZza@wQ_)XOe^pk@J$s| zKXS8^9k;ITF@N>ExUUOU-iXRpQ4a?8LH8+d2L<{RRMp;4u+|F%F7Yj$6Tj)zx<4kA zi>-Xz-_kirg1r?rW2>1JPqOM!_iJxOuSTplr}7u-E!L^^rWXaOW|4jR$x`79sG!_L zp=pgfQNt=&Du8#HjII@_-@l6QR<#72i3m{UHU09qBRw&(Pd)g=RK&`EM@`Z`9Gg)gsRcF$ z0}B_-*PHeH$qvAAWQxV1El2vUH<#m!kQQr&@fWT76I4~f=_kREsC!&ih(B1x@1UaP z=3q4+{Gg2C>q=)rAbfT9s`ci-P{>J#!ot6xa8;t}@ec+`bS@ND{WA(zB}yOJsi-P+ zwz=MX1qBw36qutN3MpBJ5(`KQ{zO$GCC5BO!9p+Ao6q5=1+x>w?sU2 zl-1J9`uEAzfgN3VBVp6+8O7UCZJ6U7-fwMn7~7(v>-vmf=jpAkp~mW+<2x#&btHah ztu7Da#!qE*b+uf2jbg{loWS__KgM9qUFl(!ad`%??g)wm{M1zre1>mLYN zLPO4#D4NQy0Lhd9-}X2mrah8f7KuaZknDF|74i~Km?ubXYm1E1>K!^qF;sJc;??xe4b4$t8t$98p@s zL+2=lsw5~L@q|U8622Vj6uxwALyim@Ox-3gp#Mox@R+$x$H*eaObq1drdvQ=`#^z& zKW9>4{qli=3CGdAz}osmk?!HL4zG7nV7>c+f=T}CX#sZBlMa_q7%bH7CMS@F9mIaj zluPOL!F6jHVpAX$mme;TxKqUt71G+14i{osAod8P_Z>b&bPE$XEuc@tM(HT!#v#-1=i&c z7);C`O#$|@2Mj1CkVye{(*p(+Gsv_6`|k$~C`}==0_|^y4HW~PI|?Sc)uV#^?TAjF zhtT&J@fKvafZBH0ATi`E$dZ8iKZg$zalfi$&RA@0R`bjDF)L+vA@I#+PNWgf{Fyiu)I z2tO?fhzcpQCWJ^&j?%xZKy<&`K!gy_?znUIFRivghI*GxRJz(fIL1!S(EAhY{N*HN8ifr#j^ zd9@|AYa7v8Y_PHzv(9pKzWl{VW{MrcHWbslHl`>IFF!>@lR=6r+E#w-YPY${(yhCQ z7%UHNJBDP-V^owY{OKpML*qo;RCZiY#=I}{1xU+HRZb}U`iE{~cN&%CoiqXgSII*# zY??yp(@#^1;Vi+CIGSDRKxampR8T7PKg3EtgLFGoQY+kbr1ZsLJ>&^HUHabXFry!M zqwAUSv{dQ?xcP5-goI}+DOsTHIG{LveN-meDG@-`l%#h3Dat^rpQ47#B=(!U*fVnK zPQ}w#7hZClaKg2rY|Ni(O{U5P0ehS{rQ?8hQaUkfOjD@%>lsQ7o&qHmBls6M9b{() zN{ViWo+1AON_u_C;%OMK??FK4h%ryKSX=V9Bdgdu4!p!|yLGTaj9Xiq8>;*h(&z(E z6Vjv0*#6Nqwnvjw4FKVJ#qv&$a+P$OW=6og>`VoRoL1=0`5%dL!uMnWrplB7;s)zT zV|T?&3XHCQR#JeK)^NY^8&S>6>zx|K=b=wf~}v|Es8 z*9#HW|55TCCOV@^lwF8ON_J2GvO;9O;7aO5&*=_ilAi7G{|s!T=zEhBLVnVt1hr~I zgFM~*JM>;Afz006{F6a`9;URXpkA{$rLJonDSs+T|Z=GwkWyzgM5AbSTN*M^Mn(n!HQBXE9_2RXKA!w)PiS?q;1SbOZW|E zDFZB0cpX)9t&FFF0?K)Uj!Miyz8G_mYd#e3BJQ7Jz&xo%um4S&g_2UijewZ09c~Yf z^zW>YXWmQ+(`Rp1<{9%APYYdUAYzJ+m<$i>-a_?w(Q_L2^d z3lp~X)dG?S=U0<=&- zFt>Y+DG9naE84?TKmux}1lHzDlohLhFkGSv7;+*C2wog>ySUSOoS4Oc+2Xl7e1)_* z`7o)mLaG@66T{xqqT&YV0{OZGcRPE|6Cy_+LbzY z1oi|E!A04^mV*u__9N5r-*MGmK`js`O0DE8dD#d=$A7H?MY$SMWG* zQ$P$}rZOZ&fYfVF53;+U!++M9cK>KMeeQIhJ#dVrF@&(vWw5jQ$NEiEVD3`bzUqoq z{%M$%UD&*s38{3qR?dX@}oq#_A^4y?PaBl=igG{&dxMhxSrNg*{1u>Z`3z8%)9{Z z84v{Rh3nyMzTmtKy~PVJ*tE@P+ecLt2JHb=liTTbwNb@EaDBJQOViq*@=1dR9k|8W zz$tqr+LfbDso)G)#IgdlJ7|?*l`Ck8r+>vNGU}qQ60MYbQi(Yoh&Fe|?|PradFVQf9X-yV~a{K)>|3!)*JzSfD4G=%4*va@~?03TW_s z#ObN`jABQusCL%{Wwwbuf6&un347+V6wpOf`;-@iw_w zURw(EBozJ2@CfWJ(92T(cQ7K!<_Bpii>%IrYUXEYwk65}Vkr>a66=~Zc2Yr_eYg37 z3op1}yD16PKT_&hF}+MYyK=Z`=A`CFT0Km9%tPHm96aF+LINaA!IAE~Xj&2=!B&BM zUo!&y^?L{;Ma>@@t&l6wQ(RodLZM2_ zoVf!DoI)jeS1qKkiH8%Av}BE$Qqr#IVOSlRu?DZ87keV(JJB5kw^X3Fx9DF6UQjBj z6&|jR46>{|1N5=ek&&f|2_@d31*zhY)XjAYscTJ6NSwH;hw=XZgH$i)PM{7jkDcutvE0jdOZ@Nz89Ge+p z0}J6%Jg(@$IsWJDJSZXots|X)nG#@+xIsIQ`F+XNzU$bT1L5n;mO(zV^3IKX--Sem zZg8J`527PnDGNN5th)SN_l?TB=wy$+1NDIy#TFEO@9-Md>n4&#j0Z@h<3Lgzq=}nH z8+%M%WbldCs4Q@PVmabDIoONgoFn)U+r2AS8b_uxv+vd_(9xSuW=2pAy;e}R?^6*k z_p3_RLq+2A@;K$EY6`R$zC#(IX&hbkieNU=&$<=NO zs_9ss4l3>APM_WHJ8T~huv^0tf{aPQtsQ&05vByE2Ya~@rUPF>jqV8=ahr)?+%l`- zY{3OkQwM_!!l{A_!kNO(9q=-^HaiF}l-Lo=1@JMrfM$z!3(-iRURW#Z7(2O=B zex{}Fr_$SCtrACpc31>8ZJK7Je#r=?9kUh&6qK{ViNtF>?aroi{CN z+`10YLkD16gps4zrUlE3-t$0V^GkahJH>K~NRvsy`|S4~8veKc-1)B;%Pp{#1k35~ zd!Vo_ircj;ZEOZjk08GBLqdRB!JETHk(VbOv~YsscWA9u_Ko!K+rfL6;MgW+w6z~i zJH;~A-LxuA-c3r%SlVU?4g?Oyo)Rwp<73KAjb<`hwe<1YgZ)En^W>aARGC}mK>6_ppBl3= zBP_h)(-BraiDgGw;pJi`Seq^+~ zr0FE$#01&7!XffBP;)FYt~t4BP=r;+*W);U6k?@O5o#EJAolDCrY4up{6la3?hE!DDu#`1Wi>`xhJjBzK; z3C4Y&Re6YhK>kiY#KTr}J(sN^ssi*l^7i0WbD}s+U;gS z5dYH`Ql-mWbUH4w?CML~JUEDJO}Bvh(~>~y*h~wfvPjMb+2)Iu+;hK_N;da+r|a>9 zkqwAzO;JD{|K+8CY)3X}@>XbaULZfyVIYs2YKSG$$CD*{YwKE5lBTcwZzVD@2QJWM z^uRX#Ye%TccdMBa_{+Y!Af5$eta#$&pS>33=LOukUt22JRPx1wW0eOUQxx#;Sv(p! z8(mgN(my=dqL*u$I2ke10`Y=bVIU(L>fVAgK=AIs0Q&XuzZZjqA1>#?NiUl7Kes(r z*w``^1>}Rj5d&RX7<8H;DrXrsDn(#*eM@1|F&51VLAXb&i7Q?x3Zk7@hk|n#{vDjV z41>QL(>Hi`wq2UtYzLsJW36Zyh5RE^9_xf+z= zYl$$1Tmd@}U0u@oBYAy+jKN9k32#VUSZcx4v?7dOxww8s3va`%Ftq;dJ? zs}o#;28U_9WrY!97q-J-jtS{|wxJ1x<@Dx^$HENx|hLUw@zU90i4QUWW_ zl`wBT1r=8Yf*NX#Z6;v_kt5vsKJ=A?1$l~bwqP9xNO(|;qlVMAJW8ckZhjNnYIR=3 z_N;joA3xf{T~hL@#lLGo7tw$Xs0wKawh3r*GA|>H&c8bjXn?zijK-vcc$?Z%JuhH)|G|ML_4JWWHl8q0g#KY1+t~5$ zW*khRlthh6a|LH5wQ*9#$XH`01pjOP6td#|vQPKGDJz?lv)qe9IMyT1>` z)iOOvwP#1)h?x=^>-VS%wT5w}Ac(z|?VX=?eFyBJ2RL>>7l#mhI5ygc`HJG#5!x=$ zhX1S*u#9c-j4eLGJBGzH1?Y)?QIeMoODQ&af%U#6z@(k>0M6Vv{CrvfTz0P#7aP}N z$%lhyR076=K`9eP1awJ2PCwwFoBg9>Loh29@|XX*bmFsz7(0)l8+Ndn72F%|TY!ea zQ6%fNV^#&0<+9`?gm}X-kb^YvR6i~HoCVyXRI%j-5?K@l=}-SA$gRPKl~JeA45ChX zwZz(}=rib39=E|vvrwYn)LwI|VAOQ# zAH|zgeQel46lsGQILNwP*@a_@q2Xa(a5weifYT_FIYpLjVS>;_GP|cXRIY8@hr_mm zK~__2Yki=y*C@E>b!;&7uOri{ljn+8@4!*q8ie(RJ1b}c1i>;7yM26^yEfoDLYj-h z(%Ie5UHT{=p61y=m#ij)iuWAhs3CNL6+z3h!of-^XDna5D!%7a$X(F8^DxiCmYx=% zcPnsqS|*$7n}8r{8~VbSBP}tnl)oL>9rQwVKu67AVtDlaI3)qN3#|1rC4e5+sa%SP zwm7|kdDw<;D91)3A=1?tXM-2m8)e=Cu%x1%A9qJ?O#LL%iNZycfURe5ovc?0zqmc_dp1>r?jpM^R-JK)>^MZ$}r0k6uP<58u_1kMb zf$Y#5vaeA$b~d6mI!C1qz#Set#yCd0nH1dpM=K3_t)=RZU&Q(0H1i<%vIGL1C6l5T zM^-gynRDcN3DGubA(^q+l11o6mH@R50gMZ~@>>*%-@|KtJPH!4du{D;5ev=SrQcg&W{HLkhRP7Ix^`fQP|W3w;~1cjyIv!s+^xRF-yItqvXEip(u()FYK&kAlw=c38RBiT#-o{% z23;#vzGBs>)tGWCJOs^*2HrT`{HxuSHd%*6@Z(P~VNJIX@JmNX{IDQI>xDqT;8+;# zA70tTtl6bSpd9FOY_U3@>n#E@vB?-_egh@p-zB%ku<~f|T53klXb~ zNch}pC53f&*j>brVqo;04t+X&>Ujn}D?rEBsIrih9Jw)I7}eH;PI?&l^!C6|9BGbm z=*F?m;fyX^M-|g=xOk~kV4#^00&ZTbTi%SCGP8KGG&exy15WV%tI_TYLouNBzK}RGIT~z0d>XcwO=_!h7Ok!n% z&W8Ob*RFK_Z7VOY_=JbfIl2Y<&5C95?b$Y(mUj0ns(m)qy%?eDoPOHXn$s=Qee$7S-+zY4uPq45|6q^7cob_62tQm^A0xz`hi%HVz`yQk+E0h1!BMPT@l}Y)9Eo9R83Kc`l%xhJQK1YX^35o^_IajG6<1A|2XR+T$FSyHPU_-i;)lkbl22>ajZ^oR!ecbs1 zKdRvIWhx#6#r^GVS&!lwII!O^j0Yu6ULZeSG5AU=R$=~T3kx@0`P8IaD&2R1vdd?O z-o2k41gBdkMETrGq#Ed9Bhf8|qnV-wRDPxcBy(E^S284xp6|qM$+Brm{o;k%j>5Je z&)|?n-1>n{YBf+-k&qbsoV`(ScR8@^xULl{!jfyVdZ4mnyh+uM+v_5USLg8JP#60>YD^^v@oA5-rgjM9Nl z1*hXLmn20mdl?n%YKMTe5+SZeo3Y5%vUq2~0wxxP}m8s$R zWE5dv8WeGc0c=czB5sInsVlk|uy`zLd`4zV-$);fEmkWZ(t~2I=p%7Zvfa)vdN9w{ z;G)?Z#<3b*%Ako=SUd4DWpQNR*0Tusfa|FYu8r!1rY?X(K}bXT!tr{&f5&iT^Cm%@ z7le;2rS(v@ugO`ZItydV+<0P_Y|iB|@Y=9>lgSI1l7jPJt7YiND2{gJ({~4yRhS|C zX&Y`W63bO*#b)ZTPEk^Gu{PO}#sIlyU%Fc88EioDw~r20t9HZfPntv2e9#0o;zcK}avN68UIkFs1V!Y+4Tzk) z%44w?ae}%wVkRhP(aW?%?Nx>6Jm1P*!-O&BJ|aU}LK-mSTu1|gqtFZ^PFG#sl=^^% zun#s?sjpZctcteGtcd^SR!X1Q`l8L#QsXiEw8Mt#<+_Hu1rAfZo$HF>bkJaKp1QcN zqB8=H?)WxjsW7R$Ct|*6sB|3AaT2mb3=x4FcEhly(P#2P-~CEwmTV+#tK08%Rp#sr zcKjOiJj>@xsxefo|NchiXOOI8%Ll}9}|GIsv94XyLG z8FP(AI&-ZeKPYY+6uHbtwTeSApMt1brV(@@68IO9#S&+%MiIU1We%a5Z2lHOrmY$0 zfwJ4*Obe)gyIw)Yw>I$+?K;;XbKEdz}ZO=K4dp3T4TS* z?+6_ATim?}&r#8pWl66(4yaNge*>m2xJMGUni6SK)pZMn-%?7mJGueJZNci@0!P!W z%aIZn2d+}l>Sa!=v#nbHDEkV$79}M`d-}~7$mN|aGbbec!wo7lbwKob@mS%PTtO0~ zokDT~^DVOc<#l4c14$^ z#D>wJ7hm%tq1Lj%6!tm}?5dn|SkIh{_*`P7d{9E39P-KyIN8)6T**FSau9+zH0>jhVKnzV!h`Nqxks zi_vvx7@gv>klkQ%hge$T$)Fb2mo+E&cYR3d(37X&JmPXYrKs6u&9K0E9t{i%9IN(& zUFJbt;PhVHd`x)TO~+A=;02=S+6iIh^B-20(xNWdmjUBgqv~ZnbiboKC75+Q1>8b% z;#YBJi*%(=X89r152+5Fp|mb7XM% z537nRl0yj}8{wmDmIYBZ6i$SOE24`FO1eFLprUQ)4MxEDNK>3|C86=NpHha!p%u6j zxnqKkil5A2&rzY$DjD*2CERvhT$`K`^HOo*3jt279-*Zuq4y{y6Gq2k zOdiRt1Pu4?U}Sk>@zfaY-Uz*-{kcOgu6RF|7X;(NS1R?^_-JL@o=OwWM*(!yEdf7J z{sCuuAr8&QGOG%LuQw13{W6plOOgd9E>Tpl71KZ-sd6v2Uc4puCbejzBOv&QX> zE!d#amoEli%EMHG3)?O$7AykFzlG8-?=QSnZlq-3Fej4_rC$k3ncyn?z9`2HZ*OB# zYzNA4#oKinqYhINF(Rsk1SG-Ifdb?oan0Zd^`=jFO==%Cg%9+jO5zyezfp8!P}FKx z$_P5vd(3u8tgD zd%uQyI{b0A*NK730A4VJVpW=As7{DFT=i`oUpPk=Lp4}LY?@wfSnRJ_kEx%FJc7~6 z(8!MQQ8*t%90L2{|D!m@aZE~18*31IJRT5vugMHr*~RAxd1?B52O`{{r8R59DL*N- zOaH5g!&baPMOLIVIAf#xHsdf&L2Ubu8$LAMmkLL|L@dq-Xm>)Q8kYtd)~+cDyluBW zaBv5PT1{jTHYI^M^xZV}(?_e#-euN7Ip(d11s*Wj;<0f*_u<8Ji z1);JEQAYvT)=g>k#e=kl0BwU=skrAhrPof?NrX@f+hjtj-s+m9Q-}tG;|Rx@lX@3@ zUs0sjhrWO;Zc>t}Uw2IwqDouLO3l~I36f0cYeh_sZnwi?znbDMt#`p%s_Jwo z3s6!x$mTmhM%k30fAx=*jQAPc4nDA`dF>B{p)*jY`|LX$iHRGd12o5&DS`g5pGU9+ zIZdHCvYj|FQV`Auc=$O(emeyxbux?A{KHis3uyPHI8 z%UuploAn$z#Ku^c$(*2i_iq%X?2Bq{4T>U(8vbpOK!n5nLnG(H6>Fvi{t0&~9-C}D z(2176Xy|Pa8(tagBI5RKTOT-JIBVPS-eg}LcPfg#Xq}CDVHyH zBN~v(ofVw_^6%ize1ue{%hH-Q^@>`s*#QG}UXY*qdnMxFM&QBFMFRl+OE6i!4N9aP z=g#6Fv2|49FXg7_u(gqTgv8_i5Fxe4?}{E!!orKDj|}NOWpVVfAJXK7*dy@uq1rGnG&2ad9H$+2acLd-Xn zsOSWcqPRMbriF~|K*r;9;Aor^XubC;tMQS{taTi4e5D~GXwFh~hZNhtZ8QWTXm3&;nQW|7ZTm`_HKM1iv> zc2=Oi@qXdAE%cP}taOU9P6?cq585b~$;5cv;+6^<){o_1_x=%irSUUFafr4@RbtHN z(11NM<5Wg`h)QST zLRLZ-Z74#gKe8Gg8nJm)a=y$>k_y*T=K4oTG~Ghh+J~f(hiw;jVhRT?MY|7kmQh5o zthGL>Co6#y0cDO_f9MvWjprmRo^&;lFWL48Rlk3zP?wF1q(vHx(c%?!0f;sYt}#bj zNL>$mfFN$9-UgFJk&IVGYu(0Lw{#b9@B z=MY^660f!Kale{^*eJ6MbrY_pN!q5^c8wA|C4}C7oD!T$9mDtMT~^b3{ifgE8uxF> zMX6I6bUFu#Cs0ZD-41cWuO_jD^Fr4{mMMJ}RWXPTvF9AU-aXn3t!6$uIqYCj5WL_M zJyxQg=A6)a?4yO|h%`K-Py!tCQ!)q1k(-wW*~g?cgjbq7dHE^v0}q;FwL^2#_Ms;z z4Dy$$l;e8{cTdHewVpogN9fdiBVAX@3Am5{qxJ**W^$?5-w#9#Y6aP?KxVDby-qv@ za#z^9Js?ZDldCTL2+j@UBx9sAg6u&jDldl!YcEH80M-V&Reg4|QO4`g0_^(73D78V zs%R$V+h|@9+pVnf6lt>2W|f|hy5~P$C8S>LU=w8TPku{!5P6-(WY%?4vO7>pcJqo= zR!>%TVGI-n%|{d+A6jT5h*(bFE7!)g#e>;_1pm@}c|kd)t!)y_k6s!F1JXrpyQS^L z%awChfnWiTv8{sf`#w0vSr9q*z>K|_Myj+TVUKqgltAARm0g@2z?6iDuP8Bm+wUv# zY>j;yb(zN^;_h}hJj4+ioPCH$oE1E0LNHT`<~OZ6)|bA>Oq%o3i?L88z`L)O0BgR6tKp!q+;rc zwHn!Ztb!&xisD(|hD3@D;b*(Ye((vlj zl`|xD!4BNss-3&AFn@i#CC5kLI2lzYq}6?{bdfI5RN)aA@Q@y=U(_Mn+;)$-&o3rqJ6^4FZ>$BqJ0?+ zEkcG1zPYf#1Ya#*#7`hQ{mBU--&BHP;Ov9XX=@(cmJ%?1144fCGq1kvLXrZpvK zU$<4!OZM2{;DFEpTCL!oyavXO0||72A7u!c)`&YaJKC9km<@cb;~0}< z_?;6Jd(IP7**N5~rZ88?o@AUm!lo~Cx)d`Z5GKx7qA9lhK?t1q^wov)UL_K-dYkl= zQZQ4CfEjK7FGYnTAu#9q9>Vdo_;;Qm^Sym|E_i4TTe^+|dgDd6Lq7SOX95d69PF5$ z1>eKBDPECjo9Pz~X?9X}viQxu>CVEh5>ADN&9t8v@RuqYPYJ|%AswNPoJHZSC8==p zcBN;K$Ks`446$R?ENMjYQb4tVM@9H+DLZP!JDGaC_O&;rkX z(IRCgq~_-r(*n*6N|R`2rSdV)QZxX^*^xR9Xoq@S_-4mZPO3jsoB2Ap9|rPE@}bbH zBCBi8r7Z;otbtiYA3kGGFM10<5H0m^$Lkhyw?J$tWM2iU2ntP8zdT2AxAa2fwXe3y z4;{s6^{SK6x^3pqH(`(zh%+ft}zRt(fU~*}&grW+?gA0{Ux+I_$ z?TQ5@mS3GzT%KF#C~?~@?f&)BpgovFJd*-AJm%cWs@!=JfFIsW%g3bP|A*%~I(TC6 zeF;}C9wLz*@Ic0!h#{{46e~zhn!ntEQN6j;>kYq%F;EyfQ&&O&)*k_2yZDiiCI#A> z%ak~UT60k0TA-&olY)jHf2hm>nBv*!5h(KtEsOV5(e$0CS$aGP+!StdmP!W}oXLeq`4)&*mqu2bJ z^6mCyov|A7r0}qxmyfG=BmfOm29cqamX&V#*jbiJh_{pBs4AAh^vz{KSSPuDg8oV5 zO7QZ8HjObl+R?+oD|mV<4j&+4hy|_;f{l{E@V5YX*BdN5ta+CfuDK!J)5Lz)T2m4n zKXAAtW28BA64sG<`{D{-3w>jCOOK)SSw!R{SF8D6Ef6pBa5 zIEhKnjcl#pi6a+~rEXTJx~=Z0TLdXcV$P$#$05%Q4vpF}Pmm?B=<2Y$qzy4VoXnh1 z^0=rmrzZ-yHUD60=k7RCz`_gp2*G0L=@qQ^y480&S`dE5IJ9cj6UFgmo%T zhWf_Zg+)XU;z+xoZ-|FggIRObeM;Z>CSONV&#_MNXwD0^5yi^xYqx)P%9xa46_!ew zrZm%(wx4w{7_=9>H|vvx@RDpLFe~lvQ8-?(10p1Ir4`P<%HNI*gcO+~vi86oOe+%} z3QvhBcpwB2kkCLm@@hppcdi*sBs<_GyT--L@^6~vz ziIdhWAS7!dOiR_>FH>GPDkV&AggqwIVn^ZAuaV`3GLva0kr<`pl*DL4V7>Y}g~{9d zi6GUrcWpgsCp+m29y-ISz>-mRIhZQulvep}5&`foWGK3B)5{*2PZ6704dE$K3_bxQi*OIc#ZbgE(f& zG;Zbu;Z2h&C7PMEeXL1k5a&^5TB<(lmD+^n`!mG0@J&YON@PhYz2gRDjN%ZjAC9!7 z&rcQN2Xm`R%FNVgb!p~;9Tns>shqtRd(3Hp{Ql4-r0S}7I?-dJD2`S&uGCwUb~ZeK zJE2urJY(ZHixVKff0qJF%qUTP^Az#bml5kkH88$EcNVUv+7fIYggCVPF^3np~s%6?}W9KVa-t4gPBoZWOUDyd+89--RKxRtXcm11E zoen2yLCBj_-O}*4?~4G~?j5MO=S1^caFrw3Yc_FAnu~_EtIw;9)!@1w9Ud^|{T9vp z+F>pA7NjWR1 z?2*Ew-2p-b%~+!v;OG|EwGSO84lpODHpxx|b1I^y;3tKDJkZ&hbrg> z>z+{4%bu9_xQd4_4Uz-gy+X>5KBgpj3V8L65)j-siEb9;u6(Bpw)A2bcW%|p369B+ zr;6LRfOoyQy;i}+N60~IpZW=HB@24mUXb@~u4#`n`G7V}M{)7cSdA0J%}Bi~{!@j) zAt1r95|c#JX|H!9GO2+H3kj5;c&q~e{QRw`&=KxbU+&AuiFO7^k+M4_0SE^Lt_ZOFCqACwjDGx{sJ{!S?hoN3jM+@{|Wt zFN%lF_h3rElS!sWn*PdxVC}>q^be2Vqf(p4-rtCCvlYh$)$=QR&L+U;nRx-&^VKMA zVJtOwPmnZ;cdPzH$J0A7+Gv7S0d>0rsYet%skk#ND|#;k4~I-?X57pRj61)kA0Gkw0xt=-bxv95T+@W zAM^v)sLE+iy&WFKi=4VOJgI22dM+Sk+$b2pw8z<2O->+x{dUEGgcjRW2Vg{m58{%Y zh$71LpmPRK%;DoLTyRZbl5oLfP*AClj}RC*THY!uE&gpx@XixqJ>Fq<2b6%L;Dp5% z_z>8PNHkp6Y?j!PlW}sTJ9GiUBEj*m%4k+3_r_m{1bsIS)hVe_l`khv$>)oHse)!R zKJejLc7jPV=A6k|Kxs+VcsDnWOKBy6{;uCBmY70Z;*9`{&j;`&MdLXkAB&yi`pUR2 zZGrz*k;FtugNC{)aH6;cE@|KrXt=x0|FuA0ey38N7@JWvo;W0qAurKZiYSEHo<`s79;tl&!5dZJFI!_KrQ)1620q7z> zD1vy{Q&1EL&-h~ulGiTs`3FZg*5Qxc)enwfW581v1uOvHserTC{g2QpnLN4=8}@-R z?Apz=wA=J2AuJtFANB+E5`0mr74K4AAbt(g`{x3cjz&S6?Ruc++f>%eINNY%vhKjRLsvh!~*7PuQMT z>z&3XVy7tyyq`O`cCz!!ra407@0{Bk*|~iVHJ_Je%Z?PXJd*xF3^T@&myc6gDdAvF z;@Ci~8HKjGMO%9mcr3hXW~KbPj7kR9A}+)-yxfA*rPMU!kQ^pi)4!&>L$K)EC zlh$_@6ff6-Nm>y`bemh4S7hukb z7NGZn0?4Gt|4wLpmObEfQmdr-saBzQNy;f%)65I^uXut;VZlMDO<*fZ-IY&L$qmI~ zo)-inr)o{pEp6*3DGaEK)!1ph^^oMz+5t&+;4-0=-)@IZQ()evu=$u@#o~p)M>+#E zqs&Ro51g#j@JpE}qKT<@UgdCT?5*7R`D5y~Z5?(4}{KgB4kn%F2Ipo>7siIy(Eni&yPZi7l0c>H}2-!s+W#tx{;E;2r}@Mk=Xj)SZsT`ENEL4Up^@)r#CC=9sOfSML}A;r|{i39LYw@LD6wQA?yrs>1A0a z$NAs#z--!kokR_FoKkSh7Nx{8)$4AC9h8cgpDOKSow1Gf?=Z81X6#=Soy=m&Lxy<@ zo;dMctyliy1X&AE<5vliyZ|xt^69d-9BE@(FT0&D?FoyB z8=Dboexp>$oUO}RO0$dVaD$q8X>jzp!cMFv<=CcrIr;t;t;e@(6udX5{Ai2NInZDz z)6)9e3dKu!#i~)hId;M5KxLHDMbQPhIjQ%U^Htcq26|yFnS<4KY_E`yCD>9s<8HUg9AUq>X8P^A;> zXa(*vXES-Y1aJ&#X>i%QB;fw~Oa~VCseQa5uFJ8$>bj`phCyU;UkTr&GZ$KbkJ+Yx z?QC86sogD^BZAOD?8jRsFEyXKeW4bho8Cz3sy5gn*g==HdZhMkuGKKEnNr$#M>1I) zU?St3+gTSWopohiI!w%*fGb_3#6<2eE_i{l+TiBe>@Cld<~GE_hxd4N_U2(9S(s*8 zsz16{oAK0DbBpi7VCZJehOx%TQ2De|OkUc*_7Z{P(XrKSrsTs1ONxlSGoK7hUcOJ$ zQ@Hn4N3yW?Jg5scIVv z8d?x}i(fhD4 zCc@J^5hgb1PMA_F>==?08bahh9S($vBJBA7r0V6~k?QepM%gLk!Z+GhI_WJdJVZ)7 zFPPjL!@Dcz_m5P_c{3x7JZz^54n%CNpVt_mbFm=ZF%r?mMChzpy>630vK?|GBsl?o znL{#4B0X&IuplL97@^n#xOWBE z)e1DGILRj5`4duof8sH(u!%09}TYMK=XSm-C7c zFZftcz)q8ycmZCsbxRG6O3;HhXI1Aj?8w9WZ5rcm3-D^2E8rkmyxJBmn2ZtFAVzjG2StjI+AJvIeI_b?EK<*LFSQC@wtcJ`{mGu~wNmLH>I z%*c87Y1zS#{5;3vA@cOzC zLRon1EqQ!^L(YAm5$8U@d8Qv?TBs|zk1+7ctqN^MDLoIl0f>W8x>-UvI^+(;R)d@WT%*JskcV!M{7{dh#vX$ zkk>nIQ3@#q+Z494_$mWKm2+@&VH>CNFiolObFB#5Aw4SwUOsGLkAZySlmo=fOM_K! zR2nG;1@GPyq5igVA~{eLd{&nCPYYk3OuL!x7U-8N7GI&>uq^P|sA)=t+?#|P;X_vy z-wp(v-x#}~Zrf@7>4UcOtZUszzFAq1_qJtHb!=fK9ZamLd4YD7LRAhVI%;7kz&5yN z03ar$>6*8s3jvXugKPtJ7FNFHNUKQYF*d+*Zgs;PDSJ6T!gRKxYgc$m8e2KRaMpWN z1hk35G>sDxy{ns%BAkE3i!f)$i*Vo(FT#OGya+qRcoBAr@gnRL<3-ph#*46pj~C(i zHeQ7NWV{Ib$w(0tz9&(#B~emLl=LP_O0ERm-Ekl}EYR0F&Wa-Y(GO}L=w*HM!>fbX zEBnGI3d0j^>6}n52aSnQjZ_D5x;pVx73h<7%ZHv|RVOe5mm6;KL3M?RTRyDJv=Ht} z8imf(fh2ijK(i~UQWf;19tzn+Pv}RzP-zR$Wv(Eea%yp0(X{57Vm~9u=gD?fXnxp7 zg!af}V>1`zW%|n_=$C(W?@*v)dwuWb`steTjo>R`B_4ZFV6ryE@F|HPg*2D z_>8i^hH=<|T!0RAJ&GN&cz4i?&I$)vl#~dajREQEqN0?dgIy_ysPwoAP1BaB`5t4~ zc?pyeglI{Si(*%1S2#=4Gt2RCytK~=lehktGAox|6ij?`7XvcfsIE10()fM_0#|~! zRzQdZ+9}K!j3%-@@TDPRK5MD?#^;n8W~#Sv-CYt`#3q`5Mby2dQ}ZwB*ln%9a2P(tA-LU(0`y^LkmrD|H@#iQi+QA|;AU3rV*qg*ob1}meLW%1Zvf!Dd7I|t5L8RXuk*^0p(GORa-@gSIAHUYqlG7IIx#YzxaTa zTNN}zYHeRG!UwG1?!#DZ$i7A&PT#zN#K3oth46k6V_wCUu~@e8h7rv6xG@?3((At1 zF{E>*8$%~{9%*eL=LG!xakeBTD%R*3k5lUE8V=ThJD9Q5cHWN z8PQ5egK7KA74Beyi-o_b>4=?som@w5VlCS$orS$G63K!VH4<`#$G%lc*<4=c-hhvj zZqr=nh2E3C@91`q&%ZDT&7)*f`uO}c!79K$P_Pi%4;*iarQ#!_mXeI}^rm}cQnUr7 zf)*s-rw2N_JUX^TebPK;wl8dIInyniJn9F+QS_b&{0mN4olaPB;j}0R297la#&w4U z%cka@6c~^F;gaa0yIrknZOG)M{dEh#AqB<|=qxxLb^}k9%yUbddMiEQcv7Hd=2RbW zNnNJgV83a-o2Ae}Mo1TQchVDDmMWzo?1w;U-L^>Ud0NYjCPIukxu+2KzMm6wnVBecW| zlTflO=cMUFf2XpPSU=+JU01m?cG(q#Lb0w%2u06%GH$WCX20JnPzC_Nn%wVF0Axmx zvPRND-Lk)M=P_0)VKJ7lv|`#}NbP`^p<&AUVsgU5@yd#?f{SF7IhL*k;D$k7D$Hrc zg#V=4Ao7rVR70%><#blBCV0@T8gk(86k!U$eSZ*PM&};ih}ODoB!7AV4Npu+{ipm< zJHeVA5E~X{rV;#mql(X;Y<9%86 z^>jXKd-p@SRQB7sN#k2EaMn^u-sNUWXLYSn7C))1E&%zDKa-80KwfbW$Vjp!5Lf?2 zRVkh3_y0T!`SgQ8hVNA%zV#rGuYb;w-f%-V++q#_`cyM5APe`lC;B08i-Nv24K#0V zckCNOxRc~{>lU#0DR_`c=Gl-XH`lOdzDHsO6X<<&CfkL%tzW-r}kwjT_Pkm99T0iFn(~K zbc@O@hz^(S_@PLW84U85IXgqC3|O>cv^2q8f;%Ka%Ny8Dkya|@FF+dtZ&6p&5(A0pSO;FOU2vW~NOaCBtgt))roz|}t7iWYM| z&cvR}&($d8aQ1`Da56E5Vh|<+K_q85De)mqarKlrPMK_{_t?|Oh?^8PCy!8eiM+*) zxRMH7mQEMyBzoeL?gav8J;9S8qef9a{YXI_4VskK-&DNHPFggG<%NK*H9Z3DL7AmN z1)g}=A5VUEp*5lp1|7E?|z9C4IlB9|Z(A=nfw5|e76$3)f{O|vE^(0}5vh`I&io2S{f z(-iHNHT+K}NkWfC!qH! zil{0t2r_vz)IZi3G7|!3HXWRJUUF{g@f6V}vOW&qo;E$l=fA zcq|;xXMW%1rNtM=`st_}K?5aeezOB(0~&Q!^Ud&p5CRh^1QNNmaY}BcrOCq{rW)qr zBWo@`a^d!COimg;>QM@yJ~)Qk5?FTb39hwr9L_`#RKxp)Yk~qJSgld&YQVs1_Z0E)WG#ms2mUApp1pIh zRl`O3;wF<9b_SKLg)XE1Qq;r)S+R=1tn8u~QPY(6GY$@I-Lw&AfNq+o(q;e}55Bwb zxT!$6-$6nkT-w1vk}U$oyHK;tcG6jomd;v;D|L@~u9{^VtX!0)XFpE+o01no!f(II zN0Wmxl!W_n>0NBdUGLIzfLicTxT54}blO;Q+Q`{bmB4H=u-3T)*~C@N!I=)}4a$}k zdPQyEP#qnz56I`8GXZ@fk0U2n(K1P~PW@UG_W!72h*IS|%&LxFkPd{&TM1q!e>)Zc zq0@O31OlpIvX!Lm?T^>qa02tgHwrftkDplrQFxzDmY#FAB2yyp<~a;xNO6Vh?Ic}h zUdXw)pn67H@A_;35)_*^z8tpv0@zwj>!>aXqNAUva^RQ-AC9vq88{Wmc@=R^zoa%a z*&A(#MNSaEO$mr2++igdTxSfW;Jx^%dMcOU7Lo$>xtSKsZ+ud!%-L`VuscIno!Gt` zajUCorUcBFmn%3jU3B+E^9Bzk_i`M~0w~G*8v!maa`5IcTzhPZbvx@ZYcs`Q1D~`g zC^QcDGGOxK*ipN{2Ss}37wFnu8w`-)IUM0eF*@7XzLK%nG z8Xv*^*0y?07*>1z~_}Q9&7eA@s`{Ju5A zqC%1PWkd0Q^QblXS}e{Y@_Kp%SSVYG$@#|9dE>J$_?YI+2~Xtx5|Q?q-$ zfD5*jg3~qD&|o|67MEMJ8|g(aU3)xgz5{k4R1b(J1Yv89_LjA*G}t88s)##{=fHhx zCZztUYn9+J*@3+F1koX+i%7ec%-GN7x2Suh@n26KnG<5<4AC~#ZauJqw68Pa1`lAox2 zD|CxU&qY(-zosYq*xJq&o++qf0^MLkaW{?+;wdRSwrmCQVfovkXRSULXEf_&mIMZx zf}sj3nUkF3Hiq&-TxURlzo48ERR4UsDgc4>mjGjp&lw(vz1bs`KYWIE+(3hG7l4!? z{bxcYNP-;)oQ60fLQ6cd6{}cJK;+6UnIUHc*_lsON-a3o8{+EFz_kQ0_W5t`$3nHT zi|&~B2%t01R4%MA{T0>>Ti4v@YG!3@-q2d%M(NNjZ3a3HJo{a$_BP3TXZUJ8N3`Tq zCT3wXq>OA?(<3C^tE3$qi;@a78cr!o;EKf|#*)Hx81v6o9+%1AjyQ7JwCT*E+x(o9 zNka4+D9i84E*p?h61aQTtK5aqnkSuZ{$8mfjcpP=zU0!*TC=%SxpP{C=2gBV6}d+F(xy#4Yw$d=DoY|Tc~Oh|>DJ<1PGM0pIB3ZFkRGUEi}xZU)) zd6OlfDG={g$X>9P(M@O3?Gm%WBECfa#wi6jx+~6Hm88ypw5`ivXQawwHws?~?A!KK zDoqPFFO{xnUzq_$0; zdjVD&XJgdm}tbB6!;w6;! z%Zpv2a_+b{!95ZQ5d6HrU9&~uqh%n)b`O)th(d<3O&GqWM?kzmK_zgaCckAfB{i`_k*G}a6}(1n2Hxn#|viS1+(!21g1xU&c_Sr ztY3n}Y#cFyiJ}ECuA&97z=Hy;j*HLE7LzuKQ6h(OBEW|~(+LuB)9eQW0reNl>KfHs z3Mt?_;cNn(eUnsTLm-S~))?U`lBc?RV!3b%dFFaqlzLfSiBi`g@ann-)6%O>uUv43bLD6;Y3w*>8w9*wq#XgV9z z6K~V4L6Ln|JSZ3*E!z9ycLd)w&2&B-JDMg_(Q%DWnnbwy;ECp^#8@afd$o*Il zg+e#}^!<>U~krP<7qB zXZq~Jp8$p}gucd^u~B#^3^lA-?#3*o{g!PtyRCukN`|dVGw^8GY1oJVyPZJZbv70% zvR0v|D;!mt0jk^A3KjbFLZHwjJ>vo?v+lkF+zNXhC29|Ix|(C_|9nIgKN$hYly*9iV%e<>p!s>wSg;T{(6GTFbwMFg^Qhg4Lh>h|Fz@0dJtb}g zZmKpm;gp8bMa>H-yPG-|`|JC*?Hk$A7{*y0?+M==3_Lr$rUErauF2vij;zI?d+H;s zMCi#~R>i9e$GuyGWc#7xfT{-UL5wd+i0AJBW^rjqj)ojt!lsU2?Y^Lsoo7|+c&-@@ zayY`Q8Q6jRTEgf@N0s4l-Uz%NG8jV-huh}|LjbZa`RpIed6^=lUs#R<3ktk-t@!aPrqjp_H!%O|LD6>S{v*U;l-A<}O z{x;{(P5M#s3SVO!gSbK&>EK5x2`Q_uQj)68mVHVMR0U}pDIGe}P7{;Gz^!O!wBX!Z zhMac>E)-knhFAkHcR>rfg@R2JN{KTXkTXbK?vmp=NLy&R51daNk?r$yW?>q61KxKF zPcxWUw>vYZD42ive5HWTu0l0TnI=_{Iu5)`hD{8|1@%e<&76RL%nLmlma1wgZPkJq z#$`Wr--!ye$Q2&^9=D*e`lW@H5PiV!mWWZ47sPK;0?7FWj0(-uPcwsEcWB9&lKL-r zkrFP16br9XLU=I(0sESDeyXnOO9*F>hyJ&6BM;#;_$?@ZS zczoBw`0GJny=|`*pr=ZX<&m$ZbuQ&tHZQS|*2~{ue-l)_sLuPb9;viHt#Tw=(1g@@ z-%C}NgA^-G-MZPE(>vgOq@pc;BE;bVl>`~BG*mV?<-;Isn|bJ_xo9+IuF(JEcu<)W zDjjli`W_+mZ%T5sf86P70Gz#fZGn>p5ODJ{D~IP_ukujddlI|{*JPA;e zh-i_c@{?W!LZ#k%^t#|gK$aI#IVse=^_6id54DHViTaQZBNrT#^xIK)bdB{_&&AX` zEp$BeRYFgeE(mI0@`(y`#V=i+HHN~+*Ewl>ufoXSA!)R#xuq-$l+`aSNlVCq-d2i)<1R&7yO9hEQpQ$}LwG2L8=XOu9vzy|Pfg zN{V=od+U`2Raor0al8UT=B{*+5!w!sF<%s=qLD%NT~NuE+!K_*`#CU#6Fqh(OkCw~ zc+DX~TW9YY$02Wz2;zk|t3crDVI;2&t_uqPH-^^$p}QbuDp_<>vS>P4gdMXJ9PiVy zUyc@Fw;V0NZaG?jy|ODHg9-H9v)}C-p+;OZakVd!9X0NixvtV zcpBZt>#Nj|$YxS{@Xq&ZPu7vU6B$!MHfYpa<+!wr0?_9qr)McWg`1~EJqPyj_HRq! zFH&MNO>`VM^Fy{qmN4?X^sW!sk{FS6u+xXAwAK(_?3ovmPW^z8mH>yE7TnYST@W}a z=(vm_;9QS*5{P!q$X_9l-~J(GUQ{+b7^RK?%|+*v;1PzBAe5PJHwJtv3(RYhl>Sl3 zcziE%E(+pT{JRpskRWR4+7p#2%=w{NC_xN<=jnOeg9q3uXOE&=1>mm~FjB+%$PM3M z1Wt%9ibh&v=A~-w!%E9?d11chSoaNKAd-Dap2g}KfzXteuTlsL?EuKSq_jL26S*7v zM@NS$qXJ_}+75g~sc4PzA-=!U9U+3@Y{$$rz>aaHL|T7Ap&Yc$S~DwkkNK!zPPW;I zx03`zPHJ6{QX8o`D0PF>EJ}@6rq`qte9F7j_;Ir4idD!Agwr$%k6PKaLY=jPbkvNS z#VemYIAZ3d*(o0r2D0$NrDYn50z+ygeyu}@=#kdvI4CySA-SVmv1)`JoGZJ?7^9E} z?@xl=7J}$Kv)uDmI;PH$VqbnDs_&G5_{b*`3J_~4xM!r|wf~{iCv-J4VDpTm4WSrN zB}afy3ec}BaL)%V!~-1mP9e@xe^%<<@+l>T=WwhaZp!BHub$ZNE&lg%0H&#~*Dp=W z!4a30oIEqj!P9~=hIgS!!(`+5@XqMSo)yB5`*cFQblcGClJ=_9IbkMI7kO^a8A9qQ z_&jya$V;uhMbuu4hk-53JCn7MTC_~t-ch8StBm4UbPR)y)}#yN(aO!6@U-(zhj?B< zT=^LxQ$n}jG2xaYNz{=XJym;zE(}iygpVpD-`mylc{rb>Lt$IDYmJ$aTG{_nywN1> z3pX}7X>z_cjn~~?86AOq$FKqmZAGbi{bHM}HIq{HHJ=p%Gt1#y!jsVysSXXR6;wna z`i*d&kM4{}cuD|NKc}2VkG4^tRdI0-K3Y*;*l3L5@EN9nPFPKW{vwCPnsskl*mcg(+XDsX2n5u}HfZ)tXw5FwGsv@|{azf~d&ub>V9&9`*1TVV7^+s}MO zVf2@6MErKYzvXo~xRhIr&?NkINC(ulc1WC zR&V~gwzirWIIXOI7%ttYg2HvmI$QMat>w6FN3}{Wa5}RbX#kj%t=Goo$)vzEA0O2Y zoDw2#Q)0Y02O4}_FI3M-g(uG@uY20mT8qcMEsXbTtt>`bWk4LF9S1bw zvZn<{5IB2KgJoLU{aM@lipU^a#jqb6S8LmR!{Yj){0)4uvAVG1rOq+mOz;@1yUygK z&NGsAp;f`Vwj!CL)I0ZE3D{w6evMU|NY(d#TbdwI#k!bEwCtlQfkx2#vFLt(dC?0e z9T9SE2!f;k*CUGJ31IlgRfWu)w7NiBr&gwiUX?GY__oD00DV%i_d80ThAf4zX4^-` zg9UIo?gsEcNa_CreTL3*4_Ivh7#rYp5s93S8GCJCTjZF7qS9ZbYfFnY!_uU^!{VXM1!5;KV zb!DWuTxmDc)kW?keHN%oPjl##nG;}_%_-0(AgYHg%kM3DUx;6S^#s`*VKG#8rNb`? z+}EYU-$mNj={$NKzBlPpIOwxMQd0tR!;eGSPt}ZLOQBsL7X{)8KS_lwR69)0FV>!F z8v>LUm~V=}){vkjNnC=9rUc^3pN3RB$U?RIy*R2{%}RL)PU&s|dTj*wN5zq_B(fFs zq=3959kkHxP%Vyb+BeWv*~|;n`p-hCyg|pzQnbXuZVJrzro$G>9j--EZUft<1!mXJ zL%KCZ-;xAwy#S_LAigslvQX_XEsp9MoUS-I6OdiEheW%#EtVo|3%FYVekL8T(CiQ` zj%Ln!W@ZKC`M(Hh*5v<760`+e6o9v<0~VScqQ%jyE+8{6P`BO@lKs)c(Q600C@}Y> z!xqXNuEkLvTo<1ZxX1l6r2W4&AHY)7B!He5s7L%N6}nLGuq}>y~v&e~Q@f&bY5 z8{)Znmv|bN!bJ*}yg+}=ovB!a8;7+$H!VO@aEQ2y}M` z{!j+0O4`Am6__jT4k>rAg>v_Mag>jg;U5{L-GD%SUj+KS`wv6l4)(ObEc`K~+`$&g z-S764V~QLvkL9n(EBL%hN(-KrZ}t!5FFEa$=hDM>r{}LS-GcZX5dt2&lsRW9=%)qk z4Sx#xcj$$G_q#p+mz?$#npzK822+CkvG)iOscXt}mLij-l9U%xR{eQVB#E3HiS6a& zWOPnm-amX=zMNm>m4$NKJS|U&+secJtyW%jMTogpiQ@VFjZ2ZsQc0K;)OVzlAaZad z9l9J^`Bh#JbV1F^A-~E=id@q;F>d5{;B5qqpm`x>>t8|@o_nCAa_9sVg^-)l2@)AO z0^7?-l_GJRjSQ%k-<$3Y`JT`N>!nQSDM$qP8~&P#M0jyX7sm_E;n}ZlrUdGV_l3~U zJn1lIb_Y8zFh7tETPSz97DqXr&ONWcI#f0@0`>C0g_N)P$YD_KU^fNk$J1d84$daPs{TY4}N}%Oh)V0J}p0t)31t-!5Ja-(f5bqIBzN9_M&n2n7%O=n}@5Q>sJ3KO=bm zl8#>_;OJ>DflE$X<87lup~7@n`R|jz9jV6A`Ads{I2ys?X|2B0GWk;Rx*h1502%26;vxZtD!Gc94Z?_j_?vqd##Mu_PdW z7y+#hNH57tXaUa&z}-iMG&{gTv-{ni=1bN*S4Co>PYBe%D)iKK@EYyMLz#FIxXeQ= z2d|aC>1(dTC7ik6?KxAnYBsdQObL<=4-LikmNy=T5-I4Sfc#53XrbGoS{&WHwcJ>8d_q9+xz0`3_P6N*!n|F)%Y;E@ys_>spf3W@OIkRF7WQ}${diVQKspl+_rX;|B7(wDPJsutl7R8)^e$B%}J{$_+!~I?yA96#lZ)atnnG(Q{ zd_;)A-6>oO4}x=`=1 zwWt1)b?crxINa!msc3Qn@I?wZb#}^rdjmes`+>`iQjAMVRlHX$o(dSfb3(&q$A_{!VJR#gCM6}I;OFU-h*TV9?WN+h zhHf`-Qs{XBTYpr@=-^TqO#*K!&}FH>g?5LmJ?(VVqbQs&H7Ag-RSc=B`L9c1Cl%kM z;Q6cKV;yzyg(LU7Jx5M6cuPtLAmmf1+nblpYgVUg6J9gTqpd9W%U^4iy=^HRE(!mH z;Qd58evyEqr@aIs$9IP!g&Dzq#$!aYQv3a+cOqk;mVS=AzL0aiy8{!OqpnY5x}W(4x1PYnC+9ZQiyD*U{_ z-J1?yIB@vdbKqthx`F8;Cv-$_U zQUqm?aI1;9-pnVLGNGg*%nPEz@(98hj}D>m=zgd0s7uu7Sa)BwVY&tIohJzbepMt+3E5e<(NXi`=C=>fM}+LNS8R}7TUJ;q8$UlFdh!=h%L0^!V9;NNO(AOQEZ_t+qUE{ zBBAhfXdt%K)*V~7Y$vJkbm-#PQWtLBzIA}a!qcHkVoPlyWnOp@35Lf*FNiI+HGlC% zTP`HY@ObFb*kaqaT)cf-o{h;qlOmVvB9ranVH=ZQVk`;rY;S z#+KW*?ZOMUZznq+#`B@U*m65A+L9;6Bp#j*T^3tz%eL)Xw-9F%5Cw*I#unVVV_^HX z3%8Ty52L`)uGoUq^aB^=FDCmRMuDNrV+&IAZ@XywmI3Mo!zeMdyQL%_(mq-#PmTt| zcsLnTXl8`If^9CW5ru&|oaqO~OQj&V!oG6`em${` zH>S0FT5{;a(+lwHc{e)h&JK>gH&+Vscs$Wsj2LRM8XkY7wV0yOy%>vl{Q1^mbdrkq z3N(TxJX>ikLm$fJLw9IEY8rB^IHuIvB>&Ly4tEs-s7P zSv>y2)k*xQOD^Hzx@(dO@su|nUfx>Bw9aKiR|N$;n`$jXdMKOgH*0wI*5opxta%i< zueE6TR#F1r>c50%KWi;xSQ;$^1zWL8U)oZ^(iGhsZjc7?@V81SSmGK~thgY~l63`hmzQ@V1EucW-Mn#i?e5pm9 zZa>`;%;MpnwidGYt>l9RJo<2Jk@0GouGI(@@#M3uCFr`=G3q@N&3v$gr{8E(YD=(; zr$25}YHP59r~jT@iZ0Cyg8jDYr{mY_`lIx1J>DH3^x@fMFKbZ~mocBzF5uahU*1xN z%!NN`y^JU2192s$s)y*C$ar*aNsAod5WF}wx?}qRx_Wo!NRY*|t*#8;QWFf~@4b#L zZE0Gd0Q$>YpI2+-K!!noZR_*WWVKNq8x7|0=+9e=m}~oj1w8nAYXQFGCRhf2-Kf@2 zWSnVC(mF}dhbJ#>EkVAsS)oA>PbOPS)Qgn{DG?7|lTd)i&tMJ@|G2dfx$=tn!f3F7 zho5OJL`hGHrb2=xJoUM5&ZfwRV1 z!0OEdRI*s&W3fRWp66T3QK7NJqk%lx6I+5hJzZi|z_UAB%g{JJR2jF$X7Tu<@fM+o zne`6AARfLXrqI#GReYeXfJb+?7U5BK*Lc+wo5SPpwicV3p|zY^u!1M&PP7O#MPJNi z^T^`SKx+|m9ab=i2NSIYs3T01f#JaqS_^PHOg2qq5v<_xxs?`K$i$j-({2_|Mp{c$ z8#ctN;n9)SB4*0}0QHLE7@gFpG-*smp?9_xrVG|4C(Vs_^LY3PS7>aixq0Iz`u__y zn|@rNowqy$E~3cA2T_9_+GM$pd<9+p;(b1r!w;f(U%lW9y@}!`Amnyn?>iX$&5mcw z9Ebtv)k`;nZcijS<`)b?g0rh4$>GW<-GXkfDG=F$WU!SmT-k|8MeFJCIT}v zT`5&Z$)550j>A$Vx`XN_9{5PTpS;t3e}P77b8lOl+frc*o^`+$JnO*S(Mh&2!;RRR zb6;bPh)rv^<#EbY1|ja`?NPDm{i~eRQW>IN?Woh`amtQp%q8+Qj@*I#VI@bT&B%8e z`qY>+l?FM?>9Y9{L%*`hjMBDmT5cr%*_?btK4f%s{BxR8IBFo&aMvADQ`29(?qx2q z^(GiYohxEabXn6D=Gq_6l?|*B6u|0J!ZKXz2xLfX12A$VSi-9}-6c}nK1-}U^B{$f zQ%5GEXCbCKUiHu_omSBFWbXs#PSg1|bv_adL(=bv#BD3>HDDW6k|LG?H~eZSA`Bbx zJ05I;U9f_04Fv7#*T$lzwNQyZ3S(dFd7ZRRO2;&PzfH%ywG{LLtM~3$q0$h{E~uan zFQ5LqBA9ex@<;FX{E_({(R=R9$%nM%TZ!I>v4rH`U60RA`1kgs=2zt8vjQ?;d7t$* z?bPXD0^hrR1^21&h6^@w&n?hyI2fwjg-@T9vko?^&O>?@eK?5bXD--$BVP`G?F>aB zebCP4H;I-y@Lf_Z&-ae-VuXy48GJfGB(m&j)GyHB*CeN#2e*F{uH;Sf1knEpyP6^L z*62o7-b@n&b5^|9;n%M3#udNOjOcSH_rcim8FC@4Mi(k%>`jRN7ar_*!4ecmpB3}j zgayETHXc?K-y!avN&5J}5}-=Ij|MO+Nm4WVv_M!+{f13+JZ3>nvj#OFee})k5Es4= zo1*xdc{pRq(Cvdv*_ivl4!=3})VTG=f<@piy#@F^CQRF(Q=t!2Q||dB7N%(b!&DL9 zGL!)-Q?x9+aoFpP%yq)a3DLUl z3Cq=&Q@OCHwK3xG&9yoCVcsWoLss6xz}E0 z_0HeEVajms*RBLb9kX7j%pZ8J;)RSEF8f^@pzhh6l(4wPJSGf86wmr94bV2aActIskuI;&`5t0s`XD9B(|qMpFb`pd z-YKeqVO*iFiuZDc5$w^L$`=m%10bvf_=SF1|IWq|~e}v{(7XfzFA4#=o zO1N&!tm+zzM*?*PP^N_88Ok^~Da;>X0pi^)RbelJ^8y&{|Dc#yTW~)_cGwxI+|!dP zw}-b)2g6|UqZ93zt!^xiG|et^Df^LN1uXvhPeqXwn-u7SBdis7jeTsJ-7Ah&f&s5L zNlmj!HAVWl2)+mYyj@kbD+_FY5-iUbH-cfH-TzUkmHDz!yN^W0)=-Bg;p?iCA+J_O zB}i3KzifLc8Bn2W1C1q!^0H5eNG8+rZW3R;dniuMm>{fI9iv*96Vz{b%Dzeyg(Bt2 z!7$`_%6%daSBP8PeetNrZ1W~kl7qqrB75~S=*mC7f#_<^(aG{v<>o|nv=Q`y^=#%MiCg?x z#tLkP3fGN&jhZOnGWx#eEGqHv*QGM%bKHM>Ox=S^|CjOafX<_`)&wX$J#JmVP~sn%WZdIkaL3ls+7;UwtsI(1*k2 z8@~3Hm18<*VF~p8G`Vis5~!KP30VTQkQ&?@)uS*8EIk-C%mn3Yw{J{T_RT1$|?k0vEQkJ6z;~fphK-S1pi^x02>t zNhexK3$3JkJ(5VV=t*IG*Zp20>&&8r2cv}LDB)p`fO^p9ptZ%2M?UV6ICLYO96uJ0 z-MAIKkLgKwq_6vF*OTtJ;L$kjqgU^3CD8}|^i7l^Baf2Es-q;bYb8Ngvg}ZxNgT)i<;6_MsOZCM9eCBuXt`#mc{Zv7tzRH_zo%ZEVxJ(!^`p~ZWRz`m-J>Br zneWv$==288xGDspw3TE2S@6B&4ADYJ-%bl&vKpJJ8L_?ioK!`%G?9vHgbYRKw(cyx zQw`G%z<{6gMgg#H^2uOVX2Rp}&SAXFnUdmM;yMZyE5^4E-<2;_17kl<_IL6tkMcr2;t* zs2iT+n~FkW)2sd+v+1?k*gV9kZ-Lfa%MFT(f%M;sXuc5ab$e=06Cw5Ga^J(GOtERd zjJYv)`rjgGI#%Ci`_|nOMjfkfXUc#ET0u84-?#~!FW7u-nbNIBIS78;R;GYoJA3Bg zBdiM-63*_>Bdb| zTV5y+LDc~9tl#jV-rgQ+Z{zA}bN3PYfLf5ndsX*7O)qxcBWjm*BtOt6{Z$-74R2oh zJe8mm1T)=iyWk++d|VLhjO9d5yFiU5guCt$mx~0%T8sqWB&eB}>C?AF`?jNBu$k85 z&DY(6%~sGW@f)_q=v$+_8K8io?}>fI_({`4-FQhlGBa%AX6Etc&^Bnve6yRz2pWT= z3Oy1s`dOWXjFdFUz>zsQ4`n8T@~R%0M^5%n2idO-L*V;GaO1?aW%NpVF_^Iaq@QB9 z9WcIpktpFXX45XuUHvI*{qimI{kflC4+;;>q~2jS=IT_bs)VDb);=HUKE)OsqC2DPxh$fE7_ywA@xUJB+?t}Ns}qeebs*V0y>sp2dzc$-S(T{A4X2Hi#_Hm zzE{&%?1MqPd9xz$g7#Zwj8%k4BkrqA9}Ky`VZ49)ph&{r^s>K8@upUiYk9}oEZ&^j z8P%m1bV(fMP5Xr8jjr$-oAm;7G_1dDW5NL|2iArlK;!bLAf8o;ATCBUOUiI8;RN|eNjQ2MXNXUxISmh_{xdgmqeG* z7Et4S>HXUIO;C^x8|TJN-0c8>|A_mic*J|WGiEn=czAFRq}Y_@C{P^A-ff1LZ_WGWaM4AmJ_VV0a(wQv0 z%!enybDgiE4TqFvo2`_yU~t1t!ssyDzHjJ;vv20i*IN*VB!ygXDZ2F(RnzmRap{uE zvA1z~g$}%c{jDNKCLSXc!CME)EqKA^t2tzu#oKRJlyGyY9}bzm4`Zd7$NL{i!$}lp zh_@Oo;`J}3!N{V9F#um2ZmD1iuYW5IMpPaLW4>>`421tqLwet5Y)iHvaW@HWwx;r{ z_$7}V>J+NwP)hGjteDI4ucu?QlRT@z*Hr~sV7=)TVuody;W~^aI?%Nr4(Wr%_99=h z(TUvqrEhTl(V7%V^GRQcMD^xO^&BL6PZ5%Z=F%uc^wa)e9;MD4L1`0qYremlIkhNs zA0WRG4~@AsWu^JHR5B_zc|ZzW0QRbqFRz9PtCZJ3&H-v*G!_zaDvKC7HST8fr&%PN z-~!%%DK5Uh_E*x#YIu?EExzW0&9-|7Wh>dARdOz;{hT_V!G~UW94;x{#f-|6xlE3SjU{ zQ@)ZkY+H@=K5QT0o--W_3wf1IjJ(yx^UFudC0b?(&5`5*xS=Y*oFD(dRXiqyvOu&a zYKk_f1bMu9qAsc}O_?nq`*U}E4q;g|AET8M4&}Us6G*&K-{AnjGBP`Y#)_r#ZgbFg z0eo(1h{U{1EF-?%c-yCYCTM^~qURi{0B_v1Yijg@%{1SCC>RFXcNDcms9FJa@csM=s#@}Y01M<7>I%%yThjY7^*}mM&kj!a^^Zk$( z&18rZsu9dXnzLRVTW?doj#=8j{k#iXL#VV_Kj;I%TjPP$w)`295D0k|+LAku*Qehk zTEg6bzXb)mQf9q{X_`l)yz0a;H7QM{{oN)emFE1*?ews7EkyJ8o0w#pX!pBvVf$@c z9nOa}*5*&wu`GHkPH)eTq32*=KEuxwluOE<@)bV80*J@MOljQ-e zqQCsEs)&{&lX5c+tEjbc5acgMDs&F)nwciu?+~m&)au(rI>t?|(6;x`{Sc%NndIsDqiWd%kAr+>#pa9(EB zkZ*%}-%C22tyJwvqB>piNuN%l_>uEZx?_6@Ja2u!XpmnIl%GY>T4j^i)uAbt*~k+7u~puy@vE~2t%5nI8oA@=vkT{cY~E!~jL!jJ z>xa=AJ$y+j9ZjZz@`v6oxDp0W+8L*ZD^1Yq?~5C)HtE0oDs2u`-_C(3k;sn+{|NJ9 z0m$4$XRf;nCFl+dYi7mibFCA>AOyW$1kS7)Y^XL_Y3}14EyDo$bUK)e^23rDuwV%Q z)&H$V9jW3dO)Qhy^|?)UW-uj^f2cQ%eI*@z2x@@*M}?+Ub)JwGi9~z;nd30dPTo1T zjQ2nFmq{Y(l2}qJG*od*0QudIq=Jc<(I&lxD>sMtU-?nNS#{-%KcB_>Z@w2eK{vT2 znoDSGE+45)^33%-9zF3f6zQQmA;~U3ey2MNAm?z}EHGe$$$n?wSbH0G6y0(%^thb% z^{w3ukKW2JTwK5I8Fa$)9!c_SLGagB=$r7{m1&gOVM|Mi4fN?T2BMg#=jlpusJm#} zE*U?tzWfPMNR95OA%onfukBTJGOsJkB zhYT$nuY;flS$)B;0bSKpnWpa>;TLl=Peh5JM~ z=4|-~y|d*FlY&{#rp|7<$Tk(){=)=+2@4kFEuX=HJPoE;5SqlR6H$ivPF1R@(^tkc zjJLHL+XwP7mIgnD>Xtqoug>H)a@|~XX}uSK<~}QWMD$OgzABAQoJZ7%LcSi6#`>Cs zmb@iyP+XvG4h)EFrqhsyoTrpt;-5Yf`OVzY9y-kzi17dQIjMxTsR_?>7$cihLf8y( zc-HH!rf>Qi|AnjFgC0C!IX&}>!V!Jb>vdk=-0%9L>2oi4f15t%`e0bDRy%6b=ZvGx zLZA^5OmBUBzR9I%yV>)L&FWO8w0U2Zc1+Yz?sh4k;U?<3=lXLrokuwKlW$vJ*&eVK z%mV56B8YN6MO*y*NQYtP0QK$&R~bTih1%+6s#Qyz|$B;P0&+X7KAS#cOHyA)3A`3$H$ue@6OyEFzf@ zX(Nlm&rW}7zqy!-U&^EKh3PL*6VNB;oxLGCn@90K z?%=i3#CWiPa*LgnXLCczucW_WTC;X_^~RmSGD<(%;akB93jSw@FOX!xm#m$gh2J)I zc1?XC=tHqzO)q}g^yom4MY-p>^5l0*)#*dD2r^1ngV5)Hbd5KULR-EfJ{Tjnx7`FI zw>OsS$So6DW(4{llKJS2os0!0rZEzjONq=aTZ7;k=iO%x%>k#TtDC(UG zYIyOR3cw2@B7`gKRr)eIVl_^y6?o%k|0tElj+*_sn_dN%?PFykw*olqdS!f~IW$oj zqmNmB)q?%Q*8m#U$w7`M(W8aJgvX^o6#@Is?>2kVWBd7u8tEY-~eJxl9M)RLmEm`?U)7;l^!DefHe5b-p zv%HgQ+z4g?`0;NEFz-!#LV6OdG@7u=-9MF~RL_R`qEI@sXjT=yOV-9F&0E>rw*+Xi zdYBGbQgd(2UGZX=_)Lwq<8n|+2OEXxw~mwiYCifoX?9pa&Rf47D{sSeg#=6AxXB@2 zHACNpu1(VIjR5+uct9M3YA+sLxpbtqB_9Oeu|l1@4B_l*w`buY<=U5wu&T?LBdty) z;B!@R`e={^k6-?-D1wb%8xDKU^>1?rSYJ;6R^D;$%~#Z(%8~Nu<<@HlePDLt2U0`6PDWED)DO%vm{2pvn8Cgj3ioS1c>N82>!*^<>&bA%7j#2nyJ^z)6_;|SdEudAVbpt zbe)qt@LFK1ctoiEs+r8pWKGld&Gu0vfVu*h&46Ar;T!?Ypp@&C z(jMM*ETTO2Z(=45zP6kUiF@G#cW9018d-C7#OFQI7-pQmaEH5z1JeRa-USP07$7vd zyg@Y9Bd^l^4SKx>867kAZ*Wj2PfO$CMSHAeQOV;T(RO~1z~)M2XvJHiq8^aw{I|FW zS=A)(BEcYCl40sjzD35L9*X-+4;jq8LEJ~A<#;nSHNcbJb|aN>({3whuW$WFT)VyQ zsB5=$+2tZV=geaa55x5N3Y?MAeWSLjjP7|2axxgp2UM4o`(MQELZi0C%FZ(FNq2ap zWmIil@M3#?Nwl}9r5eSHdz66UJSVBBAnTgX)S1Ls3OreVK-W)5*d0t-juW=d zF_5_3pbt`>-UDfS=(=&S=(;lLA=0F|q<6&;jT@8DU-jw@9gIVj>{A%gYrpE%Q{q%} zchCnhHatbd(W!LtB|YXW)1YG7a3eejFjqGOL>r(rbTfnO$*B3lL^YES+!N$cjhFqh zR~?e=8f_|D8z-x+jhnAs8`*hw)|yC+@zP~*!7v1T@7W1P+p06^N8Xr^_V%1S`cYon zn@rQh1#u33kGbn)F9qKV5aW`kiZ~StQsn%AUVPlEMnJG;-qX!nJHy(`1I8eb{xF2- z4LdDMw=xpi&b^cGPoBri7oIE4X<|HoNzzQxzv<50pCmY3bF-K?X3HJUSyvUP+PhMw zXa?g0Y}FTd?t%Z#t2?6kS8C$>16>Am8n|_a7G7_x(8}l_B)_;{6dSsZ(G;{@R=Qi} zvY}mj_g1GVYan)KJND!CVr`;Qx&}|4>YiXNz@^Jh5?hm(vOJ?!AP6%1EK#Z6-0Wo# zJOX-?6wz#4#onm>DlE3AwTRf8e6fvXI*rDQ%{Ss2(M9Ax{58>KL`;+Vx!cw9{Q?LTq-`gxgt_i$p@;P8WFTxse8Ea(DWyLSg(5AD2@UXHo=U=gLx zyGWSvt_O`~SGi5iPP1bUBMZnQ@zA%j@9oVgD-B(ohQhn=47kkV1+zf?MhIQ!xK2iJ z#a;&Hz<{q5#fIeicW09Gg!rzBGM!f$1nggi;6Ep!(#eSKz!w2}^~JvI3J%%z@Ak6a zJYbFtg*9IQ^5=v@?75yFo=kOO`7MFZ^Dgmgr1+?j{+&{z9p-c8rbbR_c|iY(u!ybF z`mbT~aWyS;b1cIJFsi-)b!yKLbyNXj>WELvJb$J+Hn5rIzi3Amk5zl8hwOpM8aVBH zp=dEQf|${;&)Z#ruP3-!g`hjcVmEz_%d!Xxfc)}{1e$$_45Q=+siS-GAB6V@mJl+F zZ8uOY190|e9{h2=o#x{g!3sG1$sSa?XWA^<_@k^j zMnEX;l!o3H;tp>ke{UlpCk;kAwHr_7fw0V!;L!w>I}$-co4qp&5cBW%LR{Jwf)6}T z6%XQ8=NruJsY@vG=6zB#x!0EJrr!lHcS#U83L*4fFxr(y-!C;4{;g{fAdHzs+ADH* z!9(S>zUPcOI(VVW4<-_0#LHFDJsju&_*?lRE!Un2_T z$Jf}&{L9s`$chC(_Vr1%DK-f8ydbv@ZJXF5cb_}DhEI>vTEMx#0yPkN7 zH8TgcaZ{axvo#5u-DZDtGy@&2p# zx37Jx*HU>do8;Xya{zeH$pe|s!dSFn=V&Fa8rD6jaK2Lm-STa ztN-b}3RgPoCFpRaF^3WZA)@_hcOB znfRPiOn!ZS{)-5z6b_@ zr`#F~6tz{ID$ie?82uRFok#7_fUOgV4KN`>W-k+R zx&2Tqv&4pKV*xLr8^vbcYJV4-;({bWpMDh>_^~S>Hh35Uq2Y z!7w7Ii)@x5<6|PL@%G9>YaeGY5zx>`y8^uJuM!=Yk(Q!8L2^o=NKTbvhSj;q@UP;; z_#@oJ+u5*6ixxAbrfn?SVFn>z&udgpe3;AM3nt+VCHX3;Mgx1NXGAY8$?^wtu>}Z#p@>Y8l@@XXv0;B>H63vtCgV5d~}_$$zx)J z5$^Zbj0GzY_o>GrHhqNEyMs)_v^K*wHR5&EAPayOy-Vs3>+`)_)5t@PLrnt~;JXc( z8?0UflQ0AtER;ZZZJ8?ls0m;6O3Gda?mxe0 z&G2{8X|i&?S+NXO0Q|N2HDoYFA1E_7)h-L_dt=dcoNY~BDo)3Jc=^dh$N4SulAY?X#{U#}TO?w3ejYUWsP3r=e21 zyp4B~hsu_C=sGfDvG~jl)`InKSg`+*8_5Xij*oJwIeFBXSg-`8zW0Q*(8+>N(DDAg zbj+h!p%439Ps3z=@+e(!!R{wm0Qy%xEKO({gLJC8H-wca!S^Yu_0)JIEuK8tD$EOmX^In-h;kGuD#@5RMQvdM zsYnUt77_BhN`NaSNBg}=c-{utMTLeia)yJ>_~Cu8$o+;)g@IDYeePoWX863mjv}`e z>|^KOIOL&WXc@{{_^c?6uL@BN~*!(@idhtGKUtl(n^p+P&f1 zQcId{y_&WB#@kyAZ0>f~E4agzjo8Pj;J54+yq+VbeLQ=jXp2dAdn6Kk$}V)y-I3Ep zZOrnL4QrhZ7@5gVS@<>tQkxJ=@F&GH_0k~|{q!nAW~@%xgE36fW}l-IGdTv;ufk_& zdYhK!xK>m;>*$T9S%KfE!dlz{f6bjr=5wEifKJ17!vK47vm7-C)&9i~M8&50X+%>O zV+hpzLdc99qNWtx@H!@>>UB~fI+yA@-e$|e<{I6{MBl)qqlcF3D}M;?bi}*so+{?T zW#*z^y_mzP(awY2JZ}-q;@#TAQUkN&;|hJr?k6g^ZW-ZWmM;7CvE#9Elabc!QIV}G z!sXr{i^RND<=Dm#=+9K=?hkf5yGUJ25s-(V5Miw3Lt1 z+kYZ&@fLX5putC$$no1n^xjwqJO> zy+O!_&YkKkj#*z>!pnd5gs9HUHhGzAyse7kih^RX1!#ZtpMp9z$-@uDciJ2+L#+*z zjmC9wjfBKupJ^m@`v7I6&Bkn|vNg6RdKVy6{lD7lP0qMRt7y%67H>ZdI4OqJC&~z`S&@zH}i3AaBrp{htEqE#I# zH+PztW*&ea>x&f-M}U$d8j7NMn|32u#On{8-43QTq_O>lq>)Jtynpbi?QmKnRp3lk zD7voU-TFDAE7+fJw;UAMf$WRlv4JpsDVYdlwrXF`5hJ}GMZ#7P9U5-2K2B^xyk6X% zV2Eq?_Rm7j51boYXEnB@T61C)Ea2tk^Q6*7Jh%E3mR&(*Za8Wn*H>s96R=3t?vYxF`*SvkKj!M=p64` zm!tD+yi=b-gu7{ zw(|GtO(--6LQ?eUM3yKqiK|5MgW%Wq8>{0hQN88c-@-S}eQ<5zFooT}D_fH?Q5E*P zA(=Y`QHE9Zk^y;fM5r;K6SX&^lg?$cLrd^ntBGIWw~K-wySsi3M3WK8sx8~1wzz0vDAFwoA*uNA5hwhwUMUkg~0(|UvzpuKy`8VJjBTG)BO9o)JGuokigsAq0l14wa9 zS%7_GEkH@B5~%_1&$h3DtgKbwE&%WL3)cYGI3fVg0&sZ88UR~N>*oY;*F|dpZ2S`> zE&wn;um->u)4D$aeA>lp08D$1X%aWc0_!osq@}O$nA0|M#Sj%5W7;{l>$dI0~n zUVv)!NPyLLM^%r#kR|C0mQzN=*&TiwCuNr~J zl`j-tp_8z>4%#|X!mDw1sR~d9K)hF>I5%)xb6mh|4{4&BsFcC=-TffCk%0plD)wC&B-g)VBo`&qr_~|w1)HVM27Q3tr0}p-4-pPUI+bs&4pA%uI78`p z&LZL@G^^jkK)Ed)O%|u(r8CRivp{)AI$B)MbalmPNx*#URN+j=w3v&)dgxR!jZ<3& z$`k2maZb%u*gE(i*lTU@nfTR@fVCQn%yq;!hx2Y(KwXj!*}hHC(FcK3OT;s?c%7ZS za|*ENIDRMCf1Jo8W|!}(HuyWna&&G1yuOmiQ^%+F{mSe;SO&_vE5)fK_WJf{azw5V zK%3G51Z-N7B8V4MrQ%@SBY>@JJS$SHhQ;# zmlF_+K>zn-E-}X!z$yOpoKuUb2uwP7i8X}F@Y~w6V@w)+`dd!2#co^ohaZpi9vX^* z0@(h3BKx=_04*A&;MbhtOE>`Fs?I0F!0Nt4mWd76-ahz9-4Z~5nh37FwLKUIl)*lD zUHrDTje@mzk-CPK1=1yJfJmww1k6oq0LN$KhJkb2sp2u%EI{6$2zHX~>>V0d0QP4R zd93Q(fU{G#M~hZJmVo}lwdN8zKmhplS0#-NCs`SuKEpABK43p5k%yXeoNK4KExVP2 zqi-*m%>(YrD6F2mQ`op*HUf)?wg9k3I%wQj83pBg#AX5Yj&#Vlur>l|V%vE@eJmX^ z&PhZd5sU)sp*6wuqTFQwKCvdiCe#hChLgmvI?2|ij|+7p^+&v$1=uC&pmFhT1XMz~ zL7QjSK1`)%PO1MF4&+9k_$;Z^FA}K&`tb;X{0z01|Laeq)i_;RM6(5NQ}4$pogM>az@#$pv1+93W(@% z88GXvjhJRDT-;#p;5aVq1IVUyu(-HT!AwM$2gsG_U~!#B!E7v80Lm?=h~`CsH9)=o z6d_IgHwTaprGv%Ae_C5aehYwkARR6)@>4iB(YXYqN7517HV5W8R{)b8O0v7C18Z}w zii#VW<`n4b6IsMW39FjsRK5}#4};ZRi7d6Zx9v?f$^poSPZ3PQ;YHv)l#Uk{4r^t- zKzJEYzetB{>)lKU99(BjVFP|O1!{FgadC&rXM^87P%4RNQ3Gq4j`Jrt!{`$B)&Tw| z$xK!o_C^^QQ&<50zb5jDG3C`xZ^m&pp>A-!ZJ5jO+uAT|5$Y;?ioy!u)JWu**m!MC zgTvcdV7@;QTl;8REDmfJfbl>&R$Hg2A?*@?9yxVDQsW9x&bT4T$!b;8#4|xBU^bm1 z9Ao8yF_egPaxLtIuET&nl*nRLp{v?wC}^Dp_}kW)NjO}c2l_|WoQnpki-7)GA`7*Z zI9J}_gBFocbs11kL?PvXMf*_IgG8_z+=vkZzv_ru0po^OACSYkWJvbAv z765ZgI$T_D^WbdAS_97OPZ`e(TIT@vp;HDmVe0~59!Q6a3tPQ9BXC^;&?D)9ae=D` z=t9>OV4bl);s#sICZ%Bzy!HWTFcC27yxIh>p2(r_RlsKwnZ%6ws|sH|&Jw`Rg4z2M znW`5^>0vf*0nArU8BT)OWgtC~ju;ojdR6wq*x+T>FwVhm8^4m``%EC41pQnB3{(o+J>@Gd+6F0?!1b0J`#&0U50Tltv=j$+or^;LZa4ZHY`)72taI8VYge0soOT zXA=%`7lHq^CxMTKxyu0mMIsZm!&q1EZNk?*sKLvvO+ORAI(*1&r73Z)hlxNp3#47? zh_S=4kI0d30XVm$@EQ9fm25{(e4s( z9!bZGjds0iBivm9(iyLaxW!h}i4Au>L>KS&0c=w`XjUa|L2EPRdgWom|CN}8xYVAe6 zS)lDmM@@5uChQ#qPAMHPHU{yfq<9G^Z%IUpnw$o`Y3L?k0_=T>@Y?EWa3*2`%p>V= zXB>__G*J^^8i{Zx-R6GS1oXEha#>y2!U1xEoeA9SY?*cL7)rq+`a#xlv3L>n;K7k#x*BHyp*Z@$L%1&L~N{C91R& zP%q}~1LCH&K{j!39#~hVW5&h3Q57KeEdcG7bkw-mH;U@w-x>g4pAOuKauEa10c|l6 zH99!8iGicShvH!2@bg4Yry2)G*-I=Oj9PQtfL{$XTYGvZebU6kd0-8#4W`7z!+^Uj z9X2i|j%vV*i)VrOwsd4S&?UQ36C2M1>%Mf%xNtKnt(_NM0@&&0BqtKJNDYzW_V>mz zk;&mc@YtKoYqgWZ3H*%F6u{>96WPUdfz{3sw-I0upX!yP5~pfcN?}!zC5Z0qjF-2FeM{0?-~< z8&rl|0@P0vArm`!Ck^N2MZvhWwsY{?>ik!g7e(zllpAHiW5<)jE1Vw>5m{hel8%|0M-ZmTBL;zWQ#xjrFwbML))y=BCMjd*mc?1a`$|HnBIgwLL5VflL^pKAy_L4``!0|1KoYfC@(kD$w zI1jA*)&^7Zh$X;1k`9}iN00`*JYofi>kpFAxW-_S_V!FU7xz7m;;XwJUP6= zdBg&keCEkwrg_8?IQ%e?lUkJ3FKNNll=1U3mpAHX)HgQg}FtOaBgdB9zn z4x5@$Fsw@{3P8Li9l0YdAg8DSZaxt<>fAfcDOmhaQXwq9n#d|9qB{Acg855Uu?&{$ zZcR0zj(Vqw5c>eOZH+)BuNVa0P3gF)c?B!MODu)~c_SL{|z$&|29#IHP0?s42pf1!11SvoD&2Iu+;ziOqevZf{)3~CaMEWj>F2TgUB3~CdNL7?5VMyOt*F$~Dt z)(F}p8nXa=R~qQP1~qA?G+kEO$=CK?Ru5{*S5K9r8!QL`b@SO#3*Vd-?y?htkG zohBMAekjop7P}K!#Y9&ppJ*_DNi+&z*+^uqUa_OzX`;nhfW3c>Kqb*w0Nw-XxT%Q- zE5S=NmH_#~bm-JXgP~2Lu>!EC9Z51FRc>lT$DlUR$O7$UiKtP->^#v>E|O>rgUKHz zGdrb3!((VnXC8dMo5(MwE1XiI5s|CN(bu?TNKR<)k3E4Pgm>+k_<@X@N1b zz}l6Fd1@BnB^m{=7)xYz^07bLcPP=Qfyry1Bxd16V-8$C@T76mL}LLgK9k5wyO$eE z(pEHfY!8-zxBHdilsF6cAKzcAM1xoq0R1bs$Fe}8p)5O3G`#QaWsEC}Utb(Wn9J_35Cgi3Wq3L}LzMA4&&JbrTF~6O9F+J+MZoUZSxC z$Vb))+9Vn)06XIjF}6fANKG_Y3rIBj0JkX}HZ{>;SeIzzfp}#)a!1XEM56$>*+kf= zgYPuaVDUqVhOqd{L{>4;)yXFs%wH0XMX>x{B5U=E9raEVEv^9UX~$Acs3TBGG_t_E zBpo+3(O@NbiN+uxZ%BuBqeH@q21A=fV;Ep}rGutMi41BJjX9uwE)g|qn4KpY%0&{5 zB``Vt&ZMS1wG|DIp)s94@Ofz>znHFYN{L290+VPAgZq0ErC9SsgT2$CO|{Q=gvp6UAFwv1V|L_(HPOfe@XECVCN&p;cFWqKa#BzO-0Rl} zmNDmm_2ER!Q?m#!(O3kFuO+fN`9y>5JCtZFgUK(RBxd16BY2gy^>gs6DWC?or&hIH z?$bP3u-K8vO1qaEO41UIEn5eIK>+@x0&}ME;F@I`%wrMQZ}@HT4Iv&#HI!%PsRn_2 zxyBseKcs9BWO~S*<{AbW$;JZkzLJic8hKb;&Nh~T_Cz{rYPMleO}Y`>WmWu4{HjT| z>LAr+8dRHaWC3@{TETh=#~?6oS}SamaSQ|Pwsh3gjKe4bDaS1E-jR-*nsOLimvhVm z@?+`HowXg3jz!?DB;rP$eWyu>sX!>}5FXEdwRH7pAB+jLPCn}}0!Z4C2hX8I-s&Se z>!&7o90uB5YlSL_#~c7Zln$Jlco;o+na2V!Ka-B_hKq#E!(f}#V+m+KO-D_Q@eHcX zJ%ZO*Te%p&tv)MipPlC(j*TQAgWz&BncFF?a`+sL0nLKZ-zGAQ=@O@ueMCht>Bkb- zpZ(gTp1J1fhmnH<<1AS2N@Shbz@6C@9zwhGmu$;y(1m8GncF>$UG1~ zwuZ>0>P5gkw1%*pFf0S_iM7II(BO5}6gS{^6&=5`CiK#fJb3I$y;=_z0QKy<#Wit$aOm5o zu-f6F=Ye`(JUX%u_e6Wx+D=Zhk!~(PKRHL{7Y%xx?(flc|))WfZmb-UB$`CAPWw+2&bUCadf)0dE=(5W}4+A7i`{FEgcMM zc>40+6?uw>s|U-xvwA2e#@th#9A(ONxqtgV-2wlnr$XPoWzv49o+&cmZ$Ld!Ue`}g zGPhxHsr{Z9O6*J5Oqb|mx|df2DR=vuqH>p2C=g+}oF-oY7*lXxS*q zupQ3DvsLerz<9je9Ga{i4uZE>rk{SRFmG^Low?`ig*$VSG56FeqfEN@PHh@%$%F21 zYK)?hsF3^Sx2({{x;s=vtwLMIA;TSiAhN`D7X{QRiUuN$MUbY7vw+JS7g$q8((e_X z_!OoXjZ4?G6?C@PLw6E#iHS6YN2IBd;q00$7pG@xK_4Xe?jMRIl{B^1Y@@U1@IK6087s^E-g=Ki(STL4K1w?m?Zm{U~Cb*WQQ@eXZ%yb9mtw@?xfbm~8xl zze{`#oili+735#=+m-gBVYhrE;A7 zEPb!`O1e0FD^vQE5_DTe#>r_ex7lQvb3}MU+o{=;zaO}n zgOsy$-6InbnL`{7S*0j#tU5Do#+s~-J`Q;I^r1?z>^A?4M4Uv1&4zcY91^_G??*2fRA zmSngy1ls|QONStnIK-rEPD!PSdbQeQ;()e5X0%dgQ5OS8DmKZT6Yc&Wce}um6*Flm z$X#|Lq^MPBBqrK}fodlMH7bgE?HM_-OCtR~4xlr^g#X9ti*Quf;IT7&BV$pTiA<;**-HzJ3`S|(4X7B|i;yxka;bjrt&CFjSOI;x z-W$*Y@J1VxR5DasC32__J$;W_?e+ zI%OAO8o?s?zxh)t2Lt+nTnA20WcR$BsL|7`I=)A?qcIx|&+m~6w^(b}-iylQV;Xzc zWVKPgW}16aFc0A$l}co&rCo!$PQwn>ys?6k4?G~%KHO*)n=_`vfBIPN>Q7k-DIy{p z^?jlEG%|1Xb209a2Lfx|Vm3V}HRlD*C`G%2J>hDikgo)zxsO_x-IvN_esCj4vXzeDIX0;g1LXb

    F ziQeMT#Z1L-#tm`T)TlZ&0R3D6qoc%Bbrd0kVhcRWK|DhnsL>- zu~=zt4}v9Ig}33is|PNEa3*vAEl~m+z4J90@gr2IH}}+s(X!QAvr?TlzPiteP@icO z$Bpd$xiUOX<}i9uXQG-YVjdD6{IVEA&GhKuTwVm|G^}8}tw9YyyZ@mxz_H09g&(bPuadM3`xaf3`G0{Oc-W{l!M)6z-4L=dVIFt)D zTqe#)r0-^Pk&e2t#gO8HfWxMv_CfU0gI*PgcR_0qjo?C^bieeGC#{p3SS6@IypeCj zw!;`5tHFW2NclWUz#S-+d^omtm)uaHEx`jFaqjx~FlU zTha4bJY*52vyT3f3e6I)fc^KrDfN!H%tpm9>CH)R72n(!ql!BByA?p4_pJ_Vb_yNQ zBw9fhoc4bE$>+#bqbmAN`B@DwuaxhKj^R@n%A#h6+sn zK#YXLjW=%s&YR~zMm+UVagwULSNnFh`E0rgfvccw68=gWgxJo-Um5xSNU&u)Gc zLOPghi-!ei7*9XauGEfT5s#nsn1VGcQ{~M(4?NTy-8C^YeK5%4;WxVXnw8luYfEn0 zJ2P24TBW5>FO96xnsLRfb@pk7oM|+pE~qgxhGHAF7_C~c2sE)-o*vyhO}k{k_oo@* zf0!fG6W*+enW3gB63GC2kZbSD-E}`wun`hZb6O*rHxM4KjM_2GbC1XB+t^`l)bJgG z(IgTr?p$4*t_Hz+E79wEMKT%&>Si1mY?0+aZbj@fB+E1*HE0%#c=hLWE+CpJkc%)W z?M8pfaXY`1j|zAltItmG1#^(>w9_GBhMVbqpV1iy6Up~Sm2V*Sn2H8{c(r(jRFaiT z4M6&S!@puE4xz#vOogHo3oY$zSY2is8w_h;RC}HD;5`qM1}) z@MxHJyVoPJ9rEmtPof4Ol0Vaj7ipqTtqLTX##RyrQF@nVvXzR04|}Ak>NJ@cm0LNM z`{f^7{r61KGB=U@DQUbq>lyPzb;eYSmQ9qyXz?h&>CYw>M;cBVzjx3BE=%q8M?bLb zg& zc<0W&>3&9B^vGjO)D~$+W@y|BZzp{J%wq87G269Zmu5Zv<_zHlYeQA3@FO25SuyGT6pbIvSRK~Xl zdA$3Q7m8|iJx<*+&t&g}i_4e@gtnK+40`n-E8!(1cP8=zQO~UOFlj)$n`F@|@qXJs+AC>^x56j`GS zS-V7MQX{f+#7cK<*E_IMfDg7xeG~%6%+ul zY0?McHowy$-Nvm+)so&R?u@3MrKWa|6|wX3GUFeJVqKJd))X8Y>QZb-CwIRC2{JIBZCZYT_ej^keBjJotk+MMe zX%y*4Qtz0Vdau!M-lFr#LDLHJO8jC?FK$fr9n# zI0d`z){rw(#Vq}k_JF=1JHn@?c5J8PQiI_5m%`c9=V^~1w_8np+VWWh{?H+5T<+=0 z2Q|{a+t=vk0iN!kDK)dN%*It}7)-t)%wpB~f|IFa8tY}S{OsXSOS(b9=vP^z-uib; zz4@Tj^NY>uRHd}p-bhlWt=>b2i#3|^rW?zb!0D^Pk*E2SUb&vyoo_iu*~jDGxoniD z)2Uo=#MUB%->xt=l>=ZO3jBI}!F@E~p=2H8}Ec{8oI? zp=PySh5*ATGL=%4j#<=D> zbh#MU6b0JHYyNn9ECoe^y`Vdaa$TK1N6xcQH9+jSEmk0;_sKxCjrwpCq>Bh^3OcqhfSc-St(DylwE!t*?})9E5yP8$G<>`{A1oUC zDM?g&*Ya#K?T-$G#nh}+9MyEoUNLju5{9*(1P&>~#FD+a+ddCNF+%t2WQ62Ve!^yj zo+=)+TSDnBD=XvkUnOdpCexFa74m*siotECnpJ)Lyps-8BFQP0>C6oCH);UnrWG42wmZ+H!)2)auY zh0uEF=24PzvNB!XeWX+_kCsQx{sHVFm_zXo$ZKYX+J)K%z<`R~PK;B%FV8Nu&$mnpsF-J*1fGgI>I3+bUivs#ma#mwwv%vYWM!V|{}; zaTUDQYVT?I?J@_mjGf2l1h@AZW&zq9nt4L>>br!E(aCb|y z(ky9Q!^-}UJl^=ByqQ7#`WF&ts9N2;=FD`3H|K3`R)ZD1_pH~0b5F^1`IqNj{t5_x zpj4#&0bY-VPmrU~8Ge3kaoX+`?#q4pOJ}AVwQ{L4Rw<9ZC^+L#l{R)im1xDW@@5H0o-#v$36E~4^`7|* z8fZq(}`Q6ZnBVK-dH(mn&tjs5@rx2TpY&?OJ zcN?7?%>*_TR2Lk%n*_-qsspc{g z>Uogp9Mu{tji2gY;iu5|IX1pYEIHH=T@QoQkcURZh zo6Ns-4akZ)5QuS{qbOm%94_J?+F7&r`qGo>)x66&nn%;Z$>dFxGd!)(N49fBz$oSt^`E5yoZ zzJYJ12>Q?ctcX#p*J){#Q0_iro#lECT*;&)ELzX;9Q8x_J5WIcjbt$l2}FBK#j2pE zwWG*eB7uYBLy{ZMTW?bu0{dg!aIxMx4wC6JLZR^DAPe;!A&gL9L>*e(>-w2#+DgWx zXDNwHhW^fW$?;+Bx+WMs2S~0GKzW+9RZ@$L#@DT_Pnr!AphWuU*=sIx*a`~*Ny zsWrH@2By;fAff<`9_dl)oDQDiSyJSW1 zyc2v~K-RonJqvq29;HSxRxEe9qGwUj?Jb7yDWQk4whlnsqU%`?Vzw*zr4pS`v_r$U zeyPW7uzadi#p#f4Q>d24>g95?PX3tZ`L=C+L6&M>nkbhJ%HQQN-ViT;jhD>BsbXCV zjF)QkdOZX(UTRE`p&q2&52b^&rsZBYlo9Hum2y4t0ZHb+L5FB2%7?4<$x%lQv8zne z5t7O%g&k6$G2#Sll!}MwK!MhwK~)$XEjNo5J&?lvL38a1=0Q=r8yN7d83k9&qR2xBS6_i%zH%DIMKI<>B4J3$)bBId#MoJP&zeH zrcw69$a(9jHJEwutbdk}mW-JQz1RDMNjh*;4%ThByYFv=JTlWbN|fV$T97GH@OV}W zlF}MAUd>sz;Y9X&oDo@1ssnMs5h>6wPE)yivl@jr4wuWdaS9REZTNVEI?CDfx($mS z8IbooNW^oJeYNLgUOLb=W_)8m!w_7&*VXobB5kso(&P5boO^HqZB#uO=BWZHAodO%9|hlQ|v{ik&2v#(3gkz{eRGo$?l4iV-! zyjqMFp%XPc$V-9cmIB6_Nk1bmf|8G1 z4?A*5fIBrrRoz!Vc{ae zDb{rGuK;m5oTblqQJ_o{WFbbhU-XdAX#FHhPu{XBJ<}Krtu=7A&@bv(KW$8(NUj4J z&&XB^h>dR)2qxN(T95~G5VYT7iqqKvC7G7o#dbmDLG1vBY;O4O-f)FRKI0`GGC?jV zSv^GehW+X`Mk|M|nqg=CawS<_bjc7`cldoGD^CuTNc}9>h{OVv6c}qIT1jo4>PsEF zd&8)f;-H5NmcyK~5{dQDL}iS*jI|KA5_MduMj?EUTlalHExxEy!9#JLovYE1OEWk+yY_vsvOQyiG-UGK~r;s*Z! zNu7bq6Y5K1;aVMvi11_pCE--f@wM5lJpF&Eq|; zd+(w!l1gYiJq2f&Rqp`83$nH1X!hnEHYgpSK)k0-Y?-zbx7j-;LkFLOCYfZyMx0sy-%Ej#IVnY6ON&ekX`_0E3McQZEZ2kh z)F?Ts^M7iG3s*H2P=>XRrkLVpmy)Kp!jnpY)YWy1DKi`KBUI6K3QMPGimovE_a`|zE+x?rr8&o1t5#nta*$l zWN6Ge?H33Pc&xXy{D&NEdXy*QEd2^?F*>nRE798pM=2gLl>JKK)gme~tOUBP&QP55 zou+VJ=7wvooKJSH*UaIDJg==H#mVYN*N@Q1!tU0AS&DPD>kYc4&U@uN@(G{J;n{*C zU@n;=IiF_X79EK*W|riBM>6w=Oj~j^F2?r7FSYxvV!y*y`B07o{`wk;UIEK?L`JYsSW$U$)c0U(eV% zsb|QHx6D<0s?E?XUuMp9>%ZfvYSw$WIQwbJBk1Z)s*#4me8CHw z_N$(NBPb!R?sIPLP^Hx5pt@g4bg+%zav214zwusynXHZnnGGjqU)|O9pFpPTqb=>z zT{3&RzF8d~r@PIRr>*yK!O z!qWf7rxJioB>&b|+`Qw$3%Bji z+2G%RS4CmbG(i^iKFq{4^5p=KXEiO7esT0O5yoCWsnb(Eti2Xu|ikZ5T?tq4T40z zSA+|DiDn`Eq&jj7IXSMyetlqCu5m!HhNBOxJQGSbd7~DuMd-Hl5l1cY^Z<%;uoZp6 zFL1=A^pTm;LG~;M?2|e7WV{60aYw7tym%etc}M0LpsEb`6{%^Q6`v&IO&Q|jD%#>lcc)t2B5}1ttz!)tq@BvYh=Kk|_R?#lQ zm{*q0SN}Cy9+??8#4kJI$k78Po1&oU{I81`&C2vqV{5Fx`OT_7V;Pf`Lp)n~B0{Eh z0G47QLgtAXGc|Z`8oDS&DAoC zQ@rj%S0i!X!D1Et&HctLUHy7sBaHjcbZ&B&=OtHz)$iq}vg{7_)Hz(2HzE*4JH2z0 zcEKc=ql9RjHns31x9>#Q*lJa?;^5%SoDQLB!ajwL-M_F7;nTE`++u_!@w;a7$gN0B ziD!1J5mUt@N_9&Tbd|C3U3oQ4x-86il!3of#zGp@LetdOE7Q|FoOW-xT*)-3+)7r) z6BJiGB(F1(*OQ1?2oW(4uwMuIahjwts}{qmhH-A`AzrGX*C!qmOhdl9Di3PIW`1;pHO}ORd}B1u{%E5dmjw?~~Yw8h}okqcmk~Vs(~|@(+6DX@iv6AGL>j>~hx& zMHb#UWggtfQ5>yfxDZMoUCj{-tzkGg%)L+CM&!rc8$_mS!MTYz$fjqr-8y4wd?Ltq zE7^5^bbz;`Tk4*dDcQ6@ySbEDizAMEL>KtdwRJsK?=Cza59ZcUmxYA{kDi8xF_iI{ zVtq7E*5JZdN8dtp7sDQ)8TX1AoiFSK!~xUhRBB`4bdaX#uYBu>ZTc}f%(>cn#>5zH8h&MXi2oYyZ-L!0$^x`s`2P9si&f3QUuGR znewj{>%}P|Ep+MRm_7JFb>}OW&5VLt8EbAIcRN~$bH>Mxiztg-+URVccJi97H$ztP;$G7Tc)ydz$O!`9*?$*oEds_0{RI;>;vJ`LXxJ7RTuHh@liq4wN=rDUd4R-86W=|=fhD*w2P77W$6eWK5Ht7B#S@+dde-QCWp=ypb$SL#+j zU@k=DjVI)Ix^+^GE^*`?uX&;_bZgUtx`n9shN#BK79DB4YAE+R3K>VeX^2aX$l572 zj}Y90j>wi^J>GJ+x=mW-r!Cf|VY|P83zli}=h`ybZg!nIy4baUrQ@PMWqX!@DEYT){h znUC)Mnz#mI*yKLcSJca;>Y*}!M}gvdjoFGL)jCZP5bb=SIr$=T{4!1PlqM6) zl%^ZbYB&y6ipa|jb}Bg30yq_%IE^AZ9##U4JEq8i*v(CY2g>WVlm;$dXLk<0*auZsw53~oFA#~s-?RtbRAEa2yP+J=V< z9TwQ-@d)&w1E5Q^XiGDFk%!3t&zuIvMM_ z4c-V)nLa#1lt-O^pDrIBs*GFz5pw)B+PBr@Dp2_qH&%>ML{I0M8TV&y2%YAAPc*(0 z)f)?#N|f1dRTXEH<+#5=GGZ)D7 z-Tyyz?*blIQrwFlTlQGSOI8bhXxRm3vrEuA8?7YEw!FJ|Wy|);tRKSit_{l~jYp%= ztR>Ct%*dAEk_c`d4gumM1e_a^D7ldMCVz+_5PbQ#i9!f5fdnVH2`0HWF^>@QNHBzl zdH;V^UDe&^oavEFHuwAD?}OEJ*Qu_quCA`GuCBHliK)C;z2}y%xkU^NvlNkxoL}xl z2MasWTd-|K3(9@Z6lfUbu&4oiVa4Nq8B{Sk>y>e+J-}Al)yy;mu=lw#51d&VtQWRZ}?Uu<^KE=KslaBH%m<_{zJk!U29tPB-EqnjuUw{?ZnN+PGd3Sc@ z2GJ&tw+Z%P{I|N3nRq}d@%?J&){Z&v;%iAD0=BuHG^a7bZ9ABUDYWxO7=IX9Q8XV}ZrdPD=MvWAToA~!z9 z-?_RF?^Mp8q6=0eTn@Zk(?ZW_UYkUiC<&CpIWB1Xx-?iVrHT~RYTV+>kmYIlNmf3) z?Uh#g0?>(TT&DWEd z!f3nI7MdM`3v2S?1lw&;8|Mk7xpBMBzYM|Ac`*vJc6(RDLBlLcIxKo@LQhahSFGeo zl=RK%mYlw#lEHUt36v{2SC6V^)Nv@@Zw~6i%DT$RH*xz(+IwmMS7dok-VPvb)dGjq ze5CY9gan=SAw)uMJ-Xlqy)w9HMAA)>u{^-N?EvVAVdXA_^P^iP-QLm zE7iH`ra>k8X#sbFP>IewuR+iq@AO=>9n?0t-*C0T4y?#(o85;Q*D2YHq=~GP&Ugyh zj`Zb%=SkA8heTMjUi~+oL4_k)IJnu94Y|1WHc>FP)OecCFMEU5kSkD^>+@?=5A)Fm z7n}303$BJ7{(K4mYkrOG1C{bI09@knQrMpt*Zhk%2RPOdD7?+ukjATzfTr8*=7fuA zZGmBYo83&sy!uyeyX|&0I%u++u3f+F2`x3726nAozw?b+S}`^YEReh2u4U@8I&7Tb zXYR6EsF>eb+>ia(5xjMW%hs^}?{Z}4UCn-aJO-BbT{k^jXu{b63eMeiw-%u5!|KD| z!-s-*S@u!bXUm-*xy#0V+Ea8VkTeOrKtGuVyM(i|{xrb6vtllA?HhE$xcT>6Z&>2` z!%f4uNFsf|G(Pt!m09iTFTUF?&gbbZlTS8$?H4p2UJ zHVBLds!7G)Q7CPwFk8Y1KdE=Hf_7DjIIB@778yiqY)jUk@giSV0{|~>Xe76um!I}_ zOLqW-gKWsibyu-tL)FSKUEAEaax|RA!kvE5k@Tfibd}bQKV7G_`p4R6zdyHRX~L!g zbiv3_ef3(8b_zT1?%75VeUY9+yvpnUtCj(xr#Aud4G-cQ1OXN$P5d~ETsXQ;E50mq zzm0EC2pd9?a4H^yB?(e{!PX=`V?h@ENrX!PfHx{$=jZ$jtYnc`VuUs-J9u)sP|dpG zxIZg5R^?7>ZDIxn=Sg$B^ZqQYL4_)1GQy-2ka4_DoGjDNh7pl!Lk@6=GfWOv8*{*? zJ*EgFw59j{ESKz_=8Ko+_Y@sf;~NVwRq*P8@}U8Xj~qbo8rgn&Y6JbEsQkuNl)HQo z--c@s)8$Pat{7TsGr>U^CHdorbI0Nzpc`B|S-4-a-PN)byl7@G%NO<7{2VSkX?umq zzOTXPp*Y^aPS%f*tn;rz9GRG)PNeK;lMvY{C!>wBHs@lKF-PGowlFsGsIeD(GqLeU z%`@#cz7(KhtzCIl5>V(ircN4AoK?v8A}LCTr`(R z3CaeoeWDjMhHQz-1i+5Q3P}`DIBE-x1fa;pQm6!=u=3tJMVFb8McVy4&%A2Ix9^IT zV!Tm)_EjsaEhwXo()m}duzCTdC^`44723M<9k5h7A&chc8c6}z0is&%NKEm@uRyJZ(d2C&O88>`T0uUEvuW!U>psjv&3tJ_K9E6e{)kM(tL>#+um zqm1f5DGee5(JeZ2{Rvxw`6TE#gg7<}qc68e#IPQ+=&;z{7V`s0sZ~YHQK1TChyb~U z&|hykkE{e9D-L6oAHYGT2?VwkxJU=%h0R|~KU<8nTqVkWhnK^v$EDU92N{iT%T0RK zZnjXQkyqhn%oLD;(5klQW(|g_@=%$57k%1K>}Wh9j2&J(z-bR4KK+(f(*>#@DwxZ> zm{n>;WK1oeNuyfqoFQB7y7EZ9gzK#Qu!B%?)IuTYMzL6^9->;bJ!&gP@M}VC_XJ)8j(kf%cz23*VK#f^P7F3&?!_n#v zL*vEgx_MG?>cj!U8EJfe_I%k~C2O_bq-k^f;Jn)Sn9nDyV+F7KL8re)nv7AKAjfeN z7A`wz-YQ=?W@-&iO#lJRE}f5fy1KMw*OY#w=xBQtH)&ToMy&Kg9cd-7i?OjH=sQ}h zv4iY#mlf~FdR{$Vg*kKpr*HfTMOtd%3(Lo9wvaux_E){;+c+G!X6ra2$Ns`Tn*4uu z<)>IS1aI!byAy}daED(XroTi}(d5ro<~zqIXeal$41q6KIc^K}SFY z5Gy>!TlYgSi=4G(s5CWFl!4BT`1^X@hL_?sqmi0CXd{_YEkV3_2&#K0tx2s|X z(U4GTG~C;TIak?-xLjLqbkU1u3Nr<=u}oSQT2yTFVinWMWy^GPjK+NnP>Zv#goV%H zIL&d=K?FLadcyy_RzFG3dmcC=Ewi!Tb)--zR1V`caP4({KiD4o5v%pAV-B7^Fs!ir zlh*((A=TeySwz3OW50T0zeqJp0j$i^h!NyRe=z;*vY~dAJDQ*=f*IPT3OA#YMRNod zL(UYD$wTu56^CsF&lQxoE9+*yplH;pbrbDLm&4V=XF}PQ-#KYZWb)vE2hl_{GhHx<_!ujCklD?p!|v}=Q)I;tIO>y;E9ByYw@BU z6kU%Ov9$vUYte6=oocip<<)Y|g@3=kBDVu!fv~%+A?T&;RjYacGwf8xq}2j%HEcve zP`#0REY+Hv%C^2zhMW9BNzDkakhbl7j9)$@^08PNJo1cqXU&yJPa{rym#|(1_lP#j zc`-P)uMxp?2+kABvziwm@2<@v&vv2nw@W=-K>+^yr0x(;2B!fqf{}Nz<}BF_xAcDY)6n z2j{;ncpPIB4PfjyZ|>;(Fq!RX_+@g6HmV^!&|+2WP$ePdhw?Az+wG z=4o%JQ@b~ljGH!#q8rO3b~i`JLbg_?F_$S^HH$=lYAc`2A(|PvQCx`$vX2$fd9@D$ zTLOp`1>ZYla~@NqA7eyUS3tV8h9pF`b!Ll95z{DO*4iRzmF9yjqh?WXk1gPKQPO8M zir#sAK-DJs)unSbEXLz@OLQ~BLvTm@-9iiEwoSn=N`Y11B@Ng%-m6H@9h!t|n@<$A z#e|2E^92(HQ)swU#@7P5*JTqSyOE9|`d*S?ifk=U9jwB0OiQE2$9 zX+95!-2Z%hs~IULO1whrh)=wnZ2e6=81Gi65^X!UqU2=|lp_VZJ+dd~R)DzVG zvIF+QF&&UOT6bV*e74V!>E9)e9Z)=lZGoc}8@gwO%ajsX#8$g=@VbCYTxh*%@|>iuySvf8MK(OVr5T}VOk=&F%hob#|*;oXQ-r2GgCNO zkgt@0TQ>4=TV=F9As1>5$Yz%mvJnvYDfl>oKYu))j2d;w$H>+33Ul;^;ca9#sj|0v zkwPole*8Y+3!y|o`+KAyVn1x7=A+}w#T~1t)bqrjG$JYbtw=smQ2mr_!)})_pbDpn z)w?yER*?@xl2A!tA0?sMdcUE1;gxPh{1#Hy*{QNbJkYrWNrU@ZL5bvwWPE3%2TT** zA|vE9^tErNF854=D|05a0xb4$#;XKOuc5o(GR&p5q5i~FDC*;kJmMPkx{rE##)Rv5Pn zX5bsvB8u#4U>cA!$(qTuMX#c7@P?+k#&@pV-bI?Hd8n&!hQmS8A`0E^#U}+7?yye@ zLSehL8rZqJZ@X~MKi+5BpdWu(D&1!8;#&;(qG4#xA#9MnOHetR)0Ct8bZgBevrZ{` z9Hy7}@{l`gq0o@_7d$AW7{7K_AM?nV!?Ff(^KnW{S~E-zd)Lfm??)({qO)21B_=NL zfl}k`ifgB)j+G}zDD7tZhR--^B|ZGh-nB$l+NH)r2+f^ZZcsgH)(<2MSEDay@ zl!>EGX|oOC{$35q7!2vRX5=RglUv)6QX<)yL+&Fu*l+rYjfhlES!v^Dq@YpgELuSAqzn>4DCDkOIy)a$vx4WBs~#`OyYbj2{_=lzdLU z$>2sXcC|mVON1>?mpP2L(LZnHViOE8Xbo5{q}RuRVMt#Ojn>DBP~xCgxPl32-_WZK zTEkTlEUK7IFBwlGC1P*2*ykxS=D~U>5nX(QNXDU*_yiutPNzn`z!a7G+~^HZX^5WqU+4t)zVDZ=__=ElvY`w<5$~vQCrCt=RdQx`c_S7IAbs zQj`!_X~qra<-eKtPUhD_{r9n6V#Z;ovxl$5E`P|7ea>?RA7L{t4k!F23e`KG0dMi! zW#XE~#W>HHa^$93gN1D}yYU(ZCXdMECT$A#M@irl}nqv=QUM0JCras=+nak&q8|@IkD)zBK!=YGE^tvE8 z5($}{2X@MH&Vyz8Gg=?~R9kY}kYi%N&&JkjnB)*4O4I6+0g{q$wTrRC!0W%PQo0l0 zs7o@3K_CiUf18(rfF5es|BzbxxUQ+RmbPEnYnWp8){7vFE`QfRuY1l5%^#N@HvfeQ zE>?qy$k;0NFu`Nx@cN3s*6tB+@cpnKmKH;;Oc7=AxYL15Z??}te# zY|vQew9{*}*ghKO*aLSqKecjHa5x5O4VE7ua@HO00m3I{MpnQYcjVTz{ZMr9W2C_M2C-hHlLqNIJ=eju(e=oGGzQmygV0x#6`; zr^O!F%%Gy{uKm*Wz0+fO)BsUyZfVrcN?Y^N0ZRk!`N129xovtJ>2#4Tl8cK{MDjXb z+fPcPuImPs5@UPLAMiy78QNivSlPojJSV>2z8}ufV%4?(fOH+aHTRDD^*AqMx$$2W zXa^FSpPIrU8$KO%wvTqrC+tnqy|wX5YIX_FT|s2A{$cggfpBtK`iZ5=DGUu0+2iZQ zfI_uOjix{3WGM=@`=Ftup+Zd}j56Ob&{m_ayE#DGWs6XN5@)?Fb-XZ5p`tmmM-4ph(*(B*mi_ z8}H11SW1%=akJV*C+^soJPPjvPW4_PA3A||b+nxXa(8f}X_qurmut;^qzI9B+B$Mx zDt-){@%E%V6z4rx(QSMw$$i+qK|AJT@SUF#1}wH(-t^ekuGE#P^PaPOk5L~GRd`HT z>kWThq(fIORf5J-agZK3xe5C{;>sNZLdTfd@>`FII4KzTmxcwQoMLqjpQ;TZ&TvN^ zZoJb7RUbg|Hggc6O=c)W9dQS#lOrRWPZZa?K9@mhlLw5_`8%hnIXJ-T%W*60x0SG zs?s|!3BKs5yj$8HnZ^riG*xq)qF~Ujd5@G3XGE_iO zxHIDhn6#NSS|=_(L`Ogy+d?BSdv}33(8-T0TkM|nAOBexwb*>Hy%~<7gbd;eMGmi# zSNHCse%WyyMDlYkavN>YR@Rr4;;x}nskBX6nIF70v#Uf()Osj0yZHdJ?FT<4xrX=P z4Gj{34x4Nb1mk!Ajw7b0u2GBjlCZ^%r*x7h+F>0~>}_#}&`fwsz$MQC@e{m@PCZBI zUt-CU8`a3n6fTb8G{bHHjb9Rdv$}zjAR{X=MB$F3GEDRl3fd0Xf*EAtrK0wGU!3fq zw(y(Mbv|h|ku$IoXqE4azV}u0)w(yyzD3ouyz>GeSRwW-uB!p4Bc z@dY2Z&Q14+%EqenAL<9Sk0Gymj_nS+$Sr>R#}WxqPTjK61fHnFPTxvax&`muSp(LH z{zXXAPjw*R#^H5Ad)wuFGIXc6J0&O!o-5@hg4krv=B-P+*I{^ia`}M+?dVrzEOj+d zuEKBQPRnz0J@NkRF&a#M9RT05 z5$-K|kEWC3&5+3!*Z7ixi0)2u)(A;)atIlQ0rDS zORZ<*#JUV5N{~nG0FnS0w_y8*^^XfLExnK2Fue}n+Qlf|C0^~;lhUqZufw7=-K2dP zv-30_E#c}Fo!858yvi|@!=l!{;ajOrZoA=5T673l-BT^It*J7SIZQ%jrO5TkexwwT zax%VP&yDNnpFmy*|HkD;?V>mNKKf-dWb0Hv{G&`&IMKWCIGXVRcRGH)RJy-#uhVkp z+2;&W1lm&C^)iF~is!^W3Z1hFG2;r%#GnJ;k*WC)-ctQfgczZ-abO7I@5s#fv#p+X0#&z+=I49J5wZ z`%Z9@V{q6((u3FuI=#j{z*PWDQ0cYp&0>}oTp;!P<3a9pZLdjp$7}lm2guzCV)TTB zp$?c9-!edxXXJ%;ST+%YkOU~ zZLjCgaDdcyLaTXzo&qMVwk^>e5Ay9EGam=&)`Z-99lGM_|3QEz*zO_qlqw}~qHyQH z4E6VR6b#&*kY%s=cX?uWGhq#P>VqCAtrT?pA0WVs)T20n@C4oBcu%>lC_*HF(#ze( zks@(GuSZ_n#HQ{rLnmG1&j4gnk9n+ruh(_bW7w{T=se(%KAj+Y!V>zo-aI-*u;Jc& z*2L2YGQoPU`~KJy@4I^wuwJ*m;K|<4({$=hFw4j5iF6m?O~{mo_9c!5BvSCMhnVFX zoqGUEPbvH3@3lYY(b`X>CP2OR{aj!705rMkcvyWw&)6lK~ppEnyk>rl+7E zB&=QGx%z33uj2$uj-YfTsJBO<6eche#XI@6PaAhAotZTLH0y?g?5p0!Q2h>S1vQWW zyKmC$!jKadYFyg>UF@ys9~CAVU#swIHK3QBZR8+8)aeq=mywM&_FS|LpYlYS*oq z&OO*syEqw>LZwy1t25Lh09;~Q&iA5@(F`?+>a2}_)pHH^VA(hw4!Fn4&^~_Oqn;KH zcr$0^UaxCa^CBFxU<^qslm(y}PP+unfCfqz`HT7@Z&8=CPF=m4ZIr)?j=Pm=|G~FI4Vu_5?HC1no%ZW zdhG_rFgAQ;)w?!ph#u!Kj{j1Y31EZe{aWx!BW!Y?kn@QoA!yjdZ`jjXoQq0UPal`I zWM@ug5~nV^`EuowCXOPdoXsGj5cO4(wA-qF8y54wHQR&+DOe7U@j*T1`3NusPNoEtZA$TfhsCUFQvZvvZE z;Nz7V#E7%i&*z>Fl@_MTT2iv&dL^!aN|LBv3=Z@mT7>XUWTA@nO=VmznQh;!( zE_`bMgdws^!m!bw&_wEM!)?@Q+!LxJ`kYlOCbX?W77w&m7_(JbTQ!A{X=q}JnL?P6 z*0|AaK#J0PvyuzB1r{7_dG`%cb#v7uD@N#`C;F(AyWX2}%xRo!Cte+=>1C#_OD8Sq z>u<7Jm6C3`6kL@&Khj}u7vLEteiRy~0``kaev&lx?Y3aLVgnFe8IdbN4OU@0M#XzW z>#!_DcDe9Y@8zC&P0)GX-_(+mlZ&zB*n7r$tYj~*yU6#QAbzz*!E&r(7fRgy3v-*E zjzv8UI63Bu-J>Mag%i2_4CThdLZy>ELvMN^h@EbLbiA={NOfJ0^?5c`&QaG0;|W~S%cY4rvlykX`1H>pOo=4e_s)15L*R;!vtSNGWh$*O=; za9hMCdPxog5UmRjuzd zDL*iHZu+UwFld>7vP#heWG(JhW@ShXywF0>5#q!4mlcU2ixroZ^2cp!N44DXJkBSN zv9Uza-UAW1Syi9FZO!k9_2X4Rcb2E{zAH=nAI~OPAFIatUpZc^n7H8RoCGRl?6bZ0 z6f{GsK4ax;N|pvSm$}+%LD#QXV@it?50hp>*D|jUljGBrgX>kNlGIBD=+*=(_VP(( zrZyojzoZ$QK55V6x&A}bmePrE)lbnC_wcUhJf}q0K%L~=A<}g7}RKmQYm8tcSFN(=5 zipFk9z*K_(P&S;cF)`RmB=-$WjN22^T?E}ZfH9|PxUVNWCXS3qZzXsm@hREK>RkzI zz1vF<-d@5W1-02bBrlt%@eu+POMn0Q+f|xiMx}N~Q{LuiN;XDVR~l{g(rle#(%p-y zyz_IEo1LG#9NbWv{QYFC{f1IxP`VAVY`d)FH*5kx4aN9Hf!BwKd)2rCNOYyt1kt!V|kG;H}-nlZt!#T&7YiaO(fGW_kNL{OMhlxB|**gQqJ z>{p}AN6u8!Ym0UmoLaJ&UMbDn{Q%8+ZUY(y!L#uuG%uJJZK1}u{q7Trv5|}=(j8QE zdNds2L~;UVrX61RmEh)!**zW3qtwxO&ZhJg+C@JTDk7$zyy-NRr(FV~U!VL^Go=W9 zq)g#QU*Y6Ql~6`p?K|qx4F@8Q2{?=_9?U^n%s_2didqihyZU2BiZbNGX|um1@vhSs zl6cp>XvAKk4x4z_Eeqzo+HLk(+D4<9>}f-8#_037IbNDY_MCD)+V^GQ=F@3=PmZzZ zvujLtmS^Z}adf5AFn{xhM62qjL_8^QygL z7)k@sKy|V)br>c|meT96a!-qu1)@p%R(Zh!&Go>sjIW&i?zPwMs|A;*&|9V{-5_1} zegAuUqThX$>UR}DzZMj6%#MA$C|5^PQnDvo^(`c)Ap8#%tv?8ytowD(*7h1PB{A3W z^o|o~^K!{jW<9;w1Cd_&YSUC>{wJD35G=o%BBOz{DrI_rkrJzHq*N+sH@$)-w2k7R z#ξK^8nHZMSY1n@Mg0H^o-9u4yPDd5Em*;dU;m;u42rM;{PqPkKG>T4Xrt zaA`q&e7m7>zAiZYNHp)^#Uwc96829;+-ac2!n$2DNrw>z8THm*)R;oQeb!+%(%qZq zSc^}Xn=!w7UG$}69&#S?t()i_aud!m&Q=X+n)crpFPM2G+)0*6&Yclq(RVwJR1z-^s*ztzPq-b0uZo`Qp^4h>(Fe}76E?MHWUv{b$ z^Si2WQt#p08nGO>-uA>lqiMJ{B@R`5Wm~Hh@^sVXJ+f8shTHzn{aB4H;qtTm0Zytnk4pwbk@bs z%IY4ifhmoSxjh=KP;H;J-6Yh+IVGC6Nxb7ksXOoDCQx#hx-1&69BJCUY_ZZmq!EzA zyM_w~ub`Gb_IzHJU2}#$C1TaH>q{87QOnXlQQP&M){=( z^ZKtHL(V13n_SBvHnT=JFE?m$bDJ`u*@9hw%QpuSxRWuf-I% z{&KZAGx<|_b4SRgk95uYA1msHrUI7i#DU~7H^Yo`t)b;aO4PXxDX~PGCem#z{1xvo z*BJ^4+oGY&^D5z%4qg_VV6oC~S8Ko>^X@N9kqe|2o%xYlGdtM$hX%9$tHbnugBH6N z0?Z{V_a@%Ha``x2ro*(dpYC_^YRmShsM?Z2>}?f)SFF^u;hwi4$h~+f2aULgp}24w z$+%HE82kJX+~T-WKrYguSjE9(Phim|T94XtupkeU-QXFG7aKYzY~g;&bf~bEc(H+< zb%kt98eqC;n5ZCddXvBwlRI`WSDP>uXI#ZY1E%P#D>_)8z&l2aVcwMY5yJe@gH;Zl0Ud~hb{q`U4>&aMK1hHSGe=kFr6MCng1P6`&l#N-K4c5 z`-0b+D#YP<=|SmB-pA9bCPK)+>8TMGK>3AP^b$cH&#~h)z>VO70l-9)?WxD;ZVtG) zqjSK{9&ZB<;|g|q^vF8Va!v_W@NCsCB%6$)Gg4=b5L>l?JHq-%(Wj+nNSVVg2ej%j ze1>C8oMNDNmMI(uQ`e4(NuubMnJQJg<)upNXV(vDQbR0>c*Dc$+mi%bQ5By#Nx-uf z_$0mCaNa#l0V$-{V%zMt4;h3=>|83a^|}tedgzVs;yYGl(3ELRZa|WVx)$@fYdUneqvnD z?6;c(yuV zB+%YYU6{~rT`AuJ8bIG$H6^uqB&=<(7_=G14j5;9Cia)If3(^FqQkyBL`kYez1D46 zR{GX;;z4p4*WN*X;+f{g!8~vl>DU^0^b$s2!dXoEs8!!ljuAi)eB`6eO$Q<2#c9mz zh87sxST1vKV%yGqv}~mrmlWb3aD1aXP2F8dZ~B-67)w6kUc{yCn2Bm*lho*2rN_~$ zteb2-308;YX$VL3MkBQi^-zLeoOz;lyi_4|1U99WQG!kO1B{y6DaT~Pyg03|m`m)H zqnaMC*G?uMuP@#meRIjwH=a#NCASvy4FY}?LYKaV?Ad>V+CLzJwO*UH0AkRf_G~se0a{((5 zzXcdDROln(hW5_nGNO-&09{}jPr}A4rdbnXnvuOCSdZB5uzr1cU5@}f5SdVx>C8m9Y zmbys5uS*k)<{jpH`Z4O-Hz*AbosAt>dSKy14bBL79pCpW!YZrSwPp~97kRiVAmuiz zYi3$X>>d6LZEN6yWTUjzC78t)PfOcuDNf56U;E>dh}JCw+N#ondlncC+@8@`Dw07f zSO(FL3l{GNnzxHGFfceJ7|{jK(UQ=rvD@Z+!|Ar;h=)LZySAIDQO<&A*`MTGM8F`c zpRCnKRpZ*BZ4#h6bW`Q}7pEA*s&m9tv~PIEubF{xqk2+HmOiQmnWAcJurdrij2fc= z-gX@_R2kkw`ShhMS@St@@NP?=eu>iTs~85{$cGKJUaF7qETf+gtmE_2 zYm}qNJWunRQs}tnP&{4gthf?#LI&diJJ<%BT5RWez|&)*pDGbfyI_l#uj66SzmwLy zgEFZhTLkCn)Q7u&UHZVEfH68j9sNmsv6dLmES0O~a$-Au+Pi?wh0inYO>C1Tu6CcXbFzBf80Xpl`$E(`dd{;~AS^*A^7 z#7qrGh+y8f-!PnWo%Sl{aeRwqo;a*qRGaMEP1igfjRU6rH}z<`RzwbFypg(G{XMR; z9(HZo(N&+S?8IvL=Sq`(iAE|kaMioFmUXBTU(*g076^H<^ajI_+bPi&lrGAe)#}0j zE?nTtv!+Z3bk4iom!+?CgQl(u$2!y8Fvp$HY`|~goeE=esd1#oKCBBdjxTuSb!M`_ zVdh)YXUco9TZ@*xB{_~<9AN+}xhHv2NB0YiYd7|(HJV=;;Ux>#I$LOT@>@u?VXNRI zWARj`Wu_sz=)0R1zPvvB`G#0Wh()Arc!m(`u1FuA@oW{|Ba*;;H$|AO;#V70&1xym z2h3_2<=<*3A(c-O+q&jAlcecKwiP=+wMNjLZFP>;H%b6!1_8G9!zEa_V21Pdnmv-; z*FsRpwr>B7P~-TLXhO-wLM*v?VtzT#B!V-OF3tA#;odIf*~Khf{koTZ0zbTg*2ab) zw%P$QqX+?_tlBrI?s5yH-CHhwf#g<($?A`OUzqJ?kXH$#Tiw>5yh}z&Zd$l)5$8>G zFTKSBHw{;_eZSRkNaG}Mt^)Ma=V#>9MU-R{e{Ir_-73^2CDR;WRkfCkC*h>>(Hk#L zS&*!cU45Z&x5W3J9o>@j{Aff*&;j&|KVjIixC3YrRNoZ-+Iazg!Z1H2gbiAC2aX9~ z!te&jxmV@3Rjc(3W2g(fkh*n+yik%GyxqdVdC%9s>|QD}1$Qhak99rjTajJq#V1AB zE6y1nSk;&HTJ`kev&ru5Gt?6G*!!9`kvM(Pe3zcIruw}0f0#bINe7U_IGZaR!Gg z>EcJT)ozp<0K{hQI;>rt<~05>nn02sTP!6G;*GB1kPJ7uuxOE@j`UQAF8#3Pe)sPf zTFtE=D(d(fEwcCE=n?gU|DOSj)-R#eX9^0v8HOFUy3ITjhjLZ)VJ~YtY)FozB|oi0 zD`!8}<<7vhZ?M<9?4@muWlvfp@b$A#N27TmM@#6&PfIt}Gp7;u6l62Dg6c4|p>zMf ztBcBSvQy0%)8Mq*;>E8ns&!^YtQqyM6pow6Dg%=Ag=l2I`)C1M z_VMVwZ!_@T>fu*^T&t~i^=pyD@Wj}N_ZXYqBcoVP+MJ^Rh12|!xw|ZdB6AbT-Izj= zU1#;k8fCc|n%CA1O%2P%CcFN+x$YCGT>t|f>+RXryKT$X9!jJI2Ew`U-nZNSH>ka= zwK&{MeX5N(58@8K*dx^ruC`f_5QNXBi|LHpV>4m4- z=4ne=AJNPJDl1gR+cH?ry4j&J`1#qpv(hiDO_;%SBL_&`!8=*^*c8Tj~?N}-fnE9j^{A2R;W`0 zCB~y-S)X7teW;DN-4)~9O|haMP$J_~o$LDHLmNT5SA;I0$=iR=bO&X8brMc+oeLqi(FTr3SG5cV&7RZCqlx>PMA1wEGTr&^BX!q}Pom;?bC7k()wIDh_C-R!KX5vYZr;iR(s;SzdXlfpG9Lb7JwD~JP`G6#m)GTUd-r_PG> z#L44`eZKrN_uKDO9I@Smf8}uWvdy*%u2*!MJi4!!Jkm5m*3J90|L!1>t&k5b;kWu` z0|ijv_dfLbZkinSEpKd7B;(* z%~pnVDtx=wQt4ljlY{uTxm6kjDTlp<`eP1Ye5&4w|3!W86O8M$q=MVz?9qwdDRmjC z+9MC{v_9{DnU69j+4gByZvk@I@j0J+{|BREkab*_ZxD%=g6b+H%w%S8g8!%1qIq!K7O5ASbz? z#TL*LMdV6Z;YuoSv7uz8Eus7uD9G4?3a~til2x{Z(NIyV7Fh-w;&m+G>`!|7cexGM zF4(rj&`KrR_y_)oqu>HuUozsi=)fYL1#PzL`=&P6O-FgZ3_Y*`qW{-bMydslHNedZ z3glK|GsSXw3@$}n2|)QfTsena;+(&T;&-}Y&ID;nf6tbh9($zYNCJZ8GGVrFu!LF< zmp-n(sE6z3Qn~X;m6QBvc9*r$dRN%}ho;B!bWE+2X&g4o&`GIWzm7}em2?0I9@*2! zXng}9#emmN=*IFa&UK=ewzivTv>qy(W-u>2(h@a)DkSh1cyDV8m&MZ`xQcK1@FD!R z{O$$Q`!!%VoHZ+#uTVmiP53ROk3E=mevVWvfFQ8lsul$mq zlKLsZkfF;pkbL))l#fx{frt_V=pibco4w&va%gYGbKRfFJX%bB*=~T3ICH`(`T1m5 zYz=%$l>|p=tzpg7df@%iVs)lwE@rkBq{!!Aybb%X*pXbRPF29QYQ@vs8(D`8vL6#n z2zQZ(t)$`%l*=P@fJ+nM@BUaw7?zT@n?E2W`*X8Z2nsg5)}69fN^B%gX78AR>2feN zQ_^Qk_QQQP$*Rc}<(@D_gSO~E?Ib(8hiu8-X}bCBa?T!zg91xnB0(rOy=yJF-!eA>(!p>sb)5b;by0UegoY;^sW$||V+q|-vwZD&!jNtB37m(Q0otZ;p+^+L;lHULjPUq~L z9VEZUScTbAPHT&J-NYUX+3XQ!rr*K+g>A1}NZa_VaVfFANGz zn@(Yl4vuBoVGM^}DoZMa15FhIf29Q8ETXrU!ooaz!!N#1XqSxQ_6*N+qf#PqO4d&s zvq%og&UW|Dqa$f8N= zmqU|C0D)6rW*)}Wi2sSAA|kcj$3GM=U%7DzJ90*rMID zh_E56#5{588#QFCu~mdHsAX#1WYmOfxpRKmX))upkOY#hvE${^im2ks!`R{5GrH$T25AlM`pI z!(yf*Q7L%5c3q*OMvD|`)1gmSwr`kAHF|uhjhYuj71cA7FL-K&wqP=eVKnfN^w(EQ zE-{r6Q;7-39`{#9-&iF88pw!A>M={loODLKM>_1NQEYyoPX+m|MET$@CH-xO94^hr z{@n1paVU55Z?Qfm!hR}b6||}qlHsNCm7*x1KN^vDGK(=YTU0o{kYY+`1#Mq%N?Vf; zp&1i|FhGWIf^`Dro?62C33; z?Hb8{F=%)FjO0AbQ0OUXDHKj@xn#N;t&g>+gsd^8be9ljEwVH{{ed6h9Dgd04JMz9 znd3Vu?9lAq0=G5YFtNYv-4t^c)#qPw;QJ*g;rk3(^KgkdT%-FU_5&tFVf|n{x+h{A zs+H}Z_I`*(;oS{kDDvielt8yq^JKG74=l~Ga!j{5*rhjoA?Hnc`Q6^`z<{*bQtmuW zwy*xB>UF)#f#y*$JN4I6;nRhR|DqLSagkl}|BiRjfB7pz)2Ql-)uI*}n>VPJZk z=o~}VG#ofZ_x*1(lDxddYA)ajV!r$FUIEF#@c}C;qm5;70}Ixl`#oJCf9`qb(1uJ- z=TYT3JE_q5Y|#;lM0F`w=6PUTCxg?`sHgpux{3yaa;uq_9yiogQmXkR8Qk=!eNhhvSPcW9d0u1@cKGg z7_Sc?ETSI$(jMEN$NG3%#LTe${adfzB){Q$hu}lX5NE;i1Hp0o(3rMd@%+CvEjlkb z-VcsL8_NX6M+DaSgiYpm;~D-9sYM`-c#Qp8u$r&bdeO#wLjY6xWrqw28Ob9LUKtGO9SNEv~8KaC9NhkGp(eN&UE)ZgWUcx)ASm}`Y_#0T-CbDbrJH-DeMo^ zYdSwE@UD-s>NZYcFS9s0_ptU$Ltmp;cDQ(7FU!oT`H(=IGB>%8Zr#nE$K zXlt~?+^uE0@3wpxfSRQ(DJ%tJ@MBWr*v2N8(0%GEy`3ou7-C>gUN+4+3gO7$rvm;$ zY8)T627{)qF3UfJz+ntmyifS)#!x>}bY4Sxe8l~G!N;ZFRzNT<&G8b~4C*0!+;(>9ds_6;rau{-wsJ>krv$6Bth#xU5! zPgOnt?~*#u9r;AFwz=FzaYdoA$E1xT^PnjXS4~;0pI#x49i9SVyO=(fThMveqfZs)RWjzR_2d zz&U#IUlO0`^60h?UgQ&rA2LFaE`hn7-aU(WwyJ)?DrwmO?Z@N1=Kq=&J-%yIU$co^ znjR?QP6#G#mj;t&;5yR69xZgjMcdz4lb&dCdHV)cold59FMS4^5y-y6_f^ayd4{ix zz@~584lnTotV4;-KSlQ2IS!`E#@?#I>?>Xwy=#Z?mE0@Fa8bhuONkQ2i@n)izu_N} z1L0L-Z1)>w?_0sVzG8uYL^P@6wfCvw^|) z&&Z}+_?-F2WCvr_VDqkAJqOmh8^Fd~Z`HZu`WO3B5j(cl$X;cc`dqqETh~;+Wv|qw zs@!YaB2eUJQP)m0cke+mxpB%@(Me?7ZGRcoKXa9`ewB*+DrLQ_{rdS5usfm-^?-m?>@=RnZ)^`M&Txw1;ASi4p+2Mwae&AE4`vI!G#`u0ffNnnv0N)g7 zL^$rR{Is-|UVV620dWBbKuaS0tIY}b8sn@5A;P^EhbetQvS}s@!8|)Z-Bd~dabd+0 z34gnw3UJ(OjIOAMBxTNXrSyjgr*NrnH>aFHE@0n~?07?AdE%d%3yaqrqy=~IEkEO8 z9=k$B2ZL7k9FySUSqiPTF>F}Id-uu!V14beXP#GN_Y1|w@e2F-_0&5CEG(BEoJMHj z2ZwE8B0%ob8uKSeDzMD*nowhxEsz$Bs-L)TX|93tr z&DhwNkpW8bW3E!`CteVjMuQ=x6I{mI``w+ z`UE*Eu$Feo)l(Oo5W71{Dw4n9nEoT56`D-U3ztC<$=?vE@tZNHmyjsk+DM2?41-{O zIS!a{*M7Pd^{U?zBOr0?He6!8>%w}ahoU^9-}s>Ak=L=Cl}fOv+p_3wFSf8&`Q&7C zg=c8Y%?{|D7rn&7VcBj9`YZ)q2frfS)`u54H-^idJ&>k<*j-6NuV;>7q@axN#k{M)yMUYhIIIfZp<>1}= z*5igq41v}S;B4zq4(}RA>(iB7fn|C8rK#_@imaB$Y?YEkrVrf#JR-^Quw#E5X$Ky# zD~lNtvbwihcR_!&T0>+hJ;389a+43xetUbQLfGmapWG1o(*y6>r2G|FWZ`rsA z_3zSd$}mAKZ?}O{v2koRO8nKCWj8!ZzbyV2_qHrOEpYF@E@haw&G!j{C_G9G_tX!P z5}6nzTl~}v5)=Ot<%i5YT2VIjY`2z1)}Kr=j>&`^+at~Nu&~Sr*HJY%?@51lZIMxZ zP&{vL?sep~$j&{=J+ksza#VwD{=6WNQ4PX9^`ojpCPvj3-}tD8iC2EesG6l?yFGM8 zj;yp6wW^*~HfMO+9{r;%d=00oL3>Zb4=*h;w(GtW*Q+!+@6$4Ga4#7-;!2+y?Sxk zPyJhR1`6fU(sQ&vHY`&4)DMJ`lNbnF{Cy9EQ2blk9hqQehqK)tr^a|M!y~@q?bd#7 ztSt?ydo1*s<;|DA6JLo>Bt%~SH!bq!(dp$IznUDPWK#?BovwJKU-}#+PyH|{Nr_>y z#Wy}o$u8~FPU~Xi#BzJ|{fK`fv*O~ipZr>qw|+a%)!L-+Z;zgOo+>E`p4#FY=c(V7 zw`f;H@YT08nLC9eqlXKpwnwjck>N$dMJ5h!O#2VZ2Mf#nRY?ad{smgNCthN3Aj+?) z8DIW-e3sC1^J`k>O_Pf)FS?!_%6NN03Iv->o~3>C)DORspBR2yeB;Bvw4VI5vdwBc zyNzQ9;r8g|Lx!=9)t+a|_@{i^k)W>m$Tlz%Pk%!O+Z))c%Qk*9Ik3St-y;apMq-?{ zr+)a9$i(p3;u{~nU?(3@e#lf#j+Y*nHCoFoERsB$30OX8xEq7kIc&jM6z;J8hvl9)f@B2VIFy47x48@j+j- z(>s+IB(ZZh zBbui5sUJ}#Ix(WQ_}@LE=}xTuu1LO2=lGHSc6$;Zo1ilKu=8lsuQwO7jn?5fzI)`8 zN^|AB`g^H)yIG6uC?iV$gHq@Qxp8wx70!%oW1y#gIF-D_aN6P<|EqRS#<1DA z$k4?R1%_GmFyp%?`N<+<_~((ieB^myu4$1!hOb#>;M^ECZtix4Gh^5o=&2t=B`-0C zw)n=!urcND)b8m30gSfgnm;f$|8!u)#HO{HV85S@$gDt-CVMvhNuRWGIq^Ava93vpd^7iO`axEpMoYEs^KT}3p2wO1ApoVSxHU| zvMs*xL0+s6YgdY#ujALF9)M7oyOZ0a!N|N0=ibmlKv*7^hB;HHdjnK+`s%||l+=lC z;Mp4ih7zFgezvk2)DWPfqJEZpk|=1HIQ zwg|U{tB3)>sp~g0A}(~h4F#=Q0J%u@d6fWTR@22GALnS4c~ax3hF+mcF8rL0ckm4oCF?Uvxj!$Mtew78kQ-#>&M9_@H`wH1w29!Y^(S{{4qYf{^V? zK_pj&`Hmy_g2PU$;A4GV*Qyi3a7S?crx^W@2<gIIQr7Rc4dc*JQmdd2o0cN ztp70@fQj};{cBH4%zZ7ebDuxCS-^DGbK!rA5&wX8(9U;T5*%^v-A!v$%#HM$GySJt zOUiqB>^~ zS=}<%e>kFlnmA+`)yZA;)h+EWFtvKGe_2bh+*v~KNvGx%xW}d%h*q~m&lqN8ACx!8 zmbFYF2X$u+X+KJNytXy689>>K`x)qKpEikHQb4_3genE4rp!soy|)urolD4fvAX5j zXCGm7nrbzLZgVf7<^|pFNa;E?^_k)Hb zAGL@SC|{W=jg1uYvw*rsP^lT?P*Lm$f^`7X|2fm#H&d99(Pu{iag((PfZZ;rbS61e zIRmq)=l$;)C(0HKUmf$6G6CGuYXDC#1_&e2K%Qv^iC%ElUo@Tlyy=RDZZ2!#_t~fL z6bNdsJz!X-_K@pAsfOISfLI&sBg`0p7;3uyDAYluF-B}zH8*7dFT6hl2wapIiQcU# zc6U-BRk!)1Er@$&`Xp{z3Fb?G9Kt+~)(aK$8Yz~FJ_3;blV((& z@mZaQDlQWvHDueQhURt{m`(qdgkkd<3BmBn97ioe1_sRBe{~8LV+dUHTOLj525k?6 zg4@dZ-< z(}7{`DbUd{5C{d9p&$SzOA7RL(M@i_xNCeD@K~1{hZ{G$pSWi#7NkV6o6=sD_4?MgSLYIBJ0oa`m_%y&6P{sZgYFYOsuGZmo*{WB!yflaq6c&)p9=9%5x9k$Aw1UNBECoI+2Gki*R_YycEs}qUILNH* z1L(ZiWFJrS&R=ek|2;F+YIo6;-_I&Re2rvmvqLc{&El2YM(3 z1m+8P0**MgMx;*P*LCs)rOLa>)h(9=Cao4oHv`Ez5y}UipKJ~Q)XLc)09XJRfD8pe zP>&I#cN73NFLte_EQ`^L*Eb-o-2iKoiTQ6G4Jay}%pE6own@Lz>I+Q*2v^5ex7^$m zh$s@m)k_|us5pQGX>4XbAb8RnLJSSsd(tfP9YG-^vmLJpl%|jve|5`M>7cV(b%al1 zi2=aE9wRHyxI4)KSp`jd3n}|hX6xo{iP_qhnu83vX?)xVq@8LZy&}E#5!iY)e6Eqa7Rl88=K>P47n1 z<>|3QFhgkT_t1b@>U{-sG{tL0$7Tr{T-a$k@ip5Cg}|szj?rT#fVxS>J}pYnX_dnh z1vEW5cBE9F7{&)?oKFYks+b4)RlM!t_QDr}8xE|#)q3L=Dot9DH5Q8}G~^`tK5hw4 zt74uEB}%L6lXNaf(m0;HK@alBhiT6$y$wP`TCilWwKFRuq}7@*eJ}Rre1{I(5?T2) zSF@Ysam&s$e>T{B9NO>Tncz2c!#0oOvgsL;^94~iuWwU1R}nFcJA}lJcz~pWJGVai z^Fj3VvKl>kvj=>9h#4tN%m$q(a8L1mojwIg&kl|y2GObRNW`|$QiG#9Zd$y0IBuqt zL0Ed^o3w$2GcY_KLTjzzd23Mo>~f2Dm8ST$GVEEdo3&P7Sc;7&ya_w1@Ziv*d_`vD za8Hum=1K*2^?*8~%H6s>bx;UOwm}scxxd_$L^Wk_QF|8z=!fKbuOsZ31DXf|VJm{m z$1L9cVPl@m34uBngd%&gJdO*#`!O%=$iOg~h8MJA zSQiCV4w2~KMuR8;hhAI}lTTl|a=qXLSi3nfFL?i;>8zeCJ21|KqhOZ=OfyD1FsKJS zm#T1cK{yRDQOJcLB>LRL^+~lB zyd}({W7S-hjJI_`D0!UE_|A-+&IQ$g00UuG^yc>@D#T67VwwHaD#(|E$YAgsSEy?# z9;y@&)C})yNAiZe>p@sLnt?`>jc2P&kMweJYz7YyJZj#)MPKIs*=S}>IOqC;EZ0R0 zAYMfB2mESqSAdh6$x2b^JQJi7igz$q+fBz``_cYQ!NDoys*|U@r5eC(!DXaaE+Ff< z;nBq)*Uh0D5M7j3(=(-9J4J~k4W_HXUchZqVh^qXJQoD4)eE`FgLt8s&VJ{`JR9Gd zoL7eaE`x0$+yTm{BY8?jih0`fn@{?JpFoy|bK`{}I_lda3urc|VBy?z4WOZ^vV77X zYybn9FW@D&Q?&t@Du$ekOKO0Rw?=5eM$%35;b5>C8ei$Tu<2+JR!MS((L$IYhu7bM z3iPBN@L3;}by}I1R1QR4-7+gJrtwe?KFWDWjimx+ zbamlbLZJmC`5a!n1#GJt5Gmf$3CYOIk=P90QE4^p%VVHf209Z4B6Y#7nv>5l9jsKF zc=h!}jspm;$s%>nwxr&a+f1|r2WfMnU;i!zSHs$b#gtN6tIF&OssuQ$bWbvO&R9bF ze6Aaa@snd%ZmH30MtrjmB#DFg(i?dP9|qJ0>1Nszr8U+>8})AK+62(+e`3y92T};3 z0}M_LF*z5UW%(+?am)#0uQZ+BqygE1a{b`+Fii+Ez59Y(nWhaB`r`p#4r(i4u9PaG zRfd8%(f9mu@))7pqXUN3uTFKFq4q(hNk*d=8nCxD1|wusbar162~1n{o)Q?Toh;S! z6FkpP%Li$jAUF2JOs&olGlogCLAFnqCdoQBU<*O^U7vaj&nbo=7S6C#Ik_apq{~ycS%z6^_xh1)0d2 z-{9&94u~B<12`WBgz#4D++;_v$!fg|jwpkwJ;-MR#i#~@sM5l1(4GsT^}aBm=fj|$ zAI!i`1YtePU7T#@i`L-y(E4p)E(Kv=!L!L?Od#>~u%kIB9z`fDY+{VevB=+HG)Ovz z1vDSl<%#4nIDK-pDe0dfcs{5QVqopTenCoP5!lk*O()!Q!r0s=lIO8_?|g(}838mT z`=MWWFgbZ~1!ZQoXA5Au1m<9W5+-?c(J8To^Fb<$Dyz5u{1sDr7gE3rYcj(M1%4F546x!7;k|AUZg~$WJ~3 z0|l`!on&v3w1Dc9MFB$gCt+T7x9g2Z&-!esH?!2M7g8eKGNY5aX$dp3PfQUtDhb z1)|FMfC_vAv;PbkZ0im<+>g!OfAOZVkM(@(m$Z0bvQ=4?~S zHuY@XlI~4=({{FO-n=Q@owH59>E6`cwKd(L*`~zxZ0YIlP50<((~may^!D_nyEM_9 zJdEk)t?5n;Hf^e>YuncD&FNlUZ2DDi_qN_mUFmKOHl?s{Q(xbfu5`aHHvOu5%hs)1 zd%DvdJJ*!NO`A4v?(J=$6FQoZ<7l`+iap;kygxPlD?xqSSuC6P4{85C zu_9z`TQH6ZUK;|NGHaiB;YP!zZ(*wNr+RDgXwy{}2b*a&wawrPavDvKv>j;8P zju-ISz)p7a9~!H(Lw3DDH*nw0R4U~v!ZdKl9l?Z4fulI^TZ4df@88{2qP^`kam#+~ zdTKA|wvC%NZ3Ae3*0AVfDHe^4oEWQ>N61k#f-NLqFR8aT^k1xs0kuERo(y z^K#LxGPJhPpZtzU?bukU+}(-29DJ7K4>Y=VG!;f*+c5pRhyFuu5XO9a60^BM%W=)w za3=vp@7B`=TJwG;QJLx;YIh&pgR0T(MiO1*3RP9Bk0Ad>1$j9NV+QVg3XX`S3%~%z z8`hZ64I$vluS^zZ6=iOz(srRX;hcxoGIKyZu`sE7YvL84SBjzKY0s7{q?HEjQZ zr>zlC$411u<_opj-56R&QE2~ z9-KMvGcik%M463PGD%Z+qSjn;yJB!`9#9`0+K5etRjJ9KIzwACr#(cR`3wE-U!Nom zwR_2)tIkwNO0&Y^dn{QNTYZcb%z}8XU5Km)VH9mv;+-0TpeeM|o&wPa?%58cOJcie z>)}t^^GydsRoeiK9yKwSQf=Bq$HsxFvAdBa06j9ocQ%DO4U4`R;Q1v0qn8Hw%woV0 zpm;R=+|s|07_QT)FH{teG~wRDY$4wX6;t0$>ex=tC^bFpM`o+Jb7mZ8GVyc^L6(we zcE&EapGy&?wA7B5DoFT1uUS@X7-E;KTRC}jhL&z2y;_Bi+=G`dNzD$Wbbuw>`@rkx zLIag%5XYudYic^hpD73PcIN1Pb2`2N9iu5a;_$=hB)vb3bIe5`V`QvOk%3(qPJt7X z|GAC8@J`JM(!s;0rt3MfWv``L1~P_{7o$qk(0o~o z!j&t~UI^d@vSngmIzwB5KpMYT0H7;D%IGC<#4?x&@UG7q!fx85T2OJB1bmh9$!~H^4p<+=pHyg<9O(DtUmHiPJ zyrz&edh=@xP*V^092t`wU81k`;sIKpBQ7V*6{<|G5+z-4l(?OifWF@4Un^=}Ur$#*swbCLJ+u_|FsuU`v|C zb1>zZQ1Ii3#Xo=qDAepF+4XrT8e&KXBsi*Hf{RY$!o6;5?7Y!g*<==fqyFRYda7RSsxMj1<8}(-EERC zJIFpZhyOJQNntMg%H`uT6=hH)?SE2Igkzf1gNUBR?n~CSlw_sZ+1Eqr`Co!GnAZrj z{j9YAp`kF_yL-3L{2dj(?>y85bn8}fI#vGE_zd*<-$q=;Sp$vHP!N>Xn?BiP_KB&Y zdDj~v?AuD?bS8+1fK(8$VI?RTTL3_O!>?0T(1J>7!Oak+o?^q1hZ@;S< zFe9~WztoIW26gmaUKG~!>q;}Y0pmw8kPFQqcfwO5VKfH%LNn+?Gt+VC)@DpF+~O7t z?zY9Dxdj8=9)yl9Lr+UBLn^I_^&@q*)*o!Zn~9s)1$*T#W9{g}wnh!!o2!?nN_lwU z5c)?$sOLjb>Y$IcCKfSzFSfRyVi_;Urdgk!70s$JfLM?#Da(gdp)nSUh8!@LaSfxc zr?f7^#kiDBacK&k9z2~3YZ-B|Xl?$>CgfFLjHT>!fQVsP*%%8h;|>q+CT*D!0B7kl z5}ZH~KxzbrQm32hI52U<7e%dBJPsJYlB8m~A}n(2yoZ3_7lsxUM*mU@NgkU`AQIth zFlM$b@z7+&L-X;JE5u1mcNdw*qmom}xtx?RN@g-_p26KwuhVXDbe9pXkEaMESn}ct z;Jn0jUV79CgdvelH`9;Sa6f3XPu9^~uW3+UsU^{qu2!qN4;^%UeC;QMLOo9EBMKw+{sWo(GosN zH`NyWin1n(77mKj)XcPn%BG;$bqRM`7kM4##K(B%#mZ)`#tsJ#6x0u;#DnXhUQ6&0 zm;-~xAc#$@PmuI1NC2olAiS)FQQ(w|Wh-lB%S}gHYt94-L%Z47eKbYnKHPhR!v*U( zz(yMrf=yuEnCzECX?-z{2WMzGdcPbfBAM`iZ9Tb6%}gD}H`QNxuAw$j&lp6hU6HAv z&!SrNG)zM>9i2L7YGSkd2UD{aZPw<6)vuSg zGUE$7*-^-1v158{_++kv@oy09biRR7n9i$d5XWF_gp^)cXo_OT*jVG1&n)&?pt<>` z-|Z{s#sVK+S<;8tyQX@0ZP73JE@L76<)x-ydX`tJ&DN!T*&qS#ymQ{y?G z!hMQiy1nI}UK~x?+6EXp?{K+nFUO=@C8rUN*eqD-+3aPtL^seqCa(Zp|77GnLyf( z5v1l}M_Gq>hV*gVWi1Lfps%EpCaQ=g`oK$d#ZoX_p)MS(9^*imGXnM7k0+sWwS1|x z2XC?iSJY<~mKVM(2^HhOohc4zlLI*9FP4#Onkc(0BQ%}DHh|i>PnfnEbdOe+`EWJe zD?JykX8S8#O_W^;R+FJP^r;YK`{<_FnQ%45wVVxC6J_(^YFe|;hpTxj7ObY*?3co| zyqJGF)UW;IM{NyP)0t6Uu$s)~iEu3m)@-<%Sb8>G%{&WM58>mXe+qSLhg4({I;(7@Uc7M3Kg6hF=H8Euwfc8pEtsDIZaLLseuc1)BB z;CdKf8pi%)DK|Ybh?M%};^e6coApspr|hWaj`7h}YZH*E!ZdKA<+d=;3A(jOFzrE@ zoe1cG=Zi!)+XTquMeJw-QLE)f9?elo{jMfZ^&AOPUl^h=T?9pd=?}w9I5FE3UX1W{(fz!5xbOl7v)iBhl3NjhcVtK6zOckTd&0P-y?ZP}kVlNAT!ftTKmp6fk93SQqS{YkixNQ;UqxLg+WSH$lEk= z??Mo0?-Zr;$W4x5Z9z~nO{*(m;OPkfn}mQ@n?Tig0Y#uD@DAlBCUYll>S_XptOh{T*94;c1g~@bO+aSGawoBF0MTF&YG01cuqO4$Ko1O~VTeKnmy!W8 z5e6wC*Crq;O(3R`Cu?K}fMyp1+6kb!CO|c6>U0?3RNe^JLK6^LZGq)t5M+ODBKHK= zO#oeP0)&(OoG}!yG=Z8PGc)gMGnf*%jC8bU@LCfv8 z+!F1_t@Xml!=>Z7<1^IH_9l?kGO7EKfthN}q_oQ}4ji|7JHj87SVp_T0A&{P{w4s^ zv>-9_2E$N%;4&1hpP7WwOq@6xhQZQ}{Jek}4Z^v;aq8C-wc_U zbIssr@|_L?9H$w6CRl$EsYc08Iv<9Z92uA>vAVg?1ZZqza0W)Yn4SwwA@|l{%+q3X zu_@RA1glTb(saxW-le9{d_jN>!^ObJ@I~WSn!*hu)Y)(RYE$ULGu7kVqibQXYUvb> z)%7q$EoYJg1-Ik}Yg4&t#?l&u!IGOhIWaN_Lz)sh9c=!)f^+LeqAlwU)Rn{Ag)}ZmcuUte5qRA1?gp0(Z6!>l~B%TX?gVzCJ zx+5PKEohXZbc7Fn(bIEbL!geG_Q;M&Jf(#>$7@$xaP2zCz`O8p6D-t`y~Sy$aipS; zx7EJL=X`GhnJze+D&H~6F7n0RUCc6M=puF6u{iWF-SGlw*CL?%=(Y--IRdtC5!n3* z*aKMqB4CeHAYX!VFbFI6nns58>d?fZpz)K|N*ErGgV4+xBc9Q0h4UYRgKe03Hz@ew zi)PAnIo^R@4uT%SW*@={c3cU<3{z%g98`}SrrWf}k=!0s!o%h9`pB*_ZhO%Q*Juz< zk&O%?n!Y~6^x}g{!4DppE{&JKjJ-NR0o@wZzmL+Uf_X5E6ZX7O6YW88I)j$;W4di| zC8)5+2~Zu*M}znX>>*sOCokh@Q>eY3gKVNH4#poNW$5vuUn52s=ZXg6s#9 zGtD7rvvf8HLi{#oW&pbyZ3^i`DdGmuYHdtLj*j)O#r;I6u`{@%syuc80jv= z=n??8@r|z~0B#|`?Cpy;y^TAw1dQ7#OfxG{TFuzQQD37=0Q~>iyUze8s<;3D!_t;r z#E7B`DvT6eQ8C+K5lfKbil|XgS4A9YqN2u*Jr)$Kv3wPKuwwnjhS+1rzE-fujy-n7 z_MbV|``o`f7x%{V@c+O(@V>vV{cz1WXU@!=nIyY)@%pf2fsbyKD_IwBj5hwIyp2&V zX?{O);Lz{z_nU&zVb>YsZqzu7WyN!FWL={xl>5e^o#xACfkV=K?Z|gH zanzabI%FM6)-^`^vfz|79s1UxLyhLpa7i|qfpDQOPj;y-t&Zm78qxFpSynRQB<6TDN>wDWt1cAD?*1un^EbEF9oNhIpBW! z=XTc1HPa<2*G#9RIgXr?rky`Kw6o5fz?_n1JYACYrkzenv)_MlXlK1?r%O_=Fm=a zl?hyuW*wh(N}6^$CCy5Hr9(UAdgPKEX2#PgY4*EQ(zNq;hjtE&j^e;2*&H1mS*K() z>k3ZEXx90EIJDDTWdf&UG)h^gq-m#9(zNr>e{N@k`Ad6&Q_{54DQVj2lr-)9%b}g- z7oY@ANz+cJq-m#9(j4!9yR_5HPnV>*%4D6Arkzen(@yW7p9M6St4!dOG~?-%jE>@h zQ_}4B4i4>Xj8Ew$^=fy=!llIC~sWSx@HC>5NN(J1-d9NH;Q)?AVeW?ko$j7F*8lr-(Ea%iXA zceo_Y6(Q@CH1|hN$><8}S39&*?mJwPa^K;UG~?-%G}rg;4(&8ogup3j*2zvu(@v+P z+3%~lv@<%_1ujW>4(60J``syNj`to8?UW~wPDyiKa!HyeW(B9DY3J$=?QAyZPp4!w z@>!RpxtA$8CC&9c=Fm>L9yuk=^~fRFB-bOSq-p0G|J=@|cywk6oRX%UPD!&4aY>ph zm*3N&opoki=ah_QNY*K7+Ub%s_cH#P4(+UuW^&+^H0^Xsn)Q-P(%kj6A3%>6A44-6bjS zk+0*>PPspFN}6^$B~3eBlI9xc*EqD(+(`vaNz+cJq-m#1(p94f)8p#5IUaXwLkL(2uDotQXL zg8P*VM#GahPJ-u_3r0ITT`j@IWrF5xkRKqy56cD3vTL9OtM_Za*UeF9T02Rwv0O0P zh57X*xKFvD>CAc(JhNOd+J!k!g1It5c^|n-f^U@zM!jC_QZedv_DHE%F{S1Bd-W|5u0R+6`uO-85G;ATm_T{an=QWI-Qvg_3L zJ6>m&@?o4U%jsn~eINcG*YffmeQQsabX|$s6sP zNirz6_4;Ur6vjyM?6S$|^j2^gdGnUM=Wy<*tB?8~Y%E(}RBr3$A)4oK&a5*x77XR~DMRnyDt%?7jIcbDYQvPm=NH<9Fi<&ttM(pQq_lubtGId8Be7nMz#Qm= zP>sXYpw9djNZ%=GPV@XOvvbO})9iQJd2hL-d4Ont#a-E&=H@ExR5RM|ZZ)HGU2_K+ z&-cr=GurP#tt7kdUuM6XPvRDmk}P{g7#i*OyvyD+>o}(#$wJO$&JT(p z>DIc;kYUjbX>}P-^8pK|9+^+kr(Jqv-cFn8(j&9*%ljNhWtNh4=0T@hJI&Ftj?^rB zJ!&@BIF_At<>r!kxmTGPQg7CES%$`c&({1a~eqZP^KV@ClRYtz-emCnnr>!?cefRoE&2qP-^=4h?Rx>)+Eq3Zr z)OV+vW(By!rDkJvt}Dc)M-?;MzZTawMt#q_?9Ik#&M#x@<*tVH=DQ3Dm+@?L?z{Qc z!*Z9tH<|Oi!y2sKtN??}Wt286H%ev&7}QI$wQMpPrG&#(roJgUGx!@w&2kTG>dgwU zFi?`GmD{@cf<)kOCsl7A;-y{o(a>n+pLS|zH0Kj8*EqATbDHz!L44X}Jk7e!>n)>n zd%00E>$(*#GkI9lcb~IOx%;Dfv#xXNky-h>)HLh5U?b_#o8@{WZ(y^J%017kZ+2bz z*P9h!;MC4&&O7zJIhrA9r<&23q2O}ebY210n-ySXg^XvpdzpH(0!;LmWZ7fWtN`;4 zPh;xM7fx!NwjTApmSnjzZG-v3iOa}0n6+YJko3qqp#3XCgLxAo%RVZ1g>5h&5p&ym zwBPd%`@JFVdPQh3Uw0|E)U1oH2*HNZ_l?W-y)L>M`dl|BluepB-&tywyF+QHGv|4S zCs7T~E5HV`0?a#{6&uX+I;VYPJ`j*)&X+rfG?*1&i^F-o!FdJPV4mzXI~*MivI2Ct zzBiaZ5$aXSJ}P(iZjcqAQ_bj#(Bjlib2W6h9?4(XYIQl@%~yS#_NG|@`YwGpD?qoJ z<{4lQ8P9Te&<$n<=(`*p&MUwMvjR-G^vHPy*kD$G36~z36`<27nJ>Q1beSP$1?W~Y zIxD7K+G(BvI@Of5qRV&=HTMW?z1$P>2D4V2?b3Ji4A8Be(fQL`-C@?5wW3o^^RzJU zu=;HnW}c9{%w)4xblZA#?MSZ8qKQGt)@AS)|Hy&o^CaoRi#r+^M3I%mytKCO1GNPIb^w0&1i|d$W8p+V3?kNwcb~ zbxOKEJ!mwm%7n{!n&*m6`^c;+n`vjc`}aoYRb``DRR%8YbY4|9npLG2`{xx)qx^lr zev&Nro_?cQRkpbF-Fa2nXucAkcImrWRkpg!5c6Cy<#KGAwPN6~vT8JI#hFf9kLG;Z zrKVW{&UUFOD?o?)_eQe$5fun&e$zhjm?(c?Ou~C@y#Z-c%p0L(d0cgodCJO3&-o@Nb}pC`$U4{ZPWe3N;y zmkuPkd)cIUUwdsymOCpp$*21qK6Tt=)?jJgi#(<5*3CUEPuG4Ji>9j>rV=6PLqh-|&w zXLOs)^SZ!c#nLp?Jc)7{PqPMFL66Fw73IBMU)ou2CD3HnUef?0zFTS?6h2bDQG z%zL}(ttGi>*<{rBg2TH)P3FDb0-w>{qioG+zX#)F>!+4Wn$=pNMUrK&2xhgGc6cA5 zNmgqvN3mJ0Rr2m?xx2_F^Xa}Cl4bY1`Ne;EmurW43OC>7oNV5Q%{nEcy;8rIw*)4VHJrJ-gG z*0M_S@S_efe{nuFb=DzA?l&c@=6xxDYyRo?D!k~`p`*=&fB#|HjOf>Zn_S}M_Hsua zo0=Z}iP7knYR`VBz0makl}dlnUMl>%EmJ7ferWptO10nm!w;Pn{&A+LgN5x)$5!oN z_*X2+wBPQi*+-PGVk7MrIpomr&#l|$FmwNp=KSwip&%3I|A=%>GlQU+D+hON3P;-FbgY=4em1MU+U@t# zjLg6P`F8~V9f5yG;NKDWcLe?&fqzHf-x2tC1pXa?e@Ec|$0N`oY+EPq`@eM)yM|EV zg+GlYN`AB!{>p1|S8jjUKm30>c-5Z0le9j>c!k&UsN7Rk@`KU%3hwl*?}ZofPUL4A z@8;S2YS=r9d|cH(8&4`zx?w2p|K-I4fpDso1uT*tv@wv*!;4_~r zZO>GEnetQcR#oR3yjkTR!51r!o`OZ~Y*uytuzBU{hR?F2{Crhs1YV=^(cefjdF99B zvsIld@#V@N#%HQJ@8c~hA0DJ;yGxY!$6HjL(KfGq2EI_$nTOY^{B1U`{AGNus`Deh zLiswKrTw#2oe_Ae$_IE#&BK$8S9&vfG`bq|{6gI0t3ZSC8>o|bQRZPdh~{;x^_NQh zF6()5dtO?GCsliX#G7$@+^yC{`s+UHFgvXShi|15(9>nv?zr-`j zR|`+{(R|J-ufq$;#XyH|-t{eE1q< zyu!1Ox0~6(aN`|4`%u?}!~cxK?c-_dlZ%My?b`gw#>0~ePp7S)hwJTL-A?|t zcJdDz5C6mCW?TP7TwezZ#=Cj;sj|&~YrM*{Pm`^$#O*_5>s`A=<6Q08=f>7+aD9Cr zY`lwS9}e662;<>CVt-lR!FYvdp8}u5@wgXmpZwbVfw+C%`$jnA(Q7ttAM%QN-kErO z<#&4Kc^-^}s7?a$b{Oh>aB3^~R7y24r zm6uM)y8t!#r+Cd);^A&GukVb9|Es6GuTYCug$36Lx9l&GcKZ0bxTkzGIpCuos&P4K^_`of@%bRMvo0sk{?JST#lKiIR!^?qroq;F5l{cK zytFzGKa9^+{tBK^{u%ZCuVlMvw!6}Jl~?3l7CX+J!l}PTIRDpD?dfT}!izsvdR-WR zFMhn#hv6}m-wkh5>#qIr?^yTRaX#I6m6ucV;R@r`Ub7nKJMn;VPSD>+sgpQH_E&A4 z{NN=#J+gEjzHhwJ^GC^i3uw?U#w)xPYMgtA=iO)?7L^Y*UhU1LopzjeHeTh;RsGtR zeBy7}UoGoMJ5$tOp~mwpJgK&OC-t*qq+c=G|0wmxt8sf3Z&m&=o>X3>eyeK#pSY*S zvuZUt-V-X{7jIGCXgs_wKP&SpU_Xw-z2{0jzzffdXUHFox2X9x&v>|hN67xIWPGkM zUhNfrlJSq$ozd&R#;d&S9x|SD`-wk9KFRsS?%$X29*mov&mZAw+~$A63(C9qkmE6{ z>ihU|l^>3$ly7gm%FCb@zi!tz}Ka|?bm#~kMeu);5!-5?)-!2jECzM zb$V%hE^ZJcC z9>;rD*y|o%;G*++;@i^k-`IG#-Opt{=O{GHcsPnpQol%@@zkki-0Xgzf-l4E_#bY( z%3G+$^JIL!@^kQ{@++vHRp;|Nj8}Rw_ItP@F|WtS$5cCC#aCDUvGMS@R@*I--;%tY zhaK05#UNG+xpu| z-e(-HGG6I*r#-g)|E11c)&7_8#p?R<8J<%4E3}GYCLBc53f5bX!v3ul_WnaYqsHwf@+sBd#rR_7&*C$c zzfJvw8vn2Gh06al9v+YUS{u6`d#xqoHea=~9-pb|Y>!VQZ|Cj4#w)|i@dPsh)@R|B zYP%;JukdneKW2=F$GbY;-hu~e9PTq-?G04zdD3_{FST6SWA9&<;lYrJrkyqH$1jXm zc&%!`|A{A*_v|I-8Bfj6T0Bts5yr#$qt27t84vrrjkG5`t(n(ec$@Nr@wD<&@VxR% z@r?3Y@SO5TjEB#GRr_DTXDeTByxNPad9ngujs0SeyQ;NizU6Q`57)&PE8om`m{Rj+ z8+?U2ekU3aZ^G5QI>2~%p4mahd13e*GkP6KzEb7qk@wVmy8>UK?#u2sUhS=^`ujZI zOZj`o!}~`ye}1OEujYT}@IE8Dt}Rpf-gr^9e=xp6`AFl{UZvV!yBY81Wj~kW#m>V6 zsk2;N*XH0ERsT}zcUS$rjruWlJU&I8C8}RuD1ItzEF8}c;H9RF|z9V z+t+x7msi`3k<6D*rg%s{AcHuj&->q{?^iE%Rit+Fu*s z^OZN@HEP^O<2jWNjEDF2YW^HdK2Z5N_)O&&;VI=eP(Sg_ZgPNf;&=!Tm=E^)@+Q7Q z&l5bY+W9+PqrAG0oR@s%{ft+71$CZjBA;D*cWI|D|7R3FTh-akc(_hb_jfa>U#YH} zCsAjiSi?@x3&ym!8`@!ZH%K0+<0ZU&XwzeUEe-LzNqpqQopFqO9k>V z)&3vJ*Q)+@Twlf~t9%{f)n2WtQ%k-^^=ml!7L^}Iexb_mkLQ%1h|g4hFkX!B~j*BP(&dNL07{BSS%T2+4u`GsoS-XZU+{I}$@D&HY| zE*Pz&0yVGJ!sE(o@wv)J;H}Dc##73t;tA!m@!87H!CRCsz|+d_#godP!)Gf00B=_Q zGd^GKudcp~TSj>we7PF`A$URgD7;N=cQ1U2^270&s?ODntl<#W1o0n7ToPCT}d9~{Nxxex7dG8vf*R^?gJ|SMyLHc#O@$kH% zKJWCT&GYrT1mp0&@hZ<(+x^_;)pjce$UF(QmhrUrU)}JW^7Zk!@=frh@-2;5dlhQ` zjw7E?`8|wRcr#Uh4=^6C2h{t#bE#8QbuPgR%CE&e_59&ZJf{3{;}u>?wdZZ);eJ%@ z`Gq=hRp&4Ad9|MDGf>WN%hma<(RlbAUey^zzQFrjDfatB@>$j2>Evgt_Rlt6=>@*b zwL)>g3gW=`ZT| z>N(76gQ9V(^lFr^XFPnqr}{gBd|J)_-O0~a`GfJS@;P`$`BivY`2+Y|b#J*?9QAn3}i88xNn)sQq{@bploAW;~_*QR;M4 zb(Z4&lz%~;qN?+|@$h}vE}RdUKdWyf``uGM0Pnzgp3|q-Xgs|CRrSXh?-o8kEUn*4 zo%E*SS++Y1_j2O38~|y&FcN3O=TkqY*0I;)Mdgd|Hs#ObG1boZ@QliTXS~|$tH!xQ zZ8UD-bGBMJ&oAyQ9b3nEcpf`f+8=!`GkR@?XSWewn|_VL^H+*5r_P?ZznS>;QpP*f z*5TJa`1l;$8!mbKe&u|;mg747IEs1QWjuTzR-NCT#PiBu!P}I-Z#=xdtMl#89Sx6~UCKku#9Y2%HDpHEZkhso4QsOKbyQzyaaAMAO1 zE?(e$bL&^*0oRL}jORVn4^;gp$lK4G+2iOf{9E-oobRaPsXAQ;%lWFP#@WZeQFVqI z53dWV&N%V`{R(%JdF_X%`2456PR+)X%Fm~MvpP>MAfHkB#dw?Ym+_qP&u~xe-(T_N z>bzaKiHwi0^1bmTD!&wj<4FY6wm%3&oko{vf)qh&MN;C-bHzb&7yIu@|LK1z8YRo z?d)T`+H0d<-RbXOpY8MyZoz$J{|3pYv^uI(a;%{8ijj{t5N78%q7~QH^>1WW3s2qV{{mkZ7E% zy$#g(uVuWOm*;xz)1FO?S9mq5Ut8e5@*Rwa_d9C+yu0x#FR9u;1&=E~%y`%yp6}&p z&xv@}m;T!Qb*AxfeaNrtX(WFs^#fJ^7Q9W(xBGC9{oYEQr;LZkT|e2b^;e9C?^COJ zSTG*GFQCTfd+MiDd;TV$;QVaoL(k3SxJamcKjY!&c2xZ##>3~6YTdP^@oKNX+V4A1 zC;h^Xrl)!OJDECJ`kTNHBj2jdd-IG}d7fHVTw%QWe?EV1ugkZRuT=XQ8Xjptr?M)@r2d(EZm!;_3x zdjnK^GRCXCWvai|Q9u2m)UoZk9nUIXj4xFF1inQ1OL#%~TX^#0((QhXXOw@7&sY8% zo>ktdPR2Q>e06-W@;-Q*@`1SbNohMb$19a@fj283gU?jHGd^4SUif_F)A6kG6rTLF zw4KM{Y2|b9xymzmM)?)^eC0RdIpufai~Rc`MX$7yfoQa~>!bO8YeyU!i;g?y2MGFuYQE z8jmTz0IyNL0QZ&Oh1V+2<8kG$;?2qnctUv*Z&6;+Amh`jd`&!1-XEW-ydF;}ABE3W zz6(BA`N4Qb`3d-Z<(J|)XzqVi7R0w%g1tx(@qxd^O{|Q28i)vGR#{LHWV>a^)xEMderF zE0jNkd+NIRA|6xzE?%SjYus1^<^A!T^6R6Z4NQ+_;#Z3zgr2=afH$FIN5>o>%@BzC`(Qe3|lJ@q+SBBV_!SD_;vQDj$TeP~L=l>ON&G z9#g(6?kk^x$CV#uJp6vNy5BjS{Bm_)b0wZs>(4uJPpvl|!7G)&g8Rxp##@yCgy)oZ z*;2+iue=w&M0p+FrhF%Sner)krMf;IgD+HmsdaTeybq75^F|w9qx^T=SKfOo>2Iy_ z20X5O9Nw&a3Z77Y6yBozTzsbT>+zKGJf2tnDZWhkA9z7|_pPPBHR`z75D%1Zfww8& z1FzKc-_}=tj`8q)c6D4VAm6I;_uzr@r}3G}-^EkPzr<%N{|!$ouiQq)XRh*f@Qm_7 z_3Coss3(9KD+)zb6*)=zRhbAUQm7*?)NRtpMeL;udwx%=WLzzO6xp@7gYXj zo9DT-ZRdA*puAH;#;w3}TAS~K`(Mg^wDmY1sP>GpuJU{1S>=b}1?6YjysCdC?tfL< zp1bfs`4U@4`TKZ5)&J4D%6A(n7B3@8_ z5$+dDw|ld#ul!M4U-=uhzVfeZ{qIZbcNit(5GY><&nn*xFDM^{`#+S{-_zDteyFXl ze2%TJ{0dwD$I|+D+WN|$vGtX|XX`8f(boT|w0^hIjF0kucvg86UQoUR?*Cj`e?MDa z`7yS>@^fu{<=5Hzzm(R$-_}?DvaPTDQ(Is8@3#K0rS;bs!}uuQ2+u0t3NI+1fcq;- z>mOk2D?i!RSNJV*!CzTgzc(Hz-yF{>AA=W^ z?``YO4SN?&mul#3QUwQR*jL)B?^*6u+<-_o- z@*VMl@~O7|U#0brwe^*sZ|f_+!PZy)psoLRY5iAhedV9q`pW;b^_8#L!uWWl>!pqH zK>0R!R{3stLHR+peuvWfr`Y<+FSYfR-)`$Gf5O(UD6RjNt*`t$TVHwS?PVMa%GbsH zj-~bM@Id)?cvks7w!ZQsZ2eB9_2=38%CE8YmEUXYD}UbB?_65{Lt9_@ueQGO)y6SC z$_L@~F1?3I6-@UZ{_IRLtUt3@KQMSJFvu*v=O6xDM^_Aae>nnfJ)>r2@x z{%^Lv^3}tSMVZf^D<6axl#jsu)l2K|f(Od?xAm2uXzMG#$kvaQ*1y@-R~~&#%d}tl z8@9gkuWbD_O6zynN$Ld3*TJ*OH^U3cN8x_Y()xSa`pOTr^_9=D^_5>?>#tc_|4v(9 z`7^e@^7m|gyF?|}QgO6%`u>nlIT)>nS6t*`t#TYv4+ z`uE%V%3rqim49mMEC1crU#GPG8cD`S`9^qF`Br#A`2^grDXo8it*`uKTVMHqY<=ao z+WNgq>py1eD_?5sEC0rL_&uO!WgVDb$1|^vyF}vXmDZ0FUyk32r>n*L%4WT%@%#XB8Ewyd2loe-dJ%8!B;K7mox}fWem~^;;@jeV z@br4(;oA!4wK<;i#Jk|p^o#0btHf*YJ@LgVe~8T=Df#I4^+&I0cbNISqqrUaX!k|# z4HYj++`HZ8YsBOD<9PmB@eB=Jh6gv7dh|Fhs-IX(d@yyQ<#go!f#L_!&S=^j-&x%5 z-#DI_ES?}g7BB1}USK{5C=bgLymG*2#$5@2Opl`;Fr7)Bbz#M1%MX z_;a?t>TdzhuPu2yp1XfnaZk;+o$z2|sdGB@r`f!k z|Ht8Zd?5J@o}DFi&SU&<#QojH?e|+<@wBR+!1GfiKbiLLju#FSUyRSP^}CDPaX1yPQODhU+*f{w@#_Ei zTs__Lo+O`8_1|tMUnHMa`7V1znF*3>qy=nzccVO=l`D6Iia087uq_jNgX?{7UFR=4v*loRr_DZn^pcxe6GrS zd;Z_^WNqV>;oqx~_Sku{X*>CC$!FC#x3-f%gnVA*Psa<&FSqs8c;;-K=)xDihH#ud zjR$9l2dp>VwRu(N2ji>m-^#sYo+Q-%?Q4A1d?WdSI?s&5)2dF;PMxF4FI3}y4(@f8 ze$_Cqu5G8zVw;Z^7~#vVD_&|R{|WiUYP&1j$;bAV@mZqs8{&nyY&UPV9&R7ct8v&B zU#9BJ#1pFhCmCOL{4XZIT-CXyoqV2r5G}OA*FCiJP3!gIPvc+X33Z%SOpZq+^Tr5Wreigo+m%U6aB^QeE0*;t94+{$ud4Qs!lClt9)zYtB%7&@`*vRT|3_n#Ivfu z>2~T|LO!qZx3!ahoP0s$m*K&N(w|a%-)6j3<##f^>bOlK@2mD4*G@h|-s>Ulx9gT0Z5_2AA8M!0tK<`EyUW|j|7G)P zyKC(ijnAt68f-lLJ7sDd67A%7C!bdJXSI_*m3*MuKOfJlI(Oi+RePRnr~cdIz12&{ zx!6v=%M_U>d37CG4^OE5Qg3|Kacd!;R{ffcXO$n>PMx#JCsg~hcv2l-i||(EFW`al zkBqO{{uSiYYP&tA{@?Rtpz%s?uG%kKw3APgpRe*W+R2|lexb@=*iL>S`MetEN7~81 zPJXef|7AOQZ<@@LB`Uu*?y2Wpn;KtroVO)kQ0;7OCx3{o->vk#cX~Vd%WZyL$#3b& zE7wl`Y4Xcdzus*p{{#8uDqlHW#%HFQZ+(rgIu4EGebujV?c@XUc{M+e##gBJoP$?( zlyR`@jcf55<%{uJ-4m>ThU#)%shK4^;hK+sV%)@5M^b zdne(Ee&Y6d(ZzU+YR@h0)X$SotMTk~jWPI|fU$wZe>THb{YGr&*Vw@-92{mp9;)~UG(|B-<)OoW)3SDA- zJ8}D*`8GVOp2t3pC)D|Q8J<@2-{D43PHQ`>#oO zM%6hS&#O9f@nxz#SL4|_sh?;3@3D2}iO=dNKX?vL2jcd9iURKO{C_ZYezC6JXX$>B zj8B^93E^WI^XiX#+-C)NGoDcMXD2*RJ`FEyB<-~K%A}Nt5t*U<(zEI_}xIbO`JB{Sq3rHyO{bFCM;)ZeBBSzpwc5_=$KHzZ=isLBG=ct#|>q`6q21zcl|A?r$J& z^IzLKxNT3@L#4k#|I)mV`vb(QJ$cpPaXfs?ZeH8s8RZl4qVgGda$v&zds}BVo>P7{ z9vdY2N#TrV?$=6wUI)p4Yx5h6&%ryU zWIPj_hbh7Y06k+`>M!bpF74j#t`;FsV5 zJ{-RZ&*CHS`|$#P9R8fGvsuDOxQsNf_wY95KjMiY36ry*!|8aKjAwRp@o9|nns}^E zd>woM9yGJZUs7%JYII%nYl-h=!# zw$3ogpA(*nqSw8+w?)GI?<35AJ?|+zjn`4M15a)z9=?rhUi0xBeo)!~ka#;rI>d@^-> zJh_kf`gj~q;lJS9Tc0d>%6t3aY5XYi$K&3WG1oLw;?q4i^ zIsH8p&;LjKW+~&P@zf>aYppInxB$=GAih8O>u~Qz@k8<+ofpM7#Sg%fFNyC({p0W) zZqJ|R*?gPi?<2nekG&$^mww%W$6piwlKjKC|GM}acpL7$A^rsZ5#EMRrTu^5iKUW1 zkNg_pi7PsO+whz4L3nzZxc{BF zJ-=Om2SxD-68Emd^Y~bNk*)u|Y`Gg&)TFe1{i*l>8awyB^E=?I-bG zoUeR5`>Xg%e++Qhf_scnW4!8LQc<{UA?R8|4&Et0c_A1`? zhvX0U2L8b@iy}7;`zVDeS9mtfZOx)Bs|?=q)85@{*idDLVOH$ z&d0ru;uqjI;aU7-=HX+wUs;;}5YOX}GY|j7Gu4uRh5GA+H-^#tPjweRj(h`N>>+-8 z2l)p(;@Oz^Wzq{I@ z?IK=~^4>^1xvTg!_^x;nxA}wdwh5A-K|YNqCW=4IxGluJR`Cqu@DiSxByQ*P3f!M8 z{&NS}z~GamzkVQ|V7pCtfFDc!F?eB`YtD2ju1bP z>*;F}cz&Mv=lFwo?riZt z>F;aS&l5kH`SS@Lzfk--PhKnW0=^mb*FHtYCw8&q@1Xvsc>WUcCDh**&s;8U*A;u? z{uSaMcaZHKfyb^Af2NE09K3Lycmlr)_iqs&-9hqq;;CE3hvU!Sx!c6Y($1y0mlJ=j zgVb4$7w#0l0AGox?-n1!IIMOm^XFdiZ={U3E}mZ`el^=2f(H+XPv!U;W$Qd5{tR{Y z#Bq$n=paAH;l(G!GZo^G+5FSucK*L^^SGVo-{Y|* zl0T61K;>yNKIzxQ|D-+rt-mgQA-)anzahRKzB``5?K*819=s{}AIZY@u)a*Z zTL<|E_u{Fy#4o1K%XsW<@jdXO%`5M5I`aX)iF`ji{f^XW#p8GZKMGIa!Ml>T_vsUC zef+78@(-rs*@EQlI2>X9L-9k%pMl3d6@Q-N>q@-vmH4x?XAz$JT6|Uq`N36w z_}6&xJMl4WxAPnspTv*iuTy_L-2X}ZW4sxU{Vcv`XZgXNcxt8i6!J&m1w6dXF|Rpz z@Vn%Hst~`z`d{MH$lr^%;V9m%qDuVk z4)PC1;9hre`~8SLY@HtBFOfgS=A&Pn6}~R4kUD4K*`DHK@ho0kOS}*5xfhSsh%q?{*vFQll+4$9&9K+i#j>H4gUgv%+}vX@)Ph^alckPO}{?J zvm1-s_3cWVA1pqyLJF-mSH>;1srVhZkNca8+i|PMvvF~|p4rxVow$8&HWBxRiQhu| zXW=>gW&C(N-7NWVIc;9&**e3;?Rx%3Jd1xt{!u)$h2)>cU&DhD;`TiMIUe6q+@6Ok z=E?YE@O!D_dAPNTEyc*l6*`ssCTRfDgx? z!u>IlxAW?KJcA!VekJaWmHe%E?{EPe-M{DX@HA^)!|=p*lHUQ}5zpYA=k-8@#2@_IXu0ic-Um~ddm7v;?Lnr@nllmKF9bR_a}&N zN&R2&0N;T+-OpxxCQ5!i^6TPl_yT-WJiVLb$KYGpJiZOS3m)5D@+0vncz{1nds2A3 zRr0n@8c*SNoq4{kznA2DQRg~aXK(Qd_+5BrlDIt{pSE@ODfM@49$!HFzrz!gC7;79 z&yn#g;^AXz^I8{A?JIffLu_98wl*J>=38xE`9U_nUupgXo5$^Vo`=V$NPZdZ%;K@B z;w=^OgZuDcy7>Q$8(zSdb6r@9w;d??YWxeEKSbQN$2(WX%|Eo%*TMt*1omSsUPzIz zkalik>l`6&=fea%aisYBT_iu%=8qTOk#RTzPvQ1DH3x6QYst^Yy%VI)Y4}1sgD=Dv z;fWI^e-Qn82G5-&zCnfjgLm;lT6`YskZEf?a|8G1wM?5_I&1;SD0djOcEZ|e{ zL3r{E$=h*j#8YRA??Qew-llva9-k}ulgZD(bNJI0@`GdX^x2YMlW{m3&z>WG2z9Q+ zW9N#mLH>3;exA6USC8WL-5#tBwx=z7>y?{5x4VdBA&*dAwSjT=S%)j>d(gW_#}KT?q4SPmzh6T;l(S( zdvToJg~t}))Oie#<93{1#Z$^Z!E?Ah@BMD;Tr2gbRmcXaGcump>&4Hazw6`i8^xc% z>u_(OxIGV#!E?ABw>|OnEs{T-I{V|X+r-1>nb$FR77wR^d7X>LZ>2Tz3i-iGn}1e(b?R4!4^pCWOFSoj3w8S7Mcl6IHn;f~C2!9U zTiHDR7j<^F{*vVFdTc5le_4Di?MdP3Hu006;Hh*ehJ<+yupdaIrg6Tqur#?dU)Gs z;xAIa9?yO*elK;#;=vc<+i@P-1J8XeK9V}KaPJ%ObE$JYp7~aMSNwdu_?`Gp)LDQh zilu(9t%E1YKZO@?dwzQZPyQ%%ey@;!@U`_{#CNAohw#B#G;TROjG5Q^c=A`thY|A{ zZheLLSn5x}vn$09mAH2l9{XMVWb*Uy%%9?aQh$Nw znAhic5x3X7ivLJ|{f?4PlV1zZ;x<17Z^IuVKLXEmk~%Z-9dNI+_|KeACRwi%f0%JN z5YKlPpNh}M8=EiV86+itC3Obi-mc<(@MhefQ0gssVxssJYIy_L`g6HtB8HdSu_F$Jbu39N0Q&l=5f2O+YQg-Gsqug>tv+PFCFCvCt1H({5JOc1$f~Sar^m`oABUL z@#m@kq^&bwoMG@@!xOlDe)usSyIk_$Q|Axs(I2V^Uwh)+!viOpS1J4`ygy#V?eRVw zk6$HqwjjTqt%GOreel@TlDB>Yp2Me;pM(3?NPZvuGCYmn$w1tKCl*M)6W6r|@#HPy z{VS!=OSaBk;w>G;Kg8Sa72lfeevQW#i7#V6{)rbCi`(&Ry@$l# zEJTdWra# z=V+F}yO}{R~bDxNBME!+$0pDab`N93R&JU7jndUu< z`*@x@AJ{s$U0?l(r+<<<_px89u9k62{334G$?M}OyukQ3;K|=4Z^vzWJdfM^g?;h( zO35EiJCDM1%Fnj>-z9JF?{2`oKT7=pybbR~{iS#j{|5gaFZ?NW9%LMlzB z>feeNar<2Kew(kB`~l>j!_&B3$1cU&@bToA<9>IkW1kECZS(jxTZtv?y z;5ppR^YM6gkmLtbXHUFsL-9P@orPyM63^hL;C`+6=hV3jj|~?0JIX(}6_0Nw-jV!6 zcw&fnJ?E2G@pN4LN4EQ!^*Zr;@jq;xdhv%k$q!b)mhm4}njehk@e`>t22V6g-rkS5 z+Wc_w6UZN7^IM4j(LsK2q4h1rA0&Sl?rkM*=fj(LfUiTHAMo_nl0S?(RoBt4ZNyK) zH^9^QSNJeIm5}@#e7vnQQhaYbzysyS;(6s4;QqFyb#BGe%AdpwxP9OMZM-;2>hxk9 zzQbc#_Y<{fN35VCbw#EJJ#O?b*t$3nE+>XzocozSbI%nXS z?Imx=|7tuvPTcOtdvR}vQh(Ow@zXlW20p-JJ4?QzLi|_U-$nf6KH}YPknxGl5`Tm7 z?1vW*7C(bJBk*)ed>FnfokNR zo8fJ^o#$im*sG=O+!s&cc0QkA{WZx?Vw|tUbFY{BL$>~#;&!`l+B*0I+W(WSgNLUP z^Xhqr^eb2@b*{$;;jv}nQ}7XZ8V@hK=Cv~(e@pU5;s@e6<#TNQZOPmAUyY~mC#Z7| zo_I&{Ip+Cec=3JlFUY@-7d{ZT*Z05hpdfCK_w~XX`DmVJ@deZwiYGsm{0sO_xc^aU z{h787K977FkAEzA`@HlDJcGBAzXvbkw*75*>JzE6CHXJ$9B%WS!W;IeU-3^RZ`aT3 z;W^yqn{56w$zMSI@pv0<^V9L<=aRpK{0VpwxBZ=O^UEc_G5NdjG#XO$cow(k^U-+xhtm8cJcnOE zI}gW`KbGdt#@lea->=0}KS|#1_eX3VxAS}%9{;(t{!e%gKb-dT2nWi{=U*g$6uu*# z!#}~#!n40h-j3&sxW7W&z7N&o9_s%lZri^Lp22PVFT{%~|1q9iDRpeVK761NwLgci zpq+bI|6TH5;m6_GKg8|+y#)9F6u0{;hv)Hdxnf=~;HkePzdin$&EvMedn}T6`hQE_ zw*P57jobX%_es8>^3(8yCo3r1{_F8Pz6I_12=_Wj{#bm&#Zo_w+x7fRynsJV{&YN7 zA$5MhueRP%+_rxy9_u9DO1{VavfUJJ+rKeh#OILT7EgCBt$#XRz-|2}@kAHN+x<1* z0oiU5x9hYtp6Dw1quB1{cpkq9zY7m4C2!mRJYK-<@%s^;?k0Kr9PBULs}i^Qng^ww zS=?SX8}MYc?NekC63Ra$?IhoxT`d?fh|@d9q!pTdK+rOq7ki}50E z^Kam(btG@kS4BKlBYrG(Vvo=sd=@?g_j*g-);|PK<6Drw4bS7Yei2Xfkve;kuYZ*J zjDL%d$203n-hK{e8s4^^_{rp#;K}vH55NcKrG6f_^M4%f_m#Yz|1YlQJm@cV?7ID0JU&3& z=JR+C|D5)`i)RN)-X4#C;{G78kU zy*}=NXYlFdr`tLkm)1|?G5j|27vp*S9Q;N+Iaum+#UI53d|Ui=JcoD2KeYAncj)lX zcy?2%e*^hWPs+F@H!Jluac_wD+vEq}1^hj{0ncwPdF!L_Y`oMb;_13lpNou-eQ2paY<*a%w^?s4^^dI&FZExnZ&B)1Psun3BTBum^({-i z-uhOhKGyoyrM|cIZAv|5JyGg&tdA`9E39u@>UUZnRqD@JA6@G2TOT9do&8wEQ@A}I ztHT9bbo{3A^~tY?x8V=qo8y_WQs1tNM&SkA{+{Z|cyT+)uTGtV@K}p@Z~P=YjyK~M z;wgMAej}d8tMLc$Hr&Ub$BXzV{3ATEy|ia7{0BV1*Ty@C51`Dr;p02Y4|?NmJ4u}e z@|)nXoy8mRt?(pn$A2e0g%2dZFP_B*;K$%?DnA$ZlCs?`+3}a-iCx6|Qs*{2z_+ZB zA3TI-CrJKO{8c=@yLb(CKEadt0JgglPwyf5O~`j&BIB9EJL2o%dAuvW3EqZx!?(r@ z%6Gww%BSI8tF*_~nT^NrI@&)EPwpvs`@YZRcwv(G9LDEnJhiX*O?2#j+@C7mllDJ{ zCve-Im+>TSkL!2w0N;>0U*H+s&a2<>9KI3xuFuN&7jQeT*1}`cq@5$l55NQ5wx=FX z;l0Qw@Qm_Z@f>cCuW5K2zAkl+#EWpZ-G4jx9gu%Y#qFk`WN77-0rVi@hoo7GY{i={8)~!H}J$k zvfWoWUOvJ7L&cxOf5VH1i`)GkdtSyfb%glSm$64m}5FR^Id`rFap zNqGK3@fbeS*11UhGwK{^^B0RR$4|y{{}Jy>opWsd67hG*UxsHd6~CK#@?Si-Lj04i z@(&)vlh=tKN}bniecV2O_|)dFmwYAlSK9hFiJwV3S9?*$zqnBRdG=R-Jb$bBHROll z!R_KRtE55O<8Ake+u!Fi+2$V+zm<7%1Ri@r{J_pq=WIN^M0_R-xU2EvQgNRX>)p0a zm$9b6Qrh{r&36^w7=HuzyNTQHiF|=4s>JR0P5#7#?xo)IB^kGL5AkzZzzxD<1H>n? zznbtAzJT^@jr)Tne-im!@GQOvpMnP)O8y%BaNOHSJc-Z6lgh8K^>O<=R_aWn z&J%bFKL~#tFW|P$CwOAx()N6ZXYjYE)A?o2pMxcT8{QZ9Hxb_%-_+*u7Z}ei@Wf`4 zUrfFQ_lAg%!zbfOd}sVHJd5AWygdaE8l=ul@)zT6cn9)#;Duq5AH(tZ7#<%XekT4V zp5I#h287B z#e=cp*U`?2cx*fICFBFV&?0`E9cNo-d-2D}pNhwK5Vyal>nz;cQG70SF2^&t{XI^% z;<242e-rup@H~DATB1czmMdw_`k)q$_r&+cV>2Y*iXV!naC_c93oqhZkiQO(?=N-E#vjDcv z(^rWfjqiYaSBr1MIM2Wn*NE?fACG6V;&z=p7tbsZxBGE{t$(e!J>D1NZMZ$&f56k% zN!}jsgWr^X#jh71Nc+d)0X_rY7jIMf*|>Lu)Uos7JUoM6%Zc(@JaM<=dr|)ZJiw>n zui|aEUB7*Xr|ywDHvb!5z(1l+_odR`wtFRSkKciKW|8<;l40ARgfMd&;x%!XuJDfc!i>`Kb5_o#Y3X<84ofUqpT(o_bQ;e&6I?JoAkB z!L;)k+_&_MeKUal8IpfM-?x zr|=veqs~Wo9$yph@V2zSfZOpOh!=6YzqZA_mt}lxehMDL?Rw@U+*f`D9>?vv{a!rr zn$#aaJD41PeJDPk^TRki_o=x3p632|_H*$G92jTg-Z$buQ~x^a--_q(`)qxD zn{M)h=kemNlK+PD$vb%AckuzVvxvvM?M#8+$ai^9`Wx#cz9#FCHSu`0_{P-n@nCiF zk?i-)@Z1{WXVLy`@I+7XJ@N5)7XJ_R_qF+TB>x-v!>recC&-_Lr`Hp=&qHpq_4|qs zN}mCOn7R=Xm4rd|dJ;QfCsL zs1rX9Kg8zo0qn<<@M5Fn?}B=>kJjQ`{fbbA12;PouzmhxA`COg37NJ z9{AC5lxUVZM^R@mp2yF_$Kc7~l0O!oj<@0a;HTm7ElTs(<2n3M@=xHY5t4tG^V`RG zax3vu@Za&m*5W(iJqyyWctYI%9@;uQJyQGvw!0NgbQt6%X)xsWS`rcbB~V-0bOid=GI>1K#C$ z0=M6@&f%F>$=my#XYj1@kMSJdllJ_Ex8c?J8Xw6x6!5z^kJbNw#k~uBA+H;m-Wl-fKVq>zowm{oH&$-F5!o zz4r6J*V@nj-pp^_uj4iLWQF+vX67e1H8=VC1?C44|4+}${|x3gUZS~aHe1r}_W#%{o0z6V4y8Jg4)AnQwna^8+rQf6l!3$C}^8{5{Nf zKd1S>;Ba=CU;Pu!G0md>KF<8)=QYoBJ^2gf+h5T91uXxl&vN-N{{r*xV!ro9EpPa9 znD73X=Ktf7+QVtXzohvcT+UaRAN;lE=%%W_HuJr&FgNvt`Oe>J{w3ybH2kZY{~Cw$ zF6P@`)BHW0-w!aKo4QL$KApq)ZRS^R)7`u>B=cbGrO@-JXM_sv@Veh$CE{KjK6H}e}WV?OrXTJXg&0ojm^O(=+^6C9!%^$(_;d_{G zKS}dvbAGeTcb=^I9Ow58^ZoDA{7#m?m-)<7G&k!?4dy4Gs`)a@kC@;19?i{q>&uz% zK23Ae?|KvS?eEq6Y2TzX_Vdhd9?=}r+UoB=82O``|1$I6WPb9P=2%8ifBVd*zfW^K zs=vQvK6Sh1f5rS!f1=BC>Nz2Qvf;Cuzl-Ic&3q@~^USZ_q2+&p<)6=ddQNj=H%iP8 zm>c;4^P3qh|1gL18s@#M=0DH;&CF+Vnw$FhZsz;Uf0O0^59T|0EpPZIm~R&}-)H$R zGQT>nIhtwp_o&b7a$7wf%0HF)+(IayV?J|2^N(;iXP6%_{~*_^HRd~aYWZ2_73TZT z)%*bt=XK0ie?W6%Z-3T=!`!TE{37$c=V|#5aySn&zwv`1|9unwNzGrz@{jmaT@HK9 zk29ZPKE0^r-_3lU`7ZMhF~6JnjZ<3Q@EY^0OCjH8K6hGkQ?K5{eEN*$|CYmlFY`U- zrr-Es=Bwwl{0mwBGt76Gn{n$D8YZ&O(|2k4?`HY$VLr$F8O#@$UybBnzHGxqnTUUx`AOz;oc`%A>iqVY7no<5?=Uy{U17c-@f!2# z=ZER}XUylAKZ(PC2lG|tCj9@ve4F_Rmj5{O-H3mg`PAJy-bI#w;-9hpM*IZxo6JqT ztIYQz-e5j;KFrrP^O=ahmHEkt{|fV~5&szTZRRFDf5Lo+xhc2D9I!q{{223th@WRZ zy`s}^!r5Rx$K2HO*E3&bZqoA}=G&3{!_03+{Bz8ABmU?=*XiGn`0dQ6E`;U$eC9I| ze}MT(<|du5W8RDS&oRFlh4W$NyUb1be3AKn6wc%RLZ^TFqE4r&pWnxPHR3N|euKHG zpVyf0NBr%~=T>$2CSUJoel_C%)r8O7yvHvy---B>|B~xZ#OIkGMEoA+(=Q0qGhlv_ zxhc1wVtzH^zsh_&;(y5eX2c);C7sS)<|bdyWWLYbl+W{+PhSe_&ppiNBHm%X8u1@t z-i!GE#{5Raf0g-8#6Q7&FXCTfe!zT=?bWw_S?71AsMBxk@GSGI%uRlmncs+bnfWer zQ*JL|zR%peueUItS_|LrdzsHMH}(8s=Dmo2p7{=QQ_mm!S2|x)mv#7tKZp4$bCa(n z=Gzf}5%V49CSMOS-;4O`nIA;_oy@223G2x&^Eu`wJ)dBHmHCtSeSMkvcEq3f*E+v9 zBR;e)^R*Z8 z9P@*SUt&IeuTH{04JV&p*R_m$|9ukH;9A>i<+# zr^n>?4(4+azrg$|b5q}X%(t1F`tTFXZ${z#TjqPrPw;#BIP>X5r^oQWW4_AV*zKp^ zrqh2j;&(GYU~cl&U_Mg|^ZRP%tISQlewKMJ;vZsuBjTTBz7z3B;{X9F=RM{oJd&$H-TipN#k`m|ui?b0wVSXdxUohb_H~IROZ{l)}_$>3Oc32-SFrSHdm-$KN zCOxlb-eYdc?Y+!zMEt)o---Bb_#jTz=ZHU>`2lmI7t73h9i4uo7Y{H$*$wmc2Ig0p zoAmE6zY)prG2e;!0rS0xKLHziDE$W!KhAu*7pCV5^SOv`F<*`N+nD#58@+AHG`u|95AffWyj`$tS_n4dXuP~n)g!yVQpJQ(F^*ZLO5&z$r_aeT>{6@t8g82?} zlb$Dhi%$POb5m}|nNJOMIt?!|pNaTun4gUJFEGE#+~~zeneQ_l{<28Em9k}3z(s?!FKgfKCxrz6F=KB$U3G?agFke5-d@kZ2WWE~ledfK0 zKLQ*6DV;Z%oAf-L`7U!)Zs(ZqN4(2?>g76}M*dCAXCnR|nV)2C^y2rK?=m-f@yI7~ zI{#T%4o8{qFgNKx&wM|UZ!@2IMHtQ-n9oFfhxy5fe}ehdh<}CocEq28g?lRJn-O1R zzRTR`MV0vhbE6lpXFm5zoqm(wUu1qY;vZvvgSoM*f5m)u5}M*OwRx0xHg_(c&$nU8@+fH^SRgP^!zx_ zd%T1B9&;oA+ss#AtL0zM@_)m8pZSZKe;YP*QF&hdQ7!*V%%8!0=5?AspZT54d(8jz zHtlf1g!6hWk7h{yRgC-_G)K2e{SBCJ|F4?g#{0Wo$^6DY*Sx{7C@hx2LX2XEH=c^u9cn9sdM^AhvFVSa;ojrq4d zMVIH)PiuK>&rpB=g!uvUpJo1B<~RSPmdCWS`YRg#R?W{bzu$zz{O6fBjr`lRe2e*j z`Sja0H}&L4ncrZ($ntMzzR&zSn7^C()J+}EZ*jSOfcf4#H2*yFhnesGjOJ(f{r-36 z)9=*$-f11dUor3fvgRM)aJ~f_`KW%*{d>({_K&puGnntZU-M%e{`WKA|5eRD#{3@U zySvOe{66!Wzoz*G&hM+4A29#qH*1HVV!robE&p#={@u*CAJ+T>%-_fS9d&kKC0z^ zhvjq3S3jot|HJ$o^SS@5IVW@Kecf0E?~%x6BX<*zf}W_~l`Z!q$|qvcKgc`Nhj zPiS7`i2n`q-hb5`+ac87`wahYnqOi58_f5ZqkF0TKF<8$lUg3z71ZCS4gc?&A7%M3 zGN1X~kbjl=>hEd(G?srHe$adAeJTw9DTeQBZqjpv`HfF&{yGk)z(i#QcEy z53~G-nfE@g<$s0wr%X71s<~;8zRY}wxoM9cgM%hid4565b1_Ukk@+_Bgu{Op^8@A^ z%;%Y3{h|)%9_Gu;cbWfF=Jzw7`7EvOXKaUg@3ERsafk0ihCfI1XR$r}9p*RZG&gqRQ_NR0nm?E0{Zr;Q zn7^On{fd##X?fG`KXyi!|4rst4p4tjVZM{s@^9h%9$~(ETytZuet`Kt^Glqb%gj$M zXnAvfW}Erm_iK*oq5j^${NPT_3mndSn9n^|b2KaJ?}N-&e?apOv;0Sx&pc1_S3glZ ze46=AQS&=EUw_Gb|FY&+pP=O*`E*@AC+nI&j^)3d`D#=1PcnZN^SPGh_wswZgZYiF z=BB+q&3wA2`M>7$Utzw>{DsUPWIppChtK@A%(t1pjQQJ`PxZC@_cQ-R<|mndjQOvd z@CRD{KQsTN31_Ie(dz@|+sut#Kk|FI+(ug7NPFD#r&nr_nCi| z`8%2KZEE>PG5-xC&-^=?f0p^w^-%t+%%_<@ndSfSGj#grm_LsBQRXM3a2A=bGXGYV ze3LRy=~1+`||zF=U%S)M_5lUF`s&c=FewdXTJJM z&0oUtzLfbMbCciKFu(CCEpPJsZst48XE>by+l0gXvCMy;`95@Sj<>@6fcfn#-!b9;sFv@s{1)>Y%uRduTIN%) z)AEMDnR$=-GKc?e=DR7&#cYoXBXze zKTUJVdVoQ5+1dPDRZ$yewLC0q5Ba%V+4rI8dM%mHCi!eFsg-jllA4h%oJh;&YBe9u zv1~38Xs)IcVw|*Wt|rSS$-MVx(vZy?-}JAcnUI>2Y$xqTdC(|bEB9MTXSUq04@!e! zxw6qN_iSnOlUggO3@hbUYm7vt-X+&{cr4YswNa-sMzA+pZ#66BVYAygRqpqjNq>xB zdC=xS#|Th-cy)4$$q{v6ykjQ2Fu^rjn4jQU$V`ehGnbtdads|0Ddzm#iAhl}WKK+s zdp@@?De_$Q`23{U=L?10r06rb%-r!w3CPZ8Gx*cvB&xp|2A zVzqi$h!8n6nDgE8tqb*r{Zw(g3{X(3U8Fl@xBYAuhuwa1XtJzSN{%ZSAac}<#~=CIoBB(v66xm8EU zq`YN8r8jC;OG)LrCDdcuNSp*r)M7FqYDLQW8P=c{GgS8!L#c)k!4E2pq&ihXFR0Y^ zdt=Q3kPS5HRPpF}?j)P&9rw#^k8w|mx@YywEWIZD-v%-2Y(isv`5L?@J+0@ZqyxP` zO3YiN0xwaym8jq>R*|k;DbrhW)wY_fkLp&Y-AKy4l6`EH2EB5}3D=ta!LZ$}ju0Jn zz)g%u{t`7zYtXOisaChLq4MCDtr0mzH7?HJI(g~!yERm$etGE9j8{w8MugrlRV|mI zR(CL5)gDhHMP8vDIR?+{bab{{tzPJM&fz^oWvgGJ$wx{?xrBSDYe=J+C4>pse=Sy|_6D{vuu@cI{RbzBXyNF)Ayd=`_EEWoqU~pV zRNpLbxTKK|Y{F;;62Ze#Kk?r%tC6RRWK`QQ$nBA{6`N218w%@`=LKnZ!}}x0{PHQn z047Igk*+G~Ch7ONC9O}XH>Fh7MuRw8)j`sBh8yp zU8*Kd0CCai!__r_eli^O{nrB4fLGWsF9pba5uVXu>v@#IOCy^&=yr1bOuyfC)^LDn zxg^y4R9E-qU6%2~r-02-Tt6-wGL3Hu&H26G{cD8m*Gw0ac{sYIe0*?G77Z z$Ff`vYKQ7+1_X_g9Tjwp*02GST%~!^{!o)nci60L zmDq9!z2oMf+^;m681}HtY!fBE-Y@r^@v8Y99j}a-Tb~#|(a<0&u>M90j8s!r^80Pn zZ%2IznyK|svsJwZg^Nj98%d=+s3U{Jk?v0WeQosOTfMp;Dk|Y!<-r*mcC6SC5=<#? zdAeyG>fPje)7K(BUa{`o!B#VARlO2G!{1chM2`)INx5~gkMW}Qr~{t!gwX9lzVtj1 z#+ua7daigC#d0lC6B=iIO$)rid%NqqD$8`Pi|HdZqvfoD?@f(4N~EvdTFr}-vd#(e z6KcYY?29LzY9Q7VR1EqLqaj-a^Fsv>*d$qHM+5?*N1@043h z-74BA$ImVKPbi0B;wvwV4~0X8<7;e)FZ-R`ZoTW-W)u$sMCGe&c(hHkf&McxAIq?& zpu^kjIz!&8CIe@FmDW=GZu3L)hh+UMP%lHRWmL-0G{+HP>7n_22(J5px}D0WKQ61T z*Rj6h8b6*JrKZ>hHGoc`Ew6Oj?VygLKNYqNwaqFN*!gSL@rDK$?{)-Qt0zbD^K&_i z@!IhQAREjURQi~;@P`YKxzHV6>=dc^z1Q5KW(K}v4*6cQ=T{H)QmD^kqgLcRirE#V z6>7V|uJ_(cgU#l!((qn)x%$9pFjNy0eyW-+vfLg)tD~z0VAKzzq|z|f3zb^Wt@e6X z_0ny6)yUGl8uf@8?MG8XA6``=GgW2GdP1#gQB9KFu72B4wRQ3$f1r(;iJ_R6dV@SE zRqs6!n?awUIQv7-Q-3&zu8=38fhUnJY){&A^r_dC@~~&(&Dx){6?Le#CksojEQ&Tf z+?(-w#YNTP=;CuP05Pl?#j?feEfBisI4xd`C>hp<`Ao)*U@;Y0qB%Aj9A~-XUyuZcYvY_TL)@k!x_a2@;SgfotG+udd@BpLI>$uBt^)RLbr-K)_&6glsq^p zw<1Pj3tnJGEMg>vRW4VAMlOaV7))mx!5ETYFvn>GW2mCWx|a}lK+%aKQBMv;W!Xb& zO(GIgEEeoE@v2b^BUyuEacmEWBtcR_^Z8h4J|7EJQbHgpAxyJGK~;c^nCgB~4b$CD zY7&Dc)>ZaG&Q*4v!LDAnwVTQM_2U+`YDuS(oKl^NOVy#@Vvc&fZXY9|Yc7C+V{Y;a z6J6f)ty61H2Mf6qHpWuvT6NGZkr^#PA7frmhUC<(Rm)qFdxbjtC6)>VI^7aaUJIKU zs5b;VSZfbwdp#Ol^SVQKG<53@%5o28)5hGG`(tK(vrmgYx0@$5t42W|Io9hPoyA56 zG-5n;YQ5^HZ>N9A-kAhoF3E~`>mHXd)Ic8>Dl+!`t6;e;L%Q&|+_{E%ttu59p3Yov z4u2|Pr-;@H5%Q%gDwc5Aq9`F9%i#SF3Ms9Ra>nsk;IW> zv_^mzhl&3u?t>vqV|qSSJy)}1m*I*V@jd74C`Dm#l`m<5NNEB81Lx;I5(>0czh zOm?Y1>J4qMSPw(BFp=PiYN_`Kad^BVxt>%I7ktyK^%-gn#5YRGrnR&s%AWIieCU=hIQ5^5}U4e!EscZ#y_Os-eH+ ztp*x@RL-+*Wy|2fMzg1iaH-qlxd`KQrr$?pJ&Q@^s*nuQBwOW8@tStMhiZBU)du=O zmGKl7#mhtL*-V9QMZ|x)*^j8J6lllL_x7s^NTu7kMxhqBu&RB1$`CcjGM{g%TE|j~ z<+1_8GIO&{D-FgYg2Mb1`rZb#k{ZksCY7;Sg993&^33OZ-ObFLWq3l{a);7bAU2jMIMHkc`MT#q=^yBWn-~`oa>i+4NN!M@NHkp5U0ZE&RIF1x)^+#6J_%v zEr@h}YJ{-^M#6WDhBb6rXst3t2Px1a6bhg+9t3=fcSm$*< zwd|4}^RkpH#9TgS{dzQqE<{Qe+q^8rl=KR1CQJ)0NC7UuG#gnO!JY4RH%2|3sMy%s zqB0&_x)!qNqjQw4@)j)ExO`>u^XT@cQinZR=s`)?WsTHkL9e8x1s9IHjJR}ROPNcU zj|=D+aUhjz!{v^esPaH|83xmnSc?G+4Y~xO5P~^NbF(R0)Y~|M5NXFwC`d%`Pgn{- zi6Y7{5Jl5r3*pjcDs)>y@26SB%u8&c4mM2=YJp}leN zsJlKit>pcN1$Pb?wJp(t6|{H|R&iRds)u5HxLjuDU`jb0TG}mc!Gw1!i^E|*;3=qV zlOF}On_imGIlOT3%!M@@3JlE73p*=HR(%Per2C9RGuFl+b-B&}B(0=RR*wojA$;GmWlET1#*cj;F7=(Dg^f1W= za2|bhG~}rI8lj~alFd`0V3<;Fq2$?V2#dzQm5X|7N|3S!H|o1-*@v*8r`mQ-vzf_Q zC=|2+=JeE}lX6#m)*8(+s7LY)lfa2~#TJEi;=~Cp?~3uniQ`kcztzSpSCOVhZEsR@ zl+jwZt7r5yap9x;LL2gD)n=o<>R%Z&>{h!|=HWET3?uR6%=Jo=RM9~<4ohX!W7=?J zfD7An2aQWL3PZg+?zeGkJ$t2rCB70CebLYwwuG?wY?4=Pf+nazESdr}K5*CGq^o3aq$aF4`5B z<&};VxZr-dyj^h7UT|@(TG3S(>ZLOTmSzK*8Z(dj~w?*q-bio!k9CaBlx&U5e z-CyJq`=XwsUIdkXvxokzc~6VgR@sHQ*ywr>9cX>4S?-kX!q*7hdTXl(owpwQ<#lvO z-D5lHK-Ph4G~4W+Phnt;X2})HsWNTLF#bKJ*AmVX0BZ2P4j7!z*lTQ|Na$FwJ6v#S#Y=8r>rXEUtu?(5g4Fj^oN~X{(3j z99QX=w))7S=jAlY8;j*O#M8+&(KVZz0+-FZ~SiH}Hjrjb^v! z#dt31_UnGxoNJZqs6>87&SAmY_kvabVZ)WtIm|q{_kM2lKp8s|U4qYz`t8w1!-2cJ z^x$`W0czzkL#aE5Hu^Q{;@a{5p8&zGp?#6bC z4L_lGm$%A|(s>u*-Hmd;J7@%fG_Wbq=JoDI_W@6L?rw~#lk^MJ= z=O$8zEk&Lu>@UDb-Mp%m1bai9rIqrQSIt(i3XzoVZf=w}MqYeSP^!A6r4jZ3V2gqa zgB>KxxYG2>Zl&uL>Pojm%HSss9XK24s0D-R#SXQ^E+*@Kp}dY4?`Q2ovRPUyH%sS7 zE@@!ywUTGATT-HSrFzU9NCQ<$~pdg7P#S`&LU%XQbKSZnqh zBWy)8WplP4OC^7rMwW ztIg7q-e+s$K8-ry9+DoWD9~kg{g2al17YH5(+RAUGYILJ?m`#MGj+?Si=|U2g8o+N zA`*-4obya>YnY&v9jgiE&h(U{DXiz?tA|uB&Udj15-pzEZiHtx`IvCZO|;f(>3+z%mqEJ1YW)2-dQ*nRkzJbxUv4ioCI?cEJ$!cfG08n zoR{DUDWVg0rrlex!z_h)?=JE9)LNu@fnt-E6u@zbVi81;#RoBIIxhzxl@)D2Ne7V0 zN(FOVOaUg=a)_cW(m_UQ;?~ciFq-ydGWQ+i*G`H!*W3$7sJK!gpi8`v3Rl4BFT#3E{Nft z5DQ&Y;LHgzT+Av8X%H1ViwWtpERIePsT6Kj)ZwhC!#J`)3O6H%E7gZ=R;mx#tW*x! ztQfASnORXYvpF$bZ1@q%OjNflmhvQ7G2FZuZb5uQqPk@ZVve!kC8R-YC$ggT&SKq8 z3PDWoaWTE3zTuDzDcs{?dKbhuzaW;Rs99N2v$CRQWkt=(o{(~!!`UzC(#c^*utcTw z=H|q3vFH<3~%YE~{MrZ*?O`JAX(Iecj@l!K^Q zxx5&zs98BtvvB%{6q~47Ijk@XDVrB_Eb35hUVIn$PE`o^xR|oz;=2%aC@1O=PO_0= zTM$c9)U2G?5zUB z(f$#k)Wv>ZUhMbL7vMq&qGsjA)+sM)R$lB4=0(lQi<*@eH7hT+S#-RBkPA`Y@}j;K zM13oW!@RNSp~7pqAgKE2>9ecqEgFS5L>c> z*pd~*K4L)}y%j{=EQl>xL2StidCAHZMBT&@V^WT>r9mi%f>;h>AF&{|Zv}BoRuFZw zAnIm8)Xjo8CM$?zvVy3E1yKtN3u66U5X)E8!h+c96~z8zLF`W!WZe`;YV)FQ&Wj_p zc~Lj#Mcow5ulR<=7c5$2@uiDB9dWQA)&tQ*i*-Zn5Q#NI><)>wMKsxB4H7GmSbsz# zF4}Oh@`!au9H3-GV^4e0(uN=-cDXWQ6OfscOe)Ud6T_7hDbagdbBisc}71~X!VlMx%7jMzoYh+RaSP%6D4v5S}y z8>fueam4;!F;75mzj5q@@(DXf!jT)y#-yGb7r~jM&8DXjUl= zqUp?tiyRrzPG&_rnH3w}tY{~*qMgi&b}}p4Nu0SVqMgi&D>GSfWhN_H&#Y)YaU8RhH_>`#MeCUr`;%GGdS=BQWmdG4 zS~Lnq<)N%-J+q?q%!<}CD_YO2Xg#x{ z^~{RaGb>uptl0I;io=$i*vrg`HWepH3$-sNTF;y~#L0=)6K82l;fhOCIkA_S6Rl@X zTxZUS)-xws&zxvIbE5UkiPkeGTF;zlJ#(V<%!x~1InjFJAa1E7Me9i)^rTycoVZMe zletA%u|9}>&zxvIbE5UkiPkeGTF;zlJ#iknlwQ$#=0xk66Bp%jV&5|-+SHub_soel zH7D9soMSHKLbRzlu}7K{m-TX@P0fit(wt~hbD~Yni8eJS+SHu5FqjjqXHK-9IdRaQ z6Rl@Xob<_w67c@w@5G`$9w6uBA(&oi} zYF@OddC{ik#eQmDw4Qmo(0h&7DS6kr+cS+K?SjwSr9E^L7dAh zh!(LR_B{)tMJ$MY&w^#GYe89CsH) z+gA{6-@G_$IWO8iI;JwME%Rb;a9*^1xXVcj0k)5h=fV{v>I_u+AOE7m<(E544LV`l z-2|eg=|ZB$?0wn$2kMXvhRK5|q~-GW<2Vd`^3u$UU+PJV4%$yH9d?9F8ped34I?$D zPvWRO@`w{g_!1fh?kqS4=+8zXu!IqT=0(K60|13XQCSf_D9=6XM;AAjeb`J_7w zR8E5+&6#`wG^Ys$c~s})1({SN%%wtMHWdo6}$Ik(CWS=D{ zEfuf@Dz_mr*$pYa4Z;Bl?hXQVF@^Vx16}D{0voWtm`dHO(6bQV?euUmMs$ve`bY_1 zTA7>%*Ua!yn${7Y?Eu+Fc2=i6h|t}6!1v4eQp9Ef*P$Je-@PGq@@jX%p-*%IPIVcF}@UJ;Ja*U3=e(>mQ z6_qN%S7D|+aR8iuv5n=aYi-86(1i|XTcbgPKAJS)hW?XlIEZ+RTWzvebEA&+eeUAQ z;=QYvE-n=>{u7=$2aYvpYbku(>A}TUvv?feMYSe zp6LPh!ZW`(n&#SC_KfwRpO@{kswcS2fa;WmcwzX+b~)>+hb8V^YlMr3B5!mRkwp~U zvKPGxXW5CEa9o-!fe^n6)yka7I+<1t-`(LBE$F+A%&@Mjwm8zr)fRosycO?shxlrL zBN;hyLW36WdkTbx3gH$7s-WI=QY5Y21aW7B+EBc1C3q`Gj;X81aK`1xZOP&OE!-(k!T|*?k;ry%rCblkVesl)emcs`V*4gx9fI~74s?yp(OFbsoDZX3 z6Ce4PFIm6XBH!WYT&gAV9x8I-KTqc&`Wfu?AP%^ z{fn0FP}c^LHlkuh_vC4aPLX>J;#FyA82iJeEvSginka|y!7WL(VDj~aYm>vHqPi4a z(Pn*kmlN_eYu3qKZ4jX~eUO4W+5#_2ofK&9HY-vlb*kK$$v8%-)e#U}yoS@r{PLcy zSJaq6Unv*G?>!dj5=ifvhIXVte%w@3l|@F{&?Qx8YjUzn{iIF}XP-{y?_M|S*WLK0%&6tm0H|3g zQ{o1k3i?uplK%2_aH$~T0$Rj4U@(M5^DbemSFS)+!L*}a1nR|{s^h*vbaHLrI6Sn2 zQt-NUMAStrn|QFbMFI$R)b2&rM0b(AejA5I&7*DLT(N`=pW{$IoGY&`K=e9WeAA*!HC1CA#AyNU z?urrGk%8*CB%Q&ipP=UVT9omAGxv9W?9nI%%oqpHcb zp*h?e`B59;VSnqKcW0mz$M8r9q}m+xaK60Yf-6Dka8J*Ls?hqVhW3@FemW>By6AJP zK;_9Gz{u7TCdc2M0swF5UfU{U#5FH>tHLgC(yo zqAo2?gO#uy#vC-7r~o@X-)@MXjbVk#aq@a3S_am?u#3)zCw`xP_z4%UF4GJyOF?dzTPXU*Wpa zV4eqeVb?1-W|O7^d}o{6dgYR;^}eI;H|^?qUF&aYcT}oz0jR4Tig@q-eRlQAWp#yo zDzP-sX6Ro%mJBb54s|*jdt+SGNZur8eHVc2nQwcgH|p6urZh%yEe^v`)cs&=ORGk= z&4e>o3PtlbY3_l@s8>aY z9a6zHq+H~_XV~&)MRm#|1ECx+{PCu56bh}6Li!e4n`FhzEw&-8(M<^)y)Sr?bPv3ubi=HBpX6)S&A_4pC?Oj(S*$Tcr8g~DbDd}9QC}8pV)bqq1>PU(qBHV1-dtbXYeT{N<~w^Wsz!mRva+rmfKxITg4eC#Fg$`mK$td_ zrGs1tNPzp5s8cBZmBC^n% zw3rlCUGl4zeyvZndjYpZnIW#e|CMe`vLdRU-5A12FZywMK#wpO+pbBTy$w z3%f-uM%v`^h0pdm2qG=5oUJfj5>XldpT#TLwDV!T7GGhdW#MVlR3ovH@|D5W|hZ@Q8U zfG&%Y>y!}mj4|Ijj??0up|m%V+vs3DpavL}2R;)RDOUsdnr`a{9%!WxouEMB4~4k% zk?vl#;rJf-vTxBX?C|)$l#98v+xc}@c1w)brpNJ8uUYlVnaY8)IcL4Nd%W%4HO9p2 zYi6(@<Y&*MY{Sski`O~GX|*FL05&Jz1LFnXMgH7bOdY~>u~e0Z`PINVsTAf zAa2EAy0weBTHLzekYKvh+dV^5)#5Ilmh7lEQba!x>2>ok{EVZP&$(SlRO5@zlu!nt z26X$KF~8hWIVCi}Wt`hBC(`Ux=(TCBv>~acgl?R%B&vVtgF)S`D=UKE*eS(RBT_3x zV^8})cX1-&5Bf!~YLG9afG2;iMztu~lhr!rnu zmr~-=I>^u}L5bky4s1^-i{`1Ag4M2K>=jpT;sA1tZPeM?G;4!*YSU1!xYDK*wmTTS z;DQkAP7g!OZ{Yp_)+?JNH8}FROThrE-c@gbcCXp6B7x|Uf-7N@s#`CnzW(B{+iqg} zpAAG+68i)bisiRteH7gP&TCFZEQ+RXwWiX zy98rQ%d8Sc8|PzmW-jUQ6y+&!Ozct@7Z>)?dZ+8Iz%$ma^bpkM4faECL9;|ZqO0@4KB4x9dTL((RtM+pLNq{y9#m86!01kDSS7((-)&r~??>I3H59(3 z0~dg)sz9+{>c2U`AO+a1(yVRKT%;Po+JIFj-PIU+^vAqP0dPMv89(e1ar+R+0Madx zCNMmEKB?s(X7`t zvD9j#z%7(8fZm)2LZ|Lglq2fH_23PP3V|Sh^i1P_8zexmt&(mh3r9^fAsrHQuPV6c z(yv2Auw~H=IFt;n2dXZoi;e^d2lI(aSk3K4I|+OTwUZzWNO>u#)uhlth%|_>Tzz0P zFvCcvlNzgKI2)d3dj27T0~)EtzG?mzmeW)y>QxTvxRJ*Is?Ivh$UE)GQTer^>Y_JS zq+}d|x`n;XG!nG(=sD7`fI58MRK}ozVedxhlM16qVTEfdZH!2jpbHaw-*BaX9$UMt z`qU-Rr#YJ{pE?coX~D{>dPbMu4UrWj+x4{iWn`Yn(3?O{i3g5aylaJAEWQigi&K9k zOC%LPOn8(c{YYCdqksvyLa_PkXZ$M~)FYI!leO4S*8w0&%@a;z6D7Rd8*(w+FjIuALw#3DAXdE>Yx% zh>IRz(5oi6RmrkmMP)RIjXV;yLg?GM#8Ml04R>956I`l{v6dNl!cAf-yR3XRFe>Xl z^#TL(02%=c2F)7oFW>A?E9+jC>W5uI>@izKU}vHG*1wWGlU@N@)XhBKvTSS@hpQ~H zXRrPKcQ1S3ct_jI`DmWpr?JP?2B(2AEgx>cey{0RCcmPT!O9g`HPp#p}0i~agC-3K33dJ1(3-_q!N zSgo6y=Emq4g34ud#tG$kk=x~3qO=HCt%<7Vh=E$)U4YaU5JZ!@( zhwapt`k0dD(HKTggY*7K#^aYeLFI_YZFbDXQBy+@4#wDlQYJf?K^+H0A4CDp19KF_h9^$pK>HC~mh)BVY~ zzO%AX&*)2wtvJ2<`1`UkA~cHD-;CXwKsFT#ZOMrJV)#Sj7Xj0lIl|$GR7XsKsVxT> zy&Qc`%}u6-vKZT|NwQRcW(&00{vHWnwh$GzUWst@twH4KZ{5edf%!-vF8fIA)&hy7 zs7h8iDH- zM{X1(Z^lhg+T26Uq;~N3ow(h)qMtRlXZM!eT@J#{yP{`rA8X`pwxdS4Uh(#vMsB>M zRoRF*`ufyIuz9z-WOtOQiW&K`j%s{}iGs*oZz0m#1|lcblu2PK2MRCp;O*>)TvR(v z9W#mRHTl>@uarkreV$G|bZ5#e^4^$Ug^m1TrjFMICp)-sA|E+h;>fzU5)%dIJE?_| zTXJ`?dW#>iPq!>Wiz&C@>O!S8j>rSAY(!KoXhh7PK0M6Hi_%U#M1Hvc6VadrJ#x(Z z{?vS$N|tR_pE_Xdyydo+|*6KJV7(C}~|KcHDl zF^0$`@MS(ZOQ$PxQNA!>!G{1dFP<@uGo~6CaOX^~T%EaZK7T*0?JUfACzO2So>koU z%^#=N^Nq*<_X{A*|JfN{y1H|wGIPuo0)3Wu=L{_gW9$83Ff+CczM%ldreQF1%q3y~ zbF9-abIhiaHnd=5+MS`TXX0D&QuK`mr_yH%Bh_I|SFv#-K{)8;>May0Rft>yUs%=D z`>RvFBA2hHOdH;-CewT84CZy}iK`32i_c~6oKfF!f1_po4-(zj{G~(3Yd0@XeIs<| z3=V)8QXS4^534fYU}$0LiqIQXm{fGSGd)nx^Z7exXm-{-iK+SeeXH2-o6k7A^7V&7 z2Q~fuLQttN1;3KCX>>P8D@)`OmYk=&7?Ah1;!`PNRB&rA@Gx&dDzP?7^DgN`h7M!X zh(2@ORkk{;6*XR@J-3$FTlOEOKyQd?RyJ%UQ)Cm@yHmVW%P^xv{c7Br?g?q;#Kh|N z4<2|>;??y!E(cE+c)$Z6$OpcPOPN0(EBX5}_nXS+yHUNCU4mE|dQg*&Cv*t>&=v+7 z>!&?ME}^ex9Sb6Bf~UYi=P94=$wf%Z71DAM3eup4?9fkaCP@`+%598KwW>48yDt!g z!PA)~I>aUwecCbbtLHmquPHa>^S)f}ezhwd`;BaDX{cmvzf6DbUR5m~T1WcMz&v0= zlrcV7t9RPk($D8bW%~Ps6Xu&Hd(@hu&4aD&k(16fdYMKb>M1BoKh`xY2W85r^F=ne zqvtwpONP&xlZm%8h+mBt8?Y^Xlg=s`-xL4;EfM-n z%onWHK^H1)=k6QpsQqT2(GK<{XroA#Nr9#c&Kc@~|GaqJK0O5O&%@*w&J|Fg+?4+^XiIpZ;4yp{j1Ljni{6VPQxk|k| z>y_6}14a+t;cxWl@3_UIe=aFG(}h8%Sm>FKyY`-A9vDWnsJeTG}P zj%RRkv(Iq*0FL<&gImZgEYJzLz8vm-JARz5-|`_YQo*^?aakY7-H8iviQ{gR3<3xP z&CW02h5$MS-wzdKuyB0tMCu(J&mG4N3f`Nbg_Nyk;(e^t8?9sOS(zppZMEUm?g!e~ z^i=bf_EF){qoLRBVt32I5`(&^2}6@u>^yh7_*7lR#w{Jt84_k9PoWf69X}6yBHwr&P zN97wfovYdpZe`UIshK6HzfHAy&k{5nIPnBMCG69i?RZ~|r1n(yY2!MD7JSFuAC`d2 zmEagD5bO`Pao`be)7u;f%`L_ZLi!y$Z#avLCe)3>lIAVdy8&zCn{`j5jeU*S5pTVy zwOspzV)nLDBEoVDduM4hX`(>+482_`-9c!eRNuISGB4LK`PuZ2uEB~nPBz5pyHhwN z3SYV4|3_!lYh1<54(%8AIHu^MN9af-1Mw2g6(=}e$@5B>4^NLVMmtFz7SfZ(bUkg7 zPJBio3{qhIdJ3gTTIRvnQzZrurilL1S|<``0l}spoxRe>s>&tW?@S!CORKau)#jy# z!*^)R#(~r0m1Y(Dmvkufyo%muQ*AbK>};!Sid}i3NR*eeJqo_2eiyyp>NH@D@s7`` zwuypMTb4Sbwin;1gX4>^yOkDfU5wbVd{5F}_Xylh;Vp(_?mFzW^Mzl_!Mmf>0-jYT z6a;chIK8BWkIn-aR37$AHrBjlM&<-==NDB2pXREsE*#XKZLHwa=5EywL6sA>AbN2t zbdTD1O#V@(^ofd*QKg253#0aW@G8p!L&<4TFZgy7Cz^HYCOoWkqFk!oRrm7f3%Xfe zfY&L20_riJ>R}VZe{L9P06st|(vDZGiPEXd^g+szWBhP*_LBazJ)(ExoY4qfA%ze9 z!miPmI6g#7v|XsUrQ$iK53z>8na;IlAKT-!EcWB6`ezn#6@?$Nda=Xu;6itZO{(}5 z6=KccNokLiE7&%*Ggn8aGfw3RtpkD`99JA0amG!Cw9yK~Q#LR}Ftl-z(3gMuvl%6N z7VFZy&t5&B$9Exdp0OKWNzv|cU1a)M*$x61sYS)V7m`hKp`QtTVx)U@EMQzrXiGR6 zU5U~mlavV66q8@dB>ih7RV(a0>oyu-9rL_u&n14Z(kEN^ml_A`>cTIzl^Fjb^cF=< z!Kx3rbZwwB21#sWevr%xzLG`!s!4#GMau)6E3eap;8ak4sW~PJ7BRgad#0EKMw|9y z%+=RZ6SXXO8J~o;>2q|PHVy3E&2MG`ytRJJip@)bXX6j|%`_!5{bq#F7V`M@#Z{JCB zDRM==gN_wI=|y^_G1`?jy4!f?`dPKUbQOi({%i1&V@vJo(OG;Qd(Db6!$~;!9yk&N z#0GGICfL{;$tr#7pT>cb{bmmz{>JV~F`YBnQj;Z>D0ClUgq-7J2`5LoC}yAYz~(#% z7A3Qe9qiSMqal3=Vgj=Yu7znU=oxiv1FM0?=eykvwb9ynL$Ah`E4N(6(Jx8aDJ~;f zN@e>nr)-p!NItE_I!CJb{3@2lszMITP7!ZqbaSTJ)m^ge?UPCukGJknb_Sh;JM=v^v*){Rs4F_!(V*z+raw~7 zOYRGI$!)Sv-o|5wiKzf6*|#b)HjpA6)pjePpwK2H_g*#LoFsvw=-D}uR9?vc*ff&k zA#op;gL^9tJMET^9F7yhS4Gsj(7keMYzmdgWY-B1Tbv|OoWoCW1@8sk|TLG0@?E|jua$CpTIY1hQPm@LlNwk{d~{qnOI>@z)|>U<8S9Yk zvQCUEG4)x!NrCl>G3y!s;jI5~%0A%RWrVn_&A58O%YFiMglapsNz;QPEcVe!7&eTu z%FPRiSI0WgJdNOZ1|wB`vZH2kObjX{8@ev5v23loSX^3Omc)ZVyQ(Jg97_ z%-OKk2e{Cp(!c_UNg5MOp&PP1P%{hmxj9(woWnkJ~UlwW9(PSL~$x-M65I5o2PU;HrJ=?RCm`96T*kiq1SodB_l!G>%txafj&&es_0ed`0o6!!FkhV5gxj$A1(|d?PS!g` zl|e~S+~0wQErr#L>KHdFleCWte}^0A3rzx6mXfNOrc6bJNk{FL4s$X;wI!GRs`+F# zPKqqPgw~oSYf=eY9$+6~vs|TCaIQg1hMmnudiqJv0P z1ejQS{Gelr^Otf)+DBQqsDMLSN z5AWrI!~KgJXK1p<26yC`k__gMOiJ2n#UxO;8Wx~t+c?kZlncURLP6++s1+ja^2RQW$1ng0x^**O}?Vv$>!&3oVghPOUXT z_Y8ehJqZ@Yo#xkQZ7Gd8?7@X5Hh%=9?%@R?0mot-!Exu0XYL+Fn>L6^vPA z3zJn$hI&CR#8{D`zDyh?q@!A{qb%xknSu<9f`Q&>zn5X-!m{$TMvYcY(y)9I3eJ|* zIMuTY)D?s|xQNLZP7EE+hW8Xa>p_t(5m!0#6=i@>SX4y9QmR~2!yFSb9)sNBSw-!q z$FNusGGQ_~uoO&zI4|&sz@pr6Xlbgln8uof`9~Nk`{SfjWn=Ch=2rv%Yjm@xdtCM& zj~pAs&6;lbcs|&8bA~i>2)fRg!PfmAJ1b)RA2~*to425N7qulW|H_1Sj{Roc36*$b&=)0#?ez|}CyB$`T6&ZBiPqF9q;;iI#r z0PKtO9izGtIECGI7huo;`aa?gy7Qt+XS{Rt7Mwr*V#Sn8ufuta8ZJMT+9}mZbAHnu zcIOtf(tfDvZoBg&_S~Iw&~o}=#&ybhQ7-A8VoG3aaybB@AL+sfI@}J2-Fe4DrEwfD zYJ5iEI3^mn_`P_)T*h&+o9YtcdQD!7hLP)7(m}4N zi$(3Su4DAdx{uQ+Pe9Nmb*S1{ZSq`G`sBNX8s)h}I_0^_=sY&Mv~qYJBkk~9WcBa_#_5MAGFCwX8LJ^fH#?+t04H8~ z`vE&xHkp9~RtOH;Iw*;XvoUH%h>m+ zF2~NXKF98&PRBx#UdPTU-Hrt${f=c)IxY*O^gI?z>v}8^>3i&)*7;aM)caT{(*4*u zZkk2+bo)F;?2s&tZ>i((0y_~qhNdZY4b4;RDwrriWMcFwQxyjgnyc7VG+D9G7_$|N zjWbp2`Jm>IZEFf(vH%*<$!iP29sGYDXUnStx!W(GpHVrC$AOJ+vN-Ljd%W=GwT z@|Mv8J4DAp@ZwukX*2VOTN;v?Y-*Im1Y1MylZ*|yPqa29aJac4sY&*R+$S3xk~q}j zkkDk4<0K~A9FjZ4=%^G;usY;^h}j{L!|e`9O)@;>KGE`6fkRA>CpXFVL}F(#Y@Sq! z$E!aDG{O9k^91`t&W9NwmYJM{$tH+`m|%m*`EVmdQnzA-NbZ)*kQTgUJA^IPlkE^4 zVhuR?$nrw%h#AG`} za);O z*dY=*+zye{Bs)az6YY={IK&Qla+B;(BsR$ok?43MK&}()5IIkCrcab|QwwPWwSA&P>z|k-dmW#r^tlF!OkHi}$Zu^@XBwg~y=Y)gjJ*a#^v{*coN0QYEW#}>X zws09Fjh zj$wG*5J5DLy$jk95$ROOifE&A6#U&&)%u(ixIs>IAA&^vr`g zQ_Vc6S8V0Tsf7dGj4L1XX&#G7LYl3^R3}`S2f8QLy7cHgHseAMuB4PQ7$7+l&E7Sc{n=Vrm3hi z9Y5n_11^nA<;_^eA*>0ggI@7ncyU-=YTz78P4v+Z%lL*%3FzY@E|fdCWQIJ@iEw6k z>%duc=7cAq&t~v3y+=CaNeih{Z_g3Dk_!laobtlycW{K1^mcQI*)M zdn)RORI1e;8Z7<9NYy(F*Ko?RciEB1osTu-#MNmftdV{Z^xIB?C|9(^^g11MJA3ZS z2vt93DrzW*zICq5yMFFOX9Jy#F?W}Ym(nV?;O@E@FG>en93n`KwK=zHNqte0phYWg z($}T9cLe%4&YiwOj06^|)wC}_LG(Oo(gcjnzd_U_ZoW$OlcWwx62h?@(_x}KML@Ni zj$+hDXxP^qW9pE{Y^{$q8`9p`0ZsU33hE{(7QIA91xL-YxcZJ%eH8NCX{Y3X zP(`jfx1tN%7ZX^JW;(!0NVRF<_&}A}Vb>hFGK*p|bgg?CCjs@n=kwi7@448dZ^zXk KZ^ny?{C@&15gy|J diff --git a/vendor/k8s.io/kubernetes/cluster/gce/gci/node-helper.sh b/vendor/k8s.io/kubernetes/cluster/gce/gci/node-helper.sh index 45cdfe6cf..fa7c035fb 100755 --- a/vendor/k8s.io/kubernetes/cluster/gce/gci/node-helper.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/gci/node-helper.sh @@ -25,7 +25,8 @@ function get-node-instance-metadata { metadata+="cluster-name=${KUBE_TEMP}/cluster-name.txt," metadata+="gci-update-strategy=${KUBE_TEMP}/gci-update.txt," metadata+="gci-ensure-gke-docker=${KUBE_TEMP}/gci-ensure-gke-docker.txt," - metadata+="gci-docker-version=${KUBE_TEMP}/gci-docker-version.txt" + metadata+="gci-docker-version=${KUBE_TEMP}/gci-docker-version.txt," + metadata+="${NODE_EXTRA_METADATA}" echo "${metadata}" } diff --git a/vendor/k8s.io/kubernetes/cluster/gce/upgrade.sh b/vendor/k8s.io/kubernetes/cluster/gce/upgrade.sh index 1345eeb10..452d8cfdf 100755 --- a/vendor/k8s.io/kubernetes/cluster/gce/upgrade.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/upgrade.sh @@ -99,8 +99,6 @@ function upgrade-master() { parse-master-env upgrade-master-env - backfile-kubeletauth-certs - # Delete the master instance. Note that the master-pd is created # with auto-delete=no, so it should not be deleted. gcloud compute instances delete \ @@ -122,51 +120,6 @@ function upgrade-master-env() { fi } -# TODO(mikedanese): delete when we don't support < 1.6 -function backfile-kubeletauth-certs() { - if [[ ! -z "${KUBEAPISERVER_CERT_BASE64:-}" && ! -z "${KUBEAPISERVER_CERT_BASE64:-}" ]]; then - return 0 - fi - - mkdir -p "${KUBE_TEMP}/pki" - echo "${CA_KEY_BASE64}" | base64 -d > "${KUBE_TEMP}/pki/ca.key" - echo "${CA_CERT_BASE64}" | base64 -d > "${KUBE_TEMP}/pki/ca.crt" - (cd "${KUBE_TEMP}/pki" - kube::util::ensure-cfssl "${KUBE_TEMP}/cfssl" - cat < ca-config.json -{ - "signing": { - "client": { - "expiry": "43800h", - "usages": [ - "signing", - "key encipherment", - "client auth" - ] - } - } -} -EOF - # the name kube-apiserver is bound to the node proxy - # subpaths required for the apiserver to hit proxy - # endpoints on the kubelet's handler. - cat <&2 - KUBE_MASTER_IP=$(gcloud compute addresses describe "${master_address_name}" \ - --project "${PROJECT}" --region "${REGION}" -q --format='value(address)') - fi - if [[ -z "${KUBE_MASTER_IP-}" ]]; then - echo "Could not detect Kubernetes master node. Make sure you've launched a cluster with 'kube-up.sh'" >&2 - exit 1 + if ! KUBE_MASTER_IP=$(gcloud compute addresses describe "${master_address_name}" \ + --project "${PROJECT}" --region "${REGION}" -q --format='value(address)') || \ + [[ -z "${KUBE_MASTER_IP-}" ]]; then + echo "Could not detect Kubernetes master node. Make sure you've launched a cluster with 'kube-up.sh'" >&2 + exit 1 + fi fi echo "Using master: $KUBE_MASTER (external IP: $KUBE_MASTER_IP)" >&2 } @@ -616,6 +617,7 @@ function create-node-template() { --boot-disk-size "${NODE_DISK_SIZE}" \ --image-project="${NODE_IMAGE_PROJECT}" \ --image "${NODE_IMAGE}" \ + --service-account "${NODE_SERVICE_ACCOUNT}" \ --tags "${NODE_TAG}" \ ${accelerator_args} \ ${local_ssds} \ @@ -771,6 +773,18 @@ function check-existing() { fi } +# TODO(#54017): Remove below logics for handling deprecated network mode field. +# `x_gcloud_mode` was replaced by `x_gcloud_subnet_mode` in gcloud 175.0.0 and +# the content changed as well. Keeping such logic to make the transition eaiser. +function check-network-mode() { + local mode="$(gcloud compute networks list --filter="name=('${NETWORK}')" --project ${NETWORK_PROJECT} --format='value(x_gcloud_subnet_mode)' || true)" + if [[ -z "${mode}" ]]; then + mode="$(gcloud compute networks list --filter="name=('${NETWORK}')" --project ${NETWORK_PROJECT} --format='value(x_gcloud_mode)' || true)" + fi + # The deprecated field uses lower case. Convert to upper case for consistency. + echo "$(echo $mode | tr [a-z] [A-Z])" +} + function create-network() { if ! gcloud compute networks --project "${NETWORK_PROJECT}" describe "${NETWORK}" &>/dev/null; then # The network needs to be created synchronously or we have a race. The @@ -783,7 +797,7 @@ function create-network() { gcloud compute networks create --project "${NETWORK_PROJECT}" "${NETWORK}" --mode="${network_mode}" else PREEXISTING_NETWORK=true - PREEXISTING_NETWORK_MODE="$(gcloud compute networks list --filter="name=('${NETWORK}')" --project ${NETWORK_PROJECT} --format='value(x_gcloud_subnet_mode)' || true)" + PREEXISTING_NETWORK_MODE="$(check-network-mode)" echo "Found existing network ${NETWORK} in ${PREEXISTING_NETWORK_MODE} mode." fi @@ -946,7 +960,7 @@ function delete-network() { function delete-subnetworks() { if [[ ${ENABLE_IP_ALIASES:-} != "true" ]]; then # If running in custom mode network we need to delete subnets - mode="$(gcloud compute networks list --filter="name=('${NETWORK}')" --project ${NETWORK_PROJECT} --format='value(x_gcloud_subnet_mode)' || true)" + mode="$(check-network-mode)" if [[ "${mode}" == "CUSTOM" ]]; then if [[ "${ENABLE_BIG_CLUSTER_SUBNETS}" = "true" ]]; then echo "Deleting default subnets..." @@ -1343,6 +1357,7 @@ function create-nodes() { # - NODE_DISK_SIZE # - NODE_IMAGE_PROJECT # - NODE_IMAGE +# - NODE_SERVICE_ACCOUNT # - NODE_TAG # - NETWORK # - ENABLE_IP_ALIASES @@ -1373,6 +1388,7 @@ function create-heapster-node() { --boot-disk-size "${NODE_DISK_SIZE}" \ --image-project="${NODE_IMAGE_PROJECT}" \ --image "${NODE_IMAGE}" \ + --service-account "${NODE_SERVICE_ACCOUNT}" \ --tags "${NODE_TAG}" \ ${network} \ $(get-scope-flags) \ @@ -1491,8 +1507,6 @@ function check-cluster() { # Update the user's kubeconfig to include credentials for this apiserver. create-kubeconfig - - create-kubeconfig-for-federation ) # ensures KUBECONFIG is set @@ -2175,13 +2189,6 @@ function prepare-e2e() { # easiest way to buy us a little more room. function prepare-startup-script() { # Find a standard sed instance (and ensure that the command works as expected on a Mac). - SED=sed - if which gsed &>/dev/null; then - SED=gsed - fi - if ! ($SED --version 2>&1 | grep -q GNU); then - echo "!!! GNU sed is required. If on OS X, use 'brew install gnu-sed'." - exit 1 - fi - $SED '/^\s*#\([^!].*\)*$/ d' ${KUBE_ROOT}/cluster/gce/configure-vm.sh > ${KUBE_TEMP}/configure-vm.sh + kube::util::ensure-gnu-sed + ${SED} '/^\s*#\([^!].*\)*$/ d' ${KUBE_ROOT}/cluster/gce/configure-vm.sh > ${KUBE_TEMP}/configure-vm.sh } diff --git a/vendor/k8s.io/kubernetes/cluster/images/hyperkube/BUILD b/vendor/k8s.io/kubernetes/cluster/images/hyperkube/BUILD index 20a1873c2..6ca2ff6d6 100644 --- a/vendor/k8s.io/kubernetes/cluster/images/hyperkube/BUILD +++ b/vendor/k8s.io/kubernetes/cluster/images/hyperkube/BUILD @@ -11,16 +11,12 @@ docker_build( for path in [ "/apiserver", "/controller-manager", - "/federation-apiserver", - "/federation-controller-manager", "/kubectl", "/kubelet", "/proxy", "/scheduler", "/usr/local/bin/kube-apiserver", "/usr/local/bin/kube-controller-manager", - "/usr/local/bin/federation-apiserver", - "/usr/local/bin/federation-controller-manager", "/usr/local/bin/kubectl", "/usr/local/bin/kubelet", "/usr/local/bin/kube-proxy", diff --git a/vendor/k8s.io/kubernetes/cluster/images/hyperkube/Dockerfile b/vendor/k8s.io/kubernetes/cluster/images/hyperkube/Dockerfile index bde5343c1..71d2300a0 100644 --- a/vendor/k8s.io/kubernetes/cluster/images/hyperkube/Dockerfile +++ b/vendor/k8s.io/kubernetes/cluster/images/hyperkube/Dockerfile @@ -15,23 +15,20 @@ FROM BASEIMAGE # Create symlinks for each hyperkube server -# Also create symlinks to /usr/local/bin/ where the server image binaries live, so the hyperkube image may be +# Also create symlinks to /usr/local/bin/ where the server image binaries live, so the hyperkube image may be # used instead of gcr.io/google_containers/kube-* without any modifications. # TODO: replace manual symlink creation with --make-symlink command once # cross-building with qemu supports go binaries. See #28702 # RUN /hyperkube --make-symlinks RUN ln -s /hyperkube /apiserver \ && ln -s /hyperkube /controller-manager \ - && ln -s /hyperkube /federation-apiserver \ - && ln -s /hyperkube /federation-controller-manager \ && ln -s /hyperkube /kubectl \ && ln -s /hyperkube /kubelet \ && ln -s /hyperkube /proxy \ && ln -s /hyperkube /scheduler \ + && ln -s /hyperkube /aggerator \ && ln -s /hyperkube /usr/local/bin/kube-apiserver \ && ln -s /hyperkube /usr/local/bin/kube-controller-manager \ - && ln -s /hyperkube /usr/local/bin/federation-apiserver \ - && ln -s /hyperkube /usr/local/bin/federation-controller-manager \ && ln -s /hyperkube /usr/local/bin/kubectl \ && ln -s /hyperkube /usr/local/bin/kubelet \ && ln -s /hyperkube /usr/local/bin/kube-proxy \ diff --git a/vendor/k8s.io/kubernetes/cluster/images/hyperkube/Makefile b/vendor/k8s.io/kubernetes/cluster/images/hyperkube/Makefile index d84e85475..5f0e1f138 100644 --- a/vendor/k8s.io/kubernetes/cluster/images/hyperkube/Makefile +++ b/vendor/k8s.io/kubernetes/cluster/images/hyperkube/Makefile @@ -21,7 +21,7 @@ REGISTRY?=gcr.io/google-containers ARCH?=amd64 HYPERKUBE_BIN?=_output/dockerized/bin/linux/$(ARCH)/hyperkube -BASEIMAGE=gcr.io/google-containers/debian-hyperkube-base-$(ARCH):0.4 +BASEIMAGE=gcr.io/google-containers/debian-hyperkube-base-$(ARCH):0.6 TEMP_DIR:=$(shell mktemp -d -t hyperkubeXXXXXX) all: build diff --git a/vendor/k8s.io/kubernetes/cluster/juju/bundles/README.md b/vendor/k8s.io/kubernetes/cluster/juju/bundles/README.md index b56a40df4..74fbdc7a4 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/bundles/README.md +++ b/vendor/k8s.io/kubernetes/cluster/juju/bundles/README.md @@ -51,7 +51,7 @@ The command above does few things for you: deployment environment (machine 0). - Deploys the Juju GUI to your environment onto the bootstrap node. - Provisions 4 machines, and deploys the Kubernetes services on top of - them (Kubernetes-master, two Kubernetes minions using flannel, and etcd). + them (Kubernetes-master, two Kubernetes nodes using flannel, and etcd). - Orchestrates the relations among the services, and exits. Now you should have a running Kubernetes. Run `juju status @@ -113,9 +113,9 @@ capabilities to the charms. The master controls the Kubernetes cluster. It manages for the worker nodes and provides the primary interface for control by the user. -### Kubernetes minion +### Kubernetes node -The minions are the servers that perform the work. Minions must +The nodes are the servers that perform the work. Nodes must communicate with the master and run the workloads that are assigned to them. diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubeapi-load-balancer/config.yaml b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubeapi-load-balancer/config.yaml index ad33ef60a..a4678ae02 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubeapi-load-balancer/config.yaml +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubeapi-load-balancer/config.yaml @@ -3,3 +3,9 @@ options: type: int default: 443 description: The port to run the loadbalancer + extra_sans: + type: string + default: "" + description: | + Space-separated list of extra SAN entries to add to the x509 certificate + created for the load balancers. diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubeapi-load-balancer/reactive/load_balancer.py b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubeapi-load-balancer/reactive/load_balancer.py index c421aa51b..a3577a353 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubeapi-load-balancer/reactive/load_balancer.py +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubeapi-load-balancer/reactive/load_balancer.py @@ -22,9 +22,12 @@ from charms.reactive import when, when_any, when_not from charms.reactive import set_state, remove_state from charmhelpers.core import hookenv +from charmhelpers.core import host from charmhelpers.contrib.charmsupport import nrpe +from charms.reactive.helpers import data_changed from charms.layer import nginx +from charms.layer import tls_client from subprocess import Popen from subprocess import PIPE @@ -44,12 +47,36 @@ def request_server_certificates(tls): hookenv.unit_private_ip(), socket.gethostname(), ] + # maybe they have extra names they want as SANs + extra_sans = hookenv.config('extra_sans') + if extra_sans and not extra_sans == "": + sans.extend(extra_sans.split()) # Create a path safe name by removing path characters from the unit name. certificate_name = hookenv.local_unit().replace('/', '_') # Request a server cert with this information. tls.request_server_cert(common_name, sans, certificate_name) +@when('config.changed.extra_sans', 'certificates.available') +def update_certificate(tls): + # Using the config.changed.extra_sans flag to catch changes. + # IP changes will take ~5 minutes or so to propagate, but + # it will update. + request_server_certificates(tls) + + +@when('certificates.server.cert.available', + 'nginx.available', 'tls_client.server.certificate.written') +def kick_nginx(tls): + # we are just going to sighup it, but still want to avoid kicking it + # without need + if data_changed('cert', tls.get_server_cert()): + # certificate changed, so sighup nginx + hookenv.log("Certificate information changed, sending SIGHUP to nginx") + host.service_restart('nginx') + tls_client.reset_certificate_write_flag('server') + + @when('config.changed.port') def close_old_port(): config = hookenv.config() @@ -72,7 +99,7 @@ def install_load_balancer(apiserver, tls): cert_exists = server_cert_path and os.path.isfile(server_cert_path) server_key_path = layer_options.get('server_key_path') key_exists = server_key_path and os.path.isfile(server_key_path) - # Do both the the key and certificate exist? + # Do both the key and certificate exist? if cert_exists and key_exists: # At this point the cert and key exist, and they are owned by root. chown = ['chown', 'www-data:www-data', server_cert_path] diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-e2e/reactive/kubernetes_e2e.py b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-e2e/reactive/kubernetes_e2e.py index 76a97aa0d..0cede6743 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-e2e/reactive/kubernetes_e2e.py +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-e2e/reactive/kubernetes_e2e.py @@ -22,14 +22,18 @@ from charms.reactive import set_state from charms.reactive import when from charms.reactive import when_not +from charms.reactive.helpers import data_changed -from charmhelpers.core import hookenv +from charmhelpers.core import hookenv, unitdata from shlex import split from subprocess import check_call from subprocess import check_output +db = unitdata.kv() +USER = 'system:e2e' + @hook('upgrade-charm') def reset_delivery_states(): @@ -87,15 +91,16 @@ def install_snaps(): @when('tls_client.ca.saved', 'tls_client.client.certificate.saved', 'tls_client.client.key.saved', 'kubernetes-master.available', - 'kubernetes-e2e.installed', 'kube-control.auth.available') + 'kubernetes-e2e.installed', 'e2e.auth.bootstrapped') @when_not('kubeconfig.ready') -def prepare_kubeconfig_certificates(master, kube_control): +def prepare_kubeconfig_certificates(master): ''' Prepare the data to feed to create the kubeconfig file. ''' layer_options = layer.options('tls-client') # Get all the paths to the tls information required for kubeconfig. ca = layer_options.get('ca_certificate_path') - creds = kube_control.get_auth_credentials() + creds = db.get('credentials') + data_changed('kube-control.creds', creds) servers = get_kube_api_servers(master) @@ -118,11 +123,22 @@ def prepare_kubeconfig_certificates(master, kube_control): def request_credentials(kube_control): """ Request authorization creds.""" - # The kube-cotrol interface is created to support RBAC. - # At this point we might as well do the right thing and return the hostname - # even if it will only be used when we enable RBAC - user = 'system:masters' - kube_control.set_auth_request(user) + # Ask for a user, although we will be using the 'client_token' + kube_control.set_auth_request(USER) + + +@when('kube-control.auth.available') +def catch_change_in_creds(kube_control): + """Request a service restart in case credential updates were detected.""" + creds = kube_control.get_auth_credentials(USER) + if creds \ + and data_changed('kube-control.creds', creds) \ + and creds['user'] == USER: + # We need to cache the credentials here because if the + # master changes (master leader dies and replaced by a new one) + # the new master will have no recollection of our certs. + db.set('credentials', creds) + set_state('e2e.auth.bootstrapped') @when('kubernetes-e2e.installed', 'kubeconfig.ready') diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/README.md b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/README.md index c1738869a..c1cc84a6c 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/README.md +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/README.md @@ -54,6 +54,10 @@ The domain name to use for the Kubernetes cluster for DNS. Enables the installation of Kubernetes dashboard, Heapster, Grafana, and InfluxDB. +#### enable-rbac + +Enable RBAC and Node authorisation. + # DNS for the cluster The DNS add-on allows the pods to have a DNS names in addition to IP addresses. diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/config.yaml b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/config.yaml index c328a4375..09b808825 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/config.yaml +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/config.yaml @@ -7,6 +7,12 @@ options: type: string default: cluster.local description: The local domain for cluster dns + extra_sans: + type: string + default: "" + description: | + Space-separated list of extra SAN entries to add to the x509 certificate + created for the master nodes. service-cidr: type: string default: 10.152.183.0/24 @@ -40,3 +46,27 @@ options: runtime-config=batch/v2alpha1=true profiling=true will result in kube-apiserver being run with the following options: --runtime-config=batch/v2alpha1=true --profiling=true + controller-manager-extra-args: + type: string + default: "" + description: | + Space separated list of flags and key=value pairs that will be passed as arguments to + kube-controller-manager. For example a value like this: + runtime-config=batch/v2alpha1=true profiling=true + will result in kube-controller-manager being run with the following options: + --runtime-config=batch/v2alpha1=true --profiling=true + scheduler-extra-args: + type: string + default: "" + description: | + Space separated list of flags and key=value pairs that will be passed as arguments to + kube-scheduler. For example a value like this: + runtime-config=batch/v2alpha1=true profiling=true + will result in kube-scheduler being run with the following options: + --runtime-config=batch/v2alpha1=true --profiling=true + authorization-mode: + type: string + default: "AlwaysAllow" + description: | + Comma separated authorization modes. Allowed values are + "RBAC", "Node", "Webhook", "ABAC", "AlwaysDeny" and "AlwaysAllow". diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/lib/charms/kubernetes/flagmanager.py b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/lib/charms/kubernetes/flagmanager.py deleted file mode 100644 index 7fe5737a6..000000000 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/lib/charms/kubernetes/flagmanager.py +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env python - -# Copyright 2015 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. - -from charmhelpers.core import unitdata - - -class FlagManager: - ''' - FlagManager - A Python class for managing the flags to pass to an - application without remembering what's been set previously. - - This is a blind class assuming the operator knows what they are doing. - Each instance of this class should be initialized with the intended - application to manage flags. Flags are then appended to a data-structure - and cached in unitdata for later recall. - - THe underlying data-provider is backed by a SQLITE database on each unit, - tracking the dictionary, provided from the 'charmhelpers' python package. - Summary: - opts = FlagManager('docker') - opts.add('bip', '192.168.22.2') - opts.to_s() - ''' - - def __init__(self, daemon, opts_path=None): - self.db = unitdata.kv() - self.daemon = daemon - if not self.db.get(daemon): - self.data = {} - else: - self.data = self.db.get(daemon) - - def __save(self): - self.db.set(self.daemon, self.data) - - def add(self, key, value, strict=False): - ''' - Adds data to the map of values for the DockerOpts file. - Supports single values, or "multiopt variables". If you - have a flag only option, like --tlsverify, set the value - to None. To preserve the exact value, pass strict - eg: - opts.add('label', 'foo') - opts.add('label', 'foo, bar, baz') - opts.add('flagonly', None) - opts.add('cluster-store', 'consul://a:4001,b:4001,c:4001/swarm', - strict=True) - ''' - if strict: - self.data['{}-strict'.format(key)] = value - self.__save() - return - - if value: - values = [x.strip() for x in value.split(',')] - # handle updates - if key in self.data and self.data[key] is not None: - item_data = self.data[key] - for c in values: - c = c.strip() - if c not in item_data: - item_data.append(c) - self.data[key] = item_data - else: - # handle new - self.data[key] = values - else: - # handle flagonly - self.data[key] = None - self.__save() - - def remove(self, key, value): - ''' - Remove a flag value from the DockerOpts manager - Assuming the data is currently {'foo': ['bar', 'baz']} - d.remove('foo', 'bar') - > {'foo': ['baz']} - :params key: - :params value: - ''' - self.data[key].remove(value) - self.__save() - - def destroy(self, key, strict=False): - ''' - Destructively remove all values and key from the FlagManager - Assuming the data is currently {'foo': ['bar', 'baz']} - d.wipe('foo') - >{} - :params key: - :params strict: - ''' - try: - if strict: - self.data.pop('{}-strict'.format(key)) - else: - self.data.pop(key) - self.__save() - except KeyError: - pass - - def get(self, key, default=None): - """Return the value for ``key``, or the default if ``key`` doesn't exist. - - """ - return self.data.get(key, default) - - def destroy_all(self): - ''' - Destructively removes all data from the FlagManager. - ''' - self.data.clear() - self.__save() - - def to_s(self): - ''' - Render the flags to a single string, prepared for the Docker - Defaults file. Typically in /etc/default/docker - d.to_s() - > "--foo=bar --foo=baz" - ''' - flags = [] - for key in self.data: - if self.data[key] is None: - # handle flagonly - flags.append("{}".format(key)) - elif '-strict' in key: - # handle strict values, and do it in 2 steps. - # If we rstrip -strict it strips a tailing s - proper_key = key.rstrip('strict').rstrip('-') - flags.append("{}={}".format(proper_key, self.data[key])) - else: - # handle multiopt and typical flags - for item in self.data[key]: - flags.append("{}={}".format(key, item)) - return ' '.join(flags) diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py index b6430637d..e7b3b5506 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py @@ -26,6 +26,8 @@ import charms.leadership +from shutil import move + from shlex import split from subprocess import check_call from subprocess import check_output @@ -41,7 +43,8 @@ from charms.reactive.helpers import data_changed, any_file_changed from charms.kubernetes.common import get_version from charms.kubernetes.common import retry -from charms.kubernetes.flagmanager import FlagManager + +from charms.layer import tls_client from charmhelpers.core import hookenv from charmhelpers.core import host @@ -79,10 +82,41 @@ def reset_states_for_delivery(): '''An upgrade charm event was triggered by Juju, react to that here.''' migrate_from_pre_snaps() install_snaps() + add_rbac_roles() set_state('reconfigure.authentication.setup') remove_state('authentication.setup') +def add_rbac_roles(): + '''Update the known_tokens file with proper groups.''' + + tokens_fname = '/root/cdk/known_tokens.csv' + tokens_backup_fname = '/root/cdk/known_tokens.csv.backup' + move(tokens_fname, tokens_backup_fname) + with open(tokens_fname, 'w') as ftokens: + with open(tokens_backup_fname, 'r') as stream: + for line in stream: + record = line.strip().split(',') + # token, username, user, groups + if record[2] == 'admin' and len(record) == 3: + towrite = '{0},{1},{2},"{3}"\n'.format(record[0], + record[1], + record[2], + 'system:masters') + ftokens.write(towrite) + continue + if record[2] == 'kube_proxy': + towrite = '{0},{1},{2}\n'.format(record[0], + 'system:kube-proxy', + 'kube-proxy') + ftokens.write(towrite) + continue + if record[2] == 'kubelet' and record[1] == 'kubelet': + continue + + ftokens.write('{}'.format(line)) + + def rename_file_idempotent(source, destination): if os.path.isfile(source): os.rename(source, destination) @@ -137,11 +171,6 @@ def migrate_from_pre_snaps(): hookenv.log("Removing file: " + file) os.remove(file) - # clear the flag managers - FlagManager('kube-apiserver').destroy_all() - FlagManager('kube-controller-manager').destroy_all() - FlagManager('kube-scheduler').destroy_all() - def install_snaps(): channel = hookenv.config('channel') @@ -193,15 +222,10 @@ def configure_cni(cni): @when_not('authentication.setup') def setup_leader_authentication(): '''Setup basic authentication and token access for the cluster.''' - api_opts = FlagManager('kube-apiserver') - controller_opts = FlagManager('kube-controller-manager') - service_key = '/root/cdk/serviceaccount.key' basic_auth = '/root/cdk/basic_auth.csv' known_tokens = '/root/cdk/known_tokens.csv' - api_opts.add('basic-auth-file', basic_auth) - api_opts.add('token-auth-file', known_tokens) hookenv.status_set('maintenance', 'Rendering authentication templates.') keys = [service_key, basic_auth, known_tokens] @@ -209,12 +233,10 @@ def setup_leader_authentication(): if not get_keys_from_leader(keys) \ or is_state('reconfigure.authentication.setup'): last_pass = get_password('basic_auth.csv', 'admin') - setup_basic_auth(last_pass, 'admin', 'admin') + setup_basic_auth(last_pass, 'admin', 'admin', 'system:masters') if not os.path.isfile(known_tokens): - setup_tokens(None, 'admin', 'admin') - setup_tokens(None, 'kubelet', 'kubelet') - setup_tokens(None, 'kube_proxy', 'kube_proxy') + touch(known_tokens) # Generate the default service account token key os.makedirs('/root/cdk', exist_ok=True) @@ -224,9 +246,6 @@ def setup_leader_authentication(): check_call(cmd) remove_state('reconfigure.authentication.setup') - api_opts.add('service-account-key-file', service_key) - controller_opts.add('service-account-private-key-file', service_key) - # read service account key for syndication leader_data = {} for f in [known_tokens, basic_auth, service_key]: @@ -261,13 +280,6 @@ def setup_non_leader_authentication(): return hookenv.status_set('maintenance', 'Rendering authentication templates.') - api_opts = FlagManager('kube-apiserver') - api_opts.add('basic-auth-file', basic_auth) - api_opts.add('token-auth-file', known_tokens) - api_opts.add('service-account-key-file', service_key) - - controller_opts = FlagManager('kube-controller-manager') - controller_opts.add('service-account-private-key-file', service_key) remove_state('kubernetes-master.components.started') set_state('authentication.setup') @@ -302,6 +314,7 @@ def get_keys_from_leader(keys, overwrite_local=False): # Write out the file and move on to the next item with open(k, 'w+') as fp: fp.write(contents) + fp.write('\n') return True @@ -356,7 +369,7 @@ def start_master(etcd): 'Configuring the Kubernetes master services.') freeze_service_cidr() if not etcd.get_connection_string(): - # etcd is not returning a connection string. This hapens when + # etcd is not returning a connection string. This happens when # the master unit disconnects from etcd and is ready to terminate. # No point in trying to start master services and fail. Just return. return @@ -366,7 +379,7 @@ def start_master(etcd): handle_etcd_relation(etcd) # Add CLI options to all components - configure_apiserver() + configure_apiserver(etcd) configure_controller_manager() configure_scheduler() @@ -399,20 +412,43 @@ def send_cluster_dns_detail(kube_control): kube_control.set_dns(53, hookenv.config('dns_domain'), dns_ip) -@when('kube-control.auth.requested') -@when('authentication.setup') +@when('kube-control.connected') +@when('snap.installed.kubectl') @when('leadership.is_leader') -def send_tokens(kube_control): - """Send the tokens to the workers.""" - kubelet_token = get_token('kubelet') - proxy_token = get_token('kube_proxy') - admin_token = get_token('admin') +def create_service_configs(kube_control): + """Create the users for kubelet""" + should_restart = False + # generate the username/pass for the requesting unit + proxy_token = get_token('system:kube-proxy') + if not proxy_token: + setup_tokens(None, 'system:kube-proxy', 'kube-proxy') + proxy_token = get_token('system:kube-proxy') + should_restart = True + + client_token = get_token('admin') + if not client_token: + setup_tokens(None, 'admin', 'admin', "system:masters") + client_token = get_token('admin') + should_restart = True - # Send the data requests = kube_control.auth_user() for request in requests: - kube_control.sign_auth_request(request[0], kubelet_token, - proxy_token, admin_token) + username = request[1]['user'] + group = request[1]['group'] + kubelet_token = get_token(username) + if not kubelet_token and username and group: + # Usernames have to be in the form of system:node: + userid = "kubelet-{}".format(request[0].split('/')[1]) + setup_tokens(None, username, userid, group) + kubelet_token = get_token(username) + kube_control.sign_auth_request(request[0], username, + kubelet_token, proxy_token, + client_token) + should_restart = True + + if should_restart: + host.service_restart('snap.kube-apiserver.daemon') + remove_state('authentication.setup') @when_not('kube-control.connected') @@ -457,12 +493,39 @@ def send_data(tls): 'kubernetes.default.svc', 'kubernetes.default.svc.{0}'.format(domain) ] + + # maybe they have extra names they want as SANs + extra_sans = hookenv.config('extra_sans') + if extra_sans and not extra_sans == "": + sans.extend(extra_sans.split()) + # Create a path safe name by removing path characters from the unit name. certificate_name = hookenv.local_unit().replace('/', '_') # Request a server cert with this information. tls.request_server_cert(common_name, sans, certificate_name) +@when('config.changed.extra_sans', 'certificates.available') +def update_certificate(tls): + # Using the config.changed.extra_sans flag to catch changes. + # IP changes will take ~5 minutes or so to propagate, but + # it will update. + send_data(tls) + + +@when('certificates.server.cert.available', + 'kubernetes-master.components.started', + 'tls_client.server.certificate.written') +def kick_api_server(tls): + # need to be idempotent and don't want to kick the api server + # without need + if data_changed('cert', tls.get_server_cert()): + # certificate changed, so restart the api server + hookenv.log("Certificate information changed, restarting api server") + set_state('kube-apiserver.do-restart') + tls_client.reset_certificate_write_flag('server') + + @when('kubernetes-master.components.started') def configure_cdk_addons(): ''' Configure CDK addons ''' @@ -596,7 +659,7 @@ def ceph_storage(ceph_admin): cmd = ['kubectl', 'apply', '-f', '/tmp/ceph-secret.yaml'] check_call(cmd) os.remove('/tmp/ceph-secret.yaml') - except: + except: # NOQA # the enlistment in kubernetes failed, return and prepare for re-exec return @@ -614,6 +677,15 @@ def initial_nrpe_config(nagios=None): update_nrpe_config(nagios) +@when('config.changed.authorization-mode', + 'kubernetes-master.components.started') +def switch_auth_mode(): + config = hookenv.config() + mode = config.get('authorization-mode') + if data_changed('auth-mode', mode): + remove_state('kubernetes-master.components.started') + + @when('kubernetes-master.components.started') @when('nrpe-external-master.available') @when_any('config.changed.nagios_context', @@ -675,8 +747,21 @@ def on_config_allow_privileged_change(): @when('config.changed.api-extra-args') @when('kubernetes-master.components.started') -def on_config_api_extra_args_change(): - configure_apiserver() +@when('etcd.available') +def on_config_api_extra_args_change(etcd): + configure_apiserver(etcd) + + +@when('config.changed.controller-manager-extra-args') +@when('kubernetes-master.components.started') +def on_config_controller_manager_extra_args_change(): + configure_controller_manager() + + +@when('config.changed.scheduler-extra-args') +@when('kubernetes-master.components.started') +def on_config_scheduler_extra_args_change(): + configure_scheduler() @when('kube-control.gpu.available') @@ -852,9 +937,9 @@ def get_kubernetes_service_ip(): def handle_etcd_relation(reldata): ''' Save the client credentials and set appropriate daemon flags when etcd declares itself as available''' - connection_string = reldata.get_connection_string() # Define where the etcd tls files will be kept. etcd_dir = '/root/cdk/etcd' + # Create paths to the etcd client ca, key, and cert file locations. ca = os.path.join(etcd_dir, 'client-ca.pem') key = os.path.join(etcd_dir, 'client-key.pem') @@ -863,69 +948,46 @@ def handle_etcd_relation(reldata): # Save the client credentials (in relation data) to the paths provided. reldata.save_client_credentials(key, cert, ca) - api_opts = FlagManager('kube-apiserver') - # Never use stale data, always prefer whats coming in during context - # building. if its stale, its because whats in unitdata is stale - data = api_opts.data - if data.get('etcd-servers-strict') or data.get('etcd-servers'): - api_opts.destroy('etcd-cafile') - api_opts.destroy('etcd-keyfile') - api_opts.destroy('etcd-certfile') - api_opts.destroy('etcd-servers', strict=True) - api_opts.destroy('etcd-servers') +def parse_extra_args(config_key): + elements = hookenv.config().get(config_key, '').split() + args = {} - # Set the apiserver flags in the options manager - api_opts.add('etcd-cafile', ca) - api_opts.add('etcd-keyfile', key) - api_opts.add('etcd-certfile', cert) - api_opts.add('etcd-servers', connection_string, strict=True) + for element in elements: + if '=' in element: + key, _, value = element.partition('=') + args[key] = value + else: + args[element] = 'true' + return args -def get_config_args(): + +def configure_kubernetes_service(service, base_args, extra_args_key): db = unitdata.kv() - old_config_args = db.get('api-extra-args', []) - # We have to convert them to tuples becuase we use sets - old_config_args = [tuple(i) for i in old_config_args] - new_config_args = [] - new_config_arg_names = [] - for arg in hookenv.config().get('api-extra-args', '').split(): - new_config_arg_names.append(arg.split('=', 1)[0]) - if len(arg.split('=', 1)) == 1: # handle flags ie. --profiling - new_config_args.append(tuple([arg, 'true'])) - else: - new_config_args.append(tuple(arg.split('=', 1))) - - hookenv.log('Handling "api-extra-args" option.') - hookenv.log('Old arguments: {}'.format(old_config_args)) - hookenv.log('New arguments: {}'.format(new_config_args)) - if set(new_config_args) == set(old_config_args): - return (new_config_args, []) - # Store new args - db.set('api-extra-args', new_config_args) - to_add = set(new_config_args) - to_remove = set(old_config_args) - set(new_config_args) - # Extract option names only - to_remove = [i[0] for i in to_remove if i[0] not in new_config_arg_names] - return (to_add, to_remove) - - -def configure_apiserver(): - # TODO: investigate if it's possible to use config file to store args - # https://github.com/juju-solutions/bundle-canonical-kubernetes/issues/315 - # Handle api-extra-args config option - to_add, to_remove = get_config_args() - - api_opts = FlagManager('kube-apiserver') - - # Remove arguments that are no longer provided as config option - # this allows them to be reverted to charm defaults - for arg in to_remove: - hookenv.log('Removing option: {}'.format(arg)) - api_opts.destroy(arg) - # We need to "unset" options by settig their value to "null" string - cmd = ['snap', 'set', 'kube-apiserver', '{}=null'.format(arg)] - check_call(cmd) + + prev_args_key = 'kubernetes-master.prev_args.' + service + prev_args = db.get(prev_args_key) or {} + + extra_args = parse_extra_args(extra_args_key) + + args = {} + for arg in prev_args: + # remove previous args by setting to null + args[arg] = 'null' + for k, v in base_args.items(): + args[k] = v + for k, v in extra_args.items(): + args[k] = v + + cmd = ['snap', 'set', service] + ['%s=%s' % item for item in args.items()] + check_call(cmd) + + db.set(prev_args_key, args) + + +def configure_apiserver(etcd): + api_opts = {} # Get the tls paths from the layer data. layer_options = layer.options('tls-client') @@ -936,25 +998,39 @@ def configure_apiserver(): server_key_path = layer_options.get('server_key_path') if is_privileged(): - api_opts.add('allow-privileged', 'true', strict=True) + api_opts['allow-privileged'] = 'true' set_state('kubernetes-master.privileged') else: - api_opts.add('allow-privileged', 'false', strict=True) + api_opts['allow-privileged'] = 'false' remove_state('kubernetes-master.privileged') # Handle static options for now - api_opts.add('service-cluster-ip-range', service_cidr()) - api_opts.add('min-request-timeout', '300') - api_opts.add('v', '4') - api_opts.add('tls-cert-file', server_cert_path) - api_opts.add('tls-private-key-file', server_key_path) - api_opts.add('kubelet-certificate-authority', ca_cert_path) - api_opts.add('kubelet-client-certificate', client_cert_path) - api_opts.add('kubelet-client-key', client_key_path) - api_opts.add('logtostderr', 'true') - api_opts.add('insecure-bind-address', '127.0.0.1') - api_opts.add('insecure-port', '8080') - api_opts.add('storage-backend', 'etcd2') # FIXME: add etcd3 support + api_opts['service-cluster-ip-range'] = service_cidr() + api_opts['min-request-timeout'] = '300' + api_opts['v'] = '4' + api_opts['tls-cert-file'] = server_cert_path + api_opts['tls-private-key-file'] = server_key_path + api_opts['kubelet-certificate-authority'] = ca_cert_path + api_opts['kubelet-client-certificate'] = client_cert_path + api_opts['kubelet-client-key'] = client_key_path + api_opts['logtostderr'] = 'true' + api_opts['insecure-bind-address'] = '127.0.0.1' + api_opts['insecure-port'] = '8080' + api_opts['storage-backend'] = 'etcd2' # FIXME: add etcd3 support + + api_opts['basic-auth-file'] = '/root/cdk/basic_auth.csv' + api_opts['token-auth-file'] = '/root/cdk/known_tokens.csv' + api_opts['service-account-key-file'] = '/root/cdk/serviceaccount.key' + + etcd_dir = '/root/cdk/etcd' + etcd_ca = os.path.join(etcd_dir, 'client-ca.pem') + etcd_key = os.path.join(etcd_dir, 'client-key.pem') + etcd_cert = os.path.join(etcd_dir, 'client-cert.pem') + + api_opts['etcd-cafile'] = etcd_ca + api_opts['etcd-keyfile'] = etcd_key + api_opts['etcd-certfile'] = etcd_cert + api_opts['etcd-servers'] = etcd.get_connection_string() admission_control = [ 'Initializers', @@ -965,62 +1041,63 @@ def configure_apiserver(): 'DefaultTolerationSeconds' ] + auth_mode = hookenv.config('authorization-mode') + if 'Node' in auth_mode: + admission_control.append('NodeRestriction') + + api_opts['authorization-mode'] = auth_mode + if get_version('kube-apiserver') < (1, 6): hookenv.log('Removing DefaultTolerationSeconds from admission-control') admission_control.remove('DefaultTolerationSeconds') if get_version('kube-apiserver') < (1, 7): hookenv.log('Removing Initializers from admission-control') admission_control.remove('Initializers') - api_opts.add('admission-control', ','.join(admission_control), strict=True) + api_opts['admission-control'] = ','.join(admission_control) - # Add operator-provided arguments, this allows operators - # to override defaults - for arg in to_add: - hookenv.log('Adding option: {} {}'.format(arg[0], arg[1])) - # Make sure old value is gone - api_opts.destroy(arg[0]) - api_opts.add(arg[0], arg[1]) + configure_kubernetes_service('kube-apiserver', api_opts, 'api-extra-args') - cmd = ['snap', 'set', 'kube-apiserver'] + api_opts.to_s().split(' ') - check_call(cmd) set_state('kube-apiserver.do-restart') def configure_controller_manager(): - controller_opts = FlagManager('kube-controller-manager') + controller_opts = {} # Get the tls paths from the layer data. layer_options = layer.options('tls-client') ca_cert_path = layer_options.get('ca_certificate_path') # Default to 3 minute resync. TODO: Make this configureable? - controller_opts.add('min-resync-period', '3m') - controller_opts.add('v', '2') - controller_opts.add('root-ca-file', ca_cert_path) - controller_opts.add('logtostderr', 'true') - controller_opts.add('master', 'http://127.0.0.1:8080') - - cmd = ( - ['snap', 'set', 'kube-controller-manager'] + - controller_opts.to_s().split(' ') - ) - check_call(cmd) + controller_opts['min-resync-period'] = '3m' + controller_opts['v'] = '2' + controller_opts['root-ca-file'] = ca_cert_path + controller_opts['logtostderr'] = 'true' + controller_opts['master'] = 'http://127.0.0.1:8080' + + controller_opts['service-account-private-key-file'] = \ + '/root/cdk/serviceaccount.key' + + configure_kubernetes_service('kube-controller-manager', controller_opts, + 'controller-manager-extra-args') + set_state('kube-controller-manager.do-restart') def configure_scheduler(): - scheduler_opts = FlagManager('kube-scheduler') + scheduler_opts = {} - scheduler_opts.add('v', '2') - scheduler_opts.add('logtostderr', 'true') - scheduler_opts.add('master', 'http://127.0.0.1:8080') + scheduler_opts['v'] = '2' + scheduler_opts['logtostderr'] = 'true' + scheduler_opts['master'] = 'http://127.0.0.1:8080' + + configure_kubernetes_service('kube-scheduler', scheduler_opts, + 'scheduler-extra-args') - cmd = ['snap', 'set', 'kube-scheduler'] + scheduler_opts.to_s().split(' ') - check_call(cmd) set_state('kube-scheduler.do-restart') -def setup_basic_auth(password=None, username='admin', uid='admin'): +def setup_basic_auth(password=None, username='admin', uid='admin', + groups=None): '''Create the htacces file and the tokens.''' root_cdk = '/root/cdk' if not os.path.isdir(root_cdk): @@ -1029,10 +1106,14 @@ def setup_basic_auth(password=None, username='admin', uid='admin'): if not password: password = token_generator() with open(htaccess, 'w') as stream: - stream.write('{0},{1},{2}'.format(password, username, uid)) + if groups: + stream.write('{0},{1},{2},"{3}"'.format(password, + username, uid, groups)) + else: + stream.write('{0},{1},{2}'.format(password, username, uid)) -def setup_tokens(token, username, user): +def setup_tokens(token, username, user, groups=None): '''Create a token file for kubernetes authentication.''' root_cdk = '/root/cdk' if not os.path.isdir(root_cdk): @@ -1041,7 +1122,13 @@ def setup_tokens(token, username, user): if not token: token = token_generator() with open(known_tokens, 'a') as stream: - stream.write('{0},{1},{2}\n'.format(token, username, user)) + if groups: + stream.write('{0},{1},{2},"{3}"\n'.format(token, + username, + user, + groups)) + else: + stream.write('{0},{1},{2}\n'.format(token, username, user)) def get_password(csv_fname, user): @@ -1107,3 +1194,10 @@ def apiserverVersion(): cmd = 'kube-apiserver --version'.split() version_string = check_output(cmd).decode('utf-8') return tuple(int(q) for q in re.findall("[0-9]+", version_string)[:3]) + + +def touch(fname): + try: + os.utime(fname, None) + except OSError: + open(fname, 'a').close() diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/templates/rbd-persistent-volume.yaml b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/templates/rbd-persistent-volume.yaml index f82a7543b..84248e543 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/templates/rbd-persistent-volume.yaml +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-master/templates/rbd-persistent-volume.yaml @@ -4,13 +4,12 @@ apiVersion: v1 kind: PersistentVolume metadata: name: {{ RBD_NAME }} - annotations: - volume.beta.kubernetes.io/storage-class: "rbd" spec: capacity: storage: {{ RBD_SIZE }}M accessModes: - {{ PV_MODE }} + storageClassName: "rbd" rbd: monitors: {% for host in monitors %} diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/microbot b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/microbot index 030674706..41663f253 100755 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/microbot +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/microbot @@ -34,7 +34,7 @@ if not context['replicas']: context['replicas'] = 3 # Declare a kubectl template when invoking kubectl -kubectl = ['kubectl', '--kubeconfig=/root/cdk/kubeconfig'] +kubectl = ['kubectl', '--kubeconfig=/root/.kube/config'] # Remove deployment if requested if context['delete']: diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/pause b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/pause index 7f1c66e8b..82b3d3838 100755 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/pause +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/pause @@ -21,8 +21,8 @@ fi # Cordon and drain the unit -kubectl --kubeconfig=/root/cdk/kubeconfig cordon $(hostname) -kubectl --kubeconfig=/root/cdk/kubeconfig drain $(hostname) ${EXTRA_FLAGS} +kubectl --kubeconfig=/root/.kube/config cordon $(hostname) +kubectl --kubeconfig=/root/.kube/config drain $(hostname) ${EXTRA_FLAGS} # Set status to indicate the unit is paused and under maintenance. status-set 'waiting' 'Kubernetes unit paused' diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/registry b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/registry index a99a0d573..11d57ce88 100755 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/registry +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/registry @@ -57,7 +57,7 @@ if param_error: context['ingress'] = action_get('ingress') # Declare a kubectl template when invoking kubectl -kubectl = ['kubectl', '--kubeconfig=/root/cdk/kubeconfig'] +kubectl = ['kubectl', '--kubeconfig=/root/.kube/config'] # Remove deployment if requested if deletion: diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/resume b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/resume index 6131e8e03..f7ef0a17f 100755 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/resume +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/actions/resume @@ -4,5 +4,5 @@ set -ex export PATH=$PATH:/snap/bin -kubectl --kubeconfig=/root/cdk/kubeconfig uncordon $(hostname) +kubectl --kubeconfig=/root/.kube/config uncordon $(hostname) status-set 'active' 'Kubernetes unit resumed' diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/config.yaml b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/config.yaml index 9c91f7fc8..3fddf002f 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/config.yaml +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/config.yaml @@ -31,3 +31,21 @@ options: description: | When true, worker services will not be upgraded until the user triggers it manually by running the upgrade action. + kubelet-extra-args: + type: string + default: "" + description: | + Space separated list of flags and key=value pairs that will be passed as arguments to + kubelet. For example a value like this: + runtime-config=batch/v2alpha1=true profiling=true + will result in kube-apiserver being run with the following options: + --runtime-config=batch/v2alpha1=true --profiling=true + proxy-extra-args: + type: string + default: "" + description: | + Space separated list of flags and key=value pairs that will be passed as arguments to + kube-proxy. For example a value like this: + runtime-config=batch/v2alpha1=true profiling=true + will result in kube-apiserver being run with the following options: + --runtime-config=batch/v2alpha1=true --profiling=true diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/lib/charms/kubernetes/flagmanager.py b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/lib/charms/kubernetes/flagmanager.py deleted file mode 100644 index 7fe5737a6..000000000 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/lib/charms/kubernetes/flagmanager.py +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env python - -# Copyright 2015 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. - -from charmhelpers.core import unitdata - - -class FlagManager: - ''' - FlagManager - A Python class for managing the flags to pass to an - application without remembering what's been set previously. - - This is a blind class assuming the operator knows what they are doing. - Each instance of this class should be initialized with the intended - application to manage flags. Flags are then appended to a data-structure - and cached in unitdata for later recall. - - THe underlying data-provider is backed by a SQLITE database on each unit, - tracking the dictionary, provided from the 'charmhelpers' python package. - Summary: - opts = FlagManager('docker') - opts.add('bip', '192.168.22.2') - opts.to_s() - ''' - - def __init__(self, daemon, opts_path=None): - self.db = unitdata.kv() - self.daemon = daemon - if not self.db.get(daemon): - self.data = {} - else: - self.data = self.db.get(daemon) - - def __save(self): - self.db.set(self.daemon, self.data) - - def add(self, key, value, strict=False): - ''' - Adds data to the map of values for the DockerOpts file. - Supports single values, or "multiopt variables". If you - have a flag only option, like --tlsverify, set the value - to None. To preserve the exact value, pass strict - eg: - opts.add('label', 'foo') - opts.add('label', 'foo, bar, baz') - opts.add('flagonly', None) - opts.add('cluster-store', 'consul://a:4001,b:4001,c:4001/swarm', - strict=True) - ''' - if strict: - self.data['{}-strict'.format(key)] = value - self.__save() - return - - if value: - values = [x.strip() for x in value.split(',')] - # handle updates - if key in self.data and self.data[key] is not None: - item_data = self.data[key] - for c in values: - c = c.strip() - if c not in item_data: - item_data.append(c) - self.data[key] = item_data - else: - # handle new - self.data[key] = values - else: - # handle flagonly - self.data[key] = None - self.__save() - - def remove(self, key, value): - ''' - Remove a flag value from the DockerOpts manager - Assuming the data is currently {'foo': ['bar', 'baz']} - d.remove('foo', 'bar') - > {'foo': ['baz']} - :params key: - :params value: - ''' - self.data[key].remove(value) - self.__save() - - def destroy(self, key, strict=False): - ''' - Destructively remove all values and key from the FlagManager - Assuming the data is currently {'foo': ['bar', 'baz']} - d.wipe('foo') - >{} - :params key: - :params strict: - ''' - try: - if strict: - self.data.pop('{}-strict'.format(key)) - else: - self.data.pop(key) - self.__save() - except KeyError: - pass - - def get(self, key, default=None): - """Return the value for ``key``, or the default if ``key`` doesn't exist. - - """ - return self.data.get(key, default) - - def destroy_all(self): - ''' - Destructively removes all data from the FlagManager. - ''' - self.data.clear() - self.__save() - - def to_s(self): - ''' - Render the flags to a single string, prepared for the Docker - Defaults file. Typically in /etc/default/docker - d.to_s() - > "--foo=bar --foo=baz" - ''' - flags = [] - for key in self.data: - if self.data[key] is None: - # handle flagonly - flags.append("{}".format(key)) - elif '-strict' in key: - # handle strict values, and do it in 2 steps. - # If we rstrip -strict it strips a tailing s - proper_key = key.rstrip('strict').rstrip('-') - flags.append("{}={}".format(proper_key, self.data[key])) - else: - # handle multiopt and typical flags - for item in self.data[key]: - flags.append("{}={}".format(key, item)) - return ' '.join(flags) diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py index 2f5707790..d43f06768 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py @@ -32,7 +32,6 @@ from charms.reactive import when, when_any, when_not from charms.kubernetes.common import get_version -from charms.kubernetes.flagmanager import FlagManager from charms.reactive.helpers import data_changed, any_file_changed from charms.templating.jinja2 import render @@ -47,9 +46,10 @@ nrpe.Check.shortname_re = '[\.A-Za-z0-9-_]+$' kubeconfig_path = '/root/cdk/kubeconfig' +kubeproxyconfig_path = '/root/cdk/kubeproxyconfig' +kubeclientconfig_path = '/root/.kube/config' os.environ['PATH'] += os.pathsep + os.path.join(os.sep, 'snap', 'bin') - db = unitdata.kv() @@ -65,9 +65,6 @@ def upgrade_charm(): # Remove gpu.enabled state so we can reconfigure gpu-related kubelet flags, # since they can differ between k8s versions remove_state('kubernetes-worker.gpu.enabled') - kubelet_opts = FlagManager('kubelet') - kubelet_opts.destroy('feature-gates') - kubelet_opts.destroy('experimental-nvidia-gpus') remove_state('kubernetes-worker.cni-plugins.installed') remove_state('kubernetes-worker.config.created') @@ -123,10 +120,6 @@ def cleanup_pre_snap_services(): hookenv.log("Removing file: " + file) os.remove(file) - # cleanup old flagmanagers - FlagManager('kubelet').destroy_all() - FlagManager('kube-proxy').destroy_all() - @when('config.changed.channel') def channel_changed(): @@ -319,7 +312,8 @@ def watch_for_changes(kube_api, kube_control, cni): 'tls_client.client.key.saved', 'tls_client.server.certificate.saved', 'tls_client.server.key.saved', 'kube-control.dns.available', 'kube-control.auth.available', - 'cni.available', 'kubernetes-worker.restart-needed') + 'cni.available', 'kubernetes-worker.restart-needed', + 'worker.auth.bootstrapped') def start_worker(kube_api, kube_control, auth_control, cni): ''' Start kubelet using the provided API and DNS info.''' servers = get_kube_api_servers(kube_api) @@ -335,14 +329,15 @@ def start_worker(kube_api, kube_control, auth_control, cni): hookenv.log('Waiting for cluster cidr.') return - creds = kube_control.get_auth_credentials() + creds = db.get('credentials') data_changed('kube-control.creds', creds) # set --allow-privileged flag for kubelet set_privileged() create_config(random.choice(servers), creds) - configure_worker_services(servers, dns, cluster_cidr) + configure_kubelet(dns) + configure_kube_proxy(servers, cluster_cidr) set_state('kubernetes-worker.config.created') restart_unit_services() update_kubelet_status() @@ -434,6 +429,12 @@ def apply_node_labels(): _apply_node_label(label, overwrite=True) +@when_any('config.changed.kubelet-extra-args', + 'config.changed.proxy-extra-args') +def extra_args_changed(): + set_state('kubernetes-worker.restart-needed') + + def arch(): '''Return the package architecture as a string. Raise an exception if the architecture is not supported by kubernetes.''' @@ -458,51 +459,101 @@ def create_config(server, creds): cmd = ['chown', '-R', 'ubuntu:ubuntu', '/home/ubuntu/.kube'] check_call(cmd) # Create kubernetes configuration in the default location for root. - create_kubeconfig('/root/.kube/config', server, ca, + create_kubeconfig(kubeclientconfig_path, server, ca, token=creds['client_token'], user='root') # Create kubernetes configuration for kubelet, and kube-proxy services. create_kubeconfig(kubeconfig_path, server, ca, token=creds['kubelet_token'], user='kubelet') + create_kubeconfig(kubeproxyconfig_path, server, ca, + token=creds['proxy_token'], user='kube-proxy') + + +def parse_extra_args(config_key): + elements = hookenv.config().get(config_key, '').split() + args = {} + + for element in elements: + if '=' in element: + key, _, value = element.partition('=') + args[key] = value + else: + args[element] = 'true' + + return args + + +def configure_kubernetes_service(service, base_args, extra_args_key): + db = unitdata.kv() + + prev_args_key = 'kubernetes-worker.prev_args.' + service + prev_args = db.get(prev_args_key) or {} + + extra_args = parse_extra_args(extra_args_key) + + args = {} + for arg in prev_args: + # remove previous args by setting to null + args[arg] = 'null' + for k, v in base_args.items(): + args[k] = v + for k, v in extra_args.items(): + args[k] = v + + cmd = ['snap', 'set', service] + ['%s=%s' % item for item in args.items()] + check_call(cmd) + + db.set(prev_args_key, args) -def configure_worker_services(api_servers, dns, cluster_cidr): - ''' Add remaining flags for the worker services and configure snaps to use - them ''' +def configure_kubelet(dns): layer_options = layer.options('tls-client') ca_cert_path = layer_options.get('ca_certificate_path') server_cert_path = layer_options.get('server_certificate_path') server_key_path = layer_options.get('server_key_path') - kubelet_opts = FlagManager('kubelet') - kubelet_opts.add('require-kubeconfig', 'true') - kubelet_opts.add('kubeconfig', kubeconfig_path) - kubelet_opts.add('network-plugin', 'cni') - kubelet_opts.add('v', '0') - kubelet_opts.add('address', '0.0.0.0') - kubelet_opts.add('port', '10250') - kubelet_opts.add('cluster-dns', dns['sdn-ip']) - kubelet_opts.add('cluster-domain', dns['domain']) - kubelet_opts.add('anonymous-auth', 'false') - kubelet_opts.add('client-ca-file', ca_cert_path) - kubelet_opts.add('tls-cert-file', server_cert_path) - kubelet_opts.add('tls-private-key-file', server_key_path) - kubelet_opts.add('logtostderr', 'true') - kubelet_opts.add('fail-swap-on', 'false') - - kube_proxy_opts = FlagManager('kube-proxy') - kube_proxy_opts.add('cluster-cidr', cluster_cidr) - kube_proxy_opts.add('kubeconfig', kubeconfig_path) - kube_proxy_opts.add('logtostderr', 'true') - kube_proxy_opts.add('v', '0') - kube_proxy_opts.add('master', random.choice(api_servers), strict=True) + kubelet_opts = {} + kubelet_opts['require-kubeconfig'] = 'true' + kubelet_opts['kubeconfig'] = kubeconfig_path + kubelet_opts['network-plugin'] = 'cni' + kubelet_opts['v'] = '0' + kubelet_opts['address'] = '0.0.0.0' + kubelet_opts['port'] = '10250' + kubelet_opts['cluster-dns'] = dns['sdn-ip'] + kubelet_opts['cluster-domain'] = dns['domain'] + kubelet_opts['anonymous-auth'] = 'false' + kubelet_opts['client-ca-file'] = ca_cert_path + kubelet_opts['tls-cert-file'] = server_cert_path + kubelet_opts['tls-private-key-file'] = server_key_path + kubelet_opts['logtostderr'] = 'true' + kubelet_opts['fail-swap-on'] = 'false' + + privileged = is_state('kubernetes-worker.privileged') + kubelet_opts['allow-privileged'] = 'true' if privileged else 'false' + + if is_state('kubernetes-worker.gpu.enabled'): + if get_version('kubelet') < (1, 6): + hookenv.log('Adding --experimental-nvidia-gpus=1 to kubelet') + kubelet_opts['experimental-nvidia-gpus'] = '1' + else: + hookenv.log('Adding --feature-gates=Accelerators=true to kubelet') + kubelet_opts['feature-gates'] = 'Accelerators=true' + + configure_kubernetes_service('kubelet', kubelet_opts, 'kubelet-extra-args') + + +def configure_kube_proxy(api_servers, cluster_cidr): + kube_proxy_opts = {} + kube_proxy_opts['cluster-cidr'] = cluster_cidr + kube_proxy_opts['kubeconfig'] = kubeproxyconfig_path + kube_proxy_opts['logtostderr'] = 'true' + kube_proxy_opts['v'] = '0' + kube_proxy_opts['master'] = random.choice(api_servers) if b'lxc' in check_output('virt-what', shell=True): - kube_proxy_opts.add('conntrack-max-per-core', '0') + kube_proxy_opts['conntrack-max-per-core'] = '0' - cmd = ['snap', 'set', 'kubelet'] + kubelet_opts.to_s().split(' ') - check_call(cmd) - cmd = ['snap', 'set', 'kube-proxy'] + kube_proxy_opts.to_s().split(' ') - check_call(cmd) + configure_kubernetes_service('kube-proxy', kube_proxy_opts, + 'proxy-extra-args') def create_kubeconfig(kubeconfig, server, ca, key=None, certificate=None, @@ -613,7 +664,7 @@ def get_kube_api_servers(kube_api): def kubectl(*args): ''' Run a kubectl cli command with a config file. Returns stdout and throws an error if the command fails. ''' - command = ['kubectl', '--kubeconfig=' + kubeconfig_path] + list(args) + command = ['kubectl', '--kubeconfig=' + kubeclientconfig_path] + list(args) hookenv.log('Executing {}'.format(command)) return check_output(command) @@ -696,12 +747,6 @@ def set_privileged(): gpu_enabled = is_state('kubernetes-worker.gpu.enabled') privileged = 'true' if gpu_enabled else 'false' - flag = 'allow-privileged' - hookenv.log('Setting {}={}'.format(flag, privileged)) - - kubelet_opts = FlagManager('kubelet') - kubelet_opts.add(flag, privileged) - if privileged == 'true': set_state('kubernetes-worker.privileged') else: @@ -744,14 +789,6 @@ def enable_gpu(): hookenv.log(cpe) return - kubelet_opts = FlagManager('kubelet') - if get_version('kubelet') < (1, 6): - hookenv.log('Adding --experimental-nvidia-gpus=1 to kubelet') - kubelet_opts.add('experimental-nvidia-gpus', '1') - else: - hookenv.log('Adding --feature-gates=Accelerators=true to kubelet') - kubelet_opts.add('feature-gates', 'Accelerators=true') - # Apply node labels _apply_node_label('gpu=true', overwrite=True) _apply_node_label('cuda=true', overwrite=True) @@ -773,12 +810,6 @@ def disable_gpu(): """ hookenv.log('Disabling gpu mode') - kubelet_opts = FlagManager('kubelet') - if get_version('kubelet') < (1, 6): - kubelet_opts.destroy('experimental-nvidia-gpus') - else: - kubelet_opts.remove('feature-gates', 'Accelerators=true') - # Remove node labels _apply_node_label('gpu', delete=True) _apply_node_label('cuda', delete=True) @@ -817,11 +848,19 @@ def request_kubelet_and_proxy_credentials(kube_control): kube_control.set_auth_request(nodeuser) -@when('kube-control.auth.available') +@when('kube-control.connected') def catch_change_in_creds(kube_control): """Request a service restart in case credential updates were detected.""" - creds = kube_control.get_auth_credentials() - if data_changed('kube-control.creds', creds): + nodeuser = 'system:node:{}'.format(gethostname()) + creds = kube_control.get_auth_credentials(nodeuser) + if creds \ + and data_changed('kube-control.creds', creds) \ + and creds['user'] == nodeuser: + # We need to cache the credentials here because if the + # master changes (master leader dies and replaced by a new one) + # the new master will have no recollection of our certs. + db.set('credentials', creds) + set_state('worker.auth.bootstrapped') set_state('kubernetes-worker.restart-needed') @@ -840,6 +879,16 @@ def missing_kube_control(): hookenv.service_name())) +@when('docker.ready') +def fix_iptables_for_docker_1_13(): + """ Fix iptables FORWARD policy for Docker >=1.13 + https://github.com/kubernetes/kubernetes/issues/40182 + https://github.com/kubernetes/kubernetes/issues/39823 + """ + cmd = ['iptables', '-w', '300', '-P', 'FORWARD', 'ACCEPT'] + check_call(cmd) + + def _systemctl_is_active(application): ''' Poll systemctl to determine if the application is running ''' cmd = ['systemctl', 'is-active', application] diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/templates/default-http-backend.yaml b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/templates/default-http-backend.yaml index 02500dc67..6c826ac32 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/templates/default-http-backend.yaml +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/templates/default-http-backend.yaml @@ -32,12 +32,13 @@ apiVersion: v1 kind: Service metadata: name: default-http-backend +# namespace: kube-system labels: - app: default-http-backend + k8s-app: default-http-backend spec: ports: - - port: 80 - protocol: TCP - targetPort: 80 + - port: 80 + protocol: TCP + targetPort: 80 selector: app: default-http-backend diff --git a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/templates/ingress-replication-controller.yaml b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/templates/ingress-replication-controller.yaml index aa7173ce0..933b1e2c0 100644 --- a/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/templates/ingress-replication-controller.yaml +++ b/vendor/k8s.io/kubernetes/cluster/juju/layers/kubernetes-worker/templates/ingress-replication-controller.yaml @@ -1,4 +1,128 @@ apiVersion: v1 +kind: ServiceAccount +metadata: + name: nginx-ingress-serviceaccount +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + name: nginx-ingress-clusterrole +rules: + - apiGroups: + - "" + resources: + - configmaps + - endpoints + - nodes + - pods + - secrets + verbs: + - list + - watch + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - apiGroups: + - "" + resources: + - services + verbs: + - get + - list + - watch + - apiGroups: + - "extensions" + resources: + - ingresses + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - "extensions" + resources: + - ingresses/status + verbs: + - update +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: Role +metadata: + name: nginx-ingress-role +rules: + - apiGroups: + - "" + resources: + - configmaps + - pods + - secrets + - namespaces + verbs: + - get + - apiGroups: + - "" + resources: + - configmaps + resourceNames: + # Defaults to "-" + # Here: "-" + # This has to be adapted if you change either parameter + # when launching the nginx-ingress-controller. + - "ingress-controller-leader-nginx" + verbs: + - get + - update + - apiGroups: + - "" + resources: + - configmaps + verbs: + - create + - apiGroups: + - "" + resources: + - endpoints + verbs: + - get + - create + - update +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: RoleBinding +metadata: + name: nginx-ingress-role-nisa-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: nginx-ingress-role +subjects: + - kind: ServiceAccount + name: nginx-ingress-serviceaccount +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + name: nginx-ingress-clusterrole-nisa-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: nginx-ingress-clusterrole +subjects: + - kind: ServiceAccount + name: nginx-ingress-serviceaccount + namespace: default +--- +apiVersion: v1 kind: ConfigMap metadata: name: nginx-load-balancer-conf @@ -23,6 +147,7 @@ spec: # hostPort doesn't work with CNI, so we have to use hostNetwork instead # see https://github.com/kubernetes/kubernetes/issues/23920 hostNetwork: true + serviceAccountName: nginx-ingress-serviceaccount containers: - image: {{ ingress_image }} name: nginx-ingress-lb diff --git a/vendor/k8s.io/kubernetes/cluster/kube-util.sh b/vendor/k8s.io/kubernetes/cluster/kube-util.sh index ae9c686b2..b35fddf4f 100755 --- a/vendor/k8s.io/kubernetes/cluster/kube-util.sh +++ b/vendor/k8s.io/kubernetes/cluster/kube-util.sh @@ -22,10 +22,12 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. source "${KUBE_ROOT}/cluster/skeleton/util.sh" -if [[ -n "${KUBERNETES_CONFORMANCE_TEST:-}" ]]; then - KUBERNETES_PROVIDER="" -else - KUBERNETES_PROVIDER="${KUBERNETES_PROVIDER:-gce}" +if [[ "${KUBERNETES_PROVIDER:-}" != "kubernetes-anywhere" ]]; then + if [[ -n "${KUBERNETES_CONFORMANCE_TEST:-}" ]]; then + KUBERNETES_PROVIDER="" + else + KUBERNETES_PROVIDER="${KUBERNETES_PROVIDER:-gce}" + fi fi # PROVIDER_VARS is a list of cloud provider specific variables. Note: @@ -38,59 +40,3 @@ PROVIDER_UTILS="${KUBE_ROOT}/cluster/${KUBERNETES_PROVIDER}/util.sh" if [ -f ${PROVIDER_UTILS} ]; then source "${PROVIDER_UTILS}" fi - -# Federation utils - -# Sets the kubeconfig context value for the current cluster. -# Args: -# $1: zone (required) -# -# Vars set: -# CLUSTER_CONTEXT -function kubeconfig-federation-context() { - if [[ -z "${1:-}" ]]; then - echo "zone parameter is required" - exit 1 - fi - CLUSTER_CONTEXT="federation-e2e-${KUBERNETES_PROVIDER}-${1}" -} - -# Should NOT be called within the global scope, unless setting the desired global zone vars -# This function is currently NOT USED in the global scope -function set-federation-zone-vars { - zone="$1" - kubeconfig-federation-context "${zone}" - export OVERRIDE_CONTEXT="${CLUSTER_CONTEXT}" - echo "Setting zone vars to: $OVERRIDE_CONTEXT" - if [[ "$KUBERNETES_PROVIDER" == "gce" ]];then - # This needs a revamp, but for now e2e zone name is used as the unique - # cluster identifier in our e2e tests and we will continue to use that - # pattern. - export CLUSTER_NAME="${zone}" - - export KUBE_GCE_ZONE="${zone}" - # gcloud has a 61 character limit, and for firewall rules this - # prefix gets appended to itself, with some extra information - # need tot keep it short - export KUBE_GCE_INSTANCE_PREFIX="${USER}-${zone}" - - elif [[ "$KUBERNETES_PROVIDER" == "gke" ]];then - - export CLUSTER_NAME="${USER}-${zone}" - - elif [[ "$KUBERNETES_PROVIDER" == "aws" ]];then - - export KUBE_AWS_ZONE="$zone" - export KUBE_AWS_INSTANCE_PREFIX="${USER}-${zone}" - - # WARNING: This is hack - # After KUBE_AWS_INSTANCE_PREFIX is changed, - # we need to make sure the config-xxx.sh file is - # re-sourced so the change propogates to dependent computed values - # (eg: MASTER_SG_NAME, NODE_SG_NAME, etc) - source "${KUBE_ROOT}/cluster/aws/util.sh" - else - echo "Provider \"${KUBERNETES_PROVIDER}\" is not supported" - exit 1 - fi -} diff --git a/vendor/k8s.io/kubernetes/hack/jenkins/build-federation.sh b/vendor/k8s.io/kubernetes/cluster/kubernetes-anywhere/util.sh similarity index 76% rename from vendor/k8s.io/kubernetes/hack/jenkins/build-federation.sh rename to vendor/k8s.io/kubernetes/cluster/kubernetes-anywhere/util.sh index 54a54ed60..8d80b103d 100755 --- a/vendor/k8s.io/kubernetes/hack/jenkins/build-federation.sh +++ b/vendor/k8s.io/kubernetes/cluster/kubernetes-anywhere/util.sh @@ -1,5 +1,4 @@ #!/bin/bash - # Copyright 2017 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -14,12 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -o errexit -set -o nounset -set -o pipefail -set -o xtrace +set -x -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. +NODE_INSTANCE_PREFIX=${NODE_INSTANCE_PREFIX:-"${INSTANCE_PREFIX}-node"} -make -C "${KUBE_ROOT}/federation/" build -make -C "${KUBE_ROOT}/federation/" push +source "${KUBE_ROOT}/cluster/gce/util.sh" diff --git a/vendor/k8s.io/kubernetes/cluster/libvirt-coreos/README.md b/vendor/k8s.io/kubernetes/cluster/libvirt-coreos/README.md index 7f705bbac..b1b0a3e49 100644 --- a/vendor/k8s.io/kubernetes/cluster/libvirt-coreos/README.md +++ b/vendor/k8s.io/kubernetes/cluster/libvirt-coreos/README.md @@ -1,7 +1,7 @@ # Kubernetes CoreOS cluster With this tutorial one creates a Kubernetes CoreOS cluster containing of one -master and three minions (workers) running on `192.168.10.1`-`192.168.10.4`. +master and three nodes (workers) running on `192.168.10.1`-`192.168.10.4`. For working correctly you need to create the directory addressed as `POOL_PATH` in `util.sh`: diff --git a/vendor/k8s.io/kubernetes/cluster/log-dump/log-dump.sh b/vendor/k8s.io/kubernetes/cluster/log-dump/log-dump.sh index bb13ef383..13c12e1a9 100755 --- a/vendor/k8s.io/kubernetes/cluster/log-dump/log-dump.sh +++ b/vendor/k8s.io/kubernetes/cluster/log-dump/log-dump.sh @@ -37,9 +37,9 @@ else readonly use_custom_instance_list= fi -readonly master_ssh_supported_providers="gce aws" -readonly node_ssh_supported_providers="gce gke aws" -readonly gcloud_supported_providers="gce gke" +readonly master_ssh_supported_providers="gce aws kubernetes-anywhere" +readonly node_ssh_supported_providers="gce gke aws kubernetes-anywhere" +readonly gcloud_supported_providers="gce gke kubernetes-anywhere" readonly master_logfiles="kube-apiserver kube-apiserver-audit kube-scheduler rescheduler kube-controller-manager etcd etcd-events glbc cluster-autoscaler kube-addon-manager fluentd" readonly node_logfiles="kube-proxy fluentd node-problem-detector" @@ -50,7 +50,7 @@ readonly gce_logfiles="startupscript" readonly kern_logfile="kern" readonly initd_logfiles="docker" readonly supervisord_logfiles="kubelet supervisor/supervisord supervisor/kubelet-stdout supervisor/kubelet-stderr supervisor/docker-stdout supervisor/docker-stderr" -readonly systemd_services="kubelet docker" +readonly systemd_services="kubelet ${SYSTEMD_SERVICES:-docker}" # Limit the number of concurrent node connections so that we don't run out of # file descriptors for large clusters. @@ -141,7 +141,7 @@ function save-logs() { fi else case "${KUBERNETES_PROVIDER}" in - gce|gke) + gce|gke|kubernetes-anywhere) files="${files} ${gce_logfiles}" ;; aws) diff --git a/vendor/k8s.io/kubernetes/cluster/log-dump/logexporter-daemonset.yaml b/vendor/k8s.io/kubernetes/cluster/log-dump/logexporter-daemonset.yaml index e1ac56803..8099da1b9 100644 --- a/vendor/k8s.io/kubernetes/cluster/log-dump/logexporter-daemonset.yaml +++ b/vendor/k8s.io/kubernetes/cluster/log-dump/logexporter-daemonset.yaml @@ -20,12 +20,15 @@ type: Opaque data: service-account.json: {{.ServiceAccountCredentials}} --- -apiVersion: extensions/v1beta1 +apiVersion: apps/v1beta2 kind: DaemonSet metadata: name: logexporter namespace: {{.LogexporterNamespace}} spec: + selector: + matchLabels: + app: logexporter template: metadata: labels: diff --git a/vendor/k8s.io/kubernetes/cluster/photon-controller/util.sh b/vendor/k8s.io/kubernetes/cluster/photon-controller/util.sh index f31990bac..55ec52ff9 100755 --- a/vendor/k8s.io/kubernetes/cluster/photon-controller/util.sh +++ b/vendor/k8s.io/kubernetes/cluster/photon-controller/util.sh @@ -636,7 +636,7 @@ function install-kubernetes-on-master { } # -# Install Kubernetes on the the nodes in parallel +# Install Kubernetes on the nodes in parallel # This uses the kubernetes-master-salt.sh script created by gen-node-salt # That script uses salt to install Kubernetes # diff --git a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/cluster-autoscaler/cluster-autoscaler.manifest b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/cluster-autoscaler/cluster-autoscaler.manifest index 618f65041..844243d42 100644 --- a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/cluster-autoscaler/cluster-autoscaler.manifest +++ b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/cluster-autoscaler/cluster-autoscaler.manifest @@ -25,7 +25,7 @@ "containers": [ { "name": "cluster-autoscaler", - "image": "gcr.io/google_containers/cluster-autoscaler:v1.0.0", + "image": "gcr.io/google_containers/cluster-autoscaler:v1.1.0-alpha1", "livenessProbe": { "httpGet": { "path": "/health-check", diff --git a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/e2e-image-puller/e2e-image-puller.manifest b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/e2e-image-puller/e2e-image-puller.manifest index 9422f1977..d7d5a4306 100644 --- a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/e2e-image-puller/e2e-image-puller.manifest +++ b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/e2e-image-puller/e2e-image-puller.manifest @@ -27,7 +27,56 @@ spec: command: - /bin/sh - -c - - "for i in gcr.io/google_containers/alpine-with-bash:1.0 gcr.io/google_containers/apparmor-loader:0.1 gcr.io/google_containers/busybox:1.24 gcr.io/google_containers/dnsutils:e2e gcr.io/google_containers/e2e-net-amd64:1.0 gcr.io/google_containers/echoserver:1.6 gcr.io/google_containers/eptest:0.1 gcr.io/google_containers/fakegitserver:0.1 gcr.io/google_containers/galera-install:0.1 gcr.io/google_containers/hostexec:1.2 gcr.io/google_containers/invalid-image:invalid-tag gcr.io/google_containers/iperf:e2e gcr.io/google_containers/jessie-dnsutils:e2e gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.14.5 gcr.io/google_containers/liveness:e2e gcr.io/google_containers/logs-generator:v0.1.0 gcr.io/google_containers/mounttest:0.8 gcr.io/google_containers/mounttest-user:0.5 gcr.io/google_containers/mysql-galera:e2e gcr.io/google_containers/mysql-healthz:1.0 gcr.io/google_containers/netexec:1.4 gcr.io/google_containers/netexec:1.5 gcr.io/google_containers/netexec:1.7 gcr.io/google_containers/nettest:1.7 gcr.io/google_containers/nginx:1.7.9 gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.1 gcr.io/google_containers/nginx-slim:0.7 gcr.io/google_containers/nginx-slim:0.8 gcr.io/google_containers/node-problem-detector:v0.3.0 gcr.io/google_containers/pause gcr.io/google_containers/porter:4524579c0eb935c056c8e75563b4e1eda31587e0 gcr.io/google_containers/portforwardtester:1.2 gcr.io/google_containers/redis-install-3.2.0:e2e gcr.io/google_containers/resource_consumer:beta4 gcr.io/google_containers/resource_consumer/controller:beta4 gcr.io/google_containers/serve_hostname:v1.4 gcr.io/google_containers/servicelb:0.1 gcr.io/google_containers/test-webserver:e2e gcr.io/google_containers/update-demo:kitten gcr.io/google_containers/update-demo:nautilus gcr.io/google_containers/volume-ceph:0.1 gcr.io/google_containers/volume-gluster:0.2 gcr.io/google_containers/volume-iscsi:0.1 gcr.io/google_containers/volume-nfs:0.8 gcr.io/google_containers/volume-rbd:0.1 gcr.io/google_containers/zookeeper-install-3.5.0-alpha:e2e gcr.io/google_samples/gb-redisslave:nonexistent; do echo $(date '+%X') pulling $i; docker pull $i 1>/dev/null; done; exit 0;" + - > + for i in + gcr.io/google_containers/alpine-with-bash:1.0 + gcr.io/google_containers/apparmor-loader:0.1 + gcr.io/google_containers/busybox:1.24 + gcr.io/google_containers/dnsutils:e2e + gcr.io/google_containers/e2e-net-amd64:1.0 + gcr.io/google_containers/echoserver:1.6 + gcr.io/google_containers/eptest:0.1 + gcr.io/google_containers/fakegitserver:0.1 + gcr.io/google_containers/galera-install:0.1 + gcr.io/google_containers/hostexec:1.2 + gcr.io/google_containers/invalid-image:invalid-tag + gcr.io/google_containers/iperf:e2e + gcr.io/google_containers/jessie-dnsutils:e2e + gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.14.5 + gcr.io/google_containers/liveness:e2e + gcr.io/google_containers/logs-generator:v0.1.0 + gcr.io/google_containers/mounttest:0.8 + gcr.io/google_containers/mounttest-user:0.5 + gcr.io/google_containers/mysql-galera:e2e + gcr.io/google_containers/mysql-healthz:1.0 + gcr.io/google_containers/netexec:1.4 + gcr.io/google_containers/netexec:1.5 + gcr.io/google_containers/netexec:1.7 + gcr.io/google_containers/nettest:1.7 + gcr.io/google_containers/nginx:1.7.9 + gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.1 + gcr.io/google_containers/nginx-slim:0.7 + gcr.io/google_containers/nginx-slim:0.8 + gcr.io/google_containers/node-problem-detector:v0.3.0 + gcr.io/google_containers/pause + gcr.io/google_containers/porter:4524579c0eb935c056c8e75563b4e1eda31587e0 + gcr.io/google_containers/portforwardtester:1.2 + gcr.io/google_containers/redis-install-3.2.0:e2e + gcr.io/google_containers/resource_consumer:beta4 + gcr.io/google_containers/resource_consumer/controller:beta4 + gcr.io/kubernetes-e2e-test-images/serve-hostname-amd64:1.1 + gcr.io/google_containers/servicelb:0.1 + gcr.io/google_containers/test-webserver:e2e + gcr.io/google_containers/update-demo:kitten + gcr.io/google_containers/update-demo:nautilus + gcr.io/google_containers/volume-ceph:0.1 + gcr.io/google_containers/volume-gluster:0.2 + gcr.io/google_containers/volume-iscsi:0.1 + gcr.io/google_containers/volume-nfs:0.8 + gcr.io/google_containers/volume-rbd:0.1 + gcr.io/google_containers/zookeeper-install-3.5.0-alpha:e2e + gcr.io/google_samples/gb-redisslave:nonexistent + ; do echo $(date '+%X') pulling $i; docker pull $i 1>/dev/null; done; exit 0; securityContext: privileged: true volumeMounts: diff --git a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kube-addons/init.sls b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kube-addons/init.sls index d3b86dc4c..3171cb6ca 100644 --- a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kube-addons/init.sls +++ b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kube-addons/init.sls @@ -165,6 +165,17 @@ addon-dir-create: - file_mode: 644 {% endif %} +{% if pillar.get('enable_pod_security_policy', '').lower() == 'true' %} +/etc/kubernetes/addons/podsecuritypolicies: + file.recurse: + - source: salt://kube-addons/podsecuritypolicies + - include_pat: E@^.+\.yaml$ + - user: root + - group: root + - dir_mode: 755 + - file_mode: 644 +{% endif %} + {% if pillar.get('enable_cluster_ui', '').lower() == 'true' %} /etc/kubernetes/addons/dashboard: file.recurse: diff --git a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kube-proxy/kube-proxy.manifest b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kube-proxy/kube-proxy.manifest index 8550ae5fd..4c9882a6f 100644 --- a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kube-proxy/kube-proxy.manifest +++ b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kube-proxy/kube-proxy.manifest @@ -96,6 +96,9 @@ spec: - mountPath: /run/xtables.lock name: iptableslock readOnly: false + - mountPath: /lib/modules + name: lib-modules + readOnly: true volumes: - hostPath: path: /usr/share/ca-certificates @@ -114,3 +117,6 @@ spec: path: /run/xtables.lock type: FileOrCreate name: iptableslock + - name: lib-modules + hostPath: + path: /lib/modules diff --git a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kubelet/default b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kubelet/default index 846935c3d..27511061e 100644 --- a/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kubelet/default +++ b/vendor/k8s.io/kubernetes/cluster/saltbase/salt/kubelet/default @@ -133,7 +133,7 @@ {% elif pillar.get('network_policy_provider', '').lower() == 'calico' and grains['roles'][0] != 'kubernetes-master' %} {% set network_plugin = "--network-plugin=cni --cni-conf-dir=/etc/cni/net.d/ --cni-bin-dir=/home/kubernetes/bin/" %} {% elif pillar.get('network_provider', '').lower() == 'kubenet' %} - {% set network_plugin = "--network-plugin=kubenet --network-plugin-dir=/home/kubernetes/bin/" -%} + {% set network_plugin = "--network-plugin=kubenet --cni-bin-dir=/home/kubernetes/bin/" -%} {% endif -%} # Don't pipe the --hairpin-mode flag by default. This allows the kubelet to pick @@ -171,6 +171,9 @@ {% set kube_proxy_ds_label = "beta.kubernetes.io/kube-proxy-ds-ready=true," %} {% endif %} {% set node_labels = kube_proxy_ds_label + pillar['node_labels'] %} +{% if grains['roles'][0] != 'kubernetes-master' and pillar['non_master_node_labels'] is defined -%} + {% set node_labels = pillar['non_master_node_labels'] + "," + node_labels %} +{% endif %} {% if node_labels != "" %} {% set node_labels="--node-labels=" + node_labels %} {% endif %} diff --git a/vendor/k8s.io/kubernetes/cluster/update-storage-objects.sh b/vendor/k8s.io/kubernetes/cluster/update-storage-objects.sh index fc01bad82..364c1d7e3 100755 --- a/vendor/k8s.io/kubernetes/cluster/update-storage-objects.sh +++ b/vendor/k8s.io/kubernetes/cluster/update-storage-objects.sh @@ -53,6 +53,7 @@ declare -a resources=( "rolebindings.rbac.authorization.k8s.io" "clusterroles.rbac.authorization.k8s.io" "clusterrolebindings.rbac.authorization.k8s.io" + "networkpolicies.networking.k8s.io" ) # Find all the namespaces. diff --git a/vendor/k8s.io/kubernetes/cluster/vagrant/util.sh b/vendor/k8s.io/kubernetes/cluster/vagrant/util.sh index 4137de1ee..3d022576d 100755 --- a/vendor/k8s.io/kubernetes/cluster/vagrant/util.sh +++ b/vendor/k8s.io/kubernetes/cluster/vagrant/util.sh @@ -296,8 +296,6 @@ function kube-up { # Update the user's kubeconfig to include credentials for this apiserver. create-kubeconfig - - create-kubeconfig-for-federation ) verify-cluster diff --git a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/BUILD b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/BUILD index d637599ba..0a30843ab 100644 --- a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/BUILD @@ -28,11 +28,9 @@ go_library( "//cmd/cloud-controller-manager/app:go_default_library", "//cmd/cloud-controller-manager/app/options:go_default_library", "//pkg/client/metrics/prometheus:go_default_library", - "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers:go_default_library", "//pkg/version/prometheus:go_default_library", "//pkg/version/verflag:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/logs:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/BUILD b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/BUILD index ecb4d3615..f378d9458 100644 --- a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/BUILD @@ -11,7 +11,7 @@ go_library( importpath = "k8s.io/kubernetes/cmd/cloud-controller-manager/app", deps = [ "//cmd/cloud-controller-manager/app/options:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", "//pkg/controller/cloud:go_default_library", @@ -23,7 +23,6 @@ go_library( "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag: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/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/controllermanager.go b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/controllermanager.go index eb0c84c2b..c93da56da 100644 --- a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/controllermanager.go +++ b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/controllermanager.go @@ -28,7 +28,6 @@ import ( "time" "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/server/healthz" "k8s.io/client-go/informers" @@ -41,7 +40,7 @@ import ( "k8s.io/client-go/tools/leaderelection/resourcelock" "k8s.io/client-go/tools/record" "k8s.io/kubernetes/cmd/cloud-controller-manager/app/options" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller" cloudcontrollers "k8s.io/kubernetes/pkg/controller/cloud" @@ -84,7 +83,24 @@ func resyncPeriod(s *options.CloudControllerManagerServer) func() time.Duration } // Run runs the ExternalCMServer. This should never exit. -func Run(s *options.CloudControllerManagerServer, cloud cloudprovider.Interface) error { +func Run(s *options.CloudControllerManagerServer) error { + if s.CloudProvider == "" { + glog.Fatalf("--cloud-provider cannot be empty") + } + + cloud, err := cloudprovider.InitCloudProvider(s.CloudProvider, s.CloudConfigFile) + if err != nil { + glog.Fatalf("Cloud provider could not be initialized: %v", err) + } + + if cloud.HasClusterID() == false { + if s.AllowUntaggedCloud == true { + glog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues") + } else { + glog.Fatalf("no ClusterID found. A ClusterID is required for the cloud provider to function properly. This check can be bypassed by setting the allow-untagged-cloud option") + } + } + if c, err := configz.New("componentconfig"); err == nil { c.Set(s.KubeControllerManagerConfiguration) } else { @@ -144,21 +160,21 @@ func Run(s *options.CloudControllerManagerServer, cloud cloudprovider.Interface) } // Lock required for leader election - rl := resourcelock.EndpointsLock{ - EndpointsMeta: metav1.ObjectMeta{ - Namespace: "kube-system", - Name: "cloud-controller-manager", - }, - Client: leaderElectionClient.CoreV1(), - LockConfig: resourcelock.ResourceLockConfig{ + rl, err := resourcelock.New(s.LeaderElection.ResourceLock, + "kube-system", + "cloud-controller-manager", + leaderElectionClient.CoreV1(), + resourcelock.ResourceLockConfig{ Identity: id + "-external-cloud-controller", EventRecorder: recorder, - }, + }) + if err != nil { + glog.Fatalf("error creating lock: %v", err) } // Try and become the leader and start cloud controller manager loops leaderelection.RunOrDie(leaderelection.LeaderElectionConfig{ - Lock: &rl, + Lock: rl, LeaseDuration: s.LeaderElection.LeaseDuration.Duration, RenewDeadline: s.LeaderElection.RenewDeadline.Duration, RetryPeriod: s.LeaderElection.RetryPeriod.Duration, @@ -283,5 +299,5 @@ func createRecorder(kubeClient *clientset.Clientset) record.EventRecorder { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) - return eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: "cloud-controller-manager"}) + return eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: "cloud-controller-manager"}) } diff --git a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/options/options.go b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/options/options.go index 8d2e4859b..27c140af2 100644 --- a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/options/options.go +++ b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/app/options/options.go @@ -97,7 +97,7 @@ func (s *CloudControllerManagerServer) AddFlags(fs *pflag.FlagSet) { fs.Float32Var(&s.KubeAPIQPS, "kube-api-qps", s.KubeAPIQPS, "QPS to use while talking with kubernetes apiserver.") fs.Int32Var(&s.KubeAPIBurst, "kube-api-burst", s.KubeAPIBurst, "Burst to use while talking with kubernetes apiserver.") fs.DurationVar(&s.ControllerStartInterval.Duration, "controller-start-interval", s.ControllerStartInterval.Duration, "Interval between starting controller managers.") - + fs.Int32Var(&s.ConcurrentServiceSyncs, "concurrent-service-syncs", s.ConcurrentServiceSyncs, "The number of services that are allowed to sync concurrently. Larger number = more responsive service management, but more CPU (and network) load") leaderelectionconfig.BindFlags(&s.LeaderElection, fs) utilfeature.DefaultFeatureGate.AddFlag(fs) diff --git a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/controller-manager.go b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/controller-manager.go index 60bac4ac7..1d8b498fb 100644 --- a/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/controller-manager.go +++ b/vendor/k8s.io/kubernetes/cmd/cloud-controller-manager/controller-manager.go @@ -28,14 +28,12 @@ import ( "k8s.io/kubernetes/cmd/cloud-controller-manager/app" "k8s.io/kubernetes/cmd/cloud-controller-manager/app/options" _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration - "k8s.io/kubernetes/pkg/cloudprovider" // NOTE: Importing all in-tree cloud-providers is not required when // implementing an out-of-tree cloud-provider. _ "k8s.io/kubernetes/pkg/cloudprovider/providers" _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration "k8s.io/kubernetes/pkg/version/verflag" - "github.com/golang/glog" "github.com/spf13/pflag" ) @@ -49,24 +47,7 @@ func main() { verflag.PrintAndExitIfRequested() - if s.CloudProvider == "" { - glog.Errorf("--cloud-provider cannot be empty") - } - - cloud, err := cloudprovider.InitCloudProvider(s.CloudProvider, s.CloudConfigFile) - if err != nil { - glog.Fatalf("Cloud provider could not be initialized: %v", err) - } - - if cloud.HasClusterID() == false { - if s.AllowUntaggedCloud == true { - glog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues") - } else { - glog.Fatalf("no ClusterID found. A ClusterID is required for the cloud provider to function properly. This check can be bypassed by setting the allow-untagged-cloud option") - } - } - - if err := app.Run(s, cloud); err != nil { + if err := app.Run(s); err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) os.Exit(1) } diff --git a/vendor/k8s.io/kubernetes/cmd/genkubedocs/BUILD b/vendor/k8s.io/kubernetes/cmd/genkubedocs/BUILD index c3c418c7b..1f7eb6025 100644 --- a/vendor/k8s.io/kubernetes/cmd/genkubedocs/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/genkubedocs/BUILD @@ -22,6 +22,7 @@ go_library( "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-controller-manager/app:go_default_library", "//cmd/kube-proxy/app:go_default_library", + "//cmd/kubeadm/app/cmd:go_default_library", "//cmd/kubelet/app:go_default_library", "//plugin/cmd/kube-scheduler/app:go_default_library", "//vendor/github.com/spf13/cobra/doc:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/genkubedocs/gen_kube_docs.go b/vendor/k8s.io/kubernetes/cmd/genkubedocs/gen_kube_docs.go index faebb60e8..47bdf7454 100644 --- a/vendor/k8s.io/kubernetes/cmd/genkubedocs/gen_kube_docs.go +++ b/vendor/k8s.io/kubernetes/cmd/genkubedocs/gen_kube_docs.go @@ -26,6 +26,7 @@ import ( apiservapp "k8s.io/kubernetes/cmd/kube-apiserver/app" cmapp "k8s.io/kubernetes/cmd/kube-controller-manager/app" proxyapp "k8s.io/kubernetes/cmd/kube-proxy/app" + kubeadmapp "k8s.io/kubernetes/cmd/kubeadm/app/cmd" kubeletapp "k8s.io/kubernetes/cmd/kubelet/app" schapp "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app" ) @@ -73,6 +74,10 @@ func main() { // generate docs for kubelet kubelet := kubeletapp.NewKubeletCommand() doc.GenMarkdownTree(kubelet, outDir) + case "kubeadm": + // generate docs for kubeadm + kubeadm := kubeadmapp.NewKubeadmCommand(os.Stdin, os.Stdout, os.Stderr) + doc.GenMarkdownTree(kubeadm, outDir) default: fmt.Fprintf(os.Stderr, "Module %s is not supported", module) os.Exit(1) diff --git a/vendor/k8s.io/kubernetes/cmd/genman/BUILD b/vendor/k8s.io/kubernetes/cmd/genman/BUILD index 68e737201..71dcfe750 100644 --- a/vendor/k8s.io/kubernetes/cmd/genman/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/genman/BUILD @@ -22,6 +22,7 @@ go_library( "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-controller-manager/app:go_default_library", "//cmd/kube-proxy/app:go_default_library", + "//cmd/kubeadm/app/cmd:go_default_library", "//cmd/kubelet/app:go_default_library", "//pkg/kubectl/cmd:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/genman/gen_kube_man.go b/vendor/k8s.io/kubernetes/cmd/genman/gen_kube_man.go index f89749512..182a2a1c1 100644 --- a/vendor/k8s.io/kubernetes/cmd/genman/gen_kube_man.go +++ b/vendor/k8s.io/kubernetes/cmd/genman/gen_kube_man.go @@ -31,6 +31,7 @@ import ( apiservapp "k8s.io/kubernetes/cmd/kube-apiserver/app" cmapp "k8s.io/kubernetes/cmd/kube-controller-manager/app" proxyapp "k8s.io/kubernetes/cmd/kube-proxy/app" + kubeadmapp "k8s.io/kubernetes/cmd/kubeadm/app/cmd" kubeletapp "k8s.io/kubernetes/cmd/kubelet/app" kubectlcmd "k8s.io/kubernetes/pkg/kubectl/cmd" kubectlcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -110,6 +111,13 @@ func main() { for _, c := range kubectl.Commands() { genMarkdown(c, "kubectl", outDir) } + case "kubeadm": + // generate manpage for kubelet + kubeadm := kubeadmapp.NewKubeadmCommand(os.Stdin, os.Stdout, os.Stderr) + genMarkdown(kubeadm, "", outDir) + for _, c := range kubeadm.Commands() { + genMarkdown(c, "kubeadm", outDir) + } default: fmt.Fprintf(os.Stderr, "Module %s is not supported", module) os.Exit(1) diff --git a/vendor/k8s.io/kubernetes/cmd/genutils/genutils.go b/vendor/k8s.io/kubernetes/cmd/genutils/genutils.go index 309d6ec48..c94b25db5 100644 --- a/vendor/k8s.io/kubernetes/cmd/genutils/genutils.go +++ b/vendor/k8s.io/kubernetes/cmd/genutils/genutils.go @@ -22,6 +22,8 @@ import ( "path/filepath" ) +// OutDir creates the absolute path name from path and checks path exists. +// Returns absolute path including trailing '/' or error if path does not exist. func OutDir(path string) (string, error) { outDir, err := filepath.Abs(path) if err != nil { @@ -34,7 +36,7 @@ func OutDir(path string) (string, error) { } if !stat.IsDir() { - return "", fmt.Errorf("output directory %s is not a directory\n", outDir) + return "", fmt.Errorf("output directory %s is not a directory", outDir) } outDir = outDir + "/" return outDir, nil diff --git a/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/BUILD b/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/BUILD index 402f22024..a6017f578 100644 --- a/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/BUILD @@ -15,7 +15,7 @@ go_library( ], importpath = "k8s.io/kubernetes/cmd/gke-certificates-controller/app", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/certificates/install:go_default_library", "//pkg/controller:go_default_library", "//pkg/controller/certificates:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/gke_certificates_controller.go b/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/gke_certificates_controller.go index 7043c75cf..9e9db774c 100644 --- a/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/gke_certificates_controller.go +++ b/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/gke_certificates_controller.go @@ -28,7 +28,7 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/certificates" @@ -65,7 +65,7 @@ func Run(s *GKECertificatesController) error { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) - recorder := eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: "gke-certificates-controller"}) + recorder := eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: "gke-certificates-controller"}) clientBuilder := controller.SimpleControllerClientBuilder{ClientConfig: kubeconfig} client := clientBuilder.ClientOrDie("certificate-controller") @@ -77,14 +77,11 @@ func Run(s *GKECertificatesController) error { return err } - controller, err := certificates.NewCertificateController( + controller := certificates.NewCertificateController( client, sharedInformers.Certificates().V1beta1().CertificateSigningRequests(), signer.handle, ) - if err != nil { - return err - } sharedInformers.Start(nil) controller.Run(5, nil) // runs forever diff --git a/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/gke_signer.go b/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/gke_signer.go index 01beada20..69552a417 100644 --- a/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/gke_signer.go +++ b/vendor/k8s.io/kubernetes/cmd/gke-certificates-controller/app/gke_signer.go @@ -29,7 +29,7 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/certificates/install" "k8s.io/kubernetes/pkg/controller/certificates" ) @@ -50,7 +50,7 @@ type GKESigner struct { // NewGKESigner will create a new instance of a GKESigner. func NewGKESigner(kubeConfigFile string, retryBackoff time.Duration, recorder record.EventRecorder, client clientset.Interface) (*GKESigner, error) { - webhook, err := webhook.NewGenericWebhook(api.Registry, api.Codecs, kubeConfigFile, groupVersions, retryBackoff) + webhook, err := webhook.NewGenericWebhook(legacyscheme.Registry, legacyscheme.Codecs, kubeConfigFile, groupVersions, retryBackoff) if err != nil { return nil, err } @@ -72,7 +72,7 @@ func (s *GKESigner) handle(csr *capi.CertificateSigningRequest) error { if err != nil { return fmt.Errorf("error auto signing csr: %v", err) } - _, err = s.client.Certificates().CertificateSigningRequests().UpdateStatus(csr) + _, err = s.client.CertificatesV1beta1().CertificateSigningRequests().UpdateStatus(csr) if err != nil { return fmt.Errorf("error updating signature for csr: %v", err) } diff --git a/vendor/k8s.io/kubernetes/cmd/hyperkube/BUILD b/vendor/k8s.io/kubernetes/cmd/hyperkube/BUILD index 4cc602ad8..af3f17aae 100644 --- a/vendor/k8s.io/kubernetes/cmd/hyperkube/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/hyperkube/BUILD @@ -30,8 +30,7 @@ go_test( go_library( name = "go_default_library", srcs = [ - "federation-apiserver.go", - "federation-controller-manager.go", + "cloud-controller-manager.go", "hyperkube.go", "kube-aggregator.go", "kube-apiserver.go", @@ -45,6 +44,8 @@ go_library( ], importpath = "k8s.io/kubernetes/cmd/hyperkube", deps = [ + "//cmd/cloud-controller-manager/app:go_default_library", + "//cmd/cloud-controller-manager/app/options:go_default_library", "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-apiserver/app/options:go_default_library", "//cmd/kube-controller-manager/app:go_default_library", @@ -52,10 +53,6 @@ go_library( "//cmd/kube-proxy/app:go_default_library", "//cmd/kubelet/app:go_default_library", "//cmd/kubelet/app/options:go_default_library", - "//federation/cmd/federation-apiserver/app:go_default_library", - "//federation/cmd/federation-apiserver/app/options:go_default_library", - "//federation/cmd/federation-controller-manager/app:go_default_library", - "//federation/cmd/federation-controller-manager/app/options:go_default_library", "//pkg/client/metrics/prometheus:go_default_library", "//pkg/kubectl/cmd:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", @@ -63,7 +60,6 @@ go_library( "//pkg/version/prometheus:go_default_library", "//pkg/version/verflag:go_default_library", "//plugin/cmd/kube-scheduler/app:go_default_library", - "//plugin/cmd/kube-scheduler/app/options:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/server:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/hyperkube/federation-controller-manager.go b/vendor/k8s.io/kubernetes/cmd/hyperkube/cloud-controller-manager.go similarity index 59% rename from vendor/k8s.io/kubernetes/cmd/hyperkube/federation-controller-manager.go rename to vendor/k8s.io/kubernetes/cmd/hyperkube/cloud-controller-manager.go index b702a1e34..fd3266bee 100644 --- a/vendor/k8s.io/kubernetes/cmd/hyperkube/federation-controller-manager.go +++ b/vendor/k8s.io/kubernetes/cmd/hyperkube/cloud-controller-manager.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +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. @@ -17,18 +17,19 @@ limitations under the License. package main import ( - "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app" - "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options" + "k8s.io/kubernetes/cmd/cloud-controller-manager/app" + "k8s.io/kubernetes/cmd/cloud-controller-manager/app/options" ) -// NewFederationCMServer creates a new hyperkube Server object that includes the +// NewCloudControllerManager creates a new hyperkube Server object that includes the // description and flags. -func NewFederationCMServer() *Server { - s := options.NewCMServer() +func NewCloudControllerManager() *Server { + s := options.NewCloudControllerManagerServer() hks := Server{ - SimpleUsage: "federation-controller-manager", - Long: "Controller manager for federation control plane. Manages federation service endpoints and controllers", + name: "cloud-controller-manager", + SimpleUsage: "cloud-controller-manager", + Long: "A server that acts as an external cloud provider.", Run: func(_ *Server, args []string, stopCh <-chan struct{}) error { return app.Run(s) }, diff --git a/vendor/k8s.io/kubernetes/cmd/hyperkube/federation-apiserver.go b/vendor/k8s.io/kubernetes/cmd/hyperkube/federation-apiserver.go deleted file mode 100644 index 97dff0413..000000000 --- a/vendor/k8s.io/kubernetes/cmd/hyperkube/federation-apiserver.go +++ /dev/null @@ -1,39 +0,0 @@ -/* -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 main - -import ( - "k8s.io/kubernetes/federation/cmd/federation-apiserver/app" - "k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options" -) - -// NewFederationAPIServer creates a new hyperkube Server object that includes the -// description and flags. -func NewFederationAPIServer() *Server { - s := options.NewServerRunOptions() - - hks := Server{ - SimpleUsage: "federation-apiserver", - Long: "The API entrypoint for the federation control plane", - Run: func(_ *Server, args []string, stopCh <-chan struct{}) error { - return app.Run(s, stopCh) - }, - RespectsStopCh: true, - } - s.AddFlags(hks.Flags()) - return &hks -} diff --git a/vendor/k8s.io/kubernetes/cmd/hyperkube/hyperkube.go b/vendor/k8s.io/kubernetes/cmd/hyperkube/hyperkube.go index 556711d5d..a4de5c7af 100644 --- a/vendor/k8s.io/kubernetes/cmd/hyperkube/hyperkube.go +++ b/vendor/k8s.io/kubernetes/cmd/hyperkube/hyperkube.go @@ -42,6 +42,7 @@ type HyperKube struct { Long string // A long description of the binary. It will be world wrapped before output. servers []Server + alphaServers []Server baseFlags *pflag.FlagSet out io.Writer helpFlagVal bool @@ -54,9 +55,24 @@ func (hk *HyperKube) AddServer(s *Server) { hk.servers[len(hk.servers)-1].hk = hk } +// AddServer adds an alpha server to the HyperKube object. +func (hk *HyperKube) AddAlphaServer(s *Server) { + hk.alphaServers = append(hk.alphaServers, *s) + hk.alphaServers[len(hk.alphaServers)-1].hk = hk +} + // FindServer will find a specific server named name. func (hk *HyperKube) FindServer(name string) (*Server, error) { - for _, s := range hk.servers { + return findServer(name, hk.servers) +} + +// FindServer will find a specific alpha server named name. +func (hk *HyperKube) FindAlphaServer(name string) (*Server, error) { + return findServer(name, hk.alphaServers) +} + +func findServer(name string, servers []Server) (*Server, error) { + for _, s := range servers { if s.Name() == name || s.AlternativeName == name { return &s, nil } @@ -154,7 +170,23 @@ func (hk *HyperKube) Run(args []string, stopCh <-chan struct{}) error { } } - s, err := hk.FindServer(serverName) + var s *Server + var err error + if serverName == "alpha" { + if len(args) > 0 && len(args[0]) > 0 { + serverName = args[0] + args = args[1:] + hk.Printf("Warning: alpha command syntax is unstable!\n\n") + } else { + err = errors.New("no alpha server specified") + hk.Printf("Error: %v\n\n", err) + hk.Usage() + return err + } + s, err = hk.FindAlphaServer(serverName) + } else { + s, err = hk.FindServer(serverName) + } if err != nil { hk.Printf("Error: %v\n\n", err) hk.Usage() diff --git a/vendor/k8s.io/kubernetes/cmd/hyperkube/hyperkube_test.go b/vendor/k8s.io/kubernetes/cmd/hyperkube/hyperkube_test.go index 5a4459b2a..567618120 100644 --- a/vendor/k8s.io/kubernetes/cmd/hyperkube/hyperkube_test.go +++ b/vendor/k8s.io/kubernetes/cmd/hyperkube/hyperkube_test.go @@ -151,6 +151,7 @@ func runFull(t *testing.T, args string, stopCh <-chan struct{}) *result { hk.AddServer(testServer("test1")) hk.AddServer(testServer("test2")) hk.AddServer(testServer("test3")) + hk.AddAlphaServer(testServer("testAlpha1")) hk.AddServer(testServerError("test-error")) hk.AddServer(testStopChIgnoringServer("test-stop-ch-ignoring")) hk.AddServer(testStopChRespectingServer("test-stop-ch-respecting")) @@ -236,6 +237,22 @@ func TestServerError(t *testing.T) { assert.EqualError(t, x.err, "server returning error") } +func TestAlphaRun(t *testing.T) { + x := runFull(t, "hyperkube alpha testAlpha1", wait.NeverStop) + assert.NoError(t, x.err) +} + +func TestAlphaNoArgs(t *testing.T) { + x := runFull(t, "hyperkube alpha", wait.NeverStop) + assert.EqualError(t, x.err, "no alpha server specified") +} + +func TestAlphaBadServer(t *testing.T) { + x := runFull(t, "hyperkube alpha bad-server", wait.NeverStop) + assert.EqualError(t, x.err, "Server not found: bad-server") + assert.Contains(t, x.output, "Usage") +} + func TestStopChIgnoringServer(t *testing.T) { stopCh := make(chan struct{}) returnedCh := make(chan struct{}) diff --git a/vendor/k8s.io/kubernetes/cmd/hyperkube/kube-scheduler.go b/vendor/k8s.io/kubernetes/cmd/hyperkube/kube-scheduler.go index 5e5abb2c6..cfd68dc15 100644 --- a/vendor/k8s.io/kubernetes/cmd/hyperkube/kube-scheduler.go +++ b/vendor/k8s.io/kubernetes/cmd/hyperkube/kube-scheduler.go @@ -17,24 +17,38 @@ limitations under the License. package main import ( + "flag" + + "k8s.io/apiserver/pkg/server/healthz" "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app" - "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options" ) // NewScheduler creates a new hyperkube Server object that includes the // description and flags. func NewScheduler() *Server { - s := options.NewSchedulerServer() + healthz.DefaultHealthz() + + command := app.NewSchedulerCommand() hks := Server{ name: "scheduler", AlternativeName: "kube-scheduler", SimpleUsage: "scheduler", - Long: "Implements a Kubernetes scheduler. This will assign pods to kubelets based on capacity and constraints.", - Run: func(_ *Server, _ []string, stopCh <-chan struct{}) error { - return app.Run(s) - }, + Long: command.Long, } - s.AddFlags(hks.Flags()) + + serverFlags := hks.Flags() + serverFlags.AddFlagSet(command.Flags()) + + // FIXME this is here because hyperkube does its own flag parsing, and we need + // the command to know about the go flag set. Remove this once hyperkube is + // refactored to use cobra throughout. + command.Flags().AddGoFlagSet(flag.CommandLine) + + hks.Run = func(_ *Server, args []string, stopCh <-chan struct{}) error { + command.SetArgs(args) + return command.Execute() + } + return &hks } diff --git a/vendor/k8s.io/kubernetes/cmd/hyperkube/kubelet.go b/vendor/k8s.io/kubernetes/cmd/hyperkube/kubelet.go index 36c3286a1..c58363a6c 100644 --- a/vendor/k8s.io/kubernetes/cmd/hyperkube/kubelet.go +++ b/vendor/k8s.io/kubernetes/cmd/hyperkube/kubelet.go @@ -39,6 +39,9 @@ func NewKubelet() (*Server, error) { configuration data, with the running set of containers by starting or stopping Docker containers.`, Run: func(_ *Server, _ []string, stopCh <-chan struct{}) error { + if s.ExperimentalDockershim { + return app.RunDockershim(&s.KubeletFlags, &s.KubeletConfiguration) + } return app.Run(s, nil) }, } diff --git a/vendor/k8s.io/kubernetes/cmd/hyperkube/main.go b/vendor/k8s.io/kubernetes/cmd/hyperkube/main.go index ef49d0675..123f040a8 100644 --- a/vendor/k8s.io/kubernetes/cmd/hyperkube/main.go +++ b/vendor/k8s.io/kubernetes/cmd/hyperkube/main.go @@ -46,9 +46,8 @@ func main() { hk.AddServer(NewKubeProxy()) hk.AddServer(NewKubeAggregator()) - //Federation servers - hk.AddServer(NewFederationAPIServer()) - hk.AddServer(NewFederationCMServer()) + // Alpha servers + hk.AddAlphaServer(NewCloudControllerManager()) hk.RunToExit(os.Args) } diff --git a/vendor/k8s.io/kubernetes/cmd/importverifier/BUILD b/vendor/k8s.io/kubernetes/cmd/importverifier/BUILD index f0bd15547..b3c71160e 100644 --- a/vendor/k8s.io/kubernetes/cmd/importverifier/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/importverifier/BUILD @@ -16,6 +16,7 @@ go_library( name = "go_default_library", srcs = ["importverifier.go"], importpath = "k8s.io/kubernetes/cmd/importverifier", + deps = ["//vendor/gopkg.in/yaml.v2:go_default_library"], ) filegroup( diff --git a/vendor/k8s.io/kubernetes/cmd/importverifier/importverifier.go b/vendor/k8s.io/kubernetes/cmd/importverifier/importverifier.go index d6b9efca4..584a74bdb 100644 --- a/vendor/k8s.io/kubernetes/cmd/importverifier/importverifier.go +++ b/vendor/k8s.io/kubernetes/cmd/importverifier/importverifier.go @@ -27,15 +27,17 @@ import ( "os/exec" "path/filepath" "strings" + + "gopkg.in/yaml.v2" ) // Package is a subset of cmd/go.Package type Package struct { - Dir string `json:",omitempty"` // directory containing package sources - ImportPath string `json:",omitempty"` // import path of package in dir - Imports []string `json:",omitempty"` // import paths used by this package - TestImports []string `json:",omitempty"` // imports from TestGoFiles - XTestImports []string `json:",omitempty"` // imports from XTestGoFiles + Dir string `yaml:",omitempty"` // directory containing package sources + ImportPath string `yaml:",omitempty"` // import path of package in dir + Imports []string `yaml:",omitempty"` // import paths used by this package + TestImports []string `yaml:",omitempty"` // imports from TestGoFiles + XTestImports []string `yaml:",omitempty"` // imports from XTestGoFiles } // ImportRestriction describes a set of allowable import @@ -44,17 +46,17 @@ type ImportRestriction struct { // BaseDir is the root of the package tree that is // restricted by this configuration, given as a // relative path from the root of the repository - BaseDir string `json:"baseImportPath"` + BaseDir string `yaml:"baseImportPath"` // IgnoredSubTrees are roots of sub-trees of the // BaseDir for which we do not want to enforce // any import restrictions whatsoever, given as // relative paths from the root of the repository - IgnoredSubTrees []string `json:"ignoredSubTrees,omitempty"` + IgnoredSubTrees []string `yaml:"ignoredSubTrees,omitempty"` // AllowedImports are roots of package trees that // are allowed to be imported from the BaseDir, // given as paths that would be used in a Go // import statement - AllowedImports []string `json:"allowedImports"` + AllowedImports []string `yaml:"allowedImports"` } // ForbiddenImportsFor determines all of the forbidden @@ -110,7 +112,7 @@ func isPathUnder(base, path string) (bool, error) { // if path is below base, the relative path // from base to path will not start with `../` - return !strings.HasPrefix(relPath, "."), nil + return !strings.HasPrefix(relPath, ".."), nil } // forbiddenImportsFor determines all of the forbidden @@ -164,7 +166,7 @@ var rootPackage string func main() { if len(os.Args) != 3 { - log.Fatalf("Usage: %s ROOT RESTRICTIONS.json", os.Args[0]) + log.Fatalf("Usage: %s ROOT RESTRICTIONS.yaml", os.Args[0]) } rootPackage = os.Args[1] @@ -214,7 +216,7 @@ func loadImportRestrictions(configFile string) ([]ImportRestriction, error) { } var importRestrictions []ImportRestriction - if err := json.Unmarshal(config, &importRestrictions); err != nil { + if err := yaml.Unmarshal(config, &importRestrictions); err != nil { return nil, fmt.Errorf("failed to unmarshal from %s: %v", configFile, err) } diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/BUILD b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/BUILD index 1e2865f17..eef2ad117 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/BUILD @@ -15,11 +15,13 @@ go_library( importpath = "k8s.io/kubernetes/cmd/kube-apiserver/app", deps = [ "//cmd/kube-apiserver/app/options:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/networking:go_default_library", + "//pkg/apis/storage:go_default_library", "//pkg/capabilities:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", @@ -58,6 +60,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/config:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", "//vendor/k8s.io/apiserver/pkg/server:go_default_library", @@ -69,6 +72,7 @@ go_library( "//vendor/k8s.io/apiserver/pkg/storage/etcd3/preflight:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration:go_default_library", "//vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go index c6412c52f..cc99810ca 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go @@ -203,7 +203,7 @@ var apiVersionPriorities = map[schema.GroupVersion]priority{ {Group: "extensions", Version: "v1beta1"}: {group: 17900, version: 1}, // to my knowledge, nothing below here collides {Group: "apps", Version: "v1beta1"}: {group: 17800, version: 1}, - {Group: "apps", Version: "v1beta2"}: {group: 17800, version: 1}, + {Group: "apps", Version: "v1beta2"}: {group: 17800, version: 9}, {Group: "apps", Version: "v1"}: {group: 17800, version: 15}, {Group: "authentication.k8s.io", Version: "v1"}: {group: 17700, version: 15}, {Group: "authentication.k8s.io", Version: "v1beta1"}: {group: 17700, version: 9}, @@ -223,8 +223,10 @@ var apiVersionPriorities = map[schema.GroupVersion]priority{ {Group: "settings.k8s.io", Version: "v1alpha1"}: {group: 16900, version: 9}, {Group: "storage.k8s.io", Version: "v1"}: {group: 16800, version: 15}, {Group: "storage.k8s.io", Version: "v1beta1"}: {group: 16800, version: 9}, + {Group: "storage.k8s.io", Version: "v1alpha1"}: {group: 16800, version: 1}, {Group: "apiextensions.k8s.io", Version: "v1beta1"}: {group: 16700, version: 9}, {Group: "admissionregistration.k8s.io", Version: "v1alpha1"}: {group: 16700, version: 9}, + {Group: "scheduling.k8s.io", Version: "v1alpha1"}: {group: 16600, version: 9}, } func apiServicesToRegister(delegateAPIServer genericapiserver.DelegationTarget, registration autoregister.AutoAPIServiceRegistration) []*apiregistration.APIService { diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/BUILD b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/BUILD index a2676d662..6d7c32772 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/BUILD @@ -15,8 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/cmd/kube-apiserver/app/options", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/cloudprovider/providers:go_default_library", "//pkg/features:go_default_library", "//pkg/kubeapiserver/options:go_default_library", @@ -48,7 +48,6 @@ go_library( "//plugin/pkg/admission/securitycontext/scdeny:go_default_library", "//plugin/pkg/admission/serviceaccount:go_default_library", "//plugin/pkg/admission/storageclass/setdefault:go_default_library", - "//plugin/pkg/admission/webhook:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", @@ -63,7 +62,8 @@ go_test( importpath = "k8s.io/kubernetes/cmd/kube-apiserver/app/options", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubeapiserver/options:go_default_library", "//pkg/kubelet/client:go_default_library", "//pkg/master/reconcilers:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options.go b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options.go index 727edd15e..8b95fb666 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options.go @@ -25,8 +25,8 @@ import ( utilnet "k8s.io/apimachinery/pkg/util/net" genericoptions "k8s.io/apiserver/pkg/server/options" "k8s.io/apiserver/pkg/storage/storagebackend" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/master/ports" @@ -153,11 +153,15 @@ func (s *ServerRunOptions) AddFlags(fs *pflag.FlagSet) { fs.BoolVar(&s.EnableLogsHandler, "enable-logs-handler", s.EnableLogsHandler, "If true, install a /logs handler for the apiserver logs.") + // Deprecated in release 1.9 fs.StringVar(&s.SSHUser, "ssh-user", s.SSHUser, "If non-empty, use secure SSH proxy to the nodes, using this user name") + fs.MarkDeprecated("ssh-user", "This flag will be removed in a future version.") + // Deprecated in release 1.9 fs.StringVar(&s.SSHKeyfile, "ssh-keyfile", s.SSHKeyfile, "If non-empty, use secure SSH proxy to the nodes, using this user keyfile") + fs.MarkDeprecated("ssh-keyfile", "This flag will be removed in a future version.") fs.Int64Var(&s.MaxConnectionBytesPerSec, "max-connection-bytes-per-sec", s.MaxConnectionBytesPerSec, ""+ "If non-zero, throttle each user connection to this number of bytes/sec. "+ @@ -166,7 +170,7 @@ func (s *ServerRunOptions) AddFlags(fs *pflag.FlagSet) { fs.IntVar(&s.MasterCount, "apiserver-count", s.MasterCount, "The number of apiservers running in the cluster, must be a positive number.") - fs.StringVar(&s.EndpointReconcilerType, "alpha-endpoint-reconciler-type", string(s.EndpointReconcilerType), + fs.StringVar(&s.EndpointReconcilerType, "endpoint-reconciler-type", string(s.EndpointReconcilerType), "Use an endpoint reconciler ("+strings.Join(reconcilers.AllTypes.Names(), ", ")+")") // See #14282 for details on how to test/try this option out. @@ -180,15 +184,9 @@ func (s *ServerRunOptions) AddFlags(fs *pflag.FlagSet) { "A CIDR notation IP range from which to assign service cluster IPs. This must not "+ "overlap with any IP ranges assigned to nodes for pods.") - fs.IPNetVar(&s.ServiceClusterIPRange, "portal-net", s.ServiceClusterIPRange, - "DEPRECATED: see --service-cluster-ip-range instead.") - fs.MarkDeprecated("portal-net", "see --service-cluster-ip-range instead") - fs.Var(&s.ServiceNodePortRange, "service-node-port-range", ""+ "A port range to reserve for services with NodePort visibility. "+ "Example: '30000-32767'. Inclusive at both ends of the range.") - fs.Var(&s.ServiceNodePortRange, "service-node-ports", "DEPRECATED: see --service-node-port-range instead") - fs.MarkDeprecated("service-node-ports", "see --service-node-port-range instead") // Kubelet related flags: fs.BoolVar(&s.KubeletConfig.EnableHttps, "kubelet-https", s.KubeletConfig.EnableHttps, diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options_test.go b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options_test.go index 59320114c..949f3c133 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options_test.go @@ -29,7 +29,8 @@ import ( "k8s.io/apiserver/pkg/storage/storagebackend" utilconfig "k8s.io/apiserver/pkg/util/flag" restclient "k8s.io/client-go/rest" - kapi "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + kapi "k8s.io/kubernetes/pkg/apis/core" kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/master/reconcilers" @@ -45,7 +46,6 @@ func TestAddFlags(t *testing.T) { "--admission-control-config-file=/admission-control-config", "--advertise-address=192.168.10.10", "--allow-privileged=false", - "--alpha-endpoint-reconciler-type=" + string(reconcilers.MasterCountReconcilerType), "--anonymous-auth=false", "--apiserver-count=5", "--audit-log-maxage=11", @@ -71,6 +71,7 @@ func TestAddFlags(t *testing.T) { "--enable-aggregator-routing=true", "--enable-logs-handler=false", "--enable-swagger-ui=true", + "--endpoint-reconciler-type=" + string(reconcilers.MasterCountReconcilerType), "--etcd-quorum-read=false", "--etcd-keyfile=/var/run/kubernetes/etcd.key", "--etcd-certfile=/var/run/kubernetes/etcdce.crt", @@ -103,8 +104,8 @@ func TestAddFlags(t *testing.T) { MinRequestTimeout: 1800, }, Admission: &apiserveroptions.AdmissionOptions{ - RecommendedPluginOrder: []string{"NamespaceLifecycle", "Initializers"}, - DefaultOffPlugins: []string{"Initializers"}, + RecommendedPluginOrder: []string{"NamespaceLifecycle", "Initializers", "GenericAdmissionWebhook"}, + DefaultOffPlugins: []string{"Initializers", "GenericAdmissionWebhook"}, PluginNames: []string{"AlwaysDeny"}, ConfigFile: "/admission-control-config", Plugins: s.Admission.Plugins, @@ -214,8 +215,8 @@ func TestAddFlags(t *testing.T) { CloudProvider: "azure", }, StorageSerialization: &kubeoptions.StorageSerializationOptions{ - StorageVersions: kapi.Registry.AllPreferredGroupVersions(), - DefaultStorageVersions: kapi.Registry.AllPreferredGroupVersions(), + StorageVersions: legacyscheme.Registry.AllPreferredGroupVersions(), + DefaultStorageVersions: legacyscheme.Registry.AllPreferredGroupVersions(), }, APIEnablement: &kubeoptions.APIEnablementOptions{ RuntimeConfig: utilconfig.ConfigurationMap{}, diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/plugins.go b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/plugins.go index 8656eb157..6d899d3b0 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/plugins.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/options/plugins.go @@ -50,7 +50,6 @@ import ( "k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny" "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" "k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault" - "k8s.io/kubernetes/plugin/pkg/admission/webhook" ) // RegisterAllAdmissionPlugins registers all admission plugins @@ -79,6 +78,5 @@ func RegisterAllAdmissionPlugins(plugins *admission.Plugins) { scdeny.Register(plugins) serviceaccount.Register(plugins) setdefault.Register(plugins) - webhook.Register(plugins) resize.Register(plugins) } diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/server.go b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/server.go index 386e7e7ec..e3450aea4 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/server.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/server.go @@ -44,6 +44,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" utilwait "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/admission" + webhookconfig "k8s.io/apiserver/pkg/admission/plugin/webhook/config" "k8s.io/apiserver/pkg/authentication/authenticator" "k8s.io/apiserver/pkg/authorization/authorizer" genericapiserver "k8s.io/apiserver/pkg/server" @@ -58,11 +59,12 @@ import ( clientgoinformers "k8s.io/client-go/informers" clientgoclientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/cmd/kube-apiserver/app/options" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/networking" + "k8s.io/kubernetes/pkg/apis/storage" "k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -84,6 +86,8 @@ import ( "k8s.io/kubernetes/pkg/version" "k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap" + "k8s.io/client-go/rest" + api "k8s.io/kubernetes/pkg/apis/core" _ "k8s.io/kubernetes/pkg/util/reflector/prometheus" // for reflector metric registration _ "k8s.io/kubernetes/pkg/util/workqueue/prometheus" // for workqueue metric registration ) @@ -153,7 +157,7 @@ func CreateServerChain(runOptions *options.ServerRunOptions, stopCh <-chan struc if len(os.Getenv("KUBE_API_VERSIONS")) > 0 { if insecureServingOptions != nil { insecureHandlerChain := kubeserver.BuildInsecureHandlerChain(kubeAPIServer.GenericAPIServer.UnprotectedHandler(), kubeAPIServerConfig.GenericConfig) - if err := kubeserver.NonBlockingRun(insecureServingOptions, insecureHandlerChain, stopCh); err != nil { + if err := kubeserver.NonBlockingRun(insecureServingOptions, insecureHandlerChain, kubeAPIServerConfig.GenericConfig.RequestTimeout, stopCh); err != nil { return nil, err } } @@ -183,7 +187,7 @@ func CreateServerChain(runOptions *options.ServerRunOptions, stopCh <-chan struc if insecureServingOptions != nil { insecureHandlerChain := kubeserver.BuildInsecureHandlerChain(aggregatorServer.GenericAPIServer.UnprotectedHandler(), kubeAPIServerConfig.GenericConfig) - if err := kubeserver.NonBlockingRun(insecureServingOptions, insecureHandlerChain, stopCh); err != nil { + if err := kubeserver.NonBlockingRun(insecureServingOptions, insecureHandlerChain, kubeAPIServerConfig.GenericConfig.RequestTimeout, stopCh); err != nil { return nil, err } } @@ -262,13 +266,6 @@ func CreateKubeAPIServerConfig(s *options.ServerRunOptions, nodeTunneler tunnele return nil, nil, nil, nil, nil, utilerrors.NewAggregate(errs) } - if s.CloudProvider != nil { - // Initialize the cloudprovider once, to give it a chance to register KMS plugins, if any. - _, err := cloudprovider.InitCloudProvider(s.CloudProvider.CloudProvider, s.CloudProvider.CloudConfigFile) - if err != nil { - return nil, nil, nil, nil, nil, err - } - } genericConfig, sharedInformers, versionedInformers, insecureServingOptions, serviceResolver, err := BuildGenericConfig(s, proxyTransport) if err != nil { return nil, nil, nil, nil, nil, err @@ -355,7 +352,7 @@ func CreateKubeAPIServerConfig(s *options.ServerRunOptions, nodeTunneler tunnele // BuildGenericConfig takes the master server options and produces the genericapiserver.Config associated with it func BuildGenericConfig(s *options.ServerRunOptions, proxyTransport *http.Transport) (*genericapiserver.Config, informers.SharedInformerFactory, clientgoinformers.SharedInformerFactory, *kubeserver.InsecureServingInfo, aggregatorapiserver.ServiceResolver, error) { - genericConfig := genericapiserver.NewConfig(api.Codecs) + genericConfig := genericapiserver.NewConfig(legacyscheme.Codecs) if err := s.GenericServerRunOptions.ApplyTo(genericConfig); err != nil { return nil, nil, nil, nil, nil, err } @@ -376,7 +373,7 @@ func BuildGenericConfig(s *options.ServerRunOptions, proxyTransport *http.Transp return nil, nil, nil, nil, nil, err } - genericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(generatedopenapi.GetOpenAPIDefinitions, api.Scheme) + genericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(generatedopenapi.GetOpenAPIDefinitions, legacyscheme.Scheme) genericConfig.OpenAPIConfig.PostProcessSpec = postProcessOpenAPISpecForBackwardCompatibility genericConfig.OpenAPIConfig.Info.Title = "Kubernetes" genericConfig.SwaggerConfig = genericapiserver.DefaultSwaggerConfig() @@ -450,50 +447,47 @@ func BuildGenericConfig(s *options.ServerRunOptions, proxyTransport *http.Transp genericConfig.DisabledPostStartHooks.Insert(rbacrest.PostStartHookName) } + webhookAuthResolver := func(delegate webhookconfig.AuthenticationInfoResolver) webhookconfig.AuthenticationInfoResolver { + return webhookconfig.AuthenticationInfoResolverFunc(func(server string) (*rest.Config, error) { + if server == "kubernetes.default.svc" { + return genericConfig.LoopbackClientConfig, nil + } + ret, err := delegate.ClientConfigFor(server) + if err != nil { + return nil, err + } + if proxyTransport != nil && proxyTransport.Dial != nil { + ret.Dial = proxyTransport.Dial + } + return ret, err + }) + } pluginInitializer, err := BuildAdmissionPluginInitializer( s, client, sharedInformers, serviceResolver, - proxyTransport, + webhookAuthResolver, ) if err != nil { return nil, nil, nil, nil, nil, fmt.Errorf("failed to create admission plugin initializer: %v", err) } - // TODO: this is the wrong cert/key pair. - // Given the generic case of webhook admission from a generic apiserver, - // this key pair should be signed by the the API server's client CA. - // Read client cert/key for plugins that need to make calls out - certBytes, keyBytes := []byte{}, []byte{} - if len(s.ProxyClientCertFile) > 0 && len(s.ProxyClientKeyFile) > 0 { - var err error - certBytes, err = ioutil.ReadFile(s.ProxyClientCertFile) - if err != nil { - return nil, nil, nil, nil, nil, fmt.Errorf("failed to read proxy client cert file from: %s, err: %v", s.ProxyClientCertFile, err) - } - keyBytes, err = ioutil.ReadFile(s.ProxyClientKeyFile) - if err != nil { - return nil, nil, nil, nil, nil, fmt.Errorf("failed to read proxy client key file from: %s, err: %v", s.ProxyClientKeyFile, err) - } - } - err = s.Admission.ApplyTo( genericConfig, versionedInformers, - certBytes, - keyBytes, kubeClientConfig, - api.Scheme, + legacyscheme.Scheme, pluginInitializer) if err != nil { return nil, nil, nil, nil, nil, fmt.Errorf("failed to initialize admission: %v", err) } + return genericConfig, sharedInformers, versionedInformers, insecureServingOptions, serviceResolver, nil } // BuildAdmissionPluginInitializer constructs the admission plugin initializer -func BuildAdmissionPluginInitializer(s *options.ServerRunOptions, client internalclientset.Interface, sharedInformers informers.SharedInformerFactory, serviceResolver aggregatorapiserver.ServiceResolver, proxyTransport *http.Transport) (admission.PluginInitializer, error) { +func BuildAdmissionPluginInitializer(s *options.ServerRunOptions, client internalclientset.Interface, sharedInformers informers.SharedInformerFactory, serviceResolver aggregatorapiserver.ServiceResolver, webhookAuthWrapper webhookconfig.AuthenticationInfoResolverWrapper) (admission.PluginInitializer, error) { var cloudConfig []byte if s.CloudProvider.CloudConfigFile != "" { @@ -505,16 +499,11 @@ func BuildAdmissionPluginInitializer(s *options.ServerRunOptions, client interna } // TODO: use a dynamic restmapper. See https://github.com/kubernetes/kubernetes/pull/42615. - restMapper := api.Registry.RESTMapper() - - // NOTE: we do not provide informers to the quota registry because admission level decisions - // do not require us to open watches for all items tracked by quota. - quotaRegistry := quotainstall.NewRegistry(nil, nil) + restMapper := legacyscheme.Registry.RESTMapper() - pluginInitializer := kubeapiserveradmission.NewPluginInitializer(client, sharedInformers, cloudConfig, restMapper, quotaRegistry) + quotaConfiguration := quotainstall.NewQuotaConfigurationForAdmission() - pluginInitializer = pluginInitializer.SetServiceResolver(serviceResolver) - pluginInitializer = pluginInitializer.SetProxyTransport(proxyTransport) + pluginInitializer := kubeapiserveradmission.NewPluginInitializer(client, sharedInformers, cloudConfig, restMapper, quotaConfiguration, webhookAuthWrapper, serviceResolver) return pluginInitializer, nil } @@ -565,20 +554,24 @@ func BuildStorageFactory(s *options.ServerRunOptions) (*serverstorage.DefaultSto return nil, fmt.Errorf("error generating storage version map: %s", err) } storageFactory, err := kubeapiserver.NewStorageFactory( - s.Etcd.StorageConfig, s.Etcd.DefaultStorageMediaType, api.Codecs, - serverstorage.NewDefaultResourceEncodingConfig(api.Registry), storageGroupsToEncodingVersion, + s.Etcd.StorageConfig, s.Etcd.DefaultStorageMediaType, legacyscheme.Codecs, + serverstorage.NewDefaultResourceEncodingConfig(legacyscheme.Registry), storageGroupsToEncodingVersion, // FIXME (soltysh): this GroupVersionResource override should be configurable - []schema.GroupVersionResource{batch.Resource("cronjobs").WithVersion("v1beta1")}, + []schema.GroupVersionResource{ + batch.Resource("cronjobs").WithVersion("v1beta1"), + storage.Resource("volumeattachments").WithVersion("v1alpha1"), + }, master.DefaultAPIResourceConfigSource(), s.APIEnablement.RuntimeConfig) if err != nil { return nil, fmt.Errorf("error in initializing storage factory: %s", err) } - // keep Deployments, NetworkPolicies, Daemonsets and ReplicaSets in extensions for backwards compatibility, we'll have to migrate at some point, eventually + storageFactory.AddCohabitatingResources(networking.Resource("networkpolicies"), extensions.Resource("networkpolicies")) + + // keep Deployments, Daemonsets and ReplicaSets in extensions for backwards compatibility, we'll have to migrate at some point, eventually storageFactory.AddCohabitatingResources(extensions.Resource("deployments"), apps.Resource("deployments")) storageFactory.AddCohabitatingResources(extensions.Resource("daemonsets"), apps.Resource("daemonsets")) storageFactory.AddCohabitatingResources(extensions.Resource("replicasets"), apps.Resource("replicasets")) - storageFactory.AddCohabitatingResources(extensions.Resource("networkpolicies"), networking.Resource("networkpolicies")) for _, override := range s.Etcd.EtcdServersOverrides { tokens := strings.Split(override, "#") if len(tokens) != 2 { @@ -620,10 +613,11 @@ func defaultOptions(s *options.ServerRunOptions) error { if err := kubeoptions.DefaultAdvertiseAddress(s.GenericServerRunOptions, s.InsecureServing); err != nil { return err } - _, apiServerServiceIP, err := master.DefaultServiceIPRange(s.ServiceClusterIPRange) + serviceIPRange, apiServerServiceIP, err := master.DefaultServiceIPRange(s.ServiceClusterIPRange) if err != nil { return fmt.Errorf("error determining service IP ranges: %v", err) } + s.ServiceClusterIPRange = serviceIPRange if err := s.SecureServing.MaybeDefaultWithSelfSignedCerts(s.GenericServerRunOptions.AdvertiseAddress.String(), []string{"kubernetes.default.svc", "kubernetes.default", "kubernetes"}, []net.IP{apiServerServiceIP}); err != nil { return fmt.Errorf("error creating self-signed certificates: %v", err) } @@ -690,333 +684,333 @@ func readCAorNil(file string) ([]byte, error) { // PostProcessSpec adds removed definitions for backward compatibility func postProcessOpenAPISpecForBackwardCompatibility(s *spec.Swagger) (*spec.Swagger, error) { compatibilityMap := map[string]string{ - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReview": "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview", - "io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource": "io.k8s.api.core.v1.GitRepoVolumeSource", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ExternalAdmissionHookConfigurationList": "io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfigurationList", - "io.k8s.kubernetes.pkg.api.v1.EndpointPort": "io.k8s.api.core.v1.EndpointPort", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SupplementalGroupsStrategyOptions": "io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions", - "io.k8s.kubernetes.pkg.api.v1.PodStatus": "io.k8s.api.core.v1.PodStatus", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBindingList": "io.k8s.api.rbac.v1beta1.RoleBindingList", - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetSpec": "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec", - "io.k8s.kubernetes.pkg.api.v1.HTTPGetAction": "io.k8s.api.core.v1.HTTPGetAction", - "io.k8s.kubernetes.pkg.apis.authorization.v1.ResourceAttributes": "io.k8s.api.authorization.v1.ResourceAttributes", - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeList": "io.k8s.api.core.v1.PersistentVolumeList", - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobSpec": "io.k8s.api.batch.v2alpha1.CronJobSpec", - "io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource": "io.k8s.api.core.v1.CephFSVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.Affinity": "io.k8s.api.core.v1.Affinity", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.PolicyRule": "io.k8s.api.rbac.v1beta1.PolicyRule", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec": "io.k8s.api.extensions.v1beta1.DaemonSetSpec", - "io.k8s.kubernetes.pkg.api.v1.ProjectedVolumeSource": "io.k8s.api.core.v1.ProjectedVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.TCPSocketAction": "io.k8s.api.core.v1.TCPSocketAction", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet": "io.k8s.api.extensions.v1beta1.DaemonSet", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList": "io.k8s.api.extensions.v1beta1.IngressList", - "io.k8s.kubernetes.pkg.api.v1.PodSpec": "io.k8s.api.core.v1.PodSpec", - "io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReview": "io.k8s.api.authentication.v1.TokenReview", - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReview": "io.k8s.api.authorization.v1beta1.SubjectAccessReview", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleBinding": "io.k8s.api.rbac.v1alpha1.ClusterRoleBinding", - "io.k8s.kubernetes.pkg.api.v1.Node": "io.k8s.api.core.v1.Node", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ServiceReference": "io.k8s.api.admissionregistration.v1alpha1.ServiceReference", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus": "io.k8s.api.extensions.v1beta1.DeploymentStatus", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleRef": "io.k8s.api.rbac.v1beta1.RoleRef", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.Scale": "io.k8s.api.apps.v1beta1.Scale", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.InitializerConfiguration": "io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration", - "io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource": "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm": "io.k8s.api.core.v1.PreferredSchedulingTerm", - "io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec": "io.k8s.api.batch.v1.JobSpec", - "io.k8s.kubernetes.pkg.api.v1.EventSource": "io.k8s.api.core.v1.EventSource", - "io.k8s.kubernetes.pkg.api.v1.Container": "io.k8s.api.core.v1.Container", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.AdmissionHookClientConfig": "io.k8s.api.admissionregistration.v1alpha1.AdmissionHookClientConfig", - "io.k8s.kubernetes.pkg.api.v1.ResourceQuota": "io.k8s.api.core.v1.ResourceQuota", - "io.k8s.kubernetes.pkg.api.v1.SecretList": "io.k8s.api.core.v1.SecretList", - "io.k8s.kubernetes.pkg.api.v1.NodeSystemInfo": "io.k8s.api.core.v1.NodeSystemInfo", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.PolicyRule": "io.k8s.api.rbac.v1alpha1.PolicyRule", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec": "io.k8s.api.extensions.v1beta1.ReplicaSetSpec", - "io.k8s.kubernetes.pkg.api.v1.NodeStatus": "io.k8s.api.core.v1.NodeStatus", - "io.k8s.kubernetes.pkg.api.v1.ResourceQuotaList": "io.k8s.api.core.v1.ResourceQuotaList", - "io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource": "io.k8s.api.core.v1.HostPathVolumeSource", - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequest": "io.k8s.api.certificates.v1beta1.CertificateSigningRequest", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule": "io.k8s.api.extensions.v1beta1.IngressRule", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPeer": "io.k8s.api.extensions.v1beta1.NetworkPolicyPeer", - "io.k8s.kubernetes.pkg.apis.storage.v1.StorageClass": "io.k8s.api.storage.v1.StorageClass", - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPeer": "io.k8s.api.networking.v1.NetworkPolicyPeer", - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyIngressRule": "io.k8s.api.networking.v1.NetworkPolicyIngressRule", - "io.k8s.kubernetes.pkg.api.v1.StorageOSPersistentVolumeSource": "io.k8s.api.core.v1.StorageOSPersistentVolumeSource", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyIngressRule": "io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule", - "io.k8s.kubernetes.pkg.api.v1.PodAffinity": "io.k8s.api.core.v1.PodAffinity", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig": "io.k8s.api.extensions.v1beta1.RollbackConfig", - "io.k8s.kubernetes.pkg.api.v1.PodList": "io.k8s.api.core.v1.PodList", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus": "io.k8s.api.extensions.v1beta1.ScaleStatus", - "io.k8s.kubernetes.pkg.api.v1.ComponentCondition": "io.k8s.api.core.v1.ComponentCondition", - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestList": "io.k8s.api.certificates.v1beta1.CertificateSigningRequestList", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleBindingList": "io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerCondition": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscalerCondition", - "io.k8s.kubernetes.pkg.api.v1.ServiceList": "io.k8s.api.core.v1.ServiceList", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicy": "io.k8s.api.extensions.v1beta1.PodSecurityPolicy", - "io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition": "io.k8s.api.batch.v1.JobCondition", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStatus": "io.k8s.api.apps.v1beta1.DeploymentStatus", - "io.k8s.kubernetes.pkg.api.v1.Volume": "io.k8s.api.core.v1.Volume", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleBindingList": "io.k8s.api.rbac.v1alpha1.RoleBindingList", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Rule": "io.k8s.api.admissionregistration.v1alpha1.Rule", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.InitializerConfigurationList": "io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicy": "io.k8s.api.extensions.v1beta1.NetworkPolicy", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleList": "io.k8s.api.rbac.v1alpha1.ClusterRoleList", - "io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector": "io.k8s.api.core.v1.ObjectFieldSelector", - "io.k8s.kubernetes.pkg.api.v1.EventList": "io.k8s.api.core.v1.EventList", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.MetricStatus": "io.k8s.api.autoscaling.v2alpha1.MetricStatus", - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPort": "io.k8s.api.networking.v1.NetworkPolicyPort", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleList": "io.k8s.api.rbac.v1beta1.RoleList", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleList": "io.k8s.api.rbac.v1alpha1.RoleList", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStrategy": "io.k8s.api.apps.v1beta1.DeploymentStrategy", - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference": "io.k8s.api.autoscaling.v1.CrossVersionObjectReference", - "io.k8s.kubernetes.pkg.api.v1.ConfigMapProjection": "io.k8s.api.core.v1.ConfigMapProjection", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.CrossVersionObjectReference": "io.k8s.api.autoscaling.v2alpha1.CrossVersionObjectReference", - "io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus": "io.k8s.api.core.v1.LoadBalancerStatus", - "io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource": "io.k8s.api.core.v1.ISCSIVolumeSource", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevisionList": "io.k8s.api.apps.v1beta1.ControllerRevisionList", - "io.k8s.kubernetes.pkg.api.v1.EndpointSubset": "io.k8s.api.core.v1.EndpointSubset", - "io.k8s.kubernetes.pkg.api.v1.SELinuxOptions": "io.k8s.api.core.v1.SELinuxOptions", - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource": "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.MetricSpec": "io.k8s.api.autoscaling.v2alpha1.MetricSpec", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetList": "io.k8s.api.apps.v1beta1.StatefulSetList", - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.ResourceAttributes": "io.k8s.api.authorization.v1beta1.ResourceAttributes", - "io.k8s.kubernetes.pkg.api.v1.Capabilities": "io.k8s.api.core.v1.Capabilities", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment": "io.k8s.api.extensions.v1beta1.Deployment", - "io.k8s.kubernetes.pkg.api.v1.Binding": "io.k8s.api.core.v1.Binding", - "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerList": "io.k8s.api.core.v1.ReplicationControllerList", - "io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReview": "io.k8s.api.authorization.v1.SelfSubjectAccessReview", - "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.UserInfo": "io.k8s.api.authentication.v1beta1.UserInfo", - "io.k8s.kubernetes.pkg.api.v1.HostAlias": "io.k8s.api.core.v1.HostAlias", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetUpdateStrategy": "io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec": "io.k8s.api.extensions.v1beta1.IngressSpec", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition": "io.k8s.api.extensions.v1beta1.DeploymentCondition", - "io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource": "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ExternalAdmissionHook": "io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHook", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale": "io.k8s.api.extensions.v1beta1.Scale", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerStatus": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscalerStatus", - "io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource": "io.k8s.api.core.v1.FlexVolumeSource", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment": "io.k8s.api.extensions.v1beta1.RollingUpdateDeployment", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.ObjectMetricStatus": "io.k8s.api.autoscaling.v2alpha1.ObjectMetricStatus", - "io.k8s.kubernetes.pkg.api.v1.Event": "io.k8s.api.core.v1.Event", - "io.k8s.kubernetes.pkg.api.v1.ResourceQuotaSpec": "io.k8s.api.core.v1.ResourceQuotaSpec", - "io.k8s.kubernetes.pkg.api.v1.Handler": "io.k8s.api.core.v1.Handler", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend": "io.k8s.api.extensions.v1beta1.IngressBackend", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.Role": "io.k8s.api.rbac.v1alpha1.Role", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.ObjectMetricSource": "io.k8s.api.autoscaling.v2alpha1.ObjectMetricSource", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.ResourceMetricStatus": "io.k8s.api.autoscaling.v2alpha1.ResourceMetricStatus", - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec": "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec", - "io.k8s.kubernetes.pkg.api.v1.Lifecycle": "io.k8s.api.core.v1.Lifecycle", - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestStatus": "io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus", - "io.k8s.kubernetes.pkg.api.v1.ContainerStateRunning": "io.k8s.api.core.v1.ContainerStateRunning", - "io.k8s.kubernetes.pkg.api.v1.ServiceAccountList": "io.k8s.api.core.v1.ServiceAccountList", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HostPortRange": "io.k8s.api.extensions.v1beta1.HostPortRange", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevision": "io.k8s.api.apps.v1beta1.ControllerRevision", - "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerSpec": "io.k8s.api.core.v1.ReplicationControllerSpec", - "io.k8s.kubernetes.pkg.api.v1.ContainerStateTerminated": "io.k8s.api.core.v1.ContainerStateTerminated", - "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerStatus": "io.k8s.api.core.v1.ReplicationControllerStatus", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList": "io.k8s.api.extensions.v1beta1.DaemonSetList", - "io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReviewSpec": "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", - "io.k8s.kubernetes.pkg.api.v1.ComponentStatusList": "io.k8s.api.core.v1.ComponentStatusList", - "io.k8s.kubernetes.pkg.api.v1.ContainerStateWaiting": "io.k8s.api.core.v1.ContainerStateWaiting", - "io.k8s.kubernetes.pkg.api.v1.VolumeMount": "io.k8s.api.core.v1.VolumeMount", - "io.k8s.kubernetes.pkg.api.v1.Secret": "io.k8s.api.core.v1.Secret", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleList": "io.k8s.api.rbac.v1beta1.ClusterRoleList", - "io.k8s.kubernetes.pkg.api.v1.ConfigMapList": "io.k8s.api.core.v1.ConfigMapList", - "io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClassList": "io.k8s.api.storage.v1beta1.StorageClassList", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath": "io.k8s.api.extensions.v1beta1.HTTPIngressPath", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRole": "io.k8s.api.rbac.v1alpha1.ClusterRole", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.ResourceMetricSource": "io.k8s.api.autoscaling.v2alpha1.ResourceMetricSource", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback": "io.k8s.api.extensions.v1beta1.DeploymentRollback", - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimSpec": "io.k8s.api.core.v1.PersistentVolumeClaimSpec", - "io.k8s.kubernetes.pkg.api.v1.ReplicationController": "io.k8s.api.core.v1.ReplicationController", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetSpec": "io.k8s.api.apps.v1beta1.StatefulSetSpec", - "io.k8s.kubernetes.pkg.api.v1.SecurityContext": "io.k8s.api.core.v1.SecurityContext", - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicySpec": "io.k8s.api.networking.v1.NetworkPolicySpec", - "io.k8s.kubernetes.pkg.api.v1.LocalObjectReference": "io.k8s.api.core.v1.LocalObjectReference", - "io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource": "io.k8s.api.core.v1.RBDVolumeSource", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicySpec": "io.k8s.api.extensions.v1beta1.NetworkPolicySpec", - "io.k8s.kubernetes.pkg.api.v1.KeyToPath": "io.k8s.api.core.v1.KeyToPath", - "io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm": "io.k8s.api.core.v1.WeightedPodAffinityTerm", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.PodsMetricStatus": "io.k8s.api.autoscaling.v2alpha1.PodsMetricStatus", - "io.k8s.kubernetes.pkg.api.v1.NodeAddress": "io.k8s.api.core.v1.NodeAddress", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress": "io.k8s.api.extensions.v1beta1.Ingress", - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudget": "io.k8s.api.policy.v1beta1.PodDisruptionBudget", - "io.k8s.kubernetes.pkg.api.v1.ServicePort": "io.k8s.api.core.v1.ServicePort", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IDRange": "io.k8s.api.extensions.v1beta1.IDRange", - "io.k8s.kubernetes.pkg.api.v1.SecretEnvSource": "io.k8s.api.core.v1.SecretEnvSource", - "io.k8s.kubernetes.pkg.api.v1.NodeSelector": "io.k8s.api.core.v1.NodeSelector", - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimStatus": "io.k8s.api.core.v1.PersistentVolumeClaimStatus", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentSpec": "io.k8s.api.apps.v1beta1.DeploymentSpec", - "io.k8s.kubernetes.pkg.apis.authorization.v1.NonResourceAttributes": "io.k8s.api.authorization.v1.NonResourceAttributes", - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleStatus": "io.k8s.api.autoscaling.v1.ScaleStatus", - "io.k8s.kubernetes.pkg.api.v1.PodCondition": "io.k8s.api.core.v1.PodCondition", - "io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec": "io.k8s.api.core.v1.PodTemplateSpec", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSet": "io.k8s.api.apps.v1beta1.StatefulSet", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPort": "io.k8s.api.extensions.v1beta1.NetworkPolicyPort", - "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReview": "io.k8s.api.authentication.v1beta1.TokenReview", - "io.k8s.kubernetes.pkg.api.v1.LimitRangeSpec": "io.k8s.api.core.v1.LimitRangeSpec", - "io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource": "io.k8s.api.core.v1.FlockerVolumeSource", - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.Eviction": "io.k8s.api.policy.v1beta1.Eviction", - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimList": "io.k8s.api.core.v1.PersistentVolumeClaimList", - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestCondition": "io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition", - "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile": "io.k8s.api.core.v1.DownwardAPIVolumeFile", - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.LocalSubjectAccessReview": "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleStatus": "io.k8s.api.apps.v1beta1.ScaleStatus", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue": "io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue", - "io.k8s.kubernetes.pkg.apis.batch.v1.Job": "io.k8s.api.batch.v1.Job", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration": "io.k8s.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBinding": "io.k8s.api.rbac.v1beta1.RoleBinding", - "io.k8s.kubernetes.pkg.api.v1.FCVolumeSource": "io.k8s.api.core.v1.FCVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.EndpointAddress": "io.k8s.api.core.v1.EndpointAddress", - "io.k8s.kubernetes.pkg.api.v1.ContainerPort": "io.k8s.api.core.v1.ContainerPort", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBinding": "io.k8s.api.rbac.v1beta1.ClusterRoleBinding", - "io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource": "io.k8s.api.core.v1.GlusterfsVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.ResourceRequirements": "io.k8s.api.core.v1.ResourceRequirements", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateDeployment": "io.k8s.api.apps.v1beta1.RollingUpdateDeployment", - "io.k8s.kubernetes.pkg.api.v1.NamespaceStatus": "io.k8s.api.core.v1.NamespaceStatus", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RunAsUserStrategyOptions": "io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions", - "io.k8s.kubernetes.pkg.api.v1.Namespace": "io.k8s.api.core.v1.Namespace", - "io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewSpec": "io.k8s.api.authorization.v1.SubjectAccessReviewSpec", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscaler": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscaler", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition": "io.k8s.api.extensions.v1beta1.ReplicaSetCondition", - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus": "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", - "io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewStatus": "io.k8s.api.authentication.v1.TokenReviewStatus", - "io.k8s.kubernetes.pkg.api.v1.PersistentVolume": "io.k8s.api.core.v1.PersistentVolume", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.FSGroupStrategyOptions": "io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions", - "io.k8s.kubernetes.pkg.api.v1.PodSecurityContext": "io.k8s.api.core.v1.PodSecurityContext", - "io.k8s.kubernetes.pkg.api.v1.PodTemplate": "io.k8s.api.core.v1.PodTemplate", - "io.k8s.kubernetes.pkg.apis.authorization.v1.LocalSubjectAccessReview": "io.k8s.api.authorization.v1.LocalSubjectAccessReview", - "io.k8s.kubernetes.pkg.api.v1.StorageOSVolumeSource": "io.k8s.api.core.v1.StorageOSVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm": "io.k8s.api.core.v1.NodeSelectorTerm", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Role": "io.k8s.api.rbac.v1beta1.Role", - "io.k8s.kubernetes.pkg.api.v1.ContainerStatus": "io.k8s.api.core.v1.ContainerStatus", - "io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewStatus": "io.k8s.api.authorization.v1.SubjectAccessReviewStatus", - "io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewSpec": "io.k8s.api.authentication.v1.TokenReviewSpec", - "io.k8s.kubernetes.pkg.api.v1.ConfigMap": "io.k8s.api.core.v1.ConfigMap", - "io.k8s.kubernetes.pkg.api.v1.ServiceStatus": "io.k8s.api.core.v1.ServiceStatus", - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReviewSpec": "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec", - "io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource": "io.k8s.api.core.v1.CinderVolumeSource", - "io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPresetSpec": "io.k8s.api.settings.v1alpha1.PodPresetSpec", - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.NonResourceAttributes": "io.k8s.api.authorization.v1beta1.NonResourceAttributes", - "io.k8s.kubernetes.pkg.api.v1.ContainerImage": "io.k8s.api.core.v1.ContainerImage", - "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerCondition": "io.k8s.api.core.v1.ReplicationControllerCondition", - "io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource": "io.k8s.api.core.v1.EmptyDirVolumeSource", - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList": "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList", - "io.k8s.kubernetes.pkg.apis.batch.v1.JobList": "io.k8s.api.batch.v1.JobList", - "io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource": "io.k8s.api.core.v1.NFSVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.Pod": "io.k8s.api.core.v1.Pod", - "io.k8s.kubernetes.pkg.api.v1.ObjectReference": "io.k8s.api.core.v1.ObjectReference", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.Deployment": "io.k8s.api.apps.v1beta1.Deployment", - "io.k8s.kubernetes.pkg.apis.storage.v1.StorageClassList": "io.k8s.api.storage.v1.StorageClassList", - "io.k8s.kubernetes.pkg.api.v1.AttachedVolume": "io.k8s.api.core.v1.AttachedVolume", - "io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource": "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobList": "io.k8s.api.batch.v2alpha1.CronJobList", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec": "io.k8s.api.extensions.v1beta1.DeploymentSpec", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicyList": "io.k8s.api.extensions.v1beta1.PodSecurityPolicyList", - "io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm": "io.k8s.api.core.v1.PodAffinityTerm", - "io.k8s.kubernetes.pkg.api.v1.HTTPHeader": "io.k8s.api.core.v1.HTTPHeader", - "io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector": "io.k8s.api.core.v1.ConfigMapKeySelector", - "io.k8s.kubernetes.pkg.api.v1.SecretKeySelector": "io.k8s.api.core.v1.SecretKeySelector", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList": "io.k8s.api.extensions.v1beta1.DeploymentList", - "io.k8s.kubernetes.pkg.apis.authentication.v1.UserInfo": "io.k8s.api.authentication.v1.UserInfo", - "io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress": "io.k8s.api.core.v1.LoadBalancerIngress", - "io.k8s.kubernetes.pkg.api.v1.DaemonEndpoint": "io.k8s.api.core.v1.DaemonEndpoint", - "io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement": "io.k8s.api.core.v1.NodeSelectorRequirement", - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobStatus": "io.k8s.api.batch.v2alpha1.CronJobStatus", - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.Scale": "io.k8s.api.autoscaling.v1.Scale", - "io.k8s.kubernetes.pkg.api.v1.ScaleIOVolumeSource": "io.k8s.api.core.v1.ScaleIOVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity": "io.k8s.api.core.v1.PodAntiAffinity", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicySpec": "io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec", - "io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPresetList": "io.k8s.api.settings.v1alpha1.PodPresetList", - "io.k8s.kubernetes.pkg.api.v1.NodeAffinity": "io.k8s.api.core.v1.NodeAffinity", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentCondition": "io.k8s.api.apps.v1beta1.DeploymentCondition", - "io.k8s.kubernetes.pkg.api.v1.NodeSpec": "io.k8s.api.core.v1.NodeSpec", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetStatus": "io.k8s.api.apps.v1beta1.StatefulSetStatus", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.RuleWithOperations": "io.k8s.api.admissionregistration.v1alpha1.RuleWithOperations", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus": "io.k8s.api.extensions.v1beta1.IngressStatus", - "io.k8s.kubernetes.pkg.api.v1.LimitRangeList": "io.k8s.api.core.v1.LimitRangeList", - "io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource": "io.k8s.api.core.v1.AzureDiskVolumeSource", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus": "io.k8s.api.extensions.v1beta1.ReplicaSetStatus", - "io.k8s.kubernetes.pkg.api.v1.ComponentStatus": "io.k8s.api.core.v1.ComponentStatus", - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler": "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler", - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicy": "io.k8s.api.networking.v1.NetworkPolicy", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollbackConfig": "io.k8s.api.apps.v1beta1.RollbackConfig", - "io.k8s.kubernetes.pkg.api.v1.NodeCondition": "io.k8s.api.core.v1.NodeCondition", - "io.k8s.kubernetes.pkg.api.v1.DownwardAPIProjection": "io.k8s.api.core.v1.DownwardAPIProjection", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SELinuxStrategyOptions": "io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions", - "io.k8s.kubernetes.pkg.api.v1.NamespaceSpec": "io.k8s.api.core.v1.NamespaceSpec", - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestSpec": "io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec", - "io.k8s.kubernetes.pkg.api.v1.ServiceSpec": "io.k8s.api.core.v1.ServiceSpec", - "io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReview": "io.k8s.api.authorization.v1.SubjectAccessReview", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentList": "io.k8s.api.apps.v1beta1.DeploymentList", - "io.k8s.kubernetes.pkg.api.v1.Toleration": "io.k8s.api.core.v1.Toleration", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyList": "io.k8s.api.extensions.v1beta1.NetworkPolicyList", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.PodsMetricSource": "io.k8s.api.autoscaling.v2alpha1.PodsMetricSource", - "io.k8s.kubernetes.pkg.api.v1.EnvFromSource": "io.k8s.api.core.v1.EnvFromSource", - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleSpec": "io.k8s.api.autoscaling.v1.ScaleSpec", - "io.k8s.kubernetes.pkg.api.v1.PodTemplateList": "io.k8s.api.core.v1.PodTemplateList", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerSpec": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscalerSpec", - "io.k8s.kubernetes.pkg.api.v1.SecretProjection": "io.k8s.api.core.v1.SecretProjection", - "io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector": "io.k8s.api.core.v1.ResourceFieldSelector", - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeSpec": "io.k8s.api.core.v1.PersistentVolumeSpec", - "io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource": "io.k8s.api.core.v1.ConfigMapVolumeSource", - "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerList": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscalerList", - "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewStatus": "io.k8s.api.authentication.v1beta1.TokenReviewStatus", - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyList": "io.k8s.api.networking.v1.NetworkPolicyList", - "io.k8s.kubernetes.pkg.api.v1.Endpoints": "io.k8s.api.core.v1.Endpoints", - "io.k8s.kubernetes.pkg.api.v1.LimitRangeItem": "io.k8s.api.core.v1.LimitRangeItem", - "io.k8s.kubernetes.pkg.api.v1.ServiceAccount": "io.k8s.api.core.v1.ServiceAccount", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec": "io.k8s.api.extensions.v1beta1.ScaleSpec", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS": "io.k8s.api.extensions.v1beta1.IngressTLS", - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJob": "io.k8s.api.batch.v2alpha1.CronJob", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.Subject": "io.k8s.api.rbac.v1alpha1.Subject", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus": "io.k8s.api.extensions.v1beta1.DaemonSetStatus", - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetList": "io.k8s.api.policy.v1beta1.PodDisruptionBudgetList", - "io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource": "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleRef": "io.k8s.api.rbac.v1alpha1.RoleRef", - "io.k8s.kubernetes.pkg.api.v1.PortworxVolumeSource": "io.k8s.api.core.v1.PortworxVolumeSource", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList": "io.k8s.api.extensions.v1beta1.ReplicaSetList", - "io.k8s.kubernetes.pkg.api.v1.VolumeProjection": "io.k8s.api.core.v1.VolumeProjection", - "io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClass": "io.k8s.api.storage.v1beta1.StorageClass", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet": "io.k8s.api.extensions.v1beta1.ReplicaSet", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentRollback": "io.k8s.api.apps.v1beta1.DeploymentRollback", - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleBinding": "io.k8s.api.rbac.v1alpha1.RoleBinding", - "io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource": "io.k8s.api.core.v1.AzureFileVolumeSource", - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetStatus": "io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus", - "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewSpec": "io.k8s.api.authentication.v1beta1.TokenReviewSpec", - "io.k8s.kubernetes.pkg.api.v1.EndpointsList": "io.k8s.api.core.v1.EndpointsList", - "io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource": "io.k8s.api.core.v1.ConfigMapEnvSource", - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.JobTemplateSpec": "io.k8s.api.batch.v2alpha1.JobTemplateSpec", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetUpdateStrategy": "io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy", - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewSpec": "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", - "io.k8s.kubernetes.pkg.api.v1.LocalVolumeSource": "io.k8s.api.core.v1.LocalVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.ContainerState": "io.k8s.api.core.v1.ContainerState", - "io.k8s.kubernetes.pkg.api.v1.Service": "io.k8s.api.core.v1.Service", - "io.k8s.kubernetes.pkg.api.v1.ExecAction": "io.k8s.api.core.v1.ExecAction", - "io.k8s.kubernetes.pkg.api.v1.Taint": "io.k8s.api.core.v1.Taint", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Subject": "io.k8s.api.rbac.v1beta1.Subject", - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewStatus": "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBindingList": "io.k8s.api.rbac.v1beta1.ClusterRoleBindingList", - "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource": "io.k8s.api.core.v1.DownwardAPIVolumeSource", - "io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus": "io.k8s.api.batch.v1.JobStatus", - "io.k8s.kubernetes.pkg.api.v1.ResourceQuotaStatus": "io.k8s.api.core.v1.ResourceQuotaStatus", - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeStatus": "io.k8s.api.core.v1.PersistentVolumeStatus", - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaim": "io.k8s.api.core.v1.PersistentVolumeClaim", - "io.k8s.kubernetes.pkg.api.v1.NodeDaemonEndpoints": "io.k8s.api.core.v1.NodeDaemonEndpoints", - "io.k8s.kubernetes.pkg.api.v1.EnvVar": "io.k8s.api.core.v1.EnvVar", - "io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource": "io.k8s.api.core.v1.SecretVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.EnvVarSource": "io.k8s.api.core.v1.EnvVarSource", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateStatefulSetStrategy": "io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy", - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRole": "io.k8s.api.rbac.v1beta1.ClusterRole", - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Initializer": "io.k8s.api.admissionregistration.v1alpha1.Initializer", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy": "io.k8s.api.extensions.v1beta1.DeploymentStrategy", - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleSpec": "io.k8s.api.apps.v1beta1.ScaleSpec", - "io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPreset": "io.k8s.api.settings.v1alpha1.PodPreset", - "io.k8s.kubernetes.pkg.api.v1.Probe": "io.k8s.api.core.v1.Probe", - "io.k8s.kubernetes.pkg.api.v1.NamespaceList": "io.k8s.api.core.v1.NamespaceList", - "io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource": "io.k8s.api.core.v1.QuobyteVolumeSource", - "io.k8s.kubernetes.pkg.api.v1.NodeList": "io.k8s.api.core.v1.NodeList", - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDaemonSet": "io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet", - "io.k8s.kubernetes.pkg.api.v1.LimitRange": "io.k8s.api.core.v1.LimitRange", + "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReview": "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview", + "io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource": "io.k8s.api.core.v1.GitRepoVolumeSource", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ValidatingWebhookConfigurationList": "io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfigurationList", + "io.k8s.kubernetes.pkg.api.v1.EndpointPort": "io.k8s.api.core.v1.EndpointPort", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SupplementalGroupsStrategyOptions": "io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions", + "io.k8s.kubernetes.pkg.api.v1.PodStatus": "io.k8s.api.core.v1.PodStatus", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBindingList": "io.k8s.api.rbac.v1beta1.RoleBindingList", + "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetSpec": "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec", + "io.k8s.kubernetes.pkg.api.v1.HTTPGetAction": "io.k8s.api.core.v1.HTTPGetAction", + "io.k8s.kubernetes.pkg.apis.authorization.v1.ResourceAttributes": "io.k8s.api.authorization.v1.ResourceAttributes", + "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeList": "io.k8s.api.core.v1.PersistentVolumeList", + "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobSpec": "io.k8s.api.batch.v2alpha1.CronJobSpec", + "io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource": "io.k8s.api.core.v1.CephFSVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.Affinity": "io.k8s.api.core.v1.Affinity", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.PolicyRule": "io.k8s.api.rbac.v1beta1.PolicyRule", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec": "io.k8s.api.extensions.v1beta1.DaemonSetSpec", + "io.k8s.kubernetes.pkg.api.v1.ProjectedVolumeSource": "io.k8s.api.core.v1.ProjectedVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.TCPSocketAction": "io.k8s.api.core.v1.TCPSocketAction", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet": "io.k8s.api.extensions.v1beta1.DaemonSet", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList": "io.k8s.api.extensions.v1beta1.IngressList", + "io.k8s.kubernetes.pkg.api.v1.PodSpec": "io.k8s.api.core.v1.PodSpec", + "io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReview": "io.k8s.api.authentication.v1.TokenReview", + "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReview": "io.k8s.api.authorization.v1beta1.SubjectAccessReview", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleBinding": "io.k8s.api.rbac.v1alpha1.ClusterRoleBinding", + "io.k8s.kubernetes.pkg.api.v1.Node": "io.k8s.api.core.v1.Node", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ServiceReference": "io.k8s.api.admissionregistration.v1alpha1.ServiceReference", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus": "io.k8s.api.extensions.v1beta1.DeploymentStatus", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleRef": "io.k8s.api.rbac.v1beta1.RoleRef", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.Scale": "io.k8s.api.apps.v1beta1.Scale", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.InitializerConfiguration": "io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration", + "io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource": "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm": "io.k8s.api.core.v1.PreferredSchedulingTerm", + "io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec": "io.k8s.api.batch.v1.JobSpec", + "io.k8s.kubernetes.pkg.api.v1.EventSource": "io.k8s.api.core.v1.EventSource", + "io.k8s.kubernetes.pkg.api.v1.Container": "io.k8s.api.core.v1.Container", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.AdmissionHookClientConfig": "io.k8s.api.admissionregistration.v1alpha1.AdmissionHookClientConfig", + "io.k8s.kubernetes.pkg.api.v1.ResourceQuota": "io.k8s.api.core.v1.ResourceQuota", + "io.k8s.kubernetes.pkg.api.v1.SecretList": "io.k8s.api.core.v1.SecretList", + "io.k8s.kubernetes.pkg.api.v1.NodeSystemInfo": "io.k8s.api.core.v1.NodeSystemInfo", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.PolicyRule": "io.k8s.api.rbac.v1alpha1.PolicyRule", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec": "io.k8s.api.extensions.v1beta1.ReplicaSetSpec", + "io.k8s.kubernetes.pkg.api.v1.NodeStatus": "io.k8s.api.core.v1.NodeStatus", + "io.k8s.kubernetes.pkg.api.v1.ResourceQuotaList": "io.k8s.api.core.v1.ResourceQuotaList", + "io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource": "io.k8s.api.core.v1.HostPathVolumeSource", + "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequest": "io.k8s.api.certificates.v1beta1.CertificateSigningRequest", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule": "io.k8s.api.extensions.v1beta1.IngressRule", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPeer": "io.k8s.api.extensions.v1beta1.NetworkPolicyPeer", + "io.k8s.kubernetes.pkg.apis.storage.v1.StorageClass": "io.k8s.api.storage.v1.StorageClass", + "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPeer": "io.k8s.api.networking.v1.NetworkPolicyPeer", + "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyIngressRule": "io.k8s.api.networking.v1.NetworkPolicyIngressRule", + "io.k8s.kubernetes.pkg.api.v1.StorageOSPersistentVolumeSource": "io.k8s.api.core.v1.StorageOSPersistentVolumeSource", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyIngressRule": "io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule", + "io.k8s.kubernetes.pkg.api.v1.PodAffinity": "io.k8s.api.core.v1.PodAffinity", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig": "io.k8s.api.extensions.v1beta1.RollbackConfig", + "io.k8s.kubernetes.pkg.api.v1.PodList": "io.k8s.api.core.v1.PodList", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus": "io.k8s.api.extensions.v1beta1.ScaleStatus", + "io.k8s.kubernetes.pkg.api.v1.ComponentCondition": "io.k8s.api.core.v1.ComponentCondition", + "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestList": "io.k8s.api.certificates.v1beta1.CertificateSigningRequestList", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleBindingList": "io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerCondition": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscalerCondition", + "io.k8s.kubernetes.pkg.api.v1.ServiceList": "io.k8s.api.core.v1.ServiceList", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicy": "io.k8s.api.extensions.v1beta1.PodSecurityPolicy", + "io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition": "io.k8s.api.batch.v1.JobCondition", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStatus": "io.k8s.api.apps.v1beta1.DeploymentStatus", + "io.k8s.kubernetes.pkg.api.v1.Volume": "io.k8s.api.core.v1.Volume", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleBindingList": "io.k8s.api.rbac.v1alpha1.RoleBindingList", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Rule": "io.k8s.api.admissionregistration.v1alpha1.Rule", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.InitializerConfigurationList": "io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicy": "io.k8s.api.extensions.v1beta1.NetworkPolicy", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleList": "io.k8s.api.rbac.v1alpha1.ClusterRoleList", + "io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector": "io.k8s.api.core.v1.ObjectFieldSelector", + "io.k8s.kubernetes.pkg.api.v1.EventList": "io.k8s.api.core.v1.EventList", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.MetricStatus": "io.k8s.api.autoscaling.v2alpha1.MetricStatus", + "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPort": "io.k8s.api.networking.v1.NetworkPolicyPort", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleList": "io.k8s.api.rbac.v1beta1.RoleList", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleList": "io.k8s.api.rbac.v1alpha1.RoleList", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStrategy": "io.k8s.api.apps.v1beta1.DeploymentStrategy", + "io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference": "io.k8s.api.autoscaling.v1.CrossVersionObjectReference", + "io.k8s.kubernetes.pkg.api.v1.ConfigMapProjection": "io.k8s.api.core.v1.ConfigMapProjection", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.CrossVersionObjectReference": "io.k8s.api.autoscaling.v2alpha1.CrossVersionObjectReference", + "io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus": "io.k8s.api.core.v1.LoadBalancerStatus", + "io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource": "io.k8s.api.core.v1.ISCSIVolumeSource", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevisionList": "io.k8s.api.apps.v1beta1.ControllerRevisionList", + "io.k8s.kubernetes.pkg.api.v1.EndpointSubset": "io.k8s.api.core.v1.EndpointSubset", + "io.k8s.kubernetes.pkg.api.v1.SELinuxOptions": "io.k8s.api.core.v1.SELinuxOptions", + "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource": "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.MetricSpec": "io.k8s.api.autoscaling.v2alpha1.MetricSpec", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetList": "io.k8s.api.apps.v1beta1.StatefulSetList", + "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.ResourceAttributes": "io.k8s.api.authorization.v1beta1.ResourceAttributes", + "io.k8s.kubernetes.pkg.api.v1.Capabilities": "io.k8s.api.core.v1.Capabilities", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment": "io.k8s.api.extensions.v1beta1.Deployment", + "io.k8s.kubernetes.pkg.api.v1.Binding": "io.k8s.api.core.v1.Binding", + "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerList": "io.k8s.api.core.v1.ReplicationControllerList", + "io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReview": "io.k8s.api.authorization.v1.SelfSubjectAccessReview", + "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.UserInfo": "io.k8s.api.authentication.v1beta1.UserInfo", + "io.k8s.kubernetes.pkg.api.v1.HostAlias": "io.k8s.api.core.v1.HostAlias", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetUpdateStrategy": "io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec": "io.k8s.api.extensions.v1beta1.IngressSpec", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition": "io.k8s.api.extensions.v1beta1.DeploymentCondition", + "io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource": "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Webhook": "io.k8s.api.admissionregistration.v1alpha1.Webhook", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale": "io.k8s.api.extensions.v1beta1.Scale", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerStatus": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscalerStatus", + "io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource": "io.k8s.api.core.v1.FlexVolumeSource", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment": "io.k8s.api.extensions.v1beta1.RollingUpdateDeployment", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.ObjectMetricStatus": "io.k8s.api.autoscaling.v2alpha1.ObjectMetricStatus", + "io.k8s.kubernetes.pkg.api.v1.Event": "io.k8s.api.core.v1.Event", + "io.k8s.kubernetes.pkg.api.v1.ResourceQuotaSpec": "io.k8s.api.core.v1.ResourceQuotaSpec", + "io.k8s.kubernetes.pkg.api.v1.Handler": "io.k8s.api.core.v1.Handler", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend": "io.k8s.api.extensions.v1beta1.IngressBackend", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.Role": "io.k8s.api.rbac.v1alpha1.Role", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.ObjectMetricSource": "io.k8s.api.autoscaling.v2alpha1.ObjectMetricSource", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.ResourceMetricStatus": "io.k8s.api.autoscaling.v2alpha1.ResourceMetricStatus", + "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec": "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec", + "io.k8s.kubernetes.pkg.api.v1.Lifecycle": "io.k8s.api.core.v1.Lifecycle", + "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestStatus": "io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus", + "io.k8s.kubernetes.pkg.api.v1.ContainerStateRunning": "io.k8s.api.core.v1.ContainerStateRunning", + "io.k8s.kubernetes.pkg.api.v1.ServiceAccountList": "io.k8s.api.core.v1.ServiceAccountList", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HostPortRange": "io.k8s.api.extensions.v1beta1.HostPortRange", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevision": "io.k8s.api.apps.v1beta1.ControllerRevision", + "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerSpec": "io.k8s.api.core.v1.ReplicationControllerSpec", + "io.k8s.kubernetes.pkg.api.v1.ContainerStateTerminated": "io.k8s.api.core.v1.ContainerStateTerminated", + "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerStatus": "io.k8s.api.core.v1.ReplicationControllerStatus", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList": "io.k8s.api.extensions.v1beta1.DaemonSetList", + "io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReviewSpec": "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", + "io.k8s.kubernetes.pkg.api.v1.ComponentStatusList": "io.k8s.api.core.v1.ComponentStatusList", + "io.k8s.kubernetes.pkg.api.v1.ContainerStateWaiting": "io.k8s.api.core.v1.ContainerStateWaiting", + "io.k8s.kubernetes.pkg.api.v1.VolumeMount": "io.k8s.api.core.v1.VolumeMount", + "io.k8s.kubernetes.pkg.api.v1.Secret": "io.k8s.api.core.v1.Secret", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleList": "io.k8s.api.rbac.v1beta1.ClusterRoleList", + "io.k8s.kubernetes.pkg.api.v1.ConfigMapList": "io.k8s.api.core.v1.ConfigMapList", + "io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClassList": "io.k8s.api.storage.v1beta1.StorageClassList", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath": "io.k8s.api.extensions.v1beta1.HTTPIngressPath", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRole": "io.k8s.api.rbac.v1alpha1.ClusterRole", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.ResourceMetricSource": "io.k8s.api.autoscaling.v2alpha1.ResourceMetricSource", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback": "io.k8s.api.extensions.v1beta1.DeploymentRollback", + "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimSpec": "io.k8s.api.core.v1.PersistentVolumeClaimSpec", + "io.k8s.kubernetes.pkg.api.v1.ReplicationController": "io.k8s.api.core.v1.ReplicationController", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetSpec": "io.k8s.api.apps.v1beta1.StatefulSetSpec", + "io.k8s.kubernetes.pkg.api.v1.SecurityContext": "io.k8s.api.core.v1.SecurityContext", + "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicySpec": "io.k8s.api.networking.v1.NetworkPolicySpec", + "io.k8s.kubernetes.pkg.api.v1.LocalObjectReference": "io.k8s.api.core.v1.LocalObjectReference", + "io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource": "io.k8s.api.core.v1.RBDVolumeSource", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicySpec": "io.k8s.api.extensions.v1beta1.NetworkPolicySpec", + "io.k8s.kubernetes.pkg.api.v1.KeyToPath": "io.k8s.api.core.v1.KeyToPath", + "io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm": "io.k8s.api.core.v1.WeightedPodAffinityTerm", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.PodsMetricStatus": "io.k8s.api.autoscaling.v2alpha1.PodsMetricStatus", + "io.k8s.kubernetes.pkg.api.v1.NodeAddress": "io.k8s.api.core.v1.NodeAddress", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress": "io.k8s.api.extensions.v1beta1.Ingress", + "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudget": "io.k8s.api.policy.v1beta1.PodDisruptionBudget", + "io.k8s.kubernetes.pkg.api.v1.ServicePort": "io.k8s.api.core.v1.ServicePort", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IDRange": "io.k8s.api.extensions.v1beta1.IDRange", + "io.k8s.kubernetes.pkg.api.v1.SecretEnvSource": "io.k8s.api.core.v1.SecretEnvSource", + "io.k8s.kubernetes.pkg.api.v1.NodeSelector": "io.k8s.api.core.v1.NodeSelector", + "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimStatus": "io.k8s.api.core.v1.PersistentVolumeClaimStatus", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentSpec": "io.k8s.api.apps.v1beta1.DeploymentSpec", + "io.k8s.kubernetes.pkg.apis.authorization.v1.NonResourceAttributes": "io.k8s.api.authorization.v1.NonResourceAttributes", + "io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleStatus": "io.k8s.api.autoscaling.v1.ScaleStatus", + "io.k8s.kubernetes.pkg.api.v1.PodCondition": "io.k8s.api.core.v1.PodCondition", + "io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec": "io.k8s.api.core.v1.PodTemplateSpec", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSet": "io.k8s.api.apps.v1beta1.StatefulSet", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPort": "io.k8s.api.extensions.v1beta1.NetworkPolicyPort", + "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReview": "io.k8s.api.authentication.v1beta1.TokenReview", + "io.k8s.kubernetes.pkg.api.v1.LimitRangeSpec": "io.k8s.api.core.v1.LimitRangeSpec", + "io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource": "io.k8s.api.core.v1.FlockerVolumeSource", + "io.k8s.kubernetes.pkg.apis.policy.v1beta1.Eviction": "io.k8s.api.policy.v1beta1.Eviction", + "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimList": "io.k8s.api.core.v1.PersistentVolumeClaimList", + "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestCondition": "io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition", + "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile": "io.k8s.api.core.v1.DownwardAPIVolumeFile", + "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.LocalSubjectAccessReview": "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleStatus": "io.k8s.api.apps.v1beta1.ScaleStatus", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue": "io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue", + "io.k8s.kubernetes.pkg.apis.batch.v1.Job": "io.k8s.api.batch.v1.Job", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.ValidatingWebhookConfiguration": "io.k8s.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBinding": "io.k8s.api.rbac.v1beta1.RoleBinding", + "io.k8s.kubernetes.pkg.api.v1.FCVolumeSource": "io.k8s.api.core.v1.FCVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.EndpointAddress": "io.k8s.api.core.v1.EndpointAddress", + "io.k8s.kubernetes.pkg.api.v1.ContainerPort": "io.k8s.api.core.v1.ContainerPort", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBinding": "io.k8s.api.rbac.v1beta1.ClusterRoleBinding", + "io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource": "io.k8s.api.core.v1.GlusterfsVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.ResourceRequirements": "io.k8s.api.core.v1.ResourceRequirements", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateDeployment": "io.k8s.api.apps.v1beta1.RollingUpdateDeployment", + "io.k8s.kubernetes.pkg.api.v1.NamespaceStatus": "io.k8s.api.core.v1.NamespaceStatus", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RunAsUserStrategyOptions": "io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions", + "io.k8s.kubernetes.pkg.api.v1.Namespace": "io.k8s.api.core.v1.Namespace", + "io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewSpec": "io.k8s.api.authorization.v1.SubjectAccessReviewSpec", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscaler": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscaler", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition": "io.k8s.api.extensions.v1beta1.ReplicaSetCondition", + "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus": "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", + "io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewStatus": "io.k8s.api.authentication.v1.TokenReviewStatus", + "io.k8s.kubernetes.pkg.api.v1.PersistentVolume": "io.k8s.api.core.v1.PersistentVolume", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.FSGroupStrategyOptions": "io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions", + "io.k8s.kubernetes.pkg.api.v1.PodSecurityContext": "io.k8s.api.core.v1.PodSecurityContext", + "io.k8s.kubernetes.pkg.api.v1.PodTemplate": "io.k8s.api.core.v1.PodTemplate", + "io.k8s.kubernetes.pkg.apis.authorization.v1.LocalSubjectAccessReview": "io.k8s.api.authorization.v1.LocalSubjectAccessReview", + "io.k8s.kubernetes.pkg.api.v1.StorageOSVolumeSource": "io.k8s.api.core.v1.StorageOSVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm": "io.k8s.api.core.v1.NodeSelectorTerm", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Role": "io.k8s.api.rbac.v1beta1.Role", + "io.k8s.kubernetes.pkg.api.v1.ContainerStatus": "io.k8s.api.core.v1.ContainerStatus", + "io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewStatus": "io.k8s.api.authorization.v1.SubjectAccessReviewStatus", + "io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewSpec": "io.k8s.api.authentication.v1.TokenReviewSpec", + "io.k8s.kubernetes.pkg.api.v1.ConfigMap": "io.k8s.api.core.v1.ConfigMap", + "io.k8s.kubernetes.pkg.api.v1.ServiceStatus": "io.k8s.api.core.v1.ServiceStatus", + "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReviewSpec": "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec", + "io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource": "io.k8s.api.core.v1.CinderVolumeSource", + "io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPresetSpec": "io.k8s.api.settings.v1alpha1.PodPresetSpec", + "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.NonResourceAttributes": "io.k8s.api.authorization.v1beta1.NonResourceAttributes", + "io.k8s.kubernetes.pkg.api.v1.ContainerImage": "io.k8s.api.core.v1.ContainerImage", + "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerCondition": "io.k8s.api.core.v1.ReplicationControllerCondition", + "io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource": "io.k8s.api.core.v1.EmptyDirVolumeSource", + "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList": "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList", + "io.k8s.kubernetes.pkg.apis.batch.v1.JobList": "io.k8s.api.batch.v1.JobList", + "io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource": "io.k8s.api.core.v1.NFSVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.Pod": "io.k8s.api.core.v1.Pod", + "io.k8s.kubernetes.pkg.api.v1.ObjectReference": "io.k8s.api.core.v1.ObjectReference", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.Deployment": "io.k8s.api.apps.v1beta1.Deployment", + "io.k8s.kubernetes.pkg.apis.storage.v1.StorageClassList": "io.k8s.api.storage.v1.StorageClassList", + "io.k8s.kubernetes.pkg.api.v1.AttachedVolume": "io.k8s.api.core.v1.AttachedVolume", + "io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource": "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", + "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobList": "io.k8s.api.batch.v2alpha1.CronJobList", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec": "io.k8s.api.extensions.v1beta1.DeploymentSpec", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicyList": "io.k8s.api.extensions.v1beta1.PodSecurityPolicyList", + "io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm": "io.k8s.api.core.v1.PodAffinityTerm", + "io.k8s.kubernetes.pkg.api.v1.HTTPHeader": "io.k8s.api.core.v1.HTTPHeader", + "io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector": "io.k8s.api.core.v1.ConfigMapKeySelector", + "io.k8s.kubernetes.pkg.api.v1.SecretKeySelector": "io.k8s.api.core.v1.SecretKeySelector", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList": "io.k8s.api.extensions.v1beta1.DeploymentList", + "io.k8s.kubernetes.pkg.apis.authentication.v1.UserInfo": "io.k8s.api.authentication.v1.UserInfo", + "io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress": "io.k8s.api.core.v1.LoadBalancerIngress", + "io.k8s.kubernetes.pkg.api.v1.DaemonEndpoint": "io.k8s.api.core.v1.DaemonEndpoint", + "io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement": "io.k8s.api.core.v1.NodeSelectorRequirement", + "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobStatus": "io.k8s.api.batch.v2alpha1.CronJobStatus", + "io.k8s.kubernetes.pkg.apis.autoscaling.v1.Scale": "io.k8s.api.autoscaling.v1.Scale", + "io.k8s.kubernetes.pkg.api.v1.ScaleIOVolumeSource": "io.k8s.api.core.v1.ScaleIOVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity": "io.k8s.api.core.v1.PodAntiAffinity", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicySpec": "io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec", + "io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPresetList": "io.k8s.api.settings.v1alpha1.PodPresetList", + "io.k8s.kubernetes.pkg.api.v1.NodeAffinity": "io.k8s.api.core.v1.NodeAffinity", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentCondition": "io.k8s.api.apps.v1beta1.DeploymentCondition", + "io.k8s.kubernetes.pkg.api.v1.NodeSpec": "io.k8s.api.core.v1.NodeSpec", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetStatus": "io.k8s.api.apps.v1beta1.StatefulSetStatus", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.RuleWithOperations": "io.k8s.api.admissionregistration.v1alpha1.RuleWithOperations", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus": "io.k8s.api.extensions.v1beta1.IngressStatus", + "io.k8s.kubernetes.pkg.api.v1.LimitRangeList": "io.k8s.api.core.v1.LimitRangeList", + "io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource": "io.k8s.api.core.v1.AzureDiskVolumeSource", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus": "io.k8s.api.extensions.v1beta1.ReplicaSetStatus", + "io.k8s.kubernetes.pkg.api.v1.ComponentStatus": "io.k8s.api.core.v1.ComponentStatus", + "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler": "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler", + "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicy": "io.k8s.api.networking.v1.NetworkPolicy", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollbackConfig": "io.k8s.api.apps.v1beta1.RollbackConfig", + "io.k8s.kubernetes.pkg.api.v1.NodeCondition": "io.k8s.api.core.v1.NodeCondition", + "io.k8s.kubernetes.pkg.api.v1.DownwardAPIProjection": "io.k8s.api.core.v1.DownwardAPIProjection", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SELinuxStrategyOptions": "io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions", + "io.k8s.kubernetes.pkg.api.v1.NamespaceSpec": "io.k8s.api.core.v1.NamespaceSpec", + "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestSpec": "io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec", + "io.k8s.kubernetes.pkg.api.v1.ServiceSpec": "io.k8s.api.core.v1.ServiceSpec", + "io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReview": "io.k8s.api.authorization.v1.SubjectAccessReview", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentList": "io.k8s.api.apps.v1beta1.DeploymentList", + "io.k8s.kubernetes.pkg.api.v1.Toleration": "io.k8s.api.core.v1.Toleration", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyList": "io.k8s.api.extensions.v1beta1.NetworkPolicyList", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.PodsMetricSource": "io.k8s.api.autoscaling.v2alpha1.PodsMetricSource", + "io.k8s.kubernetes.pkg.api.v1.EnvFromSource": "io.k8s.api.core.v1.EnvFromSource", + "io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleSpec": "io.k8s.api.autoscaling.v1.ScaleSpec", + "io.k8s.kubernetes.pkg.api.v1.PodTemplateList": "io.k8s.api.core.v1.PodTemplateList", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerSpec": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscalerSpec", + "io.k8s.kubernetes.pkg.api.v1.SecretProjection": "io.k8s.api.core.v1.SecretProjection", + "io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector": "io.k8s.api.core.v1.ResourceFieldSelector", + "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeSpec": "io.k8s.api.core.v1.PersistentVolumeSpec", + "io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource": "io.k8s.api.core.v1.ConfigMapVolumeSource", + "io.k8s.kubernetes.pkg.apis.autoscaling.v2alpha1.HorizontalPodAutoscalerList": "io.k8s.api.autoscaling.v2alpha1.HorizontalPodAutoscalerList", + "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewStatus": "io.k8s.api.authentication.v1beta1.TokenReviewStatus", + "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyList": "io.k8s.api.networking.v1.NetworkPolicyList", + "io.k8s.kubernetes.pkg.api.v1.Endpoints": "io.k8s.api.core.v1.Endpoints", + "io.k8s.kubernetes.pkg.api.v1.LimitRangeItem": "io.k8s.api.core.v1.LimitRangeItem", + "io.k8s.kubernetes.pkg.api.v1.ServiceAccount": "io.k8s.api.core.v1.ServiceAccount", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec": "io.k8s.api.extensions.v1beta1.ScaleSpec", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS": "io.k8s.api.extensions.v1beta1.IngressTLS", + "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJob": "io.k8s.api.batch.v2alpha1.CronJob", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.Subject": "io.k8s.api.rbac.v1alpha1.Subject", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus": "io.k8s.api.extensions.v1beta1.DaemonSetStatus", + "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetList": "io.k8s.api.policy.v1beta1.PodDisruptionBudgetList", + "io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource": "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleRef": "io.k8s.api.rbac.v1alpha1.RoleRef", + "io.k8s.kubernetes.pkg.api.v1.PortworxVolumeSource": "io.k8s.api.core.v1.PortworxVolumeSource", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList": "io.k8s.api.extensions.v1beta1.ReplicaSetList", + "io.k8s.kubernetes.pkg.api.v1.VolumeProjection": "io.k8s.api.core.v1.VolumeProjection", + "io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClass": "io.k8s.api.storage.v1beta1.StorageClass", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet": "io.k8s.api.extensions.v1beta1.ReplicaSet", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentRollback": "io.k8s.api.apps.v1beta1.DeploymentRollback", + "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleBinding": "io.k8s.api.rbac.v1alpha1.RoleBinding", + "io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource": "io.k8s.api.core.v1.AzureFileVolumeSource", + "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetStatus": "io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus", + "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewSpec": "io.k8s.api.authentication.v1beta1.TokenReviewSpec", + "io.k8s.kubernetes.pkg.api.v1.EndpointsList": "io.k8s.api.core.v1.EndpointsList", + "io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource": "io.k8s.api.core.v1.ConfigMapEnvSource", + "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.JobTemplateSpec": "io.k8s.api.batch.v2alpha1.JobTemplateSpec", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetUpdateStrategy": "io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy", + "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewSpec": "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec", + "io.k8s.kubernetes.pkg.api.v1.LocalVolumeSource": "io.k8s.api.core.v1.LocalVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.ContainerState": "io.k8s.api.core.v1.ContainerState", + "io.k8s.kubernetes.pkg.api.v1.Service": "io.k8s.api.core.v1.Service", + "io.k8s.kubernetes.pkg.api.v1.ExecAction": "io.k8s.api.core.v1.ExecAction", + "io.k8s.kubernetes.pkg.api.v1.Taint": "io.k8s.api.core.v1.Taint", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Subject": "io.k8s.api.rbac.v1beta1.Subject", + "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewStatus": "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBindingList": "io.k8s.api.rbac.v1beta1.ClusterRoleBindingList", + "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource": "io.k8s.api.core.v1.DownwardAPIVolumeSource", + "io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus": "io.k8s.api.batch.v1.JobStatus", + "io.k8s.kubernetes.pkg.api.v1.ResourceQuotaStatus": "io.k8s.api.core.v1.ResourceQuotaStatus", + "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeStatus": "io.k8s.api.core.v1.PersistentVolumeStatus", + "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaim": "io.k8s.api.core.v1.PersistentVolumeClaim", + "io.k8s.kubernetes.pkg.api.v1.NodeDaemonEndpoints": "io.k8s.api.core.v1.NodeDaemonEndpoints", + "io.k8s.kubernetes.pkg.api.v1.EnvVar": "io.k8s.api.core.v1.EnvVar", + "io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource": "io.k8s.api.core.v1.SecretVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.EnvVarSource": "io.k8s.api.core.v1.EnvVarSource", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateStatefulSetStrategy": "io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy", + "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRole": "io.k8s.api.rbac.v1beta1.ClusterRole", + "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Initializer": "io.k8s.api.admissionregistration.v1alpha1.Initializer", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy": "io.k8s.api.extensions.v1beta1.DeploymentStrategy", + "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleSpec": "io.k8s.api.apps.v1beta1.ScaleSpec", + "io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPreset": "io.k8s.api.settings.v1alpha1.PodPreset", + "io.k8s.kubernetes.pkg.api.v1.Probe": "io.k8s.api.core.v1.Probe", + "io.k8s.kubernetes.pkg.api.v1.NamespaceList": "io.k8s.api.core.v1.NamespaceList", + "io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource": "io.k8s.api.core.v1.QuobyteVolumeSource", + "io.k8s.kubernetes.pkg.api.v1.NodeList": "io.k8s.api.core.v1.NodeList", + "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDaemonSet": "io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet", + "io.k8s.kubernetes.pkg.api.v1.LimitRange": "io.k8s.api.core.v1.LimitRange", } for k, v := range compatibilityMap { diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/BUILD b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/BUILD index 0ff84b469..3ef1e2f6a 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/BUILD @@ -38,8 +38,8 @@ go_library( deps = [ "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-apiserver/app/options:go_default_library", - "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/etcd/testing:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/server_test.go b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/server_test.go index 575126426..70444c749 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/server_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/server_test.go @@ -247,7 +247,7 @@ func TestCRD(t *testing.T) { } createErr := make(chan error, 1) go func() { - _, err = barComClient.Resource(&metav1.APIResource{Name: "foos", Namespaced: true}, "default").Create(unstructuredFoo) + _, err := barComClient.Resource(&metav1.APIResource{Name: "foos", Namespaced: true}, "default").Create(unstructuredFoo) t.Logf("Foo instance create returned: %v", err) if err != nil { createErr <- err diff --git a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/testserver.go b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/testserver.go index abbbb9794..fbf9fddde 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/testserver.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/testserver.go @@ -26,12 +26,12 @@ import ( "time" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/registry/generic/registry" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/kubernetes/cmd/kube-apiserver/app" "k8s.io/kubernetes/cmd/kube-apiserver/app/options" - "k8s.io/kubernetes/pkg/api" ) // TearDownFunc is to be called to tear down a test server. @@ -46,8 +46,15 @@ type TearDownFunc func() func StartTestServer(t *testing.T) (result *restclient.Config, tearDownForCaller TearDownFunc, err error) { var tmpDir string var etcdServer *etcdtesting.EtcdTestServer + + // TODO : Remove TrackStorageCleanup below when PR + // https://github.com/kubernetes/kubernetes/pull/50690 + // merges as that shuts down storage properly + registry.TrackStorageCleanup() + stopCh := make(chan struct{}) tearDown := func() { + registry.CleanupStorage() close(stopCh) if etcdServer != nil { etcdServer.Terminate(t) @@ -63,7 +70,7 @@ func StartTestServer(t *testing.T) (result *restclient.Config, tearDownForCaller }() t.Logf("Starting etcd...") - etcdServer, storageConfig := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, api.Scheme) + etcdServer, storageConfig := etcdtesting.NewUnsecuredEtcd3TestClientServer(t) tmpDir, err = ioutil.TempDir("", "kubernetes-kube-apiserver") if err != nil { diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/BUILD b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/BUILD index 68bf1d3b8..64d5a1ca3 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/BUILD @@ -33,7 +33,6 @@ go_library( "//pkg/version/prometheus:go_default_library", "//pkg/version/verflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/logs:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/BUILD b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/BUILD index 97579128b..42436a545 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/BUILD @@ -20,12 +20,12 @@ go_library( "import_known_versions.go", "plugins.go", "policy.go", + "rbac.go", ], importpath = "k8s.io/kubernetes/cmd/kube-controller-manager/app", deps = [ "//cmd/kube-controller-manager/app/options:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/apps/install:go_default_library", "//pkg/apis/authentication/install:go_default_library", "//pkg/apis/authorization/install:go_default_library", @@ -33,6 +33,7 @@ go_library( "//pkg/apis/batch/install:go_default_library", "//pkg/apis/certificates/install:go_default_library", "//pkg/apis/componentconfig:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions/install:go_default_library", "//pkg/apis/policy/install:go_default_library", "//pkg/apis/rbac/install:go_default_library", @@ -52,6 +53,7 @@ go_library( "//pkg/controller/certificates/approver:go_default_library", "//pkg/controller/certificates/cleaner:go_default_library", "//pkg/controller/certificates/signer:go_default_library", + "//pkg/controller/clusterroleaggregation:go_default_library", "//pkg/controller/cronjob:go_default_library", "//pkg/controller/daemon:go_default_library", "//pkg/controller/deployment:go_default_library", @@ -77,6 +79,7 @@ go_library( "//pkg/controller/volume/expand:go_default_library", "//pkg/controller/volume/persistentvolume:go_default_library", "//pkg/features:go_default_library", + "//pkg/quota/generic:go_default_library", "//pkg/quota/install:go_default_library", "//pkg/serviceaccount:go_default_library", "//pkg/util/configz:go_default_library", @@ -123,6 +126,7 @@ go_library( "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/scale:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/leaderelection:go_default_library", "//vendor/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/autoscaling.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/autoscaling.go index 5af911d7a..43c1cd1ab 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/autoscaling.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/autoscaling.go @@ -21,7 +21,12 @@ limitations under the License. package app import ( + apimeta "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" + discocache "k8s.io/client-go/discovery/cached" // Saturday Night Fever + "k8s.io/client-go/dynamic" + "k8s.io/client-go/scale" "k8s.io/kubernetes/pkg/controller/podautoscaler" "k8s.io/kubernetes/pkg/controller/podautoscaler/metrics" resourceclient "k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1beta1" @@ -63,16 +68,33 @@ func startHPAControllerWithLegacyClient(ctx ControllerContext) (bool, error) { } func startHPAControllerWithMetricsClient(ctx ControllerContext, metricsClient metrics.MetricsClient) (bool, error) { + hpaClientGoClient := ctx.ClientBuilder.ClientGoClientOrDie("horizontal-pod-autoscaler") hpaClient := ctx.ClientBuilder.ClientOrDie("horizontal-pod-autoscaler") + hpaClientConfig := ctx.ClientBuilder.ConfigOrDie("horizontal-pod-autoscaler") + + // TODO: we need something like deferred discovery REST mapper that calls invalidate + // on cache misses. + cachedDiscovery := discocache.NewMemCacheClient(hpaClientGoClient.Discovery()) + restMapper := discovery.NewDeferredDiscoveryRESTMapper(cachedDiscovery, apimeta.InterfacesForUnstructured) + restMapper.Reset() + // we don't use cached discovery because DiscoveryScaleKindResolver does its own caching, + // so we want to re-fetch every time when we actually ask for it + scaleKindResolver := scale.NewDiscoveryScaleKindResolver(hpaClientGoClient.Discovery()) + scaleClient, err := scale.NewForConfig(hpaClientConfig, restMapper, dynamic.LegacyAPIPathResolverFunc, scaleKindResolver) + if err != nil { + return false, err + } + replicaCalc := podautoscaler.NewReplicaCalculator( metricsClient, - hpaClient.Core(), + hpaClient.CoreV1(), ctx.Options.HorizontalPodAutoscalerTolerance, ) go podautoscaler.NewHorizontalController( - ctx.ClientBuilder.ClientGoClientOrDie("horizontal-pod-autoscaler").Core(), - hpaClient.Extensions(), - hpaClient.Autoscaling(), + hpaClientGoClient.CoreV1(), + scaleClient, + hpaClient.AutoscalingV1(), + restMapper, replicaCalc, ctx.InformerFactory.Autoscaling().V1().HorizontalPodAutoscalers(), ctx.Options.HorizontalPodAutoscalerSyncPeriod.Duration, diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/batch.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/batch.go index 033320614..b60d7c149 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/batch.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/batch.go @@ -21,6 +21,8 @@ limitations under the License. package app import ( + "fmt" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/controller/cronjob" "k8s.io/kubernetes/pkg/controller/job" @@ -42,8 +44,12 @@ func startCronJobController(ctx ControllerContext) (bool, error) { if !ctx.AvailableResources[schema.GroupVersionResource{Group: "batch", Version: "v1beta1", Resource: "cronjobs"}] { return false, nil } - go cronjob.NewCronJobController( + cjc, err := cronjob.NewCronJobController( ctx.ClientBuilder.ClientOrDie("cronjob-controller"), - ).Run(ctx.Stop) + ) + if err != nil { + return true, fmt.Errorf("error creating CronJob controller: %v", err) + } + go cjc.Run(ctx.Stop) return true, nil } diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/bootstrap.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/bootstrap.go index 05ff566fd..046070ecb 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/bootstrap.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/bootstrap.go @@ -16,20 +16,32 @@ limitations under the License. package app -import "k8s.io/kubernetes/pkg/controller/bootstrap" +import ( + "fmt" + + "k8s.io/kubernetes/pkg/controller/bootstrap" +) func startBootstrapSignerController(ctx ControllerContext) (bool, error) { - go bootstrap.NewBootstrapSigner( + bsc, err := bootstrap.NewBootstrapSigner( ctx.ClientBuilder.ClientGoClientOrDie("bootstrap-signer"), bootstrap.DefaultBootstrapSignerOptions(), - ).Run(ctx.Stop) + ) + if err != nil { + return true, fmt.Errorf("error creating BootstrapSigner controller: %v", err) + } + go bsc.Run(ctx.Stop) return true, nil } func startTokenCleanerController(ctx ControllerContext) (bool, error) { - go bootstrap.NewTokenCleaner( + tcc, err := bootstrap.NewTokenCleaner( ctx.ClientBuilder.ClientGoClientOrDie("token-cleaner"), bootstrap.DefaultTokenCleanerOptions(), - ).Run(ctx.Stop) + ) + if err != nil { + return true, fmt.Errorf("error creating TokenCleaner controller: %v", err) + } + go tcc.Run(ctx.Stop) return true, nil } diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/certificates.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/certificates.go index b3e4e8499..79c9390b5 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/certificates.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/certificates.go @@ -59,16 +59,10 @@ func startCSRApprovingController(ctx ControllerContext) (bool, error) { return false, nil } - approver, err := approver.NewCSRApprovingController( + approver := approver.NewCSRApprovingController( ctx.ClientBuilder.ClientOrDie("certificate-controller"), ctx.InformerFactory.Certificates().V1beta1().CertificateSigningRequests(), ) - if err != nil { - // TODO this is failing consistently in test-cmd and local-up-cluster.sh. Fix them and make it consistent with all others which - // cause a crash loop - glog.Errorf("Failed to start certificate controller: %v", err) - return false, nil - } go approver.Run(1, ctx.Stop) return true, nil diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/controllermanager.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/controllermanager.go index 6cd1e6925..c53be756e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/controllermanager.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/controllermanager.go @@ -52,7 +52,7 @@ import ( "k8s.io/client-go/tools/leaderelection" "k8s.io/client-go/tools/leaderelection/resourcelock" "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller" serviceaccountcontroller "k8s.io/kubernetes/pkg/controller/serviceaccount" @@ -224,7 +224,7 @@ func createRecorder(kubeClient *clientset.Clientset) record.EventRecorder { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) - return eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: "controller-manager"}) + return eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: "controller-manager"}) } func createClients(s *options.CMServer) (*clientset.Clientset, *clientset.Clientset, *restclient.Config, error) { @@ -358,6 +358,7 @@ func NewControllerInitializers() map[string]InitFunc { controllers["persistentvolume-binder"] = startPersistentVolumeBinderController controllers["attachdetach"] = startAttachDetachController controllers["persistentvolume-expander"] = startVolumeExpandController + controllers["clusterrole-aggregation"] = startClusterRoleAggregrationController return controllers } @@ -525,7 +526,7 @@ func (c serviceAccountTokenControllerStarter) startServiceAccountTokenController rootCA = c.rootClientBuilder.ConfigOrDie("tokens-controller").CAData } - controller := serviceaccountcontroller.NewTokensController( + controller, err := serviceaccountcontroller.NewTokensController( ctx.InformerFactory.Core().V1().ServiceAccounts(), ctx.InformerFactory.Core().V1().Secrets(), c.rootClientBuilder.ClientOrDie("tokens-controller"), @@ -534,6 +535,9 @@ func (c serviceAccountTokenControllerStarter) startServiceAccountTokenController RootCA: rootCA, }, ) + if err != nil { + return true, fmt.Errorf("error creating Tokens controller: %v", err) + } go controller.Run(int(ctx.Options.ConcurrentSATokenSyncs), ctx.Stop) // start the first set of informers now so that other controllers can start diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/core.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/core.go index 154438743..7c4a1268a 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/core.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/core.go @@ -36,7 +36,7 @@ import ( cacheddiscovery "k8s.io/client-go/discovery/cached" "k8s.io/client-go/dynamic" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/controller" endpointcontroller "k8s.io/kubernetes/pkg/controller/endpoint" "k8s.io/kubernetes/pkg/controller/garbagecollector" @@ -54,6 +54,7 @@ import ( "k8s.io/kubernetes/pkg/controller/volume/expand" persistentvolumecontroller "k8s.io/kubernetes/pkg/controller/volume/persistentvolume" "k8s.io/kubernetes/pkg/features" + "k8s.io/kubernetes/pkg/quota/generic" quotainstall "k8s.io/kubernetes/pkg/quota/install" "k8s.io/kubernetes/pkg/util/metrics" ) @@ -67,6 +68,7 @@ func startServiceController(ctx ControllerContext) (bool, error) { ctx.Options.ClusterName, ) if err != nil { + // This error shouldn't fail. It lives like this as a legacy. glog.Errorf("Failed to start service controller: %v", err) return false, nil } @@ -75,20 +77,22 @@ func startServiceController(ctx ControllerContext) (bool, error) { } func startNodeController(ctx ControllerContext) (bool, error) { - var clusterCIDR *net.IPNet - var err error - if len(strings.TrimSpace(ctx.Options.ClusterCIDR)) != 0 { - _, clusterCIDR, err = net.ParseCIDR(ctx.Options.ClusterCIDR) - if err != nil { - glog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", ctx.Options.ClusterCIDR, err) + var clusterCIDR *net.IPNet = nil + var serviceCIDR *net.IPNet = nil + if ctx.Options.AllocateNodeCIDRs { + var err error + if len(strings.TrimSpace(ctx.Options.ClusterCIDR)) != 0 { + _, clusterCIDR, err = net.ParseCIDR(ctx.Options.ClusterCIDR) + if err != nil { + glog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", ctx.Options.ClusterCIDR, err) + } } - } - var serviceCIDR *net.IPNet - if len(strings.TrimSpace(ctx.Options.ServiceCIDR)) != 0 { - _, serviceCIDR, err = net.ParseCIDR(ctx.Options.ServiceCIDR) - if err != nil { - glog.Warningf("Unsuccessful parsing of service CIDR %v: %v", ctx.Options.ServiceCIDR, err) + if len(strings.TrimSpace(ctx.Options.ServiceCIDR)) != 0 { + _, serviceCIDR, err = net.ParseCIDR(ctx.Options.ServiceCIDR) + if err != nil { + glog.Warningf("Unsuccessful parsing of service CIDR %v: %v", ctx.Options.ServiceCIDR, err) + } } } @@ -123,10 +127,6 @@ func startNodeController(ctx ControllerContext) (bool, error) { } func startRouteController(ctx ControllerContext) (bool, error) { - _, clusterCIDR, err := net.ParseCIDR(ctx.Options.ClusterCIDR) - if err != nil { - glog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", ctx.Options.ClusterCIDR, err) - } if !ctx.Options.AllocateNodeCIDRs || !ctx.Options.ConfigureCloudRoutes { glog.Infof("Will not configure cloud provider routes for allocate-node-cidrs: %v, configure-cloud-routes: %v.", ctx.Options.AllocateNodeCIDRs, ctx.Options.ConfigureCloudRoutes) return false, nil @@ -140,6 +140,10 @@ func startRouteController(ctx ControllerContext) (bool, error) { glog.Warning("configure-cloud-routes is set, but cloud provider does not support routes. Will not configure cloud provider routes.") return false, nil } + _, clusterCIDR, err := net.ParseCIDR(ctx.Options.ClusterCIDR) + if err != nil { + glog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", ctx.Options.ClusterCIDR, err) + } routeController := routecontroller.New(routes, ctx.ClientBuilder.ClientOrDie("route-controller"), ctx.InformerFactory.Core().V1().Nodes(), ctx.Options.ClusterName, clusterCIDR) go routeController.Run(ctx.Stop, ctx.Options.RouteReconciliationPeriod.Duration) return true, nil @@ -239,37 +243,42 @@ func startPodGCController(ctx ControllerContext) (bool, error) { func startResourceQuotaController(ctx ControllerContext) (bool, error) { resourceQuotaControllerClient := ctx.ClientBuilder.ClientOrDie("resourcequota-controller") - resourceQuotaRegistry := quotainstall.NewRegistry(resourceQuotaControllerClient, ctx.InformerFactory) - groupKindsToReplenish := []schema.GroupKind{ - api.Kind("Pod"), - api.Kind("Service"), - api.Kind("ReplicationController"), - api.Kind("PersistentVolumeClaim"), - api.Kind("Secret"), - api.Kind("ConfigMap"), - } + discoveryFunc := resourceQuotaControllerClient.Discovery().ServerPreferredNamespacedResources + listerFuncForResource := generic.ListerFuncForResourceFunc(ctx.InformerFactory.ForResource) + quotaConfiguration := quotainstall.NewQuotaConfigurationForControllers(listerFuncForResource) + resourceQuotaControllerOptions := &resourcequotacontroller.ResourceQuotaControllerOptions{ - QuotaClient: resourceQuotaControllerClient.Core(), + QuotaClient: resourceQuotaControllerClient.CoreV1(), ResourceQuotaInformer: ctx.InformerFactory.Core().V1().ResourceQuotas(), ResyncPeriod: controller.StaticResyncPeriodFunc(ctx.Options.ResourceQuotaSyncPeriod.Duration), - Registry: resourceQuotaRegistry, - ControllerFactory: resourcequotacontroller.NewReplenishmentControllerFactory(ctx.InformerFactory), + InformerFactory: ctx.InformerFactory, ReplenishmentResyncPeriod: ResyncPeriod(&ctx.Options), - GroupKindsToReplenish: groupKindsToReplenish, + DiscoveryFunc: discoveryFunc, + IgnoredResourcesFunc: quotaConfiguration.IgnoredResources, + InformersStarted: ctx.InformersStarted, + Registry: generic.NewRegistry(quotaConfiguration.Evaluators()), } - if resourceQuotaControllerClient.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("resource_quota_controller", resourceQuotaControllerClient.Core().RESTClient().GetRateLimiter()) + if resourceQuotaControllerClient.CoreV1().RESTClient().GetRateLimiter() != nil { + if err := metrics.RegisterMetricAndTrackRateLimiterUsage("resource_quota_controller", resourceQuotaControllerClient.CoreV1().RESTClient().GetRateLimiter()); err != nil { + return true, err + } + } + + resourceQuotaController, err := resourcequotacontroller.NewResourceQuotaController(resourceQuotaControllerOptions) + if err != nil { + return false, err } + go resourceQuotaController.Run(int(ctx.Options.ConcurrentResourceQuotaSyncs), ctx.Stop) + + // Periodically the quota controller to detect new resource types + go resourceQuotaController.Sync(discoveryFunc, 30*time.Second, ctx.Stop) - go resourcequotacontroller.NewResourceQuotaController( - resourceQuotaControllerOptions, - ).Run(int(ctx.Options.ConcurrentResourceQuotaSyncs), ctx.Stop) return true, nil } func startNamespaceController(ctx ControllerContext) (bool, error) { // TODO: should use a dynamic RESTMapper built from the discovery results. - restMapper := api.Registry.RESTMapper() + restMapper := legacyscheme.Registry.RESTMapper() // the namespace cleanup controller is very chatty. It makes lots of discovery calls and then it makes lots of delete calls // the ratelimiter negatively affects its speed. Deleting 100 total items in a namespace (that's only a few of each resource @@ -296,12 +305,16 @@ func startNamespaceController(ctx ControllerContext) (bool, error) { } func startServiceAccountController(ctx ControllerContext) (bool, error) { - go serviceaccountcontroller.NewServiceAccountsController( + sac, err := serviceaccountcontroller.NewServiceAccountsController( ctx.InformerFactory.Core().V1().ServiceAccounts(), ctx.InformerFactory.Core().V1().Namespaces(), ctx.ClientBuilder.ClientOrDie("service-account-controller"), serviceaccountcontroller.DefaultServiceAccountsControllerOptions(), - ).Run(1, ctx.Stop) + ) + if err != nil { + return true, fmt.Errorf("error creating ServiceAccount controller: %v", err) + } + go sac.Run(1, ctx.Stop) return true, nil } @@ -335,10 +348,7 @@ func startGarbageCollectorController(ctx ControllerContext) (bool, error) { clientPool := dynamic.NewClientPool(config, restMapper, dynamic.LegacyAPIPathResolverFunc) // Get an initial set of deletable resources to prime the garbage collector. - deletableResources, err := garbagecollector.GetDeletableResources(discoveryClient) - if err != nil { - return true, err - } + deletableResources := garbagecollector.GetDeletableResources(discoveryClient) ignoredResources := make(map[schema.GroupResource]struct{}) for _, r := range ctx.Options.GCIgnoredResources { ignoredResources[schema.GroupResource{Group: r.Group, Resource: r.Resource}] = struct{}{} diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/extensions.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/extensions.go index 7e9be6a87..060704bbf 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/extensions.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/extensions.go @@ -21,6 +21,8 @@ limitations under the License. package app import ( + "fmt" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/controller/daemon" "k8s.io/kubernetes/pkg/controller/deployment" @@ -31,13 +33,17 @@ func startDaemonSetController(ctx ControllerContext) (bool, error) { if !ctx.AvailableResources[schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "daemonsets"}] { return false, nil } - go daemon.NewDaemonSetsController( + dsc, err := daemon.NewDaemonSetsController( ctx.InformerFactory.Extensions().V1beta1().DaemonSets(), ctx.InformerFactory.Apps().V1beta1().ControllerRevisions(), ctx.InformerFactory.Core().V1().Pods(), ctx.InformerFactory.Core().V1().Nodes(), ctx.ClientBuilder.ClientOrDie("daemon-set-controller"), - ).Run(int(ctx.Options.ConcurrentDaemonSetSyncs), ctx.Stop) + ) + if err != nil { + return true, fmt.Errorf("error creating DaemonSets controller: %v", err) + } + go dsc.Run(int(ctx.Options.ConcurrentDaemonSetSyncs), ctx.Stop) return true, nil } @@ -45,12 +51,16 @@ func startDeploymentController(ctx ControllerContext) (bool, error) { if !ctx.AvailableResources[schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "deployments"}] { return false, nil } - go deployment.NewDeploymentController( + dc, err := deployment.NewDeploymentController( ctx.InformerFactory.Extensions().V1beta1().Deployments(), ctx.InformerFactory.Extensions().V1beta1().ReplicaSets(), ctx.InformerFactory.Core().V1().Pods(), ctx.ClientBuilder.ClientOrDie("deployment-controller"), - ).Run(int(ctx.Options.ConcurrentDeploymentSyncs), ctx.Stop) + ) + if err != nil { + return true, fmt.Errorf("error creating Deployment controller: %v", err) + } + go dc.Run(int(ctx.Options.ConcurrentDeploymentSyncs), ctx.Stop) return true, nil } diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/import_known_versions.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/import_known_versions.go index 0f2436ac0..8d5376502 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/import_known_versions.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/import_known_versions.go @@ -15,21 +15,21 @@ limitations under the License. */ // TODO: Remove this file when namespace controller and garbage collector -// stops using api.Registry.RESTMapper() +// stops using legacyscheme.Registry.RESTMapper() package app // These imports are the API groups the client will support. import ( "fmt" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/apps/install" _ "k8s.io/kubernetes/pkg/apis/authentication/install" _ "k8s.io/kubernetes/pkg/apis/authorization/install" _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" _ "k8s.io/kubernetes/pkg/apis/batch/install" _ "k8s.io/kubernetes/pkg/apis/certificates/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/extensions/install" _ "k8s.io/kubernetes/pkg/apis/policy/install" _ "k8s.io/kubernetes/pkg/apis/rbac/install" @@ -39,7 +39,7 @@ import ( ) func init() { - if missingVersions := api.Registry.ValidateEnvRequestedVersions(); len(missingVersions) != 0 { + if missingVersions := legacyscheme.Registry.ValidateEnvRequestedVersions(); len(missingVersions) != 0 { panic(fmt.Sprintf("KUBE_API_VERSIONS contains versions that are not installed: %q.", missingVersions)) } } diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/options.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/options.go index a87afb20d..d5765e88b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/options.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/options.go @@ -195,8 +195,8 @@ func (s *CMServer) AddFlags(fs *pflag.FlagSet, allControllers []string, disabled fs.BoolVar(&s.EnableProfiling, "profiling", true, "Enable profiling via web interface host:port/debug/pprof/") fs.BoolVar(&s.EnableContentionProfiling, "contention-profiling", false, "Enable lock contention profiling, if profiling is enabled") fs.StringVar(&s.ClusterName, "cluster-name", s.ClusterName, "The instance prefix for the cluster") - fs.StringVar(&s.ClusterCIDR, "cluster-cidr", s.ClusterCIDR, "CIDR Range for Pods in cluster.") - fs.StringVar(&s.ServiceCIDR, "service-cluster-ip-range", s.ServiceCIDR, "CIDR Range for Services in cluster.") + fs.StringVar(&s.ClusterCIDR, "cluster-cidr", s.ClusterCIDR, "CIDR Range for Pods in cluster. Requires --allocate-node-cidrs to be true") + fs.StringVar(&s.ServiceCIDR, "service-cluster-ip-range", s.ServiceCIDR, "CIDR Range for Services in cluster. Requires --allocate-node-cidrs to be true") fs.Int32Var(&s.NodeCIDRMaskSize, "node-cidr-mask-size", s.NodeCIDRMaskSize, "Mask size for node cidr in cluster.") fs.BoolVar(&s.AllocateNodeCIDRs, "allocate-node-cidrs", false, "Should CIDRs for Pods be allocated and set on the cloud provider.") diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/plugins.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/plugins.go index bf9c9fe12..716539b9f 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/plugins.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/plugins.go @@ -78,6 +78,7 @@ func ProbeAttachableVolumePlugins() []volume.VolumePlugin { allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...) allPlugins = append(allPlugins, fc.ProbeVolumePlugins()...) allPlugins = append(allPlugins, iscsi.ProbeVolumePlugins()...) + allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...) return allPlugins } diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/rbac.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/rbac.go new file mode 100644 index 000000000..b49d3403f --- /dev/null +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/rbac.go @@ -0,0 +1,33 @@ +/* +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 app + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/kubernetes/pkg/controller/clusterroleaggregation" +) + +func startClusterRoleAggregrationController(ctx ControllerContext) (bool, error) { + if !ctx.AvailableResources[schema.GroupVersionResource{Group: "rbac.authorization.k8s.io", Version: "v1", Resource: "clusterroles"}] { + return false, nil + } + go clusterroleaggregation.NewClusterRoleAggregation( + ctx.InformerFactory.Rbac().V1().ClusterRoles(), + ctx.ClientBuilder.ClientOrDie("clusterrole-aggregation-controller").RbacV1(), + ).Run(5, ctx.Stop) + return true, nil +} diff --git a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/controller-manager.go b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/controller-manager.go index d4a827cdd..495a5734f 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/controller-manager.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-controller-manager/controller-manager.go @@ -24,7 +24,6 @@ import ( "fmt" "os" - "k8s.io/apiserver/pkg/server/healthz" "k8s.io/apiserver/pkg/util/flag" "k8s.io/apiserver/pkg/util/logs" "k8s.io/kubernetes/cmd/kube-controller-manager/app" @@ -38,10 +37,6 @@ import ( "github.com/spf13/pflag" ) -func init() { - healthz.DefaultHealthz() -} - func main() { s := options.NewCMServer() s.AddFlags(pflag.CommandLine, app.KnownControllers(), app.ControllersDisabledByDefault.List()) diff --git a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/BUILD b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/BUILD index db69094da..cb74ef887 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/BUILD @@ -12,7 +12,6 @@ go_library( "conntrack.go", "server.go", "server_others.go", - "validation.go", ] + select({ "@io_bazel_rules_go//go/platform:windows_amd64": [ "server_windows.go", @@ -21,10 +20,8 @@ go_library( }), importpath = "k8s.io/kubernetes/cmd/kube-proxy/app", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", "//pkg/apis/componentconfig:go_default_library", - "//pkg/apis/componentconfig/v1alpha1:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/features:go_default_library", @@ -32,10 +29,15 @@ go_library( "//pkg/kubelet/qos:go_default_library", "//pkg/master/ports:go_default_library", "//pkg/proxy:go_default_library", + "//pkg/proxy/apis/kubeproxyconfig:go_default_library", + "//pkg/proxy/apis/kubeproxyconfig/scheme:go_default_library", + "//pkg/proxy/apis/kubeproxyconfig/v1alpha1:go_default_library", + "//pkg/proxy/apis/kubeproxyconfig/validation:go_default_library", "//pkg/proxy/config:go_default_library", "//pkg/proxy/healthcheck:go_default_library", "//pkg/proxy/iptables:go_default_library", "//pkg/proxy/ipvs:go_default_library", + "//pkg/proxy/metrics:go_default_library", "//pkg/proxy/userspace:go_default_library", "//pkg/util/configz:go_default_library", "//pkg/util/dbus:go_default_library", @@ -61,7 +63,6 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", @@ -84,24 +85,18 @@ go_library( go_test( name = "go_default_test", - srcs = [ - "server_test.go", - "validation_test.go", - ], + srcs = ["server_test.go"], importpath = "k8s.io/kubernetes/cmd/kube-proxy/app", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/apis/componentconfig:go_default_library", - "//pkg/apis/componentconfig/v1alpha1:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/proxy/apis/kubeproxyconfig:go_default_library", "//pkg/util/configz:go_default_library", "//pkg/util/iptables:go_default_library", "//pkg/util/pointer:go_default_library", "//vendor/github.com/stretchr/testify/assert: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/util/diff:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server.go b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server.go index e5414dbb5..9c5b1ac9e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server.go @@ -45,16 +45,19 @@ import ( "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/componentconfig" - "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubelet/qos" "k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/proxy" - proxyconfig "k8s.io/kubernetes/pkg/proxy/config" + "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig" + "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme" + "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" + "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation" + "k8s.io/kubernetes/pkg/proxy/config" "k8s.io/kubernetes/pkg/proxy/healthcheck" "k8s.io/kubernetes/pkg/proxy/iptables" "k8s.io/kubernetes/pkg/proxy/ipvs" @@ -93,10 +96,10 @@ type Options struct { CleanupAndExit bool // config is the proxy server's configuration object. - config *componentconfig.KubeProxyConfiguration + config *kubeproxyconfig.KubeProxyConfiguration // The fields below here are placeholders for flags that can't be directly mapped into - // componentconfig.KubeProxyConfiguration. + // kubeproxyconfig.KubeProxyConfiguration. // // TODO remove these fields once the deprecated flags are removed. @@ -141,14 +144,17 @@ func AddFlags(options *Options, fs *pflag.FlagSet) { fs.StringVar(&options.config.ClusterCIDR, "cluster-cidr", options.config.ClusterCIDR, "The CIDR range of pods in the cluster. When configured, traffic sent to a Service cluster IP from outside this range will be masqueraded and traffic sent from pods to an external LoadBalancer IP will be directed to the respective cluster IP instead") fs.StringVar(&options.config.ClientConnection.ContentType, "kube-api-content-type", options.config.ClientConnection.ContentType, "Content type of requests sent to apiserver.") fs.Float32Var(&options.config.ClientConnection.QPS, "kube-api-qps", options.config.ClientConnection.QPS, "QPS to use while talking with kubernetes apiserver") - fs.IntVar(&options.config.ClientConnection.Burst, "kube-api-burst", options.config.ClientConnection.Burst, "Burst to use while talking with kubernetes apiserver") + fs.Int32Var(&options.config.ClientConnection.Burst, "kube-api-burst", options.config.ClientConnection.Burst, "Burst to use while talking with kubernetes apiserver") fs.DurationVar(&options.config.UDPIdleTimeout.Duration, "udp-timeout", options.config.UDPIdleTimeout.Duration, "How long an idle UDP connection will be kept open (e.g. '250ms', '2s'). Must be greater than 0. Only applicable for proxy-mode=userspace") - fs.Int32Var(&options.config.Conntrack.Max, "conntrack-max", options.config.Conntrack.Max, + if options.config.Conntrack.Max == nil { + options.config.Conntrack.Max = utilpointer.Int32Ptr(0) + } + fs.Int32Var(options.config.Conntrack.Max, "conntrack-max", *options.config.Conntrack.Max, "Maximum number of NAT connections to track (0 to leave as-is). This overrides conntrack-max-per-core and conntrack-min.") fs.MarkDeprecated("conntrack-max", "This feature will be removed in a later release.") - fs.Int32Var(&options.config.Conntrack.MaxPerCore, "conntrack-max-per-core", options.config.Conntrack.MaxPerCore, + fs.Int32Var(options.config.Conntrack.MaxPerCore, "conntrack-max-per-core", *options.config.Conntrack.MaxPerCore, "Maximum number of NAT connections to track per CPU core (0 to leave the limit as-is and ignore conntrack-min).") - fs.Int32Var(&options.config.Conntrack.Min, "conntrack-min", options.config.Conntrack.Min, + fs.Int32Var(options.config.Conntrack.Min, "conntrack-min", *options.config.Conntrack.Min, "Minimum number of conntrack entries to allocate, regardless of conntrack-max-per-core (set conntrack-max-per-core=0 to leave the limit as-is).") fs.DurationVar(&options.config.Conntrack.TCPEstablishedTimeout.Duration, "conntrack-tcp-timeout-established", options.config.Conntrack.TCPEstablishedTimeout.Duration, "Idle timeout for established TCP connections (0 to leave as-is)") fs.DurationVar( @@ -160,23 +166,13 @@ func AddFlags(options *Options, fs *pflag.FlagSet) { utilfeature.DefaultFeatureGate.AddFlag(fs) } -func NewOptions() (*Options, error) { - o := &Options{ - config: new(componentconfig.KubeProxyConfiguration), +func NewOptions() *Options { + return &Options{ + config: new(kubeproxyconfig.KubeProxyConfiguration), healthzPort: ports.ProxyHealthzPort, + scheme: scheme.Scheme, + codecs: scheme.Codecs, } - - o.scheme = runtime.NewScheme() - o.codecs = serializer.NewCodecFactory(o.scheme) - - if err := componentconfig.AddToScheme(o.scheme); err != nil { - return nil, err - } - if err := v1alpha1.AddToScheme(o.scheme); err != nil { - return nil, err - } - - return o, nil } // Complete completes all the required options. @@ -186,6 +182,17 @@ func (o *Options) Complete() error { o.applyDeprecatedHealthzPortToConfig() } + // Load the config file here in Complete, so that Validate validates the fully-resolved config. + if len(o.ConfigFile) > 0 { + if c, err := o.loadConfigFromFile(o.ConfigFile); err != nil { + return err + } else { + o.config = c + // Make sure we apply the feature gate settings in the config file. + utilfeature.DefaultFeatureGate.Set(o.config.FeatureGates) + } + } + return nil } @@ -195,7 +202,7 @@ func (o *Options) Validate(args []string) error { return errors.New("no arguments are supported") } - if errs := Validate(o.config); len(errs) != 0 { + if errs := validation.Validate(o.config); len(errs) != 0 { return errs.ToAggregate() } @@ -203,23 +210,11 @@ func (o *Options) Validate(args []string) error { } func (o *Options) Run() error { - config := o.config - if len(o.WriteConfigTo) > 0 { return o.writeConfigFile() } - if len(o.ConfigFile) > 0 { - if c, err := o.loadConfigFromFile(o.ConfigFile); err != nil { - return err - } else { - config = c - // Make sure we apply the feature gate settings in the config file. - utilfeature.DefaultFeatureGate.Set(config.FeatureGates) - } - } - - proxyServer, err := NewProxyServer(config, o.CleanupAndExit, o.scheme, o.master) + proxyServer, err := NewProxyServer(o.config, o.CleanupAndExit, o.scheme, o.master) if err != nil { return err } @@ -279,7 +274,7 @@ func (o *Options) applyDeprecatedHealthzPortToConfig() { // loadConfigFromFile loads the contents of file and decodes it as a // KubeProxyConfiguration object. -func (o *Options) loadConfigFromFile(file string) (*componentconfig.KubeProxyConfiguration, error) { +func (o *Options) loadConfigFromFile(file string) (*kubeproxyconfig.KubeProxyConfiguration, error) { data, err := ioutil.ReadFile(file) if err != nil { return nil, err @@ -289,19 +284,19 @@ func (o *Options) loadConfigFromFile(file string) (*componentconfig.KubeProxyCon } // loadConfig decodes data as a KubeProxyConfiguration object. -func (o *Options) loadConfig(data []byte) (*componentconfig.KubeProxyConfiguration, error) { +func (o *Options) loadConfig(data []byte) (*kubeproxyconfig.KubeProxyConfiguration, error) { configObj, gvk, err := o.codecs.UniversalDecoder().Decode(data, nil, nil) if err != nil { return nil, err } - config, ok := configObj.(*componentconfig.KubeProxyConfiguration) + config, ok := configObj.(*kubeproxyconfig.KubeProxyConfiguration) if !ok { return nil, fmt.Errorf("got unexpected config type: %v", gvk) } return config, nil } -func (o *Options) ApplyDefaults(in *componentconfig.KubeProxyConfiguration) (*componentconfig.KubeProxyConfiguration, error) { +func (o *Options) ApplyDefaults(in *kubeproxyconfig.KubeProxyConfiguration) (*kubeproxyconfig.KubeProxyConfiguration, error) { external, err := o.scheme.ConvertToVersion(in, v1alpha1.SchemeGroupVersion) if err != nil { return nil, err @@ -309,22 +304,19 @@ func (o *Options) ApplyDefaults(in *componentconfig.KubeProxyConfiguration) (*co o.scheme.Default(external) - internal, err := o.scheme.ConvertToVersion(external, componentconfig.SchemeGroupVersion) + internal, err := o.scheme.ConvertToVersion(external, kubeproxyconfig.SchemeGroupVersion) if err != nil { return nil, err } - out := internal.(*componentconfig.KubeProxyConfiguration) + out := internal.(*kubeproxyconfig.KubeProxyConfiguration) return out, nil } // NewProxyCommand creates a *cobra.Command object with default parameters func NewProxyCommand() *cobra.Command { - opts, err := NewOptions() - if err != nil { - glog.Fatalf("Unable to initialize command options: %v", err) - } + opts := NewOptions() cmd := &cobra.Command{ Use: "kube-proxy", @@ -343,6 +335,7 @@ with the apiserver API to configure the proxy.`, }, } + var err error opts.config, err = opts.ApplyDefaults(opts.config) if err != nil { glog.Fatalf("unable to create flag defaults: %v", err) @@ -367,7 +360,7 @@ type ProxyServer struct { Proxier proxy.ProxyProvider Broadcaster record.EventBroadcaster Recorder record.EventRecorder - ConntrackConfiguration componentconfig.KubeProxyConntrackConfiguration + ConntrackConfiguration kubeproxyconfig.KubeProxyConntrackConfiguration Conntracker Conntracker // if nil, ignored ProxyMode string NodeRef *v1.ObjectReference @@ -377,14 +370,14 @@ type ProxyServer struct { OOMScoreAdj *int32 ResourceContainer string ConfigSyncPeriod time.Duration - ServiceEventHandler proxyconfig.ServiceHandler - EndpointsEventHandler proxyconfig.EndpointsHandler + ServiceEventHandler config.ServiceHandler + EndpointsEventHandler config.EndpointsHandler HealthzServer *healthcheck.HealthzServer } // createClients creates a kube client and an event client from the given config and masterOverride. // TODO remove masterOverride when CLI flags are removed. -func createClients(config componentconfig.ClientConnectionConfiguration, masterOverride string) (clientset.Interface, v1core.EventsGetter, error) { +func createClients(config kubeproxyconfig.ClientConnectionConfiguration, masterOverride string) (clientset.Interface, v1core.EventsGetter, error) { var kubeConfig *rest.Config var err error @@ -429,7 +422,7 @@ func (s *ProxyServer) Run() error { if s.CleanupAndExit { encounteredError := userspace.CleanupLeftovers(s.IptInterface) encounteredError = iptables.CleanupLeftovers(s.IptInterface) || encounteredError - encounteredError = ipvs.CleanupLeftovers(s.execer, s.IpvsInterface, s.IptInterface) || encounteredError + encounteredError = ipvs.CleanupLeftovers(s.IpvsInterface, s.IptInterface) || encounteredError if encounteredError { return errors.New("encountered an error while tearing down rules.") } @@ -511,14 +504,14 @@ func (s *ProxyServer) Run() error { } } - if s.ConntrackConfiguration.TCPEstablishedTimeout.Duration > 0 { + if s.ConntrackConfiguration.TCPEstablishedTimeout != nil && s.ConntrackConfiguration.TCPEstablishedTimeout.Duration > 0 { timeout := int(s.ConntrackConfiguration.TCPEstablishedTimeout.Duration / time.Second) if err := s.Conntracker.SetTCPEstablishedTimeout(timeout); err != nil { return err } } - if s.ConntrackConfiguration.TCPCloseWaitTimeout.Duration > 0 { + if s.ConntrackConfiguration.TCPCloseWaitTimeout != nil && s.ConntrackConfiguration.TCPCloseWaitTimeout.Duration > 0 { timeout := int(s.ConntrackConfiguration.TCPCloseWaitTimeout.Duration / time.Second) if err := s.Conntracker.SetTCPCloseWaitTimeout(timeout); err != nil { return err @@ -532,11 +525,11 @@ func (s *ProxyServer) Run() error { // Note: RegisterHandler() calls need to happen before creation of Sources because sources // only notify on changes, and the initial update (on process start) may be lost if no handlers // are registered yet. - serviceConfig := proxyconfig.NewServiceConfig(informerFactory.Core().InternalVersion().Services(), s.ConfigSyncPeriod) + serviceConfig := config.NewServiceConfig(informerFactory.Core().InternalVersion().Services(), s.ConfigSyncPeriod) serviceConfig.RegisterEventHandler(s.ServiceEventHandler) go serviceConfig.Run(wait.NeverStop) - endpointsConfig := proxyconfig.NewEndpointsConfig(informerFactory.Core().InternalVersion().Endpoints(), s.ConfigSyncPeriod) + endpointsConfig := config.NewEndpointsConfig(informerFactory.Core().InternalVersion().Endpoints(), s.ConfigSyncPeriod) endpointsConfig.RegisterEventHandler(s.EndpointsEventHandler) go endpointsConfig.Run(wait.NeverStop) @@ -556,17 +549,20 @@ func (s *ProxyServer) birthCry() { s.Recorder.Eventf(s.NodeRef, api.EventTypeNormal, "Starting", "Starting kube-proxy.") } -func getConntrackMax(config componentconfig.KubeProxyConntrackConfiguration) (int, error) { - if config.Max > 0 { - if config.MaxPerCore > 0 { +func getConntrackMax(config kubeproxyconfig.KubeProxyConntrackConfiguration) (int, error) { + if config.Max != nil && *config.Max > 0 { + if config.MaxPerCore != nil && *config.MaxPerCore > 0 { return -1, fmt.Errorf("invalid config: Conntrack Max and Conntrack MaxPerCore are mutually exclusive") } glog.V(3).Infof("getConntrackMax: using absolute conntrack-max (deprecated)") - return int(config.Max), nil + return int(*config.Max), nil } - if config.MaxPerCore > 0 { - floor := int(config.Min) - scaled := int(config.MaxPerCore) * goruntime.NumCPU() + if config.MaxPerCore != nil && *config.MaxPerCore > 0 { + floor := 0 + if config.Min != nil { + floor = int(*config.Min) + } + scaled := int(*config.MaxPerCore) * goruntime.NumCPU() if scaled > floor { glog.V(3).Infof("getConntrackMax: using scaled conntrack-max-per-core") return scaled, nil diff --git a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_others.go b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_others.go index 479d2adb4..035d0593f 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_others.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_others.go @@ -32,13 +32,14 @@ import ( utilruntime "k8s.io/apimachinery/pkg/util/runtime" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/proxy" + proxyconfigapi "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig" proxyconfig "k8s.io/kubernetes/pkg/proxy/config" "k8s.io/kubernetes/pkg/proxy/healthcheck" "k8s.io/kubernetes/pkg/proxy/iptables" "k8s.io/kubernetes/pkg/proxy/ipvs" + "k8s.io/kubernetes/pkg/proxy/metrics" "k8s.io/kubernetes/pkg/proxy/userspace" "k8s.io/kubernetes/pkg/util/configz" utildbus "k8s.io/kubernetes/pkg/util/dbus" @@ -52,12 +53,12 @@ import ( ) // NewProxyServer returns a new ProxyServer. -func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndExit bool, scheme *runtime.Scheme, master string) (*ProxyServer, error) { +func NewProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExit bool, scheme *runtime.Scheme, master string) (*ProxyServer, error) { if config == nil { return nil, errors.New("config is required") } - if c, err := configz.New("componentconfig"); err == nil { + if c, err := configz.New(proxyconfigapi.GroupName); err == nil { c.Set(config) } else { return nil, fmt.Errorf("unable to register configz: %s", err) @@ -82,7 +83,12 @@ func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndEx // We omit creation of pretty much everything if we run in cleanup mode if cleanupAndExit { - return &ProxyServer{IptInterface: iptInterface, IpvsInterface: ipvsInterface, CleanupAndExit: cleanupAndExit}, nil + return &ProxyServer{ + execer: execer, + IptInterface: iptInterface, + IpvsInterface: ipvsInterface, + CleanupAndExit: cleanupAndExit, + }, nil } client, eventClient, err := createClients(config.ClientConnection, master) @@ -143,7 +149,7 @@ func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndEx if err != nil { return nil, fmt.Errorf("unable to create proxier: %v", err) } - iptables.RegisterMetrics() + metrics.RegisterMetrics() proxier = proxierIPTables serviceEventHandler = proxierIPTables endpointsEventHandler = proxierIPTables @@ -153,7 +159,7 @@ func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndEx userspace.CleanupLeftovers(iptInterface) // IPVS Proxier will generate some iptables rules, // need to clean them before switching to other proxy mode. - ipvs.CleanupLeftovers(execer, ipvsInterface, iptInterface) + ipvs.CleanupLeftovers(ipvsInterface, iptInterface) } else if proxyMode == proxyModeIPVS { glog.V(0).Info("Using ipvs Proxier.") proxierIPVS, err := ipvs.NewProxier( @@ -175,6 +181,7 @@ func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndEx if err != nil { return nil, fmt.Errorf("unable to create proxier: %v", err) } + metrics.RegisterMetrics() proxier = proxierIPVS serviceEventHandler = proxierIPVS endpointsEventHandler = proxierIPVS @@ -213,7 +220,7 @@ func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndEx iptables.CleanupLeftovers(iptInterface) // IPVS Proxier will generate some iptables rules, // need to clean them before switching to other proxy mode. - ipvs.CleanupLeftovers(execer, ipvsInterface, iptInterface) + ipvs.CleanupLeftovers(ipvsInterface, iptInterface) } iptInterface.AddReloadFunc(proxier.Sync) @@ -268,8 +275,8 @@ func tryIPVSProxy(iptver iptables.IPTablesVersioner, kcompat iptables.KernelComp // IPVS Proxier relies on iptables useIPVSProxy, err := ipvs.CanUseIPVSProxier() if err != nil { - utilruntime.HandleError(fmt.Errorf("can't determine whether to use ipvs proxy, using userspace proxier: %v", err)) - return proxyModeUserspace + // Try to fallback to iptables before falling back to userspace + utilruntime.HandleError(fmt.Errorf("can't determine whether to use ipvs proxy, error: %v", err)) } if useIPVSProxy { return proxyModeIPVS diff --git a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_test.go b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_test.go index e6e070806..b2fc19a03 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_test.go @@ -17,7 +17,6 @@ limitations under the License. package app import ( - "errors" "fmt" "reflect" "runtime" @@ -28,11 +27,9 @@ import ( "github.com/stretchr/testify/assert" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - k8sRuntime "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/componentconfig" - "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig" "k8s.io/kubernetes/pkg/util/configz" "k8s.io/kubernetes/pkg/util/iptables" utilpointer "k8s.io/kubernetes/pkg/util/pointer" @@ -138,40 +135,6 @@ func Test_getProxyMode(t *testing.T) { } } -// TestNewOptionsFailures tests failure modes for NewOptions() -func TestNewOptionsFailures(t *testing.T) { - - // Create a fake scheme builder that generates an error - errString := fmt.Sprintf("Simulated error") - genError := func(scheme *k8sRuntime.Scheme) error { - return errors.New(errString) - } - fakeSchemeBuilder := k8sRuntime.NewSchemeBuilder(genError) - - simulatedErrorTest := func(target string) { - var addToScheme *func(s *k8sRuntime.Scheme) error - if target == "componentconfig" { - addToScheme = &componentconfig.AddToScheme - } else { - addToScheme = &v1alpha1.AddToScheme - } - restoreValue := *addToScheme - restore := func() { - *addToScheme = restoreValue - } - defer restore() - *addToScheme = fakeSchemeBuilder.AddToScheme - _, err := NewOptions() - assert.Error(t, err, fmt.Sprintf("Simulated error in component %s", target)) - } - - // Simulate errors in calls to AddToScheme() - faultTargets := []string{"componentconfig", "v1alpha1"} - for _, target := range faultTargets { - simulatedErrorTest(target) - } -} - // This test verifies that NewProxyServer does not crash when CleanupAndExit is true. func TestProxyServerWithCleanupAndExit(t *testing.T) { // Each bind address below is a separate test case @@ -180,12 +143,9 @@ func TestProxyServerWithCleanupAndExit(t *testing.T) { "::", } for _, addr := range bindAddresses { - options, err := NewOptions() - if err != nil { - t.Fatalf("Unexpected error with address %s: %v", addr, err) - } + options := NewOptions() - options.config = &componentconfig.KubeProxyConfiguration{ + options.config = &kubeproxyconfig.KubeProxyConfiguration{ BindAddress: addr, } options.CleanupAndExit = true @@ -198,7 +158,7 @@ func TestProxyServerWithCleanupAndExit(t *testing.T) { assert.True(t, proxyserver.CleanupAndExit, "false CleanupAndExit, addr: %s", addr) // Clean up config for next test case - configz.Delete("componentconfig") + configz.Delete(kubeproxyconfig.GroupName) } } @@ -242,10 +202,10 @@ func TestGetConntrackMax(t *testing.T) { } for i, tc := range testCases { - cfg := componentconfig.KubeProxyConntrackConfiguration{ - Min: tc.min, - Max: tc.max, - MaxPerCore: tc.maxPerCore, + cfg := kubeproxyconfig.KubeProxyConntrackConfiguration{ + Min: utilpointer.Int32Ptr(tc.min), + Max: utilpointer.Int32Ptr(tc.max), + MaxPerCore: utilpointer.Int32Ptr(tc.maxPerCore), } x, e := getConntrackMax(cfg) if e != nil { @@ -263,7 +223,7 @@ func TestGetConntrackMax(t *testing.T) { // TestLoadConfig tests proper operation of loadConfig() func TestLoadConfig(t *testing.T) { - yamlTemplate := `apiVersion: componentconfig/v1alpha1 + yamlTemplate := `apiVersion: kubeproxy.config.k8s.io/v1alpha1 bindAddress: %s clientConnection: acceptContentTypes: "abc" @@ -372,9 +332,9 @@ udpTimeoutMilliseconds: 123ms // Surrounding double quotes will get stripped by the yaml parser. expBindAddr = expBindAddr[1 : len(tc.bindAddress)-1] } - expected := &componentconfig.KubeProxyConfiguration{ + expected := &kubeproxyconfig.KubeProxyConfiguration{ BindAddress: expBindAddr, - ClientConnection: componentconfig.ClientConnectionConfiguration{ + ClientConnection: kubeproxyconfig.ClientConnectionConfiguration{ AcceptContentTypes: "abc", Burst: 100, ContentType: "content-type", @@ -383,36 +343,35 @@ udpTimeoutMilliseconds: 123ms }, ClusterCIDR: tc.clusterCIDR, ConfigSyncPeriod: metav1.Duration{Duration: 15 * time.Second}, - Conntrack: componentconfig.KubeProxyConntrackConfiguration{ - Max: 4, - MaxPerCore: 2, - Min: 1, - TCPCloseWaitTimeout: metav1.Duration{Duration: 10 * time.Second}, - TCPEstablishedTimeout: metav1.Duration{Duration: 20 * time.Second}, + Conntrack: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: utilpointer.Int32Ptr(4), + MaxPerCore: utilpointer.Int32Ptr(2), + Min: utilpointer.Int32Ptr(1), + TCPCloseWaitTimeout: &metav1.Duration{Duration: 10 * time.Second}, + TCPEstablishedTimeout: &metav1.Duration{Duration: 20 * time.Second}, }, FeatureGates: "all", HealthzBindAddress: tc.healthzBindAddress, HostnameOverride: "foo", - IPTables: componentconfig.KubeProxyIPTablesConfiguration{ + IPTables: kubeproxyconfig.KubeProxyIPTablesConfiguration{ MasqueradeAll: true, MasqueradeBit: utilpointer.Int32Ptr(17), MinSyncPeriod: metav1.Duration{Duration: 10 * time.Second}, SyncPeriod: metav1.Duration{Duration: 60 * time.Second}, }, - IPVS: componentconfig.KubeProxyIPVSConfiguration{ + IPVS: kubeproxyconfig.KubeProxyIPVSConfiguration{ MinSyncPeriod: metav1.Duration{Duration: 10 * time.Second}, SyncPeriod: metav1.Duration{Duration: 60 * time.Second}, }, MetricsBindAddress: tc.metricsBindAddress, - Mode: componentconfig.ProxyMode(tc.mode), + Mode: kubeproxyconfig.ProxyMode(tc.mode), OOMScoreAdj: utilpointer.Int32Ptr(17), PortRange: "2-7", ResourceContainer: "/foo", UDPIdleTimeout: metav1.Duration{Duration: 123 * time.Millisecond}, } - options, err := NewOptions() - assert.NoError(t, err, "unexpected error for %s: %v", tc.name, err) + options := NewOptions() yaml := fmt.Sprintf( yamlTemplate, tc.bindAddress, tc.clusterCIDR, @@ -440,7 +399,7 @@ func TestLoadConfigFailures(t *testing.T) { { name: "Bad config type test", config: "kind: KubeSchedulerConfiguration", - expErr: "unexpected config type", + expErr: "no kind", }, { name: "Missing quotes around :: bindAddress", @@ -448,9 +407,9 @@ func TestLoadConfigFailures(t *testing.T) { expErr: "mapping values are not allowed in this context", }, } - version := "apiVersion: componentconfig/v1alpha1" + version := "apiVersion: kubeproxy.config.k8s.io/v1alpha1" for _, tc := range testCases { - options, _ := NewOptions() + options := NewOptions() config := fmt.Sprintf("%s\n%s", version, tc.config) _, err := options.loadConfig([]byte(config)) if assert.Error(t, err, tc.name) { diff --git a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_windows.go b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_windows.go index f4f46386a..12c36ac56 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_windows.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/server_windows.go @@ -31,8 +31,8 @@ import ( "k8s.io/apimachinery/pkg/types" utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/proxy" + proxyconfigapi "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig" proxyconfig "k8s.io/kubernetes/pkg/proxy/config" "k8s.io/kubernetes/pkg/proxy/healthcheck" "k8s.io/kubernetes/pkg/proxy/winkernel" @@ -46,12 +46,12 @@ import ( ) // NewProxyServer returns a new ProxyServer. -func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndExit bool, scheme *runtime.Scheme, master string) (*ProxyServer, error) { +func NewProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExit bool, scheme *runtime.Scheme, master string) (*ProxyServer, error) { if config == nil { return nil, errors.New("config is required") } - if c, err := configz.New("componentconfig"); err == nil { + if c, err := configz.New(proxyconfigapi.GroupName); err == nil { c.Set(config) } else { return nil, fmt.Errorf("unable to register configz: %s", err) diff --git a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/validation_test.go b/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/validation_test.go deleted file mode 100644 index cd30adcdf..000000000 --- a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/validation_test.go +++ /dev/null @@ -1,403 +0,0 @@ -/* -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 app - -import ( - "strings" - "testing" - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/apis/componentconfig" -) - -func TestValidateKubeProxyConfiguration(t *testing.T) { - successCases := []componentconfig.KubeProxyConfiguration{ - { - BindAddress: "192.168.59.103", - HealthzBindAddress: "0.0.0.0:10256", - MetricsBindAddress: "127.0.0.1:10249", - ClusterCIDR: "192.168.59.0/24", - UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, - ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, - IPTables: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - Conntrack: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(2), - MaxPerCore: int32(1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - }, - } - - for _, successCase := range successCases { - if errs := Validate(&successCase); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } - } - - errorCases := []struct { - config componentconfig.KubeProxyConfiguration - msg string - }{ - { - config: componentconfig.KubeProxyConfiguration{ - // only BindAddress is invalid - BindAddress: "10.10.12.11:2000", - HealthzBindAddress: "0.0.0.0:10256", - MetricsBindAddress: "127.0.0.1:10249", - ClusterCIDR: "192.168.59.0/24", - UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, - ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, - IPTables: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - Conntrack: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(2), - MaxPerCore: int32(1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - }, - msg: "not a valid textual representation of an IP address", - }, - { - config: componentconfig.KubeProxyConfiguration{ - BindAddress: "10.10.12.11", - // only HealthzBindAddress is invalid - HealthzBindAddress: "0.0.0.0", - MetricsBindAddress: "127.0.0.1:10249", - ClusterCIDR: "192.168.59.0/24", - UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, - ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, - IPTables: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - Conntrack: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(2), - MaxPerCore: int32(1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - }, - msg: "must be IP:port", - }, - { - config: componentconfig.KubeProxyConfiguration{ - BindAddress: "10.10.12.11", - HealthzBindAddress: "0.0.0.0:12345", - // only HealthzBindAddress is invalid - MetricsBindAddress: "127.0.0.1", - ClusterCIDR: "192.168.59.0/24", - UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, - ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, - IPTables: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - Conntrack: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(2), - MaxPerCore: int32(1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - }, - msg: "must be IP:port", - }, - { - config: componentconfig.KubeProxyConfiguration{ - BindAddress: "10.10.12.11", - HealthzBindAddress: "0.0.0.0:12345", - MetricsBindAddress: "127.0.0.1:10249", - // only ClusterCIDR is invalid - ClusterCIDR: "192.168.59.0", - UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, - ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, - IPTables: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - Conntrack: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(2), - MaxPerCore: int32(1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - }, - msg: "must be a valid CIDR block (e.g. 10.100.0.0/16)", - }, - { - config: componentconfig.KubeProxyConfiguration{ - BindAddress: "10.10.12.11", - HealthzBindAddress: "0.0.0.0:12345", - MetricsBindAddress: "127.0.0.1:10249", - ClusterCIDR: "192.168.59.0/24", - // only UDPIdleTimeout is invalid - UDPIdleTimeout: metav1.Duration{Duration: -1 * time.Second}, - ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, - IPTables: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - Conntrack: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(2), - MaxPerCore: int32(1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - }, - msg: "must be greater than 0", - }, - { - config: componentconfig.KubeProxyConfiguration{ - BindAddress: "10.10.12.11", - HealthzBindAddress: "0.0.0.0:12345", - MetricsBindAddress: "127.0.0.1:10249", - ClusterCIDR: "192.168.59.0/24", - UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, - // only ConfigSyncPeriod is invalid - ConfigSyncPeriod: metav1.Duration{Duration: -1 * time.Second}, - IPTables: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - Conntrack: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(2), - MaxPerCore: int32(1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - }, - msg: "must be greater than 0", - }, - } - - for _, errorCase := range errorCases { - if errs := Validate(&errorCase.config); len(errs) == 0 { - t.Errorf("expected failure for %s", errorCase.msg) - } else if !strings.Contains(errs[0].Error(), errorCase.msg) { - t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) - } - } -} - -func TestValidateKubeProxyIPTablesConfiguration(t *testing.T) { - valid := int32(5) - successCases := []componentconfig.KubeProxyIPTablesConfiguration{ - { - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - { - MasqueradeBit: &valid, - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - } - newPath := field.NewPath("KubeProxyConfiguration") - for _, successCase := range successCases { - if errs := validateKubeProxyIPTablesConfiguration(successCase, newPath.Child("KubeProxyIPTablesConfiguration")); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } - } - - invalid := int32(-10) - errorCases := []struct { - config componentconfig.KubeProxyIPTablesConfiguration - msg string - }{ - { - config: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: -5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - msg: "must be greater than 0", - }, - { - config: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeBit: &valid, - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: -1 * time.Second}, - }, - msg: "must be greater than or equal to 0", - }, - { - config: componentconfig.KubeProxyIPTablesConfiguration{ - MasqueradeBit: &invalid, - MasqueradeAll: true, - SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, - MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, - }, - msg: "must be within the range [0, 31]", - }, - } - - for _, errorCase := range errorCases { - if errs := validateKubeProxyIPTablesConfiguration(errorCase.config, newPath.Child("KubeProxyIPTablesConfiguration")); len(errs) == 0 { - t.Errorf("expected failure for %s", errorCase.msg) - } else if !strings.Contains(errs[0].Error(), errorCase.msg) { - t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) - } - } -} - -func TestValidateKubeProxyConntrackConfiguration(t *testing.T) { - successCases := []componentconfig.KubeProxyConntrackConfiguration{ - { - Max: int32(2), - MaxPerCore: int32(1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - { - Max: 0, - MaxPerCore: 0, - Min: 0, - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 60 * time.Second}, - }, - } - newPath := field.NewPath("KubeProxyConfiguration") - for _, successCase := range successCases { - if errs := validateKubeProxyConntrackConfiguration(successCase, newPath.Child("KubeProxyConntrackConfiguration")); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } - } - - errorCases := []struct { - config componentconfig.KubeProxyConntrackConfiguration - msg string - }{ - { - config: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(-1), - MaxPerCore: int32(1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - msg: "must be greater than or equal to 0", - }, - { - config: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(2), - MaxPerCore: int32(-1), - Min: int32(1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - msg: "must be greater than or equal to 0", - }, - { - config: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(2), - MaxPerCore: int32(1), - Min: int32(-1), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - msg: "must be greater than or equal to 0", - }, - { - config: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(4), - MaxPerCore: int32(1), - Min: int32(3), - TCPEstablishedTimeout: metav1.Duration{Duration: -5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: 5 * time.Second}, - }, - msg: "must be greater than 0", - }, - { - config: componentconfig.KubeProxyConntrackConfiguration{ - Max: int32(4), - MaxPerCore: int32(1), - Min: int32(3), - TCPEstablishedTimeout: metav1.Duration{Duration: 5 * time.Second}, - TCPCloseWaitTimeout: metav1.Duration{Duration: -5 * time.Second}, - }, - msg: "must be greater than 0", - }, - } - - for _, errorCase := range errorCases { - if errs := validateKubeProxyConntrackConfiguration(errorCase.config, newPath.Child("KubeProxyConntrackConfiguration")); len(errs) == 0 { - t.Errorf("expected failure for %s", errorCase.msg) - } else if !strings.Contains(errs[0].Error(), errorCase.msg) { - t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) - } - } -} - -func TestValidateProxyMode(t *testing.T) { - newPath := field.NewPath("KubeProxyConfiguration") - - successCases := []componentconfig.ProxyMode{ - componentconfig.ProxyModeUserspace, - componentconfig.ProxyModeIPTables, - componentconfig.ProxyMode(""), - } - - for _, successCase := range successCases { - if errs := validateProxyMode(successCase, newPath.Child("ProxyMode")); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } - } - - errorCases := []struct { - mode componentconfig.ProxyMode - msg string - }{ - { - mode: componentconfig.ProxyMode("non-existing"), - msg: "or blank (blank means the best-available proxy (currently iptables)", - }, - } - - for _, errorCase := range errorCases { - if errs := validateProxyMode(errorCase.mode, newPath.Child("ProxyMode")); len(errs) == 0 { - t.Errorf("expected failure for %s", errorCase.msg) - } else if !strings.Contains(errs[0].Error(), errorCase.msg) { - t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) - } - } -} diff --git a/vendor/k8s.io/kubernetes/cmd/kube-proxy/proxy.go b/vendor/k8s.io/kubernetes/cmd/kube-proxy/proxy.go index 9ec68a51f..a9c958d6b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-proxy/proxy.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-proxy/proxy.go @@ -18,6 +18,7 @@ package main import ( goflag "flag" + "fmt" "os" "github.com/spf13/pflag" @@ -42,6 +43,7 @@ func main() { defer logs.FlushLogs() if err := command.Execute(); err != nil { + fmt.Fprintf(os.Stderr, "error: %v\n", err) os.Exit(1) } } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/BUILD index e015f2ef5..d35075b27 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/BUILD @@ -17,7 +17,6 @@ go_library( importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/doc.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/doc.go index 39d93b5d1..21b45eda4 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/doc.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/doc.go @@ -17,7 +17,7 @@ limitations under the License. // Package kubeadm is the package that contains the libraries that drive the kubeadm binary. // kubeadm is responsible for handling a Kubernetes cluster's lifecycle. -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=kubeadm.k8s.io package kubeadm // import "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD index b87eee900..5964d9097 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD @@ -12,6 +12,7 @@ go_library( deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go index bee5c7d23..fbf0090c2 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go @@ -17,8 +17,11 @@ limitations under the License. package fuzzer import ( + "time" + "github.com/google/gofuzz" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" ) @@ -30,6 +33,7 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} { c.FuzzNoCustom(obj) obj.KubernetesVersion = "v10" obj.API.BindPort = 20 + obj.TokenTTL = &metav1.Duration{Duration: 1 * time.Hour} obj.API.AdvertiseAddress = "foo" obj.Networking.ServiceSubnet = "foo" obj.Networking.DNSDomain = "foo" @@ -43,6 +47,12 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} { obj.CIImageRepository = "" obj.UnifiedControlPlaneImage = "foo" obj.FeatureGates = map[string]bool{} + obj.Etcd.SelfHosted = &kubeadm.SelfHostedEtcd{ + CertificatesDir: "/etc/kubernetes/pki/etcd", + ClusterServiceName: "etcd-cluster", + EtcdVersion: "v0.1.0", + OperatorVersion: "v0.1.0", + } }, func(obj *kubeadm.NodeConfiguration, c fuzz.Continue) { c.FuzzNoCustom(obj) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/BUILD index 4a78dc2ac..529b36d74 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/BUILD @@ -16,7 +16,7 @@ go_library( deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/install.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/install.go index 81f0174a7..0e1ebfca4 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/install.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install/install.go @@ -22,11 +22,11 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/types.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/types.go index 1d2deaf73..72f6d2b34 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/types.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/types.go @@ -36,12 +36,16 @@ type MasterConfiguration struct { AuthorizationModes []string Token string - TokenTTL metav1.Duration + TokenTTL *metav1.Duration APIServerExtraArgs map[string]string ControllerManagerExtraArgs map[string]string SchedulerExtraArgs map[string]string + APIServerExtraVolumes []HostPathMount + ControllerManagerExtraVolumes []HostPathMount + SchedulerExtraVolumes []HostPathMount + // APIServerCertSANs sets extra Subject Alternative Names for the API Server signing cert APIServerCertSANs []string // CertificatesDir specifies where to store or look for all required certificates @@ -92,7 +96,21 @@ type Etcd struct { DataDir string ExtraArgs map[string]string // Image specifies which container image to use for running etcd. If empty, automatically populated by kubeadm using the image repository and default etcd version - Image string + Image string + SelfHosted *SelfHostedEtcd +} + +// SelfHostedEtcd describes options required to configure self-hosted etcd +type SelfHostedEtcd struct { + // CertificatesDir represents the directory where all etcd TLS assets are stored. By default this is + // a dir names "etcd" in the main CertificatesDir value. + CertificatesDir string + // ClusterServiceName is the name of the service that load balances the etcd cluster + ClusterServiceName string + // EtcdVersion is the version of etcd running in the cluster. + EtcdVersion string + // OperatorVersion is the version of the etcd-operator to use. + OperatorVersion string } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -137,3 +155,11 @@ func (cfg *MasterConfiguration) GetControlPlaneImageRepository() string { } return cfg.ImageRepository } + +// HostPathMount contains elements describing volumes that are mounted from the +// host +type HostPathMount struct { + Name string + HostPath string + MountPath string +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD index 427c31061..560098119 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD @@ -9,13 +9,19 @@ go_library( name = "go_default_library", srcs = [ "defaults.go", + "defaults_unix.go", "doc.go", "register.go", "types.go", "zz_generated.conversion.go", "zz_generated.deepcopy.go", "zz_generated.defaults.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "defaults_windows.go", + ], + "//conditions:default": [], + }), importpath = "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1", deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go index 5ed7eccc0..6edb7785f 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go @@ -36,14 +36,21 @@ const ( DefaultAPIBindPort = 6443 // DefaultAuthorizationModes defines default authorization modes DefaultAuthorizationModes = "Node,RBAC" - // DefaultCACertPath defines default location of CA certificate - DefaultCACertPath = "/etc/kubernetes/pki/ca.crt" // DefaultCertificatesDir defines default certificate directory DefaultCertificatesDir = "/etc/kubernetes/pki" - // DefaultEtcdDataDir defines default location of etcd - DefaultEtcdDataDir = "/var/lib/etcd" // DefaultImageRepository defines default image registry DefaultImageRepository = "gcr.io/google_containers" + + // DefaultEtcdDataDir defines default location of etcd where static pods will save data to + DefaultEtcdDataDir = "/var/lib/etcd" + // DefaultEtcdClusterSize defines the default cluster size when using the etcd-operator + DefaultEtcdClusterSize = 3 + // DefaultEtcdOperatorVersion defines the default version of the etcd-operator to use + DefaultEtcdOperatorVersion = "v0.6.0" + // DefaultEtcdCertDir represents the directory where PKI assets are stored for self-hosted etcd + DefaultEtcdCertDir = "/etc/kubernetes/pki/etcd" + // DefaultEtcdClusterServiceName is the default name of the service backing the etcd cluster + DefaultEtcdClusterServiceName = "etcd-cluster" ) func addDefaultingFuncs(scheme *runtime.Scheme) error { @@ -76,8 +83,8 @@ func SetDefaults_MasterConfiguration(obj *MasterConfiguration) { obj.CertificatesDir = DefaultCertificatesDir } - if obj.TokenTTL.Duration == 0 { - obj.TokenTTL = metav1.Duration{ + if obj.TokenTTL == nil { + obj.TokenTTL = &metav1.Duration{ Duration: constants.DefaultTokenDuration, } } @@ -89,6 +96,8 @@ func SetDefaults_MasterConfiguration(obj *MasterConfiguration) { if obj.Etcd.DataDir == "" { obj.Etcd.DataDir = DefaultEtcdDataDir } + + SetDefaultsEtcdSelfHosted(obj) } // SetDefaults_NodeConfiguration assigns default values to a regular node @@ -110,3 +119,26 @@ func SetDefaults_NodeConfiguration(obj *NodeConfiguration) { } } } + +// SetDefaultsEtcdSelfHosted sets defaults for self-hosted etcd +func SetDefaultsEtcdSelfHosted(obj *MasterConfiguration) { + if obj.Etcd.SelfHosted == nil { + obj.Etcd.SelfHosted = &SelfHostedEtcd{} + } + + if obj.Etcd.SelfHosted.ClusterServiceName == "" { + obj.Etcd.SelfHosted.ClusterServiceName = DefaultEtcdClusterServiceName + } + + if obj.Etcd.SelfHosted.EtcdVersion == "" { + obj.Etcd.SelfHosted.EtcdVersion = constants.DefaultEtcdVersion + } + + if obj.Etcd.SelfHosted.OperatorVersion == "" { + obj.Etcd.SelfHosted.OperatorVersion = DefaultEtcdOperatorVersion + } + + if obj.Etcd.SelfHosted.CertificatesDir == "" { + obj.Etcd.SelfHosted.CertificatesDir = DefaultEtcdCertDir + } +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/generated_expansion.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults_unix.go similarity index 77% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/generated_expansion.go rename to vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults_unix.go index 6c1fd71f3..5de428506 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults_unix.go @@ -1,3 +1,5 @@ +// +build !windows + /* Copyright 2017 The Kubernetes Authors. @@ -14,12 +16,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1 - -type ConfigMapExpansion interface{} - -type EventExpansion interface{} - -type SecretExpansion interface{} +package v1alpha1 -type ServiceExpansion interface{} +// DefaultCACertPath defines default location of CA certificate on Linux +const DefaultCACertPath = "/etc/kubernetes/pki/ca.crt" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/errors/errors.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults_windows.go similarity index 77% rename from vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/errors/errors.go rename to vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults_windows.go index 25462ffd9..d07361393 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/errors/errors.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults_windows.go @@ -1,3 +1,5 @@ +// +build windows + /* Copyright 2017 The Kubernetes Authors. @@ -14,9 +16,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package errors - -import "fmt" +package v1alpha1 -var CorruptCheckpointError = fmt.Errorf("checkpoint is corrupted.") -var CheckpointNotFoundError = fmt.Errorf("checkpoint is not found.") +// DefaultCACertPath defines default location of CA certificate on Windows +const DefaultCACertPath = "C:/etc/kubernetes/pki/ca.crt" diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go index 9631171d2..b8e8f09fb 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go @@ -35,13 +35,17 @@ type MasterConfiguration struct { NodeName string `json:"nodeName"` AuthorizationModes []string `json:"authorizationModes,omitempty"` - Token string `json:"token"` - TokenTTL metav1.Duration `json:"tokenTTL"` + Token string `json:"token"` + TokenTTL *metav1.Duration `json:"tokenTTL,omitempty"` APIServerExtraArgs map[string]string `json:"apiServerExtraArgs,omitempty"` ControllerManagerExtraArgs map[string]string `json:"controllerManagerExtraArgs,omitempty"` SchedulerExtraArgs map[string]string `json:"schedulerExtraArgs,omitempty"` + APIServerExtraVolumes []HostPathMount `json:"apiServerExtraVolumes,omitempty"` + ControllerManagerExtraVolumes []HostPathMount `json:"controllerManagerExtraVolumes,omitempty"` + SchedulerExtraVolumes []HostPathMount `json:"schedulerExtraVolumes,omitempty"` + // APIServerCertSANs sets extra Subject Alternative Names for the API Server signing cert APIServerCertSANs []string `json:"apiServerCertSANs,omitempty"` // CertificatesDir specifies where to store or look for all required certificates @@ -87,7 +91,21 @@ type Etcd struct { DataDir string `json:"dataDir"` ExtraArgs map[string]string `json:"extraArgs,omitempty"` // Image specifies which container image to use for running etcd. If empty, automatically populated by kubeadm using the image repository and default etcd version - Image string `json:"image"` + Image string `json:"image"` + SelfHosted *SelfHostedEtcd `json:"selfHosted,omitempty"` +} + +// SelfHostedEtcd describes options required to configure self-hosted etcd +type SelfHostedEtcd struct { + // CertificatesDir represents the directory where all etcd TLS assets are stored. By default this is + // a dir names "etcd" in the main CertificatesDir value. + CertificatesDir string `json:"certificatesDir"` + // ClusterServiceName is the name of the service that load balances the etcd cluster + ClusterServiceName string `json:"clusterServiceName"` + // EtcdVersion is the version of etcd running in the cluster. + EtcdVersion string `json:"etcdVersion"` + // OperatorVersion is the version of the etcd-operator to use. + OperatorVersion string `json:"operatorVersion"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -119,3 +137,11 @@ type NodeConfiguration struct { // the security of kubeadm since other nodes can impersonate the master. DiscoveryTokenUnsafeSkipCAVerification bool `json:"discoveryTokenUnsafeSkipCAVerification"` } + +// HostPathMount contains elements describing volumes that are mounted from the +// host +type HostPathMount struct { + Name string `json:"name"` + HostPath string `json:"hostPath"` + MountPath string `json:"mountPath"` +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go index d47deab93..e61368cdb 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.conversion.go @@ -21,6 +21,7 @@ limitations under the License. package v1alpha1 import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" kubeadm "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" @@ -39,12 +40,16 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_kubeadm_API_To_v1alpha1_API, Convert_v1alpha1_Etcd_To_kubeadm_Etcd, Convert_kubeadm_Etcd_To_v1alpha1_Etcd, + Convert_v1alpha1_HostPathMount_To_kubeadm_HostPathMount, + Convert_kubeadm_HostPathMount_To_v1alpha1_HostPathMount, Convert_v1alpha1_MasterConfiguration_To_kubeadm_MasterConfiguration, Convert_kubeadm_MasterConfiguration_To_v1alpha1_MasterConfiguration, Convert_v1alpha1_Networking_To_kubeadm_Networking, Convert_kubeadm_Networking_To_v1alpha1_Networking, Convert_v1alpha1_NodeConfiguration_To_kubeadm_NodeConfiguration, Convert_kubeadm_NodeConfiguration_To_v1alpha1_NodeConfiguration, + Convert_v1alpha1_SelfHostedEtcd_To_kubeadm_SelfHostedEtcd, + Convert_kubeadm_SelfHostedEtcd_To_v1alpha1_SelfHostedEtcd, Convert_v1alpha1_TokenDiscovery_To_kubeadm_TokenDiscovery, Convert_kubeadm_TokenDiscovery_To_v1alpha1_TokenDiscovery, ) @@ -80,6 +85,7 @@ func autoConvert_v1alpha1_Etcd_To_kubeadm_Etcd(in *Etcd, out *kubeadm.Etcd, s co out.DataDir = in.DataDir out.ExtraArgs = *(*map[string]string)(unsafe.Pointer(&in.ExtraArgs)) out.Image = in.Image + out.SelfHosted = (*kubeadm.SelfHostedEtcd)(unsafe.Pointer(in.SelfHosted)) return nil } @@ -96,6 +102,7 @@ func autoConvert_kubeadm_Etcd_To_v1alpha1_Etcd(in *kubeadm.Etcd, out *Etcd, s co out.DataDir = in.DataDir out.ExtraArgs = *(*map[string]string)(unsafe.Pointer(&in.ExtraArgs)) out.Image = in.Image + out.SelfHosted = (*SelfHostedEtcd)(unsafe.Pointer(in.SelfHosted)) return nil } @@ -104,6 +111,30 @@ func Convert_kubeadm_Etcd_To_v1alpha1_Etcd(in *kubeadm.Etcd, out *Etcd, s conver return autoConvert_kubeadm_Etcd_To_v1alpha1_Etcd(in, out, s) } +func autoConvert_v1alpha1_HostPathMount_To_kubeadm_HostPathMount(in *HostPathMount, out *kubeadm.HostPathMount, s conversion.Scope) error { + out.Name = in.Name + out.HostPath = in.HostPath + out.MountPath = in.MountPath + return nil +} + +// Convert_v1alpha1_HostPathMount_To_kubeadm_HostPathMount is an autogenerated conversion function. +func Convert_v1alpha1_HostPathMount_To_kubeadm_HostPathMount(in *HostPathMount, out *kubeadm.HostPathMount, s conversion.Scope) error { + return autoConvert_v1alpha1_HostPathMount_To_kubeadm_HostPathMount(in, out, s) +} + +func autoConvert_kubeadm_HostPathMount_To_v1alpha1_HostPathMount(in *kubeadm.HostPathMount, out *HostPathMount, s conversion.Scope) error { + out.Name = in.Name + out.HostPath = in.HostPath + out.MountPath = in.MountPath + return nil +} + +// Convert_kubeadm_HostPathMount_To_v1alpha1_HostPathMount is an autogenerated conversion function. +func Convert_kubeadm_HostPathMount_To_v1alpha1_HostPathMount(in *kubeadm.HostPathMount, out *HostPathMount, s conversion.Scope) error { + return autoConvert_kubeadm_HostPathMount_To_v1alpha1_HostPathMount(in, out, s) +} + func autoConvert_v1alpha1_MasterConfiguration_To_kubeadm_MasterConfiguration(in *MasterConfiguration, out *kubeadm.MasterConfiguration, s conversion.Scope) error { if err := Convert_v1alpha1_API_To_kubeadm_API(&in.API, &out.API, s); err != nil { return err @@ -119,10 +150,13 @@ func autoConvert_v1alpha1_MasterConfiguration_To_kubeadm_MasterConfiguration(in out.NodeName = in.NodeName out.AuthorizationModes = *(*[]string)(unsafe.Pointer(&in.AuthorizationModes)) out.Token = in.Token - out.TokenTTL = in.TokenTTL + out.TokenTTL = (*v1.Duration)(unsafe.Pointer(in.TokenTTL)) out.APIServerExtraArgs = *(*map[string]string)(unsafe.Pointer(&in.APIServerExtraArgs)) out.ControllerManagerExtraArgs = *(*map[string]string)(unsafe.Pointer(&in.ControllerManagerExtraArgs)) out.SchedulerExtraArgs = *(*map[string]string)(unsafe.Pointer(&in.SchedulerExtraArgs)) + out.APIServerExtraVolumes = *(*[]kubeadm.HostPathMount)(unsafe.Pointer(&in.APIServerExtraVolumes)) + out.ControllerManagerExtraVolumes = *(*[]kubeadm.HostPathMount)(unsafe.Pointer(&in.ControllerManagerExtraVolumes)) + out.SchedulerExtraVolumes = *(*[]kubeadm.HostPathMount)(unsafe.Pointer(&in.SchedulerExtraVolumes)) out.APIServerCertSANs = *(*[]string)(unsafe.Pointer(&in.APIServerCertSANs)) out.CertificatesDir = in.CertificatesDir out.ImageRepository = in.ImageRepository @@ -151,10 +185,13 @@ func autoConvert_kubeadm_MasterConfiguration_To_v1alpha1_MasterConfiguration(in out.NodeName = in.NodeName out.AuthorizationModes = *(*[]string)(unsafe.Pointer(&in.AuthorizationModes)) out.Token = in.Token - out.TokenTTL = in.TokenTTL + out.TokenTTL = (*v1.Duration)(unsafe.Pointer(in.TokenTTL)) out.APIServerExtraArgs = *(*map[string]string)(unsafe.Pointer(&in.APIServerExtraArgs)) out.ControllerManagerExtraArgs = *(*map[string]string)(unsafe.Pointer(&in.ControllerManagerExtraArgs)) out.SchedulerExtraArgs = *(*map[string]string)(unsafe.Pointer(&in.SchedulerExtraArgs)) + out.APIServerExtraVolumes = *(*[]HostPathMount)(unsafe.Pointer(&in.APIServerExtraVolumes)) + out.ControllerManagerExtraVolumes = *(*[]HostPathMount)(unsafe.Pointer(&in.ControllerManagerExtraVolumes)) + out.SchedulerExtraVolumes = *(*[]HostPathMount)(unsafe.Pointer(&in.SchedulerExtraVolumes)) out.APIServerCertSANs = *(*[]string)(unsafe.Pointer(&in.APIServerCertSANs)) out.CertificatesDir = in.CertificatesDir out.ImageRepository = in.ImageRepository @@ -229,6 +266,32 @@ func Convert_kubeadm_NodeConfiguration_To_v1alpha1_NodeConfiguration(in *kubeadm return autoConvert_kubeadm_NodeConfiguration_To_v1alpha1_NodeConfiguration(in, out, s) } +func autoConvert_v1alpha1_SelfHostedEtcd_To_kubeadm_SelfHostedEtcd(in *SelfHostedEtcd, out *kubeadm.SelfHostedEtcd, s conversion.Scope) error { + out.CertificatesDir = in.CertificatesDir + out.ClusterServiceName = in.ClusterServiceName + out.EtcdVersion = in.EtcdVersion + out.OperatorVersion = in.OperatorVersion + return nil +} + +// Convert_v1alpha1_SelfHostedEtcd_To_kubeadm_SelfHostedEtcd is an autogenerated conversion function. +func Convert_v1alpha1_SelfHostedEtcd_To_kubeadm_SelfHostedEtcd(in *SelfHostedEtcd, out *kubeadm.SelfHostedEtcd, s conversion.Scope) error { + return autoConvert_v1alpha1_SelfHostedEtcd_To_kubeadm_SelfHostedEtcd(in, out, s) +} + +func autoConvert_kubeadm_SelfHostedEtcd_To_v1alpha1_SelfHostedEtcd(in *kubeadm.SelfHostedEtcd, out *SelfHostedEtcd, s conversion.Scope) error { + out.CertificatesDir = in.CertificatesDir + out.ClusterServiceName = in.ClusterServiceName + out.EtcdVersion = in.EtcdVersion + out.OperatorVersion = in.OperatorVersion + return nil +} + +// Convert_kubeadm_SelfHostedEtcd_To_v1alpha1_SelfHostedEtcd is an autogenerated conversion function. +func Convert_kubeadm_SelfHostedEtcd_To_v1alpha1_SelfHostedEtcd(in *kubeadm.SelfHostedEtcd, out *SelfHostedEtcd, s conversion.Scope) error { + return autoConvert_kubeadm_SelfHostedEtcd_To_v1alpha1_SelfHostedEtcd(in, out, s) +} + func autoConvert_v1alpha1_TokenDiscovery_To_kubeadm_TokenDiscovery(in *TokenDiscovery, out *kubeadm.TokenDiscovery, s conversion.Scope) error { out.ID = in.ID out.Secret = in.Secret diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go index 79473a069..21c00705b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go @@ -21,43 +21,10 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*API).DeepCopyInto(out.(*API)) - return nil - }, InType: reflect.TypeOf(&API{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Etcd).DeepCopyInto(out.(*Etcd)) - return nil - }, InType: reflect.TypeOf(&Etcd{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MasterConfiguration).DeepCopyInto(out.(*MasterConfiguration)) - return nil - }, InType: reflect.TypeOf(&MasterConfiguration{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Networking).DeepCopyInto(out.(*Networking)) - return nil - }, InType: reflect.TypeOf(&Networking{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeConfiguration).DeepCopyInto(out.(*NodeConfiguration)) - return nil - }, InType: reflect.TypeOf(&NodeConfiguration{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenDiscovery).DeepCopyInto(out.(*TokenDiscovery)) - return nil - }, InType: reflect.TypeOf(&TokenDiscovery{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *API) DeepCopyInto(out *API) { *out = *in @@ -89,6 +56,15 @@ func (in *Etcd) DeepCopyInto(out *Etcd) { (*out)[key] = val } } + if in.SelfHosted != nil { + in, out := &in.SelfHosted, &out.SelfHosted + if *in == nil { + *out = nil + } else { + *out = new(SelfHostedEtcd) + **out = **in + } + } return } @@ -102,6 +78,22 @@ func (in *Etcd) DeepCopy() *Etcd { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostPathMount) DeepCopyInto(out *HostPathMount) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPathMount. +func (in *HostPathMount) DeepCopy() *HostPathMount { + if in == nil { + return nil + } + out := new(HostPathMount) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MasterConfiguration) DeepCopyInto(out *MasterConfiguration) { *out = *in @@ -114,7 +106,15 @@ func (in *MasterConfiguration) DeepCopyInto(out *MasterConfiguration) { *out = make([]string, len(*in)) copy(*out, *in) } - out.TokenTTL = in.TokenTTL + if in.TokenTTL != nil { + in, out := &in.TokenTTL, &out.TokenTTL + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } if in.APIServerExtraArgs != nil { in, out := &in.APIServerExtraArgs, &out.APIServerExtraArgs *out = make(map[string]string, len(*in)) @@ -136,6 +136,21 @@ func (in *MasterConfiguration) DeepCopyInto(out *MasterConfiguration) { (*out)[key] = val } } + if in.APIServerExtraVolumes != nil { + in, out := &in.APIServerExtraVolumes, &out.APIServerExtraVolumes + *out = make([]HostPathMount, len(*in)) + copy(*out, *in) + } + if in.ControllerManagerExtraVolumes != nil { + in, out := &in.ControllerManagerExtraVolumes, &out.ControllerManagerExtraVolumes + *out = make([]HostPathMount, len(*in)) + copy(*out, *in) + } + if in.SchedulerExtraVolumes != nil { + in, out := &in.SchedulerExtraVolumes, &out.SchedulerExtraVolumes + *out = make([]HostPathMount, len(*in)) + copy(*out, *in) + } if in.APIServerCertSANs != nil { in, out := &in.APIServerCertSANs, &out.APIServerCertSANs *out = make([]string, len(*in)) @@ -222,6 +237,22 @@ func (in *NodeConfiguration) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SelfHostedEtcd) DeepCopyInto(out *SelfHostedEtcd) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfHostedEtcd. +func (in *SelfHostedEtcd) DeepCopy() *SelfHostedEtcd { + if in == nil { + return nil + } + out := new(SelfHostedEtcd) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenDiscovery) DeepCopyInto(out *TokenDiscovery) { *out = *in diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/BUILD index 263abbb7a..1c5508fca 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/BUILD @@ -28,7 +28,7 @@ go_library( "//cmd/kubeadm/app/features:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/token:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/kubeapiserver/authorizer/modes:go_default_library", "//pkg/registry/core/service/ipallocator:go_default_library", "//pkg/util/node:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation.go index a42ce2103..034f1796b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation/validation.go @@ -33,7 +33,7 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/features" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" tokenutil "k8s.io/kubernetes/cmd/kubeadm/app/util/token" - apivalidation "k8s.io/kubernetes/pkg/api/validation" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" authzmodes "k8s.io/kubernetes/pkg/kubeapiserver/authorizer/modes" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/util/node" diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go index f9dd89938..122569fef 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go @@ -21,48 +21,10 @@ limitations under the License. package kubeadm import ( - conversion "k8s.io/apimachinery/pkg/conversion" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*API).DeepCopyInto(out.(*API)) - return nil - }, InType: reflect.TypeOf(&API{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Etcd).DeepCopyInto(out.(*Etcd)) - return nil - }, InType: reflect.TypeOf(&Etcd{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MasterConfiguration).DeepCopyInto(out.(*MasterConfiguration)) - return nil - }, InType: reflect.TypeOf(&MasterConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Networking).DeepCopyInto(out.(*Networking)) - return nil - }, InType: reflect.TypeOf(&Networking{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeConfiguration).DeepCopyInto(out.(*NodeConfiguration)) - return nil - }, InType: reflect.TypeOf(&NodeConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenDiscovery).DeepCopyInto(out.(*TokenDiscovery)) - return nil - }, InType: reflect.TypeOf(&TokenDiscovery{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *API) DeepCopyInto(out *API) { *out = *in @@ -94,6 +56,15 @@ func (in *Etcd) DeepCopyInto(out *Etcd) { (*out)[key] = val } } + if in.SelfHosted != nil { + in, out := &in.SelfHosted, &out.SelfHosted + if *in == nil { + *out = nil + } else { + *out = new(SelfHostedEtcd) + **out = **in + } + } return } @@ -107,6 +78,22 @@ func (in *Etcd) DeepCopy() *Etcd { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostPathMount) DeepCopyInto(out *HostPathMount) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPathMount. +func (in *HostPathMount) DeepCopy() *HostPathMount { + if in == nil { + return nil + } + out := new(HostPathMount) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MasterConfiguration) DeepCopyInto(out *MasterConfiguration) { *out = *in @@ -119,7 +106,15 @@ func (in *MasterConfiguration) DeepCopyInto(out *MasterConfiguration) { *out = make([]string, len(*in)) copy(*out, *in) } - out.TokenTTL = in.TokenTTL + if in.TokenTTL != nil { + in, out := &in.TokenTTL, &out.TokenTTL + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } if in.APIServerExtraArgs != nil { in, out := &in.APIServerExtraArgs, &out.APIServerExtraArgs *out = make(map[string]string, len(*in)) @@ -141,6 +136,21 @@ func (in *MasterConfiguration) DeepCopyInto(out *MasterConfiguration) { (*out)[key] = val } } + if in.APIServerExtraVolumes != nil { + in, out := &in.APIServerExtraVolumes, &out.APIServerExtraVolumes + *out = make([]HostPathMount, len(*in)) + copy(*out, *in) + } + if in.ControllerManagerExtraVolumes != nil { + in, out := &in.ControllerManagerExtraVolumes, &out.ControllerManagerExtraVolumes + *out = make([]HostPathMount, len(*in)) + copy(*out, *in) + } + if in.SchedulerExtraVolumes != nil { + in, out := &in.SchedulerExtraVolumes, &out.SchedulerExtraVolumes + *out = make([]HostPathMount, len(*in)) + copy(*out, *in) + } if in.APIServerCertSANs != nil { in, out := &in.APIServerCertSANs, &out.APIServerCertSANs *out = make([]string, len(*in)) @@ -227,6 +237,22 @@ func (in *NodeConfiguration) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SelfHostedEtcd) DeepCopyInto(out *SelfHostedEtcd) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfHostedEtcd. +func (in *SelfHostedEtcd) DeepCopy() *SelfHostedEtcd { + if in == nil { + return nil + } + out := new(SelfHostedEtcd) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenDiscovery) DeepCopyInto(out *TokenDiscovery) { *out = *in diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/BUILD index 8978a4993..6d0dabf8e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/BUILD @@ -21,6 +21,7 @@ go_library( importpath = "k8s.io/kubernetes/cmd/kubeadm/app/cmd", deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", + "//cmd/kubeadm/app/apis/kubeadm/install:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/validation:go_default_library", "//cmd/kubeadm/app/cmd/phases:go_default_library", @@ -50,14 +51,14 @@ go_library( "//cmd/kubeadm/app/util/kubeconfig:go_default_library", "//cmd/kubeadm/app/util/pubkeypin:go_default_library", "//cmd/kubeadm/app/util/token:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/bootstrap/api:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", "//pkg/kubectl/util/i18n:go_default_library", "//pkg/printers:go_default_library", "//pkg/util/initsystem:go_default_library", "//pkg/util/node:go_default_library", - "//pkg/util/version:go_default_library", "//pkg/version:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/renstrom/dedent:go_default_library", @@ -72,6 +73,7 @@ go_library( "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", ], ) @@ -86,6 +88,8 @@ go_test( deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/preflight:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", + "//vendor/k8s.io/utils/exec/testing:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/cmd.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/cmd.go index aa51b2bfc..202aff5be 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/cmd.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/cmd.go @@ -25,6 +25,10 @@ import ( "k8s.io/apiserver/pkg/util/flag" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade" + + // Register the kubeadm configuration types because CLI flag generation + // depends on the generated defaults. + _ "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install" ) // NewKubeadmCommand return cobra.Command to run kubeadm command @@ -38,7 +42,7 @@ func NewKubeadmCommand(_ io.Reader, out, err io.Writer) *cobra.Command { ┌──────────────────────────────────────────────────────────┐ │ KUBEADM IS BETA, DO NOT USE IT FOR PRODUCTION CLUSTERS! │ │ │ - │ But, please try it out! Give us feedback at: │ + │ But please, try it out and give us feedback at: │ │ https://github.com/kubernetes/kubeadm/issues │ │ and at-mention @kubernetes/sig-cluster-lifecycle-bugs │ │ or @kubernetes/sig-cluster-lifecycle-feature-requests │ @@ -50,13 +54,13 @@ func NewKubeadmCommand(_ io.Reader, out, err io.Writer) *cobra.Command { and one node (where your workloads, like Pods and Deployments run). ┌──────────────────────────────────────────────────────────┐ - │ On the first machine │ + │ On the first machine: │ ├──────────────────────────────────────────────────────────┤ │ master# kubeadm init │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ - │ On the second machine │ + │ On the second machine: │ ├──────────────────────────────────────────────────────────┤ │ node# kubeadm join │ └──────────────────────────────────────────────────────────┘ diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/completion.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/completion.go index 55a96906e..136de4f11 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/completion.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/completion.go @@ -97,7 +97,7 @@ func NewCmdCompletion(out io.Writer, boilerPlate string) *cobra.Command { cmd := &cobra.Command{ Use: "completion SHELL", - Short: i18n.T("Output shell completion code for the specified shell (bash or zsh)"), + Short: i18n.T("Output shell completion code for the specified shell (bash or zsh)."), Long: completionLong, Example: completionExample, Run: func(cmd *cobra.Command, args []string) { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config.go index dd531a84e..c9f7fa01f 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/config.go @@ -33,7 +33,7 @@ import ( kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // NewCmdConfig returns cobra.Command for "kubeadm config" command @@ -45,9 +45,9 @@ func NewCmdConfig(out io.Writer) *cobra.Command { Short: "Manage configuration for a kubeadm cluster persisted in a ConfigMap in the cluster.", Long: fmt.Sprintf(dedent.Dedent(` There is a ConfigMap in the %s namespace called %q that kubeadm uses to store internal configuration about the - cluster. kubeadm CLI v1.8.0+ automatically creates this ConfigMap with used config on 'kubeadm init', but if you + cluster. kubeadm CLI v1.8.0+ automatically creates this ConfigMap with the config used with 'kubeadm init', but if you initialized your cluster using kubeadm v1.7.x or lower, you must use the 'config upload' command to create this - ConfigMap in order for 'kubeadm upgrade' to be able to configure your upgraded cluster correctly. + ConfigMap. This is required so that 'kubeadm upgrade' can configure your upgraded cluster correctly. `), metav1.NamespaceSystem, constants.MasterConfigurationConfigMap), // Without this callback, if a user runs just the "upload" // command without a subcommand, or with an invalid subcommand, @@ -57,7 +57,7 @@ func NewCmdConfig(out io.Writer) *cobra.Command { RunE: cmdutil.SubCmdRunE("config"), } - cmd.PersistentFlags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use for talking to the cluster.") + cmd.PersistentFlags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use when talking to the cluster.") cmd.AddCommand(NewCmdConfigUpload(out, &kubeConfigFile)) cmd.AddCommand(NewCmdConfigView(out, &kubeConfigFile)) @@ -69,7 +69,7 @@ func NewCmdConfig(out io.Writer) *cobra.Command { func NewCmdConfigUpload(out io.Writer, kubeConfigFile *string) *cobra.Command { cmd := &cobra.Command{ Use: "upload", - Short: "Upload configuration about the current state so 'kubeadm upgrade' later can know how to configure the upgraded cluster.", + Short: "Upload configuration about the current state, so that 'kubeadm upgrade' can later know how to configure the upgraded cluster.", RunE: cmdutil.SubCmdRunE("upload"), } @@ -106,8 +106,8 @@ func NewCmdConfigUploadFromFile(out io.Writer, kubeConfigFile *string) *cobra.Co Use: "from-file", Short: "Upload a configuration file to the in-cluster ConfigMap for kubeadm configuration.", Long: fmt.Sprintf(dedent.Dedent(` - Using from-file, you can upload configuration to the ConfigMap in the cluster using the same config file you gave to kubeadm init. - If you initialized your cluster using a v1.7.x or lower kubeadm client and used the --config option; you need to run this command with the + Using this command, you can upload configuration to the ConfigMap in the cluster using the same config file you gave to 'kubeadm init'. + If you initialized your cluster using a v1.7.x or lower kubeadm client and used the --config option, you need to run this command with the same config file before upgrading to v1.8 using 'kubeadm upgrade'. The configuration is located in the %q namespace in the %q ConfigMap. @@ -134,7 +134,7 @@ func NewCmdConfigUploadFromFile(out io.Writer, kubeConfigFile *string) *cobra.Co // NewCmdConfigUploadFromFlags returs cobra.Command for "kubeadm config upload from-flags" command func NewCmdConfigUploadFromFlags(out io.Writer, kubeConfigFile *string) *cobra.Command { cfg := &kubeadmapiext.MasterConfiguration{} - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) var featureGatesString string @@ -142,8 +142,8 @@ func NewCmdConfigUploadFromFlags(out io.Writer, kubeConfigFile *string) *cobra.C Use: "from-flags", Short: "Create the in-cluster configuration file for the first time from using flags.", Long: fmt.Sprintf(dedent.Dedent(` - Using from-flags, you can upload configuration to the ConfigMap in the cluster using the same flags you'd give to kubeadm init. - If you initialized your cluster using a v1.7.x or lower kubeadm client and set some flag; you need to run this command with the + Using this command, you can upload configuration to the ConfigMap in the cluster using the same flags you gave to 'kubeadm init'. + If you initialized your cluster using a v1.7.x or lower kubeadm client and set certain flags, you need to run this command with the same flags before upgrading to v1.8 using 'kubeadm upgrade'. The configuration is located in the %q namespace in the %q ConfigMap. diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go index 353cbf49f..afac54e35 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go @@ -57,15 +57,15 @@ import ( dryrunutil "k8s.io/kubernetes/cmd/kubeadm/app/util/dryrun" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" "k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/version" + "k8s.io/kubernetes/pkg/api/legacyscheme" + utilsexec "k8s.io/utils/exec" ) var ( initDoneTempl = template.Must(template.New("init").Parse(dedent.Dedent(` Your Kubernetes master has initialized successfully! - To start using your cluster, you need to run (as a regular user): + To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i {{.KubeConfigPath}} $HOME/.kube/config @@ -86,15 +86,15 @@ var ( Unfortunately, an error has occurred: {{ .Error }} - This error is likely caused by that: + This error is likely caused by: - The kubelet is not running - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled) - - There is no internet connection; so the kubelet can't pull the following control plane images: + - There is no internet connection, so the kubelet cannot pull the following control plane images: - {{ .APIServerImage }} - {{ .ControllerManagerImage }} - {{ .SchedulerImage }} - You can troubleshoot this for example with the following commands if you're on a systemd-powered system: + If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands: - 'systemctl status kubelet' - 'journalctl -xeu kubelet' `))) @@ -103,28 +103,29 @@ var ( // NewCmdInit returns "kubeadm init" command. func NewCmdInit(out io.Writer) *cobra.Command { cfg := &kubeadmapiext.MasterConfiguration{} - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) var cfgPath string var skipPreFlight bool var skipTokenPrint bool var dryRun bool var featureGatesString string + var criSocket string cmd := &cobra.Command{ Use: "init", - Short: "Run this in order to set up the Kubernetes master", + Short: "Run this command in order to set up the Kubernetes master.", Run: func(cmd *cobra.Command, args []string) { var err error if cfg.FeatureGates, err = features.NewFeatureGate(&features.InitFeatureGates, featureGatesString); err != nil { kubeadmutil.CheckErr(err) } - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) internalcfg := &kubeadmapi.MasterConfiguration{} - api.Scheme.Convert(cfg, internalcfg, nil) + legacyscheme.Scheme.Convert(cfg, internalcfg, nil) - i, err := NewInit(cfgPath, internalcfg, skipPreFlight, skipTokenPrint, dryRun) + i, err := NewInit(cfgPath, internalcfg, skipPreFlight, skipTokenPrint, dryRun, criSocket) kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(i.Validate(cmd)) kubeadmutil.CheckErr(i.Run(out)) @@ -132,7 +133,7 @@ func NewCmdInit(out io.Writer) *cobra.Command { } AddInitConfigFlags(cmd.PersistentFlags(), cfg, &featureGatesString) - AddInitOtherFlags(cmd.PersistentFlags(), &cfgPath, &skipPreFlight, &skipTokenPrint, &dryRun) + AddInitOtherFlags(cmd.PersistentFlags(), &cfgPath, &skipPreFlight, &skipTokenPrint, &dryRun, &criSocket) return cmd } @@ -141,7 +142,7 @@ func NewCmdInit(out io.Writer) *cobra.Command { func AddInitConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiext.MasterConfiguration, featureGatesString *string) { flagSet.StringVar( &cfg.API.AdvertiseAddress, "apiserver-advertise-address", cfg.API.AdvertiseAddress, - "The IP address the API Server will advertise it's listening on. 0.0.0.0 means the default network interface's address.", + "The IP address the API Server will advertise it's listening on. Specify '0.0.0.0' to use the address of the default network interface.", ) flagSet.Int32Var( &cfg.API.BindPort, "apiserver-bind-port", cfg.API.BindPort, @@ -153,7 +154,7 @@ func AddInitConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiext.MasterConfigur ) flagSet.StringVar( &cfg.Networking.PodSubnet, "pod-network-cidr", cfg.Networking.PodSubnet, - "Specify range of IP addresses for the pod network; if set, the control plane will automatically allocate CIDRs for every node.", + "Specify range of IP addresses for the pod network. If set, the control plane will automatically allocate CIDRs for every node.", ) flagSet.StringVar( &cfg.Networking.DNSDomain, "service-dns-domain", cfg.Networking.DNSDomain, @@ -169,7 +170,7 @@ func AddInitConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiext.MasterConfigur ) flagSet.StringSliceVar( &cfg.APIServerCertSANs, "apiserver-cert-extra-sans", cfg.APIServerCertSANs, - `Optional extra altnames to use for the API Server serving cert. Can be both IP addresses and dns names.`, + `Optional extra Subject Alternative Names (SANs) to use for the API Server serving certificate. Can be both IP addresses and DNS names.`, ) flagSet.StringVar( &cfg.NodeName, "node-name", cfg.NodeName, @@ -181,14 +182,14 @@ func AddInitConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiext.MasterConfigur ) flagSet.DurationVar( &cfg.TokenTTL.Duration, "token-ttl", cfg.TokenTTL.Duration, - "The duration before the bootstrap token is automatically deleted. 0 means 'never expires'.", + "The duration before the bootstrap token is automatically deleted. If set to '0', the token will never expire.", ) flagSet.StringVar(featureGatesString, "feature-gates", *featureGatesString, "A set of key=value pairs that describe feature gates for various features. "+ "Options are:\n"+strings.Join(features.KnownFeatures(&features.InitFeatureGates), "\n")) } // AddInitOtherFlags adds init flags that are not bound to a configuration file to the given flagset -func AddInitOtherFlags(flagSet *flag.FlagSet, cfgPath *string, skipPreFlight, skipTokenPrint, dryRun *bool) { +func AddInitOtherFlags(flagSet *flag.FlagSet, cfgPath *string, skipPreFlight, skipTokenPrint, dryRun *bool, criSocket *string) { flagSet.StringVar( cfgPath, "config", *cfgPath, "Path to kubeadm config file. WARNING: Usage of a configuration file is experimental.", @@ -196,7 +197,7 @@ func AddInitOtherFlags(flagSet *flag.FlagSet, cfgPath *string, skipPreFlight, sk // Note: All flags that are not bound to the cfg object should be whitelisted in cmd/kubeadm/app/apis/kubeadm/validation/validation.go flagSet.BoolVar( skipPreFlight, "skip-preflight-checks", *skipPreFlight, - "Skip preflight checks normally run before modifying the system.", + "Skip preflight checks which normally run before modifying the system.", ) // Note: All flags that are not bound to the cfg object should be whitelisted in cmd/kubeadm/app/apis/kubeadm/validation/validation.go flagSet.BoolVar( @@ -208,19 +209,23 @@ func AddInitOtherFlags(flagSet *flag.FlagSet, cfgPath *string, skipPreFlight, sk dryRun, "dry-run", *dryRun, "Don't apply any changes; just output what would be done.", ) + flagSet.StringVar( + criSocket, "cri-socket", "/var/run/dockershim.sock", + `Specify the CRI socket to connect to.`, + ) } // NewInit validates given arguments and instantiates Init struct with provided information. -func NewInit(cfgPath string, cfg *kubeadmapi.MasterConfiguration, skipPreFlight, skipTokenPrint, dryRun bool) (*Init, error) { +func NewInit(cfgPath string, cfg *kubeadmapi.MasterConfiguration, skipPreFlight, skipTokenPrint, dryRun bool, criSocket string) (*Init, error) { - fmt.Println("[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.") + fmt.Println("[kubeadm] WARNING: kubeadm is in beta. Please do not use it for production clusters!") if cfgPath != "" { b, err := ioutil.ReadFile(cfgPath) if err != nil { return nil, fmt.Errorf("unable to read config from %q [%v]", cfgPath, err) } - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), b, cfg); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), b, cfg); err != nil { return nil, fmt.Errorf("unable to decode config from %q [%v]", cfgPath, err) } } @@ -231,6 +236,10 @@ func NewInit(cfgPath string, cfg *kubeadmapi.MasterConfiguration, skipPreFlight, return nil, err } + if err := features.ValidateVersion(features.InitFeatureGates, cfg.FeatureGates, cfg.KubernetesVersion); err != nil { + return nil, err + } + fmt.Printf("[init] Using Kubernetes version: %s\n", cfg.KubernetesVersion) fmt.Printf("[init] Using Authorization modes: %v\n", cfg.AuthorizationModes) @@ -243,7 +252,7 @@ func NewInit(cfgPath string, cfg *kubeadmapi.MasterConfiguration, skipPreFlight, if !skipPreFlight { fmt.Println("[preflight] Running pre-flight checks.") - if err := preflight.RunInitMasterChecks(cfg); err != nil { + if err := preflight.RunInitMasterChecks(utilsexec.New(), cfg, criSocket); err != nil { return nil, err } @@ -273,17 +282,11 @@ func (i *Init) Validate(cmd *cobra.Command) error { // Run executes master node provisioning, including certificates, needed static pod manifests, etc. func (i *Init) Run(out io.Writer) error { - - k8sVersion, err := version.ParseSemantic(i.cfg.KubernetesVersion) - if err != nil { - return fmt.Errorf("could not parse Kubernetes version %q: %v", i.cfg.KubernetesVersion, err) - } - // Get directories to write files to; can be faked if we're dry-running realCertsDir := i.cfg.CertificatesDir certsDirToWriteTo, kubeConfigDir, manifestDir, err := getDirectoriesToUse(i.dryRun, i.cfg.CertificatesDir) if err != nil { - return err + return fmt.Errorf("error getting directories to use: %v", err) } // certsDirToWriteTo is gonna equal cfg.CertificatesDir in the normal case, but gonna be a temp directory if dryrunning i.cfg.CertificatesDir = certsDirToWriteTo @@ -312,12 +315,12 @@ func (i *Init) Run(out io.Writer) error { // PHASE 3: Bootstrap the control plane if err := controlplanephase.CreateInitStaticPodManifestFiles(manifestDir, i.cfg); err != nil { - return err + return fmt.Errorf("error creating init static pod manifest files: %v", err) } // Add etcd static pod spec only if external etcd is not configured if len(i.cfg.Etcd.Endpoints) == 0 { if err := etcdphase.CreateLocalEtcdStaticPodManifestFile(manifestDir, i.cfg); err != nil { - return err + return fmt.Errorf("error creating local etcd static pod manifest file: %v", err) } } @@ -326,13 +329,13 @@ func (i *Init) Run(out io.Writer) error { // If we're dry-running, print the generated manifests if err := printFilesIfDryRunning(i.dryRun, manifestDir); err != nil { - return err + return fmt.Errorf("error printing files on dryrun: %v", err) } // Create a kubernetes client and wait for the API server to be healthy (if not dryrunning) client, err := createClient(i.cfg, i.dryRun) if err != nil { - return err + return fmt.Errorf("error creating client: %v", err) } // waiter holds the apiclient.Waiter implementation of choice, responsible for querying the API server in various ways and waiting for conditions to be fulfilled @@ -355,12 +358,12 @@ func (i *Init) Run(out io.Writer) error { // Note: This is done right in the beginning of cluster initialization; as we might want to make other phases // depend on centralized information from this source in the future if err := uploadconfigphase.UploadConfiguration(i.cfg, client); err != nil { - return err + return fmt.Errorf("error uploading configuration: %v", err) } // PHASE 4: Mark the master with the right label/taint if err := markmasterphase.MarkMaster(client, i.cfg.NodeName); err != nil { - return err + return fmt.Errorf("error marking master: %v", err) } // PHASE 5: Set up the node bootstrap tokens @@ -371,63 +374,64 @@ func (i *Init) Run(out io.Writer) error { // Create the default node bootstrap token tokenDescription := "The default bootstrap token generated by 'kubeadm init'." if err := nodebootstraptokenphase.UpdateOrCreateToken(client, i.cfg.Token, false, i.cfg.TokenTTL.Duration, kubeadmconstants.DefaultTokenUsages, []string{kubeadmconstants.NodeBootstrapTokenAuthGroup}, tokenDescription); err != nil { - return err + return fmt.Errorf("error updating or creating token: %v", err) } // Create RBAC rules that makes the bootstrap tokens able to post CSRs - if err := nodebootstraptokenphase.AllowBootstrapTokensToPostCSRs(client, k8sVersion); err != nil { - return err + if err := nodebootstraptokenphase.AllowBootstrapTokensToPostCSRs(client); err != nil { + return fmt.Errorf("error allowing bootstrap tokens to post CSRs: %v", err) } // Create RBAC rules that makes the bootstrap tokens able to get their CSRs approved automatically - if err := nodebootstraptokenphase.AutoApproveNodeBootstrapTokens(client, k8sVersion); err != nil { - return err + if err := nodebootstraptokenphase.AutoApproveNodeBootstrapTokens(client); err != nil { + return fmt.Errorf("error auto-approving node bootstrap tokens: %v", err) } // Create/update RBAC rules that makes the nodes to rotate certificates and get their CSRs approved automatically - if err := nodebootstraptokenphase.AutoApproveNodeCertificateRotation(client, k8sVersion); err != nil { + if err := nodebootstraptokenphase.AutoApproveNodeCertificateRotation(client); err != nil { return err } // Create the cluster-info ConfigMap with the associated RBAC rules if err := clusterinfophase.CreateBootstrapConfigMapIfNotExists(client, adminKubeConfigPath); err != nil { - return err + return fmt.Errorf("error creating bootstrap configmap: %v", err) } if err := clusterinfophase.CreateClusterInfoRBACRules(client); err != nil { - return err + return fmt.Errorf("error creating clusterinfo RBAC rules: %v", err) } - // PHASE 6: Install and deploy all addons, and configure things as necessary - if err := dnsaddonphase.EnsureDNSAddon(i.cfg, client); err != nil { - return err + return fmt.Errorf("error ensuring dns addon: %v", err) } if err := proxyaddonphase.EnsureProxyAddon(i.cfg, client); err != nil { - return err + return fmt.Errorf("error ensuring proxy addon: %v", err) } // PHASE 7: Make the control plane self-hosted if feature gate is enabled if features.Enabled(i.cfg.FeatureGates, features.SelfHosting) { // Temporary control plane is up, now we create our self hosted control // plane components and remove the static manifests: - fmt.Println("[self-hosted] Creating self-hosted control plane...") + fmt.Println("[self-hosted] Creating self-hosted control plane.") if err := selfhostingphase.CreateSelfHostedControlPlane(manifestDir, kubeConfigDir, i.cfg, client, waiter); err != nil { - return err + return fmt.Errorf("error creating self hosted control plane: %v", err) } } // Exit earlier if we're dryrunning if i.dryRun { - fmt.Println("[dryrun] Finished dry-running successfully; above are the resources that would be created.") + fmt.Println("[dryrun] Finished dry-running successfully. Above are the resources that would be created.") return nil } // Load the CA certificate from so we can pin its public key caCert, err := pkiutil.TryLoadCertFromDisk(i.cfg.CertificatesDir, kubeadmconstants.CACertAndKeyBaseName) + if err != nil { + return fmt.Errorf("error loading ca cert from disk: %v", err) + } // Generate the Master host/port pair used by initDoneTempl masterHostPort, err := kubeadmutil.GetMasterHostPort(i.cfg) if err != nil { - return err + return fmt.Errorf("error getting master host port: %v", err) } ctx := map[string]string{ @@ -476,9 +480,9 @@ func printFilesIfDryRunning(dryRun bool, manifestDir string) error { return nil } - fmt.Printf("[dryrun] Wrote certificates, kubeconfig files and control plane manifests to %q\n", manifestDir) - fmt.Println("[dryrun] Won't print certificates or kubeconfig files due to the sensitive nature of them") - fmt.Printf("[dryrun] Please go and examine the %q directory for details about what would be written\n", manifestDir) + fmt.Printf("[dryrun] Wrote certificates, kubeconfig files and control plane manifests to the %q directory.\n", manifestDir) + fmt.Println("[dryrun] The certificates or kubeconfig files would not be printed due to their sensitive nature.") + fmt.Printf("[dryrun] Please examine the %q directory for details about what would be written.\n", manifestDir) // Print the contents of the upgraded manifests and pretend like they were in /etc/kubernetes/manifests files := []dryrunutil.FileToPrint{} @@ -506,7 +510,7 @@ func waitForAPIAndKubelet(waiter apiclient.Waiter) error { errorChan := make(chan error) fmt.Printf("[init] Waiting for the kubelet to boot up the control plane as Static Pods from directory %q.\n", kubeadmconstants.GetStaticPodDirectory()) - fmt.Println("[init] This often takes around a minute; or longer if the control plane images have to be pulled.") + fmt.Println("[init] This might take a minute or longer if the control plane images have to be pulled.") go func(errC chan error, waiter apiclient.Waiter) { // This goroutine can only make kubeadm init fail. If this check succeeds, it won't do anything special diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go index d51922756..d1dc73c6a 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go @@ -36,18 +36,19 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/preflight" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" nodeutil "k8s.io/kubernetes/pkg/util/node" + utilsexec "k8s.io/utils/exec" ) var ( joinDoneMsgf = dedent.Dedent(` - Node join complete: - * Certificate signing request sent to master and response - received. - * Kubelet informed of new secure connection details. + This node has joined the cluster: + * Certificate signing request was sent to master and a response + was received. + * The Kubelet was informed of the new secure connection details. - Run 'kubectl get nodes' on the master to see this machine join. + Run 'kubectl get nodes' on the master to see this node join the cluster. `) joinLongDescription = dedent.Dedent(` @@ -58,13 +59,14 @@ var ( There are 2 main schemes for discovery. The first is to use a shared token along with the IP address of the API server. The second is to - provide a file (a subset of the standard kubeconfig file). This file + provide a file - a subset of the standard kubeconfig file. This file can be a local file or downloaded via an HTTPS URL. The forms are kubeadm join --discovery-token abcdef.1234567890abcdef 1.2.3.4:6443, kubeadm join --discovery-file path/to/file.conf, or kubeadm join --discovery-file https://url/file.conf. Only one form can be used. If - the discovery information is loaded from a URL, HTTPS must be used and - the host installed CA bundle is used to verify the connection. + the discovery information is loaded from a URL, HTTPS must be used. + Also, in that case the host installed CA bundle is used to verify + the connection. If you use a shared token for discovery, you should also pass the --discovery-token-ca-cert-hash flag to validate the public key of the @@ -84,7 +86,7 @@ var ( The TLS bootstrap mechanism is also driven via a shared token. This is used to temporarily authenticate with the Kubernetes Master to submit a certificate signing request (CSR) for a locally created key pair. By - default kubeadm will set up the Kubernetes Master to automatically + default, kubeadm will set up the Kubernetes Master to automatically approve these signing requests. This token is passed in with the --tls-bootstrap-token abcdef.1234567890abcdef flag. @@ -96,10 +98,11 @@ var ( // NewCmdJoin returns "kubeadm join" command. func NewCmdJoin(out io.Writer) *cobra.Command { cfg := &kubeadmapiext.NodeConfiguration{} - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) var skipPreFlight bool var cfgPath string + var criSocket string cmd := &cobra.Command{ Use: "join [flags]", @@ -108,11 +111,11 @@ func NewCmdJoin(out io.Writer) *cobra.Command { Run: func(cmd *cobra.Command, args []string) { cfg.DiscoveryTokenAPIServers = args - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) internalcfg := &kubeadmapi.NodeConfiguration{} - api.Scheme.Convert(cfg, internalcfg, nil) + legacyscheme.Scheme.Convert(cfg, internalcfg, nil) - j, err := NewJoin(cfgPath, args, internalcfg, skipPreFlight) + j, err := NewJoin(cfgPath, args, internalcfg, skipPreFlight, criSocket) kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(j.Validate(cmd)) kubeadmutil.CheckErr(j.Run(out)) @@ -120,7 +123,7 @@ func NewCmdJoin(out io.Writer) *cobra.Command { } AddJoinConfigFlags(cmd.PersistentFlags(), cfg) - AddJoinOtherFlags(cmd.PersistentFlags(), &cfgPath, &skipPreFlight) + AddJoinOtherFlags(cmd.PersistentFlags(), &cfgPath, &skipPreFlight, &criSocket) return cmd } @@ -151,14 +154,18 @@ func AddJoinConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiext.NodeConfigurat } // AddJoinOtherFlags adds join flags that are not bound to a configuration file to the given flagset -func AddJoinOtherFlags(flagSet *flag.FlagSet, cfgPath *string, skipPreFlight *bool) { +func AddJoinOtherFlags(flagSet *flag.FlagSet, cfgPath *string, skipPreFlight *bool, criSocket *string) { flagSet.StringVar( cfgPath, "config", *cfgPath, "Path to kubeadm config file.") flagSet.BoolVar( skipPreFlight, "skip-preflight-checks", false, - "Skip preflight checks normally run before modifying the system.", + "Skip preflight checks which normally run before modifying the system.", + ) + flagSet.StringVar( + criSocket, "cri-socket", "/var/run/dockershim.sock", + `Specify the CRI socket to connect to.`, ) } @@ -168,8 +175,8 @@ type Join struct { } // NewJoin instantiates Join struct with given arguments -func NewJoin(cfgPath string, args []string, cfg *kubeadmapi.NodeConfiguration, skipPreFlight bool) (*Join, error) { - fmt.Println("[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.") +func NewJoin(cfgPath string, args []string, cfg *kubeadmapi.NodeConfiguration, skipPreFlight bool, criSocket string) (*Join, error) { + fmt.Println("[kubeadm] WARNING: kubeadm is in beta. Please do not use it for production clusters!") if cfg.NodeName == "" { cfg.NodeName = nodeutil.GetHostname("") @@ -180,7 +187,7 @@ func NewJoin(cfgPath string, args []string, cfg *kubeadmapi.NodeConfiguration, s if err != nil { return nil, fmt.Errorf("unable to read config from %q [%v]", cfgPath, err) } - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), b, cfg); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), b, cfg); err != nil { return nil, fmt.Errorf("unable to decode config from %q [%v]", cfgPath, err) } } @@ -189,7 +196,7 @@ func NewJoin(cfgPath string, args []string, cfg *kubeadmapi.NodeConfiguration, s fmt.Println("[preflight] Running pre-flight checks.") // Then continue with the others... - if err := preflight.RunJoinNodeChecks(cfg); err != nil { + if err := preflight.RunJoinNodeChecks(utilsexec.New(), cfg, criSocket); err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/BUILD index bb350fbe3..b68d2611d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/BUILD @@ -46,10 +46,10 @@ go_library( "//cmd/kubeadm/app/util/apiclient:go_default_library", "//cmd/kubeadm/app/util/config:go_default_library", "//cmd/kubeadm/app/util/kubeconfig:go_default_library", - "//pkg/api:go_default_library", - "//pkg/util/version:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/addons.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/addons.go index 4fc3fe950..da71b0ac9 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/addons.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/addons.go @@ -29,7 +29,7 @@ import ( kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // NewCmdAddon returns the addon Cobra command @@ -67,7 +67,7 @@ func EnsureAllAddons(cfg *kubeadmapi.MasterConfiguration, client clientset.Inter func getAddonsSubCommands() []*cobra.Command { cfg := &kubeadmapiext.MasterConfiguration{} // Default values for the cobra help text - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) var cfgPath, kubeConfigFile string var subCmds []*cobra.Command @@ -79,7 +79,7 @@ func getAddonsSubCommands() []*cobra.Command { }{ { use: "all", - short: "Install all addons to a Kubernetes cluster", + short: "Install all addons to a Kubernetes cluster.", cmdFunc: EnsureAllAddons, }, { @@ -103,15 +103,15 @@ func getAddonsSubCommands() []*cobra.Command { } // Add flags to the command - cmd.Flags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use for talking to the cluster") - cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental)") + cmd.Flags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use when talking to the cluster") + cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to a kubeadm config file. WARNING: Usage of a configuration file is experimental!") cmd.Flags().StringVar(&cfg.KubernetesVersion, "kubernetes-version", cfg.KubernetesVersion, `Choose a specific Kubernetes version for the control plane.`) cmd.Flags().StringVar(&cfg.ImageRepository, "image-repository", cfg.ImageRepository, `Choose a container registry to pull control plane images from.`) if properties.use == "all" || properties.use == "kube-proxy" { - cmd.Flags().StringVar(&cfg.API.AdvertiseAddress, "apiserver-advertise-address", cfg.API.AdvertiseAddress, `The IP address the API Server will advertise it's listening on. 0.0.0.0 means the default network interface's address.`) + cmd.Flags().StringVar(&cfg.API.AdvertiseAddress, "apiserver-advertise-address", cfg.API.AdvertiseAddress, `The IP address the API Server will advertise it's listening on. Specify '0.0.0.0' to use the address of the default network interface.`) cmd.Flags().Int32Var(&cfg.API.BindPort, "apiserver-bind-port", cfg.API.BindPort, `Port for the API Server to bind to.`) - cmd.Flags().StringVar(&cfg.Networking.PodSubnet, "pod-network-cidr", cfg.Networking.PodSubnet, `Specify range of IP addresses for the pod network; if set, the control plane will automatically allocate CIDRs for every node.`) + cmd.Flags().StringVar(&cfg.Networking.PodSubnet, "pod-network-cidr", cfg.Networking.PodSubnet, `Specify range of IP addresses for the pod network. If set, the control plane will automatically allocate CIDRs for every node.`) } if properties.use == "all" || properties.use == "kube-dns" { @@ -137,7 +137,7 @@ func runAddonsCmdFunc(cmdFunc func(cfg *kubeadmapi.MasterConfiguration, client c } internalcfg := &kubeadmapi.MasterConfiguration{} - api.Scheme.Convert(cfg, internalcfg, nil) + legacyscheme.Scheme.Convert(cfg, internalcfg, nil) client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile) kubeadmutil.CheckErr(err) internalcfg, err = configutil.ConfigFileAndDefaultsToInternalConfig(*cfgPath, cfg) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/bootstraptoken.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/bootstraptoken.go index 9da5f5499..948ab3550 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/bootstraptoken.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/bootstraptoken.go @@ -17,17 +17,13 @@ limitations under the License. package phases import ( - "fmt" - "github.com/spf13/cobra" - clientset "k8s.io/client-go/kubernetes" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo" "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" - versionutil "k8s.io/kubernetes/pkg/util/version" ) // NewCmdBootstrapToken returns the Cobra command for running the mark-master phase @@ -35,12 +31,12 @@ func NewCmdBootstrapToken() *cobra.Command { var kubeConfigFile string cmd := &cobra.Command{ Use: "bootstrap-token", - Short: "Manage kubeadm-specific Bootstrap Token functions.", + Short: "Manage kubeadm-specific bootstrap token functions.", Aliases: []string{"bootstraptoken"}, RunE: cmdutil.SubCmdRunE("bootstrap-token"), } - cmd.PersistentFlags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use for talking to the cluster") + cmd.PersistentFlags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use when talking to the cluster.") // Add subcommands cmd.AddCommand(NewSubCmdClusterInfo(&kubeConfigFile)) @@ -53,7 +49,7 @@ func NewCmdBootstrapToken() *cobra.Command { func NewSubCmdClusterInfo(kubeConfigFile *string) *cobra.Command { cmd := &cobra.Command{ Use: "cluster-info ", - Short: "Uploads and exposes the cluster-info ConfigMap publicly from the given cluster-info file", + Short: "Uploads and exposes the cluster-info ConfigMap publicly from the given cluster-info file.", Aliases: []string{"clusterinfo"}, Run: func(cmd *cobra.Command, args []string) { err := cmdutil.ValidateExactArgNumber(args, []string{"clusterinfo-file"}) @@ -80,7 +76,7 @@ func NewSubCmdClusterInfo(kubeConfigFile *string) *cobra.Command { func NewSubCmdNodeBootstrapToken(kubeConfigFile *string) *cobra.Command { cmd := &cobra.Command{ Use: "node", - Short: "Manages Node Bootstrap Tokens", + Short: "Manages node bootstrap tokens.", Aliases: []string{"clusterinfo"}, RunE: cmdutil.SubCmdRunE("node"), } @@ -95,15 +91,12 @@ func NewSubCmdNodeBootstrapToken(kubeConfigFile *string) *cobra.Command { func NewSubCmdNodeBootstrapTokenPostCSRs(kubeConfigFile *string) *cobra.Command { cmd := &cobra.Command{ Use: "allow-post-csrs", - Short: "Configure RBAC to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials", + Short: "Configure RBAC to allow node bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials.", Run: func(cmd *cobra.Command, args []string) { client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile) kubeadmutil.CheckErr(err) - clusterVersion, err := getClusterVersion(client) - kubeadmutil.CheckErr(err) - - err = node.AllowBootstrapTokensToPostCSRs(client, clusterVersion) + err = node.AllowBootstrapTokensToPostCSRs(client) kubeadmutil.CheckErr(err) }, } @@ -114,30 +107,14 @@ func NewSubCmdNodeBootstrapTokenPostCSRs(kubeConfigFile *string) *cobra.Command func NewSubCmdNodeBootstrapTokenAutoApprove(kubeConfigFile *string) *cobra.Command { cmd := &cobra.Command{ Use: "allow-auto-approve", - Short: "Configure RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token", + Short: "Configure RBAC rules to allow the csrapprover controller automatically approve CSRs from a node bootstrap token.", Run: func(cmd *cobra.Command, args []string) { client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile) kubeadmutil.CheckErr(err) - clusterVersion, err := getClusterVersion(client) - kubeadmutil.CheckErr(err) - - err = node.AutoApproveNodeBootstrapTokens(client, clusterVersion) + err = node.AutoApproveNodeBootstrapTokens(client) kubeadmutil.CheckErr(err) }, } return cmd } - -// getClusterVersion fetches the API server version and parses it -func getClusterVersion(client clientset.Interface) (*versionutil.Version, error) { - clusterVersionInfo, err := client.Discovery().ServerVersion() - if err != nil { - return nil, fmt.Errorf("failed to check server version: %v", err) - } - clusterVersion, err := versionutil.ParseSemantic(clusterVersionInfo.String()) - if err != nil { - return nil, fmt.Errorf("failed to parse server version: %v", err) - } - return clusterVersion, nil -} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/certs.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/certs.go index 064e60e11..81ae6f815 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/certs.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/certs.go @@ -26,10 +26,10 @@ import ( certsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) -// NewCmdCerts return main command for certs phase +// NewCmdCerts returns main command for certs phase func NewCmdCerts() *cobra.Command { cmd := &cobra.Command{ Use: "certs", @@ -55,7 +55,7 @@ func getCertsSubCommands(defaultKubernetesVersion string) []*cobra.Command { } // Default values for the cobra help text - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) var cfgPath string var subCmds []*cobra.Command @@ -111,13 +111,13 @@ func getCertsSubCommands(defaultKubernetesVersion string) []*cobra.Command { } // Add flags to the command - cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental)") - cmd.Flags().StringVar(&cfg.CertificatesDir, "cert-dir", cfg.CertificatesDir, "The path where to save and store the certificates") + cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to a kubeadm config file. WARNING: Usage of a configuration file is experimental!") + cmd.Flags().StringVar(&cfg.CertificatesDir, "cert-dir", cfg.CertificatesDir, "The path where to save and store the certificates.") if properties.use == "all" || properties.use == "apiserver" { - cmd.Flags().StringVar(&cfg.Networking.DNSDomain, "service-dns-domain", cfg.Networking.DNSDomain, "Use alternative domain for services, e.g. \"myorg.internal\"") - cmd.Flags().StringVar(&cfg.Networking.ServiceSubnet, "service-cidr", cfg.Networking.ServiceSubnet, "Use alternative range of IP address for service VIPs") - cmd.Flags().StringSliceVar(&cfg.APIServerCertSANs, "apiserver-cert-extra-sans", []string{}, "Optional extra altnames to use for the API Server serving cert. Can be both IP addresses and dns names.") - cmd.Flags().StringVar(&cfg.API.AdvertiseAddress, "apiserver-advertise-address", cfg.API.AdvertiseAddress, "The IP address the API Server will advertise it's listening on. 0.0.0.0 means the default network interface's address.") + cmd.Flags().StringVar(&cfg.Networking.DNSDomain, "service-dns-domain", cfg.Networking.DNSDomain, "Use alternative domain for services, e.g. \"myorg.internal\".") + cmd.Flags().StringVar(&cfg.Networking.ServiceSubnet, "service-cidr", cfg.Networking.ServiceSubnet, "Use alternative range of IP address for service VIPs.") + cmd.Flags().StringSliceVar(&cfg.APIServerCertSANs, "apiserver-cert-extra-sans", []string{}, "Optional extra Subject Alternative Names (SANs) to use for the API Server serving certificate. Can be both IP addresses and DNS names.") + cmd.Flags().StringVar(&cfg.API.AdvertiseAddress, "apiserver-advertise-address", cfg.API.AdvertiseAddress, "The IP address the API Server will advertise it is listening on. Specify '0.0.0.0' to use the address of the default network interface.") } subCmds = append(subCmds, cmd) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/controlplane.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/controlplane.go index 97bc51c4d..fd5f04eba 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/controlplane.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/controlplane.go @@ -17,14 +17,20 @@ limitations under the License. package phases import ( + "strings" + "github.com/spf13/cobra" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" + "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" + "k8s.io/kubernetes/cmd/kubeadm/app/features" controlplanephase "k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane" - "k8s.io/kubernetes/pkg/api" + kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" + configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // NewCmdControlplane return main command for Controlplane phase @@ -53,9 +59,9 @@ func getControlPlaneSubCommands(outDir, defaultKubernetesVersion string) []*cobr } // Default values for the cobra help text - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) - var cfgPath string + var cfgPath, featureGatesString string var subCmds []*cobra.Command subCmdProperties := []struct { @@ -90,7 +96,7 @@ func getControlPlaneSubCommands(outDir, defaultKubernetesVersion string) []*cobr cmd := &cobra.Command{ Use: properties.use, Short: properties.short, - Run: runCmdPhase(properties.cmdFunc, &outDir, &cfgPath, cfg), + Run: runCmdControlPlane(properties.cmdFunc, &outDir, &cfgPath, &featureGatesString, cfg), } // Add flags to the command @@ -101,16 +107,49 @@ func getControlPlaneSubCommands(outDir, defaultKubernetesVersion string) []*cobr cmd.Flags().StringVar(&cfg.API.AdvertiseAddress, "apiserver-advertise-address", cfg.API.AdvertiseAddress, "The IP address or DNS name the API Server is accessible on.") cmd.Flags().Int32Var(&cfg.API.BindPort, "apiserver-bind-port", cfg.API.BindPort, "The port the API Server is accessible on.") cmd.Flags().StringVar(&cfg.Networking.ServiceSubnet, "service-cidr", cfg.Networking.ServiceSubnet, "The range of IP address used for service VIPs.") + cmd.Flags().StringVar(&featureGatesString, "feature-gates", featureGatesString, "A set of key=value pairs that describe feature gates for various features. "+ + "Options are:\n"+strings.Join(features.KnownFeatures(&features.InitFeatureGates), "\n")) } if properties.use == "all" || properties.use == "controller-manager" { cmd.Flags().StringVar(&cfg.Networking.PodSubnet, "pod-network-cidr", cfg.Networking.PodSubnet, "The range of IP addresses used for the pod network.") } - cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental)") + cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to a kubeadm config file. WARNING: Usage of a configuration file is experimental!") subCmds = append(subCmds, cmd) } return subCmds } + +// runCmdControlPlane creates a cobra.Command Run function, by composing the call to the given cmdFunc with necessary additional steps (e.g preparation of input parameters) +func runCmdControlPlane(cmdFunc func(outDir string, cfg *kubeadmapi.MasterConfiguration) error, outDir, cfgPath *string, featureGatesString *string, cfg *kubeadmapiext.MasterConfiguration) func(cmd *cobra.Command, args []string) { + + // the following statement build a clousure that wraps a call to a cmdFunc, binding + // the function itself with the specific parameters of each sub command. + // Please note that specific parameter should be passed as value, while other parameters - passed as reference - + // are shared between sub commands and gets access to current value e.g. flags value. + return func(cmd *cobra.Command, args []string) { + var err error + if err = validation.ValidateMixedArguments(cmd.Flags()); err != nil { + kubeadmutil.CheckErr(err) + } + + if cfg.FeatureGates, err = features.NewFeatureGate(&features.InitFeatureGates, *featureGatesString); err != nil { + kubeadmutil.CheckErr(err) + } + + // This call returns the ready-to-use configuration based on the configuration file that might or might not exist and the default cfg populated by flags + internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(*cfgPath, cfg) + kubeadmutil.CheckErr(err) + + if err := features.ValidateVersion(features.InitFeatureGates, internalcfg.FeatureGates, internalcfg.KubernetesVersion); err != nil { + kubeadmutil.CheckErr(err) + } + + // Execute the cmdFunc + err = cmdFunc(*outDir, internalcfg) + kubeadmutil.CheckErr(err) + } +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/controlplane_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/controlplane_test.go index f64fa053f..6db2dc3c5 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/controlplane_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/controlplane_test.go @@ -49,6 +49,7 @@ func TestControlPlaneSubCommandsHasFlags(t *testing.T) { "apiserver-bind-port", "service-cidr", "pod-network-cidr", + "feature-gates", }, }, { @@ -58,6 +59,7 @@ func TestControlPlaneSubCommandsHasFlags(t *testing.T) { "apiserver-advertise-address", "apiserver-bind-port", "service-cidr", + "feature-gates", }, }, { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/etcd.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/etcd.go index 02dd8470d..9dab289c0 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/etcd.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/etcd.go @@ -24,7 +24,7 @@ import ( cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" etcdphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // NewCmdEtcd return main command for Etcd phase @@ -53,7 +53,7 @@ func getEtcdSubCommands(outDir, defaultKubernetesVersion string) []*cobra.Comman } // Default values for the cobra help text - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) var cfgPath string var subCmds []*cobra.Command diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/kubeconfig.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/kubeconfig.go index 1ed1a8d74..ad2873013 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/kubeconfig.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/kubeconfig.go @@ -27,7 +27,7 @@ import ( cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubeconfig" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // NewCmdKubeConfig return main command for kubeconfig phase @@ -55,7 +55,7 @@ func getKubeConfigSubCommands(out io.Writer, outDir, defaultKubernetesVersion st } // Default values for the cobra help text - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) var cfgPath, token, clientName string var subCmds []*cobra.Command @@ -72,12 +72,12 @@ func getKubeConfigSubCommands(out io.Writer, outDir, defaultKubernetesVersion st }, { use: "admin", - short: "Generate a kubeconfig file for the admin to use and for kubeadm itself.", + short: "Generate a kubeconfig file for the administrator to use and for kubeadm itself.", cmdFunc: kubeconfigphase.CreateAdminKubeConfigFile, }, { use: "kubelet", - short: "Generate a kubeconfig file for the Kubelet to use. Please note that this should *only* be used for bootstrapping purposes. After your control plane is up, you should request all kubelet credentials from the CSR API.", + short: "Generate a kubeconfig file for the Kubelet to use. Please note that this should *only* be used for bootstrapping purposes! After your control plane is up, you should request all kubelet credentials from the CSR API.", cmdFunc: kubeconfigphase.CreateKubeletKubeConfigFile, }, { @@ -119,11 +119,12 @@ func getKubeConfigSubCommands(out io.Writer, outDir, defaultKubernetesVersion st // Add flags to the command if properties.use != "user" { - cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental)") + cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to kubeadm config file. WARNING: Usage of a configuration file is experimental!") } cmd.Flags().StringVar(&cfg.CertificatesDir, "cert-dir", cfg.CertificatesDir, "The path where certificates are stored.") cmd.Flags().StringVar(&cfg.API.AdvertiseAddress, "apiserver-advertise-address", cfg.API.AdvertiseAddress, "The IP address or DNS name the API Server is accessible on.") cmd.Flags().Int32Var(&cfg.API.BindPort, "apiserver-bind-port", cfg.API.BindPort, "The port the API Server is accessible on.") + cmd.Flags().StringVar(&outDir, "kubeconfig-dir", outDir, "The path where to save and store the kubeconfig file.") if properties.use == "all" || properties.use == "kubelet" { cmd.Flags().StringVar(&cfg.NodeName, "node-name", cfg.NodeName, `The node name that the kubelet client cert should use.`) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/kubeconfig_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/kubeconfig_test.go index f3d86eff9..d3a4d93b0 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/kubeconfig_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/kubeconfig_test.go @@ -44,6 +44,7 @@ func TestKubeConfigCSubCommandsHasFlags(t *testing.T) { "cert-dir", "apiserver-advertise-address", "apiserver-bind-port", + "kubeconfig-dir", } var tests = []struct { @@ -167,6 +168,8 @@ func TestKubeConfigSubCommandsThatCreateFilesWithFlags(t *testing.T) { // Adds a pki folder with a ca certs to the temp folder pkidir := testutil.SetupPkiDirWithCertificateAuthorithy(t, tmpdir) + outputdir := tmpdir + // Retrives ca cert for assertions caCert, _, err := pkiutil.TryLoadCertAndKeyFromDisk(pkidir, kubeadmconstants.CACertAndKeyBaseName) if err != nil { @@ -178,7 +181,9 @@ func TestKubeConfigSubCommandsThatCreateFilesWithFlags(t *testing.T) { // Execute the subcommand certDirFlag := fmt.Sprintf("--cert-dir=%s", pkidir) + outputDirFlag := fmt.Sprintf("--kubeconfig-dir=%s", outputdir) allFlags := append(commonFlags, certDirFlag) + allFlags = append(allFlags, outputDirFlag) allFlags = append(allFlags, test.additionalFlags...) cmdtestutil.RunSubCommand(t, subCmds, test.command, allFlags...) @@ -320,6 +325,8 @@ func TestKubeConfigSubCommandsThatWritesToOut(t *testing.T) { // Adds a pki folder with a ca cert to the temp folder pkidir := testutil.SetupPkiDirWithCertificateAuthorithy(t, tmpdir) + outputdir := tmpdir + // Retrives ca cert for assertions caCert, _, err := pkiutil.TryLoadCertAndKeyFromDisk(pkidir, kubeadmconstants.CACertAndKeyBaseName) if err != nil { @@ -331,6 +338,7 @@ func TestKubeConfigSubCommandsThatWritesToOut(t *testing.T) { "--apiserver-bind-port=1234", "--client-name=myUser", fmt.Sprintf("--cert-dir=%s", pkidir), + fmt.Sprintf("--kubeconfig-dir=%s", outputdir), } var tests = []struct { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/markmaster.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/markmaster.go index 89457fdfc..d101652e0 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/markmaster.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/markmaster.go @@ -44,6 +44,6 @@ func NewCmdMarkMaster() *cobra.Command { }, } - cmd.Flags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use for talking to the cluster") + cmd.Flags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use when talking to the cluster") return cmd } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/preflight.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/preflight.go index 764328acc..d9d39041e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/preflight.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/preflight.go @@ -22,6 +22,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" "k8s.io/kubernetes/cmd/kubeadm/app/preflight" + utilsexec "k8s.io/utils/exec" ) // NewCmdPreFlight calls cobra.Command for preflight checks @@ -41,10 +42,11 @@ func NewCmdPreFlight() *cobra.Command { func NewCmdPreFlightMaster() *cobra.Command { cmd := &cobra.Command{ Use: "master", - Short: "Run master pre-flight checks", + Short: "Run master pre-flight checks.", RunE: func(cmd *cobra.Command, args []string) error { cfg := &kubeadmapi.MasterConfiguration{} - return preflight.RunInitMasterChecks(cfg) + criSocket := "" + return preflight.RunInitMasterChecks(utilsexec.New(), cfg, criSocket) }, } @@ -55,10 +57,11 @@ func NewCmdPreFlightMaster() *cobra.Command { func NewCmdPreFlightNode() *cobra.Command { cmd := &cobra.Command{ Use: "node", - Short: "Run node pre-flight checks", + Short: "Run node pre-flight checks.", RunE: func(cmd *cobra.Command, args []string) error { cfg := &kubeadmapi.NodeConfiguration{} - return preflight.RunJoinNodeChecks(cfg) + criSocket := "" + return preflight.RunJoinNodeChecks(utilsexec.New(), cfg, criSocket) }, } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/selfhosting.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/selfhosting.go index 7011a9b77..31594fc4a 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/selfhosting.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/selfhosting.go @@ -33,7 +33,7 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // NewCmdSelfhosting returns the self-hosting Cobra command @@ -54,7 +54,7 @@ func getSelfhostingSubCommand() *cobra.Command { cfg := &kubeadmapiext.MasterConfiguration{} // Default values for the cobra help text - api.Scheme.Default(cfg) + legacyscheme.Scheme.Default(cfg) var cfgPath, kubeConfigFile, featureGatesString string @@ -90,14 +90,14 @@ func getSelfhostingSubCommand() *cobra.Command { // Add flags to the command // flags bound to the configuration object - cmd.Flags().StringVar(&cfg.CertificatesDir, "cert-dir", cfg.CertificatesDir, `The path where certificates are stored`) - cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental)") + cmd.Flags().StringVar(&cfg.CertificatesDir, "cert-dir", cfg.CertificatesDir, `The path where certificates are stored.`) + cmd.Flags().StringVar(&cfgPath, "config", cfgPath, "Path to a kubeadm config file. WARNING: Usage of a configuration file is experimental!") cmd.Flags().StringVar(&featureGatesString, "feature-gates", featureGatesString, "A set of key=value pairs that describe feature gates for various features."+ "Options are:\n"+strings.Join(features.KnownFeatures(&features.InitFeatureGates), "\n")) // flags that are not bound to the configuration object // Note: All flags that are not bound to the cfg object should be whitelisted in cmd/kubeadm/app/apis/kubeadm/validation/validation.go - cmd.Flags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use for talking to the cluster") + cmd.Flags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use when talking to the cluster.") return cmd } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/uploadconfig.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/uploadconfig.go index bd2573f4f..99e7ae256 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/uploadconfig.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/uploadconfig.go @@ -51,8 +51,8 @@ func NewCmdUploadConfig() *cobra.Command { }, } - cmd.Flags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use for talking to the cluster") - cmd.Flags().StringVar(&cfgPath, "config", "", "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental)") + cmd.Flags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use when talking to the cluster") + cmd.Flags().StringVar(&cfgPath, "config", "", "Path to a kubeadm config file. WARNING: Usage of a configuration file is experimental!") return cmd } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset.go index 97213254f..14f6e413d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset.go @@ -30,17 +30,23 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/preflight" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" "k8s.io/kubernetes/pkg/util/initsystem" + utilsexec "k8s.io/utils/exec" +) + +var ( + crictlParamsFormat = "%s -r %s sandboxes --quiet | xargs -r %s -r %s rms" ) // NewCmdReset returns the "kubeadm reset" command func NewCmdReset(out io.Writer) *cobra.Command { var skipPreFlight bool var certsDir string + var criSocketPath string cmd := &cobra.Command{ Use: "reset", Short: "Run this to revert any changes made to this host by 'kubeadm init' or 'kubeadm join'.", Run: func(cmd *cobra.Command, args []string) { - r, err := NewReset(skipPreFlight, certsDir) + r, err := NewReset(skipPreFlight, certsDir, criSocketPath) kubeadmutil.CheckErr(err) kubeadmutil.CheckErr(r.Run(out)) }, @@ -48,7 +54,7 @@ func NewCmdReset(out io.Writer) *cobra.Command { cmd.PersistentFlags().BoolVar( &skipPreFlight, "skip-preflight-checks", false, - "Skip preflight checks normally run before modifying the system.", + "Skip preflight checks which normally run before modifying the system.", ) cmd.PersistentFlags().StringVar( @@ -56,16 +62,22 @@ func NewCmdReset(out io.Writer) *cobra.Command { "The path to the directory where the certificates are stored. If specified, clean this directory.", ) + cmd.PersistentFlags().StringVar( + &criSocketPath, "cri-socket", "/var/run/dockershim.sock", + "The path to the CRI socket to use with crictl when cleaning up containers.", + ) + return cmd } // Reset defines struct used for kubeadm reset command type Reset struct { - certsDir string + certsDir string + criSocketPath string } // NewReset instantiate Reset struct -func NewReset(skipPreFlight bool, certsDir string) (*Reset, error) { +func NewReset(skipPreFlight bool, certsDir, criSocketPath string) (*Reset, error) { if !skipPreFlight { fmt.Println("[preflight] Running pre-flight checks.") @@ -77,7 +89,8 @@ func NewReset(skipPreFlight bool, certsDir string) (*Reset, error) { } return &Reset{ - certsDir: certsDir, + certsDir: certsDir, + criSocketPath: criSocketPath, }, nil } @@ -87,12 +100,12 @@ func (r *Reset) Run(out io.Writer) error { // Try to stop the kubelet service initSystem, err := initsystem.GetInitSystem() if err != nil { - fmt.Println("[reset] WARNING: The kubelet service couldn't be stopped by kubeadm because no supported init system was detected.") + fmt.Println("[reset] WARNING: The kubelet service could not be stopped by kubeadm. Unable to detect a supported init system!") fmt.Println("[reset] WARNING: Please ensure kubelet is stopped manually.") } else { fmt.Println("[reset] Stopping the kubelet service.") if err := initSystem.ServiceStop("kubelet"); err != nil { - fmt.Printf("[reset] WARNING: The kubelet service couldn't be stopped by kubeadm: [%v]\n", err) + fmt.Printf("[reset] WARNING: The kubelet service could not be stopped by kubeadm: [%v]\n", err) fmt.Println("[reset] WARNING: Please ensure kubelet is stopped manually.") } } @@ -105,15 +118,11 @@ func (r *Reset) Run(out io.Writer) error { fmt.Printf("[reset] Failed to unmount mounted directories in /var/lib/kubelet: %s\n", string(umountOutputBytes)) } + fmt.Println("[reset] Removing kubernetes-managed containers.") dockerCheck := preflight.ServiceCheck{Service: "docker", CheckIfActive: true} - if _, errors := dockerCheck.Check(); len(errors) == 0 { - fmt.Println("[reset] Removing kubernetes-managed containers.") - if err := exec.Command("sh", "-c", "docker ps -a --filter name=k8s_ -q | xargs -r docker rm --force --volumes").Run(); err != nil { - fmt.Println("[reset] Failed to stop the running containers.") - } - } else { - fmt.Println("[reset] Docker doesn't seem to be running. Skipping the removal of running Kubernetes containers.") - } + execer := utilsexec.New() + + reset(execer, dockerCheck, r.criSocketPath) dirsToClean := []string{"/var/lib/kubelet", "/etc/cni/net.d", "/var/lib/dockershim", "/var/run/kubernetes"} @@ -123,7 +132,7 @@ func (r *Reset) Run(out io.Writer) error { if _, err := os.Stat(etcdManifestPath); err == nil { dirsToClean = append(dirsToClean, "/var/lib/etcd") } else { - fmt.Printf("[reset] No etcd manifest found in %q, assuming external etcd.\n", etcdManifestPath) + fmt.Printf("[reset] No etcd manifest found in %q. Assuming external etcd.\n", etcdManifestPath) } // Then clean contents from the stateful kubelet, etcd and cni directories @@ -133,11 +142,47 @@ func (r *Reset) Run(out io.Writer) error { } // Remove contents from the config and pki directories + if r.certsDir != kubeadmapiext.DefaultCertificatesDir { + fmt.Printf("[reset] WARNING: Cleaning a non-default certificates directory: %q\n", r.certsDir) + } resetConfigDir(kubeadmconstants.KubernetesDir, r.certsDir) return nil } +func reset(execer utilsexec.Interface, dockerCheck preflight.Checker, criSocketPath string) { + crictlPath, err := execer.LookPath("crictl") + if err == nil { + resetWithCrictl(execer, dockerCheck, criSocketPath, crictlPath) + } else { + resetWithDocker(execer, dockerCheck) + } +} + +func resetWithDocker(execer utilsexec.Interface, dockerCheck preflight.Checker) { + if _, errors := dockerCheck.Check(); len(errors) == 0 { + if err := execer.Command("sh", "-c", "docker ps -a --filter name=k8s_ -q | xargs -r docker rm --force --volumes").Run(); err != nil { + fmt.Println("[reset] Failed to stop the running containers.") + } + } else { + fmt.Println("[reset] Docker doesn't seem to be running. Skipping the removal of running Kubernetes containers.") + } +} + +func resetWithCrictl(execer utilsexec.Interface, dockerCheck preflight.Checker, criSocketPath, crictlPath string) { + if criSocketPath != "" { + fmt.Printf("[reset] Cleaning up running containers using crictl with socket %s\n", criSocketPath) + cmd := fmt.Sprintf(crictlParamsFormat, crictlPath, criSocketPath, crictlPath, criSocketPath) + if err := execer.Command("sh", "-c", cmd).Run(); err != nil { + fmt.Println("[reset] Failed to stop the running containers using crictl. Trying using docker instead.") + resetWithDocker(execer, dockerCheck) + } + } else { + fmt.Println("[reset] CRI socket path not provided for crictl. Trying docker instead.") + resetWithDocker(execer, dockerCheck) + } +} + // cleanDir removes everything in a directory, but not the directory itself func cleanDir(filePath string) error { // If the directory doesn't even exist there's nothing to do, and we do diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset_test.go index 1eeb0076d..a0e479c8b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/reset_test.go @@ -17,13 +17,17 @@ limitations under the License. package cmd import ( + "errors" "io/ioutil" "os" "path/filepath" + "strings" "testing" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/preflight" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) func assertExists(t *testing.T, path string) { @@ -181,3 +185,129 @@ func TestConfigDirCleaner(t *testing.T) { } } } + +type fakeDockerChecker struct { + warnings []error + errors []error +} + +func (c *fakeDockerChecker) Check() (warnings, errors []error) { + return c.warnings, c.errors +} + +func newFakeDockerChecker(warnings, errors []error) preflight.Checker { + return &fakeDockerChecker{warnings: warnings, errors: errors} +} + +func TestResetWithDocker(t *testing.T) { + fcmd := fakeexec.FakeCmd{ + RunScript: []fakeexec.FakeRunAction{ + func() ([]byte, []byte, error) { return nil, nil, nil }, + func() ([]byte, []byte, error) { return nil, nil, errors.New("docker error") }, + func() ([]byte, []byte, error) { return nil, nil, nil }, + }, + } + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + }, + } + resetWithDocker(&fexec, newFakeDockerChecker(nil, nil)) + if fcmd.RunCalls != 1 { + t.Errorf("expected 1 call to Run, got %d", fcmd.RunCalls) + } + resetWithDocker(&fexec, newFakeDockerChecker(nil, nil)) + if fcmd.RunCalls != 2 { + t.Errorf("expected 2 calls to Run, got %d", fcmd.RunCalls) + } + resetWithDocker(&fexec, newFakeDockerChecker(nil, []error{errors.New("test error")})) + if fcmd.RunCalls != 2 { + t.Errorf("expected 2 calls to Run, got %d", fcmd.RunCalls) + } +} + +func TestResetWithCrictl(t *testing.T) { + fcmd := fakeexec.FakeCmd{ + RunScript: []fakeexec.FakeRunAction{ + func() ([]byte, []byte, error) { return nil, nil, nil }, + func() ([]byte, []byte, error) { return nil, nil, nil }, + func() ([]byte, []byte, error) { return nil, nil, errors.New("crictl error") }, + func() ([]byte, []byte, error) { return nil, nil, nil }, + }, + } + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + }, + } + + resetWithCrictl(&fexec, newFakeDockerChecker(nil, nil), "", "crictl") + if fcmd.RunCalls != 1 { + t.Errorf("expected 1 call to Run, got %d", fcmd.RunCalls) + } + if !strings.Contains(fcmd.RunLog[0][2], "docker") { + t.Errorf("expected a call to docker, got %v", fcmd.RunLog[0]) + } + + resetWithCrictl(&fexec, newFakeDockerChecker(nil, nil), "/test.sock", "crictl") + if fcmd.RunCalls != 2 { + t.Errorf("expected 2 calls to Run, got %d", fcmd.RunCalls) + } + if !strings.Contains(fcmd.RunLog[1][2], "crictl") { + t.Errorf("expected a call to crictl, got %v", fcmd.RunLog[0]) + } + + resetWithCrictl(&fexec, newFakeDockerChecker(nil, nil), "/test.sock", "crictl") + if fcmd.RunCalls != 4 { + t.Errorf("expected 4 calls to Run, got %d", fcmd.RunCalls) + } + if !strings.Contains(fcmd.RunLog[2][2], "crictl") { + t.Errorf("expected a call to crictl, got %v", fcmd.RunLog[0]) + } + if !strings.Contains(fcmd.RunLog[3][2], "docker") { + t.Errorf("expected a call to docker, got %v", fcmd.RunLog[0]) + } + + resetWithCrictl(&fexec, newFakeDockerChecker(nil, []error{errors.New("test error")}), "", "crictl") + if fcmd.RunCalls != 4 { + t.Errorf("expected 4 calls to Run, got %d", fcmd.RunCalls) + } +} + +func TestReset(t *testing.T) { + fcmd := fakeexec.FakeCmd{ + RunScript: []fakeexec.FakeRunAction{ + func() ([]byte, []byte, error) { return nil, nil, nil }, + func() ([]byte, []byte, error) { return nil, nil, nil }, + }, + } + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + }, + LookPathFunc: func(cmd string) (string, error) { return cmd, nil }, + } + + reset(&fexec, newFakeDockerChecker(nil, nil), "/test.sock") + if fcmd.RunCalls != 1 { + t.Errorf("expected 1 call to Run, got %d", fcmd.RunCalls) + } + if !strings.Contains(fcmd.RunLog[0][2], "crictl") { + t.Errorf("expected a call to crictl, got %v", fcmd.RunLog[0]) + } + + fexec.LookPathFunc = func(cmd string) (string, error) { return "", errors.New("no crictl") } + reset(&fexec, newFakeDockerChecker(nil, nil), "/test.sock") + if fcmd.RunCalls != 2 { + t.Errorf("expected 2 calls to Run, got %d", fcmd.RunCalls) + } + if !strings.Contains(fcmd.RunLog[1][2], "docker") { + t.Errorf("expected a call to docker, got %v", fcmd.RunLog[0]) + } +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/token.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/token.go index 2c7928b7d..2cc29ec3c 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/token.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/token.go @@ -41,37 +41,34 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" tokenutil "k8s.io/kubernetes/cmd/kubeadm/app/util/token" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" "k8s.io/kubernetes/pkg/printers" ) // NewCmdToken returns cobra.Command for token management func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command { - var kubeConfigFile string var dryRun bool tokenCmd := &cobra.Command{ Use: "token", Short: "Manage bootstrap tokens.", Long: dedent.Dedent(` - This command will manage Bootstrap Token for you. - Please note this usage of this command is optional, and mostly for advanced users. + This command manages bootstrap tokens. It is optional and needed only for advanced use cases. - In short, Bootstrap Tokens are used for establishing bidirectional trust between a client and a server. - A Bootstrap Token can be used when a client (for example a node that's about to join the cluster) needs - to trust the server it is talking to. Then a Bootstrap Token with the "signing" usage can be used. - Bootstrap Tokens can also function as a way to allow short-lived authentication to the API Server + In short, bootstrap tokens are used for establishing bidirectional trust between a client and a server. + A bootstrap token can be used when a client (for example a node that is about to join the cluster) needs + to trust the server it is talking to. Then a bootstrap token with the "signing" usage can be used. + bootstrap tokens can also function as a way to allow short-lived authentication to the API Server (the token serves as a way for the API Server to trust the client), for example for doing the TLS Bootstrap. - What is a Bootstrap Token more exactly? + What is a bootstrap token more exactly? - It is a Secret in the kube-system namespace of type "bootstrap.kubernetes.io/token". - - A Bootstrap Token must be of the form "[a-z0-9]{6}.[a-z0-9]{16}"; the former part is the public Token ID, - and the latter is the Token Secret, which must be kept private at all circumstances. + - A bootstrap token must be of the form "[a-z0-9]{6}.[a-z0-9]{16}". The former part is the public token ID, + while the latter is the Token Secret and it must be kept private at all circumstances! - The name of the Secret must be named "bootstrap-token-(token-id)". - You can read more about Bootstrap Tokens here: - + You can read more about bootstrap tokens here: https://kubernetes.io/docs/admin/bootstrap-tokens/ `), @@ -84,7 +81,7 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command { } tokenCmd.PersistentFlags().StringVar(&kubeConfigFile, - "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use for talking to the cluster") + "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use when talking to the cluster") tokenCmd.PersistentFlags().BoolVar(&dryRun, "dry-run", dryRun, "Whether to enable dry-run mode or not") @@ -96,8 +93,8 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command { Use: "create [token]", Short: "Create bootstrap tokens on the server.", Long: dedent.Dedent(` - This command will create a Bootstrap Token for you. - You can specify the usages for this token, the time to live and an optional human friendly description. + This command will create a bootstrap token for you. + You can specify the usages for this token, the "time to live" and an optional human friendly description. The [token] is the actual token to write. This should be a securely generated random token of the form "[a-z0-9]{6}.[a-z0-9]{16}". @@ -116,9 +113,9 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command { }, } createCmd.Flags().DurationVar(&tokenDuration, - "ttl", kubeadmconstants.DefaultTokenDuration, "The duration before the token is automatically deleted (e.g. 1s, 2m, 3h). 0 means 'never expires'.") + "ttl", kubeadmconstants.DefaultTokenDuration, "The duration before the token is automatically deleted (e.g. 1s, 2m, 3h). If set to '0', the token will never expire.") createCmd.Flags().StringSliceVar(&usages, - "usages", kubeadmconstants.DefaultTokenUsages, "The ways in which this token can be used. Valid options: [signing,authentication].") + "usages", kubeadmconstants.DefaultTokenUsages, fmt.Sprintf("Describes the ways in which this token can be used. You can pass --usages multiple times or provide a comma separated list of options. Valid options: [%s].", strings.Join(kubeadmconstants.DefaultTokenUsages, ","))) createCmd.Flags().StringSliceVar(&extraGroups, "groups", []string{kubeadmconstants.NodeBootstrapTokenAuthGroup}, fmt.Sprintf("Extra groups that this token will authenticate as when used for authentication. Must match %q.", bootstrapapi.BootstrapGroupPattern)) @@ -132,7 +129,7 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command { Use: "list", Short: "List bootstrap tokens on the server.", Long: dedent.Dedent(` - This command will list all Bootstrap Tokens for you. + This command will list all bootstrap tokens for you. `), Run: func(tokenCmd *cobra.Command, args []string) { client, err := getClientset(kubeConfigFile, dryRun) @@ -148,7 +145,7 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command { Use: "delete [token-value]", Short: "Delete bootstrap tokens on the server.", Long: dedent.Dedent(` - This command will delete a given Bootstrap Token for you. + This command will delete a given bootstrap token for you. The [token-value] is the full Token of the form "[a-z0-9]{6}.[a-z0-9]{16}" or the Token ID of the form "[a-z0-9]{6}" to delete. @@ -179,10 +176,10 @@ func NewCmdTokenGenerate(out io.Writer) *cobra.Command { the "init" and "join" commands. You don't have to use this command in order to generate a token. You can do so - yourself as long as it's in the format "[a-z0-9]{6}.[a-z0-9]{16}". This - command is provided for convenience to generate tokens in that format. + yourself as long as it is in the format "[a-z0-9]{6}.[a-z0-9]{16}". This + command is provided for convenience to generate tokens in the given format. - You can also use "kubeadm init" without specifying a token, and it will + You can also use "kubeadm init" without specifying a token and it will generate and print one for you. `), Run: func(cmd *cobra.Command, args []string) { @@ -194,7 +191,6 @@ func NewCmdTokenGenerate(out io.Writer) *cobra.Command { // RunCreateToken generates a new bootstrap token and stores it as a secret on the server. func RunCreateToken(out io.Writer, client clientset.Interface, token string, tokenDuration time.Duration, usages []string, extraGroups []string, description string) error { - if len(token) == 0 { var err error token, err = tokenutil.GenerateToken() @@ -210,8 +206,9 @@ func RunCreateToken(out io.Writer, client clientset.Interface, token string, tok // adding groups only makes sense for authentication usagesSet := sets.NewString(usages...) - if len(extraGroups) > 0 && !usagesSet.Has("authentication") { - return fmt.Errorf("--groups cannot be specified unless --usages includes \"authentication\"") + usageAuthentication := strings.TrimPrefix(bootstrapapi.BootstrapTokenUsageAuthentication, bootstrapapi.BootstrapTokenUsagePrefix) + if len(extraGroups) > 0 && !usagesSet.Has(usageAuthentication) { + return fmt.Errorf("--groups cannot be specified unless --usages includes %q", usageAuthentication) } // validate any extra group names @@ -221,7 +218,6 @@ func RunCreateToken(out io.Writer, client clientset.Interface, token string, tok } } - // TODO: Validate usages here so we don't allow something unsupported err := tokenphase.CreateNewToken(client, token, tokenDuration, usages, extraGroups, description) if err != nil { return err @@ -299,7 +295,7 @@ func RunListTokens(out io.Writer, errW io.Writer, client clientset.Interface) er usages := []string{} for k, v := range secret.Data { // Skip all fields that don't include this prefix - if !strings.Contains(k, bootstrapapi.BootstrapTokenUsagePrefix) { + if !strings.HasPrefix(k, bootstrapapi.BootstrapTokenUsagePrefix) { continue } // Skip those that don't have this usage set to true diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/BUILD index eb5958281..e0489bd93 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/BUILD @@ -23,7 +23,7 @@ go_library( "//cmd/kubeadm/app/util/config:go_default_library", "//cmd/kubeadm/app/util/dryrun:go_default_library", "//cmd/kubeadm/app/util/kubeconfig:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/util/version:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/apply.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/apply.go index 09f82e1e0..d9463c19b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/apply.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/apply.go @@ -33,7 +33,7 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" dryrunutil "k8s.io/kubernetes/cmd/kubeadm/app/util/dryrun" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/util/version" ) @@ -66,7 +66,7 @@ func NewCmdApply(parentFlags *cmdUpgradeFlags) *cobra.Command { cmd := &cobra.Command{ Use: "apply [version]", - Short: "Upgrade your Kubernetes cluster to the specified version", + Short: "Upgrade your Kubernetes cluster to the specified version.", Run: func(cmd *cobra.Command, args []string) { // Ensure the user is root err := runPreflightChecks(flags.parent.skipPreFlight) @@ -90,7 +90,7 @@ func NewCmdApply(parentFlags *cmdUpgradeFlags) *cobra.Command { // Specify the valid flags specific for apply cmd.Flags().BoolVarP(&flags.nonInteractiveMode, "yes", "y", flags.nonInteractiveMode, "Perform the upgrade and do not prompt for confirmation (non-interactive mode).") cmd.Flags().BoolVarP(&flags.force, "force", "f", flags.force, "Force upgrading although some requirements might not be met. This also implies non-interactive mode.") - cmd.Flags().BoolVar(&flags.dryRun, "dry-run", flags.dryRun, "Do not change any state, just output what actions would be applied.") + cmd.Flags().BoolVar(&flags.dryRun, "dry-run", flags.dryRun, "Do not change any state, just output what actions would be performed.") cmd.Flags().DurationVar(&flags.imagePullTimeout, "image-pull-timeout", flags.imagePullTimeout, "The maximum amount of time to wait for the control plane pods to be downloaded.") return cmd @@ -105,7 +105,7 @@ func NewCmdApply(parentFlags *cmdUpgradeFlags) *cobra.Command { // - Makes sure the control plane images are available locally on the master(s) // - Upgrades the control plane components // - Applies the other resources that'd be created with kubeadm init as well, like -// - Creating the RBAC rules for the Bootstrap Tokens and the cluster-info ConfigMap +// - Creating the RBAC rules for the bootstrap tokens and the cluster-info ConfigMap // - Applying new kube-dns and kube-proxy manifests // - Uploads the newly used configuration to the cluster ConfigMap func RunApply(flags *applyFlags) error { @@ -121,7 +121,7 @@ func RunApply(flags *applyFlags) error { // Grab the external, versioned configuration and convert it to the internal type for usage here later internalcfg := &kubeadmapi.MasterConfiguration{} - api.Scheme.Convert(upgradeVars.cfg, internalcfg, nil) + legacyscheme.Scheme.Convert(upgradeVars.cfg, internalcfg, nil) // Validate requested and validate actual version if err := configutil.NormalizeKubernetesVersion(internalcfg); err != nil { @@ -158,8 +158,8 @@ func RunApply(flags *applyFlags) error { return fmt.Errorf("[upgrade/apply] FATAL: %v", err) } - // Upgrade RBAC rules and addons. Optionally, if needed, perform some extra task for a specific version - if err := upgrade.PerformPostUpgradeTasks(upgradeVars.client, internalcfg, flags.newK8sVersion); err != nil { + // Upgrade RBAC rules and addons. + if err := upgrade.PerformPostUpgradeTasks(upgradeVars.client, internalcfg); err != nil { return fmt.Errorf("[upgrade/postupgrade] FATAL post-upgrade error: %v", err) } @@ -241,10 +241,7 @@ func PerformStaticPodUpgrade(client clientset.Interface, waiter apiclient.Waiter return err } - if err := upgrade.StaticPodControlPlane(waiter, pathManager, internalcfg); err != nil { - return err - } - return nil + return upgrade.StaticPodControlPlane(waiter, pathManager, internalcfg) } // DryRunStaticPodUpgrade fakes an upgrade of the control plane @@ -268,8 +265,5 @@ func DryRunStaticPodUpgrade(internalcfg *kubeadmapi.MasterConfiguration) error { files = append(files, dryrunutil.NewFileToPrint(realPath, outputPath)) } - if err := dryrunutil.PrintDryRunFiles(files, os.Stdout); err != nil { - return err - } - return nil + return dryrunutil.PrintDryRunFiles(files, os.Stdout) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common.go index 4755cc114..fdbe23a1e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common.go @@ -99,11 +99,11 @@ func printConfiguration(cfg *kubeadmapiext.MasterConfiguration, w io.Writer) { // runPreflightChecks runs the root preflight check func runPreflightChecks(skipPreFlight bool) error { if skipPreFlight { - fmt.Println("[preflight] Skipping pre-flight checks") + fmt.Println("[preflight] Skipping pre-flight checks.") return nil } - fmt.Println("[preflight] Running pre-flight checks") + fmt.Println("[preflight] Running pre-flight checks.") return preflight.RunRootCheckOnly() } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common_test.go index 8e1bcfdf2..ce00399b2 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/common_test.go @@ -58,7 +58,6 @@ func TestPrintConfiguration(t *testing.T) { serviceSubnet: "" nodeName: "" token: "" - tokenTTL: 0s unifiedControlPlaneImage: "" `), }, @@ -90,7 +89,47 @@ func TestPrintConfiguration(t *testing.T) { serviceSubnet: 10.96.0.1/12 nodeName: "" token: "" - tokenTTL: 0s + unifiedControlPlaneImage: "" +`), + }, + { + cfg: &kubeadmapiext.MasterConfiguration{ + KubernetesVersion: "v1.7.1", + Etcd: kubeadmapiext.Etcd{ + SelfHosted: &kubeadmapiext.SelfHostedEtcd{ + CertificatesDir: "/var/foo", + ClusterServiceName: "foo", + EtcdVersion: "v0.1.0", + OperatorVersion: "v0.1.0", + }, + }, + }, + expectedBytes: []byte(`[upgrade/config] Configuration used: + api: + advertiseAddress: "" + bindPort: 0 + certificatesDir: "" + cloudProvider: "" + etcd: + caFile: "" + certFile: "" + dataDir: "" + endpoints: null + image: "" + keyFile: "" + selfHosted: + certificatesDir: /var/foo + clusterServiceName: foo + etcdVersion: v0.1.0 + operatorVersion: v0.1.0 + imageRepository: "" + kubernetesVersion: v1.7.1 + networking: + dnsDomain: "" + podSubnet: "" + serviceSubnet: "" + nodeName: "" + token: "" unifiedControlPlaneImage: "" `), }, diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan.go index e695565cc..43b74d517 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan.go @@ -33,7 +33,7 @@ import ( func NewCmdPlan(parentFlags *cmdUpgradeFlags) *cobra.Command { cmd := &cobra.Command{ Use: "plan", - Short: "Check which versions are available to upgrade to and validate whether your current cluster is upgradeable", + Short: "Check which versions are available to upgrade to and validate whether your current cluster is upgradeable.", Run: func(_ *cobra.Command, _ []string) { // Ensure the user is root err := runPreflightChecks(parentFlags.skipPreFlight) @@ -83,7 +83,7 @@ func printAvailableUpgrades(upgrades []upgrade.Upgrade, w io.Writer) { for _, upgrade := range upgrades { if upgrade.CanUpgradeKubelets() { - fmt.Fprintln(w, "Components that must be upgraded manually after you've upgraded the control plane with 'kubeadm upgrade apply':") + fmt.Fprintln(w, "Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':") fmt.Fprintln(tabw, "COMPONENT\tCURRENT\tAVAILABLE") firstPrinted := false @@ -122,7 +122,7 @@ func printAvailableUpgrades(upgrades []upgrade.Upgrade, w io.Writer) { fmt.Fprintln(w, "") if upgrade.Before.KubeadmVersion != upgrade.After.KubeadmVersion { - fmt.Fprintf(w, "Note: Before you can perform this upgrade, you have to update kubeadm to %s\n", upgrade.After.KubeadmVersion) + fmt.Fprintf(w, "Note: Before you can perform this upgrade, you have to update kubeadm to %s.\n", upgrade.After.KubeadmVersion) fmt.Fprintln(w, "") } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan_test.go index 3e0dc30b9..4ad5b75ed 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/plan_test.go @@ -89,7 +89,7 @@ func TestPrintAvailableUpgrades(t *testing.T) { }, }, }, - expectedBytes: []byte(`Components that must be upgraded manually after you've upgraded the control plane with 'kubeadm upgrade apply': + expectedBytes: []byte(`Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply': COMPONENT CURRENT AVAILABLE Kubelet 1 x v1.7.1 v1.7.3 @@ -106,7 +106,7 @@ You can now apply the upgrade by executing the following command: kubeadm upgrade apply v1.7.3 -Note: Before you can perform this upgrade, you have to update kubeadm to v1.7.3 +Note: Before you can perform this upgrade, you have to update kubeadm to v1.7.3. _____________________________________________________________________ @@ -131,7 +131,7 @@ _____________________________________________________________________ }, }, }, - expectedBytes: []byte(`Components that must be upgraded manually after you've upgraded the control plane with 'kubeadm upgrade apply': + expectedBytes: []byte(`Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply': COMPONENT CURRENT AVAILABLE Kubelet 1 x v1.7.3 v1.8.0 @@ -187,7 +187,7 @@ _____________________________________________________________________ }, }, }, - expectedBytes: []byte(`Components that must be upgraded manually after you've upgraded the control plane with 'kubeadm upgrade apply': + expectedBytes: []byte(`Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply': COMPONENT CURRENT AVAILABLE Kubelet 1 x v1.7.3 v1.7.5 @@ -206,7 +206,7 @@ You can now apply the upgrade by executing the following command: _____________________________________________________________________ -Components that must be upgraded manually after you've upgraded the control plane with 'kubeadm upgrade apply': +Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply': COMPONENT CURRENT AVAILABLE Kubelet 1 x v1.7.3 v1.8.2 @@ -223,7 +223,7 @@ You can now apply the upgrade by executing the following command: kubeadm upgrade apply v1.8.2 -Note: Before you can perform this upgrade, you have to update kubeadm to v1.8.2 +Note: Before you can perform this upgrade, you have to update kubeadm to v1.8.2. _____________________________________________________________________ @@ -248,7 +248,7 @@ _____________________________________________________________________ }, }, }, - expectedBytes: []byte(`Components that must be upgraded manually after you've upgraded the control plane with 'kubeadm upgrade apply': + expectedBytes: []byte(`Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply': COMPONENT CURRENT AVAILABLE Kubelet 1 x v1.7.5 v1.8.0-beta.1 @@ -265,7 +265,7 @@ You can now apply the upgrade by executing the following command: kubeadm upgrade apply v1.8.0-beta.1 -Note: Before you can perform this upgrade, you have to update kubeadm to v1.8.0-beta.1 +Note: Before you can perform this upgrade, you have to update kubeadm to v1.8.0-beta.1. _____________________________________________________________________ @@ -290,7 +290,7 @@ _____________________________________________________________________ }, }, }, - expectedBytes: []byte(`Components that must be upgraded manually after you've upgraded the control plane with 'kubeadm upgrade apply': + expectedBytes: []byte(`Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply': COMPONENT CURRENT AVAILABLE Kubelet 1 x v1.7.5 v1.8.0-rc.1 @@ -307,7 +307,7 @@ You can now apply the upgrade by executing the following command: kubeadm upgrade apply v1.8.0-rc.1 -Note: Before you can perform this upgrade, you have to update kubeadm to v1.8.0-rc.1 +Note: Before you can perform this upgrade, you have to update kubeadm to v1.8.0-rc.1. _____________________________________________________________________ diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/upgrade.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/upgrade.go index 9f9b14f08..d5d1f9710 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/upgrade.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/upgrade/upgrade.go @@ -50,12 +50,12 @@ func NewCmdUpgrade(out io.Writer) *cobra.Command { RunE: cmdutil.SubCmdRunE("upgrade"), } - cmd.PersistentFlags().StringVar(&flags.kubeConfigPath, "kubeconfig", flags.kubeConfigPath, "The KubeConfig file to use for talking to the cluster.") - cmd.PersistentFlags().StringVar(&flags.cfgPath, "config", flags.cfgPath, "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental).") + cmd.PersistentFlags().StringVar(&flags.kubeConfigPath, "kubeconfig", flags.kubeConfigPath, "The KubeConfig file to use when talking to the cluster.") + cmd.PersistentFlags().StringVar(&flags.cfgPath, "config", flags.cfgPath, "Path to kubeadm config file. WARNING: Usage of a configuration file is experimental!") cmd.PersistentFlags().BoolVar(&flags.allowExperimentalUpgrades, "allow-experimental-upgrades", flags.allowExperimentalUpgrades, "Show unstable versions of Kubernetes as an upgrade alternative and allow upgrading to an alpha/beta/release candidate versions of Kubernetes.") cmd.PersistentFlags().BoolVar(&flags.allowRCUpgrades, "allow-release-candidate-upgrades", flags.allowRCUpgrades, "Show release candidate versions of Kubernetes as an upgrade alternative and allow upgrading to a release candidate versions of Kubernetes.") - cmd.PersistentFlags().BoolVar(&flags.printConfig, "print-config", flags.printConfig, "Whether the configuration file that will be used in the upgrade should be printed or not.") - cmd.PersistentFlags().BoolVar(&flags.skipPreFlight, "skip-preflight-checks", flags.skipPreFlight, "Skip preflight checks normally run before modifying the system") + cmd.PersistentFlags().BoolVar(&flags.printConfig, "print-config", flags.printConfig, "Specifies whether the configuration file that will be used in the upgrade should be printed or not.") + cmd.PersistentFlags().BoolVar(&flags.skipPreFlight, "skip-preflight-checks", flags.skipPreFlight, "Skip preflight checks that normally run before modifying the system.") cmd.AddCommand(NewCmdApply(flags)) cmd.AddCommand(NewCmdPlan(flags)) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/util/cmdutil.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/util/cmdutil.go index 3c0e7d65b..213867751 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/util/cmdutil.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/util/cmdutil.go @@ -39,19 +39,21 @@ func SubCmdRunE(name string) func(*cobra.Command, []string) error { // ValidateExactArgNumber validates that the required top-level arguments are specified func ValidateExactArgNumber(args []string, supportedArgs []string) error { + lenSupported := len(supportedArgs) validArgs := 0 // Disregard possible "" arguments; they are invalid for _, arg := range args { if len(arg) > 0 { validArgs++ } + // break early for too many arguments + if validArgs > lenSupported { + return fmt.Errorf("too many arguments. Required arguments: %v", supportedArgs) + } } - if validArgs < len(supportedArgs) { + if validArgs < lenSupported { return fmt.Errorf("missing one or more required arguments. Required arguments: %v", supportedArgs) } - if validArgs > len(supportedArgs) { - return fmt.Errorf("too many arguments, only %d argument(s) supported: %v", validArgs, supportedArgs) - } return nil } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/BUILD index 09d4cd0bd..89204d405 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/BUILD @@ -11,7 +11,6 @@ go_library( srcs = ["constants.go"], importpath = "k8s.io/kubernetes/cmd/kubeadm/app/constants", deps = [ - "//pkg/controller/service:go_default_library", "//pkg/util/version:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/constants.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/constants.go index 6ffa35ad0..ab0bb8669 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/constants.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/constants/constants.go @@ -24,7 +24,6 @@ import ( "time" "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/controller/service" "k8s.io/kubernetes/pkg/util/version" ) @@ -74,7 +73,7 @@ const ( FrontProxyCACertAndKeyBaseName = "front-proxy-ca" // FrontProxyCACertName defines front proxy CA certificate name FrontProxyCACertName = "front-proxy-ca.crt" - // FrontProxyCAKeyName defaines front proxy CA key name + // FrontProxyCAKeyName defines front proxy CA key name FrontProxyCAKeyName = "front-proxy-ca.key" // FrontProxyClientCertAndKeyBaseName defines front proxy certificate and key base name @@ -132,7 +131,8 @@ const ( DefaultTokenDuration = 24 * time.Hour // LabelNodeRoleMaster specifies that a node is a master - LabelNodeRoleMaster = service.LabelNodeRoleMaster + // This is a duplicate definition of the constant in pkg/controller/service/service_controller.go + LabelNodeRoleMaster = "node-role.kubernetes.io/master" // MasterConfigurationConfigMap specifies in what ConfigMap in the kube-system namespace the `kubeadm init` configuration should be stored MasterConfigurationConfigMap = "kubeadm-config" @@ -171,6 +171,11 @@ const ( // DefaultCIImageRepository points to image registry where CI uploads images from ci-cross build job DefaultCIImageRepository = "gcr.io/kubernetes-ci-images" + + // CoreDNS defines a variable used internally when referring to the CoreDNS addon for a cluster + CoreDNS = "CoreDNS" + // KubeDNS defines a variable used internally when referring to the kube-dns addon for a cluster + KubeDNS = "kube-dns" ) var ( @@ -201,10 +206,6 @@ var ( // MinimumControlPlaneVersion specifies the minimum control plane version kubeadm can deploy MinimumControlPlaneVersion = version.MustParseSemantic("v1.8.0") - // MinimumCSRAutoApprovalClusterRolesVersion defines whether kubeadm can rely on the built-in CSR approval ClusterRole or not (note, the binding is always created by kubeadm!) - // TODO: Remove this when the v1.9 cycle starts and we bump the minimum supported version to v1.8.0 - MinimumCSRAutoApprovalClusterRolesVersion = version.MustParseSemantic("v1.8.0-alpha.3") - // MinimumKubeletVersion specifies the minimum version of kubelet which kubeadm supports MinimumKubeletVersion = version.MustParseSemantic("v1.8.0") ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/discovery/discovery.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/discovery/discovery.go index ac2bf2fd2..4ac6e8f43 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/discovery/discovery.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/discovery/discovery.go @@ -34,7 +34,7 @@ const TokenUser = "tls-bootstrap-token-user" // For returns a KubeConfig object that can be used for doing the TLS Bootstrap with the right credentials // Also, before returning anything, it makes sure it can trust the API Server func For(cfg *kubeadmapi.NodeConfiguration) (*clientcmdapi.Config, error) { - // TODO: Print summary info about the CA certificate, along with the the checksum signature + // TODO: Print summary info about the CA certificate, along with the checksum signature // we also need an ability for the user to configure the client to validate received CA cert against a checksum clusterinfo, err := GetValidatedClusterInfoObject(cfg) if err != nil { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/BUILD index 147dac3bc..3bf69a4b2 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/BUILD @@ -10,7 +10,10 @@ go_library( name = "go_default_library", srcs = ["features.go"], importpath = "k8s.io/kubernetes/cmd/kubeadm/app/features", - deps = ["//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library"], + deps = [ + "//pkg/util/version:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", + ], ) filegroup( diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/features.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/features.go index faab302eb..1f39baaa8 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/features.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/features.go @@ -23,21 +23,69 @@ import ( "strings" utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/util/version" ) const ( + // HighAvailability is alpha in v1.9 + HighAvailability = "HighAvailability" + + // CoreDNS is alpha in v1.9 + CoreDNS = "CoreDNS" + // SelfHosting is beta in v1.8 - SelfHosting utilfeature.Feature = "SelfHosting" + SelfHosting = "SelfHosting" // StoreCertsInSecrets is alpha in v1.8 - StoreCertsInSecrets utilfeature.Feature = "StoreCertsInSecrets" + StoreCertsInSecrets = "StoreCertsInSecrets" + + // SupportIPVSProxyMode is alpha in v1.8 + SupportIPVSProxyMode = "SupportIPVSProxyMode" ) +var v190 = version.MustParseSemantic("v1.9.0-alpha.1") + +// InitFeatureGates are the default feature gates for the init command +var InitFeatureGates = FeatureList{ + SelfHosting: {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}}, + StoreCertsInSecrets: {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Alpha}}, + HighAvailability: {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Alpha}, MinimumVersion: v190}, + SupportIPVSProxyMode: {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Alpha}, MinimumVersion: v190}, + CoreDNS: {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Alpha}, MinimumVersion: v190}, +} + +// Feature represents a feature being gated +type Feature struct { + utilfeature.FeatureSpec + MinimumVersion *version.Version +} + // FeatureList represents a list of feature gates -type FeatureList map[utilfeature.Feature]utilfeature.FeatureSpec +type FeatureList map[string]Feature + +// ValidateVersion ensures that a feature gate list is compatible with the chosen kubernetes version +func ValidateVersion(allFeatures FeatureList, requestedFeatures map[string]bool, requestedVersion string) error { + if requestedVersion == "" { + return nil + } + parsedExpVersion, err := version.ParseSemantic(requestedVersion) + if err != nil { + return fmt.Errorf("Error parsing version %s: %v", requestedVersion, err) + } + for k := range requestedFeatures { + if minVersion := allFeatures[k].MinimumVersion; minVersion != nil { + if !parsedExpVersion.AtLeast(minVersion) { + return fmt.Errorf( + "the requested kubernetes version (%s) is incompatible with the %s feature gate, which needs %s as a minimum", + requestedVersion, k, minVersion) + } + } + } + return nil +} // Enabled indicates whether a feature name has been enabled -func Enabled(featureList map[string]bool, featureName utilfeature.Feature) bool { +func Enabled(featureList map[string]bool, featureName string) bool { return featureList[string(featureName)] } @@ -61,12 +109,6 @@ func Keys(featureList FeatureList) []string { return list } -// InitFeatureGates are the default feature gates for the init command -var InitFeatureGates = FeatureList{ - SelfHosting: {Default: false, PreRelease: utilfeature.Alpha}, - StoreCertsInSecrets: {Default: false, PreRelease: utilfeature.Alpha}, -} - // KnownFeatures returns a slice of strings describing the FeatureList features. func KnownFeatures(f *FeatureList) []string { var known []string diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/features_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/features_test.go index 486f10f84..c761452c4 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/features_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/features/features_test.go @@ -25,9 +25,9 @@ import ( func TestKnownFeatures(t *testing.T) { var someFeatures = FeatureList{ - "feature2": {Default: true, PreRelease: utilfeature.Alpha}, - "feature1": {Default: false, PreRelease: utilfeature.Beta}, - "feature3": {Default: false, PreRelease: utilfeature.GA}, + "feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}}, + "feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}}, + "feature3": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.GA}}, } r := KnownFeatures(&someFeatures) @@ -55,8 +55,8 @@ func TestKnownFeatures(t *testing.T) { func TestNewFeatureGate(t *testing.T) { var someFeatures = FeatureList{ - "feature1": {Default: false, PreRelease: utilfeature.Beta}, - "feature2": {Default: true, PreRelease: utilfeature.Alpha}, + "feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}}, + "feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}}, } var tests = []struct { @@ -117,3 +117,42 @@ func TestNewFeatureGate(t *testing.T) { } } } + +func TestValidateVersion(t *testing.T) { + var someFeatures = FeatureList{ + "feature1": {FeatureSpec: utilfeature.FeatureSpec{Default: false, PreRelease: utilfeature.Beta}}, + "feature2": {FeatureSpec: utilfeature.FeatureSpec{Default: true, PreRelease: utilfeature.Alpha}, MinimumVersion: v190}, + } + + var tests = []struct { + requestedVersion string + requestedFeatures map[string]bool + expectedError bool + }{ + { //no min version + requestedFeatures: map[string]bool{"feature1": true}, + expectedError: false, + }, + { //min version but correct value given + requestedFeatures: map[string]bool{"feature2": true}, + requestedVersion: "v1.9.0", + expectedError: false, + }, + { //min version and incorrect value given + requestedFeatures: map[string]bool{"feature2": true}, + requestedVersion: "v1.8.2", + expectedError: true, + }, + } + + for _, test := range tests { + err := ValidateVersion(someFeatures, test.requestedFeatures, test.requestedVersion) + if !test.expectedError && err != nil { + t.Errorf("ValidateVersion failed when not expected: %v", err) + continue + } else if test.expectedError && err == nil { + t.Error("ValidateVersion didn't failed when expected") + continue + } + } +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/BUILD index 0d11f5f72..bb0f1d4f5 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/BUILD @@ -15,8 +15,9 @@ go_test( importpath = "k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns", library = ":go_default_library", deps = [ + "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util:go_default_library", - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/util/version:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -36,12 +37,14 @@ go_library( deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", + "//cmd/kubeadm/app/features:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/apiclient:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/util/version:go_default_library", "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/rbac/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/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns.go index 4ca3f70d5..0be3a4ed7 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns.go @@ -23,15 +23,17 @@ import ( apps "k8s.io/api/apps/v1beta2" "k8s.io/api/core/v1" + rbac "k8s.io/api/rbac/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kuberuntime "k8s.io/apimachinery/pkg/runtime" clientset "k8s.io/client-go/kubernetes" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" + "k8s.io/kubernetes/cmd/kubeadm/app/features" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/util/version" ) @@ -40,34 +42,50 @@ const ( KubeDNSServiceAccountName = "kube-dns" ) -// EnsureDNSAddon creates the kube-dns addon +// EnsureDNSAddon creates the kube-dns or CoreDNS addon func EnsureDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interface) error { k8sVersion, err := version.ParseSemantic(cfg.KubernetesVersion) if err != nil { return fmt.Errorf("couldn't parse kubernetes version %q: %v", cfg.KubernetesVersion, err) } + if features.Enabled(cfg.FeatureGates, features.CoreDNS) { + return coreDNSAddon(cfg, client, k8sVersion) + } + return kubeDNSAddon(cfg, client, k8sVersion) +} +func kubeDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interface, k8sVersion *version.Version) error { if err := CreateServiceAccount(client); err != nil { return err } - // Get the YAML manifest conditionally based on the k8s version - kubeDNSDeploymentBytes := GetKubeDNSManifest(k8sVersion) - dnsDeploymentBytes, err := kubeadmutil.ParseTemplate(kubeDNSDeploymentBytes, struct{ ImageRepository, Arch, Version, DNSDomain, MasterTaintKey string }{ - ImageRepository: cfg.ImageRepository, - Arch: runtime.GOARCH, - // Get the kube-dns version conditionally based on the k8s version - Version: GetKubeDNSVersion(k8sVersion), - DNSDomain: cfg.Networking.DNSDomain, - MasterTaintKey: kubeadmconstants.LabelNodeRoleMaster, - }) + dnsip, err := getDNSIP(client) if err != nil { - return fmt.Errorf("error when parsing kube-dns deployment template: %v", err) + return err } - dnsip, err := getDNSIP(client) + var dnsBindAddr string + if dnsip.To4() == nil { + dnsBindAddr = "::1" + } else { + dnsBindAddr = "127.0.0.1" + } + + // Get the YAML manifest conditionally based on the k8s version + kubeDNSDeploymentBytes := GetKubeDNSManifest(k8sVersion) + dnsDeploymentBytes, err := kubeadmutil.ParseTemplate(kubeDNSDeploymentBytes, + struct{ ImageRepository, Arch, Version, DNSBindAddr, DNSDomain, DNSProbeType, MasterTaintKey string }{ + ImageRepository: cfg.ImageRepository, + Arch: runtime.GOARCH, + // Get the kube-dns version conditionally based on the k8s version + Version: GetDNSVersion(k8sVersion, kubeadmconstants.KubeDNS), + DNSBindAddr: dnsBindAddr, + DNSDomain: cfg.Networking.DNSDomain, + DNSProbeType: GetKubeDNSProbeType(k8sVersion), + MasterTaintKey: kubeadmconstants.LabelNodeRoleMaster, + }) if err != nil { - return err + return fmt.Errorf("error when parsing kube-dns deployment template: %v", err) } dnsServiceBytes, err := kubeadmutil.ParseTemplate(KubeDNSService, struct{ DNSIP string }{ @@ -97,7 +115,7 @@ func CreateServiceAccount(client clientset.Interface) error { func createKubeDNSAddon(deploymentBytes, serviceBytes []byte, client clientset.Interface) error { kubednsDeployment := &apps.Deployment{} - if err := kuberuntime.DecodeInto(api.Codecs.UniversalDecoder(), deploymentBytes, kubednsDeployment); err != nil { + if err := kuberuntime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), deploymentBytes, kubednsDeployment); err != nil { return fmt.Errorf("unable to decode kube-dns deployment %v", err) } @@ -107,21 +125,120 @@ func createKubeDNSAddon(deploymentBytes, serviceBytes []byte, client clientset.I } kubednsService := &v1.Service{} - if err := kuberuntime.DecodeInto(api.Codecs.UniversalDecoder(), serviceBytes, kubednsService); err != nil { - return fmt.Errorf("unable to decode kube-dns service %v", err) + return createDNSService(kubednsService, serviceBytes, client) +} + +func coreDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interface, k8sVersion *version.Version) error { + // Get the YAML manifest conditionally based on the k8s version + dnsDeploymentBytes := GetCoreDNSManifest(k8sVersion) + coreDNSDeploymentBytes, err := kubeadmutil.ParseTemplate(dnsDeploymentBytes, struct{ MasterTaintKey, Version string }{ + MasterTaintKey: kubeadmconstants.LabelNodeRoleMaster, + Version: GetDNSVersion(k8sVersion, kubeadmconstants.CoreDNS), + }) + if err != nil { + return fmt.Errorf("error when parsing CoreDNS deployment template: %v", err) + } + + // Get the config file for CoreDNS + coreDNSConfigMapBytes, err := kubeadmutil.ParseTemplate(CoreDNSConfigMap, struct{ DNSDomain, ServiceCIDR string }{ + ServiceCIDR: cfg.Networking.ServiceSubnet, + DNSDomain: cfg.Networking.DNSDomain, + }) + if err != nil { + return fmt.Errorf("error when parsing CoreDNS configMap template: %v", err) + } + + dnsip, err := getDNSIP(client) + if err != nil { + return err + } + + coreDNSServiceBytes, err := kubeadmutil.ParseTemplate(KubeDNSService, struct{ DNSIP string }{ + DNSIP: dnsip.String(), + }) + + if err != nil { + return fmt.Errorf("error when parsing CoreDNS service template: %v", err) + } + + if err := createCoreDNSAddon(coreDNSDeploymentBytes, coreDNSServiceBytes, coreDNSConfigMapBytes, client); err != nil { + return err + } + fmt.Println("[addons] Applied essential addon: CoreDNS") + return nil +} + +func createCoreDNSAddon(deploymentBytes, serviceBytes, configBytes []byte, client clientset.Interface) error { + coreDNSConfigMap := &v1.ConfigMap{} + if err := kuberuntime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), configBytes, coreDNSConfigMap); err != nil { + return fmt.Errorf("unable to decode CoreDNS configmap %v", err) + } + + // Create the ConfigMap for CoreDNS or update it in case it already exists + if err := apiclient.CreateOrUpdateConfigMap(client, coreDNSConfigMap); err != nil { + return err + } + + coreDNSClusterRoles := &rbac.ClusterRole{} + if err := kuberuntime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), []byte(CoreDNSClusterRole), coreDNSClusterRoles); err != nil { + return fmt.Errorf("unable to decode CoreDNS clusterroles %v", err) + } + + // Create the Clusterroles for CoreDNS or update it in case it already exists + if err := apiclient.CreateOrUpdateClusterRole(client, coreDNSClusterRoles); err != nil { + return err + } + + coreDNSClusterRolesBinding := &rbac.ClusterRoleBinding{} + if err := kuberuntime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), []byte(CoreDNSClusterRoleBinding), coreDNSClusterRolesBinding); err != nil { + return fmt.Errorf("unable to decode CoreDNS clusterrolebindings %v", err) + } + + // Create the Clusterrolebindings for CoreDNS or update it in case it already exists + if err := apiclient.CreateOrUpdateClusterRoleBinding(client, coreDNSClusterRolesBinding); err != nil { + return err + } + + coreDNSServiceAccount := &v1.ServiceAccount{} + if err := kuberuntime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), []byte(CoreDNSServiceAccount), coreDNSServiceAccount); err != nil { + return fmt.Errorf("unable to decode CoreDNS configmap %v", err) + } + + // Create the ConfigMap for CoreDNS or update it in case it already exists + if err := apiclient.CreateOrUpdateServiceAccount(client, coreDNSServiceAccount); err != nil { + return err + } + + coreDNSDeployment := &apps.Deployment{} + if err := kuberuntime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), deploymentBytes, coreDNSDeployment); err != nil { + return fmt.Errorf("unable to decode CoreDNS deployment %v", err) + } + + // Create the Deployment for CoreDNS or update it in case it already exists + if err := apiclient.CreateOrUpdateDeployment(client, coreDNSDeployment); err != nil { + return err + } + + coreDNSService := &v1.Service{} + return createDNSService(coreDNSService, serviceBytes, client) +} + +func createDNSService(dnsService *v1.Service, serviceBytes []byte, client clientset.Interface) error { + if err := kuberuntime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), serviceBytes, dnsService); err != nil { + return fmt.Errorf("unable to decode the DNS service %v", err) } // Can't use a generic apiclient helper func here as we have to tolerate more than AlreadyExists. - if _, err := client.CoreV1().Services(metav1.NamespaceSystem).Create(kubednsService); err != nil { + if _, err := client.CoreV1().Services(metav1.NamespaceSystem).Create(dnsService); err != nil { // Ignore if the Service is invalid with this error message: // Service "kube-dns" is invalid: spec.clusterIP: Invalid value: "10.96.0.10": provided IP is already allocated if !apierrors.IsAlreadyExists(err) && !apierrors.IsInvalid(err) { - return fmt.Errorf("unable to create a new kube-dns service: %v", err) + return fmt.Errorf("unable to create a new DNS service: %v", err) } - if _, err := client.CoreV1().Services(metav1.NamespaceSystem).Update(kubednsService); err != nil { - return fmt.Errorf("unable to create/update the kube-dns service: %v", err) + if _, err := client.CoreV1().Services(metav1.NamespaceSystem).Update(dnsService); err != nil { + return fmt.Errorf("unable to create/update the DNS service: %v", err) } } return nil diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns_test.go index 22b1d444d..23dde4ec7 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/dns_test.go @@ -24,7 +24,7 @@ import ( clientsetfake "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestCreateServiceAccount(t *testing.T) { @@ -90,12 +90,14 @@ func TestCompileManifests(t *testing.T) { expected bool }{ { - manifest: v170AndAboveKubeDNSDeployment, - data: struct{ ImageRepository, Arch, Version, DNSDomain, MasterTaintKey string }{ + manifest: v180AndAboveKubeDNSDeployment, + data: struct{ ImageRepository, Arch, Version, DNSBindAddr, DNSDomain, DNSProbeType, MasterTaintKey string }{ ImageRepository: "foo", Arch: "foo", Version: "foo", + DNSBindAddr: "foo", DNSDomain: "foo", + DNSProbeType: "foo", MasterTaintKey: "foo", }, expected: true, @@ -107,6 +109,29 @@ func TestCompileManifests(t *testing.T) { }, expected: true, }, + { + manifest: CoreDNSDeployment, + data: struct{ MasterTaintKey, Version string }{ + MasterTaintKey: "foo", + Version: "foo", + }, + expected: true, + }, + { + manifest: KubeDNSService, + data: struct{ DNSIP string }{ + DNSIP: "foo", + }, + expected: true, + }, + { + manifest: CoreDNSConfigMap, + data: struct{ DNSDomain, ServiceCIDR string }{ + DNSDomain: "foo", + ServiceCIDR: "foo", + }, + expected: true, + }, } for _, rt := range tests { _, actual := kubeadmutil.ParseTemplate(rt.manifest, rt.data) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/manifests.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/manifests.go index 9b5801c78..d06498cb6 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/manifests.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/manifests.go @@ -17,8 +17,8 @@ limitations under the License. package dns const ( - // v170AndAboveKubeDNSDeployment is the kube-dns Deployment manifest for the kube-dns manifest for v1.7+ - v170AndAboveKubeDNSDeployment = ` + // v180AndAboveKubeDNSDeployment is the kube-dns Deployment manifest for the kube-dns manifest for v1.7+ + v180AndAboveKubeDNSDeployment = ` apiVersion: apps/v1beta2 kind: Deployment metadata: @@ -123,9 +123,9 @@ spec: - --cache-size=1000 - --no-negcache - --log-facility=- - - --server=/{{ .DNSDomain }}/127.0.0.1#10053 - - --server=/in-addr.arpa/127.0.0.1#10053 - - --server=/ip6.arpa/127.0.0.1#10053 + - --server=/{{ .DNSDomain }}/{{ .DNSBindAddr }}#10053 + - --server=/in-addr.arpa/{{ .DNSBindAddr }}#10053 + - --server=/ip6.arpa/{{ .DNSBindAddr }}#10053 ports: - containerPort: 53 name: dns @@ -156,8 +156,8 @@ spec: args: - --v=2 - --logtostderr - - --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.{{ .DNSDomain }},5,A - - --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.{{ .DNSDomain }},5,A + - --probe=kubedns,{{ .DNSBindAddr }}:10053,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }} + - --probe=dnsmasq,{{ .DNSBindAddr }}:53,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }} ports: - containerPort: 10054 name: metrics @@ -213,4 +213,133 @@ spec: selector: k8s-app: kube-dns ` + + // CoreDNSDeployment is the CoreDNS Deployment manifest + CoreDNSDeployment = ` +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + name: coredns + namespace: kube-system + labels: + k8s-app: kube-dns +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: kube-dns + template: + metadata: + labels: + k8s-app: kube-dns + spec: + serviceAccountName: coredns + tolerations: + - key: CriticalAddonsOnly + operator: Exists + - key: {{ .MasterTaintKey }} + effect: NoSchedule + containers: + - name: coredns + image: coredns/coredns:{{ .Version }} + imagePullPolicy: IfNotPresent + resources: + limits: + memory: 170Mi + requests: + cpu: 100m + memory: 70Mi + args: [ "-conf", "/etc/coredns/Corefile" ] + volumeMounts: + - name: config-volume + mountPath: /etc/coredns + ports: + - containerPort: 53 + name: dns + protocol: UDP + - containerPort: 53 + name: dns-tcp + protocol: TCP + - containerPort: 9153 + name: metrics + protocol: TCP + livenessProbe: + httpGet: + path: /health + port: 8080 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + dnsPolicy: Default + volumes: + - name: config-volume + configMap: + name: coredns + items: + - key: Corefile + path: Corefile +` + + // CoreDNSConfigMap is the CoreDNS ConfigMap manifest + CoreDNSConfigMap = ` +apiVersion: v1 +kind: ConfigMap +metadata: + name: coredns + namespace: kube-system +data: + Corefile: | + .:53 { + errors + log stdout + health + kubernetes {{ .DNSDomain }} {{ .ServiceCIDR }} + prometheus + proxy . /etc/resolv.conf + cache 30 + } +` + // CoreDNSClusterRole is the CoreDNS ClusterRole manifest + CoreDNSClusterRole = ` +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: system:coredns +rules: +- apiGroups: + - "" + resources: + - endpoints + - services + - pods + - namespaces + verbs: + - list + - watch +` + // CoreDNSClusterRoleBinding is the CoreDNS Clusterrolebinding manifest + CoreDNSClusterRoleBinding = ` +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: system:coredns +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:coredns +subjects: +- kind: ServiceAccount + name: coredns + namespace: kube-system +` + // CoreDNSServiceAccount is the CoreDNS ServiceAccount manifest + CoreDNSServiceAccount = ` +apiVersion: v1 +kind: ServiceAccount +metadata: + name: coredns + namespace: kube-system +` ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/versions.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/versions.go index f0fe6b939..ed3fcf196 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/versions.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/versions.go @@ -17,24 +17,63 @@ limitations under the License. package dns import ( + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/pkg/util/version" ) const ( - kubeDNSv170AndAboveVersion = "1.14.5" + kubeDNSv180AndAboveVersion = "1.14.5" + kubeDNSv190AndAboveVersion = "1.14.7" + + kubeDNSProbeSRV = "SRV" + kubeDNSProbeA = "A" + coreDNSVersion = "0.9.10" ) -// GetKubeDNSVersion returns the right kube-dns version for a specific k8s version -func GetKubeDNSVersion(kubeVersion *version.Version) string { - // v1.7.0+ uses 1.14.5, just return that here +// GetDNSVersion returns the right kube-dns version for a specific k8s version +func GetDNSVersion(kubeVersion *version.Version, dns string) string { + // v1.8.0+ uses kube-dns 1.14.5 + // v1.9.0+ uses kube-dns 1.14.7 + // v1.9.0+ uses CoreDNS 0.9.10 + + // In the future when the version is bumped at HEAD; add conditional logic to return the right versions + // Also, the version might be bumped for different k8s releases on the same branch + switch dns { + case kubeadmconstants.KubeDNS: + // return the kube-dns version + if kubeVersion.Major() == 1 && kubeVersion.Minor() >= 9 { + return kubeDNSv190AndAboveVersion + } + return kubeDNSv180AndAboveVersion + case kubeadmconstants.CoreDNS: + // return the CoreDNS version + return coreDNSVersion + default: + return kubeDNSv180AndAboveVersion + } +} + +// GetKubeDNSProbeType returns the right kube-dns probe for a specific k8s version +func GetKubeDNSProbeType(kubeVersion *version.Version) string { + // v1.8.0+ uses type A, just return that here // In the future when the kube-dns version is bumped at HEAD; add conditional logic to return the right versions // Also, the version might be bumped for different k8s releases on the same branch - return kubeDNSv170AndAboveVersion + if kubeVersion.Major() == 1 && kubeVersion.Minor() >= 9 { + return kubeDNSProbeSRV + } + return kubeDNSProbeA } // GetKubeDNSManifest returns the right kube-dns YAML manifest for a specific k8s version func GetKubeDNSManifest(kubeVersion *version.Version) string { - // v1.7.0+ has only one known YAML manifest spec, just return that here + // v1.8.0+ has only one known YAML manifest spec, just return that here // In the future when the kube-dns version is bumped at HEAD; add conditional logic to return the right manifest - return v170AndAboveKubeDNSDeployment + return v180AndAboveKubeDNSDeployment +} + +// GetCoreDNSManifest returns the right CoreDNS YAML manifest for a specific k8s version +func GetCoreDNSManifest(kubeVersion *version.Version) string { + // v1.9.0+ has only one known YAML manifest spec, just return that here + // In the future when the CoreDNS version is bumped at HEAD; add conditional logic to return the right manifest + return CoreDNSDeployment } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/versions_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/versions_test.go index 96d0f72dd..7580ba19a 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/versions_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns/versions_test.go @@ -19,6 +19,7 @@ package dns import ( "testing" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/pkg/util/version" ) @@ -50,6 +51,10 @@ func TestGetKubeDNSVersion(t *testing.T) { k8sVersion: "v1.8.0", expected: "1.14.5", }, + { + k8sVersion: "v1.9.0", + expected: "1.14.7", + }, } for _, rt := range tests { @@ -58,13 +63,64 @@ func TestGetKubeDNSVersion(t *testing.T) { t.Fatalf("couldn't parse kubernetes version %q: %v", rt.k8sVersion, err) } - actualDNSVersion := GetKubeDNSVersion(k8sVersion) + actualDNSVersion := GetDNSVersion(k8sVersion, kubeadmconstants.KubeDNS) if actualDNSVersion != rt.expected { t.Errorf( - "failed GetKubeDNSVersion:\n\texpected: %s\n\t actual: %s", + "failed GetDNSVersion:\n\texpected: %s\n\t actual: %s", rt.expected, actualDNSVersion, ) } } } + +func TestGetKubeDNSProbeType(t *testing.T) { + var tests = []struct { + k8sVersion, expected string + }{ + { + k8sVersion: "v1.7.0", + expected: "A", + }, + { + k8sVersion: "v1.7.1", + expected: "A", + }, + { + k8sVersion: "v1.7.2", + expected: "A", + }, + { + k8sVersion: "v1.7.3", + expected: "A", + }, + { + k8sVersion: "v1.8.0-alpha.2", + expected: "A", + }, + { + k8sVersion: "v1.8.0", + expected: "A", + }, + { + k8sVersion: "v1.9.0", + expected: "SRV", + }, + } + for _, rt := range tests { + + k8sVersion, err := version.ParseSemantic(rt.k8sVersion) + if err != nil { + t.Fatalf("couldn't parse kubernetes version %q: %v", rt.k8sVersion, err) + } + + actualDNSProbeType := GetKubeDNSProbeType(k8sVersion) + if actualDNSProbeType != rt.expected { + t.Errorf( + "failed GetKubeDNSProbeType:\n\texpected: %s\n\t actual: %s", + rt.expected, + actualDNSProbeType, + ) + } + } +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/BUILD index 018e27f45..68190b159 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/BUILD @@ -13,7 +13,7 @@ go_test( library = ":go_default_library", deps = [ "//cmd/kubeadm/app/util:go_default_library", - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", @@ -31,9 +31,10 @@ go_library( deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", + "//cmd/kubeadm/app/features:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/apiclient:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/manifests.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/manifests.go index df645cdf2..b1ea464e2 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/manifests.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/manifests.go @@ -75,6 +75,7 @@ spec: command: - /usr/local/bin/kube-proxy - --kubeconfig=/var/lib/kube-proxy/kubeconfig.conf + {{ .ExtraParams }} {{ .ClusterCIDR }} securityContext: privileged: true @@ -84,6 +85,9 @@ spec: - mountPath: /run/xtables.lock name: xtables-lock readOnly: false + - mountPath: /lib/modules + name: lib-modules + readOnly: true hostNetwork: true serviceAccountName: kube-proxy tolerations: @@ -100,5 +104,8 @@ spec: hostPath: path: /run/xtables.lock type: FileOrCreate + - name: lib-modules + hostPath: + path: /lib/modules ` ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/proxy.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/proxy.go index 086de21cd..7de01796b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/proxy.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/proxy.go @@ -28,9 +28,10 @@ import ( clientset "k8s.io/client-go/kubernetes" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" + "k8s.io/kubernetes/cmd/kubeadm/app/features" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" ) @@ -62,11 +63,12 @@ func EnsureProxyAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Inte return fmt.Errorf("error when parsing kube-proxy configmap template: %v", err) } - proxyDaemonSetBytes, err := kubeadmutil.ParseTemplate(KubeProxyDaemonSet, struct{ ImageRepository, Arch, Version, ImageOverride, ClusterCIDR, MasterTaintKey, CloudTaintKey string }{ + proxyDaemonSetBytes, err := kubeadmutil.ParseTemplate(KubeProxyDaemonSet, struct{ ImageRepository, Arch, Version, ImageOverride, ExtraParams, ClusterCIDR, MasterTaintKey, CloudTaintKey string }{ ImageRepository: cfg.GetControlPlaneImageRepository(), Arch: runtime.GOARCH, Version: kubeadmutil.KubernetesVersionToImageTag(cfg.KubernetesVersion), ImageOverride: cfg.UnifiedControlPlaneImage, + ExtraParams: getParams(cfg.FeatureGates), ClusterCIDR: getClusterCIDR(cfg.Networking.PodSubnet), MasterTaintKey: kubeadmconstants.LabelNodeRoleMaster, CloudTaintKey: algorithm.TaintExternalCloudProvider, @@ -99,15 +101,12 @@ func CreateServiceAccount(client clientset.Interface) error { // CreateRBACRules creates the essential RBAC rules for a minimally set-up cluster func CreateRBACRules(client clientset.Interface) error { - if err := createClusterRoleBindings(client); err != nil { - return err - } - return nil + return createClusterRoleBindings(client) } func createKubeProxyAddon(configMapBytes, daemonSetbytes []byte, client clientset.Interface) error { kubeproxyConfigMap := &v1.ConfigMap{} - if err := kuberuntime.DecodeInto(api.Codecs.UniversalDecoder(), configMapBytes, kubeproxyConfigMap); err != nil { + if err := kuberuntime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), configMapBytes, kubeproxyConfigMap); err != nil { return fmt.Errorf("unable to decode kube-proxy configmap %v", err) } @@ -117,15 +116,12 @@ func createKubeProxyAddon(configMapBytes, daemonSetbytes []byte, client clientse } kubeproxyDaemonSet := &apps.DaemonSet{} - if err := kuberuntime.DecodeInto(api.Codecs.UniversalDecoder(), daemonSetbytes, kubeproxyDaemonSet); err != nil { + if err := kuberuntime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), daemonSetbytes, kubeproxyDaemonSet); err != nil { return fmt.Errorf("unable to decode kube-proxy daemonset %v", err) } // Create the DaemonSet for kube-proxy or update it in case it already exists - if err := apiclient.CreateOrUpdateDaemonSet(client, kubeproxyDaemonSet); err != nil { - return err - } - return nil + return apiclient.CreateOrUpdateDaemonSet(client, kubeproxyDaemonSet) } func createClusterRoleBindings(client clientset.Interface) error { @@ -148,6 +144,13 @@ func createClusterRoleBindings(client clientset.Interface) error { }) } +func getParams(featureList map[string]bool) string { + if features.Enabled(featureList, features.SupportIPVSProxyMode) { + return "- --proxy-mode=ipvs\n - --feature-gates=SupportIPVSProxyMode=true" + } + return "" +} + func getClusterCIDR(podsubnet string) string { if len(podsubnet) == 0 { return "" diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/proxy_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/proxy_test.go index f14b7cf4f..bb1923392 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/proxy_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/proxy/proxy_test.go @@ -24,7 +24,7 @@ import ( clientsetfake "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestCreateServiceAccount(t *testing.T) { @@ -115,11 +115,12 @@ func TestCompileManifests(t *testing.T) { }, { manifest: KubeProxyDaemonSet, - data: struct{ ImageRepository, Arch, Version, ImageOverride, ClusterCIDR, MasterTaintKey, CloudTaintKey string }{ + data: struct{ ImageRepository, Arch, Version, ImageOverride, ExtraParams, ClusterCIDR, MasterTaintKey, CloudTaintKey string }{ ImageRepository: "foo", Arch: "foo", Version: "foo", ImageOverride: "foo", + ExtraParams: "foo", ClusterCIDR: "foo", MasterTaintKey: "foo", CloudTaintKey: "foo", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD index 5fe4fe49c..9cc4d702e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo_test.go index 59aa8870c..1447147e9 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" clientsetfake "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) var testConfigTempl = template.Must(template.New("test").Parse(`apiVersion: v1 diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD index ff94da31f..175ea3575 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD @@ -26,7 +26,6 @@ go_library( "//cmd/kubeadm/app/util/apiclient:go_default_library", "//cmd/kubeadm/app/util/token:go_default_library", "//pkg/bootstrap/api:go_default_library", - "//pkg/util/version:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node/tlsbootstrap.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node/tlsbootstrap.go index d8a63b605..5f3943339 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node/tlsbootstrap.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node/tlsbootstrap.go @@ -24,7 +24,6 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" - "k8s.io/kubernetes/pkg/util/version" ) const ( @@ -47,8 +46,7 @@ const ( ) // AllowBootstrapTokensToPostCSRs creates RBAC rules in a way the makes Node Bootstrap Tokens able to post CSRs -func AllowBootstrapTokensToPostCSRs(client clientset.Interface, k8sVersion *version.Version) error { - +func AllowBootstrapTokensToPostCSRs(client clientset.Interface) error { fmt.Println("[bootstraptoken] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials") return apiclient.CreateOrUpdateClusterRoleBinding(client, &rbac.ClusterRoleBinding{ @@ -70,8 +68,7 @@ func AllowBootstrapTokensToPostCSRs(client clientset.Interface, k8sVersion *vers } // AutoApproveNodeBootstrapTokens creates RBAC rules in a way that makes Node Bootstrap Tokens' CSR auto-approved by the csrapprover controller -func AutoApproveNodeBootstrapTokens(client clientset.Interface, k8sVersion *version.Version) error { - +func AutoApproveNodeBootstrapTokens(client clientset.Interface) error { fmt.Println("[bootstraptoken] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token") // Always create this kubeadm-specific binding though @@ -94,28 +91,23 @@ func AutoApproveNodeBootstrapTokens(client clientset.Interface, k8sVersion *vers } // AutoApproveNodeCertificateRotation creates RBAC rules in a way that makes Node certificate rotation CSR auto-approved by the csrapprover controller -func AutoApproveNodeCertificateRotation(client clientset.Interface, k8sVersion *version.Version) error { - - // Create autorotation cluster role binding only if we deploying or upgrading to version that supports it. - if k8sVersion.AtLeast(constants.MinimumCSRAutoApprovalClusterRolesVersion) { - fmt.Println("[bootstraptoken] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster") +func AutoApproveNodeCertificateRotation(client clientset.Interface) error { + fmt.Println("[bootstraptoken] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster") - return apiclient.CreateOrUpdateClusterRoleBinding(client, &rbac.ClusterRoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Name: NodeAutoApproveCertificateRotationClusterRoleBinding, - }, - RoleRef: rbac.RoleRef{ - APIGroup: rbac.GroupName, - Kind: "ClusterRole", - Name: NodeSelfCSRAutoApprovalClusterRoleName, - }, - Subjects: []rbac.Subject{ - { - Kind: "Group", - Name: constants.NodesGroup, - }, + return apiclient.CreateOrUpdateClusterRoleBinding(client, &rbac.ClusterRoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: NodeAutoApproveCertificateRotationClusterRoleBinding, + }, + RoleRef: rbac.RoleRef{ + APIGroup: rbac.GroupName, + Kind: "ClusterRole", + Name: NodeSelfCSRAutoApprovalClusterRoleName, + }, + Subjects: []rbac.Subject{ + { + Kind: "Group", + Name: constants.NodesGroup, }, - }) - } - return nil + }, + }) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs_test.go index a22f2e4ae..b433e6ba4 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/certs_test.go @@ -323,6 +323,9 @@ func TestNewAPIServerCertAndKey(t *testing.T) { NodeName: "valid-hostname", } caCert, caKey, err := NewCACertAndKey() + if err != nil { + t.Fatalf("failed creation of ca cert and key: %v", err) + } apiServerCert, _, err := NewAPIServerCertAndKey(cfg, caCert, caKey) if err != nil { @@ -338,6 +341,9 @@ func TestNewAPIServerCertAndKey(t *testing.T) { func TestNewAPIServerKubeletClientCertAndKey(t *testing.T) { caCert, caKey, err := NewCACertAndKey() + if err != nil { + t.Fatalf("failed creation of ca cert and key: %v", err) + } apiClientCert, _, err := NewAPIServerKubeletClientCertAndKey(caCert, caKey) if err != nil { @@ -372,6 +378,9 @@ func TestNewFrontProxyCACertAndKey(t *testing.T) { func TestNewFrontProxyClientCertAndKey(t *testing.T) { frontProxyCACert, frontProxyCAKey, err := NewFrontProxyCACertAndKey() + if err != nil { + t.Fatalf("failed creation of ca cert and key: %v", err) + } frontProxyClientCert, _, err := NewFrontProxyClientCertAndKey(frontProxyCACert, frontProxyCAKey) if err != nil { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil/pki_helpers.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil/pki_helpers.go index 073d84c2c..170973e4f 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil/pki_helpers.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil/pki_helpers.go @@ -76,11 +76,7 @@ func WriteCertAndKey(pkiPath string, name string, cert *x509.Certificate, key *r return err } - if err := WriteCert(pkiPath, name, cert); err != nil { - return err - } - - return nil + return WriteCert(pkiPath, name, cert) } // WriteCert stores the given certificate at the given location diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/BUILD index 3a1bed492..958b5cd9e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/BUILD @@ -17,8 +17,10 @@ go_test( deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", + "//cmd/kubeadm/app/features:go_default_library", "//cmd/kubeadm/app/phases/certs:go_default_library", "//cmd/kubeadm/test:go_default_library", + "//pkg/master/reconcilers:go_default_library", "//pkg/util/version:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", ], @@ -35,11 +37,13 @@ go_library( "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", + "//cmd/kubeadm/app/features:go_default_library", "//cmd/kubeadm/app/images:go_default_library", "//cmd/kubeadm/app/phases/certs:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/staticpod:go_default_library", "//pkg/kubeapiserver/authorizer/modes:go_default_library", + "//pkg/master/reconcilers:go_default_library", "//pkg/util/version:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/manifests.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/manifests.go index fe5433cba..28cc40bd5 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/manifests.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/manifests.go @@ -28,11 +28,13 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" + "k8s.io/kubernetes/cmd/kubeadm/app/features" "k8s.io/kubernetes/cmd/kubeadm/app/images" certphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" staticpodutil "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod" authzmodes "k8s.io/kubernetes/pkg/kubeapiserver/authorizer/modes" + "k8s.io/kubernetes/pkg/master/reconcilers" "k8s.io/kubernetes/pkg/util/version" ) @@ -40,8 +42,9 @@ import ( const ( DefaultCloudConfigPath = "/etc/kubernetes/cloud-config" - defaultV18AdmissionControl = "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota" - defaultV19AdmissionControl = "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,Priority,ResourceQuota" + defaultV18AdmissionControl = "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota" + deprecatedV19AdmissionControl = "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota" + defaultV19AdmissionControl = "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota" ) // CreateInitStaticPodManifestFiles will write all static pod manifest files needed to bring up the control plane. @@ -77,8 +80,8 @@ func GetStaticPodSpecs(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version. Name: kubeadmconstants.KubeAPIServer, Image: images.GetCoreImage(kubeadmconstants.KubeAPIServer, cfg.GetControlPlaneImageRepository(), cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage), Command: getAPIServerCommand(cfg, k8sVersion), - VolumeMounts: mounts.GetVolumeMounts(kubeadmconstants.KubeAPIServer), - LivenessProbe: staticpodutil.ComponentProbe(int(cfg.API.BindPort), "/healthz", v1.URISchemeHTTPS), + VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeAPIServer)), + LivenessProbe: staticpodutil.ComponentProbe(cfg, kubeadmconstants.KubeAPIServer, int(cfg.API.BindPort), "/healthz", v1.URISchemeHTTPS), Resources: staticpodutil.ComponentResources("250m"), Env: getProxyEnvVars(), }, mounts.GetVolumes(kubeadmconstants.KubeAPIServer)), @@ -86,8 +89,8 @@ func GetStaticPodSpecs(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version. Name: kubeadmconstants.KubeControllerManager, Image: images.GetCoreImage(kubeadmconstants.KubeControllerManager, cfg.GetControlPlaneImageRepository(), cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage), Command: getControllerManagerCommand(cfg, k8sVersion), - VolumeMounts: mounts.GetVolumeMounts(kubeadmconstants.KubeControllerManager), - LivenessProbe: staticpodutil.ComponentProbe(10252, "/healthz", v1.URISchemeHTTP), + VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeControllerManager)), + LivenessProbe: staticpodutil.ComponentProbe(cfg, kubeadmconstants.KubeControllerManager, 10252, "/healthz", v1.URISchemeHTTP), Resources: staticpodutil.ComponentResources("200m"), Env: getProxyEnvVars(), }, mounts.GetVolumes(kubeadmconstants.KubeControllerManager)), @@ -95,8 +98,8 @@ func GetStaticPodSpecs(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version. Name: kubeadmconstants.KubeScheduler, Image: images.GetCoreImage(kubeadmconstants.KubeScheduler, cfg.GetControlPlaneImageRepository(), cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage), Command: getSchedulerCommand(cfg), - VolumeMounts: mounts.GetVolumeMounts(kubeadmconstants.KubeScheduler), - LivenessProbe: staticpodutil.ComponentProbe(10251, "/healthz", v1.URISchemeHTTP), + VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeScheduler)), + LivenessProbe: staticpodutil.ComponentProbe(cfg, kubeadmconstants.KubeScheduler, 10251, "/healthz", v1.URISchemeHTTP), Resources: staticpodutil.ComponentResources("100m"), Env: getProxyEnvVars(), }, mounts.GetVolumes(kubeadmconstants.KubeScheduler)), @@ -170,6 +173,10 @@ func getAPIServerCommand(cfg *kubeadmapi.MasterConfiguration, k8sVersion *versio defaultArguments["admission-control"] = defaultV18AdmissionControl } + if cfg.CloudProvider == "aws" || cfg.CloudProvider == "gce" { + defaultArguments["admission-control"] = deprecatedV19AdmissionControl + } + command = append(command, kubeadmutil.BuildArgumentListFromMap(defaultArguments, cfg.APIServerExtraArgs)...) command = append(command, getAuthzParameters(cfg.AuthorizationModes)...) @@ -199,6 +206,10 @@ func getAPIServerCommand(cfg *kubeadmapi.MasterConfiguration, k8sVersion *versio } } + if features.Enabled(cfg.FeatureGates, features.HighAvailability) { + command = append(command, "--endpoint-reconciler-type="+reconcilers.LeaseEndpointReconcilerType) + } + return command } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/manifests_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/manifests_test.go index e59dcddcb..4764bf534 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/manifests_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/manifests_test.go @@ -26,7 +26,9 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" + "k8s.io/kubernetes/cmd/kubeadm/app/features" "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" + "k8s.io/kubernetes/pkg/master/reconcilers" "k8s.io/kubernetes/pkg/util/version" testutil "k8s.io/kubernetes/cmd/kubeadm/test" @@ -362,7 +364,7 @@ func TestGetAPIServerCommand(t *testing.T) { expected: []string{ "kube-apiserver", "--insecure-port=0", - "--admission-control=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,Priority,ResourceQuota", + "--admission-control=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota", "--service-cluster-ip-range=bar", "--service-account-key-file=" + testCertsDir + "/sa.pub", "--client-ca-file=" + testCertsDir + "/ca.crt", @@ -388,6 +390,114 @@ func TestGetAPIServerCommand(t *testing.T) { "--etcd-keyfile=faz", }, }, + { + cfg: &kubeadmapi.MasterConfiguration{ + API: kubeadmapi.API{BindPort: 123, AdvertiseAddress: "2001:db8::1"}, + Networking: kubeadmapi.Networking{ServiceSubnet: "bar"}, + FeatureGates: map[string]bool{features.HighAvailability: true}, + CertificatesDir: testCertsDir, + KubernetesVersion: "v1.9.0-beta.0", + }, + expected: []string{ + "kube-apiserver", + "--insecure-port=0", + "--admission-control=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota", + "--service-cluster-ip-range=bar", + "--service-account-key-file=" + testCertsDir + "/sa.pub", + "--client-ca-file=" + testCertsDir + "/ca.crt", + "--tls-cert-file=" + testCertsDir + "/apiserver.crt", + "--tls-private-key-file=" + testCertsDir + "/apiserver.key", + "--kubelet-client-certificate=" + testCertsDir + "/apiserver-kubelet-client.crt", + "--kubelet-client-key=" + testCertsDir + "/apiserver-kubelet-client.key", + fmt.Sprintf("--secure-port=%d", 123), + "--allow-privileged=true", + "--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname", + "--enable-bootstrap-token-auth=true", + "--proxy-client-cert-file=/var/lib/certs/front-proxy-client.crt", + "--proxy-client-key-file=/var/lib/certs/front-proxy-client.key", + "--requestheader-username-headers=X-Remote-User", + "--requestheader-group-headers=X-Remote-Group", + "--requestheader-extra-headers-prefix=X-Remote-Extra-", + "--requestheader-client-ca-file=" + testCertsDir + "/front-proxy-ca.crt", + "--requestheader-allowed-names=front-proxy-client", + "--authorization-mode=Node,RBAC", + "--advertise-address=2001:db8::1", + "--etcd-servers=http://127.0.0.1:2379", + fmt.Sprintf("--endpoint-reconciler-type=%s", reconcilers.LeaseEndpointReconcilerType), + }, + }, + { + cfg: &kubeadmapi.MasterConfiguration{ + API: kubeadmapi.API{BindPort: 123, AdvertiseAddress: "1.2.3.4"}, + Networking: kubeadmapi.Networking{ServiceSubnet: "bar"}, + CertificatesDir: testCertsDir, + KubernetesVersion: "v1.9.0-beta.0", + CloudProvider: "gce", + }, + expected: []string{ + "kube-apiserver", + "--insecure-port=0", + "--admission-control=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota", + "--service-cluster-ip-range=bar", + "--service-account-key-file=" + testCertsDir + "/sa.pub", + "--client-ca-file=" + testCertsDir + "/ca.crt", + "--tls-cert-file=" + testCertsDir + "/apiserver.crt", + "--tls-private-key-file=" + testCertsDir + "/apiserver.key", + "--kubelet-client-certificate=" + testCertsDir + "/apiserver-kubelet-client.crt", + "--kubelet-client-key=" + testCertsDir + "/apiserver-kubelet-client.key", + "--enable-bootstrap-token-auth=true", + "--secure-port=123", + "--allow-privileged=true", + "--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname", + "--proxy-client-cert-file=/var/lib/certs/front-proxy-client.crt", + "--proxy-client-key-file=/var/lib/certs/front-proxy-client.key", + "--requestheader-username-headers=X-Remote-User", + "--requestheader-group-headers=X-Remote-Group", + "--requestheader-extra-headers-prefix=X-Remote-Extra-", + "--requestheader-client-ca-file=" + testCertsDir + "/front-proxy-ca.crt", + "--requestheader-allowed-names=front-proxy-client", + "--authorization-mode=Node,RBAC", + "--advertise-address=1.2.3.4", + "--etcd-servers=http://127.0.0.1:2379", + "--cloud-provider=gce", + }, + }, + { + cfg: &kubeadmapi.MasterConfiguration{ + API: kubeadmapi.API{BindPort: 123, AdvertiseAddress: "1.2.3.4"}, + Networking: kubeadmapi.Networking{ServiceSubnet: "bar"}, + CertificatesDir: testCertsDir, + KubernetesVersion: "v1.9.0-beta.0", + CloudProvider: "aws", + }, + expected: []string{ + "kube-apiserver", + "--insecure-port=0", + "--admission-control=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota", + "--service-cluster-ip-range=bar", + "--service-account-key-file=" + testCertsDir + "/sa.pub", + "--client-ca-file=" + testCertsDir + "/ca.crt", + "--tls-cert-file=" + testCertsDir + "/apiserver.crt", + "--tls-private-key-file=" + testCertsDir + "/apiserver.key", + "--kubelet-client-certificate=" + testCertsDir + "/apiserver-kubelet-client.crt", + "--kubelet-client-key=" + testCertsDir + "/apiserver-kubelet-client.key", + "--enable-bootstrap-token-auth=true", + "--secure-port=123", + "--allow-privileged=true", + "--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname", + "--proxy-client-cert-file=/var/lib/certs/front-proxy-client.crt", + "--proxy-client-key-file=/var/lib/certs/front-proxy-client.key", + "--requestheader-username-headers=X-Remote-User", + "--requestheader-group-headers=X-Remote-Group", + "--requestheader-extra-headers-prefix=X-Remote-Extra-", + "--requestheader-client-ca-file=" + testCertsDir + "/front-proxy-ca.crt", + "--requestheader-allowed-names=front-proxy-client", + "--authorization-mode=Node,RBAC", + "--advertise-address=1.2.3.4", + "--etcd-servers=http://127.0.0.1:2379", + "--cloud-provider=aws", + }, + }, } for _, rt := range tests { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/volumes.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/volumes.go index a9c69d01b..35edc2111 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/volumes.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/volumes.go @@ -57,7 +57,7 @@ func getHostPathVolumesForTheControlPlane(cfg *kubeadmapi.MasterConfiguration) c // If external etcd is specified, mount the directories needed for accessing the CA/serving certs and the private key if len(cfg.Etcd.Endpoints) != 0 { - etcdVols, etcdVolMounts := getEtcdCertVolumes(cfg.Etcd) + etcdVols, etcdVolMounts := getEtcdCertVolumes(cfg.Etcd, cfg.CertificatesDir) mounts.AddHostPathMounts(kubeadmconstants.KubeAPIServer, etcdVols, etcdVolMounts) } @@ -72,7 +72,9 @@ func getHostPathVolumesForTheControlPlane(cfg *kubeadmapi.MasterConfiguration) c mounts.NewHostPathMount(kubeadmconstants.KubeControllerManager, kubeadmconstants.KubeConfigVolumeName, controllerManagerKubeConfigFile, controllerManagerKubeConfigFile, true, &hostPathFileOrCreate) // Mount for the flexvolume directory (/usr/libexec/kubernetes/kubelet-plugins/volume/exec) directory // Flexvolume dir must NOT be readonly as it is used for third-party plugins to integrate with their storage backends via unix domain socket. - mounts.NewHostPathMount(kubeadmconstants.KubeControllerManager, flexvolumeDirVolumeName, flexvolumeDirVolumePath, flexvolumeDirVolumePath, false, &hostPathDirectoryOrCreate) + if stat, err := os.Stat(flexvolumeDirVolumePath); err == nil && stat.IsDir() { + mounts.NewHostPathMount(kubeadmconstants.KubeControllerManager, flexvolumeDirVolumeName, flexvolumeDirVolumePath, flexvolumeDirVolumePath, false, &hostPathDirectoryOrCreate) + } // HostPath volumes for the scheduler // Read-only mount for the scheduler kubeconfig file @@ -86,49 +88,95 @@ func getHostPathVolumesForTheControlPlane(cfg *kubeadmapi.MasterConfiguration) c mounts.NewHostPathMount(kubeadmconstants.KubeControllerManager, caCertsPkiVolumeName, caCertsPkiVolumePath, caCertsPkiVolumePath, true, &hostPathDirectoryOrCreate) } + // Merge user defined mounts and ensure unique volume and volume mount + // names + mounts.AddExtraHostPathMounts(kubeadmconstants.KubeAPIServer, cfg.APIServerExtraVolumes, true, &hostPathDirectoryOrCreate) + mounts.AddExtraHostPathMounts(kubeadmconstants.KubeControllerManager, cfg.ControllerManagerExtraVolumes, true, &hostPathDirectoryOrCreate) + mounts.AddExtraHostPathMounts(kubeadmconstants.KubeScheduler, cfg.SchedulerExtraVolumes, true, &hostPathDirectoryOrCreate) + return mounts } // controlPlaneHostPathMounts is a helper struct for handling all the control plane's hostPath mounts in an easy way type controlPlaneHostPathMounts struct { - volumes map[string][]v1.Volume - volumeMounts map[string][]v1.VolumeMount + // volumes is a nested map that forces a unique volumes. The outer map's + // keys are a string that should specify the target component to add the + // volume to. The values (inner map) of the outer map are maps with string + // keys and v1.Volume values. The inner map's key should specify the volume + // name. + volumes map[string]map[string]v1.Volume + // volumeMounts is a nested map that forces a unique volume mounts. The + // outer map's keys are a string that should specify the target component + // to add the volume mount to. The values (inner map) of the outer map are + // maps with string keys and v1.VolumeMount values. The inner map's key + // should specify the volume mount name. + volumeMounts map[string]map[string]v1.VolumeMount } func newControlPlaneHostPathMounts() controlPlaneHostPathMounts { return controlPlaneHostPathMounts{ - volumes: map[string][]v1.Volume{}, - volumeMounts: map[string][]v1.VolumeMount{}, + volumes: map[string]map[string]v1.Volume{}, + volumeMounts: map[string]map[string]v1.VolumeMount{}, } } func (c *controlPlaneHostPathMounts) NewHostPathMount(component, mountName, hostPath, containerPath string, readOnly bool, hostPathType *v1.HostPathType) { - c.volumes[component] = append(c.volumes[component], staticpodutil.NewVolume(mountName, hostPath, hostPathType)) - c.volumeMounts[component] = append(c.volumeMounts[component], staticpodutil.NewVolumeMount(mountName, containerPath, readOnly)) + vol := staticpodutil.NewVolume(mountName, hostPath, hostPathType) + c.addComponentVolume(component, vol) + volMount := staticpodutil.NewVolumeMount(mountName, containerPath, readOnly) + c.addComponentVolumeMount(component, volMount) } func (c *controlPlaneHostPathMounts) AddHostPathMounts(component string, vols []v1.Volume, volMounts []v1.VolumeMount) { - c.volumes[component] = append(c.volumes[component], vols...) - c.volumeMounts[component] = append(c.volumeMounts[component], volMounts...) + for _, v := range vols { + c.addComponentVolume(component, v) + } + for _, v := range volMounts { + c.addComponentVolumeMount(component, v) + } +} + +// AddExtraHostPathMounts adds host path mounts and overwrites the default +// paths in the case that a user specifies the same volume/volume mount name. +func (c *controlPlaneHostPathMounts) AddExtraHostPathMounts(component string, extraVols []kubeadmapi.HostPathMount, readOnly bool, hostPathType *v1.HostPathType) { + for _, extraVol := range extraVols { + fmt.Printf("[controlplane] Adding extra host path mount %q to %q\n", extraVol.Name, component) + c.NewHostPathMount(component, extraVol.Name, extraVol.HostPath, extraVol.MountPath, readOnly, hostPathType) + } } -func (c *controlPlaneHostPathMounts) GetVolumes(component string) []v1.Volume { +func (c *controlPlaneHostPathMounts) GetVolumes(component string) map[string]v1.Volume { return c.volumes[component] } -func (c *controlPlaneHostPathMounts) GetVolumeMounts(component string) []v1.VolumeMount { +func (c *controlPlaneHostPathMounts) GetVolumeMounts(component string) map[string]v1.VolumeMount { return c.volumeMounts[component] } +func (c *controlPlaneHostPathMounts) addComponentVolume(component string, vol v1.Volume) { + if _, ok := c.volumes[component]; !ok { + c.volumes[component] = map[string]v1.Volume{} + } + c.volumes[component][vol.Name] = vol +} + +func (c *controlPlaneHostPathMounts) addComponentVolumeMount(component string, volMount v1.VolumeMount) { + if _, ok := c.volumeMounts[component]; !ok { + c.volumeMounts[component] = map[string]v1.VolumeMount{} + } + c.volumeMounts[component][volMount.Name] = volMount +} + // getEtcdCertVolumes returns the volumes/volumemounts needed for talking to an external etcd cluster -func getEtcdCertVolumes(etcdCfg kubeadmapi.Etcd) ([]v1.Volume, []v1.VolumeMount) { +func getEtcdCertVolumes(etcdCfg kubeadmapi.Etcd, k8sCertificatesDir string) ([]v1.Volume, []v1.VolumeMount) { certPaths := []string{etcdCfg.CAFile, etcdCfg.CertFile, etcdCfg.KeyFile} certDirs := sets.NewString() for _, certPath := range certPaths { certDir := filepath.Dir(certPath) // Ignore ".", which is the result of passing an empty path. - // Also ignore the cert directories that already may be mounted; /etc/ssl/certs and /etc/pki. If the etcd certs are in there, it's okay, we don't have to do anything - if certDir == "." || strings.HasPrefix(certDir, caCertsVolumePath) || strings.HasPrefix(certDir, caCertsPkiVolumePath) { + // Also ignore the cert directories that already may be mounted; /etc/ssl/certs, /etc/pki or Kubernetes CertificatesDir + // If the etcd certs are in there, it's okay, we don't have to do anything + if certDir == "." || strings.HasPrefix(certDir, caCertsVolumePath) || strings.HasPrefix(certDir, caCertsPkiVolumePath) || strings.HasPrefix(certDir, k8sCertificatesDir) { continue } // Filter out any existing hostpath mounts in the list that contains a subset of the path diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/volumes_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/volumes_test.go index af784c0e6..b2cdacadb 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/volumes_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane/volumes_test.go @@ -30,6 +30,7 @@ import ( func TestGetEtcdCertVolumes(t *testing.T) { hostPathDirectoryOrCreate := v1.HostPathDirectoryOrCreate + k8sCertifcatesDir := "/etc/kubernetes/pki" var tests = []struct { ca, cert, key string vol []v1.Volume @@ -59,6 +60,14 @@ func TestGetEtcdCertVolumes(t *testing.T) { vol: []v1.Volume{}, volMount: []v1.VolumeMount{}, }, + { + // Should ignore files in Kubernetes PKI directory (and subdirs) + ca: k8sCertifcatesDir + "/ca/my-etcd-ca.crt", + cert: k8sCertifcatesDir + "/my-etcd.crt", + key: k8sCertifcatesDir + "/my-etcd.key", + vol: []v1.Volume{}, + volMount: []v1.VolumeMount{}, + }, { // All in the same dir ca: "/var/lib/certs/etcd/my-etcd-ca.crt", @@ -228,7 +237,7 @@ func TestGetEtcdCertVolumes(t *testing.T) { CAFile: rt.ca, CertFile: rt.cert, KeyFile: rt.key, - }) + }, k8sCertifcatesDir) if !reflect.DeepEqual(actualVol, rt.vol) { t.Errorf( "failed getEtcdCertVolumes:\n\texpected: %v\n\t actual: %v", @@ -249,10 +258,223 @@ func TestGetEtcdCertVolumes(t *testing.T) { func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { hostPathDirectoryOrCreate := v1.HostPathDirectoryOrCreate hostPathFileOrCreate := v1.HostPathFileOrCreate + volMap := make(map[string]map[string]v1.Volume) + volMap[kubeadmconstants.KubeAPIServer] = map[string]v1.Volume{} + volMap[kubeadmconstants.KubeAPIServer]["k8s-certs"] = v1.Volume{ + Name: "k8s-certs", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: testCertsDir, + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap[kubeadmconstants.KubeAPIServer]["ca-certs"] = v1.Volume{ + Name: "ca-certs", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/etc/ssl/certs", + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap[kubeadmconstants.KubeControllerManager] = map[string]v1.Volume{} + volMap[kubeadmconstants.KubeControllerManager]["k8s-certs"] = v1.Volume{ + Name: "k8s-certs", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: testCertsDir, + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap[kubeadmconstants.KubeControllerManager]["ca-certs"] = v1.Volume{ + Name: "ca-certs", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/etc/ssl/certs", + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap[kubeadmconstants.KubeControllerManager]["kubeconfig"] = v1.Volume{ + Name: "kubeconfig", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/etc/kubernetes/controller-manager.conf", + Type: &hostPathFileOrCreate, + }, + }, + } + volMap[kubeadmconstants.KubeScheduler] = map[string]v1.Volume{} + volMap[kubeadmconstants.KubeScheduler]["kubeconfig"] = v1.Volume{ + Name: "kubeconfig", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/etc/kubernetes/scheduler.conf", + Type: &hostPathFileOrCreate, + }, + }, + } + volMountMap := make(map[string]map[string]v1.VolumeMount) + volMountMap[kubeadmconstants.KubeAPIServer] = map[string]v1.VolumeMount{} + volMountMap[kubeadmconstants.KubeAPIServer]["k8s-certs"] = v1.VolumeMount{ + Name: "k8s-certs", + MountPath: testCertsDir, + ReadOnly: true, + } + volMountMap[kubeadmconstants.KubeAPIServer]["ca-certs"] = v1.VolumeMount{ + Name: "ca-certs", + MountPath: "/etc/ssl/certs", + ReadOnly: true, + } + volMountMap[kubeadmconstants.KubeControllerManager] = map[string]v1.VolumeMount{} + volMountMap[kubeadmconstants.KubeControllerManager]["k8s-certs"] = v1.VolumeMount{ + Name: "k8s-certs", + MountPath: testCertsDir, + ReadOnly: true, + } + volMountMap[kubeadmconstants.KubeControllerManager]["ca-certs"] = v1.VolumeMount{ + Name: "ca-certs", + MountPath: "/etc/ssl/certs", + ReadOnly: true, + } + volMountMap[kubeadmconstants.KubeControllerManager]["kubeconfig"] = v1.VolumeMount{ + Name: "kubeconfig", + MountPath: "/etc/kubernetes/controller-manager.conf", + ReadOnly: true, + } + volMountMap[kubeadmconstants.KubeScheduler] = map[string]v1.VolumeMount{} + volMountMap[kubeadmconstants.KubeScheduler]["kubeconfig"] = v1.VolumeMount{ + Name: "kubeconfig", + MountPath: "/etc/kubernetes/scheduler.conf", + ReadOnly: true, + } + + volMap2 := make(map[string]map[string]v1.Volume) + volMap2[kubeadmconstants.KubeAPIServer] = map[string]v1.Volume{} + volMap2[kubeadmconstants.KubeAPIServer]["k8s-certs"] = v1.Volume{ + Name: "k8s-certs", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: testCertsDir, + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap2[kubeadmconstants.KubeAPIServer]["ca-certs"] = v1.Volume{ + Name: "ca-certs", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/etc/ssl/certs", + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap2[kubeadmconstants.KubeAPIServer]["etcd-certs-0"] = v1.Volume{ + Name: "etcd-certs-0", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/etc/certs/etcd", + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap2[kubeadmconstants.KubeAPIServer]["etcd-certs-1"] = v1.Volume{ + Name: "etcd-certs-1", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/var/lib/etcd/certs", + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap2[kubeadmconstants.KubeControllerManager] = map[string]v1.Volume{} + volMap2[kubeadmconstants.KubeControllerManager]["k8s-certs"] = v1.Volume{ + Name: "k8s-certs", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: testCertsDir, + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap2[kubeadmconstants.KubeControllerManager]["ca-certs"] = v1.Volume{ + Name: "ca-certs", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/etc/ssl/certs", + Type: &hostPathDirectoryOrCreate, + }, + }, + } + volMap2[kubeadmconstants.KubeControllerManager]["kubeconfig"] = v1.Volume{ + Name: "kubeconfig", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/etc/kubernetes/controller-manager.conf", + Type: &hostPathFileOrCreate, + }, + }, + } + volMap2[kubeadmconstants.KubeScheduler] = map[string]v1.Volume{} + volMap2[kubeadmconstants.KubeScheduler]["kubeconfig"] = v1.Volume{ + Name: "kubeconfig", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/etc/kubernetes/scheduler.conf", + Type: &hostPathFileOrCreate, + }, + }, + } + volMountMap2 := make(map[string]map[string]v1.VolumeMount) + volMountMap2[kubeadmconstants.KubeAPIServer] = map[string]v1.VolumeMount{} + volMountMap2[kubeadmconstants.KubeAPIServer]["k8s-certs"] = v1.VolumeMount{ + Name: "k8s-certs", + MountPath: testCertsDir, + ReadOnly: true, + } + volMountMap2[kubeadmconstants.KubeAPIServer]["ca-certs"] = v1.VolumeMount{ + Name: "ca-certs", + MountPath: "/etc/ssl/certs", + ReadOnly: true, + } + volMountMap2[kubeadmconstants.KubeAPIServer]["etcd-certs-0"] = v1.VolumeMount{ + Name: "etcd-certs-0", + MountPath: "/etc/certs/etcd", + ReadOnly: true, + } + volMountMap2[kubeadmconstants.KubeAPIServer]["etcd-certs-1"] = v1.VolumeMount{ + Name: "etcd-certs-1", + MountPath: "/var/lib/etcd/certs", + ReadOnly: true, + } + volMountMap2[kubeadmconstants.KubeControllerManager] = map[string]v1.VolumeMount{} + volMountMap2[kubeadmconstants.KubeControllerManager]["k8s-certs"] = v1.VolumeMount{ + Name: "k8s-certs", + MountPath: testCertsDir, + ReadOnly: true, + } + volMountMap2[kubeadmconstants.KubeControllerManager]["ca-certs"] = v1.VolumeMount{ + Name: "ca-certs", + MountPath: "/etc/ssl/certs", + ReadOnly: true, + } + volMountMap2[kubeadmconstants.KubeControllerManager]["kubeconfig"] = v1.VolumeMount{ + Name: "kubeconfig", + MountPath: "/etc/kubernetes/controller-manager.conf", + ReadOnly: true, + } + volMountMap2[kubeadmconstants.KubeScheduler] = map[string]v1.VolumeMount{} + volMountMap2[kubeadmconstants.KubeScheduler]["kubeconfig"] = v1.VolumeMount{ + Name: "kubeconfig", + MountPath: "/etc/kubernetes/scheduler.conf", + ReadOnly: true, + } var tests = []struct { cfg *kubeadmapi.MasterConfiguration - vol map[string][]v1.Volume - volMount map[string][]v1.VolumeMount + vol map[string]map[string]v1.Volume + volMount map[string]map[string]v1.VolumeMount }{ { // Should ignore files in /etc/ssl/certs @@ -260,274 +482,22 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { CertificatesDir: testCertsDir, Etcd: kubeadmapi.Etcd{}, }, - vol: map[string][]v1.Volume{ - kubeadmconstants.KubeAPIServer: { - { - Name: "k8s-certs", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: testCertsDir, - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - { - Name: "ca-certs", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/etc/ssl/certs", - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - }, - kubeadmconstants.KubeControllerManager: { - { - Name: "k8s-certs", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: testCertsDir, - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - { - Name: "ca-certs", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/etc/ssl/certs", - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - { - Name: "kubeconfig", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/etc/kubernetes/controller-manager.conf", - Type: &hostPathFileOrCreate, - }, - }, - }, - { - Name: "flexvolume-dir", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec", - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - }, - kubeadmconstants.KubeScheduler: { - { - Name: "kubeconfig", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/etc/kubernetes/scheduler.conf", - Type: &hostPathFileOrCreate, - }, - }, - }, - }, - }, - volMount: map[string][]v1.VolumeMount{ - kubeadmconstants.KubeAPIServer: { - { - Name: "k8s-certs", - MountPath: testCertsDir, - ReadOnly: true, - }, - { - Name: "ca-certs", - MountPath: "/etc/ssl/certs", - ReadOnly: true, - }, - }, - kubeadmconstants.KubeControllerManager: { - { - Name: "k8s-certs", - MountPath: testCertsDir, - ReadOnly: true, - }, - { - Name: "ca-certs", - MountPath: "/etc/ssl/certs", - ReadOnly: true, - }, - { - Name: "kubeconfig", - MountPath: "/etc/kubernetes/controller-manager.conf", - ReadOnly: true, - }, - { - Name: "flexvolume-dir", - MountPath: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec", - ReadOnly: false, - }, - }, - kubeadmconstants.KubeScheduler: { - { - Name: "kubeconfig", - MountPath: "/etc/kubernetes/scheduler.conf", - ReadOnly: true, - }, - }, - }, + vol: volMap, + volMount: volMountMap, }, { - // Should ignore files in /etc/ssl/certs + // Should ignore files in /etc/ssl/certs and in CertificatesDir cfg: &kubeadmapi.MasterConfiguration{ CertificatesDir: testCertsDir, Etcd: kubeadmapi.Etcd{ Endpoints: []string{"foo"}, CAFile: "/etc/certs/etcd/my-etcd-ca.crt", - CertFile: "/var/lib/certs/etcd/my-etcd.crt", - KeyFile: "/var/lib/certs/etcd/my-etcd.key", - }, - }, - vol: map[string][]v1.Volume{ - kubeadmconstants.KubeAPIServer: { - { - Name: "k8s-certs", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: testCertsDir, - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - { - Name: "ca-certs", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/etc/ssl/certs", - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - { - Name: "etcd-certs-0", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/etc/certs/etcd", - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - { - Name: "etcd-certs-1", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/var/lib/certs/etcd", - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - }, - kubeadmconstants.KubeControllerManager: { - { - Name: "k8s-certs", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: testCertsDir, - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - { - Name: "ca-certs", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/etc/ssl/certs", - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - { - Name: "kubeconfig", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/etc/kubernetes/controller-manager.conf", - Type: &hostPathFileOrCreate, - }, - }, - }, - { - Name: "flexvolume-dir", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec", - Type: &hostPathDirectoryOrCreate, - }, - }, - }, - }, - kubeadmconstants.KubeScheduler: { - { - Name: "kubeconfig", - VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: "/etc/kubernetes/scheduler.conf", - Type: &hostPathFileOrCreate, - }, - }, - }, - }, - }, - volMount: map[string][]v1.VolumeMount{ - kubeadmconstants.KubeAPIServer: { - { - Name: "k8s-certs", - MountPath: testCertsDir, - ReadOnly: true, - }, - { - Name: "ca-certs", - MountPath: "/etc/ssl/certs", - ReadOnly: true, - }, - { - Name: "etcd-certs-0", - MountPath: "/etc/certs/etcd", - ReadOnly: true, - }, - { - Name: "etcd-certs-1", - MountPath: "/var/lib/certs/etcd", - ReadOnly: true, - }, - }, - kubeadmconstants.KubeControllerManager: { - { - Name: "k8s-certs", - MountPath: testCertsDir, - ReadOnly: true, - }, - { - Name: "ca-certs", - MountPath: "/etc/ssl/certs", - ReadOnly: true, - }, - { - Name: "kubeconfig", - MountPath: "/etc/kubernetes/controller-manager.conf", - ReadOnly: true, - }, - { - Name: "flexvolume-dir", - MountPath: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec", - ReadOnly: false, - }, - }, - kubeadmconstants.KubeScheduler: { - { - Name: "kubeconfig", - MountPath: "/etc/kubernetes/scheduler.conf", - ReadOnly: true, - }, + CertFile: testCertsDir + "/etcd/my-etcd.crt", + KeyFile: "/var/lib/etcd/certs/my-etcd.key", }, }, + vol: volMap2, + volMount: volMountMap2, }, } @@ -559,3 +529,70 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { } } } + +func TestAddExtraHostPathMounts(t *testing.T) { + mounts := newControlPlaneHostPathMounts() + hostPathDirectoryOrCreate := v1.HostPathDirectoryOrCreate + hostPathFileOrCreate := v1.HostPathFileOrCreate + vols := []v1.Volume{ + { + Name: "foo", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/tmp/foo", + Type: &hostPathDirectoryOrCreate, + }, + }, + }, + { + Name: "bar", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{ + Path: "/tmp/bar", + Type: &hostPathFileOrCreate, + }, + }, + }, + } + volMounts := []v1.VolumeMount{ + { + Name: "foo", + MountPath: "/tmp/foo", + ReadOnly: true, + }, + { + Name: "bar", + MountPath: "/tmp/bar", + ReadOnly: true, + }, + } + mounts.AddHostPathMounts("component", vols, volMounts) + hostPathMounts := []kubeadmapi.HostPathMount{ + { + Name: "foo", + HostPath: "/tmp/qux", + MountPath: "/tmp/qux", + }, + } + mounts.AddExtraHostPathMounts("component", hostPathMounts, true, &hostPathDirectoryOrCreate) + if _, ok := mounts.volumes["component"]["foo"]; !ok { + t.Errorf("Expected to find volume %q", "foo") + } + vol, _ := mounts.volumes["component"]["foo"] + if vol.Name != "foo" { + t.Errorf("Expected volume name %q", "foo") + } + if vol.HostPath.Path != "/tmp/qux" { + t.Errorf("Expected host path %q", "/tmp/qux") + } + if _, ok := mounts.volumeMounts["component"]["foo"]; !ok { + t.Errorf("Expected to find volume mount %q", "foo") + } + volMount, _ := mounts.volumeMounts["component"]["foo"] + if volMount.Name != "foo" { + t.Errorf("Expected volume mount name %q", "foo") + } + if volMount.MountPath != "/tmp/qux" { + t.Errorf("Expected container path %q", "/tmp/qux") + } +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/BUILD index 8c0bef291..45f491b2c 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/BUILD @@ -41,6 +41,9 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//cmd/kubeadm/app/phases/etcd/spec:all-srcs", + ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local.go index e947794fc..522e6e5da 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/local.go @@ -50,14 +50,17 @@ func CreateLocalEtcdStaticPodManifestFile(manifestDir string, cfg *kubeadmapi.Ma // NB. GetEtcdPodSpec methods holds the information about how kubeadm creates etcd static pod mainfests. func GetEtcdPodSpec(cfg *kubeadmapi.MasterConfiguration) v1.Pod { pathType := v1.HostPathDirectoryOrCreate + etcdMounts := map[string]v1.Volume{ + etcdVolumeName: staticpodutil.NewVolume(etcdVolumeName, cfg.Etcd.DataDir, &pathType), + } return staticpodutil.ComponentPod(v1.Container{ Name: kubeadmconstants.Etcd, Command: getEtcdCommand(cfg), Image: images.GetCoreImage(kubeadmconstants.Etcd, cfg.ImageRepository, "", cfg.Etcd.Image), // Mount the etcd datadir path read-write so etcd can store data in a more persistent manner VolumeMounts: []v1.VolumeMount{staticpodutil.NewVolumeMount(etcdVolumeName, cfg.Etcd.DataDir, false)}, - LivenessProbe: staticpodutil.ComponentProbe(2379, "/health", v1.URISchemeHTTP), - }, []v1.Volume{staticpodutil.NewVolume(etcdVolumeName, cfg.Etcd.DataDir, &pathType)}) + LivenessProbe: staticpodutil.ComponentProbe(cfg, kubeadmconstants.Etcd, 2379, "/health", v1.URISchemeHTTP), + }, etcdMounts) } // getEtcdCommand builds the right etcd command from the given config object diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/BUILD new file mode 100644 index 000000000..8c65b8b71 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "spec.go", + "zz_generated.deepcopy.go", + ], + importpath = "k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec", + visibility = ["//visibility:public"], + deps = [ + "//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/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/doc.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/doc.go similarity index 97% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/doc.go rename to vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/doc.go index be4d74fc2..a91c65d7d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/doc.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/doc.go @@ -15,4 +15,5 @@ limitations under the License. */ // +k8s:deepcopy-gen=package -package v1 + +package spec diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/spec.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/spec.go new file mode 100644 index 000000000..4cc587a5b --- /dev/null +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/spec.go @@ -0,0 +1,205 @@ +/* +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 collated from types used in: +// https://github.com/coreos/etcd-operator/tree/e7f18696bbdc127fa028a99ca8166a8519749328/pkg/apis/etcd/v1beta2. +// When kubeadm moves to its own repo and controls its own dependencies, +// this file will be no longer be needed. + +package spec + +import ( + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +const ( + // CRDResourceKind is the CRD resource kind + CRDResourceKind = "EtcdCluster" + // CRDResourcePlural is the CRD resource plural + CRDResourcePlural = "etcdclusters" + groupName = "etcd.database.coreos.com" +) + +var ( + // SchemeBuilder is a scheme builder + SchemeBuilder = runtime.NewSchemeBuilder(AddKnownTypes) + // AddToScheme adds to the scheme + AddToScheme = SchemeBuilder.AddToScheme + // SchemeGroupVersion is the scheme version + SchemeGroupVersion = schema.GroupVersion{Group: groupName, Version: "v1beta2"} + // CRDName is the name of the CRD + CRDName = CRDResourcePlural + "." + groupName +) + +// Resource gets an EtcdCluster GroupResource for a specified resource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +// AddKnownTypes adds the set of types defined in this package to the supplied scheme. +func AddKnownTypes(s *runtime.Scheme) error { + s.AddKnownTypes(SchemeGroupVersion, + &EtcdCluster{}, + &EtcdClusterList{}, + ) + metav1.AddToGroupVersion(s, SchemeGroupVersion) + return nil +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EtcdClusterList is a list of etcd clusters. +type EtcdClusterList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata + // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata + metav1.ListMeta `json:"metadata,omitempty"` + Items []EtcdCluster `json:"items"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// EtcdCluster represents an etcd cluster +type EtcdCluster struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec ClusterSpec `json:"spec"` +} + +// ClusterSpec represents a cluster spec +type ClusterSpec struct { + // Size is the expected size of the etcd cluster. + // The etcd-operator will eventually make the size of the running + // cluster equal to the expected size. + // The vaild range of the size is from 1 to 7. + Size int `json:"size"` + + // BaseImage is the base etcd image name that will be used to launch + // etcd clusters. This is useful for private registries, etc. + // + // If image is not set, default is quay.io/coreos/etcd + BaseImage string `json:"baseImage"` + + // Version is the expected version of the etcd cluster. + // The etcd-operator will eventually make the etcd cluster version + // equal to the expected version. + // + // The version must follow the [semver]( http://semver.org) format, for example "3.1.8". + // Only etcd released versions are supported: https://github.com/coreos/etcd/releases + // + // If version is not set, default is "3.1.8". + Version string `json:"version,omitempty"` + + // Paused is to pause the control of the operator for the etcd cluster. + Paused bool `json:"paused,omitempty"` + + // Pod defines the policy to create pod for the etcd pod. + // + // Updating Pod does not take effect on any existing etcd pods. + Pod *PodPolicy `json:"pod,omitempty"` + + // SelfHosted determines if the etcd cluster is used for a self-hosted + // Kubernetes cluster. + // + // SelfHosted is a cluster initialization configuration. It cannot be updated. + SelfHosted *SelfHostedPolicy `json:"selfHosted,omitempty"` + + // etcd cluster TLS configuration + TLS *TLSPolicy `json:"TLS,omitempty"` +} + +// PodPolicy defines the policy to create pod for the etcd container. +type PodPolicy struct { + // Labels specifies the labels to attach to pods the operator creates for the + // etcd cluster. + // "app" and "etcd_*" labels are reserved for the internal use of the etcd operator. + // Do not overwrite them. + Labels map[string]string `json:"labels,omitempty"` + + // NodeSelector specifies a map of key-value pairs. For the pod to be eligible + // to run on a node, the node must have each of the indicated key-value pairs as + // labels. + NodeSelector map[string]string `json:"nodeSelector,omitempty"` + + // AntiAffinity determines if the etcd-operator tries to avoid putting + // the etcd members in the same cluster onto the same node. + AntiAffinity bool `json:"antiAffinity,omitempty"` + + // Resources is the resource requirements for the etcd container. + // This field cannot be updated once the cluster is created. + Resources v1.ResourceRequirements `json:"resources,omitempty"` + + // Tolerations specifies the pod's tolerations. + Tolerations []v1.Toleration `json:"tolerations,omitempty"` + + // List of environment variables to set in the etcd container. + // This is used to configure etcd process. etcd cluster cannot be created, when + // bad environement variables are provided. Do not overwrite any flags used to + // bootstrap the cluster (for example `--initial-cluster` flag). + // This field cannot be updated. + EtcdEnv []v1.EnvVar `json:"etcdEnv,omitempty"` + + // By default, kubernetes will mount a service account token into the etcd pods. + // AutomountServiceAccountToken indicates whether pods running with the service account should have an API token automatically mounted. + AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"` +} + +// TLSPolicy defines the TLS policy of an etcd cluster +type TLSPolicy struct { + // StaticTLS enables user to generate static x509 certificates and keys, + // put them into Kubernetes secrets, and specify them into here. + Static *StaticTLS `json:"static,omitempty"` +} + +// StaticTLS represents static TLS +type StaticTLS struct { + // Member contains secrets containing TLS certs used by each etcd member pod. + Member *MemberSecret `json:"member,omitempty"` + // OperatorSecret is the secret containing TLS certs used by operator to + // talk securely to this cluster. + OperatorSecret string `json:"operatorSecret,omitempty"` +} + +// MemberSecret represents a member secret +type MemberSecret struct { + // PeerSecret is the secret containing TLS certs used by each etcd member pod + // for the communication between etcd peers. + PeerSecret string `json:"peerSecret,omitempty"` + // ServerSecret is the secret containing TLS certs used by each etcd member pod + // for the communication between etcd server and its clients. + ServerSecret string `json:"serverSecret,omitempty"` +} + +// SelfHostedPolicy represents a self-hosted policy +type SelfHostedPolicy struct { + // BootMemberClientEndpoint specifies a bootstrap member for the cluster. + // If there is no bootstrap member, a completely new cluster will be created. + // The boot member will be removed from the cluster once the self-hosted cluster + // setup successfully. + BootMemberClientEndpoint string `json:"bootMemberClientEndpoint,omitempty"` + + // SkipBootMemberRemoval specifies whether the removal of the bootstrap member + // should be skipped. By default the operator will automatically remove the + // bootstrap member from the new cluster - this happens during the pivot + // procedure and is the first step of decommissioning the bootstrap member. + // If unspecified, the default is `false`. If set to `true`, you are + // expected to remove the boot member yourself from the etcd cluster. + SkipBootMemberRemoval bool `json:"skipBootMemberRemoval,omitempty"` +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/zz_generated.deepcopy.go new file mode 100644 index 000000000..16d00bf0e --- /dev/null +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/etcd/spec/zz_generated.deepcopy.go @@ -0,0 +1,267 @@ +// +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 spec + +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 *ClusterSpec) DeepCopyInto(out *ClusterSpec) { + *out = *in + if in.Pod != nil { + in, out := &in.Pod, &out.Pod + if *in == nil { + *out = nil + } else { + *out = new(PodPolicy) + (*in).DeepCopyInto(*out) + } + } + if in.SelfHosted != nil { + in, out := &in.SelfHosted, &out.SelfHosted + if *in == nil { + *out = nil + } else { + *out = new(SelfHostedPolicy) + **out = **in + } + } + if in.TLS != nil { + in, out := &in.TLS, &out.TLS + if *in == nil { + *out = nil + } else { + *out = new(TLSPolicy) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec. +func (in *ClusterSpec) DeepCopy() *ClusterSpec { + if in == nil { + return nil + } + out := new(ClusterSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EtcdCluster) DeepCopyInto(out *EtcdCluster) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdCluster. +func (in *EtcdCluster) DeepCopy() *EtcdCluster { + if in == nil { + return nil + } + out := new(EtcdCluster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EtcdCluster) 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 *EtcdClusterList) DeepCopyInto(out *EtcdClusterList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]EtcdCluster, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdClusterList. +func (in *EtcdClusterList) DeepCopy() *EtcdClusterList { + if in == nil { + return nil + } + out := new(EtcdClusterList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EtcdClusterList) 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 *MemberSecret) DeepCopyInto(out *MemberSecret) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberSecret. +func (in *MemberSecret) DeepCopy() *MemberSecret { + if in == nil { + return nil + } + out := new(MemberSecret) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodPolicy) DeepCopyInto(out *PodPolicy) { + *out = *in + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + in.Resources.DeepCopyInto(&out.Resources) + if in.Tolerations != nil { + in, out := &in.Tolerations, &out.Tolerations + *out = make([]v1.Toleration, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EtcdEnv != nil { + in, out := &in.EtcdEnv, &out.EtcdEnv + *out = make([]v1.EnvVar, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.AutomountServiceAccountToken != nil { + in, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken + if *in == nil { + *out = nil + } else { + *out = new(bool) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodPolicy. +func (in *PodPolicy) DeepCopy() *PodPolicy { + if in == nil { + return nil + } + out := new(PodPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SelfHostedPolicy) DeepCopyInto(out *SelfHostedPolicy) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfHostedPolicy. +func (in *SelfHostedPolicy) DeepCopy() *SelfHostedPolicy { + if in == nil { + return nil + } + out := new(SelfHostedPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StaticTLS) DeepCopyInto(out *StaticTLS) { + *out = *in + if in.Member != nil { + in, out := &in.Member, &out.Member + if *in == nil { + *out = nil + } else { + *out = new(MemberSecret) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticTLS. +func (in *StaticTLS) DeepCopy() *StaticTLS { + if in == nil { + return nil + } + out := new(StaticTLS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TLSPolicy) DeepCopyInto(out *TLSPolicy) { + *out = *in + if in.Static != nil { + in, out := &in.Static, &out.Static + if *in == nil { + *out = nil + } else { + *out = new(StaticTLS) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSPolicy. +func (in *TLSPolicy) DeepCopy() *TLSPolicy { + if in == nil { + return nil + } + out := new(TLSPolicy) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/BUILD index a81436e68..cdeaaf6b5 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/BUILD @@ -18,6 +18,7 @@ go_test( deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util:go_default_library", + "//pkg/volume/util:go_default_library", "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", ], @@ -37,11 +38,10 @@ go_library( "//cmd/kubeadm/app/features:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/apiclient:go_default_library", - "//pkg/api:go_default_library", + "//pkg/volume/util:go_default_library", "//vendor/k8s.io/api/apps/v1beta2: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/client-go/kubernetes:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/selfhosting.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/selfhosting.go index f310a4353..755f58825 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/selfhosting.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/selfhosting.go @@ -18,20 +18,18 @@ package selfhosting import ( "fmt" - "io/ioutil" "os" "time" apps "k8s.io/api/apps/v1beta2" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - kuberuntime "k8s.io/apimachinery/pkg/runtime" clientset "k8s.io/client-go/kubernetes" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/features" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" - "k8s.io/kubernetes/pkg/api" + volumeutil "k8s.io/kubernetes/pkg/volume/util" ) const ( @@ -59,7 +57,7 @@ func CreateSelfHostedControlPlane(manifestsDir, kubeConfigDir string, cfg *kubea // Adjust the timeout slightly to something self-hosting specific waiter.SetTimeout(selfHostingWaitTimeout) - // Here the map of different mutators to use for the control plane's podspec is stored + // Here the map of different mutators to use for the control plane's PodSpec is stored mutators := GetMutatorsFromFeatureGates(cfg.FeatureGates) // Some extra work to be done if we should store the control plane certificates in Secrets @@ -85,10 +83,11 @@ func CreateSelfHostedControlPlane(manifestsDir, kubeConfigDir string, cfg *kubea } // Load the Static Pod file in order to be able to create a self-hosted variant of that file - podSpec, err := loadPodSpecFromFile(manifestPath) + pod, err := volumeutil.LoadPodFromFile(manifestPath) if err != nil { return err } + podSpec := &pod.Spec // Build a DaemonSet object from the loaded PodSpec ds := BuildDaemonSet(componentName, podSpec, mutators) @@ -156,22 +155,6 @@ func BuildDaemonSet(name string, podSpec *v1.PodSpec, mutators map[string][]PodS } } -// loadPodSpecFromFile reads and decodes a file containing a specification of a Pod -// TODO: Consider using "k8s.io/kubernetes/pkg/volume/util".LoadPodFromFile(filename string) in the future instead. -func loadPodSpecFromFile(manifestPath string) (*v1.PodSpec, error) { - podBytes, err := ioutil.ReadFile(manifestPath) - if err != nil { - return nil, err - } - - staticPod := &v1.Pod{} - if err := kuberuntime.DecodeInto(api.Codecs.UniversalDecoder(), podBytes, staticPod); err != nil { - return nil, fmt.Errorf("unable to decode static pod %v", err) - } - - return &staticPod.Spec, nil -} - // BuildSelfhostedComponentLabels returns the labels for a self-hosted component func BuildSelfhostedComponentLabels(component string) map[string]string { return map[string]string{ diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/selfhosting_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/selfhosting_test.go index 40a5a0b07..63e237c3b 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/selfhosting_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting/selfhosting_test.go @@ -26,6 +26,7 @@ import ( apps "k8s.io/api/apps/v1beta2" "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/util" + volumeutil "k8s.io/kubernetes/pkg/volume/util" ) const ( @@ -474,12 +475,16 @@ func TestBuildDaemonSet(t *testing.T) { for _, rt := range tests { tempFile, err := createTempFileWithContent(rt.podBytes) + if err != nil { + t.Errorf("error creating tempfile with content:%v", err) + } defer os.Remove(tempFile) - podSpec, err := loadPodSpecFromFile(tempFile) + pod, err := volumeutil.LoadPodFromFile(tempFile) if err != nil { t.Fatalf("couldn't load the specified Pod") } + podSpec := &pod.Spec ds := BuildDaemonSet(rt.component, podSpec, GetDefaultMutators()) dsBytes, err := util.MarshalToYaml(ds, apps.SchemeGroupVersion) @@ -546,9 +551,12 @@ spec: for _, rt := range tests { tempFile, err := createTempFileWithContent([]byte(rt.content)) + if err != nil { + t.Errorf("error creating tempfile with content:%v", err) + } defer os.Remove(tempFile) - _, err = loadPodSpecFromFile(tempFile) + _, err = volumeutil.LoadPodFromFile(tempFile) if (err != nil) != rt.expectError { t.Errorf("failed TestLoadPodSpecFromFile:\nexpected error:\n%t\nsaw:\n%v", rt.expectError, err) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/BUILD index 08f470828..07fbdf5f4 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/BUILD @@ -31,7 +31,7 @@ go_library( "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/apiclient:go_default_library", "//cmd/kubeadm/app/util/config:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/util/version:go_default_library", "//pkg/version:go_default_library", "//vendor/k8s.io/api/apps/v1beta2:go_default_library", @@ -74,7 +74,7 @@ go_test( "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/phases/controlplane:go_default_library", "//cmd/kubeadm/app/util/apiclient:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/util/version:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/compute.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/compute.go index 2b78af9f6..f0c66a2d2 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/compute.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/compute.go @@ -20,6 +20,7 @@ import ( "fmt" "strings" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/phases/addons/dns" "k8s.io/kubernetes/pkg/util/version" ) @@ -62,7 +63,7 @@ type ClusterState struct { // GetAvailableUpgrades fetches all versions from the specified VersionGetter and computes which // kinds of upgrades can be performed func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesAllowed, rcUpgradesAllowed bool) ([]Upgrade, error) { - fmt.Println("[upgrade] Fetching available versions to upgrade to:") + fmt.Println("[upgrade] Fetching available versions to upgrade to") // Collect the upgrades kubeadm can do in this list upgrades := []Upgrade{} @@ -82,7 +83,9 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA // Get and output the current latest stable version stableVersionStr, stableVersion, err := versionGetterImpl.VersionFromCILabel("stable", "stable version") if err != nil { - return nil, err + fmt.Printf("[upgrade/versions] WARNING: %v\n", err) + fmt.Println("[upgrade/versions] WARNING: Falling back to current kubeadm version as latest stable version") + stableVersionStr, stableVersion = kubeadmVersionStr, kubeadmVersion } // Get the kubelet versions in the cluster @@ -92,9 +95,10 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA } // Construct a descriptor for the current state of the world + // TODO: Make CoreDNS available here. beforeState := ClusterState{ KubeVersion: clusterVersionStr, - DNSVersion: dns.GetKubeDNSVersion(clusterVersion), + DNSVersion: dns.GetDNSVersion(clusterVersion, kubeadmconstants.KubeDNS), KubeadmVersion: kubeadmVersionStr, KubeletVersions: kubeletVersions, } @@ -115,34 +119,34 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA // Get and output the latest patch version for the cluster branch patchVersionStr, patchVersion, err := versionGetterImpl.VersionFromCILabel(versionLabel, description) if err != nil { - return nil, err - } - - // Check if a minor version upgrade is possible when a patch release exists - // It's only possible if the latest patch version is higher than the current patch version - // If that's the case, they must be on different branches => a newer minor version can be upgraded to - canDoMinorUpgrade = minorUpgradePossibleWithPatchRelease(stableVersion, patchVersion) - - // If the cluster version is lower than the newest patch version, we should inform about the possible upgrade - if patchUpgradePossible(clusterVersion, patchVersion) { - - // The kubeadm version has to be upgraded to the latest patch version - newKubeadmVer := patchVersionStr - if kubeadmVersion.AtLeast(patchVersion) { - // In this case, the kubeadm CLI version is new enough. Don't display an update suggestion for kubeadm by making .NewKubeadmVersion equal .CurrentKubeadmVersion - newKubeadmVer = kubeadmVersionStr + fmt.Printf("[upgrade/versions] WARNING: %v\n", err) + } else { + // Check if a minor version upgrade is possible when a patch release exists + // It's only possible if the latest patch version is higher than the current patch version + // If that's the case, they must be on different branches => a newer minor version can be upgraded to + canDoMinorUpgrade = minorUpgradePossibleWithPatchRelease(stableVersion, patchVersion) + + // If the cluster version is lower than the newest patch version, we should inform about the possible upgrade + if patchUpgradePossible(clusterVersion, patchVersion) { + + // The kubeadm version has to be upgraded to the latest patch version + newKubeadmVer := patchVersionStr + if kubeadmVersion.AtLeast(patchVersion) { + // In this case, the kubeadm CLI version is new enough. Don't display an update suggestion for kubeadm by making .NewKubeadmVersion equal .CurrentKubeadmVersion + newKubeadmVer = kubeadmVersionStr + } + + upgrades = append(upgrades, Upgrade{ + Description: description, + Before: beforeState, + After: ClusterState{ + KubeVersion: patchVersionStr, + DNSVersion: dns.GetDNSVersion(patchVersion, kubeadmconstants.KubeDNS), + KubeadmVersion: newKubeadmVer, + // KubeletVersions is unset here as it is not used anywhere in .After + }, + }) } - - upgrades = append(upgrades, Upgrade{ - Description: description, - Before: beforeState, - After: ClusterState{ - KubeVersion: patchVersionStr, - DNSVersion: dns.GetKubeDNSVersion(patchVersion), - KubeadmVersion: newKubeadmVer, - // KubeletVersions is unset here as it is not used anywhere in .After - }, - }) } } @@ -152,7 +156,7 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA Before: beforeState, After: ClusterState{ KubeVersion: stableVersionStr, - DNSVersion: dns.GetKubeDNSVersion(stableVersion), + DNSVersion: dns.GetDNSVersion(stableVersion, kubeadmconstants.KubeDNS), KubeadmVersion: stableVersionStr, // KubeletVersions is unset here as it is not used anywhere in .After }, @@ -196,7 +200,7 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA Before: beforeState, After: ClusterState{ KubeVersion: previousBranchLatestVersionStr, - DNSVersion: dns.GetKubeDNSVersion(previousBranchLatestVersion), + DNSVersion: dns.GetDNSVersion(previousBranchLatestVersion, kubeadmconstants.KubeDNS), KubeadmVersion: previousBranchLatestVersionStr, // KubeletVersions is unset here as it is not used anywhere in .After }, @@ -208,12 +212,12 @@ func GetAvailableUpgrades(versionGetterImpl VersionGetter, experimentalUpgradesA // Default to assume that the experimental version to show is the unstable one unstableKubeVersion := latestVersionStr - unstableKubeDNSVersion := dns.GetKubeDNSVersion(latestVersion) + unstableKubeDNSVersion := dns.GetDNSVersion(latestVersion, kubeadmconstants.KubeDNS) // Ẃe should not display alpha.0. The previous branch's beta/rc versions are more relevant due how the kube branching process works. if latestVersion.PreRelease() == "alpha.0" { unstableKubeVersion = previousBranchLatestVersionStr - unstableKubeDNSVersion = dns.GetKubeDNSVersion(previousBranchLatestVersion) + unstableKubeDNSVersion = dns.GetDNSVersion(previousBranchLatestVersion, kubeadmconstants.KubeDNS) } upgrades = append(upgrades, Upgrade{ diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/compute_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/compute_test.go index 3c632ad21..45f1d781d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/compute_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/compute_test.go @@ -399,7 +399,7 @@ func TestGetAvailableUpgrades(t *testing.T) { After: ClusterState{ KubeVersion: "v1.9.0-alpha.1", KubeadmVersion: "v1.9.0-alpha.1", - DNSVersion: "1.14.5", + DNSVersion: "1.14.7", }, }, }, diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/configuration.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/configuration.go index a00dafd1a..589578e97 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/configuration.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/configuration.go @@ -30,7 +30,7 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/constants" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // FetchConfiguration fetches configuration required for upgrading your cluster from a file (which has precedence) or a ConfigMap in the cluster @@ -64,7 +64,7 @@ func loadConfigurationBytes(client clientset.Interface, w io.Writer, cfgPath str configMap, err := client.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get(constants.MasterConfigurationConfigMap, metav1.GetOptions{}) if apierrors.IsNotFound(err) { fmt.Printf("[upgrade/config] In order to upgrade, a ConfigMap called %q in the %s namespace must exist.\n", constants.MasterConfigurationConfigMap, metav1.NamespaceSystem) - fmt.Println("[upgrade/config] Without this information, 'kubeadm upgrade' don't how to configure your upgraded cluster.") + fmt.Println("[upgrade/config] Without this information, 'kubeadm upgrade' won't know how to configure your upgraded cluster.") fmt.Println("") fmt.Println("[upgrade/config] Next steps:") fmt.Printf("\t- OPTION 1: Run 'kubeadm config upload from-flags' and specify the same CLI arguments you passed to 'kubeadm init' when you created your master.\n") @@ -86,12 +86,12 @@ func bytesToValidatedMasterConfig(b []byte) (*kubeadmapiext.MasterConfiguration, finalCfg := &kubeadmapiext.MasterConfiguration{} internalcfg := &kubeadmapi.MasterConfiguration{} - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), b, cfg); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), b, cfg); err != nil { return nil, fmt.Errorf("unable to decode config from bytes: %v", err) } // Default and convert to the internal version - api.Scheme.Default(cfg) - api.Scheme.Convert(cfg, internalcfg, nil) + legacyscheme.Scheme.Default(cfg) + legacyscheme.Scheme.Convert(cfg, internalcfg, nil) // Applies dynamic defaults to settings not provided with flags if err := configutil.SetInitDynamicDefaults(internalcfg); err != nil { @@ -102,6 +102,6 @@ func bytesToValidatedMasterConfig(b []byte) (*kubeadmapiext.MasterConfiguration, return nil, err } // Finally converts back to the external version - api.Scheme.Convert(internalcfg, finalCfg, nil) + legacyscheme.Scheme.Convert(internalcfg, finalCfg, nil) return finalCfg, nil } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/postupgrade.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/postupgrade.go index b2c18df2d..3452413c3 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/postupgrade.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/postupgrade.go @@ -25,12 +25,11 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo" nodebootstraptoken "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node" "k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig" - "k8s.io/kubernetes/pkg/util/version" ) // PerformPostUpgradeTasks runs nearly the same functions as 'kubeadm init' would do // Note that the markmaster phase is left out, not needed, and no token is created as that doesn't belong to the upgrade -func PerformPostUpgradeTasks(client clientset.Interface, cfg *kubeadmapi.MasterConfiguration, k8sVersion *version.Version) error { +func PerformPostUpgradeTasks(client clientset.Interface, cfg *kubeadmapi.MasterConfiguration) error { errs := []error{} // Upload currently used configuration to the cluster @@ -41,17 +40,17 @@ func PerformPostUpgradeTasks(client clientset.Interface, cfg *kubeadmapi.MasterC } // Create/update RBAC rules that makes the bootstrap tokens able to post CSRs - if err := nodebootstraptoken.AllowBootstrapTokensToPostCSRs(client, k8sVersion); err != nil { + if err := nodebootstraptoken.AllowBootstrapTokensToPostCSRs(client); err != nil { errs = append(errs, err) } // Create/update RBAC rules that makes the bootstrap tokens able to get their CSRs approved automatically - if err := nodebootstraptoken.AutoApproveNodeBootstrapTokens(client, k8sVersion); err != nil { + if err := nodebootstraptoken.AutoApproveNodeBootstrapTokens(client); err != nil { errs = append(errs, err) } // Create/update RBAC rules that makes the 1.8.0+ nodes to rotate certificates and get their CSRs approved automatically - if err := nodebootstraptoken.AutoApproveNodeCertificateRotation(client, k8sVersion); err != nil { + if err := nodebootstraptoken.AutoApproveNodeCertificateRotation(client); err != nil { errs = append(errs, err) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods.go index f368a6695..bc04d8e88 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods.go @@ -124,7 +124,9 @@ func StaticPodControlPlane(waiter apiclient.Waiter, pathMgr StaticPodPathManager // Write the updated static Pod manifests into the temporary directory fmt.Printf("[upgrade/staticpods] Writing upgraded Static Pod manifests to %q\n", pathMgr.TempManifestDir()) err = controlplane.CreateInitStaticPodManifestFiles(pathMgr.TempManifestDir(), cfg) - + if err != nil { + return fmt.Errorf("error creating init static pod manifest files: %v", err) + } for _, component := range constants.MasterComponents { // The old manifest is here; in the /etc/kubernetes/manifests/ currentManifestPath := pathMgr.RealManifestPath(component) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods_test.go index accde5510..aed7a1458 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/staticpods_test.go @@ -31,7 +31,7 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) const ( @@ -349,9 +349,9 @@ func getAPIServerHash(dir string) (string, error) { func getConfig(version string) (*kubeadmapi.MasterConfiguration, error) { externalcfg := &kubeadmapiext.MasterConfiguration{} internalcfg := &kubeadmapi.MasterConfiguration{} - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), []byte(fmt.Sprintf(testConfiguration, version)), externalcfg); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), []byte(fmt.Sprintf(testConfiguration, version)), externalcfg); err != nil { return nil, fmt.Errorf("unable to decode config: %v", err) } - api.Scheme.Convert(externalcfg, internalcfg, nil) + legacyscheme.Scheme.Convert(externalcfg, internalcfg, nil) return internalcfg, nil } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/versiongetter.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/versiongetter.go index e0289176c..13c65294e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/versiongetter.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/upgrade/versiongetter.go @@ -86,7 +86,7 @@ func (g *KubeVersionGetter) KubeadmVersion() (string, *versionutil.Version, erro func (g *KubeVersionGetter) VersionFromCILabel(ciVersionLabel, description string) (string, *versionutil.Version, error) { versionStr, err := kubeadmutil.KubernetesReleaseVersion(ciVersionLabel) if err != nil { - return "", nil, fmt.Errorf("Couldn't fetch latest %s version from the internet: %v", description, err) + return "", nil, fmt.Errorf("Couldn't fetch latest %s from the internet: %v", description, err) } if description != "" { @@ -95,7 +95,7 @@ func (g *KubeVersionGetter) VersionFromCILabel(ciVersionLabel, description strin ver, err := versionutil.ParseSemantic(versionStr) if err != nil { - return "", nil, fmt.Errorf("Couldn't parse latest %s version: %v", description, err) + return "", nil, fmt.Errorf("Couldn't parse latest %s: %v", description, err) } return versionStr, ver, nil } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/BUILD index bdb27d452..332592656 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/BUILD @@ -15,7 +15,7 @@ go_library( "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util/apiclient:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -45,7 +45,7 @@ go_test( "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme: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/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go index 6208d568b..42ed20d47 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go @@ -28,7 +28,7 @@ import ( kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // UploadConfiguration saves the MasterConfiguration used for later reference (when upgrading for instance) @@ -38,7 +38,7 @@ func UploadConfiguration(cfg *kubeadmapi.MasterConfiguration, client clientset.I // Convert cfg to the external version as that's the only version of the API that can be deserialized later externalcfg := &kubeadmapiext.MasterConfiguration{} - api.Scheme.Convert(cfg, externalcfg, nil) + legacyscheme.Scheme.Convert(cfg, externalcfg, nil) // Removes sensitive info from the data that will be stored in the config map externalcfg.Token = "" diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig_test.go index dfc834ed5..69b6fd783 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig/uploadconfig_test.go @@ -27,7 +27,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) func TestUploadConfiguration(t *testing.T) { @@ -99,12 +99,12 @@ func TestUploadConfiguration(t *testing.T) { decodedExtCfg := &kubeadmapiext.MasterConfiguration{} decodedCfg := &kubeadmapi.MasterConfiguration{} - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), []byte(configData), decodedExtCfg); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), []byte(configData), decodedExtCfg); err != nil { t.Errorf("unable to decode config from bytes: %v", err) } // Default and convert to the internal version - api.Scheme.Default(decodedExtCfg) - api.Scheme.Convert(decodedExtCfg, decodedCfg, nil) + legacyscheme.Scheme.Default(decodedExtCfg) + legacyscheme.Scheme.Convert(decodedExtCfg, decodedCfg, nil) if decodedCfg.KubernetesVersion != cfg.KubernetesVersion { t.Errorf("Decoded value doesn't match, decoded = %#v, expected = %#v", decodedCfg.KubernetesVersion, cfg.KubernetesVersion) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/BUILD index 84c515835..09382e316 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/BUILD @@ -10,24 +10,33 @@ go_library( name = "go_default_library", srcs = [ "checks.go", + "checks_unix.go", "utils.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "checks_windows.go", + ], + "//conditions:default": [], + }), importpath = "k8s.io/kubernetes/cmd/kubeadm/app/preflight", deps = [ "//cmd/kube-apiserver/app/options:go_default_library", "//cmd/kube-controller-manager/app/options:go_default_library", "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/kubeapiserver/authorizer/modes:go_default_library", + "//pkg/registry/core/service/ipallocator:go_default_library", "//pkg/util/initsystem:go_default_library", "//pkg/util/version:go_default_library", "//pkg/version:go_default_library", - "//plugin/cmd/kube-scheduler/app/options:go_default_library", + "//plugin/cmd/kube-scheduler/app:go_default_library", "//test/e2e_node/system:go_default_library", "//vendor/github.com/PuerkitoBio/purell:go_default_library", "//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", ], ) @@ -42,6 +51,7 @@ go_test( deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//vendor/github.com/renstrom/dedent:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks.go index 0925e1132..2efef9137 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks.go @@ -26,8 +26,8 @@ import ( "net" "net/http" "os" - "os/exec" "path/filepath" + "runtime" "strings" "time" @@ -40,21 +40,25 @@ import ( "net/url" + netutil "k8s.io/apimachinery/pkg/util/net" apiservoptions "k8s.io/kubernetes/cmd/kube-apiserver/app/options" cmoptions "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/apis/core/validation" authzmodes "k8s.io/kubernetes/pkg/kubeapiserver/authorizer/modes" + "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/util/initsystem" versionutil "k8s.io/kubernetes/pkg/util/version" kubeadmversion "k8s.io/kubernetes/pkg/version" - schoptions "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options" + schedulerapp "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app" "k8s.io/kubernetes/test/e2e_node/system" + utilsexec "k8s.io/utils/exec" ) const ( bridgenf = "/proc/sys/net/bridge/bridge-nf-call-iptables" + bridgenf6 = "/proc/sys/net/bridge/bridge-nf-call-ip6tables" externalEtcdRequestTimeout = time.Duration(10 * time.Second) externalEtcdRequestRetries = 3 externalEtcdRequestInterval = time.Duration(5 * time.Second) @@ -79,6 +83,21 @@ type Checker interface { Check() (warnings, errors []error) } +// CRICheck verifies the container runtime through the CRI. +type CRICheck struct { + socket string + exec utilsexec.Interface +} + +// Check validates the container runtime through the CRI. +func (criCheck CRICheck) Check() (warnings, errors []error) { + if err := criCheck.exec.Command("sh", "-c", fmt.Sprintf("crictl -r %s info", criCheck.socket)).Run(); err != nil { + errors = append(errors, fmt.Errorf("unable to check if the container runtime at %q is running: %s", criCheck.socket, err)) + return warnings, errors + } + return warnings, errors +} + // ServiceCheck verifies that the given service is enabled and active. If we do not // detect a supported init system however, all checks are skipped and a warning is // returned. @@ -163,18 +182,8 @@ func (poc PortOpenCheck) Check() (warnings, errors []error) { return nil, errors } -// IsRootCheck verifies user is root -type IsRootCheck struct{} - -// Check validates if an user has root privileges. -func (irc IsRootCheck) Check() (warnings, errors []error) { - errors = []error{} - if os.Getuid() != 0 { - errors = append(errors, fmt.Errorf("user is not running as root")) - } - - return nil, errors -} +// IsPrivilegedUserCheck verifies user is privileged (linux - root, windows - Administrator) +type IsPrivilegedUserCheck struct{} // DirAvailableCheck checks if the given directory either does not exist, or is empty. type DirAvailableCheck struct { @@ -265,11 +274,12 @@ func (fcc FileContentCheck) Check() (warnings, errors []error) { type InPathCheck struct { executable string mandatory bool + exec utilsexec.Interface } // Check validates if the given executable is present in the path. func (ipc InPathCheck) Check() (warnings, errors []error) { - _, err := exec.LookPath(ipc.executable) + _, err := ipc.exec.LookPath(ipc.executable) if err != nil { if ipc.mandatory { // Return as an error: @@ -332,6 +342,56 @@ func (hst HTTPProxyCheck) Check() (warnings, errors []error) { return nil, nil } +// HTTPProxyCIDRCheck checks if https connection to specific subnet is going +// to be done directly or over proxy. If proxy detected, it will return warning. +// Similar to HTTPProxyCheck above, but operates with subnets and uses API +// machinery transport defaults to simulate kube-apiserver accessing cluster +// services and pods. +type HTTPProxyCIDRCheck struct { + Proto string + CIDR string +} + +// Check validates http connectivity to first IP address in the CIDR. +// If it is not directly connected and goes via proxy it will produce warning. +func (subnet HTTPProxyCIDRCheck) Check() (warnings, errors []error) { + + if len(subnet.CIDR) == 0 { + return nil, nil + } + + _, cidr, err := net.ParseCIDR(subnet.CIDR) + if err != nil { + return nil, []error{fmt.Errorf("error parsing CIDR %q: %v", subnet.CIDR, err)} + } + + testIP, err := ipallocator.GetIndexedIP(cidr, 1) + if err != nil { + return nil, []error{fmt.Errorf("unable to get first IP address from the given CIDR (%s): %v", cidr.String(), err)} + } + + testIPstring := testIP.String() + if len(testIP) == net.IPv6len { + testIPstring = fmt.Sprintf("[%s]:1234", testIP) + } + url := fmt.Sprintf("%s://%s/", subnet.Proto, testIPstring) + + req, err := http.NewRequest("GET", url, nil) + if err != nil { + return nil, []error{err} + } + + // Utilize same transport defaults as it will be used by API server + proxy, err := netutil.SetOldTransportDefaults(&http.Transport{}).Proxy(req) + if err != nil { + return nil, []error{err} + } + if proxy != nil { + return []error{fmt.Errorf("connection to %q uses proxy %q. This may lead to malfunctional cluster setup. Make sure that Pod and Services IP ranges specified correctly as exceptions in proxy configuration", subnet.CIDR, proxy)}, nil + } + return nil, nil +} + // ExtraArgsCheck checks if arguments are valid. type ExtraArgsCheck struct { APIServerExtraArgs map[string]string @@ -365,16 +425,18 @@ func (eac ExtraArgsCheck) Check() (warnings, errors []error) { warnings = append(warnings, argsCheck("kube-controller-manager", eac.ControllerManagerExtraArgs, flags)...) } if len(eac.SchedulerExtraArgs) > 0 { + command := schedulerapp.NewSchedulerCommand() flags := pflag.NewFlagSet("", pflag.ContinueOnError) - s := schoptions.NewSchedulerServer() - s.AddFlags(flags) + flags.AddFlagSet(command.Flags()) warnings = append(warnings, argsCheck("kube-scheduler", eac.SchedulerExtraArgs, flags)...) } return warnings, nil } // SystemVerificationCheck defines struct used for for running the system verification node check in test/e2e_node/system -type SystemVerificationCheck struct{} +type SystemVerificationCheck struct { + CRISocket string +} // Check runs all individual checks func (sysver SystemVerificationCheck) Check() (warnings, errors []error) { @@ -385,12 +447,21 @@ func (sysver SystemVerificationCheck) Check() (warnings, errors []error) { var errs []error var warns []error - // All the validators we'd like to run: + // All the common validators we'd like to run: var validators = []system.Validator{ - &system.OSValidator{Reporter: reporter}, - &system.KernelValidator{Reporter: reporter}, - &system.CgroupsValidator{Reporter: reporter}, - &system.DockerValidator{Reporter: reporter}, + &system.KernelValidator{Reporter: reporter}} + + // run the docker validator only with dockershim + if sysver.CRISocket == "/var/run/dockershim.sock" { + // https://github.com/kubernetes/kubeadm/issues/533 + validators = append(validators, &system.DockerValidator{Reporter: reporter}) + } + + if runtime.GOOS == "linux" { + //add linux validators + validators = append(validators, + &system.OSValidator{Reporter: reporter}, + &system.CgroupsValidator{Reporter: reporter}) } // Run all validators @@ -450,7 +521,9 @@ func (kubever KubernetesVersionCheck) Check() (warnings, errors []error) { } // KubeletVersionCheck validates installed kubelet version -type KubeletVersionCheck struct{} +type KubeletVersionCheck struct { + KubernetesVersion string +} // Check validates kubelet version. It should be not less than minimal supported version func (kubever KubeletVersionCheck) Check() (warnings, errors []error) { @@ -461,7 +534,17 @@ func (kubever KubeletVersionCheck) Check() (warnings, errors []error) { if kubeletVersion.LessThan(kubeadmconstants.MinimumKubeletVersion) { return nil, []error{fmt.Errorf("Kubelet version %q is lower than kubadm can support. Please upgrade kubelet", kubeletVersion)} } - return nil, []error{} + + if kubever.KubernetesVersion != "" { + k8sVersion, err := versionutil.ParseSemantic(kubever.KubernetesVersion) + if err != nil { + return nil, []error{fmt.Errorf("couldn't parse kubernetes version %q: %v", kubever.KubernetesVersion, err)} + } + if kubeletVersion.Major() > k8sVersion.Major() || kubeletVersion.Minor() > k8sVersion.Minor() { + return nil, []error{fmt.Errorf("the kubelet version is higher than the control plane version. This is not a supported version skew and may lead to a malfunctional cluster. Kubelet version: %q Control plane version: %q", kubeletVersion, k8sVersion)} + } + } + return nil, nil } // SwapCheck warns if swap is enabled @@ -485,7 +568,7 @@ func (swc SwapCheck) Check() (warnings, errors []error) { } if len(buf) > 1 { - return []error{fmt.Errorf("running with swap on is not supported. Please disable swap or set kubelet's --fail-swap-on flag to false")}, nil + return nil, []error{fmt.Errorf("running with swap on is not supported. Please disable swap")} } return nil, nil @@ -629,43 +712,57 @@ func getEtcdVersionResponse(client *http.Client, url string, target interface{}) } // RunInitMasterChecks executes all individual, applicable to Master node checks. -func RunInitMasterChecks(cfg *kubeadmapi.MasterConfiguration) error { +func RunInitMasterChecks(execer utilsexec.Interface, cfg *kubeadmapi.MasterConfiguration, criSocket string) error { // First, check if we're root separately from the other preflight checks and fail fast if err := RunRootCheckOnly(); err != nil { return err } + // check if we can use crictl to perform checks via the CRI + criCtlChecker := InPathCheck{executable: "crictl", mandatory: false, exec: execer} + warns, _ := criCtlChecker.Check() + useCRI := len(warns) == 0 + checks := []Checker{ KubernetesVersionCheck{KubernetesVersion: cfg.KubernetesVersion, KubeadmVersion: kubeadmversion.Get().GitVersion}, - SystemVerificationCheck{}, - IsRootCheck{}, + SystemVerificationCheck{CRISocket: criSocket}, + IsPrivilegedUserCheck{}, HostnameCheck{nodeName: cfg.NodeName}, - KubeletVersionCheck{}, + KubeletVersionCheck{KubernetesVersion: cfg.KubernetesVersion}, ServiceCheck{Service: "kubelet", CheckIfActive: false}, - ServiceCheck{Service: "docker", CheckIfActive: true}, FirewalldCheck{ports: []int{int(cfg.API.BindPort), 10250}}, PortOpenCheck{port: int(cfg.API.BindPort)}, PortOpenCheck{port: 10250}, PortOpenCheck{port: 10251}, PortOpenCheck{port: 10252}, - HTTPProxyCheck{Proto: "https", Host: cfg.API.AdvertiseAddress, Port: int(cfg.API.BindPort)}, DirAvailableCheck{Path: filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName)}, FileContentCheck{Path: bridgenf, Content: []byte{'1'}}, SwapCheck{}, - InPathCheck{executable: "ip", mandatory: true}, - InPathCheck{executable: "iptables", mandatory: true}, - InPathCheck{executable: "mount", mandatory: true}, - InPathCheck{executable: "nsenter", mandatory: true}, - InPathCheck{executable: "ebtables", mandatory: false}, - InPathCheck{executable: "ethtool", mandatory: false}, - InPathCheck{executable: "socat", mandatory: false}, - InPathCheck{executable: "tc", mandatory: false}, - InPathCheck{executable: "touch", mandatory: false}, + InPathCheck{executable: "ip", mandatory: true, exec: execer}, + InPathCheck{executable: "iptables", mandatory: true, exec: execer}, + InPathCheck{executable: "mount", mandatory: true, exec: execer}, + InPathCheck{executable: "nsenter", mandatory: true, exec: execer}, + InPathCheck{executable: "ebtables", mandatory: false, exec: execer}, + InPathCheck{executable: "ethtool", mandatory: false, exec: execer}, + InPathCheck{executable: "socat", mandatory: false, exec: execer}, + InPathCheck{executable: "tc", mandatory: false, exec: execer}, + InPathCheck{executable: "touch", mandatory: false, exec: execer}, + criCtlChecker, ExtraArgsCheck{ APIServerExtraArgs: cfg.APIServerExtraArgs, ControllerManagerExtraArgs: cfg.ControllerManagerExtraArgs, SchedulerExtraArgs: cfg.SchedulerExtraArgs, }, + HTTPProxyCheck{Proto: "https", Host: cfg.API.AdvertiseAddress, Port: int(cfg.API.BindPort)}, + HTTPProxyCIDRCheck{Proto: "https", CIDR: cfg.Networking.ServiceSubnet}, + HTTPProxyCIDRCheck{Proto: "https", CIDR: cfg.Networking.PodSubnet}, + } + + if useCRI { + checks = append(checks, CRICheck{socket: criSocket, exec: execer}) + } else { + // assume docker + checks = append(checks, ServiceCheck{Service: "docker", CheckIfActive: true}) } if len(cfg.Etcd.Endpoints) == 0 { @@ -700,47 +797,78 @@ func RunInitMasterChecks(cfg *kubeadmapi.MasterConfiguration) error { } } + if ip := net.ParseIP(cfg.API.AdvertiseAddress); ip != nil { + if ip.To4() == nil && ip.To16() != nil { + checks = append(checks, + FileContentCheck{Path: bridgenf6, Content: []byte{'1'}}, + ) + } + } return RunChecks(checks, os.Stderr) } // RunJoinNodeChecks executes all individual, applicable to node checks. -func RunJoinNodeChecks(cfg *kubeadmapi.NodeConfiguration) error { +func RunJoinNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.NodeConfiguration, criSocket string) error { // First, check if we're root separately from the other preflight checks and fail fast if err := RunRootCheckOnly(); err != nil { return err } + // check if we can use crictl to perform checks via the CRI + criCtlChecker := InPathCheck{executable: "crictl", mandatory: false, exec: execer} + warns, _ := criCtlChecker.Check() + useCRI := len(warns) == 0 + checks := []Checker{ - SystemVerificationCheck{}, - IsRootCheck{}, + SystemVerificationCheck{CRISocket: criSocket}, + IsPrivilegedUserCheck{}, HostnameCheck{cfg.NodeName}, KubeletVersionCheck{}, ServiceCheck{Service: "kubelet", CheckIfActive: false}, - ServiceCheck{Service: "docker", CheckIfActive: true}, PortOpenCheck{port: 10250}, DirAvailableCheck{Path: filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName)}, FileAvailableCheck{Path: cfg.CACertPath}, FileAvailableCheck{Path: filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.KubeletKubeConfigFileName)}, - FileContentCheck{Path: bridgenf, Content: []byte{'1'}}, - SwapCheck{}, - InPathCheck{executable: "ip", mandatory: true}, - InPathCheck{executable: "iptables", mandatory: true}, - InPathCheck{executable: "mount", mandatory: true}, - InPathCheck{executable: "nsenter", mandatory: true}, - InPathCheck{executable: "ebtables", mandatory: false}, - InPathCheck{executable: "ethtool", mandatory: false}, - InPathCheck{executable: "socat", mandatory: false}, - InPathCheck{executable: "tc", mandatory: false}, - InPathCheck{executable: "touch", mandatory: false}, } - + if useCRI { + checks = append(checks, CRICheck{socket: criSocket, exec: execer}) + } else { + // assume docker + checks = append(checks, ServiceCheck{Service: "docker", CheckIfActive: true}) + } + //non-windows checks + if runtime.GOOS == "linux" { + checks = append(checks, + FileContentCheck{Path: bridgenf, Content: []byte{'1'}}, + SwapCheck{}, + InPathCheck{executable: "ip", mandatory: true, exec: execer}, + InPathCheck{executable: "iptables", mandatory: true, exec: execer}, + InPathCheck{executable: "mount", mandatory: true, exec: execer}, + InPathCheck{executable: "nsenter", mandatory: true, exec: execer}, + InPathCheck{executable: "ebtables", mandatory: false, exec: execer}, + InPathCheck{executable: "ethtool", mandatory: false, exec: execer}, + InPathCheck{executable: "socat", mandatory: false, exec: execer}, + InPathCheck{executable: "tc", mandatory: false, exec: execer}, + InPathCheck{executable: "touch", mandatory: false, exec: execer}, + criCtlChecker) + } + + if len(cfg.DiscoveryTokenAPIServers) > 0 { + if ip := net.ParseIP(cfg.DiscoveryTokenAPIServers[0]); ip != nil { + if ip.To4() == nil && ip.To16() != nil { + checks = append(checks, + FileContentCheck{Path: bridgenf6, Content: []byte{'1'}}, + ) + } + } + } return RunChecks(checks, os.Stderr) } -// RunRootCheckOnly initializes cheks slice of structs and call RunChecks +// RunRootCheckOnly initializes checks slice of structs and call RunChecks func RunRootCheckOnly() error { checks := []Checker{ - IsRootCheck{}, + IsPrivilegedUserCheck{}, } return RunChecks(checks, os.Stderr) diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_test.go index 18efdfd1a..f2703a0da 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_test.go @@ -20,13 +20,17 @@ import ( "bytes" "fmt" "io/ioutil" + "path/filepath" + "strings" "testing" "github.com/renstrom/dedent" + "net/http" "os" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + "k8s.io/utils/exec" ) var ( @@ -205,10 +209,16 @@ func TestRunInitMasterChecks(t *testing.T) { }, expected: false, }, + { + cfg: &kubeadmapi.MasterConfiguration{ + API: kubeadmapi.API{AdvertiseAddress: "2001:1234::1:15"}, + }, + expected: false, + }, } for _, rt := range tests { - actual := RunInitMasterChecks(rt.cfg) + actual := RunInitMasterChecks(exec.New(), rt.cfg, "") if (actual == nil) != rt.expected { t.Errorf( "failed RunInitMasterChecks:\n\texpected: %t\n\t actual: %t\n\t error: %v", @@ -229,10 +239,22 @@ func TestRunJoinNodeChecks(t *testing.T) { cfg: &kubeadmapi.NodeConfiguration{}, expected: false, }, + { + cfg: &kubeadmapi.NodeConfiguration{ + DiscoveryTokenAPIServers: []string{"192.168.1.15"}, + }, + expected: false, + }, + { + cfg: &kubeadmapi.NodeConfiguration{ + DiscoveryTokenAPIServers: []string{"2001:1234::1:15"}, + }, + expected: false, + }, } for _, rt := range tests { - actual := RunJoinNodeChecks(rt.cfg) + actual := RunJoinNodeChecks(exec.New(), rt.cfg, "") if (actual == nil) != rt.expected { t.Errorf( "failed RunJoinNodeChecks:\n\texpected: %t\n\t actual: %t", @@ -259,8 +281,8 @@ func TestRunChecks(t *testing.T) { {[]Checker{FileContentCheck{Path: "/does/not/exist"}}, false, ""}, {[]Checker{FileContentCheck{Path: "/"}}, true, ""}, {[]Checker{FileContentCheck{Path: "/", Content: []byte("does not exist")}}, false, ""}, - {[]Checker{InPathCheck{executable: "foobarbaz"}}, true, "[preflight] WARNING: foobarbaz not found in system path\n"}, - {[]Checker{InPathCheck{executable: "foobarbaz", mandatory: true}}, false, ""}, + {[]Checker{InPathCheck{executable: "foobarbaz", exec: exec.New()}}, true, "[preflight] WARNING: foobarbaz not found in system path\n"}, + {[]Checker{InPathCheck{executable: "foobarbaz", mandatory: true, exec: exec.New()}}, false, ""}, {[]Checker{ExtraArgsCheck{ APIServerExtraArgs: map[string]string{"secure-port": "1234"}, ControllerManagerExtraArgs: map[string]string{"use-service-account-credentials": "true"}, @@ -432,3 +454,163 @@ func TestKubernetesVersionCheck(t *testing.T) { } } } + +func TestHTTPProxyCIDRCheck(t *testing.T) { + var tests = []struct { + check HTTPProxyCIDRCheck + expectWarnings bool + }{ + { + check: HTTPProxyCIDRCheck{ + Proto: "https", + CIDR: "127.0.0.0/8", + }, // Loopback addresses never should produce proxy warnings + expectWarnings: false, + }, + { + check: HTTPProxyCIDRCheck{ + Proto: "https", + CIDR: "10.96.0.0/12", + }, // Expected to be accessed directly, we set NO_PROXY to 10.0.0.0/8 + expectWarnings: false, + }, + { + check: HTTPProxyCIDRCheck{ + Proto: "https", + CIDR: "192.168.0.0/16", + }, // Expected to go via proxy as this range is not listed in NO_PROXY + expectWarnings: true, + }, + { + check: HTTPProxyCIDRCheck{ + Proto: "https", + CIDR: "2001:db8::/56", + }, // Expected to be accessed directly, part of 2001:db8::/48 in NO_PROXY + expectWarnings: false, + }, + { + check: HTTPProxyCIDRCheck{ + Proto: "https", + CIDR: "2001:db8:1::/56", + }, // Expected to go via proxy, range is not in 2001:db8::/48 + expectWarnings: true, + }, + } + + // Save current content of *_proxy and *_PROXY variables. + savedEnv := resetProxyEnv() + defer restoreEnv(savedEnv) + t.Log("Saved environment: ", savedEnv) + + os.Setenv("HTTP_PROXY", "http://proxy.example.com:3128") + os.Setenv("NO_PROXY", "example.com,10.0.0.0/8,2001:db8::/48") + + // Check if we can reliably execute tests: + // ProxyFromEnvironment caches the *_proxy environment variables and + // if ProxyFromEnvironment already executed before our test with empty + // HTTP_PROXY it will make these tests return false positive failures + req, err := http.NewRequest("GET", "http://host.fake.tld/", nil) + if err != nil { + t.Fatalf("unexpected err: %v", err) + } + proxy, err := http.ProxyFromEnvironment(req) + if err != nil { + t.Fatalf("unexpected err: %v", err) + } + if proxy == nil { + t.Skip("test skipped as ProxyFromEnvironment already initialized in environment without defined HTTP proxy") + } + t.Log("http.ProxyFromEnvironment is usable, continue executing test") + + for _, rt := range tests { + warning, _ := rt.check.Check() + if (warning != nil) != rt.expectWarnings { + t.Errorf( + "failed HTTPProxyCIDRCheck:\n\texpected: %t\n\t actual: %t (CIDR:%s). Warnings: %v", + rt.expectWarnings, + (warning != nil), + rt.check.CIDR, + warning, + ) + } + } +} + +// resetProxyEnv is helper function that unsets all *_proxy variables +// and return previously set values as map. This can be used to restore +// original state of the environment. +func resetProxyEnv() map[string]string { + savedEnv := make(map[string]string) + for _, e := range os.Environ() { + pair := strings.Split(e, "=") + if strings.HasSuffix(strings.ToLower(pair[0]), "_proxy") { + savedEnv[pair[0]] = pair[1] + os.Unsetenv(pair[0]) + } + } + return savedEnv +} + +// restoreEnv is helper function to restores values +// of environment variables from saved state in the map +func restoreEnv(e map[string]string) { + for k, v := range e { + os.Setenv(k, v) + } +} + +func TestKubeletVersionCheck(t *testing.T) { + type T struct { + kubeletVersion string + k8sVersion string + expectErrors bool + expectWarnings bool + } + + cases := []T{ + {"v1.10.2", "", false, false}, // check minimally supported version when there is no information about control plane + {"v1.7.3", "v1.7.8", true, false}, // too old kubelet (older than kubeadmconstants.MinimumKubeletVersion), should fail. + {"v1.9.0", "v1.9.5", false, false}, // kubelet within same major.minor as control plane + {"v1.9.5", "v1.9.1", false, false}, // kubelet is newer, but still within same major.minor as control plane + {"v1.9.0", "v1.10.1", false, false}, // kubelet is lower than control plane, but newer than minimally supported + {"v1.10.0-alpha.1", "v1.9.1", true, false}, // kubelet is newer (development build) than control plane, should fail. + {"v1.10.0", "v1.9.5", true, false}, // kubelet is newer (release) than control plane, should fail. + } + + dir, err := ioutil.TempDir("", "test-kubelet-version-check") + if err != nil { + t.Errorf("Failed to create directory for testing GetKubeletVersion: %v", err) + } + defer os.RemoveAll(dir) + + // We don't want to call real kubelet or something else in $PATH + oldPATH := os.Getenv("PATH") + defer os.Setenv("PATH", oldPATH) + + os.Setenv("PATH", dir) + + kubeletFn := filepath.Join(dir, "kubelet") + for _, tc := range cases { + + content := []byte(fmt.Sprintf("#!/bin/sh\necho 'Kubernetes %s'", tc.kubeletVersion)) + if err := ioutil.WriteFile(kubeletFn, content, 0755); err != nil { + t.Errorf("Error creating test stub file %s: %v", kubeletFn, err) + } + + check := KubeletVersionCheck{KubernetesVersion: tc.k8sVersion} + warnings, errors := check.Check() + + switch { + case warnings != nil && !tc.expectWarnings: + t.Errorf("KubeletVersionCheck: unexpected warnings for kubelet version %q and kubernetes version %q. Warnings: %v", tc.kubeletVersion, tc.k8sVersion, warnings) + case warnings == nil && tc.expectWarnings: + t.Errorf("KubeletVersionCheck: expected warnings for kubelet version %q and kubernetes version %q but got nothing", tc.kubeletVersion, tc.k8sVersion) + case errors != nil && !tc.expectErrors: + t.Errorf("KubeletVersionCheck: unexpected errors for kubelet version %q and kubernetes version %q. errors: %v", tc.kubeletVersion, tc.k8sVersion, errors) + case errors == nil && tc.expectErrors: + t.Errorf("KubeletVersionCheck: expected errors for kubelet version %q and kubernetes version %q but got nothing", tc.kubeletVersion, tc.k8sVersion) + } + + } + +} diff --git a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/configurator_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_unix.go similarity index 65% rename from vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/configurator_test.go rename to vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_unix.go index c4bc1bd14..1f2fb754e 100644 --- a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/configurator_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_unix.go @@ -1,3 +1,5 @@ +// +build !windows + /* Copyright 2017 The Kubernetes Authors. @@ -14,18 +16,19 @@ See the License for the specific language governing permissions and limitations under the License. */ -package app +package preflight import ( - "testing" + "fmt" + "os" ) -func TestSchedulerConfiguratorFailure(t *testing.T) { - sc := &schedulerConfigurator{ - // policyfile and algorithm are intentionally undefined. - } - _, err := sc.Create() - if err == nil { - t.Fatalf("Expected error message when creating with incomplete configurator.") +// Check validates if an user has elevated (root) privileges. +func (ipuc IsPrivilegedUserCheck) Check() (warnings, errors []error) { + errors = []error{} + if os.Getuid() != 0 { + errors = append(errors, fmt.Errorf("user is not running as root")) } + + return nil, errors } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_windows.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_windows.go new file mode 100644 index 000000000..1cc9bb3e5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/preflight/checks_windows.go @@ -0,0 +1,44 @@ +// +build windows + +/* +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 preflight + +import ( + "fmt" + "os/exec" + "strings" +) + +// Check validates if an user has elevated (administrator) privileges. +func (ipuc IsPrivilegedUserCheck) Check() (warnings, errors []error) { + errors = []error{} + + // The "Well-known SID" of Administrator group is S-1-5-32-544 + // The following powershell will return "True" if run as an administrator, "False" otherwise + // See https://msdn.microsoft.com/en-us/library/cc980032.aspx + args := []string{"[bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match \"S-1-5-32-544\")"} + isAdmin, err := exec.Command("powershell", args...).Output() + + if err != nil { + errors = append(errors, fmt.Errorf("unable to determine if user is running as administrator: %s", err)) + } else if strings.EqualFold(strings.TrimSpace(string(isAdmin)), "false") { + errors = append(errors, fmt.Errorf("user is not running as administrator")) + } + + return nil, errors +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/clientbacked_dryrun.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/clientbacked_dryrun.go index 2fbf95bdb..e531045fd 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/clientbacked_dryrun.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient/clientbacked_dryrun.go @@ -75,6 +75,9 @@ func (clg *ClientBackedDryRunGetter) HandleGetAction(action core.GetAction) (boo } unversionedObj, err := rc.Get(action.GetName(), metav1.GetOptions{}) + if err != nil { + return true, nil, err + } // If the unversioned object does not have .apiVersion; the inner object is probably nil if len(unversionedObj.GetAPIVersion()) == 0 { return true, nil, apierrors.NewNotFound(action.GetResource().GroupResource(), action.GetName()) @@ -100,6 +103,9 @@ func (clg *ClientBackedDryRunGetter) HandleListAction(action core.ListAction) (b } unversionedList, err := rc.List(listOpts) + if err != nil { + return true, nil, err + } // If the runtime.Object here is nil, we should return successfully with no result if unversionedList == nil { return true, unversionedList, nil diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/BUILD index c3a1e5c79..10c2574dd 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/BUILD @@ -17,7 +17,7 @@ go_library( "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/token:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/util/node:go_default_library", "//pkg/util/version:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/masterconfig.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/masterconfig.go index f96d3d112..e4414649c 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/masterconfig.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/config/masterconfig.go @@ -29,7 +29,7 @@ import ( kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" tokenutil "k8s.io/kubernetes/cmd/kubeadm/app/util/token" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/util/node" "k8s.io/kubernetes/pkg/util/version" ) @@ -72,7 +72,7 @@ func TryLoadMasterConfiguration(cfgPath string, cfg *kubeadmapiext.MasterConfigu if err != nil { return fmt.Errorf("unable to read config from %q [%v]", cfgPath, err) } - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), b, cfg); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), b, cfg); err != nil { return fmt.Errorf("unable to decode config from %q [%v]", cfgPath, err) } } @@ -96,8 +96,8 @@ func ConfigFileAndDefaultsToInternalConfig(cfgPath string, defaultversionedcfg * // Takes passed flags into account; the defaulting is executed once again enforcing assignement of // static default values to cfg only for values not provided with flags - api.Scheme.Default(defaultversionedcfg) - api.Scheme.Convert(defaultversionedcfg, internalcfg, nil) + legacyscheme.Scheme.Default(defaultversionedcfg) + legacyscheme.Scheme.Convert(defaultversionedcfg, internalcfg, nil) // Applies dynamic defaults to settings not provided with flags if err := SetInitDynamicDefaults(internalcfg); err != nil { return nil, err diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/BUILD b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/BUILD index 6400a61d1..343f457a6 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/BUILD @@ -12,6 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod", library = ":go_default_library", deps = [ + "//cmd/kubeadm/app/apis/kubeadm:go_default_library", + "//cmd/kubeadm/app/constants: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/util/intstr:go_default_library", @@ -23,6 +25,7 @@ go_library( srcs = ["utils.go"], importpath = "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod", deps = [ + "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//pkg/kubelet/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/utils.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/utils.go index 505ab1b8e..43c92e098 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/utils.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/utils.go @@ -19,19 +19,36 @@ package staticpod import ( "fmt" "io/ioutil" + "net" + "net/url" "os" + "strings" "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" + + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/util" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" ) +const ( + // kubeControllerManagerAddressArg represents the address argument of the kube-controller-manager configuration. + kubeControllerManagerAddressArg = "address" + + // kubeSchedulerAddressArg represents the address argument of the kube-scheduler configuration. + kubeSchedulerAddressArg = "address" + + // etcdListenClientURLsArg represents the listen-client-urls argument of the etcd configuration. + etcdListenClientURLsArg = "listen-client-urls" +) + // ComponentPod returns a Pod object from the container and volume specifications -func ComponentPod(container v1.Container, volumes []v1.Volume) v1.Pod { +func ComponentPod(container v1.Container, volumes map[string]v1.Volume) v1.Pod { return v1.Pod{ TypeMeta: metav1.TypeMeta{ APIVersion: "v1", @@ -48,7 +65,7 @@ func ComponentPod(container v1.Container, volumes []v1.Volume) v1.Pod { Spec: v1.PodSpec{ Containers: []v1.Container{container}, HostNetwork: true, - Volumes: volumes, + Volumes: VolumeMapToSlice(volumes), }, } } @@ -63,12 +80,11 @@ func ComponentResources(cpu string) v1.ResourceRequirements { } // ComponentProbe is a helper function building a ready v1.Probe object from some simple parameters -func ComponentProbe(port int, path string, scheme v1.URIScheme) *v1.Probe { +func ComponentProbe(cfg *kubeadmapi.MasterConfiguration, componentName string, port int, path string, scheme v1.URIScheme) *v1.Probe { return &v1.Probe{ Handler: v1.Handler{ HTTPGet: &v1.HTTPGetAction{ - // Host has to be set to "127.0.0.1" here due to that our static Pods are on the host's network - Host: "127.0.0.1", + Host: GetProbeAddress(cfg, componentName), Path: path, Port: intstr.FromInt(port), Scheme: scheme, @@ -102,6 +118,28 @@ func NewVolumeMount(name, path string, readOnly bool) v1.VolumeMount { } } +// VolumeMapToSlice returns a slice of volumes from a map's values +func VolumeMapToSlice(volumes map[string]v1.Volume) []v1.Volume { + v := make([]v1.Volume, 0, len(volumes)) + + for _, vol := range volumes { + v = append(v, vol) + } + + return v +} + +// VolumeMountMapToSlice returns a slice of volumes from a map's values +func VolumeMountMapToSlice(volumeMounts map[string]v1.VolumeMount) []v1.VolumeMount { + v := make([]v1.VolumeMount, 0, len(volumeMounts)) + + for _, volMount := range volumeMounts { + v = append(v, volMount) + } + + return v +} + // GetExtraParameters builds a list of flag arguments two string-string maps, one with default, base commands and one with overrides func GetExtraParameters(overrides map[string]string, defaults map[string]string) []string { var command []string @@ -140,3 +178,59 @@ func WriteStaticPodToDisk(componentName, manifestDir string, pod v1.Pod) error { return nil } + +// GetProbeAddress returns an IP address or 127.0.0.1 to use for liveness probes +// in static pod manifests. +func GetProbeAddress(cfg *kubeadmapi.MasterConfiguration, componentName string) string { + switch { + case componentName == kubeadmconstants.KubeAPIServer: + if cfg.API.AdvertiseAddress != "" { + return cfg.API.AdvertiseAddress + } + case componentName == kubeadmconstants.KubeControllerManager: + if addr, exists := cfg.ControllerManagerExtraArgs[kubeControllerManagerAddressArg]; exists { + return addr + } + case componentName == kubeadmconstants.KubeScheduler: + if addr, exists := cfg.SchedulerExtraArgs[kubeSchedulerAddressArg]; exists { + return addr + } + case componentName == kubeadmconstants.Etcd: + if cfg.Etcd.ExtraArgs != nil { + if arg, exists := cfg.Etcd.ExtraArgs[etcdListenClientURLsArg]; exists { + // Use the first url in the listen-client-urls if multiple url's are specified. + if strings.ContainsAny(arg, ",") { + arg = strings.Split(arg, ",")[0] + } + parsedURL, err := url.Parse(arg) + if err != nil || parsedURL.Hostname() == "" { + break + } + // Return the IP if the URL contains an address instead of a name. + if ip := net.ParseIP(parsedURL.Hostname()); ip != nil { + return ip.String() + } + // Use the local resolver to try resolving the name within the URL. + // If the name can not be resolved, return an IPv4 loopback address. + // Otherwise, select the first valid IPv4 address. + // If the name does not resolve to an IPv4 address, select the first valid IPv6 address. + addrs, err := net.LookupIP(parsedURL.Hostname()) + if err != nil { + break + } + var ip net.IP + for _, addr := range addrs { + if addr.To4() != nil { + ip = addr + break + } + if addr.To16() != nil && ip == nil { + ip = addr + } + } + return ip.String() + } + } + } + return "127.0.0.1" +} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/utils_test.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/utils_test.go index 9d7707f96..5b6813358 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/utils_test.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod/utils_test.go @@ -24,6 +24,9 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" + + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) func TestComponentResources(t *testing.T) { @@ -37,43 +40,174 @@ func TestComponentResources(t *testing.T) { func TestComponentProbe(t *testing.T) { var tests = []struct { - port int - path string - scheme v1.URIScheme + name string + cfg *kubeadmapi.MasterConfiguration + component string + port int + path string + scheme v1.URIScheme + expected string }{ { - port: 1, - path: "foo", - scheme: v1.URISchemeHTTP, + name: "default apiserver advertise address with http", + cfg: &kubeadmapi.MasterConfiguration{ + API: kubeadmapi.API{ + AdvertiseAddress: "", + }, + }, + component: kubeadmconstants.KubeAPIServer, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "127.0.0.1", + }, + { + name: "default apiserver advertise address with https", + cfg: &kubeadmapi.MasterConfiguration{ + API: kubeadmapi.API{ + AdvertiseAddress: "", + }, + }, + component: kubeadmconstants.KubeAPIServer, + port: 2, + path: "bar", + scheme: v1.URISchemeHTTPS, + expected: "127.0.0.1", + }, + { + name: "valid ipv4 apiserver advertise address with http", + cfg: &kubeadmapi.MasterConfiguration{ + API: kubeadmapi.API{ + AdvertiseAddress: "1.2.3.4", + }, + }, + component: kubeadmconstants.KubeAPIServer, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "1.2.3.4", + }, + { + name: "valid ipv6 apiserver advertise address with http", + cfg: &kubeadmapi.MasterConfiguration{ + API: kubeadmapi.API{ + AdvertiseAddress: "2001:db8::1", + }, + }, + component: kubeadmconstants.KubeAPIServer, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "2001:db8::1", + }, + { + name: "valid IPv4 controller-manager probe", + cfg: &kubeadmapi.MasterConfiguration{ + ControllerManagerExtraArgs: map[string]string{"address": "1.2.3.4"}, + }, + component: kubeadmconstants.KubeControllerManager, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "1.2.3.4", + }, + { + name: "valid IPv6 controller-manager probe", + cfg: &kubeadmapi.MasterConfiguration{ + ControllerManagerExtraArgs: map[string]string{"address": "2001:db8::1"}, + }, + component: kubeadmconstants.KubeControllerManager, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "2001:db8::1", + }, + { + name: "valid IPv4 scheduler probe", + cfg: &kubeadmapi.MasterConfiguration{ + SchedulerExtraArgs: map[string]string{"address": "1.2.3.4"}, + }, + component: kubeadmconstants.KubeScheduler, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "1.2.3.4", }, { - port: 2, - path: "bar", - scheme: v1.URISchemeHTTPS, + name: "valid IPv6 scheduler probe", + cfg: &kubeadmapi.MasterConfiguration{ + SchedulerExtraArgs: map[string]string{"address": "2001:db8::1"}, + }, + component: kubeadmconstants.KubeScheduler, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "2001:db8::1", + }, + { + name: "valid etcd probe using listen-client-urls IPv4 addresses", + cfg: &kubeadmapi.MasterConfiguration{ + Etcd: kubeadmapi.Etcd{ + ExtraArgs: map[string]string{ + "listen-client-urls": "http://1.2.3.4:2379,http://4.3.2.1:2379"}, + }, + }, + component: kubeadmconstants.Etcd, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "1.2.3.4", + }, + { + name: "valid etcd probe using listen-client-urls IPv6 addresses", + cfg: &kubeadmapi.MasterConfiguration{ + Etcd: kubeadmapi.Etcd{ + ExtraArgs: map[string]string{ + "listen-client-urls": "http://[2001:db8::1]:2379,http://[2001:db8::2]:2379"}, + }, + }, + component: kubeadmconstants.Etcd, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "2001:db8::1", + }, + { + name: "valid IPv4 etcd probe using hostname for listen-client-urls", + cfg: &kubeadmapi.MasterConfiguration{ + Etcd: kubeadmapi.Etcd{ + ExtraArgs: map[string]string{ + "listen-client-urls": "http://localhost:2379"}, + }, + }, + component: kubeadmconstants.Etcd, + port: 1, + path: "foo", + scheme: v1.URISchemeHTTP, + expected: "127.0.0.1", }, } for _, rt := range tests { - actual := ComponentProbe(rt.port, rt.path, rt.scheme) + actual := ComponentProbe(rt.cfg, rt.component, rt.port, rt.path, rt.scheme) + if actual.Handler.HTTPGet.Host != rt.expected { + t.Errorf("%s test case failed:\n\texpected: %s\n\t actual: %s", + rt.name, rt.expected, + actual.Handler.HTTPGet.Host) + } if actual.Handler.HTTPGet.Port != intstr.FromInt(rt.port) { - t.Errorf( - "failed componentProbe:\n\texpected: %v\n\t actual: %v", - rt.port, - actual.Handler.HTTPGet.Port, - ) + t.Errorf("%s test case failed:\n\texpected: %v\n\t actual: %v", + rt.name, rt.port, + actual.Handler.HTTPGet.Port) } if actual.Handler.HTTPGet.Path != rt.path { - t.Errorf( - "failed componentProbe:\n\texpected: %s\n\t actual: %s", - rt.path, - actual.Handler.HTTPGet.Path, - ) + t.Errorf("%s test case failed:\n\texpected: %s\n\t actual: %s", + rt.name, rt.path, + actual.Handler.HTTPGet.Path) } if actual.Handler.HTTPGet.Scheme != rt.scheme { - t.Errorf( - "failed componentProbe:\n\texpected: %v\n\t actual: %v", - rt.scheme, - actual.Handler.HTTPGet.Scheme, - ) + t.Errorf("%s test case failed:\n\texpected: %v\n\t actual: %v", + rt.name, rt.scheme, + actual.Handler.HTTPGet.Scheme) } } } @@ -111,7 +245,7 @@ func TestComponentPod(t *testing.T) { for _, rt := range tests { c := v1.Container{Name: rt.name} - actual := ComponentPod(c, []v1.Volume{}) + actual := ComponentPod(c, map[string]v1.Volume{}) if !reflect.DeepEqual(rt.expected, actual) { t.Errorf( "failed componentPod:\n\texpected: %v\n\t actual: %v", @@ -198,6 +332,35 @@ func TestNewVolumeMount(t *testing.T) { } } } +func TestVolumeMapToSlice(t *testing.T) { + testVolumes := map[string]v1.Volume{ + "foo": { + Name: "foo", + }, + } + volumeSlice := VolumeMapToSlice(testVolumes) + if len(volumeSlice) != 1 { + t.Errorf("Expected slice length of 1, got %d", len(volumeSlice)) + } + if volumeSlice[0].Name != "foo" { + t.Errorf("Expected volume name \"foo\", got %s", volumeSlice[0].Name) + } +} + +func TestVolumeMountMapToSlice(t *testing.T) { + testVolumeMounts := map[string]v1.VolumeMount{ + "foo": { + Name: "foo", + }, + } + volumeMountSlice := VolumeMountMapToSlice(testVolumeMounts) + if len(volumeMountSlice) != 1 { + t.Errorf("Expected slice length of 1, got %d", len(volumeMountSlice)) + } + if volumeMountSlice[0].Name != "foo" { + t.Errorf("Expected volume mount name \"foo\", got %s", volumeMountSlice[0].Name) + } +} func TestGetExtraParameters(t *testing.T) { var tests = []struct { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go index 6aca5a18f..233b13f5c 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go @@ -17,6 +17,7 @@ limitations under the License. package main import ( + "fmt" "os" "k8s.io/kubernetes/cmd/kubeadm/app" @@ -24,6 +25,7 @@ import ( func main() { if err := app.Run(); err != nil { + fmt.Fprintf(os.Stderr, "error: %v\n", err) os.Exit(1) } os.Exit(0) diff --git a/vendor/k8s.io/kubernetes/cmd/kubectl/kubectl.go b/vendor/k8s.io/kubernetes/cmd/kubectl/kubectl.go index 3fce17f40..5864a5ae6 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubectl/kubectl.go +++ b/vendor/k8s.io/kubernetes/cmd/kubectl/kubectl.go @@ -17,6 +17,7 @@ limitations under the License. package main import ( + "fmt" "os" "k8s.io/kubernetes/cmd/kubectl/app" @@ -24,6 +25,7 @@ import ( func main() { if err := app.Run(); err != nil { + fmt.Fprintf(os.Stderr, "error: %v\n", err) os.Exit(1) } os.Exit(0) diff --git a/vendor/k8s.io/kubernetes/cmd/kubelet/app/BUILD b/vendor/k8s.io/kubernetes/cmd/kubelet/app/BUILD index 53bf54f28..14946f7c6 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubelet/app/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubelet/app/BUILD @@ -30,7 +30,7 @@ go_library( importpath = "k8s.io/kubernetes/cmd/kubelet/app", deps = [ "//cmd/kubelet/app/options:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/capabilities:go_default_library", "//pkg/client/chaosclient:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -52,7 +52,6 @@ go_library( "//pkg/kubelet/config:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/dockershim:go_default_library", - "//pkg/kubelet/dockershim/libdocker:go_default_library", "//pkg/kubelet/dockershim/remote:go_default_library", "//pkg/kubelet/eviction:go_default_library", "//pkg/kubelet/eviction/api:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/BUILD b/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/BUILD index 91300fda0..e539f8a9e 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/BUILD @@ -21,6 +21,7 @@ go_library( "//pkg/kubelet/apis/kubeletconfig/v1alpha1:go_default_library", "//pkg/kubelet/apis/kubeletconfig/validation:go_default_library", "//pkg/kubelet/config:go_default_library", + "//pkg/kubelet/types:go_default_library", "//pkg/util/taints:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/container_runtime.go b/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/container_runtime.go index 00c46fe57..d1174ea04 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/container_runtime.go +++ b/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/container_runtime.go @@ -22,6 +22,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/kubelet/config" + kubetypes "k8s.io/kubernetes/pkg/kubelet/types" ) const ( @@ -47,6 +48,7 @@ func NewContainerRuntimeOptions() *config.ContainerRuntimeOptions { } return &config.ContainerRuntimeOptions{ + ContainerRuntime: kubetypes.DockerContainerRuntime, DockerEndpoint: dockerEndpoint, DockershimRootDirectory: "/var/lib/dockershim", DockerDisableSharedPID: true, diff --git a/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/options.go b/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/options.go index 539e3785b..8e48af1e9 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/options.go +++ b/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/options.go @@ -102,7 +102,7 @@ type KubeletFlags struct { // The Kubelet will look in this directory for an init configuration. // The path may be absolute or relative; relative paths are under the Kubelet's current working directory. // Omit this flag to use the combination of built-in default configuration values and flags. - // To use this flag, the DynamicKubeletConfig feature gate must be enabled. + // To use this flag, the KubeletConfigFile feature gate must be enabled. InitConfigDir flag.StringFlag // EXPERIMENTAL FLAGS @@ -156,6 +156,8 @@ type KubeletFlags struct { // This flag, if set, instructs the kubelet to keep volumes from terminated pods mounted to the node. // This can be useful for debugging volume related issues. KeepTerminatedPodVolumes bool + // enable gathering custom metrics. + EnableCustomMetrics bool } // NewKubeletFlags will create a new KubeletFlags with default values @@ -184,6 +186,8 @@ func NewKubeletFlags() *KubeletFlags { ExperimentalQOSReserved: make(map[string]string), RemoteRuntimeEndpoint: remoteRuntimeEndpoint, RotateCertificates: false, + // TODO(#54161:v1.11.0): Remove --enable-custom-metrics flag, it is deprecated. + EnableCustomMetrics: false, } } @@ -192,7 +196,7 @@ func ValidateKubeletFlags(f *KubeletFlags) error { if f.DynamicConfigDir.Provided() && !utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) { return fmt.Errorf("the DynamicKubeletConfig feature gate must be enabled in order to use the --dynamic-config-dir flag") } - // ensure that nobody sets InitConfigDir if the dynamic config feature gate is turned off + // ensure that nobody sets InitConfigDir if the KubeletConfigFile feature gate is turned off if f.InitConfigDir.Provided() && !utilfeature.DefaultFeatureGate.Enabled(features.KubeletConfigFile) { return fmt.Errorf("the KubeletConfigFile feature gate must be enabled in order to use the --init-config-dir flag") } @@ -288,7 +292,7 @@ func (f *KubeletFlags) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&f.RootDirectory, "root-dir", f.RootDirectory, "Directory path for managing kubelet files (volume mounts,etc).") fs.Var(&f.DynamicConfigDir, "dynamic-config-dir", "The Kubelet will use this directory for checkpointing downloaded configurations and tracking configuration health. The Kubelet will create this directory if it does not already exist. The path may be absolute or relative; relative paths start at the Kubelet's current working directory. Providing this flag enables dynamic Kubelet configuration. Presently, you must also enable the DynamicKubeletConfig feature gate to pass this flag.") - fs.Var(&f.InitConfigDir, "init-config-dir", "The Kubelet will look in this directory for the init configuration. The path may be absolute or relative; relative paths start at the Kubelet's current working directory. Omit this argument to use the built-in default configuration values. Presently, you must also enable the DynamicKubeletConfig feature gate to pass this flag.") + fs.Var(&f.InitConfigDir, "init-config-dir", "The Kubelet will look in this directory for the init configuration. The path may be absolute or relative; relative paths start at the Kubelet's current working directory. Omit this argument to use the built-in default configuration values. Presently, you must also enable the KubeletConfigFile feature gate to pass this flag.") // EXPERIMENTAL FLAGS fs.StringVar(&f.ExperimentalMounterPath, "experimental-mounter-path", f.ExperimentalMounterPath, "[Experimental] Path of mounter binary. Leave empty to use the default mount.") @@ -316,6 +320,9 @@ func (f *KubeletFlags) AddFlags(fs *pflag.FlagSet) { fs.MarkDeprecated("non-masquerade-cidr", "will be removed in a future version") fs.BoolVar(&f.KeepTerminatedPodVolumes, "keep-terminated-pod-volumes", f.KeepTerminatedPodVolumes, "Keep terminated pod volumes mounted to the node after the pod terminates. Can be useful for debugging volume related issues.") fs.MarkDeprecated("keep-terminated-pod-volumes", "will be removed in a future version") + // TODO(#54161:v1.11.0): Remove --enable-custom-metrics flag, it is deprecated. + fs.BoolVar(&f.EnableCustomMetrics, "enable-custom-metrics", f.EnableCustomMetrics, "Support for gathering custom metrics.") + fs.MarkDeprecated("enable-custom-metrics", "will be removed in a future version") } @@ -330,7 +337,7 @@ func AddKubeletConfigFlags(fs *pflag.FlagSet, c *kubeletconfig.KubeletConfigurat fs.DurationVar(&c.FileCheckFrequency.Duration, "file-check-frequency", c.FileCheckFrequency.Duration, "Duration between checking config files for new data") fs.DurationVar(&c.HTTPCheckFrequency.Duration, "http-check-frequency", c.HTTPCheckFrequency.Duration, "Duration between checking http for new data") fs.StringVar(&c.ManifestURL, "manifest-url", c.ManifestURL, "URL for accessing the container manifest") - fs.StringVar(&c.ManifestURLHeader, "manifest-url-header", c.ManifestURLHeader, "HTTP header to use when accessing the manifest URL, with the key separated from the value with a ':', as in 'key:value'") + fs.Var(flag.ColonSeparatedMultimapStringString(c.ManifestURLHeader), "manifest-url-header", "Comma-separated list of HTTP headers to use when accessing the manifest URL. Multiple headers with the same name will be added in the same order provided. For example: `a:hello,b:again,c:world,b:beautiful`") fs.BoolVar(&c.EnableServer, "enable-server", c.EnableServer, "Enable the Kubelet's server") fs.Var(componentconfig.IPVar{Val: &c.Address}, "address", "The IP address for the Kubelet to serve on (set to 0.0.0.0 for all interfaces)") fs.Int32Var(&c.Port, "port", c.Port, "The port for the Kubelet to serve on.") @@ -404,7 +411,6 @@ func AddKubeletConfigFlags(fs *pflag.FlagSet, c *kubeletconfig.KubeletConfigurat fs.StringVar(&c.CgroupRoot, "cgroup-root", c.CgroupRoot, "Optional root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Default: '', which means use the container runtime default.") fs.StringVar(&c.CPUManagerPolicy, "cpu-manager-policy", c.CPUManagerPolicy, " CPU Manager policy to use. Possible values: 'none', 'static'. Default: 'none'") fs.DurationVar(&c.CPUManagerReconcilePeriod.Duration, "cpu-manager-reconcile-period", c.CPUManagerReconcilePeriod.Duration, " CPU Manager reconciliation period. Examples: '10s', or '1m'. If not supplied, defaults to `NodeStatusUpdateFrequency`") - fs.StringVar(&c.ContainerRuntime, "container-runtime", c.ContainerRuntime, "The container runtime to use. Possible values: 'docker', 'rkt'.") fs.DurationVar(&c.RuntimeRequestTimeout.Duration, "runtime-request-timeout", c.RuntimeRequestTimeout.Duration, "Timeout of all runtime requests except long running request - pull, logs, exec and attach. When timeout exceeded, kubelet will cancel the request, throw out an error and retry later.") fs.StringVar(&c.LockFilePath, "lock-file", c.LockFilePath, " The path to file for kubelet to use as a lock file.") fs.BoolVar(&c.ExitOnLockContention, "exit-on-lock-contention", c.ExitOnLockContention, "Whether kubelet should exit upon lock-file contention.") @@ -428,8 +434,6 @@ func AddKubeletConfigFlags(fs *pflag.FlagSet, c *kubeletconfig.KubeletConfigurat fs.Int32Var(&c.KubeAPIBurst, "kube-api-burst", c.KubeAPIBurst, "Burst to use while talking with kubernetes apiserver") fs.BoolVar(&c.SerializeImagePulls, "serialize-image-pulls", c.SerializeImagePulls, "Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details.") - fs.BoolVar(&c.EnableCustomMetrics, "enable-custom-metrics", c.EnableCustomMetrics, "Support for gathering custom metrics.") - fs.StringVar(&c.RuntimeCgroups, "runtime-cgroups", c.RuntimeCgroups, "Optional absolute name of cgroups to create and run the runtime in.") fs.StringVar(&c.EvictionHard, "eviction-hard", c.EvictionHard, "A set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a pod eviction.") fs.StringVar(&c.EvictionSoft, "eviction-soft", c.EvictionSoft, "A set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a pod eviction.") fs.StringVar(&c.EvictionSoftGracePeriod, "eviction-soft-grace-period", c.EvictionSoftGracePeriod, "A set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a pod eviction.") @@ -440,8 +444,8 @@ func AddKubeletConfigFlags(fs *pflag.FlagSet, c *kubeletconfig.KubeletConfigurat fs.BoolVar(&c.ProtectKernelDefaults, "protect-kernel-defaults", c.ProtectKernelDefaults, "Default kubelet behaviour for kernel tuning. If set, kubelet errors if any of kernel tunables is different than kubelet defaults.") // Node Allocatable Flags - fs.Var(&c.SystemReserved, "system-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none]") - fs.Var(&c.KubeReserved, "kube-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi, ephemeral-storage=1Gi) pairs that describe resources reserved for kubernetes system components. Currently cpu, memory and local ephemeral storage for root file system are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none]") + fs.Var(&c.SystemReserved, "system-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi,ephemeral-storage=1Gi) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none]") + fs.Var(&c.KubeReserved, "kube-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi,ephemeral-storage=1Gi) pairs that describe resources reserved for kubernetes system components. Currently cpu, memory and local ephemeral storage for root file system are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none]") fs.StringSliceVar(&c.EnforceNodeAllocatable, "enforce-node-allocatable", c.EnforceNodeAllocatable, "A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptible options are 'pods', 'system-reserved' & 'kube-reserved'. If the latter two options are specified, '--system-reserved-cgroup' & '--kube-reserved-cgroup' must also be set respectively. See https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ for more details.") fs.StringVar(&c.SystemReservedCgroup, "system-reserved-cgroup", c.SystemReservedCgroup, "Absolute name of the top level cgroup that is used to manage non-kubernetes components for which compute resources were reserved via '--system-reserved' flag. Ex. '/system-reserved'. [default='']") fs.StringVar(&c.KubeReservedCgroup, "kube-reserved-cgroup", c.KubeReservedCgroup, "Absolute name of the top level cgroup that is used to manage kubernetes components for which compute resources were reserved via '--kube-reserved' flag. Ex. '/kube-reserved'. [default='']") diff --git a/vendor/k8s.io/kubernetes/cmd/kubelet/app/plugins.go b/vendor/k8s.io/kubernetes/cmd/kubelet/app/plugins.go index 13abcd9ff..e14513a18 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubelet/app/plugins.go +++ b/vendor/k8s.io/kubernetes/cmd/kubelet/app/plugins.go @@ -107,21 +107,12 @@ func GetDynamicPluginProber(pluginDir string) volume.DynamicPluginProber { } // ProbeNetworkPlugins collects all compiled-in plugins -func ProbeNetworkPlugins(pluginDir, cniConfDir, cniBinDir string) []network.NetworkPlugin { +func ProbeNetworkPlugins(cniConfDir, cniBinDir string) []network.NetworkPlugin { allPlugins := []network.NetworkPlugin{} - // for backwards-compat, allow pluginDir as a source of CNI config files - if cniConfDir == "" { - cniConfDir = pluginDir - } - - binDir := cniBinDir - if binDir == "" { - binDir = pluginDir - } // for each existing plugin, add to the list - allPlugins = append(allPlugins, cni.ProbeNetworkPlugins(cniConfDir, binDir)...) - allPlugins = append(allPlugins, kubenet.NewPlugin(binDir)) + allPlugins = append(allPlugins, cni.ProbeNetworkPlugins(cniConfDir, cniBinDir)...) + allPlugins = append(allPlugins, kubenet.NewPlugin(cniBinDir)) return allPlugins } diff --git a/vendor/k8s.io/kubernetes/cmd/kubelet/app/server.go b/vendor/k8s.io/kubernetes/cmd/kubelet/app/server.go index 099b5f50d..31fbde933 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubelet/app/server.go +++ b/vendor/k8s.io/kubernetes/cmd/kubelet/app/server.go @@ -46,7 +46,6 @@ import ( "k8s.io/apiserver/pkg/server/healthz" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/apiserver/pkg/util/flag" - clientgoclientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes" v1core "k8s.io/client-go/kubernetes/typed/core/v1" restclient "k8s.io/client-go/rest" @@ -55,7 +54,7 @@ import ( certutil "k8s.io/client-go/util/cert" "k8s.io/client-go/util/certificate" "k8s.io/kubernetes/cmd/kubelet/app/options" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/client/chaosclient" "k8s.io/kubernetes/pkg/cloudprovider" @@ -72,7 +71,6 @@ import ( "k8s.io/kubernetes/pkg/kubelet/config" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/dockershim" - "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" dockerremote "k8s.io/kubernetes/pkg/kubelet/dockershim/remote" "k8s.io/kubernetes/pkg/kubelet/eviction" evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api" @@ -145,12 +143,13 @@ func UnsecuredDependencies(s *options.KubeletServer) (*kubelet.Dependencies, err writer = &kubeio.NsenterWriter{} } - var dockerClient libdocker.Interface + var dockerClientConfig *dockershim.ClientConfig if s.ContainerRuntime == kubetypes.DockerContainerRuntime { - dockerClient = libdocker.ConnectToDockerOrDie(s.DockerEndpoint, s.RuntimeRequestTimeout.Duration, - s.ImagePullProgressDeadline.Duration) - } else { - dockerClient = nil + dockerClientConfig = &dockershim.ClientConfig{ + DockerEndpoint: s.DockerEndpoint, + RuntimeRequestTimeout: s.RuntimeRequestTimeout.Duration, + ImagePullProgressDeadline: s.ImagePullProgressDeadline.Duration, + } } return &kubelet.Dependencies{ @@ -158,13 +157,13 @@ func UnsecuredDependencies(s *options.KubeletServer) (*kubelet.Dependencies, err CAdvisorInterface: nil, // cadvisor.New launches background processes (bg http.ListenAndServe, and some bg cleaners), not set here Cloud: nil, // cloud provider might start background processes ContainerManager: nil, - DockerClient: dockerClient, + DockerClientConfig: dockerClientConfig, KubeClient: nil, HeartbeatClient: nil, ExternalKubeClient: nil, EventClient: nil, Mounter: mounter, - NetworkPlugins: ProbeNetworkPlugins(s.NetworkPluginDir, s.CNIConfDir, s.CNIBinDir), + NetworkPlugins: ProbeNetworkPlugins(s.CNIConfDir, s.CNIBinDir), OOMAdjuster: oom.NewOOMAdjuster(), OSInterface: kubecontainer.RealOS{}, Writer: writer, @@ -221,13 +220,13 @@ func initConfigz(kc *kubeletconfiginternal.KubeletConfiguration) error { return nil } -// makeEventRecorder sets up kubeDeps.Recorder if its nil. Its a no-op otherwise. +// makeEventRecorder sets up kubeDeps.Recorder if it's nil. It's a no-op otherwise. func makeEventRecorder(kubeDeps *kubelet.Dependencies, nodeName types.NodeName) { if kubeDeps.Recorder != nil { return } eventBroadcaster := record.NewBroadcaster() - kubeDeps.Recorder = eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: componentKubelet, Host: string(nodeName)}) + kubeDeps.Recorder = eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: componentKubelet, Host: string(nodeName)}) eventBroadcaster.StartLogging(glog.V(3).Infof) if kubeDeps.EventClient != nil { glog.V(4).Infof("Sending events to api server.") @@ -331,7 +330,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies) (err error) { var kubeClient clientset.Interface var eventClient v1core.EventsGetter var heartbeatClient v1core.CoreV1Interface - var externalKubeClient clientgoclientset.Interface + var externalKubeClient clientset.Interface clientConfig, err := CreateAPIServerClientConfig(s) @@ -342,7 +341,9 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies) (err error) { if err != nil { return err } - if err := kubeletcertificate.UpdateTransport(wait.NeverStop, clientConfig, clientCertificateManager); err != nil { + // we set exitIfExpired to true because we use this client configuration to request new certs - if we are unable + // to request new certs, we will be unable to continue normal operation + if err := kubeletcertificate.UpdateTransport(wait.NeverStop, clientConfig, clientCertificateManager, true); err != nil { return err } } @@ -350,12 +351,12 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies) (err error) { kubeClient, err = clientset.NewForConfig(clientConfig) if err != nil { glog.Warningf("New kubeClient from clientConfig error: %v", err) - } else if kubeClient.Certificates() != nil && clientCertificateManager != nil { + } else if kubeClient.CertificatesV1beta1() != nil && clientCertificateManager != nil { glog.V(2).Info("Starting client certificate rotation.") - clientCertificateManager.SetCertificateSigningRequestClient(kubeClient.Certificates().CertificateSigningRequests()) + clientCertificateManager.SetCertificateSigningRequestClient(kubeClient.CertificatesV1beta1().CertificateSigningRequests()) clientCertificateManager.Start() } - externalKubeClient, err = clientgoclientset.NewForConfig(clientConfig) + externalKubeClient, err = clientset.NewForConfig(clientConfig) if err != nil { glog.Warningf("New kubeClient from clientConfig error: %v", err) } @@ -651,7 +652,7 @@ func addChaosToClientConfig(s *options.KubeletServer, config *restclient.Config) // Eventually, #2 will be replaced with instances of #3 func RunKubelet(kubeFlags *options.KubeletFlags, kubeCfg *kubeletconfiginternal.KubeletConfiguration, kubeDeps *kubelet.Dependencies, runOnce bool) error { hostname := nodeutil.GetHostname(kubeFlags.HostnameOverride) - // Query the cloud provider for our node name, default to hostname if kcfg.Cloud == nil + // Query the cloud provider for our node name, default to hostname if kubeDeps.Cloud == nil nodeName, err := getNodeName(kubeDeps.Cloud, hostname) if err != nil { return err @@ -700,6 +701,8 @@ func RunKubelet(kubeFlags *options.KubeletFlags, kubeCfg *kubeletconfiginternal. k, err := builder(kubeCfg, kubeDeps, &kubeFlags.ContainerRuntimeOptions, + kubeFlags.ContainerRuntime, + kubeFlags.RuntimeCgroups, kubeFlags.HostnameOverride, kubeFlags.NodeIP, kubeFlags.ProviderID, @@ -767,6 +770,8 @@ func startKubelet(k kubelet.Bootstrap, podCfg *config.PodConfig, kubeCfg *kubele func CreateAndInitKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, kubeDeps *kubelet.Dependencies, crOptions *config.ContainerRuntimeOptions, + containerRuntime string, + runtimeCgroups string, hostnameOverride string, nodeIP string, providerID string, @@ -794,6 +799,8 @@ func CreateAndInitKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, k, err = kubelet.NewMainKubelet(kubeCfg, kubeDeps, crOptions, + containerRuntime, + runtimeCgroups, hostnameOverride, nodeIP, providerID, @@ -890,22 +897,22 @@ func BootstrapKubeletConfigController(defaultConfig *kubeletconfiginternal.Kubel // TODO(random-liu): Move this to a separate binary. func RunDockershim(f *options.KubeletFlags, c *kubeletconfiginternal.KubeletConfiguration) error { r := &f.ContainerRuntimeOptions - // Create docker client. - dockerClient := libdocker.ConnectToDockerOrDie(r.DockerEndpoint, c.RuntimeRequestTimeout.Duration, - r.ImagePullProgressDeadline.Duration) - // Initialize network plugin settings. - binDir := r.CNIBinDir - if binDir == "" { - binDir = r.NetworkPluginDir + // Initialize docker client configuration. + dockerClientConfig := &dockershim.ClientConfig{ + DockerEndpoint: r.DockerEndpoint, + RuntimeRequestTimeout: c.RuntimeRequestTimeout.Duration, + ImagePullProgressDeadline: r.ImagePullProgressDeadline.Duration, } + + // Initialize network plugin settings. nh := &kubelet.NoOpLegacyHost{} pluginSettings := dockershim.NetworkPluginSettings{ HairpinMode: kubeletconfiginternal.HairpinMode(c.HairpinMode), NonMasqueradeCIDR: f.NonMasqueradeCIDR, PluginName: r.NetworkPluginName, PluginConfDir: r.CNIConfDir, - PluginBinDir: binDir, + PluginBinDir: r.CNIBinDir, MTU: int(r.NetworkPluginMTU), LegacyRuntimeHost: nh, } @@ -920,8 +927,8 @@ func RunDockershim(f *options.KubeletFlags, c *kubeletconfiginternal.KubeletConf SupportedPortForwardProtocols: streaming.DefaultConfig.SupportedPortForwardProtocols, } - ds, err := dockershim.NewDockerService(dockerClient, r.PodSandboxImage, streamingConfig, &pluginSettings, - c.RuntimeCgroups, c.CgroupDriver, r.DockershimRootDirectory, r.DockerDisableSharedPID) + ds, err := dockershim.NewDockerService(dockerClientConfig, r.PodSandboxImage, streamingConfig, &pluginSettings, + f.RuntimeCgroups, c.CgroupDriver, r.DockershimRootDirectory, r.DockerDisableSharedPID) if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/cmd/kubemark/BUILD b/vendor/k8s.io/kubernetes/cmd/kubemark/BUILD index 740d20976..8a60c3607 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubemark/BUILD +++ b/vendor/k8s.io/kubernetes/cmd/kubemark/BUILD @@ -17,11 +17,12 @@ go_library( srcs = ["hollow-node.go"], importpath = "k8s.io/kubernetes/cmd/kubemark", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/metrics/prometheus:go_default_library", "//pkg/kubelet/cadvisor/testing:go_default_library", "//pkg/kubelet/cm:go_default_library", + "//pkg/kubelet/dockershim:go_default_library", "//pkg/kubelet/dockershim/libdocker:go_default_library", "//pkg/kubemark:go_default_library", "//pkg/util/iptables/testing:go_default_library", diff --git a/vendor/k8s.io/kubernetes/cmd/kubemark/hollow-node.go b/vendor/k8s.io/kubernetes/cmd/kubemark/hollow-node.go index a6f7d3074..ffcbac533 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubemark/hollow-node.go +++ b/vendor/k8s.io/kubernetes/cmd/kubemark/hollow-node.go @@ -22,16 +22,16 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/util/flag" - clientgoclientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing" "k8s.io/kubernetes/pkg/kubelet/cm" + "k8s.io/kubernetes/pkg/kubelet/dockershim" "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" "k8s.io/kubernetes/pkg/kubemark" fakeiptables "k8s.io/kubernetes/pkg/util/iptables/testing" @@ -102,7 +102,7 @@ func main() { glog.Fatalf("Failed to create a ClientConfig: %v. Exiting.", err) } - clientset, err := clientset.NewForConfig(clientConfig) + client, err := clientset.NewForConfig(clientConfig) if err != nil { glog.Fatalf("Failed to create a ClientSet: %v. Exiting.", err) } @@ -116,14 +116,18 @@ func main() { NodeName: config.NodeName, } containerManager := cm.NewStubContainerManager() - fakeDockerClient := libdocker.NewFakeDockerClient().WithTraceDisabled() - fakeDockerClient.EnableSleep = true + + fakeDockerClientConfig := &dockershim.ClientConfig{ + DockerEndpoint: libdocker.FakeDockerEndpoint, + EnableSleep: true, + WithTraceDisabled: true, + } hollowKubelet := kubemark.NewHollowKubelet( config.NodeName, - clientset, + client, cadvisorInterface, - fakeDockerClient, + fakeDockerClientConfig, config.KubeletPort, config.KubeletReadOnlyPort, containerManager, @@ -134,7 +138,7 @@ func main() { } if config.Morph == "proxy" { - client, err := clientgoclientset.NewForConfig(clientConfig) + client, err := clientset.NewForConfig(clientConfig) if err != nil { glog.Fatalf("Failed to create API Server client: %v", err) } @@ -142,7 +146,7 @@ func main() { sysctl := fakesysctl.NewFake() execer := &fakeexec.FakeExec{} eventBroadcaster := record.NewBroadcaster() - recorder := eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: "kube-proxy", Host: config.NodeName}) + recorder := eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: "kube-proxy", Host: config.NodeName}) hollowProxy, err := kubemark.NewHollowProxyOrDie( config.NodeName, diff --git a/vendor/k8s.io/kubernetes/docs/.generated_docs b/vendor/k8s.io/kubernetes/docs/.generated_docs index 70d872819..96bdea8ee 100644 --- a/vendor/k8s.io/kubernetes/docs/.generated_docs +++ b/vendor/k8s.io/kubernetes/docs/.generated_docs @@ -1,23 +1,134 @@ docs/.generated_docs docs/admin/cloud-controller-manager.md -docs/admin/federation-apiserver.md -docs/admin/federation-controller-manager.md docs/admin/kube-apiserver.md docs/admin/kube-controller-manager.md docs/admin/kube-proxy.md docs/admin/kube-scheduler.md -docs/admin/kubefed.md -docs/admin/kubefed_init.md -docs/admin/kubefed_join.md -docs/admin/kubefed_options.md -docs/admin/kubefed_unjoin.md -docs/admin/kubefed_version.md +docs/admin/kubeadm.md +docs/admin/kubeadm_alpha.md +docs/admin/kubeadm_alpha_phase.md +docs/admin/kubeadm_alpha_phase_addon.md +docs/admin/kubeadm_alpha_phase_addon_all.md +docs/admin/kubeadm_alpha_phase_addon_kube-dns.md +docs/admin/kubeadm_alpha_phase_addon_kube-proxy.md +docs/admin/kubeadm_alpha_phase_bootstrap-token.md +docs/admin/kubeadm_alpha_phase_bootstrap-token_cluster-info.md +docs/admin/kubeadm_alpha_phase_bootstrap-token_node.md +docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-auto-approve.md +docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-post-csrs.md +docs/admin/kubeadm_alpha_phase_certs.md +docs/admin/kubeadm_alpha_phase_certs_all.md +docs/admin/kubeadm_alpha_phase_certs_apiserver-kubelet-client.md +docs/admin/kubeadm_alpha_phase_certs_apiserver.md +docs/admin/kubeadm_alpha_phase_certs_ca.md +docs/admin/kubeadm_alpha_phase_certs_front-proxy-ca.md +docs/admin/kubeadm_alpha_phase_certs_front-proxy-client.md +docs/admin/kubeadm_alpha_phase_certs_sa.md +docs/admin/kubeadm_alpha_phase_controlplane.md +docs/admin/kubeadm_alpha_phase_controlplane_all.md +docs/admin/kubeadm_alpha_phase_controlplane_apiserver.md +docs/admin/kubeadm_alpha_phase_controlplane_controller-manager.md +docs/admin/kubeadm_alpha_phase_controlplane_scheduler.md +docs/admin/kubeadm_alpha_phase_etcd.md +docs/admin/kubeadm_alpha_phase_etcd_local.md +docs/admin/kubeadm_alpha_phase_kubeconfig.md +docs/admin/kubeadm_alpha_phase_kubeconfig_admin.md +docs/admin/kubeadm_alpha_phase_kubeconfig_all.md +docs/admin/kubeadm_alpha_phase_kubeconfig_controller-manager.md +docs/admin/kubeadm_alpha_phase_kubeconfig_kubelet.md +docs/admin/kubeadm_alpha_phase_kubeconfig_scheduler.md +docs/admin/kubeadm_alpha_phase_kubeconfig_user.md +docs/admin/kubeadm_alpha_phase_mark-master.md +docs/admin/kubeadm_alpha_phase_preflight.md +docs/admin/kubeadm_alpha_phase_preflight_master.md +docs/admin/kubeadm_alpha_phase_preflight_node.md +docs/admin/kubeadm_alpha_phase_selfhosting.md +docs/admin/kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md +docs/admin/kubeadm_alpha_phase_upload-config.md +docs/admin/kubeadm_completion.md +docs/admin/kubeadm_config.md +docs/admin/kubeadm_config_upload.md +docs/admin/kubeadm_config_upload_from-file.md +docs/admin/kubeadm_config_upload_from-flags.md +docs/admin/kubeadm_config_view.md +docs/admin/kubeadm_init.md +docs/admin/kubeadm_join.md +docs/admin/kubeadm_reset.md +docs/admin/kubeadm_token.md +docs/admin/kubeadm_token_create.md +docs/admin/kubeadm_token_delete.md +docs/admin/kubeadm_token_generate.md +docs/admin/kubeadm_token_list.md +docs/admin/kubeadm_upgrade.md +docs/admin/kubeadm_upgrade_apply.md +docs/admin/kubeadm_upgrade_plan.md +docs/admin/kubeadm_version.md docs/admin/kubelet.md docs/man/man1/cloud-controller-manager.1 docs/man/man1/kube-apiserver.1 docs/man/man1/kube-controller-manager.1 docs/man/man1/kube-proxy.1 docs/man/man1/kube-scheduler.1 +docs/man/man1/kubeadm-alpha-phase-addon-all.1 +docs/man/man1/kubeadm-alpha-phase-addon-kube-dns.1 +docs/man/man1/kubeadm-alpha-phase-addon-kube-proxy.1 +docs/man/man1/kubeadm-alpha-phase-addon.1 +docs/man/man1/kubeadm-alpha-phase-bootstrap-token-cluster-info.1 +docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-auto-approve.1 +docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-post-csrs.1 +docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node.1 +docs/man/man1/kubeadm-alpha-phase-bootstrap-token.1 +docs/man/man1/kubeadm-alpha-phase-certs-all.1 +docs/man/man1/kubeadm-alpha-phase-certs-apiserver-kubelet-client.1 +docs/man/man1/kubeadm-alpha-phase-certs-apiserver.1 +docs/man/man1/kubeadm-alpha-phase-certs-ca.1 +docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-ca.1 +docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-client.1 +docs/man/man1/kubeadm-alpha-phase-certs-sa.1 +docs/man/man1/kubeadm-alpha-phase-certs.1 +docs/man/man1/kubeadm-alpha-phase-controlplane-all.1 +docs/man/man1/kubeadm-alpha-phase-controlplane-apiserver.1 +docs/man/man1/kubeadm-alpha-phase-controlplane-controller-manager.1 +docs/man/man1/kubeadm-alpha-phase-controlplane-scheduler.1 +docs/man/man1/kubeadm-alpha-phase-controlplane.1 +docs/man/man1/kubeadm-alpha-phase-etcd-local.1 +docs/man/man1/kubeadm-alpha-phase-etcd.1 +docs/man/man1/kubeadm-alpha-phase-kubeconfig-admin.1 +docs/man/man1/kubeadm-alpha-phase-kubeconfig-all.1 +docs/man/man1/kubeadm-alpha-phase-kubeconfig-controller-manager.1 +docs/man/man1/kubeadm-alpha-phase-kubeconfig-kubelet.1 +docs/man/man1/kubeadm-alpha-phase-kubeconfig-scheduler.1 +docs/man/man1/kubeadm-alpha-phase-kubeconfig-user.1 +docs/man/man1/kubeadm-alpha-phase-kubeconfig.1 +docs/man/man1/kubeadm-alpha-phase-mark-master.1 +docs/man/man1/kubeadm-alpha-phase-preflight-master.1 +docs/man/man1/kubeadm-alpha-phase-preflight-node.1 +docs/man/man1/kubeadm-alpha-phase-preflight.1 +docs/man/man1/kubeadm-alpha-phase-selfhosting-convert-from-staticpods.1 +docs/man/man1/kubeadm-alpha-phase-selfhosting.1 +docs/man/man1/kubeadm-alpha-phase-upload-config.1 +docs/man/man1/kubeadm-alpha-phase.1 +docs/man/man1/kubeadm-alpha.1 +docs/man/man1/kubeadm-completion.1 +docs/man/man1/kubeadm-config-upload-from-file.1 +docs/man/man1/kubeadm-config-upload-from-flags.1 +docs/man/man1/kubeadm-config-upload.1 +docs/man/man1/kubeadm-config-view.1 +docs/man/man1/kubeadm-config.1 +docs/man/man1/kubeadm-init.1 +docs/man/man1/kubeadm-join.1 +docs/man/man1/kubeadm-reset.1 +docs/man/man1/kubeadm-token-create.1 +docs/man/man1/kubeadm-token-delete.1 +docs/man/man1/kubeadm-token-generate.1 +docs/man/man1/kubeadm-token-list.1 +docs/man/man1/kubeadm-token.1 +docs/man/man1/kubeadm-upgrade-apply.1 +docs/man/man1/kubeadm-upgrade-plan.1 +docs/man/man1/kubeadm-upgrade.1 +docs/man/man1/kubeadm-version.1 +docs/man/man1/kubeadm.1 +docs/man/man1/kubectl-alpha-diff.1 docs/man/man1/kubectl-alpha.1 docs/man/man1/kubectl-annotate.1 docs/man/man1/kubectl-api-versions.1 @@ -59,6 +170,7 @@ docs/man/man1/kubectl-create-configmap.1 docs/man/man1/kubectl-create-deployment.1 docs/man/man1/kubectl-create-namespace.1 docs/man/man1/kubectl-create-poddisruptionbudget.1 +docs/man/man1/kubectl-create-priorityclass.1 docs/man/man1/kubectl-create-quota.1 docs/man/man1/kubectl-create-role.1 docs/man/man1/kubectl-create-rolebinding.1 @@ -115,6 +227,8 @@ docs/man/man1/kubectl-version.1 docs/man/man1/kubectl.1 docs/man/man1/kubelet.1 docs/user-guide/kubectl/kubectl.md +docs/user-guide/kubectl/kubectl_alpha.md +docs/user-guide/kubectl/kubectl_alpha_diff.md docs/user-guide/kubectl/kubectl_annotate.md docs/user-guide/kubectl/kubectl_api-versions.md docs/user-guide/kubectl/kubectl_apply.md @@ -156,6 +270,7 @@ docs/user-guide/kubectl/kubectl_create_configmap.md docs/user-guide/kubectl/kubectl_create_deployment.md docs/user-guide/kubectl/kubectl_create_namespace.md docs/user-guide/kubectl/kubectl_create_poddisruptionbudget.md +docs/user-guide/kubectl/kubectl_create_priorityclass.md docs/user-guide/kubectl/kubectl_create_quota.md docs/user-guide/kubectl/kubectl_create_role.md docs/user-guide/kubectl/kubectl_create_rolebinding.md diff --git a/vendor/k8s.io/kubernetes/docs/admin/federation-apiserver.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm.md similarity index 100% rename from vendor/k8s.io/kubernetes/docs/admin/federation-apiserver.md rename to vendor/k8s.io/kubernetes/docs/admin/kubeadm.md diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_all.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_all.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_all.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_kube-dns.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_kube-dns.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_kube-dns.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_kube-proxy.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_kube-proxy.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_addon_kube-proxy.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_cluster-info.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_cluster-info.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_cluster-info.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-auto-approve.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-auto-approve.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-auto-approve.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-post-csrs.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-post-csrs.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_bootstrap-token_node_allow-post-csrs.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_all.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_all.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_all.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_apiserver-kubelet-client.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_apiserver-kubelet-client.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_apiserver-kubelet-client.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_apiserver.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_apiserver.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_apiserver.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_ca.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_ca.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_ca.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_front-proxy-ca.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_front-proxy-ca.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_front-proxy-ca.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_front-proxy-client.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_front-proxy-client.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_front-proxy-client.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_sa.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_sa.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_certs_sa.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_all.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_all.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_all.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_apiserver.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_apiserver.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_apiserver.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_controller-manager.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_controller-manager.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_controller-manager.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_scheduler.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_scheduler.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_controlplane_scheduler.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_etcd.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_etcd.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_etcd.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_etcd_local.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_etcd_local.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_etcd_local.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_admin.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_admin.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_admin.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_all.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_all.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_all.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_controller-manager.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_controller-manager.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_controller-manager.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_kubelet.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_kubelet.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_kubelet.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_scheduler.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_scheduler.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_scheduler.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_user.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_user.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_kubeconfig_user.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_mark-master.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_mark-master.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_mark-master.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight_master.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight_master.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight_master.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight_node.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight_node.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_preflight_node.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_selfhosting.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_selfhosting.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_selfhosting.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_upload-config.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_upload-config.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_alpha_phase_upload-config.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_completion.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_completion.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_completion.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload_from-file.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload_from-file.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload_from-file.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload_from-flags.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload_from-flags.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_upload_from-flags.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_view.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_view.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_config_view.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_init.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_init.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_init.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_join.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_join.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_join.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_reset.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_reset.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_reset.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_create.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_create.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_create.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_delete.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_delete.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_delete.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_generate.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_generate.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_generate.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_list.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_list.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_token_list.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade_apply.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade_apply.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade_apply.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade_plan.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade_plan.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_upgrade_plan.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/admin/kubeadm_version.md b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_version.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/admin/kubeadm_version.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/OWNERS b/vendor/k8s.io/kubernetes/docs/api-reference/OWNERS new file mode 100644 index 000000000..8f7783f9f --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/api-reference/OWNERS @@ -0,0 +1,4 @@ +approvers: +- api-approvers +reviewers: +- api-reviewers diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/admissionregistration.k8s.io/v1alpha1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/admissionregistration.k8s.io/v1alpha1/definitions.html index ffd1dc037..61d062465 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/admissionregistration.k8s.io/v1alpha1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/admissionregistration.k8s.io/v1alpha1/definitions.html @@ -376,10 +376,16 @@

    Top Level API Objects

    v1alpha1.InitializerConfigurationList

  • -

    v1alpha1.ExternalAdmissionHookConfiguration

    +

    v1alpha1.ValidatingWebhookConfiguration

  • -

    v1alpha1.ExternalAdmissionHookConfigurationList

    +

    v1alpha1.ValidatingWebhookConfigurationList

    +
  • +
  • +

    v1alpha1.MutatingWebhookConfiguration

    +
  • +
  • +

    v1alpha1.MutatingWebhookConfigurationList

  • @@ -444,12 +450,104 @@

    v1.APIResourceList

    -

    v1alpha1.OperationType

    +

    v1alpha1.Webhook

    +
    +

    Webhook describes an admission webhook and the resources and operations it applies to.

    +
    +
    NameOptionTypeDescriptionDefault
    gostring Message bool if true, a `GoString` method is generated. This returns a string representing valid go code to reproduce the current state of the struct. false
    onlyone (deprecated) Message bool if true, all fields must be nullable and only one of the fields may be set, like a union. Two methods are generated: `GetValue() interface{}` and `SetValue(v interface{}) (set bool)`. These provide easier interaction with a union. false
    onlyone Message bool if true, all fields must be nullable and only one of the fields may be set, like a union. Two methods are generated: `GetValue() interface{}` and `SetValue(v interface{}) (set bool)`. These provide easier interaction with a union. false
    equal Message bool if true, an Equal method is generated false
    compare Message bool if true, a Compare method is generated. This is very useful for quickly implementing sort on a list of protobuf structs false
    verbose_equal Message bool if true, a verbose equal method is generated for the message. This returns an error which describes the exact element which is not equal to the exact element in the other struct. false
    +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    name

    The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where "imagepolicy" is the name of the webhook, and kubernetes.io is the name of the organization. Required.

    true

    string

    clientConfig

    ClientConfig defines how to communicate with the hook. Required

    true

    v1alpha1.WebhookClientConfig

    rules

    Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches any Rule.

    false

    v1alpha1.RuleWithOperations array

    failurePolicy

    FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.

    false

    v1alpha1.FailurePolicyType

    namespaceSelector

    NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is other cluster scoped resource, it is not subjected to the webhook.
    +
    +For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": {
    + "matchExpressions": [
    + {
    + "key": "runlevel",
    + "operator": "NotIn",
    + "values": [
    + "0",
    + "1"
    + ]
    + }
    + ]
    +}
    +
    +If instead you want to only run the webhook on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": {
    + "matchExpressions": [
    + {
    + "key": "environment",
    + "operator": "In",
    + "values": [
    + "prod",
    + "staging"
    + ]
    + }
    + ]
    +}
    +
    +See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.
    +
    +Default to the empty LabelSelector, which matches everything.

    false

    v1.LabelSelector

    v1alpha1.FailurePolicyType

    +
    +
    +

    v1alpha1.OperationType

    +

    v1alpha1.Rule

    @@ -504,6 +602,68 @@

    v1alpha1.Rule

    +
    +
    +

    v1alpha1.WebhookClientConfig

    +
    +

    WebhookClientConfig contains the information to make a TLS connection with the webhook

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    url

    url gives the location of the webhook, in standard URL form ([scheme://]host:port/path). Exactly one of url or service must be specified.
    +
    +The host should not refer to a service running in the cluster; use the service field instead. The host might be resolved via external DNS in some apiservers (e.g., kube-apiserver cannot resolve in-cluster DNS as that would be a layering violation). host may also be an IP address.
    +
    +Please note that using localhost or 127.0.0.1 as a host is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.
    +
    +The scheme must be "https"; the URL must begin with "https://".
    +
    +A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.
    +
    +Attempting to use a user or basic auth e.g. "user:password@" is not allowed. Fragments ("#…") and query parameters ("?…") are not allowed, either.

    false

    string

    service

    service is a reference to the service for this webhook. Either service or url must be specified.
    +
    +If the webhook is running within the cluster, then you should use service.
    +
    +If there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error.

    true

    v1alpha1.ServiceReference

    caBundle

    caBundle is a PEM encoded CA bundle which will be used to validate the webhook’s server certificate. Required.

    true

    string

    +

    v1alpha1.RuleWithOperations

    @@ -688,47 +848,6 @@

    v1.Preconditions

    -
    -
    -

    v1alpha1.AdmissionHookClientConfig

    -
    -

    AdmissionHookClientConfig contains the information to make a TLS connection with the webhook

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    service

    Service is a reference to the service for this webhook. If there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error. Required

    true

    v1alpha1.ServiceReference

    caBundle

    CABundle is a PEM encoded CA bundle which will be used to validate webhook’s server certificate. Required

    true

    string

    -

    v1.Status

    @@ -852,9 +971,9 @@

    v1.WatchEvent

    -

    v1alpha1.ExternalAdmissionHook

    +

    v1.LabelSelector

    -

    ExternalAdmissionHook describes an external admission webhook and the resources and operations it applies to.

    +

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    @@ -875,31 +994,65 @@

    v1alpha1.ExternalAdmissionHook

    - - - - + + + + - - + + + + + + + +

    name

    The name of the external admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where "imagepolicy" is the name of the webhook, and kubernetes.io is the name of the organization. Required.

    true

    string

    matchLabels

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    false

    object

    clientConfig

    ClientConfig defines how to communicate with the hook. Required

    matchExpressions

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    false

    v1.LabelSelectorRequirement array

    + +
    +
    +

    v1.LabelSelectorRequirement

    +
    +

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    +
    + +++++++ + + + + + + + + + + + + + - + - - - - + + + + - - + + - + @@ -931,18 +1084,25 @@

    v1alpha1.ServiceReference

    - + - + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    key

    key is the label key that the selector applies to.

    true

    v1alpha1.AdmissionHookClientConfig

    string

    rules

    Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches any Rule.

    false

    v1alpha1.RuleWithOperations array

    operator

    operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    true

    string

    failurePolicy

    FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.

    values

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    false

    v1alpha1.FailurePolicyType

    string array

    namespace

    Namespace is the namespace of the service Required

    namespace is the namespace of the service. Required

    true

    string

    name

    Name is the name of the service Required

    name is the name of the service. Required

    true

    string

    path

    path is an optional URL path which will be sent in any request to this service.

    false

    string

    @@ -989,9 +1149,9 @@

    v1alpha1.Initializer

    -

    v1alpha1.ExternalAdmissionHookConfiguration

    +

    v1alpha1.ValidatingWebhookConfiguration

    -

    ExternalAdmissionHookConfiguration describes the configuration of initializers.

    +

    ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.

    @@ -1033,10 +1193,10 @@

    v1alpha1.ExternalAdmission

    - - + + - + @@ -1046,6 +1206,116 @@

    v1alpha1.ExternalAdmission

    v1.DeletionPropagation

    +
    +
    +

    v1alpha1.MutatingWebhookConfigurationList

    +
    +

    MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.

    +
    +

    externalAdmissionHooks

    ExternalAdmissionHooks is a list of external admission webhooks and the affected resources and operations.

    webhooks

    Webhooks is a list of webhooks and the affected resources and operations.

    false

    v1alpha1.ExternalAdmissionHook array

    v1alpha1.Webhook array

    +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    items

    List of MutatingWebhookConfiguration.

    true

    v1alpha1.MutatingWebhookConfiguration array

    + +
    +
    +

    v1alpha1.MutatingWebhookConfiguration

    +
    +

    MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.

    false

    v1.ObjectMeta

    webhooks

    Webhooks is a list of webhooks and the affected resources and operations.

    false

    v1alpha1.Webhook array

    +

    v1.Patch

    @@ -1113,7 +1383,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -1121,6 +1391,61 @@

    v1.DeleteOptions

    +
    +
    +

    v1alpha1.ValidatingWebhookConfigurationList

    +
    +

    ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    items

    List of ValidatingWebhookConfiguration.

    true

    v1alpha1.ValidatingWebhookConfiguration array

    +

    v1.StatusDetails

    @@ -1387,7 +1712,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1649,61 +1974,6 @@

    v1.StatusCause

    -
    -
    -

    v1alpha1.ExternalAdmissionHookConfigurationList

    -
    -

    ExternalAdmissionHookConfigurationList is a list of ExternalAdmissionHookConfiguration.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    items

    List of ExternalAdmissionHookConfiguration.

    true

    v1alpha1.ExternalAdmissionHookConfiguration array

    -

    v1alpha1.InitializerConfigurationList

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/admissionregistration.k8s.io/v1alpha1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/admissionregistration.k8s.io/v1alpha1/operations.html index 36f8146de..ac2fcc134 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/admissionregistration.k8s.io/v1alpha1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/admissionregistration.k8s.io/v1alpha1/operations.html @@ -443,10 +443,10 @@

    Tags

    -

    list or watch objects of kind ExternalAdmissionHookConfiguration

    +

    list or watch objects of kind InitializerConfiguration

    -
    GET /apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations
    @@ -567,7 +567,7 @@

    Responses

    200

    success

    -

    v1alpha1.ExternalAdmissionHookConfigurationList

    +

    v1alpha1.InitializerConfigurationList

    @@ -617,10 +617,10 @@

    Tags

    -

    delete collection of ExternalAdmissionHookConfiguration

    +

    delete collection of InitializerConfiguration

    -
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations
    +
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations
    @@ -785,10 +785,10 @@

    Tags

    -

    create an ExternalAdmissionHookConfiguration

    +

    create an InitializerConfiguration

    -
    POST /apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations
    +
    POST /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations
    -

    read the specified ExternalAdmissionHookConfiguration

    +

    read the specified InitializerConfiguration

    -
    GET /apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations/{name}
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}
    @@ -961,7 +961,7 @@

    Parameters

    PathParameter

    name

    -

    name of the ExternalAdmissionHookConfiguration

    +

    name of the InitializerConfiguration

    true

    string

    @@ -989,7 +989,7 @@

    Responses

    200

    success

    -

    v1alpha1.ExternalAdmissionHookConfiguration

    +

    v1alpha1.InitializerConfiguration

    @@ -1033,10 +1033,10 @@

    Tags

    -

    replace the specified ExternalAdmissionHookConfiguration

    +

    replace the specified InitializerConfiguration

    -
    PUT /apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations/{name}
    +
    PUT /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}
    @@ -1074,13 +1074,13 @@

    Parameters

    body

    true

    -

    v1alpha1.ExternalAdmissionHookConfiguration

    +

    v1alpha1.InitializerConfiguration

    PathParameter

    name

    -

    name of the ExternalAdmissionHookConfiguration

    +

    name of the InitializerConfiguration

    true

    string

    @@ -1108,12 +1108,12 @@

    Responses

    200

    success

    -

    v1alpha1.ExternalAdmissionHookConfiguration

    +

    v1alpha1.InitializerConfiguration

    201

    Created

    -

    v1alpha1.ExternalAdmissionHookConfiguration

    +

    v1alpha1.InitializerConfiguration

    @@ -1157,10 +1157,10 @@

    Tags

    -

    delete an ExternalAdmissionHookConfiguration

    +

    delete an InitializerConfiguration

    -
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations/{name}
    +
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}
    @@ -1220,7 +1220,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -1228,7 +1228,7 @@

    Parameters

    PathParameter

    name

    -

    name of the ExternalAdmissionHookConfiguration

    +

    name of the InitializerConfiguration

    true

    string

    @@ -1300,10 +1300,10 @@

    Tags

    -

    partially update the specified ExternalAdmissionHookConfiguration

    +

    partially update the specified InitializerConfiguration

    -
    PATCH /apis/admissionregistration.k8s.io/v1alpha1/externaladmissionhookconfigurations/{name}
    +
    PATCH /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}
    @@ -1347,7 +1347,7 @@

    Parameters

    PathParameter

    name

    -

    name of the ExternalAdmissionHookConfiguration

    +

    name of the InitializerConfiguration

    true

    string

    @@ -1375,7 +1375,7 @@

    Responses

    200

    success

    -

    v1alpha1.ExternalAdmissionHookConfiguration

    +

    v1alpha1.InitializerConfiguration

    @@ -1425,10 +1425,10 @@

    Tags

    -

    list or watch objects of kind InitializerConfiguration

    +

    list or watch objects of kind MutatingWebhookConfiguration

    -
    GET /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations
    @@ -1549,7 +1549,7 @@

    Responses

    200

    success

    -

    v1alpha1.InitializerConfigurationList

    +

    v1alpha1.MutatingWebhookConfigurationList

    @@ -1599,10 +1599,10 @@

    Tags

    -

    delete collection of InitializerConfiguration

    +

    delete collection of MutatingWebhookConfiguration

    -
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations
    +
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations
    @@ -1767,10 +1767,10 @@

    Tags

    -

    create an InitializerConfiguration

    +

    create a MutatingWebhookConfiguration

    -
    POST /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations
    +
    POST /apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations
    -

    read the specified InitializerConfiguration

    +

    read the specified MutatingWebhookConfiguration

    -
    GET /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations/{name}
    @@ -1943,7 +1943,7 @@

    Parameters

    PathParameter

    name

    -

    name of the InitializerConfiguration

    +

    name of the MutatingWebhookConfiguration

    true

    string

    @@ -1971,7 +1971,7 @@

    Responses

    200

    success

    -

    v1alpha1.InitializerConfiguration

    +

    v1alpha1.MutatingWebhookConfiguration

    @@ -2015,10 +2015,10 @@

    Tags

    -

    replace the specified InitializerConfiguration

    +

    replace the specified MutatingWebhookConfiguration

    -
    PUT /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}
    +
    PUT /apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations/{name}
    @@ -2056,13 +2056,13 @@

    Parameters

    body

    true

    -

    v1alpha1.InitializerConfiguration

    +

    v1alpha1.MutatingWebhookConfiguration

    PathParameter

    name

    -

    name of the InitializerConfiguration

    +

    name of the MutatingWebhookConfiguration

    true

    string

    @@ -2090,12 +2090,12 @@

    Responses

    200

    success

    -

    v1alpha1.InitializerConfiguration

    +

    v1alpha1.MutatingWebhookConfiguration

    201

    Created

    -

    v1alpha1.InitializerConfiguration

    +

    v1alpha1.MutatingWebhookConfiguration

    @@ -2139,10 +2139,10 @@

    Tags

    -

    delete an InitializerConfiguration

    +

    delete a MutatingWebhookConfiguration

    -
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}
    +
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations/{name}
    @@ -2202,7 +2202,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -2210,7 +2210,7 @@

    Parameters

    PathParameter

    name

    -

    name of the InitializerConfiguration

    +

    name of the MutatingWebhookConfiguration

    true

    string

    @@ -2282,10 +2282,10 @@

    Tags

    -

    partially update the specified InitializerConfiguration

    +

    partially update the specified MutatingWebhookConfiguration

    -
    PATCH /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}
    +
    PATCH /apis/admissionregistration.k8s.io/v1alpha1/mutatingwebhookconfigurations/{name}
    @@ -2329,7 +2329,7 @@

    Parameters

    PathParameter

    name

    -

    name of the InitializerConfiguration

    +

    name of the MutatingWebhookConfiguration

    true

    string

    @@ -2357,7 +2357,7 @@

    Responses

    200

    success

    -

    v1alpha1.InitializerConfiguration

    +

    v1alpha1.MutatingWebhookConfiguration

    @@ -2407,10 +2407,10 @@

    Tags

    -

    watch individual changes to a list of ExternalAdmissionHookConfiguration

    +

    list or watch objects of kind ValidatingWebhookConfiguration

    -
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/externaladmissionhookconfigurations
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations
    @@ -2531,7 +2531,7 @@

    Responses

    200

    success

    -

    v1.WatchEvent

    +

    v1alpha1.ValidatingWebhookConfigurationList

    @@ -2581,10 +2581,10 @@

    Tags

    -

    watch changes to an object of kind ExternalAdmissionHookConfiguration

    +

    delete collection of ValidatingWebhookConfiguration

    -
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/externaladmissionhookconfigurations/{name}
    +
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations
    @@ -2682,14 +2682,6 @@

    Parameters

    string

    - -

    PathParameter

    -

    name

    -

    name of the ExternalAdmissionHookConfiguration

    -

    true

    -

    string

    - - @@ -2713,7 +2705,7 @@

    Responses

    200

    success

    -

    v1.WatchEvent

    +

    v1.Status

    @@ -2742,12 +2734,6 @@

    Produces

  • application/vnd.kubernetes.protobuf

  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
  • @@ -2763,10 +2749,10 @@

    Tags

    -

    watch individual changes to a list of InitializerConfiguration

    +

    create a ValidatingWebhookConfiguration

    -
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations
    +
    POST /apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations
    @@ -2800,68 +2786,11 @@

    Parameters

    -

    QueryParameter

    -

    labelSelector

    -

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    -

    false

    -

    string

    - - - -

    QueryParameter

    -

    fieldSelector

    -

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    -

    false

    -

    string

    - - - -

    QueryParameter

    -

    includeUninitialized

    -

    If true, partially initialized resources are included in the response.

    -

    false

    -

    boolean

    - - - -

    QueryParameter

    -

    watch

    -

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    -

    false

    -

    boolean

    - - - -

    QueryParameter

    -

    resourceVersion

    -

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    -

    false

    -

    string

    - - - -

    QueryParameter

    -

    timeoutSeconds

    -

    Timeout for the list/watch call.

    -

    false

    -

    integer (int32)

    - - - -

    QueryParameter

    -

    limit

    -

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    -

    false

    -

    integer (int32)

    +

    BodyParameter

    +

    body

    - - -

    QueryParameter

    -

    continue

    -

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    -

    false

    -

    string

    +

    true

    +

    v1alpha1.ValidatingWebhookConfiguration

    @@ -2885,9 +2814,19 @@

    Responses

    +

    202

    +

    Accepted

    +

    v1alpha1.ValidatingWebhookConfiguration

    + +

    200

    success

    -

    v1.WatchEvent

    +

    v1alpha1.ValidatingWebhookConfiguration

    + + +

    201

    +

    Created

    +

    v1alpha1.ValidatingWebhookConfiguration

    @@ -2916,12 +2855,6 @@

    Produces

  • application/vnd.kubernetes.protobuf

  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
  • @@ -2937,10 +2870,10 @@

    Tags

    -

    watch changes to an object of kind InitializerConfiguration

    +

    read the specified ValidatingWebhookConfiguration

    -
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations/{name}
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations/{name}
    @@ -2975,73 +2908,24 @@

    Parameters

    QueryParameter

    -

    labelSelector

    -

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    -

    false

    -

    string

    - - - -

    QueryParameter

    -

    fieldSelector

    -

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    -

    false

    -

    string

    - - - -

    QueryParameter

    -

    includeUninitialized

    -

    If true, partially initialized resources are included in the response.

    +

    export

    +

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    -

    watch

    -

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    +

    exact

    +

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    -

    QueryParameter

    -

    resourceVersion

    -

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    -

    false

    -

    string

    - - - -

    QueryParameter

    -

    timeoutSeconds

    -

    Timeout for the list/watch call.

    -

    false

    -

    integer (int32)

    - - - -

    QueryParameter

    -

    limit

    -

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    -

    false

    -

    integer (int32)

    - - - -

    QueryParameter

    -

    continue

    -

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    -

    false

    -

    string

    - - -

    PathParameter

    name

    -

    name of the InitializerConfiguration

    +

    name of the ValidatingWebhookConfiguration

    true

    string

    @@ -3069,7 +2953,7 @@

    Responses

    200

    success

    -

    v1.WatchEvent

    +

    v1alpha1.ValidatingWebhookConfiguration

    @@ -3098,17 +2982,1471 @@

    Produces

  • application/vnd.kubernetes.protobuf

  • + +
    +
    +
    +

    Tags

    +
    +
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      +

      apisadmissionregistration.k8s.iov1alpha1

    + +
    +

    replace the specified ValidatingWebhookConfiguration

    +
    +
    +
    PUT /apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations/{name}
    +
    +
    -

    Tags

    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1alpha1.ValidatingWebhookConfiguration

    PathParameter

    name

    name of the ValidatingWebhookConfiguration

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1alpha1.ValidatingWebhookConfiguration

    201

    Created

    v1alpha1.ValidatingWebhookConfiguration

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisadmissionregistration.k8s.iov1alpha1

      +
    • +
    +
    +
    +
    +
    +

    delete a ValidatingWebhookConfiguration

    +
    +
    +
    DELETE /apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    PathParameter

    name

    name of the ValidatingWebhookConfiguration

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisadmissionregistration.k8s.iov1alpha1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified ValidatingWebhookConfiguration

    +
    +
    +
    PATCH /apis/admissionregistration.k8s.io/v1alpha1/validatingwebhookconfigurations/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    name

    name of the ValidatingWebhookConfiguration

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1alpha1.ValidatingWebhookConfiguration

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisadmissionregistration.k8s.iov1alpha1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of InitializerConfiguration

    +
    +
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisadmissionregistration.k8s.iov1alpha1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind InitializerConfiguration

    +
    +
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    name

    name of the InitializerConfiguration

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisadmissionregistration.k8s.iov1alpha1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of MutatingWebhookConfiguration

    +
    +
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/mutatingwebhookconfigurations
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisadmissionregistration.k8s.iov1alpha1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind MutatingWebhookConfiguration

    +
    +
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/mutatingwebhookconfigurations/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    name

    name of the MutatingWebhookConfiguration

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisadmissionregistration.k8s.iov1alpha1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of ValidatingWebhookConfiguration

    +
    +
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/validatingwebhookconfigurations
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisadmissionregistration.k8s.iov1alpha1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind ValidatingWebhookConfiguration

    +
    +
    +
    GET /apis/admissionregistration.k8s.io/v1alpha1/watch/validatingwebhookconfigurations/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    name

    name of the ValidatingWebhookConfiguration

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    @@ -518,6 +542,89 @@

    v1.NodeSelectorTerm

    +
    +
    +

    v1.StatefulSetSpec

    +
    +

    A StatefulSetSpec is the specification of a StatefulSet.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    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.

    false

    integer (int32)

    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

    true

    v1.LabelSelector

    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.

    true

    v1.PodTemplateSpec

    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.

    false

    v1.PersistentVolumeClaim array

    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.

    true

    string

    podManagementPolicy

    podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is OrderedReady, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is Parallel which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.

    false

    string

    updateStrategy

    updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.

    false

    v1.StatefulSetUpdateStrategy

    revisionHistoryLimit

    revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet’s revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.

    false

    integer (int32)

    +

    v1.Preconditions

    @@ -789,6 +896,68 @@

    v1.LabelSelector

    +
    +
    +

    v1.PersistentVolumeClaimSpec

    +
    +

    PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    accessModes

    AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

    false

    v1.PersistentVolumeAccessMode array

    selector

    A label query over volumes to consider for binding.

    false

    v1.LabelSelector

    resources

    Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

    false

    v1.ResourceRequirements

    volumeName

    VolumeName is the binding reference to the PersistentVolume backing this claim.

    false

    string

    storageClassName

    Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

    false

    string

    +

    v1.CephFSVolumeSource

    @@ -1053,6 +1222,47 @@

    v1.DaemonSet

    +
    +
    +

    v1.DeploymentStrategy

    +
    +

    DeploymentStrategy describes how to replace existing pods with new ones.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.

    false

    string

    rollingUpdate

    Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.

    false

    v1.RollingUpdateDeployment

    +

    v1.ConfigMapVolumeSource

    @@ -1203,6 +1413,47 @@

    v1.SecretEnvSource

    +
    +
    +

    v1.ScaleStatus

    +
    +

    ScaleStatus represents the current status of a scale subresource.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    replicas

    actual number of observed instances of the scaled object.

    true

    integer (int32)

    selector

    label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors

    false

    string

    +

    v1.PortworxVolumeSource

    @@ -1529,7 +1780,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1592,13 +1843,9 @@

    v1.ObjectMeta

    -

    types.UID

    - -
    -
    -

    v1.AzureFileVolumeSource

    +

    v1.ControllerRevisionList

    -

    AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

    +

    ControllerRevisionList is a resource containing a list of ControllerRevision objects.

    @@ -1619,34 +1866,41 @@

    v1.AzureFileVolumeSource

    - - - + + + - - - + + + - - - - + + + + + + + + + + +

    secretName

    the name of secret that contains Azure Storage Account Name and Key

    true

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    shareName

    Share Name

    true

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    metadata

    More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ListMeta

    items

    Items is the list of ControllerRevisions

    true

    v1.ControllerRevision array

    -

    v1.ISCSIVolumeSource

    +

    v1.AzureFileVolumeSource

    -

    Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.

    +

    AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

    @@ -1667,27 +1921,79 @@

    v1.ISCSIVolumeSource

    - - + + - - + + - - - - - - - + + + + + + + +

    targetPortal

    iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

    secretName

    the name of secret that contains Azure Storage Account Name and Key

    true

    string

    iqn

    Target iSCSI Qualified Name.

    shareName

    Share Name

    true

    string

    lun

    iSCSI target lun number.

    true

    integer (int32)

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    + +
    +
    +

    types.UID

    + +
    +
    +

    v1.ISCSIVolumeSource

    +
    +

    Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1791,7 +2097,7 @@

    v1.EmptyDirVolumeSource

    v1.PodAffinityTerm

    -

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

    +

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running

    NameDescriptionRequiredSchemaDefault

    targetPortal

    iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

    true

    string

    iqn

    Target iSCSI Qualified Name.

    true

    string

    lun

    iSCSI target lun number.

    true

    integer (int32)

    iscsiInterface

    Optional: Defaults to default (tcp). iSCSI interface name that uses an iSCSI transport.

    false

    @@ -1827,8 +2133,8 @@

    v1.PodAffinityTerm

    - - + + @@ -1883,6 +2189,68 @@

    v1.EnvFromSource

    topologyKey

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

    false

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

    true

    string

    +
    +
    +

    v1.PersistentVolumeClaim

    +
    +

    PersistentVolumeClaim is a user’s request for and claim to a persistent volume

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    spec

    Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

    false

    v1.PersistentVolumeClaimSpec

    status

    Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

    false

    v1.PersistentVolumeClaimStatus

    +

    v1.PodAffinity

    @@ -2054,6 +2422,130 @@

    v1.ListMeta

    +
    +
    +

    v1.PersistentVolumeClaimStatus

    +
    +

    PersistentVolumeClaimStatus is the current status of a persistent volume claim.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    phase

    Phase represents the current phase of PersistentVolumeClaim.

    false

    string

    accessModes

    AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

    false

    v1.PersistentVolumeAccessMode array

    capacity

    Represents the actual resources of the underlying volume.

    false

    object

    conditions

    Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to ResizeStarted.

    false

    v1.PersistentVolumeClaimCondition array

    + +
    +
    +

    v1.PersistentVolumeClaimCondition

    +
    +

    PersistentVolumeClaimCondition contails details about state of pvc

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    true

    string

    status

    true

    string

    lastProbeTime

    Last time we probed the condition.

    false

    string

    lastTransitionTime

    Last time the condition transitioned from one status to another.

    false

    string

    reason

    Unique, this should be a short, machine understandable string that gives the reason for condition’s last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.

    false

    string

    message

    Human-readable message indicating details about last transition.

    false

    string

    +

    v1.SecretVolumeSource

    @@ -2231,9 +2723,9 @@

    v1.EnvVarSource

    -

    v1.AzureDiskVolumeSource

    +

    v1.Scale

    -

    AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

    +

    Scale represents a scaling request for a resource.

    @@ -2254,45 +2746,38 @@

    v1.AzureDiskVolumeSource

    - - - + + + - - - + + + - - + + - + - - + + - + - - - - - - - - - + + - + @@ -2348,7 +2833,131 @@

    v1.KeyToPath

    -

    v1.VsphereVirtualDiskVolumeSource

    +

    v1.AzureDiskVolumeSource

    +
    +

    AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

    +
    +

    diskName

    The Name of the data disk in the blob storage

    true

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    diskURI

    The URI the data disk in the blob storage

    true

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    cachingMode

    Host Caching mode: None, Read Only, Read Write.

    metadata

    Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.

    false

    v1.AzureDataDiskCachingMode

    v1.ObjectMeta

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    spec

    defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.

    false

    string

    v1.ScaleSpec

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    kind

    Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared

    status

    current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.

    false

    v1.AzureDataDiskKind

    v1.ScaleStatus

    +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    diskName

    The Name of the data disk in the blob storage

    true

    string

    diskURI

    The URI the data disk in the blob storage

    true

    string

    cachingMode

    Host Caching mode: None, Read Only, Read Write.

    false

    v1.AzureDataDiskCachingMode

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    kind

    Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared

    false

    v1.AzureDataDiskKind

    + +
    +
    +

    v1.ReplicaSetList

    +
    +

    ReplicaSetList is a collection of ReplicaSets.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    items

    List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller

    true

    v1.ReplicaSet array

    + +
    +
    +

    v1.VsphereVirtualDiskVolumeSource

    Represents a vSphere volume resource.

    @@ -2427,8 +3036,8 @@

    v1.DaemonSetSpec

    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

    -

    false

    +

    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

    +

    true

    v1.LabelSelector

    @@ -2524,7 +3133,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -2975,6 +3584,40 @@

    v1.WeightedPodAffinityTerm

    +
    +
    +

    v1.RollingUpdateStatefulSetStrategy

    +
    +

    RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    partition

    Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.

    false

    integer (int32)

    +

    v1.SecretKeySelector

    @@ -3597,6 +4240,75 @@

    v1.StatusCause

    +
    +
    +

    v1.DeploymentCondition

    +
    +

    DeploymentCondition describes the state of a deployment at a certain point.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    Type of deployment condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastUpdateTime

    The last time this condition was updated.

    false

    string

    lastTransitionTime

    Last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    +

    v1.RBDVolumeSource

    @@ -3826,21 +4538,21 @@

    v1.ScaleIOVolumeSource

    protectionDomain

    -

    The name of the Protection Domain for the configured storage (defaults to "default").

    +

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    -

    The Storage Pool associated with the protection domain (defaults to "default").

    +

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    -

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    +

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    @@ -4277,9 +4989,9 @@

    v1.TCPSocketAction

    -

    v1.HTTPGetAction

    +

    v1.StatefulSetStatus

    -

    HTTPGetAction describes an action based on HTTP Get requests.

    +

    StatefulSetStatus represents the current state of a StatefulSet.

    @@ -4300,38 +5012,66 @@

    v1.HTTPGetAction

    - - + + - + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + + + + + + + + @@ -4339,9 +5079,9 @@

    v1.HTTPGetAction

    -

    v1.StatusDetails

    +

    v1.StatefulSetCondition

    -

    StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

    +

    StatefulSetCondition describes the state of a statefulset at a certain point.

    path

    Path to access on the HTTP server.

    observedGeneration

    observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet’s generation, which is updated on mutation by the API Server.

    false

    string

    integer (int64)

    port

    Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

    replicas

    replicas is the number of Pods created by the StatefulSet controller.

    true

    string

    integer (int32)

    host

    Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

    readyReplicas

    readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.

    false

    integer (int32)

    currentReplicas

    currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.

    false

    integer (int32)

    updatedReplicas

    updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.

    false

    integer (int32)

    currentRevision

    currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).

    false

    string

    scheme

    Scheme to use for connecting to the host. Defaults to HTTP.

    updateRevision

    updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)

    false

    string

    httpHeaders

    Custom headers to set in the request. HTTP allows repeated headers.

    collisionCount

    collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.

    false

    v1.HTTPHeader array

    integer (int32)

    conditions

    Represents the latest available observations of a statefulset’s current state.

    false

    v1.StatefulSetCondition array

    @@ -4362,8 +5102,263 @@

    v1.StatusDetails

    - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    name

    The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

    type

    Type of statefulset condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastTransitionTime

    Last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    + +
    +
    +

    v1.ReplicaSetStatus

    +
    +

    ReplicaSetStatus represents the current status of a ReplicaSet.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    replicas

    Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller

    true

    integer (int32)

    fullyLabeledReplicas

    The number of pods that have labels matching the labels of the pod template of the replicaset.

    false

    integer (int32)

    readyReplicas

    The number of ready replicas for this replica set.

    false

    integer (int32)

    availableReplicas

    The number of available replicas (ready for at least minReadySeconds) for this replica set.

    false

    integer (int32)

    observedGeneration

    ObservedGeneration reflects the generation of the most recently observed ReplicaSet.

    false

    integer (int64)

    conditions

    Represents the latest available observations of a replica set’s current state.

    false

    v1.ReplicaSetCondition array

    + +
    +
    +

    v1.ReplicaSetCondition

    +
    +

    ReplicaSetCondition describes the state of a replica set at a certain point.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    Type of replica set condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastTransitionTime

    The last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    + +
    +
    +

    v1.HTTPGetAction

    +
    +

    HTTPGetAction describes an action based on HTTP Get requests.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    path

    Path to access on the HTTP server.

    false

    string

    port

    Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

    true

    string

    host

    Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

    false

    string

    scheme

    Scheme to use for connecting to the host. Defaults to HTTP.

    false

    string

    httpHeaders

    Custom headers to set in the request. HTTP allows repeated headers.

    false

    v1.HTTPHeader array

    + +
    +
    +

    v1.StatusDetails

    +
    +

    StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

    +
    + +++++++ + + + + + + + + + + + + + @@ -4544,7 +5539,7 @@

    v1.Container

    - + @@ -4639,9 +5634,9 @@

    v1.PodSecurityContext

    -

    v1.OwnerReference

    +

    v1.ReplicaSet

    -

    OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

    +

    ReplicaSet ensures that a specified number of pod replicas are running at any given time.

    NameDescriptionRequiredSchemaDefault

    name

    The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

    false

    string

    securityContext

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    false

    v1.SecurityContext

    @@ -4662,31 +5657,93 @@

    v1.OwnerReference

    - - - + + + - - - + + + - - - - + + + + - - - - + + + + + + + + + + + + + + +

    apiVersion

    API version of the referent.

    true

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    true

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    name

    Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    true

    string

    metadata

    If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    uid

    UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    true

    string

    spec

    Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1.ReplicaSetSpec

    status

    Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1.ReplicaSetStatus

    + +
    +
    +

    v1.OwnerReference

    +
    +

    OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4706,6 +5763,81 @@

    v1.OwnerReference

    NameDescriptionRequiredSchemaDefault

    apiVersion

    API version of the referent.

    true

    string

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    true

    string

    name

    Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    true

    string

    uid

    UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    true

    string

    +
    +
    +

    v1.ScaleSpec

    +
    +

    ScaleSpec describes the attributes of a scale subresource.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    replicas

    desired number of instances for the scaled object.

    false

    integer (int32)

    + +
    +
    +

    v1.RollingUpdateDeployment

    +
    +

    Spec to control the desired behavior of rolling update.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    maxUnavailable

    The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.

    false

    string

    maxSurge

    The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.

    false

    string

    +

    v1.APIResource

    @@ -4796,6 +5928,61 @@

    v1.APIResource

    +
    +
    +

    v1.ReplicaSetSpec

    +
    +

    ReplicaSetSpec is the specification of a ReplicaSet.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    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

    false

    integer (int32)

    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)

    false

    integer (int32)

    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

    true

    v1.LabelSelector

    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

    false

    v1.PodTemplateSpec

    +

    v1.NodeSelectorRequirement

    @@ -4936,6 +6123,89 @@

    v1.SecretProjection

    +
    +
    +

    v1.DeploymentStatus

    +
    +

    DeploymentStatus is the most recently observed status of the Deployment.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    observedGeneration

    The generation observed by the deployment controller.

    false

    integer (int64)

    replicas

    Total number of non-terminated pods targeted by this deployment (their labels match the selector).

    false

    integer (int32)

    updatedReplicas

    Total number of non-terminated pods targeted by this deployment that have the desired template spec.

    false

    integer (int32)

    readyReplicas

    Total number of ready pods targeted by this deployment.

    false

    integer (int32)

    availableReplicas

    Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.

    false

    integer (int32)

    unavailableReplicas

    Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.

    false

    integer (int32)

    conditions

    Represents the latest available observations of a deployment’s current state.

    false

    v1.DeploymentCondition array

    collisionCount

    Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.

    false

    integer (int32)

    +

    v1.CinderVolumeSource

    @@ -4986,9 +6256,9 @@

    v1.CinderVolumeSource

    -

    v1.SecurityContext

    +

    v1.DeploymentList

    -

    SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.

    +

    DeploymentList is a list of Deployments.

    @@ -5009,17 +6279,72 @@

    v1.SecurityContext

    - - + + - + - - - - + + + + + + + + + + + + + + + + + + + + + +

    capabilities

    The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.Capabilities

    string

    privileged

    Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.

    false

    boolean

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata.

    false

    v1.ListMeta

    items

    Items is the list of Deployments.

    true

    v1.Deployment array

    + +
    +
    +

    v1.SecurityContext

    +
    +

    SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + @@ -5051,23 +6376,267 @@

    v1.SecurityContext

    - - - - + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    capabilities

    The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.

    false

    v1.Capabilities

    privileged

    Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.

    false

    boolean

    false

    false

    allowPrivilegeEscalation

    AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN

    false

    boolean

    allowPrivilegeEscalation

    AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN

    false

    boolean

    false

    + +
    +
    +

    v1.AWSElasticBlockStoreVolumeSource

    +
    +

    Represents a Persistent Disk resource in AWS.

    +
    +
    +

    An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    volumeID

    Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    true

    string

    fsType

    Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    false

    string

    partition

    The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

    false

    integer (int32)

    readOnly

    Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    false

    boolean

    false

    + +
    +
    +

    v1.QuobyteVolumeSource

    +
    +

    Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    registry

    Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes

    true

    string

    volume

    Volume is a string that references an already created Quobyte volume by name.

    true

    string

    readOnly

    ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.

    false

    boolean

    false

    user

    User to map volume access to Defaults to serivceaccount user

    false

    string

    group

    Group to map volume access to Default is no group

    false

    string

    + +
    +
    +

    v1.StatefulSet

    +
    +

    StatefulSet represents a set of pods with consistent identities. Identities are defined as:
    + - Network: A single stable DNS and hostname.
    + - Storage: As many VolumeClaims as requested.
    +The StatefulSet guarantees that a given network identity will always map to the same storage identity.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    false

    v1.ObjectMeta

    spec

    Spec defines the desired identities of pods in this set.

    false

    v1.StatefulSetSpec

    status

    Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.

    false

    v1.StatefulSetStatus

    + +
    +
    +

    v1.Deployment

    +
    +

    Deployment enables declarative updates for Pods and ReplicaSets.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object metadata.

    false

    v1.ObjectMeta

    spec

    Specification of the desired behavior of the Deployment.

    false

    v1.DeploymentSpec

    status

    Most recently observed status of the Deployment.

    false

    v1.DeploymentStatus

    -

    v1.AWSElasticBlockStoreVolumeSource

    -
    -

    Represents a Persistent Disk resource in AWS.

    -
    +

    v1.StatefulSetUpdateStrategy

    -

    An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.

    +

    StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.

    @@ -5088,41 +6657,27 @@

    v1.AWSElasticBlockStoreVolumeSourc

    - - - - - - - - - + + - - + + - + - - - - - - -

    volumeID

    Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    true

    string

    fsType

    Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    type

    Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.

    false

    string

    partition

    The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

    rollingUpdate

    RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.

    false

    integer (int32)

    v1.RollingUpdateStatefulSetStrategy

    readOnly

    Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    false

    boolean

    false

    -

    v1.QuobyteVolumeSource

    +

    v1.ControllerRevision

    -

    Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.

    +

    ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.

    @@ -5143,38 +6698,38 @@

    v1.QuobyteVolumeSource

    - - - + + + - - - + + + - - - - + + + + - - + + - - - - + + + + @@ -5182,9 +6737,9 @@

    v1.QuobyteVolumeSource

    -

    v1.DaemonSetList

    +

    v1.StatefulSetList

    -

    DaemonSetList is a collection of daemon sets.

    +

    StatefulSetList is a collection of StatefulSets.

    registry

    Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes

    true

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    volume

    Volume is a string that references an already created Quobyte volume by name.

    true

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    readOnly

    ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.

    false

    boolean

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    user

    User to map volume access to Defaults to serivceaccount user

    data

    Data is the serialized representation of the state.

    false

    string

    group

    Group to map volume access to Default is no group

    false

    string

    revision

    Revision indicates the revision of the state represented by Data.

    true

    integer (int64)

    @@ -5220,16 +6775,16 @@

    v1.DaemonSetList

    - + - + - + @@ -5273,6 +6828,61 @@

    v1.WatchEvent

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ListMeta

    items

    A list of daemon sets.

    true

    v1.DaemonSet array

    v1.StatefulSet array

    +
    +
    +

    v1.DaemonSetList

    +
    +

    DaemonSetList is a collection of daemon sets.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ListMeta

    items

    A list of daemon sets.

    true

    v1.DaemonSet array

    +

    v1.LabelSelectorRequirement

    @@ -5369,6 +6979,10 @@

    v1.EnvVar

    +
    +
    +

    v1.PersistentVolumeAccessMode

    +

    v1.ResourceRequirements

    @@ -5410,6 +7024,68 @@

    v1.ResourceRequirements

    +
    +
    +

    v1.DaemonSetCondition

    +
    +

    DaemonSetCondition describes the state of a DaemonSet at a certain point.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    Type of DaemonSet condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastTransitionTime

    Last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    +

    v1.HostAlias

    @@ -5526,6 +7202,89 @@

    v1.NodeSelector

    +
    +
    +

    v1.DeploymentSpec

    +
    +

    DeploymentSpec is the specification of the desired behavior of the Deployment.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    replicas

    Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.

    false

    integer (int32)

    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.

    true

    v1.LabelSelector

    template

    Template describes the pods that will be created.

    true

    v1.PodTemplateSpec

    strategy

    The deployment strategy to use to replace existing pods with new ones.

    false

    v1.DeploymentStrategy

    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)

    false

    integer (int32)

    revisionHistoryLimit

    The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.

    false

    integer (int32)

    paused

    Indicates that the deployment is paused.

    false

    boolean

    false

    progressDeadlineSeconds

    The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.

    false

    integer (int32)

    +

    v1.Patch

    @@ -5725,6 +7484,13 @@

    v1.DaemonSetStatus

    integer (int32)

    + +

    conditions

    +

    Represents the latest available observations of a DaemonSet’s current state.

    +

    false

    +

    v1.DaemonSetCondition array

    + + diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1/operations.html index 341fb1255..c0b38dd26 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1/operations.html @@ -443,10 +443,10 @@

    Tags

    -

    list or watch objects of kind DaemonSet

    +

    list or watch objects of kind ControllerRevision

    -
    GET /apis/apps/v1/daemonsets
    +
    GET /apis/apps/v1/controllerrevisions
    @@ -567,7 +567,7 @@

    Responses

    200

    success

    -

    v1.DaemonSetList

    +

    v1.ControllerRevisionList

    @@ -617,10 +617,10 @@

    Tags

    -

    list or watch objects of kind DaemonSet

    +

    list or watch objects of kind DaemonSet

    -
    GET /apis/apps/v1/namespaces/{namespace}/daemonsets
    +
    GET /apis/apps/v1/daemonsets
    @@ -718,14 +718,6 @@

    Parameters

    string

    - -

    PathParameter

    -

    namespace

    -

    object name and auth scope, such as for teams and projects

    -

    true

    -

    string

    - - @@ -799,10 +791,10 @@

    Tags

    -

    delete collection of DaemonSet

    +

    list or watch objects of kind Deployment

    -
    DELETE /apis/apps/v1/namespaces/{namespace}/daemonsets
    +
    GET /apis/apps/v1/deployments
    @@ -900,14 +892,6 @@

    Parameters

    string

    - -

    PathParameter

    -

    namespace

    -

    object name and auth scope, such as for teams and projects

    -

    true

    -

    string

    - - @@ -931,7 +915,7 @@

    Responses

    200

    success

    -

    v1.Status

    +

    v1.DeploymentList

    @@ -960,6 +944,12 @@

    Produces

  • application/vnd.kubernetes.protobuf

  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • @@ -975,10 +965,10 @@

    Tags

    -

    create a DaemonSet

    +

    list or watch objects of kind ControllerRevision

    -
    POST /apis/apps/v1/namespaces/{namespace}/daemonsets
    +
    GET /apis/apps/v1/namespaces/{namespace}/controllerrevisions
    @@ -1012,11 +1002,68 @@

    Parameters

    -

    BodyParameter

    -

    body

    +

    QueryParameter

    +

    labelSelector

    +

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    +

    false

    +

    string

    -

    true

    -

    v1.DaemonSet

    + + +

    QueryParameter

    +

    fieldSelector

    +

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    +

    false

    +

    string

    + + + +

    QueryParameter

    +

    includeUninitialized

    +

    If true, partially initialized resources are included in the response.

    +

    false

    +

    boolean

    + + + +

    QueryParameter

    +

    watch

    +

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    +

    false

    +

    boolean

    + + + +

    QueryParameter

    +

    resourceVersion

    +

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    +

    false

    +

    string

    + + + +

    QueryParameter

    +

    timeoutSeconds

    +

    Timeout for the list/watch call.

    +

    false

    +

    integer (int32)

    + + + +

    QueryParameter

    +

    limit

    +

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    +

    false

    +

    integer (int32)

    + + + +

    QueryParameter

    +

    continue

    +

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    +

    false

    +

    string

    @@ -1048,19 +1095,9 @@

    Responses

    -

    202

    -

    Accepted

    -

    v1.DaemonSet

    - -

    200

    success

    -

    v1.DaemonSet

    - - -

    201

    -

    Created

    -

    v1.DaemonSet

    +

    v1.ControllerRevisionList

    @@ -1089,6 +1126,12 @@

    Produces

  • application/vnd.kubernetes.protobuf

  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • @@ -1104,10 +1147,10 @@

    Tags

    -

    read the specified DaemonSet

    +

    delete collection of ControllerRevision

    -
    GET /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/controllerrevisions
    @@ -1142,32 +1185,73 @@

    Parameters

    QueryParameter

    -

    export

    -

    Should this value be exported. Export strips fields that a user can not specify.

    +

    labelSelector

    +

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    +

    false

    +

    string

    + + + +

    QueryParameter

    +

    fieldSelector

    +

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    +

    false

    +

    string

    + + + +

    QueryParameter

    +

    includeUninitialized

    +

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    -

    exact

    -

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    +

    watch

    +

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    -

    PathParameter

    -

    namespace

    -

    object name and auth scope, such as for teams and projects

    -

    true

    +

    QueryParameter

    +

    resourceVersion

    +

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    +

    false

    +

    string

    + + + +

    QueryParameter

    +

    timeoutSeconds

    +

    Timeout for the list/watch call.

    +

    false

    +

    integer (int32)

    + + + +

    QueryParameter

    +

    limit

    +

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    +

    false

    +

    integer (int32)

    + + + +

    QueryParameter

    +

    continue

    +

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    +

    false

    string

    PathParameter

    -

    name

    -

    name of the DaemonSet

    +

    namespace

    +

    object name and auth scope, such as for teams and projects

    true

    string

    @@ -1195,7 +1279,7 @@

    Responses

    200

    success

    -

    v1.DaemonSet

    +

    v1.Status

    @@ -1239,10 +1323,10 @@

    Tags

    -

    replace the specified DaemonSet

    +

    create a ControllerRevision

    -
    PUT /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
    +
    POST /apis/apps/v1/namespaces/{namespace}/controllerrevisions
    @@ -1280,7 +1364,7 @@

    Parameters

    body

    true

    -

    v1.DaemonSet

    +

    v1.ControllerRevision

    @@ -1291,14 +1375,6 @@

    Parameters

    string

    - -

    PathParameter

    -

    name

    -

    name of the DaemonSet

    -

    true

    -

    string

    - - @@ -1320,14 +1396,19 @@

    Responses

    +

    202

    +

    Accepted

    +

    v1.ControllerRevision

    + +

    200

    success

    -

    v1.DaemonSet

    +

    v1.ControllerRevision

    201

    Created

    -

    v1.DaemonSet

    +

    v1.ControllerRevision

    @@ -1371,10 +1452,10 @@

    Tags

    -

    delete a DaemonSet

    +

    read the specified ControllerRevision

    -
    DELETE /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
    +
    GET /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
    @@ -1408,35 +1489,19 @@

    Parameters

    -

    BodyParameter

    -

    body

    - -

    true

    -

    v1.DeleteOptions

    - - -

    QueryParameter

    -

    gracePeriodSeconds

    -

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    -

    false

    -

    integer (int32)

    - - - -

    QueryParameter

    -

    orphanDependents

    -

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    +

    export

    +

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    -

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    exact

    +

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    -

    string

    +

    boolean

    @@ -1450,7 +1515,7 @@

    Parameters

    PathParameter

    name

    -

    name of the DaemonSet

    +

    name of the ControllerRevision

    true

    string

    @@ -1478,7 +1543,7 @@

    Responses

    200

    success

    -

    v1.Status

    +

    v1.ControllerRevision

    @@ -1522,10 +1587,10 @@

    Tags

    -

    partially update the specified DaemonSet

    +

    replace the specified ControllerRevision

    -
    PATCH /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
    +
    PUT /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
    @@ -1563,7 +1628,7 @@

    Parameters

    body

    true

    -

    v1.Patch

    +

    v1.ControllerRevision

    @@ -1577,7 +1642,7 @@

    Parameters

    PathParameter

    name

    -

    name of the DaemonSet

    +

    name of the ControllerRevision

    true

    string

    @@ -1605,7 +1670,12 @@

    Responses

    200

    success

    -

    v1.DaemonSet

    +

    v1.ControllerRevision

    + + +

    201

    +

    Created

    +

    v1.ControllerRevision

    @@ -1616,13 +1686,7 @@

    Consumes

    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      +

      /

    @@ -1655,10 +1719,10 @@

    Tags

    -

    read status of the specified DaemonSet

    +

    delete a ControllerRevision

    -
    GET /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
    @@ -1692,16 +1756,8629 @@

    Parameters

    -

    PathParameter

    -

    namespace

    -

    object name and auth scope, such as for teams and projects

    +

    BodyParameter

    +

    body

    +

    true

    -

    string

    +

    v1.DeleteOptions

    -

    PathParameter

    -

    name

    +

    QueryParameter

    +

    gracePeriodSeconds

    +

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    +

    false

    +

    integer (int32)

    + + + +

    QueryParameter

    +

    orphanDependents

    +

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    +

    false

    +

    boolean

    + + + +

    QueryParameter

    +

    propagationPolicy

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    +

    false

    +

    string

    + + + +

    PathParameter

    +

    namespace

    +

    object name and auth scope, such as for teams and projects

    +

    true

    +

    string

    + + + +

    PathParameter

    +

    name

    +

    name of the ControllerRevision

    +

    true

    +

    string

    + + + + + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified ControllerRevision

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ControllerRevision

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ControllerRevision

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind DaemonSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/daemonsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.DaemonSetList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    delete collection of DaemonSet

    +
    +
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/daemonsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    create a DaemonSet

    +
    +
    +
    POST /apis/apps/v1/namespaces/{namespace}/daemonsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DaemonSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1.DaemonSet

    200

    success

    v1.DaemonSet

    201

    Created

    v1.DaemonSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read the specified DaemonSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.DaemonSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace the specified DaemonSet

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DaemonSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.DaemonSet

    201

    Created

    v1.DaemonSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    delete a DaemonSet

    +
    +
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified DaemonSet

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.DaemonSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read status of the specified DaemonSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.DaemonSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace status of the specified DaemonSet

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DaemonSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.DaemonSet

    201

    Created

    v1.DaemonSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update status of the specified DaemonSet

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.DaemonSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind Deployment

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/deployments
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.DeploymentList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    delete collection of Deployment

    +
    +
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/deployments
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    create a Deployment

    +
    +
    +
    POST /apis/apps/v1/namespaces/{namespace}/deployments
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Deployment

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1.Deployment

    200

    success

    v1.Deployment

    201

    Created

    v1.Deployment

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read the specified Deployment

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Deployment

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace the specified Deployment

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Deployment

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Deployment

    201

    Created

    v1.Deployment

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    delete a Deployment

    +
    +
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/deployments/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified Deployment

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Deployment

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read scale of the specified Deployment

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace scale of the specified Deployment

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Scale

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Scale

    201

    Created

    v1.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update scale of the specified Deployment

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read status of the specified Deployment

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Deployment

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace status of the specified Deployment

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Deployment

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Deployment

    201

    Created

    v1.Deployment

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update status of the specified Deployment

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Deployment

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind ReplicaSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/replicasets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ReplicaSetList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    delete collection of ReplicaSet

    +
    +
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/replicasets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    create a ReplicaSet

    +
    +
    +
    POST /apis/apps/v1/namespaces/{namespace}/replicasets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1.ReplicaSet

    200

    success

    v1.ReplicaSet

    201

    Created

    v1.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read the specified ReplicaSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/replicasets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace the specified ReplicaSet

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/replicasets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ReplicaSet

    201

    Created

    v1.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    delete a ReplicaSet

    +
    +
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/replicasets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified ReplicaSet

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/replicasets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read scale of the specified ReplicaSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace scale of the specified ReplicaSet

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Scale

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Scale

    201

    Created

    v1.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update scale of the specified ReplicaSet

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read status of the specified ReplicaSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace status of the specified ReplicaSet

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ReplicaSet

    201

    Created

    v1.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update status of the specified ReplicaSet

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind StatefulSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/statefulsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.StatefulSetList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    delete collection of StatefulSet

    +
    +
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/statefulsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    create a StatefulSet

    +
    +
    +
    POST /apis/apps/v1/namespaces/{namespace}/statefulsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.StatefulSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1.StatefulSet

    200

    success

    v1.StatefulSet

    201

    Created

    v1.StatefulSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read the specified StatefulSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.StatefulSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace the specified StatefulSet

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.StatefulSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.StatefulSet

    201

    Created

    v1.StatefulSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    delete a StatefulSet

    +
    +
    +
    DELETE /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified StatefulSet

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.StatefulSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read scale of the specified StatefulSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace scale of the specified StatefulSet

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Scale

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Scale

    201

    Created

    v1.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update scale of the specified StatefulSet

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    read status of the specified StatefulSet

    +
    +
    +
    GET /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.StatefulSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    replace status of the specified StatefulSet

    +
    +
    +
    PUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.StatefulSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.StatefulSet

    201

    Created

    v1.StatefulSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    partially update status of the specified StatefulSet

    +
    +
    +
    PATCH /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.StatefulSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind ReplicaSet

    +
    +
    +
    GET /apis/apps/v1/replicasets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ReplicaSetList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind StatefulSet

    +
    +
    +
    GET /apis/apps/v1/statefulsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.StatefulSetList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of ControllerRevision

    +
    +
    +
    GET /apis/apps/v1/watch/controllerrevisions
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of DaemonSet

    +
    +
    +
    GET /apis/apps/v1/watch/daemonsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of Deployment

    +
    +
    +
    GET /apis/apps/v1/watch/deployments
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of ControllerRevision

    +
    +
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind ControllerRevision

    +
    +
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ControllerRevision

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of DaemonSet

    +
    +
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/daemonsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind DaemonSet

    +
    +
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1712,7 +10389,561 @@

    Parameters

    -

    Responses

    +

    Responses

    +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of Deployment

    +
    +
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/deployments
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind Deployment

    +
    +
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of ReplicaSet

    +
    +
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/replicasets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    @@ -1730,14 +10961,14 @@

    Responses

    - +

    200

    success

    v1.DaemonSet

    v1.WatchEvent

    -

    Consumes

    +

    Consumes

    • @@ -1747,7 +10978,7 @@

      Consumes

    -

    Produces

    +

    Produces

    • @@ -1759,11 +10990,17 @@

      Produces

    • application/vnd.kubernetes.protobuf

    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    -

    Tags

    +

    Tags

    • @@ -1774,14 +11011,14 @@

      Tags

    -

    replace status of the specified DaemonSet

    +

    watch changes to an object of kind ReplicaSet

    -
    PUT /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}
    -

    Parameters

    +

    Parameters

    @@ -1811,11 +11048,68 @@

    Parameters

    - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1829,7 +11123,7 @@

    Parameters

    - + @@ -1839,7 +11133,7 @@

    Parameters

    -

    Responses

    +

    Responses

    BodyParameter

    body

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    true

    v1.DaemonSet

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    name

    name of the DaemonSet

    name of the ReplicaSet

    true

    string

    @@ -1857,19 +11151,14 @@

    Responses

    - - - - - - +

    200

    success

    v1.DaemonSet

    201

    Created

    v1.DaemonSet

    v1.WatchEvent

    -

    Consumes

    +

    Consumes

    • @@ -1879,7 +11168,7 @@

      Consumes

    -

    Produces

    +

    Produces

    • @@ -1891,11 +11180,17 @@

      Produces

    • application/vnd.kubernetes.protobuf

    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    -

    Tags

    +

    Tags

    • @@ -1906,14 +11201,14 @@

      Tags

    -

    partially update status of the specified DaemonSet

    +

    watch individual changes to a list of StatefulSet

    -
    PATCH /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/statefulsets
    -

    Parameters

    +

    Parameters

    @@ -1943,25 +11238,74 @@

    Parameters

    - - + + + + + - - + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -1971,7 +11315,7 @@

    Parameters

    -

    Responses

    +

    Responses

    BodyParameter

    body

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    true

    v1.Patch

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. +

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    name

    name of the DaemonSet

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    @@ -1989,30 +11333,24 @@

    Responses

    - +

    200

    success

    v1.DaemonSet

    v1.WatchEvent

    -

    Consumes

    +

    Consumes

    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      +

      /

    -

    Produces

    +

    Produces

    • @@ -2024,11 +11362,17 @@

      Produces

    • application/vnd.kubernetes.protobuf

    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    -

    Tags

    +

    Tags

    • @@ -2039,14 +11383,14 @@

      Tags

    -

    watch individual changes to a list of DaemonSet

    +

    watch changes to an object of kind StatefulSet

    -
    GET /apis/apps/v1/watch/daemonsets
    +
    GET /apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}
    -

    Parameters

    +

    Parameters

    @@ -2140,12 +11484,28 @@

    Parameters

    + + + + + + + + + + + + + + + +

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    -

    Responses

    +

    Responses

    @@ -2170,7 +11530,7 @@

    Responses

    -

    Consumes

    +

    Consumes

    • @@ -2180,7 +11540,7 @@

      Consumes

    -

    Produces

    +

    Produces

    • @@ -2202,7 +11562,7 @@

      Produces

    -

    Tags

    +

    Tags

    • @@ -2213,14 +11573,14 @@

      Tags

    -

    watch individual changes to a list of DaemonSet

    +

    watch individual changes to a list of ReplicaSet

    -
    GET /apis/apps/v1/watch/namespaces/{namespace}/daemonsets
    +
    GET /apis/apps/v1/watch/replicasets
    -

    Parameters

    +

    Parameters

    @@ -2314,20 +11674,12 @@

    Parameters

    - - - - - - - -

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    -

    Responses

    +

    Responses

    @@ -2352,7 +11704,7 @@

    Responses

    -

    Consumes

    +

    Consumes

    • @@ -2362,7 +11714,7 @@

      Consumes

    -

    Produces

    +

    Produces

    • @@ -2384,7 +11736,7 @@

      Produces

    -

    Tags

    +

    Tags

    • @@ -2395,14 +11747,14 @@

      Tags

    -

    watch changes to an object of kind DaemonSet

    +

    watch individual changes to a list of StatefulSet

    -
    GET /apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}
    +
    GET /apis/apps/v1/watch/statefulsets
    -

    Parameters

    +

    Parameters

    @@ -2496,28 +11848,12 @@

    Parameters

    - - - - - - - - - - - - - - - -

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    -

    Responses

    +

    Responses

    @@ -2542,7 +11878,7 @@

    Responses

    -

    Consumes

    +

    Consumes

    • @@ -2552,7 +11888,7 @@

      Consumes

    -

    Produces

    +

    Produces

    • @@ -2574,7 +11910,7 @@

      Produces

    -

    Tags

    +

    Tags

    • diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta1/definitions.html index b55f627fa..6f2939cf3 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta1/definitions.html @@ -1754,7 +1754,7 @@

      v1.ObjectMeta

    - @@ -2112,7 +2112,7 @@

    v1beta1.ScaleSpec

    v1.PodAffinityTerm

    -

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

    +

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running

    deletionTimestamp

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -2148,8 +2148,8 @@

    v1.PodAffinityTerm

    - - + + @@ -2204,6 +2204,68 @@

    v1.EnvFromSource

    topologyKey

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

    false

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

    true

    string

    +
    +
    +

    v1beta1.StatefulSetCondition

    +
    +

    StatefulSetCondition describes the state of a statefulset at a certain point.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    Type of statefulset condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastTransitionTime

    Last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    +

    v1.PersistentVolumeClaim

    @@ -3003,7 +3065,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -4639,21 +4701,21 @@

    v1.ScaleIOVolumeSource

    protectionDomain

    -

    The name of the Protection Domain for the configured storage (defaults to "default").

    +

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    -

    The Storage Pool associated with the protection domain (defaults to "default").

    +

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    -

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    +

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    @@ -5247,6 +5309,13 @@

    v1beta1.StatefulSetStatus

    integer (int32)

    + +

    conditions

    +

    Represents the latest available observations of a statefulset’s current state.

    +

    false

    +

    v1beta1.StatefulSetCondition array

    + + @@ -5605,7 +5674,7 @@

    v1.Container

    securityContext

    -

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    +

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    false

    v1.SecurityContext

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta1/operations.html index 97a6fbf32..f04166f4f 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta1/operations.html @@ -1608,7 +1608,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -2646,7 +2646,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -4589,7 +4589,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta2/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta2/definitions.html index 7f90d8d17..41e981618 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta2/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta2/definitions.html @@ -1064,6 +1064,68 @@

    v1beta2.ControllerRevision

    +
    +
    +

    v1beta2.StatefulSetCondition

    +
    +

    StatefulSetCondition describes the state of a statefulset at a certain point.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    Type of statefulset condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastTransitionTime

    Last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    +

    v1.DownwardAPIVolumeSource

    @@ -1667,6 +1729,13 @@

    v1beta2.StatefulSetStatus

    integer (int32)

    + +

    conditions

    +

    Represents the latest available observations of a statefulset’s current state.

    +

    false

    +

    v1beta2.StatefulSetCondition array

    + + @@ -1873,7 +1942,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -2431,6 +2500,13 @@

    v1beta2.DaemonSetStatus

    integer (int32)

    + +

    conditions

    +

    Represents the latest available observations of a DaemonSet’s current state.

    +

    false

    +

    v1beta2.DaemonSetCondition array

    + + @@ -2438,7 +2514,7 @@

    v1beta2.DaemonSetStatus

    v1.PodAffinityTerm

    -

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

    +

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running

    @@ -2474,8 +2550,8 @@

    v1.PodAffinityTerm

    - - + + @@ -3039,6 +3115,68 @@

    v1beta2.ReplicaSetStatus

    topologyKey

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

    false

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

    true

    string

    +
    +
    +

    v1beta2.DaemonSetCondition

    +
    +

    DaemonSetCondition describes the state of a DaemonSet at a certain point.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    Type of DaemonSet condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastTransitionTime

    Last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    +

    v1beta2.DaemonSet

    @@ -3698,7 +3836,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -5000,21 +5138,21 @@

    v1.ScaleIOVolumeSource

    protectionDomain

    -

    The name of the Protection Domain for the configured storage (defaults to "default").

    +

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    -

    The Storage Pool associated with the protection domain (defaults to "default").

    +

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    -

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    +

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    @@ -5870,7 +6008,7 @@

    v1.Container

    securityContext

    -

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    +

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    false

    v1.SecurityContext

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta2/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta2/operations.html index 10f541d23..2e512471c 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta2/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/apps/v1beta2/operations.html @@ -1782,7 +1782,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -2820,7 +2820,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -4242,7 +4242,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -6048,7 +6048,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -7854,7 +7854,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/authentication.k8s.io/v1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/authentication.k8s.io/v1/definitions.html index 817a165b5..d3561b68c 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/authentication.k8s.io/v1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/authentication.k8s.io/v1/definitions.html @@ -802,7 +802,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/authentication.k8s.io/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/authentication.k8s.io/v1beta1/definitions.html index 125eaa42e..17ed06d7f 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/authentication.k8s.io/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/authentication.k8s.io/v1beta1/definitions.html @@ -891,7 +891,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/authorization.k8s.io/v1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/authorization.k8s.io/v1/definitions.html index 2c79a9738..a71abf874 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/authorization.k8s.io/v1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/authorization.k8s.io/v1/definitions.html @@ -850,12 +850,19 @@

    v1.SubjectAccessReviewStatus

    allowed

    -

    Allowed is required. True if the action would be allowed, false otherwise.

    +

    Allowed is required. True if the action would be allowed, false otherwise.

    true

    boolean

    false

    +

    denied

    +

    Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.

    +

    false

    +

    boolean

    +

    false

    + +

    reason

    Reason is optional. It indicates why a request was allowed or denied.

    false

    @@ -1007,7 +1014,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1432,7 +1439,8 @@

    v1.ResourceRule

    resources

    -

    Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all.

    +

    Resources is a list of resources this rule applies to. "" means all in the specified apiGroups.
    + "
    /foo" represents the subresource foo for all resources in the specified apiGroups.

    false

    string array

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/authorization.k8s.io/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/authorization.k8s.io/v1beta1/definitions.html index 9d10ac19a..6113f09df 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/authorization.k8s.io/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/authorization.k8s.io/v1beta1/definitions.html @@ -1094,12 +1094,19 @@

    v1beta1.SubjectAccessReviewStatus

    allowed

    -

    Allowed is required. True if the action would be allowed, false otherwise.

    +

    Allowed is required. True if the action would be allowed, false otherwise.

    true

    boolean

    false

    +

    denied

    +

    Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.

    +

    false

    +

    boolean

    +

    false

    + +

    reason

    Reason is optional. It indicates why a request was allowed or denied.

    false

    @@ -1210,7 +1217,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1452,7 +1459,8 @@

    v1beta1.ResourceRule

    resources

    -

    Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all.

    +

    Resources is a list of resources this rule applies to. "" means all in the specified apiGroups.
    + "
    /foo" represents the subresource foo for all resources in the specified apiGroups.

    false

    string array

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v1/definitions.html index b643b166d..7db2cf238 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v1/definitions.html @@ -503,7 +503,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -1234,7 +1234,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v1/operations.html index 23acb52fd..ec2b119fa 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v1/operations.html @@ -1434,7 +1434,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v2beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v2beta1/definitions.html index 76ca8a384..a66b5c13b 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v2beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v2beta1/definitions.html @@ -1170,7 +1170,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -1444,7 +1444,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v2beta1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v2beta1/operations.html index 2a91683e0..29cb376a6 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v2beta1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/autoscaling/v2beta1/operations.html @@ -1434,7 +1434,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1/definitions.html index b8092c23d..4bb09de4c 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1/definitions.html @@ -1433,7 +1433,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1695,7 +1695,7 @@

    v1.EmptyDirVolumeSource

    v1.PodAffinityTerm

    -

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

    +

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running

    @@ -1731,8 +1731,8 @@

    v1.PodAffinityTerm

    - - + + @@ -2435,7 +2435,7 @@

    v1.JobSpec

    - + @@ -2511,7 +2511,7 @@

    v1.DeleteOptions

    - + @@ -3813,21 +3813,21 @@

    v1.ScaleIOVolumeSource

    - + - + - + @@ -4490,7 +4490,7 @@

    v1.Container

    - + diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1/operations.html index 88ab32475..ae8064088 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1/operations.html @@ -1434,7 +1434,7 @@

    Parameters

    - + diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1beta1/definitions.html index 6f1b1dbd7..eda9b9acc 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1beta1/definitions.html @@ -1474,7 +1474,7 @@

    v1.ObjectMeta

    - @@ -1736,7 +1736,7 @@

    v1.EmptyDirVolumeSource

    v1.PodAffinityTerm

    -

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

    +

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running

    topologyKey

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

    false

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

    true

    string

    manualSelector

    manualSelector controls generation of pod labels and pod selectors. Leave manualSelector unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see manualSelector=true in jobs that were created with the old extensions/v1beta1 API. More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md

    manualSelector controls generation of pod labels and pod selectors. Leave manualSelector unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see manualSelector=true in jobs that were created with the old extensions/v1beta1 API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    protectionDomain

    The name of the Protection Domain for the configured storage (defaults to "default").

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    The Storage Pool associated with the protection domain (defaults to "default").

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    securityContext

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    false

    v1.SecurityContext

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    deletionTimestamp

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1772,8 +1772,8 @@

    v1.PodAffinityTerm

    - - + + @@ -2469,7 +2469,7 @@

    v1.JobSpec

    - + @@ -2545,7 +2545,7 @@

    v1.DeleteOptions

    - + @@ -3407,7 +3407,7 @@

    v1beta1.CronJobSpec

    - + @@ -3923,21 +3923,21 @@

    v1.ScaleIOVolumeSource

    - + - + - + @@ -4641,7 +4641,7 @@

    v1.Container

    - + diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1beta1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1beta1/operations.html index 427be1e6e..b91b8d165 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1beta1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v1beta1/operations.html @@ -1434,7 +1434,7 @@

    Parameters

    - + diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v2alpha1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v2alpha1/definitions.html index 949c1d6f8..43432ec85 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v2alpha1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v2alpha1/definitions.html @@ -1433,7 +1433,7 @@

    v1.ObjectMeta

    - @@ -1695,7 +1695,7 @@

    v1.EmptyDirVolumeSource

    v1.PodAffinityTerm

    -

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

    +

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running

    topologyKey

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

    false

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

    true

    string

    manualSelector

    manualSelector controls generation of pod labels and pod selectors. Leave manualSelector unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see manualSelector=true in jobs that were created with the old extensions/v1beta1 API. More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md

    manualSelector controls generation of pod labels and pod selectors. Leave manualSelector unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see manualSelector=true in jobs that were created with the old extensions/v1beta1 API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    concurrencyPolicy

    Specifies how to treat concurrent executions of a Job. Defaults to Allow.

    Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn’t finished yet; - "Replace": cancels currently running job and replaces it with a new one

    false

    string

    protectionDomain

    The name of the Protection Domain for the configured storage (defaults to "default").

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    The Storage Pool associated with the protection domain (defaults to "default").

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    securityContext

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    false

    v1.SecurityContext

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    deletionTimestamp

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1731,8 +1731,8 @@

    v1.PodAffinityTerm

    - - + + @@ -2173,7 +2173,7 @@

    v2alpha1.CronJobSpec

    - + @@ -2442,7 +2442,7 @@

    v1.JobSpec

    - + @@ -2518,7 +2518,7 @@

    v1.DeleteOptions

    - + @@ -3820,21 +3820,21 @@

    v1.ScaleIOVolumeSource

    - + - + - + @@ -4497,7 +4497,7 @@

    v1.Container

    - + diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v2alpha1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v2alpha1/operations.html index 61e2c3bd7..6fbcf1d6c 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/batch/v2alpha1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/batch/v2alpha1/operations.html @@ -1434,7 +1434,7 @@

    Parameters

    - + diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/certificates.k8s.io/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/certificates.k8s.io/v1beta1/definitions.html index 31363cb89..22ceab74c 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/certificates.k8s.io/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/certificates.k8s.io/v1beta1/definitions.html @@ -503,7 +503,7 @@

    v1.DeleteOptions

    - + @@ -1136,7 +1136,7 @@

    v1.ObjectMeta

    - diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/certificates.k8s.io/v1beta1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/certificates.k8s.io/v1beta1/operations.html index 90231eba7..545af0f89 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/certificates.k8s.io/v1beta1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/certificates.k8s.io/v1beta1/operations.html @@ -1220,7 +1220,7 @@

    Parameters

    - + diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/extensions/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/extensions/v1beta1/definitions.html index 5b6c55694..2d5903256 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/extensions/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/extensions/v1beta1/definitions.html @@ -726,6 +726,13 @@

    v1beta1.DaemonSetStatus

    + + + + + + +

    topologyKey

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

    false

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

    true

    string

    concurrencyPolicy

    Specifies how to treat concurrent executions of a Job. Defaults to Allow.

    Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn’t finished yet; - "Replace": cancels currently running job and replaces it with a new one

    false

    string

    manualSelector

    manualSelector controls generation of pod labels and pod selectors. Leave manualSelector unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see manualSelector=true in jobs that were created with the old extensions/v1beta1 API. More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md

    manualSelector controls generation of pod labels and pod selectors. Leave manualSelector unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see manualSelector=true in jobs that were created with the old extensions/v1beta1 API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    protectionDomain

    The name of the Protection Domain for the configured storage (defaults to "default").

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    The Storage Pool associated with the protection domain (defaults to "default").

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    securityContext

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    false

    v1.SecurityContext

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    deletionTimestamp

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    integer (int32)

    conditions

    Represents the latest available observations of a DaemonSet’s current state.

    false

    v1beta1.DaemonSetCondition array

    @@ -2178,7 +2185,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -2715,7 +2722,7 @@

    v1beta1.ScaleSpec

    v1.PodAffinityTerm

    -

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

    +

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running

    @@ -2751,8 +2758,8 @@

    v1.PodAffinityTerm

    - - + + @@ -3011,7 +3018,7 @@

    v1beta1.SELinuxStrategyOptions

    - + @@ -3663,7 +3670,7 @@

    v1.DeleteOptions

    - + @@ -5268,21 +5275,21 @@

    v1.ScaleIOVolumeSource

    - + - + - + @@ -6387,7 +6394,7 @@

    v1.Container

    - + @@ -7711,7 +7718,7 @@

    v1beta1.PodSecurityPolicySpec

    - + @@ -8174,6 +8181,68 @@

    v1.ConfigMapKeySelector

    topologyKey

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

    false

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

    true

    string

    seLinuxOptions

    seLinuxOptions required to run as; required for MustRunAs More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    false

    v1.SELinuxOptions

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    protectionDomain

    The name of the Protection Domain for the configured storage (defaults to "default").

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    The Storage Pool associated with the protection domain (defaults to "default").

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    securityContext

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    false

    v1.SecurityContext

    defaultAddCapabilities

    DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capabiility in both DefaultAddCapabilities and RequiredDropCapabilities.

    DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the AllowedCapabilities list.

    false

    v1.Capability array

    +
    +
    +

    v1beta1.DaemonSetCondition

    +
    +

    DaemonSetCondition describes the state of a DaemonSet at a certain point.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    Type of DaemonSet condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastTransitionTime

    Last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    +

    v1beta1.HTTPIngressPath

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/extensions/v1beta1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/extensions/v1beta1/operations.html index c510e89a1..1a145200b 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/extensions/v1beta1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/extensions/v1beta1/operations.html @@ -1782,7 +1782,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -3204,7 +3204,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -5147,7 +5147,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -6569,7 +6569,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -7607,7 +7607,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -9931,7 +9931,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/networking.k8s.io/v1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/networking.k8s.io/v1/definitions.html index 902be0448..cd9647d88 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/networking.k8s.io/v1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/networking.k8s.io/v1/definitions.html @@ -1074,7 +1074,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -1403,7 +1403,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/networking.k8s.io/v1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/networking.k8s.io/v1/operations.html index c7017c4a8..df2b75705 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/networking.k8s.io/v1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/networking.k8s.io/v1/operations.html @@ -1260,7 +1260,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/policy/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/policy/v1beta1/definitions.html index 74c98357b..43ee3821f 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/policy/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/policy/v1beta1/definitions.html @@ -565,7 +565,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -1179,7 +1179,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/policy/v1beta1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/policy/v1beta1/operations.html index 8dc522d7b..7ff01593c 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/policy/v1beta1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/policy/v1beta1/operations.html @@ -1260,7 +1260,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1/definitions.html index efc8db10c..2972fea36 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1/definitions.html @@ -454,12 +454,6 @@

    v1.APIResourceList

    -
    -
    -

    v1.Patch

    -
    -

    Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

    -

    v1.ClusterRoleBinding

    @@ -524,9 +518,9 @@

    v1.ClusterRoleBinding

    -

    v1.DeleteOptions

    +

    v1.ListMeta

    -

    DeleteOptions may be provided when deleting an API object.

    +

    ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

    @@ -547,45 +541,65 @@

    v1.DeleteOptions

    - - + + - - + + - - + + - + + +

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    selfLink

    selfLink is a URL representing this object. Populated by the system. Read-only.

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    resourceVersion

    String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    continue

    continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.

    false

    integer (int64)

    string

    + +
    +
    +

    v1.Initializers

    +
    +

    Initializers tracks the progress of initialization.

    +
    + +++++++ + - - - - - + + + + + + + - - - - - + + + + + - - + + - + @@ -593,9 +607,9 @@

    v1.DeleteOptions

    -

    v1.ListMeta

    +

    v1.Preconditions

    -

    ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

    +

    Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.

    preconditions

    Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

    false

    v1.Preconditions

    NameDescriptionRequiredSchemaDefault

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    false

    pending

    Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

    true

    v1.Initializer array

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    result

    If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

    false

    v1.DeletionPropagation

    v1.Status

    @@ -616,24 +630,10 @@

    v1.ListMeta

    - - - - - - - - - - - - - - - - + + - + @@ -641,9 +641,9 @@

    v1.ListMeta

    -

    v1.StatusDetails

    +

    v1.Status

    -

    StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

    +

    Status is a return value for calls that don’t return other objects.

    selfLink

    selfLink is a URL representing this object. Populated by the system. Read-only.

    false

    string

    resourceVersion

    String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    continue

    continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.

    uid

    Specifies the target UID.

    false

    string

    types.UID

    @@ -664,43 +664,57 @@

    v1.StatusDetails

    - - + + - - + + - - + + + + + + + + + - - + + - - + + - + - - + + + + + + + + + @@ -710,9 +724,9 @@

    v1.StatusDetails

    -

    v1.RoleRef

    +

    v1.ClusterRole

    -

    RoleRef contains information that points to the role being used

    +

    ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.

    name

    The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    group

    The group attribute of the resource associated with the status StatusReason.

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    kind

    The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    status

    Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    string

    uid

    UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    message

    A human-readable description of the status of this operation.

    false

    string

    causes

    The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

    reason

    A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

    false

    v1.StatusCause array

    string

    retryAfterSeconds

    If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

    details

    Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

    false

    v1.StatusDetails

    code

    Suggested HTTP return code for this status, 0 if not set.

    false

    integer (int32)

    @@ -733,24 +747,38 @@

    v1.RoleRef

    - - - + + + - - - + + + - - + + + + + + + + + - + + + + + + + + @@ -758,9 +786,9 @@

    v1.RoleRef

    -

    v1.RoleBindingList

    +

    v1.AggregationRule

    -

    RoleBindingList is a collection of RoleBindings

    +

    AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole

    apiGroup

    APIGroup is the group for the resource being referenced

    true

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    kind

    Kind is the type of resource being referenced

    true

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    name

    Name is the name of resource being referenced

    metadata

    Standard object’s metadata.

    false

    v1.ObjectMeta

    rules

    Rules holds all the PolicyRules for this ClusterRole

    true

    string

    v1.PolicyRule array

    aggregationRule

    AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.

    false

    v1.AggregationRule

    @@ -781,31 +809,48 @@

    v1.RoleBindingList

    - - + + - + + +

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    clusterRoleSelectors

    ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole’s permissions will be added

    false

    string

    v1.LabelSelector array

    + +
    +
    +

    v1.WatchEvent

    + +++++++ + - - - - - + + + + + + + - - - - + + + + - - + + - + @@ -813,9 +858,9 @@

    v1.RoleBindingList

    -

    v1.Preconditions

    +

    v1.LabelSelector

    -

    Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.

    +

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    NameDescriptionRequiredSchemaDefault

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    type

    true

    string

    items

    Items is a list of RoleBindings

    object

    true

    v1.RoleBinding array

    string

    @@ -836,10 +881,17 @@

    v1.Preconditions

    - - + + - + + + + + + + + @@ -847,9 +899,9 @@

    v1.Preconditions

    -

    v1.Initializers

    +

    v1.ClusterRoleBindingList

    -

    Initializers tracks the progress of initialization.

    +

    ClusterRoleBindingList is a collection of ClusterRoleBindings

    uid

    Specifies the target UID.

    matchLabels

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    false

    types.UID

    object

    matchExpressions

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    false

    v1.LabelSelectorRequirement array

    @@ -870,17 +922,31 @@

    v1.Initializers

    - - - - + + + + - - + + - + + + + + + + + + + + + + + + @@ -888,9 +954,9 @@

    v1.Initializers

    -

    v1.Initializer

    +

    v1.LabelSelectorRequirement

    -

    Initializer is information about an initializer that has not yet completed.

    +

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    pending

    Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

    true

    v1.Initializer array

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    result

    If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    v1.Status

    string

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    items

    Items is a list of ClusterRoleBindings

    true

    v1.ClusterRoleBinding array

    @@ -911,20 +977,34 @@

    v1.Initializer

    - - + + + + + + + + + + + + + + + +

    name

    name of the process that is responsible for initializing this object.

    key

    key is the label key that the selector applies to.

    true

    string

    operator

    operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    true

    string

    values

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    false

    string array

    -

    v1.ClusterRole

    +

    v1.ClusterRoleList

    -

    ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.

    +

    ClusterRoleList is a collection of ClusterRoles

    @@ -962,14 +1042,14 @@

    v1.ClusterRole

    - + - - + + - + @@ -977,9 +1057,19 @@

    v1.ClusterRole

    -

    v1.Status

    +

    v1.DeletionPropagation

    + +
    +
    +

    v1.Patch

    -

    Status is a return value for calls that don’t return other objects.

    +

    Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

    +
    +
    +
    +

    v1.DeleteOptions

    +
    +

    DeleteOptions may be provided when deleting an API object.

    metadata

    Standard object’s metadata.

    false

    v1.ObjectMeta

    v1.ListMeta

    rules

    Rules holds all the PolicyRules for this ClusterRole

    items

    Items is a list of ClusterRoles

    true

    v1.PolicyRule array

    v1.ClusterRole array

    @@ -1014,43 +1104,146 @@

    v1.Status

    - - + + - + - - + + + + + + + + + + + + + + + + + + + + +

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    v1.ListMeta

    integer (int64)

    status

    Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    preconditions

    Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

    false

    v1.Preconditions

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    + +
    +
    +

    v1.RoleRef

    +
    +

    RoleRef contains information that points to the role being used

    +
    + +++++++ + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    apiGroup

    APIGroup is the group for the resource being referenced

    true

    string

    message

    A human-readable description of the status of this operation.

    kind

    Kind is the type of resource being referenced

    true

    string

    name

    Name is the name of resource being referenced

    true

    string

    + +
    +
    +

    v1.StatusDetails

    +
    +

    StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

    +
    + +++++++ + + + + + + + + + + + + + - - + + - - + + - + - - + + + + + + + + + + + + + + + + @@ -1060,9 +1253,9 @@

    v1.Status

    -

    v1.Subject

    +

    v1.RoleBindingList

    -

    Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.

    +

    RoleBindingList is a collection of RoleBindings

    NameDescriptionRequiredSchemaDefault

    name

    The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

    false

    string

    reason

    A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

    group

    The group attribute of the resource associated with the status StatusReason.

    false

    string

    details

    Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

    kind

    The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.StatusDetails

    string

    code

    Suggested HTTP return code for this status, 0 if not set.

    uid

    UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    false

    string

    causes

    The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

    false

    v1.StatusCause array

    retryAfterSeconds

    If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

    false

    integer (int32)

    @@ -1084,29 +1277,63 @@

    v1.Subject

    - - + + - - + + - - + + + + + + + + + - + + +

    kind

    Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". If the Authorizer does not recognized the kind value, the Authorizer should report an error.

    true

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiGroup

    APIGroup holds the API group of the referenced subject. Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io" for User and Group subjects.

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    name

    Name of the object being referenced.

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    items

    Items is a list of RoleBindings

    true

    string

    v1.RoleBinding array

    + +
    +
    +

    v1.Initializer

    +
    +

    Initializer is information about an initializer that has not yet completed.

    +
    + +++++++ + - - - + + + + + + + + + + + + @@ -1115,7 +1342,10 @@

    v1.Subject

    -

    v1.WatchEvent

    +

    v1.Subject

    +
    +

    Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.

    +

    namespace

    Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error.

    false

    NameDescriptionRequiredSchemaDefault

    name

    name of the process that is responsible for initializing this object.

    true

    string

    @@ -1135,19 +1365,33 @@

    v1.WatchEvent

    - - + + - + + + + + + + + + + + + + + +

    type

    kind

    Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". If the Authorizer does not recognized the kind value, the Authorizer should report an error.

    true

    string

    object

    apiGroup

    APIGroup holds the API group of the referenced subject. Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io" for User and Group subjects.

    false

    string

    name

    Name of the object being referenced.

    true

    string

    namespace

    Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error.

    false

    string

    @@ -1213,6 +1457,75 @@

    v1.RoleBinding

    +
    +
    +

    v1.OwnerReference

    +
    +

    OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    apiVersion

    API version of the referent.

    true

    string

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    true

    string

    name

    Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    true

    string

    uid

    UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    true

    string

    controller

    If true, this reference points to the managing controller.

    false

    boolean

    false

    blockOwnerDeletion

    If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

    false

    boolean

    false

    +

    v1.ObjectMeta

    @@ -1307,7 +1620,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1368,130 +1681,6 @@

    v1.ObjectMeta

    -
    -
    -

    v1.OwnerReference

    -
    -

    OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    apiVersion

    API version of the referent.

    true

    string

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    true

    string

    name

    Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    true

    string

    uid

    UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    true

    string

    controller

    If true, this reference points to the managing controller.

    false

    boolean

    false

    blockOwnerDeletion

    If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

    false

    boolean

    false

    - -
    -
    -

    v1.ClusterRoleBindingList

    -
    -

    ClusterRoleBindingList is a collection of ClusterRoleBindings

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    items

    Items is a list of ClusterRoleBindings

    true

    v1.ClusterRoleBinding array

    -

    v1.Role

    @@ -1637,61 +1826,6 @@

    v1.APIResource

    -
    -
    -

    v1.ClusterRoleList

    -
    -

    ClusterRoleList is a collection of ClusterRoles

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    items

    Items is a list of ClusterRoles

    true

    v1.ClusterRole array

    -

    types.UID

    @@ -1803,10 +1937,6 @@

    v1.StatusCause

    -
    -
    -

    v1.DeletionPropagation

    -

    v1.PolicyRule

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1/operations.html index 7a48bc163..dfac8071c 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1/operations.html @@ -1204,7 +1204,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -2170,7 +2170,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -3176,7 +3176,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -4198,7 +4198,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1alpha1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1alpha1/definitions.html index 2699ff1ab..9a95c0685 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1alpha1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1alpha1/definitions.html @@ -660,6 +660,40 @@

    v1.Status

    +
    +
    +

    v1alpha1.AggregationRule

    +
    +

    AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole

    +
    + +++++++ + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    clusterRoleSelectors

    ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole’s permissions will be added

    false

    v1.LabelSelector array

    +

    v1.WatchEvent

    @@ -753,6 +787,95 @@

    v1alpha1.ClusterRoleList

    +
    +
    +

    v1.LabelSelector

    +
    +

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    matchLabels

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    false

    object

    matchExpressions

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    false

    v1.LabelSelectorRequirement array

    + +
    +
    +

    v1.LabelSelectorRequirement

    +
    +

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    key

    key is the label key that the selector applies to.

    true

    string

    operator

    operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    true

    string

    values

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    false

    string array

    +

    v1alpha1.RoleBinding

    @@ -1003,7 +1126,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -1386,6 +1509,13 @@

    v1alpha1.ClusterRole

    v1alpha1.PolicyRule array

    + +

    aggregationRule

    +

    AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.

    +

    false

    +

    v1alpha1.AggregationRule

    + + @@ -1552,7 +1682,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1alpha1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1alpha1/operations.html index dd8bf2d34..4230a2459 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1alpha1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1alpha1/operations.html @@ -1204,7 +1204,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -2170,7 +2170,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -3176,7 +3176,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -4198,7 +4198,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1beta1/definitions.html index cf5169590..86664748e 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1beta1/definitions.html @@ -456,15 +456,57 @@

    v1.APIResourceList

    -

    v1.Patch

    +

    v1.ListMeta

    -

    Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

    +

    ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    selfLink

    selfLink is a URL representing this object. Populated by the system. Read-only.

    false

    string

    resourceVersion

    String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    continue

    continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.

    false

    string

    +
    -

    v1beta1.ClusterRole

    +

    v1beta1.ClusterRoleBindingList

    -

    ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.

    +

    ClusterRoleBindingList is a collection of ClusterRoleBindings

    @@ -502,14 +544,14 @@

    v1beta1.ClusterRole

    - + - - + + - + @@ -517,9 +559,84 @@

    v1beta1.ClusterRole

    -

    v1.DeleteOptions

    +

    v1.Initializers

    -

    DeleteOptions may be provided when deleting an API object.

    +

    Initializers tracks the progress of initialization.

    +
    +

    metadata

    Standard object’s metadata.

    false

    v1.ObjectMeta

    v1.ListMeta

    rules

    Rules holds all the PolicyRules for this ClusterRole

    items

    Items is a list of ClusterRoleBindings

    true

    v1beta1.PolicyRule array

    v1beta1.ClusterRoleBinding array

    +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    pending

    Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

    true

    v1.Initializer array

    result

    If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

    false

    v1.Status

    + +
    +
    +

    v1.Preconditions

    +
    +

    Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    uid

    Specifies the target UID.

    false

    types.UID

    + +
    +
    +

    v1.Status

    +
    +

    Status is a return value for calls that don’t return other objects.

    @@ -554,31 +671,45 @@

    v1.DeleteOptions

    - - + + - + - - + + - + - - + + - + + + + + + + + - - + + - + + + + + + + + @@ -586,9 +717,311 @@

    v1.DeleteOptions

    -

    v1.ListMeta

    +

    v1.WatchEvent

    +

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    integer (int64)

    v1.ListMeta

    preconditions

    Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

    status

    Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1.Preconditions

    string

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    message

    A human-readable description of the status of this operation.

    false

    boolean

    string

    reason

    A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

    false

    string

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    details

    Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

    false

    v1.DeletionPropagation

    v1.StatusDetails

    code

    Suggested HTTP return code for this status, 0 if not set.

    false

    integer (int32)

    +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    true

    string

    object

    true

    string

    + +
    +
    +

    v1.LabelSelector

    -

    ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

    +

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    matchLabels

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    false

    object

    matchExpressions

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    false

    v1.LabelSelectorRequirement array

    + +
    +
    +

    v1.LabelSelectorRequirement

    +
    +

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    key

    key is the label key that the selector applies to.

    true

    string

    operator

    operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    true

    string

    values

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    false

    string array

    + +
    +
    +

    v1beta1.Role

    +
    +

    Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ObjectMeta

    rules

    Rules holds all the PolicyRules for this Role

    true

    v1beta1.PolicyRule array

    + +
    +
    +

    v1.DeletionPropagation

    + +
    +
    +

    v1beta1.RoleRef

    +
    +

    RoleRef contains information that points to the role being used

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    apiGroup

    APIGroup is the group for the resource being referenced

    true

    string

    kind

    Kind is the type of resource being referenced

    true

    string

    name

    Name is the name of resource being referenced

    true

    string

    + +
    +
    +

    v1beta1.PolicyRule

    +
    +

    PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    verbs

    Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.

    true

    string array

    apiGroups

    APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.

    false

    string array

    resources

    Resources is a list of resources this rule applies to. represents all resources in the specified apiGroups. /foo represents the subresource foo for all resources in the specified apiGroups.

    false

    string array

    resourceNames

    ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.

    false

    string array

    nonResourceURLs

    NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both.

    false

    string array

    + +
    +
    +

    v1.Patch

    +
    +

    Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

    +
    +
    +
    +

    v1.DeleteOptions

    +
    +

    DeleteOptions may be provided when deleting an API object.

    @@ -609,24 +1042,45 @@

    v1.ListMeta

    - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + @@ -634,9 +1088,9 @@

    v1.ListMeta

    -

    v1beta1.ClusterRoleBinding

    +

    v1beta1.ClusterRole

    -

    ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.

    +

    ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.

    selfLink

    selfLink is a URL representing this object. Populated by the system. Read-only.

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    resourceVersion

    String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    continue

    continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    string

    integer (int64)

    preconditions

    Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

    false

    v1.Preconditions

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -678,17 +1132,17 @@

    v1beta1.ClusterRoleBinding

    - - + + - + - - - - + + + + @@ -696,9 +1150,9 @@

    v1beta1.ClusterRoleBinding

    -

    v1beta1.ClusterRoleBindingList

    +

    v1beta1.ClusterRoleBinding

    -

    ClusterRoleBindingList is a collection of ClusterRoleBindings

    +

    ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.

    subjects

    Subjects holds references to the objects the role applies to.

    rules

    Rules holds all the PolicyRules for this ClusterRole

    true

    v1beta1.Subject array

    v1beta1.PolicyRule array

    roleRef

    RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.

    true

    v1beta1.RoleRef

    aggregationRule

    AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.

    false

    v1beta1.AggregationRule

    @@ -736,14 +1190,21 @@

    v1beta1.ClusterRoleBindingList

    - + - - + + - + + + + + + + + @@ -820,9 +1281,9 @@

    v1.StatusDetails

    -

    v1beta1.ClusterRoleList

    +

    v1.Initializer

    -

    ClusterRoleList is a collection of ClusterRoles

    +

    Initializer is information about an initializer that has not yet completed.

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    v1.ObjectMeta

    items

    Items is a list of ClusterRoleBindings

    subjects

    Subjects holds references to the objects the role applies to.

    true

    v1beta1.ClusterRoleBinding array

    v1beta1.Subject array

    roleRef

    RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.

    true

    v1beta1.RoleRef

    @@ -843,31 +1304,10 @@

    v1beta1.ClusterRoleList

    - - - - - - - - - - - - - - - - - - - - - - - + + - + @@ -875,9 +1315,9 @@

    v1beta1.ClusterRoleList

    -

    v1.Preconditions

    +

    v1beta1.ClusterRoleList

    -

    Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.

    +

    ClusterRoleList is a collection of ClusterRoles

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    items

    Items is a list of ClusterRoles

    name

    name of the process that is responsible for initializing this object.

    true

    v1beta1.ClusterRole array

    string

    @@ -898,51 +1338,31 @@

    v1.Preconditions

    - - + + - + - -

    uid

    Specifies the target UID.

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    types.UID

    string

    - -
    -
    -

    v1.Initializers

    -
    -

    Initializers tracks the progress of initialization.

    -
    - ------- - - - - - - + + + + + - - - - - - + + + + - - - - + + + + @@ -950,9 +1370,9 @@

    v1.Initializers

    -

    v1.Initializer

    +

    v1beta1.AggregationRule

    -

    Initializer is information about an initializer that has not yet completed.

    +

    AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole

    NameDescriptionRequiredSchemaDefault

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    pending

    Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

    true

    v1.Initializer array

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    result

    If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

    false

    v1.Status

    items

    Items is a list of ClusterRoles

    true

    v1beta1.ClusterRole array

    @@ -973,10 +1393,10 @@

    v1.Initializer

    - - - - + + + + @@ -984,9 +1404,9 @@

    v1.Initializer

    -

    v1.Status

    +

    v1beta1.RoleList

    -

    Status is a return value for calls that don’t return other objects.

    +

    RoleList is a collection of Roles

    name

    name of the process that is responsible for initializing this object.

    true

    string

    clusterRoleSelectors

    ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole’s permissions will be added

    false

    v1.LabelSelector array

    @@ -1022,44 +1442,16 @@

    v1.Status

    - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -1067,7 +1459,10 @@

    v1.Status

    -

    v1.WatchEvent

    +

    v1.OwnerReference

    +
    +

    OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

    +

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    Standard object’s metadata.

    false

    v1.ListMeta

    status

    Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    string

    message

    A human-readable description of the status of this operation.

    false

    string

    reason

    A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

    false

    string

    details

    Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

    false

    v1.StatusDetails

    code

    Suggested HTTP return code for this status, 0 if not set.

    false

    integer (int32)

    items

    Items is a list of Roles

    true

    v1beta1.Role array

    @@ -1087,73 +1482,46 @@

    v1.WatchEvent

    - - + + - - + + - -

    type

    apiVersion

    API version of the referent.

    true

    string

    object

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    true

    string

    - -
    -
    -

    v1beta1.RoleList

    -
    -

    RoleList is a collection of Roles

    -
    - ------- - - - - - - - - - - - - - + + + - - - + + + - - + + + + - - - - - - - + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    name

    Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    true

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    uid

    UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    true

    string

    metadata

    Standard object’s metadata.

    controller

    If true, this reference points to the managing controller.

    false

    boolean

    false

    v1.ListMeta

    items

    Items is a list of Roles

    true

    v1beta1.Role array

    blockOwnerDeletion

    If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

    false

    boolean

    false

    @@ -1252,7 +1620,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1313,75 +1681,6 @@

    v1.ObjectMeta

    -
    -
    -

    v1.OwnerReference

    -
    -

    OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    apiVersion

    API version of the referent.

    true

    string

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    true

    string

    name

    Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    true

    string

    uid

    UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    true

    string

    controller

    If true, this reference points to the managing controller.

    false

    boolean

    false

    blockOwnerDeletion

    If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

    false

    boolean

    false

    -

    v1beta1.Subject

    @@ -1531,61 +1830,6 @@

    v1.APIResource

    types.UID

    -
    -
    -

    v1beta1.Role

    -
    -

    Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ObjectMeta

    rules

    Rules holds all the PolicyRules for this Role

    true

    v1beta1.PolicyRule array

    -

    v1.StatusCause

    @@ -1638,120 +1882,6 @@

    v1.StatusCause

    -
    -
    -

    v1.DeletionPropagation

    - -
    -
    -

    v1beta1.PolicyRule

    -
    -

    PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    verbs

    Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.

    true

    string array

    apiGroups

    APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.

    false

    string array

    resources

    Resources is a list of resources this rule applies to. ResourceAll represents all resources.

    false

    string array

    resourceNames

    ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.

    false

    string array

    nonResourceURLs

    NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both.

    false

    string array

    - -
    -
    -

    v1beta1.RoleRef

    -
    -

    RoleRef contains information that points to the role being used

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    apiGroup

    APIGroup is the group for the resource being referenced

    true

    string

    kind

    Kind is the type of resource being referenced

    true

    string

    name

    Name is the name of resource being referenced

    true

    string

    -

    v1beta1.RoleBinding

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1beta1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1beta1/operations.html index faea7e954..fa8d93f33 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1beta1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/rbac.authorization.k8s.io/v1beta1/operations.html @@ -1204,7 +1204,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -2170,7 +2170,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -3176,7 +3176,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -4198,7 +4198,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/scheduling.k8s.io/v1alpha1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/scheduling.k8s.io/v1alpha1/definitions.html index 493ee8874..ae3e09275 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/scheduling.k8s.io/v1alpha1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/scheduling.k8s.io/v1alpha1/definitions.html @@ -503,7 +503,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -952,7 +952,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/scheduling.k8s.io/v1alpha1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/scheduling.k8s.io/v1alpha1/operations.html index 49f5bf3e6..e7e4c3e0c 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/scheduling.k8s.io/v1alpha1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/scheduling.k8s.io/v1alpha1/operations.html @@ -1220,7 +1220,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/settings.k8s.io/v1alpha1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/settings.k8s.io/v1alpha1/definitions.html index bd68f9c62..3c4aaac80 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/settings.k8s.io/v1alpha1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/settings.k8s.io/v1alpha1/definitions.html @@ -541,21 +541,21 @@

    v1.ScaleIOVolumeSource

    protectionDomain

    -

    The name of the Protection Domain for the configured storage (defaults to "default").

    +

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    -

    The Storage Pool associated with the protection domain (defaults to "default").

    +

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    -

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    +

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    @@ -1776,7 +1776,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -3296,7 +3296,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/settings.k8s.io/v1alpha1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/settings.k8s.io/v1alpha1/operations.html index e5218d444..48648792a 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/settings.k8s.io/v1alpha1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/settings.k8s.io/v1alpha1/operations.html @@ -1260,7 +1260,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1/definitions.html index 3263c0ca0..a8b980f1f 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1/definitions.html @@ -503,7 +503,7 @@

    v1.DeleteOptions

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -996,6 +996,13 @@

    v1.StorageClass

    boolean

    false

    + +

    volumeBindingMode

    +

    VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.

    +

    false

    +

    v1.VolumeBindingMode

    + + @@ -1093,7 +1100,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1377,6 +1384,10 @@

    v1.StatusCause

    v1.DeletionPropagation

    +
    +
    +

    v1.VolumeBindingMode

    +

    any

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1/operations.html index 46493b137..af1432763 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1/operations.html @@ -1220,7 +1220,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/federation/docs/api-reference/federation/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1alpha1/definitions.html similarity index 93% rename from vendor/k8s.io/kubernetes/federation/docs/api-reference/federation/v1beta1/definitions.html rename to vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1alpha1/definitions.html index d9d108392..577f85ad4 100755 --- a/vendor/k8s.io/kubernetes/federation/docs/api-reference/federation/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1alpha1/definitions.html @@ -370,10 +370,10 @@

    Top Level API Objects

    @@ -444,9 +444,9 @@

    v1.Patch

    -

    v1.DeleteOptions

    +

    v1alpha1.VolumeAttachmentList

    -

    DeleteOptions may be provided when deleting an API object.

    +

    VolumeAttachmentList is a collection of VolumeAttachment objects.

    @@ -481,72 +481,17 @@

    v1.DeleteOptions

    - - - - - - - - - - - - - - - - - - - - - - - + + - - - - -

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int64)

    preconditions

    Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

    false

    v1.Preconditions

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    metadata

    Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.DeletionPropagation

    - -
    -
    -

    v1beta1.ServerAddressByClientCIDR

    -
    -

    ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.

    -
    - ------- - - - - - - - - - - - - - - - + - - + + - + @@ -554,9 +499,9 @@

    v1beta1.ServerAddressByClientCIDR
    -

    v1beta1.ClusterList

    +

    v1.DeleteOptions

    -

    A list of all the kubernetes clusters registered to the federation

    +

    DeleteOptions may be provided when deleting an API object.

    NameDescriptionRequiredSchemaDefault

    clientCIDR

    The CIDR with which clients can match their IP to figure out the server address that they should use.

    true

    string

    v1.ListMeta

    serverAddress

    Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.

    items

    Items is the list of VolumeAttachments

    true

    string

    v1alpha1.VolumeAttachment array

    @@ -591,17 +536,31 @@

    v1beta1.ClusterList

    - - + + - + - - - - + + + + + + + + + + + + + + + + + + @@ -726,9 +685,9 @@

    v1.StatusDetails

    -

    v1beta1.ClusterStatus

    +

    v1alpha1.VolumeAttachmentSource

    -

    ClusterStatus is information about the current status of a cluster updated by cluster controller periodically.

    +

    VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    v1.ListMeta

    integer (int64)

    items

    List of Cluster objects.

    true

    v1beta1.Cluster array

    preconditions

    Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

    false

    v1.Preconditions

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    @@ -749,22 +708,8 @@

    v1beta1.ClusterStatus

    - - - - - - - - - - - - - - - - + + @@ -881,40 +826,6 @@

    v1.Initializer

    conditions

    Conditions is an array of current cluster conditions.

    false

    v1beta1.ClusterCondition array

    zones

    Zones is the list of availability zones in which the nodes of the cluster exist, e.g. us-east1-a. These will always be in the same region.

    false

    string array

    region

    Region is the name of the region in which all of the nodes in the cluster exist. e.g. us-east1.

    persistentVolumeName

    Name of the persistent volume to attach.

    false

    string

    -
    -
    -

    v1.LocalObjectReference

    -
    -

    LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    -

    v1.Status

    @@ -998,47 +909,6 @@

    v1.Status

    -
    -
    -

    v1beta1.ClusterSpec

    -
    -

    ClusterSpec describes the attributes of a kubernetes cluster.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    serverAddressByClientCIDRs

    A map of client CIDR to server address. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR.

    true

    v1beta1.ServerAddressByClientCIDR array

    secretRef

    Name of the secret containing kubeconfig to access this cluster. The secret is read from the kubernetes cluster that is hosting federation control plane. Admin needs to ensure that the required secret exists. Secret should be in the same namespace where federation control plane is hosted and it should have kubeconfig in its data with key "kubeconfig". This will later be changed to a reference to secret in federation control plane when the federation control plane supports secrets. This can be left empty if the cluster allows insecure access.

    false

    v1.LocalObjectReference

    -

    v1.WatchEvent

    @@ -1077,75 +947,6 @@

    v1.WatchEvent

    -
    -
    -

    v1beta1.ClusterCondition

    -
    -

    ClusterCondition describes current state of a cluster.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    type

    Type of cluster condition, Complete or Failed.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastProbeTime

    Last time the condition was checked.

    false

    string

    lastTransitionTime

    Last time the condition transit from one status to another.

    false

    string

    reason

    (brief) reason for the condition’s last transition.

    false

    string

    message

    Human readable message indicating details about last transition.

    false

    string

    -

    v1.ObjectMeta

    @@ -1240,7 +1041,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1370,6 +1171,112 @@

    v1.OwnerReference

    +
    +
    +

    v1alpha1.VolumeError

    +
    +

    VolumeError captures an error encountered during a volume operation.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    time

    Time the error was encountered.

    false

    string

    message

    String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.

    false

    string

    + +
    +
    +

    v1alpha1.VolumeAttachment

    +
    +

    VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.

    +
    +
    +

    VolumeAttachment objects are non-namespaced.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    spec

    Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.

    true

    v1alpha1.VolumeAttachmentSpec

    status

    Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.

    false

    v1alpha1.VolumeAttachmentStatus

    +

    v1.APIResource

    @@ -1464,6 +1371,54 @@

    v1.APIResource

    types.UID

    +
    +
    +

    v1alpha1.VolumeAttachmentSpec

    +
    +

    VolumeAttachmentSpec is the specification of a VolumeAttachment request.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    attacher

    Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().

    true

    string

    source

    Source represents the volume that should be attached.

    true

    v1alpha1.VolumeAttachmentSource

    nodeName

    The node that the volume should be attached to.

    true

    string

    +

    v1.StatusCause

    @@ -1522,9 +1477,9 @@

    v1.DeletionPropagation

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachmentStatus

    -

    Information about a registered cluster in a federated kubernetes setup. Clusters are not namespaced and have unique names in the federation.

    +

    VolumeAttachmentStatus is the status of a VolumeAttachment request.

    @@ -1545,38 +1500,31 @@

    v1beta1.Cluster

    - - - - - - - - - + + + + - - - - + + - + - - + + - + - - + + - + diff --git a/vendor/k8s.io/kubernetes/federation/docs/api-reference/federation/v1beta1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1alpha1/operations.html similarity index 93% rename from vendor/k8s.io/kubernetes/federation/docs/api-reference/federation/v1beta1/operations.html rename to vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1alpha1/operations.html index 7a5dc69ea..bb6dbc3c4 100755 --- a/vendor/k8s.io/kubernetes/federation/docs/api-reference/federation/v1beta1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1alpha1/operations.html @@ -371,7 +371,7 @@

    Operations

    get available resources

    -
    GET /apis/federation/v1beta1
    +
    GET /apis/storage.k8s.io/v1alpha1
    @@ -436,17 +436,17 @@

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    -

    list or watch objects of kind Cluster

    +

    list or watch objects of kind VolumeAttachment

    -
    GET /apis/federation/v1beta1/clusters
    +
    GET /apis/storage.k8s.io/v1alpha1/volumeattachments
    @@ -567,7 +567,7 @@

    Responses

    - +

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    attached

    Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.

    true

    boolean

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    attachmentMetadata

    Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.

    false

    v1.ObjectMeta

    object

    spec

    Spec defines the behavior of the Cluster.

    attachError

    The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.

    false

    v1beta1.ClusterSpec

    v1alpha1.VolumeError

    status

    Status describes the current status of a Cluster

    detachError

    The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.

    false

    v1beta1.ClusterStatus

    v1alpha1.VolumeError

    200

    success

    v1beta1.ClusterList

    v1alpha1.VolumeAttachmentList

    @@ -610,17 +610,17 @@

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    -

    delete collection of Cluster

    +

    delete collection of VolumeAttachment

    -
    DELETE /apis/federation/v1beta1/clusters
    +
    DELETE /apis/storage.k8s.io/v1alpha1/volumeattachments
    @@ -778,17 +778,17 @@

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    -

    create a Cluster

    +

    create a VolumeAttachment

    -
    POST /apis/federation/v1beta1/clusters
    +
    POST /apis/storage.k8s.io/v1alpha1/volumeattachments
    @@ -826,7 +826,7 @@

    Parameters

    body

    true

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachment

    @@ -852,17 +852,17 @@

    Responses

    202

    Accepted

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachment

    200

    success

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachment

    201

    Created

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachment

    @@ -899,17 +899,17 @@

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    -

    read the specified Cluster

    +

    read the specified VolumeAttachment

    -
    GET /apis/federation/v1beta1/clusters/{name}
    +
    GET /apis/storage.k8s.io/v1alpha1/volumeattachments/{name}
    @@ -961,7 +961,7 @@

    Parameters

    PathParameter

    name

    -

    name of the Cluster

    +

    name of the VolumeAttachment

    true

    string

    @@ -989,7 +989,7 @@

    Responses

    200

    success

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachment

    @@ -1026,17 +1026,17 @@

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    -

    replace the specified Cluster

    +

    replace the specified VolumeAttachment

    -
    PUT /apis/federation/v1beta1/clusters/{name}
    +
    PUT /apis/storage.k8s.io/v1alpha1/volumeattachments/{name}
    @@ -1074,13 +1074,13 @@

    Parameters

    body

    true

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachment

    PathParameter

    name

    -

    name of the Cluster

    +

    name of the VolumeAttachment

    true

    string

    @@ -1108,12 +1108,12 @@

    Responses

    200

    success

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachment

    201

    Created

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachment

    @@ -1150,17 +1150,17 @@

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    -

    delete a Cluster

    +

    delete a VolumeAttachment

    -
    DELETE /apis/federation/v1beta1/clusters/{name}
    +
    DELETE /apis/storage.k8s.io/v1alpha1/volumeattachments/{name}
    @@ -1220,7 +1220,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -1228,7 +1228,7 @@

    Parameters

    PathParameter

    name

    -

    name of the Cluster

    +

    name of the VolumeAttachment

    true

    string

    @@ -1293,17 +1293,17 @@

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    -

    partially update the specified Cluster

    +

    partially update the specified VolumeAttachment

    -
    PATCH /apis/federation/v1beta1/clusters/{name}
    +
    PATCH /apis/storage.k8s.io/v1alpha1/volumeattachments/{name}
    @@ -1347,7 +1347,7 @@

    Parameters

    PathParameter

    name

    -

    name of the Cluster

    +

    name of the VolumeAttachment

    true

    string

    @@ -1375,7 +1375,7 @@

    Responses

    200

    success

    -

    v1beta1.Cluster

    +

    v1alpha1.VolumeAttachment

    @@ -1418,17 +1418,17 @@

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    -

    replace status of the specified Cluster

    +

    watch individual changes to a list of VolumeAttachment

    -
    PUT /apis/federation/v1beta1/clusters/{name}/status
    +
    GET /apis/storage.k8s.io/v1alpha1/watch/volumeattachments
    @@ -1462,130 +1462,6 @@

    Parameters

    -

    BodyParameter

    -

    body

    - -

    true

    -

    v1beta1.Cluster

    - - - -

    PathParameter

    -

    name

    -

    name of the Cluster

    -

    true

    -

    string

    - - - - - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Cluster

    201

    Created

    v1beta1.Cluster

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisfederationv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Cluster

    -
    -
    -
    GET /apis/federation/v1beta1/watch/clusters
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - @@ -1655,7 +1531,7 @@

    Parameters

    -

    Responses

    +

    Responses

    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    @@ -1680,7 +1556,7 @@

    Responses

    -

    Consumes

    +

    Consumes

    • @@ -1690,7 +1566,7 @@

      Consumes

    -

    Produces

    +

    Produces

    • @@ -1712,25 +1588,25 @@

      Produces

    -

    Tags

    +

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    -

    watch changes to an object of kind Cluster

    +

    watch changes to an object of kind VolumeAttachment

    -
    GET /apis/federation/v1beta1/watch/clusters/{name}
    +
    GET /apis/storage.k8s.io/v1alpha1/watch/volumeattachments/{name}
    -

    Parameters

    +

    Parameters

    @@ -1827,7 +1703,7 @@

    Parameters

    - + @@ -1837,7 +1713,7 @@

    Parameters

    -

    Responses

    +

    Responses

    PathParameter

    name

    name of the Cluster

    name of the VolumeAttachment

    true

    string

    @@ -1862,7 +1738,7 @@

    Responses

    -

    Consumes

    +

    Consumes

    • @@ -1872,7 +1748,7 @@

      Consumes

    -

    Produces

    +

    Produces

    • @@ -1894,11 +1770,11 @@

      Produces

    -

    Tags

    +

    Tags

    • -

      apisfederationv1beta1

      +

      apisstorage.k8s.iov1alpha1

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1beta1/definitions.html index 0f6425007..57732f5aa 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1beta1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1beta1/definitions.html @@ -558,7 +558,7 @@

    v1.DeleteOptions

    - + @@ -958,6 +958,13 @@

    v1beta1.StorageClass

    + + + + + + +

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    boolean

    false

    volumeBindingMode

    VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.

    false

    v1beta1.VolumeBindingMode

    @@ -1093,7 +1100,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -1227,6 +1234,10 @@

    v1.OwnerReference

    v1.PersistentVolumeReclaimPolicy

    +
    +
    +

    v1beta1.VolumeBindingMode

    +

    v1.APIResource

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1beta1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1beta1/operations.html index 12655fc19..72217def7 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1beta1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/storage.k8s.io/v1beta1/operations.html @@ -1220,7 +1220,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/v1/definitions.html b/vendor/k8s.io/kubernetes/docs/api-reference/v1/definitions.html index 4f97a718d..b4770591d 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/v1/definitions.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/v1/definitions.html @@ -1326,7 +1326,7 @@

    v1.ResourceQuotaSpec

    hard

    -

    Hard is the set of desired hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md

    +

    Hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/

    false

    object

    @@ -1367,7 +1367,7 @@

    v1.NamespaceStatus

    phase

    -

    Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases

    +

    Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/

    false

    string

    @@ -1401,7 +1401,7 @@

    v1.NamespaceSpec

    finalizers

    -

    Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers

    +

    Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/

    false

    v1.FinalizerName array

    @@ -2299,7 +2299,7 @@

    v1.ResourceQuotaStatus

    hard

    -

    Hard is the set of enforced hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md

    +

    Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/

    false

    object

    @@ -2524,7 +2524,7 @@

    v1.ObjectMeta

    deletionTimestamp

    -

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

    Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    @@ -2875,7 +2875,7 @@

    v1.NodeList

    v1.PodAffinityTerm

    -

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

    +

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running

    @@ -2911,8 +2911,8 @@

    v1.PodAffinityTerm

    - - + + @@ -3529,7 +3529,7 @@

    v1.ResourceQuotaList

    - + @@ -4334,7 +4334,7 @@

    v1.LimitRangeList

    - + @@ -4469,7 +4469,7 @@

    v1.DeleteOptions

    - + @@ -6475,47 +6475,6 @@

    v1.ConfigMapProjection

    topologyKey

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

    false

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

    true

    string

    items

    Items is a list of ResourceQuota objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md

    Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/

    true

    v1.ResourceQuota array

    items

    Items is a list of LimitRange objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md

    Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

    true

    v1.LimitRange array

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    v1.DeletionPropagation

    -
    -
    -

    v1.PhotonPersistentDiskVolumeSource

    -
    -

    Represents a Photon Controller persistent disk resource.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    pdID

    ID that identifies Photon Controller persistent disk

    true

    string

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    -

    v1.ScaleIOVolumeSource

    @@ -6570,21 +6529,21 @@

    v1.ScaleIOVolumeSource

    protectionDomain

    -

    The name of the Protection Domain for the configured storage (defaults to "default").

    +

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    -

    The Storage Pool associated with the protection domain (defaults to "default").

    +

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    -

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    +

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    @@ -6613,6 +6572,47 @@

    v1.ScaleIOVolumeSource

    +
    +
    +

    v1.PhotonPersistentDiskVolumeSource

    +
    +

    Represents a Photon Controller persistent disk resource.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    pdID

    ID that identifies Photon Controller persistent disk

    true

    string

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    +

    v1.HostPathType

    @@ -7473,7 +7473,7 @@

    v1.Container

    securityContext

    -

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    +

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    false

    v1.SecurityContext

    @@ -7636,7 +7636,7 @@

    v1.PersistentVolumeSpec

    rbd

    RBD represents a Rados Block Device mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md

    false

    -

    v1.RBDVolumeSource

    +

    v1.RBDPersistentVolumeSource

    @@ -7727,7 +7727,7 @@

    v1.PersistentVolumeSpec

    scaleIO

    ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

    false

    -

    v1.ScaleIOVolumeSource

    +

    v1.ScaleIOPersistentVolumeSource

    @@ -8525,6 +8525,89 @@

    v1.Binding

    +
    +
    +

    v1.RBDPersistentVolumeSource

    +
    +

    Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    monitors

    A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    true

    string array

    image

    The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    true

    string

    fsType

    Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd

    false

    string

    pool

    The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    string

    user

    The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    string

    keyring

    Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    string

    secretRef

    SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    v1.SecretReference

    readOnly

    ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    boolean

    false

    +

    v1.CinderVolumeSource

    @@ -10299,6 +10382,103 @@

    v1.NodeSystemInfo

    +
    +
    +

    v1.ScaleIOPersistentVolumeSource

    +
    +

    ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    gateway

    The host address of the ScaleIO API Gateway.

    true

    string

    system

    The name of the storage system as configured in ScaleIO.

    true

    string

    secretRef

    SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.

    true

    v1.SecretReference

    sslEnabled

    Flag to enable/disable SSL communication with Gateway, default false

    false

    boolean

    false

    protectionDomain

    The name of the ScaleIO Protection Domain for the configured storage.

    false

    string

    storagePool

    The ScaleIO Storage Pool associated with the protection domain.

    false

    string

    storageMode

    Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

    false

    string

    volumeName

    The name of a volume already created in the ScaleIO system that is associated with this volume source.

    false

    string

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    +

    v1.ServiceSpec

    diff --git a/vendor/k8s.io/kubernetes/docs/api-reference/v1/operations.html b/vendor/k8s.io/kubernetes/docs/api-reference/v1/operations.html index 9547c4d70..3dceb0282 100755 --- a/vendor/k8s.io/kubernetes/docs/api-reference/v1/operations.html +++ b/vendor/k8s.io/kubernetes/docs/api-reference/v1/operations.html @@ -2665,7 +2665,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -3703,7 +3703,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -4741,7 +4741,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -5779,7 +5779,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -6817,7 +6817,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -8239,7 +8239,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -12105,7 +12105,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -13143,7 +13143,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -14949,7 +14949,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -16371,7 +16371,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -17409,7 +17409,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -20328,7 +20328,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -21794,7 +21794,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    @@ -24400,7 +24400,7 @@

    Parameters

    QueryParameter

    propagationPolicy

    -

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    +

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: Orphan - orphan the dependents; Background - allow the garbage collector to delete the dependents in the background; Foreground - a cascading policy that deletes all dependents in the foreground.

    false

    string

    diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-all.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-all.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-all.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-kube-dns.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-kube-dns.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-kube-dns.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-kube-proxy.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-kube-proxy.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon-kube-proxy.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-addon.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-cluster-info.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-cluster-info.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-cluster-info.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-auto-approve.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-auto-approve.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-auto-approve.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-post-csrs.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-post-csrs.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node-allow-post-csrs.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token-node.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-bootstrap-token.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-all.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-all.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-all.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-apiserver-kubelet-client.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-apiserver-kubelet-client.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-apiserver-kubelet-client.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-apiserver.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-apiserver.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-apiserver.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-ca.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-ca.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-ca.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-ca.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-ca.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-ca.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-client.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-client.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-front-proxy-client.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-sa.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-sa.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs-sa.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-certs.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-all.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-all.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-all.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-apiserver.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-apiserver.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-apiserver.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-controller-manager.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-controller-manager.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-controller-manager.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-scheduler.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-scheduler.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane-scheduler.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-controlplane.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-etcd-local.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-etcd-local.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-etcd-local.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-etcd.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-etcd.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-etcd.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-admin.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-admin.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-admin.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-all.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-all.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-all.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-controller-manager.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-controller-manager.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-controller-manager.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-kubelet.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-kubelet.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-kubelet.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-scheduler.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-scheduler.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-scheduler.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-user.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-user.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig-user.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-kubeconfig.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-mark-master.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-mark-master.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-mark-master.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight-master.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight-master.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight-master.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight-node.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight-node.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight-node.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-preflight.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-selfhosting-convert-from-staticpods.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-selfhosting-convert-from-staticpods.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-selfhosting-convert-from-staticpods.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-selfhosting.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-selfhosting.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-selfhosting.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-upload-config.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-upload-config.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase-upload-config.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha-phase.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-alpha.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-completion.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-completion.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-completion.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload-from-file.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload-from-file.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload-from-file.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload-from-flags.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload-from-flags.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload-from-flags.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-upload.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-view.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-view.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config-view.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-config.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-init.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-init.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-init.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-join.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-join.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-join.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-reset.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-reset.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-reset.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-create.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-create.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-create.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-delete.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-delete.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-delete.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-generate.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-generate.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-generate.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-list.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-list.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token-list.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-token.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade-apply.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade-apply.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade-apply.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade-plan.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade-plan.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade-plan.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-upgrade.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-version.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-version.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm-version.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubeadm.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubectl-alpha-diff.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubectl-alpha-diff.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubectl-alpha-diff.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/man/man1/kubectl-create-priorityclass.1 b/vendor/k8s.io/kubernetes/docs/man/man1/kubectl-create-priorityclass.1 new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/man/man1/kubectl-create-priorityclass.1 @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_alpha.md b/vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_alpha.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_alpha.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_alpha_diff.md b/vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_alpha_diff.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_alpha_diff.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_create_priorityclass.md b/vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_create_priorityclass.md new file mode 100644 index 000000000..b6fd7a0f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/docs/user-guide/kubectl/kubectl_create_priorityclass.md @@ -0,0 +1,3 @@ +This file is autogenerated, but we've stopped checking such files into the +repository to reduce the need for rebases. Please run hack/generate-docs.sh to +populate this file. diff --git a/vendor/k8s.io/kubernetes/examples/BUILD b/vendor/k8s.io/kubernetes/examples/BUILD index f972b1484..b2175aebc 100644 --- a/vendor/k8s.io/kubernetes/examples/BUILD +++ b/vendor/k8s.io/kubernetes/examples/BUILD @@ -29,12 +29,12 @@ go_test( importpath = "k8s.io/kubernetes/examples_test", tags = ["manual"], # this test is broken and examples in-tree is deprecated deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", - "//pkg/api/validation:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/apps/validation:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//pkg/capabilities:go_default_library", diff --git a/vendor/k8s.io/kubernetes/examples/OWNERS b/vendor/k8s.io/kubernetes/examples/OWNERS index d74aa8a61..315623ca8 100644 --- a/vendor/k8s.io/kubernetes/examples/OWNERS +++ b/vendor/k8s.io/kubernetes/examples/OWNERS @@ -2,6 +2,7 @@ reviewers: - brendandburns - thockin - zmerlynn + - zouyee approvers: - brendandburns - eparis diff --git a/vendor/k8s.io/kubernetes/examples/cockroachdb/cockroachdb-statefulset.yaml b/vendor/k8s.io/kubernetes/examples/cockroachdb/cockroachdb-statefulset.yaml index a3eab1039..0afdef391 100644 --- a/vendor/k8s.io/kubernetes/examples/cockroachdb/cockroachdb-statefulset.yaml +++ b/vendor/k8s.io/kubernetes/examples/cockroachdb/cockroachdb-statefulset.yaml @@ -163,8 +163,6 @@ spec: volumeClaimTemplates: - metadata: name: datadir - annotations: - volume.alpha.kubernetes.io/storage-class: anything spec: accessModes: - "ReadWriteOnce" diff --git a/vendor/k8s.io/kubernetes/examples/examples_test.go b/vendor/k8s.io/kubernetes/examples/examples_test.go index 64fdc9627..c47be91a4 100644 --- a/vendor/k8s.io/kubernetes/examples/examples_test.go +++ b/vendor/k8s.io/kubernetes/examples/examples_test.go @@ -32,12 +32,12 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" - "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/apis/apps" appsvalidation "k8s.io/kubernetes/pkg/apis/apps/validation" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/apis/extensions" expvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/capabilities" diff --git a/vendor/k8s.io/kubernetes/examples/https-nginx/BUILD b/vendor/k8s.io/kubernetes/examples/https-nginx/BUILD index a4a15ffe5..d3c41df7b 100644 --- a/vendor/k8s.io/kubernetes/examples/https-nginx/BUILD +++ b/vendor/k8s.io/kubernetes/examples/https-nginx/BUILD @@ -17,8 +17,9 @@ go_library( srcs = ["make_secret.go"], importpath = "k8s.io/kubernetes/examples/https-nginx", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/examples/https-nginx/make_secret.go b/vendor/k8s.io/kubernetes/examples/https-nginx/make_secret.go index 8299b5042..e85838ee7 100644 --- a/vendor/k8s.io/kubernetes/examples/https-nginx/make_secret.go +++ b/vendor/k8s.io/kubernetes/examples/https-nginx/make_secret.go @@ -28,10 +28,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" // This installs the legacy v1 API - _ "k8s.io/kubernetes/pkg/api/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) // TODO: @@ -66,5 +67,5 @@ func main() { "nginx.key": nginxKey, }, } - fmt.Printf(runtime.EncodeOrDie(api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), secret)) + fmt.Printf(runtime.EncodeOrDie(legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...), secret)) } diff --git a/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/bindings.yaml b/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/bindings.yaml index 17a686755..f61b73b21 100644 --- a/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/bindings.yaml +++ b/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/bindings.yaml @@ -1,5 +1,5 @@ -# privilegedPSP gives the privilegedPSP role -# to the group privileged. +# privileged-psp-users gives the privileged-psp-user role +# to the group privileged-psp-users. apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: @@ -13,8 +13,8 @@ roleRef: kind: ClusterRole name: privileged-psp-user --- -# restrictedPSP grants the restrictedPSP role to -# the groups restricted and privileged. +# restricted-psp-users grants the restricted-psp-user role to +# the groups restricted-psp-users and privileged-psp-users. apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: @@ -32,7 +32,7 @@ roleRef: name: restricted-psp-user --- # edit grants edit role to the groups -# restricted and privileged. +# restricted-psp-users and privileged-psp-users. apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: diff --git a/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/policies.yaml b/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/policies.yaml index 670a0e444..ab4abd730 100644 --- a/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/policies.yaml +++ b/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/policies.yaml @@ -16,6 +16,12 @@ spec: - '*' allowedCapabilities: - '*' + hostPID: true + hostIPC: true + hostNetwork: true + hostPorts: + - min: 1 + max: 65536 --- apiVersion: extensions/v1beta1 kind: PodSecurityPolicy @@ -38,4 +44,6 @@ spec: - 'configMap' - 'persistentVolumeClaim' - 'projected' - + hostPID: false + hostIPC: false + hostNetwork: false diff --git a/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/roles.yaml b/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/roles.yaml index b7ee13db4..2598e83bc 100644 --- a/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/roles.yaml +++ b/vendor/k8s.io/kubernetes/examples/podsecuritypolicy/rbac/roles.yaml @@ -1,10 +1,9 @@ -# restrictedPSP grants access to use -# the restricted PSP. +# restricted-psp-user grants access to use the restricted PSP. apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: restricted-psp-user -rules: +rules: - apiGroups: - extensions resources: @@ -14,13 +13,12 @@ rules: verbs: - use --- -# privilegedPSP grants access to use the privileged -# PSP. +# privileged-psp-user grants access to use the privileged PSP. apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: privileged-psp-user -rules: +rules: - apiGroups: - extensions resources: diff --git a/vendor/k8s.io/kubernetes/examples/sharing-clusters/BUILD b/vendor/k8s.io/kubernetes/examples/sharing-clusters/BUILD index 4892ce653..221715058 100644 --- a/vendor/k8s.io/kubernetes/examples/sharing-clusters/BUILD +++ b/vendor/k8s.io/kubernetes/examples/sharing-clusters/BUILD @@ -17,7 +17,8 @@ go_library( srcs = ["make_secret.go"], importpath = "k8s.io/kubernetes/examples/sharing-clusters", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/examples/sharing-clusters/make_secret.go b/vendor/k8s.io/kubernetes/examples/sharing-clusters/make_secret.go index 4721c1167..ece55eab3 100644 --- a/vendor/k8s.io/kubernetes/examples/sharing-clusters/make_secret.go +++ b/vendor/k8s.io/kubernetes/examples/sharing-clusters/make_secret.go @@ -25,7 +25,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" ) // TODO: @@ -59,5 +60,5 @@ func main() { "config": cfg, }, } - fmt.Printf(runtime.EncodeOrDie(api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), secret)) + fmt.Printf(runtime.EncodeOrDie(legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...), secret)) } diff --git a/vendor/k8s.io/kubernetes/examples/storage/cassandra/cassandra-statefulset.yaml b/vendor/k8s.io/kubernetes/examples/storage/cassandra/cassandra-statefulset.yaml index 62d7d2a71..f91f40360 100644 --- a/vendor/k8s.io/kubernetes/examples/storage/cassandra/cassandra-statefulset.yaml +++ b/vendor/k8s.io/kubernetes/examples/storage/cassandra/cassandra-statefulset.yaml @@ -82,16 +82,15 @@ spec: volumeClaimTemplates: - metadata: name: cassandra-data - annotations: - volume.beta.kubernetes.io/storage-class: fast spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi + storageClassName: fast --- kind: StorageClass -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 metadata: name: fast provisioner: kubernetes.io/gce-pd diff --git a/vendor/k8s.io/kubernetes/examples/storage/minio/minio-distributed-statefulset.yaml b/vendor/k8s.io/kubernetes/examples/storage/minio/minio-distributed-statefulset.yaml index 5457df249..de6eef0a9 100644 --- a/vendor/k8s.io/kubernetes/examples/storage/minio/minio-distributed-statefulset.yaml +++ b/vendor/k8s.io/kubernetes/examples/storage/minio/minio-distributed-statefulset.yaml @@ -1,8 +1,11 @@ -apiVersion: apps/v1beta1 +apiVersion: apps/v1beta2 kind: StatefulSet metadata: name: minio spec: + selector: + matchLabels: + app: minio serviceName: minio replicas: 4 template: @@ -39,8 +42,6 @@ spec: volumeClaimTemplates: - metadata: name: data - annotations: - volume.alpha.kubernetes.io/storage-class: anything spec: accessModes: - ReadWriteOnce diff --git a/vendor/k8s.io/kubernetes/examples/storage/minio/minio-standalone-deployment.yaml b/vendor/k8s.io/kubernetes/examples/storage/minio/minio-standalone-deployment.yaml index c6cd6d5ae..a6dee7d03 100644 --- a/vendor/k8s.io/kubernetes/examples/storage/minio/minio-standalone-deployment.yaml +++ b/vendor/k8s.io/kubernetes/examples/storage/minio/minio-standalone-deployment.yaml @@ -1,9 +1,12 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1beta2 kind: Deployment metadata: # This name uniquely identifies the Deployment name: minio-deployment spec: + selector: + matchLabels: + app: minio strategy: type: Recreate template: diff --git a/vendor/k8s.io/kubernetes/examples/storage/minio/minio-standalone-pvc.yaml b/vendor/k8s.io/kubernetes/examples/storage/minio/minio-standalone-pvc.yaml index edd05215a..66b1c9800 100644 --- a/vendor/k8s.io/kubernetes/examples/storage/minio/minio-standalone-pvc.yaml +++ b/vendor/k8s.io/kubernetes/examples/storage/minio/minio-standalone-pvc.yaml @@ -3,8 +3,6 @@ kind: PersistentVolumeClaim metadata: # This name uniquely identifies the PVC. Will be used in deployment below. name: minio-pv-claim - annotations: - volume.alpha.kubernetes.io/storage-class: anything labels: app: minio-storage-claim spec: diff --git a/vendor/k8s.io/kubernetes/examples/volumes/nfs/provisioner/nfs-server-gce-pv.yaml b/vendor/k8s.io/kubernetes/examples/volumes/nfs/provisioner/nfs-server-gce-pv.yaml index 92f9f5735..cccb9a42a 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/nfs/provisioner/nfs-server-gce-pv.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/nfs/provisioner/nfs-server-gce-pv.yaml @@ -4,8 +4,6 @@ metadata: name: nfs-pv-provisioning-demo labels: demo: nfs-pv-provisioning - annotations: - volume.alpha.kubernetes.io/storage-class: any spec: accessModes: [ "ReadWriteOnce" ] resources: diff --git a/vendor/k8s.io/kubernetes/examples/volumes/portworx/portworx-volume-pvcsc.yaml b/vendor/k8s.io/kubernetes/examples/volumes/portworx/portworx-volume-pvcsc.yaml index b07ddb302..736e67fee 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/portworx/portworx-volume-pvcsc.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/portworx/portworx-volume-pvcsc.yaml @@ -2,11 +2,10 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvcsc001 - annotations: - volume.beta.kubernetes.io/storage-class: portworx-io-priority-high spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi + storageClassName: portworx-io-priority-high diff --git a/vendor/k8s.io/kubernetes/examples/volumes/portworx/portworx-volume-sc-high.yaml b/vendor/k8s.io/kubernetes/examples/volumes/portworx/portworx-volume-sc-high.yaml index b9a0a51dc..8fc732377 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/portworx/portworx-volume-sc-high.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/portworx/portworx-volume-sc-high.yaml @@ -1,5 +1,5 @@ kind: StorageClass -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 metadata: name: portworx-io-priority-high provisioner: kubernetes.io/portworx-volume diff --git a/vendor/k8s.io/kubernetes/examples/volumes/scaleio/sc-pvc.yaml b/vendor/k8s.io/kubernetes/examples/volumes/scaleio/sc-pvc.yaml index 3937a1e82..078fb6354 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/scaleio/sc-pvc.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/scaleio/sc-pvc.yaml @@ -2,11 +2,10 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-sio-small - annotations: - volume.beta.kubernetes.io/storage-class: sio-small spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi + storageClassName: sio-small diff --git a/vendor/k8s.io/kubernetes/examples/volumes/scaleio/sc.yaml b/vendor/k8s.io/kubernetes/examples/volumes/scaleio/sc.yaml index 85de382bf..2ff4c028f 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/scaleio/sc.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/scaleio/sc.yaml @@ -1,5 +1,5 @@ kind: StorageClass -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 metadata: name: sio-small provisioner: kubernetes.io/scaleio diff --git a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/simple-statefulset.yaml b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/simple-statefulset.yaml index 465c7c5ed..3684a3b64 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/simple-statefulset.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/simple-statefulset.yaml @@ -37,10 +37,9 @@ spec: volumeClaimTemplates: - metadata: name: www - annotations: - volume.beta.kubernetes.io/storage-class: thin-disk spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi + storageClassName: thin-disk diff --git a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/simple-storageclass.yaml b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/simple-storageclass.yaml index bfa4dae4c..87327836f 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/simple-storageclass.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/simple-storageclass.yaml @@ -1,5 +1,5 @@ kind: StorageClass -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 metadata: name: thin-disk provisioner: kubernetes.io/vsphere-volume diff --git a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-pvcsc.yaml b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-pvcsc.yaml index f73ed91b5..03f3f8f8f 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-pvcsc.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-pvcsc.yaml @@ -2,11 +2,10 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvcsc001 - annotations: - volume.beta.kubernetes.io/storage-class: fast spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi + storageClassName: fast diff --git a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-fast.yaml b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-fast.yaml index b2b436f8e..959e28e88 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-fast.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-fast.yaml @@ -1,5 +1,5 @@ kind: StorageClass -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 metadata: name: fast provisioner: kubernetes.io/vsphere-volume diff --git a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-vsancapabilities-with-datastore.yaml b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-vsancapabilities-with-datastore.yaml index 2fd931666..5c4a9a665 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-vsancapabilities-with-datastore.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-vsancapabilities-with-datastore.yaml @@ -1,5 +1,5 @@ kind: StorageClass -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 metadata: name: fast provisioner: kubernetes.io/vsphere-volume diff --git a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-vsancapabilities.yaml b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-vsancapabilities.yaml index ad2ff9d15..5f8f9f2fc 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-vsancapabilities.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-vsancapabilities.yaml @@ -1,5 +1,5 @@ kind: StorageClass -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 metadata: name: fast provisioner: kubernetes.io/vsphere-volume diff --git a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-with-datastore.yaml b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-with-datastore.yaml index 5e468ef77..3fb56bf1a 100644 --- a/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-with-datastore.yaml +++ b/vendor/k8s.io/kubernetes/examples/volumes/vsphere/vsphere-volume-sc-with-datastore.yaml @@ -1,5 +1,5 @@ kind: StorageClass -apiVersion: storage.k8s.io/v1beta1 +apiVersion: storage.k8s.io/v1 metadata: name: fast provisioner: kubernetes.io/vsphere-volume diff --git a/vendor/k8s.io/kubernetes/federation/BUILD b/vendor/k8s.io/kubernetes/federation/BUILD deleted file mode 100644 index 5473e9017..000000000 --- a/vendor/k8s.io/kubernetes/federation/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load("@io_bazel//tools/build_defs/pkg:pkg.bzl", "pkg_tar") - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/apis/core:all-srcs", - "//federation/apis/federation:all-srcs", - "//federation/client/cache:all-srcs", - "//federation/client/clientset_generated/federation_clientset:all-srcs", - "//federation/cluster:all-srcs", - "//federation/cmd/federation-apiserver:all-srcs", - "//federation/cmd/federation-controller-manager:all-srcs", - "//federation/cmd/genfeddocs:all-srcs", - "//federation/cmd/kubefed:all-srcs", - "//federation/develop:all-srcs", - "//federation/pkg/dnsprovider:all-srcs", - "//federation/pkg/federatedtypes:all-srcs", - "//federation/pkg/federation-controller:all-srcs", - "//federation/pkg/kubefed:all-srcs", - "//federation/plugin/pkg/admission/schedulingpolicy:all-srcs", - "//federation/registry/cluster:all-srcs", - "//federation/test/e2e:all-srcs", - "//federation/test/integration:all-srcs", - ], - tags = ["automanaged"], -) - -pkg_tar( - name = "release", - files = glob([ - "deploy/**", - ]) + ["//federation/cluster:all-srcs"], - package_dir = "federation", -) diff --git a/vendor/k8s.io/kubernetes/federation/Makefile b/vendor/k8s.io/kubernetes/federation/Makefile deleted file mode 100644 index 091f80212..000000000 --- a/vendor/k8s.io/kubernetes/federation/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -# 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. - -DBG_MAKEFILE ?= -ifeq ($(DBG_MAKEFILE),1) - $(warning ***** starting makefile for goal(s) "$(MAKECMDGOALS)") - $(warning ***** $(shell date)) -else - # If we're not debugging the Makefile, don't echo recipes. - MAKEFLAGS += -s -endif - -.PHONY: all -all: init build push deploy - -.PHONY: init -init: - ./develop/develop.sh init - -.PHONY: build -build: build_binaries build_image - -.PHONY: push -push: - ./develop/develop.sh push - -.PHONY: deploy -deploy: deploy_clusters deploy_federation - -.PHONY: destroy -destroy: destroy_federation destroy_clusters - -.PHONY: build_binaries -build_binaries: - ./develop/develop.sh build_binaries - -.PHONY: build_image -build_image: - ./develop/develop.sh build_image - -.PHONY: deploy_clusters -deploy_clusters: - ./develop/develop.sh deploy_clusters - -.PHONY: deploy_federation -deploy_federation: - ./develop/develop.sh deploy_federation - -.PHONY: destroy_federation -destroy_federation: - ./develop/develop.sh destroy_federation - -.PHONY: destroy_clusters -destroy_clusters: - ./develop/develop.sh destroy_clusters - -.PHONY: redeploy_federation -redeploy_federation: - ./develop/develop.sh redeploy_federation diff --git a/vendor/k8s.io/kubernetes/federation/OWNERS b/vendor/k8s.io/kubernetes/federation/OWNERS deleted file mode 100644 index 84b367985..000000000 --- a/vendor/k8s.io/kubernetes/federation/OWNERS +++ /dev/null @@ -1,17 +0,0 @@ -reviewers: - - colhom - - csbell - - irfanurrehman - - madhusudancs - - marun - - mwielgus - - nikhiljindal - - quinton-hoole - - shashidharatd -approvers: - - csbell - - irfanurrehman - - madhusudancs - - mwielgus - - nikhiljindal - - quinton-hoole diff --git a/vendor/k8s.io/kubernetes/federation/README.md b/vendor/k8s.io/kubernetes/federation/README.md deleted file mode 100644 index 8003e9fd1..000000000 --- a/vendor/k8s.io/kubernetes/federation/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# Cluster Federation - -Kubernetes Cluster Federation enables users to federate multiple -Kubernetes clusters. Please see the [user guide](https://kubernetes.io/docs/concepts/cluster-administration/federation-service-discovery/) -and the [admin guide](https://kubernetes.io/docs/tutorials/federation/set-up-cluster-federation-kubefed/) -for more details about setting up and using the Cluster Federation. - -# Building Kubernetes Cluster Federation - -Please see the [Kubernetes Development Guide](https://github.com/kubernetes/community/blob/master/contributors/devel/development.md) -for initial setup. Once you have the development environment setup -as explained in that guide, you also need to install [`jq`](https://stedolan.github.io/jq/download/) - - -Building cluster federation artifacts should be as simple as running: - -```shell -make build -``` - -You can specify the docker registry to tag the image using the -KUBE_REGISTRY environment variable. Please make sure that you use -the same value in all the subsequent commands. - -To push the built docker images to the registry, run: - -```shell -make push -``` - -To initialize the deployment run: - -(This pulls the installer images) - -```shell -make init -``` - -To deploy the clusters and install the federation components, edit the -`${KUBE_ROOT}/_output/federation/config.json` file to describe your -clusters and run: - -```shell -make deploy -``` - -To turn down the federation components and tear down the clusters run: - -```shell -make destroy -``` - -# Ideas for improvement - -1. Continue with `destroy` phase even in the face of errors. - - The bash script sets `set -e errexit` which causes the script to exit - at the very first error. This should be the default mode for deploying - components but not for destroying/cleanup. - - -[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/federation/README.md?pixel)]() diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/register.go b/vendor/k8s.io/kubernetes/federation/apis/core/register.go deleted file mode 100644 index efb4dd584..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/core/register.go +++ /dev/null @@ -1,102 +0,0 @@ -/* -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 core - -import ( - "os" - - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/kubernetes/pkg/api" -) - -// NOTE: the registry, scheme and codecs are created here to allow to install a federation core group -// that is completely independent from the Kubernetes core group. It's only used for the core group itself. -// The other apigroups in the federation apiserver use the Kubernetes registry, scheme and codecs. - -// GroupFactoryRegistry is the APIGroupFactoryRegistry (overlaps a bit with Registry, see comments in package for details) -var GroupFactoryRegistry = make(announced.APIGroupFactoryRegistry) - -// Registry is an instance of an API registry. This is an interim step to start removing the idea of a global -// API registry. -var Registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) - -// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered. -var Scheme = runtime.NewScheme() - -// Codecs provides access to encoding and decoding for the scheme -var Codecs = serializer.NewCodecFactory(Scheme) - -// GroupName is the group name use in this package -const GroupName = "" - -// SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} - -// Unversioned is group version for unversioned API objects -// TODO: this should be v1 probably -var Unversioned = schema.GroupVersion{Group: "", Version: "v1"} - -// ParameterCodec handles versioning of objects that are converted to query parameters. -var ParameterCodec = runtime.NewParameterCodec(Scheme) - -// Kind takes an unqualified kind and returns a Group qualified GroupKind -func Kind(kind string) schema.GroupKind { - return SchemeGroupVersion.WithKind(kind).GroupKind() -} - -// Resource takes an unqualified resource and returns a Group qualified GroupResource -func Resource(resource string) schema.GroupResource { - return SchemeGroupVersion.WithResource(resource).GroupResource() -} - -var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - AddToScheme = SchemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - if err := scheme.AddIgnoredConversionType(&metav1.TypeMeta{}, &metav1.TypeMeta{}); err != nil { - return err - } - scheme.AddKnownTypes(SchemeGroupVersion, - &api.ServiceList{}, - &api.Service{}, - &api.Namespace{}, - &api.NamespaceList{}, - &api.Secret{}, - &api.SecretList{}, - &api.Event{}, - &api.EventList{}, - &api.ConfigMap{}, - &api.ConfigMapList{}, - ) - - // Register Unversioned types under their own special group - scheme.AddUnversionedTypes(Unversioned, - &metav1.Status{}, - &metav1.APIVersions{}, - &metav1.APIGroupList{}, - &metav1.APIGroup{}, - &metav1.APIResourceList{}, - ) - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/v1/conversion.go b/vendor/k8s.io/kubernetes/federation/apis/core/v1/conversion.go deleted file mode 100644 index 2e9ed1e74..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/core/v1/conversion.go +++ /dev/null @@ -1,70 +0,0 @@ -/* -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 v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api/v1" -) - -func addConversionFuncs(scheme *runtime.Scheme) error { - // Add non-generated conversion functions - err := scheme.AddConversionFuncs( - v1.Convert_v1_DeleteOptions_To_api_DeleteOptions, - v1.Convert_api_DeleteOptions_To_v1_DeleteOptions, - v1.Convert_v1_List_To_api_List, - v1.Convert_api_List_To_v1_List, - v1.Convert_v1_ListOptions_To_api_ListOptions, - v1.Convert_api_ListOptions_To_v1_ListOptions, - v1.Convert_v1_ObjectFieldSelector_To_api_ObjectFieldSelector, - v1.Convert_api_ObjectFieldSelector_To_v1_ObjectFieldSelector, - v1.Convert_v1_ObjectMeta_To_api_ObjectMeta, - v1.Convert_api_ObjectMeta_To_v1_ObjectMeta, - v1.Convert_v1_ObjectReference_To_api_ObjectReference, - v1.Convert_api_ObjectReference_To_v1_ObjectReference, - v1.Convert_v1_Secret_To_api_Secret, - v1.Convert_api_Secret_To_v1_Secret, - v1.Convert_v1_SecretList_To_api_SecretList, - v1.Convert_api_SecretList_To_v1_SecretList, - v1.Convert_v1_Service_To_api_Service, - v1.Convert_api_Service_To_v1_Service, - v1.Convert_v1_ServiceList_To_api_ServiceList, - v1.Convert_api_ServiceList_To_v1_ServiceList, - v1.Convert_v1_ServicePort_To_api_ServicePort, - v1.Convert_api_ServicePort_To_v1_ServicePort, - v1.Convert_v1_ServiceProxyOptions_To_api_ServiceProxyOptions, - v1.Convert_api_ServiceProxyOptions_To_v1_ServiceProxyOptions, - v1.Convert_v1_ServiceSpec_To_api_ServiceSpec, - v1.Convert_api_ServiceSpec_To_v1_ServiceSpec, - v1.Convert_v1_ServiceStatus_To_api_ServiceStatus, - v1.Convert_api_ServiceStatus_To_v1_ServiceStatus, - ) - if err != nil { - return err - } - - if err := v1.AddFieldLabelConversionsForEvent(scheme); err != nil { - return nil - } - if err := v1.AddFieldLabelConversionsForNamespace(scheme); err != nil { - return nil - } - if err := v1.AddFieldLabelConversionsForSecret(scheme); err != nil { - return nil - } - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/v1/doc.go b/vendor/k8s.io/kubernetes/federation/apis/core/v1/doc.go deleted file mode 100644 index 50a5741fc..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/core/v1/doc.go +++ /dev/null @@ -1,23 +0,0 @@ -/* -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. -*/ - -// This is probably not required for now because we are reusing the types -// in k8s.io/kubernetes/pkg/api. But adding it now as a guard to ensure -// that others don't stumble on this in the future when they add new -// types here since adding it now doesn't hurt. -// +k8s:conversion-gen=k8s.io/kubernetes/federation/apis/core - -package v1 diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/annotations.go b/vendor/k8s.io/kubernetes/federation/apis/federation/annotations.go deleted file mode 100644 index 9a9e519f3..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/annotations.go +++ /dev/null @@ -1,29 +0,0 @@ -/* -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 federation - -// FederationNameAnnotation is the annotation which holds the name of -// the federation that a federation control plane component is associated -// with. It must be applied to all the API types that represent that federations -// control plane's components in the host cluster and in joining clusters. -const FederationNameAnnotation = "federation.alpha.kubernetes.io/federation-name" - -// ClusterNameAnnotation is the annotation which holds the name of -// the cluster that an object is associated with. If the object is -// not associated with any cluster, then this annotation is not -// required. -const ClusterNameAnnotation = "federation.alpha.kubernetes.io/cluster-name" diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/install/install_test.go b/vendor/k8s.io/kubernetes/federation/apis/federation/install/install_test.go deleted file mode 100644 index 9521ae2c3..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/install/install_test.go +++ /dev/null @@ -1,119 +0,0 @@ -/* -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 install - -import ( - "encoding/json" - "testing" - - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/pkg/api" -) - -func TestResourceVersioner(t *testing.T) { - accessor := meta.NewAccessor() - cluster := federation.Cluster{ObjectMeta: metav1.ObjectMeta{ResourceVersion: "10"}} - version, err := accessor.ResourceVersion(&cluster) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if version != "10" { - t.Errorf("unexpected version %v", version) - } - - clusterList := federation.ClusterList{ListMeta: metav1.ListMeta{ResourceVersion: "10"}} - version, err = accessor.ResourceVersion(&clusterList) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - if version != "10" { - t.Errorf("unexpected version %v", version) - } -} - -func TestCodec(t *testing.T) { - cluster := federation.Cluster{} - // We do want to use package registered rather than testapi here, because we - // want to test if the package install and package registered work as expected. - data, err := runtime.Encode(api.Codecs.LegacyCodec(api.Registry.GroupOrDie(federation.GroupName).GroupVersion), &cluster) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - other := federation.Cluster{} - if err := json.Unmarshal(data, &other); err != nil { - t.Fatalf("unexpected error: %v", err) - } - if other.APIVersion != api.Registry.GroupOrDie(federation.GroupName).GroupVersion.String() || other.Kind != "Cluster" { - t.Errorf("unexpected unmarshalled object %#v", other) - } -} - -func TestInterfacesFor(t *testing.T) { - if _, err := api.Registry.GroupOrDie(federation.GroupName).InterfacesFor(federation.SchemeGroupVersion); err == nil { - t.Fatalf("unexpected non-error: %v", err) - } - for i, version := range api.Registry.GroupOrDie(federation.GroupName).GroupVersions { - if vi, err := api.Registry.GroupOrDie(federation.GroupName).InterfacesFor(version); err != nil || vi == nil { - t.Fatalf("%d: unexpected result: %v", i, err) - } - } -} - -func TestRESTMapper(t *testing.T) { - gv := v1beta1.SchemeGroupVersion - clusterGVK := gv.WithKind("Cluster") - - if gvk, err := api.Registry.GroupOrDie(federation.GroupName).RESTMapper.KindFor(gv.WithResource("clusters")); err != nil || gvk != clusterGVK { - t.Errorf("unexpected version mapping: %v %v", gvk, err) - } - - if m, err := api.Registry.GroupOrDie(federation.GroupName).RESTMapper.RESTMapping(clusterGVK.GroupKind(), ""); err != nil || m.GroupVersionKind != clusterGVK || m.Resource != "clusters" { - t.Errorf("unexpected version mapping: %#v %v", m, err) - } - - for _, version := range api.Registry.GroupOrDie(federation.GroupName).GroupVersions { - mapping, err := api.Registry.GroupOrDie(federation.GroupName).RESTMapper.RESTMapping(clusterGVK.GroupKind(), version.Version) - if err != nil { - t.Errorf("unexpected error: %v", err) - } - - if mapping.Resource != "clusters" { - t.Errorf("incorrect resource name: %#v", mapping) - } - if mapping.GroupVersionKind.GroupVersion() != version { - t.Errorf("incorrect groupVersion: %v", mapping) - } - - interfaces, _ := api.Registry.GroupOrDie(federation.GroupName).InterfacesFor(version) - if mapping.ObjectConvertor != interfaces.ObjectConvertor { - t.Errorf("unexpected: %#v, expected: %#v", mapping, interfaces) - } - - rc := &federation.Cluster{ObjectMeta: metav1.ObjectMeta{Name: "foo"}} - name, err := mapping.MetadataAccessor.Name(rc) - if err != nil { - t.Errorf("unexpected error: %v", err) - } - if name != "foo" { - t.Errorf("unable to retrieve object meta with: %v", mapping.MetadataAccessor) - } - } -} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/types.go b/vendor/k8s.io/kubernetes/federation/apis/federation/types.go deleted file mode 100644 index 0e0aeb38f..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/types.go +++ /dev/null @@ -1,178 +0,0 @@ -/* -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 federation - -import ( - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" -) - -// ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match. -type ServerAddressByClientCIDR struct { - // The CIDR with which clients can match their IP to figure out the server address that they should use. - ClientCIDR string - // Address of this server, suitable for a client that matches the above CIDR. - // This can be a hostname, hostname:port, IP or IP:port. - ServerAddress string -} - -// ClusterSpec describes the attributes of a kubernetes cluster. -type ClusterSpec struct { - // A map of client CIDR to server address. - // This is to help clients reach servers in the most network-efficient way possible. - // Clients can use the appropriate server address as per the CIDR that they match. - // In case of multiple matches, clients should use the longest matching CIDR. - ServerAddressByClientCIDRs []ServerAddressByClientCIDR - // Name of the secret containing kubeconfig to access this cluster. - // The secret is read from the kubernetes cluster that is hosting federation control plane. - // Admin needs to ensure that the required secret exists. Secret should be in the same namespace where federation control plane is hosted and it should have kubeconfig in its data with key "kubeconfig". - // This will later be changed to a reference to secret in federation control plane when the federation control plane supports secrets. - // This can be left empty if the cluster allows insecure access. - // +optional - SecretRef *api.LocalObjectReference -} - -type ClusterConditionType string - -// These are valid conditions of a cluster. -const ( - // ClusterReady means the cluster is ready to accept workloads. - ClusterReady ClusterConditionType = "Ready" - // ClusterOffline means the cluster is temporarily down or not reachable - ClusterOffline ClusterConditionType = "Offline" -) - -// ClusterCondition describes current state of a cluster. -type ClusterCondition struct { - // Type of cluster condition, Complete or Failed. - Type ClusterConditionType - // Status of the condition, one of True, False, Unknown. - Status api.ConditionStatus - // Last time the condition was checked. - // +optional - LastProbeTime metav1.Time - // Last time the condition transit from one status to another. - // +optional - LastTransitionTime metav1.Time - // (brief) reason for the condition's last transition. - // +optional - Reason string - // Human readable message indicating details about last transition. - // +optional - Message string -} - -// ClusterStatus is information about the current status of a cluster updated by cluster controller periodically. -type ClusterStatus struct { - // Conditions is an array of current cluster conditions. - // +optional - Conditions []ClusterCondition - // Zones is the list of availability zones in which the nodes of the cluster exist, e.g. 'us-east1-a'. - // These will always be in the same region. - // +optional - Zones []string - // Region is the name of the region in which all of the nodes in the cluster exist. e.g. 'us-east1'. - // +optional - Region string -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Information about a registered cluster in a federated kubernetes setup. Clusters are not namespaced and have unique names in the federation. -type Cluster struct { - metav1.TypeMeta - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - metav1.ObjectMeta - - // Spec defines the behavior of the Cluster. - // +optional - Spec ClusterSpec - // Status describes the current status of a Cluster - // +optional - Status ClusterStatus -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// A list of all the kubernetes clusters registered to the federation -type ClusterList struct { - metav1.TypeMeta - // Standard list metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds - // +optional - metav1.ListMeta - - // List of Cluster objects. - Items []Cluster -} - -// Temporary/alpha structures to support custom replica assignments within Federated workloads. - -// A set of preferences that can be added to federated version of workloads (deployments, replicasets, ..) -// as a json-serialized annotation. The preferences allow the users to express in which clusters they -// want to put their replicas within the mentioned workload objects. -type ReplicaAllocationPreferences struct { - // If set to true then already scheduled and running replicas may be moved to other clusters - // in order to match current state to the specified preferences. Otherwise, if set to false, - // up and running replicas will not be moved. - // +optional - Rebalance bool - - // A mapping between cluster names and preferences regarding a local workload object (dep, rs, .. ) in - // these clusters. - // "*" (if provided) applies to all clusters if an explicit mapping is not provided. - // If omitted, clusters without explicit preferences should not have any replicas scheduled. - // +optional - Clusters map[string]ClusterPreferences -} - -// Preferences regarding number of replicas assigned to a cluster workload object (dep, rs, ..) within -// a federated workload object. -type ClusterPreferences struct { - // Minimum number of replicas that should be assigned to this cluster workload object. 0 by default. - // +optional - MinReplicas int64 - - // Maximum number of replicas that should be assigned to this cluster workload object. - // Unbounded if no value provided (default). - // +optional - MaxReplicas *int64 - - // A number expressing the preference to put an additional replica to this cluster workload object. - // 0 by default. - Weight int64 -} - -// Annotation for a federated service to keep record of service loadbalancer ingresses in federated cluster -type FederatedServiceIngress struct { - // List of loadbalancer ingress of a service in all federated clusters - // +optional - Items []ClusterServiceIngress `json:"items,omitempty"` -} - -// Loadbalancer ingresses of a service within a federated cluster -type ClusterServiceIngress struct { - // Cluster is the name of the federated cluster - Cluster string `json:"cluster"` - // List of loadbalancer ingresses of a federated service within a federated cluster - Items []v1.LoadBalancerIngress `json:"items"` -} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.proto b/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.proto deleted file mode 100644 index 5e1f66528..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.proto +++ /dev/null @@ -1,150 +0,0 @@ -/* -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.kubernetes.federation.apis.federation.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"; - -// Information about a registered cluster in a federated kubernetes setup. Clusters are not namespaced and have unique names in the federation. -message Cluster { - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec defines the behavior of the Cluster. - // +optional - optional ClusterSpec spec = 2; - - // Status describes the current status of a Cluster - // +optional - optional ClusterStatus status = 3; -} - -// ClusterCondition describes current state of a cluster. -message ClusterCondition { - // Type of cluster condition, Complete or Failed. - optional string type = 1; - - // Status of the condition, one of True, False, Unknown. - optional string status = 2; - - // Last time the condition was checked. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3; - - // Last time the condition transit from one status to another. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4; - - // (brief) reason for the condition's last transition. - // +optional - optional string reason = 5; - - // Human readable message indicating details about last transition. - // +optional - optional string message = 6; -} - -// A list of all the kubernetes clusters registered to the federation -message ClusterList { - // Standard list metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // List of Cluster objects. - repeated Cluster items = 2; -} - -// ClusterSelectorRequirement contains values, a key, and an operator that relates the key and values. -// The zero value of ClusterSelectorRequirement is invalid. -// ClusterSelectorRequirement implements both set based match and exact match -message ClusterSelectorRequirement { - // +patchMergeKey=key - // +patchStrategy=merge - optional string key = 1; - - // The Operator defines how the Key is matched to the Values. One of "in", "notin", - // "exists", "!", "=", "!=", "gt" or "lt". - optional string operator = 2; - - // An array of string values. If the operator is "in" or "notin", - // the values array must be non-empty. If the operator is "exists" or "!", - // the values array must be empty. If the operator is "gt" or "lt", the values - // array must have a single element, which will be interpreted as an integer. - // This array is replaced during a strategic merge patch. - // +optional - repeated string values = 3; -} - -// ClusterSpec describes the attributes of a kubernetes cluster. -message ClusterSpec { - // A map of client CIDR to server address. - // This is to help clients reach servers in the most network-efficient way possible. - // Clients can use the appropriate server address as per the CIDR that they match. - // In case of multiple matches, clients should use the longest matching CIDR. - // +patchMergeKey=clientCIDR - // +patchStrategy=merge - repeated ServerAddressByClientCIDR serverAddressByClientCIDRs = 1; - - // Name of the secret containing kubeconfig to access this cluster. - // The secret is read from the kubernetes cluster that is hosting federation control plane. - // Admin needs to ensure that the required secret exists. Secret should be in the same namespace where federation control plane is hosted and it should have kubeconfig in its data with key "kubeconfig". - // This will later be changed to a reference to secret in federation control plane when the federation control plane supports secrets. - // This can be left empty if the cluster allows insecure access. - // +optional - optional k8s.io.api.core.v1.LocalObjectReference secretRef = 2; -} - -// ClusterStatus is information about the current status of a cluster updated by cluster controller periodically. -message ClusterStatus { - // Conditions is an array of current cluster conditions. - // +optional - repeated ClusterCondition conditions = 1; - - // Zones is the list of availability zones in which the nodes of the cluster exist, e.g. 'us-east1-a'. - // These will always be in the same region. - // +optional - repeated string zones = 5; - - // Region is the name of the region in which all of the nodes in the cluster exist. e.g. 'us-east1'. - // +optional - optional string region = 6; -} - -// ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match. -message ServerAddressByClientCIDR { - // The CIDR with which clients can match their IP to figure out the server address that they should use. - optional string clientCIDR = 1; - - // Address of this server, suitable for a client that matches the above CIDR. - // This can be a hostname, hostname:port, IP or IP:port. - optional string serverAddress = 2; -} - diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/types.go b/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/types.go deleted file mode 100644 index b8c9cca3f..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/types.go +++ /dev/null @@ -1,161 +0,0 @@ -/* -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 - -import ( - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match. -type ServerAddressByClientCIDR struct { - // The CIDR with which clients can match their IP to figure out the server address that they should use. - ClientCIDR string `json:"clientCIDR" protobuf:"bytes,1,opt,name=clientCIDR"` - // Address of this server, suitable for a client that matches the above CIDR. - // This can be a hostname, hostname:port, IP or IP:port. - ServerAddress string `json:"serverAddress" protobuf:"bytes,2,opt,name=serverAddress"` -} - -// ClusterSpec describes the attributes of a kubernetes cluster. -type ClusterSpec struct { - // A map of client CIDR to server address. - // This is to help clients reach servers in the most network-efficient way possible. - // Clients can use the appropriate server address as per the CIDR that they match. - // In case of multiple matches, clients should use the longest matching CIDR. - // +patchMergeKey=clientCIDR - // +patchStrategy=merge - ServerAddressByClientCIDRs []ServerAddressByClientCIDR `json:"serverAddressByClientCIDRs" patchStrategy:"merge" patchMergeKey:"clientCIDR" protobuf:"bytes,1,rep,name=serverAddressByClientCIDRs"` - // Name of the secret containing kubeconfig to access this cluster. - // The secret is read from the kubernetes cluster that is hosting federation control plane. - // Admin needs to ensure that the required secret exists. Secret should be in the same namespace where federation control plane is hosted and it should have kubeconfig in its data with key "kubeconfig". - // This will later be changed to a reference to secret in federation control plane when the federation control plane supports secrets. - // This can be left empty if the cluster allows insecure access. - // +optional - SecretRef *v1.LocalObjectReference `json:"secretRef,omitempty" protobuf:"bytes,2,opt,name=secretRef"` -} - -type ClusterConditionType string - -// These are valid conditions of a cluster. -const ( - // ClusterReady means the cluster is ready to accept workloads. - ClusterReady ClusterConditionType = "Ready" - // ClusterOffline means the cluster is temporarily down or not reachable - ClusterOffline ClusterConditionType = "Offline" -) - -// ClusterCondition describes current state of a cluster. -type ClusterCondition struct { - // Type of cluster condition, Complete or Failed. - Type ClusterConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=ClusterConditionType"` - // Status of the condition, one of True, False, Unknown. - Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/kubernetes/pkg/api/v1.ConditionStatus"` - // Last time the condition was checked. - // +optional - LastProbeTime metav1.Time `json:"lastProbeTime,omitempty" protobuf:"bytes,3,opt,name=lastProbeTime"` - // Last time the condition transit from one status to another. - // +optional - LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,4,opt,name=lastTransitionTime"` - // (brief) reason for the condition's last transition. - // +optional - Reason string `json:"reason,omitempty" protobuf:"bytes,5,opt,name=reason"` - // Human readable message indicating details about last transition. - // +optional - Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` -} - -// ClusterStatus is information about the current status of a cluster updated by cluster controller periodically. -type ClusterStatus struct { - // Conditions is an array of current cluster conditions. - // +optional - Conditions []ClusterCondition `json:"conditions,omitempty" protobuf:"bytes,1,rep,name=conditions"` - // Zones is the list of availability zones in which the nodes of the cluster exist, e.g. 'us-east1-a'. - // These will always be in the same region. - // +optional - Zones []string `json:"zones,omitempty" protobuf:"bytes,5,rep,name=zones"` - // Region is the name of the region in which all of the nodes in the cluster exist. e.g. 'us-east1'. - // +optional - Region string `json:"region,omitempty" protobuf:"bytes,6,opt,name=region"` -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +genclient:nonNamespaced - -// Information about a registered cluster in a federated kubernetes setup. Clusters are not namespaced and have unique names in the federation. -type Cluster struct { - metav1.TypeMeta `json:",inline"` - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Spec defines the behavior of the Cluster. - // +optional - Spec ClusterSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` - // Status describes the current status of a Cluster - // +optional - Status ClusterStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// A list of all the kubernetes clusters registered to the federation -type ClusterList struct { - metav1.TypeMeta `json:",inline"` - // Standard list metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds - // +optional - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // List of Cluster objects. - Items []Cluster `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// Expressed as value of annotation for selecting the clusters on which a resource is created. -type ClusterSelector []ClusterSelectorRequirement - -// ClusterSelectorRequirement contains values, a key, and an operator that relates the key and values. -// The zero value of ClusterSelectorRequirement is invalid. -// ClusterSelectorRequirement implements both set based match and exact match -type ClusterSelectorRequirement struct { - // +patchMergeKey=key - // +patchStrategy=merge - Key string `json:"key" patchStrategy:"merge" patchMergeKey:"key" protobuf:"bytes,1,opt,name=key"` - // The Operator defines how the Key is matched to the Values. One of "in", "notin", - // "exists", "!", "=", "!=", "gt" or "lt". - Operator string `json:"operator" protobuf:"bytes,2,opt,name=operator"` - // An array of string values. If the operator is "in" or "notin", - // the values array must be non-empty. If the operator is "exists" or "!", - // the values array must be empty. If the operator is "gt" or "lt", the values - // array must have a single element, which will be interpreted as an integer. - // This array is replaced during a strategic merge patch. - // +optional - Values []string `json:"values,omitempty" protobuf:"bytes,3,rep,name=values"` -} - -const ( - // FederationNamespaceSystem is the system namespace where we place federation control plane components. - FederationNamespaceSystem string = "federation-system" - - // FederationClusterSelectorAnnotation is used to determine placement of objects on federated clusters - FederationClusterSelectorAnnotation string = "federation.alpha.kubernetes.io/cluster-selector" - - // FederationOnlyClusterSelector is the cluster selector to indicate any object in - // federation having this annotation should not be synced to federated clusters. - FederationOnlyClusterSelector string = "federation.kubernetes.io/federation-control-plane=true" -) diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/types_swagger_doc_generated.go deleted file mode 100644 index dda8cf524..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/types_swagger_doc_generated.go +++ /dev/null @@ -1,106 +0,0 @@ -/* -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_Cluster = map[string]string{ - "": "Information about a registered cluster in a federated kubernetes setup. Clusters are not namespaced and have unique names in the federation.", - "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "spec": "Spec defines the behavior of the Cluster.", - "status": "Status describes the current status of a Cluster", -} - -func (Cluster) SwaggerDoc() map[string]string { - return map_Cluster -} - -var map_ClusterCondition = map[string]string{ - "": "ClusterCondition describes current state of a cluster.", - "type": "Type of cluster condition, Complete or Failed.", - "status": "Status of the condition, one of True, False, Unknown.", - "lastProbeTime": "Last time the condition was checked.", - "lastTransitionTime": "Last time the condition transit from one status to another.", - "reason": "(brief) reason for the condition's last transition.", - "message": "Human readable message indicating details about last transition.", -} - -func (ClusterCondition) SwaggerDoc() map[string]string { - return map_ClusterCondition -} - -var map_ClusterList = map[string]string{ - "": "A list of all the kubernetes clusters registered to the federation", - "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "items": "List of Cluster objects.", -} - -func (ClusterList) SwaggerDoc() map[string]string { - return map_ClusterList -} - -var map_ClusterSelectorRequirement = map[string]string{ - "": "ClusterSelectorRequirement contains values, a key, and an operator that relates the key and values. The zero value of ClusterSelectorRequirement is invalid. ClusterSelectorRequirement implements both set based match and exact match", - "operator": "The Operator defines how the Key is matched to the Values. One of \"in\", \"notin\", \"exists\", \"!\", \"=\", \"!=\", \"gt\" or \"lt\".", - "values": "An array of string values. If the operator is \"in\" or \"notin\", the values array must be non-empty. If the operator is \"exists\" or \"!\", the values array must be empty. If the operator is \"gt\" or \"lt\", the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", -} - -func (ClusterSelectorRequirement) SwaggerDoc() map[string]string { - return map_ClusterSelectorRequirement -} - -var map_ClusterSpec = map[string]string{ - "": "ClusterSpec describes the attributes of a kubernetes cluster.", - "serverAddressByClientCIDRs": "A map of client CIDR to server address. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR.", - "secretRef": "Name of the secret containing kubeconfig to access this cluster. The secret is read from the kubernetes cluster that is hosting federation control plane. Admin needs to ensure that the required secret exists. Secret should be in the same namespace where federation control plane is hosted and it should have kubeconfig in its data with key \"kubeconfig\". This will later be changed to a reference to secret in federation control plane when the federation control plane supports secrets. This can be left empty if the cluster allows insecure access.", -} - -func (ClusterSpec) SwaggerDoc() map[string]string { - return map_ClusterSpec -} - -var map_ClusterStatus = map[string]string{ - "": "ClusterStatus is information about the current status of a cluster updated by cluster controller periodically.", - "conditions": "Conditions is an array of current cluster conditions.", - "zones": "Zones is the list of availability zones in which the nodes of the cluster exist, e.g. 'us-east1-a'. These will always be in the same region.", - "region": "Region is the name of the region in which all of the nodes in the cluster exist. e.g. 'us-east1'.", -} - -func (ClusterStatus) SwaggerDoc() map[string]string { - return map_ClusterStatus -} - -var map_ServerAddressByClientCIDR = map[string]string{ - "": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "clientCIDR": "The CIDR with which clients can match their IP to figure out the server address that they should use.", - "serverAddress": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", -} - -func (ServerAddressByClientCIDR) SwaggerDoc() map[string]string { - return map_ServerAddressByClientCIDR -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.conversion.go deleted file mode 100644 index 1f9e733dd..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.conversion.go +++ /dev/null @@ -1,205 +0,0 @@ -// +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 conversion-gen. Do not edit it manually! - -package v1beta1 - -import ( - v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - federation "k8s.io/kubernetes/federation/apis/federation" - api "k8s.io/kubernetes/pkg/api" - unsafe "unsafe" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(scheme *runtime.Scheme) error { - return scheme.AddGeneratedConversionFuncs( - Convert_v1beta1_Cluster_To_federation_Cluster, - Convert_federation_Cluster_To_v1beta1_Cluster, - Convert_v1beta1_ClusterCondition_To_federation_ClusterCondition, - Convert_federation_ClusterCondition_To_v1beta1_ClusterCondition, - Convert_v1beta1_ClusterList_To_federation_ClusterList, - Convert_federation_ClusterList_To_v1beta1_ClusterList, - Convert_v1beta1_ClusterSpec_To_federation_ClusterSpec, - Convert_federation_ClusterSpec_To_v1beta1_ClusterSpec, - Convert_v1beta1_ClusterStatus_To_federation_ClusterStatus, - Convert_federation_ClusterStatus_To_v1beta1_ClusterStatus, - Convert_v1beta1_ServerAddressByClientCIDR_To_federation_ServerAddressByClientCIDR, - Convert_federation_ServerAddressByClientCIDR_To_v1beta1_ServerAddressByClientCIDR, - ) -} - -func autoConvert_v1beta1_Cluster_To_federation_Cluster(in *Cluster, out *federation.Cluster, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta1_ClusterSpec_To_federation_ClusterSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta1_ClusterStatus_To_federation_ClusterStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta1_Cluster_To_federation_Cluster is an autogenerated conversion function. -func Convert_v1beta1_Cluster_To_federation_Cluster(in *Cluster, out *federation.Cluster, s conversion.Scope) error { - return autoConvert_v1beta1_Cluster_To_federation_Cluster(in, out, s) -} - -func autoConvert_federation_Cluster_To_v1beta1_Cluster(in *federation.Cluster, out *Cluster, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_federation_ClusterSpec_To_v1beta1_ClusterSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_federation_ClusterStatus_To_v1beta1_ClusterStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_federation_Cluster_To_v1beta1_Cluster is an autogenerated conversion function. -func Convert_federation_Cluster_To_v1beta1_Cluster(in *federation.Cluster, out *Cluster, s conversion.Scope) error { - return autoConvert_federation_Cluster_To_v1beta1_Cluster(in, out, s) -} - -func autoConvert_v1beta1_ClusterCondition_To_federation_ClusterCondition(in *ClusterCondition, out *federation.ClusterCondition, s conversion.Scope) error { - out.Type = federation.ClusterConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) - out.LastProbeTime = in.LastProbeTime - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1beta1_ClusterCondition_To_federation_ClusterCondition is an autogenerated conversion function. -func Convert_v1beta1_ClusterCondition_To_federation_ClusterCondition(in *ClusterCondition, out *federation.ClusterCondition, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterCondition_To_federation_ClusterCondition(in, out, s) -} - -func autoConvert_federation_ClusterCondition_To_v1beta1_ClusterCondition(in *federation.ClusterCondition, out *ClusterCondition, s conversion.Scope) error { - out.Type = ClusterConditionType(in.Type) - out.Status = v1.ConditionStatus(in.Status) - out.LastProbeTime = in.LastProbeTime - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_federation_ClusterCondition_To_v1beta1_ClusterCondition is an autogenerated conversion function. -func Convert_federation_ClusterCondition_To_v1beta1_ClusterCondition(in *federation.ClusterCondition, out *ClusterCondition, s conversion.Scope) error { - return autoConvert_federation_ClusterCondition_To_v1beta1_ClusterCondition(in, out, s) -} - -func autoConvert_v1beta1_ClusterList_To_federation_ClusterList(in *ClusterList, out *federation.ClusterList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]federation.Cluster)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1beta1_ClusterList_To_federation_ClusterList is an autogenerated conversion function. -func Convert_v1beta1_ClusterList_To_federation_ClusterList(in *ClusterList, out *federation.ClusterList, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterList_To_federation_ClusterList(in, out, s) -} - -func autoConvert_federation_ClusterList_To_v1beta1_ClusterList(in *federation.ClusterList, out *ClusterList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]Cluster)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_federation_ClusterList_To_v1beta1_ClusterList is an autogenerated conversion function. -func Convert_federation_ClusterList_To_v1beta1_ClusterList(in *federation.ClusterList, out *ClusterList, s conversion.Scope) error { - return autoConvert_federation_ClusterList_To_v1beta1_ClusterList(in, out, s) -} - -func autoConvert_v1beta1_ClusterSpec_To_federation_ClusterSpec(in *ClusterSpec, out *federation.ClusterSpec, s conversion.Scope) error { - out.ServerAddressByClientCIDRs = *(*[]federation.ServerAddressByClientCIDR)(unsafe.Pointer(&in.ServerAddressByClientCIDRs)) - out.SecretRef = (*api.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - return nil -} - -// Convert_v1beta1_ClusterSpec_To_federation_ClusterSpec is an autogenerated conversion function. -func Convert_v1beta1_ClusterSpec_To_federation_ClusterSpec(in *ClusterSpec, out *federation.ClusterSpec, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterSpec_To_federation_ClusterSpec(in, out, s) -} - -func autoConvert_federation_ClusterSpec_To_v1beta1_ClusterSpec(in *federation.ClusterSpec, out *ClusterSpec, s conversion.Scope) error { - out.ServerAddressByClientCIDRs = *(*[]ServerAddressByClientCIDR)(unsafe.Pointer(&in.ServerAddressByClientCIDRs)) - out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - return nil -} - -// Convert_federation_ClusterSpec_To_v1beta1_ClusterSpec is an autogenerated conversion function. -func Convert_federation_ClusterSpec_To_v1beta1_ClusterSpec(in *federation.ClusterSpec, out *ClusterSpec, s conversion.Scope) error { - return autoConvert_federation_ClusterSpec_To_v1beta1_ClusterSpec(in, out, s) -} - -func autoConvert_v1beta1_ClusterStatus_To_federation_ClusterStatus(in *ClusterStatus, out *federation.ClusterStatus, s conversion.Scope) error { - out.Conditions = *(*[]federation.ClusterCondition)(unsafe.Pointer(&in.Conditions)) - out.Zones = *(*[]string)(unsafe.Pointer(&in.Zones)) - out.Region = in.Region - return nil -} - -// Convert_v1beta1_ClusterStatus_To_federation_ClusterStatus is an autogenerated conversion function. -func Convert_v1beta1_ClusterStatus_To_federation_ClusterStatus(in *ClusterStatus, out *federation.ClusterStatus, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterStatus_To_federation_ClusterStatus(in, out, s) -} - -func autoConvert_federation_ClusterStatus_To_v1beta1_ClusterStatus(in *federation.ClusterStatus, out *ClusterStatus, s conversion.Scope) error { - out.Conditions = *(*[]ClusterCondition)(unsafe.Pointer(&in.Conditions)) - out.Zones = *(*[]string)(unsafe.Pointer(&in.Zones)) - out.Region = in.Region - return nil -} - -// Convert_federation_ClusterStatus_To_v1beta1_ClusterStatus is an autogenerated conversion function. -func Convert_federation_ClusterStatus_To_v1beta1_ClusterStatus(in *federation.ClusterStatus, out *ClusterStatus, s conversion.Scope) error { - return autoConvert_federation_ClusterStatus_To_v1beta1_ClusterStatus(in, out, s) -} - -func autoConvert_v1beta1_ServerAddressByClientCIDR_To_federation_ServerAddressByClientCIDR(in *ServerAddressByClientCIDR, out *federation.ServerAddressByClientCIDR, s conversion.Scope) error { - out.ClientCIDR = in.ClientCIDR - out.ServerAddress = in.ServerAddress - return nil -} - -// Convert_v1beta1_ServerAddressByClientCIDR_To_federation_ServerAddressByClientCIDR is an autogenerated conversion function. -func Convert_v1beta1_ServerAddressByClientCIDR_To_federation_ServerAddressByClientCIDR(in *ServerAddressByClientCIDR, out *federation.ServerAddressByClientCIDR, s conversion.Scope) error { - return autoConvert_v1beta1_ServerAddressByClientCIDR_To_federation_ServerAddressByClientCIDR(in, out, s) -} - -func autoConvert_federation_ServerAddressByClientCIDR_To_v1beta1_ServerAddressByClientCIDR(in *federation.ServerAddressByClientCIDR, out *ServerAddressByClientCIDR, s conversion.Scope) error { - out.ClientCIDR = in.ClientCIDR - out.ServerAddress = in.ServerAddress - return nil -} - -// Convert_federation_ServerAddressByClientCIDR_To_v1beta1_ServerAddressByClientCIDR is an autogenerated conversion function. -func Convert_federation_ServerAddressByClientCIDR_To_v1beta1_ServerAddressByClientCIDR(in *federation.ServerAddressByClientCIDR, out *ServerAddressByClientCIDR, s conversion.Scope) error { - return autoConvert_federation_ServerAddressByClientCIDR_To_v1beta1_ServerAddressByClientCIDR(in, out, s) -} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.deepcopy.go deleted file mode 100644 index 716b3af29..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.deepcopy.go +++ /dev/null @@ -1,245 +0,0 @@ -// +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" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" -) - -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Cluster).DeepCopyInto(out.(*Cluster)) - return nil - }, InType: reflect.TypeOf(&Cluster{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterCondition).DeepCopyInto(out.(*ClusterCondition)) - return nil - }, InType: reflect.TypeOf(&ClusterCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterList).DeepCopyInto(out.(*ClusterList)) - return nil - }, InType: reflect.TypeOf(&ClusterList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterSelectorRequirement).DeepCopyInto(out.(*ClusterSelectorRequirement)) - return nil - }, InType: reflect.TypeOf(&ClusterSelectorRequirement{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterSpec).DeepCopyInto(out.(*ClusterSpec)) - return nil - }, InType: reflect.TypeOf(&ClusterSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterStatus).DeepCopyInto(out.(*ClusterStatus)) - return nil - }, InType: reflect.TypeOf(&ClusterStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServerAddressByClientCIDR).DeepCopyInto(out.(*ServerAddressByClientCIDR)) - return nil - }, InType: reflect.TypeOf(&ServerAddressByClientCIDR{})}, - ) -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Cluster) DeepCopyInto(out *Cluster) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster. -func (in *Cluster) DeepCopy() *Cluster { - if in == nil { - return nil - } - out := new(Cluster) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Cluster) 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 *ClusterCondition) DeepCopyInto(out *ClusterCondition) { - *out = *in - in.LastProbeTime.DeepCopyInto(&out.LastProbeTime) - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCondition. -func (in *ClusterCondition) DeepCopy() *ClusterCondition { - if in == nil { - return nil - } - out := new(ClusterCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterList) DeepCopyInto(out *ClusterList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Cluster, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList. -func (in *ClusterList) DeepCopy() *ClusterList { - if in == nil { - return nil - } - out := new(ClusterList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterList) 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 *ClusterSelectorRequirement) DeepCopyInto(out *ClusterSelectorRequirement) { - *out = *in - if in.Values != nil { - in, out := &in.Values, &out.Values - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSelectorRequirement. -func (in *ClusterSelectorRequirement) DeepCopy() *ClusterSelectorRequirement { - if in == nil { - return nil - } - out := new(ClusterSelectorRequirement) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) { - *out = *in - if in.ServerAddressByClientCIDRs != nil { - in, out := &in.ServerAddressByClientCIDRs, &out.ServerAddressByClientCIDRs - *out = make([]ServerAddressByClientCIDR, len(*in)) - copy(*out, *in) - } - if in.SecretRef != nil { - in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(v1.LocalObjectReference) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec. -func (in *ClusterSpec) DeepCopy() *ClusterSpec { - if in == nil { - return nil - } - out := new(ClusterSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]ClusterCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Zones != nil { - in, out := &in.Zones, &out.Zones - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus. -func (in *ClusterStatus) DeepCopy() *ClusterStatus { - if in == nil { - return nil - } - out := new(ClusterStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServerAddressByClientCIDR) DeepCopyInto(out *ServerAddressByClientCIDR) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerAddressByClientCIDR. -func (in *ServerAddressByClientCIDR) DeepCopy() *ServerAddressByClientCIDR { - if in == nil { - return nil - } - out := new(ServerAddressByClientCIDR) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/validation/validation.go b/vendor/k8s.io/kubernetes/federation/apis/federation/validation/validation.go deleted file mode 100644 index 8db2ff485..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/validation/validation.go +++ /dev/null @@ -1,64 +0,0 @@ -/* -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 validation - -import ( - "fmt" - "net" - - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/pkg/api/validation" -) - -func ValidateClusterSpec(spec *federation.ClusterSpec, fieldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - // address is required. - if len(spec.ServerAddressByClientCIDRs) == 0 { - allErrs = append(allErrs, field.Required(fieldPath.Child("serverAddressByClientCIDRs"), "")) - } else { - for i, address := range spec.ServerAddressByClientCIDRs { - idxPath := fieldPath.Child("serverAddressByClientCIDRs").Index(i) - if len(address.ClientCIDR) > 0 { - if _, _, err := net.ParseCIDR(address.ClientCIDR); err != nil { - allErrs = append(allErrs, field.Invalid(idxPath.Child("clientCIDR"), address.ClientCIDR, fmt.Sprintf("must be a valid CIDR: %v", err))) - } - } - } - } - return allErrs -} - -func ValidateCluster(cluster *federation.Cluster) field.ErrorList { - allErrs := validation.ValidateObjectMeta(&cluster.ObjectMeta, false, validation.ValidateClusterName, field.NewPath("metadata")) - allErrs = append(allErrs, ValidateClusterSpec(&cluster.Spec, field.NewPath("spec"))...) - return allErrs -} - -func ValidateClusterUpdate(cluster, oldCluster *federation.Cluster) field.ErrorList { - allErrs := validation.ValidateObjectMetaUpdate(&cluster.ObjectMeta, &oldCluster.ObjectMeta, field.NewPath("metadata")) - if cluster.Name != oldCluster.Name { - allErrs = append(allErrs, field.Invalid(field.NewPath("meta", "name"), - cluster.Name+" != "+oldCluster.Name, "cannot change cluster name")) - } - return allErrs -} - -func ValidateClusterStatusUpdate(cluster, oldCluster *federation.Cluster) field.ErrorList { - allErrs := validation.ValidateObjectMetaUpdate(&cluster.ObjectMeta, &oldCluster.ObjectMeta, field.NewPath("metadata")) - return allErrs -} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/validation/validation_test.go b/vendor/k8s.io/kubernetes/federation/apis/federation/validation/validation_test.go deleted file mode 100644 index 10054bf29..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/validation/validation_test.go +++ /dev/null @@ -1,330 +0,0 @@ -/* -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 validation - -import ( - "testing" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/pkg/api" -) - -func TestValidateClusterSpec(t *testing.T) { - type validateClusterSpecTest struct { - testName string - spec *federation.ClusterSpec - path *field.Path - } - - successCases := []validateClusterSpecTest{ - { - testName: "normal CIDR", - spec: &federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - path: field.NewPath("spec"), - }, - { - testName: "missing CIDR", - spec: &federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "", - ServerAddress: "localhost:8888", - }, - }, - }, - path: field.NewPath("spec"), - }, - { - testName: "no host in CIDR", - spec: &federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/32", - ServerAddress: "localhost:8888", - }, - }, - }, - path: field.NewPath("spec"), - }, - } - for _, successCase := range successCases { - errs := ValidateClusterSpec(successCase.spec, successCase.path) - if len(errs) != 0 { - t.Errorf("expect success for testname: %q but got: %v", successCase.testName, errs) - } - } - - errorCases := []validateClusterSpecTest{ - { - testName: "invalid CIDR : network missing", - spec: &federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0", - ServerAddress: "localhost:8888", - }, - }, - }, - path: field.NewPath("spec"), - }, - { - testName: "invalid CIDR : invalid address value", - spec: &federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "256.0.0.0/16", - ServerAddress: "localhost:8888", - }, - }, - }, - path: field.NewPath("spec"), - }, - { - testName: "invalid CIDR : invalid address formation", - spec: &federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0/16", - ServerAddress: "localhost:8888", - }, - }, - }, - path: field.NewPath("spec"), - }, - { - testName: "invalid CIDR : invalid network num", - spec: &federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/33", - ServerAddress: "localhost:8888", - }, - }, - }, - path: field.NewPath("spec"), - }, - } - - for _, errorCase := range errorCases { - errs := ValidateClusterSpec(errorCase.spec, errorCase.path) - if len(errs) == 0 { - t.Errorf("expect failure for testname : %q", errorCase.testName) - } - } - -} - -func TestValidateCluster(t *testing.T) { - successCases := []federation.Cluster{ - { - ObjectMeta: metav1.ObjectMeta{Name: "cluster-s"}, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - }, - } - for _, successCase := range successCases { - errs := ValidateCluster(&successCase) - if len(errs) != 0 { - t.Errorf("expect success: %v", errs) - } - } - - errorCases := map[string]federation.Cluster{ - "missing cluster addresses": { - ObjectMeta: metav1.ObjectMeta{Name: "cluster-f"}, - }, - "empty cluster addresses": { - ObjectMeta: metav1.ObjectMeta{Name: "cluster-f"}, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{}, - }}, - "invalid_label": { - ObjectMeta: metav1.ObjectMeta{ - Name: "cluster-f", - Labels: map[string]string{ - "NoUppercaseOrSpecialCharsLike=Equals": "bar", - }, - }, - }, - "invalid cluster name (is a subdomain)": { - ObjectMeta: metav1.ObjectMeta{Name: "mycluster.mycompany"}, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - }, - } - for testName, errorCase := range errorCases { - errs := ValidateCluster(&errorCase) - if len(errs) == 0 { - t.Errorf("expected failure for %s", testName) - } - } -} - -func TestValidateClusterUpdate(t *testing.T) { - type clusterUpdateTest struct { - old federation.Cluster - update federation.Cluster - } - successCases := []clusterUpdateTest{ - { - old: federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{Name: "cluster-s"}, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - }, - update: federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{Name: "cluster-s"}, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - }, - }, - } - for _, successCase := range successCases { - successCase.old.ObjectMeta.ResourceVersion = "1" - successCase.update.ObjectMeta.ResourceVersion = "1" - errs := ValidateClusterUpdate(&successCase.update, &successCase.old) - if len(errs) != 0 { - t.Errorf("expect success: %v", errs) - } - } - - errorCases := map[string]clusterUpdateTest{ - "cluster name changed": { - old: federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{Name: "cluster-s"}, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - }, - update: federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{Name: "cluster-newname"}, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - }, - }, - } - for testName, errorCase := range errorCases { - errs := ValidateClusterUpdate(&errorCase.update, &errorCase.old) - if len(errs) == 0 { - t.Errorf("expected failure: %s", testName) - } - } -} - -func TestValidateClusterStatusUpdate(t *testing.T) { - type clusterUpdateTest struct { - old federation.Cluster - update federation.Cluster - } - successCases := []clusterUpdateTest{ - { - old: federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{Name: "cluster-s"}, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - Status: federation.ClusterStatus{ - Conditions: []federation.ClusterCondition{ - {Type: federation.ClusterReady, Status: api.ConditionTrue}, - }, - }, - }, - update: federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{Name: "cluster-s"}, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - Status: federation.ClusterStatus{ - Conditions: []federation.ClusterCondition{ - {Type: federation.ClusterReady, Status: api.ConditionTrue}, - {Type: federation.ClusterOffline, Status: api.ConditionTrue}, - }, - }, - }, - }, - } - for _, successCase := range successCases { - successCase.old.ObjectMeta.ResourceVersion = "1" - successCase.update.ObjectMeta.ResourceVersion = "1" - errs := ValidateClusterUpdate(&successCase.update, &successCase.old) - if len(errs) != 0 { - t.Errorf("expect success: %v", errs) - } - } - - errorCases := map[string]clusterUpdateTest{} - for testName, errorCase := range errorCases { - errs := ValidateClusterStatusUpdate(&errorCase.update, &errorCase.old) - if len(errs) == 0 { - t.Errorf("expected failure: %s", testName) - } - } -} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/federation/apis/federation/zz_generated.deepcopy.go deleted file mode 100644 index a944361d9..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/zz_generated.deepcopy.go +++ /dev/null @@ -1,331 +0,0 @@ -// +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 federation - -import ( - v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - reflect "reflect" -) - -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Cluster).DeepCopyInto(out.(*Cluster)) - return nil - }, InType: reflect.TypeOf(&Cluster{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterCondition).DeepCopyInto(out.(*ClusterCondition)) - return nil - }, InType: reflect.TypeOf(&ClusterCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterList).DeepCopyInto(out.(*ClusterList)) - return nil - }, InType: reflect.TypeOf(&ClusterList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterPreferences).DeepCopyInto(out.(*ClusterPreferences)) - return nil - }, InType: reflect.TypeOf(&ClusterPreferences{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterServiceIngress).DeepCopyInto(out.(*ClusterServiceIngress)) - return nil - }, InType: reflect.TypeOf(&ClusterServiceIngress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterSpec).DeepCopyInto(out.(*ClusterSpec)) - return nil - }, InType: reflect.TypeOf(&ClusterSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterStatus).DeepCopyInto(out.(*ClusterStatus)) - return nil - }, InType: reflect.TypeOf(&ClusterStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FederatedServiceIngress).DeepCopyInto(out.(*FederatedServiceIngress)) - return nil - }, InType: reflect.TypeOf(&FederatedServiceIngress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaAllocationPreferences).DeepCopyInto(out.(*ReplicaAllocationPreferences)) - return nil - }, InType: reflect.TypeOf(&ReplicaAllocationPreferences{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServerAddressByClientCIDR).DeepCopyInto(out.(*ServerAddressByClientCIDR)) - return nil - }, InType: reflect.TypeOf(&ServerAddressByClientCIDR{})}, - ) -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Cluster) DeepCopyInto(out *Cluster) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster. -func (in *Cluster) DeepCopy() *Cluster { - if in == nil { - return nil - } - out := new(Cluster) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Cluster) 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 *ClusterCondition) DeepCopyInto(out *ClusterCondition) { - *out = *in - in.LastProbeTime.DeepCopyInto(&out.LastProbeTime) - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCondition. -func (in *ClusterCondition) DeepCopy() *ClusterCondition { - if in == nil { - return nil - } - out := new(ClusterCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterList) DeepCopyInto(out *ClusterList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Cluster, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList. -func (in *ClusterList) DeepCopy() *ClusterList { - if in == nil { - return nil - } - out := new(ClusterList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterList) 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 *ClusterPreferences) DeepCopyInto(out *ClusterPreferences) { - *out = *in - if in.MaxReplicas != nil { - in, out := &in.MaxReplicas, &out.MaxReplicas - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterPreferences. -func (in *ClusterPreferences) DeepCopy() *ClusterPreferences { - if in == nil { - return nil - } - out := new(ClusterPreferences) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterServiceIngress) DeepCopyInto(out *ClusterServiceIngress) { - *out = *in - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1.LoadBalancerIngress, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterServiceIngress. -func (in *ClusterServiceIngress) DeepCopy() *ClusterServiceIngress { - if in == nil { - return nil - } - out := new(ClusterServiceIngress) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) { - *out = *in - if in.ServerAddressByClientCIDRs != nil { - in, out := &in.ServerAddressByClientCIDRs, &out.ServerAddressByClientCIDRs - *out = make([]ServerAddressByClientCIDR, len(*in)) - copy(*out, *in) - } - if in.SecretRef != nil { - in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(api.LocalObjectReference) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec. -func (in *ClusterSpec) DeepCopy() *ClusterSpec { - if in == nil { - return nil - } - out := new(ClusterSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]ClusterCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Zones != nil { - in, out := &in.Zones, &out.Zones - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus. -func (in *ClusterStatus) DeepCopy() *ClusterStatus { - if in == nil { - return nil - } - out := new(ClusterStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *FederatedServiceIngress) DeepCopyInto(out *FederatedServiceIngress) { - *out = *in - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterServiceIngress, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederatedServiceIngress. -func (in *FederatedServiceIngress) DeepCopy() *FederatedServiceIngress { - if in == nil { - return nil - } - out := new(FederatedServiceIngress) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicaAllocationPreferences) DeepCopyInto(out *ReplicaAllocationPreferences) { - *out = *in - if in.Clusters != nil { - in, out := &in.Clusters, &out.Clusters - *out = make(map[string]ClusterPreferences, len(*in)) - for key, val := range *in { - newVal := new(ClusterPreferences) - val.DeepCopyInto(newVal) - (*out)[key] = *newVal - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaAllocationPreferences. -func (in *ReplicaAllocationPreferences) DeepCopy() *ReplicaAllocationPreferences { - if in == nil { - return nil - } - out := new(ReplicaAllocationPreferences) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServerAddressByClientCIDR) DeepCopyInto(out *ServerAddressByClientCIDR) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerAddressByClientCIDR. -func (in *ServerAddressByClientCIDR) DeepCopy() *ServerAddressByClientCIDR { - if in == nil { - return nil - } - out := new(ServerAddressByClientCIDR) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/k8s.io/kubernetes/federation/apis/openapi-spec/swagger.json b/vendor/k8s.io/kubernetes/federation/apis/openapi-spec/swagger.json deleted file mode 100644 index db795e845..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/openapi-spec/swagger.json +++ /dev/null @@ -1,15312 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Generic API Server", - "version": "v1.9.0" - }, - "paths": { - "/api/": { - "get": { - "description": "get available API versions", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core" - ], - "operationId": "getCoreAPIVersions", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/api/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "getCoreV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/api/v1/configmaps": { - "get": { - "description": "list or watch objects of kind ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1ConfigMapForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/events": { - "get": { - "description": "list or watch objects of kind Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1EventForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/namespaces": { - "get": { - "description": "list or watch objects of kind Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1Namespace", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "post": { - "description": "create a Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1Namespace", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/configmaps": { - "get": { - "description": "list or watch objects of kind ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedConfigMap", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "post": { - "description": "create a ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedConfigMap", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "delete": { - "description": "delete collection of ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedConfigMap", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/configmaps/{name}": { - "get": { - "description": "read the specified ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedConfigMap", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "put": { - "description": "replace the specified ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedConfigMap", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "delete": { - "description": "delete a ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedConfigMap", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "patch": { - "description": "partially update the specified ConfigMap", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedConfigMap", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ConfigMap", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/events": { - "get": { - "description": "list or watch objects of kind Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedEvent", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "post": { - "description": "create an Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "delete": { - "description": "delete collection of Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedEvent", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/events/{name}": { - "get": { - "description": "read the specified Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedEvent", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "put": { - "description": "replace the specified Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "delete": { - "description": "delete an Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "patch": { - "description": "partially update the specified Event", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Event", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/secrets": { - "get": { - "description": "list or watch objects of kind Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedSecret", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "post": { - "description": "create a Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedSecret", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "delete": { - "description": "delete collection of Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedSecret", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/secrets/{name}": { - "get": { - "description": "read the specified Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedSecret", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "put": { - "description": "replace the specified Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedSecret", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "delete": { - "description": "delete a Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedSecret", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "patch": { - "description": "partially update the specified Secret", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedSecret", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Secret", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/services": { - "get": { - "description": "list or watch objects of kind Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedService", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "post": { - "description": "create a Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "delete": { - "description": "delete collection of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedService", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/services/{name}": { - "get": { - "description": "read the specified Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedService", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "put": { - "description": "replace the specified Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "delete": { - "description": "delete a Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "patch": { - "description": "partially update the specified Service", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Service", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/services/{name}/status": { - "get": { - "description": "read status of the specified Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedServiceStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "put": { - "description": "replace status of the specified Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedServiceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "patch": { - "description": "partially update status of the specified Service", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedServiceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Service", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{name}": { - "get": { - "description": "read the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1Namespace", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "put": { - "description": "replace the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1Namespace", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "delete": { - "description": "delete a Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1Namespace", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "patch": { - "description": "partially update the specified Namespace", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1Namespace", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Namespace", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{name}/finalize": { - "put": { - "description": "replace finalize of the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespaceFinalize", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Namespace", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{name}/status": { - "get": { - "description": "read status of the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespaceStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "put": { - "description": "replace status of the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespaceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "patch": { - "description": "partially update status of the specified Namespace", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespaceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Namespace", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/secrets": { - "get": { - "description": "list or watch objects of kind Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1SecretForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/services": { - "get": { - "description": "list or watch objects of kind Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1ServiceForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/configmaps": { - "get": { - "description": "watch individual changes to a list of ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1ConfigMapListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/events": { - "get": { - "description": "watch individual changes to a list of Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1EventListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces": { - "get": { - "description": "watch individual changes to a list of Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespaceList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps": { - "get": { - "description": "watch individual changes to a list of ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedConfigMapList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { - "get": { - "description": "watch changes to an object of kind ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedConfigMap", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ConfigMap", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events": { - "get": { - "description": "watch individual changes to a list of Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedEventList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "description": "watch changes to an object of kind Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedEvent", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Event" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Event", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets": { - "get": { - "description": "watch individual changes to a list of Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedSecretList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { - "get": { - "description": "watch changes to an object of kind Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedSecret", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Secret", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services": { - "get": { - "description": "watch individual changes to a list of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedServiceList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services/{name}": { - "get": { - "description": "watch changes to an object of kind Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedService", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Service", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{name}": { - "get": { - "description": "watch changes to an object of kind Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1Namespace", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Namespace" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Namespace", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/secrets": { - "get": { - "description": "watch individual changes to a list of Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1SecretListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Secret" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/services": { - "get": { - "description": "watch individual changes to a list of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1ServiceListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "version": "v1", - "kind": "Service" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/": { - "get": { - "description": "get available API versions", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apis" - ], - "operationId": "getAPIVersions", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/extensions/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions" - ], - "operationId": "getExtensionsAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/extensions/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "getExtensionsV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/extensions/v1beta1/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1DaemonSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1DeploymentForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/ingresses": { - "get": { - "description": "list or watch objects of kind Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1IngressForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "post": { - "description": "create a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "delete": { - "description": "delete collection of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "description": "read the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "put": { - "description": "replace the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "delete": { - "description": "delete a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "patch": { - "description": "partially update the specified DaemonSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "description": "read status of the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDaemonSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "put": { - "description": "replace status of the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "patch": { - "description": "partially update status of the specified DaemonSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "post": { - "description": "create a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "delete": { - "description": "delete collection of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "read the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "put": { - "description": "replace the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "delete": { - "description": "delete a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "patch": { - "description": "partially update the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback": { - "post": { - "description": "create rollback of a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedDeploymentRollback", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DeploymentRollback" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DeploymentRollback", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "description": "read scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDeploymentScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Scale" - } - }, - "put": { - "description": "replace scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Scale" - } - }, - "patch": { - "description": "partially update scale of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Scale" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "description": "read status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDeploymentStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "put": { - "description": "replace status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "patch": { - "description": "partially update status of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { - "get": { - "description": "list or watch objects of kind Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "post": { - "description": "create an Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "delete": { - "description": "delete collection of Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "get": { - "description": "read the specified Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "put": { - "description": "replace the specified Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "delete": { - "description": "delete an Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "patch": { - "description": "partially update the specified Ingress", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "description": "read status of the specified Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedIngressStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "put": { - "description": "replace status of the specified Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "patch": { - "description": "partially update status of the specified Ingress", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets": { - "get": { - "description": "list or watch objects of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "post": { - "description": "create a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "delete": { - "description": "delete collection of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "read the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "put": { - "description": "replace the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "delete": { - "description": "delete a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "patch": { - "description": "partially update the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale": { - "get": { - "description": "read scale of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicaSetScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Scale" - } - }, - "put": { - "description": "replace scale of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Scale" - } - }, - "patch": { - "description": "partially update scale of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Scale" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "description": "read status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicaSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "put": { - "description": "replace status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "patch": { - "description": "partially update status of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/replicasets": { - "get": { - "description": "list or watch objects of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1ReplicaSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1DaemonSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1DeploymentListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/ingresses": { - "get": { - "description": "watch individual changes to a list of Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedDaemonSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "description": "watch changes to an object of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedDaemonSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedDeploymentList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "watch changes to an object of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedDeployment", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "description": "watch individual changes to a list of Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedIngressList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "description": "watch changes to an object of kind Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedIngress", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedReplicaSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "watch changes to an object of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedReplicaSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1ReplicaSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/federation/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation" - ], - "operationId": "getFederationAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/federation/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "getFederationV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/federation/v1beta1/clusters": { - "get": { - "description": "list or watch objects of kind Cluster", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "listFederationV1beta1Cluster", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "post": { - "description": "create a Cluster", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "createFederationV1beta1Cluster", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "delete": { - "description": "delete collection of Cluster", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "deleteFederationV1beta1CollectionCluster", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/federation/v1beta1/clusters/{name}": { - "get": { - "description": "read the specified Cluster", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "readFederationV1beta1Cluster", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "put": { - "description": "replace the specified Cluster", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "replaceFederationV1beta1Cluster", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "delete": { - "description": "delete a Cluster", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "deleteFederationV1beta1Cluster", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "patch": { - "description": "partially update the specified Cluster", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "patchFederationV1beta1Cluster", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Cluster", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/federation/v1beta1/clusters/{name}/status": { - "put": { - "description": "replace status of the specified Cluster", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "replaceFederationV1beta1ClusterStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Cluster", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/federation/v1beta1/watch/clusters": { - "get": { - "description": "watch individual changes to a list of Cluster", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "watchFederationV1beta1ClusterList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/federation/v1beta1/watch/clusters/{name}": { - "get": { - "description": "watch changes to an object of kind Cluster", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "federation_v1beta1" - ], - "operationId": "watchFederationV1beta1Cluster", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Cluster", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/logs/": { - "get": { - "schemes": [ - "https" - ], - "tags": [ - "logs" - ], - "operationId": "logFileListHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - } - } - }, - "/logs/{logpath}": { - "get": { - "schemes": [ - "https" - ], - "tags": [ - "logs" - ], - "operationId": "logFileHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "path to the log", - "name": "logpath", - "in": "path", - "required": true - } - ] - }, - "/version/": { - "get": { - "description": "get the code version", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "schemes": [ - "https" - ], - "tags": [ - "version" - ], - "operationId": "getCodeVersion", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - } - }, - "definitions": { - "intstr.IntOrString": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.util.intstr.IntOrString instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": { - "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "string" - }, - "partition": { - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).", - "type": "integer", - "format": "int32" - }, - "readOnly": { - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "boolean" - }, - "volumeID": { - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Affinity": { - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "description": "Describes node affinity scheduling rules for the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity" - }, - "podAffinity": { - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity" - }, - "podAntiAffinity": { - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity" - } - } - }, - "io.k8s.api.core.v1.AzureDiskVolumeSource": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "required": [ - "diskName", - "diskURI" - ], - "properties": { - "cachingMode": { - "description": "Host Caching mode: None, Read Only, Read Write.", - "type": "string" - }, - "diskName": { - "description": "The Name of the data disk in the blob storage", - "type": "string" - }, - "diskURI": { - "description": "The URI the data disk in the blob storage", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "kind": { - "description": "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.AzureFileVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "required": [ - "secretName", - "shareName" - ], - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Capabilities": { - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "description": "Added capabilities", - "type": "array", - "items": { - "type": "string" - } - }, - "drop": { - "description": "Removed capabilities", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.CephFSVolumeSource": { - "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "monitors" - ], - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "array", - "items": { - "type": "string" - } - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "boolean" - }, - "secretFile": { - "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "string" - }, - "secretRef": { - "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "user": { - "description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.CinderVolumeSource": { - "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "type": "string" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "type": "boolean" - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ClientIPConfig": { - "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", - "properties": { - "timeoutSeconds": { - "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.core.v1.ConfigMap": { - "description": "ConfigMap holds configuration data for pods to consume.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "data": { - "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "ConfigMap" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapEnvSource": { - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the ConfigMap must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.ConfigMapKeySelector": { - "description": "Selects a key from a ConfigMap.", - "required": [ - "key" - ], - "properties": { - "key": { - "description": "The key to select.", - "type": "string" - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the ConfigMap or it's key must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.ConfigMapList": { - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of ConfigMaps.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "ConfigMapList" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapProjection": { - "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", - "properties": { - "items": { - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - } - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the ConfigMap or it's keys must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.ConfigMapVolumeSource": { - "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", - "properties": { - "defaultMode": { - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "items": { - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - } - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the ConfigMap or it's keys must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.Container": { - "description": "A single application container that you want to run within a pod.", - "required": [ - "name" - ], - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "type": "array", - "items": { - "type": "string" - } - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "type": "array", - "items": { - "type": "string" - } - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - } - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated.", - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle" - }, - "livenessProbe": { - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "$ref": "#/definitions/io.k8s.api.core.v1.Probe" - }, - "name": { - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", - "type": "string" - }, - "ports": { - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "x-kubernetes-patch-merge-key": "containerPort", - "x-kubernetes-patch-strategy": "merge" - }, - "readinessProbe": { - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "$ref": "#/definitions/io.k8s.api.core.v1.Probe" - }, - "resources": { - "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements" - }, - "securityContext": { - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md", - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext" - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ContainerPort": { - "description": "ContainerPort represents a network port in a single container.", - "required": [ - "containerPort" - ], - "properties": { - "containerPort": { - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536.", - "type": "integer", - "format": "int32" - }, - "hostIP": { - "description": "What host IP to bind the external port to.", - "type": "string" - }, - "hostPort": { - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", - "type": "integer", - "format": "int32" - }, - "name": { - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", - "type": "string" - }, - "protocol": { - "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\".", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.DownwardAPIProjection": { - "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", - "properties": { - "items": { - "description": "Items is a list of DownwardAPIVolume file", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - } - } - } - }, - "io.k8s.api.core.v1.DownwardAPIVolumeFile": { - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "required": [ - "path" - ], - "properties": { - "fieldRef": { - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector" - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "path": { - "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - "type": "string" - }, - "resourceFieldRef": { - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector" - } - } - }, - "io.k8s.api.core.v1.DownwardAPIVolumeSource": { - "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", - "properties": { - "defaultMode": { - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "items": { - "description": "Items is a list of downward API volume file", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - } - } - } - }, - "io.k8s.api.core.v1.EmptyDirVolumeSource": { - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - "type": "string" - }, - "sizeLimit": { - "description": "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - } - }, - "io.k8s.api.core.v1.EnvFromSource": { - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "configMapRef": { - "description": "The ConfigMap to select from", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource" - }, - "prefix": { - "description": "An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - "type": "string" - }, - "secretRef": { - "description": "The Secret to select from", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource" - } - } - }, - "io.k8s.api.core.v1.EnvVar": { - "description": "EnvVar represents an environment variable present in a Container.", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "Name of the environment variable. Must be a C_IDENTIFIER.", - "type": "string" - }, - "value": { - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", - "type": "string" - }, - "valueFrom": { - "description": "Source for the environment variable's value. Cannot be used if value is not empty.", - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource" - } - } - }, - "io.k8s.api.core.v1.EnvVarSource": { - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "configMapKeyRef": { - "description": "Selects a key of a ConfigMap.", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector" - }, - "fieldRef": { - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector" - }, - "resourceFieldRef": { - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector" - }, - "secretKeyRef": { - "description": "Selects a key of a secret in the pod's namespace", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector" - } - } - }, - "io.k8s.api.core.v1.Event": { - "description": "Event is a report of an event somewhere in the cluster.", - "required": [ - "metadata", - "involvedObject" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "count": { - "description": "The number of times this event has occurred.", - "type": "integer", - "format": "int32" - }, - "firstTimestamp": { - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "involvedObject": { - "description": "The object that this event is about.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "lastTimestamp": { - "description": "The time at which the most recent occurrence of this event was recorded.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "reason": { - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", - "type": "string" - }, - "source": { - "description": "The component reporting this event. Should be a short machine understandable string.", - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource" - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "Event" - } - ] - }, - "io.k8s.api.core.v1.EventList": { - "description": "EventList is a list of events.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of events", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "EventList" - } - ] - }, - "io.k8s.api.core.v1.EventSource": { - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "description": "Component from which the event is generated.", - "type": "string" - }, - "host": { - "description": "Node name on which the event is generated.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ExecAction": { - "description": "ExecAction describes a \"run in container\" action.", - "properties": { - "command": { - "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.FCVolumeSource": { - "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "lun": { - "description": "Optional: FC target lun number", - "type": "integer", - "format": "int32" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "targetWWNs": { - "description": "Optional: FC target worldwide names (WWNs)", - "type": "array", - "items": { - "type": "string" - } - }, - "wwids": { - "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.FlexVolumeSource": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", - "type": "string" - }, - "options": { - "description": "Optional: Extra command options if any.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - } - } - }, - "io.k8s.api.core.v1.FlockerVolumeSource": { - "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", - "properties": { - "datasetName": { - "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", - "type": "string" - }, - "datasetUUID": { - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": { - "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", - "required": [ - "pdName" - ], - "properties": { - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "type": "string" - }, - "partition": { - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "type": "integer", - "format": "int32" - }, - "pdName": { - "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.GitRepoVolumeSource": { - "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", - "required": [ - "repository" - ], - "properties": { - "directory": { - "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - "type": "string" - }, - "repository": { - "description": "Repository URL", - "type": "string" - }, - "revision": { - "description": "Commit hash for the specified revision.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.GlusterfsVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "endpoints", - "path" - ], - "properties": { - "endpoints": { - "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", - "type": "string" - }, - "path": { - "description": "Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.HTTPGetAction": { - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "required": [ - "port" - ], - "properties": { - "host": { - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", - "type": "string" - }, - "httpHeaders": { - "description": "Custom headers to set in the request. HTTP allows repeated headers.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" - } - }, - "path": { - "description": "Path to access on the HTTP server.", - "type": "string" - }, - "port": { - "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "scheme": { - "description": "Scheme to use for connecting to the host. Defaults to HTTP.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.HTTPHeader": { - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "required": [ - "name", - "value" - ], - "properties": { - "name": { - "description": "The header field name", - "type": "string" - }, - "value": { - "description": "The header field value", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Handler": { - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "description": "One and only one of the following should be specified. Exec specifies the action to take.", - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction" - }, - "httpGet": { - "description": "HTTPGet specifies the http request to perform.", - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction" - }, - "tcpSocket": { - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported", - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction" - } - } - }, - "io.k8s.api.core.v1.HostAlias": { - "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - "properties": { - "hostnames": { - "description": "Hostnames for the above IP address.", - "type": "array", - "items": { - "type": "string" - } - }, - "ip": { - "description": "IP address of the host file entry.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.HostPathVolumeSource": { - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "required": [ - "path" - ], - "properties": { - "path": { - "description": "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - "type": "string" - }, - "type": { - "description": "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ISCSIVolumeSource": { - "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - "type": "string" - }, - "initiatorName": { - "description": "Custom iSCSI initiator name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection.", - "type": "string" - }, - "iqn": { - "description": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.", - "type": "string" - }, - "lun": { - "description": "iSCSI target lun number.", - "type": "integer", - "format": "int32" - }, - "portals": { - "description": "iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - "type": "array", - "items": { - "type": "string" - } - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "description": "CHAP secret for iSCSI target and initiator authentication", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "targetPortal": { - "description": "iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.KeyToPath": { - "description": "Maps a string key to a path within a volume.", - "required": [ - "key", - "path" - ], - "properties": { - "key": { - "description": "The key to project.", - "type": "string" - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "path": { - "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Lifecycle": { - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks", - "$ref": "#/definitions/io.k8s.api.core.v1.Handler" - }, - "preStop": { - "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks", - "$ref": "#/definitions/io.k8s.api.core.v1.Handler" - } - } - }, - "io.k8s.api.core.v1.LoadBalancerIngress": { - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "hostname": { - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", - "type": "string" - }, - "ip": { - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.LoadBalancerStatus": { - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" - } - } - } - }, - "io.k8s.api.core.v1.LocalObjectReference": { - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", - "properties": { - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.NFSVolumeSource": { - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "required": [ - "server", - "path" - ], - "properties": { - "path": { - "description": "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - "type": "boolean" - }, - "server": { - "description": "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Namespace": { - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec" - }, - "status": { - "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "Namespace" - } - ] - }, - "io.k8s.api.core.v1.NamespaceList": { - "description": "NamespaceList is a list of Namespaces.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "NamespaceList" - } - ] - }, - "io.k8s.api.core.v1.NamespaceSpec": { - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.NamespaceStatus": { - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "phase": { - "description": "Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.NodeAffinity": { - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" - } - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector" - } - } - }, - "io.k8s.api.core.v1.NodeSelector": { - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "required": [ - "nodeSelectorTerms" - ], - "properties": { - "nodeSelectorTerms": { - "description": "Required. A list of node selector terms. The terms are ORed.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - } - } - } - }, - "io.k8s.api.core.v1.NodeSelectorRequirement": { - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "operator": { - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - "type": "string" - }, - "values": { - "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.NodeSelectorTerm": { - "description": "A null or empty node selector term matches no objects.", - "required": [ - "matchExpressions" - ], - "properties": { - "matchExpressions": { - "description": "Required. A list of node selector requirements. The requirements are ANDed.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - } - } - } - }, - "io.k8s.api.core.v1.ObjectFieldSelector": { - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".", - "type": "string" - }, - "fieldPath": { - "description": "Path of the field to select in the specified API version.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ObjectReference": { - "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", - "properties": { - "apiVersion": { - "description": "API version of the referent.", - "type": "string" - }, - "fieldPath": { - "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - "type": "string" - }, - "kind": { - "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "namespace": { - "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "type": "string" - }, - "resourceVersion": { - "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "uid": { - "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": { - "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", - "required": [ - "claimName" - ], - "properties": { - "claimName": { - "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "type": "string" - }, - "readOnly": { - "description": "Will force the ReadOnly setting in VolumeMounts. Default false.", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { - "description": "Represents a Photon Controller persistent disk resource.", - "required": [ - "pdID" - ], - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "pdID": { - "description": "ID that identifies Photon Controller persistent disk", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PodAffinity": { - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - } - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - } - } - } - }, - "io.k8s.api.core.v1.PodAffinityTerm": { - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "description": "A label query over a set of resources, in this case pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "namespaces": { - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - "type": "array", - "items": { - "type": "string" - } - }, - "topologyKey": { - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PodAntiAffinity": { - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - } - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - } - } - } - }, - "io.k8s.api.core.v1.PodSecurityContext": { - "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", - "properties": { - "fsGroup": { - "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", - "type": "integer", - "format": "int64" - }, - "runAsNonRoot": { - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - "type": "boolean" - }, - "runAsUser": { - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", - "type": "integer", - "format": "int64" - }, - "seLinuxOptions": { - "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" - }, - "supplementalGroups": { - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", - "type": "array", - "items": { - "type": "integer", - "format": "int64" - } - } - } - }, - "io.k8s.api.core.v1.PodSpec": { - "description": "PodSpec is a description of a pod.", - "required": [ - "containers" - ], - "properties": { - "activeDeadlineSeconds": { - "description": "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.", - "type": "integer", - "format": "int64" - }, - "affinity": { - "description": "If specified, the pod's scheduling constraints", - "$ref": "#/definitions/io.k8s.api.core.v1.Affinity" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", - "type": "boolean" - }, - "containers": { - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "dnsPolicy": { - "description": "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'.", - "type": "string" - }, - "hostAliases": { - "description": "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.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" - }, - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "hostIPC": { - "description": "Use the host's ipc namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostNetwork": { - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", - "type": "boolean" - }, - "hostPID": { - "description": "Use the host's pid namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostname": { - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", - "type": "string" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "initContainers": { - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "nodeName": { - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", - "type": "string" - }, - "nodeSelector": { - "description": "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/", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "priority": { - "description": "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.", - "type": "integer", - "format": "int32" - }, - "priorityClassName": { - "description": "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.", - "type": "string" - }, - "restartPolicy": { - "description": "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", - "type": "string" - }, - "schedulerName": { - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", - "type": "string" - }, - "securityContext": { - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext" - }, - "serviceAccount": { - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", - "type": "string" - }, - "serviceAccountName": { - "description": "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/", - "type": "string" - }, - "subdomain": { - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all.", - "type": "string" - }, - "terminationGracePeriodSeconds": { - "description": "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.", - "type": "integer", - "format": "int64" - }, - "tolerations": { - "description": "If specified, the pod's tolerations.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - } - }, - "volumes": { - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Volume" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" - } - } - }, - "io.k8s.api.core.v1.PodTemplateSpec": { - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec" - } - } - }, - "io.k8s.api.core.v1.PortworxVolumeSource": { - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "required": [ - "volumeID" - ], - "properties": { - "fsType": { - "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "volumeID": { - "description": "VolumeID uniquely identifies a Portworx volume", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PreferredSchedulingTerm": { - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "required": [ - "weight", - "preference" - ], - "properties": { - "preference": { - "description": "A node selector term, associated with the corresponding weight.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - }, - "weight": { - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.core.v1.Probe": { - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "properties": { - "exec": { - "description": "One and only one of the following should be specified. Exec specifies the action to take.", - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction" - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "httpGet": { - "description": "HTTPGet specifies the http request to perform.", - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction" - }, - "initialDelaySeconds": { - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "successThreshold": { - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "tcpSocket": { - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported", - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction" - }, - "timeoutSeconds": { - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.core.v1.ProjectedVolumeSource": { - "description": "Represents a projected volume source", - "required": [ - "sources" - ], - "properties": { - "defaultMode": { - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "sources": { - "description": "list of volume projections", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" - } - } - } - }, - "io.k8s.api.core.v1.QuobyteVolumeSource": { - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "required": [ - "registry", - "volume" - ], - "properties": { - "group": { - "description": "Group to map volume access to Default is no group", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - "type": "boolean" - }, - "registry": { - "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - "type": "string" - }, - "user": { - "description": "User to map volume access to Defaults to serivceaccount user", - "type": "string" - }, - "volume": { - "description": "Volume is a string that references an already created Quobyte volume by name.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.RBDVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "required": [ - "monitors", - "image" - ], - "properties": { - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - "type": "string" - }, - "image": { - "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - }, - "keyring": { - "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - }, - "monitors": { - "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "array", - "items": { - "type": "string" - } - }, - "pool": { - "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "boolean" - }, - "secretRef": { - "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ResourceFieldSelector": { - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "required": [ - "resource" - ], - "properties": { - "containerName": { - "description": "Container name: required for volumes, optional for env vars", - "type": "string" - }, - "divisor": { - "description": "Specifies the output format of the exposed resources, defaults to \"1\"", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "resource": { - "description": "Required: resource to select", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ResourceRequirements": { - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "requests": { - "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - } - } - }, - "io.k8s.api.core.v1.SELinuxOptions": { - "description": "SELinuxOptions are the labels to be applied to the container", - "properties": { - "level": { - "description": "Level is SELinux level label that applies to the container.", - "type": "string" - }, - "role": { - "description": "Role is a SELinux role label that applies to the container.", - "type": "string" - }, - "type": { - "description": "Type is a SELinux type label that applies to the container.", - "type": "string" - }, - "user": { - "description": "User is a SELinux user label that applies to the container.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ScaleIOVolumeSource": { - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "required": [ - "gateway", - "system", - "secretRef" - ], - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "gateway": { - "description": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\").", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\").", - "type": "string" - }, - "storagePool": { - "description": "The Storage Pool associated with the protection domain (defaults to \"default\").", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Secret": { - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "data": { - "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", - "type": "object", - "additionalProperties": { - "type": "string", - "format": "byte" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "stringData": { - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "type": { - "description": "Used to facilitate programmatic handling of secret data.", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "Secret" - } - ] - }, - "io.k8s.api.core.v1.SecretEnvSource": { - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the Secret must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.SecretKeySelector": { - "description": "SecretKeySelector selects a key of a Secret.", - "required": [ - "key" - ], - "properties": { - "key": { - "description": "The key of the secret to select from. Must be a valid secret key.", - "type": "string" - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the Secret or it's key must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.SecretList": { - "description": "SecretList is a list of Secret.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "SecretList" - } - ] - }, - "io.k8s.api.core.v1.SecretProjection": { - "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", - "properties": { - "items": { - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - } - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the Secret or its key must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.SecretVolumeSource": { - "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", - "properties": { - "defaultMode": { - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "items": { - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - } - }, - "optional": { - "description": "Specify whether the Secret or it's keys must be defined", - "type": "boolean" - }, - "secretName": { - "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.SecurityContext": { - "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", - "properties": { - "allowPrivilegeEscalation": { - "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN", - "type": "boolean" - }, - "capabilities": { - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.", - "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities" - }, - "privileged": { - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", - "type": "boolean" - }, - "readOnlyRootFilesystem": { - "description": "Whether this container has a read-only root filesystem. Default is false.", - "type": "boolean" - }, - "runAsNonRoot": { - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - "type": "boolean" - }, - "runAsUser": { - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - "type": "integer", - "format": "int64" - }, - "seLinuxOptions": { - "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" - } - } - }, - "io.k8s.api.core.v1.Service": { - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec" - }, - "status": { - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "Service" - } - ] - }, - "io.k8s.api.core.v1.ServiceList": { - "description": "ServiceList holds a list of services.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of services", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "ServiceList" - } - ] - }, - "io.k8s.api.core.v1.ServicePort": { - "description": "ServicePort contains information on service's port.", - "required": [ - "port" - ], - "properties": { - "name": { - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service.", - "type": "string" - }, - "nodePort": { - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", - "type": "integer", - "format": "int32" - }, - "port": { - "description": "The port that will be exposed by this service.", - "type": "integer", - "format": "int32" - }, - "protocol": { - "description": "The IP protocol for this port. Supports \"TCP\" and \"UDP\". Default is TCP.", - "type": "string" - }, - "targetPort": { - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.core.v1.ServiceSpec": { - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "clusterIP": { - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "externalIPs": { - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", - "type": "array", - "items": { - "type": "string" - } - }, - "externalName": { - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid DNS name and requires Type to be ExternalName.", - "type": "string" - }, - "externalTrafficPolicy": { - "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", - "type": "string" - }, - "healthCheckNodePort": { - "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", - "type": "integer", - "format": "int32" - }, - "loadBalancerIP": { - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", - "type": "string" - }, - "loadBalancerSourceRanges": { - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", - "type": "array", - "items": { - "type": "string" - } - }, - "ports": { - "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" - }, - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge" - }, - "publishNotReadyAddresses": { - "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.", - "type": "boolean" - }, - "selector": { - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sessionAffinity": { - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "sessionAffinityConfig": { - "description": "sessionAffinityConfig contains the configurations of session affinity.", - "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig" - }, - "type": { - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ServiceStatus": { - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "description": "LoadBalancer contains the current status of the load-balancer, if one is present.", - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus" - } - } - }, - "io.k8s.api.core.v1.SessionAffinityConfig": { - "description": "SessionAffinityConfig represents the configurations of session affinity.", - "properties": { - "clientIP": { - "description": "clientIP contains the configurations of Client IP based session affinity.", - "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig" - } - } - }, - "io.k8s.api.core.v1.StorageOSVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "volumeName": { - "description": "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - "type": "string" - }, - "volumeNamespace": { - "description": "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.TCPSocketAction": { - "description": "TCPSocketAction describes an action based on opening a socket", - "required": [ - "port" - ], - "properties": { - "host": { - "description": "Optional: Host name to connect to, defaults to the pod IP.", - "type": "string" - }, - "port": { - "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.core.v1.Toleration": { - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "effect": { - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - "type": "string" - }, - "key": { - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - "type": "string" - }, - "operator": { - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - "type": "string" - }, - "tolerationSeconds": { - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - "type": "integer", - "format": "int64" - }, - "value": { - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Volume": { - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "required": [ - "name" - ], - "properties": { - "awsElasticBlockStore": { - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" - }, - "azureDisk": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource" - }, - "azureFile": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource" - }, - "cephfs": { - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource" - }, - "cinder": { - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource" - }, - "configMap": { - "description": "ConfigMap represents a configMap that should populate this volume", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource" - }, - "downwardAPI": { - "description": "DownwardAPI represents downward API about the pod that should populate this volume", - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource" - }, - "emptyDir": { - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource" - }, - "fc": { - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource" - }, - "flexVolume": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", - "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource" - }, - "flocker": { - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource" - }, - "gcePersistentDisk": { - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" - }, - "gitRepo": { - "description": "GitRepo represents a git repository at a particular revision.", - "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource" - }, - "glusterfs": { - "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource" - }, - "hostPath": { - "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource" - }, - "iscsi": { - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource" - }, - "name": { - "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "nfs": { - "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource" - }, - "persistentVolumeClaim": { - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource" - }, - "photonPersistentDisk": { - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" - }, - "portworxVolume": { - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource" - }, - "projected": { - "description": "Items for all in one resources secrets, configmaps, and downward API", - "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource" - }, - "quobyte": { - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource" - }, - "rbd": { - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource" - }, - "scaleIO": { - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource" - }, - "secret": { - "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource" - }, - "storageos": { - "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource" - }, - "vsphereVolume": { - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" - } - } - }, - "io.k8s.api.core.v1.VolumeMount": { - "description": "VolumeMount describes a mounting of a Volume within a container.", - "required": [ - "name", - "mountPath" - ], - "properties": { - "mountPath": { - "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", - "type": "string" - }, - "mountPropagation": { - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationHostToContainer is used. This field is alpha in 1.8 and can be reworked or removed in a future release.", - "type": "string" - }, - "name": { - "description": "This must match the Name of a Volume.", - "type": "string" - }, - "readOnly": { - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - "type": "boolean" - }, - "subPath": { - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.VolumeProjection": { - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "configMap": { - "description": "information about the configMap data to project", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection" - }, - "downwardAPI": { - "description": "information about the downwardAPI data to project", - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection" - }, - "secret": { - "description": "information about the secret data to project", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection" - } - } - }, - "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { - "description": "Represents a vSphere volume resource.", - "required": [ - "volumePath" - ], - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "storagePolicyID": { - "description": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - "type": "string" - }, - "storagePolicyName": { - "description": "Storage Policy Based Management (SPBM) profile name.", - "type": "string" - }, - "volumePath": { - "description": "Path that identifies vSphere volume vmdk", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.WeightedPodAffinityTerm": { - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "required": [ - "weight", - "podAffinityTerm" - ], - "properties": { - "podAffinityTerm": { - "description": "Required. A pod affinity term, associated with the corresponding weight.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "weight": { - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.DaemonSet": { - "description": "DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetSpec" - }, - "status": { - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSet" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "A list of daemon sets.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "DaemonSetList" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", - "required": [ - "template" - ], - "properties": { - "minReadySeconds": { - "description": "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).", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "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", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "template": { - "description": "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", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - }, - "templateGeneration": { - "description": "DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.", - "type": "integer", - "format": "int64" - }, - "updateStrategy": { - "description": "An update strategy to replace existing DaemonSet pods with new pods.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy" - } - } - }, - "io.k8s.api.extensions.v1beta1.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "properties": { - "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "type": "integer", - "format": "int32" - }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "type": "integer", - "format": "int32" - }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "type": "integer", - "format": "int32" - }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "type": "integer", - "format": "int64" - }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy": { - "properties": { - "rollingUpdate": { - "description": "Rolling update config params. Present only if type = \"RollingUpdate\".", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet" - }, - "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.Deployment": { - "description": "DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the Deployment.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentSpec" - }, - "status": { - "description": "Most recently observed status of the Deployment.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "Deployment" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastUpdateTime": { - "description": "The last time this condition was updated.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of Deployments.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "DeploymentList" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DeploymentRollback": { - "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", - "required": [ - "name", - "rollbackTo" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "Required: This must match the Name of a deployment.", - "type": "string" - }, - "rollbackTo": { - "description": "The config of this deployment rollback.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig" - }, - "updatedAnnotations": { - "description": "The annotations to be updated to a deployment", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "DeploymentRollback" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "required": [ - "template" - ], - "properties": { - "minReadySeconds": { - "description": "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)", - "type": "integer", - "format": "int32" - }, - "paused": { - "description": "Indicates that the deployment is paused and will not be processed by the deployment controller.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is not set by default.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified.", - "type": "integer", - "format": "int32" - }, - "rollbackTo": { - "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig" - }, - "selector": { - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "strategy": { - "description": "The deployment strategy to use to replace existing pods with new ones.", - "x-kubernetes-patch-strategy": "retainKeys", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStrategy" - }, - "template": { - "description": "Template describes the pods that will be created.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.extensions.v1beta1.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "type": "integer", - "format": "int32" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "type": "integer", - "format": "int32" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDeployment" - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.", - "required": [ - "backend" - ], - "properties": { - "backend": { - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend" - }, - "path": { - "description": "Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. If unspecified, the path defaults to a catch all sending traffic to the backend.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue": { - "description": "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://\u003chost\u003e/\u003cpath\u003e?\u003csearchpart\u003e -\u003e backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", - "required": [ - "paths" - ], - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath" - } - } - } - }, - "io.k8s.api.extensions.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec" - }, - "status": { - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "Ingress" - } - ] - }, - "io.k8s.api.extensions.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "required": [ - "serviceName", - "servicePort" - ], - "properties": { - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "description": "Specifies the port of the referenced service.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.extensions.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of Ingress.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "IngressList" - } - ] - }, - "io.k8s.api.extensions.v1beta1.IngressRule": { - "description": "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", - "properties": { - "host": { - "description": "Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the\n\t IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.", - "type": "string" - }, - "http": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue" - } - } - }, - "io.k8s.api.extensions.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressRule" - } - }, - "tls": { - "description": "TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS" - } - } - } - }, - "io.k8s.api.extensions.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "description": "LoadBalancer contains the current status of the load-balancer.", - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus" - } - } - }, - "io.k8s.api.extensions.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.", - "type": "array", - "items": { - "type": "string" - } - }, - "secretName": { - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.ReplicaSet": { - "description": "DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetSpec" - }, - "status": { - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSet" - } - ] - }, - "io.k8s.api.extensions.v1beta1.ReplicaSetCondition": { - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "The last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replica set condition.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.ReplicaSetList": { - "description": "ReplicaSetList is a collection of ReplicaSets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "ReplicaSetList" - } - ] - }, - "io.k8s.api.extensions.v1beta1.ReplicaSetSpec": { - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "minReadySeconds": { - "description": "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)", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "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", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "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", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "template": { - "description": "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", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.extensions.v1beta1.ReplicaSetStatus": { - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "required": [ - "replicas" - ], - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a replica set's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replica set.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.RollbackConfig": { - "description": "DEPRECATED.", - "properties": { - "revision": { - "description": "The revision to rollback to. If set to 0, rollback to the last revision.", - "type": "integer", - "format": "int64" - } - } - }, - "io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.extensions.v1beta1.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "maxUnavailable": { - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.extensions.v1beta1.Scale": { - "description": "represents a scaling request for a resource.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ScaleSpec" - }, - "status": { - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ScaleStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "version": "v1beta1", - "kind": "Scale" - } - ] - }, - "io.k8s.api.extensions.v1beta1.ScaleSpec": { - "description": "describes the attributes of a scale subresource", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.ScaleStatus": { - "description": "represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "targetSelector": { - "description": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.api.resource.Quantity": { - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "required": [ - "name", - "versions", - "serverAddressByClientCIDRs" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "name is the name of the group.", - "type": "string" - }, - "preferredVersion": { - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - } - }, - "versions": { - "description": "versions are the versions supported in this group.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "APIGroup" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { - "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", - "required": [ - "groups" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "groups": { - "description": "groups is a list of APIGroup.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "APIGroupList" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "required": [ - "name", - "singularName", - "namespaced", - "kind", - "verbs" - ], - "properties": { - "categories": { - "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", - "type": "array", - "items": { - "type": "string" - } - }, - "group": { - "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", - "type": "string" - }, - "kind": { - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", - "type": "string" - }, - "name": { - "description": "name is the plural name of the resource.", - "type": "string" - }, - "namespaced": { - "description": "namespaced indicates if a resource is namespaced or not.", - "type": "boolean" - }, - "shortNames": { - "description": "shortNames is a list of suggested short names of the resource.", - "type": "array", - "items": { - "type": "string" - } - }, - "singularName": { - "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", - "type": "string" - }, - "verbs": { - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", - "type": "array", - "items": { - "type": "string" - } - }, - "version": { - "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "required": [ - "groupVersion", - "resources" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "groupVersion": { - "description": "groupVersion is the group and version this APIResourceList is for.", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "resources": { - "description": "resources contains the name of the resources and if they are namespaced.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "APIResourceList" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { - "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", - "required": [ - "versions", - "serverAddressByClientCIDRs" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - } - }, - "versions": { - "description": "versions are the api versions that are available.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "APIVersions" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { - "description": "DeleteOptions may be provided when deleting an API object.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "gracePeriodSeconds": { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "type": "integer", - "format": "int64" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "orphanDependents": { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "type": "boolean" - }, - "preconditions": { - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions" - }, - "propagationPolicy": { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "DeleteOptions" - }, - { - "group": "admission.k8s.io", - "version": "v1alpha1", - "kind": "DeleteOptions" - }, - { - "group": "admissionregistration.k8s.io", - "version": "v1alpha1", - "kind": "DeleteOptions" - }, - { - "group": "apps", - "version": "v1", - "kind": "DeleteOptions" - }, - { - "group": "apps", - "version": "v1beta1", - "kind": "DeleteOptions" - }, - { - "group": "apps", - "version": "v1beta2", - "kind": "DeleteOptions" - }, - { - "group": "authentication.k8s.io", - "version": "v1", - "kind": "DeleteOptions" - }, - { - "group": "authentication.k8s.io", - "version": "v1beta1", - "kind": "DeleteOptions" - }, - { - "group": "authorization.k8s.io", - "version": "v1", - "kind": "DeleteOptions" - }, - { - "group": "authorization.k8s.io", - "version": "v1beta1", - "kind": "DeleteOptions" - }, - { - "group": "autoscaling", - "version": "v1", - "kind": "DeleteOptions" - }, - { - "group": "autoscaling", - "version": "v2beta1", - "kind": "DeleteOptions" - }, - { - "group": "batch", - "version": "v1", - "kind": "DeleteOptions" - }, - { - "group": "batch", - "version": "v1beta1", - "kind": "DeleteOptions" - }, - { - "group": "batch", - "version": "v2alpha1", - "kind": "DeleteOptions" - }, - { - "group": "certificates.k8s.io", - "version": "v1beta1", - "kind": "DeleteOptions" - }, - { - "group": "extensions", - "version": "v1beta1", - "kind": "DeleteOptions" - }, - { - "group": "federation", - "version": "v1beta1", - "kind": "DeleteOptions" - }, - { - "group": "imagepolicy.k8s.io", - "version": "v1alpha1", - "kind": "DeleteOptions" - }, - { - "group": "networking.k8s.io", - "version": "v1", - "kind": "DeleteOptions" - }, - { - "group": "policy", - "version": "v1beta1", - "kind": "DeleteOptions" - }, - { - "group": "rbac.authorization.k8s.io", - "version": "v1", - "kind": "DeleteOptions" - }, - { - "group": "rbac.authorization.k8s.io", - "version": "v1alpha1", - "kind": "DeleteOptions" - }, - { - "group": "rbac.authorization.k8s.io", - "version": "v1beta1", - "kind": "DeleteOptions" - }, - { - "group": "scheduling.k8s.io", - "version": "v1alpha1", - "kind": "DeleteOptions" - }, - { - "group": "settings.k8s.io", - "version": "v1alpha1", - "kind": "DeleteOptions" - }, - { - "group": "storage.k8s.io", - "version": "v1", - "kind": "DeleteOptions" - }, - { - "group": "storage.k8s.io", - "version": "v1beta1", - "kind": "DeleteOptions" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "required": [ - "groupVersion", - "version" - ], - "properties": { - "groupVersion": { - "description": "groupVersion specifies the API group and version in the form \"group/version\"", - "type": "string" - }, - "version": { - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Initializer": { - "description": "Initializer is information about an initializer that has not yet completed.", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "name of the process that is responsible for initializing this object.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Initializers": { - "description": "Initializers tracks the progress of initialization.", - "required": [ - "pending" - ], - "properties": { - "pending": { - "description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "result": { - "description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": { - "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", - "properties": { - "matchExpressions": { - "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" - } - }, - "matchLabels": { - "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "description": "key is the label key that the selector applies to.", - "type": "string", - "x-kubernetes-patch-merge-key": "key", - "x-kubernetes-patch-strategy": "merge" - }, - "operator": { - "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - "type": "string" - }, - "values": { - "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "continue": { - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.", - "type": "string" - }, - "resourceVersion": { - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "selfLink": { - "description": "selfLink is a URL representing this object. Populated by the system. Read-only.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "annotations": { - "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "clusterName": { - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", - "type": "string" - }, - "creationTimestamp": { - "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "deletionGracePeriodSeconds": { - "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.", - "type": "integer", - "format": "int64" - }, - "deletionTimestamp": { - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "finalizers": { - "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.", - "type": "array", - "items": { - "type": "string" - }, - "x-kubernetes-patch-strategy": "merge" - }, - "generateName": { - "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency", - "type": "string" - }, - "generation": { - "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", - "type": "integer", - "format": "int64" - }, - "initializers": { - "description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers" - }, - "labels": { - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "name": { - "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "namespace": { - "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces", - "type": "string" - }, - "ownerReferences": { - "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" - }, - "x-kubernetes-patch-merge-key": "uid", - "x-kubernetes-patch-strategy": "merge" - }, - "resourceVersion": { - "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "selfLink": { - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only.", - "type": "string" - }, - "uid": { - "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": { - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "properties": { - "apiVersion": { - "description": "API version of the referent.", - "type": "string" - }, - "blockOwnerDeletion": { - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.", - "type": "boolean" - }, - "controller": { - "description": "If true, this reference points to the managing controller.", - "type": "boolean" - }, - "kind": { - "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "uid": { - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body." - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "uid": { - "description": "Specifies the target UID.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "required": [ - "clientCIDR", - "serverAddress" - ], - "properties": { - "clientCIDR": { - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", - "type": "string" - }, - "serverAddress": { - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { - "description": "Status is a return value for calls that don't return other objects.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "code": { - "description": "Suggested HTTP return code for this status, 0 if not set.", - "type": "integer", - "format": "int32" - }, - "details": { - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - }, - "reason": { - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", - "type": "string" - }, - "status": { - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "Status" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "field": { - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", - "type": "string" - }, - "message": { - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", - "type": "string" - }, - "reason": { - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "causes": { - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" - } - }, - "group": { - "description": "The group attribute of the resource associated with the status StatusReason.", - "type": "string" - }, - "kind": { - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", - "type": "string" - }, - "retryAfterSeconds": { - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", - "type": "integer", - "format": "int32" - }, - "uid": { - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { - "type": "string", - "format": "date-time" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { - "description": "Event represents a single event to a watched resource.", - "required": [ - "type", - "object" - ], - "properties": { - "object": { - "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" - }, - "type": { - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "version": "v1", - "kind": "WatchEvent" - }, - { - "group": "admission.k8s.io", - "version": "v1alpha1", - "kind": "WatchEvent" - }, - { - "group": "admissionregistration.k8s.io", - "version": "v1alpha1", - "kind": "WatchEvent" - }, - { - "group": "apps", - "version": "v1", - "kind": "WatchEvent" - }, - { - "group": "apps", - "version": "v1beta1", - "kind": "WatchEvent" - }, - { - "group": "apps", - "version": "v1beta2", - "kind": "WatchEvent" - }, - { - "group": "authentication.k8s.io", - "version": "v1", - "kind": "WatchEvent" - }, - { - "group": "authentication.k8s.io", - "version": "v1beta1", - "kind": "WatchEvent" - }, - { - "group": "authorization.k8s.io", - "version": "v1", - "kind": "WatchEvent" - }, - { - "group": "authorization.k8s.io", - "version": "v1beta1", - "kind": "WatchEvent" - }, - { - "group": "autoscaling", - "version": "v1", - "kind": "WatchEvent" - }, - { - "group": "autoscaling", - "version": "v2beta1", - "kind": "WatchEvent" - }, - { - "group": "batch", - "version": "v1", - "kind": "WatchEvent" - }, - { - "group": "batch", - "version": "v1beta1", - "kind": "WatchEvent" - }, - { - "group": "batch", - "version": "v2alpha1", - "kind": "WatchEvent" - }, - { - "group": "certificates.k8s.io", - "version": "v1beta1", - "kind": "WatchEvent" - }, - { - "group": "extensions", - "version": "v1beta1", - "kind": "WatchEvent" - }, - { - "group": "federation", - "version": "v1beta1", - "kind": "WatchEvent" - }, - { - "group": "imagepolicy.k8s.io", - "version": "v1alpha1", - "kind": "WatchEvent" - }, - { - "group": "networking.k8s.io", - "version": "v1", - "kind": "WatchEvent" - }, - { - "group": "policy", - "version": "v1beta1", - "kind": "WatchEvent" - }, - { - "group": "rbac.authorization.k8s.io", - "version": "v1", - "kind": "WatchEvent" - }, - { - "group": "rbac.authorization.k8s.io", - "version": "v1alpha1", - "kind": "WatchEvent" - }, - { - "group": "rbac.authorization.k8s.io", - "version": "v1beta1", - "kind": "WatchEvent" - }, - { - "group": "scheduling.k8s.io", - "version": "v1alpha1", - "kind": "WatchEvent" - }, - { - "group": "settings.k8s.io", - "version": "v1alpha1", - "kind": "WatchEvent" - }, - { - "group": "storage.k8s.io", - "version": "v1", - "kind": "WatchEvent" - }, - { - "group": "storage.k8s.io", - "version": "v1beta1", - "kind": "WatchEvent" - } - ] - }, - "io.k8s.apimachinery.pkg.runtime.RawExtension": { - "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", - "required": [ - "Raw" - ], - "properties": { - "Raw": { - "description": "Raw is the underlying serialization of this object.", - "type": "string", - "format": "byte" - } - } - }, - "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { - "type": "string", - "format": "int-or-string" - }, - "io.k8s.apimachinery.pkg.version.Info": { - "description": "Info contains versioning information. how we'll want to distribute that information.", - "required": [ - "major", - "minor", - "gitVersion", - "gitCommit", - "gitTreeState", - "buildDate", - "goVersion", - "compiler", - "platform" - ], - "properties": { - "buildDate": { - "type": "string" - }, - "compiler": { - "type": "string" - }, - "gitCommit": { - "type": "string" - }, - "gitTreeState": { - "type": "string" - }, - "gitVersion": { - "type": "string" - }, - "goVersion": { - "type": "string" - }, - "major": { - "type": "string" - }, - "minor": { - "type": "string" - }, - "platform": { - "type": "string" - } - } - }, - "io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster": { - "description": "Information about a registered cluster in a federated kubernetes setup. Clusters are not namespaced and have unique names in the federation.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the behavior of the Cluster.", - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterSpec" - }, - "status": { - "description": "Status describes the current status of a Cluster", - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "federation", - "version": "v1beta1", - "kind": "Cluster" - } - ] - }, - "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterCondition": { - "description": "ClusterCondition describes current state of a cluster.", - "required": [ - "type", - "status" - ], - "properties": { - "lastProbeTime": { - "description": "Last time the condition was checked.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastTransitionTime": { - "description": "Last time the condition transit from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of cluster condition, Complete or Failed.", - "type": "string" - } - } - }, - "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterList": { - "description": "A list of all the kubernetes clusters registered to the federation", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of Cluster objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "federation", - "version": "v1beta1", - "kind": "ClusterList" - } - ] - }, - "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterSpec": { - "description": "ClusterSpec describes the attributes of a kubernetes cluster.", - "required": [ - "serverAddressByClientCIDRs" - ], - "properties": { - "secretRef": { - "description": "Name of the secret containing kubeconfig to access this cluster. The secret is read from the kubernetes cluster that is hosting federation control plane. Admin needs to ensure that the required secret exists. Secret should be in the same namespace where federation control plane is hosted and it should have kubeconfig in its data with key \"kubeconfig\". This will later be changed to a reference to secret in federation control plane when the federation control plane supports secrets. This can be left empty if the cluster allows insecure access.", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "serverAddressByClientCIDRs": { - "description": "A map of client CIDR to server address. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ServerAddressByClientCIDR" - }, - "x-kubernetes-patch-merge-key": "clientCIDR", - "x-kubernetes-patch-strategy": "merge" - } - } - }, - "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterStatus": { - "description": "ClusterStatus is information about the current status of a cluster updated by cluster controller periodically.", - "properties": { - "conditions": { - "description": "Conditions is an array of current cluster conditions.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterCondition" - } - }, - "region": { - "description": "Region is the name of the region in which all of the nodes in the cluster exist. e.g. 'us-east1'.", - "type": "string" - }, - "zones": { - "description": "Zones is the list of availability zones in which the nodes of the cluster exist, e.g. 'us-east1-a'. These will always be in the same region.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.kubernetes.federation.apis.federation.v1beta1.ServerAddressByClientCIDR": { - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "required": [ - "clientCIDR", - "serverAddress" - ], - "properties": { - "clientCIDR": { - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", - "type": "string" - }, - "serverAddress": { - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", - "type": "string" - } - } - }, - "resource.Quantity": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.api.resource.Quantity instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "runtime.RawExtension": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.runtime.RawExtension instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" - }, - "v1.APIGroup": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - }, - "v1.APIGroupList": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" - }, - "v1.APIResource": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIResource instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" - }, - "v1.APIResourceList": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - }, - "v1.APIVersions": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" - }, - "v1.DeleteOptions": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - }, - "v1.GroupVersionForDiscovery": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - }, - "v1.LabelSelector": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "v1.LabelSelectorRequirement": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" - }, - "v1.ListMeta": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - }, - "v1.ObjectMeta": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "v1.OwnerReference": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" - }, - "v1.Patch": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.Patch instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - }, - "v1.Preconditions": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions" - }, - "v1.ServerAddressByClientCIDR": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - }, - "v1.Status": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.Status instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - }, - "v1.StatusCause": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" - }, - "v1.StatusDetails": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails" - }, - "v1.Time": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.Time instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "v1.WatchEvent": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - }, - "v1beta1.Cluster": { - "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster instead.", - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" - }, - "v1beta1.ClusterCondition": { - "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterCondition instead.", - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterCondition" - }, - "v1beta1.ClusterList": { - "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterList instead.", - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterList" - }, - "v1beta1.ClusterSpec": { - "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterSpec instead.", - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterSpec" - }, - "v1beta1.ClusterStatus": { - "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterStatus instead.", - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterStatus" - }, - "v1beta1.ServerAddressByClientCIDR": { - "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ServerAddressByClientCIDR instead.", - "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ServerAddressByClientCIDR" - }, - "version.Info": { - "description": "Deprecated. Please use io.k8s.apimachinery.pkg.version.Info instead.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" - } - }, - "securityDefinitions": { - "BearerToken": { - "description": "Bearer Token authentication", - "type": "apiKey", - "name": "authorization", - "in": "header" - } - }, - "security": [ - { - "BearerToken": [] - } - ] - } diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/api.json b/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/api.json deleted file mode 100644 index 3897ab506..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/api.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "", - "basePath": "https://10.10.10.10:6443", - "resourcePath": "/api", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/api", - "description": "get available API versions", - "operations": [ - { - "type": "v1.APIVersions", - "method": "GET", - "summary": "get available API versions", - "nickname": "getAPIVersions", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1.APIVersions": { - "id": "v1.APIVersions", - "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", - "required": [ - "versions", - "serverAddressByClientCIDRs" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "versions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "versions are the api versions that are available." - }, - "serverAddressByClientCIDRs": { - "type": "array", - "items": { - "$ref": "v1.ServerAddressByClientCIDR" - }, - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP." - } - } - }, - "v1.ServerAddressByClientCIDR": { - "id": "v1.ServerAddressByClientCIDR", - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "required": [ - "clientCIDR", - "serverAddress" - ], - "properties": { - "clientCIDR": { - "type": "string", - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use." - }, - "serverAddress": { - "type": "string", - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port." - } - } - } - } - } diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/apis.json b/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/apis.json deleted file mode 100644 index 18d960ca5..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/apis.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "", - "basePath": "https://10.10.10.10:6443", - "resourcePath": "/apis", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/apis", - "description": "get available API versions", - "operations": [ - { - "type": "v1.APIGroupList", - "method": "GET", - "summary": "get available API versions", - "nickname": "getAPIVersions", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1.APIGroupList": { - "id": "v1.APIGroupList", - "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", - "required": [ - "groups" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "groups": { - "type": "array", - "items": { - "$ref": "v1.APIGroup" - }, - "description": "groups is a list of APIGroup." - } - } - }, - "v1.APIGroup": { - "id": "v1.APIGroup", - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "required": [ - "name", - "versions", - "serverAddressByClientCIDRs" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "name": { - "type": "string", - "description": "name is the name of the group." - }, - "versions": { - "type": "array", - "items": { - "$ref": "v1.GroupVersionForDiscovery" - }, - "description": "versions are the versions supported in this group." - }, - "preferredVersion": { - "$ref": "v1.GroupVersionForDiscovery", - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." - }, - "serverAddressByClientCIDRs": { - "type": "array", - "items": { - "$ref": "v1.ServerAddressByClientCIDR" - }, - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP." - } - } - }, - "v1.GroupVersionForDiscovery": { - "id": "v1.GroupVersionForDiscovery", - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "required": [ - "groupVersion", - "version" - ], - "properties": { - "groupVersion": { - "type": "string", - "description": "groupVersion specifies the API group and version in the form \"group/version\"" - }, - "version": { - "type": "string", - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion." - } - } - }, - "v1.ServerAddressByClientCIDR": { - "id": "v1.ServerAddressByClientCIDR", - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "required": [ - "clientCIDR", - "serverAddress" - ], - "properties": { - "clientCIDR": { - "type": "string", - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use." - }, - "serverAddress": { - "type": "string", - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port." - } - } - } - } - } diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/extensions.json b/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/extensions.json deleted file mode 100644 index 2e2fc1afd..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/extensions.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "", - "basePath": "https://10.10.10.10:6443", - "resourcePath": "/apis/extensions", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/apis/extensions", - "description": "get information of a group", - "operations": [ - { - "type": "v1.APIGroup", - "method": "GET", - "summary": "get information of a group", - "nickname": "getAPIGroup", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1.APIGroup": { - "id": "v1.APIGroup", - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "required": [ - "name", - "versions", - "serverAddressByClientCIDRs" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "name": { - "type": "string", - "description": "name is the name of the group." - }, - "versions": { - "type": "array", - "items": { - "$ref": "v1.GroupVersionForDiscovery" - }, - "description": "versions are the versions supported in this group." - }, - "preferredVersion": { - "$ref": "v1.GroupVersionForDiscovery", - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." - }, - "serverAddressByClientCIDRs": { - "type": "array", - "items": { - "$ref": "v1.ServerAddressByClientCIDR" - }, - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP." - } - } - }, - "v1.GroupVersionForDiscovery": { - "id": "v1.GroupVersionForDiscovery", - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "required": [ - "groupVersion", - "version" - ], - "properties": { - "groupVersion": { - "type": "string", - "description": "groupVersion specifies the API group and version in the form \"group/version\"" - }, - "version": { - "type": "string", - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion." - } - } - }, - "v1.ServerAddressByClientCIDR": { - "id": "v1.ServerAddressByClientCIDR", - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "required": [ - "clientCIDR", - "serverAddress" - ], - "properties": { - "clientCIDR": { - "type": "string", - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use." - }, - "serverAddress": { - "type": "string", - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port." - } - } - } - } - } diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/extensions_v1beta1.json b/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/extensions_v1beta1.json deleted file mode 100644 index 12e43aac6..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/extensions_v1beta1.json +++ /dev/null @@ -1,8283 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "extensions/v1beta1", - "basePath": "https://10.10.10.10:6443", - "resourcePath": "/apis/extensions/v1beta1", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSetList", - "method": "GET", - "summary": "list or watch objects of kind DaemonSet", - "nickname": "listNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "POST", - "summary": "create a DaemonSet", - "nickname": "createNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DaemonSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.DaemonSet" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of DaemonSet", - "nickname": "deletecollectionNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of DaemonSet", - "nickname": "watchNamespacedDaemonSetList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSet", - "method": "GET", - "summary": "read the specified DaemonSet", - "nickname": "readNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PUT", - "summary": "replace the specified DaemonSet", - "nickname": "replaceNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DaemonSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PATCH", - "summary": "partially update the specified DaemonSet", - "nickname": "patchNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a DaemonSet", - "nickname": "deleteNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind DaemonSet", - "nickname": "watchNamespacedDaemonSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSetList", - "method": "GET", - "summary": "list or watch objects of kind DaemonSet", - "nickname": "listDaemonSetForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/daemonsets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of DaemonSet", - "nickname": "watchDaemonSetListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DaemonSet", - "method": "GET", - "summary": "read status of the specified DaemonSet", - "nickname": "readNamespacedDaemonSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PUT", - "summary": "replace status of the specified DaemonSet", - "nickname": "replaceNamespacedDaemonSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DaemonSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.DaemonSet", - "method": "PATCH", - "summary": "partially update status of the specified DaemonSet", - "nickname": "patchNamespacedDaemonSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DaemonSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DaemonSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DeploymentList", - "method": "GET", - "summary": "list or watch objects of kind Deployment", - "nickname": "listNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DeploymentList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "POST", - "summary": "create a Deployment", - "nickname": "createNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Deployment", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.Deployment" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Deployment", - "nickname": "deletecollectionNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Deployment", - "nickname": "watchNamespacedDeploymentList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Deployment", - "method": "GET", - "summary": "read the specified Deployment", - "nickname": "readNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PUT", - "summary": "replace the specified Deployment", - "nickname": "replaceNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Deployment", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PATCH", - "summary": "partially update the specified Deployment", - "nickname": "patchNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Deployment", - "nickname": "deleteNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Deployment", - "nickname": "watchNamespacedDeployment", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DeploymentList", - "method": "GET", - "summary": "list or watch objects of kind Deployment", - "nickname": "listDeploymentForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DeploymentList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/deployments", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Deployment", - "nickname": "watchDeploymentListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.DeploymentRollback", - "method": "POST", - "summary": "create rollback of a Deployment", - "nickname": "createNamespacedDeploymentRollback", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.DeploymentRollback", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DeploymentRollback", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.DeploymentRollback" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.DeploymentRollback" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1beta1.DeploymentRollback" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Scale", - "method": "GET", - "summary": "read scale of the specified Deployment", - "nickname": "readNamespacedDeploymentScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PUT", - "summary": "replace scale of the specified Deployment", - "nickname": "replaceNamespacedDeploymentScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified Deployment", - "nickname": "patchNamespacedDeploymentScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Deployment", - "method": "GET", - "summary": "read status of the specified Deployment", - "nickname": "readNamespacedDeploymentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PUT", - "summary": "replace status of the specified Deployment", - "nickname": "replaceNamespacedDeploymentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Deployment", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Deployment", - "method": "PATCH", - "summary": "partially update status of the specified Deployment", - "nickname": "patchNamespacedDeploymentStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Deployment", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Deployment" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.IngressList", - "method": "GET", - "summary": "list or watch objects of kind Ingress", - "nickname": "listNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.IngressList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "POST", - "summary": "create an Ingress", - "nickname": "createNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Ingress", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.Ingress" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Ingress", - "nickname": "deletecollectionNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Ingress", - "nickname": "watchNamespacedIngressList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Ingress", - "method": "GET", - "summary": "read the specified Ingress", - "nickname": "readNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PUT", - "summary": "replace the specified Ingress", - "nickname": "replaceNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Ingress", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PATCH", - "summary": "partially update the specified Ingress", - "nickname": "patchNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete an Ingress", - "nickname": "deleteNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Ingress", - "nickname": "watchNamespacedIngress", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.IngressList", - "method": "GET", - "summary": "list or watch objects of kind Ingress", - "nickname": "listIngressForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.IngressList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/ingresses", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Ingress", - "nickname": "watchIngressListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Ingress", - "method": "GET", - "summary": "read status of the specified Ingress", - "nickname": "readNamespacedIngressStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PUT", - "summary": "replace status of the specified Ingress", - "nickname": "replaceNamespacedIngressStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Ingress", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Ingress", - "method": "PATCH", - "summary": "partially update status of the specified Ingress", - "nickname": "patchNamespacedIngressStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Ingress", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Ingress" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSetList", - "method": "GET", - "summary": "list or watch objects of kind ReplicaSet", - "nickname": "listNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "POST", - "summary": "create a ReplicaSet", - "nickname": "createNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicaSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.ReplicaSet" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ReplicaSet", - "nickname": "deletecollectionNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicaSet", - "nickname": "watchNamespacedReplicaSetList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSet", - "method": "GET", - "summary": "read the specified ReplicaSet", - "nickname": "readNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PUT", - "summary": "replace the specified ReplicaSet", - "nickname": "replaceNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicaSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PATCH", - "summary": "partially update the specified ReplicaSet", - "nickname": "patchNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ReplicaSet", - "nickname": "deleteNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ReplicaSet", - "nickname": "watchNamespacedReplicaSet", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSetList", - "method": "GET", - "summary": "list or watch objects of kind ReplicaSet", - "nickname": "listReplicaSetForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSetList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/watch/replicasets", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ReplicaSet", - "nickname": "watchReplicaSetListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.Scale", - "method": "GET", - "summary": "read scale of the specified ReplicaSet", - "nickname": "readNamespacedReplicaSetScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PUT", - "summary": "replace scale of the specified ReplicaSet", - "nickname": "replaceNamespacedReplicaSetScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.Scale", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.Scale", - "method": "PATCH", - "summary": "partially update scale of the specified ReplicaSet", - "nickname": "patchNamespacedReplicaSetScale", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Scale", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.Scale" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1beta1.ReplicaSet", - "method": "GET", - "summary": "read status of the specified ReplicaSet", - "nickname": "readNamespacedReplicaSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PUT", - "summary": "replace status of the specified ReplicaSet", - "nickname": "replaceNamespacedReplicaSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta1.ReplicaSet", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1beta1.ReplicaSet", - "method": "PATCH", - "summary": "partially update status of the specified ReplicaSet", - "nickname": "patchNamespacedReplicaSetStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ReplicaSet", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta1.ReplicaSet" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/apis/extensions/v1beta1", - "description": "API at /apis/extensions/v1beta1", - "operations": [ - { - "type": "v1.APIResourceList", - "method": "GET", - "summary": "get available resources", - "nickname": "getAPIResources", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1beta1.DaemonSetList": { - "id": "v1beta1.DaemonSetList", - "description": "DaemonSetList is a collection of daemon sets.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.DaemonSet" - }, - "description": "A list of daemon sets." - } - } - }, - "v1.ListMeta": { - "id": "v1.ListMeta", - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "selfLink": { - "type": "string", - "description": "selfLink is a URL representing this object. Populated by the system. Read-only." - }, - "resourceVersion": { - "type": "string", - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "continue": { - "type": "string", - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response." - } - } - }, - "v1beta1.DaemonSet": { - "id": "v1beta1.DaemonSet", - "description": "DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.DaemonSetSpec", - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta1.DaemonSetStatus", - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ObjectMeta": { - "id": "v1.ObjectMeta", - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "name": { - "type": "string", - "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "generateName": { - "type": "string", - "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" - }, - "namespace": { - "type": "string", - "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" - }, - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "uid": { - "type": "string", - "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "resourceVersion": { - "type": "string", - "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "generation": { - "type": "integer", - "format": "int64", - "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only." - }, - "creationTimestamp": { - "type": "string", - "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "deletionTimestamp": { - "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "deletionGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." - }, - "labels": { - "type": "object", - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" - }, - "annotations": { - "type": "object", - "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" - }, - "ownerReferences": { - "type": "array", - "items": { - "$ref": "v1.OwnerReference" - }, - "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller." - }, - "initializers": { - "$ref": "v1.Initializers", - "description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user." - }, - "finalizers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed." - }, - "clusterName": { - "type": "string", - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." - } - } - }, - "v1.OwnerReference": { - "id": "v1.OwnerReference", - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "kind": { - "type": "string", - "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "controller": { - "type": "boolean", - "description": "If true, this reference points to the managing controller." - }, - "blockOwnerDeletion": { - "type": "boolean", - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." - } - } - }, - "v1.Initializers": { - "id": "v1.Initializers", - "description": "Initializers tracks the progress of initialization.", - "required": [ - "pending" - ], - "properties": { - "pending": { - "type": "array", - "items": { - "$ref": "v1.Initializer" - }, - "description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients." - }, - "result": { - "$ref": "v1.Status", - "description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion." - } - } - }, - "v1.Initializer": { - "id": "v1.Initializer", - "description": "Initializer is information about an initializer that has not yet completed.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "name of the process that is responsible for initializing this object." - } - } - }, - "v1.Status": { - "id": "v1.Status", - "description": "Status is a return value for calls that don't return other objects.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "status": { - "type": "string", - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - }, - "message": { - "type": "string", - "description": "A human-readable description of the status of this operation." - }, - "reason": { - "type": "string", - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." - }, - "details": { - "$ref": "v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "code": { - "type": "integer", - "format": "int32", - "description": "Suggested HTTP return code for this status, 0 if not set." - } - } - }, - "v1.StatusDetails": { - "id": "v1.StatusDetails", - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "name": { - "type": "string", - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)." - }, - "group": { - "type": "string", - "description": "The group attribute of the resource associated with the status StatusReason." - }, - "kind": { - "type": "string", - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "uid": { - "type": "string", - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "causes": { - "type": "array", - "items": { - "$ref": "v1.StatusCause" - }, - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes." - }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action." - } - } - }, - "v1.StatusCause": { - "id": "v1.StatusCause", - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "reason": { - "type": "string", - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available." - }, - "message": { - "type": "string", - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader." - }, - "field": { - "type": "string", - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"" - } - } - }, - "v1beta1.DaemonSetSpec": { - "id": "v1beta1.DaemonSetSpec", - "description": "DaemonSetSpec is the specification of a daemon set.", - "required": [ - "template" - ], - "properties": { - "selector": { - "$ref": "v1.LabelSelector", - "description": "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" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "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": { - "$ref": "v1beta1.DaemonSetUpdateStrategy", - "description": "An update strategy to replace existing DaemonSet pods with new pods." - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "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)." - }, - "templateGeneration": { - "type": "integer", - "format": "int64", - "description": "DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation." - }, - "revisionHistoryLimit": { - "type": "integer", - "format": "int32", - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10." - } - } - }, - "v1.LabelSelector": { - "id": "v1.LabelSelector", - "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", - "properties": { - "matchLabels": { - "type": "object", - "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - }, - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.LabelSelectorRequirement" - }, - "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed." - } - } - }, - "v1.LabelSelectorRequirement": { - "id": "v1.LabelSelectorRequirement", - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "key is the label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - } - } - }, - "v1.PodTemplateSpec": { - "id": "v1.PodTemplateSpec", - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.PodSpec", - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.PodSpec": { - "id": "v1.PodSpec", - "description": "PodSpec is a description of a pod.", - "required": [ - "containers" - ], - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "v1.Volume" - }, - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes" - }, - "initContainers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/" - }, - "containers": { - "type": "array", - "items": { - "$ref": "v1.Container" - }, - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated." - }, - "restartPolicy": { - "type": "string", - "description": "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": { - "type": "integer", - "format": "int64", - "description": "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": { - "type": "integer", - "format": "int64", - "description": "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": { - "type": "string", - "description": "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'." - }, - "nodeSelector": { - "type": "object", - "description": "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": { - "type": "string", - "description": "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": { - "type": "string", - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead." - }, - "automountServiceAccountToken": { - "type": "boolean", - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted." - }, - "nodeName": { - "type": "string", - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements." - }, - "hostNetwork": { - "type": "boolean", - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false." - }, - "hostPID": { - "type": "boolean", - "description": "Use the host's pid namespace. Optional: Default to false." - }, - "hostIPC": { - "type": "boolean", - "description": "Use the host's ipc namespace. Optional: Default to false." - }, - "securityContext": { - "$ref": "v1.PodSecurityContext", - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." - }, - "imagePullSecrets": { - "type": "array", - "items": { - "$ref": "v1.LocalObjectReference" - }, - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod" - }, - "hostname": { - "type": "string", - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value." - }, - "subdomain": { - "type": "string", - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all." - }, - "affinity": { - "$ref": "v1.Affinity", - "description": "If specified, the pod's scheduling constraints" - }, - "schedulerName": { - "type": "string", - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler." - }, - "tolerations": { - "type": "array", - "items": { - "$ref": "v1.Toleration" - }, - "description": "If specified, the pod's tolerations." - }, - "hostAliases": { - "type": "array", - "items": { - "$ref": "v1.HostAlias" - }, - "description": "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": { - "type": "string", - "description": "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": { - "type": "integer", - "format": "int32", - "description": "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." - } - } - }, - "v1.Volume": { - "id": "v1.Volume", - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "hostPath": { - "$ref": "v1.HostPathVolumeSource", - "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" - }, - "emptyDir": { - "$ref": "v1.EmptyDirVolumeSource", - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" - }, - "gcePersistentDisk": { - "$ref": "v1.GCEPersistentDiskVolumeSource", - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" - }, - "awsElasticBlockStore": { - "$ref": "v1.AWSElasticBlockStoreVolumeSource", - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" - }, - "gitRepo": { - "$ref": "v1.GitRepoVolumeSource", - "description": "GitRepo represents a git repository at a particular revision." - }, - "secret": { - "$ref": "v1.SecretVolumeSource", - "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" - }, - "nfs": { - "$ref": "v1.NFSVolumeSource", - "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - }, - "iscsi": { - "$ref": "v1.ISCSIVolumeSource", - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md" - }, - "glusterfs": { - "$ref": "v1.GlusterfsVolumeSource", - "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md" - }, - "persistentVolumeClaim": { - "$ref": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "rbd": { - "$ref": "v1.RBDVolumeSource", - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md" - }, - "flexVolume": { - "$ref": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." - }, - "cinder": { - "$ref": "v1.CinderVolumeSource", - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "cephfs": { - "$ref": "v1.CephFSVolumeSource", - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime" - }, - "flocker": { - "$ref": "v1.FlockerVolumeSource", - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPI represents downward API about the pod that should populate this volume" - }, - "fc": { - "$ref": "v1.FCVolumeSource", - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." - }, - "azureFile": { - "$ref": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." - }, - "configMap": { - "$ref": "v1.ConfigMapVolumeSource", - "description": "ConfigMap represents a configMap that should populate this volume" - }, - "vsphereVolume": { - "$ref": "v1.VsphereVirtualDiskVolumeSource", - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" - }, - "quobyte": { - "$ref": "v1.QuobyteVolumeSource", - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime" - }, - "azureDisk": { - "$ref": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." - }, - "photonPersistentDisk": { - "$ref": "v1.PhotonPersistentDiskVolumeSource", - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" - }, - "projected": { - "$ref": "v1.ProjectedVolumeSource", - "description": "Items for all in one resources secrets, configmaps, and downward API" - }, - "portworxVolume": { - "$ref": "v1.PortworxVolumeSource", - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine" - }, - "scaleIO": { - "$ref": "v1.ScaleIOVolumeSource", - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." - }, - "storageos": { - "$ref": "v1.StorageOSVolumeSource", - "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." - } - } - }, - "v1.HostPathVolumeSource": { - "id": "v1.HostPathVolumeSource", - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" - }, - "type": { - "$ref": "v1.HostPathType", - "description": "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" - } - } - }, - "v1.HostPathType": { - "id": "v1.HostPathType", - "properties": {} - }, - "v1.EmptyDirVolumeSource": { - "id": "v1.EmptyDirVolumeSource", - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "type": "string", - "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" - }, - "sizeLimit": { - "type": "string", - "description": "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir" - } - } - }, - "v1.GCEPersistentDiskVolumeSource": { - "id": "v1.GCEPersistentDiskVolumeSource", - "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", - "required": [ - "pdName" - ], - "properties": { - "pdName": { - "type": "string", - "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" - } - } - }, - "v1.AWSElasticBlockStoreVolumeSource": { - "id": "v1.AWSElasticBlockStoreVolumeSource", - "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" - }, - "partition": { - "type": "integer", - "format": "int32", - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty)." - }, - "readOnly": { - "type": "boolean", - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" - } - } - }, - "v1.GitRepoVolumeSource": { - "id": "v1.GitRepoVolumeSource", - "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", - "required": [ - "repository" - ], - "properties": { - "repository": { - "type": "string", - "description": "Repository URL" - }, - "revision": { - "type": "string", - "description": "Commit hash for the specified revision." - }, - "directory": { - "type": "string", - "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name." - } - } - }, - "v1.SecretVolumeSource": { - "id": "v1.SecretVolumeSource", - "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", - "properties": { - "secretName": { - "type": "string", - "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's keys must be defined" - } - } - }, - "v1.KeyToPath": { - "id": "v1.KeyToPath", - "description": "Maps a string key to a path within a volume.", - "required": [ - "key", - "path" - ], - "properties": { - "key": { - "type": "string", - "description": "The key to project." - }, - "path": { - "type": "string", - "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.NFSVolumeSource": { - "id": "v1.NFSVolumeSource", - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "required": [ - "server", - "path" - ], - "properties": { - "server": { - "type": "string", - "description": "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - }, - "path": { - "type": "string", - "description": "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" - } - } - }, - "v1.ISCSIVolumeSource": { - "id": "v1.ISCSIVolumeSource", - "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "properties": { - "targetPortal": { - "type": "string", - "description": "iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - }, - "iqn": { - "type": "string", - "description": "Target iSCSI Qualified Name." - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "iSCSI target lun number." - }, - "iscsiInterface": { - "type": "string", - "description": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport." - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false." - }, - "portals": { - "type": "array", - "items": { - "type": "string" - }, - "description": "iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260)." - }, - "chapAuthDiscovery": { - "type": "boolean", - "description": "whether support iSCSI Discovery CHAP authentication" - }, - "chapAuthSession": { - "type": "boolean", - "description": "whether support iSCSI Session CHAP authentication" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "CHAP secret for iSCSI target and initiator authentication" - }, - "initiatorName": { - "type": "string", - "description": "Custom iSCSI initiator name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection." - } - } - }, - "v1.LocalObjectReference": { - "id": "v1.LocalObjectReference", - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - } - } - }, - "v1.GlusterfsVolumeSource": { - "id": "v1.GlusterfsVolumeSource", - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "endpoints", - "path" - ], - "properties": { - "endpoints": { - "type": "string", - "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "path": { - "type": "string", - "description": "Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod" - } - } - }, - "v1.PersistentVolumeClaimVolumeSource": { - "id": "v1.PersistentVolumeClaimVolumeSource", - "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", - "required": [ - "claimName" - ], - "properties": { - "claimName": { - "type": "string", - "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" - }, - "readOnly": { - "type": "boolean", - "description": "Will force the ReadOnly setting in VolumeMounts. Default false." - } - } - }, - "v1.RBDVolumeSource": { - "id": "v1.RBDVolumeSource", - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "required": [ - "monitors", - "image" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "image": { - "type": "string", - "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "fsType": { - "type": "string", - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd" - }, - "pool": { - "type": "string", - "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "user": { - "type": "string", - "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "keyring": { - "type": "string", - "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it" - } - } - }, - "v1.FlexVolumeSource": { - "id": "v1.FlexVolumeSource", - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "type": "string", - "description": "Driver is the name of the driver to use for this volume." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - }, - "options": { - "type": "object", - "description": "Optional: Extra command options if any." - } - } - }, - "v1.CinderVolumeSource": { - "id": "v1.CinderVolumeSource", - "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md" - } - } - }, - "v1.CephFSVolumeSource": { - "id": "v1.CephFSVolumeSource", - "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "monitors" - ], - "properties": { - "monitors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "path": { - "type": "string", - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /" - }, - "user": { - "type": "string", - "description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretFile": { - "type": "string", - "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it" - } - } - }, - "v1.FlockerVolumeSource": { - "id": "v1.FlockerVolumeSource", - "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", - "properties": { - "datasetName": { - "type": "string", - "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated" - }, - "datasetUUID": { - "type": "string", - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset" - } - } - }, - "v1.DownwardAPIVolumeSource": { - "id": "v1.DownwardAPIVolumeSource", - "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of downward API volume file" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.DownwardAPIVolumeFile": { - "id": "v1.DownwardAPIVolumeFile", - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "required": [ - "path" - ], - "properties": { - "path": { - "type": "string", - "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'" - }, - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." - }, - "mode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.ObjectFieldSelector": { - "id": "v1.ObjectFieldSelector", - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\"." - }, - "fieldPath": { - "type": "string", - "description": "Path of the field to select in the specified API version." - } - } - }, - "v1.ResourceFieldSelector": { - "id": "v1.ResourceFieldSelector", - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "required": [ - "resource" - ], - "properties": { - "containerName": { - "type": "string", - "description": "Container name: required for volumes, optional for env vars" - }, - "resource": { - "type": "string", - "description": "Required: resource to select" - }, - "divisor": { - "type": "string", - "description": "Specifies the output format of the exposed resources, defaults to \"1\"" - } - } - }, - "v1.FCVolumeSource": { - "id": "v1.FCVolumeSource", - "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "properties": { - "targetWWNs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional: FC target worldwide names (WWNs)" - }, - "lun": { - "type": "integer", - "format": "int32", - "description": "Optional: FC target lun number" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - }, - "wwids": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." - } - } - }, - "v1.AzureFileVolumeSource": { - "id": "v1.AzureFileVolumeSource", - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "required": [ - "secretName", - "shareName" - ], - "properties": { - "secretName": { - "type": "string", - "description": "the name of secret that contains Azure Storage Account Name and Key" - }, - "shareName": { - "type": "string", - "description": "Share Name" - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.ConfigMapVolumeSource": { - "id": "v1.ConfigMapVolumeSource", - "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.VsphereVirtualDiskVolumeSource": { - "id": "v1.VsphereVirtualDiskVolumeSource", - "description": "Represents a vSphere volume resource.", - "required": [ - "volumePath" - ], - "properties": { - "volumePath": { - "type": "string", - "description": "Path that identifies vSphere volume vmdk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "storagePolicyName": { - "type": "string", - "description": "Storage Policy Based Management (SPBM) profile name." - }, - "storagePolicyID": { - "type": "string", - "description": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName." - } - } - }, - "v1.QuobyteVolumeSource": { - "id": "v1.QuobyteVolumeSource", - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "required": [ - "registry", - "volume" - ], - "properties": { - "registry": { - "type": "string", - "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes" - }, - "volume": { - "type": "string", - "description": "Volume is a string that references an already created Quobyte volume by name." - }, - "readOnly": { - "type": "boolean", - "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false." - }, - "user": { - "type": "string", - "description": "User to map volume access to Defaults to serivceaccount user" - }, - "group": { - "type": "string", - "description": "Group to map volume access to Default is no group" - } - } - }, - "v1.AzureDiskVolumeSource": { - "id": "v1.AzureDiskVolumeSource", - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "required": [ - "diskName", - "diskURI" - ], - "properties": { - "diskName": { - "type": "string", - "description": "The Name of the data disk in the blob storage" - }, - "diskURI": { - "type": "string", - "description": "The URI the data disk in the blob storage" - }, - "cachingMode": { - "$ref": "v1.AzureDataDiskCachingMode", - "description": "Host Caching mode: None, Read Only, Read Write." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - }, - "kind": { - "$ref": "v1.AzureDataDiskKind", - "description": "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" - } - } - }, - "v1.AzureDataDiskCachingMode": { - "id": "v1.AzureDataDiskCachingMode", - "properties": {} - }, - "v1.AzureDataDiskKind": { - "id": "v1.AzureDataDiskKind", - "properties": {} - }, - "v1.PhotonPersistentDiskVolumeSource": { - "id": "v1.PhotonPersistentDiskVolumeSource", - "description": "Represents a Photon Controller persistent disk resource.", - "required": [ - "pdID" - ], - "properties": { - "pdID": { - "type": "string", - "description": "ID that identifies Photon Controller persistent disk" - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - } - } - }, - "v1.ProjectedVolumeSource": { - "id": "v1.ProjectedVolumeSource", - "description": "Represents a projected volume source", - "required": [ - "sources" - ], - "properties": { - "sources": { - "type": "array", - "items": { - "$ref": "v1.VolumeProjection" - }, - "description": "list of volume projections" - }, - "defaultMode": { - "type": "integer", - "format": "int32", - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set." - } - } - }, - "v1.VolumeProjection": { - "id": "v1.VolumeProjection", - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "secret": { - "$ref": "v1.SecretProjection", - "description": "information about the secret data to project" - }, - "downwardAPI": { - "$ref": "v1.DownwardAPIProjection", - "description": "information about the downwardAPI data to project" - }, - "configMap": { - "$ref": "v1.ConfigMapProjection", - "description": "information about the configMap data to project" - } - } - }, - "v1.SecretProjection": { - "id": "v1.SecretProjection", - "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or its key must be defined" - } - } - }, - "v1.DownwardAPIProjection": { - "id": "v1.DownwardAPIProjection", - "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "v1.DownwardAPIVolumeFile" - }, - "description": "Items is a list of DownwardAPIVolume file" - } - } - }, - "v1.ConfigMapProjection": { - "id": "v1.ConfigMapProjection", - "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.KeyToPath" - }, - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's keys must be defined" - } - } - }, - "v1.PortworxVolumeSource": { - "id": "v1.PortworxVolumeSource", - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "required": [ - "volumeID" - ], - "properties": { - "volumeID": { - "type": "string", - "description": "VolumeID uniquely identifies a Portworx volume" - }, - "fsType": { - "type": "string", - "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.ScaleIOVolumeSource": { - "id": "v1.ScaleIOVolumeSource", - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "required": [ - "gateway", - "system", - "secretRef" - ], - "properties": { - "gateway": { - "type": "string", - "description": "The host address of the ScaleIO API Gateway." - }, - "system": { - "type": "string", - "description": "The name of the storage system as configured in ScaleIO." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." - }, - "sslEnabled": { - "type": "boolean", - "description": "Flag to enable/disable SSL communication with Gateway, default false" - }, - "protectionDomain": { - "type": "string", - "description": "The name of the Protection Domain for the configured storage (defaults to \"default\")." - }, - "storagePool": { - "type": "string", - "description": "The Storage Pool associated with the protection domain (defaults to \"default\")." - }, - "storageMode": { - "type": "string", - "description": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\")." - }, - "volumeName": { - "type": "string", - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - } - } - }, - "v1.StorageOSVolumeSource": { - "id": "v1.StorageOSVolumeSource", - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "volumeName": { - "type": "string", - "description": "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace." - }, - "volumeNamespace": { - "type": "string", - "description": "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created." - }, - "fsType": { - "type": "string", - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." - }, - "readOnly": { - "type": "boolean", - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." - }, - "secretRef": { - "$ref": "v1.LocalObjectReference", - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." - } - } - }, - "v1.Container": { - "id": "v1.Container", - "description": "A single application container that you want to run within a pod.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated." - }, - "image": { - "type": "string", - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets." - }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell" - }, - "args": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell" - }, - "workingDir": { - "type": "string", - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated." - }, - "ports": { - "type": "array", - "items": { - "$ref": "v1.ContainerPort" - }, - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated." - }, - "envFrom": { - "type": "array", - "items": { - "$ref": "v1.EnvFromSource" - }, - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated." - }, - "env": { - "type": "array", - "items": { - "$ref": "v1.EnvVar" - }, - "description": "List of environment variables to set in the container. Cannot be updated." - }, - "resources": { - "$ref": "v1.ResourceRequirements", - "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" - }, - "volumeMounts": { - "type": "array", - "items": { - "$ref": "v1.VolumeMount" - }, - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated." - }, - "livenessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "readinessProbe": { - "$ref": "v1.Probe", - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "lifecycle": { - "$ref": "v1.Lifecycle", - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." - }, - "terminationMessagePath": { - "type": "string", - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated." - }, - "terminationMessagePolicy": { - "type": "string", - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated." - }, - "imagePullPolicy": { - "type": "string", - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images" - }, - "securityContext": { - "$ref": "v1.SecurityContext", - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md" - }, - "stdin": { - "type": "boolean", - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false." - }, - "stdinOnce": { - "type": "boolean", - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false" - }, - "tty": { - "type": "boolean", - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false." - } - } - }, - "v1.ContainerPort": { - "id": "v1.ContainerPort", - "description": "ContainerPort represents a network port in a single container.", - "required": [ - "containerPort" - ], - "properties": { - "name": { - "type": "string", - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services." - }, - "hostPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this." - }, - "containerPort": { - "type": "integer", - "format": "int32", - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536." - }, - "protocol": { - "type": "string", - "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\"." - }, - "hostIP": { - "type": "string", - "description": "What host IP to bind the external port to." - } - } - }, - "v1.EnvFromSource": { - "id": "v1.EnvFromSource", - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "prefix": { - "type": "string", - "description": "An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER." - }, - "configMapRef": { - "$ref": "v1.ConfigMapEnvSource", - "description": "The ConfigMap to select from" - }, - "secretRef": { - "$ref": "v1.SecretEnvSource", - "description": "The Secret to select from" - } - } - }, - "v1.ConfigMapEnvSource": { - "id": "v1.ConfigMapEnvSource", - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap must be defined" - } - } - }, - "v1.SecretEnvSource": { - "id": "v1.SecretEnvSource", - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret must be defined" - } - } - }, - "v1.EnvVar": { - "id": "v1.EnvVar", - "description": "EnvVar represents an environment variable present in a Container.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the environment variable. Must be a C_IDENTIFIER." - }, - "value": { - "type": "string", - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\"." - }, - "valueFrom": { - "$ref": "v1.EnvVarSource", - "description": "Source for the environment variable's value. Cannot be used if value is not empty." - } - } - }, - "v1.EnvVarSource": { - "id": "v1.EnvVarSource", - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "fieldRef": { - "$ref": "v1.ObjectFieldSelector", - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP." - }, - "resourceFieldRef": { - "$ref": "v1.ResourceFieldSelector", - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." - }, - "configMapKeyRef": { - "$ref": "v1.ConfigMapKeySelector", - "description": "Selects a key of a ConfigMap." - }, - "secretKeyRef": { - "$ref": "v1.SecretKeySelector", - "description": "Selects a key of a secret in the pod's namespace" - } - } - }, - "v1.ConfigMapKeySelector": { - "id": "v1.ConfigMapKeySelector", - "description": "Selects a key from a ConfigMap.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "key": { - "type": "string", - "description": "The key to select." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the ConfigMap or it's key must be defined" - } - } - }, - "v1.SecretKeySelector": { - "id": "v1.SecretKeySelector", - "description": "SecretKeySelector selects a key of a Secret.", - "required": [ - "key" - ], - "properties": { - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "key": { - "type": "string", - "description": "The key of the secret to select from. Must be a valid secret key." - }, - "optional": { - "type": "boolean", - "description": "Specify whether the Secret or it's key must be defined" - } - } - }, - "v1.ResourceRequirements": { - "id": "v1.ResourceRequirements", - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "type": "object", - "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" - }, - "requests": { - "type": "object", - "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/" - } - } - }, - "v1.VolumeMount": { - "id": "v1.VolumeMount", - "description": "VolumeMount describes a mounting of a Volume within a container.", - "required": [ - "name", - "mountPath" - ], - "properties": { - "name": { - "type": "string", - "description": "This must match the Name of a Volume." - }, - "readOnly": { - "type": "boolean", - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false." - }, - "mountPath": { - "type": "string", - "description": "Path within the container at which the volume should be mounted. Must not contain ':'." - }, - "subPath": { - "type": "string", - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root)." - }, - "mountPropagation": { - "$ref": "v1.MountPropagationMode", - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationHostToContainer is used. This field is alpha in 1.8 and can be reworked or removed in a future release." - } - } - }, - "v1.MountPropagationMode": { - "id": "v1.MountPropagationMode", - "properties": {} - }, - "v1.Probe": { - "id": "v1.Probe", - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - }, - "initialDelaySeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "timeoutSeconds": { - "type": "integer", - "format": "int32", - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" - }, - "periodSeconds": { - "type": "integer", - "format": "int32", - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1." - }, - "successThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1." - }, - "failureThreshold": { - "type": "integer", - "format": "int32", - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1." - } - } - }, - "v1.ExecAction": { - "id": "v1.ExecAction", - "description": "ExecAction describes a \"run in container\" action.", - "properties": { - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy." - } - } - }, - "v1.HTTPGetAction": { - "id": "v1.HTTPGetAction", - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "required": [ - "port" - ], - "properties": { - "path": { - "type": "string", - "description": "Path to access on the HTTP server." - }, - "port": { - "type": "string", - "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - }, - "host": { - "type": "string", - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead." - }, - "scheme": { - "type": "string", - "description": "Scheme to use for connecting to the host. Defaults to HTTP." - }, - "httpHeaders": { - "type": "array", - "items": { - "$ref": "v1.HTTPHeader" - }, - "description": "Custom headers to set in the request. HTTP allows repeated headers." - } - } - }, - "v1.HTTPHeader": { - "id": "v1.HTTPHeader", - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "required": [ - "name", - "value" - ], - "properties": { - "name": { - "type": "string", - "description": "The header field name" - }, - "value": { - "type": "string", - "description": "The header field value" - } - } - }, - "v1.TCPSocketAction": { - "id": "v1.TCPSocketAction", - "description": "TCPSocketAction describes an action based on opening a socket", - "required": [ - "port" - ], - "properties": { - "port": { - "type": "string", - "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." - }, - "host": { - "type": "string", - "description": "Optional: Host name to connect to, defaults to the pod IP." - } - } - }, - "v1.Lifecycle": { - "id": "v1.Lifecycle", - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "$ref": "v1.Handler", - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - }, - "preStop": { - "$ref": "v1.Handler", - "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" - } - } - }, - "v1.Handler": { - "id": "v1.Handler", - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "$ref": "v1.ExecAction", - "description": "One and only one of the following should be specified. Exec specifies the action to take." - }, - "httpGet": { - "$ref": "v1.HTTPGetAction", - "description": "HTTPGet specifies the http request to perform." - }, - "tcpSocket": { - "$ref": "v1.TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported" - } - } - }, - "v1.SecurityContext": { - "id": "v1.SecurityContext", - "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", - "properties": { - "capabilities": { - "$ref": "v1.Capabilities", - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." - }, - "privileged": { - "type": "boolean", - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false." - }, - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "readOnlyRootFilesystem": { - "type": "boolean", - "description": "Whether this container has a read-only root filesystem. Default is false." - }, - "allowPrivilegeEscalation": { - "type": "boolean", - "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN" - } - } - }, - "v1.Capabilities": { - "id": "v1.Capabilities", - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Added capabilities" - }, - "drop": { - "type": "array", - "items": { - "$ref": "v1.Capability" - }, - "description": "Removed capabilities" - } - } - }, - "v1.Capability": { - "id": "v1.Capability", - "properties": {} - }, - "v1.SELinuxOptions": { - "id": "v1.SELinuxOptions", - "description": "SELinuxOptions are the labels to be applied to the container", - "properties": { - "user": { - "type": "string", - "description": "User is a SELinux user label that applies to the container." - }, - "role": { - "type": "string", - "description": "Role is a SELinux role label that applies to the container." - }, - "type": { - "type": "string", - "description": "Type is a SELinux type label that applies to the container." - }, - "level": { - "type": "string", - "description": "Level is SELinux level label that applies to the container." - } - } - }, - "v1.PodSecurityContext": { - "id": "v1.PodSecurityContext", - "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", - "properties": { - "seLinuxOptions": { - "$ref": "v1.SELinuxOptions", - "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsUser": { - "type": "integer", - "format": "int64", - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." - }, - "runAsNonRoot": { - "type": "boolean", - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." - }, - "supplementalGroups": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container." - }, - "fsGroup": { - "type": "integer", - "format": "int64", - "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw " - } - } - }, - "v1.Affinity": { - "id": "v1.Affinity", - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "$ref": "v1.NodeAffinity", - "description": "Describes node affinity scheduling rules for the pod." - }, - "podAffinity": { - "$ref": "v1.PodAffinity", - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." - }, - "podAntiAffinity": { - "$ref": "v1.PodAntiAffinity", - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." - } - } - }, - "v1.NodeAffinity": { - "id": "v1.NodeAffinity", - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "$ref": "v1.NodeSelector", - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PreferredSchedulingTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.NodeSelector": { - "id": "v1.NodeSelector", - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "required": [ - "nodeSelectorTerms" - ], - "properties": { - "nodeSelectorTerms": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorTerm" - }, - "description": "Required. A list of node selector terms. The terms are ORed." - } - } - }, - "v1.NodeSelectorTerm": { - "id": "v1.NodeSelectorTerm", - "description": "A null or empty node selector term matches no objects.", - "required": [ - "matchExpressions" - ], - "properties": { - "matchExpressions": { - "type": "array", - "items": { - "$ref": "v1.NodeSelectorRequirement" - }, - "description": "Required. A list of node selector requirements. The requirements are ANDed." - } - } - }, - "v1.NodeSelectorRequirement": { - "id": "v1.NodeSelectorRequirement", - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "type": "string", - "description": "The label key that the selector applies to." - }, - "operator": { - "type": "string", - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." - }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch." - } - } - }, - "v1.PreferredSchedulingTerm": { - "id": "v1.PreferredSchedulingTerm", - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "required": [ - "weight", - "preference" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." - }, - "preference": { - "$ref": "v1.NodeSelectorTerm", - "description": "A node selector term, associated with the corresponding weight." - } - } - }, - "v1.PodAffinity": { - "id": "v1.PodAffinity", - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.PodAffinityTerm": { - "id": "v1.PodAffinityTerm", - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e tches that of any node on which a pod of the set of pods is running", - "properties": { - "labelSelector": { - "$ref": "v1.LabelSelector", - "description": "A label query over a set of resources, in this case pods." - }, - "namespaces": { - "type": "array", - "items": { - "type": "string" - }, - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"" - }, - "topologyKey": { - "type": "string", - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed." - } - } - }, - "v1.WeightedPodAffinityTerm": { - "id": "v1.WeightedPodAffinityTerm", - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "required": [ - "weight", - "podAffinityTerm" - ], - "properties": { - "weight": { - "type": "integer", - "format": "int32", - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100." - }, - "podAffinityTerm": { - "$ref": "v1.PodAffinityTerm", - "description": "Required. A pod affinity term, associated with the corresponding weight." - } - } - }, - "v1.PodAntiAffinity": { - "id": "v1.PodAntiAffinity", - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "requiredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.PodAffinityTerm" - }, - "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - "type": "array", - "items": { - "$ref": "v1.WeightedPodAffinityTerm" - }, - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred." - } - } - }, - "v1.Toleration": { - "id": "v1.Toleration", - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "key": { - "type": "string", - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys." - }, - "operator": { - "type": "string", - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category." - }, - "value": { - "type": "string", - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string." - }, - "effect": { - "type": "string", - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute." - }, - "tolerationSeconds": { - "type": "integer", - "format": "int64", - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system." - } - } - }, - "v1.HostAlias": { - "id": "v1.HostAlias", - "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - "properties": { - "ip": { - "type": "string", - "description": "IP address of the host file entry." - }, - "hostnames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Hostnames for the above IP address." - } - } - }, - "v1beta1.DaemonSetUpdateStrategy": { - "id": "v1beta1.DaemonSetUpdateStrategy", - "properties": { - "type": { - "type": "string", - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete." - }, - "rollingUpdate": { - "$ref": "v1beta1.RollingUpdateDaemonSet", - "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." - } - } - }, - "v1beta1.RollingUpdateDaemonSet": { - "id": "v1beta1.RollingUpdateDaemonSet", - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "type": "string", - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." - } - } - }, - "v1beta1.DaemonSetStatus": { - "id": "v1beta1.DaemonSetStatus", - "description": "DaemonSetStatus represents the current status of a daemon set.", - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "properties": { - "currentNumberScheduled": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" - }, - "numberMisscheduled": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" - }, - "desiredNumberScheduled": { - "type": "integer", - "format": "int32", - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" - }, - "numberReady": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready." - }, - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "The most recent generation observed by the daemon set controller." - }, - "updatedNumberScheduled": { - "type": "integer", - "format": "int32", - "description": "The total number of nodes that are running updated daemon pod" - }, - "numberAvailable": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)" - }, - "numberUnavailable": { - "type": "integer", - "format": "int32", - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)" - }, - "collisionCount": { - "type": "integer", - "format": "int32", - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." - } - } - }, - "v1.WatchEvent": { - "id": "v1.WatchEvent", - "required": [ - "type", - "object" - ], - "properties": { - "type": { - "type": "string" - }, - "object": { - "type": "string" - } - } - }, - "v1.Patch": { - "id": "v1.Patch", - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "properties": {} - }, - "v1.DeleteOptions": { - "id": "v1.DeleteOptions", - "description": "DeleteOptions may be provided when deleting an API object.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." - }, - "preconditions": { - "$ref": "v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "orphanDependents": { - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." - }, - "propagationPolicy": { - "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." - } - } - }, - "v1.Preconditions": { - "id": "v1.Preconditions", - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "uid": { - "$ref": "types.UID", - "description": "Specifies the target UID." - } - } - }, - "types.UID": { - "id": "types.UID", - "properties": {} - }, - "v1.DeletionPropagation": { - "id": "v1.DeletionPropagation", - "properties": {} - }, - "v1beta1.DeploymentList": { - "id": "v1beta1.DeploymentList", - "description": "DeploymentList is a list of Deployments.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata." - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Deployment" - }, - "description": "Items is the list of Deployments." - } - } - }, - "v1beta1.Deployment": { - "id": "v1beta1.Deployment", - "description": "DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata." - }, - "spec": { - "$ref": "v1beta1.DeploymentSpec", - "description": "Specification of the desired behavior of the Deployment." - }, - "status": { - "$ref": "v1beta1.DeploymentStatus", - "description": "Most recently observed status of the Deployment." - } - } - }, - "v1beta1.DeploymentSpec": { - "id": "v1beta1.DeploymentSpec", - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "required": [ - "template" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1." - }, - "selector": { - "$ref": "v1.LabelSelector", - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment." - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "Template describes the pods that will be created." - }, - "strategy": { - "$ref": "v1beta1.DeploymentStrategy", - "description": "The deployment strategy to use to replace existing pods with new ones." - }, - "minReadySeconds": { - "type": "integer", - "format": "int32", - "description": "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)" - }, - "revisionHistoryLimit": { - "type": "integer", - "format": "int32", - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified." - }, - "paused": { - "type": "boolean", - "description": "Indicates that the deployment is paused and will not be processed by the deployment controller." - }, - "rollbackTo": { - "$ref": "v1beta1.RollbackConfig", - "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done." - }, - "progressDeadlineSeconds": { - "type": "integer", - "format": "int32", - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is not set by default." - } - } - }, - "v1beta1.DeploymentStrategy": { - "id": "v1beta1.DeploymentStrategy", - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "type": { - "type": "string", - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate." - }, - "rollingUpdate": { - "$ref": "v1beta1.RollingUpdateDeployment", - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." - } - } - }, - "v1beta1.RollingUpdateDeployment": { - "id": "v1beta1.RollingUpdateDeployment", - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxUnavailable": { - "type": "string", - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." - }, - "maxSurge": { - "type": "string", - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods." - } - } - }, - "v1beta1.RollbackConfig": { - "id": "v1beta1.RollbackConfig", - "description": "DEPRECATED.", - "properties": { - "revision": { - "type": "integer", - "format": "int64", - "description": "The revision to rollback to. If set to 0, rollback to the last revision." - } - } - }, - "v1beta1.DeploymentStatus": { - "id": "v1beta1.DeploymentStatus", - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "The generation observed by the deployment controller." - }, - "replicas": { - "type": "integer", - "format": "int32", - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector)." - }, - "updatedReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec." - }, - "readyReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of ready pods targeted by this deployment." - }, - "availableReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment." - }, - "unavailableReplicas": { - "type": "integer", - "format": "int32", - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta1.DeploymentCondition" - }, - "description": "Represents the latest available observations of a deployment's current state." - }, - "collisionCount": { - "type": "integer", - "format": "int32", - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet." - } - } - }, - "v1beta1.DeploymentCondition": { - "id": "v1beta1.DeploymentCondition", - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of deployment condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastUpdateTime": { - "type": "string", - "description": "The last time this condition was updated." - }, - "lastTransitionTime": { - "type": "string", - "description": "Last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "The reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about the transition." - } - } - }, - "v1beta1.DeploymentRollback": { - "id": "v1beta1.DeploymentRollback", - "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", - "required": [ - "name", - "rollbackTo" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "name": { - "type": "string", - "description": "Required: This must match the Name of a deployment." - }, - "updatedAnnotations": { - "type": "object", - "description": "The annotations to be updated to a deployment" - }, - "rollbackTo": { - "$ref": "v1beta1.RollbackConfig", - "description": "The config of this deployment rollback." - } - } - }, - "v1beta1.Scale": { - "id": "v1beta1.Scale", - "description": "represents a scaling request for a resource.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata." - }, - "spec": { - "$ref": "v1beta1.ScaleSpec", - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status." - }, - "status": { - "$ref": "v1beta1.ScaleStatus", - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only." - } - } - }, - "v1beta1.ScaleSpec": { - "id": "v1beta1.ScaleSpec", - "description": "describes the attributes of a scale subresource", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "desired number of instances for the scaled object." - } - } - }, - "v1beta1.ScaleStatus": { - "id": "v1beta1.ScaleStatus", - "description": "represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "actual number of observed instances of the scaled object." - }, - "selector": { - "type": "object", - "description": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors" - }, - "targetSelector": { - "type": "string", - "description": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" - } - } - }, - "v1beta1.IngressList": { - "id": "v1beta1.IngressList", - "description": "IngressList is a collection of Ingress.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.Ingress" - }, - "description": "Items is the list of Ingress." - } - } - }, - "v1beta1.Ingress": { - "id": "v1beta1.Ingress", - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.IngressSpec", - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta1.IngressStatus", - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1beta1.IngressSpec": { - "id": "v1beta1.IngressSpec", - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "$ref": "v1beta1.IngressBackend", - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default." - }, - "tls": { - "type": "array", - "items": { - "$ref": "v1beta1.IngressTLS" - }, - "description": "TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI." - }, - "rules": { - "type": "array", - "items": { - "$ref": "v1beta1.IngressRule" - }, - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend." - } - } - }, - "v1beta1.IngressBackend": { - "id": "v1beta1.IngressBackend", - "description": "IngressBackend describes all endpoints for a given service and port.", - "required": [ - "serviceName", - "servicePort" - ], - "properties": { - "serviceName": { - "type": "string", - "description": "Specifies the name of the referenced service." - }, - "servicePort": { - "type": "string", - "description": "Specifies the port of the referenced service." - } - } - }, - "v1beta1.IngressTLS": { - "id": "v1beta1.IngressTLS", - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified." - }, - "secretName": { - "type": "string", - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing." - } - } - }, - "v1beta1.IngressRule": { - "id": "v1beta1.IngressRule", - "description": "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", - "properties": { - "host": { - "type": "string", - "description": "Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the\n\t IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue." - }, - "http": { - "$ref": "v1beta1.HTTPIngressRuleValue" - } - } - }, - "v1beta1.HTTPIngressRuleValue": { - "id": "v1beta1.HTTPIngressRuleValue", - "description": "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://\u003chost\u003e/\u003cpath\u003e?\u003csearchpart\u003e -\u003e backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", - "required": [ - "paths" - ], - "properties": { - "paths": { - "type": "array", - "items": { - "$ref": "v1beta1.HTTPIngressPath" - }, - "description": "A collection of paths that map requests to backends." - } - } - }, - "v1beta1.HTTPIngressPath": { - "id": "v1beta1.HTTPIngressPath", - "description": "HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.", - "required": [ - "backend" - ], - "properties": { - "path": { - "type": "string", - "description": "Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. If unspecified, the path defaults to a catch all sending traffic to the backend." - }, - "backend": { - "$ref": "v1beta1.IngressBackend", - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to." - } - } - }, - "v1beta1.IngressStatus": { - "id": "v1beta1.IngressStatus", - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "$ref": "v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer." - } - } - }, - "v1.LoadBalancerStatus": { - "id": "v1.LoadBalancerStatus", - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "type": "array", - "items": { - "$ref": "v1.LoadBalancerIngress" - }, - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points." - } - } - }, - "v1.LoadBalancerIngress": { - "id": "v1.LoadBalancerIngress", - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "ip": { - "type": "string", - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)" - }, - "hostname": { - "type": "string", - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)" - } - } - }, - "v1beta1.ReplicaSetList": { - "id": "v1beta1.ReplicaSetList", - "description": "ReplicaSetList is a collection of ReplicaSets.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1beta1.ReplicaSet" - }, - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller" - } - } - }, - "v1beta1.ReplicaSet": { - "id": "v1beta1.ReplicaSet", - "description": "DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1beta1.ReplicaSetSpec", - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1beta1.ReplicaSetStatus", - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1beta1.ReplicaSetSpec": { - "id": "v1beta1.ReplicaSetSpec", - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "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": { - "type": "integer", - "format": "int32", - "description": "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": { - "$ref": "v1.LabelSelector", - "description": "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" - }, - "template": { - "$ref": "v1.PodTemplateSpec", - "description": "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" - } - } - }, - "v1beta1.ReplicaSetStatus": { - "id": "v1beta1.ReplicaSetStatus", - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "type": "integer", - "format": "int32", - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller" - }, - "fullyLabeledReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset." - }, - "readyReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of ready replicas for this replica set." - }, - "availableReplicas": { - "type": "integer", - "format": "int32", - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set." - }, - "observedGeneration": { - "type": "integer", - "format": "int64", - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet." - }, - "conditions": { - "type": "array", - "items": { - "$ref": "v1beta1.ReplicaSetCondition" - }, - "description": "Represents the latest available observations of a replica set's current state." - } - } - }, - "v1beta1.ReplicaSetCondition": { - "id": "v1beta1.ReplicaSetCondition", - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "type": { - "type": "string", - "description": "Type of replica set condition." - }, - "status": { - "type": "string", - "description": "Status of the condition, one of True, False, Unknown." - }, - "lastTransitionTime": { - "type": "string", - "description": "The last time the condition transitioned from one status to another." - }, - "reason": { - "type": "string", - "description": "The reason for the condition's last transition." - }, - "message": { - "type": "string", - "description": "A human readable message indicating details about the transition." - } - } - }, - "v1.APIResourceList": { - "id": "v1.APIResourceList", - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "required": [ - "groupVersion", - "resources" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "groupVersion": { - "type": "string", - "description": "groupVersion is the group and version this APIResourceList is for." - }, - "resources": { - "type": "array", - "items": { - "$ref": "v1.APIResource" - }, - "description": "resources contains the name of the resources and if they are namespaced." - } - } - }, - "v1.APIResource": { - "id": "v1.APIResource", - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "required": [ - "name", - "singularName", - "namespaced", - "kind", - "verbs" - ], - "properties": { - "name": { - "type": "string", - "description": "name is the plural name of the resource." - }, - "singularName": { - "type": "string", - "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface." - }, - "namespaced": { - "type": "boolean", - "description": "namespaced indicates if a resource is namespaced or not." - }, - "group": { - "type": "string", - "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\"." - }, - "version": { - "type": "string", - "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\"." - }, - "kind": { - "type": "string", - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')" - }, - "verbs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)" - }, - "shortNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "shortNames is a list of suggested short names of the resource." - }, - "categories": { - "type": "array", - "items": { - "type": "string" - }, - "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')" - } - } - } - } - } diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/federation.json b/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/federation.json deleted file mode 100644 index cb6deba1c..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/federation.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "", - "basePath": "https://10.10.10.10:6443", - "resourcePath": "/apis/federation", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/apis/federation", - "description": "get information of a group", - "operations": [ - { - "type": "v1.APIGroup", - "method": "GET", - "summary": "get information of a group", - "nickname": "getAPIGroup", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1.APIGroup": { - "id": "v1.APIGroup", - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "required": [ - "name", - "versions", - "serverAddressByClientCIDRs" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "name": { - "type": "string", - "description": "name is the name of the group." - }, - "versions": { - "type": "array", - "items": { - "$ref": "v1.GroupVersionForDiscovery" - }, - "description": "versions are the versions supported in this group." - }, - "preferredVersion": { - "$ref": "v1.GroupVersionForDiscovery", - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." - }, - "serverAddressByClientCIDRs": { - "type": "array", - "items": { - "$ref": "v1.ServerAddressByClientCIDR" - }, - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP." - } - } - }, - "v1.GroupVersionForDiscovery": { - "id": "v1.GroupVersionForDiscovery", - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "required": [ - "groupVersion", - "version" - ], - "properties": { - "groupVersion": { - "type": "string", - "description": "groupVersion specifies the API group and version in the form \"group/version\"" - }, - "version": { - "type": "string", - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion." - } - } - }, - "v1.ServerAddressByClientCIDR": { - "id": "v1.ServerAddressByClientCIDR", - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "required": [ - "clientCIDR", - "serverAddress" - ], - "properties": { - "clientCIDR": { - "type": "string", - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use." - }, - "serverAddress": { - "type": "string", - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port." - } - } - } - } - } diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/logs.json b/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/logs.json deleted file mode 100644 index e8fae7c9a..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/logs.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "", - "basePath": "https://10.10.10.10:6443", - "resourcePath": "/logs", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/logs/{logpath}", - "description": "get log files", - "operations": [ - { - "type": "void", - "method": "GET", - "nickname": "logFileHandler", - "parameters": [ - { - "type": "string", - "paramType": "path", - "name": "logpath", - "description": "path to the log", - "required": true, - "allowMultiple": false - } - ] - } - ] - }, - { - "path": "/logs", - "description": "get log files", - "operations": [ - { - "type": "void", - "method": "GET", - "nickname": "logFileListHandler", - "parameters": [] - } - ] - } - ], - "models": {} - } diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/resourceListing.json b/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/resourceListing.json deleted file mode 100644 index 6d3771635..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/resourceListing.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apis": [ - { - "path": "/version", - "description": "git code version from which this is built" - }, - { - "path": "/apis", - "description": "get available API versions" - }, - { - "path": "/logs", - "description": "get log files" - }, - { - "path": "/apis/federation/v1beta1", - "description": "API at /apis/federation/v1beta1" - }, - { - "path": "/apis/federation", - "description": "get information of a group" - }, - { - "path": "/api/v1", - "description": "API at /api/v1" - }, - { - "path": "/api", - "description": "get available API versions" - }, - { - "path": "/apis/extensions/v1beta1", - "description": "API at /apis/extensions/v1beta1" - }, - { - "path": "/apis/extensions", - "description": "get information of a group" - } - ], - "apiVersion": "", - "info": { - "title": "", - "description": "" - } - } diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/v1.json b/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/v1.json deleted file mode 100644 index 0e79209b0..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/v1.json +++ /dev/null @@ -1,5841 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "v1", - "basePath": "https://10.10.10.10:6443", - "resourcePath": "/api/v1", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/api/v1/namespaces/{namespace}/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ConfigMapList", - "method": "GET", - "summary": "list or watch objects of kind ConfigMap", - "nickname": "listNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMapList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ConfigMap", - "method": "POST", - "summary": "create a ConfigMap", - "nickname": "createNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ConfigMap", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ConfigMap" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ConfigMap", - "nickname": "deletecollectionNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ConfigMap", - "nickname": "watchNamespacedConfigMapList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/configmaps/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ConfigMap", - "method": "GET", - "summary": "read the specified ConfigMap", - "nickname": "readNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ConfigMap", - "method": "PUT", - "summary": "replace the specified ConfigMap", - "nickname": "replaceNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.ConfigMap", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.ConfigMap", - "method": "PATCH", - "summary": "partially update the specified ConfigMap", - "nickname": "patchNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMap" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ConfigMap", - "nickname": "deleteNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/configmaps/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ConfigMap", - "nickname": "watchNamespacedConfigMap", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ConfigMap", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ConfigMapList", - "method": "GET", - "summary": "list or watch objects of kind ConfigMap", - "nickname": "listConfigMapForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ConfigMapList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/configmaps", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ConfigMap", - "nickname": "watchConfigMapListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EventList", - "method": "GET", - "summary": "list or watch objects of kind Event", - "nickname": "listNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EventList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Event", - "method": "POST", - "summary": "create an Event", - "nickname": "createNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Event" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Event", - "nickname": "deletecollectionNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Event", - "nickname": "watchNamespacedEventList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/events/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Event", - "method": "GET", - "summary": "read the specified Event", - "nickname": "readNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Event", - "method": "PUT", - "summary": "replace the specified Event", - "nickname": "replaceNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Event", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Event", - "method": "PATCH", - "summary": "partially update the specified Event", - "nickname": "patchNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Event" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete an Event", - "nickname": "deleteNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/events/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Event", - "nickname": "watchNamespacedEvent", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Event", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.EventList", - "method": "GET", - "summary": "list or watch objects of kind Event", - "nickname": "listEventForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.EventList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/events", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Event", - "nickname": "watchEventListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.NamespaceList", - "method": "GET", - "summary": "list or watch objects of kind Namespace", - "nickname": "listNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.NamespaceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "POST", - "summary": "create a Namespace", - "nickname": "createNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Namespace" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Namespace", - "nickname": "watchNamespaceList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Namespace", - "method": "GET", - "summary": "read the specified Namespace", - "nickname": "readNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PUT", - "summary": "replace the specified Namespace", - "nickname": "replaceNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PATCH", - "summary": "partially update the specified Namespace", - "nickname": "patchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Namespace", - "nickname": "deleteNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Namespace", - "nickname": "watchNamespace", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{name}/finalize", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Namespace", - "method": "PUT", - "summary": "replace finalize of the specified Namespace", - "nickname": "replaceNamespaceFinalize", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Namespace", - "method": "GET", - "summary": "read status of the specified Namespace", - "nickname": "readNamespaceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PUT", - "summary": "replace status of the specified Namespace", - "nickname": "replaceNamespaceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Namespace", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Namespace", - "method": "PATCH", - "summary": "partially update status of the specified Namespace", - "nickname": "patchNamespaceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Namespace", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Namespace" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.SecretList", - "method": "GET", - "summary": "list or watch objects of kind Secret", - "nickname": "listNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.SecretList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Secret", - "method": "POST", - "summary": "create a Secret", - "nickname": "createNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Secret" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Secret", - "nickname": "deletecollectionNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Secret", - "nickname": "watchNamespacedSecretList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/secrets/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Secret", - "method": "GET", - "summary": "read the specified Secret", - "nickname": "readNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Secret", - "method": "PUT", - "summary": "replace the specified Secret", - "nickname": "replaceNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Secret", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Secret", - "method": "PATCH", - "summary": "partially update the specified Secret", - "nickname": "patchNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Secret" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Secret", - "nickname": "deleteNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/secrets/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Secret", - "nickname": "watchNamespacedSecret", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Secret", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.SecretList", - "method": "GET", - "summary": "list or watch objects of kind Secret", - "nickname": "listSecretForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.SecretList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/secrets", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Secret", - "nickname": "watchSecretListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceList", - "method": "GET", - "summary": "list or watch objects of kind Service", - "nickname": "listNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "POST", - "summary": "create a Service", - "nickname": "createNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Service" - }, - { - "code": 202, - "message": "Accepted", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of Service", - "nickname": "deletecollectionNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Service", - "nickname": "watchNamespacedServiceList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Service", - "method": "GET", - "summary": "read the specified Service", - "nickname": "readNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PUT", - "summary": "replace the specified Service", - "nickname": "replaceNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PATCH", - "summary": "partially update the specified Service", - "nickname": "patchNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a Service", - "nickname": "deleteNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/namespaces/{namespace}/services/{name}", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind Service", - "nickname": "watchNamespacedService", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.ServiceList", - "method": "GET", - "summary": "list or watch objects of kind Service", - "nickname": "listServiceForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.ServiceList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/watch/services", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of Service", - "nickname": "watchServiceListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "limit", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "continue", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/api/v1/namespaces/{namespace}/services/{name}/status", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.Service", - "method": "GET", - "summary": "read status of the specified Service", - "nickname": "readNamespacedServiceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PUT", - "summary": "replace status of the specified Service", - "nickname": "replaceNamespacedServiceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Service", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - }, - { - "code": 201, - "message": "Created", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Service", - "method": "PATCH", - "summary": "partially update status of the specified Service", - "nickname": "patchNamespacedServiceStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the Service", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Service" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, - { - "path": "/api/v1", - "description": "API at /api/v1", - "operations": [ - { - "type": "v1.APIResourceList", - "method": "GET", - "summary": "get available resources", - "nickname": "getAPIResources", - "parameters": [], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ] - } - ] - } - ], - "models": { - "v1.ConfigMapList": { - "id": "v1.ConfigMapList", - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.ConfigMap" - }, - "description": "Items is the list of ConfigMaps." - } - } - }, - "v1.ListMeta": { - "id": "v1.ListMeta", - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "selfLink": { - "type": "string", - "description": "selfLink is a URL representing this object. Populated by the system. Read-only." - }, - "resourceVersion": { - "type": "string", - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "continue": { - "type": "string", - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response." - } - } - }, - "v1.ConfigMap": { - "id": "v1.ConfigMap", - "description": "ConfigMap holds configuration data for pods to consume.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "data": { - "type": "object", - "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'." - } - } - }, - "v1.ObjectMeta": { - "id": "v1.ObjectMeta", - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "name": { - "type": "string", - "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "generateName": { - "type": "string", - "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" - }, - "namespace": { - "type": "string", - "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" - }, - "selfLink": { - "type": "string", - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." - }, - "uid": { - "type": "string", - "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "resourceVersion": { - "type": "string", - "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "generation": { - "type": "integer", - "format": "int64", - "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only." - }, - "creationTimestamp": { - "type": "string", - "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "deletionTimestamp": { - "type": "string", - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "deletionGracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." - }, - "labels": { - "type": "object", - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" - }, - "annotations": { - "type": "object", - "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" - }, - "ownerReferences": { - "type": "array", - "items": { - "$ref": "v1.OwnerReference" - }, - "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller." - }, - "initializers": { - "$ref": "v1.Initializers", - "description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user." - }, - "finalizers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed." - }, - "clusterName": { - "type": "string", - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." - } - } - }, - "v1.OwnerReference": { - "id": "v1.OwnerReference", - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "properties": { - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "kind": { - "type": "string", - "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "name": { - "type": "string", - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "controller": { - "type": "boolean", - "description": "If true, this reference points to the managing controller." - }, - "blockOwnerDeletion": { - "type": "boolean", - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." - } - } - }, - "v1.Initializers": { - "id": "v1.Initializers", - "description": "Initializers tracks the progress of initialization.", - "required": [ - "pending" - ], - "properties": { - "pending": { - "type": "array", - "items": { - "$ref": "v1.Initializer" - }, - "description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients." - }, - "result": { - "$ref": "v1.Status", - "description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion." - } - } - }, - "v1.Initializer": { - "id": "v1.Initializer", - "description": "Initializer is information about an initializer that has not yet completed.", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "name of the process that is responsible for initializing this object." - } - } - }, - "v1.Status": { - "id": "v1.Status", - "description": "Status is a return value for calls that don't return other objects.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "status": { - "type": "string", - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - }, - "message": { - "type": "string", - "description": "A human-readable description of the status of this operation." - }, - "reason": { - "type": "string", - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." - }, - "details": { - "$ref": "v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." - }, - "code": { - "type": "integer", - "format": "int32", - "description": "Suggested HTTP return code for this status, 0 if not set." - } - } - }, - "v1.StatusDetails": { - "id": "v1.StatusDetails", - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "name": { - "type": "string", - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)." - }, - "group": { - "type": "string", - "description": "The group attribute of the resource associated with the status StatusReason." - }, - "kind": { - "type": "string", - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "uid": { - "type": "string", - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids" - }, - "causes": { - "type": "array", - "items": { - "$ref": "v1.StatusCause" - }, - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes." - }, - "retryAfterSeconds": { - "type": "integer", - "format": "int32", - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action." - } - } - }, - "v1.StatusCause": { - "id": "v1.StatusCause", - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "reason": { - "type": "string", - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available." - }, - "message": { - "type": "string", - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader." - }, - "field": { - "type": "string", - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"" - } - } - }, - "v1.WatchEvent": { - "id": "v1.WatchEvent", - "required": [ - "type", - "object" - ], - "properties": { - "type": { - "type": "string" - }, - "object": { - "type": "string" - } - } - }, - "v1.Patch": { - "id": "v1.Patch", - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - "properties": {} - }, - "v1.DeleteOptions": { - "id": "v1.DeleteOptions", - "description": "DeleteOptions may be provided when deleting an API object.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "gracePeriodSeconds": { - "type": "integer", - "format": "int64", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." - }, - "preconditions": { - "$ref": "v1.Preconditions", - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." - }, - "orphanDependents": { - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." - }, - "propagationPolicy": { - "$ref": "v1.DeletionPropagation", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." - } - } - }, - "v1.Preconditions": { - "id": "v1.Preconditions", - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "uid": { - "$ref": "types.UID", - "description": "Specifies the target UID." - } - } - }, - "types.UID": { - "id": "types.UID", - "properties": {} - }, - "v1.DeletionPropagation": { - "id": "v1.DeletionPropagation", - "properties": {} - }, - "v1.EventList": { - "id": "v1.EventList", - "description": "EventList is a list of events.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Event" - }, - "description": "List of events" - } - } - }, - "v1.Event": { - "id": "v1.Event", - "description": "Event is a report of an event somewhere in the cluster.", - "required": [ - "metadata", - "involvedObject" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "involvedObject": { - "$ref": "v1.ObjectReference", - "description": "The object that this event is about." - }, - "reason": { - "type": "string", - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status." - }, - "message": { - "type": "string", - "description": "A human-readable description of the status of this operation." - }, - "source": { - "$ref": "v1.EventSource", - "description": "The component reporting this event. Should be a short machine understandable string." - }, - "firstTimestamp": { - "type": "string", - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" - }, - "lastTimestamp": { - "type": "string", - "description": "The time at which the most recent occurrence of this event was recorded." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "The number of times this event has occurred." - }, - "type": { - "type": "string", - "description": "Type of this event (Normal, Warning), new types could be added in the future" - } - } - }, - "v1.ObjectReference": { - "id": "v1.ObjectReference", - "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", - "properties": { - "kind": { - "type": "string", - "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "namespace": { - "type": "string", - "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/" - }, - "name": { - "type": "string", - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" - }, - "uid": { - "type": "string", - "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids" - }, - "apiVersion": { - "type": "string", - "description": "API version of the referent." - }, - "resourceVersion": { - "type": "string", - "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" - }, - "fieldPath": { - "type": "string", - "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object." - } - } - }, - "v1.EventSource": { - "id": "v1.EventSource", - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "type": "string", - "description": "Component from which the event is generated." - }, - "host": { - "type": "string", - "description": "Node name on which the event is generated." - } - } - }, - "v1.NamespaceList": { - "id": "v1.NamespaceList", - "description": "NamespaceList is a list of Namespaces.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Namespace" - }, - "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/" - } - } - }, - "v1.Namespace": { - "id": "v1.Namespace", - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.NamespaceSpec", - "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.NamespaceStatus", - "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.NamespaceSpec": { - "id": "v1.NamespaceSpec", - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "type": "array", - "items": { - "$ref": "v1.FinalizerName" - }, - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers" - } - } - }, - "v1.FinalizerName": { - "id": "v1.FinalizerName", - "properties": {} - }, - "v1.NamespaceStatus": { - "id": "v1.NamespaceStatus", - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "phase": { - "type": "string", - "description": "Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases" - } - } - }, - "v1.SecretList": { - "id": "v1.SecretList", - "description": "SecretList is a list of Secret.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Secret" - }, - "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret" - } - } - }, - "v1.Secret": { - "id": "v1.Secret", - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "data": { - "type": "object", - "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4" - }, - "stringData": { - "type": "object", - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API." - }, - "type": { - "type": "string", - "description": "Used to facilitate programmatic handling of secret data." - } - } - }, - "v1.ServiceList": { - "id": "v1.ServiceList", - "description": "ServiceList holds a list of services.", - "required": [ - "items" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "items": { - "type": "array", - "items": { - "$ref": "v1.Service" - }, - "description": "List of services" - } - } - }, - "v1.Service": { - "id": "v1.Service", - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "metadata": { - "$ref": "v1.ObjectMeta", - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" - }, - "spec": { - "$ref": "v1.ServiceSpec", - "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - }, - "status": { - "$ref": "v1.ServiceStatus", - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" - } - } - }, - "v1.ServiceSpec": { - "id": "v1.ServiceSpec", - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "ports": { - "type": "array", - "items": { - "$ref": "v1.ServicePort" - }, - "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies" - }, - "selector": { - "type": "object", - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/" - }, - "clusterIP": { - "type": "string", - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies" - }, - "type": { - "type": "string", - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services " - }, - "externalIPs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system." - }, - "sessionAffinity": { - "type": "string", - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies" - }, - "loadBalancerIP": { - "type": "string", - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature." - }, - "loadBalancerSourceRanges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/" - }, - "externalName": { - "type": "string", - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid DNS name and requires Type to be ExternalName." - }, - "externalTrafficPolicy": { - "type": "string", - "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading." - }, - "healthCheckNodePort": { - "type": "integer", - "format": "int32", - "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local." - }, - "publishNotReadyAddresses": { - "type": "boolean", - "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field." - }, - "sessionAffinityConfig": { - "$ref": "v1.SessionAffinityConfig", - "description": "sessionAffinityConfig contains the configurations of session affinity." - } - } - }, - "v1.ServicePort": { - "id": "v1.ServicePort", - "description": "ServicePort contains information on service's port.", - "required": [ - "port" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service." - }, - "protocol": { - "type": "string", - "description": "The IP protocol for this port. Supports \"TCP\" and \"UDP\". Default is TCP." - }, - "port": { - "type": "integer", - "format": "int32", - "description": "The port that will be exposed by this service." - }, - "targetPort": { - "type": "string", - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" - }, - "nodePort": { - "type": "integer", - "format": "int32", - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport" - } - } - }, - "v1.SessionAffinityConfig": { - "id": "v1.SessionAffinityConfig", - "description": "SessionAffinityConfig represents the configurations of session affinity.", - "properties": { - "clientIP": { - "$ref": "v1.ClientIPConfig", - "description": "clientIP contains the configurations of Client IP based session affinity." - } - } - }, - "v1.ClientIPConfig": { - "id": "v1.ClientIPConfig", - "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", - "properties": { - "timeoutSeconds": { - "type": "integer", - "format": "int32", - "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours)." - } - } - }, - "v1.ServiceStatus": { - "id": "v1.ServiceStatus", - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "$ref": "v1.LoadBalancerStatus", - "description": "LoadBalancer contains the current status of the load-balancer, if one is present." - } - } - }, - "v1.LoadBalancerStatus": { - "id": "v1.LoadBalancerStatus", - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "type": "array", - "items": { - "$ref": "v1.LoadBalancerIngress" - }, - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points." - } - } - }, - "v1.LoadBalancerIngress": { - "id": "v1.LoadBalancerIngress", - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "ip": { - "type": "string", - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)" - }, - "hostname": { - "type": "string", - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)" - } - } - }, - "v1.APIResourceList": { - "id": "v1.APIResourceList", - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "required": [ - "groupVersion", - "resources" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "groupVersion": { - "type": "string", - "description": "groupVersion is the group and version this APIResourceList is for." - }, - "resources": { - "type": "array", - "items": { - "$ref": "v1.APIResource" - }, - "description": "resources contains the name of the resources and if they are namespaced." - } - } - }, - "v1.APIResource": { - "id": "v1.APIResource", - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "required": [ - "name", - "singularName", - "namespaced", - "kind", - "verbs" - ], - "properties": { - "name": { - "type": "string", - "description": "name is the plural name of the resource." - }, - "singularName": { - "type": "string", - "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface." - }, - "namespaced": { - "type": "boolean", - "description": "namespaced indicates if a resource is namespaced or not." - }, - "group": { - "type": "string", - "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\"." - }, - "version": { - "type": "string", - "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\"." - }, - "kind": { - "type": "string", - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')" - }, - "verbs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)" - }, - "shortNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "shortNames is a list of suggested short names of the resource." - }, - "categories": { - "type": "array", - "items": { - "type": "string" - }, - "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')" - } - } - } - } - } diff --git a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/version.json b/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/version.json deleted file mode 100644 index 1b60aa14b..000000000 --- a/vendor/k8s.io/kubernetes/federation/apis/swagger-spec/version.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "swaggerVersion": "1.2", - "apiVersion": "", - "basePath": "https://10.10.10.10:6443", - "resourcePath": "/version", - "info": { - "title": "", - "description": "" - }, - "apis": [ - { - "path": "/version", - "description": "git code version from which this is built", - "operations": [ - { - "type": "version.Info", - "method": "GET", - "summary": "get the code version", - "nickname": "getCodeVersion", - "parameters": [], - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ] - } - ] - } - ], - "models": { - "version.Info": { - "id": "version.Info", - "required": [ - "major", - "minor", - "gitVersion", - "gitCommit", - "gitTreeState", - "buildDate", - "goVersion", - "compiler", - "platform" - ], - "properties": { - "major": { - "type": "string" - }, - "minor": { - "type": "string" - }, - "gitVersion": { - "type": "string" - }, - "gitCommit": { - "type": "string" - }, - "gitTreeState": { - "type": "string" - }, - "buildDate": { - "type": "string" - }, - "goVersion": { - "type": "string" - }, - "compiler": { - "type": "string" - }, - "platform": { - "type": "string" - } - } - } - } - } diff --git a/vendor/k8s.io/kubernetes/federation/client/cache/BUILD b/vendor/k8s.io/kubernetes/federation/client/cache/BUILD deleted file mode 100644 index f0690fafe..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/cache/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["cluster_cache.go"], - importpath = "k8s.io/kubernetes/federation/client/cache", - deps = [ - "//federation/apis/federation/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"], -) diff --git a/vendor/k8s.io/kubernetes/federation/client/cache/cluster_cache.go b/vendor/k8s.io/kubernetes/federation/client/cache/cluster_cache.go deleted file mode 100644 index 82c30de3e..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/cache/cluster_cache.go +++ /dev/null @@ -1,35 +0,0 @@ -/* -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 cache - -import ( - kubecache "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/federation/apis/federation/v1beta1" -) - -// StoreToClusterLister makes a Store have the List method of the metav1.ClusterInterface -// The Store must contain (only) clusters. -type StoreToClusterLister struct { - kubecache.Store -} - -func (s *StoreToClusterLister) List() (clusters v1beta1.ClusterList, err error) { - for _, m := range s.Store.List() { - clusters.Items = append(clusters.Items, *(m.(*v1beta1.Cluster))) - } - return clusters, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/BUILD b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/BUILD deleted file mode 100644 index 9ff95a31b..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/BUILD +++ /dev/null @@ -1,50 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clientset.go", - "doc.go", - "import_known_versions.go", - ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset", - deps = [ - "//federation/apis/federation/install:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/batch/v1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/core/v1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/client/clientset_generated/federation_clientset/fake:all-srcs", - "//federation/client/clientset_generated/federation_clientset/scheme:all-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1:all-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/batch/v1:all-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/core/v1:all-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1:all-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/clientset.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/clientset.go deleted file mode 100644 index 38b461c11..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/clientset.go +++ /dev/null @@ -1,186 +0,0 @@ -/* -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 federation_clientset - -import ( - glog "github.com/golang/glog" - discovery "k8s.io/client-go/discovery" - rest "k8s.io/client-go/rest" - flowcontrol "k8s.io/client-go/util/flowcontrol" - autoscalingv1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1" - batchv1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1" - corev1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1" - extensionsv1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1" - federationv1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1" -) - -type Interface interface { - Discovery() discovery.DiscoveryInterface - AutoscalingV1() autoscalingv1.AutoscalingV1Interface - // Deprecated: please explicitly pick a version if possible. - Autoscaling() autoscalingv1.AutoscalingV1Interface - BatchV1() batchv1.BatchV1Interface - // Deprecated: please explicitly pick a version if possible. - Batch() batchv1.BatchV1Interface - CoreV1() corev1.CoreV1Interface - // Deprecated: please explicitly pick a version if possible. - Core() corev1.CoreV1Interface - ExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface - // Deprecated: please explicitly pick a version if possible. - Extensions() extensionsv1beta1.ExtensionsV1beta1Interface - FederationV1beta1() federationv1beta1.FederationV1beta1Interface - // Deprecated: please explicitly pick a version if possible. - Federation() federationv1beta1.FederationV1beta1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - autoscalingV1 *autoscalingv1.AutoscalingV1Client - batchV1 *batchv1.BatchV1Client - coreV1 *corev1.CoreV1Client - extensionsV1beta1 *extensionsv1beta1.ExtensionsV1beta1Client - federationV1beta1 *federationv1beta1.FederationV1beta1Client -} - -// AutoscalingV1 retrieves the AutoscalingV1Client -func (c *Clientset) AutoscalingV1() autoscalingv1.AutoscalingV1Interface { - return c.autoscalingV1 -} - -// Deprecated: Autoscaling retrieves the default version of AutoscalingClient. -// Please explicitly pick a version. -func (c *Clientset) Autoscaling() autoscalingv1.AutoscalingV1Interface { - return c.autoscalingV1 -} - -// BatchV1 retrieves the BatchV1Client -func (c *Clientset) BatchV1() batchv1.BatchV1Interface { - return c.batchV1 -} - -// Deprecated: Batch retrieves the default version of BatchClient. -// Please explicitly pick a version. -func (c *Clientset) Batch() batchv1.BatchV1Interface { - return c.batchV1 -} - -// CoreV1 retrieves the CoreV1Client -func (c *Clientset) CoreV1() corev1.CoreV1Interface { - return c.coreV1 -} - -// Deprecated: Core retrieves the default version of CoreClient. -// Please explicitly pick a version. -func (c *Clientset) Core() corev1.CoreV1Interface { - return c.coreV1 -} - -// ExtensionsV1beta1 retrieves the ExtensionsV1beta1Client -func (c *Clientset) ExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface { - return c.extensionsV1beta1 -} - -// Deprecated: Extensions retrieves the default version of ExtensionsClient. -// Please explicitly pick a version. -func (c *Clientset) Extensions() extensionsv1beta1.ExtensionsV1beta1Interface { - return c.extensionsV1beta1 -} - -// FederationV1beta1 retrieves the FederationV1beta1Client -func (c *Clientset) FederationV1beta1() federationv1beta1.FederationV1beta1Interface { - return c.federationV1beta1 -} - -// Deprecated: Federation retrieves the default version of FederationClient. -// Please explicitly pick a version. -func (c *Clientset) Federation() federationv1beta1.FederationV1beta1Interface { - return c.federationV1beta1 -} - -// Discovery retrieves the DiscoveryClient -func (c *Clientset) Discovery() discovery.DiscoveryInterface { - if c == nil { - return nil - } - return c.DiscoveryClient -} - -// NewForConfig creates a new Clientset for the given config. -func NewForConfig(c *rest.Config) (*Clientset, error) { - configShallowCopy := *c - if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 { - configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst) - } - var cs Clientset - var err error - cs.autoscalingV1, err = autoscalingv1.NewForConfig(&configShallowCopy) - if err != nil { - return nil, err - } - cs.batchV1, err = batchv1.NewForConfig(&configShallowCopy) - if err != nil { - return nil, err - } - cs.coreV1, err = corev1.NewForConfig(&configShallowCopy) - if err != nil { - return nil, err - } - cs.extensionsV1beta1, err = extensionsv1beta1.NewForConfig(&configShallowCopy) - if err != nil { - return nil, err - } - cs.federationV1beta1, err = federationv1beta1.NewForConfig(&configShallowCopy) - if err != nil { - return nil, err - } - - cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) - if err != nil { - glog.Errorf("failed to create the DiscoveryClient: %v", err) - return nil, err - } - return &cs, nil -} - -// NewForConfigOrDie creates a new Clientset for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *Clientset { - var cs Clientset - cs.autoscalingV1 = autoscalingv1.NewForConfigOrDie(c) - cs.batchV1 = batchv1.NewForConfigOrDie(c) - cs.coreV1 = corev1.NewForConfigOrDie(c) - cs.extensionsV1beta1 = extensionsv1beta1.NewForConfigOrDie(c) - cs.federationV1beta1 = federationv1beta1.NewForConfigOrDie(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) - return &cs -} - -// New creates a new Clientset for the given RESTClient. -func New(c rest.Interface) *Clientset { - var cs Clientset - cs.autoscalingV1 = autoscalingv1.New(c) - cs.batchV1 = batchv1.New(c) - cs.coreV1 = corev1.New(c) - cs.extensionsV1beta1 = extensionsv1beta1.New(c) - cs.federationV1beta1 = federationv1beta1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/BUILD b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/BUILD deleted file mode 100644 index 2bbe84f4b..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/BUILD +++ /dev/null @@ -1,55 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clientset_generated.go", - "doc.go", - "register.go", - ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/batch/v1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/core/v1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/core/v1/fake:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/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/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/discovery/fake:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go deleted file mode 100644 index 86f581013..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go +++ /dev/null @@ -1,119 +0,0 @@ -/* -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 fake - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/discovery" - fakediscovery "k8s.io/client-go/discovery/fake" - "k8s.io/client-go/testing" - clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - autoscalingv1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1" - fakeautoscalingv1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake" - batchv1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1" - fakebatchv1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake" - corev1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1" - fakecorev1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake" - extensionsv1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1" - fakeextensionsv1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake" - federationv1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1" - fakefederationv1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake" -) - -// NewSimpleClientset returns a clientset that will respond with the provided objects. -// It's backed by a very simple object tracker that processes creates, updates and deletions as-is, -// without applying any validations and/or defaults. It shouldn't be considered a replacement -// for a real clientset and is mostly useful in simple unit tests. -func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder()) - for _, obj := range objects { - if err := o.Add(obj); err != nil { - panic(err) - } - } - - fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - - return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} -} - -// Clientset implements clientset.Interface. Meant to be embedded into a -// struct to get a default implementation. This makes faking out just the method -// you want to test easier. -type Clientset struct { - testing.Fake - discovery *fakediscovery.FakeDiscovery -} - -func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return c.discovery -} - -var _ clientset.Interface = &Clientset{} - -// AutoscalingV1 retrieves the AutoscalingV1Client -func (c *Clientset) AutoscalingV1() autoscalingv1.AutoscalingV1Interface { - return &fakeautoscalingv1.FakeAutoscalingV1{Fake: &c.Fake} -} - -// Autoscaling retrieves the AutoscalingV1Client -func (c *Clientset) Autoscaling() autoscalingv1.AutoscalingV1Interface { - return &fakeautoscalingv1.FakeAutoscalingV1{Fake: &c.Fake} -} - -// BatchV1 retrieves the BatchV1Client -func (c *Clientset) BatchV1() batchv1.BatchV1Interface { - return &fakebatchv1.FakeBatchV1{Fake: &c.Fake} -} - -// Batch retrieves the BatchV1Client -func (c *Clientset) Batch() batchv1.BatchV1Interface { - return &fakebatchv1.FakeBatchV1{Fake: &c.Fake} -} - -// CoreV1 retrieves the CoreV1Client -func (c *Clientset) CoreV1() corev1.CoreV1Interface { - return &fakecorev1.FakeCoreV1{Fake: &c.Fake} -} - -// Core retrieves the CoreV1Client -func (c *Clientset) Core() corev1.CoreV1Interface { - return &fakecorev1.FakeCoreV1{Fake: &c.Fake} -} - -// ExtensionsV1beta1 retrieves the ExtensionsV1beta1Client -func (c *Clientset) ExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface { - return &fakeextensionsv1beta1.FakeExtensionsV1beta1{Fake: &c.Fake} -} - -// Extensions retrieves the ExtensionsV1beta1Client -func (c *Clientset) Extensions() extensionsv1beta1.ExtensionsV1beta1Interface { - return &fakeextensionsv1beta1.FakeExtensionsV1beta1{Fake: &c.Fake} -} - -// FederationV1beta1 retrieves the FederationV1beta1Client -func (c *Clientset) FederationV1beta1() federationv1beta1.FederationV1beta1Interface { - return &fakefederationv1beta1.FakeFederationV1beta1{Fake: &c.Fake} -} - -// Federation retrieves the FederationV1beta1Client -func (c *Clientset) Federation() federationv1beta1.FederationV1beta1Interface { - return &fakefederationv1beta1.FakeFederationV1beta1{Fake: &c.Fake} -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/import_known_versions.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/import_known_versions.go deleted file mode 100644 index eb0723660..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/import_known_versions.go +++ /dev/null @@ -1,25 +0,0 @@ -/* -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 federation_clientset - -// These imports are the API groups the client will support. -import ( - _ "k8s.io/kubernetes/federation/apis/federation/install" -) - -func init() { -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD deleted file mode 100644 index a98699060..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "autoscaling_client.go", - "doc.go", - "generated_expansion.go", - "horizontalpodautoscaler.go", - ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1", - deps = [ - "//federation/client/clientset_generated/federation_clientset/scheme:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1: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/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go deleted file mode 100644 index e7e660bdd..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go +++ /dev/null @@ -1,138 +0,0 @@ -/* -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 fake - -import ( - autoscaling_v1 "k8s.io/api/autoscaling/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface -type FakeHorizontalPodAutoscalers struct { - Fake *FakeAutoscalingV1 - ns string -} - -var horizontalpodautoscalersResource = schema.GroupVersionResource{Group: "autoscaling", Version: "v1", Resource: "horizontalpodautoscalers"} - -var horizontalpodautoscalersKind = schema.GroupVersionKind{Group: "autoscaling", Version: "v1", Kind: "HorizontalPodAutoscaler"} - -// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any. -func (c *FakeHorizontalPodAutoscalers) Get(name string, options v1.GetOptions) (result *autoscaling_v1.HorizontalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(horizontalpodautoscalersResource, c.ns, name), &autoscaling_v1.HorizontalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err -} - -// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors. -func (c *FakeHorizontalPodAutoscalers) List(opts v1.ListOptions) (result *autoscaling_v1.HorizontalPodAutoscalerList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(horizontalpodautoscalersResource, horizontalpodautoscalersKind, c.ns, opts), &autoscaling_v1.HorizontalPodAutoscalerList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &autoscaling_v1.HorizontalPodAutoscalerList{} - for _, item := range obj.(*autoscaling_v1.HorizontalPodAutoscalerList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers. -func (c *FakeHorizontalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(horizontalpodautoscalersResource, c.ns, opts)) - -} - -// Create takes the representation of a horizontalPodAutoscaler and creates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. -func (c *FakeHorizontalPodAutoscalers) Create(horizontalPodAutoscaler *autoscaling_v1.HorizontalPodAutoscaler) (result *autoscaling_v1.HorizontalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &autoscaling_v1.HorizontalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err -} - -// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. -func (c *FakeHorizontalPodAutoscalers) Update(horizontalPodAutoscaler *autoscaling_v1.HorizontalPodAutoscaler) (result *autoscaling_v1.HorizontalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &autoscaling_v1.HorizontalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeHorizontalPodAutoscalers) UpdateStatus(horizontalPodAutoscaler *autoscaling_v1.HorizontalPodAutoscaler) (*autoscaling_v1.HorizontalPodAutoscaler, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(horizontalpodautoscalersResource, "status", c.ns, horizontalPodAutoscaler), &autoscaling_v1.HorizontalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err -} - -// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs. -func (c *FakeHorizontalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(horizontalpodautoscalersResource, c.ns, name), &autoscaling_v1.HorizontalPodAutoscaler{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeHorizontalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(horizontalpodautoscalersResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &autoscaling_v1.HorizontalPodAutoscalerList{}) - return err -} - -// Patch applies the patch and returns the patched horizontalPodAutoscaler. -func (c *FakeHorizontalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *autoscaling_v1.HorizontalPodAutoscaler, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, data, subresources...), &autoscaling_v1.HorizontalPodAutoscaler{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/horizontalpodautoscaler.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/horizontalpodautoscaler.go deleted file mode 100644 index 980221240..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/horizontalpodautoscaler.go +++ /dev/null @@ -1,172 +0,0 @@ -/* -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 ( - v1 "k8s.io/api/autoscaling/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface. -// A group's client should implement this interface. -type HorizontalPodAutoscalersGetter interface { - HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface -} - -// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources. -type HorizontalPodAutoscalerInterface interface { - Create(*v1.HorizontalPodAutoscaler) (*v1.HorizontalPodAutoscaler, error) - Update(*v1.HorizontalPodAutoscaler) (*v1.HorizontalPodAutoscaler, error) - UpdateStatus(*v1.HorizontalPodAutoscaler) (*v1.HorizontalPodAutoscaler, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.HorizontalPodAutoscaler, error) - List(opts meta_v1.ListOptions) (*v1.HorizontalPodAutoscalerList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.HorizontalPodAutoscaler, err error) - HorizontalPodAutoscalerExpansion -} - -// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface -type horizontalPodAutoscalers struct { - client rest.Interface - ns string -} - -// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers -func newHorizontalPodAutoscalers(c *AutoscalingV1Client, namespace string) *horizontalPodAutoscalers { - return &horizontalPodAutoscalers{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any. -func (c *horizontalPodAutoscalers) Get(name string, options meta_v1.GetOptions) (result *v1.HorizontalPodAutoscaler, err error) { - result = &v1.HorizontalPodAutoscaler{} - err = c.client.Get(). - Namespace(c.ns). - Resource("horizontalpodautoscalers"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors. -func (c *horizontalPodAutoscalers) List(opts meta_v1.ListOptions) (result *v1.HorizontalPodAutoscalerList, err error) { - result = &v1.HorizontalPodAutoscalerList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("horizontalpodautoscalers"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers. -func (c *horizontalPodAutoscalers) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("horizontalpodautoscalers"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a horizontalPodAutoscaler and creates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. -func (c *horizontalPodAutoscalers) Create(horizontalPodAutoscaler *v1.HorizontalPodAutoscaler) (result *v1.HorizontalPodAutoscaler, err error) { - result = &v1.HorizontalPodAutoscaler{} - err = c.client.Post(). - Namespace(c.ns). - Resource("horizontalpodautoscalers"). - Body(horizontalPodAutoscaler). - Do(). - Into(result) - return -} - -// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. -func (c *horizontalPodAutoscalers) Update(horizontalPodAutoscaler *v1.HorizontalPodAutoscaler) (result *v1.HorizontalPodAutoscaler, err error) { - result = &v1.HorizontalPodAutoscaler{} - err = c.client.Put(). - Namespace(c.ns). - Resource("horizontalpodautoscalers"). - Name(horizontalPodAutoscaler.Name). - Body(horizontalPodAutoscaler). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). - -func (c *horizontalPodAutoscalers) UpdateStatus(horizontalPodAutoscaler *v1.HorizontalPodAutoscaler) (result *v1.HorizontalPodAutoscaler, err error) { - result = &v1.HorizontalPodAutoscaler{} - err = c.client.Put(). - Namespace(c.ns). - Resource("horizontalpodautoscalers"). - Name(horizontalPodAutoscaler.Name). - SubResource("status"). - Body(horizontalPodAutoscaler). - Do(). - Into(result) - return -} - -// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs. -func (c *horizontalPodAutoscalers) Delete(name string, options *meta_v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("horizontalpodautoscalers"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *horizontalPodAutoscalers) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("horizontalpodautoscalers"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched horizontalPodAutoscaler. -func (c *horizontalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.HorizontalPodAutoscaler, err error) { - result = &v1.HorizontalPodAutoscaler{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("horizontalpodautoscalers"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/fake_job.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/fake_job.go deleted file mode 100644 index b51c8f5cd..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/fake_job.go +++ /dev/null @@ -1,138 +0,0 @@ -/* -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 fake - -import ( - batch_v1 "k8s.io/api/batch/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeJobs implements JobInterface -type FakeJobs struct { - Fake *FakeBatchV1 - ns string -} - -var jobsResource = schema.GroupVersionResource{Group: "batch", Version: "v1", Resource: "jobs"} - -var jobsKind = schema.GroupVersionKind{Group: "batch", Version: "v1", Kind: "Job"} - -// Get takes name of the job, and returns the corresponding job object, and an error if there is any. -func (c *FakeJobs) Get(name string, options v1.GetOptions) (result *batch_v1.Job, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(jobsResource, c.ns, name), &batch_v1.Job{}) - - if obj == nil { - return nil, err - } - return obj.(*batch_v1.Job), err -} - -// List takes label and field selectors, and returns the list of Jobs that match those selectors. -func (c *FakeJobs) List(opts v1.ListOptions) (result *batch_v1.JobList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(jobsResource, jobsKind, c.ns, opts), &batch_v1.JobList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &batch_v1.JobList{} - for _, item := range obj.(*batch_v1.JobList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested jobs. -func (c *FakeJobs) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(jobsResource, c.ns, opts)) - -} - -// Create takes the representation of a job and creates it. Returns the server's representation of the job, and an error, if there is any. -func (c *FakeJobs) Create(job *batch_v1.Job) (result *batch_v1.Job, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(jobsResource, c.ns, job), &batch_v1.Job{}) - - if obj == nil { - return nil, err - } - return obj.(*batch_v1.Job), err -} - -// Update takes the representation of a job and updates it. Returns the server's representation of the job, and an error, if there is any. -func (c *FakeJobs) Update(job *batch_v1.Job) (result *batch_v1.Job, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(jobsResource, c.ns, job), &batch_v1.Job{}) - - if obj == nil { - return nil, err - } - return obj.(*batch_v1.Job), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeJobs) UpdateStatus(job *batch_v1.Job) (*batch_v1.Job, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(jobsResource, "status", c.ns, job), &batch_v1.Job{}) - - if obj == nil { - return nil, err - } - return obj.(*batch_v1.Job), err -} - -// Delete takes name of the job and deletes it. Returns an error if one occurs. -func (c *FakeJobs) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(jobsResource, c.ns, name), &batch_v1.Job{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeJobs) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(jobsResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &batch_v1.JobList{}) - return err -} - -// Patch applies the patch and returns the patched job. -func (c *FakeJobs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *batch_v1.Job, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(jobsResource, c.ns, name, data, subresources...), &batch_v1.Job{}) - - if obj == nil { - return nil, err - } - return obj.(*batch_v1.Job), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/job.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/job.go deleted file mode 100644 index 74e10550f..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/job.go +++ /dev/null @@ -1,172 +0,0 @@ -/* -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 ( - v1 "k8s.io/api/batch/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// JobsGetter has a method to return a JobInterface. -// A group's client should implement this interface. -type JobsGetter interface { - Jobs(namespace string) JobInterface -} - -// JobInterface has methods to work with Job resources. -type JobInterface interface { - Create(*v1.Job) (*v1.Job, error) - Update(*v1.Job) (*v1.Job, error) - UpdateStatus(*v1.Job) (*v1.Job, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Job, error) - List(opts meta_v1.ListOptions) (*v1.JobList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Job, err error) - JobExpansion -} - -// jobs implements JobInterface -type jobs struct { - client rest.Interface - ns string -} - -// newJobs returns a Jobs -func newJobs(c *BatchV1Client, namespace string) *jobs { - return &jobs{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the job, and returns the corresponding job object, and an error if there is any. -func (c *jobs) Get(name string, options meta_v1.GetOptions) (result *v1.Job, err error) { - result = &v1.Job{} - err = c.client.Get(). - Namespace(c.ns). - Resource("jobs"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Jobs that match those selectors. -func (c *jobs) List(opts meta_v1.ListOptions) (result *v1.JobList, err error) { - result = &v1.JobList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("jobs"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested jobs. -func (c *jobs) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("jobs"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a job and creates it. Returns the server's representation of the job, and an error, if there is any. -func (c *jobs) Create(job *v1.Job) (result *v1.Job, err error) { - result = &v1.Job{} - err = c.client.Post(). - Namespace(c.ns). - Resource("jobs"). - Body(job). - Do(). - Into(result) - return -} - -// Update takes the representation of a job and updates it. Returns the server's representation of the job, and an error, if there is any. -func (c *jobs) Update(job *v1.Job) (result *v1.Job, err error) { - result = &v1.Job{} - err = c.client.Put(). - Namespace(c.ns). - Resource("jobs"). - Name(job.Name). - Body(job). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). - -func (c *jobs) UpdateStatus(job *v1.Job) (result *v1.Job, err error) { - result = &v1.Job{} - err = c.client.Put(). - Namespace(c.ns). - Resource("jobs"). - Name(job.Name). - SubResource("status"). - Body(job). - Do(). - Into(result) - return -} - -// Delete takes name of the job and deletes it. Returns an error if one occurs. -func (c *jobs) Delete(name string, options *meta_v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("jobs"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *jobs) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("jobs"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched job. -func (c *jobs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Job, err error) { - result = &v1.Job{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("jobs"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/configmap.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/configmap.go deleted file mode 100644 index d1f66980b..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/configmap.go +++ /dev/null @@ -1,155 +0,0 @@ -/* -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 ( - v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// ConfigMapsGetter has a method to return a ConfigMapInterface. -// A group's client should implement this interface. -type ConfigMapsGetter interface { - ConfigMaps(namespace string) ConfigMapInterface -} - -// ConfigMapInterface has methods to work with ConfigMap resources. -type ConfigMapInterface interface { - Create(*v1.ConfigMap) (*v1.ConfigMap, error) - Update(*v1.ConfigMap) (*v1.ConfigMap, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ConfigMap, error) - List(opts meta_v1.ListOptions) (*v1.ConfigMapList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ConfigMap, err error) - ConfigMapExpansion -} - -// configMaps implements ConfigMapInterface -type configMaps struct { - client rest.Interface - ns string -} - -// newConfigMaps returns a ConfigMaps -func newConfigMaps(c *CoreV1Client, namespace string) *configMaps { - return &configMaps{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the configMap, and returns the corresponding configMap object, and an error if there is any. -func (c *configMaps) Get(name string, options meta_v1.GetOptions) (result *v1.ConfigMap, err error) { - result = &v1.ConfigMap{} - err = c.client.Get(). - Namespace(c.ns). - Resource("configmaps"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ConfigMaps that match those selectors. -func (c *configMaps) List(opts meta_v1.ListOptions) (result *v1.ConfigMapList, err error) { - result = &v1.ConfigMapList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("configmaps"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested configMaps. -func (c *configMaps) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("configmaps"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a configMap and creates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *configMaps) Create(configMap *v1.ConfigMap) (result *v1.ConfigMap, err error) { - result = &v1.ConfigMap{} - err = c.client.Post(). - Namespace(c.ns). - Resource("configmaps"). - Body(configMap). - Do(). - Into(result) - return -} - -// Update takes the representation of a configMap and updates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *configMaps) Update(configMap *v1.ConfigMap) (result *v1.ConfigMap, err error) { - result = &v1.ConfigMap{} - err = c.client.Put(). - Namespace(c.ns). - Resource("configmaps"). - Name(configMap.Name). - Body(configMap). - Do(). - Into(result) - return -} - -// Delete takes name of the configMap and deletes it. Returns an error if one occurs. -func (c *configMaps) Delete(name string, options *meta_v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("configmaps"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *configMaps) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("configmaps"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched configMap. -func (c *configMaps) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ConfigMap, err error) { - result = &v1.ConfigMap{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("configmaps"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/event.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/event.go deleted file mode 100644 index 8c9a91a34..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/event.go +++ /dev/null @@ -1,155 +0,0 @@ -/* -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 ( - v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// 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(*v1.Event) (*v1.Event, error) - Update(*v1.Event) (*v1.Event, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Event, error) - List(opts meta_v1.ListOptions) (*v1.EventList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Event, err error) - EventExpansion -} - -// events implements EventInterface -type events struct { - client rest.Interface - ns string -} - -// newEvents returns a Events -func newEvents(c *CoreV1Client, 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 meta_v1.GetOptions) (result *v1.Event, err error) { - result = &v1.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 meta_v1.ListOptions) (result *v1.EventList, err error) { - result = &v1.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 meta_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 *v1.Event) (result *v1.Event, err error) { - result = &v1.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 *v1.Event) (result *v1.Event, err error) { - result = &v1.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 *meta_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 *meta_v1.DeleteOptions, listOptions meta_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 *v1.Event, err error) { - result = &v1.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/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD deleted file mode 100644 index a74bbec58..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_configmap.go", - "fake_core_client.go", - "fake_event.go", - "fake_namespace.go", - "fake_namespace_expansion.go", - "fake_secret.go", - "fake_service.go", - ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake", - deps = [ - "//federation/client/clientset_generated/federation_clientset/typed/core/v1: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/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema: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/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_configmap.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_configmap.go deleted file mode 100644 index 262a4c5e8..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_configmap.go +++ /dev/null @@ -1,126 +0,0 @@ -/* -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 fake - -import ( - core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeConfigMaps implements ConfigMapInterface -type FakeConfigMaps struct { - Fake *FakeCoreV1 - ns string -} - -var configmapsResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "configmaps"} - -var configmapsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ConfigMap"} - -// Get takes name of the configMap, and returns the corresponding configMap object, and an error if there is any. -func (c *FakeConfigMaps) Get(name string, options v1.GetOptions) (result *core_v1.ConfigMap, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(configmapsResource, c.ns, name), &core_v1.ConfigMap{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.ConfigMap), err -} - -// List takes label and field selectors, and returns the list of ConfigMaps that match those selectors. -func (c *FakeConfigMaps) List(opts v1.ListOptions) (result *core_v1.ConfigMapList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(configmapsResource, configmapsKind, c.ns, opts), &core_v1.ConfigMapList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &core_v1.ConfigMapList{} - for _, item := range obj.(*core_v1.ConfigMapList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested configMaps. -func (c *FakeConfigMaps) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(configmapsResource, c.ns, opts)) - -} - -// Create takes the representation of a configMap and creates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *FakeConfigMaps) Create(configMap *core_v1.ConfigMap) (result *core_v1.ConfigMap, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(configmapsResource, c.ns, configMap), &core_v1.ConfigMap{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.ConfigMap), err -} - -// Update takes the representation of a configMap and updates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *FakeConfigMaps) Update(configMap *core_v1.ConfigMap) (result *core_v1.ConfigMap, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(configmapsResource, c.ns, configMap), &core_v1.ConfigMap{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.ConfigMap), err -} - -// Delete takes name of the configMap and deletes it. Returns an error if one occurs. -func (c *FakeConfigMaps) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(configmapsResource, c.ns, name), &core_v1.ConfigMap{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeConfigMaps) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(configmapsResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &core_v1.ConfigMapList{}) - return err -} - -// Patch applies the patch and returns the patched configMap. -func (c *FakeConfigMaps) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.ConfigMap, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(configmapsResource, c.ns, name, data, subresources...), &core_v1.ConfigMap{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.ConfigMap), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_event.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_event.go deleted file mode 100644 index 60d6b45a5..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_event.go +++ /dev/null @@ -1,126 +0,0 @@ -/* -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 fake - -import ( - core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeEvents implements EventInterface -type FakeEvents struct { - Fake *FakeCoreV1 - ns string -} - -var eventsResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "events"} - -var eventsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Event"} - -// Get takes name of the event, and returns the corresponding event object, and an error if there is any. -func (c *FakeEvents) Get(name string, options v1.GetOptions) (result *core_v1.Event, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(eventsResource, c.ns, name), &core_v1.Event{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Event), err -} - -// List takes label and field selectors, and returns the list of Events that match those selectors. -func (c *FakeEvents) List(opts v1.ListOptions) (result *core_v1.EventList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(eventsResource, eventsKind, c.ns, opts), &core_v1.EventList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &core_v1.EventList{} - for _, item := range obj.(*core_v1.EventList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested events. -func (c *FakeEvents) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(eventsResource, c.ns, opts)) - -} - -// 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 *FakeEvents) Create(event *core_v1.Event) (result *core_v1.Event, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(eventsResource, c.ns, event), &core_v1.Event{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Event), err -} - -// 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 *FakeEvents) Update(event *core_v1.Event) (result *core_v1.Event, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(eventsResource, c.ns, event), &core_v1.Event{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Event), err -} - -// Delete takes name of the event and deletes it. Returns an error if one occurs. -func (c *FakeEvents) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(eventsResource, c.ns, name), &core_v1.Event{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeEvents) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(eventsResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &core_v1.EventList{}) - return err -} - -// Patch applies the patch and returns the patched event. -func (c *FakeEvents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Event, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, data, subresources...), &core_v1.Event{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Event), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_namespace.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_namespace.go deleted file mode 100644 index 8c03925a7..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_namespace.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -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 fake - -import ( - core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeNamespaces implements NamespaceInterface -type FakeNamespaces struct { - Fake *FakeCoreV1 -} - -var namespacesResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "namespaces"} - -var namespacesKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Namespace"} - -// Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any. -func (c *FakeNamespaces) Get(name string, options v1.GetOptions) (result *core_v1.Namespace, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(namespacesResource, name), &core_v1.Namespace{}) - if obj == nil { - return nil, err - } - return obj.(*core_v1.Namespace), err -} - -// List takes label and field selectors, and returns the list of Namespaces that match those selectors. -func (c *FakeNamespaces) List(opts v1.ListOptions) (result *core_v1.NamespaceList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(namespacesResource, namespacesKind, opts), &core_v1.NamespaceList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &core_v1.NamespaceList{} - for _, item := range obj.(*core_v1.NamespaceList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested namespaces. -func (c *FakeNamespaces) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(namespacesResource, opts)) -} - -// Create takes the representation of a namespace and creates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *FakeNamespaces) Create(namespace *core_v1.Namespace) (result *core_v1.Namespace, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(namespacesResource, namespace), &core_v1.Namespace{}) - if obj == nil { - return nil, err - } - return obj.(*core_v1.Namespace), err -} - -// Update takes the representation of a namespace and updates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *FakeNamespaces) Update(namespace *core_v1.Namespace) (result *core_v1.Namespace, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(namespacesResource, namespace), &core_v1.Namespace{}) - if obj == nil { - return nil, err - } - return obj.(*core_v1.Namespace), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeNamespaces) UpdateStatus(namespace *core_v1.Namespace) (*core_v1.Namespace, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(namespacesResource, "status", namespace), &core_v1.Namespace{}) - if obj == nil { - return nil, err - } - return obj.(*core_v1.Namespace), err -} - -// Delete takes name of the namespace and deletes it. Returns an error if one occurs. -func (c *FakeNamespaces) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(namespacesResource, name), &core_v1.Namespace{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeNamespaces) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(namespacesResource, listOptions) - - _, err := c.Fake.Invokes(action, &core_v1.NamespaceList{}) - return err -} - -// Patch applies the patch and returns the patched namespace. -func (c *FakeNamespaces) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Namespace, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(namespacesResource, name, data, subresources...), &core_v1.Namespace{}) - if obj == nil { - return nil, err - } - return obj.(*core_v1.Namespace), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_namespace_expansion.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_namespace_expansion.go deleted file mode 100644 index 7b2cf605d..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_namespace_expansion.go +++ /dev/null @@ -1,37 +0,0 @@ -/* -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 fake - -import ( - "k8s.io/api/core/v1" - core "k8s.io/client-go/testing" -) - -func (c *FakeNamespaces) Finalize(namespace *v1.Namespace) (*v1.Namespace, error) { - action := core.CreateActionImpl{} - action.Verb = "create" - action.Resource = namespacesResource - action.Subresource = "finalize" - action.Object = namespace - - obj, err := c.Fake.Invokes(action, namespace) - if obj == nil { - return nil, err - } - - return obj.(*v1.Namespace), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_secret.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_secret.go deleted file mode 100644 index 58c6dc9c6..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_secret.go +++ /dev/null @@ -1,126 +0,0 @@ -/* -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 fake - -import ( - core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeSecrets implements SecretInterface -type FakeSecrets struct { - Fake *FakeCoreV1 - ns string -} - -var secretsResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "secrets"} - -var secretsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Secret"} - -// Get takes name of the secret, and returns the corresponding secret object, and an error if there is any. -func (c *FakeSecrets) Get(name string, options v1.GetOptions) (result *core_v1.Secret, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(secretsResource, c.ns, name), &core_v1.Secret{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Secret), err -} - -// List takes label and field selectors, and returns the list of Secrets that match those selectors. -func (c *FakeSecrets) List(opts v1.ListOptions) (result *core_v1.SecretList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(secretsResource, secretsKind, c.ns, opts), &core_v1.SecretList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &core_v1.SecretList{} - for _, item := range obj.(*core_v1.SecretList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested secrets. -func (c *FakeSecrets) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(secretsResource, c.ns, opts)) - -} - -// Create takes the representation of a secret and creates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *FakeSecrets) Create(secret *core_v1.Secret) (result *core_v1.Secret, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(secretsResource, c.ns, secret), &core_v1.Secret{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Secret), err -} - -// Update takes the representation of a secret and updates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *FakeSecrets) Update(secret *core_v1.Secret) (result *core_v1.Secret, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(secretsResource, c.ns, secret), &core_v1.Secret{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Secret), err -} - -// Delete takes name of the secret and deletes it. Returns an error if one occurs. -func (c *FakeSecrets) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(secretsResource, c.ns, name), &core_v1.Secret{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeSecrets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(secretsResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &core_v1.SecretList{}) - return err -} - -// Patch applies the patch and returns the patched secret. -func (c *FakeSecrets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Secret, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(secretsResource, c.ns, name, data, subresources...), &core_v1.Secret{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Secret), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_service.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_service.go deleted file mode 100644 index c734ff5b5..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_service.go +++ /dev/null @@ -1,138 +0,0 @@ -/* -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 fake - -import ( - core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeServices implements ServiceInterface -type FakeServices struct { - Fake *FakeCoreV1 - ns string -} - -var servicesResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "services"} - -var servicesKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Service"} - -// Get takes name of the service, and returns the corresponding service object, and an error if there is any. -func (c *FakeServices) Get(name string, options v1.GetOptions) (result *core_v1.Service, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(servicesResource, c.ns, name), &core_v1.Service{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Service), err -} - -// List takes label and field selectors, and returns the list of Services that match those selectors. -func (c *FakeServices) List(opts v1.ListOptions) (result *core_v1.ServiceList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(servicesResource, servicesKind, c.ns, opts), &core_v1.ServiceList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &core_v1.ServiceList{} - for _, item := range obj.(*core_v1.ServiceList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested services. -func (c *FakeServices) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(servicesResource, c.ns, opts)) - -} - -// Create takes the representation of a service and creates it. Returns the server's representation of the service, and an error, if there is any. -func (c *FakeServices) Create(service *core_v1.Service) (result *core_v1.Service, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(servicesResource, c.ns, service), &core_v1.Service{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Service), err -} - -// Update takes the representation of a service and updates it. Returns the server's representation of the service, and an error, if there is any. -func (c *FakeServices) Update(service *core_v1.Service) (result *core_v1.Service, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(servicesResource, c.ns, service), &core_v1.Service{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Service), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeServices) UpdateStatus(service *core_v1.Service) (*core_v1.Service, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(servicesResource, "status", c.ns, service), &core_v1.Service{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Service), err -} - -// Delete takes name of the service and deletes it. Returns an error if one occurs. -func (c *FakeServices) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(servicesResource, c.ns, name), &core_v1.Service{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeServices) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(servicesResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &core_v1.ServiceList{}) - return err -} - -// Patch applies the patch and returns the patched service. -func (c *FakeServices) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Service, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, name, data, subresources...), &core_v1.Service{}) - - if obj == nil { - return nil, err - } - return obj.(*core_v1.Service), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/namespace.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/namespace.go deleted file mode 100644 index 34f16aa6d..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/namespace.go +++ /dev/null @@ -1,161 +0,0 @@ -/* -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 ( - v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// NamespacesGetter has a method to return a NamespaceInterface. -// A group's client should implement this interface. -type NamespacesGetter interface { - Namespaces() NamespaceInterface -} - -// NamespaceInterface has methods to work with Namespace resources. -type NamespaceInterface interface { - Create(*v1.Namespace) (*v1.Namespace, error) - Update(*v1.Namespace) (*v1.Namespace, error) - UpdateStatus(*v1.Namespace) (*v1.Namespace, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Namespace, error) - List(opts meta_v1.ListOptions) (*v1.NamespaceList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Namespace, err error) - NamespaceExpansion -} - -// namespaces implements NamespaceInterface -type namespaces struct { - client rest.Interface -} - -// newNamespaces returns a Namespaces -func newNamespaces(c *CoreV1Client) *namespaces { - return &namespaces{ - client: c.RESTClient(), - } -} - -// Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any. -func (c *namespaces) Get(name string, options meta_v1.GetOptions) (result *v1.Namespace, err error) { - result = &v1.Namespace{} - err = c.client.Get(). - Resource("namespaces"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Namespaces that match those selectors. -func (c *namespaces) List(opts meta_v1.ListOptions) (result *v1.NamespaceList, err error) { - result = &v1.NamespaceList{} - err = c.client.Get(). - Resource("namespaces"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested namespaces. -func (c *namespaces) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Resource("namespaces"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a namespace and creates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *namespaces) Create(namespace *v1.Namespace) (result *v1.Namespace, err error) { - result = &v1.Namespace{} - err = c.client.Post(). - Resource("namespaces"). - Body(namespace). - Do(). - Into(result) - return -} - -// Update takes the representation of a namespace and updates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *namespaces) Update(namespace *v1.Namespace) (result *v1.Namespace, err error) { - result = &v1.Namespace{} - err = c.client.Put(). - Resource("namespaces"). - Name(namespace.Name). - Body(namespace). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). - -func (c *namespaces) UpdateStatus(namespace *v1.Namespace) (result *v1.Namespace, err error) { - result = &v1.Namespace{} - err = c.client.Put(). - Resource("namespaces"). - Name(namespace.Name). - SubResource("status"). - Body(namespace). - Do(). - Into(result) - return -} - -// Delete takes name of the namespace and deletes it. Returns an error if one occurs. -func (c *namespaces) Delete(name string, options *meta_v1.DeleteOptions) error { - return c.client.Delete(). - Resource("namespaces"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *namespaces) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { - return c.client.Delete(). - Resource("namespaces"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched namespace. -func (c *namespaces) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Namespace, err error) { - result = &v1.Namespace{} - err = c.client.Patch(pt). - Resource("namespaces"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/namespace_expansion.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/namespace_expansion.go deleted file mode 100644 index 17effe29c..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/namespace_expansion.go +++ /dev/null @@ -1,31 +0,0 @@ -/* -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 v1 - -import "k8s.io/api/core/v1" - -// The NamespaceExpansion interface allows manually adding extra methods to the NamespaceInterface. -type NamespaceExpansion interface { - Finalize(item *v1.Namespace) (*v1.Namespace, error) -} - -// Finalize takes the representation of a namespace to update. Returns the server's representation of the namespace, and an error, if it occurs. -func (c *namespaces) Finalize(namespace *v1.Namespace) (result *v1.Namespace, err error) { - result = &v1.Namespace{} - err = c.client.Put().Resource("namespaces").Name(namespace.Name).SubResource("finalize").Body(namespace).Do().Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/secret.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/secret.go deleted file mode 100644 index 1551a51de..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/secret.go +++ /dev/null @@ -1,155 +0,0 @@ -/* -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 ( - v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// SecretsGetter has a method to return a SecretInterface. -// A group's client should implement this interface. -type SecretsGetter interface { - Secrets(namespace string) SecretInterface -} - -// SecretInterface has methods to work with Secret resources. -type SecretInterface interface { - Create(*v1.Secret) (*v1.Secret, error) - Update(*v1.Secret) (*v1.Secret, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Secret, error) - List(opts meta_v1.ListOptions) (*v1.SecretList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Secret, err error) - SecretExpansion -} - -// secrets implements SecretInterface -type secrets struct { - client rest.Interface - ns string -} - -// newSecrets returns a Secrets -func newSecrets(c *CoreV1Client, namespace string) *secrets { - return &secrets{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the secret, and returns the corresponding secret object, and an error if there is any. -func (c *secrets) Get(name string, options meta_v1.GetOptions) (result *v1.Secret, err error) { - result = &v1.Secret{} - err = c.client.Get(). - Namespace(c.ns). - Resource("secrets"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Secrets that match those selectors. -func (c *secrets) List(opts meta_v1.ListOptions) (result *v1.SecretList, err error) { - result = &v1.SecretList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("secrets"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested secrets. -func (c *secrets) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("secrets"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a secret and creates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *secrets) Create(secret *v1.Secret) (result *v1.Secret, err error) { - result = &v1.Secret{} - err = c.client.Post(). - Namespace(c.ns). - Resource("secrets"). - Body(secret). - Do(). - Into(result) - return -} - -// Update takes the representation of a secret and updates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *secrets) Update(secret *v1.Secret) (result *v1.Secret, err error) { - result = &v1.Secret{} - err = c.client.Put(). - Namespace(c.ns). - Resource("secrets"). - Name(secret.Name). - Body(secret). - Do(). - Into(result) - return -} - -// Delete takes name of the secret and deletes it. Returns an error if one occurs. -func (c *secrets) Delete(name string, options *meta_v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("secrets"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *secrets) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("secrets"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched secret. -func (c *secrets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Secret, err error) { - result = &v1.Secret{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("secrets"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/service.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/service.go deleted file mode 100644 index 47c4ea240..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/service.go +++ /dev/null @@ -1,172 +0,0 @@ -/* -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 ( - v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// ServicesGetter has a method to return a ServiceInterface. -// A group's client should implement this interface. -type ServicesGetter interface { - Services(namespace string) ServiceInterface -} - -// ServiceInterface has methods to work with Service resources. -type ServiceInterface interface { - Create(*v1.Service) (*v1.Service, error) - Update(*v1.Service) (*v1.Service, error) - UpdateStatus(*v1.Service) (*v1.Service, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Service, error) - List(opts meta_v1.ListOptions) (*v1.ServiceList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Service, err error) - ServiceExpansion -} - -// services implements ServiceInterface -type services struct { - client rest.Interface - ns string -} - -// newServices returns a Services -func newServices(c *CoreV1Client, namespace string) *services { - return &services{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the service, and returns the corresponding service object, and an error if there is any. -func (c *services) Get(name string, options meta_v1.GetOptions) (result *v1.Service, err error) { - result = &v1.Service{} - err = c.client.Get(). - Namespace(c.ns). - Resource("services"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Services that match those selectors. -func (c *services) List(opts meta_v1.ListOptions) (result *v1.ServiceList, err error) { - result = &v1.ServiceList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("services"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested services. -func (c *services) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("services"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a service and creates it. Returns the server's representation of the service, and an error, if there is any. -func (c *services) Create(service *v1.Service) (result *v1.Service, err error) { - result = &v1.Service{} - err = c.client.Post(). - Namespace(c.ns). - Resource("services"). - Body(service). - Do(). - Into(result) - return -} - -// Update takes the representation of a service and updates it. Returns the server's representation of the service, and an error, if there is any. -func (c *services) Update(service *v1.Service) (result *v1.Service, err error) { - result = &v1.Service{} - err = c.client.Put(). - Namespace(c.ns). - Resource("services"). - Name(service.Name). - Body(service). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). - -func (c *services) UpdateStatus(service *v1.Service) (result *v1.Service, err error) { - result = &v1.Service{} - err = c.client.Put(). - Namespace(c.ns). - Resource("services"). - Name(service.Name). - SubResource("status"). - Body(service). - Do(). - Into(result) - return -} - -// Delete takes name of the service and deletes it. Returns an error if one occurs. -func (c *services) Delete(name string, options *meta_v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("services"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *services) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("services"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched service. -func (c *services) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Service, err error) { - result = &v1.Service{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("services"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD deleted file mode 100644 index 045f12f3f..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "daemonset.go", - "deployment.go", - "deployment_expansion.go", - "doc.go", - "extensions_client.go", - "generated_expansion.go", - "ingress.go", - "replicaset.go", - ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1", - deps = [ - "//federation/client/clientset_generated/federation_clientset/scheme:go_default_library", - "//vendor/k8s.io/api/extensions/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/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/daemonset.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/daemonset.go deleted file mode 100644 index f688789d5..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/daemonset.go +++ /dev/null @@ -1,172 +0,0 @@ -/* -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/extensions/v1beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// DaemonSetsGetter has a method to return a DaemonSetInterface. -// A group's client should implement this interface. -type DaemonSetsGetter interface { - DaemonSets(namespace string) DaemonSetInterface -} - -// DaemonSetInterface has methods to work with DaemonSet resources. -type DaemonSetInterface interface { - Create(*v1beta1.DaemonSet) (*v1beta1.DaemonSet, error) - Update(*v1beta1.DaemonSet) (*v1beta1.DaemonSet, error) - UpdateStatus(*v1beta1.DaemonSet) (*v1beta1.DaemonSet, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v1beta1.DaemonSet, error) - List(opts v1.ListOptions) (*v1beta1.DaemonSetList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.DaemonSet, err error) - DaemonSetExpansion -} - -// daemonSets implements DaemonSetInterface -type daemonSets struct { - client rest.Interface - ns string -} - -// newDaemonSets returns a DaemonSets -func newDaemonSets(c *ExtensionsV1beta1Client, namespace string) *daemonSets { - return &daemonSets{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any. -func (c *daemonSets) Get(name string, options v1.GetOptions) (result *v1beta1.DaemonSet, err error) { - result = &v1beta1.DaemonSet{} - err = c.client.Get(). - Namespace(c.ns). - Resource("daemonsets"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of DaemonSets that match those selectors. -func (c *daemonSets) List(opts v1.ListOptions) (result *v1beta1.DaemonSetList, err error) { - result = &v1beta1.DaemonSetList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("daemonsets"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested daemonSets. -func (c *daemonSets) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("daemonsets"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a daemonSet and creates it. Returns the server's representation of the daemonSet, and an error, if there is any. -func (c *daemonSets) Create(daemonSet *v1beta1.DaemonSet) (result *v1beta1.DaemonSet, err error) { - result = &v1beta1.DaemonSet{} - err = c.client.Post(). - Namespace(c.ns). - Resource("daemonsets"). - Body(daemonSet). - Do(). - Into(result) - return -} - -// Update takes the representation of a daemonSet and updates it. Returns the server's representation of the daemonSet, and an error, if there is any. -func (c *daemonSets) Update(daemonSet *v1beta1.DaemonSet) (result *v1beta1.DaemonSet, err error) { - result = &v1beta1.DaemonSet{} - err = c.client.Put(). - Namespace(c.ns). - Resource("daemonsets"). - Name(daemonSet.Name). - Body(daemonSet). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). - -func (c *daemonSets) UpdateStatus(daemonSet *v1beta1.DaemonSet) (result *v1beta1.DaemonSet, err error) { - result = &v1beta1.DaemonSet{} - err = c.client.Put(). - Namespace(c.ns). - Resource("daemonsets"). - Name(daemonSet.Name). - SubResource("status"). - Body(daemonSet). - Do(). - Into(result) - return -} - -// Delete takes name of the daemonSet and deletes it. Returns an error if one occurs. -func (c *daemonSets) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("daemonsets"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *daemonSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("daemonsets"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched daemonSet. -func (c *daemonSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.DaemonSet, err error) { - result = &v1beta1.DaemonSet{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("daemonsets"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/deployment_expansion.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/deployment_expansion.go deleted file mode 100644 index 24734be6a..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/deployment_expansion.go +++ /dev/null @@ -1,29 +0,0 @@ -/* -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 - -import "k8s.io/api/extensions/v1beta1" - -// The DeploymentExpansion interface allows manually adding extra methods to the DeploymentInterface. -type DeploymentExpansion interface { - Rollback(*v1beta1.DeploymentRollback) error -} - -// Rollback applied the provided DeploymentRollback to the named deployment in the current namespace. -func (c *deployments) Rollback(deploymentRollback *v1beta1.DeploymentRollback) error { - return c.client.Post().Namespace(c.ns).Resource("deployments").Name(deploymentRollback.Name).SubResource("rollback").Body(deploymentRollback).Do().Error() -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/extensions_client.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/extensions_client.go deleted file mode 100644 index 2f50f3bb0..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/extensions_client.go +++ /dev/null @@ -1,103 +0,0 @@ -/* -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/extensions/v1beta1" - serializer "k8s.io/apimachinery/pkg/runtime/serializer" - rest "k8s.io/client-go/rest" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -type ExtensionsV1beta1Interface interface { - RESTClient() rest.Interface - DaemonSetsGetter - DeploymentsGetter - IngressesGetter - ReplicaSetsGetter -} - -// ExtensionsV1beta1Client is used to interact with features provided by the extensions group. -type ExtensionsV1beta1Client struct { - restClient rest.Interface -} - -func (c *ExtensionsV1beta1Client) DaemonSets(namespace string) DaemonSetInterface { - return newDaemonSets(c, namespace) -} - -func (c *ExtensionsV1beta1Client) Deployments(namespace string) DeploymentInterface { - return newDeployments(c, namespace) -} - -func (c *ExtensionsV1beta1Client) Ingresses(namespace string) IngressInterface { - return newIngresses(c, namespace) -} - -func (c *ExtensionsV1beta1Client) ReplicaSets(namespace string) ReplicaSetInterface { - return newReplicaSets(c, namespace) -} - -// NewForConfig creates a new ExtensionsV1beta1Client for the given config. -func NewForConfig(c *rest.Config) (*ExtensionsV1beta1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &ExtensionsV1beta1Client{client}, nil -} - -// NewForConfigOrDie creates a new ExtensionsV1beta1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *ExtensionsV1beta1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new ExtensionsV1beta1Client for the given RESTClient. -func New(c rest.Interface) *ExtensionsV1beta1Client { - return &ExtensionsV1beta1Client{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 *ExtensionsV1beta1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD deleted file mode 100644 index 4aed5799b..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_daemonset.go", - "fake_deployment.go", - "fake_deployment_expansion.go", - "fake_extensions_client.go", - "fake_ingress.go", - "fake_replicaset.go", - ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake", - deps = [ - "//federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1: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/apimachinery/pkg/runtime/schema: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/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_daemonset.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_daemonset.go deleted file mode 100644 index 3a3220a05..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_daemonset.go +++ /dev/null @@ -1,138 +0,0 @@ -/* -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 fake - -import ( - v1beta1 "k8s.io/api/extensions/v1beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeDaemonSets implements DaemonSetInterface -type FakeDaemonSets struct { - Fake *FakeExtensionsV1beta1 - ns string -} - -var daemonsetsResource = schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "daemonsets"} - -var daemonsetsKind = schema.GroupVersionKind{Group: "extensions", Version: "v1beta1", Kind: "DaemonSet"} - -// Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any. -func (c *FakeDaemonSets) Get(name string, options v1.GetOptions) (result *v1beta1.DaemonSet, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(daemonsetsResource, c.ns, name), &v1beta1.DaemonSet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.DaemonSet), err -} - -// List takes label and field selectors, and returns the list of DaemonSets that match those selectors. -func (c *FakeDaemonSets) List(opts v1.ListOptions) (result *v1beta1.DaemonSetList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(daemonsetsResource, daemonsetsKind, c.ns, opts), &v1beta1.DaemonSetList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1beta1.DaemonSetList{} - for _, item := range obj.(*v1beta1.DaemonSetList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested daemonSets. -func (c *FakeDaemonSets) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(daemonsetsResource, c.ns, opts)) - -} - -// Create takes the representation of a daemonSet and creates it. Returns the server's representation of the daemonSet, and an error, if there is any. -func (c *FakeDaemonSets) Create(daemonSet *v1beta1.DaemonSet) (result *v1beta1.DaemonSet, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(daemonsetsResource, c.ns, daemonSet), &v1beta1.DaemonSet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.DaemonSet), err -} - -// Update takes the representation of a daemonSet and updates it. Returns the server's representation of the daemonSet, and an error, if there is any. -func (c *FakeDaemonSets) Update(daemonSet *v1beta1.DaemonSet) (result *v1beta1.DaemonSet, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(daemonsetsResource, c.ns, daemonSet), &v1beta1.DaemonSet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.DaemonSet), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeDaemonSets) UpdateStatus(daemonSet *v1beta1.DaemonSet) (*v1beta1.DaemonSet, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(daemonsetsResource, "status", c.ns, daemonSet), &v1beta1.DaemonSet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.DaemonSet), err -} - -// Delete takes name of the daemonSet and deletes it. Returns an error if one occurs. -func (c *FakeDaemonSets) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(daemonsetsResource, c.ns, name), &v1beta1.DaemonSet{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeDaemonSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(daemonsetsResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &v1beta1.DaemonSetList{}) - return err -} - -// Patch applies the patch and returns the patched daemonSet. -func (c *FakeDaemonSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.DaemonSet, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, data, subresources...), &v1beta1.DaemonSet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.DaemonSet), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_deployment_expansion.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_deployment_expansion.go deleted file mode 100644 index af2bc0f71..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_deployment_expansion.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2014 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 fake - -import ( - "k8s.io/api/extensions/v1beta1" - core "k8s.io/client-go/testing" -) - -func (c *FakeDeployments) Rollback(deploymentRollback *v1beta1.DeploymentRollback) error { - action := core.CreateActionImpl{} - action.Verb = "create" - action.Resource = deploymentsResource - action.Subresource = "rollback" - action.Object = deploymentRollback - - _, err := c.Fake.Invokes(action, deploymentRollback) - return err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_extensions_client.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_extensions_client.go deleted file mode 100644 index b6a4cd5b6..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_extensions_client.go +++ /dev/null @@ -1,50 +0,0 @@ -/* -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 fake - -import ( - rest "k8s.io/client-go/rest" - testing "k8s.io/client-go/testing" - v1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1" -) - -type FakeExtensionsV1beta1 struct { - *testing.Fake -} - -func (c *FakeExtensionsV1beta1) DaemonSets(namespace string) v1beta1.DaemonSetInterface { - return &FakeDaemonSets{c, namespace} -} - -func (c *FakeExtensionsV1beta1) Deployments(namespace string) v1beta1.DeploymentInterface { - return &FakeDeployments{c, namespace} -} - -func (c *FakeExtensionsV1beta1) Ingresses(namespace string) v1beta1.IngressInterface { - return &FakeIngresses{c, namespace} -} - -func (c *FakeExtensionsV1beta1) ReplicaSets(namespace string) v1beta1.ReplicaSetInterface { - return &FakeReplicaSets{c, namespace} -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *FakeExtensionsV1beta1) RESTClient() rest.Interface { - var ret *rest.RESTClient - return ret -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_ingress.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_ingress.go deleted file mode 100644 index 5a6f93e0e..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_ingress.go +++ /dev/null @@ -1,138 +0,0 @@ -/* -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 fake - -import ( - v1beta1 "k8s.io/api/extensions/v1beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeIngresses implements IngressInterface -type FakeIngresses struct { - Fake *FakeExtensionsV1beta1 - ns string -} - -var ingressesResource = schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "ingresses"} - -var ingressesKind = schema.GroupVersionKind{Group: "extensions", Version: "v1beta1", Kind: "Ingress"} - -// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any. -func (c *FakeIngresses) Get(name string, options v1.GetOptions) (result *v1beta1.Ingress, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(ingressesResource, c.ns, name), &v1beta1.Ingress{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Ingress), err -} - -// List takes label and field selectors, and returns the list of Ingresses that match those selectors. -func (c *FakeIngresses) List(opts v1.ListOptions) (result *v1beta1.IngressList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(ingressesResource, ingressesKind, c.ns, opts), &v1beta1.IngressList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1beta1.IngressList{} - for _, item := range obj.(*v1beta1.IngressList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested ingresses. -func (c *FakeIngresses) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(ingressesResource, c.ns, opts)) - -} - -// Create takes the representation of a ingress and creates it. Returns the server's representation of the ingress, and an error, if there is any. -func (c *FakeIngresses) Create(ingress *v1beta1.Ingress) (result *v1beta1.Ingress, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(ingressesResource, c.ns, ingress), &v1beta1.Ingress{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Ingress), err -} - -// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any. -func (c *FakeIngresses) Update(ingress *v1beta1.Ingress) (result *v1beta1.Ingress, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(ingressesResource, c.ns, ingress), &v1beta1.Ingress{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Ingress), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeIngresses) UpdateStatus(ingress *v1beta1.Ingress) (*v1beta1.Ingress, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(ingressesResource, "status", c.ns, ingress), &v1beta1.Ingress{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Ingress), err -} - -// Delete takes name of the ingress and deletes it. Returns an error if one occurs. -func (c *FakeIngresses) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(ingressesResource, c.ns, name), &v1beta1.Ingress{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeIngresses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(ingressesResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &v1beta1.IngressList{}) - return err -} - -// Patch applies the patch and returns the patched ingress. -func (c *FakeIngresses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Ingress, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, name, data, subresources...), &v1beta1.Ingress{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Ingress), err -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/ingress.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/ingress.go deleted file mode 100644 index 2b5e1f071..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/ingress.go +++ /dev/null @@ -1,172 +0,0 @@ -/* -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/extensions/v1beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// IngressesGetter has a method to return a IngressInterface. -// A group's client should implement this interface. -type IngressesGetter interface { - Ingresses(namespace string) IngressInterface -} - -// IngressInterface has methods to work with Ingress resources. -type IngressInterface interface { - Create(*v1beta1.Ingress) (*v1beta1.Ingress, error) - Update(*v1beta1.Ingress) (*v1beta1.Ingress, error) - UpdateStatus(*v1beta1.Ingress) (*v1beta1.Ingress, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v1beta1.Ingress, error) - List(opts v1.ListOptions) (*v1beta1.IngressList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Ingress, err error) - IngressExpansion -} - -// ingresses implements IngressInterface -type ingresses struct { - client rest.Interface - ns string -} - -// newIngresses returns a Ingresses -func newIngresses(c *ExtensionsV1beta1Client, namespace string) *ingresses { - return &ingresses{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any. -func (c *ingresses) Get(name string, options v1.GetOptions) (result *v1beta1.Ingress, err error) { - result = &v1beta1.Ingress{} - err = c.client.Get(). - Namespace(c.ns). - Resource("ingresses"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Ingresses that match those selectors. -func (c *ingresses) List(opts v1.ListOptions) (result *v1beta1.IngressList, err error) { - result = &v1beta1.IngressList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("ingresses"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested ingresses. -func (c *ingresses) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("ingresses"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a ingress and creates it. Returns the server's representation of the ingress, and an error, if there is any. -func (c *ingresses) Create(ingress *v1beta1.Ingress) (result *v1beta1.Ingress, err error) { - result = &v1beta1.Ingress{} - err = c.client.Post(). - Namespace(c.ns). - Resource("ingresses"). - Body(ingress). - Do(). - Into(result) - return -} - -// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any. -func (c *ingresses) Update(ingress *v1beta1.Ingress) (result *v1beta1.Ingress, err error) { - result = &v1beta1.Ingress{} - err = c.client.Put(). - Namespace(c.ns). - Resource("ingresses"). - Name(ingress.Name). - Body(ingress). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). - -func (c *ingresses) UpdateStatus(ingress *v1beta1.Ingress) (result *v1beta1.Ingress, err error) { - result = &v1beta1.Ingress{} - err = c.client.Put(). - Namespace(c.ns). - Resource("ingresses"). - Name(ingress.Name). - SubResource("status"). - Body(ingress). - Do(). - Into(result) - return -} - -// Delete takes name of the ingress and deletes it. Returns an error if one occurs. -func (c *ingresses) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("ingresses"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *ingresses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("ingresses"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched ingress. -func (c *ingresses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Ingress, err error) { - result = &v1beta1.Ingress{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("ingresses"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/cluster.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/cluster.go deleted file mode 100644 index d02abdf67..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/cluster.go +++ /dev/null @@ -1,161 +0,0 @@ -/* -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 ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" -) - -// ClustersGetter has a method to return a ClusterInterface. -// A group's client should implement this interface. -type ClustersGetter interface { - Clusters() ClusterInterface -} - -// ClusterInterface has methods to work with Cluster resources. -type ClusterInterface interface { - Create(*v1beta1.Cluster) (*v1beta1.Cluster, error) - Update(*v1beta1.Cluster) (*v1beta1.Cluster, error) - UpdateStatus(*v1beta1.Cluster) (*v1beta1.Cluster, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v1beta1.Cluster, error) - List(opts v1.ListOptions) (*v1beta1.ClusterList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Cluster, err error) - ClusterExpansion -} - -// clusters implements ClusterInterface -type clusters struct { - client rest.Interface -} - -// newClusters returns a Clusters -func newClusters(c *FederationV1beta1Client) *clusters { - return &clusters{ - client: c.RESTClient(), - } -} - -// Get takes name of the cluster, and returns the corresponding cluster object, and an error if there is any. -func (c *clusters) Get(name string, options v1.GetOptions) (result *v1beta1.Cluster, err error) { - result = &v1beta1.Cluster{} - err = c.client.Get(). - Resource("clusters"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Clusters that match those selectors. -func (c *clusters) List(opts v1.ListOptions) (result *v1beta1.ClusterList, err error) { - result = &v1beta1.ClusterList{} - err = c.client.Get(). - Resource("clusters"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested clusters. -func (c *clusters) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Resource("clusters"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a cluster and creates it. Returns the server's representation of the cluster, and an error, if there is any. -func (c *clusters) Create(cluster *v1beta1.Cluster) (result *v1beta1.Cluster, err error) { - result = &v1beta1.Cluster{} - err = c.client.Post(). - Resource("clusters"). - Body(cluster). - Do(). - Into(result) - return -} - -// Update takes the representation of a cluster and updates it. Returns the server's representation of the cluster, and an error, if there is any. -func (c *clusters) Update(cluster *v1beta1.Cluster) (result *v1beta1.Cluster, err error) { - result = &v1beta1.Cluster{} - err = c.client.Put(). - Resource("clusters"). - Name(cluster.Name). - Body(cluster). - Do(). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). - -func (c *clusters) UpdateStatus(cluster *v1beta1.Cluster) (result *v1beta1.Cluster, err error) { - result = &v1beta1.Cluster{} - err = c.client.Put(). - Resource("clusters"). - Name(cluster.Name). - SubResource("status"). - Body(cluster). - Do(). - Into(result) - return -} - -// Delete takes name of the cluster and deletes it. Returns an error if one occurs. -func (c *clusters) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Resource("clusters"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *clusters) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Resource("clusters"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched cluster. -func (c *clusters) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Cluster, err error) { - result = &v1beta1.Cluster{} - err = c.client.Patch(pt). - Resource("clusters"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/fake_cluster.go b/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/fake_cluster.go deleted file mode 100644 index 94478a8c8..000000000 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/fake_cluster.go +++ /dev/null @@ -1,129 +0,0 @@ -/* -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 fake - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" - v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" -) - -// FakeClusters implements ClusterInterface -type FakeClusters struct { - Fake *FakeFederationV1beta1 -} - -var clustersResource = schema.GroupVersionResource{Group: "federation", Version: "v1beta1", Resource: "clusters"} - -var clustersKind = schema.GroupVersionKind{Group: "federation", Version: "v1beta1", Kind: "Cluster"} - -// Get takes name of the cluster, and returns the corresponding cluster object, and an error if there is any. -func (c *FakeClusters) Get(name string, options v1.GetOptions) (result *v1beta1.Cluster, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(clustersResource, name), &v1beta1.Cluster{}) - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Cluster), err -} - -// List takes label and field selectors, and returns the list of Clusters that match those selectors. -func (c *FakeClusters) List(opts v1.ListOptions) (result *v1beta1.ClusterList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(clustersResource, clustersKind, opts), &v1beta1.ClusterList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1beta1.ClusterList{} - for _, item := range obj.(*v1beta1.ClusterList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested clusters. -func (c *FakeClusters) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(clustersResource, opts)) -} - -// Create takes the representation of a cluster and creates it. Returns the server's representation of the cluster, and an error, if there is any. -func (c *FakeClusters) Create(cluster *v1beta1.Cluster) (result *v1beta1.Cluster, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(clustersResource, cluster), &v1beta1.Cluster{}) - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Cluster), err -} - -// Update takes the representation of a cluster and updates it. Returns the server's representation of the cluster, and an error, if there is any. -func (c *FakeClusters) Update(cluster *v1beta1.Cluster) (result *v1beta1.Cluster, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(clustersResource, cluster), &v1beta1.Cluster{}) - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Cluster), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeClusters) UpdateStatus(cluster *v1beta1.Cluster) (*v1beta1.Cluster, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(clustersResource, "status", cluster), &v1beta1.Cluster{}) - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Cluster), err -} - -// Delete takes name of the cluster and deletes it. Returns an error if one occurs. -func (c *FakeClusters) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(clustersResource, name), &v1beta1.Cluster{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeClusters) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(clustersResource, listOptions) - - _, err := c.Fake.Invokes(action, &v1beta1.ClusterList{}) - return err -} - -// Patch applies the patch and returns the patched cluster. -func (c *FakeClusters) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Cluster, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clustersResource, name, data, subresources...), &v1beta1.Cluster{}) - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Cluster), err -} diff --git a/vendor/k8s.io/kubernetes/federation/cluster/BUILD b/vendor/k8s.io/kubernetes/federation/cluster/BUILD deleted file mode 100644 index 7e76248ad..000000000 --- a/vendor/k8s.io/kubernetes/federation/cluster/BUILD +++ /dev/null @@ -1,14 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cluster/common.sh b/vendor/k8s.io/kubernetes/federation/cluster/common.sh deleted file mode 100644 index dba2354b4..000000000 --- a/vendor/k8s.io/kubernetes/federation/cluster/common.sh +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright 2014 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. - -# required: -# KUBE_ROOT: path of the root of the Kubernetes repository - -: "${KUBE_ROOT?Must set KUBE_ROOT env var}" - -# Provides the kubeconfig-federation-context() function -source "${KUBE_ROOT}/cluster/kube-util.sh" - -# For `kube::log::status` function -source "${KUBE_ROOT}/cluster/lib/logging.sh" - -# kubefed configuration -FEDERATION_NAME="${FEDERATION_NAME:-e2e-federation}" -FEDERATION_NAMESPACE=${FEDERATION_NAMESPACE:-federation-system} -FEDERATION_KUBE_CONTEXT="${FEDERATION_KUBE_CONTEXT:-${FEDERATION_NAME}}" -FEDERATION_USE_PV_FOR_ETCD=${FEDERATION_USE_PV_FOR_ETCD:-false} -HOST_CLUSTER_ZONE="${FEDERATION_HOST_CLUSTER_ZONE:-}" -# If $HOST_CLUSTER_ZONE isn't specified, arbitrarily choose -# last zone as the host cluster zone. -if [[ -z "${HOST_CLUSTER_ZONE}" ]]; then - E2E_ZONES_ARR=(${E2E_ZONES:-}) - if [[ ${#E2E_ZONES_ARR[@]} > 0 ]]; then - HOST_CLUSTER_ZONE=${E2E_ZONES_ARR[-1]} - fi -fi - -HOST_CLUSTER_CONTEXT="${FEDERATION_HOST_CLUSTER_CONTEXT:-}" -if [[ -z "${HOST_CLUSTER_CONTEXT}" ]]; then - # Sets ${CLUSTER_CONTEXT} - if [[ -z "${HOST_CLUSTER_ZONE:-}" ]]; then - echo "At least one of FEDERATION_HOST_CLUSTER_CONTEXT, FEDERATION_HOST_CLUSTER_ZONE or E2E_ZONES is required." - exit 1 - fi - kubeconfig-federation-context "${HOST_CLUSTER_ZONE:-}" - HOST_CLUSTER_CONTEXT="${CLUSTER_CONTEXT}" -fi - -function federation_cluster_contexts() { - local -r contexts=$("${KUBE_ROOT}/cluster/kubectl.sh" config get-contexts -o name) - federation_contexts=() - for context in ${contexts}; do - # Skip federation context - if [[ "${context}" == "${FEDERATION_KUBE_CONTEXT}" ]]; then - continue - fi - # Skip contexts not beginning with "federation" - if [[ "${context}" != federation* ]]; then - continue - fi - federation_contexts+=("${context}") - done - echo ${federation_contexts[@]:-} -} - - -host_kubectl="${KUBE_ROOT}/cluster/kubectl.sh --namespace=${FEDERATION_NAMESPACE}" - -function cleanup-federation-api-objects { - # This is a cleanup function. We cannot stop on errors here. So disable - # errexit in this function. - set +o errexit - - echo "Cleaning Federation control plane objects" - kube::log::status "Removing namespace \"${FEDERATION_NAMESPACE}\" from \"${FEDERATION_KUBE_CONTEXT}\"" - # Try deleting until the namespace is completely gone. - while $host_kubectl --context="${FEDERATION_KUBE_CONTEXT}" delete namespace "${FEDERATION_NAMESPACE}" >/dev/null 2>&1; do - # It is usually slower to remove a namespace because it involves - # performing a cascading deletion of all the resources in the - # namespace. So we sleep a little longer than other resources - # before retrying - sleep 5 - done - kube::log::status "Removed namespace \"${FEDERATION_NAMESPACE}\" from \"${FEDERATION_KUBE_CONTEXT}\"" - - # This is a big hammer. We get rid of federation-system namespace from - # all the clusters - for context in $(federation_cluster_contexts); do - ( - local -r role="federation-controller-manager:${FEDERATION_NAME}-${context}-${HOST_CLUSTER_CONTEXT}" - kube::log::status "Removing namespace \"${FEDERATION_NAMESPACE}\", cluster role \"${role}\" and cluster role binding \"${role}\" from \"${context}\"" - # Try deleting until the namespace is completely gone. - while $host_kubectl --context="${context}" delete namespace "${FEDERATION_NAMESPACE}" >/dev/null 2>&1; do - # It is usually slower to remove a namespace because it involves - # performing a cascading deletion of all the resources in the - # namespace. So we sleep a little longer than other resources - # before retrying - sleep 5 - done - kube::log::status "Removed namespace \"${FEDERATION_NAMESPACE}\" from \"${context}\"" - - while $host_kubectl --context="${context}" delete clusterrole "${role}" >/dev/null 2>&1; do - sleep 2 - done - kube::log::status "Removed cluster role \"${role}\" from \"${context}\"" - - while $host_kubectl --context="${context}" delete clusterrolebinding "${role}" >/dev/null 2>&1; do - sleep 2 - done - kube::log::status "Removed cluster role binding \"${role}\" from \"${context}\"" - ) & - done - wait - set -o errexit -} diff --git a/vendor/k8s.io/kubernetes/federation/cluster/federation-down.sh b/vendor/k8s.io/kubernetes/federation/cluster/federation-down.sh deleted file mode 100755 index dfbe63eda..000000000 --- a/vendor/k8s.io/kubernetes/federation/cluster/federation-down.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash - -# Copyright 2014 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. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(readlink -m $(dirname "${BASH_SOURCE}")/../../) - -# For $FEDERATION_NAME, $FEDERATION_NAMESPACE, $FEDERATION_KUBE_CONTEXT, -# and $HOST_CLUSTER_CONTEXT. -source "${KUBE_ROOT}/federation/cluster/common.sh" - -# federation_clusters returns a list of all the clusters in -# federation, if at all the federation control plane exists -# and there are any clusters registered. -function federation_clusters() { - if clusters=$("${KUBE_ROOT}/cluster/kubectl.sh" \ - --context="${FEDERATION_KUBE_CONTEXT}" \ - -o jsonpath --template '{.items[*].metadata.name}' \ - get clusters) ; then - echo ${clusters} - return - fi - echo "" -} - -# unjoin_clusters unjoins all the clusters from federation. -function unjoin_clusters() { - # Unjoin only those clusters that are registered with the - # given federation. This is slightly different than - # joining clusters where we join all the clusters in the - # current kubeconfig with the "federation" prefix. - for context in $(federation_clusters); do - kube::log::status "Unjoining cluster \"${context}\" from federation \"${FEDERATION_NAME}\"" - - "${KUBE_ROOT}/federation/develop/kubefed.sh" unjoin \ - "${context}" \ - --federation-system-namespace=${FEDERATION_NAMESPACE} \ - --context="${FEDERATION_KUBE_CONTEXT}" \ - --host-cluster-context="${HOST_CLUSTER_CONTEXT}" \ - --v=4 - done -} - -unjoin_clusters - -if cleanup-federation-api-objects; then - # TODO(madhusudancs): This is an arbitrary amount of sleep to give - # Kubernetes clusters enough time to delete the underlying cloud - # provider resources corresponding to the Kubernetes resources we - # deleted as part of the test tear downs. It is shameful that we - # are doing this, but this is just a bandage to stop the bleeding. - # Please don't use this pattern anywhere. Remove this when proper - # cloud provider cleanups are implemented in the individual test - # `AfterEach` blocks. - # Also, we wait only if the cleanup succeeds. - kube::log::status "Waiting for 2 minutes to allow controllers to clean up federation components..." - sleep 2m -else - echo "Couldn't cleanup federation api objects" -fi diff --git a/vendor/k8s.io/kubernetes/federation/cluster/federation-up.sh b/vendor/k8s.io/kubernetes/federation/cluster/federation-up.sh deleted file mode 100755 index 47f985732..000000000 --- a/vendor/k8s.io/kubernetes/federation/cluster/federation-up.sh +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/bash - -# Copyright 2014 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. - -set -o errexit -set -o nounset -set -o pipefail - -# This script is only used for e2e tests! Don't use it in production! -# This is also a temporary bridge to slowly switch over everything to -# federation/develop.sh. Carefully moving things step-by-step, ensuring -# things don't break. -# TODO(madhusudancs): Remove this script and its dependencies. - - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. -# For $FEDERATION_NAME, $FEDERATION_NAMESPACE, $FEDERATION_KUBE_CONTEXT, -# $HOST_CLUSTER_CONTEXT and $FEDERATION_USE_PV_FOR_ETCD. -source "${KUBE_ROOT}/federation/cluster/common.sh" - -DNS_ZONE_NAME="${FEDERATION_DNS_ZONE_NAME:-}" -DNS_PROVIDER="${FEDERATION_DNS_PROVIDER:-google-clouddns}" - -# get_version returns the version in KUBERNETES_RELEASE or defaults to the -# value in the federation `versions` file. -# TODO(madhusudancs): This is a duplicate of the function in -# federation/develop/develop.sh with a minor difference. This -# function tries to default to the version information in -# _output/federation/versions file where as the one in develop.sh -# tries to default to the version in the kubernetes versions file. -# These functions should be consolidated to read the version from -# kubernetes version defs file. -function get_version() { - local -r versions_file="${KUBE_ROOT}/_output/federation/versions" - - if [[ -n "${KUBERNETES_RELEASE:-}" ]]; then - echo "${KUBERNETES_RELEASE//+/_}" - return - fi - - if [[ ! -f "${versions_file}" ]]; then - echo "Couldn't determine the release version: neither the " \ - "KUBERNETES_RELEASE environment variable is set, nor does " \ - "the versions file exist at ${versions_file}" - exit 1 - fi - - # Read the version back from the versions file if no version is given. - local -r kube_version="$(cat "${versions_file}" | python -c '\ -import json, sys;\ -print json.load(sys.stdin)["KUBE_VERSION"]')" - - echo "${kube_version//+/_}" -} - -function wait_for_rbac() { - # The very first thing that kubefed does when it comes up is run RBAC API - # discovery. If it doesn't appear to be available, issue 'get role' to ensure - # that kubectl updates its cache. - ${KUBE_ROOT}/cluster/kubectl.sh get role - local i=1 - local timeout=60 - while [[ ${i} -le ${timeout} ]]; do - if [[ "$(${KUBE_ROOT}/cluster/kubectl.sh api-versions)" =~ "rbac.authorization.k8s.io/" ]]; then - break - fi - ${KUBE_ROOT}/cluster/kubectl.sh get role - sleep 1 - i=$((i+1)) - done - if [[ ${i} -gt ${timeout} ]]; then - kube::log::status "rbac.authorization.k8s.io API group not available after at least ${timeout} seconds:" - kube::log::status "$(${KUBE_ROOT}/cluster/kubectl.sh api-versions)" - exit 123 - fi - kube::log::status "rbac.authorization.k8s.io API group is available" -} - -# Initializes the control plane. -# TODO(madhusudancs): Move this to federation/develop.sh. -function init() { - kube::log::status "Deploying federation control plane for ${FEDERATION_NAME} in cluster ${HOST_CLUSTER_CONTEXT}" - - local -r project="${KUBE_PROJECT:-${PROJECT:-}}" - local -r kube_registry="${KUBE_REGISTRY:-gcr.io/${project}}" - local -r kube_version="$(get_version)" - - kube::log::status "DNS_ZONE_NAME: \"${DNS_ZONE_NAME}\", DNS_PROVIDER: \"${DNS_PROVIDER}\"" - kube::log::status "Image: \"${kube_registry}/hyperkube-amd64:${kube_version}\"" - - wait_for_rbac - - # Send INT after 20m and KILL 1m after that if process is still alive. - timeout --signal=INT --kill-after=1m 20m \ - "${KUBE_ROOT}/federation/develop/kubefed.sh" init \ - "${FEDERATION_NAME}" \ - --federation-system-namespace=${FEDERATION_NAMESPACE} \ - --host-cluster-context="${HOST_CLUSTER_CONTEXT}" \ - --dns-zone-name="${DNS_ZONE_NAME}" \ - --dns-provider="${DNS_PROVIDER}" \ - --image="${kube_registry}/hyperkube-amd64:${kube_version}" \ - --apiserver-enable-basic-auth=true \ - --apiserver-enable-token-auth=true \ - --apiserver-arg-overrides="--runtime-config=api/all=true,--v=4" \ - --controllermanager-arg-overrides="--v=4" \ - --etcd-persistent-storage=${FEDERATION_USE_PV_FOR_ETCD} \ - --v=4 -} - -# join_clusters joins the clusters in the local kubeconfig to federation. The clusters -# and their kubeconfig entries in the local kubeconfig are created while deploying clusters, i.e. when kube-up is run. -function join_clusters() { - for context in $(federation_cluster_contexts); do - kube::log::status "Joining cluster with name '${context}' to federation with name '${FEDERATION_NAME}'" - - "${KUBE_ROOT}/federation/develop/kubefed.sh" join \ - "${context}" \ - --federation-system-namespace=${FEDERATION_NAMESPACE} \ - --host-cluster-context="${HOST_CLUSTER_CONTEXT}" \ - --context="${FEDERATION_KUBE_CONTEXT}" \ - --v=4 - done -} - -init -join_clusters diff --git a/vendor/k8s.io/kubernetes/federation/cluster/log-dump.sh b/vendor/k8s.io/kubernetes/federation/cluster/log-dump.sh deleted file mode 100755 index 45e0e2a17..000000000 --- a/vendor/k8s.io/kubernetes/federation/cluster/log-dump.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash - -# 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. - -# Call this to dump all Federation pod logs into the folder specified in $1 -# (defaults to _artifacts). - -set -o errexit -set -o nounset -set -o pipefail - -# For FEDERATION_NAMESPACE -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. -source "${KUBE_ROOT}/federation/cluster/common.sh" - -readonly REPORT_DIR="${1:-_artifacts}" -OUTPUT_DIR="${REPORT_DIR}/federation" - -# Dumps logs for all pods in a federation. -function dump_federation_pod_logs() { - local -r federation_pod_names_string="$(kubectl get pods -l 'app=federated-cluster' --namespace=${FEDERATION_NAMESPACE} -o name)" - if [[ -z "${federation_pod_names_string}" ]]; then - return - fi - - local -r federation_pod_names=(${federation_pod_names_string}) - for pod_name in ${federation_pod_names[@]}; do - # The API server pod has two containers - if [[ "${pod_name}" == *apiserver* ]]; then - dump_apiserver_pod_logs "${pod_name}" - continue - fi - - kubectl logs "${pod_name}" --namespace="${FEDERATION_NAMESPACE}" \ - >"${OUTPUT_DIR}/${pod_name#pods/}.log" - done -} - -# Dumps logs from all containers in an API server pod. -# Arguments: -# - the name of the API server pod, with a pods/ prefix. -function dump_apiserver_pod_logs() { - local -r apiserver_pod_containers=(apiserver etcd) - for container in ${apiserver_pod_containers[@]}; do - kubectl logs "${1}" -c "${container}" --namespace="${FEDERATION_NAMESPACE}" \ - >"${OUTPUT_DIR}/${1#pods/}-${container}.log" - done -} - -# Dumps logs from all containers in the DNS pods. -# TODO: This currently only grabs DNS pod logs from the host cluster. It should -# grab those logs from all clusters in the federation. -function dump_dns_pod_logs() { - local -r dns_pod_names_string="$(kubectl get pods -l 'k8s-app=kube-dns' --namespace=kube-system -o name)" - if [[ -z "${dns_pod_names_string}" ]]; then - return - fi - - local -r dns_pod_names=(${dns_pod_names_string}) - local -r dns_pod_containers=(kubedns dnsmasq sidecar) - - for pod_name in ${dns_pod_names[@]}; do - # As of 3/2017, the only pod that matches the kube-dns label is kube-dns, and - # it has three containers. - for container in ${dns_pod_containers[@]}; do - kubectl logs "${pod_name}" -c "${container}" --namespace=kube-system \ - >"${OUTPUT_DIR}/${pod_name#pods/}-${container}.log" - done - done -} - - -echo "Dumping Federation and DNS pod logs to ${REPORT_DIR}" -mkdir -p "${OUTPUT_DIR}" - -dump_federation_pod_logs -dump_dns_pod_logs diff --git a/vendor/k8s.io/kubernetes/federation/cluster/upgrade.sh b/vendor/k8s.io/kubernetes/federation/cluster/upgrade.sh deleted file mode 100755 index cf8a66b56..000000000 --- a/vendor/k8s.io/kubernetes/federation/cluster/upgrade.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -# 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. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. -# For $FEDERATION_NAME, $FEDERATION_NAMESPACE, $HOST_CLUSTER_CONTEXT, -source "${KUBE_ROOT}/federation/cluster/common.sh" - -KUBE_VERSION="${1}" - -host_kubectl="${KUBE_ROOT}/cluster/kubectl.sh --context=${HOST_CLUSTER_CONTEXT} --namespace=${FEDERATION_NAMESPACE}" - -function upgrade() { - local -r project="${KUBE_PROJECT:-${PROJECT:-}}" - local -r kube_registry="${KUBE_REGISTRY:-gcr.io/${project}}" - local -r image_version="${kube_registry}/hyperkube-amd64:${KUBE_VERSION}" - - kube::log::status "Upgrading federation control plane ${FEDERATION_NAME} with image ${image_version}" - - # Upgrade apiserver image - ${host_kubectl} set image deployment/federation-apiserver apiserver=${image_version} - - # Upgrade controller-manager image - ${host_kubectl} set image deployment/federation-controller-manager controller-manager=${image_version} -} - -upgrade diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/BUILD b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/BUILD deleted file mode 100644 index 7944bd736..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", -) - -go_binary( - name = "federation-apiserver", - importpath = "k8s.io/kubernetes/federation/cmd/federation-apiserver", - library = ":go_default_library", -) - -go_library( - name = "go_default_library", - srcs = ["apiserver.go"], - importpath = "k8s.io/kubernetes/federation/cmd/federation-apiserver", - deps = [ - "//federation/cmd/federation-apiserver/app:go_default_library", - "//federation/cmd/federation-apiserver/app/options:go_default_library", - "//pkg/version/verflag:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/logs:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/cmd/federation-apiserver/app:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/OWNERS b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/OWNERS deleted file mode 100644 index 7d8596657..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/OWNERS +++ /dev/null @@ -1,10 +0,0 @@ -approvers: -- deads2k -- lavalamp -- smarterclayton -- nikhiljindal -reviewers: -- lavalamp -- smarterclayton -- nikhiljindal -- deads2k diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/apiserver.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/apiserver.go deleted file mode 100644 index 3423fd96e..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/apiserver.go +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright 2014 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. -*/ - -// apiserver is the main api server and master for the cluster. -// it is responsible for serving the cluster management API. -package main - -import ( - "fmt" - "math/rand" - "os" - "time" - - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apiserver/pkg/util/flag" - "k8s.io/apiserver/pkg/util/logs" - "k8s.io/kubernetes/federation/cmd/federation-apiserver/app" - "k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options" - "k8s.io/kubernetes/pkg/version/verflag" - - "github.com/spf13/pflag" -) - -func main() { - rand.Seed(time.Now().UTC().UnixNano()) - - s := options.NewServerRunOptions() - s.AddFlags(pflag.CommandLine) - - flag.InitFlags() - logs.InitLogs() - defer logs.FlushLogs() - - verflag.PrintAndExitIfRequested() - - if err := app.Run(s, wait.NeverStop); err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - os.Exit(1) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/BUILD b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/BUILD deleted file mode 100644 index 469cfe45c..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/BUILD +++ /dev/null @@ -1,104 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "autoscaling.go", - "batch.go", - "core.go", - "extensions.go", - "federation.go", - "install.go", - "plugins.go", - "server.go", - ], - importpath = "k8s.io/kubernetes/federation/cmd/federation-apiserver/app", - deps = [ - "//federation/apis/core:go_default_library", - "//federation/apis/core/install:go_default_library", - "//federation/apis/core/v1:go_default_library", - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/install:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/cmd/federation-apiserver/app/options:go_default_library", - "//federation/plugin/pkg/admission/schedulingpolicy:go_default_library", - "//federation/registry/cluster/etcd:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", - "//pkg/apis/autoscaling:go_default_library", - "//pkg/apis/autoscaling/install:go_default_library", - "//pkg/apis/batch:go_default_library", - "//pkg/apis/batch/install:go_default_library", - "//pkg/apis/extensions:go_default_library", - "//pkg/apis/extensions/install:go_default_library", - "//pkg/client/clientset_generated/internalclientset:go_default_library", - "//pkg/client/informers/informers_generated/internalversion:go_default_library", - "//pkg/cloudprovider/providers:go_default_library", - "//pkg/generated/openapi:go_default_library", - "//pkg/kubeapiserver:go_default_library", - "//pkg/kubeapiserver/admission:go_default_library", - "//pkg/kubeapiserver/options:go_default_library", - "//pkg/kubeapiserver/server:go_default_library", - "//pkg/quota/install:go_default_library", - "//pkg/registry/autoscaling/horizontalpodautoscaler/storage:go_default_library", - "//pkg/registry/batch/job/storage:go_default_library", - "//pkg/registry/cachesize:go_default_library", - "//pkg/registry/core/configmap/storage:go_default_library", - "//pkg/registry/core/event/storage:go_default_library", - "//pkg/registry/core/namespace/storage:go_default_library", - "//pkg/registry/core/secret/storage:go_default_library", - "//pkg/registry/core/service/storage:go_default_library", - "//pkg/registry/extensions/daemonset/storage:go_default_library", - "//pkg/registry/extensions/deployment/storage:go_default_library", - "//pkg/registry/extensions/ingress/storage:go_default_library", - "//pkg/registry/extensions/replicaset/storage:go_default_library", - "//pkg/routes:go_default_library", - "//pkg/version:go_default_library", - "//plugin/pkg/admission/admit:go_default_library", - "//plugin/pkg/admission/deny:go_default_library", - "//plugin/pkg/admission/gc:go_default_library", - "//vendor/github.com/go-openapi/spec:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/spf13/cobra:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/server:go_default_library", - "//vendor/k8s.io/apiserver/pkg/server/filters:go_default_library", - "//vendor/k8s.io/apiserver/pkg/server/options:go_default_library", - "//vendor/k8s.io/apiserver/pkg/server/storage:go_default_library", - "//vendor/k8s.io/client-go/informers:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/kube-openapi/pkg/common:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/cmd/federation-apiserver/app/options:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/autoscaling.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/autoscaling.go deleted file mode 100644 index 4a8589a4f..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/autoscaling.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -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 app - -import ( - "github.com/golang/glog" - autoscalingv1 "k8s.io/api/autoscaling/v1" - "k8s.io/apiserver/pkg/registry/generic" - "k8s.io/apiserver/pkg/registry/rest" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/autoscaling" - _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" - hpastorage "k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage" -) - -func installAutoscalingAPIs(g *genericapiserver.GenericAPIServer, optsGetter generic.RESTOptionsGetter, apiResourceConfigSource storage.APIResourceConfigSource) { - hpaStorageFn := func() map[string]rest.Storage { - hpaStorage, hpaStatusStorage := hpastorage.NewREST(optsGetter) - return map[string]rest.Storage{ - "horizontalpodautoscalers": hpaStorage, - "horizontalpodautoscalers/status": hpaStatusStorage, - } - } - resourcesStorageMap := map[string]getResourcesStorageFunc{ - "horizontalpodautoscalers": hpaStorageFn, - } - shouldInstallGroup, resources := enabledResources(autoscalingv1.SchemeGroupVersion, resourcesStorageMap, apiResourceConfigSource) - if !shouldInstallGroup { - return - } - autoscalingGroupMeta := api.Registry.GroupOrDie(autoscaling.GroupName) - apiGroupInfo := genericapiserver.APIGroupInfo{ - GroupMeta: *autoscalingGroupMeta, - VersionedResourcesStorageMap: map[string]map[string]rest.Storage{ - "v1": resources, - }, - OptionsExternalVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion, - Scheme: api.Scheme, - ParameterCodec: api.ParameterCodec, - NegotiatedSerializer: api.Codecs, - } - if err := g.InstallAPIGroup(&apiGroupInfo); err != nil { - glog.Fatalf("Error in registering group versions: %v", err) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/batch.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/batch.go deleted file mode 100644 index 5d589ce11..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/batch.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -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 app - -import ( - "github.com/golang/glog" - batchv1 "k8s.io/api/batch/v1" - "k8s.io/apiserver/pkg/registry/generic" - "k8s.io/apiserver/pkg/registry/rest" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/batch" - _ "k8s.io/kubernetes/pkg/apis/batch/install" - jobstorage "k8s.io/kubernetes/pkg/registry/batch/job/storage" -) - -func installBatchAPIs(g *genericapiserver.GenericAPIServer, optsGetter generic.RESTOptionsGetter, apiResourceConfigSource storage.APIResourceConfigSource) { - jobsStorageFn := func() map[string]rest.Storage { - jobStorage := jobstorage.NewStorage(optsGetter) - return map[string]rest.Storage{ - "jobs": jobStorage.Job, - "jobs/status": jobStorage.Status, - } - } - resourcesStorageMap := map[string]getResourcesStorageFunc{ - "jobs": jobsStorageFn, - } - shouldInstallGroup, resources := enabledResources(batchv1.SchemeGroupVersion, resourcesStorageMap, apiResourceConfigSource) - if !shouldInstallGroup { - return - } - batchGroupMeta := api.Registry.GroupOrDie(batch.GroupName) - apiGroupInfo := genericapiserver.APIGroupInfo{ - GroupMeta: *batchGroupMeta, - VersionedResourcesStorageMap: map[string]map[string]rest.Storage{ - "v1": resources, - }, - OptionsExternalVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion, - Scheme: api.Scheme, - ParameterCodec: api.ParameterCodec, - NegotiatedSerializer: api.Codecs, - } - if err := g.InstallAPIGroup(&apiGroupInfo); err != nil { - glog.Fatalf("Error in registering group versions: %v", err) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/core.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/core.go deleted file mode 100644 index 6282530f8..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/core.go +++ /dev/null @@ -1,104 +0,0 @@ -/* -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 app - -import ( - "github.com/golang/glog" - - // HACK to ensure that rest mapper from pkg/api is registered for groupName="". - // This is required because both pkg/api/install and federation/apis/core/install - // are installing their respective groupMeta at the same groupName. - // federation/apis/core/install has only a subset of resources and hence if it gets registered first, then installation of v1 API fails in pkg/master. - // TODO(nikhiljindal): Fix this by ensuring that pkg/api/install and federation/apis/core/install do not conflict with each other. - _ "k8s.io/kubernetes/pkg/api/install" - - "k8s.io/apiserver/pkg/registry/generic" - "k8s.io/apiserver/pkg/registry/rest" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/federation/apis/core" - _ "k8s.io/kubernetes/federation/apis/core/install" - corev1 "k8s.io/kubernetes/federation/apis/core/v1" - "k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options" - "k8s.io/kubernetes/pkg/api" - configmapstore "k8s.io/kubernetes/pkg/registry/core/configmap/storage" - eventstore "k8s.io/kubernetes/pkg/registry/core/event/storage" - namespacestore "k8s.io/kubernetes/pkg/registry/core/namespace/storage" - secretstore "k8s.io/kubernetes/pkg/registry/core/secret/storage" - servicestore "k8s.io/kubernetes/pkg/registry/core/service/storage" -) - -func installCoreAPIs(s *options.ServerRunOptions, g *genericapiserver.GenericAPIServer, optsGetter generic.RESTOptionsGetter, apiResourceConfigSource storage.APIResourceConfigSource) { - servicesStorageFn := func() map[string]rest.Storage { - serviceStore, serviceStatusStore := servicestore.NewREST(optsGetter) - return map[string]rest.Storage{ - "services": serviceStore, - "services/status": serviceStatusStore, - } - } - namespacesStorageFn := func() map[string]rest.Storage { - namespaceStore, namespaceStatusStore, namespaceFinalizeStore := namespacestore.NewREST(optsGetter) - return map[string]rest.Storage{ - "namespaces": namespaceStore, - "namespaces/status": namespaceStatusStore, - "namespaces/finalize": namespaceFinalizeStore, - } - } - secretsStorageFn := func() map[string]rest.Storage { - secretStore := secretstore.NewREST(optsGetter) - return map[string]rest.Storage{ - "secrets": secretStore, - } - } - configmapsStorageFn := func() map[string]rest.Storage { - configMapStore := configmapstore.NewREST(optsGetter) - return map[string]rest.Storage{ - "configmaps": configMapStore, - } - } - eventsStorageFn := func() map[string]rest.Storage { - eventStore := eventstore.NewREST(optsGetter, uint64(s.EventTTL.Seconds())) - return map[string]rest.Storage{ - "events": eventStore, - } - } - resourcesStorageMap := map[string]getResourcesStorageFunc{ - "services": servicesStorageFn, - "namespaces": namespacesStorageFn, - "secrets": secretsStorageFn, - "configmaps": configmapsStorageFn, - "events": eventsStorageFn, - } - shouldInstallGroup, resources := enabledResources(corev1.SchemeGroupVersion, resourcesStorageMap, apiResourceConfigSource) - if !shouldInstallGroup { - return - } - coreGroupMeta := api.Registry.GroupOrDie(core.GroupName) - apiGroupInfo := genericapiserver.APIGroupInfo{ - GroupMeta: *coreGroupMeta, - VersionedResourcesStorageMap: map[string]map[string]rest.Storage{ - corev1.SchemeGroupVersion.Version: resources, - }, - OptionsExternalVersion: &api.Registry.GroupOrDie(core.GroupName).GroupVersion, - Scheme: core.Scheme, - ParameterCodec: core.ParameterCodec, - NegotiatedSerializer: core.Codecs, - } - if err := g.InstallLegacyAPIGroup(genericapiserver.DefaultLegacyAPIPrefix, &apiGroupInfo); err != nil { - glog.Fatalf("Error in registering group version: %+v.\n Error: %v\n", apiGroupInfo, err) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/extensions.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/extensions.go deleted file mode 100644 index e6cceda5d..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/extensions.go +++ /dev/null @@ -1,91 +0,0 @@ -/* -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 app - -import ( - "github.com/golang/glog" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - "k8s.io/apiserver/pkg/registry/generic" - "k8s.io/apiserver/pkg/registry/rest" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/extensions" - _ "k8s.io/kubernetes/pkg/apis/extensions/install" - daemonsetstore "k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage" - deploymentstore "k8s.io/kubernetes/pkg/registry/extensions/deployment/storage" - ingressstore "k8s.io/kubernetes/pkg/registry/extensions/ingress/storage" - replicasetstore "k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage" -) - -func installExtensionsAPIs(g *genericapiserver.GenericAPIServer, optsGetter generic.RESTOptionsGetter, apiResourceConfigSource storage.APIResourceConfigSource) { - replicasetsStorageFn := func() map[string]rest.Storage { - replicaSetStorage := replicasetstore.NewStorage(optsGetter) - return map[string]rest.Storage{ - "replicasets": replicaSetStorage.ReplicaSet, - "replicasets/status": replicaSetStorage.Status, - "replicasets/scale": replicaSetStorage.Scale, - } - } - deploymentsStorageFn := func() map[string]rest.Storage { - deploymentStorage := deploymentstore.NewStorage(optsGetter) - return map[string]rest.Storage{ - "deployments": deploymentStorage.Deployment, - "deployments/status": deploymentStorage.Status, - "deployments/scale": deploymentStorage.Scale, - "deployments/rollback": deploymentStorage.Rollback, - } - } - ingressesStorageFn := func() map[string]rest.Storage { - ingressStorage, ingressStatusStorage := ingressstore.NewREST(optsGetter) - return map[string]rest.Storage{ - "ingresses": ingressStorage, - "ingresses/status": ingressStatusStorage, - } - } - daemonsetsStorageFn := func() map[string]rest.Storage { - daemonSetStorage, daemonSetStatusStorage := daemonsetstore.NewREST(optsGetter) - return map[string]rest.Storage{ - "daemonsets": daemonSetStorage, - "daemonsets/status": daemonSetStatusStorage, - } - } - resourcesStorageMap := map[string]getResourcesStorageFunc{ - "replicasets": replicasetsStorageFn, - "deployments": deploymentsStorageFn, - "ingresses": ingressesStorageFn, - "daemonsets": daemonsetsStorageFn, - } - shouldInstallGroup, resources := enabledResources(extensionsv1beta1.SchemeGroupVersion, resourcesStorageMap, apiResourceConfigSource) - if !shouldInstallGroup { - return - } - extensionsGroupMeta := api.Registry.GroupOrDie(extensions.GroupName) - apiGroupInfo := genericapiserver.APIGroupInfo{ - GroupMeta: *extensionsGroupMeta, - VersionedResourcesStorageMap: map[string]map[string]rest.Storage{ - "v1beta1": resources, - }, - OptionsExternalVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion, - Scheme: api.Scheme, - ParameterCodec: api.ParameterCodec, - NegotiatedSerializer: api.Codecs, - } - if err := g.InstallAPIGroup(&apiGroupInfo); err != nil { - glog.Fatalf("Error in registering group versions: %v", err) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/federation.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/federation.go deleted file mode 100644 index 4870ce5fe..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/federation.go +++ /dev/null @@ -1,63 +0,0 @@ -/* -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 app - -import ( - "github.com/golang/glog" - - "k8s.io/apiserver/pkg/registry/generic" - "k8s.io/apiserver/pkg/registry/rest" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/federation/apis/federation" - _ "k8s.io/kubernetes/federation/apis/federation/install" - fedv1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - clusteretcd "k8s.io/kubernetes/federation/registry/cluster/etcd" - "k8s.io/kubernetes/pkg/api" -) - -func installFederationAPIs(g *genericapiserver.GenericAPIServer, optsGetter generic.RESTOptionsGetter, apiResourceConfigSource storage.APIResourceConfigSource) { - groupName := federation.GroupName - clustersStorageFn := func() map[string]rest.Storage { - clusterStorage, clusterStatusStorage := clusteretcd.NewREST(optsGetter) - return map[string]rest.Storage{ - "clusters": clusterStorage, - "clusters/status": clusterStatusStorage, - } - } - resourcesStorageMap := map[string]getResourcesStorageFunc{ - "clusters": clustersStorageFn, - } - shouldInstallGroup, resources := enabledResources(fedv1beta1.SchemeGroupVersion, resourcesStorageMap, apiResourceConfigSource) - if !shouldInstallGroup { - return - } - federationGroupMeta := api.Registry.GroupOrDie(groupName) - apiGroupInfo := genericapiserver.APIGroupInfo{ - GroupMeta: *federationGroupMeta, - VersionedResourcesStorageMap: map[string]map[string]rest.Storage{ - "v1beta1": resources, - }, - OptionsExternalVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion, - Scheme: api.Scheme, - ParameterCodec: api.ParameterCodec, - NegotiatedSerializer: api.Codecs, - } - if err := g.InstallAPIGroup(&apiGroupInfo); err != nil { - glog.Fatalf("Error in registering group versions: %v", err) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/install.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/install.go deleted file mode 100644 index 4e75a2df1..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/install.go +++ /dev/null @@ -1,55 +0,0 @@ -/* -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 app - -import ( - "github.com/golang/glog" - - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/apiserver/pkg/server/storage" -) - -// Function to get a map of resources and the corresponding storages. -type getResourcesStorageFunc func() map[string]rest.Storage - -// Filters the resources from the given resources storage map to those that are enabled in the given apiResourceConfigSource. -// resourcesStorageMap is expected to contain all resources in a group version. -// Returns false if none of the resources are enabled and hence the whole group version should be disabled. -func enabledResources(groupVersion schema.GroupVersion, resourcesStorageMap map[string]getResourcesStorageFunc, apiResourceConfigSource storage.APIResourceConfigSource) (bool, map[string]rest.Storage) { - enabledResources := map[string]rest.Storage{} - groupName := groupVersion.Group - if !apiResourceConfigSource.AnyResourcesForGroupEnabled(groupName) { - glog.V(1).Infof("Skipping disabled API group %q", groupName) - return false, enabledResources - } - for resource, fn := range resourcesStorageMap { - if apiResourceConfigSource.ResourceEnabled(groupVersion.WithResource(resource)) { - resources := fn() - for k, v := range resources { - enabledResources[k] = v - } - } else { - glog.V(1).Infof("Skipping disabled resource %s in API group %q", resource, groupName) - } - } - if len(enabledResources) == 0 { - glog.V(1).Infof("Skipping API group %q since there is no enabled resource", groupName) - return false, enabledResources - } - return true, enabledResources -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/BUILD b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/BUILD deleted file mode 100644 index fb3c638a0..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "options.go", - "validation.go", - ], - importpath = "k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options", - deps = [ - "//pkg/features:go_default_library", - "//pkg/kubeapiserver/options:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/apiserver/pkg/server/options:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/options.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/options.go deleted file mode 100644 index 3dcb94924..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/options.go +++ /dev/null @@ -1,94 +0,0 @@ -/* -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 options contains flags and options for initializing federation-apiserver. -package options - -import ( - "time" - - genericoptions "k8s.io/apiserver/pkg/server/options" - "k8s.io/apiserver/pkg/storage/storagebackend" - kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" - - // add the kubernetes feature gates - _ "k8s.io/kubernetes/pkg/features" - - "github.com/spf13/pflag" -) - -// Runtime options for the federation-apiserver. -type ServerRunOptions struct { - GenericServerRunOptions *genericoptions.ServerRunOptions - Etcd *genericoptions.EtcdOptions - SecureServing *genericoptions.SecureServingOptions - InsecureServing *kubeoptions.InsecureServingOptions - Audit *genericoptions.AuditOptions - Features *genericoptions.FeatureOptions - Admission *genericoptions.AdmissionOptions - Authentication *kubeoptions.BuiltInAuthenticationOptions - Authorization *kubeoptions.BuiltInAuthorizationOptions - CloudProvider *kubeoptions.CloudProviderOptions - StorageSerialization *kubeoptions.StorageSerializationOptions - APIEnablement *kubeoptions.APIEnablementOptions - - EventTTL time.Duration -} - -// NewServerRunOptions creates a new ServerRunOptions object with default values. -func NewServerRunOptions() *ServerRunOptions { - s := ServerRunOptions{ - GenericServerRunOptions: genericoptions.NewServerRunOptions(), - Etcd: genericoptions.NewEtcdOptions(storagebackend.NewDefaultConfig(kubeoptions.DefaultEtcdPathPrefix, nil)), - SecureServing: kubeoptions.NewSecureServingOptions(), - InsecureServing: kubeoptions.NewInsecureServingOptions(), - Audit: genericoptions.NewAuditOptions(), - Features: genericoptions.NewFeatureOptions(), - Admission: genericoptions.NewAdmissionOptions(), - Authentication: kubeoptions.NewBuiltInAuthenticationOptions().WithAll(), - Authorization: kubeoptions.NewBuiltInAuthorizationOptions(), - CloudProvider: kubeoptions.NewCloudProviderOptions(), - StorageSerialization: kubeoptions.NewStorageSerializationOptions(), - APIEnablement: kubeoptions.NewAPIEnablementOptions(), - - EventTTL: 1 * time.Hour, - } - // Overwrite the default for storage data format. - s.Etcd.DefaultStorageMediaType = "application/vnd.kubernetes.protobuf" - // Set the default for admission plugins names - s.Admission.PluginNames = []string{"AlwaysAdmit"} - return &s -} - -// AddFlags adds flags for ServerRunOptions fields to be specified via FlagSet. -func (s *ServerRunOptions) AddFlags(fs *pflag.FlagSet) { - // Add the generic flags. - s.GenericServerRunOptions.AddUniversalFlags(fs) - s.Etcd.AddFlags(fs) - s.SecureServing.AddFlags(fs) - s.InsecureServing.AddFlags(fs) - s.Audit.AddFlags(fs) - s.Features.AddFlags(fs) - s.Authentication.AddFlags(fs) - s.Authorization.AddFlags(fs) - s.CloudProvider.AddFlags(fs) - s.StorageSerialization.AddFlags(fs) - s.APIEnablement.AddFlags(fs) - s.Admission.AddFlags(fs) - - fs.DurationVar(&s.EventTTL, "event-ttl", s.EventTTL, - "Amount of time to retain events.") -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/validation.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/validation.go deleted file mode 100644 index e1f1f2310..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options/validation.go +++ /dev/null @@ -1,58 +0,0 @@ -/* -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 options - -import "fmt" - -func (options *ServerRunOptions) Validate() []error { - var errors []error - if errs := options.GenericServerRunOptions.Validate(); len(errs) > 0 { - errors = append(errors, errs...) - } - if errs := options.Etcd.Validate(); len(errs) > 0 { - errors = append(errors, errs...) - } - if errs := options.SecureServing.Validate(); len(errs) > 0 { - errors = append(errors, errs...) - } - if errs := options.InsecureServing.Validate("insecure-port"); len(errs) > 0 { - errors = append(errors, errs...) - } - if errs := options.Audit.Validate(); len(errs) > 0 { - errors = append(errors, errs...) - } - if errs := options.Features.Validate(); len(errs) > 0 { - errors = append(errors, errs...) - } - if errs := options.Admission.Validate(); len(errs) > 0 { - errors = append(errors, errs...) - } - if errs := options.Authentication.Validate(); len(errs) > 0 { - errors = append(errors, errs...) - } - if errs := options.Authorization.Validate(); len(errs) > 0 { - errors = append(errors, errs...) - } - if errs := options.CloudProvider.Validate(); len(errs) > 0 { - errors = append(errors, errs...) - } - if options.EventTTL <= 0 { - errors = append(errors, fmt.Errorf("--event-ttl must be greater than 0")) - } - // TODO: add more checks - return errors -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/plugins.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/plugins.go deleted file mode 100644 index a10a3edba..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/plugins.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2014 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 app - -// This file exists to force the desired plugin implementations to be linked. -// This should probably be part of some configuration fed into the build for a -// given binary target. -import ( - // Cloud providers - _ "k8s.io/kubernetes/pkg/cloudprovider/providers" - - // Admission policies - "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy" - "k8s.io/kubernetes/plugin/pkg/admission/admit" - "k8s.io/kubernetes/plugin/pkg/admission/deny" - "k8s.io/kubernetes/plugin/pkg/admission/gc" -) - -// RegisterAllAdmissionPlugins registers all admission plugins -func RegisterAllAdmissionPlugins(plugins *admission.Plugins) { - admit.Register(plugins) - deny.Register(plugins) - gc.Register(plugins) - schedulingpolicy.Register(plugins) -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/server.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/server.go deleted file mode 100644 index cb901459a..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-apiserver/app/server.go +++ /dev/null @@ -1,486 +0,0 @@ -/* -Copyright 2014 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 app does all of the work necessary to create a Kubernetes -// APIServer by binding together the API, master and APIServer infrastructure. -// It can be configured and called directly or via the hyperkube cache. -package app - -import ( - "fmt" - "io/ioutil" - "strings" - "time" - - "github.com/go-openapi/spec" - "github.com/golang/glog" - "github.com/spf13/cobra" - "github.com/spf13/pflag" - - appsv1beta2 "k8s.io/api/apps/v1beta2" - apiv1 "k8s.io/api/core/v1" - extensionsapiv1beta1 "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/runtime/schema" - utilerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/sets" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/apiserver/pkg/server/filters" - serveroptions "k8s.io/apiserver/pkg/server/options" - serverstorage "k8s.io/apiserver/pkg/server/storage" - clientgoinformers "k8s.io/client-go/informers" - clientgoclientset "k8s.io/client-go/kubernetes" - openapicommon "k8s.io/kube-openapi/pkg/common" - federationv1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" - "k8s.io/kubernetes/pkg/generated/openapi" - "k8s.io/kubernetes/pkg/kubeapiserver" - kubeapiserveradmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" - kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" - kubeserver "k8s.io/kubernetes/pkg/kubeapiserver/server" - quotainstall "k8s.io/kubernetes/pkg/quota/install" - "k8s.io/kubernetes/pkg/registry/cachesize" - "k8s.io/kubernetes/pkg/routes" - "k8s.io/kubernetes/pkg/version" -) - -// NewAPIServerCommand creates a *cobra.Command object with default parameters -func NewAPIServerCommand() *cobra.Command { - s := options.NewServerRunOptions() - s.AddFlags(pflag.CommandLine) - cmd := &cobra.Command{ - Use: "federation-apiserver", - Long: `The Kubernetes federation API server validates and configures data -for the api objects which include pods, services, replicationcontrollers, and -others. The API Server services REST operations and provides the frontend to the -cluster's shared state through which all other components interact.`, - Run: func(cmd *cobra.Command, args []string) { - }, - } - return cmd -} - -// Run runs the specified APIServer. It only returns if stopCh is closed -// or one of the ports cannot be listened on initially. -func Run(s *options.ServerRunOptions, stopCh <-chan struct{}) error { - err := NonBlockingRun(s, stopCh) - if err != nil { - return err - } - <-stopCh - return nil -} - -// NonBlockingRun runs the specified APIServer and configures it to -// stop with the given channel. -func NonBlockingRun(s *options.ServerRunOptions, stopCh <-chan struct{}) error { - // register all admission plugins - RegisterAllAdmissionPlugins(s.Admission.Plugins) - - // set defaults - if err := s.GenericServerRunOptions.DefaultAdvertiseAddress(s.SecureServing); err != nil { - return err - } - if err := kubeoptions.DefaultAdvertiseAddress(s.GenericServerRunOptions, s.InsecureServing); err != nil { - return err - } - if err := s.SecureServing.MaybeDefaultWithSelfSignedCerts(s.GenericServerRunOptions.AdvertiseAddress.String(), nil, nil); err != nil { - return fmt.Errorf("error creating self-signed certificates: %v", err) - } - if err := s.CloudProvider.DefaultExternalHost(s.GenericServerRunOptions); err != nil { - return fmt.Errorf("error setting the external host value: %v", err) - } - - s.Authentication.ApplyAuthorization(s.Authorization) - - // validate options - if errs := s.Validate(); len(errs) != 0 { - return utilerrors.NewAggregate(errs) - } - - genericConfig := genericapiserver.NewConfig(api.Codecs) - if err := s.GenericServerRunOptions.ApplyTo(genericConfig); err != nil { - return err - } - insecureServingOptions, err := s.InsecureServing.ApplyTo(genericConfig) - if err != nil { - return err - } - if err := s.SecureServing.ApplyTo(genericConfig); err != nil { - return err - } - if err := s.Authentication.ApplyTo(genericConfig); err != nil { - return err - } - if err := s.Audit.ApplyTo(genericConfig); err != nil { - return err - } - if err := s.Features.ApplyTo(genericConfig); err != nil { - return err - } - - resourceConfig := defaultResourceConfig() - - if s.Etcd.StorageConfig.DeserializationCacheSize == 0 { - // When size of cache is not explicitly set, set it to 50000 - s.Etcd.StorageConfig.DeserializationCacheSize = 50000 - } - storageGroupsToEncodingVersion, err := s.StorageSerialization.StorageGroupsToEncodingVersion() - if err != nil { - return fmt.Errorf("error generating storage version map: %s", err) - } - storageFactory, err := kubeapiserver.NewStorageFactory( - s.Etcd.StorageConfig, s.Etcd.DefaultStorageMediaType, api.Codecs, - serverstorage.NewDefaultResourceEncodingConfig(api.Registry), storageGroupsToEncodingVersion, - []schema.GroupVersionResource{}, resourceConfig, s.APIEnablement.RuntimeConfig) - if err != nil { - return fmt.Errorf("error in initializing storage factory: %s", err) - } - - for _, override := range s.Etcd.EtcdServersOverrides { - tokens := strings.Split(override, "#") - if len(tokens) != 2 { - glog.Errorf("invalid value of etcd server overrides: %s", override) - continue - } - - apiresource := strings.Split(tokens[0], "/") - if len(apiresource) != 2 { - glog.Errorf("invalid resource definition: %s", tokens[0]) - continue - } - group := apiresource[0] - resource := apiresource[1] - groupResource := schema.GroupResource{Group: group, Resource: resource} - - servers := strings.Split(tokens[1], ";") - storageFactory.SetEtcdLocation(groupResource, servers) - } - if err := s.Etcd.ApplyWithStorageFactoryTo(storageFactory, genericConfig); err != nil { - return err - } - - apiAuthenticator, securityDefinitions, err := s.Authentication.ToAuthenticationConfig().New() - if err != nil { - return fmt.Errorf("invalid Authentication Config: %v", err) - } - - kubeClientConfig := genericConfig.LoopbackClientConfig - client, err := internalclientset.NewForConfig(kubeClientConfig) - if err != nil { - return fmt.Errorf("failed to create clientset: %v", err) - } - - sharedInformers := informers.NewSharedInformerFactory(client, 10*time.Minute) - clientgoExternalClient, err := clientgoclientset.NewForConfig(kubeClientConfig) - if err != nil { - return fmt.Errorf("failed to create real external clientset: %v", err) - } - versionedInformers := clientgoinformers.NewSharedInformerFactory(clientgoExternalClient, 10*time.Minute) - - authorizationConfig := s.Authorization.ToAuthorizationConfig(sharedInformers) - apiAuthorizer, _, err := authorizationConfig.New() - if err != nil { - return fmt.Errorf("invalid Authorization Config: %v", err) - } - - var cloudConfig []byte - if s.CloudProvider.CloudConfigFile != "" { - cloudConfig, err = ioutil.ReadFile(s.CloudProvider.CloudConfigFile) - if err != nil { - glog.Fatalf("Error reading from cloud configuration file %s: %#v", s.CloudProvider.CloudConfigFile, err) - } - } - - // NOTE: we do not provide informers to the quota registry because admission level decisions - // do not require us to open watches for all items tracked by quota. - quotaRegistry := quotainstall.NewRegistry(nil, nil) - pluginInitializer := kubeapiserveradmission.NewPluginInitializer(client, sharedInformers, cloudConfig, nil, quotaRegistry) - - err = s.Admission.ApplyTo( - genericConfig, - versionedInformers, - nil, - nil, - kubeClientConfig, - api.Scheme, - pluginInitializer, - ) - if err != nil { - return fmt.Errorf("failed to initialize plugins: %v", err) - } - - kubeVersion := version.Get() - genericConfig.Version = &kubeVersion - genericConfig.Authenticator = apiAuthenticator - genericConfig.Authorizer = apiAuthorizer - genericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapi.GetOpenAPIDefinitions, api.Scheme) - genericConfig.OpenAPIConfig.PostProcessSpec = postProcessOpenAPISpecForBackwardCompatibility - genericConfig.OpenAPIConfig.SecurityDefinitions = securityDefinitions - genericConfig.SwaggerConfig = genericapiserver.DefaultSwaggerConfig() - genericConfig.LongRunningFunc = filters.BasicLongRunningRequestCheck( - sets.NewString("watch", "proxy"), - sets.NewString("attach", "exec", "proxy", "log", "portforward"), - ) - - // TODO: Move this to generic api server (Need to move the command line flag). - if s.Etcd.EnableWatchCache { - glog.V(2).Infof("Initializing cache sizes based on %dMB limit", s.GenericServerRunOptions.TargetRAMMB) - sizes := cachesize.NewHeuristicWatchCacheSizes(s.GenericServerRunOptions.TargetRAMMB) - if userSpecified, err := serveroptions.ParseWatchCacheSizes(s.Etcd.WatchCacheSizes); err == nil { - for resource, size := range userSpecified { - sizes[resource] = size - } - } - s.Etcd.WatchCacheSizes, err = serveroptions.WriteWatchCacheSizes(sizes) - if err != nil { - return err - } - } - - m, err := genericConfig.Complete(versionedInformers).New("federation", genericapiserver.EmptyDelegate) - if err != nil { - return err - } - - routes.UIRedirect{}.Install(m.Handler.NonGoRestfulMux) - routes.Logs{}.Install(m.Handler.GoRestfulContainer) - - apiResourceConfigSource := storageFactory.APIResourceConfigSource - installFederationAPIs(m, genericConfig.RESTOptionsGetter, apiResourceConfigSource) - installCoreAPIs(s, m, genericConfig.RESTOptionsGetter, apiResourceConfigSource) - installExtensionsAPIs(m, genericConfig.RESTOptionsGetter, apiResourceConfigSource) - installBatchAPIs(m, genericConfig.RESTOptionsGetter, apiResourceConfigSource) - installAutoscalingAPIs(m, genericConfig.RESTOptionsGetter, apiResourceConfigSource) - - // run the insecure server now - if insecureServingOptions != nil { - insecureHandlerChain := kubeserver.BuildInsecureHandlerChain(m.UnprotectedHandler(), genericConfig) - if err := kubeserver.NonBlockingRun(insecureServingOptions, insecureHandlerChain, stopCh); err != nil { - return err - } - } - - err = m.PrepareRun().NonBlockingRun(stopCh) - if err == nil { - sharedInformers.Start(stopCh) - } - return err -} - -func defaultResourceConfig() *serverstorage.ResourceConfig { - rc := serverstorage.NewResourceConfig() - - rc.EnableVersions( - federationv1beta1.SchemeGroupVersion, - ) - - // All core resources except these are disabled by default. - rc.EnableResources( - apiv1.SchemeGroupVersion.WithResource("secrets"), - apiv1.SchemeGroupVersion.WithResource("services"), - apiv1.SchemeGroupVersion.WithResource("namespaces"), - apiv1.SchemeGroupVersion.WithResource("events"), - apiv1.SchemeGroupVersion.WithResource("configmaps"), - ) - // All extension resources except these are disabled by default. - rc.EnableResources( - extensionsapiv1beta1.SchemeGroupVersion.WithResource("daemonsets"), - extensionsapiv1beta1.SchemeGroupVersion.WithResource("deployments"), - extensionsapiv1beta1.SchemeGroupVersion.WithResource("ingresses"), - extensionsapiv1beta1.SchemeGroupVersion.WithResource("replicasets"), - ) - // All apps resources except these are disabled by default. - rc.EnableResources( - appsv1beta2.SchemeGroupVersion.WithResource("daemonsets"), - appsv1beta2.SchemeGroupVersion.WithResource("deployments"), - appsv1beta2.SchemeGroupVersion.WithResource("replicasets"), - ) - return rc -} - -// PostProcessSpec adds removed definitions for backward compatibility -func postProcessOpenAPISpecForBackwardCompatibility(s *spec.Swagger) (*spec.Swagger, error) { - compatibilityMap := map[string]string{ - "v1beta1.ReplicaSetList": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList", - "v1.FlockerVolumeSource": "io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource", - "v1.FlexVolumeSource": "io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource", - "v1.SecretKeySelector": "io.k8s.kubernetes.pkg.api.v1.SecretKeySelector", - "v1.DeleteOptions": "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", - "v1.ServiceSpec": "io.k8s.kubernetes.pkg.api.v1.ServiceSpec", - "v1.NamespaceStatus": "io.k8s.kubernetes.pkg.api.v1.NamespaceStatus", - "v1.Affinity": "io.k8s.kubernetes.pkg.api.v1.Affinity", - "v1.PodAffinity": "io.k8s.kubernetes.pkg.api.v1.PodAffinity", - "v1.EnvVarSource": "io.k8s.kubernetes.pkg.api.v1.EnvVarSource", - "v1.ListMeta": "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", - "v1.ObjectMeta": "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", - "v1.APIGroupList": "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList", - "v1.EnvFromSource": "io.k8s.kubernetes.pkg.api.v1.EnvFromSource", - "v1.Service": "io.k8s.kubernetes.pkg.api.v1.Service", - "v1.HorizontalPodAutoscaler": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler", - "v1.StatusCause": "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause", - "v1.ObjectFieldSelector": "io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector", - "v1.QuobyteVolumeSource": "io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource", - "v1beta1.ReplicaSetSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec", - "v1.LabelSelector": "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", - "v1.DownwardAPIVolumeFile": "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile", - "v1.GCEPersistentDiskVolumeSource": "io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource", - "v1beta1.ClusterCondition": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterCondition", - "v1.JobCondition": "io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition", - "v1.LabelSelectorRequirement": "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement", - "v1beta1.Deployment": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment", - "v1.LoadBalancerIngress": "io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress", - "v1.SecretList": "io.k8s.kubernetes.pkg.api.v1.SecretList", - "v1.ServicePort": "io.k8s.kubernetes.pkg.api.v1.ServicePort", - "v1.Namespace": "io.k8s.kubernetes.pkg.api.v1.Namespace", - "v1beta1.ReplicaSetCondition": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition", - "v1.CrossVersionObjectReference": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference", - "v1.ConfigMapVolumeSource": "io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource", - "v1.FCVolumeSource": "io.k8s.kubernetes.pkg.api.v1.FCVolumeSource", - "v1.GroupVersionForDiscovery": "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery", - "v1beta1.ClusterStatus": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterStatus", - "v1.Job": "io.k8s.kubernetes.pkg.apis.batch.v1.Job", - "v1.PersistentVolumeClaimVolumeSource": "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource", - "v1.Handler": "io.k8s.kubernetes.pkg.api.v1.Handler", - "v1.ServerAddressByClientCIDR": "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR", - "v1.PodAntiAffinity": "io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity", - "v1.ISCSIVolumeSource": "io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource", - "v1.WeightedPodAffinityTerm": "io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm", - "v1.HorizontalPodAutoscalerSpec": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec", - "v1.HorizontalPodAutoscalerList": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList", - "v1.Probe": "io.k8s.kubernetes.pkg.api.v1.Probe", - "v1.APIGroup": "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup", - "v1beta1.DeploymentList": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList", - "v1.NodeAffinity": "io.k8s.kubernetes.pkg.api.v1.NodeAffinity", - "v1.SecretEnvSource": "io.k8s.kubernetes.pkg.api.v1.SecretEnvSource", - "v1beta1.DeploymentStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus", - "v1.CinderVolumeSource": "io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource", - "v1.NodeSelectorTerm": "io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm", - "v1.Patch": "io.k8s.apimachinery.pkg.apis.meta.v1.Patch", - "v1.SecretVolumeSource": "io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource", - "v1.Secret": "io.k8s.kubernetes.pkg.api.v1.Secret", - "v1.NodeSelector": "io.k8s.kubernetes.pkg.api.v1.NodeSelector", - "runtime.RawExtension": "io.k8s.apimachinery.pkg.runtime.RawExtension", - "v1.PreferredSchedulingTerm": "io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm", - "v1beta1.ClusterList": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterList", - "v1.KeyToPath": "io.k8s.kubernetes.pkg.api.v1.KeyToPath", - "intstr.IntOrString": "io.k8s.apimachinery.pkg.util.intstr.IntOrString", - "v1beta1.ClusterSpec": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterSpec", - "v1.ServiceList": "io.k8s.kubernetes.pkg.api.v1.ServiceList", - "v1beta1.DeploymentStrategy": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy", - "v1beta1.IngressBackend": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend", - "v1.Time": "io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "v1.ContainerPort": "io.k8s.kubernetes.pkg.api.v1.ContainerPort", - "v1beta1.HTTPIngressRuleValue": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue", - "v1.AzureFileVolumeSource": "io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource", - "v1.PodTemplateSpec": "io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec", - "v1.PodSpec": "io.k8s.kubernetes.pkg.api.v1.PodSpec", - "v1beta1.ReplicaSetStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus", - "v1.CephFSVolumeSource": "io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource", - "v1.Volume": "io.k8s.kubernetes.pkg.api.v1.Volume", - "v1beta1.Ingress": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress", - "v1.PodAffinityTerm": "io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm", - "v1.ObjectReference": "io.k8s.kubernetes.pkg.api.v1.ObjectReference", - "v1.ServiceStatus": "io.k8s.kubernetes.pkg.api.v1.ServiceStatus", - "v1.APIResource": "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource", - "v1.AzureDiskVolumeSource": "io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource", - "v1.ConfigMap": "io.k8s.kubernetes.pkg.api.v1.ConfigMap", - "v1beta1.IngressSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec", - "v1.APIVersions": "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions", - "resource.Quantity": "io.k8s.apimachinery.pkg.api.resource.Quantity", - "v1.Event": "io.k8s.kubernetes.pkg.api.v1.Event", - "v1.JobStatus": "io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus", - "v1beta1.ServerAddressByClientCIDR": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ServerAddressByClientCIDR", - "v1.LocalObjectReference": "io.k8s.kubernetes.pkg.api.v1.LocalObjectReference", - "v1.HostPathVolumeSource": "io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource", - "v1.LoadBalancerStatus": "io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus", - "v1beta1.HTTPIngressPath": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath", - "v1beta1.DeploymentSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec", - "v1.ExecAction": "io.k8s.kubernetes.pkg.api.v1.ExecAction", - "v1.HorizontalPodAutoscalerStatus": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus", - "v1.JobSpec": "io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec", - "v1beta1.DaemonSetSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec", - "v1.SELinuxOptions": "io.k8s.kubernetes.pkg.api.v1.SELinuxOptions", - "v1beta1.IngressTLS": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS", - "v1beta1.ScaleStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus", - "v1.NamespaceSpec": "io.k8s.kubernetes.pkg.api.v1.NamespaceSpec", - "v1.StatusDetails": "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails", - "v1beta1.IngressList": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList", - "v1beta1.DeploymentRollback": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback", - "v1.GlusterfsVolumeSource": "io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource", - "v1.JobList": "io.k8s.kubernetes.pkg.apis.batch.v1.JobList", - "v1.EventList": "io.k8s.kubernetes.pkg.api.v1.EventList", - "v1beta1.IngressRule": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule", - "v1.APIResourceList": "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList", - "v1.ConfigMapKeySelector": "io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector", - "v1.PhotonPersistentDiskVolumeSource": "io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource", - "v1.HTTPHeader": "io.k8s.kubernetes.pkg.api.v1.HTTPHeader", - "version.Info": "io.k8s.apimachinery.pkg.version.Info", - "v1.EventSource": "io.k8s.kubernetes.pkg.api.v1.EventSource", - "v1.OwnerReference": "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference", - "v1beta1.ScaleSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec", - "v1.GitRepoVolumeSource": "io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource", - "v1.ConfigMapEnvSource": "io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource", - "v1beta1.DeploymentCondition": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition", - "v1.EnvVar": "io.k8s.kubernetes.pkg.api.v1.EnvVar", - "v1.DownwardAPIVolumeSource": "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource", - "v1.SecurityContext": "io.k8s.kubernetes.pkg.api.v1.SecurityContext", - "v1beta1.IngressStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus", - "v1beta1.Cluster": "io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster", - "v1.Capabilities": "io.k8s.kubernetes.pkg.api.v1.Capabilities", - "v1.AWSElasticBlockStoreVolumeSource": "io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource", - "v1beta1.ReplicaSet": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet", - "v1.ConfigMapList": "io.k8s.kubernetes.pkg.api.v1.ConfigMapList", - "v1.Lifecycle": "io.k8s.kubernetes.pkg.api.v1.Lifecycle", - "v1beta1.Scale": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale", - "v1beta1.DaemonSet": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet", - "v1beta1.RollingUpdateDeployment": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment", - "v1beta1.DaemonSetStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus", - "v1.Preconditions": "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions", - "v1beta1.DaemonSetList": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList", - "v1.RBDVolumeSource": "io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource", - "v1.NFSVolumeSource": "io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource", - "v1.NodeSelectorRequirement": "io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement", - "v1.ResourceRequirements": "io.k8s.kubernetes.pkg.api.v1.ResourceRequirements", - "v1.WatchEvent": "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent", - "v1.HTTPGetAction": "io.k8s.kubernetes.pkg.api.v1.HTTPGetAction", - "v1beta1.RollbackConfig": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig", - "v1.PodSecurityContext": "io.k8s.kubernetes.pkg.api.v1.PodSecurityContext", - "v1.VolumeMount": "io.k8s.kubernetes.pkg.api.v1.VolumeMount", - "v1.NamespaceList": "io.k8s.kubernetes.pkg.api.v1.NamespaceList", - "v1.TCPSocketAction": "io.k8s.kubernetes.pkg.api.v1.TCPSocketAction", - "v1.ResourceFieldSelector": "io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector", - "v1.Container": "io.k8s.kubernetes.pkg.api.v1.Container", - "v1.VsphereVirtualDiskVolumeSource": "io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource", - "v1.EmptyDirVolumeSource": "io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource", - "v1.Status": "io.k8s.apimachinery.pkg.apis.meta.v1.Status", - } - - for k, v := range compatibilityMap { - if _, found := s.Definitions[v]; !found { - continue - } - s.Definitions[k] = spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: spec.MustCreateRef("#/definitions/" + openapicommon.EscapeJsonPointer(v)), - Description: fmt.Sprintf("Deprecated. Please use %s instead.", v), - }, - } - } - return s, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/BUILD b/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/BUILD deleted file mode 100644 index a1ebcd135..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", -) - -go_binary( - name = "federation-controller-manager", - importpath = "k8s.io/kubernetes/federation/cmd/federation-controller-manager", - library = ":go_default_library", -) - -go_library( - name = "go_default_library", - srcs = ["controller-manager.go"], - importpath = "k8s.io/kubernetes/federation/cmd/federation-controller-manager", - deps = [ - "//federation/cmd/federation-controller-manager/app:go_default_library", - "//federation/cmd/federation-controller-manager/app/options:go_default_library", - "//pkg/util/reflector/prometheus:go_default_library", - "//pkg/util/workqueue/prometheus:go_default_library", - "//pkg/version/verflag:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/logs:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/cmd/federation-controller-manager/app:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/OWNERS b/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/OWNERS deleted file mode 100644 index 571c01c05..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/OWNERS +++ /dev/null @@ -1,8 +0,0 @@ -approvers: -- quinton-hoole -- nikhiljindal -- madhusudancs -reviewers: -- quinton-hoole -- nikhiljindal -- madhusudancs diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/BUILD b/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/BUILD deleted file mode 100644 index e388480f5..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/BUILD +++ /dev/null @@ -1,82 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "controllermanager.go", - "plugins.go", - ], - importpath = "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/cmd/federation-controller-manager/app/options:go_default_library", - "//federation/pkg/dnsprovider/providers/aws/route53:go_default_library", - "//federation/pkg/dnsprovider/providers/coredns:go_default_library", - "//federation/pkg/dnsprovider/providers/google/clouddns:go_default_library", - "//federation/pkg/federatedtypes:go_default_library", - "//federation/pkg/federation-controller/cluster:go_default_library", - "//federation/pkg/federation-controller/ingress:go_default_library", - "//federation/pkg/federation-controller/job:go_default_library", - "//federation/pkg/federation-controller/service:go_default_library", - "//federation/pkg/federation-controller/service/dns:go_default_library", - "//federation/pkg/federation-controller/sync:go_default_library", - "//federation/pkg/federation-controller/util/eventsink:go_default_library", - "//pkg/api:go_default_library", - "//pkg/util/configz:go_default_library", - "//pkg/version:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", - "//vendor/github.com/spf13/cobra:go_default_library", - "//vendor/github.com/spf13/pflag: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/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/tools/leaderelection:go_default_library", - "//vendor/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["controllermanager_test.go"], - importpath = "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app", - library = ":go_default_library", - deps = [ - "//federation/pkg/federation-controller/ingress:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/cmd/federation-controller-manager/app/options:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/controllermanager.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/controllermanager.go deleted file mode 100644 index 193459630..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/controllermanager.go +++ /dev/null @@ -1,318 +0,0 @@ -/* -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 app implements a server that runs a set of active -// components. This includes cluster controller - -package app - -import ( - "net" - "net/http" - "net/http/pprof" - "os" - goruntime "runtime" - "strconv" - "time" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apiserver/pkg/server/healthz" - utilflag "k8s.io/apiserver/pkg/util/flag" - "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/client-go/tools/leaderelection" - "k8s.io/client-go/tools/leaderelection/resourcelock" - "k8s.io/client-go/tools/record" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options" - "k8s.io/kubernetes/federation/pkg/federatedtypes" - clustercontroller "k8s.io/kubernetes/federation/pkg/federation-controller/cluster" - ingresscontroller "k8s.io/kubernetes/federation/pkg/federation-controller/ingress" - jobcontroller "k8s.io/kubernetes/federation/pkg/federation-controller/job" - servicecontroller "k8s.io/kubernetes/federation/pkg/federation-controller/service" - servicednscontroller "k8s.io/kubernetes/federation/pkg/federation-controller/service/dns" - synccontroller "k8s.io/kubernetes/federation/pkg/federation-controller/sync" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/util/configz" - "k8s.io/kubernetes/pkg/version" - - "github.com/golang/glog" - "github.com/prometheus/client_golang/prometheus" - "github.com/spf13/cobra" - "github.com/spf13/pflag" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/discovery" -) - -const ( - apiserverWaitTimeout = 2 * time.Minute - apiserverRetryInterval = 2 * time.Second -) - -// NewControllerManagerCommand creates a *cobra.Command object with default parameters -func NewControllerManagerCommand() *cobra.Command { - s := options.NewCMServer() - s.AddFlags(pflag.CommandLine) - cmd := &cobra.Command{ - Use: "federation-controller-manager", - Long: `The federation controller manager is a daemon that embeds -the core control loops shipped with federation. In applications of robotics and -automation, a control loop is a non-terminating loop that regulates the state of -the system. In federation, a controller is a control loop that watches the shared -state of the federation cluster through the apiserver and makes changes attempting -to move the current state towards the desired state. Examples of controllers that -ship with federation today is the cluster controller.`, - Run: func(cmd *cobra.Command, args []string) { - }, - } - - return cmd -} - -// Run runs the CMServer. This should never exit. -func Run(s *options.CMServer) error { - glog.Infof("%+v", version.Get()) - if c, err := configz.New("componentconfig"); err == nil { - c.Set(s.ControllerManagerConfiguration) - } else { - glog.Errorf("unable to register configz: %s", err) - } - - restClientCfg, err := clientcmd.BuildConfigFromFlags(s.Master, s.Kubeconfig) - if err != nil || restClientCfg == nil { - glog.V(2).Infof("Couldn't build the rest client config from flags: %v", err) - return err - } - - // Override restClientCfg qps/burst settings from flags - restClientCfg.QPS = s.APIServerQPS - restClientCfg.Burst = s.APIServerBurst - - go func() { - mux := http.NewServeMux() - healthz.InstallHandler(mux) - if s.EnableProfiling { - mux.HandleFunc("/debug/pprof/", pprof.Index) - mux.HandleFunc("/debug/pprof/profile", pprof.Profile) - mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol) - mux.HandleFunc("/debug/pprof/trace", pprof.Trace) - if s.EnableContentionProfiling { - goruntime.SetBlockProfileRate(1) - } - } - mux.Handle("/metrics", prometheus.Handler()) - - server := &http.Server{ - Addr: net.JoinHostPort(s.Address, strconv.Itoa(s.Port)), - Handler: mux, - } - glog.Fatal(server.ListenAndServe()) - }() - - federationClientset, err := federationclientset.NewForConfig(restclient.AddUserAgent(restClientCfg, "federation-controller-manager")) - if err != nil { - glog.Fatalf("Invalid API configuration: %v", err) - } - - run := func(stop <-chan struct{}) { - err := StartControllers(s, restClientCfg, stop) - glog.Fatalf("error running controllers: %v", err) - panic("unreachable") - } - - if !s.LeaderElection.LeaderElect { - run(nil) - // unreachable - } - - if err := ensureFederationNamespace(federationClientset, s.FederationOnlyNamespace); err != nil { - glog.Fatalf("Failed to ensure federation only namespace %s: %v", s.FederationOnlyNamespace, err) - } - - leaderElectionClient := kubernetes.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "leader-election")) - eventBroadcaster := record.NewBroadcaster() - eventBroadcaster.StartLogging(glog.Infof) - eventBroadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(federationClientset)) - recorder := eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: "controller-manager"}) - - id, err := os.Hostname() - if err != nil { - return err - } - - rl := resourcelock.ConfigMapLock{ - ConfigMapMeta: metav1.ObjectMeta{ - Namespace: s.FederationOnlyNamespace, - Name: "federation-controller-manager-leader-election", - Annotations: map[string]string{ - federationapi.FederationClusterSelectorAnnotation: federationapi.FederationOnlyClusterSelector, - }}, - Client: leaderElectionClient.CoreV1(), - LockConfig: resourcelock.ResourceLockConfig{ - Identity: id, - EventRecorder: recorder, - }, - } - - leaderelection.RunOrDie(leaderelection.LeaderElectionConfig{ - Lock: &rl, - LeaseDuration: s.LeaderElection.LeaseDuration.Duration, - RenewDeadline: s.LeaderElection.RenewDeadline.Duration, - RetryPeriod: s.LeaderElection.RetryPeriod.Duration, - Callbacks: leaderelection.LeaderCallbacks{ - OnStartedLeading: run, - OnStoppedLeading: func() { - glog.Fatalf("leaderelection lost") - }, - }, - }) - - panic("unreachable") -} - -func StartControllers(s *options.CMServer, restClientCfg *restclient.Config, stopChan <-chan struct{}) error { - minimizeLatency := false - - discoveryClient := discovery.NewDiscoveryClientForConfigOrDie(restClientCfg) - serverResources, err := discoveryClient.ServerResources() - if err != nil { - glog.Fatalf("Could not find resources from API Server: %v", err) - } - - clustercontroller.StartClusterController(restClientCfg, stopChan, s.ClusterMonitorPeriod.Duration) - - if controllerEnabled(s.Controllers, serverResources, servicecontroller.ControllerName, servicecontroller.RequiredResources, true) { - if controllerEnabled(s.Controllers, serverResources, servicednscontroller.ControllerName, servicecontroller.RequiredResources, true) { - serviceDNScontrollerClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, servicednscontroller.UserAgentName)) - serviceDNSController, err := servicednscontroller.NewServiceDNSController(serviceDNScontrollerClientset, s.DnsProvider, s.DnsConfigFile, s.FederationName, s.ServiceDnsSuffix, s.ZoneName, s.ZoneID) - if err != nil { - glog.Fatalf("Failed to start service dns controller: %v", err) - } else { - go serviceDNSController.DNSControllerRun(s.ConcurrentServiceSyncs, wait.NeverStop) - } - } - - glog.V(3).Infof("Loading client config for service controller %q", servicecontroller.UserAgentName) - scClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, servicecontroller.UserAgentName)) - serviceController := servicecontroller.New(scClientset) - go serviceController.Run(s.ConcurrentServiceSyncs, stopChan) - } - - adapterSpecificArgs := make(map[string]interface{}) - adapterSpecificArgs[federatedtypes.HpaKind] = &s.HpaScaleForbiddenWindow - for kind, federatedType := range federatedtypes.FederatedTypes() { - if controllerEnabled(s.Controllers, serverResources, federatedType.ControllerName, federatedType.RequiredResources, true) { - synccontroller.StartFederationSyncController(kind, federatedType.AdapterFactory, restClientCfg, stopChan, minimizeLatency, adapterSpecificArgs) - } - } - - if controllerEnabled(s.Controllers, serverResources, jobcontroller.ControllerName, jobcontroller.RequiredResources, true) { - glog.V(3).Infof("Loading client config for job controller %q", jobcontroller.UserAgentName) - jobClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, jobcontroller.UserAgentName)) - jobController := jobcontroller.NewJobController(jobClientset) - glog.V(3).Infof("Running job controller") - go jobController.Run(s.ConcurrentJobSyncs, wait.NeverStop) - } - - if controllerEnabled(s.Controllers, serverResources, ingresscontroller.ControllerName, ingresscontroller.RequiredResources, true) { - glog.V(3).Infof("Loading client config for ingress controller %q", ingresscontroller.UserAgentName) - ingClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, ingresscontroller.UserAgentName)) - ingressController := ingresscontroller.NewIngressController(ingClientset) - glog.V(3).Infof("Running ingress controller") - ingressController.Run(stopChan) - } - - select {} -} - -func controllerEnabled(controllers utilflag.ConfigurationMap, serverResources []*metav1.APIResourceList, controller string, requiredResources []schema.GroupVersionResource, defaultValue bool) bool { - controllerConfig, ok := controllers[controller] - if ok { - if controllerConfig == "false" { - glog.Infof("%s controller disabled by config", controller) - return false - } - if controllerConfig == "true" { - if !hasRequiredResources(serverResources, requiredResources) { - glog.Fatalf("%s controller enabled explicitly but API Server does not have required resources", controller) - panic("unreachable") - } - return true - } - } else if defaultValue { - if !hasRequiredResources(serverResources, requiredResources) { - glog.Warningf("%s controller disabled because API Server does not have required resources", controller) - return false - } - } - return defaultValue -} - -func hasRequiredResources(serverResources []*metav1.APIResourceList, requiredResources []schema.GroupVersionResource) bool { - for _, resource := range requiredResources { - found := false - for _, serverResource := range serverResources { - if serverResource.GroupVersion == resource.GroupVersion().String() { - for _, apiResource := range serverResource.APIResources { - if apiResource.Name == resource.Resource { - found = true - break - } - } - } - } - if !found { - return false - } - } - return true -} - -func ensureFederationNamespace(clientset *federationclientset.Clientset, namespace string) error { - ns := v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: namespace, - Annotations: map[string]string{ - federationapi.FederationClusterSelectorAnnotation: federationapi.FederationOnlyClusterSelector, - }, - }, - } - // Probably this is the first operation by controller manager on api server. So retry the operation - // until timeout to handle scenario where api server is not yet ready. - err := wait.PollImmediate(apiserverRetryInterval, apiserverWaitTimeout, func() (bool, error) { - var err error - _, err = clientset.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}) - if err != nil { - if !errors.IsNotFound(err) { - glog.V(2).Infof("Failed to get namespace %s: %v", namespace, err) - return false, nil - } - _, err := clientset.CoreV1().Namespaces().Create(&ns) - if err != nil { - glog.V(2).Infof("Failed to create namespace %s: %v", namespace, err) - return false, nil - } - } - return true, nil - }) - return err -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/controllermanager_test.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/controllermanager_test.go deleted file mode 100644 index 0d44fe709..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/controllermanager_test.go +++ /dev/null @@ -1,88 +0,0 @@ -/* -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 app - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - utilflag "k8s.io/apiserver/pkg/util/flag" - ingresscontroller "k8s.io/kubernetes/federation/pkg/federation-controller/ingress" - "testing" -) - -func TestControllerEnabled(t *testing.T) { - - testCases := []struct { - controllersConfig utilflag.ConfigurationMap - serverResources []*metav1.APIResourceList - controller string - requiredResources []schema.GroupVersionResource - defaultValue bool - expectedResult bool - }{ - // no override, API server has Ingress enabled - { - controllersConfig: utilflag.ConfigurationMap{}, - serverResources: []*metav1.APIResourceList{ - { - GroupVersion: "extensions/v1beta1", - APIResources: []metav1.APIResource{ - {Name: "ingresses", Namespaced: true, Kind: "Ingress"}, - }, - }, - }, - controller: ingresscontroller.ControllerName, - requiredResources: ingresscontroller.RequiredResources, - defaultValue: true, - expectedResult: true, - }, - // no override, API server has Ingress disabled - { - controllersConfig: utilflag.ConfigurationMap{}, - serverResources: []*metav1.APIResourceList{}, - controller: ingresscontroller.ControllerName, - requiredResources: ingresscontroller.RequiredResources, - defaultValue: true, - expectedResult: false, - }, - // API server has Ingress enabled, override config to disable Ingress controller - { - controllersConfig: utilflag.ConfigurationMap{ - ingresscontroller.ControllerName: "false", - }, - serverResources: []*metav1.APIResourceList{ - { - GroupVersion: "extensions/v1beta1", - APIResources: []metav1.APIResource{ - {Name: "ingresses", Namespaced: true, Kind: "Ingress"}, - }, - }, - }, - controller: ingresscontroller.ControllerName, - requiredResources: ingresscontroller.RequiredResources, - defaultValue: true, - expectedResult: false, - }, - } - - for _, test := range testCases { - actualEnabled := controllerEnabled(test.controllersConfig, test.serverResources, test.controller, test.requiredResources, test.defaultValue) - if actualEnabled != test.expectedResult { - t.Errorf("%s controller: expected %v, got %v", test.controller, test.expectedResult, actualEnabled) - } - } -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options/BUILD b/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options/BUILD deleted file mode 100644 index 7794cd936..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["options.go"], - importpath = "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options", - deps = [ - "//federation/pkg/dnsprovider:go_default_library", - "//pkg/apis/componentconfig:go_default_library", - "//pkg/client/leaderelectionconfig:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options/options.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options/options.go deleted file mode 100644 index 470d61e60..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options/options.go +++ /dev/null @@ -1,152 +0,0 @@ -/* -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 options provides the flags used for the controller manager. - -package options - -import ( - "fmt" - "time" - - "github.com/spf13/pflag" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - utilflag "k8s.io/apiserver/pkg/util/flag" - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/pkg/apis/componentconfig" - "k8s.io/kubernetes/pkg/client/leaderelectionconfig" -) - -type ControllerManagerConfiguration struct { - // port is the port that the controller-manager's http service runs on. - Port int `json:"port"` - // address is the IP address to serve on (set to 0.0.0.0 for all interfaces). - Address string `json:"address"` - // federation name. - FederationName string `json:"federationName"` - // zone name, like example.com. - ZoneName string `json:"zoneName"` - // zone ID, for use when zoneName is ambiguous. - ZoneID string `json:"zoneID"` - // ServiceDnsSuffix is the dns suffix to use when publishing federated services. - ServiceDnsSuffix string `json:"serviceDnsSuffix"` - // dnsProvider is the provider for dns services. - DnsProvider string `json:"dnsProvider"` - // dnsConfigFile is the path to the dns provider configuration file. - DnsConfigFile string `json:"dnsConfigFile"` - // concurrentServiceSyncs is the number of services that are - // allowed to sync concurrently. Larger number = more responsive service - // management, but more CPU (and network) load. - ConcurrentServiceSyncs int `json:"concurrentServiceSyncs"` - // concurrentReplicaSetSyncs is the number of ReplicaSets that are - // allowed to sync concurrently. Larger number = more responsive service - // management, but more CPU (and network) load. - ConcurrentReplicaSetSyncs int `json:"concurrentReplicaSetSyncs"` - // concurrentJobSyncs is the number of Jobs that are - // allowed to sync concurrently. Larger number = more responsive service - // management, but more CPU (and network) load. - ConcurrentJobSyncs int `json:"concurrentJobSyncs"` - // clusterMonitorPeriod is the period for syncing ClusterStatus in cluster controller. - ClusterMonitorPeriod metav1.Duration `json:"clusterMonitorPeriod"` - // APIServerQPS is the QPS to use while talking with federation apiserver. - APIServerQPS float32 `json:"federatedAPIQPS"` - // APIServerBurst is the burst to use while talking with federation apiserver. - APIServerBurst int `json:"federatedAPIBurst"` - // enableProfiling enables profiling via web interface host:port/debug/pprof/ - EnableProfiling bool `json:"enableProfiling"` - // enableContentionProfiling enables lock contention profiling, if enableProfiling is true. - EnableContentionProfiling bool `json:"enableContentionProfiling"` - // leaderElection defines the configuration of leader election client. - LeaderElection componentconfig.LeaderElectionConfiguration `json:"leaderElection"` - // contentType is contentType of requests sent to apiserver. - ContentType string `json:"contentType"` - // ConfigurationMap determining which controllers should be enabled or disabled - Controllers utilflag.ConfigurationMap `json:"controllers"` - // HpaScaleForbiddenWindow is the duration used by federation hpa controller to - // determine if it can move max and/or min replicas around (or not), of a cluster local - // hpa object, by comparing current time with the last scaled time of that cluster local hpa. - // Lower value will result in faster response to scalibility conditions achieved - // by cluster local hpas on local replicas, but too low a value can result in thrashing. - // Higher values will result in slower response to scalibility conditions on local replicas. - HpaScaleForbiddenWindow metav1.Duration `json:"HpaScaleForbiddenWindow"` - // pre-configured namespace name that would be created only in federation control plane - FederationOnlyNamespace string `json:"federationOnlyNamespaceName"` -} - -// CMServer is the main context object for the controller manager. -type CMServer struct { - ControllerManagerConfiguration - Master string - Kubeconfig string -} - -const ( - // FederatedControllerManagerPort is the default port for the federation controller manager status server. - // May be overridden by a flag at startup. - FederatedControllerManagerPort = 10253 -) - -// NewCMServer creates a new CMServer with a default config. -func NewCMServer() *CMServer { - s := CMServer{ - ControllerManagerConfiguration: ControllerManagerConfiguration{ - Port: FederatedControllerManagerPort, - Address: "0.0.0.0", - ConcurrentServiceSyncs: 10, - ConcurrentReplicaSetSyncs: 10, - ClusterMonitorPeriod: metav1.Duration{Duration: 40 * time.Second}, - ConcurrentJobSyncs: 10, - APIServerQPS: 20.0, - APIServerBurst: 30, - LeaderElection: leaderelectionconfig.DefaultLeaderElectionConfiguration(), - Controllers: make(utilflag.ConfigurationMap), - HpaScaleForbiddenWindow: metav1.Duration{Duration: 2 * time.Minute}, - FederationOnlyNamespace: "federation-only", - }, - } - return &s -} - -// AddFlags adds flags for a specific CMServer to the specified FlagSet -func (s *CMServer) AddFlags(fs *pflag.FlagSet) { - fs.IntVar(&s.Port, "port", s.Port, "The port that the controller-manager's http service runs on") - fs.Var(componentconfig.IPVar{Val: &s.Address}, "address", "The IP address to serve on (set to 0.0.0.0 for all interfaces)") - fs.StringVar(&s.FederationName, "federation-name", s.FederationName, "Federation name.") - fs.StringVar(&s.ZoneName, "zone-name", s.ZoneName, "Zone name, like example.com.") - fs.StringVar(&s.ZoneID, "zone-id", s.ZoneID, "Zone ID, needed if the zone name is not unique.") - fs.StringVar(&s.ServiceDnsSuffix, "service-dns-suffix", s.ServiceDnsSuffix, "DNS Suffix to use when publishing federated service names. Defaults to zone-name") - fs.IntVar(&s.ConcurrentServiceSyncs, "concurrent-service-syncs", s.ConcurrentServiceSyncs, "The number of service syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load") - fs.IntVar(&s.ConcurrentReplicaSetSyncs, "concurrent-replicaset-syncs", s.ConcurrentReplicaSetSyncs, "The number of ReplicaSets syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load") - fs.IntVar(&s.ConcurrentJobSyncs, "concurrent-job-syncs", s.ConcurrentJobSyncs, "The number of Jobs syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load") - fs.DurationVar(&s.ClusterMonitorPeriod.Duration, "cluster-monitor-period", s.ClusterMonitorPeriod.Duration, "The period for syncing ClusterStatus in ClusterController.") - fs.BoolVar(&s.EnableProfiling, "profiling", true, "Enable profiling via web interface host:port/debug/pprof/") - fs.BoolVar(&s.EnableContentionProfiling, "contention-profiling", false, "Enable lock contention profiling, if profiling is enabled") - fs.StringVar(&s.Master, "master", s.Master, "The address of the federation API server (overrides any value in kubeconfig)") - fs.StringVar(&s.Kubeconfig, "kubeconfig", s.Kubeconfig, "Path to kubeconfig file with authorization and master location information.") - fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now.") - fs.Float32Var(&s.APIServerQPS, "federated-api-qps", s.APIServerQPS, "QPS to use while talking with federation apiserver") - fs.IntVar(&s.APIServerBurst, "federated-api-burst", s.APIServerBurst, "Burst to use while talking with federation apiserver") - fs.StringVar(&s.DnsProvider, "dns-provider", s.DnsProvider, "DNS provider. Valid values are: "+fmt.Sprintf("%q", dnsprovider.RegisteredDnsProviders())) - fs.StringVar(&s.DnsConfigFile, "dns-provider-config", s.DnsConfigFile, "Path to config file for configuring DNS provider.") - fs.DurationVar(&s.HpaScaleForbiddenWindow.Duration, "hpa-scale-forbidden-window", s.HpaScaleForbiddenWindow.Duration, "The time window wrt cluster local hpa lastscale time, during which federated hpa would not move the hpa max/min replicas around") - fs.Var(&s.Controllers, "controllers", ""+ - "A set of key=value pairs that describe controller configuration "+ - "to enable/disable specific controllers. Key should be the resource name (like services) and value should be true or false. "+ - "For example: services=false,ingresses=false") - fs.StringVar(&s.FederationOnlyNamespace, "federation-only-namespace", s.FederationOnlyNamespace, "Name of the namespace that would be created only in federation control plane.") - leaderelectionconfig.BindFlags(&s.LeaderElection, fs) -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/plugins.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/plugins.go deleted file mode 100644 index ad6e0fb1e..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/plugins.go +++ /dev/null @@ -1,27 +0,0 @@ -/* -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 app - -// This file exists to force the desired plugin implementations to be linked. -// This should probably be part of some configuration fed into the build for a -// given binary target. -import ( - // DNS providers - _ "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53" - _ "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns" - _ "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns" -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/controller-manager.go b/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/controller-manager.go deleted file mode 100644 index 69ba6f21e..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/federation-controller-manager/controller-manager.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright 2014 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 main - -import ( - "fmt" - "os" - - "github.com/spf13/pflag" - "k8s.io/apiserver/pkg/server/healthz" - "k8s.io/apiserver/pkg/util/flag" - "k8s.io/apiserver/pkg/util/logs" - "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app" - "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options" - _ "k8s.io/kubernetes/pkg/util/reflector/prometheus" // for reflector metric registration - _ "k8s.io/kubernetes/pkg/util/workqueue/prometheus" // for workqueue metric registration - "k8s.io/kubernetes/pkg/version/verflag" -) - -func init() { - healthz.DefaultHealthz() -} - -func main() { - s := options.NewCMServer() - s.AddFlags(pflag.CommandLine) - - flag.InitFlags() - logs.InitLogs() - defer logs.FlushLogs() - - verflag.PrintAndExitIfRequested() - - if err := app.Run(s); err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - os.Exit(1) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/genfeddocs/BUILD b/vendor/k8s.io/kubernetes/federation/cmd/genfeddocs/BUILD deleted file mode 100644 index 0a537a48d..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/genfeddocs/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", -) - -go_binary( - name = "genfeddocs", - importpath = "k8s.io/kubernetes/federation/cmd/genfeddocs", - library = ":go_default_library", -) - -go_library( - name = "go_default_library", - srcs = ["gen_fed_docs.go"], - importpath = "k8s.io/kubernetes/federation/cmd/genfeddocs", - deps = [ - "//cmd/genutils:go_default_library", - "//federation/cmd/federation-apiserver/app:go_default_library", - "//federation/cmd/federation-controller-manager/app:go_default_library", - "//federation/cmd/kubefed/app:go_default_library", - "//federation/pkg/kubefed:go_default_library", - "//pkg/kubectl/cmd/util:go_default_library", - "//vendor/github.com/spf13/cobra/doc:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/genfeddocs/gen_fed_docs.go b/vendor/k8s.io/kubernetes/federation/cmd/genfeddocs/gen_fed_docs.go deleted file mode 100644 index 237120837..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/genfeddocs/gen_fed_docs.go +++ /dev/null @@ -1,71 +0,0 @@ -/* -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 main - -import ( - "fmt" - "os" - - "github.com/spf13/cobra/doc" - "k8s.io/kubernetes/cmd/genutils" - fedapiservapp "k8s.io/kubernetes/federation/cmd/federation-apiserver/app" - fedcmapp "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app" - kubefedapp "k8s.io/kubernetes/federation/cmd/kubefed/app" - "k8s.io/kubernetes/federation/pkg/kubefed" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" -) - -// Note: We have a separate binary for generating federation docs and kube docs because of the way api groups are api.Registry. -// If we import both kube-apiserver and federation-apiserver in the same binary then api groups from both kube and federation will get registered in both the apiservers -// and hence will produce incorrect flag values. -// We can potentially merge cmd/kubegendocs and this when we have fixed that problem. -func main() { - // use os.Args instead of "flags" because "flags" will mess up the man pages! - path := "" - module := "" - if len(os.Args) == 3 { - path = os.Args[1] - module = os.Args[2] - } else { - fmt.Fprintf(os.Stderr, "usage: %s [output directory] [module] \n", os.Args[0]) - os.Exit(1) - } - - outDir, err := genutils.OutDir(path) - if err != nil { - fmt.Fprintf(os.Stderr, "failed to get output directory: %v\n", err) - os.Exit(1) - } - - switch module { - case "federation-apiserver": - // generate docs for federated-apiserver - apiserver := fedapiservapp.NewAPIServerCommand() - doc.GenMarkdownTree(apiserver, outDir) - case "federation-controller-manager": - // generate docs for kube-controller-manager - controllermanager := fedcmapp.NewControllerManagerCommand() - doc.GenMarkdownTree(controllermanager, outDir) - case "kubefed": - // generate docs for kubefed - kubefed := kubefed.NewKubeFedCommand(cmdutil.NewFactory(nil), os.Stdin, os.Stdout, os.Stderr, kubefedapp.GetDefaultServerImage(), kubefedapp.DefaultEtcdImage) - doc.GenMarkdownTree(kubefed, outDir) - default: - fmt.Fprintf(os.Stderr, "Module %s is not supported", module) - os.Exit(1) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/kubefed/BUILD b/vendor/k8s.io/kubernetes/federation/cmd/kubefed/BUILD deleted file mode 100644 index 9a3734d93..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/kubefed/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", -) - -go_binary( - name = "kubefed", - importpath = "k8s.io/kubernetes/federation/cmd/kubefed", - library = ":go_default_library", -) - -go_library( - name = "go_default_library", - srcs = ["kubefed.go"], - importpath = "k8s.io/kubernetes/federation/cmd/kubefed", - deps = ["//federation/cmd/kubefed/app:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/cmd/kubefed/app:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/kubefed/app/BUILD b/vendor/k8s.io/kubernetes/federation/cmd/kubefed/app/BUILD deleted file mode 100644 index 76307bbd7..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/kubefed/app/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["kubefed.go"], - importpath = "k8s.io/kubernetes/federation/cmd/kubefed/app", - deps = [ - "//federation/pkg/kubefed:go_default_library", - "//pkg/client/metrics/prometheus:go_default_library", - "//pkg/kubectl/cmd/util:go_default_library", - "//pkg/kubectl/util/logs:go_default_library", - "//pkg/version:go_default_library", - "//pkg/version/prometheus:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/cmd/kubefed/app/kubefed.go b/vendor/k8s.io/kubernetes/federation/cmd/kubefed/app/kubefed.go deleted file mode 100644 index 72ccb7fac..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/kubefed/app/kubefed.go +++ /dev/null @@ -1,47 +0,0 @@ -/* -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 app - -import ( - "fmt" - "os" - "strings" - - "k8s.io/kubernetes/federation/pkg/kubefed" - _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/kubectl/util/logs" - "k8s.io/kubernetes/pkg/version" - _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration -) - -const ( - hyperkubeImageName = "gcr.io/google_containers/hyperkube-amd64" - DefaultEtcdImage = "gcr.io/google_containers/etcd:3.1.10" -) - -func GetDefaultServerImage() string { - return fmt.Sprintf("%s:%s", hyperkubeImageName, strings.Replace(version.Get().String(), "+", "_", 1)) -} - -func Run() error { - logs.InitLogs() - defer logs.FlushLogs() - - cmd := kubefed.NewKubeFedCommand(cmdutil.NewFactory(nil), os.Stdin, os.Stdout, os.Stderr, GetDefaultServerImage(), DefaultEtcdImage) - return cmd.Execute() -} diff --git a/vendor/k8s.io/kubernetes/federation/cmd/kubefed/kubefed.go b/vendor/k8s.io/kubernetes/federation/cmd/kubefed/kubefed.go deleted file mode 100644 index 72a03efc6..000000000 --- a/vendor/k8s.io/kubernetes/federation/cmd/kubefed/kubefed.go +++ /dev/null @@ -1,30 +0,0 @@ -/* -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 main - -import ( - "os" - - "k8s.io/kubernetes/federation/cmd/kubefed/app" -) - -func main() { - if err := app.Run(); err != nil { - os.Exit(1) - } - os.Exit(0) -} diff --git a/vendor/k8s.io/kubernetes/federation/deploy/config.json.sample b/vendor/k8s.io/kubernetes/federation/deploy/config.json.sample deleted file mode 100644 index 9bb7e0a73..000000000 --- a/vendor/k8s.io/kubernetes/federation/deploy/config.json.sample +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "phase1": { - "num_nodes": 3, - "cluster_name": "cluster1-kubernetes", - "cloud_provider": "gce", - "cluster_cidr": "10.180.0.0/14", - "gce": { - "os_image": "ubuntu-1604-xenial-v20160420c", - "instance_type": "n1-standard-2", - "project": "", - "region": "us-central1", - "zone": "us-central1-a", - "network": "federation" - } - }, - "phase2": { - "docker_registry": "gcr.io/google-containers", - "kubernetes_version": "v1.4.0" - }, - "phase3": { - "run_addons": true, - "kube_proxy": true, - "dashboard": true, - "heapster": true, - "kube_dns": true - } - }, - { - "phase1": { - "num_nodes": 3, - "cluster_name": "cluster2-kubernetes", - "cloud_provider": "gce", - "cluster_cidr": "10.184.0.0/14", - "gce": { - "os_image": "ubuntu-1604-xenial-v20160420c", - "instance_type": "n1-standard-2", - "project": "", - "region": "us-central1", - "zone": "us-central1-b", - "network": "federation" - } - }, - "phase2": { - "docker_registry": "gcr.io/google-containers", - "kubernetes_version": "v1.4.0" - }, - "phase3": { - "run_addons": true, - "kube_proxy": true, - "dashboard": true, - "heapster": true, - "kube_dns": true - } - }, - { - "phase1": { - "num_nodes": 3, - "cluster_name": "cluster3-kubernetes", - "cloud_provider": "gce", - "cluster_cidr": "10.188.0.0/14", - "gce": { - "os_image": "ubuntu-1604-xenial-v20160420c", - "instance_type": "n1-standard-2", - "project": "", - "region": "us-central1", - "zone": "us-central1-f", - "network": "federation" - } - }, - "phase2": { - "docker_registry": "gcr.io/google-containers", - "kubernetes_version": "v1.4.0" - }, - "phase3": { - "run_addons": true, - "kube_proxy": true, - "dashboard": true, - "heapster": true, - "kube_dns": true - } - } -] diff --git a/vendor/k8s.io/kubernetes/federation/deploy/deploy.sh b/vendor/k8s.io/kubernetes/federation/deploy/deploy.sh deleted file mode 100755 index c8e2383df..000000000 --- a/vendor/k8s.io/kubernetes/federation/deploy/deploy.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/env bash - -# 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. - -# This script turns up/turns down Kubernetes clusters and federation -# components using the built hyperkube image. -# e.g. run as: -# FEDERATION_OUTPUT_ROOT="./_output" ./deploy.sh deploy_clusters -# -# will deploy the kubernetes clusters using the configuration specified -# in $FEDERATION_OUTPUT_ROOT/config.json. -# -# See config.json.sample for a config.json example. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. - -# Provides the $KUBERNETES_PROVIDER variable and detect-project function -source "${KUBE_ROOT}/cluster/kube-util.sh" -# Provides logging facilities -source "${KUBE_ROOT}/cluster/lib/logging.sh" - -readonly KUBE_ANYWHERE_FEDERATION_IMAGE="gcr.io/madhusudancs-containers/kubernetes-anywhere-federation" -readonly KUBE_ANYWHERE_FEDERATION_VERSION="v0.9.0" -readonly KUBE_ANYWHERE_FEDERATION_CHARTS_IMAGE="gcr.io/madhusudancs-containers/federation-charts" -readonly KUBE_ANYWHERE_FEDERATION_CHARTS_VERSION="v0.9.1" - -readonly GOOGLE_APPLICATION_CREDENTIALS="${GOOGLE_APPLICATION_CREDENTIALS:-${HOME}/.config/gcloud/application_default_credentials.json}" -readonly KUBE_CONFIG_DIR="${KUBE_CONFIG_DIR:-${HOME}/.kube}" -readonly KUBE_CONFIG="${KUBE_CONFIG:-${HOME}/.kube/config}" - -function pull_installer() { - kube::log::status "Pulling installer images" - docker pull "${KUBE_ANYWHERE_FEDERATION_IMAGE}:${KUBE_ANYWHERE_FEDERATION_VERSION}" - docker pull "${KUBE_ANYWHERE_FEDERATION_CHARTS_IMAGE}:${KUBE_ANYWHERE_FEDERATION_CHARTS_VERSION}" -} - -function ensure_files() { - kube::log::status "Ensure provider is supported" - if [[ "${KUBERNETES_PROVIDER:-}" != "gce" && "${KUBERNETES_PROVIDER:-}" != "gke" ]]; then - echo "Supported providers: \"gce\", \"gke\"" - exit 1 - fi - - kube::log::status "Ensure credential files exist" - if [[ ! -f "${GOOGLE_APPLICATION_CREDENTIALS}" ]]; then - echo "Please ensure Google credentials file \""${GOOGLE_APPLICATION_CREDENTIALS}"\" exists." - exit 1 - fi - - if [[ ! -f "${KUBE_CONFIG}" ]]; then - echo "Please ensure kubeconfig file \""${KUBE_CONFIG}"\" exists." - exit 1 - fi -} - -function kube_action() { - : "${FEDERATION_OUTPUT_ROOT:?must be set}" - - local -r action="${1:-}" - kube::log::status "Action: ${action} clusters" - docker run \ - --user="$(id -u):$(id -g)" \ - -m 12G \ - -v "${GOOGLE_APPLICATION_CREDENTIALS}:/.config/gcloud/application_default_credentials.json:ro" \ - -v "${KUBE_CONFIG_DIR}:/.kube" \ - -v "${FEDERATION_OUTPUT_ROOT}:/_output" \ - "${KUBE_ANYWHERE_FEDERATION_IMAGE}:${KUBE_ANYWHERE_FEDERATION_VERSION}" \ - "${action}" -} - -function federation_action() { - : "${FEDERATION_OUTPUT_ROOT:?must be set}" - - local -r action="${1:-}" - kube::log::status "Action: ${action} federation components" - # For non-GKE clusters just mounting kubeconfig is sufficient. But we - # need gcloud credentials for GKE clusters, so we pass both kubeconfig - # and gcloud credentials - docker run \ - -m 12G \ - -v "${GOOGLE_APPLICATION_CREDENTIALS}:/root/.config/gcloud/application_default_credentials.json:ro" \ - -v "${KUBE_CONFIG}:/root/.kube/config" \ - -v "${FEDERATION_OUTPUT_ROOT}:/_output" \ - "${KUBE_ANYWHERE_FEDERATION_CHARTS_IMAGE}:${KUBE_ANYWHERE_FEDERATION_CHARTS_VERSION}" \ - "${action}" -} - -function redeploy_federation() { - : "${FEDERATION_OUTPUT_ROOT:?must be set}" - - local -r action="${1:-}" - kube::log::status "${action} federation components" - docker run \ - -m 12G \ - -v "${KUBE_CONFIG}:/root/.kube/config:ro" \ - -v "${FEDERATION_OUTPUT_ROOT}:/_output" \ - "${KUBE_ANYWHERE_FEDERATION_CHARTS_IMAGE}:${KUBE_ANYWHERE_FEDERATION_CHARTS_VERSION}" \ - "${action}" -} - -readonly ACTION="${1:-}" -case "${ACTION}" in - "") - echo 'Action must be one of [init, deploy_clusters, deploy_federation, \ - destroy_federation, destroy_clusters, redeploy_federation], \ - got: '"${ACTION}" - exit 1 - ;; - "init") - pull_installer - ;; - "deploy_clusters") - ensure_files - kube_action deploy - ;; - "deploy_federation") - ensure_files - federation_action deploy - ;; - "destroy_federation") - federation_action destroy - ;; - "destroy_clusters") - kube_action destroy - ;; - "redeploy_federation") - redeploy_federation - ;; -esac diff --git a/vendor/k8s.io/kubernetes/federation/develop/BUILD b/vendor/k8s.io/kubernetes/federation/develop/BUILD deleted file mode 100644 index 7e76248ad..000000000 --- a/vendor/k8s.io/kubernetes/federation/develop/BUILD +++ /dev/null @@ -1,14 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/develop/develop.sh b/vendor/k8s.io/kubernetes/federation/develop/develop.sh deleted file mode 100755 index 1a6859b98..000000000 --- a/vendor/k8s.io/kubernetes/federation/develop/develop.sh +++ /dev/null @@ -1,196 +0,0 @@ -#!/usr/bin/env bash - -# 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. - -# This script will build the hyperkube image and push it to the repository -# referred to by KUBE_REGISTRY. The image will be given a version tag with -# the value from KUBE_VERSION. -# e.g. run as: -# KUBE_REGISTRY=localhost:5000/anushku \ -# KUBE_VERSION=1.3.0-dev ./build.sh build_image -# -# will build the Docker images with the specified repository name and the -# image version tag. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT="$(dirname "${BASH_SOURCE}")/../.." -DEPLOY_ROOT="${KUBE_ROOT}/federation/deploy" -CUR_ROOT="$(pwd)" - -source "${KUBE_ROOT}/build/common.sh" -source "${KUBE_ROOT}/build/util.sh" -# Provides the detect-project function -source "${KUBE_ROOT}/cluster/kube-util.sh" -# Provides logging facilities -source "${KUBE_ROOT}/cluster/lib/logging.sh" - -readonly TMP_DIR="$(mktemp -d)" -readonly FEDERATION_OUTPUT_ROOT="${LOCAL_OUTPUT_ROOT}/federation" -readonly VERSIONS_FILE="${FEDERATION_OUTPUT_ROOT}/versions" - -if [[ "${KUBERNETES_PROVIDER}" == "gke" || "${KUBERNETES_PROVIDER}" == "gce" ]]; then - detect-project - readonly KUBE_PROJECT="${KUBE_PROJECT:-${PROJECT:-}}" - readonly KUBE_REGISTRY="${KUBE_REGISTRY:-gcr.io/${KUBE_PROJECT}}" -else - readonly KUBE_PROJECT="${KUBE_PROJECT:-${PROJECT:-federation}}" - readonly KUBE_REGISTRY="${KUBE_REGISTRY:-localhost:5000/${KUBE_PROJECT}}" -fi - -# In dev environments this value must be recomputed after build. See -# the build_image() function. So not making it readonly -KUBE_VERSION="${KUBE_VERSION:-}" - - -function cleanup { - rm -rf "${TMP_DIR}" - cd "${CUR_ROOT}" -} -trap cleanup EXIT - -function dirty_sha() { - local -r index="${KUBE_ROOT}/.git/index" - local -r objects_dir="${KUBE_ROOT}/.git/objects" - - local -r tmp_dir="${TMP_DIR}/.git" - local -r tmp_index="${tmp_dir}/index" - local -r tmp_objects_dir="${tmp_dir}/objects" - - mkdir -p "${tmp_objects_dir}" - cp "${index}" "${tmp_index}" - - local -r files=$(git ls-files -m -o -d --exclude-standard) - GIT_INDEX_FILE="${tmp_index}" git add ${files} - GIT_ALTERNATE_OBJECT_DIRECTORIES="${objects_dir}" GIT_OBJECT_DIRECTORY="${tmp_objects_dir}" GIT_INDEX_FILE="${tmp_index}" git write-tree -} - -function build_binaries() { - cd "${KUBE_ROOT}" - kube::build::verify_prereqs - kube::build::build_image - kube::build::run_build_command make WHAT="cmd/kubectl cmd/hyperkube" - kube::build::copy_output -} - -function build_image() { - # Recompute KUBE_VERSION because it might have changed after rebuild. - local kube_version="" - if [[ -n "${KUBE_VERSION:-}" ]]; then - kube_version="${KUBE_VERSION}" - else - kube_version="$(kube::release::semantic_image_tag_version)" - # Also append the dirty tree SHA to keep the versions unique across - # builds. - if [[ "${kube_version}" == *-dirty ]]; then - kube_version+=".$(dirty_sha)" - fi - fi - - # Write the generated version to the output versions file so that we can - # reuse it. - mkdir -p "${FEDERATION_OUTPUT_ROOT}" - echo "{ - \"KUBE_VERSION\": \"${kube_version}\" -}" > "${VERSIONS_FILE}" - kube::log::status "Wrote to version file ${VERSIONS_FILE}: ${kube_version}" - - BASEIMAGE="ubuntu:16.04" \ - REGISTRY="${KUBE_REGISTRY}" \ - VERSION="${kube_version}" \ - make -C "${KUBE_ROOT}/cluster/images/hyperkube" build -} - -function get_version() { - local kube_version="" - if [[ -n "${KUBE_VERSION:-}" ]]; then - kube_version="${KUBE_VERSION}" - else - # Read the version back from the versions file if no version is given. - kube_version="$(cat ${VERSIONS_FILE} | python -c '\ -import json, sys;\ -print json.load(sys.stdin)["KUBE_VERSION"]')" - fi - echo "${kube_version}" -} - -function push() { - local -r kube_version="$(get_version)" - - kube::log::status "Pushing hyperkube image to the registry" - gcloud docker -- push "${KUBE_REGISTRY}/hyperkube-amd64:${kube_version}" -} - -readonly ACTION="${1:-}" -case "${ACTION}" in - "") - echo 'Action must be one of [init, build_binaries, build_image, push, \ - deploy_clusters, deploy_federation, destroy_federation, destroy_clusters \ - redeploy_federation], \ - got: '"${ACTION}" - exit 1 - ;; - "build_binaries") - build_binaries - ;; - "build_image") - build_image - ;; - "push") - push - ;; - # Following functions belong to deploy.sh, they are driven from here - # convenience during development because FEDERATION_OUTPUT_ROOT is - # already defined during development here in this script. Also, we - # execute the following commands in their own subshells to avoid them - # messing with variables in this script. - "init") - ( - "${DEPLOY_ROOT}/deploy.sh" init - ) - ;; - "deploy_clusters") - ( - export FEDERATION_OUTPUT_ROOT - "${DEPLOY_ROOT}/deploy.sh" deploy_clusters - ) - ;; - "deploy_federation") - ( - export FEDERATION_OUTPUT_ROOT - "${DEPLOY_ROOT}/deploy.sh" deploy_federation - ) - ;; - "destroy_federation") - ( - export FEDERATION_OUTPUT_ROOT - "${DEPLOY_ROOT}/deploy.sh" destroy_federation - ) - ;; - "destroy_clusters") - ( - export FEDERATION_OUTPUT_ROOT - "${DEPLOY_ROOT}/deploy.sh" destroy_clusters - ) - ;; - "redeploy_federation") - ( - export FEDERATION_OUTPUT_ROOT - "${DEPLOY_ROOT}/deploy.sh" redeploy_federation - ) - ;; -esac diff --git a/vendor/k8s.io/kubernetes/federation/develop/kubefed.sh b/vendor/k8s.io/kubernetes/federation/develop/kubefed.sh deleted file mode 100755 index 4c3caf81d..000000000 --- a/vendor/k8s.io/kubernetes/federation/develop/kubefed.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# 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. - -set -o errexit -set -o nounset -set -o pipefail - -# "-=-=-=-=-=-=-=-=-=-=" -# This script is only for CI testing purposes. Don't use it in production. -# "-=-=-=-=-=-=-=-=-=-=" - -KUBE_ROOT=${KUBE_ROOT:-$(dirname "${BASH_SOURCE}")/../..} -source "${KUBE_ROOT}/cluster/clientbin.sh" - -# If KUBEFED_PATH isn't set, gather up the list of likely places and use ls -# to find the latest one. -if [[ -z "${KUBEFED_PATH:-}" ]]; then - kubefed=$( get_bin "kubefed" "federation/cmd/kubefed" ) - - if [[ ! -x "$kubefed" ]]; then - print_error "kubefed" - exit 1 - fi -elif [[ ! -x "${KUBEFED_PATH}" ]]; then - { - echo "KUBEFED_PATH environment variable set to '${KUBEFED_PATH}', but " - echo "this doesn't seem to be a valid executable." - } >&2 - exit 1 -fi -kubefed="${KUBEFED_PATH:-${kubefed}}" - -# Use the arguments to the script if it is set, a null string -# otherwise. -"${kubefed}" "${@+$@}" diff --git a/vendor/k8s.io/kubernetes/federation/docs/api-reference/README.md b/vendor/k8s.io/kubernetes/federation/docs/api-reference/README.md deleted file mode 100644 index 7a361053e..000000000 --- a/vendor/k8s.io/kubernetes/federation/docs/api-reference/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# API Reference - -Federation API server supports the following group versions: - -* federation/v1beta1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/federation/v1beta1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/federation/v1beta1/definitions.html) -* v1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/v1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/v1/definitions.html) -* extensions/v1beta1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/extensions/v1beta1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/extensions/v1beta1/definitions.html) - - - -[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/federation/docs/api-reference/README.md?pixel)]() - diff --git a/vendor/k8s.io/kubernetes/federation/docs/api-reference/extensions/v1beta1/definitions.html b/vendor/k8s.io/kubernetes/federation/docs/api-reference/extensions/v1beta1/definitions.html deleted file mode 100755 index b0ebdc07f..000000000 --- a/vendor/k8s.io/kubernetes/federation/docs/api-reference/extensions/v1beta1/definitions.html +++ /dev/null @@ -1,7374 +0,0 @@ - - - - - - -Top Level API Objects - - - - -
    - -
    -

    Definitions

    -
    -
    -

    v1beta1.DeploymentStatus

    -
    -

    DeploymentStatus is the most recently observed status of the Deployment.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    observedGeneration

    The generation observed by the deployment controller.

    false

    integer (int64)

    replicas

    Total number of non-terminated pods targeted by this deployment (their labels match the selector).

    false

    integer (int32)

    updatedReplicas

    Total number of non-terminated pods targeted by this deployment that have the desired template spec.

    false

    integer (int32)

    readyReplicas

    Total number of ready pods targeted by this deployment.

    false

    integer (int32)

    availableReplicas

    Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.

    false

    integer (int32)

    unavailableReplicas

    Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.

    false

    integer (int32)

    conditions

    Represents the latest available observations of a deployment’s current state.

    false

    v1beta1.DeploymentCondition array

    collisionCount

    Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.

    false

    integer (int32)

    - -
    -
    -

    v1.APIResourceList

    -
    -

    APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    groupVersion

    groupVersion is the group and version this APIResourceList is for.

    true

    string

    resources

    resources contains the name of the resources and if they are namespaced.

    true

    v1.APIResource array

    - -
    -
    -

    v1.Affinity

    -
    -

    Affinity is a group of affinity scheduling rules.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    nodeAffinity

    Describes node affinity scheduling rules for the pod.

    false

    v1.NodeAffinity

    podAffinity

    Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).

    false

    v1.PodAffinity

    podAntiAffinity

    Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).

    false

    v1.PodAntiAffinity

    - -
    -
    -

    v1beta1.DaemonSetStatus

    -
    -

    DaemonSetStatus represents the current status of a daemon set.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    currentNumberScheduled

    The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

    true

    integer (int32)

    numberMisscheduled

    The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

    true

    integer (int32)

    desiredNumberScheduled

    The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

    true

    integer (int32)

    numberReady

    The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.

    true

    integer (int32)

    observedGeneration

    The most recent generation observed by the daemon set controller.

    false

    integer (int64)

    updatedNumberScheduled

    The total number of nodes that are running updated daemon pod

    false

    integer (int32)

    numberAvailable

    The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)

    false

    integer (int32)

    numberUnavailable

    The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)

    false

    integer (int32)

    collisionCount

    Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.

    false

    integer (int32)

    - -
    -
    -

    v1.NodeSelectorTerm

    -
    -

    A null or empty node selector term matches no objects.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    matchExpressions

    Required. A list of node selector requirements. The requirements are ANDed.

    true

    v1.NodeSelectorRequirement array

    - -
    -
    -

    v1.Preconditions

    -
    -

    Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    uid

    Specifies the target UID.

    false

    types.UID

    - -
    -
    -

    v1.ObjectFieldSelector

    -
    -

    ObjectFieldSelector selects an APIVersioned field of an object.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    apiVersion

    Version of the schema the FieldPath is written in terms of, defaults to "v1".

    false

    string

    fieldPath

    Path of the field to select in the specified API version.

    true

    string

    - -
    -
    -

    v1.SELinuxOptions

    -
    -

    SELinuxOptions are the labels to be applied to the container

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    user

    User is a SELinux user label that applies to the container.

    false

    string

    role

    Role is a SELinux role label that applies to the container.

    false

    string

    type

    Type is a SELinux type label that applies to the container.

    false

    string

    level

    Level is SELinux level label that applies to the container.

    false

    string

    - -
    -
    -

    v1beta1.IngressSpec

    -
    -

    IngressSpec describes the Ingress the user wishes to exist.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    backend

    A default backend capable of servicing requests that don’t match any rule. At least one of backend or rules must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default.

    false

    v1beta1.IngressBackend

    tls

    TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.

    false

    v1beta1.IngressTLS array

    rules

    A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.

    false

    v1beta1.IngressRule array

    - -
    -
    -

    v1.VolumeMount

    -
    -

    VolumeMount describes a mounting of a Volume within a container.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    This must match the Name of a Volume.

    true

    string

    readOnly

    Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.

    false

    boolean

    false

    mountPath

    Path within the container at which the volume should be mounted. Must not contain :.

    true

    string

    subPath

    Path within the volume from which the container’s volume should be mounted. Defaults to "" (volume’s root).

    false

    string

    mountPropagation

    mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationHostToContainer is used. This field is alpha in 1.8 and can be reworked or removed in a future release.

    false

    v1.MountPropagationMode

    - -
    -
    -

    v1.MountPropagationMode

    - -
    -
    -

    v1.DownwardAPIProjection

    -
    -

    Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    items

    Items is a list of DownwardAPIVolume file

    false

    v1.DownwardAPIVolumeFile array

    - -
    -
    -

    v1.LabelSelector

    -
    -

    A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    matchLabels

    matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

    false

    object

    matchExpressions

    matchExpressions is a list of label selector requirements. The requirements are ANDed.

    false

    v1.LabelSelectorRequirement array

    - -
    -
    -

    v1beta1.IngressBackend

    -
    -

    IngressBackend describes all endpoints for a given service and port.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    serviceName

    Specifies the name of the referenced service.

    true

    string

    servicePort

    Specifies the port of the referenced service.

    true

    string

    - -
    -
    -

    v1beta1.ReplicaSetList

    -
    -

    ReplicaSetList is a collection of ReplicaSets.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    items

    List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller

    true

    v1beta1.ReplicaSet array

    - -
    -
    -

    v1.CephFSVolumeSource

    -
    -

    Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    monitors

    Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

    true

    string array

    path

    Optional: Used as the mounted root, rather than the full Ceph tree, default is /

    false

    string

    user

    Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

    false

    string

    secretFile

    Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

    false

    string

    secretRef

    Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

    false

    v1.LocalObjectReference

    readOnly

    Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

    false

    boolean

    false

    - -
    -
    -

    v1beta1.IngressStatus

    -
    -

    IngressStatus describe the current state of the Ingress.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    loadBalancer

    LoadBalancer contains the current status of the load-balancer.

    false

    v1.LoadBalancerStatus

    - -
    -
    -

    v1.DownwardAPIVolumeSource

    -
    -

    DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    items

    Items is a list of downward API volume file

    false

    v1.DownwardAPIVolumeFile array

    defaultMode

    Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

    false

    integer (int32)

    - -
    -
    -

    v1beta1.ReplicaSetCondition

    -
    -

    ReplicaSetCondition describes the state of a replica set at a certain point.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    type

    Type of replica set condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastTransitionTime

    The last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    - -
    -
    -

    v1.GCEPersistentDiskVolumeSource

    -
    -

    Represents a Persistent Disk resource in Google Compute Engine.

    -
    -
    -

    A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    pdName

    Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

    true

    string

    fsType

    Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

    false

    string

    partition

    The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

    false

    integer (int32)

    readOnly

    ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

    false

    boolean

    false

    - -
    -
    -

    v1beta1.RollingUpdateDeployment

    -
    -

    Spec to control the desired behavior of rolling update.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    maxUnavailable

    The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.

    false

    string

    maxSurge

    The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.

    false

    string

    - -
    -
    -

    v1beta1.HTTPIngressRuleValue

    -
    -

    HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> → backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last / and before the first ? or #.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    paths

    A collection of paths that map requests to backends.

    true

    v1beta1.HTTPIngressPath array

    - -
    -
    -

    v1.ConfigMapVolumeSource

    -
    -

    Adapts a ConfigMap into a volume.

    -
    -
    -

    The contents of the target ConfigMap’s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    items

    If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

    false

    v1.KeyToPath array

    defaultMode

    Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

    false

    integer (int32)

    optional

    Specify whether the ConfigMap or it’s keys must be defined

    false

    boolean

    false

    - -
    -
    -

    v1.GitRepoVolumeSource

    -
    -

    Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    repository

    Repository URL

    true

    string

    revision

    Commit hash for the specified revision.

    false

    string

    directory

    Target directory name. Must not contain or start with ... If . is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.

    false

    string

    - -
    -
    -

    v1.SecretEnvSource

    -
    -

    SecretEnvSource selects a Secret to populate the environment variables with.

    -
    -
    -

    The contents of the target Secret’s Data field will represent the key-value pairs as environment variables.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    optional

    Specify whether the Secret must be defined

    false

    boolean

    false

    - -
    -
    -

    v1.PortworxVolumeSource

    -
    -

    PortworxVolumeSource represents a Portworx volume resource.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    volumeID

    VolumeID uniquely identifies a Portworx volume

    true

    string

    fsType

    FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    - -
    -
    -

    v1.Capabilities

    -
    -

    Adds and removes POSIX capabilities from running containers.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    add

    Added capabilities

    false

    v1.Capability array

    drop

    Removed capabilities

    false

    v1.Capability array

    - -
    -
    -

    v1.Initializer

    -
    -

    Initializer is information about an initializer that has not yet completed.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    name of the process that is responsible for initializing this object.

    true

    string

    - -
    -
    -

    v1.LocalObjectReference

    -
    -

    LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    - -
    -
    -

    v1.ProjectedVolumeSource

    -
    -

    Represents a projected volume source

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    sources

    list of volume projections

    true

    v1.VolumeProjection array

    defaultMode

    Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

    false

    integer (int32)

    - -
    -
    -

    v1.ExecAction

    -
    -

    ExecAction describes a "run in container" action.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    command

    Command is the command line to execute inside the container, the working directory for the command is root (/) in the container’s filesystem. The command is simply exec’d, it is not run inside a shell, so traditional shell instructions ('

    ', etc) won’t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.

    false

    string array

    - -
    -
    -

    v1beta1.RollingUpdateDaemonSet

    -
    -

    Spec to control the desired behavior of daemon set rolling update.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    maxUnavailable

    The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.

    false

    string

    - -
    -
    -

    v1.ObjectMeta

    -
    -

    ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    false

    string

    generateName

    GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.
    -
    -If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).
    -
    -Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency

    false

    string

    namespace

    Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.
    -
    -Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

    false

    string

    selfLink

    SelfLink is a URL representing this object. Populated by the system. Read-only.

    false

    string

    uid

    UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
    -
    -Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    false

    string

    resourceVersion

    An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.
    -
    -Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    generation

    A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

    false

    integer (int64)

    creationTimestamp

    CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
    -
    -Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    string

    deletionTimestamp

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    -
    -Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    string

    deletionGracePeriodSeconds

    Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

    false

    integer (int64)

    labels

    Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels

    false

    object

    annotations

    Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations

    false

    object

    ownerReferences

    List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

    false

    v1.OwnerReference array

    initializers

    An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven’t explicitly asked to observe uninitialized objects.
    -
    -When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.

    false

    v1.Initializers

    finalizers

    Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.

    false

    string array

    clusterName

    The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.

    false

    string

    - -
    -
    -

    v1beta1.ReplicaSetSpec

    -
    -

    ReplicaSetSpec is the specification of a ReplicaSet.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    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

    false

    integer (int32)

    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)

    false

    integer (int32)

    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

    false

    v1.LabelSelector

    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

    false

    v1.PodTemplateSpec

    - -
    -
    -

    v1beta1.Deployment

    -
    -

    DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object metadata.

    false

    v1.ObjectMeta

    spec

    Specification of the desired behavior of the Deployment.

    false

    v1beta1.DeploymentSpec

    status

    Most recently observed status of the Deployment.

    false

    v1beta1.DeploymentStatus

    - -
    -
    -

    v1beta1.DaemonSetSpec

    -
    -

    DaemonSetSpec is the specification of a daemon set.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    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

    false

    v1.LabelSelector

    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

    true

    v1.PodTemplateSpec

    updateStrategy

    An update strategy to replace existing DaemonSet pods with new pods.

    false

    v1beta1.DaemonSetUpdateStrategy

    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).

    false

    integer (int32)

    templateGeneration

    DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.

    false

    integer (int64)

    revisionHistoryLimit

    The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.

    false

    integer (int32)

    - -
    -
    -

    types.UID

    - -
    -
    -

    v1.AzureFileVolumeSource

    -
    -

    AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    secretName

    the name of secret that contains Azure Storage Account Name and Key

    true

    string

    shareName

    Share Name

    true

    string

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    - -
    -
    -

    v1.ISCSIVolumeSource

    -
    -

    Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    targetPortal

    iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

    true

    string

    iqn

    Target iSCSI Qualified Name.

    true

    string

    lun

    iSCSI target lun number.

    true

    integer (int32)

    iscsiInterface

    Optional: Defaults to default (tcp). iSCSI interface name that uses an iSCSI transport.

    false

    string

    fsType

    Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi

    false

    string

    readOnly

    ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.

    false

    boolean

    false

    portals

    iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

    false

    string array

    chapAuthDiscovery

    whether support iSCSI Discovery CHAP authentication

    false

    boolean

    false

    chapAuthSession

    whether support iSCSI Session CHAP authentication

    false

    boolean

    false

    secretRef

    CHAP secret for iSCSI target and initiator authentication

    false

    v1.LocalObjectReference

    initiatorName

    Custom iSCSI initiator name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.

    false

    string

    - -
    -
    -

    v1beta1.IngressList

    -
    -

    IngressList is a collection of Ingress.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ListMeta

    items

    Items is the list of Ingress.

    true

    v1beta1.Ingress array

    - -
    -
    -

    v1.EmptyDirVolumeSource

    -
    -

    Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    medium

    What type of storage medium should back this directory. The default is "" which means to use the node’s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

    false

    string

    sizeLimit

    Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir

    false

    string

    - -
    -
    -

    v1beta1.ScaleSpec

    -
    -

    describes the attributes of a scale subresource

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    replicas

    desired number of instances for the scaled object.

    false

    integer (int32)

    - -
    -
    -

    v1.PodAffinityTerm

    -
    -

    Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    labelSelector

    A label query over a set of resources, in this case pods.

    false

    v1.LabelSelector

    namespaces

    namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod’s namespace"

    false

    string array

    topologyKey

    This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

    false

    string

    - -
    -
    -

    v1.EnvFromSource

    -
    -

    EnvFromSource represents the source of a set of ConfigMaps

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    prefix

    An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.

    false

    string

    configMapRef

    The ConfigMap to select from

    false

    v1.ConfigMapEnvSource

    secretRef

    The Secret to select from

    false

    v1.SecretEnvSource

    - -
    -
    -

    v1.PodAffinity

    -
    -

    Pod affinity is a group of inter pod affinity scheduling rules.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    requiredDuringSchedulingIgnoredDuringExecution

    If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

    false

    v1.PodAffinityTerm array

    preferredDuringSchedulingIgnoredDuringExecution

    The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

    false

    v1.WeightedPodAffinityTerm array

    - -
    -
    -

    v1.FlockerVolumeSource

    -
    -

    Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    datasetName

    Name of the dataset stored as metadata → name on the dataset for Flocker should be considered as deprecated

    false

    string

    datasetUUID

    UUID of the dataset. This is unique identifier of a Flocker dataset

    false

    string

    - -
    -
    -

    v1.PersistentVolumeClaimVolumeSource

    -
    -

    PersistentVolumeClaimVolumeSource references the user’s PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    claimName

    ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

    true

    string

    readOnly

    Will force the ReadOnly setting in VolumeMounts. Default false.

    false

    boolean

    false

    - -
    -
    -

    v1.ListMeta

    -
    -

    ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    selfLink

    selfLink is a URL representing this object. Populated by the system. Read-only.

    false

    string

    resourceVersion

    String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    continue

    continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.

    false

    string

    - -
    -
    -

    v1beta1.RollbackConfig

    -
    -

    DEPRECATED.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    revision

    The revision to rollback to. If set to 0, rollback to the last revision.

    false

    integer (int64)

    - -
    -
    -

    v1.SecretVolumeSource

    -
    -

    Adapts a Secret into a volume.

    -
    -
    -

    The contents of the target Secret’s Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    secretName

    Name of the secret in the pod’s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

    false

    string

    items

    If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

    false

    v1.KeyToPath array

    defaultMode

    Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

    false

    integer (int32)

    optional

    Specify whether the Secret or it’s keys must be defined

    false

    boolean

    false

    - -
    -
    -

    v1.FlexVolumeSource

    -
    -

    FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    driver

    Driver is the name of the driver to use for this volume.

    true

    string

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.

    false

    string

    secretRef

    Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.

    false

    v1.LocalObjectReference

    readOnly

    Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    options

    Optional: Extra command options if any.

    false

    object

    - -
    -
    -

    v1.EnvVarSource

    -
    -

    EnvVarSource represents a source for the value of an EnvVar.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    fieldRef

    Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.

    false

    v1.ObjectFieldSelector

    resourceFieldRef

    Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.

    false

    v1.ResourceFieldSelector

    configMapKeyRef

    Selects a key of a ConfigMap.

    false

    v1.ConfigMapKeySelector

    secretKeyRef

    Selects a key of a secret in the pod’s namespace

    false

    v1.SecretKeySelector

    - -
    -
    -

    v1.LoadBalancerIngress

    -
    -

    LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    ip

    IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)

    false

    string

    hostname

    Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)

    false

    string

    - -
    -
    -

    v1.AzureDiskVolumeSource

    -
    -

    AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    diskName

    The Name of the data disk in the blob storage

    true

    string

    diskURI

    The URI the data disk in the blob storage

    true

    string

    cachingMode

    Host Caching mode: None, Read Only, Read Write.

    false

    v1.AzureDataDiskCachingMode

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    kind

    Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared

    false

    v1.AzureDataDiskKind

    - -
    -
    -

    v1.KeyToPath

    -
    -

    Maps a string key to a path within a volume.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    key

    The key to project.

    true

    string

    path

    The relative path of the file to map the key to. May not be an absolute path. May not contain the path element ... May not start with the string ...

    true

    string

    mode

    Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

    false

    integer (int32)

    - -
    -
    -

    v1beta1.DaemonSetUpdateStrategy

    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    type

    Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is OnDelete.

    false

    string

    rollingUpdate

    Rolling update config params. Present only if type = "RollingUpdate".

    false

    v1beta1.RollingUpdateDaemonSet

    - -
    -
    -

    v1.VsphereVirtualDiskVolumeSource

    -
    -

    Represents a vSphere volume resource.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    volumePath

    Path that identifies vSphere volume vmdk

    true

    string

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    storagePolicyName

    Storage Policy Based Management (SPBM) profile name.

    false

    string

    storagePolicyID

    Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.

    false

    string

    - -
    -
    -

    v1.DeleteOptions

    -
    -

    DeleteOptions may be provided when deleting an API object.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int64)

    preconditions

    Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

    false

    v1.Preconditions

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    v1.DeletionPropagation

    - -
    -
    -

    v1beta1.DaemonSetList

    -
    -

    DaemonSetList is a collection of daemon sets.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ListMeta

    items

    A list of daemon sets.

    true

    v1beta1.DaemonSet array

    - -
    -
    -

    v1.Volume

    -
    -

    Volume represents a named volume in a pod that may be accessed by any container in the pod.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Volume’s name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    true

    string

    hostPath

    HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

    false

    v1.HostPathVolumeSource

    emptyDir

    EmptyDir represents a temporary directory that shares a pod’s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

    false

    v1.EmptyDirVolumeSource

    gcePersistentDisk

    GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

    false

    v1.GCEPersistentDiskVolumeSource

    awsElasticBlockStore

    AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    false

    v1.AWSElasticBlockStoreVolumeSource

    gitRepo

    GitRepo represents a git repository at a particular revision.

    false

    v1.GitRepoVolumeSource

    secret

    Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

    false

    v1.SecretVolumeSource

    nfs

    NFS represents an NFS mount on the host that shares a pod’s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

    false

    v1.NFSVolumeSource

    iscsi

    ISCSI represents an ISCSI Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md

    false

    v1.ISCSIVolumeSource

    glusterfs

    Glusterfs represents a Glusterfs mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md

    false

    v1.GlusterfsVolumeSource

    persistentVolumeClaim

    PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

    false

    v1.PersistentVolumeClaimVolumeSource

    rbd

    RBD represents a Rados Block Device mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md

    false

    v1.RBDVolumeSource

    flexVolume

    FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.

    false

    v1.FlexVolumeSource

    cinder

    Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

    false

    v1.CinderVolumeSource

    cephfs

    CephFS represents a Ceph FS mount on the host that shares a pod’s lifetime

    false

    v1.CephFSVolumeSource

    flocker

    Flocker represents a Flocker volume attached to a kubelet’s host machine. This depends on the Flocker control service being running

    false

    v1.FlockerVolumeSource

    downwardAPI

    DownwardAPI represents downward API about the pod that should populate this volume

    false

    v1.DownwardAPIVolumeSource

    fc

    FC represents a Fibre Channel resource that is attached to a kubelet’s host machine and then exposed to the pod.

    false

    v1.FCVolumeSource

    azureFile

    AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

    false

    v1.AzureFileVolumeSource

    configMap

    ConfigMap represents a configMap that should populate this volume

    false

    v1.ConfigMapVolumeSource

    vsphereVolume

    VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine

    false

    v1.VsphereVirtualDiskVolumeSource

    quobyte

    Quobyte represents a Quobyte mount on the host that shares a pod’s lifetime

    false

    v1.QuobyteVolumeSource

    azureDisk

    AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

    false

    v1.AzureDiskVolumeSource

    photonPersistentDisk

    PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine

    false

    v1.PhotonPersistentDiskVolumeSource

    projected

    Items for all in one resources secrets, configmaps, and downward API

    false

    v1.ProjectedVolumeSource

    portworxVolume

    PortworxVolume represents a portworx volume attached and mounted on kubelets host machine

    false

    v1.PortworxVolumeSource

    scaleIO

    ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

    false

    v1.ScaleIOVolumeSource

    storageos

    StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

    false

    v1.StorageOSVolumeSource

    - -
    -
    -

    v1.ResourceFieldSelector

    -
    -

    ResourceFieldSelector represents container resources (cpu, memory) and their output format

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    containerName

    Container name: required for volumes, optional for env vars

    false

    string

    resource

    Required: resource to select

    true

    string

    divisor

    Specifies the output format of the exposed resources, defaults to "1"

    false

    string

    - -
    -
    -

    v1.VolumeProjection

    -
    -

    Projection that may be projected along with other supported volume types

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    secret

    information about the secret data to project

    false

    v1.SecretProjection

    downwardAPI

    information about the downwardAPI data to project

    false

    v1.DownwardAPIProjection

    configMap

    information about the configMap data to project

    false

    v1.ConfigMapProjection

    - -
    -
    -

    v1.Probe

    -
    -

    Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    exec

    One and only one of the following should be specified. Exec specifies the action to take.

    false

    v1.ExecAction

    httpGet

    HTTPGet specifies the http request to perform.

    false

    v1.HTTPGetAction

    tcpSocket

    TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported

    false

    v1.TCPSocketAction

    initialDelaySeconds

    Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

    false

    integer (int32)

    timeoutSeconds

    Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

    false

    integer (int32)

    periodSeconds

    How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.

    false

    integer (int32)

    successThreshold

    Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.

    false

    integer (int32)

    failureThreshold

    Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.

    false

    integer (int32)

    - -
    -
    -

    v1.WeightedPodAffinityTerm

    -
    -

    The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    weight

    weight associated with matching the corresponding podAffinityTerm, in the range 1-100.

    true

    integer (int32)

    podAffinityTerm

    Required. A pod affinity term, associated with the corresponding weight.

    true

    v1.PodAffinityTerm

    - -
    -
    -

    v1beta1.DeploymentSpec

    -
    -

    DeploymentSpec is the specification of the desired behavior of the Deployment.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    replicas

    Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.

    false

    integer (int32)

    selector

    Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.

    false

    v1.LabelSelector

    template

    Template describes the pods that will be created.

    true

    v1.PodTemplateSpec

    strategy

    The deployment strategy to use to replace existing pods with new ones.

    false

    v1beta1.DeploymentStrategy

    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)

    false

    integer (int32)

    revisionHistoryLimit

    The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified.

    false

    integer (int32)

    paused

    Indicates that the deployment is paused and will not be processed by the deployment controller.

    false

    boolean

    false

    rollbackTo

    DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.

    false

    v1beta1.RollbackConfig

    progressDeadlineSeconds

    The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is not set by default.

    false

    integer (int32)

    - -
    -
    -

    v1.SecretKeySelector

    -
    -

    SecretKeySelector selects a key of a Secret.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    key

    The key of the secret to select from. Must be a valid secret key.

    true

    string

    optional

    Specify whether the Secret or it’s key must be defined

    false

    boolean

    false

    - -
    -
    -

    v1.Capability

    - -
    -
    -

    v1.DownwardAPIVolumeFile

    -
    -

    DownwardAPIVolumeFile represents information to create the file containing the pod field

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    path

    Required: Path is the relative path name of the file to be created. Must not be absolute or contain the .. path. Must be utf-8 encoded. The first item of the relative path must not start with ..

    true

    string

    fieldRef

    Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.

    false

    v1.ObjectFieldSelector

    resourceFieldRef

    Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.

    false

    v1.ResourceFieldSelector

    mode

    Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

    false

    integer (int32)

    - -
    -
    -

    v1.PodSpec

    -
    -

    PodSpec is a description of a pod.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    volumes

    List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes

    false

    v1.Volume array

    initContainers

    List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

    false

    v1.Container array

    containers

    List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.

    true

    v1.Container array

    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

    false

    string

    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.

    false

    integer (int64)

    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.

    false

    integer (int64)

    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.

    false

    string

    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/

    false

    object

    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/

    false

    string

    serviceAccount

    DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.

    false

    string

    automountServiceAccountToken

    AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.

    false

    boolean

    false

    nodeName

    NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.

    false

    string

    hostNetwork

    Host networking requested for this pod. Use the host’s network namespace. If this option is set, the ports that will be used must be specified. Default to false.

    false

    boolean

    false

    hostPID

    Use the host’s pid namespace. Optional: Default to false.

    false

    boolean

    false

    hostIPC

    Use the host’s ipc namespace. Optional: Default to false.

    false

    boolean

    false

    securityContext

    SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.

    false

    v1.PodSecurityContext

    imagePullSecrets

    ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod

    false

    v1.LocalObjectReference array

    hostname

    Specifies the hostname of the Pod If not specified, the pod’s hostname will be set to a system-defined value.

    false

    string

    subdomain

    If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>". If not specified, the pod will not have a domainname at all.

    false

    string

    affinity

    If specified, the pod’s scheduling constraints

    false

    v1.Affinity

    schedulerName

    If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.

    false

    string

    tolerations

    If specified, the pod’s tolerations.

    false

    v1.Toleration array

    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.

    false

    v1.HostAlias array

    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.

    false

    string

    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.

    false

    integer (int32)

    - -
    -
    -

    v1.ContainerPort

    -
    -

    ContainerPort represents a network port in a single container.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.

    false

    string

    hostPort

    Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.

    false

    integer (int32)

    containerPort

    Number of port to expose on the pod’s IP address. This must be a valid port number, 0 < x < 65536.

    true

    integer (int32)

    protocol

    Protocol for port. Must be UDP or TCP. Defaults to "TCP".

    false

    string

    hostIP

    What host IP to bind the external port to.

    false

    string

    - -
    -
    -

    v1.Lifecycle

    -
    -

    Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    postStart

    PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

    false

    v1.Handler

    preStop

    PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

    false

    v1.Handler

    - -
    -
    -

    v1.GlusterfsVolumeSource

    -
    -

    Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    endpoints

    EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

    true

    string

    path

    Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

    true

    string

    readOnly

    ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

    false

    boolean

    false

    - -
    -
    -

    v1.Handler

    -
    -

    Handler defines a specific action that should be taken

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    exec

    One and only one of the following should be specified. Exec specifies the action to take.

    false

    v1.ExecAction

    httpGet

    HTTPGet specifies the http request to perform.

    false

    v1.HTTPGetAction

    tcpSocket

    TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported

    false

    v1.TCPSocketAction

    - -
    -
    -

    v1.Toleration

    -
    -

    The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    key

    Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

    false

    string

    operator

    Operator represents a key’s relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

    false

    string

    value

    Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

    false

    string

    effect

    Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

    false

    string

    tolerationSeconds

    TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

    false

    integer (int64)

    - -
    -
    -

    v1beta1.IngressTLS

    -
    -

    IngressTLS describes the transport layer security associated with an Ingress.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    hosts

    Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.

    false

    string array

    secretName

    SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the "Host" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.

    false

    string

    - -
    -
    -

    v1.StatusCause

    -
    -

    StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    reason

    A machine-readable description of the cause of the error. If this value is empty there is no information available.

    false

    string

    message

    A human-readable description of the cause of the error. This field may be presented as-is to a reader.

    false

    string

    field

    The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.
    -
    -Examples:
    - "name" - the field "name" on the current resource
    - "items[0].name" - the field "name" on the first array entry in "items"

    false

    string

    - -
    -
    -

    v1beta1.Scale

    -
    -

    represents a scaling request for a resource.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.

    false

    v1.ObjectMeta

    spec

    defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.

    false

    v1beta1.ScaleSpec

    status

    current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.

    false

    v1beta1.ScaleStatus

    - -
    -
    -

    v1.RBDVolumeSource

    -
    -

    Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    monitors

    A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    true

    string array

    image

    The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    true

    string

    fsType

    Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd

    false

    string

    pool

    The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    string

    user

    The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    string

    keyring

    Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    string

    secretRef

    SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    v1.LocalObjectReference

    readOnly

    ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

    false

    boolean

    false

    - -
    -
    -

    v1.ConfigMapProjection

    -
    -

    Adapts a ConfigMap into a projected volume.

    -
    -
    -

    The contents of the target ConfigMap’s Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    items

    If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

    false

    v1.KeyToPath array

    optional

    Specify whether the ConfigMap or it’s keys must be defined

    false

    boolean

    false

    - -
    -
    -

    v1.PhotonPersistentDiskVolumeSource

    -
    -

    Represents a Photon Controller persistent disk resource.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    pdID

    ID that identifies Photon Controller persistent disk

    true

    string

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    - -
    -
    -

    v1.ScaleIOVolumeSource

    -
    -

    ScaleIOVolumeSource represents a persistent ScaleIO volume

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    gateway

    The host address of the ScaleIO API Gateway.

    true

    string

    system

    The name of the storage system as configured in ScaleIO.

    true

    string

    secretRef

    SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.

    true

    v1.LocalObjectReference

    sslEnabled

    Flag to enable/disable SSL communication with Gateway, default false

    false

    boolean

    false

    protectionDomain

    The name of the Protection Domain for the configured storage (defaults to "default").

    false

    string

    storagePool

    The Storage Pool associated with the protection domain (defaults to "default").

    false

    string

    storageMode

    Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

    false

    string

    volumeName

    The name of a volume already created in the ScaleIO system that is associated with this volume source.

    false

    string

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    - -
    -
    -

    v1.HostPathType

    - -
    -
    -

    v1.Initializers

    -
    -

    Initializers tracks the progress of initialization.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    pending

    Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

    true

    v1.Initializer array

    result

    If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

    false

    v1.Status

    - -
    -
    -

    v1.Status

    -
    -

    Status is a return value for calls that don’t return other objects.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    status

    Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    string

    message

    A human-readable description of the status of this operation.

    false

    string

    reason

    A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

    false

    string

    details

    Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

    false

    v1.StatusDetails

    code

    Suggested HTTP return code for this status, 0 if not set.

    false

    integer (int32)

    - -
    -
    -

    v1beta1.ScaleStatus

    -
    -

    represents the current status of a scale subresource.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    replicas

    actual number of observed instances of the scaled object.

    true

    integer (int32)

    selector

    label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors

    false

    object

    targetSelector

    label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

    false

    string

    - -
    -
    -

    v1.NFSVolumeSource

    -
    -

    Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    server

    Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

    true

    string

    path

    Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

    true

    string

    readOnly

    ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

    false

    boolean

    false

    - -
    -
    -

    v1beta1.DeploymentList

    -
    -

    DeploymentList is a list of Deployments.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata.

    false

    v1.ListMeta

    items

    Items is the list of Deployments.

    true

    v1beta1.Deployment array

    - -
    -
    -

    v1beta1.DeploymentRollback

    -
    -

    DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    name

    Required: This must match the Name of a deployment.

    true

    string

    updatedAnnotations

    The annotations to be updated to a deployment

    false

    object

    rollbackTo

    The config of this deployment rollback.

    true

    v1beta1.RollbackConfig

    - -
    -
    -

    v1.HTTPHeader

    -
    -

    HTTPHeader describes a custom header to be used in HTTP probes

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    The header field name

    true

    string

    value

    The header field value

    true

    string

    - -
    -
    -

    v1.FCVolumeSource

    -
    -

    Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    targetWWNs

    Optional: FC target worldwide names (WWNs)

    false

    string array

    lun

    Optional: FC target lun number

    false

    integer (int32)

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    readOnly

    Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    wwids

    Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

    false

    string array

    - -
    -
    -

    v1.PodAntiAffinity

    -
    -

    Pod anti affinity is a group of inter pod anti affinity scheduling rules.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    requiredDuringSchedulingIgnoredDuringExecution

    If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

    false

    v1.PodAffinityTerm array

    preferredDuringSchedulingIgnoredDuringExecution

    The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

    false

    v1.WeightedPodAffinityTerm array

    - -
    -
    -

    v1.DeletionPropagation

    - -
    -
    -

    v1beta1.DeploymentStrategy

    -
    -

    DeploymentStrategy describes how to replace existing pods with new ones.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    type

    Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.

    false

    string

    rollingUpdate

    Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.

    false

    v1beta1.RollingUpdateDeployment

    - -
    -
    -

    v1.TCPSocketAction

    -
    -

    TCPSocketAction describes an action based on opening a socket

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    port

    Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

    true

    string

    host

    Optional: Host name to connect to, defaults to the pod IP.

    false

    string

    - -
    -
    -

    v1beta1.IngressRule

    -
    -

    IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    host

    Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the "host" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the
    - IP in the Spec of the parent Ingress.
    -2. The : delimiter is not respected because ports are not allowed.
    - Currently the port of an Ingress is implicitly :80 for http and
    - :443 for https.
    -Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.

    false

    string

    http

    false

    v1beta1.HTTPIngressRuleValue

    - -
    -
    -

    v1.HTTPGetAction

    -
    -

    HTTPGetAction describes an action based on HTTP Get requests.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    path

    Path to access on the HTTP server.

    false

    string

    port

    Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

    true

    string

    host

    Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

    false

    string

    scheme

    Scheme to use for connecting to the host. Defaults to HTTP.

    false

    string

    httpHeaders

    Custom headers to set in the request. HTTP allows repeated headers.

    false

    v1.HTTPHeader array

    - -
    -
    -

    v1.StatusDetails

    -
    -

    StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

    false

    string

    group

    The group attribute of the resource associated with the status StatusReason.

    false

    string

    kind

    The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    uid

    UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    false

    string

    causes

    The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

    false

    v1.StatusCause array

    retryAfterSeconds

    If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

    false

    integer (int32)

    - -
    -
    -

    v1.LoadBalancerStatus

    -
    -

    LoadBalancerStatus represents the status of a load-balancer.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    ingress

    Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.

    false

    v1.LoadBalancerIngress array

    - -
    -
    -

    v1.Container

    -
    -

    A single application container that you want to run within a pod.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.

    true

    string

    image

    Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.

    false

    string

    command

    Entrypoint array. Not executed within a shell. The docker image’s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

    false

    string array

    args

    Arguments to the entrypoint. The docker image’s CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

    false

    string array

    workingDir

    Container’s working directory. If not specified, the container runtime’s default will be used, which might be configured in the container image. Cannot be updated.

    false

    string

    ports

    List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default "0.0.0.0" address inside a container will be accessible from the network. Cannot be updated.

    false

    v1.ContainerPort array

    envFrom

    List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.

    false

    v1.EnvFromSource array

    env

    List of environment variables to set in the container. Cannot be updated.

    false

    v1.EnvVar array

    resources

    Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

    false

    v1.ResourceRequirements

    volumeMounts

    Pod volumes to mount into the container’s filesystem. Cannot be updated.

    false

    v1.VolumeMount array

    livenessProbe

    Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

    false

    v1.Probe

    readinessProbe

    Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

    false

    v1.Probe

    lifecycle

    Actions that the management system should take in response to container lifecycle events. Cannot be updated.

    false

    v1.Lifecycle

    terminationMessagePath

    Optional: Path at which the file to which the container’s termination message will be written is mounted into the container’s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.

    false

    string

    terminationMessagePolicy

    Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.

    false

    string

    imagePullPolicy

    Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images

    false

    string

    securityContext

    Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

    false

    v1.SecurityContext

    stdin

    Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.

    false

    boolean

    false

    stdinOnce

    Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false

    false

    boolean

    false

    tty

    Whether this container should allocate a TTY for itself, also requires stdin to be true. Default is false.

    false

    boolean

    false

    - -
    -
    -

    v1.PodSecurityContext

    -
    -

    PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    seLinuxOptions

    The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.

    false

    v1.SELinuxOptions

    runAsUser

    The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.

    false

    integer (int64)

    runAsNonRoot

    Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

    false

    boolean

    false

    supplementalGroups

    A list of groups applied to the first process run in each container, in addition to the container’s primary GID. If unspecified, no groups will be added to any container.

    false

    integer (int32) array

    fsGroup

    A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:
    -
    -1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR’d with rw-rw

    false

    integer (int64)

    - -
    -
    -

    v1.OwnerReference

    -
    -

    OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    apiVersion

    API version of the referent.

    true

    string

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    true

    string

    name

    Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    true

    string

    uid

    UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    true

    string

    controller

    If true, this reference points to the managing controller.

    false

    boolean

    false

    blockOwnerDeletion

    If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

    false

    boolean

    false

    - -
    -
    -

    v1beta1.ReplicaSetStatus

    -
    -

    ReplicaSetStatus represents the current status of a ReplicaSet.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    replicas

    Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller

    true

    integer (int32)

    fullyLabeledReplicas

    The number of pods that have labels matching the labels of the pod template of the replicaset.

    false

    integer (int32)

    readyReplicas

    The number of ready replicas for this replica set.

    false

    integer (int32)

    availableReplicas

    The number of available replicas (ready for at least minReadySeconds) for this replica set.

    false

    integer (int32)

    observedGeneration

    ObservedGeneration reflects the generation of the most recently observed ReplicaSet.

    false

    integer (int64)

    conditions

    Represents the latest available observations of a replica set’s current state.

    false

    v1beta1.ReplicaSetCondition array

    - -
    -
    -

    v1.APIResource

    -
    -

    APIResource specifies the name of a resource and whether it is namespaced.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    name is the plural name of the resource.

    true

    string

    singularName

    singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.

    true

    string

    namespaced

    namespaced indicates if a resource is namespaced or not.

    true

    boolean

    false

    group

    group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale".

    false

    string

    version

    version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource’s group)".

    false

    string

    kind

    kind is the kind for the resource (e.g. Foo is the kind for a resource foo)

    true

    string

    verbs

    verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)

    true

    string array

    shortNames

    shortNames is a list of suggested short names of the resource.

    false

    string array

    categories

    categories is a list of the grouped resources this resource belongs to (e.g. all)

    false

    string array

    - -
    -
    -

    v1.NodeSelectorRequirement

    -
    -

    A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    key

    The label key that the selector applies to.

    true

    string

    operator

    Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

    true

    string

    values

    An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

    false

    string array

    - -
    -
    -

    v1beta1.ReplicaSet

    -
    -

    DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    spec

    Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1beta1.ReplicaSetSpec

    status

    Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1beta1.ReplicaSetStatus

    - -
    -
    -

    v1.HostPathVolumeSource

    -
    -

    Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    path

    Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

    true

    string

    type

    Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

    false

    v1.HostPathType

    - -
    -
    -

    v1.SecretProjection

    -
    -

    Adapts a secret into a projected volume.

    -
    -
    -

    The contents of the target Secret’s Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    items

    If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

    false

    v1.KeyToPath array

    optional

    Specify whether the Secret or its key must be defined

    false

    boolean

    false

    - -
    -
    -

    v1beta1.DaemonSet

    -
    -

    DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    spec

    The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1beta1.DaemonSetSpec

    status

    The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1beta1.DaemonSetStatus

    - -
    -
    -

    v1.CinderVolumeSource

    -
    -

    Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    volumeID

    volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

    true

    string

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

    false

    string

    readOnly

    Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

    false

    boolean

    false

    - -
    -
    -

    v1.SecurityContext

    -
    -

    SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    capabilities

    The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.

    false

    v1.Capabilities

    privileged

    Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.

    false

    boolean

    false

    seLinuxOptions

    The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

    false

    v1.SELinuxOptions

    runAsUser

    The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

    false

    integer (int64)

    runAsNonRoot

    Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

    false

    boolean

    false

    readOnlyRootFilesystem

    Whether this container has a read-only root filesystem. Default is false.

    false

    boolean

    false

    allowPrivilegeEscalation

    AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN

    false

    boolean

    false

    - -
    -
    -

    v1.AWSElasticBlockStoreVolumeSource

    -
    -

    Represents a Persistent Disk resource in AWS.

    -
    -
    -

    An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    volumeID

    Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    true

    string

    fsType

    Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    false

    string

    partition

    The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

    false

    integer (int32)

    readOnly

    Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

    false

    boolean

    false

    - -
    -
    -

    v1.QuobyteVolumeSource

    -
    -

    Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    registry

    Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes

    true

    string

    volume

    Volume is a string that references an already created Quobyte volume by name.

    true

    string

    readOnly

    ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.

    false

    boolean

    false

    user

    User to map volume access to Defaults to serivceaccount user

    false

    string

    group

    Group to map volume access to Default is no group

    false

    string

    - -
    -
    -

    v1.WatchEvent

    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    type

    true

    string

    object

    true

    string

    - -
    -
    -

    v1.LabelSelectorRequirement

    -
    -

    A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    key

    key is the label key that the selector applies to.

    true

    string

    operator

    operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

    true

    string

    values

    values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

    false

    string array

    - -
    -
    -

    v1.EnvVar

    -
    -

    EnvVar represents an environment variable present in a Container.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the environment variable. Must be a C_IDENTIFIER.

    true

    string

    value

    Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".

    false

    string

    valueFrom

    Source for the environment variable’s value. Cannot be used if value is not empty.

    false

    v1.EnvVarSource

    - -
    -
    -

    v1.ResourceRequirements

    -
    -

    ResourceRequirements describes the compute resource requirements.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    limits

    Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

    false

    object

    requests

    Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

    false

    object

    - -
    -
    -

    v1.HostAlias

    -
    -

    HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod’s hosts file.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    ip

    IP address of the host file entry.

    false

    string

    hostnames

    Hostnames for the above IP address.

    false

    string array

    - -
    -
    -

    v1.PodTemplateSpec

    -
    -

    PodTemplateSpec describes the data a pod should have when created from a template

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    spec

    Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1.PodSpec

    - -
    -
    -

    v1.NodeSelector

    -
    -

    A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    nodeSelectorTerms

    Required. A list of node selector terms. The terms are ORed.

    true

    v1.NodeSelectorTerm array

    - -
    -
    -

    v1.Patch

    -
    -

    Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

    -
    -
    -
    -

    v1beta1.DeploymentCondition

    -
    -

    DeploymentCondition describes the state of a deployment at a certain point.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    type

    Type of deployment condition.

    true

    string

    status

    Status of the condition, one of True, False, Unknown.

    true

    string

    lastUpdateTime

    The last time this condition was updated.

    false

    string

    lastTransitionTime

    Last time the condition transitioned from one status to another.

    false

    string

    reason

    The reason for the condition’s last transition.

    false

    string

    message

    A human readable message indicating details about the transition.

    false

    string

    - -
    -
    -

    v1.ConfigMapEnvSource

    -
    -

    ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.

    -
    -
    -

    The contents of the target ConfigMap’s Data field will represent the key-value pairs as environment variables.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    optional

    Specify whether the ConfigMap must be defined

    false

    boolean

    false

    - -
    -
    -

    v1.StorageOSVolumeSource

    -
    -

    Represents a StorageOS persistent volume resource.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    volumeName

    VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.

    false

    string

    volumeNamespace

    VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod’s namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.

    false

    string

    fsType

    Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

    false

    string

    readOnly

    Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

    false

    boolean

    false

    secretRef

    SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.

    false

    v1.LocalObjectReference

    - -
    -
    -

    v1.NodeAffinity

    -
    -

    Node affinity is a group of node affinity scheduling rules.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    requiredDuringSchedulingIgnoredDuringExecution

    If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.

    false

    v1.NodeSelector

    preferredDuringSchedulingIgnoredDuringExecution

    The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.

    false

    v1.PreferredSchedulingTerm array

    - -
    -
    -

    v1.AzureDataDiskKind

    - -
    -
    -

    v1.PreferredSchedulingTerm

    -
    -

    An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    weight

    Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.

    true

    integer (int32)

    preference

    A node selector term, associated with the corresponding weight.

    true

    v1.NodeSelectorTerm

    - -
    -
    -

    v1.ConfigMapKeySelector

    -
    -

    Selects a key from a ConfigMap.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    key

    The key to select.

    true

    string

    optional

    Specify whether the ConfigMap or it’s key must be defined

    false

    boolean

    false

    - -
    -
    -

    v1beta1.HTTPIngressPath

    -
    -

    HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    path

    Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a /. If unspecified, the path defaults to a catch all sending traffic to the backend.

    false

    string

    backend

    Backend defines the referenced service endpoint to which the traffic will be forwarded to.

    true

    v1beta1.IngressBackend

    - -
    -
    -

    v1beta1.Ingress

    -
    -

    Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    spec

    Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1beta1.IngressSpec

    status

    Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1beta1.IngressStatus

    - -
    -
    -

    v1.AzureDataDiskCachingMode

    - -
    -
    -

    any

    -
    -

    Represents an untyped JSON map - see the description of the field for more info about the structure of this object.

    -
    -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/federation/docs/api-reference/extensions/v1beta1/operations.html b/vendor/k8s.io/kubernetes/federation/docs/api-reference/extensions/v1beta1/operations.html deleted file mode 100755 index f7c0c6796..000000000 --- a/vendor/k8s.io/kubernetes/federation/docs/api-reference/extensions/v1beta1/operations.html +++ /dev/null @@ -1,9927 +0,0 @@ - - - - - - -Operations - - - - -
    -
    -

    Operations

    -
    -
    -

    get available resources

    -
    -
    -
    GET /apis/extensions/v1beta1
    -
    -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    default

    success

    v1.APIResourceList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind DaemonSet

    -
    -
    -
    GET /apis/extensions/v1beta1/daemonsets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DaemonSetList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Deployment

    -
    -
    -
    GET /apis/extensions/v1beta1/deployments
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DeploymentList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Ingress

    -
    -
    -
    GET /apis/extensions/v1beta1/ingresses
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.IngressList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind DaemonSet

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DaemonSetList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    delete collection of DaemonSet

    -
    -
    -
    DELETE /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    create a DaemonSet

    -
    -
    -
    POST /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.DaemonSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1beta1.DaemonSet

    200

    success

    v1beta1.DaemonSet

    201

    Created

    v1beta1.DaemonSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read the specified DaemonSet

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DaemonSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified DaemonSet

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.DaemonSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DaemonSet

    201

    Created

    v1beta1.DaemonSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    delete a DaemonSet

    -
    -
    -
    DELETE /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified DaemonSet

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DaemonSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read status of the specified DaemonSet

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DaemonSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace status of the specified DaemonSet

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.DaemonSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DaemonSet

    201

    Created

    v1beta1.DaemonSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update status of the specified DaemonSet

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DaemonSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Deployment

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/deployments
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.DeploymentList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    delete collection of Deployment

    -
    -
    -
    DELETE /apis/extensions/v1beta1/namespaces/{namespace}/deployments
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    create a Deployment

    -
    -
    -
    POST /apis/extensions/v1beta1/namespaces/{namespace}/deployments
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.Deployment

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1beta1.Deployment

    200

    success

    v1beta1.Deployment

    201

    Created

    v1beta1.Deployment

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read the specified Deployment

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Deployment

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified Deployment

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.Deployment

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Deployment

    201

    Created

    v1beta1.Deployment

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    delete a Deployment

    -
    -
    -
    DELETE /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified Deployment

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Deployment

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    create rollback of a Deployment

    -
    -
    -
    POST /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.DeploymentRollback

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DeploymentRollback

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1beta1.DeploymentRollback

    200

    success

    v1beta1.DeploymentRollback

    201

    Created

    v1beta1.DeploymentRollback

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read scale of the specified Deployment

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace scale of the specified Deployment

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.Scale

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Scale

    201

    Created

    v1beta1.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update scale of the specified Deployment

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read status of the specified Deployment

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Deployment

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace status of the specified Deployment

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.Deployment

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Deployment

    201

    Created

    v1beta1.Deployment

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update status of the specified Deployment

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Deployment

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Ingress

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/ingresses
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.IngressList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    delete collection of Ingress

    -
    -
    -
    DELETE /apis/extensions/v1beta1/namespaces/{namespace}/ingresses
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    create an Ingress

    -
    -
    -
    POST /apis/extensions/v1beta1/namespaces/{namespace}/ingresses
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.Ingress

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1beta1.Ingress

    200

    success

    v1beta1.Ingress

    201

    Created

    v1beta1.Ingress

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read the specified Ingress

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Ingress

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Ingress

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified Ingress

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.Ingress

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Ingress

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Ingress

    201

    Created

    v1beta1.Ingress

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    delete an Ingress

    -
    -
    -
    DELETE /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Ingress

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified Ingress

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Ingress

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Ingress

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read status of the specified Ingress

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Ingress

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Ingress

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace status of the specified Ingress

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.Ingress

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Ingress

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Ingress

    201

    Created

    v1beta1.Ingress

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update status of the specified Ingress

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Ingress

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Ingress

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind ReplicaSet

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/replicasets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.ReplicaSetList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    delete collection of ReplicaSet

    -
    -
    -
    DELETE /apis/extensions/v1beta1/namespaces/{namespace}/replicasets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    create a ReplicaSet

    -
    -
    -
    POST /apis/extensions/v1beta1/namespaces/{namespace}/replicasets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1beta1.ReplicaSet

    200

    success

    v1beta1.ReplicaSet

    201

    Created

    v1beta1.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read the specified ReplicaSet

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified ReplicaSet

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.ReplicaSet

    201

    Created

    v1beta1.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    delete a ReplicaSet

    -
    -
    -
    DELETE /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified ReplicaSet

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read scale of the specified ReplicaSet

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace scale of the specified ReplicaSet

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.Scale

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Scale

    201

    Created

    v1beta1.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update scale of the specified ReplicaSet

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    read status of the specified ReplicaSet

    -
    -
    -
    GET /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    replace status of the specified ReplicaSet

    -
    -
    -
    PUT /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta1.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.ReplicaSet

    201

    Created

    v1beta1.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    partially update status of the specified ReplicaSet

    -
    -
    -
    PATCH /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind ReplicaSet

    -
    -
    -
    GET /apis/extensions/v1beta1/replicasets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta1.ReplicaSetList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of DaemonSet

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/daemonsets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Deployment

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/deployments
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Ingress

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/ingresses
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of DaemonSet

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind DaemonSet

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the DaemonSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Deployment

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind Deployment

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Deployment

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Ingress

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind Ingress

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Ingress

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of ReplicaSet

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind ReplicaSet

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of ReplicaSet

    -
    -
    -
    GET /apis/extensions/v1beta1/watch/replicasets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisextensionsv1beta1

      -
    • -
    -
    -
    -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/federation/docs/api-reference/v1/definitions.html b/vendor/k8s.io/kubernetes/federation/docs/api-reference/v1/definitions.html deleted file mode 100755 index 8f49de7b1..000000000 --- a/vendor/k8s.io/kubernetes/federation/docs/api-reference/v1/definitions.html +++ /dev/null @@ -1,2448 +0,0 @@ - - - - - - -Top Level API Objects - - - - -
    -
    -

    Top Level API Objects

    - -
    -
    -

    Definitions

    -
    -
    -

    v1.APIResourceList

    -
    -

    APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    groupVersion

    groupVersion is the group and version this APIResourceList is for.

    true

    string

    resources

    resources contains the name of the resources and if they are namespaced.

    true

    v1.APIResource array

    - -
    -
    -

    v1.NamespaceList

    -
    -

    NamespaceList is a list of Namespaces.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    items

    Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

    true

    v1.Namespace array

    - -
    -
    -

    v1.ListMeta

    -
    -

    ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    selfLink

    selfLink is a URL representing this object. Populated by the system. Read-only.

    false

    string

    resourceVersion

    String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    continue

    continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.

    false

    string

    - -
    -
    -

    v1.Namespace

    -
    -

    Namespace provides a scope for Names. Use of multiple namespaces is optional.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    spec

    Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1.NamespaceSpec

    status

    Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1.NamespaceStatus

    - -
    -
    -

    v1.Initializers

    -
    -

    Initializers tracks the progress of initialization.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    pending

    Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

    true

    v1.Initializer array

    result

    If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

    false

    v1.Status

    - -
    -
    -

    v1.Preconditions

    -
    -

    Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    uid

    Specifies the target UID.

    false

    types.UID

    - -
    -
    -

    v1.Status

    -
    -

    Status is a return value for calls that don’t return other objects.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    status

    Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    string

    message

    A human-readable description of the status of this operation.

    false

    string

    reason

    A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

    false

    string

    details

    Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

    false

    v1.StatusDetails

    code

    Suggested HTTP return code for this status, 0 if not set.

    false

    integer (int32)

    - -
    -
    -

    v1.ServiceStatus

    -
    -

    ServiceStatus represents the current status of a service.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    loadBalancer

    LoadBalancer contains the current status of the load-balancer, if one is present.

    false

    v1.LoadBalancerStatus

    - -
    -
    -

    v1.Secret

    -
    -

    Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    data

    Data contains the secret data. Each key must consist of alphanumeric characters, -, _ or .. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4

    false

    object

    stringData

    stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.

    false

    object

    type

    Used to facilitate programmatic handling of secret data.

    false

    string

    - -
    -
    -

    v1.WatchEvent

    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    type

    true

    string

    object

    true

    string

    - -
    -
    -

    v1.Event

    -
    -

    Event is a report of an event somewhere in the cluster.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    true

    v1.ObjectMeta

    involvedObject

    The object that this event is about.

    true

    v1.ObjectReference

    reason

    This should be a short, machine understandable string that gives the reason for the transition into the object’s current status.

    false

    string

    message

    A human-readable description of the status of this operation.

    false

    string

    source

    The component reporting this event. Should be a short machine understandable string.

    false

    v1.EventSource

    firstTimestamp

    The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)

    false

    string

    lastTimestamp

    The time at which the most recent occurrence of this event was recorded.

    false

    string

    count

    The number of times this event has occurred.

    false

    integer (int32)

    type

    Type of this event (Normal, Warning), new types could be added in the future

    false

    string

    - -
    -
    -

    v1.LoadBalancerIngress

    -
    -

    LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    ip

    IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)

    false

    string

    hostname

    Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)

    false

    string

    - -
    -
    -

    v1.DeletionPropagation

    - -
    -
    -

    v1.NamespaceStatus

    -
    -

    NamespaceStatus is information about the current status of a Namespace.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    phase

    Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases

    false

    string

    - -
    -
    -

    v1.ServiceList

    -
    -

    ServiceList holds a list of services.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    items

    List of services

    true

    v1.Service array

    - -
    -
    -

    v1.NamespaceSpec

    -
    -

    NamespaceSpec describes the attributes on a Namespace.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    finalizers

    Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers

    false

    v1.FinalizerName array

    - -
    -
    -

    v1.Service

    -
    -

    Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    spec

    Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1.ServiceSpec

    status

    Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    v1.ServiceStatus

    - -
    -
    -

    v1.Patch

    -
    -

    Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

    -
    -
    -
    -

    v1.ConfigMapList

    -
    -

    ConfigMapList is a resource containing a list of ConfigMap objects.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ListMeta

    items

    Items is the list of ConfigMaps.

    true

    v1.ConfigMap array

    - -
    -
    -

    v1.DeleteOptions

    -
    -

    DeleteOptions may be provided when deleting an API object.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int64)

    preconditions

    Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

    false

    v1.Preconditions

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    v1.DeletionPropagation

    - -
    -
    -

    v1.StatusDetails

    -
    -

    StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

    false

    string

    group

    The group attribute of the resource associated with the status StatusReason.

    false

    string

    kind

    The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    uid

    UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    false

    string

    causes

    The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

    false

    v1.StatusCause array

    retryAfterSeconds

    If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

    false

    integer (int32)

    - -
    -
    -

    v1.ConfigMap

    -
    -

    ConfigMap holds configuration data for pods to consume.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    v1.ObjectMeta

    data

    Data contains the configuration data. Each key must consist of alphanumeric characters, -, _ or ..

    false

    object

    - -
    -
    -

    v1.Initializer

    -
    -

    Initializer is information about an initializer that has not yet completed.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    name of the process that is responsible for initializing this object.

    true

    string

    - -
    -
    -

    v1.ObjectReference

    -
    -

    ObjectReference contains enough information to let you inspect or modify the referred object.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    namespace

    Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

    false

    string

    name

    Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

    false

    string

    uid

    UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

    false

    string

    apiVersion

    API version of the referent.

    false

    string

    resourceVersion

    Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    fieldPath

    If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.

    false

    string

    - -
    -
    -

    v1.LoadBalancerStatus

    -
    -

    LoadBalancerStatus represents the status of a load-balancer.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    ingress

    Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.

    false

    v1.LoadBalancerIngress array

    - -
    -
    -

    v1.SecretList

    -
    -

    SecretList is a list of Secret.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    items

    Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret

    true

    v1.Secret array

    - -
    -
    -

    v1.FinalizerName

    - -
    -
    -

    v1.ServicePort

    -
    -

    ServicePort contains information on service’s port.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the Name field in EndpointPort objects. Optional if only one ServicePort is defined on this service.

    false

    string

    protocol

    The IP protocol for this port. Supports "TCP" and "UDP". Default is TCP.

    false

    string

    port

    The port that will be exposed by this service.

    true

    integer (int32)

    targetPort

    Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod’s container ports. If this is not specified, the value of the port field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the port field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service

    false

    string

    nodePort

    The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport

    false

    integer (int32)

    - -
    -
    -

    v1.OwnerReference

    -
    -

    OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    apiVersion

    API version of the referent.

    true

    string

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    true

    string

    name

    Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    true

    string

    uid

    UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    true

    string

    controller

    If true, this reference points to the managing controller.

    false

    boolean

    false

    blockOwnerDeletion

    If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

    false

    boolean

    false

    - -
    -
    -

    v1.ObjectMeta

    -
    -

    ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    false

    string

    generateName

    GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.
    -
    -If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).
    -
    -Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency

    false

    string

    namespace

    Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.
    -
    -Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

    false

    string

    selfLink

    SelfLink is a URL representing this object. Populated by the system. Read-only.

    false

    string

    uid

    UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
    -
    -Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    false

    string

    resourceVersion

    An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.
    -
    -Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    generation

    A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

    false

    integer (int64)

    creationTimestamp

    CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
    -
    -Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    string

    deletionTimestamp

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    -
    -Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    string

    deletionGracePeriodSeconds

    Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

    false

    integer (int64)

    labels

    Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels

    false

    object

    annotations

    Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations

    false

    object

    ownerReferences

    List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

    false

    v1.OwnerReference array

    initializers

    An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven’t explicitly asked to observe uninitialized objects.
    -
    -When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.

    false

    v1.Initializers

    finalizers

    Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.

    false

    string array

    clusterName

    The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.

    false

    string

    - -
    -
    -

    v1.EventList

    -
    -

    EventList is a list of events.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    items

    List of events

    true

    v1.Event array

    - -
    -
    -

    v1.ClientIPConfig

    -
    -

    ClientIPConfig represents the configurations of Client IP based session affinity.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    timeoutSeconds

    timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && ⇐86400(for 1 day) if ServiceAffinity == "ClientIP". Default value is 10800(for 3 hours).

    false

    integer (int32)

    - -
    -
    -

    v1.APIResource

    -
    -

    APIResource specifies the name of a resource and whether it is namespaced.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    name

    name is the plural name of the resource.

    true

    string

    singularName

    singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.

    true

    string

    namespaced

    namespaced indicates if a resource is namespaced or not.

    true

    boolean

    false

    group

    group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale".

    false

    string

    version

    version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource’s group)".

    false

    string

    kind

    kind is the kind for the resource (e.g. Foo is the kind for a resource foo)

    true

    string

    verbs

    verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)

    true

    string array

    shortNames

    shortNames is a list of suggested short names of the resource.

    false

    string array

    categories

    categories is a list of the grouped resources this resource belongs to (e.g. all)

    false

    string array

    - -
    -
    -

    v1.ServiceSpec

    -
    -

    ServiceSpec describes the attributes that a user creates on a service.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    ports

    The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

    false

    v1.ServicePort array

    selector

    Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/

    false

    object

    clusterIP

    clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are "None", empty string (""), or a valid IP address. "None" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

    false

    string

    type

    type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ExternalName" maps to the specified externalName. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services

    false

    string

    externalIPs

    externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.

    false

    string array

    sessionAffinity

    Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

    false

    string

    loadBalancerIP

    Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.

    false

    string

    loadBalancerSourceRanges

    If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature." More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/

    false

    string array

    externalName

    externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid DNS name and requires Type to be ExternalName.

    false

    string

    externalTrafficPolicy

    externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. "Local" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. "Cluster" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.

    false

    string

    healthCheckNodePort

    healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.

    false

    integer (int32)

    publishNotReadyAddresses

    publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet’s Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.

    false

    boolean

    false

    sessionAffinityConfig

    sessionAffinityConfig contains the configurations of session affinity.

    false

    v1.SessionAffinityConfig

    - -
    -
    -

    v1.EventSource

    -
    -

    EventSource contains information for an event.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    component

    Component from which the event is generated.

    false

    string

    host

    Node name on which the event is generated.

    false

    string

    - -
    -
    -

    types.UID

    - -
    -
    -

    v1.StatusCause

    -
    -

    StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    reason

    A machine-readable description of the cause of the error. If this value is empty there is no information available.

    false

    string

    message

    A human-readable description of the cause of the error. This field may be presented as-is to a reader.

    false

    string

    field

    The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.
    -
    -Examples:
    - "name" - the field "name" on the current resource
    - "items[0].name" - the field "name" on the first array entry in "items"

    false

    string

    - -
    -
    -

    v1.SessionAffinityConfig

    -
    -

    SessionAffinityConfig represents the configurations of session affinity.

    -
    - ------- - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    clientIP

    clientIP contains the configurations of Client IP based session affinity.

    false

    v1.ClientIPConfig

    - -
    -
    -

    any

    -
    -

    Represents an untyped JSON map - see the description of the field for more info about the structure of this object.

    -
    -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/federation/docs/api-reference/v1/operations.html b/vendor/k8s.io/kubernetes/federation/docs/api-reference/v1/operations.html deleted file mode 100755 index e9558c402..000000000 --- a/vendor/k8s.io/kubernetes/federation/docs/api-reference/v1/operations.html +++ /dev/null @@ -1,9524 +0,0 @@ - - - - - - -Operations - - - - -
    -
    -

    Operations

    -
    -
    -

    get available resources

    -
    -
    -
    GET /api/v1
    -
    -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    default

    success

    v1.APIResourceList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind ConfigMap

    -
    -
    -
    GET /api/v1/configmaps
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.ConfigMapList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Event

    -
    -
    -
    GET /api/v1/events
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.EventList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Namespace

    -
    -
    -
    GET /api/v1/namespaces
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.NamespaceList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    create a Namespace

    -
    -
    -
    POST /api/v1/namespaces
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Namespace

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1.Namespace

    200

    success

    v1.Namespace

    201

    Created

    v1.Namespace

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind ConfigMap

    -
    -
    -
    GET /api/v1/namespaces/{namespace}/configmaps
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.ConfigMapList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    delete collection of ConfigMap

    -
    -
    -
    DELETE /api/v1/namespaces/{namespace}/configmaps
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    create a ConfigMap

    -
    -
    -
    POST /api/v1/namespaces/{namespace}/configmaps
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.ConfigMap

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1.ConfigMap

    200

    success

    v1.ConfigMap

    201

    Created

    v1.ConfigMap

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    read the specified ConfigMap

    -
    -
    -
    GET /api/v1/namespaces/{namespace}/configmaps/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ConfigMap

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.ConfigMap

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified ConfigMap

    -
    -
    -
    PUT /api/v1/namespaces/{namespace}/configmaps/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.ConfigMap

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ConfigMap

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.ConfigMap

    201

    Created

    v1.ConfigMap

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    delete a ConfigMap

    -
    -
    -
    DELETE /api/v1/namespaces/{namespace}/configmaps/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ConfigMap

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified ConfigMap

    -
    -
    -
    PATCH /api/v1/namespaces/{namespace}/configmaps/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ConfigMap

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.ConfigMap

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Event

    -
    -
    -
    GET /api/v1/namespaces/{namespace}/events
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.EventList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    delete collection of Event

    -
    -
    -
    DELETE /api/v1/namespaces/{namespace}/events
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    create an Event

    -
    -
    -
    POST /api/v1/namespaces/{namespace}/events
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Event

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1.Event

    200

    success

    v1.Event

    201

    Created

    v1.Event

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    read the specified Event

    -
    -
    -
    GET /api/v1/namespaces/{namespace}/events/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Event

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Event

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified Event

    -
    -
    -
    PUT /api/v1/namespaces/{namespace}/events/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Event

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Event

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Event

    201

    Created

    v1.Event

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    delete an Event

    -
    -
    -
    DELETE /api/v1/namespaces/{namespace}/events/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Event

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified Event

    -
    -
    -
    PATCH /api/v1/namespaces/{namespace}/events/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Event

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Event

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Secret

    -
    -
    -
    GET /api/v1/namespaces/{namespace}/secrets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.SecretList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    delete collection of Secret

    -
    -
    -
    DELETE /api/v1/namespaces/{namespace}/secrets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    create a Secret

    -
    -
    -
    POST /api/v1/namespaces/{namespace}/secrets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Secret

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1.Secret

    200

    success

    v1.Secret

    201

    Created

    v1.Secret

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    read the specified Secret

    -
    -
    -
    GET /api/v1/namespaces/{namespace}/secrets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Secret

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Secret

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified Secret

    -
    -
    -
    PUT /api/v1/namespaces/{namespace}/secrets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Secret

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Secret

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Secret

    201

    Created

    v1.Secret

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    delete a Secret

    -
    -
    -
    DELETE /api/v1/namespaces/{namespace}/secrets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Secret

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified Secret

    -
    -
    -
    PATCH /api/v1/namespaces/{namespace}/secrets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Secret

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Secret

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Service

    -
    -
    -
    GET /api/v1/namespaces/{namespace}/services
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.ServiceList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    delete collection of Service

    -
    -
    -
    DELETE /api/v1/namespaces/{namespace}/services
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    create a Service

    -
    -
    -
    POST /api/v1/namespaces/{namespace}/services
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Service

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    202

    Accepted

    v1.Service

    200

    success

    v1.Service

    201

    Created

    v1.Service

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    read the specified Service

    -
    -
    -
    GET /api/v1/namespaces/{namespace}/services/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Service

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Service

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified Service

    -
    -
    -
    PUT /api/v1/namespaces/{namespace}/services/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Service

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Service

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Service

    201

    Created

    v1.Service

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    delete a Service

    -
    -
    -
    DELETE /api/v1/namespaces/{namespace}/services/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Service

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified Service

    -
    -
    -
    PATCH /api/v1/namespaces/{namespace}/services/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Service

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Service

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    read status of the specified Service

    -
    -
    -
    GET /api/v1/namespaces/{namespace}/services/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Service

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Service

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    replace status of the specified Service

    -
    -
    -
    PUT /api/v1/namespaces/{namespace}/services/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Service

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Service

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Service

    201

    Created

    v1.Service

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    partially update status of the specified Service

    -
    -
    -
    PATCH /api/v1/namespaces/{namespace}/services/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Service

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Service

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    read the specified Namespace

    -
    -
    -
    GET /api/v1/namespaces/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    name

    name of the Namespace

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Namespace

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified Namespace

    -
    -
    -
    PUT /api/v1/namespaces/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Namespace

    PathParameter

    name

    name of the Namespace

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Namespace

    201

    Created

    v1.Namespace

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    delete a Namespace

    -
    -
    -
    DELETE /api/v1/namespaces/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    name

    name of the Namespace

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified Namespace

    -
    -
    -
    PATCH /api/v1/namespaces/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    name

    name of the Namespace

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Namespace

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    replace finalize of the specified Namespace

    -
    -
    -
    PUT /api/v1/namespaces/{name}/finalize
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Namespace

    PathParameter

    name

    name of the Namespace

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Namespace

    201

    Created

    v1.Namespace

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    read status of the specified Namespace

    -
    -
    -
    GET /api/v1/namespaces/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    name

    name of the Namespace

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Namespace

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    replace status of the specified Namespace

    -
    -
    -
    PUT /api/v1/namespaces/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Namespace

    PathParameter

    name

    name of the Namespace

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Namespace

    201

    Created

    v1.Namespace

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    partially update status of the specified Namespace

    -
    -
    -
    PATCH /api/v1/namespaces/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    name

    name of the Namespace

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Namespace

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Secret

    -
    -
    -
    GET /api/v1/secrets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.SecretList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind Service

    -
    -
    -
    GET /api/v1/services
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.ServiceList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of ConfigMap

    -
    -
    -
    GET /api/v1/watch/configmaps
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Event

    -
    -
    -
    GET /api/v1/watch/events
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Namespace

    -
    -
    -
    GET /api/v1/watch/namespaces
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of ConfigMap

    -
    -
    -
    GET /api/v1/watch/namespaces/{namespace}/configmaps
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind ConfigMap

    -
    -
    -
    GET /api/v1/watch/namespaces/{namespace}/configmaps/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ConfigMap

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Event

    -
    -
    -
    GET /api/v1/watch/namespaces/{namespace}/events
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind Event

    -
    -
    -
    GET /api/v1/watch/namespaces/{namespace}/events/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Event

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Secret

    -
    -
    -
    GET /api/v1/watch/namespaces/{namespace}/secrets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind Secret

    -
    -
    -
    GET /api/v1/watch/namespaces/{namespace}/secrets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Secret

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Service

    -
    -
    -
    GET /api/v1/watch/namespaces/{namespace}/services
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind Service

    -
    -
    -
    GET /api/v1/watch/namespaces/{namespace}/services/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Service

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind Namespace

    -
    -
    -
    GET /api/v1/watch/namespaces/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    PathParameter

    name

    name of the Namespace

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Secret

    -
    -
    -
    GET /api/v1/watch/secrets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of Service

    -
    -
    -
    GET /api/v1/watch/services
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    QueryParameter

    limit

    limit is a maximum number of responses to return for a list call. If more items exist, the server will set the continue field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. -

    The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.

    false

    integer (int32)

    QueryParameter

    continue

    The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.

    false

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apiv1

      -
    • -
    -
    -
    -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/BUILD deleted file mode 100644 index 47159f431..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/BUILD +++ /dev/null @@ -1,49 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "dns.go", - "doc.go", - "plugins.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider", - deps = [ - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["dns_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider", - library = ":go_default_library", - deps = ["//federation/pkg/dnsprovider/rrstype:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/pkg/dnsprovider/providers/aws/route53:all-srcs", - "//federation/pkg/dnsprovider/providers/coredns:all-srcs", - "//federation/pkg/dnsprovider/providers/google/clouddns:all-srcs", - "//federation/pkg/dnsprovider/rrstype:all-srcs", - "//federation/pkg/dnsprovider/tests:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/dns.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/dns.go deleted file mode 100644 index b707280e1..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/dns.go +++ /dev/null @@ -1,114 +0,0 @@ -/* -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 dnsprovider - -import ( - "reflect" - - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -// Interface is an abstract, pluggable interface for DNS providers. -type Interface interface { - // Zones returns the provider's Zones interface, or false if not supported. - Zones() (Zones, bool) -} - -type Zones interface { - // List returns the managed Zones, or an error if the list operation failed. - List() ([]Zone, error) - // Add creates and returns a new managed zone, or an error if the operation failed - Add(Zone) (Zone, error) - // Remove deletes a managed zone, or returns an error if the operation failed. - Remove(Zone) error - // New allocates a new Zone, which can then be passed to Add() - // Arguments are as per the Zone interface below. - New(name string) (Zone, error) -} - -type Zone interface { - // Name returns the name of the zone, e.g. "example.com" - Name() string - // ID returns the unique provider identifier for the zone - ID() string - // ResourceRecordSets returns the provider's ResourceRecordSets interface, or false if not supported. - ResourceRecordSets() (ResourceRecordSets, bool) -} - -type ResourceRecordSets interface { - // List returns the ResourceRecordSets of the Zone, or an error if the list operation failed. - List() ([]ResourceRecordSet, error) - // Get returns the ResourceRecordSet list with the name in the Zone. - // This is a list because there might be multiple records of different - // types for a given name. If the named resource record sets do not - // exist, but no error occurred, the returned record set will be empty - // and error will be nil. - Get(name string) ([]ResourceRecordSet, error) - // New allocates a new ResourceRecordSet, which can then be passed to ResourceRecordChangeset Add() or Remove() - // Arguments are as per the ResourceRecordSet interface below. - New(name string, rrdatas []string, ttl int64, rrstype rrstype.RrsType) ResourceRecordSet - // StartChangeset begins a new batch operation of changes against the Zone - StartChangeset() ResourceRecordChangeset - // Zone returns the parent zone - Zone() Zone -} - -// ResourceRecordChangeset accumulates a set of changes, that can then be applied with Apply -type ResourceRecordChangeset interface { - // Add adds the creation of a ResourceRecordSet in the Zone to the changeset - Add(ResourceRecordSet) ResourceRecordChangeset - // Remove adds the removal of a ResourceRecordSet in the Zone to the changeset - // The supplied ResourceRecordSet must match one of the existing recordsets (obtained via List()) exactly. - Remove(ResourceRecordSet) ResourceRecordChangeset - // Upsert adds an "create or update" operation for the ResourceRecordSet in the Zone to the changeset - // Note: the implementation may translate this into a Remove followed by an Add operation. - // If you have the pre-image, it will likely be more efficient to call Remove and Add. - Upsert(ResourceRecordSet) ResourceRecordChangeset - // Apply applies the accumulated operations to the Zone. - Apply() error - // IsEmpty returns true if there are no accumulated operations. - IsEmpty() bool - // ResourceRecordSets returns the parent ResourceRecordSets - ResourceRecordSets() ResourceRecordSets -} - -type ResourceRecordSet interface { - // Name returns the name of the ResourceRecordSet, e.g. "www.example.com". - Name() string - // Rrdatas returns the Resource Record Datas of the record set. - Rrdatas() []string - // Ttl returns the time-to-live of the record set, in seconds. - Ttl() int64 - // Type returns the type of the record set (A, CNAME, SRV, etc) - Type() rrstype.RrsType -} - -/* ResourceRecordSetsEquivalent compares two ResourceRecordSets for semantic equivalence. - Go's equality operator doesn't work the way we want it to in this case, - hence the need for this function. - More specifically (from the Go spec): - "Two struct values are equal if their corresponding non-blank fields are equal." - In our case, there may be some private internal member variables that may not be not equal, - but we want the two structs to be considered equivalent anyway, if the fields exposed - via their interfaces are equal. -*/ -func ResourceRecordSetsEquivalent(r1, r2 ResourceRecordSet) bool { - if r1.Name() == r2.Name() && reflect.DeepEqual(r1.Rrdatas(), r2.Rrdatas()) && r1.Ttl() == r2.Ttl() && r1.Type() == r2.Type() { - return true - } - return false -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/dns_test.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/dns_test.go deleted file mode 100644 index b5a2344c3..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/dns_test.go +++ /dev/null @@ -1,96 +0,0 @@ -/* -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 dnsprovider - -import ( - "testing" - - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -// Compile time interface check -var _ ResourceRecordSet = record{} - -type record struct { - name string - rrdatas []string - ttl int64 - type_ string -} - -func (r record) Name() string { - return r.name -} - -func (r record) Ttl() int64 { - return r.ttl -} - -func (r record) Rrdatas() []string { - return r.rrdatas -} - -func (r record) Type() rrstype.RrsType { - return rrstype.RrsType(r.type_) -} - -const testDNSZone string = "foo.com" - -var testData = []struct { - inputs [2]record - expectedOutput bool -}{ - { - [2]record{ - {"foo", []string{"1.2.3.4", "5,6,7,8"}, 180, "A"}, // Identical - {"foo", []string{"1.2.3.4", "5,6,7,8"}, 180, "A"}}, true, - }, - { - [2]record{ - {"foo", []string{"1.2.3.4", "5,6,7,8"}, 180, "A"}, // Identical except Name - {"bar", []string{"1.2.3.4", "5,6,7,8"}, 180, "A"}}, false, - }, - { - [2]record{ - {"foo", []string{"1.2.3.4", "5,6,7,8"}, 180, "A"}, // Identical except Rrdata - {"foo", []string{"1.2.3.4", "5,6,7,9"}, 180, "A"}}, false, - }, - { - [2]record{ - {"foo", []string{"1.2.3.4", "5,6,7,8"}, 180, "A"}, // Identical except Rrdata ordering reversed - {"foo", []string{"5,6,7,8", "1.2.3.4"}, 180, "A"}}, false, - }, - { - [2]record{ - {"foo", []string{"1.2.3.4", "5,6,7,8"}, 180, "A"}, // Identical except TTL - {"foo", []string{"1.2.3.4", "5,6,7,8"}, 150, "A"}}, false, - }, - { - [2]record{ - {"foo", []string{"1.2.3.4", "5,6,7,8"}, 180, "A"}, // Identical except Type - {"foo", []string{"1.2.3.4", "5,6,7,8"}, 180, "CNAME"}}, false, - }, -} - -func TestEquivalent(t *testing.T) { - for _, test := range testData { - output := ResourceRecordSetsEquivalent(test.inputs[0], test.inputs[1]) - if output != test.expectedOutput { - t.Errorf("Expected equivalence comparison of %q and %q to yield %v, but it vielded %v", test.inputs[0], test.inputs[1], test.expectedOutput, output) - } - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/doc.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/doc.go deleted file mode 100644 index 201c57a05..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/doc.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -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. -*/ - -/* -dnsprovider supplies interfaces for dns service providers (e.g. Google Cloud DNS, AWS route53, etc). -Implementations exist in the providers sub-package -*/ -package dnsprovider // import "k8s.io/kubernetes/federation/pkg/dnsprovider" diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/plugins.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/plugins.go deleted file mode 100644 index affaf404e..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/plugins.go +++ /dev/null @@ -1,109 +0,0 @@ -/* -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 dnsprovider - -import ( - "fmt" - "io" - "os" - "sync" - - "github.com/golang/glog" -) - -// Factory is a function that returns a dnsprovider.Interface. -// The config parameter provides an io.Reader handler to the factory in -// order to load specific configurations. If no configuration is provided -// the parameter is nil. -type Factory func(config io.Reader) (Interface, error) - -// All registered dns providers. -var providersMutex sync.Mutex -var providers = make(map[string]Factory) - -// RegisterDnsProvider registers a dnsprovider.Factory by name. This -// is expected to happen during startup. -func RegisterDnsProvider(name string, cloud Factory) { - providersMutex.Lock() - defer providersMutex.Unlock() - if _, found := providers[name]; found { - glog.Fatalf("DNS provider %q was registered twice", name) - } - glog.V(1).Infof("Registered DNS provider %q", name) - providers[name] = cloud -} - -// GetDnsProvider creates an instance of the named DNS provider, or nil if -// the name is not known. The error return is only used if the named provider -// was known but failed to initialize. The config parameter specifies the -// io.Reader handler of the configuration file for the DNS provider, or nil -// for no configuration. -func GetDnsProvider(name string, config io.Reader) (Interface, error) { - providersMutex.Lock() - defer providersMutex.Unlock() - f, found := providers[name] - if !found { - return nil, nil - } - return f(config) -} - -// Returns a list of registered dns providers. -func RegisteredDnsProviders() []string { - registeredProviders := make([]string, len(providers)) - i := 0 - for provider := range providers { - registeredProviders[i] = provider - i = i + 1 - } - return registeredProviders -} - -// InitDnsProvider creates an instance of the named DNS provider. -func InitDnsProvider(name string, configFilePath string) (Interface, error) { - var dns Interface - var err error - - if name == "" { - glog.Info("No DNS provider specified.") - return nil, nil - } - - if configFilePath != "" { - var config *os.File - config, err = os.Open(configFilePath) - if err != nil { - return nil, fmt.Errorf("Couldn't open DNS provider configuration %s: %#v", configFilePath, err) - } - - defer config.Close() - dns, err = GetDnsProvider(name, config) - } else { - // Pass explicit nil so plugins can actually check for nil. See - // "Why is my nil error value not equal to nil?" in golang.org/doc/faq. - dns, err = GetDnsProvider(name, nil) - } - - if err != nil { - return nil, fmt.Errorf("could not init DNS provider %q: %v", name, err) - } - if dns == nil { - return nil, fmt.Errorf("unknown DNS provider %q", name) - } - - return dns, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/BUILD deleted file mode 100644 index 444ff4067..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/BUILD +++ /dev/null @@ -1,63 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "route53.go", - "rrchangeset.go", - "rrset.go", - "rrsets.go", - "zone.go", - "zones.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53", - deps = [ - "//federation/pkg/dnsprovider:go_default_library", - "//federation/pkg/dnsprovider/providers/aws/route53/stubs:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", - "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", - "//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library", - "//vendor/github.com/aws/aws-sdk-go/service/route53:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["route53_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53", - library = ":go_default_library", - deps = [ - "//federation/pkg/dnsprovider:go_default_library", - "//federation/pkg/dnsprovider/providers/aws/route53/stubs:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//federation/pkg/dnsprovider/tests:go_default_library", - "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", - "//vendor/github.com/aws/aws-sdk-go/service/route53:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/pkg/dnsprovider/providers/aws/route53/stubs:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/interface.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/interface.go deleted file mode 100644 index b5f171887..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/interface.go +++ /dev/null @@ -1,39 +0,0 @@ -/* -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 route53 - -import ( - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs" -) - -// Compile time check for interface adherence -var _ dnsprovider.Interface = Interface{} - -type Interface struct { - service stubs.Route53API -} - -// New builds an Interface, with a specified Route53API implementation. -// This is useful for testing purposes, but also if we want an instance with with custom AWS options. -func New(service stubs.Route53API) *Interface { - return &Interface{service} -} - -func (i Interface) Zones() (zones dnsprovider.Zones, supported bool) { - return Zones{&i}, true -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/route53.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/route53.go deleted file mode 100644 index 4e440f7a3..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/route53.go +++ /dev/null @@ -1,72 +0,0 @@ -/* -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. -*/ - -// route53 is the implementation of pkg/dnsprovider interface for AWS Route53 -package route53 - -import ( - "io" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/route53" - "github.com/golang/glog" - "k8s.io/kubernetes/federation/pkg/dnsprovider" -) - -const ( - ProviderName = "aws-route53" -) - -func init() { - dnsprovider.RegisterDnsProvider(ProviderName, func(config io.Reader) (dnsprovider.Interface, error) { - return newRoute53(config) - }) -} - -// route53HandlerLogger is a request handler for aws-sdk-go that logs route53 requests -func route53HandlerLogger(req *request.Request) { - service := req.ClientInfo.ServiceName - - name := "?" - if req.Operation != nil { - name = req.Operation.Name - } - - glog.V(4).Infof("AWS request: %s %s", service, name) -} - -// newRoute53 creates a new instance of an AWS Route53 DNS Interface. -func newRoute53(config io.Reader) (*Interface, error) { - // Connect to AWS Route53 - TODO: Do more sophisticated auth - - awsConfig := aws.NewConfig() - - // This avoids a confusing error message when we fail to get credentials - // e.g. https://github.com/kubernetes/kops/issues/605 - awsConfig = awsConfig.WithCredentialsChainVerboseErrors(true) - - svc := route53.New(session.New(), awsConfig) - - // Add our handler that will log requests - svc.Handlers.Sign.PushFrontNamed(request.NamedHandler{ - Name: "k8s/logger", - Fn: route53HandlerLogger, - }) - - return New(svc), nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/route53_test.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/route53_test.go deleted file mode 100644 index 19d8967fd..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/route53_test.go +++ /dev/null @@ -1,295 +0,0 @@ -/* -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 route53 - -import ( - "flag" - "fmt" - "os" - "testing" - - "k8s.io/kubernetes/federation/pkg/dnsprovider" - route53testing "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/route53" - "k8s.io/kubernetes/federation/pkg/dnsprovider/tests" -) - -func newTestInterface() (dnsprovider.Interface, error) { - // Use this to test the real cloud service. - // return dnsprovider.GetDnsProvider(ProviderName, strings.NewReader("\n[global]\nproject-id = federation0-cluster00")) - return newFakeInterface() // Use this to stub out the entire cloud service -} - -func newFakeInterface() (dnsprovider.Interface, error) { - var service route53testing.Route53API - service = route53testing.NewRoute53APIStub() - iface := New(service) - // Add a fake zone to test against. - params := &route53.CreateHostedZoneInput{ - CallerReference: aws.String("Nonce"), // Required - Name: aws.String("example.com"), // Required - } - _, err := iface.service.CreateHostedZone(params) - if err != nil { - return nil, err - } - return iface, nil -} - -var interface_ dnsprovider.Interface - -func TestMain(m *testing.M) { - fmt.Printf("Parsing flags.\n") - flag.Parse() - var err error - fmt.Printf("Getting new test interface.\n") - interface_, err = newTestInterface() - if err != nil { - fmt.Printf("Error creating interface: %v", err) - os.Exit(1) - } - fmt.Printf("Running tests...\n") - os.Exit(m.Run()) -} - -// zones returns the zones interface for the configured dns provider account/project, -// or fails if it can't be found -func zones(t *testing.T) dnsprovider.Zones { - zonesInterface, supported := interface_.Zones() - if !supported { - t.Fatalf("Zones interface not supported by interface %v", interface_) - } else { - t.Logf("Got zones %v\n", zonesInterface) - } - return zonesInterface -} - -// firstZone returns the first zone for the configured dns provider account/project, -// or fails if it can't be found -func firstZone(t *testing.T) dnsprovider.Zone { - t.Logf("Getting zones") - z := zones(t) - zones, err := z.List() - if err != nil { - t.Fatalf("Failed to list zones: %v", err) - } else { - t.Logf("Got zone list: %v\n", zones) - } - if len(zones) < 1 { - t.Fatalf("Zone listing returned %d, expected >= %d", len(zones), 1) - } else { - t.Logf("Got at least 1 zone in list:%v\n", zones[0]) - } - return zones[0] -} - -/* rrs returns the ResourceRecordSets interface for a given zone */ -func rrs(t *testing.T, zone dnsprovider.Zone) (r dnsprovider.ResourceRecordSets) { - rrsets, supported := zone.ResourceRecordSets() - if !supported { - t.Fatalf("ResourceRecordSets interface not supported by zone %v", zone) - return r - } - return rrsets -} - -func listRrsOrFail(t *testing.T, rrsets dnsprovider.ResourceRecordSets) []dnsprovider.ResourceRecordSet { - rrset, err := rrsets.List() - if err != nil { - t.Fatalf("Failed to list recordsets: %v", err) - } else { - if len(rrset) < 0 { - t.Fatalf("Record set length=%d, expected >=0", len(rrset)) - } else { - t.Logf("Got %d recordsets: %v", len(rrset), rrset) - } - } - return rrset -} - -func getExampleRrs(zone dnsprovider.Zone) dnsprovider.ResourceRecordSet { - rrsets, _ := zone.ResourceRecordSets() - return rrsets.New("www11."+zone.Name(), []string{"10.10.10.10", "169.20.20.20"}, 180, rrstype.A) -} - -func getInvalidRrs(zone dnsprovider.Zone) dnsprovider.ResourceRecordSet { - rrsets, _ := zone.ResourceRecordSets() - return rrsets.New("www12."+zone.Name(), []string{"rubbish", "rubbish"}, 180, rrstype.A) -} - -func addRrsetOrFail(t *testing.T, rrsets dnsprovider.ResourceRecordSets, rrset dnsprovider.ResourceRecordSet) { - err := rrsets.StartChangeset().Add(rrset).Apply() - if err != nil { - t.Fatalf("Failed to add recordsets: %v", err) - } -} - -/* TestZonesList verifies that listing of zones succeeds */ -func TestZonesList(t *testing.T) { - firstZone(t) -} - -/* TestZonesID verifies that the id of the zone is returned with the prefix removed */ -func TestZonesID(t *testing.T) { - zone := firstZone(t) - - // Check /hostedzone/ prefix is removed - zoneID := zone.ID() - if zoneID != zone.Name() { - t.Fatalf("Unexpected zone id: %q", zoneID) - } -} - -/* TestZoneAddSuccess verifies that addition of a valid managed DNS zone succeeds */ -func TestZoneAddSuccess(t *testing.T) { - testZoneName := "ubernetes.testing" - z := zones(t) - input, err := z.New(testZoneName) - if err != nil { - t.Errorf("Failed to allocate new zone object %s: %v", testZoneName, err) - } - zone, err := z.Add(input) - if err != nil { - t.Errorf("Failed to create new managed DNS zone %s: %v", testZoneName, err) - } - defer func(zone dnsprovider.Zone) { - if zone != nil { - if err := z.Remove(zone); err != nil { - t.Errorf("Failed to delete zone %v: %v", zone, err) - } - } - }(zone) - t.Logf("Successfully added managed DNS zone: %v", zone) -} - -/* TestResourceRecordSetsList verifies that listing of RRS's succeeds */ -func TestResourceRecordSetsList(t *testing.T) { - listRrsOrFail(t, rrs(t, firstZone(t))) -} - -/* TestResourceRecordSetsAddSuccess verifies that addition of a valid RRS succeeds */ -func TestResourceRecordSetsAddSuccess(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - set := getExampleRrs(zone) - addRrsetOrFail(t, sets, set) - defer sets.StartChangeset().Remove(set).Apply() - t.Logf("Successfully added resource record set: %v", set) -} - -/* TestResourceRecordSetsAdditionVisible verifies that added RRS is visible after addition */ -func TestResourceRecordSetsAdditionVisible(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - defer sets.StartChangeset().Remove(rrset).Apply() - t.Logf("Successfully added resource record set: %v", rrset) - found := false - for _, record := range listRrsOrFail(t, sets) { - if record.Name() == rrset.Name() { - found = true - break - } - } - if !found { - t.Errorf("Failed to find added resource record set %s", rrset.Name()) - } -} - -/* TestResourceRecordSetsAddDuplicateFail verifies that addition of a duplicate RRS fails */ -func TestResourceRecordSetsAddDuplicateFail(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - defer sets.StartChangeset().Remove(rrset).Apply() - t.Logf("Successfully added resource record set: %v", rrset) - // Try to add it again, and verify that the call fails. - err := sets.StartChangeset().Add(rrset).Apply() - if err == nil { - defer sets.StartChangeset().Remove(rrset).Apply() - t.Errorf("Should have failed to add duplicate resource record %v, but succeeded instead.", rrset) - } else { - t.Logf("Correctly failed to add duplicate resource record %v: %v", rrset, err) - } -} - -/* TestResourceRecordSetsRemove verifies that the removal of an existing RRS succeeds */ -func TestResourceRecordSetsRemove(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - err := sets.StartChangeset().Remove(rrset).Apply() - if err != nil { - // Try again to clean up. - defer sets.StartChangeset().Remove(rrset).Apply() - t.Errorf("Failed to remove resource record set %v after adding", rrset) - } else { - t.Logf("Successfully removed resource set %v after adding", rrset) - } -} - -/* TestResourceRecordSetsRemoveGone verifies that a removed RRS no longer exists */ -func TestResourceRecordSetsRemoveGone(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - err := sets.StartChangeset().Remove(rrset).Apply() - if err != nil { - // Try again to clean up. - defer sets.StartChangeset().Remove(rrset).Apply() - t.Errorf("Failed to remove resource record set %v after adding", rrset) - } else { - t.Logf("Successfully removed resource set %v after adding", rrset) - } - // Check that it's gone - list := listRrsOrFail(t, sets) - found := false - for _, set := range list { - if set.Name() == rrset.Name() { - found = true - break - } - } - if found { - t.Errorf("Deleted resource record set %v is still present", rrset) - } -} - -/* TestResourceRecordSetsReplace verifies that replacing an RRS works */ -func TestResourceRecordSetsReplace(t *testing.T) { - zone := firstZone(t) - tests.CommonTestResourceRecordSetsReplace(t, zone) -} - -/* TestResourceRecordSetsReplaceAll verifies that we can remove an RRS and create one with a different name*/ -func TestResourceRecordSetsReplaceAll(t *testing.T) { - zone := firstZone(t) - tests.CommonTestResourceRecordSetsReplaceAll(t, zone) -} - -/* TestResourceRecordSetsDifferentTypes verifies that we can add records of the same name but different types */ -func TestResourceRecordSetsDifferentTypes(t *testing.T) { - zone := firstZone(t) - tests.CommonTestResourceRecordSetsDifferentTypes(t, zone) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrchangeset.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrchangeset.go deleted file mode 100644 index 7727159fa..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrchangeset.go +++ /dev/null @@ -1,134 +0,0 @@ -/* -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 route53 - -import ( - "bytes" - "fmt" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/route53" - "github.com/golang/glog" - "k8s.io/kubernetes/federation/pkg/dnsprovider" -) - -// Compile time check for interface adherence -var _ dnsprovider.ResourceRecordChangeset = &ResourceRecordChangeset{} - -type ResourceRecordChangeset struct { - zone *Zone - rrsets *ResourceRecordSets - - additions []dnsprovider.ResourceRecordSet - removals []dnsprovider.ResourceRecordSet - upserts []dnsprovider.ResourceRecordSet -} - -func (c *ResourceRecordChangeset) Add(rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordChangeset { - c.additions = append(c.additions, rrset) - return c -} - -func (c *ResourceRecordChangeset) Remove(rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordChangeset { - c.removals = append(c.removals, rrset) - return c -} - -func (c *ResourceRecordChangeset) Upsert(rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordChangeset { - c.upserts = append(c.upserts, rrset) - return c -} - -// buildChange converts a dnsprovider.ResourceRecordSet to a route53.Change request -func buildChange(action string, rrs dnsprovider.ResourceRecordSet) *route53.Change { - change := &route53.Change{ - Action: aws.String(action), - ResourceRecordSet: &route53.ResourceRecordSet{ - Name: aws.String(rrs.Name()), - Type: aws.String(string(rrs.Type())), - TTL: aws.Int64(rrs.Ttl()), - }, - } - - for _, rrdata := range rrs.Rrdatas() { - rr := &route53.ResourceRecord{ - Value: aws.String(rrdata), - } - change.ResourceRecordSet.ResourceRecords = append(change.ResourceRecordSet.ResourceRecords, rr) - } - return change -} - -func (c *ResourceRecordChangeset) Apply() error { - hostedZoneID := c.zone.impl.Id - - var changes []*route53.Change - - for _, removal := range c.removals { - change := buildChange(route53.ChangeActionDelete, removal) - changes = append(changes, change) - } - - for _, addition := range c.additions { - change := buildChange(route53.ChangeActionCreate, addition) - changes = append(changes, change) - } - - for _, upsert := range c.upserts { - change := buildChange(route53.ChangeActionUpsert, upsert) - changes = append(changes, change) - } - - if len(changes) == 0 { - return nil - } - - if glog.V(8) { - var sb bytes.Buffer - for _, change := range changes { - sb.WriteString(fmt.Sprintf("\t%s %s %s\n", aws.StringValue(change.Action), aws.StringValue(change.ResourceRecordSet.Type), aws.StringValue(change.ResourceRecordSet.Name))) - } - - glog.V(8).Infof("Route53 Changeset:\n%s", sb.String()) - } - - service := c.zone.zones.interface_.service - - request := &route53.ChangeResourceRecordSetsInput{ - ChangeBatch: &route53.ChangeBatch{ - Changes: changes, - }, - HostedZoneId: hostedZoneID, - } - - _, err := service.ChangeResourceRecordSets(request) - if err != nil { - // Cast err to awserr.Error to get the Code and - // Message from an error. - return err - } - return nil -} - -func (c *ResourceRecordChangeset) IsEmpty() bool { - return len(c.removals) == 0 && len(c.additions) == 0 -} - -// ResourceRecordSets returns the parent ResourceRecordSets -func (c *ResourceRecordChangeset) ResourceRecordSets() dnsprovider.ResourceRecordSets { - return c.rrsets -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrset.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrset.go deleted file mode 100644 index cee6fcc34..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrset.go +++ /dev/null @@ -1,63 +0,0 @@ -/* -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 route53 - -import ( - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/route53" -) - -// Compile time check for interface adherence -var _ dnsprovider.ResourceRecordSet = ResourceRecordSet{} - -type ResourceRecordSet struct { - impl *route53.ResourceRecordSet - rrsets *ResourceRecordSets -} - -func (rrset ResourceRecordSet) Name() string { - return aws.StringValue(rrset.impl.Name) -} - -func (rrset ResourceRecordSet) Rrdatas() []string { - // Sigh - need to unpack the strings out of the route53 ResourceRecords - result := make([]string, len(rrset.impl.ResourceRecords)) - for i, record := range rrset.impl.ResourceRecords { - result[i] = aws.StringValue(record.Value) - } - return result -} - -func (rrset ResourceRecordSet) Ttl() int64 { - return aws.Int64Value(rrset.impl.TTL) -} - -func (rrset ResourceRecordSet) Type() rrstype.RrsType { - return rrstype.RrsType(aws.StringValue(rrset.impl.Type)) -} - -// Route53ResourceRecordSet returns the route53 ResourceRecordSet object for the ResourceRecordSet -// This is a "back door" that allows for limited access to the ResourceRecordSet, -// without having to requery it, so that we can expose AWS specific functionality. -// Using this method should be avoided where possible; instead prefer to add functionality -// to the cross-provider ResourceRecordSet interface. -func (rrset ResourceRecordSet) Route53ResourceRecordSet() *route53.ResourceRecordSet { - return rrset.impl -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrsets.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrsets.go deleted file mode 100644 index 67470c877..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/rrsets.go +++ /dev/null @@ -1,106 +0,0 @@ -/* -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 route53 - -import ( - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/route53" - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -// Compile time check for interface adherence -var _ dnsprovider.ResourceRecordSets = ResourceRecordSets{} - -type ResourceRecordSets struct { - zone *Zone -} - -func (rrsets ResourceRecordSets) List() ([]dnsprovider.ResourceRecordSet, error) { - input := route53.ListResourceRecordSetsInput{ - HostedZoneId: rrsets.zone.impl.Id, - } - - var list []dnsprovider.ResourceRecordSet - err := rrsets.zone.zones.interface_.service.ListResourceRecordSetsPages(&input, func(page *route53.ListResourceRecordSetsOutput, lastPage bool) bool { - for _, rrset := range page.ResourceRecordSets { - list = append(list, &ResourceRecordSet{rrset, &rrsets}) - } - return true - }) - if err != nil { - return nil, err - } - return list, nil -} - -func (rrsets ResourceRecordSets) Get(name string) ([]dnsprovider.ResourceRecordSet, error) { - // This list implementation is very similar to the one implemented in - // the List() method above, but it restricts the retrieved list to - // the records whose name match the given `name`. - input := route53.ListResourceRecordSetsInput{ - HostedZoneId: rrsets.zone.impl.Id, - StartRecordName: aws.String(name), - } - - var list []dnsprovider.ResourceRecordSet - err := rrsets.zone.zones.interface_.service.ListResourceRecordSetsPages(&input, func(page *route53.ListResourceRecordSetsOutput, lastPage bool) bool { - for _, rrset := range page.ResourceRecordSets { - if aws.StringValue(rrset.Name) != name { - return false - } - list = append(list, &ResourceRecordSet{rrset, &rrsets}) - } - return true - }) - if err != nil { - return nil, err - } - - return list, nil -} - -func (r ResourceRecordSets) StartChangeset() dnsprovider.ResourceRecordChangeset { - return &ResourceRecordChangeset{ - zone: r.zone, - rrsets: &r, - } -} - -func (r ResourceRecordSets) New(name string, rrdatas []string, ttl int64, rrstype rrstype.RrsType) dnsprovider.ResourceRecordSet { - rrstypeStr := string(rrstype) - rrs := &route53.ResourceRecordSet{ - Name: &name, - Type: &rrstypeStr, - TTL: &ttl, - } - for _, rrdata := range rrdatas { - rrs.ResourceRecords = append(rrs.ResourceRecords, &route53.ResourceRecord{ - Value: aws.String(rrdata), - }) - } - - return ResourceRecordSet{ - rrs, - &r, - } -} - -// Zone returns the parent zone -func (rrset ResourceRecordSets) Zone() dnsprovider.Zone { - return rrset.zone -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD deleted file mode 100644 index 13f4e589b..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["route53api.go"], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs", - deps = [ - "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", - "//vendor/github.com/aws/aws-sdk-go/service/route53:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go deleted file mode 100644 index b09155a6d..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go +++ /dev/null @@ -1,133 +0,0 @@ -/* -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. -*/ - -/* internal implements a stub for the AWS Route53 API, used primarily for unit testing purposes */ -package stubs - -import ( - "fmt" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/route53" -) - -// Compile time check for interface conformance -var _ Route53API = &Route53APIStub{} - -/* Route53API is the subset of the AWS Route53 API that we actually use. Add methods as required. Signatures must match exactly. */ -type Route53API interface { - ListResourceRecordSetsPages(input *route53.ListResourceRecordSetsInput, fn func(p *route53.ListResourceRecordSetsOutput, lastPage bool) (shouldContinue bool)) error - ChangeResourceRecordSets(*route53.ChangeResourceRecordSetsInput) (*route53.ChangeResourceRecordSetsOutput, error) - ListHostedZonesPages(input *route53.ListHostedZonesInput, fn func(p *route53.ListHostedZonesOutput, lastPage bool) (shouldContinue bool)) error - CreateHostedZone(*route53.CreateHostedZoneInput) (*route53.CreateHostedZoneOutput, error) - DeleteHostedZone(*route53.DeleteHostedZoneInput) (*route53.DeleteHostedZoneOutput, error) -} - -// Route53APIStub is a minimal implementation of Route53API, used primarily for unit testing. -// See http://http://docs.aws.amazon.com/sdk-for-go/api/service/route53.html for descriptions -// of all of its methods. -type Route53APIStub struct { - zones map[string]*route53.HostedZone - recordSets map[string]map[string][]*route53.ResourceRecordSet -} - -// NewRoute53APIStub returns an initialized Route53APIStub -func NewRoute53APIStub() *Route53APIStub { - return &Route53APIStub{ - zones: make(map[string]*route53.HostedZone), - recordSets: make(map[string]map[string][]*route53.ResourceRecordSet), - } -} - -func (r *Route53APIStub) ListResourceRecordSetsPages(input *route53.ListResourceRecordSetsInput, fn func(p *route53.ListResourceRecordSetsOutput, lastPage bool) (shouldContinue bool)) error { - output := route53.ListResourceRecordSetsOutput{} // TODO: Support optional input args. - if len(r.recordSets) <= 0 { - output.ResourceRecordSets = []*route53.ResourceRecordSet{} - } else if _, ok := r.recordSets[*input.HostedZoneId]; !ok { - output.ResourceRecordSets = []*route53.ResourceRecordSet{} - } else { - for _, rrsets := range r.recordSets[*input.HostedZoneId] { - for _, rrset := range rrsets { - output.ResourceRecordSets = append(output.ResourceRecordSets, rrset) - } - } - } - lastPage := true - fn(&output, lastPage) - return nil -} - -func (r *Route53APIStub) ChangeResourceRecordSets(input *route53.ChangeResourceRecordSetsInput) (*route53.ChangeResourceRecordSetsOutput, error) { - output := &route53.ChangeResourceRecordSetsOutput{} - recordSets, ok := r.recordSets[*input.HostedZoneId] - if !ok { - recordSets = make(map[string][]*route53.ResourceRecordSet) - } - - for _, change := range input.ChangeBatch.Changes { - key := *change.ResourceRecordSet.Name + "::" + *change.ResourceRecordSet.Type - switch *change.Action { - case route53.ChangeActionCreate: - if _, found := recordSets[key]; found { - return nil, fmt.Errorf("Attempt to create duplicate rrset %s", key) // TODO: Return AWS errors with codes etc - } - recordSets[key] = append(recordSets[key], change.ResourceRecordSet) - case route53.ChangeActionDelete: - if _, found := recordSets[key]; !found { - return nil, fmt.Errorf("Attempt to delete non-existent rrset %s", key) // TODO: Check other fields too - } - delete(recordSets, key) - case route53.ChangeActionUpsert: - // TODO - not used yet - } - } - r.recordSets[*input.HostedZoneId] = recordSets - return output, nil // TODO: We should ideally return status etc, but we don't' use that yet. -} - -func (r *Route53APIStub) ListHostedZonesPages(input *route53.ListHostedZonesInput, fn func(p *route53.ListHostedZonesOutput, lastPage bool) (shouldContinue bool)) error { - output := &route53.ListHostedZonesOutput{} - for _, zone := range r.zones { - output.HostedZones = append(output.HostedZones, zone) - } - lastPage := true - fn(output, lastPage) - return nil -} - -func (r *Route53APIStub) CreateHostedZone(input *route53.CreateHostedZoneInput) (*route53.CreateHostedZoneOutput, error) { - name := aws.StringValue(input.Name) - id := "/hostedzone/" + name - if _, ok := r.zones[id]; ok { - return nil, fmt.Errorf("Error creating hosted DNS zone: %s already exists", id) - } - r.zones[id] = &route53.HostedZone{ - Id: aws.String(id), - Name: aws.String(name), - } - return &route53.CreateHostedZoneOutput{HostedZone: r.zones[id]}, nil -} - -func (r *Route53APIStub) DeleteHostedZone(input *route53.DeleteHostedZoneInput) (*route53.DeleteHostedZoneOutput, error) { - if _, ok := r.zones[*input.Id]; !ok { - return nil, fmt.Errorf("Error deleting hosted DNS zone: %s does not exist", *input.Id) - } - if len(r.recordSets[*input.Id]) > 0 { - return nil, fmt.Errorf("Error deleting hosted DNS zone: %s has resource records", *input.Id) - } - delete(r.zones, *input.Id) - return &route53.DeleteHostedZoneOutput{}, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/zone.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/zone.go deleted file mode 100644 index 7d82783ba..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/zone.go +++ /dev/null @@ -1,56 +0,0 @@ -/* -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 route53 - -import ( - "strings" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/route53" - "k8s.io/kubernetes/federation/pkg/dnsprovider" -) - -// Compile time check for interface adherence -var _ dnsprovider.Zone = &Zone{} - -type Zone struct { - impl *route53.HostedZone - zones *Zones -} - -func (zone *Zone) Name() string { - return aws.StringValue(zone.impl.Name) -} - -func (zone *Zone) ID() string { - id := aws.StringValue(zone.impl.Id) - id = strings.TrimPrefix(id, "/hostedzone/") - return id -} - -func (zone *Zone) ResourceRecordSets() (dnsprovider.ResourceRecordSets, bool) { - return &ResourceRecordSets{zone}, true -} - -// Route53HostedZone returns the route53 HostedZone object for the zone. -// This is a "back door" that allows for limited access to the HostedZone, -// without having to requery it, so that we can expose AWS specific functionality. -// Using this method should be avoided where possible; instead prefer to add functionality -// to the cross-provider Zone interface. -func (zone *Zone) Route53HostedZone() *route53.HostedZone { - return zone.impl -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/zones.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/zones.go deleted file mode 100644 index 4cb9e9c55..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53/zones.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -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 route53 - -import ( - "github.com/aws/aws-sdk-go/service/route53" - - "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/kubernetes/federation/pkg/dnsprovider" -) - -// Compile time check for interface adherence -var _ dnsprovider.Zones = Zones{} - -type Zones struct { - interface_ *Interface -} - -func (zones Zones) List() ([]dnsprovider.Zone, error) { - var zoneList []dnsprovider.Zone - - input := route53.ListHostedZonesInput{} - err := zones.interface_.service.ListHostedZonesPages(&input, func(page *route53.ListHostedZonesOutput, lastPage bool) bool { - for _, zone := range page.HostedZones { - zoneList = append(zoneList, &Zone{zone, &zones}) - } - return true - }) - if err != nil { - return []dnsprovider.Zone{}, err - } - return zoneList, nil -} - -func (zones Zones) Add(zone dnsprovider.Zone) (dnsprovider.Zone, error) { - dnsName := zone.Name() - callerReference := string(uuid.NewUUID()) - input := route53.CreateHostedZoneInput{Name: &dnsName, CallerReference: &callerReference} - output, err := zones.interface_.service.CreateHostedZone(&input) - if err != nil { - return nil, err - } - return &Zone{output.HostedZone, &zones}, nil -} - -func (zones Zones) Remove(zone dnsprovider.Zone) error { - zoneId := zone.(*Zone).impl.Id - input := route53.DeleteHostedZoneInput{Id: zoneId} - _, err := zones.interface_.service.DeleteHostedZone(&input) - if err != nil { - return err - } - return nil -} -func (zones Zones) New(name string) (dnsprovider.Zone, error) { - id := string(uuid.NewUUID()) - managedZone := route53.HostedZone{Id: &id, Name: &name} - return &Zone{&managedZone, &zones}, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/BUILD deleted file mode 100644 index 856dca37c..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/BUILD +++ /dev/null @@ -1,62 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "coredns.go", - "interface.go", - "rrchangeset.go", - "rrset.go", - "rrsets.go", - "zone.go", - "zones.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns", - deps = [ - "//federation/pkg/dnsprovider:go_default_library", - "//federation/pkg/dnsprovider/providers/coredns/stubs:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//vendor/github.com/coreos/etcd/client:go_default_library", - "//vendor/github.com/coreos/etcd/pkg/transport:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/miekg/coredns/middleware/etcd/msg:go_default_library", - "//vendor/golang.org/x/net/context:go_default_library", - "//vendor/gopkg.in/gcfg.v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["coredns_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns", - library = ":go_default_library", - deps = [ - "//federation/pkg/dnsprovider:go_default_library", - "//federation/pkg/dnsprovider/providers/coredns/stubs:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//federation/pkg/dnsprovider/tests:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/pkg/dnsprovider/providers/coredns/stubs:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/coredns.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/coredns.go deleted file mode 100644 index 02f50e336..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/coredns.go +++ /dev/null @@ -1,144 +0,0 @@ -/* -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 coredns is the implementation of pkg/dnsprovider interface for CoreDNS -package coredns - -import ( - "crypto/tls" - "fmt" - "io" - "net" - "net/http" - "strconv" - "strings" - "time" - - etcdc "github.com/coreos/etcd/client" - "github.com/coreos/etcd/pkg/transport" - "github.com/golang/glog" - "gopkg.in/gcfg.v1" - utilnet "k8s.io/apimachinery/pkg/util/net" - "k8s.io/kubernetes/federation/pkg/dnsprovider" -) - -// "coredns" should be used to use this DNS provider -const ( - ProviderName = "coredns" -) - -// Config to override defaults -type Config struct { - Global struct { - EtcdEndpoints string `gcfg:"etcd-endpoints"` - CertFile string `gcfg:"etcd-cert-file"` - KeyFile string `gcfg:"etcd-key-file"` - CAFile string `gcfg:"etcd-ca-file"` - DNSZones string `gcfg:"zones"` - CoreDNSEndpoints string `gcfg:"coredns-endpoints"` - } -} - -func init() { - dnsprovider.RegisterDnsProvider(ProviderName, func(config io.Reader) (dnsprovider.Interface, error) { - return newCoreDNSProviderInterface(config) - }) -} - -func newTransportForETCD2(certFile, keyFile, caFile string) (*http.Transport, error) { - var cfg *tls.Config - if len(certFile) == 0 && len(keyFile) == 0 && len(caFile) == 0 { - cfg = nil - } else { - info := transport.TLSInfo{ - CertFile: certFile, - KeyFile: keyFile, - CAFile: caFile, - } - var err error - cfg, err = info.ClientConfig() - if err != nil { - return nil, fmt.Errorf("error creating tls config: %v", err) - } - } - // Copied from etcd.DefaultTransport declaration. - // TODO: Determine if transport needs optimization - tr := utilnet.SetTransportDefaults(&http.Transport{ - Proxy: http.ProxyFromEnvironment, - Dial: (&net.Dialer{ - Timeout: 30 * time.Second, - KeepAlive: 30 * time.Second, - }).Dial, - TLSHandshakeTimeout: 10 * time.Second, - TLSClientConfig: cfg, - }) - return tr, nil -} - -// newCoreDnsProviderInterface creates a new instance of an CoreDNS DNS Interface. -func newCoreDNSProviderInterface(config io.Reader) (*Interface, error) { - etcdEndpoints := "http://federation-dns-server-etcd:2379" - etcdPathPrefix := "skydns" - dnsZones := "" - var certFile, keyFile, caFile string - - // Possibly override defaults with config below - if config != nil { - var cfg Config - if err := gcfg.ReadInto(&cfg, config); err != nil { - glog.Errorf("Couldn't read config: %v", err) - return nil, err - } - etcdEndpoints = cfg.Global.EtcdEndpoints - dnsZones = cfg.Global.DNSZones - certFile = cfg.Global.CertFile - caFile = cfg.Global.CAFile - keyFile = cfg.Global.KeyFile - } - glog.Infof("Using CoreDNS DNS provider") - - if dnsZones == "" { - return nil, fmt.Errorf("Need to provide at least one DNS Zone") - } - glog.Infof("Creating etcd transport with %s, %s, %s", certFile, keyFile, caFile) - etcdTransport, err := newTransportForETCD2(certFile, keyFile, caFile) - if err != nil { - return nil, fmt.Errorf("error creating transport for etcd: %v", err) - } - - etcdCfg := etcdc.Config{ - Endpoints: strings.Split(etcdEndpoints, ","), - Transport: etcdTransport, - } - - c, err := etcdc.New(etcdCfg) - if err != nil { - return nil, fmt.Errorf("Create etcd client from the config failed") - } - etcdKeysAPI := etcdc.NewKeysAPI(c) - - intf := newInterfaceWithStub(etcdKeysAPI) - intf.etcdPathPrefix = etcdPathPrefix - zoneList := strings.Split(dnsZones, ",") - - intf.zones = Zones{intf: intf} - for index, zoneName := range zoneList { - zone := Zone{domain: zoneName, id: strconv.Itoa(index), zones: &intf.zones} - intf.zones.zoneList = append(intf.zones.zoneList, zone) - } - - return intf, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/coredns_test.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/coredns_test.go deleted file mode 100644 index 39012573f..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/coredns_test.go +++ /dev/null @@ -1,270 +0,0 @@ -/* -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 coredns - -import ( - "flag" - "fmt" - "os" - "strconv" - "testing" - - "k8s.io/kubernetes/federation/pkg/dnsprovider" - corednstesting "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" - - "k8s.io/kubernetes/federation/pkg/dnsprovider/tests" - "strings" -) - -func newTestInterface() (dnsprovider.Interface, error) { - // Use this to test the real cloud service. - // return dnsprovider.GetDnsProvider(ProviderName, strings.NewReader("\n[global]\nproject-id = federation0-cluster00")) - return newFakeInterface() // Use this to stub out the entire cloud service -} - -func newFakeInterface() (dnsprovider.Interface, error) { - var service corednstesting.EtcdKeysAPI - service = corednstesting.NewEtcdKeysAPIStub() - intf := newInterfaceWithStub(service) - intf.etcdPathPrefix = "skydns" - - zoneList := strings.Split("example.com,federation.io", ",") - intf.zones = Zones{intf: intf} - for index, zoneName := range zoneList { - zone := Zone{domain: zoneName, id: strconv.Itoa(index), zones: &intf.zones} - intf.zones.zoneList = append(intf.zones.zoneList, zone) - } - - return intf, nil -} - -var intf dnsprovider.Interface - -func TestMain(m *testing.M) { - fmt.Printf("Parsing flags.\n") - flag.Parse() - var err error - fmt.Printf("Getting new test interface.\n") - intf, err = newTestInterface() - if err != nil { - fmt.Printf("Error creating interface: %v", err) - os.Exit(1) - } - fmt.Printf("Running tests...\n") - os.Exit(m.Run()) -} - -// zones returns the zones interface for the configured dns provider account/project, -// or fails if it can't be found -func zones(t *testing.T) dnsprovider.Zones { - zonesInterface, supported := intf.Zones() - if !supported { - t.Fatalf("Zones interface not supported by interface %v", intf) - } else { - t.Logf("Got zones %v\n", zonesInterface) - } - return zonesInterface -} - -// firstZone returns the first zone for the configured dns provider account/project, -// or fails if it can't be found -func firstZone(t *testing.T) dnsprovider.Zone { - t.Logf("Getting zones") - z := zones(t) - zones, err := z.List() - if err != nil { - t.Fatalf("Failed to list zones: %v", err) - } else { - t.Logf("Got zone list: %v\n", zones) - } - if len(zones) < 1 { - t.Fatalf("Zone listing returned %d, expected >= %d", len(zones), 1) - } else { - t.Logf("Got at least 1 zone in list:%v\n", zones[0]) - } - return zones[0] -} - -/* rrs returns the ResourceRecordSets interface for a given zone */ -func rrs(t *testing.T, zone dnsprovider.Zone) (r dnsprovider.ResourceRecordSets) { - rrsets, supported := zone.ResourceRecordSets() - if !supported { - t.Fatalf("ResourceRecordSets interface not supported by zone %v", zone) - return r - } - return rrsets -} - -func listRrsOrFail(t *testing.T, rrsets dnsprovider.ResourceRecordSets) []dnsprovider.ResourceRecordSet { - rrset, err := rrsets.List() - if err != nil { - t.Fatalf("Failed to list recordsets: %v", err) - } else { - if len(rrset) < 0 { - t.Fatalf("Record set length=%d, expected >=0", len(rrset)) - } else { - t.Logf("Got %d recordsets: %v", len(rrset), rrset) - } - } - return rrset -} - -func getRrOrFail(t *testing.T, rrsets dnsprovider.ResourceRecordSets, name string) []dnsprovider.ResourceRecordSet { - rrsetList, err := rrsets.Get(name) - if err != nil { - t.Fatalf("Failed to get recordset: %v", err) - } else if len(rrsetList) == 0 { - t.Logf("Did not Get recordset: %v", name) - } else { - t.Logf("Got recordsets: %v", rrsetList) - } - return rrsetList -} - -func getExampleRrs(zone dnsprovider.Zone) dnsprovider.ResourceRecordSet { - rrsets, _ := zone.ResourceRecordSets() - return rrsets.New("www11."+zone.Name(), []string{"10.10.10.10", "169.20.20.20"}, 180, rrstype.A) -} - -func addRrsetOrFail(t *testing.T, rrsets dnsprovider.ResourceRecordSets, rrset dnsprovider.ResourceRecordSet) { - err := rrsets.StartChangeset().Add(rrset).Apply() - if err != nil { - t.Fatalf("Failed to add recordsets: %v", err) - } -} - -/* TestZonesList verifies that listing of zones succeeds */ -func TestZonesList(t *testing.T) { - firstZone(t) -} - -/* TestZonesID verifies that the id of the zone is unique */ -func TestZonesID(t *testing.T) { - zone := firstZone(t) - - zoneID := zone.ID() - if zoneID != "0" { - t.Fatalf("Unexpected zone id: %q", zoneID) - } -} - -/* TestResourceRecordSetsGet verifies that getting of RRS succeeds */ -func TestResourceRecordSetsGet(t *testing.T) { - getRrOrFail(t, rrs(t, firstZone(t)), "example.com") -} - -/* TestResourceRecordSetsAddSuccess verifies that addition of a valid RRS succeeds */ -func TestResourceRecordSetsAddSuccess(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - set := getExampleRrs(zone) - addRrsetOrFail(t, sets, set) - defer sets.StartChangeset().Remove(set).Apply() - t.Logf("Successfully added resource record set: %v", set) - if sets.Zone().ID() != zone.ID() { - t.Errorf("Zone for rrset does not match expected") - } -} - -/* TestResourceRecordSetsAdditionVisible verifies that added RRS is visible after addition */ -func TestResourceRecordSetsAdditionVisible(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - defer sets.StartChangeset().Remove(rrset).Apply() - t.Logf("Successfully added resource record set: %v", rrset) - - record := getRrOrFail(t, sets, rrset.Name()) - if record == nil { - t.Errorf("Failed to find added resource record set %s", rrset.Name()) - } -} - -/* TestResourceRecordSetsAddDuplicateFail verifies that addition of a duplicate RRS fails */ -func TestResourceRecordSetsAddDuplicateFail(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - defer sets.StartChangeset().Remove(rrset).Apply() - t.Logf("Successfully added resource record set: %v", rrset) - // Try to add it again, and verify that the call fails. - err := sets.StartChangeset().Add(rrset).Apply() - if err == nil { - defer sets.StartChangeset().Remove(rrset).Apply() - t.Errorf("Should have failed to add duplicate resource record %v, but succeeded instead.", rrset) - } else { - t.Logf("Correctly failed to add duplicate resource record %v: %v", rrset, err) - } -} - -/* TestResourceRecordSetsRemove verifies that the removal of an existing RRS succeeds */ -func TestResourceRecordSetsRemove(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - err := sets.StartChangeset().Remove(rrset).Apply() - if err != nil { - // Try again to clean up. - defer sets.StartChangeset().Remove(rrset).Apply() - t.Errorf("Failed to remove resource record set %v after adding", rrset) - } else { - t.Logf("Successfully removed resource set %v after adding", rrset) - } -} - -/* TestResourceRecordSetsRemoveGone verifies that a removed RRS no longer exists */ -func TestResourceRecordSetsRemoveGone(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - err := sets.StartChangeset().Remove(rrset).Apply() - if err != nil { - // Try again to clean up. - defer sets.StartChangeset().Remove(rrset).Apply() - t.Errorf("Failed to remove resource record set %v after adding", rrset) - } else { - t.Logf("Successfully removed resource set %v after adding", rrset) - } - - record := getRrOrFail(t, sets, rrset.Name()) - if record != nil { - t.Errorf("Deleted resource record set %v is still present", rrset) - } -} - -/* TestResourceRecordSetsReplace verifies that replacing an RRS works */ -func TestResourceRecordSetsReplace(t *testing.T) { - zone := firstZone(t) - tests.CommonTestResourceRecordSetsReplace(t, zone) -} - -/* TestResourceRecordSetsReplaceAll verifies that we can remove an RRS and create one with a different name */ -func TestResourceRecordSetsReplaceAll(t *testing.T) { - zone := firstZone(t) - tests.CommonTestResourceRecordSetsReplaceAll(t, zone) -} - -/* TestResourceRecordSetsDifferentTypes verifies that we can add records with same name, but different types */ -func TestResourceRecordSetsDifferentTypes(t *testing.T) { - zone := firstZone(t) - tests.CommonTestResourceRecordSetsDifferentTypes(t, zone) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/interface.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/interface.go deleted file mode 100644 index d579fd472..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/interface.go +++ /dev/null @@ -1,41 +0,0 @@ -/* -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 coredns - -import ( - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs" -) - -// Compile time check for interface adherence -var _ dnsprovider.Interface = Interface{} - -type Interface struct { - etcdKeysAPI stubs.EtcdKeysAPI - etcdPathPrefix string - zones Zones -} - -// newInterfaceWithStub facilitates stubbing out the underlying etcd -// library for testing purposes. It returns an provider-independent interface. -func newInterfaceWithStub(etcdKeysAPI stubs.EtcdKeysAPI) *Interface { - return &Interface{etcdKeysAPI: etcdKeysAPI} -} - -func (i Interface) Zones() (dnsprovider.Zones, bool) { - return i.zones, true -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrchangeset.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrchangeset.go deleted file mode 100644 index a2f4bab51..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrchangeset.go +++ /dev/null @@ -1,148 +0,0 @@ -/* -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 coredns - -import ( - "encoding/json" - "fmt" - "hash/fnv" - - etcdc "github.com/coreos/etcd/client" - dnsmsg "github.com/miekg/coredns/middleware/etcd/msg" - "golang.org/x/net/context" - "k8s.io/kubernetes/federation/pkg/dnsprovider" -) - -// Compile time check for interface adherence -var _ dnsprovider.ResourceRecordChangeset = &ResourceRecordChangeset{} - -type ChangeSetType string - -const ( - ADDITION = ChangeSetType("ADDITION") - DELETION = ChangeSetType("DELETION") - UPSERT = ChangeSetType("UPSERT") -) - -type ChangeSet struct { - cstype ChangeSetType - rrset dnsprovider.ResourceRecordSet -} - -type ResourceRecordChangeset struct { - zone *Zone - rrsets *ResourceRecordSets - - changeset []ChangeSet -} - -func (c *ResourceRecordChangeset) Add(rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordChangeset { - c.changeset = append(c.changeset, ChangeSet{cstype: ADDITION, rrset: rrset}) - return c -} - -func (c *ResourceRecordChangeset) Remove(rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordChangeset { - c.changeset = append(c.changeset, ChangeSet{cstype: DELETION, rrset: rrset}) - return c -} - -func (c *ResourceRecordChangeset) IsEmpty() bool { - return len(c.changeset) == 0 -} - -func (c *ResourceRecordChangeset) Upsert(rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordChangeset { - c.changeset = append(c.changeset, ChangeSet{cstype: UPSERT, rrset: rrset}) - return c -} - -func (c *ResourceRecordChangeset) Apply() error { - ctx := context.Background() - etcdPathPrefix := c.zone.zones.intf.etcdPathPrefix - getOpts := &etcdc.GetOptions{} - setOpts := &etcdc.SetOptions{} - deleteOpts := &etcdc.DeleteOptions{ - Recursive: true, - } - - for _, changeset := range c.changeset { - switch changeset.cstype { - case ADDITION, UPSERT: - checkNotExists := changeset.cstype == ADDITION - - // TODO: I think the semantics of the other providers are different; they operate at the record level, not the individual rrdata level - // In other words: we should insert/replace all the records for the key - for _, rrdata := range changeset.rrset.Rrdatas() { - b, err := json.Marshal(&dnsmsg.Service{Host: rrdata, TTL: uint32(changeset.rrset.Ttl()), Group: changeset.rrset.Name()}) - if err != nil { - return err - } - recordValue := string(b) - recordLabel := getHash(rrdata) - recordKey := buildDNSNameString(changeset.rrset.Name(), recordLabel) - - if checkNotExists { - response, err := c.zone.zones.intf.etcdKeysAPI.Get(ctx, dnsmsg.Path(recordKey, etcdPathPrefix), getOpts) - if err == nil && response != nil { - return fmt.Errorf("Key already exist, key: %v", recordKey) - } - } - - _, err = c.zone.zones.intf.etcdKeysAPI.Set(ctx, dnsmsg.Path(recordKey, etcdPathPrefix), recordValue, setOpts) - if err != nil { - return err - } - } - - case DELETION: - // TODO: I think the semantics of the other providers are different; they operate at the record level, not the individual rrdata level - // In other words: we should delete all the records for the key, only if it matches exactly - for _, rrdata := range changeset.rrset.Rrdatas() { - recordLabel := getHash(rrdata) - recordKey := buildDNSNameString(changeset.rrset.Name(), recordLabel) - _, err := c.zone.zones.intf.etcdKeysAPI.Delete(ctx, dnsmsg.Path(recordKey, etcdPathPrefix), deleteOpts) - if err != nil { - return err - } - } - // TODO: We need to cleanup empty dirs in etcd - } - } - return nil -} - -// ResourceRecordSets returns the parent ResourceRecordSets -func (c *ResourceRecordChangeset) ResourceRecordSets() dnsprovider.ResourceRecordSets { - return c.rrsets -} - -func getHash(text string) string { - h := fnv.New32a() - h.Write([]byte(text)) - return fmt.Sprintf("%x", h.Sum32()) -} - -func buildDNSNameString(labels ...string) string { - var res string - for _, label := range labels { - if res == "" { - res = label - } else { - res = fmt.Sprintf("%s.%s", label, res) - } - } - return res -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrset.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrset.go deleted file mode 100644 index 394303667..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrset.go +++ /dev/null @@ -1,49 +0,0 @@ -/* -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 coredns - -import ( - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -// Compile time check for interface adherence -var _ dnsprovider.ResourceRecordSet = ResourceRecordSet{} - -type ResourceRecordSet struct { - name string - rrdatas []string - ttl int64 - rrsType rrstype.RrsType - rrsets *ResourceRecordSets -} - -func (rrset ResourceRecordSet) Name() string { - return rrset.name -} - -func (rrset ResourceRecordSet) Rrdatas() []string { - return rrset.rrdatas -} - -func (rrset ResourceRecordSet) Ttl() int64 { - return rrset.ttl -} - -func (rrset ResourceRecordSet) Type() rrstype.RrsType { - return rrset.rrsType -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrsets.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrsets.go deleted file mode 100644 index dbd85cab3..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/rrsets.go +++ /dev/null @@ -1,114 +0,0 @@ -/* -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 coredns - -import ( - "encoding/json" - "fmt" - etcdc "github.com/coreos/etcd/client" - "github.com/golang/glog" - dnsmsg "github.com/miekg/coredns/middleware/etcd/msg" - "golang.org/x/net/context" - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" - "net" -) - -// Compile time check for interface adherence -var _ dnsprovider.ResourceRecordSets = ResourceRecordSets{} - -type ResourceRecordSets struct { - zone *Zone -} - -func (rrsets ResourceRecordSets) List() ([]dnsprovider.ResourceRecordSet, error) { - var list []dnsprovider.ResourceRecordSet - return list, fmt.Errorf("OperationNotSupported") -} - -func (rrsets ResourceRecordSets) Get(name string) ([]dnsprovider.ResourceRecordSet, error) { - getOpts := &etcdc.GetOptions{ - Recursive: true, - } - etcdPathPrefix := rrsets.zone.zones.intf.etcdPathPrefix - response, err := rrsets.zone.zones.intf.etcdKeysAPI.Get(context.Background(), dnsmsg.Path(name, etcdPathPrefix), getOpts) - if err != nil { - if etcdc.IsKeyNotFound(err) { - glog.V(2).Infof("Subdomain %q does not exist", name) - return nil, nil - } - return nil, fmt.Errorf("Failed to get service from etcd, err: %v", err) - } - if emptyResponse(response) { - glog.V(2).Infof("Subdomain %q does not exist in etcd", name) - return nil, nil - } - - var list []dnsprovider.ResourceRecordSet - - for _, node := range response.Node.Nodes { - service := dnsmsg.Service{} - err = json.Unmarshal([]byte(node.Value), &service) - if err != nil { - return nil, fmt.Errorf("Failed to unmarshall json data, err: %v", err) - } - - rrset := ResourceRecordSet{name: name, rrdatas: []string{}, rrsets: &rrsets} - ip := net.ParseIP(service.Host) - switch { - case ip == nil: - rrset.rrsType = rrstype.CNAME - case ip.To4() != nil: - rrset.rrsType = rrstype.A - case ip.To16() != nil: - rrset.rrsType = rrstype.AAAA - default: - // Cannot occur - } - rrset.rrdatas = append(rrset.rrdatas, service.Host) - rrset.ttl = int64(service.TTL) - list = append(list, rrset) - } - - return list, nil -} - -func (rrsets ResourceRecordSets) StartChangeset() dnsprovider.ResourceRecordChangeset { - return &ResourceRecordChangeset{ - zone: rrsets.zone, - rrsets: &rrsets, - } -} - -func (rrsets ResourceRecordSets) New(name string, rrdatas []string, ttl int64, rrsType rrstype.RrsType) dnsprovider.ResourceRecordSet { - return ResourceRecordSet{ - name: name, - rrdatas: rrdatas, - ttl: ttl, - rrsType: rrsType, - rrsets: &rrsets, - } -} - -// Zone returns the parent zone -func (rrset ResourceRecordSets) Zone() dnsprovider.Zone { - return rrset.zone -} - -func emptyResponse(resp *etcdc.Response) bool { - return resp == nil || resp.Node == nil || (len(resp.Node.Value) == 0 && len(resp.Node.Nodes) == 0) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD deleted file mode 100644 index 775a3844a..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["corednsapi.go"], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs", - deps = [ - "//vendor/github.com/coreos/etcd/client:go_default_library", - "//vendor/golang.org/x/net/context:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs/corednsapi.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs/corednsapi.go deleted file mode 100644 index 4e392257b..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/stubs/corednsapi.go +++ /dev/null @@ -1,85 +0,0 @@ -/* -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 stubs implements a stub for the EtcdKeysAPI, used primarily for unit testing purposes -package stubs - -import ( - "strings" - - etcd "github.com/coreos/etcd/client" - "golang.org/x/net/context" -) - -// Compile time check for interface conformance -var _ EtcdKeysAPI = &EtcdKeysAPIStub{} - -type EtcdKeysAPI interface { - Set(context context.Context, key, value string, options *etcd.SetOptions) (*etcd.Response, error) - Get(context context.Context, key string, options *etcd.GetOptions) (*etcd.Response, error) - Delete(context context.Context, key string, options *etcd.DeleteOptions) (*etcd.Response, error) -} - -type EtcdKeysAPIStub struct { - writes map[string]string -} - -// NewEtcdKeysAPIStub returns an initialized EtcdKeysAPIStub -func NewEtcdKeysAPIStub() *EtcdKeysAPIStub { - return &EtcdKeysAPIStub{make(map[string]string)} -} - -func (ec *EtcdKeysAPIStub) Set(context context.Context, key, value string, options *etcd.SetOptions) (*etcd.Response, error) { - ec.writes[key] = value - return nil, nil -} - -func (ec *EtcdKeysAPIStub) Delete(context context.Context, key string, options *etcd.DeleteOptions) (*etcd.Response, error) { - for p := range ec.writes { - if (options.Recursive && strings.HasPrefix(p, key)) || (!options.Recursive && p == key) { - delete(ec.writes, p) - } - } - return nil, nil -} - -func (ec *EtcdKeysAPIStub) Get(context context.Context, key string, options *etcd.GetOptions) (*etcd.Response, error) { - nodes := ec.GetAll(key) - if len(nodes) == 0 { - return nil, nil - } - if len(nodes) == 1 && nodes[key] != "" { - return &etcd.Response{Node: &etcd.Node{Key: key, Value: nodes[key], Dir: false}}, nil - } - - node := &etcd.Node{Key: key, Dir: true, Nodes: etcd.Nodes{}} - for k, v := range nodes { - n := &etcd.Node{Key: k, Value: v} - node.Nodes = append(node.Nodes, n) - } - return &etcd.Response{Node: node}, nil -} - -func (ec *EtcdKeysAPIStub) GetAll(key string) map[string]string { - nodes := make(map[string]string) - key = strings.ToLower(key) - for path := range ec.writes { - if strings.HasPrefix(path, key) { - nodes[path] = ec.writes[path] - } - } - return nodes -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/zone.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/zone.go deleted file mode 100644 index 66cb7bb48..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/zone.go +++ /dev/null @@ -1,42 +0,0 @@ -/* -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 coredns - -import ( - "k8s.io/kubernetes/federation/pkg/dnsprovider" -) - -// Compile time check for interface adherence -var _ dnsprovider.Zone = Zone{} - -type Zone struct { - domain string - id string - zones *Zones -} - -func (zone Zone) Name() string { - return zone.domain -} - -func (zone Zone) ID() string { - return zone.id -} - -func (zone Zone) ResourceRecordSets() (dnsprovider.ResourceRecordSets, bool) { - return &ResourceRecordSets{zone: &zone}, true -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/zones.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/zones.go deleted file mode 100644 index 14e34d966..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns/zones.go +++ /dev/null @@ -1,49 +0,0 @@ -/* -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 coredns - -import ( - "fmt" - "k8s.io/kubernetes/federation/pkg/dnsprovider" -) - -// Compile time check for interface adherence -var _ dnsprovider.Zones = Zones{} - -type Zones struct { - intf *Interface - zoneList []Zone -} - -func (zones Zones) List() ([]dnsprovider.Zone, error) { - var zoneList []dnsprovider.Zone - for _, zone := range zones.zoneList { - zoneList = append(zoneList, zone) - } - return zoneList, nil -} - -func (zones Zones) Add(zone dnsprovider.Zone) (dnsprovider.Zone, error) { - return &Zone{}, fmt.Errorf("OperationNotSupported") -} - -func (zones Zones) Remove(zone dnsprovider.Zone) error { - return fmt.Errorf("OperationNotSupported") -} -func (zones Zones) New(name string) (dnsprovider.Zone, error) { - return &Zone{}, fmt.Errorf("OperationNotSupported") -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/BUILD deleted file mode 100644 index 954ee8f41..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/BUILD +++ /dev/null @@ -1,64 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "clouddns.go", - "interface.go", - "rrchangeset.go", - "rrset.go", - "rrsets.go", - "zone.go", - "zones.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns", - deps = [ - "//federation/pkg/dnsprovider:go_default_library", - "//federation/pkg/dnsprovider/providers/google/clouddns/internal:go_default_library", - "//federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces:go_default_library", - "//federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//pkg/cloudprovider/providers/gce:go_default_library", - "//vendor/cloud.google.com/go/compute/metadata:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/oauth2:go_default_library", - "//vendor/golang.org/x/oauth2/google:go_default_library", - "//vendor/google.golang.org/api/compute/v1:go_default_library", - "//vendor/google.golang.org/api/dns/v1:go_default_library", - "//vendor/gopkg.in/gcfg.v1:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["clouddns_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns", - library = ":go_default_library", - deps = [ - "//federation/pkg/dnsprovider:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//federation/pkg/dnsprovider/tests:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/pkg/dnsprovider/providers/google/clouddns/internal:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/clouddns.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/clouddns.go deleted file mode 100644 index 0242087b1..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/clouddns.go +++ /dev/null @@ -1,116 +0,0 @@ -/* -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. -*/ - -// clouddns is the implementation of pkg/dnsprovider interface for Google Cloud DNS -package clouddns - -import ( - "io" - - "cloud.google.com/go/compute/metadata" - "github.com/golang/glog" - "golang.org/x/oauth2" - "golang.org/x/oauth2/google" - compute "google.golang.org/api/compute/v1" - dns "google.golang.org/api/dns/v1" - gcfg "gopkg.in/gcfg.v1" - - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs" - "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" -) - -const ( - ProviderName = "google-clouddns" -) - -func init() { - dnsprovider.RegisterDnsProvider(ProviderName, func(config io.Reader) (dnsprovider.Interface, error) { - return newCloudDns(config) - }) -} - -type Config struct { - Global struct { - TokenURL string `gcfg:"token-url"` - TokenBody string `gcfg:"token-body"` - ProjectID string `gcfg:"project-id"` - } -} - -// newCloudDns creates a new instance of a Google Cloud DNS Interface. -func newCloudDns(config io.Reader) (*Interface, error) { - projectID, _ := metadata.ProjectID() // On error we get an empty string, which is fine for now. - var tokenSource oauth2.TokenSource - // Possibly override defaults with config below - if config != nil { - var cfg Config - if err := gcfg.ReadInto(&cfg, config); err != nil { - glog.Errorf("Couldn't read config: %v", err) - return nil, err - } - glog.Infof("Using Google Cloud DNS provider config %+v", cfg) - if cfg.Global.ProjectID != "" { - projectID = cfg.Global.ProjectID - } - if cfg.Global.TokenURL != "" { - tokenSource = gce.NewAltTokenSource(cfg.Global.TokenURL, cfg.Global.TokenBody) - } - } - return CreateInterface(projectID, tokenSource) -} - -// CreateInterface creates a clouddns.Interface object using the specified parameters. -// If no tokenSource is specified, uses oauth2.DefaultTokenSource. -func CreateInterface(projectID string, tokenSource oauth2.TokenSource) (*Interface, error) { - if tokenSource == nil { - var err error - tokenSource, err = google.DefaultTokenSource( - oauth2.NoContext, - compute.CloudPlatformScope, - compute.ComputeScope) - glog.Infof("Using DefaultTokenSource %#v", tokenSource) - if err != nil { - return nil, err - } - } else { - glog.Infof("Using existing Token Source %#v", tokenSource) - } - - oauthClient := oauth2.NewClient(oauth2.NoContext, tokenSource) - - service, err := dns.New(oauthClient) - if err != nil { - glog.Errorf("Failed to get Cloud DNS client: %v", err) - } - glog.Infof("Successfully got DNS service: %v\n", service) - return newInterfaceWithStub(projectID, internal.NewService(service)), nil -} - -// NewFakeInterface returns a fake clouddns interface, useful for unit testing purposes. -func NewFakeInterface() (dnsprovider.Interface, error) { - service := stubs.NewService() - interface_ := newInterfaceWithStub("", service) - zones := service.ManagedZones_ - // Add a fake zone to test against. - zone := &stubs.ManagedZone{Service: zones, Name_: "example.com", Rrsets: []stubs.ResourceRecordSet{}, Id_: 1} - call := zones.Create(interface_.project(), zone) - if _, err := call.Do(); err != nil { - return nil, err - } - return interface_, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/clouddns_test.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/clouddns_test.go deleted file mode 100644 index 705bb145d..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/clouddns_test.go +++ /dev/null @@ -1,273 +0,0 @@ -/* -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 clouddns - -import ( - "flag" - "fmt" - "os" - "testing" - - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" - "k8s.io/kubernetes/federation/pkg/dnsprovider/tests" -) - -func newTestInterface() (dnsprovider.Interface, error) { - // Use this to test the real cloud service - insert appropriate project-id. Default token source will be used. See - // https://github.com/golang/oauth2/blob/master/google/default.go for details. - // return dnsprovider.GetDnsProvider(ProviderName, strings.NewReader("\n[global]\nproject-id = federation0-cluster00")) - return NewFakeInterface() // Use this to stub out the entire cloud service -} - -var interface_ dnsprovider.Interface - -func TestMain(m *testing.M) { - flag.Parse() - var err error - interface_, err = newTestInterface() - if err != nil { - fmt.Printf("Error creating interface: %v", err) - os.Exit(1) - } - os.Exit(m.Run()) -} - -// zones returns the zones interface for the configured dns provider account/project, -// or fails if it can't be found -func zones(t *testing.T) dnsprovider.Zones { - zonesInterface, supported := interface_.Zones() - if !supported { - t.Fatalf("Zones interface not supported by interface %v", interface_) - } else { - t.Logf("Got zones %v\n", zonesInterface) - } - return zonesInterface -} - -// firstZone returns the first zone for the configured dns provider account/project, -// or fails if it can't be found -func firstZone(t *testing.T) dnsprovider.Zone { - t.Logf("Getting zones") - zones, err := zones(t).List() - if err != nil { - t.Fatalf("Failed to list zones: %v", err) - } else { - t.Logf("Got zone list: %v\n", zones) - } - if len(zones) < 1 { - t.Fatalf("Zone listing returned %d, expected >= %d", len(zones), 1) - } else { - t.Logf("Got at least 1 zone in list:%v\n", zones[0]) - } - return zones[0] -} - -/* rrs returns the ResourceRecordSets interface for a given zone */ -func rrs(t *testing.T, zone dnsprovider.Zone) (r dnsprovider.ResourceRecordSets) { - rrsets, supported := zone.ResourceRecordSets() - if !supported { - t.Fatalf("ResourceRecordSets interface not supported by zone %v", zone) - return r - } - return rrsets -} - -func listRrsOrFail(t *testing.T, rrsets dnsprovider.ResourceRecordSets) []dnsprovider.ResourceRecordSet { - rrset, err := rrsets.List() - if err != nil { - t.Fatalf("Failed to list recordsets: %v", err) - } else { - if len(rrset) < 0 { - t.Fatalf("Record set length=%d, expected >=0", len(rrset)) - } else { - t.Logf("Got %d recordsets: %v", len(rrset), rrset) - } - } - return rrset -} - -func getExampleRrs(zone dnsprovider.Zone) dnsprovider.ResourceRecordSet { - rrsets, _ := zone.ResourceRecordSets() - return rrsets.New("www11."+zone.Name(), []string{"10.10.10.10", "169.20.20.20"}, 180, rrstype.A) -} - -func getInvalidRrs(zone dnsprovider.Zone) dnsprovider.ResourceRecordSet { - rrsets, _ := zone.ResourceRecordSets() - return rrsets.New("www12."+zone.Name(), []string{"rubbish", "rubbish"}, 180, rrstype.A) -} - -func addRrsetOrFail(t *testing.T, rrsets dnsprovider.ResourceRecordSets, rrset dnsprovider.ResourceRecordSet) { - err := rrsets.StartChangeset().Add(rrset).Apply() - if err != nil { - t.Fatalf("Failed to add recordsets: %v", err) - } -} - -/* TestZonesList verifies that listing of zones succeeds */ -func TestZonesList(t *testing.T) { - firstZone(t) -} - -/* TestZonesID verifies that the id of the zone is returned with the prefix removed */ -func TestZonesID(t *testing.T) { - zone := firstZone(t) - - zoneID := zone.ID() - if zoneID != "1" { - t.Fatalf("Unexpected zone id: %q", zoneID) - } -} - -/* TestZoneAddSuccess verifies that addition of a valid managed DNS zone succeeds */ -func TestZoneAddSuccess(t *testing.T) { - testZoneName := "ubernetesv2.test." - t.Logf("Getting zones") - z := zones(t) - t.Logf("Got zones, making new Zone") - input, err := z.New(testZoneName) - if err != nil { - t.Errorf("Failed to allocate new zone object %s: %v", testZoneName, err) - } - zone, err := z.Add(input) - if err != nil { - t.Errorf("Failed to create new managed DNS zone %s: %v", testZoneName, err) - } - defer func(zone dnsprovider.Zone) { - if zone != nil { - if err := z.Remove(zone); err != nil { - t.Errorf("Failed to delete zone %v: %v", zone, err) - } - } - }(zone) - t.Logf("Successfully added managed DNS zone: %v", zone) -} - -/* TestResourceRecordSetsList verifies that listing of RRS's succeeds */ -func TestResourceRecordSetsList(t *testing.T) { - listRrsOrFail(t, rrs(t, firstZone(t))) -} - -/* TestResourceRecordSetsAddSuccess verifies that addition of a valid RRS succeeds */ -func TestResourceRecordSetsAddSuccess(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - set := getExampleRrs(zone) - addRrsetOrFail(t, sets, set) - defer sets.StartChangeset().Remove(set).Apply() - t.Logf("Successfully added resource record set: %v", set) -} - -/* TestResourceRecordSetsAdditionVisible verifies that added RRS is visible after addition */ -func TestResourceRecordSetsAdditionVisible(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - defer sets.StartChangeset().Remove(rrset).Apply() - t.Logf("Successfully added resource record set: %v", rrset) - found := false - for _, record := range listRrsOrFail(t, sets) { - if record.Name() == rrset.Name() { - found = true - break - } - } - if !found { - t.Errorf("Failed to find added resource record set %s", rrset.Name()) - } -} - -/* TestResourceRecordSetsAddDuplicateFail verifies that addition of a duplicate RRS fails */ -func TestResourceRecordSetsAddDuplicateFail(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - defer sets.StartChangeset().Remove(rrset).Apply() - t.Logf("Successfully added resource record set: %v", rrset) - // Try to add it again, and verify that the call fails. - err := sets.StartChangeset().Add(rrset).Apply() - if err == nil { - defer sets.StartChangeset().Remove(rrset).Apply() - t.Errorf("Should have failed to add duplicate resource record %v, but succeeded instead.", rrset) - } else { - t.Logf("Correctly failed to add duplicate resource record %v: %v", rrset, err) - } -} - -/* TestResourceRecordSetsRemove verifies that the removal of an existing RRS succeeds */ -func TestResourceRecordSetsRemove(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - err := sets.StartChangeset().Remove(rrset).Apply() - if err != nil { - // Try again to clean up. - defer sets.StartChangeset().Remove(rrset).Apply() - t.Errorf("Failed to remove resource record set %v after adding: %v", rrset, err) - } else { - t.Logf("Successfully removed resource set %v after adding", rrset) - } -} - -/* TestResourceRecordSetsRemoveGone verifies that a removed RRS no longer exists */ -func TestResourceRecordSetsRemoveGone(t *testing.T) { - zone := firstZone(t) - sets := rrs(t, zone) - rrset := getExampleRrs(zone) - addRrsetOrFail(t, sets, rrset) - err := sets.StartChangeset().Remove(rrset).Apply() - if err != nil { - // Try again to clean up. - defer sets.StartChangeset().Remove(rrset).Apply() - t.Errorf("Failed to remove resource record set %v after adding: %v", rrset, err) - } else { - t.Logf("Successfully removed resource set %v after adding", rrset) - } - // Check that it's gone - list := listRrsOrFail(t, sets) - found := false - for _, set := range list { - if set.Name() == rrset.Name() { - found = true - break - } - } - if found { - t.Errorf("Deleted resource record set %v is still present", rrset) - } -} - -/* TestResourceRecordSetsReplace verifies that replacing an RRS works */ -func TestResourceRecordSetsReplace(t *testing.T) { - zone := firstZone(t) - tests.CommonTestResourceRecordSetsReplace(t, zone) -} - -/* TestResourceRecordSetsReplaceAll verifies that we can remove an RRS and create one with a different name*/ -func TestResourceRecordSetsReplaceAll(t *testing.T) { - zone := firstZone(t) - tests.CommonTestResourceRecordSetsReplaceAll(t, zone) -} - -/* TestResourceRecordSetsDifferentType verifies that we can add records of the same name but different types */ -func TestResourceRecordSetsDifferentTypes(t *testing.T) { - zone := firstZone(t) - tests.CommonTestResourceRecordSetsDifferentTypes(t, zone) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/interface.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/interface.go deleted file mode 100644 index 6fca4eb84..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/interface.go +++ /dev/null @@ -1,43 +0,0 @@ -/* -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 clouddns - -import ( - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -var _ dnsprovider.Interface = Interface{} - -type Interface struct { - project_ string - service interfaces.Service -} - -// newInterfaceWithStub facilitates stubbing out the underlying Google Cloud DNS -// library for testing purposes. It returns an provider-independent interface. -func newInterfaceWithStub(project string, service interfaces.Service) *Interface { - return &Interface{project, service} -} - -func (i Interface) Zones() (zones dnsprovider.Zones, supported bool) { - return Zones{i.service.ManagedZones(), &i}, true -} - -func (i Interface) project() string { - return i.project_ -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD deleted file mode 100644 index 570e4e243..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD +++ /dev/null @@ -1,53 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "change.go", - "changes_create_call.go", - "changes_service.go", - "clouddns.go", - "managed_zone.go", - "managed_zone_create_call.go", - "managed_zones_delete_call.go", - "managed_zones_get_call.go", - "managed_zones_list_call.go", - "managed_zones_list_response.go", - "managed_zones_service.go", - "rrset.go", - "rrsets_list_call.go", - "rrsets_list_response.go", - "rrsets_service.go", - "service.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal", - deps = [ - "//federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//vendor/google.golang.org/api/dns/v1:go_default_library", - "//vendor/google.golang.org/api/googleapi:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces:all-srcs", - "//federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/change.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/change.go deleted file mode 100644 index e229a7954..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/change.go +++ /dev/null @@ -1,43 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.Change = Change{} - -type Change struct{ impl *dns.Change } - -func (c Change) Additions() (rrsets []interfaces.ResourceRecordSet) { - rrsets = make([]interfaces.ResourceRecordSet, len(c.impl.Additions)) - for index, addition := range c.impl.Additions { - rrsets[index] = interfaces.ResourceRecordSet(&ResourceRecordSet{addition}) - } - return rrsets -} - -func (c Change) Deletions() (rrsets []interfaces.ResourceRecordSet) { - rrsets = make([]interfaces.ResourceRecordSet, len(c.impl.Deletions)) - for index, deletion := range c.impl.Deletions { - rrsets[index] = interfaces.ResourceRecordSet(&ResourceRecordSet{deletion}) - } - return rrsets -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/changes_create_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/changes_create_call.go deleted file mode 100644 index b1a8310bc..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/changes_create_call.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "google.golang.org/api/googleapi" - - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ChangesCreateCall = ChangesCreateCall{} - -type ChangesCreateCall struct{ impl *dns.ChangesCreateCall } - -func (c ChangesCreateCall) Do(opts ...googleapi.CallOption) (interfaces.Change, error) { - ch, err := c.impl.Do(opts...) - return &Change{ch}, err -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/changes_service.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/changes_service.go deleted file mode 100644 index 887ed9df2..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/changes_service.go +++ /dev/null @@ -1,43 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ChangesService = ChangesService{} - -type ChangesService struct{ impl *dns.ChangesService } - -func (c ChangesService) Create(project string, managedZone string, change interfaces.Change) interfaces.ChangesCreateCall { - return &ChangesCreateCall{c.impl.Create(project, managedZone, change.(*Change).impl)} -} - -func (c ChangesService) NewChange(additions, deletions []interfaces.ResourceRecordSet) interfaces.Change { - adds := make([]*dns.ResourceRecordSet, len(additions)) - deletes := make([]*dns.ResourceRecordSet, len(deletions)) - for i, a := range additions { - adds[i] = a.(*ResourceRecordSet).impl - } - for i, d := range deletions { - deletes[i] = d.(*ResourceRecordSet).impl - } - return &Change{&dns.Change{Additions: adds, Deletions: deletes}} -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/clouddns.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/clouddns.go deleted file mode 100644 index 3c8f8c533..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/clouddns.go +++ /dev/null @@ -1,35 +0,0 @@ -/* -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 internal - -// Implementation of internal/interfaces/* on top of Google Cloud DNS API. -// See https://godoc.org/google.golang.org/api/dns/v1 for details -// This facilitates stubbing out Google Cloud DNS for unit testing. -// Only the parts of the API that we use are included. -// Others can be added as needed. - -import dns "google.golang.org/api/dns/v1" - -type ( - Project struct{ impl *dns.Project } - - ProjectsGetCall struct{ impl *dns.ProjectsGetCall } - - ProjectsService struct{ impl *dns.ProjectsService } - - Quota struct{ impl *dns.Quota } -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD deleted file mode 100644 index 7304f9537..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interfaces.go"], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces", - deps = [ - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//vendor/google.golang.org/api/googleapi:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/interfaces.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/interfaces.go deleted file mode 100644 index 7d9f16639..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/interfaces.go +++ /dev/null @@ -1,212 +0,0 @@ -/* -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 interfaces - -import ( - "context" - - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -// Interfaces to directly mirror the Google Cloud DNS API structures. -// See https://godoc.org/google.golang.org/api/dns/v1 for details -// This facilitates stubbing out Google Cloud DNS for unit testing. -// Only the parts of the API that we use are included. -// Others can be added as needed. - -type ( - Change interface { - Additions() []ResourceRecordSet - Deletions() []ResourceRecordSet - // Id() string // TODO: Add as needed - // Kind() string // TODO: Add as needed - // StartTime() string // TODO: Add as needed - // Status() string // TODO: Add as needed - } - - ChangesCreateCall interface { - // Context(ctx context.Context) *ChangesCreateCall // TODO: Add as needed - Do(opts ...googleapi.CallOption) (Change, error) - // Fields(s ...googleapi.Field) *ChangesCreateCall // TODO: Add as needed - } - - ChangesGetCall interface { - // Context(ctx context.Context) *ChangesGetCall // TODO: Add as needed - Do(opts ...googleapi.CallOption) (*Change, error) - // Fields(s ...googleapi.Field) *ChangesGetCall // TODO: Add as needed - // IfNoneMatch(entityTag string) *ChangesGetCall // TODO: Add as needed - } - - ChangesListCall interface { - // Context(ctx context.Context) *ChangesListCall // TODO: Add as needed - Do(opts ...googleapi.CallOption) (*ChangesListResponse, error) - // Fields(s ...googleapi.Field) *ChangesListCall // TODO: Add as needed - // IfNoneMatch(entityTag string) *ChangesListCall // TODO: Add as needed - // MaxResults(maxResults int64) *ChangesListCall // TODO: Add as needed - // PageToken(pageToken string) *ChangesListCall // TODO: Add as needed - // Pages(ctx context.Context, f func(*ChangesListResponse) error) error // TODO: Add as needed - // SortBy(sortBy string) *ChangesListCall // TODO: Add as needed - // SortOrder(sortOrder string) *ChangesListCall // TODO: Add as needed - } - - ChangesListResponse interface { - // Changes() []*Change // TODO: Add as needed - // Kind() string // TODO: Add as needed - // NextPageToken() string // TODO: Add as needed - // ServerResponse() googleapi.ServerResponse // TODO: Add as needed - // ForceSendFields() []string // TODO: Add as needed - } - - ChangesService interface { - // Create(project string, managedZone string, change *Change) *ChangesCreateCall // TODO: Add as needed - Create(project string, managedZone string, change Change) ChangesCreateCall - NewChange(additions, deletions []ResourceRecordSet) Change - - // Get(project string, managedZone string, changeId string) *ChangesGetCall // TODO: Add as needed - // List(project string, managedZone string) *ChangesListCall // TODO: Add as needed - } - - ManagedZone interface { - // CreationTime() string // TODO: Add as needed - // Description() string // TODO: Add as needed - DnsName() string - Id() uint64 - // Kind() string // TODO: Add as needed - Name() string - // NameServerSet() string // TODO: Add as needed - // NameServers() []string // TODO: Add as needed - // ServerResponse() googleapi.ServerResponse // TODO: Add as needed - // ForceSendFields() []string // TODO: Add as needed - } - - ManagedZonesCreateCall interface { - // Context(ctx context.Context) *ManagedZonesCreateCall // TODO: Add as needed - Do(opts ...googleapi.CallOption) (ManagedZone, error) - // Fields(s ...googleapi.Field) *ManagedZonesCreateCall // TODO: Add as needed - } - - ManagedZonesDeleteCall interface { - // Context(ctx context.Context) *ManagedZonesDeleteCall // TODO: Add as needed - Do(opts ...googleapi.CallOption) error - // Fields(s ...googleapi.Field) *ManagedZonesDeleteCall // TODO: Add as needed - } - - ManagedZonesGetCall interface { - // Context(ctx context.Context) *ManagedZonesGetCall // TODO: Add as needed - Do(opts ...googleapi.CallOption) (ManagedZone, error) - // Fields(s ...googleapi.Field) *ManagedZonesGetCall // TODO: Add as needed - // IfNoneMatch(entityTag string) *ManagedZonesGetCall // TODO: Add as needed - } - - ManagedZonesListCall interface { - // Context(ctx context.Context) *ManagedZonesListCall // TODO: Add as needed - DnsName(dnsName string) ManagedZonesListCall - Do(opts ...googleapi.CallOption) (ManagedZonesListResponse, error) - // Fields(s ...googleapi.Field) *ManagedZonesListCall // TODO: Add as needed - // IfNoneMatch(entityTag string) *ManagedZonesListCall // TODO: Add as needed - // MaxResults(maxResults int64) *ManagedZonesListCall // TODO: Add as needed - // PageToken(pageToken string) *ManagedZonesListCall // TODO: Add as needed - // Pages(ctx context.Context, f func(*ManagedZonesListResponse) error) error // TODO: Add as needed - } - - ManagedZonesListResponse interface { - // Kind() string // TODO: Add as needed - // ManagedZones() []*ManagedZone // TODO: Add as needed - ManagedZones() []ManagedZone - // NextPageToken string // TODO: Add as needed - // ServerResponse() googleapi.ServerResponse // TODO: Add as needed - // ForceSendFields() []string // TODO: Add as needed - } - - ManagedZonesService interface { - // NewManagedZonesService(s *Service) *ManagedZonesService // TODO: Add to service if needed - Create(project string, managedZone ManagedZone) ManagedZonesCreateCall - Delete(project string, managedZone string) ManagedZonesDeleteCall - Get(project string, managedZone string) ManagedZonesGetCall - List(project string) ManagedZonesListCall - NewManagedZone(dnsName string) ManagedZone - } - - Project interface { - // Id() string // TODO: Add as needed - // Kind() string // TODO: Add as needed - // Number() uint64 // TODO: Add as needed - // Quota() *Quota // TODO: Add as needed - // ServerResponse() googleapi.ServerResponse // TODO: Add as needed - // ForceSendFields() []string // TODO: Add as needed - } - - ProjectsGetCall interface { - // TODO: Add as needed - } - - ProjectsService interface { - // TODO: Add as needed - } - - Quota interface { - // TODO: Add as needed - } - - ResourceRecordSet interface { - // Kind() string // TODO: Add as needed - Name() string - Rrdatas() []string - Ttl() int64 - Type() string - // ForceSendFields []string // TODO: Add as needed - } - - ResourceRecordSetsListCall interface { - // Context(ctx context.Context) *ResourceRecordSetsListCall // TODO: Add as needed - Do(opts ...googleapi.CallOption) (ResourceRecordSetsListResponse, error) - Pages(ctx context.Context, f func(ResourceRecordSetsListResponse) error) error - // Fields(s ...googleapi.Field) *ResourceRecordSetsListCall // TODO: Add as needed - // IfNoneMatch(entityTag string) *ResourceRecordSetsListCall // TODO: Add as needed - // MaxResults(maxResults int64) *ResourceRecordSetsListCall // TODO: Add as needed - Name(name string) ResourceRecordSetsListCall - // PageToken(pageToken string) *ResourceRecordSetsListCall // TODO: Add as needed - Type(type_ string) ResourceRecordSetsListCall - } - - ResourceRecordSetsListResponse interface { - // Kind() string // TODO: Add as needed - // NextPageToken() string // TODO: Add as needed - Rrsets() []ResourceRecordSet - // ServerResponse() googleapi.ServerResponse // TODO: Add as needed - // ForceSendFields() []string // TODO: Add as needed - } - - ResourceRecordSetsService interface { - List(project string, managedZone string) ResourceRecordSetsListCall - // Get returns a list of resources records with the matching name - Get(project, managedZone, name string) ResourceRecordSetsListCall - // NewResourceRecordSetsService(s *Service) *ResourceRecordSetsService // TODO: add to service as needed - NewResourceRecordSet(name string, rrdatas []string, ttl int64, type_ rrstype.RrsType) ResourceRecordSet - } - - Service interface { - // BasePath() string // TODO: Add as needed - // UserAgent() string // TODO: Add as needed - Changes() ChangesService - ManagedZones() ManagedZonesService - Projects() ProjectsService - ResourceRecordSets() ResourceRecordSetsService - } - // New(client *http.Client) (*Service, error) // TODO: Add as needed -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zone.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zone.go deleted file mode 100644 index 862897743..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zone.go +++ /dev/null @@ -1,39 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZone = ManagedZone{} - -type ManagedZone struct{ impl *dns.ManagedZone } - -func (m ManagedZone) Name() string { - return m.impl.Name -} - -func (m ManagedZone) Id() uint64 { - return m.impl.Id -} - -func (m ManagedZone) DnsName() string { - return m.impl.DnsName -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zone_create_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zone_create_call.go deleted file mode 100644 index 133cd145b..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zone_create_call.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesCreateCall = ManagedZonesCreateCall{} - -type ManagedZonesCreateCall struct{ impl *dns.ManagedZonesCreateCall } - -func (call ManagedZonesCreateCall) Do(opts ...googleapi.CallOption) (interfaces.ManagedZone, error) { - m, err := call.impl.Do(opts...) - return &ManagedZone{m}, err -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_delete_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_delete_call.go deleted file mode 100644 index 2e96763e0..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_delete_call.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesDeleteCall = ManagedZonesDeleteCall{} - -type ManagedZonesDeleteCall struct{ impl *dns.ManagedZonesDeleteCall } - -func (call ManagedZonesDeleteCall) Do(opts ...googleapi.CallOption) error { - return call.impl.Do(opts...) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_get_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_get_call.go deleted file mode 100644 index 2a6cadfed..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_get_call.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesGetCall = ManagedZonesGetCall{} - -type ManagedZonesGetCall struct{ impl *dns.ManagedZonesGetCall } - -func (call ManagedZonesGetCall) Do(opts ...googleapi.CallOption) (interfaces.ManagedZone, error) { - m, err := call.impl.Do(opts...) - return &ManagedZone{m}, err -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_list_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_list_call.go deleted file mode 100644 index b70410464..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_list_call.go +++ /dev/null @@ -1,38 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesListCall = &ManagedZonesListCall{} - -type ManagedZonesListCall struct{ impl *dns.ManagedZonesListCall } - -func (call *ManagedZonesListCall) Do(opts ...googleapi.CallOption) (interfaces.ManagedZonesListResponse, error) { - response, err := call.impl.Do(opts...) - return &ManagedZonesListResponse{response}, err -} - -func (call *ManagedZonesListCall) DnsName(dnsName string) interfaces.ManagedZonesListCall { - call.impl.DnsName(dnsName) - return call -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_list_response.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_list_response.go deleted file mode 100644 index b254f5eb5..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_list_response.go +++ /dev/null @@ -1,35 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesListResponse = &ManagedZonesListResponse{} - -type ManagedZonesListResponse struct{ impl *dns.ManagedZonesListResponse } - -func (response *ManagedZonesListResponse) ManagedZones() []interfaces.ManagedZone { - zones := make([]interfaces.ManagedZone, len(response.impl.ManagedZones)) - for i, z := range response.impl.ManagedZones { - zones[i] = &ManagedZone{z} - } - return zones -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_service.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_service.go deleted file mode 100644 index 2ea9e2484..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/managed_zones_service.go +++ /dev/null @@ -1,51 +0,0 @@ -/* -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 internal - -import ( - "strings" - - dns "google.golang.org/api/dns/v1" - "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesService = &ManagedZonesService{} - -type ManagedZonesService struct{ impl *dns.ManagedZonesService } - -func (m *ManagedZonesService) Create(project string, managedzone interfaces.ManagedZone) interfaces.ManagedZonesCreateCall { - return &ManagedZonesCreateCall{m.impl.Create(project, managedzone.(*ManagedZone).impl)} -} - -func (m *ManagedZonesService) Delete(project, managedZone string) interfaces.ManagedZonesDeleteCall { - return &ManagedZonesDeleteCall{m.impl.Delete(project, managedZone)} -} - -func (m *ManagedZonesService) Get(project, managedZone string) interfaces.ManagedZonesGetCall { - return &ManagedZonesGetCall{m.impl.Get(project, managedZone)} -} - -func (m *ManagedZonesService) List(project string) interfaces.ManagedZonesListCall { - return &ManagedZonesListCall{m.impl.List(project)} -} - -func (m *ManagedZonesService) NewManagedZone(dnsName string) interfaces.ManagedZone { - name := "x" + strings.Replace(string(uuid.NewUUID()), "-", "", -1)[0:30] // Unique name, strip out the "-" chars to shorten it, start with a lower case alpha, and truncate to Cloud DNS 32 character limit - return &ManagedZone{impl: &dns.ManagedZone{Name: name, Description: "Kubernetes Federated Service", DnsName: dnsName}} -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrset.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrset.go deleted file mode 100644 index 2b7c0ce24..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrset.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ResourceRecordSet = ResourceRecordSet{} - -type ResourceRecordSet struct{ impl *dns.ResourceRecordSet } - -func (r ResourceRecordSet) Name() string { return r.impl.Name } -func (r ResourceRecordSet) Rrdatas() []string { return r.impl.Rrdatas } -func (r ResourceRecordSet) Ttl() int64 { return r.impl.Ttl } -func (r ResourceRecordSet) Type() string { return r.impl.Type } diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_list_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_list_call.go deleted file mode 100644 index f497ebcfb..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_list_call.go +++ /dev/null @@ -1,53 +0,0 @@ -/* -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 internal - -import ( - "context" - - dns "google.golang.org/api/dns/v1" - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ResourceRecordSetsListCall = &ResourceRecordSetsListCall{} - -type ResourceRecordSetsListCall struct { - impl *dns.ResourceRecordSetsListCall -} - -func (call *ResourceRecordSetsListCall) Do(opts ...googleapi.CallOption) (interfaces.ResourceRecordSetsListResponse, error) { - response, err := call.impl.Do(opts...) - return &ResourceRecordSetsListResponse{response}, err -} - -func (call *ResourceRecordSetsListCall) Pages(ctx context.Context, f func(interfaces.ResourceRecordSetsListResponse) error) error { - return call.impl.Pages(ctx, func(page *dns.ResourceRecordSetsListResponse) error { - return f(&ResourceRecordSetsListResponse{page}) - }) -} - -func (call *ResourceRecordSetsListCall) Name(name string) interfaces.ResourceRecordSetsListCall { - call.impl.Name(name) - return call -} - -func (call *ResourceRecordSetsListCall) Type(type_ string) interfaces.ResourceRecordSetsListCall { - call.impl.Type(type_) - return call -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_list_response.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_list_response.go deleted file mode 100644 index a6ff28df8..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_list_response.go +++ /dev/null @@ -1,38 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ResourceRecordSetsListResponse = &ResourceRecordSetsListResponse{} - -type ResourceRecordSetsListResponse struct { - impl *dns.ResourceRecordSetsListResponse -} - -func (response *ResourceRecordSetsListResponse) Rrsets() []interfaces.ResourceRecordSet { - rrsets := make([]interfaces.ResourceRecordSet, len(response.impl.Rrsets)) - for i, rrset := range response.impl.Rrsets { - rrsets[i] = &ResourceRecordSet{rrset} - } - return rrsets - -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_service.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_service.go deleted file mode 100644 index a971fd751..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/rrsets_service.go +++ /dev/null @@ -1,43 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -// Compile time check for interface adherence -var _ interfaces.ResourceRecordSetsService = &ResourceRecordSetsService{} - -type ResourceRecordSetsService struct { - impl *dns.ResourceRecordSetsService -} - -func (service ResourceRecordSetsService) List(project string, managedZone string) interfaces.ResourceRecordSetsListCall { - return &ResourceRecordSetsListCall{service.impl.List(project, managedZone)} -} - -func (service ResourceRecordSetsService) Get(project, managedZone, name string) interfaces.ResourceRecordSetsListCall { - return &ResourceRecordSetsListCall{service.impl.List(project, managedZone).Name(name)} -} - -func (service ResourceRecordSetsService) NewResourceRecordSet(name string, rrdatas []string, ttl int64, type_ rrstype.RrsType) interfaces.ResourceRecordSet { - rrset := dns.ResourceRecordSet{Name: name, Rrdatas: rrdatas, Ttl: ttl, Type: string(type_)} - return &ResourceRecordSet{&rrset} -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/service.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/service.go deleted file mode 100644 index 8ac5e63b7..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/service.go +++ /dev/null @@ -1,49 +0,0 @@ -/* -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 internal - -import ( - dns "google.golang.org/api/dns/v1" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.Service = &Service{} - -type Service struct { - impl *dns.Service -} - -func NewService(service *dns.Service) *Service { - return &Service{service} -} - -func (s *Service) Changes() interfaces.ChangesService { - return &ChangesService{s.impl.Changes} -} - -func (s *Service) ManagedZones() interfaces.ManagedZonesService { - return &ManagedZonesService{s.impl.ManagedZones} -} - -func (s *Service) Projects() interfaces.ProjectsService { - return &ProjectsService{s.impl.Projects} -} - -func (s *Service) ResourceRecordSets() interfaces.ResourceRecordSetsService { - return &ResourceRecordSetsService{s.impl.ResourceRecordSets} -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD deleted file mode 100644 index 5013c4117..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD +++ /dev/null @@ -1,48 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "change.go", - "changes_create_call.go", - "changes_service.go", - "clouddns.go", - "managed_zone.go", - "managed_zone_create_call.go", - "managed_zones_delete_call.go", - "managed_zones_get_call.go", - "managed_zones_list_call.go", - "managed_zones_list_response.go", - "managed_zones_service.go", - "rrset.go", - "rrsets_list_call.go", - "rrsets_list_response.go", - "rrsets_service.go", - "service.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs", - deps = [ - "//federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//vendor/google.golang.org/api/dns/v1:go_default_library", - "//vendor/google.golang.org/api/googleapi:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/change.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/change.go deleted file mode 100644 index 83e5d9479..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/change.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -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 stubs - -import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - -// Compile time check for interface adherence -var _ interfaces.Change = &Change{} - -type Change struct { - Service *ChangesService - Additions_ []interfaces.ResourceRecordSet - Deletions_ []interfaces.ResourceRecordSet -} - -func (c *Change) Additions() (rrsets []interfaces.ResourceRecordSet) { - return c.Additions_ -} - -func (c *Change) Deletions() (rrsets []interfaces.ResourceRecordSet) { - return c.Deletions_ -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/changes_create_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/changes_create_call.go deleted file mode 100644 index ab27a12f7..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/changes_create_call.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -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 stubs - -import ( - "fmt" - - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ChangesCreateCall = ChangesCreateCall{} - -type ChangesCreateCall struct { - Service *ChangesService - Project string - Zone string - Change interfaces.Change - Error error // Use this to over-ride response if necessary -} - -func hashKey(set interfaces.ResourceRecordSet) string { - return fmt.Sprintf("%s-%d-%s", set.Name(), set.Ttl(), string(set.Type())) -} - -func (c ChangesCreateCall) Do(opts ...googleapi.CallOption) (interfaces.Change, error) { - if c.Error != nil { - return nil, c.Error - } - zone := (c.Service.Service.ManagedZones_.Impl[c.Project][c.Zone]).(*ManagedZone) - rrsets := map[string]ResourceRecordSet{} // compute the new state - for _, set := range zone.Rrsets { - rrsets[hashKey(set)] = set - } - for _, del := range c.Change.Deletions() { - if _, found := rrsets[hashKey(del)]; !found { - return nil, fmt.Errorf("Attempt to delete non-existent rrset %v", del) - } - delete(rrsets, hashKey(del)) - } - for _, add := range c.Change.Additions() { - if _, found := rrsets[hashKey(add)]; found { - return nil, fmt.Errorf("Attempt to insert duplicate rrset %v", add) - } - rrsets[hashKey(add)] = add.(ResourceRecordSet) - } - zone.Rrsets = []ResourceRecordSet{} - for _, rrset := range rrsets { - zone.Rrsets = append(zone.Rrsets, rrset) - } - return c.Change, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/changes_service.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/changes_service.go deleted file mode 100644 index 39b8bd14f..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/changes_service.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -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 stubs - -import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - -// Compile time check for interface adherence -var _ interfaces.ChangesService = &ChangesService{} - -type ChangesService struct { - Service *Service -} - -func (c *ChangesService) Create(project string, managedZone string, change interfaces.Change) interfaces.ChangesCreateCall { - return &ChangesCreateCall{c, project, managedZone, change, nil} -} - -func (c *ChangesService) NewChange(additions, deletions []interfaces.ResourceRecordSet) interfaces.Change { - return &Change{c, additions, deletions} -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/clouddns.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/clouddns.go deleted file mode 100644 index e870ee409..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/clouddns.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -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 stubs - -// Implementation of internal/interfaces/* on top of Google Cloud DNS API. -// See https://godoc.org/google.golang.org/api/dns/v1 for details -// This facilitates stubbing out Google Cloud DNS for unit testing. -// Only the parts of the API that we use are included. -// Others can be added as needed. - -import dns "google.golang.org/api/dns/v1" - -type ( - // TODO: We don't need these yet, so they remain unimplemented. Add later as required. - Project struct{ impl *dns.Project } - ProjectsGetCall struct{ impl *dns.ProjectsGetCall } - ProjectsService struct{ impl *dns.ProjectsService } - Quota struct{ impl *dns.Quota } -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zone.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zone.go deleted file mode 100644 index 2096da400..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zone.go +++ /dev/null @@ -1,41 +0,0 @@ -/* -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 stubs - -import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - -// Compile time check for interface adherence -var _ interfaces.ManagedZone = ManagedZone{} - -type ManagedZone struct { - Service *ManagedZonesService - Name_ string - Id_ uint64 - Rrsets []ResourceRecordSet -} - -func (m ManagedZone) Name() string { - return m.Name_ -} - -func (m ManagedZone) Id() uint64 { - return m.Id_ -} - -func (m ManagedZone) DnsName() string { - return m.Name_ // Don't bother storing a separate DNS name -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zone_create_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zone_create_call.go deleted file mode 100644 index f35f585cb..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zone_create_call.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -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 stubs - -import ( - "fmt" - - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesCreateCall = ManagedZonesCreateCall{} - -type ManagedZonesCreateCall struct { - Error *error // Use to override response for testing - Service *ManagedZonesService - Project string - ManagedZone interfaces.ManagedZone -} - -func (call ManagedZonesCreateCall) Do(opts ...googleapi.CallOption) (interfaces.ManagedZone, error) { - if call.Error != nil { - return nil, *call.Error - } - if call.Service.Impl[call.Project][call.ManagedZone.DnsName()] != nil { - return nil, fmt.Errorf("Error - attempt to create duplicate zone %s in project %s.", - call.ManagedZone.DnsName(), call.Project) - } - if call.Service.Impl == nil { - call.Service.Impl = map[string]map[string]interfaces.ManagedZone{} - } - if call.Service.Impl[call.Project] == nil { - call.Service.Impl[call.Project] = map[string]interfaces.ManagedZone{} - } - call.Service.Impl[call.Project][call.ManagedZone.DnsName()] = call.ManagedZone - return call.ManagedZone, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_delete_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_delete_call.go deleted file mode 100644 index c518e76eb..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_delete_call.go +++ /dev/null @@ -1,53 +0,0 @@ -/* -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 stubs - -import ( - "fmt" - - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesDeleteCall = ManagedZonesDeleteCall{} - -type ManagedZonesDeleteCall struct { - Service *ManagedZonesService - Project string - ZoneName string - Error *error // Use this to override response for testing if required -} - -func (call ManagedZonesDeleteCall) Do(opts ...googleapi.CallOption) error { - if call.Error != nil { // Return the override value - return *call.Error - } else { // Just try to delete it from the in-memory array. - project, ok := call.Service.Impl[call.Project] - if ok { - zone, ok := project[call.ZoneName] - if ok { - delete(project, zone.Name()) - return nil - } else { - return fmt.Errorf("Failed to find zone %s in project %s to delete it", call.ZoneName, call.Project) - } - } else { - return fmt.Errorf("Failed to find project %s to delete zone %s from it", call.Project, call.ZoneName) - } - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_get_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_get_call.go deleted file mode 100644 index f2923c3ab..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_get_call.go +++ /dev/null @@ -1,42 +0,0 @@ -/* -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 stubs - -import ( - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesGetCall = ManagedZonesGetCall{} - -type ManagedZonesGetCall struct { - Service *ManagedZonesService - Project string - ZoneName string - Response interfaces.ManagedZone // Use this to override response if required - Error *error // Use this to override response if required - DnsName_ string -} - -func (call ManagedZonesGetCall) Do(opts ...googleapi.CallOption) (interfaces.ManagedZone, error) { - if call.Response != nil { - return call.Response, *call.Error - } else { - return call.Service.Impl[call.Project][call.ZoneName], nil - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_list_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_list_call.go deleted file mode 100644 index 4b7156ffb..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_list_call.go +++ /dev/null @@ -1,59 +0,0 @@ -/* -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 stubs - -import ( - "fmt" - - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesListCall = &ManagedZonesListCall{} - -type ManagedZonesListCall struct { - Service *ManagedZonesService - Project string - Response *interfaces.ManagedZonesListResponse // Use this to override response if required - Error *error // Use this to override response if required - DnsName_ string -} - -func (call *ManagedZonesListCall) Do(opts ...googleapi.CallOption) (interfaces.ManagedZonesListResponse, error) { - if call.Response != nil { - return *call.Response, *call.Error - } else { - proj, projectFound := call.Service.Impl[call.Project] - if !projectFound { - return nil, fmt.Errorf("Project %s not found.", call.Project) - } - if call.DnsName_ != "" { - return &ManagedZonesListResponse{[]interfaces.ManagedZone{proj[call.DnsName_]}}, nil - } - list := []interfaces.ManagedZone{} - for _, zone := range proj { - list = append(list, zone) - } - return &ManagedZonesListResponse{list}, nil - } -} - -func (call *ManagedZonesListCall) DnsName(dnsName string) interfaces.ManagedZonesListCall { - call.DnsName_ = dnsName - return call -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_list_response.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_list_response.go deleted file mode 100644 index 095cae2ba..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_list_response.go +++ /dev/null @@ -1,28 +0,0 @@ -/* -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 stubs - -import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesListResponse = &ManagedZonesListResponse{} - -type ManagedZonesListResponse struct{ ManagedZones_ []interfaces.ManagedZone } - -func (response *ManagedZonesListResponse) ManagedZones() []interfaces.ManagedZone { - return response.ManagedZones_ -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_service.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_service.go deleted file mode 100644 index 5b8513f2f..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/managed_zones_service.go +++ /dev/null @@ -1,46 +0,0 @@ -/* -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 stubs - -import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - -// Compile time check for interface adherence -var _ interfaces.ManagedZonesService = &ManagedZonesService{} - -type ManagedZonesService struct { - Impl map[string]map[string]interfaces.ManagedZone -} - -func (m *ManagedZonesService) Create(project string, managedzone interfaces.ManagedZone) interfaces.ManagedZonesCreateCall { - return &ManagedZonesCreateCall{nil, m, project, managedzone.(*ManagedZone)} -} - -func (m *ManagedZonesService) Delete(project string, managedZone string) interfaces.ManagedZonesDeleteCall { - return &ManagedZonesDeleteCall{m, project, managedZone, nil} -} - -func (m *ManagedZonesService) Get(project string, managedZone string) interfaces.ManagedZonesGetCall { - return &ManagedZonesGetCall{m, project, managedZone, nil, nil, ""} -} - -func (m *ManagedZonesService) List(project string) interfaces.ManagedZonesListCall { - return &ManagedZonesListCall{m, project, nil, nil, ""} -} - -func (m *ManagedZonesService) NewManagedZone(dnsName string) interfaces.ManagedZone { - return &ManagedZone{Service: m, Name_: dnsName} -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrset.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrset.go deleted file mode 100644 index 3412775c1..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrset.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -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 stubs - -import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - -// Compile time check for interface adherence -var _ interfaces.ResourceRecordSet = ResourceRecordSet{} - -type ResourceRecordSet struct { - Name_ string - Rrdatas_ []string - Ttl_ int64 - Type_ string -} - -func (r ResourceRecordSet) Name() string { return r.Name_ } -func (r ResourceRecordSet) Rrdatas() []string { return r.Rrdatas_ } -func (r ResourceRecordSet) Ttl() int64 { return r.Ttl_ } -func (r ResourceRecordSet) Type() string { return r.Type_ } diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_list_call.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_list_call.go deleted file mode 100644 index 8695142bf..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_list_call.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -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 stubs - -import ( - "context" - - "google.golang.org/api/googleapi" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ interfaces.ResourceRecordSetsListCall = &ResourceRecordSetsListCall{} - -type ResourceRecordSetsListCall struct { - Response_ *ResourceRecordSetsListResponse - Err_ error - Name_ string - Type_ string -} - -func (call *ResourceRecordSetsListCall) Do(opts ...googleapi.CallOption) (interfaces.ResourceRecordSetsListResponse, error) { - return call.Response_, call.Err_ -} - -func (call *ResourceRecordSetsListCall) Pages(ctx context.Context, f func(interfaces.ResourceRecordSetsListResponse) error) error { - return f(call.Response_) -} - -func (call *ResourceRecordSetsListCall) Name(name string) interfaces.ResourceRecordSetsListCall { - call.Name_ = name - return call -} - -func (call *ResourceRecordSetsListCall) Type(type_ string) interfaces.ResourceRecordSetsListCall { - call.Type_ = type_ - return call -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_list_response.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_list_response.go deleted file mode 100644 index a60d8dcef..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_list_response.go +++ /dev/null @@ -1,30 +0,0 @@ -/* -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 stubs - -import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - -// Compile time check for interface adherence -var _ interfaces.ResourceRecordSetsListResponse = &ResourceRecordSetsListResponse{} - -type ResourceRecordSetsListResponse struct { - impl []interfaces.ResourceRecordSet -} - -func (response *ResourceRecordSetsListResponse) Rrsets() []interfaces.ResourceRecordSet { - return response.impl -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_service.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_service.go deleted file mode 100644 index 13e50d8b0..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/rrsets_service.go +++ /dev/null @@ -1,83 +0,0 @@ -/* -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 stubs - -import ( - "fmt" - - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -// Compile time check for interface adherence -var _ interfaces.ResourceRecordSetsService = &ResourceRecordSetsService{} - -type ResourceRecordSetsService struct { - Service *Service - ListCall interfaces.ResourceRecordSetsListCall // Use to override response if required for testing -} - -func (s ResourceRecordSetsService) managedZone(project, managedZone string) (*ManagedZone, error) { - p := s.Service.ManagedZones_.Impl[project] - if p == nil { - return nil, fmt.Errorf("Project not found: %s", project) - } - z := s.Service.ManagedZones_.Impl[project][managedZone] - if z == nil { - return nil, fmt.Errorf("Zone %s not found in project %s", managedZone, project) - } - return z.(*ManagedZone), nil -} - -func (s ResourceRecordSetsService) List(project string, managedZone string) interfaces.ResourceRecordSetsListCall { - if s.ListCall != nil { - return s.ListCall - } - zone, err := s.managedZone(project, managedZone) - if err != nil { - return &ResourceRecordSetsListCall{Err_: err} - } - - response := &ResourceRecordSetsListResponse{} - for _, set := range zone.Rrsets { - response.impl = append(response.impl, set) - } - return &ResourceRecordSetsListCall{Response_: response} -} - -func (s ResourceRecordSetsService) Get(project, managedZone, name string) interfaces.ResourceRecordSetsListCall { - if s.ListCall != nil { - return s.ListCall - } - zone, err := s.managedZone(project, managedZone) - if err != nil { - return &ResourceRecordSetsListCall{Err_: err} - } - - response := &ResourceRecordSetsListResponse{} - for _, set := range zone.Rrsets { - if set.Name_ == name { - response.impl = append(response.impl, set) - } - } - return &ResourceRecordSetsListCall{Response_: response} -} - -func (service ResourceRecordSetsService) NewResourceRecordSet(name string, rrdatas []string, ttl int64, type_ rrstype.RrsType) interfaces.ResourceRecordSet { - rrset := ResourceRecordSet{Name_: name, Rrdatas_: rrdatas, Ttl_: ttl, Type_: string(type_)} - return rrset -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/service.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/service.go deleted file mode 100644 index 561678cf9..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/service.go +++ /dev/null @@ -1,54 +0,0 @@ -/* -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 stubs - -import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - -// Compile time check for interface adherence -var _ interfaces.Service = &Service{} - -type Service struct { - Changes_ *ChangesService - ManagedZones_ *ManagedZonesService - Projects_ *ProjectsService - Rrsets_ *ResourceRecordSetsService -} - -func NewService() *Service { - s := &Service{} - s.Changes_ = &ChangesService{s} - s.ManagedZones_ = &ManagedZonesService{} - s.Projects_ = &ProjectsService{} - s.Rrsets_ = &ResourceRecordSetsService{s, nil} - return s -} - -func (s *Service) Changes() interfaces.ChangesService { - return s.Changes_ -} - -func (s *Service) ManagedZones() interfaces.ManagedZonesService { - return s.ManagedZones_ -} - -func (s *Service) Projects() interfaces.ProjectsService { - return s.Projects_ -} - -func (s *Service) ResourceRecordSets() interfaces.ResourceRecordSetsService { - return s.Rrsets_ -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrchangeset.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrchangeset.go deleted file mode 100644 index c81d03dd2..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrchangeset.go +++ /dev/null @@ -1,124 +0,0 @@ -/* -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 clouddns - -import ( - "fmt" - - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ dnsprovider.ResourceRecordChangeset = &ResourceRecordChangeset{} - -type ResourceRecordChangeset struct { - rrsets *ResourceRecordSets - - additions []dnsprovider.ResourceRecordSet - removals []dnsprovider.ResourceRecordSet - upserts []dnsprovider.ResourceRecordSet -} - -func (c *ResourceRecordChangeset) Add(rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordChangeset { - c.additions = append(c.additions, rrset) - return c -} - -func (c *ResourceRecordChangeset) Remove(rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordChangeset { - c.removals = append(c.removals, rrset) - return c -} - -func (c *ResourceRecordChangeset) Upsert(rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordChangeset { - c.upserts = append(c.upserts, rrset) - return c -} - -func (c *ResourceRecordChangeset) Apply() error { - rrsets := c.rrsets - - service := rrsets.zone.zones.interface_.service.Changes() - - var additions []interfaces.ResourceRecordSet - for _, r := range c.additions { - additions = append(additions, r.(ResourceRecordSet).impl) - } - var deletions []interfaces.ResourceRecordSet - for _, r := range c.removals { - deletions = append(deletions, r.(ResourceRecordSet).impl) - } - - if len(c.upserts) != 0 { - // TODO: We could maybe tweak this to fetch just the records we care about - // although not clear when this would be a win. N=1 obviously so though... - before, err := c.rrsets.List() - if err != nil { - return fmt.Errorf("error fetching recordset images for upsert operation: %v", err) - } - - upsertMap := make(map[string]dnsprovider.ResourceRecordSet) - for _, upsert := range c.upserts { - key := string(upsert.Type()) + "::" + upsert.Name() - upsertMap[key] = upsert - } - - for _, b := range before { - key := string(b.Type()) + "::" + b.Name() - upsert := upsertMap[key] - if upsert == nil { - continue - } - - deletions = append(deletions, b.(ResourceRecordSet).impl) - additions = append(additions, upsert.(ResourceRecordSet).impl) - - // Mark as seen - delete(upsertMap, key) - } - - // Anything left in the map must be an addition - for _, upsert := range upsertMap { - additions = append(additions, upsert.(ResourceRecordSet).impl) - } - } - - change := service.NewChange(additions, deletions) - newChange, err := service.Create(rrsets.project(), rrsets.zone.impl.Name(), change).Do() - if err != nil { - return err - } - newAdditions := newChange.Additions() - if len(newAdditions) != len(additions) { - return fmt.Errorf("Internal error when adding resource record set. Call succeeded but number of records returned is incorrect. Records sent=%d, records returned=%d, additions:%v", len(additions), len(newAdditions), c.additions) - } - newDeletions := newChange.Deletions() - if len(newDeletions) != len(deletions) { - return fmt.Errorf("Internal error when deleting resource record set. Call succeeded but number of records returned is incorrect. Records sent=%d, records returned=%d, deletions:%v", len(deletions), len(newDeletions), c.removals) - } - - return nil -} - -func (c *ResourceRecordChangeset) IsEmpty() bool { - return len(c.additions) == 0 && len(c.removals) == 0 -} - -// ResourceRecordSets returns the parent ResourceRecordSets -func (c *ResourceRecordChangeset) ResourceRecordSets() dnsprovider.ResourceRecordSets { - return c.rrsets -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrset.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrset.go deleted file mode 100644 index f357e1c9e..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrset.go +++ /dev/null @@ -1,53 +0,0 @@ -/* -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 clouddns - -import ( - "fmt" - - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -// Compile time check for interface adherence -var _ dnsprovider.ResourceRecordSet = ResourceRecordSet{} - -type ResourceRecordSet struct { - impl interfaces.ResourceRecordSet - rrsets *ResourceRecordSets -} - -func (rrset ResourceRecordSet) String() string { - return fmt.Sprintf("<(clouddns) %q type=%s rrdatas=%q ttl=%v>", rrset.Name(), rrset.Type(), rrset.Rrdatas(), rrset.Ttl()) -} - -func (rrset ResourceRecordSet) Name() string { - return rrset.impl.Name() -} - -func (rrset ResourceRecordSet) Rrdatas() []string { - return rrset.impl.Rrdatas() -} - -func (rrset ResourceRecordSet) Ttl() int64 { - return rrset.impl.Ttl() -} - -func (rrset ResourceRecordSet) Type() rrstype.RrsType { - return rrstype.RrsType(rrset.impl.Type()) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrsets.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrsets.go deleted file mode 100644 index db9411c76..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/rrsets.go +++ /dev/null @@ -1,94 +0,0 @@ -/* -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 clouddns - -import ( - "context" - - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -// Compile time check for interface adherence -var _ dnsprovider.ResourceRecordSets = ResourceRecordSets{} - -type ResourceRecordSets struct { - zone *Zone - impl interfaces.ResourceRecordSetsService -} - -// List returns a list of resource records in the given project and -// managed zone. -// !!CAUTION!! Your memory might explode if you have a huge number of -// records in your managed zone. -func (rrsets ResourceRecordSets) List() ([]dnsprovider.ResourceRecordSet, error) { - var list []dnsprovider.ResourceRecordSet - - ctx := context.Background() - - call := rrsets.impl.List(rrsets.project(), rrsets.zone.impl.Name()) - err := call.Pages(ctx, func(page interfaces.ResourceRecordSetsListResponse) error { - for _, rrset := range page.Rrsets() { - list = append(list, ResourceRecordSet{rrset, &rrsets}) - } - return nil - }) - if err != nil { - return nil, err - } - - return list, nil -} - -func (rrsets ResourceRecordSets) Get(name string) ([]dnsprovider.ResourceRecordSet, error) { - var list []dnsprovider.ResourceRecordSet - - ctx := context.Background() - - call := rrsets.impl.Get(rrsets.project(), rrsets.zone.impl.Name(), name) - err := call.Pages(ctx, func(page interfaces.ResourceRecordSetsListResponse) error { - for _, rrset := range page.Rrsets() { - list = append(list, ResourceRecordSet{rrset, &rrsets}) - } - return nil - }) - if err != nil { - return nil, err - } - - return list, nil -} - -func (r ResourceRecordSets) StartChangeset() dnsprovider.ResourceRecordChangeset { - return &ResourceRecordChangeset{ - rrsets: &r, - } -} - -func (r ResourceRecordSets) New(name string, rrdatas []string, ttl int64, rrstype rrstype.RrsType) dnsprovider.ResourceRecordSet { - return ResourceRecordSet{r.impl.NewResourceRecordSet(name, rrdatas, ttl, rrstype), &r} -} - -func (rrsets ResourceRecordSets) project() string { - return rrsets.zone.project() -} - -// Zone returns the parent zone -func (rrset ResourceRecordSets) Zone() dnsprovider.Zone { - return rrset.zone -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/zone.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/zone.go deleted file mode 100644 index 97e775f90..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/zone.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -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 clouddns - -import ( - "strconv" - - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ dnsprovider.Zone = &Zone{} - -type Zone struct { - impl interfaces.ManagedZone - zones *Zones -} - -func (zone *Zone) Name() string { - return zone.impl.DnsName() -} - -func (zone *Zone) ID() string { - return strconv.FormatUint(zone.impl.Id(), 10) -} - -func (zone *Zone) ResourceRecordSets() (dnsprovider.ResourceRecordSets, bool) { - return &ResourceRecordSets{zone, zone.zones.interface_.service.ResourceRecordSets()}, true -} - -func (zone Zone) project() string { - return zone.zones.project() -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/zones.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/zones.go deleted file mode 100644 index 62d56aef4..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/zones.go +++ /dev/null @@ -1,68 +0,0 @@ -/* -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 clouddns - -import ( - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces" -) - -// Compile time check for interface adherence -var _ dnsprovider.Zones = Zones{} - -type Zones struct { - impl interfaces.ManagedZonesService - interface_ *Interface -} - -func (zones Zones) List() ([]dnsprovider.Zone, error) { - response, err := zones.impl.List(zones.project()).Do() - if err != nil { - return nil, err - } - managedZones := response.ManagedZones() - zoneList := make([]dnsprovider.Zone, len(managedZones)) - for i, zone := range managedZones { - zoneList[i] = &Zone{zone, &zones} - } - return zoneList, nil -} - -func (zones Zones) Add(zone dnsprovider.Zone) (dnsprovider.Zone, error) { - managedZone := zones.impl.NewManagedZone(zone.Name()) - response, err := zones.impl.Create(zones.project(), managedZone).Do() - if err != nil { - return nil, err - } - return &Zone{response, &zones}, nil -} - -func (zones Zones) Remove(zone dnsprovider.Zone) error { - if err := zones.impl.Delete(zones.project(), zone.(*Zone).impl.Name()).Do(); err != nil { - return err - } - return nil -} - -func (zones Zones) New(name string) (dnsprovider.Zone, error) { - managedZone := zones.impl.NewManagedZone(name) - return &Zone{managedZone, &zones}, nil -} - -func (zones Zones) project() string { - return zones.interface_.project() -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype/BUILD deleted file mode 100644 index 1df8d0c2d..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["rrstype.go"], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype/rrstype.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype/rrstype.go deleted file mode 100644 index acf9e90b3..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype/rrstype.go +++ /dev/null @@ -1,28 +0,0 @@ -/* -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 rrstype - -type ( - RrsType string -) - -const ( - A = RrsType("A") - AAAA = RrsType("AAAA") - CNAME = RrsType("CNAME") - // TODO: Add other types as required -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/tests/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/tests/BUILD deleted file mode 100644 index 193e4e5a0..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/tests/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["commontests.go"], - importpath = "k8s.io/kubernetes/federation/pkg/dnsprovider/tests", - deps = [ - "//federation/pkg/dnsprovider:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/tests/commontests.go b/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/tests/commontests.go deleted file mode 100644 index 6e1584ad8..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/dnsprovider/tests/commontests.go +++ /dev/null @@ -1,194 +0,0 @@ -/* -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 tests - -import ( - "reflect" - "testing" - - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" -) - -/* CommonTestResourceRecordSetsReplace verifies that replacing an RRS works */ -func CommonTestResourceRecordSetsReplace(t *testing.T, zone dnsprovider.Zone) { - rrsets, _ := zone.ResourceRecordSets() - - sets := rrs(t, zone) - rrset := rrsets.New("alpha.test.com", []string{"8.8.4.4"}, 40, rrstype.A) - addRrsetOrFail(t, sets, rrset) - defer sets.StartChangeset().Remove(rrset).Apply() - - // Replace the record (change ttl and rrdatas) - newRrset := rrsets.New("alpha.test.com", []string{"8.8.8.8"}, 80, rrstype.A) - err := sets.StartChangeset().Add(newRrset).Remove(rrset).Apply() - if err != nil { - t.Errorf("Failed to replace resource record set %v -> %v: %v", rrset, newRrset, err) - } else { - defer sets.StartChangeset().Remove(newRrset).Apply() - t.Logf("Correctly replaced resource record %v -> %v", rrset, newRrset) - } - - // Check that the record was updated - assertHasRecord(t, sets, newRrset) -} - -/* CommonTestResourceRecordSetsReplaceAll verifies that we can remove an RRS and create one with a different name*/ -func CommonTestResourceRecordSetsReplaceAll(t *testing.T, zone dnsprovider.Zone) { - rrsets, _ := zone.ResourceRecordSets() - - sets := rrs(t, zone) - rrset := rrsets.New("alpha.test.com", []string{"8.8.4.4"}, 40, rrstype.A) - addRrsetOrFail(t, sets, rrset) - defer sets.StartChangeset().Remove(rrset).Apply() - - newRrset := rrsets.New("beta.test.com", []string{"8.8.8.8"}, 80, rrstype.A) - - // Try to add it again, and verify that the call fails. - err := sets.StartChangeset().Add(newRrset).Remove(rrset).Apply() - if err != nil { - t.Errorf("Failed to replace resource record set %v -> %v: %v", rrset, newRrset, err) - } else { - defer sets.StartChangeset().Remove(newRrset).Apply() - t.Logf("Correctly replaced resource record %v -> %v", rrset, newRrset) - } - - // Check that it was updated - assertHasRecord(t, sets, newRrset) - assertNotHasRecord(t, sets, rrset.Name(), rrset.Type()) -} - -/* CommonTestResourceRecordSetsDifferentType verifies that we can add records of the same name but different types */ -func CommonTestResourceRecordSetsDifferentTypes(t *testing.T, zone dnsprovider.Zone) { - rrsets, _ := zone.ResourceRecordSets() - - sets := rrs(t, zone) - rrset := rrsets.New("alpha.test.com", []string{"8.8.4.4"}, 40, rrstype.A) - addRrsetOrFail(t, sets, rrset) - defer sets.StartChangeset().Remove(rrset).Apply() - - aaaaRrset := rrsets.New("alpha.test.com", []string{"2001:4860:4860::8888"}, 80, rrstype.AAAA) - - // Add the resource with the same name but different type - err := sets.StartChangeset().Add(aaaaRrset).Apply() - if err != nil { - t.Errorf("Failed to add resource record set %v: %v", aaaaRrset, err) - } - defer sets.StartChangeset().Remove(aaaaRrset).Apply() - - // Check that both records exist - assertHasRecord(t, sets, aaaaRrset) - assertHasRecord(t, sets, rrset) -} - -/* rrs returns the ResourceRecordSets interface for a given zone */ -func rrs(t *testing.T, zone dnsprovider.Zone) (r dnsprovider.ResourceRecordSets) { - rrsets, supported := zone.ResourceRecordSets() - if !supported { - t.Fatalf("ResourceRecordSets interface not supported by zone %v", zone) - return r - } - return rrsets -} - -func getRrOrFail(t *testing.T, rrsets dnsprovider.ResourceRecordSets, name string) []dnsprovider.ResourceRecordSet { - rrsetList, err := rrsets.Get(name) - if err != nil { - t.Fatalf("Failed to get recordset: %v", err) - } else if len(rrsetList) == 0 { - t.Logf("Did not Get recordset: %v", name) - } else { - t.Logf("Got recordset: %v", rrsetList[0].Name()) - } - return rrsetList -} - -// assertHasRecord tests that rrsets has a record equivalent to rrset -func assertHasRecord(t *testing.T, rrsets dnsprovider.ResourceRecordSets, rrset dnsprovider.ResourceRecordSet) { - var found dnsprovider.ResourceRecordSet - - rrs, err := rrsets.List() - if err != nil { - if err.Error() == "OperationNotSupported" { - foundList := getRrOrFail(t, rrsets, rrset.Name()) - for i, elem := range foundList { - if elem.Name() == rrset.Name() && elem.Type() == rrset.Type() { - found = foundList[i] - break - } - } - } else { - t.Fatalf("Failed to list recordsets: %v", err) - } - } else { - if len(rrs) < 0 { - t.Fatalf("Record set length=%d, expected >=0", len(rrs)) - } else { - t.Logf("Got %d recordsets: %v", len(rrs), rrs) - } - - for _, r := range rrs { - if r.Name() != rrset.Name() || r.Type() != rrset.Type() { - continue - } - - if found != nil { - t.Errorf("found duplicate resource record set: %q and %q", r, found) - } - found = r - } - } - - if found == nil { - t.Errorf("resource record set %v not found", rrset) - } else { - assertEquivalent(t, found, rrset) - } -} - -// assertNotHasRecord tests that rrsets does not have a record matching name and type -func assertNotHasRecord(t *testing.T, rrsets dnsprovider.ResourceRecordSets, name string, rrstype rrstype.RrsType) { - found := getRrOrFail(t, rrsets, name) - if found != nil { - t.Errorf("resource record set found unexpectedly: %v", found) - } -} - -// assertEquivalent tests that l is equal to r, for the methods in ResourceRecordSet -func assertEquivalent(t *testing.T, l, r dnsprovider.ResourceRecordSet) { - if l.Name() != r.Name() { - t.Errorf("resource record sets not equal %v vs %v", l, r) - } - if l.Type() != r.Type() { - t.Errorf("resource record sets not equal %v vs %v", l, r) - } - if l.Ttl() != r.Ttl() { - t.Errorf("resource record sets not equal %v vs %v", l, r) - } - if !reflect.DeepEqual(l.Rrdatas(), r.Rrdatas()) { - t.Errorf("resource record sets not equal %v vs %v", l, r) - } -} - -func addRrsetOrFail(t *testing.T, rrsets dnsprovider.ResourceRecordSets, rrset dnsprovider.ResourceRecordSet) { - err := rrsets.StartChangeset().Add(rrset).Apply() - if err != nil { - t.Fatalf("Failed to add recordset %v: %v", rrset, err) - } else { - t.Logf("Successfully added resource record set: %v", rrset) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/BUILD deleted file mode 100644 index 3b2ce333a..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/BUILD +++ /dev/null @@ -1,88 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "hpa_test.go", - "scheduling_test.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/federatedtypes", - library = ":go_default_library", - deps = [ - "//federation/pkg/federation-controller/util/test:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "adapter.go", - "configmap.go", - "daemonset.go", - "deployment.go", - "hpa.go", - "namespace.go", - "qualifiedname.go", - "registry.go", - "replicaset.go", - "scheduling.go", - "secret.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/federatedtypes", - deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/hpa:go_default_library", - "//federation/pkg/federation-controller/util/planner:go_default_library", - "//federation/pkg/federation-controller/util/podanalyzer:go_default_library", - "//federation/pkg/federation-controller/util/replicapreferences:go_default_library", - "//pkg/api:go_default_library", - "//pkg/apis/extensions:go_default_library", - "//pkg/controller/namespace/deletion:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta: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", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/dynamic:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/pkg/federatedtypes/crudtester:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/adapter.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/adapter.go deleted file mode 100644 index 1dbda2a49..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/adapter.go +++ /dev/null @@ -1,79 +0,0 @@ -/* -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 federatedtypes - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" -) - -// FederatedTypeAdapter defines operations for interacting with a -// federated type. Code written to this interface can then target any -// type for which an implementation of this interface exists. -type FederatedTypeAdapter interface { - Kind() string - ObjectType() pkgruntime.Object - IsExpectedType(obj interface{}) bool - Copy(obj pkgruntime.Object) pkgruntime.Object - Equivalent(obj1, obj2 pkgruntime.Object) bool - QualifiedName(obj pkgruntime.Object) QualifiedName - ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta - - // Fed* operations target the federation control plane - FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error) - FedDelete(qualifiedName QualifiedName, options *metav1.DeleteOptions) error - FedGet(qualifiedName QualifiedName) (pkgruntime.Object, error) - FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error) - FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error) - FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error) - - // The following operations are intended to target a cluster that is a member of a federation - ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) - ClusterDelete(client kubeclientset.Interface, qualifiedName QualifiedName, options *metav1.DeleteOptions) error - ClusterGet(client kubeclientset.Interface, qualifiedName QualifiedName) (pkgruntime.Object, error) - ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error) - ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) - ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error) - - IsSchedulingAdapter() bool - - NewTestObject(namespace string) pkgruntime.Object -} - -// AdapterFactory defines the function signature for factory methods -// that create instances of FederatedTypeAdapter. Such methods should -// be registered with RegisterAdapterFactory to ensure the type -// adapter is discoverable. -type AdapterFactory func(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter - -// SetAnnotation sets the given key and value in the given object's ObjectMeta.Annotations map -func SetAnnotation(adapter FederatedTypeAdapter, obj pkgruntime.Object, key, value string) { - meta := adapter.ObjectMeta(obj) - if meta.Annotations == nil { - meta.Annotations = make(map[string]string) - } - meta.Annotations[key] = value -} - -// ObjectKey returns a cluster-unique key for the given object -func ObjectKey(adapter FederatedTypeAdapter, obj pkgruntime.Object) string { - return adapter.QualifiedName(obj).String() -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/configmap.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/configmap.go deleted file mode 100644 index 79fdea2ca..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/configmap.go +++ /dev/null @@ -1,150 +0,0 @@ -/* -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 federatedtypes - -import ( - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" -) - -const ( - ConfigMapKind = "configmap" - ConfigMapControllerName = "configmaps" -) - -func init() { - RegisterFederatedType(ConfigMapKind, ConfigMapControllerName, []schema.GroupVersionResource{apiv1.SchemeGroupVersion.WithResource(ConfigMapControllerName)}, NewConfigMapAdapter) -} - -type ConfigMapAdapter struct { - client federationclientset.Interface -} - -func NewConfigMapAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { - return &ConfigMapAdapter{client: client} -} - -func (a *ConfigMapAdapter) Kind() string { - return ConfigMapKind -} - -func (a *ConfigMapAdapter) ObjectType() pkgruntime.Object { - return &apiv1.ConfigMap{} -} - -func (a *ConfigMapAdapter) IsExpectedType(obj interface{}) bool { - _, ok := obj.(*apiv1.ConfigMap) - return ok -} - -func (a *ConfigMapAdapter) Copy(obj pkgruntime.Object) pkgruntime.Object { - configmap := obj.(*apiv1.ConfigMap) - return &apiv1.ConfigMap{ - ObjectMeta: util.DeepCopyRelevantObjectMeta(configmap.ObjectMeta), - Data: configmap.Data, - } -} - -func (a *ConfigMapAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool { - configmap1 := obj1.(*apiv1.ConfigMap) - configmap2 := obj2.(*apiv1.ConfigMap) - return util.ConfigMapEquivalent(configmap1, configmap2) -} - -func (a *ConfigMapAdapter) QualifiedName(obj pkgruntime.Object) QualifiedName { - configmap := obj.(*apiv1.ConfigMap) - return QualifiedName{Namespace: configmap.Namespace, Name: configmap.Name} -} - -func (a *ConfigMapAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta { - return &obj.(*apiv1.ConfigMap).ObjectMeta -} - -func (a *ConfigMapAdapter) FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error) { - configmap := obj.(*apiv1.ConfigMap) - return a.client.CoreV1().ConfigMaps(configmap.Namespace).Create(configmap) -} - -func (a *ConfigMapAdapter) FedDelete(qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return a.client.CoreV1().ConfigMaps(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *ConfigMapAdapter) FedGet(qualifiedName QualifiedName) (pkgruntime.Object, error) { - return a.client.CoreV1().ConfigMaps(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *ConfigMapAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return a.client.CoreV1().ConfigMaps(namespace).List(options) -} - -func (a *ConfigMapAdapter) FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error) { - configmap := obj.(*apiv1.ConfigMap) - return a.client.CoreV1().ConfigMaps(configmap.Namespace).Update(configmap) -} - -func (a *ConfigMapAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error) { - return a.client.CoreV1().ConfigMaps(namespace).Watch(options) -} - -func (a *ConfigMapAdapter) ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - configmap := obj.(*apiv1.ConfigMap) - return client.CoreV1().ConfigMaps(configmap.Namespace).Create(configmap) -} - -func (a *ConfigMapAdapter) ClusterDelete(client kubeclientset.Interface, qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return client.CoreV1().ConfigMaps(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *ConfigMapAdapter) ClusterGet(client kubeclientset.Interface, qualifiedName QualifiedName) (pkgruntime.Object, error) { - return client.CoreV1().ConfigMaps(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *ConfigMapAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return client.CoreV1().ConfigMaps(namespace).List(options) -} - -func (a *ConfigMapAdapter) ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - configmap := obj.(*apiv1.ConfigMap) - return client.CoreV1().ConfigMaps(configmap.Namespace).Update(configmap) -} - -func (a *ConfigMapAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error) { - return client.CoreV1().ConfigMaps(namespace).Watch(options) -} - -func (a *ConfigMapAdapter) IsSchedulingAdapter() bool { - return false -} - -func (a *ConfigMapAdapter) NewTestObject(namespace string) pkgruntime.Object { - return &apiv1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: "test-configmap-", - Namespace: namespace, - }, - Data: map[string]string{ - "A": "ala ma kota", - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester/BUILD deleted file mode 100644 index 508bd3bad..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["crudtester.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester", - deps = [ - "//federation/pkg/federatedtypes: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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester/crudtester.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester/crudtester.go deleted file mode 100644 index e0da833ce..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester/crudtester.go +++ /dev/null @@ -1,247 +0,0 @@ -/* -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 crudtester - -import ( - "fmt" - "time" - - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/wait" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/federation/pkg/federatedtypes" -) - -const ( - AnnotationTestFederationCRUDUpdate string = "federation.kubernetes.io/test-federation-crud-update" -) - -// TestLogger defines operations common across different types of testing -type TestLogger interface { - Fatalf(format string, args ...interface{}) - Fatal(msg string) - Logf(format string, args ...interface{}) -} - -// FederatedTypeCRUDTester exercises Create/Read/Update/Delete operations for -// federated types via the Federation API and validates that the -// results of those operations are propagated to clusters that are -// members of a federation. -type FederatedTypeCRUDTester struct { - tl TestLogger - adapter federatedtypes.FederatedTypeAdapter - kind string - clusterClients []clientset.Interface - waitInterval time.Duration - // Federation operations will use wait.ForeverTestTimeout. Any - // operation that involves member clusters may take longer due to - // propagation latency. - clusterWaitTimeout time.Duration -} - -func NewFederatedTypeCRUDTester(testLogger TestLogger, adapter federatedtypes.FederatedTypeAdapter, clusterClients []clientset.Interface, waitInterval, clusterWaitTimeout time.Duration) *FederatedTypeCRUDTester { - return &FederatedTypeCRUDTester{ - tl: testLogger, - adapter: adapter, - kind: adapter.Kind(), - clusterClients: clusterClients, - waitInterval: waitInterval, - clusterWaitTimeout: clusterWaitTimeout, - } -} - -func (c *FederatedTypeCRUDTester) CheckLifecycle(desiredObject pkgruntime.Object) { - obj := c.CheckCreate(desiredObject) - c.CheckUpdate(obj) - - // Validate the golden path - removal of dependents - orphanDependents := false - c.CheckDelete(obj, &orphanDependents) -} - -func (c *FederatedTypeCRUDTester) Create(desiredObject pkgruntime.Object) pkgruntime.Object { - namespace := c.adapter.ObjectMeta(desiredObject).Namespace - resourceMsg := fmt.Sprintf("federated %s", c.kind) - if len(namespace) > 0 { - resourceMsg = fmt.Sprintf("%s in namespace %q", resourceMsg, namespace) - } - - c.tl.Logf("Creating new %s", resourceMsg) - - obj, err := c.adapter.FedCreate(desiredObject) - if err != nil { - c.tl.Fatalf("Error creating %s: %v", resourceMsg, err) - } - - qualifiedName := c.adapter.QualifiedName(obj) - c.tl.Logf("Created new federated %s %q", c.kind, qualifiedName) - - return obj -} - -func (c *FederatedTypeCRUDTester) CheckCreate(desiredObject pkgruntime.Object) pkgruntime.Object { - obj := c.Create(desiredObject) - - c.CheckPropagation(obj) - - return obj -} - -func (c *FederatedTypeCRUDTester) CheckUpdate(obj pkgruntime.Object) { - qualifiedName := c.adapter.QualifiedName(obj) - - var initialAnnotation string - meta := c.adapter.ObjectMeta(obj) - if meta.Annotations != nil { - initialAnnotation = meta.Annotations[AnnotationTestFederationCRUDUpdate] - } - - c.tl.Logf("Updating federated %s %q", c.kind, qualifiedName) - updatedObj, err := c.updateFedObject(obj) - if err != nil { - c.tl.Fatalf("Error updating federated %s %q: %v", c.kind, qualifiedName, err) - } - - // updateFedObject is expected to have changed the value of the annotation - meta = c.adapter.ObjectMeta(updatedObj) - updatedAnnotation := meta.Annotations[AnnotationTestFederationCRUDUpdate] - if updatedAnnotation == initialAnnotation { - c.tl.Fatalf("Federated %s %q not mutated", c.kind, qualifiedName) - } - - c.CheckPropagation(updatedObj) -} - -func (c *FederatedTypeCRUDTester) CheckDelete(obj pkgruntime.Object, orphanDependents *bool) { - qualifiedName := c.adapter.QualifiedName(obj) - - c.tl.Logf("Deleting federated %s %q", c.kind, qualifiedName) - err := c.adapter.FedDelete(qualifiedName, &metav1.DeleteOptions{OrphanDependents: orphanDependents}) - if err != nil { - c.tl.Fatalf("Error deleting federated %s %q: %v", c.kind, qualifiedName, err) - } - - deletingInCluster := (orphanDependents != nil && *orphanDependents == false) - - waitTimeout := wait.ForeverTestTimeout - if deletingInCluster { - // May need extra time to delete both federation and cluster resources - waitTimeout = c.clusterWaitTimeout - } - - // Wait for deletion. The federation resource will only be removed once orphan deletion has been - // completed or deemed unnecessary. - err = wait.PollImmediate(c.waitInterval, waitTimeout, func() (bool, error) { - _, err := c.adapter.FedGet(qualifiedName) - if errors.IsNotFound(err) { - return true, nil - } - return false, err - }) - if err != nil { - c.tl.Fatalf("Error deleting federated %s %q: %v", c.kind, qualifiedName, err) - } - - var stateMsg string = "present" - if deletingInCluster { - stateMsg = "not present" - } - for _, client := range c.clusterClients { - _, err := c.adapter.ClusterGet(client, qualifiedName) - switch { - case !deletingInCluster && errors.IsNotFound(err): - c.tl.Fatalf("Federated %s %q was unexpectedly deleted from a member cluster", c.kind, qualifiedName) - case deletingInCluster && err == nil: - c.tl.Fatalf("Federated %s %q was unexpectedly orphaned in a member cluster", c.kind, qualifiedName) - case err != nil && !errors.IsNotFound(err): - c.tl.Fatalf("Error while checking whether %s %q is %s in member clusters: %v", c.kind, qualifiedName, stateMsg, err) - } - } -} - -// CheckPropagation checks propagation for the crud tester's clients -func (c *FederatedTypeCRUDTester) CheckPropagation(obj pkgruntime.Object) { - c.CheckPropagationForClients(obj, c.clusterClients, true) -} - -// CheckPropagationForClients checks propagation for the provided clients -func (c *FederatedTypeCRUDTester) CheckPropagationForClients(obj pkgruntime.Object, clusterClients []clientset.Interface, objExpected bool) { - qualifiedName := c.adapter.QualifiedName(obj) - - c.tl.Logf("Waiting for %s %q in %d clusters", c.kind, qualifiedName, len(clusterClients)) - for _, client := range clusterClients { - err := c.waitForResource(client, obj) - switch { - case err == wait.ErrWaitTimeout: - if objExpected { - c.tl.Fatalf("Timeout verifying %s %q in a member cluster: %v", c.kind, qualifiedName, err) - } - case err != nil: - c.tl.Fatalf("Failed to verify %s %q in a member cluster: %v", c.kind, qualifiedName, err) - case err == nil && !objExpected: - c.tl.Fatalf("Found unexpected object %s %q in a member cluster: %v", c.kind, qualifiedName, err) - } - } -} - -func (c *FederatedTypeCRUDTester) waitForResource(client clientset.Interface, obj pkgruntime.Object) error { - qualifiedName := c.adapter.QualifiedName(obj) - err := wait.PollImmediate(c.waitInterval, c.clusterWaitTimeout, func() (bool, error) { - equivalenceFunc := c.adapter.Equivalent - if c.adapter.IsSchedulingAdapter() { - schedulingAdapter, ok := c.adapter.(federatedtypes.SchedulingAdapter) - if !ok { - c.tl.Fatalf("Adapter for kind %q does not properly implement SchedulingAdapter.", c.adapter.Kind()) - } - equivalenceFunc = schedulingAdapter.EquivalentIgnoringSchedule - } - - clusterObj, err := c.adapter.ClusterGet(client, qualifiedName) - if err == nil && equivalenceFunc(clusterObj, obj) { - return true, nil - } - if errors.IsNotFound(err) { - return false, nil - } - return false, err - }) - return err -} - -func (c *FederatedTypeCRUDTester) updateFedObject(obj pkgruntime.Object) (pkgruntime.Object, error) { - err := wait.PollImmediate(c.waitInterval, wait.ForeverTestTimeout, func() (bool, error) { - // Target the metadata for simplicity (it's type-agnostic) - federatedtypes.SetAnnotation(c.adapter, obj, AnnotationTestFederationCRUDUpdate, "updated") - - _, err := c.adapter.FedUpdate(obj) - if errors.IsConflict(err) { - // The resource was updated by the federation controller. - // Get the latest version and retry. - qualifiedName := c.adapter.QualifiedName(obj) - obj, err = c.adapter.FedGet(qualifiedName) - return false, err - } - // Be tolerant of a slow server - if errors.IsServerTimeout(err) { - return false, nil - } - return (err == nil), err - }) - return obj, err -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/daemonset.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/daemonset.go deleted file mode 100644 index 156cdb420..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/daemonset.go +++ /dev/null @@ -1,167 +0,0 @@ -/* -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 federatedtypes - -import ( - "reflect" - - "k8s.io/api/core/v1" - extensionsv1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" -) - -const ( - DaemonSetKind = "daemonset" - DaemonSetControllerName = "daemonsets" -) - -func init() { - RegisterFederatedType(DaemonSetKind, DaemonSetControllerName, []schema.GroupVersionResource{extensionsv1.SchemeGroupVersion.WithResource(DaemonSetControllerName)}, NewDaemonSetAdapter) -} - -type DaemonSetAdapter struct { - client federationclientset.Interface -} - -func NewDaemonSetAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { - return &DaemonSetAdapter{client: client} -} - -func (a *DaemonSetAdapter) Kind() string { - return DaemonSetKind -} - -func (a *DaemonSetAdapter) ObjectType() pkgruntime.Object { - return &extensionsv1.DaemonSet{} -} - -func (a *DaemonSetAdapter) IsExpectedType(obj interface{}) bool { - _, ok := obj.(*extensionsv1.DaemonSet) - return ok -} - -func (a *DaemonSetAdapter) Copy(obj pkgruntime.Object) pkgruntime.Object { - daemonset := obj.(*extensionsv1.DaemonSet) - return &extensionsv1.DaemonSet{ - ObjectMeta: util.DeepCopyRelevantObjectMeta(daemonset.ObjectMeta), - Spec: *daemonset.Spec.DeepCopy(), - } -} - -func (a *DaemonSetAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool { - daemonset1 := obj1.(*extensionsv1.DaemonSet) - daemonset2 := obj2.(*extensionsv1.DaemonSet) - return util.ObjectMetaEquivalent(daemonset1.ObjectMeta, daemonset2.ObjectMeta) && reflect.DeepEqual(daemonset1.Spec, daemonset2.Spec) -} - -func (a *DaemonSetAdapter) QualifiedName(obj pkgruntime.Object) QualifiedName { - daemonset := obj.(*extensionsv1.DaemonSet) - return QualifiedName{Namespace: daemonset.Namespace, Name: daemonset.Name} -} - -func (a *DaemonSetAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta { - return &obj.(*extensionsv1.DaemonSet).ObjectMeta -} - -func (a *DaemonSetAdapter) FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error) { - daemonset := obj.(*extensionsv1.DaemonSet) - return a.client.Extensions().DaemonSets(daemonset.Namespace).Create(daemonset) -} - -func (a *DaemonSetAdapter) FedDelete(qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return a.client.Extensions().DaemonSets(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *DaemonSetAdapter) FedGet(qualifiedName QualifiedName) (pkgruntime.Object, error) { - return a.client.Extensions().DaemonSets(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *DaemonSetAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return a.client.Extensions().DaemonSets(namespace).List(options) -} - -func (a *DaemonSetAdapter) FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error) { - daemonset := obj.(*extensionsv1.DaemonSet) - return a.client.Extensions().DaemonSets(daemonset.Namespace).Update(daemonset) -} - -func (a *DaemonSetAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error) { - return a.client.Extensions().DaemonSets(namespace).Watch(options) -} - -func (a *DaemonSetAdapter) ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - daemonset := obj.(*extensionsv1.DaemonSet) - return client.Extensions().DaemonSets(daemonset.Namespace).Create(daemonset) -} - -func (a *DaemonSetAdapter) ClusterDelete(client kubeclientset.Interface, qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return client.Extensions().DaemonSets(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *DaemonSetAdapter) ClusterGet(client kubeclientset.Interface, qualifiedName QualifiedName) (pkgruntime.Object, error) { - return client.Extensions().DaemonSets(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *DaemonSetAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return client.Extensions().DaemonSets(namespace).List(options) -} - -func (a *DaemonSetAdapter) ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - daemonset := obj.(*extensionsv1.DaemonSet) - return client.Extensions().DaemonSets(daemonset.Namespace).Update(daemonset) -} - -func (a *DaemonSetAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error) { - return client.Extensions().DaemonSets(namespace).Watch(options) -} - -func (a *DaemonSetAdapter) IsSchedulingAdapter() bool { - return false -} - -func (a *DaemonSetAdapter) NewTestObject(namespace string) pkgruntime.Object { - return &extensionsv1.DaemonSet{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: "test-daemonset-", - Namespace: namespace, - Labels: map[string]string{"app": "test-daemonset"}, - }, - Spec: extensionsv1.DaemonSetSpec{ - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"name": "test-pod"}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "test-daemonset", - Image: "images/test-daemonset", - Ports: []v1.ContainerPort{{ContainerPort: 9376}}, - }, - }, - }, - }, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/deployment.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/deployment.go deleted file mode 100644 index cc6eccbd7..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/deployment.go +++ /dev/null @@ -1,189 +0,0 @@ -/* -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 federatedtypes - -import ( - apiv1 "k8s.io/api/core/v1" - extensionsv1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" -) - -const ( - DeploymentKind = "deployment" - DeploymentControllerName = "deployments" - FedDeploymentPreferencesAnnotation = "federation.kubernetes.io/deployment-preferences" -) - -func init() { - RegisterFederatedType(DeploymentKind, DeploymentControllerName, []schema.GroupVersionResource{extensionsv1.SchemeGroupVersion.WithResource(DeploymentControllerName)}, NewDeploymentAdapter) -} - -type DeploymentAdapter struct { - *replicaSchedulingAdapter - client federationclientset.Interface -} - -func NewDeploymentAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { - schedulingAdapter := replicaSchedulingAdapter{ - preferencesAnnotationName: FedDeploymentPreferencesAnnotation, - updateStatusFunc: func(obj pkgruntime.Object, schedulingInfo interface{}) error { - deployment := obj.(*extensionsv1.Deployment) - typedStatus := schedulingInfo.(*ReplicaSchedulingInfo).Status - if typedStatus.Replicas != deployment.Status.Replicas || typedStatus.UpdatedReplicas != deployment.Status.UpdatedReplicas || - typedStatus.ReadyReplicas != deployment.Status.ReadyReplicas || typedStatus.AvailableReplicas != deployment.Status.AvailableReplicas { - deployment.Status = extensionsv1.DeploymentStatus{ - Replicas: typedStatus.Replicas, - UpdatedReplicas: typedStatus.UpdatedReplicas, - ReadyReplicas: typedStatus.ReadyReplicas, - AvailableReplicas: typedStatus.AvailableReplicas, - } - _, err := client.Extensions().Deployments(deployment.Namespace).UpdateStatus(deployment) - return err - } - return nil - }, - } - - return &DeploymentAdapter{&schedulingAdapter, client} -} - -func (a *DeploymentAdapter) Kind() string { - return DeploymentKind -} - -func (a *DeploymentAdapter) ObjectType() pkgruntime.Object { - return &extensionsv1.Deployment{} -} - -func (a *DeploymentAdapter) IsExpectedType(obj interface{}) bool { - _, ok := obj.(*extensionsv1.Deployment) - return ok -} - -func (a *DeploymentAdapter) Copy(obj pkgruntime.Object) pkgruntime.Object { - deployment := obj.(*extensionsv1.Deployment) - return fedutil.DeepCopyDeployment(deployment) -} - -func (a *DeploymentAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool { - deployment1 := obj1.(*extensionsv1.Deployment) - deployment2 := obj2.(*extensionsv1.Deployment) - return fedutil.DeploymentEquivalent(deployment1, deployment2) -} - -func (a *DeploymentAdapter) QualifiedName(obj pkgruntime.Object) QualifiedName { - deployment := obj.(*extensionsv1.Deployment) - return QualifiedName{Namespace: deployment.Namespace, Name: deployment.Name} -} - -func (a *DeploymentAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta { - return &obj.(*extensionsv1.Deployment).ObjectMeta -} - -func (a *DeploymentAdapter) FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error) { - deployment := obj.(*extensionsv1.Deployment) - return a.client.Extensions().Deployments(deployment.Namespace).Create(deployment) -} - -func (a *DeploymentAdapter) FedDelete(qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return a.client.Extensions().Deployments(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *DeploymentAdapter) FedGet(qualifiedName QualifiedName) (pkgruntime.Object, error) { - return a.client.Extensions().Deployments(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *DeploymentAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return a.client.Extensions().Deployments(namespace).List(options) -} - -func (a *DeploymentAdapter) FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error) { - deployment := obj.(*extensionsv1.Deployment) - return a.client.Extensions().Deployments(deployment.Namespace).Update(deployment) -} - -func (a *DeploymentAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error) { - return a.client.Extensions().Deployments(namespace).Watch(options) -} - -func (a *DeploymentAdapter) ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - deployment := obj.(*extensionsv1.Deployment) - return client.Extensions().Deployments(deployment.Namespace).Create(deployment) -} - -func (a *DeploymentAdapter) ClusterDelete(client kubeclientset.Interface, qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return client.Extensions().Deployments(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *DeploymentAdapter) ClusterGet(client kubeclientset.Interface, qualifiedName QualifiedName) (pkgruntime.Object, error) { - return client.Extensions().Deployments(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *DeploymentAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return client.Extensions().Deployments(namespace).List(options) -} - -func (a *DeploymentAdapter) ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - deployment := obj.(*extensionsv1.Deployment) - return client.Extensions().Deployments(deployment.Namespace).Update(deployment) -} - -func (a *DeploymentAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error) { - return client.Extensions().Deployments(namespace).Watch(options) -} - -func (a *DeploymentAdapter) EquivalentIgnoringSchedule(obj1, obj2 pkgruntime.Object) bool { - deployment1 := obj1.(*extensionsv1.Deployment) - deployment2 := a.Copy(obj2).(*extensionsv1.Deployment) - deployment2.Spec.Replicas = deployment1.Spec.Replicas - return fedutil.DeploymentEquivalent(deployment1, deployment2) -} - -func (a *DeploymentAdapter) NewTestObject(namespace string) pkgruntime.Object { - replicas := int32(3) - zero := int64(0) - return &extensionsv1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: "test-deployment-", - Namespace: namespace, - }, - Spec: extensionsv1.DeploymentSpec{ - Replicas: &replicas, - Template: apiv1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"foo": "bar"}, - }, - Spec: apiv1.PodSpec{ - TerminationGracePeriodSeconds: &zero, - Containers: []apiv1.Container{ - { - Name: "nginx", - Image: "nginx", - }, - }, - }, - }, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/hpa.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/hpa.go deleted file mode 100644 index dbba7b5b0..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/hpa.go +++ /dev/null @@ -1,1015 +0,0 @@ -/* -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 federatedtypes - -import ( - "fmt" - "time" - - autoscalingv1 "k8s.io/api/autoscaling/v1" - "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" - hpautil "k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa" - extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" - - "github.com/golang/glog" -) - -const ( - HpaKind = "horizontalpodautoscaler" - HpaControllerName = "horizontalpodautoscalers" - // This is used as the default min for hpa object submitted - // to federation, in a situation where the default is for - // some reason not present (Spec.MinReplicas == nil) - hpaMinReplicaDefault = int32(1) - // This is a tunable which does not change replica nums - // on an existing local hpa, before this timeout, if it - // did scale already (avoids thrashing of replicas around). - ScaleForbiddenWindow = 2 * time.Minute -) - -func init() { - RegisterFederatedType(HpaKind, HpaControllerName, []schema.GroupVersionResource{autoscalingv1.SchemeGroupVersion.WithResource(HpaControllerName)}, NewHpaAdapter) -} - -type HpaAdapter struct { - client federationclientset.Interface - scaleForbiddenWindow time.Duration -} - -func NewHpaAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { - var scaleForbiddenWindow time.Duration - if adapterSpecificArgs != nil && adapterSpecificArgs[HpaKind] != nil { - scaleForbiddenWindow = adapterSpecificArgs[HpaKind].(*metav1.Duration).Duration - } else { - scaleForbiddenWindow = ScaleForbiddenWindow - } - - return &HpaAdapter{ - client: client, - scaleForbiddenWindow: scaleForbiddenWindow, - } -} - -func (a *HpaAdapter) Kind() string { - return HpaKind -} - -func (a *HpaAdapter) ObjectType() pkgruntime.Object { - return &autoscalingv1.HorizontalPodAutoscaler{} -} - -func (a *HpaAdapter) IsExpectedType(obj interface{}) bool { - _, ok := obj.(*autoscalingv1.HorizontalPodAutoscaler) - return ok -} - -func (a *HpaAdapter) Copy(obj pkgruntime.Object) pkgruntime.Object { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - return &autoscalingv1.HorizontalPodAutoscaler{ - ObjectMeta: fedutil.DeepCopyRelevantObjectMeta(hpa.ObjectMeta), - Spec: *hpa.Spec.DeepCopy(), - } -} - -func (a *HpaAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool { - return fedutil.ObjectMetaAndSpecEquivalent(obj1, obj2) -} - -func (a *HpaAdapter) QualifiedName(obj pkgruntime.Object) QualifiedName { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - return QualifiedName{Namespace: hpa.Namespace, Name: hpa.Name} -} - -func (a *HpaAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta { - return &obj.(*autoscalingv1.HorizontalPodAutoscaler).ObjectMeta -} - -func (a *HpaAdapter) FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error) { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - return a.client.AutoscalingV1().HorizontalPodAutoscalers(hpa.Namespace).Create(hpa) -} - -func (a *HpaAdapter) FedDelete(qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return a.client.AutoscalingV1().HorizontalPodAutoscalers(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *HpaAdapter) FedGet(qualifiedName QualifiedName) (pkgruntime.Object, error) { - return a.client.AutoscalingV1().HorizontalPodAutoscalers(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *HpaAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return a.client.AutoscalingV1().HorizontalPodAutoscalers(namespace).List(options) -} - -func (a *HpaAdapter) FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error) { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - return a.client.AutoscalingV1().HorizontalPodAutoscalers(hpa.Namespace).Update(hpa) -} - -func (a *HpaAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error) { - return a.client.AutoscalingV1().HorizontalPodAutoscalers(namespace).Watch(options) -} - -func (a *HpaAdapter) ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - return client.AutoscalingV1().HorizontalPodAutoscalers(hpa.Namespace).Create(hpa) -} - -func (a *HpaAdapter) ClusterDelete(client kubeclientset.Interface, qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return client.AutoscalingV1().HorizontalPodAutoscalers(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *HpaAdapter) ClusterGet(client kubeclientset.Interface, qualifiedName QualifiedName) (pkgruntime.Object, error) { - return client.AutoscalingV1().HorizontalPodAutoscalers(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *HpaAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return client.AutoscalingV1().HorizontalPodAutoscalers(namespace).List(options) -} - -func (a *HpaAdapter) ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - return client.AutoscalingV1().HorizontalPodAutoscalers(hpa.Namespace).Update(hpa) -} - -func (a *HpaAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error) { - return client.AutoscalingV1().HorizontalPodAutoscalers(namespace).Watch(options) -} - -func (a *HpaAdapter) NewTestObject(namespace string) pkgruntime.Object { - var min int32 = 4 - var targetCPU int32 = 70 - return &autoscalingv1.HorizontalPodAutoscaler{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: "test-hpa-", - Namespace: namespace, - }, - Spec: autoscalingv1.HorizontalPodAutoscalerSpec{ - ScaleTargetRef: autoscalingv1.CrossVersionObjectReference{ - Kind: "ReplicaSet", - Name: "myrs", - }, - MinReplicas: &min, - MaxReplicas: int32(10), - TargetCPUUtilizationPercentage: &targetCPU, - }, - } -} - -func (a *HpaAdapter) IsSchedulingAdapter() bool { - return true -} - -func (a *HpaAdapter) EquivalentIgnoringSchedule(obj1, obj2 pkgruntime.Object) bool { - hpa1 := obj1.(*autoscalingv1.HorizontalPodAutoscaler) - hpa2 := a.Copy(obj2).(*autoscalingv1.HorizontalPodAutoscaler) - if hpa1.Spec.MinReplicas == nil { - hpa2.Spec.MinReplicas = nil - } else if hpa2.Spec.MinReplicas == nil { - var r int32 = *hpa1.Spec.MinReplicas - hpa2.Spec.MinReplicas = &r - } else { - *hpa2.Spec.MinReplicas = *hpa1.Spec.MinReplicas - } - hpa2.Spec.MaxReplicas = hpa1.Spec.MaxReplicas - return fedutil.ObjectMetaAndSpecEquivalent(hpa1, hpa2) -} - -type replicaNums struct { - min int32 - max int32 -} - -type hpaFederatedStatus struct { - lastScaleTime *metav1.Time - // Indicates how many clusters have hpa/replicas. - // Used to average the cpu utilization which is - // reflected to the federation user. - count int32 - aggregateCPUUtilizationPercentage *int32 - currentReplicas int32 - desiredReplicas int32 -} - -type hpaSchedulingInfo struct { - scheduleState map[string]*replicaNums - fedStatus hpaFederatedStatus -} - -// List of cluster names. -type hpaLists struct { - // Stores names of those clusters which can offer min. - availableMin sets.String - // Stores names of those clusters which can offer max. - availableMax sets.String - // Stores names of those clusters which do not have hpa yet. - noHpa sets.String -} - -func (a *HpaAdapter) GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (interface{}, error) { - currentClusterObjs, err := getCurrentClusterObjs(informer, key, clusters) - if err != nil { - return nil, err - } - - // Initialise averaged cpu utilisation for this reconcile. - var ccup int32 = 0 - fedStatus := hpaFederatedStatus{ - aggregateCPUUtilizationPercentage: &ccup, - count: int32(0), - desiredReplicas: int32(0), - currentReplicas: int32(0), - } - fedHpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - // We assign the last known scale time here, which we update with - // the latest time from among all clusters in ScheduleObject() - if fedHpa.Status.LastScaleTime != nil { - t := metav1.NewTime(fedHpa.Status.LastScaleTime.Time) - fedStatus.lastScaleTime = &t - } - - return &hpaSchedulingInfo{ - scheduleState: a.getHpaScheduleState(obj, currentClusterObjs), - fedStatus: fedStatus, - }, nil -} - -func getCurrentClusterObjs(informer fedutil.FederatedInformer, key string, clusters []*federationapi.Cluster) (map[string]pkgruntime.Object, error) { - currentClusterObjs := make(map[string]pkgruntime.Object) - for _, cluster := range clusters { - clusterName := cluster.Name - clusterObj, found, err := informer.GetTargetStore().GetByKey(clusterName, key) - if err != nil { - return nil, err - } - currentClusterObjs[clusterName] = nil - if found { - currentClusterObjs[clusterName] = clusterObj.(pkgruntime.Object) - } - } - return currentClusterObjs, nil -} - -// The algorithm used for scheduling is briefed as below: -// -// 1. Find clusters which can offer max and min, if any (lists.availableMax and -// lists.availableMin) in one pass on all clusters. -// -// 2. Reduce the replicas (both min and max) if needed (situation when fedHpa -// has lesser replicas then all cluster local hpa replicas totalled together). -// In this step reduce first from those hpas which already have max (and min) -// reducible. Once such clusters are over and reduction still needed, reduce -// one at a time from all clusters, randomly. This step will ensure that the -// exceeding replicas in local hpas are reduced to match the fedHpa. -// This step would ideally be a noop in most cases because its rare that fedHpa -// would have lesser replicas then the cluster local total (probably when user -// forces update if fedHpa). -// -// 3. Distribute the replicas. In this step we have replicas to distribute (which -// are fed replicas exceeding the sum total of local cluster replicas). If clusters -// already have replicas, one replica from each cluster which can offer replicas -// (both for max and min) are also added to this replicas to distribute numbers (min -// and max). -// 3a. We first do a sub-pass to distribute to clusters which need replicas, considering -// those as clusters in crucial need of replicas. -// 3b. After previous sub-pass, if we still have replicas remaining, in the sub-pass -// we distribute to those clusters which do not yet have any hpa. -// 3c. After previous if we still have more to distribute, then we distribute to all -// clusters randomly, giving replica distribution count (rdc=total-fed-replicas/no-of-clusters) -// to each at a time. -// -// The above algorithm is run to first distribute max and then distribute min to those clusters -// which get max. -func (a *HpaAdapter) getHpaScheduleState(fedObj pkgruntime.Object, currentObjs map[string]pkgruntime.Object) map[string]*replicaNums { - fedHpa := fedObj.(*autoscalingv1.HorizontalPodAutoscaler) - requestedMin := hpaMinReplicaDefault - if fedHpa.Spec.MinReplicas != nil { - requestedMin = *fedHpa.Spec.MinReplicas - } - requestedReplicas := replicaNums{ - min: requestedMin, - max: fedHpa.Spec.MaxReplicas, - } - // replica distribution count, per cluster - rdc := replicaNums{ - min: requestedReplicas.min / int32(len(currentObjs)), - max: requestedReplicas.max / int32(len(currentObjs)), - } - if rdc.min < 1 { - rdc.min = 1 - } - // TODO: Is there a better way? - // We need to cap the lowest limit of Max to 2, because in a - // situation like both min and max become 1 (same) for all clusters, - // no rebalancing would happen. - if rdc.max < 2 { - rdc.max = 2 - } - - // Pass 1: Analyse existing local hpa's if any. - // clusterLists holds the list of those clusters which can offer - // min and max replicas, to those which want them. - // For example new clusters joining the federation and/or - // those clusters which need to increase or reduce replicas - // beyond min/max limits. - // schedStatus currently have status of existing hpas. - // It will eventually have desired status for this reconcile. - clusterLists, currentReplicas, scheduleState := a.prepareForScheduling(currentObjs) - - remainingReplicas := replicaNums{ - min: requestedReplicas.min - currentReplicas.min, - max: requestedReplicas.max - currentReplicas.max, - } - - // Pass 2: reduction of replicas if needed ( situation that fedHpa updated replicas - // to lesser then existing). - // In this pass, we remain pessimistic and reduce one replica per cluster at a time. - if remainingReplicas.min < 0 { - excessMin := (remainingReplicas.min * int32(-1)) - remainingReplicas.min = reduceMinReplicas(excessMin, clusterLists.availableMin, scheduleState) - } - if remainingReplicas.max < 0 { - excessMax := (remainingReplicas.max * int32(-1)) - remainingReplicas.max = reduceMaxReplicas(excessMax, clusterLists.availableMax, scheduleState) - } - - toDistribute := replicaNums{ - min: remainingReplicas.min + int32(clusterLists.availableMin.Len()), - max: remainingReplicas.max + int32(clusterLists.availableMax.Len()), - } - - // Pass 3: Distribute Max and then Min. - // Here we first distribute max and then (in the next loop) - // distribute min into those clusters which already get the - // max fixed. - // In this process we might not meet the min limit and total of - // min limits might remain more then the requested federated min. - // This is partially because a min per cluster cannot be lesser - // then 1, but min could be requested as 1 at federation. - // Additionally we first increase replicas into those clusters - // which already have hpa's and are in a condition to increase. - // This will save cluster related resources for the user, such that - // if an already existing cluster can satisfy users request why send - // the workload to another. - // We then go ahead to give the replicas to those which do not - // have any hpa. In this pass however we try to ensure that all - // our Max are consumed in this reconcile. - a.distributeMaxReplicas(toDistribute.max, clusterLists, rdc, currentObjs, scheduleState) - - // We distribute min to those clusters which: - // 1 - can adjust min (our increase step would be only 1) - // 2 - which do not have this hpa and got max(increase step rdcMin) - // We might exhaust all min replicas here, with - // some clusters still needing them. We adjust this in finalise by - // assigning min replicas to 1 into those clusters which got max - // but min remains 0. - a.distributeMinReplicas(toDistribute.min, clusterLists, rdc, currentObjs, scheduleState) - - return finaliseScheduleState(scheduleState) -} - -func (a *HpaAdapter) ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo interface{}) (pkgruntime.Object, ScheduleAction, error) { - // Update federated status info - typedInfo := schedulingInfo.(*hpaSchedulingInfo) - if clusterObj != nil { - clusterHpa := clusterObj.(*autoscalingv1.HorizontalPodAutoscaler) - if clusterHpa.Status.CurrentCPUUtilizationPercentage != nil { - *typedInfo.fedStatus.aggregateCPUUtilizationPercentage += - (*clusterHpa.Status.CurrentCPUUtilizationPercentage * clusterHpa.Status.CurrentReplicas) - typedInfo.fedStatus.count += clusterHpa.Status.CurrentReplicas - } - if clusterHpa.Status.LastScaleTime != nil { - t := metav1.NewTime(clusterHpa.Status.LastScaleTime.Time) - if typedInfo.fedStatus.lastScaleTime != nil && - t.After(typedInfo.fedStatus.lastScaleTime.Time) { - typedInfo.fedStatus.lastScaleTime = &t - } - } - - typedInfo.fedStatus.currentReplicas += clusterHpa.Status.CurrentReplicas - typedInfo.fedStatus.desiredReplicas += clusterHpa.Status.DesiredReplicas - } - - // Update the cluster obj and the needed action on the cluster - clusterHpaState := typedInfo.scheduleState[cluster.Name] - desiredHpa := federationObjCopy.(*autoscalingv1.HorizontalPodAutoscaler) - if clusterHpaState != nil { - desiredHpa.Spec.MaxReplicas = clusterHpaState.max - if desiredHpa.Spec.MinReplicas == nil { - min := int32(0) - desiredHpa.Spec.MinReplicas = &min - } - *desiredHpa.Spec.MinReplicas = clusterHpaState.min - } - - var defaultAction ScheduleAction = "" - switch { - case clusterHpaState != nil && clusterObj != nil: - return desiredHpa, defaultAction, nil - case clusterHpaState != nil && clusterObj == nil: - return desiredHpa, ActionAdd, nil - case clusterHpaState == nil && clusterObj != nil: - return nil, ActionDelete, nil - } - return nil, defaultAction, nil -} - -func (a *HpaAdapter) UpdateFederatedStatus(obj pkgruntime.Object, schedulingInfo interface{}) error { - fedHpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - needUpdate, newFedHpaStatus := updateStatus(fedHpa, schedulingInfo.(*hpaSchedulingInfo).fedStatus) - if needUpdate { - fedHpa.Status = newFedHpaStatus - _, err := a.client.AutoscalingV1().HorizontalPodAutoscalers(fedHpa.Namespace).UpdateStatus(fedHpa) - if err != nil { - return fmt.Errorf("Error updating hpa: %s status in federation: %v", fedHpa.Name, err) - } - } - - if err := a.updateClusterListOnTargetObject(fedHpa, schedulingInfo.(*hpaSchedulingInfo).scheduleState); err != nil { - return fmt.Errorf("Error updating cluster list on object targetted by hpa: %s: %v", fedHpa.Name, err) - } - return nil -} - -func updateStatus(fedHpa *autoscalingv1.HorizontalPodAutoscaler, newStatus hpaFederatedStatus) (bool, autoscalingv1.HorizontalPodAutoscalerStatus) { - averageCPUUtilizationPercentage := int32(0) - // Average out the available current utilisation - if *newStatus.aggregateCPUUtilizationPercentage != 0 && newStatus.count != 0 { - averageCPUUtilizationPercentage = *newStatus.aggregateCPUUtilizationPercentage / newStatus.count - } - gen := fedHpa.Generation - newFedHpaStatus := autoscalingv1.HorizontalPodAutoscalerStatus{ObservedGeneration: &gen} - needUpdate := false - if (fedHpa.Status.CurrentCPUUtilizationPercentage == nil && - averageCPUUtilizationPercentage != 0) || - (fedHpa.Status.CurrentCPUUtilizationPercentage != nil && - averageCPUUtilizationPercentage != - *fedHpa.Status.CurrentCPUUtilizationPercentage) { - needUpdate = true - newFedHpaStatus.CurrentCPUUtilizationPercentage = &averageCPUUtilizationPercentage - } - if (fedHpa.Status.LastScaleTime == nil && newStatus.lastScaleTime != nil) || - (fedHpa.Status.LastScaleTime != nil && newStatus.lastScaleTime == nil) || - ((fedHpa.Status.LastScaleTime != nil && newStatus.lastScaleTime != nil) && - newStatus.lastScaleTime.After(fedHpa.Status.LastScaleTime.Time)) { - needUpdate = true - newFedHpaStatus.LastScaleTime = newStatus.lastScaleTime - } - if fedHpa.Status.DesiredReplicas != newStatus.desiredReplicas { - needUpdate = true - newFedHpaStatus.CurrentReplicas = newStatus.currentReplicas - } - if fedHpa.Status.CurrentReplicas != newStatus.currentReplicas { - needUpdate = true - newFedHpaStatus.DesiredReplicas = newStatus.desiredReplicas - } - return needUpdate, newFedHpaStatus -} - -// prepareForScheduling prepares the lists and totals from the -// existing objs. -// currentObjs has the list of all clusters, with obj as nil -// for those clusters which do not have hpa yet. -func (a *HpaAdapter) prepareForScheduling(currentObjs map[string]pkgruntime.Object) (hpaLists, replicaNums, map[string]*replicaNums) { - lists := hpaLists{ - availableMax: sets.NewString(), - availableMin: sets.NewString(), - noHpa: sets.NewString(), - } - existingTotal := replicaNums{ - min: int32(0), - max: int32(0), - } - - scheduleState := make(map[string]*replicaNums) - for cluster, obj := range currentObjs { - if obj == nil { - lists.noHpa.Insert(cluster) - scheduleState[cluster] = nil - continue - } - - if a.maxReplicasReducible(obj) { - lists.availableMax.Insert(cluster) - } - if a.minReplicasReducible(obj) { - lists.availableMin.Insert(cluster) - } - - replicas := replicaNums{min: 0, max: 0} - scheduleState[cluster] = &replicas - if obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MinReplicas != nil { - existingTotal.min += *obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MinReplicas - replicas.min = *obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MinReplicas - } - existingTotal.max += obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MaxReplicas - replicas.max = obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MaxReplicas - } - - return lists, existingTotal, scheduleState -} - -// Note: reduceMinReplicas and reduceMaxReplicas, look quite similar in flow -// and code, however there are subtle differences. They together can be made -// into 1 function with an arg governing the functionality difference and -// additional args (superset of args in both) as needed. Doing so however -// makes the logical flow quite less readable. They are thus left as 2 for -// readability. - -// reduceMinReplicas reduces the min replicas from existing clusters. -// At the end of the function excessMin should be 0 and the MinList -// and the scheduledReplicas properly updated in place. -func reduceMinReplicas(excessMin int32, availableMinList sets.String, scheduled map[string]*replicaNums) int32 { - if excessMin > 0 { - // first we try reducing from those clusters which already offer min - if availableMinList.Len() > 0 { - for _, cluster := range availableMinList.List() { - replicas := scheduled[cluster] - if replicas.min > 1 { - replicas.min-- - availableMinList.Delete(cluster) - excessMin-- - if excessMin <= 0 { - break - } - } - } - } - } - - // If we could not get needed replicas from already offered min above - // we abruptly start removing replicas from some/all clusters. - // Here we might make some min to 0 signalling that this hpa might be a - // candidate to be removed from this cluster altogether. - for excessMin > 0 { - for _, replicas := range scheduled { - if replicas != nil && - replicas.min > 0 { - replicas.min-- - excessMin-- - if excessMin <= 0 { - break - } - } - } - } - - return excessMin -} - -// reduceMaxReplicas reduces the max replicas from existing clusters. -// At the end of the function excessMax should be 0 and the MaxList -// and the scheduledReplicas properly updated in place. -func reduceMaxReplicas(excessMax int32, availableMaxList sets.String, scheduled map[string]*replicaNums) int32 { - if excessMax > 0 { - // first we try reducing from those clusters which already offer max - if availableMaxList.Len() > 0 { - for _, cluster := range availableMaxList.List() { - replicas := scheduled[cluster] - if replicas != nil && !((replicas.max - replicas.min) < 0) { - replicas.max-- - availableMaxList.Delete(cluster) - excessMax-- - if excessMax <= 0 { - break - } - } - } - } - } - // If we could not get needed replicas to reduce from already offered - // max above we abruptly start removing replicas from some/all clusters. - // Here we might make some max and min to 0, signalling that this hpa be - // removed from this cluster altogether - for excessMax > 0 { - for _, replicas := range scheduled { - if replicas != nil && - !((replicas.max - replicas.min) < 0) { - replicas.max-- - excessMax-- - if excessMax <= 0 { - break - } - } - } - } - - return excessMax -} - -// distributeMaxReplicas -// Takes input: -// toDistributeMax: number of replicas to distribute. -// lists: cluster name lists, which have clusters with available max, -// available min and those with no hpas yet. -// rdc: replicadistributioncount for max and min. -// currentObjs: list of current cluster hpas. -// scheduled: schedule state which will be updated in place. -func (a *HpaAdapter) distributeMaxReplicas(toDistributeMax int32, lists hpaLists, rdc replicaNums, - currentObjs map[string]pkgruntime.Object, scheduled map[string]*replicaNums) int32 { - for cluster, replicas := range scheduled { - if toDistributeMax == 0 { - break - } - if replicas == nil { - continue - } - if a.maxReplicasNeeded(currentObjs[cluster]) { - replicas.max++ - if lists.availableMax.Len() > 0 { - popped, notEmpty := lists.availableMax.PopAny() - if notEmpty { - // Boundary checks have happened earlier in - // minReplicasReducible(). - scheduled[popped].max-- - } - } - // Any which ways utilise available map replicas - toDistributeMax-- - } - } - - // If we have new clusters where we can give our replicas, - // then give away all our replicas to the new clusters first. - if lists.noHpa.Len() > 0 { - for toDistributeMax > 0 { - for _, cluster := range lists.noHpa.UnsortedList() { - if scheduled[cluster] == nil { - scheduled[cluster] = &replicaNums{min: 0, max: 0} - } - replicas := scheduled[cluster] - // first give away max from clusters offering them - // this case especially helps getting hpa into newly joining - // clusters. - if lists.availableMax.Len() > 0 { - popped, notEmpty := lists.availableMax.PopAny() - if notEmpty { - // Boundary checks to reduce max have happened earlier in - // minReplicasReducible(). - replicas.max++ - scheduled[popped].max-- - toDistributeMax-- - continue - } - } - if toDistributeMax < rdc.max { - replicas.max += toDistributeMax - toDistributeMax = 0 - break - } - replicas.max += rdc.max - toDistributeMax -= rdc.max - } - } - } else { // we have no new clusters but if still have max replicas to distribute; - // just distribute all in current clusters. - for toDistributeMax > 0 { - for cluster, replicas := range scheduled { - if replicas == nil { - replicas = &replicaNums{min: 0, max: 0} - scheduled[cluster] = replicas - } - // First give away max from clusters offering them. - // This case especially helps getting hpa into newly joining - // clusters. - if lists.availableMax.Len() > 0 { - popped, notEmpty := lists.availableMax.PopAny() - if notEmpty { - // Boundary checks have happened earlier in - // minReplicasReducible(). - replicas.max++ - scheduled[popped].max-- - toDistributeMax-- - continue - } - } - if toDistributeMax < rdc.max { - replicas.max += toDistributeMax - toDistributeMax = 0 - break - } - replicas.max += rdc.max - toDistributeMax -= rdc.max - } - } - } - return toDistributeMax -} - -// distributeMinReplicas -// Takes input: -// toDistributeMin: number of replicas to distribute. -// lists: cluster name lists, which have clusters with available max, -// available min and those with no hpas yet. -// rdc: replicadistributioncount for max and min. -// currentObjs: list of current cluster hpas. -// scheduled: schedule state which will be updated in place. -func (a *HpaAdapter) distributeMinReplicas(toDistributeMin int32, lists hpaLists, rdc replicaNums, - currentObjs map[string]pkgruntime.Object, scheduled map[string]*replicaNums) int32 { - for cluster, replicas := range scheduled { - if toDistributeMin == 0 { - break - } - // We have distriubted Max and thus scheduled might not be nil - // but probably current (what we got originally) is nil(no hpa) - if replicas == nil || currentObjs[cluster] == nil { - continue - } - if a.minReplicasIncreasable(currentObjs[cluster]) { - if lists.availableMin.Len() > 0 { - popped, notEmpty := lists.availableMin.PopAny() - if notEmpty { - // Boundary checks have happened earlier. - scheduled[popped].min-- - replicas.min++ - toDistributeMin-- - } - } - } - } - - if lists.noHpa.Len() > 0 { - // TODO: can this become an infinite loop? - for toDistributeMin > 0 { - for _, cluster := range lists.noHpa.UnsortedList() { - replicas := scheduled[cluster] - if replicas == nil { - // We did not get max here so this cluster - // remains without hpa - continue - } - var replicaNum int32 = 0 - if toDistributeMin < rdc.min { - replicaNum = toDistributeMin - } else { - replicaNum = rdc.min - } - if (replicas.max - replicaNum) < replicas.min { - // Cannot increase the min in this cluster - // as it will go beyond max - continue - } - if lists.availableMin.Len() > 0 { - popped, notEmpty := lists.availableMin.PopAny() - if notEmpty { - // Boundary checks have happened earlier. - scheduled[popped].min-- - replicas.min++ - toDistributeMin-- - continue - } - } - replicas.min += replicaNum - toDistributeMin -= replicaNum - } - } - } else { // we have no new clusters but if still have min replicas to distribute; - // just distribute all in current clusters. - for toDistributeMin > 0 { - for _, replicas := range scheduled { - if replicas == nil { - // We did not get max here so this cluster - // remains without hpa - continue - } - var replicaNum int32 = 0 - if toDistributeMin < rdc.min { - replicaNum = toDistributeMin - } else { - replicaNum = rdc.min - } - if (replicas.max - replicaNum) < replicas.min { - // Cannot increase the min in this cluster - // as it will go beyond max - continue - } - if lists.availableMin.Len() > 0 { - popped, notEmpty := lists.availableMin.PopAny() - if notEmpty { - // Boundary checks have happened earlier. - scheduled[popped].min-- - replicas.min++ - toDistributeMin-- - continue - } - } - replicas.min += replicaNum - toDistributeMin -= replicaNum - } - } - } - return toDistributeMin -} - -// finaliseScheduleState ensures that the minReplica count is made to 1 -// for those clusters which got max, but did not get min. This is because -// k8s hpa does not accept hpas with 0 min replicas. -// The replica num distribution can thus have more mins then fedHpa requested -// but its better then having all replicas go into one cluster (if fedHpa -// requested min=1 (which is the most usual case). -func finaliseScheduleState(scheduled map[string]*replicaNums) map[string]*replicaNums { - for _, replicas := range scheduled { - if (replicas != nil) && (replicas.min <= 0) && (replicas.max > 0) { - // Min total does not necessarily meet the federated min limit. - replicas.min = 1 - } - } - return scheduled -} - -// isPristine is used to determine if so far local controller has been -// able to really determine, what should be the desired replica number for -// this cluster. -// This is used to get hpas into those clusters which might join fresh, -// and so far other cluster hpas haven't really reached anywhere. -// TODO: There is a flaw here, that a just born object would also offer its -// replicas which can also lead to fast thrashing. -// The only better way is to either ensure that object creation time stamp is set -// and can be used authoritatively; or have another field on the local object -// which is mandatorily set on creation and can be used authoritatively. -// Should we abuse annotations again for this, or this can be a proper requirement? -func isPristine(hpa *autoscalingv1.HorizontalPodAutoscaler) bool { - if hpa.Status.LastScaleTime == nil && - hpa.Status.DesiredReplicas == 0 { - return true - } - return false -} - -// isScaleable tells if it already has been a reasonable amount of -// time since this hpa scaled. Its used to avoid fast thrashing. -func (a *HpaAdapter) isScaleable(hpa *autoscalingv1.HorizontalPodAutoscaler) bool { - if hpa.Status.LastScaleTime == nil { - return false - } - t := hpa.Status.LastScaleTime.Add(a.scaleForbiddenWindow) - if t.After(time.Now()) { - return false - } - return true -} - -func (a *HpaAdapter) maxReplicasReducible(obj pkgruntime.Object) bool { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - if (hpa.Spec.MinReplicas != nil) && - (((hpa.Spec.MaxReplicas - 1) - *hpa.Spec.MinReplicas) < 0) { - return false - } - if isPristine(hpa) { - return true - } - if !a.isScaleable(hpa) { - return false - } - if (hpa.Status.DesiredReplicas < hpa.Status.CurrentReplicas) || - ((hpa.Status.DesiredReplicas == hpa.Status.CurrentReplicas) && - (hpa.Status.DesiredReplicas < hpa.Spec.MaxReplicas)) { - return true - } - return false -} - -// minReplicasReducible checks if this cluster (hpa) can offer replicas which are -// stuck here because of min limit. -// Its noteworthy, that min and max are adjusted separately, but if the replicas -// are not being used here, the max adjustment will lead it to become equal to min, -// but will not be able to scale down further and offer max to some other cluster -// which needs replicas. -func (a *HpaAdapter) minReplicasReducible(obj pkgruntime.Object) bool { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - if isPristine(hpa) && (hpa.Spec.MinReplicas != nil) && - (*hpa.Spec.MinReplicas > 1) && - (*hpa.Spec.MinReplicas <= hpa.Spec.MaxReplicas) { - return true - } - if !a.isScaleable(hpa) { - return false - } - if (hpa.Spec.MinReplicas != nil) && - (*hpa.Spec.MinReplicas > 1) && - (hpa.Status.DesiredReplicas == hpa.Status.CurrentReplicas) && - (hpa.Status.CurrentReplicas == *hpa.Spec.MinReplicas) { - return true - } - return false -} - -func (a *HpaAdapter) maxReplicasNeeded(obj pkgruntime.Object) bool { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - if !a.isScaleable(hpa) { - return false - } - - if (hpa.Status.CurrentReplicas == hpa.Status.DesiredReplicas) && - (hpa.Status.CurrentReplicas == hpa.Spec.MaxReplicas) { - return true - } - return false -} - -func (a *HpaAdapter) minReplicasIncreasable(obj pkgruntime.Object) bool { - hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - if !a.isScaleable(hpa) || - ((hpa.Spec.MinReplicas != nil) && - (*hpa.Spec.MinReplicas) >= hpa.Spec.MaxReplicas) { - return false - } - - if (hpa.Spec.MinReplicas != nil) && - (hpa.Status.DesiredReplicas > *hpa.Spec.MinReplicas) { - return true - } - return false -} - -// updateClusterListOnTargetObject passes the necessary info to the target object, -// so that the corresponding controller can act on that. -// This is used because if an hpa is active on a federated object it is supposed -// to control the replicas and presence/absence of target object from federated clusters. -func (a *HpaAdapter) updateClusterListOnTargetObject(fedHpa *autoscalingv1.HorizontalPodAutoscaler, scheduleStatus map[string]*replicaNums) error { - if len(fedHpa.Spec.ScaleTargetRef.Kind) <= 0 || len(fedHpa.Spec.ScaleTargetRef.Name) <= 0 { - // nothing to do - glog.Infof("Fed HPA: cluster list update on target object skipped for target obj: %s, kind: %s", fedHpa.Spec.ScaleTargetRef.Name, fedHpa.Spec.ScaleTargetRef.Kind) - return nil - } - - names := []string{} - for clusterName, replicas := range scheduleStatus { - if replicas != nil { - names = append(names, clusterName) - } - } - clusterNames := hpautil.ClusterNames{Names: names} - qualifiedKind := extensionsinternal.Kind(fedHpa.Spec.ScaleTargetRef.Kind) - targetObj, err := getRuntimeObjectForKind(a.client, qualifiedKind, fedHpa.Namespace, fedHpa.Spec.ScaleTargetRef.Name) - if errors.IsNotFound(err) { - // Nothing to do; the target object does not exist in federation. - glog.Infof("Fed HPA: cluster list update on target object skipped for target obj: %s, kind: %s. Target object missing in federation", fedHpa.Spec.ScaleTargetRef.Name, fedHpa.Spec.ScaleTargetRef.Kind) - return nil - } - if err != nil { - return err - } - - updatedObj := hpautil.SetHpaTargetClusterList(targetObj, clusterNames) - _, err = updateRuntimeObjectForKind(a.client, qualifiedKind, fedHpa.Namespace, updatedObj) - if err != nil { - return err - } - return nil -} - -// getRuntimeObjectForKind gets the hpa targetted object from the federation control plane. -// As of now, federation only supports "ReplicaSets" and "Deployments", which is the reason -// this function only lists these two types. -// TODO: update a similar info in federated hpa documentation. -func getRuntimeObjectForKind(c federationclientset.Interface, kind schema.GroupKind, ns, name string) (pkgruntime.Object, error) { - switch kind { - case extensionsinternal.Kind("ReplicaSet"): - return c.ExtensionsV1beta1().ReplicaSets(ns).Get(name, metav1.GetOptions{}) - case extensionsinternal.Kind("Deployment"): - return c.ExtensionsV1beta1().Deployments(ns).Get(name, metav1.GetOptions{}) - default: - return nil, fmt.Errorf("Unsupported federated kind targeted by hpa: %v", kind) - } -} - -// updateRuntimeObjectForKind updates the hpa targetted object in the federation control plane. -// As of now, federation only supports "ReplicaSets" and "Deployments", which is the reason -// this function only lists these two types. -// TODO: update a similar info in federated hpa documentation. -func updateRuntimeObjectForKind(c federationclientset.Interface, kind schema.GroupKind, ns string, obj pkgruntime.Object) (pkgruntime.Object, error) { - switch kind { - case extensionsinternal.Kind("ReplicaSet"): - return c.ExtensionsV1beta1().ReplicaSets(ns).Update(obj.(*v1beta1.ReplicaSet)) - case extensionsinternal.Kind("Deployment"): - return c.ExtensionsV1beta1().Deployments(ns).Update(obj.(*v1beta1.Deployment)) - default: - return nil, fmt.Errorf("Unsupported federated kind targeted by hpa: %v", kind) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/hpa_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/hpa_test.go deleted file mode 100644 index 95447b18d..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/hpa_test.go +++ /dev/null @@ -1,264 +0,0 @@ -/* -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 federatedtypes - -import ( - "testing" - - autoscalingv1 "k8s.io/api/autoscaling/v1" - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" - - "github.com/stretchr/testify/assert" -) - -type replicas struct { - min int32 - max int32 -} - -func TestGetHpaScheduleState(t *testing.T) { - defaultFedHpa := newHpaWithReplicas(NewInt32(1), NewInt32(70), 10) - testCases := map[string]struct { - fedHpa *autoscalingv1.HorizontalPodAutoscaler - localHpas map[string]pkgruntime.Object - expectedReplicas map[string]*replicas - }{ - "Distribiutes replicas randomly if no existing hpa in any local cluster": { - localHpas: func() map[string]pkgruntime.Object { - hpas := make(map[string]pkgruntime.Object) - hpas["c1"] = nil - hpas["c2"] = nil - return hpas - }(), - }, - "Cluster with no hpa gets replicas if other clusters have replicas": { - localHpas: func() map[string]pkgruntime.Object { - hpas := make(map[string]pkgruntime.Object) - hpas["c1"] = newHpaWithReplicas(NewInt32(1), NewInt32(70), 10) - hpas["c2"] = nil - return hpas - }(), - expectedReplicas: map[string]*replicas{ - "c1": { - min: int32(1), - max: int32(9), - }, - "c2": { - min: int32(1), - max: int32(1), - }, - }, - }, - "Cluster needing max replicas gets it if there is another cluster to offer max": { - localHpas: func() map[string]pkgruntime.Object { - hpa1 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 7) - hpa1 = updateHpaStatus(hpa1, NewInt32(50), 5, 5, true) - hpa2 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 1) - hpa2 = updateHpaStatus(hpa2, NewInt32(70), 1, 1, true) - // include third object to ensure, it does not break the test - hpa3 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 2) - hpa3 = updateHpaStatus(hpa3, NewInt32(70), 1, 1, false) - hpas := make(map[string]pkgruntime.Object) - hpas["c1"] = hpa1 - hpas["c2"] = hpa2 - hpas["c3"] = hpa3 - return hpas - }(), - expectedReplicas: map[string]*replicas{ - "c1": { - min: int32(1), - max: int32(6), - }, - "c2": { - min: int32(1), - max: int32(2), - }, - "c3": { - min: int32(1), - max: int32(2), - }, - }, - }, - "Cluster needing max replicas does not get it if there is no cluster offerring max": { - localHpas: func() map[string]pkgruntime.Object { - hpa1 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 9) - hpa1 = updateHpaStatus(hpa1, NewInt32(70), 9, 9, false) - hpa2 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 1) - hpa2 = updateHpaStatus(hpa2, NewInt32(70), 1, 1, true) - hpas := make(map[string]pkgruntime.Object) - hpas["c1"] = hpa1 - hpas["c2"] = hpa2 - return hpas - }(), - expectedReplicas: map[string]*replicas{ - "c1": { - min: int32(1), - max: int32(9), - }, - "c2": { - min: int32(1), - max: int32(1), - }, - }, - }, - "Cluster which can increase min replicas gets to increase min if there is a cluster offering min": { - fedHpa: newHpaWithReplicas(NewInt32(4), NewInt32(70), 10), - localHpas: func() map[string]pkgruntime.Object { - hpa1 := newHpaWithReplicas(NewInt32(3), NewInt32(70), 6) - hpa1 = updateHpaStatus(hpa1, NewInt32(50), 3, 3, true) - hpa2 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 4) - hpa2 = updateHpaStatus(hpa2, NewInt32(50), 3, 3, true) - hpas := make(map[string]pkgruntime.Object) - hpas["c1"] = hpa1 - hpas["c2"] = hpa2 - return hpas - }(), - expectedReplicas: map[string]*replicas{ - "c1": { - min: int32(2), - max: int32(6), - }, - "c2": { - min: int32(2), - max: int32(4), - }, - }, - }, - "Cluster which can increase min replicas does not increase if there are no clusters offering min": { - fedHpa: newHpaWithReplicas(NewInt32(4), NewInt32(70), 10), - localHpas: func() map[string]pkgruntime.Object { - hpa1 := newHpaWithReplicas(NewInt32(3), NewInt32(70), 6) - hpa1 = updateHpaStatus(hpa1, NewInt32(50), 4, 4, true) - hpa2 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 4) - hpa2 = updateHpaStatus(hpa2, NewInt32(50), 3, 3, true) - hpas := make(map[string]pkgruntime.Object) - hpas["c1"] = hpa1 - hpas["c2"] = hpa2 - return hpas - }(), - expectedReplicas: map[string]*replicas{ - "c1": { - min: int32(3), - max: int32(6), - }, - "c2": { - min: int32(1), - max: int32(4), - }, - }, - }, - "Increasing replicas on fed object increases the same on clusters": { - // Existing total of local min, max = 1+1, 5+5 decreasing to below - fedHpa: newHpaWithReplicas(NewInt32(4), NewInt32(70), 14), - localHpas: func() map[string]pkgruntime.Object { - // does not matter if scaleability is true - hpas := make(map[string]pkgruntime.Object) - hpas["c1"] = newHpaWithReplicas(NewInt32(1), NewInt32(70), 5) - hpas["c2"] = newHpaWithReplicas(NewInt32(1), NewInt32(70), 5) - return hpas - }(), - // We dont know which cluster gets how many, but the resultant total should match - }, - "Decreasing replicas on fed object decreases the same on clusters": { - // Existing total of local min, max = 2+2, 8+8 decreasing to below - fedHpa: newHpaWithReplicas(NewInt32(3), NewInt32(70), 8), - localHpas: func() map[string]pkgruntime.Object { - // does not matter if scaleability is true - hpas := make(map[string]pkgruntime.Object) - hpas["c1"] = newHpaWithReplicas(NewInt32(2), NewInt32(70), 8) - hpas["c2"] = newHpaWithReplicas(NewInt32(2), NewInt32(70), 8) - return hpas - }(), - // We dont know which cluster gets how many, but the resultant total should match - }, - } - - adapter := &HpaAdapter{ - scaleForbiddenWindow: ScaleForbiddenWindow, - } - for testName, testCase := range testCases { - t.Run(testName, func(t *testing.T) { - if testCase.fedHpa == nil { - testCase.fedHpa = defaultFedHpa - } - scheduledState := adapter.getHpaScheduleState(testCase.fedHpa, testCase.localHpas) - checkClusterConditions(t, testCase.fedHpa, scheduledState) - if testCase.expectedReplicas != nil { - for cluster, replicas := range testCase.expectedReplicas { - scheduledReplicas := scheduledState[cluster] - assert.Equal(t, replicas.min, scheduledReplicas.min) - assert.Equal(t, replicas.max, scheduledReplicas.max) - } - } - }) - } -} - -func updateHpaStatus(hpa *autoscalingv1.HorizontalPodAutoscaler, currentUtilisation *int32, current, desired int32, scaleable bool) *autoscalingv1.HorizontalPodAutoscaler { - hpa.Status.CurrentReplicas = current - hpa.Status.DesiredReplicas = desired - hpa.Status.CurrentCPUUtilizationPercentage = currentUtilisation - now := metav1.Now() - scaledTime := now - if scaleable { - // definitely more then ScaleForbiddenWindow time ago - scaledTime = metav1.NewTime(now.Time.Add(-2 * ScaleForbiddenWindow)) - } - hpa.Status.LastScaleTime = &scaledTime - return hpa -} - -func checkClusterConditions(t *testing.T, fedHpa *autoscalingv1.HorizontalPodAutoscaler, scheduled map[string]*replicaNums) { - minTotal := int32(0) - maxTotal := int32(0) - for _, replicas := range scheduled { - minTotal += replicas.min - maxTotal += replicas.max - } - - // - Total of max matches the fed max - assert.Equal(t, fedHpa.Spec.MaxReplicas, maxTotal) - // - Total of min is not less then fed min - assert.Condition(t, func() bool { - if *fedHpa.Spec.MinReplicas <= minTotal { - return true - } - return false - }) -} - -func newHpaWithReplicas(min, targetUtilisation *int32, max int32) *autoscalingv1.HorizontalPodAutoscaler { - return &autoscalingv1.HorizontalPodAutoscaler{ - ObjectMeta: metav1.ObjectMeta{ - Name: "myhpa", - Namespace: apiv1.NamespaceDefault, - SelfLink: "/api/mylink", - }, - Spec: autoscalingv1.HorizontalPodAutoscalerSpec{ - ScaleTargetRef: autoscalingv1.CrossVersionObjectReference{ - Kind: "HorizontalPodAutoscaler", - Name: "target-", - }, - MinReplicas: min, - MaxReplicas: max, - TargetCPUUtilizationPercentage: targetUtilisation, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/namespace.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/namespace.go deleted file mode 100644 index ae4892c6b..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/namespace.go +++ /dev/null @@ -1,215 +0,0 @@ -/* -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 federatedtypes - -import ( - "fmt" - - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/dynamic" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/record" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/controller/namespace/deletion" - - "github.com/golang/glog" -) - -const ( - NamespaceKind = "namespace" - NamespaceControllerName = "namespaces" -) - -func init() { - RegisterFederatedType(NamespaceKind, NamespaceControllerName, []schema.GroupVersionResource{apiv1.SchemeGroupVersion.WithResource(NamespaceControllerName)}, NewNamespaceAdapter) -} - -type NamespaceAdapter struct { - client federationclientset.Interface - deleter deletion.NamespacedResourcesDeleterInterface -} - -func NewNamespaceAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { - dynamicClientPool := dynamic.NewDynamicClientPool(config) - discoverResourcesFunc := client.Discovery().ServerPreferredNamespacedResources - deleter := deletion.NewNamespacedResourcesDeleter( - client.Core().Namespaces(), - dynamicClientPool, - nil, - discoverResourcesFunc, - apiv1.FinalizerKubernetes, - false) - return &NamespaceAdapter{client: client, deleter: deleter} -} - -func (a *NamespaceAdapter) Kind() string { - return NamespaceKind -} - -func (a *NamespaceAdapter) ObjectType() pkgruntime.Object { - return &apiv1.Namespace{} -} - -func (a *NamespaceAdapter) IsExpectedType(obj interface{}) bool { - _, ok := obj.(*apiv1.Namespace) - return ok -} - -func (a *NamespaceAdapter) Copy(obj pkgruntime.Object) pkgruntime.Object { - namespace := obj.(*apiv1.Namespace) - return &apiv1.Namespace{ - ObjectMeta: util.DeepCopyRelevantObjectMeta(namespace.ObjectMeta), - Spec: *namespace.Spec.DeepCopy(), - } -} - -func (a *NamespaceAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool { - return util.ObjectMetaAndSpecEquivalent(obj1, obj2) -} - -func (a *NamespaceAdapter) QualifiedName(obj pkgruntime.Object) QualifiedName { - namespace := obj.(*apiv1.Namespace) - return QualifiedName{Name: namespace.Name} -} - -func (a *NamespaceAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta { - return &obj.(*apiv1.Namespace).ObjectMeta -} - -func (a *NamespaceAdapter) FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error) { - namespace := obj.(*apiv1.Namespace) - return a.client.CoreV1().Namespaces().Create(namespace) -} - -func (a *NamespaceAdapter) FedDelete(qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return a.client.CoreV1().Namespaces().Delete(qualifiedName.Name, options) -} - -func (a *NamespaceAdapter) FedGet(qualifiedName QualifiedName) (pkgruntime.Object, error) { - return a.client.CoreV1().Namespaces().Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *NamespaceAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return a.client.CoreV1().Namespaces().List(options) -} - -func (a *NamespaceAdapter) FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error) { - namespace := obj.(*apiv1.Namespace) - return a.client.CoreV1().Namespaces().Update(namespace) -} - -func (a *NamespaceAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error) { - return a.client.CoreV1().Namespaces().Watch(options) -} - -func (a *NamespaceAdapter) ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - namespace := obj.(*apiv1.Namespace) - return client.CoreV1().Namespaces().Create(namespace) -} - -func (a *NamespaceAdapter) ClusterDelete(client kubeclientset.Interface, qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return client.CoreV1().Namespaces().Delete(qualifiedName.Name, options) -} - -func (a *NamespaceAdapter) ClusterGet(client kubeclientset.Interface, qualifiedName QualifiedName) (pkgruntime.Object, error) { - return client.CoreV1().Namespaces().Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *NamespaceAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return client.CoreV1().Namespaces().List(options) -} - -func (a *NamespaceAdapter) ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - namespace := obj.(*apiv1.Namespace) - return client.CoreV1().Namespaces().Update(namespace) -} - -func (a *NamespaceAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error) { - return client.CoreV1().Namespaces().Watch(options) -} - -func (a *NamespaceAdapter) IsSchedulingAdapter() bool { - return false -} - -func (a *NamespaceAdapter) NewTestObject(namespace string) pkgruntime.Object { - return &apiv1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: "test-namespace-", - }, - Spec: apiv1.NamespaceSpec{ - Finalizers: []apiv1.FinalizerName{apiv1.FinalizerKubernetes}, - }, - } -} - -// CleanUpNamespace deletes all resources in a given namespace. -func (a *NamespaceAdapter) CleanUpNamespace(obj pkgruntime.Object, eventRecorder record.EventRecorder) (pkgruntime.Object, error) { - namespace := obj.(*apiv1.Namespace) - name := namespace.Name - - // Set Terminating status. - updatedNamespace := &apiv1.Namespace{ - ObjectMeta: namespace.ObjectMeta, - Spec: namespace.Spec, - Status: apiv1.NamespaceStatus{ - Phase: apiv1.NamespaceTerminating, - }, - } - var err error - if namespace.Status.Phase != apiv1.NamespaceTerminating { - glog.V(2).Infof("Marking ns %s as terminating", name) - eventRecorder.Event(namespace, api.EventTypeNormal, "DeleteNamespace", fmt.Sprintf("Marking for deletion")) - _, err = a.FedUpdate(updatedNamespace) - if err != nil { - return nil, fmt.Errorf("failed to update namespace: %v", err) - } - } - - if hasFinalizerInSpec(updatedNamespace, apiv1.FinalizerKubernetes) { - // Delete resources in this namespace. - err = a.deleter.Delete(name) - if err != nil { - return nil, fmt.Errorf("error in deleting resources in namespace %s: %v", name, err) - } - glog.V(2).Infof("Removed kubernetes finalizer from ns %s", name) - // Fetch the updated Namespace. - obj, err = a.FedGet(QualifiedName{Name: name}) - updatedNamespace = obj.(*apiv1.Namespace) - if err != nil { - return nil, fmt.Errorf("error in fetching updated namespace %s: %s", name, err) - } - } - - return updatedNamespace, nil -} - -func hasFinalizerInSpec(namespace *apiv1.Namespace, finalizer apiv1.FinalizerName) bool { - for i := range namespace.Spec.Finalizers { - if namespace.Spec.Finalizers[i] == finalizer { - return true - } - } - return false -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/qualifiedname.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/qualifiedname.go deleted file mode 100644 index 95f0df110..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/qualifiedname.go +++ /dev/null @@ -1,41 +0,0 @@ -/* -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 federatedtypes - -import ( - "fmt" -) - -// QualifiedName comprises a resource name with an optional namespace. -// If namespace is provided, a QualifiedName will be rendered as -// "/". If not, it will be rendered as "name". This -// is intended to allow the FederatedTypeAdapter interface and its -// consumers to operate on both namespaces and namespace-qualified -// resources. - -type QualifiedName struct { - Namespace string - Name string -} - -// String returns the general purpose string representation -func (n QualifiedName) String() string { - if len(n.Namespace) == 0 { - return n.Name - } - return fmt.Sprintf("%s/%s", n.Namespace, n.Name) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/registry.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/registry.go deleted file mode 100644 index 720b32a85..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/registry.go +++ /dev/null @@ -1,59 +0,0 @@ -/* -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 federatedtypes - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// FederatedType configures federation for a kubernetes type -type FederatedType struct { - Kind string - ControllerName string - RequiredResources []schema.GroupVersionResource - AdapterFactory AdapterFactory -} - -var typeRegistry = make(map[string]FederatedType) - -// RegisterFederatedType ensures that configuration for the given kind will be returned by the FederatedTypes method. -func RegisterFederatedType(kind, controllerName string, requiredResources []schema.GroupVersionResource, factory AdapterFactory) { - _, ok := typeRegistry[kind] - if ok { - // TODO Is panicking ok given that this is part of a type-registration mechanism - panic(fmt.Sprintf("Federated type %q has already been registered", kind)) - } - typeRegistry[kind] = FederatedType{ - Kind: kind, - ControllerName: controllerName, - RequiredResources: requiredResources, - AdapterFactory: factory, - } -} - -// FederatedTypes returns a mapping of kind (e.g. "secret") to the -// type information required to configure its federation. -func FederatedTypes() map[string]FederatedType { - // TODO copy RequiredResources to avoid accidental mutation - result := make(map[string]FederatedType) - for key, value := range typeRegistry { - result[key] = value - } - return result -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/replicaset.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/replicaset.go deleted file mode 100644 index 0477c7873..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/replicaset.go +++ /dev/null @@ -1,189 +0,0 @@ -/* -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 federatedtypes - -import ( - apiv1 "k8s.io/api/core/v1" - extensionsv1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" -) - -const ( - ReplicaSetKind = "replicaset" - ReplicaSetControllerName = "replicasets" - FedReplicaSetPreferencesAnnotation = "federation.kubernetes.io/replica-set-preferences" -) - -func init() { - RegisterFederatedType(ReplicaSetKind, ReplicaSetControllerName, []schema.GroupVersionResource{extensionsv1.SchemeGroupVersion.WithResource(ReplicaSetControllerName)}, NewReplicaSetAdapter) -} - -type ReplicaSetAdapter struct { - *replicaSchedulingAdapter - client federationclientset.Interface -} - -func NewReplicaSetAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { - replicaSchedulingAdapter := replicaSchedulingAdapter{ - preferencesAnnotationName: FedReplicaSetPreferencesAnnotation, - updateStatusFunc: func(obj pkgruntime.Object, schedulingInfo interface{}) error { - rs := obj.(*extensionsv1.ReplicaSet) - typedStatus := schedulingInfo.(*ReplicaSchedulingInfo).Status - if typedStatus.Replicas != rs.Status.Replicas || typedStatus.FullyLabeledReplicas != rs.Status.FullyLabeledReplicas || - typedStatus.ReadyReplicas != rs.Status.ReadyReplicas || typedStatus.AvailableReplicas != rs.Status.AvailableReplicas { - rs.Status = extensionsv1.ReplicaSetStatus{ - Replicas: typedStatus.Replicas, - FullyLabeledReplicas: typedStatus.Replicas, - ReadyReplicas: typedStatus.ReadyReplicas, - AvailableReplicas: typedStatus.AvailableReplicas, - } - _, err := client.Extensions().ReplicaSets(rs.Namespace).UpdateStatus(rs) - return err - } - return nil - }, - } - return &ReplicaSetAdapter{&replicaSchedulingAdapter, client} -} - -func (a *ReplicaSetAdapter) Kind() string { - return ReplicaSetKind -} - -func (a *ReplicaSetAdapter) ObjectType() pkgruntime.Object { - return &extensionsv1.ReplicaSet{} -} - -func (a *ReplicaSetAdapter) IsExpectedType(obj interface{}) bool { - _, ok := obj.(*extensionsv1.ReplicaSet) - return ok -} - -func (a *ReplicaSetAdapter) Copy(obj pkgruntime.Object) pkgruntime.Object { - rs := obj.(*extensionsv1.ReplicaSet) - return &extensionsv1.ReplicaSet{ - ObjectMeta: fedutil.DeepCopyRelevantObjectMeta(rs.ObjectMeta), - Spec: *rs.Spec.DeepCopy(), - } -} - -func (a *ReplicaSetAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool { - return fedutil.ObjectMetaAndSpecEquivalent(obj1, obj2) -} - -func (a *ReplicaSetAdapter) QualifiedName(obj pkgruntime.Object) QualifiedName { - replicaset := obj.(*extensionsv1.ReplicaSet) - return QualifiedName{Namespace: replicaset.Namespace, Name: replicaset.Name} -} - -func (a *ReplicaSetAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta { - return &obj.(*extensionsv1.ReplicaSet).ObjectMeta -} - -func (a *ReplicaSetAdapter) FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error) { - replicaset := obj.(*extensionsv1.ReplicaSet) - return a.client.Extensions().ReplicaSets(replicaset.Namespace).Create(replicaset) -} - -func (a *ReplicaSetAdapter) FedDelete(qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return a.client.Extensions().ReplicaSets(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *ReplicaSetAdapter) FedGet(qualifiedName QualifiedName) (pkgruntime.Object, error) { - return a.client.Extensions().ReplicaSets(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *ReplicaSetAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return a.client.Extensions().ReplicaSets(namespace).List(options) -} - -func (a *ReplicaSetAdapter) FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error) { - replicaset := obj.(*extensionsv1.ReplicaSet) - return a.client.Extensions().ReplicaSets(replicaset.Namespace).Update(replicaset) -} - -func (a *ReplicaSetAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error) { - return a.client.Extensions().ReplicaSets(namespace).Watch(options) -} - -func (a *ReplicaSetAdapter) ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - replicaset := obj.(*extensionsv1.ReplicaSet) - return client.Extensions().ReplicaSets(replicaset.Namespace).Create(replicaset) -} - -func (a *ReplicaSetAdapter) ClusterDelete(client kubeclientset.Interface, qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return client.Extensions().ReplicaSets(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *ReplicaSetAdapter) ClusterGet(client kubeclientset.Interface, qualifiedName QualifiedName) (pkgruntime.Object, error) { - return client.Extensions().ReplicaSets(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *ReplicaSetAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return client.Extensions().ReplicaSets(namespace).List(options) -} - -func (a *ReplicaSetAdapter) ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - replicaset := obj.(*extensionsv1.ReplicaSet) - return client.Extensions().ReplicaSets(replicaset.Namespace).Update(replicaset) -} - -func (a *ReplicaSetAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error) { - return client.Extensions().ReplicaSets(namespace).Watch(options) -} - -func (a *ReplicaSetAdapter) EquivalentIgnoringSchedule(obj1, obj2 pkgruntime.Object) bool { - replicaset1 := obj1.(*extensionsv1.ReplicaSet) - replicaset2 := a.Copy(obj2).(*extensionsv1.ReplicaSet) - replicaset2.Spec.Replicas = replicaset1.Spec.Replicas - return fedutil.ObjectMetaAndSpecEquivalent(replicaset1, replicaset2) -} - -func (a *ReplicaSetAdapter) NewTestObject(namespace string) pkgruntime.Object { - replicas := int32(3) - zero := int64(0) - return &extensionsv1.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: "test-replicaset-", - Namespace: namespace, - }, - Spec: extensionsv1.ReplicaSetSpec{ - Replicas: &replicas, - Template: apiv1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"foo": "bar"}, - }, - Spec: apiv1.PodSpec{ - TerminationGracePeriodSeconds: &zero, - Containers: []apiv1.Container{ - { - Name: "nginx", - Image: "nginx", - }, - }, - }, - }, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/scheduling.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/scheduling.go deleted file mode 100644 index cdbd39703..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/scheduling.go +++ /dev/null @@ -1,356 +0,0 @@ -/* -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 federatedtypes - -import ( - "bytes" - "fmt" - "reflect" - "sort" - "time" - - apiv1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - fedapi "k8s.io/kubernetes/federation/apis/federation" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" - hpautil "k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/planner" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences" - - "github.com/golang/glog" -) - -// ScheduleAction is used by the interface ScheduleObject of SchedulingAdapter -// to sync controller reconcile to convey the action type needed for the -// particular cluster local object in ScheduleObject -type ScheduleAction string - -const ( - ActionAdd = "add" - ActionDelete = "delete" -) - -// ReplicaStatus contains the details of status fields from the cluster objects, -// which need accumulation to update the status of the federated object. -type ReplicaStatus struct { - Replicas int32 - UpdatedReplicas int32 - FullyLabeledReplicas int32 - ReadyReplicas int32 - AvailableReplicas int32 -} - -// ReplicaScheduleState is the result of adapter specific schedule() function, -// which is then used to update objects into clusters. -type ReplicaScheduleState struct { - isSelected bool - replicas int64 -} - -// ReplicaSchedulingInfo wraps the information that a replica type (rs or deployment) -// SchedulingAdapter needs to update objects per a schedule. -type ReplicaSchedulingInfo struct { - ScheduleState map[string]*ReplicaScheduleState - Status ReplicaStatus -} - -// SchedulingAdapter defines operations for interacting with a -// federated type that requires more complex synchronization logic. -type SchedulingAdapter interface { - GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (interface{}, error) - ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo interface{}) (pkgruntime.Object, ScheduleAction, error) - UpdateFederatedStatus(obj pkgruntime.Object, schedulingInfo interface{}) error - - // EquivalentIgnoringSchedule returns whether obj1 and obj2 are - // equivalent ignoring differences due to scheduling. - EquivalentIgnoringSchedule(obj1, obj2 pkgruntime.Object) bool -} - -// replicaSchedulingAdapter is meant to be embedded in other type adapters that require -// workload scheduling with actual pod replicas. -type replicaSchedulingAdapter struct { - preferencesAnnotationName string - updateStatusFunc func(pkgruntime.Object, interface{}) error -} - -func (a *replicaSchedulingAdapter) IsSchedulingAdapter() bool { - return true -} - -func isSelected(names []string, name string) bool { - for _, val := range names { - if val == name { - return true - } - } - return false -} - -func isObjHpaControlled(fedObj pkgruntime.Object) (bool, error) { - hpaSelectedClusters, error := hpautil.GetHpaTargetClusterList(fedObj) - if error != nil { - return false, error - } - - if hpaSelectedClusters == nil { - return false, nil - } - return true, nil -} - -// initializeScheduleState initializes the schedule state for consumption by schedule -// functions (schedule or simple schedule). After this initialization the state would -// already have information, if only a subset of clusters targetted by hpa, or all clusters -// need to be considered by the actual scheduling functions. -// The return bool named hpaControlled tells if this object is controlled by hpa or not. -func initializeScheduleState(fedObj pkgruntime.Object, clusterNames []string) (map[string]*ReplicaScheduleState, bool, error) { - initialState := make(map[string]*ReplicaScheduleState) - hpaControlled := false - hpaSelectedClusters, error := hpautil.GetHpaTargetClusterList(fedObj) - if error != nil { - return nil, hpaControlled, error - } - - if hpaSelectedClusters != nil { - hpaControlled = true - } - for _, clusterName := range clusterNames { - replicaState := ReplicaScheduleState{ - isSelected: false, - replicas: 0, - } - if hpaControlled { - if isSelected(hpaSelectedClusters.Names, clusterName) { - replicaState.isSelected = true - } - } - initialState[clusterName] = &replicaState - } - return initialState, hpaControlled, nil -} - -func (a *replicaSchedulingAdapter) GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (interface{}, error) { - var clusterNames []string - for _, cluster := range clusters { - clusterNames = append(clusterNames, cluster.Name) - } - - // Schedule the pods across the existing clusters. - objectGetter := func(clusterName, key string) (interface{}, bool, error) { - return informer.GetTargetStore().GetByKey(clusterName, key) - } - podsGetter := func(clusterName string, obj pkgruntime.Object) (*apiv1.PodList, error) { - clientset, err := informer.GetClientsetForCluster(clusterName) - if err != nil { - return nil, err - } - selectorObj := reflect.ValueOf(obj).Elem().FieldByName("Spec").FieldByName("Selector").Interface().(*metav1.LabelSelector) - selector, err := metav1.LabelSelectorAsSelector(selectorObj) - if err != nil { - return nil, fmt.Errorf("invalid selector: %v", err) - } - metadata, err := meta.Accessor(obj) - if err != nil { - return nil, err - } - return clientset.Core().Pods(metadata.GetNamespace()).List(metav1.ListOptions{LabelSelector: selector.String()}) - } - - initializedState, hpaControlled, err := initializeScheduleState(obj, clusterNames) - if err != nil { - return nil, err - } - - if hpaControlled { - state, err := simpleSchedule(initializedState, key, objectGetter) - if err != nil { - return nil, err - } - return &ReplicaSchedulingInfo{ - ScheduleState: state, - Status: ReplicaStatus{}, - }, nil - } - - currentReplicasPerCluster, estimatedCapacity, err := clustersReplicaState(clusterNames, key, objectGetter, podsGetter) - if err != nil { - return nil, err - } - - fedPref, err := replicapreferences.GetAllocationPreferences(obj, a.preferencesAnnotationName) - if err != nil { - glog.Infof("Invalid workload-type specific preference, using default. object: %v, err: %v", obj, err) - } - if fedPref == nil { - fedPref = &fedapi.ReplicaAllocationPreferences{ - Clusters: map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}, - }, - } - } - - plnr := planner.NewPlanner(fedPref) - - return &ReplicaSchedulingInfo{ - ScheduleState: schedule(plnr, obj, key, clusterNames, currentReplicasPerCluster, estimatedCapacity, initializedState), - Status: ReplicaStatus{}, - }, nil -} - -func (a *replicaSchedulingAdapter) ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo interface{}) (pkgruntime.Object, ScheduleAction, error) { - typedSchedulingInfo := schedulingInfo.(*ReplicaSchedulingInfo) - clusterScheduleState := typedSchedulingInfo.ScheduleState[cluster.Name] - - if clusterObj != nil { - schedulingStatusVal := reflect.ValueOf(typedSchedulingInfo).Elem().FieldByName("Status") - objStatusVal := reflect.ValueOf(clusterObj).Elem().FieldByName("Status") - for i := 0; i < schedulingStatusVal.NumField(); i++ { - schedulingStatusField := schedulingStatusVal.Field(i) - schedulingStatusFieldName := schedulingStatusVal.Type().Field(i).Name - objStatusField := objStatusVal.FieldByName(schedulingStatusFieldName) - if objStatusField.IsValid() { - current := schedulingStatusField.Int() - additional := objStatusField.Int() - schedulingStatusField.SetInt(current + additional) - } - } - } - - var action ScheduleAction = "" - specReplicas := int32(0) - // If the cluster has been selected (isSelected = true; for example by hpa) - // and the obj does not get any replicas, then it should create one with - // 0 replicas (which can then be scaled by hpa in that cluster). - // On the other hand we keep the action as "unassigned" if this cluster was - // not selected, and let the sync controller decide what to do. - if clusterScheduleState.isSelected { - specReplicas = int32(clusterScheduleState.replicas) - action = ActionAdd - } - reflect.ValueOf(federationObjCopy).Elem().FieldByName("Spec").FieldByName("Replicas").Set(reflect.ValueOf(&specReplicas)) - return federationObjCopy, action, nil -} - -func (a *replicaSchedulingAdapter) UpdateFederatedStatus(obj pkgruntime.Object, schedulingInfo interface{}) error { - return a.updateStatusFunc(obj, schedulingInfo) -} - -// simpleSchedule get replicas from only those clusters which are selected (by hpa scheduler). -// This aim of this is to ensure that this controller does not update objects, which are -// targetted by hpa. -func simpleSchedule(scheduleState map[string]*ReplicaScheduleState, key string, objectGetter func(clusterName string, key string) (interface{}, bool, error)) (map[string]*ReplicaScheduleState, error) { - for clusterName, state := range scheduleState { - // Get and consider replicas only for those clusters which are selected by hpa. - if state.isSelected { - obj, exists, err := objectGetter(clusterName, key) - if err != nil { - return nil, err - } - if !exists { - continue - } - state.replicas = reflect.ValueOf(obj).Elem().FieldByName("Spec").FieldByName("Replicas").Elem().Int() - } - } - - return scheduleState, nil -} - -func schedule(planner *planner.Planner, obj pkgruntime.Object, key string, clusterNames []string, currentReplicasPerCluster map[string]int64, estimatedCapacity map[string]int64, initialState map[string]*ReplicaScheduleState) map[string]*ReplicaScheduleState { - // TODO: integrate real scheduler - replicas := reflect.ValueOf(obj).Elem().FieldByName("Spec").FieldByName("Replicas").Elem().Int() - scheduleResult, overflow := planner.Plan(replicas, clusterNames, currentReplicasPerCluster, estimatedCapacity, key) - - // Ensure that all current clusters end up in the scheduling result. - // initialState, is preinitialized with all isSelected to false. - result := initialState - for clusterName := range currentReplicasPerCluster { - // We consider 0 replicas equaling to no need of creating a new object. - // isSchedule remains false in such case. - result[clusterName].replicas = 0 - } - - for clusterName, replicas := range scheduleResult { - result[clusterName].isSelected = true - result[clusterName].replicas = replicas - } - for clusterName, replicas := range overflow { - result[clusterName].isSelected = true - result[clusterName].replicas += replicas - } - - if glog.V(4) { - buf := bytes.NewBufferString(fmt.Sprintf("Schedule - %q\n", key)) - sort.Strings(clusterNames) - for _, clusterName := range clusterNames { - cur := currentReplicasPerCluster[clusterName] - target := scheduleResult[clusterName] - fmt.Fprintf(buf, "%s: current: %d target: %d", clusterName, cur, target) - if over, found := overflow[clusterName]; found { - fmt.Fprintf(buf, " overflow: %d", over) - } - if capacity, found := estimatedCapacity[clusterName]; found { - fmt.Fprintf(buf, " capacity: %d", capacity) - } - fmt.Fprintf(buf, "\n") - } - glog.V(4).Infof(buf.String()) - } - return result -} - -// clusterReplicaState returns information about the scheduling state of the pods running in the federated clusters. -func clustersReplicaState( - clusterNames []string, - key string, - objectGetter func(clusterName string, key string) (interface{}, bool, error), - podsGetter func(clusterName string, obj pkgruntime.Object) (*apiv1.PodList, error)) (currentReplicasPerCluster map[string]int64, estimatedCapacity map[string]int64, err error) { - - currentReplicasPerCluster = make(map[string]int64) - estimatedCapacity = make(map[string]int64) - - for _, clusterName := range clusterNames { - obj, exists, err := objectGetter(clusterName, key) - if err != nil { - return nil, nil, err - } - if !exists { - continue - } - replicas := reflect.ValueOf(obj).Elem().FieldByName("Spec").FieldByName("Replicas").Elem().Int() - readyReplicas := reflect.ValueOf(obj).Elem().FieldByName("Status").FieldByName("ReadyReplicas").Int() - if replicas == readyReplicas { - currentReplicasPerCluster[clusterName] = readyReplicas - } else { - pods, err := podsGetter(clusterName, obj.(pkgruntime.Object)) - if err != nil { - return nil, nil, err - } - podStatus := podanalyzer.AnalyzePods(pods, time.Now()) - currentReplicasPerCluster[clusterName] = int64(podStatus.RunningAndReady) // include pending as well? - unschedulable := int64(podStatus.Unschedulable) - if unschedulable > 0 { - estimatedCapacity[clusterName] = replicas - unschedulable - } - } - } - return currentReplicasPerCluster, estimatedCapacity, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/scheduling_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/scheduling_test.go deleted file mode 100644 index d938e525a..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/scheduling_test.go +++ /dev/null @@ -1,163 +0,0 @@ -/* -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 federatedtypes - -import ( - "fmt" - "testing" - "time" - - apiv1 "k8s.io/api/core/v1" - extensionsv1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - - "github.com/stretchr/testify/assert" -) - -func TestClusterReplicaState(t *testing.T) { - uncalledPodsGetter := func(clusterName string, obj pkgruntime.Object) (*apiv1.PodList, error) { - t.Fatal("podsGetter should not be called when workload objects are all ready.") - return nil, nil - } - - podsByReplicaSet := make(map[pkgruntime.Object][]*apiv1.Pod) - podsGetter := func(clusterName string, obj pkgruntime.Object) (*apiv1.PodList, error) { - pods, ok := podsByReplicaSet[obj] - if !ok { - t.Fatalf("No pods found in test data for replica set %v", obj) - return nil, fmt.Errorf("Not found") - } - var podListPods []apiv1.Pod - for _, pod := range pods { - podListPods = append(podListPods, *pod) - } - return &apiv1.PodList{Items: podListPods}, nil - } - - readyCondition := apiv1.PodCondition{Type: apiv1.PodReady} - unschedulableCondition := apiv1.PodCondition{ - Type: apiv1.PodScheduled, - Status: apiv1.ConditionFalse, - Reason: apiv1.PodReasonUnschedulable, - LastTransitionTime: metav1.NewTime(time.Now().Add(-1 * time.Hour)), - } - - one := int64(1) - two := int64(2) - - tests := map[string]struct { - rs1Replicas int32 - rs2Replicas int32 - rs1ReadyReplicas int32 - rs2ReadyReplicas int32 - podsGetter func(clusterName string, obj pkgruntime.Object) (*apiv1.PodList, error) - pod1Phase apiv1.PodPhase - pod1Condition apiv1.PodCondition - pod2Phase apiv1.PodPhase - pod2Condition apiv1.PodCondition - cluster1Replicas *int64 - cluster2Replicas *int64 - cluster1UnschedulableReplicas *int64 - cluster2UnschedulableReplicas *int64 - }{ - "All replica sets have an equal number of requested and ready replicas.": {rs1Replicas: 2, rs2Replicas: 2, rs1ReadyReplicas: 2, rs2ReadyReplicas: 2, podsGetter: uncalledPodsGetter, cluster1Replicas: &two, cluster2Replicas: &two}, - "One replica set has a pending schedulable pod": {rs1Replicas: 2, rs2Replicas: 2, rs1ReadyReplicas: 1, rs2ReadyReplicas: 2, podsGetter: podsGetter, pod1Phase: apiv1.PodRunning, pod1Condition: readyCondition, pod2Phase: apiv1.PodPending, cluster1Replicas: &one, cluster2Replicas: &two}, - "One replica set has an unschedulable pod": {rs1Replicas: 2, rs2Replicas: 2, rs1ReadyReplicas: 1, rs2ReadyReplicas: 2, podsGetter: podsGetter, pod1Phase: apiv1.PodRunning, pod1Condition: readyCondition, pod2Phase: apiv1.PodPending, pod2Condition: unschedulableCondition, cluster1Replicas: &one, cluster2Replicas: &two, cluster1UnschedulableReplicas: &one}, - } - - for name, tt := range tests { - t.Run(name, func(t *testing.T) { - clusters := []string{"one", "two"} - replicaSetsByCluster := make(map[string]*extensionsv1.ReplicaSet) - replicaSetGetter := func(clusterName string, key string) (interface{}, bool, error) { - rs, ok := replicaSetsByCluster[clusterName] - if !ok { - t.Fatalf("No replica set found in test data for %v", clusterName) - return nil, false, fmt.Errorf("Not found") - } - return rs, true, nil - } - rs1 := newReplicaSetWithReplicas("one", tt.rs1Replicas) - rs2 := newReplicaSetWithReplicas("two", tt.rs2Replicas) - rs1.Spec.Replicas = &tt.rs1Replicas - rs2.Spec.Replicas = &tt.rs2Replicas - rs1.Status.ReadyReplicas = tt.rs1ReadyReplicas - rs2.Status.ReadyReplicas = tt.rs2ReadyReplicas - - replicaSetsByCluster["one"] = rs1 - replicaSetsByCluster["two"] = rs2 - - pod1 := newPod("one") - pod2 := newPod("two") - podThree := newPod("three") - podFour := newPod("four") - - pod1.Status.Phase = tt.pod1Phase - pod2.Status.Phase = tt.pod2Phase - pod1.Status.Conditions = []apiv1.PodCondition{tt.pod1Condition} - pod2.Status.Conditions = []apiv1.PodCondition{tt.pod2Condition} - - podsByReplicaSet[rs1] = []*apiv1.Pod{pod1, pod2} - podsByReplicaSet[rs2] = []*apiv1.Pod{podThree, podFour} - - current, estimatedCapacity, err := clustersReplicaState(clusters, "", replicaSetGetter, tt.podsGetter) - - assert.Nil(t, err) - - wantedCurrent := make(map[string]int64) - if tt.cluster1Replicas != nil { - wantedCurrent["one"] = *tt.cluster1Replicas - } - if tt.cluster2Replicas != nil { - wantedCurrent["two"] = *tt.cluster2Replicas - } - assert.Equal(t, wantedCurrent, current) - - wantedEstimatedCapacity := make(map[string]int64) - if tt.cluster1UnschedulableReplicas != nil { - wantedEstimatedCapacity["one"] = *tt.cluster1UnschedulableReplicas - } - if tt.cluster2UnschedulableReplicas != nil { - wantedEstimatedCapacity["two"] = *tt.cluster2UnschedulableReplicas - } - assert.Equal(t, wantedEstimatedCapacity, estimatedCapacity) - }) - } -} - -func newReplicaSetWithReplicas(name string, replicas int32) *extensionsv1.ReplicaSet { - return &extensionsv1.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: metav1.NamespaceDefault, - SelfLink: "/api/v1/namespaces/default/replicasets/name", - }, - Spec: extensionsv1.ReplicaSetSpec{ - Replicas: &replicas, - }, - } -} - -func newPod(name string) *apiv1.Pod { - return &apiv1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: metav1.NamespaceDefault, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/secret.go b/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/secret.go deleted file mode 100644 index 09548ca62..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federatedtypes/secret.go +++ /dev/null @@ -1,152 +0,0 @@ -/* -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 federatedtypes - -import ( - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" -) - -const ( - SecretKind = "secret" - SecretControllerName = "secrets" -) - -func init() { - RegisterFederatedType(SecretKind, SecretControllerName, []schema.GroupVersionResource{apiv1.SchemeGroupVersion.WithResource(SecretControllerName)}, NewSecretAdapter) -} - -type SecretAdapter struct { - client federationclientset.Interface -} - -func NewSecretAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { - return &SecretAdapter{client: client} -} - -func (a *SecretAdapter) Kind() string { - return SecretKind -} - -func (a *SecretAdapter) ObjectType() pkgruntime.Object { - return &apiv1.Secret{} -} - -func (a *SecretAdapter) IsExpectedType(obj interface{}) bool { - _, ok := obj.(*apiv1.Secret) - return ok -} - -func (a *SecretAdapter) Copy(obj pkgruntime.Object) pkgruntime.Object { - secret := obj.(*apiv1.Secret) - return &apiv1.Secret{ - ObjectMeta: util.DeepCopyRelevantObjectMeta(secret.ObjectMeta), - Data: secret.Data, - Type: secret.Type, - } -} - -func (a *SecretAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool { - secret1 := obj1.(*apiv1.Secret) - secret2 := obj2.(*apiv1.Secret) - return util.SecretEquivalent(*secret1, *secret2) -} - -func (a *SecretAdapter) QualifiedName(obj pkgruntime.Object) QualifiedName { - secret := obj.(*apiv1.Secret) - return QualifiedName{Namespace: secret.Namespace, Name: secret.Name} -} - -func (a *SecretAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta { - return &obj.(*apiv1.Secret).ObjectMeta -} - -func (a *SecretAdapter) FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error) { - secret := obj.(*apiv1.Secret) - return a.client.CoreV1().Secrets(secret.Namespace).Create(secret) -} - -func (a *SecretAdapter) FedDelete(qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return a.client.CoreV1().Secrets(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *SecretAdapter) FedGet(qualifiedName QualifiedName) (pkgruntime.Object, error) { - return a.client.CoreV1().Secrets(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *SecretAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return a.client.CoreV1().Secrets(namespace).List(options) -} - -func (a *SecretAdapter) FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error) { - secret := obj.(*apiv1.Secret) - return a.client.CoreV1().Secrets(secret.Namespace).Update(secret) -} - -func (a *SecretAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error) { - return a.client.CoreV1().Secrets(namespace).Watch(options) -} - -func (a *SecretAdapter) ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - secret := obj.(*apiv1.Secret) - return client.CoreV1().Secrets(secret.Namespace).Create(secret) -} - -func (a *SecretAdapter) ClusterDelete(client kubeclientset.Interface, qualifiedName QualifiedName, options *metav1.DeleteOptions) error { - return client.CoreV1().Secrets(qualifiedName.Namespace).Delete(qualifiedName.Name, options) -} - -func (a *SecretAdapter) ClusterGet(client kubeclientset.Interface, qualifiedName QualifiedName) (pkgruntime.Object, error) { - return client.CoreV1().Secrets(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) -} - -func (a *SecretAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { - return client.CoreV1().Secrets(namespace).List(options) -} - -func (a *SecretAdapter) ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { - secret := obj.(*apiv1.Secret) - return client.CoreV1().Secrets(secret.Namespace).Update(secret) -} - -func (a *SecretAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error) { - return client.CoreV1().Secrets(namespace).Watch(options) -} - -func (a *SecretAdapter) IsSchedulingAdapter() bool { - return false -} - -func (a *SecretAdapter) NewTestObject(namespace string) pkgruntime.Object { - return &apiv1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: "test-secret-", - Namespace: namespace, - }, - Data: map[string][]byte{ - "A": []byte("ala ma kota"), - }, - Type: apiv1.SecretTypeOpaque, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/BUILD deleted file mode 100644 index 0a1dc2f97..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["doc.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/pkg/federation-controller/cluster:all-srcs", - "//federation/pkg/federation-controller/ingress:all-srcs", - "//federation/pkg/federation-controller/job:all-srcs", - "//federation/pkg/federation-controller/service:all-srcs", - "//federation/pkg/federation-controller/sync:all-srcs", - "//federation/pkg/federation-controller/util:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/OWNERS b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/OWNERS deleted file mode 100644 index 571c01c05..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/OWNERS +++ /dev/null @@ -1,8 +0,0 @@ -approvers: -- quinton-hoole -- nikhiljindal -- madhusudancs -reviewers: -- quinton-hoole -- nikhiljindal -- madhusudancs diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/BUILD deleted file mode 100644 index 9c50487b2..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/BUILD +++ /dev/null @@ -1,67 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["clustercontroller_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/cluster", - library = ":go_default_library", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//pkg/api/testapi: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/util/uuid:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "cluster_client.go", - "clustercontroller.go", - "doc.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/cluster", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/cache:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//pkg/api:go_default_library", - "//pkg/client/clientset_generated/internalclientset:go_default_library", - "//pkg/controller:go_default_library", - "//pkg/kubelet/apis:go_default_library", - "//vendor/github.com/golang/glog: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/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/rest: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"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/cluster_client.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/cluster_client.go deleted file mode 100644 index c9f963588..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/cluster_client.go +++ /dev/null @@ -1,170 +0,0 @@ -/* -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 cluster - -import ( - "fmt" - "strings" - - "github.com/golang/glog" - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/sets" - restclient "k8s.io/client-go/rest" - federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/pkg/api" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" -) - -const ( - UserAgentName = "Cluster-Controller" -) - -type ClusterClient struct { - kubeClient *clientset.Clientset -} - -func NewClusterClientSet(c *federation_v1beta1.Cluster) (*ClusterClient, error) { - clusterConfig, err := util.BuildClusterConfig(c) - if err != nil { - return nil, err - } - var clusterClientSet = ClusterClient{} - if clusterConfig != nil { - clusterClientSet.kubeClient = clientset.NewForConfigOrDie((restclient.AddUserAgent(clusterConfig, UserAgentName))) - if clusterClientSet.kubeClient == nil { - return nil, nil - } - } - return &clusterClientSet, nil -} - -// GetClusterHealthStatus gets the kubernetes cluster health status by requesting "/healthz" -func (self *ClusterClient) GetClusterHealthStatus() *federation_v1beta1.ClusterStatus { - clusterStatus := federation_v1beta1.ClusterStatus{} - currentTime := metav1.Now() - newClusterReadyCondition := federation_v1beta1.ClusterCondition{ - Type: federation_v1beta1.ClusterReady, - Status: v1.ConditionTrue, - Reason: "ClusterReady", - Message: "/healthz responded with ok", - LastProbeTime: currentTime, - LastTransitionTime: currentTime, - } - newClusterNotReadyCondition := federation_v1beta1.ClusterCondition{ - Type: federation_v1beta1.ClusterReady, - Status: v1.ConditionFalse, - Reason: "ClusterNotReady", - Message: "/healthz responded without ok", - LastProbeTime: currentTime, - LastTransitionTime: currentTime, - } - newNodeOfflineCondition := federation_v1beta1.ClusterCondition{ - Type: federation_v1beta1.ClusterOffline, - Status: v1.ConditionTrue, - Reason: "ClusterNotReachable", - Message: "cluster is not reachable", - LastProbeTime: currentTime, - LastTransitionTime: currentTime, - } - newNodeNotOfflineCondition := federation_v1beta1.ClusterCondition{ - Type: federation_v1beta1.ClusterOffline, - Status: v1.ConditionFalse, - Reason: "ClusterReachable", - Message: "cluster is reachable", - LastProbeTime: currentTime, - LastTransitionTime: currentTime, - } - body, err := self.kubeClient.DiscoveryClient.RESTClient().Get().AbsPath("/healthz").Do().Raw() - if err != nil { - clusterStatus.Conditions = append(clusterStatus.Conditions, newNodeOfflineCondition) - } else { - if !strings.EqualFold(string(body), "ok") { - clusterStatus.Conditions = append(clusterStatus.Conditions, newClusterNotReadyCondition, newNodeNotOfflineCondition) - } else { - clusterStatus.Conditions = append(clusterStatus.Conditions, newClusterReadyCondition) - } - } - - zones, region, err := self.GetClusterZones() - if err != nil { - glog.Warningf("Failed to get zones and region for cluster with client %v: %v", self, err) - } else { - clusterStatus.Zones = zones - clusterStatus.Region = region - } - - return &clusterStatus -} - -// GetClusterZones gets the kubernetes cluster zones and region by inspecting labels on nodes in the cluster. -func (self *ClusterClient) GetClusterZones() (zones []string, region string, err error) { - return getZoneNames(self.kubeClient) -} - -// Find the name of the zone in which a Node is running -func getZoneNameForNode(node api.Node) (string, error) { - for key, value := range node.Labels { - if key == kubeletapis.LabelZoneFailureDomain { - return value, nil - } - } - return "", fmt.Errorf("Zone name for node %s not found. No label with key %s", - node.Name, kubeletapis.LabelZoneFailureDomain) -} - -// Find the name of the region in which a Node is running -func getRegionNameForNode(node api.Node) (string, error) { - for key, value := range node.Labels { - if key == kubeletapis.LabelZoneRegion { - return value, nil - } - } - return "", fmt.Errorf("Region name for node %s not found. No label with key %s", - node.Name, kubeletapis.LabelZoneRegion) -} - -// Find the names of all zones and the region in which we have nodes in this cluster. -func getZoneNames(client *clientset.Clientset) (zones []string, region string, err error) { - zoneNames := sets.NewString() - nodes, err := client.Core().Nodes().List(metav1.ListOptions{}) - if err != nil { - glog.Errorf("Failed to list nodes while getting zone names: %v", err) - return nil, "", err - } - for i, node := range nodes.Items { - // TODO: quinton-hoole make this more efficient. - // For non-multi-zone clusters the zone will - // be identical for all nodes, so we only need to look at one node - // For multi-zone clusters we know at build time - // which zones are included. Rather get this info from there, because it's cheaper. - zoneName, err := getZoneNameForNode(node) - if err != nil { - return nil, "", err - } - zoneNames.Insert(zoneName) - if i == 0 { - region, err = getRegionNameForNode(node) - if err != nil { - return nil, "", err - } - } - } - return zoneNames.List(), region, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/clustercontroller.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/clustercontroller.go deleted file mode 100644 index 6820a71e7..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/clustercontroller.go +++ /dev/null @@ -1,209 +0,0 @@ -/* -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 cluster - -import ( - "strings" - "sync" - "time" - - "github.com/golang/glog" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/cache" - federationv1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - clustercache "k8s.io/kubernetes/federation/client/cache" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/pkg/controller" -) - -type ClusterController struct { - // federationClient used to operate cluster - federationClient federationclientset.Interface - - // clusterMonitorPeriod is the period for updating status of cluster - clusterMonitorPeriod time.Duration - - mu sync.RWMutex - knownClusterSet sets.String - // clusterClusterStatusMap is a mapping of clusterName and cluster status of last sampling - clusterClusterStatusMap map[string]federationv1beta1.ClusterStatus - // clusterKubeClientMap is a mapping of clusterName and restclient - clusterKubeClientMap map[string]ClusterClient - - // cluster framework and store - clusterController cache.Controller - clusterStore clustercache.StoreToClusterLister -} - -// StartClusterController starts a new cluster controller -func StartClusterController(config *restclient.Config, stopChan <-chan struct{}, clusterMonitorPeriod time.Duration) { - restclient.AddUserAgent(config, "cluster-controller") - client := federationclientset.NewForConfigOrDie(config) - controller := newClusterController(client, clusterMonitorPeriod) - glog.Infof("Starting cluster controller") - controller.Run(stopChan) -} - -// newClusterController returns a new cluster controller -func newClusterController(federationClient federationclientset.Interface, clusterMonitorPeriod time.Duration) *ClusterController { - cc := &ClusterController{ - knownClusterSet: make(sets.String), - federationClient: federationClient, - clusterMonitorPeriod: clusterMonitorPeriod, - clusterClusterStatusMap: make(map[string]federationv1beta1.ClusterStatus), - clusterKubeClientMap: make(map[string]ClusterClient), - } - cc.clusterStore.Store, cc.clusterController = cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - return cc.federationClient.Federation().Clusters().List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return cc.federationClient.Federation().Clusters().Watch(options) - }, - }, - &federationv1beta1.Cluster{}, - controller.NoResyncPeriodFunc(), - cache.ResourceEventHandlerFuncs{ - DeleteFunc: cc.delFromClusterSet, - AddFunc: cc.addToClusterSet, - }, - ) - return cc -} - -// delFromClusterSet delete a cluster from clusterSet and -// delete the corresponding restclient from the map clusterKubeClientMap -func (cc *ClusterController) delFromClusterSet(obj interface{}) { - cc.mu.Lock() - defer cc.mu.Unlock() - cluster := obj.(*federationv1beta1.Cluster) - cc.delFromClusterSetByName(cluster.Name) -} - -// delFromClusterSetByName delete a cluster from clusterSet by name and -// delete the corresponding restclient from the map clusterKubeClientMap. -// Caller must make sure that they hold the mutex -func (cc *ClusterController) delFromClusterSetByName(clusterName string) { - glog.V(1).Infof("ClusterController observed a cluster deletion: %v", clusterName) - cc.knownClusterSet.Delete(clusterName) - delete(cc.clusterKubeClientMap, clusterName) - delete(cc.clusterClusterStatusMap, clusterName) -} - -func (cc *ClusterController) addToClusterSet(obj interface{}) { - cc.mu.Lock() - defer cc.mu.Unlock() - cluster := obj.(*federationv1beta1.Cluster) - cc.addToClusterSetWithoutLock(cluster) -} - -// addToClusterSetWithoutLock inserts the new cluster to clusterSet and create -// a corresponding restclient to map clusterKubeClientMap if the cluster is not -// known. Caller must make sure that they hold the mutex. -func (cc *ClusterController) addToClusterSetWithoutLock(cluster *federationv1beta1.Cluster) { - if cc.knownClusterSet.Has(cluster.Name) { - return - } - glog.V(1).Infof("ClusterController observed a new cluster: %v", cluster.Name) - cc.knownClusterSet.Insert(cluster.Name) - // create the restclient of cluster - restClient, err := NewClusterClientSet(cluster) - if err != nil || restClient == nil { - glog.Errorf("Failed to create corresponding restclient of kubernetes cluster: %v", err) - return - } - cc.clusterKubeClientMap[cluster.Name] = *restClient -} - -// Run begins watching and syncing. -func (cc *ClusterController) Run(stopChan <-chan struct{}) { - defer utilruntime.HandleCrash() - go cc.clusterController.Run(stopChan) - // monitor cluster status periodically, in phase 1 we just get the health state from "/healthz" - go wait.Until(func() { - if err := cc.updateClusterStatus(); err != nil { - glog.Errorf("Error monitoring cluster status: %v", err) - } - }, cc.clusterMonitorPeriod, stopChan) -} - -// updateClusterStatus checks cluster status and get the metrics from cluster's restapi -func (cc *ClusterController) updateClusterStatus() error { - clusters, err := cc.federationClient.Federation().Clusters().List(metav1.ListOptions{}) - if err != nil { - return err - } - - for _, cluster := range clusters.Items { - cc.mu.RLock() - // skip updating status of the cluster which is not yet added to knownClusterSet. - if !cc.knownClusterSet.Has(cluster.Name) { - cc.mu.RUnlock() - continue - } - clusterClient, clientFound := cc.clusterKubeClientMap[cluster.Name] - clusterStatusOld, statusFound := cc.clusterClusterStatusMap[cluster.Name] - cc.mu.RUnlock() - - if !clientFound { - glog.Warningf("Failed to get client for cluster %s", cluster.Name) - continue - } - clusterStatusNew := clusterClient.GetClusterHealthStatus() - if !statusFound { - glog.Infof("There is no status stored for cluster: %v before", cluster.Name) - } else { - hasTransition := false - if len(clusterStatusNew.Conditions) != len(clusterStatusOld.Conditions) { - hasTransition = true - } else { - for i := 0; i < len(clusterStatusNew.Conditions); i++ { - if !(strings.EqualFold(string(clusterStatusNew.Conditions[i].Type), string(clusterStatusOld.Conditions[i].Type)) && - strings.EqualFold(string(clusterStatusNew.Conditions[i].Status), string(clusterStatusOld.Conditions[i].Status))) { - hasTransition = true - break - } - } - } - - if !hasTransition { - for j := 0; j < len(clusterStatusNew.Conditions); j++ { - clusterStatusNew.Conditions[j].LastTransitionTime = clusterStatusOld.Conditions[j].LastTransitionTime - } - } - } - - cc.mu.Lock() - cc.clusterClusterStatusMap[cluster.Name] = *clusterStatusNew - cc.mu.Unlock() - cluster.Status = *clusterStatusNew - cluster, err := cc.federationClient.Federation().Clusters().UpdateStatus(&cluster) - if err != nil { - glog.Warningf("Failed to update the status of cluster: %v ,error is : %v", cluster.Name, err) - // Don't return err here, as we want to continue processing remaining clusters. - continue - } - } - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/clustercontroller_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/clustercontroller_test.go deleted file mode 100644 index 8ae0acc02..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/clustercontroller_test.go +++ /dev/null @@ -1,173 +0,0 @@ -/* -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 cluster - -import ( - "encoding/json" - "fmt" - "net/http" - "net/http/httptest" - "testing" - "time" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/uuid" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - federationv1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/pkg/api/testapi" -) - -func newCluster(clusterName string, serverUrl string) *federationv1beta1.Cluster { - cluster := federationv1beta1.Cluster{ - TypeMeta: metav1.TypeMeta{APIVersion: testapi.Federation.GroupVersion().String()}, - ObjectMeta: metav1.ObjectMeta{ - UID: uuid.NewUUID(), - Name: clusterName, - }, - Spec: federationv1beta1.ClusterSpec{ - ServerAddressByClientCIDRs: []federationv1beta1.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: serverUrl, - }, - }, - }, - } - return &cluster -} - -func newClusterList(cluster *federationv1beta1.Cluster) *federationv1beta1.ClusterList { - clusterList := federationv1beta1.ClusterList{ - TypeMeta: metav1.TypeMeta{APIVersion: testapi.Federation.GroupVersion().String()}, - ListMeta: metav1.ListMeta{ - SelfLink: "foobar", - }, - Items: []federationv1beta1.Cluster{}, - } - clusterList.Items = append(clusterList.Items, *cluster) - return &clusterList -} - -// init a fake http handler, simulate a federation apiserver, response the "DELETE" "PUT" "GET" "UPDATE" -// when "canBeGotten" is false, means that user can not get the cluster cluster from apiserver -func createHttptestFakeHandlerForFederation(clusterList *federationv1beta1.ClusterList, canBeGotten bool) *http.HandlerFunc { - fakeHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - clusterListString, _ := json.Marshal(*clusterList) - w.Header().Set("Content-Type", "application/json") - switch r.Method { - case "PUT": - fmt.Fprintln(w, string(clusterListString)) - case "GET": - if canBeGotten { - fmt.Fprintln(w, string(clusterListString)) - } else { - fmt.Fprintln(w, "") - } - default: - fmt.Fprintln(w, "") - } - }) - return &fakeHandler -} - -// init a fake http handler, simulate a cluster apiserver, response the "/healthz" -// when "canBeGotten" is false, means that user can not get response from apiserver -func createHttptestFakeHandlerForCluster(canBeGotten bool) *http.HandlerFunc { - fakeHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "application/json") - switch r.Method { - case "GET": - if canBeGotten { - fmt.Fprintln(w, "ok") - } else { - w.WriteHeader(http.StatusNotFound) - } - default: - fmt.Fprintln(w, "") - } - }) - return &fakeHandler -} - -func TestUpdateClusterStatusOK(t *testing.T) { - clusterName := "foobarCluster" - // create dummy httpserver - testClusterServer := httptest.NewServer(createHttptestFakeHandlerForCluster(true)) - defer testClusterServer.Close() - federationCluster := newCluster(clusterName, testClusterServer.URL) - federationClusterList := newClusterList(federationCluster) - - testFederationServer := httptest.NewServer(createHttptestFakeHandlerForFederation(federationClusterList, true)) - defer testFederationServer.Close() - - restClientCfg, err := clientcmd.BuildConfigFromFlags(testFederationServer.URL, "") - if err != nil { - t.Errorf("Failed to build client config") - } - federationClientSet := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "cluster-controller")) - - manager := newClusterController(federationClientSet, 5) - manager.addToClusterSet(federationCluster) - err = manager.updateClusterStatus() - if err != nil { - t.Errorf("Failed to Update Cluster Status: %v", err) - } - clusterStatus, found := manager.clusterClusterStatusMap[clusterName] - if !found { - t.Errorf("Failed to Update Cluster Status") - } else { - if (clusterStatus.Conditions[1].Status != v1.ConditionFalse) || (clusterStatus.Conditions[1].Type != federationv1beta1.ClusterOffline) { - t.Errorf("Failed to Update Cluster Status") - } - } -} - -// Test races between informer's updates and routine updates of cluster status -// Issue https://github.com/kubernetes/kubernetes/issues/49958 -func TestUpdateClusterRace(t *testing.T) { - clusterName := "foobarCluster" - // create dummy httpserver - testClusterServer := httptest.NewServer(createHttptestFakeHandlerForCluster(true)) - defer testClusterServer.Close() - federationCluster := newCluster(clusterName, testClusterServer.URL) - federationClusterList := newClusterList(federationCluster) - - testFederationServer := httptest.NewServer(createHttptestFakeHandlerForFederation(federationClusterList, true)) - defer testFederationServer.Close() - - restClientCfg, err := clientcmd.BuildConfigFromFlags(testFederationServer.URL, "") - if err != nil { - t.Errorf("Failed to build client config") - } - federationClientSet := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "cluster-controller")) - - manager := newClusterController(federationClientSet, 1*time.Millisecond) - - stop := make(chan struct{}) - manager.Run(stop) - - // try to trigger the race in UpdateClusterStatus - for i := 0; i < 10; i++ { - manager.addToClusterSet(federationCluster) - manager.delFromClusterSet(federationCluster) - } - - close(stop) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/doc.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/doc.go deleted file mode 100644 index d311db094..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/cluster/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -/* -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 cluster contains code for syncing cluster -package cluster // import "k8s.io/kubernetes/federation/pkg/federation-controller/cluster" diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/BUILD deleted file mode 100644 index 8c094ac5b..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/BUILD +++ /dev/null @@ -1,76 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["ingress_controller.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/ingress", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/clusterselector:go_default_library", - "//federation/pkg/federation-controller/util/deletionhelper:go_default_library", - "//federation/pkg/federation-controller/util/eventsink:go_default_library", - "//pkg/api:go_default_library", - "//pkg/controller:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1: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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema: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:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["ingress_controller_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/ingress", - library = ":go_default_library", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/deletionhelper:go_default_library", - "//federation/pkg/federation-controller/util/finalizers:go_default_library", - "//federation/pkg/federation-controller/util/test:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1: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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/fake: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"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/ingress_controller.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/ingress_controller.go deleted file mode 100644 index e7a8680b5..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/ingress_controller.go +++ /dev/null @@ -1,889 +0,0 @@ -/* -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 ingress - -import ( - "crypto/md5" - "fmt" - "sync" - "time" - - "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/cache" - "k8s.io/client-go/tools/record" - "k8s.io/client-go/util/flowcontrol" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/controller" - - "github.com/golang/glog" -) - -const ( - // Special cluster name which denotes all clusters - only used internally. It's not a valid cluster name, so effectively reserved. - allClustersKey = ".ALL_CLUSTERS" - // TODO: Get the constants below directly from the Kubernetes Ingress Controller constants - but thats in a separate repo - staticIPNameKeyWritable = "kubernetes.io/ingress.global-static-ip-name" // The writable annotation on Ingress to tell the controller to use a specific, named, static IP - staticIPNameKeyReadonly = "ingress.kubernetes.io/static-ip" // The readonly key via which the cluster's Ingress Controller communicates which static IP it used. If staticIPNameKeyWritable above is specified, it is used. - uidAnnotationKey = "kubernetes.io/ingress.uid" // The annotation on federation clusters, where we store the ingress UID - uidConfigMapName = "ingress-uid" // Name of the config-map and key the ingress controller stores its uid in. - uidConfigMapNamespace = "kube-system" - uidKey = "uid" - providerUidKey = "provider-uid" - // Annotation on the ingress in federation control plane that is used to keep - // track of the first cluster in which we create ingress. - // We wait for ingress to be created in this cluster before creating it any - // other cluster. - firstClusterAnnotation = "ingress.federation.kubernetes.io/first-cluster" - ControllerName = "ingresses" - UserAgentName = "federation-ingresses-controller" -) - -var ( - RequiredResources = []schema.GroupVersionResource{extensionsv1beta1.SchemeGroupVersion.WithResource("ingresses")} -) - -type IngressController struct { - sync.Mutex // Lock used for leader election - // For triggering single ingress reconciliation. This is used when there is an - // add/update/delete operation on an ingress in either federated API server or - // in some member of the federation. - ingressDeliverer *util.DelayingDeliverer - - // For triggering reconciliation of cluster ingress controller configmap and - // all ingresses. This is used when a new cluster becomes available. - clusterDeliverer *util.DelayingDeliverer - - // For triggering reconciliation of cluster ingress controller configmap. - // This is used when a configmap is updated in the cluster. - configMapDeliverer *util.DelayingDeliverer - - // Contains ingresses present in members of federation. - ingressFederatedInformer util.FederatedInformer - // Contains ingress controller configmaps present in members of federation. - configMapFederatedInformer util.FederatedInformer - // For updating ingresses in members of federation. - federatedIngressUpdater util.FederatedUpdater - // For updating configmaps in members of federation. - federatedConfigMapUpdater util.FederatedUpdater - // Definitions of ingresses that should be federated. - ingressInformerStore cache.Store - // Informer controller for ingresses that should be federated. - ingressInformerController cache.Controller - - // Client to federated api server. - federatedApiClient federationclientset.Interface - - // Backoff manager for ingresses - ingressBackoff *flowcontrol.Backoff - // Backoff manager for configmaps - configMapBackoff *flowcontrol.Backoff - - // For events - eventRecorder record.EventRecorder - - deletionHelper *deletionhelper.DeletionHelper - - ingressReviewDelay time.Duration - configMapReviewDelay time.Duration - clusterAvailableDelay time.Duration - smallDelay time.Duration - updateTimeout time.Duration -} - -// NewIngressController returns a new ingress controller -func NewIngressController(client federationclientset.Interface) *IngressController { - glog.V(4).Infof("->NewIngressController V(4)") - broadcaster := record.NewBroadcaster() - broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(client)) - recorder := broadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: UserAgentName}) - ic := &IngressController{ - federatedApiClient: client, - ingressReviewDelay: time.Second * 10, - configMapReviewDelay: time.Second * 10, - clusterAvailableDelay: time.Second * 20, - smallDelay: time.Second * 3, - updateTimeout: time.Second * 30, - ingressBackoff: flowcontrol.NewBackOff(5*time.Second, time.Minute), - eventRecorder: recorder, - configMapBackoff: flowcontrol.NewBackOff(5*time.Second, time.Minute), - } - - // Build deliverers for triggering reconciliations. - ic.ingressDeliverer = util.NewDelayingDeliverer() - ic.clusterDeliverer = util.NewDelayingDeliverer() - ic.configMapDeliverer = util.NewDelayingDeliverer() - - // Start informer in federated API servers on ingresses that should be federated. - ic.ingressInformerStore, ic.ingressInformerController = cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - return client.Extensions().Ingresses(metav1.NamespaceAll).List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return client.Extensions().Ingresses(metav1.NamespaceAll).Watch(options) - }, - }, - &extensionsv1beta1.Ingress{}, - controller.NoResyncPeriodFunc(), - util.NewTriggerOnAllChanges( - func(obj pkgruntime.Object) { - ic.deliverIngressObj(obj, 0, false) - }, - )) - - // Federated informer on ingresses in members of federation. - ic.ingressFederatedInformer = util.NewFederatedInformer( - client, - func(cluster *federationapi.Cluster, targetClient kubeclientset.Interface) (cache.Store, cache.Controller) { - return cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - return targetClient.Extensions().Ingresses(metav1.NamespaceAll).List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return targetClient.Extensions().Ingresses(metav1.NamespaceAll).Watch(options) - }, - }, - &extensionsv1beta1.Ingress{}, - controller.NoResyncPeriodFunc(), - // Trigger reconciliation whenever something in federated cluster is changed. In most cases it - // would be just confirmation that some ingress operation succeeded. - util.NewTriggerOnAllChanges( - func(obj pkgruntime.Object) { - ic.deliverIngressObj(obj, ic.ingressReviewDelay, false) - }, - )) - }, - - &util.ClusterLifecycleHandlerFuncs{ - ClusterAvailable: func(cluster *federationapi.Cluster) { - // When new cluster becomes available process all the ingresses again, and configure it's ingress controller's configmap with the correct UID - ic.clusterDeliverer.DeliverAfter(cluster.Name, cluster, ic.clusterAvailableDelay) - }, - }, - ) - - // Federated informer on configmaps for ingress controllers in members of the federation. - ic.configMapFederatedInformer = util.NewFederatedInformer( - client, - func(cluster *federationapi.Cluster, targetClient kubeclientset.Interface) (cache.Store, cache.Controller) { - glog.V(4).Infof("Returning new informer for cluster %q", cluster.Name) - return cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - if targetClient == nil { - glog.Errorf("Internal error: targetClient is nil") - } - return targetClient.Core().ConfigMaps(uidConfigMapNamespace).List(options) // we only want to list one by name - unfortunately Kubernetes don't have a selector for that. - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if targetClient == nil { - glog.Errorf("Internal error: targetClient is nil") - } - return targetClient.Core().ConfigMaps(uidConfigMapNamespace).Watch(options) // as above - }, - }, - &v1.ConfigMap{}, - controller.NoResyncPeriodFunc(), - // Trigger reconciliation whenever the ingress controller's configmap in a federated cluster is changed. In most cases it - // would be just confirmation that the configmap for the ingress controller is correct. - util.NewTriggerOnAllChanges( - func(obj pkgruntime.Object) { - ic.deliverConfigMapObj(cluster.Name, obj, ic.configMapReviewDelay, false) - }, - )) - }, - - &util.ClusterLifecycleHandlerFuncs{ - ClusterAvailable: func(cluster *federationapi.Cluster) { - ic.clusterDeliverer.DeliverAfter(cluster.Name, cluster, ic.clusterAvailableDelay) - }, - }, - ) - - // Federated ingress updater along with Create/Update/Delete operations. - ic.federatedIngressUpdater = util.NewFederatedUpdater(ic.ingressFederatedInformer, "ingress", ic.updateTimeout, ic.eventRecorder, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - ingress := obj.(*extensionsv1beta1.Ingress) - glog.V(4).Infof("Attempting to create Ingress: %v", ingress) - _, err := client.Extensions().Ingresses(ingress.Namespace).Create(ingress) - if err != nil { - glog.Errorf("Error creating ingress %q: %v", types.NamespacedName{Name: ingress.Name, Namespace: ingress.Namespace}, err) - } else { - glog.V(4).Infof("Successfully created ingress %q", types.NamespacedName{Name: ingress.Name, Namespace: ingress.Namespace}) - } - return err - }, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - ingress := obj.(*extensionsv1beta1.Ingress) - glog.V(4).Infof("Attempting to update Ingress: %v", ingress) - _, err := client.Extensions().Ingresses(ingress.Namespace).Update(ingress) - if err != nil { - glog.V(4).Infof("Failed to update Ingress: %v", err) - } else { - glog.V(4).Infof("Successfully updated Ingress: %q", types.NamespacedName{Name: ingress.Name, Namespace: ingress.Namespace}) - } - return err - }, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - ingress := obj.(*extensionsv1beta1.Ingress) - glog.V(4).Infof("Attempting to delete Ingress: %v", ingress) - orphanDependents := false - err := client.Extensions().Ingresses(ingress.Namespace).Delete(ingress.Name, &metav1.DeleteOptions{OrphanDependents: &orphanDependents}) - return err - }) - - // Federated configmap updater along with Create/Update/Delete operations. Only Update should ever be called. - ic.federatedConfigMapUpdater = util.NewFederatedUpdater(ic.configMapFederatedInformer, "configmap", ic.updateTimeout, ic.eventRecorder, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - configMap := obj.(*v1.ConfigMap) - configMapName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace} - glog.Errorf("Internal error: Incorrectly attempting to create ConfigMap: %q", configMapName) - _, err := client.Core().ConfigMaps(configMap.Namespace).Create(configMap) - return err - }, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - configMap := obj.(*v1.ConfigMap) - configMapName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace} - glog.V(4).Infof("Attempting to update ConfigMap: %v", configMap) - _, err := client.Core().ConfigMaps(configMap.Namespace).Update(configMap) - if err == nil { - glog.V(4).Infof("Successfully updated ConfigMap %q %v", configMapName, configMap) - } else { - glog.V(4).Infof("Failed to update ConfigMap %q: %v", configMapName, err) - } - return err - }, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - configMap := obj.(*v1.ConfigMap) - configMapName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace} - glog.Errorf("Internal error: Incorrectly attempting to delete ConfigMap: %q", configMapName) - err := client.Core().ConfigMaps(configMap.Namespace).Delete(configMap.Name, &metav1.DeleteOptions{}) - return err - }) - - ic.deletionHelper = deletionhelper.NewDeletionHelper( - ic.updateIngress, - // objNameFunc - func(obj pkgruntime.Object) string { - ingress := obj.(*extensionsv1beta1.Ingress) - return fmt.Sprintf("%s/%s", ingress.Namespace, ingress.Name) - }, - ic.ingressFederatedInformer, - ic.federatedIngressUpdater, - ) - return ic -} - -// Sends the given updated object to apiserver. -// Assumes that the given object is an ingress. -func (ic *IngressController) updateIngress(obj pkgruntime.Object) (pkgruntime.Object, error) { - ingress := obj.(*extensionsv1beta1.Ingress) - return ic.federatedApiClient.Extensions().Ingresses(ingress.Namespace).Update(ingress) -} - -func (ic *IngressController) Run(stopChan <-chan struct{}) { - glog.Infof("Starting Ingress Controller") - go ic.ingressInformerController.Run(stopChan) - glog.Infof("... Starting Ingress Federated Informer") - ic.ingressFederatedInformer.Start() - glog.Infof("... Starting ConfigMap Federated Informer") - ic.configMapFederatedInformer.Start() - go func() { - <-stopChan - glog.Infof("Stopping Ingress Federated Informer") - ic.ingressFederatedInformer.Stop() - glog.Infof("Stopping ConfigMap Federated Informer") - ic.configMapFederatedInformer.Stop() - glog.Infof("Stopping ingress deliverer") - ic.ingressDeliverer.Stop() - glog.Infof("Stopping configmap deliverer") - ic.configMapDeliverer.Stop() - glog.Infof("Stopping cluster deliverer") - ic.clusterDeliverer.Stop() - }() - ic.ingressDeliverer.StartWithHandler(func(item *util.DelayingDelivererItem) { - ingress := item.Value.(types.NamespacedName) - glog.V(4).Infof("Ingress change delivered, reconciling: %v", ingress) - ic.reconcileIngress(ingress) - }) - ic.clusterDeliverer.StartWithHandler(func(item *util.DelayingDelivererItem) { - clusterName := item.Key - if clusterName != allClustersKey { - glog.V(4).Infof("Cluster change delivered for cluster %q, reconciling configmap and ingress for that cluster", clusterName) - } else { - glog.V(4).Infof("Cluster change delivered for all clusters, reconciling configmaps and ingresses for all clusters") - } - ic.reconcileIngressesOnClusterChange(clusterName) - ic.reconcileConfigMapForCluster(clusterName) - }) - ic.configMapDeliverer.StartWithHandler(func(item *util.DelayingDelivererItem) { - clusterName := item.Key - if clusterName != allClustersKey { - glog.V(4).Infof("ConfigMap change delivered for cluster %q, reconciling configmap for that cluster", clusterName) - } else { - glog.V(4).Infof("ConfigMap change delivered for all clusters, reconciling configmaps for all clusters") - } - ic.reconcileConfigMapForCluster(clusterName) - }) - - util.StartBackoffGC(ic.ingressBackoff, stopChan) - util.StartBackoffGC(ic.configMapBackoff, stopChan) -} - -func (ic *IngressController) deliverIngressObj(obj interface{}, delay time.Duration, failed bool) { - ingress := obj.(*extensionsv1beta1.Ingress) - ic.deliverIngress(types.NamespacedName{Namespace: ingress.Namespace, Name: ingress.Name}, delay, failed) -} - -func (ic *IngressController) deliverIngress(ingress types.NamespacedName, delay time.Duration, failed bool) { - glog.V(4).Infof("Delivering ingress: %s with delay: %v error: %v", ingress, delay, failed) - key := ingress.String() - if failed { - ic.ingressBackoff.Next(key, time.Now()) - delay = delay + ic.ingressBackoff.Get(key) - } else { - ic.ingressBackoff.Reset(key) - } - ic.ingressDeliverer.DeliverAfter(key, ingress, delay) -} - -func (ic *IngressController) deliverConfigMapObj(clusterName string, obj interface{}, delay time.Duration, failed bool) { - configMap := obj.(*v1.ConfigMap) - ic.deliverConfigMap(clusterName, types.NamespacedName{Namespace: configMap.Namespace, Name: configMap.Name}, delay, failed) -} - -func (ic *IngressController) deliverConfigMap(cluster string, configMap types.NamespacedName, delay time.Duration, failed bool) { - key := cluster - if failed { - ic.configMapBackoff.Next(key, time.Now()) - delay = delay + ic.configMapBackoff.Get(key) - } else { - ic.configMapBackoff.Reset(key) - } - glog.V(4).Infof("Delivering ConfigMap for cluster %q (delay %q): %s", cluster, delay, configMap) - ic.configMapDeliverer.DeliverAfter(key, configMap, delay) -} - -// Check whether all data stores are in sync. False is returned if any of the informer/stores is not yet -// synced with the corresponding api server. -func (ic *IngressController) isSynced() bool { - if !ic.ingressFederatedInformer.ClustersSynced() { - glog.V(2).Infof("Cluster list not synced for ingress federated informer") - return false - } - clusters, err := ic.ingressFederatedInformer.GetReadyClusters() - if err != nil { - glog.Errorf("Failed to get ready clusters for ingress federated informer: %v", err) - return false - } - if !ic.ingressFederatedInformer.GetTargetStore().ClustersSynced(clusters) { - glog.V(2).Infof("Target store not synced for ingress federated informer") - return false - } - if !ic.configMapFederatedInformer.ClustersSynced() { - glog.V(2).Infof("Cluster list not synced for config map federated informer") - return false - } - clusters, err = ic.configMapFederatedInformer.GetReadyClusters() - if err != nil { - glog.Errorf("Failed to get ready clusters for configmap federated informer: %v", err) - return false - } - if !ic.configMapFederatedInformer.GetTargetStore().ClustersSynced(clusters) { - glog.V(2).Infof("Target store not synced for configmap federated informer") - return false - } - glog.V(4).Infof("Cluster list is synced") - return true -} - -// The function triggers reconciliation of all federated ingresses. clusterName is the name of the cluster that changed -// but all ingresses in all clusters are reconciled -func (ic *IngressController) reconcileIngressesOnClusterChange(clusterName string) { - glog.V(4).Infof("Reconciling ingresses on cluster change for cluster %q", clusterName) - if !ic.isSynced() { - glog.V(4).Infof("Not synced, will try again later to reconcile ingresses.") - ic.clusterDeliverer.DeliverAfter(clusterName, nil, ic.clusterAvailableDelay) - } - ingressList := ic.ingressInformerStore.List() - if len(ingressList) <= 0 { - glog.V(4).Infof("No federated ingresses to reconcile.") - } - - for _, obj := range ingressList { - ingress := obj.(*extensionsv1beta1.Ingress) - nsName := types.NamespacedName{Name: ingress.Name, Namespace: ingress.Namespace} - glog.V(4).Infof("Delivering federated ingress %q for cluster %q", nsName, clusterName) - ic.deliverIngress(nsName, ic.smallDelay, false) - } -} - -/* - reconcileConfigMapForCluster ensures that the configmap for the ingress controller in the cluster has objectmeta.data.UID - consistent with all the other clusters in the federation. If clusterName == allClustersKey, then all available clusters - configmaps are reconciled. -*/ -func (ic *IngressController) reconcileConfigMapForCluster(clusterName string) { - glog.V(4).Infof("Reconciling ConfigMap for cluster(s) %q", clusterName) - - if !ic.isSynced() { - ic.configMapDeliverer.DeliverAfter(clusterName, nil, ic.clusterAvailableDelay) - return - } - - if clusterName == allClustersKey { - clusters, err := ic.configMapFederatedInformer.GetReadyClusters() - if err != nil { - glog.Errorf("Failed to get ready clusters. redelivering %q: %v", clusterName, err) - ic.configMapDeliverer.DeliverAfter(clusterName, nil, ic.clusterAvailableDelay) - return - } - for _, cluster := range clusters { - glog.V(4).Infof("Delivering ConfigMap for cluster(s) %q", clusterName) - ic.configMapDeliverer.DeliverAt(cluster.Name, nil, time.Now()) - } - return - } else { - cluster, found, err := ic.configMapFederatedInformer.GetReadyCluster(clusterName) - if err != nil || !found { - glog.Errorf("Internal error: Cluster %q queued for configmap reconciliation, but not found. Will try again later: error = %v", clusterName, err) - ic.configMapDeliverer.DeliverAfter(clusterName, nil, ic.clusterAvailableDelay) - return - } - uidConfigMapNamespacedName := types.NamespacedName{Name: uidConfigMapName, Namespace: uidConfigMapNamespace} - configMapObj, found, err := ic.configMapFederatedInformer.GetTargetStore().GetByKey(cluster.Name, uidConfigMapNamespacedName.String()) - if !found || err != nil { - logmsg := fmt.Sprintf("Failed to get ConfigMap %q for cluster %q. Will try again later", uidConfigMapNamespacedName, cluster.Name) - if err != nil { - logmsg = fmt.Sprintf("%v: %v", logmsg, err) - } - if len(ic.ingressInformerStore.List()) > 0 { // Error-level if ingresses are active, Info-level otherwise. - glog.Errorf(logmsg) - } else { - glog.V(4).Infof(logmsg) - } - ic.configMapDeliverer.DeliverAfter(clusterName, nil, ic.configMapReviewDelay) - return - } - glog.V(4).Infof("Successfully got ConfigMap %q for cluster %q.", uidConfigMapNamespacedName, clusterName) - configMap, ok := configMapObj.(*v1.ConfigMap) - if !ok { - glog.Errorf("Internal error: The object in the ConfigMap cache for cluster %q configmap %q is not a *ConfigMap", cluster.Name, uidConfigMapNamespacedName) - return - } - ic.reconcileConfigMap(cluster, configMap) - return - } -} - -// getProviderUid returns a provider ID based on the provided clusterName. -func getProviderUid(clusterName string) string { - hashedName := md5.Sum([]byte(clusterName)) - return fmt.Sprintf("%x", hashedName[:8]) -} - -/* - reconcileConfigMap ensures that the configmap in the cluster has a UID - consistent with the federation cluster's associated annotation. - - 1. If the UID in the configmap differs from the UID stored in the cluster's annotation, the configmap is updated. - 2. If the UID annotation is missing from the cluster, the cluster's UID annotation is updated to be consistent - with the master cluster. - 3. If there is no elected master cluster, this cluster attempts to elect itself as the master cluster. - - In cases 2 and 3, the configmaps will be updated in the next cycle, triggered by the federation cluster update(s) - -*/ -func (ic *IngressController) reconcileConfigMap(cluster *federationapi.Cluster, configMap *v1.ConfigMap) { - ic.Lock() // TODO: Reduce the scope of this master election lock. - defer ic.Unlock() - - configMapNsName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace} - glog.V(4).Infof("Reconciling ConfigMap %q in cluster %q", configMapNsName, cluster.Name) - - clusterIngressUID, clusterIngressUIDExists := cluster.ObjectMeta.Annotations[uidAnnotationKey] - configMapUID, ok := configMap.Data[uidKey] - - if !ok { - glog.Errorf("Warning: ConfigMap %q in cluster %q does not contain data key %q. Therefore it cannot become the master.", configMapNsName, cluster.Name, uidKey) - } - - if !clusterIngressUIDExists || clusterIngressUID == "" { - glog.V(4).Infof("Cluster %q is the only master", cluster.Name) - // Second argument is the fallback, in case this is the only cluster, in which case it becomes the master - var err error - if clusterIngressUID, err = ic.updateClusterIngressUIDToMasters(cluster, configMapUID); err != nil { - return - } - // If we successfully update the Cluster Object, fallthrough and update the configMap. - } - - // Figure out providerUid. - providerUid := getProviderUid(cluster.Name) - configMapProviderUid := configMap.Data[providerUidKey] - - if configMapUID == clusterIngressUID && configMapProviderUid == providerUid { - glog.V(4).Infof("Ingress configMap update is not required: UID %q and ProviderUid %q are equal", configMapUID, providerUid) - } else { - if configMapUID != clusterIngressUID { - glog.V(4).Infof("Ingress configMap update is required for UID: configMapUID %q not equal to clusterIngressUID %q", configMapUID, clusterIngressUID) - } else if configMapProviderUid != providerUid { - glog.V(4).Infof("Ingress configMap update is required: configMapProviderUid %q not equal to providerUid %q", configMapProviderUid, providerUid) - } - configMap.Data[uidKey] = clusterIngressUID - configMap.Data[providerUidKey] = providerUid - operations := []util.FederatedOperation{{ - Type: util.OperationTypeUpdate, - Obj: configMap, - ClusterName: cluster.Name, - Key: configMapNsName.String(), - }} - glog.V(4).Infof("Calling federatedConfigMapUpdater.Update() - operations: %v", operations) - err := ic.federatedConfigMapUpdater.Update(operations) - if err != nil { - glog.Errorf("Failed to execute update of ConfigMap %q on cluster %q: %v", configMapNsName, cluster.Name, err) - ic.configMapDeliverer.DeliverAfter(cluster.Name, nil, ic.configMapReviewDelay) - } - } -} - -/* - getMasterCluster returns the cluster which is the elected master w.r.t. ingress UID, and it's ingress UID. - If there is no elected master cluster, an error is returned. - All other clusters must use the ingress UID of the elected master. -*/ -func (ic *IngressController) getMasterCluster() (master *federationapi.Cluster, ingressUID string, err error) { - clusters, err := ic.configMapFederatedInformer.GetReadyClusters() - if err != nil { - glog.Errorf("Failed to get cluster list: %v", err) - return nil, "", err - } - - for _, c := range clusters { - UID, exists := c.ObjectMeta.Annotations[uidAnnotationKey] - if exists && UID != "" { // Found the master cluster - glog.V(4).Infof("Found master cluster %q with annotation %q=%q", c.Name, uidAnnotationKey, UID) - return c, UID, nil - } - } - return nil, "", fmt.Errorf("Failed to find master cluster with annotation %q", uidAnnotationKey) -} - -/* - updateClusterIngressUIDToMasters takes the ingress UID annotation on the master cluster and applies it to cluster. - If there is no master cluster, then fallbackUID is used (and hence this cluster becomes the master). -*/ -func (ic *IngressController) updateClusterIngressUIDToMasters(cluster *federationapi.Cluster, fallbackUID string) (string, error) { - masterCluster, masterUID, err := ic.getMasterCluster() - cluster = cluster.DeepCopy() // Make a clone so that we don't clobber our input param - if err == nil { - if masterCluster.Name != cluster.Name { // We're not the master, need to get in sync - if cluster.ObjectMeta.Annotations == nil { - cluster.ObjectMeta.Annotations = map[string]string{} - } - cluster.ObjectMeta.Annotations[uidAnnotationKey] = masterUID - if _, err = ic.federatedApiClient.Federation().Clusters().Update(cluster); err != nil { - glog.Errorf("Failed to add master ingress UID annotation (%q = %q) from master cluster %q to cluster %q, will try again later: %v", uidAnnotationKey, masterUID, masterCluster.Name, cluster.Name, err) - return "", err - } else { - glog.V(4).Infof("Successfully added master ingress UID annotation (%q = %q) from master cluster %q to cluster %q.", uidAnnotationKey, masterUID, masterCluster.Name, cluster.Name) - return masterUID, nil - } - } else { - glog.V(4).Infof("Cluster %q with ingress UID is already the master with annotation (%q = %q), no need to update.", cluster.Name, uidAnnotationKey, cluster.ObjectMeta.Annotations[uidAnnotationKey]) - return cluster.ObjectMeta.Annotations[uidAnnotationKey], nil - } - } else { - glog.V(2).Infof("No master cluster found to source an ingress UID from for cluster %q.", cluster.Name) - if fallbackUID != "" { - glog.V(2).Infof("Attempting to elect new master cluster %q with ingress UID %q = %q", cluster.Name, uidAnnotationKey, fallbackUID) - if cluster.ObjectMeta.Annotations == nil { - cluster.ObjectMeta.Annotations = map[string]string{} - } - cluster.ObjectMeta.Annotations[uidAnnotationKey] = fallbackUID - if _, err = ic.federatedApiClient.Federation().Clusters().Update(cluster); err != nil { - glog.Errorf("Failed to add ingress UID annotation (%q = %q) to cluster %q. No master elected. Will try again later: %v", uidAnnotationKey, fallbackUID, cluster.Name, err) - return "", err - } else { - glog.V(4).Infof("Successfully added ingress UID annotation (%q = %q) to cluster %q.", uidAnnotationKey, fallbackUID, cluster.Name) - return fallbackUID, nil - } - } else { - glog.Errorf("No master cluster exists, and fallbackUID for cluster %q is nil. This probably means that no clusters have an ingress controller configmap with key %q. Federated Ingress currently supports clusters running Google Loadbalancer Controller (\"GLBC\")", cluster.Name, uidKey) - return "", err - } - } -} - -func (ic *IngressController) isClusterReady(clusterName string) bool { - cluster, isReady, err := ic.ingressFederatedInformer.GetReadyCluster(clusterName) - return isReady && err == nil && cluster != nil -} - -// updateAnnotationOnIngress updates the annotation with the given key on the given federated ingress. -// Queues the ingress for resync when done. -func (ic *IngressController) updateAnnotationOnIngress(ingress *extensionsv1beta1.Ingress, key, value string) { - if ingress.ObjectMeta.Annotations == nil { - ingress.ObjectMeta.Annotations = make(map[string]string) - } - ingress.ObjectMeta.Annotations[key] = value - ingressName := types.NamespacedName{Name: ingress.Name, Namespace: ingress.Namespace} - glog.V(4).Infof("Attempting to update annotation %s:%s on base federated ingress: %v", key, value, ingressName) - if updatedFedIngress, err := ic.federatedApiClient.Extensions().Ingresses(ingress.Namespace).Update(ingress); err != nil { - glog.Errorf("Failed to update annotation %s:%s on federated ingress %q, will try again later: %v", key, value, ingressName, err) - ic.deliverIngress(ingressName, ic.ingressReviewDelay, true) - return - } else { - glog.V(4).Infof("Successfully updated annotation %s:%s on federated ingress %q, after update: %q", key, value, ingress, updatedFedIngress) - ic.deliverIngress(ingressName, ic.smallDelay, false) - return - } -} - -func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) { - glog.V(4).Infof("Reconciling ingress %q for all clusters", ingress) - if !ic.isSynced() { - ic.deliverIngress(ingress, ic.clusterAvailableDelay, false) - return - } - - key := ingress.String() - baseIngressObjFromStore, exist, err := ic.ingressInformerStore.GetByKey(key) - if err != nil { - glog.Errorf("Failed to query main ingress store for %v: %v", ingress, err) - ic.deliverIngress(ingress, 0, true) - return - } - if !exist { - // Not federated ingress, ignoring. - glog.V(4).Infof("Ingress %q is not federated. Ignoring.", ingress) - return - } - baseIngress := baseIngressObjFromStore.(*extensionsv1beta1.Ingress).DeepCopy() - glog.V(4).Infof("Base (federated) ingress: %v", baseIngress) - - if baseIngress.DeletionTimestamp != nil { - if err := ic.delete(baseIngress); err != nil { - glog.Errorf("Failed to delete %s: %v", ingress, err) - ic.eventRecorder.Eventf(baseIngress, api.EventTypeWarning, "DeleteFailed", - "Ingress delete failed: %v", err) - ic.deliverIngress(ingress, 0, true) - } - return - } - - glog.V(3).Infof("Ensuring delete object from underlying clusters finalizer for ingress: %s", - baseIngress.Name) - // Add the required finalizers before creating a ingress in underlying clusters. - updatedIngressObj, err := ic.deletionHelper.EnsureFinalizers(baseIngress) - if err != nil { - glog.Errorf("Failed to ensure delete object from underlying clusters finalizer in ingress %s: %v", - baseIngress.Name, err) - ic.deliverIngress(ingress, 0, true) - return - } - baseIngress = updatedIngressObj.(*extensionsv1beta1.Ingress) - - glog.V(3).Infof("Syncing ingress %s in underlying clusters", baseIngress.Name) - - clusters, err := ic.ingressFederatedInformer.GetReadyClusters() - if err != nil { - glog.Errorf("Failed to get cluster list: %v", err) - ic.deliverIngress(ingress, ic.clusterAvailableDelay, false) - return - } else { - glog.V(4).Infof("Found %d ready clusters across which to reconcile ingress %q", len(clusters), ingress) - } - - operations := make([]util.FederatedOperation, 0) - - for _, cluster := range clusters { - baseIPName, baseIPAnnotationExists := baseIngress.ObjectMeta.Annotations[staticIPNameKeyWritable] - firstClusterName, firstClusterExists := baseIngress.ObjectMeta.Annotations[firstClusterAnnotation] - clusterIngressObj, clusterIngressFound, err := ic.ingressFederatedInformer.GetTargetStore().GetByKey(cluster.Name, key) - if err != nil { - glog.Errorf("Failed to get cached ingress %s for cluster %s, will retry: %v", ingress, cluster.Name, err) - ic.deliverIngress(ingress, 0, true) - return - } - desiredIngress := &extensionsv1beta1.Ingress{} - desiredIngress.ObjectMeta = *baseIngress.ObjectMeta.DeepCopy() - desiredIngress.Spec = *desiredIngress.Spec.DeepCopy() - - glog.V(4).Infof("Desired Ingress: %v", desiredIngress) - - send, err := clusterselector.SendToCluster(cluster.Labels, desiredIngress.ObjectMeta.Annotations) - if err != nil { - glog.Errorf("Error processing ClusterSelector cluster: %s for Ingress map: %s error: %s", cluster.Name, key, err.Error()) - return - } - - switch { - case !clusterIngressFound && send: - glog.V(4).Infof("No existing Ingress %s in cluster %s - checking if appropriate to queue a create operation", ingress, cluster.Name) - // We can't supply server-created fields when creating a new object. - desiredIngress.ObjectMeta = util.DeepCopyRelevantObjectMeta(baseIngress.ObjectMeta) - - // We always first create an ingress in the first available cluster. Once that ingress - // has been created and allocated a global IP (visible via an annotation), - // we record that annotation on the federated ingress, and create all other cluster - // ingresses with that same global IP. - // Note: If the first cluster becomes (e.g. temporarily) unavailable, the - // second cluster will become the first cluster, but eventually all ingresses - // will share the single global IP recorded in the annotation of the - // federated ingress. - haveFirstCluster := firstClusterExists && firstClusterName != "" && ic.isClusterReady(firstClusterName) - if !haveFirstCluster { - glog.V(4).Infof("No cluster has been chosen as the first cluster. Electing cluster %s as the first cluster to create ingress in", cluster.Name) - ic.updateAnnotationOnIngress(baseIngress, firstClusterAnnotation, cluster.Name) - return - } - if baseIPAnnotationExists || firstClusterName == cluster.Name { - if baseIPAnnotationExists { - glog.V(4).Infof("No existing Ingress %s in cluster %s and static IP annotation (%q) exists on base ingress - queuing a create operation", ingress, cluster.Name, staticIPNameKeyWritable) - } else { - glog.V(4).Infof("No existing Ingress %s in cluster %s and no static IP annotation (%q) on base ingress - queuing a create operation in first cluster", ingress, cluster.Name, staticIPNameKeyWritable) - } - operations = append(operations, util.FederatedOperation{ - Type: util.OperationTypeAdd, - Obj: desiredIngress, - ClusterName: cluster.Name, - Key: key, - }) - } else { - glog.V(4).Infof("No annotation %q exists on ingress %q in federation and waiting for ingress in cluster %s. Not queueing create operation for ingress until annotation exists", staticIPNameKeyWritable, ingress, firstClusterName) - } - case clusterIngressFound && !send: - glog.V(5).Infof("Removing Ingress: %s from cluster: %s reason: cluster selectors do not match: %-v %-v", key, cluster.Name, cluster.ObjectMeta.Labels, desiredIngress.ObjectMeta.Annotations[federationapi.FederationClusterSelectorAnnotation]) - operations = append(operations, util.FederatedOperation{ - Type: util.OperationTypeDelete, - Obj: desiredIngress, - ClusterName: cluster.Name, - Key: key, - }) - case clusterIngressFound && send: - clusterIngress := clusterIngressObj.(*extensionsv1beta1.Ingress) - glog.V(4).Infof("Found existing Ingress %s in cluster %s - checking if update is required (in either direction)", ingress, cluster.Name) - clusterIPName, clusterIPNameExists := clusterIngress.ObjectMeta.Annotations[staticIPNameKeyReadonly] - baseLBStatusExists := len(baseIngress.Status.LoadBalancer.Ingress) > 0 - clusterLBStatusExists := len(clusterIngress.Status.LoadBalancer.Ingress) > 0 - logStr := fmt.Sprintf("Cluster ingress %q has annotation %q=%q, loadbalancer status exists? [%v], federated ingress has annotation %q=%q, loadbalancer status exists? [%v]. %%s annotation and/or loadbalancer status from cluster ingress to federated ingress.", ingress, staticIPNameKeyReadonly, clusterIPName, clusterLBStatusExists, staticIPNameKeyWritable, baseIPName, baseLBStatusExists) - if (!baseIPAnnotationExists && clusterIPNameExists) || (!baseLBStatusExists && clusterLBStatusExists) { // copy the IP name from the readonly annotation on the cluster ingress, to the writable annotation on the federated ingress - glog.V(4).Infof(logStr, "Transferring") - if !baseIPAnnotationExists && clusterIPNameExists { - ic.updateAnnotationOnIngress(baseIngress, staticIPNameKeyWritable, clusterIPName) - return - } - if !baseLBStatusExists && clusterLBStatusExists { - baseIngress.Status.LoadBalancer = *clusterIngress.Status.LoadBalancer.DeepCopy() - glog.V(4).Infof("Attempting to update base federated ingress status: %v", baseIngress) - if updatedFedIngress, err := ic.federatedApiClient.Extensions().Ingresses(baseIngress.Namespace).UpdateStatus(baseIngress); err != nil { - glog.Errorf("Failed to update federated ingress status of %q (loadbalancer status), will try again later: %v", ingress, err) - ic.deliverIngress(ingress, ic.ingressReviewDelay, true) - return - } else { - glog.V(4).Infof("Successfully updated federated ingress status of %q (added loadbalancer status), after update: %q", ingress, updatedFedIngress) - ic.deliverIngress(ingress, ic.smallDelay, false) - return - } - } - } else { - glog.V(4).Infof(logStr, "Not transferring") - } - // Update existing cluster ingress, if needed. - if util.ObjectMetaAndSpecEquivalent(baseIngress, clusterIngress) { - glog.V(4).Infof("Ingress %q in cluster %q does not need an update: cluster ingress is equivalent to federated ingress", ingress, cluster.Name) - } else { - glog.V(4).Infof("Ingress %s in cluster %s needs an update: cluster ingress %v is not equivalent to federated ingress %v", ingress, cluster.Name, clusterIngress, desiredIngress) - clusterIngress.ObjectMeta.DeepCopyInto(&desiredIngress.ObjectMeta) - // Merge any annotations and labels on the federated ingress onto the underlying cluster ingress, - // overwriting duplicates. - if desiredIngress.ObjectMeta.Annotations == nil { - desiredIngress.ObjectMeta.Annotations = make(map[string]string) - } - for key, val := range baseIngress.ObjectMeta.Annotations { - desiredIngress.ObjectMeta.Annotations[key] = val - } - if desiredIngress.ObjectMeta.Labels == nil { - desiredIngress.ObjectMeta.Labels = make(map[string]string) - } - for key, val := range baseIngress.ObjectMeta.Labels { - desiredIngress.ObjectMeta.Labels[key] = val - } - - operations = append(operations, util.FederatedOperation{ - Type: util.OperationTypeUpdate, - Obj: desiredIngress, - ClusterName: cluster.Name, - Key: key, - }) - // TODO: Transfer any readonly (target-proxy, url-map etc) annotations from the master cluster to the federation, if this is the master cluster. - // This is only for consistency, so that the federation ingress metadata matches the underlying clusters. It's not actually required } - } - } - } - - if len(operations) == 0 { - // Everything is in order - glog.V(4).Infof("Ingress %q is up-to-date in all clusters - no propagation to clusters required.", ingress) - return - } - glog.V(4).Infof("Calling federatedUpdater.Update() - operations: %v", operations) - err = ic.federatedIngressUpdater.Update(operations) - if err != nil { - glog.Errorf("Failed to execute updates for %s: %v", ingress, err) - ic.deliverIngress(ingress, ic.ingressReviewDelay, true) - return - } - // Schedule another periodic reconciliation, only to account for possible bugs in watch processing. - ic.deliverIngress(ingress, ic.ingressReviewDelay, false) -} - -// delete deletes the given ingress or returns error if the deletion was not complete. -func (ic *IngressController) delete(ingress *extensionsv1beta1.Ingress) error { - glog.V(3).Infof("Handling deletion of ingress: %v", *ingress) - _, err := ic.deletionHelper.HandleObjectInUnderlyingClusters(ingress) - if err != nil { - return err - } - - err = ic.federatedApiClient.Extensions().Ingresses(ingress.Namespace).Delete(ingress.Name, nil) - if err != nil { - // Its all good if the error is not found error. That means it is deleted already and we do not have to do anything. - // This is expected when we are processing an update as a result of ingress finalizer deletion. - // The process that deleted the last finalizer is also going to delete the ingress and we do not have to do anything. - if !errors.IsNotFound(err) { - return fmt.Errorf("failed to delete ingress: %v", err) - } - } - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/ingress_controller_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/ingress_controller_test.go deleted file mode 100644 index 429c8f4b1..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/ingress/ingress_controller_test.go +++ /dev/null @@ -1,397 +0,0 @@ -/* -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 ingress - -import ( - "fmt" - "reflect" - "testing" - "time" - - apiv1 "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/wait" - kubeclientset "k8s.io/client-go/kubernetes" - fakekubeclientset "k8s.io/client-go/kubernetes/fake" - "k8s.io/client-go/tools/cache" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fakefedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper" - finalizersutil "k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers" - . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" - - "github.com/golang/glog" - "github.com/stretchr/testify/assert" -) - -const ( - maxTrials = 20 - clusters string = "clusters" - ingresses string = "ingresses" - configmaps string = "configmaps" -) - -func TestIngressController(t *testing.T) { - fakeClusterList := federationapi.ClusterList{Items: []federationapi.Cluster{}} - fakeConfigMapList1 := apiv1.ConfigMapList{Items: []apiv1.ConfigMap{}} - fakeConfigMapList2 := apiv1.ConfigMapList{Items: []apiv1.ConfigMap{}} - cluster1 := NewCluster("cluster1", apiv1.ConditionTrue) - cluster2 := NewCluster("cluster2", apiv1.ConditionTrue) - cfg1 := NewConfigMap("foo") - cfg2 := NewConfigMap("bar") // Different UID from cfg1, so that we can check that they get reconciled. - assert.NotEqual(t, cfg1.Data[uidKey], cfg2.Data[uidKey], fmt.Sprintf("ConfigMap in cluster 2 must initially not equal that in cluster 1 for this test - please fix test")) - - t.Log("Creating fake infrastructure") - fedClient := &fakefedclientset.Clientset{} - RegisterFakeList(clusters, &fedClient.Fake, &fakeClusterList) - RegisterFakeList(ingresses, &fedClient.Fake, &extensionsv1beta1.IngressList{Items: []extensionsv1beta1.Ingress{}}) - fedIngressWatch := RegisterFakeWatch(ingresses, &fedClient.Fake) - clusterWatch := RegisterFakeWatch(clusters, &fedClient.Fake) - fedClusterUpdateChan := RegisterFakeCopyOnUpdate(clusters, &fedClient.Fake, clusterWatch) - fedIngressUpdateChan := RegisterFakeCopyOnUpdate(ingresses, &fedClient.Fake, fedIngressWatch) - - cluster1Client := &fakekubeclientset.Clientset{} - RegisterFakeList(ingresses, &cluster1Client.Fake, &extensionsv1beta1.IngressList{Items: []extensionsv1beta1.Ingress{}}) - RegisterFakeList(configmaps, &cluster1Client.Fake, &fakeConfigMapList1) - cluster1IngressWatch := RegisterFakeWatch(ingresses, &cluster1Client.Fake) - cluster1ConfigMapWatch := RegisterFakeWatch(configmaps, &cluster1Client.Fake) - cluster1IngressCreateChan := RegisterFakeCopyOnCreate(ingresses, &cluster1Client.Fake, cluster1IngressWatch) - cluster1IngressUpdateChan := RegisterFakeCopyOnUpdate(ingresses, &cluster1Client.Fake, cluster1IngressWatch) - cluster1ConfigMapUpdateChan := RegisterFakeCopyOnUpdate(configmaps, &cluster1Client.Fake, cluster1ConfigMapWatch) - - cluster2Client := &fakekubeclientset.Clientset{} - RegisterFakeList(ingresses, &cluster2Client.Fake, &extensionsv1beta1.IngressList{Items: []extensionsv1beta1.Ingress{}}) - RegisterFakeList(configmaps, &cluster2Client.Fake, &fakeConfigMapList2) - cluster2IngressWatch := RegisterFakeWatch(ingresses, &cluster2Client.Fake) - cluster2ConfigMapWatch := RegisterFakeWatch(configmaps, &cluster2Client.Fake) - cluster2IngressCreateChan := RegisterFakeCopyOnCreate(ingresses, &cluster2Client.Fake, cluster2IngressWatch) - cluster2ConfigMapUpdateChan := RegisterFakeCopyOnUpdate(configmaps, &cluster2Client.Fake, cluster2ConfigMapWatch) - - clientFactoryFunc := func(cluster *federationapi.Cluster) (kubeclientset.Interface, error) { - switch cluster.Name { - case cluster1.Name: - return cluster1Client, nil - case cluster2.Name: - return cluster2Client, nil - default: - return nil, fmt.Errorf("Unknown cluster") - } - } - ingressController := NewIngressController(fedClient) - ingressInformer := ToFederatedInformerForTestOnly(ingressController.ingressFederatedInformer) - ingressInformer.SetClientFactory(clientFactoryFunc) - configMapInformer := ToFederatedInformerForTestOnly(ingressController.configMapFederatedInformer) - configMapInformer.SetClientFactory(clientFactoryFunc) - ingressController.clusterAvailableDelay = time.Second - ingressController.ingressReviewDelay = 100 * time.Millisecond - ingressController.configMapReviewDelay = 100 * time.Millisecond - ingressController.smallDelay = 100 * time.Millisecond - ingressController.updateTimeout = 5 * time.Second - - stop := make(chan struct{}) - t.Log("Running Ingress Controller") - ingressController.Run(stop) - - // TODO: Here we are creating the ingress with first cluster annotation. - // Add another test without that annotation when - // https://github.com/kubernetes/kubernetes/issues/36540 is fixed. - fedIngress := extensionsv1beta1.Ingress{ - ObjectMeta: metav1.ObjectMeta{ - Name: "test-ingress", - Namespace: "mynamespace", - SelfLink: "/api/v1/namespaces/mynamespace/ingress/test-ingress", - Annotations: map[string]string{ - firstClusterAnnotation: cluster1.Name, - }, - }, - Status: extensionsv1beta1.IngressStatus{ - LoadBalancer: apiv1.LoadBalancerStatus{ - Ingress: make([]apiv1.LoadBalancerIngress, 0, 0), - }, - }, - } - - t.Log("Adding cluster 1") - clusterWatch.Add(cluster1) - - t.Log("Adding Ingress UID ConfigMap to cluster 1") - cluster1ConfigMapWatch.Add(cfg1) - - t.Log("Checking that UID annotation on Cluster 1 annotation was correctly updated prior to adding Federated Ingress") - cluster := GetClusterFromChan(fedClusterUpdateChan) - assert.NotNil(t, cluster) - assert.Equal(t, cluster.ObjectMeta.Annotations[uidAnnotationKey], cfg1.Data[uidKey]) - - t.Log("Adding cluster 2") - clusterWatch.Add(cluster2) - cluster2ConfigMapWatch.Add(cfg2) - - t.Log("Checking that a configmap updates are propagated prior to Federated Ingress") - referenceUid := cfg1.Data[uidKey] - uid1, providerId1 := GetConfigMapUidAndProviderId(t, cluster1ConfigMapUpdateChan) - uid2, providerId2 := GetConfigMapUidAndProviderId(t, cluster2ConfigMapUpdateChan) - t.Logf("uid2 = %v and ref = %v", uid2, referenceUid) - assert.True(t, referenceUid == uid1, "Expected cluster1 configmap uid %q to be equal to referenceUid %q", uid1, referenceUid) - assert.True(t, referenceUid == uid2, "Expected cluster2 configmap uid %q to be equal to referenceUid %q", uid2, referenceUid) - assert.True(t, providerId1 != providerId2, "Expected cluster1 providerUid %q to be unique and different from cluster2 providerUid %q", providerId1, providerId2) - - // Test add federated ingress. - t.Log("Adding Federated Ingress") - fedIngressWatch.Add(&fedIngress) - - t.Log("Checking that appropriate finalizers are added") - // There should be an update to add both the finalizers. - updatedIngress := GetIngressFromChan(t, fedIngressUpdateChan) - AssertHasFinalizer(t, updatedIngress, deletionhelper.FinalizerDeleteFromUnderlyingClusters) - AssertHasFinalizer(t, updatedIngress, metav1.FinalizerOrphanDependents) - fedIngress = *updatedIngress - - t.Log("Checking that Ingress was correctly created in cluster 1") - createdIngress := GetIngressFromChan(t, cluster1IngressCreateChan) - assert.NotNil(t, createdIngress) - cluster1Ingress := *createdIngress - assert.True(t, reflect.DeepEqual(fedIngress.Spec, cluster1Ingress.Spec), "Spec of created ingress is not equal") - assert.True(t, util.ObjectMetaEquivalent(fedIngress.ObjectMeta, cluster1Ingress.ObjectMeta), - "Metadata of created object is not equivalent") - - // Wait for finalizers to appear in federation store. - assert.NoError(t, WaitForFinalizersInFederationStore(ingressController, ingressController.ingressInformerStore, - types.NamespacedName{Namespace: fedIngress.Namespace, Name: fedIngress.Name}.String()), "finalizers not found in federated ingress") - - // Wait for the cluster ingress to appear in cluster store. - assert.NoError(t, WaitForIngressInClusterStore(ingressController.ingressFederatedInformer.GetTargetStore(), cluster1.Name, - types.NamespacedName{Namespace: createdIngress.Namespace, Name: createdIngress.Name}.String()), - "Created ingress not found in underlying cluster store") - - // Test that IP address gets transferred from cluster ingress to federated ingress. - t.Log("Checking that IP address gets transferred from cluster ingress to federated ingress") - cluster1Ingress.Status.LoadBalancer.Ingress = append(cluster1Ingress.Status.LoadBalancer.Ingress, - apiv1.LoadBalancerIngress{IP: "1.2.3.4"}) - glog.Infof("Setting artificial IP address for cluster1 ingress") - - for trial := 0; trial < maxTrials; trial++ { - cluster1IngressWatch.Modify(&cluster1Ingress) - // Wait for store to see the updated cluster ingress. - key := types.NamespacedName{Namespace: createdIngress.Namespace, Name: createdIngress.Name}.String() - if err := WaitForStatusUpdate(t, ingressController.ingressFederatedInformer.GetTargetStore(), - cluster1.Name, key, cluster1Ingress.Status.LoadBalancer, time.Second); err != nil { - continue - } - if err := WaitForFedStatusUpdate(t, ingressController.ingressInformerStore, - key, cluster1Ingress.Status.LoadBalancer, time.Second); err != nil { - continue - } - } - - for trial := 0; trial < maxTrials; trial++ { - updatedIngress = GetIngressFromChan(t, fedIngressUpdateChan) - assert.NotNil(t, updatedIngress, "Cluster's ingress load balancer status was not correctly transferred to the federated ingress") - if updatedIngress == nil { - return - } - if reflect.DeepEqual(cluster1Ingress.Status.LoadBalancer.Ingress, updatedIngress.Status.LoadBalancer.Ingress) { - fedIngress.Status.LoadBalancer = updatedIngress.Status.LoadBalancer - break - } else { - glog.Infof("Status check failed: expected: %v actual: %v", cluster1Ingress.Status, updatedIngress.Status) - } - } - glog.Infof("Status check: expected: %v actual: %v", cluster1Ingress.Status, updatedIngress.Status) - assert.True(t, reflect.DeepEqual(cluster1Ingress.Status.LoadBalancer.Ingress, updatedIngress.Status.LoadBalancer.Ingress), - fmt.Sprintf("Ingress IP was not transferred from cluster ingress to federated ingress. %v is not equal to %v", - cluster1Ingress.Status.LoadBalancer.Ingress, updatedIngress.Status.LoadBalancer.Ingress)) - - assert.NoError(t, WaitForStatusUpdate(t, ingressController.ingressFederatedInformer.GetTargetStore(), - cluster1.Name, types.NamespacedName{Namespace: createdIngress.Namespace, Name: createdIngress.Name}.String(), - cluster1Ingress.Status.LoadBalancer, time.Second)) - assert.NoError(t, WaitForFedStatusUpdate(t, ingressController.ingressInformerStore, - types.NamespacedName{Namespace: createdIngress.Namespace, Name: createdIngress.Name}.String(), - cluster1Ingress.Status.LoadBalancer, time.Second)) - t.Logf("expected: %v, actual: %v", createdIngress, updatedIngress) - - // Test update federated ingress. - if fedIngress.ObjectMeta.Annotations == nil { - fedIngress.ObjectMeta.Annotations = make(map[string]string) - } - fedIngress.ObjectMeta.Annotations["A"] = "B" - fedIngress.ObjectMeta.Annotations[federationapi.FederationClusterSelectorAnnotation] = `[{"key": "cluster", "operator": "in", "values": ["cluster1","cluster2"]}]` - t.Log("Modifying Federated Ingress") - fedIngressWatch.Modify(&fedIngress) - t.Log("Checking that Ingress was correctly updated in cluster 1") - var updatedIngress2 *extensionsv1beta1.Ingress - - for trial := 0; trial < maxTrials; trial++ { - updatedIngress2 = GetIngressFromChan(t, cluster1IngressUpdateChan) - assert.NotNil(t, updatedIngress2) - if updatedIngress2 == nil { - return - } - if reflect.DeepEqual(fedIngress.Spec, updatedIngress.Spec) && - updatedIngress2.ObjectMeta.Annotations["A"] == fedIngress.ObjectMeta.Annotations["A"] { - break - } - } - - assert.True(t, reflect.DeepEqual(updatedIngress2.Spec, fedIngress.Spec), "Spec of updated ingress is not equal") - assert.Equal(t, updatedIngress2.ObjectMeta.Annotations["A"], fedIngress.ObjectMeta.Annotations["A"], "Updated annotation not transferred from federated to cluster ingress.") - - fedIngress.Annotations[staticIPNameKeyWritable] = "foo" // Make sure that the base object has a static IP name first. - fedIngressWatch.Modify(&fedIngress) - - t.Log("Checking that the ingress got created in cluster 2 after a global ip was assigned") - createdIngress2 := GetIngressFromChan(t, cluster2IngressCreateChan) - assert.NotNil(t, createdIngress2) - assert.True(t, reflect.DeepEqual(fedIngress.Spec, createdIngress2.Spec), "Spec of created ingress is not equal") - t.Logf("created meta: %v fed meta: %v", createdIngress2.ObjectMeta, fedIngress.ObjectMeta) - assert.True(t, util.ObjectMetaEquivalent(fedIngress.ObjectMeta, createdIngress2.ObjectMeta), "Metadata of created object is not equivalent") - - close(stop) -} - -func GetConfigMapUidAndProviderId(t *testing.T, c chan runtime.Object) (string, string) { - updatedConfigMap := GetConfigMapFromChan(c) - assert.NotNil(t, updatedConfigMap, "ConfigMap should have received an update") - assert.NotNil(t, updatedConfigMap.Data, "ConfigMap data is empty") - - for _, key := range []string{uidKey, providerUidKey} { - val, ok := updatedConfigMap.Data[key] - assert.True(t, ok, fmt.Sprintf("Didn't receive an update for key %v: %v", key, updatedConfigMap.Data)) - assert.True(t, len(val) > 0, fmt.Sprintf("Received an empty update for key %v", key)) - } - return updatedConfigMap.Data[uidKey], updatedConfigMap.Data[providerUidKey] -} - -func GetIngressFromChan(t *testing.T, c chan runtime.Object) *extensionsv1beta1.Ingress { - obj := GetObjectFromChan(c) - - if obj == nil { - return nil - } - - ingress, ok := obj.(*extensionsv1beta1.Ingress) - if !ok { - t.Logf("Object on channel was not of type *extensionsv1beta1.Ingress: %v", obj) - } - return ingress -} - -func GetConfigMapFromChan(c chan runtime.Object) *apiv1.ConfigMap { - if configMap := GetObjectFromChan(c); configMap == nil { - return nil - } else { - return configMap.(*apiv1.ConfigMap) - } - -} - -func GetClusterFromChan(c chan runtime.Object) *federationapi.Cluster { - if cluster := GetObjectFromChan(c); cluster == nil { - return nil - } else { - return cluster.(*federationapi.Cluster) - } -} - -func NewConfigMap(uid string) *apiv1.ConfigMap { - return &apiv1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: uidConfigMapName, - Namespace: uidConfigMapNamespace, - SelfLink: "/api/v1/namespaces/" + uidConfigMapNamespace + "/configmap/" + uidConfigMapName, - // TODO: Remove: Annotations: map[string]string{}, - }, - Data: map[string]string{ - uidKey: uid, - }, - } -} - -// Wait for finalizers to appear in federation store. -func WaitForFinalizersInFederationStore(ingressController *IngressController, store cache.Store, key string) error { - retryInterval := 100 * time.Millisecond - timeout := wait.ForeverTestTimeout - err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { - obj, found, err := store.GetByKey(key) - if !found || err != nil { - return false, err - } - ingress := obj.(*extensionsv1beta1.Ingress) - hasOrphanFinalizer, err := finalizersutil.HasFinalizer(ingress, metav1.FinalizerOrphanDependents) - if err != nil { - return false, err - } - hasDeleteFinalizer, err := finalizersutil.HasFinalizer(ingress, deletionhelper.FinalizerDeleteFromUnderlyingClusters) - if err != nil { - return false, err - } - if hasOrphanFinalizer && hasDeleteFinalizer { - return true, nil - } - return false, nil - }) - return err -} - -// Wait for the cluster ingress to appear in cluster store. -func WaitForIngressInClusterStore(store util.FederatedReadOnlyStore, clusterName, key string) error { - retryInterval := 100 * time.Millisecond - timeout := wait.ForeverTestTimeout - err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { - _, found, err := store.GetByKey(clusterName, key) - if found && err == nil { - return true, nil - } - if errors.IsNotFound(err) { - return false, nil - } - return false, err - }) - return err -} - -// Wait for ingress status to be updated to match the desiredStatus. -func WaitForStatusUpdate(t *testing.T, store util.FederatedReadOnlyStore, clusterName, key string, desiredStatus apiv1.LoadBalancerStatus, timeout time.Duration) error { - retryInterval := 100 * time.Millisecond - err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { - obj, found, err := store.GetByKey(clusterName, key) - if !found || err != nil { - return false, err - } - ingress := obj.(*extensionsv1beta1.Ingress) - return reflect.DeepEqual(ingress.Status.LoadBalancer, desiredStatus), nil - }) - return err -} - -// Wait for ingress status to be updated to match the desiredStatus. -func WaitForFedStatusUpdate(t *testing.T, store cache.Store, key string, desiredStatus apiv1.LoadBalancerStatus, timeout time.Duration) error { - retryInterval := 100 * time.Millisecond - err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { - obj, found, err := store.GetByKey(key) - if !found || err != nil { - return false, err - } - ingress := obj.(*extensionsv1beta1.Ingress) - return reflect.DeepEqual(ingress.Status.LoadBalancer, desiredStatus), nil - }) - return err -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/BUILD deleted file mode 100644 index 429b75dd2..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/BUILD +++ /dev/null @@ -1,78 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["jobcontroller.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/job", - deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/deletionhelper:go_default_library", - "//federation/pkg/federation-controller/util/eventsink:go_default_library", - "//federation/pkg/federation-controller/util/planner:go_default_library", - "//federation/pkg/federation-controller/util/replicapreferences:go_default_library", - "//pkg/api:go_default_library", - "//pkg/controller:go_default_library", - "//vendor/github.com/davecgh/go-spew/spew:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/api/batch/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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - "//vendor/k8s.io/client-go/util/workqueue:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["jobcontroller_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/job", - library = ":go_default_library", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/finalizers:go_default_library", - "//federation/pkg/federation-controller/util/test:go_default_library", - "//pkg/apis/batch/v1:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/batch/v1: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/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/jobcontroller.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/jobcontroller.go deleted file mode 100644 index 783badfd7..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/jobcontroller.go +++ /dev/null @@ -1,561 +0,0 @@ -/* -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 job - -import ( - "fmt" - "reflect" - "time" - - "github.com/davecgh/go-spew/spew" - "github.com/golang/glog" - - batchv1 "k8s.io/api/batch/v1" - clientv1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/cache" - "k8s.io/client-go/tools/record" - "k8s.io/client-go/util/flowcontrol" - "k8s.io/client-go/util/workqueue" - fed "k8s.io/kubernetes/federation/apis/federation" - fedv1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/planner" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/controller" -) - -const ( - fedJobPreferencesAnnotation = "federation.kubernetes.io/job-preferences" - allClustersKey = "THE_ALL_CLUSTER_KEY" - // UserAgentName is the user agent used in the federation client - UserAgentName = "Federation-Job-Controller" - // ControllerName is name of this controller - ControllerName = "jobs" -) - -var ( - // RequiredResources is the resource group version of the type this controller manages - RequiredResources = []schema.GroupVersionResource{batchv1.SchemeGroupVersion.WithResource("jobs")} - jobReviewDelay = 10 * time.Second - clusterAvailableDelay = 20 * time.Second - clusterUnavailableDelay = 60 * time.Second - updateTimeout = 30 * time.Second - backoffInitial = 5 * time.Second - backoffMax = 1 * time.Minute -) - -// FederationJobController synchronizes the state of a federated job object -// to clusters that are members of the federation. -type FederationJobController struct { - fedClient fedclientset.Interface - - jobController cache.Controller - jobStore cache.Store - - fedJobInformer fedutil.FederatedInformer - - jobDeliverer *fedutil.DelayingDeliverer - clusterDeliverer *fedutil.DelayingDeliverer - jobWorkQueue workqueue.Interface - // For updating members of federation. - fedUpdater fedutil.FederatedUpdater - - jobBackoff *flowcontrol.Backoff - // For events - eventRecorder record.EventRecorder - - defaultPlanner *planner.Planner - deletionHelper *deletionhelper.DeletionHelper -} - -// NewJobController creates a new federation job controller -func NewJobController(fedClient fedclientset.Interface) *FederationJobController { - broadcaster := record.NewBroadcaster() - broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(fedClient)) - recorder := broadcaster.NewRecorder(api.Scheme, clientv1.EventSource{Component: "federated-job-controller"}) - fjc := &FederationJobController{ - fedClient: fedClient, - jobDeliverer: fedutil.NewDelayingDeliverer(), - clusterDeliverer: fedutil.NewDelayingDeliverer(), - jobWorkQueue: workqueue.New(), - jobBackoff: flowcontrol.NewBackOff(backoffInitial, backoffMax), - defaultPlanner: planner.NewPlanner(&fed.ReplicaAllocationPreferences{ - Clusters: map[string]fed.ClusterPreferences{ - "*": {Weight: 1}, - }, - }), - eventRecorder: recorder, - } - - jobFedInformerFactory := func(cluster *fedv1.Cluster, clientset kubeclientset.Interface) (cache.Store, cache.Controller) { - return cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - return clientset.BatchV1().Jobs(metav1.NamespaceAll).List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return clientset.BatchV1().Jobs(metav1.NamespaceAll).Watch(options) - }, - }, - &batchv1.Job{}, - controller.NoResyncPeriodFunc(), - fedutil.NewTriggerOnAllChanges( - func(obj runtime.Object) { fjc.deliverLocalJob(obj, jobReviewDelay) }, - ), - ) - } - clusterLifecycle := fedutil.ClusterLifecycleHandlerFuncs{ - ClusterAvailable: func(cluster *fedv1.Cluster) { - fjc.clusterDeliverer.DeliverAfter(allClustersKey, nil, clusterAvailableDelay) - }, - ClusterUnavailable: func(cluster *fedv1.Cluster, _ []interface{}) { - fjc.clusterDeliverer.DeliverAfter(allClustersKey, nil, clusterUnavailableDelay) - }, - } - fjc.fedJobInformer = fedutil.NewFederatedInformer(fedClient, jobFedInformerFactory, &clusterLifecycle) - - fjc.jobStore, fjc.jobController = cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - return fjc.fedClient.BatchV1().Jobs(metav1.NamespaceAll).List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return fjc.fedClient.BatchV1().Jobs(metav1.NamespaceAll).Watch(options) - }, - }, - &batchv1.Job{}, - controller.NoResyncPeriodFunc(), - fedutil.NewTriggerOnMetaAndSpecChanges( - func(obj runtime.Object) { fjc.deliverFedJobObj(obj, 0) }, - ), - ) - - fjc.fedUpdater = fedutil.NewFederatedUpdater(fjc.fedJobInformer, "job", updateTimeout, fjc.eventRecorder, - func(client kubeclientset.Interface, obj runtime.Object) error { - rs := obj.(*batchv1.Job) - _, err := client.BatchV1().Jobs(rs.Namespace).Create(rs) - return err - }, - func(client kubeclientset.Interface, obj runtime.Object) error { - rs := obj.(*batchv1.Job) - _, err := client.BatchV1().Jobs(rs.Namespace).Update(rs) - return err - }, - func(client kubeclientset.Interface, obj runtime.Object) error { - rs := obj.(*batchv1.Job) - err := client.BatchV1().Jobs(rs.Namespace).Delete(rs.Name, &metav1.DeleteOptions{}) - return err - }) - - fjc.deletionHelper = deletionhelper.NewDeletionHelper( - fjc.updateJob, - // objNameFunc - func(obj runtime.Object) string { - job := obj.(*batchv1.Job) - return job.Name - }, - fjc.fedJobInformer, - fjc.fedUpdater, - ) - - return fjc -} - -// Sends the given updated object to apiserver. -// Assumes that the given object is a job. -func (fjc *FederationJobController) updateJob(obj runtime.Object) (runtime.Object, error) { - job := obj.(*batchv1.Job) - return fjc.fedClient.BatchV1().Jobs(job.Namespace).Update(job) -} - -// Run starts the syncing of federation jobs to the clusters. -func (fjc *FederationJobController) Run(workers int, stopCh <-chan struct{}) { - go fjc.jobController.Run(stopCh) - fjc.fedJobInformer.Start() - - fjc.jobDeliverer.StartWithHandler(func(item *fedutil.DelayingDelivererItem) { - fjc.jobWorkQueue.Add(item.Key) - }) - fjc.clusterDeliverer.StartWithHandler(func(_ *fedutil.DelayingDelivererItem) { - fjc.reconcileJobsOnClusterChange() - }) - - for !fjc.isSynced() { - time.Sleep(5 * time.Millisecond) - } - - for i := 0; i < workers; i++ { - go wait.Until(fjc.worker, time.Second, stopCh) - } - - fedutil.StartBackoffGC(fjc.jobBackoff, stopCh) - - <-stopCh - glog.Infof("Shutting down FederationJobController") - fjc.jobDeliverer.Stop() - fjc.clusterDeliverer.Stop() - fjc.jobWorkQueue.ShutDown() - fjc.fedJobInformer.Stop() -} - -func (fjc *FederationJobController) isSynced() bool { - if !fjc.fedJobInformer.ClustersSynced() { - glog.V(3).Infof("Cluster list not synced") - return false - } - clusters, err := fjc.fedJobInformer.GetReadyClusters() - if err != nil { - glog.Errorf("Failed to get ready clusters: %v", err) - return false - } - if !fjc.fedJobInformer.GetTargetStore().ClustersSynced(clusters) { - glog.V(2).Infof("cluster job list not synced") - return false - } - - if !fjc.jobController.HasSynced() { - glog.V(2).Infof("federation job list not synced") - return false - } - return true -} - -func (fjc *FederationJobController) deliverLocalJob(obj interface{}, duration time.Duration) { - key, err := controller.KeyFunc(obj) - if err != nil { - glog.Errorf("Couldn't get key for object %v: %v", obj, err) - return - } - _, exists, err := fjc.jobStore.GetByKey(key) - if err != nil { - glog.Errorf("Couldn't get federated job %v: %v", key, err) - return - } - if exists { // ignore jobs exists only in local k8s - fjc.deliverJobByKey(key, duration, false) - } -} - -func (fjc *FederationJobController) deliverFedJobObj(obj interface{}, delay time.Duration) { - key, err := controller.KeyFunc(obj) - if err != nil { - glog.Errorf("Couldn't get key for object %+v: %v", obj, err) - return - } - fjc.deliverJobByKey(key, delay, false) -} - -func (fjc *FederationJobController) deliverJobByKey(key string, delay time.Duration, failed bool) { - if failed { - fjc.jobBackoff.Next(key, time.Now()) - delay = delay + fjc.jobBackoff.Get(key) - } else { - fjc.jobBackoff.Reset(key) - } - fjc.jobDeliverer.DeliverAfter(key, nil, delay) -} - -type reconciliationStatus string - -const ( - statusAllOk = reconciliationStatus("ALL_OK") - statusNeedRecheck = reconciliationStatus("RECHECK") - statusError = reconciliationStatus("ERROR") - statusNotSynced = reconciliationStatus("NOSYNC") -) - -func (fjc *FederationJobController) worker() { - for { - item, quit := fjc.jobWorkQueue.Get() - if quit { - return - } - key := item.(string) - status, err := fjc.reconcileJob(key) - fjc.jobWorkQueue.Done(item) - if err != nil { - glog.Errorf("Error syncing job controller: %v", err) - fjc.deliverJobByKey(key, 0, true) - } else { - switch status { - case statusAllOk: - break - case statusError: - fjc.deliverJobByKey(key, 0, true) - case statusNeedRecheck: - fjc.deliverJobByKey(key, jobReviewDelay, false) - case statusNotSynced: - fjc.deliverJobByKey(key, clusterAvailableDelay, false) - default: - glog.Errorf("Unhandled reconciliation status: %s", status) - fjc.deliverJobByKey(key, jobReviewDelay, false) - } - } - } -} - -type scheduleResult struct { - Parallelism *int32 - Completions *int32 -} - -func (fjc *FederationJobController) schedule(fjob *batchv1.Job, clusters []*fedv1.Cluster) map[string]scheduleResult { - plnr := fjc.defaultPlanner - frsPref, err := replicapreferences.GetAllocationPreferences(fjob, fedJobPreferencesAnnotation) - if err != nil { - glog.Warningf("Invalid job specific preference, use default. rs: %v, err: %v", fjob, err) - } - if frsPref != nil { // create a new planner if user specified a preference - plnr = planner.NewPlanner(frsPref) - } - - parallelism := int64(*fjob.Spec.Parallelism) - var clusterNames []string - for _, cluster := range clusters { - clusterNames = append(clusterNames, cluster.Name) - } - parallelismResult, _ := plnr.Plan(parallelism, clusterNames, nil, nil, fjob.Namespace+"/"+fjob.Name) - - if frsPref != nil { - for _, clusterPref := range frsPref.Clusters { - clusterPref.MinReplicas = 0 - clusterPref.MaxReplicas = nil - } - plnr = planner.NewPlanner(frsPref) - } - clusterNames = nil - for clusterName := range parallelismResult { - clusterNames = append(clusterNames, clusterName) - } - completionsResult := make(map[string]int64) - if fjob.Spec.Completions != nil { - completionsResult, _ = plnr.Plan(int64(*fjob.Spec.Completions), clusterNames, nil, nil, fjob.Namespace+"/"+fjob.Name) - } - - results := make(map[string]scheduleResult) - for _, clusterName := range clusterNames { - paralle := int32(parallelismResult[clusterName]) - complet := int32(completionsResult[clusterName]) - result := scheduleResult{ - Parallelism: ¶lle, - } - if fjob.Spec.Completions != nil { - result.Completions = &complet - } - results[clusterName] = result - } - - return results -} - -func (fjc *FederationJobController) reconcileJob(key string) (reconciliationStatus, error) { - if !fjc.isSynced() { - return statusNotSynced, nil - } - - glog.V(4).Infof("Start reconcile job %q", key) - startTime := time.Now() - defer glog.V(4).Infof("Finished reconcile job %q (%v)", key, time.Now().Sub(startTime)) - - objFromStore, exists, err := fjc.jobStore.GetByKey(key) - if err != nil { - return statusError, err - } - if !exists { - // deleted federated job, nothing need to do - return statusAllOk, nil - } - - // Create a copy before modifying the obj to prevent race condition with other readers of obj from store. - fjob, ok := objFromStore.(*batchv1.Job) - if !ok { - return statusError, err - } - fjob = fjob.DeepCopy() - - // delete job - if fjob.DeletionTimestamp != nil { - if err := fjc.delete(fjob); err != nil { - fjc.eventRecorder.Eventf(fjob, api.EventTypeNormal, "DeleteFailed", "Job delete failed: %v", err) - return statusError, err - } - return statusAllOk, nil - } - - glog.V(3).Infof("Ensuring delete object from underlying clusters finalizer for job: %s\n", key) - // Add the required finalizers before creating a job in underlying clusters. - updatedJobObj, err := fjc.deletionHelper.EnsureFinalizers(fjob) - if err != nil { - return statusError, err - } - fjob = updatedJobObj.(*batchv1.Job) - - clusters, err := fjc.fedJobInformer.GetReadyClusters() - if err != nil { - return statusError, err - } - - scheduleResult := fjc.schedule(fjob, clusters) - glog.V(3).Infof("Start syncing local job %s: %s\n", key, spew.Sprintf("%v", scheduleResult)) - - fedStatus := batchv1.JobStatus{} - var fedStatusFailedCondition *batchv1.JobCondition - var fedStatusCompleteCondition *batchv1.JobCondition - var operations []fedutil.FederatedOperation - for clusterName, result := range scheduleResult { - ljobObj, exists, err := fjc.fedJobInformer.GetTargetStore().GetByKey(clusterName, key) - if err != nil { - return statusError, err - } - ljob := &batchv1.Job{ - ObjectMeta: fedutil.DeepCopyRelevantObjectMeta(fjob.ObjectMeta), - Spec: *fjob.Spec.DeepCopy(), - } - // use selector generated at federation level, or user specified value - manualSelector := true - ljob.Spec.ManualSelector = &manualSelector - ljob.Spec.Parallelism = result.Parallelism - ljob.Spec.Completions = result.Completions - - if !exists { - if *ljob.Spec.Parallelism > 0 { - fjc.eventRecorder.Eventf(fjob, api.EventTypeNormal, "CreateInCluster", "Creating job in cluster %s", clusterName) - operations = append(operations, fedutil.FederatedOperation{ - Type: fedutil.OperationTypeAdd, - Obj: ljob, - ClusterName: clusterName, - }) - } - } else { - currentLjob := ljobObj.(*batchv1.Job) - - // Update existing job, if needed. - if !fedutil.ObjectMetaAndSpecEquivalent(ljob, currentLjob) { - fjc.eventRecorder.Eventf(fjob, api.EventTypeNormal, "UpdateInCluster", "Updating job in cluster %s", clusterName) - operations = append(operations, fedutil.FederatedOperation{ - Type: fedutil.OperationTypeUpdate, - Obj: ljob, - ClusterName: clusterName, - }) - } - - // collect local job status - for _, condition := range currentLjob.Status.Conditions { - if condition.Type == batchv1.JobComplete { - if fedStatusCompleteCondition == nil || - fedStatusCompleteCondition.LastTransitionTime.Before(&condition.LastTransitionTime) { - fedStatusCompleteCondition = &condition - } - } else if condition.Type == batchv1.JobFailed { - if fedStatusFailedCondition == nil || - fedStatusFailedCondition.LastTransitionTime.Before(&condition.LastTransitionTime) { - fedStatusFailedCondition = &condition - } - } - } - if currentLjob.Status.StartTime != nil { - if fedStatus.StartTime == nil || fedStatus.StartTime.After(currentLjob.Status.StartTime.Time) { - fedStatus.StartTime = currentLjob.Status.StartTime - } - } - if currentLjob.Status.CompletionTime != nil { - if fedStatus.CompletionTime == nil || fedStatus.CompletionTime.Before(currentLjob.Status.CompletionTime) { - fedStatus.CompletionTime = currentLjob.Status.CompletionTime - } - } - fedStatus.Active += currentLjob.Status.Active - fedStatus.Succeeded += currentLjob.Status.Succeeded - fedStatus.Failed += currentLjob.Status.Failed - } - } - - // federated job fails if any local job failes - if fedStatusFailedCondition != nil { - fedStatus.Conditions = append(fedStatus.Conditions, *fedStatusFailedCondition) - } else if fedStatusCompleteCondition != nil { - fedStatus.Conditions = append(fedStatus.Conditions, *fedStatusCompleteCondition) - } - if !reflect.DeepEqual(fedStatus, fjob.Status) { - fjob.Status = fedStatus - _, err = fjc.fedClient.BatchV1().Jobs(fjob.Namespace).UpdateStatus(fjob) - if err != nil { - return statusError, err - } - } - - if len(operations) == 0 { - // Everything is in order - return statusAllOk, nil - } - - if glog.V(4) { - for i, op := range operations { - job := op.Obj.(*batchv1.Job) - glog.V(4).Infof("operation[%d]: %s, %s/%s/%s, %d", i, op.Type, op.ClusterName, job.Namespace, job.Name, *job.Spec.Parallelism) - } - } - err = fjc.fedUpdater.Update(operations) - if err != nil { - return statusError, err - } - - // Some operations were made, reconcile after a while. - return statusNeedRecheck, nil - -} - -func (fjc *FederationJobController) reconcileJobsOnClusterChange() { - if !fjc.isSynced() { - fjc.clusterDeliverer.DeliverAfter(allClustersKey, nil, clusterAvailableDelay) - } - jobs := fjc.jobStore.List() - for _, job := range jobs { - key, _ := controller.KeyFunc(job) - fjc.deliverJobByKey(key, 0, false) - } -} - -// delete deletes the given job or returns error if the deletion was not complete. -func (fjc *FederationJobController) delete(job *batchv1.Job) error { - glog.V(3).Infof("Handling deletion of job: %s/%s\n", job.Namespace, job.Name) - _, err := fjc.deletionHelper.HandleObjectInUnderlyingClusters(job) - if err != nil { - return err - } - - err = fjc.fedClient.BatchV1().Jobs(job.Namespace).Delete(job.Name, nil) - if err != nil { - // Its all good if the error is not found error. That means it is deleted already and we do not have to do anything. - // This is expected when we are processing an update as a result of job finalizer deletion. - // The process that deleted the last finalizer is also going to delete the job and we do not have to do anything. - if !errors.IsNotFound(err) { - return fmt.Errorf("failed to delete job: %s/%s, %v", job.Namespace, job.Name, err) - } - } - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/jobcontroller_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/jobcontroller_test.go deleted file mode 100644 index 65a869baa..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/job/jobcontroller_test.go +++ /dev/null @@ -1,282 +0,0 @@ -/* -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 job - -import ( - "flag" - "fmt" - "testing" - "time" - - batchv1 "k8s.io/api/batch/v1" - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - kubeclientfake "k8s.io/client-go/kubernetes/fake" - core "k8s.io/client-go/testing" - fedv1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fedclientfake "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" - finalizersutil "k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers" - testutil "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" - batchv1internal "k8s.io/kubernetes/pkg/apis/batch/v1" - - "github.com/stretchr/testify/assert" - "k8s.io/apimachinery/pkg/util/sets" - "reflect" - "strings" -) - -func installWatchReactor(fakeClien *core.Fake, resource string) chan runtime.Object { - objChan := make(chan runtime.Object, 100) - - fakeWatch := watch.NewRaceFreeFake() - fakeClien.PrependWatchReactor(resource, core.DefaultWatchReactor(fakeWatch, nil)) - fakeClien.PrependReactor("create", resource, func(action core.Action) (handled bool, ret runtime.Object, err error) { - obj := action.(core.CreateAction).GetObject() - batchv1internal.SetDefaults_Job(obj.(*batchv1.Job)) - fakeWatch.Add(obj) - objChan <- obj - return false, nil, nil - }) - fakeClien.PrependReactor("update", resource, func(action core.Action) (handled bool, ret runtime.Object, err error) { - obj := action.(core.UpdateAction).GetObject() - fakeWatch.Modify(obj) - objChan <- obj - return false, nil, nil - }) - fakeClien.PrependReactor("delete", resource, func(action core.Action) (handled bool, ret runtime.Object, err error) { - obj := &batchv1.Job{ - ObjectMeta: metav1.ObjectMeta{ - Name: action.(core.DeleteAction).GetName(), - Namespace: action.GetNamespace(), - }, - } - fakeWatch.Delete(obj) - objChan <- obj - return false, nil, nil - }) - - return objChan -} - -func TestJobController(t *testing.T) { - flag.Set("logtostderr", "true") - flag.Set("v", "5") - flag.Parse() - - jobReviewDelay = 50 * time.Millisecond - clusterAvailableDelay = 200 * time.Millisecond - clusterUnavailableDelay = 200 * time.Millisecond - - fedclientset := fedclientfake.NewSimpleClientset() - fedChan := installWatchReactor(&fedclientset.Fake, "jobs") - - fedclientset.Federation().Clusters().Create(testutil.NewCluster("k8s-1", apiv1.ConditionTrue)) - fedclientset.Federation().Clusters().Create(testutil.NewCluster("k8s-2", apiv1.ConditionTrue)) - - kube1clientset := kubeclientfake.NewSimpleClientset() - kube1Chan := installWatchReactor(&kube1clientset.Fake, "jobs") - kube2clientset := kubeclientfake.NewSimpleClientset() - kube2Chan := installWatchReactor(&kube2clientset.Fake, "jobs") - - fedInformerClientFactory := func(cluster *fedv1.Cluster) (kubeclientset.Interface, error) { - switch cluster.Name { - case "k8s-1": - return kube1clientset, nil - case "k8s-2": - return kube2clientset, nil - default: - return nil, fmt.Errorf("Unknown cluster: %v", cluster.Name) - } - } - jobController := NewJobController(fedclientset) - fedjobinformer := testutil.ToFederatedInformerForTestOnly(jobController.fedJobInformer) - fedjobinformer.SetClientFactory(fedInformerClientFactory) - - stopChan := make(chan struct{}) - defer close(stopChan) - go jobController.Run(5, stopChan) - - test := func(job *batchv1.Job, parallelism1, parallelism2, completions1, completions2 int32) { - job, _ = fedclientset.Batch().Jobs(metav1.NamespaceDefault).Create(job) - - joinErrors := func(errors []error) error { - if len(errors) == 0 { - return nil - } - errorStrings := []string{} - for _, err := range errors { - errorStrings = append(errorStrings, err.Error()) - } - return fmt.Errorf("%s", strings.Join(errorStrings, "\n")) - } - - // check local jobs are created with correct spec - checkLocalJob := func(parallelism, completions int32) testutil.CheckingFunction { - return func(obj runtime.Object) error { - errors := []error{} - ljob := obj.(*batchv1.Job) - if !fedutil.ObjectMetaEquivalent(job.ObjectMeta, ljob.ObjectMeta) { - errors = append(errors, fmt.Errorf("Job meta un-equivalent: %#v (expected) != %#v (actual)", job.ObjectMeta, ljob.ObjectMeta)) - } - if err := checkEqual(t, *ljob.Spec.Parallelism, parallelism, "Spec.Parallelism"); err != nil { - errors = append(errors, err) - } - if ljob.Spec.Completions != nil { - if err := checkEqual(t, *ljob.Spec.Completions, completions, "Spec.Completions"); err != nil { - errors = append(errors, err) - } - } - return joinErrors(errors) - } - } - checkFedJob := func(obj runtime.Object) error { - errors := []error{} - return joinErrors(errors) - } - assert.NoError(t, testutil.CheckObjectFromChan(kube1Chan, checkLocalJob(parallelism1, completions1))) - assert.NoError(t, testutil.CheckObjectFromChan(kube2Chan, checkLocalJob(parallelism2, completions2))) - assert.NoError(t, testutil.CheckObjectFromChan(fedChan, checkFedJob)) - - // finish local jobs - job1, _ := kube1clientset.Batch().Jobs(metav1.NamespaceDefault).Get(job.Name, metav1.GetOptions{}) - finishJob(job1, 100*time.Millisecond) - job1, _ = kube1clientset.Batch().Jobs(metav1.NamespaceDefault).UpdateStatus(job1) - job2, _ := kube2clientset.Batch().Jobs(metav1.NamespaceDefault).Get(job.Name, metav1.GetOptions{}) - finishJob(job2, 100*time.Millisecond) - job2, _ = kube2clientset.Batch().Jobs(metav1.NamespaceDefault).UpdateStatus(job2) - - // check fed job status updated - assert.NoError(t, testutil.CheckObjectFromChan(fedChan, func(obj runtime.Object) error { - errors := []error{} - job := obj.(*batchv1.Job) - if err := checkEqual(t, *job.Spec.Parallelism, *job1.Spec.Parallelism+*job2.Spec.Parallelism, "Spec.Parallelism"); err != nil { - errors = append(errors, err) - } - if job.Spec.Completions != nil { - if err := checkEqual(t, *job.Spec.Completions, *job1.Spec.Completions+*job2.Spec.Completions, "Spec.Completions"); err != nil { - errors = append(errors, err) - } - } - if err := checkEqual(t, job.Status.Succeeded, job1.Status.Succeeded+job2.Status.Succeeded, "Status.Succeeded"); err != nil { - errors = append(errors, err) - } - return joinErrors(errors) - })) - - // delete fed job by set deletion time, and remove orphan finalizer - job, _ = fedclientset.Batch().Jobs(metav1.NamespaceDefault).Get(job.Name, metav1.GetOptions{}) - deletionTimestamp := metav1.Now() - job.DeletionTimestamp = &deletionTimestamp - finalizersutil.RemoveFinalizers(job, sets.NewString(metav1.FinalizerOrphanDependents)) - fedclientset.Batch().Jobs(metav1.NamespaceDefault).Update(job) - - // check jobs are deleted - checkDeleted := func(obj runtime.Object) error { - djob := obj.(*batchv1.Job) - deletedJob := &batchv1.Job{ - ObjectMeta: metav1.ObjectMeta{ - Name: djob.Name, - Namespace: djob.Namespace, - }, - } - if !reflect.DeepEqual(djob, deletedJob) { - return fmt.Errorf("%s/%s should be deleted", djob.Namespace, djob.Name) - } - return nil - } - assert.NoError(t, testutil.CheckObjectFromChan(kube1Chan, checkDeleted)) - assert.NoError(t, testutil.CheckObjectFromChan(kube2Chan, checkDeleted)) - assert.NoError(t, testutil.CheckObjectFromChan(fedChan, checkDeleted)) - } - - test(newJob("job1", 2, 7), 1, 1, 4, 3) - test(newJob("job2", 2, -1), 1, 1, -1, -1) - test(newJob("job3", 7, 2), 4, 3, 1, 1) - test(newJob("job4", 7, 1), 4, 3, 1, 0) -} - -func checkEqual(_ *testing.T, expected, actual interface{}, msg string) error { - if !assert.ObjectsAreEqual(expected, actual) { - return fmt.Errorf("%s not equal: %#v (expected) != %#v (actual)", msg, expected, actual) - } - return nil -} - -func newJob(name string, parallelism int32, completions int32) *batchv1.Job { - job := batchv1.Job{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: metav1.NamespaceDefault, - SelfLink: "/api/v1/namespaces/default/jobs/name", - }, - Spec: batchv1.JobSpec{ - Parallelism: ¶llelism, - Completions: &completions, - Template: apiv1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "foo": name, - }, - }, - Spec: apiv1.PodSpec{ - Containers: []apiv1.Container{ - {Image: "foo/bar"}, - }, - RestartPolicy: apiv1.RestartPolicyNever, - }, - }, - }, - } - if parallelism < 0 { - job.Spec.Parallelism = nil - } - if completions < 0 { - job.Spec.Completions = nil - } - - batchv1internal.SetDefaults_Job(&job) - return &job -} - -func newCondition(conditionType batchv1.JobConditionType, reason, message string) batchv1.JobCondition { - return batchv1.JobCondition{ - Type: conditionType, - Status: apiv1.ConditionTrue, - LastProbeTime: metav1.Now(), - LastTransitionTime: metav1.Now(), - Reason: reason, - Message: message, - } -} - -func finishJob(job *batchv1.Job, duration time.Duration) { - job.Status.Conditions = append(job.Status.Conditions, newCondition(batchv1.JobComplete, "", "")) - if job.Spec.Completions == nil { - job.Status.Succeeded = 1 - } else { - job.Status.Succeeded = *job.Spec.Completions - } - now := metav1.Now() - job.Status.StartTime = &now - time.Sleep(duration) - now = metav1.Now() - job.Status.CompletionTime = &now -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/BUILD deleted file mode 100644 index c81787a7d..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/BUILD +++ /dev/null @@ -1,86 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["servicecontroller.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/service", - deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/pkg/federation-controller/service/ingress:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/clusterselector:go_default_library", - "//federation/pkg/federation-controller/util/deletionhelper:go_default_library", - "//federation/pkg/federation-controller/util/eventsink:go_default_library", - "//pkg/api:go_default_library", - "//pkg/controller:go_default_library", - "//vendor/github.com/golang/glog: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/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/core/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - "//vendor/k8s.io/client-go/util/workqueue:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["servicecontroller_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/service", - library = ":go_default_library", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", - "//federation/pkg/federation-controller/service/ingress:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/deletionhelper:go_default_library", - "//federation/pkg/federation-controller/util/test:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/stretchr/testify/require: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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", - "//vendor/k8s.io/client-go/listers/core/v1: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", - "//federation/pkg/federation-controller/service/dns:all-srcs", - "//federation/pkg/federation-controller/service/ingress:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/BUILD deleted file mode 100644 index 7c1a2c8b1..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/BUILD +++ /dev/null @@ -1,62 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["dns_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/service/dns", - library = ":go_default_library", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", - "//federation/pkg/dnsprovider/providers/google/clouddns:go_default_library", - "//federation/pkg/federation-controller/service/ingress:go_default_library", - "//federation/pkg/federation-controller/util/test: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/util/sets:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = ["dns.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/service/dns", - deps = [ - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/pkg/dnsprovider:go_default_library", - "//federation/pkg/dnsprovider/rrstype:go_default_library", - "//federation/pkg/federation-controller/service/ingress:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//vendor/github.com/golang/glog: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/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/listers/core/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - "//vendor/k8s.io/client-go/util/workqueue:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/dns.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/dns.go deleted file mode 100644 index e478d76e6..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/dns.go +++ /dev/null @@ -1,549 +0,0 @@ -/* -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 dns - -import ( - "fmt" - "net" - "strings" - "time" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" - corelisters "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/tools/cache" - "k8s.io/client-go/util/flowcontrol" - "k8s.io/client-go/util/workqueue" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/dnsprovider" - "k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype" - "k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - - "github.com/golang/glog" -) - -const ( - ControllerName = "service-dns" - - UserAgentName = "federation-service-dns-controller" - - // minDNSTTL is the minimum safe DNS TTL value to use (in seconds). We use this as the TTL for all DNS records. - minDNSTTL = 180 - - serviceSyncPeriod = 30 * time.Second -) - -type ServiceDNSController struct { - // Client to federation api server - federationClient fedclientset.Interface - dns dnsprovider.Interface - federationName string - // serviceDNSSuffix is the DNS suffix we use when publishing service DNS names - serviceDNSSuffix string - // zoneName and zoneID are used to identify the zone in which to put records - zoneName string - zoneID string - dnsZones dnsprovider.Zones - // each federation should be configured with a single zone (e.g. "mycompany.com") - dnsZone dnsprovider.Zone - // Informer Store for federated services - serviceStore corelisters.ServiceLister - // Informer controller for federated services - serviceController cache.Controller - workQueue workqueue.Interface - objectDeliverer *util.DelayingDeliverer - flowcontrolBackoff *flowcontrol.Backoff -} - -// NewServiceDNSController returns a new service dns controller to manage DNS records for federated services -func NewServiceDNSController(client fedclientset.Interface, dnsProvider, dnsProviderConfig, federationName, - serviceDNSSuffix, zoneName, zoneID string) (*ServiceDNSController, error) { - dns, err := dnsprovider.InitDnsProvider(dnsProvider, dnsProviderConfig) - if err != nil { - runtime.HandleError(fmt.Errorf("DNS provider could not be initialized: %v", err)) - return nil, err - } - d := &ServiceDNSController{ - federationClient: client, - dns: dns, - federationName: federationName, - serviceDNSSuffix: serviceDNSSuffix, - zoneName: zoneName, - zoneID: zoneID, - workQueue: workqueue.New(), - objectDeliverer: util.NewDelayingDeliverer(), - flowcontrolBackoff: flowcontrol.NewBackOff(5*time.Second, time.Minute), - } - if err := d.validateConfig(); err != nil { - runtime.HandleError(fmt.Errorf("Invalid configuration passed to DNS provider: %v", err)) - return nil, err - } - if err := d.retrieveOrCreateDNSZone(); err != nil { - runtime.HandleError(fmt.Errorf("Failed to retrieve DNS zone: %v", err)) - return nil, err - } - - // Start informer in federated API servers on federated services - var serviceIndexer cache.Indexer - serviceIndexer, d.serviceController = cache.NewIndexerInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - return client.Core().Services(metav1.NamespaceAll).List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return client.Core().Services(metav1.NamespaceAll).Watch(options) - }, - }, - &v1.Service{}, - serviceSyncPeriod, - util.NewTriggerOnAllChanges(func(obj pkgruntime.Object) { d.workQueue.Add(obj) }), - cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, - ) - d.serviceStore = corelisters.NewServiceLister(serviceIndexer) - - return d, nil -} - -func (s *ServiceDNSController) DNSControllerRun(workers int, stopCh <-chan struct{}) { - defer runtime.HandleCrash() - defer s.workQueue.ShutDown() - - glog.Infof("Starting federation service dns controller") - - s.objectDeliverer.StartWithHandler(func(item *util.DelayingDelivererItem) { - s.workQueue.Add(item.Value.(*v1.Service)) - }) - defer s.objectDeliverer.Stop() - - util.StartBackoffGC(s.flowcontrolBackoff, stopCh) - go s.serviceController.Run(stopCh) - - for i := 0; i < workers; i++ { - go wait.Until(s.worker, time.Second, stopCh) - } - - <-stopCh - glog.Infof("Stopping federation service dns controller") -} - -// Adds backoff to delay if this delivery is related to some failure. Resets backoff if there was no failure. -func (s *ServiceDNSController) deliverService(service *v1.Service, delay time.Duration, failed bool) { - if failed { - s.flowcontrolBackoff.Next(service.String(), time.Now()) - delay = delay + s.flowcontrolBackoff.Get(service.String()) - } else { - s.flowcontrolBackoff.Reset(service.String()) - } - s.objectDeliverer.DeliverAfter(service.String(), service, delay) -} - -func wantsDNSRecords(service *v1.Service) bool { - return service.Spec.Type == v1.ServiceTypeLoadBalancer -} - -func (s *ServiceDNSController) workerFunction() bool { - item, quit := s.workQueue.Get() - if quit { - return true - } - defer s.workQueue.Done(item) - - service := item.(*v1.Service) - - if !wantsDNSRecords(service) { - return false - } - - ingress, err := ingress.ParseFederatedServiceIngress(service) - if err != nil { - runtime.HandleError(fmt.Errorf("Error in parsing lb ingress for service %s/%s: %v", service.Namespace, service.Name, err)) - return false - } - for _, clusterIngress := range ingress.Items { - err = s.ensureDNSRecords(clusterIngress.Cluster, service) - if err != nil { - runtime.HandleError(fmt.Errorf("Error when ensuring DNS records for service %s/%s: %v", service.Namespace, service.Name, err)) - s.deliverService(service, 0, true) - } - } - return false -} - -func (s *ServiceDNSController) worker() { - for { - if quit := s.workerFunction(); quit { - glog.Infof("service dns controller worker queue shutting down") - return - } - } -} - -func (s *ServiceDNSController) validateConfig() error { - if s.federationName == "" { - return fmt.Errorf("DNSController should not be run without federationName") - } - if s.zoneName == "" && s.zoneID == "" { - return fmt.Errorf("DNSController must be run with either zoneName or zoneID") - } - if s.serviceDNSSuffix == "" { - if s.zoneName == "" { - return fmt.Errorf("DNSController must be run with zoneName, if serviceDnsSuffix is not set") - } - s.serviceDNSSuffix = s.zoneName - } - if s.dns == nil { - return fmt.Errorf("DNSController should not be run without a dnsprovider") - } - zones, ok := s.dns.Zones() - if !ok { - return fmt.Errorf("the dns provider does not support zone enumeration, which is required for creating dns records") - } - s.dnsZones = zones - return nil -} - -func (s *ServiceDNSController) retrieveOrCreateDNSZone() error { - matchingZones, err := getDNSZones(s.zoneName, s.zoneID, s.dnsZones) - if err != nil { - return fmt.Errorf("error querying for DNS zones: %v", err) - } - switch len(matchingZones) { - case 0: // No matching zones for s.zoneName, so create one - if s.zoneName == "" { - return fmt.Errorf("DNSController must be run with zoneName to create zone automatically") - } - glog.Infof("DNS zone %q not found. Creating DNS zone %q.", s.zoneName, s.zoneName) - managedZone, err := s.dnsZones.New(s.zoneName) - if err != nil { - return err - } - zone, err := s.dnsZones.Add(managedZone) - if err != nil { - return err - } - glog.Infof("DNS zone %q successfully created. Note that DNS resolution will not work until you have registered this name with "+ - "a DNS registrar and they have changed the authoritative name servers for your domain to point to your DNS provider", zone.Name()) - case 1: // s.zoneName matches exactly one DNS zone - s.dnsZone = matchingZones[0] - default: // s.zoneName matches more than one DNS zone - return fmt.Errorf("Multiple matching DNS zones found for %q; please specify zoneID", s.zoneName) - } - return nil -} - -// getHealthyEndpoints returns the hostnames and/or IP addresses of healthy endpoints for the service, at a zone, region and global level (or an error) -func (s *ServiceDNSController) getHealthyEndpoints(clusterName string, service *v1.Service) (zoneEndpoints, regionEndpoints, globalEndpoints []string, err error) { - var ( - zoneNames []string - regionName string - ) - if zoneNames, regionName, err = s.getClusterZoneNames(clusterName); err != nil { - return nil, nil, nil, err - } - - // If federated service is deleted, return empty endpoints, so that DNS records are removed - if service.DeletionTimestamp != nil { - return zoneEndpoints, regionEndpoints, globalEndpoints, nil - } - - serviceIngress, err := ingress.ParseFederatedServiceIngress(service) - if err != nil { - return nil, nil, nil, err - } - - for _, lbClusterIngress := range serviceIngress.Items { - lbClusterName := lbClusterIngress.Cluster - lbZoneNames, lbRegionName, err := s.getClusterZoneNames(lbClusterName) - if err != nil { - return nil, nil, nil, err - } - for _, ingress := range lbClusterIngress.Items { - var address string - // We should get either an IP address or a hostname - use whichever one we get - if ingress.IP != "" { - address = ingress.IP - } else if ingress.Hostname != "" { - address = ingress.Hostname - } - if len(address) <= 0 { - return nil, nil, nil, fmt.Errorf("Service %s/%s in cluster %s has neither LoadBalancerStatus.ingress.ip nor LoadBalancerStatus.ingress.hostname. Cannot use it as endpoint for federated service", - service.Name, service.Namespace, clusterName) - } - for _, lbZoneName := range lbZoneNames { - for _, zoneName := range zoneNames { - if lbZoneName == zoneName { - zoneEndpoints = append(zoneEndpoints, address) - } - } - } - if lbRegionName == regionName { - regionEndpoints = append(regionEndpoints, address) - } - globalEndpoints = append(globalEndpoints, address) - } - } - return zoneEndpoints, regionEndpoints, globalEndpoints, nil -} - -// getClusterZoneNames returns the name of the zones (and the region) where the specified cluster exists (e.g. zones "us-east1-c" on GCE, or "us-east-1b" on AWS) -func (s *ServiceDNSController) getClusterZoneNames(clusterName string) ([]string, string, error) { - cluster, err := s.federationClient.Federation().Clusters().Get(clusterName, metav1.GetOptions{}) - if err != nil { - return nil, "", err - } - return cluster.Status.Zones, cluster.Status.Region, nil -} - -// getDNSZones returns the DNS zones matching dnsZoneName and dnsZoneID (if specified) -func getDNSZones(dnsZoneName string, dnsZoneID string, dnsZonesInterface dnsprovider.Zones) ([]dnsprovider.Zone, error) { - // TODO: We need query-by-name and query-by-id functions - dnsZones, err := dnsZonesInterface.List() - if err != nil { - return nil, err - } - - var matches []dnsprovider.Zone - findName := strings.TrimSuffix(dnsZoneName, ".") - for _, dnsZone := range dnsZones { - if dnsZoneID != "" { - if dnsZoneID != dnsZone.ID() { - continue - } - } - if findName != "" { - if strings.TrimSuffix(dnsZone.Name(), ".") != findName { - continue - } - } - matches = append(matches, dnsZone) - } - - return matches, nil -} - -// NOTE: that if the named resource record set does not exist, but no -// error occurred, the returned list will be empty, and the error will -// be nil -func getRrset(dnsName string, rrsetsInterface dnsprovider.ResourceRecordSets) ([]dnsprovider.ResourceRecordSet, error) { - return rrsetsInterface.Get(dnsName) -} - -func findRrset(list []dnsprovider.ResourceRecordSet, rrset dnsprovider.ResourceRecordSet) dnsprovider.ResourceRecordSet { - for i, elem := range list { - if dnsprovider.ResourceRecordSetsEquivalent(rrset, elem) { - return list[i] - } - } - return nil -} - -/* getResolvedEndpoints performs DNS resolution on the provided slice of endpoints (which might be DNS names or IPv4 addresses) - and returns a list of IPv4 addresses. If any of the endpoints are neither valid IPv4 addresses nor resolvable DNS names, - non-nil error is also returned (possibly along with a partially complete list of resolved endpoints. -*/ -func getResolvedEndpoints(endpoints []string) ([]string, error) { - resolvedEndpoints := sets.String{} - for _, endpoint := range endpoints { - if net.ParseIP(endpoint) == nil { - // It's not a valid IP address, so assume it's a DNS name, and try to resolve it, - // replacing its DNS name with its IP addresses in expandedEndpoints - ipAddrs, err := net.LookupHost(endpoint) - if err != nil { - return resolvedEndpoints.List(), err - } - for _, ip := range ipAddrs { - resolvedEndpoints = resolvedEndpoints.Union(sets.NewString(ip)) - } - } else { - resolvedEndpoints = resolvedEndpoints.Union(sets.NewString(endpoint)) - } - } - return resolvedEndpoints.List(), nil -} - -/* ensureDNSRrsets ensures (idempotently, and with minimum mutations) that all of the DNS resource record sets for dnsName are consistent with endpoints. - if endpoints is nil or empty, a CNAME record to uplevelCname is ensured. -*/ -func (s *ServiceDNSController) ensureDNSRrsets(dnsZone dnsprovider.Zone, dnsName string, endpoints []string, uplevelCname string) error { - rrsets, supported := dnsZone.ResourceRecordSets() - if !supported { - return fmt.Errorf("Failed to ensure DNS records for %s. DNS provider does not support the ResourceRecordSets interface", dnsName) - } - rrsetList, err := getRrset(dnsName, rrsets) // TODO: rrsets.Get(dnsName) - if err != nil { - return err - } - if len(rrsetList) == 0 { - glog.V(4).Infof("No recordsets found for DNS name %q. Need to add either A records (if we have healthy endpoints), or a CNAME record to %q", dnsName, uplevelCname) - if len(endpoints) < 1 { - glog.V(4).Infof("There are no healthy endpoint addresses at level %q, so CNAME to %q, if provided", dnsName, uplevelCname) - if uplevelCname != "" { - glog.V(4).Infof("Creating CNAME to %q for %q", uplevelCname, dnsName) - newRrset := rrsets.New(dnsName, []string{uplevelCname}, minDNSTTL, rrstype.CNAME) - glog.V(4).Infof("Adding recordset %v", newRrset) - err = rrsets.StartChangeset().Add(newRrset).Apply() - if err != nil { - return err - } - glog.V(4).Infof("Successfully created CNAME to %q for %q", uplevelCname, dnsName) - } else { - glog.V(4).Infof("We want no record for %q, and we have no record, so we're all good.", dnsName) - } - } else { - // We have valid endpoint addresses, so just add them as A records. - // But first resolve DNS names, as some cloud providers (like AWS) expose - // load balancers behind DNS names, not IP addresses. - glog.V(4).Infof("We have valid endpoint addresses %v at level %q, so add them as A records, after resolving DNS names", endpoints, dnsName) - resolvedEndpoints, err := getResolvedEndpoints(endpoints) - if err != nil { - return err // TODO: We could potentially add the ones we did get back, even if some of them failed to resolve. - } - newRrset := rrsets.New(dnsName, resolvedEndpoints, minDNSTTL, rrstype.A) - glog.V(4).Infof("Adding recordset %v", newRrset) - err = rrsets.StartChangeset().Add(newRrset).Apply() - if err != nil { - return err - } - glog.V(4).Infof("Successfully added recordset %v", newRrset) - } - } else { - // the rrsets already exists, so make it right. - glog.V(4).Infof("Recordset %v already exists. Ensuring that it is correct.", rrsetList) - if len(endpoints) < 1 { - // Need an appropriate CNAME record. Check that we have it. - newRrset := rrsets.New(dnsName, []string{uplevelCname}, minDNSTTL, rrstype.CNAME) - glog.V(4).Infof("No healthy endpoints for %s. Have recordsets %v. Need recordset %v", dnsName, rrsetList, newRrset) - found := findRrset(rrsetList, newRrset) - if found != nil { - // The existing rrset is equivalent to the required one - our work is done here - glog.V(4).Infof("Existing recordset %v is equivalent to needed recordset %v, our work is done here.", rrsetList, newRrset) - return nil - } else { - // Need to replace the existing one with a better one (or just remove it if we have no healthy endpoints). - glog.V(4).Infof("Existing recordset %v not equivalent to needed recordset %v removing existing and adding needed.", rrsetList, newRrset) - changeSet := rrsets.StartChangeset() - for i := range rrsetList { - changeSet = changeSet.Remove(rrsetList[i]) - } - if uplevelCname != "" { - changeSet = changeSet.Add(newRrset) - if err := changeSet.Apply(); err != nil { - return err - } - glog.V(4).Infof("Successfully replaced needed recordset %v -> %v", found, newRrset) - } else { - if err := changeSet.Apply(); err != nil { - return err - } - glog.V(4).Infof("Successfully removed existing recordset %v", found) - glog.V(4).Infof("Uplevel CNAME is empty string. Not adding recordset %v", newRrset) - } - } - } else { - // We have an rrset in DNS, possibly with some missing addresses and some unwanted addresses. - // And we have healthy endpoints. Just replace what's there with the healthy endpoints, if it's not already correct. - glog.V(4).Infof("%s: Healthy endpoints %v exist. Recordset %v exists. Reconciling.", dnsName, endpoints, rrsetList) - resolvedEndpoints, err := getResolvedEndpoints(endpoints) - if err != nil { // Some invalid addresses or otherwise unresolvable DNS names. - return err // TODO: We could potentially add the ones we did get back, even if some of them failed to resolve. - } - newRrset := rrsets.New(dnsName, resolvedEndpoints, minDNSTTL, rrstype.A) - glog.V(4).Infof("Have recordset %v. Need recordset %v", rrsetList, newRrset) - found := findRrset(rrsetList, newRrset) - if found != nil { - glog.V(4).Infof("Existing recordset %v is equivalent to needed recordset %v, our work is done here.", found, newRrset) - // TODO: We could be more thorough about checking for equivalence to avoid unnecessary updates, but in the - // worst case we'll just replace what's there with an equivalent, if not exactly identical record set. - return nil - } else { - // Need to replace the existing one with a better one - glog.V(4).Infof("Existing recordset %v is not equivalent to needed recordset %v, removing existing and adding needed.", found, newRrset) - changeSet := rrsets.StartChangeset() - for i := range rrsetList { - changeSet = changeSet.Remove(rrsetList[i]) - } - changeSet = changeSet.Add(newRrset) - if err = changeSet.Apply(); err != nil { - return err - } - glog.V(4).Infof("Successfully replaced recordset %v -> %v", found, newRrset) - } - } - } - return nil -} - -/* ensureDNSRecords ensures (idempotently, and with minimum mutations) that all of the DNS records for a service in a given cluster are correct, -given the current state of that service in that cluster. This should be called every time the state of a service might have changed -(either w.r.t. its loadbalancer address, or if the number of healthy backend endpoints for that service transitioned from zero to non-zero -(or vice versa). Only shards of the service which have both a loadbalancer ingress IP address or hostname AND at least one healthy backend endpoint -are included in DNS records for that service (at all of zone, region and global levels). All other addresses are removed. Also, if no shards exist -in the zone or region of the cluster, a CNAME reference to the next higher level is ensured to exist. */ -func (s *ServiceDNSController) ensureDNSRecords(clusterName string, service *v1.Service) error { - // Quinton: Pseudocode.... - // See https://github.com/kubernetes/kubernetes/pull/25107#issuecomment-218026648 - // For each service we need the following DNS names: - // mysvc.myns.myfed.svc.z1.r1.mydomain.com (for zone z1 in region r1) - // - an A record to IP address of specific shard in that zone (if that shard exists and has healthy endpoints) - // - OR a CNAME record to the next level up, i.e. mysvc.myns.myfed.svc.r1.mydomain.com (if a healthy shard does not exist in zone z1) - // mysvc.myns.myfed.svc.r1.mydomain.com - // - a set of A records to IP addresses of all healthy shards in region r1, if one or more of these exist - // - OR a CNAME record to the next level up, i.e. mysvc.myns.myfed.svc.mydomain.com (if no healthy shards exist in region r1) - // mysvc.myns.myfed.svc.mydomain.com - // - a set of A records to IP addresses of all healthy shards in all regions, if one or more of these exist. - // - no record (NXRECORD response) if no healthy shards exist in any regions - // - // Each service has the current known state of loadbalancer ingress for the federated cluster stored in annotations. - // So generate the DNS records based on the current state and ensure those desired DNS records match the - // actual DNS records (add new records, remove deleted records, and update changed records). - // - serviceName := service.Name - namespaceName := service.Namespace - zoneNames, regionName, err := s.getClusterZoneNames(clusterName) - if err != nil { - return err - } - if zoneNames == nil { - return fmt.Errorf("failed to get cluster zone names") - } - commonPrefix := serviceName + "." + namespaceName + "." + s.federationName + ".svc" - // dnsNames is the path up the DNS search tree, starting at the leaf - dnsNames := []string{ - strings.Join([]string{commonPrefix, zoneNames[0], regionName, s.serviceDNSSuffix}, "."), // zone level - TODO might need other zone names for multi-zone clusters - strings.Join([]string{commonPrefix, regionName, s.serviceDNSSuffix}, "."), // region level, one up from zone level - strings.Join([]string{commonPrefix, s.serviceDNSSuffix}, "."), // global level, one up from region level - "", // nowhere to go up from global level - } - - zoneEndpoints, regionEndpoints, globalEndpoints, err := s.getHealthyEndpoints(clusterName, service) - if err != nil { - return err - } - endpoints := [][]string{zoneEndpoints, regionEndpoints, globalEndpoints} - for i, endpoint := range endpoints { - if err = s.ensureDNSRrsets(s.dnsZone, dnsNames[i], endpoint, dnsNames[i+1]); err != nil { - return err - } - } - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/dns_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/dns_test.go deleted file mode 100644 index b30c23c7e..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/dns/dns_test.go +++ /dev/null @@ -1,251 +0,0 @@ -/* -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 dns - -import ( - "fmt" - "sort" - "testing" - "time" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fakefedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns" // Only for unit testing purposes. - "k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress" - . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" -) - -// NewClusterWithRegionZone builds a new cluster object with given region and zone attributes. -func NewClusterWithRegionZone(name string, readyStatus v1.ConditionStatus, region, zone string) *v1beta1.Cluster { - cluster := NewCluster(name, readyStatus) - cluster.Status.Zones = []string{zone} - cluster.Status.Region = region - return cluster -} - -func TestServiceController_ensureDnsRecords(t *testing.T) { - cluster1Name := "c1" - cluster2Name := "c2" - cluster1 := NewClusterWithRegionZone(cluster1Name, v1.ConditionTrue, "fooregion", "foozone") - cluster2 := NewClusterWithRegionZone(cluster2Name, v1.ConditionTrue, "barregion", "barzone") - globalDNSName := "servicename.servicenamespace.myfederation.svc.federation.example.com" - fooRegionDNSName := "servicename.servicenamespace.myfederation.svc.fooregion.federation.example.com" - fooZoneDNSName := "servicename.servicenamespace.myfederation.svc.foozone.fooregion.federation.example.com" - barRegionDNSName := "servicename.servicenamespace.myfederation.svc.barregion.federation.example.com" - barZoneDNSName := "servicename.servicenamespace.myfederation.svc.barzone.barregion.federation.example.com" - - tests := []struct { - name string - service v1.Service - expected sets.String - }{ - { - name: "ServiceWithSingleLBIngress", - service: v1.Service{ - ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ - ingress.FederatedServiceIngressAnnotation: ingress.NewFederatedServiceIngress(). - AddEndpoints(cluster1Name, []string{"198.51.100.1"}). - AddEndpoints(cluster2Name, []string{}). - String()}, - }, - }, - expected: sets.NewString( - "example.com:"+globalDNSName+":A:180:[198.51.100.1]", - "example.com:"+fooRegionDNSName+":A:180:[198.51.100.1]", - "example.com:"+fooZoneDNSName+":A:180:[198.51.100.1]", - "example.com:"+barRegionDNSName+":CNAME:180:["+globalDNSName+"]", - "example.com:"+barZoneDNSName+":CNAME:180:["+barRegionDNSName+"]", - ), - }, - /* - TODO: getResolvedEndpoints preforms DNS lookup. - Mock and maybe look at error handling when some endpoints resolve, but also caching? - { - name: "withname", - service: v1.Service{ - ObjectMeta: metav1.ObjectMeta{}, - }, - expected: []string{ - "example.com:"+globalDNSName+":A:180:[198.51.100.1]", - "example.com:"+fooRegionDNSName+":A:180:[198.51.100.1]", - "example.com:"+fooZoneDNSName+":A:180:[198.51.100.1]", - }, - }, - */ - { - name: "ServiceWithNoLBIngress", - service: v1.Service{ - ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ - ingress.FederatedServiceIngressAnnotation: ingress.NewFederatedServiceIngress(). - AddEndpoints(cluster1Name, []string{}). - AddEndpoints(cluster2Name, []string{}). - String()}, - }, - }, - expected: sets.NewString( - "example.com:"+fooRegionDNSName+":CNAME:180:["+globalDNSName+"]", - "example.com:"+fooZoneDNSName+":CNAME:180:["+fooRegionDNSName+"]", - "example.com:"+barRegionDNSName+":CNAME:180:["+globalDNSName+"]", - "example.com:"+barZoneDNSName+":CNAME:180:["+barRegionDNSName+"]", - ), - }, - { - name: "ServiceWithMultipleLBIngress", - service: v1.Service{ - ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ - ingress.FederatedServiceIngressAnnotation: ingress.NewFederatedServiceIngress(). - AddEndpoints(cluster1Name, []string{"198.51.100.1"}). - AddEndpoints(cluster2Name, []string{"198.51.200.1"}). - String()}, - }, - }, - expected: sets.NewString( - "example.com:"+globalDNSName+":A:180:[198.51.100.1 198.51.200.1]", - "example.com:"+fooRegionDNSName+":A:180:[198.51.100.1]", - "example.com:"+fooZoneDNSName+":A:180:[198.51.100.1]", - "example.com:"+barRegionDNSName+":A:180:[198.51.200.1]", - "example.com:"+barZoneDNSName+":A:180:[198.51.200.1]", - ), - }, - { - name: "ServiceWithLBIngressAndServiceDeleted", - service: v1.Service{ - ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ - ingress.FederatedServiceIngressAnnotation: ingress.NewFederatedServiceIngress(). - AddEndpoints(cluster1Name, []string{"198.51.100.1"}). - AddEndpoints(cluster2Name, []string{"198.51.200.1"}). - String()}, - DeletionTimestamp: &metav1.Time{Time: time.Now()}, - }, - }, - expected: sets.NewString( - // TODO: Ideally we should expect that there are no DNS records when federated service is deleted. Need to remove these leaks in future - "example.com:"+fooRegionDNSName+":CNAME:180:["+globalDNSName+"]", - "example.com:"+fooZoneDNSName+":CNAME:180:["+fooRegionDNSName+"]", - "example.com:"+barRegionDNSName+":CNAME:180:["+globalDNSName+"]", - "example.com:"+barZoneDNSName+":CNAME:180:["+barRegionDNSName+"]", - ), - }, - { - name: "ServiceWithMultipleLBIngressAndOneLBIngressGettingRemoved", - service: v1.Service{ - ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ - ingress.FederatedServiceIngressAnnotation: ingress.NewFederatedServiceIngress(). - AddEndpoints(cluster1Name, []string{"198.51.100.1"}). - AddEndpoints(cluster2Name, []string{"198.51.200.1"}). - RemoveEndpoint(cluster2Name, "198.51.200.1"). - String()}, - }, - }, - expected: sets.NewString( - "example.com:"+globalDNSName+":A:180:[198.51.100.1]", - "example.com:"+fooRegionDNSName+":A:180:[198.51.100.1]", - "example.com:"+fooZoneDNSName+":A:180:[198.51.100.1]", - "example.com:"+barRegionDNSName+":CNAME:180:["+globalDNSName+"]", - "example.com:"+barZoneDNSName+":CNAME:180:["+barRegionDNSName+"]", - ), - }, - { - name: "ServiceWithMultipleLBIngressAndAllLBIngressGettingRemoved", - service: v1.Service{ - ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ - ingress.FederatedServiceIngressAnnotation: ingress.NewFederatedServiceIngress(). - AddEndpoints(cluster1Name, []string{"198.51.100.1"}). - AddEndpoints(cluster2Name, []string{"198.51.200.1"}). - RemoveEndpoint(cluster1Name, "198.51.100.1"). - RemoveEndpoint(cluster2Name, "198.51.200.1"). - String()}, - }, - }, - expected: sets.NewString( - "example.com:"+fooRegionDNSName+":CNAME:180:["+globalDNSName+"]", - "example.com:"+fooZoneDNSName+":CNAME:180:["+fooRegionDNSName+"]", - "example.com:"+barRegionDNSName+":CNAME:180:["+globalDNSName+"]", - "example.com:"+barZoneDNSName+":CNAME:180:["+barRegionDNSName+"]", - ), - }, - } - for _, test := range tests { - fakedns, _ := clouddns.NewFakeInterface() - fakednsZones, ok := fakedns.Zones() - if !ok { - t.Error("Unable to fetch zones") - } - fakeClient := &fakefedclientset.Clientset{} - RegisterFakeClusterGet(&fakeClient.Fake, &v1beta1.ClusterList{Items: []v1beta1.Cluster{*cluster1, *cluster2}}) - d := ServiceDNSController{ - federationClient: fakeClient, - dns: fakedns, - dnsZones: fakednsZones, - serviceDNSSuffix: "federation.example.com", - zoneName: "example.com", - federationName: "myfederation", - } - - dnsZones, err := getDNSZones(d.zoneName, d.zoneID, d.dnsZones) - if err != nil { - t.Errorf("Test failed for %s, Get DNS Zones failed: %v", test.name, err) - } - d.dnsZone = dnsZones[0] - test.service.Name = "servicename" - test.service.Namespace = "servicenamespace" - - ingress, err := ingress.ParseFederatedServiceIngress(&test.service) - if err != nil { - t.Errorf("Error in parsing lb ingress for service %s/%s: %v", test.service.Namespace, test.service.Name, err) - return - } - for _, clusterIngress := range ingress.Items { - d.ensureDNSRecords(clusterIngress.Cluster, &test.service) - } - - zones, err := fakednsZones.List() - if err != nil { - t.Errorf("error querying zones: %v", err) - } - - // Dump every record to a testable-by-string-comparison form - records := sets.NewString() - for _, z := range zones { - zoneName := z.Name() - - rrs, ok := z.ResourceRecordSets() - if !ok { - t.Errorf("cannot get rrs for zone %q", zoneName) - } - - rrList, err := rrs.List() - if err != nil { - t.Errorf("error querying rr for zone %q: %v", zoneName, err) - } - for _, rr := range rrList { - rrdatas := rr.Rrdatas() - - // Put in consistent (testable-by-string-comparison) order - sort.Strings(rrdatas) - records.Insert(fmt.Sprintf("%s:%s:%s:%d:%s", zoneName, rr.Name(), rr.Type(), rr.Ttl(), rrdatas)) - } - } - - if !records.Equal(test.expected) { - t.Errorf("Test %q failed. Actual=%v, Expected=%v", test.name, records, test.expected) - } - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress/BUILD deleted file mode 100644 index a849819ed..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["ingress.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress", - deps = [ - "//federation/apis/federation:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress/ingress.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress/ingress.go deleted file mode 100644 index 776ccf78f..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress/ingress.go +++ /dev/null @@ -1,136 +0,0 @@ -/* -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 ingress - -import ( - "encoding/json" - "sort" - "strings" - - "k8s.io/api/core/v1" - fedapi "k8s.io/kubernetes/federation/apis/federation" -) - -// Compile time check for interface adherence -var _ sort.Interface = &FederatedServiceIngress{} - -const ( - FederatedServiceIngressAnnotation = "federation.kubernetes.io/service-ingresses" -) - -// FederatedServiceIngress implements sort.Interface. -type FederatedServiceIngress struct { - fedapi.FederatedServiceIngress -} - -func NewFederatedServiceIngress() *FederatedServiceIngress { - return &FederatedServiceIngress{} -} - -func (ingress *FederatedServiceIngress) String() string { - annotationBytes, _ := json.Marshal(ingress) - return string(annotationBytes[:]) -} - -// Len is to satisfy of sort.Interface. -func (ingress *FederatedServiceIngress) Len() int { - return len(ingress.Items) -} - -// Less is to satisfy of sort.Interface. -func (ingress *FederatedServiceIngress) Less(i, j int) bool { - return (strings.Compare(ingress.Items[i].Cluster, ingress.Items[j].Cluster) < 0) -} - -// Swap is to satisfy of sort.Interface. -func (ingress *FederatedServiceIngress) Swap(i, j int) { - ingress.Items[i].Cluster, ingress.Items[j].Cluster = ingress.Items[j].Cluster, ingress.Items[i].Cluster - ingress.Items[i].Items, ingress.Items[j].Items = ingress.Items[j].Items, ingress.Items[i].Items -} - -// GetClusterLoadBalancerIngresses returns loadbalancer ingresses for given cluster if exist otherwise returns an empty slice -func (ingress *FederatedServiceIngress) GetClusterLoadBalancerIngresses(cluster string) []v1.LoadBalancerIngress { - for _, clusterIngress := range ingress.Items { - if cluster == clusterIngress.Cluster { - return clusterIngress.Items - } - } - return []v1.LoadBalancerIngress{} -} - -// AddClusterLoadBalancerIngresses adds the ladbalancer ingresses for a given cluster to federated service ingress -func (ingress *FederatedServiceIngress) AddClusterLoadBalancerIngresses(cluster string, loadbalancerIngresses []v1.LoadBalancerIngress) { - for i, clusterIngress := range ingress.Items { - if cluster == clusterIngress.Cluster { - ingress.Items[i].Items = append(ingress.Items[i].Items, loadbalancerIngresses...) - return - } - } - clusterNewIngress := fedapi.ClusterServiceIngress{Cluster: cluster, Items: loadbalancerIngresses} - ingress.Items = append(ingress.Items, clusterNewIngress) - sort.Sort(ingress) -} - -// AddEndpoints add one or more endpoints to federated service ingress. -// endpoints are federated cluster's loadbalancer ip/hostname for the service -func (ingress *FederatedServiceIngress) AddEndpoints(cluster string, endpoints []string) *FederatedServiceIngress { - lbIngress := []v1.LoadBalancerIngress{} - for _, endpoint := range endpoints { - lbIngress = append(lbIngress, v1.LoadBalancerIngress{IP: endpoint}) - } - ingress.AddClusterLoadBalancerIngresses(cluster, lbIngress) - return ingress -} - -// RemoveEndpoint removes a single endpoint (ip/hostname) from the federated service ingress -func (ingress *FederatedServiceIngress) RemoveEndpoint(cluster string, endpoint string) *FederatedServiceIngress { - for i, clusterIngress := range ingress.Items { - if cluster == clusterIngress.Cluster { - for j, lbIngress := range clusterIngress.Items { - if lbIngress.IP == endpoint { - ingress.Items[i].Items = append(ingress.Items[i].Items[:j], ingress.Items[i].Items[j+1:]...) - } - } - } - } - return ingress -} - -// ParseFederatedServiceIngress extracts federated service ingresses from a federated service -func ParseFederatedServiceIngress(service *v1.Service) (*FederatedServiceIngress, error) { - ingress := FederatedServiceIngress{} - if service.Annotations == nil { - return &ingress, nil - } - federatedServiceIngressString, found := service.Annotations[FederatedServiceIngressAnnotation] - if !found { - return &ingress, nil - } - if err := json.Unmarshal([]byte(federatedServiceIngressString), &ingress); err != nil { - return &ingress, err - } - return &ingress, nil -} - -// UpdateIngressAnnotation updates the federated service with service ingress annotation -func UpdateIngressAnnotation(service *v1.Service, ingress *FederatedServiceIngress) *v1.Service { - if service.Annotations == nil { - service.Annotations = make(map[string]string) - } - service.Annotations[FederatedServiceIngressAnnotation] = ingress.String() - return service -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/servicecontroller.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/servicecontroller.go deleted file mode 100644 index bda8b83a8..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/servicecontroller.go +++ /dev/null @@ -1,726 +0,0 @@ -/* -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 service - -import ( - "fmt" - "reflect" - "sort" - "strings" - "time" - - "github.com/golang/glog" - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - corelisters "k8s.io/client-go/listers/core/v1" - cache "k8s.io/client-go/tools/cache" - "k8s.io/client-go/tools/record" - "k8s.io/client-go/util/flowcontrol" - "k8s.io/client-go/util/workqueue" - fedapi "k8s.io/kubernetes/federation/apis/federation" - v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/controller" -) - -const ( - serviceSyncPeriod = 30 * time.Second - - UserAgentName = "federation-service-controller" - - reviewDelay = 10 * time.Second - updateTimeout = 30 * time.Second - allClustersKey = "ALL_CLUSTERS" - clusterAvailableDelay = time.Second * 20 - ControllerName = "services" -) - -var ( - RequiredResources = []schema.GroupVersionResource{v1.SchemeGroupVersion.WithResource("services")} -) - -type ServiceController struct { - federationClient fedclientset.Interface - // A store of services, populated by the serviceController - serviceStore corelisters.ServiceLister - // Watches changes to all services - serviceController cache.Controller - federatedInformer fedutil.FederatedInformer - eventBroadcaster record.EventBroadcaster - eventRecorder record.EventRecorder - // services that need to be synced - queue *workqueue.Type - - // For triggering all services reconciliation. This is used when - // a new cluster becomes available. - clusterDeliverer *fedutil.DelayingDeliverer - - deletionHelper *deletionhelper.DeletionHelper - - reviewDelay time.Duration - clusterAvailableDelay time.Duration - updateTimeout time.Duration - - endpointFederatedInformer fedutil.FederatedInformer - federatedUpdater fedutil.FederatedUpdater - objectDeliverer *fedutil.DelayingDeliverer - flowcontrolBackoff *flowcontrol.Backoff -} - -// New returns a new service controller to keep service objects between -// the federation and member clusters in sync. -func New(federationClient fedclientset.Interface) *ServiceController { - broadcaster := record.NewBroadcaster() - broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(federationClient)) - recorder := broadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: UserAgentName}) - - s := &ServiceController{ - federationClient: federationClient, - eventBroadcaster: broadcaster, - eventRecorder: recorder, - queue: workqueue.New(), - reviewDelay: reviewDelay, - clusterAvailableDelay: clusterAvailableDelay, - updateTimeout: updateTimeout, - flowcontrolBackoff: flowcontrol.NewBackOff(5*time.Second, time.Minute), - } - s.objectDeliverer = fedutil.NewDelayingDeliverer() - s.clusterDeliverer = fedutil.NewDelayingDeliverer() - var serviceIndexer cache.Indexer - serviceIndexer, s.serviceController = cache.NewIndexerInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - return s.federationClient.Core().Services(metav1.NamespaceAll).List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return s.federationClient.Core().Services(metav1.NamespaceAll).Watch(options) - }, - }, - &v1.Service{}, - serviceSyncPeriod, - fedutil.NewTriggerOnAllChanges(func(obj pkgruntime.Object) { - glog.V(5).Infof("Delivering notification from federation: %v", obj) - s.deliverObject(obj, 0, false) - }), - cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, - ) - s.serviceStore = corelisters.NewServiceLister(serviceIndexer) - - clusterLifecycle := fedutil.ClusterLifecycleHandlerFuncs{ - ClusterAvailable: func(cluster *v1beta1.Cluster) { - s.clusterDeliverer.DeliverAfter(allClustersKey, nil, clusterAvailableDelay) - }, - } - fedInformerFactory := func(cluster *v1beta1.Cluster, targetClient kubeclientset.Interface) (cache.Store, cache.Controller) { - return cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - return targetClient.Core().Services(metav1.NamespaceAll).List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return targetClient.Core().Services(metav1.NamespaceAll).Watch(options) - }, - }, - &v1.Service{}, - controller.NoResyncPeriodFunc(), - // Trigger reconciliation whenever something in federated cluster is changed. In most cases it - // would be just confirmation that some service operation succeeded. - fedutil.NewTriggerOnAllChanges( - func(obj pkgruntime.Object) { - glog.V(5).Infof("Delivering service notification from federated cluster %s: %v", cluster.Name, obj) - s.deliverObject(obj, s.reviewDelay, false) - }, - )) - } - - s.federatedInformer = fedutil.NewFederatedInformer(federationClient, fedInformerFactory, &clusterLifecycle) - - s.federatedUpdater = fedutil.NewFederatedUpdater(s.federatedInformer, "service", updateTimeout, s.eventRecorder, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - svc := obj.(*v1.Service) - _, err := client.Core().Services(svc.Namespace).Create(svc) - return err - }, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - svc := obj.(*v1.Service) - _, err := client.Core().Services(svc.Namespace).Update(svc) - return err - }, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - svc := obj.(*v1.Service) - orphanDependents := false - err := client.Core().Services(svc.Namespace).Delete(svc.Name, &metav1.DeleteOptions{OrphanDependents: &orphanDependents}) - return err - }) - - // Federated informers on endpoints in federated clusters. - // This will enable to check if service ingress endpoints in federated clusters are reachable - s.endpointFederatedInformer = fedutil.NewFederatedInformer( - federationClient, - func(cluster *v1beta1.Cluster, targetClient kubeclientset.Interface) ( - cache.Store, cache.Controller) { - return cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - return targetClient.Core().Endpoints(metav1.NamespaceAll).List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return targetClient.Core().Endpoints(metav1.NamespaceAll).Watch(options) - }, - }, - &v1.Endpoints{}, - controller.NoResyncPeriodFunc(), - fedutil.NewTriggerOnMetaAndFieldChanges( - "Subsets", - func(obj pkgruntime.Object) { - glog.V(5).Infof("Delivering endpoint notification from federated cluster %s :%v", cluster.Name, obj) - s.deliverObject(obj, s.reviewDelay, false) - }, - )) - }, - &fedutil.ClusterLifecycleHandlerFuncs{}, - ) - - s.deletionHelper = deletionhelper.NewDeletionHelper( - s.updateService, - // objNameFunc - func(obj pkgruntime.Object) string { - service := obj.(*v1.Service) - return fmt.Sprintf("%s/%s", service.Namespace, service.Name) - }, - s.federatedInformer, - s.federatedUpdater, - ) - - return s -} - -// Sends the given updated object to apiserver. -// Assumes that the given object is a service. -func (s *ServiceController) updateService(obj pkgruntime.Object) (pkgruntime.Object, error) { - service := obj.(*v1.Service) - return s.federationClient.Core().Services(service.Namespace).Update(service) -} - -// Run starts informers, delay deliverers and workers. Workers continuously watch for events which could -// be from federation or federated clusters and tries to reconcile the service objects from federation to -// federated clusters. -func (s *ServiceController) Run(workers int, stopCh <-chan struct{}) { - glog.Infof("Starting federation service controller") - - defer runtime.HandleCrash() - defer s.queue.ShutDown() - - s.federatedInformer.Start() - defer s.federatedInformer.Stop() - - s.endpointFederatedInformer.Start() - defer s.endpointFederatedInformer.Stop() - - s.objectDeliverer.StartWithHandler(func(item *fedutil.DelayingDelivererItem) { - s.queue.Add(item.Value.(string)) - }) - defer s.objectDeliverer.Stop() - - s.clusterDeliverer.StartWithHandler(func(_ *fedutil.DelayingDelivererItem) { - s.deliverServicesOnClusterChange() - }) - defer s.clusterDeliverer.Stop() - - fedutil.StartBackoffGC(s.flowcontrolBackoff, stopCh) - go s.serviceController.Run(stopCh) - - for i := 0; i < workers; i++ { - go wait.Until(s.fedServiceWorker, time.Second, stopCh) - } - - <-stopCh - glog.Infof("Shutting down federation service controller") -} - -type reconciliationStatus string - -const ( - statusAllOk = reconciliationStatus("ALL_OK") - statusRecoverableError = reconciliationStatus("RECOVERABLE_ERROR") - statusNonRecoverableError = reconciliationStatus("NON_RECOVERABLE_ERROR") - statusNotSynced = reconciliationStatus("NOSYNC") -) - -func (s *ServiceController) workerFunction() bool { - key, quit := s.queue.Get() - if quit { - return true - } - defer s.queue.Done(key) - - service := key.(string) - status := s.reconcileService(service) - switch status { - case statusAllOk: - // do nothing, reconcile is successful. - case statusNotSynced: - glog.V(5).Infof("Delivering notification for %q after clusterAvailableDelay", service) - s.deliverService(service, s.clusterAvailableDelay, false) - case statusRecoverableError: - s.deliverService(service, 0, true) - case statusNonRecoverableError: - // do nothing, error is already logged. - } - return false -} - -// fedServiceWorker runs a worker thread that just dequeues items, processes them, and marks them done. -func (s *ServiceController) fedServiceWorker() { - for { - if quit := s.workerFunction(); quit { - glog.Infof("service controller worker queue shutting down") - return - } - } -} - -// delete deletes the given service or returns error if the deletion was not complete. -func (s *ServiceController) delete(service *v1.Service) error { - glog.V(3).Infof("Handling deletion of service: %v", *service) - _, err := s.deletionHelper.HandleObjectInUnderlyingClusters(service) - if err != nil { - return err - } - - err = s.federationClient.Core().Services(service.Namespace).Delete(service.Name, nil) - if err != nil { - // Its all good if the error is not found error. That means it is deleted already and we do not have to do anything. - // This is expected when we are processing an update as a result of service finalizer deletion. - // The process that deleted the last finalizer is also going to delete the service and we do not have to do anything. - if !errors.IsNotFound(err) { - return fmt.Errorf("failed to delete service: %v", err) - } - } - return nil -} - -func (s *ServiceController) deliverServicesOnClusterChange() { - if !s.isSynced() { - s.clusterDeliverer.DeliverAfter(allClustersKey, nil, s.clusterAvailableDelay) - } - glog.V(5).Infof("Delivering all service as cluster status changed") - serviceList, err := s.serviceStore.List(labels.Everything()) - if err != nil { - runtime.HandleError(fmt.Errorf("error listing federated services: %v", err)) - s.clusterDeliverer.DeliverAfter(allClustersKey, nil, 0) - } - for _, service := range serviceList { - s.deliverObject(service, 0, false) - } -} - -func (s *ServiceController) deliverObject(object interface{}, delay time.Duration, failed bool) { - switch value := object.(type) { - case *v1.Service: - s.deliverService(types.NamespacedName{Namespace: value.Namespace, Name: value.Name}.String(), delay, failed) - case *v1.Endpoints: - s.deliverService(types.NamespacedName{Namespace: value.Namespace, Name: value.Name}.String(), delay, failed) - default: - glog.Warningf("Unknown object received: %v", object) - } -} - -// Adds backoff to delay if this delivery is related to some failure. Resets backoff if there was no failure. -func (s *ServiceController) deliverService(key string, delay time.Duration, failed bool) { - if failed { - s.flowcontrolBackoff.Next(key, time.Now()) - delay = delay + s.flowcontrolBackoff.Get(key) - } else { - s.flowcontrolBackoff.Reset(key) - } - s.objectDeliverer.DeliverAfter(key, key, delay) -} - -// Check whether all data stores are in sync. False is returned if any of the informer/stores is not yet synced with -// the corresponding api server. -func (s *ServiceController) isSynced() bool { - if !s.federatedInformer.ClustersSynced() { - glog.V(2).Infof("Cluster list not synced") - return false - } - serviceClusters, err := s.federatedInformer.GetReadyClusters() - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to get ready clusters: %v", err)) - return false - } - if !s.federatedInformer.GetTargetStore().ClustersSynced(serviceClusters) { - return false - } - - if !s.endpointFederatedInformer.ClustersSynced() { - glog.V(2).Infof("Cluster list not synced") - return false - } - endpointClusters, err := s.endpointFederatedInformer.GetReadyClusters() - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to get ready clusters: %v", err)) - return false - } - if !s.endpointFederatedInformer.GetTargetStore().ClustersSynced(endpointClusters) { - return false - } - - return true -} - -// reconcileService triggers reconciliation of a federated service with corresponding services in federated clusters. -// This function is called on service Addition/Deletion/Update either in federated cluster or in federation. -func (s *ServiceController) reconcileService(key string) reconciliationStatus { - if !s.isSynced() { - glog.V(4).Infof("Data store not synced, delaying reconcilation: %v", key) - return statusNotSynced - } - - namespace, name, err := cache.SplitMetaNamespaceKey(key) - if err != nil { - runtime.HandleError(fmt.Errorf("Invalid key %q received, unable to split key to namespace and name, err: %v", key, err)) - return statusNonRecoverableError - } - - service, err := s.serviceStore.Services(namespace).Get(name) - if errors.IsNotFound(err) { - // Not a federated service, ignoring. - return statusAllOk - } else if err != nil { - runtime.HandleError(fmt.Errorf("Failed to retrieve federated service %q from store: %v", key, err)) - return statusRecoverableError - } - - glog.V(3).Infof("Reconciling federated service: %s", key) - - // Create a copy before modifying the service to prevent race condition with other readers of service from store - fedService := service.DeepCopy() - - // Handle deletion of federated service - if fedService.DeletionTimestamp != nil { - if err := s.delete(fedService); err != nil { - runtime.HandleError(fmt.Errorf("Failed to delete %s: %v", key, err)) - s.eventRecorder.Eventf(fedService, api.EventTypeWarning, "DeleteFailed", "Deleting service failed: %v", err) - return statusRecoverableError - } - glog.V(3).Infof("Deleting federated service succeeded: %s", key) - s.eventRecorder.Eventf(fedService, api.EventTypeNormal, "DeleteSucceed", "Deleting service succeeded") - return statusAllOk - } - - // Add the required finalizers before creating a service in underlying clusters. This ensures that the - // dependent services in underlying clusters are deleted when the federated service is deleted. - updatedServiceObj, err := s.deletionHelper.EnsureFinalizers(fedService) - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to ensure setting finalizer for service %s: %v", key, err)) - return statusRecoverableError - } - fedService = updatedServiceObj.(*v1.Service) - - // Synchronize the federated service in all underlying ready clusters. - clusters, err := s.federatedInformer.GetReadyClusters() - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to get ready cluster list: %v", err)) - return statusRecoverableError - } - - newLBStatus := newLoadbalancerStatus() - newServiceIngress := ingress.NewFederatedServiceIngress() - operations := make([]fedutil.FederatedOperation, 0) - for _, cluster := range clusters { - // Aggregate all operations to perform on all federated clusters - operation, err := getOperationsToPerformOnCluster(s.federatedInformer, cluster, fedService, clusterselector.SendToCluster) - if err != nil { - return statusRecoverableError - } - if operation != nil { - operations = append(operations, *operation) - } - - // Aggregate LoadBalancerStatus from all services in federated clusters to update status in federated service - lbStatus, err := s.getServiceStatusInCluster(cluster, key) - if err != nil { - return statusRecoverableError - } - if len(lbStatus.Ingress) > 0 { - newLBStatus.Ingress = append(newLBStatus.Ingress, lbStatus.Ingress...) - - // Add/Update federated service ingress only if there are reachable endpoints backing the lb service - endpoints, err := s.getServiceEndpointsInCluster(cluster, key) - if err != nil { - return statusRecoverableError - } - // if there are no endpoints created for the service then the loadbalancer ingress - // is not reachable, so do not consider such loadbalancer ingresses for federated - // service ingresses - if len(endpoints) > 0 { - clusterIngress := fedapi.ClusterServiceIngress{ - Cluster: cluster.Name, - Items: lbStatus.Ingress, - } - newServiceIngress.Items = append(newServiceIngress.Items, clusterIngress) - } - } - } - - if len(operations) != 0 { - err = s.federatedUpdater.Update(operations) - if err != nil { - if !errors.IsAlreadyExists(err) { - runtime.HandleError(fmt.Errorf("Failed to execute updates for %s: %v", key, err)) - return statusRecoverableError - } - } - } - - // Update the federated service if there are any updates in clustered service (status/endpoints) - err = s.updateFederatedService(fedService, newLBStatus, newServiceIngress) - if err != nil { - return statusRecoverableError - } - - glog.V(5).Infof("Everything is in order in federated clusters for service %s", key) - return statusAllOk -} - -type clusterSelectorFunc func(map[string]string, map[string]string) (bool, error) - -// getOperationsToPerformOnCluster returns the operations to be performed so that clustered service is in sync with federated service -func getOperationsToPerformOnCluster(informer fedutil.FederatedInformer, cluster *v1beta1.Cluster, fedService *v1.Service, selector clusterSelectorFunc) (*fedutil.FederatedOperation, error) { - var operation *fedutil.FederatedOperation - var operationType fedutil.FederatedOperationType = "" - - key := types.NamespacedName{Namespace: fedService.Namespace, Name: fedService.Name}.String() - clusterServiceObj, found, err := informer.GetTargetStore().GetByKey(cluster.Name, key) - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to get %s service from %s: %v", key, cluster.Name, err)) - return nil, err - } - - send, err := selector(cluster.Labels, fedService.ObjectMeta.Annotations) - if err != nil { - glog.Errorf("Error processing ClusterSelector cluster: %s for service map: %s error: %s", cluster.Name, key, err.Error()) - return nil, err - } else if !send { - glog.V(5).Infof("Skipping cluster: %s for service: %s reason: cluster selectors do not match: %-v %-v", cluster.Name, key, cluster.ObjectMeta.Labels, fedService.ObjectMeta.Annotations[v1beta1.FederationClusterSelectorAnnotation]) - } - - desiredService := &v1.Service{ - ObjectMeta: fedutil.DeepCopyRelevantObjectMeta(fedService.ObjectMeta), - Spec: *fedService.Spec.DeepCopy(), - } - switch { - case found && send: - clusterService, ok := clusterServiceObj.(*v1.Service) - if !ok { - runtime.HandleError(fmt.Errorf("Unexpected error for %q: %v", key, err)) - return nil, err - } - - // ClusterIP and NodePort are allocated to Service by cluster, so retain the same if any while updating - desiredService.Spec.ClusterIP = clusterService.Spec.ClusterIP - for _, cPort := range clusterService.Spec.Ports { - for i, fPort := range clusterService.Spec.Ports { - if fPort.Name == cPort.Name && fPort.Protocol == cPort.Protocol && fPort.Port == cPort.Port { - desiredService.Spec.Ports[i].NodePort = cPort.NodePort - } - } - } - - // Update existing service, if needed. - if !Equivalent(desiredService, clusterService) { - operationType = fedutil.OperationTypeUpdate - - glog.V(4).Infof("Service in underlying cluster %s does not match, Desired: %+v, Existing: %+v", cluster.Name, desiredService, clusterService) - - // ResourceVersion of cluster service can be different from federated service, - // so do not update ResourceVersion while updating cluster service - desiredService.ResourceVersion = clusterService.ResourceVersion - } else { - glog.V(5).Infof("Service in underlying cluster %s is up to date: %+v", cluster.Name, desiredService) - } - case found && !send: - operationType = fedutil.OperationTypeDelete - case !found && send: - operationType = fedutil.OperationTypeAdd - desiredService.ResourceVersion = "" - - glog.V(4).Infof("Creating service in underlying cluster %s: %+v", cluster.Name, desiredService) - } - - if len(operationType) > 0 { - operation = &fedutil.FederatedOperation{ - Type: operationType, - Obj: desiredService, - ClusterName: cluster.Name, - Key: key, - } - } - return operation, nil -} - -// getServiceStatusInCluster returns service status in federated cluster -func (s *ServiceController) getServiceStatusInCluster(cluster *v1beta1.Cluster, key string) (*v1.LoadBalancerStatus, error) { - lbStatus := &v1.LoadBalancerStatus{} - - clusterServiceObj, serviceFound, err := s.federatedInformer.GetTargetStore().GetByKey(cluster.Name, key) - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to get %s service from %s: %v", key, cluster.Name, err)) - return lbStatus, err - } - if serviceFound { - clusterService, ok := clusterServiceObj.(*v1.Service) - if !ok { - err = fmt.Errorf("Unknown object received: %v", clusterServiceObj) - runtime.HandleError(err) - return lbStatus, err - } - lbStatus = &clusterService.Status.LoadBalancer - newLbStatus := &loadbalancerStatus{*lbStatus} - sort.Sort(newLbStatus) - } - return lbStatus, nil -} - -// getServiceEndpointsInCluster returns ready endpoints corresponding to service in federated cluster -func (s *ServiceController) getServiceEndpointsInCluster(cluster *v1beta1.Cluster, key string) ([]v1.EndpointAddress, error) { - addresses := []v1.EndpointAddress{} - - clusterEndpointsObj, endpointsFound, err := s.endpointFederatedInformer.GetTargetStore().GetByKey(cluster.Name, key) - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to get %s endpoint from %s: %v", key, cluster.Name, err)) - return addresses, err - } - if endpointsFound { - clusterEndpoints, ok := clusterEndpointsObj.(*v1.Endpoints) - if !ok { - glog.Warningf("Unknown object received: %v", clusterEndpointsObj) - return addresses, fmt.Errorf("Unknown object received: %v", clusterEndpointsObj) - } - for _, subset := range clusterEndpoints.Subsets { - if len(subset.Addresses) > 0 { - addresses = append(addresses, subset.Addresses...) - } - } - } - return addresses, nil -} - -// updateFederatedService updates the federated service with aggregated lbStatus and serviceIngresses -// and also updates the dns records as needed -func (s *ServiceController) updateFederatedService(fedService *v1.Service, newLBStatus *loadbalancerStatus, newServiceIngress *ingress.FederatedServiceIngress) error { - key := types.NamespacedName{Namespace: fedService.Namespace, Name: fedService.Name}.String() - needUpdate := false - - // Sort the endpoints so that we can compare - sort.Sort(newLBStatus) - if !reflect.DeepEqual(fedService.Status.LoadBalancer.Ingress, newLBStatus.Ingress) { - fedService.Status.LoadBalancer.Ingress = newLBStatus.Ingress - glog.V(3).Infof("Federated service loadbalancer status updated for %s: %v", key, newLBStatus.Ingress) - needUpdate = true - } - - existingServiceIngress, err := ingress.ParseFederatedServiceIngress(fedService) - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to parse endpoint annotations for service %s: %v", key, err)) - return err - } - - // TODO: We should have a reliable cluster health check(should consider quorum) to detect cluster is not - // reachable and remove dns records for them. Until a reliable cluster health check is available, below code is - // a workaround to not remove the existing dns records which were created before the cluster went offline. - unreadyClusters, err := s.federatedInformer.GetUnreadyClusters() - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to get unready cluster list: %v", err)) - return err - } - for _, cluster := range unreadyClusters { - lbIngress := existingServiceIngress.GetClusterLoadBalancerIngresses(cluster.Name) - newServiceIngress.AddClusterLoadBalancerIngresses(cluster.Name, lbIngress) - glog.V(5).Infof("Cluster %s is Offline, Preserving previously available status for Service %s", cluster.Name, key) - } - - // Update federated service status and/or ingress annotations if changed - sort.Sort(newServiceIngress) - if !reflect.DeepEqual(existingServiceIngress.Items, newServiceIngress.Items) { - fedService = ingress.UpdateIngressAnnotation(fedService, newServiceIngress) - glog.V(3).Infof("Federated service loadbalancer ingress updated for %s: existing: %#v, desired: %#v", key, existingServiceIngress, newServiceIngress) - needUpdate = true - } - - if needUpdate { - var err error - fedService, err = s.federationClient.Core().Services(fedService.Namespace).UpdateStatus(fedService) - if err != nil { - runtime.HandleError(fmt.Errorf("Error updating the federation service object %s: %v", key, err)) - return err - } - } - - return nil -} - -// Equivalent Checks if cluster-independent, user provided data in two given services are equal. If in the future the -// services structure is expanded then any field that is not populated by the api server should be included here. -func Equivalent(s1, s2 *v1.Service) bool { - // TODO: should also check for all annotations except FederationServiceIngressAnnotation - return s1.Name == s2.Name && s1.Namespace == s2.Namespace && - (reflect.DeepEqual(s1.Labels, s2.Labels) || (len(s1.Labels) == 0 && len(s2.Labels) == 0)) && - reflect.DeepEqual(s1.Spec, s2.Spec) -} - -type loadbalancerStatus struct { - v1.LoadBalancerStatus -} - -func newLoadbalancerStatus() *loadbalancerStatus { - return &loadbalancerStatus{} -} - -func (lbs loadbalancerStatus) Len() int { - return len(lbs.Ingress) -} - -func (lbs loadbalancerStatus) Less(i, j int) bool { - ipComparison := strings.Compare(lbs.Ingress[i].IP, lbs.Ingress[j].IP) - hostnameComparison := strings.Compare(lbs.Ingress[i].Hostname, lbs.Ingress[j].Hostname) - if ipComparison < 0 || (ipComparison == 0 && hostnameComparison < 0) { - return true - } - return false -} - -func (lbs loadbalancerStatus) Swap(i, j int) { - lbs.Ingress[i].IP, lbs.Ingress[j].IP = lbs.Ingress[j].IP, lbs.Ingress[i].IP - lbs.Ingress[i].Hostname, lbs.Ingress[j].Hostname = lbs.Ingress[j].Hostname, lbs.Ingress[i].Hostname -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/servicecontroller_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/servicecontroller_test.go deleted file mode 100644 index a20a03946..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/service/servicecontroller_test.go +++ /dev/null @@ -1,383 +0,0 @@ -/* -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 service - -import ( - "fmt" - "reflect" - "strings" - "testing" - "time" - - "github.com/golang/glog" - "github.com/stretchr/testify/require" - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/wait" - kubeclientset "k8s.io/client-go/kubernetes" - fakekubeclientset "k8s.io/client-go/kubernetes/fake" - corelisters "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fakefedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake" - "k8s.io/kubernetes/federation/pkg/federation-controller/service/ingress" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper" - . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" -) - -const ( - retryInterval = 100 * time.Millisecond - - clusters string = "clusters" - services string = "services" - endpoints string = "endpoints" - - lbIngress1 = "10.20.30.40" - lbIngress2 = "10.20.30.50" - serviceEndpoint1 = "192.168.0.1" - serviceEndpoint2 = "192.168.1.1" -) - -var awfulError error = errors.NewGone("Something bad happened") - -func TestServiceController(t *testing.T) { - glog.Infof("Creating fake infrastructure") - fedClient := &fakefedclientset.Clientset{} - cluster1 := NewCluster("cluster1", v1.ConditionTrue) - cluster2 := NewCluster("cluster2", v1.ConditionTrue) - - RegisterFakeClusterGet(&fedClient.Fake, &v1beta1.ClusterList{Items: []v1beta1.Cluster{*cluster1, *cluster2}}) - RegisterFakeList(clusters, &fedClient.Fake, &v1beta1.ClusterList{Items: []v1beta1.Cluster{*cluster1, *cluster2}}) - fedclusterWatch := RegisterFakeWatch(clusters, &fedClient.Fake) - RegisterFakeList(services, &fedClient.Fake, &v1.ServiceList{Items: []v1.Service{}}) - fedServiceWatch := RegisterFakeWatch(services, &fedClient.Fake) - RegisterFakeOnCreate(clusters, &fedClient.Fake, fedclusterWatch) - RegisterFakeOnUpdate(clusters, &fedClient.Fake, fedclusterWatch) - RegisterFakeOnCreate(services, &fedClient.Fake, fedServiceWatch) - RegisterFakeOnUpdate(services, &fedClient.Fake, fedServiceWatch) - RegisterFakeOnDelete(services, &fedClient.Fake, fedServiceWatch, serviceObjectGetter) - - cluster1Client := &fakekubeclientset.Clientset{} - RegisterFakeList(services, &cluster1Client.Fake, &v1.ServiceList{Items: []v1.Service{}}) - c1ServiceWatch := RegisterFakeWatch(services, &cluster1Client.Fake) - RegisterFakeList(endpoints, &cluster1Client.Fake, &v1.EndpointsList{Items: []v1.Endpoints{}}) - c1EndpointWatch := RegisterFakeWatch(endpoints, &cluster1Client.Fake) - RegisterFakeOnCreate(services, &cluster1Client.Fake, c1ServiceWatch) - RegisterFakeOnUpdate(services, &cluster1Client.Fake, c1ServiceWatch) - RegisterFakeOnDelete(services, &cluster1Client.Fake, c1ServiceWatch, serviceObjectGetter) - RegisterFakeOnCreate(endpoints, &cluster1Client.Fake, c1EndpointWatch) - RegisterFakeOnUpdate(endpoints, &cluster1Client.Fake, c1EndpointWatch) - - cluster2Client := &fakekubeclientset.Clientset{} - RegisterFakeList(services, &cluster2Client.Fake, &v1.ServiceList{Items: []v1.Service{}}) - c2ServiceWatch := RegisterFakeWatch(services, &cluster2Client.Fake) - RegisterFakeList(endpoints, &cluster2Client.Fake, &v1.EndpointsList{Items: []v1.Endpoints{}}) - c2EndpointWatch := RegisterFakeWatch(endpoints, &cluster2Client.Fake) - RegisterFakeOnCreate(services, &cluster2Client.Fake, c2ServiceWatch) - RegisterFakeOnUpdate(services, &cluster2Client.Fake, c2ServiceWatch) - RegisterFakeOnDelete(services, &cluster2Client.Fake, c2ServiceWatch, serviceObjectGetter) - RegisterFakeOnCreate(endpoints, &cluster2Client.Fake, c2EndpointWatch) - RegisterFakeOnUpdate(endpoints, &cluster2Client.Fake, c2EndpointWatch) - - fedInformerClientFactory := func(cluster *v1beta1.Cluster) (kubeclientset.Interface, error) { - switch cluster.Name { - case cluster1.Name: - return cluster1Client, nil - case cluster2.Name: - return cluster2Client, nil - default: - return nil, fmt.Errorf("Unknown cluster: %v", cluster.Name) - } - } - - sc := New(fedClient) - ToFederatedInformerForTestOnly(sc.federatedInformer).SetClientFactory(fedInformerClientFactory) - ToFederatedInformerForTestOnly(sc.endpointFederatedInformer).SetClientFactory(fedInformerClientFactory) - sc.clusterAvailableDelay = 100 * time.Millisecond - sc.reviewDelay = 50 * time.Millisecond - sc.updateTimeout = 5 * time.Second - - stop := make(chan struct{}) - glog.Infof("Running Service Controller") - go sc.Run(5, stop) - - glog.Infof("Adding cluster 1") - fedclusterWatch.Add(cluster1) - - service := NewService("test-service-1", 80) - - glog.Infof("Adding federated service") - fedServiceWatch.Add(service) - key := types.NamespacedName{Namespace: service.Namespace, Name: service.Name}.String() - - glog.Infof("Test service was correctly created in cluster 1") - require.NoError(t, WaitForClusterService(t, sc.federatedInformer.GetTargetStore(), cluster1.Name, - key, service, wait.ForeverTestTimeout)) - - glog.Infof("Adding cluster 2") - fedclusterWatch.Add(cluster2) - - glog.Infof("Test service was correctly created in cluster 2") - require.NoError(t, WaitForClusterService(t, sc.federatedInformer.GetTargetStore(), cluster2.Name, - key, service, wait.ForeverTestTimeout)) - - glog.Infof("Test federation service is updated when cluster1 service status is updated") - service.Status = v1.ServiceStatus{ - LoadBalancer: v1.LoadBalancerStatus{ - Ingress: []v1.LoadBalancerIngress{ - {IP: lbIngress1}, - }}} - - desiredStatus := service.Status - desiredService := &v1.Service{Status: desiredStatus} - - c1ServiceWatch.Modify(service) - require.NoError(t, WaitForClusterService(t, sc.federatedInformer.GetTargetStore(), cluster1.Name, - key, service, wait.ForeverTestTimeout)) - require.NoError(t, WaitForFederatedServiceUpdate(t, sc.serviceStore, - key, desiredService, serviceStatusCompare, wait.ForeverTestTimeout)) - - glog.Infof("Test federation service is updated when cluster1 endpoint for the service is created") - desiredIngressAnnotation := ingress.NewFederatedServiceIngress(). - AddEndpoints("cluster1", []string{lbIngress1}). - String() - desiredService = &v1.Service{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ingress.FederatedServiceIngressAnnotation: desiredIngressAnnotation}}} - c1EndpointWatch.Add(NewEndpoint("test-service-1", serviceEndpoint1)) - require.NoError(t, WaitForFederatedServiceUpdate(t, sc.serviceStore, - key, desiredService, serviceIngressCompare, wait.ForeverTestTimeout)) - - glog.Infof("Test federation service is updated when cluster2 service status is updated") - service.Status = v1.ServiceStatus{ - LoadBalancer: v1.LoadBalancerStatus{ - Ingress: []v1.LoadBalancerIngress{ - {IP: lbIngress2}, - }}} - desiredStatus.LoadBalancer.Ingress = append(desiredStatus.LoadBalancer.Ingress, v1.LoadBalancerIngress{IP: lbIngress2}) - desiredService = &v1.Service{Status: desiredStatus} - - c2ServiceWatch.Modify(service) - require.NoError(t, WaitForClusterService(t, sc.federatedInformer.GetTargetStore(), cluster2.Name, - key, service, wait.ForeverTestTimeout)) - require.NoError(t, WaitForFederatedServiceUpdate(t, sc.serviceStore, - key, desiredService, serviceStatusCompare, wait.ForeverTestTimeout)) - - glog.Infof("Test federation service is updated when cluster2 endpoint for the service is created") - desiredIngressAnnotation = ingress.NewFederatedServiceIngress(). - AddEndpoints("cluster1", []string{lbIngress1}). - AddEndpoints("cluster2", []string{lbIngress2}). - String() - desiredService = &v1.Service{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ingress.FederatedServiceIngressAnnotation: desiredIngressAnnotation}}} - c2EndpointWatch.Add(NewEndpoint("test-service-1", serviceEndpoint2)) - require.NoError(t, WaitForFederatedServiceUpdate(t, sc.serviceStore, - key, desiredService, serviceIngressCompare, wait.ForeverTestTimeout)) - - glog.Infof("Test federation service is updated when cluster1 endpoint for the service is deleted") - desiredIngressAnnotation = ingress.NewFederatedServiceIngress(). - AddEndpoints("cluster2", []string{lbIngress2}). - String() - desiredService = &v1.Service{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ingress.FederatedServiceIngressAnnotation: desiredIngressAnnotation}}} - c1EndpointWatch.Delete(NewEndpoint("test-service-1", serviceEndpoint1)) - require.NoError(t, WaitForFederatedServiceUpdate(t, sc.serviceStore, - key, desiredService, serviceIngressCompare, wait.ForeverTestTimeout)) - - glog.Infof("Test modifying federated service by changing the port") - service.Spec.Ports[0].Port = 9090 - fedServiceWatch.Modify(service) - require.NoError(t, WaitForClusterService(t, sc.federatedInformer.GetTargetStore(), cluster1.Name, - key, service, wait.ForeverTestTimeout)) - - glog.Infof("Test cluster service is recreated when deleted") - c1Service := NewService("test-service-1", 80) - c1Service.DeletionTimestamp = &metav1.Time{Time: time.Now()} - c1ServiceWatch.Delete(c1Service) - require.NoError(t, WaitForClusterService(t, sc.federatedInformer.GetTargetStore(), cluster1.Name, - key, service, wait.ForeverTestTimeout)) - - glog.Infof("Test cluster services are deleted when federated service is deleted") - service.ObjectMeta.Finalizers = append(service.ObjectMeta.Finalizers, deletionhelper.FinalizerDeleteFromUnderlyingClusters) - service.DeletionTimestamp = &metav1.Time{Time: time.Now()} - fedServiceWatch.Modify(service) - require.NoError(t, WaitForClusterServiceDelete(t, sc.federatedInformer.GetTargetStore(), cluster1.Name, - key, wait.ForeverTestTimeout)) - require.NoError(t, WaitForClusterServiceDelete(t, sc.federatedInformer.GetTargetStore(), cluster2.Name, - key, wait.ForeverTestTimeout)) - - close(stop) -} - -func TestGetOperationsToPerformOnCluster(t *testing.T) { - obj := NewService("test-service-1", 80) - cluster1 := NewCluster("cluster1", v1.ConditionTrue) - fedClient := &fakefedclientset.Clientset{} - sc := New(fedClient) - - testCases := map[string]struct { - expectedSendErr bool - sendToCluster bool - operationType fedutil.FederatedOperationType - }{ - "sendToCluster error returned": { - expectedSendErr: true, - }, - "Missing object and not matching ClusterSelector should result in no operations": { - sendToCluster: false, - }, - "Missing object and matching ClusterSelector should result in add operation": { - operationType: fedutil.OperationTypeAdd, - sendToCluster: true, - }, - // Update and Delete scenarios are tested in TestServiceController - } - for testName, testCase := range testCases { - t.Run(testName, func(t *testing.T) { - - operations, err := getOperationsToPerformOnCluster(sc.federatedInformer, cluster1, obj, func(map[string]string, map[string]string) (bool, error) { - if testCase.expectedSendErr { - return false, awfulError - } - return testCase.sendToCluster, nil - }) - if testCase.expectedSendErr { - require.Error(t, err, "An error was expected") - } else { - require.NoError(t, err, "An error was not expected") - } - if len(testCase.operationType) == 0 { - require.Nil(t, operations, "An operation was not expected") - } else { - require.NotNil(t, operations, "A single operation was expected") - require.Equal(t, testCase.operationType, operations.Type, "Unexpected operation returned") - } - }) - } -} - -// serviceObjectGetter gives dummy service objects to use with RegisterFakeOnDelete -// This is just so that federated informer can be tested for delete scenarios. -func serviceObjectGetter(name, namespace string) runtime.Object { - service := new(v1.Service) - service.Namespace = namespace - service.Name = name - return service -} - -func NewService(name string, port int32) *v1.Service { - return &v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: v1.NamespaceDefault, - SelfLink: "/api/v1/namespaces/default/services/" + name, - Labels: map[string]string{"app": name}, - }, - Spec: v1.ServiceSpec{ - Ports: []v1.ServicePort{{Port: port}}, - Type: v1.ServiceTypeLoadBalancer, - }, - } -} - -func NewEndpoint(name, ip string) *v1.Endpoints { - return &v1.Endpoints{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: v1.NamespaceDefault, - SelfLink: "/api/v1/namespaces/default/endpoints/" + name, - Labels: map[string]string{"app": name}, - }, - Subsets: []v1.EndpointSubset{{ - Addresses: []v1.EndpointAddress{{ - IP: ip, - }}}, - }, - } -} - -// WaitForClusterService waits for the cluster service to be created matching the desiredService. -func WaitForClusterService(t *testing.T, store fedutil.FederatedReadOnlyStore, clusterName, key string, desiredService *v1.Service, timeout time.Duration) error { - err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { - obj, found, err := store.GetByKey(clusterName, key) - if !found || err != nil { - return false, err - } - service := obj.(*v1.Service) - if !Equivalent(service, desiredService) { - glog.V(5).Infof("Waiting for clustered service, Desired: %v, Current: %v", desiredService, service) - return false, nil - } - glog.V(5).Infof("Clustered service is up to date: %v", service) - return true, nil - }) - return err -} - -// WaitForClusterServiceDelete waits for the cluster service to be deleted. -func WaitForClusterServiceDelete(t *testing.T, store fedutil.FederatedReadOnlyStore, clusterName, key string, timeout time.Duration) error { - err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { - _, found, _ := store.GetByKey(clusterName, key) - if !found { - return true, nil - } - return false, nil - }) - return err -} - -type serviceCompare func(current, desired *v1.Service) (match bool) - -func serviceStatusCompare(current, desired *v1.Service) bool { - if !reflect.DeepEqual(current.Status.LoadBalancer, desired.Status.LoadBalancer) { - glog.V(5).Infof("Waiting for loadbalancer status, Current: %v, Desired: %v", current.Status.LoadBalancer, desired.Status.LoadBalancer) - return false - } - glog.V(5).Infof("Loadbalancer status match: %v", current.Status.LoadBalancer) - return true -} - -func serviceIngressCompare(current, desired *v1.Service) bool { - if strings.Compare(current.Annotations[ingress.FederatedServiceIngressAnnotation], desired.Annotations[ingress.FederatedServiceIngressAnnotation]) != 0 { - glog.V(5).Infof("Waiting for loadbalancer ingress, Current: %v, Desired: %v", current.Annotations[ingress.FederatedServiceIngressAnnotation], desired.Annotations[ingress.FederatedServiceIngressAnnotation]) - return false - } - glog.V(5).Infof("Loadbalancer ingress match: %v", current.Annotations[ingress.FederatedServiceIngressAnnotation]) - return true -} - -// WaitForFederatedServiceUpdate waits for federated service updates to match the desiredService. -func WaitForFederatedServiceUpdate(t *testing.T, store corelisters.ServiceLister, key string, desiredService *v1.Service, match serviceCompare, timeout time.Duration) error { - err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { - namespace, name, err := cache.SplitMetaNamespaceKey(key) - if err != nil { - return false, err - } - service, err := store.Services(namespace).Get(name) - switch { - case errors.IsNotFound(err): - return false, nil - case err != nil: - return false, err - case !match(service, desiredService): - return false, nil - default: - return true, nil - } - }) - return err -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/BUILD deleted file mode 100644 index fc722ae43..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/BUILD +++ /dev/null @@ -1,68 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["controller_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/sync", - library = ":go_default_library", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/pkg/federatedtypes:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/test:go_default_library", - "//vendor/github.com/stretchr/testify/require: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", - ], -) - -go_library( - name = "go_default_library", - srcs = ["controller.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/sync", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/pkg/federatedtypes:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/clusterselector:go_default_library", - "//federation/pkg/federation-controller/util/deletionhelper:go_default_library", - "//federation/pkg/federation-controller/util/eventsink:go_default_library", - "//pkg/api:go_default_library", - "//pkg/controller:go_default_library", - "//vendor/github.com/golang/glog: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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - "//vendor/k8s.io/client-go/util/workqueue:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/controller.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/controller.go deleted file mode 100644 index e57fd6595..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/controller.go +++ /dev/null @@ -1,597 +0,0 @@ -/* -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 sync - -import ( - "fmt" - "time" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/cache" - "k8s.io/client-go/tools/record" - "k8s.io/client-go/util/flowcontrol" - "k8s.io/client-go/util/workqueue" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/federatedtypes" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper" - "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/controller" - - "github.com/golang/glog" -) - -const ( - allClustersKey = "ALL_CLUSTERS" -) - -// FederationSyncController synchronizes the state of a federated type -// to clusters that are members of the federation. -type FederationSyncController struct { - // For triggering reconciliation of a single resource. This is - // used when there is an add/update/delete operation on a resource - // in either federated API server or in some member of the - // federation. - deliverer *util.DelayingDeliverer - - // For triggering reconciliation of all target resources. This is - // used when a new cluster becomes available. - clusterDeliverer *util.DelayingDeliverer - - // Contains resources present in members of federation. - informer util.FederatedInformer - // For updating members of federation. - updater util.FederatedUpdater - // Definitions of resources that should be federated. - store cache.Store - // Informer controller for resources that should be federated. - controller cache.Controller - - // Work queue allowing parallel processing of resources - workQueue workqueue.Interface - - // Backoff manager - backoff *flowcontrol.Backoff - - // For events - eventRecorder record.EventRecorder - - deletionHelper *deletionhelper.DeletionHelper - - reviewDelay time.Duration - clusterAvailableDelay time.Duration - clusterUnavailableDelay time.Duration - smallDelay time.Duration - updateTimeout time.Duration - - adapter federatedtypes.FederatedTypeAdapter -} - -// StartFederationSyncController starts a new sync controller for a type adapter -func StartFederationSyncController(kind string, adapterFactory federatedtypes.AdapterFactory, config *restclient.Config, stopChan <-chan struct{}, minimizeLatency bool, adapterSpecificArgs map[string]interface{}) { - restclient.AddUserAgent(config, fmt.Sprintf("federation-%s-controller", kind)) - client := federationclientset.NewForConfigOrDie(config) - adapter := adapterFactory(client, config, adapterSpecificArgs) - controller := newFederationSyncController(client, adapter) - if minimizeLatency { - controller.minimizeLatency() - } - glog.Infof(fmt.Sprintf("Starting federated sync controller for %s resources", kind)) - controller.Run(stopChan) -} - -// newFederationSyncController returns a new sync controller for the given client and type adapter -func newFederationSyncController(client federationclientset.Interface, adapter federatedtypes.FederatedTypeAdapter) *FederationSyncController { - broadcaster := record.NewBroadcaster() - broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(client)) - recorder := broadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: fmt.Sprintf("federation-%v-controller", adapter.Kind())}) - - s := &FederationSyncController{ - reviewDelay: time.Second * 10, - clusterAvailableDelay: time.Second * 20, - clusterUnavailableDelay: time.Second * 60, - smallDelay: time.Second * 3, - updateTimeout: time.Second * 30, - workQueue: workqueue.New(), - backoff: flowcontrol.NewBackOff(5*time.Second, time.Minute), - eventRecorder: recorder, - adapter: adapter, - } - - // Build delivereres for triggering reconciliations. - s.deliverer = util.NewDelayingDeliverer() - s.clusterDeliverer = util.NewDelayingDeliverer() - - // Start informer in federated API servers on the resource type that should be federated. - s.store, s.controller = cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - return adapter.FedList(metav1.NamespaceAll, options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return adapter.FedWatch(metav1.NamespaceAll, options) - }, - }, - adapter.ObjectType(), - controller.NoResyncPeriodFunc(), - util.NewTriggerOnAllChanges(func(obj pkgruntime.Object) { s.deliverObj(obj, 0, false) })) - - // Federated informer on the resource type in members of federation. - s.informer = util.NewFederatedInformer( - client, - func(cluster *federationapi.Cluster, targetClient kubeclientset.Interface) (cache.Store, cache.Controller) { - return cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - return adapter.ClusterList(targetClient, metav1.NamespaceAll, options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return adapter.ClusterWatch(targetClient, metav1.NamespaceAll, options) - }, - }, - adapter.ObjectType(), - controller.NoResyncPeriodFunc(), - // Trigger reconciliation whenever something in federated cluster is changed. In most cases it - // would be just confirmation that some operation on the target resource type had succeeded. - util.NewTriggerOnAllChanges( - func(obj pkgruntime.Object) { - s.deliverObj(obj, s.reviewDelay, false) - }, - )) - }, - - &util.ClusterLifecycleHandlerFuncs{ - ClusterAvailable: func(cluster *federationapi.Cluster) { - // When new cluster becomes available process all the target resources again. - s.clusterDeliverer.DeliverAt(allClustersKey, nil, time.Now().Add(s.clusterAvailableDelay)) - }, - // When a cluster becomes unavailable process all the target resources again. - ClusterUnavailable: func(cluster *federationapi.Cluster, _ []interface{}) { - s.clusterDeliverer.DeliverAt(allClustersKey, nil, time.Now().Add(s.clusterUnavailableDelay)) - }, - }, - ) - - // Federated updeater along with Create/Update/Delete operations. - s.updater = util.NewFederatedUpdater(s.informer, adapter.Kind(), s.updateTimeout, s.eventRecorder, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - _, err := adapter.ClusterCreate(client, obj) - return err - }, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - _, err := adapter.ClusterUpdate(client, obj) - return err - }, - func(client kubeclientset.Interface, obj pkgruntime.Object) error { - qualifiedName := adapter.QualifiedName(obj) - orphanDependents := false - err := adapter.ClusterDelete(client, qualifiedName, &metav1.DeleteOptions{OrphanDependents: &orphanDependents}) - return err - }) - - s.deletionHelper = deletionhelper.NewDeletionHelper( - s.updateObject, - // objNameFunc - func(obj pkgruntime.Object) string { - return adapter.QualifiedName(obj).String() - }, - s.informer, - s.updater, - ) - - return s -} - -// minimizeLatency reduces delays and timeouts to make the controller more responsive (useful for testing). -func (s *FederationSyncController) minimizeLatency() { - s.clusterAvailableDelay = time.Second - s.clusterUnavailableDelay = time.Second - s.reviewDelay = 50 * time.Millisecond - s.smallDelay = 20 * time.Millisecond - s.updateTimeout = 5 * time.Second -} - -// Sends the given updated object to apiserver. -func (s *FederationSyncController) updateObject(obj pkgruntime.Object) (pkgruntime.Object, error) { - return s.adapter.FedUpdate(obj) -} - -func (s *FederationSyncController) Run(stopChan <-chan struct{}) { - go s.controller.Run(stopChan) - s.informer.Start() - s.deliverer.StartWithHandler(func(item *util.DelayingDelivererItem) { - s.workQueue.Add(item) - }) - s.clusterDeliverer.StartWithHandler(func(_ *util.DelayingDelivererItem) { - s.reconcileOnClusterChange() - }) - - // TODO: Allow multiple workers. - go wait.Until(s.worker, time.Second, stopChan) - - util.StartBackoffGC(s.backoff, stopChan) - - // Ensure all goroutines are cleaned up when the stop channel closes - go func() { - <-stopChan - s.informer.Stop() - s.workQueue.ShutDown() - s.deliverer.Stop() - s.clusterDeliverer.Stop() - }() -} - -type reconciliationStatus int - -const ( - statusAllOK reconciliationStatus = iota - statusNeedsRecheck - statusError - statusNotSynced -) - -func (s *FederationSyncController) worker() { - for { - obj, quit := s.workQueue.Get() - if quit { - return - } - - item := obj.(*util.DelayingDelivererItem) - qualifiedName := item.Value.(*federatedtypes.QualifiedName) - status := s.reconcile(*qualifiedName) - s.workQueue.Done(item) - - switch status { - case statusAllOK: - break - case statusError: - s.deliver(*qualifiedName, 0, true) - case statusNeedsRecheck: - s.deliver(*qualifiedName, s.reviewDelay, false) - case statusNotSynced: - s.deliver(*qualifiedName, s.clusterAvailableDelay, false) - } - } -} - -func (s *FederationSyncController) deliverObj(obj pkgruntime.Object, delay time.Duration, failed bool) { - qualifiedName := s.adapter.QualifiedName(obj) - s.deliver(qualifiedName, delay, failed) -} - -// Adds backoff to delay if this delivery is related to some failure. Resets backoff if there was no failure. -func (s *FederationSyncController) deliver(qualifiedName federatedtypes.QualifiedName, delay time.Duration, failed bool) { - key := qualifiedName.String() - if failed { - s.backoff.Next(key, time.Now()) - delay = delay + s.backoff.Get(key) - } else { - s.backoff.Reset(key) - } - s.deliverer.DeliverAfter(key, &qualifiedName, delay) -} - -// Check whether all data stores are in sync. False is returned if any of the informer/stores is not yet -// synced with the corresponding api server. -func (s *FederationSyncController) isSynced() bool { - if !s.informer.ClustersSynced() { - glog.V(2).Infof("Cluster list not synced") - return false - } - clusters, err := s.informer.GetReadyClusters() - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to get ready clusters: %v", err)) - return false - } - if !s.informer.GetTargetStore().ClustersSynced(clusters) { - return false - } - return true -} - -// The function triggers reconciliation of all target federated resources. -func (s *FederationSyncController) reconcileOnClusterChange() { - if !s.isSynced() { - s.clusterDeliverer.DeliverAt(allClustersKey, nil, time.Now().Add(s.clusterAvailableDelay)) - } - for _, obj := range s.store.List() { - qualifiedName := s.adapter.QualifiedName(obj.(pkgruntime.Object)) - s.deliver(qualifiedName, s.smallDelay, false) - } -} - -func (s *FederationSyncController) reconcile(qualifiedName federatedtypes.QualifiedName) reconciliationStatus { - if !s.isSynced() { - return statusNotSynced - } - - kind := s.adapter.Kind() - key := qualifiedName.String() - - glog.V(4).Infof("Starting to reconcile %v %v", kind, key) - startTime := time.Now() - defer glog.V(4).Infof("Finished reconciling %v %v (duration: %v)", kind, key, time.Now().Sub(startTime)) - - obj, err := s.objFromCache(kind, key) - if err != nil { - return statusError - } - if obj == nil { - return statusAllOK - } - - meta := s.adapter.ObjectMeta(obj) - if meta.DeletionTimestamp != nil { - err := s.delete(obj, kind, qualifiedName) - if err != nil { - msg := "Failed to delete %s %q: %v" - args := []interface{}{kind, qualifiedName, err} - runtime.HandleError(fmt.Errorf(msg, args...)) - s.eventRecorder.Eventf(obj, api.EventTypeWarning, "DeleteFailed", msg, args...) - return statusError - } - return statusAllOK - } - - glog.V(3).Infof("Ensuring finalizers exist on %s %q", kind, key) - obj, err = s.deletionHelper.EnsureFinalizers(obj) - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to ensure finalizers for %s %q: %v", kind, key, err)) - return statusError - } - - operationsAccessor := func(adapter federatedtypes.FederatedTypeAdapter, selectedClusters []*federationapi.Cluster, unselectedClusters []*federationapi.Cluster, obj pkgruntime.Object, schedulingInfo interface{}) ([]util.FederatedOperation, error) { - operations, err := clusterOperations(adapter, selectedClusters, unselectedClusters, obj, key, schedulingInfo, func(clusterName string) (interface{}, bool, error) { - return s.informer.GetTargetStore().GetByKey(clusterName, key) - }) - if err != nil { - s.eventRecorder.Eventf(obj, api.EventTypeWarning, "FedClusterOperationsError", "Error obtaining sync operations for %s: %s error: %s", kind, key, err.Error()) - } - return operations, err - } - - return syncToClusters( - s.informer.GetReadyClusters, - operationsAccessor, - selectedClusters, - s.updater.Update, - s.adapter, - s.informer, - obj, - ) -} - -func (s *FederationSyncController) objFromCache(kind, key string) (pkgruntime.Object, error) { - cachedObj, exist, err := s.store.GetByKey(key) - if err != nil { - wrappedErr := fmt.Errorf("Failed to query %s store for %q: %v", kind, key, err) - runtime.HandleError(wrappedErr) - return nil, err - } - if !exist { - return nil, nil - } - return cachedObj.(pkgruntime.Object).DeepCopyObject(), nil -} - -// delete deletes the given resource or returns error if the deletion was not complete. -func (s *FederationSyncController) delete(obj pkgruntime.Object, kind string, qualifiedName federatedtypes.QualifiedName) error { - glog.V(3).Infof("Handling deletion of %s %q", kind, qualifiedName) - - // Perform pre-deletion cleanup for the namespace adapter - namespaceAdapter, ok := s.adapter.(*federatedtypes.NamespaceAdapter) - if ok { - var err error - obj, err = namespaceAdapter.CleanUpNamespace(obj, s.eventRecorder) - if err != nil { - return err - } - } - - _, err := s.deletionHelper.HandleObjectInUnderlyingClusters(obj) - if err != nil { - return err - } - - err = s.adapter.FedDelete(qualifiedName, nil) - if err != nil { - // Its all good if the error is not found error. That means it is deleted already and we do not have to do anything. - // This is expected when we are processing an update as a result of finalizer deletion. - // The process that deleted the last finalizer is also going to delete the resource and we do not have to do anything. - if !errors.IsNotFound(err) { - return err - } - } - return nil -} - -type clustersAccessorFunc func() ([]*federationapi.Cluster, error) -type operationsFunc func(federatedtypes.FederatedTypeAdapter, []*federationapi.Cluster, []*federationapi.Cluster, pkgruntime.Object, interface{}) ([]util.FederatedOperation, error) -type clusterSelectorFunc func(*metav1.ObjectMeta, func(map[string]string, map[string]string) (bool, error), []*federationapi.Cluster) ([]*federationapi.Cluster, []*federationapi.Cluster, error) -type executionFunc func([]util.FederatedOperation) error - -// syncToClusters ensures that the state of the given object is synchronized to member clusters. -func syncToClusters(clustersAccessor clustersAccessorFunc, operationsAccessor operationsFunc, selector clusterSelectorFunc, execute executionFunc, adapter federatedtypes.FederatedTypeAdapter, informer util.FederatedInformer, obj pkgruntime.Object) reconciliationStatus { - kind := adapter.Kind() - key := federatedtypes.ObjectKey(adapter, obj) - - glog.V(3).Infof("Syncing %s %q in underlying clusters", kind, key) - - clusters, err := clustersAccessor() - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to get cluster list: %v", err)) - return statusNotSynced - } - - selectedClusters, unselectedClusters, err := selector(adapter.ObjectMeta(obj), clusterselector.SendToCluster, clusters) - if err != nil { - return statusError - } - - var schedulingInfo interface{} - if adapter.IsSchedulingAdapter() { - schedulingAdapter, ok := adapter.(federatedtypes.SchedulingAdapter) - if !ok { - glog.Fatalf("Adapter for kind %q does not properly implement SchedulingAdapter.", kind) - } - schedulingInfo, err = schedulingAdapter.GetSchedule(obj, key, selectedClusters, informer) - if err != nil { - runtime.HandleError(fmt.Errorf("adapter.GetSchedule() failed on adapter for %s %q: %v", kind, key, err)) - return statusError - } - } - - operations, err := operationsAccessor(adapter, selectedClusters, unselectedClusters, obj, schedulingInfo) - if err != nil { - return statusError - } - - if adapter.IsSchedulingAdapter() { - schedulingAdapter, ok := adapter.(federatedtypes.SchedulingAdapter) - if !ok { - glog.Fatalf("Adapter for kind %q does not properly implement SchedulingAdapter.", kind) - } - err = schedulingAdapter.UpdateFederatedStatus(obj, schedulingInfo) - if err != nil { - runtime.HandleError(fmt.Errorf("adapter.UpdateFinished() failed on adapter for %s %q: %v", kind, key, err)) - return statusError - } - } - - if len(operations) == 0 { - return statusAllOK - } - - err = execute(operations) - if err != nil { - runtime.HandleError(fmt.Errorf("Failed to execute updates for %s %q: %v", kind, key, err)) - return statusError - } - - // Everything is in order but let's be double sure - return statusNeedsRecheck -} - -// selectedClusters filters the provided clusters into two slices, one containing the clusters selected by selector and the other containing the rest of the provided clusters. -func selectedClusters(objMeta *metav1.ObjectMeta, selector func(map[string]string, map[string]string) (bool, error), clusters []*federationapi.Cluster) ([]*federationapi.Cluster, []*federationapi.Cluster, error) { - selectedClusters := []*federationapi.Cluster{} - unselectedClusters := []*federationapi.Cluster{} - - for _, cluster := range clusters { - send, err := selector(cluster.Labels, objMeta.Annotations) - if err != nil { - return nil, nil, err - } else if !send { - unselectedClusters = append(unselectedClusters, cluster) - } else { - selectedClusters = append(selectedClusters, cluster) - } - } - return selectedClusters, unselectedClusters, nil -} - -type clusterObjectAccessorFunc func(clusterName string) (interface{}, bool, error) - -// clusterOperations returns the list of operations needed to synchronize the state of the given object to the provided clusters -func clusterOperations(adapter federatedtypes.FederatedTypeAdapter, selectedClusters []*federationapi.Cluster, unselectedClusters []*federationapi.Cluster, obj pkgruntime.Object, key string, schedulingInfo interface{}, accessor clusterObjectAccessorFunc) ([]util.FederatedOperation, error) { - operations := make([]util.FederatedOperation, 0) - - kind := adapter.Kind() - for _, cluster := range selectedClusters { - // The data should not be modified. - desiredObj := adapter.Copy(obj) - - clusterObj, found, err := accessor(cluster.Name) - if err != nil { - wrappedErr := fmt.Errorf("Failed to get %s %q from cluster %q: %v", kind, key, cluster.Name, err) - runtime.HandleError(wrappedErr) - return nil, wrappedErr - } - - var scheduleAction federatedtypes.ScheduleAction = federatedtypes.ActionAdd - if adapter.IsSchedulingAdapter() { - schedulingAdapter, ok := adapter.(federatedtypes.SchedulingAdapter) - if !ok { - err = fmt.Errorf("adapter for kind %s does not properly implement SchedulingAdapter.", kind) - glog.Fatalf("Error: %v", err) - } - var clusterTypedObj pkgruntime.Object = nil - if clusterObj != nil { - clusterTypedObj = clusterObj.(pkgruntime.Object) - } - desiredObj, scheduleAction, err = schedulingAdapter.ScheduleObject(cluster, clusterTypedObj, desiredObj, schedulingInfo) - if err != nil { - runtime.HandleError(err) - return nil, err - } - } - - var operationType util.FederatedOperationType = "" - if found { - if scheduleAction == federatedtypes.ActionDelete { - operationType = util.OperationTypeDelete - } else { - clusterObj := clusterObj.(pkgruntime.Object) - if !adapter.Equivalent(desiredObj, clusterObj) { - operationType = util.OperationTypeUpdate - } - } - } else if scheduleAction == federatedtypes.ActionAdd { - operationType = util.OperationTypeAdd - } - - if len(operationType) > 0 { - operations = append(operations, util.FederatedOperation{ - Type: operationType, - Obj: desiredObj, - ClusterName: cluster.Name, - Key: key, - }) - } - } - - for _, cluster := range unselectedClusters { - clusterObj, found, err := accessor(cluster.Name) - if err != nil { - wrappedErr := fmt.Errorf("Failed to get %s %q from cluster %q: %v", kind, key, cluster.Name, err) - runtime.HandleError(wrappedErr) - return nil, wrappedErr - } - if found { - operations = append(operations, util.FederatedOperation{ - Type: util.OperationTypeDelete, - Obj: clusterObj.(pkgruntime.Object), - ClusterName: cluster.Name, - Key: key, - }) - } - } - - return operations, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/controller_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/controller_test.go deleted file mode 100644 index dd5c7bf8f..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/sync/controller_test.go +++ /dev/null @@ -1,231 +0,0 @@ -/* -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 sync - -import ( - "errors" - "testing" - - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/federation/pkg/federatedtypes" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - fedtest "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" - - "github.com/stretchr/testify/require" -) - -var awfulError error = errors.New("Something bad happened") - -func TestSyncToClusters(t *testing.T) { - adapter := &federatedtypes.SecretAdapter{} - obj := adapter.NewTestObject("foo") - - testCases := map[string]struct { - clusterError bool - operationsError bool - executionError bool - operations []util.FederatedOperation - status reconciliationStatus - }{ - "Error listing clusters redelivers with cluster delay": { - clusterError: true, - status: statusNotSynced, - }, - "Error retrieving cluster operations redelivers": { - operationsError: true, - status: statusError, - }, - "No operations returns ok": { - status: statusAllOK, - }, - "Execution error redelivers": { - executionError: true, - operations: []util.FederatedOperation{{}}, - status: statusError, - }, - "Successful update indicates recheck": { - operations: []util.FederatedOperation{{}}, - status: statusNeedsRecheck, - }, - } - - for testName, testCase := range testCases { - t.Run(testName, func(t *testing.T) { - status := syncToClusters( - func() ([]*federationapi.Cluster, error) { - if testCase.clusterError { - return nil, awfulError - } - return nil, nil - }, - func(federatedtypes.FederatedTypeAdapter, []*federationapi.Cluster, []*federationapi.Cluster, pkgruntime.Object, interface{}) ([]util.FederatedOperation, error) { - if testCase.operationsError { - return nil, awfulError - } - return testCase.operations, nil - }, - func(objMeta *metav1.ObjectMeta, selector func(map[string]string, map[string]string) (bool, error), clusters []*federationapi.Cluster) ([]*federationapi.Cluster, []*federationapi.Cluster, error) { - return clusters, []*federationapi.Cluster{}, nil - }, - func([]util.FederatedOperation) error { - if testCase.executionError { - return awfulError - } - return nil - }, - adapter, - nil, - obj, - ) - require.Equal(t, testCase.status, status, "Unexpected status!") - }) - } -} - -func TestSelectedClusters(t *testing.T) { - clusterOne := fedtest.NewCluster("cluster1", apiv1.ConditionTrue) - clusterOne.Labels = map[string]string{"name": "cluster1"} - clusterTwo := fedtest.NewCluster("cluster2", apiv1.ConditionTrue) - clusterTwo.Labels = map[string]string{"name": "cluster2"} - - clusters := []*federationapi.Cluster{clusterOne, clusterTwo} - testCases := map[string]struct { - expectedSelectorError bool - clusterOneSelected bool - clusterTwoSelected bool - expectedSelectedClusters []*federationapi.Cluster - expectedUnselectedClusters []*federationapi.Cluster - }{ - "Selector returned error": { - expectedSelectorError: true, - }, - "All clusters selected": { - clusterOneSelected: true, - clusterTwoSelected: true, - expectedSelectedClusters: clusters, - expectedUnselectedClusters: []*federationapi.Cluster{}, - }, - "One cluster selected": { - clusterOneSelected: true, - expectedSelectedClusters: []*federationapi.Cluster{clusterOne}, - expectedUnselectedClusters: []*federationapi.Cluster{clusterTwo}, - }, - "No clusters selected": { - expectedSelectedClusters: []*federationapi.Cluster{}, - expectedUnselectedClusters: clusters, - }, - } - - for testName, testCase := range testCases { - t.Run(testName, func(t *testing.T) { - selectedClusters, unselectedClusters, err := selectedClusters(&metav1.ObjectMeta{}, func(labels map[string]string, annotations map[string]string) (bool, error) { - if testCase.expectedSelectorError { - return false, awfulError - } - if labels["name"] == "cluster1" { - return testCase.clusterOneSelected, nil - } - if labels["name"] == "cluster2" { - return testCase.clusterTwoSelected, nil - } - t.Errorf("Unexpected cluster") - return false, nil - }, clusters) - - if testCase.expectedSelectorError { - require.Error(t, err, "An error was expected") - } else { - require.NoError(t, err, "An error was not expected") - } - require.Equal(t, testCase.expectedSelectedClusters, selectedClusters, "Expected the correct clusters to be selected.") - require.Equal(t, testCase.expectedUnselectedClusters, unselectedClusters, "Expected the correct clusters to be unselected.") - }) - } -} - -func TestClusterOperations(t *testing.T) { - adapter := &federatedtypes.SecretAdapter{} - obj := adapter.NewTestObject("foo") - differingObj := adapter.Copy(obj) - federatedtypes.SetAnnotation(adapter, differingObj, "foo", "bar") - - testCases := map[string]struct { - clusterObject pkgruntime.Object - expectedErr bool - sendToCluster bool - - operationType util.FederatedOperationType - }{ - "Accessor error returned": { - expectedErr: true, - }, - "Missing cluster object should result in add operation": { - operationType: util.OperationTypeAdd, - sendToCluster: true, - }, - "Differing cluster object should result in update operation": { - clusterObject: differingObj, - operationType: util.OperationTypeUpdate, - sendToCluster: true, - }, - "Matching object and not matching ClusterSelector should result in delete operation": { - clusterObject: obj, - operationType: util.OperationTypeDelete, - sendToCluster: false, - }, - "Matching cluster object should not result in an operation": { - clusterObject: obj, - sendToCluster: true, - }, - } - for testName, testCase := range testCases { - t.Run(testName, func(t *testing.T) { - clusters := []*federationapi.Cluster{fedtest.NewCluster("cluster1", apiv1.ConditionTrue)} - key := federatedtypes.ObjectKey(adapter, obj) - - var selectedClusters, unselectedClusters []*federationapi.Cluster - if testCase.sendToCluster { - selectedClusters = clusters - unselectedClusters = []*federationapi.Cluster{} - } else { - selectedClusters = []*federationapi.Cluster{} - unselectedClusters = clusters - } - // TODO: Tests for ScheduleObject on type adapter - operations, err := clusterOperations(adapter, selectedClusters, unselectedClusters, obj, key, nil, func(string) (interface{}, bool, error) { - if testCase.expectedErr { - return nil, false, awfulError - } - return testCase.clusterObject, (testCase.clusterObject != nil), nil - }) - if testCase.expectedErr { - require.Error(t, err, "An error was expected") - } else { - require.NoError(t, err, "An error was not expected") - } - if len(testCase.operationType) == 0 { - require.True(t, len(operations) == 0, "An operation was not expected") - } else { - require.True(t, len(operations) == 1, "A single operation was expected") - require.Equal(t, testCase.operationType, operations[0].Type, "Unexpected operation returned") - } - }) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/BUILD deleted file mode 100644 index 52cfc5d62..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/BUILD +++ /dev/null @@ -1,100 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "backoff.go", - "cluster_util.go", - "configmap.go", - "delaying_deliverer.go", - "deployment.go", - "federated_informer.go", - "federated_updater.go", - "handlers.go", - "meta.go", - "secret.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//pkg/api:go_default_library", - "//pkg/client/clientset_generated/internalclientset:go_default_library", - "//pkg/controller/deployment/util:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1: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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = [ - "delaying_deliverer_test.go", - "deployment_test.go", - "federated_informer_test.go", - "federated_updater_test.go", - "handlers_test.go", - "meta_test.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util", - library = ":go_default_library", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", - "//pkg/controller/deployment/util:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/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/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", - "//vendor/k8s.io/client-go/testing: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", - "//federation/pkg/federation-controller/util/clusterselector:all-srcs", - "//federation/pkg/federation-controller/util/deletionhelper:all-srcs", - "//federation/pkg/federation-controller/util/eventsink:all-srcs", - "//federation/pkg/federation-controller/util/finalizers:all-srcs", - "//federation/pkg/federation-controller/util/hpa:all-srcs", - "//federation/pkg/federation-controller/util/planner:all-srcs", - "//federation/pkg/federation-controller/util/podanalyzer:all-srcs", - "//federation/pkg/federation-controller/util/replicapreferences:all-srcs", - "//federation/pkg/federation-controller/util/test:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/backoff.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/backoff.go deleted file mode 100644 index b5b01213a..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/backoff.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -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 util - -import ( - "time" - - "k8s.io/client-go/util/flowcontrol" -) - -func StartBackoffGC(backoff *flowcontrol.Backoff, stopCh <-chan struct{}) { - go func() { - for { - select { - case <-time.After(time.Minute): - backoff.GC() - case <-stopCh: - return - } - } - }() -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/cluster_util.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/cluster_util.go deleted file mode 100644 index a695870c2..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/cluster_util.go +++ /dev/null @@ -1,148 +0,0 @@ -/* -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 util - -import ( - "fmt" - "net" - "os" - "time" - - "github.com/golang/glog" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - utilnet "k8s.io/apimachinery/pkg/util/net" - "k8s.io/apimachinery/pkg/util/wait" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/pkg/api" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" -) - -const ( - KubeAPIQPS = 20.0 - KubeAPIBurst = 30 - KubeconfigSecretDataKey = "kubeconfig" - getSecretTimeout = 1 * time.Minute -) - -func BuildClusterConfig(c *federation_v1beta1.Cluster) (*restclient.Config, error) { - var serverAddress string - var clusterConfig *restclient.Config - hostIP, err := utilnet.ChooseHostInterface() - if err != nil { - return nil, err - } - - for _, item := range c.Spec.ServerAddressByClientCIDRs { - _, cidrnet, err := net.ParseCIDR(item.ClientCIDR) - if err != nil { - return nil, err - } - myaddr := net.ParseIP(hostIP.String()) - if cidrnet.Contains(myaddr) == true { - serverAddress = item.ServerAddress - break - } - } - if serverAddress != "" { - if c.Spec.SecretRef == nil { - glog.Infof("didn't find secretRef for cluster %s. Trying insecure access", c.Name) - clusterConfig, err = clientcmd.BuildConfigFromFlags(serverAddress, "") - } else { - if c.Spec.SecretRef.Name == "" { - return nil, fmt.Errorf("found secretRef but no secret name for cluster %s", c.Name) - } - var secret *api.Secret - secret, err = getSecret(c.Spec.SecretRef.Name) - if err != nil { - return nil, err - } - // Pre-1.7, the secret contained a serialized kubeconfig which contained appropriate credentials. - // Post-1.7, the secret contains credentials for a service account. - // Check for the service account credentials, and use them if they exist; if not, use the - // serialized kubeconfig. - token, tokenFound := secret.Data["token"] - ca, caFound := secret.Data["ca.crt"] - if tokenFound != caFound { - return nil, fmt.Errorf("secret should have values for either both 'ca.crt' and 'token' in its Data, or neither: %v", secret) - } else if tokenFound && caFound { - clusterConfig, err = clientcmd.BuildConfigFromFlags(serverAddress, "") - clusterConfig.CAData = ca - clusterConfig.BearerToken = string(token) - } else { - kubeconfigGetter := KubeconfigGetterForSecret(secret) - clusterConfig, err = clientcmd.BuildConfigFromKubeconfigGetter(serverAddress, kubeconfigGetter) - } - } - if err != nil { - return nil, err - } - clusterConfig.QPS = KubeAPIQPS - clusterConfig.Burst = KubeAPIBurst - } - return clusterConfig, nil -} - -// getSecret gets a secret from the cluster. -func getSecret(secretName string) (*api.Secret, error) { - // Get the namespace this is running in from the env variable. - namespace := os.Getenv("POD_NAMESPACE") - if namespace == "" { - return nil, fmt.Errorf("unexpected: POD_NAMESPACE env var returned empty string") - } - // Get a client to talk to the k8s apiserver, to fetch secrets from it. - cc, err := restclient.InClusterConfig() - if err != nil { - return nil, fmt.Errorf("error in creating in-cluster config: %s", err) - } - client, err := clientset.NewForConfig(cc) - if err != nil { - return nil, fmt.Errorf("error in creating in-cluster client: %s", err) - } - var secret *api.Secret - err = wait.PollImmediate(1*time.Second, getSecretTimeout, func() (bool, error) { - secret, err = client.Core().Secrets(namespace).Get(secretName, metav1.GetOptions{}) - if err == nil { - return true, nil - } - glog.Warningf("error in fetching secret: %s", err) - return false, nil - }) - if err != nil { - return nil, fmt.Errorf("timed out waiting for secret: %s", err) - } - if secret == nil { - return nil, fmt.Errorf("unexpected: received null secret %s", secretName) - } - return secret, nil -} - -// KubeconfigGetterForSecret gets the kubeconfig from the given secret. -// This is to inject a different KubeconfigGetter in tests. We don't use -// the standard one which calls NewInCluster in tests to avoid having to -// set up service accounts and mount files with secret tokens. -var KubeconfigGetterForSecret = func(secret *api.Secret) clientcmd.KubeconfigGetter { - return func() (*clientcmdapi.Config, error) { - data, ok := secret.Data[KubeconfigSecretDataKey] - if !ok { - return nil, fmt.Errorf("secret does not have data with key %s", KubeconfigSecretDataKey) - } - return clientcmd.Load(data) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/BUILD deleted file mode 100644 index 7298f3684..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["clusterselector_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector", - library = ":go_default_library", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//vendor/github.com/stretchr/testify/require:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = ["clusterselector.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/selection:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/clusterselector.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/clusterselector.go deleted file mode 100644 index e4a56f25a..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/clusterselector.go +++ /dev/null @@ -1,86 +0,0 @@ -/* -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 clusterselector - -import ( - "encoding/json" - - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/selection" - federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" -) - -// Parses the cluster selector annotation to find out if the object with that annotation should be forwarded to a cluster with the given clusterLabels. -func SendToCluster(clusterLabels map[string]string, annotations map[string]string) (bool, error) { - // Check if a ClusterSelector annotation exists and send to all clusters when it does not exist - val, ok := annotations[federation_v1beta1.FederationClusterSelectorAnnotation] - if !ok { - return true, nil - } - - selector, err := getSelector(val) - if err != nil { - return false, err - } - return selector.Matches(labels.Set(clusterLabels)), nil -} - -func getSelector(annotation string) (labels.Selector, error) { - selector := labels.NewSelector() - requirements := make([]federation_v1beta1.ClusterSelectorRequirement, 0) - err := json.Unmarshal([]byte(annotation), &requirements) - if err != nil { - return nil, err - } - - for _, requirement := range requirements { - r, err := labels.NewRequirement(requirement.Key, ConvertOperator(requirement.Operator), requirement.Values) - if err != nil { - // Stop processing and assume failure since we have no way of knowing the end users intent for this or any other clusters. - return nil, err - } - selector = selector.Add(*r) - } - - return selector, nil -} - -// ConvertOperator converts a string operator into selection.Operator type -func ConvertOperator(source string) selection.Operator { - var op selection.Operator - switch source { - case "!", "DoesNotExist": - op = selection.DoesNotExist - case "=": - op = selection.Equals - case "==": - op = selection.DoubleEquals - case "in", "In": - op = selection.In - case "!=": - op = selection.NotEquals - case "notin", "NotIn": - op = selection.NotIn - case "exists", "Exists": - op = selection.Exists - case "gt", "Gt", ">": - op = selection.GreaterThan - case "lt", "Lt", "<": - op = selection.LessThan - } - return op -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/clusterselector_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/clusterselector_test.go deleted file mode 100644 index 247ef299c..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/clusterselector/clusterselector_test.go +++ /dev/null @@ -1,98 +0,0 @@ -/* -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 clusterselector - -import ( - "testing" - - "github.com/stretchr/testify/require" - - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" -) - -func TestSendToCluster(t *testing.T) { - - clusterLabels := map[string]string{ - "location": "europe", - "environment": "prod", - "version": "15", - } - - testCases := map[string]struct { - objectAnnotations map[string]string - expectedResult bool - expectedErr bool - }{ - "match with single annotation": { - objectAnnotations: map[string]string{ - federationapi.FederationClusterSelectorAnnotation: `[{"key": "location", "operator": "in", "values": ["europe"]}]`, - }, - expectedResult: true, - }, - "match on multiple annotations": { - objectAnnotations: map[string]string{ - federationapi.FederationClusterSelectorAnnotation: `[{"key": "location", "operator": "in", "values": ["europe"]}, {"key": "environment", "operator": "==", "values": ["prod"]}]`, - }, - expectedResult: true, - }, - "mismatch on one annotation": { - objectAnnotations: map[string]string{ - federationapi.FederationClusterSelectorAnnotation: `[{"key": "location", "operator": "in", "values": ["europe"]}, {"key": "environment", "operator": "==", "values": ["test"]}]`, - }, - expectedResult: false, - }, - "match on not equal annotation": { - objectAnnotations: map[string]string{ - federationapi.FederationClusterSelectorAnnotation: `[{"key": "location", "operator": "!=", "values": ["usa"]}, {"key": "environment", "operator": "in", "values": ["prod"]}]`, - }, - expectedResult: true, - }, - "match on greater than annotation": { - objectAnnotations: map[string]string{ - federationapi.FederationClusterSelectorAnnotation: `[{"key": "version", "operator": ">", "values": ["14"]}]`, - }, - expectedResult: true, - }, - "mismatch on greater than annotation": { - objectAnnotations: map[string]string{ - federationapi.FederationClusterSelectorAnnotation: `[{"key": "version", "operator": ">", "values": ["15"]}]`, - }, - expectedResult: false, - }, - "unable to parse annotation": { - objectAnnotations: map[string]string{ - federationapi.FederationClusterSelectorAnnotation: `[{"not able to parse",}]`, - }, - expectedResult: false, - expectedErr: true, - }, - } - - for testName, testCase := range testCases { - t.Run(testName, func(t *testing.T) { - result, err := SendToCluster(clusterLabels, testCase.objectAnnotations) - - if testCase.expectedErr { - require.Error(t, err, "An error was expected") - } else { - require.NoError(t, err, "An error was not expected") - } - - require.Equal(t, testCase.expectedResult, result, "Unexpected response from SendToCluster") - }) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/configmap.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/configmap.go deleted file mode 100644 index c09df8ab0..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/configmap.go +++ /dev/null @@ -1,31 +0,0 @@ -/* -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 util - -import ( - "reflect" - - api_v1 "k8s.io/api/core/v1" -) - -// Checks if cluster-independent, user provided data in two given ConfigMaps are equal. If in -// the future the ConfigMap structure is expanded then any field that is not populated. -// by the api server should be included here. -func ConfigMapEquivalent(s1, s2 *api_v1.ConfigMap) bool { - return ObjectMetaEquivalent(s1.ObjectMeta, s2.ObjectMeta) && - reflect.DeepEqual(s1.Data, s2.Data) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/delaying_deliverer.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/delaying_deliverer.go deleted file mode 100644 index e087ad6d9..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/delaying_deliverer.go +++ /dev/null @@ -1,183 +0,0 @@ -/* -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. -*/ - -// TODO: consider moving it to a more generic package. -package util - -import ( - "container/heap" - "time" -) - -const ( - // TODO: Investigate what capacity is right. - delayingDelivererUpdateChanCapacity = 1000 -) - -// DelayingDelivererItem is structure delivered by DelayingDeliverer to the -// target channel. -type DelayingDelivererItem struct { - // Key under which the value was added to deliverer. - Key string - // Value of the item. - Value interface{} - // When the item should be delivered. - DeliveryTime time.Time -} - -type delivererHeap struct { - keyPosition map[string]int - data []*DelayingDelivererItem -} - -// Functions required by container.Heap. - -func (dh *delivererHeap) Len() int { return len(dh.data) } -func (dh *delivererHeap) Less(i, j int) bool { - return dh.data[i].DeliveryTime.Before(dh.data[j].DeliveryTime) -} -func (dh *delivererHeap) Swap(i, j int) { - dh.keyPosition[dh.data[i].Key] = j - dh.keyPosition[dh.data[j].Key] = i - dh.data[i], dh.data[j] = dh.data[j], dh.data[i] -} - -func (dh *delivererHeap) Push(x interface{}) { - item := x.(*DelayingDelivererItem) - dh.data = append(dh.data, item) - dh.keyPosition[item.Key] = len(dh.data) - 1 -} - -func (dh *delivererHeap) Pop() interface{} { - n := len(dh.data) - item := dh.data[n-1] - dh.data = dh.data[:n-1] - delete(dh.keyPosition, item.Key) - return item -} - -// A structure that pushes the items to the target channel at a given time. -type DelayingDeliverer struct { - // Channel to deliver the data when their time comes. - targetChannel chan *DelayingDelivererItem - // Store for data - heap *delivererHeap - // Channel to feed the main goroutine with updates. - updateChannel chan *DelayingDelivererItem - // To stop the main goroutine. - stopChannel chan struct{} -} - -func NewDelayingDeliverer() *DelayingDeliverer { - return NewDelayingDelivererWithChannel(make(chan *DelayingDelivererItem, 100)) -} - -func NewDelayingDelivererWithChannel(targetChannel chan *DelayingDelivererItem) *DelayingDeliverer { - return &DelayingDeliverer{ - targetChannel: targetChannel, - heap: &delivererHeap{ - keyPosition: make(map[string]int), - data: make([]*DelayingDelivererItem, 0), - }, - updateChannel: make(chan *DelayingDelivererItem, delayingDelivererUpdateChanCapacity), - stopChannel: make(chan struct{}), - } -} - -// Deliver all items due before or equal to timestamp. -func (d *DelayingDeliverer) deliver(timestamp time.Time) { - for d.heap.Len() > 0 { - if timestamp.Before(d.heap.data[0].DeliveryTime) { - return - } - item := heap.Pop(d.heap).(*DelayingDelivererItem) - d.targetChannel <- item - } -} - -func (d *DelayingDeliverer) run() { - for { - now := time.Now() - d.deliver(now) - - nextWakeUp := now.Add(time.Hour) - if d.heap.Len() > 0 { - nextWakeUp = d.heap.data[0].DeliveryTime - } - sleepTime := nextWakeUp.Sub(now) - - select { - case <-time.After(sleepTime): - break // just wake up and process the data - case item := <-d.updateChannel: - if position, found := d.heap.keyPosition[item.Key]; found { - if item.DeliveryTime.Before(d.heap.data[position].DeliveryTime) { - d.heap.data[position] = item - heap.Fix(d.heap, position) - } - // Ignore if later. - } else { - heap.Push(d.heap, item) - } - case <-d.stopChannel: - return - } - } -} - -// Starts the DelayingDeliverer. -func (d *DelayingDeliverer) Start() { - go d.run() -} - -// Stops the DelayingDeliverer. Undelivered items are discarded. -func (d *DelayingDeliverer) Stop() { - close(d.stopChannel) -} - -// Delivers value at the given time. -func (d *DelayingDeliverer) DeliverAt(key string, value interface{}, deliveryTime time.Time) { - d.updateChannel <- &DelayingDelivererItem{ - Key: key, - Value: value, - DeliveryTime: deliveryTime, - } -} - -// Delivers value after the given delay. -func (d *DelayingDeliverer) DeliverAfter(key string, value interface{}, delay time.Duration) { - d.DeliverAt(key, value, time.Now().Add(delay)) -} - -// Gets target channel of the deliverer. -func (d *DelayingDeliverer) GetTargetChannel() chan *DelayingDelivererItem { - return d.targetChannel -} - -// Starts Delaying deliverer with a handler listening on the target channel. -func (d *DelayingDeliverer) StartWithHandler(handler func(*DelayingDelivererItem)) { - go func() { - for { - select { - case item := <-d.targetChannel: - handler(item) - case <-d.stopChannel: - return - } - } - }() - d.Start() -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/delaying_deliverer_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/delaying_deliverer_test.go deleted file mode 100644 index 006bab4c4..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/delaying_deliverer_test.go +++ /dev/null @@ -1,63 +0,0 @@ -/* -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 util - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestDelayingDeliverer(t *testing.T) { - targetChannel := make(chan *DelayingDelivererItem) - now := time.Now() - d := NewDelayingDelivererWithChannel(targetChannel) - d.Start() - defer d.Stop() - startupDelay := time.Second - d.DeliverAt("a", "aaa", now.Add(startupDelay+2*time.Millisecond)) - d.DeliverAt("b", "bbb", now.Add(startupDelay+3*time.Millisecond)) - d.DeliverAt("c", "ccc", now.Add(startupDelay+1*time.Millisecond)) - d.DeliverAt("e", "eee", now.Add(time.Hour)) - d.DeliverAt("e", "eee", now) - - d.DeliverAt("d", "ddd", now.Add(time.Hour)) - - i0 := <-targetChannel - assert.Equal(t, "e", i0.Key) - assert.Equal(t, "eee", i0.Value.(string)) - assert.Equal(t, now, i0.DeliveryTime) - - i1 := <-targetChannel - received1 := time.Now() - assert.True(t, received1.Sub(now).Nanoseconds() > startupDelay.Nanoseconds()) - assert.Equal(t, "c", i1.Key) - - i2 := <-targetChannel - assert.Equal(t, "a", i2.Key) - - i3 := <-targetChannel - assert.Equal(t, "b", i3.Key) - - select { - case <-targetChannel: - t.Fatalf("Nothing should be received") - case <-time.After(time.Second): - // Ok. Expected - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper/BUILD deleted file mode 100644 index ae9397cde..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["deletion_helper.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper", - deps = [ - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/finalizers:go_default_library", - "//vendor/github.com/golang/glog: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/util/sets:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper/deletion_helper.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper/deletion_helper.go deleted file mode 100644 index d18570a98..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper/deletion_helper.go +++ /dev/null @@ -1,210 +0,0 @@ -/* -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 to help federation controllers to delete federated resources from -// underlying clusters when the resource is deleted from federation control -// plane. -package deletionhelper - -import ( - "fmt" - "strings" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - finalizersutil "k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers" - - "github.com/golang/glog" -) - -const ( - // Add this finalizer to a federation resource if the resource should be - // deleted from all underlying clusters before being deleted from - // federation control plane. - // This is ignored if FinalizerOrphan is also present on the resource. - // In that case, both finalizers are removed from the resource and the - // resource is deleted from federation control plane without affecting - // the underlying clusters. - FinalizerDeleteFromUnderlyingClusters string = "federation.kubernetes.io/delete-from-underlying-clusters" -) - -type UpdateObjFunc func(runtime.Object) (runtime.Object, error) -type ObjNameFunc func(runtime.Object) string - -type DeletionHelper struct { - updateObjFunc UpdateObjFunc - objNameFunc ObjNameFunc - informer util.FederatedInformer - updater util.FederatedUpdater -} - -func NewDeletionHelper( - updateObjFunc UpdateObjFunc, objNameFunc ObjNameFunc, - informer util.FederatedInformer, updater util.FederatedUpdater) *DeletionHelper { - return &DeletionHelper{ - updateObjFunc: updateObjFunc, - objNameFunc: objNameFunc, - informer: informer, - updater: updater, - } -} - -// Ensures that the given object has both FinalizerDeleteFromUnderlyingClusters -// and FinalizerOrphan finalizers. -// We do this so that the controller is always notified when a federation resource is deleted. -// If user deletes the resource with nil DeleteOptions or -// DeletionOptions.OrphanDependents = true then the apiserver removes the orphan finalizer -// and deletion helper does a cascading deletion. -// Otherwise, deletion helper just removes the federation resource and orphans -// the corresponding resources in underlying clusters. -// This method should be called before creating objects in underlying clusters. -func (dh *DeletionHelper) EnsureFinalizers(obj runtime.Object) ( - runtime.Object, error) { - finalizers := sets.String{} - hasFinalizer, err := finalizersutil.HasFinalizer(obj, FinalizerDeleteFromUnderlyingClusters) - if err != nil { - return obj, err - } - if !hasFinalizer { - finalizers.Insert(FinalizerDeleteFromUnderlyingClusters) - } - hasFinalizer, err = finalizersutil.HasFinalizer(obj, metav1.FinalizerOrphanDependents) - if err != nil { - return obj, err - } - if !hasFinalizer { - finalizers.Insert(metav1.FinalizerOrphanDependents) - } - if finalizers.Len() != 0 { - glog.V(2).Infof("Adding finalizers %v to %s", finalizers.List(), dh.objNameFunc(obj)) - return dh.addFinalizers(obj, finalizers) - } - return obj, nil -} - -// Deletes the resources corresponding to the given federated resource from -// all underlying clusters, unless it has the FinalizerOrphan finalizer. -// Removes FinalizerOrphan and FinalizerDeleteFromUnderlyingClusters finalizers -// when done. -// Callers are expected to keep calling this (with appropriate backoff) until -// it succeeds. -func (dh *DeletionHelper) HandleObjectInUnderlyingClusters(obj runtime.Object) ( - runtime.Object, error) { - objName := dh.objNameFunc(obj) - glog.V(2).Infof("Handling deletion of federated dependents for object: %s", objName) - hasFinalizer, err := finalizersutil.HasFinalizer(obj, FinalizerDeleteFromUnderlyingClusters) - if err != nil { - return obj, err - } - if !hasFinalizer { - glog.V(2).Infof("obj does not have %s finalizer. Nothing to do", FinalizerDeleteFromUnderlyingClusters) - return obj, nil - } - hasOrphanFinalizer, err := finalizersutil.HasFinalizer(obj, metav1.FinalizerOrphanDependents) - if err != nil { - return obj, err - } - if hasOrphanFinalizer { - glog.V(2).Infof("Found finalizer orphan. Nothing to do, just remove the finalizer") - // If the obj has FinalizerOrphan finalizer, then we need to orphan the - // corresponding objects in underlying clusters. - // Just remove both the finalizers in that case. - finalizers := sets.NewString(FinalizerDeleteFromUnderlyingClusters, metav1.FinalizerOrphanDependents) - return dh.removeFinalizers(obj, finalizers) - } - - glog.V(2).Infof("Deleting obj %s from underlying clusters", objName) - // Else, we need to delete the obj from all underlying clusters. - unreadyClusters, err := dh.informer.GetUnreadyClusters() - if err != nil { - return nil, fmt.Errorf("failed to get a list of unready clusters: %v", err) - } - // TODO: Handle the case when cluster resource is watched after this is executed. - // This can happen if a namespace is deleted before its creation had been - // observed in all underlying clusters. - storeKey := dh.informer.GetTargetStore().GetKeyFor(obj) - clusterNsObjs, err := dh.informer.GetTargetStore().GetFromAllClusters(storeKey) - glog.V(3).Infof("Found %d objects in underlying clusters", len(clusterNsObjs)) - if err != nil { - return nil, fmt.Errorf("failed to get object %s from underlying clusters: %v", objName, err) - } - operations := make([]util.FederatedOperation, 0) - for _, clusterNsObj := range clusterNsObjs { - operations = append(operations, util.FederatedOperation{ - Type: util.OperationTypeDelete, - ClusterName: clusterNsObj.ClusterName, - Obj: clusterNsObj.Object.(runtime.Object), - Key: objName, - }) - } - err = dh.updater.Update(operations) - if err != nil { - return nil, fmt.Errorf("failed to execute updates for obj %s: %v", objName, err) - } - if len(operations) > 0 { - // We have deleted a bunch of resources. - // Wait for the store to observe all the deletions. - var clusterNames []string - for _, op := range operations { - clusterNames = append(clusterNames, op.ClusterName) - } - return nil, fmt.Errorf("waiting for object %s to be deleted from clusters: %s", objName, strings.Join(clusterNames, ", ")) - } - - // We have now deleted the object from all *ready* clusters. - // But still need to wait for clusters that are not ready to ensure that - // the object has been deleted from *all* clusters. - if len(unreadyClusters) != 0 { - var clusterNames []string - for _, cluster := range unreadyClusters { - clusterNames = append(clusterNames, cluster.Name) - } - return nil, fmt.Errorf("waiting for clusters %s to become ready to verify that obj %s has been deleted", strings.Join(clusterNames, ", "), objName) - } - - // All done. Just remove the finalizer. - return dh.removeFinalizers(obj, sets.NewString(FinalizerDeleteFromUnderlyingClusters)) -} - -// Adds the given finalizers to the given objects ObjectMeta. -func (dh *DeletionHelper) addFinalizers(obj runtime.Object, finalizers sets.String) (runtime.Object, error) { - isUpdated, err := finalizersutil.AddFinalizers(obj, finalizers) - if err != nil || !isUpdated { - return obj, err - } - // Send the update to apiserver. - updatedObj, err := dh.updateObjFunc(obj) - if err != nil { - return nil, fmt.Errorf("failed to add finalizers %v to object %s: %v", finalizers, dh.objNameFunc(obj), err) - } - return updatedObj, nil -} - -// Removes the given finalizers from the given objects ObjectMeta. -func (dh *DeletionHelper) removeFinalizers(obj runtime.Object, finalizers sets.String) (runtime.Object, error) { - isUpdated, err := finalizersutil.RemoveFinalizers(obj, finalizers) - if err != nil || !isUpdated { - return obj, err - } - // Send the update to apiserver. - updatedObj, err := dh.updateObjFunc(obj) - if err != nil { - return nil, fmt.Errorf("failed to remove finalizers %v from object %s: %v", finalizers, dh.objNameFunc(obj), err) - } - return updatedObj, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deployment.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deployment.go deleted file mode 100644 index 8c9627aff..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deployment.go +++ /dev/null @@ -1,75 +0,0 @@ -/* -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 util - -import ( - "reflect" - - extensions_v1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - deputils "k8s.io/kubernetes/pkg/controller/deployment/util" -) - -// Checks if cluster-independent, user provided data in two given Deployment are equal. -// This function assumes that revisions are not kept in sync across the clusters. -func DeploymentEquivalent(a, b *extensions_v1.Deployment) bool { - if a.Name != b.Name { - return false - } - if a.Namespace != b.Namespace { - return false - } - if !reflect.DeepEqual(a.Labels, b.Labels) && (len(a.Labels) != 0 || len(b.Labels) != 0) { - return false - } - hasKeysAndVals := func(x, y map[string]string) bool { - if x == nil { - x = map[string]string{} - } - if y == nil { - y = map[string]string{} - } - for k, v := range x { - if k == deputils.RevisionAnnotation { - continue - } - v2, found := y[k] - if !found || v != v2 { - return false - } - } - return true - } - return hasKeysAndVals(a.Annotations, b.Annotations) && - hasKeysAndVals(b.Annotations, a.Annotations) && - reflect.DeepEqual(a.Spec, b.Spec) -} - -// Copies object meta for Deployment, skipping revision information. -func DeepCopyDeploymentObjectMeta(meta metav1.ObjectMeta) metav1.ObjectMeta { - meta = DeepCopyRelevantObjectMeta(meta) - delete(meta.Annotations, deputils.RevisionAnnotation) - return meta -} - -// Copies object meta for Deployment, skipping revision information. -func DeepCopyDeployment(a *extensions_v1.Deployment) *extensions_v1.Deployment { - return &extensions_v1.Deployment{ - ObjectMeta: DeepCopyDeploymentObjectMeta(a.ObjectMeta), - Spec: *a.Spec.DeepCopy(), - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deployment_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deployment_test.go deleted file mode 100644 index 97d59699f..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/deployment_test.go +++ /dev/null @@ -1,70 +0,0 @@ -/* -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 util - -import ( - "testing" - - extensionsv1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - deputils "k8s.io/kubernetes/pkg/controller/deployment/util" - - "github.com/stretchr/testify/assert" -) - -func TestDeploymentEquivalent(t *testing.T) { - d1 := newDeployment() - d2 := newDeployment() - d2.Annotations = make(map[string]string) - - d3 := newDeployment() - d3.Annotations = map[string]string{"a": "b"} - - d4 := newDeployment() - d4.Annotations = map[string]string{deputils.RevisionAnnotation: "9"} - - assert.True(t, DeploymentEquivalent(d1, d2)) - assert.True(t, DeploymentEquivalent(d1, d2)) - assert.True(t, DeploymentEquivalent(d1, d4)) - assert.True(t, DeploymentEquivalent(d4, d1)) - assert.False(t, DeploymentEquivalent(d3, d4)) - assert.False(t, DeploymentEquivalent(d3, d1)) - assert.True(t, DeploymentEquivalent(d3, d3)) -} - -func TestDeploymentCopy(t *testing.T) { - d1 := newDeployment() - d1.Annotations = map[string]string{deputils.RevisionAnnotation: "9", "a": "b"} - d2 := DeepCopyDeployment(d1) - assert.True(t, DeploymentEquivalent(d1, d2)) - assert.Contains(t, d2.Annotations, "a") - assert.NotContains(t, d2.Annotations, deputils.RevisionAnnotation) -} - -func newDeployment() *extensionsv1.Deployment { - replicas := int32(5) - return &extensionsv1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: "wrr", - Namespace: metav1.NamespaceDefault, - SelfLink: "/api/v1/namespaces/default/deployments/name123", - }, - Spec: extensionsv1.DeploymentSpec{ - Replicas: &replicas, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/BUILD deleted file mode 100644 index bf5fbe565..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/BUILD +++ /dev/null @@ -1,52 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["eventsink.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink", - deps = [ - "//federation/client/clientset_generated/federation_clientset: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/conversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["eventsink_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink", - library = ":go_default_library", - deps = [ - "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", - "//federation/pkg/federation-controller/util/test:go_default_library", - "//vendor/github.com/stretchr/testify/assert: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/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/eventsink.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/eventsink.go deleted file mode 100644 index 343fef5df..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/eventsink.go +++ /dev/null @@ -1,111 +0,0 @@ -/* -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 eventsink - -import ( - "reflect" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/conversion" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/types" - "k8s.io/client-go/tools/record" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" -) - -// Implements k8s.io/client-go/tools/record.EventSink. -type FederatedEventSink struct { - clientset fedclientset.Interface -} - -// To check if all required functions are implemented. -var _ record.EventSink = &FederatedEventSink{} - -func NewFederatedEventSink(clientset fedclientset.Interface) *FederatedEventSink { - return &FederatedEventSink{ - clientset: clientset, - } -} - -// TODO this is uses a reflection conversion path and is very expensive. federation should update to use client-go - -var scheme = runtime.NewScheme() - -func init() { - // register client-go's and kube's Event type under two different GroupVersions - // TODO: switch to client-go client for events - scheme.AddKnownTypes(v1.SchemeGroupVersion, &v1.Event{}) - scheme.AddKnownTypes(schema.GroupVersion{Group: "fake-kube-" + v1.SchemeGroupVersion.Group, Version: v1.SchemeGroupVersion.Version}, &v1.Event{}) - - if err := scheme.AddConversionFuncs( - metav1.Convert_unversioned_Time_To_unversioned_Time, - ); err != nil { - panic(err) - } - if err := scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{ - Fn: func(in, out interface{}, c *conversion.Cloner) error { - in.(*metav1.Time).DeepCopyInto(out.(*metav1.Time)) - return nil - }, - InType: reflect.TypeOf(&metav1.Time{}), - }, - ); err != nil { - panic(err) - } -} - -func (fes *FederatedEventSink) Create(event *v1.Event) (*v1.Event, error) { - ret, err := fes.clientset.Core().Events(event.Namespace).Create(event) - if err != nil { - return nil, err - } - - retEvent := &v1.Event{} - if err := scheme.Convert(ret, retEvent, nil); err != nil { - return nil, err - } - return retEvent, nil -} - -func (fes *FederatedEventSink) Update(event *v1.Event) (*v1.Event, error) { - ret, err := fes.clientset.Core().Events(event.Namespace).Update(event) - if err != nil { - return nil, err - } - - retEvent := &v1.Event{} - if err := scheme.Convert(ret, retEvent, nil); err != nil { - return nil, err - } - return retEvent, nil -} - -func (fes *FederatedEventSink) Patch(event *v1.Event, data []byte) (*v1.Event, error) { - ret, err := fes.clientset.Core().Events(event.Namespace).Patch(event.Name, types.StrategicMergePatchType, data) - if err != nil { - return nil, err - } - - retEvent := &v1.Event{} - if err := scheme.Convert(ret, retEvent, nil); err != nil { - return nil, err - } - return retEvent, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/eventsink_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/eventsink_test.go deleted file mode 100644 index 230ef8d0d..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink/eventsink_test.go +++ /dev/null @@ -1,71 +0,0 @@ -/* -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 eventsink - -import ( - "testing" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - core "k8s.io/client-go/testing" - fakefedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake" - . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" - - "github.com/stretchr/testify/assert" -) - -func TestEventSink(t *testing.T) { - fakeFederationClient := &fakefedclientset.Clientset{} - createdChan := make(chan runtime.Object, 100) - fakeFederationClient.AddReactor("create", "events", func(action core.Action) (bool, runtime.Object, error) { - createAction := action.(core.CreateAction) - obj := createAction.GetObject() - createdChan <- obj - return true, obj, nil - }) - updateChan := make(chan runtime.Object, 100) - fakeFederationClient.AddReactor("update", "events", func(action core.Action) (bool, runtime.Object, error) { - updateAction := action.(core.UpdateAction) - obj := updateAction.GetObject() - updateChan <- obj - return true, obj, nil - }) - - event := v1.Event{ - ObjectMeta: metav1.ObjectMeta{ - Name: "bzium", - Namespace: "ns", - }, - } - sink := NewFederatedEventSink(fakeFederationClient) - eventUpdated, err := sink.Create(&event) - assert.NoError(t, err) - eventV1 := GetObjectFromChan(createdChan).(*v1.Event) - assert.NotNil(t, eventV1) - // Just some simple sanity checks. - assert.Equal(t, event.Name, eventV1.Name) - assert.Equal(t, event.Name, eventUpdated.Name) - - eventUpdated, err = sink.Update(&event) - assert.NoError(t, err) - eventV1 = GetObjectFromChan(updateChan).(*v1.Event) - assert.NotNil(t, eventV1) - // Just some simple sanity checks. - assert.Equal(t, event.Name, eventV1.Name) - assert.Equal(t, event.Name, eventUpdated.Name) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_informer.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_informer.go deleted file mode 100644 index b3b0dedb8..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_informer.go +++ /dev/null @@ -1,524 +0,0 @@ -/* -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 util - -import ( - "fmt" - "reflect" - "sync" - "time" - - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/cache" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - - "github.com/golang/glog" -) - -const ( - clusterSyncPeriod = 10 * time.Minute - userAgentName = "federation-controller" -) - -// An object with an origin information. -type FederatedObject struct { - Object interface{} - ClusterName string -} - -// FederatedReadOnlyStore is an overlay over multiple stores created in federated clusters. -type FederatedReadOnlyStore interface { - // Returns all items in the store. - List() ([]FederatedObject, error) - - // Returns all items from a cluster. - ListFromCluster(clusterName string) ([]interface{}, error) - - // GetKeyFor returns the key under which the item would be put in the store. - GetKeyFor(item interface{}) string - - // GetByKey returns the item stored under the given key in the specified cluster (if exist). - GetByKey(clusterName string, key string) (interface{}, bool, error) - - // Returns the items stored under the given key in all clusters. - GetFromAllClusters(key string) ([]FederatedObject, error) - - // Checks whether stores for all clusters form the lists (and only these) are there and - // are synced. This is only a basic check whether the data inside of the store is usable. - // It is not a full synchronization/locking mechanism it only tries to ensure that out-of-sync - // issues occur less often. All users of the interface should assume - // that there may be significant delays in content updates of all kinds and write their - // code that it doesn't break if something is slightly out-of-sync. - ClustersSynced(clusters []*federationapi.Cluster) bool -} - -// An interface to access federation members and clients. -type FederationView interface { - // GetClientsetForCluster returns a clientset for the cluster, if present. - GetClientsetForCluster(clusterName string) (kubeclientset.Interface, error) - - // GetUnreadyClusters returns a list of all clusters that are not ready yet. - GetUnreadyClusters() ([]*federationapi.Cluster, error) - - // GetReadyClusters returns all clusters for which the sub-informers are run. - GetReadyClusters() ([]*federationapi.Cluster, error) - - // GetReadyCluster returns the cluster with the given name, if found. - GetReadyCluster(name string) (*federationapi.Cluster, bool, error) - - // ClustersSynced returns true if the view is synced (for the first time). - ClustersSynced() bool -} - -// A structure that combines an informer running against federated api server and listening for cluster updates -// with multiple Kubernetes API informers (called target informers) running against federation members. Whenever a new -// cluster is added to the federation an informer is created for it using TargetInformerFactory. Informers are stopped -// when a cluster is either put offline of deleted. It is assumed that some controller keeps an eye on the cluster list -// and thus the clusters in ETCD are up to date. -type FederatedInformer interface { - FederationView - - // Returns a store created over all stores from target informers. - GetTargetStore() FederatedReadOnlyStore - - // Starts all the processes. - Start() - - // Stops all the processes inside the informer. - Stop() -} - -// FederatedInformer with extra method for setting fake clients. -type FederatedInformerForTestOnly interface { - FederatedInformer - - SetClientFactory(func(*federationapi.Cluster) (kubeclientset.Interface, error)) -} - -// A function that should be used to create an informer on the target object. Store should use -// cache.DeletionHandlingMetaNamespaceKeyFunc as a keying function. -type TargetInformerFactory func(*federationapi.Cluster, kubeclientset.Interface) (cache.Store, cache.Controller) - -// A structure with cluster lifecycle handler functions. Cluster is available (and ClusterAvailable is fired) -// when it is created in federated etcd and ready. Cluster becomes unavailable (and ClusterUnavailable is fired) -// when it is either deleted or becomes not ready. When cluster spec (IP)is modified both ClusterAvailable -// and ClusterUnavailable are fired. -type ClusterLifecycleHandlerFuncs struct { - // Fired when the cluster becomes available. - ClusterAvailable func(*federationapi.Cluster) - // Fired when the cluster becomes unavailable. The second arg contains data that was present - // in the cluster before deletion. - ClusterUnavailable func(*federationapi.Cluster, []interface{}) -} - -// Builds a FederatedInformer for the given federation client and factory. -func NewFederatedInformer( - federationClient federationclientset.Interface, - targetInformerFactory TargetInformerFactory, - clusterLifecycle *ClusterLifecycleHandlerFuncs) FederatedInformer { - - federatedInformer := &federatedInformerImpl{ - targetInformerFactory: targetInformerFactory, - clientFactory: func(cluster *federationapi.Cluster) (kubeclientset.Interface, error) { - clusterConfig, err := BuildClusterConfig(cluster) - if err == nil && clusterConfig != nil { - clientset := kubeclientset.NewForConfigOrDie(restclient.AddUserAgent(clusterConfig, userAgentName)) - return clientset, nil - } - return nil, err - }, - targetInformers: make(map[string]informer), - } - - getClusterData := func(name string) []interface{} { - data, err := federatedInformer.GetTargetStore().ListFromCluster(name) - if err != nil { - glog.Errorf("Failed to list %s content: %v", name, err) - return make([]interface{}, 0) - } - return data - } - - federatedInformer.clusterInformer.store, federatedInformer.clusterInformer.controller = cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (pkgruntime.Object, error) { - return federationClient.Federation().Clusters().List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return federationClient.Federation().Clusters().Watch(options) - }, - }, - &federationapi.Cluster{}, - clusterSyncPeriod, - cache.ResourceEventHandlerFuncs{ - DeleteFunc: func(old interface{}) { - oldCluster, ok := old.(*federationapi.Cluster) - if ok { - var data []interface{} - if clusterLifecycle.ClusterUnavailable != nil { - data = getClusterData(oldCluster.Name) - } - federatedInformer.deleteCluster(oldCluster) - if clusterLifecycle.ClusterUnavailable != nil { - clusterLifecycle.ClusterUnavailable(oldCluster, data) - } - } - }, - AddFunc: func(cur interface{}) { - curCluster, ok := cur.(*federationapi.Cluster) - if ok && isClusterReady(curCluster) { - federatedInformer.addCluster(curCluster) - if clusterLifecycle.ClusterAvailable != nil { - clusterLifecycle.ClusterAvailable(curCluster) - } - } else { - glog.Errorf("Cluster %v not added. Not of correct type, or cluster not ready.", cur) - } - }, - UpdateFunc: func(old, cur interface{}) { - oldCluster, ok := old.(*federationapi.Cluster) - if !ok { - glog.Errorf("Internal error: Cluster %v not updated. Old cluster not of correct type.", old) - return - } - curCluster, ok := cur.(*federationapi.Cluster) - if !ok { - glog.Errorf("Internal error: Cluster %v not updated. New cluster not of correct type.", cur) - return - } - if isClusterReady(oldCluster) != isClusterReady(curCluster) || !reflect.DeepEqual(oldCluster.Spec, curCluster.Spec) || !reflect.DeepEqual(oldCluster.ObjectMeta.Annotations, curCluster.ObjectMeta.Annotations) { - var data []interface{} - if clusterLifecycle.ClusterUnavailable != nil { - data = getClusterData(oldCluster.Name) - } - federatedInformer.deleteCluster(oldCluster) - if clusterLifecycle.ClusterUnavailable != nil { - clusterLifecycle.ClusterUnavailable(oldCluster, data) - } - - if isClusterReady(curCluster) { - federatedInformer.addCluster(curCluster) - if clusterLifecycle.ClusterAvailable != nil { - clusterLifecycle.ClusterAvailable(curCluster) - } - } - } else { - glog.V(4).Infof("Cluster %v not updated to %v as ready status and specs are identical", oldCluster, curCluster) - } - }, - }, - ) - return federatedInformer -} - -func isClusterReady(cluster *federationapi.Cluster) bool { - for _, condition := range cluster.Status.Conditions { - if condition.Type == federationapi.ClusterReady { - if condition.Status == apiv1.ConditionTrue { - return true - } - } - } - return false -} - -type informer struct { - controller cache.Controller - store cache.Store - stopChan chan struct{} -} - -type federatedInformerImpl struct { - sync.Mutex - - // Informer on federated clusters. - clusterInformer informer - - // Target informers factory - targetInformerFactory TargetInformerFactory - - // Structures returned by targetInformerFactory - targetInformers map[string]informer - - // A function to build clients. - clientFactory func(*federationapi.Cluster) (kubeclientset.Interface, error) -} - -// *federatedInformerImpl implements FederatedInformer interface. -var _ FederatedInformer = &federatedInformerImpl{} - -type federatedStoreImpl struct { - federatedInformer *federatedInformerImpl -} - -func (f *federatedInformerImpl) Stop() { - glog.V(4).Infof("Stopping federated informer.") - f.Lock() - defer f.Unlock() - - glog.V(4).Infof("... Closing cluster informer channel.") - close(f.clusterInformer.stopChan) - for key, informer := range f.targetInformers { - glog.V(4).Infof("... Closing informer channel for %q.", key) - close(informer.stopChan) - // Remove each informer after it has been stopped to prevent - // subsequent cluster deletion from attempting to double close - // an informer's stop channel. - delete(f.targetInformers, key) - } -} - -func (f *federatedInformerImpl) Start() { - f.Lock() - defer f.Unlock() - - f.clusterInformer.stopChan = make(chan struct{}) - go f.clusterInformer.controller.Run(f.clusterInformer.stopChan) -} - -func (f *federatedInformerImpl) SetClientFactory(clientFactory func(*federationapi.Cluster) (kubeclientset.Interface, error)) { - f.Lock() - defer f.Unlock() - - f.clientFactory = clientFactory -} - -// GetClientsetForCluster returns a clientset for the cluster, if present. -func (f *federatedInformerImpl) GetClientsetForCluster(clusterName string) (kubeclientset.Interface, error) { - f.Lock() - defer f.Unlock() - return f.getClientsetForClusterUnlocked(clusterName) -} - -func (f *federatedInformerImpl) getClientsetForClusterUnlocked(clusterName string) (kubeclientset.Interface, error) { - // No locking needed. Will happen in f.GetCluster. - glog.V(4).Infof("Getting clientset for cluster %q", clusterName) - if cluster, found, err := f.getReadyClusterUnlocked(clusterName); found && err == nil { - glog.V(4).Infof("Got clientset for cluster %q", clusterName) - return f.clientFactory(cluster) - } else { - if err != nil { - return nil, err - } - } - return nil, fmt.Errorf("cluster %q not found", clusterName) -} - -func (f *federatedInformerImpl) GetUnreadyClusters() ([]*federationapi.Cluster, error) { - f.Lock() - defer f.Unlock() - - items := f.clusterInformer.store.List() - result := make([]*federationapi.Cluster, 0, len(items)) - for _, item := range items { - if cluster, ok := item.(*federationapi.Cluster); ok { - if !isClusterReady(cluster) { - result = append(result, cluster) - } - } else { - return nil, fmt.Errorf("wrong data in FederatedInformerImpl cluster store: %v", item) - } - } - return result, nil -} - -// GetReadyClusters returns all clusters for which the sub-informers are run. -func (f *federatedInformerImpl) GetReadyClusters() ([]*federationapi.Cluster, error) { - f.Lock() - defer f.Unlock() - - items := f.clusterInformer.store.List() - result := make([]*federationapi.Cluster, 0, len(items)) - for _, item := range items { - if cluster, ok := item.(*federationapi.Cluster); ok { - if isClusterReady(cluster) { - result = append(result, cluster) - } - } else { - return nil, fmt.Errorf("wrong data in FederatedInformerImpl cluster store: %v", item) - } - } - return result, nil -} - -// GetCluster returns the cluster with the given name, if found. -func (f *federatedInformerImpl) GetReadyCluster(name string) (*federationapi.Cluster, bool, error) { - f.Lock() - defer f.Unlock() - return f.getReadyClusterUnlocked(name) -} - -func (f *federatedInformerImpl) getReadyClusterUnlocked(name string) (*federationapi.Cluster, bool, error) { - if obj, exist, err := f.clusterInformer.store.GetByKey(name); exist && err == nil { - if cluster, ok := obj.(*federationapi.Cluster); ok { - if isClusterReady(cluster) { - return cluster, true, nil - } - return nil, false, nil - - } - return nil, false, fmt.Errorf("wrong data in FederatedInformerImpl cluster store: %v", obj) - - } else { - return nil, false, err - } -} - -// Synced returns true if the view is synced (for the first time) -func (f *federatedInformerImpl) ClustersSynced() bool { - return f.clusterInformer.controller.HasSynced() -} - -// Adds the given cluster to federated informer. -func (f *federatedInformerImpl) addCluster(cluster *federationapi.Cluster) { - f.Lock() - defer f.Unlock() - name := cluster.Name - if client, err := f.getClientsetForClusterUnlocked(name); err == nil { - store, controller := f.targetInformerFactory(cluster, client) - targetInformer := informer{ - controller: controller, - store: store, - stopChan: make(chan struct{}), - } - f.targetInformers[name] = targetInformer - go targetInformer.controller.Run(targetInformer.stopChan) - } else { - // TODO: create also an event for cluster. - glog.Errorf("Failed to create a client for cluster: %v", err) - } -} - -// Removes the cluster from federated informer. -func (f *federatedInformerImpl) deleteCluster(cluster *federationapi.Cluster) { - f.Lock() - defer f.Unlock() - name := cluster.Name - if targetInformer, found := f.targetInformers[name]; found { - close(targetInformer.stopChan) - } - delete(f.targetInformers, name) -} - -// Returns a store created over all stores from target informers. -func (f *federatedInformerImpl) GetTargetStore() FederatedReadOnlyStore { - return &federatedStoreImpl{ - federatedInformer: f, - } -} - -// Returns all items in the store. -func (fs *federatedStoreImpl) List() ([]FederatedObject, error) { - fs.federatedInformer.Lock() - defer fs.federatedInformer.Unlock() - - result := make([]FederatedObject, 0) - for clusterName, targetInformer := range fs.federatedInformer.targetInformers { - for _, value := range targetInformer.store.List() { - result = append(result, FederatedObject{ClusterName: clusterName, Object: value}) - } - } - return result, nil -} - -// Returns all items in the given cluster. -func (fs *federatedStoreImpl) ListFromCluster(clusterName string) ([]interface{}, error) { - fs.federatedInformer.Lock() - defer fs.federatedInformer.Unlock() - - result := make([]interface{}, 0) - if targetInformer, found := fs.federatedInformer.targetInformers[clusterName]; found { - values := targetInformer.store.List() - result = append(result, values...) - } - return result, nil -} - -// GetByKey returns the item stored under the given key in the specified cluster (if exist). -func (fs *federatedStoreImpl) GetByKey(clusterName string, key string) (interface{}, bool, error) { - fs.federatedInformer.Lock() - defer fs.federatedInformer.Unlock() - if targetInformer, found := fs.federatedInformer.targetInformers[clusterName]; found { - return targetInformer.store.GetByKey(key) - } - return nil, false, nil -} - -// Returns the items stored under the given key in all clusters. -func (fs *federatedStoreImpl) GetFromAllClusters(key string) ([]FederatedObject, error) { - fs.federatedInformer.Lock() - defer fs.federatedInformer.Unlock() - - result := make([]FederatedObject, 0) - for clusterName, targetInformer := range fs.federatedInformer.targetInformers { - value, exist, err := targetInformer.store.GetByKey(key) - if err != nil { - return nil, err - } - if exist { - result = append(result, FederatedObject{ClusterName: clusterName, Object: value}) - } - } - return result, nil -} - -// GetKeyFor returns the key under which the item would be put in the store. -func (fs *federatedStoreImpl) GetKeyFor(item interface{}) string { - // TODO: support other keying functions. - key, _ := cache.DeletionHandlingMetaNamespaceKeyFunc(item) - return key -} - -// Checks whether stores for all clusters form the lists (and only these) are there and -// are synced. -func (fs *federatedStoreImpl) ClustersSynced(clusters []*federationapi.Cluster) bool { - - // Get the list of informers to check under a lock and check it outside. - okSoFar, informersToCheck := func() (bool, []informer) { - fs.federatedInformer.Lock() - defer fs.federatedInformer.Unlock() - - if len(fs.federatedInformer.targetInformers) != len(clusters) { - return false, []informer{} - } - informersToCheck := make([]informer, 0, len(clusters)) - for _, cluster := range clusters { - if targetInformer, found := fs.federatedInformer.targetInformers[cluster.Name]; found { - informersToCheck = append(informersToCheck, targetInformer) - } else { - return false, []informer{} - } - } - return true, informersToCheck - }() - - if !okSoFar { - return false - } - for _, informerToCheck := range informersToCheck { - if !informerToCheck.controller.HasSynced() { - return false - } - } - return true -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_informer_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_informer_test.go deleted file mode 100644 index ce4ab70a1..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_informer_test.go +++ /dev/null @@ -1,150 +0,0 @@ -/* -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 util - -import ( - "testing" - "time" - - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/watch" - kubeclientset "k8s.io/client-go/kubernetes" - fakekubeclientset "k8s.io/client-go/kubernetes/fake" - core "k8s.io/client-go/testing" - "k8s.io/client-go/tools/cache" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fakefederationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake" - - "github.com/stretchr/testify/assert" -) - -// Basic test for Federated Informer. Checks whether the subinformer are added and deleted -// when the corresponding cluster entries appear and disappear from etcd. -func TestFederatedInformer(t *testing.T) { - fakeFederationClient := &fakefederationclientset.Clientset{} - - // Add a single cluster to federation and remove it when needed. - cluster := federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "mycluster", - }, - Status: federationapi.ClusterStatus{ - Conditions: []federationapi.ClusterCondition{ - {Type: federationapi.ClusterReady, Status: apiv1.ConditionTrue}, - }, - }, - } - fakeFederationClient.AddReactor("list", "clusters", func(action core.Action) (bool, runtime.Object, error) { - return true, &federationapi.ClusterList{Items: []federationapi.Cluster{cluster}}, nil - }) - deleteChan := make(chan struct{}) - fakeFederationClient.AddWatchReactor("clusters", func(action core.Action) (bool, watch.Interface, error) { - fakeWatch := watch.NewFake() - go func() { - <-deleteChan - fakeWatch.Delete(&cluster) - }() - return true, fakeWatch, nil - }) - - fakeKubeClient := &fakekubeclientset.Clientset{} - // There is a single service ns1/s1 in cluster mycluster. - service := apiv1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - }, - } - fakeKubeClient.AddReactor("list", "services", func(action core.Action) (bool, runtime.Object, error) { - return true, &apiv1.ServiceList{Items: []apiv1.Service{service}}, nil - }) - fakeKubeClient.AddWatchReactor("services", func(action core.Action) (bool, watch.Interface, error) { - return true, watch.NewFake(), nil - }) - - targetInformerFactory := func(cluster *federationapi.Cluster, clientset kubeclientset.Interface) (cache.Store, cache.Controller) { - return cache.NewInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - return clientset.Core().Services(metav1.NamespaceAll).List(options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return clientset.Core().Services(metav1.NamespaceAll).Watch(options) - }, - }, - &apiv1.Service{}, - 10*time.Second, - cache.ResourceEventHandlerFuncs{}) - } - - addedClusters := make(chan string, 1) - deletedClusters := make(chan string, 1) - lifecycle := ClusterLifecycleHandlerFuncs{ - ClusterAvailable: func(cluster *federationapi.Cluster) { - addedClusters <- cluster.Name - close(addedClusters) - }, - ClusterUnavailable: func(cluster *federationapi.Cluster, _ []interface{}) { - deletedClusters <- cluster.Name - close(deletedClusters) - }, - } - - informer := NewFederatedInformer(fakeFederationClient, targetInformerFactory, &lifecycle).(*federatedInformerImpl) - informer.clientFactory = func(cluster *federationapi.Cluster) (kubeclientset.Interface, error) { - return fakeKubeClient, nil - } - assert.NotNil(t, informer) - informer.Start() - - // Wait until mycluster is synced. - for !informer.GetTargetStore().ClustersSynced([]*federationapi.Cluster{&cluster}) { - time.Sleep(time.Millisecond * 100) - } - readyClusters, err := informer.GetReadyClusters() - assert.NoError(t, err) - assert.Contains(t, readyClusters, &cluster) - serviceList, err := informer.GetTargetStore().List() - assert.NoError(t, err) - federatedService := FederatedObject{ClusterName: "mycluster", Object: &service} - assert.Contains(t, serviceList, federatedService) - service1, found, err := informer.GetTargetStore().GetByKey("mycluster", "ns1/s1") - assert.NoError(t, err) - assert.True(t, found) - assert.EqualValues(t, &service, service1) - assert.Equal(t, "mycluster", <-addedClusters) - - // All checked, lets delete the cluster. - deleteChan <- struct{}{} - for !informer.GetTargetStore().ClustersSynced([]*federationapi.Cluster{}) { - time.Sleep(time.Millisecond * 100) - } - readyClusters, err = informer.GetReadyClusters() - assert.NoError(t, err) - assert.Empty(t, readyClusters) - - serviceList, err = informer.GetTargetStore().List() - assert.NoError(t, err) - assert.Empty(t, serviceList) - - assert.Equal(t, "mycluster", <-deletedClusters) - - // Test complete. - informer.Stop() -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_updater.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_updater.go deleted file mode 100644 index af3758046..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_updater.go +++ /dev/null @@ -1,157 +0,0 @@ -/* -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 util - -import ( - "fmt" - "strings" - "time" - - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - kubeclientset "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" -) - -// Type of the operation that can be executed in Federated. -type FederatedOperationType string - -const ( - OperationTypeAdd = "add" - OperationTypeUpdate = "update" - OperationTypeDelete = "delete" -) - -// FederatedOperation definition contains type (add/update/delete) and the object itself. -type FederatedOperation struct { - Type FederatedOperationType - ClusterName string - Obj pkgruntime.Object - Key string -} - -// A helper that executes the given set of updates on federation, in parallel. -type FederatedUpdater interface { - // Executes the given set of operations. - Update([]FederatedOperation) error -} - -// A function that executes some operation using the passed client and object. -type FederatedOperationHandler func(kubeclientset.Interface, pkgruntime.Object) error - -type federatedUpdaterImpl struct { - federation FederationView - - kind string - - timeout time.Duration - - eventRecorder record.EventRecorder - - addFunction FederatedOperationHandler - updateFunction FederatedOperationHandler - deleteFunction FederatedOperationHandler -} - -func NewFederatedUpdater(federation FederationView, kind string, timeout time.Duration, recorder record.EventRecorder, add, update, del FederatedOperationHandler) FederatedUpdater { - return &federatedUpdaterImpl{ - federation: federation, - kind: kind, - timeout: timeout, - eventRecorder: recorder, - addFunction: add, - updateFunction: update, - deleteFunction: del, - } -} - -func (fu *federatedUpdaterImpl) recordEvent(obj runtime.Object, eventType, eventVerb string, args ...interface{}) { - messageFmt := eventVerb + " %s %q in cluster %s" - fu.eventRecorder.Eventf(obj, api.EventTypeNormal, eventType, messageFmt, args...) -} - -// Update executes the given set of operations within the timeout specified for -// the instance. Timeout is best-effort. There is no guarantee that the -// underlying operations are stopped when it is reached. However the function -// will return after the timeout with a non-nil error. -func (fu *federatedUpdaterImpl) Update(ops []FederatedOperation) error { - done := make(chan error, len(ops)) - for _, op := range ops { - go func(op FederatedOperation) { - clusterName := op.ClusterName - - // TODO: Ensure that the clientset has reasonable timeout. - clientset, err := fu.federation.GetClientsetForCluster(clusterName) - if err != nil { - done <- err - return - } - - eventArgs := []interface{}{fu.kind, op.Key, clusterName} - baseEventType := fmt.Sprintf("%s", op.Type) - eventType := fmt.Sprintf("%sInCluster", strings.Title(baseEventType)) - - switch op.Type { - case OperationTypeAdd: - // TODO s+OperationTypeAdd+OperationTypeCreate+ - baseEventType = "create" - eventType := "CreateInCluster" - - fu.recordEvent(op.Obj, eventType, "Creating", eventArgs...) - err = fu.addFunction(clientset, op.Obj) - case OperationTypeUpdate: - fu.recordEvent(op.Obj, eventType, "Updating", eventArgs...) - err = fu.updateFunction(clientset, op.Obj) - case OperationTypeDelete: - fu.recordEvent(op.Obj, eventType, "Deleting", eventArgs...) - err = fu.deleteFunction(clientset, op.Obj) - // IsNotFound error is fine since that means the object is deleted already. - if errors.IsNotFound(err) { - err = nil - } - } - - if err != nil { - eventType := eventType + "Failed" - messageFmt := "Failed to " + baseEventType + " %s %q in cluster %s: %v" - eventArgs = append(eventArgs, err) - fu.eventRecorder.Eventf(op.Obj, api.EventTypeWarning, eventType, messageFmt, eventArgs...) - } - - done <- err - }(op) - } - start := time.Now() - for i := 0; i < len(ops); i++ { - now := time.Now() - if !now.Before(start.Add(fu.timeout)) { - return fmt.Errorf("failed to finish all operations in %v", fu.timeout) - } - select { - case err := <-done: - if err != nil { - return err - } - case <-time.After(start.Add(fu.timeout).Sub(now)): - return fmt.Errorf("failed to finish all operations in %v", fu.timeout) - } - } - // All operations finished in time. - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_updater_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_updater_test.go deleted file mode 100644 index 242cc906d..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/federated_updater_test.go +++ /dev/null @@ -1,157 +0,0 @@ -/* -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 util - -import ( - "fmt" - "testing" - "time" - - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - kubeclientset "k8s.io/client-go/kubernetes" - fakekubeclientset "k8s.io/client-go/kubernetes/fake" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - - "github.com/stretchr/testify/assert" -) - -// Fake federation view. -type fakeFederationView struct { -} - -// Verify that fakeFederationView implements FederationView interface -var _ FederationView = &fakeFederationView{} - -func (f *fakeFederationView) GetClientsetForCluster(clusterName string) (kubeclientset.Interface, error) { - return &fakekubeclientset.Clientset{}, nil -} - -func (f *fakeFederationView) GetReadyClusters() ([]*federationapi.Cluster, error) { - return []*federationapi.Cluster{}, nil -} - -func (f *fakeFederationView) GetUnreadyClusters() ([]*federationapi.Cluster, error) { - return []*federationapi.Cluster{}, nil -} - -func (f *fakeFederationView) GetReadyCluster(name string) (*federationapi.Cluster, bool, error) { - return nil, false, nil -} - -func (f *fakeFederationView) ClustersSynced() bool { - return true -} - -type fakeEventRecorder struct{} - -func (f *fakeEventRecorder) Event(object pkgruntime.Object, eventtype, reason, message string) {} -func (f *fakeEventRecorder) Eventf(object pkgruntime.Object, eventtype, reason, messageFmt string, args ...interface{}) { -} -func (f *fakeEventRecorder) PastEventf(object pkgruntime.Object, timestamp metav1.Time, eventtype, reason, messageFmt string, args ...interface{}) { -} - -func TestFederatedUpdaterOK(t *testing.T) { - addChan := make(chan string, 5) - updateChan := make(chan string, 5) - - updater := NewFederatedUpdater(&fakeFederationView{}, "foo", time.Minute, &fakeEventRecorder{}, - func(_ kubeclientset.Interface, obj pkgruntime.Object) error { - service := obj.(*apiv1.Service) - addChan <- service.Name - return nil - }, - func(_ kubeclientset.Interface, obj pkgruntime.Object) error { - service := obj.(*apiv1.Service) - updateChan <- service.Name - return nil - }, - noop) - - err := updater.Update([]FederatedOperation{ - { - Type: OperationTypeAdd, - Obj: makeService("A", "s1"), - }, - { - Type: OperationTypeUpdate, - Obj: makeService("B", "s2"), - }, - }) - assert.NoError(t, err) - add := <-addChan - update := <-updateChan - assert.Equal(t, "s1", add) - assert.Equal(t, "s2", update) -} - -func TestFederatedUpdaterError(t *testing.T) { - updater := NewFederatedUpdater(&fakeFederationView{}, "foo", time.Minute, &fakeEventRecorder{}, - func(_ kubeclientset.Interface, obj pkgruntime.Object) error { - return fmt.Errorf("boom") - }, noop, noop) - - err := updater.Update([]FederatedOperation{ - { - Type: OperationTypeAdd, - Obj: makeService("A", "s1"), - }, - { - Type: OperationTypeUpdate, - Obj: makeService("B", "s1"), - }, - }) - assert.Error(t, err) -} - -func TestFederatedUpdaterTimeout(t *testing.T) { - start := time.Now() - updater := NewFederatedUpdater(&fakeFederationView{}, "foo", time.Second, &fakeEventRecorder{}, - func(_ kubeclientset.Interface, obj pkgruntime.Object) error { - time.Sleep(time.Minute) - return nil - }, - noop, noop) - - err := updater.Update([]FederatedOperation{ - { - Type: OperationTypeAdd, - Obj: makeService("A", "s1"), - }, - { - Type: OperationTypeUpdate, - Obj: makeService("B", "s1"), - }, - }) - end := time.Now() - assert.Error(t, err) - assert.True(t, start.Add(10*time.Second).After(end)) -} - -func makeService(cluster, name string) *apiv1.Service { - return &apiv1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "ns1", - Name: name, - }, - } -} - -func noop(_ kubeclientset.Interface, _ pkgruntime.Object) error { - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/BUILD deleted file mode 100644 index ec6a91ef7..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["finalizers.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -go_test( - name = "go_default_test", - srcs = ["finalizers_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers", - library = ":go_default_library", - deps = [ - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - ], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/finalizers.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/finalizers.go deleted file mode 100644 index c1644887f..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/finalizers.go +++ /dev/null @@ -1,66 +0,0 @@ -/* -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. -*/ - -// Helper functions for manipulating finalizers. -package finalizers - -import ( - meta "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" -) - -// HasFinalizer returns true if the given object has the given finalizer in its ObjectMeta. -func HasFinalizer(obj runtime.Object, finalizer string) (bool, error) { - accessor, err := meta.Accessor(obj) - if err != nil { - return false, err - } - finalizers := sets.NewString(accessor.GetFinalizers()...) - return finalizers.Has(finalizer), nil -} - -// AddFinalizers adds the given finalizers to the given objects ObjectMeta. -// Returns true if the object was updated. -func AddFinalizers(obj runtime.Object, newFinalizers sets.String) (bool, error) { - accessor, err := meta.Accessor(obj) - if err != nil { - return false, err - } - oldFinalizers := sets.NewString(accessor.GetFinalizers()...) - if oldFinalizers.IsSuperset(newFinalizers) { - return false, nil - } - allFinalizers := oldFinalizers.Union(newFinalizers) - accessor.SetFinalizers(allFinalizers.List()) - return true, nil -} - -// RemoveFinalizers removes the given finalizers from the given objects ObjectMeta. -// Returns true if the object was updated. -func RemoveFinalizers(obj runtime.Object, finalizers sets.String) (bool, error) { - accessor, err := meta.Accessor(obj) - if err != nil { - return false, err - } - oldFinalizers := sets.NewString(accessor.GetFinalizers()...) - if oldFinalizers.Intersection(finalizers).Len() == 0 { - return false, nil - } - newFinalizers := oldFinalizers.Difference(finalizers) - accessor.SetFinalizers(newFinalizers.List()) - return true, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/finalizers_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/finalizers_test.go deleted file mode 100644 index 7783c8f97..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers/finalizers_test.go +++ /dev/null @@ -1,171 +0,0 @@ -/* -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 finalizers - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - "k8s.io/api/core/v1" - meta "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" -) - -func newObj(finalizers []string) runtime.Object { - pod := v1.Pod{} - pod.ObjectMeta.Finalizers = finalizers - return &pod -} - -func TestHasFinalizer(t *testing.T) { - testCases := []struct { - obj runtime.Object - finalizer string - result bool - }{ - { - newObj([]string{}), - "", - false, - }, - { - newObj([]string{}), - "someFinalizer", - false, - }, - { - newObj([]string{"someFinalizer"}), - "", - false, - }, - { - newObj([]string{"someFinalizer"}), - "anotherFinalizer", - false, - }, - { - newObj([]string{"someFinalizer"}), - "someFinalizer", - true, - }, - { - newObj([]string{"anotherFinalizer", "someFinalizer"}), - "someFinalizer", - true, - }, - } - for index, test := range testCases { - hasFinalizer, _ := HasFinalizer(test.obj, test.finalizer) - assert.Equal(t, hasFinalizer, test.result, fmt.Sprintf("Test case %d failed. Expected: %v, actual: %v", index, test.result, hasFinalizer)) - } -} - -func TestAddFinalizers(t *testing.T) { - testCases := []struct { - obj runtime.Object - finalizers sets.String - isUpdated bool - newFinalizers []string - }{ - { - newObj([]string{}), - sets.NewString(), - false, - []string{}, - }, - { - newObj([]string{}), - sets.NewString("someFinalizer"), - true, - []string{"someFinalizer"}, - }, - { - newObj([]string{"someFinalizer"}), - sets.NewString(), - false, - []string{"someFinalizer"}, - }, - { - newObj([]string{"someFinalizer"}), - sets.NewString("anotherFinalizer"), - true, - []string{"anotherFinalizer", "someFinalizer"}, - }, - { - newObj([]string{"someFinalizer"}), - sets.NewString("someFinalizer"), - false, - []string{"someFinalizer"}, - }, - } - for index, test := range testCases { - isUpdated, _ := AddFinalizers(test.obj, test.finalizers) - assert.Equal(t, isUpdated, test.isUpdated, fmt.Sprintf("Test case %d failed. Expected isUpdated: %v, actual: %v", index, test.isUpdated, isUpdated)) - accessor, _ := meta.Accessor(test.obj) - newFinalizers := accessor.GetFinalizers() - assert.Equal(t, test.newFinalizers, newFinalizers, fmt.Sprintf("Test case %d failed. Expected finalizers: %v, actual: %v", index, test.newFinalizers, newFinalizers)) - } -} - -func TestRemoveFinalizers(t *testing.T) { - testCases := []struct { - obj runtime.Object - finalizers sets.String - isUpdated bool - newFinalizers []string - }{ - { - newObj([]string{}), - sets.NewString(), - false, - []string{}, - }, - { - newObj([]string{}), - sets.NewString("someFinalizer"), - false, - []string{}, - }, - { - newObj([]string{"someFinalizer"}), - sets.NewString(), - false, - []string{"someFinalizer"}, - }, - { - newObj([]string{"someFinalizer"}), - sets.NewString("anotherFinalizer"), - false, - []string{"someFinalizer"}, - }, - { - newObj([]string{"someFinalizer", "anotherFinalizer"}), - sets.NewString("someFinalizer"), - true, - []string{"anotherFinalizer"}, - }, - } - for index, test := range testCases { - isUpdated, _ := RemoveFinalizers(test.obj, test.finalizers) - assert.Equal(t, isUpdated, test.isUpdated, fmt.Sprintf("Test case %d failed. Expected isUpdated: %v, actual: %v", index, test.isUpdated, isUpdated)) - accessor, _ := meta.Accessor(test.obj) - newFinalizers := accessor.GetFinalizers() - assert.Equal(t, test.newFinalizers, newFinalizers, fmt.Sprintf("Test case %d failed. Expected finalizers: %v, actual: %v", index, test.newFinalizers, newFinalizers)) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/handlers.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/handlers.go deleted file mode 100644 index 406d5ca31..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/handlers.go +++ /dev/null @@ -1,112 +0,0 @@ -/* -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 util - -import ( - "fmt" - "reflect" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/tools/cache" -) - -// Returns cache.ResourceEventHandlerFuncs that trigger the given function -// on all object changes. -func NewTriggerOnAllChanges(triggerFunc func(pkgruntime.Object)) *cache.ResourceEventHandlerFuncs { - return &cache.ResourceEventHandlerFuncs{ - DeleteFunc: func(old interface{}) { - oldObj := old.(pkgruntime.Object) - triggerFunc(oldObj) - }, - AddFunc: func(cur interface{}) { - curObj := cur.(pkgruntime.Object) - triggerFunc(curObj) - }, - UpdateFunc: func(old, cur interface{}) { - curObj := cur.(pkgruntime.Object) - if !reflect.DeepEqual(old, cur) { - triggerFunc(curObj) - } - }, - } -} - -// Returns cache.ResourceEventHandlerFuncs that trigger the given function -// on object add and delete as well as spec/object meta on update. -func NewTriggerOnMetaAndSpecChanges(triggerFunc func(pkgruntime.Object)) *cache.ResourceEventHandlerFuncs { - getFieldOrPanic := func(obj interface{}, fieldName string) interface{} { - val := reflect.ValueOf(obj).Elem().FieldByName(fieldName) - if val.IsValid() { - return val.Interface() - } else { - panic(fmt.Errorf("field not found: %s", fieldName)) - } - } - return &cache.ResourceEventHandlerFuncs{ - DeleteFunc: func(old interface{}) { - oldObj := old.(pkgruntime.Object) - triggerFunc(oldObj) - }, - AddFunc: func(cur interface{}) { - curObj := cur.(pkgruntime.Object) - triggerFunc(curObj) - }, - UpdateFunc: func(old, cur interface{}) { - curObj := cur.(pkgruntime.Object) - oldMeta := getFieldOrPanic(old, "ObjectMeta").(metav1.ObjectMeta) - curMeta := getFieldOrPanic(cur, "ObjectMeta").(metav1.ObjectMeta) - if !ObjectMetaEquivalent(oldMeta, curMeta) || - !reflect.DeepEqual(oldMeta.DeletionTimestamp, curMeta.DeletionTimestamp) || - !reflect.DeepEqual(getFieldOrPanic(old, "Spec"), getFieldOrPanic(cur, "Spec")) { - triggerFunc(curObj) - } - }, - } -} - -// Returns cache.ResourceEventHandlerFuncs that trigger the given function -// on object add/delete or ObjectMeta or given field is updated. -func NewTriggerOnMetaAndFieldChanges(field string, triggerFunc func(pkgruntime.Object)) *cache.ResourceEventHandlerFuncs { - getFieldOrPanic := func(obj interface{}, fieldName string) interface{} { - val := reflect.ValueOf(obj).Elem().FieldByName(fieldName) - if val.IsValid() { - return val.Interface() - } else { - panic(fmt.Errorf("field not found: %s", fieldName)) - } - } - return &cache.ResourceEventHandlerFuncs{ - DeleteFunc: func(old interface{}) { - oldObj := old.(pkgruntime.Object) - triggerFunc(oldObj) - }, - AddFunc: func(cur interface{}) { - curObj := cur.(pkgruntime.Object) - triggerFunc(curObj) - }, - UpdateFunc: func(old, cur interface{}) { - curObj := cur.(pkgruntime.Object) - oldMeta := getFieldOrPanic(old, "ObjectMeta").(metav1.ObjectMeta) - curMeta := getFieldOrPanic(cur, "ObjectMeta").(metav1.ObjectMeta) - if !ObjectMetaEquivalent(oldMeta, curMeta) || - !reflect.DeepEqual(getFieldOrPanic(old, field), getFieldOrPanic(cur, field)) { - triggerFunc(curObj) - } - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/handlers_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/handlers_test.go deleted file mode 100644 index 20c275335..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/handlers_test.go +++ /dev/null @@ -1,100 +0,0 @@ -/* -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 util - -import ( - "testing" - - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - pkgruntime "k8s.io/apimachinery/pkg/runtime" - - "github.com/stretchr/testify/assert" -) - -func TestHandlers(t *testing.T) { - // There is a single service ns1/s1 in cluster mycluster. - service := apiv1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - }, - } - service2 := apiv1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - Annotations: map[string]string{ - "A": "B", - }, - }, - } - triggerChan := make(chan struct{}, 1) - triggered := func() bool { - select { - case <-triggerChan: - return true - default: - return false - } - } - - trigger := NewTriggerOnAllChanges( - func(obj pkgruntime.Object) { - triggerChan <- struct{}{} - }) - - trigger.OnAdd(&service) - assert.True(t, triggered()) - trigger.OnDelete(&service) - assert.True(t, triggered()) - trigger.OnUpdate(&service, &service) - assert.False(t, triggered()) - trigger.OnUpdate(&service, &service2) - assert.True(t, triggered()) - - trigger2 := NewTriggerOnMetaAndSpecChanges( - func(obj pkgruntime.Object) { - triggerChan <- struct{}{} - }, - ) - - trigger2.OnAdd(&service) - assert.True(t, triggered()) - trigger2.OnDelete(&service) - assert.True(t, triggered()) - trigger2.OnUpdate(&service, &service) - assert.False(t, triggered()) - trigger2.OnUpdate(&service, &service2) - assert.True(t, triggered()) - - service3 := apiv1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - }, - Status: apiv1.ServiceStatus{ - LoadBalancer: apiv1.LoadBalancerStatus{ - Ingress: []apiv1.LoadBalancerIngress{{ - Hostname: "A", - }}, - }, - }, - } - trigger2.OnUpdate(&service, &service3) - assert.False(t, triggered()) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/hpa.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/hpa.go deleted file mode 100644 index d7a056f5e..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/hpa.go +++ /dev/null @@ -1,75 +0,0 @@ -/* -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 hpa - -import ( - "encoding/json" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" -) - -const ( - // FederatedAnnotationOnHpaTargetObj as key, is used by hpa controller to - // set selected cluster name list as annotation on the target object. - FederatedAnnotationOnHpaTargetObj = "federation.kubernetes.io/hpa-target-cluster-list" -) - -// ClusterNames stores the list of clusters represented by names as appearing on federation -// cluster objects. This is set by federation hpa and used by target objects federation -// controller to restrict that target object to only these clusters. -type ClusterNames struct { - Names []string -} - -func (cn *ClusterNames) String() string { - annotationBytes, _ := json.Marshal(cn) - return string(annotationBytes[:]) -} - -// GetHpaTargetClusterList is used to get the list of clusters from the target object -// annotations. -func GetHpaTargetClusterList(obj runtime.Object) (*ClusterNames, error) { - accessor, _ := meta.Accessor(obj) - targetObjAnno := accessor.GetAnnotations() - if targetObjAnno == nil { - return nil, nil - } - targetObjAnnoString, exists := targetObjAnno[FederatedAnnotationOnHpaTargetObj] - if !exists { - return nil, nil - } - - clusterNames := &ClusterNames{} - if err := json.Unmarshal([]byte(targetObjAnnoString), clusterNames); err != nil { - return nil, err - } - return clusterNames, nil -} - -// SetHpaTargetClusterList is used to set the list of clusters on the target object -// annotations. -func SetHpaTargetClusterList(obj runtime.Object, clusterNames ClusterNames) runtime.Object { - accessor, _ := meta.Accessor(obj) - anno := accessor.GetAnnotations() - if anno == nil { - anno = make(map[string]string) - accessor.SetAnnotations(anno) - } - anno[FederatedAnnotationOnHpaTargetObj] = clusterNames.String() - return obj -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/hpa_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/hpa_test.go deleted file mode 100644 index d12943bae..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/hpa_test.go +++ /dev/null @@ -1,115 +0,0 @@ -/* -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 hpa - -import ( - "testing" - - autoscalingv1 "k8s.io/api/autoscaling/v1" - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/stretchr/testify/require" -) - -func TestGetHpaTargetClusterList(t *testing.T) { - // Any object is fine for this test. - obj := &autoscalingv1.HorizontalPodAutoscaler{ - ObjectMeta: metav1.ObjectMeta{ - Name: "myhpa", - Namespace: "myNamespace", - SelfLink: "/api/mylink", - }, - } - - testCases := map[string]struct { - clusterNames *ClusterNames - expectedErr bool - }{ - "Wrong data set on annotations should return unmarshalling error when retrieving": { - expectedErr: true, - }, - "Get clusternames on annotations with 2 clusters, should have same names, which were set": { - clusterNames: &ClusterNames{ - Names: []string{ - "c1", - "c2", - }, - }, - }, - } - - for testName, testCase := range testCases { - t.Run(testName, func(t *testing.T) { - accessor, _ := meta.Accessor(obj) - anno := accessor.GetAnnotations() - if anno == nil { - anno = make(map[string]string) - accessor.SetAnnotations(anno) - } - if testCase.expectedErr { - anno[FederatedAnnotationOnHpaTargetObj] = "{" //some random string - } else { - anno[FederatedAnnotationOnHpaTargetObj] = testCase.clusterNames.String() - } - - readNames, err := GetHpaTargetClusterList(obj) - - if testCase.expectedErr { - require.Error(t, err, "An error was expected") - } else { - require.Equal(t, testCase.clusterNames, readNames, "Names should have been equal") - } - }) - } -} - -func TestSetHpaTargetClusterList(t *testing.T) { - // Any object is fine for this test. - obj := &autoscalingv1.HorizontalPodAutoscaler{ - ObjectMeta: metav1.ObjectMeta{ - Name: "myhpa", - Namespace: "myNamespace", - SelfLink: "/api/mylink", - }, - } - - testCases := map[string]struct { - clusterNames ClusterNames - expectedErr bool - }{ - "Get clusternames on annotations with 2 clusters, should have same names, which were set": { - clusterNames: ClusterNames{ - Names: []string{ - "c1", - "c2", - }, - }, - }, - } - - for testName, testCase := range testCases { - t.Run(testName, func(t *testing.T) { - - SetHpaTargetClusterList(obj, testCase.clusterNames) - readNames, err := GetHpaTargetClusterList(obj) - require.NoError(t, err, "An error should not have happened") - require.Equal(t, &testCase.clusterNames, readNames, "Names should have been equal") - - }) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/meta.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/meta.go deleted file mode 100644 index 2bd14d165..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/meta.go +++ /dev/null @@ -1,85 +0,0 @@ -/* -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 util - -import ( - "reflect" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -// Copies cluster-independent, user provided data from the given ObjectMeta struct. If in -// the future the ObjectMeta structure is expanded then any field that is not populated -// by the api server should be included here. -func copyObjectMeta(obj metav1.ObjectMeta) metav1.ObjectMeta { - return metav1.ObjectMeta{ - Name: obj.Name, - Namespace: obj.Namespace, - Labels: obj.Labels, - Annotations: obj.Annotations, - } -} - -// Deep copies cluster-independent, user provided data from the given ObjectMeta struct. If in -// the future the ObjectMeta structure is expanded then any field that is not populated -// by the api server should be included here. -func DeepCopyRelevantObjectMeta(obj metav1.ObjectMeta) metav1.ObjectMeta { - copyMeta := copyObjectMeta(obj) - if obj.Labels != nil { - copyMeta.Labels = make(map[string]string) - for key, val := range obj.Labels { - copyMeta.Labels[key] = val - } - } - if obj.Annotations != nil { - copyMeta.Annotations = make(map[string]string) - for key, val := range obj.Annotations { - copyMeta.Annotations[key] = val - } - } - return copyMeta -} - -// Checks if cluster-independent, user provided data in two given ObjectMeta are equal. If in -// the future the ObjectMeta structure is expanded then any field that is not populated -// by the api server should be included here. -func ObjectMetaEquivalent(a, b metav1.ObjectMeta) bool { - if a.Name != b.Name { - return false - } - if a.Namespace != b.Namespace { - return false - } - if !reflect.DeepEqual(a.Labels, b.Labels) && (len(a.Labels) != 0 || len(b.Labels) != 0) { - return false - } - if !reflect.DeepEqual(a.Annotations, b.Annotations) && (len(a.Annotations) != 0 || len(b.Annotations) != 0) { - return false - } - return true -} - -// Checks if cluster-independent, user provided data in ObjectMeta and Spec in two given top -// level api objects are equivalent. -func ObjectMetaAndSpecEquivalent(a, b runtime.Object) bool { - objectMetaA := reflect.ValueOf(a).Elem().FieldByName("ObjectMeta").Interface().(metav1.ObjectMeta) - objectMetaB := reflect.ValueOf(b).Elem().FieldByName("ObjectMeta").Interface().(metav1.ObjectMeta) - specA := reflect.ValueOf(a).Elem().FieldByName("Spec").Interface() - specB := reflect.ValueOf(b).Elem().FieldByName("Spec").Interface() - return ObjectMetaEquivalent(objectMetaA, objectMetaB) && reflect.DeepEqual(specA, specB) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/meta_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/meta_test.go deleted file mode 100644 index b41c26297..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/meta_test.go +++ /dev/null @@ -1,117 +0,0 @@ -/* -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 util - -import ( - "testing" - - api_v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/stretchr/testify/assert" -) - -func TestObjectMeta(t *testing.T) { - o1 := metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - UID: "1231231412", - ResourceVersion: "999", - } - o2 := copyObjectMeta(o1) - o3 := metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - UID: "1231231412", - Annotations: map[string]string{"A": "B"}, - } - o4 := metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - UID: "1231255531412", - Annotations: map[string]string{"A": "B"}, - } - o5 := metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - ResourceVersion: "1231231412", - Annotations: map[string]string{"A": "B"}, - } - o6 := metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - ResourceVersion: "1231255531412", - Annotations: map[string]string{"A": "B"}, - } - o7 := metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - ResourceVersion: "1231255531412", - Annotations: map[string]string{}, - Labels: map[string]string{}, - } - o8 := metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - ResourceVersion: "1231255531412", - } - assert.Equal(t, 0, len(o2.UID)) - assert.Equal(t, 0, len(o2.ResourceVersion)) - assert.Equal(t, o1.Name, o2.Name) - assert.True(t, ObjectMetaEquivalent(o1, o2)) - assert.False(t, ObjectMetaEquivalent(o1, o3)) - assert.True(t, ObjectMetaEquivalent(o3, o4)) - assert.True(t, ObjectMetaEquivalent(o5, o6)) - assert.True(t, ObjectMetaEquivalent(o3, o5)) - assert.True(t, ObjectMetaEquivalent(o7, o8)) - assert.True(t, ObjectMetaEquivalent(o8, o7)) -} - -func TestObjectMetaAndSpec(t *testing.T) { - s1 := api_v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - }, - Spec: api_v1.ServiceSpec{ - ExternalName: "Service1", - }, - } - s1b := s1 - s2 := api_v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s2", - }, - Spec: api_v1.ServiceSpec{ - ExternalName: "Service1", - }, - } - s3 := api_v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "ns1", - Name: "s1", - }, - Spec: api_v1.ServiceSpec{ - ExternalName: "Service2", - }, - } - assert.True(t, ObjectMetaAndSpecEquivalent(&s1, &s1b)) - assert.False(t, ObjectMetaAndSpecEquivalent(&s1, &s2)) - assert.False(t, ObjectMetaAndSpecEquivalent(&s1, &s3)) - assert.False(t, ObjectMetaAndSpecEquivalent(&s2, &s3)) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/BUILD deleted file mode 100644 index 132e36601..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["planner.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/planner", - deps = ["//federation/apis/federation:go_default_library"], -) - -go_test( - name = "go_default_test", - srcs = ["planner_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/planner", - library = ":go_default_library", - deps = [ - "//federation/apis/federation:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/planner.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/planner.go deleted file mode 100644 index f25fbbc0c..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/planner.go +++ /dev/null @@ -1,238 +0,0 @@ -/* -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 planner - -import ( - "hash/fnv" - "sort" - - fedapi "k8s.io/kubernetes/federation/apis/federation" -) - -// Planner decides how many out of the given replicas should be placed in each of the -// federated clusters. -type Planner struct { - preferences *fedapi.ReplicaAllocationPreferences -} - -type namedClusterPreferences struct { - clusterName string - hash uint32 - fedapi.ClusterPreferences -} - -type byWeight []*namedClusterPreferences - -func (a byWeight) Len() int { return len(a) } -func (a byWeight) Swap(i, j int) { a[i], a[j] = a[j], a[i] } - -// Preferences are sorted according by decreasing weight and increasing hash (built on top of cluster name and rs name). -// Sorting is made by a hash to avoid assigning single-replica rs to the alphabetically smallest cluster. -func (a byWeight) Less(i, j int) bool { - return (a[i].Weight > a[j].Weight) || (a[i].Weight == a[j].Weight && a[i].hash < a[j].hash) -} - -func NewPlanner(preferences *fedapi.ReplicaAllocationPreferences) *Planner { - return &Planner{ - preferences: preferences, - } -} - -// Distribute the desired number of replicas among the given cluster according to the planner preferences. -// The function tries its best to assign each cluster the preferred number of replicas, however if -// sum of MinReplicas for all cluster is bigger thant replicasToDistribute then some cluster will not -// have all of the replicas assigned. In such case a cluster with higher weight has priority over -// cluster with lower weight (or with lexicographically smaller name in case of draw). -// It can also use the current replica count and estimated capacity to provide better planning and -// adhere to rebalance policy. To avoid prioritization of clusters with smaller lexicographical names -// a semi-random string (like replica set name) can be provided. -// Two maps are returned: -// * a map that contains information how many replicas will be possible to run in a cluster. -// * a map that contains information how many extra replicas would be nice to schedule in a cluster so, -// if by chance, they are scheduled we will be closer to the desired replicas layout. -func (p *Planner) Plan(replicasToDistribute int64, availableClusters []string, currentReplicaCount map[string]int64, - estimatedCapacity map[string]int64, replicaSetKey string) (map[string]int64, map[string]int64) { - - preferences := make([]*namedClusterPreferences, 0, len(availableClusters)) - plan := make(map[string]int64, len(preferences)) - overflow := make(map[string]int64, len(preferences)) - - named := func(name string, pref fedapi.ClusterPreferences) *namedClusterPreferences { - // Seems to work better than addler for our case. - hasher := fnv.New32() - hasher.Write([]byte(name)) - hasher.Write([]byte(replicaSetKey)) - - return &namedClusterPreferences{ - clusterName: name, - hash: hasher.Sum32(), - ClusterPreferences: pref, - } - } - - for _, cluster := range availableClusters { - if localRSP, found := p.preferences.Clusters[cluster]; found { - preferences = append(preferences, named(cluster, localRSP)) - } else { - if localRSP, found := p.preferences.Clusters["*"]; found { - preferences = append(preferences, named(cluster, localRSP)) - } else { - plan[cluster] = int64(0) - } - } - } - sort.Sort(byWeight(preferences)) - - remainingReplicas := replicasToDistribute - - // Assign each cluster the minimum number of replicas it requested. - for _, preference := range preferences { - min := minInt64(preference.MinReplicas, remainingReplicas) - if capacity, hasCapacity := estimatedCapacity[preference.clusterName]; hasCapacity { - min = minInt64(min, capacity) - } - remainingReplicas -= min - plan[preference.clusterName] = min - } - - // This map contains information how many replicas were assigned to - // the cluster based only on the current replica count and - // rebalance=false preference. It will be later used in remaining replica - // distribution code. - preallocated := make(map[string]int64) - - if p.preferences.Rebalance == false { - for _, preference := range preferences { - planned := plan[preference.clusterName] - count, hasSome := currentReplicaCount[preference.clusterName] - if hasSome && count > planned { - target := count - if preference.MaxReplicas != nil { - target = minInt64(*preference.MaxReplicas, target) - } - if capacity, hasCapacity := estimatedCapacity[preference.clusterName]; hasCapacity { - target = minInt64(capacity, target) - } - extra := minInt64(target-planned, remainingReplicas) - if extra < 0 { - extra = 0 - } - remainingReplicas -= extra - preallocated[preference.clusterName] = extra - plan[preference.clusterName] = extra + planned - } - } - } - - modified := true - - // It is possible single pass of the loop is not enough to distribute all replicas among clusters due - // to weight, max and rounding corner cases. In such case we iterate until either - // there is no replicas or no cluster gets any more replicas or the number - // of attempts is less than available cluster count. If there is no preallocated pods - // every loop either distributes all remainingReplicas or maxes out at least one cluster. - // If there are preallocated then the replica spreading may take longer. - // We reduce the number of pending preallocated replicas by at least half with each iteration so - // we may need log(replicasAtStart) iterations. - // TODO: Prove that clusterCount * log(replicas) iterations solves the problem or adjust the number. - // TODO: This algorithm is O(clusterCount^2 * log(replicas)) which is good for up to 100 clusters. - // Find something faster. - for trial := 0; modified && remainingReplicas > 0; trial++ { - - modified = false - weightSum := int64(0) - for _, preference := range preferences { - weightSum += preference.Weight - } - newPreferences := make([]*namedClusterPreferences, 0, len(preferences)) - - distributeInThisLoop := remainingReplicas - - for _, preference := range preferences { - if weightSum > 0 { - start := plan[preference.clusterName] - // Distribute the remaining replicas, rounding fractions always up. - extra := (distributeInThisLoop*preference.Weight + weightSum - 1) / weightSum - extra = minInt64(extra, remainingReplicas) - - // Account preallocated. - prealloc := preallocated[preference.clusterName] - usedPrealloc := minInt64(extra, prealloc) - preallocated[preference.clusterName] = prealloc - usedPrealloc - extra = extra - usedPrealloc - if usedPrealloc > 0 { - modified = true - } - - // In total there should be the amount that was there at start plus whatever is due - // in this iteration - total := start + extra - - // Check if we don't overflow the cluster, and if yes don't consider this cluster - // in any of the following iterations. - full := false - if preference.MaxReplicas != nil && total > *preference.MaxReplicas { - total = *preference.MaxReplicas - full = true - } - if capacity, hasCapacity := estimatedCapacity[preference.clusterName]; hasCapacity && total > capacity { - overflow[preference.clusterName] = total - capacity - total = capacity - full = true - } - - if !full { - newPreferences = append(newPreferences, preference) - } - - // Only total-start replicas were actually taken. - remainingReplicas -= (total - start) - plan[preference.clusterName] = total - - // Something extra got scheduled on this cluster. - if total > start { - modified = true - } - } else { - break - } - } - preferences = newPreferences - } - - if p.preferences.Rebalance { - return plan, overflow - } else { - // If rebalance = false then overflow is trimmed at the level - // of replicas that it failed to place somewhere. - newOverflow := make(map[string]int64) - for key, value := range overflow { - value = minInt64(value, remainingReplicas) - if value > 0 { - newOverflow[key] = value - } - } - return plan, newOverflow - } -} - -func minInt64(a int64, b int64) int64 { - if a < b { - return a - } - return b -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/planner_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/planner_test.go deleted file mode 100644 index 597ee6070..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/planner/planner_test.go +++ /dev/null @@ -1,348 +0,0 @@ -/* -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 planner - -import ( - "testing" - - fedapi "k8s.io/kubernetes/federation/apis/federation" - - "github.com/stretchr/testify/assert" -) - -func doCheck(t *testing.T, pref map[string]fedapi.ClusterPreferences, replicas int64, clusters []string, expected map[string]int64) { - planer := NewPlanner(&fedapi.ReplicaAllocationPreferences{ - Clusters: pref, - }) - plan, overflow := planer.Plan(replicas, clusters, map[string]int64{}, map[string]int64{}, "") - assert.EqualValues(t, expected, plan) - assert.Equal(t, 0, len(overflow)) -} - -func doCheckWithExisting(t *testing.T, pref map[string]fedapi.ClusterPreferences, replicas int64, clusters []string, - existing map[string]int64, expected map[string]int64) { - planer := NewPlanner(&fedapi.ReplicaAllocationPreferences{ - Clusters: pref, - }) - plan, overflow := planer.Plan(replicas, clusters, existing, map[string]int64{}, "") - assert.Equal(t, 0, len(overflow)) - assert.EqualValues(t, expected, plan) -} - -func doCheckWithExistingAndCapacity(t *testing.T, rebalance bool, pref map[string]fedapi.ClusterPreferences, replicas int64, clusters []string, - existing map[string]int64, - capacity map[string]int64, - expected map[string]int64, - expectedOverflow map[string]int64) { - planer := NewPlanner(&fedapi.ReplicaAllocationPreferences{ - Rebalance: rebalance, - Clusters: pref, - }) - plan, overflow := planer.Plan(replicas, clusters, existing, capacity, "") - assert.EqualValues(t, expected, plan) - assert.Equal(t, expectedOverflow, overflow) -} - -func pint(val int64) *int64 { - return &val -} - -func TestEqual(t *testing.T) { - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 50, []string{"A", "B", "C"}, - // hash dependent - map[string]int64{"A": 16, "B": 17, "C": 17}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 50, []string{"A", "B"}, - map[string]int64{"A": 25, "B": 25}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 1, []string{"A", "B"}, - // hash dependent - map[string]int64{"A": 0, "B": 1}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 1, []string{"A", "B", "C", "D"}, - // hash dependent - map[string]int64{"A": 0, "B": 0, "C": 0, "D": 1}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 1, []string{"A"}, - map[string]int64{"A": 1}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 1, []string{}, - map[string]int64{}) -} - -func TestEqualWithExisting(t *testing.T) { - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 50, []string{"A", "B", "C"}, - map[string]int64{"C": 30}, - map[string]int64{"A": 10, "B": 10, "C": 30}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 50, []string{"A", "B"}, - map[string]int64{"A": 30}, - map[string]int64{"A": 30, "B": 20}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 15, []string{"A", "B"}, - map[string]int64{"A": 0, "B": 8}, - map[string]int64{"A": 7, "B": 8}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 15, []string{"A", "B"}, - map[string]int64{"A": 1, "B": 8}, - map[string]int64{"A": 7, "B": 8}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 15, []string{"A", "B"}, - map[string]int64{"A": 4, "B": 8}, - map[string]int64{"A": 7, "B": 8}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 15, []string{"A", "B"}, - map[string]int64{"A": 5, "B": 8}, - map[string]int64{"A": 7, "B": 8}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 15, []string{"A", "B"}, - map[string]int64{"A": 6, "B": 8}, - map[string]int64{"A": 7, "B": 8}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 15, []string{"A", "B"}, - map[string]int64{"A": 7, "B": 8}, - map[string]int64{"A": 7, "B": 8}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 500000, []string{"A", "B"}, - map[string]int64{"A": 300000}, - map[string]int64{"A": 300000, "B": 200000}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 50, []string{"A", "B"}, - map[string]int64{"A": 10}, - map[string]int64{"A": 25, "B": 25}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 50, []string{"A", "B"}, - map[string]int64{"A": 10, "B": 70}, - // hash dependent - // TODO: Should be 10:40, update algorithm. Issue: #31816 - map[string]int64{"A": 0, "B": 50}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 1, []string{"A", "B"}, - map[string]int64{"A": 30}, - map[string]int64{"A": 1, "B": 0}) - - doCheckWithExisting(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 50, []string{"A", "B"}, - map[string]int64{"A": 10, "B": 20}, - map[string]int64{"A": 25, "B": 25}) -} - -func TestWithExistingAndCapacity(t *testing.T) { - // desired without capacity: map[string]int64{"A": 17, "B": 17, "C": 16}) - doCheckWithExistingAndCapacity(t, true, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1}}, - 50, []string{"A", "B", "C"}, - map[string]int64{}, - map[string]int64{"C": 10}, - map[string]int64{"A": 20, "B": 20, "C": 10}, - map[string]int64{"C": 7}) - - // desired B:50 C:0 - doCheckWithExistingAndCapacity(t, true, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 10000}, - "B": {Weight: 1}}, - 50, []string{"B", "C"}, - map[string]int64{}, - map[string]int64{"B": 10}, - map[string]int64{"B": 10, "C": 0}, - map[string]int64{"B": 40}, - ) - - // desired A:20 B:40 - doCheckWithExistingAndCapacity(t, true, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 1}, - "B": {Weight: 2}}, - 60, []string{"A", "B", "C"}, - map[string]int64{}, - map[string]int64{"B": 10}, - map[string]int64{"A": 50, "B": 10, "C": 0}, - map[string]int64{"B": 30}) - - // map[string]int64{"A": 10, "B": 30, "C": 21, "D": 10}) - doCheckWithExistingAndCapacity(t, true, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 10000, MaxReplicas: pint(10)}, - "B": {Weight: 1}, - "C": {Weight: 1, MaxReplicas: pint(21)}, - "D": {Weight: 1, MaxReplicas: pint(10)}}, - 71, []string{"A", "B", "C", "D"}, - map[string]int64{}, - map[string]int64{"C": 10}, - map[string]int64{"A": 10, "B": 41, "C": 10, "D": 10}, - map[string]int64{"C": 11}, - ) - - // desired A:20 B:20 - doCheckWithExistingAndCapacity(t, false, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 1}, - "B": {Weight: 1}}, - 60, []string{"A", "B", "C"}, - map[string]int64{}, - map[string]int64{"A": 10, "B": 10}, - map[string]int64{"A": 10, "B": 10, "C": 0}, - map[string]int64{"A": 20, "B": 20}) - - // desired A:10 B:50 although A:50 B:10 is fuly acceptable because rebalance = false - doCheckWithExistingAndCapacity(t, false, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 1}, - "B": {Weight: 5}}, - 60, []string{"A", "B", "C"}, - map[string]int64{}, - map[string]int64{"B": 10}, - map[string]int64{"A": 50, "B": 10, "C": 0}, - map[string]int64{}) - - doCheckWithExistingAndCapacity(t, false, map[string]fedapi.ClusterPreferences{ - "*": {MinReplicas: 20, Weight: 0}}, - 50, []string{"A", "B", "C"}, - map[string]int64{}, - map[string]int64{"B": 10}, - map[string]int64{"A": 20, "B": 10, "C": 20}, - map[string]int64{}) - - // Actually we would like to have extra 20 in B but 15 is also good. - doCheckWithExistingAndCapacity(t, true, map[string]fedapi.ClusterPreferences{ - "*": {MinReplicas: 20, Weight: 1}}, - 60, []string{"A", "B"}, - map[string]int64{}, - map[string]int64{"B": 10}, - map[string]int64{"A": 50, "B": 10}, - map[string]int64{"B": 15}) -} - -func TestMin(t *testing.T) { - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {MinReplicas: 2, Weight: 0}}, - 50, []string{"A", "B", "C"}, - map[string]int64{"A": 2, "B": 2, "C": 2}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {MinReplicas: 20, Weight: 0}}, - 50, []string{"A", "B", "C"}, - // hash dependant. - map[string]int64{"A": 10, "B": 20, "C": 20}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {MinReplicas: 20, Weight: 0}, - "A": {MinReplicas: 100, Weight: 1}}, - 50, []string{"A", "B", "C"}, - map[string]int64{"A": 50, "B": 0, "C": 0}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {MinReplicas: 10, Weight: 1, MaxReplicas: pint(12)}}, - 50, []string{"A", "B", "C"}, - map[string]int64{"A": 12, "B": 12, "C": 12}) -} - -func TestMax(t *testing.T) { - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 1, MaxReplicas: pint(2)}}, - 50, []string{"A", "B", "C"}, - map[string]int64{"A": 2, "B": 2, "C": 2}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "*": {Weight: 0, MaxReplicas: pint(2)}}, - 50, []string{"A", "B", "C"}, - map[string]int64{"A": 0, "B": 0, "C": 0}) -} - -func TestWeight(t *testing.T) { - doCheck(t, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 1}, - "B": {Weight: 2}}, - 60, []string{"A", "B", "C"}, - map[string]int64{"A": 20, "B": 40, "C": 0}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 10000}, - "B": {Weight: 1}}, - 50, []string{"A", "B", "C"}, - map[string]int64{"A": 50, "B": 0, "C": 0}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 10000}, - "B": {Weight: 1}}, - 50, []string{"B", "C"}, - map[string]int64{"B": 50, "C": 0}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 10000, MaxReplicas: pint(10)}, - "B": {Weight: 1}, - "C": {Weight: 1}}, - 50, []string{"A", "B", "C"}, - map[string]int64{"A": 10, "B": 20, "C": 20}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 10000, MaxReplicas: pint(10)}, - "B": {Weight: 1}, - "C": {Weight: 1, MaxReplicas: pint(10)}}, - 50, []string{"A", "B", "C"}, - map[string]int64{"A": 10, "B": 30, "C": 10}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 10000, MaxReplicas: pint(10)}, - "B": {Weight: 1}, - "C": {Weight: 1, MaxReplicas: pint(21)}, - "D": {Weight: 1, MaxReplicas: pint(10)}}, - 71, []string{"A", "B", "C", "D"}, - map[string]int64{"A": 10, "B": 30, "C": 21, "D": 10}) - - doCheck(t, map[string]fedapi.ClusterPreferences{ - "A": {Weight: 10000, MaxReplicas: pint(10)}, - "B": {Weight: 1}, - "C": {Weight: 1, MaxReplicas: pint(21)}, - "D": {Weight: 1, MaxReplicas: pint(10)}, - "E": {Weight: 1}}, - 91, []string{"A", "B", "C", "D", "E"}, - map[string]int64{"A": 10, "B": 25, "C": 21, "D": 10, "E": 25}) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/BUILD deleted file mode 100644 index e94314ca6..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["pod_helper.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer", - deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], -) - -go_test( - name = "go_default_test", - srcs = ["pod_helper_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer", - library = ":go_default_library", - deps = [ - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/pod_helper.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/pod_helper.go deleted file mode 100644 index 53b308f1d..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/pod_helper.go +++ /dev/null @@ -1,63 +0,0 @@ -/* -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 podanalyzer - -import ( - "time" - - api_v1 "k8s.io/api/core/v1" -) - -type PodAnalysisResult struct { - // Total number of pods created. - Total int - // Number of pods that are running and ready. - RunningAndReady int - // Number of pods that have been in unschedulable state for UnshedulableThreshold seconds. - Unschedulable int - - // TODO: Handle other scenarios like pod waiting too long for scheduler etc. -} - -const ( - // TODO: make it configurable - UnschedulableThreshold = 60 * time.Second -) - -// AnalyzePods calculates how many pods from the list are in one of -// the meaningful (from the replica set perspective) states. This function is -// a temporary workaround against the current lack of ownerRef in pods. -func AnalyzePods(pods *api_v1.PodList, currentTime time.Time) PodAnalysisResult { - result := PodAnalysisResult{} - for _, pod := range pods.Items { - result.Total++ - for _, condition := range pod.Status.Conditions { - if pod.Status.Phase == api_v1.PodRunning { - if condition.Type == api_v1.PodReady { - result.RunningAndReady++ - } - } else if condition.Type == api_v1.PodScheduled && - condition.Status == api_v1.ConditionFalse && - condition.Reason == api_v1.PodReasonUnschedulable && - condition.LastTransitionTime.Add(UnschedulableThreshold).Before(currentTime) { - - result.Unschedulable++ - } - } - } - return result -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/pod_helper_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/pod_helper_test.go deleted file mode 100644 index 99a161120..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer/pod_helper_test.go +++ /dev/null @@ -1,98 +0,0 @@ -/* -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 podanalyzer - -import ( - "testing" - "time" - - api_v1 "k8s.io/api/core/v1" - "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/stretchr/testify/assert" -) - -func TestAnalyze(t *testing.T) { - now := time.Now() - podRunning := newPod("p1", - api_v1.PodStatus{ - Phase: api_v1.PodRunning, - Conditions: []api_v1.PodCondition{ - { - Type: api_v1.PodReady, - Status: api_v1.ConditionTrue, - }, - }, - }) - podUnschedulable := newPod("pU", - api_v1.PodStatus{ - Phase: api_v1.PodPending, - Conditions: []api_v1.PodCondition{ - { - Type: api_v1.PodScheduled, - Status: api_v1.ConditionFalse, - Reason: api_v1.PodReasonUnschedulable, - LastTransitionTime: metav1.Time{Time: now.Add(-10 * time.Minute)}, - }, - }, - }) - podOther := newPod("pO", - api_v1.PodStatus{ - Phase: api_v1.PodPending, - Conditions: []api_v1.PodCondition{}, - }) - - result := AnalyzePods(&api_v1.PodList{Items: []api_v1.Pod{*podRunning, *podRunning, *podRunning, *podUnschedulable, *podUnschedulable}}, now) - assert.Equal(t, PodAnalysisResult{ - Total: 5, - RunningAndReady: 3, - Unschedulable: 2, - }, result) - - result = AnalyzePods(&api_v1.PodList{Items: []api_v1.Pod{*podOther}}, now) - assert.Equal(t, PodAnalysisResult{ - Total: 1, - RunningAndReady: 0, - Unschedulable: 0, - }, result) -} - -func newReplicaSet(selectorMap map[string]string) *v1beta1.ReplicaSet { - replicas := int32(3) - rs := &v1beta1.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foobar", - Namespace: metav1.NamespaceDefault, - }, - Spec: v1beta1.ReplicaSetSpec{ - Replicas: &replicas, - Selector: &metav1.LabelSelector{MatchLabels: selectorMap}, - }, - } - return rs -} - -func newPod(name string, status api_v1.PodStatus) *api_v1.Pod { - return &api_v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: metav1.NamespaceDefault, - }, - Status: status, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/BUILD deleted file mode 100644 index d8c426609..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["preferences.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences", - deps = [ - "//federation/apis/federation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -go_test( - name = "go_default_test", - srcs = ["preferences_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences", - library = ":go_default_library", - deps = [ - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - ], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/preferences.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/preferences.go deleted file mode 100644 index 030b3c01a..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/preferences.go +++ /dev/null @@ -1,55 +0,0 @@ -/* -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 replicapreferences - -import ( - "encoding/json" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" - fed "k8s.io/kubernetes/federation/apis/federation" -) - -// GetAllocationPreferences reads the preferences from the annotations on the given object. -// It takes in an object and determines the supported types. -// Callers need to pass the string key used to store the annotations. -// Returns nil if the annotations with the given key are not found. -func GetAllocationPreferences(obj runtime.Object, key string) (*fed.ReplicaAllocationPreferences, error) { - if obj == nil { - return nil, nil - } - - accessor, err := meta.Accessor(obj) - if err != nil { - return nil, err - } - annotations := accessor.GetAnnotations() - if annotations == nil { - return nil, nil - } - - prefString, found := annotations[key] - if !found { - return nil, nil - } - - var pref fed.ReplicaAllocationPreferences - if err := json.Unmarshal([]byte(prefString), &pref); err != nil { - return nil, err - } - return &pref, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/preferences_test.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/preferences_test.go deleted file mode 100644 index 4a91097f8..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences/preferences_test.go +++ /dev/null @@ -1,92 +0,0 @@ -/* -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 replicapreferences - -import ( - "testing" - - extensionsv1 "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "github.com/stretchr/testify/assert" - "k8s.io/apimachinery/pkg/runtime" -) - -const ( - TestPreferencesAnnotationKey = "federation.kubernetes.io/test-preferences" -) - -func TestGetAllocationPreferences(t *testing.T) { - testCases := []struct { - testname string - prefs string - obj runtime.Object - errorExpected bool - }{ - { - testname: "good preferences", - prefs: `{"rebalance": true, - "clusters": { - "k8s-1": {"minReplicas": 10, "maxReplicas": 20, "weight": 2}, - "*": {"weight": 1} - }}`, - obj: &extensionsv1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: "test-obj", - Namespace: metav1.NamespaceDefault, - SelfLink: "/api/v1/namespaces/default/obj/test-obj", - }, - }, - errorExpected: false, - }, - { - testname: "failed preferences", - prefs: `{`, // bad json - obj: &extensionsv1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: "test-obj", - Namespace: metav1.NamespaceDefault, - SelfLink: "/api/v1/namespaces/default/obj/test-obj", - }, - }, - errorExpected: true, - }, - } - - // prepare the objects - for _, tc := range testCases { - accessor, _ := meta.Accessor(tc.obj) - anno := accessor.GetAnnotations() - if anno == nil { - anno = make(map[string]string) - accessor.SetAnnotations(anno) - } - anno[TestPreferencesAnnotationKey] = tc.prefs - } - - // test get preferences - for _, tc := range testCases { - pref, err := GetAllocationPreferences(tc.obj, TestPreferencesAnnotationKey) - if tc.errorExpected { - assert.NotNil(t, err) - } else { - assert.NotNil(t, pref) - assert.Nil(t, err) - } - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/secret.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/secret.go deleted file mode 100644 index e3635fbb8..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/secret.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -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 util - -import ( - "reflect" - - api_v1 "k8s.io/api/core/v1" -) - -// Checks if cluster-independent, user provided data in two given Secrets are equal. If in -// the future the Secret structure is expanded then any field that is not populated. -// by the api server should be included here. -func SecretEquivalent(s1, s2 api_v1.Secret) bool { - return ObjectMetaEquivalent(s1.ObjectMeta, s2.ObjectMeta) && - reflect.DeepEqual(s1.Data, s2.Data) && - reflect.DeepEqual(s1.Type, s2.Type) -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/test/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/test/BUILD deleted file mode 100644 index 6a56a395e..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/test/BUILD +++ /dev/null @@ -1,39 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["test_helper.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/test", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/pkg/federation-controller/util/finalizers:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/github.com/stretchr/testify/require: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/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/test/test_helper.go b/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/test/test_helper.go deleted file mode 100644 index 84db1babe..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/test/test_helper.go +++ /dev/null @@ -1,445 +0,0 @@ -/* -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 testutil - -import ( - "fmt" - "os" - "reflect" - "runtime/pprof" - "sync" - "testing" - "time" - - apiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" - core "k8s.io/client-go/testing" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - finalizersutil "k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers" - - "github.com/golang/glog" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -const ( - pushTimeout = 5 * time.Second -) - -// A structure that distributes events to multiple watchers. -type WatcherDispatcher struct { - sync.Mutex - watchers []*watch.RaceFreeFakeWatcher - eventsSoFar []*watch.Event - orderExecution chan func() - stopChan chan struct{} -} - -func (wd *WatcherDispatcher) register(watcher *watch.RaceFreeFakeWatcher) { - wd.Lock() - defer wd.Unlock() - wd.watchers = append(wd.watchers, watcher) - for _, event := range wd.eventsSoFar { - watcher.Action(event.Type, event.Object) - } -} - -func (wd *WatcherDispatcher) Stop() { - wd.Lock() - defer wd.Unlock() - close(wd.stopChan) - glog.Infof("Stopping WatcherDispatcher") - for _, watcher := range wd.watchers { - watcher.Stop() - } -} - -// Add sends an add event. -func (wd *WatcherDispatcher) Add(obj runtime.Object) { - wd.Lock() - defer wd.Unlock() - wd.eventsSoFar = append(wd.eventsSoFar, &watch.Event{Type: watch.Added, Object: obj.DeepCopyObject()}) - for _, watcher := range wd.watchers { - if !watcher.IsStopped() { - watcher.Add(obj.DeepCopyObject()) - } - } -} - -// Modify sends a modify event. -func (wd *WatcherDispatcher) Modify(obj runtime.Object) { - wd.Lock() - defer wd.Unlock() - glog.V(4).Infof("->WatcherDispatcher.Modify(%v)", obj) - wd.eventsSoFar = append(wd.eventsSoFar, &watch.Event{Type: watch.Modified, Object: obj.DeepCopyObject()}) - for i, watcher := range wd.watchers { - if !watcher.IsStopped() { - glog.V(4).Infof("->Watcher(%d).Modify(%v)", i, obj) - watcher.Modify(obj.DeepCopyObject()) - } else { - glog.V(4).Infof("->Watcher(%d) is stopped. Not calling Modify(%v)", i, obj) - } - } -} - -// Delete sends a delete event. -func (wd *WatcherDispatcher) Delete(lastValue runtime.Object) { - wd.Lock() - defer wd.Unlock() - wd.eventsSoFar = append(wd.eventsSoFar, &watch.Event{Type: watch.Deleted, Object: lastValue.DeepCopyObject()}) - for _, watcher := range wd.watchers { - if !watcher.IsStopped() { - watcher.Delete(lastValue.DeepCopyObject()) - } - } -} - -// Error sends an Error event. -func (wd *WatcherDispatcher) Error(errValue runtime.Object) { - wd.Lock() - defer wd.Unlock() - wd.eventsSoFar = append(wd.eventsSoFar, &watch.Event{Type: watch.Error, Object: errValue.DeepCopyObject()}) - for _, watcher := range wd.watchers { - if !watcher.IsStopped() { - watcher.Error(errValue.DeepCopyObject()) - } - } -} - -// Action sends an event of the requested type, for table-based testing. -func (wd *WatcherDispatcher) Action(action watch.EventType, obj runtime.Object) { - wd.Lock() - defer wd.Unlock() - wd.eventsSoFar = append(wd.eventsSoFar, &watch.Event{Type: action, Object: obj.DeepCopyObject()}) - for _, watcher := range wd.watchers { - if !watcher.IsStopped() { - watcher.Action(action, obj.DeepCopyObject()) - } - } -} - -// RegisterFakeWatch adds a new fake watcher for the specified resource in the given fake client. -// All subsequent requests for a watch on the client will result in returning this fake watcher. -func RegisterFakeWatch(resource string, client *core.Fake) *WatcherDispatcher { - dispatcher := &WatcherDispatcher{ - watchers: make([]*watch.RaceFreeFakeWatcher, 0), - eventsSoFar: make([]*watch.Event, 0), - orderExecution: make(chan func(), 100), - stopChan: make(chan struct{}), - } - go func() { - for { - select { - case fun := <-dispatcher.orderExecution: - fun() - case <-dispatcher.stopChan: - return - } - } - }() - - client.AddWatchReactor(resource, func(action core.Action) (bool, watch.Interface, error) { - watcher := watch.NewRaceFreeFake() - dispatcher.register(watcher) - return true, watcher, nil - }) - return dispatcher -} - -// RegisterFakeList registers a list response for the specified resource inside the given fake client. -// The passed value will be returned with every list call. -func RegisterFakeList(resource string, client *core.Fake, obj runtime.Object) { - client.AddReactor("list", resource, func(action core.Action) (bool, runtime.Object, error) { - return true, obj, nil - }) -} - -// RegisterFakeClusterGet registers a get response for the cluster resource inside the given fake client. -func RegisterFakeClusterGet(client *core.Fake, obj runtime.Object) { - clusterList, ok := obj.(*federationapi.ClusterList) - client.AddReactor("get", "clusters", func(action core.Action) (bool, runtime.Object, error) { - name := action.(core.GetAction).GetName() - if ok { - for _, cluster := range clusterList.Items { - if cluster.Name == name { - return true, &cluster, nil - } - } - } - return false, nil, fmt.Errorf("could not find the requested cluster: %s", name) - }) -} - -// RegisterFakeOnCreate registers a reactor in the given fake client that passes -// all created objects to the given watcher. -func RegisterFakeOnCreate(resource string, client *core.Fake, watcher *WatcherDispatcher) { - client.AddReactor("create", resource, func(action core.Action) (bool, runtime.Object, error) { - createAction := action.(core.CreateAction) - originalObj := createAction.GetObject() - // Create a copy of the object here to prevent data races while reading the object in go routine. - obj := originalObj.DeepCopyObject() - watcher.orderExecution <- func() { - glog.V(4).Infof("Object created: %v", obj) - watcher.Add(obj) - } - return true, originalObj, nil - }) -} - -// RegisterFakeCopyOnCreate registers a reactor in the given fake client that passes -// all created objects to the given watcher and also copies them to a channel for -// in-test inspection. -func RegisterFakeCopyOnCreate(resource string, client *core.Fake, watcher *WatcherDispatcher) chan runtime.Object { - objChan := make(chan runtime.Object, 100) - client.AddReactor("create", resource, func(action core.Action) (bool, runtime.Object, error) { - createAction := action.(core.CreateAction) - originalObj := createAction.GetObject() - // Create a copy of the object here to prevent data races while reading the object in go routine. - obj := originalObj.DeepCopyObject() - watcher.orderExecution <- func() { - glog.V(4).Infof("Object created. Writing to channel: %v", obj) - watcher.Add(obj) - objChan <- obj - } - return true, originalObj, nil - }) - return objChan -} - -// RegisterFakeOnUpdate registers a reactor in the given fake client that passes -// all updated objects to the given watcher. -func RegisterFakeOnUpdate(resource string, client *core.Fake, watcher *WatcherDispatcher) { - client.AddReactor("update", resource, func(action core.Action) (bool, runtime.Object, error) { - updateAction := action.(core.UpdateAction) - originalObj := updateAction.GetObject() - glog.V(7).Infof("Updating %s: %v", resource, updateAction.GetObject()) - - // Create a copy of the object here to prevent data races while reading the object in go routine. - obj := originalObj.DeepCopyObject() - operation := func() { - glog.V(4).Infof("Object updated %v", obj) - watcher.Modify(obj) - } - select { - case watcher.orderExecution <- operation: - break - case <-time.After(pushTimeout): - glog.Errorf("Fake client execution channel blocked") - glog.Errorf("Tried to push %v", updateAction) - } - return true, originalObj, nil - }) - return -} - -// RegisterFakeCopyOnUpdate registers a reactor in the given fake client that passes -// all updated objects to the given watcher and also copies them to a channel for -// in-test inspection. -func RegisterFakeCopyOnUpdate(resource string, client *core.Fake, watcher *WatcherDispatcher) chan runtime.Object { - objChan := make(chan runtime.Object, 100) - client.AddReactor("update", resource, func(action core.Action) (bool, runtime.Object, error) { - updateAction := action.(core.UpdateAction) - originalObj := updateAction.GetObject() - glog.V(7).Infof("Updating %s: %v", resource, updateAction.GetObject()) - - // Create a copy of the object here to prevent data races while reading the object in go routine. - obj := originalObj.DeepCopyObject() - operation := func() { - glog.V(4).Infof("Object updated. Writing to channel: %v", obj) - watcher.Modify(obj) - objChan <- obj - } - select { - case watcher.orderExecution <- operation: - break - case <-time.After(pushTimeout): - glog.Errorf("Fake client execution channel blocked") - glog.Errorf("Tried to push %v", updateAction) - } - return true, originalObj, nil - }) - return objChan -} - -// RegisterFakeOnDelete registers a reactor in the given fake client that passes -// all deleted objects to the given watcher. Since we could get only name of the -// deleted object from DeleteAction, this register function relies on the getObject -// function passed to get the object by name and pass it watcher. -func RegisterFakeOnDelete(resource string, client *core.Fake, watcher *WatcherDispatcher, getObject func(name, namespace string) runtime.Object) { - client.AddReactor("delete", resource, func(action core.Action) (bool, runtime.Object, error) { - deleteAction := action.(core.DeleteAction) - obj := getObject(deleteAction.GetName(), deleteAction.GetNamespace()) - glog.V(7).Infof("Deleting %s: %v", resource, obj) - - operation := func() { - glog.V(4).Infof("Object deleted %v", obj) - watcher.Delete(obj) - } - select { - case watcher.orderExecution <- operation: - break - case <-time.After(pushTimeout): - glog.Errorf("Fake client execution channel blocked") - glog.Errorf("Tried to push %v", deleteAction) - } - return true, obj, nil - }) - return -} - -// Adds an update reactor to the given fake client. -// The reactor just returns the object passed to update action. -// This is used as a hack to workaround https://github.com/kubernetes/kubernetes/issues/40939. -// Without this, all update actions using fake client return empty objects. -func AddFakeUpdateReactor(resource string, client *core.Fake) { - client.AddReactor("update", resource, func(action core.Action) (bool, runtime.Object, error) { - updateAction := action.(core.UpdateAction) - originalObj := updateAction.GetObject() - return true, originalObj, nil - }) -} - -// GetObjectFromChan tries to get an api object from the given channel -// within a reasonable time. -func GetObjectFromChan(c chan runtime.Object) runtime.Object { - select { - case obj := <-c: - return obj - case <-time.After(wait.ForeverTestTimeout): - pprof.Lookup("goroutine").WriteTo(os.Stderr, 1) - return nil - } -} - -type CheckingFunction func(runtime.Object) error - -// CheckObjectFromChan tries to get an object matching the given check function -// within a reasonable time. -func CheckObjectFromChan(c chan runtime.Object, checkFunction CheckingFunction) error { - delay := 20 * time.Second - var lastError error - for { - select { - case obj := <-c: - if lastError = checkFunction(obj); lastError == nil { - return nil - } - glog.Infof("Check function failed with %v", lastError) - delay = 5 * time.Second - case <-time.After(delay): - pprof.Lookup("goroutine").WriteTo(os.Stderr, 1) - if lastError == nil { - return fmt.Errorf("Failed to get an object from channel") - } else { - return lastError - } - } - } -} - -// CompareObjectMeta returns an error when the given objects are not equivalent. -func CompareObjectMeta(a, b metav1.ObjectMeta) error { - if a.Namespace != b.Namespace { - return fmt.Errorf("Different namespace expected:%s observed:%s", a.Namespace, b.Namespace) - } - if a.Name != b.Name { - return fmt.Errorf("Different name expected:%s observed:%s", a.Name, b.Name) - } - if !reflect.DeepEqual(a.Labels, b.Labels) && (len(a.Labels) != 0 || len(b.Labels) != 0) { - return fmt.Errorf("Labels are different expected:%v observed:%v", a.Labels, b.Labels) - } - if !reflect.DeepEqual(a.Annotations, b.Annotations) && (len(a.Annotations) != 0 || len(b.Annotations) != 0) { - return fmt.Errorf("Annotations are different expected:%v observed:%v", a.Annotations, b.Annotations) - } - return nil -} - -func ToFederatedInformerForTestOnly(informer util.FederatedInformer) util.FederatedInformerForTestOnly { - inter := informer.(interface{}) - return inter.(util.FederatedInformerForTestOnly) -} - -// NewCluster builds a new cluster object. -func NewCluster(name string, readyStatus apiv1.ConditionStatus) *federationapi.Cluster { - return &federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Annotations: map[string]string{}, - Labels: map[string]string{"cluster": name}, - }, - Status: federationapi.ClusterStatus{ - Conditions: []federationapi.ClusterCondition{ - {Type: federationapi.ClusterReady, Status: readyStatus}, - }, - Zones: []string{"foozone"}, - Region: "fooregion", - }, - } -} - -// Ensure a key is in the store before returning (or timeout w/ error) -func WaitForStoreUpdate(store util.FederatedReadOnlyStore, clusterName, key string, timeout time.Duration) error { - retryInterval := 100 * time.Millisecond - err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { - _, found, err := store.GetByKey(clusterName, key) - return found, err - }) - return err -} - -// Ensure a key is in the store before returning (or timeout w/ error) -func WaitForStoreUpdateChecking(store util.FederatedReadOnlyStore, clusterName, key string, timeout time.Duration, - checkFunction CheckingFunction) error { - retryInterval := 500 * time.Millisecond - var lastError error - err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { - item, found, err := store.GetByKey(clusterName, key) - if err != nil || !found { - return found, err - } - runtimeObj := item.(runtime.Object) - lastError = checkFunction(runtimeObj) - glog.V(2).Infof("Check function failed for %s %v %v", key, runtimeObj, lastError) - return lastError == nil, nil - }) - return err -} - -func MetaAndSpecCheckingFunction(expected runtime.Object) CheckingFunction { - return func(obj runtime.Object) error { - if util.ObjectMetaAndSpecEquivalent(obj, expected) { - return nil - } - return fmt.Errorf("Object different expected=%#v received=%#v", expected, obj) - } -} - -func AssertHasFinalizer(t *testing.T, obj runtime.Object, finalizer string) { - hasFinalizer, err := finalizersutil.HasFinalizer(obj, finalizer) - require.Nil(t, err) - assert.True(t, hasFinalizer) -} - -func NewInt32(val int32) *int32 { - p := new(int32) - *p = val - return p -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/BUILD deleted file mode 100644 index 762466855..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/BUILD +++ /dev/null @@ -1,98 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "join.go", - "kubefed.go", - "unjoin.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/kubefed", - deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/pkg/kubefed/init:go_default_library", - "//federation/pkg/kubefed/util:go_default_library", - "//pkg/api:go_default_library", - "//pkg/apis/extensions:go_default_library", - "//pkg/apis/rbac:go_default_library", - "//pkg/client/clientset_generated/internalclientset:go_default_library", - "//pkg/kubectl:go_default_library", - "//pkg/kubectl/cmd:go_default_library", - "//pkg/kubectl/cmd/templates:go_default_library", - "//pkg/kubectl/cmd/util:go_default_library", - "//pkg/kubectl/resource:go_default_library", - "//pkg/kubectl/util/i18n:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/spf13/cobra:go_default_library", - "//vendor/github.com/spf13/pflag: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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = [ - "join_test.go", - "unjoin_test.go", - ], - importpath = "k8s.io/kubernetes/federation/pkg/kubefed", - library = ":go_default_library", - deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/pkg/kubefed/testing:go_default_library", - "//federation/pkg/kubefed/util:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/apis/rbac/v1:go_default_library", - "//pkg/kubectl:go_default_library", - "//pkg/kubectl/cmd/testing:go_default_library", - "//pkg/kubectl/cmd/util:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/api/rbac/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/equality: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/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//vendor/k8s.io/client-go/dynamic:go_default_library", - "//vendor/k8s.io/client-go/rest/fake:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/pkg/kubefed/init:all-srcs", - "//federation/pkg/kubefed/testing:all-srcs", - "//federation/pkg/kubefed/util:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/BUILD deleted file mode 100644 index 46fd43e89..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/BUILD +++ /dev/null @@ -1,85 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["init.go"], - importpath = "k8s.io/kubernetes/federation/pkg/kubefed/init", - deps = [ - "//cmd/kubeadm/app/util/kubeconfig:go_default_library", - "//federation/apis/federation:go_default_library", - "//federation/pkg/dnsprovider/providers/coredns:go_default_library", - "//federation/pkg/kubefed/util:go_default_library", - "//pkg/api:go_default_library", - "//pkg/apis/extensions:go_default_library", - "//pkg/apis/rbac:go_default_library", - "//pkg/client/clientset_generated/internalclientset:go_default_library", - "//pkg/kubectl/cmd/templates:go_default_library", - "//pkg/kubectl/cmd/util:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/spf13/cobra:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/gopkg.in/gcfg.v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - "//vendor/k8s.io/client-go/util/cert:go_default_library", - "//vendor/k8s.io/client-go/util/cert/triple:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["init_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/kubefed/init", - library = ":go_default_library", - deps = [ - "//federation/apis/federation:go_default_library", - "//federation/pkg/dnsprovider/providers/coredns:go_default_library", - "//federation/pkg/kubefed/testing:go_default_library", - "//federation/pkg/kubefed/util:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/apis/rbac:go_default_library", - "//pkg/kubectl/cmd/testing:go_default_library", - "//pkg/kubectl/cmd/util:go_default_library", - "//vendor/gopkg.in/gcfg.v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/api/rbac/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/client-go/dynamic:go_default_library", - "//vendor/k8s.io/client-go/rest/fake:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/init.go b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/init.go deleted file mode 100644 index 60803e75e..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/init.go +++ /dev/null @@ -1,1213 +0,0 @@ -/* -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. -*/ - -// TODO(madhusdancs): -// 1. Make printSuccess prepend protocol/scheme to the IPs/hostnames. -// 2. Separate etcd container from API server pod as a first step towards enabling HA. -// 3. Make API server and controller manager replicas customizable via the HA work. -package init - -import ( - "fmt" - "io" - "io/ioutil" - "net" - "os" - "sort" - "strconv" - "strings" - "time" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/client-go/tools/clientcmd" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - certutil "k8s.io/client-go/util/cert" - triple "k8s.io/client-go/util/cert/triple" - kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns" - "k8s.io/kubernetes/federation/pkg/kubefed/util" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/apis/rbac" - client "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/kubectl/cmd/templates" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - - "github.com/golang/glog" - "github.com/spf13/cobra" - "github.com/spf13/pflag" - "gopkg.in/gcfg.v1" -) - -const ( - APIServerCN = "federation-apiserver" - ControllerManagerCN = "federation-controller-manager" - AdminCN = "admin" - HostClusterLocalDNSZoneName = "cluster.local." - APIServerNameSuffix = "apiserver" - CMNameSuffix = "controller-manager" - CredentialSuffix = "credentials" - KubeconfigNameSuffix = "kubeconfig" - - // User name used by federation controller manager to make - // calls to federation API server. - ControllerManagerUser = "federation-controller-manager" - - // Name of the ServiceAccount used by the federation controller manager - // to access the secrets in the host cluster. - ControllerManagerSA = "federation-controller-manager" - - // Group name of the legacy/core API group - legacyAPIGroup = "" - - lbAddrRetryInterval = 5 * time.Second - podWaitInterval = 2 * time.Second - - apiserverServiceTypeFlag = "api-server-service-type" - apiserverAdvertiseAddressFlag = "api-server-advertise-address" - apiserverPortFlag = "api-server-port" - - dnsProviderSecretName = "federation-dns-provider.conf" - - apiServerSecurePortName = "https" - // Set the secure port to 8443 to avoid requiring root privileges - // to bind to port < 1000. The apiserver's service will still - // expose on port 443. - apiServerSecurePort = 8443 -) - -var ( - init_long = templates.LongDesc(` - Init initializes a federation control plane. - - Federation control plane is hosted inside a Kubernetes - cluster. The host cluster must be specified using the - --host-cluster-context flag.`) - init_example = templates.Examples(` - # Initialize federation control plane for a federation - # named foo in the host cluster whose local kubeconfig - # context is bar. - kubefed init foo --host-cluster-context=bar`) - - componentLabel = map[string]string{ - "app": "federated-cluster", - } - - apiserverSvcSelector = map[string]string{ - "app": "federated-cluster", - "module": "federation-apiserver", - } - - apiserverPodLabels = map[string]string{ - "app": "federated-cluster", - "module": "federation-apiserver", - } - - controllerManagerPodLabels = map[string]string{ - "app": "federated-cluster", - "module": "federation-controller-manager", - } -) - -type initFederation struct { - commonOptions util.SubcommandOptions - options initFederationOptions -} - -type initFederationOptions struct { - dnsZoneName string - serverImage string - dnsProvider string - dnsProviderConfig string - etcdImage string - etcdPVCapacity string - etcdPVStorageClass string - etcdPersistentStorage bool - dryRun bool - apiServerOverridesString string - apiServerOverrides map[string]string - controllerManagerOverridesString string - controllerManagerOverrides map[string]string - apiServerServiceTypeString string - apiServerServiceType v1.ServiceType - apiServerAdvertiseAddress string - apiServerNodePortPort int32 - apiServerNodePortPortPtr *int32 - apiServerEnableHTTPBasicAuth bool - apiServerEnableTokenAuth bool - nodeSelector map[string]string - nodeSelectorString string -} - -func (o *initFederationOptions) Bind(flags *pflag.FlagSet, defaultServerImage, defaultEtcdImage string) { - flags.StringVar(&o.dnsZoneName, "dns-zone-name", "", "DNS suffix for this federation. Federated Service DNS names are published with this suffix.") - flags.StringVar(&o.serverImage, "image", defaultServerImage, "Image to use for federation API server and controller manager binaries.") - flags.StringVar(&o.dnsProvider, "dns-provider", "", "Dns provider to be used for this deployment.") - flags.StringVar(&o.dnsProviderConfig, "dns-provider-config", "", "Config file path on local file system for configuring DNS provider.") - flags.StringVar(&o.etcdImage, "etcd-image", defaultEtcdImage, "Image to use for etcd server.") - flags.StringVar(&o.etcdPVCapacity, "etcd-pv-capacity", "10Gi", "Size of persistent volume claim to be used for etcd.") - flags.StringVar(&o.etcdPVStorageClass, "etcd-pv-storage-class", "", "The storage class of the persistent volume claim used for etcd. Must be provided if a default storage class is not enabled for the host cluster.") - flags.BoolVar(&o.etcdPersistentStorage, "etcd-persistent-storage", true, "Use persistent volume for etcd. Defaults to 'true'.") - flags.BoolVar(&o.dryRun, "dry-run", false, "dry run without sending commands to server.") - flags.StringVar(&o.apiServerOverridesString, "apiserver-arg-overrides", "", "comma separated list of federation-apiserver arguments to override: Example \"--arg1=value1,--arg2=value2...\"") - flags.StringVar(&o.controllerManagerOverridesString, "controllermanager-arg-overrides", "", "comma separated list of federation-controller-manager arguments to override: Example \"--arg1=value1,--arg2=value2...\"") - flags.StringVar(&o.apiServerServiceTypeString, apiserverServiceTypeFlag, string(v1.ServiceTypeLoadBalancer), "The type of service to create for federation API server. Options: 'LoadBalancer' (default), 'NodePort'.") - flags.StringVar(&o.apiServerAdvertiseAddress, apiserverAdvertiseAddressFlag, "", "Preferred address to advertise api server nodeport service. Valid only if '"+apiserverServiceTypeFlag+"=NodePort'.") - flags.Int32Var(&o.apiServerNodePortPort, apiserverPortFlag, 0, "Preferred port to use for api server nodeport service (0 for random port assignment). Valid only if '"+apiserverServiceTypeFlag+"=NodePort'.") - flags.BoolVar(&o.apiServerEnableHTTPBasicAuth, "apiserver-enable-basic-auth", false, "Enables HTTP Basic authentication for the federation-apiserver. Defaults to false.") - flags.BoolVar(&o.apiServerEnableTokenAuth, "apiserver-enable-token-auth", false, "Enables token authentication for the federation-apiserver. Defaults to false.") - flags.StringVar(&o.nodeSelectorString, "node-selector", "", "comma separated list of nodeSelector arguments: Example \"arg1=value1,arg2=value2...\"") -} - -// NewCmdInit defines the `init` command that bootstraps a federation -// control plane inside a set of host clusters. -func NewCmdInit(cmdOut io.Writer, config util.AdminConfig, defaultServerImage, defaultEtcdImage string) *cobra.Command { - opts := &initFederation{} - - cmd := &cobra.Command{ - Use: "init FEDERATION_NAME --host-cluster-context=HOST_CONTEXT", - Short: "Initialize a federation control plane", - Long: init_long, - Example: init_example, - Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(opts.Complete(cmd, args)) - cmdutil.CheckErr(opts.Run(cmdOut, config)) - }, - } - - flags := cmd.Flags() - opts.commonOptions.Bind(flags) - opts.options.Bind(flags, defaultServerImage, defaultEtcdImage) - - return cmd -} - -type entityKeyPairs struct { - ca *triple.KeyPair - server *triple.KeyPair - controllerManager *triple.KeyPair - admin *triple.KeyPair -} - -type credentials struct { - username string - password string - token string - certEntKeyPairs *entityKeyPairs -} - -// Complete ensures that options are valid and marshals them if necessary. -func (i *initFederation) Complete(cmd *cobra.Command, args []string) error { - if len(i.options.dnsProvider) == 0 { - return fmt.Errorf("--dns-provider is mandatory") - } - - err := i.commonOptions.SetName(cmd, args) - if err != nil { - return err - } - - i.options.apiServerServiceType = v1.ServiceType(i.options.apiServerServiceTypeString) - if i.options.apiServerServiceType != v1.ServiceTypeLoadBalancer && i.options.apiServerServiceType != v1.ServiceTypeNodePort { - return fmt.Errorf("invalid %s: %s, should be either %s or %s", apiserverServiceTypeFlag, i.options.apiServerServiceType, v1.ServiceTypeLoadBalancer, v1.ServiceTypeNodePort) - } - if i.options.apiServerAdvertiseAddress != "" { - ip := net.ParseIP(i.options.apiServerAdvertiseAddress) - if ip == nil { - return fmt.Errorf("invalid %s: %s, should be a valid ip address", apiserverAdvertiseAddressFlag, i.options.apiServerAdvertiseAddress) - } - if i.options.apiServerServiceType != v1.ServiceTypeNodePort { - return fmt.Errorf("%s should be passed only with '%s=NodePort'", apiserverAdvertiseAddressFlag, apiserverServiceTypeFlag) - } - } - - if i.options.apiServerNodePortPort != 0 { - if i.options.apiServerServiceType != v1.ServiceTypeNodePort { - return fmt.Errorf("%s should be passed only with '%s=NodePort'", apiserverPortFlag, apiserverServiceTypeFlag) - } - i.options.apiServerNodePortPortPtr = &i.options.apiServerNodePortPort - } else { - i.options.apiServerNodePortPortPtr = nil - } - if i.options.apiServerNodePortPort < 0 || i.options.apiServerNodePortPort > 65535 { - return fmt.Errorf("Please provide a valid port number for %s", apiserverPortFlag) - } - - i.options.apiServerOverrides, err = marshallOverrides(i.options.apiServerOverridesString) - if err != nil { - return fmt.Errorf("error marshalling --apiserver-arg-overrides: %v", err) - } - i.options.controllerManagerOverrides, err = marshallOverrides(i.options.controllerManagerOverridesString) - if err != nil { - return fmt.Errorf("error marshalling --controllermanager-arg-overrides: %v", err) - } - i.options.nodeSelector, err = marshallOverrides(i.options.nodeSelectorString) - if err != nil { - return fmt.Errorf("error marshalling --node-selector: %v", err) - } - - if i.options.dnsProviderConfig != "" { - if _, err := os.Stat(i.options.dnsProviderConfig); err != nil { - return fmt.Errorf("error reading file provided to --dns-provider-config flag, err: %v", err) - } - } - - return nil -} - -// Run initializes a federation control plane. -// See the design doc in https://github.com/kubernetes/kubernetes/pull/34484 -// for details. -func (i *initFederation) Run(cmdOut io.Writer, config util.AdminConfig) error { - hostFactory := config.ClusterFactory(i.commonOptions.Host, i.commonOptions.Kubeconfig) - hostClientset, err := hostFactory.ClientSet() - if err != nil { - return err - } - - rbacAvailable := true - rbacVersionedClientset, err := util.GetVersionedClientForRBACOrFail(hostFactory) - if err != nil { - if _, ok := err.(*util.NoRBACAPIError); !ok { - return err - } - // If the error is type NoRBACAPIError, We continue to create the rest of - // the resources, without the SA and roles (in the absence of RBAC support). - rbacAvailable = false - } - - serverName := fmt.Sprintf("%s-%s", i.commonOptions.Name, APIServerNameSuffix) - serverCredName := fmt.Sprintf("%s-%s", serverName, CredentialSuffix) - cmName := fmt.Sprintf("%s-%s", i.commonOptions.Name, CMNameSuffix) - cmKubeconfigName := fmt.Sprintf("%s-%s", cmName, KubeconfigNameSuffix) - - var dnsProviderConfigBytes []byte - if i.options.dnsProviderConfig != "" { - dnsProviderConfigBytes, err = ioutil.ReadFile(i.options.dnsProviderConfig) - if err != nil { - return fmt.Errorf("Error reading file provided to --dns-provider-config flag, err: %v", err) - } - } - - fmt.Fprintf(cmdOut, "Creating a namespace %s for federation system components...", i.commonOptions.FederationSystemNamespace) - glog.V(4).Infof("Creating a namespace %s for federation system components", i.commonOptions.FederationSystemNamespace) - _, err = createNamespace(hostClientset, i.commonOptions.Name, i.commonOptions.FederationSystemNamespace, i.options.dryRun) - if err != nil { - return err - } - - fmt.Fprintln(cmdOut, " done") - - fmt.Fprint(cmdOut, "Creating federation control plane service...") - glog.V(4).Info("Creating federation control plane service") - svc, ips, hostnames, err := createService(cmdOut, hostClientset, i.commonOptions.FederationSystemNamespace, serverName, i.commonOptions.Name, i.options.apiServerAdvertiseAddress, i.options.apiServerNodePortPortPtr, i.options.apiServerServiceType, i.options.dryRun) - if err != nil { - return err - } - fmt.Fprintln(cmdOut, " done") - glog.V(4).Infof("Created service named %s with IP addresses %v, hostnames %v", svc.Name, ips, hostnames) - - fmt.Fprint(cmdOut, "Creating federation control plane objects (credentials, persistent volume claim)...") - glog.V(4).Info("Generating TLS certificates and credentials for communicating with the federation API server") - credentials, err := generateCredentials(i.commonOptions.FederationSystemNamespace, i.commonOptions.Name, svc.Name, HostClusterLocalDNSZoneName, serverCredName, ips, hostnames, i.options.apiServerEnableHTTPBasicAuth, i.options.apiServerEnableTokenAuth, i.options.dryRun) - if err != nil { - return err - } - - // Create the secret containing the credentials. - _, err = createAPIServerCredentialsSecret(hostClientset, i.commonOptions.FederationSystemNamespace, serverCredName, i.commonOptions.Name, credentials, i.options.dryRun) - if err != nil { - return err - } - glog.V(4).Info("Certificates and credentials generated") - - glog.V(4).Info("Creating an entry in the kubeconfig file with the certificate and credential data") - _, err = createControllerManagerKubeconfigSecret(hostClientset, i.commonOptions.FederationSystemNamespace, i.commonOptions.Name, svc.Name, cmKubeconfigName, credentials.certEntKeyPairs, i.options.dryRun) - if err != nil { - return err - } - glog.V(4).Info("Credentials secret successfully created") - - var pvc *api.PersistentVolumeClaim - if i.options.etcdPersistentStorage { - glog.V(4).Info("Creating a persistent volume and a claim to store the federation API server's state, including etcd data") - pvc, err = createPVC(hostClientset, i.commonOptions.FederationSystemNamespace, svc.Name, i.commonOptions.Name, i.options.etcdPVCapacity, i.options.etcdPVStorageClass, i.options.dryRun) - if err != nil { - return err - } - glog.V(4).Info("Persistent volume and claim created") - fmt.Fprintln(cmdOut, " done") - } - - // Since only one IP address can be specified as advertise address, - // we arbitrarily pick the first available IP address - // Pick user provided apiserverAdvertiseAddress over other available IP addresses. - advertiseAddress := i.options.apiServerAdvertiseAddress - if advertiseAddress == "" && len(ips) > 0 { - advertiseAddress = ips[0] - } - - fmt.Fprint(cmdOut, "Creating federation component deployments...") - glog.V(4).Info("Creating federation control plane components") - _, err = createAPIServer(hostClientset, i.commonOptions.FederationSystemNamespace, serverName, i.commonOptions.Name, i.options.serverImage, i.options.etcdImage, advertiseAddress, serverCredName, i.options.apiServerEnableHTTPBasicAuth, i.options.apiServerEnableTokenAuth, i.options.apiServerOverrides, pvc, i.options.dryRun, i.options.nodeSelector) - if err != nil { - return err - } - glog.V(4).Info("Successfully created federation API server") - - sa := &api.ServiceAccount{} - sa.Name = "" - // Create a service account and related RBAC roles if the host cluster has RBAC support. - // TODO: We must evaluate creating a separate service account even when RBAC support is missing - if rbacAvailable { - glog.V(4).Info("Creating service account for federation controller manager in the host cluster") - sa, err = createControllerManagerSA(rbacVersionedClientset, i.commonOptions.FederationSystemNamespace, i.commonOptions.Name, i.options.dryRun) - if err != nil { - return err - } - glog.V(4).Info("Successfully created federation controller manager service account") - - glog.V(4).Info("Creating RBAC role and role bindings for the federation controller manager's service account") - _, _, err = createRoleBindings(rbacVersionedClientset, i.commonOptions.FederationSystemNamespace, sa.Name, i.commonOptions.Name, i.options.dryRun) - if err != nil { - return err - } - glog.V(4).Info("Successfully created RBAC role and role bindings") - } - - glog.V(4).Info("Creating a DNS provider config secret") - dnsProviderSecret, err := createDNSProviderConfigSecret(hostClientset, i.commonOptions.FederationSystemNamespace, dnsProviderSecretName, i.commonOptions.Name, dnsProviderConfigBytes, i.options.dryRun) - if err != nil { - return err - } - glog.V(4).Info("Successfully created DNS provider config secret") - - glog.V(4).Info("Creating federation controller manager deployment") - - _, err = createControllerManager(hostClientset, i.commonOptions.FederationSystemNamespace, i.commonOptions.Name, svc.Name, cmName, i.options.serverImage, cmKubeconfigName, i.options.dnsZoneName, i.options.dnsProvider, i.options.dnsProviderConfig, sa.Name, dnsProviderSecret, i.options.controllerManagerOverrides, i.options.dryRun, i.options.nodeSelector) - if err != nil { - return err - } - glog.V(4).Info("Successfully created federation controller manager deployment") - fmt.Fprintln(cmdOut, " done") - - fmt.Fprint(cmdOut, "Updating kubeconfig...") - glog.V(4).Info("Updating kubeconfig") - // Pick the first ip/hostname to update the api server endpoint in kubeconfig and also to give information to user - // In case of NodePort Service for api server, ips are node external ips. - endpoint := "" - if len(ips) > 0 { - endpoint = ips[0] - } else if len(hostnames) > 0 { - endpoint = hostnames[0] - } - // If the service is nodeport, need to append the port to endpoint as it is non-standard port - if i.options.apiServerServiceType == v1.ServiceTypeNodePort { - endpoint = endpoint + ":" + strconv.Itoa(int(svc.Spec.Ports[0].NodePort)) - } - - err = updateKubeconfig(config, i.commonOptions.Name, endpoint, i.commonOptions.Kubeconfig, credentials, i.options.dryRun) - if err != nil { - glog.V(4).Infof("Failed to update kubeconfig: %v", err) - return err - } - fmt.Fprintln(cmdOut, " done") - glog.V(4).Info("Successfully updated kubeconfig") - - if !i.options.dryRun { - fmt.Fprint(cmdOut, "Waiting for federation control plane to come up...") - glog.V(4).Info("Waiting for federation control plane to come up") - fedPods := []string{serverName, cmName} - err = waitForPods(cmdOut, hostClientset, fedPods, i.commonOptions.FederationSystemNamespace) - if err != nil { - return err - } - err = waitSrvHealthy(cmdOut, config, i.commonOptions.Name, i.commonOptions.Kubeconfig) - if err != nil { - return err - } - glog.V(4).Info("Federation control plane running") - fmt.Fprintln(cmdOut, " done") - return printSuccess(cmdOut, ips, hostnames, svc) - } - _, err = fmt.Fprintln(cmdOut, "Federation control plane runs (dry run)") - glog.V(4).Info("Federation control plane runs (dry run)") - return err -} - -func createNamespace(clientset client.Interface, federationName, namespace string, dryRun bool) (*api.Namespace, error) { - ns := &api.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: namespace, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - } - - if dryRun { - return ns, nil - } - - return clientset.Core().Namespaces().Create(ns) -} - -func createService(cmdOut io.Writer, clientset client.Interface, namespace, svcName, federationName, apiserverAdvertiseAddress string, apiserverPort *int32, apiserverServiceType v1.ServiceType, dryRun bool) (*api.Service, []string, []string, error) { - port := api.ServicePort{ - Name: "https", - Protocol: "TCP", - Port: 443, - TargetPort: intstr.FromString(apiServerSecurePortName), - } - if apiserverServiceType == v1.ServiceTypeNodePort && apiserverPort != nil { - port.NodePort = *apiserverPort - } - svc := &api.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: svcName, - Namespace: namespace, - Labels: componentLabel, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - Spec: api.ServiceSpec{ - Type: api.ServiceType(apiserverServiceType), - Selector: apiserverSvcSelector, - Ports: []api.ServicePort{port}, - }, - } - - if dryRun { - return svc, nil, nil, nil - } - - var err error - svc, err = clientset.Core().Services(namespace).Create(svc) - if err != nil { - return nil, nil, nil, err - } - - ips := []string{} - hostnames := []string{} - if apiserverServiceType == v1.ServiceTypeLoadBalancer { - ips, hostnames, err = waitForLoadBalancerAddress(cmdOut, clientset, svc, dryRun) - } else { - if apiserverAdvertiseAddress != "" { - ips = append(ips, apiserverAdvertiseAddress) - } else { - ips, err = getClusterNodeIPs(clientset) - } - } - if err != nil { - return svc, nil, nil, err - } - - return svc, ips, hostnames, err -} - -func getClusterNodeIPs(clientset client.Interface) ([]string, error) { - preferredAddressTypes := []api.NodeAddressType{ - api.NodeExternalIP, - api.NodeInternalIP, - } - nodeList, err := clientset.Core().Nodes().List(metav1.ListOptions{}) - if err != nil { - return nil, err - } - nodeAddresses := []string{} - for _, node := range nodeList.Items { - OuterLoop: - for _, addressType := range preferredAddressTypes { - for _, address := range node.Status.Addresses { - if address.Type == addressType { - nodeAddresses = append(nodeAddresses, address.Address) - break OuterLoop - } - } - } - } - - return nodeAddresses, nil -} - -func waitForLoadBalancerAddress(cmdOut io.Writer, clientset client.Interface, svc *api.Service, dryRun bool) ([]string, []string, error) { - ips := []string{} - hostnames := []string{} - - if dryRun { - return ips, hostnames, nil - } - - err := wait.PollImmediateInfinite(lbAddrRetryInterval, func() (bool, error) { - fmt.Fprint(cmdOut, ".") - pollSvc, err := clientset.Core().Services(svc.Namespace).Get(svc.Name, metav1.GetOptions{}) - if err != nil { - return false, nil - } - if ings := pollSvc.Status.LoadBalancer.Ingress; len(ings) > 0 { - for _, ing := range ings { - if len(ing.IP) > 0 { - ips = append(ips, ing.IP) - } - if len(ing.Hostname) > 0 { - hostnames = append(hostnames, ing.Hostname) - } - } - if len(ips) > 0 || len(hostnames) > 0 { - return true, nil - } - } - return false, nil - }) - if err != nil { - return nil, nil, err - } - - return ips, hostnames, nil -} - -func generateCredentials(svcNamespace, name, svcName, localDNSZoneName, serverCredName string, ips, hostnames []string, enableHTTPBasicAuth, enableTokenAuth, dryRun bool) (*credentials, error) { - credentials := credentials{ - username: AdminCN, - } - if enableHTTPBasicAuth { - credentials.password = string(uuid.NewUUID()) - } - if enableTokenAuth { - credentials.token = string(uuid.NewUUID()) - } - - entKeyPairs, err := genCerts(svcNamespace, name, svcName, localDNSZoneName, ips, hostnames) - if err != nil { - return nil, err - } - credentials.certEntKeyPairs = entKeyPairs - return &credentials, nil -} - -func genCerts(svcNamespace, name, svcName, localDNSZoneName string, ips, hostnames []string) (*entityKeyPairs, error) { - ca, err := triple.NewCA(name) - if err != nil { - return nil, fmt.Errorf("failed to create CA key and certificate: %v", err) - } - server, err := triple.NewServerKeyPair(ca, APIServerCN, svcName, svcNamespace, localDNSZoneName, ips, hostnames) - if err != nil { - return nil, fmt.Errorf("failed to create federation API server key and certificate: %v", err) - } - cm, err := triple.NewClientKeyPair(ca, ControllerManagerCN, nil) - if err != nil { - return nil, fmt.Errorf("failed to create federation controller manager client key and certificate: %v", err) - } - admin, err := triple.NewClientKeyPair(ca, AdminCN, nil) - if err != nil { - return nil, fmt.Errorf("failed to create client key and certificate for an admin: %v", err) - } - return &entityKeyPairs{ - ca: ca, - server: server, - controllerManager: cm, - admin: admin, - }, nil -} - -func createAPIServerCredentialsSecret(clientset client.Interface, namespace, credentialsName, federationName string, credentials *credentials, dryRun bool) (*api.Secret, error) { - // Build the secret object with API server credentials. - data := map[string][]byte{ - "ca.crt": certutil.EncodeCertPEM(credentials.certEntKeyPairs.ca.Cert), - "server.crt": certutil.EncodeCertPEM(credentials.certEntKeyPairs.server.Cert), - "server.key": certutil.EncodePrivateKeyPEM(credentials.certEntKeyPairs.server.Key), - } - if credentials.password != "" { - data["basicauth.csv"] = authFileContents(credentials.username, credentials.password) - } - if credentials.token != "" { - data["token.csv"] = authFileContents(credentials.username, credentials.token) - } - - secret := &api.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: credentialsName, - Namespace: namespace, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - Data: data, - } - - if dryRun { - return secret, nil - } - // Boilerplate to create the secret in the host cluster. - return clientset.Core().Secrets(namespace).Create(secret) -} - -func createControllerManagerKubeconfigSecret(clientset client.Interface, namespace, name, svcName, kubeconfigName string, entKeyPairs *entityKeyPairs, dryRun bool) (*api.Secret, error) { - config := kubeconfigutil.CreateWithCerts( - fmt.Sprintf("https://%s", svcName), - name, - ControllerManagerUser, - certutil.EncodeCertPEM(entKeyPairs.ca.Cert), - certutil.EncodePrivateKeyPEM(entKeyPairs.controllerManager.Key), - certutil.EncodeCertPEM(entKeyPairs.controllerManager.Cert), - ) - - return util.CreateKubeconfigSecret(clientset, config, namespace, kubeconfigName, name, "", dryRun) -} - -func createPVC(clientset client.Interface, namespace, svcName, federationName, etcdPVCapacity, etcdPVStorageClass string, dryRun bool) (*api.PersistentVolumeClaim, error) { - capacity, err := resource.ParseQuantity(etcdPVCapacity) - if err != nil { - return nil, err - } - - var storageClassName *string - if len(etcdPVStorageClass) > 0 { - storageClassName = &etcdPVStorageClass - } - - pvc := &api.PersistentVolumeClaim{ - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("%s-etcd-claim", svcName), - Namespace: namespace, - Labels: componentLabel, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - Spec: api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceStorage: capacity, - }, - }, - StorageClassName: storageClassName, - }, - } - - if dryRun { - return pvc, nil - } - - return clientset.Core().PersistentVolumeClaims(namespace).Create(pvc) -} - -func createAPIServer(clientset client.Interface, namespace, name, federationName, serverImage, etcdImage, advertiseAddress, credentialsName string, hasHTTPBasicAuthFile, hasTokenAuthFile bool, argOverrides map[string]string, pvc *api.PersistentVolumeClaim, dryRun bool, nodeSelector map[string]string) (*extensions.Deployment, error) { - command := []string{ - "/hyperkube", - "federation-apiserver", - } - argsMap := map[string]string{ - "--bind-address": "0.0.0.0", - "--etcd-servers": "http://localhost:2379", - "--secure-port": fmt.Sprintf("%d", apiServerSecurePort), - "--client-ca-file": "/etc/federation/apiserver/ca.crt", - "--tls-cert-file": "/etc/federation/apiserver/server.crt", - "--tls-private-key-file": "/etc/federation/apiserver/server.key", - "--admission-control": "NamespaceLifecycle", - } - - if advertiseAddress != "" { - argsMap["--advertise-address"] = advertiseAddress - } - if hasHTTPBasicAuthFile { - argsMap["--basic-auth-file"] = "/etc/federation/apiserver/basicauth.csv" - } - if hasTokenAuthFile { - argsMap["--token-auth-file"] = "/etc/federation/apiserver/token.csv" - } - - args := argMapsToArgStrings(argsMap, argOverrides) - command = append(command, args...) - - dep := &extensions.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Labels: componentLabel, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - Spec: extensions.DeploymentSpec{ - Replicas: 1, - Template: api.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: apiserverPodLabels, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - Spec: api.PodSpec{ - Containers: []api.Container{ - { - Name: "apiserver", - Image: serverImage, - Command: command, - Ports: []api.ContainerPort{ - { - Name: apiServerSecurePortName, - ContainerPort: apiServerSecurePort, - }, - { - Name: "local", - ContainerPort: 8080, - }, - }, - VolumeMounts: []api.VolumeMount{ - { - Name: credentialsName, - MountPath: "/etc/federation/apiserver", - ReadOnly: true, - }, - }, - }, - { - Name: "etcd", - Image: etcdImage, - Command: []string{ - "/usr/local/bin/etcd", - "--data-dir", - "/var/etcd/data", - }, - }, - }, - NodeSelector: nodeSelector, - Volumes: []api.Volume{ - { - Name: credentialsName, - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ - SecretName: credentialsName, - }, - }, - }, - }, - }, - }, - }, - } - - if pvc != nil { - dataVolumeName := "etcddata" - etcdVolume := api.Volume{ - Name: dataVolumeName, - VolumeSource: api.VolumeSource{ - PersistentVolumeClaim: &api.PersistentVolumeClaimVolumeSource{ - ClaimName: pvc.Name, - }, - }, - } - etcdVolumeMount := api.VolumeMount{ - Name: dataVolumeName, - MountPath: "/var/etcd", - } - - dep.Spec.Template.Spec.Volumes = append(dep.Spec.Template.Spec.Volumes, etcdVolume) - for i, container := range dep.Spec.Template.Spec.Containers { - if container.Name == "etcd" { - dep.Spec.Template.Spec.Containers[i].VolumeMounts = append(dep.Spec.Template.Spec.Containers[i].VolumeMounts, etcdVolumeMount) - } - } - } - - if dryRun { - return dep, nil - } - - createdDep, err := clientset.Extensions().Deployments(namespace).Create(dep) - return createdDep, err -} - -func createControllerManagerSA(clientset client.Interface, namespace, federationName string, dryRun bool) (*api.ServiceAccount, error) { - sa := &api.ServiceAccount{ - ObjectMeta: metav1.ObjectMeta{ - Name: ControllerManagerSA, - Namespace: namespace, - Labels: componentLabel, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - } - if dryRun { - return sa, nil - } - return clientset.Core().ServiceAccounts(namespace).Create(sa) -} - -func createRoleBindings(clientset client.Interface, namespace, saName, federationName string, dryRun bool) (*rbac.Role, *rbac.RoleBinding, error) { - roleName := "federation-system:federation-controller-manager" - role := &rbac.Role{ - // a role to use for bootstrapping the federation-controller-manager so it can access - // secrets in the host cluster to access other clusters. - ObjectMeta: metav1.ObjectMeta{ - Name: roleName, - Namespace: namespace, - Labels: componentLabel, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - Rules: []rbac.PolicyRule{ - rbac.NewRule("get", "list", "watch").Groups(legacyAPIGroup).Resources("secrets").RuleOrDie(), - }, - } - - rolebinding, err := rbac.NewRoleBinding(roleName, namespace).SAs(namespace, saName).Binding() - if err != nil { - return nil, nil, err - } - rolebinding.Labels = componentLabel - rolebinding.Annotations = map[string]string{federation.FederationNameAnnotation: federationName} - - if dryRun { - return role, &rolebinding, nil - } - - newRole, err := clientset.Rbac().Roles(namespace).Create(role) - if err != nil { - return nil, nil, err - } - - newRolebinding, err := clientset.Rbac().RoleBindings(namespace).Create(&rolebinding) - return newRole, newRolebinding, err -} - -func createControllerManager(clientset client.Interface, namespace, name, svcName, cmName, image, kubeconfigName, dnsZoneName, dnsProvider, dnsProviderConfig, saName string, dnsProviderSecret *api.Secret, argOverrides map[string]string, dryRun bool, nodeSelector map[string]string) (*extensions.Deployment, error) { - command := []string{ - "/hyperkube", - "federation-controller-manager", - } - argsMap := map[string]string{ - "--kubeconfig": "/etc/federation/controller-manager/kubeconfig", - } - - argsMap["--master"] = fmt.Sprintf("https://%s", svcName) - argsMap["--dns-provider"] = dnsProvider - argsMap["--federation-name"] = name - argsMap["--zone-name"] = dnsZoneName - - args := argMapsToArgStrings(argsMap, argOverrides) - command = append(command, args...) - - dep := &extensions.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: cmName, - Namespace: namespace, - Labels: componentLabel, - // We additionally update the details (in annotations) about the - // kube-dns config map which needs to be created in the clusters - // registering to this federation (at kubefed join). - // We wont otherwise have this information available at kubefed join. - Annotations: map[string]string{ - // TODO: the name/domain name pair should ideally be checked for naming convention - // as done in kube-dns federation flags check. - // https://github.com/kubernetes/dns/blob/master/pkg/dns/federation/federation.go - // TODO v2: Until kube-dns can handle trailing periods we strip them all. - // See https://github.com/kubernetes/dns/issues/67 - util.FedDomainMapKey: fmt.Sprintf("%s=%s", name, strings.TrimRight(dnsZoneName, ".")), - federation.FederationNameAnnotation: name, - }, - }, - Spec: extensions.DeploymentSpec{ - Replicas: 1, - Template: api.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Name: cmName, - Labels: controllerManagerPodLabels, - Annotations: map[string]string{federation.FederationNameAnnotation: name}, - }, - Spec: api.PodSpec{ - Containers: []api.Container{ - { - Name: "controller-manager", - Image: image, - Command: command, - VolumeMounts: []api.VolumeMount{ - { - Name: kubeconfigName, - MountPath: "/etc/federation/controller-manager", - ReadOnly: true, - }, - }, - Env: []api.EnvVar{ - { - Name: "POD_NAMESPACE", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - FieldPath: "metadata.namespace", - }, - }, - }, - }, - }, - }, - NodeSelector: nodeSelector, - Volumes: []api.Volume{ - { - Name: kubeconfigName, - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ - SecretName: kubeconfigName, - }, - }, - }, - }, - }, - }, - }, - } - - if saName != "" { - dep.Spec.Template.Spec.ServiceAccountName = saName - } - - if dnsProviderSecret != nil { - dep = addDNSProviderConfig(dep, dnsProviderSecret.Name) - if dnsProvider == util.FedDNSProviderCoreDNS { - var err error - dep, err = addCoreDNSServerAnnotation(dep, dnsZoneName, dnsProviderConfig) - if err != nil { - return nil, err - } - } - } - - if dryRun { - return dep, nil - } - - return clientset.Extensions().Deployments(namespace).Create(dep) -} - -func marshallOverrides(overrideArgString string) (map[string]string, error) { - if overrideArgString == "" { - return nil, nil - } - - argsMap := make(map[string]string) - overrideArgs := strings.Split(overrideArgString, ",") - for _, overrideArg := range overrideArgs { - splitArg := strings.SplitN(overrideArg, "=", 2) - if len(splitArg) != 2 { - return nil, fmt.Errorf("wrong format for override arg: %s", overrideArg) - } - key := strings.TrimSpace(splitArg[0]) - val := strings.TrimSpace(splitArg[1]) - if len(key) == 0 { - return nil, fmt.Errorf("wrong format for override arg: %s, arg name cannot be empty", overrideArg) - } - argsMap[key] = val - } - return argsMap, nil -} - -func argMapsToArgStrings(argsMap, overrides map[string]string) []string { - for key, val := range overrides { - argsMap[key] = val - } - args := []string{} - for key, value := range argsMap { - args = append(args, fmt.Sprintf("%s=%s", key, value)) - } - // This is needed for the unit test deep copy to get an exact match - sort.Strings(args) - return args -} - -func waitForPods(cmdOut io.Writer, clientset client.Interface, fedPods []string, namespace string) error { - err := wait.PollInfinite(podWaitInterval, func() (bool, error) { - fmt.Fprint(cmdOut, ".") - podCheck := len(fedPods) - podList, err := clientset.Core().Pods(namespace).List(metav1.ListOptions{}) - if err != nil { - return false, nil - } - for _, pod := range podList.Items { - for _, fedPod := range fedPods { - if strings.HasPrefix(pod.Name, fedPod) && pod.Status.Phase == "Running" { - podCheck -= 1 - } - } - //ensure that all pods are in running state or keep waiting - if podCheck == 0 { - return true, nil - } - } - return false, nil - }) - return err -} - -func waitSrvHealthy(cmdOut io.Writer, config util.AdminConfig, context, kubeconfig string) error { - fedClientSet, err := config.FederationClientset(context, kubeconfig) - if err != nil { - return err - } - fedDiscoveryClient := fedClientSet.Discovery() - err = wait.PollInfinite(podWaitInterval, func() (bool, error) { - fmt.Fprint(cmdOut, ".") - body, err := fedDiscoveryClient.RESTClient().Get().AbsPath("/healthz").Do().Raw() - if err != nil { - return false, nil - } - if strings.EqualFold(string(body), "ok") { - return true, nil - } - return false, nil - }) - return err -} - -func printSuccess(cmdOut io.Writer, ips, hostnames []string, svc *api.Service) error { - svcEndpoints := append(ips, hostnames...) - endpoints := strings.Join(svcEndpoints, ", ") - if svc.Spec.Type == api.ServiceTypeNodePort { - endpoints = ips[0] + ":" + strconv.Itoa(int(svc.Spec.Ports[0].NodePort)) - if len(ips) > 1 { - endpoints = endpoints + ", ..." - } - } - - _, err := fmt.Fprintf(cmdOut, "Federation API server is running at: %s\n", endpoints) - return err -} - -func updateKubeconfig(config util.AdminConfig, name, endpoint, kubeConfigPath string, credentials *credentials, dryRun bool) error { - po := config.PathOptions() - po.LoadingRules.ExplicitPath = kubeConfigPath - kubeconfig, err := po.GetStartingConfig() - if err != nil { - return err - } - - // Populate API server endpoint info. - cluster := clientcmdapi.NewCluster() - // Prefix "https" as the URL scheme to endpoint. - if !strings.HasPrefix(endpoint, "https://") { - endpoint = fmt.Sprintf("https://%s", endpoint) - } - cluster.Server = endpoint - cluster.CertificateAuthorityData = certutil.EncodeCertPEM(credentials.certEntKeyPairs.ca.Cert) - - // Populate credentials. - authInfo := clientcmdapi.NewAuthInfo() - authInfo.ClientCertificateData = certutil.EncodeCertPEM(credentials.certEntKeyPairs.admin.Cert) - authInfo.ClientKeyData = certutil.EncodePrivateKeyPEM(credentials.certEntKeyPairs.admin.Key) - authInfo.Token = credentials.token - - var httpBasicAuthInfo *clientcmdapi.AuthInfo - if credentials.password != "" { - httpBasicAuthInfo = clientcmdapi.NewAuthInfo() - httpBasicAuthInfo.Password = credentials.password - httpBasicAuthInfo.Username = credentials.username - } - - // Populate context. - context := clientcmdapi.NewContext() - context.Cluster = name - context.AuthInfo = name - - // Update the config struct with API server endpoint info, - // credentials and context. - kubeconfig.Clusters[name] = cluster - kubeconfig.AuthInfos[name] = authInfo - if httpBasicAuthInfo != nil { - kubeconfig.AuthInfos[fmt.Sprintf("%s-basic-auth", name)] = httpBasicAuthInfo - } - kubeconfig.Contexts[name] = context - - if !dryRun { - // Write the update kubeconfig. - if err := clientcmd.ModifyConfig(po, *kubeconfig, true); err != nil { - return err - } - } - - return nil -} - -func createDNSProviderConfigSecret(clientset client.Interface, namespace, name, federationName string, dnsProviderConfigBytes []byte, dryRun bool) (*api.Secret, error) { - if dnsProviderConfigBytes == nil { - return nil, nil - } - - secretSpec := &api.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - Data: map[string][]byte{ - name: dnsProviderConfigBytes, - }, - } - - var secret *api.Secret - var err error - if !dryRun { - secret, err = clientset.Core().Secrets(namespace).Create(secretSpec) - if err != nil { - return nil, err - } - } - return secret, nil -} - -func addDNSProviderConfig(dep *extensions.Deployment, secretName string) *extensions.Deployment { - const ( - dnsProviderConfigVolume = "config-volume" - dnsProviderConfigMountPath = "/etc/federation/dns-provider" - ) - - // Create a volume from dns-provider secret - volume := api.Volume{ - Name: dnsProviderConfigVolume, - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ - SecretName: secretName, - }, - }, - } - dep.Spec.Template.Spec.Volumes = append(dep.Spec.Template.Spec.Volumes, volume) - - // Mount dns-provider secret volume to controller-manager container - volumeMount := api.VolumeMount{ - Name: dnsProviderConfigVolume, - MountPath: dnsProviderConfigMountPath, - ReadOnly: true, - } - dep.Spec.Template.Spec.Containers[0].VolumeMounts = append(dep.Spec.Template.Spec.Containers[0].VolumeMounts, volumeMount) - dep.Spec.Template.Spec.Containers[0].Command = append(dep.Spec.Template.Spec.Containers[0].Command, fmt.Sprintf("--dns-provider-config=%s/%s", dnsProviderConfigMountPath, secretName)) - - return dep -} - -// authFileContents returns a CSV string containing the contents of an -// authentication file in the format required by the federation-apiserver. -func authFileContents(username, authSecret string) []byte { - return []byte(fmt.Sprintf("%s,%s,%s\n", authSecret, username, uuid.NewUUID())) -} - -func addCoreDNSServerAnnotation(deployment *extensions.Deployment, dnsZoneName, dnsProviderConfig string) (*extensions.Deployment, error) { - var cfg coredns.Config - if err := gcfg.ReadFileInto(&cfg, dnsProviderConfig); err != nil { - return nil, err - } - - deployment.Annotations[util.FedDNSZoneName] = dnsZoneName - deployment.Annotations[util.FedNameServer] = cfg.Global.CoreDNSEndpoints - deployment.Annotations[util.FedDNSProvider] = util.FedDNSProviderCoreDNS - return deployment, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/init_test.go b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/init_test.go deleted file mode 100644 index f33a8665f..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/init/init_test.go +++ /dev/null @@ -1,1605 +0,0 @@ -/* -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 init - -import ( - "bytes" - "crypto/tls" - "crypto/x509" - "fmt" - "io" - "io/ioutil" - "net/http" - "net/http/httptest" - "net/url" - "os" - "sort" - "strconv" - "strings" - "testing" - "time" - - "k8s.io/api/core/v1" - "k8s.io/api/extensions/v1beta1" - rbacv1 "k8s.io/api/rbac/v1" - apiequality "k8s.io/apimachinery/pkg/api/equality" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/rest/fake" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns" - kubefedtesting "k8s.io/kubernetes/federation/pkg/kubefed/testing" - "k8s.io/kubernetes/federation/pkg/kubefed/util" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" - "k8s.io/kubernetes/pkg/api/testapi" - "k8s.io/kubernetes/pkg/apis/rbac" - cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - - "gopkg.in/gcfg.v1" -) - -const ( - testNamespace = "test-ns" - testSvcName = "test-service" - testCertValidity = 1 * time.Hour - - helloMsg = "Hello, certificate test!" - - lbIP = "10.20.30.40" - nodeIP = "10.20.30.50" - nodePort = 32111 - - testAPIGroup = "testGroup" - testAPIVersion = "testVersion" -) - -func TestInitFederation(t *testing.T) { - cmdErrMsg := "" - cmdutil.BehaviorOnFatal(func(str string, code int) { - cmdErrMsg = str - }) - - fakeKubeFiles, err := kubefedtesting.FakeKubeconfigFiles() - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - defer kubefedtesting.RemoveFakeKubeconfigFiles(fakeKubeFiles) - - testCases := []struct { - federation string - kubeconfigGlobal string - kubeconfigExplicit string - dnsZoneName string - lbIP string - apiserverServiceType v1.ServiceType - advertiseAddress string - serverImage string - etcdImage string - etcdPVCapacity string - etcdPVStorageClass string - etcdPersistence string - expectedErr string - dnsProvider string - dnsProviderConfig string - dryRun string - apiserverArgOverrides string - cmArgOverrides string - apiserverEnableHTTPBasicAuth bool - apiserverEnableTokenAuth bool - isRBACAPIAvailable bool - nodeSelector string - }{ - { - federation: "union", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - dnsZoneName: "example.test.", - lbIP: lbIP, - apiserverServiceType: v1.ServiceTypeLoadBalancer, - serverImage: "example.test/foo:bar", - etcdPVCapacity: "5Gi", - etcdPersistence: "true", - expectedErr: "", - dnsProvider: util.FedDNSProviderCoreDNS, - dnsProviderConfig: "dns-provider.conf", - dryRun: "", - apiserverArgOverrides: "--client-ca-file=override,--log-dir=override", - cmArgOverrides: "--dns-provider=override,--log-dir=override", - nodeSelector: "disk=ssh,role=node", - }, - { - federation: "union", - kubeconfigGlobal: fakeKubeFiles[1], - kubeconfigExplicit: fakeKubeFiles[2], - dnsZoneName: "example.test.", - lbIP: lbIP, - apiserverServiceType: v1.ServiceTypeLoadBalancer, - serverImage: "example.test/foo:bar", - etcdPVCapacity: "", //test for default value of pvc-size - etcdPersistence: "true", - expectedErr: "", - dryRun: "", - }, - { - federation: "union", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - dnsZoneName: "example.test.", - lbIP: lbIP, - apiserverServiceType: v1.ServiceTypeLoadBalancer, - serverImage: "example.test/foo:bar", - etcdPVCapacity: "", - etcdPersistence: "true", - expectedErr: "", - dryRun: "valid-run", - }, - { - federation: "union", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - dnsZoneName: "example.test.", - lbIP: lbIP, - apiserverServiceType: v1.ServiceTypeLoadBalancer, - serverImage: "example.test/foo:bar", - etcdPVCapacity: "5Gi", - etcdPersistence: "false", - expectedErr: "", - dryRun: "", - }, - { - federation: "union", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - dnsZoneName: "example.test.", - apiserverServiceType: v1.ServiceTypeNodePort, - serverImage: "example.test/foo:bar", - etcdPVCapacity: "5Gi", - etcdPersistence: "true", - expectedErr: "", - dryRun: "", - }, - { - federation: "union", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - dnsZoneName: "example.test.", - apiserverServiceType: v1.ServiceTypeNodePort, - advertiseAddress: nodeIP, - serverImage: "example.test/foo:bar", - etcdPVCapacity: "5Gi", - etcdPersistence: "true", - expectedErr: "", - dryRun: "", - }, - { - federation: "union", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - dnsZoneName: "example.test.", - apiserverServiceType: v1.ServiceTypeNodePort, - advertiseAddress: nodeIP, - serverImage: "example.test/foo:bar", - etcdImage: "gcr.io/google_containers/etcd:latest", - etcdPVCapacity: "5Gi", - etcdPVStorageClass: "fast", - etcdPersistence: "true", - expectedErr: "", - dryRun: "", - apiserverEnableHTTPBasicAuth: true, - apiserverEnableTokenAuth: true, - isRBACAPIAvailable: true, - }, - } - - defaultEtcdImage := "gcr.io/google_containers/etcd:3.1.10" - - //TODO: implement a negative case for dry run - - for i, tc := range testCases { - cmdErrMsg = "" - tmpDirPath := "" - buf := bytes.NewBuffer([]byte{}) - - if tc.dnsProvider == "" { - tc.dnsProvider = "google-clouddns" - } - if tc.dnsProviderConfig != "" { - tmpfile, err := ioutil.TempFile("", tc.dnsProviderConfig) - if err != nil { - t.Fatalf("[%d] unexpected error: %v", i, err) - } - tc.dnsProviderConfig = tmpfile.Name() - defer os.Remove(tmpfile.Name()) - } - - // Check pkg/kubectl/cmd/testing/fake (fakeAPIFactory.DiscoveryClient()) for details of tmpDir - // We want an unique discovery cache path for each test run, else the case from previous case would be used - tmpDirPath, err = ioutil.TempDir("", "") - if err != nil { - t.Fatalf("[%d] unexpected error: %v", i, err) - } - defer os.Remove(tmpDirPath) - - // If tc.etcdImage is set, setting the etcd image via the flag will be - // validated. If not set, the default value will be validated. - if tc.etcdImage == "" { - tc.etcdImage = defaultEtcdImage - } - - hostFactory, err := fakeInitHostFactory(tc.apiserverServiceType, tc.federation, util.DefaultFederationSystemNamespace, tc.advertiseAddress, tc.lbIP, tc.dnsZoneName, tc.serverImage, tc.etcdImage, tc.dnsProvider, tc.dnsProviderConfig, tc.etcdPersistence, tc.etcdPVCapacity, tc.etcdPVStorageClass, tc.apiserverArgOverrides, tc.cmArgOverrides, tmpDirPath, tc.apiserverEnableHTTPBasicAuth, tc.apiserverEnableTokenAuth, tc.isRBACAPIAvailable, tc.nodeSelector) - if err != nil { - t.Fatalf("[%d] unexpected error: %v", i, err) - } - - adminConfig, err := kubefedtesting.NewFakeAdminConfig(hostFactory, nil, "", tc.kubeconfigGlobal) - if err != nil { - t.Fatalf("[%d] unexpected error: %v", i, err) - } - - cmd := NewCmdInit(buf, adminConfig, "serverImage", defaultEtcdImage) - - cmd.Flags().Set("kubeconfig", tc.kubeconfigExplicit) - cmd.Flags().Set("host-cluster-context", "substrate") - cmd.Flags().Set("dns-zone-name", tc.dnsZoneName) - cmd.Flags().Set("image", tc.serverImage) - cmd.Flags().Set("etcd-image", tc.etcdImage) - cmd.Flags().Set("dns-provider", tc.dnsProvider) - cmd.Flags().Set("apiserver-arg-overrides", tc.apiserverArgOverrides) - cmd.Flags().Set("controllermanager-arg-overrides", tc.cmArgOverrides) - - if tc.dnsProviderConfig != "" { - cmd.Flags().Set("dns-provider-config", tc.dnsProviderConfig) - } - if tc.etcdPVCapacity != "" { - cmd.Flags().Set("etcd-pv-capacity", tc.etcdPVCapacity) - } - if tc.etcdPVStorageClass != "" { - cmd.Flags().Set("etcd-pv-storage-class", tc.etcdPVStorageClass) - } - if tc.etcdPersistence != "true" { - cmd.Flags().Set("etcd-persistent-storage", tc.etcdPersistence) - } - if tc.apiserverServiceType != v1.ServiceTypeLoadBalancer { - cmd.Flags().Set(apiserverServiceTypeFlag, string(tc.apiserverServiceType)) - cmd.Flags().Set(apiserverAdvertiseAddressFlag, tc.advertiseAddress) - } - if tc.dryRun == "valid-run" { - cmd.Flags().Set("dry-run", "true") - } - if tc.apiserverEnableHTTPBasicAuth { - cmd.Flags().Set("apiserver-enable-basic-auth", "true") - } - if tc.apiserverEnableTokenAuth { - cmd.Flags().Set("apiserver-enable-token-auth", "true") - } - if tc.nodeSelector != "" { - cmd.Flags().Set("node-selector", tc.nodeSelector) - } - - cmd.Run(cmd, []string{tc.federation}) - - if tc.expectedErr == "" { - // uses the name from the federation, not the response - // Actual data passed are tested in the fake secret and cluster - // REST clients. - endpoint := getEndpoint(tc.apiserverServiceType, tc.lbIP, tc.advertiseAddress) - wantedSuffix := fmt.Sprintf("Federation API server is running at: %s\n", endpoint) - if tc.dryRun != "" { - wantedSuffix = fmt.Sprintf("Federation control plane runs (dry run)\n") - } - - if got := buf.String(); !strings.HasSuffix(got, wantedSuffix) { - t.Errorf("[%d] unexpected output: got: %s, wanted suffix: %s", i, got, wantedSuffix) - if cmdErrMsg != "" { - t.Errorf("[%d] unexpected error message: %s", i, cmdErrMsg) - } - } - } else { - if cmdErrMsg != tc.expectedErr { - t.Errorf("[%d] expected error: %s, got: %s, output: %s", i, tc.expectedErr, cmdErrMsg, buf.String()) - } - return - } - - testKubeconfigUpdate(t, tc.apiserverServiceType, tc.federation, tc.advertiseAddress, tc.lbIP, tc.kubeconfigGlobal, tc.kubeconfigExplicit, tc.apiserverEnableHTTPBasicAuth, tc.apiserverEnableTokenAuth) - } -} - -func TestMarshallAndMergeOverrides(t *testing.T) { - testCases := []struct { - overrideParams string - expectedSet sets.String - expectedErr string - }{ - { - overrideParams: "valid-format-param1=override1,valid-format-param2=override2", - expectedSet: sets.NewString("arg2=val2", "arg1=val1", "valid-format-param1=override1", "valid-format-param2=override2"), - expectedErr: "", - }, - { - overrideParams: "valid-format-param1=override1,arg1=override1", - expectedSet: sets.NewString("arg2=val2", "arg1=override1", "valid-format-param1=override1"), - expectedErr: "", - }, - { - overrideParams: "zero-value-arg=", - expectedSet: sets.NewString("arg2=val2", "arg1=val1", "zero-value-arg="), - expectedErr: "", - }, - { - overrideParams: "wrong-format-arg", - expectedErr: "wrong format for override arg: wrong-format-arg", - }, - { - // TODO: Multiple arg values separated by , are not supported yet - overrideParams: "multiple-equalto-char=first-key=1", - expectedSet: sets.NewString("arg2=val2", "arg1=val1", "multiple-equalto-char=first-key=1"), - expectedErr: "", - }, - { - overrideParams: "=wrong-format-only-value", - expectedErr: "wrong format for override arg: =wrong-format-only-value, arg name cannot be empty", - }, - } - - for i, tc := range testCases { - args, err := marshallOverrides(tc.overrideParams) - if tc.expectedErr == "" { - origArgs := map[string]string{ - "arg1": "val1", - "arg2": "val2", - } - merged := argMapsToArgStrings(origArgs, args) - - got := sets.NewString(merged...) - want := tc.expectedSet - - if !got.Equal(want) { - t.Errorf("[%d] unexpected output: got: %v, want: %v", i, got, want) - } - } else { - if err.Error() != tc.expectedErr { - t.Errorf("[%d] unexpected error output: got: %s, want: %s", i, err.Error(), tc.expectedErr) - } - } - } -} - -// TestCertsTLS tests TLS handshake with client authentication for any server -// name. There is a separate test below to test the certificate generation -// end-to-end over HTTPS. -// TODO(madhusudancs): Consider using a deterministic random number generator -// for generating certificates in tests. -func TestCertsTLS(t *testing.T) { - params := []certParams{ - { - cAddr: "10.1.2.3", - ips: []string{"10.1.2.3", "10.2.3.4"}, - hostnames: []string{"federation.test", "federation2.test"}, - }, - { - cAddr: "10.10.20.30", - ips: []string{"10.20.30.40", "10.64.128.4"}, - hostnames: []string{"tls.federation.test"}, - }, - } - - tlsCfgs, err := tlsConfigs(params) - if err != nil { - t.Errorf("failed to generate tls configs: %v", err) - // No point in proceeding further - return - } - - testCases := []struct { - serverName string - sCfg *tls.Config - cCfg *tls.Config - failType string - }{ - { - serverName: "10.1.2.3", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[0].client, - }, - { - serverName: "10.2.3.4", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[0].client, - }, - { - serverName: "federation.test", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[0].client, - }, - { - serverName: "federation2.test", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[0].client, - }, - { - serverName: "10.20.30.40", - sCfg: tlsCfgs[1].server, - cCfg: tlsCfgs[1].client, - }, - { - serverName: "tls.federation.test", - sCfg: tlsCfgs[1].server, - cCfg: tlsCfgs[1].client, - }, - { - serverName: "10.100.200.50", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[0].client, - failType: "HostnameError", - }, - { - serverName: "noexist.test", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[0].client, - failType: "HostnameError", - }, - { - serverName: "10.64.128.4", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[0].client, - failType: "HostnameError", - }, - { - serverName: "tls.federation.test", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[0].client, - failType: "HostnameError", - }, - { - serverName: "10.1.2.3", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[1].client, - failType: "UnknownAuthorityError", - }, - { - serverName: "federation2.test", - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[1].client, - failType: "UnknownAuthorityError", - }, - { - serverName: "10.1.2.3", - sCfg: tlsCfgs[1].server, - cCfg: tlsCfgs[0].client, - failType: "HostnameError", - }, - { - serverName: "federation2.test", - sCfg: tlsCfgs[1].server, - cCfg: tlsCfgs[0].client, - failType: "HostnameError", - }, - } - - for i, tc := range testCases { - // Make a copy of the client config before modifying it. - // We can't do a regular pointer deref shallow copy because - // tls.Config contains an unexported sync.Once field which - // must not be copied. This was pointed out by go vet. - cCfg := copyTLSConfig(tc.cCfg) - cCfg.ServerName = tc.serverName - cCfg.BuildNameToCertificate() - - err := tlsHandshake(t, tc.sCfg, cCfg) - if len(tc.failType) > 0 { - switch tc.failType { - case "HostnameError": - if _, ok := err.(x509.HostnameError); !ok { - t.Errorf("[%d] unexpected error: want x509.HostnameError, got: %T", i, err) - } - case "UnknownAuthorityError": - if _, ok := err.(x509.UnknownAuthorityError); !ok { - t.Errorf("[%d] unexpected error: want x509.UnknownAuthorityError, got: %T", i, err) - } - default: - t.Errorf("cannot handle error type: %s", tc.failType) - - } - } else if err != nil { - t.Errorf("[%d] unexpected error: %v", i, err) - } - } -} - -// TestCertsHTTPS cannot test client authentication for non-localhost server -// names, but it tests TLS handshake end-to-end over HTTPS. -func TestCertsHTTPS(t *testing.T) { - params := []certParams{ - { - // Unfortunately, due to the limitation in the way Go - // net/http/httptest package sets up the test HTTPS/TLS server, - // 127.0.0.1 is the only accepted server address. So, we need to - // generate certificates for this address. - cAddr: "127.0.0.1", - ips: []string{"127.0.0.1"}, - hostnames: []string{}, - }, - { - // Unfortunately, due to the limitation in the way Go - // net/http/httptest package sets up the test HTTPS/TLS server, - // 127.0.0.1 is the only accepted server address. So, we need to - // generate certificates for this address. - cAddr: "localhost", - ips: []string{"127.0.0.1"}, - hostnames: []string{"localhost"}, - }, - } - - tlsCfgs, err := tlsConfigs(params) - if err != nil { - t.Errorf("failed to generate tls configs: %v", err) - // No point in proceeding further - return - } - - testCases := []struct { - sCfg *tls.Config - cCfg *tls.Config - fail bool - }{ - { - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[0].client, - fail: false, - }, - { - sCfg: tlsCfgs[0].server, - cCfg: tlsCfgs[1].client, - fail: true, - }, - { - sCfg: tlsCfgs[1].server, - cCfg: tlsCfgs[0].client, - fail: true, - }, - } - - for i, tc := range testCases { - // Make a copy of the client config before modifying it. - // We can't do a regular pointer deref shallow copy because - // tls.Config contains an unexported sync.Once field which - // must not be copied. This was pointed out by go vet. - cCfg := copyTLSConfig(tc.cCfg) - cCfg.BuildNameToCertificate() - - s, err := fakeHTTPSServer(tc.sCfg) - if err != nil { - t.Errorf("[%d] unexpected error starting TLS server: %v", i, err) - // No point in proceeding - continue - } - defer s.Close() - - tr := &http.Transport{ - TLSClientConfig: cCfg, - } - client := &http.Client{Transport: tr} - resp, err := client.Get(s.URL) - if tc.fail { - _, ok := err.(*url.Error) - if !ok || !strings.HasSuffix(err.Error(), "x509: certificate signed by unknown authority") { - t.Errorf("[%d] unexpected error: want x509.HostnameError, got: %T", i, err) - } - // We are done for this test. - continue - } else if err != nil { - t.Errorf("[%d] unexpected error while sending GET request to the server: %T", i, err) - // No point in proceeding - continue - } - defer resp.Body.Close() - - got, err := ioutil.ReadAll(resp.Body) - if err != nil { - t.Errorf("[%d] unexpected error reading server response: %v", i, err) - } else if string(got) != helloMsg { - t.Errorf("[%d] want %q, got %q", i, helloMsg, got) - } - } -} - -func fakeInitHostFactory(apiserverServiceType v1.ServiceType, federationName, namespaceName, advertiseAddress, lbIp, dnsZoneName, serverImage, etcdImage, dnsProvider, dnsProviderConfig, etcdPersistence, etcdPVCapacity, etcdPVStorageClass, apiserverOverrideArg, cmOverrideArg, tmpDirPath string, apiserverEnableHTTPBasicAuth, apiserverEnableTokenAuth, isRBACAPIAvailable bool, nodeSelectorString string) (cmdutil.Factory, error) { - svcName := federationName + "-apiserver" - svcUrlPrefix := "/api/v1/namespaces/federation-system/services" - credSecretName := svcName + "-credentials" - cmKubeconfigSecretName := federationName + "-controller-manager-kubeconfig" - pvCap := "10Gi" - if etcdPVCapacity != "" { - pvCap = etcdPVCapacity - } - - capacity, err := resource.ParseQuantity(pvCap) - if err != nil { - return nil, err - } - pvcName := svcName + "-etcd-claim" - replicas := int32(1) - - namespace := v1.Namespace{ - TypeMeta: metav1.TypeMeta{ - Kind: "Namespace", - APIVersion: testapi.Default.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: namespaceName, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - } - - svc := v1.Service{ - TypeMeta: metav1.TypeMeta{ - Kind: "Service", - APIVersion: testapi.Default.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Namespace: namespaceName, - Name: svcName, - Labels: componentLabel, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - Spec: v1.ServiceSpec{ - Type: apiserverServiceType, - Selector: apiserverSvcSelector, - Ports: []v1.ServicePort{ - { - Name: "https", - Protocol: "TCP", - Port: 443, - TargetPort: intstr.FromString(apiServerSecurePortName), - }, - }, - }, - } - - svcWithLB := svc - svcWithLB.Status = v1.ServiceStatus{ - LoadBalancer: v1.LoadBalancerStatus{ - Ingress: []v1.LoadBalancerIngress{ - { - IP: lbIp, - }, - }, - }, - } - - credSecret := v1.Secret{ - TypeMeta: metav1.TypeMeta{ - Kind: "Secret", - APIVersion: testapi.Default.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: credSecretName, - Namespace: namespaceName, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - Data: nil, - } - - cmKubeconfigSecret := v1.Secret{ - TypeMeta: metav1.TypeMeta{ - Kind: "Secret", - APIVersion: testapi.Default.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: cmKubeconfigSecretName, - Namespace: namespaceName, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - Data: nil, - } - - cmDNSProviderSecret := v1.Secret{ - TypeMeta: metav1.TypeMeta{ - Kind: "Secret", - APIVersion: testapi.Default.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: dnsProviderSecretName, - Namespace: namespaceName, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - Data: nil, - } - - var storageClassName *string - if len(etcdPVStorageClass) > 0 { - storageClassName = &etcdPVStorageClass - } - - pvc := v1.PersistentVolumeClaim{ - TypeMeta: metav1.TypeMeta{ - Kind: "PersistentVolumeClaim", - APIVersion: testapi.Default.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: pvcName, - Namespace: namespaceName, - Labels: componentLabel, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - Spec: v1.PersistentVolumeClaimSpec{ - AccessModes: []v1.PersistentVolumeAccessMode{ - v1.ReadWriteOnce, - }, - Resources: v1.ResourceRequirements{ - Requests: v1.ResourceList{ - v1.ResourceStorage: capacity, - }, - }, - StorageClassName: storageClassName, - }, - } - - sa := v1.ServiceAccount{ - TypeMeta: metav1.TypeMeta{ - Kind: "ServiceAccount", - APIVersion: testapi.Default.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "federation-controller-manager", - Namespace: namespaceName, - Labels: componentLabel, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - } - - role := rbacv1.Role{ - TypeMeta: metav1.TypeMeta{ - Kind: "Role", - APIVersion: rbacv1.SchemeGroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "federation-system:federation-controller-manager", - Namespace: namespaceName, - Labels: componentLabel, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - Rules: []rbacv1.PolicyRule{ - { - Verbs: []string{"get", "list", "watch"}, - APIGroups: []string{""}, - Resources: []string{"secrets"}, - }, - }, - } - - rolebinding := rbacv1.RoleBinding{ - TypeMeta: metav1.TypeMeta{ - Kind: "RoleBinding", - APIVersion: rbacv1.SchemeGroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "federation-system:federation-controller-manager", - Namespace: namespaceName, - Labels: componentLabel, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - }, - }, - Subjects: []rbacv1.Subject{ - { - Kind: "ServiceAccount", - APIGroup: "", - Name: "federation-controller-manager", - Namespace: "federation-system", - }, - }, - RoleRef: rbacv1.RoleRef{ - APIGroup: "rbac.authorization.k8s.io", - Kind: "Role", - Name: "federation-system:federation-controller-manager", - }, - } - - node := v1.Node{ - TypeMeta: metav1.TypeMeta{ - Kind: "Node", - APIVersion: testapi.Extensions.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: nodeIP, - }, - Status: v1.NodeStatus{ - Addresses: []v1.NodeAddress{ - { - Type: v1.NodeExternalIP, - Address: nodeIP, - }, - }, - }, - } - nodeList := v1.NodeList{} - nodeList.Items = append(nodeList.Items, node) - - address := lbIp - if apiserverServiceType == v1.ServiceTypeNodePort { - if advertiseAddress != "" { - address = advertiseAddress - } else { - address = nodeIP - } - } - - apiserverCommand := []string{ - "/hyperkube", - "federation-apiserver", - } - apiserverArgs := []string{ - "--bind-address=0.0.0.0", - "--etcd-servers=http://localhost:2379", - fmt.Sprintf("--secure-port=%d", apiServerSecurePort), - "--tls-cert-file=/etc/federation/apiserver/server.crt", - "--tls-private-key-file=/etc/federation/apiserver/server.key", - "--admission-control=NamespaceLifecycle", - fmt.Sprintf("--advertise-address=%s", address), - } - - if apiserverOverrideArg != "" { - apiserverArgs = append(apiserverArgs, "--client-ca-file=override") - apiserverArgs = append(apiserverArgs, "--log-dir=override") - - } else { - apiserverArgs = append(apiserverArgs, "--client-ca-file=/etc/federation/apiserver/ca.crt") - } - if apiserverEnableHTTPBasicAuth { - apiserverArgs = append(apiserverArgs, "--basic-auth-file=/etc/federation/apiserver/basicauth.csv") - } - if apiserverEnableTokenAuth { - apiserverArgs = append(apiserverArgs, "--token-auth-file=/etc/federation/apiserver/token.csv") - } - sort.Strings(apiserverArgs) - apiserverCommand = append(apiserverCommand, apiserverArgs...) - - nodeSelector, err := marshallOverrides(nodeSelectorString) - if err != nil { - return nil, fmt.Errorf("error marshalling --node-selector: %v", err) - } - - apiserver := &v1beta1.Deployment{ - TypeMeta: metav1.TypeMeta{ - Kind: "Deployment", - APIVersion: testapi.Extensions.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: svcName, - Namespace: namespaceName, - Labels: componentLabel, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - Spec: v1beta1.DeploymentSpec{ - Replicas: &replicas, - Selector: nil, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Name: svcName, - Labels: apiserverPodLabels, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "apiserver", - Image: serverImage, - Command: apiserverCommand, - Ports: []v1.ContainerPort{ - { - Name: apiServerSecurePortName, - ContainerPort: apiServerSecurePort, - }, - { - Name: "local", - ContainerPort: 8080, - }, - }, - VolumeMounts: []v1.VolumeMount{ - { - Name: credSecretName, - MountPath: "/etc/federation/apiserver", - ReadOnly: true, - }, - }, - }, - { - Name: "etcd", - Image: etcdImage, - Command: []string{ - "/usr/local/bin/etcd", - "--data-dir", - "/var/etcd/data", - }, - }, - }, - NodeSelector: nodeSelector, - Volumes: []v1.Volume{ - { - Name: credSecretName, - VolumeSource: v1.VolumeSource{ - Secret: &v1.SecretVolumeSource{ - SecretName: credSecretName, - }, - }, - }, - }, - }, - }, - }, - } - if etcdPersistence == "true" { - dataVolumeName := "etcddata" - etcdVolume := v1.Volume{ - Name: dataVolumeName, - VolumeSource: v1.VolumeSource{ - PersistentVolumeClaim: &v1.PersistentVolumeClaimVolumeSource{ - ClaimName: pvcName, - }, - }, - } - etcdVolumeMount := v1.VolumeMount{ - Name: dataVolumeName, - MountPath: "/var/etcd", - } - - apiserver.Spec.Template.Spec.Volumes = append(apiserver.Spec.Template.Spec.Volumes, etcdVolume) - for i, container := range apiserver.Spec.Template.Spec.Containers { - if container.Name == "etcd" { - apiserver.Spec.Template.Spec.Containers[i].VolumeMounts = append(apiserver.Spec.Template.Spec.Containers[i].VolumeMounts, etcdVolumeMount) - } - } - } - - cmCommand := []string{ - "/hyperkube", - "federation-controller-manager", - } - - cmArgs := []string{ - "--kubeconfig=/etc/federation/controller-manager/kubeconfig", - fmt.Sprintf("--federation-name=%s", federationName), - fmt.Sprintf("--zone-name=%s", dnsZoneName), - fmt.Sprintf("--master=https://%s", svcName), - } - - if cmOverrideArg != "" { - cmArgs = append(cmArgs, "--dns-provider=override") - cmArgs = append(cmArgs, "--log-dir=override") - } else { - cmArgs = append(cmArgs, fmt.Sprintf("--dns-provider=%s", dnsProvider)) - } - - sort.Strings(cmArgs) - cmCommand = append(cmCommand, cmArgs...) - - cmName := federationName + "-controller-manager" - cm := &v1beta1.Deployment{ - TypeMeta: metav1.TypeMeta{ - Kind: "Deployment", - APIVersion: testapi.Extensions.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: cmName, - Namespace: namespaceName, - Labels: componentLabel, - Annotations: map[string]string{ - util.FedDomainMapKey: fmt.Sprintf("%s=%s", federationName, strings.TrimRight(dnsZoneName, ".")), - federation.FederationNameAnnotation: federationName, - }, - }, - Spec: v1beta1.DeploymentSpec{ - Replicas: &replicas, - Selector: nil, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Name: cmName, - Labels: controllerManagerPodLabels, - Annotations: map[string]string{federation.FederationNameAnnotation: federationName}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "controller-manager", - Image: serverImage, - Command: cmCommand, - VolumeMounts: []v1.VolumeMount{ - { - Name: cmKubeconfigSecretName, - MountPath: "/etc/federation/controller-manager", - ReadOnly: true, - }, - }, - Env: []v1.EnvVar{ - { - Name: "POD_NAMESPACE", - ValueFrom: &v1.EnvVarSource{ - FieldRef: &v1.ObjectFieldSelector{ - FieldPath: "metadata.namespace", - }, - }, - }, - }, - }, - }, - NodeSelector: nodeSelector, - Volumes: []v1.Volume{ - { - Name: cmKubeconfigSecretName, - VolumeSource: v1.VolumeSource{ - Secret: &v1.SecretVolumeSource{ - SecretName: cmKubeconfigSecretName, - }, - }, - }, - }, - }, - }, - }, - } - if isRBACAPIAvailable { - cm.Spec.Template.Spec.ServiceAccountName = "federation-controller-manager" - cm.Spec.Template.Spec.DeprecatedServiceAccount = "federation-controller-manager" - } - if dnsProviderConfig != "" { - cm = addDNSProviderConfigTest(cm, cmDNSProviderSecret.Name) - if dnsProvider == util.FedDNSProviderCoreDNS { - cm, err = addCoreDNSServerAnnotationTest(cm, dnsZoneName, dnsProviderConfig) - if err != nil { - return nil, err - } - } - } - - podList := v1.PodList{} - apiServerPod := v1.Pod{ - TypeMeta: metav1.TypeMeta{ - Kind: "Pod", - APIVersion: testapi.Extensions.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: svcName, - Namespace: namespaceName, - }, - Status: v1.PodStatus{ - Phase: "Running", - }, - } - - cmPod := v1.Pod{ - TypeMeta: metav1.TypeMeta{ - Kind: "Pod", - APIVersion: testapi.Extensions.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: cmName, - Namespace: namespaceName, - }, - Status: v1.PodStatus{ - Phase: "Running", - }, - } - - podList.Items = append(podList.Items, apiServerPod) - podList.Items = append(podList.Items, cmPod) - - apiGroupList := &metav1.APIGroupList{} - testGroup := metav1.APIGroup{ - Name: testAPIGroup, - Versions: []metav1.GroupVersionForDiscovery{ - { - GroupVersion: testAPIGroup + "/" + testAPIVersion, - Version: testAPIVersion, - }, - }, - } - rbacGroup := metav1.APIGroup{ - Name: rbac.GroupName, - Versions: []metav1.GroupVersionForDiscovery{ - { - GroupVersion: rbac.GroupName + "/v1", - Version: "v1", - }, - }, - } - - apiGroupList.Groups = append(apiGroupList.Groups, testGroup) - if isRBACAPIAvailable { - apiGroupList.Groups = append(apiGroupList.Groups, rbacGroup) - } - - f, tf, codec, _ := cmdtesting.NewAPIFactory() - extCodec := testapi.Extensions.Codec() - rbacCodec := testapi.Rbac.Codec() - ns := dynamic.ContentConfig().NegotiatedSerializer - tf.ClientConfig = kubefedtesting.DefaultClientConfig() - tf.TmpDir = tmpDirPath - tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: ns, - Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { - switch p, m := req.URL.Path, req.Method; { - case p == "/healthz": - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: ioutil.NopCloser(bytes.NewReader([]byte("ok")))}, nil - case p == "/api" && m == http.MethodGet: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &metav1.APIVersions{})}, nil - case p == "/apis" && m == http.MethodGet: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, apiGroupList)}, nil - case p == "/api/v1/namespaces" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got v1.Namespace - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - if !apiequality.Semantic.DeepEqual(got, namespace) { - return nil, fmt.Errorf("unexpected namespace object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, namespace)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &namespace)}, nil - case p == svcUrlPrefix && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got v1.Service - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - if !apiequality.Semantic.DeepEqual(got, svc) { - return nil, fmt.Errorf("unexpected service object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, svc)) - } - if apiserverServiceType == v1.ServiceTypeNodePort { - svc.Spec.Type = v1.ServiceTypeNodePort - svc.Spec.Ports[0].NodePort = nodePort - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &svc)}, nil - case strings.HasPrefix(p, svcUrlPrefix) && m == http.MethodGet: - got := strings.TrimPrefix(p, svcUrlPrefix+"/") - if got != svcName { - return nil, errors.NewNotFound(api.Resource("services"), got) - } - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &svcWithLB)}, nil - case p == "/api/v1/namespaces/federation-system/secrets" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got, want v1.Secret - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - - switch got.Name { - case credSecretName: - want = credSecret - if apiserverEnableHTTPBasicAuth { - if got.Data["basicauth.csv"] == nil { - return nil, fmt.Errorf("expected secret data key 'basicauth.csv', but got nil") - } - } else { - if got.Data["basicauth.csv"] != nil { - return nil, fmt.Errorf("unexpected secret data key 'basicauth.csv'") - } - } - if apiserverEnableTokenAuth { - if got.Data["token.csv"] == nil { - return nil, fmt.Errorf("expected secret data key 'token.csv', but got nil") - } - } else { - if got.Data["token.csv"] != nil { - return nil, fmt.Errorf("unexpected secret data key 'token.csv'") - } - } - case cmKubeconfigSecretName: - want = cmKubeconfigSecret - case dnsProviderSecretName: - want = cmDNSProviderSecret - } - got.Data = nil - if !apiequality.Semantic.DeepEqual(got, want) { - return nil, fmt.Errorf("unexpected secret object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, want)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &want)}, nil - case p == "/api/v1/namespaces/federation-system/persistentvolumeclaims" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got v1.PersistentVolumeClaim - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - if !apiequality.Semantic.DeepEqual(got, pvc) { - return nil, fmt.Errorf("unexpected PVC object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, pvc)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &pvc)}, nil - case p == "/apis/extensions/v1beta1/namespaces/federation-system/deployments" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got, want v1beta1.Deployment - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - switch got.Name { - case svcName: - want = *apiserver - case cmName: - want = *cm - } - //want = *cm - if !apiequality.Semantic.DeepEqual(got, want) { - return nil, fmt.Errorf("unexpected deployment object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, want)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(extCodec, &want)}, nil - case p == "/api/v1/namespaces/federation-system/pods" && m == http.MethodGet: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &podList)}, nil - case p == "/api/v1/namespaces/federation-system/serviceaccounts" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got v1.ServiceAccount - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - if !helper.Semantic.DeepEqual(got, sa) { - return nil, fmt.Errorf("unexpected service account object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, sa)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &sa)}, nil - case p == "/apis/rbac.authorization.k8s.io/v1/namespaces/federation-system/roles" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got rbacv1.Role - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - if !helper.Semantic.DeepEqual(got, role) { - return nil, fmt.Errorf("unexpected role object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, role)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(rbacCodec, &role)}, nil - case p == "/apis/rbac.authorization.k8s.io/v1/namespaces/federation-system/rolebindings" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got rbacv1.RoleBinding - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - if !helper.Semantic.DeepEqual(got, rolebinding) { - return nil, fmt.Errorf("unexpected rolebinding object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, rolebinding)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(rbacCodec, &rolebinding)}, nil - case p == "/api/v1/nodes" && m == http.MethodGet: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &nodeList)}, nil - default: - return nil, fmt.Errorf("unexpected request: %#v\n%#v", req.URL, req) - } - }), - } - return f, nil -} - -func testKubeconfigUpdate(t *testing.T, apiserverServiceType v1.ServiceType, federationName, advertiseAddress, lbIP, kubeconfigGlobal, kubeconfigExplicit string, apiserverEnableHTTPBasicAuth, apiserverEnableTokenAuth bool) { - filename := kubeconfigGlobal - if kubeconfigExplicit != "" { - filename = kubeconfigExplicit - } - config, err := clientcmd.LoadFromFile(filename) - if err != nil { - t.Errorf("Failed to open kubeconfig file: %v", err) - return - } - - cluster, ok := config.Clusters[federationName] - if !ok { - t.Errorf("No cluster info for %q", federationName) - return - } - endpoint := getEndpoint(apiserverServiceType, lbIP, advertiseAddress) - if !strings.HasSuffix(endpoint, "https://") { - endpoint = fmt.Sprintf("https://%s", endpoint) - } - if cluster.Server != endpoint { - t.Errorf("Want federation API server endpoint %q, got %q", endpoint, cluster.Server) - } - - authInfo, ok := config.AuthInfos[federationName] - if !ok { - t.Errorf("No credentials for %q", federationName) - return - } - if len(authInfo.ClientCertificateData) == 0 { - t.Errorf("Expected client certificate to be non-empty") - return - } - if len(authInfo.ClientKeyData) == 0 { - t.Errorf("Expected client key to be non-empty") - return - } - if !apiserverEnableTokenAuth && len(authInfo.Token) != 0 { - t.Errorf("Expected token to be empty: got: %s", authInfo.Token) - } - if apiserverEnableTokenAuth && len(authInfo.Token) == 0 { - t.Errorf("Expected token to be non-empty") - } - - httpBasicAuthInfo, ok := config.AuthInfos[fmt.Sprintf("%s-basic-auth", federationName)] - if !apiserverEnableHTTPBasicAuth && ok { - t.Errorf("Expected basic auth AuthInfo entry not to exist: got %v", httpBasicAuthInfo) - return - } - - if apiserverEnableHTTPBasicAuth { - if !ok { - t.Errorf("Expected basic auth AuthInfo entry to exist") - return - } - if httpBasicAuthInfo.Username != "admin" { - t.Errorf("Unexpected username in basic auth AuthInfo entry: got %s, want admin", httpBasicAuthInfo.Username) - } - if len(httpBasicAuthInfo.Password) == 0 { - t.Errorf("Expected basic auth AuthInfo entry to contain password") - } - } - - context, ok := config.Contexts[federationName] - if !ok { - t.Errorf("No context for %q", federationName) - return - } - if context.Cluster != federationName { - t.Errorf("Want context cluster name: %q, got: %q", federationName, context.Cluster) - } - if context.AuthInfo != federationName { - t.Errorf("Want context auth info: %q, got: %q", federationName, context.AuthInfo) - } -} - -type clientServerTLSConfigs struct { - server *tls.Config - client *tls.Config -} - -type certParams struct { - cAddr string - ips []string - hostnames []string -} - -func tlsHandshake(t *testing.T, sCfg, cCfg *tls.Config) error { - // Tried to use net.Pipe() instead of TCP. But the connections returned by - // net.Pipe() do a fully-synchronous reads and writes on both the ends. - // So if a TLS handshake fails, they can't return the error until the - // other side reads the message which it did not expect. Since the other - // side does not read the message it did not expect, the server and - // clients hang. Since TCP is non-blocking we use that as transport - // instead. One could have as well used a Unix Domain Socket, but TCP is - // more portable. - s, err := tls.Listen("tcp", "", sCfg) - if err != nil { - return fmt.Errorf("failed to create a test TLS server: %v", err) - } - defer s.Close() - - errCh := make(chan error) - go func() { - for { - conn, err := s.Accept() - if err != nil { - errCh <- fmt.Errorf("failed to accept a TLS connection: %v", err) - return - } - gotByte := make([]byte, len(helloMsg)) - _, err = conn.Read(gotByte) - if err != nil && err != io.EOF { - errCh <- fmt.Errorf("failed to read input: %v", err) - } else if got := string(gotByte); got != helloMsg { - errCh <- fmt.Errorf("got %q, want %q", got, helloMsg) - } - errCh <- nil - return - } - }() - - // workaround [::] not working in ipv4 only systems (https://github.com/golang/go/issues/18806) - // TODO: remove with Golang 1.9 with https://go-review.googlesource.com/c/45088/ - addr := strings.TrimPrefix(s.Addr().String(), "[::]") - - c, err := tls.Dial("tcp", addr, cCfg) - if err != nil { - // Intentionally not serializing the error received because we want to - // test for the failure case in the caller test function. - return err - } - defer c.Close() - if _, err := c.Write([]byte(helloMsg)); err != nil { - return fmt.Errorf("failed to write to server: %v", err) - } - - return <-errCh -} - -func fakeHTTPSServer(sCfg *tls.Config) (*httptest.Server, error) { - s := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, helloMsg) - })) - - s.TLS.Certificates = sCfg.Certificates - s.TLS.RootCAs = sCfg.RootCAs - s.TLS.ClientAuth = sCfg.ClientAuth - s.TLS.ClientCAs = sCfg.ClientCAs - s.TLS.InsecureSkipVerify = sCfg.InsecureSkipVerify - return s, nil -} - -func tlsConfigs(params []certParams) ([]clientServerTLSConfigs, error) { - tlsCfgs := []clientServerTLSConfigs{} - for i, p := range params { - sCfg, cCfg, err := genServerClientTLSConfigs(testNamespace, p.cAddr, testSvcName, HostClusterLocalDNSZoneName, p.ips, p.hostnames) - if err != nil { - return nil, fmt.Errorf("[%d] failed to generate tls configs: %v", i, err) - } - tlsCfgs = append(tlsCfgs, clientServerTLSConfigs{sCfg, cCfg}) - } - return tlsCfgs, nil -} - -func genServerClientTLSConfigs(namespace, name, svcName, localDNSZoneName string, ips, hostnames []string) (*tls.Config, *tls.Config, error) { - entKeyPairs, err := genCerts(namespace, name, svcName, localDNSZoneName, ips, hostnames) - if err != nil { - return nil, nil, fmt.Errorf("unexpected error generating certs: %v", err) - } - - roots := x509.NewCertPool() - roots.AddCert(entKeyPairs.ca.Cert) - - serverCert := tls.Certificate{ - Certificate: [][]byte{ - entKeyPairs.server.Cert.Raw, - }, - PrivateKey: entKeyPairs.server.Key, - } - - cmCert := tls.Certificate{ - Certificate: [][]byte{ - entKeyPairs.controllerManager.Cert.Raw, - }, - PrivateKey: entKeyPairs.controllerManager.Key, - } - - sCfg := &tls.Config{ - Certificates: []tls.Certificate{serverCert}, - RootCAs: roots, - ClientAuth: tls.RequireAndVerifyClientCert, - ClientCAs: roots, - InsecureSkipVerify: false, - } - - cCfg := &tls.Config{ - Certificates: []tls.Certificate{cmCert}, - RootCAs: roots, - } - - return sCfg, cCfg, nil -} - -func copyTLSConfig(cfg *tls.Config) *tls.Config { - // We are copying only the required fields. - return &tls.Config{ - Certificates: cfg.Certificates, - RootCAs: cfg.RootCAs, - ClientAuth: cfg.ClientAuth, - ClientCAs: cfg.ClientCAs, - InsecureSkipVerify: cfg.InsecureSkipVerify, - } -} - -func getEndpoint(apiserverServiceType v1.ServiceType, lbIP, advertiseAddress string) string { - endpoint := lbIP - if apiserverServiceType == v1.ServiceTypeNodePort { - if advertiseAddress != "" { - endpoint = advertiseAddress + ":" + strconv.Itoa(nodePort) - } else { - endpoint = nodeIP + ":" + strconv.Itoa(nodePort) - } - } - return endpoint -} - -// TODO: Reuse the function addDNSProviderConfig once that function is converted to use versioned objects. -func addDNSProviderConfigTest(dep *v1beta1.Deployment, secretName string) *v1beta1.Deployment { - const ( - dnsProviderConfigVolume = "config-volume" - dnsProviderConfigMountPath = "/etc/federation/dns-provider" - ) - - // Create a volume from dns-provider secret - volume := v1.Volume{ - Name: dnsProviderConfigVolume, - VolumeSource: v1.VolumeSource{ - Secret: &v1.SecretVolumeSource{ - SecretName: secretName, - }, - }, - } - dep.Spec.Template.Spec.Volumes = append(dep.Spec.Template.Spec.Volumes, volume) - - // Mount dns-provider secret volume to controller-manager container - volumeMount := v1.VolumeMount{ - Name: dnsProviderConfigVolume, - MountPath: dnsProviderConfigMountPath, - ReadOnly: true, - } - dep.Spec.Template.Spec.Containers[0].VolumeMounts = append(dep.Spec.Template.Spec.Containers[0].VolumeMounts, volumeMount) - dep.Spec.Template.Spec.Containers[0].Command = append(dep.Spec.Template.Spec.Containers[0].Command, fmt.Sprintf("--dns-provider-config=%s/%s", dnsProviderConfigMountPath, secretName)) - - return dep -} - -// TODO: Reuse the function addCoreDNSServerAnnotation once that function is converted to use versioned objects. -func addCoreDNSServerAnnotationTest(deployment *v1beta1.Deployment, dnsZoneName, dnsProviderConfig string) (*v1beta1.Deployment, error) { - var cfg coredns.Config - if err := gcfg.ReadFileInto(&cfg, dnsProviderConfig); err != nil { - return nil, err - } - - deployment.Annotations[util.FedDNSZoneName] = dnsZoneName - deployment.Annotations[util.FedNameServer] = cfg.Global.CoreDNSEndpoints - deployment.Annotations[util.FedDNSProvider] = util.FedDNSProviderCoreDNS - return deployment, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/join.go b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/join.go deleted file mode 100644 index 7f59f74fd..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/join.go +++ /dev/null @@ -1,700 +0,0 @@ -/* -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 kubefed - -import ( - "fmt" - "io" - "strings" - "time" - - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apiserver/pkg/storage/names" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/pkg/kubefed/util" - "k8s.io/kubernetes/pkg/api" - extensions "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/apis/rbac" - "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/kubectl" - kubectlcmd "k8s.io/kubernetes/pkg/kubectl/cmd" - "k8s.io/kubernetes/pkg/kubectl/cmd/templates" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - - "github.com/golang/glog" - "github.com/spf13/cobra" - "github.com/spf13/pflag" -) - -const ( - // defaultClusterCIDR is the default CIDR range accepted by the - // joining API server. See `apis/federation.ClusterSpec` for - // details. - // TODO(madhusudancs): Make this value customizable. - defaultClientCIDR = "0.0.0.0/0" - CMNameSuffix = "controller-manager" - serviceAccountSecretTimeout = 30 * time.Second -) - -var ( - join_long = templates.LongDesc(` - Join adds a cluster to a federation. - - Current context is assumed to be a federation API - server. Please use the --context flag otherwise.`) - join_example = templates.Examples(` - # Join a cluster to a federation by specifying the - # cluster name and the context name of the federation - # control plane's host cluster. Cluster name must be - # a valid RFC 1123 subdomain name. Cluster context - # must be specified if the cluster name is different - # than the cluster's context in the local kubeconfig. - kubefed join foo --host-cluster-context=bar`) -) - -type joinFederation struct { - commonOptions util.SubcommandOptions - options joinFederationOptions -} - -type joinFederationOptions struct { - clusterContext string - secretName string - dryRun bool -} - -func (o *joinFederationOptions) Bind(flags *pflag.FlagSet) { - flags.StringVar(&o.clusterContext, "cluster-context", "", "Name of the cluster's context in the local kubeconfig. Defaults to cluster name if unspecified.") - flags.StringVar(&o.secretName, "secret-name", "", "Name of the secret where the cluster's credentials will be stored in the host cluster. This name should be a valid RFC 1035 label. Defaults to cluster name if unspecified.") - flags.MarkDeprecated("secret-name", "kubefed now generates a secret name, and this flag will be removed in a future release.") -} - -// NewCmdJoin defines the `join` command that joins a cluster to a -// federation. -func NewCmdJoin(f cmdutil.Factory, cmdOut io.Writer, config util.AdminConfig) *cobra.Command { - opts := &joinFederation{} - - cmd := &cobra.Command{ - Use: "join CLUSTER_NAME --host-cluster-context=HOST_CONTEXT", - Short: "Join a cluster to a federation", - Long: join_long, - Example: join_example, - Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(opts.Complete(cmd, args, config)) - cmdutil.CheckErr(opts.Run(f, cmdOut, config, cmd)) - }, - } - - cmdutil.AddApplyAnnotationFlags(cmd) - cmdutil.AddValidateFlags(cmd) - cmdutil.AddPrinterFlags(cmd) - cmdutil.AddGeneratorFlags(cmd, cmdutil.ClusterV1Beta1GeneratorName) - - flags := cmd.Flags() - opts.commonOptions.Bind(flags) - opts.options.Bind(flags) - - return cmd -} - -// Complete ensures that options are valid and marshals them if necessary. -func (j *joinFederation) Complete(cmd *cobra.Command, args []string, config util.AdminConfig) error { - err := j.commonOptions.SetName(cmd, args) - if err != nil { - return err - } - - j.options.dryRun = cmdutil.GetDryRunFlag(cmd) - - if j.options.clusterContext == "" { - j.options.clusterContext = j.commonOptions.Name - } - - glog.V(2).Infof("Args and flags: name %s, host: %s, host-system-namespace: %s, kubeconfig: %s, cluster-context: %s, secret-name: %s, dry-run: %s", j.commonOptions.Name, j.commonOptions.Host, j.commonOptions.FederationSystemNamespace, j.commonOptions.Kubeconfig, j.options.clusterContext, j.options.secretName, j.options.dryRun) - - glog.V(2).Infof("Performing preflight checks.") - err = j.performPreflightChecks(config) - if err != nil { - return err - } - return nil -} - -// performPreflightChecks checks that the host and joining clusters are in -// a consistent state. -// TODO: This currently only verifies a few things. Add more checks. -func (j *joinFederation) performPreflightChecks(config util.AdminConfig) error { - joiningClusterFactory := j.joningClusterFactory(config) - - // If RBAC is not available, then skip checking for a service account. - // If RBAC availability cannot be determined, return an error. - rbacVersionedClientset, err := util.GetVersionedClientForRBACOrFail(joiningClusterFactory) - if err != nil { - if _, ok := err.(*util.NoRBACAPIError); ok { - return nil - } - return err - } - - // Make sure there is no existing service account in the joining cluster. - saName := util.ClusterServiceAccountName(j.commonOptions.Name, j.commonOptions.Host) - sa, err := rbacVersionedClientset.Core().ServiceAccounts(j.commonOptions.FederationSystemNamespace).Get(saName, metav1.GetOptions{}) - if errors.IsNotFound(err) { - return nil - } else if err != nil { - return err - } else if sa != nil { - return fmt.Errorf("service account already exists in joining cluster") - } - - return nil -} - -// joiningClusterClientset returns a factory for the joining cluster. -func (j *joinFederation) joningClusterFactory(config util.AdminConfig) cmdutil.Factory { - return config.ClusterFactory(j.options.clusterContext, j.commonOptions.Kubeconfig) -} - -// Run is the implementation of the `join federation` command. -func (j *joinFederation) Run(f cmdutil.Factory, cmdOut io.Writer, config util.AdminConfig, cmd *cobra.Command) error { - clusterContext := j.options.clusterContext - dryRun := j.options.dryRun - federationNamespace := j.commonOptions.FederationSystemNamespace - host := j.commonOptions.Host - kubeconfig := j.commonOptions.Kubeconfig - joiningClusterName := j.commonOptions.Name - secretName := j.options.secretName - if secretName == "" { - secretName = names.SimpleNameGenerator.GenerateName(j.commonOptions.Name + "-") - } - - joiningClusterFactory := j.joningClusterFactory(config) - joiningClusterClientset, err := joiningClusterFactory.ClientSet() - if err != nil { - glog.V(2).Infof("Could not create client for joining cluster: %v", err) - return err - } - - hostFactory := config.ClusterFactory(host, kubeconfig) - hostClientset, err := hostFactory.ClientSet() - if err != nil { - glog.V(2).Infof("Could not create client for host cluster: %v", err) - return err - } - - federationName, err := getFederationName(hostClientset, federationNamespace) - if err != nil { - glog.V(2).Infof("Failed to get the federation name: %v", err) - return err - } - - glog.V(2).Info("Creating federation system namespace in joining cluster") - _, err = createFederationSystemNamespace(joiningClusterClientset, federationNamespace, federationName, joiningClusterName, dryRun) - if err != nil { - glog.V(2).Infof("Error creating federation system namespace in joining cluster: %v", err) - return err - } - glog.V(2).Info("Created federation system namespace in joining cluster") - - po := config.PathOptions() - po.LoadingRules.ExplicitPath = kubeconfig - clientConfig, err := po.GetStartingConfig() - if err != nil { - glog.V(2).Infof("Could not load clientConfig from %s: %v", kubeconfig, err) - return err - } - - serviceAccountName := "" - clusterRoleName := "" - // Check for RBAC in the joining cluster. If it supports RBAC, then create - // a service account and use its credentials; otherwise, use the credentials - // from the local kubeconfig. - glog.V(2).Info("Creating cluster credentials secret") - rbacClientset, err := util.GetVersionedClientForRBACOrFail(joiningClusterFactory) - if err == nil { - if _, serviceAccountName, clusterRoleName, err = createRBACSecret(hostClientset, rbacClientset, federationNamespace, federationName, joiningClusterName, host, clusterContext, secretName, dryRun); err != nil { - glog.V(2).Infof("Could not create cluster credentials secret: %v", err) - return err - } - } else { - if _, ok := err.(*util.NoRBACAPIError); ok { - - // We are not using the `kubectl create secret` machinery through - // `RunCreateSubcommand` as we do to the cluster resource below - // because we have a bunch of requirements that the machinery does - // not satisfy. - // 1. We want to create the secret in a specific namespace, which - // is neither the "default" namespace nor the one specified - // via the `--namespace` flag. - // 2. `SecretGeneratorV1` requires LiteralSources in a string-ified - // form that it parses to generate the secret data key-value - // pairs. We, however, have the key-value pairs ready without a - // need for parsing. - // 3. The result printing mechanism needs to be mostly quiet. We - // don't have to print the created secret in the default case. - // Having said that, secret generation machinery could be altered to - // suit our needs, but it is far less invasive and readable this way. - _, err = createSecret(hostClientset, clientConfig, federationNamespace, federationName, joiningClusterName, clusterContext, secretName, dryRun) - if err != nil { - glog.V(2).Infof("Failed creating the cluster credentials secret: %v", err) - return err - } - } else { - glog.V(2).Infof("Failed to get or verify absence of RBAC client: %v", err) - return err - } - } - glog.V(2).Info("Cluster credentials secret created") - - glog.V(2).Info("Creating a generator for the cluster API object") - generator, err := clusterGenerator(clientConfig, joiningClusterName, clusterContext, secretName, serviceAccountName, clusterRoleName) - if err != nil { - glog.V(2).Infof("Failed to create a generator for the cluster API object: %v", err) - return err - } - glog.V(2).Info("Created a generator for the cluster API object") - - glog.V(2).Info("Running create cluster command against the federation API server") - err = kubectlcmd.RunCreateSubcommand(f, cmd, cmdOut, &kubectlcmd.CreateSubcommandOptions{ - Name: joiningClusterName, - StructuredGenerator: generator, - DryRun: dryRun, - OutputFormat: cmdutil.GetFlagString(cmd, "output"), - }) - if err != nil { - glog.V(2).Infof("Failed running create cluster command against the federation API server: %v", err) - return err - } - glog.V(2).Info("Successfully ran create cluster command against the federation API server") - - // We further need to create a configmap named kube-config in the - // just registered cluster which will be consumed by the kube-dns - // of this cluster. - glog.V(2).Info("Creating configmap in host cluster") - _, err = createConfigMap(hostClientset, config, federationNamespace, federationName, joiningClusterName, clusterContext, kubeconfig, dryRun) - if err != nil { - glog.V(2).Infof("Failed to create configmap in cluster: %v", err) - return err - } - glog.V(2).Info("Created configmap in host cluster") - - return err -} - -// minifyConfig is a wrapper around `clientcmdapi.MinifyConfig()` that -// sets the current context to the given context before calling -// `clientcmdapi.MinifyConfig()`. -func minifyConfig(clientConfig *clientcmdapi.Config, context string) (*clientcmdapi.Config, error) { - // MinifyConfig inline-modifies the passed clientConfig. So we make a - // copy of it before passing the config to it. A shallow copy is - // sufficient because the underlying fields will be reconstructed by - // MinifyConfig anyway. - newClientConfig := *clientConfig - newClientConfig.CurrentContext = context - err := clientcmdapi.MinifyConfig(&newClientConfig) - if err != nil { - return nil, err - } - return &newClientConfig, nil -} - -// createSecret extracts the kubeconfig for a given cluster and populates -// a secret with that kubeconfig. -func createSecret(clientset internalclientset.Interface, clientConfig *clientcmdapi.Config, namespace, federationName, joiningClusterName, contextName, secretName string, dryRun bool) (runtime.Object, error) { - // Minify the kubeconfig to ensure that there is only information - // relevant to the cluster we are registering. - newClientConfig, err := minifyConfig(clientConfig, contextName) - if err != nil { - glog.V(2).Infof("Failed to minify the kubeconfig for the given context %q: %v", contextName, err) - return nil, err - } - - // Flatten the kubeconfig to ensure that all the referenced file - // contents are inlined. - err = clientcmdapi.FlattenConfig(newClientConfig) - if err != nil { - glog.V(2).Infof("Failed to flatten the kubeconfig for the given context %q: %v", contextName, err) - return nil, err - } - - return util.CreateKubeconfigSecret(clientset, newClientConfig, namespace, secretName, federationName, joiningClusterName, dryRun) -} - -// createConfigMap creates a configmap with name kube-dns in the joining cluster -// which stores the information about this federation zone name. -// If the configmap with this name already exists, its updated with this information. -func createConfigMap(hostClientSet internalclientset.Interface, config util.AdminConfig, fedSystemNamespace, federationName, joiningClusterName, targetClusterContext, kubeconfigPath string, dryRun bool) (*api.ConfigMap, error) { - cmDep, err := getCMDeployment(hostClientSet, fedSystemNamespace) - if err != nil { - return nil, err - } - domainMap, ok := cmDep.Annotations[util.FedDomainMapKey] - if !ok { - return nil, fmt.Errorf("kube-dns config map data missing from controller manager annotations") - } - - targetFactory := config.ClusterFactory(targetClusterContext, kubeconfigPath) - targetClientSet, err := targetFactory.ClientSet() - if err != nil { - return nil, err - } - - existingConfigMap, err := targetClientSet.Core().ConfigMaps(metav1.NamespaceSystem).Get(util.KubeDnsConfigmapName, metav1.GetOptions{}) - if isNotFound(err) { - newConfigMap := &api.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: util.KubeDnsConfigmapName, - Namespace: metav1.NamespaceSystem, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - federation.ClusterNameAnnotation: joiningClusterName, - }, - }, - Data: map[string]string{ - util.FedDomainMapKey: domainMap, - }, - } - newConfigMap = populateStubDomainsIfRequired(newConfigMap, cmDep.Annotations) - - if dryRun { - return newConfigMap, nil - } - return targetClientSet.Core().ConfigMaps(metav1.NamespaceSystem).Create(newConfigMap) - } - if err != nil { - return nil, err - } - - if existingConfigMap.Data == nil { - existingConfigMap.Data = make(map[string]string) - } - if _, ok := existingConfigMap.Data[util.FedDomainMapKey]; ok { - // Append this federation info - existingConfigMap.Data[util.FedDomainMapKey] = appendConfigMapString(existingConfigMap.Data[util.FedDomainMapKey], cmDep.Annotations[util.FedDomainMapKey]) - - } else { - // For some reason the configMap exists but this data is empty - existingConfigMap.Data[util.FedDomainMapKey] = cmDep.Annotations[util.FedDomainMapKey] - } - - if dryRun { - return existingConfigMap, nil - } - return targetClientSet.Core().ConfigMaps(metav1.NamespaceSystem).Update(existingConfigMap) -} - -// clusterGenerator extracts the cluster information from the supplied -// kubeconfig and builds a StructuredGenerator for the -// `federation/cluster` API resource. -func clusterGenerator(clientConfig *clientcmdapi.Config, name, contextName, secretName, serviceAccountName, clusterRoleName string) (kubectl.StructuredGenerator, error) { - // Get the context from the config. - ctx, found := clientConfig.Contexts[contextName] - if !found { - return nil, fmt.Errorf("cluster context %q not found", contextName) - } - - // Get the cluster object corresponding to the supplied context. - cluster, found := clientConfig.Clusters[ctx.Cluster] - if !found { - return nil, fmt.Errorf("cluster endpoint not found for %q", name) - } - - // Extract the scheme portion of the cluster APIServer endpoint and - // default it to `https` if it isn't specified. - scheme := extractScheme(cluster.Server) - serverAddress := cluster.Server - if scheme == "" { - // Use "https" as the default scheme. - scheme := "https" - serverAddress = strings.Join([]string{scheme, serverAddress}, "://") - } - - generator := &kubectl.ClusterGeneratorV1Beta1{ - Name: name, - ClientCIDR: defaultClientCIDR, - ServerAddress: serverAddress, - SecretName: secretName, - ServiceAccountName: serviceAccountName, - ClusterRoleName: clusterRoleName, - } - return generator, nil -} - -// extractScheme parses the given URL to extract the scheme portion -// out of it. -func extractScheme(url string) string { - scheme := "" - segs := strings.SplitN(url, "://", 2) - if len(segs) == 2 { - scheme = segs[0] - } - return scheme -} - -func getCMDeployment(hostClientSet internalclientset.Interface, fedNamespace string) (*extensions.Deployment, error) { - depList, err := hostClientSet.Extensions().Deployments(fedNamespace).List(metav1.ListOptions{}) - if err != nil { - return nil, err - } - - for _, dep := range depList.Items { - if strings.HasSuffix(dep.Name, CMNameSuffix) { - return &dep, nil - } - } - return nil, fmt.Errorf("could not find the deployment for controller manager in host cluster") -} - -func appendConfigMapString(existing string, toAppend string) string { - if existing == "" { - return toAppend - } - - values := strings.Split(existing, ",") - for _, v := range values { - // Somehow this federation string is already present, - // Nothing should be done - if v == toAppend { - return existing - } - } - return fmt.Sprintf("%s,%s", existing, toAppend) -} - -// getFederationName gets the federation name from the appropriate annotation on the -// control manager deployment. -func getFederationName(hostClientSet internalclientset.Interface, fedNamespace string) (string, error) { - d, err := getCMDeployment(hostClientSet, fedNamespace) - if err != nil { - return "", err - } - - name, ok := d.Annotations[federation.FederationNameAnnotation] - if !ok { - return "", fmt.Errorf("Federation control manager does not have federation name annotation. Please recreate the federation with a newer version of kubefed, or use an older version of kubefed to join this cluster.") - } - - return name, nil -} - -func populateStubDomainsIfRequired(configMap *api.ConfigMap, annotations map[string]string) *api.ConfigMap { - dnsProvider := annotations[util.FedDNSProvider] - dnsZoneName := annotations[util.FedDNSZoneName] - nameServer := annotations[util.FedNameServer] - - if dnsProvider != util.FedDNSProviderCoreDNS || dnsZoneName == "" || nameServer == "" { - return configMap - } - configMap.Data[util.KubeDnsStubDomains] = fmt.Sprintf(`{"%s":["%s"]}`, dnsZoneName, nameServer) - return configMap -} - -// createFederationSystemNamespace creates the federation-system namespace in the cluster -// associated with clusterClientset, if it doesn't already exist. -func createFederationSystemNamespace(clusterClientset internalclientset.Interface, federationNamespace, federationName, joiningClusterName string, dryRun bool) (*api.Namespace, error) { - federationNS := &api.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: federationNamespace, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - federation.ClusterNameAnnotation: joiningClusterName, - }, - }, - } - - if dryRun { - return federationNS, nil - } - - _, err := clusterClientset.Core().Namespaces().Create(federationNS) - if err != nil && !errors.IsAlreadyExists(err) { - glog.V(2).Infof("Could not create federation-system namespace in client: %v", err) - return nil, err - } - return federationNS, nil -} - -// createRBACSecret creates a secret in the joining cluster using a service account, and -// populates that secret into the host cluster to allow it to access the joining cluster. -func createRBACSecret(hostClusterClientset, joiningClusterClientset internalclientset.Interface, namespace, federationName, joiningClusterName, hostClusterContext, joiningClusterContext, secretName string, dryRun bool) (*api.Secret, string, string, error) { - glog.V(2).Info("Creating service account in joining cluster") - saName, err := createServiceAccount(joiningClusterClientset, namespace, federationName, joiningClusterName, hostClusterContext, dryRun) - if err != nil { - glog.V(2).Infof("Error creating service account in joining cluster: %v", err) - return nil, "", "", err - } - glog.V(2).Infof("Created service account in joining cluster") - - glog.V(2).Info("Creating role binding for service account in joining cluster") - crb, err := createClusterRoleBinding(joiningClusterClientset, saName, namespace, federationName, joiningClusterName, dryRun) - if err != nil { - glog.V(2).Infof("Error creating role binding for service account in joining cluster: %v", err) - return nil, "", "", err - } - glog.V(2).Info("Created role binding for service account in joining cluster") - - glog.V(2).Info("Creating secret in host cluster") - secret, err := populateSecretInHostCluster(joiningClusterClientset, hostClusterClientset, saName, namespace, federationName, joiningClusterName, secretName, dryRun) - if err != nil { - glog.V(2).Infof("Error creating secret in host cluster: %v", err) - return nil, "", "", err - } - glog.V(2).Info("Created secret in host cluster") - return secret, saName, crb.Name, nil -} - -// createServiceAccount creates a service account in the cluster associated with clusterClientset with -// credentials that will be used by the host cluster to access its API server. -func createServiceAccount(clusterClientset internalclientset.Interface, namespace, federationName, joiningClusterName, hostContext string, dryRun bool) (string, error) { - saName := util.ClusterServiceAccountName(joiningClusterName, hostContext) - sa := &api.ServiceAccount{ - ObjectMeta: metav1.ObjectMeta{ - Name: saName, - Namespace: namespace, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - federation.ClusterNameAnnotation: joiningClusterName, - }, - }, - } - - if dryRun { - return saName, nil - } - - // Create a new service account. - _, err := clusterClientset.Core().ServiceAccounts(namespace).Create(sa) - if err != nil { - return "", err - } - - return saName, nil -} - -// createClusterRoleBinding creates an RBAC role and binding that allows the -// service account identified by saName to access all resources in all namespaces -// in the cluster associated with clusterClientset. -func createClusterRoleBinding(clusterClientset internalclientset.Interface, saName, namespace, federationName, joiningClusterName string, dryRun bool) (*rbac.ClusterRoleBinding, error) { - roleName := util.ClusterRoleName(federationName, saName) - role := &rbac.ClusterRole{ - ObjectMeta: metav1.ObjectMeta{ - Name: roleName, - Namespace: namespace, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - federation.ClusterNameAnnotation: joiningClusterName, - }, - }, - Rules: []rbac.PolicyRule{ - rbac.NewRule(rbac.VerbAll).Groups(rbac.APIGroupAll).Resources(rbac.ResourceAll).RuleOrDie(), - rbac.NewRule("get").URLs("/healthz").RuleOrDie(), - }, - } - - // TODO: This should limit its access to only necessary resources. - rolebinding, err := rbac.NewClusterBinding(roleName).SAs(namespace, saName).Binding() - rolebinding.ObjectMeta.Namespace = namespace - rolebinding.ObjectMeta.Annotations = map[string]string{ - federation.FederationNameAnnotation: federationName, - federation.ClusterNameAnnotation: joiningClusterName, - } - if err != nil { - glog.V(2).Infof("Could not create role binding for service account: %v", err) - return nil, err - } - - if dryRun { - return &rolebinding, nil - } - - _, err = clusterClientset.Rbac().ClusterRoles().Create(role) - if err != nil { - glog.V(2).Infof("Could not create role for service account in joining cluster: %v", err) - return nil, err - } - - _, err = clusterClientset.Rbac().ClusterRoleBindings().Create(&rolebinding) - if err != nil { - glog.V(2).Infof("Could not create role binding for service account in joining cluster: %v", err) - return nil, err - } - - return &rolebinding, nil -} - -// populateSecretInHostCluster copies the service account secret for saName from the cluster -// referenced by clusterClientset to the client referenced by hostClientset, putting it in a secret -// named secretName in the provided namespace. -func populateSecretInHostCluster(clusterClientset, hostClientset internalclientset.Interface, saName, namespace, federationName, joiningClusterName, secretName string, dryRun bool) (*api.Secret, error) { - if dryRun { - // The secret is created indirectly with the service account, and so there is no local copy to return in a dry run. - return nil, nil - } - // Get the secret from the joining cluster. - var sa *api.ServiceAccount - err := wait.PollImmediate(1*time.Second, serviceAccountSecretTimeout, func() (bool, error) { - var err error - sa, err = clusterClientset.Core().ServiceAccounts(namespace).Get(saName, metav1.GetOptions{}) - if err != nil { - return false, nil - } - return len(sa.Secrets) == 1, nil - }) - if err != nil { - return nil, err - } - - glog.V(2).Infof("Getting secret named: %s", sa.Secrets[0].Name) - var secret *api.Secret - err = wait.PollImmediate(1*time.Second, serviceAccountSecretTimeout, func() (bool, error) { - var err error - secret, err = clusterClientset.Core().Secrets(namespace).Get(sa.Secrets[0].Name, metav1.GetOptions{}) - if err != nil { - return false, nil - } - return true, nil - }) - if err != nil { - glog.V(2).Infof("Could not get service account secret from joining cluster: %v", err) - return nil, err - } - - // Create a parallel secret in the host cluster. - v1Secret := api.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: secretName, - Namespace: namespace, - Annotations: map[string]string{ - federation.FederationNameAnnotation: federationName, - federation.ClusterNameAnnotation: joiningClusterName, - }, - }, - Data: secret.Data, - } - - glog.V(2).Infof("Creating secret in host cluster named: %s", v1Secret.Name) - _, err = hostClientset.Core().Secrets(namespace).Create(&v1Secret) - if err != nil { - glog.V(2).Infof("Could not create secret in host cluster: %v", err) - return nil, err - } - return &v1Secret, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/join_test.go b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/join_test.go deleted file mode 100644 index c988765a3..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/join_test.go +++ /dev/null @@ -1,617 +0,0 @@ -/* -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 kubefed - -import ( - "bytes" - "fmt" - "io/ioutil" - "net/http" - "os" - "testing" - - "k8s.io/api/core/v1" - "k8s.io/api/extensions/v1beta1" - rbacv1 "k8s.io/api/rbac/v1" - apiequality "k8s.io/apimachinery/pkg/api/equality" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/rest/fake" - "k8s.io/client-go/tools/clientcmd" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - "k8s.io/kubernetes/federation/apis/federation" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - kubefedtesting "k8s.io/kubernetes/federation/pkg/kubefed/testing" - "k8s.io/kubernetes/federation/pkg/kubefed/util" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - k8srbacv1 "k8s.io/kubernetes/pkg/apis/rbac/v1" - "k8s.io/kubernetes/pkg/kubectl" - cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" -) - -const ( - // testFederationName is a name to use for the federation in tests. Since the federation - // name is recovered from the federation itself, this constant is an appropriate - // functional replica. - testFederationName = "test-federation" - - zoneName = "test-dns-zone" - coreDNSServer = "11.22.33.44:53" -) - -func TestJoinFederation(t *testing.T) { - cmdErrMsg := "" - cmdutil.BehaviorOnFatal(func(str string, code int) { - cmdErrMsg = str - }) - - fakeKubeFiles, err := kubefedtesting.FakeKubeconfigFiles() - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - defer kubefedtesting.RemoveFakeKubeconfigFiles(fakeKubeFiles) - - testCases := []struct { - cluster string - clusterCtx string - secret string - server string - token string - kubeconfigGlobal string - kubeconfigExplicit string - expectedServer string - expectedErr string - dnsProvider string - isRBACAPIAvailable bool - }{ - { - cluster: "syndicate", - clusterCtx: "", - server: "https://10.20.30.40", - token: "badge", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - expectedServer: "https://10.20.30.40", - expectedErr: "", - dnsProvider: util.FedDNSProviderCoreDNS, - isRBACAPIAvailable: true, - }, - { - cluster: "syndicate", - clusterCtx: "", - secret: "", - server: "https://10.20.30.40", - token: "badge", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - expectedServer: "https://10.20.30.40", - expectedErr: "", - isRBACAPIAvailable: false, - }, - { - cluster: "ally", - clusterCtx: "", - server: "ally256.example.com:80", - token: "souvenir", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: fakeKubeFiles[1], - expectedServer: "https://ally256.example.com:80", - expectedErr: "", - isRBACAPIAvailable: true, - }, - { - cluster: "confederate", - clusterCtx: "", - server: "10.8.8.8", - token: "totem", - kubeconfigGlobal: fakeKubeFiles[1], - kubeconfigExplicit: fakeKubeFiles[2], - expectedServer: "https://10.8.8.8", - expectedErr: "", - isRBACAPIAvailable: true, - }, - { - cluster: "associate", - clusterCtx: "confederate", - server: "10.8.8.8", - token: "totem", - kubeconfigGlobal: fakeKubeFiles[1], - kubeconfigExplicit: fakeKubeFiles[2], - expectedServer: "https://10.8.8.8", - expectedErr: "", - isRBACAPIAvailable: true, - }, - { - cluster: "affiliate", - clusterCtx: "", - server: "https://10.20.30.40", - token: "badge", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - expectedServer: "https://10.20.30.40", - expectedErr: fmt.Sprintf("error: cluster context %q not found", "affiliate"), - isRBACAPIAvailable: true, - }, - { - cluster: "associate", - clusterCtx: "confederate", - secret: "confidential", - server: "10.8.8.8", - token: "totem", - kubeconfigGlobal: fakeKubeFiles[1], - kubeconfigExplicit: fakeKubeFiles[2], - expectedServer: "https://10.8.8.8", - expectedErr: "", - }, - } - - for i, tc := range testCases { - cmdErrMsg = "" - f := testJoinFederationFactory(tc.cluster, tc.secret, tc.expectedServer, tc.isRBACAPIAvailable) - buf := bytes.NewBuffer([]byte{}) - - hostFactory, err := fakeJoinHostFactory(tc.cluster, tc.clusterCtx, tc.secret, tc.server, tc.token, tc.dnsProvider, tc.isRBACAPIAvailable) - if err != nil { - t.Fatalf("[%d] unexpected error: %v", i, err) - } - - // The fake discovery client caches results by default, so invalidate it by modifying the temporary directory. - // Refer to pkg/kubectl/cmd/testing/fake (fakeAPIFactory.DiscoveryClient()) for details of tmpDir - tmpDirPath, err := ioutil.TempDir("", "") - if err != nil { - t.Fatalf("[%d] unexpected error: %v", i, err) - } - defer os.Remove(tmpDirPath) - - targetClusterFactory, err := fakeJoinTargetClusterFactory(tc.cluster, tc.clusterCtx, tc.dnsProvider, tmpDirPath, tc.isRBACAPIAvailable) - if err != nil { - t.Fatalf("[%d] unexpected error: %v", i, err) - } - - targetClusterContext := tc.clusterCtx - if targetClusterContext == "" { - targetClusterContext = tc.cluster - } - adminConfig, err := kubefedtesting.NewFakeAdminConfig(hostFactory, targetClusterFactory, targetClusterContext, tc.kubeconfigGlobal) - if err != nil { - t.Fatalf("[%d] unexpected error: %v", i, err) - } - - cmd := NewCmdJoin(f, buf, adminConfig) - - cmd.Flags().Set("kubeconfig", tc.kubeconfigExplicit) - cmd.Flags().Set("host-cluster-context", "substrate") - if tc.clusterCtx != "" { - cmd.Flags().Set("cluster-context", tc.clusterCtx) - } - if tc.secret != "" { - cmd.Flags().Set("secret-name", tc.secret) - } - - cmd.Run(cmd, []string{tc.cluster}) - - if tc.expectedErr == "" { - // uses the name from the cluster, not the response - // Actual data passed are tested in the fake secret and cluster - // REST clients. - if msg := buf.String(); msg != fmt.Sprintf("cluster %q created\n", tc.cluster) { - t.Errorf("[%d] unexpected output: %s", i, msg) - if cmdErrMsg != "" { - t.Errorf("[%d] unexpected error message: %s", i, cmdErrMsg) - } - } - } else { - if cmdErrMsg != tc.expectedErr { - t.Errorf("[%d] expected error: %s, got: %s, output: %s", i, tc.expectedErr, cmdErrMsg, buf.String()) - } - } - } -} - -func testJoinFederationFactory(clusterName, secretName, server string, isRBACAPIAvailable bool) cmdutil.Factory { - - want := fakeCluster(clusterName, secretName, server, isRBACAPIAvailable) - f, tf, _, _ := cmdtesting.NewAPIFactory() - codec := testapi.Federation.Codec() - ns := dynamic.ContentConfig().NegotiatedSerializer - tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: ns, - Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { - switch p, m := req.URL.Path, req.Method; { - case p == "/clusters" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got federationapi.Cluster - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - // If the secret name was generated, test it separately. - if secretName == "" { - if got.Spec.SecretRef.Name == "" { - return nil, fmt.Errorf("expected a generated secret name, got \"\"") - } - got.Spec.SecretRef.Name = "" - } - if !apiequality.Semantic.DeepEqual(got, want) { - return nil, fmt.Errorf("Unexpected cluster object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, want)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &want)}, nil - default: - return nil, fmt.Errorf("unexpected request: %#v\n%#v", req.URL, req) - } - }), - } - tf.Namespace = "test" - return f -} - -func fakeJoinHostFactory(clusterName, clusterCtx, secretName, server, token, dnsProvider string, isRBACAPIAvailable bool) (cmdutil.Factory, error) { - if clusterCtx == "" { - clusterCtx = clusterName - } - - placeholderSecretName := secretName - if placeholderSecretName == "" { - placeholderSecretName = "secretName" - } - var secretObject v1.Secret - if isRBACAPIAvailable { - secretObject = v1.Secret{ - TypeMeta: metav1.TypeMeta{ - Kind: "Secret", - APIVersion: "v1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: placeholderSecretName, - Namespace: util.DefaultFederationSystemNamespace, - Annotations: map[string]string{ - federation.FederationNameAnnotation: testFederationName, - federation.ClusterNameAnnotation: clusterName, - }, - }, - Data: map[string][]byte{ - "ca.crt": []byte("cert"), - "token": []byte("token"), - }, - } - } else { - kubeconfig := clientcmdapi.Config{ - Clusters: map[string]*clientcmdapi.Cluster{ - clusterCtx: { - Server: server, - }, - }, - AuthInfos: map[string]*clientcmdapi.AuthInfo{ - clusterCtx: { - Token: token, - }, - }, - Contexts: map[string]*clientcmdapi.Context{ - clusterCtx: { - Cluster: clusterCtx, - AuthInfo: clusterCtx, - }, - }, - CurrentContext: clusterCtx, - } - configBytes, err := clientcmd.Write(kubeconfig) - if err != nil { - return nil, err - } - - secretObject = v1.Secret{ - TypeMeta: metav1.TypeMeta{ - Kind: "Secret", - APIVersion: "v1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: placeholderSecretName, - Namespace: util.DefaultFederationSystemNamespace, - Annotations: map[string]string{ - federation.FederationNameAnnotation: testFederationName, - federation.ClusterNameAnnotation: clusterName, - }, - }, - Data: map[string][]byte{ - "kubeconfig": configBytes, - }, - } - } - - cmName := "controller-manager" - deployment := v1beta1.Deployment{ - TypeMeta: metav1.TypeMeta{ - Kind: "Deployment", - APIVersion: testapi.Extensions.GroupVersion().String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Name: cmName, - Namespace: util.DefaultFederationSystemNamespace, - Annotations: map[string]string{ - util.FedDomainMapKey: fmt.Sprintf("%s=%s", clusterCtx, zoneName), - federation.FederationNameAnnotation: testFederationName, - }, - }, - } - if dnsProvider == util.FedDNSProviderCoreDNS { - deployment.Annotations[util.FedDNSZoneName] = zoneName - deployment.Annotations[util.FedNameServer] = coreDNSServer - deployment.Annotations[util.FedDNSProvider] = util.FedDNSProviderCoreDNS - } - deploymentList := v1beta1.DeploymentList{Items: []v1beta1.Deployment{deployment}} - - f, tf, codec, _ := cmdtesting.NewAPIFactory() - extensionCodec := testapi.Extensions.Codec() - ns := dynamic.ContentConfig().NegotiatedSerializer - tf.ClientConfig = kubefedtesting.DefaultClientConfig() - tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: ns, - Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { - switch p, m := req.URL.Path, req.Method; { - case p == "/api/v1/namespaces/federation-system/secrets" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got v1.Secret - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - - // If the secret name was generated, test it separately. - if secretName == "" { - if got.Name == "" { - return nil, fmt.Errorf("expected a generated secret name, got \"\"") - } - got.Name = placeholderSecretName - } - - if !apiequality.Semantic.DeepEqual(got, secretObject) { - return nil, fmt.Errorf("Unexpected secret object\n\tDiff: %s", diff.ObjectGoPrintDiff(got, secretObject)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &secretObject)}, nil - case p == "/apis/extensions/v1beta1/namespaces/federation-system/deployments" && m == http.MethodGet: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(extensionCodec, &deploymentList)}, nil - default: - return nil, fmt.Errorf("unexpected request: %#v\n%#v", req.URL, req) - } - }), - } - return f, nil -} - -func serviceAccountName(clusterName string) string { - return fmt.Sprintf("%s-substrate", clusterName) -} - -func fakeJoinTargetClusterFactory(clusterName, clusterCtx, dnsProvider, tmpDirPath string, isRBACAPIAvailable bool) (cmdutil.Factory, error) { - if clusterCtx == "" { - clusterCtx = clusterName - } - - configmapObject := &v1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: util.KubeDnsConfigmapName, - Namespace: metav1.NamespaceSystem, - Annotations: map[string]string{ - federation.FederationNameAnnotation: testFederationName, - federation.ClusterNameAnnotation: clusterName, - }, - }, - Data: map[string]string{ - util.FedDomainMapKey: fmt.Sprintf("%s=%s", clusterCtx, zoneName), - }, - } - - saSecretName := "serviceaccountsecret" - saSecret := v1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: saSecretName, - Namespace: util.DefaultFederationSystemNamespace, - Annotations: map[string]string{ - federation.FederationNameAnnotation: testFederationName, - federation.ClusterNameAnnotation: clusterName, - }, - }, - Data: map[string][]byte{ - "ca.crt": []byte("cert"), - "token": []byte("token"), - }, - Type: v1.SecretTypeServiceAccountToken, - } - - saName := serviceAccountName(clusterName) - - serviceAccount := v1.ServiceAccount{ - ObjectMeta: metav1.ObjectMeta{ - Name: saName, - Annotations: map[string]string{ - federation.FederationNameAnnotation: testFederationName, - federation.ClusterNameAnnotation: clusterName, - }, - }, - Secrets: []v1.ObjectReference{ - {Name: saSecretName}, - }, - } - if dnsProvider == util.FedDNSProviderCoreDNS { - annotations := map[string]string{ - util.FedDNSProvider: util.FedDNSProviderCoreDNS, - util.FedDNSZoneName: zoneName, - util.FedNameServer: coreDNSServer, - } - configmapObject = populateStubDomainsIfRequiredTest(configmapObject, annotations) - } - - namespace := v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "federation-system", - Annotations: map[string]string{ - federation.FederationNameAnnotation: testFederationName, - federation.ClusterNameAnnotation: clusterName, - }, - }, - } - - roleName := util.ClusterRoleName(testFederationName, saName) - clusterRole := rbacv1.ClusterRole{ - ObjectMeta: metav1.ObjectMeta{ - Name: roleName, - Namespace: util.DefaultFederationSystemNamespace, - Annotations: map[string]string{ - federation.FederationNameAnnotation: testFederationName, - federation.ClusterNameAnnotation: clusterName, - }, - }, - Rules: []rbacv1.PolicyRule{ - k8srbacv1.NewRule(rbacv1.VerbAll).Groups(rbacv1.APIGroupAll).Resources(rbacv1.ResourceAll).RuleOrDie(), - }, - } - - clusterRoleBinding, err := k8srbacv1.NewClusterBinding(roleName).SAs(util.DefaultFederationSystemNamespace, saName).Binding() - if err != nil { - return nil, err - } - - testGroup := metav1.APIGroup{ - Name: "testAPIGroup", - Versions: []metav1.GroupVersionForDiscovery{ - { - GroupVersion: "testAPIGroup/testAPIVersion", - Version: "testAPIVersion", - }, - }, - } - apiGroupList := &metav1.APIGroupList{} - apiGroupList.Groups = append(apiGroupList.Groups, testGroup) - if isRBACAPIAvailable { - rbacGroup := metav1.APIGroup{ - Name: rbacv1.GroupName, - Versions: []metav1.GroupVersionForDiscovery{ - { - GroupVersion: rbacv1.GroupName + "/v1", - Version: "v1", - }, - }, - } - apiGroupList.Groups = append(apiGroupList.Groups, rbacGroup) - } - - f, tf, codec, _ := cmdtesting.NewAPIFactory() - defaultCodec := testapi.Default.Codec() - rbacCodec := testapi.Rbac.Codec() - ns := dynamic.ContentConfig().NegotiatedSerializer - tf.TmpDir = tmpDirPath - tf.ClientConfig = kubefedtesting.DefaultClientConfig() - tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: ns, - Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { - switch p, m, r := req.URL.Path, req.Method, isRBACAPIAvailable; { - case p == "/api/v1/namespaces" && m == http.MethodPost: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(defaultCodec, &namespace)}, nil - - case p == "/api" && m == http.MethodGet: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &metav1.APIVersions{})}, nil - case p == "/apis" && m == http.MethodGet: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, apiGroupList)}, nil - - case p == fmt.Sprintf("/api/v1/namespaces/federation-system/serviceaccounts/%s", saName) && m == http.MethodGet && r: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(defaultCodec, &serviceAccount)}, nil - case p == "/api/v1/namespaces/federation-system/serviceaccounts" && m == http.MethodPost && r: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(defaultCodec, &serviceAccount)}, nil - - case p == "/apis/rbac.authorization.k8s.io/v1/clusterroles" && m == http.MethodPost && r: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(rbacCodec, &clusterRole)}, nil - case p == "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings" && m == http.MethodPost && r: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(rbacCodec, &clusterRoleBinding)}, nil - - case p == "/api/v1/namespaces/federation-system/secrets/serviceaccountsecret" && m == http.MethodGet && r: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(defaultCodec, &saSecret)}, nil - - case p == "/api/v1/namespaces/kube-system/configmaps/" && m == http.MethodPost: - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - var got v1.ConfigMap - _, _, err = codec.Decode(body, nil, &got) - if err != nil { - return nil, err - } - if !apiequality.Semantic.DeepEqual(&got, configmapObject) { - return nil, fmt.Errorf("Unexpected configmap object\n\tDiff: %s", diff.ObjectGoPrintDiff(&got, configmapObject)) - } - return &http.Response{StatusCode: http.StatusCreated, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, configmapObject)}, nil - default: - return nil, fmt.Errorf("unexpected request: %#v\n%#v", req.URL, req) - } - }), - } - - return f, nil -} - -func fakeCluster(clusterName, secretName, server string, isRBACAPIAvailable bool) federationapi.Cluster { - cluster := federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: clusterName, - }, - Spec: federationapi.ClusterSpec{ - ServerAddressByClientCIDRs: []federationapi.ServerAddressByClientCIDR{ - { - ClientCIDR: defaultClientCIDR, - ServerAddress: server, - }, - }, - SecretRef: &v1.LocalObjectReference{ - Name: secretName, - }, - }, - } - if isRBACAPIAvailable { - saName := serviceAccountName(clusterName) - annotations := map[string]string{ - kubectl.ServiceAccountNameAnnotation: saName, - kubectl.ClusterRoleNameAnnotation: util.ClusterRoleName(testFederationName, saName), - } - cluster.ObjectMeta.SetAnnotations(annotations) - } - return cluster -} - -// TODO: Reuse the function populateStubDomainsIfRequired once that function is converted to use versioned objects. -func populateStubDomainsIfRequiredTest(configMap *v1.ConfigMap, annotations map[string]string) *v1.ConfigMap { - dnsProvider := annotations[util.FedDNSProvider] - dnsZoneName := annotations[util.FedDNSZoneName] - nameServer := annotations[util.FedNameServer] - - if dnsProvider != util.FedDNSProviderCoreDNS || dnsZoneName == "" || nameServer == "" { - return configMap - } - configMap.Data[util.KubeDnsStubDomains] = fmt.Sprintf(`{"%s":["%s"]}`, dnsZoneName, nameServer) - return configMap -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/kubefed.go b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/kubefed.go deleted file mode 100644 index dede0e282..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/kubefed.go +++ /dev/null @@ -1,91 +0,0 @@ -/* -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 kubefed - -import ( - "io" - - "k8s.io/apiserver/pkg/util/flag" - "k8s.io/client-go/tools/clientcmd" - kubefedinit "k8s.io/kubernetes/federation/pkg/kubefed/init" - "k8s.io/kubernetes/federation/pkg/kubefed/util" - kubectl "k8s.io/kubernetes/pkg/kubectl/cmd" - "k8s.io/kubernetes/pkg/kubectl/cmd/templates" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/kubectl/util/i18n" - - "github.com/spf13/cobra" -) - -var ( - kubefedVersionExample = templates.Examples(i18n.T(` - # Print the client and server versions for the current context - kubefed version`)) - kubefedOptionsExample = templates.Examples(i18n.T(` - # Print flags inherited by all commands - kubefed options`)) -) - -// NewKubeFedCommand creates the `kubefed` command and its nested children. -func NewKubeFedCommand(f cmdutil.Factory, in io.Reader, out, err io.Writer, defaultServerImage, defaultEtcdImage string) *cobra.Command { - // Parent command to which all subcommands are added. - cmds := &cobra.Command{ - Use: "kubefed", - Short: "kubefed controls a Kubernetes Cluster Federation", - Long: templates.LongDesc(` - kubefed controls a Kubernetes Cluster Federation. - - Find more information at https://github.com/kubernetes/kubernetes.`), - Run: runHelp, - } - - f.BindFlags(cmds.PersistentFlags()) - f.BindExternalFlags(cmds.PersistentFlags()) - - // From this point and forward we get warnings on flags that contain "_" separators - cmds.SetGlobalNormalizationFunc(flag.WarnWordSepNormalizeFunc) - - groups := templates.CommandGroups{ - { - Message: "Basic Commands:", - Commands: []*cobra.Command{ - kubefedinit.NewCmdInit(out, util.NewAdminConfig(clientcmd.NewDefaultPathOptions()), defaultServerImage, defaultEtcdImage), - NewCmdJoin(f, out, util.NewAdminConfig(clientcmd.NewDefaultPathOptions())), - NewCmdUnjoin(f, out, err, util.NewAdminConfig(clientcmd.NewDefaultPathOptions())), - }, - }, - } - groups.Add(cmds) - - filters := []string{ - "options", - } - templates.ActsAsRootCommand(cmds, filters, groups...) - - cmdVersion := kubectl.NewCmdVersion(f, out) - cmdVersion.Example = kubefedVersionExample - cmds.AddCommand(cmdVersion) - cmdOptions := kubectl.NewCmdOptions(out) - cmdOptions.Example = kubefedOptionsExample - cmds.AddCommand(cmdOptions) - - return cmds -} - -func runHelp(cmd *cobra.Command, args []string) { - cmd.Help() -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/testing/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/testing/BUILD deleted file mode 100644 index 6e2ba4610..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/testing/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["testing.go"], - importpath = "k8s.io/kubernetes/federation/pkg/kubefed/testing", - deps = [ - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/pkg/kubefed/util:go_default_library", - "//pkg/api:go_default_library", - "//pkg/kubectl/cmd/util:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/testing/testing.go b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/testing/testing.go deleted file mode 100644 index 58c578056..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/testing/testing.go +++ /dev/null @@ -1,187 +0,0 @@ -/* -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 testing - -import ( - "bytes" - "io" - "io/ioutil" - "net/http" - "os" - - "k8s.io/apimachinery/pkg/runtime" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - fedclient "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/kubefed/util" - "k8s.io/kubernetes/pkg/api" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" -) - -type fakeAdminConfig struct { - pathOptions *clientcmd.PathOptions - hostFactory cmdutil.Factory - targetClusterFactory cmdutil.Factory - targetClusterContext string -} - -func NewFakeAdminConfig(hostFactory cmdutil.Factory, targetFactory cmdutil.Factory, targetClusterContext, kubeconfigGlobal string) (util.AdminConfig, error) { - pathOptions := clientcmd.NewDefaultPathOptions() - pathOptions.GlobalFile = kubeconfigGlobal - pathOptions.EnvVar = "" - - return &fakeAdminConfig{ - pathOptions: pathOptions, - hostFactory: hostFactory, - targetClusterFactory: targetFactory, - targetClusterContext: targetClusterContext, - }, nil -} - -func (f *fakeAdminConfig) PathOptions() *clientcmd.PathOptions { - return f.pathOptions -} - -func (f *fakeAdminConfig) FederationClientset(context, kubeconfigPath string) (*fedclient.Clientset, error) { - fakeRestClient, err := f.hostFactory.RESTClient() - if err != nil { - return nil, err - } - - // we ignore the function params and use the client from - // the same fakefactory to create a federation clientset - // our fake factory exposes only the healthz api for this client - return fedclient.New(fakeRestClient), nil -} - -func (f *fakeAdminConfig) ClusterFactory(context, kubeconfigPath string) cmdutil.Factory { - if f.targetClusterContext != "" && f.targetClusterContext == context { - return f.targetClusterFactory - } - return f.hostFactory -} - -func FakeKubeconfigFiles() ([]string, error) { - kubeconfigs := []clientcmdapi.Config{ - { - Clusters: map[string]*clientcmdapi.Cluster{ - "syndicate": { - Server: "https://10.20.30.40", - }, - }, - AuthInfos: map[string]*clientcmdapi.AuthInfo{ - "syndicate": { - Token: "badge", - }, - }, - Contexts: map[string]*clientcmdapi.Context{ - "syndicate": { - Cluster: "syndicate", - AuthInfo: "syndicate", - }, - }, - CurrentContext: "syndicate", - }, - { - Clusters: map[string]*clientcmdapi.Cluster{ - "ally": { - Server: "ally256.example.com:80", - }, - }, - AuthInfos: map[string]*clientcmdapi.AuthInfo{ - "ally": { - Token: "souvenir", - }, - }, - Contexts: map[string]*clientcmdapi.Context{ - "ally": { - Cluster: "ally", - AuthInfo: "ally", - }, - }, - CurrentContext: "ally", - }, - { - Clusters: map[string]*clientcmdapi.Cluster{ - "ally": { - Server: "https://ally64.example.com", - }, - "confederate": { - Server: "10.8.8.8", - }, - }, - AuthInfos: map[string]*clientcmdapi.AuthInfo{ - "ally": { - Token: "souvenir", - }, - "confederate": { - Token: "totem", - }, - }, - Contexts: map[string]*clientcmdapi.Context{ - "ally": { - Cluster: "ally", - AuthInfo: "ally", - }, - "confederate": { - Cluster: "confederate", - AuthInfo: "confederate", - }, - }, - CurrentContext: "confederate", - }, - } - kubefiles := []string{} - for _, cfg := range kubeconfigs { - fakeKubeFile, _ := ioutil.TempFile("", "") - err := clientcmd.WriteToFile(cfg, fakeKubeFile.Name()) - if err != nil { - return nil, err - } - - kubefiles = append(kubefiles, fakeKubeFile.Name()) - } - return kubefiles, nil -} - -func RemoveFakeKubeconfigFiles(kubefiles []string) { - for _, file := range kubefiles { - os.Remove(file) - } -} - -func DefaultHeader() http.Header { - header := http.Header{} - header.Set("Content-Type", runtime.ContentTypeJSON) - return header -} - -func ObjBody(codec runtime.Codec, obj runtime.Object) io.ReadCloser { - return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(codec, obj)))) -} - -func DefaultClientConfig() *restclient.Config { - return &restclient.Config{ - APIPath: "/api", - ContentConfig: restclient.ContentConfig{ - NegotiatedSerializer: api.Codecs, - ContentType: runtime.ContentTypeJSON, - GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/unjoin.go b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/unjoin.go deleted file mode 100644 index 40f79f7b3..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/unjoin.go +++ /dev/null @@ -1,333 +0,0 @@ -/* -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 kubefed - -import ( - "fmt" - "io" - "net/url" - "strings" - - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/federation/pkg/kubefed/util" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/kubectl/cmd/templates" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/kubectl/resource" - - "github.com/spf13/cobra" - "github.com/spf13/pflag" -) - -var ( - unjoin_long = templates.LongDesc(` - Unjoin a cluster from a federation. - - Current context is assumed to be a federation endpoint. - Please use the --context flag otherwise.`) - unjoin_example = templates.Examples(` - # Unjoin the specified cluster from a federation. - # Federation control plane's host cluster context name - # must be specified via the --host-cluster-context flag - # to properly cleanup the credentials. - kubectl unjoin foo --host-cluster-context=bar --cluster-context=baz`) -) - -type unjoinFederation struct { - commonOptions util.SubcommandOptions - options unjoinFederationOptions -} - -type unjoinFederationOptions struct { - clusterContext string -} - -func (o *unjoinFederationOptions) Bind(flags *pflag.FlagSet) { - flags.StringVar(&o.clusterContext, "cluster-context", "", "Name of the cluster's context in the local kubeconfig. Defaults to cluster name if unspecified.") -} - -// NewCmdUnjoin defines the `unjoin` command that removes a cluster -// from a federation. -func NewCmdUnjoin(f cmdutil.Factory, cmdOut, cmdErr io.Writer, config util.AdminConfig) *cobra.Command { - opts := &unjoinFederation{} - - cmd := &cobra.Command{ - Use: "unjoin CLUSTER_NAME --host-cluster-context=HOST_CONTEXT", - Short: "Unjoin a cluster from a federation", - Long: unjoin_long, - Example: unjoin_example, - Run: func(cmd *cobra.Command, args []string) { - cmdutil.CheckErr(opts.commonOptions.SetName(cmd, args)) - cmdutil.CheckErr(opts.Run(f, cmdOut, cmdErr, config)) - }, - } - - flags := cmd.Flags() - opts.commonOptions.Bind(flags) - opts.options.Bind(flags) - - return cmd -} - -// unjoinFederation is the implementation of the `unjoin` command. -func (u *unjoinFederation) Run(f cmdutil.Factory, cmdOut, cmdErr io.Writer, config util.AdminConfig) error { - if u.options.clusterContext == "" { - u.options.clusterContext = u.commonOptions.Name - } - - cluster, err := popCluster(f, u.commonOptions.Name) - if err != nil { - return err - } - if cluster == nil { - fmt.Fprintf(cmdErr, "WARNING: cluster %q not found in federation, so its credentials' secret couldn't be deleted", u.commonOptions.Name) - return nil - } - - // We want a separate client factory to communicate with the - // federation host cluster. See join_federation.go for details. - hostFactory := config.ClusterFactory(u.commonOptions.Host, u.commonOptions.Kubeconfig) - hostClientset, err := hostFactory.ClientSet() - if err != nil { - return err - } - - secretName := cluster.Spec.SecretRef.Name - secret, err := hostClientset.Core().Secrets(u.commonOptions.FederationSystemNamespace).Get(secretName, metav1.GetOptions{}) - if isNotFound(err) { - // If this is the case, we cannot get the cluster clientset to delete the - // config map from that cluster and obviously cannot delete the not existing secret. - // We just publish the warning as cluster has already been removed from federation. - fmt.Fprintf(cmdErr, "WARNING: secret %q not found in the host cluster, so it couldn't be deleted. Cluster has already been removed from the federation.", secretName) - return nil - } else if err != nil { - fmt.Fprintf(cmdErr, "WARNING: Error retrieving secret from the base cluster") - return err - } - - unjoiningClusterFactory := config.ClusterFactory(u.options.clusterContext, u.commonOptions.Kubeconfig) - unjoiningClusterClientset, err := unjoiningClusterFactory.ClientSet() - outerErr := err - if err != nil { - // Attempt to get a clientset using information from the cluster. - unjoiningClusterClientset, err = getClientsetFromCluster(secret, cluster) - if err != nil { - return fmt.Errorf("unable to get clientset from kubeconfig or cluster: %v, %v", outerErr, err) - } - } - - err = deleteSecret(hostClientset, cluster.Spec.SecretRef.Name, u.commonOptions.FederationSystemNamespace) - if err != nil { - fmt.Fprintf(cmdErr, "WARNING: secret %q could not be deleted: %v", secretName, err) - // We anyways continue to try and delete the config map but with above warning - } - - // We need to ensure updating the config map created in the deregistered cluster - // This configmap was created/updated when the cluster joined this federation to aid - // the kube-dns of that cluster to aid service discovery. - err = updateConfigMapFromCluster(hostClientset, unjoiningClusterClientset, u.commonOptions.FederationSystemNamespace) - if err != nil { - fmt.Fprintf(cmdErr, "WARNING: Encountered error in deleting kube-dns configmap: %v", err) - // We anyways continue to print success message but with above warning - } - - // Delete the service account in the unjoining cluster. - err = deleteServiceAccountFromCluster(unjoiningClusterClientset, cluster, u.commonOptions.FederationSystemNamespace) - if err != nil { - fmt.Fprintf(cmdErr, "WARNING: Encountered error in deleting service account: %v", err) - return err - } - - // Delete the cluster role and role binding in the unjoining cluster. - err = deleteClusterRoleBindingFromCluster(unjoiningClusterClientset, cluster) - if err != nil { - fmt.Fprintf(cmdErr, "WARNING: Encountered error in deleting cluster role bindings: %v", err) - return err - } - - _, err = fmt.Fprintf(cmdOut, "Successfully removed cluster %q from federation\n", u.commonOptions.Name) - return err -} - -// popCluster fetches the cluster object with the given name, deletes -// it and returns the deleted cluster object. -func popCluster(f cmdutil.Factory, name string) (*federationapi.Cluster, error) { - mapper, typer := f.Object() - gvks, _, err := typer.ObjectKinds(&federationapi.Cluster{}) - if err != nil { - return nil, err - } - gvk := gvks[0] - mapping, err := mapper.RESTMapping(schema.GroupKind{Group: gvk.Group, Kind: gvk.Kind}, gvk.Version) - if err != nil { - return nil, err - } - client, err := f.ClientForMapping(mapping) - if err != nil { - return nil, err - } - - rh := resource.NewHelper(client, mapping) - obj, err := rh.Get("", name, false) - - if isNotFound(err) { - // Cluster isn't registered, there isn't anything to be done here. - return nil, nil - } else if err != nil { - return nil, err - } - cluster, ok := obj.(*federationapi.Cluster) - if !ok { - return nil, fmt.Errorf("unexpected object type: expected \"federation/v1beta1.Cluster\", got %T: obj: %#v", obj, obj) - } - - // Remove the cluster resource in the federation API server by - // calling rh.Delete() - return cluster, rh.Delete("", name) -} - -func updateConfigMapFromCluster(hostClientset, unjoiningClusterClientset internalclientset.Interface, fedSystemNamespace string) error { - cmDep, err := getCMDeployment(hostClientset, fedSystemNamespace) - if err != nil { - return err - } - domainMap, ok := cmDep.Annotations[util.FedDomainMapKey] - if !ok { - return fmt.Errorf("kube-dns config map data missing from controller manager annotations") - } - - configMap, err := unjoiningClusterClientset.Core().ConfigMaps(metav1.NamespaceSystem).Get(util.KubeDnsConfigmapName, metav1.GetOptions{}) - if err != nil { - return err - } - - needUpdate := false - if _, ok := configMap.Data[util.FedDomainMapKey]; ok { - configMap.Data[util.FedDomainMapKey] = removeConfigMapString(configMap.Data[util.FedDomainMapKey], domainMap) - needUpdate = true - } - - if _, ok := configMap.Data[util.KubeDnsStubDomains]; ok { - delete(configMap.Data, util.KubeDnsStubDomains) - needUpdate = true - } - - if needUpdate { - _, err = unjoiningClusterClientset.Core().ConfigMaps(metav1.NamespaceSystem).Update(configMap) - } - return err -} - -// deleteSecret deletes the secret with the given name from the host -// cluster. -func deleteSecret(clientset internalclientset.Interface, name, namespace string) error { - orphanDependents := false - return clientset.Core().Secrets(namespace).Delete(name, &metav1.DeleteOptions{OrphanDependents: &orphanDependents}) -} - -// isNotFound checks if the given error is a NotFound status error. -func isNotFound(err error) bool { - statusErr := err - if urlErr, ok := err.(*url.Error); ok { - statusErr = urlErr.Err - } - return errors.IsNotFound(statusErr) -} - -func getClientsetFromCluster(secret *api.Secret, cluster *federationapi.Cluster) (*internalclientset.Clientset, error) { - serverAddress, err := util.GetServerAddress(cluster) - if err != nil { - return nil, err - } - if serverAddress == "" { - return nil, fmt.Errorf("failed to get server address for the cluster: %s", cluster.Name) - } - - clientset, err := util.GetClientsetFromSecret(secret, serverAddress) - if err != nil { - return nil, err - } - if clientset == nil { - // There is a possibility that the clientset is nil without any error reported - return nil, fmt.Errorf("failed for get client to access cluster: %s", cluster.Name) - } - - return clientset, nil -} - -// removeConfigMapString returns an empty string if last value is removed -// or returns the remaining comma separated strings minus the one to be removed -func removeConfigMapString(str string, toRemove string) string { - if str == "" { - return "" - } - - values := strings.Split(str, ",") - if len(values) == 1 { - if values[0] == toRemove { - return "" - } else { - // Somehow our federation string is not here - // Dont do anything further - return values[0] - } - } - - for i, v := range values { - if v == toRemove { - values = append(values[:i], values[i+1:]...) - break - } - } - return strings.Join(values, ",") -} - -// deleteServiceAccountFromCluster removes the service account that the federation control plane uses -// to access the cluster from the cluster that is leaving the federation. -func deleteServiceAccountFromCluster(unjoiningClusterClientset internalclientset.Interface, cluster *federationapi.Cluster, fedSystemNamespace string) error { - serviceAccountName, ok := cluster.ObjectMeta.Annotations[kubectl.ServiceAccountNameAnnotation] - if !ok { - // If there is no service account name annotation, assume that this cluster does not have a federation control plane service account. - return nil - } - return unjoiningClusterClientset.Core().ServiceAccounts(fedSystemNamespace).Delete(serviceAccountName, &metav1.DeleteOptions{}) -} - -// deleteClusterRoleBindingFromCluster deletes the ClusterRole and ClusterRoleBinding from the -// cluster that is leaving the federation. -func deleteClusterRoleBindingFromCluster(unjoiningClusterClientset internalclientset.Interface, cluster *federationapi.Cluster) error { - clusterRoleName, ok := cluster.ObjectMeta.Annotations[kubectl.ClusterRoleNameAnnotation] - if !ok { - // If there is no cluster role name annotation, assume that this cluster does not have cluster role bindings. - return nil - } - - err := unjoiningClusterClientset.Rbac().ClusterRoleBindings().Delete(clusterRoleName, &metav1.DeleteOptions{}) - if err != nil && !errors.IsMethodNotSupported(err) && !errors.IsNotFound(err) { - return err - } - err = unjoiningClusterClientset.Rbac().ClusterRoles().Delete(clusterRoleName, &metav1.DeleteOptions{}) - if err != nil && !errors.IsMethodNotSupported(err) && !errors.IsNotFound(err) { - return err - } - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/unjoin_test.go b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/unjoin_test.go deleted file mode 100644 index 27f09999a..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/unjoin_test.go +++ /dev/null @@ -1,307 +0,0 @@ -/* -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 kubefed - -import ( - "bytes" - "fmt" - "net/http" - "strings" - "testing" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/rest/fake" - "k8s.io/client-go/tools/clientcmd" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - federationapi "k8s.io/kubernetes/federation/apis/federation" - fedv1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - kubefedtesting "k8s.io/kubernetes/federation/pkg/kubefed/testing" - "k8s.io/kubernetes/federation/pkg/kubefed/util" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" -) - -func TestUnjoinFederation(t *testing.T) { - cmdErrMsg := "" - cmdutil.BehaviorOnFatal(func(str string, code int) { - cmdErrMsg = str - }) - - fakeKubeFiles, err := kubefedtesting.FakeKubeconfigFiles() - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - defer kubefedtesting.RemoveFakeKubeconfigFiles(fakeKubeFiles) - - testCases := []struct { - cluster string - wantCluster string - wantSecret string - kubeconfigGlobal string - kubeconfigExplicit string - expectedServer string - expectedErr string - }{ - // Tests that the contexts and credentials are read from the - // global, default kubeconfig and the correct cluster resource - // is deregisterd and configmap kube-dns is removed from that cluster. - { - cluster: "syndicate", - wantCluster: "syndicate", - wantSecret: "", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - expectedServer: "https://10.20.30.40", - expectedErr: "", - }, - // Tests that the contexts and credentials are read from the - // explicit kubeconfig file specified and the correct cluster - // resource is deregisterd and configmap kube-dns is removed from that cluster. - // kubeconfig contains a single cluster and context. - { - cluster: "ally", - wantCluster: "ally", - wantSecret: "", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: fakeKubeFiles[1], - expectedServer: "http://ally256.example.com:80", - expectedErr: "", - }, - // Tests that the contexts and credentials are read from the - // explicit kubeconfig file specified and the correct cluster - // resource is deregisterd and configmap kube-dns is removed from that - // cluster. kubeconfig consists of multiple clusters and contexts. - { - cluster: "confederate", - wantCluster: "confederate", - wantSecret: "", - kubeconfigGlobal: fakeKubeFiles[1], - kubeconfigExplicit: fakeKubeFiles[2], - expectedServer: "https://10.8.8.8", - expectedErr: "", - }, - // Negative test to ensure that we get the right warning - // when the specified cluster to deregister is not found. - { - cluster: "noexist", - wantCluster: "affiliate", - wantSecret: "", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - expectedServer: "https://10.20.30.40", - expectedErr: fmt.Sprintf("WARNING: cluster %q not found in federation, so its credentials' secret couldn't be deleted", "affiliate"), - }, - // Negative test to ensure that we get the right warning - // when the specified cluster's credentials secret is not - // found. - { - cluster: "affiliate", - wantCluster: "affiliate", - wantSecret: "noexist", - kubeconfigGlobal: fakeKubeFiles[0], - kubeconfigExplicit: "", - expectedServer: "https://10.20.30.40", - expectedErr: fmt.Sprintf("WARNING: secret %q not found in the host cluster, so it couldn't be deleted. Cluster has already been removed from the federation.", "noexist"), - }, - // TODO: Figure out a way to test the scenarios of configmap deletion - // As of now we delete the config map after deriving the clientset using - // the cluster object we retrieved from the federation server and the - // secret object retrieved from the base cluster. - // Still to find out a way to introduce some fakes and unit test this path. - } - - for i, tc := range testCases { - cmdErrMsg = "" - f := testUnjoinFederationFactory(tc.cluster, tc.expectedServer, tc.wantSecret) - buf := bytes.NewBuffer([]byte{}) - errBuf := bytes.NewBuffer([]byte{}) - - hostFactory := fakeUnjoinHostFactory(tc.cluster) - adminConfig, err := kubefedtesting.NewFakeAdminConfig(hostFactory, nil, "", tc.kubeconfigGlobal) - if err != nil { - t.Fatalf("[%d] unexpected error: %v", i, err) - } - - cmd := NewCmdUnjoin(f, buf, errBuf, adminConfig) - - cmd.Flags().Set("kubeconfig", tc.kubeconfigExplicit) - cmd.Flags().Set("host", "substrate") - cmd.Run(cmd, []string{tc.wantCluster}) - - if tc.expectedErr == "" { - // uses the name from the cluster, not the response - // Actual data passed are tested in the fake secret and cluster - // REST clients. - if msg := buf.String(); msg != fmt.Sprintf("Successfully removed cluster %q from federation\n", tc.cluster) { - t.Errorf("[%d] unexpected output: %s", i, msg) - if cmdErrMsg != "" { - t.Errorf("[%d] unexpected error message: %s", i, cmdErrMsg) - } - } - // TODO: There are warnings posted on errBuf, which we ignore as of now - // and we should be able to test out these warnings also in future. - // This is linked to the previous todo comment. - } else { - if errMsg := errBuf.String(); errMsg != tc.expectedErr { - t.Errorf("[%d] expected warning: %s, got: %s, output: %s", i, tc.expectedErr, errMsg, buf.String()) - } - - } - } -} - -func testUnjoinFederationFactory(name, server, secret string) cmdutil.Factory { - urlPrefix := "/clusters/" - - cluster := fakeCluster(name, name, server, true) - if secret != "" { - cluster.Spec.SecretRef.Name = secret - } - - f, tf, _, _ := cmdtesting.NewAPIFactory() - codec := testapi.Federation.Codec() - tf.ClientConfig = kubefedtesting.DefaultClientConfig() - ns := serializer.NegotiatedSerializerWrapper(runtime.SerializerInfo{Serializer: runtime.NewCodec(f.JSONEncoder(), api.Codecs.UniversalDecoder(fedv1beta1.SchemeGroupVersion))}) - tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: ns, - GroupName: "federation", - Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { - switch p, m := req.URL.Path, req.Method; { - case strings.HasPrefix(p, urlPrefix): - got := strings.TrimPrefix(p, urlPrefix) - if got != name { - return nil, errors.NewNotFound(federationapi.Resource("clusters"), got) - } - - switch m { - case http.MethodGet: - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &cluster)}, nil - case http.MethodDelete: - status := metav1.Status{ - Status: "Success", - } - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &status)}, nil - default: - return nil, fmt.Errorf("unexpected method: %#v\n%#v", req.URL, req) - } - default: - return nil, fmt.Errorf("unexpected request: %#v\n%#v", req.URL, req) - } - }), - } - tf.Namespace = "test" - return f -} - -func fakeUnjoinHostFactory(clusterName string) cmdutil.Factory { - secretsPrefix := "/api/v1/namespaces/federation-system/secrets/" - clusterRolePrefix := "/apis/rbac.authorization.k8s.io/v1/clusterroles/" - serviceAccountPrefix := "/api/v1/namespaces/federation-system/serviceaccounts/" - clusterRoleBindingPrefix := "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/" - - // Using dummy bytes for now - configBytes, _ := clientcmd.Write(clientcmdapi.Config{}) - secretObject := v1.Secret{ - TypeMeta: metav1.TypeMeta{ - Kind: "Secret", - APIVersion: "v1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: clusterName, - Namespace: util.DefaultFederationSystemNamespace, - }, - Data: map[string][]byte{ - "kubeconfig": configBytes, - }, - } - - f, tf, codec, _ := cmdtesting.NewAPIFactory() - ns := dynamic.ContentConfig().NegotiatedSerializer - tf.ClientConfig = kubefedtesting.DefaultClientConfig() - tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: ns, - Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { - switch p, m := req.URL.Path, req.Method; { - case strings.HasPrefix(p, secretsPrefix): - switch m { - case http.MethodDelete: - got := strings.TrimPrefix(p, secretsPrefix) - if got != clusterName { - return nil, errors.NewNotFound(api.Resource("secrets"), got) - } - status := metav1.Status{ - Status: "Success", - } - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &status)}, nil - case http.MethodGet: - got := strings.TrimPrefix(p, secretsPrefix) - if got != clusterName { - return nil, errors.NewNotFound(api.Resource("secrets"), got) - } - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &secretObject)}, nil - default: - return nil, fmt.Errorf("unexpected request method: %#v\n%#v", req.URL, req) - } - case strings.HasPrefix(p, serviceAccountPrefix) && m == http.MethodDelete: - got := strings.TrimPrefix(p, serviceAccountPrefix) - want := serviceAccountName(clusterName) - if got != want { - return nil, errors.NewNotFound(api.Resource("serviceaccounts"), got) - } - - status := metav1.Status{ - Status: "Success", - } - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &status)}, nil - case strings.HasPrefix(p, clusterRoleBindingPrefix) && m == http.MethodDelete: - got := strings.TrimPrefix(p, clusterRoleBindingPrefix) - want := util.ClusterRoleName(testFederationName, serviceAccountName(clusterName)) - if got != want { - return nil, errors.NewNotFound(api.Resource("clusterrolebindings"), got) - } - - status := metav1.Status{ - Status: "Success", - } - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &status)}, nil - case strings.HasPrefix(p, clusterRolePrefix) && m == http.MethodDelete: - got := strings.TrimPrefix(p, clusterRolePrefix) - want := util.ClusterRoleName(testFederationName, serviceAccountName(clusterName)) - if got != want { - return nil, errors.NewNotFound(api.Resource("clusterroles"), got) - } - - status := metav1.Status{ - Status: "Success", - } - return &http.Response{StatusCode: http.StatusOK, Header: kubefedtesting.DefaultHeader(), Body: kubefedtesting.ObjBody(codec, &status)}, nil - default: - return nil, fmt.Errorf("unexpected request: %#v\n%#v", req.URL, req) - } - }), - } - return f -} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/util/BUILD b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/util/BUILD deleted file mode 100644 index 66cfce819..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/util/BUILD +++ /dev/null @@ -1,47 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["util.go"], - importpath = "k8s.io/kubernetes/federation/pkg/kubefed/util", - deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//pkg/api:go_default_library", - "//pkg/apis/rbac:go_default_library", - "//pkg/apis/rbac/v1:go_default_library", - "//pkg/apis/rbac/v1alpha1:go_default_library", - "//pkg/apis/rbac/v1beta1:go_default_library", - "//pkg/client/clientset_generated/internalclientset:go_default_library", - "//pkg/kubectl/cmd:go_default_library", - "//pkg/kubectl/cmd/util:go_default_library", - "//vendor/github.com/spf13/cobra:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/util/util.go b/vendor/k8s.io/kubernetes/federation/pkg/kubefed/util/util.go deleted file mode 100644 index 427bbc279..000000000 --- a/vendor/k8s.io/kubernetes/federation/pkg/kubefed/util/util.go +++ /dev/null @@ -1,347 +0,0 @@ -/* -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 util - -import ( - "fmt" - "net" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - utilnet "k8s.io/apimachinery/pkg/util/net" - "k8s.io/client-go/discovery" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - federationapi "k8s.io/kubernetes/federation/apis/federation" - fedv1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fedclient "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/rbac" - rbacv1 "k8s.io/kubernetes/pkg/apis/rbac/v1" - rbacv1alpha1 "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1" - rbacv1beta1 "k8s.io/kubernetes/pkg/apis/rbac/v1beta1" - client "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - kubectlcmd "k8s.io/kubernetes/pkg/kubectl/cmd" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - - "github.com/spf13/cobra" - "github.com/spf13/pflag" -) - -const ( - // KubeconfigSecretDataKey is the key name used in the secret to - // stores a cluster's credentials. - KubeconfigSecretDataKey = "kubeconfig" - - // Used in and to create the kube-dns configmap storing the zone info - FedDomainMapKey = "federations" - KubeDnsConfigmapName = "kube-dns" - FedDNSZoneName = "dns-zone-name" - FedNameServer = "nameserver" - FedDNSProvider = "dns-provider" - FedDNSProviderCoreDNS = "coredns" - KubeDnsStubDomains = "stubDomains" - - // DefaultFederationSystemNamespace is the namespace in which - // federation system components are hosted. - DefaultFederationSystemNamespace = "federation-system" - - // Used to build a clientset for a cluster using the secret - userAgentName = "kubefed-tool" - KubeAPIQPS = 20.0 - KubeAPIBurst = 30 - - rbacAPINotAvailable = "RBAC API not available" -) - -// used to identify the rbac api availability error. -type NoRBACAPIError struct { - s string -} - -func (n *NoRBACAPIError) Error() string { - return n.s -} - -// AdminConfig provides a filesystem based kubeconfig (via -// `PathOptions()`) and a mechanism to talk to the federation -// host cluster and the federation control plane api server. -type AdminConfig interface { - // PathOptions provides filesystem based kubeconfig access. - PathOptions() *clientcmd.PathOptions - // FedClientSet provides a federation API compliant clientset - // to communicate with the federation control plane api server - FederationClientset(context, kubeconfigPath string) (*fedclient.Clientset, error) - // ClusterFactory provides a mechanism to communicate with the - // cluster derived from the context and the kubeconfig. - ClusterFactory(context, kubeconfigPath string) cmdutil.Factory -} - -// adminConfig implements the AdminConfig interface. -type adminConfig struct { - pathOptions *clientcmd.PathOptions -} - -// NewAdminConfig creates an admin config for `kubefed` commands. -func NewAdminConfig(pathOptions *clientcmd.PathOptions) AdminConfig { - return &adminConfig{ - pathOptions: pathOptions, - } -} - -func (a *adminConfig) PathOptions() *clientcmd.PathOptions { - return a.pathOptions -} - -func (a *adminConfig) FederationClientset(context, kubeconfigPath string) (*fedclient.Clientset, error) { - fedConfig := a.getClientConfig(context, kubeconfigPath) - fedClientConfig, err := fedConfig.ClientConfig() - if err != nil { - return nil, err - } - - return fedclient.NewForConfigOrDie(fedClientConfig), nil -} - -func (a *adminConfig) ClusterFactory(context, kubeconfigPath string) cmdutil.Factory { - hostClientConfig := a.getClientConfig(context, kubeconfigPath) - return cmdutil.NewFactory(hostClientConfig) -} - -func (a *adminConfig) getClientConfig(context, kubeconfigPath string) clientcmd.ClientConfig { - loadingRules := *a.pathOptions.LoadingRules - loadingRules.Precedence = a.pathOptions.GetLoadingPrecedence() - loadingRules.ExplicitPath = kubeconfigPath - overrides := &clientcmd.ConfigOverrides{ - CurrentContext: context, - } - - return clientcmd.NewNonInteractiveDeferredLoadingClientConfig(&loadingRules, overrides) -} - -// SubcommandOptions holds the configuration required by the subcommands of -// `kubefed`. -type SubcommandOptions struct { - Name string - Host string - FederationSystemNamespace string - Kubeconfig string -} - -func (o *SubcommandOptions) Bind(flags *pflag.FlagSet) { - flags.StringVar(&o.Kubeconfig, "kubeconfig", "", "Path to the kubeconfig file to use for CLI requests.") - flags.StringVar(&o.Host, "host-cluster-context", "", "Host cluster context") - flags.StringVar(&o.FederationSystemNamespace, "federation-system-namespace", DefaultFederationSystemNamespace, "Namespace in the host cluster where the federation system components are installed") -} - -func (o *SubcommandOptions) SetName(cmd *cobra.Command, args []string) error { - name, err := kubectlcmd.NameFromCommandArgs(cmd, args) - if err != nil { - return err - } - o.Name = name - return nil -} - -func CreateKubeconfigSecret(clientset client.Interface, kubeconfig *clientcmdapi.Config, namespace, name, federationName, clusterName string, dryRun bool) (*api.Secret, error) { - configBytes, err := clientcmd.Write(*kubeconfig) - if err != nil { - return nil, err - } - annotations := map[string]string{ - federationapi.FederationNameAnnotation: federationName, - } - - if clusterName != "" { - annotations[federationapi.ClusterNameAnnotation] = clusterName - } - - // Build the secret object with the minified and flattened - // kubeconfig content. - secret := &api.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - Annotations: annotations, - }, - Data: map[string][]byte{ - KubeconfigSecretDataKey: configBytes, - }, - } - - if !dryRun { - return clientset.Core().Secrets(namespace).Create(secret) - } - return secret, nil -} - -var kubeconfigGetterForSecret = func(secret *api.Secret) clientcmd.KubeconfigGetter { - return func() (*clientcmdapi.Config, error) { - var data []byte - ok := false - data, ok = secret.Data[KubeconfigSecretDataKey] - if !ok { - return nil, fmt.Errorf("secret does not have data with key: %s", KubeconfigSecretDataKey) - } - return clientcmd.Load(data) - } -} - -func GetClientsetFromSecret(secret *api.Secret, serverAddress string) (*client.Clientset, error) { - clusterConfig, err := buildConfigFromSecret(secret, serverAddress) - if err == nil && clusterConfig != nil { - clientset := client.NewForConfigOrDie(restclient.AddUserAgent(clusterConfig, userAgentName)) - return clientset, nil - } - return nil, err -} - -func GetServerAddress(c *fedv1beta1.Cluster) (string, error) { - hostIP, err := utilnet.ChooseHostInterface() - if err != nil { - return "", err - } - - for _, item := range c.Spec.ServerAddressByClientCIDRs { - _, cidrnet, err := net.ParseCIDR(item.ClientCIDR) - if err != nil { - return "", err - } - if cidrnet.Contains(hostIP) { - return item.ServerAddress, nil - } - } - - return "", nil -} - -func buildConfigFromSecret(secret *api.Secret, serverAddress string) (*restclient.Config, error) { - var clusterConfig *restclient.Config - var err error - // Pre-1.7, the secret contained a serialized kubeconfig which contained appropriate credentials. - // Post-1.7, the secret contains credentials for a service account. - // Check for the service account credentials, and use them if they exist; if not, use the - // serialized kubeconfig. - token, tokenFound := secret.Data["token"] - ca, caFound := secret.Data["ca.crt"] - if tokenFound != caFound { - return nil, fmt.Errorf("secret should have values for either both 'ca.crt' and 'token' in its Data, or neither: %v", secret) - } else if tokenFound && caFound { - clusterConfig, err = clientcmd.BuildConfigFromFlags(serverAddress, "") - clusterConfig.CAData = ca - clusterConfig.BearerToken = string(token) - } else { - kubeconfigGetter := kubeconfigGetterForSecret(secret) - clusterConfig, err = clientcmd.BuildConfigFromKubeconfigGetter(serverAddress, kubeconfigGetter) - } - - if err != nil { - return nil, err - } - - clusterConfig.QPS = KubeAPIQPS - clusterConfig.Burst = KubeAPIBurst - - return clusterConfig, nil -} - -// GetVersionedClientForRBACOrFail discovers the versioned rbac APIs and gets the versioned -// clientset for either the preferred version or the first listed version (if no preference listed) -// TODO: We need to evaluate the usage of RESTMapper interface to achieve the same functionality -func GetVersionedClientForRBACOrFail(hostFactory cmdutil.Factory) (client.Interface, error) { - discoveryclient, err := hostFactory.DiscoveryClient() - if err != nil { - return nil, err - } - - rbacVersion, err := getRBACVersion(discoveryclient) - if err != nil && !discoveryclient.Fresh() { - discoveryclient.Invalidate() - rbacVersion, err = getRBACVersion(discoveryclient) - } - if err != nil { - return nil, err - } - - return hostFactory.ClientSetForVersion(rbacVersion) -} - -func getRBACVersion(discoveryclient discovery.CachedDiscoveryInterface) (*schema.GroupVersion, error) { - - groupList, err := discoveryclient.ServerGroups() - if err != nil { - return nil, fmt.Errorf("Couldn't get clientset to create RBAC roles in the host cluster: %v", err) - } - - // These are the RBAC versions we can speak - knownVersions := map[schema.GroupVersion]bool{ - rbacv1.SchemeGroupVersion: true, - rbacv1alpha1.SchemeGroupVersion: true, - rbacv1beta1.SchemeGroupVersion: true, - } - - // This holds any RBAC versions listed in discovery we do not know how to speak - unknownVersions := []schema.GroupVersion{} - - for _, g := range groupList.Groups { - if g.Name == rbac.GroupName { - if g.PreferredVersion.GroupVersion != "" { - gv, err := schema.ParseGroupVersion(g.PreferredVersion.GroupVersion) - if err != nil { - return nil, err - } - if knownVersions[gv] { - return &gv, nil - } - } - for _, version := range g.Versions { - if version.GroupVersion != "" { - gv, err := schema.ParseGroupVersion(version.GroupVersion) - if err != nil { - return nil, err - } - if knownVersions[gv] { - return &gv, nil - } else { - unknownVersions = append(unknownVersions, gv) - } - } - } - } - } - - if len(unknownVersions) > 0 { - return nil, &NoRBACAPIError{fmt.Sprintf("%s\nUnknown RBAC API versions: %v", rbacAPINotAvailable, unknownVersions)} - } - - return nil, &NoRBACAPIError{rbacAPINotAvailable} -} - -// ClusterServiceAccountName returns the name of a service account -// whose credentials are used by the host cluster to access the -// client cluster. -func ClusterServiceAccountName(joiningClusterName, hostContext string) string { - return fmt.Sprintf("%s-%s", joiningClusterName, hostContext) -} - -// ClusterRoleName returns the name of a ClusterRole and its associated -// ClusterRoleBinding that are used to allow the service account to -// access necessary resources on the cluster. -func ClusterRoleName(federationName, serviceAccountName string) string { - return fmt.Sprintf("federation-controller-manager:%s-%s", federationName, serviceAccountName) -} diff --git a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/BUILD b/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/BUILD deleted file mode 100644 index f42e990f8..000000000 --- a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/BUILD +++ /dev/null @@ -1,68 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "admission_test.go", - "merge_test.go", - ], - importpath = "k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy", - library = ":go_default_library", - deps = [ - "//pkg/api:go_default_library", - "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/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/apiserver/pkg/admission:go_default_library", - "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "admission.go", - "merge.go", - "query.go", - ], - importpath = "k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy", - deps = [ - "//pkg/api:go_default_library", - "//pkg/api/ref:go_default_library", - "//pkg/client/clientset_generated/internalclientset:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta: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", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/yaml:go_default_library", - "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/webhook:go_default_library", - "//vendor/k8s.io/client-go/dynamic:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/admission.go b/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/admission.go deleted file mode 100644 index 0397554bc..000000000 --- a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/admission.go +++ /dev/null @@ -1,213 +0,0 @@ -/* -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 schedulingpolicy implements a webhook that queries an external API -// to obtain scheduling decisions for Federated sources. -package schedulingpolicy - -import ( - "fmt" - "io" - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/apiserver/pkg/admission" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/ref" - "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" -) - -const ( - pluginName = "SchedulingPolicy" - configKey = "schedulingPolicy" - policyConfigMapNamespace = "kube-federation-scheduling-policy" - - // Default backoff delay for policy engine query retries. The actual - // backoff implementation is handled by k8s.io/apiserver/pkg/util/webhook. - // If the admission controller config file does not specify a backoff, this - // one is used. - defaultRetryBackoff = time.Millisecond * 100 -) - -type admissionConfig struct { - Kubeconfig string `json:"kubeconfig"` - RetryBackoff time.Duration `json:"retryBackoff"` -} - -type admissionController struct { - *admission.Handler - policyEngineClient *rest.RESTClient // client to communicate with policy engine - policyEngineRetryBackoff time.Duration // backoff for policy engine queries - client internalclientset.Interface // client to communicate with federation-apiserver -} - -// Register registers the plugin. -func Register(plugins *admission.Plugins) { - plugins.Register(pluginName, func(file io.Reader) (admission.Interface, error) { - return newAdmissionController(file) - }) -} - -func newAdmissionController(file io.Reader) (*admissionController, error) { - config, err := loadConfig(file) - if err != nil { - return nil, err - } - - policyEngineClient, err := loadRestClient(config.Kubeconfig) - if err != nil { - return nil, err - } - - c := &admissionController{ - Handler: admission.NewHandler(admission.Create, admission.Update), - policyEngineClient: policyEngineClient, - policyEngineRetryBackoff: config.RetryBackoff, - } - - return c, nil -} - -func (c *admissionController) Validate() error { - if c.client == nil { - return fmt.Errorf("%s requires a client", pluginName) - } - return nil -} - -func (c *admissionController) SetInternalKubeClientSet(client internalclientset.Interface) { - c.client = client -} - -func (c *admissionController) Admit(a admission.Attributes) (err error) { - exists, err := c.policyExists() - if err != nil { - return c.handleError(a, err) - } - - if !exists { - return nil - } - - obj := a.GetObject() - decision, err := newPolicyEngineQuery(c.policyEngineClient, c.policyEngineRetryBackoff, obj, a.GetKind()).Do() - - if err != nil { - return c.handleError(a, err) - } - - if err := decision.Error(); err != nil { - return c.handleError(a, err) - } - - mergeAnnotations(obj, decision.Annotations) - - return nil -} - -func (c *admissionController) handleError(a admission.Attributes, err error) error { - - c.publishEvent(a, err.Error()) - - return admission.NewForbidden(a, err) -} - -func (c *admissionController) publishEvent(a admission.Attributes, msg string) { - - obj := a.GetObject() - - ref, err := ref.GetReference(api.Scheme, obj) - if err != nil { - runtime.HandleError(err) - return - } - - event := &api.Event{ - InvolvedObject: *ref, - Message: msg, - Source: api.EventSource{ - Component: fmt.Sprintf("schedulingpolicy"), - }, - Type: "Warning", - } - - if _, err := c.client.Core().Events(a.GetNamespace()).Create(event); err != nil { - runtime.HandleError(err) - return - } -} - -func (c *admissionController) policyExists() (bool, error) { - lst, err := c.client.Core().ConfigMaps(policyConfigMapNamespace).List(metav1.ListOptions{}) - if err != nil { - return true, err - } - return len(lst.Items) > 0, nil -} - -func loadConfig(file io.Reader) (*admissionConfig, error) { - var cfg admissionConfig - if file == nil { - return nil, fmt.Errorf("--admission-control-config-file not specified or invalid") - } - - if err := yaml.NewYAMLOrJSONDecoder(file, 4096).Decode(&cfg); err != nil { - return nil, err - } - - if len(cfg.Kubeconfig) == 0 { - return nil, fmt.Errorf("kubeconfig path must not be empty") - } - - if cfg.RetryBackoff == 0 { - cfg.RetryBackoff = defaultRetryBackoff - } else { - // Scale up value from config (which is unmarshalled as ns). - cfg.RetryBackoff *= time.Millisecond - } - - if cfg.RetryBackoff.Nanoseconds() < 0 { - return nil, fmt.Errorf("retryBackoff must not be negative") - } - - return &cfg, nil -} - -func loadRestClient(kubeConfigFile string) (*rest.RESTClient, error) { - - loadingRules := clientcmd.NewDefaultClientConfigLoadingRules() - loadingRules.ExplicitPath = kubeConfigFile - loader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, &clientcmd.ConfigOverrides{}) - - clientConfig, err := loader.ClientConfig() - if err != nil { - return nil, err - } - - clientConfig.ContentConfig.NegotiatedSerializer = dynamic.ContentConfig().NegotiatedSerializer - - restClient, err := rest.UnversionedRESTClientFor(clientConfig) - if err != nil { - return nil, err - } - - return restClient, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/admission_test.go b/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/admission_test.go deleted file mode 100644 index 787134332..000000000 --- a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/admission_test.go +++ /dev/null @@ -1,474 +0,0 @@ -/* -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 schedulingpolicy - -import ( - "bytes" - "encoding/json" - "fmt" - "html/template" - "io" - "io/ioutil" - "net/http" - "net/http/httptest" - "os" - "reflect" - "testing" - - extensionsv1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/authentication/user" - core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" -) - -func TestNewAdmissionController(t *testing.T) { - tempfile, err := ioutil.TempFile("", "") - if err != nil { - t.Fatalf("Unexpected error while creating temporary file: %v", err) - } - p := tempfile.Name() - defer os.Remove(p) - - kubeconfig := ` -clusters: - - name: foo - cluster: - server: https://example.com -users: - - name: alice - user: - token: deadbeef -contexts: - - name: default - context: - cluster: foo - user: alice -current-context: default -` - - if _, err := tempfile.WriteString(kubeconfig); err != nil { - t.Fatalf("Unexpected error while writing test kubeconfig file: %v", err) - } - - tests := []struct { - note string - input string - wantErr bool - }{ - {"no config", "", true}, - {"bad json", `{"foo": `, true}, - {"bad yaml", `{foo" `, true}, - { - "missing kubeconfig", - `{"foo": {}}`, - true, - }, - { - "kubeconfig not found", - `{ - "kubeconfig": "/kube-federation-scheduling-policy-file-not-found-test" - }`, - true, - }, - { - "bad retry backoff", - fmt.Sprintf(` - { - "kubeconfig": %q, - "retryBackoff": -1 - } - `, p), - true, - }, - { - "a valid config", - fmt.Sprintf(` - { - "kubeconfig": %q - } - `, p), - false, - }, - { - "a valid config with retry backoff", - fmt.Sprintf(` - { - "kubeconfig": %q, - "retryBackoff": 200 - } - `, p), - false, - }, - } - - for _, tc := range tests { - var file io.Reader - if tc.input == "" { - file = nil - } else { - file = bytes.NewBufferString(tc.input) - } - - _, err := newAdmissionController(file) - - if tc.wantErr && err == nil { - t.Errorf("%v: Expected error", tc.note) - } else if !tc.wantErr && err != nil { - t.Errorf("%v: Unexpected error: %v", tc.note, err) - } - } -} - -func TestAdmitQueryPayload(t *testing.T) { - var body interface{} - - serve := func(w http.ResponseWriter, r *http.Request) { - if err := json.NewDecoder(r.Body).Decode(&body); err != nil { - t.Fatalf("Unexpected error reading admission payload: %v", err) - } - - // No errors or annotations. - w.Write([]byte(`{}`)) - } - - controller, err := newControllerWithTestServer(serve, true) - if err != nil { - t.Fatalf("Unexpected error while creating test admission controller/server: %v", err) - } - - rs := makeReplicaSet() - rs.Spec.MinReadySeconds = 100 - attrs := makeAdmissionRecord(rs) - err = controller.Admit(attrs) - - if err != nil { - t.Fatalf("Unexpected error from admission controller: %v", err) - } - - obj := body.(map[string]interface{}) - metadata := obj["metadata"].(map[string]interface{}) - spec := obj["spec"].(map[string]interface{}) - name := metadata["name"].(string) - minReadySeconds := spec["minReadySeconds"].(float64) - - expectedName := "myapp" - if name != expectedName { - t.Fatalf("Expected replicaset.metadata.name to be %v but got: %v", expectedName, name) - } - - expectedMinReadySeconds := float64(100) - if minReadySeconds != expectedMinReadySeconds { - t.Fatalf("Expected replicaset.spec.minReadySeconds to be %v but got: %v", expectedMinReadySeconds, minReadySeconds) - } -} - -func TestAdmitFailInternal(t *testing.T) { - serve := func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - } - - controller, err := newControllerWithTestServer(serve, false) - if err != nil { - t.Fatalf("Unexpected error while creating test admission controller/server: %v", err) - } - - mockClient := &fake.Clientset{} - mockClient.AddReactor("list", "configmaps", func(action core.Action) (bool, runtime.Object, error) { - return true, nil, fmt.Errorf("unknown error") - }) - - controller.SetInternalKubeClientSet(mockClient) - - attrs := makeAdmissionRecord(makeReplicaSet()) - err = controller.Admit(attrs) - - if err == nil { - t.Fatalf("Expected admission controller to fail closed") - } -} - -func TestAdmitPolicyDoesNotExist(t *testing.T) { - - controller, err := newControllerWithTestServer(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(404) - }, false) - if err != nil { - t.Fatalf("Unexpected error while creating test admission controller/server: %v", err) - } - - attrs := makeAdmissionRecord(makeReplicaSet()) - err = controller.Admit(attrs) - - if err != nil { - t.Fatalf("Expected admission controller to fail open but got error: %v", err) - } -} - -func TestAdmitFailClosed(t *testing.T) { - tests := []struct { - note string - statusCode int - body string - }{ - {"server error", 500, ""}, - {"unmarshal error", 200, "{"}, - {"undefined result", 404, ``}, - {"policy errors", 200, `{"errors": ["conflicting replica-set-preferences"]}`}, - } - - for _, tc := range tests { - - serve := func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(tc.statusCode) - if len(tc.body) > 0 { - w.Write([]byte(tc.body)) - } - } - - controller, err := newControllerWithTestServer(serve, true) - - if err != nil { - t.Errorf("%v: Unexpected error while creating test admission controller/server: %v", tc.note, err) - continue - } - - obj := makeReplicaSet() - attrs := admission.NewAttributesRecord(obj, nil, obj.GroupVersionKind(), obj.Namespace, obj.Name, api.Resource("replicasets").WithVersion("version"), "", admission.Create, &user.DefaultInfo{}) - err = controller.Admit(attrs) - if err == nil { - t.Errorf("%v: Expected admission controller to fail closed", tc.note) - } - - } -} - -func TestAdmitRetries(t *testing.T) { - var numQueries int - - controller, err := newControllerWithTestServer(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(500) - numQueries++ - }, true) - - if err != nil { - t.Fatalf("Unexpected error while creating test admission controller/server: %v", err) - } - - err = controller.Admit(makeAdmissionRecord(makeReplicaSet())) - - if err == nil { - t.Fatalf("Expected admission controller to fail closed") - } - - if numQueries <= 1 { - t.Fatalf("Expected multiple queries/retries but got (numQueries): %v", numQueries) - } -} - -func TestAdmitSuccessWithAnnotationMerge(t *testing.T) { - controller, err := newControllerWithTestServer(func(w http.ResponseWriter, r *http.Request) { - w.Write([]byte(` - { - "annotations": { - "foo": "bar-2" - } - } - `)) - }, true) - if err != nil { - t.Fatalf("Unexpected error while creating test admission controller/server: %v", err) - } - - obj := makeReplicaSet() - obj.Annotations = map[string]string{} - obj.Annotations["foo"] = "bar" - obj.Annotations["bar"] = "baz" - - attrs := admission.NewAttributesRecord(obj, nil, obj.GroupVersionKind(), obj.Namespace, obj.Name, api.Resource("replicasets").WithVersion("version"), "", admission.Create, &user.DefaultInfo{}) - err = controller.Admit(attrs) - if err != nil { - t.Fatalf("Unexpected error from admission controller: %v", err) - } - - annotations := attrs.GetObject().(*extensionsv1.ReplicaSet).Annotations - expected := map[string]string{ - "foo": "bar-2", - "bar": "baz", - } - - if !reflect.DeepEqual(annotations, expected) { - t.Fatalf("Expected annotations to be %v but got: %v", expected, annotations) - } -} - -func newControllerWithTestServer(f func(w http.ResponseWriter, r *http.Request), policiesExist bool) (*admissionController, error) { - server, err := newTestServer(f) - if err != nil { - return nil, err - } - - kubeConfigFile, err := makeKubeConfigFile(server.URL, "/some/path/to/decision") - if err != nil { - return nil, err - } - - defer os.Remove(kubeConfigFile) - - configFile, err := makeAdmissionControlConfigFile(kubeConfigFile) - if err != nil { - return nil, err - } - - defer os.Remove(configFile) - - file, err := os.Open(configFile) - if err != nil { - return nil, err - } - defer file.Close() - - controller, err := newAdmissionController(file) - if err != nil { - return nil, err - } - - mockClient := &fake.Clientset{} - - var items []api.ConfigMap - - if policiesExist { - items = append(items, api.ConfigMap{}) - } - - mockClient.AddReactor("list", "configmaps", func(action core.Action) (bool, runtime.Object, error) { - if action.GetNamespace() == policyConfigMapNamespace { - return true, &api.ConfigMapList{Items: items}, nil - } - return true, nil, nil - }) - - controller.SetInternalKubeClientSet(mockClient) - - return controller, nil -} - -func newTestServer(f func(w http.ResponseWriter, r *http.Request)) (*httptest.Server, error) { - server := httptest.NewUnstartedServer(http.HandlerFunc(f)) - server.Start() - return server, nil -} - -func makeAdmissionControlConfigFile(kubeConfigFile string) (string, error) { - tempfile, err := ioutil.TempFile("", "") - if err != nil { - return "", err - } - - p := tempfile.Name() - - configFileTmpl := ` -kubeconfig: {{ .KubeConfigFile }} -retryBackoff: {{ .RetryBackoff }} -` - type configFileTemplateInput struct { - KubeConfigFile string - RetryBackoff int - } - - input := configFileTemplateInput{ - KubeConfigFile: kubeConfigFile, - RetryBackoff: 1, - } - - tmpl, err := template.New("scheduling-policy-config").Parse(configFileTmpl) - if err != nil { - return "", err - } - - if err := tmpl.Execute(tempfile, input); err != nil { - return "", err - } - - return p, nil -} - -func makeKubeConfigFile(baseURL, path string) (string, error) { - tempfile, err := ioutil.TempFile("", "") - if err != nil { - return "", err - } - - p := tempfile.Name() - - kubeConfigTmpl := ` -clusters: - - name: test - cluster: - server: {{ .BaseURL }}{{ .Path }} -users: - - name: alice - user: - token: deadbeef -contexts: - - name: default - context: - cluster: test - user: alice -current-context: default` - - type kubeConfigTemplateInput struct { - BaseURL string - Path string - } - - input := kubeConfigTemplateInput{ - BaseURL: baseURL, - Path: path, - } - - tmpl, err := template.New("kubeconfig").Parse(kubeConfigTmpl) - if err != nil { - return "", err - } - - if err := tmpl.Execute(tempfile, input); err != nil { - return "", err - } - - return p, nil -} - -func makeAdmissionRecord(obj *extensionsv1.ReplicaSet) admission.Attributes { - return admission.NewAttributesRecord(obj, nil, obj.GroupVersionKind(), obj.Namespace, obj.Name, api.Resource("replicasets").WithVersion("version"), "", admission.Create, &user.DefaultInfo{}) -} - -func makeReplicaSet() *extensionsv1.ReplicaSet { - return &extensionsv1.ReplicaSet{ - TypeMeta: metav1.TypeMeta{ - Kind: "ReplicaSet", - APIVersion: "extensions/v1beta1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "myapp", - }, - Spec: extensionsv1.ReplicaSetSpec{}, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/merge_test.go b/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/merge_test.go deleted file mode 100644 index 55493978b..000000000 --- a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/merge_test.go +++ /dev/null @@ -1,66 +0,0 @@ -/* -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 schedulingpolicy - -import ( - "encoding/json" - "reflect" - "testing" - - "k8s.io/api/core/v1" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestMergeAnnotations(t *testing.T) { - tests := []struct { - note string - input *v1.Pod - annotations string - expected string - }{ - {"nil annotations", &v1.Pod{}, `{"foo": "bar"}`, `{"foo": "bar"}`}, - {"empty annotations", &v1.Pod{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{}}}, `{"foo": "bar"}`, `{"foo": "bar"}`}, - {"existing annotation", &v1.Pod{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"foo": "baz"}}}, `{"foo": "bar"}`, `{"foo": "bar"}`}, - {"different annotation", &v1.Pod{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"baz": "qux"}}}, `{"foo": "bar"}`, `{"baz": "qux", "foo": "bar"}`}, - } - - for _, tc := range tests { - - annotations := map[string]string{} - - if err := json.Unmarshal([]byte(tc.annotations), &annotations); err != nil { - panic(err) - } - - expected := map[string]string{} - - if err := json.Unmarshal([]byte(tc.expected), &expected); err != nil { - panic(err) - } - - err := mergeAnnotations(tc.input, annotations) - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - - if !reflect.DeepEqual(tc.input.ObjectMeta.Annotations, expected) { - t.Errorf("%v: Expected annotations to equal %v but got: %v", tc.note, expected, tc.input.ObjectMeta.Annotations) - } - } - -} diff --git a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/query.go b/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/query.go deleted file mode 100644 index 206f2c404..000000000 --- a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/query.go +++ /dev/null @@ -1,145 +0,0 @@ -/* -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 schedulingpolicy - -import ( - "bytes" - "encoding/json" - "fmt" - "strings" - "time" - - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apiserver/pkg/util/webhook" - "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" -) - -// policyUndefinedError represents an undefined response from the policy -// engine. This typically means the relevant policy has not been loaded into -// the engine. -type policyUndefinedError struct{} - -func (policyUndefinedError) Error() string { - return "policy decision is undefined" -} - -// policyEngineQuery represents a single query against the policy engine. -type policyEngineQuery struct { - client *rest.RESTClient - retryBackoff time.Duration - obj runtime.Object - gvk schema.GroupVersionKind -} - -// newPolicyEngineQuery returns a policyEngineQuery that can be executed. -func newPolicyEngineQuery(client *rest.RESTClient, retryBackoff time.Duration, obj runtime.Object, gvk schema.GroupVersionKind) *policyEngineQuery { - return &policyEngineQuery{ - client: client, - retryBackoff: retryBackoff, - obj: obj, - gvk: gvk, - } -} - -// Do returns the result of the policy engine query. If the policy decision is -// undefined or an unknown error occurs, err is non-nil. Otherwise, result is -// non-nil and contains the result of policy evaluation. -func (query *policyEngineQuery) Do() (decision *policyDecision, err error) { - - bs, err := query.encode() - if err != nil { - return nil, err - } - - var result rest.Result - - err = webhook.WithExponentialBackoff(query.retryBackoff, func() error { - result = query.client.Post(). - Body(bs). - Do() - return result.Error() - }) - - if err != nil { - if errors.IsNotFound(err) { - return nil, policyUndefinedError{} - } - return nil, err - } - - return decodeResult(result) -} - -// encode returns the encoded version of the query's runtime.Object. -func (query *policyEngineQuery) encode() ([]byte, error) { - - var info runtime.SerializerInfo - infos := api.Codecs.SupportedMediaTypes() - - for i := range infos { - if infos[i].MediaType == "application/json" { - info = infos[i] - } - } - - if info.Serializer == nil { - return nil, fmt.Errorf("serialization not supported") - } - - codec := api.Codecs.EncoderForVersion(info.Serializer, query.gvk.GroupVersion()) - - var buf bytes.Buffer - if err := codec.Encode(query.obj, &buf); err != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -// policyDecision represents a response from the policy engine. -type policyDecision struct { - Errors []string `json:"errors,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` -} - -// Error returns an error if the policy raised an error. -func (d *policyDecision) Error() error { - if len(d.Errors) == 0 { - return nil - } - return fmt.Errorf("reason(s): %v", strings.Join(d.Errors, "; ")) -} - -func decodeResult(result rest.Result) (*policyDecision, error) { - - bs, err := result.Raw() - if err != nil { - return nil, err - } - - buf := bytes.NewBuffer(bs) - var decision policyDecision - - if err := json.NewDecoder(buf).Decode(&decision); err != nil { - return nil, err - } - - return &decision, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/registry/cluster/BUILD b/vendor/k8s.io/kubernetes/federation/registry/cluster/BUILD deleted file mode 100644 index aad940a50..000000000 --- a/vendor/k8s.io/kubernetes/federation/registry/cluster/BUILD +++ /dev/null @@ -1,66 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "registry.go", - "strategy.go", - ], - importpath = "k8s.io/kubernetes/federation/registry/cluster", - deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/validation:go_default_library", - "//pkg/api:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["strategy_test.go"], - importpath = "k8s.io/kubernetes/federation/registry/cluster", - library = ":go_default_library", - deps = [ - "//federation/apis/federation:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/api/testing:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/registry/cluster/etcd:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/etcd.go b/vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/etcd.go deleted file mode 100644 index 082de2529..000000000 --- a/vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/etcd.go +++ /dev/null @@ -1,68 +0,0 @@ -/* -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 etcd - -import ( - "k8s.io/apimachinery/pkg/runtime" - genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" - "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/registry/cluster" -) - -type REST struct { - *genericregistry.Store -} - -type StatusREST struct { - store *genericregistry.Store -} - -func (r *StatusREST) New() runtime.Object { - return &federation.Cluster{} -} - -// Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) -} - -// NewREST returns a RESTStorage object that will work against clusters. -func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { - store := &genericregistry.Store{ - NewFunc: func() runtime.Object { return &federation.Cluster{} }, - NewListFunc: func() runtime.Object { return &federation.ClusterList{} }, - PredicateFunc: cluster.MatchCluster, - DefaultQualifiedResource: federation.Resource("clusters"), - - CreateStrategy: cluster.Strategy, - UpdateStrategy: cluster.Strategy, - DeleteStrategy: cluster.Strategy, - ReturnDeletedObject: true, - } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: cluster.GetAttrs} - if err := store.CompleteWithOptions(options); err != nil { - panic(err) // TODO: Propagate error up - } - - statusStore := *store - statusStore.UpdateStrategy = cluster.StatusStrategy - - return &REST{store}, &StatusREST{store: &statusStore} -} diff --git a/vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/etcd_test.go b/vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/etcd_test.go deleted file mode 100644 index f263f3f9c..000000000 --- a/vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/etcd_test.go +++ /dev/null @@ -1,146 +0,0 @@ -/* -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 etcd - -import ( - "testing" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apiserver/pkg/registry/generic" - etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/registry/registrytest" -) - -func newStorage(t *testing.T) (*REST, *etcdtesting.EtcdTestServer) { - storageConfig, server := registrytest.NewEtcdStorage(t, federation.GroupName) - restOptions := generic.RESTOptions{ - StorageConfig: storageConfig, - Decorator: generic.UndecoratedStorage, - DeleteCollectionWorkers: 1, - ResourcePrefix: "clusters", - } - storage, _ := NewREST(restOptions) - return storage, server -} - -func validNewCluster() *federation.Cluster { - return &federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Labels: map[string]string{ - "name": "foo", - }, - }, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - Status: federation.ClusterStatus{ - Conditions: []federation.ClusterCondition{ - {Type: federation.ClusterReady, Status: api.ConditionFalse}, - }, - }, - } -} - -func TestCreate(t *testing.T) { - storage, server := newStorage(t) - defer server.Terminate(t) - test := registrytest.New(t, storage.Store).ClusterScope() - cluster := validNewCluster() - cluster.ObjectMeta = metav1.ObjectMeta{GenerateName: "foo"} - test.TestCreate( - cluster, - &federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{Name: "-a123-a_"}, - }, - ) -} - -func TestUpdate(t *testing.T) { - storage, server := newStorage(t) - defer server.Terminate(t) - test := registrytest.New(t, storage.Store).ClusterScope() - test.TestUpdate( - // valid - validNewCluster(), - // updateFunc - func(obj runtime.Object) runtime.Object { - object := obj.(*federation.Cluster) - object.Spec.SecretRef = &api.LocalObjectReference{ - Name: "bar", - } - return object - }, - ) -} - -func TestDelete(t *testing.T) { - storage, server := newStorage(t) - defer server.Terminate(t) - test := registrytest.New(t, storage.Store).ClusterScope().ReturnDeletedObject() - test.TestDelete(validNewCluster()) -} - -func TestGet(t *testing.T) { - storage, server := newStorage(t) - defer server.Terminate(t) - test := registrytest.New(t, storage.Store).ClusterScope() - test.TestGet(validNewCluster()) -} - -func TestList(t *testing.T) { - storage, server := newStorage(t) - defer server.Terminate(t) - test := registrytest.New(t, storage.Store).ClusterScope() - test.TestList(validNewCluster()) -} - -func TestWatch(t *testing.T) { - storage, server := newStorage(t) - defer server.Terminate(t) - test := registrytest.New(t, storage.Store).ClusterScope() - test.TestWatch( - validNewCluster(), - // matching labels - []labels.Set{ - {"name": "foo"}, - }, - // not matching labels - []labels.Set{ - {"name": "bar"}, - {"foo": "bar"}, - }, - // matching fields - []fields.Set{ - {"metadata.name": "foo"}, - }, - // not matching fields - []fields.Set{ - {"metadata.name": "bar"}, - }, - ) -} diff --git a/vendor/k8s.io/kubernetes/federation/registry/cluster/registry.go b/vendor/k8s.io/kubernetes/federation/registry/cluster/registry.go deleted file mode 100644 index eca1cf7a1..000000000 --- a/vendor/k8s.io/kubernetes/federation/registry/cluster/registry.go +++ /dev/null @@ -1,82 +0,0 @@ -/* -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 cluster - -import ( - metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/watch" - genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/federation/apis/federation" -) - -// Registry is an interface implemented by things that know how to store Cluster objects. -type Registry interface { - ListClusters(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*federation.ClusterList, error) - WatchCluster(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) - GetCluster(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*federation.Cluster, error) - CreateCluster(ctx genericapirequest.Context, cluster *federation.Cluster) error - UpdateCluster(ctx genericapirequest.Context, cluster *federation.Cluster) error - DeleteCluster(ctx genericapirequest.Context, name string) error -} - -// storage puts strong typing around storage calls -type storage struct { - rest.StandardStorage -} - -// NewRegistry returns a new Registry interface for the given Storage. Any mismatched -// types will panic. -func NewRegistry(s rest.StandardStorage) Registry { - return &storage{s} -} - -func (s *storage) ListClusters(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*federation.ClusterList, error) { - obj, err := s.List(ctx, options) - if err != nil { - return nil, err - } - return obj.(*federation.ClusterList), nil -} - -func (s *storage) WatchCluster(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) { - return s.Watch(ctx, options) -} - -func (s *storage) GetCluster(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*federation.Cluster, error) { - obj, err := s.Get(ctx, name, options) - if err != nil { - return nil, err - } - return obj.(*federation.Cluster), nil -} - -func (s *storage) CreateCluster(ctx genericapirequest.Context, cluster *federation.Cluster) error { - _, err := s.Create(ctx, cluster, false) - return err -} - -func (s *storage) UpdateCluster(ctx genericapirequest.Context, cluster *federation.Cluster) error { - _, _, err := s.Update(ctx, cluster.Name, rest.DefaultUpdatedObjectInfo(cluster)) - return err -} - -func (s *storage) DeleteCluster(ctx genericapirequest.Context, name string) error { - _, _, err := s.Delete(ctx, name, nil) - return err -} diff --git a/vendor/k8s.io/kubernetes/federation/registry/cluster/strategy.go b/vendor/k8s.io/kubernetes/federation/registry/cluster/strategy.go deleted file mode 100644 index c278fd739..000000000 --- a/vendor/k8s.io/kubernetes/federation/registry/cluster/strategy.go +++ /dev/null @@ -1,121 +0,0 @@ -/* -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 cluster - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/validation/field" - genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" - "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/apis/federation/validation" - "k8s.io/kubernetes/pkg/api" -) - -type clusterStrategy struct { - runtime.ObjectTyper - names.NameGenerator -} - -var Strategy = clusterStrategy{api.Scheme, names.SimpleNameGenerator} - -func (clusterStrategy) NamespaceScoped() bool { - return false -} - -func ClusterToSelectableFields(cluster *federation.Cluster) fields.Set { - return generic.ObjectMetaFieldsSet(&cluster.ObjectMeta, false) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - cluster, ok := obj.(*federation.Cluster) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a cluster.") - } - return labels.Set(cluster.ObjectMeta.Labels), ClusterToSelectableFields(cluster), cluster.Initializers != nil, nil -} - -func MatchCluster(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// PrepareForCreate clears fields that are not allowed to be set by end users on creation. -func (clusterStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { - cluster := obj.(*federation.Cluster) - cluster.Status = federation.ClusterStatus{} -} - -// Validate validates a new cluster. -func (clusterStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { - cluster := obj.(*federation.Cluster) - return validation.ValidateCluster(cluster) -} - -// Canonicalize normalizes the object after validation. -func (clusterStrategy) Canonicalize(obj runtime.Object) { -} - -// AllowCreateOnUpdate is false for cluster. -func (clusterStrategy) AllowCreateOnUpdate() bool { - return false -} - -// PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (clusterStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { - cluster := obj.(*federation.Cluster) - oldCluster := old.(*federation.Cluster) - cluster.Status = oldCluster.Status -} - -// ValidateUpdate is the default update validation for an end user. -func (clusterStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { - return validation.ValidateClusterUpdate(obj.(*federation.Cluster), old.(*federation.Cluster)) -} -func (clusterStrategy) AllowUnconditionalUpdate() bool { - return true -} - -type clusterStatusStrategy struct { - clusterStrategy -} - -var StatusStrategy = clusterStatusStrategy{Strategy} - -func (clusterStatusStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { - _ = obj.(*federation.Cluster) -} -func (clusterStatusStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { - cluster := obj.(*federation.Cluster) - oldCluster := old.(*federation.Cluster) - cluster.Spec = oldCluster.Spec -} - -// ValidateUpdate is the default update validation for an end user. -func (clusterStatusStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { - return validation.ValidateClusterStatusUpdate(obj.(*federation.Cluster), old.(*federation.Cluster)) -} diff --git a/vendor/k8s.io/kubernetes/federation/registry/cluster/strategy_test.go b/vendor/k8s.io/kubernetes/federation/registry/cluster/strategy_test.go deleted file mode 100644 index 8a53ad3f2..000000000 --- a/vendor/k8s.io/kubernetes/federation/registry/cluster/strategy_test.go +++ /dev/null @@ -1,167 +0,0 @@ -/* -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 cluster - -import ( - "testing" - - "reflect" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" - genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/pkg/api" - apitesting "k8s.io/kubernetes/pkg/api/testing" - - // install all api groups for testing - _ "k8s.io/kubernetes/pkg/api/testapi" -) - -func validNewCluster() *federation.Cluster { - return &federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - ResourceVersion: "4", - Labels: map[string]string{ - "name": "foo", - }, - }, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - Status: federation.ClusterStatus{ - Conditions: []federation.ClusterCondition{ - {Type: federation.ClusterReady, Status: api.ConditionTrue}, - }, - }, - } -} - -func invalidNewCluster() *federation.Cluster { - // Create a cluster with empty ServerAddressByClientCIDRs (which is a required field). - return &federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo2", - ResourceVersion: "5", - }, - Status: federation.ClusterStatus{ - Conditions: []federation.ClusterCondition{ - {Type: federation.ClusterReady, Status: api.ConditionFalse}, - }, - }, - } -} - -func TestClusterStrategy(t *testing.T) { - ctx := genericapirequest.NewDefaultContext() - if Strategy.NamespaceScoped() { - t.Errorf("Cluster should not be namespace scoped") - } - if Strategy.AllowCreateOnUpdate() { - t.Errorf("Cluster should not allow create on update") - } - - cluster := validNewCluster() - Strategy.PrepareForCreate(ctx, cluster) - if len(cluster.Status.Conditions) != 0 { - t.Errorf("Cluster should not allow setting conditions on create") - } - errs := Strategy.Validate(ctx, cluster) - if len(errs) != 0 { - t.Errorf("Unexpected error validating %v", errs) - } - - invalidCluster := invalidNewCluster() - Strategy.PrepareForUpdate(ctx, invalidCluster, cluster) - if reflect.DeepEqual(invalidCluster.Spec, cluster.Spec) || - !reflect.DeepEqual(invalidCluster.Status, cluster.Status) { - t.Error("Only spec is expected being changed") - } - errs = Strategy.ValidateUpdate(ctx, invalidCluster, cluster) - if len(errs) == 0 { - t.Errorf("Expected a validation error") - } - if cluster.ResourceVersion != "4" { - t.Errorf("Incoming resource version on update should not be mutated") - } -} - -func TestClusterStatusStrategy(t *testing.T) { - ctx := genericapirequest.NewDefaultContext() - if StatusStrategy.NamespaceScoped() { - t.Errorf("Cluster should not be namespace scoped") - } - if StatusStrategy.AllowCreateOnUpdate() { - t.Errorf("Cluster should not allow create on update") - } - - cluster := validNewCluster() - invalidCluster := invalidNewCluster() - StatusStrategy.PrepareForUpdate(ctx, cluster, invalidCluster) - if !reflect.DeepEqual(invalidCluster.Spec, cluster.Spec) || - reflect.DeepEqual(invalidCluster.Status, cluster.Status) { - t.Logf("== cluster.Spec: %v\n", cluster.Spec) - t.Logf("== cluster.Status: %v\n", cluster.Status) - t.Logf("== invalidCluster.Spec: %v\n", cluster.Spec) - t.Logf("== invalidCluster.Spec: %v\n", cluster.Status) - t.Error("Only spec is expected being changed") - } - errs := Strategy.ValidateUpdate(ctx, invalidCluster, cluster) - if len(errs) == 0 { - t.Errorf("Expected a validation error") - } - if cluster.ResourceVersion != "4" { - t.Errorf("Incoming resource version on update should not be mutated") - } -} - -func TestMatchCluster(t *testing.T) { - testFieldMap := map[bool][]fields.Set{ - true: { - {"metadata.name": "foo"}, - }, - false: { - {"foo": "bar"}, - }, - } - - for expectedResult, fieldSet := range testFieldMap { - for _, field := range fieldSet { - m := MatchCluster(labels.Everything(), field.AsSelector()) - _, matchesSingle := m.MatchesSingle() - if e, a := expectedResult, matchesSingle; e != a { - t.Errorf("%+v: expected %v, got %v", fieldSet, e, a) - } - } - } -} - -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(federation.GroupName).GroupVersion.String(), - "Cluster", - ClusterToSelectableFields(&federation.Cluster{}), - nil, - ) -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/BUILD b/vendor/k8s.io/kubernetes/federation/test/e2e/BUILD deleted file mode 100644 index be0be0285..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/BUILD +++ /dev/null @@ -1,71 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "apiserver.go", - "authn.go", - "crud.go", - "event.go", - "ingress.go", - "job.go", - "namespace.go", - "replicaset.go", - "service.go", - "upgrade.go", - "util.go", - ], - importpath = "k8s.io/kubernetes/federation/test/e2e", - deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/core/v1:go_default_library", - "//federation/pkg/federatedtypes:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//federation/test/e2e/framework:go_default_library", - "//federation/test/e2e/upgrades:go_default_library", - "//pkg/cloudprovider:go_default_library", - "//test/e2e/chaosmonkey:go_default_library", - "//test/e2e/common:go_default_library", - "//test/e2e/framework:go_default_library", - "//test/utils/image:go_default_library", - "//vendor/github.com/onsi/ginkgo:go_default_library", - "//vendor/github.com/onsi/gomega:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1: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/util/intstr:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/test/e2e/framework:all-srcs", - "//federation/test/e2e/upgrades:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/OWNERS b/vendor/k8s.io/kubernetes/federation/test/e2e/OWNERS deleted file mode 100644 index b60580337..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/OWNERS +++ /dev/null @@ -1,16 +0,0 @@ -reviewers: - - colhom - - csbell - - irfanurrehman - - madhusudancs - - mwielgus - - nikhiljindal - - quinton-hoole - - shashidharatd -approvers: - - csbell - - madhusudancs - - mwielgus - - nikhiljindal - - quinton-hoole - - shashidharatd diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/README.md b/vendor/k8s.io/kubernetes/federation/test/e2e/README.md deleted file mode 100644 index ff69219ac..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/README.md +++ /dev/null @@ -1 +0,0 @@ -See [e2e-tests](https://git.k8s.io/community/contributors/devel/e2e-tests.md#federation-e2e-tests) diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/apiserver.go b/vendor/k8s.io/kubernetes/federation/test/e2e/apiserver.go deleted file mode 100644 index f46a34de3..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/apiserver.go +++ /dev/null @@ -1,122 +0,0 @@ -/* -Copyright 2015 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 e2e - -import ( - "fmt" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework" -) - -// Create/delete cluster api objects -var _ = framework.KubeDescribe("Federation apiserver [Feature:Federation]", func() { - f := fedframework.NewDefaultFederatedFramework("federation-cluster") - testClusterPrefix := "test" - - Describe("Cluster objects [Serial]", func() { - AfterEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - // Delete registered clusters. - // This is if a test failed, it should not affect other tests. - clusterList, err := f.FederationClientset.Federation().Clusters().List(metav1.ListOptions{LabelSelector: "prefix=" + testClusterPrefix}) - Expect(err).NotTo(HaveOccurred()) - for _, cluster := range clusterList.Items { - err := f.FederationClientset.Federation().Clusters().Delete(cluster.Name, &metav1.DeleteOptions{}) - Expect(err).NotTo(HaveOccurred()) - } - }) - - It("should be created and deleted successfully", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - contexts := f.GetUnderlyingFederatedContexts() - - By(fmt.Sprintf("Creating %d cluster objects", len(contexts))) - for _, context := range contexts { - createClusterObjectOrFail(f, &context, testClusterPrefix) - } - - By(fmt.Sprintf("Checking that %d clusters are ready", len(contexts))) - for _, context := range contexts { - fedframework.ClusterIsReadyOrFail(f, context.Name) - } - framework.Logf("%d clusters are Ready", len(contexts)) - - // Verify that deletion works. - framework.Logf("Deleting %d clusters", len(contexts)) - for _, context := range contexts { - clusterName := testClusterPrefix + context.Name - framework.Logf("Deleting cluster object: %s (%s, secret: %s)", clusterName, context.Cluster.Cluster.Server, context.Name) - err := f.FederationClientset.Federation().Clusters().Delete(clusterName, &metav1.DeleteOptions{}) - framework.ExpectNoError(err, fmt.Sprintf("unexpected error in deleting cluster %s: %+v", clusterName, err)) - framework.Logf("Successfully deleted cluster object: %s (%s, secret: %s)", clusterName, context.Cluster.Cluster.Server, context.Name) - } - - // There should not be any remaining cluster. - framework.Logf("Verifying that zero test clusters remain") - clusterList, err := f.FederationClientset.Federation().Clusters().List(metav1.ListOptions{LabelSelector: "prefix=" + testClusterPrefix}) - Expect(err).NotTo(HaveOccurred()) - if len(clusterList.Items) != 0 { - framework.Failf("there should not have been any remaining clusters. Found: %+v", clusterList) - } - framework.Logf("Verified that zero clusters remain") - }) - }) - - Describe("Admission control [NoCluster]", func() { - AfterEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - }) - - It("should not be able to create resources if namespace does not exist", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - // Creating a service in a non-existing namespace should fail. - svcNamespace := "federation-admission-test-ns" - svcName := "myns" - clientset := f.FederationClientset - framework.Logf("Trying to create service %s in namespace %s, expect to get error", svcName, svcNamespace) - if _, err := clientset.Core().Services(svcNamespace).Create(newService(svcName, svcNamespace)); err == nil { - framework.Failf("Expected to get an error while creating a service in a non-existing namespace") - } - - // Note: We have other tests that verify that we can create resources in existing namespaces, so we dont test it again here. - }) - }) -}) - -func newService(name, namespace string) *v1.Service { - return &v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1.ServiceSpec{ - Ports: []v1.ServicePort{ - { - Port: 80, - }, - }, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/authn.go b/vendor/k8s.io/kubernetes/federation/test/e2e/authn.go deleted file mode 100644 index bf8f94dbb..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/authn.go +++ /dev/null @@ -1,207 +0,0 @@ -/* -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 e2e - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -// TODO: These tests should be integration tests rather than e2e tests, when the -// integration test harness is ready. -var _ = framework.KubeDescribe("[Feature:Federation]", func() { - f := fedframework.NewDefaultFederatedFramework("federation-apiserver-authn") - - var _ = Describe("Federation API server authentication [NoCluster]", func() { - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - }) - - It("should accept cluster resources when the client has certificate authentication credentials", func() { - fcs, err := federationClientSetWithCert() - framework.ExpectNoError(err) - - nsName := f.FederationNamespace.Name - svc := createServiceOrFail(fcs, nsName, FederatedServiceName) - deleteServiceOrFail(f.FederationClientset, nsName, svc.Name, nil) - }) - - It("should accept cluster resources when the client has HTTP Basic authentication credentials", func() { - fcs, err := federationClientSetWithBasicAuth(true /* valid */) - framework.ExpectNoError(err) - - nsName := f.FederationNamespace.Name - svc, err := createService(fcs, nsName, FederatedServiceName) - Expect(err).NotTo(HaveOccurred()) - deleteServiceOrFail(fcs, nsName, svc.Name, nil) - }) - - It("should accept cluster resources when the client has token authentication credentials", func() { - fcs, err := federationClientSetWithToken(true /* valid */) - framework.ExpectNoError(err) - - nsName := f.FederationNamespace.Name - svc, err := createService(fcs, nsName, FederatedServiceName) - Expect(err).NotTo(HaveOccurred()) - deleteServiceOrFail(fcs, nsName, svc.Name, nil) - }) - - It("should not accept cluster resources when the client has no authentication credentials", func() { - fcs, err := unauthenticatedFederationClientSet() - framework.ExpectNoError(err) - - nsName := f.FederationNamespace.Name - _, err = createService(fcs, nsName, FederatedServiceName) - Expect(errors.IsUnauthorized(err)).To(BeTrue()) - }) - - // TODO: Add a test for invalid certificate credentials. The certificate is validated for - // correct format, so it cannot contain random noise. - - It("should not accept cluster resources when the client has invalid HTTP Basic authentication credentials", func() { - fcs, err := federationClientSetWithBasicAuth(false /* invalid */) - framework.ExpectNoError(err) - - nsName := f.FederationNamespace.Name - _, err = createService(fcs, nsName, FederatedServiceName) - Expect(errors.IsUnauthorized(err)).To(BeTrue()) - }) - - It("should not accept cluster resources when the client has invalid token authentication credentials", func() { - fcs, err := federationClientSetWithToken(false /* invalid */) - framework.ExpectNoError(err) - - nsName := f.FederationNamespace.Name - _, err = createService(fcs, nsName, FederatedServiceName) - Expect(errors.IsUnauthorized(err)).To(BeTrue()) - }) - - }) -}) - -// unauthenticatedFederationClientSet returns a Federation Clientset configured with -// no authentication credentials. -func unauthenticatedFederationClientSet() (*federation_clientset.Clientset, error) { - config, err := fedframework.LoadFederatedConfig(&clientcmd.ConfigOverrides{}) - if err != nil { - return nil, err - } - config.Insecure = true - config.CAData = []byte{} - config.CertData = []byte{} - config.KeyData = []byte{} - config.BearerToken = "" - - c, err := federation_clientset.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("error creating federation clientset: %v", err) - } - - return c, nil -} - -// federationClientSetWithCert returns a Federation Clientset configured with -// certificate authentication credentials. -func federationClientSetWithCert() (*federation_clientset.Clientset, error) { - config, err := fedframework.LoadFederatedConfig(&clientcmd.ConfigOverrides{}) - if err != nil { - return nil, err - } - - config.BearerToken = "" - - c, err := federation_clientset.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("error creating federation clientset: %v", err) - } - - return c, nil -} - -// federationClientSetWithBasicAuth returns a Federation Clientset configured with -// HTTP Basic authentication credentials. -func federationClientSetWithBasicAuth(valid bool) (*federation_clientset.Clientset, error) { - config, err := fedframework.LoadFederatedConfig(&clientcmd.ConfigOverrides{}) - if err != nil { - return nil, err - } - - config.Insecure = true - config.CAData = []byte{} - config.CertData = []byte{} - config.KeyData = []byte{} - config.BearerToken = "" - - if !valid { - config.Username = "" - config.Password = "" - } else { - // This is a hacky approach to getting the basic auth credentials, but since - // the token and the username/password cannot live in the same AuthInfo object, - // and because we do not want to store basic auth credentials with token and - // certificate credentials for security reasons, we must dig it out by hand. - c, err := framework.RestclientConfig(framework.TestContext.FederatedKubeContext) - if err != nil { - return nil, err - } - if authInfo, ok := c.AuthInfos[fmt.Sprintf("%s-basic-auth", framework.TestContext.FederatedKubeContext)]; ok { - config.Username = authInfo.Username - config.Password = authInfo.Password - } - } - - c, err := federation_clientset.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("error creating federation clientset: %v", err) - } - - return c, nil -} - -// federationClientSetWithToken returns a Federation Clientset configured with -// token authentication credentials. -func federationClientSetWithToken(valid bool) (*federation_clientset.Clientset, error) { - config, err := fedframework.LoadFederatedConfig(&clientcmd.ConfigOverrides{}) - if err != nil { - return nil, err - } - config.Insecure = true - config.CAData = []byte{} - config.CertData = []byte{} - config.KeyData = []byte{} - config.Username = "" - config.Password = "" - - if !valid { - config.BearerToken = "invalid" - } - - c, err := federation_clientset.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("error creating federation clientset: %v", err) - } - - return c, nil -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/crud.go b/vendor/k8s.io/kubernetes/federation/test/e2e/crud.go deleted file mode 100644 index a7b3a94b4..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/crud.go +++ /dev/null @@ -1,55 +0,0 @@ -/* -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 e2e - -import ( - "fmt" - - . "github.com/onsi/ginkgo" - - kubeclientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/federation/pkg/federatedtypes" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework" -) - -var _ = framework.KubeDescribe("Federated types [Feature:Federation][Experimental] ", func() { - var clusterClients []kubeclientset.Interface - - f := fedframework.NewDefaultFederatedFramework("federated-types") - - fedTypes := federatedtypes.FederatedTypes() - for name := range fedTypes { - fedType := fedTypes[name] - Describe(fmt.Sprintf("Federated %q resources", name), func() { - It("should be created, read, updated and deleted successfully", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - // Load clients only if not skipping to avoid doing - // unnecessary work. Assume clients can be shared - // across tests. - if clusterClients == nil { - clusterClients = f.GetClusterClients() - } - adapter := fedType.AdapterFactory(f.FederationClientset, f.FederationConfig, nil) - crudTester := fedframework.NewFederatedTypeCRUDTester(adapter, clusterClients) - obj := adapter.NewTestObject(f.FederationNamespace.Name) - crudTester.CheckLifecycle(obj) - }) - }) - } -}) diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/event.go b/vendor/k8s.io/kubernetes/federation/test/e2e/event.go deleted file mode 100644 index 00328c5b7..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/event.go +++ /dev/null @@ -1,99 +0,0 @@ -/* -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 e2e - -import ( - "fmt" - - . "github.com/onsi/ginkgo" - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/gomega" -) - -const ( - FederationEventName = "federation-event" -) - -// Create/delete event api objects. -var _ = framework.KubeDescribe("Federation events [Feature:Federation]", func() { - f := fedframework.NewDefaultFederatedFramework("federation-event") - - Describe("Event objects [NoCluster]", func() { - AfterEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - // Delete registered events. - eventList, err := f.FederationClientset.Core().Events(nsName).List(metav1.ListOptions{}) - Expect(err).NotTo(HaveOccurred()) - for _, event := range eventList.Items { - err := f.FederationClientset.Core().Events(nsName).Delete(event.Name, &metav1.DeleteOptions{}) - Expect(err).NotTo(HaveOccurred()) - } - }) - - It("should be created and deleted successfully", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - event := createEventOrFail(f.FederationClientset, nsName) - By(fmt.Sprintf("Creation of event %q in namespace %q succeeded. Deleting event.", event.Name, nsName)) - // Cleanup - err := f.FederationClientset.Core().Events(nsName).Delete(event.Name, &metav1.DeleteOptions{}) - framework.ExpectNoError(err, "Error deleting event %q in namespace %q", event.Name, event.Namespace) - By(fmt.Sprintf("Deletion of event %q in namespace %q succeeded.", event.Name, nsName)) - }) - - }) -}) - -func createEventOrFail(clientset *federation_clientset.Clientset, namespace string) *v1.Event { - if clientset == nil || len(namespace) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to createEventOrFail: clientset: %v, namespace: %v", clientset, namespace)) - } - By(fmt.Sprintf("Creating federated event %q in namespace %q", FederationEventName, namespace)) - - event := &v1.Event{ - ObjectMeta: metav1.ObjectMeta{ - Name: FederationEventName, - Namespace: namespace, - }, - InvolvedObject: v1.ObjectReference{ - Kind: "Pod", - Name: "pod-name", - Namespace: namespace, - UID: "C934D34AFB20242", - APIVersion: "version", - }, - Source: v1.EventSource{ - Component: "kubelet", - Host: "kublet.node1", - }, - Count: 1, - Type: v1.EventTypeNormal, - } - - _, err := clientset.Core().Events(namespace).Create(event) - framework.ExpectNoError(err, "Creating event %q in namespace %q", event.Name, namespace) - By(fmt.Sprintf("Successfully created federated event %q in namespace %q", FederationEventName, namespace)) - return event -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/BUILD b/vendor/k8s.io/kubernetes/federation/test/e2e/framework/BUILD deleted file mode 100644 index 4e28fd8b9..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/BUILD +++ /dev/null @@ -1,51 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "cluster.go", - "crudtester.go", - "framework.go", - "util.go", - ], - importpath = "k8s.io/kubernetes/federation/test/e2e/framework", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/pkg/federatedtypes:go_default_library", - "//federation/pkg/federatedtypes/crudtester:go_default_library", - "//federation/pkg/federation-controller/util:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", - "//test/e2e/framework:go_default_library", - "//vendor/github.com/onsi/ginkgo:go_default_library", - "//vendor/github.com/onsi/gomega:go_default_library", - "//vendor/gopkg.in/yaml.v2: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/util/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/cluster.go b/vendor/k8s.io/kubernetes/federation/test/e2e/framework/cluster.go deleted file mode 100644 index 8d879a2c2..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/cluster.go +++ /dev/null @@ -1,240 +0,0 @@ -/* -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 framework - -import ( - "fmt" - "strings" - "time" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/wait" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -const federatedClustersWaitTimeout = 1 * time.Minute - -// ClusterSlice is a slice of clusters -type ClusterSlice []*Cluster - -// Cluster keeps track of the name and client of a cluster in the federation -type Cluster struct { - Name string - *kubeclientset.Clientset -} - -// registeredClustersFromConfig configures clientsets for registered clusters from the e2e kubeconfig -func registeredClustersFromConfig(f *Framework) ClusterSlice { - contexts := f.GetUnderlyingFederatedContexts() - - By("Obtaining a list of all the clusters") - clusterList := waitForAllRegisteredClusters(f, len(contexts)) - - framework.Logf("Checking that %d clusters are Ready", len(contexts)) - for _, context := range contexts { - ClusterIsReadyOrFail(f, context.Name) - - } - framework.Logf("%d clusters are Ready", len(contexts)) - - clusters := ClusterSlice{} - for i, c := range clusterList.Items { - framework.Logf("Creating a clientset for the cluster %s", c.Name) - Expect(framework.TestContext.KubeConfig).ToNot(Equal(""), "KubeConfig must be specified to load clusters' client config") - config := restConfigFromContext(c, i) - clusters = append(clusters, &Cluster{ - Name: c.Name, - Clientset: clientsetFromConfig(f, config, c.Spec.ServerAddressByClientCIDRs[0].ServerAddress), - }) - - } - waitForNamespaceInFederatedClusters(clusters, f.FederationNamespace.Name) - return clusters -} - -// waitForAllRegisteredClusters waits for all clusters defined in e2e context to be created -// return ClusterList until the listed cluster items equals clusterCount -func waitForAllRegisteredClusters(f *Framework, clusterCount int) *federationapi.ClusterList { - var clusterList *federationapi.ClusterList - if err := wait.PollImmediate(framework.Poll, federatedClustersWaitTimeout, func() (bool, error) { - var err error - clusterList, err = f.FederationClientset.Federation().Clusters().List(metav1.ListOptions{}) - if err != nil { - return false, err - } - framework.Logf("%d clusters registered, waiting for %d", len(clusterList.Items), clusterCount) - if len(clusterList.Items) == clusterCount { - return true, nil - } - return false, nil - }); err != nil { - framework.Failf("Failed to list registered clusters: %+v", err) - } - return clusterList -} - -func restConfigFromContext(c federationapi.Cluster, i int) *restclient.Config { - kubecfg, err := clientcmd.LoadFromFile(framework.TestContext.KubeConfig) - framework.ExpectNoError(err, "error loading KubeConfig: %v", err) - - ccfg := clientcmd.NewNonInteractiveClientConfig(*kubecfg, c.Name, &clientcmd.ConfigOverrides{}, clientcmd.NewDefaultClientConfigLoadingRules()) - cfg, err := ccfg.ClientConfig() - framework.ExpectNoError(err, "Error creating client config in cluster #%d (%q)", i, c.Name) - return cfg -} - -func clientsetFromConfig(f *Framework, cfg *restclient.Config, host string) *kubeclientset.Clientset { - cfg.Host = host - cfg.QPS = f.Framework.Options.ClientQPS - cfg.Burst = f.Framework.Options.ClientBurst - return kubeclientset.NewForConfigOrDie(restclient.AddUserAgent(cfg, "federation-e2e")) -} - -// waitForNamespaceInFederatedClusters waits for the federated namespace to be created in federated clusters -func waitForNamespaceInFederatedClusters(clusters ClusterSlice, nsName string) { - for _, c := range clusters { - name := c.Name - By(fmt.Sprintf("Waiting for namespace %q to be created in cluster %q", nsName, name)) - err := wait.PollImmediate(framework.Poll, FederatedDefaultTestTimeout, func() (bool, error) { - _, err := c.Clientset.CoreV1().Namespaces().Get(nsName, metav1.GetOptions{}) - if errors.IsNotFound(err) { - return false, nil - } else if err != nil { - framework.Logf("An error occurred waiting for namespace %q to be created in cluster %q: %v", nsName, name, err) - return false, nil - } - By(fmt.Sprintf("Namespace %q exists in cluster %q", nsName, name)) - return true, nil - }) - framework.ExpectNoError(err, "Failed to verify federated namespace %q creation in cluster %q", nsName, name) - } -} - -// ClusterIsReadyOrFail checks whether the named cluster is ready -func ClusterIsReadyOrFail(f *Framework, clusterName string) { - By(fmt.Sprintf("Checking readiness of cluster %q", clusterName)) - err := wait.PollImmediate(framework.Poll, FederatedDefaultTestTimeout, func() (bool, error) { - c, err := f.FederationClientset.Federation().Clusters().Get(clusterName, metav1.GetOptions{}) - if err != nil { - return false, err - } - for _, condition := range c.Status.Conditions { - if condition.Type == federationapi.ClusterReady && condition.Status == v1.ConditionTrue { - return true, nil - } - } - return false, nil - }) - framework.ExpectNoError(err, fmt.Sprintf("Unexpected error in verifying if cluster %q is ready: %+v", clusterName, err)) - framework.Logf("Cluster %s is Ready", clusterName) -} - -// Cache the cluster config to avoid having to retrieve it for each test -type clusterConfig struct { - name string - host string - config []byte -} - -var cachedClusterConfigs []*clusterConfig - -// registeredClustersFromSecrets configures clientsets for cluster access from secrets in the host cluster -func registeredClustersFromSecrets(f *Framework) ClusterSlice { - if cachedClusterConfigs == nil { - cachedClusterConfigs = clusterConfigFromSecrets(f) - } - - clusters := ClusterSlice{} - for _, clusterConf := range cachedClusterConfigs { - restConfig := restConfigForCluster(clusterConf) - clientset := clientsetFromConfig(f, restConfig, clusterConf.host) - clusters = append(clusters, &Cluster{ - Name: clusterConf.name, - Clientset: clientset, - }) - } - - waitForNamespaceInFederatedClusters(clusters, f.FederationNamespace.Name) - - return clusters -} - -// clusterConfigFromSecrets retrieves cluster configuration from -// secrets in the host cluster -func clusterConfigFromSecrets(f *Framework) []*clusterConfig { - By("Obtaining a list of registered clusters") - clusterList, err := f.FederationClientset.Federation().Clusters().List(metav1.ListOptions{}) - framework.ExpectNoError(err, fmt.Sprintf("Error retrieving list of federated clusters: %+v", err)) - if len(clusterList.Items) == 0 { - framework.Failf("No registered clusters found") - } - - clusterConfigs := []*clusterConfig{} - for _, c := range clusterList.Items { - ClusterIsReadyOrFail(f, c.Name) - config := clusterConfigFromSecret(f, c.Name, c.Spec.SecretRef.Name) - clusterConfigs = append(clusterConfigs, &clusterConfig{ - name: c.Name, - host: c.Spec.ServerAddressByClientCIDRs[0].ServerAddress, - config: config, - }) - } - - return clusterConfigs -} - -// clusterConfigFromSecret retrieves configuration for a accessing a -// cluster from a secret in the host cluster -func clusterConfigFromSecret(f *Framework, clusterName string, secretName string) []byte { - By(fmt.Sprintf("Loading configuration for cluster %q", clusterName)) - namespace := framework.FederationSystemNamespace() - secret, err := f.Framework.ClientSet.Core().Secrets(namespace).Get(secretName, metav1.GetOptions{}) - framework.ExpectNoError(err, fmt.Sprintf("Error loading config secret \"%s/%s\" for cluster %q: %+v", namespace, secretName, clusterName, err)) - - config, ok := secret.Data[util.KubeconfigSecretDataKey] - if !ok || len(config) == 0 { - framework.Failf("Secret \"%s/%s\" for cluster %q has no value for key %q", namespace, secretName, clusterName, util.KubeconfigSecretDataKey) - } - - return config -} - -// restConfigForCluster creates a rest client config for the given cluster config -func restConfigForCluster(clusterConf *clusterConfig) *restclient.Config { - cfg, err := clientcmd.Load(clusterConf.config) - framework.ExpectNoError(err, fmt.Sprintf("Error loading configuration for cluster %q: %+v", clusterConf.name, err)) - - restConfig, err := clientcmd.NewDefaultClientConfig(*cfg, &clientcmd.ConfigOverrides{}).ClientConfig() - framework.ExpectNoError(err, fmt.Sprintf("Error creating client for cluster %q: %+v", clusterConf.name, err)) - return restConfig -} - -func GetZoneFromClusterName(clusterName string) string { - // Ref: https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-util.sh#L55 - prefix := "federation-e2e-" + framework.TestContext.Provider + "-" - return strings.TrimPrefix(clusterName, prefix) -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/crudtester.go b/vendor/k8s.io/kubernetes/federation/test/e2e/framework/crudtester.go deleted file mode 100644 index 0512f6354..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/crudtester.go +++ /dev/null @@ -1,44 +0,0 @@ -/* -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 framework - -import ( - . "github.com/onsi/ginkgo" - kubeclientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/federation/pkg/federatedtypes" - "k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester" - "k8s.io/kubernetes/test/e2e/framework" -) - -// Adapt the methods to log/fail in e2e to the interface expected by CRUDHelper -type e2eTestLogger struct{} - -func (e2eTestLogger) Fatal(msg string) { - Fail(msg) -} - -func (e2eTestLogger) Fatalf(format string, args ...interface{}) { - framework.Failf(format, args...) -} - -func (e2eTestLogger) Logf(format string, args ...interface{}) { - framework.Logf(format, args...) -} - -func NewFederatedTypeCRUDTester(adapter federatedtypes.FederatedTypeAdapter, clusterClients []kubeclientset.Interface) *crudtester.FederatedTypeCRUDTester { - return crudtester.NewFederatedTypeCRUDTester(&e2eTestLogger{}, adapter, clusterClients, framework.Poll, FederatedDefaultTestTimeout) -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/framework.go b/vendor/k8s.io/kubernetes/federation/test/e2e/framework/framework.go deleted file mode 100644 index 1ddc3a7a5..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/framework.go +++ /dev/null @@ -1,256 +0,0 @@ -/* -Copyright 2015 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 framework - -import ( - "fmt" - "io/ioutil" - "strings" - "time" - - "k8s.io/api/core/v1" - apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/wait" - kubeclientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - yaml "gopkg.in/yaml.v2" -) - -// Framework extends e2e Framework and adds federation specific fields -type Framework struct { - *framework.Framework - - // To make sure that this framework cleans up after itself, no matter what, - // we install a Cleanup action before each test and clear it after. If we - // should abort, the AfterSuite hook should run all Cleanup actions. - cleanupHandle framework.CleanupActionHandle - - FederationConfig *restclient.Config - - FederationClientset *federation_clientset.Clientset - - FederationNamespace *v1.Namespace -} - -func NewDefaultFederatedFramework(baseName string) *Framework { - f := &Framework{} - - // Register the federation cleanup before initializing the default - // e2e framework to ensure it gets called before the default - // framework's cleanup. - AfterEach(f.FederationAfterEach) - - f.Framework = framework.NewDefaultFramework(baseName) - f.Framework.SkipNamespaceCreation = true - - // Register the federation setup after initializing the default - // e2e framework to ensure it gets called after the default - // framework's setup. - BeforeEach(f.FederationBeforeEach) - - return f -} - -// FederationBeforeEach checks for federation apiserver is ready and makes a namespace. -func (f *Framework) FederationBeforeEach() { - // The fact that we need this feels like a bug in ginkgo. - // https://github.com/onsi/ginkgo/issues/222 - f.cleanupHandle = framework.AddCleanupAction(f.FederationAfterEach) - - if f.FederationConfig == nil { - By("Reading the federation configuration") - var err error - f.FederationConfig, err = LoadFederatedConfig(&clientcmd.ConfigOverrides{}) - Expect(err).NotTo(HaveOccurred()) - } - if f.FederationClientset == nil { - By("Creating a release 1.5 federation Clientset") - var err error - f.FederationClientset, err = LoadFederationClientset(f.FederationConfig) - Expect(err).NotTo(HaveOccurred()) - } - By("Waiting for federation-apiserver to be ready") - err := WaitForFederationApiserverReady(f.FederationClientset) - Expect(err).NotTo(HaveOccurred()) - By("federation-apiserver is ready") - - By("Creating a federation namespace") - ns, err := f.createFederationNamespace(f.BaseName) - Expect(err).NotTo(HaveOccurred()) - f.FederationNamespace = ns - By(fmt.Sprintf("Created federation namespace %s", ns.Name)) -} - -func (f *Framework) deleteFederationNs() { - ns := f.FederationNamespace - By(fmt.Sprintf("Destroying federation namespace %q for this suite.", ns.Name)) - timeout := 5 * time.Minute - if f.NamespaceDeletionTimeout != 0 { - timeout = f.NamespaceDeletionTimeout - } - - clientset := f.FederationClientset - // First delete the namespace from federation apiserver. - // Also delete the corresponding namespaces from underlying clusters. - orphanDependents := false - if err := clientset.Core().Namespaces().Delete(ns.Name, &metav1.DeleteOptions{OrphanDependents: &orphanDependents}); err != nil { - framework.Failf("Error while deleting federation namespace %s: %s", ns.Name, err) - } - // Verify that it got deleted. - err := wait.PollImmediate(5*time.Second, timeout, func() (bool, error) { - if _, err := clientset.Core().Namespaces().Get(ns.Name, metav1.GetOptions{}); err != nil { - if apierrors.IsNotFound(err) { - return true, nil - } - framework.Logf("Error while waiting for namespace to be terminated: %v", err) - return false, nil - } - return false, nil - }) - if err != nil { - if !apierrors.IsNotFound(err) { - framework.Failf("Couldn't delete ns %q: %s", ns.Name, err) - } else { - framework.Logf("Namespace %v was already deleted", ns.Name) - } - } -} - -// FederationAfterEach deletes the namespace, after reading its events. -func (f *Framework) FederationAfterEach() { - framework.RemoveCleanupAction(f.cleanupHandle) - - // DeleteNamespace at the very end in defer, to avoid any - // expectation failures preventing deleting the namespace. - defer func() { - // Whether to delete namespace is determined by 3 factors: delete-namespace flag, delete-namespace-on-failure flag and the test result - // if delete-namespace set to false, namespace will always be preserved. - // if delete-namespace is true and delete-namespace-on-failure is false, namespace will be preserved if test failed. - if framework.TestContext.DeleteNamespace && (framework.TestContext.DeleteNamespaceOnFailure || !CurrentGinkgoTestDescription().Failed) { - // Delete the federation namespace. - f.deleteFederationNs() - } - - // Paranoia-- prevent reuse! - f.FederationNamespace = nil - - if f.FederationClientset == nil { - framework.Logf("Warning: framework is marked federated, but has no federation 1.5 clientset") - return - } - }() - - // Print events if the test failed. - if CurrentGinkgoTestDescription().Failed && framework.TestContext.DumpLogsOnFailure { - // Dump federation events in federation namespace. - framework.DumpEventsInNamespace(func(opts metav1.ListOptions, ns string) (*v1.EventList, error) { - return f.FederationClientset.Core().Events(ns).List(opts) - }, f.FederationNamespace.Name) - } -} - -func (f *Framework) createFederationNamespace(baseName string) (*v1.Namespace, error) { - clientset := f.FederationClientset - namespaceObj := &v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: fmt.Sprintf("e2e-tests-%v-", baseName), - }, - } - // Be robust about making the namespace creation call. - var got *v1.Namespace - if err := wait.PollImmediate(framework.Poll, framework.SingleCallTimeout, func() (bool, error) { - var err error - got, err = clientset.Core().Namespaces().Create(namespaceObj) - if err != nil { - framework.Logf("Unexpected error while creating namespace: %v", err) - return false, nil - } - return true, nil - }); err != nil { - return nil, err - } - return got, nil -} - -type E2EContext struct { - // Raw context name, - RawName string `yaml:"rawName"` - // A valid dns subdomain which can be used as the name of kubernetes resources. - Name string `yaml:"name"` - Cluster *framework.KubeCluster `yaml:"cluster"` - User *framework.KubeUser `yaml:"user"` -} - -func (f *Framework) GetUnderlyingFederatedContexts() []E2EContext { - kubeconfig := framework.KubeConfig{} - configBytes, err := ioutil.ReadFile(framework.TestContext.KubeConfig) - framework.ExpectNoError(err) - err = yaml.Unmarshal(configBytes, &kubeconfig) - framework.ExpectNoError(err) - - e2eContexts := []E2EContext{} - for _, context := range kubeconfig.Contexts { - if strings.HasPrefix(context.Name, "federation") && context.Name != framework.TestContext.FederatedKubeContext { - user := kubeconfig.FindUser(context.Context.User) - if user == nil { - framework.Failf("Could not find user for context %+v", context) - } - - cluster := kubeconfig.FindCluster(context.Context.Cluster) - if cluster == nil { - framework.Failf("Could not find cluster for context %+v", context) - } - - dnsSubdomainName, err := GetValidDNSSubdomainName(context.Name) - if err != nil { - framework.Failf("Could not convert context name %s to a valid dns subdomain name, error: %s", context.Name, err) - } - e2eContexts = append(e2eContexts, E2EContext{ - RawName: context.Name, - Name: dnsSubdomainName, - Cluster: cluster, - User: user, - }) - } - } - - return e2eContexts -} - -func (f *Framework) GetRegisteredClusters() ClusterSlice { - if framework.TestContext.FederationConfigFromCluster { - return registeredClustersFromSecrets(f) - } else { - return registeredClustersFromConfig(f) - } -} - -func (f *Framework) GetClusterClients() []kubeclientset.Interface { - clusters := f.GetRegisteredClusters() - var clusterClients []kubeclientset.Interface - for _, c := range clusters { - clusterClients = append(clusterClients, c.Clientset) - } - return clusterClients -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/util.go b/vendor/k8s.io/kubernetes/federation/test/e2e/framework/util.go deleted file mode 100644 index d9851a44c..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/framework/util.go +++ /dev/null @@ -1,150 +0,0 @@ -/* -Copyright 2014 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 framework - -import ( - "fmt" - "os" - "path" - "regexp" - "strings" - "time" - - apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - validationutil "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/apimachinery/pkg/util/wait" - clientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/test/e2e/framework" -) - -const FederatedDefaultTestTimeout = 5 * time.Minute - -// Detects whether the federation namespace exists in the underlying cluster -func SkipUnlessFederated(c clientset.Interface) { - federationNS := framework.FederationSystemNamespace() - - _, err := c.Core().Namespaces().Get(federationNS, metav1.GetOptions{}) - if err != nil { - if apierrors.IsNotFound(err) { - framework.Skipf("Could not find federation namespace %s: skipping federated test", federationNS) - } else { - framework.Failf("Unexpected error getting namespace: %v", err) - } - } -} - -// WaitForFederationApiserverReady waits for the federation apiserver to be ready. -// It tests the readiness by sending a GET request and expecting a non error response. -func WaitForFederationApiserverReady(c *federation_clientset.Clientset) error { - return wait.PollImmediate(time.Second, 1*time.Minute, func() (bool, error) { - _, err := c.Federation().Clusters().List(metav1.ListOptions{}) - if err != nil { - return false, nil - } - return true, nil - }) -} - -func LoadFederationClientset(config *restclient.Config) (*federation_clientset.Clientset, error) { - c, err := federation_clientset.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("error creating federation clientset: %v", err.Error()) - } - return c, nil -} - -func LoadFederatedConfig(overrides *clientcmd.ConfigOverrides) (*restclient.Config, error) { - c, err := framework.RestclientConfig(framework.TestContext.FederatedKubeContext) - if err != nil { - return nil, fmt.Errorf("error creating federation client config: %v", err.Error()) - } - cfg, err := clientcmd.NewDefaultClientConfig(*c, &clientcmd.ConfigOverrides{}).ClientConfig() - if cfg != nil { - //TODO(colhom): this is only here because https://github.com/kubernetes/kubernetes/issues/25422 - cfg.NegotiatedSerializer = api.Codecs - } - if err != nil { - return cfg, fmt.Errorf("error creating federation default client config: %v", err.Error()) - } - return cfg, nil -} - -// GetValidDNSSubdomainName massages the given name to be a valid dns subdomain name. -// Most resources (such as secrets, clusters) require the names to be valid dns subdomain. -// This is a generic function (not specific to federation). Should be moved to a more generic location if others want to use it. -func GetValidDNSSubdomainName(name string) (string, error) { - // "_" are not allowed. Replace them by "-". - name = regexp.MustCompile("_").ReplaceAllLiteralString(name, "-") - maxLength := validationutil.DNS1123SubdomainMaxLength - if len(name) > maxLength { - name = name[0 : maxLength-1] - } - // Verify that name now passes the validation. - if errors := validation.NameIsDNSSubdomain(name, false); len(errors) != 0 { - return "", fmt.Errorf("errors in converting name to a valid DNS subdomain %s", errors) - } - return name, nil -} - -func FederationControlPlaneUpgrade(version string) error { - version = "v" + version - _, _, err := framework.RunCmd(path.Join(framework.TestContext.RepoRoot, "federation/cluster/upgrade.sh"), version) - return err -} - -func CheckFederationVersion(c federation_clientset.Interface, want string) error { - framework.Logf("Checking federation version") - v, err := c.Discovery().ServerVersion() - if err != nil { - return fmt.Errorf("CheckFederationVersion() couldn't get the master version: %v", err) - } - // We do prefix trimming and then matching because: - // want looks like: 0.19.3-815-g50e67d4 - // got looks like: v0.19.3-815-g50e67d4034e858-dirty - got := strings.TrimPrefix(v.GitVersion, "v") - if !strings.HasPrefix(got, want) { - return fmt.Errorf("federation had apiserver version %s which does not start with %s", - got, want) - } - framework.Logf("Federation is at version %s", want) - return nil -} - -func MasterUpgrade(context, version string) error { - switch framework.TestContext.Provider { - case "gce": - return masterUpgradeGCE(context, version) - default: - return fmt.Errorf("MasterUpgrade() is not implemented for provider %s", framework.TestContext.Provider) - } -} - -func masterUpgradeGCE(context, rawVersion string) error { - version := "v" + rawVersion - // TODO: this breaks if we want to upgrade 2 clusters in same zone. use alternate methods in future to get zone of a cluster - zone := strings.TrimPrefix(context, "federation-e2e-"+framework.TestContext.Provider+"-") - - env := append(os.Environ(), "KUBE_CONTEXT="+context, "ZONE="+zone) - _, _, err := framework.RunCmdEnv(env, path.Join(framework.TestContext.RepoRoot, "cluster/gce/upgrade.sh"), "-M", version) - return err -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/ingress.go b/vendor/k8s.io/kubernetes/federation/test/e2e/ingress.go deleted file mode 100644 index 9ae324fc7..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/ingress.go +++ /dev/null @@ -1,638 +0,0 @@ -/* -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 e2e - -import ( - "crypto/tls" - "fmt" - "net/http" - "os" - "reflect" - "strconv" - "strings" - "time" - - "k8s.io/api/core/v1" - "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" - utilnet "k8s.io/apimachinery/pkg/util/net" - "k8s.io/apimachinery/pkg/util/wait" - kubeclientset "k8s.io/client-go/kubernetes" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/pkg/federation-controller/util" - - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -const ( - MaxRetriesOnFederatedApiserver = 3 - FederatedIngressTimeout = 15 * time.Minute - FederatedIngressDeleteTimeout = 2 * time.Minute - FederatedIngressName = "federated-ingress" - FederatedIngressServiceName = "federated-ingress-service" - FederatedIngressTLSSecretName = "federated-ingress-tls-secret" - FederatedIngressServicePodName = "federated-ingress-service-test-pod" - FederatedIngressHost = "test-f8n.k8s.io." - - FederatedSecretTimeout = 60 * time.Second - - // TLS Certificate and Key for the ingress resource - // Generated using: - // $ openssl req -nodes -x509 -newkey rsa:2048 -keyout fedingtestkey.pem -out fedingtestcrt.pem -days 2485 - // 2485 days is an arbitrary large number chosen below int32 seconds. - FederatedIngressTLSCrt = `-----BEGIN CERTIFICATE----- -MIIDaTCCAlGgAwIBAgIJANwsCbwxm9pyMA0GCSqGSIb3DQEBCwUAMEoxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMQswCQYDVQQKDAJOQTEZMBcGA1UE -AwwQdGVzdC1mOG4uazhzLmlvLjAgFw0xNjEyMTYwNjA1NDRaGA8yMDg1MDEwMzA2 -MDU0NFowSjELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxCzAJBgNV -BAoMAk5BMRkwFwYDVQQDDBB0ZXN0LWY4bi5rOHMuaW8uMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAmsHYnLhqSeO1Q6SEjaiPiLUQV8tyGfttwNQiOT5u -ULz6ZWYA40m/1hhla9KH9sJZ515Iq+jTtiVH0rUjryT96SjxitLCAZlxVwQ63B50 -aZF2T2OPSzvrmN+J6VGcRIq0N8fUeyp2WTIEdWlpQ7DTmDNArQqFSIvJndkLow3d -hec7O+PErnvZQQC9zqa23rGndDzlgDJ4HJGAQNm3uYVh5WHv+wziP67T/82bEGgO -A6EdDPWzpYxzAA1wsqz9lX5jitlbKdI56698fPR2KRelySf7OXVvZCS4/ED1lF4k -b7fQgtBhAWe1BkuAMUl7vdRjMps7nkxmBSuxBkVQ7sb5AwIDAQABo1AwTjAdBgNV -HQ4EFgQUjf53O/W/iE2mxuJkNjZGUfjJ9RUwHwYDVR0jBBgwFoAUjf53O/W/iE2m -xuJkNjZGUfjJ9RUwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEABE7B -bAiORDBA3qE5lh6JCs/lEfz93E/gOhD9oDnm9SRND4kjy7qeGxk4Wzsd/Vr+R2mi -EZ40d4MA/mCCPnYsNQoEXMFc8IvwAbzkhh2gqTNgG0/Ks0A1mIPQNpvUcSetS4IV -732DvB3nSnFtlzf6afw+V1Vf5ydRNuM/c9GEOOHSz+rs+9M364d+wNaFD64M72ol -iDMAdtcrhOqkQi0lUING904jlJcyYM5oVNCCtme4F8nkIX9bxP/9Ea6VhDGPeJiX -tVwZuudkoEbrFlEYbyLrbVeVa9oTf4Jn66iz49/+th+bUtEoTt9gk9Cul5TFgfzx -EscdahceC7afheq6zg== ------END CERTIFICATE-----` - - FederatedIngressTLSKey = `-----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCawdicuGpJ47VD -pISNqI+ItRBXy3IZ+23A1CI5Pm5QvPplZgDjSb/WGGVr0of2wlnnXkir6NO2JUfS -tSOvJP3pKPGK0sIBmXFXBDrcHnRpkXZPY49LO+uY34npUZxEirQ3x9R7KnZZMgR1 -aWlDsNOYM0CtCoVIi8md2QujDd2F5zs748Sue9lBAL3Oprbesad0POWAMngckYBA -2be5hWHlYe/7DOI/rtP/zZsQaA4DoR0M9bOljHMADXCyrP2VfmOK2Vsp0jnrr3x8 -9HYpF6XJJ/s5dW9kJLj8QPWUXiRvt9CC0GEBZ7UGS4AxSXu91GMymzueTGYFK7EG -RVDuxvkDAgMBAAECggEAYrXGPqB6W0r88XpceibL9rzXAcjorJ3s8ZPdiHnDz4fa -hxa69j6yOBMzjcSpqMFqquM+ozhM4d+BomqbqjmEI1ZUSuIHkRGYc5JlIMXkJvn7 -ZsPwQGKl8cqTotjFPgrizLmPVEhPWLFImsNzuxNsw6XdWQJe5VkUbrRkccqEQ8Wt -xwq/SlRercIMnRVLOOESq8EyjOY4yDgOdIifq9K9xiI8W6nMiPs0X5AcIJoTMbCe -cX0zUqW317awDWWP8u2GswwDDm4qPeWnXOrDkDx8Eo0dWJbmxw9su0XrM6KMvEMe -2a/Fy/enr5Cc6/jgsh3gO5sa8dJ1Cu+wexcoEbez8QKBgQDMXlXJu/C7djke94s3 -vGxati7AGO95bBQHW+cPuN4l0rfPZ8YuUAWD4csW4BOlUPAOukreD/SKdanigR3N -FqVPeI8rXd5kzy8/lPIOGuSkkVEpKsAJ7prFbSUVKjVPYQk2dsOEeR0r7pr2FxC9 -SBhVS/LgmPYh++iny9D0aU23hQKBgQDB2t55OE+00vgoauUc10LEY+J6tiwXuNm7 -43JtrH5ET4N+TJ2BOUl5f88TY/3QuTu6vYwlxjyn+LFuWQNhShX6lFMjt5zqPTdw -ZPDA+9B6a45cV3YjXjRsYidpWj0D2lJgy0DbucC4f3eIhNGyFUbAQB9npKDzOeUh -7Z+p/Grg5wKBgGUnVCLzySWgUImJUPkXZDJJ9j3SmcVpv0gdLvLTN/FUqPIZlTgb -F3+9ZL4/zrmGpCtF/gSHtSxLLPkVm2CFkvEQ5Rw76/XNrr8zw9NDcGQcISXVKRRB -a43IhhBBwf02NE8m3YNWRyAVi9G+fOSTKKgfXWnZjAoqG2/iK9ytum/ZAoGAYlP8 -KIxxkYy5Jvchg4GEck0f4ZJpxxaSCoWR0yN9YHTcg8Gk2pkONbyocnNzmN17+HqQ -jdCBj8nLZedsmXqUr2dwzFskEoQ+jJoGrDyOQKoxqZELcWElQhx/VSbacAvbYRF3 -snwDzxGItgx4uNWl73oW8+FDalvhZ1Y6eGR6ad0CgYEAtlNa92Fbvd3r9O2mdyWe -D2SXNMi45+wsNafX2sdkyb+qNN6qZXC9ylUl9h0zdky88JNgtAOgxIaRIdEZajnD -/Zq17sTNtgpm53x16gOAgD8M+/wmBZxA+/IKfFCubuV77MbQoPfcjT5wBMRnFQnY -Ks7c+dzaRlgDKZ6v/L/8iZU= ------END PRIVATE KEY-----` -) - -const ( - // timeout on a single http request. - reqTimeout = 10 * time.Second -) - -var _ = framework.KubeDescribe("Federated ingresses [Feature:Federation]", func() { - f := fedframework.NewDefaultFederatedFramework("federated-ingress") - - // Create/delete ingress api objects - // Validate federation apiserver, does not rely on underlying clusters or federation ingress controller. - Describe("Federated Ingresses [NoCluster]", func() { - AfterEach(func() { - nsName := f.FederationNamespace.Name - // Delete all ingresses. - deleteAllIngressesOrFail(f.FederationClientset, nsName) - }) - - It("should be created and deleted successfully", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - framework.SkipUnlessProviderIs("gce", "gke") // TODO: Federated ingress is not yet supported on non-GCP platforms. - nsName := f.FederationNamespace.Name - ingress := createIngressOrFail(f.FederationClientset, nsName, FederatedIngressServiceName, FederatedIngressTLSSecretName) - By(fmt.Sprintf("Creation of ingress %q in namespace %q succeeded. Deleting ingress.", ingress.Name, nsName)) - // Cleanup - err := f.FederationClientset.Extensions().Ingresses(nsName).Delete(ingress.Name, &metav1.DeleteOptions{}) - framework.ExpectNoError(err, "Error deleting ingress %q in namespace %q", ingress.Name, ingress.Namespace) - By(fmt.Sprintf("Deletion of ingress %q in namespace %q succeeded.", ingress.Name, nsName)) - }) - }) - - // e2e cases for federation ingress controller - var _ = Describe("Federated Ingresses [Slow]", func() { - var ( - clusters fedframework.ClusterSlice - federationName, ns string - jig *federationTestJig - service *v1.Service - secret *v1.Secret - ) - - // register clusters in federation apiserver - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - framework.SkipUnlessProviderIs("gce", "gke") // TODO: Federated ingress is not yet supported on non-GCP platforms. - if federationName = os.Getenv("FEDERATION_NAME"); federationName == "" { - federationName = DefaultFederationName - } - jig = newFederationTestJig(f.FederationClientset) - clusters = f.GetRegisteredClusters() - ns = f.FederationNamespace.Name - // create backend service - service = createLBServiceOrFail(f.FederationClientset, ns, FederatedIngressServiceName, clusters) - // create the TLS secret - secret = createTLSSecretOrFail(f.FederationClientset, ns, FederatedIngressTLSSecretName) - // wait for services objects sync - waitForServiceShardsOrFail(ns, service, clusters) - // wait for TLS secret sync - waitForSecretShardsOrFail(ns, secret, clusters) - }) - - AfterEach(func() { - // Delete all ingresses. - deleteAllIngressesOrFail(f.FederationClientset, ns) - if secret != nil { - By("Deleting secret") - orphanDependents := false - deleteSecretOrFail(f.FederationClientset, ns, secret.Name, &orphanDependents) - secret = nil - } else { - By("No secret to delete. Secret is nil") - } - if service != nil { - By("Deleting service") - deleteServiceOrFail(f.FederationClientset, ns, service.Name, nil) - By("Cleanup service shards and provider resources") - cleanupServiceShardsAndProviderResources(ns, service, clusters) - service = nil - } else { - By("No service to delete. Service is nil") - } - }) - - It("should create and update matching ingresses in underlying clusters", func() { - ingress := createIngressOrFail(f.FederationClientset, ns, FederatedIngressServiceName, FederatedIngressTLSSecretName) - // wait for ingress shards being created - waitForIngressShardsOrFail(ns, ingress, clusters) - ingress = updateIngressOrFail(f.FederationClientset, ns) - waitForIngressShardsUpdatedOrFail(ns, ingress, clusters) - }) - - It("should be deleted from underlying clusters when OrphanDependents is false", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - orphanDependents := false - verifyCascadingDeletionForIngress(f.FederationClientset, clusters, &orphanDependents, ns) - By(fmt.Sprintf("Verified that ingresses were deleted from underlying clusters")) - }) - - It("should not be deleted from underlying clusters when OrphanDependents is true", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - orphanDependents := true - verifyCascadingDeletionForIngress(f.FederationClientset, clusters, &orphanDependents, ns) - By(fmt.Sprintf("Verified that ingresses were not deleted from underlying clusters")) - }) - - It("should not be deleted from underlying clusters when OrphanDependents is nil", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - verifyCascadingDeletionForIngress(f.FederationClientset, clusters, nil, ns) - By(fmt.Sprintf("Verified that ingresses were not deleted from underlying clusters")) - }) - - var _ = Describe("Ingress connectivity and DNS", func() { - - var backendPods BackendPodMap - - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - // create backend pod - backendPods = createBackendPodsOrFail(clusters, ns, FederatedIngressServicePodName) - // create ingress object - jig.ing = createIngressOrFail(f.FederationClientset, ns, service.Name, FederatedIngressTLSSecretName) - // wait for ingress objects sync - waitForIngressShardsOrFail(ns, jig.ing, clusters) - By(fmt.Sprintf("Ingress created as %v", jig.ing.Name)) - }) - - AfterEach(func() { - deleteBackendPodsOrFail(clusters, backendPods) - backendPods = nil - - if jig.ing != nil { - By(fmt.Sprintf("Deleting ingress %v on all clusters", jig.ing.Name)) - orphanDependents := false - deleteIngressOrFail(f.FederationClientset, ns, jig.ing.Name, &orphanDependents) - jig.ing = nil - } else { - By("No ingress to delete. Ingress is nil") - } - }) - - PIt("should be able to discover a federated ingress service via DNS", func() { - // we are about the ingress name - svcDNSNames := []string{ - fmt.Sprintf("%s.%s", FederatedIngressServiceName, ns), - fmt.Sprintf("%s.%s.svc.cluster.local.", FederatedIngressServiceName, ns), - // TODO these two entries are not set yet - //fmt.Sprintf("%s.%s.%s", FederatedIngressServiceName, ns, federationName), - //fmt.Sprintf("%s.%s.%s.svc.cluster.local.", FederatedIngressServiceName, ns, federationName), - } - // check dns records in underlying cluster - for i, DNSName := range svcDNSNames { - discoverService(f, DNSName, true, "federated-ingress-e2e-discovery-pod-"+strconv.Itoa(i)) - } - // TODO check dns record in global dns server - }) - - It("should be able to connect to a federated ingress via its load balancer", func() { - By(fmt.Sprintf("Waiting for Federated Ingress on %v", jig.ing.Name)) - // check the traffic on federation ingress - jig.waitForFederatedIngress() - }) - - }) - }) -}) - -// Deletes all Ingresses in the given namespace name. -func deleteAllIngressesOrFail(clientset *fedclientset.Clientset, nsName string) { - orphanDependents := false - err := clientset.Extensions().Ingresses(nsName).DeleteCollection(&metav1.DeleteOptions{OrphanDependents: &orphanDependents}, metav1.ListOptions{}) - Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("Error in deleting ingresses in namespace: %s", nsName)) -} - -// equivalent returns true if the two ingress spec are equivalent. -func equivalentIngress(federatedIngress, clusterIngress v1beta1.Ingress) bool { - return reflect.DeepEqual(clusterIngress.Spec, federatedIngress.Spec) -} - -// verifyCascadingDeletionForIngress verifies that ingresses are deleted from -// underlying clusters when orphan dependents is false and they are not deleted -// when orphan dependents is true. -func verifyCascadingDeletionForIngress(clientset *fedclientset.Clientset, clusters fedframework.ClusterSlice, orphanDependents *bool, nsName string) { - ingress := createIngressOrFail(clientset, nsName, FederatedIngressServiceName, FederatedIngressTLSSecretName) - ingressName := ingress.Name - // Check subclusters if the ingress was created there. - By(fmt.Sprintf("Waiting for ingress %s to be created in all underlying clusters", ingressName)) - waitForIngressShardsOrFail(nsName, ingress, clusters) - - By(fmt.Sprintf("Deleting ingress %s", ingressName)) - deleteIngressOrFail(clientset, nsName, ingressName, orphanDependents) - - By(fmt.Sprintf("Verifying ingresses %s in underlying clusters", ingressName)) - errMessages := []string{} - // ingress should be present in underlying clusters unless orphanDependents is false. - shouldExist := orphanDependents == nil || *orphanDependents == true - for _, cluster := range clusters { - clusterName := cluster.Name - _, err := cluster.Extensions().Ingresses(nsName).Get(ingressName, metav1.GetOptions{}) - if shouldExist && errors.IsNotFound(err) { - errMessages = append(errMessages, fmt.Sprintf("unexpected NotFound error for ingress %s in cluster %s, expected ingress to exist", ingressName, clusterName)) - } else if !shouldExist && !errors.IsNotFound(err) { - errMessages = append(errMessages, fmt.Sprintf("expected NotFound error for ingress %s in cluster %s, got error: %v", ingressName, clusterName, err)) - } - } - if len(errMessages) != 0 { - framework.Failf("%s", strings.Join(errMessages, "; ")) - } -} - -// waitForIngressOrFail waits until a ingress is either present or absent in the cluster specified by clientset. -// If the condition is not met within timout, it fails the calling test. -func waitForIngressOrFail(clientset *kubeclientset.Clientset, namespace string, ingress *v1beta1.Ingress, present bool, timeout time.Duration) { - By(fmt.Sprintf("Fetching a federated ingress shard of ingress %q in namespace %q from cluster", ingress.Name, namespace)) - var clusterIngress *v1beta1.Ingress - err := wait.PollImmediate(framework.Poll, timeout, func() (bool, error) { - var err error - clusterIngress, err = clientset.ExtensionsV1beta1().Ingresses(namespace).Get(ingress.Name, metav1.GetOptions{}) - if (!present) && errors.IsNotFound(err) { // We want it gone, and it's gone. - By(fmt.Sprintf("Success: shard of federated ingress %q in namespace %q in cluster is absent", ingress.Name, namespace)) - return true, nil // Success - } - if present && err == nil { // We want it present, and the Get succeeded, so we're all good. - By(fmt.Sprintf("Success: shard of federated ingress %q in namespace %q in cluster is present", ingress.Name, namespace)) - return true, nil // Success - } - By(fmt.Sprintf("Ingress %q in namespace %q in cluster. Found: %v, waiting for Found: %v, trying again in %s (err=%v)", ingress.Name, namespace, clusterIngress != nil && err == nil, present, framework.Poll, err)) - return false, nil - }) - framework.ExpectNoError(err, "Failed to verify ingress %q in namespace %q in cluster: Present=%v", ingress.Name, namespace, present) - - if present && clusterIngress != nil { - Expect(equivalentIngress(*clusterIngress, *ingress)) - } -} - -// waitForIngressShardsOrFail waits for the ingress to appear in all clusters -func waitForIngressShardsOrFail(namespace string, ingress *v1beta1.Ingress, clusters fedframework.ClusterSlice) { - framework.Logf("Waiting for ingress %q in %d clusters", ingress.Name, len(clusters)) - for _, c := range clusters { - waitForIngressOrFail(c.Clientset, namespace, ingress, true, FederatedIngressTimeout) - } -} - -// waitForIngressShardsUpdatedOrFail waits for the ingress to be updated in all clusters -func waitForIngressShardsUpdatedOrFail(namespace string, ingress *v1beta1.Ingress, clusters fedframework.ClusterSlice) { - framework.Logf("Waiting for ingress %q in %d clusters", ingress.Name, len(clusters)) - for _, c := range clusters { - waitForIngressUpdateOrFail(c.Clientset, namespace, ingress, FederatedIngressTimeout) - } -} - -// waitForIngressUpdateOrFail waits until a ingress is updated in the specified cluster with same spec of federated ingress. -// If the condition is not met within timeout, it fails the calling test. -func waitForIngressUpdateOrFail(clientset *kubeclientset.Clientset, namespace string, ingress *v1beta1.Ingress, timeout time.Duration) { - By(fmt.Sprintf("Fetching a federated ingress shard of ingress %q in namespace %q from cluster", ingress.Name, namespace)) - err := wait.PollImmediate(framework.Poll, timeout, func() (bool, error) { - clusterIngress, err := clientset.ExtensionsV1beta1().Ingresses(namespace).Get(ingress.Name, metav1.GetOptions{}) - if err == nil { // We want it present, and the Get succeeded, so we're all good. - if equivalentIngress(*clusterIngress, *ingress) { - By(fmt.Sprintf("Success: shard of federated ingress %q in namespace %q in cluster is updated", ingress.Name, namespace)) - return true, nil - } - By(fmt.Sprintf("Ingress %q in namespace %q in cluster, waiting for service being updated, trying again in %s (err=%v)", ingress.Name, namespace, framework.Poll, err)) - return false, nil - } - By(fmt.Sprintf("Ingress %q in namespace %q in cluster, waiting for service being updated, trying again in %s (err=%v)", ingress.Name, namespace, framework.Poll, err)) - return false, nil - }) - framework.ExpectNoError(err, "Failed to verify ingress %q in namespace %q in cluster", ingress.Name, namespace) -} - -// waitForIngressShardsGoneOrFail waits for the ingress to disappear in all clusters -func waitForIngressShardsGoneOrFail(namespace string, ingress *v1beta1.Ingress, clusters fedframework.ClusterSlice) { - framework.Logf("Waiting for ingress %q in %d clusters", ingress.Name, len(clusters)) - for _, c := range clusters { - waitForIngressOrFail(c.Clientset, namespace, ingress, false, FederatedIngressTimeout) - } -} - -func deleteIngressOrFail(clientset *fedclientset.Clientset, namespace string, ingressName string, orphanDependents *bool) { - if clientset == nil || len(namespace) == 0 || len(ingressName) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to deleteIngressOrFail: clientset: %v, namespace: %v, ingress: %v", clientset, namespace, ingressName)) - } - err := clientset.ExtensionsV1beta1().Ingresses(namespace).Delete(ingressName, &metav1.DeleteOptions{OrphanDependents: orphanDependents}) - framework.ExpectNoError(err, "Error deleting ingress %q from namespace %q", ingressName, namespace) - // Wait for the ingress to be deleted. - err = wait.Poll(framework.Poll, FederatedIngressDeleteTimeout, func() (bool, error) { - _, err := clientset.Extensions().Ingresses(namespace).Get(ingressName, metav1.GetOptions{}) - if err != nil && errors.IsNotFound(err) { - return true, nil - } - return false, err - }) - if err != nil { - framework.Failf("Error in deleting ingress %s: %v", ingressName, err) - } -} - -// TODO: quinton: This is largely a cut 'n paste of the above. Yuck! Refactor as soon as we have a common interface implmented by both fedclientset.Clientset and kubeclientset.Clientset -func deleteClusterIngressOrFail(clusterName string, clientset *kubeclientset.Clientset, namespace string, ingressName string) { - if clientset == nil || len(namespace) == 0 || len(ingressName) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to deleteClusterIngressOrFail: cluster: %q, clientset: %v, namespace: %v, ingress: %v", clusterName, clientset, namespace, ingressName)) - } - err := clientset.ExtensionsV1beta1().Ingresses(namespace).Delete(ingressName, metav1.NewDeleteOptions(0)) - framework.ExpectNoError(err, "Error deleting cluster ingress %q/%q from cluster %q", namespace, ingressName, clusterName) -} - -func createIngressOrFail(clientset *fedclientset.Clientset, namespace, serviceName, secretName string) *v1beta1.Ingress { - if clientset == nil || len(namespace) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to createIngressOrFail: clientset: %v, namespace: %v", clientset, namespace)) - } - By(fmt.Sprintf("Creating federated ingress %q in namespace %q", FederatedIngressName, namespace)) - - ingress := &v1beta1.Ingress{ - ObjectMeta: metav1.ObjectMeta{ - Name: FederatedIngressName, - }, - Spec: v1beta1.IngressSpec{ - Backend: &v1beta1.IngressBackend{ - ServiceName: serviceName, - ServicePort: intstr.FromInt(80), - }, - TLS: []v1beta1.IngressTLS{ - { - SecretName: secretName, - }, - }, - }, - } - - newIng, err := clientset.Extensions().Ingresses(namespace).Create(ingress) - framework.ExpectNoError(err, "Creating ingress %q in namespace %q", ingress.Name, namespace) - By(fmt.Sprintf("Successfully created federated ingress %q in namespace %q", FederatedIngressName, namespace)) - return newIng -} - -func updateIngressOrFail(clientset *fedclientset.Clientset, namespace string) (newIng *v1beta1.Ingress) { - var err error - if clientset == nil || len(namespace) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to createIngressOrFail: clientset: %v, namespace: %v", clientset, namespace)) - } - ingress := &v1beta1.Ingress{ - ObjectMeta: metav1.ObjectMeta{ - Name: FederatedIngressName, - }, - Spec: v1beta1.IngressSpec{ - Backend: &v1beta1.IngressBackend{ - ServiceName: "updated-testingress-service", - ServicePort: intstr.FromInt(80), - }, - }, - } - - err = waitForFederatedIngressExists(clientset, namespace, FederatedIngressName, FederatedIngressTimeout) - if err != nil { - framework.Failf("failed to get ingress %q: %v", FederatedIngressName, err) - } - for i := 0; i < MaxRetriesOnFederatedApiserver; i++ { - newIng, err = clientset.Extensions().Ingresses(namespace).Update(ingress) - if err == nil { - framework.DescribeIng(namespace) - return newIng - } - if !errors.IsConflict(err) && !errors.IsServerTimeout(err) { - framework.Failf("failed to update ingress %q: %v", FederatedIngressName, err) - } - } - framework.Failf("too many retries updating ingress %q", FederatedIngressName) - return nil -} - -func (j *federationTestJig) waitForFederatedIngress() { - // Wait for the loadbalancer IP. - address, err := waitForFederatedIngressAddress(j.client, j.ing.Namespace, j.ing.Name, framework.LoadBalancerPollTimeout) - if err != nil { - framework.Failf("Ingress failed to acquire an IP address within %v", framework.LoadBalancerPollTimeout) - } - j.address = address - framework.Logf("Found address %v for ingress %v", j.address, j.ing.Name) - - client := &http.Client{ - // This is mostly `http.DefaultTransport` except for the - // `TLSClientConfig`. - Transport: utilnet.SetTransportDefaults(&http.Transport{ - TLSClientConfig: &tls.Config{ - InsecureSkipVerify: true, - }, - }), - Timeout: reqTimeout, - } - - // Verify that simple GET works. - route := fmt.Sprintf("https://%v", address) - framework.Logf("Testing route %v with simple GET", route) - framework.ExpectNoError(framework.PollURL(route, FederatedIngressHost, framework.LoadBalancerPollTimeout, framework.LoadBalancerPollInterval, client, false)) -} - -func createTLSSecretOrFail(clientset *fedclientset.Clientset, namespace, secretName string) *v1.Secret { - if clientset == nil || len(namespace) == 0 { - framework.Logf("Internal error: invalid parameters passed to createTLSSecretOrFail: clientset: %v, namespace: %v", clientset, namespace) - } - secret := &v1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: secretName, - }, - Type: v1.SecretTypeOpaque, - Data: map[string][]byte{ - "tls.crt": []byte(FederatedIngressTLSCrt), - "tls.key": []byte(FederatedIngressTLSKey), - }, - } - By(fmt.Sprintf("Creating federated secret %q in namespace %q", secretName, namespace)) - newSecret, err := clientset.Core().Secrets(namespace).Create(secret) - framework.ExpectNoError(err, "creating secret %q in namespace %q", secret.Name, namespace) - return newSecret -} - -type federationTestJig struct { - // TODO add TLS check later - rootCAs map[string][]byte - address string - ing *v1beta1.Ingress - client *fedclientset.Clientset -} - -func newFederationTestJig(c *fedclientset.Clientset) *federationTestJig { - return &federationTestJig{client: c, rootCAs: map[string][]byte{}} -} - -// WaitForFederatedIngressAddress waits for the Ingress to acquire an address. -func waitForFederatedIngressAddress(c *fedclientset.Clientset, ns, ingName string, timeout time.Duration) (string, error) { - var address string - err := wait.PollImmediate(10*time.Second, timeout, func() (bool, error) { - ipOrNameList, err := getFederatedIngressAddress(c, ns, ingName) - if err != nil || len(ipOrNameList) == 0 { - framework.Logf("Waiting for Ingress %v to acquire IP, error %v", ingName, err) - return false, nil - } - address = ipOrNameList[0] - return true, nil - }) - return address, err -} - -// waitForFederatedIngressExists waits for the Ingress object exists. -func waitForFederatedIngressExists(c *fedclientset.Clientset, ns, ingName string, timeout time.Duration) error { - err := wait.PollImmediate(10*time.Second, timeout, func() (bool, error) { - _, err := c.Extensions().Ingresses(ns).Get(ingName, metav1.GetOptions{}) - if err != nil { - framework.Logf("Waiting for Ingress %v, error %v", ingName, err) - return false, nil - } - return true, nil - }) - return err -} - -// getFederatedIngressAddress returns the ips/hostnames associated with the Ingress. -func getFederatedIngressAddress(client *fedclientset.Clientset, ns, name string) ([]string, error) { - ing, err := client.Extensions().Ingresses(ns).Get(name, metav1.GetOptions{}) - if err != nil { - return nil, err - } - addresses := []string{} - for _, a := range ing.Status.LoadBalancer.Ingress { - if a.IP != "" { - addresses = append(addresses, a.IP) - } - if a.Hostname != "" { - addresses = append(addresses, a.Hostname) - } - } - return addresses, nil -} - -func waitForSecretShardsOrFail(nsName string, secret *v1.Secret, clusters fedframework.ClusterSlice) { - framework.Logf("Waiting for secret %q in %d clusters", secret.Name, len(clusters)) - for _, c := range clusters { - waitForSecretOrFail(c.Clientset, nsName, secret, true, FederatedSecretTimeout) - } -} - -func waitForSecretOrFail(clientset *kubeclientset.Clientset, nsName string, secret *v1.Secret, present bool, timeout time.Duration) { - By(fmt.Sprintf("Fetching a federated secret shard of secret %q in namespace %q from cluster", secret.Name, nsName)) - var clusterSecret *v1.Secret - err := wait.PollImmediate(framework.Poll, timeout, func() (bool, error) { - var err error - clusterSecret, err = clientset.CoreV1().Secrets(nsName).Get(secret.Name, metav1.GetOptions{}) - if (!present) && errors.IsNotFound(err) { // We want it gone, and it's gone. - By(fmt.Sprintf("Success: shard of federated secret %q in namespace %q in cluster is absent", secret.Name, nsName)) - return true, nil // Success - } - if present && err == nil { // We want it present, and the Get succeeded, so we're all good. - By(fmt.Sprintf("Success: shard of federated secret %q in namespace %q in cluster is present", secret.Name, nsName)) - return true, nil // Success - } - By(fmt.Sprintf("Secret %q in namespace %q in cluster. Found: %v, waiting for Found: %v, trying again in %s (err=%v)", secret.Name, nsName, clusterSecret != nil && err == nil, present, framework.Poll, err)) - return false, nil - }) - framework.ExpectNoError(err, "Failed to verify secret %q in namespace %q in cluster: Present=%v", secret.Name, nsName, present) - - if present && clusterSecret != nil { - Expect(util.SecretEquivalent(*clusterSecret, *secret)) - } -} - -func deleteSecretOrFail(clientset *fedclientset.Clientset, nsName string, secretName string, orphanDependents *bool) { - By(fmt.Sprintf("Deleting secret %q in namespace %q", secretName, nsName)) - err := clientset.Core().Secrets(nsName).Delete(secretName, &metav1.DeleteOptions{OrphanDependents: orphanDependents}) - if err != nil && !errors.IsNotFound(err) { - framework.ExpectNoError(err, "Error deleting secret %q in namespace %q", secretName, nsName) - } - - // Wait for the secret to be deleted. - err = wait.Poll(5*time.Second, wait.ForeverTestTimeout, func() (bool, error) { - _, err := clientset.Core().Secrets(nsName).Get(secretName, metav1.GetOptions{}) - if err != nil && errors.IsNotFound(err) { - return true, nil - } - return false, err - }) - if err != nil { - framework.Failf("Error in deleting secret %s: %v", secretName, err) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/job.go b/vendor/k8s.io/kubernetes/federation/test/e2e/job.go deleted file mode 100644 index 5e1e3a679..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/job.go +++ /dev/null @@ -1,291 +0,0 @@ -/* -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 e2e - -import ( - "fmt" - "strings" - "time" - - batchv1 "k8s.io/api/batch/v1" - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/wait" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework" - imageutils "k8s.io/kubernetes/test/utils/image" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "k8s.io/apimachinery/pkg/api/errors" -) - -const ( - FederationJobName = "federation-job" -) - -var _ = framework.KubeDescribe("Federation jobs [Feature:Federation]", func() { - - f := fedframework.NewDefaultFederatedFramework("federation-job") - - Describe("Job objects [NoCluster]", func() { - AfterEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - // Delete all jobs. - nsName := f.FederationNamespace.Name - deleteAllJobsOrFail(f.FederationClientset, nsName) - }) - - It("should be created and deleted successfully", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - job := createJobOrFail(f.FederationClientset, nsName) - By(fmt.Sprintf("Creation of job %q in namespace %q succeeded. Deleting job.", job.Name, nsName)) - // Cleanup - err := f.FederationClientset.Batch().Jobs(nsName).Delete(job.Name, &metav1.DeleteOptions{}) - framework.ExpectNoError(err, "Error deleting job %q in namespace %q", job.Name, job.Namespace) - By(fmt.Sprintf("Deletion of job %q in namespace %q succeeded.", job.Name, nsName)) - }) - - }) - - // e2e cases for federated job controller - Describe("Federated Job", func() { - var ( - clusters fedframework.ClusterSlice - ) - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - clusters = f.GetRegisteredClusters() - }) - - AfterEach(func() { - nsName := f.FederationNamespace.Name - deleteAllJobsOrFail(f.FederationClientset, nsName) - }) - - It("should create and update matching jobs in underlying clusters", func() { - nsName := f.FederationNamespace.Name - job := createJobOrFail(f.FederationClientset, nsName) - defer func() { - // cleanup. deletion of jobs is not supported for underlying clusters - By(fmt.Sprintf("Deleting job %q/%q", nsName, job.Name)) - waitForJobOrFail(f.FederationClientset, nsName, job.Name, clusters) - f.FederationClientset.Batch().Jobs(nsName).Delete(job.Name, &metav1.DeleteOptions{}) - }() - - waitForJobOrFail(f.FederationClientset, nsName, job.Name, clusters) - By(fmt.Sprintf("Successfuly created and synced job %q/%q to clusters", nsName, job.Name)) - }) - - It("should be deleted from underlying clusters when OrphanDependents is false", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - nsName := f.FederationNamespace.Name - orphanDependents := false - verifyCascadingDeletionForJob(f.FederationClientset, clusters, &orphanDependents, nsName) - By(fmt.Sprintf("Verified that jobs were deleted from underlying clusters")) - }) - - It("should not be deleted from underlying clusters when OrphanDependents is true", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - nsName := f.FederationNamespace.Name - orphanDependents := true - verifyCascadingDeletionForJob(f.FederationClientset, clusters, &orphanDependents, nsName) - By(fmt.Sprintf("Verified that jobs were not deleted from underlying clusters")) - }) - - It("should not be deleted from underlying clusters when OrphanDependents is nil", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - nsName := f.FederationNamespace.Name - verifyCascadingDeletionForJob(f.FederationClientset, clusters, nil, nsName) - By(fmt.Sprintf("Verified that jobs were not deleted from underlying clusters")) - }) - - }) -}) - -// deleteAllJobsOrFail deletes all jobs in the given namespace name. -func deleteAllJobsOrFail(clientset *fedclientset.Clientset, nsName string) { - jobList, err := clientset.Batch().Jobs(nsName).List(metav1.ListOptions{}) - Expect(err).NotTo(HaveOccurred()) - orphanDependents := false - for _, job := range jobList.Items { - deleteJobOrFail(clientset, nsName, job.Name, &orphanDependents) - } -} - -// verifyCascadingDeletionForJob verifies that job are deleted -// from underlying clusters when orphan dependents is false and they are not -// deleted when orphan dependents is true. -func verifyCascadingDeletionForJob(clientset *fedclientset.Clientset, clusters fedframework.ClusterSlice, orphanDependents *bool, nsName string) { - job := createJobOrFail(clientset, nsName) - jobName := job.Name - // Check subclusters if the job was created there. - By(fmt.Sprintf("Waiting for job %s to be created in all underlying clusters", jobName)) - err := wait.Poll(5*time.Second, 2*time.Minute, func() (bool, error) { - for _, cluster := range clusters { - _, err := cluster.Batch().Jobs(nsName).Get(jobName, metav1.GetOptions{}) - if err != nil && errors.IsNotFound(err) { - return false, nil - } - if err != nil { - return false, err - } - } - return true, nil - }) - framework.ExpectNoError(err, "Not all jobs created") - - By(fmt.Sprintf("Deleting job %s", jobName)) - deleteJobOrFail(clientset, nsName, jobName, orphanDependents) - - By(fmt.Sprintf("Verifying job %s in underlying clusters", jobName)) - errMessages := []string{} - // job should be present in underlying clusters unless orphanDependents is false. - shouldExist := orphanDependents == nil || *orphanDependents == true - for _, cluster := range clusters { - clusterName := cluster.Name - _, err := cluster.Batch().Jobs(nsName).Get(jobName, metav1.GetOptions{}) - if shouldExist && errors.IsNotFound(err) { - errMessages = append(errMessages, fmt.Sprintf("unexpected NotFound error for job %s in cluster %s, expected job to exist", jobName, clusterName)) - } else if !shouldExist && !errors.IsNotFound(err) { - errMessages = append(errMessages, fmt.Sprintf("expected NotFound error for job %s in cluster %s, got error: %v", jobName, clusterName, err)) - } - } - if len(errMessages) != 0 { - framework.Failf("%s", strings.Join(errMessages, "; ")) - } -} - -func waitForJobOrFail(c *fedclientset.Clientset, namespace string, jobName string, clusters fedframework.ClusterSlice) { - err := waitForJob(c, namespace, jobName, clusters) - framework.ExpectNoError(err, "Failed to verify job %q/%q, err: %v", namespace, jobName, err) -} - -func waitForJob(c *fedclientset.Clientset, namespace string, jobName string, clusters fedframework.ClusterSlice) error { - err := wait.Poll(10*time.Second, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { - fjob, err := c.Batch().Jobs(namespace).Get(jobName, metav1.GetOptions{}) - if err != nil { - return false, err - } - succeeded := int32(0) - for _, cluster := range clusters { - job, err := cluster.Batch().Jobs(namespace).Get(jobName, metav1.GetOptions{}) - if err != nil && !errors.IsNotFound(err) { - By(fmt.Sprintf("Failed getting job: %q/%q/%q, err: %v", cluster.Name, namespace, jobName, err)) - return false, err - } - if err == nil { - if !verifyJob(fjob, job) { - By(fmt.Sprintf("Job meta or spec not match for cluster %q:\n federation: %v\n cluster: %v", cluster.Name, fjob, job)) - return false, nil - } - succeeded += job.Status.Succeeded - } - } - if succeeded == fjob.Status.Succeeded && - (fjob.Spec.Completions != nil && succeeded == *fjob.Spec.Completions) { - return true, nil - } - By(fmt.Sprintf("Job statuses not match, federation succeeded: %v/%v, clusters succeeded: %v\n", - fjob.Status.Succeeded, func(p *int32) int32 { - if p != nil { - return *p - } else { - return -1 - } - }(fjob.Spec.Completions), succeeded)) - return false, nil - }) - - return err -} - -func verifyJob(fedJob, localJob *batchv1.Job) bool { - localJob = localJob.DeepCopy() - localJob.Spec.ManualSelector = fedJob.Spec.ManualSelector - localJob.Spec.Completions = fedJob.Spec.Completions - localJob.Spec.Parallelism = fedJob.Spec.Parallelism - localJob.Spec.BackoffLimit = fedJob.Spec.BackoffLimit - return fedutil.ObjectMetaAndSpecEquivalent(fedJob, localJob) -} - -func createJobOrFail(clientset *fedclientset.Clientset, namespace string) *batchv1.Job { - if clientset == nil || len(namespace) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to createJobOrFail: clientset: %v, namespace: %v", clientset, namespace)) - } - By(fmt.Sprintf("Creating federation job %q in namespace %q", FederationJobName, namespace)) - - job := newJobForFed(namespace, FederationJobName, 5, 5) - - _, err := clientset.Batch().Jobs(namespace).Create(job) - framework.ExpectNoError(err, "Creating job %q in namespace %q", job.Name, namespace) - By(fmt.Sprintf("Successfully created federation job %q in namespace %q", FederationJobName, namespace)) - return job -} - -func deleteJobOrFail(clientset *fedclientset.Clientset, nsName string, jobName string, orphanDependents *bool) { - By(fmt.Sprintf("Deleting job %q in namespace %q", jobName, nsName)) - err := clientset.Batch().Jobs(nsName).Delete(jobName, &metav1.DeleteOptions{OrphanDependents: orphanDependents}) - if err != nil && !errors.IsNotFound(err) { - framework.ExpectNoError(err, "Error deleting job %q in namespace %q", jobName, nsName) - } - - // Wait for the job to be deleted. - err = wait.Poll(10*time.Second, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { - _, err := clientset.Batch().Jobs(nsName).Get(jobName, metav1.GetOptions{}) - if err != nil && errors.IsNotFound(err) { - return true, nil - } - return false, err - }) - if err != nil { - framework.Failf("Error in deleting job %s: %v", jobName, err) - } -} - -func newJobForFed(namespace string, name string, completions int32, parallelism int32) *batchv1.Job { - return &batchv1.Job{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: batchv1.JobSpec{ - Parallelism: ¶llelism, - Completions: &completions, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"name": "fjob"}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "sleep", - Image: imageutils.GetBusyBoxImage(), - Command: []string{"sleep", "1"}, - }, - }, - RestartPolicy: v1.RestartPolicyNever, - }, - }, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/namespace.go b/vendor/k8s.io/kubernetes/federation/test/e2e/namespace.go deleted file mode 100644 index f92db2cf3..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/namespace.go +++ /dev/null @@ -1,236 +0,0 @@ -/* -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 e2e - -import ( - "fmt" - "strings" - "time" - - "k8s.io/api/core/v1" - "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apiserver/pkg/storage/names" - clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" -) - -const ( - eventNamePrefix = "e2e-namespace-test-event-" - namespacePrefix = "e2e-namespace-test-" - replicaSetNamePrefix = "e2e-namespace-test-rs-" -) - -// Create/delete ingress api objects -var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func() { - f := fedframework.NewDefaultFederatedFramework("federation-namespace") - - Describe("Namespace objects", func() { - var clusters fedframework.ClusterSlice - - var nsName string - - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - clusters = f.GetRegisteredClusters() - }) - - AfterEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - deleteNamespace(nil, nsName, - f.FederationClientset.Core().Namespaces().Get, - f.FederationClientset.Core().Namespaces().Delete) - for _, cluster := range clusters { - deleteNamespace(nil, nsName, - cluster.CoreV1().Namespaces().Get, - cluster.CoreV1().Namespaces().Delete) - } - }) - - // See https://github.com/kubernetes/kubernetes/issues/38225 - It("deletes replicasets in the namespace when the namespace is deleted", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName = createNamespace(f.FederationClientset.Core().Namespaces()) - rsName := names.SimpleNameGenerator.GenerateName(replicaSetNamePrefix) - replicaCount := int32(2) - rs := &v1beta1.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - Name: rsName, - Namespace: nsName, - }, - Spec: v1beta1.ReplicaSetSpec{ - Replicas: &replicaCount, - Selector: &metav1.LabelSelector{ - MatchLabels: map[string]string{"name": "myrs"}, - }, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"name": "myrs"}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "nginx", - Image: "nginx", - }, - }, - }, - }, - }, - } - - By(fmt.Sprintf("Creating replicaset %s in namespace %s", rsName, nsName)) - _, err := f.FederationClientset.Extensions().ReplicaSets(nsName).Create(rs) - if err != nil { - framework.Failf("Failed to create replicaset %v in namespace %s, err: %s", rs, nsName, err) - } - - By(fmt.Sprintf("Deleting namespace %s", nsName)) - deleteNamespace(nil, nsName, - f.FederationClientset.Core().Namespaces().Get, - f.FederationClientset.Core().Namespaces().Delete) - - By(fmt.Sprintf("Verify that replicaset %s was deleted as well", rsName)) - - waitForReplicaSetToBeDeletedOrFail(f.FederationClientset, nsName, rsName) - }) - - It("all resources in the namespace should be deleted when namespace is deleted", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName = createNamespace(f.FederationClientset.Core().Namespaces()) - - // Create resources in the namespace. - event := v1.Event{ - ObjectMeta: metav1.ObjectMeta{ - Name: names.SimpleNameGenerator.GenerateName(eventNamePrefix), - Namespace: nsName, - }, - InvolvedObject: v1.ObjectReference{ - Kind: "Pod", - Namespace: nsName, - Name: "sample-pod", - }, - } - By(fmt.Sprintf("Creating event %s in namespace %s", event.Name, nsName)) - _, err := f.FederationClientset.Core().Events(nsName).Create(&event) - if err != nil { - framework.Failf("Failed to create event %v in namespace %s, err: %s", event, nsName, err) - } - - By(fmt.Sprintf("Deleting namespace %s", nsName)) - deleteNamespace(nil, nsName, - f.FederationClientset.Core().Namespaces().Get, - f.FederationClientset.Core().Namespaces().Delete) - - By(fmt.Sprintf("Verify that event %s was deleted as well", event.Name)) - latestEvent, err := f.FederationClientset.Core().Events(nsName).Get(event.Name, metav1.GetOptions{}) - if !errors.IsNotFound(err) { - framework.Failf("Event %s should have been deleted. Found: %v", event.Name, latestEvent) - } - By(fmt.Sprintf("Verified that deletion succeeded")) - }) - }) -}) - -// verifyNsCascadingDeletion verifies that namespaces are deleted from -// underlying clusters when orphan dependents is false and they are not -// deleted when orphan dependents is true. -func verifyNsCascadingDeletion(nsClient clientset.NamespaceInterface, clusters fedframework.ClusterSlice, orphanDependents *bool) string { - nsName := createNamespace(nsClient) - // Check subclusters if the namespace was created there. - By(fmt.Sprintf("Waiting for namespace %s to be created in all underlying clusters", nsName)) - err := wait.Poll(5*time.Second, 2*time.Minute, func() (bool, error) { - for _, cluster := range clusters { - _, err := cluster.CoreV1().Namespaces().Get(nsName, metav1.GetOptions{}) - if err != nil && !errors.IsNotFound(err) { - return false, err - } - if err != nil { - return false, nil - } - } - return true, nil - }) - framework.ExpectNoError(err, "Not all namespaces created") - - By(fmt.Sprintf("Deleting namespace %s", nsName)) - deleteNamespace(orphanDependents, nsName, nsClient.Get, nsClient.Delete) - - By(fmt.Sprintf("Verifying namespaces %s in underlying clusters", nsName)) - errMessages := []string{} - // namespace should be present in underlying clusters unless orphanDependents is false. - shouldExist := orphanDependents == nil || *orphanDependents == true - for _, cluster := range clusters { - clusterName := cluster.Name - _, err := cluster.CoreV1().Namespaces().Get(nsName, metav1.GetOptions{}) - if shouldExist && errors.IsNotFound(err) { - errMessages = append(errMessages, fmt.Sprintf("unexpected NotFound error for namespace %s in cluster %s, expected namespace to exist", nsName, clusterName)) - } else if !shouldExist && !errors.IsNotFound(err) { - errMessages = append(errMessages, fmt.Sprintf("expected NotFound error for namespace %s in cluster %s, got error: %v", nsName, clusterName, err)) - } - } - if len(errMessages) != 0 { - framework.Failf("%s", strings.Join(errMessages, "; ")) - } - return nsName -} - -func createNamespace(nsClient clientset.NamespaceInterface) string { - ns := v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: names.SimpleNameGenerator.GenerateName(namespacePrefix), - }, - } - By(fmt.Sprintf("Creating namespace %s", ns.Name)) - _, err := nsClient.Create(&ns) - framework.ExpectNoError(err, "Failed to create namespace %s", ns.Name) - By(fmt.Sprintf("Created namespace %s", ns.Name)) - return ns.Name -} - -func deleteNamespace(orphanDependents *bool, namespace string, getter func(name string, options metav1.GetOptions) (*v1.Namespace, error), deleter func(string, *metav1.DeleteOptions) error) { - By(fmt.Sprintf("Deleting namespace: %s", namespace)) - err := deleter(namespace, &metav1.DeleteOptions{OrphanDependents: orphanDependents}) - if errors.IsNotFound(err) { - return - } else if err != nil { - framework.Failf("Failed to set %s for deletion: %v", namespace, err) - } - waitForNamespaceDeletion(namespace, getter) -} - -func waitForNamespaceDeletion(namespace string, getter func(name string, options metav1.GetOptions) (*v1.Namespace, error)) { - err := wait.Poll(5*time.Second, 2*time.Minute, func() (bool, error) { - _, err := getter(namespace, metav1.GetOptions{}) - if errors.IsNotFound(err) { - return true, nil - } else if err != nil { - return false, err - } - return false, nil - }) - if err != nil { - framework.Failf("Namespaces not deleted: %v", err) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/replicaset.go b/vendor/k8s.io/kubernetes/federation/test/e2e/replicaset.go deleted file mode 100644 index 7a307fb95..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/replicaset.go +++ /dev/null @@ -1,461 +0,0 @@ -/* -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 e2e - -import ( - "encoding/json" - "fmt" - "reflect" - "time" - - "k8s.io/api/core/v1" - "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/wait" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/kubernetes/federation/apis/federation" - federatedtypes "k8s.io/kubernetes/federation/pkg/federatedtypes" -) - -const ( - FederationReplicaSetPrefix = "federation-replicaset-" -) - -// Create/delete replicaset api objects -var _ = framework.KubeDescribe("Federated ReplicaSet [Feature:Federation]", func() { - f := fedframework.NewDefaultFederatedFramework("federation-replicaset") - - Describe("ReplicaSet objects [NoCluster]", func() { - AfterEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - // Delete all replicasets. - nsName := f.FederationNamespace.Name - deleteAllReplicaSetsOrFail(f.FederationClientset, nsName) - }) - - It("should be created and deleted successfully", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - rs := createReplicaSetOrFail(f.FederationClientset, newReplicaSet(nsName, FederationReplicaSetPrefix, 5, nil)) - By(fmt.Sprintf("Creation of replicaset %q in namespace %q succeeded. Deleting replicaset.", rs.Name, nsName)) - // Cleanup - err := f.FederationClientset.Extensions().ReplicaSets(nsName).Delete(rs.Name, &metav1.DeleteOptions{}) - framework.ExpectNoError(err, "Error deleting replicaset %q in namespace %q", rs.Name, rs.Namespace) - By(fmt.Sprintf("Deletion of replicaset %q in namespace %q succeeded.", rs.Name, nsName)) - }) - - }) - - // e2e cases for federated replicaset controller - Describe("Features", func() { - var ( - clusters fedframework.ClusterSlice - ) - - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - clusters = f.GetRegisteredClusters() - }) - - // e2e cases for federated replicaset controller - Describe("Preferences", func() { - var ( - rs *v1beta1.ReplicaSet - ) - - AfterEach(func() { - // Delete all replicasets. - nsName := f.FederationNamespace.Name - if rs != nil { - orphanDependents := false - By(fmt.Sprintf("Deleting replicaset \"%s/%s\"", nsName, rs.Name)) - deleteReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, &orphanDependents) - rs = nil - } - }) - - It("should create replicasets with weight preference", func() { - pref, replicas, expect := generateFedRSPrefsWithWeight(clusters) - rs = createAndUpdateFedRSWithPref(f.FederationClientset, f.FederationNamespace.Name, clusters, pref, replicas, expect) - }) - - It("should create replicasets with min replicas preference", func() { - pref, replicas, expect := generateFedRSPrefsWithMin(clusters) - rs = createAndUpdateFedRSWithPref(f.FederationClientset, f.FederationNamespace.Name, clusters, pref, replicas, expect) - }) - - It("should create replicasets with max replicas preference", func() { - pref, replicas, expect := generateFedRSPrefsWithMax(clusters) - rs = createAndUpdateFedRSWithPref(f.FederationClientset, f.FederationNamespace.Name, clusters, pref, replicas, expect) - }) - - // test for rebalancing - PIt("should create replicasets and rebalance them", func() { - nsName := f.FederationNamespace.Name - pref1, pref2, replicas, expect1, expect2 := generateFedRSPrefsForRebalancing(clusters) - - By("Testing replicaset rebalancing") - framework.Logf("Replicas: %d", replicas) - framework.Logf("Preference 1: %#v", pref1) - framework.Logf("Preference 2: %#v", pref2) - - rs = newReplicaSet(nsName, FederationReplicaSetPrefix, replicas, pref1) - rs = createReplicaSetOrFail(f.FederationClientset, rs) - waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect1) - By(fmt.Sprintf("Successfully created and synced replicaset \"%s/%s\" (%v/%v) to clusters", nsName, rs.Name, rs.Status.Replicas, *rs.Spec.Replicas)) - - rs = newReplicaSetWithName(nsName, rs.Name, replicas, pref2) - updateReplicaSetOrFail(f.FederationClientset, rs) - waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect1) - By(fmt.Sprintf("Successfully updated and synced replicaset \"%s/%s\" (%v/%v) to clusters", nsName, rs.Name, rs.Status.Replicas, *rs.Spec.Replicas)) - - pref2 = updateFedRSPrefsRebalance(pref2, true) - rs = newReplicaSetWithName(nsName, rs.Name, replicas, pref2) - updateReplicaSetOrFail(f.FederationClientset, rs) - waitForReplicaSetOrFail(f.FederationClientset, nsName, rs.Name, clusters, expect2) - By(fmt.Sprintf("Successfully updated and synced replicaset \"%s/%s\" (%v/%v) to clusters", nsName, rs.Name, rs.Status.Replicas, *rs.Spec.Replicas)) - }) - }) - }) -}) - -func createAndWaitForReplicasetOrFail(clientset *fedclientset.Clientset, nsName string, clusters fedframework.ClusterSlice) *v1beta1.ReplicaSet { - rs := createReplicaSetOrFail(clientset, newReplicaSet(nsName, FederationReplicaSetPrefix, 5, nil)) - // Check subclusters if the replicaSet was created there. - By(fmt.Sprintf("Waiting for replica sets %s to be created in all underlying clusters", rs.Name)) - err := wait.Poll(5*time.Second, 2*time.Minute, func() (bool, error) { - for _, cluster := range clusters { - _, err := cluster.Extensions().ReplicaSets(nsName).Get(rs.Name, metav1.GetOptions{}) - if err != nil && errors.IsNotFound(err) { - return false, nil - } - if err != nil { - return false, err - } - } - return true, nil - }) - framework.ExpectNoError(err, "Not all replica sets created") - return rs -} - -func createAndUpdateFedRSWithPref(clientset *fedclientset.Clientset, nsName string, clusters fedframework.ClusterSlice, pref *federation.ReplicaAllocationPreferences, replicas int32, expect map[string]int32) *v1beta1.ReplicaSet { - framework.Logf("Replicas: %d, Preference: %#v", replicas, pref) - rs := newReplicaSet(nsName, FederationReplicaSetPrefix, replicas, pref) - rs = createReplicaSetOrFail(clientset, rs) - - waitForReplicaSetOrFail(clientset, nsName, rs.Name, clusters, expect) - By(fmt.Sprintf("Successfully created and synced replicaset \"%s/%s\" (%v/%v) to clusters", nsName, rs.Name, rs.Status.Replicas, *rs.Spec.Replicas)) - - rs = newReplicaSetWithName(nsName, rs.Name, 0, pref) - updateReplicaSetOrFail(clientset, rs) - waitForReplicaSetOrFail(clientset, nsName, rs.Name, clusters, nil) - By(fmt.Sprintf("Successfully updated and synced replicaset \"%s/%s\" (%v/%v) to clusters", nsName, rs.Name, rs.Status.Replicas, *rs.Spec.Replicas)) - - rs = newReplicaSetWithName(nsName, rs.Name, replicas, pref) - updateReplicaSetOrFail(clientset, rs) - waitForReplicaSetOrFail(clientset, nsName, rs.Name, clusters, expect) - By(fmt.Sprintf("Successfully updated and synced replicaset \"%s/%s\" (%v/%v) to clusters", nsName, rs.Name, rs.Status.Replicas, *rs.Spec.Replicas)) - - return rs -} - -// deleteAllReplicaSetsOrFail deletes all replicasets in the given namespace name. -func deleteAllReplicaSetsOrFail(clientset *fedclientset.Clientset, nsName string) { - replicasetList, err := clientset.Extensions().ReplicaSets(nsName).List(metav1.ListOptions{}) - Expect(err).NotTo(HaveOccurred()) - orphanDependents := false - for _, replicaset := range replicasetList.Items { - deleteReplicaSetOrFail(clientset, nsName, replicaset.Name, &orphanDependents) - } -} - -func generateFedRSPrefsWithWeight(clusters fedframework.ClusterSlice) (pref *federation.ReplicaAllocationPreferences, replicas int32, expect map[string]int32) { - By("Generating replicaset preferences with weights") - clusterNames := extractClusterNames(clusters) - pref = &federation.ReplicaAllocationPreferences{ - Clusters: map[string]federation.ClusterPreferences{}, - } - replicas = 0 - expect = map[string]int32{} - - for i, clusterName := range clusterNames { - if i != 0 { // do not set weight for cluster[0] thus it should have no replicas scheduled - pref.Clusters[clusterName] = federation.ClusterPreferences{ - Weight: int64(i), - } - replicas += int32(i) - expect[clusterName] = int32(i) - } - } - return -} - -func generateFedRSPrefsWithMin(clusters fedframework.ClusterSlice) (pref *federation.ReplicaAllocationPreferences, replicas int32, expect map[string]int32) { - By("Generating replicaset preferences with min replicas") - clusterNames := extractClusterNames(clusters) - pref = &federation.ReplicaAllocationPreferences{ - Clusters: map[string]federation.ClusterPreferences{ - clusterNames[0]: {Weight: 100}, - }, - } - replicas = 0 - expect = map[string]int32{} - - for i, clusterName := range clusterNames { - if i != 0 { // do not set weight and minReplicas for cluster[0] thus it should have no replicas scheduled - pref.Clusters[clusterName] = federation.ClusterPreferences{ - Weight: int64(1), - MinReplicas: int64(i + 2), - } - replicas += int32(i + 2) - expect[clusterName] = int32(i + 2) - } - } - // the extra replica goes to cluster[0] which has the highest weight - replicas += 1 - expect[clusterNames[0]] = 1 - return -} - -func generateFedRSPrefsWithMax(clusters fedframework.ClusterSlice) (pref *federation.ReplicaAllocationPreferences, replicas int32, expect map[string]int32) { - By("Generating replicaset preferences with max replicas") - clusterNames := extractClusterNames(clusters) - pref = &federation.ReplicaAllocationPreferences{ - Clusters: map[string]federation.ClusterPreferences{ - clusterNames[0]: {Weight: 1}, - }, - } - replicas = 0 - expect = map[string]int32{} - - for i, clusterName := range clusterNames { - if i != 0 { // do not set maxReplicas for cluster[0] thus replicas exceeds the total maxReplicas turned to cluster[0] - maxReplicas := int64(i) - pref.Clusters[clusterName] = federation.ClusterPreferences{ - Weight: int64(100), - MaxReplicas: &maxReplicas, - } - replicas += int32(i) - expect[clusterName] = int32(i) - } - } - // extra replicas go to cluster[0] although it has the lowest weight as others hit the MaxReplicas - replicas += 5 - expect[clusterNames[0]] = 5 - return -} - -func updateFedRSPrefsRebalance(pref *federation.ReplicaAllocationPreferences, rebalance bool) *federation.ReplicaAllocationPreferences { - pref.Rebalance = rebalance - return pref -} - -func generateFedRSPrefsForRebalancing(clusters fedframework.ClusterSlice) (pref1, pref2 *federation.ReplicaAllocationPreferences, replicas int32, expect1, expect2 map[string]int32) { - By("Generating replicaset for rebalancing") - clusterNames := extractClusterNames(clusters) - replicas = 3 - - pref1 = &federation.ReplicaAllocationPreferences{ - Clusters: map[string]federation.ClusterPreferences{ - clusterNames[0]: {Weight: 1}, - clusterNames[1]: {Weight: 2}, - }, - } - expect1 = map[string]int32{ - clusterNames[0]: 1, - clusterNames[1]: 2, - } - pref2 = &federation.ReplicaAllocationPreferences{ - Clusters: map[string]federation.ClusterPreferences{ - clusterNames[0]: {Weight: 2}, - clusterNames[1]: {Weight: 1}, - }, - } - expect2 = map[string]int32{ - clusterNames[0]: 2, - clusterNames[1]: 1, - } - return -} - -func waitForReplicaSetOrFail(c *fedclientset.Clientset, namespace string, replicaSetName string, clusters fedframework.ClusterSlice, expect map[string]int32) { - err := waitForReplicaSet(c, namespace, replicaSetName, clusters, expect) - framework.ExpectNoError(err, "Failed to verify replica set \"%s/%s\", err: %v", namespace, replicaSetName, err) -} - -func waitForReplicaSet(c *fedclientset.Clientset, namespace string, replicaSetName string, clusters fedframework.ClusterSlice, expect map[string]int32) error { - framework.Logf("waitForReplicaSet: %s/%s; clusters: %v; expect: %v", namespace, replicaSetName, clusters, expect) - err := wait.Poll(10*time.Second, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { - frs, err := c.ExtensionsV1beta1().ReplicaSets(namespace).Get(replicaSetName, metav1.GetOptions{}) - if err != nil { - return false, err - } - specReplicas, statusReplicas := int32(0), int32(0) - for _, cluster := range clusters { - // TODO: switch to use AppsV1beta2 ReplicaSet when apps/v1beta2 is enabled by default - rs, err := cluster.ExtensionsV1beta1().ReplicaSets(namespace).Get(replicaSetName, metav1.GetOptions{}) - if err != nil && !errors.IsNotFound(err) { - framework.Logf("Failed getting replicaset: \"%s/%s/%s\", err: %v", cluster.Name, namespace, replicaSetName, err) - return false, err - } - if errors.IsNotFound(err) { - if expect != nil && expect[cluster.Name] > 0 { - framework.Logf("Replicaset \"%s/%s/%s\" with replica count %d does not exist", cluster.Name, namespace, replicaSetName, expect[cluster.Name]) - return false, nil - } - } else { - if !equivalentReplicaSet(frs, rs) { - framework.Logf("Replicaset meta or spec does not match for cluster %q:\n federation: %v\n cluster: %v", cluster.Name, frs, rs) - return false, nil - } - if expect != nil && *rs.Spec.Replicas < expect[cluster.Name] { - framework.Logf("Replicas do not match for \"%s/%s/%s\": expected: >= %v, actual: %v", cluster.Name, namespace, replicaSetName, expect[cluster.Name], *rs.Spec.Replicas) - return false, nil - } - specReplicas += *rs.Spec.Replicas - statusReplicas += rs.Status.Replicas - } - } - if *frs.Spec.Replicas == 0 && frs.Status.Replicas != 0 { - framework.Logf("ReplicaSet \"%s/%s\" with zero replicas should match the status as no overflow happens: expected: 0, actual: %v", namespace, replicaSetName, frs.Status.Replicas) - return false, nil - } - if statusReplicas == frs.Status.Replicas && specReplicas >= *frs.Spec.Replicas { - return true, nil - } - framework.Logf("Replicas do not match, federation replicas: %v/%v, cluster replicas: %v/%v", frs.Status.Replicas, *frs.Spec.Replicas, statusReplicas, specReplicas) - return false, nil - }) - - return err -} - -func equivalentReplicaSet(fedReplicaSet, localReplicaSet *v1beta1.ReplicaSet) bool { - localReplicaSetSpec := localReplicaSet.Spec - localReplicaSetSpec.Replicas = fedReplicaSet.Spec.Replicas - return fedutil.ObjectMetaEquivalent(fedReplicaSet.ObjectMeta, localReplicaSet.ObjectMeta) && - reflect.DeepEqual(fedReplicaSet.Spec, localReplicaSetSpec) -} - -func createReplicaSetOrFail(clientset *fedclientset.Clientset, replicaset *v1beta1.ReplicaSet) *v1beta1.ReplicaSet { - namespace := replicaset.Namespace - if clientset == nil || len(namespace) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to createReplicaSetOrFail: clientset: %v, namespace: %v", clientset, namespace)) - } - By(fmt.Sprintf("Creating federation replicaset %q in namespace %q", replicaset.Name, namespace)) - - newRS, err := clientset.Extensions().ReplicaSets(namespace).Create(replicaset) - framework.ExpectNoError(err, "Creating replicaset %q in namespace %q", replicaset.Name, namespace) - By(fmt.Sprintf("Successfully created federation replicaset %q in namespace %q", newRS.Name, namespace)) - return newRS -} - -func deleteReplicaSetOrFail(clientset *fedclientset.Clientset, nsName string, replicaSetName string, orphanDependents *bool) { - By(fmt.Sprintf("Deleting replica set %q in namespace %q", replicaSetName, nsName)) - err := clientset.Extensions().ReplicaSets(nsName).Delete(replicaSetName, &metav1.DeleteOptions{OrphanDependents: orphanDependents}) - if err != nil && !errors.IsNotFound(err) { - framework.ExpectNoError(err, "Error deleting replica set %q in namespace %q", replicaSetName, nsName) - } - - waitForReplicaSetToBeDeletedOrFail(clientset, nsName, replicaSetName) -} - -func updateReplicaSetOrFail(clientset *fedclientset.Clientset, replicaset *v1beta1.ReplicaSet) *v1beta1.ReplicaSet { - namespace := replicaset.Namespace - if clientset == nil || len(namespace) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to updateReplicaSetOrFail: clientset: %v, namespace: %v", clientset, namespace)) - } - By(fmt.Sprintf("Updating federation replicaset %q in namespace %q", replicaset.Name, namespace)) - - newRS, err := clientset.ExtensionsV1beta1().ReplicaSets(namespace).Update(replicaset) - framework.ExpectNoError(err, "Updating replicaset %q in namespace %q", replicaset.Name, namespace) - By(fmt.Sprintf("Successfully updated federation replicaset %q in namespace %q", replicaset.Name, namespace)) - - return newRS -} - -func newReplicaSetObj(namespace string, replicas int32, pref *federation.ReplicaAllocationPreferences) *v1beta1.ReplicaSet { - // When the tests are run in parallel, replicasets from different tests can - // collide with each other. Prevent that by creating a unique label and - // label selector for each created replica set. - uuidString := string(uuid.NewUUID()) - rsLabel := fmt.Sprintf("myrs-%s", uuidString) - - rs := &v1beta1.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: namespace, - Annotations: map[string]string{}, - }, - Spec: v1beta1.ReplicaSetSpec{ - Replicas: &replicas, - Selector: &metav1.LabelSelector{ - MatchLabels: map[string]string{"name": rsLabel}, - }, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"name": rsLabel}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "nginx", - Image: "nginx", - }, - }, - }, - }, - }, - } - if pref != nil { - prefBytes, _ := json.Marshal(pref) - prefString := string(prefBytes) - rs.Annotations[federatedtypes.FedReplicaSetPreferencesAnnotation] = prefString - } - return rs - -} - -func newReplicaSet(namespace string, prefix string, replicas int32, pref *federation.ReplicaAllocationPreferences) *v1beta1.ReplicaSet { - rs := newReplicaSetObj(namespace, replicas, pref) - rs.GenerateName = prefix - return rs -} - -func newReplicaSetWithName(namespace string, name string, replicas int32, pref *federation.ReplicaAllocationPreferences) *v1beta1.ReplicaSet { - rs := newReplicaSetObj(namespace, replicas, pref) - rs.Name = name - return rs -} - -func extractClusterNames(clusters fedframework.ClusterSlice) []string { - clusterNames := make([]string, 0, len(clusters)) - for _, cluster := range clusters { - clusterNames = append(clusterNames, cluster.Name) - } - return clusterNames -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/service.go b/vendor/k8s.io/kubernetes/federation/test/e2e/service.go deleted file mode 100644 index 5703e9be3..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/service.go +++ /dev/null @@ -1,371 +0,0 @@ -/* -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 e2e - -import ( - "fmt" - "os" - "reflect" - "strconv" - "strings" - "time" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/wait" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" -) - -const ( - FederatedServiceName = "federated-service" - FederatedServicePodName = "federated-service-test-pod" -) - -var FederatedServiceLabels = map[string]string{ - "foo": "bar", -} - -var _ = framework.KubeDescribe("Federated Services [Feature:Federation]", func() { - f := fedframework.NewDefaultFederatedFramework("federated-service") - var clusters fedframework.ClusterSlice - var federationName string - - var _ = Describe("Without Clusters [NoCluster]", func() { - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - // Placeholder - }) - - AfterEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - }) - - It("should succeed when a service is created", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - service := createServiceOrFail(f.FederationClientset, nsName, FederatedServiceName) - By(fmt.Sprintf("Creation of service %q in namespace %q succeeded. Deleting service.", service.Name, nsName)) - - // Cleanup - err := f.FederationClientset.CoreV1().Services(nsName).Delete(service.Name, &metav1.DeleteOptions{}) - framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, service.Namespace) - By(fmt.Sprintf("Deletion of service %q in namespace %q succeeded.", service.Name, nsName)) - }) - }) - - var _ = Describe("with clusters", func() { - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - // TODO: Federation API server should be able to answer this. - if federationName = os.Getenv("FEDERATION_NAME"); federationName == "" { - federationName = DefaultFederationName - } - - clusters = f.GetRegisteredClusters() - }) - - Describe("Federated Service", func() { - var ( - service *v1.Service - nsName string - ) - - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - nsName = f.FederationNamespace.Name - }) - - AfterEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - if service != nil { - By(fmt.Sprintf("Deleting service shards and their provider resources in underlying clusters for service %q in namespace %q", service.Name, nsName)) - cleanupServiceShardsAndProviderResources(nsName, service, clusters) - service = nil - nsName = "" - } - }) - - It("should create and update matching services in underlying clusters", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - service = createServiceOrFail(f.FederationClientset, nsName, FederatedServiceName) - defer func() { // Cleanup - By(fmt.Sprintf("Deleting service %q in namespace %q", service.Name, nsName)) - err := f.FederationClientset.CoreV1().Services(nsName).Delete(service.Name, &metav1.DeleteOptions{}) - framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, nsName) - }() - By(fmt.Sprintf("Wait for service shards to be created in all clusters for service \"%s/%s\"", nsName, service.Name)) - waitForServiceShardsOrFail(nsName, service, clusters) - framework.Logf("Successfully created and synced service \"%s/%s\" to all clusters", nsName, service.Name) - By(fmt.Sprintf("Update federated service \"%s/%s\"", nsName, service.Name)) - service = updateServiceOrFail(f.FederationClientset, nsName, FederatedServiceName) - waitForServiceShardsOrFail(nsName, service, clusters) - framework.Logf("Successfully updated and synced service \"%s/%s\" to clusters", nsName, service.Name) - }) - - It("should be deleted from underlying clusters when OrphanDependents is false", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - orphanDependents := false - verifyCascadingDeletionForService(f.FederationClientset, clusters, &orphanDependents, nsName) - By(fmt.Sprintf("Verified that services were deleted from underlying clusters")) - }) - - It("should not be deleted from underlying clusters when OrphanDependents is true", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - orphanDependents := true - verifyCascadingDeletionForService(f.FederationClientset, clusters, &orphanDependents, nsName) - By(fmt.Sprintf("Verified that services were not deleted from underlying clusters")) - }) - - It("should not be deleted from underlying clusters when OrphanDependents is nil", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - verifyCascadingDeletionForService(f.FederationClientset, clusters, nil, nsName) - By(fmt.Sprintf("Verified that services were not deleted from underlying clusters")) - }) - - It("should recreate service shard in underlying clusters when service shard is deleted", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - service = createServiceOrFail(f.FederationClientset, nsName, FederatedServiceName) - defer func() { - // Cleanup - By(fmt.Sprintf("Deleting service %q in namespace %q", service.Name, nsName)) - err := f.FederationClientset.CoreV1().Services(nsName).Delete(service.Name, &metav1.DeleteOptions{}) - framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, nsName) - }() - By(fmt.Sprintf("Wait for service shards to be created in all clusters for service \"%s/%s\"", nsName, service.Name)) - waitForServiceShardsOrFail(nsName, service, clusters) - framework.Logf("Successfully created and synced service \"%s/%s\" to all clusters", nsName, service.Name) - - By(fmt.Sprintf("Deleting a service shard in one underlying cluster")) - primaryClusterName := clusters[0].Name - err := deleteServiceShard(clusters[0], nsName, FederatedServiceName) - framework.ExpectNoError(err, fmt.Sprintf("while deleting service shard %q in cluster %q", FederatedServiceName, primaryClusterName)) - - waitForServiceShardsOrFail(nsName, service, clusters) - framework.Logf("Successfully recreated service shard \"%s/%s\" in %q cluster", nsName, service.Name, primaryClusterName) - }) - }) - - var _ = Describe("DNS", func() { - - var ( - service *v1.Service - serviceShard *v1.Service - backendPods BackendPodMap - ) - - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - - backendPods = createBackendPodsOrFail(clusters, nsName, FederatedServicePodName) - - service = createLBServiceOrFail(f.FederationClientset, nsName, FederatedServiceName, clusters) - serviceShard := service.DeepCopy() - - waitForServiceShardsOrFail(nsName, serviceShard, clusters) - }) - - AfterEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - deleteBackendPodsOrFail(clusters, backendPods) - backendPods = nil - - if service != nil { - deleteServiceOrFail(f.FederationClientset, nsName, service.Name, nil) - service = nil - } else { - By("No service to delete. Service is nil") - } - - if serviceShard != nil { - By(fmt.Sprintf("Deleting service shards and their provider resources in underlying clusters for service %q in namespace %q", serviceShard.Name, nsName)) - cleanupServiceShardsAndProviderResources(nsName, serviceShard, clusters) - serviceShard = nil - } else { - By("No service shards to delete. `serviceShard` is nil") - } - }) - - It("should be able to discover a federated service", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - svcDNSNames := []string{ - FederatedServiceName, - fmt.Sprintf("%s.%s", FederatedServiceName, nsName), - fmt.Sprintf("%s.%s.svc.cluster.local.", FederatedServiceName, nsName), - fmt.Sprintf("%s.%s.%s", FederatedServiceName, nsName, federationName), - fmt.Sprintf("%s.%s.%s.svc.cluster.local.", FederatedServiceName, nsName, federationName), - } - // TODO(mml): This could be much faster. We can launch all the test - // pods, perhaps in the BeforeEach, and then just poll until we get - // successes/failures from them all. - for i, DNSName := range svcDNSNames { - discoverService(f, DNSName, true, "federated-service-e2e-discovery-pod-"+strconv.Itoa(i)) - } - By("Verified that DNS rules are working as expected") - - By("Deleting the service to verify that DNS rules still work") - err := f.FederationClientset.CoreV1().Services(nsName).Delete(FederatedServiceName, &metav1.DeleteOptions{}) - framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, service.Namespace) - // Service is deleted, unset the test block-global service variable. - service = nil - - for i, DNSName := range svcDNSNames { - discoverService(f, DNSName, true, "federated-service-e2e-discovery-pod-"+strconv.Itoa(i)) - } - By("Verified that deleting the service does not affect DNS records") - }) - - Context("non-local federated service", func() { - BeforeEach(func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - // Delete the backend pod from the shard which is local to the discovery pod. - primaryCluster := clusters[0] - backendPod := backendPods[primaryCluster.Name] - deleteOneBackendPodOrFail(primaryCluster, backendPod) - - }) - - PIt("should be able to discover a non-local federated service", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - svcDNSNames := []string{ - fmt.Sprintf("%s.%s.%s", FederatedServiceName, nsName, federationName), - fmt.Sprintf("%s.%s.%s.svc.cluster.local.", FederatedServiceName, nsName, federationName), - } - for i, name := range svcDNSNames { - discoverService(f, name, true, "federated-service-e2e-discovery-pod-"+strconv.Itoa(i)) - } - }) - - // TODO(mml): This currently takes 9 minutes. Consider reducing the - // TTL and/or running the pods in parallel. - Context("[Slow] missing local service", func() { - It("should never find DNS entries for a missing local service", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - - nsName := f.FederationNamespace.Name - localSvcDNSNames := []string{ - FederatedServiceName, - fmt.Sprintf("%s.%s", FederatedServiceName, nsName), - fmt.Sprintf("%s.%s.svc.cluster.local.", FederatedServiceName, nsName), - } - for i, name := range localSvcDNSNames { - discoverService(f, name, false, "federated-service-e2e-discovery-pod-"+strconv.Itoa(i)) - } - }) - }) - }) - }) - }) -}) - -// verifyCascadingDeletionForService verifies that services are deleted from -// underlying clusters when orphan dependents is false and they are not -// deleted when orphan dependents is true. -func verifyCascadingDeletionForService(clientset *fedclientset.Clientset, clusters fedframework.ClusterSlice, orphanDependents *bool, nsName string) { - service := createServiceOrFail(clientset, nsName, FederatedServiceName) - serviceName := service.Name - // Check subclusters if the service was created there. - By(fmt.Sprintf("Waiting for service %s to be created in all underlying clusters", serviceName)) - err := wait.Poll(5*time.Second, 2*time.Minute, func() (bool, error) { - for _, cluster := range clusters { - _, err := cluster.CoreV1().Services(nsName).Get(serviceName, metav1.GetOptions{}) - if err != nil { - if !errors.IsNotFound(err) { - return false, err - } - return false, nil - } - } - return true, nil - }) - framework.ExpectNoError(err, "Not all services created") - - By(fmt.Sprintf("Deleting service %s", serviceName)) - deleteServiceOrFail(clientset, nsName, serviceName, orphanDependents) - - By(fmt.Sprintf("Verifying services %s in underlying clusters", serviceName)) - errMessages := []string{} - // service should be present in underlying clusters unless orphanDependents is false. - shouldExist := orphanDependents == nil || *orphanDependents == true - for _, cluster := range clusters { - clusterName := cluster.Name - _, err := cluster.CoreV1().Services(nsName).Get(serviceName, metav1.GetOptions{}) - if shouldExist && errors.IsNotFound(err) { - errMessages = append(errMessages, fmt.Sprintf("unexpected NotFound error for service %s in cluster %s, expected service to exist", serviceName, clusterName)) - } else if !shouldExist && !errors.IsNotFound(err) { - errMessages = append(errMessages, fmt.Sprintf("expected NotFound error for service %s in cluster %s, got error: %v", serviceName, clusterName, err)) - } - } - if len(errMessages) != 0 { - framework.Failf("%s", strings.Join(errMessages, "; ")) - } -} - -func updateServiceOrFail(clientset *fedclientset.Clientset, namespace, name string) *v1.Service { - service, err := clientset.CoreV1().Services(namespace).Get(name, metav1.GetOptions{}) - framework.ExpectNoError(err, "Getting service %q in namespace %q", name, namespace) - service.Spec.Selector["name"] = "update-demo" - newService, err := clientset.CoreV1().Services(namespace).Update(service) - By(fmt.Sprintf("Successfully updated federated service %q in namespace %q", name, namespace)) - return newService -} - -func deleteServiceShard(c *fedframework.Cluster, namespace, service string) error { - err := c.Clientset.CoreV1().Services(namespace).Delete(service, &metav1.DeleteOptions{}) - if err != nil && !errors.IsNotFound(err) { - framework.Logf("Failed to delete service %q in namespace %q, in cluster %q", service, namespace, c.Name) - return err - } - By(fmt.Sprintf("Service %q in namespace %q in cluster %q deleted", service, namespace, c.Name)) - return nil -} - -// equivalent returns true if the two services are equivalent. Fields which are expected to differ between -// federated services and the underlying cluster services (e.g. ClusterIP, NodePort) are ignored. -func equivalent(federationService, clusterService v1.Service) bool { - clusterService.Spec.ClusterIP = federationService.Spec.ClusterIP - for i := range clusterService.Spec.Ports { - clusterService.Spec.Ports[i].NodePort = federationService.Spec.Ports[i].NodePort - } - - if federationService.Name != clusterService.Name || federationService.Namespace != clusterService.Namespace { - return false - } - if !reflect.DeepEqual(federationService.Labels, clusterService.Labels) && (len(federationService.Labels) != 0 || len(clusterService.Labels) != 0) { - return false - } - if !reflect.DeepEqual(federationService.Spec, clusterService.Spec) { - return false - } - return true -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/upgrade.go b/vendor/k8s.io/kubernetes/federation/test/e2e/upgrade.go deleted file mode 100644 index e76068621..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/upgrade.go +++ /dev/null @@ -1,139 +0,0 @@ -/* -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 e2e - -import ( - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/federation/test/e2e/upgrades" - "k8s.io/kubernetes/test/e2e/chaosmonkey" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" -) - -var upgradeTests = upgrades.SimpleUpgradeTests() - -var _ = framework.KubeDescribe("Upgrade [Feature:Upgrade]", func() { - f := fedframework.NewDefaultFederatedFramework("federation-upgrade") - - framework.KubeDescribe("Federation Control Plane upgrade", func() { - It("should maintain a functioning federation [Feature:FCPUpgrade]", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - cm := chaosmonkey.New(func() { - federationControlPlaneUpgrade(f) - }) - for _, t := range upgradeTests { - cm.RegisterInterface(&chaosMonkeyAdapter{ - test: t, - framework: f, - upgradeType: upgrades.FCPUpgrade, - }) - } - cm.Do() - }) - }) - - framework.KubeDescribe("Federated clusters upgrade", func() { - It("should maintain a functioning federation [Feature:FederatedClustersUpgrade]", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - cm := chaosmonkey.New(func() { - federatedClustersUpgrade(f) - }) - for _, t := range upgradeTests { - cm.RegisterInterface(&chaosMonkeyAdapter{ - test: t, - framework: f, - upgradeType: upgrades.FederatedClustersUpgrade, - }) - } - cm.Do() - }) - }) - - framework.KubeDescribe("FCP upgrade followed by federated clusters upgrade", func() { - It("should maintain a functioning federation [Feature:FCPUpgradeFollowedByFederatedClustersUpgrade]", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - cm := chaosmonkey.New(func() { - federationControlPlaneUpgrade(f) - federatedClustersUpgrade(f) - }) - for _, t := range upgradeTests { - cm.RegisterInterface(&chaosMonkeyAdapter{ - test: t, - framework: f, - upgradeType: upgrades.FCPUpgradeFollowedByFederatedClustersUpgrade, - }) - } - cm.Do() - }) - }) - - framework.KubeDescribe("Federated clusters upgrade followed by FCP upgrade", func() { - It("should maintain a functioning federation [Feature:FederatedClustersUpgradeFollowedByFCPUpgrade]", func() { - fedframework.SkipUnlessFederated(f.ClientSet) - cm := chaosmonkey.New(func() { - federatedClustersUpgrade(f) - federationControlPlaneUpgrade(f) - }) - for _, t := range upgradeTests { - cm.RegisterInterface(&chaosMonkeyAdapter{ - test: t, - framework: f, - upgradeType: upgrades.FederatedClustersUpgradeFollowedByFCPUpgrade, - }) - } - cm.Do() - }) - }) -}) - -type chaosMonkeyAdapter struct { - test upgrades.Test - framework *fedframework.Framework - upgradeType upgrades.FederationUpgradeType -} - -func (cma *chaosMonkeyAdapter) Setup() { - cma.test.Setup(cma.framework) -} - -func (cma *chaosMonkeyAdapter) Test(stopCh <-chan struct{}) { - cma.test.Test(cma.framework, stopCh, cma.upgradeType) -} - -func (cma *chaosMonkeyAdapter) Teardown() { - cma.test.Teardown(cma.framework) -} - -func federationControlPlaneUpgrade(f *fedframework.Framework) { - federationVersion, err := framework.RealVersion(framework.TestContext.FederationUpgradeTarget) - framework.ExpectNoError(err) - framework.ExpectNoError(fedframework.FederationControlPlaneUpgrade(federationVersion)) - framework.ExpectNoError(fedframework.CheckFederationVersion(f.FederationClientset, federationVersion)) -} - -func federatedClustersUpgrade(f *fedframework.Framework) { - k8sVersion, err := framework.RealVersion(framework.TestContext.UpgradeTarget) - framework.ExpectNoError(err) - clusters := f.GetRegisteredClusters() - for _, cluster := range clusters { - framework.ExpectNoError(fedframework.MasterUpgrade(cluster.Name, k8sVersion)) - framework.ExpectNoError(framework.CheckMasterVersion(cluster.Clientset, k8sVersion)) - - // TODO: Need to add Node upgrade. Add once this framework is stable - } -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/simple.go b/vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/simple.go deleted file mode 100644 index 880b6edce..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/simple.go +++ /dev/null @@ -1,72 +0,0 @@ -/* -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 upgrades - -import ( - "fmt" - - pkgruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/federation/pkg/federatedtypes" - crudtester "k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - - . "github.com/onsi/ginkgo" -) - -// SimpleUpgradeTest validates that a federated resource remains -// propagated before and after a control plane upgrade -type SimpleUpgradeTest struct { - kind string - adapterFactory federatedtypes.AdapterFactory - crudTester *crudtester.FederatedTypeCRUDTester - obj pkgruntime.Object -} - -// Setup creates a resource and validates its propagation to member clusters -func (ut *SimpleUpgradeTest) Setup(f *fedframework.Framework) { - adapter := ut.adapterFactory(f.FederationClientset, f.FederationConfig, nil) - clients := f.GetClusterClients() - ut.crudTester = fedframework.NewFederatedTypeCRUDTester(adapter, clients) - - By(fmt.Sprintf("Creating a resource of kind %q and validating propagation to member clusters", ut.kind)) - obj := adapter.NewTestObject(f.Namespace.Name) - ut.obj = ut.crudTester.CheckCreate(obj) -} - -// Test validates that a resource remains propagated post-upgrade -func (ut *SimpleUpgradeTest) Test(f *fedframework.Framework, done <-chan struct{}, upgrade FederationUpgradeType) { - <-done - By(fmt.Sprintf("Validating that a resource of kind %q remains propagated to member clusters after upgrade", ut.kind)) - ut.crudTester.CheckPropagation(ut.obj) -} - -// Teardown cleans up remaining resources -func (ut *SimpleUpgradeTest) Teardown(f *fedframework.Framework) { - // Rely on the namespace deletion to clean up everything -} - -// SimpleUpgradeTests collects simple upgrade tests for registered federated types -func SimpleUpgradeTests() []Test { - tests := []Test{} - for kind, fedType := range federatedtypes.FederatedTypes() { - tests = append(tests, &SimpleUpgradeTest{ - kind: kind, - adapterFactory: fedType.AdapterFactory, - }) - } - return tests -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/upgrade.go b/vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/upgrade.go deleted file mode 100644 index e2c9bb911..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/upgrade.go +++ /dev/null @@ -1,56 +0,0 @@ -/* -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 upgrades provides a framework for testing Kubernetes federation -// features before, during, and after different types of upgrades. -package upgrades - -import fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - -// FederationUpgradeType represents different types of federation upgrades. -type FederationUpgradeType int - -const ( - // FCPUpgrade indicates that federation control plane is being upgraded. - FCPUpgrade FederationUpgradeType = iota - - // FederatedClustersUpgrade indicates that federated clusters are being upgraded. - FederatedClustersUpgrade - - // FCPUpgradeFollowedByFederatedClustersUpgrade indicates that federation control plane is upgraded - // followed by federated clusters upgrade. - FCPUpgradeFollowedByFederatedClustersUpgrade - - // FederatedClustersUpgradeFollowedByFCPUpgrade indicates that federated clusters are upgraded - // followed by federation control plane upgrade. - FederatedClustersUpgradeFollowedByFCPUpgrade -) - -// Test is an interface for federation upgrade tests. -type Test interface { - // Setup should create and verify whatever objects need to - // exist before the upgrade disruption starts. - Setup(f *fedframework.Framework) - - // Test will run during the upgrade. When the upgrade is - // complete, done will be closed and final validation can - // begin. - Test(f *fedframework.Framework, done <-chan struct{}, upgrade FederationUpgradeType) - - // TearDown should clean up any objects that are created that - // aren't already cleaned up by the framework. - Teardown(f *fedframework.Framework) -} diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/util.go b/vendor/k8s.io/kubernetes/federation/test/e2e/util.go deleted file mode 100644 index f30d03945..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/util.go +++ /dev/null @@ -1,513 +0,0 @@ -/* -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 e2e - -import ( - "fmt" - "time" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/apimachinery/pkg/util/rand" - "k8s.io/apimachinery/pkg/util/wait" - kubeclientset "k8s.io/client-go/kubernetes" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - "k8s.io/kubernetes/pkg/cloudprovider" - "k8s.io/kubernetes/test/e2e/common" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - imageutils "k8s.io/kubernetes/test/utils/image" -) - -var ( - DefaultFederationName = "e2e-federation" - // We use this to decide how long to wait for our DNS probes to succeed. - DNSTTL = 180 * time.Second // TODO: make k8s.io/kubernetes/federation/pkg/federation-controller/service.minDnsTtl exported, and import it here. -) - -const ( - // [30000, 32767] is the allowed default service nodeport range and our - // tests just use the defaults. - FederatedSvcNodePortFirst = 30000 - FederatedSvcNodePortLast = 32767 -) - -var FederationSuite common.Suite - -func createClusterObjectOrFail(f *fedframework.Framework, context *fedframework.E2EContext, clusterNamePrefix string) { - clusterName := clusterNamePrefix + context.Name - framework.Logf("Creating cluster object: %s (%s, secret: %s)", clusterName, context.Cluster.Cluster.Server, context.Name) - cluster := federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: clusterName, - }, - Spec: federationapi.ClusterSpec{ - ServerAddressByClientCIDRs: []federationapi.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: context.Cluster.Cluster.Server, - }, - }, - SecretRef: &v1.LocalObjectReference{ - // Note: Name must correlate with federation build script secret name, - // which currently matches the cluster name. - // See federation/cluster/common.sh:132 - Name: context.Name, - }, - }, - } - if clusterNamePrefix != "" { - cluster.Labels = map[string]string{"prefix": clusterNamePrefix} - } - _, err := f.FederationClientset.Federation().Clusters().Create(&cluster) - framework.ExpectNoError(err, fmt.Sprintf("creating cluster: %+v", err)) - framework.Logf("Successfully created cluster object: %s (%s, secret: %s)", clusterName, context.Cluster.Cluster.Server, context.Name) -} - -// waitForServiceOrFail waits until a service is either present or absent in the cluster specified by clientset. -// If the condition is not met within timout, it fails the calling test. -func waitForServiceOrFail(clientset *kubeclientset.Clientset, namespace string, service *v1.Service, present bool, timeout time.Duration) { - By(fmt.Sprintf("Fetching a federated service shard of service %q in namespace %q from cluster", service.Name, namespace)) - err := wait.PollImmediate(framework.Poll, timeout, func() (bool, error) { - clusterService, err := clientset.CoreV1().Services(namespace).Get(service.Name, metav1.GetOptions{}) - if (!present) && errors.IsNotFound(err) { // We want it gone, and it's gone. - By(fmt.Sprintf("Success: shard of federated service %q in namespace %q in cluster is absent", service.Name, namespace)) - return true, nil // Success - } - if present && err == nil { // We want it present, and the Get succeeded, so we're all good. - if equivalent(*clusterService, *service) { - By(fmt.Sprintf("Success: shard of federated service %q in namespace %q in cluster is present", service.Name, namespace)) - return true, nil // Success - } - return false, nil - } - By(fmt.Sprintf("Service %q in namespace %q in cluster. Found: %v, waiting for Found: %v, trying again in %s (err=%v)", service.Name, namespace, clusterService != nil && err == nil, present, framework.Poll, err)) - return false, nil - }) - framework.ExpectNoError(err, "Failed to verify service %q in namespace %q in cluster: Present=%v", service.Name, namespace, present) -} - -// waitForServiceShardsOrFail waits for the service to appear in all clusters -func waitForServiceShardsOrFail(namespace string, service *v1.Service, clusters fedframework.ClusterSlice) { - framework.Logf("Waiting for service %q in %d clusters", service.Name, len(clusters)) - for _, c := range clusters { - waitForServiceOrFail(c.Clientset, namespace, service, true, fedframework.FederatedDefaultTestTimeout) - } -} - -func createService(clientset *fedclientset.Clientset, namespace, name string) (*v1.Service, error) { - if clientset == nil || len(namespace) == 0 { - return nil, fmt.Errorf("Internal error: invalid parameters passed to createService: clientset: %v, namespace: %v", clientset, namespace) - } - By(fmt.Sprintf("Creating federated service %q in namespace %q", name, namespace)) - - service := &v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1.ServiceSpec{ - Selector: FederatedServiceLabels, - Type: v1.ServiceTypeClusterIP, - Ports: []v1.ServicePort{ - { - Name: "http", - Protocol: v1.ProtocolTCP, - Port: 80, - TargetPort: intstr.FromInt(8080), - }, - }, - SessionAffinity: v1.ServiceAffinityNone, - }, - } - - By(fmt.Sprintf("Trying to create service %q in namespace %q", service.Name, namespace)) - return clientset.CoreV1().Services(namespace).Create(service) -} - -func createLBService(clientset *fedclientset.Clientset, namespace, name string, clusters fedframework.ClusterSlice) (*v1.Service, error) { - if clientset == nil || len(namespace) == 0 { - return nil, fmt.Errorf("Internal error: invalid parameters passed to createService: clientset: %v, namespace: %v", clientset, namespace) - } - By(fmt.Sprintf("Creating federated service (type: load balancer) %q in namespace %q", name, namespace)) - - // Tests can be run in parallel, so we need a different nodePort for - // each test. - // we add in a array all the "available" ports - availablePorts := make([]int32, FederatedSvcNodePortLast-FederatedSvcNodePortFirst) - for i := range availablePorts { - availablePorts[i] = int32(FederatedSvcNodePortFirst + i) - } - - var err error - var service *v1.Service - retry := 10 // the function should retry the service creation on different port only 10 time. - - // until the availablePort list is not empty, lets try to create the service - for len(availablePorts) > 0 && retry > 0 { - // select the Id of an available port - i := rand.Intn(len(availablePorts)) - - By(fmt.Sprintf("try creating federated service %q in namespace %q with nodePort %d", name, namespace, availablePorts[i])) - - service, err = createServiceWithNodePort(clientset, namespace, name, availablePorts[i]) - if err == nil { - // check if service have been created properly in all clusters. - // if the service is not present in one of the clusters, we should cleanup all services - if err = checkServicesCreation(namespace, name, clusters); err == nil { - // everything was created properly so returns the federated service. - return service, nil - } - } - - // in case of error, cleanup everything - if service != nil { - if err = deleteService(clientset, namespace, name, nil); err != nil { - framework.ExpectNoError(err, "Deleting service %q after a partial createService() error", service.Name) - return nil, err - } - - cleanupServiceShardsAndProviderResources(namespace, service, clusters) - } - - // creation failed, lets try with another port - // first remove from the availablePorts the port with which the creation failed - availablePorts = append(availablePorts[:i], availablePorts[i+1:]...) - retry-- - } - - return nil, err -} - -func createServiceWithNodePort(clientset *fedclientset.Clientset, namespace, name string, nodePort int32) (*v1.Service, error) { - service := &v1.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Namespace: namespace, - }, - Spec: v1.ServiceSpec{ - Selector: FederatedServiceLabels, - Type: v1.ServiceTypeLoadBalancer, - Ports: []v1.ServicePort{ - { - Name: "http", - Protocol: v1.ProtocolTCP, - Port: 80, - TargetPort: intstr.FromInt(8080), - NodePort: nodePort, - }, - }, - SessionAffinity: v1.ServiceAffinityNone, - }, - } - - By(fmt.Sprintf("Trying to create service %q in namespace %q", service.Name, namespace)) - return clientset.CoreV1().Services(namespace).Create(service) -} - -// checkServicesCreation checks if the service have been created successfuly in all the clusters. -// if the service is not present in at least one of the clusters, this function returns an error. -func checkServicesCreation(namespace, serviceName string, clusters fedframework.ClusterSlice) error { - framework.Logf("check if service %q have been created in %d clusters", serviceName, len(clusters)) - for _, cluster := range clusters { - name := cluster.Name - err := wait.PollImmediate(framework.Poll, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { - var err error - _, err = cluster.Clientset.CoreV1().Services(namespace).Get(serviceName, metav1.GetOptions{}) - if err != nil && !errors.IsNotFound(err) { - // Get failed with an error, try again. - framework.Logf("Failed to find service %q in namespace %q, in cluster %q: %v. Trying again in %s", serviceName, namespace, name, err, framework.Poll) - return false, err - } else if errors.IsNotFound(err) { - framework.Logf("Service %q in namespace %q in cluster %q not found. Trying again in %s", serviceName, namespace, name, framework.Poll) - return false, nil - } - By(fmt.Sprintf("Service %q in namespace %q in cluster %q found", serviceName, namespace, name)) - return true, nil - }) - if err != nil { - return err - } - } - return nil -} - -func createServiceOrFail(clientset *fedclientset.Clientset, namespace, name string) *v1.Service { - service, err := createService(clientset, namespace, name) - framework.ExpectNoError(err, "Creating service %q in namespace %q", service.Name, namespace) - By(fmt.Sprintf("Successfully created federated service %q in namespace %q", name, namespace)) - return service -} - -func createLBServiceOrFail(clientset *fedclientset.Clientset, namespace, name string, clusters fedframework.ClusterSlice) *v1.Service { - service, err := createLBService(clientset, namespace, name, clusters) - framework.ExpectNoError(err, "Creating service %q in namespace %q", service.Name, namespace) - By(fmt.Sprintf("Successfully created federated service (type: load balancer) %q in namespace %q", name, namespace)) - return service -} - -func deleteServiceOrFail(clientset *fedclientset.Clientset, namespace string, serviceName string, orphanDependents *bool) { - if clientset == nil || len(namespace) == 0 || len(serviceName) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to deleteServiceOrFail: clientset: %v, namespace: %v, service: %v", clientset, namespace, serviceName)) - } - framework.Logf("Deleting service %q in namespace %v", serviceName, namespace) - - err := deleteService(clientset, namespace, serviceName, orphanDependents) - if err != nil { - framework.ExpectNoError(err, "Error deleting service %q from namespace %q", serviceName, namespace) - } -} - -func deleteService(clientset *fedclientset.Clientset, namespace string, serviceName string, orphanDependents *bool) error { - err := clientset.CoreV1().Services(namespace).Delete(serviceName, &metav1.DeleteOptions{OrphanDependents: orphanDependents}) - if err != nil { - return err - } - // Wait for the service to be deleted. - err = wait.Poll(5*time.Second, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { - _, err := clientset.Core().Services(namespace).Get(serviceName, metav1.GetOptions{}) - if err != nil && errors.IsNotFound(err) { - return true, nil - } - return false, err - }) - return err -} - -func cleanupServiceShardsAndProviderResources(namespace string, service *v1.Service, clusters fedframework.ClusterSlice) { - framework.Logf("Deleting service %q in %d clusters", service.Name, len(clusters)) - for _, c := range clusters { - name := c.Name - var cSvc *v1.Service - - err := wait.PollImmediate(framework.Poll, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { - var err error - cSvc, err = c.Clientset.CoreV1().Services(namespace).Get(service.Name, metav1.GetOptions{}) - if err != nil && !errors.IsNotFound(err) { - // Get failed with an error, try again. - framework.Logf("Failed to find service %q in namespace %q, in cluster %q: %v. Trying again in %s", service.Name, namespace, name, err, framework.Poll) - return false, nil - } else if errors.IsNotFound(err) { - cSvc = nil - By(fmt.Sprintf("Service %q in namespace %q in cluster %q not found", service.Name, namespace, name)) - return true, err - } - By(fmt.Sprintf("Service %q in namespace %q in cluster %q found", service.Name, namespace, name)) - return true, err - }) - - if err != nil || cSvc == nil { - By(fmt.Sprintf("Failed to find service %q in namespace %q, in cluster %q in %s", service.Name, namespace, name, fedframework.FederatedDefaultTestTimeout)) - continue - } - - if cSvc.Spec.Type == v1.ServiceTypeLoadBalancer { - // In federation tests, e2e zone names are used to derive federation member cluster names - zone := fedframework.GetZoneFromClusterName(name) - serviceLBName := cloudprovider.GetLoadBalancerName(cSvc) - framework.Logf("cleaning cloud provider resource for service %q in namespace %q, in cluster %q", service.Name, namespace, name) - framework.CleanupServiceResources(c.Clientset, serviceLBName, zone) - } - - err = cleanupServiceShard(c.Clientset, name, namespace, cSvc, fedframework.FederatedDefaultTestTimeout) - if err != nil { - framework.Logf("Failed to delete service %q in namespace %q, in cluster %q: %v", service.Name, namespace, name, err) - } - } -} - -func cleanupServiceShard(clientset *kubeclientset.Clientset, clusterName, namespace string, service *v1.Service, timeout time.Duration) error { - err := wait.PollImmediate(framework.Poll, timeout, func() (bool, error) { - err := clientset.CoreV1().Services(namespace).Delete(service.Name, &metav1.DeleteOptions{}) - if err != nil && !errors.IsNotFound(err) { - // Deletion failed with an error, try again. - framework.Logf("Failed to delete service %q in namespace %q, in cluster %q", service.Name, namespace, clusterName) - return false, nil - } - By(fmt.Sprintf("Service %q in namespace %q in cluster %q deleted", service.Name, namespace, clusterName)) - return true, nil - }) - return err -} - -func podExitCodeDetector(f *fedframework.Framework, name, namespace string, code int32) func() error { - // If we ever get any container logs, stash them here. - logs := "" - - logerr := func(err error) error { - if err == nil { - return nil - } - if logs == "" { - return err - } - return fmt.Errorf("%s (%v)", logs, err) - } - - return func() error { - pod, err := f.ClientSet.Core().Pods(namespace).Get(name, metav1.GetOptions{}) - if err != nil { - return logerr(err) - } - if len(pod.Status.ContainerStatuses) < 1 { - return logerr(fmt.Errorf("no container statuses")) - } - - // Best effort attempt to grab pod logs for debugging - logs, err = framework.GetPodLogs(f.ClientSet, namespace, name, pod.Spec.Containers[0].Name) - if err != nil { - framework.Logf("Cannot fetch pod logs: %v", err) - } - - status := pod.Status.ContainerStatuses[0] - if status.State.Terminated == nil { - return logerr(fmt.Errorf("container is not in terminated state")) - } - if status.State.Terminated.ExitCode == code { - return nil - } - - return logerr(fmt.Errorf("exited %d", status.State.Terminated.ExitCode)) - } -} - -func discoverService(f *fedframework.Framework, name string, exists bool, podName string) { - command := []string{"sh", "-c", fmt.Sprintf("until nslookup '%s'; do sleep 10; done", name)} - By(fmt.Sprintf("Looking up %q", name)) - - pod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: podName, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "federated-service-discovery-container", - Image: imageutils.GetBusyBoxImage(), - Command: command, - }, - }, - RestartPolicy: v1.RestartPolicyOnFailure, - }, - } - - nsName := f.FederationNamespace.Name - By(fmt.Sprintf("Creating pod %q in namespace %q", pod.Name, nsName)) - _, err := f.ClientSet.Core().Pods(nsName).Create(pod) - framework.ExpectNoError(err, "Trying to create pod to run %q", command) - By(fmt.Sprintf("Successfully created pod %q in namespace %q", pod.Name, nsName)) - defer func() { - By(fmt.Sprintf("Deleting pod %q from namespace %q", podName, nsName)) - err := f.ClientSet.Core().Pods(nsName).Delete(podName, metav1.NewDeleteOptions(0)) - framework.ExpectNoError(err, "Deleting pod %q from namespace %q", podName, nsName) - By(fmt.Sprintf("Deleted pod %q from namespace %q", podName, nsName)) - }() - - if exists { - // TODO(mml): Eventually check the IP address is correct, too. - Eventually(podExitCodeDetector(f, podName, nsName, 0), 3*DNSTTL, time.Second*2). - Should(BeNil(), "%q should exit 0, but it never did", command) - } else { - Eventually(podExitCodeDetector(f, podName, nsName, 0), 3*DNSTTL, time.Second*2). - ShouldNot(BeNil(), "%q should eventually not exit 0, but it always did", command) - } -} - -// BackendPodMap maps a cluster name to a backend pod created in that cluster -type BackendPodMap map[string]*v1.Pod - -// createBackendPodsOrFail creates one pod in each cluster, and returns the created pods. If creation of any pod fails, -// the test fails (possibly with a partially created set of pods). No retries are attempted. -func createBackendPodsOrFail(clusters fedframework.ClusterSlice, namespace string, name string) BackendPodMap { - pod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - // Namespace: namespace, - Labels: FederatedServiceLabels, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: name, - Image: "gcr.io/google_containers/echoserver:1.6", - }, - }, - RestartPolicy: v1.RestartPolicyAlways, - }, - } - podMap := make(BackendPodMap) - for _, c := range clusters { - name := c.Name - By(fmt.Sprintf("Creating pod %q in namespace %q in cluster %q", pod.Name, namespace, name)) - createdPod, err := c.Clientset.CoreV1().Pods(namespace).Create(pod) - framework.ExpectNoError(err, "Creating pod %q in namespace %q in cluster %q", name, namespace, name) - By(fmt.Sprintf("Successfully created pod %q in namespace %q in cluster %q: %v", pod.Name, namespace, name, *createdPod)) - podMap[name] = createdPod - } - return podMap -} - -// deleteOneBackendPodOrFail deletes exactly one backend pod which must not be nil -// The test fails if there are any errors. -func deleteOneBackendPodOrFail(c *fedframework.Cluster, pod *v1.Pod) { - Expect(pod).ToNot(BeNil()) - err := c.Clientset.CoreV1().Pods(pod.Namespace).Delete(pod.Name, metav1.NewDeleteOptions(0)) - msgFmt := fmt.Sprintf("Deleting Pod %q in namespace %q in cluster %q %%v", pod.Name, pod.Namespace, c.Name) - if errors.IsNotFound(err) { - framework.Logf(msgFmt, "does not exist. No need to delete it.") - return - } - framework.ExpectNoError(err, msgFmt, "") - framework.Logf(msgFmt, "was deleted") -} - -// deleteBackendPodsOrFail deletes one pod from each cluster that has one. -// If deletion of any pod fails, the test fails (possibly with a partially deleted set of pods). No retries are attempted. -func deleteBackendPodsOrFail(clusters fedframework.ClusterSlice, backendPods BackendPodMap) { - if backendPods == nil { - return - } - for _, c := range clusters { - if pod, ok := backendPods[c.Name]; ok { - deleteOneBackendPodOrFail(c, pod) - } else { - By(fmt.Sprintf("No backend pod to delete for cluster %q", c.Name)) - } - } -} - -// waitForReplicatSetToBeDeletedOrFail waits for the named ReplicaSet in namespace to be deleted. -// If the deletion fails, the enclosing test fails. -func waitForReplicaSetToBeDeletedOrFail(clientset *fedclientset.Clientset, namespace string, replicaSet string) { - err := wait.Poll(5*time.Second, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { - _, err := clientset.Extensions().ReplicaSets(namespace).Get(replicaSet, metav1.GetOptions{}) - if err != nil && errors.IsNotFound(err) { - return true, nil - } - return false, err - }) - - if err != nil { - framework.Failf("Error in deleting replica set %s: %v", replicaSet, err) - } -} diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/BUILD b/vendor/k8s.io/kubernetes/federation/test/integration/BUILD deleted file mode 100644 index c6e7fcc92..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/integration/BUILD +++ /dev/null @@ -1,50 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_test", -) - -go_test( - name = "go_default_test", - size = "large", - srcs = [ - "api_test.go", - "crud_test.go", - "main_test.go", - ], - importpath = "k8s.io/kubernetes/federation/test/integration", - tags = ["integration"], - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/pkg/federatedtypes:go_default_library", - "//federation/pkg/federatedtypes/crudtester:go_default_library", - "//federation/test/integration/framework:go_default_library", - "//test/integration/framework:go_default_library", - "//vendor/github.com/pborman/uuid:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/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/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/test/integration/framework:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/OWNERS b/vendor/k8s.io/kubernetes/federation/test/integration/OWNERS deleted file mode 100644 index 9c3192203..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/integration/OWNERS +++ /dev/null @@ -1,16 +0,0 @@ -reviewers: - - colhom - - csbell - - irfanurrehman - - madhusudancs - - marun - - mwielgus - - nikhiljindal - - quinton-hoole - - shashidharatd -approvers: - - csbell - - madhusudancs - - mwielgus - - nikhiljindal - - quinton-hoole diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/api_test.go b/vendor/k8s.io/kubernetes/federation/test/integration/api_test.go deleted file mode 100644 index b53311e0b..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/integration/api_test.go +++ /dev/null @@ -1,417 +0,0 @@ -/* -Copyright 2015 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 integration - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "net/http" - "testing" - - "github.com/stretchr/testify/assert" - - autoscaling_v1 "k8s.io/api/autoscaling/v1" - batch_v1 "k8s.io/api/batch/v1" - "k8s.io/api/core/v1" - ext_v1b1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - fed_v1b1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/federation/test/integration/framework" -) - -// List of group versions that are enabled by default. -var enabledGroupVersions = []schema.GroupVersion{ - fed_v1b1.SchemeGroupVersion, - ext_v1b1.SchemeGroupVersion, -} - -// List of group versions that are disabled by default. -var disabledGroupVersions = []schema.GroupVersion{ - batch_v1.SchemeGroupVersion, - autoscaling_v1.SchemeGroupVersion, -} - -type apiTestFunc func(t *testing.T, host string, expectedGroupVersions []schema.GroupVersion) - -func testFederationAPI(t *testing.T, runtimeConfig string, expectedGroupVersions []schema.GroupVersion) { - f := &framework.FederationAPIFixture{} - if runtimeConfig == "" { - f.SetUp(t) - } else { - runOptions := framework.GetRunOptions() - runOptions.APIEnablement.RuntimeConfig.Set(runtimeConfig) - f.SetUpWithRunOptions(t, runOptions) - } - defer f.TearDown(t) - - testCases := map[string]apiTestFunc{ - "swaggerSpec": testSwaggerSpec, - "support": testSupport, - "apiGroupList": testAPIGroupList, - "apiGroup": testAPIGroup, - "apiResourceList": testAPIResourceList, - } - for testName, testFunc := range testCases { - t.Run(testName, func(t *testing.T) { - testFunc(t, f.Host, expectedGroupVersions) - }) - } -} - -// Verifies that only default APIs are enabled when no runtime config is set. -func TestDefaultRun(t *testing.T) { - testFederationAPI(t, "", enabledGroupVersions) -} - -// Verifies that all APIs are enabled when runtime config is set to all. -func TestRunWithRuntimeConfigAll(t *testing.T) { - expectedGroupVersions := enabledGroupVersions - expectedGroupVersions = append(enabledGroupVersions, disabledGroupVersions...) - testFederationAPI(t, "api/all=true", expectedGroupVersions) -} - -func readResponse(serverURL string) ([]byte, error) { - response, err := http.Get(serverURL) - if err != nil { - return nil, fmt.Errorf("Error in fetching %s: %v", serverURL, err) - } - defer response.Body.Close() - if response.StatusCode != http.StatusOK { - return nil, fmt.Errorf("unexpected status: %d for URL: %s, expected status: %d", response.StatusCode, serverURL, http.StatusOK) - } - contents, err := ioutil.ReadAll(response.Body) - if err != nil { - return nil, fmt.Errorf("Error reading response from %s: %v", serverURL, err) - } - return contents, nil -} - -func testSwaggerSpec(t *testing.T, host string, expectedGroupVersions []schema.GroupVersion) { - serverURL := host + "/swaggerapi" - _, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } -} - -func testSupport(t *testing.T, host string, expectedGroupVersions []schema.GroupVersion) { - serverURL := host + "/version" - _, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } -} - -func findGroup(groups []metav1.APIGroup, groupName string) *metav1.APIGroup { - for _, group := range groups { - if group.Name == groupName { - return &group - } - } - return nil -} - -func testAPIGroupList(t *testing.T, host string, expectedGroupVersions []schema.GroupVersion) { - groupVersionForDiscoveryMap := make(map[string]metav1.GroupVersionForDiscovery) - for _, groupVersion := range expectedGroupVersions { - groupVersionForDiscoveryMap[groupVersion.Group] = metav1.GroupVersionForDiscovery{ - GroupVersion: groupVersion.String(), - Version: groupVersion.Version, - } - } - - serverURL := host + "/apis" - contents, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } - var apiGroupList metav1.APIGroupList - err = json.Unmarshal(contents, &apiGroupList) - if err != nil { - t.Fatalf("Error in unmarshalling response from server %s: %v", serverURL, err) - } - - assert.Equal(t, len(apiGroupList.Groups), len(expectedGroupVersions), "expected: %v, actual: %v", expectedGroupVersions, apiGroupList.Groups) - for _, groupVersion := range expectedGroupVersions { - found := findGroup(apiGroupList.Groups, groupVersion.Group) - assert.NotNil(t, found) - assert.Equal(t, groupVersion.Group, found.Name) - assert.Equal(t, 1, len(found.Versions)) - groupVersionForDiscovery := groupVersionForDiscoveryMap[groupVersion.Group] - assert.Equal(t, groupVersionForDiscovery, found.Versions[0]) - assert.Equal(t, groupVersionForDiscovery, found.PreferredVersion) - } -} - -func testAPIGroup(t *testing.T, host string, expectedGroupVersions []schema.GroupVersion) { - for _, groupVersion := range expectedGroupVersions { - serverURL := host + "/apis/" + groupVersion.Group - contents, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } - var apiGroup metav1.APIGroup - err = json.Unmarshal(contents, &apiGroup) - if err != nil { - t.Fatalf("Error in unmarshalling response from server %s: %v", serverURL, err) - } - // empty APIVersion for extensions group - if groupVersion.Group == "extensions" { - assert.Equal(t, "", apiGroup.APIVersion) - } else { - assert.Equal(t, "v1", apiGroup.APIVersion) - } - assert.Equal(t, apiGroup.Name, groupVersion.Group) - assert.Equal(t, 1, len(apiGroup.Versions)) - assert.Equal(t, groupVersion.String(), apiGroup.Versions[0].GroupVersion) - assert.Equal(t, groupVersion.Version, apiGroup.Versions[0].Version) - assert.Equal(t, apiGroup.PreferredVersion, apiGroup.Versions[0]) - } - - testCoreAPIGroup(t, host) -} - -func testCoreAPIGroup(t *testing.T, host string) { - serverURL := host + "/api" - contents, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } - var apiVersions metav1.APIVersions - err = json.Unmarshal(contents, &apiVersions) - if err != nil { - t.Fatalf("Error in unmarshalling response from server %s: %v", serverURL, err) - } - assert.Equal(t, 1, len(apiVersions.Versions)) - assert.Equal(t, "v1", apiVersions.Versions[0]) - assert.NotEmpty(t, apiVersions.ServerAddressByClientCIDRs) -} - -func findResource(resources []metav1.APIResource, resourceName string) *metav1.APIResource { - for _, resource := range resources { - if resource.Name == resourceName { - return &resource - } - } - return nil -} - -func testAPIResourceList(t *testing.T, host string, expectedGroupVersions []schema.GroupVersion) { - testFederationResourceList(t, host) - testCoreResourceList(t, host) - testExtensionsResourceList(t, host) - if contains(expectedGroupVersions, batch_v1.SchemeGroupVersion) { - testBatchResourceList(t, host) - } - if contains(expectedGroupVersions, autoscaling_v1.SchemeGroupVersion) { - testAutoscalingResourceList(t, host) - } -} - -func contains(gvs []schema.GroupVersion, requiredGV schema.GroupVersion) bool { - for _, gv := range gvs { - if gv.String() == requiredGV.String() { - return true - } - } - return false -} - -func testFederationResourceList(t *testing.T, host string) { - serverURL := host + "/apis/" + fed_v1b1.SchemeGroupVersion.String() - contents, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } - var apiResourceList metav1.APIResourceList - err = json.Unmarshal(contents, &apiResourceList) - if err != nil { - t.Fatalf("Error in unmarshalling response from server %s: %v", serverURL, err) - } - assert.Equal(t, "v1", apiResourceList.APIVersion) - assert.Equal(t, fed_v1b1.SchemeGroupVersion.String(), apiResourceList.GroupVersion) - // Assert that there are exactly 2 resources. - assert.Equal(t, 2, len(apiResourceList.APIResources)) - - found := findResource(apiResourceList.APIResources, "clusters") - assert.NotNil(t, found) - assert.False(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "clusters/status") - assert.NotNil(t, found) - assert.False(t, found.Namespaced) -} - -func testCoreResourceList(t *testing.T, host string) { - serverURL := host + "/api/" + v1.SchemeGroupVersion.String() - contents, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } - var apiResourceList metav1.APIResourceList - err = json.Unmarshal(contents, &apiResourceList) - if err != nil { - t.Fatalf("Error in unmarshalling response from server %s: %v", serverURL, err) - } - assert.Equal(t, "", apiResourceList.APIVersion) - assert.Equal(t, v1.SchemeGroupVersion.String(), apiResourceList.GroupVersion) - assert.Equal(t, 8, len(apiResourceList.APIResources), "ResourceList: %v", apiResourceList.APIResources) - - // Verify services. - found := findResource(apiResourceList.APIResources, "services") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "services/status") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - - // Verify namespaces. - found = findResource(apiResourceList.APIResources, "namespaces") - assert.NotNil(t, found) - assert.False(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "namespaces/status") - assert.NotNil(t, found) - assert.False(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "namespaces/finalize") - assert.NotNil(t, found) - assert.False(t, found.Namespaced) - - // Verify events. - found = findResource(apiResourceList.APIResources, "events") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - - // Verify secrets. - found = findResource(apiResourceList.APIResources, "secrets") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - - // Verify config maps. - found = findResource(apiResourceList.APIResources, "configmaps") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) -} - -func testExtensionsResourceList(t *testing.T, host string) { - serverURL := host + "/apis/" + ext_v1b1.SchemeGroupVersion.String() - contents, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } - var apiResourceList metav1.APIResourceList - err = json.Unmarshal(contents, &apiResourceList) - if err != nil { - t.Fatalf("Error in unmarshalling response from server %s: %v", serverURL, err) - } - // empty APIVersion for extensions group - assert.Equal(t, "", apiResourceList.APIVersion) - assert.Equal(t, ext_v1b1.SchemeGroupVersion.String(), apiResourceList.GroupVersion) - // Assert that there are exactly 11 resources. - assert.Equal(t, 11, len(apiResourceList.APIResources)) - - // Verify replicasets. - found := findResource(apiResourceList.APIResources, "replicasets") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "replicasets/status") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "replicasets/scale") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - - // Verify ingress. - found = findResource(apiResourceList.APIResources, "ingresses") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "ingresses/status") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - - // Verify daemonsets. - found = findResource(apiResourceList.APIResources, "daemonsets") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "daemonsets/status") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - - // Verify deployments. - found = findResource(apiResourceList.APIResources, "deployments") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "deployments/status") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "deployments/scale") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "deployments/rollback") -} - -func testBatchResourceList(t *testing.T, host string) { - serverURL := host + "/apis/" + batch_v1.SchemeGroupVersion.String() - contents, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } - var apiResourceList metav1.APIResourceList - err = json.Unmarshal(contents, &apiResourceList) - if err != nil { - t.Fatalf("Error in unmarshalling response from server %s: %v", serverURL, err) - } - // empty APIVersion for extensions group - assert.Equal(t, "v1", apiResourceList.APIVersion) - assert.Equal(t, batch_v1.SchemeGroupVersion.String(), apiResourceList.GroupVersion) - // Assert that there are exactly this number of resources. - assert.Equal(t, 2, len(apiResourceList.APIResources)) - - // Verify jobs - found := findResource(apiResourceList.APIResources, "jobs") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "jobs/status") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) -} - -func testAutoscalingResourceList(t *testing.T, host string) { - serverURL := host + "/apis/" + autoscaling_v1.SchemeGroupVersion.String() - contents, err := readResponse(serverURL) - if err != nil { - t.Fatalf("%v", err) - } - var apiResourceList metav1.APIResourceList - err = json.Unmarshal(contents, &apiResourceList) - if err != nil { - t.Fatalf("Error in unmarshalling response from server %s: %v", serverURL, err) - } - // empty APIVersion for extensions group - assert.Equal(t, "v1", apiResourceList.APIVersion) - assert.Equal(t, autoscaling_v1.SchemeGroupVersion.String(), apiResourceList.GroupVersion) - // Assert that there are exactly this number of resources. - assert.Equal(t, 2, len(apiResourceList.APIResources)) - - // Verify hpa - found := findResource(apiResourceList.APIResources, "horizontalpodautoscalers") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) - found = findResource(apiResourceList.APIResources, "horizontalpodautoscalers/status") - assert.NotNil(t, found) - assert.True(t, found.Namespaced) -} diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/crud_test.go b/vendor/k8s.io/kubernetes/federation/test/integration/crud_test.go deleted file mode 100644 index cd56c09d1..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/integration/crud_test.go +++ /dev/null @@ -1,114 +0,0 @@ -/* -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 integration - -import ( - "fmt" - "testing" - - "github.com/pborman/uuid" - - pkgruntime "k8s.io/apimachinery/pkg/runtime" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/federation/pkg/federatedtypes" - "k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester" - "k8s.io/kubernetes/federation/test/integration/framework" -) - -// TestFederationCRUD validates create/read/update/delete operations for federated resource types. -func TestFederationCRUD(t *testing.T) { - fedFixture := framework.FederationFixture{DesiredClusterCount: 2} - fedFixture.SetUp(t) - defer fedFixture.TearDown(t) - - federatedTypes := federatedtypes.FederatedTypes() - for kind, fedType := range federatedTypes { - t.Run(kind, func(t *testing.T) { - fixture, crudTester, obj, _ := initCRUDTest(t, &fedFixture, fedType.AdapterFactory, kind) - defer fixture.TearDown(t) - - crudTester.CheckLifecycle(obj) - }) - } - - // The following tests target a single type since the underlying logic is common across all types. - kind := federatedtypes.SecretKind - adapterFactory := federatedtypes.NewSecretAdapter - - // Validate deletion handling where orphanDependents is true or nil - orphanedDependents := true - testCases := map[string]*bool{ - "Resource should not be deleted from underlying clusters when OrphanDependents is true": &orphanedDependents, - "Resource should not be deleted from underlying clusters when OrphanDependents is nil": nil, - } - for testName, orphanDependents := range testCases { - t.Run(testName, func(t *testing.T) { - fixture, crudTester, obj, _ := initCRUDTest(t, &fedFixture, adapterFactory, kind) - defer fixture.TearDown(t) - - updatedObj := crudTester.CheckCreate(obj) - crudTester.CheckDelete(updatedObj, orphanDependents) - }) - } - - t.Run("Resource should be propagated to a newly added cluster", func(t *testing.T) { - fixture, crudTester, obj, _ := initCRUDTest(t, &fedFixture, adapterFactory, kind) - defer fixture.TearDown(t) - - updatedObj := crudTester.CheckCreate(obj) - // Start a new cluster and validate that the resource is propagated to it. - fedFixture.StartCluster(t) - // Check propagation to the new cluster by providing the updated set of clients - objectExpected := true - crudTester.CheckPropagationForClients(updatedObj, fedFixture.ClusterClients, objectExpected) - }) - - t.Run("Resource should only be propagated to the cluster with a matching selector", func(t *testing.T) { - fixture, crudTester, obj, adapter := initCRUDTest(t, &fedFixture, adapterFactory, kind) - defer fixture.TearDown(t) - - // Set an annotation to specify that the object is isolated to cluster 1. - federatedtypes.SetAnnotation(adapter, obj, federationapi.FederationClusterSelectorAnnotation, `[{"key": "cluster", "operator": "==", "values": ["1"]}]`) - - updatedObj := crudTester.Create(obj) - - // Check propagation to the first cluster - objectExpected := true - crudTester.CheckPropagationForClients(updatedObj, fedFixture.ClusterClients[0:1], objectExpected) - - // Verify the object is not sent to the second cluster - objectExpected = false - crudTester.CheckPropagationForClients(updatedObj, fedFixture.ClusterClients[1:2], objectExpected) - - }) -} - -// initCRUDTest initializes common elements of a crud test -func initCRUDTest(t *testing.T, fedFixture *framework.FederationFixture, adapterFactory federatedtypes.AdapterFactory, kind string) ( - *framework.ControllerFixture, *crudtester.FederatedTypeCRUDTester, pkgruntime.Object, federatedtypes.FederatedTypeAdapter) { - config := fedFixture.APIFixture.NewConfig() - fixture := framework.NewControllerFixture(t, kind, adapterFactory, config) - - client := fedFixture.APIFixture.NewClient(fmt.Sprintf("crud-test-%s", kind)) - adapter := adapterFactory(client, config, nil) - - crudTester := framework.NewFederatedTypeCRUDTester(t, adapter, fedFixture.ClusterClients) - - obj := adapter.NewTestObject(uuid.New()) - - return fixture, crudTester, obj, adapter -} diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/framework/BUILD b/vendor/k8s.io/kubernetes/federation/test/integration/framework/BUILD deleted file mode 100644 index 4f6962128..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/integration/framework/BUILD +++ /dev/null @@ -1,49 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "api.go", - "controller.go", - "crudtester.go", - "federation.go", - "util.go", - ], - importpath = "k8s.io/kubernetes/federation/test/integration/framework", - deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//federation/cmd/federation-apiserver/app:go_default_library", - "//federation/cmd/federation-apiserver/app/options:go_default_library", - "//federation/pkg/federatedtypes:go_default_library", - "//federation/pkg/federatedtypes/crudtester:go_default_library", - "//federation/pkg/federation-controller/cluster:go_default_library", - "//federation/pkg/federation-controller/sync:go_default_library", - "//pkg/master:go_default_library", - "//test/e2e_node/services:go_default_library", - "//test/integration/framework:go_default_library", - "//vendor/github.com/pborman/uuid:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/kubernetes: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"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/framework/api.go b/vendor/k8s.io/kubernetes/federation/test/integration/framework/api.go deleted file mode 100644 index f1d79cd56..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/integration/framework/api.go +++ /dev/null @@ -1,133 +0,0 @@ -/* -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 framework - -import ( - "fmt" - "net/http" - "testing" - - "github.com/pborman/uuid" - - "k8s.io/apimachinery/pkg/util/wait" - restclient "k8s.io/client-go/rest" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/federation/cmd/federation-apiserver/app" - "k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options" - "k8s.io/kubernetes/test/integration/framework" -) - -const apiNoun = "federation apiserver" - -// GetRunOptions returns the default run options that can be used to run a test federation apiserver. -func GetRunOptions() *options.ServerRunOptions { - r := options.NewServerRunOptions() - r.Etcd.StorageConfig.ServerList = []string{framework.GetEtcdURL()} - // Use a unique prefix to ensure isolation from other tests using the same etcd instance - r.Etcd.StorageConfig.Prefix = uuid.New() - // Disable secure serving - r.SecureServing.BindPort = 0 - return r -} - -// FederationAPIFixture manages a federation api server -type FederationAPIFixture struct { - Host string - stopChan chan struct{} -} - -// SetUp runs federation apiserver with default run options. -func (f *FederationAPIFixture) SetUp(t *testing.T) { - f.SetUpWithRunOptions(t, GetRunOptions()) -} - -// SetUpWithRunOptions runs federation apiserver with the given run options. -// Uses default run options if runOptions is nil. -func (f *FederationAPIFixture) SetUpWithRunOptions(t *testing.T, runOptions *options.ServerRunOptions) { - if f.stopChan != nil { - t.Fatal("SetUp() already called") - } - defer TearDownOnPanic(t, f) - - f.stopChan = make(chan struct{}) - - err := startServer(t, runOptions, f.stopChan) - if err != nil { - t.Fatal(err) - } - - f.Host = fmt.Sprintf("http://%s:%d", runOptions.InsecureServing.BindAddress, runOptions.InsecureServing.BindPort) - - err = waitForServer(t, f.Host) - if err != nil { - t.Fatal(err) - } -} - -func (f *FederationAPIFixture) TearDown(t *testing.T) { - if f.stopChan != nil { - close(f.stopChan) - f.stopChan = nil - } -} - -func (f *FederationAPIFixture) NewConfig() *restclient.Config { - return &restclient.Config{Host: f.Host} -} - -func (f *FederationAPIFixture) NewClient(userAgent string) federationclientset.Interface { - config := f.NewConfig() - restclient.AddUserAgent(config, userAgent) - return federationclientset.NewForConfigOrDie(config) -} - -func startServer(t *testing.T, runOptions *options.ServerRunOptions, stopChan <-chan struct{}) error { - err := wait.PollImmediate(DefaultWaitInterval, wait.ForeverTestTimeout, func() (bool, error) { - port, err := framework.FindFreeLocalPort() - if err != nil { - t.Logf("Error allocating an ephemeral port: %v", err) - return false, nil - } - - runOptions.InsecureServing.BindPort = port - err = app.NonBlockingRun(runOptions, stopChan) - if err != nil { - t.Logf("Error starting the %s: %v", apiNoun, err) - return false, nil - } - return true, nil - }) - if err != nil { - return fmt.Errorf("Timed out waiting for the %s: %v", apiNoun, err) - } - return nil -} - -func waitForServer(t *testing.T, host string) error { - err := wait.PollImmediate(DefaultWaitInterval, wait.ForeverTestTimeout, func() (bool, error) { - _, err := http.Get(host) - if err != nil { - t.Logf("Error when trying to contact the API: %v", err) - return false, nil - } - return true, nil - }) - if err != nil { - return fmt.Errorf("Timed out waiting for the %s: %v", apiNoun, err) - } - return nil -} diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/framework/controller.go b/vendor/k8s.io/kubernetes/federation/test/integration/framework/controller.go deleted file mode 100644 index 2c5e925b1..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/integration/framework/controller.go +++ /dev/null @@ -1,43 +0,0 @@ -/* -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 framework - -import ( - "testing" - - restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/federation/pkg/federatedtypes" - synccontroller "k8s.io/kubernetes/federation/pkg/federation-controller/sync" -) - -// ControllerFixture manages a federation controller for testing. -type ControllerFixture struct { - stopChan chan struct{} -} - -// NewControllerFixture initializes a new controller fixture -func NewControllerFixture(t *testing.T, kind string, adapterFactory federatedtypes.AdapterFactory, config *restclient.Config) *ControllerFixture { - f := &ControllerFixture{ - stopChan: make(chan struct{}), - } - synccontroller.StartFederationSyncController(kind, adapterFactory, config, f.stopChan, true, nil) - return f -} - -func (f *ControllerFixture) TearDown(t *testing.T) { - close(f.stopChan) -} diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/framework/crudtester.go b/vendor/k8s.io/kubernetes/federation/test/integration/framework/crudtester.go deleted file mode 100644 index db02d4879..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/integration/framework/crudtester.go +++ /dev/null @@ -1,47 +0,0 @@ -/* -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 framework - -import ( - "testing" - - "k8s.io/apimachinery/pkg/util/wait" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/federation/pkg/federatedtypes" - "k8s.io/kubernetes/federation/pkg/federatedtypes/crudtester" -) - -type IntegrationLogger struct { - t *testing.T -} - -func (l *IntegrationLogger) Logf(format string, args ...interface{}) { - l.t.Logf(format, args...) -} - -func (l *IntegrationLogger) Fatalf(format string, args ...interface{}) { - l.t.Fatalf(format, args...) -} - -func (l *IntegrationLogger) Fatal(msg string) { - l.t.Fatal(msg) -} - -func NewFederatedTypeCRUDTester(t *testing.T, adapter federatedtypes.FederatedTypeAdapter, clusterClients []clientset.Interface) *crudtester.FederatedTypeCRUDTester { - logger := &IntegrationLogger{t} - return crudtester.NewFederatedTypeCRUDTester(logger, adapter, clusterClients, DefaultWaitInterval, wait.ForeverTestTimeout) -} diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/framework/federation.go b/vendor/k8s.io/kubernetes/federation/test/integration/framework/federation.go deleted file mode 100644 index c1ee1bee8..000000000 --- a/vendor/k8s.io/kubernetes/federation/test/integration/framework/federation.go +++ /dev/null @@ -1,141 +0,0 @@ -/* -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 framework - -import ( - "fmt" - "testing" - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - clientset "k8s.io/client-go/kubernetes" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" - federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - clustercontroller "k8s.io/kubernetes/federation/pkg/federation-controller/cluster" - "k8s.io/kubernetes/pkg/master" - "k8s.io/kubernetes/test/e2e_node/services" - "k8s.io/kubernetes/test/integration/framework" -) - -type MemberCluster struct { - CloseFn framework.CloseFunc - Config *master.Config - Client clientset.Interface - Host string - namespaceController *services.NamespaceController -} - -// FederationFixture manages a federation api server and a set of member clusters -type FederationFixture struct { - APIFixture *FederationAPIFixture - DesiredClusterCount int - Clusters []*MemberCluster - - ClusterClients []clientset.Interface - ClusterController *clustercontroller.ClusterController - fedClient federationclientset.Interface - stopChan chan struct{} -} - -func (f *FederationFixture) SetUp(t *testing.T) { - if f.APIFixture != nil { - t.Fatal("Fixture already started") - } - if f.DesiredClusterCount < 1 { - f.DesiredClusterCount = 1 - } - defer TearDownOnPanic(t, f) - - t.Logf("Starting a federation of %d clusters", f.DesiredClusterCount) - - f.APIFixture = &FederationAPIFixture{} - runOptions := GetRunOptions() - // Enable all apis features for test. - runOptions.APIEnablement.RuntimeConfig.Set("api/all=true") - f.APIFixture.SetUpWithRunOptions(t, runOptions) - - f.stopChan = make(chan struct{}) - monitorPeriod := 1 * time.Second - clustercontroller.StartClusterController(f.APIFixture.NewConfig(), f.stopChan, monitorPeriod) - - f.fedClient = f.APIFixture.NewClient("federation-fixture") - for i := 0; i < f.DesiredClusterCount; i++ { - f.StartCluster(t) - } -} - -func (f *FederationFixture) StartCluster(t *testing.T) { - config := framework.NewMasterConfig() - _, _, closeFn := framework.RunAMaster(config) - host := config.GenericConfig.LoopbackClientConfig.Host - - clusterClient := clientset.NewForConfigOrDie(config.GenericConfig.LoopbackClientConfig) - f.ClusterClients = append(f.ClusterClients, clusterClient) - memberCluster := &MemberCluster{ - CloseFn: closeFn, - Config: config, - Client: clusterClient, - Host: host, - namespaceController: services.NewNamespaceController(host), - } - f.Clusters = append(f.Clusters, memberCluster) - err := memberCluster.namespaceController.Start() - if err != nil { - t.Fatal(err) - } - - clusterId := len(f.ClusterClients) - - t.Logf("Federated cluster %d serving on %s", clusterId, host) - - cluster := &federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("cluster-%d", clusterId), - Labels: map[string]string{"cluster": fmt.Sprintf("%d", clusterId)}, - }, - Spec: federationapi.ClusterSpec{ - ServerAddressByClientCIDRs: []federationapi.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: host, - }, - }, - // Use insecure access - SecretRef: nil, - }, - } - f.fedClient.FederationV1beta1().Clusters().Create(cluster) -} - -func (f *FederationFixture) TearDown(t *testing.T) { - if f.stopChan != nil { - close(f.stopChan) - f.stopChan = nil - } - for _, cluster := range f.Clusters { - // Need to close controllers with active connections to the - // cluster api before stopping the api or the connections will - // hang until tcp timeout. - cluster.namespaceController.Stop() - cluster.CloseFn() - } - f.Clusters = nil - if f.APIFixture != nil { - f.APIFixture.TearDown(t) - f.APIFixture = nil - } -} diff --git a/vendor/k8s.io/kubernetes/hack/.golint_failures b/vendor/k8s.io/kubernetes/hack/.golint_failures index dd074d20e..8014e1ea0 100644 --- a/vendor/k8s.io/kubernetes/hack/.golint_failures +++ b/vendor/k8s.io/kubernetes/hack/.golint_failures @@ -1,5 +1,5 @@ + cluster/images/etcd-version-monitor -cmd/genutils cmd/gke-certificates-controller/app cmd/hyperkube cmd/kube-controller-manager/app @@ -7,75 +7,20 @@ cmd/kube-proxy/app cmd/kubeadm/app cmd/kubeadm/app/apis/kubeadm cmd/kubeadm/app/apis/kubeadm/v1alpha1 +cmd/kubeadm/app/phases/etcd/spec cmd/kubelet/app cmd/kubelet/app/options cmd/kubemark examples/guestbook-go -federation/apis/core -federation/apis/core/v1 -federation/apis/federation -federation/apis/federation/v1beta1 -federation/apis/federation/validation -federation/client/cache -federation/cmd/federation-apiserver/app -federation/cmd/federation-apiserver/app/options -federation/cmd/federation-controller-manager/app -federation/cmd/federation-controller-manager/app/options -federation/cmd/kubefed/app -federation/pkg/dnsprovider -federation/pkg/dnsprovider/providers/aws/route53 -federation/pkg/dnsprovider/providers/aws/route53/stubs -federation/pkg/dnsprovider/providers/coredns -federation/pkg/dnsprovider/providers/coredns/stubs -federation/pkg/dnsprovider/providers/google/clouddns -federation/pkg/dnsprovider/providers/google/clouddns/internal -federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces -federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs -federation/pkg/dnsprovider/rrstype -federation/pkg/dnsprovider/tests -federation/pkg/federatedtypes -federation/pkg/federatedtypes/crudtester -federation/pkg/federation-controller -federation/pkg/federation-controller/cluster -federation/pkg/federation-controller/ingress -federation/pkg/federation-controller/service -federation/pkg/federation-controller/service/dns -federation/pkg/federation-controller/service/ingress -federation/pkg/federation-controller/sync -federation/pkg/federation-controller/util -federation/pkg/federation-controller/util/clusterselector -federation/pkg/federation-controller/util/deletionhelper -federation/pkg/federation-controller/util/eventsink -federation/pkg/federation-controller/util/finalizers -federation/pkg/federation-controller/util/planner -federation/pkg/federation-controller/util/podanalyzer -federation/pkg/federation-controller/util/test -federation/pkg/kubefed -federation/pkg/kubefed/init -federation/pkg/kubefed/testing -federation/pkg/kubefed/util -federation/registry/cluster -federation/registry/cluster/etcd -federation/test/e2e -federation/test/e2e/framework -federation/test/e2e/upgrades -federation/test/integration/framework -pkg/api pkg/api/endpoints -pkg/api/helper -pkg/api/helper/qos pkg/api/ref pkg/api/testapi pkg/api/testing pkg/api/testing/compat pkg/api/unversioned pkg/api/v1/endpoints -pkg/api/v1/helper -pkg/api/v1/helper/qos pkg/api/v1/pod pkg/api/v1/resource -pkg/api/v1/validation -pkg/api/validation pkg/apis/abac pkg/apis/abac/latest pkg/apis/admission @@ -101,11 +46,17 @@ pkg/apis/certificates/v1beta1 pkg/apis/certificates/validation pkg/apis/componentconfig pkg/apis/componentconfig/v1alpha1 +pkg/apis/core +pkg/apis/core/helper +pkg/apis/core/helper/qos +pkg/apis/core/v1/helper +pkg/apis/core/v1/helper/qos +pkg/apis/core/v1/validation +pkg/apis/core/validation pkg/apis/extensions pkg/apis/extensions/validation pkg/apis/imagepolicy pkg/apis/imagepolicy/v1alpha1 -pkg/apis/meta/v1 pkg/apis/networking pkg/apis/policy pkg/apis/policy/v1alpha1 @@ -120,9 +71,8 @@ pkg/apis/settings pkg/apis/settings/v1alpha1 pkg/apis/storage pkg/apis/storage/util -pkg/apis/storage/v1 pkg/apis/storage/v1/util -pkg/apis/storage/v1beta1 +pkg/apis/storage/v1alpha1 pkg/apis/storage/v1beta1/util pkg/auth/authorizer/abac pkg/capabilities @@ -145,6 +95,7 @@ pkg/controller/certificates pkg/controller/certificates/approver pkg/controller/certificates/signer pkg/controller/cloud +pkg/controller/clusterroleaggregation pkg/controller/cronjob pkg/controller/daemon pkg/controller/daemon/util @@ -209,7 +160,7 @@ pkg/kubelet pkg/kubelet/apis pkg/kubelet/apis/cri/testing pkg/kubelet/apis/cri/v1alpha1/runtime -pkg/kubelet/apis/deviceplugin/v1alpha1 +pkg/kubelet/apis/deviceplugin/v1alpha pkg/kubelet/apis/kubeletconfig pkg/kubelet/apis/kubeletconfig/v1alpha1 pkg/kubelet/cadvisor @@ -223,7 +174,6 @@ pkg/kubelet/container/testing pkg/kubelet/custommetrics pkg/kubelet/dockershim pkg/kubelet/dockershim/cm -pkg/kubelet/dockershim/errors pkg/kubelet/dockershim/libdocker pkg/kubelet/dockershim/remote pkg/kubelet/dockershim/testing @@ -279,16 +229,18 @@ pkg/probe/exec pkg/probe/http pkg/probe/tcp pkg/proxy +pkg/proxy/apis/kubeproxyconfig +pkg/proxy/apis/kubeproxyconfig/v1alpha1 pkg/proxy/iptables pkg/proxy/userspace pkg/proxy/util pkg/proxy/winkernel pkg/proxy/winuserspace pkg/quota/evaluator/core -pkg/quota/generic -pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage pkg/registry/admissionregistration/initializerconfiguration/storage +pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage pkg/registry/admissionregistration/rest +pkg/registry/admissionregistration/validatingwebhookconfiguration/storage pkg/registry/apps/rest pkg/registry/apps/statefulset pkg/registry/apps/statefulset/storage @@ -464,7 +416,6 @@ plugin/pkg/admission/security plugin/pkg/admission/security/podsecuritypolicy plugin/pkg/admission/serviceaccount plugin/pkg/admission/storageclass/setdefault -plugin/pkg/admission/webhook plugin/pkg/auth/authorizer/node plugin/pkg/auth/authorizer/rbac plugin/pkg/scheduler/algorithm @@ -506,10 +457,16 @@ staging/src/k8s.io/api/rbac/v1beta1 staging/src/k8s.io/api/scheduling/v1alpha1 staging/src/k8s.io/api/settings/v1alpha1 staging/src/k8s.io/api/storage/v1 +staging/src/k8s.io/api/storage/v1alpha1 staging/src/k8s.io/api/storage/v1beta1 -staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1 -staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client -staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller +staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr +staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1 +staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned +staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake +staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme +staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1 +staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake +staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1 staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver @@ -541,7 +498,6 @@ staging/src/k8s.io/apimachinery/pkg/apimachinery/announced staging/src/k8s.io/apimachinery/pkg/apimachinery/registered staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion -staging/src/k8s.io/apimachinery/pkg/apis/meta/v1 staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1 @@ -586,6 +542,8 @@ staging/src/k8s.io/apiserver/pkg/admission staging/src/k8s.io/apiserver/pkg/admission/configuration staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle +staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config +staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating staging/src/k8s.io/apiserver/pkg/apis/apiserver staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1 staging/src/k8s.io/apiserver/pkg/apis/audit @@ -594,6 +552,8 @@ staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1 staging/src/k8s.io/apiserver/pkg/apis/audit/validation staging/src/k8s.io/apiserver/pkg/apis/example staging/src/k8s.io/apiserver/pkg/apis/example/v1 +staging/src/k8s.io/apiserver/pkg/apis/example2 +staging/src/k8s.io/apiserver/pkg/apis/example2/v1 staging/src/k8s.io/apiserver/pkg/audit staging/src/k8s.io/apiserver/pkg/audit/policy staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory @@ -709,12 +669,24 @@ staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1 staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake staging/src/k8s.io/client-go/kubernetes/typed/storage/v1 staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake +staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1 +staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1 staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc staging/src/k8s.io/client-go/rest staging/src/k8s.io/client-go/rest/fake +staging/src/k8s.io/client-go/scale +staging/src/k8s.io/client-go/scale/fake +staging/src/k8s.io/client-go/scale/scheme +staging/src/k8s.io/client-go/scale/scheme/appsint +staging/src/k8s.io/client-go/scale/scheme/appsv1beta1 +staging/src/k8s.io/client-go/scale/scheme/appsv1beta2 +staging/src/k8s.io/client-go/scale/scheme/autoscalingv1 +staging/src/k8s.io/client-go/scale/scheme/extensionsint +staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1 +staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1 staging/src/k8s.io/client-go/testing staging/src/k8s.io/client-go/tools/cache staging/src/k8s.io/client-go/tools/cache/testing @@ -779,6 +751,14 @@ staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/interna staging/src/k8s.io/sample-apiserver/pkg/cmd/server staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder +staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller +staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1 +staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned +staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake +staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme +staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1 +staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake +staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces test/e2e test/e2e/apimachinery test/e2e/apps @@ -788,6 +768,7 @@ test/e2e/chaosmonkey test/e2e/common test/e2e/framework test/e2e/framework/metrics +test/e2e/framework/timer test/e2e/instrumentation test/e2e/instrumentation/logging test/e2e/instrumentation/monitoring diff --git a/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-down.sh b/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-down.sh index b424fed01..99bbc4380 100755 --- a/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-down.sh +++ b/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-down.sh @@ -29,16 +29,4 @@ source "${KUBE_ROOT}/cluster/kube-util.sh" prepare-e2e -if [[ "${FEDERATION:-}" == "true" ]]; then - source "${KUBE_ROOT}/federation/cluster/common.sh" - - for zone in ${E2E_ZONES};do - # bring down an e2e cluster - ( - set-federation-zone-vars "$zone" - test-teardown - ) - done -else - test-teardown -fi +test-teardown diff --git a/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-status.sh b/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-status.sh index 3e5303513..37691ea81 100755 --- a/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-status.sh +++ b/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-status.sh @@ -29,19 +29,4 @@ source "${KUBE_ROOT}/cluster/kube-util.sh" prepare-e2e -if [[ "${FEDERATION:-}" == "true" ]];then - FEDERATION_NAMESPACE=${FEDERATION_NAMESPACE:-federation-system} - #TODO(colhom): the last cluster that was created in the loop above is the current context. - # Hence, it will be the cluster that hosts the federated components. - # In the future, we will want to loop through the all the federated contexts, - # select each one and call federated-up - for zone in ${E2E_ZONES};do - ( - set-federation-zone-vars "$zone" - printf "\n\tChecking version for $OVERRIDE_CONTEXT\n" - ${KUBECTL} --context="$OVERRIDE_CONTEXT" version - ) - done -else - ${KUBECTL} version -fi +${KUBECTL} version diff --git a/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-up.sh b/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-up.sh index 112da3cfb..6f8facb45 100755 --- a/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-up.sh +++ b/vendor/k8s.io/kubernetes/hack/e2e-internal/e2e-up.sh @@ -29,16 +29,4 @@ source "${KUBE_ROOT}/cluster/kube-util.sh" prepare-e2e -if [[ "${FEDERATION:-}" == "true" ]]; then - cur_ip_octet2=180 - for zone in ${E2E_ZONES};do - ( - export CLUSTER_IP_RANGE="10.${cur_ip_octet2}.0.0/16" - set-federation-zone-vars "$zone" - test-setup - ) - cur_ip_octet2="$((cur_ip_octet2 + 1))" - done -else - test-setup -fi +test-setup diff --git a/vendor/k8s.io/kubernetes/hack/generate-docs.sh b/vendor/k8s.io/kubernetes/hack/generate-docs.sh index c2ba69811..8fdf81a7d 100755 --- a/vendor/k8s.io/kubernetes/hack/generate-docs.sh +++ b/vendor/k8s.io/kubernetes/hack/generate-docs.sh @@ -32,7 +32,6 @@ BINS=( cmd/genkubedocs cmd/genman cmd/genyaml - federation/cmd/genfeddocs ) make -C "${KUBE_ROOT}" WHAT="${BINS[*]}" diff --git a/vendor/k8s.io/kubernetes/hack/ginkgo-e2e.sh b/vendor/k8s.io/kubernetes/hack/ginkgo-e2e.sh index 67c69b9dd..dd1e0a1ab 100755 --- a/vendor/k8s.io/kubernetes/hack/ginkgo-e2e.sh +++ b/vendor/k8s.io/kubernetes/hack/ginkgo-e2e.sh @@ -148,7 +148,7 @@ export PATH=$(dirname "${e2e_test}"):"${PATH}" --network="${KUBE_GCE_NETWORK:-${KUBE_GKE_NETWORK:-e2e}}" \ --node-tag="${NODE_TAG:-}" \ --master-tag="${MASTER_TAG:-}" \ - --federated-kube-context="${FEDERATION_KUBE_CONTEXT:-e2e-federation}" \ + --cluster-monitoring-mode="${KUBE_ENABLE_CLUSTER_MONITORING:-influxdb}" \ ${KUBE_CONTAINER_RUNTIME:+"--container-runtime=${KUBE_CONTAINER_RUNTIME}"} \ ${MASTER_OS_DISTRIBUTION:+"--master-os-distro=${MASTER_OS_DISTRIBUTION}"} \ ${NODE_OS_DISTRIBUTION:+"--node-os-distro=${NODE_OS_DISTRIBUTION}"} \ diff --git a/vendor/k8s.io/kubernetes/hack/import-restrictions.yaml b/vendor/k8s.io/kubernetes/hack/import-restrictions.yaml new file mode 100644 index 000000000..1b740a293 --- /dev/null +++ b/vendor/k8s.io/kubernetes/hack/import-restrictions.yaml @@ -0,0 +1,84 @@ +- baseImportPath: "./pkg/apis/core/" + allowedImports: + - k8s.io/apimachinery + - k8s.io/kubernetes/pkg/apis/core + - k8s.io/kubernetes/pkg/util + - k8s.io/api/core/v1 + + # the following are temporary and should go away. Think twice (or more) before adding anything here. + # Main goal: pkg/apis should be as self-contained as possible. + - k8s.io/kubernetes/pkg/apis/extensions + - k8s.io/kubernetes/pkg/api/legacyscheme + - k8s.io/kubernetes/pkg/api/testapi + - k8s.io/api/extensions/v1beta1 + ignoredSubTrees: + - "./pkg/apis/core/validation" + +- baseImportPath: "./vendor/k8s.io/apimachinery/" + allowedImports: + - k8s.io/apimachinery + - k8s.io/kube-openapi + +- baseImportPath: "./vendor/k8s.io/api/" + allowedImports: + - k8s.io/api + - k8s.io/apimachinery + +- baseImportPath: "./vendor/k8s.io/code-generator/" + ignoredSubTrees: + - "./vendor/k8s.io/code-generator/_test" + allowedImports: + - k8s.io/gengo + - k8s.io/code-generator + - k8s.io/kube-openapi + +- baseImportPath: "./vendor/k8s.io/client-go/" + allowedImports: + - k8s.io/api + - k8s.io/apimachinery + - k8s.io/client-go + +- baseImportPath: "./vendor/k8s.io/apiserver/" + allowedImports: + - k8s.io/api + - k8s.io/apimachinery + - k8s.io/apiserver + - k8s.io/client-go + - k8s.io/kube-openapi + +- baseImportPath: "./vendor/k8s.io/metrics/" + allowedImports: + - k8s.io/api + - k8s.io/apimachinery + - k8s.io/client-go + - k8s.io/metrics + +- baseImportPath: "./vendor/k8s.io/kube-aggregator/" + allowedImports: + - k8s.io/api + - k8s.io/apimachinery + - k8s.io/apiserver + - k8s.io/client-go + - k8s.io/kube-aggregator + - k8s.io/kube-openapi + +- baseImportPath: "./vendor/k8s.io/sample-apiserver/" + allowedImports: + - k8s.io/api + - k8s.io/apimachinery + - k8s.io/apiserver + - k8s.io/client-go + - k8s.io/sample-apiserver + +- baseImportPath: "./vendor/k8s.io/apiextensions-apiserver/" + allowedImports: + - k8s.io/api + - k8s.io/apiextensions-apiserver + - k8s.io/apimachinery + - k8s.io/apiserver + - k8s.io/client-go + +- baseImportPath: "./vendor/k8s.io/kube-openapi/" + allowedImports: + - k8s.io/kube-openapi + - k8s.io/gengo diff --git a/vendor/k8s.io/kubernetes/hack/jenkins/build.sh b/vendor/k8s.io/kubernetes/hack/jenkins/build.sh index 8aacdf819..ca25459a9 100755 --- a/vendor/k8s.io/kubernetes/hack/jenkins/build.sh +++ b/vendor/k8s.io/kubernetes/hack/jenkins/build.sh @@ -35,8 +35,6 @@ export PATH=$PATH:/usr/local/go/bin # Skip gcloud update checking export CLOUDSDK_COMPONENT_MANAGER_DISABLE_UPDATE_CHECK=true -# FEDERATION? -: ${FEDERATION:="false"} : ${KUBE_RELEASE_RUN_TESTS:="n"} export KUBE_RELEASE_RUN_TESTS @@ -67,10 +65,9 @@ else [[ -n "${KUBE_GCS_RELEASE_BUCKET-}" ]] \ && bucket_flag="--bucket=${KUBE_GCS_RELEASE_BUCKET-}" - ${FEDERATION} && federation_flag="--federation" [[ -n "${KUBE_GCS_RELEASE_SUFFIX-}" ]] \ && gcs_suffix_flag="--gcs-suffix=${KUBE_GCS_RELEASE_SUFFIX-}" - ${push_build} ${bucket_flag-} ${federation_flag-} ${gcs_suffix_flag-} \ + ${push_build} ${bucket_flag-} ${gcs_suffix_flag-} \ --nomock --verbose --ci fi diff --git a/vendor/k8s.io/kubernetes/hack/jenkins/test-dockerized.sh b/vendor/k8s.io/kubernetes/hack/jenkins/test-dockerized.sh index 5269c16ab..f539cd8df 100755 --- a/vendor/k8s.io/kubernetes/hack/jenkins/test-dockerized.sh +++ b/vendor/k8s.io/kubernetes/hack/jenkins/test-dockerized.sh @@ -55,7 +55,6 @@ make generated_files go install ./cmd/... ./hack/install-etcd.sh -make test make test-cmd make test-integration ./hack/test-update-storage-objects.sh diff --git a/vendor/k8s.io/kubernetes/hack/lib/.gitattributes b/vendor/k8s.io/kubernetes/hack/lib/.gitattributes new file mode 100644 index 000000000..1f211b5ce --- /dev/null +++ b/vendor/k8s.io/kubernetes/hack/lib/.gitattributes @@ -0,0 +1 @@ +version.sh export-subst diff --git a/vendor/k8s.io/kubernetes/hack/lib/golang.sh b/vendor/k8s.io/kubernetes/hack/lib/golang.sh index 85f1b80cd..b9649ce6d 100755 --- a/vendor/k8s.io/kubernetes/hack/lib/golang.sh +++ b/vendor/k8s.io/kubernetes/hack/lib/golang.sh @@ -32,6 +32,7 @@ kube::golang::server_targets() { vendor/k8s.io/kube-aggregator vendor/k8s.io/apiextensions-apiserver plugin/cmd/kube-scheduler + cluster/gce/gci/mounter ) echo "${targets[@]}" } @@ -44,6 +45,7 @@ readonly KUBE_SERVER_BINARIES=("${KUBE_SERVER_TARGETS[@]##*/}") kube::golang::node_targets() { local targets=( cmd/kube-proxy + cmd/kubeadm cmd/kubelet ) echo "${targets[@]}" @@ -125,7 +127,6 @@ fi # If you update this list, please also update build/BUILD. readonly KUBE_CLIENT_TARGETS=( cmd/kubectl - federation/cmd/kubefed ) readonly KUBE_CLIENT_BINARIES=("${KUBE_CLIENT_TARGETS[@]##*/}") readonly KUBE_CLIENT_BINARIES_WIN=("${KUBE_CLIENT_BINARIES[@]/%/.exe}") @@ -140,7 +141,6 @@ kube::golang::test_targets() { cmd/genyaml cmd/genswaggertypedocs cmd/linkcheck - federation/cmd/genfeddocs vendor/github.com/onsi/ginkgo/ginkgo test/e2e/e2e.test ) @@ -153,12 +153,10 @@ readonly KUBE_TEST_BINARIES_WIN=("${KUBE_TEST_BINARIES[@]/%/.exe}") readonly KUBE_TEST_PORTABLE=( test/e2e/testing-manifests test/kubemark - federation/develop hack/e2e.go hack/e2e-internal hack/get-build.sh hack/ginkgo-e2e.sh - hack/federated-ginkgo-e2e.sh hack/lib ) @@ -249,21 +247,7 @@ kube::golang::host_platform() { echo "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" } -kube::golang::current_platform() { - local os="${GOOS-}" - if [[ -z $os ]]; then - os=$(go env GOHOSTOS) - fi - - local arch="${GOARCH-}" - if [[ -z $arch ]]; then - arch=$(go env GOHOSTARCH) - fi - - echo "$os/$arch" -} - -# Takes the the platform name ($1) and sets the appropriate golang env variables +# Takes the platform name ($1) and sets the appropriate golang env variables # for that platform. kube::golang::set_platform_envs() { [[ -n ${1-} ]] || { @@ -338,7 +322,7 @@ EOF local go_version go_version=($(go version)) local minimum_go_version - minimum_go_version=go1.8.3 + minimum_go_version=go1.9.1 if [[ "${go_version[2]}" < "${minimum_go_version}" && "${go_version[2]}" != "devel" ]]; then kube::log::usage_from_stdin < .generated_html popd > /dev/null - if LANG=C sed --help 2>&1 | grep -q GNU; then - SED="sed" - elif which gsed &>/dev/null; then - SED="gsed" - else - echo "Failed to find GNU sed as sed or gsed. If you are on Mac: brew install gnu-sed." >&2 - exit 1 - fi + kube::util::ensure-gnu-sed while read file; do if [[ -e "${output_dir}/${file}" && -e "${output_tmp}/${file}" ]]; then echo "comparing ${output_dir}/${file} with ${output_tmp}/${file}" # Remove the timestamp to reduce conflicts in PR(s) - $SED -i 's/^Last updated.*$//' "${output_tmp}/${file}" + ${SED} -i 's/^Last updated.*$//' "${output_tmp}/${file}" # By now, the contents should be normalized and stripped of any # auto-managed content. diff --git a/vendor/k8s.io/kubernetes/hack/lib/util.sh b/vendor/k8s.io/kubernetes/hack/lib/util.sh index 4ddc7bbf9..b4e8df752 100755 --- a/vendor/k8s.io/kubernetes/hack/lib/util.sh +++ b/vendor/k8s.io/kubernetes/hack/lib/util.sh @@ -42,32 +42,6 @@ kube::util::wait_for_url() { return 1 } -# returns a random port -kube::util::get_random_port() { - awk -v min=1024 -v max=65535 'BEGIN{srand(); print int(min+rand()*(max-min+1))}' -} - -# use netcat to check if the host($1):port($2) is free (return 0 means free, 1 means used) -kube::util::test_host_port_free() { - local host=$1 - local port=$2 - local success=0 - local fail=1 - - which nc >/dev/null || { - kube::log::usage "netcat isn't installed, can't verify if ${host}:${port} is free, skipping the check..." - return ${success} - } - - if [ ! $(nc -vz "${host}" "${port}") ]; then - kube::log::status "${host}:${port} is free, proceeding..." - return ${success} - else - kube::log::status "${host}:${port} is already used" - return ${fail} - fi -} - # Example: kube::util::trap_add 'echo "in trap DEBUG"' DEBUG # See: http://stackoverflow.com/questions/3338030/multiple-bash-traps-for-the-same-signal kube::util::trap_add() { @@ -209,13 +183,7 @@ kube::util::gen-docs() { "${genkubedocs}" "${dest}/docs/admin/" "kube-proxy" "${genkubedocs}" "${dest}/docs/admin/" "kube-scheduler" "${genkubedocs}" "${dest}/docs/admin/" "kubelet" - - # We don't really need federation-apiserver and federation-controller-manager - # binaries to generate the docs. We just pass their names to decide which docs - # to generate. The actual binary for running federation is hyperkube. - "${genfeddocs}" "${dest}/docs/admin/" "federation-apiserver" - "${genfeddocs}" "${dest}/docs/admin/" "federation-controller-manager" - "${genfeddocs}" "${dest}/docs/admin/" "kubefed" + "${genkubedocs}" "${dest}/docs/admin/" "kubeadm" mkdir -p "${dest}/docs/man/man1/" "${genman}" "${dest}/docs/man/man1/" "kube-apiserver" @@ -225,6 +193,7 @@ kube::util::gen-docs() { "${genman}" "${dest}/docs/man/man1/" "kube-scheduler" "${genman}" "${dest}/docs/man/man1/" "kubelet" "${genman}" "${dest}/docs/man/man1/" "kubectl" + "${genman}" "${dest}/docs/man/man1/" "kubeadm" mkdir -p "${dest}/docs/yaml/kubectl/" "${genyaml}" "${dest}/docs/yaml/kubectl/" @@ -264,50 +233,6 @@ kube::util::remove-gen-docs() { fi } -# Takes a path $1 to traverse for md files to append the ga-beacon tracking -# link to, if needed. If $2 is set, just print files that are missing -# the link. -kube::util::gen-analytics() { - local path="$1" - local dryrun="${2:-}" - local mdfiles dir link - # find has some strange inconsistencies between darwin/linux. The - # path to search must end in '/' for linux, but darwin will put an extra - # slash in results if there is a trailing '/'. - if [[ $( uname ) == 'Linux' ]]; then - dir="${path}/" - else - dir="${path}" - fi - # We don't touch files in special dirs, and the kubectl docs are - # autogenerated by gendocs. - # Don't descend into .directories - mdfiles=($( find "${dir}" -name "*.md" -type f \ - -not -path '*/\.*' \ - -not -path "${path}/vendor/*" \ - -not -path "${path}/staging/*" \ - -not -path "${path}/third_party/*" \ - -not -path "${path}/_gopath/*" \ - -not -path "${path}/_output/*" \ - -not -path "${path}/docs/user-guide/kubectl/kubectl*" )) - for f in "${mdfiles[@]}"; do - link=$(kube::util::analytics-link "${f#${path}/}") - if grep -q -F -x "${link}" "${f}"; then - continue - elif [[ -z "${dryrun}" ]]; then - echo -e "\n\n${link}" >> "${f}" - else - echo "$f" - fi - done -} - -# Prints analytics link to append to a file at path $1. -kube::util::analytics-link() { - local path="$1" - echo "[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/${path}?pixel)]()" -} - # Takes a group/version and returns the path to its location on disk, sans # "pkg". E.g.: # * default behavior: extensions/v1beta1 -> apis/extensions/v1beta1 @@ -343,10 +268,7 @@ kube::util::group-version-to-pkg-path() { case "${group_version}" in # both group and version are "", this occurs when we generate deep copies for internal objects of the legacy v1 API. __internal) - echo "pkg/api" - ;; - federation/v1beta1) - echo "federation/apis/federation/v1beta1" + echo "pkg/apis/core" ;; meta/v1) echo "vendor/k8s.io/apimachinery/pkg/apis/meta/v1" @@ -853,6 +775,23 @@ function kube::util::ensure_dockerized { fi } +# kube::util::ensure-gnu-sed +# Determines which sed binary is gnu-sed on linux/darwin +# +# Sets: +# SED: The name of the gnu-sed binary +# +function kube::util::ensure-gnu-sed { + if LANG=C sed --help 2>&1 | grep -q GNU; then + SED="sed" + elif which gsed &>/dev/null; then + SED="gsed" + else + kube::log::error "Failed to find GNU sed as sed or gsed. If you are on Mac: brew install gnu-sed." >&2 + return 1 + fi +} + # Some useful colors. if [[ -z "${color_start-}" ]]; then declare -r color_start="\033[" diff --git a/vendor/k8s.io/kubernetes/hack/lib/version.sh b/vendor/k8s.io/kubernetes/hack/lib/version.sh index 7a1d676e5..3dab71052 100644 --- a/vendor/k8s.io/kubernetes/hack/lib/version.sh +++ b/vendor/k8s.io/kubernetes/hack/lib/version.sh @@ -36,6 +36,19 @@ kube::version::get_version_vars() { return fi + # If the kubernetes source was exported through git archive, then + # we likely don't have a git tree, but these magic values may be filled in. + if [[ '$Format:%%$' == "%" ]]; then + KUBE_GIT_COMMIT='$Format:%H$' + KUBE_GIT_TREE_STATE="git archive" + # When a 'git archive' is exported, the '$Format:%D$' below will look + # something like 'HEAD -> release-1.8, tag: v1.8.3' where then 'tag: ' + # can be extracted from it. + if [[ '$Format:%D$' =~ tag:\ (v[^ ]+) ]]; then + KUBE_GIT_VERSION="${BASH_REMATCH[1]}" + fi + fi + local git=(git --work-tree "${KUBE_ROOT}") if [[ -n ${KUBE_GIT_COMMIT-} ]] || KUBE_GIT_COMMIT=$("${git[@]}" rev-parse "HEAD^{commit}" 2>/dev/null); then diff --git a/vendor/k8s.io/kubernetes/hack/local-up-cluster.sh b/vendor/k8s.io/kubernetes/hack/local-up-cluster.sh index 0301d0037..6c602226e 100755 --- a/vendor/k8s.io/kubernetes/hack/local-up-cluster.sh +++ b/vendor/k8s.io/kubernetes/hack/local-up-cluster.sh @@ -57,6 +57,7 @@ EVICTION_PRESSURE_TRANSITION_PERIOD=${EVICTION_PRESSURE_TRANSITION_PERIOD:-"1m"} # and we don't know the IP of the DNS pod to pass in as --cluster-dns. # To set this up by hand, set this flag and change DNS_SERVER_IP. # Note also that you need API_HOST (defined above) for correct DNS. +KUBEPROXY_MODE=${KUBEPROXY_MODE:-""} ENABLE_CLUSTER_DNS=${KUBE_ENABLE_CLUSTER_DNS:-true} DNS_SERVER_IP=${KUBE_DNS_SERVER_IP:-10.0.0.10} DNS_DOMAIN=${KUBE_DNS_NAME:-"cluster.local"} @@ -114,6 +115,11 @@ if [ "${CLOUD_PROVIDER}" == "openstack" ]; then fi fi +#set feature gates if using ipvs mode +if [ "${KUBEPROXY_MODE}" == "ipvs" ]; then + FEATURE_GATES="$FEATURE_GATES,SupportIPVSProxyMode=true" +fi + # warn if users are running with swap allowed if [ "${FAIL_SWAP_ON}" == "false" ]; then echo "WARNING : The kubelet is configured to not fail if swap is enabled; production deployments should disable swap." @@ -413,7 +419,7 @@ function start_apiserver { fi # Admission Controllers to invoke prior to persisting objects in cluster - ADMISSION_CONTROL=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount${security_admission},DefaultStorageClass,DefaultTolerationSeconds,ResourceQuota + ADMISSION_CONTROL=Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount${security_admission},DefaultStorageClass,DefaultTolerationSeconds,GenericAdmissionWebhook,ResourceQuota # This is the default dir and filename where the apiserver will generate a self-signed cert # which should be able to be used as the CA to verify itself @@ -731,13 +737,18 @@ function start_kubeproxy { PROXY_LOG=${LOG_DIR}/kube-proxy.log cat < /tmp/kube-proxy.yaml -apiVersion: componentconfig/v1alpha1 +apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration clientConnection: kubeconfig: ${CERT_DIR}/kube-proxy.kubeconfig hostnameOverride: ${HOSTNAME_OVERRIDE} featureGates: ${FEATURE_GATES} +mode: ${KUBEPROXY_MODE} EOF + if [ "${KUBEPROXY_MODE}" == "ipvs" ]; then + # Load kernel modules required by IPVS proxier + sudo modprobe -a ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack_ipv4 + fi sudo "${GO_OUT}/hyperkube" proxy \ --config=/tmp/kube-proxy.yaml \ diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/BUILD b/vendor/k8s.io/kubernetes/hack/make-rules/BUILD index 47fdd3b5e..d05b2a98b 100644 --- a/vendor/k8s.io/kubernetes/hack/make-rules/BUILD +++ b/vendor/k8s.io/kubernetes/hack/make-rules/BUILD @@ -33,15 +33,6 @@ sh_binary( ], ) -sh_binary( - name = "test-federation-cmd", - srcs = ["test-federation-cmd.sh"], - deps = [ - ":test-cmd-util", - "//hack/lib", - ], -) - sh_binary( name = "test-integration", srcs = ["test-cmd.sh"], diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/helpers/cache_go_dirs.sh b/vendor/k8s.io/kubernetes/hack/make-rules/helpers/cache_go_dirs.sh index a16f78b8c..82402c667 100755 --- a/vendor/k8s.io/kubernetes/hack/make-rules/helpers/cache_go_dirs.sh +++ b/vendor/k8s.io/kubernetes/hack/make-rules/helpers/cache_go_dirs.sh @@ -39,7 +39,7 @@ function kfind() { # include the "special" vendor directories which are actually part # of the Kubernetes source tree - generators will use these for # including certain core API concepts. - find -H . ./vendor/k8s.io/apimachinery ./vendor/k8s.io/apiserver ./vendor/k8s.io/kube-aggregator ./vendor/k8s.io/apiextensions-apiserver ./vendor/k8s.io/metrics ./vendor/k8s.io/sample-apiserver ./vendor/k8s.io/api ./vendor/k8s.io/client-go ./vendor/k8s.io/code-generator \ + find -H . ./vendor/k8s.io/apimachinery ./vendor/k8s.io/apiserver ./vendor/k8s.io/kube-aggregator ./vendor/k8s.io/apiextensions-apiserver ./vendor/k8s.io/metrics ./vendor/k8s.io/sample-apiserver ./vendor/k8s.io/api ./vendor/k8s.io/client-go ./vendor/k8s.io/code-generator ./vendor/k8s.io/sample-controller \ \( \ -not \( \ \( \ diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/make-help.sh b/vendor/k8s.io/kubernetes/hack/make-rules/make-help.sh index 11033dfb5..f1261955a 100755 --- a/vendor/k8s.io/kubernetes/hack/make-rules/make-help.sh +++ b/vendor/k8s.io/kubernetes/hack/make-rules/make-help.sh @@ -25,10 +25,8 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. ALL_TARGETS=$(make -C "${KUBE_ROOT}" PRINT_HELP=y -rpn | sed -n -e '/^$/ { n ; /^[^ .#][^ ]*:/ { s/:.*$// ; p ; } ; }' | sort) CMD_TARGETS=$(ls -l "${KUBE_ROOT}/cmd" |awk '/^d/ {print $NF}') PLUGIN_CMD_TARGETS=$(ls -l "${KUBE_ROOT}/plugin/cmd" |awk '/^d/ {print $NF}') -FED_CMD_TARGETS=$(ls -l "${KUBE_ROOT}/federation/cmd" |awk '/^d/ {print $NF}') CMD_FLAG=false PLUGIN_CMD_FLAG=false -FED_CMD_FLAG=false echo "--------------------------------------------------------------------------------" for tar in $ALL_TARGETS; do @@ -62,21 +60,6 @@ for tar in $ALL_TARGETS; do fi done - for fedcmdtar in $FED_CMD_TARGETS; do - if [ $tar = $fedcmdtar ]; then - if [ $FED_CMD_FLAG = true ]; then - continue 2; - fi - - echo -e "${red}${FED_CMD_TARGETS}${reset}" - make -C "${KUBE_ROOT}" $tar PRINT_HELP=y - echo "---------------------------------------------------------------------------------" - - FED_CMD_FLAG=true - continue 2 - fi - done - echo -e "${red}${tar}${reset}" make -C "${KUBE_ROOT}" $tar PRINT_HELP=y echo "---------------------------------------------------------------------------------" diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/test-cmd-util.sh b/vendor/k8s.io/kubernetes/hack/make-rules/test-cmd-util.sh index e5c2b71ed..50e873dd7 100755 --- a/vendor/k8s.io/kubernetes/hack/make-rules/test-cmd-util.sh +++ b/vendor/k8s.io/kubernetes/hack/make-rules/test-cmd-util.sh @@ -246,14 +246,7 @@ setup() { kube::etcd::start # Find a standard sed instance for use with edit scripts - SED=sed - if which gsed &>/dev/null; then - SED=gsed - fi - if ! ($SED --version 2>&1 | grep -q GNU); then - echo "!!! GNU sed is required. If on OS X, use 'brew install gnu-sed'." - exit 1 - fi + kube::util::ensure-gnu-sed kube::log::status "Building kubectl" make -C "${KUBE_ROOT}" WHAT="cmd/kubectl" @@ -400,7 +393,7 @@ run_pod_tests() { create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command - echo "${output_pod}" | $SED '/namespace:/d' | kubectl create -f - "${kube_flags[@]}" + echo "${output_pod}" | ${SED} '/namespace:/d' | kubectl create -f - "${kube_flags[@]}" # Post-condition: valid-pod POD is created kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' @@ -437,6 +430,13 @@ run_pod_tests() { kubectl create -f test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml "${kube_flags[@]}" # Post-condition: valid-pod POD is created kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' + # Command + output_message=$(kubectl get pods --field-selector metadata.name=valid-pod "${kube_flags[@]}") + kube::test::if_has_string "${output_message}" "valid-pod" + # Command + phase=$(kubectl get "${kube_flags[@]}" pod valid-pod -o go-template='{{ .status.phase }}') + output_message=$(kubectl get pods --field-selector status.phase="${phase}" "${kube_flags[@]}") + kube::test::if_has_string "${output_message}" "valid-pod" ### Delete PODs with no parameter mustn't kill everything # Pre-condition: valid-pod POD exists @@ -655,7 +655,7 @@ run_pod_tests() { kube::test::get_object_assert rc "{{range.items}}{{$id_field}}:{{end}}" '' ## kubectl create --edit can update the label filed of multiple resources. tmp-editor.sh is a fake editor TEMP=$(mktemp /tmp/tmp-editor-XXXXXXXX.sh) - echo -e "#!/bin/bash\n$SED -i \"s/mock/modified/g\" \$1" > ${TEMP} + echo -e "#!/bin/bash\n${SED} -i \"s/mock/modified/g\" \$1" > ${TEMP} chmod +x ${TEMP} # Command EDITOR=${TEMP} kubectl create --edit -f hack/testdata/multi-resource-json.json "${kube_flags[@]}" @@ -758,7 +758,7 @@ run_pod_tests() { ## --force replace pod can change other field, e.g., spec.container.name # Command - kubectl get "${kube_flags[@]}" pod valid-pod -o json | $SED 's/"kubernetes-serve-hostname"/"replaced-k8s-serve-hostname"/g' > /tmp/tmp-valid-pod.json + kubectl get "${kube_flags[@]}" pod valid-pod -o json | ${SED} 's/"kubernetes-serve-hostname"/"replaced-k8s-serve-hostname"/g' > /tmp/tmp-valid-pod.json kubectl replace "${kube_flags[@]}" --force -f /tmp/tmp-valid-pod.json # Post-condition: spec.container.name = "replaced-k8s-serve-hostname" kube::test::get_object_assert 'pod valid-pod' "{{(index .spec.containers 0).name}}" 'replaced-k8s-serve-hostname' @@ -802,7 +802,7 @@ __EOF__ kubectl delete node node-v1-test "${kube_flags[@]}" ## kubectl edit can update the image field of a POD. tmp-editor.sh is a fake editor - echo -e "#!/bin/bash\n$SED -i \"s/nginx/gcr.io\/google_containers\/serve_hostname/g\" \$1" > /tmp/tmp-editor.sh + echo -e "#!/bin/bash\n${SED} -i \"s/nginx/gcr.io\/google_containers\/serve_hostname/g\" \$1" > /tmp/tmp-editor.sh chmod +x /tmp/tmp-editor.sh # Pre-condition: valid-pod POD has image nginx kube::test::get_object_assert pods "{{range.items}}{{$image_field}}:{{end}}" 'nginx:' @@ -882,7 +882,7 @@ __EOF__ # Post-Condition: pod "test-pod" doesn't have configuration annotation ! [[ "$(kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]] ## 2. kubectl replace doesn't set the annotation - kubectl get pods test-pod -o yaml "${kube_flags[@]}" | $SED 's/test-pod-label/test-pod-replaced/g' > "${KUBE_TEMP}"/test-pod-replace.yaml + kubectl get pods test-pod -o yaml "${kube_flags[@]}" | ${SED} 's/test-pod-label/test-pod-replaced/g' > "${KUBE_TEMP}"/test-pod-replace.yaml # Command: replace the pod "test-pod" kubectl replace -f "${KUBE_TEMP}"/test-pod-replace.yaml "${kube_flags[@]}" # Post-Condition: pod "test-pod" is replaced @@ -898,7 +898,7 @@ __EOF__ [[ "$(kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]] kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration > "${KUBE_TEMP}"/annotation-configuration ## 4. kubectl replace updates an existing annotation - kubectl get pods test-pod -o yaml "${kube_flags[@]}" | $SED 's/test-pod-applied/test-pod-replaced/g' > "${KUBE_TEMP}"/test-pod-replace.yaml + kubectl get pods test-pod -o yaml "${kube_flags[@]}" | ${SED} 's/test-pod-applied/test-pod-replaced/g' > "${KUBE_TEMP}"/test-pod-replace.yaml # Command: replace the pod "test-pod" kubectl replace -f "${KUBE_TEMP}"/test-pod-replace.yaml "${kube_flags[@]}" # Post-Condition: pod "test-pod" is replaced @@ -915,6 +915,35 @@ __EOF__ set +o errexit } +# runs specific kubectl create tests +run_create_secret_tests() { + set -o nounset + set -o errexit + + ### Create generic secret with explicit namespace + # Pre-condition: secret 'mysecret' does not exist + output_message=$(! kubectl get secrets mysecret 2>&1 "${kube_flags[@]}") + kube::test::if_has_string "${output_message}" 'secrets "mysecret" not found' + # Command + output_message=$(kubectl create "${kube_flags[@]}" secret generic mysecret --dry-run --from-literal=foo=bar -o jsonpath='{.metadata.namespace}' --namespace=user-specified) + # Post-condition: mysecret still not created since --dry-run was used + # Output from 'create' command should contain the specified --namespace value + failure_message=$(! kubectl get secrets mysecret 2>&1 "${kube_flags[@]}") + kube::test::if_has_string "${failure_message}" 'secrets "mysecret" not found' + kube::test::if_has_string "${output_message}" 'user-specified' + # Command + output_message=$(kubectl create "${kube_flags[@]}" secret generic mysecret --dry-run --from-literal=foo=bar -o jsonpath='{.metadata.namespace}') + # Post-condition: jsonpath for .metadata.namespace should be empty for object since --namespace was not explicitly specified + kube::test::if_empty_string "${output_message}" + + kubectl create configmap tester-create-cm -o json --dry-run | kubectl create "${kube_flags[@]}" --raw /api/v1/namespaces/default/configmaps -f - + kubectl delete -ndefault "${kube_flags[@]}" configmap tester-create-cm + + set +o nounset + set +o errexit +} + + # Runs tests related to kubectl apply. run_kubectl_apply_tests() { set -o nounset @@ -1120,6 +1149,24 @@ run_kubectl_apply_deployments_tests() { kube::test::wait_object_assert replicasets "{{range.items}}{{$id_field}}:{{end}}" '' kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' + # kubectl apply deployment --overwrite=true --force=true + # Pre-Condition: no deployment exists + kube::test::get_object_assert deployments "{{range.items}}{{$id_field}}:{{end}}" '' + # apply deployment nginx + kubectl apply -f hack/testdata/deployment-label-change1.yaml "${kube_flags[@]}" + # check right deployment exists + kube::test::get_object_assert 'deployment nginx' "{{${id_field}}}" 'nginx' + # apply deployment with wrong labels mismatch selector throws errors + output_message=$(! kubectl apply -f hack/testdata/deployment-label-change2.yaml 2>&1 "${kube_flags[@]}") + kube::test::if_has_string "${output_message}" 'Invalid value' + # apply deployment with --force and --overwrite will success + kubectl apply -f hack/testdata/deployment-label-change2.yaml --overwrite=true --force=true --grace-period=10 + # check the changed deployment + output_message=$(kubectl apply view-last-applied deploy/nginx -o json 2>&1 "${kube_flags[@]}" |grep nginx2) + kube::test::if_has_string "${output_message}" '"name": "nginx2"' + # cleanup + kubectl delete deployments --all --grace-period=10 + set +o nounset set +o errexit } @@ -1149,7 +1196,7 @@ run_save_config_tests() { ! [[ "$(kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]] # Command: edit the pod "test-pod" temp_editor="${KUBE_TEMP}/tmp-editor.sh" - echo -e "#!/bin/bash\n$SED -i \"s/test-pod-label/test-pod-label-edited/g\" \$@" > "${temp_editor}" + echo -e "#!/bin/bash\n${SED} -i \"s/test-pod-label/test-pod-label-edited/g\" \$@" > "${temp_editor}" chmod +x "${temp_editor}" EDITOR=${temp_editor} kubectl edit pod test-pod --save-config "${kube_flags[@]}" # Post-Condition: pod "test-pod" has configuration annotation @@ -1224,7 +1271,7 @@ run_kubectl_run_tests() { # Post-Condition: Job "pi" is created kube::test::get_object_assert jobs "{{range.items}}{{$id_field}}:{{end}}" 'pi:' # Describe command (resource only) should print detailed information - kube::test::describe_resource_assert pods "Name:" "Image:" "Node:" "Labels:" "Status:" "Created By" + kube::test::describe_resource_assert pods "Name:" "Image:" "Node:" "Labels:" "Status:" "Controlled By" # Clean up kubectl delete jobs pi "${kube_flags[@]}" # Post-condition: no pods exist. @@ -1345,17 +1392,28 @@ run_kubectl_get_tests() { fi ### Test kubectl get all - output_message=$(kubectl --v=6 --namespace default get all 2>&1 "${kube_flags[@]}") + output_message=$(kubectl --v=6 --namespace default get all --chunk-size=0 2>&1 "${kube_flags[@]}") # Post-condition: Check if we get 200 OK from all the url(s) kube::test::if_has_string "${output_message}" "/api/v1/namespaces/default/pods 200 OK" kube::test::if_has_string "${output_message}" "/api/v1/namespaces/default/replicationcontrollers 200 OK" kube::test::if_has_string "${output_message}" "/api/v1/namespaces/default/services 200 OK" - kube::test::if_has_string "${output_message}" "/apis/apps/v1beta1/namespaces/default/statefulsets 200 OK" + kube::test::if_has_string "${output_message}" "/apis/apps/v1/namespaces/default/statefulsets 200 OK" kube::test::if_has_string "${output_message}" "/apis/autoscaling/v1/namespaces/default/horizontalpodautoscalers 200" kube::test::if_has_string "${output_message}" "/apis/batch/v1/namespaces/default/jobs 200 OK" kube::test::if_has_string "${output_message}" "/apis/extensions/v1beta1/namespaces/default/deployments 200 OK" kube::test::if_has_string "${output_message}" "/apis/extensions/v1beta1/namespaces/default/replicasets 200 OK" + ### Test kubectl get chunk size + output_message=$(kubectl --v=6 get clusterrole --chunk-size=10 2>&1 "${kube_flags[@]}") + # Post-condition: Check if we get a limit and continue + kube::test::if_has_string "${output_message}" "/clusterroles?limit=10 200 OK" + kube::test::if_has_string "${output_message}" "/v1/clusterroles?continue=" + + ### Test kubectl get chunk size defaults to 500 + output_message=$(kubectl --v=6 get clusterrole 2>&1 "${kube_flags[@]}") + # Post-condition: Check if we get a limit and continue + kube::test::if_has_string "${output_message}" "/clusterroles?limit=500 200 OK" + ### Test --allow-missing-template-keys # Pre-condition: no POD exists create_and_use_new_namespace @@ -2698,7 +2756,7 @@ run_deployment_tests() { output_message=$(kubectl get deployment.extensions -o=jsonpath='{.items[0].apiVersion}' 2>&1 "${kube_flags[@]}") kube::test::if_has_string "${output_message}" 'extensions/v1beta1' output_message=$(kubectl get deployment.apps -o=jsonpath='{.items[0].apiVersion}' 2>&1 "${kube_flags[@]}") - kube::test::if_has_string "${output_message}" 'apps/v1beta1' + kube::test::if_has_string "${output_message}" 'apps/v1' # Clean up kubectl delete deployment test-nginx-extensions "${kube_flags[@]}" @@ -2713,11 +2771,11 @@ run_deployment_tests() { output_message=$(kubectl get deployment.extensions -o=jsonpath='{.items[0].apiVersion}' 2>&1 "${kube_flags[@]}") kube::test::if_has_string "${output_message}" 'extensions/v1beta1' output_message=$(kubectl get deployment.apps -o=jsonpath='{.items[0].apiVersion}' 2>&1 "${kube_flags[@]}") - kube::test::if_has_string "${output_message}" 'apps/v1beta1' + kube::test::if_has_string "${output_message}" 'apps/v1' # Describe command (resource only) should print detailed information kube::test::describe_resource_assert rs "Name:" "Pod Template:" "Labels:" "Selector:" "Controlled By" "Replicas:" "Pods Status:" "Volumes:" # Describe command (resource only) should print detailed information - kube::test::describe_resource_assert pods "Name:" "Image:" "Node:" "Labels:" "Status:" "Created By" "Controlled By" + kube::test::describe_resource_assert pods "Name:" "Image:" "Node:" "Labels:" "Status:" "Controlled By" # Clean up kubectl delete deployment test-nginx-apps "${kube_flags[@]}" @@ -2817,7 +2875,7 @@ run_deployment_tests() { kubectl get rs "${newrs}" -o yaml | grep "deployment.kubernetes.io/revision-history: 1,3" # Check that trying to watch the status of a superseded revision returns an error ! kubectl rollout status deployment/nginx --revision=3 - cat hack/testdata/deployment-revision1.yaml | $SED "s/name: nginx$/name: nginx2/" | kubectl create -f - "${kube_flags[@]}" + cat hack/testdata/deployment-revision1.yaml | ${SED} "s/name: nginx$/name: nginx2/" | kubectl create -f - "${kube_flags[@]}" # Deletion of both deployments should not be blocked kubectl delete deployment nginx2 "${kube_flags[@]}" # Clean up @@ -2957,7 +3015,7 @@ run_rs_tests() { # Describe command should print events information when show-events=true kube::test::describe_resource_events_assert rs true # Describe command (resource only) should print detailed information - kube::test::describe_resource_assert pods "Name:" "Image:" "Node:" "Labels:" "Status:" "Created By" "Controlled By" + kube::test::describe_resource_assert pods "Name:" "Image:" "Node:" "Labels:" "Status:" "Controlled By" ### Scale replica set frontend with current-replicas and replicas # Pre-condition: 3 replicas @@ -3297,7 +3355,7 @@ run_multi_resources_tests() { fi # Command: kubectl edit multiple resources temp_editor="${KUBE_TEMP}/tmp-editor.sh" - echo -e "#!/bin/bash\n$SED -i \"s/status\:\ replaced/status\:\ edited/g\" \$@" > "${temp_editor}" + echo -e "#!/bin/bash\n${SED} -i \"s/status\:\ replaced/status\:\ edited/g\" \$@" > "${temp_editor}" chmod +x "${temp_editor}" EDITOR="${temp_editor}" kubectl edit "${kube_flags[@]}" -f "${file}" # Post-condition: mock service (and mock2) and mock rc (and mock2) are edited @@ -3522,7 +3580,7 @@ run_clusterroles_tests() { kubectl set subject "${kube_flags[@]}" clusterrolebinding super-sa --serviceaccount=otherfoo:foo kube::test::get_object_assert clusterrolebinding/super-sa "{{range.subjects}}{{.namespace}}:{{end}}" 'otherns:otherfoo:' kube::test::get_object_assert clusterrolebinding/super-sa "{{range.subjects}}{{.name}}:{{end}}" 'sa-name:foo:' - + # test `kubectl create rolebinding` # test `kubectl set subject rolebinding` kubectl create "${kube_flags[@]}" rolebinding admin --clusterrole=admin --user=default-admin @@ -3648,6 +3706,11 @@ run_kubectl_create_error_tests() { fi rm "${ERROR_FILE}" + # Posting a pod to namespaces should fail. Also tests --raw forcing the post location + [ "$( kubectl convert -f test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml -o json | kubectl create "${kube_flags[@]}" --raw /api/v1/namespaces -f - --v=8 2>&1 | grep 'cannot be handled as a Namespace: converting (v1.Pod)')" ] + + [ "$( kubectl create "${kube_flags[@]}" --raw /api/v1/namespaces -f test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml --edit 2>&1 | grep 'raw and --edit are mutually exclusive')" ] + set +o nounset set +o errexit } @@ -3696,13 +3759,13 @@ run_client_config_tests() { # Pre-condition: context "missing-context" does not exist # Command output_message=$(! kubectl get pod --context="missing-context" 2>&1) - kube::test::if_has_string "${output_message}" 'context "missing-context" does not exist' + kube::test::if_has_string "${output_message}" 'context was not found for specified context: missing-context' # Post-condition: invalid or missing context returns error # Pre-condition: cluster "missing-cluster" does not exist # Command output_message=$(! kubectl get pod --cluster="missing-cluster" 2>&1) - kube::test::if_has_string "${output_message}" 'cluster "missing-cluster" does not exist' + kube::test::if_has_string "${output_message}" 'no server found for cluster "missing-cluster"' # Post-condition: invalid or missing cluster returns error # Pre-condition: user "missing-user" does not exist @@ -4173,6 +4236,14 @@ run_kubectl_all_namespace_tests() { # Post-condition: valid-pod doesn't exist kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' + ### Verify flag all-namespaces is ignored for rootScoped resources + # Pre-condition: node exists + kube::test::get_object_assert nodes "{{range.items}}{{$id_field}}:{{end}}" '127.0.0.1:' + # Command + output_message=$(kubectl get nodes --all-namespaces 2>&1) + # Post-condition: output with no NAMESPACE field + kube::test::if_has_not_string "${output_message}" "NAMESPACE" + set +o nounset set +o errexit } @@ -4263,11 +4334,17 @@ run_cluster_management_tests() { response=$(! kubectl cordon 2>&1) kube::test::if_has_string "${response}" 'error\: USAGE\: cordon NODE' - ### kubectl cordon selects all nodes with an empty --selector= + ### kubectl cordon selects no nodes with an empty --selector= # Pre-condition: node "127.0.0.1" is uncordoned kubectl uncordon "127.0.0.1" - response=$(kubectl cordon --selector=) + response=$(! kubectl cordon --selector= 2>&1) + kube::test::if_has_string "${response}" 'must provide one or more resources' + # test=label matches our node + response=$(kubectl cordon --selector test=label) kube::test::if_has_string "${response}" 'node "127.0.0.1" cordoned' + # invalid=label does not match any nodes + response=$(kubectl cordon --selector invalid=label) + kube::test::if_has_not_string "${response}" 'cordoned' # Post-condition: node "127.0.0.1" is cordoned kube::test::get_object_assert "nodes 127.0.0.1" "{{.spec.unschedulable}}" 'true' @@ -4547,8 +4624,6 @@ runTests() { fi if kube::test::if_supports_resource "${pods}" ; then - # TODO: Move apply tests to run on rs instead of pods so that they can be - # run for federation apiserver as well. record_command run_kubectl_apply_tests record_command run_kubectl_run_tests record_command run_kubectl_create_filter_tests @@ -4563,18 +4638,22 @@ runTests() { ############### if kube::test::if_supports_resource "${pods}" ; then - # TODO: Move get tests to run on rs instead of pods so that they can be - # run for federation apiserver as well. record_command run_kubectl_get_tests fi + + ###################### + # Create # + ###################### + if kube::test::if_supports_resource "${secrets}" ; then + record_command run_create_secret_tests + fi + ################## # Global timeout # ################## if kube::test::if_supports_resource "${pods}" ; then - # TODO: Move request timeout tests to run on rs instead of pods so that they - # can be run for federation apiserver as well. record_command run_kubectl_request_timeout_tests fi @@ -4854,7 +4933,9 @@ runTests() { ############################ if kube::test::if_supports_resource "${pods}" ; then - record_command run_kubectl_all_namespace_tests + if kube::test::if_supports_resource "${nodes}" ; then + record_command run_kubectl_all_namespace_tests + fi fi ################ diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/test-federation-cmd.sh b/vendor/k8s.io/kubernetes/hack/make-rules/test-federation-cmd.sh deleted file mode 100755 index 9543cb3c6..000000000 --- a/vendor/k8s.io/kubernetes/hack/make-rules/test-federation-cmd.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash - -# 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. - -# This command checks that the built commands can function together for -# simple scenarios. It does not require Docker. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. -source "${KUBE_ROOT}/hack/lib/init.sh" -source "${KUBE_ROOT}/hack/lib/test.sh" -source "${KUBE_ROOT}/hack/make-rules/test-cmd-util.sh" - -function run_federation_apiserver() { - kube::log::status "Building federation-apiserver" - make -C "${KUBE_ROOT}" WHAT="federation/cmd/federation-apiserver" - - # Start federation-apiserver - kube::log::status "Starting federation-apiserver" - - # Admission Controllers to invoke prior to persisting objects in cluster - ADMISSION_CONTROL="NamespaceLifecycle" - - "${KUBE_OUTPUT_HOSTBIN}/federation-apiserver" \ - --insecure-port="${API_PORT}" \ - --secure-port="${SECURE_API_PORT}" \ - --admission-control="${ADMISSION_CONTROL}" \ - --etcd-servers="http://${ETCD_HOST}:${ETCD_PORT}" \ - --storage-media-type="${KUBE_TEST_API_STORAGE_TYPE-}" \ - --cert-dir="${TMPDIR:-/tmp/}" \ - --token-auth-file=hack/testdata/auth-tokens.csv 1>&2 & - APISERVER_PID=$! - - kube::util::wait_for_url "http://127.0.0.1:${API_PORT}/healthz" "apiserver" -} - -function run_federation_controller_manager() { - kube::log::status "Building federation-controller-manager" - make -C "${KUBE_ROOT}" WHAT="federation/cmd/federation-controller-manager" - - # Create a kubeconfig for federation apiserver. - local kubeconfig="${KUBE_TEMP}/kubeconfig" - touch "${kubeconfig}" - kubectl config set-cluster "apiserver" --server="http://127.0.0.1:${API_PORT}" --insecure-skip-tls-verify=true --kubeconfig="${kubeconfig}" - kubectl config set-context "context" --cluster="apiserver" --kubeconfig="${kubeconfig}" - kubectl config use-context "context" --kubeconfig="${kubeconfig}" - - # Start controller manager - kube::log::status "Starting federation-controller-manager" - "${KUBE_OUTPUT_HOSTBIN}/federation-controller-manager" \ - --port="${CTLRMGR_PORT}" \ - --kubeconfig="${kubeconfig}" \ - --kube-api-content-type="${KUBE_TEST_API_TYPE-}" \ - --controllers="service-dns=false" \ - --master="127.0.0.1:${API_PORT}" 1>&2 & - CTLRMGR_PID=$! - - kube::util::wait_for_url "http://127.0.0.1:${CTLRMGR_PORT}/healthz" "controller-manager" -} - -kube::log::status "Running kubectl tests for federation-apiserver" - -setup -run_federation_apiserver -run_federation_controller_manager -# TODO: Fix for replicasets and deployments. -SUPPORTED_RESOURCES=("configmaps" "daemonsets" "events" "ingress" "namespaces" "services" "secrets") -# Set wait for deletion to true for federation apiserver since resources are -# deleted asynchronously. -# This is a temporary workaround until https://github.com/kubernetes/kubernetes/issues/42594 is fixed. -WAIT_FOR_DELETION="true" -# WARNING: Do not wrap this call in a subshell to capture output, e.g. output=$(runTests) -# Doing so will suppress errexit behavior inside runTests -runTests - -kube::log::status "TESTS PASSED" diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/test-integration.sh b/vendor/k8s.io/kubernetes/hack/make-rules/test-integration.sh index 53804c37f..c180f45e8 100755 --- a/vendor/k8s.io/kubernetes/hack/make-rules/test-integration.sh +++ b/vendor/k8s.io/kubernetes/hack/make-rules/test-integration.sh @@ -49,9 +49,6 @@ kube::test::find_integration_test_dirs() { find vendor/k8s.io/apiextensions-apiserver/test/integration/ -name '*_test.go' -print0 \ | xargs -0n1 dirname | sed "s|^|${KUBE_GO_PACKAGE}/|" \ | LC_ALL=C sort -u - find federation/test/integration/ -name '*_test.go' -print0 \ - | xargs -0n1 dirname | sed "s|^|${KUBE_GO_PACKAGE}/|" \ - | LC_ALL=C sort -u ) } diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/test.sh b/vendor/k8s.io/kubernetes/hack/make-rules/test.sh index 151060ed8..54feeea8e 100755 --- a/vendor/k8s.io/kubernetes/hack/make-rules/test.sh +++ b/vendor/k8s.io/kubernetes/hack/make-rules/test.sh @@ -61,7 +61,6 @@ kube::test::find_dirs() { -o -path './third_party/*' \ -o -path './staging/*' \ -o -path './vendor/*' \ - -o -path './federation/test/*' \ \) -prune \ \) -name '*_test.go' -print0 | xargs -0n1 dirname | sed "s|^\./|${KUBE_GO_PACKAGE}/|" | LC_ALL=C sort -u @@ -113,7 +112,7 @@ KUBE_GOVERALLS_BIN=${KUBE_GOVERALLS_BIN:-} # "v1,compute/v1alpha1,experimental/v1alpha2;v1,compute/v2,experimental/v1alpha3" # FIXME: due to current implementation of a test client (see: pkg/api/testapi/testapi.go) # ONLY the last version is tested in each group. -ALL_VERSIONS_CSV=$(IFS=',';echo "${KUBE_AVAILABLE_GROUP_VERSIONS[*]// /,}";IFS=$),federation/v1beta1 +ALL_VERSIONS_CSV=$(IFS=',';echo "${KUBE_AVAILABLE_GROUP_VERSIONS[*]// /,}";IFS=$) KUBE_TEST_API_VERSIONS="${KUBE_TEST_API_VERSIONS:-${ALL_VERSIONS_CSV}}" # once we have multiple group supports # Create a junit-style XML test report in this directory if set. @@ -289,7 +288,7 @@ runTests() { ${KUBE_RACE} ${KUBE_TIMEOUT} "${@}" \ "${testargs[@]:+${testargs[@]}}" \ | tee ${junit_filename_prefix:+"${junit_filename_prefix}.stdout"} \ - | grep "${go_test_grep_pattern}" && rc=$? || rc=$? + | grep --binary-files=text "${go_test_grep_pattern}" && rc=$? || rc=$? produceJUnitXMLReport "${junit_filename_prefix}" return ${rc} fi diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/verify.sh b/vendor/k8s.io/kubernetes/hack/make-rules/verify.sh index 8545d681c..e6d5337fa 100755 --- a/vendor/k8s.io/kubernetes/hack/make-rules/verify.sh +++ b/vendor/k8s.io/kubernetes/hack/make-rules/verify.sh @@ -39,10 +39,10 @@ QUICK_PATTERNS+=( "verify-generated-files-remake" "verify-godep-licenses.sh" "verify-gofmt.sh" + "verify-imports.sh" "verify-pkg-names.sh" "verify-readonly-packages.sh" "verify-staging-client-go.sh" - "verify-staging-imports.sh" "verify-test-images.sh" "verify-test-owners.sh" ) diff --git a/vendor/k8s.io/kubernetes/hack/staging-import-restrictions.json b/vendor/k8s.io/kubernetes/hack/staging-import-restrictions.json deleted file mode 100644 index 76e4e3b6b..000000000 --- a/vendor/k8s.io/kubernetes/hack/staging-import-restrictions.json +++ /dev/null @@ -1,92 +0,0 @@ -[ - { - "baseImportPath": "./vendor/k8s.io/apimachinery/", - "allowedImports": [ - "k8s.io/apimachinery", - "k8s.io/kube-openapi" - ] - }, - { - "baseImportPath": "./vendor/k8s.io/api/", - "allowedImports": [ - "k8s.io/api", - "k8s.io/apimachinery" - ] - }, - { - "baseImportPath": "./vendor/k8s.io/code-generator/", - "ignoredSubTrees": [ - "./vendor/k8s.io/code-generator/_test" - ], - "allowedImports": [ - "k8s.io/gengo", - "k8s.io/code-generator", - "k8s.io/kube-openapi" - ] - }, - { - "baseImportPath": "./vendor/k8s.io/client-go/", - "allowedImports": [ - "k8s.io/api", - "k8s.io/apimachinery", - "k8s.io/client-go" - ] - }, - { - "baseImportPath": "./vendor/k8s.io/apiserver/", - "allowedImports": [ - "k8s.io/api", - "k8s.io/apimachinery", - "k8s.io/apiserver", - "k8s.io/client-go", - "k8s.io/kube-openapi" - ] - }, - { - "baseImportPath": "./vendor/k8s.io/metrics/", - "allowedImports": [ - "k8s.io/api", - "k8s.io/apimachinery", - "k8s.io/client-go", - "k8s.io/metrics" - ] - }, - { - "baseImportPath": "./vendor/k8s.io/kube-aggregator/", - "allowedImports": [ - "k8s.io/api", - "k8s.io/apimachinery", - "k8s.io/apiserver", - "k8s.io/client-go", - "k8s.io/kube-aggregator", - "k8s.io/kube-openapi" - ] - }, - { - "baseImportPath": "./vendor/k8s.io/sample-apiserver/", - "allowedImports": [ - "k8s.io/api", - "k8s.io/apimachinery", - "k8s.io/apiserver", - "k8s.io/client-go", - "k8s.io/sample-apiserver" - ] - }, - { - "baseImportPath": "./vendor/k8s.io/apiextensions-apiserver/", - "allowedImports": [ - "k8s.io/api", - "k8s.io/apiextensions-apiserver", - "k8s.io/apimachinery", - "k8s.io/apiserver", - "k8s.io/client-go" - ] - }, - { - "baseImportPath": "./vendor/k8s.io/kube-openapi/", - "allowedImports": [ - "k8s.io/kube-openapi", - "k8s.io/gengo" - ] - } -] \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/new-nginx-deployment.yaml b/vendor/k8s.io/kubernetes/hack/testdata/deployment-label-change1.yaml similarity index 64% rename from vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/new-nginx-deployment.yaml rename to vendor/k8s.io/kubernetes/hack/testdata/deployment-label-change1.yaml index 47c57adef..cfcbae3d7 100644 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/new-nginx-deployment.yaml +++ b/vendor/k8s.io/kubernetes/hack/testdata/deployment-label-change1.yaml @@ -1,16 +1,18 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: nginx-deployment + name: nginx + labels: + name: nginx spec: replicas: 3 template: metadata: labels: - app: nginx + name: nginx1 spec: containers: - name: nginx - image: nginx:1.9.1 + image: gcr.io/google-containers/nginx:test-cmd ports: - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/nginx-deployment.yaml b/vendor/k8s.io/kubernetes/hack/testdata/deployment-label-change2.yaml similarity index 64% rename from vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/nginx-deployment.yaml rename to vendor/k8s.io/kubernetes/hack/testdata/deployment-label-change2.yaml index 7a0dd431e..7f551d321 100644 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/nginx-deployment.yaml +++ b/vendor/k8s.io/kubernetes/hack/testdata/deployment-label-change2.yaml @@ -1,16 +1,18 @@ apiVersion: extensions/v1beta1 kind: Deployment metadata: - name: nginx-deployment + name: nginx + labels: + name: nginx spec: replicas: 3 template: metadata: labels: - app: nginx + name: nginx2 spec: containers: - name: nginx - image: nginx:1.7.9 + image: gcr.io/google-containers/nginx:test-cmd ports: - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/hack/testdata/pod-with-large-name.yaml b/vendor/k8s.io/kubernetes/hack/testdata/pod-with-large-name.yaml index 8e8f0e07c..5d6276ba0 100644 --- a/vendor/k8s.io/kubernetes/hack/testdata/pod-with-large-name.yaml +++ b/vendor/k8s.io/kubernetes/hack/testdata/pod-with-large-name.yaml @@ -8,4 +8,4 @@ metadata: spec: containers: - name: kubernetes-serve-hostname - image: gcr.io/google_containers/serve_hostname:v1.4 + image: gcr.io/kubernetes-e2e-test-images/serve-hostname-amd64:1.1 diff --git a/vendor/k8s.io/kubernetes/hack/update-all.sh b/vendor/k8s.io/kubernetes/hack/update-all.sh index 7fbfeb84a..e62795e78 100755 --- a/vendor/k8s.io/kubernetes/hack/update-all.sh +++ b/vendor/k8s.io/kubernetes/hack/update-all.sh @@ -63,10 +63,6 @@ BASH_TARGETS=" update-swagger-spec update-openapi-spec update-api-reference-docs - update-federation-openapi-spec - update-federation-swagger-spec - update-federation-generated-swagger-docs - update-federation-api-reference-docs update-staging-godeps update-bazel" diff --git a/vendor/k8s.io/kubernetes/hack/update-bazel.sh b/vendor/k8s.io/kubernetes/hack/update-bazel.sh index 6bfa9b062..a01643356 100755 --- a/vendor/k8s.io/kubernetes/hack/update-bazel.sh +++ b/vendor/k8s.io/kubernetes/hack/update-bazel.sh @@ -20,14 +20,7 @@ set -o pipefail export KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. source "${KUBE_ROOT}/hack/lib/init.sh" -if LANG=C sed --help 2>&1 | grep -q GNU; then - SED="sed" -elif which gsed &>/dev/null; then - SED="gsed" -else - echo "Failed to find GNU sed as sed or gsed. If you are on Mac: brew install gnu-sed." >&2 - exit 1 -fi +kube::util::ensure-gnu-sed # Remove generated files prior to running kazel. # TODO(spxtr): Remove this line once Bazel is the only way to build. @@ -36,10 +29,10 @@ rm -f "${KUBE_ROOT}/pkg/generated/openapi/zz_generated.openapi.go" # The git commit sha1s here should match the values in $KUBE_ROOT/WORKSPACE. kube::util::go_install_from_commit \ github.com/kubernetes/repo-infra/kazel \ - e26fc85d14a1d3dc25569831acc06919673c545a + ae4e9a3906ace4ba657b7a09242610c6266e832c kube::util::go_install_from_commit \ github.com/bazelbuild/rules_go/go/tools/gazelle/gazelle \ - a280fbac1a0a4c67b0eee660b4fd1b3db7c9f058 + c72631a220406c4fae276861ee286aaec82c5af2 touch "${KUBE_ROOT}/vendor/BUILD" diff --git a/vendor/k8s.io/kubernetes/hack/update-codegen.sh b/vendor/k8s.io/kubernetes/hack/update-codegen.sh index 8fae4073c..eb0b4b1f5 100755 --- a/vendor/k8s.io/kubernetes/hack/update-codegen.sh +++ b/vendor/k8s.io/kubernetes/hack/update-codegen.sh @@ -40,6 +40,7 @@ informergen=$(kube::util::find-binary "informer-gen") GROUP_VERSIONS=(${KUBE_AVAILABLE_GROUP_VERSIONS}) GV_DIRS=() +INTERNAL_DIRS=() for gv in "${GROUP_VERSIONS[@]}"; do # add items, but strip off any leading apis/ you find to match command expectations api_dir=$(kube::util::group-version-to-pkg-path "${gv}") @@ -47,28 +48,36 @@ for gv in "${GROUP_VERSIONS[@]}"; do nopkg_dir=${nopkg_dir#vendor/k8s.io/api/} pkg_dir=${nopkg_dir#apis/} + # skip groups that aren't being served, clients for these don't matter if [[ " ${KUBE_NONSERVER_GROUP_VERSIONS} " == *" ${gv} "* ]]; then continue fi GV_DIRS+=("${pkg_dir}") + + # collect internal groups + int_group="${pkg_dir%/*}/" + if [[ "${pkg_dir}" = core/* ]]; then + int_group="api/" + fi + if ! [[ " ${INTERNAL_DIRS[@]:-} " =~ " ${int_group} " ]]; then + INTERNAL_DIRS+=("${int_group}") + fi done # delimit by commas for the command GV_DIRS_CSV=$(IFS=',';echo "${GV_DIRS[*]// /,}";IFS=$) +INTERNAL_DIRS_CSV=$(IFS=',';echo "${INTERNAL_DIRS[*]// /,}";IFS=$) # This can be called with one flag, --verify-only, so it works for both the # update- and verify- scripts. -${clientgen} "$@" +${clientgen} --input-base="k8s.io/kubernetes/pkg/apis" --input="${INTERNAL_DIRS_CSV}" "$@" ${clientgen} --output-base "${KUBE_ROOT}/vendor" --clientset-path="k8s.io/client-go" --clientset-name="kubernetes" --input-base="k8s.io/kubernetes/vendor/k8s.io/api" --input="${GV_DIRS_CSV}" "$@" -# Clientgen for federation clientset. -${clientgen} --clientset-name=federation_clientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input-base="k8s.io/kubernetes/vendor/k8s.io/api" --input="../../../federation/apis/federation/v1beta1","core/v1","extensions/v1beta1","batch/v1","autoscaling/v1" --included-types-overrides="core/v1/Service,core/v1/Namespace,extensions/v1beta1/ReplicaSet,core/v1/Secret,extensions/v1beta1/Ingress,extensions/v1beta1/Deployment,extensions/v1beta1/DaemonSet,core/v1/ConfigMap,core/v1/Event,batch/v1/Job,autoscaling/v1/HorizontalPodAutoscaler" "$@" listergen_internal_apis=( -pkg/api $( cd ${KUBE_ROOT} - find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort + find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort ) ) listergen_internal_apis=(${listergen_internal_apis[@]/#/k8s.io/kubernetes/}) @@ -86,10 +95,9 @@ listergen_external_apis_csv=$(IFS=,; echo "${listergen_external_apis[*]}") ${listergen} --output-base "${KUBE_ROOT}/vendor" --output-package "k8s.io/client-go/listers" --input-dirs "${listergen_external_apis_csv}" "$@" informergen_internal_apis=( -pkg/api $( cd ${KUBE_ROOT} - find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort + find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort ) ) informergen_internal_apis=(${informergen_internal_apis[@]/#/k8s.io/kubernetes/}) @@ -125,5 +133,6 @@ ${informergen} \ CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/code-generator/hack/update-codegen.sh CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/kube-aggregator/hack/update-codegen.sh CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/sample-apiserver/hack/update-codegen.sh +CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/sample-controller/hack/update-codegen.sh CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/apiextensions-apiserver/hack/update-codegen.sh CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/metrics/hack/update-codegen.sh diff --git a/vendor/k8s.io/kubernetes/hack/update-federation-api-reference-docs.sh b/vendor/k8s.io/kubernetes/hack/update-federation-api-reference-docs.sh deleted file mode 100755 index c4f7e6818..000000000 --- a/vendor/k8s.io/kubernetes/hack/update-federation-api-reference-docs.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -# 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. - -# Generates updated api-reference docs from the latest swagger spec for -# federation apiserver. The docs are generated at federation/docs/api-reference -# Usage: ./update-federation-api-reference-docs.sh - -set -o errexit -set -o nounset -set -o pipefail - -echo "Note: This assumes that swagger spec has been updated. Please run hack/update-federation-swagger-spec.sh to ensure that." - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -source "${KUBE_ROOT}/hack/lib/init.sh" -source "${KUBE_ROOT}/hack/lib/swagger.sh" -kube::golang::setup_env - -REPO_DIR=${REPO_DIR:-"${KUBE_ROOT}"} -DEFAULT_OUTPUT="${REPO_DIR}/federation/docs/api-reference" -OUTPUT=${1:-${DEFAULT_OUTPUT}} - -SWAGGER_SPEC_PATH="${REPO_DIR}/federation/apis/swagger-spec" - -GROUP_VERSIONS=("federation/v1beta1" "v1" "extensions/v1beta1") -GV_DIRS=() -for gv in "${GROUP_VERSIONS[@]}"; do - if [[ ${gv} == "federation/v1beta1" ]]; then - GV_DIRS+=("${REPO_DIR}/$(kube::util::group-version-to-pkg-path "${gv}")") - else - GV_DIRS+=("${REPO_DIR}/$(kube::util::group-version-to-pkg-path "${gv}")") - fi -done - -GROUP_VERSIONS="${GROUP_VERSIONS[@]}" GV_DIRS="${GV_DIRS[@]}" kube::swagger::gen_api_ref_docs "${SWAGGER_SPEC_PATH}" "${OUTPUT}" - -# ex: ts=2 sw=2 et filetype=sh diff --git a/vendor/k8s.io/kubernetes/hack/update-federation-generated-swagger-docs.sh b/vendor/k8s.io/kubernetes/hack/update-federation-generated-swagger-docs.sh deleted file mode 100755 index c6ff916bd..000000000 --- a/vendor/k8s.io/kubernetes/hack/update-federation-generated-swagger-docs.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -# 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. - -# Generates `types_swagger_doc_generated.go` files for federation API group -# versions. That file contains functions on API structs that return the comments -# that should be surfaced for the corresponding API type in our API docs. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -source "${KUBE_ROOT}/hack/lib/init.sh" -source "${KUBE_ROOT}/hack/lib/swagger.sh" - -kube::golang::setup_env - -GROUP_VERSIONS=(federation/v1beta1) -GV_DIRS=() -for gv in "${GROUP_VERSIONS[@]}"; do - GV_DIRS+=("$(kube::util::group-version-to-pkg-path "${gv}")") -done - -# To avoid compile errors, remove the currently existing files. -for gv_dir in "${GV_DIRS[@]}"; do - rm -f "${gv_dir}/types_swagger_doc_generated.go" -done -for i in "${!GROUP_VERSIONS[@]}"; do - kube::swagger::gen_types_swagger_doc "${GROUP_VERSIONS[i]}" "${GV_DIRS[i]}" -done diff --git a/vendor/k8s.io/kubernetes/hack/update-federation-openapi-spec.sh b/vendor/k8s.io/kubernetes/hack/update-federation-openapi-spec.sh deleted file mode 100755 index aa9d08981..000000000 --- a/vendor/k8s.io/kubernetes/hack/update-federation-openapi-spec.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/bash - -# Copyright 2015 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. - -# Script to fetch latest openapi spec from federation-apiserver -# Puts the updated spec at federation/apis/openapi-spec/ - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -OPENAPI_ROOT_DIR="${KUBE_ROOT}/federation/apis/openapi-spec" -source "${KUBE_ROOT}/hack/lib/init.sh" - -kube::golang::setup_env - -make -C "${KUBE_ROOT}" WHAT="cmd/hyperkube" - -function cleanup() -{ - [[ -n "${APISERVER_PID-}" ]] && kill ${APISERVER_PID} 1>&2 2>/dev/null - - kube::etcd::cleanup - - kube::log::status "Clean up complete" -} - -trap cleanup EXIT SIGINT - -kube::golang::setup_env - -TMP_DIR=$(mktemp -d /tmp/update-federation-openapi-spec.XXXX) -ETCD_HOST=${ETCD_HOST:-127.0.0.1} -ETCD_PORT=${ETCD_PORT:-2379} -API_PORT=${API_PORT:-8050} -API_HOST=${API_HOST:-127.0.0.1} - -kube::etcd::start - -echo "dummy_token,admin,admin" > $TMP_DIR/tokenauth.csv - -# Start federation-apiserver -kube::log::status "Starting federation-apiserver" -"${KUBE_OUTPUT_HOSTBIN}/hyperkube" federation-apiserver \ - --insecure-bind-address="${API_HOST}" \ - --bind-address="${API_HOST}" \ - --insecure-port="${API_PORT}" \ - --etcd-servers="http://${ETCD_HOST}:${ETCD_PORT}" \ - --advertise-address="10.10.10.10" \ - --cert-dir="${TMP_DIR}/certs" \ - --token-auth-file=$TMP_DIR/tokenauth.csv >/tmp/openapi-federation-api-server.log 2>&1 & -APISERVER_PID=$! -kube::util::wait_for_url "${API_HOST}:${API_PORT}/healthz" "apiserver: " - -kube::log::status "Updating " ${OPENAPI_ROOT_DIR} - -curl -w "\n" -fs "${API_HOST}:${API_PORT}/swagger.json" > "${OPENAPI_ROOT_DIR}/swagger.json" - -kube::log::status "SUCCESS" - -# ex: ts=2 sw=2 et filetype=sh diff --git a/vendor/k8s.io/kubernetes/hack/update-federation-swagger-spec.sh b/vendor/k8s.io/kubernetes/hack/update-federation-swagger-spec.sh deleted file mode 100755 index 7c46a2938..000000000 --- a/vendor/k8s.io/kubernetes/hack/update-federation-swagger-spec.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash - -# Copyright 2015 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. - -# Script to fetch latest swagger spec from federation-apiserver -# Puts the updated spec at federation/apis/swagger-spec/ - -set -o errexit -set -o nounset -set -o pipefail - -cat << __EOF__ -Note: This assumes that the 'types_swagger_doc_generated.go' file has been -updated for all API group versions. If you are unsure, please run -hack/update-generated-swagger-docs.sh and -hack/update-federation-generated-swagger-docs.sh first. -__EOF__ - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -SWAGGER_ROOT_DIR="${KUBE_ROOT}/federation/apis/swagger-spec" -source "${KUBE_ROOT}/hack/lib/init.sh" - -kube::golang::setup_env - -make -C "${KUBE_ROOT}" WHAT="cmd/hyperkube" - -function cleanup() -{ - [[ -n ${APISERVER_PID-} ]] && kill ${APISERVER_PID} 1>&2 2>/dev/null - - kube::etcd::cleanup - - kube::log::status "Clean up complete" -} - -trap cleanup EXIT SIGINT - -kube::golang::setup_env - -TMP_DIR=$(mktemp -d /tmp/update-federation-swagger-spec.XXXX) -ETCD_HOST=${ETCD_HOST:-127.0.0.1} -ETCD_PORT=${ETCD_PORT:-2379} -API_PORT=${API_PORT:-8050} -API_HOST=${API_HOST:-127.0.0.1} - -kube::etcd::start - -# Start federation-apiserver -kube::log::status "Starting federation-apiserver" -"${KUBE_OUTPUT_HOSTBIN}/hyperkube" federation-apiserver \ - --insecure-bind-address="${API_HOST}" \ - --bind-address="${API_HOST}" \ - --insecure-port="${API_PORT}" \ - --etcd-servers="http://${ETCD_HOST}:${ETCD_PORT}" \ - --advertise-address="10.10.10.10" \ - --cert-dir="${TMP_DIR}/certs" >/tmp/swagger-federation-api-server.log 2>&1 & -APISERVER_PID=$! - -kube::util::wait_for_url "${API_HOST}:${API_PORT}/" "apiserver: " - -SWAGGER_API_PATH="${API_HOST}:${API_PORT}/swaggerapi/" -DEFAULT_GROUP_VERSIONS="v1 extensions/v1beta1 federation/v1beta1" -VERSIONS=${VERSIONS:-$DEFAULT_GROUP_VERSIONS} - -kube::log::status "Updating " ${SWAGGER_ROOT_DIR} - -SWAGGER_API_PATH="${SWAGGER_API_PATH}" SWAGGER_ROOT_DIR="${SWAGGER_ROOT_DIR}" VERSIONS="${VERSIONS}" kube::util::fetch-swagger-spec - -kube::log::status "SUCCESS" - -# ex: ts=2 sw=2 et filetype=sh diff --git a/vendor/k8s.io/kubernetes/hack/update-generated-device-plugin-dockerized.sh b/vendor/k8s.io/kubernetes/hack/update-generated-device-plugin-dockerized.sh index 15003fd0c..0398058b0 100755 --- a/vendor/k8s.io/kubernetes/hack/update-generated-device-plugin-dockerized.sh +++ b/vendor/k8s.io/kubernetes/hack/update-generated-device-plugin-dockerized.sh @@ -19,8 +19,7 @@ set -o nounset set -o pipefail KUBE_ROOT="$(cd "$(dirname "${BASH_SOURCE}")/../" && pwd -P)" -DEVICE_PLUGIN_ROOT="${KUBE_ROOT}/pkg/kubelet/apis/deviceplugin/v1alpha1/" +DEVICE_PLUGIN_ROOT="${KUBE_ROOT}/pkg/kubelet/apis/deviceplugin/v1alpha/" source "${KUBE_ROOT}/hack/lib/protoc.sh" - kube::protoc::generate_proto ${DEVICE_PLUGIN_ROOT} diff --git a/vendor/k8s.io/kubernetes/hack/update-generated-docs.sh b/vendor/k8s.io/kubernetes/hack/update-generated-docs.sh index 38595ff71..6d5ed939f 100755 --- a/vendor/k8s.io/kubernetes/hack/update-generated-docs.sh +++ b/vendor/k8s.io/kubernetes/hack/update-generated-docs.sh @@ -32,7 +32,6 @@ BINS=( cmd/genkubedocs cmd/genman cmd/genyaml - federation/cmd/genfeddocs ) make -C "${KUBE_ROOT}" WHAT="${BINS[*]}" diff --git a/vendor/k8s.io/kubernetes/hack/update-generated-protobuf-dockerized.sh b/vendor/k8s.io/kubernetes/hack/update-generated-protobuf-dockerized.sh index 3ab8608b3..b064a6e50 100755 --- a/vendor/k8s.io/kubernetes/hack/update-generated-protobuf-dockerized.sh +++ b/vendor/k8s.io/kubernetes/hack/update-generated-protobuf-dockerized.sh @@ -67,17 +67,18 @@ PACKAGES=( k8s.io/api/imagepolicy/v1alpha1 k8s.io/api/scheduling/v1alpha1 k8s.io/api/settings/v1alpha1 + k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 k8s.io/api/storage/v1 k8s.io/api/admissionregistration/v1alpha1 k8s.io/api/admission/v1alpha1 k8s.io/api/networking/v1 - k8s.io/kubernetes/federation/apis/federation/v1beta1 k8s.io/metrics/pkg/apis/metrics/v1alpha1 k8s.io/metrics/pkg/apis/metrics/v1beta1 k8s.io/metrics/pkg/apis/custom_metrics/v1beta1 k8s.io/apiserver/pkg/apis/audit/v1alpha1 k8s.io/apiserver/pkg/apis/audit/v1beta1 + k8s.io/apiserver/pkg/apis/example2/v1 ) # requires the 'proto' tag to build (will remove when ready) diff --git a/vendor/k8s.io/kubernetes/hack/update-generated-swagger-docs.sh b/vendor/k8s.io/kubernetes/hack/update-generated-swagger-docs.sh index 44e5458bb..20aef7fa0 100755 --- a/vendor/k8s.io/kubernetes/hack/update-generated-swagger-docs.sh +++ b/vendor/k8s.io/kubernetes/hack/update-generated-swagger-docs.sh @@ -14,9 +14,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Generates `types_swagger_doc_generated.go` files for federation API group -# versions. That file contains functions on API structs that return the comments -# that should be surfaced for the corresponding API type in our API docs. +# Generates `types_swagger_doc_generated.go` files for API group +# versions. That file contains functions on API structs that return +# the comments that should be surfaced for the corresponding API type +# in our API docs. set -o errexit set -o nounset diff --git a/vendor/k8s.io/kubernetes/hack/verify-api-reference-docs.sh b/vendor/k8s.io/kubernetes/hack/verify-api-reference-docs.sh index ec1dca699..e41256f9c 100755 --- a/vendor/k8s.io/kubernetes/hack/verify-api-reference-docs.sh +++ b/vendor/k8s.io/kubernetes/hack/verify-api-reference-docs.sh @@ -36,7 +36,7 @@ trap "rm -rf ${TMP_ROOT}" EXIT SIGINT echo "diffing ${API_REFERENCE_DOCS_ROOT} against freshly generated docs" ret=0 -diff -NauprB -I 'Last update' --exclude=*.md "${API_REFERENCE_DOCS_ROOT}" "${OUTPUT_DIR}" || ret=$? +diff -NauprB -I 'Last update' --exclude=*.md --exclude=OWNERS "${API_REFERENCE_DOCS_ROOT}" "${OUTPUT_DIR}" || ret=$? if [[ $ret -eq 0 ]] then echo "${API_REFERENCE_DOCS_ROOT} up to date." diff --git a/vendor/k8s.io/kubernetes/hack/verify-codegen.sh b/vendor/k8s.io/kubernetes/hack/verify-codegen.sh index af94a334a..02b979c2f 100755 --- a/vendor/k8s.io/kubernetes/hack/verify-codegen.sh +++ b/vendor/k8s.io/kubernetes/hack/verify-codegen.sh @@ -30,6 +30,7 @@ kube::golang::setup_env CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/code-generator/hack/verify-codegen.sh CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/kube-aggregator/hack/verify-codegen.sh CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/sample-apiserver/hack/verify-codegen.sh +CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/sample-controller/hack/verify-codegen.sh CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/apiextensions-apiserver/hack/verify-codegen.sh CODEGEN_PKG=./vendor/k8s.io/code-generator vendor/k8s.io/metrics/hack/verify-codegen.sh diff --git a/vendor/k8s.io/kubernetes/hack/verify-description.sh b/vendor/k8s.io/kubernetes/hack/verify-description.sh index 8fca1b2fc..95bb06800 100755 --- a/vendor/k8s.io/kubernetes/hack/verify-description.sh +++ b/vendor/k8s.io/kubernetes/hack/verify-description.sh @@ -43,8 +43,7 @@ find_files() { -o -wholename '*/vendor/*' \ \) -prune \ \) \ - \( -wholename '*pkg/api/v*/types.go' \ - -o -wholename '*pkg/apis/*/v*/types.go' \ + \( -wholename '*pkg/apis/*/v*/types.go' \ -o -wholename '*pkg/api/unversioned/types.go' \ \) } @@ -71,7 +70,7 @@ for file in $versioned_api_files; do fi done -internal_types_files="${KUBE_ROOT}/pkg/api/types.go ${KUBE_ROOT}/pkg/apis/extensions/types.go" +internal_types_files="${KUBE_ROOT}/pkg/apis/core/types.go ${KUBE_ROOT}/pkg/apis/extensions/types.go" for internal_types_file in $internal_types_files; do if [[ ! -e $internal_types_file ]]; then echo "Internal types file ${internal_types_file} does not exist" diff --git a/vendor/k8s.io/kubernetes/hack/verify-federation-api-reference-docs.sh b/vendor/k8s.io/kubernetes/hack/verify-federation-api-reference-docs.sh deleted file mode 100755 index 6cf951866..000000000 --- a/vendor/k8s.io/kubernetes/hack/verify-federation-api-reference-docs.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# 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. - -# Verifies that api reference docs are up to date. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -source "${KUBE_ROOT}/hack/lib/init.sh" - -kube::golang::setup_env - -API_REFERENCE_DOCS_ROOT="${KUBE_ROOT}/federation/docs/api-reference" -OUTPUT_DIR="${KUBE_ROOT}/_tmp_federation/api-reference" -mkdir -p ${OUTPUT_DIR} -TMP_ROOT="${KUBE_ROOT}/_tmp_federation" -trap "rm -rf ${TMP_ROOT}" EXIT SIGINT - -# Generate API reference docs in tmp. -"./hack/update-federation-api-reference-docs.sh" "${OUTPUT_DIR}" - -echo "diffing ${API_REFERENCE_DOCS_ROOT} against freshly generated docs" -ret=0 -diff -NauprB -I 'Last update' --exclude=*.md "${API_REFERENCE_DOCS_ROOT}" "${OUTPUT_DIR}" || ret=$? -if [[ $ret -eq 0 ]] -then - echo "${API_REFERENCE_DOCS_ROOT} up to date." -else - echo "${API_REFERENCE_DOCS_ROOT} is out of date. Please run hack/update-federation-api-reference-docs.sh" - exit 1 -fi - -# ex: ts=2 sw=2 et filetype=sh diff --git a/vendor/k8s.io/kubernetes/hack/verify-federation-generated-swagger-docs.sh b/vendor/k8s.io/kubernetes/hack/verify-federation-generated-swagger-docs.sh deleted file mode 100755 index 36e25a970..000000000 --- a/vendor/k8s.io/kubernetes/hack/verify-federation-generated-swagger-docs.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash - -# 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. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -source "${KUBE_ROOT}/hack/lib/init.sh" - -kube::golang::setup_env - -make -C "${KUBE_ROOT}" WHAT=cmd/genswaggertypedocs - -# Find binary -genswaggertypedocs=$(kube::util::find-binary "genswaggertypedocs") - -if [[ ! -x "$genswaggertypedocs" ]]; then - { - echo "It looks as if you don't have a compiled genswaggertypedocs binary" - echo - echo "If you are running from a clone of the git repo, please run" - echo "'make WHAT=cmd/genswaggertypedocs'." - } >&2 - exit 1 -fi - -DIFFROOT="${KUBE_ROOT}/federation" -TMP_DIFFROOT="${KUBE_ROOT}/_tmp/federation" -_tmp="${KUBE_ROOT}/_tmp_federation" - -cleanup() { - rm -rf "${_tmp}" -} -trap "cleanup" EXIT SIGINT - -cleanup - -mkdir -p "${TMP_DIFFROOT}" -cp -a "${DIFFROOT}"/* "${TMP_DIFFROOT}/" - -"${KUBE_ROOT}/hack/update-federation-generated-swagger-docs.sh" -echo "diffing ${DIFFROOT} against freshly generated swagger type documentation" -ret=0 -diff -Naupr -I 'Auto generated by' "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$? -cp -a "${TMP_DIFFROOT}"/* "${DIFFROOT}/" -if [[ $ret -eq 0 ]] -then - echo "${DIFFROOT} up to date." -else - echo "${DIFFROOT} is out of date. Please run hack/update-federation-generated-swagger-docs.sh" - exit 1 -fi diff --git a/vendor/k8s.io/kubernetes/hack/verify-federation-openapi-spec.sh b/vendor/k8s.io/kubernetes/hack/verify-federation-openapi-spec.sh deleted file mode 100755 index df407a084..000000000 --- a/vendor/k8s.io/kubernetes/hack/verify-federation-openapi-spec.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -# 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. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -source "${KUBE_ROOT}/hack/lib/init.sh" - -kube::golang::setup_env - -SPECROOT="${KUBE_ROOT}/federation/apis/openapi-spec" -TMP_SPECROOT="${KUBE_ROOT}/_tmp_federation/openapi-spec" -_tmp="${KUBE_ROOT}/_tmp_federation" - -mkdir -p "${_tmp}" -cp -a "${SPECROOT}" "${TMP_SPECROOT}" -trap "cp -a ${TMP_SPECROOT} ${SPECROOT}/..; rm -rf ${_tmp}" EXIT SIGINT -rm ${SPECROOT}/* - -"${KUBE_ROOT}/hack/update-federation-openapi-spec.sh" -echo "diffing ${SPECROOT} against freshly generated federation openapi spec" -ret=0 -diff -Naupr -I 'Auto generated by' "${SPECROOT}" "${TMP_SPECROOT}" || ret=$? -if [[ $ret -eq 0 ]] -then - echo "${SPECROOT} up to date." -else - echo "${SPECROOT} is out of date. Please run hack/update-federation-openapi-spec.sh" - exit 1 -fi - -# ex: ts=2 sw=2 et filetype=sh diff --git a/vendor/k8s.io/kubernetes/hack/verify-federation-swagger-spec.sh b/vendor/k8s.io/kubernetes/hack/verify-federation-swagger-spec.sh deleted file mode 100755 index 0a33f2ffa..000000000 --- a/vendor/k8s.io/kubernetes/hack/verify-federation-swagger-spec.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash - -# 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. - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -source "${KUBE_ROOT}/hack/lib/init.sh" - -kube::golang::setup_env - -make -C "${KUBE_ROOT}" WHAT=federation/cmd/federation-apiserver - -apiserver=$(kube::util::find-binary "federation-apiserver") - -SPECROOT="${KUBE_ROOT}/federation/apis/swagger-spec" -TMP_SPECROOT="${KUBE_ROOT}/_tmp_federation/swagger-spec" -_tmp="${KUBE_ROOT}/_tmp_federation" - -mkdir -p "${_tmp}" -trap "rm -rf ${_tmp}" EXIT SIGINT -cp -a "${SPECROOT}" "${TMP_SPECROOT}" - -"${KUBE_ROOT}/hack/update-federation-swagger-spec.sh" -echo "diffing ${SPECROOT} against freshly generated federation swagger spec" -ret=0 -diff -Naupr -I 'Auto generated by' "${SPECROOT}" "${TMP_SPECROOT}" || ret=$? -cp -a ${TMP_SPECROOT} "${KUBE_ROOT}/federation/apis" -if [[ $ret -eq 0 ]] -then - echo "${SPECROOT} up to date." -else - echo "${SPECROOT} is out of date. Please run hack/update-federation-swagger-spec.sh" - exit 1 -fi - -# ex: ts=2 sw=2 et filetype=sh diff --git a/vendor/k8s.io/kubernetes/hack/verify-generated-device-plugin.sh b/vendor/k8s.io/kubernetes/hack/verify-generated-device-plugin.sh index 10797f3a5..c98cebae9 100755 --- a/vendor/k8s.io/kubernetes/hack/verify-generated-device-plugin.sh +++ b/vendor/k8s.io/kubernetes/hack/verify-generated-device-plugin.sh @@ -19,8 +19,8 @@ set -o nounset set -o pipefail KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -DEVICE_PLUGIN_ROOT="${KUBE_ROOT}/pkg/kubelet/apis/deviceplugin/v1alpha1/" ERROR="Device plugin api is out of date. Please run hack/update-generated-device-plugin.sh" +DEVICE_PLUGIN_ROOT="${KUBE_ROOT}/pkg/kubelet/apis/deviceplugin/v1alpha/" source "${KUBE_ROOT}/hack/lib/protoc.sh" kube::golang::setup_env diff --git a/vendor/k8s.io/kubernetes/hack/verify-generated-docs.sh b/vendor/k8s.io/kubernetes/hack/verify-generated-docs.sh index e2d1899ff..9331343b1 100755 --- a/vendor/k8s.io/kubernetes/hack/verify-generated-docs.sh +++ b/vendor/k8s.io/kubernetes/hack/verify-generated-docs.sh @@ -28,7 +28,6 @@ BINS=( cmd/genkubedocs cmd/genman cmd/genyaml - federation/cmd/genfeddocs ) make -C "${KUBE_ROOT}" WHAT="${BINS[*]}" diff --git a/vendor/k8s.io/kubernetes/hack/verify-staging-imports.sh b/vendor/k8s.io/kubernetes/hack/verify-imports.sh similarity index 93% rename from vendor/k8s.io/kubernetes/hack/verify-staging-imports.sh rename to vendor/k8s.io/kubernetes/hack/verify-imports.sh index 30b8247e2..a845fa2a0 100755 --- a/vendor/k8s.io/kubernetes/hack/verify-staging-imports.sh +++ b/vendor/k8s.io/kubernetes/hack/verify-imports.sh @@ -38,4 +38,4 @@ if [[ ! -x "$importverifier" ]]; then exit 1 fi -"${importverifier}" "k8s.io/" "${KUBE_ROOT}/hack/staging-import-restrictions.json" \ No newline at end of file +"${importverifier}" "k8s.io/" "${KUBE_ROOT}/hack/import-restrictions.yaml" diff --git a/vendor/k8s.io/kubernetes/hack/verify-staging-godeps.sh b/vendor/k8s.io/kubernetes/hack/verify-staging-godeps.sh index 7a8c5f997..e3d463f9c 100755 --- a/vendor/k8s.io/kubernetes/hack/verify-staging-godeps.sh +++ b/vendor/k8s.io/kubernetes/hack/verify-staging-godeps.sh @@ -19,4 +19,4 @@ set -o nounset set -o pipefail KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -KUBE_VERBOSE=3 KUBE_RUN_COPY_OUTPUT=N ${KUBE_ROOT}/hack/update-staging-godeps.sh -d -f "$@" +KUBE_VERBOSE="${KUBE_VERBOSE:-3}" KUBE_RUN_COPY_OUTPUT=N ${KUBE_ROOT}/hack/update-staging-godeps.sh -d -f "$@" diff --git a/vendor/k8s.io/kubernetes/pkg/BUILD b/vendor/k8s.io/kubernetes/pkg/BUILD index c9206cd84..fc74d0064 100644 --- a/vendor/k8s.io/kubernetes/pkg/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/BUILD @@ -11,7 +11,22 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//pkg/api:all-srcs", + "//pkg/api/endpoints:all-srcs", + "//pkg/api/events:all-srcs", + "//pkg/api/legacyscheme:all-srcs", + "//pkg/api/persistentvolume:all-srcs", + "//pkg/api/pod:all-srcs", + "//pkg/api/ref:all-srcs", + "//pkg/api/resource:all-srcs", + "//pkg/api/service:all-srcs", + "//pkg/api/testapi:all-srcs", + "//pkg/api/testing:all-srcs", + "//pkg/api/unversioned:all-srcs", + "//pkg/api/v1/endpoints:all-srcs", + "//pkg/api/v1/node:all-srcs", + "//pkg/api/v1/pod:all-srcs", + "//pkg/api/v1/resource:all-srcs", + "//pkg/api/v1/service:all-srcs", "//pkg/apimachinery/tests:all-srcs", "//pkg/apis/abac:all-srcs", "//pkg/apis/admission:all-srcs", @@ -23,9 +38,9 @@ filegroup( "//pkg/apis/batch:all-srcs", "//pkg/apis/certificates:all-srcs", "//pkg/apis/componentconfig:all-srcs", + "//pkg/apis/core:all-srcs", "//pkg/apis/extensions:all-srcs", "//pkg/apis/imagepolicy:all-srcs", - "//pkg/apis/meta/v1:all-srcs", "//pkg/apis/networking:all-srcs", "//pkg/apis/policy:all-srcs", "//pkg/apis/rbac:all-srcs", @@ -42,6 +57,7 @@ filegroup( "//pkg/client/informers/informers_generated/internalversion:all-srcs", "//pkg/client/leaderelectionconfig:all-srcs", "//pkg/client/listers/admissionregistration/internalversion:all-srcs", + "//pkg/client/listers/apis/admissionregistration:all-srcs", "//pkg/client/listers/apps/internalversion:all-srcs", "//pkg/client/listers/authentication/internalversion:all-srcs", "//pkg/client/listers/authorization/internalversion:all-srcs", diff --git a/vendor/k8s.io/kubernetes/pkg/api/OWNERS b/vendor/k8s.io/kubernetes/pkg/api/OWNERS index 0605b27b2..8f7783f9f 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/api/OWNERS @@ -1,44 +1,4 @@ approvers: -- erictune -- lavalamp -- smarterclayton -- thockin -- liggitt -# - bgrant0607 # manual escalations only +- api-approvers reviewers: -- thockin -- lavalamp -- smarterclayton -- wojtek-t -- deads2k -- yujuhong -- brendandburns -- derekwaynecarr -- caesarxuchao -- vishh -- mikedanese -- liggitt -- nikhiljindal -- gmarek -- erictune -- davidopp -- pmorie -- sttts -- dchen1107 -- saad-ali -- zmerlynn -- luxas -- janetkuo -- justinsb -- pwittrock -- roberthbailey -- ncdc -- tallclair -- yifan-gu -- eparis -- mwielgus -- timothysc -- soltysh -- piosz -- jsafrane -- jbeda +- api-reviewers diff --git a/vendor/k8s.io/kubernetes/pkg/api/endpoints/BUILD b/vendor/k8s.io/kubernetes/pkg/api/endpoints/BUILD index 9ece3f3ca..07e3aeef1 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/endpoints/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/endpoints/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["util.go"], importpath = "k8s.io/kubernetes/pkg/api/endpoints", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/util/hash:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", ], @@ -23,7 +23,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/api/endpoints", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/api/endpoints/util.go b/vendor/k8s.io/kubernetes/pkg/api/endpoints/util.go index 37084d649..49bdbc47a 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/endpoints/util.go +++ b/vendor/k8s.io/kubernetes/pkg/api/endpoints/util.go @@ -24,7 +24,7 @@ import ( "sort" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" hashutil "k8s.io/kubernetes/pkg/util/hash" ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/endpoints/util_test.go b/vendor/k8s.io/kubernetes/pkg/api/endpoints/util_test.go index c060e3479..f35ea9ea5 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/endpoints/util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/endpoints/util_test.go @@ -22,7 +22,7 @@ import ( "github.com/davecgh/go-spew/spew" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func podRef(uid string) *api.ObjectReference { diff --git a/vendor/k8s.io/kubernetes/pkg/api/events/BUILD b/vendor/k8s.io/kubernetes/pkg/api/events/BUILD index dbc42583d..96becd0b7 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/events/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/events/BUILD @@ -10,7 +10,7 @@ go_library( name = "go_default_library", srcs = ["sorted_event_list.go"], importpath = "k8s.io/kubernetes/pkg/api/events", - deps = ["//pkg/api:go_default_library"], + deps = ["//pkg/apis/core:go_default_library"], ) go_test( @@ -19,7 +19,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/api/events", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/events/sorted_event_list.go b/vendor/k8s.io/kubernetes/pkg/api/events/sorted_event_list.go index b96c615de..9976c10ce 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/events/sorted_event_list.go +++ b/vendor/k8s.io/kubernetes/pkg/api/events/sorted_event_list.go @@ -17,7 +17,7 @@ limitations under the License. package events import ( - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // SortableEvents implements sort.Interface for []api.Event based on the Timestamp field diff --git a/vendor/k8s.io/kubernetes/pkg/api/events/sorted_event_list_test.go b/vendor/k8s.io/kubernetes/pkg/api/events/sorted_event_list_test.go index bae6f2e0d..687f6fa19 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/events/sorted_event_list_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/events/sorted_event_list_test.go @@ -22,7 +22,7 @@ import ( "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestSortableEvents(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/install/BUILD b/vendor/k8s.io/kubernetes/pkg/api/legacyscheme/BUILD similarity index 57% rename from vendor/k8s.io/kubernetes/federation/apis/core/install/BUILD rename to vendor/k8s.io/kubernetes/pkg/api/legacyscheme/BUILD index 2c1a036a6..42136a953 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/core/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/legacyscheme/BUILD @@ -1,21 +1,15 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", - srcs = ["install.go"], - importpath = "k8s.io/kubernetes/federation/apis/core/install", + srcs = ["scheme.go"], + importpath = "k8s.io/kubernetes/pkg/api/legacyscheme", + visibility = ["//visibility:public"], deps = [ - "//federation/apis/core:go_default_library", - "//federation/apis/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", ], ) @@ -30,4 +24,5 @@ filegroup( name = "all-srcs", srcs = [":package-srcs"], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/legacyscheme/scheme.go b/vendor/k8s.io/kubernetes/pkg/api/legacyscheme/scheme.go new file mode 100644 index 000000000..64c63a360 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/api/legacyscheme/scheme.go @@ -0,0 +1,46 @@ +/* +Copyright 2014 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 legacyscheme + +import ( + "os" + + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// GroupFactoryRegistry is the APIGroupFactoryRegistry (overlaps a bit with Registry, see comments in package for details) +var GroupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +// Registry is an instance of an API registry. This is an interim step to start removing the idea of a global +// API registry. +var Registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) + +// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered. +// NOTE: If you are copying this file to start a new api group, STOP! Copy the +// extensions group instead. This Scheme is special and should appear ONLY in +// the api group, unless you really know what you're doing. +// TODO(lavalamp): make the above error impossible. +var Scheme = runtime.NewScheme() + +// Codecs provides access to encoding and decoding for the scheme +var Codecs = serializer.NewCodecFactory(Scheme) + +// ParameterCodec handles versioning of objects that are converted to query parameters. +var ParameterCodec = runtime.NewParameterCodec(Scheme) diff --git a/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/BUILD b/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/BUILD index d91bb5d1b..61a8714b8 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/BUILD @@ -10,7 +10,7 @@ go_library( name = "go_default_library", srcs = ["util.go"], importpath = "k8s.io/kubernetes/pkg/api/persistentvolume", - deps = ["//pkg/api:go_default_library"], + deps = ["//pkg/apis/core:go_default_library"], ) filegroup( @@ -32,7 +32,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/api/persistentvolume", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/util.go b/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/util.go index 0a8de7c5e..6f6519613 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/util.go +++ b/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/util.go @@ -17,7 +17,7 @@ limitations under the License. package persistentvolume import ( - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func getClaimRefNamespace(pv *api.PersistentVolume) string { @@ -64,12 +64,26 @@ func VisitPVSecretNames(pv *api.PersistentVolume, visitor Visitor) bool { return false } case source.RBD != nil: - if source.RBD.SecretRef != nil && !visitor(getClaimRefNamespace(pv), source.RBD.SecretRef.Name) { - return false + if source.RBD.SecretRef != nil { + // previously persisted PV objects use claimRef namespace + ns := getClaimRefNamespace(pv) + if len(source.RBD.SecretRef.Namespace) > 0 { + // use the secret namespace if namespace is set + ns = source.RBD.SecretRef.Namespace + } + if !visitor(ns, source.RBD.SecretRef.Name) { + return false + } } case source.ScaleIO != nil: - if source.ScaleIO.SecretRef != nil && !visitor(getClaimRefNamespace(pv), source.ScaleIO.SecretRef.Name) { - return false + if source.ScaleIO.SecretRef != nil { + ns := getClaimRefNamespace(pv) + if source.ScaleIO.SecretRef != nil && len(source.ScaleIO.SecretRef.Namespace) > 0 { + ns = source.ScaleIO.SecretRef.Namespace + } + if !visitor(ns, source.ScaleIO.SecretRef.Name) { + return false + } } case source.ISCSI != nil: if source.ISCSI.SecretRef != nil && !visitor(getClaimRefNamespace(pv), source.ISCSI.SecretRef.Name) { diff --git a/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/util_test.go b/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/util_test.go index 8e83f0644..974a6dafa 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/util_test.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestPVSecrets(t *testing.T) { @@ -65,15 +65,29 @@ func TestPVSecrets(t *testing.T) { {Spec: api.PersistentVolumeSpec{ ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, PersistentVolumeSource: api.PersistentVolumeSource{ - RBD: &api.RBDVolumeSource{ - SecretRef: &api.LocalObjectReference{ + RBD: &api.RBDPersistentVolumeSource{ + SecretRef: &api.SecretReference{ Name: "Spec.PersistentVolumeSource.RBD.SecretRef"}}}}}, {Spec: api.PersistentVolumeSpec{ ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, PersistentVolumeSource: api.PersistentVolumeSource{ - ScaleIO: &api.ScaleIOVolumeSource{ - SecretRef: &api.LocalObjectReference{ + RBD: &api.RBDPersistentVolumeSource{ + SecretRef: &api.SecretReference{ + Name: "Spec.PersistentVolumeSource.RBD.SecretRef", + Namespace: "rbdns"}}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + ScaleIO: &api.ScaleIOPersistentVolumeSource{ + SecretRef: &api.SecretReference{ Name: "Spec.PersistentVolumeSource.ScaleIO.SecretRef"}}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + ScaleIO: &api.ScaleIOPersistentVolumeSource{ + SecretRef: &api.SecretReference{ + Name: "Spec.PersistentVolumeSource.ScaleIO.SecretRef", + Namespace: "scaleions"}}}}}, {Spec: api.PersistentVolumeSpec{ ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, PersistentVolumeSource: api.PersistentVolumeSource{ @@ -141,7 +155,9 @@ func TestPVSecrets(t *testing.T) { "cephfs/Spec.PersistentVolumeSource.CephFS.SecretRef", "claimrefns/Spec.PersistentVolumeSource.FlexVolume.SecretRef", "claimrefns/Spec.PersistentVolumeSource.RBD.SecretRef", + "rbdns/Spec.PersistentVolumeSource.RBD.SecretRef", "claimrefns/Spec.PersistentVolumeSource.ScaleIO.SecretRef", + "scaleions/Spec.PersistentVolumeSource.ScaleIO.SecretRef", "claimrefns/Spec.PersistentVolumeSource.ISCSI.SecretRef", "storageosns/Spec.PersistentVolumeSource.StorageOS.SecretRef", ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/pod/BUILD b/vendor/k8s.io/kubernetes/pkg/api/pod/BUILD index 02631dda2..b48e4ebb5 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/pod/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/pod/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["util.go"], importpath = "k8s.io/kubernetes/pkg/api/pod", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/features:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", @@ -37,7 +37,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/api/pod", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/api/pod/util.go b/vendor/k8s.io/kubernetes/pkg/api/pod/util.go index 7c8afdf46..3b0f61c90 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/pod/util.go +++ b/vendor/k8s.io/kubernetes/pkg/api/pod/util.go @@ -19,7 +19,7 @@ package pod import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/features" ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/pod/util_test.go b/vendor/k8s.io/kubernetes/pkg/api/pod/util_test.go index 169e7d116..4e87a1189 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/pod/util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/pod/util_test.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestPodSecrets(t *testing.T) { @@ -125,7 +125,7 @@ func TestPodSecrets(t *testing.T) { "Spec.Volumes[*].VolumeSource.ISCSI.SecretRef", "Spec.Volumes[*].VolumeSource.StorageOS.SecretRef", ) - secretPaths := collectSecretPaths(t, nil, "", reflect.TypeOf(&api.Pod{})) + secretPaths := collectResourcePaths(t, "secret", nil, "", reflect.TypeOf(&api.Pod{})) secretPaths = secretPaths.Difference(excludedSecretPaths) if missingPaths := expectedSecretPaths.Difference(secretPaths); len(missingPaths) > 0 { t.Logf("Missing expected secret paths:\n%s", strings.Join(missingPaths.List(), "\n")) @@ -146,36 +146,111 @@ func TestPodSecrets(t *testing.T) { } } -// collectSecretPaths traverses the object, computing all the struct paths that lead to fields with "secret" in the name. -func collectSecretPaths(t *testing.T, path *field.Path, name string, tp reflect.Type) sets.String { - secretPaths := sets.NewString() +// collectResourcePaths traverses the object, computing all the struct paths that lead to fields with resourcename in the name. +func collectResourcePaths(t *testing.T, resourcename string, path *field.Path, name string, tp reflect.Type) sets.String { + resourcename = strings.ToLower(resourcename) + resourcePaths := sets.NewString() if tp.Kind() == reflect.Ptr { - secretPaths.Insert(collectSecretPaths(t, path, name, tp.Elem()).List()...) - return secretPaths + resourcePaths.Insert(collectResourcePaths(t, resourcename, path, name, tp.Elem()).List()...) + return resourcePaths } - if strings.Contains(strings.ToLower(name), "secret") { - secretPaths.Insert(path.String()) + if strings.Contains(strings.ToLower(name), resourcename) { + resourcePaths.Insert(path.String()) } switch tp.Kind() { case reflect.Ptr: - secretPaths.Insert(collectSecretPaths(t, path, name, tp.Elem()).List()...) + resourcePaths.Insert(collectResourcePaths(t, resourcename, path, name, tp.Elem()).List()...) case reflect.Struct: for i := 0; i < tp.NumField(); i++ { field := tp.Field(i) - secretPaths.Insert(collectSecretPaths(t, path.Child(field.Name), field.Name, field.Type).List()...) + resourcePaths.Insert(collectResourcePaths(t, resourcename, path.Child(field.Name), field.Name, field.Type).List()...) } case reflect.Interface: - t.Errorf("cannot find secret fields in interface{} field %s", path.String()) + t.Errorf("cannot find %s fields in interface{} field %s", resourcename, path.String()) case reflect.Map: - secretPaths.Insert(collectSecretPaths(t, path.Key("*"), "", tp.Elem()).List()...) + resourcePaths.Insert(collectResourcePaths(t, resourcename, path.Key("*"), "", tp.Elem()).List()...) case reflect.Slice: - secretPaths.Insert(collectSecretPaths(t, path.Key("*"), "", tp.Elem()).List()...) + resourcePaths.Insert(collectResourcePaths(t, resourcename, path.Key("*"), "", tp.Elem()).List()...) default: // all primitive types } - return secretPaths + return resourcePaths +} + +func TestPodConfigmaps(t *testing.T) { + // Stub containing all possible ConfigMap references in a pod. + // The names of the referenced ConfigMaps match struct paths detected by reflection. + pod := &api.Pod{ + Spec: api.PodSpec{ + Containers: []api.Container{{ + EnvFrom: []api.EnvFromSource{{ + ConfigMapRef: &api.ConfigMapEnvSource{ + LocalObjectReference: api.LocalObjectReference{ + Name: "Spec.Containers[*].EnvFrom[*].ConfigMapRef"}}}}, + Env: []api.EnvVar{{ + ValueFrom: &api.EnvVarSource{ + ConfigMapKeyRef: &api.ConfigMapKeySelector{ + LocalObjectReference: api.LocalObjectReference{ + Name: "Spec.Containers[*].Env[*].ValueFrom.ConfigMapKeyRef"}}}}}}}, + InitContainers: []api.Container{{ + EnvFrom: []api.EnvFromSource{{ + ConfigMapRef: &api.ConfigMapEnvSource{ + LocalObjectReference: api.LocalObjectReference{ + Name: "Spec.InitContainers[*].EnvFrom[*].ConfigMapRef"}}}}, + Env: []api.EnvVar{{ + ValueFrom: &api.EnvVarSource{ + ConfigMapKeyRef: &api.ConfigMapKeySelector{ + LocalObjectReference: api.LocalObjectReference{ + Name: "Spec.InitContainers[*].Env[*].ValueFrom.ConfigMapKeyRef"}}}}}}}, + Volumes: []api.Volume{{ + VolumeSource: api.VolumeSource{ + Projected: &api.ProjectedVolumeSource{ + Sources: []api.VolumeProjection{{ + ConfigMap: &api.ConfigMapProjection{ + LocalObjectReference: api.LocalObjectReference{ + Name: "Spec.Volumes[*].VolumeSource.Projected.Sources[*].ConfigMap"}}}}}}}, { + VolumeSource: api.VolumeSource{ + ConfigMap: &api.ConfigMapVolumeSource{ + LocalObjectReference: api.LocalObjectReference{ + Name: "Spec.Volumes[*].VolumeSource.ConfigMap"}}}}}, + }, + } + extractedNames := sets.NewString() + VisitPodConfigmapNames(pod, func(name string) bool { + extractedNames.Insert(name) + return true + }) + + // expectedPaths holds struct paths to fields with "ConfigMap" in the name that are references to ConfigMap API objects. + // every path here should be represented as an example in the Pod stub above, with the ConfigMap name set to the path. + expectedPaths := sets.NewString( + "Spec.Containers[*].EnvFrom[*].ConfigMapRef", + "Spec.Containers[*].Env[*].ValueFrom.ConfigMapKeyRef", + "Spec.InitContainers[*].EnvFrom[*].ConfigMapRef", + "Spec.InitContainers[*].Env[*].ValueFrom.ConfigMapKeyRef", + "Spec.Volumes[*].VolumeSource.Projected.Sources[*].ConfigMap", + "Spec.Volumes[*].VolumeSource.ConfigMap", + ) + collectPaths := collectResourcePaths(t, "ConfigMap", nil, "", reflect.TypeOf(&api.Pod{})) + if missingPaths := expectedPaths.Difference(collectPaths); len(missingPaths) > 0 { + t.Logf("Missing expected paths:\n%s", strings.Join(missingPaths.List(), "\n")) + t.Error("Missing expected paths. Verify VisitPodConfigmapNames() is correctly finding the missing paths, then correct expectedPaths") + } + if extraPaths := collectPaths.Difference(expectedPaths); len(extraPaths) > 0 { + t.Logf("Extra paths:\n%s", strings.Join(extraPaths.List(), "\n")) + t.Error("Extra fields with resource in the name found. Verify VisitPodConfigmapNames() is including these fields if appropriate, then correct expectedPaths") + } + + if missingNames := expectedPaths.Difference(extractedNames); len(missingNames) > 0 { + t.Logf("Missing expected names:\n%s", strings.Join(missingNames.List(), "\n")) + t.Error("Missing expected names. Verify the pod stub above includes these references, then verify VisitPodConfigmapNames() is correctly finding the missing names") + } + if extraNames := extractedNames.Difference(expectedPaths); len(extraNames) > 0 { + t.Logf("Extra names:\n%s", strings.Join(extraNames.List(), "\n")) + t.Error("Extra names extracted. Verify VisitPodConfigmapNames() is correctly extracting resource names") + } } diff --git a/vendor/k8s.io/kubernetes/pkg/api/ref/BUILD b/vendor/k8s.io/kubernetes/pkg/api/ref/BUILD index b891fb41c..f4d23d86f 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/ref/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/ref/BUILD @@ -12,7 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/api/ref", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core: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", @@ -24,7 +25,7 @@ go_library( srcs = ["ref.go"], importpath = "k8s.io/kubernetes/pkg/api/ref", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/api/ref/ref.go b/vendor/k8s.io/kubernetes/pkg/api/ref/ref.go index a60013a44..d6576750a 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/ref/ref.go +++ b/vendor/k8s.io/kubernetes/pkg/api/ref/ref.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) var ( diff --git a/vendor/k8s.io/kubernetes/pkg/api/ref/ref_test.go b/vendor/k8s.io/kubernetes/pkg/api/ref/ref_test.go index 2c5be62e0..f6c63bb14 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/ref/ref_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/ref/ref_test.go @@ -23,7 +23,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" ) type FakeAPIObject struct{} @@ -51,8 +52,8 @@ func TestGetReference(t *testing.T) { // when vendoring kube, if you don't force the set of registered versions (like make test does) // then you run into trouble because the types aren't registered in the scheme by anything. This does the // register manually to allow unit test execution - if _, _, err := api.Scheme.ObjectKinds(&api.Pod{}); err != nil { - api.AddToScheme(api.Scheme) + if _, _, err := legacyscheme.Scheme.ObjectKinds(&api.Pod{}); err != nil { + api.AddToScheme(legacyscheme.Scheme) } table := map[string]struct { @@ -135,7 +136,7 @@ func TestGetReference(t *testing.T) { } for name, item := range table { - ref, err := GetPartialReference(api.Scheme, item.obj, item.fieldPath) + ref, err := GetPartialReference(legacyscheme.Scheme, item.obj, item.fieldPath) if e, a := item.shouldErr, (err != nil); e != a { t.Errorf("%v: expected %v, got %v, err %v", name, e, a, err) continue diff --git a/vendor/k8s.io/kubernetes/pkg/api/resource/BUILD b/vendor/k8s.io/kubernetes/pkg/api/resource/BUILD index d4bb2fac0..f31dbd9db 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/resource/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/resource/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["helpers.go"], importpath = "k8s.io/kubernetes/pkg/api/resource", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", ], ) @@ -35,7 +35,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/api/resource", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/api/resource/helpers.go b/vendor/k8s.io/kubernetes/pkg/api/resource/helpers.go index eecc26ed2..78084393e 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/resource/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/api/resource/helpers.go @@ -22,7 +22,7 @@ import ( "strconv" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // PodRequestsAndLimits returns a dictionary of all defined resources summed up for all diff --git a/vendor/k8s.io/kubernetes/pkg/api/resource/helpers_test.go b/vendor/k8s.io/kubernetes/pkg/api/resource/helpers_test.go index cab005287..7d55c18d8 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/resource/helpers_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/resource/helpers_test.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestResourceHelpers(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/api/service/BUILD b/vendor/k8s.io/kubernetes/pkg/api/service/BUILD index 236edbec5..735bf8d5a 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/service/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/service/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["util.go"], importpath = "k8s.io/kubernetes/pkg/api/service", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/util/net/sets:go_default_library", ], ) @@ -22,7 +22,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/api/service", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/util/net/sets:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/service/util.go b/vendor/k8s.io/kubernetes/pkg/api/service/util.go index 242aab77f..5de5f2765 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/service/util.go +++ b/vendor/k8s.io/kubernetes/pkg/api/service/util.go @@ -18,10 +18,9 @@ package service import ( "fmt" - "strings" - - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" netsets "k8s.io/kubernetes/pkg/util/net/sets" + "strings" ) const ( diff --git a/vendor/k8s.io/kubernetes/pkg/api/service/util_test.go b/vendor/k8s.io/kubernetes/pkg/api/service/util_test.go index c3eb0d1fb..46790a170 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/service/util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/service/util_test.go @@ -20,7 +20,7 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" netsets "k8s.io/kubernetes/pkg/util/net/sets" ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/testapi/BUILD b/vendor/k8s.io/kubernetes/pkg/api/testapi/BUILD index 34f0734d0..2455f3a20 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testapi/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/testapi/BUILD @@ -11,10 +11,7 @@ go_library( srcs = ["testapi.go"], importpath = "k8s.io/kubernetes/pkg/api/testapi", deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/install:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/admission:go_default_library", "//pkg/apis/admission/install:go_default_library", "//pkg/apis/admissionregistration:go_default_library", @@ -31,6 +28,8 @@ go_library( "//pkg/apis/certificates:go_default_library", "//pkg/apis/certificates/install:go_default_library", "//pkg/apis/componentconfig/install:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/install:go_default_library", "//pkg/apis/imagepolicy:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/api/testapi/testapi.go b/vendor/k8s.io/kubernetes/pkg/api/testapi/testapi.go index 340a58a98..95973def6 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testapi/testapi.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testapi/testapi.go @@ -34,8 +34,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer/recognizer" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/admission" "k8s.io/kubernetes/pkg/apis/admissionregistration" "k8s.io/kubernetes/pkg/apis/apps" @@ -43,6 +42,7 @@ import ( "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/certificates" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/imagepolicy" "k8s.io/kubernetes/pkg/apis/networking" @@ -52,8 +52,6 @@ import ( "k8s.io/kubernetes/pkg/apis/settings" "k8s.io/kubernetes/pkg/apis/storage" - _ "k8s.io/kubernetes/federation/apis/federation/install" - _ "k8s.io/kubernetes/pkg/api/install" _ "k8s.io/kubernetes/pkg/apis/admission/install" _ "k8s.io/kubernetes/pkg/apis/admissionregistration/install" _ "k8s.io/kubernetes/pkg/apis/apps/install" @@ -63,6 +61,7 @@ import ( _ "k8s.io/kubernetes/pkg/apis/batch/install" _ "k8s.io/kubernetes/pkg/apis/certificates/install" _ "k8s.io/kubernetes/pkg/apis/componentconfig/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/extensions/install" _ "k8s.io/kubernetes/pkg/apis/imagepolicy/install" _ "k8s.io/kubernetes/pkg/apis/networking/install" @@ -82,7 +81,6 @@ var ( Extensions TestGroup Apps TestGroup Policy TestGroup - Federation TestGroup Rbac TestGroup Certificates TestGroup Scheduling TestGroup @@ -110,7 +108,7 @@ func init() { if err != nil { panic(err) } - serializer, ok = runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), mediaType) + serializer, ok = runtime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), mediaType) if !ok { panic(fmt.Sprintf("no serializer for %s", apiMediaType)) } @@ -122,7 +120,7 @@ func init() { if err != nil { panic(err) } - storageSerializer, ok = runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), mediaType) + storageSerializer, ok = runtime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), mediaType) if !ok { panic(fmt.Sprintf("no serializer for %s", storageMediaType)) } @@ -143,186 +141,177 @@ func init() { Groups[groupVersion.Group] = TestGroup{ externalGroupVersion: groupVersion, internalGroupVersion: internalGroupVersion, - internalTypes: api.Scheme.KnownTypes(internalGroupVersion), - externalTypes: api.Scheme.KnownTypes(groupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(internalGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(groupVersion), } } } if _, ok := Groups[api.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: api.GroupName, Version: api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: api.GroupName, Version: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version} Groups[api.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: api.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(api.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(api.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[extensions.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: extensions.GroupName, Version: api.Registry.GroupOrDie(extensions.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: extensions.GroupName, Version: legacyscheme.Registry.GroupOrDie(extensions.GroupName).GroupVersion.Version} Groups[extensions.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: extensions.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(extensions.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(extensions.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[autoscaling.GroupName]; !ok { internalTypes := make(map[string]reflect.Type) - for k, t := range api.Scheme.KnownTypes(extensions.SchemeGroupVersion) { + for k, t := range legacyscheme.Scheme.KnownTypes(extensions.SchemeGroupVersion) { if k == "Scale" { continue } internalTypes[k] = t } - externalGroupVersion := schema.GroupVersion{Group: autoscaling.GroupName, Version: api.Registry.GroupOrDie(autoscaling.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: autoscaling.GroupName, Version: legacyscheme.Registry.GroupOrDie(autoscaling.GroupName).GroupVersion.Version} Groups[autoscaling.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: extensions.SchemeGroupVersion, internalTypes: internalTypes, - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[autoscaling.GroupName+"IntraGroup"]; !ok { internalTypes := make(map[string]reflect.Type) - for k, t := range api.Scheme.KnownTypes(extensions.SchemeGroupVersion) { + for k, t := range legacyscheme.Scheme.KnownTypes(extensions.SchemeGroupVersion) { if k == "Scale" { internalTypes[k] = t break } } - externalGroupVersion := schema.GroupVersion{Group: autoscaling.GroupName, Version: api.Registry.GroupOrDie(autoscaling.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: autoscaling.GroupName, Version: legacyscheme.Registry.GroupOrDie(autoscaling.GroupName).GroupVersion.Version} Groups[autoscaling.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: autoscaling.SchemeGroupVersion, internalTypes: internalTypes, - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[batch.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: batch.GroupName, Version: api.Registry.GroupOrDie(batch.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: batch.GroupName, Version: legacyscheme.Registry.GroupOrDie(batch.GroupName).GroupVersion.Version} Groups[batch.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: batch.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(batch.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(batch.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[apps.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: apps.GroupName, Version: api.Registry.GroupOrDie(apps.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: apps.GroupName, Version: legacyscheme.Registry.GroupOrDie(apps.GroupName).GroupVersion.Version} Groups[apps.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: apps.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(apps.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(apps.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[policy.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: policy.GroupName, Version: api.Registry.GroupOrDie(policy.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: policy.GroupName, Version: legacyscheme.Registry.GroupOrDie(policy.GroupName).GroupVersion.Version} Groups[policy.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: policy.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(policy.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), - } - } - if _, ok := Groups[federation.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: federation.GroupName, Version: api.Registry.GroupOrDie(federation.GroupName).GroupVersion.Version} - Groups[federation.GroupName] = TestGroup{ - externalGroupVersion: externalGroupVersion, - internalGroupVersion: federation.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(federation.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(policy.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[rbac.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: rbac.GroupName, Version: api.Registry.GroupOrDie(rbac.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: rbac.GroupName, Version: legacyscheme.Registry.GroupOrDie(rbac.GroupName).GroupVersion.Version} Groups[rbac.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: rbac.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(rbac.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(rbac.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[scheduling.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: scheduling.GroupName, Version: api.Registry.GroupOrDie(scheduling.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: scheduling.GroupName, Version: legacyscheme.Registry.GroupOrDie(scheduling.GroupName).GroupVersion.Version} Groups[scheduling.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: scheduling.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(scheduling.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(scheduling.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[settings.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: settings.GroupName, Version: api.Registry.GroupOrDie(settings.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: settings.GroupName, Version: legacyscheme.Registry.GroupOrDie(settings.GroupName).GroupVersion.Version} Groups[settings.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: settings.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(settings.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(settings.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[storage.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: storage.GroupName, Version: api.Registry.GroupOrDie(storage.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: storage.GroupName, Version: legacyscheme.Registry.GroupOrDie(storage.GroupName).GroupVersion.Version} Groups[storage.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: storage.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(storage.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(storage.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[certificates.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: certificates.GroupName, Version: api.Registry.GroupOrDie(certificates.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: certificates.GroupName, Version: legacyscheme.Registry.GroupOrDie(certificates.GroupName).GroupVersion.Version} Groups[certificates.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: certificates.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(certificates.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(certificates.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[imagepolicy.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: imagepolicy.GroupName, Version: api.Registry.GroupOrDie(imagepolicy.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: imagepolicy.GroupName, Version: legacyscheme.Registry.GroupOrDie(imagepolicy.GroupName).GroupVersion.Version} Groups[imagepolicy.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: imagepolicy.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(imagepolicy.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(imagepolicy.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[authorization.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: authorization.GroupName, Version: api.Registry.GroupOrDie(authorization.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: authorization.GroupName, Version: legacyscheme.Registry.GroupOrDie(authorization.GroupName).GroupVersion.Version} Groups[authorization.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: authorization.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(authorization.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(authorization.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[admissionregistration.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: admissionregistration.GroupName, Version: api.Registry.GroupOrDie(admissionregistration.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: admissionregistration.GroupName, Version: legacyscheme.Registry.GroupOrDie(admissionregistration.GroupName).GroupVersion.Version} Groups[admissionregistration.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: admissionregistration.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(admissionregistration.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(admissionregistration.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[admission.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: admission.GroupName, Version: api.Registry.GroupOrDie(admission.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: admission.GroupName, Version: legacyscheme.Registry.GroupOrDie(admission.GroupName).GroupVersion.Version} Groups[admission.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: admission.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(admission.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(admission.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } if _, ok := Groups[networking.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: networking.GroupName, Version: api.Registry.GroupOrDie(networking.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: networking.GroupName, Version: legacyscheme.Registry.GroupOrDie(networking.GroupName).GroupVersion.Version} Groups[networking.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: networking.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(networking.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(networking.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } @@ -333,7 +322,6 @@ func init() { Policy = Groups[policy.GroupName] Certificates = Groups[certificates.GroupName] Extensions = Groups[extensions.GroupName] - Federation = Groups[federation.GroupName] Rbac = Groups[rbac.GroupName] Scheduling = Groups[scheduling.GroupName] Settings = Groups[settings.GroupName] @@ -373,14 +361,14 @@ func (g TestGroup) ExternalTypes() map[string]reflect.Type { // KUBE_TEST_API_TYPE env var. func (g TestGroup) Codec() runtime.Codec { if serializer.Serializer == nil { - return api.Codecs.LegacyCodec(g.externalGroupVersion) + return legacyscheme.Codecs.LegacyCodec(g.externalGroupVersion) } - return api.Codecs.CodecForVersions(serializer.Serializer, api.Codecs.UniversalDeserializer(), schema.GroupVersions{g.externalGroupVersion}, nil) + return legacyscheme.Codecs.CodecForVersions(serializer.Serializer, legacyscheme.Codecs.UniversalDeserializer(), schema.GroupVersions{g.externalGroupVersion}, nil) } // NegotiatedSerializer returns the negotiated serializer for the server. func (g TestGroup) NegotiatedSerializer() runtime.NegotiatedSerializer { - return api.Codecs + return legacyscheme.Codecs } func StorageMediaType() string { @@ -393,7 +381,7 @@ func (g TestGroup) StorageCodec() runtime.Codec { s := storageSerializer.Serializer if s == nil { - return api.Codecs.LegacyCodec(g.externalGroupVersion) + return legacyscheme.Codecs.LegacyCodec(g.externalGroupVersion) } // etcd2 only supports string data - we must wrap any result before returning @@ -401,15 +389,15 @@ func (g TestGroup) StorageCodec() runtime.Codec { if !storageSerializer.EncodesAsText { s = runtime.NewBase64Serializer(s, s) } - ds := recognizer.NewDecoder(s, api.Codecs.UniversalDeserializer()) + ds := recognizer.NewDecoder(s, legacyscheme.Codecs.UniversalDeserializer()) - return api.Codecs.CodecForVersions(s, ds, schema.GroupVersions{g.externalGroupVersion}, nil) + return legacyscheme.Codecs.CodecForVersions(s, ds, schema.GroupVersions{g.externalGroupVersion}, nil) } -// Converter returns the api.Scheme for the API version to test against, as set by the +// Converter returns the legacyscheme.Scheme for the API version to test against, as set by the // KUBE_TEST_API env var. func (g TestGroup) Converter() runtime.ObjectConvertor { - interfaces, err := api.Registry.GroupOrDie(g.externalGroupVersion.Group).InterfacesFor(g.externalGroupVersion) + interfaces, err := legacyscheme.Registry.GroupOrDie(g.externalGroupVersion.Group).InterfacesFor(g.externalGroupVersion) if err != nil { panic(err) } @@ -419,7 +407,7 @@ func (g TestGroup) Converter() runtime.ObjectConvertor { // MetadataAccessor returns the MetadataAccessor for the API version to test against, // as set by the KUBE_TEST_API env var. func (g TestGroup) MetadataAccessor() meta.MetadataAccessor { - interfaces, err := api.Registry.GroupOrDie(g.externalGroupVersion.Group).InterfacesFor(g.externalGroupVersion) + interfaces, err := legacyscheme.Registry.GroupOrDie(g.externalGroupVersion.Group).InterfacesFor(g.externalGroupVersion) if err != nil { panic(err) } @@ -493,9 +481,9 @@ func (g TestGroup) SubResourcePath(resource, namespace, name, sub string) string return path } -// RESTMapper returns RESTMapper in api.Registry. +// RESTMapper returns RESTMapper in legacyscheme.Registry. func (g TestGroup) RESTMapper() meta.RESTMapper { - return api.Registry.RESTMapper() + return legacyscheme.Registry.RESTMapper() } // ExternalGroupVersions returns all external group versions allowed for the server. @@ -510,7 +498,7 @@ func ExternalGroupVersions() schema.GroupVersions { // GetCodecForObject gets codec based on runtime.Object func GetCodecForObject(obj runtime.Object) (runtime.Codec, error) { - kinds, _, err := api.Scheme.ObjectKinds(obj) + kinds, _, err := legacyscheme.Scheme.ObjectKinds(obj) if err != nil { return nil, fmt.Errorf("unexpected encoding error: %v", err) } @@ -521,13 +509,13 @@ func GetCodecForObject(obj runtime.Object) (runtime.Codec, error) { continue } - if api.Scheme.Recognizes(kind) { + if legacyscheme.Scheme.Recognizes(kind) { return group.Codec(), nil } } // Codec used for unversioned types - if api.Scheme.Recognizes(kind) { - serializer, ok := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), runtime.ContentTypeJSON) + if legacyscheme.Scheme.Recognizes(kind) { + serializer, ok := runtime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), runtime.ContentTypeJSON) if !ok { return nil, fmt.Errorf("no serializer registered for json") } diff --git a/vendor/k8s.io/kubernetes/pkg/api/testapi/testapi_test.go b/vendor/k8s.io/kubernetes/pkg/api/testapi/testapi_test.go index b7081f281..7de059760 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testapi/testapi_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testapi/testapi_test.go @@ -74,6 +74,36 @@ var status = &metav1.Status{ Message: "", } +func TestSelfLink(t *testing.T) { + testCases := []struct { + resource string + name string + expected string + }{ + {"resource", "name", "/api/" + Default.GroupVersion().Version + "/resource/name"}, + {"resource", "", "/api/" + Default.GroupVersion().Version + "/resource"}, + } + for _, item := range testCases { + if actual := Default.SelfLink(item.resource, item.name); actual != item.expected { + t.Errorf("Expected: %s, got: %s for resource: %s and name: %s", item.expected, actual, item.resource, item.name) + } + } + + testGroupCases := []struct { + resource string + name string + expected string + }{ + {"resource", "name", "/apis/" + Admission.GroupVersion().Group + "/" + Admission.GroupVersion().Version + "/resource/name"}, + {"resource", "", "/apis/" + Admission.GroupVersion().Group + "/" + Admission.GroupVersion().Version + "/resource"}, + } + for _, item := range testGroupCases { + if actual := Admission.SelfLink(item.resource, item.name); actual != item.expected { + t.Errorf("Expected: %s, got: %s for resource: %s and name: %s", item.expected, actual, item.resource, item.name) + } + } +} + func TestV1EncodeDecodeStatus(t *testing.T) { v1Codec := Default.Codec() diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/BUILD b/vendor/k8s.io/kubernetes/pkg/api/testing/BUILD index f0146ea65..149b71937 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/BUILD @@ -17,13 +17,14 @@ go_library( importpath = "k8s.io/kubernetes/pkg/api/testing", deps = [ "//cmd/kubeadm/app/apis/kubeadm/fuzzer:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/fuzzer:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/admissionregistration/fuzzer:go_default_library", "//pkg/apis/apps/fuzzer:go_default_library", "//pkg/apis/autoscaling/fuzzer:go_default_library", "//pkg/apis/batch/fuzzer:go_default_library", "//pkg/apis/certificates/fuzzer:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/fuzzer:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/fuzzer:go_default_library", "//pkg/apis/extensions/v1beta1:go_default_library", @@ -74,12 +75,13 @@ go_test( importpath = "k8s.io/kubernetes/pkg/api/testing", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing/compat:go_default_library", - "//pkg/api/v1:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", + "//pkg/apis/core/v1:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/v1beta1:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", @@ -93,6 +95,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/api/testing/fuzzer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/backward_compatibility_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/backward_compatibility_test.go index 82ac3ca81..ad536de5a 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/backward_compatibility_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/backward_compatibility_test.go @@ -22,11 +22,11 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testing/compat" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" - _ "k8s.io/kubernetes/pkg/api/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestCompatibility_v1_PodSecurityContext(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/compat/BUILD b/vendor/k8s.io/kubernetes/pkg/api/testing/compat/BUILD index ee9369139..b08e25c8d 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/compat/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/compat/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["compatibility_tester.go"], importpath = "k8s.io/kubernetes/pkg/api/testing/compat", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/printers:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/compat/compatibility_tester.go b/vendor/k8s.io/kubernetes/pkg/api/testing/compat/compatibility_tester.go index 953eda803..5fbdc01e3 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/compat/compatibility_tester.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/compat/compatibility_tester.go @@ -29,7 +29,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/printers" ) @@ -48,7 +48,7 @@ func TestCompatibility( ) { // Decode - codec := api.Codecs.LegacyCodec(version) + codec := legacyscheme.Codecs.LegacyCodec(version) obj, err := runtime.Decode(codec, input) if err != nil { t.Fatalf("Unexpected error: %v", err) diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/conversion.go b/vendor/k8s.io/kubernetes/pkg/api/testing/conversion.go index e0609410c..5ff3e9d76 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/conversion.go @@ -20,7 +20,7 @@ import ( "testing" "k8s.io/apimachinery/pkg/fields" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // TestSelectableFieldLabelConversions verifies that given resource have field @@ -46,7 +46,7 @@ func TestSelectableFieldLabelConversionsOfKind(t *testing.T, apiVersion string, t.Logf("FIXME: \"name\" is deprecated by \"metadata.name\", it should be removed from selectable fields of kind=%s", kind) continue } - newLabel, newValue, err := api.Scheme.ConvertFieldLabel(apiVersion, kind, label, value) + newLabel, newValue, err := legacyscheme.Scheme.ConvertFieldLabel(apiVersion, kind, label, value) if err != nil { t.Errorf("kind=%s label=%s: got unexpected error: %v", kind, label, err) } else { @@ -64,7 +64,7 @@ func TestSelectableFieldLabelConversionsOfKind(t *testing.T, apiVersion string, } for _, label := range badFieldLabels { - _, _, err := api.Scheme.ConvertFieldLabel(apiVersion, kind, label, "value") + _, _, err := legacyscheme.Scheme.ConvertFieldLabel(apiVersion, kind, label, "value") if err == nil { t.Errorf("kind=%s label=%s: got unexpected non-error", kind, label) } diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/conversion_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/conversion_test.go index a594431ec..3cb174fcd 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/conversion_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/conversion_test.go @@ -25,12 +25,13 @@ import ( "k8s.io/apimachinery/pkg/api/testing/fuzzer" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" ) func BenchmarkPodConversion(b *testing.B) { - apiObjectFuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs) + apiObjectFuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), legacyscheme.Codecs) items := make([]api.Pod, 4) for i := range items { apiObjectFuzzer.Fuzz(&items[i]) @@ -42,10 +43,10 @@ func BenchmarkPodConversion(b *testing.B) { items = append(items, benchmarkPod) width := len(items) - scheme := api.Scheme + scheme := legacyscheme.Scheme for i := 0; i < b.N; i++ { pod := &items[i%width] - versionedObj, err := scheme.UnsafeConvertToVersion(pod, api.Registry.GroupOrDie(api.GroupName).GroupVersion) + versionedObj, err := scheme.UnsafeConvertToVersion(pod, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion) if err != nil { b.Fatalf("Conversion error: %v", err) } @@ -65,11 +66,11 @@ func BenchmarkNodeConversion(b *testing.B) { b.Fatalf("Unexpected error decoding node: %v", err) } - scheme := api.Scheme + scheme := legacyscheme.Scheme var result *api.Node b.ResetTimer() for i := 0; i < b.N; i++ { - versionedObj, err := scheme.UnsafeConvertToVersion(&node, api.Registry.GroupOrDie(api.GroupName).GroupVersion) + versionedObj, err := scheme.UnsafeConvertToVersion(&node, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion) if err != nil { b.Fatalf("Conversion error: %v", err) } @@ -95,11 +96,11 @@ func BenchmarkReplicationControllerConversion(b *testing.B) { b.Fatalf("Unexpected error decoding node: %v", err) } - scheme := api.Scheme + scheme := legacyscheme.Scheme var result *api.ReplicationController b.ResetTimer() for i := 0; i < b.N; i++ { - versionedObj, err := scheme.UnsafeConvertToVersion(&replicationController, api.Registry.GroupOrDie(api.GroupName).GroupVersion) + versionedObj, err := scheme.UnsafeConvertToVersion(&replicationController, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion) if err != nil { b.Fatalf("Conversion error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/copy_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/copy_test.go index e1002706d..103246bb3 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/copy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/copy_test.go @@ -28,15 +28,16 @@ import ( "k8s.io/apimachinery/pkg/api/testing/roundtrip" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestDeepCopyApiObjects(t *testing.T) { for i := 0; i < *roundtrip.FuzzIters; i++ { - for _, version := range []schema.GroupVersion{testapi.Default.InternalGroupVersion(), api.Registry.GroupOrDie(api.GroupName).GroupVersion} { - f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(rand.Int63()), api.Codecs) - for kind := range api.Scheme.KnownTypes(version) { + for _, version := range []schema.GroupVersion{testapi.Default.InternalGroupVersion(), legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion} { + f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(rand.Int63()), legacyscheme.Codecs) + for kind := range legacyscheme.Scheme.KnownTypes(version) { doDeepCopyTest(t, version.WithKind(kind), f) } } @@ -44,7 +45,7 @@ func TestDeepCopyApiObjects(t *testing.T) { } func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *fuzz.Fuzzer) { - item, err := api.Scheme.New(kind) + item, err := legacyscheme.Scheme.New(kind) if err != nil { t.Fatalf("Could not create a %v: %s", kind, err) } @@ -55,7 +56,7 @@ func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *fuzz.Fuzzer) } prefuzzData := &bytes.Buffer{} - if err := api.Codecs.LegacyCodec(kind.GroupVersion()).Encode(item, prefuzzData); err != nil { + if err := legacyscheme.Codecs.LegacyCodec(kind.GroupVersion()).Encode(item, prefuzzData); err != nil { t.Errorf("Could not encode a %v: %s", kind, err) return } @@ -64,7 +65,7 @@ func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *fuzz.Fuzzer) f.Fuzz(itemCopy) postfuzzData := &bytes.Buffer{} - if err := api.Codecs.LegacyCodec(kind.GroupVersion()).Encode(item, postfuzzData); err != nil { + if err := legacyscheme.Codecs.LegacyCodec(kind.GroupVersion()).Encode(item, postfuzzData); err != nil { t.Errorf("Could not encode a %v: %s", kind, err) return } @@ -78,8 +79,8 @@ func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *fuzz.Fuzzer) func TestDeepCopySingleType(t *testing.T) { for i := 0; i < *roundtrip.FuzzIters; i++ { - for _, version := range []schema.GroupVersion{testapi.Default.InternalGroupVersion(), api.Registry.GroupOrDie(api.GroupName).GroupVersion} { - f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(rand.Int63()), api.Codecs) + for _, version := range []schema.GroupVersion{testapi.Default.InternalGroupVersion(), legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion} { + f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(rand.Int63()), legacyscheme.Codecs) doDeepCopyTest(t, version.WithKind("Pod"), f) } } diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/deep_copy_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/deep_copy_test.go index a9580235e..27c9f42f6 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/deep_copy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/deep_copy_test.go @@ -25,8 +25,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" ) func parseTimeOrDie(ts string) metav1.Time { diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/defaulting_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/defaulting_test.go index a54d49a21..02249962b 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/defaulting_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/defaulting_test.go @@ -31,7 +31,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) type orderedGroupVersionKinds []schema.GroupVersionKind @@ -74,6 +74,8 @@ func TestDefaulting(t *testing.T) { {Group: "apps", Version: "v1beta1", Kind: "StatefulSetList"}: {}, {Group: "apps", Version: "v1beta2", Kind: "StatefulSet"}: {}, {Group: "apps", Version: "v1beta2", Kind: "StatefulSetList"}: {}, + {Group: "apps", Version: "v1", Kind: "StatefulSet"}: {}, + {Group: "apps", Version: "v1", Kind: "StatefulSetList"}: {}, {Group: "autoscaling", Version: "v1", Kind: "HorizontalPodAutoscaler"}: {}, {Group: "autoscaling", Version: "v1", Kind: "HorizontalPodAutoscalerList"}: {}, {Group: "autoscaling", Version: "v2beta1", Kind: "HorizontalPodAutoscaler"}: {}, @@ -95,48 +97,54 @@ func TestDefaulting(t *testing.T) { // This object contains only int fields which currently breaks the defaulting test because // it's pretty stupid. Once we add non integer fields, we should uncomment this. // {Group: "kubeadm.k8s.io", Version: "v1alpha1", Kind: "NodeConfiguration"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "DaemonSet"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "DaemonSetList"}: {}, - {Group: "apps", Version: "v1beta2", Kind: "DaemonSet"}: {}, - {Group: "apps", Version: "v1beta2", Kind: "DaemonSetList"}: {}, - {Group: "apps", Version: "v1", Kind: "DaemonSet"}: {}, - {Group: "apps", Version: "v1", Kind: "DaemonSetList"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "Deployment"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "DeploymentList"}: {}, - {Group: "apps", Version: "v1beta1", Kind: "Deployment"}: {}, - {Group: "apps", Version: "v1beta1", Kind: "DeploymentList"}: {}, - {Group: "apps", Version: "v1beta2", Kind: "Deployment"}: {}, - {Group: "apps", Version: "v1beta2", Kind: "DeploymentList"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "PodSecurityPolicy"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "PodSecurityPolicyList"}: {}, - {Group: "apps", Version: "v1beta2", Kind: "ReplicaSet"}: {}, - {Group: "apps", Version: "v1beta2", Kind: "ReplicaSetList"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "ReplicaSet"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "ReplicaSetList"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "NetworkPolicy"}: {}, - {Group: "extensions", Version: "v1beta1", Kind: "NetworkPolicyList"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1alpha1", Kind: "ClusterRoleBinding"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1alpha1", Kind: "ClusterRoleBindingList"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1alpha1", Kind: "RoleBinding"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1alpha1", Kind: "RoleBindingList"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "ClusterRoleBinding"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "ClusterRoleBindingList"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "RoleBinding"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "RoleBindingList"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRoleBinding"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRoleBindingList"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBinding"}: {}, - {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBindingList"}: {}, - {Group: "settings.k8s.io", Version: "v1alpha1", Kind: "PodPreset"}: {}, - {Group: "settings.k8s.io", Version: "v1alpha1", Kind: "PodPresetList"}: {}, - {Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "ExternalAdmissionHookConfiguration"}: {}, - {Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "ExternalAdmissionHookConfigurationList"}: {}, - {Group: "networking.k8s.io", Version: "v1", Kind: "NetworkPolicy"}: {}, - {Group: "networking.k8s.io", Version: "v1", Kind: "NetworkPolicyList"}: {}, - {Group: "storage.k8s.io", Version: "v1beta1", Kind: "StorageClass"}: {}, - {Group: "storage.k8s.io", Version: "v1beta1", Kind: "StorageClassList"}: {}, - {Group: "storage.k8s.io", Version: "v1", Kind: "StorageClass"}: {}, - {Group: "storage.k8s.io", Version: "v1", Kind: "StorageClassList"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "DaemonSet"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "DaemonSetList"}: {}, + {Group: "apps", Version: "v1beta2", Kind: "DaemonSet"}: {}, + {Group: "apps", Version: "v1beta2", Kind: "DaemonSetList"}: {}, + {Group: "apps", Version: "v1", Kind: "DaemonSet"}: {}, + {Group: "apps", Version: "v1", Kind: "DaemonSetList"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "Deployment"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "DeploymentList"}: {}, + {Group: "apps", Version: "v1beta1", Kind: "Deployment"}: {}, + {Group: "apps", Version: "v1beta1", Kind: "DeploymentList"}: {}, + {Group: "apps", Version: "v1beta2", Kind: "Deployment"}: {}, + {Group: "apps", Version: "v1beta2", Kind: "DeploymentList"}: {}, + {Group: "apps", Version: "v1", Kind: "Deployment"}: {}, + {Group: "apps", Version: "v1", Kind: "DeploymentList"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "PodSecurityPolicy"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "PodSecurityPolicyList"}: {}, + {Group: "apps", Version: "v1beta2", Kind: "ReplicaSet"}: {}, + {Group: "apps", Version: "v1beta2", Kind: "ReplicaSetList"}: {}, + {Group: "apps", Version: "v1", Kind: "ReplicaSet"}: {}, + {Group: "apps", Version: "v1", Kind: "ReplicaSetList"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "ReplicaSet"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "ReplicaSetList"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "NetworkPolicy"}: {}, + {Group: "extensions", Version: "v1beta1", Kind: "NetworkPolicyList"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1alpha1", Kind: "ClusterRoleBinding"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1alpha1", Kind: "ClusterRoleBindingList"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1alpha1", Kind: "RoleBinding"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1alpha1", Kind: "RoleBindingList"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "ClusterRoleBinding"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "ClusterRoleBindingList"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "RoleBinding"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "RoleBindingList"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRoleBinding"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRoleBindingList"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBinding"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBindingList"}: {}, + {Group: "settings.k8s.io", Version: "v1alpha1", Kind: "PodPreset"}: {}, + {Group: "settings.k8s.io", Version: "v1alpha1", Kind: "PodPresetList"}: {}, + {Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "ValidatingWebhookConfiguration"}: {}, + {Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "ValidatingWebhookConfigurationList"}: {}, + {Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "MutatingWebhookConfiguration"}: {}, + {Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "MutatingWebhookConfigurationList"}: {}, + {Group: "networking.k8s.io", Version: "v1", Kind: "NetworkPolicy"}: {}, + {Group: "networking.k8s.io", Version: "v1", Kind: "NetworkPolicyList"}: {}, + {Group: "storage.k8s.io", Version: "v1beta1", Kind: "StorageClass"}: {}, + {Group: "storage.k8s.io", Version: "v1beta1", Kind: "StorageClassList"}: {}, + {Group: "storage.k8s.io", Version: "v1", Kind: "StorageClass"}: {}, + {Group: "storage.k8s.io", Version: "v1", Kind: "StorageClassList"}: {}, } f := fuzz.New().NilChance(.5).NumElements(1, 1).RandSource(rand.NewSource(1)) @@ -157,7 +165,7 @@ func TestDefaulting(t *testing.T) { }, ) - scheme := api.Scheme + scheme := legacyscheme.Scheme var testTypes orderedGroupVersionKinds for gvk := range scheme.AllKnownTypes() { if gvk.Version == runtime.APIVersionInternal { @@ -216,7 +224,7 @@ func BenchmarkPodDefaulting(b *testing.B) { f.Fuzz(&items[i]) } - scheme := api.Scheme + scheme := legacyscheme.Scheme b.ResetTimer() for i := 0; i < b.N; i++ { pod := &items[i%len(items)] diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/fuzzer.go b/vendor/k8s.io/kubernetes/pkg/api/testing/fuzzer.go index 8fc37898d..868b4040b 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/fuzzer.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/fuzzer.go @@ -28,13 +28,13 @@ import ( "k8s.io/apimachinery/pkg/runtime" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" kubeadmfuzzer "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer" - "k8s.io/kubernetes/pkg/api" - corefuzzer "k8s.io/kubernetes/pkg/api/fuzzer" admissionregistrationfuzzer "k8s.io/kubernetes/pkg/apis/admissionregistration/fuzzer" appsfuzzer "k8s.io/kubernetes/pkg/apis/apps/fuzzer" autoscalingfuzzer "k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer" batchfuzzer "k8s.io/kubernetes/pkg/apis/batch/fuzzer" certificatesfuzzer "k8s.io/kubernetes/pkg/apis/certificates/fuzzer" + api "k8s.io/kubernetes/pkg/apis/core" + corefuzzer "k8s.io/kubernetes/pkg/apis/core/fuzzer" "k8s.io/kubernetes/pkg/apis/extensions" extensionsfuzzer "k8s.io/kubernetes/pkg/apis/extensions/fuzzer" extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/meta_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/meta_test.go index 32a6cc67f..d7a62798c 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/meta_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/meta_test.go @@ -24,16 +24,16 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) var _ metav1.Object = &metav1.ObjectMeta{} func TestAccessorImplementations(t *testing.T) { - for _, gv := range api.Registry.EnabledVersions() { + for _, gv := range legacyscheme.Registry.EnabledVersions() { internalGV := schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal} for _, gv := range []schema.GroupVersion{gv, internalGV} { - for kind, knownType := range api.Scheme.KnownTypes(gv) { + for kind, knownType := range legacyscheme.Scheme.KnownTypes(gv) { value := reflect.New(knownType) obj := value.Interface() if _, ok := obj.(runtime.Object); !ok { diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/pod_specs.go b/vendor/k8s.io/kubernetes/pkg/api/testing/pod_specs.go index 2064532df..688788dce 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/pod_specs.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/pod_specs.go @@ -18,7 +18,7 @@ package testing import ( "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // DeepEqualSafePodSpec returns a PodSpec which is ready to be used with apiequality.Semantic.DeepEqual diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_proto_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_proto_test.go index 9e3b04095..45c90e818 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_proto_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_proto_test.go @@ -33,16 +33,17 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer/protobuf" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" _ "k8s.io/kubernetes/pkg/apis/extensions" _ "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" ) func TestUniversalDeserializer(t *testing.T) { expected := &v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "test"}} - d := api.Codecs.UniversalDeserializer() + d := legacyscheme.Codecs.UniversalDeserializer() for _, mediaType := range []string{"application/json", "application/yaml", "application/vnd.kubernetes.protobuf"} { - info, ok := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), mediaType) + info, ok := runtime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), mediaType) if !ok { t.Fatal(mediaType) } @@ -61,7 +62,7 @@ func TestUniversalDeserializer(t *testing.T) { } func TestAllFieldsHaveTags(t *testing.T) { - for gvk, obj := range api.Scheme.AllKnownTypes() { + for gvk, obj := range legacyscheme.Scheme.AllKnownTypes() { if gvk.Version == runtime.APIVersionInternal { // internal versions are not serialized to protobuf continue @@ -97,7 +98,7 @@ func fieldsHaveProtobufTags(obj reflect.Type) error { func TestProtobufRoundTrip(t *testing.T) { obj := &v1.Pod{} - fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs).Fuzz(obj) + fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), legacyscheme.Codecs).Fuzz(obj) // InitContainers are turned into annotations by conversion. obj.Spec.InitContainers = nil obj.Status.InitContainerStatuses = nil @@ -137,12 +138,12 @@ func BenchmarkEncodeCodecFromInternalProtobuf(b *testing.B) { width := len(items) encodable := make([]api.Pod, width) for i := range items { - if err := api.Scheme.Convert(&items[i], &encodable[i], nil); err != nil { + if err := legacyscheme.Scheme.Convert(&items[i], &encodable[i], nil); err != nil { b.Fatal(err) } } s := protobuf.NewSerializer(nil, nil, "application/arbitrary.content.type") - codec := api.Codecs.EncoderForVersion(s, v1.SchemeGroupVersion) + codec := legacyscheme.Codecs.EncoderForVersion(s, v1.SchemeGroupVersion) b.ResetTimer() for i := 0; i < b.N; i++ { if _, err := runtime.Encode(codec, &encodable[i%width]); err != nil { @@ -169,8 +170,8 @@ func BenchmarkEncodeProtobufGeneratedMarshal(b *testing.B) { func BenchmarkDecodeCodecToInternalProtobuf(b *testing.B) { items := benchmarkItems(b) width := len(items) - s := protobuf.NewSerializer(api.Scheme, api.Scheme, "application/arbitrary.content.type") - encoder := api.Codecs.EncoderForVersion(s, v1.SchemeGroupVersion) + s := protobuf.NewSerializer(legacyscheme.Scheme, legacyscheme.Scheme, "application/arbitrary.content.type") + encoder := legacyscheme.Codecs.EncoderForVersion(s, v1.SchemeGroupVersion) var encoded [][]byte for i := range items { data, err := runtime.Encode(encoder, &items[i]) @@ -180,7 +181,7 @@ func BenchmarkDecodeCodecToInternalProtobuf(b *testing.B) { encoded = append(encoded, data) } - decoder := api.Codecs.DecoderToVersion(s, api.SchemeGroupVersion) + decoder := legacyscheme.Codecs.DecoderToVersion(s, api.SchemeGroupVersion) b.ResetTimer() for i := 0; i < b.N; i++ { if _, err := runtime.Decode(decoder, encoded[i%width]); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_test.go index ab139c88f..d47fad73f 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/serialization_test.go @@ -43,9 +43,10 @@ import ( "k8s.io/apimachinery/pkg/util/diff" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/watch" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/apis/extensions" k8s_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" ) @@ -53,7 +54,7 @@ import ( // fuzzInternalObject fuzzes an arbitrary runtime object using the appropriate // fuzzer registered with the apitesting package. func fuzzInternalObject(t *testing.T, forVersion schema.GroupVersion, item runtime.Object, seed int64) runtime.Object { - fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), api.Codecs).Fuzz(item) + fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), legacyscheme.Codecs).Fuzz(item) j, err := meta.TypeAccessor(item) if err != nil { @@ -87,11 +88,11 @@ func Convert_v1beta1_ReplicaSet_to_api_ReplicationController(in *v1beta1.Replica return err } - return k8s_api_v1.Convert_v1_ReplicationController_To_api_ReplicationController(intermediate2, out, s) + return k8s_api_v1.Convert_v1_ReplicationController_To_core_ReplicationController(intermediate2, out, s) } func TestSetControllerConversion(t *testing.T) { - if err := api.Scheme.AddConversionFuncs(Convert_v1beta1_ReplicaSet_to_api_ReplicationController); err != nil { + if err := legacyscheme.Scheme.AddConversionFuncs(Convert_v1beta1_ReplicaSet_to_api_ReplicationController); err != nil { t.Fatal(err) } @@ -103,14 +104,23 @@ func TestSetControllerConversion(t *testing.T) { fuzzInternalObject(t, extGroup.InternalGroupVersion(), rs, rand.Int63()) + // explicitly set the selector to something that is convertible to old-style selectors + // (since normally we'll fuzz the selectors with things that aren't convertible) + rs.Spec.Selector = &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "foo": "bar", + "baz": "quux", + }, + } + t.Logf("rs._internal.extensions -> rs.v1beta1.extensions") data, err := runtime.Encode(extGroup.Codec(), rs) if err != nil { t.Fatalf("unexpected encoding error: %v", err) } - decoder := api.Codecs.DecoderToVersion( - api.Codecs.UniversalDeserializer(), + decoder := legacyscheme.Codecs.DecoderToVersion( + legacyscheme.Codecs.UniversalDeserializer(), runtime.NewMultiGroupVersioner( *defaultGroup.GroupVersion(), schema.GroupKind{Group: defaultGroup.GroupVersion().Group}, @@ -139,13 +149,13 @@ func TestSetControllerConversion(t *testing.T) { // debug issues that arise while adding a new API type. func TestSpecificKind(t *testing.T) { // Uncomment the following line to enable logging of which conversions - // api.Scheme.Log(t) + // legacyscheme.Scheme.Log(t) internalGVK := schema.GroupVersionKind{Group: "extensions", Version: runtime.APIVersionInternal, Kind: "DaemonSet"} seed := rand.Int63() - fuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), api.Codecs) + fuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), legacyscheme.Codecs) - roundtrip.RoundTripSpecificKind(t, internalGVK, api.Scheme, api.Codecs, fuzzer, nil) + roundtrip.RoundTripSpecificKind(t, internalGVK, legacyscheme.Scheme, legacyscheme.Codecs, fuzzer, nil) } var nonRoundTrippableTypes = sets.NewString( @@ -171,16 +181,16 @@ func TestCommonKindsRegistered(t *testing.T) { for _, group := range testapi.Groups { gv := group.GroupVersion() gvk := gv.WithKind(kind) - obj, err := api.Scheme.New(gvk) + obj, err := legacyscheme.Scheme.New(gvk) if err != nil { t.Error(err) } defaults := gv.WithKind("") var got *schema.GroupVersionKind - if obj, got, err = api.Codecs.LegacyCodec().Decode([]byte(`{"kind":"`+kind+`"}`), &defaults, obj); err != nil || gvk != *got { + if obj, got, err = legacyscheme.Codecs.LegacyCodec().Decode([]byte(`{"kind":"`+kind+`"}`), &defaults, obj); err != nil || gvk != *got { t.Errorf("expected %v: %v %v", gvk, got, err) } - data, err := runtime.Encode(api.Codecs.LegacyCodec(*gv), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(*gv), obj) if err != nil { t.Errorf("expected %v: %v\n%s", gvk, err, string(data)) continue @@ -204,14 +214,14 @@ func TestCommonKindsRegistered(t *testing.T) { // in all of the API groups registered for test in the testapi package. func TestRoundTripTypes(t *testing.T) { seed := rand.Int63() - fuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), api.Codecs) + fuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), legacyscheme.Codecs) nonRoundTrippableTypes := map[schema.GroupVersionKind]bool{ {Group: "componentconfig", Version: runtime.APIVersionInternal, Kind: "KubeProxyConfiguration"}: true, {Group: "componentconfig", Version: runtime.APIVersionInternal, Kind: "KubeSchedulerConfiguration"}: true, } - roundtrip.RoundTripTypes(t, api.Scheme, api.Codecs, fuzzer, nonRoundTrippableTypes) + roundtrip.RoundTripTypes(t, legacyscheme.Scheme, legacyscheme.Codecs, fuzzer, nonRoundTrippableTypes) } // TestEncodePtr tests that a pointer to a golang type can be encoded and @@ -299,15 +309,15 @@ func TestUnversionedTypes(t *testing.T) { // TestObjectWatchFraming establishes that a watch event can be encoded and // decoded correctly through each of the supported RFC2046 media types. func TestObjectWatchFraming(t *testing.T) { - f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs) + f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), legacyscheme.Codecs) secret := &api.Secret{} f.Fuzz(secret) secret.Data["binary"] = []byte{0x00, 0x10, 0x30, 0x55, 0xff, 0x00} secret.Data["utf8"] = []byte("a string with \u0345 characters") secret.Data["long"] = bytes.Repeat([]byte{0x01, 0x02, 0x03, 0x00}, 1000) - converted, _ := api.Scheme.ConvertToVersion(secret, v1.SchemeGroupVersion) + converted, _ := legacyscheme.Scheme.ConvertToVersion(secret, v1.SchemeGroupVersion) v1secret := converted.(*v1.Secret) - for _, info := range api.Codecs.SupportedMediaTypes() { + for _, info := range legacyscheme.Codecs.SupportedMediaTypes() { if info.StreamSerializer == nil { continue } @@ -318,7 +328,7 @@ func TestObjectWatchFraming(t *testing.T) { t.Errorf("no embedded serializer for %s", info.MediaType) continue } - innerDecode := api.Codecs.DecoderToVersion(embedded, api.SchemeGroupVersion) + innerDecode := legacyscheme.Codecs.DecoderToVersion(embedded, api.SchemeGroupVersion) // write a single object through the framer and back out obj := &bytes.Buffer{} @@ -381,13 +391,13 @@ func TestObjectWatchFraming(t *testing.T) { const benchmarkSeed = 100 func benchmarkItems(b *testing.B) []v1.Pod { - apiObjectFuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs) + apiObjectFuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), legacyscheme.Codecs) items := make([]v1.Pod, 10) for i := range items { var pod api.Pod apiObjectFuzzer.Fuzz(&pod) pod.Spec.InitContainers, pod.Status.InitContainerStatuses = nil, nil - out, err := api.Scheme.ConvertToVersion(&pod, v1.SchemeGroupVersion) + out, err := legacyscheme.Scheme.ConvertToVersion(&pod, v1.SchemeGroupVersion) if err != nil { panic(err) } @@ -417,7 +427,7 @@ func BenchmarkEncodeCodecFromInternal(b *testing.B) { width := len(items) encodable := make([]api.Pod, width) for i := range items { - if err := api.Scheme.Convert(&items[i], &encodable[i], nil); err != nil { + if err := legacyscheme.Scheme.Convert(&items[i], &encodable[i], nil); err != nil { b.Fatal(err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/api/testing/unstructured_test.go b/vendor/k8s.io/kubernetes/pkg/api/testing/unstructured_test.go index 4b2f62288..c3cc41424 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/testing/unstructured_test.go +++ b/vendor/k8s.io/kubernetes/pkg/api/testing/unstructured_test.go @@ -25,25 +25,29 @@ import ( "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/testing/fuzzer" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metaunstruct "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/conversion/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" "k8s.io/apimachinery/pkg/util/json" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" ) func doRoundTrip(t *testing.T, group testapi.TestGroup, kind string) { // We do fuzzing on the internal version of the object, and only then // convert to the external version. This is because custom fuzzing // function are only supported for internal objects. - internalObj, err := api.Scheme.New(group.InternalGroupVersion().WithKind(kind)) + internalObj, err := legacyscheme.Scheme.New(group.InternalGroupVersion().WithKind(kind)) if err != nil { t.Fatalf("Couldn't create internal object %v: %v", kind, err) } seed := rand.Int63() - fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), api.Codecs). + fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), legacyscheme.Codecs). // We are explicitly overwriting custom fuzzing functions, to ensure // that InitContainers and their statuses are not generated. This is // because in thise test we are simply doing json operations, in which @@ -59,11 +63,11 @@ func doRoundTrip(t *testing.T, group testapi.TestGroup, kind string) { }, ).Fuzz(internalObj) - item, err := api.Scheme.New(group.GroupVersion().WithKind(kind)) + item, err := legacyscheme.Scheme.New(group.GroupVersion().WithKind(kind)) if err != nil { t.Fatalf("Couldn't create external object %v: %v", kind, err) } - if err := api.Scheme.Convert(internalObj, item, nil); err != nil { + if err := legacyscheme.Scheme.Convert(internalObj, item, nil); err != nil { t.Fatalf("Conversion for %v failed: %v", kind, err) } @@ -130,6 +134,43 @@ func TestRoundTrip(t *testing.T) { } } +func TestRoundTripWithEmptyCreationTimestamp(t *testing.T) { + for groupKey, group := range testapi.Groups { + for kind := range group.ExternalTypes() { + if nonRoundTrippableTypes.Has(kind) { + continue + } + item, err := legacyscheme.Scheme.New(group.GroupVersion().WithKind(kind)) + if err != nil { + t.Fatalf("Couldn't create external object %v: %v", kind, err) + } + t.Logf("Testing: %v in %v", kind, groupKey) + + unstrBody, err := unstructured.DefaultConverter.ToUnstructured(item) + if err != nil { + t.Fatalf("ToUnstructured failed: %v", err) + } + + unstructObj := &metaunstruct.Unstructured{} + unstructObj.Object = unstrBody + + if meta, err := meta.Accessor(unstructObj); err == nil { + meta.SetCreationTimestamp(metav1.Time{}) + } else { + t.Fatalf("Unable to set creation timestamp: %v", err) + } + + // attempt to re-convert unstructured object - conversion should not fail + // based on empty metadata fields, such as creationTimestamp + newObj := reflect.New(reflect.TypeOf(item).Elem()).Interface().(runtime.Object) + err = unstructured.DefaultConverter.FromUnstructured(unstructObj.Object, newObj) + if err != nil { + t.Fatalf("FromUnstructured failed: %v", err) + } + } + } +} + func BenchmarkToFromUnstructured(b *testing.B) { items := benchmarkItems(b) size := len(items) diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/resource/helpers.go b/vendor/k8s.io/kubernetes/pkg/api/v1/resource/helpers.go index af12f7634..09d9ea041 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/resource/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/api/v1/resource/helpers.go @@ -192,7 +192,7 @@ func MergeContainerResourceLimits(container *v1.Container, if container.Resources.Limits == nil { container.Resources.Limits = make(v1.ResourceList) } - for _, resource := range []v1.ResourceName{v1.ResourceCPU, v1.ResourceMemory} { + for _, resource := range []v1.ResourceName{v1.ResourceCPU, v1.ResourceMemory, v1.ResourceEphemeralStorage} { if quantity, exists := container.Resources.Limits[resource]; !exists || quantity.IsZero() { if cap, exists := allocatable[resource]; exists { container.Resources.Limits[resource] = *cap.Copy() diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/api/v1/zz_generated.conversion.go deleted file mode 100644 index 1937a77ea..000000000 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/zz_generated.conversion.go +++ /dev/null @@ -1,5354 +0,0 @@ -// +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 conversion-gen. Do not edit it manually! - -package v1 - -import ( - v1 "k8s.io/api/core/v1" - resource "k8s.io/apimachinery/pkg/api/resource" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - types "k8s.io/apimachinery/pkg/types" - api "k8s.io/kubernetes/pkg/api" - unsafe "unsafe" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(scheme *runtime.Scheme) error { - return scheme.AddGeneratedConversionFuncs( - Convert_v1_AWSElasticBlockStoreVolumeSource_To_api_AWSElasticBlockStoreVolumeSource, - Convert_api_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource, - Convert_v1_Affinity_To_api_Affinity, - Convert_api_Affinity_To_v1_Affinity, - Convert_v1_AttachedVolume_To_api_AttachedVolume, - Convert_api_AttachedVolume_To_v1_AttachedVolume, - Convert_v1_AvoidPods_To_api_AvoidPods, - Convert_api_AvoidPods_To_v1_AvoidPods, - Convert_v1_AzureDiskVolumeSource_To_api_AzureDiskVolumeSource, - Convert_api_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource, - Convert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource, - Convert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource, - Convert_v1_AzureFileVolumeSource_To_api_AzureFileVolumeSource, - Convert_api_AzureFileVolumeSource_To_v1_AzureFileVolumeSource, - Convert_v1_Binding_To_api_Binding, - Convert_api_Binding_To_v1_Binding, - Convert_v1_Capabilities_To_api_Capabilities, - Convert_api_Capabilities_To_v1_Capabilities, - Convert_v1_CephFSPersistentVolumeSource_To_api_CephFSPersistentVolumeSource, - Convert_api_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource, - Convert_v1_CephFSVolumeSource_To_api_CephFSVolumeSource, - Convert_api_CephFSVolumeSource_To_v1_CephFSVolumeSource, - Convert_v1_CinderVolumeSource_To_api_CinderVolumeSource, - Convert_api_CinderVolumeSource_To_v1_CinderVolumeSource, - Convert_v1_ClientIPConfig_To_api_ClientIPConfig, - Convert_api_ClientIPConfig_To_v1_ClientIPConfig, - Convert_v1_ComponentCondition_To_api_ComponentCondition, - Convert_api_ComponentCondition_To_v1_ComponentCondition, - Convert_v1_ComponentStatus_To_api_ComponentStatus, - Convert_api_ComponentStatus_To_v1_ComponentStatus, - Convert_v1_ComponentStatusList_To_api_ComponentStatusList, - Convert_api_ComponentStatusList_To_v1_ComponentStatusList, - Convert_v1_ConfigMap_To_api_ConfigMap, - Convert_api_ConfigMap_To_v1_ConfigMap, - Convert_v1_ConfigMapEnvSource_To_api_ConfigMapEnvSource, - Convert_api_ConfigMapEnvSource_To_v1_ConfigMapEnvSource, - Convert_v1_ConfigMapKeySelector_To_api_ConfigMapKeySelector, - Convert_api_ConfigMapKeySelector_To_v1_ConfigMapKeySelector, - Convert_v1_ConfigMapList_To_api_ConfigMapList, - Convert_api_ConfigMapList_To_v1_ConfigMapList, - Convert_v1_ConfigMapProjection_To_api_ConfigMapProjection, - Convert_api_ConfigMapProjection_To_v1_ConfigMapProjection, - Convert_v1_ConfigMapVolumeSource_To_api_ConfigMapVolumeSource, - Convert_api_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource, - Convert_v1_Container_To_api_Container, - Convert_api_Container_To_v1_Container, - Convert_v1_ContainerImage_To_api_ContainerImage, - Convert_api_ContainerImage_To_v1_ContainerImage, - Convert_v1_ContainerPort_To_api_ContainerPort, - Convert_api_ContainerPort_To_v1_ContainerPort, - Convert_v1_ContainerState_To_api_ContainerState, - Convert_api_ContainerState_To_v1_ContainerState, - Convert_v1_ContainerStateRunning_To_api_ContainerStateRunning, - Convert_api_ContainerStateRunning_To_v1_ContainerStateRunning, - Convert_v1_ContainerStateTerminated_To_api_ContainerStateTerminated, - Convert_api_ContainerStateTerminated_To_v1_ContainerStateTerminated, - Convert_v1_ContainerStateWaiting_To_api_ContainerStateWaiting, - Convert_api_ContainerStateWaiting_To_v1_ContainerStateWaiting, - Convert_v1_ContainerStatus_To_api_ContainerStatus, - Convert_api_ContainerStatus_To_v1_ContainerStatus, - Convert_v1_DaemonEndpoint_To_api_DaemonEndpoint, - Convert_api_DaemonEndpoint_To_v1_DaemonEndpoint, - Convert_v1_DeleteOptions_To_api_DeleteOptions, - Convert_api_DeleteOptions_To_v1_DeleteOptions, - Convert_v1_DownwardAPIProjection_To_api_DownwardAPIProjection, - Convert_api_DownwardAPIProjection_To_v1_DownwardAPIProjection, - Convert_v1_DownwardAPIVolumeFile_To_api_DownwardAPIVolumeFile, - Convert_api_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile, - Convert_v1_DownwardAPIVolumeSource_To_api_DownwardAPIVolumeSource, - Convert_api_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource, - Convert_v1_EmptyDirVolumeSource_To_api_EmptyDirVolumeSource, - Convert_api_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource, - Convert_v1_EndpointAddress_To_api_EndpointAddress, - Convert_api_EndpointAddress_To_v1_EndpointAddress, - Convert_v1_EndpointPort_To_api_EndpointPort, - Convert_api_EndpointPort_To_v1_EndpointPort, - Convert_v1_EndpointSubset_To_api_EndpointSubset, - Convert_api_EndpointSubset_To_v1_EndpointSubset, - Convert_v1_Endpoints_To_api_Endpoints, - Convert_api_Endpoints_To_v1_Endpoints, - Convert_v1_EndpointsList_To_api_EndpointsList, - Convert_api_EndpointsList_To_v1_EndpointsList, - Convert_v1_EnvFromSource_To_api_EnvFromSource, - Convert_api_EnvFromSource_To_v1_EnvFromSource, - Convert_v1_EnvVar_To_api_EnvVar, - Convert_api_EnvVar_To_v1_EnvVar, - Convert_v1_EnvVarSource_To_api_EnvVarSource, - Convert_api_EnvVarSource_To_v1_EnvVarSource, - Convert_v1_Event_To_api_Event, - Convert_api_Event_To_v1_Event, - Convert_v1_EventList_To_api_EventList, - Convert_api_EventList_To_v1_EventList, - Convert_v1_EventSource_To_api_EventSource, - Convert_api_EventSource_To_v1_EventSource, - Convert_v1_ExecAction_To_api_ExecAction, - Convert_api_ExecAction_To_v1_ExecAction, - Convert_v1_FCVolumeSource_To_api_FCVolumeSource, - Convert_api_FCVolumeSource_To_v1_FCVolumeSource, - Convert_v1_FlexVolumeSource_To_api_FlexVolumeSource, - Convert_api_FlexVolumeSource_To_v1_FlexVolumeSource, - Convert_v1_FlockerVolumeSource_To_api_FlockerVolumeSource, - Convert_api_FlockerVolumeSource_To_v1_FlockerVolumeSource, - Convert_v1_GCEPersistentDiskVolumeSource_To_api_GCEPersistentDiskVolumeSource, - Convert_api_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource, - Convert_v1_GitRepoVolumeSource_To_api_GitRepoVolumeSource, - Convert_api_GitRepoVolumeSource_To_v1_GitRepoVolumeSource, - Convert_v1_GlusterfsVolumeSource_To_api_GlusterfsVolumeSource, - Convert_api_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource, - Convert_v1_HTTPGetAction_To_api_HTTPGetAction, - Convert_api_HTTPGetAction_To_v1_HTTPGetAction, - Convert_v1_HTTPHeader_To_api_HTTPHeader, - Convert_api_HTTPHeader_To_v1_HTTPHeader, - Convert_v1_Handler_To_api_Handler, - Convert_api_Handler_To_v1_Handler, - Convert_v1_HostAlias_To_api_HostAlias, - Convert_api_HostAlias_To_v1_HostAlias, - Convert_v1_HostPathVolumeSource_To_api_HostPathVolumeSource, - Convert_api_HostPathVolumeSource_To_v1_HostPathVolumeSource, - Convert_v1_ISCSIVolumeSource_To_api_ISCSIVolumeSource, - Convert_api_ISCSIVolumeSource_To_v1_ISCSIVolumeSource, - Convert_v1_KeyToPath_To_api_KeyToPath, - Convert_api_KeyToPath_To_v1_KeyToPath, - Convert_v1_Lifecycle_To_api_Lifecycle, - Convert_api_Lifecycle_To_v1_Lifecycle, - Convert_v1_LimitRange_To_api_LimitRange, - Convert_api_LimitRange_To_v1_LimitRange, - Convert_v1_LimitRangeItem_To_api_LimitRangeItem, - Convert_api_LimitRangeItem_To_v1_LimitRangeItem, - Convert_v1_LimitRangeList_To_api_LimitRangeList, - Convert_api_LimitRangeList_To_v1_LimitRangeList, - Convert_v1_LimitRangeSpec_To_api_LimitRangeSpec, - Convert_api_LimitRangeSpec_To_v1_LimitRangeSpec, - Convert_v1_List_To_api_List, - Convert_api_List_To_v1_List, - Convert_v1_ListOptions_To_api_ListOptions, - Convert_api_ListOptions_To_v1_ListOptions, - Convert_v1_LoadBalancerIngress_To_api_LoadBalancerIngress, - Convert_api_LoadBalancerIngress_To_v1_LoadBalancerIngress, - Convert_v1_LoadBalancerStatus_To_api_LoadBalancerStatus, - Convert_api_LoadBalancerStatus_To_v1_LoadBalancerStatus, - Convert_v1_LocalObjectReference_To_api_LocalObjectReference, - Convert_api_LocalObjectReference_To_v1_LocalObjectReference, - Convert_v1_LocalVolumeSource_To_api_LocalVolumeSource, - Convert_api_LocalVolumeSource_To_v1_LocalVolumeSource, - Convert_v1_NFSVolumeSource_To_api_NFSVolumeSource, - Convert_api_NFSVolumeSource_To_v1_NFSVolumeSource, - Convert_v1_Namespace_To_api_Namespace, - Convert_api_Namespace_To_v1_Namespace, - Convert_v1_NamespaceList_To_api_NamespaceList, - Convert_api_NamespaceList_To_v1_NamespaceList, - Convert_v1_NamespaceSpec_To_api_NamespaceSpec, - Convert_api_NamespaceSpec_To_v1_NamespaceSpec, - Convert_v1_NamespaceStatus_To_api_NamespaceStatus, - Convert_api_NamespaceStatus_To_v1_NamespaceStatus, - Convert_v1_Node_To_api_Node, - Convert_api_Node_To_v1_Node, - Convert_v1_NodeAddress_To_api_NodeAddress, - Convert_api_NodeAddress_To_v1_NodeAddress, - Convert_v1_NodeAffinity_To_api_NodeAffinity, - Convert_api_NodeAffinity_To_v1_NodeAffinity, - Convert_v1_NodeCondition_To_api_NodeCondition, - Convert_api_NodeCondition_To_v1_NodeCondition, - Convert_v1_NodeConfigSource_To_api_NodeConfigSource, - Convert_api_NodeConfigSource_To_v1_NodeConfigSource, - Convert_v1_NodeDaemonEndpoints_To_api_NodeDaemonEndpoints, - Convert_api_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints, - Convert_v1_NodeList_To_api_NodeList, - Convert_api_NodeList_To_v1_NodeList, - Convert_v1_NodeProxyOptions_To_api_NodeProxyOptions, - Convert_api_NodeProxyOptions_To_v1_NodeProxyOptions, - Convert_v1_NodeResources_To_api_NodeResources, - Convert_api_NodeResources_To_v1_NodeResources, - Convert_v1_NodeSelector_To_api_NodeSelector, - Convert_api_NodeSelector_To_v1_NodeSelector, - Convert_v1_NodeSelectorRequirement_To_api_NodeSelectorRequirement, - Convert_api_NodeSelectorRequirement_To_v1_NodeSelectorRequirement, - Convert_v1_NodeSelectorTerm_To_api_NodeSelectorTerm, - Convert_api_NodeSelectorTerm_To_v1_NodeSelectorTerm, - Convert_v1_NodeSpec_To_api_NodeSpec, - Convert_api_NodeSpec_To_v1_NodeSpec, - Convert_v1_NodeStatus_To_api_NodeStatus, - Convert_api_NodeStatus_To_v1_NodeStatus, - Convert_v1_NodeSystemInfo_To_api_NodeSystemInfo, - Convert_api_NodeSystemInfo_To_v1_NodeSystemInfo, - Convert_v1_ObjectFieldSelector_To_api_ObjectFieldSelector, - Convert_api_ObjectFieldSelector_To_v1_ObjectFieldSelector, - Convert_v1_ObjectMeta_To_api_ObjectMeta, - Convert_api_ObjectMeta_To_v1_ObjectMeta, - Convert_v1_ObjectReference_To_api_ObjectReference, - Convert_api_ObjectReference_To_v1_ObjectReference, - Convert_v1_PersistentVolume_To_api_PersistentVolume, - Convert_api_PersistentVolume_To_v1_PersistentVolume, - Convert_v1_PersistentVolumeClaim_To_api_PersistentVolumeClaim, - Convert_api_PersistentVolumeClaim_To_v1_PersistentVolumeClaim, - Convert_v1_PersistentVolumeClaimCondition_To_api_PersistentVolumeClaimCondition, - Convert_api_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition, - Convert_v1_PersistentVolumeClaimList_To_api_PersistentVolumeClaimList, - Convert_api_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList, - Convert_v1_PersistentVolumeClaimSpec_To_api_PersistentVolumeClaimSpec, - Convert_api_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec, - Convert_v1_PersistentVolumeClaimStatus_To_api_PersistentVolumeClaimStatus, - Convert_api_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus, - Convert_v1_PersistentVolumeClaimVolumeSource_To_api_PersistentVolumeClaimVolumeSource, - Convert_api_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource, - Convert_v1_PersistentVolumeList_To_api_PersistentVolumeList, - Convert_api_PersistentVolumeList_To_v1_PersistentVolumeList, - Convert_v1_PersistentVolumeSource_To_api_PersistentVolumeSource, - Convert_api_PersistentVolumeSource_To_v1_PersistentVolumeSource, - Convert_v1_PersistentVolumeSpec_To_api_PersistentVolumeSpec, - Convert_api_PersistentVolumeSpec_To_v1_PersistentVolumeSpec, - Convert_v1_PersistentVolumeStatus_To_api_PersistentVolumeStatus, - Convert_api_PersistentVolumeStatus_To_v1_PersistentVolumeStatus, - Convert_v1_PhotonPersistentDiskVolumeSource_To_api_PhotonPersistentDiskVolumeSource, - Convert_api_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource, - Convert_v1_Pod_To_api_Pod, - Convert_api_Pod_To_v1_Pod, - Convert_v1_PodAffinity_To_api_PodAffinity, - Convert_api_PodAffinity_To_v1_PodAffinity, - Convert_v1_PodAffinityTerm_To_api_PodAffinityTerm, - Convert_api_PodAffinityTerm_To_v1_PodAffinityTerm, - Convert_v1_PodAntiAffinity_To_api_PodAntiAffinity, - Convert_api_PodAntiAffinity_To_v1_PodAntiAffinity, - Convert_v1_PodAttachOptions_To_api_PodAttachOptions, - Convert_api_PodAttachOptions_To_v1_PodAttachOptions, - Convert_v1_PodCondition_To_api_PodCondition, - Convert_api_PodCondition_To_v1_PodCondition, - Convert_v1_PodExecOptions_To_api_PodExecOptions, - Convert_api_PodExecOptions_To_v1_PodExecOptions, - Convert_v1_PodList_To_api_PodList, - Convert_api_PodList_To_v1_PodList, - Convert_v1_PodLogOptions_To_api_PodLogOptions, - Convert_api_PodLogOptions_To_v1_PodLogOptions, - Convert_v1_PodPortForwardOptions_To_api_PodPortForwardOptions, - Convert_api_PodPortForwardOptions_To_v1_PodPortForwardOptions, - Convert_v1_PodProxyOptions_To_api_PodProxyOptions, - Convert_api_PodProxyOptions_To_v1_PodProxyOptions, - Convert_v1_PodSecurityContext_To_api_PodSecurityContext, - Convert_api_PodSecurityContext_To_v1_PodSecurityContext, - Convert_v1_PodSignature_To_api_PodSignature, - Convert_api_PodSignature_To_v1_PodSignature, - Convert_v1_PodSpec_To_api_PodSpec, - Convert_api_PodSpec_To_v1_PodSpec, - Convert_v1_PodStatus_To_api_PodStatus, - Convert_api_PodStatus_To_v1_PodStatus, - Convert_v1_PodStatusResult_To_api_PodStatusResult, - Convert_api_PodStatusResult_To_v1_PodStatusResult, - Convert_v1_PodTemplate_To_api_PodTemplate, - Convert_api_PodTemplate_To_v1_PodTemplate, - Convert_v1_PodTemplateList_To_api_PodTemplateList, - Convert_api_PodTemplateList_To_v1_PodTemplateList, - Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec, - Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec, - Convert_v1_PortworxVolumeSource_To_api_PortworxVolumeSource, - Convert_api_PortworxVolumeSource_To_v1_PortworxVolumeSource, - Convert_v1_Preconditions_To_api_Preconditions, - Convert_api_Preconditions_To_v1_Preconditions, - Convert_v1_PreferAvoidPodsEntry_To_api_PreferAvoidPodsEntry, - Convert_api_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry, - Convert_v1_PreferredSchedulingTerm_To_api_PreferredSchedulingTerm, - Convert_api_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm, - Convert_v1_Probe_To_api_Probe, - Convert_api_Probe_To_v1_Probe, - Convert_v1_ProjectedVolumeSource_To_api_ProjectedVolumeSource, - Convert_api_ProjectedVolumeSource_To_v1_ProjectedVolumeSource, - Convert_v1_QuobyteVolumeSource_To_api_QuobyteVolumeSource, - Convert_api_QuobyteVolumeSource_To_v1_QuobyteVolumeSource, - Convert_v1_RBDVolumeSource_To_api_RBDVolumeSource, - Convert_api_RBDVolumeSource_To_v1_RBDVolumeSource, - Convert_v1_RangeAllocation_To_api_RangeAllocation, - Convert_api_RangeAllocation_To_v1_RangeAllocation, - Convert_v1_ReplicationController_To_api_ReplicationController, - Convert_api_ReplicationController_To_v1_ReplicationController, - Convert_v1_ReplicationControllerCondition_To_api_ReplicationControllerCondition, - Convert_api_ReplicationControllerCondition_To_v1_ReplicationControllerCondition, - Convert_v1_ReplicationControllerList_To_api_ReplicationControllerList, - Convert_api_ReplicationControllerList_To_v1_ReplicationControllerList, - Convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec, - Convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec, - Convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus, - Convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus, - Convert_v1_ResourceFieldSelector_To_api_ResourceFieldSelector, - Convert_api_ResourceFieldSelector_To_v1_ResourceFieldSelector, - Convert_v1_ResourceQuota_To_api_ResourceQuota, - Convert_api_ResourceQuota_To_v1_ResourceQuota, - Convert_v1_ResourceQuotaList_To_api_ResourceQuotaList, - Convert_api_ResourceQuotaList_To_v1_ResourceQuotaList, - Convert_v1_ResourceQuotaSpec_To_api_ResourceQuotaSpec, - Convert_api_ResourceQuotaSpec_To_v1_ResourceQuotaSpec, - Convert_v1_ResourceQuotaStatus_To_api_ResourceQuotaStatus, - Convert_api_ResourceQuotaStatus_To_v1_ResourceQuotaStatus, - Convert_v1_ResourceRequirements_To_api_ResourceRequirements, - Convert_api_ResourceRequirements_To_v1_ResourceRequirements, - Convert_v1_SELinuxOptions_To_api_SELinuxOptions, - Convert_api_SELinuxOptions_To_v1_SELinuxOptions, - Convert_v1_ScaleIOVolumeSource_To_api_ScaleIOVolumeSource, - Convert_api_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource, - Convert_v1_Secret_To_api_Secret, - Convert_api_Secret_To_v1_Secret, - Convert_v1_SecretEnvSource_To_api_SecretEnvSource, - Convert_api_SecretEnvSource_To_v1_SecretEnvSource, - Convert_v1_SecretKeySelector_To_api_SecretKeySelector, - Convert_api_SecretKeySelector_To_v1_SecretKeySelector, - Convert_v1_SecretList_To_api_SecretList, - Convert_api_SecretList_To_v1_SecretList, - Convert_v1_SecretProjection_To_api_SecretProjection, - Convert_api_SecretProjection_To_v1_SecretProjection, - Convert_v1_SecretReference_To_api_SecretReference, - Convert_api_SecretReference_To_v1_SecretReference, - Convert_v1_SecretVolumeSource_To_api_SecretVolumeSource, - Convert_api_SecretVolumeSource_To_v1_SecretVolumeSource, - Convert_v1_SecurityContext_To_api_SecurityContext, - Convert_api_SecurityContext_To_v1_SecurityContext, - Convert_v1_SerializedReference_To_api_SerializedReference, - Convert_api_SerializedReference_To_v1_SerializedReference, - Convert_v1_Service_To_api_Service, - Convert_api_Service_To_v1_Service, - Convert_v1_ServiceAccount_To_api_ServiceAccount, - Convert_api_ServiceAccount_To_v1_ServiceAccount, - Convert_v1_ServiceAccountList_To_api_ServiceAccountList, - Convert_api_ServiceAccountList_To_v1_ServiceAccountList, - Convert_v1_ServiceList_To_api_ServiceList, - Convert_api_ServiceList_To_v1_ServiceList, - Convert_v1_ServicePort_To_api_ServicePort, - Convert_api_ServicePort_To_v1_ServicePort, - Convert_v1_ServiceProxyOptions_To_api_ServiceProxyOptions, - Convert_api_ServiceProxyOptions_To_v1_ServiceProxyOptions, - Convert_v1_ServiceSpec_To_api_ServiceSpec, - Convert_api_ServiceSpec_To_v1_ServiceSpec, - Convert_v1_ServiceStatus_To_api_ServiceStatus, - Convert_api_ServiceStatus_To_v1_ServiceStatus, - Convert_v1_SessionAffinityConfig_To_api_SessionAffinityConfig, - Convert_api_SessionAffinityConfig_To_v1_SessionAffinityConfig, - Convert_v1_StorageOSPersistentVolumeSource_To_api_StorageOSPersistentVolumeSource, - Convert_api_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource, - Convert_v1_StorageOSVolumeSource_To_api_StorageOSVolumeSource, - Convert_api_StorageOSVolumeSource_To_v1_StorageOSVolumeSource, - Convert_v1_Sysctl_To_api_Sysctl, - Convert_api_Sysctl_To_v1_Sysctl, - Convert_v1_TCPSocketAction_To_api_TCPSocketAction, - Convert_api_TCPSocketAction_To_v1_TCPSocketAction, - Convert_v1_Taint_To_api_Taint, - Convert_api_Taint_To_v1_Taint, - Convert_v1_Toleration_To_api_Toleration, - Convert_api_Toleration_To_v1_Toleration, - Convert_v1_Volume_To_api_Volume, - Convert_api_Volume_To_v1_Volume, - Convert_v1_VolumeMount_To_api_VolumeMount, - Convert_api_VolumeMount_To_v1_VolumeMount, - Convert_v1_VolumeProjection_To_api_VolumeProjection, - Convert_api_VolumeProjection_To_v1_VolumeProjection, - Convert_v1_VolumeSource_To_api_VolumeSource, - Convert_api_VolumeSource_To_v1_VolumeSource, - Convert_v1_VsphereVirtualDiskVolumeSource_To_api_VsphereVirtualDiskVolumeSource, - Convert_api_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource, - Convert_v1_WeightedPodAffinityTerm_To_api_WeightedPodAffinityTerm, - Convert_api_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm, - ) -} - -func autoConvert_v1_AWSElasticBlockStoreVolumeSource_To_api_AWSElasticBlockStoreVolumeSource(in *v1.AWSElasticBlockStoreVolumeSource, out *api.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error { - out.VolumeID = in.VolumeID - out.FSType = in.FSType - out.Partition = in.Partition - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_AWSElasticBlockStoreVolumeSource_To_api_AWSElasticBlockStoreVolumeSource is an autogenerated conversion function. -func Convert_v1_AWSElasticBlockStoreVolumeSource_To_api_AWSElasticBlockStoreVolumeSource(in *v1.AWSElasticBlockStoreVolumeSource, out *api.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error { - return autoConvert_v1_AWSElasticBlockStoreVolumeSource_To_api_AWSElasticBlockStoreVolumeSource(in, out, s) -} - -func autoConvert_api_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource(in *api.AWSElasticBlockStoreVolumeSource, out *v1.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error { - out.VolumeID = in.VolumeID - out.FSType = in.FSType - out.Partition = in.Partition - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource is an autogenerated conversion function. -func Convert_api_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource(in *api.AWSElasticBlockStoreVolumeSource, out *v1.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error { - return autoConvert_api_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource(in, out, s) -} - -func autoConvert_v1_Affinity_To_api_Affinity(in *v1.Affinity, out *api.Affinity, s conversion.Scope) error { - out.NodeAffinity = (*api.NodeAffinity)(unsafe.Pointer(in.NodeAffinity)) - out.PodAffinity = (*api.PodAffinity)(unsafe.Pointer(in.PodAffinity)) - out.PodAntiAffinity = (*api.PodAntiAffinity)(unsafe.Pointer(in.PodAntiAffinity)) - return nil -} - -// Convert_v1_Affinity_To_api_Affinity is an autogenerated conversion function. -func Convert_v1_Affinity_To_api_Affinity(in *v1.Affinity, out *api.Affinity, s conversion.Scope) error { - return autoConvert_v1_Affinity_To_api_Affinity(in, out, s) -} - -func autoConvert_api_Affinity_To_v1_Affinity(in *api.Affinity, out *v1.Affinity, s conversion.Scope) error { - out.NodeAffinity = (*v1.NodeAffinity)(unsafe.Pointer(in.NodeAffinity)) - out.PodAffinity = (*v1.PodAffinity)(unsafe.Pointer(in.PodAffinity)) - out.PodAntiAffinity = (*v1.PodAntiAffinity)(unsafe.Pointer(in.PodAntiAffinity)) - return nil -} - -// Convert_api_Affinity_To_v1_Affinity is an autogenerated conversion function. -func Convert_api_Affinity_To_v1_Affinity(in *api.Affinity, out *v1.Affinity, s conversion.Scope) error { - return autoConvert_api_Affinity_To_v1_Affinity(in, out, s) -} - -func autoConvert_v1_AttachedVolume_To_api_AttachedVolume(in *v1.AttachedVolume, out *api.AttachedVolume, s conversion.Scope) error { - out.Name = api.UniqueVolumeName(in.Name) - out.DevicePath = in.DevicePath - return nil -} - -// Convert_v1_AttachedVolume_To_api_AttachedVolume is an autogenerated conversion function. -func Convert_v1_AttachedVolume_To_api_AttachedVolume(in *v1.AttachedVolume, out *api.AttachedVolume, s conversion.Scope) error { - return autoConvert_v1_AttachedVolume_To_api_AttachedVolume(in, out, s) -} - -func autoConvert_api_AttachedVolume_To_v1_AttachedVolume(in *api.AttachedVolume, out *v1.AttachedVolume, s conversion.Scope) error { - out.Name = v1.UniqueVolumeName(in.Name) - out.DevicePath = in.DevicePath - return nil -} - -// Convert_api_AttachedVolume_To_v1_AttachedVolume is an autogenerated conversion function. -func Convert_api_AttachedVolume_To_v1_AttachedVolume(in *api.AttachedVolume, out *v1.AttachedVolume, s conversion.Scope) error { - return autoConvert_api_AttachedVolume_To_v1_AttachedVolume(in, out, s) -} - -func autoConvert_v1_AvoidPods_To_api_AvoidPods(in *v1.AvoidPods, out *api.AvoidPods, s conversion.Scope) error { - out.PreferAvoidPods = *(*[]api.PreferAvoidPodsEntry)(unsafe.Pointer(&in.PreferAvoidPods)) - return nil -} - -// Convert_v1_AvoidPods_To_api_AvoidPods is an autogenerated conversion function. -func Convert_v1_AvoidPods_To_api_AvoidPods(in *v1.AvoidPods, out *api.AvoidPods, s conversion.Scope) error { - return autoConvert_v1_AvoidPods_To_api_AvoidPods(in, out, s) -} - -func autoConvert_api_AvoidPods_To_v1_AvoidPods(in *api.AvoidPods, out *v1.AvoidPods, s conversion.Scope) error { - out.PreferAvoidPods = *(*[]v1.PreferAvoidPodsEntry)(unsafe.Pointer(&in.PreferAvoidPods)) - return nil -} - -// Convert_api_AvoidPods_To_v1_AvoidPods is an autogenerated conversion function. -func Convert_api_AvoidPods_To_v1_AvoidPods(in *api.AvoidPods, out *v1.AvoidPods, s conversion.Scope) error { - return autoConvert_api_AvoidPods_To_v1_AvoidPods(in, out, s) -} - -func autoConvert_v1_AzureDiskVolumeSource_To_api_AzureDiskVolumeSource(in *v1.AzureDiskVolumeSource, out *api.AzureDiskVolumeSource, s conversion.Scope) error { - out.DiskName = in.DiskName - out.DataDiskURI = in.DataDiskURI - out.CachingMode = (*api.AzureDataDiskCachingMode)(unsafe.Pointer(in.CachingMode)) - out.FSType = (*string)(unsafe.Pointer(in.FSType)) - out.ReadOnly = (*bool)(unsafe.Pointer(in.ReadOnly)) - out.Kind = (*api.AzureDataDiskKind)(unsafe.Pointer(in.Kind)) - return nil -} - -// Convert_v1_AzureDiskVolumeSource_To_api_AzureDiskVolumeSource is an autogenerated conversion function. -func Convert_v1_AzureDiskVolumeSource_To_api_AzureDiskVolumeSource(in *v1.AzureDiskVolumeSource, out *api.AzureDiskVolumeSource, s conversion.Scope) error { - return autoConvert_v1_AzureDiskVolumeSource_To_api_AzureDiskVolumeSource(in, out, s) -} - -func autoConvert_api_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in *api.AzureDiskVolumeSource, out *v1.AzureDiskVolumeSource, s conversion.Scope) error { - out.DiskName = in.DiskName - out.DataDiskURI = in.DataDiskURI - out.CachingMode = (*v1.AzureDataDiskCachingMode)(unsafe.Pointer(in.CachingMode)) - out.FSType = (*string)(unsafe.Pointer(in.FSType)) - out.ReadOnly = (*bool)(unsafe.Pointer(in.ReadOnly)) - out.Kind = (*v1.AzureDataDiskKind)(unsafe.Pointer(in.Kind)) - return nil -} - -// Convert_api_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource is an autogenerated conversion function. -func Convert_api_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in *api.AzureDiskVolumeSource, out *v1.AzureDiskVolumeSource, s conversion.Scope) error { - return autoConvert_api_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in, out, s) -} - -func autoConvert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource(in *v1.AzureFilePersistentVolumeSource, out *api.AzureFilePersistentVolumeSource, s conversion.Scope) error { - out.SecretName = in.SecretName - out.ShareName = in.ShareName - out.ReadOnly = in.ReadOnly - out.SecretNamespace = (*string)(unsafe.Pointer(in.SecretNamespace)) - return nil -} - -// Convert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource is an autogenerated conversion function. -func Convert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource(in *v1.AzureFilePersistentVolumeSource, out *api.AzureFilePersistentVolumeSource, s conversion.Scope) error { - return autoConvert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource(in, out, s) -} - -func autoConvert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in *api.AzureFilePersistentVolumeSource, out *v1.AzureFilePersistentVolumeSource, s conversion.Scope) error { - out.SecretName = in.SecretName - out.ShareName = in.ShareName - out.ReadOnly = in.ReadOnly - out.SecretNamespace = (*string)(unsafe.Pointer(in.SecretNamespace)) - return nil -} - -// Convert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource is an autogenerated conversion function. -func Convert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in *api.AzureFilePersistentVolumeSource, out *v1.AzureFilePersistentVolumeSource, s conversion.Scope) error { - return autoConvert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in, out, s) -} - -func autoConvert_v1_AzureFileVolumeSource_To_api_AzureFileVolumeSource(in *v1.AzureFileVolumeSource, out *api.AzureFileVolumeSource, s conversion.Scope) error { - out.SecretName = in.SecretName - out.ShareName = in.ShareName - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_AzureFileVolumeSource_To_api_AzureFileVolumeSource is an autogenerated conversion function. -func Convert_v1_AzureFileVolumeSource_To_api_AzureFileVolumeSource(in *v1.AzureFileVolumeSource, out *api.AzureFileVolumeSource, s conversion.Scope) error { - return autoConvert_v1_AzureFileVolumeSource_To_api_AzureFileVolumeSource(in, out, s) -} - -func autoConvert_api_AzureFileVolumeSource_To_v1_AzureFileVolumeSource(in *api.AzureFileVolumeSource, out *v1.AzureFileVolumeSource, s conversion.Scope) error { - out.SecretName = in.SecretName - out.ShareName = in.ShareName - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_AzureFileVolumeSource_To_v1_AzureFileVolumeSource is an autogenerated conversion function. -func Convert_api_AzureFileVolumeSource_To_v1_AzureFileVolumeSource(in *api.AzureFileVolumeSource, out *v1.AzureFileVolumeSource, s conversion.Scope) error { - return autoConvert_api_AzureFileVolumeSource_To_v1_AzureFileVolumeSource(in, out, s) -} - -func autoConvert_v1_Binding_To_api_Binding(in *v1.Binding, out *api.Binding, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_ObjectReference_To_api_ObjectReference(&in.Target, &out.Target, s); err != nil { - return err - } - return nil -} - -// Convert_v1_Binding_To_api_Binding is an autogenerated conversion function. -func Convert_v1_Binding_To_api_Binding(in *v1.Binding, out *api.Binding, s conversion.Scope) error { - return autoConvert_v1_Binding_To_api_Binding(in, out, s) -} - -func autoConvert_api_Binding_To_v1_Binding(in *api.Binding, out *v1.Binding, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_ObjectReference_To_v1_ObjectReference(&in.Target, &out.Target, s); err != nil { - return err - } - return nil -} - -// Convert_api_Binding_To_v1_Binding is an autogenerated conversion function. -func Convert_api_Binding_To_v1_Binding(in *api.Binding, out *v1.Binding, s conversion.Scope) error { - return autoConvert_api_Binding_To_v1_Binding(in, out, s) -} - -func autoConvert_v1_Capabilities_To_api_Capabilities(in *v1.Capabilities, out *api.Capabilities, s conversion.Scope) error { - out.Add = *(*[]api.Capability)(unsafe.Pointer(&in.Add)) - out.Drop = *(*[]api.Capability)(unsafe.Pointer(&in.Drop)) - return nil -} - -// Convert_v1_Capabilities_To_api_Capabilities is an autogenerated conversion function. -func Convert_v1_Capabilities_To_api_Capabilities(in *v1.Capabilities, out *api.Capabilities, s conversion.Scope) error { - return autoConvert_v1_Capabilities_To_api_Capabilities(in, out, s) -} - -func autoConvert_api_Capabilities_To_v1_Capabilities(in *api.Capabilities, out *v1.Capabilities, s conversion.Scope) error { - out.Add = *(*[]v1.Capability)(unsafe.Pointer(&in.Add)) - out.Drop = *(*[]v1.Capability)(unsafe.Pointer(&in.Drop)) - return nil -} - -// Convert_api_Capabilities_To_v1_Capabilities is an autogenerated conversion function. -func Convert_api_Capabilities_To_v1_Capabilities(in *api.Capabilities, out *v1.Capabilities, s conversion.Scope) error { - return autoConvert_api_Capabilities_To_v1_Capabilities(in, out, s) -} - -func autoConvert_v1_CephFSPersistentVolumeSource_To_api_CephFSPersistentVolumeSource(in *v1.CephFSPersistentVolumeSource, out *api.CephFSPersistentVolumeSource, s conversion.Scope) error { - out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors)) - out.Path = in.Path - out.User = in.User - out.SecretFile = in.SecretFile - out.SecretRef = (*api.SecretReference)(unsafe.Pointer(in.SecretRef)) - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_CephFSPersistentVolumeSource_To_api_CephFSPersistentVolumeSource is an autogenerated conversion function. -func Convert_v1_CephFSPersistentVolumeSource_To_api_CephFSPersistentVolumeSource(in *v1.CephFSPersistentVolumeSource, out *api.CephFSPersistentVolumeSource, s conversion.Scope) error { - return autoConvert_v1_CephFSPersistentVolumeSource_To_api_CephFSPersistentVolumeSource(in, out, s) -} - -func autoConvert_api_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource(in *api.CephFSPersistentVolumeSource, out *v1.CephFSPersistentVolumeSource, s conversion.Scope) error { - out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors)) - out.Path = in.Path - out.User = in.User - out.SecretFile = in.SecretFile - out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef)) - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource is an autogenerated conversion function. -func Convert_api_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource(in *api.CephFSPersistentVolumeSource, out *v1.CephFSPersistentVolumeSource, s conversion.Scope) error { - return autoConvert_api_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource(in, out, s) -} - -func autoConvert_v1_CephFSVolumeSource_To_api_CephFSVolumeSource(in *v1.CephFSVolumeSource, out *api.CephFSVolumeSource, s conversion.Scope) error { - out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors)) - out.Path = in.Path - out.User = in.User - out.SecretFile = in.SecretFile - out.SecretRef = (*api.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_CephFSVolumeSource_To_api_CephFSVolumeSource is an autogenerated conversion function. -func Convert_v1_CephFSVolumeSource_To_api_CephFSVolumeSource(in *v1.CephFSVolumeSource, out *api.CephFSVolumeSource, s conversion.Scope) error { - return autoConvert_v1_CephFSVolumeSource_To_api_CephFSVolumeSource(in, out, s) -} - -func autoConvert_api_CephFSVolumeSource_To_v1_CephFSVolumeSource(in *api.CephFSVolumeSource, out *v1.CephFSVolumeSource, s conversion.Scope) error { - out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors)) - out.Path = in.Path - out.User = in.User - out.SecretFile = in.SecretFile - out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_CephFSVolumeSource_To_v1_CephFSVolumeSource is an autogenerated conversion function. -func Convert_api_CephFSVolumeSource_To_v1_CephFSVolumeSource(in *api.CephFSVolumeSource, out *v1.CephFSVolumeSource, s conversion.Scope) error { - return autoConvert_api_CephFSVolumeSource_To_v1_CephFSVolumeSource(in, out, s) -} - -func autoConvert_v1_CinderVolumeSource_To_api_CinderVolumeSource(in *v1.CinderVolumeSource, out *api.CinderVolumeSource, s conversion.Scope) error { - out.VolumeID = in.VolumeID - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_CinderVolumeSource_To_api_CinderVolumeSource is an autogenerated conversion function. -func Convert_v1_CinderVolumeSource_To_api_CinderVolumeSource(in *v1.CinderVolumeSource, out *api.CinderVolumeSource, s conversion.Scope) error { - return autoConvert_v1_CinderVolumeSource_To_api_CinderVolumeSource(in, out, s) -} - -func autoConvert_api_CinderVolumeSource_To_v1_CinderVolumeSource(in *api.CinderVolumeSource, out *v1.CinderVolumeSource, s conversion.Scope) error { - out.VolumeID = in.VolumeID - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_CinderVolumeSource_To_v1_CinderVolumeSource is an autogenerated conversion function. -func Convert_api_CinderVolumeSource_To_v1_CinderVolumeSource(in *api.CinderVolumeSource, out *v1.CinderVolumeSource, s conversion.Scope) error { - return autoConvert_api_CinderVolumeSource_To_v1_CinderVolumeSource(in, out, s) -} - -func autoConvert_v1_ClientIPConfig_To_api_ClientIPConfig(in *v1.ClientIPConfig, out *api.ClientIPConfig, s conversion.Scope) error { - out.TimeoutSeconds = (*int32)(unsafe.Pointer(in.TimeoutSeconds)) - return nil -} - -// Convert_v1_ClientIPConfig_To_api_ClientIPConfig is an autogenerated conversion function. -func Convert_v1_ClientIPConfig_To_api_ClientIPConfig(in *v1.ClientIPConfig, out *api.ClientIPConfig, s conversion.Scope) error { - return autoConvert_v1_ClientIPConfig_To_api_ClientIPConfig(in, out, s) -} - -func autoConvert_api_ClientIPConfig_To_v1_ClientIPConfig(in *api.ClientIPConfig, out *v1.ClientIPConfig, s conversion.Scope) error { - out.TimeoutSeconds = (*int32)(unsafe.Pointer(in.TimeoutSeconds)) - return nil -} - -// Convert_api_ClientIPConfig_To_v1_ClientIPConfig is an autogenerated conversion function. -func Convert_api_ClientIPConfig_To_v1_ClientIPConfig(in *api.ClientIPConfig, out *v1.ClientIPConfig, s conversion.Scope) error { - return autoConvert_api_ClientIPConfig_To_v1_ClientIPConfig(in, out, s) -} - -func autoConvert_v1_ComponentCondition_To_api_ComponentCondition(in *v1.ComponentCondition, out *api.ComponentCondition, s conversion.Scope) error { - out.Type = api.ComponentConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) - out.Message = in.Message - out.Error = in.Error - return nil -} - -// Convert_v1_ComponentCondition_To_api_ComponentCondition is an autogenerated conversion function. -func Convert_v1_ComponentCondition_To_api_ComponentCondition(in *v1.ComponentCondition, out *api.ComponentCondition, s conversion.Scope) error { - return autoConvert_v1_ComponentCondition_To_api_ComponentCondition(in, out, s) -} - -func autoConvert_api_ComponentCondition_To_v1_ComponentCondition(in *api.ComponentCondition, out *v1.ComponentCondition, s conversion.Scope) error { - out.Type = v1.ComponentConditionType(in.Type) - out.Status = v1.ConditionStatus(in.Status) - out.Message = in.Message - out.Error = in.Error - return nil -} - -// Convert_api_ComponentCondition_To_v1_ComponentCondition is an autogenerated conversion function. -func Convert_api_ComponentCondition_To_v1_ComponentCondition(in *api.ComponentCondition, out *v1.ComponentCondition, s conversion.Scope) error { - return autoConvert_api_ComponentCondition_To_v1_ComponentCondition(in, out, s) -} - -func autoConvert_v1_ComponentStatus_To_api_ComponentStatus(in *v1.ComponentStatus, out *api.ComponentStatus, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Conditions = *(*[]api.ComponentCondition)(unsafe.Pointer(&in.Conditions)) - return nil -} - -// Convert_v1_ComponentStatus_To_api_ComponentStatus is an autogenerated conversion function. -func Convert_v1_ComponentStatus_To_api_ComponentStatus(in *v1.ComponentStatus, out *api.ComponentStatus, s conversion.Scope) error { - return autoConvert_v1_ComponentStatus_To_api_ComponentStatus(in, out, s) -} - -func autoConvert_api_ComponentStatus_To_v1_ComponentStatus(in *api.ComponentStatus, out *v1.ComponentStatus, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Conditions = *(*[]v1.ComponentCondition)(unsafe.Pointer(&in.Conditions)) - return nil -} - -// Convert_api_ComponentStatus_To_v1_ComponentStatus is an autogenerated conversion function. -func Convert_api_ComponentStatus_To_v1_ComponentStatus(in *api.ComponentStatus, out *v1.ComponentStatus, s conversion.Scope) error { - return autoConvert_api_ComponentStatus_To_v1_ComponentStatus(in, out, s) -} - -func autoConvert_v1_ComponentStatusList_To_api_ComponentStatusList(in *v1.ComponentStatusList, out *api.ComponentStatusList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.ComponentStatus)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_ComponentStatusList_To_api_ComponentStatusList is an autogenerated conversion function. -func Convert_v1_ComponentStatusList_To_api_ComponentStatusList(in *v1.ComponentStatusList, out *api.ComponentStatusList, s conversion.Scope) error { - return autoConvert_v1_ComponentStatusList_To_api_ComponentStatusList(in, out, s) -} - -func autoConvert_api_ComponentStatusList_To_v1_ComponentStatusList(in *api.ComponentStatusList, out *v1.ComponentStatusList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.ComponentStatus)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_ComponentStatusList_To_v1_ComponentStatusList is an autogenerated conversion function. -func Convert_api_ComponentStatusList_To_v1_ComponentStatusList(in *api.ComponentStatusList, out *v1.ComponentStatusList, s conversion.Scope) error { - return autoConvert_api_ComponentStatusList_To_v1_ComponentStatusList(in, out, s) -} - -func autoConvert_v1_ConfigMap_To_api_ConfigMap(in *v1.ConfigMap, out *api.ConfigMap, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Data = *(*map[string]string)(unsafe.Pointer(&in.Data)) - return nil -} - -// Convert_v1_ConfigMap_To_api_ConfigMap is an autogenerated conversion function. -func Convert_v1_ConfigMap_To_api_ConfigMap(in *v1.ConfigMap, out *api.ConfigMap, s conversion.Scope) error { - return autoConvert_v1_ConfigMap_To_api_ConfigMap(in, out, s) -} - -func autoConvert_api_ConfigMap_To_v1_ConfigMap(in *api.ConfigMap, out *v1.ConfigMap, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Data = *(*map[string]string)(unsafe.Pointer(&in.Data)) - return nil -} - -// Convert_api_ConfigMap_To_v1_ConfigMap is an autogenerated conversion function. -func Convert_api_ConfigMap_To_v1_ConfigMap(in *api.ConfigMap, out *v1.ConfigMap, s conversion.Scope) error { - return autoConvert_api_ConfigMap_To_v1_ConfigMap(in, out, s) -} - -func autoConvert_v1_ConfigMapEnvSource_To_api_ConfigMapEnvSource(in *v1.ConfigMapEnvSource, out *api.ConfigMapEnvSource, s conversion.Scope) error { - if err := Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_v1_ConfigMapEnvSource_To_api_ConfigMapEnvSource is an autogenerated conversion function. -func Convert_v1_ConfigMapEnvSource_To_api_ConfigMapEnvSource(in *v1.ConfigMapEnvSource, out *api.ConfigMapEnvSource, s conversion.Scope) error { - return autoConvert_v1_ConfigMapEnvSource_To_api_ConfigMapEnvSource(in, out, s) -} - -func autoConvert_api_ConfigMapEnvSource_To_v1_ConfigMapEnvSource(in *api.ConfigMapEnvSource, out *v1.ConfigMapEnvSource, s conversion.Scope) error { - if err := Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_api_ConfigMapEnvSource_To_v1_ConfigMapEnvSource is an autogenerated conversion function. -func Convert_api_ConfigMapEnvSource_To_v1_ConfigMapEnvSource(in *api.ConfigMapEnvSource, out *v1.ConfigMapEnvSource, s conversion.Scope) error { - return autoConvert_api_ConfigMapEnvSource_To_v1_ConfigMapEnvSource(in, out, s) -} - -func autoConvert_v1_ConfigMapKeySelector_To_api_ConfigMapKeySelector(in *v1.ConfigMapKeySelector, out *api.ConfigMapKeySelector, s conversion.Scope) error { - if err := Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Key = in.Key - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_v1_ConfigMapKeySelector_To_api_ConfigMapKeySelector is an autogenerated conversion function. -func Convert_v1_ConfigMapKeySelector_To_api_ConfigMapKeySelector(in *v1.ConfigMapKeySelector, out *api.ConfigMapKeySelector, s conversion.Scope) error { - return autoConvert_v1_ConfigMapKeySelector_To_api_ConfigMapKeySelector(in, out, s) -} - -func autoConvert_api_ConfigMapKeySelector_To_v1_ConfigMapKeySelector(in *api.ConfigMapKeySelector, out *v1.ConfigMapKeySelector, s conversion.Scope) error { - if err := Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Key = in.Key - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_api_ConfigMapKeySelector_To_v1_ConfigMapKeySelector is an autogenerated conversion function. -func Convert_api_ConfigMapKeySelector_To_v1_ConfigMapKeySelector(in *api.ConfigMapKeySelector, out *v1.ConfigMapKeySelector, s conversion.Scope) error { - return autoConvert_api_ConfigMapKeySelector_To_v1_ConfigMapKeySelector(in, out, s) -} - -func autoConvert_v1_ConfigMapList_To_api_ConfigMapList(in *v1.ConfigMapList, out *api.ConfigMapList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.ConfigMap)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_ConfigMapList_To_api_ConfigMapList is an autogenerated conversion function. -func Convert_v1_ConfigMapList_To_api_ConfigMapList(in *v1.ConfigMapList, out *api.ConfigMapList, s conversion.Scope) error { - return autoConvert_v1_ConfigMapList_To_api_ConfigMapList(in, out, s) -} - -func autoConvert_api_ConfigMapList_To_v1_ConfigMapList(in *api.ConfigMapList, out *v1.ConfigMapList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.ConfigMap)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_ConfigMapList_To_v1_ConfigMapList is an autogenerated conversion function. -func Convert_api_ConfigMapList_To_v1_ConfigMapList(in *api.ConfigMapList, out *v1.ConfigMapList, s conversion.Scope) error { - return autoConvert_api_ConfigMapList_To_v1_ConfigMapList(in, out, s) -} - -func autoConvert_v1_ConfigMapProjection_To_api_ConfigMapProjection(in *v1.ConfigMapProjection, out *api.ConfigMapProjection, s conversion.Scope) error { - if err := Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Items = *(*[]api.KeyToPath)(unsafe.Pointer(&in.Items)) - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_v1_ConfigMapProjection_To_api_ConfigMapProjection is an autogenerated conversion function. -func Convert_v1_ConfigMapProjection_To_api_ConfigMapProjection(in *v1.ConfigMapProjection, out *api.ConfigMapProjection, s conversion.Scope) error { - return autoConvert_v1_ConfigMapProjection_To_api_ConfigMapProjection(in, out, s) -} - -func autoConvert_api_ConfigMapProjection_To_v1_ConfigMapProjection(in *api.ConfigMapProjection, out *v1.ConfigMapProjection, s conversion.Scope) error { - if err := Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items)) - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_api_ConfigMapProjection_To_v1_ConfigMapProjection is an autogenerated conversion function. -func Convert_api_ConfigMapProjection_To_v1_ConfigMapProjection(in *api.ConfigMapProjection, out *v1.ConfigMapProjection, s conversion.Scope) error { - return autoConvert_api_ConfigMapProjection_To_v1_ConfigMapProjection(in, out, s) -} - -func autoConvert_v1_ConfigMapVolumeSource_To_api_ConfigMapVolumeSource(in *v1.ConfigMapVolumeSource, out *api.ConfigMapVolumeSource, s conversion.Scope) error { - if err := Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Items = *(*[]api.KeyToPath)(unsafe.Pointer(&in.Items)) - out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_v1_ConfigMapVolumeSource_To_api_ConfigMapVolumeSource is an autogenerated conversion function. -func Convert_v1_ConfigMapVolumeSource_To_api_ConfigMapVolumeSource(in *v1.ConfigMapVolumeSource, out *api.ConfigMapVolumeSource, s conversion.Scope) error { - return autoConvert_v1_ConfigMapVolumeSource_To_api_ConfigMapVolumeSource(in, out, s) -} - -func autoConvert_api_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource(in *api.ConfigMapVolumeSource, out *v1.ConfigMapVolumeSource, s conversion.Scope) error { - if err := Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items)) - out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_api_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource is an autogenerated conversion function. -func Convert_api_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource(in *api.ConfigMapVolumeSource, out *v1.ConfigMapVolumeSource, s conversion.Scope) error { - return autoConvert_api_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource(in, out, s) -} - -func autoConvert_v1_Container_To_api_Container(in *v1.Container, out *api.Container, s conversion.Scope) error { - out.Name = in.Name - out.Image = in.Image - out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) - out.Args = *(*[]string)(unsafe.Pointer(&in.Args)) - out.WorkingDir = in.WorkingDir - out.Ports = *(*[]api.ContainerPort)(unsafe.Pointer(&in.Ports)) - out.EnvFrom = *(*[]api.EnvFromSource)(unsafe.Pointer(&in.EnvFrom)) - out.Env = *(*[]api.EnvVar)(unsafe.Pointer(&in.Env)) - if err := Convert_v1_ResourceRequirements_To_api_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil { - return err - } - out.VolumeMounts = *(*[]api.VolumeMount)(unsafe.Pointer(&in.VolumeMounts)) - out.LivenessProbe = (*api.Probe)(unsafe.Pointer(in.LivenessProbe)) - out.ReadinessProbe = (*api.Probe)(unsafe.Pointer(in.ReadinessProbe)) - out.Lifecycle = (*api.Lifecycle)(unsafe.Pointer(in.Lifecycle)) - out.TerminationMessagePath = in.TerminationMessagePath - out.TerminationMessagePolicy = api.TerminationMessagePolicy(in.TerminationMessagePolicy) - out.ImagePullPolicy = api.PullPolicy(in.ImagePullPolicy) - if in.SecurityContext != nil { - in, out := &in.SecurityContext, &out.SecurityContext - *out = new(api.SecurityContext) - if err := Convert_v1_SecurityContext_To_api_SecurityContext(*in, *out, s); err != nil { - return err - } - } else { - out.SecurityContext = nil - } - out.Stdin = in.Stdin - out.StdinOnce = in.StdinOnce - out.TTY = in.TTY - return nil -} - -// Convert_v1_Container_To_api_Container is an autogenerated conversion function. -func Convert_v1_Container_To_api_Container(in *v1.Container, out *api.Container, s conversion.Scope) error { - return autoConvert_v1_Container_To_api_Container(in, out, s) -} - -func autoConvert_api_Container_To_v1_Container(in *api.Container, out *v1.Container, s conversion.Scope) error { - out.Name = in.Name - out.Image = in.Image - out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) - out.Args = *(*[]string)(unsafe.Pointer(&in.Args)) - out.WorkingDir = in.WorkingDir - out.Ports = *(*[]v1.ContainerPort)(unsafe.Pointer(&in.Ports)) - out.EnvFrom = *(*[]v1.EnvFromSource)(unsafe.Pointer(&in.EnvFrom)) - out.Env = *(*[]v1.EnvVar)(unsafe.Pointer(&in.Env)) - if err := Convert_api_ResourceRequirements_To_v1_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil { - return err - } - out.VolumeMounts = *(*[]v1.VolumeMount)(unsafe.Pointer(&in.VolumeMounts)) - out.LivenessProbe = (*v1.Probe)(unsafe.Pointer(in.LivenessProbe)) - out.ReadinessProbe = (*v1.Probe)(unsafe.Pointer(in.ReadinessProbe)) - out.Lifecycle = (*v1.Lifecycle)(unsafe.Pointer(in.Lifecycle)) - out.TerminationMessagePath = in.TerminationMessagePath - out.TerminationMessagePolicy = v1.TerminationMessagePolicy(in.TerminationMessagePolicy) - out.ImagePullPolicy = v1.PullPolicy(in.ImagePullPolicy) - if in.SecurityContext != nil { - in, out := &in.SecurityContext, &out.SecurityContext - *out = new(v1.SecurityContext) - if err := Convert_api_SecurityContext_To_v1_SecurityContext(*in, *out, s); err != nil { - return err - } - } else { - out.SecurityContext = nil - } - out.Stdin = in.Stdin - out.StdinOnce = in.StdinOnce - out.TTY = in.TTY - return nil -} - -// Convert_api_Container_To_v1_Container is an autogenerated conversion function. -func Convert_api_Container_To_v1_Container(in *api.Container, out *v1.Container, s conversion.Scope) error { - return autoConvert_api_Container_To_v1_Container(in, out, s) -} - -func autoConvert_v1_ContainerImage_To_api_ContainerImage(in *v1.ContainerImage, out *api.ContainerImage, s conversion.Scope) error { - out.Names = *(*[]string)(unsafe.Pointer(&in.Names)) - out.SizeBytes = in.SizeBytes - return nil -} - -// Convert_v1_ContainerImage_To_api_ContainerImage is an autogenerated conversion function. -func Convert_v1_ContainerImage_To_api_ContainerImage(in *v1.ContainerImage, out *api.ContainerImage, s conversion.Scope) error { - return autoConvert_v1_ContainerImage_To_api_ContainerImage(in, out, s) -} - -func autoConvert_api_ContainerImage_To_v1_ContainerImage(in *api.ContainerImage, out *v1.ContainerImage, s conversion.Scope) error { - out.Names = *(*[]string)(unsafe.Pointer(&in.Names)) - out.SizeBytes = in.SizeBytes - return nil -} - -// Convert_api_ContainerImage_To_v1_ContainerImage is an autogenerated conversion function. -func Convert_api_ContainerImage_To_v1_ContainerImage(in *api.ContainerImage, out *v1.ContainerImage, s conversion.Scope) error { - return autoConvert_api_ContainerImage_To_v1_ContainerImage(in, out, s) -} - -func autoConvert_v1_ContainerPort_To_api_ContainerPort(in *v1.ContainerPort, out *api.ContainerPort, s conversion.Scope) error { - out.Name = in.Name - out.HostPort = in.HostPort - out.ContainerPort = in.ContainerPort - out.Protocol = api.Protocol(in.Protocol) - out.HostIP = in.HostIP - return nil -} - -// Convert_v1_ContainerPort_To_api_ContainerPort is an autogenerated conversion function. -func Convert_v1_ContainerPort_To_api_ContainerPort(in *v1.ContainerPort, out *api.ContainerPort, s conversion.Scope) error { - return autoConvert_v1_ContainerPort_To_api_ContainerPort(in, out, s) -} - -func autoConvert_api_ContainerPort_To_v1_ContainerPort(in *api.ContainerPort, out *v1.ContainerPort, s conversion.Scope) error { - out.Name = in.Name - out.HostPort = in.HostPort - out.ContainerPort = in.ContainerPort - out.Protocol = v1.Protocol(in.Protocol) - out.HostIP = in.HostIP - return nil -} - -// Convert_api_ContainerPort_To_v1_ContainerPort is an autogenerated conversion function. -func Convert_api_ContainerPort_To_v1_ContainerPort(in *api.ContainerPort, out *v1.ContainerPort, s conversion.Scope) error { - return autoConvert_api_ContainerPort_To_v1_ContainerPort(in, out, s) -} - -func autoConvert_v1_ContainerState_To_api_ContainerState(in *v1.ContainerState, out *api.ContainerState, s conversion.Scope) error { - out.Waiting = (*api.ContainerStateWaiting)(unsafe.Pointer(in.Waiting)) - out.Running = (*api.ContainerStateRunning)(unsafe.Pointer(in.Running)) - out.Terminated = (*api.ContainerStateTerminated)(unsafe.Pointer(in.Terminated)) - return nil -} - -// Convert_v1_ContainerState_To_api_ContainerState is an autogenerated conversion function. -func Convert_v1_ContainerState_To_api_ContainerState(in *v1.ContainerState, out *api.ContainerState, s conversion.Scope) error { - return autoConvert_v1_ContainerState_To_api_ContainerState(in, out, s) -} - -func autoConvert_api_ContainerState_To_v1_ContainerState(in *api.ContainerState, out *v1.ContainerState, s conversion.Scope) error { - out.Waiting = (*v1.ContainerStateWaiting)(unsafe.Pointer(in.Waiting)) - out.Running = (*v1.ContainerStateRunning)(unsafe.Pointer(in.Running)) - out.Terminated = (*v1.ContainerStateTerminated)(unsafe.Pointer(in.Terminated)) - return nil -} - -// Convert_api_ContainerState_To_v1_ContainerState is an autogenerated conversion function. -func Convert_api_ContainerState_To_v1_ContainerState(in *api.ContainerState, out *v1.ContainerState, s conversion.Scope) error { - return autoConvert_api_ContainerState_To_v1_ContainerState(in, out, s) -} - -func autoConvert_v1_ContainerStateRunning_To_api_ContainerStateRunning(in *v1.ContainerStateRunning, out *api.ContainerStateRunning, s conversion.Scope) error { - out.StartedAt = in.StartedAt - return nil -} - -// Convert_v1_ContainerStateRunning_To_api_ContainerStateRunning is an autogenerated conversion function. -func Convert_v1_ContainerStateRunning_To_api_ContainerStateRunning(in *v1.ContainerStateRunning, out *api.ContainerStateRunning, s conversion.Scope) error { - return autoConvert_v1_ContainerStateRunning_To_api_ContainerStateRunning(in, out, s) -} - -func autoConvert_api_ContainerStateRunning_To_v1_ContainerStateRunning(in *api.ContainerStateRunning, out *v1.ContainerStateRunning, s conversion.Scope) error { - out.StartedAt = in.StartedAt - return nil -} - -// Convert_api_ContainerStateRunning_To_v1_ContainerStateRunning is an autogenerated conversion function. -func Convert_api_ContainerStateRunning_To_v1_ContainerStateRunning(in *api.ContainerStateRunning, out *v1.ContainerStateRunning, s conversion.Scope) error { - return autoConvert_api_ContainerStateRunning_To_v1_ContainerStateRunning(in, out, s) -} - -func autoConvert_v1_ContainerStateTerminated_To_api_ContainerStateTerminated(in *v1.ContainerStateTerminated, out *api.ContainerStateTerminated, s conversion.Scope) error { - out.ExitCode = in.ExitCode - out.Signal = in.Signal - out.Reason = in.Reason - out.Message = in.Message - out.StartedAt = in.StartedAt - out.FinishedAt = in.FinishedAt - out.ContainerID = in.ContainerID - return nil -} - -// Convert_v1_ContainerStateTerminated_To_api_ContainerStateTerminated is an autogenerated conversion function. -func Convert_v1_ContainerStateTerminated_To_api_ContainerStateTerminated(in *v1.ContainerStateTerminated, out *api.ContainerStateTerminated, s conversion.Scope) error { - return autoConvert_v1_ContainerStateTerminated_To_api_ContainerStateTerminated(in, out, s) -} - -func autoConvert_api_ContainerStateTerminated_To_v1_ContainerStateTerminated(in *api.ContainerStateTerminated, out *v1.ContainerStateTerminated, s conversion.Scope) error { - out.ExitCode = in.ExitCode - out.Signal = in.Signal - out.Reason = in.Reason - out.Message = in.Message - out.StartedAt = in.StartedAt - out.FinishedAt = in.FinishedAt - out.ContainerID = in.ContainerID - return nil -} - -// Convert_api_ContainerStateTerminated_To_v1_ContainerStateTerminated is an autogenerated conversion function. -func Convert_api_ContainerStateTerminated_To_v1_ContainerStateTerminated(in *api.ContainerStateTerminated, out *v1.ContainerStateTerminated, s conversion.Scope) error { - return autoConvert_api_ContainerStateTerminated_To_v1_ContainerStateTerminated(in, out, s) -} - -func autoConvert_v1_ContainerStateWaiting_To_api_ContainerStateWaiting(in *v1.ContainerStateWaiting, out *api.ContainerStateWaiting, s conversion.Scope) error { - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1_ContainerStateWaiting_To_api_ContainerStateWaiting is an autogenerated conversion function. -func Convert_v1_ContainerStateWaiting_To_api_ContainerStateWaiting(in *v1.ContainerStateWaiting, out *api.ContainerStateWaiting, s conversion.Scope) error { - return autoConvert_v1_ContainerStateWaiting_To_api_ContainerStateWaiting(in, out, s) -} - -func autoConvert_api_ContainerStateWaiting_To_v1_ContainerStateWaiting(in *api.ContainerStateWaiting, out *v1.ContainerStateWaiting, s conversion.Scope) error { - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_api_ContainerStateWaiting_To_v1_ContainerStateWaiting is an autogenerated conversion function. -func Convert_api_ContainerStateWaiting_To_v1_ContainerStateWaiting(in *api.ContainerStateWaiting, out *v1.ContainerStateWaiting, s conversion.Scope) error { - return autoConvert_api_ContainerStateWaiting_To_v1_ContainerStateWaiting(in, out, s) -} - -func autoConvert_v1_ContainerStatus_To_api_ContainerStatus(in *v1.ContainerStatus, out *api.ContainerStatus, s conversion.Scope) error { - out.Name = in.Name - if err := Convert_v1_ContainerState_To_api_ContainerState(&in.State, &out.State, s); err != nil { - return err - } - if err := Convert_v1_ContainerState_To_api_ContainerState(&in.LastTerminationState, &out.LastTerminationState, s); err != nil { - return err - } - out.Ready = in.Ready - out.RestartCount = in.RestartCount - out.Image = in.Image - out.ImageID = in.ImageID - out.ContainerID = in.ContainerID - return nil -} - -// Convert_v1_ContainerStatus_To_api_ContainerStatus is an autogenerated conversion function. -func Convert_v1_ContainerStatus_To_api_ContainerStatus(in *v1.ContainerStatus, out *api.ContainerStatus, s conversion.Scope) error { - return autoConvert_v1_ContainerStatus_To_api_ContainerStatus(in, out, s) -} - -func autoConvert_api_ContainerStatus_To_v1_ContainerStatus(in *api.ContainerStatus, out *v1.ContainerStatus, s conversion.Scope) error { - out.Name = in.Name - if err := Convert_api_ContainerState_To_v1_ContainerState(&in.State, &out.State, s); err != nil { - return err - } - if err := Convert_api_ContainerState_To_v1_ContainerState(&in.LastTerminationState, &out.LastTerminationState, s); err != nil { - return err - } - out.Ready = in.Ready - out.RestartCount = in.RestartCount - out.Image = in.Image - out.ImageID = in.ImageID - out.ContainerID = in.ContainerID - return nil -} - -// Convert_api_ContainerStatus_To_v1_ContainerStatus is an autogenerated conversion function. -func Convert_api_ContainerStatus_To_v1_ContainerStatus(in *api.ContainerStatus, out *v1.ContainerStatus, s conversion.Scope) error { - return autoConvert_api_ContainerStatus_To_v1_ContainerStatus(in, out, s) -} - -func autoConvert_v1_DaemonEndpoint_To_api_DaemonEndpoint(in *v1.DaemonEndpoint, out *api.DaemonEndpoint, s conversion.Scope) error { - out.Port = in.Port - return nil -} - -// Convert_v1_DaemonEndpoint_To_api_DaemonEndpoint is an autogenerated conversion function. -func Convert_v1_DaemonEndpoint_To_api_DaemonEndpoint(in *v1.DaemonEndpoint, out *api.DaemonEndpoint, s conversion.Scope) error { - return autoConvert_v1_DaemonEndpoint_To_api_DaemonEndpoint(in, out, s) -} - -func autoConvert_api_DaemonEndpoint_To_v1_DaemonEndpoint(in *api.DaemonEndpoint, out *v1.DaemonEndpoint, s conversion.Scope) error { - out.Port = in.Port - return nil -} - -// Convert_api_DaemonEndpoint_To_v1_DaemonEndpoint is an autogenerated conversion function. -func Convert_api_DaemonEndpoint_To_v1_DaemonEndpoint(in *api.DaemonEndpoint, out *v1.DaemonEndpoint, s conversion.Scope) error { - return autoConvert_api_DaemonEndpoint_To_v1_DaemonEndpoint(in, out, s) -} - -func autoConvert_v1_DeleteOptions_To_api_DeleteOptions(in *v1.DeleteOptions, out *api.DeleteOptions, s conversion.Scope) error { - out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds)) - out.Preconditions = (*api.Preconditions)(unsafe.Pointer(in.Preconditions)) - out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents)) - out.PropagationPolicy = (*api.DeletionPropagation)(unsafe.Pointer(in.PropagationPolicy)) - return nil -} - -// Convert_v1_DeleteOptions_To_api_DeleteOptions is an autogenerated conversion function. -func Convert_v1_DeleteOptions_To_api_DeleteOptions(in *v1.DeleteOptions, out *api.DeleteOptions, s conversion.Scope) error { - return autoConvert_v1_DeleteOptions_To_api_DeleteOptions(in, out, s) -} - -func autoConvert_api_DeleteOptions_To_v1_DeleteOptions(in *api.DeleteOptions, out *v1.DeleteOptions, s conversion.Scope) error { - out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds)) - out.Preconditions = (*v1.Preconditions)(unsafe.Pointer(in.Preconditions)) - out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents)) - out.PropagationPolicy = (*v1.DeletionPropagation)(unsafe.Pointer(in.PropagationPolicy)) - return nil -} - -// Convert_api_DeleteOptions_To_v1_DeleteOptions is an autogenerated conversion function. -func Convert_api_DeleteOptions_To_v1_DeleteOptions(in *api.DeleteOptions, out *v1.DeleteOptions, s conversion.Scope) error { - return autoConvert_api_DeleteOptions_To_v1_DeleteOptions(in, out, s) -} - -func autoConvert_v1_DownwardAPIProjection_To_api_DownwardAPIProjection(in *v1.DownwardAPIProjection, out *api.DownwardAPIProjection, s conversion.Scope) error { - out.Items = *(*[]api.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_DownwardAPIProjection_To_api_DownwardAPIProjection is an autogenerated conversion function. -func Convert_v1_DownwardAPIProjection_To_api_DownwardAPIProjection(in *v1.DownwardAPIProjection, out *api.DownwardAPIProjection, s conversion.Scope) error { - return autoConvert_v1_DownwardAPIProjection_To_api_DownwardAPIProjection(in, out, s) -} - -func autoConvert_api_DownwardAPIProjection_To_v1_DownwardAPIProjection(in *api.DownwardAPIProjection, out *v1.DownwardAPIProjection, s conversion.Scope) error { - out.Items = *(*[]v1.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_DownwardAPIProjection_To_v1_DownwardAPIProjection is an autogenerated conversion function. -func Convert_api_DownwardAPIProjection_To_v1_DownwardAPIProjection(in *api.DownwardAPIProjection, out *v1.DownwardAPIProjection, s conversion.Scope) error { - return autoConvert_api_DownwardAPIProjection_To_v1_DownwardAPIProjection(in, out, s) -} - -func autoConvert_v1_DownwardAPIVolumeFile_To_api_DownwardAPIVolumeFile(in *v1.DownwardAPIVolumeFile, out *api.DownwardAPIVolumeFile, s conversion.Scope) error { - out.Path = in.Path - out.FieldRef = (*api.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef)) - out.ResourceFieldRef = (*api.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef)) - out.Mode = (*int32)(unsafe.Pointer(in.Mode)) - return nil -} - -// Convert_v1_DownwardAPIVolumeFile_To_api_DownwardAPIVolumeFile is an autogenerated conversion function. -func Convert_v1_DownwardAPIVolumeFile_To_api_DownwardAPIVolumeFile(in *v1.DownwardAPIVolumeFile, out *api.DownwardAPIVolumeFile, s conversion.Scope) error { - return autoConvert_v1_DownwardAPIVolumeFile_To_api_DownwardAPIVolumeFile(in, out, s) -} - -func autoConvert_api_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile(in *api.DownwardAPIVolumeFile, out *v1.DownwardAPIVolumeFile, s conversion.Scope) error { - out.Path = in.Path - out.FieldRef = (*v1.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef)) - out.ResourceFieldRef = (*v1.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef)) - out.Mode = (*int32)(unsafe.Pointer(in.Mode)) - return nil -} - -// Convert_api_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile is an autogenerated conversion function. -func Convert_api_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile(in *api.DownwardAPIVolumeFile, out *v1.DownwardAPIVolumeFile, s conversion.Scope) error { - return autoConvert_api_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile(in, out, s) -} - -func autoConvert_v1_DownwardAPIVolumeSource_To_api_DownwardAPIVolumeSource(in *v1.DownwardAPIVolumeSource, out *api.DownwardAPIVolumeSource, s conversion.Scope) error { - out.Items = *(*[]api.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items)) - out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) - return nil -} - -// Convert_v1_DownwardAPIVolumeSource_To_api_DownwardAPIVolumeSource is an autogenerated conversion function. -func Convert_v1_DownwardAPIVolumeSource_To_api_DownwardAPIVolumeSource(in *v1.DownwardAPIVolumeSource, out *api.DownwardAPIVolumeSource, s conversion.Scope) error { - return autoConvert_v1_DownwardAPIVolumeSource_To_api_DownwardAPIVolumeSource(in, out, s) -} - -func autoConvert_api_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource(in *api.DownwardAPIVolumeSource, out *v1.DownwardAPIVolumeSource, s conversion.Scope) error { - out.Items = *(*[]v1.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items)) - out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) - return nil -} - -// Convert_api_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource is an autogenerated conversion function. -func Convert_api_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource(in *api.DownwardAPIVolumeSource, out *v1.DownwardAPIVolumeSource, s conversion.Scope) error { - return autoConvert_api_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource(in, out, s) -} - -func autoConvert_v1_EmptyDirVolumeSource_To_api_EmptyDirVolumeSource(in *v1.EmptyDirVolumeSource, out *api.EmptyDirVolumeSource, s conversion.Scope) error { - out.Medium = api.StorageMedium(in.Medium) - out.SizeLimit = (*resource.Quantity)(unsafe.Pointer(in.SizeLimit)) - return nil -} - -// Convert_v1_EmptyDirVolumeSource_To_api_EmptyDirVolumeSource is an autogenerated conversion function. -func Convert_v1_EmptyDirVolumeSource_To_api_EmptyDirVolumeSource(in *v1.EmptyDirVolumeSource, out *api.EmptyDirVolumeSource, s conversion.Scope) error { - return autoConvert_v1_EmptyDirVolumeSource_To_api_EmptyDirVolumeSource(in, out, s) -} - -func autoConvert_api_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource(in *api.EmptyDirVolumeSource, out *v1.EmptyDirVolumeSource, s conversion.Scope) error { - out.Medium = v1.StorageMedium(in.Medium) - out.SizeLimit = (*resource.Quantity)(unsafe.Pointer(in.SizeLimit)) - return nil -} - -// Convert_api_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource is an autogenerated conversion function. -func Convert_api_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource(in *api.EmptyDirVolumeSource, out *v1.EmptyDirVolumeSource, s conversion.Scope) error { - return autoConvert_api_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource(in, out, s) -} - -func autoConvert_v1_EndpointAddress_To_api_EndpointAddress(in *v1.EndpointAddress, out *api.EndpointAddress, s conversion.Scope) error { - out.IP = in.IP - out.Hostname = in.Hostname - out.NodeName = (*string)(unsafe.Pointer(in.NodeName)) - out.TargetRef = (*api.ObjectReference)(unsafe.Pointer(in.TargetRef)) - return nil -} - -// Convert_v1_EndpointAddress_To_api_EndpointAddress is an autogenerated conversion function. -func Convert_v1_EndpointAddress_To_api_EndpointAddress(in *v1.EndpointAddress, out *api.EndpointAddress, s conversion.Scope) error { - return autoConvert_v1_EndpointAddress_To_api_EndpointAddress(in, out, s) -} - -func autoConvert_api_EndpointAddress_To_v1_EndpointAddress(in *api.EndpointAddress, out *v1.EndpointAddress, s conversion.Scope) error { - out.IP = in.IP - out.Hostname = in.Hostname - out.NodeName = (*string)(unsafe.Pointer(in.NodeName)) - out.TargetRef = (*v1.ObjectReference)(unsafe.Pointer(in.TargetRef)) - return nil -} - -// Convert_api_EndpointAddress_To_v1_EndpointAddress is an autogenerated conversion function. -func Convert_api_EndpointAddress_To_v1_EndpointAddress(in *api.EndpointAddress, out *v1.EndpointAddress, s conversion.Scope) error { - return autoConvert_api_EndpointAddress_To_v1_EndpointAddress(in, out, s) -} - -func autoConvert_v1_EndpointPort_To_api_EndpointPort(in *v1.EndpointPort, out *api.EndpointPort, s conversion.Scope) error { - out.Name = in.Name - out.Port = in.Port - out.Protocol = api.Protocol(in.Protocol) - return nil -} - -// Convert_v1_EndpointPort_To_api_EndpointPort is an autogenerated conversion function. -func Convert_v1_EndpointPort_To_api_EndpointPort(in *v1.EndpointPort, out *api.EndpointPort, s conversion.Scope) error { - return autoConvert_v1_EndpointPort_To_api_EndpointPort(in, out, s) -} - -func autoConvert_api_EndpointPort_To_v1_EndpointPort(in *api.EndpointPort, out *v1.EndpointPort, s conversion.Scope) error { - out.Name = in.Name - out.Port = in.Port - out.Protocol = v1.Protocol(in.Protocol) - return nil -} - -// Convert_api_EndpointPort_To_v1_EndpointPort is an autogenerated conversion function. -func Convert_api_EndpointPort_To_v1_EndpointPort(in *api.EndpointPort, out *v1.EndpointPort, s conversion.Scope) error { - return autoConvert_api_EndpointPort_To_v1_EndpointPort(in, out, s) -} - -func autoConvert_v1_EndpointSubset_To_api_EndpointSubset(in *v1.EndpointSubset, out *api.EndpointSubset, s conversion.Scope) error { - out.Addresses = *(*[]api.EndpointAddress)(unsafe.Pointer(&in.Addresses)) - out.NotReadyAddresses = *(*[]api.EndpointAddress)(unsafe.Pointer(&in.NotReadyAddresses)) - out.Ports = *(*[]api.EndpointPort)(unsafe.Pointer(&in.Ports)) - return nil -} - -// Convert_v1_EndpointSubset_To_api_EndpointSubset is an autogenerated conversion function. -func Convert_v1_EndpointSubset_To_api_EndpointSubset(in *v1.EndpointSubset, out *api.EndpointSubset, s conversion.Scope) error { - return autoConvert_v1_EndpointSubset_To_api_EndpointSubset(in, out, s) -} - -func autoConvert_api_EndpointSubset_To_v1_EndpointSubset(in *api.EndpointSubset, out *v1.EndpointSubset, s conversion.Scope) error { - out.Addresses = *(*[]v1.EndpointAddress)(unsafe.Pointer(&in.Addresses)) - out.NotReadyAddresses = *(*[]v1.EndpointAddress)(unsafe.Pointer(&in.NotReadyAddresses)) - out.Ports = *(*[]v1.EndpointPort)(unsafe.Pointer(&in.Ports)) - return nil -} - -// Convert_api_EndpointSubset_To_v1_EndpointSubset is an autogenerated conversion function. -func Convert_api_EndpointSubset_To_v1_EndpointSubset(in *api.EndpointSubset, out *v1.EndpointSubset, s conversion.Scope) error { - return autoConvert_api_EndpointSubset_To_v1_EndpointSubset(in, out, s) -} - -func autoConvert_v1_Endpoints_To_api_Endpoints(in *v1.Endpoints, out *api.Endpoints, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Subsets = *(*[]api.EndpointSubset)(unsafe.Pointer(&in.Subsets)) - return nil -} - -// Convert_v1_Endpoints_To_api_Endpoints is an autogenerated conversion function. -func Convert_v1_Endpoints_To_api_Endpoints(in *v1.Endpoints, out *api.Endpoints, s conversion.Scope) error { - return autoConvert_v1_Endpoints_To_api_Endpoints(in, out, s) -} - -func autoConvert_api_Endpoints_To_v1_Endpoints(in *api.Endpoints, out *v1.Endpoints, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Subsets = *(*[]v1.EndpointSubset)(unsafe.Pointer(&in.Subsets)) - return nil -} - -// Convert_api_Endpoints_To_v1_Endpoints is an autogenerated conversion function. -func Convert_api_Endpoints_To_v1_Endpoints(in *api.Endpoints, out *v1.Endpoints, s conversion.Scope) error { - return autoConvert_api_Endpoints_To_v1_Endpoints(in, out, s) -} - -func autoConvert_v1_EndpointsList_To_api_EndpointsList(in *v1.EndpointsList, out *api.EndpointsList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.Endpoints)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_EndpointsList_To_api_EndpointsList is an autogenerated conversion function. -func Convert_v1_EndpointsList_To_api_EndpointsList(in *v1.EndpointsList, out *api.EndpointsList, s conversion.Scope) error { - return autoConvert_v1_EndpointsList_To_api_EndpointsList(in, out, s) -} - -func autoConvert_api_EndpointsList_To_v1_EndpointsList(in *api.EndpointsList, out *v1.EndpointsList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.Endpoints)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_EndpointsList_To_v1_EndpointsList is an autogenerated conversion function. -func Convert_api_EndpointsList_To_v1_EndpointsList(in *api.EndpointsList, out *v1.EndpointsList, s conversion.Scope) error { - return autoConvert_api_EndpointsList_To_v1_EndpointsList(in, out, s) -} - -func autoConvert_v1_EnvFromSource_To_api_EnvFromSource(in *v1.EnvFromSource, out *api.EnvFromSource, s conversion.Scope) error { - out.Prefix = in.Prefix - out.ConfigMapRef = (*api.ConfigMapEnvSource)(unsafe.Pointer(in.ConfigMapRef)) - out.SecretRef = (*api.SecretEnvSource)(unsafe.Pointer(in.SecretRef)) - return nil -} - -// Convert_v1_EnvFromSource_To_api_EnvFromSource is an autogenerated conversion function. -func Convert_v1_EnvFromSource_To_api_EnvFromSource(in *v1.EnvFromSource, out *api.EnvFromSource, s conversion.Scope) error { - return autoConvert_v1_EnvFromSource_To_api_EnvFromSource(in, out, s) -} - -func autoConvert_api_EnvFromSource_To_v1_EnvFromSource(in *api.EnvFromSource, out *v1.EnvFromSource, s conversion.Scope) error { - out.Prefix = in.Prefix - out.ConfigMapRef = (*v1.ConfigMapEnvSource)(unsafe.Pointer(in.ConfigMapRef)) - out.SecretRef = (*v1.SecretEnvSource)(unsafe.Pointer(in.SecretRef)) - return nil -} - -// Convert_api_EnvFromSource_To_v1_EnvFromSource is an autogenerated conversion function. -func Convert_api_EnvFromSource_To_v1_EnvFromSource(in *api.EnvFromSource, out *v1.EnvFromSource, s conversion.Scope) error { - return autoConvert_api_EnvFromSource_To_v1_EnvFromSource(in, out, s) -} - -func autoConvert_v1_EnvVar_To_api_EnvVar(in *v1.EnvVar, out *api.EnvVar, s conversion.Scope) error { - out.Name = in.Name - out.Value = in.Value - out.ValueFrom = (*api.EnvVarSource)(unsafe.Pointer(in.ValueFrom)) - return nil -} - -// Convert_v1_EnvVar_To_api_EnvVar is an autogenerated conversion function. -func Convert_v1_EnvVar_To_api_EnvVar(in *v1.EnvVar, out *api.EnvVar, s conversion.Scope) error { - return autoConvert_v1_EnvVar_To_api_EnvVar(in, out, s) -} - -func autoConvert_api_EnvVar_To_v1_EnvVar(in *api.EnvVar, out *v1.EnvVar, s conversion.Scope) error { - out.Name = in.Name - out.Value = in.Value - out.ValueFrom = (*v1.EnvVarSource)(unsafe.Pointer(in.ValueFrom)) - return nil -} - -// Convert_api_EnvVar_To_v1_EnvVar is an autogenerated conversion function. -func Convert_api_EnvVar_To_v1_EnvVar(in *api.EnvVar, out *v1.EnvVar, s conversion.Scope) error { - return autoConvert_api_EnvVar_To_v1_EnvVar(in, out, s) -} - -func autoConvert_v1_EnvVarSource_To_api_EnvVarSource(in *v1.EnvVarSource, out *api.EnvVarSource, s conversion.Scope) error { - out.FieldRef = (*api.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef)) - out.ResourceFieldRef = (*api.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef)) - out.ConfigMapKeyRef = (*api.ConfigMapKeySelector)(unsafe.Pointer(in.ConfigMapKeyRef)) - out.SecretKeyRef = (*api.SecretKeySelector)(unsafe.Pointer(in.SecretKeyRef)) - return nil -} - -// Convert_v1_EnvVarSource_To_api_EnvVarSource is an autogenerated conversion function. -func Convert_v1_EnvVarSource_To_api_EnvVarSource(in *v1.EnvVarSource, out *api.EnvVarSource, s conversion.Scope) error { - return autoConvert_v1_EnvVarSource_To_api_EnvVarSource(in, out, s) -} - -func autoConvert_api_EnvVarSource_To_v1_EnvVarSource(in *api.EnvVarSource, out *v1.EnvVarSource, s conversion.Scope) error { - out.FieldRef = (*v1.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef)) - out.ResourceFieldRef = (*v1.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef)) - out.ConfigMapKeyRef = (*v1.ConfigMapKeySelector)(unsafe.Pointer(in.ConfigMapKeyRef)) - out.SecretKeyRef = (*v1.SecretKeySelector)(unsafe.Pointer(in.SecretKeyRef)) - return nil -} - -// Convert_api_EnvVarSource_To_v1_EnvVarSource is an autogenerated conversion function. -func Convert_api_EnvVarSource_To_v1_EnvVarSource(in *api.EnvVarSource, out *v1.EnvVarSource, s conversion.Scope) error { - return autoConvert_api_EnvVarSource_To_v1_EnvVarSource(in, out, s) -} - -func autoConvert_v1_Event_To_api_Event(in *v1.Event, out *api.Event, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_ObjectReference_To_api_ObjectReference(&in.InvolvedObject, &out.InvolvedObject, s); err != nil { - return err - } - out.Reason = in.Reason - out.Message = in.Message - if err := Convert_v1_EventSource_To_api_EventSource(&in.Source, &out.Source, s); err != nil { - return err - } - out.FirstTimestamp = in.FirstTimestamp - out.LastTimestamp = in.LastTimestamp - out.Count = in.Count - out.Type = in.Type - return nil -} - -// Convert_v1_Event_To_api_Event is an autogenerated conversion function. -func Convert_v1_Event_To_api_Event(in *v1.Event, out *api.Event, s conversion.Scope) error { - return autoConvert_v1_Event_To_api_Event(in, out, s) -} - -func autoConvert_api_Event_To_v1_Event(in *api.Event, out *v1.Event, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_ObjectReference_To_v1_ObjectReference(&in.InvolvedObject, &out.InvolvedObject, s); err != nil { - return err - } - out.Reason = in.Reason - out.Message = in.Message - if err := Convert_api_EventSource_To_v1_EventSource(&in.Source, &out.Source, s); err != nil { - return err - } - out.FirstTimestamp = in.FirstTimestamp - out.LastTimestamp = in.LastTimestamp - out.Count = in.Count - out.Type = in.Type - return nil -} - -// Convert_api_Event_To_v1_Event is an autogenerated conversion function. -func Convert_api_Event_To_v1_Event(in *api.Event, out *v1.Event, s conversion.Scope) error { - return autoConvert_api_Event_To_v1_Event(in, out, s) -} - -func autoConvert_v1_EventList_To_api_EventList(in *v1.EventList, out *api.EventList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.Event)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_EventList_To_api_EventList is an autogenerated conversion function. -func Convert_v1_EventList_To_api_EventList(in *v1.EventList, out *api.EventList, s conversion.Scope) error { - return autoConvert_v1_EventList_To_api_EventList(in, out, s) -} - -func autoConvert_api_EventList_To_v1_EventList(in *api.EventList, out *v1.EventList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.Event)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_EventList_To_v1_EventList is an autogenerated conversion function. -func Convert_api_EventList_To_v1_EventList(in *api.EventList, out *v1.EventList, s conversion.Scope) error { - return autoConvert_api_EventList_To_v1_EventList(in, out, s) -} - -func autoConvert_v1_EventSource_To_api_EventSource(in *v1.EventSource, out *api.EventSource, s conversion.Scope) error { - out.Component = in.Component - out.Host = in.Host - return nil -} - -// Convert_v1_EventSource_To_api_EventSource is an autogenerated conversion function. -func Convert_v1_EventSource_To_api_EventSource(in *v1.EventSource, out *api.EventSource, s conversion.Scope) error { - return autoConvert_v1_EventSource_To_api_EventSource(in, out, s) -} - -func autoConvert_api_EventSource_To_v1_EventSource(in *api.EventSource, out *v1.EventSource, s conversion.Scope) error { - out.Component = in.Component - out.Host = in.Host - return nil -} - -// Convert_api_EventSource_To_v1_EventSource is an autogenerated conversion function. -func Convert_api_EventSource_To_v1_EventSource(in *api.EventSource, out *v1.EventSource, s conversion.Scope) error { - return autoConvert_api_EventSource_To_v1_EventSource(in, out, s) -} - -func autoConvert_v1_ExecAction_To_api_ExecAction(in *v1.ExecAction, out *api.ExecAction, s conversion.Scope) error { - out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) - return nil -} - -// Convert_v1_ExecAction_To_api_ExecAction is an autogenerated conversion function. -func Convert_v1_ExecAction_To_api_ExecAction(in *v1.ExecAction, out *api.ExecAction, s conversion.Scope) error { - return autoConvert_v1_ExecAction_To_api_ExecAction(in, out, s) -} - -func autoConvert_api_ExecAction_To_v1_ExecAction(in *api.ExecAction, out *v1.ExecAction, s conversion.Scope) error { - out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) - return nil -} - -// Convert_api_ExecAction_To_v1_ExecAction is an autogenerated conversion function. -func Convert_api_ExecAction_To_v1_ExecAction(in *api.ExecAction, out *v1.ExecAction, s conversion.Scope) error { - return autoConvert_api_ExecAction_To_v1_ExecAction(in, out, s) -} - -func autoConvert_v1_FCVolumeSource_To_api_FCVolumeSource(in *v1.FCVolumeSource, out *api.FCVolumeSource, s conversion.Scope) error { - out.TargetWWNs = *(*[]string)(unsafe.Pointer(&in.TargetWWNs)) - out.Lun = (*int32)(unsafe.Pointer(in.Lun)) - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - out.WWIDs = *(*[]string)(unsafe.Pointer(&in.WWIDs)) - return nil -} - -// Convert_v1_FCVolumeSource_To_api_FCVolumeSource is an autogenerated conversion function. -func Convert_v1_FCVolumeSource_To_api_FCVolumeSource(in *v1.FCVolumeSource, out *api.FCVolumeSource, s conversion.Scope) error { - return autoConvert_v1_FCVolumeSource_To_api_FCVolumeSource(in, out, s) -} - -func autoConvert_api_FCVolumeSource_To_v1_FCVolumeSource(in *api.FCVolumeSource, out *v1.FCVolumeSource, s conversion.Scope) error { - out.TargetWWNs = *(*[]string)(unsafe.Pointer(&in.TargetWWNs)) - out.Lun = (*int32)(unsafe.Pointer(in.Lun)) - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - out.WWIDs = *(*[]string)(unsafe.Pointer(&in.WWIDs)) - return nil -} - -// Convert_api_FCVolumeSource_To_v1_FCVolumeSource is an autogenerated conversion function. -func Convert_api_FCVolumeSource_To_v1_FCVolumeSource(in *api.FCVolumeSource, out *v1.FCVolumeSource, s conversion.Scope) error { - return autoConvert_api_FCVolumeSource_To_v1_FCVolumeSource(in, out, s) -} - -func autoConvert_v1_FlexVolumeSource_To_api_FlexVolumeSource(in *v1.FlexVolumeSource, out *api.FlexVolumeSource, s conversion.Scope) error { - out.Driver = in.Driver - out.FSType = in.FSType - out.SecretRef = (*api.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.ReadOnly = in.ReadOnly - out.Options = *(*map[string]string)(unsafe.Pointer(&in.Options)) - return nil -} - -// Convert_v1_FlexVolumeSource_To_api_FlexVolumeSource is an autogenerated conversion function. -func Convert_v1_FlexVolumeSource_To_api_FlexVolumeSource(in *v1.FlexVolumeSource, out *api.FlexVolumeSource, s conversion.Scope) error { - return autoConvert_v1_FlexVolumeSource_To_api_FlexVolumeSource(in, out, s) -} - -func autoConvert_api_FlexVolumeSource_To_v1_FlexVolumeSource(in *api.FlexVolumeSource, out *v1.FlexVolumeSource, s conversion.Scope) error { - out.Driver = in.Driver - out.FSType = in.FSType - out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.ReadOnly = in.ReadOnly - out.Options = *(*map[string]string)(unsafe.Pointer(&in.Options)) - return nil -} - -// Convert_api_FlexVolumeSource_To_v1_FlexVolumeSource is an autogenerated conversion function. -func Convert_api_FlexVolumeSource_To_v1_FlexVolumeSource(in *api.FlexVolumeSource, out *v1.FlexVolumeSource, s conversion.Scope) error { - return autoConvert_api_FlexVolumeSource_To_v1_FlexVolumeSource(in, out, s) -} - -func autoConvert_v1_FlockerVolumeSource_To_api_FlockerVolumeSource(in *v1.FlockerVolumeSource, out *api.FlockerVolumeSource, s conversion.Scope) error { - out.DatasetName = in.DatasetName - out.DatasetUUID = in.DatasetUUID - return nil -} - -// Convert_v1_FlockerVolumeSource_To_api_FlockerVolumeSource is an autogenerated conversion function. -func Convert_v1_FlockerVolumeSource_To_api_FlockerVolumeSource(in *v1.FlockerVolumeSource, out *api.FlockerVolumeSource, s conversion.Scope) error { - return autoConvert_v1_FlockerVolumeSource_To_api_FlockerVolumeSource(in, out, s) -} - -func autoConvert_api_FlockerVolumeSource_To_v1_FlockerVolumeSource(in *api.FlockerVolumeSource, out *v1.FlockerVolumeSource, s conversion.Scope) error { - out.DatasetName = in.DatasetName - out.DatasetUUID = in.DatasetUUID - return nil -} - -// Convert_api_FlockerVolumeSource_To_v1_FlockerVolumeSource is an autogenerated conversion function. -func Convert_api_FlockerVolumeSource_To_v1_FlockerVolumeSource(in *api.FlockerVolumeSource, out *v1.FlockerVolumeSource, s conversion.Scope) error { - return autoConvert_api_FlockerVolumeSource_To_v1_FlockerVolumeSource(in, out, s) -} - -func autoConvert_v1_GCEPersistentDiskVolumeSource_To_api_GCEPersistentDiskVolumeSource(in *v1.GCEPersistentDiskVolumeSource, out *api.GCEPersistentDiskVolumeSource, s conversion.Scope) error { - out.PDName = in.PDName - out.FSType = in.FSType - out.Partition = in.Partition - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_GCEPersistentDiskVolumeSource_To_api_GCEPersistentDiskVolumeSource is an autogenerated conversion function. -func Convert_v1_GCEPersistentDiskVolumeSource_To_api_GCEPersistentDiskVolumeSource(in *v1.GCEPersistentDiskVolumeSource, out *api.GCEPersistentDiskVolumeSource, s conversion.Scope) error { - return autoConvert_v1_GCEPersistentDiskVolumeSource_To_api_GCEPersistentDiskVolumeSource(in, out, s) -} - -func autoConvert_api_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource(in *api.GCEPersistentDiskVolumeSource, out *v1.GCEPersistentDiskVolumeSource, s conversion.Scope) error { - out.PDName = in.PDName - out.FSType = in.FSType - out.Partition = in.Partition - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource is an autogenerated conversion function. -func Convert_api_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource(in *api.GCEPersistentDiskVolumeSource, out *v1.GCEPersistentDiskVolumeSource, s conversion.Scope) error { - return autoConvert_api_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource(in, out, s) -} - -func autoConvert_v1_GitRepoVolumeSource_To_api_GitRepoVolumeSource(in *v1.GitRepoVolumeSource, out *api.GitRepoVolumeSource, s conversion.Scope) error { - out.Repository = in.Repository - out.Revision = in.Revision - out.Directory = in.Directory - return nil -} - -// Convert_v1_GitRepoVolumeSource_To_api_GitRepoVolumeSource is an autogenerated conversion function. -func Convert_v1_GitRepoVolumeSource_To_api_GitRepoVolumeSource(in *v1.GitRepoVolumeSource, out *api.GitRepoVolumeSource, s conversion.Scope) error { - return autoConvert_v1_GitRepoVolumeSource_To_api_GitRepoVolumeSource(in, out, s) -} - -func autoConvert_api_GitRepoVolumeSource_To_v1_GitRepoVolumeSource(in *api.GitRepoVolumeSource, out *v1.GitRepoVolumeSource, s conversion.Scope) error { - out.Repository = in.Repository - out.Revision = in.Revision - out.Directory = in.Directory - return nil -} - -// Convert_api_GitRepoVolumeSource_To_v1_GitRepoVolumeSource is an autogenerated conversion function. -func Convert_api_GitRepoVolumeSource_To_v1_GitRepoVolumeSource(in *api.GitRepoVolumeSource, out *v1.GitRepoVolumeSource, s conversion.Scope) error { - return autoConvert_api_GitRepoVolumeSource_To_v1_GitRepoVolumeSource(in, out, s) -} - -func autoConvert_v1_GlusterfsVolumeSource_To_api_GlusterfsVolumeSource(in *v1.GlusterfsVolumeSource, out *api.GlusterfsVolumeSource, s conversion.Scope) error { - out.EndpointsName = in.EndpointsName - out.Path = in.Path - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_GlusterfsVolumeSource_To_api_GlusterfsVolumeSource is an autogenerated conversion function. -func Convert_v1_GlusterfsVolumeSource_To_api_GlusterfsVolumeSource(in *v1.GlusterfsVolumeSource, out *api.GlusterfsVolumeSource, s conversion.Scope) error { - return autoConvert_v1_GlusterfsVolumeSource_To_api_GlusterfsVolumeSource(in, out, s) -} - -func autoConvert_api_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource(in *api.GlusterfsVolumeSource, out *v1.GlusterfsVolumeSource, s conversion.Scope) error { - out.EndpointsName = in.EndpointsName - out.Path = in.Path - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource is an autogenerated conversion function. -func Convert_api_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource(in *api.GlusterfsVolumeSource, out *v1.GlusterfsVolumeSource, s conversion.Scope) error { - return autoConvert_api_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource(in, out, s) -} - -func autoConvert_v1_HTTPGetAction_To_api_HTTPGetAction(in *v1.HTTPGetAction, out *api.HTTPGetAction, s conversion.Scope) error { - out.Path = in.Path - out.Port = in.Port - out.Host = in.Host - out.Scheme = api.URIScheme(in.Scheme) - out.HTTPHeaders = *(*[]api.HTTPHeader)(unsafe.Pointer(&in.HTTPHeaders)) - return nil -} - -// Convert_v1_HTTPGetAction_To_api_HTTPGetAction is an autogenerated conversion function. -func Convert_v1_HTTPGetAction_To_api_HTTPGetAction(in *v1.HTTPGetAction, out *api.HTTPGetAction, s conversion.Scope) error { - return autoConvert_v1_HTTPGetAction_To_api_HTTPGetAction(in, out, s) -} - -func autoConvert_api_HTTPGetAction_To_v1_HTTPGetAction(in *api.HTTPGetAction, out *v1.HTTPGetAction, s conversion.Scope) error { - out.Path = in.Path - out.Port = in.Port - out.Host = in.Host - out.Scheme = v1.URIScheme(in.Scheme) - out.HTTPHeaders = *(*[]v1.HTTPHeader)(unsafe.Pointer(&in.HTTPHeaders)) - return nil -} - -// Convert_api_HTTPGetAction_To_v1_HTTPGetAction is an autogenerated conversion function. -func Convert_api_HTTPGetAction_To_v1_HTTPGetAction(in *api.HTTPGetAction, out *v1.HTTPGetAction, s conversion.Scope) error { - return autoConvert_api_HTTPGetAction_To_v1_HTTPGetAction(in, out, s) -} - -func autoConvert_v1_HTTPHeader_To_api_HTTPHeader(in *v1.HTTPHeader, out *api.HTTPHeader, s conversion.Scope) error { - out.Name = in.Name - out.Value = in.Value - return nil -} - -// Convert_v1_HTTPHeader_To_api_HTTPHeader is an autogenerated conversion function. -func Convert_v1_HTTPHeader_To_api_HTTPHeader(in *v1.HTTPHeader, out *api.HTTPHeader, s conversion.Scope) error { - return autoConvert_v1_HTTPHeader_To_api_HTTPHeader(in, out, s) -} - -func autoConvert_api_HTTPHeader_To_v1_HTTPHeader(in *api.HTTPHeader, out *v1.HTTPHeader, s conversion.Scope) error { - out.Name = in.Name - out.Value = in.Value - return nil -} - -// Convert_api_HTTPHeader_To_v1_HTTPHeader is an autogenerated conversion function. -func Convert_api_HTTPHeader_To_v1_HTTPHeader(in *api.HTTPHeader, out *v1.HTTPHeader, s conversion.Scope) error { - return autoConvert_api_HTTPHeader_To_v1_HTTPHeader(in, out, s) -} - -func autoConvert_v1_Handler_To_api_Handler(in *v1.Handler, out *api.Handler, s conversion.Scope) error { - out.Exec = (*api.ExecAction)(unsafe.Pointer(in.Exec)) - out.HTTPGet = (*api.HTTPGetAction)(unsafe.Pointer(in.HTTPGet)) - out.TCPSocket = (*api.TCPSocketAction)(unsafe.Pointer(in.TCPSocket)) - return nil -} - -// Convert_v1_Handler_To_api_Handler is an autogenerated conversion function. -func Convert_v1_Handler_To_api_Handler(in *v1.Handler, out *api.Handler, s conversion.Scope) error { - return autoConvert_v1_Handler_To_api_Handler(in, out, s) -} - -func autoConvert_api_Handler_To_v1_Handler(in *api.Handler, out *v1.Handler, s conversion.Scope) error { - out.Exec = (*v1.ExecAction)(unsafe.Pointer(in.Exec)) - out.HTTPGet = (*v1.HTTPGetAction)(unsafe.Pointer(in.HTTPGet)) - out.TCPSocket = (*v1.TCPSocketAction)(unsafe.Pointer(in.TCPSocket)) - return nil -} - -// Convert_api_Handler_To_v1_Handler is an autogenerated conversion function. -func Convert_api_Handler_To_v1_Handler(in *api.Handler, out *v1.Handler, s conversion.Scope) error { - return autoConvert_api_Handler_To_v1_Handler(in, out, s) -} - -func autoConvert_v1_HostAlias_To_api_HostAlias(in *v1.HostAlias, out *api.HostAlias, s conversion.Scope) error { - out.IP = in.IP - out.Hostnames = *(*[]string)(unsafe.Pointer(&in.Hostnames)) - return nil -} - -// Convert_v1_HostAlias_To_api_HostAlias is an autogenerated conversion function. -func Convert_v1_HostAlias_To_api_HostAlias(in *v1.HostAlias, out *api.HostAlias, s conversion.Scope) error { - return autoConvert_v1_HostAlias_To_api_HostAlias(in, out, s) -} - -func autoConvert_api_HostAlias_To_v1_HostAlias(in *api.HostAlias, out *v1.HostAlias, s conversion.Scope) error { - out.IP = in.IP - out.Hostnames = *(*[]string)(unsafe.Pointer(&in.Hostnames)) - return nil -} - -// Convert_api_HostAlias_To_v1_HostAlias is an autogenerated conversion function. -func Convert_api_HostAlias_To_v1_HostAlias(in *api.HostAlias, out *v1.HostAlias, s conversion.Scope) error { - return autoConvert_api_HostAlias_To_v1_HostAlias(in, out, s) -} - -func autoConvert_v1_HostPathVolumeSource_To_api_HostPathVolumeSource(in *v1.HostPathVolumeSource, out *api.HostPathVolumeSource, s conversion.Scope) error { - out.Path = in.Path - out.Type = (*api.HostPathType)(unsafe.Pointer(in.Type)) - return nil -} - -// Convert_v1_HostPathVolumeSource_To_api_HostPathVolumeSource is an autogenerated conversion function. -func Convert_v1_HostPathVolumeSource_To_api_HostPathVolumeSource(in *v1.HostPathVolumeSource, out *api.HostPathVolumeSource, s conversion.Scope) error { - return autoConvert_v1_HostPathVolumeSource_To_api_HostPathVolumeSource(in, out, s) -} - -func autoConvert_api_HostPathVolumeSource_To_v1_HostPathVolumeSource(in *api.HostPathVolumeSource, out *v1.HostPathVolumeSource, s conversion.Scope) error { - out.Path = in.Path - out.Type = (*v1.HostPathType)(unsafe.Pointer(in.Type)) - return nil -} - -// Convert_api_HostPathVolumeSource_To_v1_HostPathVolumeSource is an autogenerated conversion function. -func Convert_api_HostPathVolumeSource_To_v1_HostPathVolumeSource(in *api.HostPathVolumeSource, out *v1.HostPathVolumeSource, s conversion.Scope) error { - return autoConvert_api_HostPathVolumeSource_To_v1_HostPathVolumeSource(in, out, s) -} - -func autoConvert_v1_ISCSIVolumeSource_To_api_ISCSIVolumeSource(in *v1.ISCSIVolumeSource, out *api.ISCSIVolumeSource, s conversion.Scope) error { - out.TargetPortal = in.TargetPortal - out.IQN = in.IQN - out.Lun = in.Lun - out.ISCSIInterface = in.ISCSIInterface - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - out.Portals = *(*[]string)(unsafe.Pointer(&in.Portals)) - out.DiscoveryCHAPAuth = in.DiscoveryCHAPAuth - out.SessionCHAPAuth = in.SessionCHAPAuth - out.SecretRef = (*api.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.InitiatorName = (*string)(unsafe.Pointer(in.InitiatorName)) - return nil -} - -// Convert_v1_ISCSIVolumeSource_To_api_ISCSIVolumeSource is an autogenerated conversion function. -func Convert_v1_ISCSIVolumeSource_To_api_ISCSIVolumeSource(in *v1.ISCSIVolumeSource, out *api.ISCSIVolumeSource, s conversion.Scope) error { - return autoConvert_v1_ISCSIVolumeSource_To_api_ISCSIVolumeSource(in, out, s) -} - -func autoConvert_api_ISCSIVolumeSource_To_v1_ISCSIVolumeSource(in *api.ISCSIVolumeSource, out *v1.ISCSIVolumeSource, s conversion.Scope) error { - out.TargetPortal = in.TargetPortal - out.IQN = in.IQN - out.Lun = in.Lun - out.ISCSIInterface = in.ISCSIInterface - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - out.Portals = *(*[]string)(unsafe.Pointer(&in.Portals)) - out.DiscoveryCHAPAuth = in.DiscoveryCHAPAuth - out.SessionCHAPAuth = in.SessionCHAPAuth - out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.InitiatorName = (*string)(unsafe.Pointer(in.InitiatorName)) - return nil -} - -// Convert_api_ISCSIVolumeSource_To_v1_ISCSIVolumeSource is an autogenerated conversion function. -func Convert_api_ISCSIVolumeSource_To_v1_ISCSIVolumeSource(in *api.ISCSIVolumeSource, out *v1.ISCSIVolumeSource, s conversion.Scope) error { - return autoConvert_api_ISCSIVolumeSource_To_v1_ISCSIVolumeSource(in, out, s) -} - -func autoConvert_v1_KeyToPath_To_api_KeyToPath(in *v1.KeyToPath, out *api.KeyToPath, s conversion.Scope) error { - out.Key = in.Key - out.Path = in.Path - out.Mode = (*int32)(unsafe.Pointer(in.Mode)) - return nil -} - -// Convert_v1_KeyToPath_To_api_KeyToPath is an autogenerated conversion function. -func Convert_v1_KeyToPath_To_api_KeyToPath(in *v1.KeyToPath, out *api.KeyToPath, s conversion.Scope) error { - return autoConvert_v1_KeyToPath_To_api_KeyToPath(in, out, s) -} - -func autoConvert_api_KeyToPath_To_v1_KeyToPath(in *api.KeyToPath, out *v1.KeyToPath, s conversion.Scope) error { - out.Key = in.Key - out.Path = in.Path - out.Mode = (*int32)(unsafe.Pointer(in.Mode)) - return nil -} - -// Convert_api_KeyToPath_To_v1_KeyToPath is an autogenerated conversion function. -func Convert_api_KeyToPath_To_v1_KeyToPath(in *api.KeyToPath, out *v1.KeyToPath, s conversion.Scope) error { - return autoConvert_api_KeyToPath_To_v1_KeyToPath(in, out, s) -} - -func autoConvert_v1_Lifecycle_To_api_Lifecycle(in *v1.Lifecycle, out *api.Lifecycle, s conversion.Scope) error { - out.PostStart = (*api.Handler)(unsafe.Pointer(in.PostStart)) - out.PreStop = (*api.Handler)(unsafe.Pointer(in.PreStop)) - return nil -} - -// Convert_v1_Lifecycle_To_api_Lifecycle is an autogenerated conversion function. -func Convert_v1_Lifecycle_To_api_Lifecycle(in *v1.Lifecycle, out *api.Lifecycle, s conversion.Scope) error { - return autoConvert_v1_Lifecycle_To_api_Lifecycle(in, out, s) -} - -func autoConvert_api_Lifecycle_To_v1_Lifecycle(in *api.Lifecycle, out *v1.Lifecycle, s conversion.Scope) error { - out.PostStart = (*v1.Handler)(unsafe.Pointer(in.PostStart)) - out.PreStop = (*v1.Handler)(unsafe.Pointer(in.PreStop)) - return nil -} - -// Convert_api_Lifecycle_To_v1_Lifecycle is an autogenerated conversion function. -func Convert_api_Lifecycle_To_v1_Lifecycle(in *api.Lifecycle, out *v1.Lifecycle, s conversion.Scope) error { - return autoConvert_api_Lifecycle_To_v1_Lifecycle(in, out, s) -} - -func autoConvert_v1_LimitRange_To_api_LimitRange(in *v1.LimitRange, out *api.LimitRange, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_LimitRangeSpec_To_api_LimitRangeSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1_LimitRange_To_api_LimitRange is an autogenerated conversion function. -func Convert_v1_LimitRange_To_api_LimitRange(in *v1.LimitRange, out *api.LimitRange, s conversion.Scope) error { - return autoConvert_v1_LimitRange_To_api_LimitRange(in, out, s) -} - -func autoConvert_api_LimitRange_To_v1_LimitRange(in *api.LimitRange, out *v1.LimitRange, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_LimitRangeSpec_To_v1_LimitRangeSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_api_LimitRange_To_v1_LimitRange is an autogenerated conversion function. -func Convert_api_LimitRange_To_v1_LimitRange(in *api.LimitRange, out *v1.LimitRange, s conversion.Scope) error { - return autoConvert_api_LimitRange_To_v1_LimitRange(in, out, s) -} - -func autoConvert_v1_LimitRangeItem_To_api_LimitRangeItem(in *v1.LimitRangeItem, out *api.LimitRangeItem, s conversion.Scope) error { - out.Type = api.LimitType(in.Type) - out.Max = *(*api.ResourceList)(unsafe.Pointer(&in.Max)) - out.Min = *(*api.ResourceList)(unsafe.Pointer(&in.Min)) - out.Default = *(*api.ResourceList)(unsafe.Pointer(&in.Default)) - out.DefaultRequest = *(*api.ResourceList)(unsafe.Pointer(&in.DefaultRequest)) - out.MaxLimitRequestRatio = *(*api.ResourceList)(unsafe.Pointer(&in.MaxLimitRequestRatio)) - return nil -} - -// Convert_v1_LimitRangeItem_To_api_LimitRangeItem is an autogenerated conversion function. -func Convert_v1_LimitRangeItem_To_api_LimitRangeItem(in *v1.LimitRangeItem, out *api.LimitRangeItem, s conversion.Scope) error { - return autoConvert_v1_LimitRangeItem_To_api_LimitRangeItem(in, out, s) -} - -func autoConvert_api_LimitRangeItem_To_v1_LimitRangeItem(in *api.LimitRangeItem, out *v1.LimitRangeItem, s conversion.Scope) error { - out.Type = v1.LimitType(in.Type) - out.Max = *(*v1.ResourceList)(unsafe.Pointer(&in.Max)) - out.Min = *(*v1.ResourceList)(unsafe.Pointer(&in.Min)) - out.Default = *(*v1.ResourceList)(unsafe.Pointer(&in.Default)) - out.DefaultRequest = *(*v1.ResourceList)(unsafe.Pointer(&in.DefaultRequest)) - out.MaxLimitRequestRatio = *(*v1.ResourceList)(unsafe.Pointer(&in.MaxLimitRequestRatio)) - return nil -} - -// Convert_api_LimitRangeItem_To_v1_LimitRangeItem is an autogenerated conversion function. -func Convert_api_LimitRangeItem_To_v1_LimitRangeItem(in *api.LimitRangeItem, out *v1.LimitRangeItem, s conversion.Scope) error { - return autoConvert_api_LimitRangeItem_To_v1_LimitRangeItem(in, out, s) -} - -func autoConvert_v1_LimitRangeList_To_api_LimitRangeList(in *v1.LimitRangeList, out *api.LimitRangeList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.LimitRange)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_LimitRangeList_To_api_LimitRangeList is an autogenerated conversion function. -func Convert_v1_LimitRangeList_To_api_LimitRangeList(in *v1.LimitRangeList, out *api.LimitRangeList, s conversion.Scope) error { - return autoConvert_v1_LimitRangeList_To_api_LimitRangeList(in, out, s) -} - -func autoConvert_api_LimitRangeList_To_v1_LimitRangeList(in *api.LimitRangeList, out *v1.LimitRangeList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.LimitRange)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_LimitRangeList_To_v1_LimitRangeList is an autogenerated conversion function. -func Convert_api_LimitRangeList_To_v1_LimitRangeList(in *api.LimitRangeList, out *v1.LimitRangeList, s conversion.Scope) error { - return autoConvert_api_LimitRangeList_To_v1_LimitRangeList(in, out, s) -} - -func autoConvert_v1_LimitRangeSpec_To_api_LimitRangeSpec(in *v1.LimitRangeSpec, out *api.LimitRangeSpec, s conversion.Scope) error { - out.Limits = *(*[]api.LimitRangeItem)(unsafe.Pointer(&in.Limits)) - return nil -} - -// Convert_v1_LimitRangeSpec_To_api_LimitRangeSpec is an autogenerated conversion function. -func Convert_v1_LimitRangeSpec_To_api_LimitRangeSpec(in *v1.LimitRangeSpec, out *api.LimitRangeSpec, s conversion.Scope) error { - return autoConvert_v1_LimitRangeSpec_To_api_LimitRangeSpec(in, out, s) -} - -func autoConvert_api_LimitRangeSpec_To_v1_LimitRangeSpec(in *api.LimitRangeSpec, out *v1.LimitRangeSpec, s conversion.Scope) error { - out.Limits = *(*[]v1.LimitRangeItem)(unsafe.Pointer(&in.Limits)) - return nil -} - -// Convert_api_LimitRangeSpec_To_v1_LimitRangeSpec is an autogenerated conversion function. -func Convert_api_LimitRangeSpec_To_v1_LimitRangeSpec(in *api.LimitRangeSpec, out *v1.LimitRangeSpec, s conversion.Scope) error { - return autoConvert_api_LimitRangeSpec_To_v1_LimitRangeSpec(in, out, s) -} - -func autoConvert_v1_List_To_api_List(in *v1.List, out *api.List, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]runtime.Object, len(*in)) - for i := range *in { - if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1_List_To_api_List is an autogenerated conversion function. -func Convert_v1_List_To_api_List(in *v1.List, out *api.List, s conversion.Scope) error { - return autoConvert_v1_List_To_api_List(in, out, s) -} - -func autoConvert_api_List_To_v1_List(in *api.List, out *v1.List, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]runtime.RawExtension, len(*in)) - for i := range *in { - if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_api_List_To_v1_List is an autogenerated conversion function. -func Convert_api_List_To_v1_List(in *api.List, out *v1.List, s conversion.Scope) error { - return autoConvert_api_List_To_v1_List(in, out, s) -} - -func autoConvert_v1_ListOptions_To_api_ListOptions(in *v1.ListOptions, out *api.ListOptions, s conversion.Scope) error { - if err := meta_v1.Convert_string_To_labels_Selector(&in.LabelSelector, &out.LabelSelector, s); err != nil { - return err - } - if err := meta_v1.Convert_string_To_fields_Selector(&in.FieldSelector, &out.FieldSelector, s); err != nil { - return err - } - out.IncludeUninitialized = in.IncludeUninitialized - out.Watch = in.Watch - out.ResourceVersion = in.ResourceVersion - out.TimeoutSeconds = (*int64)(unsafe.Pointer(in.TimeoutSeconds)) - return nil -} - -// Convert_v1_ListOptions_To_api_ListOptions is an autogenerated conversion function. -func Convert_v1_ListOptions_To_api_ListOptions(in *v1.ListOptions, out *api.ListOptions, s conversion.Scope) error { - return autoConvert_v1_ListOptions_To_api_ListOptions(in, out, s) -} - -func autoConvert_api_ListOptions_To_v1_ListOptions(in *api.ListOptions, out *v1.ListOptions, s conversion.Scope) error { - if err := meta_v1.Convert_labels_Selector_To_string(&in.LabelSelector, &out.LabelSelector, s); err != nil { - return err - } - if err := meta_v1.Convert_fields_Selector_To_string(&in.FieldSelector, &out.FieldSelector, s); err != nil { - return err - } - out.IncludeUninitialized = in.IncludeUninitialized - out.Watch = in.Watch - out.ResourceVersion = in.ResourceVersion - out.TimeoutSeconds = (*int64)(unsafe.Pointer(in.TimeoutSeconds)) - return nil -} - -// Convert_api_ListOptions_To_v1_ListOptions is an autogenerated conversion function. -func Convert_api_ListOptions_To_v1_ListOptions(in *api.ListOptions, out *v1.ListOptions, s conversion.Scope) error { - return autoConvert_api_ListOptions_To_v1_ListOptions(in, out, s) -} - -func autoConvert_v1_LoadBalancerIngress_To_api_LoadBalancerIngress(in *v1.LoadBalancerIngress, out *api.LoadBalancerIngress, s conversion.Scope) error { - out.IP = in.IP - out.Hostname = in.Hostname - return nil -} - -// Convert_v1_LoadBalancerIngress_To_api_LoadBalancerIngress is an autogenerated conversion function. -func Convert_v1_LoadBalancerIngress_To_api_LoadBalancerIngress(in *v1.LoadBalancerIngress, out *api.LoadBalancerIngress, s conversion.Scope) error { - return autoConvert_v1_LoadBalancerIngress_To_api_LoadBalancerIngress(in, out, s) -} - -func autoConvert_api_LoadBalancerIngress_To_v1_LoadBalancerIngress(in *api.LoadBalancerIngress, out *v1.LoadBalancerIngress, s conversion.Scope) error { - out.IP = in.IP - out.Hostname = in.Hostname - return nil -} - -// Convert_api_LoadBalancerIngress_To_v1_LoadBalancerIngress is an autogenerated conversion function. -func Convert_api_LoadBalancerIngress_To_v1_LoadBalancerIngress(in *api.LoadBalancerIngress, out *v1.LoadBalancerIngress, s conversion.Scope) error { - return autoConvert_api_LoadBalancerIngress_To_v1_LoadBalancerIngress(in, out, s) -} - -func autoConvert_v1_LoadBalancerStatus_To_api_LoadBalancerStatus(in *v1.LoadBalancerStatus, out *api.LoadBalancerStatus, s conversion.Scope) error { - out.Ingress = *(*[]api.LoadBalancerIngress)(unsafe.Pointer(&in.Ingress)) - return nil -} - -// Convert_v1_LoadBalancerStatus_To_api_LoadBalancerStatus is an autogenerated conversion function. -func Convert_v1_LoadBalancerStatus_To_api_LoadBalancerStatus(in *v1.LoadBalancerStatus, out *api.LoadBalancerStatus, s conversion.Scope) error { - return autoConvert_v1_LoadBalancerStatus_To_api_LoadBalancerStatus(in, out, s) -} - -func autoConvert_api_LoadBalancerStatus_To_v1_LoadBalancerStatus(in *api.LoadBalancerStatus, out *v1.LoadBalancerStatus, s conversion.Scope) error { - out.Ingress = *(*[]v1.LoadBalancerIngress)(unsafe.Pointer(&in.Ingress)) - return nil -} - -// Convert_api_LoadBalancerStatus_To_v1_LoadBalancerStatus is an autogenerated conversion function. -func Convert_api_LoadBalancerStatus_To_v1_LoadBalancerStatus(in *api.LoadBalancerStatus, out *v1.LoadBalancerStatus, s conversion.Scope) error { - return autoConvert_api_LoadBalancerStatus_To_v1_LoadBalancerStatus(in, out, s) -} - -func autoConvert_v1_LocalObjectReference_To_api_LocalObjectReference(in *v1.LocalObjectReference, out *api.LocalObjectReference, s conversion.Scope) error { - out.Name = in.Name - return nil -} - -// Convert_v1_LocalObjectReference_To_api_LocalObjectReference is an autogenerated conversion function. -func Convert_v1_LocalObjectReference_To_api_LocalObjectReference(in *v1.LocalObjectReference, out *api.LocalObjectReference, s conversion.Scope) error { - return autoConvert_v1_LocalObjectReference_To_api_LocalObjectReference(in, out, s) -} - -func autoConvert_api_LocalObjectReference_To_v1_LocalObjectReference(in *api.LocalObjectReference, out *v1.LocalObjectReference, s conversion.Scope) error { - out.Name = in.Name - return nil -} - -// Convert_api_LocalObjectReference_To_v1_LocalObjectReference is an autogenerated conversion function. -func Convert_api_LocalObjectReference_To_v1_LocalObjectReference(in *api.LocalObjectReference, out *v1.LocalObjectReference, s conversion.Scope) error { - return autoConvert_api_LocalObjectReference_To_v1_LocalObjectReference(in, out, s) -} - -func autoConvert_v1_LocalVolumeSource_To_api_LocalVolumeSource(in *v1.LocalVolumeSource, out *api.LocalVolumeSource, s conversion.Scope) error { - out.Path = in.Path - return nil -} - -// Convert_v1_LocalVolumeSource_To_api_LocalVolumeSource is an autogenerated conversion function. -func Convert_v1_LocalVolumeSource_To_api_LocalVolumeSource(in *v1.LocalVolumeSource, out *api.LocalVolumeSource, s conversion.Scope) error { - return autoConvert_v1_LocalVolumeSource_To_api_LocalVolumeSource(in, out, s) -} - -func autoConvert_api_LocalVolumeSource_To_v1_LocalVolumeSource(in *api.LocalVolumeSource, out *v1.LocalVolumeSource, s conversion.Scope) error { - out.Path = in.Path - return nil -} - -// Convert_api_LocalVolumeSource_To_v1_LocalVolumeSource is an autogenerated conversion function. -func Convert_api_LocalVolumeSource_To_v1_LocalVolumeSource(in *api.LocalVolumeSource, out *v1.LocalVolumeSource, s conversion.Scope) error { - return autoConvert_api_LocalVolumeSource_To_v1_LocalVolumeSource(in, out, s) -} - -func autoConvert_v1_NFSVolumeSource_To_api_NFSVolumeSource(in *v1.NFSVolumeSource, out *api.NFSVolumeSource, s conversion.Scope) error { - out.Server = in.Server - out.Path = in.Path - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_NFSVolumeSource_To_api_NFSVolumeSource is an autogenerated conversion function. -func Convert_v1_NFSVolumeSource_To_api_NFSVolumeSource(in *v1.NFSVolumeSource, out *api.NFSVolumeSource, s conversion.Scope) error { - return autoConvert_v1_NFSVolumeSource_To_api_NFSVolumeSource(in, out, s) -} - -func autoConvert_api_NFSVolumeSource_To_v1_NFSVolumeSource(in *api.NFSVolumeSource, out *v1.NFSVolumeSource, s conversion.Scope) error { - out.Server = in.Server - out.Path = in.Path - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_NFSVolumeSource_To_v1_NFSVolumeSource is an autogenerated conversion function. -func Convert_api_NFSVolumeSource_To_v1_NFSVolumeSource(in *api.NFSVolumeSource, out *v1.NFSVolumeSource, s conversion.Scope) error { - return autoConvert_api_NFSVolumeSource_To_v1_NFSVolumeSource(in, out, s) -} - -func autoConvert_v1_Namespace_To_api_Namespace(in *v1.Namespace, out *api.Namespace, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_NamespaceSpec_To_api_NamespaceSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1_NamespaceStatus_To_api_NamespaceStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1_Namespace_To_api_Namespace is an autogenerated conversion function. -func Convert_v1_Namespace_To_api_Namespace(in *v1.Namespace, out *api.Namespace, s conversion.Scope) error { - return autoConvert_v1_Namespace_To_api_Namespace(in, out, s) -} - -func autoConvert_api_Namespace_To_v1_Namespace(in *api.Namespace, out *v1.Namespace, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_NamespaceSpec_To_v1_NamespaceSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_api_NamespaceStatus_To_v1_NamespaceStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_api_Namespace_To_v1_Namespace is an autogenerated conversion function. -func Convert_api_Namespace_To_v1_Namespace(in *api.Namespace, out *v1.Namespace, s conversion.Scope) error { - return autoConvert_api_Namespace_To_v1_Namespace(in, out, s) -} - -func autoConvert_v1_NamespaceList_To_api_NamespaceList(in *v1.NamespaceList, out *api.NamespaceList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.Namespace)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_NamespaceList_To_api_NamespaceList is an autogenerated conversion function. -func Convert_v1_NamespaceList_To_api_NamespaceList(in *v1.NamespaceList, out *api.NamespaceList, s conversion.Scope) error { - return autoConvert_v1_NamespaceList_To_api_NamespaceList(in, out, s) -} - -func autoConvert_api_NamespaceList_To_v1_NamespaceList(in *api.NamespaceList, out *v1.NamespaceList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.Namespace)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_NamespaceList_To_v1_NamespaceList is an autogenerated conversion function. -func Convert_api_NamespaceList_To_v1_NamespaceList(in *api.NamespaceList, out *v1.NamespaceList, s conversion.Scope) error { - return autoConvert_api_NamespaceList_To_v1_NamespaceList(in, out, s) -} - -func autoConvert_v1_NamespaceSpec_To_api_NamespaceSpec(in *v1.NamespaceSpec, out *api.NamespaceSpec, s conversion.Scope) error { - out.Finalizers = *(*[]api.FinalizerName)(unsafe.Pointer(&in.Finalizers)) - return nil -} - -// Convert_v1_NamespaceSpec_To_api_NamespaceSpec is an autogenerated conversion function. -func Convert_v1_NamespaceSpec_To_api_NamespaceSpec(in *v1.NamespaceSpec, out *api.NamespaceSpec, s conversion.Scope) error { - return autoConvert_v1_NamespaceSpec_To_api_NamespaceSpec(in, out, s) -} - -func autoConvert_api_NamespaceSpec_To_v1_NamespaceSpec(in *api.NamespaceSpec, out *v1.NamespaceSpec, s conversion.Scope) error { - out.Finalizers = *(*[]v1.FinalizerName)(unsafe.Pointer(&in.Finalizers)) - return nil -} - -// Convert_api_NamespaceSpec_To_v1_NamespaceSpec is an autogenerated conversion function. -func Convert_api_NamespaceSpec_To_v1_NamespaceSpec(in *api.NamespaceSpec, out *v1.NamespaceSpec, s conversion.Scope) error { - return autoConvert_api_NamespaceSpec_To_v1_NamespaceSpec(in, out, s) -} - -func autoConvert_v1_NamespaceStatus_To_api_NamespaceStatus(in *v1.NamespaceStatus, out *api.NamespaceStatus, s conversion.Scope) error { - out.Phase = api.NamespacePhase(in.Phase) - return nil -} - -// Convert_v1_NamespaceStatus_To_api_NamespaceStatus is an autogenerated conversion function. -func Convert_v1_NamespaceStatus_To_api_NamespaceStatus(in *v1.NamespaceStatus, out *api.NamespaceStatus, s conversion.Scope) error { - return autoConvert_v1_NamespaceStatus_To_api_NamespaceStatus(in, out, s) -} - -func autoConvert_api_NamespaceStatus_To_v1_NamespaceStatus(in *api.NamespaceStatus, out *v1.NamespaceStatus, s conversion.Scope) error { - out.Phase = v1.NamespacePhase(in.Phase) - return nil -} - -// Convert_api_NamespaceStatus_To_v1_NamespaceStatus is an autogenerated conversion function. -func Convert_api_NamespaceStatus_To_v1_NamespaceStatus(in *api.NamespaceStatus, out *v1.NamespaceStatus, s conversion.Scope) error { - return autoConvert_api_NamespaceStatus_To_v1_NamespaceStatus(in, out, s) -} - -func autoConvert_v1_Node_To_api_Node(in *v1.Node, out *api.Node, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_NodeSpec_To_api_NodeSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1_NodeStatus_To_api_NodeStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1_Node_To_api_Node is an autogenerated conversion function. -func Convert_v1_Node_To_api_Node(in *v1.Node, out *api.Node, s conversion.Scope) error { - return autoConvert_v1_Node_To_api_Node(in, out, s) -} - -func autoConvert_api_Node_To_v1_Node(in *api.Node, out *v1.Node, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_NodeSpec_To_v1_NodeSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_api_NodeStatus_To_v1_NodeStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_api_Node_To_v1_Node is an autogenerated conversion function. -func Convert_api_Node_To_v1_Node(in *api.Node, out *v1.Node, s conversion.Scope) error { - return autoConvert_api_Node_To_v1_Node(in, out, s) -} - -func autoConvert_v1_NodeAddress_To_api_NodeAddress(in *v1.NodeAddress, out *api.NodeAddress, s conversion.Scope) error { - out.Type = api.NodeAddressType(in.Type) - out.Address = in.Address - return nil -} - -// Convert_v1_NodeAddress_To_api_NodeAddress is an autogenerated conversion function. -func Convert_v1_NodeAddress_To_api_NodeAddress(in *v1.NodeAddress, out *api.NodeAddress, s conversion.Scope) error { - return autoConvert_v1_NodeAddress_To_api_NodeAddress(in, out, s) -} - -func autoConvert_api_NodeAddress_To_v1_NodeAddress(in *api.NodeAddress, out *v1.NodeAddress, s conversion.Scope) error { - out.Type = v1.NodeAddressType(in.Type) - out.Address = in.Address - return nil -} - -// Convert_api_NodeAddress_To_v1_NodeAddress is an autogenerated conversion function. -func Convert_api_NodeAddress_To_v1_NodeAddress(in *api.NodeAddress, out *v1.NodeAddress, s conversion.Scope) error { - return autoConvert_api_NodeAddress_To_v1_NodeAddress(in, out, s) -} - -func autoConvert_v1_NodeAffinity_To_api_NodeAffinity(in *v1.NodeAffinity, out *api.NodeAffinity, s conversion.Scope) error { - out.RequiredDuringSchedulingIgnoredDuringExecution = (*api.NodeSelector)(unsafe.Pointer(in.RequiredDuringSchedulingIgnoredDuringExecution)) - out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]api.PreferredSchedulingTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) - return nil -} - -// Convert_v1_NodeAffinity_To_api_NodeAffinity is an autogenerated conversion function. -func Convert_v1_NodeAffinity_To_api_NodeAffinity(in *v1.NodeAffinity, out *api.NodeAffinity, s conversion.Scope) error { - return autoConvert_v1_NodeAffinity_To_api_NodeAffinity(in, out, s) -} - -func autoConvert_api_NodeAffinity_To_v1_NodeAffinity(in *api.NodeAffinity, out *v1.NodeAffinity, s conversion.Scope) error { - out.RequiredDuringSchedulingIgnoredDuringExecution = (*v1.NodeSelector)(unsafe.Pointer(in.RequiredDuringSchedulingIgnoredDuringExecution)) - out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]v1.PreferredSchedulingTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) - return nil -} - -// Convert_api_NodeAffinity_To_v1_NodeAffinity is an autogenerated conversion function. -func Convert_api_NodeAffinity_To_v1_NodeAffinity(in *api.NodeAffinity, out *v1.NodeAffinity, s conversion.Scope) error { - return autoConvert_api_NodeAffinity_To_v1_NodeAffinity(in, out, s) -} - -func autoConvert_v1_NodeCondition_To_api_NodeCondition(in *v1.NodeCondition, out *api.NodeCondition, s conversion.Scope) error { - out.Type = api.NodeConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) - out.LastHeartbeatTime = in.LastHeartbeatTime - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1_NodeCondition_To_api_NodeCondition is an autogenerated conversion function. -func Convert_v1_NodeCondition_To_api_NodeCondition(in *v1.NodeCondition, out *api.NodeCondition, s conversion.Scope) error { - return autoConvert_v1_NodeCondition_To_api_NodeCondition(in, out, s) -} - -func autoConvert_api_NodeCondition_To_v1_NodeCondition(in *api.NodeCondition, out *v1.NodeCondition, s conversion.Scope) error { - out.Type = v1.NodeConditionType(in.Type) - out.Status = v1.ConditionStatus(in.Status) - out.LastHeartbeatTime = in.LastHeartbeatTime - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_api_NodeCondition_To_v1_NodeCondition is an autogenerated conversion function. -func Convert_api_NodeCondition_To_v1_NodeCondition(in *api.NodeCondition, out *v1.NodeCondition, s conversion.Scope) error { - return autoConvert_api_NodeCondition_To_v1_NodeCondition(in, out, s) -} - -func autoConvert_v1_NodeConfigSource_To_api_NodeConfigSource(in *v1.NodeConfigSource, out *api.NodeConfigSource, s conversion.Scope) error { - out.ConfigMapRef = (*api.ObjectReference)(unsafe.Pointer(in.ConfigMapRef)) - return nil -} - -// Convert_v1_NodeConfigSource_To_api_NodeConfigSource is an autogenerated conversion function. -func Convert_v1_NodeConfigSource_To_api_NodeConfigSource(in *v1.NodeConfigSource, out *api.NodeConfigSource, s conversion.Scope) error { - return autoConvert_v1_NodeConfigSource_To_api_NodeConfigSource(in, out, s) -} - -func autoConvert_api_NodeConfigSource_To_v1_NodeConfigSource(in *api.NodeConfigSource, out *v1.NodeConfigSource, s conversion.Scope) error { - out.ConfigMapRef = (*v1.ObjectReference)(unsafe.Pointer(in.ConfigMapRef)) - return nil -} - -// Convert_api_NodeConfigSource_To_v1_NodeConfigSource is an autogenerated conversion function. -func Convert_api_NodeConfigSource_To_v1_NodeConfigSource(in *api.NodeConfigSource, out *v1.NodeConfigSource, s conversion.Scope) error { - return autoConvert_api_NodeConfigSource_To_v1_NodeConfigSource(in, out, s) -} - -func autoConvert_v1_NodeDaemonEndpoints_To_api_NodeDaemonEndpoints(in *v1.NodeDaemonEndpoints, out *api.NodeDaemonEndpoints, s conversion.Scope) error { - if err := Convert_v1_DaemonEndpoint_To_api_DaemonEndpoint(&in.KubeletEndpoint, &out.KubeletEndpoint, s); err != nil { - return err - } - return nil -} - -// Convert_v1_NodeDaemonEndpoints_To_api_NodeDaemonEndpoints is an autogenerated conversion function. -func Convert_v1_NodeDaemonEndpoints_To_api_NodeDaemonEndpoints(in *v1.NodeDaemonEndpoints, out *api.NodeDaemonEndpoints, s conversion.Scope) error { - return autoConvert_v1_NodeDaemonEndpoints_To_api_NodeDaemonEndpoints(in, out, s) -} - -func autoConvert_api_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in *api.NodeDaemonEndpoints, out *v1.NodeDaemonEndpoints, s conversion.Scope) error { - if err := Convert_api_DaemonEndpoint_To_v1_DaemonEndpoint(&in.KubeletEndpoint, &out.KubeletEndpoint, s); err != nil { - return err - } - return nil -} - -// Convert_api_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints is an autogenerated conversion function. -func Convert_api_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in *api.NodeDaemonEndpoints, out *v1.NodeDaemonEndpoints, s conversion.Scope) error { - return autoConvert_api_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in, out, s) -} - -func autoConvert_v1_NodeList_To_api_NodeList(in *v1.NodeList, out *api.NodeList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.Node)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_NodeList_To_api_NodeList is an autogenerated conversion function. -func Convert_v1_NodeList_To_api_NodeList(in *v1.NodeList, out *api.NodeList, s conversion.Scope) error { - return autoConvert_v1_NodeList_To_api_NodeList(in, out, s) -} - -func autoConvert_api_NodeList_To_v1_NodeList(in *api.NodeList, out *v1.NodeList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.Node)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_NodeList_To_v1_NodeList is an autogenerated conversion function. -func Convert_api_NodeList_To_v1_NodeList(in *api.NodeList, out *v1.NodeList, s conversion.Scope) error { - return autoConvert_api_NodeList_To_v1_NodeList(in, out, s) -} - -func autoConvert_v1_NodeProxyOptions_To_api_NodeProxyOptions(in *v1.NodeProxyOptions, out *api.NodeProxyOptions, s conversion.Scope) error { - out.Path = in.Path - return nil -} - -// Convert_v1_NodeProxyOptions_To_api_NodeProxyOptions is an autogenerated conversion function. -func Convert_v1_NodeProxyOptions_To_api_NodeProxyOptions(in *v1.NodeProxyOptions, out *api.NodeProxyOptions, s conversion.Scope) error { - return autoConvert_v1_NodeProxyOptions_To_api_NodeProxyOptions(in, out, s) -} - -func autoConvert_api_NodeProxyOptions_To_v1_NodeProxyOptions(in *api.NodeProxyOptions, out *v1.NodeProxyOptions, s conversion.Scope) error { - out.Path = in.Path - return nil -} - -// Convert_api_NodeProxyOptions_To_v1_NodeProxyOptions is an autogenerated conversion function. -func Convert_api_NodeProxyOptions_To_v1_NodeProxyOptions(in *api.NodeProxyOptions, out *v1.NodeProxyOptions, s conversion.Scope) error { - return autoConvert_api_NodeProxyOptions_To_v1_NodeProxyOptions(in, out, s) -} - -func autoConvert_v1_NodeResources_To_api_NodeResources(in *v1.NodeResources, out *api.NodeResources, s conversion.Scope) error { - out.Capacity = *(*api.ResourceList)(unsafe.Pointer(&in.Capacity)) - return nil -} - -// Convert_v1_NodeResources_To_api_NodeResources is an autogenerated conversion function. -func Convert_v1_NodeResources_To_api_NodeResources(in *v1.NodeResources, out *api.NodeResources, s conversion.Scope) error { - return autoConvert_v1_NodeResources_To_api_NodeResources(in, out, s) -} - -func autoConvert_api_NodeResources_To_v1_NodeResources(in *api.NodeResources, out *v1.NodeResources, s conversion.Scope) error { - out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity)) - return nil -} - -// Convert_api_NodeResources_To_v1_NodeResources is an autogenerated conversion function. -func Convert_api_NodeResources_To_v1_NodeResources(in *api.NodeResources, out *v1.NodeResources, s conversion.Scope) error { - return autoConvert_api_NodeResources_To_v1_NodeResources(in, out, s) -} - -func autoConvert_v1_NodeSelector_To_api_NodeSelector(in *v1.NodeSelector, out *api.NodeSelector, s conversion.Scope) error { - out.NodeSelectorTerms = *(*[]api.NodeSelectorTerm)(unsafe.Pointer(&in.NodeSelectorTerms)) - return nil -} - -// Convert_v1_NodeSelector_To_api_NodeSelector is an autogenerated conversion function. -func Convert_v1_NodeSelector_To_api_NodeSelector(in *v1.NodeSelector, out *api.NodeSelector, s conversion.Scope) error { - return autoConvert_v1_NodeSelector_To_api_NodeSelector(in, out, s) -} - -func autoConvert_api_NodeSelector_To_v1_NodeSelector(in *api.NodeSelector, out *v1.NodeSelector, s conversion.Scope) error { - out.NodeSelectorTerms = *(*[]v1.NodeSelectorTerm)(unsafe.Pointer(&in.NodeSelectorTerms)) - return nil -} - -// Convert_api_NodeSelector_To_v1_NodeSelector is an autogenerated conversion function. -func Convert_api_NodeSelector_To_v1_NodeSelector(in *api.NodeSelector, out *v1.NodeSelector, s conversion.Scope) error { - return autoConvert_api_NodeSelector_To_v1_NodeSelector(in, out, s) -} - -func autoConvert_v1_NodeSelectorRequirement_To_api_NodeSelectorRequirement(in *v1.NodeSelectorRequirement, out *api.NodeSelectorRequirement, s conversion.Scope) error { - out.Key = in.Key - out.Operator = api.NodeSelectorOperator(in.Operator) - out.Values = *(*[]string)(unsafe.Pointer(&in.Values)) - return nil -} - -// Convert_v1_NodeSelectorRequirement_To_api_NodeSelectorRequirement is an autogenerated conversion function. -func Convert_v1_NodeSelectorRequirement_To_api_NodeSelectorRequirement(in *v1.NodeSelectorRequirement, out *api.NodeSelectorRequirement, s conversion.Scope) error { - return autoConvert_v1_NodeSelectorRequirement_To_api_NodeSelectorRequirement(in, out, s) -} - -func autoConvert_api_NodeSelectorRequirement_To_v1_NodeSelectorRequirement(in *api.NodeSelectorRequirement, out *v1.NodeSelectorRequirement, s conversion.Scope) error { - out.Key = in.Key - out.Operator = v1.NodeSelectorOperator(in.Operator) - out.Values = *(*[]string)(unsafe.Pointer(&in.Values)) - return nil -} - -// Convert_api_NodeSelectorRequirement_To_v1_NodeSelectorRequirement is an autogenerated conversion function. -func Convert_api_NodeSelectorRequirement_To_v1_NodeSelectorRequirement(in *api.NodeSelectorRequirement, out *v1.NodeSelectorRequirement, s conversion.Scope) error { - return autoConvert_api_NodeSelectorRequirement_To_v1_NodeSelectorRequirement(in, out, s) -} - -func autoConvert_v1_NodeSelectorTerm_To_api_NodeSelectorTerm(in *v1.NodeSelectorTerm, out *api.NodeSelectorTerm, s conversion.Scope) error { - out.MatchExpressions = *(*[]api.NodeSelectorRequirement)(unsafe.Pointer(&in.MatchExpressions)) - return nil -} - -// Convert_v1_NodeSelectorTerm_To_api_NodeSelectorTerm is an autogenerated conversion function. -func Convert_v1_NodeSelectorTerm_To_api_NodeSelectorTerm(in *v1.NodeSelectorTerm, out *api.NodeSelectorTerm, s conversion.Scope) error { - return autoConvert_v1_NodeSelectorTerm_To_api_NodeSelectorTerm(in, out, s) -} - -func autoConvert_api_NodeSelectorTerm_To_v1_NodeSelectorTerm(in *api.NodeSelectorTerm, out *v1.NodeSelectorTerm, s conversion.Scope) error { - out.MatchExpressions = *(*[]v1.NodeSelectorRequirement)(unsafe.Pointer(&in.MatchExpressions)) - return nil -} - -// Convert_api_NodeSelectorTerm_To_v1_NodeSelectorTerm is an autogenerated conversion function. -func Convert_api_NodeSelectorTerm_To_v1_NodeSelectorTerm(in *api.NodeSelectorTerm, out *v1.NodeSelectorTerm, s conversion.Scope) error { - return autoConvert_api_NodeSelectorTerm_To_v1_NodeSelectorTerm(in, out, s) -} - -func autoConvert_v1_NodeSpec_To_api_NodeSpec(in *v1.NodeSpec, out *api.NodeSpec, s conversion.Scope) error { - out.PodCIDR = in.PodCIDR - out.ExternalID = in.ExternalID - out.ProviderID = in.ProviderID - out.Unschedulable = in.Unschedulable - out.Taints = *(*[]api.Taint)(unsafe.Pointer(&in.Taints)) - out.ConfigSource = (*api.NodeConfigSource)(unsafe.Pointer(in.ConfigSource)) - return nil -} - -// Convert_v1_NodeSpec_To_api_NodeSpec is an autogenerated conversion function. -func Convert_v1_NodeSpec_To_api_NodeSpec(in *v1.NodeSpec, out *api.NodeSpec, s conversion.Scope) error { - return autoConvert_v1_NodeSpec_To_api_NodeSpec(in, out, s) -} - -func autoConvert_api_NodeSpec_To_v1_NodeSpec(in *api.NodeSpec, out *v1.NodeSpec, s conversion.Scope) error { - out.PodCIDR = in.PodCIDR - out.ExternalID = in.ExternalID - out.ProviderID = in.ProviderID - out.Unschedulable = in.Unschedulable - out.Taints = *(*[]v1.Taint)(unsafe.Pointer(&in.Taints)) - out.ConfigSource = (*v1.NodeConfigSource)(unsafe.Pointer(in.ConfigSource)) - return nil -} - -// Convert_api_NodeSpec_To_v1_NodeSpec is an autogenerated conversion function. -func Convert_api_NodeSpec_To_v1_NodeSpec(in *api.NodeSpec, out *v1.NodeSpec, s conversion.Scope) error { - return autoConvert_api_NodeSpec_To_v1_NodeSpec(in, out, s) -} - -func autoConvert_v1_NodeStatus_To_api_NodeStatus(in *v1.NodeStatus, out *api.NodeStatus, s conversion.Scope) error { - out.Capacity = *(*api.ResourceList)(unsafe.Pointer(&in.Capacity)) - out.Allocatable = *(*api.ResourceList)(unsafe.Pointer(&in.Allocatable)) - out.Phase = api.NodePhase(in.Phase) - out.Conditions = *(*[]api.NodeCondition)(unsafe.Pointer(&in.Conditions)) - out.Addresses = *(*[]api.NodeAddress)(unsafe.Pointer(&in.Addresses)) - if err := Convert_v1_NodeDaemonEndpoints_To_api_NodeDaemonEndpoints(&in.DaemonEndpoints, &out.DaemonEndpoints, s); err != nil { - return err - } - if err := Convert_v1_NodeSystemInfo_To_api_NodeSystemInfo(&in.NodeInfo, &out.NodeInfo, s); err != nil { - return err - } - out.Images = *(*[]api.ContainerImage)(unsafe.Pointer(&in.Images)) - out.VolumesInUse = *(*[]api.UniqueVolumeName)(unsafe.Pointer(&in.VolumesInUse)) - out.VolumesAttached = *(*[]api.AttachedVolume)(unsafe.Pointer(&in.VolumesAttached)) - return nil -} - -// Convert_v1_NodeStatus_To_api_NodeStatus is an autogenerated conversion function. -func Convert_v1_NodeStatus_To_api_NodeStatus(in *v1.NodeStatus, out *api.NodeStatus, s conversion.Scope) error { - return autoConvert_v1_NodeStatus_To_api_NodeStatus(in, out, s) -} - -func autoConvert_api_NodeStatus_To_v1_NodeStatus(in *api.NodeStatus, out *v1.NodeStatus, s conversion.Scope) error { - out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity)) - out.Allocatable = *(*v1.ResourceList)(unsafe.Pointer(&in.Allocatable)) - out.Phase = v1.NodePhase(in.Phase) - out.Conditions = *(*[]v1.NodeCondition)(unsafe.Pointer(&in.Conditions)) - out.Addresses = *(*[]v1.NodeAddress)(unsafe.Pointer(&in.Addresses)) - if err := Convert_api_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(&in.DaemonEndpoints, &out.DaemonEndpoints, s); err != nil { - return err - } - if err := Convert_api_NodeSystemInfo_To_v1_NodeSystemInfo(&in.NodeInfo, &out.NodeInfo, s); err != nil { - return err - } - out.Images = *(*[]v1.ContainerImage)(unsafe.Pointer(&in.Images)) - out.VolumesInUse = *(*[]v1.UniqueVolumeName)(unsafe.Pointer(&in.VolumesInUse)) - out.VolumesAttached = *(*[]v1.AttachedVolume)(unsafe.Pointer(&in.VolumesAttached)) - return nil -} - -// Convert_api_NodeStatus_To_v1_NodeStatus is an autogenerated conversion function. -func Convert_api_NodeStatus_To_v1_NodeStatus(in *api.NodeStatus, out *v1.NodeStatus, s conversion.Scope) error { - return autoConvert_api_NodeStatus_To_v1_NodeStatus(in, out, s) -} - -func autoConvert_v1_NodeSystemInfo_To_api_NodeSystemInfo(in *v1.NodeSystemInfo, out *api.NodeSystemInfo, s conversion.Scope) error { - out.MachineID = in.MachineID - out.SystemUUID = in.SystemUUID - out.BootID = in.BootID - out.KernelVersion = in.KernelVersion - out.OSImage = in.OSImage - out.ContainerRuntimeVersion = in.ContainerRuntimeVersion - out.KubeletVersion = in.KubeletVersion - out.KubeProxyVersion = in.KubeProxyVersion - out.OperatingSystem = in.OperatingSystem - out.Architecture = in.Architecture - return nil -} - -// Convert_v1_NodeSystemInfo_To_api_NodeSystemInfo is an autogenerated conversion function. -func Convert_v1_NodeSystemInfo_To_api_NodeSystemInfo(in *v1.NodeSystemInfo, out *api.NodeSystemInfo, s conversion.Scope) error { - return autoConvert_v1_NodeSystemInfo_To_api_NodeSystemInfo(in, out, s) -} - -func autoConvert_api_NodeSystemInfo_To_v1_NodeSystemInfo(in *api.NodeSystemInfo, out *v1.NodeSystemInfo, s conversion.Scope) error { - out.MachineID = in.MachineID - out.SystemUUID = in.SystemUUID - out.BootID = in.BootID - out.KernelVersion = in.KernelVersion - out.OSImage = in.OSImage - out.ContainerRuntimeVersion = in.ContainerRuntimeVersion - out.KubeletVersion = in.KubeletVersion - out.KubeProxyVersion = in.KubeProxyVersion - out.OperatingSystem = in.OperatingSystem - out.Architecture = in.Architecture - return nil -} - -// Convert_api_NodeSystemInfo_To_v1_NodeSystemInfo is an autogenerated conversion function. -func Convert_api_NodeSystemInfo_To_v1_NodeSystemInfo(in *api.NodeSystemInfo, out *v1.NodeSystemInfo, s conversion.Scope) error { - return autoConvert_api_NodeSystemInfo_To_v1_NodeSystemInfo(in, out, s) -} - -func autoConvert_v1_ObjectFieldSelector_To_api_ObjectFieldSelector(in *v1.ObjectFieldSelector, out *api.ObjectFieldSelector, s conversion.Scope) error { - out.APIVersion = in.APIVersion - out.FieldPath = in.FieldPath - return nil -} - -// Convert_v1_ObjectFieldSelector_To_api_ObjectFieldSelector is an autogenerated conversion function. -func Convert_v1_ObjectFieldSelector_To_api_ObjectFieldSelector(in *v1.ObjectFieldSelector, out *api.ObjectFieldSelector, s conversion.Scope) error { - return autoConvert_v1_ObjectFieldSelector_To_api_ObjectFieldSelector(in, out, s) -} - -func autoConvert_api_ObjectFieldSelector_To_v1_ObjectFieldSelector(in *api.ObjectFieldSelector, out *v1.ObjectFieldSelector, s conversion.Scope) error { - out.APIVersion = in.APIVersion - out.FieldPath = in.FieldPath - return nil -} - -// Convert_api_ObjectFieldSelector_To_v1_ObjectFieldSelector is an autogenerated conversion function. -func Convert_api_ObjectFieldSelector_To_v1_ObjectFieldSelector(in *api.ObjectFieldSelector, out *v1.ObjectFieldSelector, s conversion.Scope) error { - return autoConvert_api_ObjectFieldSelector_To_v1_ObjectFieldSelector(in, out, s) -} - -func autoConvert_v1_ObjectMeta_To_api_ObjectMeta(in *v1.ObjectMeta, out *api.ObjectMeta, s conversion.Scope) error { - out.Name = in.Name - out.GenerateName = in.GenerateName - out.Namespace = in.Namespace - out.SelfLink = in.SelfLink - out.UID = types.UID(in.UID) - out.ResourceVersion = in.ResourceVersion - out.Generation = in.Generation - out.CreationTimestamp = in.CreationTimestamp - out.DeletionTimestamp = (*meta_v1.Time)(unsafe.Pointer(in.DeletionTimestamp)) - out.DeletionGracePeriodSeconds = (*int64)(unsafe.Pointer(in.DeletionGracePeriodSeconds)) - out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) - out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) - out.OwnerReferences = *(*[]meta_v1.OwnerReference)(unsafe.Pointer(&in.OwnerReferences)) - out.Initializers = (*meta_v1.Initializers)(unsafe.Pointer(in.Initializers)) - out.Finalizers = *(*[]string)(unsafe.Pointer(&in.Finalizers)) - out.ClusterName = in.ClusterName - return nil -} - -// Convert_v1_ObjectMeta_To_api_ObjectMeta is an autogenerated conversion function. -func Convert_v1_ObjectMeta_To_api_ObjectMeta(in *v1.ObjectMeta, out *api.ObjectMeta, s conversion.Scope) error { - return autoConvert_v1_ObjectMeta_To_api_ObjectMeta(in, out, s) -} - -func autoConvert_api_ObjectMeta_To_v1_ObjectMeta(in *api.ObjectMeta, out *v1.ObjectMeta, s conversion.Scope) error { - out.Name = in.Name - out.GenerateName = in.GenerateName - out.Namespace = in.Namespace - out.SelfLink = in.SelfLink - out.UID = types.UID(in.UID) - out.ResourceVersion = in.ResourceVersion - out.Generation = in.Generation - out.CreationTimestamp = in.CreationTimestamp - out.DeletionTimestamp = (*meta_v1.Time)(unsafe.Pointer(in.DeletionTimestamp)) - out.DeletionGracePeriodSeconds = (*int64)(unsafe.Pointer(in.DeletionGracePeriodSeconds)) - out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) - out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) - out.OwnerReferences = *(*[]meta_v1.OwnerReference)(unsafe.Pointer(&in.OwnerReferences)) - out.Initializers = (*meta_v1.Initializers)(unsafe.Pointer(in.Initializers)) - out.Finalizers = *(*[]string)(unsafe.Pointer(&in.Finalizers)) - out.ClusterName = in.ClusterName - return nil -} - -// Convert_api_ObjectMeta_To_v1_ObjectMeta is an autogenerated conversion function. -func Convert_api_ObjectMeta_To_v1_ObjectMeta(in *api.ObjectMeta, out *v1.ObjectMeta, s conversion.Scope) error { - return autoConvert_api_ObjectMeta_To_v1_ObjectMeta(in, out, s) -} - -func autoConvert_v1_ObjectReference_To_api_ObjectReference(in *v1.ObjectReference, out *api.ObjectReference, s conversion.Scope) error { - out.Kind = in.Kind - out.Namespace = in.Namespace - out.Name = in.Name - out.UID = types.UID(in.UID) - out.APIVersion = in.APIVersion - out.ResourceVersion = in.ResourceVersion - out.FieldPath = in.FieldPath - return nil -} - -// Convert_v1_ObjectReference_To_api_ObjectReference is an autogenerated conversion function. -func Convert_v1_ObjectReference_To_api_ObjectReference(in *v1.ObjectReference, out *api.ObjectReference, s conversion.Scope) error { - return autoConvert_v1_ObjectReference_To_api_ObjectReference(in, out, s) -} - -func autoConvert_api_ObjectReference_To_v1_ObjectReference(in *api.ObjectReference, out *v1.ObjectReference, s conversion.Scope) error { - out.Kind = in.Kind - out.Namespace = in.Namespace - out.Name = in.Name - out.UID = types.UID(in.UID) - out.APIVersion = in.APIVersion - out.ResourceVersion = in.ResourceVersion - out.FieldPath = in.FieldPath - return nil -} - -// Convert_api_ObjectReference_To_v1_ObjectReference is an autogenerated conversion function. -func Convert_api_ObjectReference_To_v1_ObjectReference(in *api.ObjectReference, out *v1.ObjectReference, s conversion.Scope) error { - return autoConvert_api_ObjectReference_To_v1_ObjectReference(in, out, s) -} - -func autoConvert_v1_PersistentVolume_To_api_PersistentVolume(in *v1.PersistentVolume, out *api.PersistentVolume, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_PersistentVolumeSpec_To_api_PersistentVolumeSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1_PersistentVolumeStatus_To_api_PersistentVolumeStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1_PersistentVolume_To_api_PersistentVolume is an autogenerated conversion function. -func Convert_v1_PersistentVolume_To_api_PersistentVolume(in *v1.PersistentVolume, out *api.PersistentVolume, s conversion.Scope) error { - return autoConvert_v1_PersistentVolume_To_api_PersistentVolume(in, out, s) -} - -func autoConvert_api_PersistentVolume_To_v1_PersistentVolume(in *api.PersistentVolume, out *v1.PersistentVolume, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_api_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_api_PersistentVolume_To_v1_PersistentVolume is an autogenerated conversion function. -func Convert_api_PersistentVolume_To_v1_PersistentVolume(in *api.PersistentVolume, out *v1.PersistentVolume, s conversion.Scope) error { - return autoConvert_api_PersistentVolume_To_v1_PersistentVolume(in, out, s) -} - -func autoConvert_v1_PersistentVolumeClaim_To_api_PersistentVolumeClaim(in *v1.PersistentVolumeClaim, out *api.PersistentVolumeClaim, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_PersistentVolumeClaimSpec_To_api_PersistentVolumeClaimSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1_PersistentVolumeClaimStatus_To_api_PersistentVolumeClaimStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1_PersistentVolumeClaim_To_api_PersistentVolumeClaim is an autogenerated conversion function. -func Convert_v1_PersistentVolumeClaim_To_api_PersistentVolumeClaim(in *v1.PersistentVolumeClaim, out *api.PersistentVolumeClaim, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeClaim_To_api_PersistentVolumeClaim(in, out, s) -} - -func autoConvert_api_PersistentVolumeClaim_To_v1_PersistentVolumeClaim(in *api.PersistentVolumeClaim, out *v1.PersistentVolumeClaim, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_api_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_api_PersistentVolumeClaim_To_v1_PersistentVolumeClaim is an autogenerated conversion function. -func Convert_api_PersistentVolumeClaim_To_v1_PersistentVolumeClaim(in *api.PersistentVolumeClaim, out *v1.PersistentVolumeClaim, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeClaim_To_v1_PersistentVolumeClaim(in, out, s) -} - -func autoConvert_v1_PersistentVolumeClaimCondition_To_api_PersistentVolumeClaimCondition(in *v1.PersistentVolumeClaimCondition, out *api.PersistentVolumeClaimCondition, s conversion.Scope) error { - out.Type = api.PersistentVolumeClaimConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) - out.LastProbeTime = in.LastProbeTime - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1_PersistentVolumeClaimCondition_To_api_PersistentVolumeClaimCondition is an autogenerated conversion function. -func Convert_v1_PersistentVolumeClaimCondition_To_api_PersistentVolumeClaimCondition(in *v1.PersistentVolumeClaimCondition, out *api.PersistentVolumeClaimCondition, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeClaimCondition_To_api_PersistentVolumeClaimCondition(in, out, s) -} - -func autoConvert_api_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition(in *api.PersistentVolumeClaimCondition, out *v1.PersistentVolumeClaimCondition, s conversion.Scope) error { - out.Type = v1.PersistentVolumeClaimConditionType(in.Type) - out.Status = v1.ConditionStatus(in.Status) - out.LastProbeTime = in.LastProbeTime - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_api_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition is an autogenerated conversion function. -func Convert_api_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition(in *api.PersistentVolumeClaimCondition, out *v1.PersistentVolumeClaimCondition, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition(in, out, s) -} - -func autoConvert_v1_PersistentVolumeClaimList_To_api_PersistentVolumeClaimList(in *v1.PersistentVolumeClaimList, out *api.PersistentVolumeClaimList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.PersistentVolumeClaim)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_PersistentVolumeClaimList_To_api_PersistentVolumeClaimList is an autogenerated conversion function. -func Convert_v1_PersistentVolumeClaimList_To_api_PersistentVolumeClaimList(in *v1.PersistentVolumeClaimList, out *api.PersistentVolumeClaimList, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeClaimList_To_api_PersistentVolumeClaimList(in, out, s) -} - -func autoConvert_api_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList(in *api.PersistentVolumeClaimList, out *v1.PersistentVolumeClaimList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.PersistentVolumeClaim)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList is an autogenerated conversion function. -func Convert_api_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList(in *api.PersistentVolumeClaimList, out *v1.PersistentVolumeClaimList, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList(in, out, s) -} - -func autoConvert_v1_PersistentVolumeClaimSpec_To_api_PersistentVolumeClaimSpec(in *v1.PersistentVolumeClaimSpec, out *api.PersistentVolumeClaimSpec, s conversion.Scope) error { - out.AccessModes = *(*[]api.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) - out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := Convert_v1_ResourceRequirements_To_api_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil { - return err - } - out.VolumeName = in.VolumeName - out.StorageClassName = (*string)(unsafe.Pointer(in.StorageClassName)) - return nil -} - -// Convert_v1_PersistentVolumeClaimSpec_To_api_PersistentVolumeClaimSpec is an autogenerated conversion function. -func Convert_v1_PersistentVolumeClaimSpec_To_api_PersistentVolumeClaimSpec(in *v1.PersistentVolumeClaimSpec, out *api.PersistentVolumeClaimSpec, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeClaimSpec_To_api_PersistentVolumeClaimSpec(in, out, s) -} - -func autoConvert_api_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(in *api.PersistentVolumeClaimSpec, out *v1.PersistentVolumeClaimSpec, s conversion.Scope) error { - out.AccessModes = *(*[]v1.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) - out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := Convert_api_ResourceRequirements_To_v1_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil { - return err - } - out.VolumeName = in.VolumeName - out.StorageClassName = (*string)(unsafe.Pointer(in.StorageClassName)) - return nil -} - -// Convert_api_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec is an autogenerated conversion function. -func Convert_api_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(in *api.PersistentVolumeClaimSpec, out *v1.PersistentVolumeClaimSpec, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(in, out, s) -} - -func autoConvert_v1_PersistentVolumeClaimStatus_To_api_PersistentVolumeClaimStatus(in *v1.PersistentVolumeClaimStatus, out *api.PersistentVolumeClaimStatus, s conversion.Scope) error { - out.Phase = api.PersistentVolumeClaimPhase(in.Phase) - out.AccessModes = *(*[]api.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) - out.Capacity = *(*api.ResourceList)(unsafe.Pointer(&in.Capacity)) - out.Conditions = *(*[]api.PersistentVolumeClaimCondition)(unsafe.Pointer(&in.Conditions)) - return nil -} - -// Convert_v1_PersistentVolumeClaimStatus_To_api_PersistentVolumeClaimStatus is an autogenerated conversion function. -func Convert_v1_PersistentVolumeClaimStatus_To_api_PersistentVolumeClaimStatus(in *v1.PersistentVolumeClaimStatus, out *api.PersistentVolumeClaimStatus, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeClaimStatus_To_api_PersistentVolumeClaimStatus(in, out, s) -} - -func autoConvert_api_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(in *api.PersistentVolumeClaimStatus, out *v1.PersistentVolumeClaimStatus, s conversion.Scope) error { - out.Phase = v1.PersistentVolumeClaimPhase(in.Phase) - out.AccessModes = *(*[]v1.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) - out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity)) - out.Conditions = *(*[]v1.PersistentVolumeClaimCondition)(unsafe.Pointer(&in.Conditions)) - return nil -} - -// Convert_api_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus is an autogenerated conversion function. -func Convert_api_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(in *api.PersistentVolumeClaimStatus, out *v1.PersistentVolumeClaimStatus, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(in, out, s) -} - -func autoConvert_v1_PersistentVolumeClaimVolumeSource_To_api_PersistentVolumeClaimVolumeSource(in *v1.PersistentVolumeClaimVolumeSource, out *api.PersistentVolumeClaimVolumeSource, s conversion.Scope) error { - out.ClaimName = in.ClaimName - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_PersistentVolumeClaimVolumeSource_To_api_PersistentVolumeClaimVolumeSource is an autogenerated conversion function. -func Convert_v1_PersistentVolumeClaimVolumeSource_To_api_PersistentVolumeClaimVolumeSource(in *v1.PersistentVolumeClaimVolumeSource, out *api.PersistentVolumeClaimVolumeSource, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeClaimVolumeSource_To_api_PersistentVolumeClaimVolumeSource(in, out, s) -} - -func autoConvert_api_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource(in *api.PersistentVolumeClaimVolumeSource, out *v1.PersistentVolumeClaimVolumeSource, s conversion.Scope) error { - out.ClaimName = in.ClaimName - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource is an autogenerated conversion function. -func Convert_api_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource(in *api.PersistentVolumeClaimVolumeSource, out *v1.PersistentVolumeClaimVolumeSource, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource(in, out, s) -} - -func autoConvert_v1_PersistentVolumeList_To_api_PersistentVolumeList(in *v1.PersistentVolumeList, out *api.PersistentVolumeList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]api.PersistentVolume, len(*in)) - for i := range *in { - if err := Convert_v1_PersistentVolume_To_api_PersistentVolume(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1_PersistentVolumeList_To_api_PersistentVolumeList is an autogenerated conversion function. -func Convert_v1_PersistentVolumeList_To_api_PersistentVolumeList(in *v1.PersistentVolumeList, out *api.PersistentVolumeList, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeList_To_api_PersistentVolumeList(in, out, s) -} - -func autoConvert_api_PersistentVolumeList_To_v1_PersistentVolumeList(in *api.PersistentVolumeList, out *v1.PersistentVolumeList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1.PersistentVolume, len(*in)) - for i := range *in { - if err := Convert_api_PersistentVolume_To_v1_PersistentVolume(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_api_PersistentVolumeList_To_v1_PersistentVolumeList is an autogenerated conversion function. -func Convert_api_PersistentVolumeList_To_v1_PersistentVolumeList(in *api.PersistentVolumeList, out *v1.PersistentVolumeList, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeList_To_v1_PersistentVolumeList(in, out, s) -} - -func autoConvert_v1_PersistentVolumeSource_To_api_PersistentVolumeSource(in *v1.PersistentVolumeSource, out *api.PersistentVolumeSource, s conversion.Scope) error { - out.GCEPersistentDisk = (*api.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk)) - out.AWSElasticBlockStore = (*api.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore)) - out.HostPath = (*api.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) - out.Glusterfs = (*api.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) - out.NFS = (*api.NFSVolumeSource)(unsafe.Pointer(in.NFS)) - out.RBD = (*api.RBDVolumeSource)(unsafe.Pointer(in.RBD)) - out.ISCSI = (*api.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) - out.Cinder = (*api.CinderVolumeSource)(unsafe.Pointer(in.Cinder)) - out.CephFS = (*api.CephFSPersistentVolumeSource)(unsafe.Pointer(in.CephFS)) - out.FC = (*api.FCVolumeSource)(unsafe.Pointer(in.FC)) - out.Flocker = (*api.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) - out.FlexVolume = (*api.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) - out.AzureFile = (*api.AzureFilePersistentVolumeSource)(unsafe.Pointer(in.AzureFile)) - out.VsphereVolume = (*api.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) - out.Quobyte = (*api.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) - out.AzureDisk = (*api.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) - out.PhotonPersistentDisk = (*api.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk)) - out.PortworxVolume = (*api.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume)) - out.ScaleIO = (*api.ScaleIOVolumeSource)(unsafe.Pointer(in.ScaleIO)) - out.Local = (*api.LocalVolumeSource)(unsafe.Pointer(in.Local)) - out.StorageOS = (*api.StorageOSPersistentVolumeSource)(unsafe.Pointer(in.StorageOS)) - return nil -} - -// Convert_v1_PersistentVolumeSource_To_api_PersistentVolumeSource is an autogenerated conversion function. -func Convert_v1_PersistentVolumeSource_To_api_PersistentVolumeSource(in *v1.PersistentVolumeSource, out *api.PersistentVolumeSource, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeSource_To_api_PersistentVolumeSource(in, out, s) -} - -func autoConvert_api_PersistentVolumeSource_To_v1_PersistentVolumeSource(in *api.PersistentVolumeSource, out *v1.PersistentVolumeSource, s conversion.Scope) error { - out.GCEPersistentDisk = (*v1.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk)) - out.AWSElasticBlockStore = (*v1.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore)) - out.HostPath = (*v1.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) - out.Glusterfs = (*v1.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) - out.NFS = (*v1.NFSVolumeSource)(unsafe.Pointer(in.NFS)) - out.RBD = (*v1.RBDVolumeSource)(unsafe.Pointer(in.RBD)) - out.Quobyte = (*v1.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) - out.ISCSI = (*v1.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) - out.FlexVolume = (*v1.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) - out.Cinder = (*v1.CinderVolumeSource)(unsafe.Pointer(in.Cinder)) - out.CephFS = (*v1.CephFSPersistentVolumeSource)(unsafe.Pointer(in.CephFS)) - out.FC = (*v1.FCVolumeSource)(unsafe.Pointer(in.FC)) - out.Flocker = (*v1.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) - out.AzureFile = (*v1.AzureFilePersistentVolumeSource)(unsafe.Pointer(in.AzureFile)) - out.VsphereVolume = (*v1.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) - out.AzureDisk = (*v1.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) - out.PhotonPersistentDisk = (*v1.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk)) - out.PortworxVolume = (*v1.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume)) - out.ScaleIO = (*v1.ScaleIOVolumeSource)(unsafe.Pointer(in.ScaleIO)) - out.Local = (*v1.LocalVolumeSource)(unsafe.Pointer(in.Local)) - out.StorageOS = (*v1.StorageOSPersistentVolumeSource)(unsafe.Pointer(in.StorageOS)) - return nil -} - -// Convert_api_PersistentVolumeSource_To_v1_PersistentVolumeSource is an autogenerated conversion function. -func Convert_api_PersistentVolumeSource_To_v1_PersistentVolumeSource(in *api.PersistentVolumeSource, out *v1.PersistentVolumeSource, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeSource_To_v1_PersistentVolumeSource(in, out, s) -} - -func autoConvert_v1_PersistentVolumeSpec_To_api_PersistentVolumeSpec(in *v1.PersistentVolumeSpec, out *api.PersistentVolumeSpec, s conversion.Scope) error { - out.Capacity = *(*api.ResourceList)(unsafe.Pointer(&in.Capacity)) - if err := Convert_v1_PersistentVolumeSource_To_api_PersistentVolumeSource(&in.PersistentVolumeSource, &out.PersistentVolumeSource, s); err != nil { - return err - } - out.AccessModes = *(*[]api.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) - out.ClaimRef = (*api.ObjectReference)(unsafe.Pointer(in.ClaimRef)) - out.PersistentVolumeReclaimPolicy = api.PersistentVolumeReclaimPolicy(in.PersistentVolumeReclaimPolicy) - out.StorageClassName = in.StorageClassName - out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions)) - return nil -} - -// Convert_v1_PersistentVolumeSpec_To_api_PersistentVolumeSpec is an autogenerated conversion function. -func Convert_v1_PersistentVolumeSpec_To_api_PersistentVolumeSpec(in *v1.PersistentVolumeSpec, out *api.PersistentVolumeSpec, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeSpec_To_api_PersistentVolumeSpec(in, out, s) -} - -func autoConvert_api_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(in *api.PersistentVolumeSpec, out *v1.PersistentVolumeSpec, s conversion.Scope) error { - out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity)) - if err := Convert_api_PersistentVolumeSource_To_v1_PersistentVolumeSource(&in.PersistentVolumeSource, &out.PersistentVolumeSource, s); err != nil { - return err - } - out.AccessModes = *(*[]v1.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) - out.ClaimRef = (*v1.ObjectReference)(unsafe.Pointer(in.ClaimRef)) - out.PersistentVolumeReclaimPolicy = v1.PersistentVolumeReclaimPolicy(in.PersistentVolumeReclaimPolicy) - out.StorageClassName = in.StorageClassName - out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions)) - return nil -} - -// Convert_api_PersistentVolumeSpec_To_v1_PersistentVolumeSpec is an autogenerated conversion function. -func Convert_api_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(in *api.PersistentVolumeSpec, out *v1.PersistentVolumeSpec, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(in, out, s) -} - -func autoConvert_v1_PersistentVolumeStatus_To_api_PersistentVolumeStatus(in *v1.PersistentVolumeStatus, out *api.PersistentVolumeStatus, s conversion.Scope) error { - out.Phase = api.PersistentVolumePhase(in.Phase) - out.Message = in.Message - out.Reason = in.Reason - return nil -} - -// Convert_v1_PersistentVolumeStatus_To_api_PersistentVolumeStatus is an autogenerated conversion function. -func Convert_v1_PersistentVolumeStatus_To_api_PersistentVolumeStatus(in *v1.PersistentVolumeStatus, out *api.PersistentVolumeStatus, s conversion.Scope) error { - return autoConvert_v1_PersistentVolumeStatus_To_api_PersistentVolumeStatus(in, out, s) -} - -func autoConvert_api_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(in *api.PersistentVolumeStatus, out *v1.PersistentVolumeStatus, s conversion.Scope) error { - out.Phase = v1.PersistentVolumePhase(in.Phase) - out.Message = in.Message - out.Reason = in.Reason - return nil -} - -// Convert_api_PersistentVolumeStatus_To_v1_PersistentVolumeStatus is an autogenerated conversion function. -func Convert_api_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(in *api.PersistentVolumeStatus, out *v1.PersistentVolumeStatus, s conversion.Scope) error { - return autoConvert_api_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(in, out, s) -} - -func autoConvert_v1_PhotonPersistentDiskVolumeSource_To_api_PhotonPersistentDiskVolumeSource(in *v1.PhotonPersistentDiskVolumeSource, out *api.PhotonPersistentDiskVolumeSource, s conversion.Scope) error { - out.PdID = in.PdID - out.FSType = in.FSType - return nil -} - -// Convert_v1_PhotonPersistentDiskVolumeSource_To_api_PhotonPersistentDiskVolumeSource is an autogenerated conversion function. -func Convert_v1_PhotonPersistentDiskVolumeSource_To_api_PhotonPersistentDiskVolumeSource(in *v1.PhotonPersistentDiskVolumeSource, out *api.PhotonPersistentDiskVolumeSource, s conversion.Scope) error { - return autoConvert_v1_PhotonPersistentDiskVolumeSource_To_api_PhotonPersistentDiskVolumeSource(in, out, s) -} - -func autoConvert_api_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource(in *api.PhotonPersistentDiskVolumeSource, out *v1.PhotonPersistentDiskVolumeSource, s conversion.Scope) error { - out.PdID = in.PdID - out.FSType = in.FSType - return nil -} - -// Convert_api_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource is an autogenerated conversion function. -func Convert_api_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource(in *api.PhotonPersistentDiskVolumeSource, out *v1.PhotonPersistentDiskVolumeSource, s conversion.Scope) error { - return autoConvert_api_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource(in, out, s) -} - -func autoConvert_v1_Pod_To_api_Pod(in *v1.Pod, out *api.Pod, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_PodSpec_To_api_PodSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1_PodStatus_To_api_PodStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1_Pod_To_api_Pod is an autogenerated conversion function. -func Convert_v1_Pod_To_api_Pod(in *v1.Pod, out *api.Pod, s conversion.Scope) error { - return autoConvert_v1_Pod_To_api_Pod(in, out, s) -} - -func autoConvert_api_Pod_To_v1_Pod(in *api.Pod, out *v1.Pod, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_PodSpec_To_v1_PodSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_api_PodStatus_To_v1_PodStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1_PodAffinity_To_api_PodAffinity(in *v1.PodAffinity, out *api.PodAffinity, s conversion.Scope) error { - out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]api.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution)) - out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]api.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) - return nil -} - -// Convert_v1_PodAffinity_To_api_PodAffinity is an autogenerated conversion function. -func Convert_v1_PodAffinity_To_api_PodAffinity(in *v1.PodAffinity, out *api.PodAffinity, s conversion.Scope) error { - return autoConvert_v1_PodAffinity_To_api_PodAffinity(in, out, s) -} - -func autoConvert_api_PodAffinity_To_v1_PodAffinity(in *api.PodAffinity, out *v1.PodAffinity, s conversion.Scope) error { - out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]v1.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution)) - out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]v1.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) - return nil -} - -// Convert_api_PodAffinity_To_v1_PodAffinity is an autogenerated conversion function. -func Convert_api_PodAffinity_To_v1_PodAffinity(in *api.PodAffinity, out *v1.PodAffinity, s conversion.Scope) error { - return autoConvert_api_PodAffinity_To_v1_PodAffinity(in, out, s) -} - -func autoConvert_v1_PodAffinityTerm_To_api_PodAffinityTerm(in *v1.PodAffinityTerm, out *api.PodAffinityTerm, s conversion.Scope) error { - out.LabelSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.LabelSelector)) - out.Namespaces = *(*[]string)(unsafe.Pointer(&in.Namespaces)) - out.TopologyKey = in.TopologyKey - return nil -} - -// Convert_v1_PodAffinityTerm_To_api_PodAffinityTerm is an autogenerated conversion function. -func Convert_v1_PodAffinityTerm_To_api_PodAffinityTerm(in *v1.PodAffinityTerm, out *api.PodAffinityTerm, s conversion.Scope) error { - return autoConvert_v1_PodAffinityTerm_To_api_PodAffinityTerm(in, out, s) -} - -func autoConvert_api_PodAffinityTerm_To_v1_PodAffinityTerm(in *api.PodAffinityTerm, out *v1.PodAffinityTerm, s conversion.Scope) error { - out.LabelSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.LabelSelector)) - out.Namespaces = *(*[]string)(unsafe.Pointer(&in.Namespaces)) - out.TopologyKey = in.TopologyKey - return nil -} - -// Convert_api_PodAffinityTerm_To_v1_PodAffinityTerm is an autogenerated conversion function. -func Convert_api_PodAffinityTerm_To_v1_PodAffinityTerm(in *api.PodAffinityTerm, out *v1.PodAffinityTerm, s conversion.Scope) error { - return autoConvert_api_PodAffinityTerm_To_v1_PodAffinityTerm(in, out, s) -} - -func autoConvert_v1_PodAntiAffinity_To_api_PodAntiAffinity(in *v1.PodAntiAffinity, out *api.PodAntiAffinity, s conversion.Scope) error { - out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]api.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution)) - out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]api.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) - return nil -} - -// Convert_v1_PodAntiAffinity_To_api_PodAntiAffinity is an autogenerated conversion function. -func Convert_v1_PodAntiAffinity_To_api_PodAntiAffinity(in *v1.PodAntiAffinity, out *api.PodAntiAffinity, s conversion.Scope) error { - return autoConvert_v1_PodAntiAffinity_To_api_PodAntiAffinity(in, out, s) -} - -func autoConvert_api_PodAntiAffinity_To_v1_PodAntiAffinity(in *api.PodAntiAffinity, out *v1.PodAntiAffinity, s conversion.Scope) error { - out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]v1.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution)) - out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]v1.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) - return nil -} - -// Convert_api_PodAntiAffinity_To_v1_PodAntiAffinity is an autogenerated conversion function. -func Convert_api_PodAntiAffinity_To_v1_PodAntiAffinity(in *api.PodAntiAffinity, out *v1.PodAntiAffinity, s conversion.Scope) error { - return autoConvert_api_PodAntiAffinity_To_v1_PodAntiAffinity(in, out, s) -} - -func autoConvert_v1_PodAttachOptions_To_api_PodAttachOptions(in *v1.PodAttachOptions, out *api.PodAttachOptions, s conversion.Scope) error { - out.Stdin = in.Stdin - out.Stdout = in.Stdout - out.Stderr = in.Stderr - out.TTY = in.TTY - out.Container = in.Container - return nil -} - -// Convert_v1_PodAttachOptions_To_api_PodAttachOptions is an autogenerated conversion function. -func Convert_v1_PodAttachOptions_To_api_PodAttachOptions(in *v1.PodAttachOptions, out *api.PodAttachOptions, s conversion.Scope) error { - return autoConvert_v1_PodAttachOptions_To_api_PodAttachOptions(in, out, s) -} - -func autoConvert_api_PodAttachOptions_To_v1_PodAttachOptions(in *api.PodAttachOptions, out *v1.PodAttachOptions, s conversion.Scope) error { - out.Stdin = in.Stdin - out.Stdout = in.Stdout - out.Stderr = in.Stderr - out.TTY = in.TTY - out.Container = in.Container - return nil -} - -// Convert_api_PodAttachOptions_To_v1_PodAttachOptions is an autogenerated conversion function. -func Convert_api_PodAttachOptions_To_v1_PodAttachOptions(in *api.PodAttachOptions, out *v1.PodAttachOptions, s conversion.Scope) error { - return autoConvert_api_PodAttachOptions_To_v1_PodAttachOptions(in, out, s) -} - -func autoConvert_v1_PodCondition_To_api_PodCondition(in *v1.PodCondition, out *api.PodCondition, s conversion.Scope) error { - out.Type = api.PodConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) - out.LastProbeTime = in.LastProbeTime - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1_PodCondition_To_api_PodCondition is an autogenerated conversion function. -func Convert_v1_PodCondition_To_api_PodCondition(in *v1.PodCondition, out *api.PodCondition, s conversion.Scope) error { - return autoConvert_v1_PodCondition_To_api_PodCondition(in, out, s) -} - -func autoConvert_api_PodCondition_To_v1_PodCondition(in *api.PodCondition, out *v1.PodCondition, s conversion.Scope) error { - out.Type = v1.PodConditionType(in.Type) - out.Status = v1.ConditionStatus(in.Status) - out.LastProbeTime = in.LastProbeTime - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_api_PodCondition_To_v1_PodCondition is an autogenerated conversion function. -func Convert_api_PodCondition_To_v1_PodCondition(in *api.PodCondition, out *v1.PodCondition, s conversion.Scope) error { - return autoConvert_api_PodCondition_To_v1_PodCondition(in, out, s) -} - -func autoConvert_v1_PodExecOptions_To_api_PodExecOptions(in *v1.PodExecOptions, out *api.PodExecOptions, s conversion.Scope) error { - out.Stdin = in.Stdin - out.Stdout = in.Stdout - out.Stderr = in.Stderr - out.TTY = in.TTY - out.Container = in.Container - out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) - return nil -} - -// Convert_v1_PodExecOptions_To_api_PodExecOptions is an autogenerated conversion function. -func Convert_v1_PodExecOptions_To_api_PodExecOptions(in *v1.PodExecOptions, out *api.PodExecOptions, s conversion.Scope) error { - return autoConvert_v1_PodExecOptions_To_api_PodExecOptions(in, out, s) -} - -func autoConvert_api_PodExecOptions_To_v1_PodExecOptions(in *api.PodExecOptions, out *v1.PodExecOptions, s conversion.Scope) error { - out.Stdin = in.Stdin - out.Stdout = in.Stdout - out.Stderr = in.Stderr - out.TTY = in.TTY - out.Container = in.Container - out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) - return nil -} - -// Convert_api_PodExecOptions_To_v1_PodExecOptions is an autogenerated conversion function. -func Convert_api_PodExecOptions_To_v1_PodExecOptions(in *api.PodExecOptions, out *v1.PodExecOptions, s conversion.Scope) error { - return autoConvert_api_PodExecOptions_To_v1_PodExecOptions(in, out, s) -} - -func autoConvert_v1_PodList_To_api_PodList(in *v1.PodList, out *api.PodList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]api.Pod, len(*in)) - for i := range *in { - if err := Convert_v1_Pod_To_api_Pod(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1_PodList_To_api_PodList is an autogenerated conversion function. -func Convert_v1_PodList_To_api_PodList(in *v1.PodList, out *api.PodList, s conversion.Scope) error { - return autoConvert_v1_PodList_To_api_PodList(in, out, s) -} - -func autoConvert_api_PodList_To_v1_PodList(in *api.PodList, out *v1.PodList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1.Pod, len(*in)) - for i := range *in { - if err := Convert_api_Pod_To_v1_Pod(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_api_PodList_To_v1_PodList is an autogenerated conversion function. -func Convert_api_PodList_To_v1_PodList(in *api.PodList, out *v1.PodList, s conversion.Scope) error { - return autoConvert_api_PodList_To_v1_PodList(in, out, s) -} - -func autoConvert_v1_PodLogOptions_To_api_PodLogOptions(in *v1.PodLogOptions, out *api.PodLogOptions, s conversion.Scope) error { - out.Container = in.Container - out.Follow = in.Follow - out.Previous = in.Previous - out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds)) - out.SinceTime = (*meta_v1.Time)(unsafe.Pointer(in.SinceTime)) - out.Timestamps = in.Timestamps - out.TailLines = (*int64)(unsafe.Pointer(in.TailLines)) - out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes)) - return nil -} - -// Convert_v1_PodLogOptions_To_api_PodLogOptions is an autogenerated conversion function. -func Convert_v1_PodLogOptions_To_api_PodLogOptions(in *v1.PodLogOptions, out *api.PodLogOptions, s conversion.Scope) error { - return autoConvert_v1_PodLogOptions_To_api_PodLogOptions(in, out, s) -} - -func autoConvert_api_PodLogOptions_To_v1_PodLogOptions(in *api.PodLogOptions, out *v1.PodLogOptions, s conversion.Scope) error { - out.Container = in.Container - out.Follow = in.Follow - out.Previous = in.Previous - out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds)) - out.SinceTime = (*meta_v1.Time)(unsafe.Pointer(in.SinceTime)) - out.Timestamps = in.Timestamps - out.TailLines = (*int64)(unsafe.Pointer(in.TailLines)) - out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes)) - return nil -} - -// Convert_api_PodLogOptions_To_v1_PodLogOptions is an autogenerated conversion function. -func Convert_api_PodLogOptions_To_v1_PodLogOptions(in *api.PodLogOptions, out *v1.PodLogOptions, s conversion.Scope) error { - return autoConvert_api_PodLogOptions_To_v1_PodLogOptions(in, out, s) -} - -func autoConvert_v1_PodPortForwardOptions_To_api_PodPortForwardOptions(in *v1.PodPortForwardOptions, out *api.PodPortForwardOptions, s conversion.Scope) error { - out.Ports = *(*[]int32)(unsafe.Pointer(&in.Ports)) - return nil -} - -// Convert_v1_PodPortForwardOptions_To_api_PodPortForwardOptions is an autogenerated conversion function. -func Convert_v1_PodPortForwardOptions_To_api_PodPortForwardOptions(in *v1.PodPortForwardOptions, out *api.PodPortForwardOptions, s conversion.Scope) error { - return autoConvert_v1_PodPortForwardOptions_To_api_PodPortForwardOptions(in, out, s) -} - -func autoConvert_api_PodPortForwardOptions_To_v1_PodPortForwardOptions(in *api.PodPortForwardOptions, out *v1.PodPortForwardOptions, s conversion.Scope) error { - out.Ports = *(*[]int32)(unsafe.Pointer(&in.Ports)) - return nil -} - -// Convert_api_PodPortForwardOptions_To_v1_PodPortForwardOptions is an autogenerated conversion function. -func Convert_api_PodPortForwardOptions_To_v1_PodPortForwardOptions(in *api.PodPortForwardOptions, out *v1.PodPortForwardOptions, s conversion.Scope) error { - return autoConvert_api_PodPortForwardOptions_To_v1_PodPortForwardOptions(in, out, s) -} - -func autoConvert_v1_PodProxyOptions_To_api_PodProxyOptions(in *v1.PodProxyOptions, out *api.PodProxyOptions, s conversion.Scope) error { - out.Path = in.Path - return nil -} - -// Convert_v1_PodProxyOptions_To_api_PodProxyOptions is an autogenerated conversion function. -func Convert_v1_PodProxyOptions_To_api_PodProxyOptions(in *v1.PodProxyOptions, out *api.PodProxyOptions, s conversion.Scope) error { - return autoConvert_v1_PodProxyOptions_To_api_PodProxyOptions(in, out, s) -} - -func autoConvert_api_PodProxyOptions_To_v1_PodProxyOptions(in *api.PodProxyOptions, out *v1.PodProxyOptions, s conversion.Scope) error { - out.Path = in.Path - return nil -} - -// Convert_api_PodProxyOptions_To_v1_PodProxyOptions is an autogenerated conversion function. -func Convert_api_PodProxyOptions_To_v1_PodProxyOptions(in *api.PodProxyOptions, out *v1.PodProxyOptions, s conversion.Scope) error { - return autoConvert_api_PodProxyOptions_To_v1_PodProxyOptions(in, out, s) -} - -func autoConvert_v1_PodSecurityContext_To_api_PodSecurityContext(in *v1.PodSecurityContext, out *api.PodSecurityContext, s conversion.Scope) error { - out.SELinuxOptions = (*api.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) - out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser)) - out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot)) - out.SupplementalGroups = *(*[]int64)(unsafe.Pointer(&in.SupplementalGroups)) - out.FSGroup = (*int64)(unsafe.Pointer(in.FSGroup)) - return nil -} - -func autoConvert_api_PodSecurityContext_To_v1_PodSecurityContext(in *api.PodSecurityContext, out *v1.PodSecurityContext, s conversion.Scope) error { - // INFO: in.HostNetwork opted out of conversion generation - // INFO: in.HostPID opted out of conversion generation - // INFO: in.HostIPC opted out of conversion generation - out.SELinuxOptions = (*v1.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) - out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser)) - out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot)) - out.SupplementalGroups = *(*[]int64)(unsafe.Pointer(&in.SupplementalGroups)) - out.FSGroup = (*int64)(unsafe.Pointer(in.FSGroup)) - return nil -} - -func autoConvert_v1_PodSignature_To_api_PodSignature(in *v1.PodSignature, out *api.PodSignature, s conversion.Scope) error { - out.PodController = (*meta_v1.OwnerReference)(unsafe.Pointer(in.PodController)) - return nil -} - -// Convert_v1_PodSignature_To_api_PodSignature is an autogenerated conversion function. -func Convert_v1_PodSignature_To_api_PodSignature(in *v1.PodSignature, out *api.PodSignature, s conversion.Scope) error { - return autoConvert_v1_PodSignature_To_api_PodSignature(in, out, s) -} - -func autoConvert_api_PodSignature_To_v1_PodSignature(in *api.PodSignature, out *v1.PodSignature, s conversion.Scope) error { - out.PodController = (*meta_v1.OwnerReference)(unsafe.Pointer(in.PodController)) - return nil -} - -// Convert_api_PodSignature_To_v1_PodSignature is an autogenerated conversion function. -func Convert_api_PodSignature_To_v1_PodSignature(in *api.PodSignature, out *v1.PodSignature, s conversion.Scope) error { - return autoConvert_api_PodSignature_To_v1_PodSignature(in, out, s) -} - -func autoConvert_v1_PodSpec_To_api_PodSpec(in *v1.PodSpec, out *api.PodSpec, s conversion.Scope) error { - if in.Volumes != nil { - in, out := &in.Volumes, &out.Volumes - *out = make([]api.Volume, len(*in)) - for i := range *in { - if err := Convert_v1_Volume_To_api_Volume(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Volumes = nil - } - if in.InitContainers != nil { - in, out := &in.InitContainers, &out.InitContainers - *out = make([]api.Container, len(*in)) - for i := range *in { - if err := Convert_v1_Container_To_api_Container(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.InitContainers = nil - } - if in.Containers != nil { - in, out := &in.Containers, &out.Containers - *out = make([]api.Container, len(*in)) - for i := range *in { - if err := Convert_v1_Container_To_api_Container(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Containers = nil - } - out.RestartPolicy = api.RestartPolicy(in.RestartPolicy) - out.TerminationGracePeriodSeconds = (*int64)(unsafe.Pointer(in.TerminationGracePeriodSeconds)) - out.ActiveDeadlineSeconds = (*int64)(unsafe.Pointer(in.ActiveDeadlineSeconds)) - out.DNSPolicy = api.DNSPolicy(in.DNSPolicy) - out.NodeSelector = *(*map[string]string)(unsafe.Pointer(&in.NodeSelector)) - out.ServiceAccountName = in.ServiceAccountName - // INFO: in.DeprecatedServiceAccount opted out of conversion generation - out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken)) - out.NodeName = in.NodeName - // INFO: in.HostNetwork opted out of conversion generation - // INFO: in.HostPID opted out of conversion generation - // INFO: in.HostIPC opted out of conversion generation - if in.SecurityContext != nil { - in, out := &in.SecurityContext, &out.SecurityContext - *out = new(api.PodSecurityContext) - if err := Convert_v1_PodSecurityContext_To_api_PodSecurityContext(*in, *out, s); err != nil { - return err - } - } else { - out.SecurityContext = nil - } - out.ImagePullSecrets = *(*[]api.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets)) - out.Hostname = in.Hostname - out.Subdomain = in.Subdomain - out.Affinity = (*api.Affinity)(unsafe.Pointer(in.Affinity)) - out.SchedulerName = in.SchedulerName - out.Tolerations = *(*[]api.Toleration)(unsafe.Pointer(&in.Tolerations)) - out.HostAliases = *(*[]api.HostAlias)(unsafe.Pointer(&in.HostAliases)) - out.PriorityClassName = in.PriorityClassName - out.Priority = (*int32)(unsafe.Pointer(in.Priority)) - return nil -} - -func autoConvert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *v1.PodSpec, s conversion.Scope) error { - if in.Volumes != nil { - in, out := &in.Volumes, &out.Volumes - *out = make([]v1.Volume, len(*in)) - for i := range *in { - if err := Convert_api_Volume_To_v1_Volume(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Volumes = nil - } - if in.InitContainers != nil { - in, out := &in.InitContainers, &out.InitContainers - *out = make([]v1.Container, len(*in)) - for i := range *in { - if err := Convert_api_Container_To_v1_Container(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.InitContainers = nil - } - if in.Containers != nil { - in, out := &in.Containers, &out.Containers - *out = make([]v1.Container, len(*in)) - for i := range *in { - if err := Convert_api_Container_To_v1_Container(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Containers = nil - } - out.RestartPolicy = v1.RestartPolicy(in.RestartPolicy) - out.TerminationGracePeriodSeconds = (*int64)(unsafe.Pointer(in.TerminationGracePeriodSeconds)) - out.ActiveDeadlineSeconds = (*int64)(unsafe.Pointer(in.ActiveDeadlineSeconds)) - out.DNSPolicy = v1.DNSPolicy(in.DNSPolicy) - out.NodeSelector = *(*map[string]string)(unsafe.Pointer(&in.NodeSelector)) - out.ServiceAccountName = in.ServiceAccountName - out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken)) - out.NodeName = in.NodeName - if in.SecurityContext != nil { - in, out := &in.SecurityContext, &out.SecurityContext - *out = new(v1.PodSecurityContext) - if err := Convert_api_PodSecurityContext_To_v1_PodSecurityContext(*in, *out, s); err != nil { - return err - } - } else { - out.SecurityContext = nil - } - out.ImagePullSecrets = *(*[]v1.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets)) - out.Hostname = in.Hostname - out.Subdomain = in.Subdomain - out.Affinity = (*v1.Affinity)(unsafe.Pointer(in.Affinity)) - out.SchedulerName = in.SchedulerName - out.Tolerations = *(*[]v1.Toleration)(unsafe.Pointer(&in.Tolerations)) - out.HostAliases = *(*[]v1.HostAlias)(unsafe.Pointer(&in.HostAliases)) - out.PriorityClassName = in.PriorityClassName - out.Priority = (*int32)(unsafe.Pointer(in.Priority)) - return nil -} - -func autoConvert_v1_PodStatus_To_api_PodStatus(in *v1.PodStatus, out *api.PodStatus, s conversion.Scope) error { - out.Phase = api.PodPhase(in.Phase) - out.Conditions = *(*[]api.PodCondition)(unsafe.Pointer(&in.Conditions)) - out.Message = in.Message - out.Reason = in.Reason - out.HostIP = in.HostIP - out.PodIP = in.PodIP - out.StartTime = (*meta_v1.Time)(unsafe.Pointer(in.StartTime)) - out.InitContainerStatuses = *(*[]api.ContainerStatus)(unsafe.Pointer(&in.InitContainerStatuses)) - out.ContainerStatuses = *(*[]api.ContainerStatus)(unsafe.Pointer(&in.ContainerStatuses)) - out.QOSClass = api.PodQOSClass(in.QOSClass) - return nil -} - -// Convert_v1_PodStatus_To_api_PodStatus is an autogenerated conversion function. -func Convert_v1_PodStatus_To_api_PodStatus(in *v1.PodStatus, out *api.PodStatus, s conversion.Scope) error { - return autoConvert_v1_PodStatus_To_api_PodStatus(in, out, s) -} - -func autoConvert_api_PodStatus_To_v1_PodStatus(in *api.PodStatus, out *v1.PodStatus, s conversion.Scope) error { - out.Phase = v1.PodPhase(in.Phase) - out.Conditions = *(*[]v1.PodCondition)(unsafe.Pointer(&in.Conditions)) - out.Message = in.Message - out.Reason = in.Reason - out.HostIP = in.HostIP - out.PodIP = in.PodIP - out.StartTime = (*meta_v1.Time)(unsafe.Pointer(in.StartTime)) - out.QOSClass = v1.PodQOSClass(in.QOSClass) - out.InitContainerStatuses = *(*[]v1.ContainerStatus)(unsafe.Pointer(&in.InitContainerStatuses)) - out.ContainerStatuses = *(*[]v1.ContainerStatus)(unsafe.Pointer(&in.ContainerStatuses)) - return nil -} - -// Convert_api_PodStatus_To_v1_PodStatus is an autogenerated conversion function. -func Convert_api_PodStatus_To_v1_PodStatus(in *api.PodStatus, out *v1.PodStatus, s conversion.Scope) error { - return autoConvert_api_PodStatus_To_v1_PodStatus(in, out, s) -} - -func autoConvert_v1_PodStatusResult_To_api_PodStatusResult(in *v1.PodStatusResult, out *api.PodStatusResult, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_PodStatus_To_api_PodStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1_PodStatusResult_To_api_PodStatusResult is an autogenerated conversion function. -func Convert_v1_PodStatusResult_To_api_PodStatusResult(in *v1.PodStatusResult, out *api.PodStatusResult, s conversion.Scope) error { - return autoConvert_v1_PodStatusResult_To_api_PodStatusResult(in, out, s) -} - -func autoConvert_api_PodStatusResult_To_v1_PodStatusResult(in *api.PodStatusResult, out *v1.PodStatusResult, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_PodStatus_To_v1_PodStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_api_PodStatusResult_To_v1_PodStatusResult is an autogenerated conversion function. -func Convert_api_PodStatusResult_To_v1_PodStatusResult(in *api.PodStatusResult, out *v1.PodStatusResult, s conversion.Scope) error { - return autoConvert_api_PodStatusResult_To_v1_PodStatusResult(in, out, s) -} - -func autoConvert_v1_PodTemplate_To_api_PodTemplate(in *v1.PodTemplate, out *api.PodTemplate, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - return nil -} - -// Convert_v1_PodTemplate_To_api_PodTemplate is an autogenerated conversion function. -func Convert_v1_PodTemplate_To_api_PodTemplate(in *v1.PodTemplate, out *api.PodTemplate, s conversion.Scope) error { - return autoConvert_v1_PodTemplate_To_api_PodTemplate(in, out, s) -} - -func autoConvert_api_PodTemplate_To_v1_PodTemplate(in *api.PodTemplate, out *v1.PodTemplate, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - return nil -} - -// Convert_api_PodTemplate_To_v1_PodTemplate is an autogenerated conversion function. -func Convert_api_PodTemplate_To_v1_PodTemplate(in *api.PodTemplate, out *v1.PodTemplate, s conversion.Scope) error { - return autoConvert_api_PodTemplate_To_v1_PodTemplate(in, out, s) -} - -func autoConvert_v1_PodTemplateList_To_api_PodTemplateList(in *v1.PodTemplateList, out *api.PodTemplateList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]api.PodTemplate, len(*in)) - for i := range *in { - if err := Convert_v1_PodTemplate_To_api_PodTemplate(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1_PodTemplateList_To_api_PodTemplateList is an autogenerated conversion function. -func Convert_v1_PodTemplateList_To_api_PodTemplateList(in *v1.PodTemplateList, out *api.PodTemplateList, s conversion.Scope) error { - return autoConvert_v1_PodTemplateList_To_api_PodTemplateList(in, out, s) -} - -func autoConvert_api_PodTemplateList_To_v1_PodTemplateList(in *api.PodTemplateList, out *v1.PodTemplateList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1.PodTemplate, len(*in)) - for i := range *in { - if err := Convert_api_PodTemplate_To_v1_PodTemplate(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_api_PodTemplateList_To_v1_PodTemplateList is an autogenerated conversion function. -func Convert_api_PodTemplateList_To_v1_PodTemplateList(in *api.PodTemplateList, out *v1.PodTemplateList, s conversion.Scope) error { - return autoConvert_api_PodTemplateList_To_v1_PodTemplateList(in, out, s) -} - -func autoConvert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in *v1.PodTemplateSpec, out *api.PodTemplateSpec, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_PodSpec_To_api_PodSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -func autoConvert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in *api.PodTemplateSpec, out *v1.PodTemplateSpec, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_PodSpec_To_v1_PodSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1_PortworxVolumeSource_To_api_PortworxVolumeSource(in *v1.PortworxVolumeSource, out *api.PortworxVolumeSource, s conversion.Scope) error { - out.VolumeID = in.VolumeID - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_PortworxVolumeSource_To_api_PortworxVolumeSource is an autogenerated conversion function. -func Convert_v1_PortworxVolumeSource_To_api_PortworxVolumeSource(in *v1.PortworxVolumeSource, out *api.PortworxVolumeSource, s conversion.Scope) error { - return autoConvert_v1_PortworxVolumeSource_To_api_PortworxVolumeSource(in, out, s) -} - -func autoConvert_api_PortworxVolumeSource_To_v1_PortworxVolumeSource(in *api.PortworxVolumeSource, out *v1.PortworxVolumeSource, s conversion.Scope) error { - out.VolumeID = in.VolumeID - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_PortworxVolumeSource_To_v1_PortworxVolumeSource is an autogenerated conversion function. -func Convert_api_PortworxVolumeSource_To_v1_PortworxVolumeSource(in *api.PortworxVolumeSource, out *v1.PortworxVolumeSource, s conversion.Scope) error { - return autoConvert_api_PortworxVolumeSource_To_v1_PortworxVolumeSource(in, out, s) -} - -func autoConvert_v1_Preconditions_To_api_Preconditions(in *v1.Preconditions, out *api.Preconditions, s conversion.Scope) error { - out.UID = (*types.UID)(unsafe.Pointer(in.UID)) - return nil -} - -// Convert_v1_Preconditions_To_api_Preconditions is an autogenerated conversion function. -func Convert_v1_Preconditions_To_api_Preconditions(in *v1.Preconditions, out *api.Preconditions, s conversion.Scope) error { - return autoConvert_v1_Preconditions_To_api_Preconditions(in, out, s) -} - -func autoConvert_api_Preconditions_To_v1_Preconditions(in *api.Preconditions, out *v1.Preconditions, s conversion.Scope) error { - out.UID = (*types.UID)(unsafe.Pointer(in.UID)) - return nil -} - -// Convert_api_Preconditions_To_v1_Preconditions is an autogenerated conversion function. -func Convert_api_Preconditions_To_v1_Preconditions(in *api.Preconditions, out *v1.Preconditions, s conversion.Scope) error { - return autoConvert_api_Preconditions_To_v1_Preconditions(in, out, s) -} - -func autoConvert_v1_PreferAvoidPodsEntry_To_api_PreferAvoidPodsEntry(in *v1.PreferAvoidPodsEntry, out *api.PreferAvoidPodsEntry, s conversion.Scope) error { - if err := Convert_v1_PodSignature_To_api_PodSignature(&in.PodSignature, &out.PodSignature, s); err != nil { - return err - } - out.EvictionTime = in.EvictionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1_PreferAvoidPodsEntry_To_api_PreferAvoidPodsEntry is an autogenerated conversion function. -func Convert_v1_PreferAvoidPodsEntry_To_api_PreferAvoidPodsEntry(in *v1.PreferAvoidPodsEntry, out *api.PreferAvoidPodsEntry, s conversion.Scope) error { - return autoConvert_v1_PreferAvoidPodsEntry_To_api_PreferAvoidPodsEntry(in, out, s) -} - -func autoConvert_api_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry(in *api.PreferAvoidPodsEntry, out *v1.PreferAvoidPodsEntry, s conversion.Scope) error { - if err := Convert_api_PodSignature_To_v1_PodSignature(&in.PodSignature, &out.PodSignature, s); err != nil { - return err - } - out.EvictionTime = in.EvictionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_api_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry is an autogenerated conversion function. -func Convert_api_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry(in *api.PreferAvoidPodsEntry, out *v1.PreferAvoidPodsEntry, s conversion.Scope) error { - return autoConvert_api_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry(in, out, s) -} - -func autoConvert_v1_PreferredSchedulingTerm_To_api_PreferredSchedulingTerm(in *v1.PreferredSchedulingTerm, out *api.PreferredSchedulingTerm, s conversion.Scope) error { - out.Weight = in.Weight - if err := Convert_v1_NodeSelectorTerm_To_api_NodeSelectorTerm(&in.Preference, &out.Preference, s); err != nil { - return err - } - return nil -} - -// Convert_v1_PreferredSchedulingTerm_To_api_PreferredSchedulingTerm is an autogenerated conversion function. -func Convert_v1_PreferredSchedulingTerm_To_api_PreferredSchedulingTerm(in *v1.PreferredSchedulingTerm, out *api.PreferredSchedulingTerm, s conversion.Scope) error { - return autoConvert_v1_PreferredSchedulingTerm_To_api_PreferredSchedulingTerm(in, out, s) -} - -func autoConvert_api_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm(in *api.PreferredSchedulingTerm, out *v1.PreferredSchedulingTerm, s conversion.Scope) error { - out.Weight = in.Weight - if err := Convert_api_NodeSelectorTerm_To_v1_NodeSelectorTerm(&in.Preference, &out.Preference, s); err != nil { - return err - } - return nil -} - -// Convert_api_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm is an autogenerated conversion function. -func Convert_api_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm(in *api.PreferredSchedulingTerm, out *v1.PreferredSchedulingTerm, s conversion.Scope) error { - return autoConvert_api_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm(in, out, s) -} - -func autoConvert_v1_Probe_To_api_Probe(in *v1.Probe, out *api.Probe, s conversion.Scope) error { - if err := Convert_v1_Handler_To_api_Handler(&in.Handler, &out.Handler, s); err != nil { - return err - } - out.InitialDelaySeconds = in.InitialDelaySeconds - out.TimeoutSeconds = in.TimeoutSeconds - out.PeriodSeconds = in.PeriodSeconds - out.SuccessThreshold = in.SuccessThreshold - out.FailureThreshold = in.FailureThreshold - return nil -} - -// Convert_v1_Probe_To_api_Probe is an autogenerated conversion function. -func Convert_v1_Probe_To_api_Probe(in *v1.Probe, out *api.Probe, s conversion.Scope) error { - return autoConvert_v1_Probe_To_api_Probe(in, out, s) -} - -func autoConvert_api_Probe_To_v1_Probe(in *api.Probe, out *v1.Probe, s conversion.Scope) error { - if err := Convert_api_Handler_To_v1_Handler(&in.Handler, &out.Handler, s); err != nil { - return err - } - out.InitialDelaySeconds = in.InitialDelaySeconds - out.TimeoutSeconds = in.TimeoutSeconds - out.PeriodSeconds = in.PeriodSeconds - out.SuccessThreshold = in.SuccessThreshold - out.FailureThreshold = in.FailureThreshold - return nil -} - -// Convert_api_Probe_To_v1_Probe is an autogenerated conversion function. -func Convert_api_Probe_To_v1_Probe(in *api.Probe, out *v1.Probe, s conversion.Scope) error { - return autoConvert_api_Probe_To_v1_Probe(in, out, s) -} - -func autoConvert_v1_ProjectedVolumeSource_To_api_ProjectedVolumeSource(in *v1.ProjectedVolumeSource, out *api.ProjectedVolumeSource, s conversion.Scope) error { - out.Sources = *(*[]api.VolumeProjection)(unsafe.Pointer(&in.Sources)) - out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) - return nil -} - -// Convert_v1_ProjectedVolumeSource_To_api_ProjectedVolumeSource is an autogenerated conversion function. -func Convert_v1_ProjectedVolumeSource_To_api_ProjectedVolumeSource(in *v1.ProjectedVolumeSource, out *api.ProjectedVolumeSource, s conversion.Scope) error { - return autoConvert_v1_ProjectedVolumeSource_To_api_ProjectedVolumeSource(in, out, s) -} - -func autoConvert_api_ProjectedVolumeSource_To_v1_ProjectedVolumeSource(in *api.ProjectedVolumeSource, out *v1.ProjectedVolumeSource, s conversion.Scope) error { - out.Sources = *(*[]v1.VolumeProjection)(unsafe.Pointer(&in.Sources)) - out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) - return nil -} - -// Convert_api_ProjectedVolumeSource_To_v1_ProjectedVolumeSource is an autogenerated conversion function. -func Convert_api_ProjectedVolumeSource_To_v1_ProjectedVolumeSource(in *api.ProjectedVolumeSource, out *v1.ProjectedVolumeSource, s conversion.Scope) error { - return autoConvert_api_ProjectedVolumeSource_To_v1_ProjectedVolumeSource(in, out, s) -} - -func autoConvert_v1_QuobyteVolumeSource_To_api_QuobyteVolumeSource(in *v1.QuobyteVolumeSource, out *api.QuobyteVolumeSource, s conversion.Scope) error { - out.Registry = in.Registry - out.Volume = in.Volume - out.ReadOnly = in.ReadOnly - out.User = in.User - out.Group = in.Group - return nil -} - -// Convert_v1_QuobyteVolumeSource_To_api_QuobyteVolumeSource is an autogenerated conversion function. -func Convert_v1_QuobyteVolumeSource_To_api_QuobyteVolumeSource(in *v1.QuobyteVolumeSource, out *api.QuobyteVolumeSource, s conversion.Scope) error { - return autoConvert_v1_QuobyteVolumeSource_To_api_QuobyteVolumeSource(in, out, s) -} - -func autoConvert_api_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in *api.QuobyteVolumeSource, out *v1.QuobyteVolumeSource, s conversion.Scope) error { - out.Registry = in.Registry - out.Volume = in.Volume - out.ReadOnly = in.ReadOnly - out.User = in.User - out.Group = in.Group - return nil -} - -// Convert_api_QuobyteVolumeSource_To_v1_QuobyteVolumeSource is an autogenerated conversion function. -func Convert_api_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in *api.QuobyteVolumeSource, out *v1.QuobyteVolumeSource, s conversion.Scope) error { - return autoConvert_api_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in, out, s) -} - -func autoConvert_v1_RBDVolumeSource_To_api_RBDVolumeSource(in *v1.RBDVolumeSource, out *api.RBDVolumeSource, s conversion.Scope) error { - out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors)) - out.RBDImage = in.RBDImage - out.FSType = in.FSType - out.RBDPool = in.RBDPool - out.RadosUser = in.RadosUser - out.Keyring = in.Keyring - out.SecretRef = (*api.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_RBDVolumeSource_To_api_RBDVolumeSource is an autogenerated conversion function. -func Convert_v1_RBDVolumeSource_To_api_RBDVolumeSource(in *v1.RBDVolumeSource, out *api.RBDVolumeSource, s conversion.Scope) error { - return autoConvert_v1_RBDVolumeSource_To_api_RBDVolumeSource(in, out, s) -} - -func autoConvert_api_RBDVolumeSource_To_v1_RBDVolumeSource(in *api.RBDVolumeSource, out *v1.RBDVolumeSource, s conversion.Scope) error { - out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors)) - out.RBDImage = in.RBDImage - out.FSType = in.FSType - out.RBDPool = in.RBDPool - out.RadosUser = in.RadosUser - out.Keyring = in.Keyring - out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_RBDVolumeSource_To_v1_RBDVolumeSource is an autogenerated conversion function. -func Convert_api_RBDVolumeSource_To_v1_RBDVolumeSource(in *api.RBDVolumeSource, out *v1.RBDVolumeSource, s conversion.Scope) error { - return autoConvert_api_RBDVolumeSource_To_v1_RBDVolumeSource(in, out, s) -} - -func autoConvert_v1_RangeAllocation_To_api_RangeAllocation(in *v1.RangeAllocation, out *api.RangeAllocation, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Range = in.Range - out.Data = *(*[]byte)(unsafe.Pointer(&in.Data)) - return nil -} - -// Convert_v1_RangeAllocation_To_api_RangeAllocation is an autogenerated conversion function. -func Convert_v1_RangeAllocation_To_api_RangeAllocation(in *v1.RangeAllocation, out *api.RangeAllocation, s conversion.Scope) error { - return autoConvert_v1_RangeAllocation_To_api_RangeAllocation(in, out, s) -} - -func autoConvert_api_RangeAllocation_To_v1_RangeAllocation(in *api.RangeAllocation, out *v1.RangeAllocation, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Range = in.Range - out.Data = *(*[]byte)(unsafe.Pointer(&in.Data)) - return nil -} - -// Convert_api_RangeAllocation_To_v1_RangeAllocation is an autogenerated conversion function. -func Convert_api_RangeAllocation_To_v1_RangeAllocation(in *api.RangeAllocation, out *v1.RangeAllocation, s conversion.Scope) error { - return autoConvert_api_RangeAllocation_To_v1_RangeAllocation(in, out, s) -} - -func autoConvert_v1_ReplicationController_To_api_ReplicationController(in *v1.ReplicationController, out *api.ReplicationController, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1_ReplicationController_To_api_ReplicationController is an autogenerated conversion function. -func Convert_v1_ReplicationController_To_api_ReplicationController(in *v1.ReplicationController, out *api.ReplicationController, s conversion.Scope) error { - return autoConvert_v1_ReplicationController_To_api_ReplicationController(in, out, s) -} - -func autoConvert_api_ReplicationController_To_v1_ReplicationController(in *api.ReplicationController, out *v1.ReplicationController, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_api_ReplicationController_To_v1_ReplicationController is an autogenerated conversion function. -func Convert_api_ReplicationController_To_v1_ReplicationController(in *api.ReplicationController, out *v1.ReplicationController, s conversion.Scope) error { - return autoConvert_api_ReplicationController_To_v1_ReplicationController(in, out, s) -} - -func autoConvert_v1_ReplicationControllerCondition_To_api_ReplicationControllerCondition(in *v1.ReplicationControllerCondition, out *api.ReplicationControllerCondition, s conversion.Scope) error { - out.Type = api.ReplicationControllerConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1_ReplicationControllerCondition_To_api_ReplicationControllerCondition is an autogenerated conversion function. -func Convert_v1_ReplicationControllerCondition_To_api_ReplicationControllerCondition(in *v1.ReplicationControllerCondition, out *api.ReplicationControllerCondition, s conversion.Scope) error { - return autoConvert_v1_ReplicationControllerCondition_To_api_ReplicationControllerCondition(in, out, s) -} - -func autoConvert_api_ReplicationControllerCondition_To_v1_ReplicationControllerCondition(in *api.ReplicationControllerCondition, out *v1.ReplicationControllerCondition, s conversion.Scope) error { - out.Type = v1.ReplicationControllerConditionType(in.Type) - out.Status = v1.ConditionStatus(in.Status) - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_api_ReplicationControllerCondition_To_v1_ReplicationControllerCondition is an autogenerated conversion function. -func Convert_api_ReplicationControllerCondition_To_v1_ReplicationControllerCondition(in *api.ReplicationControllerCondition, out *v1.ReplicationControllerCondition, s conversion.Scope) error { - return autoConvert_api_ReplicationControllerCondition_To_v1_ReplicationControllerCondition(in, out, s) -} - -func autoConvert_v1_ReplicationControllerList_To_api_ReplicationControllerList(in *v1.ReplicationControllerList, out *api.ReplicationControllerList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]api.ReplicationController, len(*in)) - for i := range *in { - if err := Convert_v1_ReplicationController_To_api_ReplicationController(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1_ReplicationControllerList_To_api_ReplicationControllerList is an autogenerated conversion function. -func Convert_v1_ReplicationControllerList_To_api_ReplicationControllerList(in *v1.ReplicationControllerList, out *api.ReplicationControllerList, s conversion.Scope) error { - return autoConvert_v1_ReplicationControllerList_To_api_ReplicationControllerList(in, out, s) -} - -func autoConvert_api_ReplicationControllerList_To_v1_ReplicationControllerList(in *api.ReplicationControllerList, out *v1.ReplicationControllerList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1.ReplicationController, len(*in)) - for i := range *in { - if err := Convert_api_ReplicationController_To_v1_ReplicationController(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_api_ReplicationControllerList_To_v1_ReplicationControllerList is an autogenerated conversion function. -func Convert_api_ReplicationControllerList_To_v1_ReplicationControllerList(in *api.ReplicationControllerList, out *v1.ReplicationControllerList, s conversion.Scope) error { - return autoConvert_api_ReplicationControllerList_To_v1_ReplicationControllerList(in, out, s) -} - -func autoConvert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec(in *v1.ReplicationControllerSpec, out *api.ReplicationControllerSpec, s conversion.Scope) error { - if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - out.MinReadySeconds = in.MinReadySeconds - out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector)) - if in.Template != nil { - in, out := &in.Template, &out.Template - *out = new(api.PodTemplateSpec) - if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(*in, *out, s); err != nil { - return err - } - } else { - out.Template = nil - } - return nil -} - -func autoConvert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *api.ReplicationControllerSpec, out *v1.ReplicationControllerSpec, s conversion.Scope) error { - if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - out.MinReadySeconds = in.MinReadySeconds - out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector)) - if in.Template != nil { - in, out := &in.Template, &out.Template - *out = new(v1.PodTemplateSpec) - if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(*in, *out, s); err != nil { - return err - } - } else { - out.Template = nil - } - return nil -} - -func autoConvert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus(in *v1.ReplicationControllerStatus, out *api.ReplicationControllerStatus, s conversion.Scope) error { - out.Replicas = in.Replicas - out.FullyLabeledReplicas = in.FullyLabeledReplicas - out.ReadyReplicas = in.ReadyReplicas - out.AvailableReplicas = in.AvailableReplicas - out.ObservedGeneration = in.ObservedGeneration - out.Conditions = *(*[]api.ReplicationControllerCondition)(unsafe.Pointer(&in.Conditions)) - return nil -} - -// Convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus is an autogenerated conversion function. -func Convert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus(in *v1.ReplicationControllerStatus, out *api.ReplicationControllerStatus, s conversion.Scope) error { - return autoConvert_v1_ReplicationControllerStatus_To_api_ReplicationControllerStatus(in, out, s) -} - -func autoConvert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in *api.ReplicationControllerStatus, out *v1.ReplicationControllerStatus, s conversion.Scope) error { - out.Replicas = in.Replicas - out.FullyLabeledReplicas = in.FullyLabeledReplicas - out.ReadyReplicas = in.ReadyReplicas - out.AvailableReplicas = in.AvailableReplicas - out.ObservedGeneration = in.ObservedGeneration - out.Conditions = *(*[]v1.ReplicationControllerCondition)(unsafe.Pointer(&in.Conditions)) - return nil -} - -// Convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus is an autogenerated conversion function. -func Convert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in *api.ReplicationControllerStatus, out *v1.ReplicationControllerStatus, s conversion.Scope) error { - return autoConvert_api_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in, out, s) -} - -func autoConvert_v1_ResourceFieldSelector_To_api_ResourceFieldSelector(in *v1.ResourceFieldSelector, out *api.ResourceFieldSelector, s conversion.Scope) error { - out.ContainerName = in.ContainerName - out.Resource = in.Resource - out.Divisor = in.Divisor - return nil -} - -// Convert_v1_ResourceFieldSelector_To_api_ResourceFieldSelector is an autogenerated conversion function. -func Convert_v1_ResourceFieldSelector_To_api_ResourceFieldSelector(in *v1.ResourceFieldSelector, out *api.ResourceFieldSelector, s conversion.Scope) error { - return autoConvert_v1_ResourceFieldSelector_To_api_ResourceFieldSelector(in, out, s) -} - -func autoConvert_api_ResourceFieldSelector_To_v1_ResourceFieldSelector(in *api.ResourceFieldSelector, out *v1.ResourceFieldSelector, s conversion.Scope) error { - out.ContainerName = in.ContainerName - out.Resource = in.Resource - out.Divisor = in.Divisor - return nil -} - -// Convert_api_ResourceFieldSelector_To_v1_ResourceFieldSelector is an autogenerated conversion function. -func Convert_api_ResourceFieldSelector_To_v1_ResourceFieldSelector(in *api.ResourceFieldSelector, out *v1.ResourceFieldSelector, s conversion.Scope) error { - return autoConvert_api_ResourceFieldSelector_To_v1_ResourceFieldSelector(in, out, s) -} - -func autoConvert_v1_ResourceQuota_To_api_ResourceQuota(in *v1.ResourceQuota, out *api.ResourceQuota, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_ResourceQuotaSpec_To_api_ResourceQuotaSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1_ResourceQuotaStatus_To_api_ResourceQuotaStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1_ResourceQuota_To_api_ResourceQuota is an autogenerated conversion function. -func Convert_v1_ResourceQuota_To_api_ResourceQuota(in *v1.ResourceQuota, out *api.ResourceQuota, s conversion.Scope) error { - return autoConvert_v1_ResourceQuota_To_api_ResourceQuota(in, out, s) -} - -func autoConvert_api_ResourceQuota_To_v1_ResourceQuota(in *api.ResourceQuota, out *v1.ResourceQuota, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_api_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_api_ResourceQuota_To_v1_ResourceQuota is an autogenerated conversion function. -func Convert_api_ResourceQuota_To_v1_ResourceQuota(in *api.ResourceQuota, out *v1.ResourceQuota, s conversion.Scope) error { - return autoConvert_api_ResourceQuota_To_v1_ResourceQuota(in, out, s) -} - -func autoConvert_v1_ResourceQuotaList_To_api_ResourceQuotaList(in *v1.ResourceQuotaList, out *api.ResourceQuotaList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.ResourceQuota)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_ResourceQuotaList_To_api_ResourceQuotaList is an autogenerated conversion function. -func Convert_v1_ResourceQuotaList_To_api_ResourceQuotaList(in *v1.ResourceQuotaList, out *api.ResourceQuotaList, s conversion.Scope) error { - return autoConvert_v1_ResourceQuotaList_To_api_ResourceQuotaList(in, out, s) -} - -func autoConvert_api_ResourceQuotaList_To_v1_ResourceQuotaList(in *api.ResourceQuotaList, out *v1.ResourceQuotaList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.ResourceQuota)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_ResourceQuotaList_To_v1_ResourceQuotaList is an autogenerated conversion function. -func Convert_api_ResourceQuotaList_To_v1_ResourceQuotaList(in *api.ResourceQuotaList, out *v1.ResourceQuotaList, s conversion.Scope) error { - return autoConvert_api_ResourceQuotaList_To_v1_ResourceQuotaList(in, out, s) -} - -func autoConvert_v1_ResourceQuotaSpec_To_api_ResourceQuotaSpec(in *v1.ResourceQuotaSpec, out *api.ResourceQuotaSpec, s conversion.Scope) error { - out.Hard = *(*api.ResourceList)(unsafe.Pointer(&in.Hard)) - out.Scopes = *(*[]api.ResourceQuotaScope)(unsafe.Pointer(&in.Scopes)) - return nil -} - -// Convert_v1_ResourceQuotaSpec_To_api_ResourceQuotaSpec is an autogenerated conversion function. -func Convert_v1_ResourceQuotaSpec_To_api_ResourceQuotaSpec(in *v1.ResourceQuotaSpec, out *api.ResourceQuotaSpec, s conversion.Scope) error { - return autoConvert_v1_ResourceQuotaSpec_To_api_ResourceQuotaSpec(in, out, s) -} - -func autoConvert_api_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(in *api.ResourceQuotaSpec, out *v1.ResourceQuotaSpec, s conversion.Scope) error { - out.Hard = *(*v1.ResourceList)(unsafe.Pointer(&in.Hard)) - out.Scopes = *(*[]v1.ResourceQuotaScope)(unsafe.Pointer(&in.Scopes)) - return nil -} - -// Convert_api_ResourceQuotaSpec_To_v1_ResourceQuotaSpec is an autogenerated conversion function. -func Convert_api_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(in *api.ResourceQuotaSpec, out *v1.ResourceQuotaSpec, s conversion.Scope) error { - return autoConvert_api_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(in, out, s) -} - -func autoConvert_v1_ResourceQuotaStatus_To_api_ResourceQuotaStatus(in *v1.ResourceQuotaStatus, out *api.ResourceQuotaStatus, s conversion.Scope) error { - out.Hard = *(*api.ResourceList)(unsafe.Pointer(&in.Hard)) - out.Used = *(*api.ResourceList)(unsafe.Pointer(&in.Used)) - return nil -} - -// Convert_v1_ResourceQuotaStatus_To_api_ResourceQuotaStatus is an autogenerated conversion function. -func Convert_v1_ResourceQuotaStatus_To_api_ResourceQuotaStatus(in *v1.ResourceQuotaStatus, out *api.ResourceQuotaStatus, s conversion.Scope) error { - return autoConvert_v1_ResourceQuotaStatus_To_api_ResourceQuotaStatus(in, out, s) -} - -func autoConvert_api_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(in *api.ResourceQuotaStatus, out *v1.ResourceQuotaStatus, s conversion.Scope) error { - out.Hard = *(*v1.ResourceList)(unsafe.Pointer(&in.Hard)) - out.Used = *(*v1.ResourceList)(unsafe.Pointer(&in.Used)) - return nil -} - -// Convert_api_ResourceQuotaStatus_To_v1_ResourceQuotaStatus is an autogenerated conversion function. -func Convert_api_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(in *api.ResourceQuotaStatus, out *v1.ResourceQuotaStatus, s conversion.Scope) error { - return autoConvert_api_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(in, out, s) -} - -func autoConvert_v1_ResourceRequirements_To_api_ResourceRequirements(in *v1.ResourceRequirements, out *api.ResourceRequirements, s conversion.Scope) error { - out.Limits = *(*api.ResourceList)(unsafe.Pointer(&in.Limits)) - out.Requests = *(*api.ResourceList)(unsafe.Pointer(&in.Requests)) - return nil -} - -// Convert_v1_ResourceRequirements_To_api_ResourceRequirements is an autogenerated conversion function. -func Convert_v1_ResourceRequirements_To_api_ResourceRequirements(in *v1.ResourceRequirements, out *api.ResourceRequirements, s conversion.Scope) error { - return autoConvert_v1_ResourceRequirements_To_api_ResourceRequirements(in, out, s) -} - -func autoConvert_api_ResourceRequirements_To_v1_ResourceRequirements(in *api.ResourceRequirements, out *v1.ResourceRequirements, s conversion.Scope) error { - out.Limits = *(*v1.ResourceList)(unsafe.Pointer(&in.Limits)) - out.Requests = *(*v1.ResourceList)(unsafe.Pointer(&in.Requests)) - return nil -} - -// Convert_api_ResourceRequirements_To_v1_ResourceRequirements is an autogenerated conversion function. -func Convert_api_ResourceRequirements_To_v1_ResourceRequirements(in *api.ResourceRequirements, out *v1.ResourceRequirements, s conversion.Scope) error { - return autoConvert_api_ResourceRequirements_To_v1_ResourceRequirements(in, out, s) -} - -func autoConvert_v1_SELinuxOptions_To_api_SELinuxOptions(in *v1.SELinuxOptions, out *api.SELinuxOptions, s conversion.Scope) error { - out.User = in.User - out.Role = in.Role - out.Type = in.Type - out.Level = in.Level - return nil -} - -// Convert_v1_SELinuxOptions_To_api_SELinuxOptions is an autogenerated conversion function. -func Convert_v1_SELinuxOptions_To_api_SELinuxOptions(in *v1.SELinuxOptions, out *api.SELinuxOptions, s conversion.Scope) error { - return autoConvert_v1_SELinuxOptions_To_api_SELinuxOptions(in, out, s) -} - -func autoConvert_api_SELinuxOptions_To_v1_SELinuxOptions(in *api.SELinuxOptions, out *v1.SELinuxOptions, s conversion.Scope) error { - out.User = in.User - out.Role = in.Role - out.Type = in.Type - out.Level = in.Level - return nil -} - -// Convert_api_SELinuxOptions_To_v1_SELinuxOptions is an autogenerated conversion function. -func Convert_api_SELinuxOptions_To_v1_SELinuxOptions(in *api.SELinuxOptions, out *v1.SELinuxOptions, s conversion.Scope) error { - return autoConvert_api_SELinuxOptions_To_v1_SELinuxOptions(in, out, s) -} - -func autoConvert_v1_ScaleIOVolumeSource_To_api_ScaleIOVolumeSource(in *v1.ScaleIOVolumeSource, out *api.ScaleIOVolumeSource, s conversion.Scope) error { - out.Gateway = in.Gateway - out.System = in.System - out.SecretRef = (*api.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.SSLEnabled = in.SSLEnabled - out.ProtectionDomain = in.ProtectionDomain - out.StoragePool = in.StoragePool - out.StorageMode = in.StorageMode - out.VolumeName = in.VolumeName - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_v1_ScaleIOVolumeSource_To_api_ScaleIOVolumeSource is an autogenerated conversion function. -func Convert_v1_ScaleIOVolumeSource_To_api_ScaleIOVolumeSource(in *v1.ScaleIOVolumeSource, out *api.ScaleIOVolumeSource, s conversion.Scope) error { - return autoConvert_v1_ScaleIOVolumeSource_To_api_ScaleIOVolumeSource(in, out, s) -} - -func autoConvert_api_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource(in *api.ScaleIOVolumeSource, out *v1.ScaleIOVolumeSource, s conversion.Scope) error { - out.Gateway = in.Gateway - out.System = in.System - out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - out.SSLEnabled = in.SSLEnabled - out.ProtectionDomain = in.ProtectionDomain - out.StoragePool = in.StoragePool - out.StorageMode = in.StorageMode - out.VolumeName = in.VolumeName - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - return nil -} - -// Convert_api_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource is an autogenerated conversion function. -func Convert_api_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource(in *api.ScaleIOVolumeSource, out *v1.ScaleIOVolumeSource, s conversion.Scope) error { - return autoConvert_api_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource(in, out, s) -} - -func autoConvert_v1_Secret_To_api_Secret(in *v1.Secret, out *api.Secret, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Data = *(*map[string][]byte)(unsafe.Pointer(&in.Data)) - // INFO: in.StringData opted out of conversion generation - out.Type = api.SecretType(in.Type) - return nil -} - -func autoConvert_api_Secret_To_v1_Secret(in *api.Secret, out *v1.Secret, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Data = *(*map[string][]byte)(unsafe.Pointer(&in.Data)) - out.Type = v1.SecretType(in.Type) - return nil -} - -// Convert_api_Secret_To_v1_Secret is an autogenerated conversion function. -func Convert_api_Secret_To_v1_Secret(in *api.Secret, out *v1.Secret, s conversion.Scope) error { - return autoConvert_api_Secret_To_v1_Secret(in, out, s) -} - -func autoConvert_v1_SecretEnvSource_To_api_SecretEnvSource(in *v1.SecretEnvSource, out *api.SecretEnvSource, s conversion.Scope) error { - if err := Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_v1_SecretEnvSource_To_api_SecretEnvSource is an autogenerated conversion function. -func Convert_v1_SecretEnvSource_To_api_SecretEnvSource(in *v1.SecretEnvSource, out *api.SecretEnvSource, s conversion.Scope) error { - return autoConvert_v1_SecretEnvSource_To_api_SecretEnvSource(in, out, s) -} - -func autoConvert_api_SecretEnvSource_To_v1_SecretEnvSource(in *api.SecretEnvSource, out *v1.SecretEnvSource, s conversion.Scope) error { - if err := Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_api_SecretEnvSource_To_v1_SecretEnvSource is an autogenerated conversion function. -func Convert_api_SecretEnvSource_To_v1_SecretEnvSource(in *api.SecretEnvSource, out *v1.SecretEnvSource, s conversion.Scope) error { - return autoConvert_api_SecretEnvSource_To_v1_SecretEnvSource(in, out, s) -} - -func autoConvert_v1_SecretKeySelector_To_api_SecretKeySelector(in *v1.SecretKeySelector, out *api.SecretKeySelector, s conversion.Scope) error { - if err := Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Key = in.Key - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_v1_SecretKeySelector_To_api_SecretKeySelector is an autogenerated conversion function. -func Convert_v1_SecretKeySelector_To_api_SecretKeySelector(in *v1.SecretKeySelector, out *api.SecretKeySelector, s conversion.Scope) error { - return autoConvert_v1_SecretKeySelector_To_api_SecretKeySelector(in, out, s) -} - -func autoConvert_api_SecretKeySelector_To_v1_SecretKeySelector(in *api.SecretKeySelector, out *v1.SecretKeySelector, s conversion.Scope) error { - if err := Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Key = in.Key - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_api_SecretKeySelector_To_v1_SecretKeySelector is an autogenerated conversion function. -func Convert_api_SecretKeySelector_To_v1_SecretKeySelector(in *api.SecretKeySelector, out *v1.SecretKeySelector, s conversion.Scope) error { - return autoConvert_api_SecretKeySelector_To_v1_SecretKeySelector(in, out, s) -} - -func autoConvert_v1_SecretList_To_api_SecretList(in *v1.SecretList, out *api.SecretList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]api.Secret, len(*in)) - for i := range *in { - if err := Convert_v1_Secret_To_api_Secret(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1_SecretList_To_api_SecretList is an autogenerated conversion function. -func Convert_v1_SecretList_To_api_SecretList(in *v1.SecretList, out *api.SecretList, s conversion.Scope) error { - return autoConvert_v1_SecretList_To_api_SecretList(in, out, s) -} - -func autoConvert_api_SecretList_To_v1_SecretList(in *api.SecretList, out *v1.SecretList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1.Secret, len(*in)) - for i := range *in { - if err := Convert_api_Secret_To_v1_Secret(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_api_SecretList_To_v1_SecretList is an autogenerated conversion function. -func Convert_api_SecretList_To_v1_SecretList(in *api.SecretList, out *v1.SecretList, s conversion.Scope) error { - return autoConvert_api_SecretList_To_v1_SecretList(in, out, s) -} - -func autoConvert_v1_SecretProjection_To_api_SecretProjection(in *v1.SecretProjection, out *api.SecretProjection, s conversion.Scope) error { - if err := Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Items = *(*[]api.KeyToPath)(unsafe.Pointer(&in.Items)) - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_v1_SecretProjection_To_api_SecretProjection is an autogenerated conversion function. -func Convert_v1_SecretProjection_To_api_SecretProjection(in *v1.SecretProjection, out *api.SecretProjection, s conversion.Scope) error { - return autoConvert_v1_SecretProjection_To_api_SecretProjection(in, out, s) -} - -func autoConvert_api_SecretProjection_To_v1_SecretProjection(in *api.SecretProjection, out *v1.SecretProjection, s conversion.Scope) error { - if err := Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { - return err - } - out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items)) - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_api_SecretProjection_To_v1_SecretProjection is an autogenerated conversion function. -func Convert_api_SecretProjection_To_v1_SecretProjection(in *api.SecretProjection, out *v1.SecretProjection, s conversion.Scope) error { - return autoConvert_api_SecretProjection_To_v1_SecretProjection(in, out, s) -} - -func autoConvert_v1_SecretReference_To_api_SecretReference(in *v1.SecretReference, out *api.SecretReference, s conversion.Scope) error { - out.Name = in.Name - out.Namespace = in.Namespace - return nil -} - -// Convert_v1_SecretReference_To_api_SecretReference is an autogenerated conversion function. -func Convert_v1_SecretReference_To_api_SecretReference(in *v1.SecretReference, out *api.SecretReference, s conversion.Scope) error { - return autoConvert_v1_SecretReference_To_api_SecretReference(in, out, s) -} - -func autoConvert_api_SecretReference_To_v1_SecretReference(in *api.SecretReference, out *v1.SecretReference, s conversion.Scope) error { - out.Name = in.Name - out.Namespace = in.Namespace - return nil -} - -// Convert_api_SecretReference_To_v1_SecretReference is an autogenerated conversion function. -func Convert_api_SecretReference_To_v1_SecretReference(in *api.SecretReference, out *v1.SecretReference, s conversion.Scope) error { - return autoConvert_api_SecretReference_To_v1_SecretReference(in, out, s) -} - -func autoConvert_v1_SecretVolumeSource_To_api_SecretVolumeSource(in *v1.SecretVolumeSource, out *api.SecretVolumeSource, s conversion.Scope) error { - out.SecretName = in.SecretName - out.Items = *(*[]api.KeyToPath)(unsafe.Pointer(&in.Items)) - out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_v1_SecretVolumeSource_To_api_SecretVolumeSource is an autogenerated conversion function. -func Convert_v1_SecretVolumeSource_To_api_SecretVolumeSource(in *v1.SecretVolumeSource, out *api.SecretVolumeSource, s conversion.Scope) error { - return autoConvert_v1_SecretVolumeSource_To_api_SecretVolumeSource(in, out, s) -} - -func autoConvert_api_SecretVolumeSource_To_v1_SecretVolumeSource(in *api.SecretVolumeSource, out *v1.SecretVolumeSource, s conversion.Scope) error { - out.SecretName = in.SecretName - out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items)) - out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) - out.Optional = (*bool)(unsafe.Pointer(in.Optional)) - return nil -} - -// Convert_api_SecretVolumeSource_To_v1_SecretVolumeSource is an autogenerated conversion function. -func Convert_api_SecretVolumeSource_To_v1_SecretVolumeSource(in *api.SecretVolumeSource, out *v1.SecretVolumeSource, s conversion.Scope) error { - return autoConvert_api_SecretVolumeSource_To_v1_SecretVolumeSource(in, out, s) -} - -func autoConvert_v1_SecurityContext_To_api_SecurityContext(in *v1.SecurityContext, out *api.SecurityContext, s conversion.Scope) error { - out.Capabilities = (*api.Capabilities)(unsafe.Pointer(in.Capabilities)) - out.Privileged = (*bool)(unsafe.Pointer(in.Privileged)) - out.SELinuxOptions = (*api.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) - out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser)) - out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot)) - out.ReadOnlyRootFilesystem = (*bool)(unsafe.Pointer(in.ReadOnlyRootFilesystem)) - out.AllowPrivilegeEscalation = (*bool)(unsafe.Pointer(in.AllowPrivilegeEscalation)) - return nil -} - -// Convert_v1_SecurityContext_To_api_SecurityContext is an autogenerated conversion function. -func Convert_v1_SecurityContext_To_api_SecurityContext(in *v1.SecurityContext, out *api.SecurityContext, s conversion.Scope) error { - return autoConvert_v1_SecurityContext_To_api_SecurityContext(in, out, s) -} - -func autoConvert_api_SecurityContext_To_v1_SecurityContext(in *api.SecurityContext, out *v1.SecurityContext, s conversion.Scope) error { - out.Capabilities = (*v1.Capabilities)(unsafe.Pointer(in.Capabilities)) - out.Privileged = (*bool)(unsafe.Pointer(in.Privileged)) - out.SELinuxOptions = (*v1.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) - out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser)) - out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot)) - out.ReadOnlyRootFilesystem = (*bool)(unsafe.Pointer(in.ReadOnlyRootFilesystem)) - out.AllowPrivilegeEscalation = (*bool)(unsafe.Pointer(in.AllowPrivilegeEscalation)) - return nil -} - -func autoConvert_v1_SerializedReference_To_api_SerializedReference(in *v1.SerializedReference, out *api.SerializedReference, s conversion.Scope) error { - if err := Convert_v1_ObjectReference_To_api_ObjectReference(&in.Reference, &out.Reference, s); err != nil { - return err - } - return nil -} - -// Convert_v1_SerializedReference_To_api_SerializedReference is an autogenerated conversion function. -func Convert_v1_SerializedReference_To_api_SerializedReference(in *v1.SerializedReference, out *api.SerializedReference, s conversion.Scope) error { - return autoConvert_v1_SerializedReference_To_api_SerializedReference(in, out, s) -} - -func autoConvert_api_SerializedReference_To_v1_SerializedReference(in *api.SerializedReference, out *v1.SerializedReference, s conversion.Scope) error { - if err := Convert_api_ObjectReference_To_v1_ObjectReference(&in.Reference, &out.Reference, s); err != nil { - return err - } - return nil -} - -// Convert_api_SerializedReference_To_v1_SerializedReference is an autogenerated conversion function. -func Convert_api_SerializedReference_To_v1_SerializedReference(in *api.SerializedReference, out *v1.SerializedReference, s conversion.Scope) error { - return autoConvert_api_SerializedReference_To_v1_SerializedReference(in, out, s) -} - -func autoConvert_v1_Service_To_api_Service(in *v1.Service, out *api.Service, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_ServiceSpec_To_api_ServiceSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1_ServiceStatus_To_api_ServiceStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1_Service_To_api_Service is an autogenerated conversion function. -func Convert_v1_Service_To_api_Service(in *v1.Service, out *api.Service, s conversion.Scope) error { - return autoConvert_v1_Service_To_api_Service(in, out, s) -} - -func autoConvert_api_Service_To_v1_Service(in *api.Service, out *v1.Service, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_api_ServiceSpec_To_v1_ServiceSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_api_ServiceStatus_To_v1_ServiceStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_api_Service_To_v1_Service is an autogenerated conversion function. -func Convert_api_Service_To_v1_Service(in *api.Service, out *v1.Service, s conversion.Scope) error { - return autoConvert_api_Service_To_v1_Service(in, out, s) -} - -func autoConvert_v1_ServiceAccount_To_api_ServiceAccount(in *v1.ServiceAccount, out *api.ServiceAccount, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Secrets = *(*[]api.ObjectReference)(unsafe.Pointer(&in.Secrets)) - out.ImagePullSecrets = *(*[]api.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets)) - out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken)) - return nil -} - -// Convert_v1_ServiceAccount_To_api_ServiceAccount is an autogenerated conversion function. -func Convert_v1_ServiceAccount_To_api_ServiceAccount(in *v1.ServiceAccount, out *api.ServiceAccount, s conversion.Scope) error { - return autoConvert_v1_ServiceAccount_To_api_ServiceAccount(in, out, s) -} - -func autoConvert_api_ServiceAccount_To_v1_ServiceAccount(in *api.ServiceAccount, out *v1.ServiceAccount, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Secrets = *(*[]v1.ObjectReference)(unsafe.Pointer(&in.Secrets)) - out.ImagePullSecrets = *(*[]v1.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets)) - out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken)) - return nil -} - -// Convert_api_ServiceAccount_To_v1_ServiceAccount is an autogenerated conversion function. -func Convert_api_ServiceAccount_To_v1_ServiceAccount(in *api.ServiceAccount, out *v1.ServiceAccount, s conversion.Scope) error { - return autoConvert_api_ServiceAccount_To_v1_ServiceAccount(in, out, s) -} - -func autoConvert_v1_ServiceAccountList_To_api_ServiceAccountList(in *v1.ServiceAccountList, out *api.ServiceAccountList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]api.ServiceAccount)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1_ServiceAccountList_To_api_ServiceAccountList is an autogenerated conversion function. -func Convert_v1_ServiceAccountList_To_api_ServiceAccountList(in *v1.ServiceAccountList, out *api.ServiceAccountList, s conversion.Scope) error { - return autoConvert_v1_ServiceAccountList_To_api_ServiceAccountList(in, out, s) -} - -func autoConvert_api_ServiceAccountList_To_v1_ServiceAccountList(in *api.ServiceAccountList, out *v1.ServiceAccountList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1.ServiceAccount)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_api_ServiceAccountList_To_v1_ServiceAccountList is an autogenerated conversion function. -func Convert_api_ServiceAccountList_To_v1_ServiceAccountList(in *api.ServiceAccountList, out *v1.ServiceAccountList, s conversion.Scope) error { - return autoConvert_api_ServiceAccountList_To_v1_ServiceAccountList(in, out, s) -} - -func autoConvert_v1_ServiceList_To_api_ServiceList(in *v1.ServiceList, out *api.ServiceList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]api.Service, len(*in)) - for i := range *in { - if err := Convert_v1_Service_To_api_Service(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1_ServiceList_To_api_ServiceList is an autogenerated conversion function. -func Convert_v1_ServiceList_To_api_ServiceList(in *v1.ServiceList, out *api.ServiceList, s conversion.Scope) error { - return autoConvert_v1_ServiceList_To_api_ServiceList(in, out, s) -} - -func autoConvert_api_ServiceList_To_v1_ServiceList(in *api.ServiceList, out *v1.ServiceList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1.Service, len(*in)) - for i := range *in { - if err := Convert_api_Service_To_v1_Service(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_api_ServiceList_To_v1_ServiceList is an autogenerated conversion function. -func Convert_api_ServiceList_To_v1_ServiceList(in *api.ServiceList, out *v1.ServiceList, s conversion.Scope) error { - return autoConvert_api_ServiceList_To_v1_ServiceList(in, out, s) -} - -func autoConvert_v1_ServicePort_To_api_ServicePort(in *v1.ServicePort, out *api.ServicePort, s conversion.Scope) error { - out.Name = in.Name - out.Protocol = api.Protocol(in.Protocol) - out.Port = in.Port - out.TargetPort = in.TargetPort - out.NodePort = in.NodePort - return nil -} - -// Convert_v1_ServicePort_To_api_ServicePort is an autogenerated conversion function. -func Convert_v1_ServicePort_To_api_ServicePort(in *v1.ServicePort, out *api.ServicePort, s conversion.Scope) error { - return autoConvert_v1_ServicePort_To_api_ServicePort(in, out, s) -} - -func autoConvert_api_ServicePort_To_v1_ServicePort(in *api.ServicePort, out *v1.ServicePort, s conversion.Scope) error { - out.Name = in.Name - out.Protocol = v1.Protocol(in.Protocol) - out.Port = in.Port - out.TargetPort = in.TargetPort - out.NodePort = in.NodePort - return nil -} - -// Convert_api_ServicePort_To_v1_ServicePort is an autogenerated conversion function. -func Convert_api_ServicePort_To_v1_ServicePort(in *api.ServicePort, out *v1.ServicePort, s conversion.Scope) error { - return autoConvert_api_ServicePort_To_v1_ServicePort(in, out, s) -} - -func autoConvert_v1_ServiceProxyOptions_To_api_ServiceProxyOptions(in *v1.ServiceProxyOptions, out *api.ServiceProxyOptions, s conversion.Scope) error { - out.Path = in.Path - return nil -} - -// Convert_v1_ServiceProxyOptions_To_api_ServiceProxyOptions is an autogenerated conversion function. -func Convert_v1_ServiceProxyOptions_To_api_ServiceProxyOptions(in *v1.ServiceProxyOptions, out *api.ServiceProxyOptions, s conversion.Scope) error { - return autoConvert_v1_ServiceProxyOptions_To_api_ServiceProxyOptions(in, out, s) -} - -func autoConvert_api_ServiceProxyOptions_To_v1_ServiceProxyOptions(in *api.ServiceProxyOptions, out *v1.ServiceProxyOptions, s conversion.Scope) error { - out.Path = in.Path - return nil -} - -// Convert_api_ServiceProxyOptions_To_v1_ServiceProxyOptions is an autogenerated conversion function. -func Convert_api_ServiceProxyOptions_To_v1_ServiceProxyOptions(in *api.ServiceProxyOptions, out *v1.ServiceProxyOptions, s conversion.Scope) error { - return autoConvert_api_ServiceProxyOptions_To_v1_ServiceProxyOptions(in, out, s) -} - -func autoConvert_v1_ServiceSpec_To_api_ServiceSpec(in *v1.ServiceSpec, out *api.ServiceSpec, s conversion.Scope) error { - out.Ports = *(*[]api.ServicePort)(unsafe.Pointer(&in.Ports)) - out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector)) - out.ClusterIP = in.ClusterIP - out.Type = api.ServiceType(in.Type) - out.ExternalIPs = *(*[]string)(unsafe.Pointer(&in.ExternalIPs)) - out.SessionAffinity = api.ServiceAffinity(in.SessionAffinity) - out.LoadBalancerIP = in.LoadBalancerIP - out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges)) - out.ExternalName = in.ExternalName - out.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy) - out.HealthCheckNodePort = in.HealthCheckNodePort - out.PublishNotReadyAddresses = in.PublishNotReadyAddresses - out.SessionAffinityConfig = (*api.SessionAffinityConfig)(unsafe.Pointer(in.SessionAffinityConfig)) - return nil -} - -// Convert_v1_ServiceSpec_To_api_ServiceSpec is an autogenerated conversion function. -func Convert_v1_ServiceSpec_To_api_ServiceSpec(in *v1.ServiceSpec, out *api.ServiceSpec, s conversion.Scope) error { - return autoConvert_v1_ServiceSpec_To_api_ServiceSpec(in, out, s) -} - -func autoConvert_api_ServiceSpec_To_v1_ServiceSpec(in *api.ServiceSpec, out *v1.ServiceSpec, s conversion.Scope) error { - out.Type = v1.ServiceType(in.Type) - out.Ports = *(*[]v1.ServicePort)(unsafe.Pointer(&in.Ports)) - out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector)) - out.ClusterIP = in.ClusterIP - out.ExternalName = in.ExternalName - out.ExternalIPs = *(*[]string)(unsafe.Pointer(&in.ExternalIPs)) - out.LoadBalancerIP = in.LoadBalancerIP - out.SessionAffinity = v1.ServiceAffinity(in.SessionAffinity) - out.SessionAffinityConfig = (*v1.SessionAffinityConfig)(unsafe.Pointer(in.SessionAffinityConfig)) - out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges)) - out.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy) - out.HealthCheckNodePort = in.HealthCheckNodePort - out.PublishNotReadyAddresses = in.PublishNotReadyAddresses - return nil -} - -// Convert_api_ServiceSpec_To_v1_ServiceSpec is an autogenerated conversion function. -func Convert_api_ServiceSpec_To_v1_ServiceSpec(in *api.ServiceSpec, out *v1.ServiceSpec, s conversion.Scope) error { - return autoConvert_api_ServiceSpec_To_v1_ServiceSpec(in, out, s) -} - -func autoConvert_v1_ServiceStatus_To_api_ServiceStatus(in *v1.ServiceStatus, out *api.ServiceStatus, s conversion.Scope) error { - if err := Convert_v1_LoadBalancerStatus_To_api_LoadBalancerStatus(&in.LoadBalancer, &out.LoadBalancer, s); err != nil { - return err - } - return nil -} - -// Convert_v1_ServiceStatus_To_api_ServiceStatus is an autogenerated conversion function. -func Convert_v1_ServiceStatus_To_api_ServiceStatus(in *v1.ServiceStatus, out *api.ServiceStatus, s conversion.Scope) error { - return autoConvert_v1_ServiceStatus_To_api_ServiceStatus(in, out, s) -} - -func autoConvert_api_ServiceStatus_To_v1_ServiceStatus(in *api.ServiceStatus, out *v1.ServiceStatus, s conversion.Scope) error { - if err := Convert_api_LoadBalancerStatus_To_v1_LoadBalancerStatus(&in.LoadBalancer, &out.LoadBalancer, s); err != nil { - return err - } - return nil -} - -// Convert_api_ServiceStatus_To_v1_ServiceStatus is an autogenerated conversion function. -func Convert_api_ServiceStatus_To_v1_ServiceStatus(in *api.ServiceStatus, out *v1.ServiceStatus, s conversion.Scope) error { - return autoConvert_api_ServiceStatus_To_v1_ServiceStatus(in, out, s) -} - -func autoConvert_v1_SessionAffinityConfig_To_api_SessionAffinityConfig(in *v1.SessionAffinityConfig, out *api.SessionAffinityConfig, s conversion.Scope) error { - out.ClientIP = (*api.ClientIPConfig)(unsafe.Pointer(in.ClientIP)) - return nil -} - -// Convert_v1_SessionAffinityConfig_To_api_SessionAffinityConfig is an autogenerated conversion function. -func Convert_v1_SessionAffinityConfig_To_api_SessionAffinityConfig(in *v1.SessionAffinityConfig, out *api.SessionAffinityConfig, s conversion.Scope) error { - return autoConvert_v1_SessionAffinityConfig_To_api_SessionAffinityConfig(in, out, s) -} - -func autoConvert_api_SessionAffinityConfig_To_v1_SessionAffinityConfig(in *api.SessionAffinityConfig, out *v1.SessionAffinityConfig, s conversion.Scope) error { - out.ClientIP = (*v1.ClientIPConfig)(unsafe.Pointer(in.ClientIP)) - return nil -} - -// Convert_api_SessionAffinityConfig_To_v1_SessionAffinityConfig is an autogenerated conversion function. -func Convert_api_SessionAffinityConfig_To_v1_SessionAffinityConfig(in *api.SessionAffinityConfig, out *v1.SessionAffinityConfig, s conversion.Scope) error { - return autoConvert_api_SessionAffinityConfig_To_v1_SessionAffinityConfig(in, out, s) -} - -func autoConvert_v1_StorageOSPersistentVolumeSource_To_api_StorageOSPersistentVolumeSource(in *v1.StorageOSPersistentVolumeSource, out *api.StorageOSPersistentVolumeSource, s conversion.Scope) error { - out.VolumeName = in.VolumeName - out.VolumeNamespace = in.VolumeNamespace - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - out.SecretRef = (*api.ObjectReference)(unsafe.Pointer(in.SecretRef)) - return nil -} - -// Convert_v1_StorageOSPersistentVolumeSource_To_api_StorageOSPersistentVolumeSource is an autogenerated conversion function. -func Convert_v1_StorageOSPersistentVolumeSource_To_api_StorageOSPersistentVolumeSource(in *v1.StorageOSPersistentVolumeSource, out *api.StorageOSPersistentVolumeSource, s conversion.Scope) error { - return autoConvert_v1_StorageOSPersistentVolumeSource_To_api_StorageOSPersistentVolumeSource(in, out, s) -} - -func autoConvert_api_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource(in *api.StorageOSPersistentVolumeSource, out *v1.StorageOSPersistentVolumeSource, s conversion.Scope) error { - out.VolumeName = in.VolumeName - out.VolumeNamespace = in.VolumeNamespace - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - out.SecretRef = (*v1.ObjectReference)(unsafe.Pointer(in.SecretRef)) - return nil -} - -// Convert_api_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource is an autogenerated conversion function. -func Convert_api_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource(in *api.StorageOSPersistentVolumeSource, out *v1.StorageOSPersistentVolumeSource, s conversion.Scope) error { - return autoConvert_api_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource(in, out, s) -} - -func autoConvert_v1_StorageOSVolumeSource_To_api_StorageOSVolumeSource(in *v1.StorageOSVolumeSource, out *api.StorageOSVolumeSource, s conversion.Scope) error { - out.VolumeName = in.VolumeName - out.VolumeNamespace = in.VolumeNamespace - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - out.SecretRef = (*api.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - return nil -} - -// Convert_v1_StorageOSVolumeSource_To_api_StorageOSVolumeSource is an autogenerated conversion function. -func Convert_v1_StorageOSVolumeSource_To_api_StorageOSVolumeSource(in *v1.StorageOSVolumeSource, out *api.StorageOSVolumeSource, s conversion.Scope) error { - return autoConvert_v1_StorageOSVolumeSource_To_api_StorageOSVolumeSource(in, out, s) -} - -func autoConvert_api_StorageOSVolumeSource_To_v1_StorageOSVolumeSource(in *api.StorageOSVolumeSource, out *v1.StorageOSVolumeSource, s conversion.Scope) error { - out.VolumeName = in.VolumeName - out.VolumeNamespace = in.VolumeNamespace - out.FSType = in.FSType - out.ReadOnly = in.ReadOnly - out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) - return nil -} - -// Convert_api_StorageOSVolumeSource_To_v1_StorageOSVolumeSource is an autogenerated conversion function. -func Convert_api_StorageOSVolumeSource_To_v1_StorageOSVolumeSource(in *api.StorageOSVolumeSource, out *v1.StorageOSVolumeSource, s conversion.Scope) error { - return autoConvert_api_StorageOSVolumeSource_To_v1_StorageOSVolumeSource(in, out, s) -} - -func autoConvert_v1_Sysctl_To_api_Sysctl(in *v1.Sysctl, out *api.Sysctl, s conversion.Scope) error { - out.Name = in.Name - out.Value = in.Value - return nil -} - -// Convert_v1_Sysctl_To_api_Sysctl is an autogenerated conversion function. -func Convert_v1_Sysctl_To_api_Sysctl(in *v1.Sysctl, out *api.Sysctl, s conversion.Scope) error { - return autoConvert_v1_Sysctl_To_api_Sysctl(in, out, s) -} - -func autoConvert_api_Sysctl_To_v1_Sysctl(in *api.Sysctl, out *v1.Sysctl, s conversion.Scope) error { - out.Name = in.Name - out.Value = in.Value - return nil -} - -// Convert_api_Sysctl_To_v1_Sysctl is an autogenerated conversion function. -func Convert_api_Sysctl_To_v1_Sysctl(in *api.Sysctl, out *v1.Sysctl, s conversion.Scope) error { - return autoConvert_api_Sysctl_To_v1_Sysctl(in, out, s) -} - -func autoConvert_v1_TCPSocketAction_To_api_TCPSocketAction(in *v1.TCPSocketAction, out *api.TCPSocketAction, s conversion.Scope) error { - out.Port = in.Port - out.Host = in.Host - return nil -} - -// Convert_v1_TCPSocketAction_To_api_TCPSocketAction is an autogenerated conversion function. -func Convert_v1_TCPSocketAction_To_api_TCPSocketAction(in *v1.TCPSocketAction, out *api.TCPSocketAction, s conversion.Scope) error { - return autoConvert_v1_TCPSocketAction_To_api_TCPSocketAction(in, out, s) -} - -func autoConvert_api_TCPSocketAction_To_v1_TCPSocketAction(in *api.TCPSocketAction, out *v1.TCPSocketAction, s conversion.Scope) error { - out.Port = in.Port - out.Host = in.Host - return nil -} - -// Convert_api_TCPSocketAction_To_v1_TCPSocketAction is an autogenerated conversion function. -func Convert_api_TCPSocketAction_To_v1_TCPSocketAction(in *api.TCPSocketAction, out *v1.TCPSocketAction, s conversion.Scope) error { - return autoConvert_api_TCPSocketAction_To_v1_TCPSocketAction(in, out, s) -} - -func autoConvert_v1_Taint_To_api_Taint(in *v1.Taint, out *api.Taint, s conversion.Scope) error { - out.Key = in.Key - out.Value = in.Value - out.Effect = api.TaintEffect(in.Effect) - out.TimeAdded = (*meta_v1.Time)(unsafe.Pointer(in.TimeAdded)) - return nil -} - -// Convert_v1_Taint_To_api_Taint is an autogenerated conversion function. -func Convert_v1_Taint_To_api_Taint(in *v1.Taint, out *api.Taint, s conversion.Scope) error { - return autoConvert_v1_Taint_To_api_Taint(in, out, s) -} - -func autoConvert_api_Taint_To_v1_Taint(in *api.Taint, out *v1.Taint, s conversion.Scope) error { - out.Key = in.Key - out.Value = in.Value - out.Effect = v1.TaintEffect(in.Effect) - out.TimeAdded = (*meta_v1.Time)(unsafe.Pointer(in.TimeAdded)) - return nil -} - -// Convert_api_Taint_To_v1_Taint is an autogenerated conversion function. -func Convert_api_Taint_To_v1_Taint(in *api.Taint, out *v1.Taint, s conversion.Scope) error { - return autoConvert_api_Taint_To_v1_Taint(in, out, s) -} - -func autoConvert_v1_Toleration_To_api_Toleration(in *v1.Toleration, out *api.Toleration, s conversion.Scope) error { - out.Key = in.Key - out.Operator = api.TolerationOperator(in.Operator) - out.Value = in.Value - out.Effect = api.TaintEffect(in.Effect) - out.TolerationSeconds = (*int64)(unsafe.Pointer(in.TolerationSeconds)) - return nil -} - -// Convert_v1_Toleration_To_api_Toleration is an autogenerated conversion function. -func Convert_v1_Toleration_To_api_Toleration(in *v1.Toleration, out *api.Toleration, s conversion.Scope) error { - return autoConvert_v1_Toleration_To_api_Toleration(in, out, s) -} - -func autoConvert_api_Toleration_To_v1_Toleration(in *api.Toleration, out *v1.Toleration, s conversion.Scope) error { - out.Key = in.Key - out.Operator = v1.TolerationOperator(in.Operator) - out.Value = in.Value - out.Effect = v1.TaintEffect(in.Effect) - out.TolerationSeconds = (*int64)(unsafe.Pointer(in.TolerationSeconds)) - return nil -} - -// Convert_api_Toleration_To_v1_Toleration is an autogenerated conversion function. -func Convert_api_Toleration_To_v1_Toleration(in *api.Toleration, out *v1.Toleration, s conversion.Scope) error { - return autoConvert_api_Toleration_To_v1_Toleration(in, out, s) -} - -func autoConvert_v1_Volume_To_api_Volume(in *v1.Volume, out *api.Volume, s conversion.Scope) error { - out.Name = in.Name - if err := Convert_v1_VolumeSource_To_api_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil { - return err - } - return nil -} - -// Convert_v1_Volume_To_api_Volume is an autogenerated conversion function. -func Convert_v1_Volume_To_api_Volume(in *v1.Volume, out *api.Volume, s conversion.Scope) error { - return autoConvert_v1_Volume_To_api_Volume(in, out, s) -} - -func autoConvert_api_Volume_To_v1_Volume(in *api.Volume, out *v1.Volume, s conversion.Scope) error { - out.Name = in.Name - if err := Convert_api_VolumeSource_To_v1_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil { - return err - } - return nil -} - -// Convert_api_Volume_To_v1_Volume is an autogenerated conversion function. -func Convert_api_Volume_To_v1_Volume(in *api.Volume, out *v1.Volume, s conversion.Scope) error { - return autoConvert_api_Volume_To_v1_Volume(in, out, s) -} - -func autoConvert_v1_VolumeMount_To_api_VolumeMount(in *v1.VolumeMount, out *api.VolumeMount, s conversion.Scope) error { - out.Name = in.Name - out.ReadOnly = in.ReadOnly - out.MountPath = in.MountPath - out.SubPath = in.SubPath - out.MountPropagation = (*api.MountPropagationMode)(unsafe.Pointer(in.MountPropagation)) - return nil -} - -// Convert_v1_VolumeMount_To_api_VolumeMount is an autogenerated conversion function. -func Convert_v1_VolumeMount_To_api_VolumeMount(in *v1.VolumeMount, out *api.VolumeMount, s conversion.Scope) error { - return autoConvert_v1_VolumeMount_To_api_VolumeMount(in, out, s) -} - -func autoConvert_api_VolumeMount_To_v1_VolumeMount(in *api.VolumeMount, out *v1.VolumeMount, s conversion.Scope) error { - out.Name = in.Name - out.ReadOnly = in.ReadOnly - out.MountPath = in.MountPath - out.SubPath = in.SubPath - out.MountPropagation = (*v1.MountPropagationMode)(unsafe.Pointer(in.MountPropagation)) - return nil -} - -// Convert_api_VolumeMount_To_v1_VolumeMount is an autogenerated conversion function. -func Convert_api_VolumeMount_To_v1_VolumeMount(in *api.VolumeMount, out *v1.VolumeMount, s conversion.Scope) error { - return autoConvert_api_VolumeMount_To_v1_VolumeMount(in, out, s) -} - -func autoConvert_v1_VolumeProjection_To_api_VolumeProjection(in *v1.VolumeProjection, out *api.VolumeProjection, s conversion.Scope) error { - out.Secret = (*api.SecretProjection)(unsafe.Pointer(in.Secret)) - out.DownwardAPI = (*api.DownwardAPIProjection)(unsafe.Pointer(in.DownwardAPI)) - out.ConfigMap = (*api.ConfigMapProjection)(unsafe.Pointer(in.ConfigMap)) - return nil -} - -// Convert_v1_VolumeProjection_To_api_VolumeProjection is an autogenerated conversion function. -func Convert_v1_VolumeProjection_To_api_VolumeProjection(in *v1.VolumeProjection, out *api.VolumeProjection, s conversion.Scope) error { - return autoConvert_v1_VolumeProjection_To_api_VolumeProjection(in, out, s) -} - -func autoConvert_api_VolumeProjection_To_v1_VolumeProjection(in *api.VolumeProjection, out *v1.VolumeProjection, s conversion.Scope) error { - out.Secret = (*v1.SecretProjection)(unsafe.Pointer(in.Secret)) - out.DownwardAPI = (*v1.DownwardAPIProjection)(unsafe.Pointer(in.DownwardAPI)) - out.ConfigMap = (*v1.ConfigMapProjection)(unsafe.Pointer(in.ConfigMap)) - return nil -} - -// Convert_api_VolumeProjection_To_v1_VolumeProjection is an autogenerated conversion function. -func Convert_api_VolumeProjection_To_v1_VolumeProjection(in *api.VolumeProjection, out *v1.VolumeProjection, s conversion.Scope) error { - return autoConvert_api_VolumeProjection_To_v1_VolumeProjection(in, out, s) -} - -func autoConvert_v1_VolumeSource_To_api_VolumeSource(in *v1.VolumeSource, out *api.VolumeSource, s conversion.Scope) error { - out.HostPath = (*api.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) - out.EmptyDir = (*api.EmptyDirVolumeSource)(unsafe.Pointer(in.EmptyDir)) - out.GCEPersistentDisk = (*api.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk)) - out.AWSElasticBlockStore = (*api.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore)) - out.GitRepo = (*api.GitRepoVolumeSource)(unsafe.Pointer(in.GitRepo)) - out.Secret = (*api.SecretVolumeSource)(unsafe.Pointer(in.Secret)) - out.NFS = (*api.NFSVolumeSource)(unsafe.Pointer(in.NFS)) - out.ISCSI = (*api.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) - out.Glusterfs = (*api.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) - out.PersistentVolumeClaim = (*api.PersistentVolumeClaimVolumeSource)(unsafe.Pointer(in.PersistentVolumeClaim)) - out.RBD = (*api.RBDVolumeSource)(unsafe.Pointer(in.RBD)) - out.FlexVolume = (*api.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) - out.Cinder = (*api.CinderVolumeSource)(unsafe.Pointer(in.Cinder)) - out.CephFS = (*api.CephFSVolumeSource)(unsafe.Pointer(in.CephFS)) - out.Flocker = (*api.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) - out.DownwardAPI = (*api.DownwardAPIVolumeSource)(unsafe.Pointer(in.DownwardAPI)) - out.FC = (*api.FCVolumeSource)(unsafe.Pointer(in.FC)) - out.AzureFile = (*api.AzureFileVolumeSource)(unsafe.Pointer(in.AzureFile)) - out.ConfigMap = (*api.ConfigMapVolumeSource)(unsafe.Pointer(in.ConfigMap)) - out.VsphereVolume = (*api.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) - out.Quobyte = (*api.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) - out.AzureDisk = (*api.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) - out.PhotonPersistentDisk = (*api.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk)) - out.Projected = (*api.ProjectedVolumeSource)(unsafe.Pointer(in.Projected)) - out.PortworxVolume = (*api.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume)) - out.ScaleIO = (*api.ScaleIOVolumeSource)(unsafe.Pointer(in.ScaleIO)) - out.StorageOS = (*api.StorageOSVolumeSource)(unsafe.Pointer(in.StorageOS)) - return nil -} - -// Convert_v1_VolumeSource_To_api_VolumeSource is an autogenerated conversion function. -func Convert_v1_VolumeSource_To_api_VolumeSource(in *v1.VolumeSource, out *api.VolumeSource, s conversion.Scope) error { - return autoConvert_v1_VolumeSource_To_api_VolumeSource(in, out, s) -} - -func autoConvert_api_VolumeSource_To_v1_VolumeSource(in *api.VolumeSource, out *v1.VolumeSource, s conversion.Scope) error { - out.HostPath = (*v1.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) - out.EmptyDir = (*v1.EmptyDirVolumeSource)(unsafe.Pointer(in.EmptyDir)) - out.GCEPersistentDisk = (*v1.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk)) - out.AWSElasticBlockStore = (*v1.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore)) - out.GitRepo = (*v1.GitRepoVolumeSource)(unsafe.Pointer(in.GitRepo)) - out.Secret = (*v1.SecretVolumeSource)(unsafe.Pointer(in.Secret)) - out.NFS = (*v1.NFSVolumeSource)(unsafe.Pointer(in.NFS)) - out.ISCSI = (*v1.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) - out.Glusterfs = (*v1.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) - out.PersistentVolumeClaim = (*v1.PersistentVolumeClaimVolumeSource)(unsafe.Pointer(in.PersistentVolumeClaim)) - out.RBD = (*v1.RBDVolumeSource)(unsafe.Pointer(in.RBD)) - out.Quobyte = (*v1.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) - out.FlexVolume = (*v1.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) - out.Cinder = (*v1.CinderVolumeSource)(unsafe.Pointer(in.Cinder)) - out.CephFS = (*v1.CephFSVolumeSource)(unsafe.Pointer(in.CephFS)) - out.Flocker = (*v1.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) - out.DownwardAPI = (*v1.DownwardAPIVolumeSource)(unsafe.Pointer(in.DownwardAPI)) - out.FC = (*v1.FCVolumeSource)(unsafe.Pointer(in.FC)) - out.AzureFile = (*v1.AzureFileVolumeSource)(unsafe.Pointer(in.AzureFile)) - out.ConfigMap = (*v1.ConfigMapVolumeSource)(unsafe.Pointer(in.ConfigMap)) - out.VsphereVolume = (*v1.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) - out.AzureDisk = (*v1.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) - out.PhotonPersistentDisk = (*v1.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk)) - out.Projected = (*v1.ProjectedVolumeSource)(unsafe.Pointer(in.Projected)) - out.PortworxVolume = (*v1.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume)) - out.ScaleIO = (*v1.ScaleIOVolumeSource)(unsafe.Pointer(in.ScaleIO)) - out.StorageOS = (*v1.StorageOSVolumeSource)(unsafe.Pointer(in.StorageOS)) - return nil -} - -// Convert_api_VolumeSource_To_v1_VolumeSource is an autogenerated conversion function. -func Convert_api_VolumeSource_To_v1_VolumeSource(in *api.VolumeSource, out *v1.VolumeSource, s conversion.Scope) error { - return autoConvert_api_VolumeSource_To_v1_VolumeSource(in, out, s) -} - -func autoConvert_v1_VsphereVirtualDiskVolumeSource_To_api_VsphereVirtualDiskVolumeSource(in *v1.VsphereVirtualDiskVolumeSource, out *api.VsphereVirtualDiskVolumeSource, s conversion.Scope) error { - out.VolumePath = in.VolumePath - out.FSType = in.FSType - out.StoragePolicyName = in.StoragePolicyName - out.StoragePolicyID = in.StoragePolicyID - return nil -} - -// Convert_v1_VsphereVirtualDiskVolumeSource_To_api_VsphereVirtualDiskVolumeSource is an autogenerated conversion function. -func Convert_v1_VsphereVirtualDiskVolumeSource_To_api_VsphereVirtualDiskVolumeSource(in *v1.VsphereVirtualDiskVolumeSource, out *api.VsphereVirtualDiskVolumeSource, s conversion.Scope) error { - return autoConvert_v1_VsphereVirtualDiskVolumeSource_To_api_VsphereVirtualDiskVolumeSource(in, out, s) -} - -func autoConvert_api_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource(in *api.VsphereVirtualDiskVolumeSource, out *v1.VsphereVirtualDiskVolumeSource, s conversion.Scope) error { - out.VolumePath = in.VolumePath - out.FSType = in.FSType - out.StoragePolicyName = in.StoragePolicyName - out.StoragePolicyID = in.StoragePolicyID - return nil -} - -// Convert_api_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource is an autogenerated conversion function. -func Convert_api_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource(in *api.VsphereVirtualDiskVolumeSource, out *v1.VsphereVirtualDiskVolumeSource, s conversion.Scope) error { - return autoConvert_api_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource(in, out, s) -} - -func autoConvert_v1_WeightedPodAffinityTerm_To_api_WeightedPodAffinityTerm(in *v1.WeightedPodAffinityTerm, out *api.WeightedPodAffinityTerm, s conversion.Scope) error { - out.Weight = in.Weight - if err := Convert_v1_PodAffinityTerm_To_api_PodAffinityTerm(&in.PodAffinityTerm, &out.PodAffinityTerm, s); err != nil { - return err - } - return nil -} - -// Convert_v1_WeightedPodAffinityTerm_To_api_WeightedPodAffinityTerm is an autogenerated conversion function. -func Convert_v1_WeightedPodAffinityTerm_To_api_WeightedPodAffinityTerm(in *v1.WeightedPodAffinityTerm, out *api.WeightedPodAffinityTerm, s conversion.Scope) error { - return autoConvert_v1_WeightedPodAffinityTerm_To_api_WeightedPodAffinityTerm(in, out, s) -} - -func autoConvert_api_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm(in *api.WeightedPodAffinityTerm, out *v1.WeightedPodAffinityTerm, s conversion.Scope) error { - out.Weight = in.Weight - if err := Convert_api_PodAffinityTerm_To_v1_PodAffinityTerm(&in.PodAffinityTerm, &out.PodAffinityTerm, s); err != nil { - return err - } - return nil -} - -// Convert_api_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm is an autogenerated conversion function. -func Convert_api_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm(in *api.WeightedPodAffinityTerm, out *v1.WeightedPodAffinityTerm, s conversion.Scope) error { - return autoConvert_api_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm(in, out, s) -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/abac/BUILD index b2e5925bf..c2f5e8198 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/abac", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/conversion_test.go b/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/conversion_test.go index 419005da1..c71ba1528 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/conversion_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/conversion_test.go @@ -21,64 +21,64 @@ import ( "testing" "k8s.io/apiserver/pkg/authentication/user" - api "k8s.io/kubernetes/pkg/apis/abac" + "k8s.io/kubernetes/pkg/apis/abac" "k8s.io/kubernetes/pkg/apis/abac/v0" ) func TestV0Conversion(t *testing.T) { testcases := map[string]struct { old *v0.Policy - expected *api.Policy + expected *abac.Policy }{ // a completely empty policy rule allows everything to all users "empty": { old: &v0.Policy{}, - expected: &api.Policy{Spec: api.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, }, // specifying a user is preserved "user": { old: &v0.Policy{User: "bob"}, - expected: &api.Policy{Spec: api.PolicySpec{User: "bob", Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{User: "bob", Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, }, // specifying a group is preserved (and no longer matches all users) "group": { old: &v0.Policy{Group: "mygroup"}, - expected: &api.Policy{Spec: api.PolicySpec{Group: "mygroup", Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: "mygroup", Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, }, // specifying * for user or group maps to all authenticated subjects "* user": { old: &v0.Policy{User: "*"}, - expected: &api.Policy{Spec: api.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, }, "* group": { old: &v0.Policy{Group: "*"}, - expected: &api.Policy{Spec: api.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "*", Namespace: "*", Resource: "*", APIGroup: "*"}}, }, // specifying a namespace removes the * match on non-resource path "namespace": { old: &v0.Policy{Namespace: "myns"}, - expected: &api.Policy{Spec: api.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "", Namespace: "myns", Resource: "*", APIGroup: "*"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "", Namespace: "myns", Resource: "*", APIGroup: "*"}}, }, // specifying a resource removes the * match on non-resource path "resource": { old: &v0.Policy{Resource: "myresource"}, - expected: &api.Policy{Spec: api.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "", Namespace: "*", Resource: "myresource", APIGroup: "*"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "", Namespace: "*", Resource: "myresource", APIGroup: "*"}}, }, // specifying a namespace+resource removes the * match on non-resource path "namespace+resource": { old: &v0.Policy{Namespace: "myns", Resource: "myresource"}, - expected: &api.Policy{Spec: api.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "", Namespace: "myns", Resource: "myresource", APIGroup: "*"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: user.AllAuthenticated, Readonly: false, NonResourcePath: "", Namespace: "myns", Resource: "myresource", APIGroup: "*"}}, }, } for k, tc := range testcases { - internal := &api.Policy{} - if err := api.Scheme.Convert(tc.old, internal, nil); err != nil { + internal := &abac.Policy{} + if err := abac.Scheme.Convert(tc.old, internal, nil); err != nil { t.Errorf("%s: unexpected error: %v", k, err) } if !reflect.DeepEqual(internal, tc.expected) { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/doc.go index d35c8b86a..bd73e3f49 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=abac.authorization.kubernetes.io package v0 // import "k8s.io/kubernetes/pkg/apis/abac/v0" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/register.go b/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/register.go index 4efcc0929..9a5aa9845 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/register.go @@ -19,7 +19,7 @@ package v0 import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - api "k8s.io/kubernetes/pkg/apis/abac" + "k8s.io/kubernetes/pkg/apis/abac" ) const GroupName = "abac.authorization.kubernetes.io" @@ -29,11 +29,11 @@ var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v0"} func init() { // TODO: Delete this init function, abac should not have its own scheme. - if err := addKnownTypes(api.Scheme); err != nil { + if err := addKnownTypes(abac.Scheme); err != nil { // Programmer error. panic(err) } - if err := addConversionFuncs(api.Scheme); err != nil { + if err := addConversionFuncs(abac.Scheme); err != nil { // Programmer error. panic(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/zz_generated.deepcopy.go index f2b9974b0..1c0fe0c8b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/v0/zz_generated.deepcopy.go @@ -21,28 +21,9 @@ limitations under the License. package v0 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Policy).DeepCopyInto(out.(*Policy)) - return nil - }, InType: reflect.TypeOf(&Policy{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Policy) DeepCopyInto(out *Policy) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/conversion_test.go b/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/conversion_test.go index 0f04c416b..814eb3f61 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/conversion_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/conversion_test.go @@ -21,40 +21,40 @@ import ( "testing" "k8s.io/apiserver/pkg/authentication/user" - api "k8s.io/kubernetes/pkg/apis/abac" + "k8s.io/kubernetes/pkg/apis/abac" "k8s.io/kubernetes/pkg/apis/abac/v1beta1" ) func TestV1Beta1Conversion(t *testing.T) { testcases := map[string]struct { old *v1beta1.Policy - expected *api.Policy + expected *abac.Policy }{ // specifying a user is preserved "user": { old: &v1beta1.Policy{Spec: v1beta1.PolicySpec{User: "bob"}}, - expected: &api.Policy{Spec: api.PolicySpec{User: "bob"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{User: "bob"}}, }, // specifying a group is preserved "group": { old: &v1beta1.Policy{Spec: v1beta1.PolicySpec{Group: "mygroup"}}, - expected: &api.Policy{Spec: api.PolicySpec{Group: "mygroup"}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: "mygroup"}}, }, // specifying * for user or group maps to all authenticated subjects "* user": { old: &v1beta1.Policy{Spec: v1beta1.PolicySpec{User: "*"}}, - expected: &api.Policy{Spec: api.PolicySpec{Group: user.AllAuthenticated}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: user.AllAuthenticated}}, }, "* group": { old: &v1beta1.Policy{Spec: v1beta1.PolicySpec{Group: "*"}}, - expected: &api.Policy{Spec: api.PolicySpec{Group: user.AllAuthenticated}}, + expected: &abac.Policy{Spec: abac.PolicySpec{Group: user.AllAuthenticated}}, }, } for k, tc := range testcases { - internal := &api.Policy{} - if err := api.Scheme.Convert(tc.old, internal, nil); err != nil { + internal := &abac.Policy{} + if err := abac.Scheme.Convert(tc.old, internal, nil); err != nil { t.Errorf("%s: unexpected error: %v", k, err) } if !reflect.DeepEqual(internal, tc.expected) { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/doc.go index 5078f2f12..3fa41e6b8 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/abac // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/register.go b/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/register.go index e157a69aa..a7fc1158e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/register.go @@ -19,7 +19,7 @@ package v1beta1 import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - api "k8s.io/kubernetes/pkg/apis/abac" + "k8s.io/kubernetes/pkg/apis/abac" ) const GroupName = "abac.authorization.kubernetes.io" @@ -29,11 +29,11 @@ var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1 func init() { // TODO: delete this, abac should not have its own scheme. - if err := addKnownTypes(api.Scheme); err != nil { + if err := addKnownTypes(abac.Scheme); err != nil { // Programmer error. panic(err) } - if err := addConversionFuncs(api.Scheme); err != nil { + if err := addConversionFuncs(abac.Scheme); err != nil { // Programmer error. panic(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/zz_generated.deepcopy.go index 84b36e013..05fbab899 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/v1beta1/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package v1beta1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Policy).DeepCopyInto(out.(*Policy)) - return nil - }, InType: reflect.TypeOf(&Policy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicySpec).DeepCopyInto(out.(*PolicySpec)) - return nil - }, InType: reflect.TypeOf(&PolicySpec{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Policy) DeepCopyInto(out *Policy) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/abac/zz_generated.deepcopy.go index 799c02723..dc41bc7ce 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/abac/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/zz_generated.deepcopy.go @@ -21,27 +21,9 @@ limitations under the License. package abac import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Policy).DeepCopyInto(out.(*Policy)) - return nil - }, InType: reflect.TypeOf(&Policy{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicySpec).DeepCopyInto(out.(*PolicySpec)) - return nil - }, InType: reflect.TypeOf(&PolicySpec{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Policy) DeepCopyInto(out *Policy) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admission/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/admission/BUILD index 5d99f3100..f50c9fbdd 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admission/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/admission/BUILD @@ -17,7 +17,6 @@ go_library( deps = [ "//pkg/apis/authentication:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admission/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/admission/doc.go index 482266679..64273253a 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admission/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admission/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=admission.k8s.io package admission // import "k8s.io/kubernetes/pkg/apis/admission" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admission/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/admission/install/BUILD index 15d94fade..0d8f70f8c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admission/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/admission/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/admission/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/admission:go_default_library", "//pkg/apis/admission/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admission/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/admission/install/install.go index f0b0dcf79..fa60faa94 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admission/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admission/install/install.go @@ -23,13 +23,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/admission" "k8s.io/kubernetes/pkg/apis/admission/v1alpha1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admission/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/admission/zz_generated.deepcopy.go index 22cd49d5e..02436bf8c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admission/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admission/zz_generated.deepcopy.go @@ -22,36 +22,9 @@ package admission import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionReview).DeepCopyInto(out.(*AdmissionReview)) - return nil - }, InType: reflect.TypeOf(&AdmissionReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionReviewSpec).DeepCopyInto(out.(*AdmissionReviewSpec)) - return nil - }, InType: reflect.TypeOf(&AdmissionReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionReviewStatus).DeepCopyInto(out.(*AdmissionReviewStatus)) - return nil - }, InType: reflect.TypeOf(&AdmissionReviewStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AdmissionReview) DeepCopyInto(out *AdmissionReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/BUILD index 9412c2005..09e1a60eb 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/admissionregistration", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/doc.go index 5dfc4e74e..7b76bb29b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/doc.go @@ -14,11 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package admissionregistration is the internal version of the API. // AdmissionConfiguration and AdmissionPluginConfiguration are legacy static admission plugin configuration -// InitializerConfiguration and ExternalAdmissionHookConfiguration is for the +// InitializerConfiguration, ValidatingWebhookConfiguration, and MutatingWebhookConfiguration are for the // new dynamic admission controller configuration. // +groupName=admissionregistration.k8s.io package admissionregistration // import "k8s.io/kubernetes/pkg/apis/admissionregistration" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/fuzzer/fuzzer.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/fuzzer/fuzzer.go index 7c0287f3c..4275951b5 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/fuzzer/fuzzer.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/fuzzer/fuzzer.go @@ -26,7 +26,7 @@ import ( // Funcs returns the fuzzer functions for the admissionregistration api group. var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { return []interface{}{ - func(obj *admissionregistration.ExternalAdmissionHook, c fuzz.Continue) { + func(obj *admissionregistration.Webhook, c fuzz.Continue) { c.FuzzNoCustom(obj) // fuzz self without calling this function again p := admissionregistration.FailurePolicyType("Fail") obj.FailurePolicy = &p diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/BUILD index c29b09d34..883c5b859 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/admissionregistration/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/admissionregistration:go_default_library", "//pkg/apis/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/install.go index b2ff84b3e..aafff4031 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/install/install.go @@ -21,13 +21,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/admissionregistration" "k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme @@ -35,7 +35,7 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r if err := announced.NewGroupMetaFactory( &announced.GroupMetaFactoryArgs{ GroupName: admissionregistration.GroupName, - RootScopedKinds: sets.NewString("InitializerConfiguration", "ExternalAdmissionHookConfiguration"), + RootScopedKinds: sets.NewString("InitializerConfiguration", "ValidatingWebhookConfiguration", "MutatingWebhookConfiguration"), VersionPreferenceOrder: []string{v1alpha1.SchemeGroupVersion.Version}, AddInternalObjectsToScheme: admissionregistration.AddToScheme, }, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/register.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/register.go index 1fe291a8f..941259ce6 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/register.go @@ -46,8 +46,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &InitializerConfiguration{}, &InitializerConfigurationList{}, - &ExternalAdmissionHookConfiguration{}, - &ExternalAdmissionHookConfigurationList{}, + &ValidatingWebhookConfiguration{}, + &ValidatingWebhookConfigurationList{}, + &MutatingWebhookConfiguration{}, + &MutatingWebhookConfigurationList{}, ) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/types.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/types.go index b46765600..091782b81 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/types.go @@ -106,7 +106,7 @@ type Rule struct { type FailurePolicyType string const ( - // Ignore means the initilizer is removed from the initializers list of an + // Ignore means the initializer is removed from the initializers list of an // object if the initializer is timed out. Ignore FailurePolicyType = "Ignore" // For 1.7, only "Ignore" is allowed. "Fail" will be allowed when the @@ -118,35 +118,61 @@ const ( // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// ExternalAdmissionHookConfiguration describes the configuration of initializers. -type ExternalAdmissionHookConfiguration struct { +// ValidatingWebhookConfiguration describes the configuration of an admission webhook that accepts or rejects and object without changing it. +type ValidatingWebhookConfiguration struct { metav1.TypeMeta // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. // +optional metav1.ObjectMeta - // ExternalAdmissionHooks is a list of external admission webhooks and the - // affected resources and operations. + // Webhooks is a list of webhooks and the affected resources and operations. // +optional - ExternalAdmissionHooks []ExternalAdmissionHook + Webhooks []Webhook } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// ExternalAdmissionHookConfigurationList is a list of ExternalAdmissionHookConfiguration. -type ExternalAdmissionHookConfigurationList struct { +// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration. +type ValidatingWebhookConfigurationList struct { metav1.TypeMeta // Standard list metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds // +optional metav1.ListMeta - // List of ExternalAdmissionHookConfiguration. - Items []ExternalAdmissionHookConfiguration + // List of ValidatingWebhookConfigurations. + Items []ValidatingWebhookConfiguration } -// ExternalAdmissionHook describes an external admission webhook and the -// resources and operations it applies to. -type ExternalAdmissionHook struct { - // The name of the external admission webhook. +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. +type MutatingWebhookConfiguration struct { + metav1.TypeMeta + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. + // +optional + metav1.ObjectMeta + // Webhooks is a list of webhooks and the affected resources and operations. + // +optional + Webhooks []Webhook +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration. +type MutatingWebhookConfigurationList struct { + metav1.TypeMeta + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds + // +optional + metav1.ListMeta + // List of MutatingWebhookConfiguration. + Items []MutatingWebhookConfiguration +} + +// Webhook describes an admission webhook and the resources and operations it applies to. +type Webhook struct { + // The name of the admission webhook. // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where // "imagepolicy" is the name of the webhook, and kubernetes.io is the name // of the organization. @@ -155,7 +181,7 @@ type ExternalAdmissionHook struct { // ClientConfig defines how to communicate with the hook. // Required - ClientConfig AdmissionHookClientConfig + ClientConfig WebhookClientConfig // Rules describes what operations on what resources/subresources the webhook cares about. // The webhook cares about an operation if it matches _any_ Rule. @@ -165,6 +191,52 @@ type ExternalAdmissionHook struct { // allowed values are Ignore or Fail. Defaults to Ignore. // +optional FailurePolicy *FailurePolicyType + + // NamespaceSelector decides whether to run the webhook on an object based + // on whether the namespace for that object matches the selector. If the + // object itself is a namespace, the matching is performed on + // object.metadata.labels. If the object is other cluster scoped resource, + // it is not subjected to the webhook. + // + // For example, to run the webhook on any objects whose namespace is not + // associated with "runlevel" of "0" or "1"; you will set the selector as + // follows: + // "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the webhook on any objects whose + // namespace is associated with the "environment" of "prod" or "staging"; + // you will set the selector as follows: + // "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See + // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + // for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + // +optional + NamespaceSelector *metav1.LabelSelector } // RuleWithOperations is a tuple of Operations and Resources. It is recommended to make @@ -191,25 +263,67 @@ const ( Connect OperationType = "CONNECT" ) -// AdmissionHookClientConfig contains the information to make a TLS +// WebhookClientConfig contains the information to make a TLS // connection with the webhook -type AdmissionHookClientConfig struct { - // Service is a reference to the service for this webhook. If there is only - // one port open for the service, that port will be used. If there are multiple - // ports open, port 443 will be used if it is open, otherwise it is an error. - // Required - Service ServiceReference - // CABundle is a PEM encoded CA bundle which will be used to validate webhook's server certificate. - // Required +type WebhookClientConfig struct { + // `url` gives the location of the webhook, in standard URL form + // (`[scheme://]host:port/path`). Exactly one of `url` or `service` + // must be specified. + // + // The `host` should not refer to a service running in the cluster; use + // the `service` field instead. The host might be resolved via external + // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve + // in-cluster DNS as that would be a layering violation). `host` may + // also be an IP address. + // + // Please note that using `localhost` or `127.0.0.1` as a `host` is + // risky unless you take great care to run this webhook on all hosts + // which run an apiserver which might need to make calls to this + // webhook. Such installs are likely to be non-portable, i.e., not easy + // to turn up in a new cluster. + // + // The scheme must be "https"; the URL must begin with "https://". + // + // A path is optional, and if present may be any string permissible in + // a URL. You may use the path to pass an arbitrary string to the + // webhook, for example, a cluster identifier. + // + // Attempting to use a user or basic auth e.g. "user:password@" is not + // allowed. Fragments ("#...") and query parameters ("?...") are not + // allowed, either. + // + // +optional + URL *string + + // `service` is a reference to the service for this webhook. Either + // `service` or `url` must be specified. + // + // If the webhook is running within the cluster, then you should use `service`. + // + // If there is only one port open for the service, that port will be + // used. If there are multiple ports open, port 443 will be used if it + // is open, otherwise it is an error. + // + // +optional + Service *ServiceReference + + // `caBundle` is a PEM encoded CA bundle which will be used to validate + // the webhook's server certificate. + // Required. CABundle []byte } // ServiceReference holds a reference to Service.legacy.k8s.io type ServiceReference struct { - // Namespace is the namespace of the service + // `namespace` is the namespace of the service. // Required Namespace string - // Name is the name of the service + // `name` is the name of the service. // Required Name string + + // `path` is an optional URL path which will be sent in any request to + // this service. + // +optional + Path *string } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/BUILD index 81773c8a9..b23347bd2 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/BUILD @@ -18,6 +18,7 @@ go_library( deps = [ "//pkg/apis/admissionregistration:go_default_library", "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/defaults.go index 92a37ad1c..3170c2872 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/defaults.go @@ -18,6 +18,7 @@ package v1alpha1 import ( admissionregistrationv1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" ) @@ -25,9 +26,13 @@ func addDefaultingFuncs(scheme *runtime.Scheme) error { return RegisterDefaults(scheme) } -func SetDefaults_ExternalAdmissionHook(obj *admissionregistrationv1alpha1.ExternalAdmissionHook) { +func SetDefaults_Webhook(obj *admissionregistrationv1alpha1.Webhook) { if obj.FailurePolicy == nil { policy := admissionregistrationv1alpha1.Ignore obj.FailurePolicy = &policy } + if obj.NamespaceSelector == nil { + selector := metav1.LabelSelector{} + obj.NamespaceSelector = &selector + } } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/doc.go index 50945b2ee..99bc92f30 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/doc.go @@ -21,7 +21,7 @@ limitations under the License. // Package v1alpha1 is the v1alpha1 version of the API. // AdmissionConfiguration and AdmissionPluginConfiguration are legacy static admission plugin configuration -// admissionregistrationv1alpha1.InitializerConfiguration and admissionregistrationv1alpha1.ExternalAdmissionHookConfiguration is for the +// InitializerConfiguration, ValidatingWebhookConfiguration, and MutatingWebhookConfiguration are for the // new dynamic admission controller configuration. // +groupName=admissionregistration.k8s.io package v1alpha1 // import "k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/zz_generated.conversion.go index 86ef143f0..4e71bd69d 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/zz_generated.conversion.go @@ -22,6 +22,7 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" @@ -36,129 +37,33 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( - Convert_v1alpha1_AdmissionHookClientConfig_To_admissionregistration_AdmissionHookClientConfig, - Convert_admissionregistration_AdmissionHookClientConfig_To_v1alpha1_AdmissionHookClientConfig, - Convert_v1alpha1_ExternalAdmissionHook_To_admissionregistration_ExternalAdmissionHook, - Convert_admissionregistration_ExternalAdmissionHook_To_v1alpha1_ExternalAdmissionHook, - Convert_v1alpha1_ExternalAdmissionHookConfiguration_To_admissionregistration_ExternalAdmissionHookConfiguration, - Convert_admissionregistration_ExternalAdmissionHookConfiguration_To_v1alpha1_ExternalAdmissionHookConfiguration, - Convert_v1alpha1_ExternalAdmissionHookConfigurationList_To_admissionregistration_ExternalAdmissionHookConfigurationList, - Convert_admissionregistration_ExternalAdmissionHookConfigurationList_To_v1alpha1_ExternalAdmissionHookConfigurationList, Convert_v1alpha1_Initializer_To_admissionregistration_Initializer, Convert_admissionregistration_Initializer_To_v1alpha1_Initializer, Convert_v1alpha1_InitializerConfiguration_To_admissionregistration_InitializerConfiguration, Convert_admissionregistration_InitializerConfiguration_To_v1alpha1_InitializerConfiguration, Convert_v1alpha1_InitializerConfigurationList_To_admissionregistration_InitializerConfigurationList, Convert_admissionregistration_InitializerConfigurationList_To_v1alpha1_InitializerConfigurationList, + Convert_v1alpha1_MutatingWebhookConfiguration_To_admissionregistration_MutatingWebhookConfiguration, + Convert_admissionregistration_MutatingWebhookConfiguration_To_v1alpha1_MutatingWebhookConfiguration, + Convert_v1alpha1_MutatingWebhookConfigurationList_To_admissionregistration_MutatingWebhookConfigurationList, + Convert_admissionregistration_MutatingWebhookConfigurationList_To_v1alpha1_MutatingWebhookConfigurationList, Convert_v1alpha1_Rule_To_admissionregistration_Rule, Convert_admissionregistration_Rule_To_v1alpha1_Rule, Convert_v1alpha1_RuleWithOperations_To_admissionregistration_RuleWithOperations, Convert_admissionregistration_RuleWithOperations_To_v1alpha1_RuleWithOperations, Convert_v1alpha1_ServiceReference_To_admissionregistration_ServiceReference, Convert_admissionregistration_ServiceReference_To_v1alpha1_ServiceReference, + Convert_v1alpha1_ValidatingWebhookConfiguration_To_admissionregistration_ValidatingWebhookConfiguration, + Convert_admissionregistration_ValidatingWebhookConfiguration_To_v1alpha1_ValidatingWebhookConfiguration, + Convert_v1alpha1_ValidatingWebhookConfigurationList_To_admissionregistration_ValidatingWebhookConfigurationList, + Convert_admissionregistration_ValidatingWebhookConfigurationList_To_v1alpha1_ValidatingWebhookConfigurationList, + Convert_v1alpha1_Webhook_To_admissionregistration_Webhook, + Convert_admissionregistration_Webhook_To_v1alpha1_Webhook, + Convert_v1alpha1_WebhookClientConfig_To_admissionregistration_WebhookClientConfig, + Convert_admissionregistration_WebhookClientConfig_To_v1alpha1_WebhookClientConfig, ) } -func autoConvert_v1alpha1_AdmissionHookClientConfig_To_admissionregistration_AdmissionHookClientConfig(in *v1alpha1.AdmissionHookClientConfig, out *admissionregistration.AdmissionHookClientConfig, s conversion.Scope) error { - if err := Convert_v1alpha1_ServiceReference_To_admissionregistration_ServiceReference(&in.Service, &out.Service, s); err != nil { - return err - } - out.CABundle = *(*[]byte)(unsafe.Pointer(&in.CABundle)) - return nil -} - -// Convert_v1alpha1_AdmissionHookClientConfig_To_admissionregistration_AdmissionHookClientConfig is an autogenerated conversion function. -func Convert_v1alpha1_AdmissionHookClientConfig_To_admissionregistration_AdmissionHookClientConfig(in *v1alpha1.AdmissionHookClientConfig, out *admissionregistration.AdmissionHookClientConfig, s conversion.Scope) error { - return autoConvert_v1alpha1_AdmissionHookClientConfig_To_admissionregistration_AdmissionHookClientConfig(in, out, s) -} - -func autoConvert_admissionregistration_AdmissionHookClientConfig_To_v1alpha1_AdmissionHookClientConfig(in *admissionregistration.AdmissionHookClientConfig, out *v1alpha1.AdmissionHookClientConfig, s conversion.Scope) error { - if err := Convert_admissionregistration_ServiceReference_To_v1alpha1_ServiceReference(&in.Service, &out.Service, s); err != nil { - return err - } - out.CABundle = *(*[]byte)(unsafe.Pointer(&in.CABundle)) - return nil -} - -// Convert_admissionregistration_AdmissionHookClientConfig_To_v1alpha1_AdmissionHookClientConfig is an autogenerated conversion function. -func Convert_admissionregistration_AdmissionHookClientConfig_To_v1alpha1_AdmissionHookClientConfig(in *admissionregistration.AdmissionHookClientConfig, out *v1alpha1.AdmissionHookClientConfig, s conversion.Scope) error { - return autoConvert_admissionregistration_AdmissionHookClientConfig_To_v1alpha1_AdmissionHookClientConfig(in, out, s) -} - -func autoConvert_v1alpha1_ExternalAdmissionHook_To_admissionregistration_ExternalAdmissionHook(in *v1alpha1.ExternalAdmissionHook, out *admissionregistration.ExternalAdmissionHook, s conversion.Scope) error { - out.Name = in.Name - if err := Convert_v1alpha1_AdmissionHookClientConfig_To_admissionregistration_AdmissionHookClientConfig(&in.ClientConfig, &out.ClientConfig, s); err != nil { - return err - } - out.Rules = *(*[]admissionregistration.RuleWithOperations)(unsafe.Pointer(&in.Rules)) - out.FailurePolicy = (*admissionregistration.FailurePolicyType)(unsafe.Pointer(in.FailurePolicy)) - return nil -} - -// Convert_v1alpha1_ExternalAdmissionHook_To_admissionregistration_ExternalAdmissionHook is an autogenerated conversion function. -func Convert_v1alpha1_ExternalAdmissionHook_To_admissionregistration_ExternalAdmissionHook(in *v1alpha1.ExternalAdmissionHook, out *admissionregistration.ExternalAdmissionHook, s conversion.Scope) error { - return autoConvert_v1alpha1_ExternalAdmissionHook_To_admissionregistration_ExternalAdmissionHook(in, out, s) -} - -func autoConvert_admissionregistration_ExternalAdmissionHook_To_v1alpha1_ExternalAdmissionHook(in *admissionregistration.ExternalAdmissionHook, out *v1alpha1.ExternalAdmissionHook, s conversion.Scope) error { - out.Name = in.Name - if err := Convert_admissionregistration_AdmissionHookClientConfig_To_v1alpha1_AdmissionHookClientConfig(&in.ClientConfig, &out.ClientConfig, s); err != nil { - return err - } - out.Rules = *(*[]v1alpha1.RuleWithOperations)(unsafe.Pointer(&in.Rules)) - out.FailurePolicy = (*v1alpha1.FailurePolicyType)(unsafe.Pointer(in.FailurePolicy)) - return nil -} - -// Convert_admissionregistration_ExternalAdmissionHook_To_v1alpha1_ExternalAdmissionHook is an autogenerated conversion function. -func Convert_admissionregistration_ExternalAdmissionHook_To_v1alpha1_ExternalAdmissionHook(in *admissionregistration.ExternalAdmissionHook, out *v1alpha1.ExternalAdmissionHook, s conversion.Scope) error { - return autoConvert_admissionregistration_ExternalAdmissionHook_To_v1alpha1_ExternalAdmissionHook(in, out, s) -} - -func autoConvert_v1alpha1_ExternalAdmissionHookConfiguration_To_admissionregistration_ExternalAdmissionHookConfiguration(in *v1alpha1.ExternalAdmissionHookConfiguration, out *admissionregistration.ExternalAdmissionHookConfiguration, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.ExternalAdmissionHooks = *(*[]admissionregistration.ExternalAdmissionHook)(unsafe.Pointer(&in.ExternalAdmissionHooks)) - return nil -} - -// Convert_v1alpha1_ExternalAdmissionHookConfiguration_To_admissionregistration_ExternalAdmissionHookConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_ExternalAdmissionHookConfiguration_To_admissionregistration_ExternalAdmissionHookConfiguration(in *v1alpha1.ExternalAdmissionHookConfiguration, out *admissionregistration.ExternalAdmissionHookConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_ExternalAdmissionHookConfiguration_To_admissionregistration_ExternalAdmissionHookConfiguration(in, out, s) -} - -func autoConvert_admissionregistration_ExternalAdmissionHookConfiguration_To_v1alpha1_ExternalAdmissionHookConfiguration(in *admissionregistration.ExternalAdmissionHookConfiguration, out *v1alpha1.ExternalAdmissionHookConfiguration, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.ExternalAdmissionHooks = *(*[]v1alpha1.ExternalAdmissionHook)(unsafe.Pointer(&in.ExternalAdmissionHooks)) - return nil -} - -// Convert_admissionregistration_ExternalAdmissionHookConfiguration_To_v1alpha1_ExternalAdmissionHookConfiguration is an autogenerated conversion function. -func Convert_admissionregistration_ExternalAdmissionHookConfiguration_To_v1alpha1_ExternalAdmissionHookConfiguration(in *admissionregistration.ExternalAdmissionHookConfiguration, out *v1alpha1.ExternalAdmissionHookConfiguration, s conversion.Scope) error { - return autoConvert_admissionregistration_ExternalAdmissionHookConfiguration_To_v1alpha1_ExternalAdmissionHookConfiguration(in, out, s) -} - -func autoConvert_v1alpha1_ExternalAdmissionHookConfigurationList_To_admissionregistration_ExternalAdmissionHookConfigurationList(in *v1alpha1.ExternalAdmissionHookConfigurationList, out *admissionregistration.ExternalAdmissionHookConfigurationList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]admissionregistration.ExternalAdmissionHookConfiguration)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1alpha1_ExternalAdmissionHookConfigurationList_To_admissionregistration_ExternalAdmissionHookConfigurationList is an autogenerated conversion function. -func Convert_v1alpha1_ExternalAdmissionHookConfigurationList_To_admissionregistration_ExternalAdmissionHookConfigurationList(in *v1alpha1.ExternalAdmissionHookConfigurationList, out *admissionregistration.ExternalAdmissionHookConfigurationList, s conversion.Scope) error { - return autoConvert_v1alpha1_ExternalAdmissionHookConfigurationList_To_admissionregistration_ExternalAdmissionHookConfigurationList(in, out, s) -} - -func autoConvert_admissionregistration_ExternalAdmissionHookConfigurationList_To_v1alpha1_ExternalAdmissionHookConfigurationList(in *admissionregistration.ExternalAdmissionHookConfigurationList, out *v1alpha1.ExternalAdmissionHookConfigurationList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1alpha1.ExternalAdmissionHookConfiguration)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_admissionregistration_ExternalAdmissionHookConfigurationList_To_v1alpha1_ExternalAdmissionHookConfigurationList is an autogenerated conversion function. -func Convert_admissionregistration_ExternalAdmissionHookConfigurationList_To_v1alpha1_ExternalAdmissionHookConfigurationList(in *admissionregistration.ExternalAdmissionHookConfigurationList, out *v1alpha1.ExternalAdmissionHookConfigurationList, s conversion.Scope) error { - return autoConvert_admissionregistration_ExternalAdmissionHookConfigurationList_To_v1alpha1_ExternalAdmissionHookConfigurationList(in, out, s) -} - func autoConvert_v1alpha1_Initializer_To_admissionregistration_Initializer(in *v1alpha1.Initializer, out *admissionregistration.Initializer, s conversion.Scope) error { out.Name = in.Name out.Rules = *(*[]admissionregistration.Rule)(unsafe.Pointer(&in.Rules)) @@ -225,6 +130,50 @@ func Convert_admissionregistration_InitializerConfigurationList_To_v1alpha1_Init return autoConvert_admissionregistration_InitializerConfigurationList_To_v1alpha1_InitializerConfigurationList(in, out, s) } +func autoConvert_v1alpha1_MutatingWebhookConfiguration_To_admissionregistration_MutatingWebhookConfiguration(in *v1alpha1.MutatingWebhookConfiguration, out *admissionregistration.MutatingWebhookConfiguration, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Webhooks = *(*[]admissionregistration.Webhook)(unsafe.Pointer(&in.Webhooks)) + return nil +} + +// Convert_v1alpha1_MutatingWebhookConfiguration_To_admissionregistration_MutatingWebhookConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_MutatingWebhookConfiguration_To_admissionregistration_MutatingWebhookConfiguration(in *v1alpha1.MutatingWebhookConfiguration, out *admissionregistration.MutatingWebhookConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_MutatingWebhookConfiguration_To_admissionregistration_MutatingWebhookConfiguration(in, out, s) +} + +func autoConvert_admissionregistration_MutatingWebhookConfiguration_To_v1alpha1_MutatingWebhookConfiguration(in *admissionregistration.MutatingWebhookConfiguration, out *v1alpha1.MutatingWebhookConfiguration, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Webhooks = *(*[]v1alpha1.Webhook)(unsafe.Pointer(&in.Webhooks)) + return nil +} + +// Convert_admissionregistration_MutatingWebhookConfiguration_To_v1alpha1_MutatingWebhookConfiguration is an autogenerated conversion function. +func Convert_admissionregistration_MutatingWebhookConfiguration_To_v1alpha1_MutatingWebhookConfiguration(in *admissionregistration.MutatingWebhookConfiguration, out *v1alpha1.MutatingWebhookConfiguration, s conversion.Scope) error { + return autoConvert_admissionregistration_MutatingWebhookConfiguration_To_v1alpha1_MutatingWebhookConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_MutatingWebhookConfigurationList_To_admissionregistration_MutatingWebhookConfigurationList(in *v1alpha1.MutatingWebhookConfigurationList, out *admissionregistration.MutatingWebhookConfigurationList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]admissionregistration.MutatingWebhookConfiguration)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1alpha1_MutatingWebhookConfigurationList_To_admissionregistration_MutatingWebhookConfigurationList is an autogenerated conversion function. +func Convert_v1alpha1_MutatingWebhookConfigurationList_To_admissionregistration_MutatingWebhookConfigurationList(in *v1alpha1.MutatingWebhookConfigurationList, out *admissionregistration.MutatingWebhookConfigurationList, s conversion.Scope) error { + return autoConvert_v1alpha1_MutatingWebhookConfigurationList_To_admissionregistration_MutatingWebhookConfigurationList(in, out, s) +} + +func autoConvert_admissionregistration_MutatingWebhookConfigurationList_To_v1alpha1_MutatingWebhookConfigurationList(in *admissionregistration.MutatingWebhookConfigurationList, out *v1alpha1.MutatingWebhookConfigurationList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1alpha1.MutatingWebhookConfiguration)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_admissionregistration_MutatingWebhookConfigurationList_To_v1alpha1_MutatingWebhookConfigurationList is an autogenerated conversion function. +func Convert_admissionregistration_MutatingWebhookConfigurationList_To_v1alpha1_MutatingWebhookConfigurationList(in *admissionregistration.MutatingWebhookConfigurationList, out *v1alpha1.MutatingWebhookConfigurationList, s conversion.Scope) error { + return autoConvert_admissionregistration_MutatingWebhookConfigurationList_To_v1alpha1_MutatingWebhookConfigurationList(in, out, s) +} + func autoConvert_v1alpha1_Rule_To_admissionregistration_Rule(in *v1alpha1.Rule, out *admissionregistration.Rule, s conversion.Scope) error { out.APIGroups = *(*[]string)(unsafe.Pointer(&in.APIGroups)) out.APIVersions = *(*[]string)(unsafe.Pointer(&in.APIVersions)) @@ -278,6 +227,7 @@ func Convert_admissionregistration_RuleWithOperations_To_v1alpha1_RuleWithOperat func autoConvert_v1alpha1_ServiceReference_To_admissionregistration_ServiceReference(in *v1alpha1.ServiceReference, out *admissionregistration.ServiceReference, s conversion.Scope) error { out.Namespace = in.Namespace out.Name = in.Name + out.Path = (*string)(unsafe.Pointer(in.Path)) return nil } @@ -289,6 +239,7 @@ func Convert_v1alpha1_ServiceReference_To_admissionregistration_ServiceReference func autoConvert_admissionregistration_ServiceReference_To_v1alpha1_ServiceReference(in *admissionregistration.ServiceReference, out *v1alpha1.ServiceReference, s conversion.Scope) error { out.Namespace = in.Namespace out.Name = in.Name + out.Path = (*string)(unsafe.Pointer(in.Path)) return nil } @@ -296,3 +247,103 @@ func autoConvert_admissionregistration_ServiceReference_To_v1alpha1_ServiceRefer func Convert_admissionregistration_ServiceReference_To_v1alpha1_ServiceReference(in *admissionregistration.ServiceReference, out *v1alpha1.ServiceReference, s conversion.Scope) error { return autoConvert_admissionregistration_ServiceReference_To_v1alpha1_ServiceReference(in, out, s) } + +func autoConvert_v1alpha1_ValidatingWebhookConfiguration_To_admissionregistration_ValidatingWebhookConfiguration(in *v1alpha1.ValidatingWebhookConfiguration, out *admissionregistration.ValidatingWebhookConfiguration, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Webhooks = *(*[]admissionregistration.Webhook)(unsafe.Pointer(&in.Webhooks)) + return nil +} + +// Convert_v1alpha1_ValidatingWebhookConfiguration_To_admissionregistration_ValidatingWebhookConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_ValidatingWebhookConfiguration_To_admissionregistration_ValidatingWebhookConfiguration(in *v1alpha1.ValidatingWebhookConfiguration, out *admissionregistration.ValidatingWebhookConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_ValidatingWebhookConfiguration_To_admissionregistration_ValidatingWebhookConfiguration(in, out, s) +} + +func autoConvert_admissionregistration_ValidatingWebhookConfiguration_To_v1alpha1_ValidatingWebhookConfiguration(in *admissionregistration.ValidatingWebhookConfiguration, out *v1alpha1.ValidatingWebhookConfiguration, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Webhooks = *(*[]v1alpha1.Webhook)(unsafe.Pointer(&in.Webhooks)) + return nil +} + +// Convert_admissionregistration_ValidatingWebhookConfiguration_To_v1alpha1_ValidatingWebhookConfiguration is an autogenerated conversion function. +func Convert_admissionregistration_ValidatingWebhookConfiguration_To_v1alpha1_ValidatingWebhookConfiguration(in *admissionregistration.ValidatingWebhookConfiguration, out *v1alpha1.ValidatingWebhookConfiguration, s conversion.Scope) error { + return autoConvert_admissionregistration_ValidatingWebhookConfiguration_To_v1alpha1_ValidatingWebhookConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_ValidatingWebhookConfigurationList_To_admissionregistration_ValidatingWebhookConfigurationList(in *v1alpha1.ValidatingWebhookConfigurationList, out *admissionregistration.ValidatingWebhookConfigurationList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]admissionregistration.ValidatingWebhookConfiguration)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1alpha1_ValidatingWebhookConfigurationList_To_admissionregistration_ValidatingWebhookConfigurationList is an autogenerated conversion function. +func Convert_v1alpha1_ValidatingWebhookConfigurationList_To_admissionregistration_ValidatingWebhookConfigurationList(in *v1alpha1.ValidatingWebhookConfigurationList, out *admissionregistration.ValidatingWebhookConfigurationList, s conversion.Scope) error { + return autoConvert_v1alpha1_ValidatingWebhookConfigurationList_To_admissionregistration_ValidatingWebhookConfigurationList(in, out, s) +} + +func autoConvert_admissionregistration_ValidatingWebhookConfigurationList_To_v1alpha1_ValidatingWebhookConfigurationList(in *admissionregistration.ValidatingWebhookConfigurationList, out *v1alpha1.ValidatingWebhookConfigurationList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1alpha1.ValidatingWebhookConfiguration)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_admissionregistration_ValidatingWebhookConfigurationList_To_v1alpha1_ValidatingWebhookConfigurationList is an autogenerated conversion function. +func Convert_admissionregistration_ValidatingWebhookConfigurationList_To_v1alpha1_ValidatingWebhookConfigurationList(in *admissionregistration.ValidatingWebhookConfigurationList, out *v1alpha1.ValidatingWebhookConfigurationList, s conversion.Scope) error { + return autoConvert_admissionregistration_ValidatingWebhookConfigurationList_To_v1alpha1_ValidatingWebhookConfigurationList(in, out, s) +} + +func autoConvert_v1alpha1_Webhook_To_admissionregistration_Webhook(in *v1alpha1.Webhook, out *admissionregistration.Webhook, s conversion.Scope) error { + out.Name = in.Name + if err := Convert_v1alpha1_WebhookClientConfig_To_admissionregistration_WebhookClientConfig(&in.ClientConfig, &out.ClientConfig, s); err != nil { + return err + } + out.Rules = *(*[]admissionregistration.RuleWithOperations)(unsafe.Pointer(&in.Rules)) + out.FailurePolicy = (*admissionregistration.FailurePolicyType)(unsafe.Pointer(in.FailurePolicy)) + out.NamespaceSelector = (*v1.LabelSelector)(unsafe.Pointer(in.NamespaceSelector)) + return nil +} + +// Convert_v1alpha1_Webhook_To_admissionregistration_Webhook is an autogenerated conversion function. +func Convert_v1alpha1_Webhook_To_admissionregistration_Webhook(in *v1alpha1.Webhook, out *admissionregistration.Webhook, s conversion.Scope) error { + return autoConvert_v1alpha1_Webhook_To_admissionregistration_Webhook(in, out, s) +} + +func autoConvert_admissionregistration_Webhook_To_v1alpha1_Webhook(in *admissionregistration.Webhook, out *v1alpha1.Webhook, s conversion.Scope) error { + out.Name = in.Name + if err := Convert_admissionregistration_WebhookClientConfig_To_v1alpha1_WebhookClientConfig(&in.ClientConfig, &out.ClientConfig, s); err != nil { + return err + } + out.Rules = *(*[]v1alpha1.RuleWithOperations)(unsafe.Pointer(&in.Rules)) + out.FailurePolicy = (*v1alpha1.FailurePolicyType)(unsafe.Pointer(in.FailurePolicy)) + out.NamespaceSelector = (*v1.LabelSelector)(unsafe.Pointer(in.NamespaceSelector)) + return nil +} + +// Convert_admissionregistration_Webhook_To_v1alpha1_Webhook is an autogenerated conversion function. +func Convert_admissionregistration_Webhook_To_v1alpha1_Webhook(in *admissionregistration.Webhook, out *v1alpha1.Webhook, s conversion.Scope) error { + return autoConvert_admissionregistration_Webhook_To_v1alpha1_Webhook(in, out, s) +} + +func autoConvert_v1alpha1_WebhookClientConfig_To_admissionregistration_WebhookClientConfig(in *v1alpha1.WebhookClientConfig, out *admissionregistration.WebhookClientConfig, s conversion.Scope) error { + out.URL = (*string)(unsafe.Pointer(in.URL)) + out.Service = (*admissionregistration.ServiceReference)(unsafe.Pointer(in.Service)) + out.CABundle = *(*[]byte)(unsafe.Pointer(&in.CABundle)) + return nil +} + +// Convert_v1alpha1_WebhookClientConfig_To_admissionregistration_WebhookClientConfig is an autogenerated conversion function. +func Convert_v1alpha1_WebhookClientConfig_To_admissionregistration_WebhookClientConfig(in *v1alpha1.WebhookClientConfig, out *admissionregistration.WebhookClientConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_WebhookClientConfig_To_admissionregistration_WebhookClientConfig(in, out, s) +} + +func autoConvert_admissionregistration_WebhookClientConfig_To_v1alpha1_WebhookClientConfig(in *admissionregistration.WebhookClientConfig, out *v1alpha1.WebhookClientConfig, s conversion.Scope) error { + out.URL = (*string)(unsafe.Pointer(in.URL)) + out.Service = (*v1alpha1.ServiceReference)(unsafe.Pointer(in.Service)) + out.CABundle = *(*[]byte)(unsafe.Pointer(&in.CABundle)) + return nil +} + +// Convert_admissionregistration_WebhookClientConfig_To_v1alpha1_WebhookClientConfig is an autogenerated conversion function. +func Convert_admissionregistration_WebhookClientConfig_To_v1alpha1_WebhookClientConfig(in *admissionregistration.WebhookClientConfig, out *v1alpha1.WebhookClientConfig, s conversion.Scope) error { + return autoConvert_admissionregistration_WebhookClientConfig_To_v1alpha1_WebhookClientConfig(in, out, s) +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/zz_generated.defaults.go index da214c5d9..02749f57b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1/zz_generated.defaults.go @@ -29,25 +29,45 @@ import ( // Public to allow building arbitrary schemes. // All generated defaulters are covering - they call all nested defaulters. func RegisterDefaults(scheme *runtime.Scheme) error { - scheme.AddTypeDefaultingFunc(&v1alpha1.ExternalAdmissionHookConfiguration{}, func(obj interface{}) { - SetObjectDefaults_ExternalAdmissionHookConfiguration(obj.(*v1alpha1.ExternalAdmissionHookConfiguration)) + scheme.AddTypeDefaultingFunc(&v1alpha1.MutatingWebhookConfiguration{}, func(obj interface{}) { + SetObjectDefaults_MutatingWebhookConfiguration(obj.(*v1alpha1.MutatingWebhookConfiguration)) }) - scheme.AddTypeDefaultingFunc(&v1alpha1.ExternalAdmissionHookConfigurationList{}, func(obj interface{}) { - SetObjectDefaults_ExternalAdmissionHookConfigurationList(obj.(*v1alpha1.ExternalAdmissionHookConfigurationList)) + scheme.AddTypeDefaultingFunc(&v1alpha1.MutatingWebhookConfigurationList{}, func(obj interface{}) { + SetObjectDefaults_MutatingWebhookConfigurationList(obj.(*v1alpha1.MutatingWebhookConfigurationList)) + }) + scheme.AddTypeDefaultingFunc(&v1alpha1.ValidatingWebhookConfiguration{}, func(obj interface{}) { + SetObjectDefaults_ValidatingWebhookConfiguration(obj.(*v1alpha1.ValidatingWebhookConfiguration)) + }) + scheme.AddTypeDefaultingFunc(&v1alpha1.ValidatingWebhookConfigurationList{}, func(obj interface{}) { + SetObjectDefaults_ValidatingWebhookConfigurationList(obj.(*v1alpha1.ValidatingWebhookConfigurationList)) }) return nil } -func SetObjectDefaults_ExternalAdmissionHookConfiguration(in *v1alpha1.ExternalAdmissionHookConfiguration) { - for i := range in.ExternalAdmissionHooks { - a := &in.ExternalAdmissionHooks[i] - SetDefaults_ExternalAdmissionHook(a) +func SetObjectDefaults_MutatingWebhookConfiguration(in *v1alpha1.MutatingWebhookConfiguration) { + for i := range in.Webhooks { + a := &in.Webhooks[i] + SetDefaults_Webhook(a) + } +} + +func SetObjectDefaults_MutatingWebhookConfigurationList(in *v1alpha1.MutatingWebhookConfigurationList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_MutatingWebhookConfiguration(a) + } +} + +func SetObjectDefaults_ValidatingWebhookConfiguration(in *v1alpha1.ValidatingWebhookConfiguration) { + for i := range in.Webhooks { + a := &in.Webhooks[i] + SetDefaults_Webhook(a) } } -func SetObjectDefaults_ExternalAdmissionHookConfigurationList(in *v1alpha1.ExternalAdmissionHookConfigurationList) { +func SetObjectDefaults_ValidatingWebhookConfigurationList(in *v1alpha1.ValidatingWebhookConfigurationList) { for i := range in.Items { a := &in.Items[i] - SetObjectDefaults_ExternalAdmissionHookConfiguration(a) + SetObjectDefaults_ValidatingWebhookConfiguration(a) } } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/BUILD index ea318376b..fa9e0a0fe 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/BUILD @@ -24,6 +24,7 @@ go_library( deps = [ "//pkg/apis/admissionregistration:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/validation.go index 07c0bb1b1..958ebf440 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/validation.go @@ -18,9 +18,11 @@ package validation import ( "fmt" + "net/url" "strings" genericvalidation "k8s.io/apimachinery/pkg/api/validation" + metav1validation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" @@ -163,15 +165,23 @@ func ValidateInitializerConfigurationUpdate(newIC, oldIC *admissionregistration. return ValidateInitializerConfiguration(newIC) } -func ValidateExternalAdmissionHookConfiguration(e *admissionregistration.ExternalAdmissionHookConfiguration) field.ErrorList { +func ValidateValidatingWebhookConfiguration(e *admissionregistration.ValidatingWebhookConfiguration) field.ErrorList { allErrors := genericvalidation.ValidateObjectMeta(&e.ObjectMeta, false, genericvalidation.NameIsDNSSubdomain, field.NewPath("metadata")) - for i, hook := range e.ExternalAdmissionHooks { - allErrors = append(allErrors, validateExternalAdmissionHook(&hook, field.NewPath("externalAdmissionHooks").Index(i))...) + for i, hook := range e.Webhooks { + allErrors = append(allErrors, validateWebhook(&hook, field.NewPath("webhooks").Index(i))...) } return allErrors } -func validateExternalAdmissionHook(hook *admissionregistration.ExternalAdmissionHook, fldPath *field.Path) field.ErrorList { +func ValidateMutatingWebhookConfiguration(e *admissionregistration.MutatingWebhookConfiguration) field.ErrorList { + allErrors := genericvalidation.ValidateObjectMeta(&e.ObjectMeta, false, genericvalidation.NameIsDNSSubdomain, field.NewPath("metadata")) + for i, hook := range e.Webhooks { + allErrors = append(allErrors, validateWebhook(&hook, field.NewPath("webhooks").Index(i))...) + } + return allErrors +} + +func validateWebhook(hook *admissionregistration.Webhook, fldPath *field.Path) field.ErrorList { var allErrors field.ErrorList // hook.Name must be fully qualified allErrors = append(allErrors, validation.IsFullyQualifiedName(fldPath.Child("name"), hook.Name)...) @@ -179,13 +189,108 @@ func validateExternalAdmissionHook(hook *admissionregistration.ExternalAdmission for i, rule := range hook.Rules { allErrors = append(allErrors, validateRuleWithOperations(&rule, fldPath.Child("rules").Index(i))...) } - // TODO: relax the validation rule when admissionregistration is beta. - if hook.FailurePolicy != nil && *hook.FailurePolicy != admissionregistration.Ignore { - allErrors = append(allErrors, field.NotSupported(fldPath.Child("failurePolicy"), *hook.FailurePolicy, []string{string(admissionregistration.Ignore)})) + if hook.FailurePolicy != nil && !supportedFailurePolicies.Has(string(*hook.FailurePolicy)) { + allErrors = append(allErrors, field.NotSupported(fldPath.Child("failurePolicy"), *hook.FailurePolicy, supportedFailurePolicies.List())) + } + + if hook.NamespaceSelector != nil { + allErrors = append(allErrors, metav1validation.ValidateLabelSelector(hook.NamespaceSelector, fldPath.Child("namespaceSelector"))...) + } + + allErrors = append(allErrors, validateWebhookClientConfig(fldPath.Child("clientConfig"), &hook.ClientConfig)...) + + return allErrors +} + +func validateWebhookClientConfig(fldPath *field.Path, cc *admissionregistration.WebhookClientConfig) field.ErrorList { + var allErrors field.ErrorList + if (cc.URL == nil) == (cc.Service == nil) { + allErrors = append(allErrors, field.Required(fldPath.Child("url"), "exactly one of url or service is required")) + } + + if cc.URL != nil { + const form = "; desired format: https://host[/path]" + if u, err := url.Parse(*cc.URL); err != nil { + allErrors = append(allErrors, field.Required(fldPath.Child("url"), "url must be a valid URL: "+err.Error()+form)) + } else { + if u.Scheme != "https" { + allErrors = append(allErrors, field.Invalid(fldPath.Child("url"), u.Scheme, "'https' is the only allowed URL scheme"+form)) + } + if len(u.Host) == 0 { + allErrors = append(allErrors, field.Invalid(fldPath.Child("url"), u.Host, "host must be provided"+form)) + } + if u.User != nil { + allErrors = append(allErrors, field.Invalid(fldPath.Child("url"), u.User.String(), "user information is not permitted in the URL")) + } + if len(u.Fragment) != 0 { + allErrors = append(allErrors, field.Invalid(fldPath.Child("url"), u.Fragment, "fragments are not permitted in the URL")) + } + if len(u.RawQuery) != 0 { + allErrors = append(allErrors, field.Invalid(fldPath.Child("url"), u.RawQuery, "query parameters are not permitted in the URL")) + } + } + } + + if cc.Service != nil { + allErrors = append(allErrors, validateWebhookService(fldPath.Child("service"), cc.Service)...) + } + return allErrors +} + +func validateWebhookService(fldPath *field.Path, svc *admissionregistration.ServiceReference) field.ErrorList { + var allErrors field.ErrorList + + if len(svc.Name) == 0 { + allErrors = append(allErrors, field.Required(fldPath.Child("name"), "service name is required")) + } + + if len(svc.Namespace) == 0 { + allErrors = append(allErrors, field.Required(fldPath.Child("namespace"), "service namespace is required")) + } + + if svc.Path == nil { + return allErrors + } + + // TODO: replace below with url.Parse + verifying that host is empty? + + urlPath := *svc.Path + if urlPath == "/" || len(urlPath) == 0 { + return allErrors + } + if urlPath == "//" { + allErrors = append(allErrors, field.Invalid(fldPath.Child("path"), urlPath, "segment[0] may not be empty")) + return allErrors + } + + if !strings.HasPrefix(urlPath, "/") { + allErrors = append(allErrors, field.Invalid(fldPath.Child("path"), urlPath, "must start with a '/'")) } + + urlPathToCheck := urlPath[1:] + if strings.HasSuffix(urlPathToCheck, "/") { + urlPathToCheck = urlPathToCheck[:len(urlPathToCheck)-1] + } + steps := strings.Split(urlPathToCheck, "/") + for i, step := range steps { + if len(step) == 0 { + allErrors = append(allErrors, field.Invalid(fldPath.Child("path"), urlPath, fmt.Sprintf("segment[%d] may not be empty", i))) + continue + } + failures := validation.IsDNS1123Subdomain(step) + for _, failure := range failures { + allErrors = append(allErrors, field.Invalid(fldPath.Child("path"), urlPath, fmt.Sprintf("segment[%d]: %v", i, failure))) + } + } + return allErrors } +var supportedFailurePolicies = sets.NewString( + string(admissionregistration.Ignore), + string(admissionregistration.Fail), +) + var supportedOperations = sets.NewString( string(admissionregistration.OperationAll), string(admissionregistration.Create), @@ -221,6 +326,10 @@ func validateRuleWithOperations(ruleWithOperations *admissionregistration.RuleWi return allErrors } -func ValidateExternalAdmissionHookConfigurationUpdate(newC, oldC *admissionregistration.ExternalAdmissionHookConfiguration) field.ErrorList { - return ValidateExternalAdmissionHookConfiguration(newC) +func ValidateValidatingWebhookConfigurationUpdate(newC, oldC *admissionregistration.ValidatingWebhookConfiguration) field.ErrorList { + return ValidateValidatingWebhookConfiguration(newC) +} + +func ValidateMutatingWebhookConfigurationUpdate(newC, oldC *admissionregistration.MutatingWebhookConfiguration) field.ErrorList { + return ValidateMutatingWebhookConfiguration(newC) } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/validation_test.go index de36f1806..5dd3fc551 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/validation/validation_test.go @@ -231,41 +231,51 @@ func TestValidateInitializerConfiguration(t *testing.T) { } } -func getExternalAdmissionHookConfiguration(hooks []admissionregistration.ExternalAdmissionHook) *admissionregistration.ExternalAdmissionHookConfiguration { - return &admissionregistration.ExternalAdmissionHookConfiguration{ +func strPtr(s string) *string { return &s } + +func newValidatingWebhookConfiguration(hooks []admissionregistration.Webhook) *admissionregistration.ValidatingWebhookConfiguration { + return &admissionregistration.ValidatingWebhookConfiguration{ ObjectMeta: metav1.ObjectMeta{ Name: "config", }, - ExternalAdmissionHooks: hooks, + Webhooks: hooks, } } -func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { +// TODO: Add TestValidateMutatingWebhookConfiguration to test validation for mutating webhooks. + +func TestValidateValidatingWebhookConfiguration(t *testing.T) { + validClientConfig := admissionregistration.WebhookClientConfig{ + URL: strPtr("https://example.com"), + } tests := []struct { name string - config *admissionregistration.ExternalAdmissionHookConfiguration + config *admissionregistration.ValidatingWebhookConfiguration expectedError string }{ { - name: "all ExternalAdmissionHook must have a fully qualified name", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + name: "all Webhooks must have a fully qualified name", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { - Name: "webhook.k8s.io", + Name: "webhook.k8s.io", + ClientConfig: validClientConfig, }, { - Name: "k8s.io", + Name: "k8s.io", + ClientConfig: validClientConfig, }, { - Name: "", + Name: "", + ClientConfig: validClientConfig, }, }), - expectedError: `externalAdmissionHooks[1].name: Invalid value: "k8s.io": should be a domain with at least three segments separated by dots, externalAdmissionHooks[2].name: Required value`, + expectedError: `webhooks[1].name: Invalid value: "k8s.io": should be a domain with at least three segments separated by dots, webhooks[2].name: Required value`, }, { name: "Operations must not be empty or nil", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { Name: "webhook.k8s.io", Rules: []admissionregistration.RuleWithOperations{ @@ -288,12 +298,12 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, }, }), - expectedError: `externalAdmissionHooks[0].rules[0].operations: Required value, externalAdmissionHooks[0].rules[1].operations: Required value`, + expectedError: `webhooks[0].rules[0].operations: Required value, webhooks[0].rules[1].operations: Required value`, }, { name: "\"\" is NOT a valid operation", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { Name: "webhook.k8s.io", Rules: []admissionregistration.RuleWithOperations{ @@ -312,8 +322,8 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, { name: "operation must be either create/update/delete/connect", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { Name: "webhook.k8s.io", Rules: []admissionregistration.RuleWithOperations{ @@ -332,8 +342,8 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, { name: "wildcard operation cannot be mixed with other strings", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { Name: "webhook.k8s.io", Rules: []admissionregistration.RuleWithOperations{ @@ -352,10 +362,11 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, { name: `resource "*" can co-exist with resources that have subresources`, - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { - Name: "webhook.k8s.io", + Name: "webhook.k8s.io", + ClientConfig: validClientConfig, Rules: []admissionregistration.RuleWithOperations{ { Operations: []admissionregistration.OperationType{"CREATE"}, @@ -371,10 +382,11 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, { name: `resource "*" cannot mix with resources that don't have subresources`, - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { - Name: "webhook.k8s.io", + Name: "webhook.k8s.io", + ClientConfig: validClientConfig, Rules: []admissionregistration.RuleWithOperations{ { Operations: []admissionregistration.OperationType{"CREATE"}, @@ -391,10 +403,11 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, { name: "resource a/* cannot mix with a/x", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { - Name: "webhook.k8s.io", + Name: "webhook.k8s.io", + ClientConfig: validClientConfig, Rules: []admissionregistration.RuleWithOperations{ { Operations: []admissionregistration.OperationType{"CREATE"}, @@ -407,14 +420,15 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, }, }), - expectedError: `externalAdmissionHooks[0].rules[0].resources[1]: Invalid value: "a/x": if 'a/*' is present, must not specify a/x`, + expectedError: `webhooks[0].rules[0].resources[1]: Invalid value: "a/x": if 'a/*' is present, must not specify a/x`, }, { name: "resource a/* can mix with a", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { - Name: "webhook.k8s.io", + Name: "webhook.k8s.io", + ClientConfig: validClientConfig, Rules: []admissionregistration.RuleWithOperations{ { Operations: []admissionregistration.OperationType{"CREATE"}, @@ -430,10 +444,11 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, { name: "resource */a cannot mix with x/a", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { - Name: "webhook.k8s.io", + Name: "webhook.k8s.io", + ClientConfig: validClientConfig, Rules: []admissionregistration.RuleWithOperations{ { Operations: []admissionregistration.OperationType{"CREATE"}, @@ -446,14 +461,15 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, }, }), - expectedError: `externalAdmissionHooks[0].rules[0].resources[1]: Invalid value: "x/a": if '*/a' is present, must not specify x/a`, + expectedError: `webhooks[0].rules[0].resources[1]: Invalid value: "x/a": if '*/a' is present, must not specify x/a`, }, { name: "resource */* cannot mix with other resources", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { - Name: "webhook.k8s.io", + Name: "webhook.k8s.io", + ClientConfig: validClientConfig, Rules: []admissionregistration.RuleWithOperations{ { Operations: []admissionregistration.OperationType{"CREATE"}, @@ -466,34 +482,275 @@ func TestValidateExternalAdmissionHookConfiguration(t *testing.T) { }, }, }), - expectedError: `externalAdmissionHooks[0].rules[0].resources: Invalid value: []string{"*/*", "a"}: if '*/*' is present, must not specify other resources`, + expectedError: `webhooks[0].rules[0].resources: Invalid value: []string{"*/*", "a"}: if '*/*' is present, must not specify other resources`, }, { - name: "FailurePolicy can only be \"Ignore\"", - config: getExternalAdmissionHookConfiguration( - []admissionregistration.ExternalAdmissionHook{ + name: "FailurePolicy can only be \"Ignore\" or \"Fail\"", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ { - Name: "webhook.k8s.io", + Name: "webhook.k8s.io", + ClientConfig: validClientConfig, FailurePolicy: func() *admissionregistration.FailurePolicyType { - r := admissionregistration.Fail + r := admissionregistration.FailurePolicyType("other") return &r }(), }, }), - expectedError: `failurePolicy: Unsupported value: "Fail": supported values: "Ignore"`, + expectedError: `webhooks[0].failurePolicy: Unsupported value: "other": supported values: "Fail", "Ignore"`, + }, + { + name: "both service and URL missing", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{}, + }, + }), + expectedError: `exactly one of`, + }, + { + name: "both service and URL provided", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + Service: &admissionregistration.ServiceReference{ + Namespace: "ns", + Name: "n", + }, + URL: strPtr("example.com/k8s/webhook"), + }, + }, + }), + expectedError: `[0].clientConfig.url: Required value: exactly one of url or service is required`, + }, + { + name: "blank URL", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + URL: strPtr(""), + }, + }, + }), + expectedError: `[0].clientConfig.url: Invalid value: "": host must be provided`, + }, + { + name: "wrong scheme", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + URL: strPtr("http://example.com"), + }, + }, + }), + expectedError: `https`, + }, + { + name: "missing host", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + URL: strPtr("https:///fancy/webhook"), + }, + }, + }), + expectedError: `host must be provided`, + }, + { + name: "fragment", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + URL: strPtr("https://example.com/#bookmark"), + }, + }, + }), + expectedError: `"bookmark": fragments are not permitted`, + }, + { + name: "query", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + URL: strPtr("https://example.com?arg=value"), + }, + }, + }), + expectedError: `"arg=value": query parameters are not permitted`, + }, + { + name: "user", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + URL: strPtr("https://harry.potter@example.com/"), + }, + }, + }), + expectedError: `"harry.potter": user information is not permitted`, + }, + { + name: "just totally wrong", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + URL: strPtr("arg#backwards=thisis?html.index/port:host//:https"), + }, + }, + }), + expectedError: `host must be provided`, + }, + { + name: "path must start with slash", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + Service: &admissionregistration.ServiceReference{ + Namespace: "ns", + Name: "n", + Path: strPtr("foo/"), + }, + }, + }, + }), + expectedError: `clientConfig.service.path: Invalid value: "foo/": must start with a '/'`, + }, + { + name: "path accepts slash", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + Service: &admissionregistration.ServiceReference{ + Namespace: "ns", + Name: "n", + Path: strPtr("/"), + }, + }, + }, + }), + expectedError: ``, + }, + { + name: "path accepts no trailing slash", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + Service: &admissionregistration.ServiceReference{ + Namespace: "ns", + Name: "n", + Path: strPtr("/foo"), + }, + }, + }, + }), + expectedError: ``, + }, + { + name: "path fails //", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + Service: &admissionregistration.ServiceReference{ + Namespace: "ns", + Name: "n", + Path: strPtr("//"), + }, + }, + }, + }), + expectedError: `clientConfig.service.path: Invalid value: "//": segment[0] may not be empty`, + }, + { + name: "path no empty step", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + Service: &admissionregistration.ServiceReference{ + Namespace: "ns", + Name: "n", + Path: strPtr("/foo//bar/"), + }, + }, + }, + }), + expectedError: `clientConfig.service.path: Invalid value: "/foo//bar/": segment[1] may not be empty`, + }, { + name: "path no empty step 2", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + Service: &admissionregistration.ServiceReference{ + Namespace: "ns", + Name: "n", + Path: strPtr("/foo/bar//"), + }, + }, + }, + }), + expectedError: `clientConfig.service.path: Invalid value: "/foo/bar//": segment[2] may not be empty`, + }, + { + name: "path no non-subdomain", + config: newValidatingWebhookConfiguration( + []admissionregistration.Webhook{ + { + Name: "webhook.k8s.io", + ClientConfig: admissionregistration.WebhookClientConfig{ + Service: &admissionregistration.ServiceReference{ + Namespace: "ns", + Name: "n", + Path: strPtr("/apis/foo.bar/v1alpha1/--bad"), + }, + }, + }, + }), + expectedError: `clientConfig.service.path: Invalid value: "/apis/foo.bar/v1alpha1/--bad": segment[3]: a DNS-1123 subdomain`, }, } for _, test := range tests { - errs := ValidateExternalAdmissionHookConfiguration(test.config) - err := errs.ToAggregate() - if err != nil { - if e, a := test.expectedError, err.Error(); !strings.Contains(a, e) || e == "" { - t.Errorf("test case %s, expected to contain %s, got %s", test.name, e, a) - } - } else { - if test.expectedError != "" { - t.Errorf("test case %s, unexpected no error, expected to contain %s", test.name, test.expectedError) + t.Run(test.name, func(t *testing.T) { + errs := ValidateValidatingWebhookConfiguration(test.config) + err := errs.ToAggregate() + if err != nil { + if e, a := test.expectedError, err.Error(); !strings.Contains(a, e) || e == "" { + t.Errorf("expected to contain %s, got %s", e, a) + } + } else { + if test.expectedError != "" { + t.Errorf("unexpected no error, expected to contain %s", test.expectedError) + } } - } + }) + } } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/zz_generated.deepcopy.go index 4952a75f7..8bb1ab3fb 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/admissionregistration/zz_generated.deepcopy.go @@ -21,127 +21,41 @@ limitations under the License. package admissionregistration import ( - conversion "k8s.io/apimachinery/pkg/conversion" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionHookClientConfig).DeepCopyInto(out.(*AdmissionHookClientConfig)) - return nil - }, InType: reflect.TypeOf(&AdmissionHookClientConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalAdmissionHook).DeepCopyInto(out.(*ExternalAdmissionHook)) - return nil - }, InType: reflect.TypeOf(&ExternalAdmissionHook{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalAdmissionHookConfiguration).DeepCopyInto(out.(*ExternalAdmissionHookConfiguration)) - return nil - }, InType: reflect.TypeOf(&ExternalAdmissionHookConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalAdmissionHookConfigurationList).DeepCopyInto(out.(*ExternalAdmissionHookConfigurationList)) - return nil - }, InType: reflect.TypeOf(&ExternalAdmissionHookConfigurationList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Initializer).DeepCopyInto(out.(*Initializer)) - return nil - }, InType: reflect.TypeOf(&Initializer{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InitializerConfiguration).DeepCopyInto(out.(*InitializerConfiguration)) - return nil - }, InType: reflect.TypeOf(&InitializerConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InitializerConfigurationList).DeepCopyInto(out.(*InitializerConfigurationList)) - return nil - }, InType: reflect.TypeOf(&InitializerConfigurationList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Rule).DeepCopyInto(out.(*Rule)) - return nil - }, InType: reflect.TypeOf(&Rule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RuleWithOperations).DeepCopyInto(out.(*RuleWithOperations)) - return nil - }, InType: reflect.TypeOf(&RuleWithOperations{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceReference).DeepCopyInto(out.(*ServiceReference)) - return nil - }, InType: reflect.TypeOf(&ServiceReference{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AdmissionHookClientConfig) DeepCopyInto(out *AdmissionHookClientConfig) { - *out = *in - out.Service = in.Service - if in.CABundle != nil { - in, out := &in.CABundle, &out.CABundle - *out = make([]byte, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionHookClientConfig. -func (in *AdmissionHookClientConfig) DeepCopy() *AdmissionHookClientConfig { - if in == nil { - return nil - } - out := new(AdmissionHookClientConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalAdmissionHook) DeepCopyInto(out *ExternalAdmissionHook) { +func (in *Initializer) DeepCopyInto(out *Initializer) { *out = *in - in.ClientConfig.DeepCopyInto(&out.ClientConfig) if in.Rules != nil { in, out := &in.Rules, &out.Rules - *out = make([]RuleWithOperations, len(*in)) + *out = make([]Rule, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.FailurePolicy != nil { - in, out := &in.FailurePolicy, &out.FailurePolicy - if *in == nil { - *out = nil - } else { - *out = new(FailurePolicyType) - **out = **in - } - } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalAdmissionHook. -func (in *ExternalAdmissionHook) DeepCopy() *ExternalAdmissionHook { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Initializer. +func (in *Initializer) DeepCopy() *Initializer { if in == nil { return nil } - out := new(ExternalAdmissionHook) + out := new(Initializer) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalAdmissionHookConfiguration) DeepCopyInto(out *ExternalAdmissionHookConfiguration) { +func (in *InitializerConfiguration) DeepCopyInto(out *InitializerConfiguration) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.ExternalAdmissionHooks != nil { - in, out := &in.ExternalAdmissionHooks, &out.ExternalAdmissionHooks - *out = make([]ExternalAdmissionHook, len(*in)) + if in.Initializers != nil { + in, out := &in.Initializers, &out.Initializers + *out = make([]Initializer, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -149,18 +63,18 @@ func (in *ExternalAdmissionHookConfiguration) DeepCopyInto(out *ExternalAdmissio return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalAdmissionHookConfiguration. -func (in *ExternalAdmissionHookConfiguration) DeepCopy() *ExternalAdmissionHookConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitializerConfiguration. +func (in *InitializerConfiguration) DeepCopy() *InitializerConfiguration { if in == nil { return nil } - out := new(ExternalAdmissionHookConfiguration) + out := new(InitializerConfiguration) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ExternalAdmissionHookConfiguration) DeepCopyObject() runtime.Object { +func (in *InitializerConfiguration) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -169,13 +83,13 @@ func (in *ExternalAdmissionHookConfiguration) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalAdmissionHookConfigurationList) DeepCopyInto(out *ExternalAdmissionHookConfigurationList) { +func (in *InitializerConfigurationList) DeepCopyInto(out *InitializerConfigurationList) { *out = *in out.TypeMeta = in.TypeMeta out.ListMeta = in.ListMeta if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]ExternalAdmissionHookConfiguration, len(*in)) + *out = make([]InitializerConfiguration, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -183,18 +97,18 @@ func (in *ExternalAdmissionHookConfigurationList) DeepCopyInto(out *ExternalAdmi return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalAdmissionHookConfigurationList. -func (in *ExternalAdmissionHookConfigurationList) DeepCopy() *ExternalAdmissionHookConfigurationList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitializerConfigurationList. +func (in *InitializerConfigurationList) DeepCopy() *InitializerConfigurationList { if in == nil { return nil } - out := new(ExternalAdmissionHookConfigurationList) + out := new(InitializerConfigurationList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ExternalAdmissionHookConfigurationList) DeepCopyObject() runtime.Object { +func (in *InitializerConfigurationList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -203,36 +117,13 @@ func (in *ExternalAdmissionHookConfigurationList) DeepCopyObject() runtime.Objec } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Initializer) DeepCopyInto(out *Initializer) { - *out = *in - if in.Rules != nil { - in, out := &in.Rules, &out.Rules - *out = make([]Rule, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Initializer. -func (in *Initializer) DeepCopy() *Initializer { - if in == nil { - return nil - } - out := new(Initializer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InitializerConfiguration) DeepCopyInto(out *InitializerConfiguration) { +func (in *MutatingWebhookConfiguration) DeepCopyInto(out *MutatingWebhookConfiguration) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Initializers != nil { - in, out := &in.Initializers, &out.Initializers - *out = make([]Initializer, len(*in)) + if in.Webhooks != nil { + in, out := &in.Webhooks, &out.Webhooks + *out = make([]Webhook, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -240,18 +131,18 @@ func (in *InitializerConfiguration) DeepCopyInto(out *InitializerConfiguration) return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitializerConfiguration. -func (in *InitializerConfiguration) DeepCopy() *InitializerConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfiguration. +func (in *MutatingWebhookConfiguration) DeepCopy() *MutatingWebhookConfiguration { if in == nil { return nil } - out := new(InitializerConfiguration) + out := new(MutatingWebhookConfiguration) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *InitializerConfiguration) DeepCopyObject() runtime.Object { +func (in *MutatingWebhookConfiguration) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -260,13 +151,13 @@ func (in *InitializerConfiguration) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InitializerConfigurationList) DeepCopyInto(out *InitializerConfigurationList) { +func (in *MutatingWebhookConfigurationList) DeepCopyInto(out *MutatingWebhookConfigurationList) { *out = *in out.TypeMeta = in.TypeMeta out.ListMeta = in.ListMeta if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]InitializerConfiguration, len(*in)) + *out = make([]MutatingWebhookConfiguration, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -274,18 +165,18 @@ func (in *InitializerConfigurationList) DeepCopyInto(out *InitializerConfigurati return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitializerConfigurationList. -func (in *InitializerConfigurationList) DeepCopy() *InitializerConfigurationList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfigurationList. +func (in *MutatingWebhookConfigurationList) DeepCopy() *MutatingWebhookConfigurationList { if in == nil { return nil } - out := new(InitializerConfigurationList) + out := new(MutatingWebhookConfigurationList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *InitializerConfigurationList) DeepCopyObject() runtime.Object { +func (in *MutatingWebhookConfigurationList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -349,6 +240,15 @@ func (in *RuleWithOperations) DeepCopy() *RuleWithOperations { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceReference) DeepCopyInto(out *ServiceReference) { *out = *in + if in.Path != nil { + in, out := &in.Path, &out.Path + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } @@ -361,3 +261,152 @@ func (in *ServiceReference) DeepCopy() *ServiceReference { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ValidatingWebhookConfiguration) DeepCopyInto(out *ValidatingWebhookConfiguration) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.Webhooks != nil { + in, out := &in.Webhooks, &out.Webhooks + *out = make([]Webhook, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfiguration. +func (in *ValidatingWebhookConfiguration) DeepCopy() *ValidatingWebhookConfiguration { + if in == nil { + return nil + } + out := new(ValidatingWebhookConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ValidatingWebhookConfiguration) 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 *ValidatingWebhookConfigurationList) DeepCopyInto(out *ValidatingWebhookConfigurationList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ValidatingWebhookConfiguration, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfigurationList. +func (in *ValidatingWebhookConfigurationList) DeepCopy() *ValidatingWebhookConfigurationList { + if in == nil { + return nil + } + out := new(ValidatingWebhookConfigurationList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ValidatingWebhookConfigurationList) 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 *Webhook) DeepCopyInto(out *Webhook) { + *out = *in + in.ClientConfig.DeepCopyInto(&out.ClientConfig) + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]RuleWithOperations, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FailurePolicy != nil { + in, out := &in.FailurePolicy, &out.FailurePolicy + if *in == nil { + *out = nil + } else { + *out = new(FailurePolicyType) + **out = **in + } + } + if in.NamespaceSelector != nil { + in, out := &in.NamespaceSelector, &out.NamespaceSelector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Webhook. +func (in *Webhook) DeepCopy() *Webhook { + if in == nil { + return nil + } + out := new(Webhook) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebhookClientConfig) DeepCopyInto(out *WebhookClientConfig) { + *out = *in + if in.URL != nil { + in, out := &in.URL, &out.URL + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + if *in == nil { + *out = nil + } else { + *out = new(ServiceReference) + (*in).DeepCopyInto(*out) + } + } + if in.CABundle != nil { + in, out := &in.CABundle, &out.CABundle + *out = make([]byte, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookClientConfig. +func (in *WebhookClientConfig) DeepCopy() *WebhookClientConfig { + if in == nil { + return nil + } + out := new(WebhookClientConfig) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/apps/BUILD index e80860f6d..8cb47574a 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/BUILD @@ -15,10 +15,10 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/apps", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/doc.go index e216ed6fd..1ff549998 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package apps // import "k8s.io/kubernetes/pkg/apis/apps" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/apps/install/BUILD index 6dfb18cce..e33b4cb24 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/apps/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/apps/v1:go_default_library", "//pkg/apis/apps/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/install/install.go index 2e31da6d9..731171276 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/install/install.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/apps/v1" "k8s.io/kubernetes/pkg/apis/apps/v1beta1" @@ -30,7 +30,7 @@ import ( ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/register.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/register.go index 77d8445ae..8b7591807 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/register.go @@ -19,6 +19,7 @@ package apps import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -43,7 +44,7 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { // TODO this will get cleaned up with the scheme types are fixed scheme.AddKnownTypes(SchemeGroupVersion, @@ -52,7 +53,7 @@ func addKnownTypes(scheme *runtime.Scheme) error { &extensions.Deployment{}, &extensions.DeploymentList{}, &extensions.DeploymentRollback{}, - &extensions.Scale{}, + &autoscaling.Scale{}, &StatefulSet{}, &StatefulSetList{}, &ControllerRevision{}, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/types.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/types.go index 7654b681a..850694d7f 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/types.go @@ -19,12 +19,12 @@ package apps import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // +genclient -// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/extensions.Scale -// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/extensions.Scale,result=k8s.io/kubernetes/pkg/apis/extensions.Scale +// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale +// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/autoscaling.Scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // StatefulSet represents a set of pods with consistent identities. @@ -195,6 +195,27 @@ type StatefulSetStatus struct { // newest ControllerRevision. // +optional CollisionCount *int32 + + // Represents the latest available observations of a statefulset's current state. + Conditions []StatefulSetCondition +} + +type StatefulSetConditionType string + +// TODO: Add valid condition types for Statefulsets. + +// StatefulSetCondition describes the state of a statefulset at a certain point. +type StatefulSetCondition struct { + // Type of statefulset condition. + Type StatefulSetConditionType + // Status of the condition, one of True, False, Unknown. + Status api.ConditionStatus + // The last time this condition was updated. + LastTransitionTime metav1.Time + // The reason for the condition's last transition. + Reason string + // A human readable message indicating details about the transition. + Message string } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/BUILD index be94c120d..3ffdef39f 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/BUILD @@ -13,9 +13,12 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/apps/v1", visibility = ["//visibility:public"], deps = [ - "//pkg/api/v1:go_default_library", + "//pkg/apis/apps:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/api/apps/v1: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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -33,13 +36,16 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/apps/v1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/apps:go_default_library", "//pkg/apis/apps/install:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/api/apps/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource: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/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/conversion.go index 2e1719647..0908f7fc2 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/conversion.go @@ -17,13 +17,18 @@ limitations under the License. package v1 import ( + "fmt" "strconv" appsv1 "k8s.io/api/apps/v1" + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/conversion" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/kubernetes/pkg/apis/apps" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -33,14 +38,33 @@ func addConversionFuncs(scheme *runtime.Scheme) error { // it, but a plain int32 is more convenient in the internal type. These // functions are the same as the autogenerated ones in every other way. err := scheme.AddConversionFuncs( + Convert_v1_StatefulSetSpec_To_apps_StatefulSetSpec, + Convert_apps_StatefulSetSpec_To_v1_StatefulSetSpec, + Convert_v1_StatefulSetUpdateStrategy_To_apps_StatefulSetUpdateStrategy, + Convert_apps_StatefulSetUpdateStrategy_To_v1_StatefulSetUpdateStrategy, Convert_extensions_RollingUpdateDaemonSet_To_v1_RollingUpdateDaemonSet, Convert_v1_RollingUpdateDaemonSet_To_extensions_RollingUpdateDaemonSet, + Convert_v1_StatefulSetStatus_To_apps_StatefulSetStatus, + Convert_apps_StatefulSetStatus_To_v1_StatefulSetStatus, + Convert_v1_Deployment_To_extensions_Deployment, + Convert_extensions_Deployment_To_v1_Deployment, Convert_extensions_DaemonSet_To_v1_DaemonSet, Convert_v1_DaemonSet_To_extensions_DaemonSet, Convert_extensions_DaemonSetSpec_To_v1_DaemonSetSpec, Convert_v1_DaemonSetSpec_To_extensions_DaemonSetSpec, Convert_extensions_DaemonSetUpdateStrategy_To_v1_DaemonSetUpdateStrategy, Convert_v1_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy, + // extensions + // TODO: below conversions should be dropped in favor of auto-generated + // ones, see https://github.com/kubernetes/kubernetes/issues/39865 + Convert_v1_DeploymentSpec_To_extensions_DeploymentSpec, + Convert_extensions_DeploymentSpec_To_v1_DeploymentSpec, + Convert_v1_DeploymentStrategy_To_extensions_DeploymentStrategy, + Convert_extensions_DeploymentStrategy_To_v1_DeploymentStrategy, + Convert_v1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment, + Convert_extensions_RollingUpdateDeployment_To_v1_RollingUpdateDeployment, + Convert_extensions_ReplicaSetSpec_To_v1_ReplicaSetSpec, + Convert_v1_ReplicaSetSpec_To_extensions_ReplicaSetSpec, ) if err != nil { return err @@ -48,6 +72,150 @@ func addConversionFuncs(scheme *runtime.Scheme) error { return nil } +func Convert_v1_DeploymentSpec_To_extensions_DeploymentSpec(in *appsv1.DeploymentSpec, out *extensions.DeploymentSpec, s conversion.Scope) error { + if in.Replicas != nil { + out.Replicas = *in.Replicas + } + out.Selector = in.Selector + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_v1_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { + return err + } + out.RevisionHistoryLimit = in.RevisionHistoryLimit + out.MinReadySeconds = in.MinReadySeconds + out.Paused = in.Paused + if in.ProgressDeadlineSeconds != nil { + out.ProgressDeadlineSeconds = new(int32) + *out.ProgressDeadlineSeconds = *in.ProgressDeadlineSeconds + } + return nil +} + +func Convert_extensions_DeploymentSpec_To_v1_DeploymentSpec(in *extensions.DeploymentSpec, out *appsv1.DeploymentSpec, s conversion.Scope) error { + out.Replicas = &in.Replicas + out.Selector = in.Selector + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_extensions_DeploymentStrategy_To_v1_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { + return err + } + if in.RevisionHistoryLimit != nil { + out.RevisionHistoryLimit = new(int32) + *out.RevisionHistoryLimit = int32(*in.RevisionHistoryLimit) + } + out.MinReadySeconds = int32(in.MinReadySeconds) + out.Paused = in.Paused + if in.ProgressDeadlineSeconds != nil { + out.ProgressDeadlineSeconds = new(int32) + *out.ProgressDeadlineSeconds = *in.ProgressDeadlineSeconds + } + return nil +} + +func Convert_extensions_DeploymentStrategy_To_v1_DeploymentStrategy(in *extensions.DeploymentStrategy, out *appsv1.DeploymentStrategy, s conversion.Scope) error { + out.Type = appsv1.DeploymentStrategyType(in.Type) + if in.RollingUpdate != nil { + out.RollingUpdate = new(appsv1.RollingUpdateDeployment) + if err := Convert_extensions_RollingUpdateDeployment_To_v1_RollingUpdateDeployment(in.RollingUpdate, out.RollingUpdate, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func Convert_v1_DeploymentStrategy_To_extensions_DeploymentStrategy(in *appsv1.DeploymentStrategy, out *extensions.DeploymentStrategy, s conversion.Scope) error { + out.Type = extensions.DeploymentStrategyType(in.Type) + if in.RollingUpdate != nil { + out.RollingUpdate = new(extensions.RollingUpdateDeployment) + if err := Convert_v1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(in.RollingUpdate, out.RollingUpdate, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func Convert_v1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(in *appsv1.RollingUpdateDeployment, out *extensions.RollingUpdateDeployment, s conversion.Scope) error { + if err := s.Convert(in.MaxUnavailable, &out.MaxUnavailable, 0); err != nil { + return err + } + if err := s.Convert(in.MaxSurge, &out.MaxSurge, 0); err != nil { + return err + } + return nil +} + +func Convert_extensions_RollingUpdateDeployment_To_v1_RollingUpdateDeployment(in *extensions.RollingUpdateDeployment, out *appsv1.RollingUpdateDeployment, s conversion.Scope) error { + if out.MaxUnavailable == nil { + out.MaxUnavailable = &intstr.IntOrString{} + } + if err := s.Convert(&in.MaxUnavailable, out.MaxUnavailable, 0); err != nil { + return err + } + if out.MaxSurge == nil { + out.MaxSurge = &intstr.IntOrString{} + } + if err := s.Convert(&in.MaxSurge, out.MaxSurge, 0); err != nil { + return err + } + return nil +} + +func Convert_v1_Deployment_To_extensions_Deployment(in *appsv1.Deployment, out *extensions.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_DeploymentSpec_To_extensions_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + + // Copy annotation to deprecated rollbackTo field for roundtrip + // TODO: remove this conversion after we delete extensions/v1beta1 and apps/v1beta1 Deployment + if revision, _ := in.Annotations[appsv1.DeprecatedRollbackTo]; revision != "" { + if revision64, err := strconv.ParseInt(revision, 10, 64); err != nil { + return fmt.Errorf("failed to parse annotation[%s]=%s as int64: %v", appsv1.DeprecatedRollbackTo, revision, err) + } else { + out.Spec.RollbackTo = new(extensions.RollbackConfig) + out.Spec.RollbackTo.Revision = revision64 + } + delete(out.Annotations, appsv1.DeprecatedRollbackTo) + } else { + out.Spec.RollbackTo = nil + } + + if err := Convert_v1_DeploymentStatus_To_extensions_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +func Convert_extensions_Deployment_To_v1_Deployment(in *extensions.Deployment, out *appsv1.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_DeploymentSpec_To_v1_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + + // Copy deprecated rollbackTo field to annotation for roundtrip + // TODO: remove this conversion after we delete extensions/v1beta1 and apps/v1beta1 Deployment + if in.Spec.RollbackTo != nil { + if out.Annotations == nil { + out.Annotations = make(map[string]string) + } + out.Annotations[appsv1.DeprecatedRollbackTo] = strconv.FormatInt(in.Spec.RollbackTo.Revision, 10) + } else { + delete(out.Annotations, appsv1.DeprecatedRollbackTo) + } + + if err := Convert_extensions_DeploymentStatus_To_v1_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + func Convert_extensions_RollingUpdateDaemonSet_To_v1_RollingUpdateDaemonSet(in *extensions.RollingUpdateDaemonSet, out *appsv1.RollingUpdateDaemonSet, s conversion.Scope) error { if out.MaxUnavailable == nil { out.MaxUnavailable = &intstr.IntOrString{} @@ -82,7 +250,7 @@ func Convert_extensions_DaemonSet_To_v1_DaemonSet(in *extensions.DaemonSet, out func Convert_extensions_DaemonSetSpec_To_v1_DaemonSetSpec(in *extensions.DaemonSetSpec, out *appsv1.DaemonSetSpec, s conversion.Scope) error { out.Selector = in.Selector - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DaemonSetUpdateStrategy_To_v1_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -130,7 +298,7 @@ func Convert_v1_DaemonSet_To_extensions_DaemonSet(in *appsv1.DaemonSet, out *ext func Convert_v1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *appsv1.DaemonSetSpec, out *extensions.DaemonSetSpec, s conversion.Scope) error { out.Selector = in.Selector - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -156,3 +324,175 @@ func Convert_v1_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(in } return nil } + +func Convert_extensions_ReplicaSetSpec_To_v1_ReplicaSetSpec(in *extensions.ReplicaSetSpec, out *appsv1.ReplicaSetSpec, s conversion.Scope) error { + out.Replicas = new(int32) + *out.Replicas = int32(in.Replicas) + out.MinReadySeconds = in.MinReadySeconds + out.Selector = in.Selector + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +func Convert_v1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *appsv1.ReplicaSetSpec, out *extensions.ReplicaSetSpec, s conversion.Scope) error { + if in.Replicas != nil { + out.Replicas = *in.Replicas + } + out.MinReadySeconds = in.MinReadySeconds + out.Selector = in.Selector + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +func Convert_v1_StatefulSetSpec_To_apps_StatefulSetSpec(in *appsv1.StatefulSetSpec, out *apps.StatefulSetSpec, s conversion.Scope) error { + if in.Replicas != nil { + out.Replicas = *in.Replicas + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(metav1.LabelSelector) + if err := s.Convert(*in, *out, 0); err != nil { + return err + } + } else { + out.Selector = nil + } + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if in.VolumeClaimTemplates != nil { + in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates + *out = make([]api.PersistentVolumeClaim, len(*in)) + for i := range *in { + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.VolumeClaimTemplates = nil + } + if err := Convert_v1_StatefulSetUpdateStrategy_To_apps_StatefulSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { + return err + } + if in.RevisionHistoryLimit != nil { + out.RevisionHistoryLimit = new(int32) + *out.RevisionHistoryLimit = *in.RevisionHistoryLimit + } else { + out.RevisionHistoryLimit = nil + } + out.ServiceName = in.ServiceName + out.PodManagementPolicy = apps.PodManagementPolicyType(in.PodManagementPolicy) + return nil +} + +func Convert_apps_StatefulSetSpec_To_v1_StatefulSetSpec(in *apps.StatefulSetSpec, out *appsv1.StatefulSetSpec, s conversion.Scope) error { + out.Replicas = new(int32) + *out.Replicas = in.Replicas + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(metav1.LabelSelector) + if err := s.Convert(*in, *out, 0); err != nil { + return err + } + } else { + out.Selector = nil + } + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if in.VolumeClaimTemplates != nil { + in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates + *out = make([]v1.PersistentVolumeClaim, len(*in)) + for i := range *in { + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.VolumeClaimTemplates = nil + } + if in.RevisionHistoryLimit != nil { + out.RevisionHistoryLimit = new(int32) + *out.RevisionHistoryLimit = *in.RevisionHistoryLimit + } else { + out.RevisionHistoryLimit = nil + } + out.ServiceName = in.ServiceName + out.PodManagementPolicy = appsv1.PodManagementPolicyType(in.PodManagementPolicy) + if err := Convert_apps_StatefulSetUpdateStrategy_To_v1_StatefulSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { + return err + } + return nil +} + +func Convert_v1_StatefulSetUpdateStrategy_To_apps_StatefulSetUpdateStrategy(in *appsv1.StatefulSetUpdateStrategy, out *apps.StatefulSetUpdateStrategy, s conversion.Scope) error { + out.Type = apps.StatefulSetUpdateStrategyType(in.Type) + if in.RollingUpdate != nil { + out.RollingUpdate = new(apps.RollingUpdateStatefulSetStrategy) + out.RollingUpdate.Partition = *in.RollingUpdate.Partition + } else { + out.RollingUpdate = nil + } + return nil +} + +func Convert_apps_StatefulSetUpdateStrategy_To_v1_StatefulSetUpdateStrategy(in *apps.StatefulSetUpdateStrategy, out *appsv1.StatefulSetUpdateStrategy, s conversion.Scope) error { + out.Type = appsv1.StatefulSetUpdateStrategyType(in.Type) + if in.RollingUpdate != nil { + out.RollingUpdate = new(appsv1.RollingUpdateStatefulSetStrategy) + out.RollingUpdate.Partition = new(int32) + *out.RollingUpdate.Partition = in.RollingUpdate.Partition + } else { + out.RollingUpdate = nil + } + return nil +} + +func Convert_v1_StatefulSetStatus_To_apps_StatefulSetStatus(in *appsv1.StatefulSetStatus, out *apps.StatefulSetStatus, s conversion.Scope) error { + out.ObservedGeneration = new(int64) + *out.ObservedGeneration = in.ObservedGeneration + out.Replicas = in.Replicas + out.ReadyReplicas = in.ReadyReplicas + out.CurrentReplicas = in.CurrentReplicas + out.UpdatedReplicas = in.UpdatedReplicas + out.CurrentRevision = in.CurrentRevision + out.UpdateRevision = in.UpdateRevision + if in.CollisionCount != nil { + out.CollisionCount = new(int32) + *out.CollisionCount = *in.CollisionCount + } + out.Conditions = make([]apps.StatefulSetCondition, len(in.Conditions)) + for i := range in.Conditions { + if err := Convert_v1_StatefulSetCondition_To_apps_StatefulSetCondition(&in.Conditions[i], &out.Conditions[i], s); err != nil { + return err + } + } + return nil +} + +func Convert_apps_StatefulSetStatus_To_v1_StatefulSetStatus(in *apps.StatefulSetStatus, out *appsv1.StatefulSetStatus, s conversion.Scope) error { + if in.ObservedGeneration != nil { + out.ObservedGeneration = *in.ObservedGeneration + } + out.Replicas = in.Replicas + out.ReadyReplicas = in.ReadyReplicas + out.CurrentReplicas = in.CurrentReplicas + out.UpdatedReplicas = in.UpdatedReplicas + out.CurrentRevision = in.CurrentRevision + out.UpdateRevision = in.UpdateRevision + if in.CollisionCount != nil { + out.CollisionCount = new(int32) + *out.CollisionCount = *in.CollisionCount + } + out.Conditions = make([]appsv1.StatefulSetCondition, len(in.Conditions)) + for i := range in.Conditions { + if err := Convert_apps_StatefulSetCondition_To_v1_StatefulSetCondition(&in.Conditions[i], &out.Conditions[i], s); err != nil { + return err + } + } + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/conversion_test.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/conversion_test.go index ae12f7442..27e78360c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/conversion_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/conversion_test.go @@ -20,13 +20,210 @@ import ( "testing" appsv1 "k8s.io/api/apps/v1" + "k8s.io/api/core/v1" + apiequality "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + "k8s.io/kubernetes/pkg/apis/apps" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" - - apiequality "k8s.io/apimachinery/pkg/api/equality" ) +func TestV12StatefulSetSpecConversion(t *testing.T) { + replicas := newInt32(2) + selector := &metav1.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}} + appsv1Template := v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: v1.PodSpec{ + RestartPolicy: v1.RestartPolicy("bar"), + SecurityContext: new(v1.PodSecurityContext), + }, + } + apiTemplate := api.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: api.PodSpec{ + RestartPolicy: api.RestartPolicy("bar"), + SecurityContext: new(api.PodSecurityContext), + }, + } + testcases := map[string]struct { + stsSpec1 *apps.StatefulSetSpec + stsSepc2 *appsv1.StatefulSetSpec + }{ + "StatefulSetSpec Conversion 1": { + stsSpec1: &apps.StatefulSetSpec{ + Replicas: *replicas, + Template: apiTemplate, + }, + stsSepc2: &appsv1.StatefulSetSpec{ + Replicas: replicas, + Template: appsv1Template, + }, + }, + "StatefulSetSpec Conversion 2": { + stsSpec1: &apps.StatefulSetSpec{ + Replicas: *replicas, + Selector: selector, + Template: apiTemplate, + ServiceName: "foo", + PodManagementPolicy: apps.PodManagementPolicyType("bar"), + }, + stsSepc2: &appsv1.StatefulSetSpec{ + Replicas: replicas, + Selector: selector, + Template: appsv1Template, + ServiceName: "foo", + PodManagementPolicy: appsv1.PodManagementPolicyType("bar"), + }, + }, + } + + for k, tc := range testcases { + // apps -> appsv1 + internal1 := &appsv1.StatefulSetSpec{} + if err := legacyscheme.Scheme.Convert(tc.stsSpec1, internal1, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "from extensions to appsv1", err) + } + + if !apiequality.Semantic.DeepEqual(internal1, tc.stsSepc2) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "from extensions to appsv1", tc.stsSepc2, internal1) + } + + // appsv1 -> apps + internal2 := &apps.StatefulSetSpec{} + if err := legacyscheme.Scheme.Convert(tc.stsSepc2, internal2, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "from appsv1 to extensions", err) + } + if !apiequality.Semantic.DeepEqual(internal2, tc.stsSpec1) { + t.Errorf("%q- %q: expected\n\t%#v, got \n\t%#v", k, "from appsv1 to extensions", tc.stsSpec1, internal2) + } + } +} + +func TestV1StatefulSetStatusConversion(t *testing.T) { + observedGeneration := new(int64) + *observedGeneration = 2 + collisionCount := new(int32) + *collisionCount = 1 + testcases := map[string]struct { + stsStatus1 *apps.StatefulSetStatus + stsStatus2 *appsv1.StatefulSetStatus + }{ + "StatefulSetStatus Conversion 1": { + stsStatus1: &apps.StatefulSetStatus{ + Replicas: int32(3), + ReadyReplicas: int32(1), + CurrentReplicas: int32(3), + UpdatedReplicas: int32(3), + CurrentRevision: "12345", + UpdateRevision: "23456", + ObservedGeneration: observedGeneration, + }, + stsStatus2: &appsv1.StatefulSetStatus{ + Replicas: int32(3), + ReadyReplicas: int32(1), + CurrentReplicas: int32(3), + UpdatedReplicas: int32(3), + CurrentRevision: "12345", + UpdateRevision: "23456", + ObservedGeneration: *observedGeneration, + }, + }, + "StatefulSetStatus Conversion 2": { + stsStatus1: &apps.StatefulSetStatus{ + ObservedGeneration: observedGeneration, + Replicas: int32(3), + ReadyReplicas: int32(1), + CurrentReplicas: int32(3), + UpdatedReplicas: int32(3), + CurrentRevision: "12345", + UpdateRevision: "23456", + CollisionCount: collisionCount, + }, + stsStatus2: &appsv1.StatefulSetStatus{ + ObservedGeneration: *observedGeneration, + Replicas: int32(3), + ReadyReplicas: int32(1), + CurrentReplicas: int32(3), + UpdatedReplicas: int32(3), + CurrentRevision: "12345", + UpdateRevision: "23456", + CollisionCount: collisionCount, + }, + }, + } + + for k, tc := range testcases { + // apps -> appsv1 + internal1 := &appsv1.StatefulSetStatus{} + if err := legacyscheme.Scheme.Convert(tc.stsStatus1, internal1, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "from apps to appsv1", err) + } + + if !apiequality.Semantic.DeepEqual(internal1, tc.stsStatus2) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "from apps to appsv1", tc.stsStatus2, internal1) + } + + // appsv1 -> apps + internal2 := &apps.StatefulSetStatus{} + if err := legacyscheme.Scheme.Convert(tc.stsStatus2, internal2, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "from appsv1 to apps", err) + } + if !apiequality.Semantic.DeepEqual(internal2, tc.stsStatus1) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "from appsv1 to apps", tc.stsStatus1, internal2) + } + } +} + +func TestV1StatefulSetUpdateStrategyConversion(t *testing.T) { + partition := newInt32(2) + appsv1rollingUpdate := new(appsv1.RollingUpdateStatefulSetStrategy) + appsv1rollingUpdate.Partition = partition + appsrollingUpdate := new(apps.RollingUpdateStatefulSetStrategy) + appsrollingUpdate.Partition = *partition + testcases := map[string]struct { + stsUpdateStrategy1 *apps.StatefulSetUpdateStrategy + stsUpdateStrategy2 *appsv1.StatefulSetUpdateStrategy + }{ + "StatefulSetUpdateStrategy Conversion 1": { + stsUpdateStrategy1: &apps.StatefulSetUpdateStrategy{Type: apps.StatefulSetUpdateStrategyType("foo")}, + stsUpdateStrategy2: &appsv1.StatefulSetUpdateStrategy{Type: appsv1.StatefulSetUpdateStrategyType("foo")}, + }, + "StatefulSetUpdateStrategy Conversion 2": { + stsUpdateStrategy1: &apps.StatefulSetUpdateStrategy{ + Type: apps.StatefulSetUpdateStrategyType("foo"), + RollingUpdate: appsrollingUpdate, + }, + stsUpdateStrategy2: &appsv1.StatefulSetUpdateStrategy{ + Type: appsv1.StatefulSetUpdateStrategyType("foo"), + RollingUpdate: appsv1rollingUpdate, + }, + }, + } + + for k, tc := range testcases { + // apps -> appsv1 + internal1 := &appsv1.StatefulSetUpdateStrategy{} + if err := legacyscheme.Scheme.Convert(tc.stsUpdateStrategy1, internal1, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", "apps -> appsv1", k, err) + } + + if !apiequality.Semantic.DeepEqual(internal1, tc.stsUpdateStrategy2) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", "apps -> appsv1", k, tc.stsUpdateStrategy2, internal1) + } + + // appsv1 -> apps + internal2 := &apps.StatefulSetUpdateStrategy{} + if err := legacyscheme.Scheme.Convert(tc.stsUpdateStrategy2, internal2, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", "appsv1 -> apps", k, err) + } + if !apiequality.Semantic.DeepEqual(internal2, tc.stsUpdateStrategy1) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", "appsv1 -> apps", k, tc.stsUpdateStrategy1, internal2) + } + } +} + func TestV1RollingUpdateDaemonSetConversion(t *testing.T) { intorstr := intstr.FromInt(1) testcases := map[string]struct { @@ -42,7 +239,7 @@ func TestV1RollingUpdateDaemonSetConversion(t *testing.T) { for k, tc := range testcases { // extensions -> v1 internal1 := &appsv1.RollingUpdateDaemonSet{} - if err := api.Scheme.Convert(tc.rollingUpdateDs1, internal1, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.rollingUpdateDs1, internal1, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from extensions to v1", err) } if !apiequality.Semantic.DeepEqual(internal1, tc.rollingUpdateDs2) { @@ -51,7 +248,7 @@ func TestV1RollingUpdateDaemonSetConversion(t *testing.T) { // v1 -> extensions internal2 := &extensions.RollingUpdateDaemonSet{} - if err := api.Scheme.Convert(tc.rollingUpdateDs2, internal2, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.rollingUpdateDs2, internal2, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from v1 to extensions", err) } if !apiequality.Semantic.DeepEqual(internal2, tc.rollingUpdateDs1) { @@ -59,3 +256,344 @@ func TestV1RollingUpdateDaemonSetConversion(t *testing.T) { } } } + +func TestV1DeploymentConversion(t *testing.T) { + replica := newInt32(2) + rollbackTo := new(extensions.RollbackConfig) + rollbackTo.Revision = int64(2) + testcases := map[string]struct { + deployment1 *extensions.Deployment + deployment2 *appsv1.Deployment + }{ + "Deployment Conversion 1": { + deployment1: &extensions.Deployment{ + Spec: extensions.DeploymentSpec{ + Replicas: *replica, + RollbackTo: rollbackTo, + Template: api.PodTemplateSpec{ + Spec: api.PodSpec{ + SecurityContext: new(api.PodSecurityContext), + }, + }, + }, + }, + deployment2: &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{appsv1.DeprecatedRollbackTo: "2"}, + }, + Spec: appsv1.DeploymentSpec{ + Replicas: replica, + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + SecurityContext: new(v1.PodSecurityContext), + }, + }, + }, + }, + }, + "Deployment Conversion 2": { + deployment1: &extensions.Deployment{ + Spec: extensions.DeploymentSpec{ + Replicas: *replica, + Template: api.PodTemplateSpec{ + Spec: api.PodSpec{ + SecurityContext: new(api.PodSecurityContext), + }, + }, + }, + }, + deployment2: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: replica, + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + SecurityContext: new(v1.PodSecurityContext), + }, + }, + }, + }, + }, + } + + for k, tc := range testcases { + // extensions -> v1beta2 + internal1 := &appsv1.Deployment{} + if err := legacyscheme.Scheme.Convert(tc.deployment1, internal1, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "from extensions to v1beta2", err) + } + if !apiequality.Semantic.DeepEqual(internal1, tc.deployment2) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "from extensions to v1beta2", tc.deployment2, internal1) + } + + // v1beta2 -> extensions + internal2 := &extensions.Deployment{} + if err := legacyscheme.Scheme.Convert(tc.deployment2, internal2, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "from v1beta2 to extensions", err) + } + if !apiequality.Semantic.DeepEqual(internal2, tc.deployment1) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "from v1beta2 to extensions", tc.deployment1, internal2) + } + } +} + +func TestV1DeploymentSpecConversion(t *testing.T) { + replica := newInt32(2) + revisionHistoryLimit := newInt32(2) + progressDeadlineSeconds := newInt32(2) + + testcases := map[string]struct { + deploymentSpec1 *extensions.DeploymentSpec + deploymentSpec2 *appsv1.DeploymentSpec + }{ + "DeploymentSpec Conversion 1": { + deploymentSpec1: &extensions.DeploymentSpec{ + Replicas: *replica, + Template: api.PodTemplateSpec{ + Spec: api.PodSpec{ + SecurityContext: new(api.PodSecurityContext), + }, + }, + }, + deploymentSpec2: &appsv1.DeploymentSpec{ + Replicas: replica, + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + SecurityContext: new(v1.PodSecurityContext), + }, + }, + }, + }, + "DeploymentSpec Conversion 2": { + deploymentSpec1: &extensions.DeploymentSpec{ + Replicas: *replica, + RevisionHistoryLimit: revisionHistoryLimit, + MinReadySeconds: 2, + Paused: true, + Template: api.PodTemplateSpec{ + Spec: api.PodSpec{ + SecurityContext: new(api.PodSecurityContext), + }, + }, + }, + deploymentSpec2: &appsv1.DeploymentSpec{ + Replicas: replica, + RevisionHistoryLimit: revisionHistoryLimit, + MinReadySeconds: 2, + Paused: true, + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + SecurityContext: new(v1.PodSecurityContext), + }, + }, + }, + }, + "DeploymentSpec Conversion 3": { + deploymentSpec1: &extensions.DeploymentSpec{ + Replicas: *replica, + ProgressDeadlineSeconds: progressDeadlineSeconds, + Template: api.PodTemplateSpec{ + Spec: api.PodSpec{ + SecurityContext: new(api.PodSecurityContext), + }, + }, + }, + deploymentSpec2: &appsv1.DeploymentSpec{ + Replicas: replica, + ProgressDeadlineSeconds: progressDeadlineSeconds, + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + SecurityContext: new(v1.PodSecurityContext), + }, + }, + }, + }, + } + + // extensions -> appsv1 + for k, tc := range testcases { + internal := &appsv1.DeploymentSpec{} + if err := legacyscheme.Scheme.Convert(tc.deploymentSpec1, internal, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", "extensions -> appsv1", k, err) + } + + if !apiequality.Semantic.DeepEqual(internal, tc.deploymentSpec2) { + t.Errorf("%q - %q: expected\n\t%+v, got \n\t%+v", "extensions -> appsv1", k, tc.deploymentSpec2, internal) + } + } + + // appsv1 -> extensions + for k, tc := range testcases { + internal := &extensions.DeploymentSpec{} + if err := legacyscheme.Scheme.Convert(tc.deploymentSpec2, internal, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", "appsv1 -> extensions", k, err) + } + if !apiequality.Semantic.DeepEqual(internal, tc.deploymentSpec1) { + t.Errorf("%q - %q: expected\n\t%+v, got \n\t%+v", "appsv1 -> extensions", k, tc.deploymentSpec1, internal) + } + } + +} + +func TestV1DeploymentStrategyConversion(t *testing.T) { + maxUnavailable := intstr.FromInt(2) + maxSurge := intstr.FromInt(2) + extensionsRollingUpdate := extensions.RollingUpdateDeployment{MaxUnavailable: maxUnavailable, MaxSurge: maxSurge} + appsv1RollingUpdate := appsv1.RollingUpdateDeployment{MaxUnavailable: &maxUnavailable, MaxSurge: &maxSurge} + testcases := map[string]struct { + deploymentStrategy1 *extensions.DeploymentStrategy + deploymentStrategy2 *appsv1.DeploymentStrategy + }{ + "DeploymentStrategy Conversion 1": { + deploymentStrategy1: &extensions.DeploymentStrategy{Type: extensions.DeploymentStrategyType("foo")}, + deploymentStrategy2: &appsv1.DeploymentStrategy{Type: appsv1.DeploymentStrategyType("foo")}, + }, + "DeploymentStrategy Conversion 2": { + deploymentStrategy1: &extensions.DeploymentStrategy{Type: extensions.DeploymentStrategyType("foo"), RollingUpdate: &extensionsRollingUpdate}, + deploymentStrategy2: &appsv1.DeploymentStrategy{Type: appsv1.DeploymentStrategyType("foo"), RollingUpdate: &appsv1RollingUpdate}, + }, + } + + for k, tc := range testcases { + // extensions -> appsv1 + internal1 := &appsv1.DeploymentStrategy{} + if err := legacyscheme.Scheme.Convert(tc.deploymentStrategy1, internal1, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "extensions -> appsv1", err) + } + if !apiequality.Semantic.DeepEqual(internal1, tc.deploymentStrategy2) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "extensions -> appsv1", tc.deploymentStrategy2, internal1) + } + + // appsv1 -> extensions + internal2 := &extensions.DeploymentStrategy{} + if err := legacyscheme.Scheme.Convert(tc.deploymentStrategy2, internal2, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "appsv1 -> extensions", err) + } + if !apiequality.Semantic.DeepEqual(internal2, tc.deploymentStrategy1) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "appsv1 -> extensions", tc.deploymentStrategy1, internal2) + } + } +} + +func TestV1RollingUpdateDeploymentConversion(t *testing.T) { + nilIntStr := intstr.IntOrString{} + maxUnavailable := intstr.FromInt(2) + maxSurge := intstr.FromInt(2) + testcases := map[string]struct { + rollingUpdateDeployment1 *extensions.RollingUpdateDeployment + rollingUpdateDeployment2 *appsv1.RollingUpdateDeployment + }{ + "RollingUpdateDeployment Conversion 1": { + rollingUpdateDeployment1: &extensions.RollingUpdateDeployment{}, + rollingUpdateDeployment2: &appsv1.RollingUpdateDeployment{MaxUnavailable: &nilIntStr, MaxSurge: &nilIntStr}, + }, + "RollingUpdateDeployment Conversion 2": { + rollingUpdateDeployment1: &extensions.RollingUpdateDeployment{MaxUnavailable: maxUnavailable}, + rollingUpdateDeployment2: &appsv1.RollingUpdateDeployment{MaxUnavailable: &maxUnavailable, MaxSurge: &nilIntStr}, + }, + "RollingUpdateDeployment Conversion 3": { + rollingUpdateDeployment1: &extensions.RollingUpdateDeployment{MaxSurge: maxSurge}, + rollingUpdateDeployment2: &appsv1.RollingUpdateDeployment{MaxSurge: &maxSurge, MaxUnavailable: &nilIntStr}, + }, + "RollingUpdateDeployment Conversion 4": { + rollingUpdateDeployment1: &extensions.RollingUpdateDeployment{MaxUnavailable: maxUnavailable, MaxSurge: maxSurge}, + rollingUpdateDeployment2: &appsv1.RollingUpdateDeployment{MaxUnavailable: &maxUnavailable, MaxSurge: &maxSurge}, + }, + } + + for k, tc := range testcases { + // extensions -> appsv1 + internal1 := &appsv1.RollingUpdateDeployment{} + if err := legacyscheme.Scheme.Convert(tc.rollingUpdateDeployment1, internal1, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "extensions -> appsv1", err) + } + if !apiequality.Semantic.DeepEqual(internal1, tc.rollingUpdateDeployment2) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "extensions -> appsv1", tc.rollingUpdateDeployment2, internal1) + } + + // appsv1 -> extensions + internal2 := &extensions.RollingUpdateDeployment{} + if err := legacyscheme.Scheme.Convert(tc.rollingUpdateDeployment2, internal2, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "appsv1 -> extensions", err) + } + if !apiequality.Semantic.DeepEqual(internal2, tc.rollingUpdateDeployment1) { + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "appsv1 -> extensions", tc.rollingUpdateDeployment1, internal2) + } + } +} + +func TestV1ReplicaSetSpecConversion(t *testing.T) { + replicas := new(int32) + *replicas = 2 + matchExpressions := []metav1.LabelSelectorRequirement{ + {Key: "foo", Operator: metav1.LabelSelectorOpIn, Values: []string{"foo"}}, + } + matchLabels := map[string]string{"foo": "bar"} + selector := &metav1.LabelSelector{MatchLabels: matchLabels, MatchExpressions: matchExpressions} + + testcases := map[string]struct { + replicaset1 *extensions.ReplicaSetSpec + replicaset2 *appsv1.ReplicaSetSpec + }{ + "ReplicaSetSpec Conversion 1": { + replicaset1: &extensions.ReplicaSetSpec{ + Replicas: *replicas, + MinReadySeconds: 2, + Template: api.PodTemplateSpec{ + Spec: api.PodSpec{ + SecurityContext: new(api.PodSecurityContext), + }, + }, + }, + replicaset2: &appsv1.ReplicaSetSpec{ + Replicas: replicas, + MinReadySeconds: 2, + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + SecurityContext: new(v1.PodSecurityContext), + }, + }, + }, + }, + "ReplicaSetSpec Conversion 2": { + replicaset1: &extensions.ReplicaSetSpec{ + Replicas: *replicas, + Selector: selector, + Template: api.PodTemplateSpec{ + Spec: api.PodSpec{ + SecurityContext: new(api.PodSecurityContext), + }, + }, + }, + replicaset2: &appsv1.ReplicaSetSpec{ + Replicas: replicas, + Selector: selector, + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + SecurityContext: new(v1.PodSecurityContext), + }, + }, + }, + }, + } + + for k, tc := range testcases { + // extensions -> appsv1 + internal1 := &appsv1.ReplicaSetSpec{} + if err := legacyscheme.Scheme.Convert(tc.replicaset1, internal1, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "extensions -> appsv1", err) + } + + if !apiequality.Semantic.DeepEqual(internal1, tc.replicaset2) { + t.Errorf("%q - %q: expected\n\t%+v, got \n\t%+v", k, "extensions -> appsv1", tc.replicaset2, internal1) + } + + // appsv1 -> extensions + internal2 := &extensions.ReplicaSetSpec{} + if err := legacyscheme.Scheme.Convert(tc.replicaset2, internal2, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "appsv1 -> extensions", err) + } + if !apiequality.Semantic.DeepEqual(internal2, tc.replicaset1) { + t.Errorf("%q - %q: expected\n\t%+v, got \n\t%+v", k, "appsv1 -> extensions", tc.replicaset1, internal2) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/defaults.go index 6803d0385..941a0c8e8 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/defaults.go @@ -26,6 +26,49 @@ func addDefaultingFuncs(scheme *runtime.Scheme) error { return RegisterDefaults(scheme) } +// SetDefaults_Deployment sets additional defaults compared to its counterpart +// in extensions. These addons are: +// - MaxUnavailable during rolling update set to 25% (1 in extensions) +// - MaxSurge value during rolling update set to 25% (1 in extensions) +// - RevisionHistoryLimit set to 10 (not set in extensions) +// - ProgressDeadlineSeconds set to 600s (not set in extensions) +func SetDefaults_Deployment(obj *appsv1.Deployment) { + // Set DeploymentSpec.Replicas to 1 if it is not set. + if obj.Spec.Replicas == nil { + obj.Spec.Replicas = new(int32) + *obj.Spec.Replicas = 1 + } + strategy := &obj.Spec.Strategy + // Set default DeploymentStrategyType as RollingUpdate. + if strategy.Type == "" { + strategy.Type = appsv1.RollingUpdateDeploymentStrategyType + } + if strategy.Type == appsv1.RollingUpdateDeploymentStrategyType { + if strategy.RollingUpdate == nil { + rollingUpdate := appsv1.RollingUpdateDeployment{} + strategy.RollingUpdate = &rollingUpdate + } + if strategy.RollingUpdate.MaxUnavailable == nil { + // Set default MaxUnavailable as 25% by default. + maxUnavailable := intstr.FromString("25%") + strategy.RollingUpdate.MaxUnavailable = &maxUnavailable + } + if strategy.RollingUpdate.MaxSurge == nil { + // Set default MaxSurge as 25% by default. + maxSurge := intstr.FromString("25%") + strategy.RollingUpdate.MaxSurge = &maxSurge + } + } + if obj.Spec.RevisionHistoryLimit == nil { + obj.Spec.RevisionHistoryLimit = new(int32) + *obj.Spec.RevisionHistoryLimit = 10 + } + if obj.Spec.ProgressDeadlineSeconds == nil { + obj.Spec.ProgressDeadlineSeconds = new(int32) + *obj.Spec.ProgressDeadlineSeconds = 600 + } +} + func SetDefaults_DaemonSet(obj *appsv1.DaemonSet) { updateStrategy := &obj.Spec.UpdateStrategy if updateStrategy.Type == "" { @@ -47,3 +90,38 @@ func SetDefaults_DaemonSet(obj *appsv1.DaemonSet) { *obj.Spec.RevisionHistoryLimit = 10 } } + +func SetDefaults_StatefulSet(obj *appsv1.StatefulSet) { + if len(obj.Spec.PodManagementPolicy) == 0 { + obj.Spec.PodManagementPolicy = appsv1.OrderedReadyPodManagement + } + + if obj.Spec.UpdateStrategy.Type == "" { + obj.Spec.UpdateStrategy.Type = appsv1.RollingUpdateStatefulSetStrategyType + + // UpdateStrategy.RollingUpdate will take default values below. + obj.Spec.UpdateStrategy.RollingUpdate = &appsv1.RollingUpdateStatefulSetStrategy{} + } + + if obj.Spec.UpdateStrategy.Type == appsv1.RollingUpdateStatefulSetStrategyType && + obj.Spec.UpdateStrategy.RollingUpdate != nil && + obj.Spec.UpdateStrategy.RollingUpdate.Partition == nil { + obj.Spec.UpdateStrategy.RollingUpdate.Partition = new(int32) + *obj.Spec.UpdateStrategy.RollingUpdate.Partition = 0 + } + + if obj.Spec.Replicas == nil { + obj.Spec.Replicas = new(int32) + *obj.Spec.Replicas = 1 + } + if obj.Spec.RevisionHistoryLimit == nil { + obj.Spec.RevisionHistoryLimit = new(int32) + *obj.Spec.RevisionHistoryLimit = 10 + } +} +func SetDefaults_ReplicaSet(obj *appsv1.ReplicaSet) { + if obj.Spec.Replicas == nil { + obj.Spec.Replicas = new(int32) + *obj.Spec.Replicas = 1 + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/defaults_test.go index 9da68b4f8..8050ea4ed 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/defaults_test.go @@ -23,13 +23,15 @@ import ( appsv1 "k8s.io/api/apps/v1" "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/apps/install" . "k8s.io/kubernetes/pkg/apis/apps/v1" + api "k8s.io/kubernetes/pkg/apis/core" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestSetDefaultDaemonSetSpec(t *testing.T) { @@ -166,19 +168,395 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) { } } +func TestSetDefaultStatefulSet(t *testing.T) { + defaultLabels := map[string]string{"foo": "bar"} + var defaultPartition int32 = 0 + var defaultReplicas int32 = 1 + + period := int64(v1.DefaultTerminationGracePeriodSeconds) + defaultTemplate := v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + DNSPolicy: v1.DNSClusterFirst, + RestartPolicy: v1.RestartPolicyAlways, + SecurityContext: &v1.PodSecurityContext{}, + TerminationGracePeriodSeconds: &period, + SchedulerName: api.DefaultSchedulerName, + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: defaultLabels, + }, + } + + tests := []struct { + original *appsv1.StatefulSet + expected *appsv1.StatefulSet + }{ + { // labels and default update strategy + original: &appsv1.StatefulSet{ + Spec: appsv1.StatefulSetSpec{ + Template: defaultTemplate, + }, + }, + expected: &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{ + Labels: defaultLabels, + }, + Spec: appsv1.StatefulSetSpec{ + Replicas: &defaultReplicas, + Template: defaultTemplate, + PodManagementPolicy: appsv1.OrderedReadyPodManagement, + UpdateStrategy: appsv1.StatefulSetUpdateStrategy{ + Type: appsv1.RollingUpdateStatefulSetStrategyType, + RollingUpdate: &appsv1.RollingUpdateStatefulSetStrategy{ + Partition: &defaultPartition, + }, + }, + RevisionHistoryLimit: newInt32(10), + }, + }, + }, + { // Alternate update strategy + original: &appsv1.StatefulSet{ + Spec: appsv1.StatefulSetSpec{ + Template: defaultTemplate, + UpdateStrategy: appsv1.StatefulSetUpdateStrategy{ + Type: appsv1.OnDeleteStatefulSetStrategyType, + }, + }, + }, + expected: &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{ + Labels: defaultLabels, + }, + Spec: appsv1.StatefulSetSpec{ + Replicas: &defaultReplicas, + Template: defaultTemplate, + PodManagementPolicy: appsv1.OrderedReadyPodManagement, + UpdateStrategy: appsv1.StatefulSetUpdateStrategy{ + Type: appsv1.OnDeleteStatefulSetStrategyType, + }, + RevisionHistoryLimit: newInt32(10), + }, + }, + }, + { // Parallel pod management policy. + original: &appsv1.StatefulSet{ + Spec: appsv1.StatefulSetSpec{ + Template: defaultTemplate, + PodManagementPolicy: appsv1.ParallelPodManagement, + }, + }, + expected: &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{ + Labels: defaultLabels, + }, + Spec: appsv1.StatefulSetSpec{ + Replicas: &defaultReplicas, + Template: defaultTemplate, + PodManagementPolicy: appsv1.ParallelPodManagement, + UpdateStrategy: appsv1.StatefulSetUpdateStrategy{ + Type: appsv1.RollingUpdateStatefulSetStrategyType, + RollingUpdate: &appsv1.RollingUpdateStatefulSetStrategy{ + Partition: &defaultPartition, + }, + }, + RevisionHistoryLimit: newInt32(10), + }, + }, + }, + } + + for i, test := range tests { + original := test.original + expected := test.expected + obj2 := roundTrip(t, runtime.Object(original)) + got, ok := obj2.(*appsv1.StatefulSet) + if !ok { + t.Errorf("(%d) unexpected object: %v", i, got) + t.FailNow() + } + if !apiequality.Semantic.DeepEqual(got.Spec, expected.Spec) { + t.Errorf("(%d) got different than expected\ngot:\n\t%+v\nexpected:\n\t%+v", i, got.Spec, expected.Spec) + } + } +} + +func TestSetDefaultDeployment(t *testing.T) { + defaultIntOrString := intstr.FromString("25%") + differentIntOrString := intstr.FromInt(5) + period := int64(v1.DefaultTerminationGracePeriodSeconds) + defaultTemplate := v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + DNSPolicy: v1.DNSClusterFirst, + RestartPolicy: v1.RestartPolicyAlways, + SecurityContext: &v1.PodSecurityContext{}, + TerminationGracePeriodSeconds: &period, + SchedulerName: api.DefaultSchedulerName, + }, + } + tests := []struct { + original *appsv1.Deployment + expected *appsv1.Deployment + }{ + { + original: &appsv1.Deployment{}, + expected: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: newInt32(1), + Strategy: appsv1.DeploymentStrategy{ + Type: appsv1.RollingUpdateDeploymentStrategyType, + RollingUpdate: &appsv1.RollingUpdateDeployment{ + MaxSurge: &defaultIntOrString, + MaxUnavailable: &defaultIntOrString, + }, + }, + RevisionHistoryLimit: newInt32(10), + ProgressDeadlineSeconds: newInt32(600), + Template: defaultTemplate, + }, + }, + }, + { + original: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: newInt32(5), + Strategy: appsv1.DeploymentStrategy{ + RollingUpdate: &appsv1.RollingUpdateDeployment{ + MaxSurge: &differentIntOrString, + }, + }, + }, + }, + expected: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: newInt32(5), + Strategy: appsv1.DeploymentStrategy{ + Type: appsv1.RollingUpdateDeploymentStrategyType, + RollingUpdate: &appsv1.RollingUpdateDeployment{ + MaxSurge: &differentIntOrString, + MaxUnavailable: &defaultIntOrString, + }, + }, + RevisionHistoryLimit: newInt32(10), + ProgressDeadlineSeconds: newInt32(600), + Template: defaultTemplate, + }, + }, + }, + { + original: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: newInt32(3), + Strategy: appsv1.DeploymentStrategy{ + Type: appsv1.RollingUpdateDeploymentStrategyType, + RollingUpdate: nil, + }, + }, + }, + expected: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: newInt32(3), + Strategy: appsv1.DeploymentStrategy{ + Type: appsv1.RollingUpdateDeploymentStrategyType, + RollingUpdate: &appsv1.RollingUpdateDeployment{ + MaxSurge: &defaultIntOrString, + MaxUnavailable: &defaultIntOrString, + }, + }, + RevisionHistoryLimit: newInt32(10), + ProgressDeadlineSeconds: newInt32(600), + Template: defaultTemplate, + }, + }, + }, + { + original: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: newInt32(5), + Strategy: appsv1.DeploymentStrategy{ + Type: appsv1.RecreateDeploymentStrategyType, + }, + RevisionHistoryLimit: newInt32(0), + }, + }, + expected: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: newInt32(5), + Strategy: appsv1.DeploymentStrategy{ + Type: appsv1.RecreateDeploymentStrategyType, + }, + RevisionHistoryLimit: newInt32(0), + ProgressDeadlineSeconds: newInt32(600), + Template: defaultTemplate, + }, + }, + }, + { + original: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: newInt32(5), + Strategy: appsv1.DeploymentStrategy{ + Type: appsv1.RecreateDeploymentStrategyType, + }, + ProgressDeadlineSeconds: newInt32(30), + RevisionHistoryLimit: newInt32(2), + }, + }, + expected: &appsv1.Deployment{ + Spec: appsv1.DeploymentSpec{ + Replicas: newInt32(5), + Strategy: appsv1.DeploymentStrategy{ + Type: appsv1.RecreateDeploymentStrategyType, + }, + ProgressDeadlineSeconds: newInt32(30), + RevisionHistoryLimit: newInt32(2), + Template: defaultTemplate, + }, + }, + }, + } + + for _, test := range tests { + original := test.original + expected := test.expected + obj2 := roundTrip(t, runtime.Object(original)) + got, ok := obj2.(*appsv1.Deployment) + if !ok { + t.Errorf("unexpected object: %v", got) + t.FailNow() + } + if !apiequality.Semantic.DeepEqual(got.Spec, expected.Spec) { + t.Errorf("object mismatch!\nexpected:\n\t%+v\ngot:\n\t%+v", got.Spec, expected.Spec) + } + } +} + +func TestDefaultDeploymentAvailability(t *testing.T) { + d := roundTrip(t, runtime.Object(&appsv1.Deployment{})).(*appsv1.Deployment) + + maxUnavailable, err := intstr.GetValueFromIntOrPercent(d.Spec.Strategy.RollingUpdate.MaxUnavailable, int(*(d.Spec.Replicas)), false) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + if *(d.Spec.Replicas)-int32(maxUnavailable) <= 0 { + t.Fatalf("the default value of maxUnavailable can lead to no active replicas during rolling update") + } +} + +func TestSetDefaultReplicaSetReplicas(t *testing.T) { + tests := []struct { + rs appsv1.ReplicaSet + expectReplicas int32 + }{ + { + rs: appsv1.ReplicaSet{ + Spec: appsv1.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "foo": "bar", + }, + }, + }, + }, + }, + expectReplicas: 1, + }, + { + rs: appsv1.ReplicaSet{ + Spec: appsv1.ReplicaSetSpec{ + Replicas: newInt32(0), + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "foo": "bar", + }, + }, + }, + }, + }, + expectReplicas: 0, + }, + { + rs: appsv1.ReplicaSet{ + Spec: appsv1.ReplicaSetSpec{ + Replicas: newInt32(3), + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "foo": "bar", + }, + }, + }, + }, + }, + expectReplicas: 3, + }, + } + + for _, test := range tests { + rs := &test.rs + obj2 := roundTrip(t, runtime.Object(rs)) + rs2, ok := obj2.(*appsv1.ReplicaSet) + if !ok { + t.Errorf("unexpected object: %v", rs2) + t.FailNow() + } + if rs2.Spec.Replicas == nil { + t.Errorf("unexpected nil Replicas") + } else if test.expectReplicas != *rs2.Spec.Replicas { + t.Errorf("expected: %d replicas, got: %d", test.expectReplicas, *rs2.Spec.Replicas) + } + } +} + +func TestDefaultRequestIsNotSetForReplicaSet(t *testing.T) { + s := v1.PodSpec{} + s.Containers = []v1.Container{ + { + Resources: v1.ResourceRequirements{ + Limits: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("100m"), + }, + }, + }, + } + rs := &appsv1.ReplicaSet{ + Spec: appsv1.ReplicaSetSpec{ + Replicas: newInt32(3), + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "foo": "bar", + }, + }, + Spec: s, + }, + }, + } + output := roundTrip(t, runtime.Object(rs)) + rs2 := output.(*appsv1.ReplicaSet) + defaultRequest := rs2.Spec.Template.Spec.Containers[0].Resources.Requests + requestValue := defaultRequest[v1.ResourceCPU] + if requestValue.String() != "0" { + t.Errorf("Expected 0 request value, got: %s", requestValue.String()) + } +} + func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/zz_generated.conversion.go index a93ad57d0..e7503b947 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/zz_generated.conversion.go @@ -22,10 +22,13 @@ package v1 import ( v1 "k8s.io/api/apps/v1" + core_v1 "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api_v1 "k8s.io/kubernetes/pkg/api/v1" + apps "k8s.io/kubernetes/pkg/apis/apps" + core "k8s.io/kubernetes/pkg/apis/core" + apis_core_v1 "k8s.io/kubernetes/pkg/apis/core/v1" extensions "k8s.io/kubernetes/pkg/apis/extensions" unsafe "unsafe" ) @@ -38,8 +41,14 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( + Convert_v1_ControllerRevision_To_apps_ControllerRevision, + Convert_apps_ControllerRevision_To_v1_ControllerRevision, + Convert_v1_ControllerRevisionList_To_apps_ControllerRevisionList, + Convert_apps_ControllerRevisionList_To_v1_ControllerRevisionList, Convert_v1_DaemonSet_To_extensions_DaemonSet, Convert_extensions_DaemonSet_To_v1_DaemonSet, + Convert_v1_DaemonSetCondition_To_extensions_DaemonSetCondition, + Convert_extensions_DaemonSetCondition_To_v1_DaemonSetCondition, Convert_v1_DaemonSetList_To_extensions_DaemonSetList, Convert_extensions_DaemonSetList_To_v1_DaemonSetList, Convert_v1_DaemonSetSpec_To_extensions_DaemonSetSpec, @@ -48,11 +57,119 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_extensions_DaemonSetStatus_To_v1_DaemonSetStatus, Convert_v1_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy, Convert_extensions_DaemonSetUpdateStrategy_To_v1_DaemonSetUpdateStrategy, + Convert_v1_Deployment_To_extensions_Deployment, + Convert_extensions_Deployment_To_v1_Deployment, + Convert_v1_DeploymentCondition_To_extensions_DeploymentCondition, + Convert_extensions_DeploymentCondition_To_v1_DeploymentCondition, + Convert_v1_DeploymentList_To_extensions_DeploymentList, + Convert_extensions_DeploymentList_To_v1_DeploymentList, + Convert_v1_DeploymentSpec_To_extensions_DeploymentSpec, + Convert_extensions_DeploymentSpec_To_v1_DeploymentSpec, + Convert_v1_DeploymentStatus_To_extensions_DeploymentStatus, + Convert_extensions_DeploymentStatus_To_v1_DeploymentStatus, + Convert_v1_DeploymentStrategy_To_extensions_DeploymentStrategy, + Convert_extensions_DeploymentStrategy_To_v1_DeploymentStrategy, + Convert_v1_ReplicaSet_To_extensions_ReplicaSet, + Convert_extensions_ReplicaSet_To_v1_ReplicaSet, + Convert_v1_ReplicaSetCondition_To_extensions_ReplicaSetCondition, + Convert_extensions_ReplicaSetCondition_To_v1_ReplicaSetCondition, + Convert_v1_ReplicaSetList_To_extensions_ReplicaSetList, + Convert_extensions_ReplicaSetList_To_v1_ReplicaSetList, + Convert_v1_ReplicaSetSpec_To_extensions_ReplicaSetSpec, + Convert_extensions_ReplicaSetSpec_To_v1_ReplicaSetSpec, + Convert_v1_ReplicaSetStatus_To_extensions_ReplicaSetStatus, + Convert_extensions_ReplicaSetStatus_To_v1_ReplicaSetStatus, Convert_v1_RollingUpdateDaemonSet_To_extensions_RollingUpdateDaemonSet, Convert_extensions_RollingUpdateDaemonSet_To_v1_RollingUpdateDaemonSet, + Convert_v1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment, + Convert_extensions_RollingUpdateDeployment_To_v1_RollingUpdateDeployment, + Convert_v1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy, + Convert_apps_RollingUpdateStatefulSetStrategy_To_v1_RollingUpdateStatefulSetStrategy, + Convert_v1_StatefulSet_To_apps_StatefulSet, + Convert_apps_StatefulSet_To_v1_StatefulSet, + Convert_v1_StatefulSetCondition_To_apps_StatefulSetCondition, + Convert_apps_StatefulSetCondition_To_v1_StatefulSetCondition, + Convert_v1_StatefulSetList_To_apps_StatefulSetList, + Convert_apps_StatefulSetList_To_v1_StatefulSetList, + Convert_v1_StatefulSetSpec_To_apps_StatefulSetSpec, + Convert_apps_StatefulSetSpec_To_v1_StatefulSetSpec, + Convert_v1_StatefulSetStatus_To_apps_StatefulSetStatus, + Convert_apps_StatefulSetStatus_To_v1_StatefulSetStatus, + Convert_v1_StatefulSetUpdateStrategy_To_apps_StatefulSetUpdateStrategy, + Convert_apps_StatefulSetUpdateStrategy_To_v1_StatefulSetUpdateStrategy, ) } +func autoConvert_v1_ControllerRevision_To_apps_ControllerRevision(in *v1.ControllerRevision, out *apps.ControllerRevision, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Data, &out.Data, s); err != nil { + return err + } + out.Revision = in.Revision + return nil +} + +// Convert_v1_ControllerRevision_To_apps_ControllerRevision is an autogenerated conversion function. +func Convert_v1_ControllerRevision_To_apps_ControllerRevision(in *v1.ControllerRevision, out *apps.ControllerRevision, s conversion.Scope) error { + return autoConvert_v1_ControllerRevision_To_apps_ControllerRevision(in, out, s) +} + +func autoConvert_apps_ControllerRevision_To_v1_ControllerRevision(in *apps.ControllerRevision, out *v1.ControllerRevision, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Data, &out.Data, s); err != nil { + return err + } + out.Revision = in.Revision + return nil +} + +// Convert_apps_ControllerRevision_To_v1_ControllerRevision is an autogenerated conversion function. +func Convert_apps_ControllerRevision_To_v1_ControllerRevision(in *apps.ControllerRevision, out *v1.ControllerRevision, s conversion.Scope) error { + return autoConvert_apps_ControllerRevision_To_v1_ControllerRevision(in, out, s) +} + +func autoConvert_v1_ControllerRevisionList_To_apps_ControllerRevisionList(in *v1.ControllerRevisionList, out *apps.ControllerRevisionList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]apps.ControllerRevision, len(*in)) + for i := range *in { + if err := Convert_v1_ControllerRevision_To_apps_ControllerRevision(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_ControllerRevisionList_To_apps_ControllerRevisionList is an autogenerated conversion function. +func Convert_v1_ControllerRevisionList_To_apps_ControllerRevisionList(in *v1.ControllerRevisionList, out *apps.ControllerRevisionList, s conversion.Scope) error { + return autoConvert_v1_ControllerRevisionList_To_apps_ControllerRevisionList(in, out, s) +} + +func autoConvert_apps_ControllerRevisionList_To_v1_ControllerRevisionList(in *apps.ControllerRevisionList, out *v1.ControllerRevisionList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.ControllerRevision, len(*in)) + for i := range *in { + if err := Convert_apps_ControllerRevision_To_v1_ControllerRevision(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_apps_ControllerRevisionList_To_v1_ControllerRevisionList is an autogenerated conversion function. +func Convert_apps_ControllerRevisionList_To_v1_ControllerRevisionList(in *apps.ControllerRevisionList, out *v1.ControllerRevisionList, s conversion.Scope) error { + return autoConvert_apps_ControllerRevisionList_To_v1_ControllerRevisionList(in, out, s) +} + func autoConvert_v1_DaemonSet_To_extensions_DaemonSet(in *v1.DaemonSet, out *extensions.DaemonSet, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta if err := Convert_v1_DaemonSetSpec_To_extensions_DaemonSetSpec(&in.Spec, &out.Spec, s); err != nil { @@ -75,6 +192,34 @@ func autoConvert_extensions_DaemonSet_To_v1_DaemonSet(in *extensions.DaemonSet, return nil } +func autoConvert_v1_DaemonSetCondition_To_extensions_DaemonSetCondition(in *v1.DaemonSetCondition, out *extensions.DaemonSetCondition, s conversion.Scope) error { + out.Type = extensions.DaemonSetConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_DaemonSetCondition_To_extensions_DaemonSetCondition is an autogenerated conversion function. +func Convert_v1_DaemonSetCondition_To_extensions_DaemonSetCondition(in *v1.DaemonSetCondition, out *extensions.DaemonSetCondition, s conversion.Scope) error { + return autoConvert_v1_DaemonSetCondition_To_extensions_DaemonSetCondition(in, out, s) +} + +func autoConvert_extensions_DaemonSetCondition_To_v1_DaemonSetCondition(in *extensions.DaemonSetCondition, out *v1.DaemonSetCondition, s conversion.Scope) error { + out.Type = v1.DaemonSetConditionType(in.Type) + out.Status = core_v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_extensions_DaemonSetCondition_To_v1_DaemonSetCondition is an autogenerated conversion function. +func Convert_extensions_DaemonSetCondition_To_v1_DaemonSetCondition(in *extensions.DaemonSetCondition, out *v1.DaemonSetCondition, s conversion.Scope) error { + return autoConvert_extensions_DaemonSetCondition_To_v1_DaemonSetCondition(in, out, s) +} + func autoConvert_v1_DaemonSetList_To_extensions_DaemonSetList(in *v1.DaemonSetList, out *extensions.DaemonSetList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items != nil { @@ -119,7 +264,7 @@ func Convert_extensions_DaemonSetList_To_v1_DaemonSetList(in *extensions.DaemonS func autoConvert_v1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *v1.DaemonSetSpec, out *extensions.DaemonSetSpec, s conversion.Scope) error { out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := apis_core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -132,7 +277,7 @@ func autoConvert_v1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *v1.DaemonSetSp func autoConvert_extensions_DaemonSetSpec_To_v1_DaemonSetSpec(in *extensions.DaemonSetSpec, out *v1.DaemonSetSpec, s conversion.Scope) error { out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := apis_core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DaemonSetUpdateStrategy_To_v1_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -154,6 +299,7 @@ func autoConvert_v1_DaemonSetStatus_To_extensions_DaemonSetStatus(in *v1.DaemonS out.NumberAvailable = in.NumberAvailable out.NumberUnavailable = in.NumberUnavailable out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]extensions.DaemonSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } @@ -172,6 +318,7 @@ func autoConvert_extensions_DaemonSetStatus_To_v1_DaemonSetStatus(in *extensions out.NumberAvailable = in.NumberAvailable out.NumberUnavailable = in.NumberUnavailable out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]v1.DaemonSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } @@ -208,6 +355,355 @@ func autoConvert_extensions_DaemonSetUpdateStrategy_To_v1_DaemonSetUpdateStrateg return nil } +func autoConvert_v1_Deployment_To_extensions_Deployment(in *v1.Deployment, out *extensions.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_DeploymentSpec_To_extensions_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_DeploymentStatus_To_extensions_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +func autoConvert_extensions_Deployment_To_v1_Deployment(in *extensions.Deployment, out *v1.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_DeploymentSpec_To_v1_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_extensions_DeploymentStatus_To_v1_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +func autoConvert_v1_DeploymentCondition_To_extensions_DeploymentCondition(in *v1.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { + out.Type = extensions.DeploymentConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastUpdateTime = in.LastUpdateTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_DeploymentCondition_To_extensions_DeploymentCondition is an autogenerated conversion function. +func Convert_v1_DeploymentCondition_To_extensions_DeploymentCondition(in *v1.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { + return autoConvert_v1_DeploymentCondition_To_extensions_DeploymentCondition(in, out, s) +} + +func autoConvert_extensions_DeploymentCondition_To_v1_DeploymentCondition(in *extensions.DeploymentCondition, out *v1.DeploymentCondition, s conversion.Scope) error { + out.Type = v1.DeploymentConditionType(in.Type) + out.Status = core_v1.ConditionStatus(in.Status) + out.LastUpdateTime = in.LastUpdateTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_extensions_DeploymentCondition_To_v1_DeploymentCondition is an autogenerated conversion function. +func Convert_extensions_DeploymentCondition_To_v1_DeploymentCondition(in *extensions.DeploymentCondition, out *v1.DeploymentCondition, s conversion.Scope) error { + return autoConvert_extensions_DeploymentCondition_To_v1_DeploymentCondition(in, out, s) +} + +func autoConvert_v1_DeploymentList_To_extensions_DeploymentList(in *v1.DeploymentList, out *extensions.DeploymentList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]extensions.Deployment, len(*in)) + for i := range *in { + if err := Convert_v1_Deployment_To_extensions_Deployment(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_DeploymentList_To_extensions_DeploymentList is an autogenerated conversion function. +func Convert_v1_DeploymentList_To_extensions_DeploymentList(in *v1.DeploymentList, out *extensions.DeploymentList, s conversion.Scope) error { + return autoConvert_v1_DeploymentList_To_extensions_DeploymentList(in, out, s) +} + +func autoConvert_extensions_DeploymentList_To_v1_DeploymentList(in *extensions.DeploymentList, out *v1.DeploymentList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.Deployment, len(*in)) + for i := range *in { + if err := Convert_extensions_Deployment_To_v1_Deployment(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_extensions_DeploymentList_To_v1_DeploymentList is an autogenerated conversion function. +func Convert_extensions_DeploymentList_To_v1_DeploymentList(in *extensions.DeploymentList, out *v1.DeploymentList, s conversion.Scope) error { + return autoConvert_extensions_DeploymentList_To_v1_DeploymentList(in, out, s) +} + +func autoConvert_v1_DeploymentSpec_To_extensions_DeploymentSpec(in *v1.DeploymentSpec, out *extensions.DeploymentSpec, s conversion.Scope) error { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := apis_core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_v1_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + out.Paused = in.Paused + out.ProgressDeadlineSeconds = (*int32)(unsafe.Pointer(in.ProgressDeadlineSeconds)) + return nil +} + +func autoConvert_extensions_DeploymentSpec_To_v1_DeploymentSpec(in *extensions.DeploymentSpec, out *v1.DeploymentSpec, s conversion.Scope) error { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := apis_core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_extensions_DeploymentStrategy_To_v1_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + out.Paused = in.Paused + // WARNING: in.RollbackTo requires manual conversion: does not exist in peer-type + out.ProgressDeadlineSeconds = (*int32)(unsafe.Pointer(in.ProgressDeadlineSeconds)) + return nil +} + +func autoConvert_v1_DeploymentStatus_To_extensions_DeploymentStatus(in *v1.DeploymentStatus, out *extensions.DeploymentStatus, s conversion.Scope) error { + out.ObservedGeneration = in.ObservedGeneration + out.Replicas = in.Replicas + out.UpdatedReplicas = in.UpdatedReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.UnavailableReplicas = in.UnavailableReplicas + out.Conditions = *(*[]extensions.DeploymentCondition)(unsafe.Pointer(&in.Conditions)) + out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + return nil +} + +// Convert_v1_DeploymentStatus_To_extensions_DeploymentStatus is an autogenerated conversion function. +func Convert_v1_DeploymentStatus_To_extensions_DeploymentStatus(in *v1.DeploymentStatus, out *extensions.DeploymentStatus, s conversion.Scope) error { + return autoConvert_v1_DeploymentStatus_To_extensions_DeploymentStatus(in, out, s) +} + +func autoConvert_extensions_DeploymentStatus_To_v1_DeploymentStatus(in *extensions.DeploymentStatus, out *v1.DeploymentStatus, s conversion.Scope) error { + out.ObservedGeneration = in.ObservedGeneration + out.Replicas = in.Replicas + out.UpdatedReplicas = in.UpdatedReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.UnavailableReplicas = in.UnavailableReplicas + out.Conditions = *(*[]v1.DeploymentCondition)(unsafe.Pointer(&in.Conditions)) + out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + return nil +} + +// Convert_extensions_DeploymentStatus_To_v1_DeploymentStatus is an autogenerated conversion function. +func Convert_extensions_DeploymentStatus_To_v1_DeploymentStatus(in *extensions.DeploymentStatus, out *v1.DeploymentStatus, s conversion.Scope) error { + return autoConvert_extensions_DeploymentStatus_To_v1_DeploymentStatus(in, out, s) +} + +func autoConvert_v1_DeploymentStrategy_To_extensions_DeploymentStrategy(in *v1.DeploymentStrategy, out *extensions.DeploymentStrategy, s conversion.Scope) error { + out.Type = extensions.DeploymentStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(extensions.RollingUpdateDeployment) + if err := Convert_v1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_extensions_DeploymentStrategy_To_v1_DeploymentStrategy(in *extensions.DeploymentStrategy, out *v1.DeploymentStrategy, s conversion.Scope) error { + out.Type = v1.DeploymentStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(v1.RollingUpdateDeployment) + if err := Convert_extensions_RollingUpdateDeployment_To_v1_RollingUpdateDeployment(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_v1_ReplicaSet_To_extensions_ReplicaSet(in *v1.ReplicaSet, out *extensions.ReplicaSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_ReplicaSetStatus_To_extensions_ReplicaSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_ReplicaSet_To_extensions_ReplicaSet is an autogenerated conversion function. +func Convert_v1_ReplicaSet_To_extensions_ReplicaSet(in *v1.ReplicaSet, out *extensions.ReplicaSet, s conversion.Scope) error { + return autoConvert_v1_ReplicaSet_To_extensions_ReplicaSet(in, out, s) +} + +func autoConvert_extensions_ReplicaSet_To_v1_ReplicaSet(in *extensions.ReplicaSet, out *v1.ReplicaSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_ReplicaSetSpec_To_v1_ReplicaSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_extensions_ReplicaSetStatus_To_v1_ReplicaSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_extensions_ReplicaSet_To_v1_ReplicaSet is an autogenerated conversion function. +func Convert_extensions_ReplicaSet_To_v1_ReplicaSet(in *extensions.ReplicaSet, out *v1.ReplicaSet, s conversion.Scope) error { + return autoConvert_extensions_ReplicaSet_To_v1_ReplicaSet(in, out, s) +} + +func autoConvert_v1_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in *v1.ReplicaSetCondition, out *extensions.ReplicaSetCondition, s conversion.Scope) error { + out.Type = extensions.ReplicaSetConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_ReplicaSetCondition_To_extensions_ReplicaSetCondition is an autogenerated conversion function. +func Convert_v1_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in *v1.ReplicaSetCondition, out *extensions.ReplicaSetCondition, s conversion.Scope) error { + return autoConvert_v1_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in, out, s) +} + +func autoConvert_extensions_ReplicaSetCondition_To_v1_ReplicaSetCondition(in *extensions.ReplicaSetCondition, out *v1.ReplicaSetCondition, s conversion.Scope) error { + out.Type = v1.ReplicaSetConditionType(in.Type) + out.Status = core_v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_extensions_ReplicaSetCondition_To_v1_ReplicaSetCondition is an autogenerated conversion function. +func Convert_extensions_ReplicaSetCondition_To_v1_ReplicaSetCondition(in *extensions.ReplicaSetCondition, out *v1.ReplicaSetCondition, s conversion.Scope) error { + return autoConvert_extensions_ReplicaSetCondition_To_v1_ReplicaSetCondition(in, out, s) +} + +func autoConvert_v1_ReplicaSetList_To_extensions_ReplicaSetList(in *v1.ReplicaSetList, out *extensions.ReplicaSetList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]extensions.ReplicaSet, len(*in)) + for i := range *in { + if err := Convert_v1_ReplicaSet_To_extensions_ReplicaSet(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_ReplicaSetList_To_extensions_ReplicaSetList is an autogenerated conversion function. +func Convert_v1_ReplicaSetList_To_extensions_ReplicaSetList(in *v1.ReplicaSetList, out *extensions.ReplicaSetList, s conversion.Scope) error { + return autoConvert_v1_ReplicaSetList_To_extensions_ReplicaSetList(in, out, s) +} + +func autoConvert_extensions_ReplicaSetList_To_v1_ReplicaSetList(in *extensions.ReplicaSetList, out *v1.ReplicaSetList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.ReplicaSet, len(*in)) + for i := range *in { + if err := Convert_extensions_ReplicaSet_To_v1_ReplicaSet(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_extensions_ReplicaSetList_To_v1_ReplicaSetList is an autogenerated conversion function. +func Convert_extensions_ReplicaSetList_To_v1_ReplicaSetList(in *extensions.ReplicaSetList, out *v1.ReplicaSetList, s conversion.Scope) error { + return autoConvert_extensions_ReplicaSetList_To_v1_ReplicaSetList(in, out, s) +} + +func autoConvert_v1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *v1.ReplicaSetSpec, out *extensions.ReplicaSetSpec, s conversion.Scope) error { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := apis_core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +func autoConvert_extensions_ReplicaSetSpec_To_v1_ReplicaSetSpec(in *extensions.ReplicaSetSpec, out *v1.ReplicaSetSpec, s conversion.Scope) error { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := apis_core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +func autoConvert_v1_ReplicaSetStatus_To_extensions_ReplicaSetStatus(in *v1.ReplicaSetStatus, out *extensions.ReplicaSetStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.FullyLabeledReplicas = in.FullyLabeledReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.ObservedGeneration = in.ObservedGeneration + out.Conditions = *(*[]extensions.ReplicaSetCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_v1_ReplicaSetStatus_To_extensions_ReplicaSetStatus is an autogenerated conversion function. +func Convert_v1_ReplicaSetStatus_To_extensions_ReplicaSetStatus(in *v1.ReplicaSetStatus, out *extensions.ReplicaSetStatus, s conversion.Scope) error { + return autoConvert_v1_ReplicaSetStatus_To_extensions_ReplicaSetStatus(in, out, s) +} + +func autoConvert_extensions_ReplicaSetStatus_To_v1_ReplicaSetStatus(in *extensions.ReplicaSetStatus, out *v1.ReplicaSetStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.FullyLabeledReplicas = in.FullyLabeledReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.ObservedGeneration = in.ObservedGeneration + out.Conditions = *(*[]v1.ReplicaSetCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_extensions_ReplicaSetStatus_To_v1_ReplicaSetStatus is an autogenerated conversion function. +func Convert_extensions_ReplicaSetStatus_To_v1_ReplicaSetStatus(in *extensions.ReplicaSetStatus, out *v1.ReplicaSetStatus, s conversion.Scope) error { + return autoConvert_extensions_ReplicaSetStatus_To_v1_ReplicaSetStatus(in, out, s) +} + func autoConvert_v1_RollingUpdateDaemonSet_To_extensions_RollingUpdateDaemonSet(in *v1.RollingUpdateDaemonSet, out *extensions.RollingUpdateDaemonSet, s conversion.Scope) error { // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/util/intstr.IntOrString vs k8s.io/apimachinery/pkg/util/intstr.IntOrString) return nil @@ -217,3 +713,231 @@ func autoConvert_extensions_RollingUpdateDaemonSet_To_v1_RollingUpdateDaemonSet( // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/util/intstr.IntOrString vs *k8s.io/apimachinery/pkg/util/intstr.IntOrString) return nil } + +func autoConvert_v1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(in *v1.RollingUpdateDeployment, out *extensions.RollingUpdateDeployment, s conversion.Scope) error { + // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/util/intstr.IntOrString vs k8s.io/apimachinery/pkg/util/intstr.IntOrString) + // WARNING: in.MaxSurge requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/util/intstr.IntOrString vs k8s.io/apimachinery/pkg/util/intstr.IntOrString) + return nil +} + +func autoConvert_extensions_RollingUpdateDeployment_To_v1_RollingUpdateDeployment(in *extensions.RollingUpdateDeployment, out *v1.RollingUpdateDeployment, s conversion.Scope) error { + // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/util/intstr.IntOrString vs *k8s.io/apimachinery/pkg/util/intstr.IntOrString) + // WARNING: in.MaxSurge requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/util/intstr.IntOrString vs *k8s.io/apimachinery/pkg/util/intstr.IntOrString) + return nil +} + +func autoConvert_v1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy(in *v1.RollingUpdateStatefulSetStrategy, out *apps.RollingUpdateStatefulSetStrategy, s conversion.Scope) error { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Partition, &out.Partition, s); err != nil { + return err + } + return nil +} + +// Convert_v1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy is an autogenerated conversion function. +func Convert_v1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy(in *v1.RollingUpdateStatefulSetStrategy, out *apps.RollingUpdateStatefulSetStrategy, s conversion.Scope) error { + return autoConvert_v1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy(in, out, s) +} + +func autoConvert_apps_RollingUpdateStatefulSetStrategy_To_v1_RollingUpdateStatefulSetStrategy(in *apps.RollingUpdateStatefulSetStrategy, out *v1.RollingUpdateStatefulSetStrategy, s conversion.Scope) error { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Partition, &out.Partition, s); err != nil { + return err + } + return nil +} + +// Convert_apps_RollingUpdateStatefulSetStrategy_To_v1_RollingUpdateStatefulSetStrategy is an autogenerated conversion function. +func Convert_apps_RollingUpdateStatefulSetStrategy_To_v1_RollingUpdateStatefulSetStrategy(in *apps.RollingUpdateStatefulSetStrategy, out *v1.RollingUpdateStatefulSetStrategy, s conversion.Scope) error { + return autoConvert_apps_RollingUpdateStatefulSetStrategy_To_v1_RollingUpdateStatefulSetStrategy(in, out, s) +} + +func autoConvert_v1_StatefulSet_To_apps_StatefulSet(in *v1.StatefulSet, out *apps.StatefulSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_StatefulSetSpec_To_apps_StatefulSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_StatefulSetStatus_To_apps_StatefulSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_StatefulSet_To_apps_StatefulSet is an autogenerated conversion function. +func Convert_v1_StatefulSet_To_apps_StatefulSet(in *v1.StatefulSet, out *apps.StatefulSet, s conversion.Scope) error { + return autoConvert_v1_StatefulSet_To_apps_StatefulSet(in, out, s) +} + +func autoConvert_apps_StatefulSet_To_v1_StatefulSet(in *apps.StatefulSet, out *v1.StatefulSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_apps_StatefulSetSpec_To_v1_StatefulSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_apps_StatefulSetStatus_To_v1_StatefulSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_apps_StatefulSet_To_v1_StatefulSet is an autogenerated conversion function. +func Convert_apps_StatefulSet_To_v1_StatefulSet(in *apps.StatefulSet, out *v1.StatefulSet, s conversion.Scope) error { + return autoConvert_apps_StatefulSet_To_v1_StatefulSet(in, out, s) +} + +func autoConvert_v1_StatefulSetCondition_To_apps_StatefulSetCondition(in *v1.StatefulSetCondition, out *apps.StatefulSetCondition, s conversion.Scope) error { + out.Type = apps.StatefulSetConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_StatefulSetCondition_To_apps_StatefulSetCondition is an autogenerated conversion function. +func Convert_v1_StatefulSetCondition_To_apps_StatefulSetCondition(in *v1.StatefulSetCondition, out *apps.StatefulSetCondition, s conversion.Scope) error { + return autoConvert_v1_StatefulSetCondition_To_apps_StatefulSetCondition(in, out, s) +} + +func autoConvert_apps_StatefulSetCondition_To_v1_StatefulSetCondition(in *apps.StatefulSetCondition, out *v1.StatefulSetCondition, s conversion.Scope) error { + out.Type = v1.StatefulSetConditionType(in.Type) + out.Status = core_v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_apps_StatefulSetCondition_To_v1_StatefulSetCondition is an autogenerated conversion function. +func Convert_apps_StatefulSetCondition_To_v1_StatefulSetCondition(in *apps.StatefulSetCondition, out *v1.StatefulSetCondition, s conversion.Scope) error { + return autoConvert_apps_StatefulSetCondition_To_v1_StatefulSetCondition(in, out, s) +} + +func autoConvert_v1_StatefulSetList_To_apps_StatefulSetList(in *v1.StatefulSetList, out *apps.StatefulSetList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]apps.StatefulSet, len(*in)) + for i := range *in { + if err := Convert_v1_StatefulSet_To_apps_StatefulSet(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_StatefulSetList_To_apps_StatefulSetList is an autogenerated conversion function. +func Convert_v1_StatefulSetList_To_apps_StatefulSetList(in *v1.StatefulSetList, out *apps.StatefulSetList, s conversion.Scope) error { + return autoConvert_v1_StatefulSetList_To_apps_StatefulSetList(in, out, s) +} + +func autoConvert_apps_StatefulSetList_To_v1_StatefulSetList(in *apps.StatefulSetList, out *v1.StatefulSetList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.StatefulSet, len(*in)) + for i := range *in { + if err := Convert_apps_StatefulSet_To_v1_StatefulSet(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_apps_StatefulSetList_To_v1_StatefulSetList is an autogenerated conversion function. +func Convert_apps_StatefulSetList_To_v1_StatefulSetList(in *apps.StatefulSetList, out *v1.StatefulSetList, s conversion.Scope) error { + return autoConvert_apps_StatefulSetList_To_v1_StatefulSetList(in, out, s) +} + +func autoConvert_v1_StatefulSetSpec_To_apps_StatefulSetSpec(in *v1.StatefulSetSpec, out *apps.StatefulSetSpec, s conversion.Scope) error { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := apis_core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + out.VolumeClaimTemplates = *(*[]core.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) + out.ServiceName = in.ServiceName + out.PodManagementPolicy = apps.PodManagementPolicyType(in.PodManagementPolicy) + if err := Convert_v1_StatefulSetUpdateStrategy_To_apps_StatefulSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { + return err + } + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + return nil +} + +func autoConvert_apps_StatefulSetSpec_To_v1_StatefulSetSpec(in *apps.StatefulSetSpec, out *v1.StatefulSetSpec, s conversion.Scope) error { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := apis_core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + out.VolumeClaimTemplates = *(*[]core_v1.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) + out.ServiceName = in.ServiceName + out.PodManagementPolicy = v1.PodManagementPolicyType(in.PodManagementPolicy) + if err := Convert_apps_StatefulSetUpdateStrategy_To_v1_StatefulSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { + return err + } + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + return nil +} + +func autoConvert_v1_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1.StatefulSetStatus, out *apps.StatefulSetStatus, s conversion.Scope) error { + // WARNING: in.ObservedGeneration requires manual conversion: inconvertible types (int64 vs *int64) + out.Replicas = in.Replicas + out.ReadyReplicas = in.ReadyReplicas + out.CurrentReplicas = in.CurrentReplicas + out.UpdatedReplicas = in.UpdatedReplicas + out.CurrentRevision = in.CurrentRevision + out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]apps.StatefulSetCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +func autoConvert_apps_StatefulSetStatus_To_v1_StatefulSetStatus(in *apps.StatefulSetStatus, out *v1.StatefulSetStatus, s conversion.Scope) error { + // WARNING: in.ObservedGeneration requires manual conversion: inconvertible types (*int64 vs int64) + out.Replicas = in.Replicas + out.ReadyReplicas = in.ReadyReplicas + out.CurrentReplicas = in.CurrentReplicas + out.UpdatedReplicas = in.UpdatedReplicas + out.CurrentRevision = in.CurrentRevision + out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]v1.StatefulSetCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +func autoConvert_v1_StatefulSetUpdateStrategy_To_apps_StatefulSetUpdateStrategy(in *v1.StatefulSetUpdateStrategy, out *apps.StatefulSetUpdateStrategy, s conversion.Scope) error { + out.Type = apps.StatefulSetUpdateStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(apps.RollingUpdateStatefulSetStrategy) + if err := Convert_v1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_apps_StatefulSetUpdateStrategy_To_v1_StatefulSetUpdateStrategy(in *apps.StatefulSetUpdateStrategy, out *v1.StatefulSetUpdateStrategy, s conversion.Scope) error { + out.Type = v1.StatefulSetUpdateStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(v1.RollingUpdateStatefulSetStrategy) + if err := Convert_apps_RollingUpdateStatefulSetStrategy_To_v1_RollingUpdateStatefulSetStrategy(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/zz_generated.defaults.go index 6cb031990..d05eff3c5 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1/zz_generated.defaults.go @@ -23,7 +23,7 @@ package v1 import ( v1 "k8s.io/api/apps/v1" runtime "k8s.io/apimachinery/pkg/runtime" - api_v1 "k8s.io/kubernetes/pkg/api/v1" + core_v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // RegisterDefaults adds defaulters functions to the given scheme. @@ -32,140 +32,146 @@ import ( func RegisterDefaults(scheme *runtime.Scheme) error { scheme.AddTypeDefaultingFunc(&v1.DaemonSet{}, func(obj interface{}) { SetObjectDefaults_DaemonSet(obj.(*v1.DaemonSet)) }) scheme.AddTypeDefaultingFunc(&v1.DaemonSetList{}, func(obj interface{}) { SetObjectDefaults_DaemonSetList(obj.(*v1.DaemonSetList)) }) + scheme.AddTypeDefaultingFunc(&v1.Deployment{}, func(obj interface{}) { SetObjectDefaults_Deployment(obj.(*v1.Deployment)) }) + scheme.AddTypeDefaultingFunc(&v1.DeploymentList{}, func(obj interface{}) { SetObjectDefaults_DeploymentList(obj.(*v1.DeploymentList)) }) + scheme.AddTypeDefaultingFunc(&v1.ReplicaSet{}, func(obj interface{}) { SetObjectDefaults_ReplicaSet(obj.(*v1.ReplicaSet)) }) + scheme.AddTypeDefaultingFunc(&v1.ReplicaSetList{}, func(obj interface{}) { SetObjectDefaults_ReplicaSetList(obj.(*v1.ReplicaSetList)) }) + scheme.AddTypeDefaultingFunc(&v1.StatefulSet{}, func(obj interface{}) { SetObjectDefaults_StatefulSet(obj.(*v1.StatefulSet)) }) + scheme.AddTypeDefaultingFunc(&v1.StatefulSetList{}, func(obj interface{}) { SetObjectDefaults_StatefulSetList(obj.(*v1.StatefulSetList)) }) return nil } func SetObjectDefaults_DaemonSet(in *v1.DaemonSet) { SetDefaults_DaemonSet(in) - api_v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) + core_v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) for i := range in.Spec.Template.Spec.Volumes { a := &in.Spec.Template.Spec.Volumes[i] - api_v1.SetDefaults_Volume(a) + core_v1.SetDefaults_Volume(a) if a.VolumeSource.HostPath != nil { - api_v1.SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath) + core_v1.SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath) } if a.VolumeSource.Secret != nil { - api_v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) + core_v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) } if a.VolumeSource.ISCSI != nil { - api_v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) + core_v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) } if a.VolumeSource.RBD != nil { - api_v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) + core_v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) } if a.VolumeSource.DownwardAPI != nil { - api_v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) + core_v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) for j := range a.VolumeSource.DownwardAPI.Items { b := &a.VolumeSource.DownwardAPI.Items[j] if b.FieldRef != nil { - api_v1.SetDefaults_ObjectFieldSelector(b.FieldRef) + core_v1.SetDefaults_ObjectFieldSelector(b.FieldRef) } } } if a.VolumeSource.ConfigMap != nil { - api_v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) + core_v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) } if a.VolumeSource.AzureDisk != nil { - api_v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) + core_v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) } if a.VolumeSource.Projected != nil { - api_v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) + core_v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) for j := range a.VolumeSource.Projected.Sources { b := &a.VolumeSource.Projected.Sources[j] if b.DownwardAPI != nil { for k := range b.DownwardAPI.Items { c := &b.DownwardAPI.Items[k] if c.FieldRef != nil { - api_v1.SetDefaults_ObjectFieldSelector(c.FieldRef) + core_v1.SetDefaults_ObjectFieldSelector(c.FieldRef) } } } } } if a.VolumeSource.ScaleIO != nil { - api_v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) + core_v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) } } for i := range in.Spec.Template.Spec.InitContainers { a := &in.Spec.Template.Spec.InitContainers[i] - api_v1.SetDefaults_Container(a) + core_v1.SetDefaults_Container(a) for j := range a.Ports { b := &a.Ports[j] - api_v1.SetDefaults_ContainerPort(b) + core_v1.SetDefaults_ContainerPort(b) } for j := range a.Env { b := &a.Env[j] if b.ValueFrom != nil { if b.ValueFrom.FieldRef != nil { - api_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) } } } - api_v1.SetDefaults_ResourceList(&a.Resources.Limits) - api_v1.SetDefaults_ResourceList(&a.Resources.Requests) + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) if a.LivenessProbe != nil { - api_v1.SetDefaults_Probe(a.LivenessProbe) + core_v1.SetDefaults_Probe(a.LivenessProbe) if a.LivenessProbe.Handler.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) } } if a.ReadinessProbe != nil { - api_v1.SetDefaults_Probe(a.ReadinessProbe) + core_v1.SetDefaults_Probe(a.ReadinessProbe) if a.ReadinessProbe.Handler.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) } } if a.Lifecycle != nil { if a.Lifecycle.PostStart != nil { if a.Lifecycle.PostStart.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) } } if a.Lifecycle.PreStop != nil { if a.Lifecycle.PreStop.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) } } } } for i := range in.Spec.Template.Spec.Containers { a := &in.Spec.Template.Spec.Containers[i] - api_v1.SetDefaults_Container(a) + core_v1.SetDefaults_Container(a) for j := range a.Ports { b := &a.Ports[j] - api_v1.SetDefaults_ContainerPort(b) + core_v1.SetDefaults_ContainerPort(b) } for j := range a.Env { b := &a.Env[j] if b.ValueFrom != nil { if b.ValueFrom.FieldRef != nil { - api_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) } } } - api_v1.SetDefaults_ResourceList(&a.Resources.Limits) - api_v1.SetDefaults_ResourceList(&a.Resources.Requests) + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) if a.LivenessProbe != nil { - api_v1.SetDefaults_Probe(a.LivenessProbe) + core_v1.SetDefaults_Probe(a.LivenessProbe) if a.LivenessProbe.Handler.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) } } if a.ReadinessProbe != nil { - api_v1.SetDefaults_Probe(a.ReadinessProbe) + core_v1.SetDefaults_Probe(a.ReadinessProbe) if a.ReadinessProbe.Handler.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) } } if a.Lifecycle != nil { if a.Lifecycle.PostStart != nil { if a.Lifecycle.PostStart.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) } } if a.Lifecycle.PreStop != nil { if a.Lifecycle.PreStop.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) } } } @@ -178,3 +184,442 @@ func SetObjectDefaults_DaemonSetList(in *v1.DaemonSetList) { SetObjectDefaults_DaemonSet(a) } } + +func SetObjectDefaults_Deployment(in *v1.Deployment) { + SetDefaults_Deployment(in) + core_v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) + for i := range in.Spec.Template.Spec.Volumes { + a := &in.Spec.Template.Spec.Volumes[i] + core_v1.SetDefaults_Volume(a) + if a.VolumeSource.HostPath != nil { + core_v1.SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath) + } + if a.VolumeSource.Secret != nil { + core_v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) + } + if a.VolumeSource.ISCSI != nil { + core_v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) + } + if a.VolumeSource.RBD != nil { + core_v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) + } + if a.VolumeSource.DownwardAPI != nil { + core_v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) + for j := range a.VolumeSource.DownwardAPI.Items { + b := &a.VolumeSource.DownwardAPI.Items[j] + if b.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(b.FieldRef) + } + } + } + if a.VolumeSource.ConfigMap != nil { + core_v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) + } + if a.VolumeSource.AzureDisk != nil { + core_v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) + } + if a.VolumeSource.Projected != nil { + core_v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) + for j := range a.VolumeSource.Projected.Sources { + b := &a.VolumeSource.Projected.Sources[j] + if b.DownwardAPI != nil { + for k := range b.DownwardAPI.Items { + c := &b.DownwardAPI.Items[k] + if c.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(c.FieldRef) + } + } + } + } + } + if a.VolumeSource.ScaleIO != nil { + core_v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) + } + } + for i := range in.Spec.Template.Spec.InitContainers { + a := &in.Spec.Template.Spec.InitContainers[i] + core_v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + core_v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + core_v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + core_v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } + for i := range in.Spec.Template.Spec.Containers { + a := &in.Spec.Template.Spec.Containers[i] + core_v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + core_v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + core_v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + core_v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } +} + +func SetObjectDefaults_DeploymentList(in *v1.DeploymentList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_Deployment(a) + } +} + +func SetObjectDefaults_ReplicaSet(in *v1.ReplicaSet) { + SetDefaults_ReplicaSet(in) + core_v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) + for i := range in.Spec.Template.Spec.Volumes { + a := &in.Spec.Template.Spec.Volumes[i] + core_v1.SetDefaults_Volume(a) + if a.VolumeSource.HostPath != nil { + core_v1.SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath) + } + if a.VolumeSource.Secret != nil { + core_v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) + } + if a.VolumeSource.ISCSI != nil { + core_v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) + } + if a.VolumeSource.RBD != nil { + core_v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) + } + if a.VolumeSource.DownwardAPI != nil { + core_v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) + for j := range a.VolumeSource.DownwardAPI.Items { + b := &a.VolumeSource.DownwardAPI.Items[j] + if b.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(b.FieldRef) + } + } + } + if a.VolumeSource.ConfigMap != nil { + core_v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) + } + if a.VolumeSource.AzureDisk != nil { + core_v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) + } + if a.VolumeSource.Projected != nil { + core_v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) + for j := range a.VolumeSource.Projected.Sources { + b := &a.VolumeSource.Projected.Sources[j] + if b.DownwardAPI != nil { + for k := range b.DownwardAPI.Items { + c := &b.DownwardAPI.Items[k] + if c.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(c.FieldRef) + } + } + } + } + } + if a.VolumeSource.ScaleIO != nil { + core_v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) + } + } + for i := range in.Spec.Template.Spec.InitContainers { + a := &in.Spec.Template.Spec.InitContainers[i] + core_v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + core_v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + core_v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + core_v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } + for i := range in.Spec.Template.Spec.Containers { + a := &in.Spec.Template.Spec.Containers[i] + core_v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + core_v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + core_v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + core_v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } +} + +func SetObjectDefaults_ReplicaSetList(in *v1.ReplicaSetList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_ReplicaSet(a) + } +} + +func SetObjectDefaults_StatefulSet(in *v1.StatefulSet) { + SetDefaults_StatefulSet(in) + core_v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) + for i := range in.Spec.Template.Spec.Volumes { + a := &in.Spec.Template.Spec.Volumes[i] + core_v1.SetDefaults_Volume(a) + if a.VolumeSource.HostPath != nil { + core_v1.SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath) + } + if a.VolumeSource.Secret != nil { + core_v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) + } + if a.VolumeSource.ISCSI != nil { + core_v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) + } + if a.VolumeSource.RBD != nil { + core_v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) + } + if a.VolumeSource.DownwardAPI != nil { + core_v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) + for j := range a.VolumeSource.DownwardAPI.Items { + b := &a.VolumeSource.DownwardAPI.Items[j] + if b.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(b.FieldRef) + } + } + } + if a.VolumeSource.ConfigMap != nil { + core_v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) + } + if a.VolumeSource.AzureDisk != nil { + core_v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) + } + if a.VolumeSource.Projected != nil { + core_v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) + for j := range a.VolumeSource.Projected.Sources { + b := &a.VolumeSource.Projected.Sources[j] + if b.DownwardAPI != nil { + for k := range b.DownwardAPI.Items { + c := &b.DownwardAPI.Items[k] + if c.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(c.FieldRef) + } + } + } + } + } + if a.VolumeSource.ScaleIO != nil { + core_v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) + } + } + for i := range in.Spec.Template.Spec.InitContainers { + a := &in.Spec.Template.Spec.InitContainers[i] + core_v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + core_v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + core_v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + core_v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } + for i := range in.Spec.Template.Spec.Containers { + a := &in.Spec.Template.Spec.Containers[i] + core_v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + core_v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + core_v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + core_v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } + for i := range in.Spec.VolumeClaimTemplates { + a := &in.Spec.VolumeClaimTemplates[i] + core_v1.SetDefaults_PersistentVolumeClaim(a) + core_v1.SetDefaults_ResourceList(&a.Spec.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Spec.Resources.Requests) + core_v1.SetDefaults_ResourceList(&a.Status.Capacity) + } +} + +func SetObjectDefaults_StatefulSetList(in *v1.StatefulSetList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_StatefulSet(a) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/BUILD index 7fa96a92a..920dcdc49 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/BUILD @@ -18,14 +18,16 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/apps/v1beta1", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/api/apps/v1beta1: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/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", @@ -51,9 +53,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/apps/v1beta1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/apps/install:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/conversion.go index 42d26b86d..6f4d27cf9 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/conversion.go @@ -23,11 +23,13 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/apps" + "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -44,8 +46,8 @@ func addConversionFuncs(scheme *runtime.Scheme) error { // extensions // TODO: below conversions should be dropped in favor of auto-generated // ones, see https://github.com/kubernetes/kubernetes/issues/39865 - Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus, - Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus, + Convert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus, + Convert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus, Convert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec, Convert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec, Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy, @@ -87,7 +89,7 @@ func Convert_v1beta1_StatefulSetSpec_To_apps_StatefulSetSpec(in *appsv1beta1.Sta } else { out.Selector = nil } - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if in.VolumeClaimTemplates != nil { @@ -127,7 +129,7 @@ func Convert_apps_StatefulSetSpec_To_v1beta1_StatefulSetSpec(in *apps.StatefulSe } else { out.Selector = nil } - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if in.VolumeClaimTemplates != nil { @@ -178,48 +180,35 @@ func Convert_apps_StatefulSetUpdateStrategy_To_v1beta1_StatefulSetUpdateStrategy return nil } -func Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus(in *extensions.ScaleStatus, out *appsv1beta1.ScaleStatus, s conversion.Scope) error { +func Convert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus(in *autoscaling.ScaleStatus, out *appsv1beta1.ScaleStatus, s conversion.Scope) error { out.Replicas = int32(in.Replicas) + out.TargetSelector = in.Selector out.Selector = nil - out.TargetSelector = "" - if in.Selector != nil { - if in.Selector.MatchExpressions == nil || len(in.Selector.MatchExpressions) == 0 { - out.Selector = in.Selector.MatchLabels - } - - selector, err := metav1.LabelSelectorAsSelector(in.Selector) - if err != nil { - return fmt.Errorf("invalid label selector: %v", err) - } - out.TargetSelector = selector.String() + selector, err := metav1.ParseToLabelSelector(in.Selector) + if err != nil { + return fmt.Errorf("failed to parse selector: %v", err) } + if len(selector.MatchExpressions) == 0 { + out.Selector = selector.MatchLabels + } + return nil } -func Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus(in *appsv1beta1.ScaleStatus, out *extensions.ScaleStatus, s conversion.Scope) error { +func Convert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus(in *appsv1beta1.ScaleStatus, out *autoscaling.ScaleStatus, s conversion.Scope) error { out.Replicas = in.Replicas - // Normally when 2 fields map to the same internal value we favor the old field, since - // old clients can't be expected to know about new fields but clients that know about the - // new field can be expected to know about the old field (though that's not quite true, due - // to kubectl apply). However, these fields are readonly, so any non-nil value should work. if in.TargetSelector != "" { - labelSelector, err := metav1.ParseToLabelSelector(in.TargetSelector) - if err != nil { - out.Selector = nil - return fmt.Errorf("failed to parse target selector: %v", err) - } - out.Selector = labelSelector + out.Selector = in.TargetSelector } else if in.Selector != nil { - out.Selector = new(metav1.LabelSelector) - selector := make(map[string]string) + set := labels.Set{} for key, val := range in.Selector { - selector[key] = val + set[key] = val } - out.Selector.MatchLabels = selector + out.Selector = labels.SelectorFromSet(set).String() } else { - out.Selector = nil + out.Selector = "" } return nil } @@ -229,7 +218,7 @@ func Convert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(in *appsv1beta1 out.Replicas = *in.Replicas } out.Selector = in.Selector - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -254,7 +243,7 @@ func Convert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(in *appsv1beta1 func Convert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec(in *extensions.DeploymentSpec, out *appsv1beta1.DeploymentSpec, s conversion.Scope) error { out.Replicas = &in.Replicas out.Selector = in.Selector - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DeploymentStrategy_To_v1beta1_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/defaults_test.go index 6411035db..06e0d7b11 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/defaults_test.go @@ -26,10 +26,11 @@ import ( apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/apps/install" . "k8s.io/kubernetes/pkg/apis/apps/v1beta1" + api "k8s.io/kubernetes/pkg/apis/core" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestSetDefaultDeployment(t *testing.T) { @@ -196,18 +197,18 @@ func TestDefaultDeploymentAvailability(t *testing.T) { } func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/doc.go index 058dce37f..4a11a5834 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/doc.go @@ -15,6 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/apps +// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/autoscaling // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions // +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/apps/v1beta1 // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/zz_generated.conversion.go index d3ddaac03..0bfb1e3f2 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/zz_generated.conversion.go @@ -26,9 +26,10 @@ import ( meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - api_v1 "k8s.io/kubernetes/pkg/api/v1" apps "k8s.io/kubernetes/pkg/apis/apps" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" + core "k8s.io/kubernetes/pkg/apis/core" + core_v1 "k8s.io/kubernetes/pkg/apis/core/v1" extensions "k8s.io/kubernetes/pkg/apis/extensions" unsafe "unsafe" ) @@ -65,14 +66,16 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_extensions_RollingUpdateDeployment_To_v1beta1_RollingUpdateDeployment, Convert_v1beta1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy, Convert_apps_RollingUpdateStatefulSetStrategy_To_v1beta1_RollingUpdateStatefulSetStrategy, - Convert_v1beta1_Scale_To_extensions_Scale, - Convert_extensions_Scale_To_v1beta1_Scale, - Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec, - Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec, - Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus, - Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus, + Convert_v1beta1_Scale_To_autoscaling_Scale, + Convert_autoscaling_Scale_To_v1beta1_Scale, + Convert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec, + Convert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec, + Convert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus, + Convert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus, Convert_v1beta1_StatefulSet_To_apps_StatefulSet, Convert_apps_StatefulSet_To_v1beta1_StatefulSet, + Convert_v1beta1_StatefulSetCondition_To_apps_StatefulSetCondition, + Convert_apps_StatefulSetCondition_To_v1beta1_StatefulSetCondition, Convert_v1beta1_StatefulSetList_To_apps_StatefulSetList, Convert_apps_StatefulSetList_To_v1beta1_StatefulSetList, Convert_v1beta1_StatefulSetSpec_To_apps_StatefulSetSpec, @@ -188,7 +191,7 @@ func Convert_extensions_Deployment_To_v1beta1_Deployment(in *extensions.Deployme func autoConvert_v1beta1_DeploymentCondition_To_extensions_DeploymentCondition(in *v1beta1.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { out.Type = extensions.DeploymentConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) + out.Status = core.ConditionStatus(in.Status) out.LastUpdateTime = in.LastUpdateTime out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason @@ -291,7 +294,7 @@ func autoConvert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(in *v1beta1 return err } out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -310,7 +313,7 @@ func autoConvert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec(in *extensi return err } out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DeploymentStrategy_To_v1beta1_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -442,68 +445,68 @@ func Convert_apps_RollingUpdateStatefulSetStrategy_To_v1beta1_RollingUpdateState return autoConvert_apps_RollingUpdateStatefulSetStrategy_To_v1beta1_RollingUpdateStatefulSetStrategy(in, out, s) } -func autoConvert_v1beta1_Scale_To_extensions_Scale(in *v1beta1.Scale, out *extensions.Scale, s conversion.Scope) error { +func autoConvert_v1beta1_Scale_To_autoscaling_Scale(in *v1beta1.Scale, out *autoscaling.Scale, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_v1beta1_Scale_To_extensions_Scale is an autogenerated conversion function. -func Convert_v1beta1_Scale_To_extensions_Scale(in *v1beta1.Scale, out *extensions.Scale, s conversion.Scope) error { - return autoConvert_v1beta1_Scale_To_extensions_Scale(in, out, s) +// Convert_v1beta1_Scale_To_autoscaling_Scale is an autogenerated conversion function. +func Convert_v1beta1_Scale_To_autoscaling_Scale(in *v1beta1.Scale, out *autoscaling.Scale, s conversion.Scope) error { + return autoConvert_v1beta1_Scale_To_autoscaling_Scale(in, out, s) } -func autoConvert_extensions_Scale_To_v1beta1_Scale(in *extensions.Scale, out *v1beta1.Scale, s conversion.Scope) error { +func autoConvert_autoscaling_Scale_To_v1beta1_Scale(in *autoscaling.Scale, out *v1beta1.Scale, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_extensions_Scale_To_v1beta1_Scale is an autogenerated conversion function. -func Convert_extensions_Scale_To_v1beta1_Scale(in *extensions.Scale, out *v1beta1.Scale, s conversion.Scope) error { - return autoConvert_extensions_Scale_To_v1beta1_Scale(in, out, s) +// Convert_autoscaling_Scale_To_v1beta1_Scale is an autogenerated conversion function. +func Convert_autoscaling_Scale_To_v1beta1_Scale(in *autoscaling.Scale, out *v1beta1.Scale, s conversion.Scope) error { + return autoConvert_autoscaling_Scale_To_v1beta1_Scale(in, out, s) } -func autoConvert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(in *v1beta1.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { +func autoConvert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec(in *v1beta1.ScaleSpec, out *autoscaling.ScaleSpec, s conversion.Scope) error { out.Replicas = in.Replicas return nil } -// Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec is an autogenerated conversion function. -func Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(in *v1beta1.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { - return autoConvert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(in, out, s) +// Convert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec is an autogenerated conversion function. +func Convert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec(in *v1beta1.ScaleSpec, out *autoscaling.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec(in, out, s) } -func autoConvert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(in *extensions.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { +func autoConvert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec(in *autoscaling.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { out.Replicas = in.Replicas return nil } -// Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec is an autogenerated conversion function. -func Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(in *extensions.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { - return autoConvert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(in, out, s) +// Convert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec is an autogenerated conversion function. +func Convert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec(in *autoscaling.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + return autoConvert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec(in, out, s) } -func autoConvert_v1beta1_ScaleStatus_To_extensions_ScaleStatus(in *v1beta1.ScaleStatus, out *extensions.ScaleStatus, s conversion.Scope) error { +func autoConvert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus(in *v1beta1.ScaleStatus, out *autoscaling.ScaleStatus, s conversion.Scope) error { out.Replicas = in.Replicas - // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs string) // WARNING: in.TargetSelector requires manual conversion: does not exist in peer-type return nil } -func autoConvert_extensions_ScaleStatus_To_v1beta1_ScaleStatus(in *extensions.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { +func autoConvert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus(in *autoscaling.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { out.Replicas = in.Replicas - // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs map[string]string) + // WARNING: in.Selector requires manual conversion: inconvertible types (string vs map[string]string) return nil } @@ -539,6 +542,34 @@ func Convert_apps_StatefulSet_To_v1beta1_StatefulSet(in *apps.StatefulSet, out * return autoConvert_apps_StatefulSet_To_v1beta1_StatefulSet(in, out, s) } +func autoConvert_v1beta1_StatefulSetCondition_To_apps_StatefulSetCondition(in *v1beta1.StatefulSetCondition, out *apps.StatefulSetCondition, s conversion.Scope) error { + out.Type = apps.StatefulSetConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1beta1_StatefulSetCondition_To_apps_StatefulSetCondition is an autogenerated conversion function. +func Convert_v1beta1_StatefulSetCondition_To_apps_StatefulSetCondition(in *v1beta1.StatefulSetCondition, out *apps.StatefulSetCondition, s conversion.Scope) error { + return autoConvert_v1beta1_StatefulSetCondition_To_apps_StatefulSetCondition(in, out, s) +} + +func autoConvert_apps_StatefulSetCondition_To_v1beta1_StatefulSetCondition(in *apps.StatefulSetCondition, out *v1beta1.StatefulSetCondition, s conversion.Scope) error { + out.Type = v1beta1.StatefulSetConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_apps_StatefulSetCondition_To_v1beta1_StatefulSetCondition is an autogenerated conversion function. +func Convert_apps_StatefulSetCondition_To_v1beta1_StatefulSetCondition(in *apps.StatefulSetCondition, out *v1beta1.StatefulSetCondition, s conversion.Scope) error { + return autoConvert_apps_StatefulSetCondition_To_v1beta1_StatefulSetCondition(in, out, s) +} + func autoConvert_v1beta1_StatefulSetList_To_apps_StatefulSetList(in *v1beta1.StatefulSetList, out *apps.StatefulSetList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items != nil { @@ -586,10 +617,10 @@ func autoConvert_v1beta1_StatefulSetSpec_To_apps_StatefulSetSpec(in *v1beta1.Sta return err } out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } - out.VolumeClaimTemplates = *(*[]api.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) + out.VolumeClaimTemplates = *(*[]core.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) out.ServiceName = in.ServiceName out.PodManagementPolicy = apps.PodManagementPolicyType(in.PodManagementPolicy) if err := Convert_v1beta1_StatefulSetUpdateStrategy_To_apps_StatefulSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -604,7 +635,7 @@ func autoConvert_apps_StatefulSetSpec_To_v1beta1_StatefulSetSpec(in *apps.Statef return err } out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } out.VolumeClaimTemplates = *(*[]v1.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) @@ -626,6 +657,7 @@ func autoConvert_v1beta1_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta1 out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]apps.StatefulSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } @@ -643,6 +675,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta1_StatefulSetStatus(in *apps.St out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]v1beta1.StatefulSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/zz_generated.defaults.go index 26fde73fe..47c74ab2c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta1/zz_generated.defaults.go @@ -23,7 +23,7 @@ package v1beta1 import ( v1beta1 "k8s.io/api/apps/v1beta1" runtime "k8s.io/apimachinery/pkg/runtime" - v1 "k8s.io/kubernetes/pkg/api/v1" + v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/BUILD index 5498d6285..b27e6f362 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/BUILD @@ -18,14 +18,16 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/apps/v1beta2", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/api/apps/v1beta2: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/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", @@ -54,10 +56,12 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/apps/v1beta2_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/apps/install:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/conversion.go index 191c2eb56..f71de4f28 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/conversion.go @@ -24,11 +24,13 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/apps" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -57,8 +59,8 @@ func addConversionFuncs(scheme *runtime.Scheme) error { // extensions // TODO: below conversions should be dropped in favor of auto-generated // ones, see https://github.com/kubernetes/kubernetes/issues/39865 - Convert_v1beta2_ScaleStatus_To_extensions_ScaleStatus, - Convert_extensions_ScaleStatus_To_v1beta2_ScaleStatus, + Convert_v1beta2_ScaleStatus_To_autoscaling_ScaleStatus, + Convert_autoscaling_ScaleStatus_To_v1beta2_ScaleStatus, Convert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec, Convert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec, Convert_v1beta2_DeploymentStrategy_To_extensions_DeploymentStrategy, @@ -119,7 +121,7 @@ func Convert_v1beta2_StatefulSetSpec_To_apps_StatefulSetSpec(in *appsv1beta2.Sta } else { out.Selector = nil } - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if in.VolumeClaimTemplates != nil { @@ -159,7 +161,7 @@ func Convert_apps_StatefulSetSpec_To_v1beta2_StatefulSetSpec(in *apps.StatefulSe } else { out.Selector = nil } - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if in.VolumeClaimTemplates != nil { @@ -223,6 +225,12 @@ func Convert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *appsv1beta2 out.CollisionCount = new(int32) *out.CollisionCount = *in.CollisionCount } + out.Conditions = make([]apps.StatefulSetCondition, len(in.Conditions)) + for i := range in.Conditions { + if err := Convert_v1beta2_StatefulSetCondition_To_apps_StatefulSetCondition(&in.Conditions[i], &out.Conditions[i], s); err != nil { + return err + } + } return nil } @@ -240,29 +248,32 @@ func Convert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.Statef out.CollisionCount = new(int32) *out.CollisionCount = *in.CollisionCount } + out.Conditions = make([]appsv1beta2.StatefulSetCondition, len(in.Conditions)) + for i := range in.Conditions { + if err := Convert_apps_StatefulSetCondition_To_v1beta2_StatefulSetCondition(&in.Conditions[i], &out.Conditions[i], s); err != nil { + return err + } + } return nil } -func Convert_extensions_ScaleStatus_To_v1beta2_ScaleStatus(in *extensions.ScaleStatus, out *appsv1beta2.ScaleStatus, s conversion.Scope) error { +func Convert_autoscaling_ScaleStatus_To_v1beta2_ScaleStatus(in *autoscaling.ScaleStatus, out *appsv1beta2.ScaleStatus, s conversion.Scope) error { out.Replicas = int32(in.Replicas) + out.TargetSelector = in.Selector out.Selector = nil - out.TargetSelector = "" - if in.Selector != nil { - if in.Selector.MatchExpressions == nil || len(in.Selector.MatchExpressions) == 0 { - out.Selector = in.Selector.MatchLabels - } - - selector, err := metav1.LabelSelectorAsSelector(in.Selector) - if err != nil { - return fmt.Errorf("invalid label selector: %v", err) - } - out.TargetSelector = selector.String() + selector, err := metav1.ParseToLabelSelector(in.Selector) + if err != nil { + return fmt.Errorf("failed to parse selector: %v", err) + } + if len(selector.MatchExpressions) == 0 { + out.Selector = selector.MatchLabels } + return nil } -func Convert_v1beta2_ScaleStatus_To_extensions_ScaleStatus(in *appsv1beta2.ScaleStatus, out *extensions.ScaleStatus, s conversion.Scope) error { +func Convert_v1beta2_ScaleStatus_To_autoscaling_ScaleStatus(in *appsv1beta2.ScaleStatus, out *autoscaling.ScaleStatus, s conversion.Scope) error { out.Replicas = in.Replicas // Normally when 2 fields map to the same internal value we favor the old field, since @@ -270,21 +281,15 @@ func Convert_v1beta2_ScaleStatus_To_extensions_ScaleStatus(in *appsv1beta2.Scale // new field can be expected to know about the old field (though that's not quite true, due // to kubectl apply). However, these fields are readonly, so any non-nil value should work. if in.TargetSelector != "" { - labelSelector, err := metav1.ParseToLabelSelector(in.TargetSelector) - if err != nil { - out.Selector = nil - return fmt.Errorf("failed to parse target selector: %v", err) - } - out.Selector = labelSelector + out.Selector = in.TargetSelector } else if in.Selector != nil { - out.Selector = new(metav1.LabelSelector) - selector := make(map[string]string) + set := labels.Set{} for key, val := range in.Selector { - selector[key] = val + set[key] = val } - out.Selector.MatchLabels = selector + out.Selector = labels.SelectorFromSet(set).String() } else { - out.Selector = nil + out.Selector = "" } return nil } @@ -294,7 +299,7 @@ func Convert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(in *appsv1beta2 out.Replicas = *in.Replicas } out.Selector = in.Selector - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta2_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -313,7 +318,7 @@ func Convert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(in *appsv1beta2 func Convert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec(in *extensions.DeploymentSpec, out *appsv1beta2.DeploymentSpec, s conversion.Scope) error { out.Replicas = &in.Replicas out.Selector = in.Selector - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DeploymentStrategy_To_v1beta2_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -389,7 +394,7 @@ func Convert_extensions_ReplicaSetSpec_To_v1beta2_ReplicaSetSpec(in *extensions. *out.Replicas = int32(in.Replicas) out.MinReadySeconds = in.MinReadySeconds out.Selector = in.Selector - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil @@ -427,7 +432,7 @@ func Convert_v1beta2_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *appsv1beta2 } out.MinReadySeconds = in.MinReadySeconds out.Selector = in.Selector - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil @@ -473,7 +478,7 @@ func Convert_extensions_DaemonSet_To_v1beta2_DaemonSet(in *extensions.DaemonSet, func Convert_extensions_DaemonSetSpec_To_v1beta2_DaemonSetSpec(in *extensions.DaemonSetSpec, out *appsv1beta2.DaemonSetSpec, s conversion.Scope) error { out.Selector = in.Selector - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DaemonSetUpdateStrategy_To_v1beta2_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -521,7 +526,7 @@ func Convert_v1beta2_DaemonSet_To_extensions_DaemonSet(in *appsv1beta2.DaemonSet func Convert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec(in *appsv1beta2.DaemonSetSpec, out *extensions.DaemonSetSpec, s conversion.Scope) error { out.Selector = in.Selector - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta2_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/conversion_test.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/conversion_test.go index 211098897..7cf4d11a2 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/conversion_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/conversion_test.go @@ -22,8 +22,10 @@ import ( "k8s.io/api/apps/v1beta2" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/apps" + "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" apiequality "k8s.io/apimachinery/pkg/api/equality" @@ -82,7 +84,7 @@ func TestV1beta2StatefulSetSpecConversion(t *testing.T) { for k, tc := range testcases { // apps -> v1beta2 internal1 := &v1beta2.StatefulSetSpec{} - if err := api.Scheme.Convert(tc.stsSpec1, internal1, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.stsSpec1, internal1, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from extensions to v1beta2", err) } @@ -92,7 +94,7 @@ func TestV1beta2StatefulSetSpecConversion(t *testing.T) { // v1beta2 -> apps internal2 := &apps.StatefulSetSpec{} - if err := api.Scheme.Convert(tc.stsSepc2, internal2, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.stsSepc2, internal2, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from v1beta2 to extensions", err) } if !apiequality.Semantic.DeepEqual(internal2, tc.stsSpec1) { @@ -130,7 +132,7 @@ func TestV1beta2StatefulSetUpdateStrategyConversion(t *testing.T) { for k, tc := range testcases { // apps -> v1beta2 internal1 := &v1beta2.StatefulSetUpdateStrategy{} - if err := api.Scheme.Convert(tc.stsUpdateStrategy1, internal1, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.stsUpdateStrategy1, internal1, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", "apps -> v1beta2", k, err) } @@ -140,7 +142,7 @@ func TestV1beta2StatefulSetUpdateStrategyConversion(t *testing.T) { // v1beta2 -> apps internal2 := &apps.StatefulSetUpdateStrategy{} - if err := api.Scheme.Convert(tc.stsUpdateStrategy2, internal2, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.stsUpdateStrategy2, internal2, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", "v1beta2 -> apps", k, err) } if !apiequality.Semantic.DeepEqual(internal2, tc.stsUpdateStrategy1) { @@ -164,7 +166,7 @@ func TestV1beta2RollingUpdateDaemonSetConversion(t *testing.T) { for k, tc := range testcases { // extensions -> v1beta2 internal1 := &v1beta2.RollingUpdateDaemonSet{} - if err := api.Scheme.Convert(tc.rollingUpdateDs1, internal1, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.rollingUpdateDs1, internal1, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from extensions to v1beta2", err) } if !apiequality.Semantic.DeepEqual(internal1, tc.rollingUpdateDs2) { @@ -173,7 +175,7 @@ func TestV1beta2RollingUpdateDaemonSetConversion(t *testing.T) { // v1beta2 -> extensions internal2 := &extensions.RollingUpdateDaemonSet{} - if err := api.Scheme.Convert(tc.rollingUpdateDs2, internal2, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.rollingUpdateDs2, internal2, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from v1beta2 to extensions", err) } if !apiequality.Semantic.DeepEqual(internal2, tc.rollingUpdateDs1) { @@ -238,7 +240,7 @@ func TestV1beta2StatefulSetStatusConversion(t *testing.T) { for k, tc := range testcases { // apps -> v1beta2 internal1 := &v1beta2.StatefulSetStatus{} - if err := api.Scheme.Convert(tc.stsStatus1, internal1, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.stsStatus1, internal1, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from apps to v1beta2", err) } @@ -248,7 +250,7 @@ func TestV1beta2StatefulSetStatusConversion(t *testing.T) { // v1beta2 -> apps internal2 := &apps.StatefulSetStatus{} - if err := api.Scheme.Convert(tc.stsStatus2, internal2, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.stsStatus2, internal2, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from v1beta2 to apps", err) } if !apiequality.Semantic.DeepEqual(internal2, tc.stsStatus1) { @@ -318,7 +320,7 @@ func TestV1beta2DeploymentConversion(t *testing.T) { for k, tc := range testcases { // extensions -> v1beta2 internal1 := &v1beta2.Deployment{} - if err := api.Scheme.Convert(tc.deployment1, internal1, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.deployment1, internal1, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from extensions to v1beta2", err) } if !apiequality.Semantic.DeepEqual(internal1, tc.deployment2) { @@ -327,7 +329,7 @@ func TestV1beta2DeploymentConversion(t *testing.T) { // v1beta2 -> extensions internal2 := &extensions.Deployment{} - if err := api.Scheme.Convert(tc.deployment2, internal2, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.deployment2, internal2, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "from v1beta2 to extensions", err) } if !apiequality.Semantic.DeepEqual(internal2, tc.deployment1) { @@ -348,41 +350,41 @@ func TestV1beta2ScaleStatusConversion(t *testing.T) { labelsSelector2, _ := metav1.LabelSelectorAsSelector(selector2) testcases := map[string]struct { - scaleStatus1 *extensions.ScaleStatus + scaleStatus1 *autoscaling.ScaleStatus scaleStatus2 *v1beta2.ScaleStatus }{ "ScaleStatus Conversion 1": { - scaleStatus1: &extensions.ScaleStatus{Replicas: 2}, + scaleStatus1: &autoscaling.ScaleStatus{Replicas: 2}, scaleStatus2: &v1beta2.ScaleStatus{Replicas: 2}, }, "ScaleStatus Conversion 2": { - scaleStatus1: &extensions.ScaleStatus{Replicas: 2, Selector: selector1}, + scaleStatus1: &autoscaling.ScaleStatus{Replicas: 2, Selector: labelsSelector1.String()}, scaleStatus2: &v1beta2.ScaleStatus{Replicas: 2, Selector: matchLabels, TargetSelector: labelsSelector1.String()}, }, "ScaleStatus Conversion 3": { - scaleStatus1: &extensions.ScaleStatus{Replicas: 2, Selector: selector2}, + scaleStatus1: &autoscaling.ScaleStatus{Replicas: 2, Selector: labelsSelector2.String()}, scaleStatus2: &v1beta2.ScaleStatus{Replicas: 2, Selector: map[string]string{}, TargetSelector: labelsSelector2.String()}, }, } for k, tc := range testcases { - // extensions -> v1beta2 + // autoscaling -> v1beta2 internal1 := &v1beta2.ScaleStatus{} - if err := api.Scheme.Convert(tc.scaleStatus1, internal1, nil); err != nil { - t.Errorf("%q - %q: unexpected error: %v", k, "extensions -> v1beta2", err) + if err := legacyscheme.Scheme.Convert(tc.scaleStatus1, internal1, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "autoscaling -> v1beta2", err) } if !apiequality.Semantic.DeepEqual(internal1, tc.scaleStatus2) { - t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "extensions -> v1beta2", tc.scaleStatus2, internal1) + t.Errorf("%q - %q: expected\n\t%#v, got \n\t%#v", k, "autoscaling -> v1beta2", tc.scaleStatus2, internal1) } - // v1beta2 -> extensions - internal2 := &extensions.ScaleStatus{} - if err := api.Scheme.Convert(tc.scaleStatus2, internal2, nil); err != nil { - t.Errorf("%q - %q: unexpected error: %v", k, "v1beta2 -> extensions", err) + // v1beta2 -> autoscaling + internal2 := &autoscaling.ScaleStatus{} + if err := legacyscheme.Scheme.Convert(tc.scaleStatus2, internal2, nil); err != nil { + t.Errorf("%q - %q: unexpected error: %v", k, "v1beta2 -> autoscaling", err) } if !apiequality.Semantic.DeepEqual(internal2, tc.scaleStatus1) { - t.Errorf("%q - %q: expected\n\t%+v, got \n\t%+v", k, "v1beta2 -> extensions", tc.scaleStatus1, internal2) + t.Errorf("%q - %q: expected\n\t%+v, got \n\t%+v", k, "v1beta2 -> autoscaling", tc.scaleStatus1, internal2) } } } @@ -463,7 +465,7 @@ func TestV1beta2DeploymentSpecConversion(t *testing.T) { // extensions -> v1beta2 for k, tc := range testcases { internal := &v1beta2.DeploymentSpec{} - if err := api.Scheme.Convert(tc.deploymentSpec1, internal, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.deploymentSpec1, internal, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", "extensions -> v1beta2", k, err) } @@ -475,7 +477,7 @@ func TestV1beta2DeploymentSpecConversion(t *testing.T) { // v1beta2 -> extensions for k, tc := range testcases { internal := &extensions.DeploymentSpec{} - if err := api.Scheme.Convert(tc.deploymentSpec2, internal, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.deploymentSpec2, internal, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", "v1beta2 -> extensions", k, err) } if !apiequality.Semantic.DeepEqual(internal, tc.deploymentSpec1) { @@ -507,7 +509,7 @@ func TestV1beta2DeploymentStrategyConversion(t *testing.T) { for k, tc := range testcases { // extensions -> v1beta2 internal1 := &v1beta2.DeploymentStrategy{} - if err := api.Scheme.Convert(tc.deploymentStrategy1, internal1, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.deploymentStrategy1, internal1, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "extensions -> v1beta2", err) } if !apiequality.Semantic.DeepEqual(internal1, tc.deploymentStrategy2) { @@ -516,7 +518,7 @@ func TestV1beta2DeploymentStrategyConversion(t *testing.T) { // v1beta2 -> extensions internal2 := &extensions.DeploymentStrategy{} - if err := api.Scheme.Convert(tc.deploymentStrategy2, internal2, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.deploymentStrategy2, internal2, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "v1beta2 -> extensions", err) } if !apiequality.Semantic.DeepEqual(internal2, tc.deploymentStrategy1) { @@ -554,7 +556,7 @@ func TestV1beta2RollingUpdateDeploymentConversion(t *testing.T) { for k, tc := range testcases { // extensions -> v1beta2 internal1 := &v1beta2.RollingUpdateDeployment{} - if err := api.Scheme.Convert(tc.rollingUpdateDeployment1, internal1, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.rollingUpdateDeployment1, internal1, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "extensions -> v1beta2", err) } if !apiequality.Semantic.DeepEqual(internal1, tc.rollingUpdateDeployment2) { @@ -563,7 +565,7 @@ func TestV1beta2RollingUpdateDeploymentConversion(t *testing.T) { // v1beta2 -> extensions internal2 := &extensions.RollingUpdateDeployment{} - if err := api.Scheme.Convert(tc.rollingUpdateDeployment2, internal2, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.rollingUpdateDeployment2, internal2, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "v1beta2 -> extensions", err) } if !apiequality.Semantic.DeepEqual(internal2, tc.rollingUpdateDeployment1) { @@ -630,7 +632,7 @@ func TestV1beta2ReplicaSetSpecConversion(t *testing.T) { for k, tc := range testcases { // extensions -> v1beta2 internal1 := &v1beta2.ReplicaSetSpec{} - if err := api.Scheme.Convert(tc.replicaset1, internal1, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.replicaset1, internal1, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "extensions -> v1beta2", err) } @@ -640,7 +642,7 @@ func TestV1beta2ReplicaSetSpecConversion(t *testing.T) { // v1beta2 -> extensions internal2 := &extensions.ReplicaSetSpec{} - if err := api.Scheme.Convert(tc.replicaset2, internal2, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.replicaset2, internal2, nil); err != nil { t.Errorf("%q - %q: unexpected error: %v", k, "v1beta2 -> extensions", err) } if !apiequality.Semantic.DeepEqual(internal2, tc.replicaset1) { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/defaults_test.go index 877ac9538..86cec6880 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/defaults_test.go @@ -27,10 +27,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/apps/install" . "k8s.io/kubernetes/pkg/apis/apps/v1beta2" + api "k8s.io/kubernetes/pkg/apis/core" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestSetDefaultDaemonSetSpec(t *testing.T) { @@ -544,18 +545,18 @@ func TestDefaultRequestIsNotSetForReplicaSet(t *testing.T) { } func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/doc.go index 9a0bb5819..6c8f7c3bc 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/doc.go @@ -15,6 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/apps +// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/autoscaling // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions // +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/apps/v1beta2 // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/zz_generated.conversion.go index 4624fa42b..cbe3ccaa9 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/zz_generated.conversion.go @@ -22,13 +22,14 @@ package v1beta2 import ( v1beta2 "k8s.io/api/apps/v1beta2" - core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/api/core/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - api_v1 "k8s.io/kubernetes/pkg/api/v1" apps "k8s.io/kubernetes/pkg/apis/apps" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" + core "k8s.io/kubernetes/pkg/apis/core" + core_v1 "k8s.io/kubernetes/pkg/apis/core/v1" extensions "k8s.io/kubernetes/pkg/apis/extensions" unsafe "unsafe" ) @@ -47,6 +48,8 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_apps_ControllerRevisionList_To_v1beta2_ControllerRevisionList, Convert_v1beta2_DaemonSet_To_extensions_DaemonSet, Convert_extensions_DaemonSet_To_v1beta2_DaemonSet, + Convert_v1beta2_DaemonSetCondition_To_extensions_DaemonSetCondition, + Convert_extensions_DaemonSetCondition_To_v1beta2_DaemonSetCondition, Convert_v1beta2_DaemonSetList_To_extensions_DaemonSetList, Convert_extensions_DaemonSetList_To_v1beta2_DaemonSetList, Convert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec, @@ -83,14 +86,16 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_extensions_RollingUpdateDeployment_To_v1beta2_RollingUpdateDeployment, Convert_v1beta2_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy, Convert_apps_RollingUpdateStatefulSetStrategy_To_v1beta2_RollingUpdateStatefulSetStrategy, - Convert_v1beta2_Scale_To_extensions_Scale, - Convert_extensions_Scale_To_v1beta2_Scale, - Convert_v1beta2_ScaleSpec_To_extensions_ScaleSpec, - Convert_extensions_ScaleSpec_To_v1beta2_ScaleSpec, - Convert_v1beta2_ScaleStatus_To_extensions_ScaleStatus, - Convert_extensions_ScaleStatus_To_v1beta2_ScaleStatus, + Convert_v1beta2_Scale_To_autoscaling_Scale, + Convert_autoscaling_Scale_To_v1beta2_Scale, + Convert_v1beta2_ScaleSpec_To_autoscaling_ScaleSpec, + Convert_autoscaling_ScaleSpec_To_v1beta2_ScaleSpec, + Convert_v1beta2_ScaleStatus_To_autoscaling_ScaleStatus, + Convert_autoscaling_ScaleStatus_To_v1beta2_ScaleStatus, Convert_v1beta2_StatefulSet_To_apps_StatefulSet, Convert_apps_StatefulSet_To_v1beta2_StatefulSet, + Convert_v1beta2_StatefulSetCondition_To_apps_StatefulSetCondition, + Convert_apps_StatefulSetCondition_To_v1beta2_StatefulSetCondition, Convert_v1beta2_StatefulSetList_To_apps_StatefulSetList, Convert_apps_StatefulSetList_To_v1beta2_StatefulSetList, Convert_v1beta2_StatefulSetSpec_To_apps_StatefulSetSpec, @@ -194,6 +199,34 @@ func autoConvert_extensions_DaemonSet_To_v1beta2_DaemonSet(in *extensions.Daemon return nil } +func autoConvert_v1beta2_DaemonSetCondition_To_extensions_DaemonSetCondition(in *v1beta2.DaemonSetCondition, out *extensions.DaemonSetCondition, s conversion.Scope) error { + out.Type = extensions.DaemonSetConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1beta2_DaemonSetCondition_To_extensions_DaemonSetCondition is an autogenerated conversion function. +func Convert_v1beta2_DaemonSetCondition_To_extensions_DaemonSetCondition(in *v1beta2.DaemonSetCondition, out *extensions.DaemonSetCondition, s conversion.Scope) error { + return autoConvert_v1beta2_DaemonSetCondition_To_extensions_DaemonSetCondition(in, out, s) +} + +func autoConvert_extensions_DaemonSetCondition_To_v1beta2_DaemonSetCondition(in *extensions.DaemonSetCondition, out *v1beta2.DaemonSetCondition, s conversion.Scope) error { + out.Type = v1beta2.DaemonSetConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_extensions_DaemonSetCondition_To_v1beta2_DaemonSetCondition is an autogenerated conversion function. +func Convert_extensions_DaemonSetCondition_To_v1beta2_DaemonSetCondition(in *extensions.DaemonSetCondition, out *v1beta2.DaemonSetCondition, s conversion.Scope) error { + return autoConvert_extensions_DaemonSetCondition_To_v1beta2_DaemonSetCondition(in, out, s) +} + func autoConvert_v1beta2_DaemonSetList_To_extensions_DaemonSetList(in *v1beta2.DaemonSetList, out *extensions.DaemonSetList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items != nil { @@ -237,8 +270,8 @@ func Convert_extensions_DaemonSetList_To_v1beta2_DaemonSetList(in *extensions.Da } func autoConvert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec(in *v1beta2.DaemonSetSpec, out *extensions.DaemonSetSpec, s conversion.Scope) error { - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta2_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -250,8 +283,8 @@ func autoConvert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec(in *v1beta2.D } func autoConvert_extensions_DaemonSetSpec_To_v1beta2_DaemonSetSpec(in *extensions.DaemonSetSpec, out *v1beta2.DaemonSetSpec, s conversion.Scope) error { - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DaemonSetUpdateStrategy_To_v1beta2_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -273,6 +306,7 @@ func autoConvert_v1beta2_DaemonSetStatus_To_extensions_DaemonSetStatus(in *v1bet out.NumberAvailable = in.NumberAvailable out.NumberUnavailable = in.NumberUnavailable out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]extensions.DaemonSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } @@ -291,6 +325,7 @@ func autoConvert_extensions_DaemonSetStatus_To_v1beta2_DaemonSetStatus(in *exten out.NumberAvailable = in.NumberAvailable out.NumberUnavailable = in.NumberUnavailable out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]v1beta2.DaemonSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } @@ -351,7 +386,7 @@ func autoConvert_extensions_Deployment_To_v1beta2_Deployment(in *extensions.Depl func autoConvert_v1beta2_DeploymentCondition_To_extensions_DeploymentCondition(in *v1beta2.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { out.Type = extensions.DeploymentConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) + out.Status = core.ConditionStatus(in.Status) out.LastUpdateTime = in.LastUpdateTime out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason @@ -366,7 +401,7 @@ func Convert_v1beta2_DeploymentCondition_To_extensions_DeploymentCondition(in *v func autoConvert_extensions_DeploymentCondition_To_v1beta2_DeploymentCondition(in *extensions.DeploymentCondition, out *v1beta2.DeploymentCondition, s conversion.Scope) error { out.Type = v1beta2.DeploymentConditionType(in.Type) - out.Status = core_v1.ConditionStatus(in.Status) + out.Status = v1.ConditionStatus(in.Status) out.LastUpdateTime = in.LastUpdateTime out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason @@ -422,11 +457,11 @@ func Convert_extensions_DeploymentList_To_v1beta2_DeploymentList(in *extensions. } func autoConvert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(in *v1beta2.DeploymentSpec, out *extensions.DeploymentSpec, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta2_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -440,11 +475,11 @@ func autoConvert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(in *v1beta2 } func autoConvert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec(in *extensions.DeploymentSpec, out *v1beta2.DeploymentSpec, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DeploymentStrategy_To_v1beta2_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -554,7 +589,7 @@ func Convert_extensions_ReplicaSet_To_v1beta2_ReplicaSet(in *extensions.ReplicaS func autoConvert_v1beta2_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in *v1beta2.ReplicaSetCondition, out *extensions.ReplicaSetCondition, s conversion.Scope) error { out.Type = extensions.ReplicaSetConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) + out.Status = core.ConditionStatus(in.Status) out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason out.Message = in.Message @@ -568,7 +603,7 @@ func Convert_v1beta2_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in *v func autoConvert_extensions_ReplicaSetCondition_To_v1beta2_ReplicaSetCondition(in *extensions.ReplicaSetCondition, out *v1beta2.ReplicaSetCondition, s conversion.Scope) error { out.Type = v1beta2.ReplicaSetConditionType(in.Type) - out.Status = core_v1.ConditionStatus(in.Status) + out.Status = v1.ConditionStatus(in.Status) out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason out.Message = in.Message @@ -623,24 +658,24 @@ func Convert_extensions_ReplicaSetList_To_v1beta2_ReplicaSetList(in *extensions. } func autoConvert_v1beta2_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *v1beta2.ReplicaSetSpec, out *extensions.ReplicaSetSpec, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } out.MinReadySeconds = in.MinReadySeconds - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil } func autoConvert_extensions_ReplicaSetSpec_To_v1beta2_ReplicaSetSpec(in *extensions.ReplicaSetSpec, out *v1beta2.ReplicaSetSpec, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } out.MinReadySeconds = in.MinReadySeconds - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil @@ -699,7 +734,7 @@ func autoConvert_extensions_RollingUpdateDeployment_To_v1beta2_RollingUpdateDepl } func autoConvert_v1beta2_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy(in *v1beta2.RollingUpdateStatefulSetStrategy, out *apps.RollingUpdateStatefulSetStrategy, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.Partition, &out.Partition, s); err != nil { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Partition, &out.Partition, s); err != nil { return err } return nil @@ -711,7 +746,7 @@ func Convert_v1beta2_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateState } func autoConvert_apps_RollingUpdateStatefulSetStrategy_To_v1beta2_RollingUpdateStatefulSetStrategy(in *apps.RollingUpdateStatefulSetStrategy, out *v1beta2.RollingUpdateStatefulSetStrategy, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.Partition, &out.Partition, s); err != nil { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Partition, &out.Partition, s); err != nil { return err } return nil @@ -722,68 +757,68 @@ func Convert_apps_RollingUpdateStatefulSetStrategy_To_v1beta2_RollingUpdateState return autoConvert_apps_RollingUpdateStatefulSetStrategy_To_v1beta2_RollingUpdateStatefulSetStrategy(in, out, s) } -func autoConvert_v1beta2_Scale_To_extensions_Scale(in *v1beta2.Scale, out *extensions.Scale, s conversion.Scope) error { +func autoConvert_v1beta2_Scale_To_autoscaling_Scale(in *v1beta2.Scale, out *autoscaling.Scale, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ScaleSpec_To_extensions_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_v1beta2_ScaleSpec_To_autoscaling_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_v1beta2_ScaleStatus_To_extensions_ScaleStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_v1beta2_ScaleStatus_To_autoscaling_ScaleStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_v1beta2_Scale_To_extensions_Scale is an autogenerated conversion function. -func Convert_v1beta2_Scale_To_extensions_Scale(in *v1beta2.Scale, out *extensions.Scale, s conversion.Scope) error { - return autoConvert_v1beta2_Scale_To_extensions_Scale(in, out, s) +// Convert_v1beta2_Scale_To_autoscaling_Scale is an autogenerated conversion function. +func Convert_v1beta2_Scale_To_autoscaling_Scale(in *v1beta2.Scale, out *autoscaling.Scale, s conversion.Scope) error { + return autoConvert_v1beta2_Scale_To_autoscaling_Scale(in, out, s) } -func autoConvert_extensions_Scale_To_v1beta2_Scale(in *extensions.Scale, out *v1beta2.Scale, s conversion.Scope) error { +func autoConvert_autoscaling_Scale_To_v1beta2_Scale(in *autoscaling.Scale, out *v1beta2.Scale, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_extensions_ScaleSpec_To_v1beta2_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_autoscaling_ScaleSpec_To_v1beta2_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_extensions_ScaleStatus_To_v1beta2_ScaleStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_autoscaling_ScaleStatus_To_v1beta2_ScaleStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_extensions_Scale_To_v1beta2_Scale is an autogenerated conversion function. -func Convert_extensions_Scale_To_v1beta2_Scale(in *extensions.Scale, out *v1beta2.Scale, s conversion.Scope) error { - return autoConvert_extensions_Scale_To_v1beta2_Scale(in, out, s) +// Convert_autoscaling_Scale_To_v1beta2_Scale is an autogenerated conversion function. +func Convert_autoscaling_Scale_To_v1beta2_Scale(in *autoscaling.Scale, out *v1beta2.Scale, s conversion.Scope) error { + return autoConvert_autoscaling_Scale_To_v1beta2_Scale(in, out, s) } -func autoConvert_v1beta2_ScaleSpec_To_extensions_ScaleSpec(in *v1beta2.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { +func autoConvert_v1beta2_ScaleSpec_To_autoscaling_ScaleSpec(in *v1beta2.ScaleSpec, out *autoscaling.ScaleSpec, s conversion.Scope) error { out.Replicas = in.Replicas return nil } -// Convert_v1beta2_ScaleSpec_To_extensions_ScaleSpec is an autogenerated conversion function. -func Convert_v1beta2_ScaleSpec_To_extensions_ScaleSpec(in *v1beta2.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { - return autoConvert_v1beta2_ScaleSpec_To_extensions_ScaleSpec(in, out, s) +// Convert_v1beta2_ScaleSpec_To_autoscaling_ScaleSpec is an autogenerated conversion function. +func Convert_v1beta2_ScaleSpec_To_autoscaling_ScaleSpec(in *v1beta2.ScaleSpec, out *autoscaling.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1beta2_ScaleSpec_To_autoscaling_ScaleSpec(in, out, s) } -func autoConvert_extensions_ScaleSpec_To_v1beta2_ScaleSpec(in *extensions.ScaleSpec, out *v1beta2.ScaleSpec, s conversion.Scope) error { +func autoConvert_autoscaling_ScaleSpec_To_v1beta2_ScaleSpec(in *autoscaling.ScaleSpec, out *v1beta2.ScaleSpec, s conversion.Scope) error { out.Replicas = in.Replicas return nil } -// Convert_extensions_ScaleSpec_To_v1beta2_ScaleSpec is an autogenerated conversion function. -func Convert_extensions_ScaleSpec_To_v1beta2_ScaleSpec(in *extensions.ScaleSpec, out *v1beta2.ScaleSpec, s conversion.Scope) error { - return autoConvert_extensions_ScaleSpec_To_v1beta2_ScaleSpec(in, out, s) +// Convert_autoscaling_ScaleSpec_To_v1beta2_ScaleSpec is an autogenerated conversion function. +func Convert_autoscaling_ScaleSpec_To_v1beta2_ScaleSpec(in *autoscaling.ScaleSpec, out *v1beta2.ScaleSpec, s conversion.Scope) error { + return autoConvert_autoscaling_ScaleSpec_To_v1beta2_ScaleSpec(in, out, s) } -func autoConvert_v1beta2_ScaleStatus_To_extensions_ScaleStatus(in *v1beta2.ScaleStatus, out *extensions.ScaleStatus, s conversion.Scope) error { +func autoConvert_v1beta2_ScaleStatus_To_autoscaling_ScaleStatus(in *v1beta2.ScaleStatus, out *autoscaling.ScaleStatus, s conversion.Scope) error { out.Replicas = in.Replicas - // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs string) // WARNING: in.TargetSelector requires manual conversion: does not exist in peer-type return nil } -func autoConvert_extensions_ScaleStatus_To_v1beta2_ScaleStatus(in *extensions.ScaleStatus, out *v1beta2.ScaleStatus, s conversion.Scope) error { +func autoConvert_autoscaling_ScaleStatus_To_v1beta2_ScaleStatus(in *autoscaling.ScaleStatus, out *v1beta2.ScaleStatus, s conversion.Scope) error { out.Replicas = in.Replicas - // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs map[string]string) + // WARNING: in.Selector requires manual conversion: inconvertible types (string vs map[string]string) return nil } @@ -819,6 +854,34 @@ func Convert_apps_StatefulSet_To_v1beta2_StatefulSet(in *apps.StatefulSet, out * return autoConvert_apps_StatefulSet_To_v1beta2_StatefulSet(in, out, s) } +func autoConvert_v1beta2_StatefulSetCondition_To_apps_StatefulSetCondition(in *v1beta2.StatefulSetCondition, out *apps.StatefulSetCondition, s conversion.Scope) error { + out.Type = apps.StatefulSetConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1beta2_StatefulSetCondition_To_apps_StatefulSetCondition is an autogenerated conversion function. +func Convert_v1beta2_StatefulSetCondition_To_apps_StatefulSetCondition(in *v1beta2.StatefulSetCondition, out *apps.StatefulSetCondition, s conversion.Scope) error { + return autoConvert_v1beta2_StatefulSetCondition_To_apps_StatefulSetCondition(in, out, s) +} + +func autoConvert_apps_StatefulSetCondition_To_v1beta2_StatefulSetCondition(in *apps.StatefulSetCondition, out *v1beta2.StatefulSetCondition, s conversion.Scope) error { + out.Type = v1beta2.StatefulSetConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_apps_StatefulSetCondition_To_v1beta2_StatefulSetCondition is an autogenerated conversion function. +func Convert_apps_StatefulSetCondition_To_v1beta2_StatefulSetCondition(in *apps.StatefulSetCondition, out *v1beta2.StatefulSetCondition, s conversion.Scope) error { + return autoConvert_apps_StatefulSetCondition_To_v1beta2_StatefulSetCondition(in, out, s) +} + func autoConvert_v1beta2_StatefulSetList_To_apps_StatefulSetList(in *v1beta2.StatefulSetList, out *apps.StatefulSetList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items != nil { @@ -862,14 +925,14 @@ func Convert_apps_StatefulSetList_To_v1beta2_StatefulSetList(in *apps.StatefulSe } func autoConvert_v1beta2_StatefulSetSpec_To_apps_StatefulSetSpec(in *v1beta2.StatefulSetSpec, out *apps.StatefulSetSpec, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } - out.VolumeClaimTemplates = *(*[]api.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) + out.VolumeClaimTemplates = *(*[]core.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) out.ServiceName = in.ServiceName out.PodManagementPolicy = apps.PodManagementPolicyType(in.PodManagementPolicy) if err := Convert_v1beta2_StatefulSetUpdateStrategy_To_apps_StatefulSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -880,14 +943,14 @@ func autoConvert_v1beta2_StatefulSetSpec_To_apps_StatefulSetSpec(in *v1beta2.Sta } func autoConvert_apps_StatefulSetSpec_To_v1beta2_StatefulSetSpec(in *apps.StatefulSetSpec, out *v1beta2.StatefulSetSpec, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } - out.VolumeClaimTemplates = *(*[]core_v1.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) + out.VolumeClaimTemplates = *(*[]v1.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) out.ServiceName = in.ServiceName out.PodManagementPolicy = v1beta2.PodManagementPolicyType(in.PodManagementPolicy) if err := Convert_apps_StatefulSetUpdateStrategy_To_v1beta2_StatefulSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -906,6 +969,7 @@ func autoConvert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta2 out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]apps.StatefulSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } @@ -918,6 +982,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.St out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]v1beta2.StatefulSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/zz_generated.defaults.go index 29eabcaf8..ddf7f6a16 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/v1beta2/zz_generated.defaults.go @@ -23,7 +23,7 @@ package v1beta2 import ( v1beta2 "k8s.io/api/apps/v1beta2" runtime "k8s.io/apimachinery/pkg/runtime" - v1 "k8s.io/kubernetes/pkg/api/v1" + v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/BUILD index d02837508..3d80e8e2b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/BUILD @@ -11,9 +11,9 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/apps/validation", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", @@ -27,8 +27,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/apps/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/core: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/util/validation/field:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/validation.go index 85bc564ff..fc7c029ca 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/validation.go @@ -24,9 +24,9 @@ import ( unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" - apivalidation "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/apis/apps" + api "k8s.io/kubernetes/pkg/apis/core" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" ) // ValidateStatefulSetName can be used to check whether the given StatefulSet name is valid. diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/validation_test.go index 306fddc7c..cf5ed252c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/validation/validation_test.go @@ -23,8 +23,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestValidateStatefulSet(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/apps/zz_generated.deepcopy.go index 983dabf46..5e8a74746 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/apps/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/zz_generated.deepcopy.go @@ -22,57 +22,10 @@ package apps import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - reflect "reflect" + core "k8s.io/kubernetes/pkg/apis/core" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ControllerRevision).DeepCopyInto(out.(*ControllerRevision)) - return nil - }, InType: reflect.TypeOf(&ControllerRevision{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ControllerRevisionList).DeepCopyInto(out.(*ControllerRevisionList)) - return nil - }, InType: reflect.TypeOf(&ControllerRevisionList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateStatefulSetStrategy).DeepCopyInto(out.(*RollingUpdateStatefulSetStrategy)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateStatefulSetStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSet).DeepCopyInto(out.(*StatefulSet)) - return nil - }, InType: reflect.TypeOf(&StatefulSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetList).DeepCopyInto(out.(*StatefulSetList)) - return nil - }, InType: reflect.TypeOf(&StatefulSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetSpec).DeepCopyInto(out.(*StatefulSetSpec)) - return nil - }, InType: reflect.TypeOf(&StatefulSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetStatus).DeepCopyInto(out.(*StatefulSetStatus)) - return nil - }, InType: reflect.TypeOf(&StatefulSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetUpdateStrategy).DeepCopyInto(out.(*StatefulSetUpdateStrategy)) - return nil - }, InType: reflect.TypeOf(&StatefulSetUpdateStrategy{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) { *out = *in @@ -184,6 +137,23 @@ func (in *StatefulSet) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition. +func (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition { + if in == nil { + return nil + } + out := new(StatefulSetCondition) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) { *out = *in @@ -233,7 +203,7 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { in.Template.DeepCopyInto(&out.Template) if in.VolumeClaimTemplates != nil { in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates - *out = make([]api.PersistentVolumeClaim, len(*in)) + *out = make([]core.PersistentVolumeClaim, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -282,6 +252,13 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { **out = **in } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]StatefulSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authentication/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/authentication/BUILD index b838290ca..839995873 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authentication/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/authentication/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/authentication", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authentication/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/authentication/doc.go index 88bdf625b..0afbdd3a3 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authentication/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authentication/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=authentication.k8s.io package authentication // import "k8s.io/kubernetes/pkg/apis/authentication" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/BUILD index 23f37eb29..ec4744b94 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/authentication/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/authentication:go_default_library", "//pkg/apis/authentication/v1:go_default_library", "//pkg/apis/authentication/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/install.go index 9f1c4d647..3e1271dcb 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authentication/install/install.go @@ -23,14 +23,14 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/authentication" "k8s.io/kubernetes/pkg/apis/authentication/v1" "k8s.io/kubernetes/pkg/apis/authentication/v1beta1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authentication/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/authentication/zz_generated.deepcopy.go index 0efa1497a..8f3ca0afe 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authentication/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authentication/zz_generated.deepcopy.go @@ -21,40 +21,9 @@ limitations under the License. package authentication import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenReview).DeepCopyInto(out.(*TokenReview)) - return nil - }, InType: reflect.TypeOf(&TokenReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenReviewSpec).DeepCopyInto(out.(*TokenReviewSpec)) - return nil - }, InType: reflect.TypeOf(&TokenReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenReviewStatus).DeepCopyInto(out.(*TokenReviewStatus)) - return nil - }, InType: reflect.TypeOf(&TokenReviewStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*UserInfo).DeepCopyInto(out.(*UserInfo)) - return nil - }, InType: reflect.TypeOf(&UserInfo{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenReview) DeepCopyInto(out *TokenReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/authorization/BUILD index 59a953576..30e71c496 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authorization/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/authorization", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/authorization/doc.go index 29f9b6242..5cb3094ab 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authorization/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=authorization.k8s.io package authorization // import "k8s.io/kubernetes/pkg/apis/authorization" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/BUILD index 1862804aa..9825a5afd 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/authorization/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/authorization:go_default_library", "//pkg/apis/authorization/v1:go_default_library", "//pkg/apis/authorization/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/install.go index 47b78fe5e..2a9cbf6bd 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/install/install.go @@ -23,14 +23,14 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/authorization" "k8s.io/kubernetes/pkg/apis/authorization/v1" "k8s.io/kubernetes/pkg/apis/authorization/v1beta1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/types.go b/vendor/k8s.io/kubernetes/pkg/apis/authorization/types.go index 4920913c5..e798ec212 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authorization/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/types.go @@ -140,8 +140,13 @@ type SelfSubjectAccessReviewSpec struct { // SubjectAccessReviewStatus type SubjectAccessReviewStatus struct { - // Allowed is required. True if the action would be allowed, false otherwise. + // Allowed is required. True if the action would be allowed, false otherwise. Allowed bool + // Denied is optional. True if the action would be denied, otherwise + // false. If both allowed is false and denied is false, then the + // authorizer has no opinion on whether to authorize the action. Denied + // may not be true if Allowed is true. + Denied bool // Reason is optional. It indicates why a request was allowed or denied. Reason string // EvaluationError is an indication that some error occurred during the authorization check. @@ -205,7 +210,8 @@ type ResourceRule struct { // APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of // the enumerated resources in any API group will be allowed. "*" means all. APIGroups []string - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all. + // Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. + // "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. Resources []string // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. "*" means all. ResourceNames []string diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/authorization/v1/zz_generated.conversion.go index 1c06171c6..00caf7872 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authorization/v1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/v1/zz_generated.conversion.go @@ -369,6 +369,7 @@ func Convert_authorization_SubjectAccessReviewSpec_To_v1_SubjectAccessReviewSpec func autoConvert_v1_SubjectAccessReviewStatus_To_authorization_SubjectAccessReviewStatus(in *v1.SubjectAccessReviewStatus, out *authorization.SubjectAccessReviewStatus, s conversion.Scope) error { out.Allowed = in.Allowed + out.Denied = in.Denied out.Reason = in.Reason out.EvaluationError = in.EvaluationError return nil @@ -381,6 +382,7 @@ func Convert_v1_SubjectAccessReviewStatus_To_authorization_SubjectAccessReviewSt func autoConvert_authorization_SubjectAccessReviewStatus_To_v1_SubjectAccessReviewStatus(in *authorization.SubjectAccessReviewStatus, out *v1.SubjectAccessReviewStatus, s conversion.Scope) error { out.Allowed = in.Allowed + out.Denied = in.Denied out.Reason = in.Reason out.EvaluationError = in.EvaluationError return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/authorization/v1beta1/zz_generated.conversion.go index 4ba9417a6..234b4ff02 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authorization/v1beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/v1beta1/zz_generated.conversion.go @@ -369,6 +369,7 @@ func Convert_authorization_SubjectAccessReviewSpec_To_v1beta1_SubjectAccessRevie func autoConvert_v1beta1_SubjectAccessReviewStatus_To_authorization_SubjectAccessReviewStatus(in *v1beta1.SubjectAccessReviewStatus, out *authorization.SubjectAccessReviewStatus, s conversion.Scope) error { out.Allowed = in.Allowed + out.Denied = in.Denied out.Reason = in.Reason out.EvaluationError = in.EvaluationError return nil @@ -381,6 +382,7 @@ func Convert_v1beta1_SubjectAccessReviewStatus_To_authorization_SubjectAccessRev func autoConvert_authorization_SubjectAccessReviewStatus_To_v1beta1_SubjectAccessReviewStatus(in *authorization.SubjectAccessReviewStatus, out *v1beta1.SubjectAccessReviewStatus, s conversion.Scope) error { out.Allowed = in.Allowed + out.Denied = in.Denied out.Reason = in.Reason out.EvaluationError = in.EvaluationError return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/authorization/zz_generated.deepcopy.go index eb121f308..cdc23a209 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/authorization/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/zz_generated.deepcopy.go @@ -21,76 +21,9 @@ limitations under the License. package authorization import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LocalSubjectAccessReview).DeepCopyInto(out.(*LocalSubjectAccessReview)) - return nil - }, InType: reflect.TypeOf(&LocalSubjectAccessReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NonResourceAttributes).DeepCopyInto(out.(*NonResourceAttributes)) - return nil - }, InType: reflect.TypeOf(&NonResourceAttributes{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NonResourceRule).DeepCopyInto(out.(*NonResourceRule)) - return nil - }, InType: reflect.TypeOf(&NonResourceRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceAttributes).DeepCopyInto(out.(*ResourceAttributes)) - return nil - }, InType: reflect.TypeOf(&ResourceAttributes{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceRule).DeepCopyInto(out.(*ResourceRule)) - return nil - }, InType: reflect.TypeOf(&ResourceRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectAccessReview).DeepCopyInto(out.(*SelfSubjectAccessReview)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectAccessReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectAccessReviewSpec).DeepCopyInto(out.(*SelfSubjectAccessReviewSpec)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectAccessReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectRulesReview).DeepCopyInto(out.(*SelfSubjectRulesReview)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectRulesReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectRulesReviewSpec).DeepCopyInto(out.(*SelfSubjectRulesReviewSpec)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectRulesReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectAccessReview).DeepCopyInto(out.(*SubjectAccessReview)) - return nil - }, InType: reflect.TypeOf(&SubjectAccessReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectAccessReviewSpec).DeepCopyInto(out.(*SubjectAccessReviewSpec)) - return nil - }, InType: reflect.TypeOf(&SubjectAccessReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectAccessReviewStatus).DeepCopyInto(out.(*SubjectAccessReviewStatus)) - return nil - }, InType: reflect.TypeOf(&SubjectAccessReviewStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectRulesReviewStatus).DeepCopyInto(out.(*SubjectRulesReviewStatus)) - return nil - }, InType: reflect.TypeOf(&SubjectRulesReviewStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LocalSubjectAccessReview) DeepCopyInto(out *LocalSubjectAccessReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/BUILD index edb280ba0..dcca30c00 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/BUILD @@ -16,10 +16,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/autoscaling", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/doc.go index d9e11576f..7c91aac8b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package autoscaling // import "k8s.io/kubernetes/pkg/apis/autoscaling" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer/BUILD index 5d1dbca63..ae20853a3 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer/BUILD @@ -10,10 +10,11 @@ go_library( srcs = ["fuzzer.go"], importpath = "k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer/fuzzer.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer/fuzzer.go index 7133c1627..2c1ea0608 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer/fuzzer.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer/fuzzer.go @@ -18,15 +18,26 @@ package fuzzer import ( fuzz "github.com/google/gofuzz" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" ) // Funcs returns the fuzzer functions for the autoscaling api group. var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { return []interface{}{ + func(s *autoscaling.ScaleStatus, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + + // ensure we have a valid selector + metaSelector := &metav1.LabelSelector{} + c.Fuzz(metaSelector) + labelSelector, _ := metav1.LabelSelectorAsSelector(metaSelector) + s.Selector = labelSelector.String() + }, func(s *autoscaling.HorizontalPodAutoscalerSpec, c fuzz.Continue) { c.FuzzNoCustom(s) // fuzz self without calling this function again minReplicas := int32(c.Rand.Int31()) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/BUILD index 621c44198..d1cb4d5dc 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/autoscaling/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/autoscaling/v1:go_default_library", "//pkg/apis/autoscaling/v2beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/install.go index e7a75f1e5..507f2b17f 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/install/install.go @@ -22,14 +22,14 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/autoscaling/v1" "k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/register.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/register.go index 2bcea84b9..6c321a3ab 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/register.go @@ -42,7 +42,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Scale{}, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go index 7c830d946..0e9d669ad 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/types.go @@ -19,7 +19,7 @@ package autoscaling import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/BUILD index 8a311c1ad..4f2490f7d 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/BUILD @@ -18,8 +18,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/autoscaling/v1", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -36,9 +36,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/autoscaling/v1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/autoscaling/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/conversion.go index 04dc4a280..599fa7622 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/conversion.go @@ -23,8 +23,8 @@ import ( "k8s.io/apimachinery/pkg/conversion" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" ) func addConversionFuncs(scheme *runtime.Scheme) error { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/defaults_test.go index def108631..30c4706f2 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/defaults_test.go @@ -23,10 +23,10 @@ import ( autoscalingv1 "k8s.io/api/autoscaling/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" . "k8s.io/kubernetes/pkg/apis/autoscaling/v1" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestSetDefaultHPA(t *testing.T) { @@ -67,18 +67,18 @@ func TestSetDefaultHPA(t *testing.T) { } func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/zz_generated.conversion.go index e1f48bdce..bb1bedd52 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v1/zz_generated.conversion.go @@ -27,8 +27,8 @@ import ( meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" + core "k8s.io/kubernetes/pkg/apis/core" unsafe "unsafe" ) @@ -385,7 +385,7 @@ func Convert_autoscaling_PodsMetricStatus_To_v1_PodsMetricStatus(in *autoscaling } func autoConvert_v1_ResourceMetricSource_To_autoscaling_ResourceMetricSource(in *v1.ResourceMetricSource, out *autoscaling.ResourceMetricSource, s conversion.Scope) error { - out.Name = api.ResourceName(in.Name) + out.Name = core.ResourceName(in.Name) out.TargetAverageUtilization = (*int32)(unsafe.Pointer(in.TargetAverageUtilization)) out.TargetAverageValue = (*resource.Quantity)(unsafe.Pointer(in.TargetAverageValue)) return nil @@ -409,7 +409,7 @@ func Convert_autoscaling_ResourceMetricSource_To_v1_ResourceMetricSource(in *aut } func autoConvert_v1_ResourceMetricStatus_To_autoscaling_ResourceMetricStatus(in *v1.ResourceMetricStatus, out *autoscaling.ResourceMetricStatus, s conversion.Scope) error { - out.Name = api.ResourceName(in.Name) + out.Name = core.ResourceName(in.Name) out.CurrentAverageUtilization = (*int32)(unsafe.Pointer(in.CurrentAverageUtilization)) out.CurrentAverageValue = in.CurrentAverageValue return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD index 87a5a84da..720df24df 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD @@ -17,8 +17,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -48,10 +48,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/autoscaling/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/defaults_test.go index 3fe496ee4..ec138b4dd 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/defaults_test.go @@ -24,11 +24,11 @@ import ( "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/autoscaling" _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" . "k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestSetDefaultHPA(t *testing.T) { @@ -105,18 +105,18 @@ func TestSetDefaultHPA(t *testing.T) { } func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go index af3bb3d81..7b1f977df 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go @@ -27,8 +27,8 @@ import ( meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" + core "k8s.io/kubernetes/pkg/apis/core" unsafe "unsafe" ) @@ -390,7 +390,7 @@ func Convert_autoscaling_PodsMetricStatus_To_v2beta1_PodsMetricStatus(in *autosc } func autoConvert_v2beta1_ResourceMetricSource_To_autoscaling_ResourceMetricSource(in *v2beta1.ResourceMetricSource, out *autoscaling.ResourceMetricSource, s conversion.Scope) error { - out.Name = api.ResourceName(in.Name) + out.Name = core.ResourceName(in.Name) out.TargetAverageUtilization = (*int32)(unsafe.Pointer(in.TargetAverageUtilization)) out.TargetAverageValue = (*resource.Quantity)(unsafe.Pointer(in.TargetAverageValue)) return nil @@ -414,7 +414,7 @@ func Convert_autoscaling_ResourceMetricSource_To_v2beta1_ResourceMetricSource(in } func autoConvert_v2beta1_ResourceMetricStatus_To_autoscaling_ResourceMetricStatus(in *v2beta1.ResourceMetricStatus, out *autoscaling.ResourceMetricStatus, s conversion.Scope) error { - out.Name = api.ResourceName(in.Name) + out.Name = core.ResourceName(in.Name) out.CurrentAverageUtilization = (*int32)(unsafe.Pointer(in.CurrentAverageUtilization)) out.CurrentAverageValue = in.CurrentAverageValue return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/BUILD index f47483fc2..c6be1eff0 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/BUILD @@ -11,8 +11,8 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/autoscaling/validation", deps = [ - "//pkg/api/validation:go_default_library", "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation/path:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", @@ -25,8 +25,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/autoscaling/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/validation.go index e317fed2a..6338b2a74 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/validation.go @@ -22,8 +22,8 @@ import ( pathvalidation "k8s.io/apimachinery/pkg/api/validation/path" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation/field" - apivalidation "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/apis/autoscaling" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" ) func ValidateScale(scale *autoscaling.Scale) field.ErrorList { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/validation_test.go index e07442c9e..d334a77b3 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/validation/validation_test.go @@ -22,8 +22,8 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestValidateScale(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go index ec833882e..c0bccf3b9 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/zz_generated.deepcopy.go @@ -23,92 +23,9 @@ package autoscaling import ( resource "k8s.io/apimachinery/pkg/api/resource" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CrossVersionObjectReference).DeepCopyInto(out.(*CrossVersionObjectReference)) - return nil - }, InType: reflect.TypeOf(&CrossVersionObjectReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscaler).DeepCopyInto(out.(*HorizontalPodAutoscaler)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscaler{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerCondition).DeepCopyInto(out.(*HorizontalPodAutoscalerCondition)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerList).DeepCopyInto(out.(*HorizontalPodAutoscalerList)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerSpec).DeepCopyInto(out.(*HorizontalPodAutoscalerSpec)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerStatus).DeepCopyInto(out.(*HorizontalPodAutoscalerStatus)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricSpec).DeepCopyInto(out.(*MetricSpec)) - return nil - }, InType: reflect.TypeOf(&MetricSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricStatus).DeepCopyInto(out.(*MetricStatus)) - return nil - }, InType: reflect.TypeOf(&MetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectMetricSource).DeepCopyInto(out.(*ObjectMetricSource)) - return nil - }, InType: reflect.TypeOf(&ObjectMetricSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectMetricStatus).DeepCopyInto(out.(*ObjectMetricStatus)) - return nil - }, InType: reflect.TypeOf(&ObjectMetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodsMetricSource).DeepCopyInto(out.(*PodsMetricSource)) - return nil - }, InType: reflect.TypeOf(&PodsMetricSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodsMetricStatus).DeepCopyInto(out.(*PodsMetricStatus)) - return nil - }, InType: reflect.TypeOf(&PodsMetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceMetricSource).DeepCopyInto(out.(*ResourceMetricSource)) - return nil - }, InType: reflect.TypeOf(&ResourceMetricSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceMetricStatus).DeepCopyInto(out.(*ResourceMetricStatus)) - return nil - }, InType: reflect.TypeOf(&ResourceMetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Scale).DeepCopyInto(out.(*Scale)) - return nil - }, InType: reflect.TypeOf(&Scale{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleSpec).DeepCopyInto(out.(*ScaleSpec)) - return nil - }, InType: reflect.TypeOf(&ScaleSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleStatus).DeepCopyInto(out.(*ScaleStatus)) - return nil - }, InType: reflect.TypeOf(&ScaleStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/batch/BUILD index 9c4eaadb0..d8c7452d1 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/BUILD @@ -15,9 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/batch", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/doc.go index 9b2b792bd..a80b3597f 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package batch // import "k8s.io/kubernetes/pkg/apis/batch" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/batch/install/BUILD index 6383a7795..3445e3f35 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/batch/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/batch/v1:go_default_library", "//pkg/apis/batch/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/install/install.go index 7df8db201..e04f92605 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/install/install.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/batch/v1" "k8s.io/kubernetes/pkg/apis/batch/v1beta1" @@ -30,7 +30,7 @@ import ( ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/register.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/register.go index 49414bd3f..3b4a6d406 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/register.go @@ -42,7 +42,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Job{}, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/types.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/types.go index be2b692f2..32d921fb6 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/types.go @@ -18,7 +18,7 @@ package batch import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // +genclient @@ -250,7 +250,10 @@ type CronJobSpec struct { StartingDeadlineSeconds *int64 // Specifies how to treat concurrent executions of a Job. - // Defaults to Allow. + // Valid values are: + // - "Allow" (default): allows CronJobs to run concurrently; + // - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; + // - "Replace": cancels currently running job and replaces it with a new one // +optional ConcurrencyPolicy ConcurrencyPolicy diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/BUILD index 5c24b3eab..2413a15ab 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/BUILD @@ -18,9 +18,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/batch/v1", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -36,9 +36,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/batch/v1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/batch/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/conversion.go index 941b61d4a..98aae5c27 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/conversion.go @@ -23,8 +23,8 @@ import ( "k8s.io/apimachinery/pkg/conversion" "k8s.io/apimachinery/pkg/runtime" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/batch" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) func addConversionFuncs(scheme *runtime.Scheme) error { @@ -62,7 +62,7 @@ func Convert_batch_JobSpec_To_v1_JobSpec(in *batch.JobSpec, out *batchv1.JobSpec out.ManualSelector = nil } - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil @@ -81,7 +81,7 @@ func Convert_v1_JobSpec_To_batch_JobSpec(in *batchv1.JobSpec, out *batch.JobSpec out.ManualSelector = nil } - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/defaults_test.go index f19ac542a..03cfcf4f2 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/defaults_test.go @@ -25,10 +25,10 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/batch/install" . "k8s.io/kubernetes/pkg/apis/batch/v1" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestSetDefaultJob(t *testing.T) { @@ -226,18 +226,18 @@ func validateDefaultInt32(t *testing.T, name string, field string, actual *int32 } func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/zz_generated.conversion.go index 487b9c63a..dc346c527 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/zz_generated.conversion.go @@ -26,9 +26,9 @@ import ( meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - api_v1 "k8s.io/kubernetes/pkg/api/v1" batch "k8s.io/kubernetes/pkg/apis/batch" + core "k8s.io/kubernetes/pkg/apis/core" + apis_core_v1 "k8s.io/kubernetes/pkg/apis/core/v1" unsafe "unsafe" ) @@ -87,7 +87,7 @@ func Convert_batch_Job_To_v1_Job(in *batch.Job, out *v1.Job, s conversion.Scope) func autoConvert_v1_JobCondition_To_batch_JobCondition(in *v1.JobCondition, out *batch.JobCondition, s conversion.Scope) error { out.Type = batch.JobConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) + out.Status = core.ConditionStatus(in.Status) out.LastProbeTime = in.LastProbeTime out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason @@ -164,7 +164,7 @@ func autoConvert_v1_JobSpec_To_batch_JobSpec(in *v1.JobSpec, out *batch.JobSpec, out.BackoffLimit = (*int32)(unsafe.Pointer(in.BackoffLimit)) out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) out.ManualSelector = (*bool)(unsafe.Pointer(in.ManualSelector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := apis_core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil @@ -177,7 +177,7 @@ func autoConvert_batch_JobSpec_To_v1_JobSpec(in *batch.JobSpec, out *v1.JobSpec, out.BackoffLimit = (*int32)(unsafe.Pointer(in.BackoffLimit)) out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) out.ManualSelector = (*bool)(unsafe.Pointer(in.ManualSelector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := apis_core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/zz_generated.defaults.go index 18c0cc6d8..976735a1a 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1/zz_generated.defaults.go @@ -23,7 +23,7 @@ package v1 import ( v1 "k8s.io/api/batch/v1" runtime "k8s.io/apimachinery/pkg/runtime" - api_v1 "k8s.io/kubernetes/pkg/api/v1" + core_v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // RegisterDefaults adds defaulters functions to the given scheme. @@ -37,135 +37,135 @@ func RegisterDefaults(scheme *runtime.Scheme) error { func SetObjectDefaults_Job(in *v1.Job) { SetDefaults_Job(in) - api_v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) + core_v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) for i := range in.Spec.Template.Spec.Volumes { a := &in.Spec.Template.Spec.Volumes[i] - api_v1.SetDefaults_Volume(a) + core_v1.SetDefaults_Volume(a) if a.VolumeSource.HostPath != nil { - api_v1.SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath) + core_v1.SetDefaults_HostPathVolumeSource(a.VolumeSource.HostPath) } if a.VolumeSource.Secret != nil { - api_v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) + core_v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) } if a.VolumeSource.ISCSI != nil { - api_v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) + core_v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) } if a.VolumeSource.RBD != nil { - api_v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) + core_v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) } if a.VolumeSource.DownwardAPI != nil { - api_v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) + core_v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) for j := range a.VolumeSource.DownwardAPI.Items { b := &a.VolumeSource.DownwardAPI.Items[j] if b.FieldRef != nil { - api_v1.SetDefaults_ObjectFieldSelector(b.FieldRef) + core_v1.SetDefaults_ObjectFieldSelector(b.FieldRef) } } } if a.VolumeSource.ConfigMap != nil { - api_v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) + core_v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) } if a.VolumeSource.AzureDisk != nil { - api_v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) + core_v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) } if a.VolumeSource.Projected != nil { - api_v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) + core_v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) for j := range a.VolumeSource.Projected.Sources { b := &a.VolumeSource.Projected.Sources[j] if b.DownwardAPI != nil { for k := range b.DownwardAPI.Items { c := &b.DownwardAPI.Items[k] if c.FieldRef != nil { - api_v1.SetDefaults_ObjectFieldSelector(c.FieldRef) + core_v1.SetDefaults_ObjectFieldSelector(c.FieldRef) } } } } } if a.VolumeSource.ScaleIO != nil { - api_v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) + core_v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) } } for i := range in.Spec.Template.Spec.InitContainers { a := &in.Spec.Template.Spec.InitContainers[i] - api_v1.SetDefaults_Container(a) + core_v1.SetDefaults_Container(a) for j := range a.Ports { b := &a.Ports[j] - api_v1.SetDefaults_ContainerPort(b) + core_v1.SetDefaults_ContainerPort(b) } for j := range a.Env { b := &a.Env[j] if b.ValueFrom != nil { if b.ValueFrom.FieldRef != nil { - api_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) } } } - api_v1.SetDefaults_ResourceList(&a.Resources.Limits) - api_v1.SetDefaults_ResourceList(&a.Resources.Requests) + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) if a.LivenessProbe != nil { - api_v1.SetDefaults_Probe(a.LivenessProbe) + core_v1.SetDefaults_Probe(a.LivenessProbe) if a.LivenessProbe.Handler.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) } } if a.ReadinessProbe != nil { - api_v1.SetDefaults_Probe(a.ReadinessProbe) + core_v1.SetDefaults_Probe(a.ReadinessProbe) if a.ReadinessProbe.Handler.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) } } if a.Lifecycle != nil { if a.Lifecycle.PostStart != nil { if a.Lifecycle.PostStart.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) } } if a.Lifecycle.PreStop != nil { if a.Lifecycle.PreStop.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) } } } } for i := range in.Spec.Template.Spec.Containers { a := &in.Spec.Template.Spec.Containers[i] - api_v1.SetDefaults_Container(a) + core_v1.SetDefaults_Container(a) for j := range a.Ports { b := &a.Ports[j] - api_v1.SetDefaults_ContainerPort(b) + core_v1.SetDefaults_ContainerPort(b) } for j := range a.Env { b := &a.Env[j] if b.ValueFrom != nil { if b.ValueFrom.FieldRef != nil { - api_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + core_v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) } } } - api_v1.SetDefaults_ResourceList(&a.Resources.Limits) - api_v1.SetDefaults_ResourceList(&a.Resources.Requests) + core_v1.SetDefaults_ResourceList(&a.Resources.Limits) + core_v1.SetDefaults_ResourceList(&a.Resources.Requests) if a.LivenessProbe != nil { - api_v1.SetDefaults_Probe(a.LivenessProbe) + core_v1.SetDefaults_Probe(a.LivenessProbe) if a.LivenessProbe.Handler.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) } } if a.ReadinessProbe != nil { - api_v1.SetDefaults_Probe(a.ReadinessProbe) + core_v1.SetDefaults_Probe(a.ReadinessProbe) if a.ReadinessProbe.Handler.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) } } if a.Lifecycle != nil { if a.Lifecycle.PostStart != nil { if a.Lifecycle.PostStart.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) } } if a.Lifecycle.PreStop != nil { if a.Lifecycle.PreStop.HTTPGet != nil { - api_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + core_v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/BUILD index 82dc4910a..2985d4e9d 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/BUILD @@ -18,10 +18,10 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/batch/v1beta1", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/batch/v1:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//vendor/k8s.io/api/batch/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -37,9 +37,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/batch/v1beta1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/batch/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/k8s.io/api/batch/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/defaults_test.go index 1f11b0566..578ea9859 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/defaults_test.go @@ -23,10 +23,10 @@ import ( batchv1beta1 "k8s.io/api/batch/v1beta1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/batch/install" . "k8s.io/kubernetes/pkg/apis/batch/v1beta1" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestSetDefaultCronJob(t *testing.T) { @@ -90,18 +90,18 @@ func TestSetDefaultCronJob(t *testing.T) { } func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/zz_generated.conversion.go index f6ae62bd0..b977a5e74 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/zz_generated.conversion.go @@ -26,9 +26,9 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" batch "k8s.io/kubernetes/pkg/apis/batch" batch_v1 "k8s.io/kubernetes/pkg/apis/batch/v1" + core "k8s.io/kubernetes/pkg/apis/core" unsafe "unsafe" ) @@ -166,7 +166,7 @@ func Convert_batch_CronJobSpec_To_v1beta1_CronJobSpec(in *batch.CronJobSpec, out } func autoConvert_v1beta1_CronJobStatus_To_batch_CronJobStatus(in *v1beta1.CronJobStatus, out *batch.CronJobStatus, s conversion.Scope) error { - out.Active = *(*[]api.ObjectReference)(unsafe.Pointer(&in.Active)) + out.Active = *(*[]core.ObjectReference)(unsafe.Pointer(&in.Active)) out.LastScheduleTime = (*v1.Time)(unsafe.Pointer(in.LastScheduleTime)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/zz_generated.defaults.go index e9256b91d..e809e8096 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v1beta1/zz_generated.defaults.go @@ -23,7 +23,7 @@ package v1beta1 import ( v1beta1 "k8s.io/api/batch/v1beta1" runtime "k8s.io/apimachinery/pkg/runtime" - v1 "k8s.io/kubernetes/pkg/api/v1" + v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/BUILD index 88b630d76..79103911e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/BUILD @@ -18,10 +18,10 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/batch/v2alpha1", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/batch/v1:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -37,9 +37,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/batch/v2alpha1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/batch/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/defaults_test.go index ac76dd46b..1864d8c50 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/defaults_test.go @@ -23,10 +23,10 @@ import ( batchv2alpha1 "k8s.io/api/batch/v2alpha1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/batch/install" . "k8s.io/kubernetes/pkg/apis/batch/v2alpha1" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestSetDefaultCronJob(t *testing.T) { @@ -78,18 +78,18 @@ func TestSetDefaultCronJob(t *testing.T) { } func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/zz_generated.conversion.go index 92c8c8ceb..5f6896deb 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/zz_generated.conversion.go @@ -26,9 +26,9 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" batch "k8s.io/kubernetes/pkg/apis/batch" batch_v1 "k8s.io/kubernetes/pkg/apis/batch/v1" + core "k8s.io/kubernetes/pkg/apis/core" unsafe "unsafe" ) @@ -166,7 +166,7 @@ func Convert_batch_CronJobSpec_To_v2alpha1_CronJobSpec(in *batch.CronJobSpec, ou } func autoConvert_v2alpha1_CronJobStatus_To_batch_CronJobStatus(in *v2alpha1.CronJobStatus, out *batch.CronJobStatus, s conversion.Scope) error { - out.Active = *(*[]api.ObjectReference)(unsafe.Pointer(&in.Active)) + out.Active = *(*[]core.ObjectReference)(unsafe.Pointer(&in.Active)) out.LastScheduleTime = (*v1.Time)(unsafe.Pointer(in.LastScheduleTime)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/zz_generated.defaults.go index 46e8ca612..8983fcdda 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/v2alpha1/zz_generated.defaults.go @@ -23,7 +23,7 @@ package v2alpha1 import ( v2alpha1 "k8s.io/api/batch/v2alpha1" runtime "k8s.io/apimachinery/pkg/runtime" - v1 "k8s.io/kubernetes/pkg/api/v1" + v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/BUILD index ad686162a..318426b35 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/BUILD @@ -11,9 +11,9 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/batch/validation", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/github.com/robfig/cron:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", @@ -29,8 +29,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/batch/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/validation.go index 7f9215d70..a31bf6416 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/validation.go @@ -24,9 +24,9 @@ import ( "k8s.io/apimachinery/pkg/labels" apimachineryvalidation "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" - apivalidation "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" ) // TODO: generalize for other controller objects that will follow the same pattern, such as ReplicaSet and DaemonSet, and diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/validation_test.go index f40921e42..13135e2ea 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/validation/validation_test.go @@ -22,8 +22,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" ) func getValidManualSelector() *metav1.LabelSelector { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/batch/zz_generated.deepcopy.go index 483452c09..4e68dbd6d 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/batch/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/zz_generated.deepcopy.go @@ -22,69 +22,10 @@ package batch import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - reflect "reflect" + core "k8s.io/kubernetes/pkg/apis/core" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJob).DeepCopyInto(out.(*CronJob)) - return nil - }, InType: reflect.TypeOf(&CronJob{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJobList).DeepCopyInto(out.(*CronJobList)) - return nil - }, InType: reflect.TypeOf(&CronJobList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJobSpec).DeepCopyInto(out.(*CronJobSpec)) - return nil - }, InType: reflect.TypeOf(&CronJobSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJobStatus).DeepCopyInto(out.(*CronJobStatus)) - return nil - }, InType: reflect.TypeOf(&CronJobStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Job).DeepCopyInto(out.(*Job)) - return nil - }, InType: reflect.TypeOf(&Job{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobCondition).DeepCopyInto(out.(*JobCondition)) - return nil - }, InType: reflect.TypeOf(&JobCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobList).DeepCopyInto(out.(*JobList)) - return nil - }, InType: reflect.TypeOf(&JobList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobSpec).DeepCopyInto(out.(*JobSpec)) - return nil - }, InType: reflect.TypeOf(&JobSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobStatus).DeepCopyInto(out.(*JobStatus)) - return nil - }, InType: reflect.TypeOf(&JobStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobTemplate).DeepCopyInto(out.(*JobTemplate)) - return nil - }, InType: reflect.TypeOf(&JobTemplate{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobTemplateSpec).DeepCopyInto(out.(*JobTemplateSpec)) - return nil - }, InType: reflect.TypeOf(&JobTemplateSpec{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CronJob) DeepCopyInto(out *CronJob) { *out = *in @@ -206,7 +147,7 @@ func (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) { *out = *in if in.Active != nil { in, out := &in.Active, &out.Active - *out = make([]api.ObjectReference, len(*in)) + *out = make([]core.ObjectReference, len(*in)) copy(*out, *in) } if in.LastScheduleTime != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/certificates/BUILD index f6fc30739..cebbfcdea 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/certificates/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/BUILD @@ -17,7 +17,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/certificates", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/certificates/doc.go index cdc89bdcc..65aad6491 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/certificates/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=certificates.k8s.io package certificates // import "k8s.io/kubernetes/pkg/apis/certificates" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/BUILD index 7ca4b372e..e8962d640 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/certificates/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/certificates:go_default_library", "//pkg/apis/certificates/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/install.go index 34da4b93f..a4e9bb39d 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/install/install.go @@ -23,13 +23,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/certificates" "k8s.io/kubernetes/pkg/apis/certificates/v1beta1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/register.go b/vendor/k8s.io/kubernetes/pkg/apis/certificates/register.go index 085737583..a876251ca 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/certificates/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/register.go @@ -42,7 +42,7 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &CertificateSigningRequest{}, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/certificates/validation/BUILD index e8f66ab2d..788809206 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/certificates/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/validation/BUILD @@ -10,8 +10,8 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/certificates/validation", deps = [ - "//pkg/api/validation:go_default_library", "//pkg/apis/certificates:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/certificates/validation/validation.go index 4077e6b0c..3b61074bc 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/certificates/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/validation/validation.go @@ -20,8 +20,8 @@ import ( "fmt" "k8s.io/apimachinery/pkg/util/validation/field" - apivalidation "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/apis/certificates" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" ) // validateCSR validates the signature and formatting of a base64-wrapped, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/certificates/zz_generated.deepcopy.go index c1f76f53f..5704a4e6c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/certificates/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/zz_generated.deepcopy.go @@ -21,44 +21,9 @@ limitations under the License. package certificates import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequest).DeepCopyInto(out.(*CertificateSigningRequest)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequest{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequestCondition).DeepCopyInto(out.(*CertificateSigningRequestCondition)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequestCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequestList).DeepCopyInto(out.(*CertificateSigningRequestList)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequestList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequestSpec).DeepCopyInto(out.(*CertificateSigningRequestSpec)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequestSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequestStatus).DeepCopyInto(out.(*CertificateSigningRequestStatus)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequestStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CertificateSigningRequest) DeepCopyInto(out *CertificateSigningRequest) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/BUILD index c1608bc24..19d17029c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/BUILD @@ -19,7 +19,6 @@ go_library( deps = [ "//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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/doc.go index 8fe8d52ed..159d61928 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package componentconfig // import "k8s.io/kubernetes/pkg/apis/componentconfig" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/helpers.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/helpers.go index 39fc082da..a39ec138c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/helpers.go @@ -61,22 +61,6 @@ func (v IPVar) Type() string { return "ip" } -func (m *ProxyMode) Set(s string) error { - *m = ProxyMode(s) - return nil -} - -func (m *ProxyMode) String() string { - if m != nil { - return string(*m) - } - return "" -} - -func (m *ProxyMode) Type() string { - return "ProxyMode" -} - type PortRangeVar struct { Val *string } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/BUILD index 402204a9c..fb58da06e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/componentconfig/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/componentconfig:go_default_library", "//pkg/apis/componentconfig/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/install.go index 53b95f6a5..d5e48363b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/install/install.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/register.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/register.go index 536757413..7ba52b1f6 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/register.go @@ -45,7 +45,6 @@ func Resource(resource string) schema.GroupResource { func addKnownTypes(scheme *runtime.Scheme) error { // TODO this will get cleaned up with the scheme types are fixed scheme.AddKnownTypes(SchemeGroupVersion, - &KubeProxyConfiguration{}, &KubeSchedulerConfiguration{}, ) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go index 6aa64e436..4a57eec48 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go @@ -30,188 +30,97 @@ type ClientConnectionConfiguration struct { AcceptContentTypes string // contentType is the content type used when sending data to the server from this client. ContentType string - // qps controls the number of queries per second allowed for this connection. + // cps controls the number of queries per second allowed for this connection. QPS float32 // burst allows extra queries to accumulate when a client is exceeding its rate. - Burst int + Burst int32 } -// KubeProxyIPTablesConfiguration contains iptables-related configuration -// details for the Kubernetes proxy server. -type KubeProxyIPTablesConfiguration struct { - // masqueradeBit is the bit of the iptables fwmark space to use for SNAT if using - // the pure iptables proxy mode. Values must be within the range [0, 31]. - MasqueradeBit *int32 - // masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode. - MasqueradeAll bool - // syncPeriod is the period that iptables rules are refreshed (e.g. '5s', '1m', - // '2h22m'). Must be greater than 0. - SyncPeriod metav1.Duration - // minSyncPeriod is the minimum period that iptables rules are refreshed (e.g. '5s', '1m', - // '2h22m'). - MinSyncPeriod metav1.Duration -} +// SchedulerPolicyConfigMapKey defines the key of the element in the +// scheduler's policy ConfigMap that contains scheduler's policy config. +const SchedulerPolicyConfigMapKey string = "policy.cfg" -// KubeProxyIPVSConfiguration contains ipvs-related configuration -// details for the Kubernetes proxy server. -type KubeProxyIPVSConfiguration struct { - // syncPeriod is the period that ipvs rules are refreshed (e.g. '5s', '1m', - // '2h22m'). Must be greater than 0. - SyncPeriod metav1.Duration - // minSyncPeriod is the minimum period that ipvs rules are refreshed (e.g. '5s', '1m', - // '2h22m'). - MinSyncPeriod metav1.Duration - // ipvs scheduler - Scheduler string +// SchedulerPolicySource configures a means to obtain a scheduler Policy. One +// source field must be specified, and source fields are mutually exclusive. +type SchedulerPolicySource struct { + // File is a file policy source. + File *SchedulerPolicyFileSource + // ConfigMap is a config map policy source. + ConfigMap *SchedulerPolicyConfigMapSource } -// KubeProxyConntrackConfiguration contains conntrack settings for -// the Kubernetes proxy server. -type KubeProxyConntrackConfiguration struct { - // max is the maximum number of NAT connections to track (0 to - // leave as-is). This takes precedence over conntrackMaxPerCore and conntrackMin. - Max int32 - // maxPerCore is the maximum number of NAT connections to track - // per CPU core (0 to leave the limit as-is and ignore conntrackMin). - MaxPerCore int32 - // min is the minimum value of connect-tracking records to allocate, - // regardless of conntrackMaxPerCore (set conntrackMaxPerCore=0 to leave the limit as-is). - Min int32 - // tcpEstablishedTimeout is how long an idle TCP connection will be kept open - // (e.g. '2s'). Must be greater than 0. - TCPEstablishedTimeout metav1.Duration - // tcpCloseWaitTimeout is how long an idle conntrack entry - // in CLOSE_WAIT state will remain in the conntrack - // table. (e.g. '60s'). Must be greater than 0 to set. - TCPCloseWaitTimeout metav1.Duration +// SchedulerPolicyFileSource is a policy serialized to disk and accessed via +// path. +type SchedulerPolicyFileSource struct { + // Path is the location of a serialized policy. + Path string } -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// KubeProxyConfiguration contains everything necessary to configure the -// Kubernetes proxy server. -type KubeProxyConfiguration struct { - metav1.TypeMeta - - // featureGates is a comma-separated list of key=value pairs that control - // which alpha/beta features are enabled. - // - // TODO this really should be a map but that requires refactoring all - // components to use config files because local-up-cluster.sh only supports - // the --feature-gates flag right now, which is comma-separated key=value - // pairs. - FeatureGates string - - // bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0 - // for all interfaces) - BindAddress string - // healthzBindAddress is the IP address and port for the health check server to serve on, - // defaulting to 0.0.0.0:10256 - HealthzBindAddress string - // metricsBindAddress is the IP address and port for the metrics server to serve on, - // defaulting to 127.0.0.1:10249 (set to 0.0.0.0 for all interfaces) - MetricsBindAddress string - // enableProfiling enables profiling via web interface on /debug/pprof handler. - // Profiling handlers will be handled by metrics server. - EnableProfiling bool - // clusterCIDR is the CIDR range of the pods in the cluster. It is used to - // bridge traffic coming from outside of the cluster. If not provided, - // no off-cluster bridging will be performed. - ClusterCIDR string - // hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname. - HostnameOverride string - // clientConnection specifies the kubeconfig file and client connection settings for the proxy - // server to use when communicating with the apiserver. - ClientConnection ClientConnectionConfiguration - // iptables contains iptables-related configuration options. - IPTables KubeProxyIPTablesConfiguration - // ipvs contains ipvs-related configuration options. - IPVS KubeProxyIPVSConfiguration - // oomScoreAdj is the oom-score-adj value for kube-proxy process. Values must be within - // the range [-1000, 1000] - OOMScoreAdj *int32 - // mode specifies which proxy mode to use. - Mode ProxyMode - // portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed - // in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen. - PortRange string - // resourceContainer is the absolute name of the resource-only container to create and run - // the Kube-proxy in (Default: /kube-proxy). - ResourceContainer string - // udpIdleTimeout is how long an idle UDP connection will be kept open (e.g. '250ms', '2s'). - // Must be greater than 0. Only applicable for proxyMode=userspace. - UDPIdleTimeout metav1.Duration - // conntrack contains conntrack-related configuration options. - Conntrack KubeProxyConntrackConfiguration - // configSyncPeriod is how often configuration from the apiserver is refreshed. Must be greater - // than 0. - ConfigSyncPeriod metav1.Duration +// SchedulerPolicyConfigMapSource is a policy serialized into a config map value +// under the SchedulerPolicyConfigMapKey key. +type SchedulerPolicyConfigMapSource struct { + // Namespace is the namespace of the policy config map. + Namespace string + // Name is the name of hte policy config map. + Name string } -// Currently two modes of proxying are available: 'userspace' (older, stable) or 'iptables' -// (newer, faster). If blank, use the best-available proxy (currently iptables, but may -// change in future versions). If the iptables proxy is selected, regardless of how, but -// the system's kernel or iptables versions are insufficient, this always falls back to the -// userspace proxy. -type ProxyMode string - -const ( - ProxyModeUserspace ProxyMode = "userspace" - ProxyModeIPTables ProxyMode = "iptables" -) +// SchedulerAlgorithmSource is the source of a scheduler algorithm. One source +// field must be specified, and source fields are mutually exclusive. +type SchedulerAlgorithmSource struct { + // Policy is a policy based algorithm source. + Policy *SchedulerPolicySource + // Provider is the name of a scheduling algorithm provider to use. + Provider *string +} // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type KubeSchedulerConfiguration struct { metav1.TypeMeta - // port is the port that the scheduler's http service runs on. - Port int32 - // address is the IP address to serve on. - Address string - // algorithmProvider is the scheduling algorithm provider to use. - AlgorithmProvider string - // policyConfigFile is the filepath to the scheduler policy configuration. - PolicyConfigFile string - // enableProfiling enables profiling via web interface. - EnableProfiling bool - // enableContentionProfiling enables lock contention profiling, if enableProfiling is true. - EnableContentionProfiling bool - // contentType is contentType of requests sent to apiserver. - ContentType string - // kubeAPIQPS is the QPS to use while talking with kubernetes apiserver. - KubeAPIQPS float32 - // kubeAPIBurst is the QPS burst to use while talking with kubernetes apiserver. - KubeAPIBurst int32 // schedulerName is name of the scheduler, used to select which pods // will be processed by this scheduler, based on pod's "spec.SchedulerName". SchedulerName string + // AlgorithmSource specifies the scheduler algorithm source. + AlgorithmSource SchedulerAlgorithmSource // RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule // corresponding to every RequiredDuringScheduling affinity rule. // HardPodAffinitySymmetricWeight represents the weight of implicit PreferredDuringScheduling affinity rule, in the range 0-100. - HardPodAffinitySymmetricWeight int + HardPodAffinitySymmetricWeight int32 + + // LeaderElection defines the configuration of leader election client. + LeaderElection KubeSchedulerLeaderElectionConfiguration + + // ClientConnection specifies the kubeconfig file and client connection + // settings for the proxy server to use when communicating with the apiserver. + ClientConnection ClientConnectionConfiguration + // HealthzBindAddress is the IP address and port for the health check server to serve on, + // defaulting to 0.0.0.0:10251 + HealthzBindAddress string + // MetricsBindAddress is the IP address and port for the metrics server to + // serve on, defaulting to 0.0.0.0:10251. + MetricsBindAddress string + // EnableProfiling enables profiling via web interface on /debug/pprof + // handler. Profiling handlers will be handled by metrics server. + EnableProfiling bool + // EnableContentionProfiling enables lock contention profiling, if + // EnableProfiling is true. + EnableContentionProfiling bool + // Indicate the "all topologies" set for empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity. // DEPRECATED: This is no longer used. FailureDomains string - // leaderElection defines the configuration of leader election client. - LeaderElection LeaderElectionConfiguration +} + +// KubeSchedulerLeaderElectionConfiguration expands LeaderElectionConfiguration +// to include scheduler specific configuration. +type KubeSchedulerLeaderElectionConfiguration struct { + LeaderElectionConfiguration // LockObjectNamespace defines the namespace of the lock object LockObjectNamespace string // LockObjectName defines the lock object name LockObjectName string - // PolicyConfigMapName is the name of the ConfigMap object that specifies - // the scheduler's policy config. If UseLegacyPolicyConfig is true, scheduler - // uses PolicyConfigFile. If UseLegacyPolicyConfig is false and - // PolicyConfigMapName is not empty, the ConfigMap object with this name must - // exist in PolicyConfigMapNamespace before scheduler initialization. - PolicyConfigMapName string - // PolicyConfigMapNamespace is the namespace where the above policy config map - // is located. If none is provided default system namespace ("kube-system") - // will be used. - PolicyConfigMapNamespace string - // UseLegacyPolicyConfig tells the scheduler to ignore Policy ConfigMap and - // to use PolicyConfigFile if available. - UseLegacyPolicyConfig bool } // LeaderElectionConfiguration defines the configuration of leader election diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/BUILD index 437864a1f..9726d08a8 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/BUILD @@ -19,10 +19,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/componentconfig:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/apis:go_default_library", - "//pkg/kubelet/qos:go_default_library", "//pkg/master/ports:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/defaults.go index 54a3e8d16..0528b6cb6 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/defaults.go @@ -17,15 +17,14 @@ limitations under the License. package v1alpha1 import ( - "fmt" - "strings" + "net" + "strconv" "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kruntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" - "k8s.io/kubernetes/pkg/kubelet/qos" "k8s.io/kubernetes/pkg/master/ports" ) @@ -33,129 +32,65 @@ func addDefaultingFuncs(scheme *kruntime.Scheme) error { return RegisterDefaults(scheme) } -func SetDefaults_KubeProxyConfiguration(obj *KubeProxyConfiguration) { - if len(obj.BindAddress) == 0 { - obj.BindAddress = "0.0.0.0" - } - if obj.HealthzBindAddress == "" { - obj.HealthzBindAddress = fmt.Sprintf("0.0.0.0:%v", ports.ProxyHealthzPort) - } else if !strings.Contains(obj.HealthzBindAddress, ":") { - obj.HealthzBindAddress += fmt.Sprintf(":%v", ports.ProxyHealthzPort) - } - if obj.MetricsBindAddress == "" { - obj.MetricsBindAddress = fmt.Sprintf("127.0.0.1:%v", ports.ProxyStatusPort) - } else if !strings.Contains(obj.MetricsBindAddress, ":") { - obj.MetricsBindAddress += fmt.Sprintf(":%v", ports.ProxyStatusPort) - } - if obj.OOMScoreAdj == nil { - temp := int32(qos.KubeProxyOOMScoreAdj) - obj.OOMScoreAdj = &temp - } - if obj.ResourceContainer == "" { - obj.ResourceContainer = "/kube-proxy" +func SetDefaults_KubeSchedulerConfiguration(obj *KubeSchedulerConfiguration) { + if len(obj.SchedulerName) == 0 { + obj.SchedulerName = api.DefaultSchedulerName } - if obj.IPTables.SyncPeriod.Duration == 0 { - obj.IPTables.SyncPeriod = metav1.Duration{Duration: 30 * time.Second} + + if obj.HardPodAffinitySymmetricWeight == 0 { + obj.HardPodAffinitySymmetricWeight = api.DefaultHardPodAffinitySymmetricWeight } - if obj.IPVS.SyncPeriod.Duration == 0 { - obj.IPVS.SyncPeriod = metav1.Duration{Duration: 30 * time.Second} + + if obj.AlgorithmSource.Policy == nil && + (obj.AlgorithmSource.Provider == nil || len(*obj.AlgorithmSource.Provider) == 0) { + val := SchedulerDefaultProviderName + obj.AlgorithmSource.Provider = &val } - zero := metav1.Duration{} - if obj.UDPIdleTimeout == zero { - obj.UDPIdleTimeout = metav1.Duration{Duration: 250 * time.Millisecond} - } - // If ConntrackMax is set, respect it. - if obj.Conntrack.Max == 0 { - // If ConntrackMax is *not* set, use per-core scaling. - if obj.Conntrack.MaxPerCore == 0 { - obj.Conntrack.MaxPerCore = 32 * 1024 + + if policy := obj.AlgorithmSource.Policy; policy != nil { + if policy.ConfigMap != nil && len(policy.ConfigMap.Namespace) == 0 { + obj.AlgorithmSource.Policy.ConfigMap.Namespace = api.NamespaceSystem } - if obj.Conntrack.Min == 0 { - obj.Conntrack.Min = 128 * 1024 + } + + if host, port, err := net.SplitHostPort(obj.HealthzBindAddress); err == nil { + if len(host) == 0 { + host = "0.0.0.0" } + obj.HealthzBindAddress = net.JoinHostPort(host, port) + } else { + obj.HealthzBindAddress = net.JoinHostPort("0.0.0.0", strconv.Itoa(ports.SchedulerPort)) } - if obj.IPTables.MasqueradeBit == nil { - temp := int32(14) - obj.IPTables.MasqueradeBit = &temp - } - if obj.Conntrack.TCPEstablishedTimeout == zero { - obj.Conntrack.TCPEstablishedTimeout = metav1.Duration{Duration: 24 * time.Hour} // 1 day (1/5 default) - } - if obj.Conntrack.TCPCloseWaitTimeout == zero { - // See https://github.com/kubernetes/kubernetes/issues/32551. - // - // CLOSE_WAIT conntrack state occurs when the the Linux kernel - // sees a FIN from the remote server. Note: this is a half-close - // condition that persists as long as the local side keeps the - // socket open. The condition is rare as it is typical in most - // protocols for both sides to issue a close; this typically - // occurs when the local socket is lazily garbage collected. - // - // If the CLOSE_WAIT conntrack entry expires, then FINs from the - // local socket will not be properly SNAT'd and will not reach the - // remote server (if the connection was subject to SNAT). If the - // remote timeouts for FIN_WAIT* states exceed the CLOSE_WAIT - // timeout, then there will be an inconsistency in the state of - // the connection and a new connection reusing the SNAT (src, - // port) pair may be rejected by the remote side with RST. This - // can cause new calls to connect(2) to return with ECONNREFUSED. - // - // We set CLOSE_WAIT to one hour by default to better match - // typical server timeouts. - obj.Conntrack.TCPCloseWaitTimeout = metav1.Duration{Duration: 1 * time.Hour} - } - if obj.ConfigSyncPeriod.Duration == 0 { - obj.ConfigSyncPeriod.Duration = 15 * time.Minute + + if host, port, err := net.SplitHostPort(obj.MetricsBindAddress); err == nil { + if len(host) == 0 { + host = "0.0.0.0" + } + obj.MetricsBindAddress = net.JoinHostPort(host, port) + } else { + obj.MetricsBindAddress = net.JoinHostPort("0.0.0.0", strconv.Itoa(ports.SchedulerPort)) } if len(obj.ClientConnection.ContentType) == 0 { obj.ClientConnection.ContentType = "application/vnd.kubernetes.protobuf" } if obj.ClientConnection.QPS == 0.0 { - obj.ClientConnection.QPS = 5.0 + obj.ClientConnection.QPS = 50.0 } if obj.ClientConnection.Burst == 0 { - obj.ClientConnection.Burst = 10 + obj.ClientConnection.Burst = 100 } -} -func SetDefaults_KubeSchedulerConfiguration(obj *KubeSchedulerConfiguration) { - if obj.Port == 0 { - obj.Port = ports.SchedulerPort - } - if obj.Address == "" { - obj.Address = "0.0.0.0" - } - if obj.AlgorithmProvider == "" { - obj.AlgorithmProvider = "DefaultProvider" - } - if obj.ContentType == "" { - obj.ContentType = "application/vnd.kubernetes.protobuf" - } - if obj.KubeAPIQPS == 0 { - obj.KubeAPIQPS = 50.0 - } - if obj.KubeAPIBurst == 0 { - obj.KubeAPIBurst = 100 - } - if obj.SchedulerName == "" { - obj.SchedulerName = api.DefaultSchedulerName + if len(obj.LeaderElection.LockObjectNamespace) == 0 { + obj.LeaderElection.LockObjectNamespace = SchedulerDefaultLockObjectNamespace } - if obj.HardPodAffinitySymmetricWeight == 0 { - obj.HardPodAffinitySymmetricWeight = api.DefaultHardPodAffinitySymmetricWeight + if len(obj.LeaderElection.LockObjectName) == 0 { + obj.LeaderElection.LockObjectName = SchedulerDefaultLockObjectName } - if obj.FailureDomains == "" { + + if len(obj.FailureDomains) == 0 { obj.FailureDomains = kubeletapis.DefaultFailureDomains } - if obj.LockObjectNamespace == "" { - obj.LockObjectNamespace = SchedulerDefaultLockObjectNamespace - } - if obj.LockObjectName == "" { - obj.LockObjectName = SchedulerDefaultLockObjectName - } - if obj.PolicyConfigMapNamespace == "" { - obj.PolicyConfigMapNamespace = api.NamespaceSystem - } } func SetDefaults_LeaderElectionConfiguration(obj *LeaderElectionConfiguration) { @@ -174,7 +109,3 @@ func SetDefaults_LeaderElectionConfiguration(obj *LeaderElectionConfiguration) { obj.ResourceLock = "endpoints" } } - -func boolVar(b bool) *bool { - return &b -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/doc.go index f8d91738b..e3d63571e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/componentconfig // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/register.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/register.go index a75096f20..693ff3a35 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/register.go @@ -44,7 +44,6 @@ func init() { func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, - &KubeProxyConfiguration{}, &KubeSchedulerConfiguration{}, ) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go index 70654ca8c..55e99fb42 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go @@ -33,204 +33,81 @@ type ClientConnectionConfiguration struct { // cps controls the number of queries per second allowed for this connection. QPS float32 `json:"qps"` // burst allows extra queries to accumulate when a client is exceeding its rate. - Burst int `json:"burst"` + Burst int32 `json:"burst"` } -// KubeProxyIPTablesConfiguration contains iptables-related configuration -// details for the Kubernetes proxy server. -type KubeProxyIPTablesConfiguration struct { - // masqueradeBit is the bit of the iptables fwmark space to use for SNAT if using - // the pure iptables proxy mode. Values must be within the range [0, 31]. - MasqueradeBit *int32 `json:"masqueradeBit"` - // masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode. - MasqueradeAll bool `json:"masqueradeAll"` - // syncPeriod is the period that iptables rules are refreshed (e.g. '5s', '1m', - // '2h22m'). Must be greater than 0. - SyncPeriod metav1.Duration `json:"syncPeriod"` - // minSyncPeriod is the minimum period that iptables rules are refreshed (e.g. '5s', '1m', - // '2h22m'). - MinSyncPeriod metav1.Duration `json:"minSyncPeriod"` +// SchedulerPolicySource configures a means to obtain a scheduler Policy. One +// source field must be specified, and source fields are mutually exclusive. +type SchedulerPolicySource struct { + // File is a file policy source. + File *SchedulerPolicyFileSource `json:"file,omitempty"` + // ConfigMap is a config map policy source. + ConfigMap *SchedulerPolicyConfigMapSource `json:"configMap,omitempty"` } -// KubeProxyIPVSConfiguration contains ipvs-related configuration -// details for the Kubernetes proxy server. -type KubeProxyIPVSConfiguration struct { - // syncPeriod is the period that ipvs rules are refreshed (e.g. '5s', '1m', - // '2h22m'). Must be greater than 0. - SyncPeriod metav1.Duration `json:"syncPeriod"` - // minSyncPeriod is the minimum period that ipvs rules are refreshed (e.g. '5s', '1m', - // '2h22m'). - MinSyncPeriod metav1.Duration `json:"minSyncPeriod"` - // ipvs scheduler - Scheduler string `json:"scheduler"` +// SchedulerPolicyFileSource is a policy serialized to disk and accessed via +// path. +type SchedulerPolicyFileSource struct { + // Path is the location of a serialized policy. + Path string `json:"path"` } -// KubeProxyConntrackConfiguration contains conntrack settings for -// the Kubernetes proxy server. -type KubeProxyConntrackConfiguration struct { - // max is the maximum number of NAT connections to track (0 to - // leave as-is). This takes precedence over conntrackMaxPerCore and conntrackMin. - Max int32 `json:"max"` - // maxPerCore is the maximum number of NAT connections to track - // per CPU core (0 to leave the limit as-is and ignore conntrackMin). - MaxPerCore int32 `json:"maxPerCore"` - // min is the minimum value of connect-tracking records to allocate, - // regardless of conntrackMaxPerCore (set conntrackMaxPerCore=0 to leave the limit as-is). - Min int32 `json:"min"` - // tcpEstablishedTimeout is how long an idle TCP connection will be kept open - // (e.g. '2s'). Must be greater than 0. - TCPEstablishedTimeout metav1.Duration `json:"tcpEstablishedTimeout"` - // tcpCloseWaitTimeout is how long an idle conntrack entry - // in CLOSE_WAIT state will remain in the conntrack - // table. (e.g. '60s'). Must be greater than 0 to set. - TCPCloseWaitTimeout metav1.Duration `json:"tcpCloseWaitTimeout"` +// SchedulerPolicyConfigMapSource is a policy serialized into a config map value +// under the SchedulerPolicyConfigMapKey key. +type SchedulerPolicyConfigMapSource struct { + // Namespace is the namespace of the policy config map. + Namespace string `json:"namespace"` + // Name is the name of hte policy config map. + Name string `json:"name"` } -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// KubeProxyConfiguration contains everything necessary to configure the -// Kubernetes proxy server. -type KubeProxyConfiguration struct { - metav1.TypeMeta `json:",inline"` - - // featureGates is a comma-separated list of key=value pairs that control - // which alpha/beta features are enabled. - // - // TODO this really should be a map but that requires refactoring all - // components to use config files because local-up-cluster.sh only supports - // the --feature-gates flag right now, which is comma-separated key=value - // pairs. - FeatureGates string `json:"featureGates"` - - // bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0 - // for all interfaces) - BindAddress string `json:"bindAddress"` - // healthzBindAddress is the IP address and port for the health check server to serve on, - // defaulting to 0.0.0.0:10256 - HealthzBindAddress string `json:"healthzBindAddress"` - // metricsBindAddress is the IP address and port for the metrics server to serve on, - // defaulting to 127.0.0.1:10249 (set to 0.0.0.0 for all interfaces) - MetricsBindAddress string `json:"metricsBindAddress"` - // enableProfiling enables profiling via web interface on /debug/pprof handler. - // Profiling handlers will be handled by metrics server. - EnableProfiling bool `json:"enableProfiling"` - // clusterCIDR is the CIDR range of the pods in the cluster. It is used to - // bridge traffic coming from outside of the cluster. If not provided, - // no off-cluster bridging will be performed. - ClusterCIDR string `json:"clusterCIDR"` - // hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname. - HostnameOverride string `json:"hostnameOverride"` - // clientConnection specifies the kubeconfig file and client connection settings for the proxy - // server to use when communicating with the apiserver. - ClientConnection ClientConnectionConfiguration `json:"clientConnection"` - // iptables contains iptables-related configuration options. - IPTables KubeProxyIPTablesConfiguration `json:"iptables"` - // ipvs contains ipvs-related configuration options. - IPVS KubeProxyIPVSConfiguration `json:"ipvs"` - // oomScoreAdj is the oom-score-adj value for kube-proxy process. Values must be within - // the range [-1000, 1000] - OOMScoreAdj *int32 `json:"oomScoreAdj"` - // mode specifies which proxy mode to use. - Mode ProxyMode `json:"mode"` - // portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed - // in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen. - PortRange string `json:"portRange"` - // resourceContainer is the bsolute name of the resource-only container to create and run - // the Kube-proxy in (Default: /kube-proxy). - ResourceContainer string `json:"resourceContainer"` - // udpIdleTimeout is how long an idle UDP connection will be kept open (e.g. '250ms', '2s'). - // Must be greater than 0. Only applicable for proxyMode=userspace. - UDPIdleTimeout metav1.Duration `json:"udpTimeoutMilliseconds"` - // conntrack contains conntrack-related configuration options. - Conntrack KubeProxyConntrackConfiguration `json:"conntrack"` - // configSyncPeriod is how often configuration from the apiserver is refreshed. Must be greater - // than 0. - ConfigSyncPeriod metav1.Duration `json:"configSyncPeriod"` +// SchedulerAlgorithmSource is the source of a scheduler algorithm. One source +// field must be specified, and source fields are mutually exclusive. +type SchedulerAlgorithmSource struct { + // Policy is a policy based algorithm source. + Policy *SchedulerPolicySource `json:"policy,omitempty"` + // Provider is the name of a scheduling algorithm provider to use. + Provider *string `json:"provider,omitempty"` } -// Currently two modes of proxying are available: 'userspace' (older, stable) or 'iptables' -// (newer, faster). If blank, use the best-available proxy (currently iptables, but may -// change in future versions). If the iptables proxy is selected, regardless of how, but -// the system's kernel or iptables versions are insufficient, this always falls back to the -// userspace proxy. -type ProxyMode string - -const ( - ProxyModeUserspace ProxyMode = "userspace" - ProxyModeIPTables ProxyMode = "iptables" -) - // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type KubeSchedulerConfiguration struct { metav1.TypeMeta `json:",inline"` - // port is the port that the scheduler's http service runs on. - Port int `json:"port"` - // address is the IP address to serve on. - Address string `json:"address"` - // algorithmProvider is the scheduling algorithm provider to use. - AlgorithmProvider string `json:"algorithmProvider"` - // policyConfigFile is the filepath to the scheduler policy configuration. - PolicyConfigFile string `json:"policyConfigFile"` - // enableProfiling enables profiling via web interface. - EnableProfiling *bool `json:"enableProfiling"` - // enableContentionProfiling enables lock contention profiling, if enableProfiling is true. - EnableContentionProfiling bool `json:"enableContentionProfiling"` - // contentType is contentType of requests sent to apiserver. - ContentType string `json:"contentType"` - // kubeAPIQPS is the QPS to use while talking with kubernetes apiserver. - KubeAPIQPS float32 `json:"kubeAPIQPS"` - // kubeAPIBurst is the QPS burst to use while talking with kubernetes apiserver. - KubeAPIBurst int `json:"kubeAPIBurst"` - // schedulerName is name of the scheduler, used to select which pods + // SchedulerName is name of the scheduler, used to select which pods // will be processed by this scheduler, based on pod's "spec.SchedulerName". SchedulerName string `json:"schedulerName"` + // AlgorithmSource specifies the scheduler algorithm source. + AlgorithmSource SchedulerAlgorithmSource `json:"algorithmSource"` // RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule // corresponding to every RequiredDuringScheduling affinity rule. // HardPodAffinitySymmetricWeight represents the weight of implicit PreferredDuringScheduling affinity rule, in the range 0-100. - HardPodAffinitySymmetricWeight int `json:"hardPodAffinitySymmetricWeight"` + HardPodAffinitySymmetricWeight int32 `json:"hardPodAffinitySymmetricWeight"` + + // LeaderElection defines the configuration of leader election client. + LeaderElection KubeSchedulerLeaderElectionConfiguration `json:"leaderElection"` + + // ClientConnection specifies the kubeconfig file and client connection + // settings for the proxy server to use when communicating with the apiserver. + ClientConnection ClientConnectionConfiguration `json:"clientConnection"` + // HealthzBindAddress is the IP address and port for the health check server to serve on, + // defaulting to 0.0.0.0:10251 + HealthzBindAddress string `json:"healthzBindAddress"` + // MetricsBindAddress is the IP address and port for the metrics server to + // serve on, defaulting to 0.0.0.0:10251. + MetricsBindAddress string `json:"metricsBindAddress"` + // EnableProfiling enables profiling via web interface on /debug/pprof + // handler. Profiling handlers will be handled by metrics server. + EnableProfiling bool `json:"enableProfiling"` + // EnableContentionProfiling enables lock contention profiling, if + // EnableProfiling is true. + EnableContentionProfiling bool `json:"enableContentionProfiling"` + // Indicate the "all topologies" set for empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity. FailureDomains string `json:"failureDomains"` - // leaderElection defines the configuration of leader election client. - LeaderElection LeaderElectionConfiguration `json:"leaderElection"` - // LockObjectNamespace defines the namespace of the lock object - LockObjectNamespace string `json:"lockObjectNamespace"` - // LockObjectName defines the lock object name - LockObjectName string `json:"lockObjectName"` - // PolicyConfigMapName is the name of the ConfigMap object that specifies - // the scheduler's policy config. If UseLegacyPolicyConfig is true, scheduler - // uses PolicyConfigFile. If UseLegacyPolicyConfig is false and - // PolicyConfigMapName is not empty, the ConfigMap object with this name must - // exist in PolicyConfigMapNamespace before scheduler initialization. - PolicyConfigMapName string `json:"policyConfigMapName"` - // PolicyConfigMapNamespace is the namespace where the above policy config map - // is located. If none is provided default system namespace ("kube-system") - // will be used. - PolicyConfigMapNamespace string `json:"policyConfigMapNamespace"` - // UseLegacyPolicyConfig tells the scheduler to ignore Policy ConfigMap and - // to use PolicyConfigFile if available. - UseLegacyPolicyConfig bool `json:"useLegacyPolicyConfig"` } -// HairpinMode denotes how the kubelet should configure networking to handle -// hairpin packets. -type HairpinMode string - -// Enum settings for different ways to handle hairpin packets. -const ( - // Set the hairpin flag on the veth of containers in the respective - // container runtime. - HairpinVeth = "hairpin-veth" - // Make the container bridge promiscuous. This will force it to accept - // hairpin packets, even if the flag isn't set on ports of the bridge. - PromiscuousBridge = "promiscuous-bridge" - // Neither of the above. If the kubelet is started in this hairpin mode - // and kube-proxy is running in iptables mode, hairpin packets will be - // dropped by the container bridge. - HairpinNone = "none" -) - // LeaderElectionConfiguration defines the configuration of leader election // clients for components that can run with leader election enabled. type LeaderElectionConfiguration struct { @@ -259,10 +136,22 @@ type LeaderElectionConfiguration struct { ResourceLock string `json:"resourceLock"` } +// KubeSchedulerLeaderElectionConfiguration expands LeaderElectionConfiguration +// to include scheduler specific configuration. +type KubeSchedulerLeaderElectionConfiguration struct { + LeaderElectionConfiguration `json:",inline"` + // LockObjectNamespace defines the namespace of the lock object + LockObjectNamespace string `json:"lockObjectNamespace"` + // LockObjectName defines the lock object name + LockObjectName string `json:"lockObjectName"` +} + const ( // "kube-system" is the default scheduler lock object namespace SchedulerDefaultLockObjectNamespace string = "kube-system" // "kube-scheduler" is the default scheduler lock object name SchedulerDefaultLockObjectName = "kube-scheduler" + + SchedulerDefaultProviderName = "DefaultProvider" ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go index 70290c39a..296fa21d0 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go @@ -38,18 +38,20 @@ func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( Convert_v1alpha1_ClientConnectionConfiguration_To_componentconfig_ClientConnectionConfiguration, Convert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration, - Convert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration, - Convert_componentconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration, - Convert_v1alpha1_KubeProxyConntrackConfiguration_To_componentconfig_KubeProxyConntrackConfiguration, - Convert_componentconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration, - Convert_v1alpha1_KubeProxyIPTablesConfiguration_To_componentconfig_KubeProxyIPTablesConfiguration, - Convert_componentconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration, - Convert_v1alpha1_KubeProxyIPVSConfiguration_To_componentconfig_KubeProxyIPVSConfiguration, - Convert_componentconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration, Convert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration, Convert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration, + Convert_v1alpha1_KubeSchedulerLeaderElectionConfiguration_To_componentconfig_KubeSchedulerLeaderElectionConfiguration, + Convert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha1_KubeSchedulerLeaderElectionConfiguration, Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration, Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration, + Convert_v1alpha1_SchedulerAlgorithmSource_To_componentconfig_SchedulerAlgorithmSource, + Convert_componentconfig_SchedulerAlgorithmSource_To_v1alpha1_SchedulerAlgorithmSource, + Convert_v1alpha1_SchedulerPolicyConfigMapSource_To_componentconfig_SchedulerPolicyConfigMapSource, + Convert_componentconfig_SchedulerPolicyConfigMapSource_To_v1alpha1_SchedulerPolicyConfigMapSource, + Convert_v1alpha1_SchedulerPolicyFileSource_To_componentconfig_SchedulerPolicyFileSource, + Convert_componentconfig_SchedulerPolicyFileSource_To_v1alpha1_SchedulerPolicyFileSource, + Convert_v1alpha1_SchedulerPolicySource_To_componentconfig_SchedulerPolicySource, + Convert_componentconfig_SchedulerPolicySource_To_v1alpha1_SchedulerPolicySource, ) } @@ -81,242 +83,198 @@ func Convert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientCon return autoConvert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(in, out, s) } -func autoConvert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration(in *KubeProxyConfiguration, out *componentconfig.KubeProxyConfiguration, s conversion.Scope) error { - out.FeatureGates = in.FeatureGates - out.BindAddress = in.BindAddress - out.HealthzBindAddress = in.HealthzBindAddress - out.MetricsBindAddress = in.MetricsBindAddress - out.EnableProfiling = in.EnableProfiling - out.ClusterCIDR = in.ClusterCIDR - out.HostnameOverride = in.HostnameOverride - if err := Convert_v1alpha1_ClientConnectionConfiguration_To_componentconfig_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { - return err - } - if err := Convert_v1alpha1_KubeProxyIPTablesConfiguration_To_componentconfig_KubeProxyIPTablesConfiguration(&in.IPTables, &out.IPTables, s); err != nil { +func autoConvert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration(in *KubeSchedulerConfiguration, out *componentconfig.KubeSchedulerConfiguration, s conversion.Scope) error { + out.SchedulerName = in.SchedulerName + if err := Convert_v1alpha1_SchedulerAlgorithmSource_To_componentconfig_SchedulerAlgorithmSource(&in.AlgorithmSource, &out.AlgorithmSource, s); err != nil { return err } - if err := Convert_v1alpha1_KubeProxyIPVSConfiguration_To_componentconfig_KubeProxyIPVSConfiguration(&in.IPVS, &out.IPVS, s); err != nil { + out.HardPodAffinitySymmetricWeight = in.HardPodAffinitySymmetricWeight + if err := Convert_v1alpha1_KubeSchedulerLeaderElectionConfiguration_To_componentconfig_KubeSchedulerLeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { return err } - out.OOMScoreAdj = (*int32)(unsafe.Pointer(in.OOMScoreAdj)) - out.Mode = componentconfig.ProxyMode(in.Mode) - out.PortRange = in.PortRange - out.ResourceContainer = in.ResourceContainer - out.UDPIdleTimeout = in.UDPIdleTimeout - if err := Convert_v1alpha1_KubeProxyConntrackConfiguration_To_componentconfig_KubeProxyConntrackConfiguration(&in.Conntrack, &out.Conntrack, s); err != nil { + if err := Convert_v1alpha1_ClientConnectionConfiguration_To_componentconfig_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { return err } - out.ConfigSyncPeriod = in.ConfigSyncPeriod + out.HealthzBindAddress = in.HealthzBindAddress + out.MetricsBindAddress = in.MetricsBindAddress + out.EnableProfiling = in.EnableProfiling + out.EnableContentionProfiling = in.EnableContentionProfiling + out.FailureDomains = in.FailureDomains return nil } -// Convert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration(in *KubeProxyConfiguration, out *componentconfig.KubeProxyConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration(in, out, s) +// Convert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration(in *KubeSchedulerConfiguration, out *componentconfig.KubeSchedulerConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration(in, out, s) } -func autoConvert_componentconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration(in *componentconfig.KubeProxyConfiguration, out *KubeProxyConfiguration, s conversion.Scope) error { - out.FeatureGates = in.FeatureGates - out.BindAddress = in.BindAddress - out.HealthzBindAddress = in.HealthzBindAddress - out.MetricsBindAddress = in.MetricsBindAddress - out.EnableProfiling = in.EnableProfiling - out.ClusterCIDR = in.ClusterCIDR - out.HostnameOverride = in.HostnameOverride - if err := Convert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { +func autoConvert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration(in *componentconfig.KubeSchedulerConfiguration, out *KubeSchedulerConfiguration, s conversion.Scope) error { + out.SchedulerName = in.SchedulerName + if err := Convert_componentconfig_SchedulerAlgorithmSource_To_v1alpha1_SchedulerAlgorithmSource(&in.AlgorithmSource, &out.AlgorithmSource, s); err != nil { return err } - if err := Convert_componentconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration(&in.IPTables, &out.IPTables, s); err != nil { + out.HardPodAffinitySymmetricWeight = in.HardPodAffinitySymmetricWeight + if err := Convert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha1_KubeSchedulerLeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { + return err + } + if err := Convert_componentconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { return err } - if err := Convert_componentconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration(&in.IPVS, &out.IPVS, s); err != nil { + out.HealthzBindAddress = in.HealthzBindAddress + out.MetricsBindAddress = in.MetricsBindAddress + out.EnableProfiling = in.EnableProfiling + out.EnableContentionProfiling = in.EnableContentionProfiling + out.FailureDomains = in.FailureDomains + return nil +} + +// Convert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration is an autogenerated conversion function. +func Convert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration(in *componentconfig.KubeSchedulerConfiguration, out *KubeSchedulerConfiguration, s conversion.Scope) error { + return autoConvert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_KubeSchedulerLeaderElectionConfiguration_To_componentconfig_KubeSchedulerLeaderElectionConfiguration(in *KubeSchedulerLeaderElectionConfiguration, out *componentconfig.KubeSchedulerLeaderElectionConfiguration, s conversion.Scope) error { + if err := Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(&in.LeaderElectionConfiguration, &out.LeaderElectionConfiguration, s); err != nil { return err } - out.OOMScoreAdj = (*int32)(unsafe.Pointer(in.OOMScoreAdj)) - out.Mode = ProxyMode(in.Mode) - out.PortRange = in.PortRange - out.ResourceContainer = in.ResourceContainer - out.UDPIdleTimeout = in.UDPIdleTimeout - if err := Convert_componentconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration(&in.Conntrack, &out.Conntrack, s); err != nil { + out.LockObjectNamespace = in.LockObjectNamespace + out.LockObjectName = in.LockObjectName + return nil +} + +// Convert_v1alpha1_KubeSchedulerLeaderElectionConfiguration_To_componentconfig_KubeSchedulerLeaderElectionConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_KubeSchedulerLeaderElectionConfiguration_To_componentconfig_KubeSchedulerLeaderElectionConfiguration(in *KubeSchedulerLeaderElectionConfiguration, out *componentconfig.KubeSchedulerLeaderElectionConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeSchedulerLeaderElectionConfiguration_To_componentconfig_KubeSchedulerLeaderElectionConfiguration(in, out, s) +} + +func autoConvert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha1_KubeSchedulerLeaderElectionConfiguration(in *componentconfig.KubeSchedulerLeaderElectionConfiguration, out *KubeSchedulerLeaderElectionConfiguration, s conversion.Scope) error { + if err := Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(&in.LeaderElectionConfiguration, &out.LeaderElectionConfiguration, s); err != nil { return err } - out.ConfigSyncPeriod = in.ConfigSyncPeriod + out.LockObjectNamespace = in.LockObjectNamespace + out.LockObjectName = in.LockObjectName return nil } -// Convert_componentconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration is an autogenerated conversion function. -func Convert_componentconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration(in *componentconfig.KubeProxyConfiguration, out *KubeProxyConfiguration, s conversion.Scope) error { - return autoConvert_componentconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration(in, out, s) +// Convert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha1_KubeSchedulerLeaderElectionConfiguration is an autogenerated conversion function. +func Convert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha1_KubeSchedulerLeaderElectionConfiguration(in *componentconfig.KubeSchedulerLeaderElectionConfiguration, out *KubeSchedulerLeaderElectionConfiguration, s conversion.Scope) error { + return autoConvert_componentconfig_KubeSchedulerLeaderElectionConfiguration_To_v1alpha1_KubeSchedulerLeaderElectionConfiguration(in, out, s) } -func autoConvert_v1alpha1_KubeProxyConntrackConfiguration_To_componentconfig_KubeProxyConntrackConfiguration(in *KubeProxyConntrackConfiguration, out *componentconfig.KubeProxyConntrackConfiguration, s conversion.Scope) error { - out.Max = in.Max - out.MaxPerCore = in.MaxPerCore - out.Min = in.Min - out.TCPEstablishedTimeout = in.TCPEstablishedTimeout - out.TCPCloseWaitTimeout = in.TCPCloseWaitTimeout +func autoConvert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(in *LeaderElectionConfiguration, out *componentconfig.LeaderElectionConfiguration, s conversion.Scope) error { + if err := v1.Convert_Pointer_bool_To_bool(&in.LeaderElect, &out.LeaderElect, s); err != nil { + return err + } + out.LeaseDuration = in.LeaseDuration + out.RenewDeadline = in.RenewDeadline + out.RetryPeriod = in.RetryPeriod + out.ResourceLock = in.ResourceLock return nil } -// Convert_v1alpha1_KubeProxyConntrackConfiguration_To_componentconfig_KubeProxyConntrackConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_KubeProxyConntrackConfiguration_To_componentconfig_KubeProxyConntrackConfiguration(in *KubeProxyConntrackConfiguration, out *componentconfig.KubeProxyConntrackConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeProxyConntrackConfiguration_To_componentconfig_KubeProxyConntrackConfiguration(in, out, s) +// Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(in *LeaderElectionConfiguration, out *componentconfig.LeaderElectionConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(in, out, s) } -func autoConvert_componentconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration(in *componentconfig.KubeProxyConntrackConfiguration, out *KubeProxyConntrackConfiguration, s conversion.Scope) error { - out.Max = in.Max - out.MaxPerCore = in.MaxPerCore - out.Min = in.Min - out.TCPEstablishedTimeout = in.TCPEstablishedTimeout - out.TCPCloseWaitTimeout = in.TCPCloseWaitTimeout +func autoConvert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in *componentconfig.LeaderElectionConfiguration, out *LeaderElectionConfiguration, s conversion.Scope) error { + if err := v1.Convert_bool_To_Pointer_bool(&in.LeaderElect, &out.LeaderElect, s); err != nil { + return err + } + out.LeaseDuration = in.LeaseDuration + out.RenewDeadline = in.RenewDeadline + out.RetryPeriod = in.RetryPeriod + out.ResourceLock = in.ResourceLock return nil } -// Convert_componentconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration is an autogenerated conversion function. -func Convert_componentconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration(in *componentconfig.KubeProxyConntrackConfiguration, out *KubeProxyConntrackConfiguration, s conversion.Scope) error { - return autoConvert_componentconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration(in, out, s) +// Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration is an autogenerated conversion function. +func Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in *componentconfig.LeaderElectionConfiguration, out *LeaderElectionConfiguration, s conversion.Scope) error { + return autoConvert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in, out, s) } -func autoConvert_v1alpha1_KubeProxyIPTablesConfiguration_To_componentconfig_KubeProxyIPTablesConfiguration(in *KubeProxyIPTablesConfiguration, out *componentconfig.KubeProxyIPTablesConfiguration, s conversion.Scope) error { - out.MasqueradeBit = (*int32)(unsafe.Pointer(in.MasqueradeBit)) - out.MasqueradeAll = in.MasqueradeAll - out.SyncPeriod = in.SyncPeriod - out.MinSyncPeriod = in.MinSyncPeriod +func autoConvert_v1alpha1_SchedulerAlgorithmSource_To_componentconfig_SchedulerAlgorithmSource(in *SchedulerAlgorithmSource, out *componentconfig.SchedulerAlgorithmSource, s conversion.Scope) error { + out.Policy = (*componentconfig.SchedulerPolicySource)(unsafe.Pointer(in.Policy)) + out.Provider = (*string)(unsafe.Pointer(in.Provider)) return nil } -// Convert_v1alpha1_KubeProxyIPTablesConfiguration_To_componentconfig_KubeProxyIPTablesConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_KubeProxyIPTablesConfiguration_To_componentconfig_KubeProxyIPTablesConfiguration(in *KubeProxyIPTablesConfiguration, out *componentconfig.KubeProxyIPTablesConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeProxyIPTablesConfiguration_To_componentconfig_KubeProxyIPTablesConfiguration(in, out, s) +// Convert_v1alpha1_SchedulerAlgorithmSource_To_componentconfig_SchedulerAlgorithmSource is an autogenerated conversion function. +func Convert_v1alpha1_SchedulerAlgorithmSource_To_componentconfig_SchedulerAlgorithmSource(in *SchedulerAlgorithmSource, out *componentconfig.SchedulerAlgorithmSource, s conversion.Scope) error { + return autoConvert_v1alpha1_SchedulerAlgorithmSource_To_componentconfig_SchedulerAlgorithmSource(in, out, s) } -func autoConvert_componentconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration(in *componentconfig.KubeProxyIPTablesConfiguration, out *KubeProxyIPTablesConfiguration, s conversion.Scope) error { - out.MasqueradeBit = (*int32)(unsafe.Pointer(in.MasqueradeBit)) - out.MasqueradeAll = in.MasqueradeAll - out.SyncPeriod = in.SyncPeriod - out.MinSyncPeriod = in.MinSyncPeriod +func autoConvert_componentconfig_SchedulerAlgorithmSource_To_v1alpha1_SchedulerAlgorithmSource(in *componentconfig.SchedulerAlgorithmSource, out *SchedulerAlgorithmSource, s conversion.Scope) error { + out.Policy = (*SchedulerPolicySource)(unsafe.Pointer(in.Policy)) + out.Provider = (*string)(unsafe.Pointer(in.Provider)) return nil } -// Convert_componentconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration is an autogenerated conversion function. -func Convert_componentconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration(in *componentconfig.KubeProxyIPTablesConfiguration, out *KubeProxyIPTablesConfiguration, s conversion.Scope) error { - return autoConvert_componentconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration(in, out, s) +// Convert_componentconfig_SchedulerAlgorithmSource_To_v1alpha1_SchedulerAlgorithmSource is an autogenerated conversion function. +func Convert_componentconfig_SchedulerAlgorithmSource_To_v1alpha1_SchedulerAlgorithmSource(in *componentconfig.SchedulerAlgorithmSource, out *SchedulerAlgorithmSource, s conversion.Scope) error { + return autoConvert_componentconfig_SchedulerAlgorithmSource_To_v1alpha1_SchedulerAlgorithmSource(in, out, s) } -func autoConvert_v1alpha1_KubeProxyIPVSConfiguration_To_componentconfig_KubeProxyIPVSConfiguration(in *KubeProxyIPVSConfiguration, out *componentconfig.KubeProxyIPVSConfiguration, s conversion.Scope) error { - out.SyncPeriod = in.SyncPeriod - out.MinSyncPeriod = in.MinSyncPeriod - out.Scheduler = in.Scheduler +func autoConvert_v1alpha1_SchedulerPolicyConfigMapSource_To_componentconfig_SchedulerPolicyConfigMapSource(in *SchedulerPolicyConfigMapSource, out *componentconfig.SchedulerPolicyConfigMapSource, s conversion.Scope) error { + out.Namespace = in.Namespace + out.Name = in.Name return nil } -// Convert_v1alpha1_KubeProxyIPVSConfiguration_To_componentconfig_KubeProxyIPVSConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_KubeProxyIPVSConfiguration_To_componentconfig_KubeProxyIPVSConfiguration(in *KubeProxyIPVSConfiguration, out *componentconfig.KubeProxyIPVSConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeProxyIPVSConfiguration_To_componentconfig_KubeProxyIPVSConfiguration(in, out, s) +// Convert_v1alpha1_SchedulerPolicyConfigMapSource_To_componentconfig_SchedulerPolicyConfigMapSource is an autogenerated conversion function. +func Convert_v1alpha1_SchedulerPolicyConfigMapSource_To_componentconfig_SchedulerPolicyConfigMapSource(in *SchedulerPolicyConfigMapSource, out *componentconfig.SchedulerPolicyConfigMapSource, s conversion.Scope) error { + return autoConvert_v1alpha1_SchedulerPolicyConfigMapSource_To_componentconfig_SchedulerPolicyConfigMapSource(in, out, s) } -func autoConvert_componentconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration(in *componentconfig.KubeProxyIPVSConfiguration, out *KubeProxyIPVSConfiguration, s conversion.Scope) error { - out.SyncPeriod = in.SyncPeriod - out.MinSyncPeriod = in.MinSyncPeriod - out.Scheduler = in.Scheduler +func autoConvert_componentconfig_SchedulerPolicyConfigMapSource_To_v1alpha1_SchedulerPolicyConfigMapSource(in *componentconfig.SchedulerPolicyConfigMapSource, out *SchedulerPolicyConfigMapSource, s conversion.Scope) error { + out.Namespace = in.Namespace + out.Name = in.Name return nil } -// Convert_componentconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration is an autogenerated conversion function. -func Convert_componentconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration(in *componentconfig.KubeProxyIPVSConfiguration, out *KubeProxyIPVSConfiguration, s conversion.Scope) error { - return autoConvert_componentconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration(in, out, s) +// Convert_componentconfig_SchedulerPolicyConfigMapSource_To_v1alpha1_SchedulerPolicyConfigMapSource is an autogenerated conversion function. +func Convert_componentconfig_SchedulerPolicyConfigMapSource_To_v1alpha1_SchedulerPolicyConfigMapSource(in *componentconfig.SchedulerPolicyConfigMapSource, out *SchedulerPolicyConfigMapSource, s conversion.Scope) error { + return autoConvert_componentconfig_SchedulerPolicyConfigMapSource_To_v1alpha1_SchedulerPolicyConfigMapSource(in, out, s) } -func autoConvert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration(in *KubeSchedulerConfiguration, out *componentconfig.KubeSchedulerConfiguration, s conversion.Scope) error { - out.Port = int32(in.Port) - out.Address = in.Address - out.AlgorithmProvider = in.AlgorithmProvider - out.PolicyConfigFile = in.PolicyConfigFile - if err := v1.Convert_Pointer_bool_To_bool(&in.EnableProfiling, &out.EnableProfiling, s); err != nil { - return err - } - out.EnableContentionProfiling = in.EnableContentionProfiling - out.ContentType = in.ContentType - out.KubeAPIQPS = in.KubeAPIQPS - out.KubeAPIBurst = int32(in.KubeAPIBurst) - out.SchedulerName = in.SchedulerName - out.HardPodAffinitySymmetricWeight = in.HardPodAffinitySymmetricWeight - out.FailureDomains = in.FailureDomains - if err := Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { - return err - } - out.LockObjectNamespace = in.LockObjectNamespace - out.LockObjectName = in.LockObjectName - out.PolicyConfigMapName = in.PolicyConfigMapName - out.PolicyConfigMapNamespace = in.PolicyConfigMapNamespace - out.UseLegacyPolicyConfig = in.UseLegacyPolicyConfig +func autoConvert_v1alpha1_SchedulerPolicyFileSource_To_componentconfig_SchedulerPolicyFileSource(in *SchedulerPolicyFileSource, out *componentconfig.SchedulerPolicyFileSource, s conversion.Scope) error { + out.Path = in.Path return nil } -// Convert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration(in *KubeSchedulerConfiguration, out *componentconfig.KubeSchedulerConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_KubeSchedulerConfiguration_To_componentconfig_KubeSchedulerConfiguration(in, out, s) +// Convert_v1alpha1_SchedulerPolicyFileSource_To_componentconfig_SchedulerPolicyFileSource is an autogenerated conversion function. +func Convert_v1alpha1_SchedulerPolicyFileSource_To_componentconfig_SchedulerPolicyFileSource(in *SchedulerPolicyFileSource, out *componentconfig.SchedulerPolicyFileSource, s conversion.Scope) error { + return autoConvert_v1alpha1_SchedulerPolicyFileSource_To_componentconfig_SchedulerPolicyFileSource(in, out, s) } -func autoConvert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration(in *componentconfig.KubeSchedulerConfiguration, out *KubeSchedulerConfiguration, s conversion.Scope) error { - out.Port = int(in.Port) - out.Address = in.Address - out.AlgorithmProvider = in.AlgorithmProvider - out.PolicyConfigFile = in.PolicyConfigFile - if err := v1.Convert_bool_To_Pointer_bool(&in.EnableProfiling, &out.EnableProfiling, s); err != nil { - return err - } - out.EnableContentionProfiling = in.EnableContentionProfiling - out.ContentType = in.ContentType - out.KubeAPIQPS = in.KubeAPIQPS - out.KubeAPIBurst = int(in.KubeAPIBurst) - out.SchedulerName = in.SchedulerName - out.HardPodAffinitySymmetricWeight = in.HardPodAffinitySymmetricWeight - out.FailureDomains = in.FailureDomains - if err := Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(&in.LeaderElection, &out.LeaderElection, s); err != nil { - return err - } - out.LockObjectNamespace = in.LockObjectNamespace - out.LockObjectName = in.LockObjectName - out.PolicyConfigMapName = in.PolicyConfigMapName - out.PolicyConfigMapNamespace = in.PolicyConfigMapNamespace - out.UseLegacyPolicyConfig = in.UseLegacyPolicyConfig +func autoConvert_componentconfig_SchedulerPolicyFileSource_To_v1alpha1_SchedulerPolicyFileSource(in *componentconfig.SchedulerPolicyFileSource, out *SchedulerPolicyFileSource, s conversion.Scope) error { + out.Path = in.Path return nil } -// Convert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration is an autogenerated conversion function. -func Convert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration(in *componentconfig.KubeSchedulerConfiguration, out *KubeSchedulerConfiguration, s conversion.Scope) error { - return autoConvert_componentconfig_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration(in, out, s) +// Convert_componentconfig_SchedulerPolicyFileSource_To_v1alpha1_SchedulerPolicyFileSource is an autogenerated conversion function. +func Convert_componentconfig_SchedulerPolicyFileSource_To_v1alpha1_SchedulerPolicyFileSource(in *componentconfig.SchedulerPolicyFileSource, out *SchedulerPolicyFileSource, s conversion.Scope) error { + return autoConvert_componentconfig_SchedulerPolicyFileSource_To_v1alpha1_SchedulerPolicyFileSource(in, out, s) } -func autoConvert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(in *LeaderElectionConfiguration, out *componentconfig.LeaderElectionConfiguration, s conversion.Scope) error { - if err := v1.Convert_Pointer_bool_To_bool(&in.LeaderElect, &out.LeaderElect, s); err != nil { - return err - } - out.LeaseDuration = in.LeaseDuration - out.RenewDeadline = in.RenewDeadline - out.RetryPeriod = in.RetryPeriod - out.ResourceLock = in.ResourceLock +func autoConvert_v1alpha1_SchedulerPolicySource_To_componentconfig_SchedulerPolicySource(in *SchedulerPolicySource, out *componentconfig.SchedulerPolicySource, s conversion.Scope) error { + out.File = (*componentconfig.SchedulerPolicyFileSource)(unsafe.Pointer(in.File)) + out.ConfigMap = (*componentconfig.SchedulerPolicyConfigMapSource)(unsafe.Pointer(in.ConfigMap)) return nil } -// Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration is an autogenerated conversion function. -func Convert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(in *LeaderElectionConfiguration, out *componentconfig.LeaderElectionConfiguration, s conversion.Scope) error { - return autoConvert_v1alpha1_LeaderElectionConfiguration_To_componentconfig_LeaderElectionConfiguration(in, out, s) +// Convert_v1alpha1_SchedulerPolicySource_To_componentconfig_SchedulerPolicySource is an autogenerated conversion function. +func Convert_v1alpha1_SchedulerPolicySource_To_componentconfig_SchedulerPolicySource(in *SchedulerPolicySource, out *componentconfig.SchedulerPolicySource, s conversion.Scope) error { + return autoConvert_v1alpha1_SchedulerPolicySource_To_componentconfig_SchedulerPolicySource(in, out, s) } -func autoConvert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in *componentconfig.LeaderElectionConfiguration, out *LeaderElectionConfiguration, s conversion.Scope) error { - if err := v1.Convert_bool_To_Pointer_bool(&in.LeaderElect, &out.LeaderElect, s); err != nil { - return err - } - out.LeaseDuration = in.LeaseDuration - out.RenewDeadline = in.RenewDeadline - out.RetryPeriod = in.RetryPeriod - out.ResourceLock = in.ResourceLock +func autoConvert_componentconfig_SchedulerPolicySource_To_v1alpha1_SchedulerPolicySource(in *componentconfig.SchedulerPolicySource, out *SchedulerPolicySource, s conversion.Scope) error { + out.File = (*SchedulerPolicyFileSource)(unsafe.Pointer(in.File)) + out.ConfigMap = (*SchedulerPolicyConfigMapSource)(unsafe.Pointer(in.ConfigMap)) return nil } -// Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration is an autogenerated conversion function. -func Convert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in *componentconfig.LeaderElectionConfiguration, out *LeaderElectionConfiguration, s conversion.Scope) error { - return autoConvert_componentconfig_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in, out, s) +// Convert_componentconfig_SchedulerPolicySource_To_v1alpha1_SchedulerPolicySource is an autogenerated conversion function. +func Convert_componentconfig_SchedulerPolicySource_To_v1alpha1_SchedulerPolicySource(in *componentconfig.SchedulerPolicySource, out *SchedulerPolicySource, s conversion.Scope) error { + return autoConvert_componentconfig_SchedulerPolicySource_To_v1alpha1_SchedulerPolicySource(in, out, s) } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go index 51344da9e..9e6a3b36d 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go @@ -21,52 +21,9 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClientConnectionConfiguration).DeepCopyInto(out.(*ClientConnectionConfiguration)) - return nil - }, InType: reflect.TypeOf(&ClientConnectionConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeProxyConfiguration).DeepCopyInto(out.(*KubeProxyConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeProxyConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeProxyConntrackConfiguration).DeepCopyInto(out.(*KubeProxyConntrackConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeProxyConntrackConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeProxyIPTablesConfiguration).DeepCopyInto(out.(*KubeProxyIPTablesConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeProxyIPTablesConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeProxyIPVSConfiguration).DeepCopyInto(out.(*KubeProxyIPVSConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeProxyIPVSConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeSchedulerConfiguration).DeepCopyInto(out.(*KubeSchedulerConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeSchedulerConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LeaderElectionConfiguration).DeepCopyInto(out.(*LeaderElectionConfiguration)) - return nil - }, InType: reflect.TypeOf(&LeaderElectionConfiguration{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ClientConnectionConfiguration) DeepCopyInto(out *ClientConnectionConfiguration) { *out = *in @@ -84,39 +41,27 @@ func (in *ClientConnectionConfiguration) DeepCopy() *ClientConnectionConfigurati } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeProxyConfiguration) DeepCopyInto(out *KubeProxyConfiguration) { +func (in *KubeSchedulerConfiguration) DeepCopyInto(out *KubeSchedulerConfiguration) { *out = *in out.TypeMeta = in.TypeMeta + in.AlgorithmSource.DeepCopyInto(&out.AlgorithmSource) + in.LeaderElection.DeepCopyInto(&out.LeaderElection) out.ClientConnection = in.ClientConnection - in.IPTables.DeepCopyInto(&out.IPTables) - out.IPVS = in.IPVS - if in.OOMScoreAdj != nil { - in, out := &in.OOMScoreAdj, &out.OOMScoreAdj - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - out.UDPIdleTimeout = in.UDPIdleTimeout - out.Conntrack = in.Conntrack - out.ConfigSyncPeriod = in.ConfigSyncPeriod return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConfiguration. -func (in *KubeProxyConfiguration) DeepCopy() *KubeProxyConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeSchedulerConfiguration. +func (in *KubeSchedulerConfiguration) DeepCopy() *KubeSchedulerConfiguration { if in == nil { return nil } - out := new(KubeProxyConfiguration) + out := new(KubeSchedulerConfiguration) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KubeProxyConfiguration) DeepCopyObject() runtime.Object { +func (in *KubeSchedulerConfiguration) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -125,128 +70,146 @@ func (in *KubeProxyConfiguration) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeProxyConntrackConfiguration) DeepCopyInto(out *KubeProxyConntrackConfiguration) { +func (in *KubeSchedulerLeaderElectionConfiguration) DeepCopyInto(out *KubeSchedulerLeaderElectionConfiguration) { *out = *in - out.TCPEstablishedTimeout = in.TCPEstablishedTimeout - out.TCPCloseWaitTimeout = in.TCPCloseWaitTimeout + in.LeaderElectionConfiguration.DeepCopyInto(&out.LeaderElectionConfiguration) return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConntrackConfiguration. -func (in *KubeProxyConntrackConfiguration) DeepCopy() *KubeProxyConntrackConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeSchedulerLeaderElectionConfiguration. +func (in *KubeSchedulerLeaderElectionConfiguration) DeepCopy() *KubeSchedulerLeaderElectionConfiguration { if in == nil { return nil } - out := new(KubeProxyConntrackConfiguration) + out := new(KubeSchedulerLeaderElectionConfiguration) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeProxyIPTablesConfiguration) DeepCopyInto(out *KubeProxyIPTablesConfiguration) { +func (in *LeaderElectionConfiguration) DeepCopyInto(out *LeaderElectionConfiguration) { *out = *in - if in.MasqueradeBit != nil { - in, out := &in.MasqueradeBit, &out.MasqueradeBit + if in.LeaderElect != nil { + in, out := &in.LeaderElect, &out.LeaderElect if *in == nil { *out = nil } else { - *out = new(int32) + *out = new(bool) **out = **in } } - out.SyncPeriod = in.SyncPeriod - out.MinSyncPeriod = in.MinSyncPeriod + out.LeaseDuration = in.LeaseDuration + out.RenewDeadline = in.RenewDeadline + out.RetryPeriod = in.RetryPeriod return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyIPTablesConfiguration. -func (in *KubeProxyIPTablesConfiguration) DeepCopy() *KubeProxyIPTablesConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration. +func (in *LeaderElectionConfiguration) DeepCopy() *LeaderElectionConfiguration { if in == nil { return nil } - out := new(KubeProxyIPTablesConfiguration) + out := new(LeaderElectionConfiguration) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeProxyIPVSConfiguration) DeepCopyInto(out *KubeProxyIPVSConfiguration) { +func (in *SchedulerAlgorithmSource) DeepCopyInto(out *SchedulerAlgorithmSource) { *out = *in - out.SyncPeriod = in.SyncPeriod - out.MinSyncPeriod = in.MinSyncPeriod + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + if *in == nil { + *out = nil + } else { + *out = new(SchedulerPolicySource) + (*in).DeepCopyInto(*out) + } + } + if in.Provider != nil { + in, out := &in.Provider, &out.Provider + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyIPVSConfiguration. -func (in *KubeProxyIPVSConfiguration) DeepCopy() *KubeProxyIPVSConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerAlgorithmSource. +func (in *SchedulerAlgorithmSource) DeepCopy() *SchedulerAlgorithmSource { if in == nil { return nil } - out := new(KubeProxyIPVSConfiguration) + out := new(SchedulerAlgorithmSource) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeSchedulerConfiguration) DeepCopyInto(out *KubeSchedulerConfiguration) { +func (in *SchedulerPolicyConfigMapSource) DeepCopyInto(out *SchedulerPolicyConfigMapSource) { *out = *in - out.TypeMeta = in.TypeMeta - if in.EnableProfiling != nil { - in, out := &in.EnableProfiling, &out.EnableProfiling - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } - } - in.LeaderElection.DeepCopyInto(&out.LeaderElection) return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeSchedulerConfiguration. -func (in *KubeSchedulerConfiguration) DeepCopy() *KubeSchedulerConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerPolicyConfigMapSource. +func (in *SchedulerPolicyConfigMapSource) DeepCopy() *SchedulerPolicyConfigMapSource { if in == nil { return nil } - out := new(KubeSchedulerConfiguration) + out := new(SchedulerPolicyConfigMapSource) in.DeepCopyInto(out) return out } -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KubeSchedulerConfiguration) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SchedulerPolicyFileSource) DeepCopyInto(out *SchedulerPolicyFileSource) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerPolicyFileSource. +func (in *SchedulerPolicyFileSource) DeepCopy() *SchedulerPolicyFileSource { + if in == nil { return nil } + out := new(SchedulerPolicyFileSource) + in.DeepCopyInto(out) + return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LeaderElectionConfiguration) DeepCopyInto(out *LeaderElectionConfiguration) { +func (in *SchedulerPolicySource) DeepCopyInto(out *SchedulerPolicySource) { *out = *in - if in.LeaderElect != nil { - in, out := &in.LeaderElect, &out.LeaderElect + if in.File != nil { + in, out := &in.File, &out.File if *in == nil { *out = nil } else { - *out = new(bool) + *out = new(SchedulerPolicyFileSource) + **out = **in + } + } + if in.ConfigMap != nil { + in, out := &in.ConfigMap, &out.ConfigMap + if *in == nil { + *out = nil + } else { + *out = new(SchedulerPolicyConfigMapSource) **out = **in } } - out.LeaseDuration = in.LeaseDuration - out.RenewDeadline = in.RenewDeadline - out.RetryPeriod = in.RetryPeriod return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration. -func (in *LeaderElectionConfiguration) DeepCopy() *LeaderElectionConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerPolicySource. +func (in *SchedulerPolicySource) DeepCopy() *SchedulerPolicySource { if in == nil { return nil } - out := new(LeaderElectionConfiguration) + out := new(SchedulerPolicySource) in.DeepCopyInto(out) return out } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.defaults.go index 72f514af6..746d4d980 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.defaults.go @@ -28,16 +28,11 @@ import ( // Public to allow building arbitrary schemes. // All generated defaulters are covering - they call all nested defaulters. func RegisterDefaults(scheme *runtime.Scheme) error { - scheme.AddTypeDefaultingFunc(&KubeProxyConfiguration{}, func(obj interface{}) { SetObjectDefaults_KubeProxyConfiguration(obj.(*KubeProxyConfiguration)) }) scheme.AddTypeDefaultingFunc(&KubeSchedulerConfiguration{}, func(obj interface{}) { SetObjectDefaults_KubeSchedulerConfiguration(obj.(*KubeSchedulerConfiguration)) }) return nil } -func SetObjectDefaults_KubeProxyConfiguration(in *KubeProxyConfiguration) { - SetDefaults_KubeProxyConfiguration(in) -} - func SetObjectDefaults_KubeSchedulerConfiguration(in *KubeSchedulerConfiguration) { SetDefaults_KubeSchedulerConfiguration(in) - SetDefaults_LeaderElectionConfiguration(&in.LeaderElection) + SetDefaults_LeaderElectionConfiguration(&in.LeaderElection.LeaderElectionConfiguration) } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/zz_generated.deepcopy.go index d9ee091e5..3722020a3 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/zz_generated.deepcopy.go @@ -21,76 +21,9 @@ limitations under the License. package componentconfig import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClientConnectionConfiguration).DeepCopyInto(out.(*ClientConnectionConfiguration)) - return nil - }, InType: reflect.TypeOf(&ClientConnectionConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupResource).DeepCopyInto(out.(*GroupResource)) - return nil - }, InType: reflect.TypeOf(&GroupResource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IPVar).DeepCopyInto(out.(*IPVar)) - return nil - }, InType: reflect.TypeOf(&IPVar{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeControllerManagerConfiguration).DeepCopyInto(out.(*KubeControllerManagerConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeControllerManagerConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeProxyConfiguration).DeepCopyInto(out.(*KubeProxyConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeProxyConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeProxyConntrackConfiguration).DeepCopyInto(out.(*KubeProxyConntrackConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeProxyConntrackConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeProxyIPTablesConfiguration).DeepCopyInto(out.(*KubeProxyIPTablesConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeProxyIPTablesConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeProxyIPVSConfiguration).DeepCopyInto(out.(*KubeProxyIPVSConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeProxyIPVSConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeSchedulerConfiguration).DeepCopyInto(out.(*KubeSchedulerConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeSchedulerConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LeaderElectionConfiguration).DeepCopyInto(out.(*LeaderElectionConfiguration)) - return nil - }, InType: reflect.TypeOf(&LeaderElectionConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeRecyclerConfiguration).DeepCopyInto(out.(*PersistentVolumeRecyclerConfiguration)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeRecyclerConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PortRangeVar).DeepCopyInto(out.(*PortRangeVar)) - return nil - }, InType: reflect.TypeOf(&PortRangeVar{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VolumeConfiguration).DeepCopyInto(out.(*VolumeConfiguration)) - return nil - }, InType: reflect.TypeOf(&VolumeConfiguration{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ClientConnectionConfiguration) DeepCopyInto(out *ClientConnectionConfiguration) { *out = *in @@ -205,39 +138,27 @@ func (in *KubeControllerManagerConfiguration) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeProxyConfiguration) DeepCopyInto(out *KubeProxyConfiguration) { +func (in *KubeSchedulerConfiguration) DeepCopyInto(out *KubeSchedulerConfiguration) { *out = *in out.TypeMeta = in.TypeMeta + in.AlgorithmSource.DeepCopyInto(&out.AlgorithmSource) + out.LeaderElection = in.LeaderElection out.ClientConnection = in.ClientConnection - in.IPTables.DeepCopyInto(&out.IPTables) - out.IPVS = in.IPVS - if in.OOMScoreAdj != nil { - in, out := &in.OOMScoreAdj, &out.OOMScoreAdj - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - out.UDPIdleTimeout = in.UDPIdleTimeout - out.Conntrack = in.Conntrack - out.ConfigSyncPeriod = in.ConfigSyncPeriod return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConfiguration. -func (in *KubeProxyConfiguration) DeepCopy() *KubeProxyConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeSchedulerConfiguration. +func (in *KubeSchedulerConfiguration) DeepCopy() *KubeSchedulerConfiguration { if in == nil { return nil } - out := new(KubeProxyConfiguration) + out := new(KubeSchedulerConfiguration) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KubeProxyConfiguration) DeepCopyObject() runtime.Object { +func (in *KubeSchedulerConfiguration) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -246,151 +167,178 @@ func (in *KubeProxyConfiguration) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeProxyConntrackConfiguration) DeepCopyInto(out *KubeProxyConntrackConfiguration) { +func (in *KubeSchedulerLeaderElectionConfiguration) DeepCopyInto(out *KubeSchedulerLeaderElectionConfiguration) { *out = *in - out.TCPEstablishedTimeout = in.TCPEstablishedTimeout - out.TCPCloseWaitTimeout = in.TCPCloseWaitTimeout + out.LeaderElectionConfiguration = in.LeaderElectionConfiguration return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConntrackConfiguration. -func (in *KubeProxyConntrackConfiguration) DeepCopy() *KubeProxyConntrackConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeSchedulerLeaderElectionConfiguration. +func (in *KubeSchedulerLeaderElectionConfiguration) DeepCopy() *KubeSchedulerLeaderElectionConfiguration { if in == nil { return nil } - out := new(KubeProxyConntrackConfiguration) + out := new(KubeSchedulerLeaderElectionConfiguration) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeProxyIPTablesConfiguration) DeepCopyInto(out *KubeProxyIPTablesConfiguration) { +func (in *LeaderElectionConfiguration) DeepCopyInto(out *LeaderElectionConfiguration) { *out = *in - if in.MasqueradeBit != nil { - in, out := &in.MasqueradeBit, &out.MasqueradeBit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - out.SyncPeriod = in.SyncPeriod - out.MinSyncPeriod = in.MinSyncPeriod + out.LeaseDuration = in.LeaseDuration + out.RenewDeadline = in.RenewDeadline + out.RetryPeriod = in.RetryPeriod return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyIPTablesConfiguration. -func (in *KubeProxyIPTablesConfiguration) DeepCopy() *KubeProxyIPTablesConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration. +func (in *LeaderElectionConfiguration) DeepCopy() *LeaderElectionConfiguration { if in == nil { return nil } - out := new(KubeProxyIPTablesConfiguration) + out := new(LeaderElectionConfiguration) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeProxyIPVSConfiguration) DeepCopyInto(out *KubeProxyIPVSConfiguration) { +func (in *PersistentVolumeRecyclerConfiguration) DeepCopyInto(out *PersistentVolumeRecyclerConfiguration) { *out = *in - out.SyncPeriod = in.SyncPeriod - out.MinSyncPeriod = in.MinSyncPeriod return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyIPVSConfiguration. -func (in *KubeProxyIPVSConfiguration) DeepCopy() *KubeProxyIPVSConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeRecyclerConfiguration. +func (in *PersistentVolumeRecyclerConfiguration) DeepCopy() *PersistentVolumeRecyclerConfiguration { if in == nil { return nil } - out := new(KubeProxyIPVSConfiguration) + out := new(PersistentVolumeRecyclerConfiguration) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeSchedulerConfiguration) DeepCopyInto(out *KubeSchedulerConfiguration) { +func (in *PortRangeVar) DeepCopyInto(out *PortRangeVar) { *out = *in - out.TypeMeta = in.TypeMeta - out.LeaderElection = in.LeaderElection + if in.Val != nil { + in, out := &in.Val, &out.Val + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeSchedulerConfiguration. -func (in *KubeSchedulerConfiguration) DeepCopy() *KubeSchedulerConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRangeVar. +func (in *PortRangeVar) DeepCopy() *PortRangeVar { if in == nil { return nil } - out := new(KubeSchedulerConfiguration) + out := new(PortRangeVar) in.DeepCopyInto(out) return out } -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KubeSchedulerConfiguration) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SchedulerAlgorithmSource) DeepCopyInto(out *SchedulerAlgorithmSource) { + *out = *in + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + if *in == nil { + *out = nil + } else { + *out = new(SchedulerPolicySource) + (*in).DeepCopyInto(*out) + } + } + if in.Provider != nil { + in, out := &in.Provider, &out.Provider + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerAlgorithmSource. +func (in *SchedulerAlgorithmSource) DeepCopy() *SchedulerAlgorithmSource { + if in == nil { return nil } + out := new(SchedulerAlgorithmSource) + in.DeepCopyInto(out) + return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LeaderElectionConfiguration) DeepCopyInto(out *LeaderElectionConfiguration) { +func (in *SchedulerPolicyConfigMapSource) DeepCopyInto(out *SchedulerPolicyConfigMapSource) { *out = *in - out.LeaseDuration = in.LeaseDuration - out.RenewDeadline = in.RenewDeadline - out.RetryPeriod = in.RetryPeriod return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration. -func (in *LeaderElectionConfiguration) DeepCopy() *LeaderElectionConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerPolicyConfigMapSource. +func (in *SchedulerPolicyConfigMapSource) DeepCopy() *SchedulerPolicyConfigMapSource { if in == nil { return nil } - out := new(LeaderElectionConfiguration) + out := new(SchedulerPolicyConfigMapSource) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PersistentVolumeRecyclerConfiguration) DeepCopyInto(out *PersistentVolumeRecyclerConfiguration) { +func (in *SchedulerPolicyFileSource) DeepCopyInto(out *SchedulerPolicyFileSource) { *out = *in return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeRecyclerConfiguration. -func (in *PersistentVolumeRecyclerConfiguration) DeepCopy() *PersistentVolumeRecyclerConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerPolicyFileSource. +func (in *SchedulerPolicyFileSource) DeepCopy() *SchedulerPolicyFileSource { if in == nil { return nil } - out := new(PersistentVolumeRecyclerConfiguration) + out := new(SchedulerPolicyFileSource) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PortRangeVar) DeepCopyInto(out *PortRangeVar) { +func (in *SchedulerPolicySource) DeepCopyInto(out *SchedulerPolicySource) { *out = *in - if in.Val != nil { - in, out := &in.Val, &out.Val + if in.File != nil { + in, out := &in.File, &out.File if *in == nil { *out = nil } else { - *out = new(string) + *out = new(SchedulerPolicyFileSource) + **out = **in + } + } + if in.ConfigMap != nil { + in, out := &in.ConfigMap, &out.ConfigMap + if *in == nil { + *out = nil + } else { + *out = new(SchedulerPolicyConfigMapSource) **out = **in } } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRangeVar. -func (in *PortRangeVar) DeepCopy() *PortRangeVar { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerPolicySource. +func (in *SchedulerPolicySource) DeepCopy() *SchedulerPolicySource { if in == nil { return nil } - out := new(PortRangeVar) + out := new(SchedulerPolicySource) in.DeepCopyInto(out) return out } diff --git a/vendor/k8s.io/kubernetes/pkg/api/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/BUILD similarity index 60% rename from vendor/k8s.io/kubernetes/pkg/api/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/BUILD index 8b2706909..ddd461bd5 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/BUILD @@ -15,20 +15,16 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - importpath = "k8s.io/kubernetes/pkg/api", + importpath = "k8s.io/kubernetes/pkg/apis/core", visibility = ["//visibility:public"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema: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/util/intstr:go_default_library", ], @@ -37,7 +33,7 @@ go_library( go_test( name = "go_default_test", srcs = ["taint_test.go"], - importpath = "k8s.io/kubernetes/pkg/api", + importpath = "k8s.io/kubernetes/pkg/apis/core", library = ":go_default_library", ) @@ -52,21 +48,11 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//pkg/api/endpoints:all-srcs", - "//pkg/api/events:all-srcs", - "//pkg/api/fuzzer:all-srcs", - "//pkg/api/helper:all-srcs", - "//pkg/api/install:all-srcs", - "//pkg/api/persistentvolume:all-srcs", - "//pkg/api/pod:all-srcs", - "//pkg/api/ref:all-srcs", - "//pkg/api/resource:all-srcs", - "//pkg/api/service:all-srcs", - "//pkg/api/testapi:all-srcs", - "//pkg/api/testing:all-srcs", - "//pkg/api/unversioned:all-srcs", - "//pkg/api/v1:all-srcs", - "//pkg/api/validation:all-srcs", + "//pkg/apis/core/fuzzer:all-srcs", + "//pkg/apis/core/helper:all-srcs", + "//pkg/apis/core/install:all-srcs", + "//pkg/apis/core/v1:all-srcs", + "//pkg/apis/core/validation:all-srcs", ], tags = ["automanaged"], visibility = ["//visibility:public"], diff --git a/vendor/k8s.io/api/core/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/core/OWNERS similarity index 90% rename from vendor/k8s.io/api/core/OWNERS rename to vendor/k8s.io/kubernetes/pkg/apis/core/OWNERS index 7009d88bf..0605b27b2 100644 --- a/vendor/k8s.io/api/core/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/OWNERS @@ -3,6 +3,8 @@ approvers: - lavalamp - smarterclayton - thockin +- liggitt +# - bgrant0607 # manual escalations only reviewers: - thockin - lavalamp diff --git a/vendor/k8s.io/kubernetes/pkg/api/annotation_key_constants.go b/vendor/k8s.io/kubernetes/pkg/apis/core/annotation_key_constants.go similarity index 94% rename from vendor/k8s.io/kubernetes/pkg/api/annotation_key_constants.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/annotation_key_constants.go index e93542446..c441a601b 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/annotation_key_constants.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/annotation_key_constants.go @@ -16,7 +16,7 @@ limitations under the License. // This file should be consistent with pkg/api/v1/annotation_key_constants.go. -package api +package core const ( // ImagePolicyFailedOpenKey is added to pods created by failing open when the image policy @@ -45,12 +45,6 @@ const ( // to one container of a pod. SeccompContainerAnnotationKeyPrefix string = "container.seccomp.security.alpha.kubernetes.io/" - // CreatedByAnnotation represents the key used to store the spec(json) - // used to create the resource. - // This field is deprecated in favor of ControllerRef (see #44407). - // TODO(#50720): Remove this field in v1.9. - CreatedByAnnotation = "kubernetes.io/created-by" - // PreferAvoidPodsAnnotationKey represents the key of preferAvoidPods data (json serialized) // in the Annotations of a Node. PreferAvoidPodsAnnotationKey string = "scheduler.alpha.kubernetes.io/preferAvoidPods" diff --git a/vendor/k8s.io/kubernetes/pkg/api/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/core/doc.go similarity index 91% rename from vendor/k8s.io/kubernetes/pkg/api/doc.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/doc.go index 283a83e40..6017bfdab 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/doc.go @@ -14,11 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package api contains the latest (or "internal") version of the // Kubernetes API objects. This is the API objects as represented in memory. // The contract presented to clients is located in the versioned packages, // which are sub-directories. The first one is "v1". Those packages // describe how a particular version is serialized to storage/network. -package api // import "k8s.io/kubernetes/pkg/api" +package core // import "k8s.io/kubernetes/pkg/apis/core" diff --git a/vendor/k8s.io/kubernetes/pkg/api/field_constants.go b/vendor/k8s.io/kubernetes/pkg/apis/core/field_constants.go similarity index 99% rename from vendor/k8s.io/kubernetes/pkg/api/field_constants.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/field_constants.go index 5ead0f13f..13149a52d 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/field_constants.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/field_constants.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api +package core // Field path constants that are specific to the internal API // representation. diff --git a/vendor/k8s.io/kubernetes/pkg/api/fuzzer/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/fuzzer/BUILD similarity index 90% rename from vendor/k8s.io/kubernetes/pkg/api/fuzzer/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/fuzzer/BUILD index 959d1f338..87db372fc 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/fuzzer/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/fuzzer/BUILD @@ -8,9 +8,9 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - importpath = "k8s.io/kubernetes/pkg/api/fuzzer", + importpath = "k8s.io/kubernetes/pkg/apis/core/fuzzer", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/api/fuzzer/fuzzer.go b/vendor/k8s.io/kubernetes/pkg/apis/core/fuzzer/fuzzer.go similarity index 58% rename from vendor/k8s.io/kubernetes/pkg/api/fuzzer/fuzzer.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/fuzzer/fuzzer.go index ea9a8f7a9..4fd1e4c1b 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/fuzzer/fuzzer.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/fuzzer/fuzzer.go @@ -29,16 +29,16 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/core" ) -// Funcs returns the fuzzer functions for the core api group. +// Funcs returns the fuzzer functions for the core core group. var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { return []interface{}{ func(q *resource.Quantity, c fuzz.Continue) { *q = *resource.NewQuantity(c.Int63n(1000), resource.DecimalExponent) }, - func(j *api.ObjectReference, c fuzz.Continue) { + func(j *core.ObjectReference, c fuzz.Continue) { // We have to customize the randomization of TypeMetas because their // APIVersion and Kind must remain blank in memory. j.APIVersion = c.RandString() @@ -48,21 +48,21 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { j.ResourceVersion = strconv.FormatUint(c.RandUint64(), 10) j.FieldPath = c.RandString() }, - func(j *api.ListOptions, c fuzz.Continue) { + func(j *core.ListOptions, c fuzz.Continue) { label, _ := labels.Parse("a=b") j.LabelSelector = label field, _ := fields.ParseSelector("a=b") j.FieldSelector = field }, - func(j *api.PodExecOptions, c fuzz.Continue) { + func(j *core.PodExecOptions, c fuzz.Continue) { j.Stdout = true j.Stderr = true }, - func(j *api.PodAttachOptions, c fuzz.Continue) { + func(j *core.PodAttachOptions, c fuzz.Continue) { j.Stdout = true j.Stderr = true }, - func(j *api.PodPortForwardOptions, c fuzz.Continue) { + func(j *core.PodPortForwardOptions, c fuzz.Continue) { if c.RandBool() { j.Ports = make([]int32, c.Intn(10)) for i := range j.Ports { @@ -70,7 +70,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { } } }, - func(s *api.PodSpec, c fuzz.Continue) { + func(s *core.PodSpec, c fuzz.Continue) { c.FuzzNoCustom(s) // has a default value ttl := int64(30) @@ -82,35 +82,35 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { c.Fuzz(s.SecurityContext) if s.SecurityContext == nil { - s.SecurityContext = new(api.PodSecurityContext) + s.SecurityContext = new(core.PodSecurityContext) } if s.Affinity == nil { - s.Affinity = new(api.Affinity) + s.Affinity = new(core.Affinity) } if s.SchedulerName == "" { - s.SchedulerName = api.DefaultSchedulerName + s.SchedulerName = core.DefaultSchedulerName } }, - func(j *api.PodPhase, c fuzz.Continue) { - statuses := []api.PodPhase{api.PodPending, api.PodRunning, api.PodFailed, api.PodUnknown} + func(j *core.PodPhase, c fuzz.Continue) { + statuses := []core.PodPhase{core.PodPending, core.PodRunning, core.PodFailed, core.PodUnknown} *j = statuses[c.Rand.Intn(len(statuses))] }, - func(j *api.Binding, c fuzz.Continue) { + func(j *core.Binding, c fuzz.Continue) { c.Fuzz(&j.ObjectMeta) j.Target.Name = c.RandString() }, - func(j *api.ReplicationControllerSpec, c fuzz.Continue) { + func(j *core.ReplicationControllerSpec, c fuzz.Continue) { c.FuzzNoCustom(j) // fuzz self without calling this function again //j.TemplateRef = nil // this is required for round trip }, - func(j *api.List, c fuzz.Continue) { + func(j *core.List, c fuzz.Continue) { c.FuzzNoCustom(j) // fuzz self without calling this function again // TODO: uncomment when round trip starts from a versioned object if false { //j.Items == nil { j.Items = []runtime.Object{} } }, - func(q *api.ResourceRequirements, c fuzz.Continue) { + func(q *core.ResourceRequirements, c fuzz.Continue) { randomQuantity := func() resource.Quantity { var q resource.Quantity c.Fuzz(&q) @@ -118,52 +118,52 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { _ = q.String() return q } - q.Limits = make(api.ResourceList) - q.Requests = make(api.ResourceList) + q.Limits = make(core.ResourceList) + q.Requests = make(core.ResourceList) cpuLimit := randomQuantity() - q.Limits[api.ResourceCPU] = *cpuLimit.Copy() - q.Requests[api.ResourceCPU] = *cpuLimit.Copy() + q.Limits[core.ResourceCPU] = *cpuLimit.Copy() + q.Requests[core.ResourceCPU] = *cpuLimit.Copy() memoryLimit := randomQuantity() - q.Limits[api.ResourceMemory] = *memoryLimit.Copy() - q.Requests[api.ResourceMemory] = *memoryLimit.Copy() + q.Limits[core.ResourceMemory] = *memoryLimit.Copy() + q.Requests[core.ResourceMemory] = *memoryLimit.Copy() storageLimit := randomQuantity() - q.Limits[api.ResourceStorage] = *storageLimit.Copy() - q.Requests[api.ResourceStorage] = *storageLimit.Copy() + q.Limits[core.ResourceStorage] = *storageLimit.Copy() + q.Requests[core.ResourceStorage] = *storageLimit.Copy() }, - func(q *api.LimitRangeItem, c fuzz.Continue) { + func(q *core.LimitRangeItem, c fuzz.Continue) { var cpuLimit resource.Quantity c.Fuzz(&cpuLimit) - q.Type = api.LimitTypeContainer - q.Default = make(api.ResourceList) - q.Default[api.ResourceCPU] = *(cpuLimit.Copy()) + q.Type = core.LimitTypeContainer + q.Default = make(core.ResourceList) + q.Default[core.ResourceCPU] = *(cpuLimit.Copy()) - q.DefaultRequest = make(api.ResourceList) - q.DefaultRequest[api.ResourceCPU] = *(cpuLimit.Copy()) + q.DefaultRequest = make(core.ResourceList) + q.DefaultRequest[core.ResourceCPU] = *(cpuLimit.Copy()) - q.Max = make(api.ResourceList) - q.Max[api.ResourceCPU] = *(cpuLimit.Copy()) + q.Max = make(core.ResourceList) + q.Max[core.ResourceCPU] = *(cpuLimit.Copy()) - q.Min = make(api.ResourceList) - q.Min[api.ResourceCPU] = *(cpuLimit.Copy()) + q.Min = make(core.ResourceList) + q.Min[core.ResourceCPU] = *(cpuLimit.Copy()) - q.MaxLimitRequestRatio = make(api.ResourceList) - q.MaxLimitRequestRatio[api.ResourceCPU] = resource.MustParse("10") + q.MaxLimitRequestRatio = make(core.ResourceList) + q.MaxLimitRequestRatio[core.ResourceCPU] = resource.MustParse("10") }, - func(p *api.PullPolicy, c fuzz.Continue) { - policies := []api.PullPolicy{api.PullAlways, api.PullNever, api.PullIfNotPresent} + func(p *core.PullPolicy, c fuzz.Continue) { + policies := []core.PullPolicy{core.PullAlways, core.PullNever, core.PullIfNotPresent} *p = policies[c.Rand.Intn(len(policies))] }, - func(rp *api.RestartPolicy, c fuzz.Continue) { - policies := []api.RestartPolicy{api.RestartPolicyAlways, api.RestartPolicyNever, api.RestartPolicyOnFailure} + func(rp *core.RestartPolicy, c fuzz.Continue) { + policies := []core.RestartPolicy{core.RestartPolicyAlways, core.RestartPolicyNever, core.RestartPolicyOnFailure} *rp = policies[c.Rand.Intn(len(policies))] }, - // api.DownwardAPIVolumeFile needs to have a specific func since FieldRef has to be + // core.DownwardAPIVolumeFile needs to have a specific func since FieldRef has to be // defaulted to a version otherwise roundtrip will fail - func(m *api.DownwardAPIVolumeFile, c fuzz.Continue) { + func(m *core.DownwardAPIVolumeFile, c fuzz.Continue) { m.Path = c.RandString() versions := []string{"v1"} - m.FieldRef = &api.ObjectFieldSelector{} + m.FieldRef = &core.ObjectFieldSelector{} m.FieldRef.APIVersion = versions[c.Rand.Intn(len(versions))] m.FieldRef.FieldPath = c.RandString() c.Fuzz(m.Mode) @@ -171,7 +171,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { *m.Mode &= 0777 } }, - func(s *api.SecretVolumeSource, c fuzz.Continue) { + func(s *core.SecretVolumeSource, c fuzz.Continue) { c.FuzzNoCustom(s) // fuzz self without calling this function again if c.RandBool() { @@ -185,7 +185,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { mode &= 0777 s.DefaultMode = &mode }, - func(cm *api.ConfigMapVolumeSource, c fuzz.Continue) { + func(cm *core.ConfigMapVolumeSource, c fuzz.Continue) { c.FuzzNoCustom(cm) // fuzz self without calling this function again if c.RandBool() { @@ -199,7 +199,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { mode &= 0777 cm.DefaultMode = &mode }, - func(d *api.DownwardAPIVolumeSource, c fuzz.Continue) { + func(d *core.DownwardAPIVolumeSource, c fuzz.Continue) { c.FuzzNoCustom(d) // fuzz self without calling this function again // DefaultMode should always be set, it has a default @@ -209,7 +209,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { mode &= 0777 d.DefaultMode = &mode }, - func(s *api.ProjectedVolumeSource, c fuzz.Continue) { + func(s *core.ProjectedVolumeSource, c fuzz.Continue) { c.FuzzNoCustom(s) // fuzz self without calling this function again // DefaultMode should always be set, it has a default @@ -219,7 +219,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { mode &= 0777 s.DefaultMode = &mode }, - func(k *api.KeyToPath, c fuzz.Continue) { + func(k *core.KeyToPath, c fuzz.Continue) { c.FuzzNoCustom(k) // fuzz self without calling this function again k.Key = c.RandString() k.Path = c.RandString() @@ -230,7 +230,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { *k.Mode &= 0777 } }, - func(vs *api.VolumeSource, c fuzz.Continue) { + func(vs *core.VolumeSource, c fuzz.Continue) { // Exactly one of the fields must be set. v := reflect.ValueOf(vs).Elem() i := int(c.RandUint64() % uint64(v.NumField())) @@ -239,38 +239,38 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { c.Fuzz(t.Interface()) } }, - func(i *api.ISCSIVolumeSource, c fuzz.Continue) { + func(i *core.ISCSIVolumeSource, c fuzz.Continue) { i.ISCSIInterface = c.RandString() if i.ISCSIInterface == "" { i.ISCSIInterface = "default" } }, - func(d *api.DNSPolicy, c fuzz.Continue) { - policies := []api.DNSPolicy{api.DNSClusterFirst, api.DNSDefault} + func(d *core.DNSPolicy, c fuzz.Continue) { + policies := []core.DNSPolicy{core.DNSClusterFirst, core.DNSDefault} *d = policies[c.Rand.Intn(len(policies))] }, - func(p *api.Protocol, c fuzz.Continue) { - protocols := []api.Protocol{api.ProtocolTCP, api.ProtocolUDP} + func(p *core.Protocol, c fuzz.Continue) { + protocols := []core.Protocol{core.ProtocolTCP, core.ProtocolUDP} *p = protocols[c.Rand.Intn(len(protocols))] }, - func(p *api.ServiceAffinity, c fuzz.Continue) { - types := []api.ServiceAffinity{api.ServiceAffinityClientIP, api.ServiceAffinityNone} + func(p *core.ServiceAffinity, c fuzz.Continue) { + types := []core.ServiceAffinity{core.ServiceAffinityClientIP, core.ServiceAffinityNone} *p = types[c.Rand.Intn(len(types))] }, - func(p *api.ServiceType, c fuzz.Continue) { - types := []api.ServiceType{api.ServiceTypeClusterIP, api.ServiceTypeNodePort, api.ServiceTypeLoadBalancer} + func(p *core.ServiceType, c fuzz.Continue) { + types := []core.ServiceType{core.ServiceTypeClusterIP, core.ServiceTypeNodePort, core.ServiceTypeLoadBalancer} *p = types[c.Rand.Intn(len(types))] }, - func(p *api.ServiceExternalTrafficPolicyType, c fuzz.Continue) { - types := []api.ServiceExternalTrafficPolicyType{api.ServiceExternalTrafficPolicyTypeCluster, api.ServiceExternalTrafficPolicyTypeLocal} + func(p *core.ServiceExternalTrafficPolicyType, c fuzz.Continue) { + types := []core.ServiceExternalTrafficPolicyType{core.ServiceExternalTrafficPolicyTypeCluster, core.ServiceExternalTrafficPolicyTypeLocal} *p = types[c.Rand.Intn(len(types))] }, - func(ct *api.Container, c fuzz.Continue) { + func(ct *core.Container, c fuzz.Continue) { c.FuzzNoCustom(ct) // fuzz self without calling this function again ct.TerminationMessagePath = "/" + ct.TerminationMessagePath // Must be non-empty ct.TerminationMessagePolicy = "File" }, - func(p *api.Probe, c fuzz.Continue) { + func(p *core.Probe, c fuzz.Continue) { c.FuzzNoCustom(p) // These fields have default values. intFieldsWithDefaults := [...]string{"TimeoutSeconds", "PeriodSeconds", "SuccessThreshold", "FailureThreshold"} @@ -282,13 +282,13 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { } } }, - func(ev *api.EnvVar, c fuzz.Continue) { + func(ev *core.EnvVar, c fuzz.Continue) { ev.Name = c.RandString() if c.RandBool() { ev.Value = c.RandString() } else { - ev.ValueFrom = &api.EnvVarSource{} - ev.ValueFrom.FieldRef = &api.ObjectFieldSelector{} + ev.ValueFrom = &core.EnvVarSource{} + ev.ValueFrom.FieldRef = &core.ObjectFieldSelector{} versions := []schema.GroupVersion{ {Group: "admission.k8s.io", Version: "v1alpha1"}, @@ -301,7 +301,7 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { ev.ValueFrom.FieldRef.FieldPath = c.RandString() } }, - func(ev *api.EnvFromSource, c fuzz.Continue) { + func(ev *core.EnvFromSource, c fuzz.Continue) { if c.RandBool() { ev.Prefix = "p_" } @@ -311,17 +311,17 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { c.Fuzz(&ev.SecretRef) } }, - func(cm *api.ConfigMapEnvSource, c fuzz.Continue) { + func(cm *core.ConfigMapEnvSource, c fuzz.Continue) { c.FuzzNoCustom(cm) // fuzz self without calling this function again if c.RandBool() { opt := c.RandBool() cm.Optional = &opt } }, - func(s *api.SecretEnvSource, c fuzz.Continue) { + func(s *core.SecretEnvSource, c fuzz.Continue) { c.FuzzNoCustom(s) // fuzz self without calling this function again }, - func(sc *api.SecurityContext, c fuzz.Continue) { + func(sc *core.SecurityContext, c fuzz.Continue) { c.FuzzNoCustom(sc) // fuzz self without calling this function again if c.RandBool() { priv := c.RandBool() @@ -329,19 +329,19 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { } if c.RandBool() { - sc.Capabilities = &api.Capabilities{ - Add: make([]api.Capability, 0), - Drop: make([]api.Capability, 0), + sc.Capabilities = &core.Capabilities{ + Add: make([]core.Capability, 0), + Drop: make([]core.Capability, 0), } c.Fuzz(&sc.Capabilities.Add) c.Fuzz(&sc.Capabilities.Drop) } }, - func(s *api.Secret, c fuzz.Continue) { + func(s *core.Secret, c fuzz.Continue) { c.FuzzNoCustom(s) // fuzz self without calling this function again - s.Type = api.SecretTypeOpaque + s.Type = core.SecretTypeOpaque }, - func(r *api.RBDVolumeSource, c fuzz.Continue) { + func(r *core.RBDVolumeSource, c fuzz.Continue) { r.RBDPool = c.RandString() if r.RBDPool == "" { r.RBDPool = "rbd" @@ -355,36 +355,50 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { r.Keyring = "/etc/ceph/keyring" } }, - func(obj *api.HostPathVolumeSource, c fuzz.Continue) { + func(r *core.RBDPersistentVolumeSource, c fuzz.Continue) { + r.RBDPool = c.RandString() + if r.RBDPool == "" { + r.RBDPool = "rbd" + } + r.RadosUser = c.RandString() + if r.RadosUser == "" { + r.RadosUser = "admin" + } + r.Keyring = c.RandString() + if r.Keyring == "" { + r.Keyring = "/etc/ceph/keyring" + } + }, + func(obj *core.HostPathVolumeSource, c fuzz.Continue) { c.FuzzNoCustom(obj) - types := []api.HostPathType{api.HostPathUnset, api.HostPathDirectoryOrCreate, api.HostPathDirectory, - api.HostPathFileOrCreate, api.HostPathFile, api.HostPathSocket, api.HostPathCharDev, api.HostPathBlockDev} + types := []core.HostPathType{core.HostPathUnset, core.HostPathDirectoryOrCreate, core.HostPathDirectory, + core.HostPathFileOrCreate, core.HostPathFile, core.HostPathSocket, core.HostPathCharDev, core.HostPathBlockDev} typeVol := types[c.Rand.Intn(len(types))] if obj.Type == nil { obj.Type = &typeVol } }, - func(pv *api.PersistentVolume, c fuzz.Continue) { + func(pv *core.PersistentVolume, c fuzz.Continue) { c.FuzzNoCustom(pv) // fuzz self without calling this function again - types := []api.PersistentVolumePhase{api.VolumeAvailable, api.VolumePending, api.VolumeBound, api.VolumeReleased, api.VolumeFailed} + types := []core.PersistentVolumePhase{core.VolumeAvailable, core.VolumePending, core.VolumeBound, core.VolumeReleased, core.VolumeFailed} pv.Status.Phase = types[c.Rand.Intn(len(types))] pv.Status.Message = c.RandString() - reclamationPolicies := []api.PersistentVolumeReclaimPolicy{api.PersistentVolumeReclaimRecycle, api.PersistentVolumeReclaimRetain} + reclamationPolicies := []core.PersistentVolumeReclaimPolicy{core.PersistentVolumeReclaimRecycle, core.PersistentVolumeReclaimRetain} pv.Spec.PersistentVolumeReclaimPolicy = reclamationPolicies[c.Rand.Intn(len(reclamationPolicies))] }, - func(pvc *api.PersistentVolumeClaim, c fuzz.Continue) { + func(pvc *core.PersistentVolumeClaim, c fuzz.Continue) { c.FuzzNoCustom(pvc) // fuzz self without calling this function again - types := []api.PersistentVolumeClaimPhase{api.ClaimBound, api.ClaimPending, api.ClaimLost} + types := []core.PersistentVolumeClaimPhase{core.ClaimBound, core.ClaimPending, core.ClaimLost} pvc.Status.Phase = types[c.Rand.Intn(len(types))] }, - func(obj *api.AzureDiskVolumeSource, c fuzz.Continue) { + func(obj *core.AzureDiskVolumeSource, c fuzz.Continue) { if obj.CachingMode == nil { - obj.CachingMode = new(api.AzureDataDiskCachingMode) - *obj.CachingMode = api.AzureDataDiskCachingReadWrite + obj.CachingMode = new(core.AzureDataDiskCachingMode) + *obj.CachingMode = core.AzureDataDiskCachingReadWrite } if obj.Kind == nil { - obj.Kind = new(api.AzureDataDiskKind) - *obj.Kind = api.AzureSharedBlobDisk + obj.Kind = new(core.AzureDataDiskKind) + *obj.Kind = core.AzureSharedBlobDisk } if obj.FSType == nil { obj.FSType = new(string) @@ -395,15 +409,17 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { *obj.ReadOnly = false } }, - func(sio *api.ScaleIOVolumeSource, c fuzz.Continue) { - sio.ProtectionDomain = c.RandString() - if sio.ProtectionDomain == "" { - sio.ProtectionDomain = "default" + func(sio *core.ScaleIOVolumeSource, c fuzz.Continue) { + sio.StorageMode = c.RandString() + if sio.StorageMode == "" { + sio.StorageMode = "ThinProvisioned" } - sio.StoragePool = c.RandString() - if sio.StoragePool == "" { - sio.StoragePool = "default" + sio.FSType = c.RandString() + if sio.FSType == "" { + sio.FSType = "xfs" } + }, + func(sio *core.ScaleIOPersistentVolumeSource, c fuzz.Continue) { sio.StorageMode = c.RandString() if sio.StorageMode == "" { sio.StorageMode = "ThinProvisioned" @@ -413,22 +429,22 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { sio.FSType = "xfs" } }, - func(s *api.NamespaceSpec, c fuzz.Continue) { - s.Finalizers = []api.FinalizerName{api.FinalizerKubernetes} + func(s *core.NamespaceSpec, c fuzz.Continue) { + s.Finalizers = []core.FinalizerName{core.FinalizerKubernetes} }, - func(s *api.NamespaceStatus, c fuzz.Continue) { - s.Phase = api.NamespaceActive + func(s *core.NamespaceStatus, c fuzz.Continue) { + s.Phase = core.NamespaceActive }, - func(http *api.HTTPGetAction, c fuzz.Continue) { + func(http *core.HTTPGetAction, c fuzz.Continue) { c.FuzzNoCustom(http) // fuzz self without calling this function again http.Path = "/" + http.Path // can't be blank http.Scheme = "x" + http.Scheme // can't be blank }, - func(ss *api.ServiceSpec, c fuzz.Continue) { + func(ss *core.ServiceSpec, c fuzz.Continue) { c.FuzzNoCustom(ss) // fuzz self without calling this function again if len(ss.Ports) == 0 { // There must be at least 1 port. - ss.Ports = append(ss.Ports, api.ServicePort{}) + ss.Ports = append(ss.Ports, core.ServicePort{}) c.Fuzz(&ss.Ports[0]) } for i := range ss.Ports { @@ -439,25 +455,25 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { ss.Ports[i].TargetPort.StrVal = "x" + ss.Ports[i].TargetPort.StrVal // non-empty } } - types := []api.ServiceAffinity{api.ServiceAffinityNone, api.ServiceAffinityClientIP} + types := []core.ServiceAffinity{core.ServiceAffinityNone, core.ServiceAffinityClientIP} ss.SessionAffinity = types[c.Rand.Intn(len(types))] switch ss.SessionAffinity { - case api.ServiceAffinityClientIP: - timeoutSeconds := int32(c.Rand.Intn(int(api.MaxClientIPServiceAffinitySeconds))) - ss.SessionAffinityConfig = &api.SessionAffinityConfig{ - ClientIP: &api.ClientIPConfig{ + case core.ServiceAffinityClientIP: + timeoutSeconds := int32(c.Rand.Intn(int(core.MaxClientIPServiceAffinitySeconds))) + ss.SessionAffinityConfig = &core.SessionAffinityConfig{ + ClientIP: &core.ClientIPConfig{ TimeoutSeconds: &timeoutSeconds, }, } - case api.ServiceAffinityNone: + case core.ServiceAffinityNone: ss.SessionAffinityConfig = nil } }, - func(n *api.Node, c fuzz.Continue) { + func(n *core.Node, c fuzz.Continue) { c.FuzzNoCustom(n) n.Spec.ExternalID = "external" }, - func(s *api.NodeStatus, c fuzz.Continue) { + func(s *core.NodeStatus, c fuzz.Continue) { c.FuzzNoCustom(s) s.Allocatable = s.Capacity }, diff --git a/vendor/k8s.io/kubernetes/pkg/api/helper/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/BUILD similarity index 83% rename from vendor/k8s.io/kubernetes/pkg/api/helper/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/helper/BUILD index f8bd4dbb8..81b0a2fbf 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/helper/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/BUILD @@ -9,10 +9,10 @@ load( go_test( name = "go_default_test", srcs = ["helpers_test.go"], - importpath = "k8s.io/kubernetes/pkg/api/helper", + importpath = "k8s.io/kubernetes/pkg/apis/core/helper", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", ], @@ -21,9 +21,9 @@ go_test( go_library( name = "go_default_library", srcs = ["helpers.go"], - importpath = "k8s.io/kubernetes/pkg/api/helper", + importpath = "k8s.io/kubernetes/pkg/apis/core/helper", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", @@ -45,7 +45,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//pkg/api/helper/qos:all-srcs", + "//pkg/apis/core/helper/qos:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/helper/helpers.go b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers.go similarity index 59% rename from vendor/k8s.io/kubernetes/pkg/api/helper/helpers.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers.go index f352f580f..86800d038 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/helper/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers.go @@ -28,30 +28,30 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/selection" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/core" ) // IsHugePageResourceName returns true if the resource name has the huge page // resource prefix. -func IsHugePageResourceName(name api.ResourceName) bool { - return strings.HasPrefix(string(name), api.ResourceHugePagesPrefix) +func IsHugePageResourceName(name core.ResourceName) bool { + return strings.HasPrefix(string(name), core.ResourceHugePagesPrefix) } // HugePageResourceName returns a ResourceName with the canonical hugepage // prefix prepended for the specified page size. The page size is converted // to its canonical representation. -func HugePageResourceName(pageSize resource.Quantity) api.ResourceName { - return api.ResourceName(fmt.Sprintf("%s%s", api.ResourceHugePagesPrefix, pageSize.String())) +func HugePageResourceName(pageSize resource.Quantity) core.ResourceName { + return core.ResourceName(fmt.Sprintf("%s%s", core.ResourceHugePagesPrefix, pageSize.String())) } // HugePageSizeFromResourceName returns the page size for the specified huge page // resource name. If the specified input is not a valid huge page resource name // an error is returned. -func HugePageSizeFromResourceName(name api.ResourceName) (resource.Quantity, error) { +func HugePageSizeFromResourceName(name core.ResourceName) (resource.Quantity, error) { if !IsHugePageResourceName(name) { return resource.Quantity{}, fmt.Errorf("resource name: %s is not valid hugepage name", name) } - pageSize := strings.TrimPrefix(string(name), api.ResourceHugePagesPrefix) + pageSize := strings.TrimPrefix(string(name), core.ResourceHugePagesPrefix) return resource.ParseQuantity(pageSize) } @@ -60,14 +60,14 @@ func HugePageSizeFromResourceName(name api.ResourceName) (resource.Quantity, err func NonConvertibleFields(annotations map[string]string) map[string]string { nonConvertibleKeys := map[string]string{} for key, value := range annotations { - if strings.HasPrefix(key, api.NonConvertibleAnnotationPrefix) { + if strings.HasPrefix(key, core.NonConvertibleAnnotationPrefix) { nonConvertibleKeys[key] = value } } return nonConvertibleKeys } -// Semantic can do semantic deep equality checks for api objects. +// Semantic can do semantic deep equality checks for core objects. // Example: apiequality.Semantic.DeepEqual(aPod, aPodWithNonNilButEmptyMaps) == true var Semantic = conversion.EqualitiesOrDie( func(a, b resource.Quantity) bool { @@ -92,10 +92,10 @@ var Semantic = conversion.EqualitiesOrDie( ) var standardResourceQuotaScopes = sets.NewString( - string(api.ResourceQuotaScopeTerminating), - string(api.ResourceQuotaScopeNotTerminating), - string(api.ResourceQuotaScopeBestEffort), - string(api.ResourceQuotaScopeNotBestEffort), + string(core.ResourceQuotaScopeTerminating), + string(core.ResourceQuotaScopeNotTerminating), + string(core.ResourceQuotaScopeBestEffort), + string(core.ResourceQuotaScopeNotBestEffort), ) // IsStandardResourceQuotaScope returns true if the scope is a standard value @@ -104,24 +104,24 @@ func IsStandardResourceQuotaScope(str string) bool { } var podObjectCountQuotaResources = sets.NewString( - string(api.ResourcePods), + string(core.ResourcePods), ) var podComputeQuotaResources = sets.NewString( - string(api.ResourceCPU), - string(api.ResourceMemory), - string(api.ResourceLimitsCPU), - string(api.ResourceLimitsMemory), - string(api.ResourceRequestsCPU), - string(api.ResourceRequestsMemory), + string(core.ResourceCPU), + string(core.ResourceMemory), + string(core.ResourceLimitsCPU), + string(core.ResourceLimitsMemory), + string(core.ResourceRequestsCPU), + string(core.ResourceRequestsMemory), ) // IsResourceQuotaScopeValidForResource returns true if the resource applies to the specified scope -func IsResourceQuotaScopeValidForResource(scope api.ResourceQuotaScope, resource string) bool { +func IsResourceQuotaScopeValidForResource(scope core.ResourceQuotaScope, resource string) bool { switch scope { - case api.ResourceQuotaScopeTerminating, api.ResourceQuotaScopeNotTerminating, api.ResourceQuotaScopeNotBestEffort: + case core.ResourceQuotaScopeTerminating, core.ResourceQuotaScopeNotTerminating, core.ResourceQuotaScopeNotBestEffort: return podObjectCountQuotaResources.Has(resource) || podComputeQuotaResources.Has(resource) - case api.ResourceQuotaScopeBestEffort: + case core.ResourceQuotaScopeBestEffort: return podObjectCountQuotaResources.Has(resource) default: return true @@ -129,20 +129,20 @@ func IsResourceQuotaScopeValidForResource(scope api.ResourceQuotaScope, resource } var standardContainerResources = sets.NewString( - string(api.ResourceCPU), - string(api.ResourceMemory), - string(api.ResourceEphemeralStorage), + string(core.ResourceCPU), + string(core.ResourceMemory), + string(core.ResourceEphemeralStorage), ) // IsStandardContainerResourceName returns true if the container can make a resource request // for the specified resource func IsStandardContainerResourceName(str string) bool { - return standardContainerResources.Has(str) || IsHugePageResourceName(api.ResourceName(str)) + return standardContainerResources.Has(str) || IsHugePageResourceName(core.ResourceName(str)) } // IsExtendedResourceName returns true if the resource name is not in the // default namespace, or it has the opaque integer resource prefix. -func IsExtendedResourceName(name api.ResourceName) bool { +func IsExtendedResourceName(name core.ResourceName) bool { // TODO: Remove OIR part following deprecation. return !IsDefaultNamespaceResource(name) || IsOpaqueIntResourceName(name) } @@ -150,41 +150,41 @@ func IsExtendedResourceName(name api.ResourceName) bool { // IsDefaultNamespaceResource returns true if the resource name is in the // *kubernetes.io/ namespace. Partially-qualified (unprefixed) names are // implicitly in the kubernetes.io/ namespace. -func IsDefaultNamespaceResource(name api.ResourceName) bool { +func IsDefaultNamespaceResource(name core.ResourceName) bool { return !strings.Contains(string(name), "/") || - strings.Contains(string(name), api.ResourceDefaultNamespacePrefix) + strings.Contains(string(name), core.ResourceDefaultNamespacePrefix) } // IsOpaqueIntResourceName returns true if the resource name has the opaque // integer resource prefix. -func IsOpaqueIntResourceName(name api.ResourceName) bool { - return strings.HasPrefix(string(name), api.ResourceOpaqueIntPrefix) +func IsOpaqueIntResourceName(name core.ResourceName) bool { + return strings.HasPrefix(string(name), core.ResourceOpaqueIntPrefix) } // OpaqueIntResourceName returns a ResourceName with the canonical opaque // integer prefix prepended. If the argument already has the prefix, it is // returned unmodified. -func OpaqueIntResourceName(name string) api.ResourceName { - if IsOpaqueIntResourceName(api.ResourceName(name)) { - return api.ResourceName(name) +func OpaqueIntResourceName(name string) core.ResourceName { + if IsOpaqueIntResourceName(core.ResourceName(name)) { + return core.ResourceName(name) } - return api.ResourceName(fmt.Sprintf("%s%s", api.ResourceOpaqueIntPrefix, name)) + return core.ResourceName(fmt.Sprintf("%s%s", core.ResourceOpaqueIntPrefix, name)) } -var overcommitBlacklist = sets.NewString(string(api.ResourceNvidiaGPU)) +var overcommitBlacklist = sets.NewString(string(core.ResourceNvidiaGPU)) // IsOvercommitAllowed returns true if the resource is in the default // namespace and not blacklisted. -func IsOvercommitAllowed(name api.ResourceName) bool { +func IsOvercommitAllowed(name core.ResourceName) bool { return IsDefaultNamespaceResource(name) && !IsHugePageResourceName(name) && !overcommitBlacklist.Has(string(name)) } var standardLimitRangeTypes = sets.NewString( - string(api.LimitTypePod), - string(api.LimitTypeContainer), - string(api.LimitTypePersistentVolumeClaim), + string(core.LimitTypePod), + string(core.LimitTypeContainer), + string(core.LimitTypePersistentVolumeClaim), ) // IsStandardLimitRangeType returns true if the type is Pod or Container @@ -193,25 +193,25 @@ func IsStandardLimitRangeType(str string) bool { } var standardQuotaResources = sets.NewString( - string(api.ResourceCPU), - string(api.ResourceMemory), - string(api.ResourceEphemeralStorage), - string(api.ResourceRequestsCPU), - string(api.ResourceRequestsMemory), - string(api.ResourceRequestsStorage), - string(api.ResourceRequestsEphemeralStorage), - string(api.ResourceLimitsCPU), - string(api.ResourceLimitsMemory), - string(api.ResourceLimitsEphemeralStorage), - string(api.ResourcePods), - string(api.ResourceQuotas), - string(api.ResourceServices), - string(api.ResourceReplicationControllers), - string(api.ResourceSecrets), - string(api.ResourcePersistentVolumeClaims), - string(api.ResourceConfigMaps), - string(api.ResourceServicesNodePorts), - string(api.ResourceServicesLoadBalancers), + string(core.ResourceCPU), + string(core.ResourceMemory), + string(core.ResourceEphemeralStorage), + string(core.ResourceRequestsCPU), + string(core.ResourceRequestsMemory), + string(core.ResourceRequestsStorage), + string(core.ResourceRequestsEphemeralStorage), + string(core.ResourceLimitsCPU), + string(core.ResourceLimitsMemory), + string(core.ResourceLimitsEphemeralStorage), + string(core.ResourcePods), + string(core.ResourceQuotas), + string(core.ResourceServices), + string(core.ResourceReplicationControllers), + string(core.ResourceSecrets), + string(core.ResourcePersistentVolumeClaims), + string(core.ResourceConfigMaps), + string(core.ResourceServicesNodePorts), + string(core.ResourceServicesLoadBalancers), ) // IsStandardQuotaResourceName returns true if the resource is known to @@ -221,84 +221,84 @@ func IsStandardQuotaResourceName(str string) bool { } var standardResources = sets.NewString( - string(api.ResourceCPU), - string(api.ResourceMemory), - string(api.ResourceEphemeralStorage), - string(api.ResourceRequestsCPU), - string(api.ResourceRequestsMemory), - string(api.ResourceRequestsEphemeralStorage), - string(api.ResourceLimitsCPU), - string(api.ResourceLimitsMemory), - string(api.ResourceLimitsEphemeralStorage), - string(api.ResourcePods), - string(api.ResourceQuotas), - string(api.ResourceServices), - string(api.ResourceReplicationControllers), - string(api.ResourceSecrets), - string(api.ResourceConfigMaps), - string(api.ResourcePersistentVolumeClaims), - string(api.ResourceStorage), - string(api.ResourceRequestsStorage), - string(api.ResourceServicesNodePorts), - string(api.ResourceServicesLoadBalancers), + string(core.ResourceCPU), + string(core.ResourceMemory), + string(core.ResourceEphemeralStorage), + string(core.ResourceRequestsCPU), + string(core.ResourceRequestsMemory), + string(core.ResourceRequestsEphemeralStorage), + string(core.ResourceLimitsCPU), + string(core.ResourceLimitsMemory), + string(core.ResourceLimitsEphemeralStorage), + string(core.ResourcePods), + string(core.ResourceQuotas), + string(core.ResourceServices), + string(core.ResourceReplicationControllers), + string(core.ResourceSecrets), + string(core.ResourceConfigMaps), + string(core.ResourcePersistentVolumeClaims), + string(core.ResourceStorage), + string(core.ResourceRequestsStorage), + string(core.ResourceServicesNodePorts), + string(core.ResourceServicesLoadBalancers), ) // IsStandardResourceName returns true if the resource is known to the system func IsStandardResourceName(str string) bool { - return standardResources.Has(str) || IsHugePageResourceName(api.ResourceName(str)) + return standardResources.Has(str) || IsHugePageResourceName(core.ResourceName(str)) } var integerResources = sets.NewString( - string(api.ResourcePods), - string(api.ResourceQuotas), - string(api.ResourceServices), - string(api.ResourceReplicationControllers), - string(api.ResourceSecrets), - string(api.ResourceConfigMaps), - string(api.ResourcePersistentVolumeClaims), - string(api.ResourceServicesNodePorts), - string(api.ResourceServicesLoadBalancers), + string(core.ResourcePods), + string(core.ResourceQuotas), + string(core.ResourceServices), + string(core.ResourceReplicationControllers), + string(core.ResourceSecrets), + string(core.ResourceConfigMaps), + string(core.ResourcePersistentVolumeClaims), + string(core.ResourceServicesNodePorts), + string(core.ResourceServicesLoadBalancers), ) // IsIntegerResourceName returns true if the resource is measured in integer values func IsIntegerResourceName(str string) bool { - return integerResources.Has(str) || IsExtendedResourceName(api.ResourceName(str)) + return integerResources.Has(str) || IsExtendedResourceName(core.ResourceName(str)) } // Extended and HugePages resources -func IsScalarResourceName(name api.ResourceName) bool { +func IsScalarResourceName(name core.ResourceName) bool { return IsExtendedResourceName(name) || IsHugePageResourceName(name) } // this function aims to check if the service's ClusterIP is set or not // the objective is not to perform validation here -func IsServiceIPSet(service *api.Service) bool { - return service.Spec.ClusterIP != api.ClusterIPNone && service.Spec.ClusterIP != "" +func IsServiceIPSet(service *core.Service) bool { + return service.Spec.ClusterIP != core.ClusterIPNone && service.Spec.ClusterIP != "" } // this function aims to check if the service's cluster IP is requested or not -func IsServiceIPRequested(service *api.Service) bool { +func IsServiceIPRequested(service *core.Service) bool { // ExternalName services are CNAME aliases to external ones. Ignore the IP. - if service.Spec.Type == api.ServiceTypeExternalName { + if service.Spec.Type == core.ServiceTypeExternalName { return false } return service.Spec.ClusterIP == "" } var standardFinalizers = sets.NewString( - string(api.FinalizerKubernetes), + string(core.FinalizerKubernetes), metav1.FinalizerOrphanDependents, metav1.FinalizerDeleteDependents, ) // HasAnnotation returns a bool if passed in annotation exists -func HasAnnotation(obj api.ObjectMeta, ann string) bool { +func HasAnnotation(obj core.ObjectMeta, ann string) bool { _, found := obj.Annotations[ann] return found } // SetMetaDataAnnotation sets the annotation and value -func SetMetaDataAnnotation(obj *api.ObjectMeta, ann string, value string) { +func SetMetaDataAnnotation(obj *core.ObjectMeta, ann string, value string) { if obj.Annotations == nil { obj.Annotations = make(map[string]string) } @@ -311,7 +311,7 @@ func IsStandardFinalizerName(str string) bool { // AddToNodeAddresses appends the NodeAddresses to the passed-by-pointer slice, // only if they do not already exist -func AddToNodeAddresses(addresses *[]api.NodeAddress, addAddresses ...api.NodeAddress) { +func AddToNodeAddresses(addresses *[]core.NodeAddress, addAddresses ...core.NodeAddress) { for _, add := range addAddresses { exists := false for _, existing := range *addresses { @@ -327,11 +327,11 @@ func AddToNodeAddresses(addresses *[]api.NodeAddress, addAddresses ...api.NodeAd } // TODO: make method on LoadBalancerStatus? -func LoadBalancerStatusEqual(l, r *api.LoadBalancerStatus) bool { +func LoadBalancerStatusEqual(l, r *core.LoadBalancerStatus) bool { return ingressSliceEqual(l.Ingress, r.Ingress) } -func ingressSliceEqual(lhs, rhs []api.LoadBalancerIngress) bool { +func ingressSliceEqual(lhs, rhs []core.LoadBalancerIngress) bool { if len(lhs) != len(rhs) { return false } @@ -343,7 +343,7 @@ func ingressSliceEqual(lhs, rhs []api.LoadBalancerIngress) bool { return true } -func ingressEqual(lhs, rhs *api.LoadBalancerIngress) bool { +func ingressEqual(lhs, rhs *core.LoadBalancerIngress) bool { if lhs.IP != rhs.IP { return false } @@ -354,9 +354,9 @@ func ingressEqual(lhs, rhs *api.LoadBalancerIngress) bool { } // TODO: make method on LoadBalancerStatus? -func LoadBalancerStatusDeepCopy(lb *api.LoadBalancerStatus) *api.LoadBalancerStatus { - c := &api.LoadBalancerStatus{} - c.Ingress = make([]api.LoadBalancerIngress, len(lb.Ingress)) +func LoadBalancerStatusDeepCopy(lb *core.LoadBalancerStatus) *core.LoadBalancerStatus { + c := &core.LoadBalancerStatus{} + c.Ingress = make([]core.LoadBalancerIngress, len(lb.Ingress)) for i := range lb.Ingress { c.Ingress[i] = lb.Ingress[i] } @@ -365,42 +365,42 @@ func LoadBalancerStatusDeepCopy(lb *api.LoadBalancerStatus) *api.LoadBalancerSta // GetAccessModesAsString returns a string representation of an array of access modes. // modes, when present, are always in the same order: RWO,ROX,RWX. -func GetAccessModesAsString(modes []api.PersistentVolumeAccessMode) string { +func GetAccessModesAsString(modes []core.PersistentVolumeAccessMode) string { modes = removeDuplicateAccessModes(modes) modesStr := []string{} - if containsAccessMode(modes, api.ReadWriteOnce) { + if containsAccessMode(modes, core.ReadWriteOnce) { modesStr = append(modesStr, "RWO") } - if containsAccessMode(modes, api.ReadOnlyMany) { + if containsAccessMode(modes, core.ReadOnlyMany) { modesStr = append(modesStr, "ROX") } - if containsAccessMode(modes, api.ReadWriteMany) { + if containsAccessMode(modes, core.ReadWriteMany) { modesStr = append(modesStr, "RWX") } return strings.Join(modesStr, ",") } // GetAccessModesAsString returns an array of AccessModes from a string created by GetAccessModesAsString -func GetAccessModesFromString(modes string) []api.PersistentVolumeAccessMode { +func GetAccessModesFromString(modes string) []core.PersistentVolumeAccessMode { strmodes := strings.Split(modes, ",") - accessModes := []api.PersistentVolumeAccessMode{} + accessModes := []core.PersistentVolumeAccessMode{} for _, s := range strmodes { s = strings.Trim(s, " ") switch { case s == "RWO": - accessModes = append(accessModes, api.ReadWriteOnce) + accessModes = append(accessModes, core.ReadWriteOnce) case s == "ROX": - accessModes = append(accessModes, api.ReadOnlyMany) + accessModes = append(accessModes, core.ReadOnlyMany) case s == "RWX": - accessModes = append(accessModes, api.ReadWriteMany) + accessModes = append(accessModes, core.ReadWriteMany) } } return accessModes } // removeDuplicateAccessModes returns an array of access modes without any duplicates -func removeDuplicateAccessModes(modes []api.PersistentVolumeAccessMode) []api.PersistentVolumeAccessMode { - accessModes := []api.PersistentVolumeAccessMode{} +func removeDuplicateAccessModes(modes []core.PersistentVolumeAccessMode) []core.PersistentVolumeAccessMode { + accessModes := []core.PersistentVolumeAccessMode{} for _, m := range modes { if !containsAccessMode(accessModes, m) { accessModes = append(accessModes, m) @@ -409,7 +409,7 @@ func removeDuplicateAccessModes(modes []api.PersistentVolumeAccessMode) []api.Pe return accessModes } -func containsAccessMode(modes []api.PersistentVolumeAccessMode, mode api.PersistentVolumeAccessMode) bool { +func containsAccessMode(modes []core.PersistentVolumeAccessMode, mode core.PersistentVolumeAccessMode) bool { for _, m := range modes { if m == mode { return true @@ -418,9 +418,9 @@ func containsAccessMode(modes []api.PersistentVolumeAccessMode, mode api.Persist return false } -// NodeSelectorRequirementsAsSelector converts the []NodeSelectorRequirement api type into a struct that implements +// NodeSelectorRequirementsAsSelector converts the []NodeSelectorRequirement core type into a struct that implements // labels.Selector. -func NodeSelectorRequirementsAsSelector(nsm []api.NodeSelectorRequirement) (labels.Selector, error) { +func NodeSelectorRequirementsAsSelector(nsm []core.NodeSelectorRequirement) (labels.Selector, error) { if len(nsm) == 0 { return labels.Nothing(), nil } @@ -428,17 +428,17 @@ func NodeSelectorRequirementsAsSelector(nsm []api.NodeSelectorRequirement) (labe for _, expr := range nsm { var op selection.Operator switch expr.Operator { - case api.NodeSelectorOpIn: + case core.NodeSelectorOpIn: op = selection.In - case api.NodeSelectorOpNotIn: + case core.NodeSelectorOpNotIn: op = selection.NotIn - case api.NodeSelectorOpExists: + case core.NodeSelectorOpExists: op = selection.Exists - case api.NodeSelectorOpDoesNotExist: + case core.NodeSelectorOpDoesNotExist: op = selection.DoesNotExist - case api.NodeSelectorOpGt: + case core.NodeSelectorOpGt: op = selection.GreaterThan - case api.NodeSelectorOpLt: + case core.NodeSelectorOpLt: op = selection.LessThan default: return nil, fmt.Errorf("%q is not a valid node selector operator", expr.Operator) @@ -453,11 +453,11 @@ func NodeSelectorRequirementsAsSelector(nsm []api.NodeSelectorRequirement) (labe } // GetTolerationsFromPodAnnotations gets the json serialized tolerations data from Pod.Annotations -// and converts it to the []Toleration type in api. -func GetTolerationsFromPodAnnotations(annotations map[string]string) ([]api.Toleration, error) { - var tolerations []api.Toleration - if len(annotations) > 0 && annotations[api.TolerationsAnnotationKey] != "" { - err := json.Unmarshal([]byte(annotations[api.TolerationsAnnotationKey]), &tolerations) +// and converts it to the []Toleration type in core. +func GetTolerationsFromPodAnnotations(annotations map[string]string) ([]core.Toleration, error) { + var tolerations []core.Toleration + if len(annotations) > 0 && annotations[core.TolerationsAnnotationKey] != "" { + err := json.Unmarshal([]byte(annotations[core.TolerationsAnnotationKey]), &tolerations) if err != nil { return tolerations, err } @@ -467,10 +467,10 @@ func GetTolerationsFromPodAnnotations(annotations map[string]string) ([]api.Tole // AddOrUpdateTolerationInPod tries to add a toleration to the pod's toleration list. // Returns true if something was updated, false otherwise. -func AddOrUpdateTolerationInPod(pod *api.Pod, toleration *api.Toleration) bool { +func AddOrUpdateTolerationInPod(pod *core.Pod, toleration *core.Toleration) bool { podTolerations := pod.Spec.Tolerations - var newTolerations []api.Toleration + var newTolerations []core.Toleration updated := false for i := range podTolerations { if toleration.MatchToleration(&podTolerations[i]) { @@ -494,7 +494,7 @@ func AddOrUpdateTolerationInPod(pod *api.Pod, toleration *api.Toleration) bool { } // TolerationToleratesTaint checks if the toleration tolerates the taint. -func TolerationToleratesTaint(toleration *api.Toleration, taint *api.Taint) bool { +func TolerationToleratesTaint(toleration *core.Toleration, taint *core.Taint) bool { if len(toleration.Effect) != 0 && toleration.Effect != taint.Effect { return false } @@ -503,17 +503,17 @@ func TolerationToleratesTaint(toleration *api.Toleration, taint *api.Taint) bool return false } // TODO: Use proper defaulting when Toleration becomes a field of PodSpec - if (len(toleration.Operator) == 0 || toleration.Operator == api.TolerationOpEqual) && toleration.Value == taint.Value { + if (len(toleration.Operator) == 0 || toleration.Operator == core.TolerationOpEqual) && toleration.Value == taint.Value { return true } - if toleration.Operator == api.TolerationOpExists { + if toleration.Operator == core.TolerationOpExists { return true } return false } // TaintToleratedByTolerations checks if taint is tolerated by any of the tolerations. -func TaintToleratedByTolerations(taint *api.Taint, tolerations []api.Toleration) bool { +func TaintToleratedByTolerations(taint *core.Taint, tolerations []core.Toleration) bool { tolerated := false for i := range tolerations { if TolerationToleratesTaint(&tolerations[i], taint) { @@ -525,13 +525,13 @@ func TaintToleratedByTolerations(taint *api.Taint, tolerations []api.Toleration) } // GetTaintsFromNodeAnnotations gets the json serialized taints data from Pod.Annotations -// and converts it to the []Taint type in api. -func GetTaintsFromNodeAnnotations(annotations map[string]string) ([]api.Taint, error) { - var taints []api.Taint - if len(annotations) > 0 && annotations[api.TaintsAnnotationKey] != "" { - err := json.Unmarshal([]byte(annotations[api.TaintsAnnotationKey]), &taints) +// and converts it to the []Taint type in core. +func GetTaintsFromNodeAnnotations(annotations map[string]string) ([]core.Taint, error) { + var taints []core.Taint + if len(annotations) > 0 && annotations[core.TaintsAnnotationKey] != "" { + err := json.Unmarshal([]byte(annotations[core.TaintsAnnotationKey]), &taints) if err != nil { - return []api.Taint{}, err + return []core.Taint{}, err } } return taints, nil @@ -540,12 +540,12 @@ func GetTaintsFromNodeAnnotations(annotations map[string]string) ([]api.Taint, e // SysctlsFromPodAnnotations parses the sysctl annotations into a slice of safe Sysctls // and a slice of unsafe Sysctls. This is only a convenience wrapper around // SysctlsFromPodAnnotation. -func SysctlsFromPodAnnotations(a map[string]string) ([]api.Sysctl, []api.Sysctl, error) { - safe, err := SysctlsFromPodAnnotation(a[api.SysctlsPodAnnotationKey]) +func SysctlsFromPodAnnotations(a map[string]string) ([]core.Sysctl, []core.Sysctl, error) { + safe, err := SysctlsFromPodAnnotation(a[core.SysctlsPodAnnotationKey]) if err != nil { return nil, nil, err } - unsafe, err := SysctlsFromPodAnnotation(a[api.UnsafeSysctlsPodAnnotationKey]) + unsafe, err := SysctlsFromPodAnnotation(a[core.UnsafeSysctlsPodAnnotationKey]) if err != nil { return nil, nil, err } @@ -554,13 +554,13 @@ func SysctlsFromPodAnnotations(a map[string]string) ([]api.Sysctl, []api.Sysctl, } // SysctlsFromPodAnnotation parses an annotation value into a slice of Sysctls. -func SysctlsFromPodAnnotation(annotation string) ([]api.Sysctl, error) { +func SysctlsFromPodAnnotation(annotation string) ([]core.Sysctl, error) { if len(annotation) == 0 { return nil, nil } kvs := strings.Split(annotation, ",") - sysctls := make([]api.Sysctl, len(kvs)) + sysctls := make([]core.Sysctl, len(kvs)) for i, kv := range kvs { cs := strings.Split(kv, "=") if len(cs) != 2 || len(cs[0]) == 0 { @@ -573,7 +573,7 @@ func SysctlsFromPodAnnotation(annotation string) ([]api.Sysctl, error) { } // PodAnnotationsFromSysctls creates an annotation value for a slice of Sysctls. -func PodAnnotationsFromSysctls(sysctls []api.Sysctl) string { +func PodAnnotationsFromSysctls(sysctls []core.Sysctl) string { if len(sysctls) == 0 { return "" } @@ -586,9 +586,9 @@ func PodAnnotationsFromSysctls(sysctls []api.Sysctl) string { } // GetPersistentVolumeClass returns StorageClassName. -func GetPersistentVolumeClass(volume *api.PersistentVolume) string { +func GetPersistentVolumeClass(volume *core.PersistentVolume) string { // Use beta annotation first - if class, found := volume.Annotations[api.BetaStorageClassAnnotation]; found { + if class, found := volume.Annotations[core.BetaStorageClassAnnotation]; found { return class } @@ -597,9 +597,9 @@ func GetPersistentVolumeClass(volume *api.PersistentVolume) string { // GetPersistentVolumeClaimClass returns StorageClassName. If no storage class was // requested, it returns "". -func GetPersistentVolumeClaimClass(claim *api.PersistentVolumeClaim) string { +func GetPersistentVolumeClaimClass(claim *core.PersistentVolumeClaim) string { // Use beta annotation first - if class, found := claim.Annotations[api.BetaStorageClassAnnotation]; found { + if class, found := claim.Annotations[core.BetaStorageClassAnnotation]; found { return class } @@ -611,9 +611,9 @@ func GetPersistentVolumeClaimClass(claim *api.PersistentVolumeClaim) string { } // PersistentVolumeClaimHasClass returns true if given claim has set StorageClassName field. -func PersistentVolumeClaimHasClass(claim *api.PersistentVolumeClaim) bool { +func PersistentVolumeClaimHasClass(claim *core.PersistentVolumeClaim) bool { // Use beta annotation first - if _, found := claim.Annotations[api.BetaStorageClassAnnotation]; found { + if _, found := claim.Annotations[core.BetaStorageClassAnnotation]; found { return true } @@ -625,12 +625,12 @@ func PersistentVolumeClaimHasClass(claim *api.PersistentVolumeClaim) bool { } // GetStorageNodeAffinityFromAnnotation gets the json serialized data from PersistentVolume.Annotations -// and converts it to the NodeAffinity type in api. +// and converts it to the NodeAffinity type in core. // TODO: update when storage node affinity graduates to beta -func GetStorageNodeAffinityFromAnnotation(annotations map[string]string) (*api.NodeAffinity, error) { - if len(annotations) > 0 && annotations[api.AlphaStorageNodeAffinityAnnotation] != "" { - var affinity api.NodeAffinity - err := json.Unmarshal([]byte(annotations[api.AlphaStorageNodeAffinityAnnotation]), &affinity) +func GetStorageNodeAffinityFromAnnotation(annotations map[string]string) (*core.NodeAffinity, error) { + if len(annotations) > 0 && annotations[core.AlphaStorageNodeAffinityAnnotation] != "" { + var affinity core.NodeAffinity + err := json.Unmarshal([]byte(annotations[core.AlphaStorageNodeAffinityAnnotation]), &affinity) if err != nil { return nil, err } @@ -641,7 +641,7 @@ func GetStorageNodeAffinityFromAnnotation(annotations map[string]string) (*api.N // Converts NodeAffinity type to Alpha annotation for use in PersistentVolumes // TODO: update when storage node affinity graduates to beta -func StorageNodeAffinityToAlphaAnnotation(annotations map[string]string, affinity *api.NodeAffinity) error { +func StorageNodeAffinityToAlphaAnnotation(annotations map[string]string, affinity *core.NodeAffinity) error { if affinity == nil { return nil } @@ -650,6 +650,6 @@ func StorageNodeAffinityToAlphaAnnotation(annotations map[string]string, affinit if err != nil { return err } - annotations[api.AlphaStorageNodeAffinityAnnotation] = string(json) + annotations[core.AlphaStorageNodeAffinityAnnotation] = string(json) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/api/helper/helpers_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers_test.go similarity index 72% rename from vendor/k8s.io/kubernetes/pkg/api/helper/helpers_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers_test.go index 7631b8bba..dad7f2d4a 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/helper/helpers_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers_test.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/core" ) func TestSemantic(t *testing.T) { @@ -86,49 +86,49 @@ func TestIsStandardContainerResource(t *testing.T) { func TestAddToNodeAddresses(t *testing.T) { testCases := []struct { - existing []api.NodeAddress - toAdd []api.NodeAddress - expected []api.NodeAddress + existing []core.NodeAddress + toAdd []core.NodeAddress + expected []core.NodeAddress }{ { - existing: []api.NodeAddress{}, - toAdd: []api.NodeAddress{}, - expected: []api.NodeAddress{}, + existing: []core.NodeAddress{}, + toAdd: []core.NodeAddress{}, + expected: []core.NodeAddress{}, }, { - existing: []api.NodeAddress{}, - toAdd: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, - {Type: api.NodeHostName, Address: "localhost"}, + existing: []core.NodeAddress{}, + toAdd: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, + {Type: core.NodeHostName, Address: "localhost"}, }, - expected: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, - {Type: api.NodeHostName, Address: "localhost"}, + expected: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, + {Type: core.NodeHostName, Address: "localhost"}, }, }, { - existing: []api.NodeAddress{}, - toAdd: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, + existing: []core.NodeAddress{}, + toAdd: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, }, - expected: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, + expected: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, }, }, { - existing: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, - {Type: api.NodeInternalIP, Address: "10.1.1.1"}, + existing: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, + {Type: core.NodeInternalIP, Address: "10.1.1.1"}, }, - toAdd: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, - {Type: api.NodeHostName, Address: "localhost"}, + toAdd: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, + {Type: core.NodeHostName, Address: "localhost"}, }, - expected: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, - {Type: api.NodeInternalIP, Address: "10.1.1.1"}, - {Type: api.NodeHostName, Address: "localhost"}, + expected: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, + {Type: core.NodeInternalIP, Address: "10.1.1.1"}, + {Type: core.NodeHostName, Address: "localhost"}, }, }, } @@ -143,30 +143,30 @@ func TestAddToNodeAddresses(t *testing.T) { func TestGetAccessModesFromString(t *testing.T) { modes := GetAccessModesFromString("ROX") - if !containsAccessMode(modes, api.ReadOnlyMany) { - t.Errorf("Expected mode %s, but got %+v", api.ReadOnlyMany, modes) + if !containsAccessMode(modes, core.ReadOnlyMany) { + t.Errorf("Expected mode %s, but got %+v", core.ReadOnlyMany, modes) } modes = GetAccessModesFromString("ROX,RWX") - if !containsAccessMode(modes, api.ReadOnlyMany) { - t.Errorf("Expected mode %s, but got %+v", api.ReadOnlyMany, modes) + if !containsAccessMode(modes, core.ReadOnlyMany) { + t.Errorf("Expected mode %s, but got %+v", core.ReadOnlyMany, modes) } - if !containsAccessMode(modes, api.ReadWriteMany) { - t.Errorf("Expected mode %s, but got %+v", api.ReadWriteMany, modes) + if !containsAccessMode(modes, core.ReadWriteMany) { + t.Errorf("Expected mode %s, but got %+v", core.ReadWriteMany, modes) } modes = GetAccessModesFromString("RWO,ROX,RWX") - if !containsAccessMode(modes, api.ReadOnlyMany) { - t.Errorf("Expected mode %s, but got %+v", api.ReadOnlyMany, modes) + if !containsAccessMode(modes, core.ReadOnlyMany) { + t.Errorf("Expected mode %s, but got %+v", core.ReadOnlyMany, modes) } - if !containsAccessMode(modes, api.ReadWriteMany) { - t.Errorf("Expected mode %s, but got %+v", api.ReadWriteMany, modes) + if !containsAccessMode(modes, core.ReadWriteMany) { + t.Errorf("Expected mode %s, but got %+v", core.ReadWriteMany, modes) } } func TestRemoveDuplicateAccessModes(t *testing.T) { - modes := []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, api.ReadOnlyMany, api.ReadOnlyMany, api.ReadOnlyMany, + modes := []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, core.ReadOnlyMany, core.ReadOnlyMany, core.ReadOnlyMany, } modes = removeDuplicateAccessModes(modes) if len(modes) != 2 { @@ -175,9 +175,9 @@ func TestRemoveDuplicateAccessModes(t *testing.T) { } func TestNodeSelectorRequirementsAsSelector(t *testing.T) { - matchExpressions := []api.NodeSelectorRequirement{{ + matchExpressions := []core.NodeSelectorRequirement{{ Key: "foo", - Operator: api.NodeSelectorOpIn, + Operator: core.NodeSelectorOpIn, Values: []string{"bar", "baz"}, }} mustParse := func(s string) labels.Selector { @@ -188,36 +188,36 @@ func TestNodeSelectorRequirementsAsSelector(t *testing.T) { return out } tc := []struct { - in []api.NodeSelectorRequirement + in []core.NodeSelectorRequirement out labels.Selector expectErr bool }{ {in: nil, out: labels.Nothing()}, - {in: []api.NodeSelectorRequirement{}, out: labels.Nothing()}, + {in: []core.NodeSelectorRequirement{}, out: labels.Nothing()}, { in: matchExpressions, out: mustParse("foo in (baz,bar)"), }, { - in: []api.NodeSelectorRequirement{{ + in: []core.NodeSelectorRequirement{{ Key: "foo", - Operator: api.NodeSelectorOpExists, + Operator: core.NodeSelectorOpExists, Values: []string{"bar", "baz"}, }}, expectErr: true, }, { - in: []api.NodeSelectorRequirement{{ + in: []core.NodeSelectorRequirement{{ Key: "foo", - Operator: api.NodeSelectorOpGt, + Operator: core.NodeSelectorOpGt, Values: []string{"1"}, }}, out: mustParse("foo>1"), }, { - in: []api.NodeSelectorRequirement{{ + in: []core.NodeSelectorRequirement{{ Key: "bar", - Operator: api.NodeSelectorOpLt, + Operator: core.NodeSelectorOpLt, Values: []string{"7"}, }}, out: mustParse("bar<7"), @@ -241,7 +241,7 @@ func TestNodeSelectorRequirementsAsSelector(t *testing.T) { func TestSysctlsFromPodAnnotation(t *testing.T) { type Test struct { annotation string - expectValue []api.Sysctl + expectValue []core.Sysctl expectErr bool } for i, test := range []Test{ @@ -259,11 +259,11 @@ func TestSysctlsFromPodAnnotation(t *testing.T) { }, { annotation: "foo.bar=", - expectValue: []api.Sysctl{{Name: "foo.bar", Value: ""}}, + expectValue: []core.Sysctl{{Name: "foo.bar", Value: ""}}, }, { annotation: "foo.bar=42", - expectValue: []api.Sysctl{{Name: "foo.bar", Value: "42"}}, + expectValue: []core.Sysctl{{Name: "foo.bar", Value: "42"}}, }, { annotation: "foo.bar=42,", @@ -271,7 +271,7 @@ func TestSysctlsFromPodAnnotation(t *testing.T) { }, { annotation: "foo.bar=42,abc.def=1", - expectValue: []api.Sysctl{{Name: "foo.bar", Value: "42"}, {Name: "abc.def", Value: "1"}}, + expectValue: []core.Sysctl{{Name: "foo.bar", Value: "42"}, {Name: "abc.def", Value: "1"}}, }, } { sysctls, err := SysctlsFromPodAnnotation(test.annotation) @@ -301,7 +301,7 @@ func TestGetNodeAffinityFromAnnotations(t *testing.T) { }, { annotations: map[string]string{ - api.AlphaStorageNodeAffinityAnnotation: `{ + core.AlphaStorageNodeAffinityAnnotation: `{ "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ @@ -321,7 +321,7 @@ func TestGetNodeAffinityFromAnnotations(t *testing.T) { }, { annotations: map[string]string{ - api.AlphaStorageNodeAffinityAnnotation: `[{ + core.AlphaStorageNodeAffinityAnnotation: `[{ "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ @@ -341,7 +341,7 @@ func TestGetNodeAffinityFromAnnotations(t *testing.T) { }, { annotations: map[string]string{ - api.AlphaStorageNodeAffinityAnnotation: `{ + core.AlphaStorageNodeAffinityAnnotation: `{ "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": "matchExpressions": [ @@ -374,23 +374,23 @@ func TestGetNodeAffinityFromAnnotations(t *testing.T) { func TestIsHugePageResourceName(t *testing.T) { testCases := []struct { - name api.ResourceName + name core.ResourceName result bool }{ { - name: api.ResourceName("hugepages-2Mi"), + name: core.ResourceName("hugepages-2Mi"), result: true, }, { - name: api.ResourceName("hugepages-1Gi"), + name: core.ResourceName("hugepages-1Gi"), result: true, }, { - name: api.ResourceName("cpu"), + name: core.ResourceName("cpu"), result: false, }, { - name: api.ResourceName("memory"), + name: core.ResourceName("memory"), result: false, }, } @@ -404,20 +404,20 @@ func TestIsHugePageResourceName(t *testing.T) { func TestHugePageResourceName(t *testing.T) { testCases := []struct { pageSize resource.Quantity - name api.ResourceName + name core.ResourceName }{ { pageSize: resource.MustParse("2Mi"), - name: api.ResourceName("hugepages-2Mi"), + name: core.ResourceName("hugepages-2Mi"), }, { pageSize: resource.MustParse("1Gi"), - name: api.ResourceName("hugepages-1Gi"), + name: core.ResourceName("hugepages-1Gi"), }, { // verify we do not regress our canonical representation pageSize: *resource.NewQuantity(int64(2097152), resource.BinarySI), - name: api.ResourceName("hugepages-2Mi"), + name: core.ResourceName("hugepages-2Mi"), }, } for _, testCase := range testCases { @@ -429,22 +429,22 @@ func TestHugePageResourceName(t *testing.T) { func TestHugePageSizeFromResourceName(t *testing.T) { testCases := []struct { - name api.ResourceName + name core.ResourceName expectErr bool pageSize resource.Quantity }{ { - name: api.ResourceName("hugepages-2Mi"), + name: core.ResourceName("hugepages-2Mi"), pageSize: resource.MustParse("2Mi"), expectErr: false, }, { - name: api.ResourceName("hugepages-1Gi"), + name: core.ResourceName("hugepages-1Gi"), pageSize: resource.MustParse("1Gi"), expectErr: false, }, { - name: api.ResourceName("hugepages-bad"), + name: core.ResourceName("hugepages-bad"), expectErr: true, }, } @@ -462,19 +462,19 @@ func TestHugePageSizeFromResourceName(t *testing.T) { func TestIsOvercommitAllowed(t *testing.T) { testCases := []struct { - name api.ResourceName + name core.ResourceName allowed bool }{ { - name: api.ResourceCPU, + name: core.ResourceCPU, allowed: true, }, { - name: api.ResourceMemory, + name: core.ResourceMemory, allowed: true, }, { - name: api.ResourceNvidiaGPU, + name: core.ResourceNvidiaGPU, allowed: false, }, { diff --git a/vendor/k8s.io/kubernetes/pkg/api/helper/qos/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/qos/BUILD similarity index 78% rename from vendor/k8s.io/kubernetes/pkg/api/helper/qos/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/helper/qos/BUILD index b56b19db1..a029fdb5b 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/helper/qos/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/qos/BUILD @@ -8,10 +8,10 @@ load( go_library( name = "go_default_library", srcs = ["qos.go"], - importpath = "k8s.io/kubernetes/pkg/api/helper/qos", + importpath = "k8s.io/kubernetes/pkg/apis/core/helper/qos", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/api/helper/qos/qos.go b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/qos/qos.go similarity index 82% rename from vendor/k8s.io/kubernetes/pkg/api/helper/qos/qos.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/helper/qos/qos.go index cc58bde0c..18414322c 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/helper/qos/qos.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/helper/qos/qos.go @@ -21,12 +21,12 @@ package qos import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" ) -func isSupportedQoSComputeResource(name api.ResourceName) bool { - supportedQoSComputeResources := sets.NewString(string(api.ResourceCPU), string(api.ResourceMemory)) +func isSupportedQoSComputeResource(name core.ResourceName) bool { + supportedQoSComputeResources := sets.NewString(string(core.ResourceCPU), string(core.ResourceMemory)) return supportedQoSComputeResources.Has(string(name)) || helper.IsHugePageResourceName(name) } @@ -34,9 +34,9 @@ func isSupportedQoSComputeResource(name api.ResourceName) bool { // A pod is besteffort if none of its containers have specified any requests or limits. // A pod is guaranteed only when requests and limits are specified for all the containers and they are equal. // A pod is burstable if limits and requests do not match across all containers. -func GetPodQOS(pod *api.Pod) api.PodQOSClass { - requests := api.ResourceList{} - limits := api.ResourceList{} +func GetPodQOS(pod *core.Pod) core.PodQOSClass { + requests := core.ResourceList{} + limits := core.ResourceList{} zeroQuantity := resource.MustParse("0") isGuaranteed := true for _, container := range pod.Spec.Containers { @@ -73,12 +73,12 @@ func GetPodQOS(pod *api.Pod) api.PodQOSClass { } } - if !qosLimitsFound.HasAll(string(api.ResourceMemory), string(api.ResourceCPU)) { + if !qosLimitsFound.HasAll(string(core.ResourceMemory), string(core.ResourceCPU)) { isGuaranteed = false } } if len(requests) == 0 && len(limits) == 0 { - return api.PodQOSBestEffort + return core.PodQOSBestEffort } // Check is requests match limits for all resources. if isGuaranteed { @@ -91,7 +91,7 @@ func GetPodQOS(pod *api.Pod) api.PodQOSClass { } if isGuaranteed && len(requests) == len(limits) { - return api.PodQOSGuaranteed + return core.PodQOSGuaranteed } - return api.PodQOSBurstable + return core.PodQOSBurstable } diff --git a/vendor/k8s.io/kubernetes/pkg/api/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/install/BUILD similarity index 76% rename from vendor/k8s.io/kubernetes/pkg/api/install/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/install/BUILD index 1ac75fd80..9ed882df9 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/install/BUILD @@ -9,10 +9,11 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - importpath = "k8s.io/kubernetes/pkg/api/install", + importpath = "k8s.io/kubernetes/pkg/apis/core/install", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -23,10 +24,11 @@ go_library( go_test( name = "go_default_test", srcs = ["install_test.go"], - importpath = "k8s.io/kubernetes/pkg/api/install", + importpath = "k8s.io/kubernetes/pkg/apis/core/install", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core: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", diff --git a/vendor/k8s.io/kubernetes/pkg/api/install/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/core/install/OWNERS similarity index 100% rename from vendor/k8s.io/kubernetes/pkg/api/install/OWNERS rename to vendor/k8s.io/kubernetes/pkg/apis/core/install/OWNERS diff --git a/vendor/k8s.io/kubernetes/pkg/api/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/core/install/install.go similarity index 85% rename from vendor/k8s.io/kubernetes/pkg/api/install/install.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/install/install.go index cd3879ccb..cae514ec7 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/install/install.go @@ -23,21 +23,22 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/kubernetes/pkg/api/legacyscheme" + "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/v1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { if err := announced.NewGroupMetaFactory( &announced.GroupMetaFactoryArgs{ - GroupName: api.GroupName, + GroupName: core.GroupName, VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: api.AddToScheme, + AddInternalObjectsToScheme: core.AddToScheme, RootScopedKinds: sets.NewString( "Node", "Namespace", @@ -55,9 +56,6 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r "PodProxyOptions", "NodeProxyOptions", "ServiceProxyOptions", - "ThirdPartyResource", - "ThirdPartyResourceData", - "ThirdPartyResourceList", ), }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/api/install/install_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/install/install_test.go similarity index 69% rename from vendor/k8s.io/kubernetes/pkg/api/install/install_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/install/install_test.go index d0a2b0b30..b580c56c4 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/install/install_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/install/install_test.go @@ -25,11 +25,12 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - internal "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + internal "k8s.io/kubernetes/pkg/apis/core" ) func TestResourceVersioner(t *testing.T) { - g, err := internal.Registry.Group(v1.GroupName) + g, err := legacyscheme.Registry.Group(v1.GroupName) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -62,7 +63,7 @@ func TestCodec(t *testing.T) { pod := internal.Pod{} // We do want to use package registered rather than testapi here, because we // want to test if the package install and package registered work as expected. - data, err := runtime.Encode(internal.Codecs.LegacyCodec(internal.Registry.GroupOrDie(internal.GroupName).GroupVersion), &pod) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.GroupOrDie(internal.GroupName).GroupVersion), &pod) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -70,17 +71,17 @@ func TestCodec(t *testing.T) { if err := json.Unmarshal(data, &other); err != nil { t.Fatalf("unexpected error: %v", err) } - if other.APIVersion != internal.Registry.GroupOrDie(internal.GroupName).GroupVersion.Version || other.Kind != "Pod" { + if other.APIVersion != legacyscheme.Registry.GroupOrDie(internal.GroupName).GroupVersion.Version || other.Kind != "Pod" { t.Errorf("unexpected unmarshalled object %#v", other) } } func TestInterfacesFor(t *testing.T) { - if _, err := internal.Registry.GroupOrDie(internal.GroupName).InterfacesFor(internal.SchemeGroupVersion); err == nil { + if _, err := legacyscheme.Registry.GroupOrDie(internal.GroupName).InterfacesFor(internal.SchemeGroupVersion); err == nil { t.Fatalf("unexpected non-error: %v", err) } - for i, version := range internal.Registry.GroupOrDie(internal.GroupName).GroupVersions { - if vi, err := internal.Registry.GroupOrDie(internal.GroupName).InterfacesFor(version); err != nil || vi == nil { + for i, version := range legacyscheme.Registry.GroupOrDie(internal.GroupName).GroupVersions { + if vi, err := legacyscheme.Registry.GroupOrDie(internal.GroupName).InterfacesFor(version); err != nil || vi == nil { t.Fatalf("%d: unexpected result: %v", i, err) } } @@ -91,16 +92,16 @@ func TestRESTMapper(t *testing.T) { rcGVK := gv.WithKind("ReplicationController") podTemplateGVK := gv.WithKind("PodTemplate") - if gvk, err := internal.Registry.RESTMapper().KindFor(internal.SchemeGroupVersion.WithResource("replicationcontrollers")); err != nil || gvk != rcGVK { + if gvk, err := legacyscheme.Registry.RESTMapper().KindFor(internal.SchemeGroupVersion.WithResource("replicationcontrollers")); err != nil || gvk != rcGVK { t.Errorf("unexpected version mapping: %v %v", gvk, err) } - if m, err := internal.Registry.GroupOrDie(internal.GroupName).RESTMapper.RESTMapping(podTemplateGVK.GroupKind(), ""); err != nil || m.GroupVersionKind != podTemplateGVK || m.Resource != "podtemplates" { + if m, err := legacyscheme.Registry.GroupOrDie(internal.GroupName).RESTMapper.RESTMapping(podTemplateGVK.GroupKind(), ""); err != nil || m.GroupVersionKind != podTemplateGVK || m.Resource != "podtemplates" { t.Errorf("unexpected version mapping: %#v %v", m, err) } - for _, version := range internal.Registry.GroupOrDie(internal.GroupName).GroupVersions { - mapping, err := internal.Registry.GroupOrDie(internal.GroupName).RESTMapper.RESTMapping(rcGVK.GroupKind(), version.Version) + for _, version := range legacyscheme.Registry.GroupOrDie(internal.GroupName).GroupVersions { + mapping, err := legacyscheme.Registry.GroupOrDie(internal.GroupName).RESTMapper.RESTMapping(rcGVK.GroupKind(), version.Version) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -112,7 +113,7 @@ func TestRESTMapper(t *testing.T) { t.Errorf("incorrect version: %v", mapping) } - interfaces, _ := internal.Registry.GroupOrDie(internal.GroupName).InterfacesFor(version) + interfaces, _ := legacyscheme.Registry.GroupOrDie(internal.GroupName).InterfacesFor(version) if mapping.ObjectConvertor != interfaces.ObjectConvertor { t.Errorf("unexpected: %#v, expected: %#v", mapping, interfaces) } @@ -132,7 +133,7 @@ func TestUnversioned(t *testing.T) { for _, obj := range []runtime.Object{ &metav1.Status{}, } { - if unversioned, ok := internal.Scheme.IsUnversioned(obj); !unversioned || !ok { + if unversioned, ok := legacyscheme.Scheme.IsUnversioned(obj); !unversioned || !ok { t.Errorf("%v is expected to be unversioned", reflect.TypeOf(obj)) } } diff --git a/vendor/k8s.io/kubernetes/pkg/api/json.go b/vendor/k8s.io/kubernetes/pkg/apis/core/json.go similarity index 98% rename from vendor/k8s.io/kubernetes/pkg/api/json.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/json.go index 3a6e04c18..937cd056c 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/json.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/json.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api +package core import "encoding/json" diff --git a/vendor/k8s.io/kubernetes/pkg/api/objectreference.go b/vendor/k8s.io/kubernetes/pkg/apis/core/objectreference.go similarity index 98% rename from vendor/k8s.io/kubernetes/pkg/api/objectreference.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/objectreference.go index b36ecab27..55b27f30b 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/objectreference.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/objectreference.go @@ -17,7 +17,7 @@ limitations under the License. //TODO: consider making these methods functions, because we don't want helper //functions in the k8s.io/api repo. -package api +package core import ( "k8s.io/apimachinery/pkg/runtime/schema" diff --git a/vendor/k8s.io/kubernetes/pkg/api/register.go b/vendor/k8s.io/kubernetes/pkg/apis/core/register.go similarity index 67% rename from vendor/k8s.io/kubernetes/pkg/api/register.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/register.go index 39562e5a5..2784cbe15 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/register.go @@ -14,45 +14,20 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api +package core import ( - "os" - - "k8s.io/apimachinery/pkg/apimachinery/announced" - "k8s.io/apimachinery/pkg/apimachinery/registered" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/runtime/serializer" ) -// GroupFactoryRegistry is the APIGroupFactoryRegistry (overlaps a bit with Registry, see comments in package for details) -var GroupFactoryRegistry = make(announced.APIGroupFactoryRegistry) - -// Registry is an instance of an API registry. This is an interim step to start removing the idea of a global -// API registry. -var Registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) - -// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered. -// NOTE: If you are copying this file to start a new api group, STOP! Copy the -// extensions group instead. This Scheme is special and should appear ONLY in -// the api group, unless you really know what you're doing. -// TODO(lavalamp): make the above error impossible. -var Scheme = runtime.NewScheme() - -// Codecs provides access to encoding and decoding for the scheme -var Codecs = serializer.NewCodecFactory(Scheme) - // GroupName is the group name use in this package const GroupName = "" // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} -// ParameterCodec handles versioning of objects that are converted to query parameters. -var ParameterCodec = runtime.NewParameterCodec(Scheme) - // Kind takes an unqualified kind and returns a Group qualified GroupKind func Kind(kind string) schema.GroupKind { return SchemeGroupVersion.WithKind(kind).GroupKind() diff --git a/vendor/k8s.io/kubernetes/pkg/api/resource.go b/vendor/k8s.io/kubernetes/pkg/apis/core/resource.go similarity index 99% rename from vendor/k8s.io/kubernetes/pkg/api/resource.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/resource.go index ce1747d8e..1910cd921 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/resource.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/resource.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api +package core import ( "k8s.io/apimachinery/pkg/api/resource" diff --git a/vendor/k8s.io/kubernetes/pkg/api/taint.go b/vendor/k8s.io/kubernetes/pkg/apis/core/taint.go similarity index 98% rename from vendor/k8s.io/kubernetes/pkg/api/taint.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/taint.go index 173e4e601..ae1feb74d 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/taint.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/taint.go @@ -17,7 +17,7 @@ limitations under the License. //TODO: consider making these methods functions, because we don't want helper //functions in the k8s.io/api repo. -package api +package core import "fmt" diff --git a/vendor/k8s.io/kubernetes/pkg/api/taint_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/taint_test.go similarity index 99% rename from vendor/k8s.io/kubernetes/pkg/api/taint_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/taint_test.go index a52582b35..baa9404e0 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/taint_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/taint_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api +package core import "testing" diff --git a/vendor/k8s.io/kubernetes/pkg/api/toleration.go b/vendor/k8s.io/kubernetes/pkg/apis/core/toleration.go similarity index 98% rename from vendor/k8s.io/kubernetes/pkg/api/toleration.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/toleration.go index edb73b74e..1dfbc9f1b 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/toleration.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/toleration.go @@ -17,7 +17,7 @@ limitations under the License. //TODO: consider making these methods functions, because we don't want helper //functions in the k8s.io/api repo. -package api +package core // MatchToleration checks if the toleration matches tolerationToMatch. Tolerations are unique by , // if the two tolerations have same combination, regard as they match. diff --git a/vendor/k8s.io/kubernetes/pkg/api/types.go b/vendor/k8s.io/kubernetes/pkg/apis/core/types.go similarity index 97% rename from vendor/k8s.io/kubernetes/pkg/api/types.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/types.go index d04612291..f861925cc 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api +package core import ( "k8s.io/apimachinery/pkg/api/resource" @@ -343,7 +343,7 @@ type PersistentVolumeSource struct { NFS *NFSVolumeSource // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime // +optional - RBD *RBDVolumeSource + RBD *RBDPersistentVolumeSource // Quobyte represents a Quobyte mount on the host that shares a pod's lifetime // +optional Quobyte *QuobyteVolumeSource @@ -383,7 +383,7 @@ type PersistentVolumeSource struct { PortworxVolume *PortworxVolumeSource // ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. // +optional - ScaleIO *ScaleIOVolumeSource + ScaleIO *ScaleIOPersistentVolumeSource // Local represents directly-attached storage with node affinity // +optional Local *LocalVolumeSource @@ -404,7 +404,7 @@ type PersistentVolumeClaimVolumeSource struct { const ( // BetaStorageClassAnnotation represents the beta/previous StorageClass annotation. - // It's currently still used and will be held for backwards compatibility + // It's deprecated and will be removed in a future release. (#51440) BetaStorageClassAnnotation = "volume.beta.kubernetes.io/storage-class" // MountOptionAnnotation defines mount option annotation used in PVs @@ -1006,6 +1006,37 @@ type RBDVolumeSource struct { ReadOnly bool } +// Represents a Rados Block Device mount that lasts the lifetime of a pod. +// RBD volumes support ownership management and SELinux relabeling. +type RBDPersistentVolumeSource struct { + // Required: CephMonitors is a collection of Ceph monitors + CephMonitors []string + // Required: RBDImage is the rados image name + RBDImage string + // Filesystem type to mount. + // Must be a filesystem type supported by the host operating system. + // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // TODO: how do we prevent errors in the filesystem from compromising the machine + // +optional + FSType string + // Optional: RadosPool is the rados pool name,default is rbd + // +optional + RBDPool string + // Optional: RBDUser is the rados user name, default is admin + // +optional + RadosUser string + // Optional: Keyring is the path to key ring for RBDUser, default is /etc/ceph/keyring + // +optional + Keyring string + // Optional: SecretRef is reference to the authentication secret for User, default is empty. + // +optional + SecretRef *SecretReference + // Optional: Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + ReadOnly bool +} + // Represents a cinder volume resource in Openstack. A Cinder volume // must exist before mounting to a container. The volume must also be // in the same region as the kubelet. Cinder volumes support ownership @@ -1254,13 +1285,13 @@ type ScaleIOVolumeSource struct { // Flag to enable/disable SSL communication with Gateway, default false // +optional SSLEnabled bool - // The name of the Protection Domain for the configured storage (defaults to "default"). + // The name of the ScaleIO Protection Domain for the configured storage. // +optional ProtectionDomain string - // The Storage Pool associated with the protection domain (defaults to "default"). + // The ScaleIO Storage Pool associated with the protection domain. // +optional StoragePool string - // Indicates whether the storage for a volume should be thick or thin (defaults to "thin"). + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. // +optional StorageMode string // The name of a volume already created in the ScaleIO system @@ -1277,6 +1308,42 @@ type ScaleIOVolumeSource struct { ReadOnly bool } +// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume that can be defined +// by a an admin via a storage class, for instance. +type ScaleIOPersistentVolumeSource struct { + // The host address of the ScaleIO API Gateway. + Gateway string + // The name of the storage system as configured in ScaleIO. + System string + // SecretRef references to the secret for ScaleIO user and other + // sensitive information. If this is not provided, Login operation will fail. + SecretRef *SecretReference + // Flag to enable/disable SSL communication with Gateway, default false + // +optional + SSLEnabled bool + // The name of the ScaleIO Protection Domain for the configured storage. + // +optional + ProtectionDomain string + // The ScaleIO Storage Pool associated with the protection domain. + // +optional + StoragePool string + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. + // +optional + StorageMode string + // The name of a volume created in the ScaleIO system + // that is associated with this volume source. + VolumeName string + // Filesystem type to mount. + // Must be a filesystem type supported by the host operating system. + // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // +optional + FSType string + // Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + ReadOnly bool +} + // Represents a StorageOS persistent volume resource. type StorageOSVolumeSource struct { // VolumeName is the human-readable name of the StorageOS volume. Volume @@ -2658,8 +2725,8 @@ type ReplicationControllerCondition struct { } // +genclient -// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/extensions.Scale -// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/extensions.Scale,result=k8s.io/kubernetes/pkg/apis/extensions.Scale +// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale +// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/autoscaling.Scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // ReplicationController represents the configuration of a replication controller. @@ -3508,6 +3575,10 @@ type DeleteOptions struct { // Either this field or OrphanDependents may be set, but not both. // The default policy is decided by the existing finalizer set in the // metadata.finalizers and the resource-specific default policy. + // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - + // allow the garbage collector to delete the dependents in the background; + // 'Foreground' - a cascading policy that deletes all dependents in the + // foreground. // +optional PropagationPolicy *DeletionPropagation } @@ -4283,5 +4354,5 @@ const ( // corresponding to every RequiredDuringScheduling affinity rule. // When the --hard-pod-affinity-weight scheduler flag is not specified, // DefaultHardPodAffinityWeight defines the weight of the implicit PreferredDuringScheduling affinity rule. - DefaultHardPodAffinitySymmetricWeight int = 1 + DefaultHardPodAffinitySymmetricWeight int32 = 1 ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/BUILD similarity index 69% rename from vendor/k8s.io/kubernetes/pkg/api/v1/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/BUILD index e0120ea92..9c49ad4c0 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/BUILD @@ -1,10 +1,4 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", @@ -16,9 +10,10 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - importpath = "k8s.io/kubernetes/pkg/api/v1", + importpath = "k8s.io/kubernetes/pkg/apis/core/v1", + visibility = ["//visibility:public"], deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/util/parsers:go_default_library", "//pkg/util/pointer:go_default_library", @@ -40,14 +35,21 @@ go_test( "conversion_test.go", "defaults_test.go", ], - importpath = "k8s.io/kubernetes/pkg/api/v1_test", + importpath = "k8s.io/kubernetes/pkg/apis/core/v1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/fuzzer:go_default_library", + "//pkg/apis/extensions:go_default_library", + "//pkg/util/pointer:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/testing/fuzzer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/fuzzer: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/util/diff:go_default_library", @@ -66,13 +68,9 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//pkg/api/v1/endpoints:all-srcs", - "//pkg/api/v1/helper:all-srcs", - "//pkg/api/v1/node:all-srcs", - "//pkg/api/v1/pod:all-srcs", - "//pkg/api/v1/resource:all-srcs", - "//pkg/api/v1/service:all-srcs", - "//pkg/api/v1/validation:all-srcs", + "//pkg/apis/core/v1/helper:all-srcs", + "//pkg/apis/core/v1/validation:all-srcs", ], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/OWNERS old mode 100644 new mode 100755 similarity index 76% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/OWNERS rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/OWNERS index 7009d88bf..c627c33f8 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/OWNERS @@ -1,8 +1,3 @@ -approvers: -- erictune -- lavalamp -- smarterclayton -- thockin reviewers: - thockin - lavalamp @@ -28,15 +23,17 @@ reviewers: - luxas - janetkuo - justinsb -- pwittrock - roberthbailey - ncdc - tallclair -- yifan-gu - eparis -- mwielgus - timothysc -- soltysh - piosz - jsafrane -- jbeda +- dims +- errordeveloper +- madhusudancs +- krousey +- jayunit100 +- rootfs +- markturansky diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go similarity index 69% rename from vendor/k8s.io/kubernetes/pkg/api/v1/conversion.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go index 3076db9cc..2e650739d 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/conversion" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -38,79 +38,79 @@ func addFastPathConversionFuncs(scheme *runtime.Scheme) error { switch a := objA.(type) { case *v1.Pod: switch b := objB.(type) { - case *api.Pod: - return true, Convert_v1_Pod_To_api_Pod(a, b, s) + case *core.Pod: + return true, Convert_v1_Pod_To_core_Pod(a, b, s) } - case *api.Pod: + case *core.Pod: switch b := objB.(type) { case *v1.Pod: - return true, Convert_api_Pod_To_v1_Pod(a, b, s) + return true, Convert_core_Pod_To_v1_Pod(a, b, s) } case *v1.Event: switch b := objB.(type) { - case *api.Event: - return true, Convert_v1_Event_To_api_Event(a, b, s) + case *core.Event: + return true, Convert_v1_Event_To_core_Event(a, b, s) } - case *api.Event: + case *core.Event: switch b := objB.(type) { case *v1.Event: - return true, Convert_api_Event_To_v1_Event(a, b, s) + return true, Convert_core_Event_To_v1_Event(a, b, s) } case *v1.ReplicationController: switch b := objB.(type) { - case *api.ReplicationController: - return true, Convert_v1_ReplicationController_To_api_ReplicationController(a, b, s) + case *core.ReplicationController: + return true, Convert_v1_ReplicationController_To_core_ReplicationController(a, b, s) } - case *api.ReplicationController: + case *core.ReplicationController: switch b := objB.(type) { case *v1.ReplicationController: - return true, Convert_api_ReplicationController_To_v1_ReplicationController(a, b, s) + return true, Convert_core_ReplicationController_To_v1_ReplicationController(a, b, s) } case *v1.Node: switch b := objB.(type) { - case *api.Node: - return true, Convert_v1_Node_To_api_Node(a, b, s) + case *core.Node: + return true, Convert_v1_Node_To_core_Node(a, b, s) } - case *api.Node: + case *core.Node: switch b := objB.(type) { case *v1.Node: - return true, Convert_api_Node_To_v1_Node(a, b, s) + return true, Convert_core_Node_To_v1_Node(a, b, s) } case *v1.Namespace: switch b := objB.(type) { - case *api.Namespace: - return true, Convert_v1_Namespace_To_api_Namespace(a, b, s) + case *core.Namespace: + return true, Convert_v1_Namespace_To_core_Namespace(a, b, s) } - case *api.Namespace: + case *core.Namespace: switch b := objB.(type) { case *v1.Namespace: - return true, Convert_api_Namespace_To_v1_Namespace(a, b, s) + return true, Convert_core_Namespace_To_v1_Namespace(a, b, s) } case *v1.Service: switch b := objB.(type) { - case *api.Service: - return true, Convert_v1_Service_To_api_Service(a, b, s) + case *core.Service: + return true, Convert_v1_Service_To_core_Service(a, b, s) } - case *api.Service: + case *core.Service: switch b := objB.(type) { case *v1.Service: - return true, Convert_api_Service_To_v1_Service(a, b, s) + return true, Convert_core_Service_To_v1_Service(a, b, s) } case *v1.Endpoints: switch b := objB.(type) { - case *api.Endpoints: - return true, Convert_v1_Endpoints_To_api_Endpoints(a, b, s) + case *core.Endpoints: + return true, Convert_v1_Endpoints_To_core_Endpoints(a, b, s) } - case *api.Endpoints: + case *core.Endpoints: switch b := objB.(type) { case *v1.Endpoints: - return true, Convert_api_Endpoints_To_v1_Endpoints(a, b, s) + return true, Convert_core_Endpoints_To_v1_Endpoints(a, b, s) } case *metav1.WatchEvent: @@ -132,16 +132,16 @@ func addFastPathConversionFuncs(scheme *runtime.Scheme) error { func addConversionFuncs(scheme *runtime.Scheme) error { // Add non-generated conversion functions err := scheme.AddConversionFuncs( - Convert_api_Pod_To_v1_Pod, - Convert_api_PodSpec_To_v1_PodSpec, - Convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec, - Convert_api_ServiceSpec_To_v1_ServiceSpec, - Convert_v1_Pod_To_api_Pod, - Convert_v1_PodSpec_To_api_PodSpec, - Convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec, - Convert_v1_Secret_To_api_Secret, - Convert_v1_ServiceSpec_To_api_ServiceSpec, - Convert_v1_ResourceList_To_api_ResourceList, + Convert_core_Pod_To_v1_Pod, + Convert_core_PodSpec_To_v1_PodSpec, + Convert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec, + Convert_core_ServiceSpec_To_v1_ServiceSpec, + Convert_v1_Pod_To_core_Pod, + Convert_v1_PodSpec_To_core_PodSpec, + Convert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec, + Convert_v1_Secret_To_core_Secret, + Convert_v1_ServiceSpec_To_core_ServiceSpec, + Convert_v1_ResourceList_To_core_ResourceList, Convert_v1_ReplicationController_to_extensions_ReplicaSet, Convert_v1_ReplicationControllerSpec_to_extensions_ReplicaSetSpec, Convert_v1_ReplicationControllerStatus_to_extensions_ReplicaSetStatus, @@ -235,11 +235,13 @@ func Convert_v1_ReplicationController_to_extensions_ReplicaSet(in *v1.Replicatio func Convert_v1_ReplicationControllerSpec_to_extensions_ReplicaSetSpec(in *v1.ReplicationControllerSpec, out *extensions.ReplicaSetSpec, s conversion.Scope) error { out.Replicas = *in.Replicas + out.MinReadySeconds = in.MinReadySeconds if in.Selector != nil { + out.Selector = new(metav1.LabelSelector) metav1.Convert_map_to_unversioned_LabelSelector(&in.Selector, out.Selector, s) } if in.Template != nil { - if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, &out.Template, s); err != nil { + if err := Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in.Template, &out.Template, s); err != nil { return err } } @@ -252,6 +254,15 @@ func Convert_v1_ReplicationControllerStatus_to_extensions_ReplicaSetStatus(in *v out.ReadyReplicas = in.ReadyReplicas out.AvailableReplicas = in.AvailableReplicas out.ObservedGeneration = in.ObservedGeneration + for _, cond := range in.Conditions { + out.Conditions = append(out.Conditions, extensions.ReplicaSetCondition{ + Type: extensions.ReplicaSetConditionType(cond.Type), + Status: core.ConditionStatus(cond.Status), + LastTransitionTime: cond.LastTransitionTime, + Reason: cond.Reason, + Message: cond.Message, + }) + } return nil } @@ -282,7 +293,7 @@ func Convert_extensions_ReplicaSetSpec_to_v1_ReplicationControllerSpec(in *exten invalidErr = metav1.Convert_unversioned_LabelSelector_to_map(in.Selector, &out.Selector, s) } out.Template = new(v1.PodTemplateSpec) - if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, out.Template, s); err != nil { + if err := Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, out.Template, s); err != nil { return err } return invalidErr @@ -294,16 +305,25 @@ func Convert_extensions_ReplicaSetStatus_to_v1_ReplicationControllerStatus(in *e out.ReadyReplicas = in.ReadyReplicas out.AvailableReplicas = in.AvailableReplicas out.ObservedGeneration = in.ObservedGeneration + for _, cond := range in.Conditions { + out.Conditions = append(out.Conditions, v1.ReplicationControllerCondition{ + Type: v1.ReplicationControllerConditionType(cond.Type), + Status: v1.ConditionStatus(cond.Status), + LastTransitionTime: cond.LastTransitionTime, + Reason: cond.Reason, + Message: cond.Message, + }) + } return nil } -func Convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *api.ReplicationControllerSpec, out *v1.ReplicationControllerSpec, s conversion.Scope) error { +func Convert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *core.ReplicationControllerSpec, out *v1.ReplicationControllerSpec, s conversion.Scope) error { out.Replicas = &in.Replicas out.MinReadySeconds = in.MinReadySeconds out.Selector = in.Selector if in.Template != nil { out.Template = new(v1.PodTemplateSpec) - if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil { + if err := Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil { return err } } else { @@ -312,15 +332,15 @@ func Convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *a return nil } -func Convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec(in *v1.ReplicationControllerSpec, out *api.ReplicationControllerSpec, s conversion.Scope) error { +func Convert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec(in *v1.ReplicationControllerSpec, out *core.ReplicationControllerSpec, s conversion.Scope) error { if in.Replicas != nil { out.Replicas = *in.Replicas } out.MinReadySeconds = in.MinReadySeconds out.Selector = in.Selector if in.Template != nil { - out.Template = new(api.PodTemplateSpec) - if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil { + out.Template = new(core.PodTemplateSpec) + if err := Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in.Template, out.Template, s); err != nil { return err } } else { @@ -329,16 +349,16 @@ func Convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec(in *v return nil } -func Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in *api.PodTemplateSpec, out *v1.PodTemplateSpec, s conversion.Scope) error { - if err := autoConvert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in, out, s); err != nil { +func Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(in *core.PodTemplateSpec, out *v1.PodTemplateSpec, s conversion.Scope) error { + if err := autoConvert_core_PodTemplateSpec_To_v1_PodTemplateSpec(in, out, s); err != nil { return err } return nil } -func Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in *v1.PodTemplateSpec, out *api.PodTemplateSpec, s conversion.Scope) error { - if err := autoConvert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in, out, s); err != nil { +func Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in *v1.PodTemplateSpec, out *core.PodTemplateSpec, s conversion.Scope) error { + if err := autoConvert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in, out, s); err != nil { return err } @@ -347,8 +367,8 @@ func Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in *v1.PodTemplateSpec, o // The following two v1.PodSpec conversions are done here to support v1.ServiceAccount // as an alias for ServiceAccountName. -func Convert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *v1.PodSpec, s conversion.Scope) error { - if err := autoConvert_api_PodSpec_To_v1_PodSpec(in, out, s); err != nil { +func Convert_core_PodSpec_To_v1_PodSpec(in *core.PodSpec, out *v1.PodSpec, s conversion.Scope) error { + if err := autoConvert_core_PodSpec_To_v1_PodSpec(in, out, s); err != nil { return err } @@ -366,8 +386,8 @@ func Convert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *v1.PodSpec, s conve return nil } -func Convert_v1_PodSpec_To_api_PodSpec(in *v1.PodSpec, out *api.PodSpec, s conversion.Scope) error { - if err := autoConvert_v1_PodSpec_To_api_PodSpec(in, out, s); err != nil { +func Convert_v1_PodSpec_To_core_PodSpec(in *v1.PodSpec, out *core.PodSpec, s conversion.Scope) error { + if err := autoConvert_v1_PodSpec_To_core_PodSpec(in, out, s); err != nil { return err } @@ -380,7 +400,7 @@ func Convert_v1_PodSpec_To_api_PodSpec(in *v1.PodSpec, out *api.PodSpec, s conve // the host namespace fields have to be handled specially for backward compatibility // with v1.0.0 if out.SecurityContext == nil { - out.SecurityContext = new(api.PodSecurityContext) + out.SecurityContext = new(core.PodSecurityContext) } out.SecurityContext.HostNetwork = in.HostNetwork out.SecurityContext.HostPID = in.HostPID @@ -389,8 +409,8 @@ func Convert_v1_PodSpec_To_api_PodSpec(in *v1.PodSpec, out *api.PodSpec, s conve return nil } -func Convert_api_Pod_To_v1_Pod(in *api.Pod, out *v1.Pod, s conversion.Scope) error { - if err := autoConvert_api_Pod_To_v1_Pod(in, out, s); err != nil { +func Convert_core_Pod_To_v1_Pod(in *core.Pod, out *v1.Pod, s conversion.Scope) error { + if err := autoConvert_core_Pod_To_v1_Pod(in, out, s); err != nil { return err } @@ -411,8 +431,8 @@ func Convert_api_Pod_To_v1_Pod(in *api.Pod, out *v1.Pod, s conversion.Scope) err return nil } -func Convert_v1_Secret_To_api_Secret(in *v1.Secret, out *api.Secret, s conversion.Scope) error { - if err := autoConvert_v1_Secret_To_api_Secret(in, out, s); err != nil { +func Convert_v1_Secret_To_core_Secret(in *v1.Secret, out *core.Secret, s conversion.Scope) error { + if err := autoConvert_v1_Secret_To_core_Secret(in, out, s); err != nil { return err } @@ -428,10 +448,10 @@ func Convert_v1_Secret_To_api_Secret(in *v1.Secret, out *api.Secret, s conversio return nil } -func Convert_api_SecurityContext_To_v1_SecurityContext(in *api.SecurityContext, out *v1.SecurityContext, s conversion.Scope) error { +func Convert_core_SecurityContext_To_v1_SecurityContext(in *core.SecurityContext, out *v1.SecurityContext, s conversion.Scope) error { if in.Capabilities != nil { out.Capabilities = new(v1.Capabilities) - if err := Convert_api_Capabilities_To_v1_Capabilities(in.Capabilities, out.Capabilities, s); err != nil { + if err := Convert_core_Capabilities_To_v1_Capabilities(in.Capabilities, out.Capabilities, s); err != nil { return err } } else { @@ -440,7 +460,7 @@ func Convert_api_SecurityContext_To_v1_SecurityContext(in *api.SecurityContext, out.Privileged = in.Privileged if in.SELinuxOptions != nil { out.SELinuxOptions = new(v1.SELinuxOptions) - if err := Convert_api_SELinuxOptions_To_v1_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil { + if err := Convert_core_SELinuxOptions_To_v1_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil { return err } } else { @@ -453,11 +473,11 @@ func Convert_api_SecurityContext_To_v1_SecurityContext(in *api.SecurityContext, return nil } -func Convert_api_PodSecurityContext_To_v1_PodSecurityContext(in *api.PodSecurityContext, out *v1.PodSecurityContext, s conversion.Scope) error { +func Convert_core_PodSecurityContext_To_v1_PodSecurityContext(in *core.PodSecurityContext, out *v1.PodSecurityContext, s conversion.Scope) error { out.SupplementalGroups = in.SupplementalGroups if in.SELinuxOptions != nil { out.SELinuxOptions = new(v1.SELinuxOptions) - if err := Convert_api_SELinuxOptions_To_v1_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil { + if err := Convert_core_SELinuxOptions_To_v1_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil { return err } } else { @@ -469,11 +489,11 @@ func Convert_api_PodSecurityContext_To_v1_PodSecurityContext(in *api.PodSecurity return nil } -func Convert_v1_PodSecurityContext_To_api_PodSecurityContext(in *v1.PodSecurityContext, out *api.PodSecurityContext, s conversion.Scope) error { +func Convert_v1_PodSecurityContext_To_core_PodSecurityContext(in *v1.PodSecurityContext, out *core.PodSecurityContext, s conversion.Scope) error { out.SupplementalGroups = in.SupplementalGroups if in.SELinuxOptions != nil { - out.SELinuxOptions = new(api.SELinuxOptions) - if err := Convert_v1_SELinuxOptions_To_api_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil { + out.SELinuxOptions = new(core.SELinuxOptions) + if err := Convert_v1_SELinuxOptions_To_core_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil { return err } } else { @@ -486,12 +506,12 @@ func Convert_v1_PodSecurityContext_To_api_PodSecurityContext(in *v1.PodSecurityC } // +k8s:conversion-fn=copy-only -func Convert_v1_ResourceList_To_api_ResourceList(in *v1.ResourceList, out *api.ResourceList, s conversion.Scope) error { +func Convert_v1_ResourceList_To_core_ResourceList(in *v1.ResourceList, out *core.ResourceList, s conversion.Scope) error { if *in == nil { return nil } if *out == nil { - *out = make(api.ResourceList, len(*in)) + *out = make(core.ResourceList, len(*in)) } for key, val := range *in { // Moved to defaults @@ -500,7 +520,7 @@ func Convert_v1_ResourceList_To_api_ResourceList(in *v1.ResourceList, out *api.R // const milliScale = -3 // val.RoundUp(milliScale) - (*out)[api.ResourceName(key)] = val + (*out)[core.ResourceName(key)] = val } return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/conversion_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion_test.go similarity index 53% rename from vendor/k8s.io/kubernetes/pkg/api/v1/conversion_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion_test.go index 961701b17..e6d2bbdc5 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/conversion_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/conversion_test.go @@ -17,19 +17,28 @@ limitations under the License. package v1_test import ( + "encoding/json" + "math/rand" "net/url" "reflect" "testing" "time" "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/apimachinery/pkg/api/testing/fuzzer" + metafuzzer "k8s.io/apimachinery/pkg/apis/meta/fuzzer" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/kubernetes/pkg/api/legacyscheme" + "k8s.io/kubernetes/pkg/apis/core" + corefuzzer "k8s.io/kubernetes/pkg/apis/core/fuzzer" + corev1 "k8s.io/kubernetes/pkg/apis/core/v1" + "k8s.io/kubernetes/pkg/apis/extensions" + utilpointer "k8s.io/kubernetes/pkg/util/pointer" // enforce that all types are installed _ "k8s.io/kubernetes/pkg/api/testapi" @@ -51,7 +60,7 @@ func TestPodLogOptions(t *testing.T) { TailLines: &tailLines, LimitBytes: &limitBytes, } - unversionedLogOptions := &api.PodLogOptions{ + unversionedLogOptions := &core.PodLogOptions{ Container: "mycontainer", Follow: true, Previous: true, @@ -72,7 +81,7 @@ func TestPodLogOptions(t *testing.T) { "limitBytes": {"3"}, } - codec := runtime.NewParameterCodec(api.Scheme) + codec := runtime.NewParameterCodec(legacyscheme.Scheme) // unversioned -> query params { @@ -110,7 +119,7 @@ func TestPodLogOptions(t *testing.T) { // query params -> unversioned { - convertedLogOptions := &api.PodLogOptions{} + convertedLogOptions := &core.PodLogOptions{} err := codec.DecodeParameters(expectedParameters, v1.SchemeGroupVersion, convertedLogOptions) if err != nil { t.Fatal(err) @@ -128,11 +137,11 @@ func TestPodSpecConversion(t *testing.T) { // Test internal -> v1. Should have both alias (DeprecatedServiceAccount) // and new field (ServiceAccountName). - i := &api.PodSpec{ + i := &core.PodSpec{ ServiceAccountName: name, } v := v1.PodSpec{} - if err := api.Scheme.Convert(i, &v, nil); err != nil { + if err := legacyscheme.Scheme.Convert(i, &v, nil); err != nil { t.Fatalf("unexpected error: %v", err) } if v.ServiceAccountName != name { @@ -156,13 +165,13 @@ func TestPodSpecConversion(t *testing.T) { {ServiceAccountName: name, DeprecatedServiceAccount: other}, } for k, v := range testCases { - got := api.PodSpec{} - err := api.Scheme.Convert(v, &got, nil) + got := core.PodSpec{} + err := legacyscheme.Scheme.Convert(v, &got, nil) if err != nil { t.Fatalf("unexpected error for case %d: %v", k, err) } if got.ServiceAccountName != name { - t.Fatalf("want api.ServiceAccountName %q, got %q", name, got.ServiceAccountName) + t.Fatalf("want core.ServiceAccountName %q, got %q", name, got.ServiceAccountName) } } } @@ -173,7 +182,7 @@ func TestResourceListConversion(t *testing.T) { tests := []struct { input v1.ResourceList - expected api.ResourceList + expected core.ResourceList }{ { // No changes necessary. input: v1.ResourceList{ @@ -181,10 +190,10 @@ func TestResourceListConversion(t *testing.T) { v1.ResourceCPU: resource.MustParse("100m"), v1.ResourceStorage: resource.MustParse("1G"), }, - expected: api.ResourceList{ - api.ResourceMemory: resource.MustParse("30M"), - api.ResourceCPU: resource.MustParse("100m"), - api.ResourceStorage: resource.MustParse("1G"), + expected: core.ResourceList{ + core.ResourceMemory: resource.MustParse("30M"), + core.ResourceCPU: resource.MustParse("100m"), + core.ResourceStorage: resource.MustParse("1G"), }, }, { // Nano-scale values should be rounded up to milli-scale. @@ -192,9 +201,9 @@ func TestResourceListConversion(t *testing.T) { v1.ResourceCPU: resource.MustParse("3.000023m"), v1.ResourceMemory: resource.MustParse("500.000050m"), }, - expected: api.ResourceList{ - api.ResourceCPU: resource.MustParse("4m"), - api.ResourceMemory: resource.MustParse("501m"), + expected: core.ResourceList{ + core.ResourceCPU: resource.MustParse("4m"), + core.ResourceMemory: resource.MustParse("501m"), }, }, { // Large values should still be accurate. @@ -202,21 +211,21 @@ func TestResourceListConversion(t *testing.T) { v1.ResourceCPU: *bigMilliQuantity.Copy(), v1.ResourceStorage: *bigMilliQuantity.Copy(), }, - expected: api.ResourceList{ - api.ResourceCPU: *bigMilliQuantity.Copy(), - api.ResourceStorage: *bigMilliQuantity.Copy(), + expected: core.ResourceList{ + core.ResourceCPU: *bigMilliQuantity.Copy(), + core.ResourceStorage: *bigMilliQuantity.Copy(), }, }, } for i, test := range tests { - output := api.ResourceList{} + output := core.ResourceList{} // defaulting is a separate step from conversion that is applied when reading from the API or from etcd. // perform that step explicitly. - k8s_api_v1.SetDefaults_ResourceList(&test.input) + corev1.SetDefaults_ResourceList(&test.input) - err := api.Scheme.Convert(&test.input, &output, nil) + err := legacyscheme.Scheme.Convert(&test.input, &output, nil) if err != nil { t.Fatalf("unexpected error for case %d: %v", i, err) } @@ -225,3 +234,115 @@ func TestResourceListConversion(t *testing.T) { } } } + +func TestReplicationControllerConversion(t *testing.T) { + // If we start with a RC, we should always have round-trip fidelity. + inputs := []*v1.ReplicationController{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "name", + Namespace: "namespace", + }, + Spec: v1.ReplicationControllerSpec{ + Replicas: utilpointer.Int32Ptr(1), + MinReadySeconds: 32, + Selector: map[string]string{"foo": "bar", "bar": "foo"}, + Template: &v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{"foo": "bar", "bar": "foo"}, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "container", + Image: "image", + }, + }, + }, + }, + }, + Status: v1.ReplicationControllerStatus{ + Replicas: 1, + FullyLabeledReplicas: 2, + ReadyReplicas: 3, + AvailableReplicas: 4, + ObservedGeneration: 5, + Conditions: []v1.ReplicationControllerCondition{ + { + Type: v1.ReplicationControllerReplicaFailure, + Status: v1.ConditionTrue, + LastTransitionTime: metav1.NewTime(time.Unix(123456789, 0)), + Reason: "Reason", + Message: "Message", + }, + }, + }, + }, + } + + // Add some fuzzed RCs. + apiObjectFuzzer := fuzzer.FuzzerFor(fuzzer.MergeFuzzerFuncs(metafuzzer.Funcs, corefuzzer.Funcs), rand.NewSource(152), legacyscheme.Codecs) + for i := 0; i < 100; i++ { + rc := &v1.ReplicationController{} + apiObjectFuzzer.Fuzz(rc) + // Sometimes the fuzzer decides to leave Spec.Template nil. + // We can't support that because Spec.Template is not a pointer in RS, + // so it will round-trip as non-nil but empty. + if rc.Spec.Template == nil { + rc.Spec.Template = &v1.PodTemplateSpec{} + } + // Sometimes the fuzzer decides to insert an empty label key. + // This doesn't round-trip properly because it's invalid. + if rc.Spec.Selector != nil { + delete(rc.Spec.Selector, "") + } + inputs = append(inputs, rc) + } + + // Round-trip the input RCs before converting to RS. + for i := range inputs { + inputs[i] = roundTrip(t, inputs[i]).(*v1.ReplicationController) + } + + for _, in := range inputs { + rs := &extensions.ReplicaSet{} + // Use in.DeepCopy() to avoid sharing pointers with `in`. + if err := corev1.Convert_v1_ReplicationController_to_extensions_ReplicaSet(in.DeepCopy(), rs, nil); err != nil { + t.Errorf("can't convert RC to RS: %v", err) + continue + } + // Round-trip RS before converting back to RC. + rs = roundTripRS(t, rs) + out := &v1.ReplicationController{} + if err := corev1.Convert_extensions_ReplicaSet_to_v1_ReplicationController(rs, out, nil); err != nil { + t.Errorf("can't convert RS to RC: %v", err) + continue + } + if !apiequality.Semantic.DeepEqual(in, out) { + instr, _ := json.MarshalIndent(in, "", " ") + outstr, _ := json.MarshalIndent(out, "", " ") + t.Errorf("RC-RS conversion round-trip failed:\nin:\n%s\nout:\n%s", instr, outstr) + } + } +} + +func roundTripRS(t *testing.T, rs *extensions.ReplicaSet) *extensions.ReplicaSet { + codec := legacyscheme.Codecs.LegacyCodec(extensionsv1beta1.SchemeGroupVersion) + data, err := runtime.Encode(codec, rs) + if err != nil { + t.Errorf("%v\n %#v", err, rs) + return nil + } + obj2, err := runtime.Decode(codec, data) + if err != nil { + t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), rs) + return nil + } + obj3 := &extensions.ReplicaSet{} + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) + if err != nil { + t.Errorf("%v\nSource: %#v", err, obj2) + return nil + } + return obj3 +} diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults.go similarity index 96% rename from vendor/k8s.io/kubernetes/pkg/api/v1/defaults.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults.go index 9bf082d3d..02b1832d6 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults.go @@ -368,13 +368,28 @@ func SetDefaults_RBDVolumeSource(obj *v1.RBDVolumeSource) { } } +func SetDefaults_RBDPersistentVolumeSource(obj *v1.RBDPersistentVolumeSource) { + if obj.RBDPool == "" { + obj.RBDPool = "rbd" + } + if obj.RadosUser == "" { + obj.RadosUser = "admin" + } + if obj.Keyring == "" { + obj.Keyring = "/etc/ceph/keyring" + } +} + func SetDefaults_ScaleIOVolumeSource(obj *v1.ScaleIOVolumeSource) { - if obj.ProtectionDomain == "" { - obj.ProtectionDomain = "default" + if obj.StorageMode == "" { + obj.StorageMode = "ThinProvisioned" } - if obj.StoragePool == "" { - obj.StoragePool = "default" + if obj.FSType == "" { + obj.FSType = "xfs" } +} + +func SetDefaults_ScaleIOPersistentVolumeSource(obj *v1.ScaleIOPersistentVolumeSource) { if obj.StorageMode == "" { obj.StorageMode = "ThinProvisioned" } diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults_test.go similarity index 99% rename from vendor/k8s.io/kubernetes/pkg/api/v1/defaults_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults_test.go index f5ad77dab..89984dc11 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/defaults_test.go @@ -26,15 +26,15 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/kubernetes/pkg/api/legacyscheme" + corev1 "k8s.io/kubernetes/pkg/apis/core/v1" // enforce that all types are installed _ "k8s.io/kubernetes/pkg/api/testapi" ) func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - codec := api.Codecs.LegacyCodec(v1.SchemeGroupVersion) + codec := legacyscheme.Codecs.LegacyCodec(corev1.SchemeGroupVersion) data, err := runtime.Encode(codec, obj) if err != nil { t.Errorf("%v\n %#v", err, obj) @@ -46,7 +46,7 @@ func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil @@ -1129,7 +1129,7 @@ func TestSetMinimumScalePod(t *testing.T) { pod := &v1.Pod{ Spec: s, } - k8s_api_v1.SetObjectDefaults_Pod(pod) + corev1.SetObjectDefaults_Pod(pod) if expect := resource.MustParse("1m"); expect.Cmp(pod.Spec.Containers[0].Resources.Requests[v1.ResourceMemory]) != 0 { t.Errorf("did not round resources: %#v", pod.Spec.Containers[0].Resources) diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/doc.go similarity index 71% rename from vendor/k8s.io/kubernetes/pkg/api/v1/doc.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/doc.go index 0f1e0d495..23f0e8ef7 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/doc.go @@ -14,10 +14,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:conversion-gen=k8s.io/kubernetes/pkg/api -// +k8s:conversion-gen-external-types=../../../vendor/k8s.io/api/core/v1 +// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/core +// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/core/v1 // +k8s:defaulter-gen=TypeMeta -// +k8s:defaulter-gen-input=../../../vendor/k8s.io/api/core/v1 +// +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/core/v1 // Package v1 is the v1 version of the API. -package v1 // import "k8s.io/kubernetes/pkg/api/v1" +package v1 // import "k8s.io/kubernetes/pkg/apis/core/v1" diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/BUILD similarity index 80% rename from vendor/k8s.io/kubernetes/pkg/api/v1/helper/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/BUILD index 104484531..ea7e2ae97 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/BUILD @@ -9,11 +9,12 @@ load( go_test( name = "go_default_test", srcs = ["helpers_test.go"], - importpath = "k8s.io/kubernetes/pkg/api/v1/helper", + importpath = "k8s.io/kubernetes/pkg/apis/core/v1/helper", library = ":go_default_library", deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", ], @@ -22,9 +23,9 @@ go_test( go_library( name = "go_default_library", srcs = ["helpers.go"], - importpath = "k8s.io/kubernetes/pkg/api/v1/helper", + importpath = "k8s.io/kubernetes/pkg/apis/core/v1/helper", deps = [ - "//pkg/api/helper:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", @@ -44,7 +45,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//pkg/api/v1/helper/qos:all-srcs", + "//pkg/apis/core/v1/helper/qos:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/helpers.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go similarity index 99% rename from vendor/k8s.io/kubernetes/pkg/api/v1/helper/helpers.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go index 92cacf8d2..8563704c7 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/selection" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api/helper" + "k8s.io/kubernetes/pkg/apis/core/helper" ) // IsExtendedResourceName returns true if the resource name is not in the diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/helpers_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers_test.go similarity index 86% rename from vendor/k8s.io/kubernetes/pkg/api/v1/helper/helpers_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers_test.go index 3b8e5f878..3a890420a 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/helpers_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/helpers_test.go @@ -23,10 +23,135 @@ import ( "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" ) +func TestIsDefaultNamespaceResource(t *testing.T) { + testCases := []struct { + resourceName v1.ResourceName + expectVal bool + }{ + { + resourceName: "pod.alpha.kubernetes.io/opaque-int-resource-foo", + expectVal: true, + }, + { + resourceName: "kubernetes.io/resource-foo", + expectVal: true, + }, + { + resourceName: "foo", + expectVal: true, + }, + { + resourceName: "a/b", + expectVal: false, + }, + { + resourceName: "", + expectVal: true, + }, + } + + for _, tc := range testCases { + tc := tc + t.Run(fmt.Sprintf("resourceName input=%s, expected value=%v", tc.resourceName, tc.expectVal), func(t *testing.T) { + t.Parallel() + v := IsDefaultNamespaceResource(tc.resourceName) + if v != tc.expectVal { + t.Errorf("Got %v but expected %v", v, tc.expectVal) + } + }) + } +} + +func TestHugePageSizeFromResourceName(t *testing.T) { + expected100m, _ := resource.ParseQuantity("100m") + testCases := []struct { + resourceName v1.ResourceName + expectVal resource.Quantity + expectErr bool + }{ + { + resourceName: "pod.alpha.kubernetes.io/opaque-int-resource-foo", + expectVal: resource.Quantity{}, + expectErr: true, + }, + { + resourceName: "hugepages-", + expectVal: resource.Quantity{}, + expectErr: true, + }, + { + resourceName: "hugepages-100m", + expectVal: expected100m, + expectErr: false, + }, + { + resourceName: "", + expectVal: resource.Quantity{}, + expectErr: true, + }, + } + + for i, tc := range testCases { + tc := tc + t.Run(fmt.Sprintf("resourceName input=%s, expected value=%v", tc.resourceName, tc.expectVal), func(t *testing.T) { + t.Parallel() + v, err := HugePageSizeFromResourceName(tc.resourceName) + if err == nil && tc.expectErr { + t.Errorf("[%v]expected error but got none.", i) + } + if err != nil && !tc.expectErr { + t.Errorf("[%v]did not expect error but got: %v", i, err) + } + if v != tc.expectVal { + t.Errorf("Got %v but expected %v", v, tc.expectVal) + } + }) + } +} + +func TestIsOvercommitAllowed(t *testing.T) { + testCases := []struct { + resourceName v1.ResourceName + expectVal bool + }{ + { + resourceName: "pod.alpha.kubernetes.io/opaque-int-resource-foo", + expectVal: true, + }, + { + resourceName: "kubernetes.io/resource-foo", + expectVal: true, + }, + { + resourceName: "alpha.kubernetes.io/nvidia-gpu", + expectVal: false, + }, + { + resourceName: "hugepages-100m", + expectVal: false, + }, + { + resourceName: "", + expectVal: true, + }, + } + + for _, tc := range testCases { + tc := tc + t.Run(fmt.Sprintf("resourceName input=%s, expected value=%v", tc.resourceName, tc.expectVal), func(t *testing.T) { + t.Parallel() + v := IsOvercommitAllowed(tc.resourceName) + if v != tc.expectVal { + t.Errorf("Got %v but expected %v", v, tc.expectVal) + } + }) + } +} func TestIsOpaqueIntResourceName(t *testing.T) { // resourceName input with the correct OpaqueIntResourceName prefix ("pod.alpha.kubernetes.io/opaque-int-resource-") should pass testCases := []struct { resourceName v1.ResourceName diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/qos/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/qos/BUILD similarity index 74% rename from vendor/k8s.io/kubernetes/pkg/api/v1/helper/qos/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/qos/BUILD index b2bd4319d..d29fcf09e 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/qos/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/qos/BUILD @@ -9,12 +9,12 @@ load( go_test( name = "go_default_test", srcs = ["qos_test.go"], - importpath = "k8s.io/kubernetes/pkg/api/v1/helper/qos", + importpath = "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper/qos:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper/qos:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -24,9 +24,9 @@ go_test( go_library( name = "go_default_library", srcs = ["qos.go"], - importpath = "k8s.io/kubernetes/pkg/api/v1/helper/qos", + importpath = "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/qos/qos.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/qos/qos.go similarity index 98% rename from vendor/k8s.io/kubernetes/pkg/api/v1/helper/qos/qos.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/qos/qos.go index 2fc7f2285..5e9dbdd74 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/qos/qos.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/qos/qos.go @@ -20,7 +20,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/sets" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" ) // QOSList is a set of (resource name, QoS class) pairs. diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/qos/qos_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/qos/qos_test.go similarity index 94% rename from vendor/k8s.io/kubernetes/pkg/api/v1/helper/qos/qos_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/qos/qos_test.go index a48387c3d..7d14b519e 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/helper/qos/qos_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/helper/qos/qos_test.go @@ -22,9 +22,9 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper/qos" - k8sv1 "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper/qos" + corev1 "k8s.io/kubernetes/pkg/apis/core/v1" ) func TestGetPodQOS(t *testing.T) { @@ -142,11 +142,11 @@ func TestGetPodQOS(t *testing.T) { t.Errorf("[%d]: invalid qos pod %s, expected: %s, actual: %s", id, testCase.pod.Name, testCase.expected, actual) } - // Convert v1.Pod to api.Pod, and then check against `api.helper.GetPodQOS`. - pod := api.Pod{} - k8sv1.Convert_v1_Pod_To_api_Pod(testCase.pod, &pod, nil) + // Convert v1.Pod to core.Pod, and then check against `core.helper.GetPodQOS`. + pod := core.Pod{} + corev1.Convert_v1_Pod_To_core_Pod(testCase.pod, &pod, nil) - if actual := qos.GetPodQOS(&pod); api.PodQOSClass(testCase.expected) != actual { + if actual := qos.GetPodQOS(&pod); core.PodQOSClass(testCase.expected) != actual { t.Errorf("[%d]: conversion invalid qos pod %s, expected: %s, actual: %s", id, testCase.pod.Name, testCase.expected, actual) } } diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/register.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/register.go similarity index 100% rename from vendor/k8s.io/kubernetes/pkg/api/v1/register.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/register.go diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/validation/BUILD similarity index 83% rename from vendor/k8s.io/kubernetes/pkg/api/v1/validation/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/validation/BUILD index 00ef46513..2a205f980 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/validation/BUILD @@ -9,10 +9,10 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - importpath = "k8s.io/kubernetes/pkg/api/v1/validation", + importpath = "k8s.io/kubernetes/pkg/apis/core/v1/validation", deps = [ - "//pkg/api/helper:go_default_library", - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -38,7 +38,7 @@ filegroup( go_test( name = "go_default_test", srcs = ["validation_test.go"], - importpath = "k8s.io/kubernetes/pkg/api/v1/validation", + importpath = "k8s.io/kubernetes/pkg/apis/core/v1/validation", library = ":go_default_library", deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/validation/validation.go similarity index 98% rename from vendor/k8s.io/kubernetes/pkg/api/v1/validation/validation.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/validation/validation.go index 109054f80..3f80c6090 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/validation/validation.go @@ -27,8 +27,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api/helper" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + "k8s.io/kubernetes/pkg/apis/core/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" ) const isNegativeErrorMsg string = `must be greater than or equal to 0` diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/validation/validation_test.go similarity index 100% rename from vendor/k8s.io/kubernetes/pkg/api/v1/validation/validation_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/validation/validation_test.go diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go new file mode 100644 index 000000000..22f7487db --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.conversion.go @@ -0,0 +1,5430 @@ +// +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 conversion-gen. Do not edit it manually! + +package v1 + +import ( + v1 "k8s.io/api/core/v1" + resource "k8s.io/apimachinery/pkg/api/resource" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + types "k8s.io/apimachinery/pkg/types" + core "k8s.io/kubernetes/pkg/apis/core" + unsafe "unsafe" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource, + Convert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource, + Convert_v1_Affinity_To_core_Affinity, + Convert_core_Affinity_To_v1_Affinity, + Convert_v1_AttachedVolume_To_core_AttachedVolume, + Convert_core_AttachedVolume_To_v1_AttachedVolume, + Convert_v1_AvoidPods_To_core_AvoidPods, + Convert_core_AvoidPods_To_v1_AvoidPods, + Convert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource, + Convert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource, + Convert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource, + Convert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource, + Convert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource, + Convert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource, + Convert_v1_Binding_To_core_Binding, + Convert_core_Binding_To_v1_Binding, + Convert_v1_Capabilities_To_core_Capabilities, + Convert_core_Capabilities_To_v1_Capabilities, + Convert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource, + Convert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource, + Convert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource, + Convert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource, + Convert_v1_CinderVolumeSource_To_core_CinderVolumeSource, + Convert_core_CinderVolumeSource_To_v1_CinderVolumeSource, + Convert_v1_ClientIPConfig_To_core_ClientIPConfig, + Convert_core_ClientIPConfig_To_v1_ClientIPConfig, + Convert_v1_ComponentCondition_To_core_ComponentCondition, + Convert_core_ComponentCondition_To_v1_ComponentCondition, + Convert_v1_ComponentStatus_To_core_ComponentStatus, + Convert_core_ComponentStatus_To_v1_ComponentStatus, + Convert_v1_ComponentStatusList_To_core_ComponentStatusList, + Convert_core_ComponentStatusList_To_v1_ComponentStatusList, + Convert_v1_ConfigMap_To_core_ConfigMap, + Convert_core_ConfigMap_To_v1_ConfigMap, + Convert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource, + Convert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource, + Convert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector, + Convert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector, + Convert_v1_ConfigMapList_To_core_ConfigMapList, + Convert_core_ConfigMapList_To_v1_ConfigMapList, + Convert_v1_ConfigMapProjection_To_core_ConfigMapProjection, + Convert_core_ConfigMapProjection_To_v1_ConfigMapProjection, + Convert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource, + Convert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource, + Convert_v1_Container_To_core_Container, + Convert_core_Container_To_v1_Container, + Convert_v1_ContainerImage_To_core_ContainerImage, + Convert_core_ContainerImage_To_v1_ContainerImage, + Convert_v1_ContainerPort_To_core_ContainerPort, + Convert_core_ContainerPort_To_v1_ContainerPort, + Convert_v1_ContainerState_To_core_ContainerState, + Convert_core_ContainerState_To_v1_ContainerState, + Convert_v1_ContainerStateRunning_To_core_ContainerStateRunning, + Convert_core_ContainerStateRunning_To_v1_ContainerStateRunning, + Convert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated, + Convert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated, + Convert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting, + Convert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting, + Convert_v1_ContainerStatus_To_core_ContainerStatus, + Convert_core_ContainerStatus_To_v1_ContainerStatus, + Convert_v1_DaemonEndpoint_To_core_DaemonEndpoint, + Convert_core_DaemonEndpoint_To_v1_DaemonEndpoint, + Convert_v1_DeleteOptions_To_core_DeleteOptions, + Convert_core_DeleteOptions_To_v1_DeleteOptions, + Convert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection, + Convert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection, + Convert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile, + Convert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile, + Convert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource, + Convert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource, + Convert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource, + Convert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource, + Convert_v1_EndpointAddress_To_core_EndpointAddress, + Convert_core_EndpointAddress_To_v1_EndpointAddress, + Convert_v1_EndpointPort_To_core_EndpointPort, + Convert_core_EndpointPort_To_v1_EndpointPort, + Convert_v1_EndpointSubset_To_core_EndpointSubset, + Convert_core_EndpointSubset_To_v1_EndpointSubset, + Convert_v1_Endpoints_To_core_Endpoints, + Convert_core_Endpoints_To_v1_Endpoints, + Convert_v1_EndpointsList_To_core_EndpointsList, + Convert_core_EndpointsList_To_v1_EndpointsList, + Convert_v1_EnvFromSource_To_core_EnvFromSource, + Convert_core_EnvFromSource_To_v1_EnvFromSource, + Convert_v1_EnvVar_To_core_EnvVar, + Convert_core_EnvVar_To_v1_EnvVar, + Convert_v1_EnvVarSource_To_core_EnvVarSource, + Convert_core_EnvVarSource_To_v1_EnvVarSource, + Convert_v1_Event_To_core_Event, + Convert_core_Event_To_v1_Event, + Convert_v1_EventList_To_core_EventList, + Convert_core_EventList_To_v1_EventList, + Convert_v1_EventSource_To_core_EventSource, + Convert_core_EventSource_To_v1_EventSource, + Convert_v1_ExecAction_To_core_ExecAction, + Convert_core_ExecAction_To_v1_ExecAction, + Convert_v1_FCVolumeSource_To_core_FCVolumeSource, + Convert_core_FCVolumeSource_To_v1_FCVolumeSource, + Convert_v1_FlexVolumeSource_To_core_FlexVolumeSource, + Convert_core_FlexVolumeSource_To_v1_FlexVolumeSource, + Convert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource, + Convert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource, + Convert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource, + Convert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource, + Convert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource, + Convert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource, + Convert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource, + Convert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource, + Convert_v1_HTTPGetAction_To_core_HTTPGetAction, + Convert_core_HTTPGetAction_To_v1_HTTPGetAction, + Convert_v1_HTTPHeader_To_core_HTTPHeader, + Convert_core_HTTPHeader_To_v1_HTTPHeader, + Convert_v1_Handler_To_core_Handler, + Convert_core_Handler_To_v1_Handler, + Convert_v1_HostAlias_To_core_HostAlias, + Convert_core_HostAlias_To_v1_HostAlias, + Convert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource, + Convert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource, + Convert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource, + Convert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource, + Convert_v1_KeyToPath_To_core_KeyToPath, + Convert_core_KeyToPath_To_v1_KeyToPath, + Convert_v1_Lifecycle_To_core_Lifecycle, + Convert_core_Lifecycle_To_v1_Lifecycle, + Convert_v1_LimitRange_To_core_LimitRange, + Convert_core_LimitRange_To_v1_LimitRange, + Convert_v1_LimitRangeItem_To_core_LimitRangeItem, + Convert_core_LimitRangeItem_To_v1_LimitRangeItem, + Convert_v1_LimitRangeList_To_core_LimitRangeList, + Convert_core_LimitRangeList_To_v1_LimitRangeList, + Convert_v1_LimitRangeSpec_To_core_LimitRangeSpec, + Convert_core_LimitRangeSpec_To_v1_LimitRangeSpec, + Convert_v1_List_To_core_List, + Convert_core_List_To_v1_List, + Convert_v1_ListOptions_To_core_ListOptions, + Convert_core_ListOptions_To_v1_ListOptions, + Convert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress, + Convert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress, + Convert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus, + Convert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus, + Convert_v1_LocalObjectReference_To_core_LocalObjectReference, + Convert_core_LocalObjectReference_To_v1_LocalObjectReference, + Convert_v1_LocalVolumeSource_To_core_LocalVolumeSource, + Convert_core_LocalVolumeSource_To_v1_LocalVolumeSource, + Convert_v1_NFSVolumeSource_To_core_NFSVolumeSource, + Convert_core_NFSVolumeSource_To_v1_NFSVolumeSource, + Convert_v1_Namespace_To_core_Namespace, + Convert_core_Namespace_To_v1_Namespace, + Convert_v1_NamespaceList_To_core_NamespaceList, + Convert_core_NamespaceList_To_v1_NamespaceList, + Convert_v1_NamespaceSpec_To_core_NamespaceSpec, + Convert_core_NamespaceSpec_To_v1_NamespaceSpec, + Convert_v1_NamespaceStatus_To_core_NamespaceStatus, + Convert_core_NamespaceStatus_To_v1_NamespaceStatus, + Convert_v1_Node_To_core_Node, + Convert_core_Node_To_v1_Node, + Convert_v1_NodeAddress_To_core_NodeAddress, + Convert_core_NodeAddress_To_v1_NodeAddress, + Convert_v1_NodeAffinity_To_core_NodeAffinity, + Convert_core_NodeAffinity_To_v1_NodeAffinity, + Convert_v1_NodeCondition_To_core_NodeCondition, + Convert_core_NodeCondition_To_v1_NodeCondition, + Convert_v1_NodeConfigSource_To_core_NodeConfigSource, + Convert_core_NodeConfigSource_To_v1_NodeConfigSource, + Convert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints, + Convert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints, + Convert_v1_NodeList_To_core_NodeList, + Convert_core_NodeList_To_v1_NodeList, + Convert_v1_NodeProxyOptions_To_core_NodeProxyOptions, + Convert_core_NodeProxyOptions_To_v1_NodeProxyOptions, + Convert_v1_NodeResources_To_core_NodeResources, + Convert_core_NodeResources_To_v1_NodeResources, + Convert_v1_NodeSelector_To_core_NodeSelector, + Convert_core_NodeSelector_To_v1_NodeSelector, + Convert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement, + Convert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement, + Convert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm, + Convert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm, + Convert_v1_NodeSpec_To_core_NodeSpec, + Convert_core_NodeSpec_To_v1_NodeSpec, + Convert_v1_NodeStatus_To_core_NodeStatus, + Convert_core_NodeStatus_To_v1_NodeStatus, + Convert_v1_NodeSystemInfo_To_core_NodeSystemInfo, + Convert_core_NodeSystemInfo_To_v1_NodeSystemInfo, + Convert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector, + Convert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector, + Convert_v1_ObjectMeta_To_core_ObjectMeta, + Convert_core_ObjectMeta_To_v1_ObjectMeta, + Convert_v1_ObjectReference_To_core_ObjectReference, + Convert_core_ObjectReference_To_v1_ObjectReference, + Convert_v1_PersistentVolume_To_core_PersistentVolume, + Convert_core_PersistentVolume_To_v1_PersistentVolume, + Convert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim, + Convert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim, + Convert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition, + Convert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition, + Convert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList, + Convert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList, + Convert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec, + Convert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec, + Convert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus, + Convert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus, + Convert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource, + Convert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource, + Convert_v1_PersistentVolumeList_To_core_PersistentVolumeList, + Convert_core_PersistentVolumeList_To_v1_PersistentVolumeList, + Convert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource, + Convert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource, + Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec, + Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec, + Convert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus, + Convert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus, + Convert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource, + Convert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource, + Convert_v1_Pod_To_core_Pod, + Convert_core_Pod_To_v1_Pod, + Convert_v1_PodAffinity_To_core_PodAffinity, + Convert_core_PodAffinity_To_v1_PodAffinity, + Convert_v1_PodAffinityTerm_To_core_PodAffinityTerm, + Convert_core_PodAffinityTerm_To_v1_PodAffinityTerm, + Convert_v1_PodAntiAffinity_To_core_PodAntiAffinity, + Convert_core_PodAntiAffinity_To_v1_PodAntiAffinity, + Convert_v1_PodAttachOptions_To_core_PodAttachOptions, + Convert_core_PodAttachOptions_To_v1_PodAttachOptions, + Convert_v1_PodCondition_To_core_PodCondition, + Convert_core_PodCondition_To_v1_PodCondition, + Convert_v1_PodExecOptions_To_core_PodExecOptions, + Convert_core_PodExecOptions_To_v1_PodExecOptions, + Convert_v1_PodList_To_core_PodList, + Convert_core_PodList_To_v1_PodList, + Convert_v1_PodLogOptions_To_core_PodLogOptions, + Convert_core_PodLogOptions_To_v1_PodLogOptions, + Convert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions, + Convert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions, + Convert_v1_PodProxyOptions_To_core_PodProxyOptions, + Convert_core_PodProxyOptions_To_v1_PodProxyOptions, + Convert_v1_PodSecurityContext_To_core_PodSecurityContext, + Convert_core_PodSecurityContext_To_v1_PodSecurityContext, + Convert_v1_PodSignature_To_core_PodSignature, + Convert_core_PodSignature_To_v1_PodSignature, + Convert_v1_PodSpec_To_core_PodSpec, + Convert_core_PodSpec_To_v1_PodSpec, + Convert_v1_PodStatus_To_core_PodStatus, + Convert_core_PodStatus_To_v1_PodStatus, + Convert_v1_PodStatusResult_To_core_PodStatusResult, + Convert_core_PodStatusResult_To_v1_PodStatusResult, + Convert_v1_PodTemplate_To_core_PodTemplate, + Convert_core_PodTemplate_To_v1_PodTemplate, + Convert_v1_PodTemplateList_To_core_PodTemplateList, + Convert_core_PodTemplateList_To_v1_PodTemplateList, + Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec, + Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec, + Convert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource, + Convert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource, + Convert_v1_Preconditions_To_core_Preconditions, + Convert_core_Preconditions_To_v1_Preconditions, + Convert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry, + Convert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry, + Convert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm, + Convert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm, + Convert_v1_Probe_To_core_Probe, + Convert_core_Probe_To_v1_Probe, + Convert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource, + Convert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource, + Convert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource, + Convert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource, + Convert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource, + Convert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource, + Convert_v1_RBDVolumeSource_To_core_RBDVolumeSource, + Convert_core_RBDVolumeSource_To_v1_RBDVolumeSource, + Convert_v1_RangeAllocation_To_core_RangeAllocation, + Convert_core_RangeAllocation_To_v1_RangeAllocation, + Convert_v1_ReplicationController_To_core_ReplicationController, + Convert_core_ReplicationController_To_v1_ReplicationController, + Convert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition, + Convert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition, + Convert_v1_ReplicationControllerList_To_core_ReplicationControllerList, + Convert_core_ReplicationControllerList_To_v1_ReplicationControllerList, + Convert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec, + Convert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec, + Convert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus, + Convert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus, + Convert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector, + Convert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector, + Convert_v1_ResourceQuota_To_core_ResourceQuota, + Convert_core_ResourceQuota_To_v1_ResourceQuota, + Convert_v1_ResourceQuotaList_To_core_ResourceQuotaList, + Convert_core_ResourceQuotaList_To_v1_ResourceQuotaList, + Convert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec, + Convert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec, + Convert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus, + Convert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus, + Convert_v1_ResourceRequirements_To_core_ResourceRequirements, + Convert_core_ResourceRequirements_To_v1_ResourceRequirements, + Convert_v1_SELinuxOptions_To_core_SELinuxOptions, + Convert_core_SELinuxOptions_To_v1_SELinuxOptions, + Convert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource, + Convert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource, + Convert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource, + Convert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource, + Convert_v1_Secret_To_core_Secret, + Convert_core_Secret_To_v1_Secret, + Convert_v1_SecretEnvSource_To_core_SecretEnvSource, + Convert_core_SecretEnvSource_To_v1_SecretEnvSource, + Convert_v1_SecretKeySelector_To_core_SecretKeySelector, + Convert_core_SecretKeySelector_To_v1_SecretKeySelector, + Convert_v1_SecretList_To_core_SecretList, + Convert_core_SecretList_To_v1_SecretList, + Convert_v1_SecretProjection_To_core_SecretProjection, + Convert_core_SecretProjection_To_v1_SecretProjection, + Convert_v1_SecretReference_To_core_SecretReference, + Convert_core_SecretReference_To_v1_SecretReference, + Convert_v1_SecretVolumeSource_To_core_SecretVolumeSource, + Convert_core_SecretVolumeSource_To_v1_SecretVolumeSource, + Convert_v1_SecurityContext_To_core_SecurityContext, + Convert_core_SecurityContext_To_v1_SecurityContext, + Convert_v1_SerializedReference_To_core_SerializedReference, + Convert_core_SerializedReference_To_v1_SerializedReference, + Convert_v1_Service_To_core_Service, + Convert_core_Service_To_v1_Service, + Convert_v1_ServiceAccount_To_core_ServiceAccount, + Convert_core_ServiceAccount_To_v1_ServiceAccount, + Convert_v1_ServiceAccountList_To_core_ServiceAccountList, + Convert_core_ServiceAccountList_To_v1_ServiceAccountList, + Convert_v1_ServiceList_To_core_ServiceList, + Convert_core_ServiceList_To_v1_ServiceList, + Convert_v1_ServicePort_To_core_ServicePort, + Convert_core_ServicePort_To_v1_ServicePort, + Convert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions, + Convert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions, + Convert_v1_ServiceSpec_To_core_ServiceSpec, + Convert_core_ServiceSpec_To_v1_ServiceSpec, + Convert_v1_ServiceStatus_To_core_ServiceStatus, + Convert_core_ServiceStatus_To_v1_ServiceStatus, + Convert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig, + Convert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig, + Convert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource, + Convert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource, + Convert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource, + Convert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource, + Convert_v1_Sysctl_To_core_Sysctl, + Convert_core_Sysctl_To_v1_Sysctl, + Convert_v1_TCPSocketAction_To_core_TCPSocketAction, + Convert_core_TCPSocketAction_To_v1_TCPSocketAction, + Convert_v1_Taint_To_core_Taint, + Convert_core_Taint_To_v1_Taint, + Convert_v1_Toleration_To_core_Toleration, + Convert_core_Toleration_To_v1_Toleration, + Convert_v1_Volume_To_core_Volume, + Convert_core_Volume_To_v1_Volume, + Convert_v1_VolumeMount_To_core_VolumeMount, + Convert_core_VolumeMount_To_v1_VolumeMount, + Convert_v1_VolumeProjection_To_core_VolumeProjection, + Convert_core_VolumeProjection_To_v1_VolumeProjection, + Convert_v1_VolumeSource_To_core_VolumeSource, + Convert_core_VolumeSource_To_v1_VolumeSource, + Convert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource, + Convert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource, + Convert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm, + Convert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm, + ) +} + +func autoConvert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource(in *v1.AWSElasticBlockStoreVolumeSource, out *core.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error { + out.VolumeID = in.VolumeID + out.FSType = in.FSType + out.Partition = in.Partition + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource is an autogenerated conversion function. +func Convert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource(in *v1.AWSElasticBlockStoreVolumeSource, out *core.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error { + return autoConvert_v1_AWSElasticBlockStoreVolumeSource_To_core_AWSElasticBlockStoreVolumeSource(in, out, s) +} + +func autoConvert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource(in *core.AWSElasticBlockStoreVolumeSource, out *v1.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error { + out.VolumeID = in.VolumeID + out.FSType = in.FSType + out.Partition = in.Partition + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource is an autogenerated conversion function. +func Convert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource(in *core.AWSElasticBlockStoreVolumeSource, out *v1.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error { + return autoConvert_core_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource(in, out, s) +} + +func autoConvert_v1_Affinity_To_core_Affinity(in *v1.Affinity, out *core.Affinity, s conversion.Scope) error { + out.NodeAffinity = (*core.NodeAffinity)(unsafe.Pointer(in.NodeAffinity)) + out.PodAffinity = (*core.PodAffinity)(unsafe.Pointer(in.PodAffinity)) + out.PodAntiAffinity = (*core.PodAntiAffinity)(unsafe.Pointer(in.PodAntiAffinity)) + return nil +} + +// Convert_v1_Affinity_To_core_Affinity is an autogenerated conversion function. +func Convert_v1_Affinity_To_core_Affinity(in *v1.Affinity, out *core.Affinity, s conversion.Scope) error { + return autoConvert_v1_Affinity_To_core_Affinity(in, out, s) +} + +func autoConvert_core_Affinity_To_v1_Affinity(in *core.Affinity, out *v1.Affinity, s conversion.Scope) error { + out.NodeAffinity = (*v1.NodeAffinity)(unsafe.Pointer(in.NodeAffinity)) + out.PodAffinity = (*v1.PodAffinity)(unsafe.Pointer(in.PodAffinity)) + out.PodAntiAffinity = (*v1.PodAntiAffinity)(unsafe.Pointer(in.PodAntiAffinity)) + return nil +} + +// Convert_core_Affinity_To_v1_Affinity is an autogenerated conversion function. +func Convert_core_Affinity_To_v1_Affinity(in *core.Affinity, out *v1.Affinity, s conversion.Scope) error { + return autoConvert_core_Affinity_To_v1_Affinity(in, out, s) +} + +func autoConvert_v1_AttachedVolume_To_core_AttachedVolume(in *v1.AttachedVolume, out *core.AttachedVolume, s conversion.Scope) error { + out.Name = core.UniqueVolumeName(in.Name) + out.DevicePath = in.DevicePath + return nil +} + +// Convert_v1_AttachedVolume_To_core_AttachedVolume is an autogenerated conversion function. +func Convert_v1_AttachedVolume_To_core_AttachedVolume(in *v1.AttachedVolume, out *core.AttachedVolume, s conversion.Scope) error { + return autoConvert_v1_AttachedVolume_To_core_AttachedVolume(in, out, s) +} + +func autoConvert_core_AttachedVolume_To_v1_AttachedVolume(in *core.AttachedVolume, out *v1.AttachedVolume, s conversion.Scope) error { + out.Name = v1.UniqueVolumeName(in.Name) + out.DevicePath = in.DevicePath + return nil +} + +// Convert_core_AttachedVolume_To_v1_AttachedVolume is an autogenerated conversion function. +func Convert_core_AttachedVolume_To_v1_AttachedVolume(in *core.AttachedVolume, out *v1.AttachedVolume, s conversion.Scope) error { + return autoConvert_core_AttachedVolume_To_v1_AttachedVolume(in, out, s) +} + +func autoConvert_v1_AvoidPods_To_core_AvoidPods(in *v1.AvoidPods, out *core.AvoidPods, s conversion.Scope) error { + out.PreferAvoidPods = *(*[]core.PreferAvoidPodsEntry)(unsafe.Pointer(&in.PreferAvoidPods)) + return nil +} + +// Convert_v1_AvoidPods_To_core_AvoidPods is an autogenerated conversion function. +func Convert_v1_AvoidPods_To_core_AvoidPods(in *v1.AvoidPods, out *core.AvoidPods, s conversion.Scope) error { + return autoConvert_v1_AvoidPods_To_core_AvoidPods(in, out, s) +} + +func autoConvert_core_AvoidPods_To_v1_AvoidPods(in *core.AvoidPods, out *v1.AvoidPods, s conversion.Scope) error { + out.PreferAvoidPods = *(*[]v1.PreferAvoidPodsEntry)(unsafe.Pointer(&in.PreferAvoidPods)) + return nil +} + +// Convert_core_AvoidPods_To_v1_AvoidPods is an autogenerated conversion function. +func Convert_core_AvoidPods_To_v1_AvoidPods(in *core.AvoidPods, out *v1.AvoidPods, s conversion.Scope) error { + return autoConvert_core_AvoidPods_To_v1_AvoidPods(in, out, s) +} + +func autoConvert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource(in *v1.AzureDiskVolumeSource, out *core.AzureDiskVolumeSource, s conversion.Scope) error { + out.DiskName = in.DiskName + out.DataDiskURI = in.DataDiskURI + out.CachingMode = (*core.AzureDataDiskCachingMode)(unsafe.Pointer(in.CachingMode)) + out.FSType = (*string)(unsafe.Pointer(in.FSType)) + out.ReadOnly = (*bool)(unsafe.Pointer(in.ReadOnly)) + out.Kind = (*core.AzureDataDiskKind)(unsafe.Pointer(in.Kind)) + return nil +} + +// Convert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource is an autogenerated conversion function. +func Convert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource(in *v1.AzureDiskVolumeSource, out *core.AzureDiskVolumeSource, s conversion.Scope) error { + return autoConvert_v1_AzureDiskVolumeSource_To_core_AzureDiskVolumeSource(in, out, s) +} + +func autoConvert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in *core.AzureDiskVolumeSource, out *v1.AzureDiskVolumeSource, s conversion.Scope) error { + out.DiskName = in.DiskName + out.DataDiskURI = in.DataDiskURI + out.CachingMode = (*v1.AzureDataDiskCachingMode)(unsafe.Pointer(in.CachingMode)) + out.FSType = (*string)(unsafe.Pointer(in.FSType)) + out.ReadOnly = (*bool)(unsafe.Pointer(in.ReadOnly)) + out.Kind = (*v1.AzureDataDiskKind)(unsafe.Pointer(in.Kind)) + return nil +} + +// Convert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource is an autogenerated conversion function. +func Convert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in *core.AzureDiskVolumeSource, out *v1.AzureDiskVolumeSource, s conversion.Scope) error { + return autoConvert_core_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in, out, s) +} + +func autoConvert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource(in *v1.AzureFilePersistentVolumeSource, out *core.AzureFilePersistentVolumeSource, s conversion.Scope) error { + out.SecretName = in.SecretName + out.ShareName = in.ShareName + out.ReadOnly = in.ReadOnly + out.SecretNamespace = (*string)(unsafe.Pointer(in.SecretNamespace)) + return nil +} + +// Convert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource is an autogenerated conversion function. +func Convert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource(in *v1.AzureFilePersistentVolumeSource, out *core.AzureFilePersistentVolumeSource, s conversion.Scope) error { + return autoConvert_v1_AzureFilePersistentVolumeSource_To_core_AzureFilePersistentVolumeSource(in, out, s) +} + +func autoConvert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in *core.AzureFilePersistentVolumeSource, out *v1.AzureFilePersistentVolumeSource, s conversion.Scope) error { + out.SecretName = in.SecretName + out.ShareName = in.ShareName + out.ReadOnly = in.ReadOnly + out.SecretNamespace = (*string)(unsafe.Pointer(in.SecretNamespace)) + return nil +} + +// Convert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource is an autogenerated conversion function. +func Convert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in *core.AzureFilePersistentVolumeSource, out *v1.AzureFilePersistentVolumeSource, s conversion.Scope) error { + return autoConvert_core_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in, out, s) +} + +func autoConvert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource(in *v1.AzureFileVolumeSource, out *core.AzureFileVolumeSource, s conversion.Scope) error { + out.SecretName = in.SecretName + out.ShareName = in.ShareName + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource is an autogenerated conversion function. +func Convert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource(in *v1.AzureFileVolumeSource, out *core.AzureFileVolumeSource, s conversion.Scope) error { + return autoConvert_v1_AzureFileVolumeSource_To_core_AzureFileVolumeSource(in, out, s) +} + +func autoConvert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource(in *core.AzureFileVolumeSource, out *v1.AzureFileVolumeSource, s conversion.Scope) error { + out.SecretName = in.SecretName + out.ShareName = in.ShareName + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource is an autogenerated conversion function. +func Convert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource(in *core.AzureFileVolumeSource, out *v1.AzureFileVolumeSource, s conversion.Scope) error { + return autoConvert_core_AzureFileVolumeSource_To_v1_AzureFileVolumeSource(in, out, s) +} + +func autoConvert_v1_Binding_To_core_Binding(in *v1.Binding, out *core.Binding, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_ObjectReference_To_core_ObjectReference(&in.Target, &out.Target, s); err != nil { + return err + } + return nil +} + +// Convert_v1_Binding_To_core_Binding is an autogenerated conversion function. +func Convert_v1_Binding_To_core_Binding(in *v1.Binding, out *core.Binding, s conversion.Scope) error { + return autoConvert_v1_Binding_To_core_Binding(in, out, s) +} + +func autoConvert_core_Binding_To_v1_Binding(in *core.Binding, out *v1.Binding, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_ObjectReference_To_v1_ObjectReference(&in.Target, &out.Target, s); err != nil { + return err + } + return nil +} + +// Convert_core_Binding_To_v1_Binding is an autogenerated conversion function. +func Convert_core_Binding_To_v1_Binding(in *core.Binding, out *v1.Binding, s conversion.Scope) error { + return autoConvert_core_Binding_To_v1_Binding(in, out, s) +} + +func autoConvert_v1_Capabilities_To_core_Capabilities(in *v1.Capabilities, out *core.Capabilities, s conversion.Scope) error { + out.Add = *(*[]core.Capability)(unsafe.Pointer(&in.Add)) + out.Drop = *(*[]core.Capability)(unsafe.Pointer(&in.Drop)) + return nil +} + +// Convert_v1_Capabilities_To_core_Capabilities is an autogenerated conversion function. +func Convert_v1_Capabilities_To_core_Capabilities(in *v1.Capabilities, out *core.Capabilities, s conversion.Scope) error { + return autoConvert_v1_Capabilities_To_core_Capabilities(in, out, s) +} + +func autoConvert_core_Capabilities_To_v1_Capabilities(in *core.Capabilities, out *v1.Capabilities, s conversion.Scope) error { + out.Add = *(*[]v1.Capability)(unsafe.Pointer(&in.Add)) + out.Drop = *(*[]v1.Capability)(unsafe.Pointer(&in.Drop)) + return nil +} + +// Convert_core_Capabilities_To_v1_Capabilities is an autogenerated conversion function. +func Convert_core_Capabilities_To_v1_Capabilities(in *core.Capabilities, out *v1.Capabilities, s conversion.Scope) error { + return autoConvert_core_Capabilities_To_v1_Capabilities(in, out, s) +} + +func autoConvert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource(in *v1.CephFSPersistentVolumeSource, out *core.CephFSPersistentVolumeSource, s conversion.Scope) error { + out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors)) + out.Path = in.Path + out.User = in.User + out.SecretFile = in.SecretFile + out.SecretRef = (*core.SecretReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource is an autogenerated conversion function. +func Convert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource(in *v1.CephFSPersistentVolumeSource, out *core.CephFSPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_v1_CephFSPersistentVolumeSource_To_core_CephFSPersistentVolumeSource(in, out, s) +} + +func autoConvert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource(in *core.CephFSPersistentVolumeSource, out *v1.CephFSPersistentVolumeSource, s conversion.Scope) error { + out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors)) + out.Path = in.Path + out.User = in.User + out.SecretFile = in.SecretFile + out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource is an autogenerated conversion function. +func Convert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource(in *core.CephFSPersistentVolumeSource, out *v1.CephFSPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_core_CephFSPersistentVolumeSource_To_v1_CephFSPersistentVolumeSource(in, out, s) +} + +func autoConvert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource(in *v1.CephFSVolumeSource, out *core.CephFSVolumeSource, s conversion.Scope) error { + out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors)) + out.Path = in.Path + out.User = in.User + out.SecretFile = in.SecretFile + out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource is an autogenerated conversion function. +func Convert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource(in *v1.CephFSVolumeSource, out *core.CephFSVolumeSource, s conversion.Scope) error { + return autoConvert_v1_CephFSVolumeSource_To_core_CephFSVolumeSource(in, out, s) +} + +func autoConvert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource(in *core.CephFSVolumeSource, out *v1.CephFSVolumeSource, s conversion.Scope) error { + out.Monitors = *(*[]string)(unsafe.Pointer(&in.Monitors)) + out.Path = in.Path + out.User = in.User + out.SecretFile = in.SecretFile + out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource is an autogenerated conversion function. +func Convert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource(in *core.CephFSVolumeSource, out *v1.CephFSVolumeSource, s conversion.Scope) error { + return autoConvert_core_CephFSVolumeSource_To_v1_CephFSVolumeSource(in, out, s) +} + +func autoConvert_v1_CinderVolumeSource_To_core_CinderVolumeSource(in *v1.CinderVolumeSource, out *core.CinderVolumeSource, s conversion.Scope) error { + out.VolumeID = in.VolumeID + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_CinderVolumeSource_To_core_CinderVolumeSource is an autogenerated conversion function. +func Convert_v1_CinderVolumeSource_To_core_CinderVolumeSource(in *v1.CinderVolumeSource, out *core.CinderVolumeSource, s conversion.Scope) error { + return autoConvert_v1_CinderVolumeSource_To_core_CinderVolumeSource(in, out, s) +} + +func autoConvert_core_CinderVolumeSource_To_v1_CinderVolumeSource(in *core.CinderVolumeSource, out *v1.CinderVolumeSource, s conversion.Scope) error { + out.VolumeID = in.VolumeID + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_CinderVolumeSource_To_v1_CinderVolumeSource is an autogenerated conversion function. +func Convert_core_CinderVolumeSource_To_v1_CinderVolumeSource(in *core.CinderVolumeSource, out *v1.CinderVolumeSource, s conversion.Scope) error { + return autoConvert_core_CinderVolumeSource_To_v1_CinderVolumeSource(in, out, s) +} + +func autoConvert_v1_ClientIPConfig_To_core_ClientIPConfig(in *v1.ClientIPConfig, out *core.ClientIPConfig, s conversion.Scope) error { + out.TimeoutSeconds = (*int32)(unsafe.Pointer(in.TimeoutSeconds)) + return nil +} + +// Convert_v1_ClientIPConfig_To_core_ClientIPConfig is an autogenerated conversion function. +func Convert_v1_ClientIPConfig_To_core_ClientIPConfig(in *v1.ClientIPConfig, out *core.ClientIPConfig, s conversion.Scope) error { + return autoConvert_v1_ClientIPConfig_To_core_ClientIPConfig(in, out, s) +} + +func autoConvert_core_ClientIPConfig_To_v1_ClientIPConfig(in *core.ClientIPConfig, out *v1.ClientIPConfig, s conversion.Scope) error { + out.TimeoutSeconds = (*int32)(unsafe.Pointer(in.TimeoutSeconds)) + return nil +} + +// Convert_core_ClientIPConfig_To_v1_ClientIPConfig is an autogenerated conversion function. +func Convert_core_ClientIPConfig_To_v1_ClientIPConfig(in *core.ClientIPConfig, out *v1.ClientIPConfig, s conversion.Scope) error { + return autoConvert_core_ClientIPConfig_To_v1_ClientIPConfig(in, out, s) +} + +func autoConvert_v1_ComponentCondition_To_core_ComponentCondition(in *v1.ComponentCondition, out *core.ComponentCondition, s conversion.Scope) error { + out.Type = core.ComponentConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.Message = in.Message + out.Error = in.Error + return nil +} + +// Convert_v1_ComponentCondition_To_core_ComponentCondition is an autogenerated conversion function. +func Convert_v1_ComponentCondition_To_core_ComponentCondition(in *v1.ComponentCondition, out *core.ComponentCondition, s conversion.Scope) error { + return autoConvert_v1_ComponentCondition_To_core_ComponentCondition(in, out, s) +} + +func autoConvert_core_ComponentCondition_To_v1_ComponentCondition(in *core.ComponentCondition, out *v1.ComponentCondition, s conversion.Scope) error { + out.Type = v1.ComponentConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.Message = in.Message + out.Error = in.Error + return nil +} + +// Convert_core_ComponentCondition_To_v1_ComponentCondition is an autogenerated conversion function. +func Convert_core_ComponentCondition_To_v1_ComponentCondition(in *core.ComponentCondition, out *v1.ComponentCondition, s conversion.Scope) error { + return autoConvert_core_ComponentCondition_To_v1_ComponentCondition(in, out, s) +} + +func autoConvert_v1_ComponentStatus_To_core_ComponentStatus(in *v1.ComponentStatus, out *core.ComponentStatus, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Conditions = *(*[]core.ComponentCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_v1_ComponentStatus_To_core_ComponentStatus is an autogenerated conversion function. +func Convert_v1_ComponentStatus_To_core_ComponentStatus(in *v1.ComponentStatus, out *core.ComponentStatus, s conversion.Scope) error { + return autoConvert_v1_ComponentStatus_To_core_ComponentStatus(in, out, s) +} + +func autoConvert_core_ComponentStatus_To_v1_ComponentStatus(in *core.ComponentStatus, out *v1.ComponentStatus, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Conditions = *(*[]v1.ComponentCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_core_ComponentStatus_To_v1_ComponentStatus is an autogenerated conversion function. +func Convert_core_ComponentStatus_To_v1_ComponentStatus(in *core.ComponentStatus, out *v1.ComponentStatus, s conversion.Scope) error { + return autoConvert_core_ComponentStatus_To_v1_ComponentStatus(in, out, s) +} + +func autoConvert_v1_ComponentStatusList_To_core_ComponentStatusList(in *v1.ComponentStatusList, out *core.ComponentStatusList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.ComponentStatus)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_ComponentStatusList_To_core_ComponentStatusList is an autogenerated conversion function. +func Convert_v1_ComponentStatusList_To_core_ComponentStatusList(in *v1.ComponentStatusList, out *core.ComponentStatusList, s conversion.Scope) error { + return autoConvert_v1_ComponentStatusList_To_core_ComponentStatusList(in, out, s) +} + +func autoConvert_core_ComponentStatusList_To_v1_ComponentStatusList(in *core.ComponentStatusList, out *v1.ComponentStatusList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.ComponentStatus)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_ComponentStatusList_To_v1_ComponentStatusList is an autogenerated conversion function. +func Convert_core_ComponentStatusList_To_v1_ComponentStatusList(in *core.ComponentStatusList, out *v1.ComponentStatusList, s conversion.Scope) error { + return autoConvert_core_ComponentStatusList_To_v1_ComponentStatusList(in, out, s) +} + +func autoConvert_v1_ConfigMap_To_core_ConfigMap(in *v1.ConfigMap, out *core.ConfigMap, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Data = *(*map[string]string)(unsafe.Pointer(&in.Data)) + return nil +} + +// Convert_v1_ConfigMap_To_core_ConfigMap is an autogenerated conversion function. +func Convert_v1_ConfigMap_To_core_ConfigMap(in *v1.ConfigMap, out *core.ConfigMap, s conversion.Scope) error { + return autoConvert_v1_ConfigMap_To_core_ConfigMap(in, out, s) +} + +func autoConvert_core_ConfigMap_To_v1_ConfigMap(in *core.ConfigMap, out *v1.ConfigMap, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Data = *(*map[string]string)(unsafe.Pointer(&in.Data)) + return nil +} + +// Convert_core_ConfigMap_To_v1_ConfigMap is an autogenerated conversion function. +func Convert_core_ConfigMap_To_v1_ConfigMap(in *core.ConfigMap, out *v1.ConfigMap, s conversion.Scope) error { + return autoConvert_core_ConfigMap_To_v1_ConfigMap(in, out, s) +} + +func autoConvert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource(in *v1.ConfigMapEnvSource, out *core.ConfigMapEnvSource, s conversion.Scope) error { + if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource is an autogenerated conversion function. +func Convert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource(in *v1.ConfigMapEnvSource, out *core.ConfigMapEnvSource, s conversion.Scope) error { + return autoConvert_v1_ConfigMapEnvSource_To_core_ConfigMapEnvSource(in, out, s) +} + +func autoConvert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource(in *core.ConfigMapEnvSource, out *v1.ConfigMapEnvSource, s conversion.Scope) error { + if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource is an autogenerated conversion function. +func Convert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource(in *core.ConfigMapEnvSource, out *v1.ConfigMapEnvSource, s conversion.Scope) error { + return autoConvert_core_ConfigMapEnvSource_To_v1_ConfigMapEnvSource(in, out, s) +} + +func autoConvert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector(in *v1.ConfigMapKeySelector, out *core.ConfigMapKeySelector, s conversion.Scope) error { + if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Key = in.Key + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector is an autogenerated conversion function. +func Convert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector(in *v1.ConfigMapKeySelector, out *core.ConfigMapKeySelector, s conversion.Scope) error { + return autoConvert_v1_ConfigMapKeySelector_To_core_ConfigMapKeySelector(in, out, s) +} + +func autoConvert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector(in *core.ConfigMapKeySelector, out *v1.ConfigMapKeySelector, s conversion.Scope) error { + if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Key = in.Key + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector is an autogenerated conversion function. +func Convert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector(in *core.ConfigMapKeySelector, out *v1.ConfigMapKeySelector, s conversion.Scope) error { + return autoConvert_core_ConfigMapKeySelector_To_v1_ConfigMapKeySelector(in, out, s) +} + +func autoConvert_v1_ConfigMapList_To_core_ConfigMapList(in *v1.ConfigMapList, out *core.ConfigMapList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.ConfigMap)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_ConfigMapList_To_core_ConfigMapList is an autogenerated conversion function. +func Convert_v1_ConfigMapList_To_core_ConfigMapList(in *v1.ConfigMapList, out *core.ConfigMapList, s conversion.Scope) error { + return autoConvert_v1_ConfigMapList_To_core_ConfigMapList(in, out, s) +} + +func autoConvert_core_ConfigMapList_To_v1_ConfigMapList(in *core.ConfigMapList, out *v1.ConfigMapList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.ConfigMap)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_ConfigMapList_To_v1_ConfigMapList is an autogenerated conversion function. +func Convert_core_ConfigMapList_To_v1_ConfigMapList(in *core.ConfigMapList, out *v1.ConfigMapList, s conversion.Scope) error { + return autoConvert_core_ConfigMapList_To_v1_ConfigMapList(in, out, s) +} + +func autoConvert_v1_ConfigMapProjection_To_core_ConfigMapProjection(in *v1.ConfigMapProjection, out *core.ConfigMapProjection, s conversion.Scope) error { + if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Items = *(*[]core.KeyToPath)(unsafe.Pointer(&in.Items)) + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_v1_ConfigMapProjection_To_core_ConfigMapProjection is an autogenerated conversion function. +func Convert_v1_ConfigMapProjection_To_core_ConfigMapProjection(in *v1.ConfigMapProjection, out *core.ConfigMapProjection, s conversion.Scope) error { + return autoConvert_v1_ConfigMapProjection_To_core_ConfigMapProjection(in, out, s) +} + +func autoConvert_core_ConfigMapProjection_To_v1_ConfigMapProjection(in *core.ConfigMapProjection, out *v1.ConfigMapProjection, s conversion.Scope) error { + if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items)) + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_core_ConfigMapProjection_To_v1_ConfigMapProjection is an autogenerated conversion function. +func Convert_core_ConfigMapProjection_To_v1_ConfigMapProjection(in *core.ConfigMapProjection, out *v1.ConfigMapProjection, s conversion.Scope) error { + return autoConvert_core_ConfigMapProjection_To_v1_ConfigMapProjection(in, out, s) +} + +func autoConvert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource(in *v1.ConfigMapVolumeSource, out *core.ConfigMapVolumeSource, s conversion.Scope) error { + if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Items = *(*[]core.KeyToPath)(unsafe.Pointer(&in.Items)) + out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource is an autogenerated conversion function. +func Convert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource(in *v1.ConfigMapVolumeSource, out *core.ConfigMapVolumeSource, s conversion.Scope) error { + return autoConvert_v1_ConfigMapVolumeSource_To_core_ConfigMapVolumeSource(in, out, s) +} + +func autoConvert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource(in *core.ConfigMapVolumeSource, out *v1.ConfigMapVolumeSource, s conversion.Scope) error { + if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items)) + out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource is an autogenerated conversion function. +func Convert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource(in *core.ConfigMapVolumeSource, out *v1.ConfigMapVolumeSource, s conversion.Scope) error { + return autoConvert_core_ConfigMapVolumeSource_To_v1_ConfigMapVolumeSource(in, out, s) +} + +func autoConvert_v1_Container_To_core_Container(in *v1.Container, out *core.Container, s conversion.Scope) error { + out.Name = in.Name + out.Image = in.Image + out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) + out.Args = *(*[]string)(unsafe.Pointer(&in.Args)) + out.WorkingDir = in.WorkingDir + out.Ports = *(*[]core.ContainerPort)(unsafe.Pointer(&in.Ports)) + out.EnvFrom = *(*[]core.EnvFromSource)(unsafe.Pointer(&in.EnvFrom)) + out.Env = *(*[]core.EnvVar)(unsafe.Pointer(&in.Env)) + if err := Convert_v1_ResourceRequirements_To_core_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil { + return err + } + out.VolumeMounts = *(*[]core.VolumeMount)(unsafe.Pointer(&in.VolumeMounts)) + out.LivenessProbe = (*core.Probe)(unsafe.Pointer(in.LivenessProbe)) + out.ReadinessProbe = (*core.Probe)(unsafe.Pointer(in.ReadinessProbe)) + out.Lifecycle = (*core.Lifecycle)(unsafe.Pointer(in.Lifecycle)) + out.TerminationMessagePath = in.TerminationMessagePath + out.TerminationMessagePolicy = core.TerminationMessagePolicy(in.TerminationMessagePolicy) + out.ImagePullPolicy = core.PullPolicy(in.ImagePullPolicy) + if in.SecurityContext != nil { + in, out := &in.SecurityContext, &out.SecurityContext + *out = new(core.SecurityContext) + if err := Convert_v1_SecurityContext_To_core_SecurityContext(*in, *out, s); err != nil { + return err + } + } else { + out.SecurityContext = nil + } + out.Stdin = in.Stdin + out.StdinOnce = in.StdinOnce + out.TTY = in.TTY + return nil +} + +// Convert_v1_Container_To_core_Container is an autogenerated conversion function. +func Convert_v1_Container_To_core_Container(in *v1.Container, out *core.Container, s conversion.Scope) error { + return autoConvert_v1_Container_To_core_Container(in, out, s) +} + +func autoConvert_core_Container_To_v1_Container(in *core.Container, out *v1.Container, s conversion.Scope) error { + out.Name = in.Name + out.Image = in.Image + out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) + out.Args = *(*[]string)(unsafe.Pointer(&in.Args)) + out.WorkingDir = in.WorkingDir + out.Ports = *(*[]v1.ContainerPort)(unsafe.Pointer(&in.Ports)) + out.EnvFrom = *(*[]v1.EnvFromSource)(unsafe.Pointer(&in.EnvFrom)) + out.Env = *(*[]v1.EnvVar)(unsafe.Pointer(&in.Env)) + if err := Convert_core_ResourceRequirements_To_v1_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil { + return err + } + out.VolumeMounts = *(*[]v1.VolumeMount)(unsafe.Pointer(&in.VolumeMounts)) + out.LivenessProbe = (*v1.Probe)(unsafe.Pointer(in.LivenessProbe)) + out.ReadinessProbe = (*v1.Probe)(unsafe.Pointer(in.ReadinessProbe)) + out.Lifecycle = (*v1.Lifecycle)(unsafe.Pointer(in.Lifecycle)) + out.TerminationMessagePath = in.TerminationMessagePath + out.TerminationMessagePolicy = v1.TerminationMessagePolicy(in.TerminationMessagePolicy) + out.ImagePullPolicy = v1.PullPolicy(in.ImagePullPolicy) + if in.SecurityContext != nil { + in, out := &in.SecurityContext, &out.SecurityContext + *out = new(v1.SecurityContext) + if err := Convert_core_SecurityContext_To_v1_SecurityContext(*in, *out, s); err != nil { + return err + } + } else { + out.SecurityContext = nil + } + out.Stdin = in.Stdin + out.StdinOnce = in.StdinOnce + out.TTY = in.TTY + return nil +} + +// Convert_core_Container_To_v1_Container is an autogenerated conversion function. +func Convert_core_Container_To_v1_Container(in *core.Container, out *v1.Container, s conversion.Scope) error { + return autoConvert_core_Container_To_v1_Container(in, out, s) +} + +func autoConvert_v1_ContainerImage_To_core_ContainerImage(in *v1.ContainerImage, out *core.ContainerImage, s conversion.Scope) error { + out.Names = *(*[]string)(unsafe.Pointer(&in.Names)) + out.SizeBytes = in.SizeBytes + return nil +} + +// Convert_v1_ContainerImage_To_core_ContainerImage is an autogenerated conversion function. +func Convert_v1_ContainerImage_To_core_ContainerImage(in *v1.ContainerImage, out *core.ContainerImage, s conversion.Scope) error { + return autoConvert_v1_ContainerImage_To_core_ContainerImage(in, out, s) +} + +func autoConvert_core_ContainerImage_To_v1_ContainerImage(in *core.ContainerImage, out *v1.ContainerImage, s conversion.Scope) error { + out.Names = *(*[]string)(unsafe.Pointer(&in.Names)) + out.SizeBytes = in.SizeBytes + return nil +} + +// Convert_core_ContainerImage_To_v1_ContainerImage is an autogenerated conversion function. +func Convert_core_ContainerImage_To_v1_ContainerImage(in *core.ContainerImage, out *v1.ContainerImage, s conversion.Scope) error { + return autoConvert_core_ContainerImage_To_v1_ContainerImage(in, out, s) +} + +func autoConvert_v1_ContainerPort_To_core_ContainerPort(in *v1.ContainerPort, out *core.ContainerPort, s conversion.Scope) error { + out.Name = in.Name + out.HostPort = in.HostPort + out.ContainerPort = in.ContainerPort + out.Protocol = core.Protocol(in.Protocol) + out.HostIP = in.HostIP + return nil +} + +// Convert_v1_ContainerPort_To_core_ContainerPort is an autogenerated conversion function. +func Convert_v1_ContainerPort_To_core_ContainerPort(in *v1.ContainerPort, out *core.ContainerPort, s conversion.Scope) error { + return autoConvert_v1_ContainerPort_To_core_ContainerPort(in, out, s) +} + +func autoConvert_core_ContainerPort_To_v1_ContainerPort(in *core.ContainerPort, out *v1.ContainerPort, s conversion.Scope) error { + out.Name = in.Name + out.HostPort = in.HostPort + out.ContainerPort = in.ContainerPort + out.Protocol = v1.Protocol(in.Protocol) + out.HostIP = in.HostIP + return nil +} + +// Convert_core_ContainerPort_To_v1_ContainerPort is an autogenerated conversion function. +func Convert_core_ContainerPort_To_v1_ContainerPort(in *core.ContainerPort, out *v1.ContainerPort, s conversion.Scope) error { + return autoConvert_core_ContainerPort_To_v1_ContainerPort(in, out, s) +} + +func autoConvert_v1_ContainerState_To_core_ContainerState(in *v1.ContainerState, out *core.ContainerState, s conversion.Scope) error { + out.Waiting = (*core.ContainerStateWaiting)(unsafe.Pointer(in.Waiting)) + out.Running = (*core.ContainerStateRunning)(unsafe.Pointer(in.Running)) + out.Terminated = (*core.ContainerStateTerminated)(unsafe.Pointer(in.Terminated)) + return nil +} + +// Convert_v1_ContainerState_To_core_ContainerState is an autogenerated conversion function. +func Convert_v1_ContainerState_To_core_ContainerState(in *v1.ContainerState, out *core.ContainerState, s conversion.Scope) error { + return autoConvert_v1_ContainerState_To_core_ContainerState(in, out, s) +} + +func autoConvert_core_ContainerState_To_v1_ContainerState(in *core.ContainerState, out *v1.ContainerState, s conversion.Scope) error { + out.Waiting = (*v1.ContainerStateWaiting)(unsafe.Pointer(in.Waiting)) + out.Running = (*v1.ContainerStateRunning)(unsafe.Pointer(in.Running)) + out.Terminated = (*v1.ContainerStateTerminated)(unsafe.Pointer(in.Terminated)) + return nil +} + +// Convert_core_ContainerState_To_v1_ContainerState is an autogenerated conversion function. +func Convert_core_ContainerState_To_v1_ContainerState(in *core.ContainerState, out *v1.ContainerState, s conversion.Scope) error { + return autoConvert_core_ContainerState_To_v1_ContainerState(in, out, s) +} + +func autoConvert_v1_ContainerStateRunning_To_core_ContainerStateRunning(in *v1.ContainerStateRunning, out *core.ContainerStateRunning, s conversion.Scope) error { + out.StartedAt = in.StartedAt + return nil +} + +// Convert_v1_ContainerStateRunning_To_core_ContainerStateRunning is an autogenerated conversion function. +func Convert_v1_ContainerStateRunning_To_core_ContainerStateRunning(in *v1.ContainerStateRunning, out *core.ContainerStateRunning, s conversion.Scope) error { + return autoConvert_v1_ContainerStateRunning_To_core_ContainerStateRunning(in, out, s) +} + +func autoConvert_core_ContainerStateRunning_To_v1_ContainerStateRunning(in *core.ContainerStateRunning, out *v1.ContainerStateRunning, s conversion.Scope) error { + out.StartedAt = in.StartedAt + return nil +} + +// Convert_core_ContainerStateRunning_To_v1_ContainerStateRunning is an autogenerated conversion function. +func Convert_core_ContainerStateRunning_To_v1_ContainerStateRunning(in *core.ContainerStateRunning, out *v1.ContainerStateRunning, s conversion.Scope) error { + return autoConvert_core_ContainerStateRunning_To_v1_ContainerStateRunning(in, out, s) +} + +func autoConvert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated(in *v1.ContainerStateTerminated, out *core.ContainerStateTerminated, s conversion.Scope) error { + out.ExitCode = in.ExitCode + out.Signal = in.Signal + out.Reason = in.Reason + out.Message = in.Message + out.StartedAt = in.StartedAt + out.FinishedAt = in.FinishedAt + out.ContainerID = in.ContainerID + return nil +} + +// Convert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated is an autogenerated conversion function. +func Convert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated(in *v1.ContainerStateTerminated, out *core.ContainerStateTerminated, s conversion.Scope) error { + return autoConvert_v1_ContainerStateTerminated_To_core_ContainerStateTerminated(in, out, s) +} + +func autoConvert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated(in *core.ContainerStateTerminated, out *v1.ContainerStateTerminated, s conversion.Scope) error { + out.ExitCode = in.ExitCode + out.Signal = in.Signal + out.Reason = in.Reason + out.Message = in.Message + out.StartedAt = in.StartedAt + out.FinishedAt = in.FinishedAt + out.ContainerID = in.ContainerID + return nil +} + +// Convert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated is an autogenerated conversion function. +func Convert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated(in *core.ContainerStateTerminated, out *v1.ContainerStateTerminated, s conversion.Scope) error { + return autoConvert_core_ContainerStateTerminated_To_v1_ContainerStateTerminated(in, out, s) +} + +func autoConvert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting(in *v1.ContainerStateWaiting, out *core.ContainerStateWaiting, s conversion.Scope) error { + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting is an autogenerated conversion function. +func Convert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting(in *v1.ContainerStateWaiting, out *core.ContainerStateWaiting, s conversion.Scope) error { + return autoConvert_v1_ContainerStateWaiting_To_core_ContainerStateWaiting(in, out, s) +} + +func autoConvert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting(in *core.ContainerStateWaiting, out *v1.ContainerStateWaiting, s conversion.Scope) error { + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting is an autogenerated conversion function. +func Convert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting(in *core.ContainerStateWaiting, out *v1.ContainerStateWaiting, s conversion.Scope) error { + return autoConvert_core_ContainerStateWaiting_To_v1_ContainerStateWaiting(in, out, s) +} + +func autoConvert_v1_ContainerStatus_To_core_ContainerStatus(in *v1.ContainerStatus, out *core.ContainerStatus, s conversion.Scope) error { + out.Name = in.Name + if err := Convert_v1_ContainerState_To_core_ContainerState(&in.State, &out.State, s); err != nil { + return err + } + if err := Convert_v1_ContainerState_To_core_ContainerState(&in.LastTerminationState, &out.LastTerminationState, s); err != nil { + return err + } + out.Ready = in.Ready + out.RestartCount = in.RestartCount + out.Image = in.Image + out.ImageID = in.ImageID + out.ContainerID = in.ContainerID + return nil +} + +// Convert_v1_ContainerStatus_To_core_ContainerStatus is an autogenerated conversion function. +func Convert_v1_ContainerStatus_To_core_ContainerStatus(in *v1.ContainerStatus, out *core.ContainerStatus, s conversion.Scope) error { + return autoConvert_v1_ContainerStatus_To_core_ContainerStatus(in, out, s) +} + +func autoConvert_core_ContainerStatus_To_v1_ContainerStatus(in *core.ContainerStatus, out *v1.ContainerStatus, s conversion.Scope) error { + out.Name = in.Name + if err := Convert_core_ContainerState_To_v1_ContainerState(&in.State, &out.State, s); err != nil { + return err + } + if err := Convert_core_ContainerState_To_v1_ContainerState(&in.LastTerminationState, &out.LastTerminationState, s); err != nil { + return err + } + out.Ready = in.Ready + out.RestartCount = in.RestartCount + out.Image = in.Image + out.ImageID = in.ImageID + out.ContainerID = in.ContainerID + return nil +} + +// Convert_core_ContainerStatus_To_v1_ContainerStatus is an autogenerated conversion function. +func Convert_core_ContainerStatus_To_v1_ContainerStatus(in *core.ContainerStatus, out *v1.ContainerStatus, s conversion.Scope) error { + return autoConvert_core_ContainerStatus_To_v1_ContainerStatus(in, out, s) +} + +func autoConvert_v1_DaemonEndpoint_To_core_DaemonEndpoint(in *v1.DaemonEndpoint, out *core.DaemonEndpoint, s conversion.Scope) error { + out.Port = in.Port + return nil +} + +// Convert_v1_DaemonEndpoint_To_core_DaemonEndpoint is an autogenerated conversion function. +func Convert_v1_DaemonEndpoint_To_core_DaemonEndpoint(in *v1.DaemonEndpoint, out *core.DaemonEndpoint, s conversion.Scope) error { + return autoConvert_v1_DaemonEndpoint_To_core_DaemonEndpoint(in, out, s) +} + +func autoConvert_core_DaemonEndpoint_To_v1_DaemonEndpoint(in *core.DaemonEndpoint, out *v1.DaemonEndpoint, s conversion.Scope) error { + out.Port = in.Port + return nil +} + +// Convert_core_DaemonEndpoint_To_v1_DaemonEndpoint is an autogenerated conversion function. +func Convert_core_DaemonEndpoint_To_v1_DaemonEndpoint(in *core.DaemonEndpoint, out *v1.DaemonEndpoint, s conversion.Scope) error { + return autoConvert_core_DaemonEndpoint_To_v1_DaemonEndpoint(in, out, s) +} + +func autoConvert_v1_DeleteOptions_To_core_DeleteOptions(in *v1.DeleteOptions, out *core.DeleteOptions, s conversion.Scope) error { + out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds)) + out.Preconditions = (*core.Preconditions)(unsafe.Pointer(in.Preconditions)) + out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents)) + out.PropagationPolicy = (*core.DeletionPropagation)(unsafe.Pointer(in.PropagationPolicy)) + return nil +} + +// Convert_v1_DeleteOptions_To_core_DeleteOptions is an autogenerated conversion function. +func Convert_v1_DeleteOptions_To_core_DeleteOptions(in *v1.DeleteOptions, out *core.DeleteOptions, s conversion.Scope) error { + return autoConvert_v1_DeleteOptions_To_core_DeleteOptions(in, out, s) +} + +func autoConvert_core_DeleteOptions_To_v1_DeleteOptions(in *core.DeleteOptions, out *v1.DeleteOptions, s conversion.Scope) error { + out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds)) + out.Preconditions = (*v1.Preconditions)(unsafe.Pointer(in.Preconditions)) + out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents)) + out.PropagationPolicy = (*v1.DeletionPropagation)(unsafe.Pointer(in.PropagationPolicy)) + return nil +} + +// Convert_core_DeleteOptions_To_v1_DeleteOptions is an autogenerated conversion function. +func Convert_core_DeleteOptions_To_v1_DeleteOptions(in *core.DeleteOptions, out *v1.DeleteOptions, s conversion.Scope) error { + return autoConvert_core_DeleteOptions_To_v1_DeleteOptions(in, out, s) +} + +func autoConvert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection(in *v1.DownwardAPIProjection, out *core.DownwardAPIProjection, s conversion.Scope) error { + out.Items = *(*[]core.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection is an autogenerated conversion function. +func Convert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection(in *v1.DownwardAPIProjection, out *core.DownwardAPIProjection, s conversion.Scope) error { + return autoConvert_v1_DownwardAPIProjection_To_core_DownwardAPIProjection(in, out, s) +} + +func autoConvert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection(in *core.DownwardAPIProjection, out *v1.DownwardAPIProjection, s conversion.Scope) error { + out.Items = *(*[]v1.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection is an autogenerated conversion function. +func Convert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection(in *core.DownwardAPIProjection, out *v1.DownwardAPIProjection, s conversion.Scope) error { + return autoConvert_core_DownwardAPIProjection_To_v1_DownwardAPIProjection(in, out, s) +} + +func autoConvert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile(in *v1.DownwardAPIVolumeFile, out *core.DownwardAPIVolumeFile, s conversion.Scope) error { + out.Path = in.Path + out.FieldRef = (*core.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef)) + out.ResourceFieldRef = (*core.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef)) + out.Mode = (*int32)(unsafe.Pointer(in.Mode)) + return nil +} + +// Convert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile is an autogenerated conversion function. +func Convert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile(in *v1.DownwardAPIVolumeFile, out *core.DownwardAPIVolumeFile, s conversion.Scope) error { + return autoConvert_v1_DownwardAPIVolumeFile_To_core_DownwardAPIVolumeFile(in, out, s) +} + +func autoConvert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile(in *core.DownwardAPIVolumeFile, out *v1.DownwardAPIVolumeFile, s conversion.Scope) error { + out.Path = in.Path + out.FieldRef = (*v1.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef)) + out.ResourceFieldRef = (*v1.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef)) + out.Mode = (*int32)(unsafe.Pointer(in.Mode)) + return nil +} + +// Convert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile is an autogenerated conversion function. +func Convert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile(in *core.DownwardAPIVolumeFile, out *v1.DownwardAPIVolumeFile, s conversion.Scope) error { + return autoConvert_core_DownwardAPIVolumeFile_To_v1_DownwardAPIVolumeFile(in, out, s) +} + +func autoConvert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource(in *v1.DownwardAPIVolumeSource, out *core.DownwardAPIVolumeSource, s conversion.Scope) error { + out.Items = *(*[]core.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items)) + out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) + return nil +} + +// Convert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource is an autogenerated conversion function. +func Convert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource(in *v1.DownwardAPIVolumeSource, out *core.DownwardAPIVolumeSource, s conversion.Scope) error { + return autoConvert_v1_DownwardAPIVolumeSource_To_core_DownwardAPIVolumeSource(in, out, s) +} + +func autoConvert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource(in *core.DownwardAPIVolumeSource, out *v1.DownwardAPIVolumeSource, s conversion.Scope) error { + out.Items = *(*[]v1.DownwardAPIVolumeFile)(unsafe.Pointer(&in.Items)) + out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) + return nil +} + +// Convert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource is an autogenerated conversion function. +func Convert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource(in *core.DownwardAPIVolumeSource, out *v1.DownwardAPIVolumeSource, s conversion.Scope) error { + return autoConvert_core_DownwardAPIVolumeSource_To_v1_DownwardAPIVolumeSource(in, out, s) +} + +func autoConvert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource(in *v1.EmptyDirVolumeSource, out *core.EmptyDirVolumeSource, s conversion.Scope) error { + out.Medium = core.StorageMedium(in.Medium) + out.SizeLimit = (*resource.Quantity)(unsafe.Pointer(in.SizeLimit)) + return nil +} + +// Convert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource is an autogenerated conversion function. +func Convert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource(in *v1.EmptyDirVolumeSource, out *core.EmptyDirVolumeSource, s conversion.Scope) error { + return autoConvert_v1_EmptyDirVolumeSource_To_core_EmptyDirVolumeSource(in, out, s) +} + +func autoConvert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource(in *core.EmptyDirVolumeSource, out *v1.EmptyDirVolumeSource, s conversion.Scope) error { + out.Medium = v1.StorageMedium(in.Medium) + out.SizeLimit = (*resource.Quantity)(unsafe.Pointer(in.SizeLimit)) + return nil +} + +// Convert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource is an autogenerated conversion function. +func Convert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource(in *core.EmptyDirVolumeSource, out *v1.EmptyDirVolumeSource, s conversion.Scope) error { + return autoConvert_core_EmptyDirVolumeSource_To_v1_EmptyDirVolumeSource(in, out, s) +} + +func autoConvert_v1_EndpointAddress_To_core_EndpointAddress(in *v1.EndpointAddress, out *core.EndpointAddress, s conversion.Scope) error { + out.IP = in.IP + out.Hostname = in.Hostname + out.NodeName = (*string)(unsafe.Pointer(in.NodeName)) + out.TargetRef = (*core.ObjectReference)(unsafe.Pointer(in.TargetRef)) + return nil +} + +// Convert_v1_EndpointAddress_To_core_EndpointAddress is an autogenerated conversion function. +func Convert_v1_EndpointAddress_To_core_EndpointAddress(in *v1.EndpointAddress, out *core.EndpointAddress, s conversion.Scope) error { + return autoConvert_v1_EndpointAddress_To_core_EndpointAddress(in, out, s) +} + +func autoConvert_core_EndpointAddress_To_v1_EndpointAddress(in *core.EndpointAddress, out *v1.EndpointAddress, s conversion.Scope) error { + out.IP = in.IP + out.Hostname = in.Hostname + out.NodeName = (*string)(unsafe.Pointer(in.NodeName)) + out.TargetRef = (*v1.ObjectReference)(unsafe.Pointer(in.TargetRef)) + return nil +} + +// Convert_core_EndpointAddress_To_v1_EndpointAddress is an autogenerated conversion function. +func Convert_core_EndpointAddress_To_v1_EndpointAddress(in *core.EndpointAddress, out *v1.EndpointAddress, s conversion.Scope) error { + return autoConvert_core_EndpointAddress_To_v1_EndpointAddress(in, out, s) +} + +func autoConvert_v1_EndpointPort_To_core_EndpointPort(in *v1.EndpointPort, out *core.EndpointPort, s conversion.Scope) error { + out.Name = in.Name + out.Port = in.Port + out.Protocol = core.Protocol(in.Protocol) + return nil +} + +// Convert_v1_EndpointPort_To_core_EndpointPort is an autogenerated conversion function. +func Convert_v1_EndpointPort_To_core_EndpointPort(in *v1.EndpointPort, out *core.EndpointPort, s conversion.Scope) error { + return autoConvert_v1_EndpointPort_To_core_EndpointPort(in, out, s) +} + +func autoConvert_core_EndpointPort_To_v1_EndpointPort(in *core.EndpointPort, out *v1.EndpointPort, s conversion.Scope) error { + out.Name = in.Name + out.Port = in.Port + out.Protocol = v1.Protocol(in.Protocol) + return nil +} + +// Convert_core_EndpointPort_To_v1_EndpointPort is an autogenerated conversion function. +func Convert_core_EndpointPort_To_v1_EndpointPort(in *core.EndpointPort, out *v1.EndpointPort, s conversion.Scope) error { + return autoConvert_core_EndpointPort_To_v1_EndpointPort(in, out, s) +} + +func autoConvert_v1_EndpointSubset_To_core_EndpointSubset(in *v1.EndpointSubset, out *core.EndpointSubset, s conversion.Scope) error { + out.Addresses = *(*[]core.EndpointAddress)(unsafe.Pointer(&in.Addresses)) + out.NotReadyAddresses = *(*[]core.EndpointAddress)(unsafe.Pointer(&in.NotReadyAddresses)) + out.Ports = *(*[]core.EndpointPort)(unsafe.Pointer(&in.Ports)) + return nil +} + +// Convert_v1_EndpointSubset_To_core_EndpointSubset is an autogenerated conversion function. +func Convert_v1_EndpointSubset_To_core_EndpointSubset(in *v1.EndpointSubset, out *core.EndpointSubset, s conversion.Scope) error { + return autoConvert_v1_EndpointSubset_To_core_EndpointSubset(in, out, s) +} + +func autoConvert_core_EndpointSubset_To_v1_EndpointSubset(in *core.EndpointSubset, out *v1.EndpointSubset, s conversion.Scope) error { + out.Addresses = *(*[]v1.EndpointAddress)(unsafe.Pointer(&in.Addresses)) + out.NotReadyAddresses = *(*[]v1.EndpointAddress)(unsafe.Pointer(&in.NotReadyAddresses)) + out.Ports = *(*[]v1.EndpointPort)(unsafe.Pointer(&in.Ports)) + return nil +} + +// Convert_core_EndpointSubset_To_v1_EndpointSubset is an autogenerated conversion function. +func Convert_core_EndpointSubset_To_v1_EndpointSubset(in *core.EndpointSubset, out *v1.EndpointSubset, s conversion.Scope) error { + return autoConvert_core_EndpointSubset_To_v1_EndpointSubset(in, out, s) +} + +func autoConvert_v1_Endpoints_To_core_Endpoints(in *v1.Endpoints, out *core.Endpoints, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Subsets = *(*[]core.EndpointSubset)(unsafe.Pointer(&in.Subsets)) + return nil +} + +// Convert_v1_Endpoints_To_core_Endpoints is an autogenerated conversion function. +func Convert_v1_Endpoints_To_core_Endpoints(in *v1.Endpoints, out *core.Endpoints, s conversion.Scope) error { + return autoConvert_v1_Endpoints_To_core_Endpoints(in, out, s) +} + +func autoConvert_core_Endpoints_To_v1_Endpoints(in *core.Endpoints, out *v1.Endpoints, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Subsets = *(*[]v1.EndpointSubset)(unsafe.Pointer(&in.Subsets)) + return nil +} + +// Convert_core_Endpoints_To_v1_Endpoints is an autogenerated conversion function. +func Convert_core_Endpoints_To_v1_Endpoints(in *core.Endpoints, out *v1.Endpoints, s conversion.Scope) error { + return autoConvert_core_Endpoints_To_v1_Endpoints(in, out, s) +} + +func autoConvert_v1_EndpointsList_To_core_EndpointsList(in *v1.EndpointsList, out *core.EndpointsList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.Endpoints)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_EndpointsList_To_core_EndpointsList is an autogenerated conversion function. +func Convert_v1_EndpointsList_To_core_EndpointsList(in *v1.EndpointsList, out *core.EndpointsList, s conversion.Scope) error { + return autoConvert_v1_EndpointsList_To_core_EndpointsList(in, out, s) +} + +func autoConvert_core_EndpointsList_To_v1_EndpointsList(in *core.EndpointsList, out *v1.EndpointsList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.Endpoints)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_EndpointsList_To_v1_EndpointsList is an autogenerated conversion function. +func Convert_core_EndpointsList_To_v1_EndpointsList(in *core.EndpointsList, out *v1.EndpointsList, s conversion.Scope) error { + return autoConvert_core_EndpointsList_To_v1_EndpointsList(in, out, s) +} + +func autoConvert_v1_EnvFromSource_To_core_EnvFromSource(in *v1.EnvFromSource, out *core.EnvFromSource, s conversion.Scope) error { + out.Prefix = in.Prefix + out.ConfigMapRef = (*core.ConfigMapEnvSource)(unsafe.Pointer(in.ConfigMapRef)) + out.SecretRef = (*core.SecretEnvSource)(unsafe.Pointer(in.SecretRef)) + return nil +} + +// Convert_v1_EnvFromSource_To_core_EnvFromSource is an autogenerated conversion function. +func Convert_v1_EnvFromSource_To_core_EnvFromSource(in *v1.EnvFromSource, out *core.EnvFromSource, s conversion.Scope) error { + return autoConvert_v1_EnvFromSource_To_core_EnvFromSource(in, out, s) +} + +func autoConvert_core_EnvFromSource_To_v1_EnvFromSource(in *core.EnvFromSource, out *v1.EnvFromSource, s conversion.Scope) error { + out.Prefix = in.Prefix + out.ConfigMapRef = (*v1.ConfigMapEnvSource)(unsafe.Pointer(in.ConfigMapRef)) + out.SecretRef = (*v1.SecretEnvSource)(unsafe.Pointer(in.SecretRef)) + return nil +} + +// Convert_core_EnvFromSource_To_v1_EnvFromSource is an autogenerated conversion function. +func Convert_core_EnvFromSource_To_v1_EnvFromSource(in *core.EnvFromSource, out *v1.EnvFromSource, s conversion.Scope) error { + return autoConvert_core_EnvFromSource_To_v1_EnvFromSource(in, out, s) +} + +func autoConvert_v1_EnvVar_To_core_EnvVar(in *v1.EnvVar, out *core.EnvVar, s conversion.Scope) error { + out.Name = in.Name + out.Value = in.Value + out.ValueFrom = (*core.EnvVarSource)(unsafe.Pointer(in.ValueFrom)) + return nil +} + +// Convert_v1_EnvVar_To_core_EnvVar is an autogenerated conversion function. +func Convert_v1_EnvVar_To_core_EnvVar(in *v1.EnvVar, out *core.EnvVar, s conversion.Scope) error { + return autoConvert_v1_EnvVar_To_core_EnvVar(in, out, s) +} + +func autoConvert_core_EnvVar_To_v1_EnvVar(in *core.EnvVar, out *v1.EnvVar, s conversion.Scope) error { + out.Name = in.Name + out.Value = in.Value + out.ValueFrom = (*v1.EnvVarSource)(unsafe.Pointer(in.ValueFrom)) + return nil +} + +// Convert_core_EnvVar_To_v1_EnvVar is an autogenerated conversion function. +func Convert_core_EnvVar_To_v1_EnvVar(in *core.EnvVar, out *v1.EnvVar, s conversion.Scope) error { + return autoConvert_core_EnvVar_To_v1_EnvVar(in, out, s) +} + +func autoConvert_v1_EnvVarSource_To_core_EnvVarSource(in *v1.EnvVarSource, out *core.EnvVarSource, s conversion.Scope) error { + out.FieldRef = (*core.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef)) + out.ResourceFieldRef = (*core.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef)) + out.ConfigMapKeyRef = (*core.ConfigMapKeySelector)(unsafe.Pointer(in.ConfigMapKeyRef)) + out.SecretKeyRef = (*core.SecretKeySelector)(unsafe.Pointer(in.SecretKeyRef)) + return nil +} + +// Convert_v1_EnvVarSource_To_core_EnvVarSource is an autogenerated conversion function. +func Convert_v1_EnvVarSource_To_core_EnvVarSource(in *v1.EnvVarSource, out *core.EnvVarSource, s conversion.Scope) error { + return autoConvert_v1_EnvVarSource_To_core_EnvVarSource(in, out, s) +} + +func autoConvert_core_EnvVarSource_To_v1_EnvVarSource(in *core.EnvVarSource, out *v1.EnvVarSource, s conversion.Scope) error { + out.FieldRef = (*v1.ObjectFieldSelector)(unsafe.Pointer(in.FieldRef)) + out.ResourceFieldRef = (*v1.ResourceFieldSelector)(unsafe.Pointer(in.ResourceFieldRef)) + out.ConfigMapKeyRef = (*v1.ConfigMapKeySelector)(unsafe.Pointer(in.ConfigMapKeyRef)) + out.SecretKeyRef = (*v1.SecretKeySelector)(unsafe.Pointer(in.SecretKeyRef)) + return nil +} + +// Convert_core_EnvVarSource_To_v1_EnvVarSource is an autogenerated conversion function. +func Convert_core_EnvVarSource_To_v1_EnvVarSource(in *core.EnvVarSource, out *v1.EnvVarSource, s conversion.Scope) error { + return autoConvert_core_EnvVarSource_To_v1_EnvVarSource(in, out, s) +} + +func autoConvert_v1_Event_To_core_Event(in *v1.Event, out *core.Event, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_ObjectReference_To_core_ObjectReference(&in.InvolvedObject, &out.InvolvedObject, s); err != nil { + return err + } + out.Reason = in.Reason + out.Message = in.Message + if err := Convert_v1_EventSource_To_core_EventSource(&in.Source, &out.Source, s); err != nil { + return err + } + out.FirstTimestamp = in.FirstTimestamp + out.LastTimestamp = in.LastTimestamp + out.Count = in.Count + out.Type = in.Type + return nil +} + +// Convert_v1_Event_To_core_Event is an autogenerated conversion function. +func Convert_v1_Event_To_core_Event(in *v1.Event, out *core.Event, s conversion.Scope) error { + return autoConvert_v1_Event_To_core_Event(in, out, s) +} + +func autoConvert_core_Event_To_v1_Event(in *core.Event, out *v1.Event, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_ObjectReference_To_v1_ObjectReference(&in.InvolvedObject, &out.InvolvedObject, s); err != nil { + return err + } + out.Reason = in.Reason + out.Message = in.Message + if err := Convert_core_EventSource_To_v1_EventSource(&in.Source, &out.Source, s); err != nil { + return err + } + out.FirstTimestamp = in.FirstTimestamp + out.LastTimestamp = in.LastTimestamp + out.Count = in.Count + out.Type = in.Type + return nil +} + +// Convert_core_Event_To_v1_Event is an autogenerated conversion function. +func Convert_core_Event_To_v1_Event(in *core.Event, out *v1.Event, s conversion.Scope) error { + return autoConvert_core_Event_To_v1_Event(in, out, s) +} + +func autoConvert_v1_EventList_To_core_EventList(in *v1.EventList, out *core.EventList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.Event)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_EventList_To_core_EventList is an autogenerated conversion function. +func Convert_v1_EventList_To_core_EventList(in *v1.EventList, out *core.EventList, s conversion.Scope) error { + return autoConvert_v1_EventList_To_core_EventList(in, out, s) +} + +func autoConvert_core_EventList_To_v1_EventList(in *core.EventList, out *v1.EventList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.Event)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_EventList_To_v1_EventList is an autogenerated conversion function. +func Convert_core_EventList_To_v1_EventList(in *core.EventList, out *v1.EventList, s conversion.Scope) error { + return autoConvert_core_EventList_To_v1_EventList(in, out, s) +} + +func autoConvert_v1_EventSource_To_core_EventSource(in *v1.EventSource, out *core.EventSource, s conversion.Scope) error { + out.Component = in.Component + out.Host = in.Host + return nil +} + +// Convert_v1_EventSource_To_core_EventSource is an autogenerated conversion function. +func Convert_v1_EventSource_To_core_EventSource(in *v1.EventSource, out *core.EventSource, s conversion.Scope) error { + return autoConvert_v1_EventSource_To_core_EventSource(in, out, s) +} + +func autoConvert_core_EventSource_To_v1_EventSource(in *core.EventSource, out *v1.EventSource, s conversion.Scope) error { + out.Component = in.Component + out.Host = in.Host + return nil +} + +// Convert_core_EventSource_To_v1_EventSource is an autogenerated conversion function. +func Convert_core_EventSource_To_v1_EventSource(in *core.EventSource, out *v1.EventSource, s conversion.Scope) error { + return autoConvert_core_EventSource_To_v1_EventSource(in, out, s) +} + +func autoConvert_v1_ExecAction_To_core_ExecAction(in *v1.ExecAction, out *core.ExecAction, s conversion.Scope) error { + out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) + return nil +} + +// Convert_v1_ExecAction_To_core_ExecAction is an autogenerated conversion function. +func Convert_v1_ExecAction_To_core_ExecAction(in *v1.ExecAction, out *core.ExecAction, s conversion.Scope) error { + return autoConvert_v1_ExecAction_To_core_ExecAction(in, out, s) +} + +func autoConvert_core_ExecAction_To_v1_ExecAction(in *core.ExecAction, out *v1.ExecAction, s conversion.Scope) error { + out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) + return nil +} + +// Convert_core_ExecAction_To_v1_ExecAction is an autogenerated conversion function. +func Convert_core_ExecAction_To_v1_ExecAction(in *core.ExecAction, out *v1.ExecAction, s conversion.Scope) error { + return autoConvert_core_ExecAction_To_v1_ExecAction(in, out, s) +} + +func autoConvert_v1_FCVolumeSource_To_core_FCVolumeSource(in *v1.FCVolumeSource, out *core.FCVolumeSource, s conversion.Scope) error { + out.TargetWWNs = *(*[]string)(unsafe.Pointer(&in.TargetWWNs)) + out.Lun = (*int32)(unsafe.Pointer(in.Lun)) + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + out.WWIDs = *(*[]string)(unsafe.Pointer(&in.WWIDs)) + return nil +} + +// Convert_v1_FCVolumeSource_To_core_FCVolumeSource is an autogenerated conversion function. +func Convert_v1_FCVolumeSource_To_core_FCVolumeSource(in *v1.FCVolumeSource, out *core.FCVolumeSource, s conversion.Scope) error { + return autoConvert_v1_FCVolumeSource_To_core_FCVolumeSource(in, out, s) +} + +func autoConvert_core_FCVolumeSource_To_v1_FCVolumeSource(in *core.FCVolumeSource, out *v1.FCVolumeSource, s conversion.Scope) error { + out.TargetWWNs = *(*[]string)(unsafe.Pointer(&in.TargetWWNs)) + out.Lun = (*int32)(unsafe.Pointer(in.Lun)) + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + out.WWIDs = *(*[]string)(unsafe.Pointer(&in.WWIDs)) + return nil +} + +// Convert_core_FCVolumeSource_To_v1_FCVolumeSource is an autogenerated conversion function. +func Convert_core_FCVolumeSource_To_v1_FCVolumeSource(in *core.FCVolumeSource, out *v1.FCVolumeSource, s conversion.Scope) error { + return autoConvert_core_FCVolumeSource_To_v1_FCVolumeSource(in, out, s) +} + +func autoConvert_v1_FlexVolumeSource_To_core_FlexVolumeSource(in *v1.FlexVolumeSource, out *core.FlexVolumeSource, s conversion.Scope) error { + out.Driver = in.Driver + out.FSType = in.FSType + out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + out.Options = *(*map[string]string)(unsafe.Pointer(&in.Options)) + return nil +} + +// Convert_v1_FlexVolumeSource_To_core_FlexVolumeSource is an autogenerated conversion function. +func Convert_v1_FlexVolumeSource_To_core_FlexVolumeSource(in *v1.FlexVolumeSource, out *core.FlexVolumeSource, s conversion.Scope) error { + return autoConvert_v1_FlexVolumeSource_To_core_FlexVolumeSource(in, out, s) +} + +func autoConvert_core_FlexVolumeSource_To_v1_FlexVolumeSource(in *core.FlexVolumeSource, out *v1.FlexVolumeSource, s conversion.Scope) error { + out.Driver = in.Driver + out.FSType = in.FSType + out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + out.Options = *(*map[string]string)(unsafe.Pointer(&in.Options)) + return nil +} + +// Convert_core_FlexVolumeSource_To_v1_FlexVolumeSource is an autogenerated conversion function. +func Convert_core_FlexVolumeSource_To_v1_FlexVolumeSource(in *core.FlexVolumeSource, out *v1.FlexVolumeSource, s conversion.Scope) error { + return autoConvert_core_FlexVolumeSource_To_v1_FlexVolumeSource(in, out, s) +} + +func autoConvert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource(in *v1.FlockerVolumeSource, out *core.FlockerVolumeSource, s conversion.Scope) error { + out.DatasetName = in.DatasetName + out.DatasetUUID = in.DatasetUUID + return nil +} + +// Convert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource is an autogenerated conversion function. +func Convert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource(in *v1.FlockerVolumeSource, out *core.FlockerVolumeSource, s conversion.Scope) error { + return autoConvert_v1_FlockerVolumeSource_To_core_FlockerVolumeSource(in, out, s) +} + +func autoConvert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource(in *core.FlockerVolumeSource, out *v1.FlockerVolumeSource, s conversion.Scope) error { + out.DatasetName = in.DatasetName + out.DatasetUUID = in.DatasetUUID + return nil +} + +// Convert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource is an autogenerated conversion function. +func Convert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource(in *core.FlockerVolumeSource, out *v1.FlockerVolumeSource, s conversion.Scope) error { + return autoConvert_core_FlockerVolumeSource_To_v1_FlockerVolumeSource(in, out, s) +} + +func autoConvert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource(in *v1.GCEPersistentDiskVolumeSource, out *core.GCEPersistentDiskVolumeSource, s conversion.Scope) error { + out.PDName = in.PDName + out.FSType = in.FSType + out.Partition = in.Partition + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource is an autogenerated conversion function. +func Convert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource(in *v1.GCEPersistentDiskVolumeSource, out *core.GCEPersistentDiskVolumeSource, s conversion.Scope) error { + return autoConvert_v1_GCEPersistentDiskVolumeSource_To_core_GCEPersistentDiskVolumeSource(in, out, s) +} + +func autoConvert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource(in *core.GCEPersistentDiskVolumeSource, out *v1.GCEPersistentDiskVolumeSource, s conversion.Scope) error { + out.PDName = in.PDName + out.FSType = in.FSType + out.Partition = in.Partition + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource is an autogenerated conversion function. +func Convert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource(in *core.GCEPersistentDiskVolumeSource, out *v1.GCEPersistentDiskVolumeSource, s conversion.Scope) error { + return autoConvert_core_GCEPersistentDiskVolumeSource_To_v1_GCEPersistentDiskVolumeSource(in, out, s) +} + +func autoConvert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource(in *v1.GitRepoVolumeSource, out *core.GitRepoVolumeSource, s conversion.Scope) error { + out.Repository = in.Repository + out.Revision = in.Revision + out.Directory = in.Directory + return nil +} + +// Convert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource is an autogenerated conversion function. +func Convert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource(in *v1.GitRepoVolumeSource, out *core.GitRepoVolumeSource, s conversion.Scope) error { + return autoConvert_v1_GitRepoVolumeSource_To_core_GitRepoVolumeSource(in, out, s) +} + +func autoConvert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource(in *core.GitRepoVolumeSource, out *v1.GitRepoVolumeSource, s conversion.Scope) error { + out.Repository = in.Repository + out.Revision = in.Revision + out.Directory = in.Directory + return nil +} + +// Convert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource is an autogenerated conversion function. +func Convert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource(in *core.GitRepoVolumeSource, out *v1.GitRepoVolumeSource, s conversion.Scope) error { + return autoConvert_core_GitRepoVolumeSource_To_v1_GitRepoVolumeSource(in, out, s) +} + +func autoConvert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource(in *v1.GlusterfsVolumeSource, out *core.GlusterfsVolumeSource, s conversion.Scope) error { + out.EndpointsName = in.EndpointsName + out.Path = in.Path + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource is an autogenerated conversion function. +func Convert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource(in *v1.GlusterfsVolumeSource, out *core.GlusterfsVolumeSource, s conversion.Scope) error { + return autoConvert_v1_GlusterfsVolumeSource_To_core_GlusterfsVolumeSource(in, out, s) +} + +func autoConvert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource(in *core.GlusterfsVolumeSource, out *v1.GlusterfsVolumeSource, s conversion.Scope) error { + out.EndpointsName = in.EndpointsName + out.Path = in.Path + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource is an autogenerated conversion function. +func Convert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource(in *core.GlusterfsVolumeSource, out *v1.GlusterfsVolumeSource, s conversion.Scope) error { + return autoConvert_core_GlusterfsVolumeSource_To_v1_GlusterfsVolumeSource(in, out, s) +} + +func autoConvert_v1_HTTPGetAction_To_core_HTTPGetAction(in *v1.HTTPGetAction, out *core.HTTPGetAction, s conversion.Scope) error { + out.Path = in.Path + out.Port = in.Port + out.Host = in.Host + out.Scheme = core.URIScheme(in.Scheme) + out.HTTPHeaders = *(*[]core.HTTPHeader)(unsafe.Pointer(&in.HTTPHeaders)) + return nil +} + +// Convert_v1_HTTPGetAction_To_core_HTTPGetAction is an autogenerated conversion function. +func Convert_v1_HTTPGetAction_To_core_HTTPGetAction(in *v1.HTTPGetAction, out *core.HTTPGetAction, s conversion.Scope) error { + return autoConvert_v1_HTTPGetAction_To_core_HTTPGetAction(in, out, s) +} + +func autoConvert_core_HTTPGetAction_To_v1_HTTPGetAction(in *core.HTTPGetAction, out *v1.HTTPGetAction, s conversion.Scope) error { + out.Path = in.Path + out.Port = in.Port + out.Host = in.Host + out.Scheme = v1.URIScheme(in.Scheme) + out.HTTPHeaders = *(*[]v1.HTTPHeader)(unsafe.Pointer(&in.HTTPHeaders)) + return nil +} + +// Convert_core_HTTPGetAction_To_v1_HTTPGetAction is an autogenerated conversion function. +func Convert_core_HTTPGetAction_To_v1_HTTPGetAction(in *core.HTTPGetAction, out *v1.HTTPGetAction, s conversion.Scope) error { + return autoConvert_core_HTTPGetAction_To_v1_HTTPGetAction(in, out, s) +} + +func autoConvert_v1_HTTPHeader_To_core_HTTPHeader(in *v1.HTTPHeader, out *core.HTTPHeader, s conversion.Scope) error { + out.Name = in.Name + out.Value = in.Value + return nil +} + +// Convert_v1_HTTPHeader_To_core_HTTPHeader is an autogenerated conversion function. +func Convert_v1_HTTPHeader_To_core_HTTPHeader(in *v1.HTTPHeader, out *core.HTTPHeader, s conversion.Scope) error { + return autoConvert_v1_HTTPHeader_To_core_HTTPHeader(in, out, s) +} + +func autoConvert_core_HTTPHeader_To_v1_HTTPHeader(in *core.HTTPHeader, out *v1.HTTPHeader, s conversion.Scope) error { + out.Name = in.Name + out.Value = in.Value + return nil +} + +// Convert_core_HTTPHeader_To_v1_HTTPHeader is an autogenerated conversion function. +func Convert_core_HTTPHeader_To_v1_HTTPHeader(in *core.HTTPHeader, out *v1.HTTPHeader, s conversion.Scope) error { + return autoConvert_core_HTTPHeader_To_v1_HTTPHeader(in, out, s) +} + +func autoConvert_v1_Handler_To_core_Handler(in *v1.Handler, out *core.Handler, s conversion.Scope) error { + out.Exec = (*core.ExecAction)(unsafe.Pointer(in.Exec)) + out.HTTPGet = (*core.HTTPGetAction)(unsafe.Pointer(in.HTTPGet)) + out.TCPSocket = (*core.TCPSocketAction)(unsafe.Pointer(in.TCPSocket)) + return nil +} + +// Convert_v1_Handler_To_core_Handler is an autogenerated conversion function. +func Convert_v1_Handler_To_core_Handler(in *v1.Handler, out *core.Handler, s conversion.Scope) error { + return autoConvert_v1_Handler_To_core_Handler(in, out, s) +} + +func autoConvert_core_Handler_To_v1_Handler(in *core.Handler, out *v1.Handler, s conversion.Scope) error { + out.Exec = (*v1.ExecAction)(unsafe.Pointer(in.Exec)) + out.HTTPGet = (*v1.HTTPGetAction)(unsafe.Pointer(in.HTTPGet)) + out.TCPSocket = (*v1.TCPSocketAction)(unsafe.Pointer(in.TCPSocket)) + return nil +} + +// Convert_core_Handler_To_v1_Handler is an autogenerated conversion function. +func Convert_core_Handler_To_v1_Handler(in *core.Handler, out *v1.Handler, s conversion.Scope) error { + return autoConvert_core_Handler_To_v1_Handler(in, out, s) +} + +func autoConvert_v1_HostAlias_To_core_HostAlias(in *v1.HostAlias, out *core.HostAlias, s conversion.Scope) error { + out.IP = in.IP + out.Hostnames = *(*[]string)(unsafe.Pointer(&in.Hostnames)) + return nil +} + +// Convert_v1_HostAlias_To_core_HostAlias is an autogenerated conversion function. +func Convert_v1_HostAlias_To_core_HostAlias(in *v1.HostAlias, out *core.HostAlias, s conversion.Scope) error { + return autoConvert_v1_HostAlias_To_core_HostAlias(in, out, s) +} + +func autoConvert_core_HostAlias_To_v1_HostAlias(in *core.HostAlias, out *v1.HostAlias, s conversion.Scope) error { + out.IP = in.IP + out.Hostnames = *(*[]string)(unsafe.Pointer(&in.Hostnames)) + return nil +} + +// Convert_core_HostAlias_To_v1_HostAlias is an autogenerated conversion function. +func Convert_core_HostAlias_To_v1_HostAlias(in *core.HostAlias, out *v1.HostAlias, s conversion.Scope) error { + return autoConvert_core_HostAlias_To_v1_HostAlias(in, out, s) +} + +func autoConvert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource(in *v1.HostPathVolumeSource, out *core.HostPathVolumeSource, s conversion.Scope) error { + out.Path = in.Path + out.Type = (*core.HostPathType)(unsafe.Pointer(in.Type)) + return nil +} + +// Convert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource is an autogenerated conversion function. +func Convert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource(in *v1.HostPathVolumeSource, out *core.HostPathVolumeSource, s conversion.Scope) error { + return autoConvert_v1_HostPathVolumeSource_To_core_HostPathVolumeSource(in, out, s) +} + +func autoConvert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource(in *core.HostPathVolumeSource, out *v1.HostPathVolumeSource, s conversion.Scope) error { + out.Path = in.Path + out.Type = (*v1.HostPathType)(unsafe.Pointer(in.Type)) + return nil +} + +// Convert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource is an autogenerated conversion function. +func Convert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource(in *core.HostPathVolumeSource, out *v1.HostPathVolumeSource, s conversion.Scope) error { + return autoConvert_core_HostPathVolumeSource_To_v1_HostPathVolumeSource(in, out, s) +} + +func autoConvert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource(in *v1.ISCSIVolumeSource, out *core.ISCSIVolumeSource, s conversion.Scope) error { + out.TargetPortal = in.TargetPortal + out.IQN = in.IQN + out.Lun = in.Lun + out.ISCSIInterface = in.ISCSIInterface + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + out.Portals = *(*[]string)(unsafe.Pointer(&in.Portals)) + out.DiscoveryCHAPAuth = in.DiscoveryCHAPAuth + out.SessionCHAPAuth = in.SessionCHAPAuth + out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.InitiatorName = (*string)(unsafe.Pointer(in.InitiatorName)) + return nil +} + +// Convert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource is an autogenerated conversion function. +func Convert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource(in *v1.ISCSIVolumeSource, out *core.ISCSIVolumeSource, s conversion.Scope) error { + return autoConvert_v1_ISCSIVolumeSource_To_core_ISCSIVolumeSource(in, out, s) +} + +func autoConvert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource(in *core.ISCSIVolumeSource, out *v1.ISCSIVolumeSource, s conversion.Scope) error { + out.TargetPortal = in.TargetPortal + out.IQN = in.IQN + out.Lun = in.Lun + out.ISCSIInterface = in.ISCSIInterface + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + out.Portals = *(*[]string)(unsafe.Pointer(&in.Portals)) + out.DiscoveryCHAPAuth = in.DiscoveryCHAPAuth + out.SessionCHAPAuth = in.SessionCHAPAuth + out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.InitiatorName = (*string)(unsafe.Pointer(in.InitiatorName)) + return nil +} + +// Convert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource is an autogenerated conversion function. +func Convert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource(in *core.ISCSIVolumeSource, out *v1.ISCSIVolumeSource, s conversion.Scope) error { + return autoConvert_core_ISCSIVolumeSource_To_v1_ISCSIVolumeSource(in, out, s) +} + +func autoConvert_v1_KeyToPath_To_core_KeyToPath(in *v1.KeyToPath, out *core.KeyToPath, s conversion.Scope) error { + out.Key = in.Key + out.Path = in.Path + out.Mode = (*int32)(unsafe.Pointer(in.Mode)) + return nil +} + +// Convert_v1_KeyToPath_To_core_KeyToPath is an autogenerated conversion function. +func Convert_v1_KeyToPath_To_core_KeyToPath(in *v1.KeyToPath, out *core.KeyToPath, s conversion.Scope) error { + return autoConvert_v1_KeyToPath_To_core_KeyToPath(in, out, s) +} + +func autoConvert_core_KeyToPath_To_v1_KeyToPath(in *core.KeyToPath, out *v1.KeyToPath, s conversion.Scope) error { + out.Key = in.Key + out.Path = in.Path + out.Mode = (*int32)(unsafe.Pointer(in.Mode)) + return nil +} + +// Convert_core_KeyToPath_To_v1_KeyToPath is an autogenerated conversion function. +func Convert_core_KeyToPath_To_v1_KeyToPath(in *core.KeyToPath, out *v1.KeyToPath, s conversion.Scope) error { + return autoConvert_core_KeyToPath_To_v1_KeyToPath(in, out, s) +} + +func autoConvert_v1_Lifecycle_To_core_Lifecycle(in *v1.Lifecycle, out *core.Lifecycle, s conversion.Scope) error { + out.PostStart = (*core.Handler)(unsafe.Pointer(in.PostStart)) + out.PreStop = (*core.Handler)(unsafe.Pointer(in.PreStop)) + return nil +} + +// Convert_v1_Lifecycle_To_core_Lifecycle is an autogenerated conversion function. +func Convert_v1_Lifecycle_To_core_Lifecycle(in *v1.Lifecycle, out *core.Lifecycle, s conversion.Scope) error { + return autoConvert_v1_Lifecycle_To_core_Lifecycle(in, out, s) +} + +func autoConvert_core_Lifecycle_To_v1_Lifecycle(in *core.Lifecycle, out *v1.Lifecycle, s conversion.Scope) error { + out.PostStart = (*v1.Handler)(unsafe.Pointer(in.PostStart)) + out.PreStop = (*v1.Handler)(unsafe.Pointer(in.PreStop)) + return nil +} + +// Convert_core_Lifecycle_To_v1_Lifecycle is an autogenerated conversion function. +func Convert_core_Lifecycle_To_v1_Lifecycle(in *core.Lifecycle, out *v1.Lifecycle, s conversion.Scope) error { + return autoConvert_core_Lifecycle_To_v1_Lifecycle(in, out, s) +} + +func autoConvert_v1_LimitRange_To_core_LimitRange(in *v1.LimitRange, out *core.LimitRange, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_LimitRangeSpec_To_core_LimitRangeSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1_LimitRange_To_core_LimitRange is an autogenerated conversion function. +func Convert_v1_LimitRange_To_core_LimitRange(in *v1.LimitRange, out *core.LimitRange, s conversion.Scope) error { + return autoConvert_v1_LimitRange_To_core_LimitRange(in, out, s) +} + +func autoConvert_core_LimitRange_To_v1_LimitRange(in *core.LimitRange, out *v1.LimitRange, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_LimitRangeSpec_To_v1_LimitRangeSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_core_LimitRange_To_v1_LimitRange is an autogenerated conversion function. +func Convert_core_LimitRange_To_v1_LimitRange(in *core.LimitRange, out *v1.LimitRange, s conversion.Scope) error { + return autoConvert_core_LimitRange_To_v1_LimitRange(in, out, s) +} + +func autoConvert_v1_LimitRangeItem_To_core_LimitRangeItem(in *v1.LimitRangeItem, out *core.LimitRangeItem, s conversion.Scope) error { + out.Type = core.LimitType(in.Type) + out.Max = *(*core.ResourceList)(unsafe.Pointer(&in.Max)) + out.Min = *(*core.ResourceList)(unsafe.Pointer(&in.Min)) + out.Default = *(*core.ResourceList)(unsafe.Pointer(&in.Default)) + out.DefaultRequest = *(*core.ResourceList)(unsafe.Pointer(&in.DefaultRequest)) + out.MaxLimitRequestRatio = *(*core.ResourceList)(unsafe.Pointer(&in.MaxLimitRequestRatio)) + return nil +} + +// Convert_v1_LimitRangeItem_To_core_LimitRangeItem is an autogenerated conversion function. +func Convert_v1_LimitRangeItem_To_core_LimitRangeItem(in *v1.LimitRangeItem, out *core.LimitRangeItem, s conversion.Scope) error { + return autoConvert_v1_LimitRangeItem_To_core_LimitRangeItem(in, out, s) +} + +func autoConvert_core_LimitRangeItem_To_v1_LimitRangeItem(in *core.LimitRangeItem, out *v1.LimitRangeItem, s conversion.Scope) error { + out.Type = v1.LimitType(in.Type) + out.Max = *(*v1.ResourceList)(unsafe.Pointer(&in.Max)) + out.Min = *(*v1.ResourceList)(unsafe.Pointer(&in.Min)) + out.Default = *(*v1.ResourceList)(unsafe.Pointer(&in.Default)) + out.DefaultRequest = *(*v1.ResourceList)(unsafe.Pointer(&in.DefaultRequest)) + out.MaxLimitRequestRatio = *(*v1.ResourceList)(unsafe.Pointer(&in.MaxLimitRequestRatio)) + return nil +} + +// Convert_core_LimitRangeItem_To_v1_LimitRangeItem is an autogenerated conversion function. +func Convert_core_LimitRangeItem_To_v1_LimitRangeItem(in *core.LimitRangeItem, out *v1.LimitRangeItem, s conversion.Scope) error { + return autoConvert_core_LimitRangeItem_To_v1_LimitRangeItem(in, out, s) +} + +func autoConvert_v1_LimitRangeList_To_core_LimitRangeList(in *v1.LimitRangeList, out *core.LimitRangeList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.LimitRange)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_LimitRangeList_To_core_LimitRangeList is an autogenerated conversion function. +func Convert_v1_LimitRangeList_To_core_LimitRangeList(in *v1.LimitRangeList, out *core.LimitRangeList, s conversion.Scope) error { + return autoConvert_v1_LimitRangeList_To_core_LimitRangeList(in, out, s) +} + +func autoConvert_core_LimitRangeList_To_v1_LimitRangeList(in *core.LimitRangeList, out *v1.LimitRangeList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.LimitRange)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_LimitRangeList_To_v1_LimitRangeList is an autogenerated conversion function. +func Convert_core_LimitRangeList_To_v1_LimitRangeList(in *core.LimitRangeList, out *v1.LimitRangeList, s conversion.Scope) error { + return autoConvert_core_LimitRangeList_To_v1_LimitRangeList(in, out, s) +} + +func autoConvert_v1_LimitRangeSpec_To_core_LimitRangeSpec(in *v1.LimitRangeSpec, out *core.LimitRangeSpec, s conversion.Scope) error { + out.Limits = *(*[]core.LimitRangeItem)(unsafe.Pointer(&in.Limits)) + return nil +} + +// Convert_v1_LimitRangeSpec_To_core_LimitRangeSpec is an autogenerated conversion function. +func Convert_v1_LimitRangeSpec_To_core_LimitRangeSpec(in *v1.LimitRangeSpec, out *core.LimitRangeSpec, s conversion.Scope) error { + return autoConvert_v1_LimitRangeSpec_To_core_LimitRangeSpec(in, out, s) +} + +func autoConvert_core_LimitRangeSpec_To_v1_LimitRangeSpec(in *core.LimitRangeSpec, out *v1.LimitRangeSpec, s conversion.Scope) error { + out.Limits = *(*[]v1.LimitRangeItem)(unsafe.Pointer(&in.Limits)) + return nil +} + +// Convert_core_LimitRangeSpec_To_v1_LimitRangeSpec is an autogenerated conversion function. +func Convert_core_LimitRangeSpec_To_v1_LimitRangeSpec(in *core.LimitRangeSpec, out *v1.LimitRangeSpec, s conversion.Scope) error { + return autoConvert_core_LimitRangeSpec_To_v1_LimitRangeSpec(in, out, s) +} + +func autoConvert_v1_List_To_core_List(in *v1.List, out *core.List, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]runtime.Object, len(*in)) + for i := range *in { + if err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_List_To_core_List is an autogenerated conversion function. +func Convert_v1_List_To_core_List(in *v1.List, out *core.List, s conversion.Scope) error { + return autoConvert_v1_List_To_core_List(in, out, s) +} + +func autoConvert_core_List_To_v1_List(in *core.List, out *v1.List, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]runtime.RawExtension, len(*in)) + for i := range *in { + if err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_core_List_To_v1_List is an autogenerated conversion function. +func Convert_core_List_To_v1_List(in *core.List, out *v1.List, s conversion.Scope) error { + return autoConvert_core_List_To_v1_List(in, out, s) +} + +func autoConvert_v1_ListOptions_To_core_ListOptions(in *v1.ListOptions, out *core.ListOptions, s conversion.Scope) error { + if err := meta_v1.Convert_string_To_labels_Selector(&in.LabelSelector, &out.LabelSelector, s); err != nil { + return err + } + if err := meta_v1.Convert_string_To_fields_Selector(&in.FieldSelector, &out.FieldSelector, s); err != nil { + return err + } + out.IncludeUninitialized = in.IncludeUninitialized + out.Watch = in.Watch + out.ResourceVersion = in.ResourceVersion + out.TimeoutSeconds = (*int64)(unsafe.Pointer(in.TimeoutSeconds)) + return nil +} + +// Convert_v1_ListOptions_To_core_ListOptions is an autogenerated conversion function. +func Convert_v1_ListOptions_To_core_ListOptions(in *v1.ListOptions, out *core.ListOptions, s conversion.Scope) error { + return autoConvert_v1_ListOptions_To_core_ListOptions(in, out, s) +} + +func autoConvert_core_ListOptions_To_v1_ListOptions(in *core.ListOptions, out *v1.ListOptions, s conversion.Scope) error { + if err := meta_v1.Convert_labels_Selector_To_string(&in.LabelSelector, &out.LabelSelector, s); err != nil { + return err + } + if err := meta_v1.Convert_fields_Selector_To_string(&in.FieldSelector, &out.FieldSelector, s); err != nil { + return err + } + out.IncludeUninitialized = in.IncludeUninitialized + out.Watch = in.Watch + out.ResourceVersion = in.ResourceVersion + out.TimeoutSeconds = (*int64)(unsafe.Pointer(in.TimeoutSeconds)) + return nil +} + +// Convert_core_ListOptions_To_v1_ListOptions is an autogenerated conversion function. +func Convert_core_ListOptions_To_v1_ListOptions(in *core.ListOptions, out *v1.ListOptions, s conversion.Scope) error { + return autoConvert_core_ListOptions_To_v1_ListOptions(in, out, s) +} + +func autoConvert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress(in *v1.LoadBalancerIngress, out *core.LoadBalancerIngress, s conversion.Scope) error { + out.IP = in.IP + out.Hostname = in.Hostname + return nil +} + +// Convert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress is an autogenerated conversion function. +func Convert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress(in *v1.LoadBalancerIngress, out *core.LoadBalancerIngress, s conversion.Scope) error { + return autoConvert_v1_LoadBalancerIngress_To_core_LoadBalancerIngress(in, out, s) +} + +func autoConvert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress(in *core.LoadBalancerIngress, out *v1.LoadBalancerIngress, s conversion.Scope) error { + out.IP = in.IP + out.Hostname = in.Hostname + return nil +} + +// Convert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress is an autogenerated conversion function. +func Convert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress(in *core.LoadBalancerIngress, out *v1.LoadBalancerIngress, s conversion.Scope) error { + return autoConvert_core_LoadBalancerIngress_To_v1_LoadBalancerIngress(in, out, s) +} + +func autoConvert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus(in *v1.LoadBalancerStatus, out *core.LoadBalancerStatus, s conversion.Scope) error { + out.Ingress = *(*[]core.LoadBalancerIngress)(unsafe.Pointer(&in.Ingress)) + return nil +} + +// Convert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus is an autogenerated conversion function. +func Convert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus(in *v1.LoadBalancerStatus, out *core.LoadBalancerStatus, s conversion.Scope) error { + return autoConvert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus(in, out, s) +} + +func autoConvert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus(in *core.LoadBalancerStatus, out *v1.LoadBalancerStatus, s conversion.Scope) error { + out.Ingress = *(*[]v1.LoadBalancerIngress)(unsafe.Pointer(&in.Ingress)) + return nil +} + +// Convert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus is an autogenerated conversion function. +func Convert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus(in *core.LoadBalancerStatus, out *v1.LoadBalancerStatus, s conversion.Scope) error { + return autoConvert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus(in, out, s) +} + +func autoConvert_v1_LocalObjectReference_To_core_LocalObjectReference(in *v1.LocalObjectReference, out *core.LocalObjectReference, s conversion.Scope) error { + out.Name = in.Name + return nil +} + +// Convert_v1_LocalObjectReference_To_core_LocalObjectReference is an autogenerated conversion function. +func Convert_v1_LocalObjectReference_To_core_LocalObjectReference(in *v1.LocalObjectReference, out *core.LocalObjectReference, s conversion.Scope) error { + return autoConvert_v1_LocalObjectReference_To_core_LocalObjectReference(in, out, s) +} + +func autoConvert_core_LocalObjectReference_To_v1_LocalObjectReference(in *core.LocalObjectReference, out *v1.LocalObjectReference, s conversion.Scope) error { + out.Name = in.Name + return nil +} + +// Convert_core_LocalObjectReference_To_v1_LocalObjectReference is an autogenerated conversion function. +func Convert_core_LocalObjectReference_To_v1_LocalObjectReference(in *core.LocalObjectReference, out *v1.LocalObjectReference, s conversion.Scope) error { + return autoConvert_core_LocalObjectReference_To_v1_LocalObjectReference(in, out, s) +} + +func autoConvert_v1_LocalVolumeSource_To_core_LocalVolumeSource(in *v1.LocalVolumeSource, out *core.LocalVolumeSource, s conversion.Scope) error { + out.Path = in.Path + return nil +} + +// Convert_v1_LocalVolumeSource_To_core_LocalVolumeSource is an autogenerated conversion function. +func Convert_v1_LocalVolumeSource_To_core_LocalVolumeSource(in *v1.LocalVolumeSource, out *core.LocalVolumeSource, s conversion.Scope) error { + return autoConvert_v1_LocalVolumeSource_To_core_LocalVolumeSource(in, out, s) +} + +func autoConvert_core_LocalVolumeSource_To_v1_LocalVolumeSource(in *core.LocalVolumeSource, out *v1.LocalVolumeSource, s conversion.Scope) error { + out.Path = in.Path + return nil +} + +// Convert_core_LocalVolumeSource_To_v1_LocalVolumeSource is an autogenerated conversion function. +func Convert_core_LocalVolumeSource_To_v1_LocalVolumeSource(in *core.LocalVolumeSource, out *v1.LocalVolumeSource, s conversion.Scope) error { + return autoConvert_core_LocalVolumeSource_To_v1_LocalVolumeSource(in, out, s) +} + +func autoConvert_v1_NFSVolumeSource_To_core_NFSVolumeSource(in *v1.NFSVolumeSource, out *core.NFSVolumeSource, s conversion.Scope) error { + out.Server = in.Server + out.Path = in.Path + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_NFSVolumeSource_To_core_NFSVolumeSource is an autogenerated conversion function. +func Convert_v1_NFSVolumeSource_To_core_NFSVolumeSource(in *v1.NFSVolumeSource, out *core.NFSVolumeSource, s conversion.Scope) error { + return autoConvert_v1_NFSVolumeSource_To_core_NFSVolumeSource(in, out, s) +} + +func autoConvert_core_NFSVolumeSource_To_v1_NFSVolumeSource(in *core.NFSVolumeSource, out *v1.NFSVolumeSource, s conversion.Scope) error { + out.Server = in.Server + out.Path = in.Path + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_NFSVolumeSource_To_v1_NFSVolumeSource is an autogenerated conversion function. +func Convert_core_NFSVolumeSource_To_v1_NFSVolumeSource(in *core.NFSVolumeSource, out *v1.NFSVolumeSource, s conversion.Scope) error { + return autoConvert_core_NFSVolumeSource_To_v1_NFSVolumeSource(in, out, s) +} + +func autoConvert_v1_Namespace_To_core_Namespace(in *v1.Namespace, out *core.Namespace, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_NamespaceSpec_To_core_NamespaceSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_NamespaceStatus_To_core_NamespaceStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_Namespace_To_core_Namespace is an autogenerated conversion function. +func Convert_v1_Namespace_To_core_Namespace(in *v1.Namespace, out *core.Namespace, s conversion.Scope) error { + return autoConvert_v1_Namespace_To_core_Namespace(in, out, s) +} + +func autoConvert_core_Namespace_To_v1_Namespace(in *core.Namespace, out *v1.Namespace, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_NamespaceSpec_To_v1_NamespaceSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_core_NamespaceStatus_To_v1_NamespaceStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_core_Namespace_To_v1_Namespace is an autogenerated conversion function. +func Convert_core_Namespace_To_v1_Namespace(in *core.Namespace, out *v1.Namespace, s conversion.Scope) error { + return autoConvert_core_Namespace_To_v1_Namespace(in, out, s) +} + +func autoConvert_v1_NamespaceList_To_core_NamespaceList(in *v1.NamespaceList, out *core.NamespaceList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.Namespace)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_NamespaceList_To_core_NamespaceList is an autogenerated conversion function. +func Convert_v1_NamespaceList_To_core_NamespaceList(in *v1.NamespaceList, out *core.NamespaceList, s conversion.Scope) error { + return autoConvert_v1_NamespaceList_To_core_NamespaceList(in, out, s) +} + +func autoConvert_core_NamespaceList_To_v1_NamespaceList(in *core.NamespaceList, out *v1.NamespaceList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.Namespace)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_NamespaceList_To_v1_NamespaceList is an autogenerated conversion function. +func Convert_core_NamespaceList_To_v1_NamespaceList(in *core.NamespaceList, out *v1.NamespaceList, s conversion.Scope) error { + return autoConvert_core_NamespaceList_To_v1_NamespaceList(in, out, s) +} + +func autoConvert_v1_NamespaceSpec_To_core_NamespaceSpec(in *v1.NamespaceSpec, out *core.NamespaceSpec, s conversion.Scope) error { + out.Finalizers = *(*[]core.FinalizerName)(unsafe.Pointer(&in.Finalizers)) + return nil +} + +// Convert_v1_NamespaceSpec_To_core_NamespaceSpec is an autogenerated conversion function. +func Convert_v1_NamespaceSpec_To_core_NamespaceSpec(in *v1.NamespaceSpec, out *core.NamespaceSpec, s conversion.Scope) error { + return autoConvert_v1_NamespaceSpec_To_core_NamespaceSpec(in, out, s) +} + +func autoConvert_core_NamespaceSpec_To_v1_NamespaceSpec(in *core.NamespaceSpec, out *v1.NamespaceSpec, s conversion.Scope) error { + out.Finalizers = *(*[]v1.FinalizerName)(unsafe.Pointer(&in.Finalizers)) + return nil +} + +// Convert_core_NamespaceSpec_To_v1_NamespaceSpec is an autogenerated conversion function. +func Convert_core_NamespaceSpec_To_v1_NamespaceSpec(in *core.NamespaceSpec, out *v1.NamespaceSpec, s conversion.Scope) error { + return autoConvert_core_NamespaceSpec_To_v1_NamespaceSpec(in, out, s) +} + +func autoConvert_v1_NamespaceStatus_To_core_NamespaceStatus(in *v1.NamespaceStatus, out *core.NamespaceStatus, s conversion.Scope) error { + out.Phase = core.NamespacePhase(in.Phase) + return nil +} + +// Convert_v1_NamespaceStatus_To_core_NamespaceStatus is an autogenerated conversion function. +func Convert_v1_NamespaceStatus_To_core_NamespaceStatus(in *v1.NamespaceStatus, out *core.NamespaceStatus, s conversion.Scope) error { + return autoConvert_v1_NamespaceStatus_To_core_NamespaceStatus(in, out, s) +} + +func autoConvert_core_NamespaceStatus_To_v1_NamespaceStatus(in *core.NamespaceStatus, out *v1.NamespaceStatus, s conversion.Scope) error { + out.Phase = v1.NamespacePhase(in.Phase) + return nil +} + +// Convert_core_NamespaceStatus_To_v1_NamespaceStatus is an autogenerated conversion function. +func Convert_core_NamespaceStatus_To_v1_NamespaceStatus(in *core.NamespaceStatus, out *v1.NamespaceStatus, s conversion.Scope) error { + return autoConvert_core_NamespaceStatus_To_v1_NamespaceStatus(in, out, s) +} + +func autoConvert_v1_Node_To_core_Node(in *v1.Node, out *core.Node, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_NodeSpec_To_core_NodeSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_NodeStatus_To_core_NodeStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_Node_To_core_Node is an autogenerated conversion function. +func Convert_v1_Node_To_core_Node(in *v1.Node, out *core.Node, s conversion.Scope) error { + return autoConvert_v1_Node_To_core_Node(in, out, s) +} + +func autoConvert_core_Node_To_v1_Node(in *core.Node, out *v1.Node, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_NodeSpec_To_v1_NodeSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_core_NodeStatus_To_v1_NodeStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_core_Node_To_v1_Node is an autogenerated conversion function. +func Convert_core_Node_To_v1_Node(in *core.Node, out *v1.Node, s conversion.Scope) error { + return autoConvert_core_Node_To_v1_Node(in, out, s) +} + +func autoConvert_v1_NodeAddress_To_core_NodeAddress(in *v1.NodeAddress, out *core.NodeAddress, s conversion.Scope) error { + out.Type = core.NodeAddressType(in.Type) + out.Address = in.Address + return nil +} + +// Convert_v1_NodeAddress_To_core_NodeAddress is an autogenerated conversion function. +func Convert_v1_NodeAddress_To_core_NodeAddress(in *v1.NodeAddress, out *core.NodeAddress, s conversion.Scope) error { + return autoConvert_v1_NodeAddress_To_core_NodeAddress(in, out, s) +} + +func autoConvert_core_NodeAddress_To_v1_NodeAddress(in *core.NodeAddress, out *v1.NodeAddress, s conversion.Scope) error { + out.Type = v1.NodeAddressType(in.Type) + out.Address = in.Address + return nil +} + +// Convert_core_NodeAddress_To_v1_NodeAddress is an autogenerated conversion function. +func Convert_core_NodeAddress_To_v1_NodeAddress(in *core.NodeAddress, out *v1.NodeAddress, s conversion.Scope) error { + return autoConvert_core_NodeAddress_To_v1_NodeAddress(in, out, s) +} + +func autoConvert_v1_NodeAffinity_To_core_NodeAffinity(in *v1.NodeAffinity, out *core.NodeAffinity, s conversion.Scope) error { + out.RequiredDuringSchedulingIgnoredDuringExecution = (*core.NodeSelector)(unsafe.Pointer(in.RequiredDuringSchedulingIgnoredDuringExecution)) + out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]core.PreferredSchedulingTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) + return nil +} + +// Convert_v1_NodeAffinity_To_core_NodeAffinity is an autogenerated conversion function. +func Convert_v1_NodeAffinity_To_core_NodeAffinity(in *v1.NodeAffinity, out *core.NodeAffinity, s conversion.Scope) error { + return autoConvert_v1_NodeAffinity_To_core_NodeAffinity(in, out, s) +} + +func autoConvert_core_NodeAffinity_To_v1_NodeAffinity(in *core.NodeAffinity, out *v1.NodeAffinity, s conversion.Scope) error { + out.RequiredDuringSchedulingIgnoredDuringExecution = (*v1.NodeSelector)(unsafe.Pointer(in.RequiredDuringSchedulingIgnoredDuringExecution)) + out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]v1.PreferredSchedulingTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) + return nil +} + +// Convert_core_NodeAffinity_To_v1_NodeAffinity is an autogenerated conversion function. +func Convert_core_NodeAffinity_To_v1_NodeAffinity(in *core.NodeAffinity, out *v1.NodeAffinity, s conversion.Scope) error { + return autoConvert_core_NodeAffinity_To_v1_NodeAffinity(in, out, s) +} + +func autoConvert_v1_NodeCondition_To_core_NodeCondition(in *v1.NodeCondition, out *core.NodeCondition, s conversion.Scope) error { + out.Type = core.NodeConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastHeartbeatTime = in.LastHeartbeatTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_NodeCondition_To_core_NodeCondition is an autogenerated conversion function. +func Convert_v1_NodeCondition_To_core_NodeCondition(in *v1.NodeCondition, out *core.NodeCondition, s conversion.Scope) error { + return autoConvert_v1_NodeCondition_To_core_NodeCondition(in, out, s) +} + +func autoConvert_core_NodeCondition_To_v1_NodeCondition(in *core.NodeCondition, out *v1.NodeCondition, s conversion.Scope) error { + out.Type = v1.NodeConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastHeartbeatTime = in.LastHeartbeatTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_core_NodeCondition_To_v1_NodeCondition is an autogenerated conversion function. +func Convert_core_NodeCondition_To_v1_NodeCondition(in *core.NodeCondition, out *v1.NodeCondition, s conversion.Scope) error { + return autoConvert_core_NodeCondition_To_v1_NodeCondition(in, out, s) +} + +func autoConvert_v1_NodeConfigSource_To_core_NodeConfigSource(in *v1.NodeConfigSource, out *core.NodeConfigSource, s conversion.Scope) error { + out.ConfigMapRef = (*core.ObjectReference)(unsafe.Pointer(in.ConfigMapRef)) + return nil +} + +// Convert_v1_NodeConfigSource_To_core_NodeConfigSource is an autogenerated conversion function. +func Convert_v1_NodeConfigSource_To_core_NodeConfigSource(in *v1.NodeConfigSource, out *core.NodeConfigSource, s conversion.Scope) error { + return autoConvert_v1_NodeConfigSource_To_core_NodeConfigSource(in, out, s) +} + +func autoConvert_core_NodeConfigSource_To_v1_NodeConfigSource(in *core.NodeConfigSource, out *v1.NodeConfigSource, s conversion.Scope) error { + out.ConfigMapRef = (*v1.ObjectReference)(unsafe.Pointer(in.ConfigMapRef)) + return nil +} + +// Convert_core_NodeConfigSource_To_v1_NodeConfigSource is an autogenerated conversion function. +func Convert_core_NodeConfigSource_To_v1_NodeConfigSource(in *core.NodeConfigSource, out *v1.NodeConfigSource, s conversion.Scope) error { + return autoConvert_core_NodeConfigSource_To_v1_NodeConfigSource(in, out, s) +} + +func autoConvert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints(in *v1.NodeDaemonEndpoints, out *core.NodeDaemonEndpoints, s conversion.Scope) error { + if err := Convert_v1_DaemonEndpoint_To_core_DaemonEndpoint(&in.KubeletEndpoint, &out.KubeletEndpoint, s); err != nil { + return err + } + return nil +} + +// Convert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints is an autogenerated conversion function. +func Convert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints(in *v1.NodeDaemonEndpoints, out *core.NodeDaemonEndpoints, s conversion.Scope) error { + return autoConvert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints(in, out, s) +} + +func autoConvert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in *core.NodeDaemonEndpoints, out *v1.NodeDaemonEndpoints, s conversion.Scope) error { + if err := Convert_core_DaemonEndpoint_To_v1_DaemonEndpoint(&in.KubeletEndpoint, &out.KubeletEndpoint, s); err != nil { + return err + } + return nil +} + +// Convert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints is an autogenerated conversion function. +func Convert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in *core.NodeDaemonEndpoints, out *v1.NodeDaemonEndpoints, s conversion.Scope) error { + return autoConvert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(in, out, s) +} + +func autoConvert_v1_NodeList_To_core_NodeList(in *v1.NodeList, out *core.NodeList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.Node)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_NodeList_To_core_NodeList is an autogenerated conversion function. +func Convert_v1_NodeList_To_core_NodeList(in *v1.NodeList, out *core.NodeList, s conversion.Scope) error { + return autoConvert_v1_NodeList_To_core_NodeList(in, out, s) +} + +func autoConvert_core_NodeList_To_v1_NodeList(in *core.NodeList, out *v1.NodeList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.Node)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_NodeList_To_v1_NodeList is an autogenerated conversion function. +func Convert_core_NodeList_To_v1_NodeList(in *core.NodeList, out *v1.NodeList, s conversion.Scope) error { + return autoConvert_core_NodeList_To_v1_NodeList(in, out, s) +} + +func autoConvert_v1_NodeProxyOptions_To_core_NodeProxyOptions(in *v1.NodeProxyOptions, out *core.NodeProxyOptions, s conversion.Scope) error { + out.Path = in.Path + return nil +} + +// Convert_v1_NodeProxyOptions_To_core_NodeProxyOptions is an autogenerated conversion function. +func Convert_v1_NodeProxyOptions_To_core_NodeProxyOptions(in *v1.NodeProxyOptions, out *core.NodeProxyOptions, s conversion.Scope) error { + return autoConvert_v1_NodeProxyOptions_To_core_NodeProxyOptions(in, out, s) +} + +func autoConvert_core_NodeProxyOptions_To_v1_NodeProxyOptions(in *core.NodeProxyOptions, out *v1.NodeProxyOptions, s conversion.Scope) error { + out.Path = in.Path + return nil +} + +// Convert_core_NodeProxyOptions_To_v1_NodeProxyOptions is an autogenerated conversion function. +func Convert_core_NodeProxyOptions_To_v1_NodeProxyOptions(in *core.NodeProxyOptions, out *v1.NodeProxyOptions, s conversion.Scope) error { + return autoConvert_core_NodeProxyOptions_To_v1_NodeProxyOptions(in, out, s) +} + +func autoConvert_v1_NodeResources_To_core_NodeResources(in *v1.NodeResources, out *core.NodeResources, s conversion.Scope) error { + out.Capacity = *(*core.ResourceList)(unsafe.Pointer(&in.Capacity)) + return nil +} + +// Convert_v1_NodeResources_To_core_NodeResources is an autogenerated conversion function. +func Convert_v1_NodeResources_To_core_NodeResources(in *v1.NodeResources, out *core.NodeResources, s conversion.Scope) error { + return autoConvert_v1_NodeResources_To_core_NodeResources(in, out, s) +} + +func autoConvert_core_NodeResources_To_v1_NodeResources(in *core.NodeResources, out *v1.NodeResources, s conversion.Scope) error { + out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity)) + return nil +} + +// Convert_core_NodeResources_To_v1_NodeResources is an autogenerated conversion function. +func Convert_core_NodeResources_To_v1_NodeResources(in *core.NodeResources, out *v1.NodeResources, s conversion.Scope) error { + return autoConvert_core_NodeResources_To_v1_NodeResources(in, out, s) +} + +func autoConvert_v1_NodeSelector_To_core_NodeSelector(in *v1.NodeSelector, out *core.NodeSelector, s conversion.Scope) error { + out.NodeSelectorTerms = *(*[]core.NodeSelectorTerm)(unsafe.Pointer(&in.NodeSelectorTerms)) + return nil +} + +// Convert_v1_NodeSelector_To_core_NodeSelector is an autogenerated conversion function. +func Convert_v1_NodeSelector_To_core_NodeSelector(in *v1.NodeSelector, out *core.NodeSelector, s conversion.Scope) error { + return autoConvert_v1_NodeSelector_To_core_NodeSelector(in, out, s) +} + +func autoConvert_core_NodeSelector_To_v1_NodeSelector(in *core.NodeSelector, out *v1.NodeSelector, s conversion.Scope) error { + out.NodeSelectorTerms = *(*[]v1.NodeSelectorTerm)(unsafe.Pointer(&in.NodeSelectorTerms)) + return nil +} + +// Convert_core_NodeSelector_To_v1_NodeSelector is an autogenerated conversion function. +func Convert_core_NodeSelector_To_v1_NodeSelector(in *core.NodeSelector, out *v1.NodeSelector, s conversion.Scope) error { + return autoConvert_core_NodeSelector_To_v1_NodeSelector(in, out, s) +} + +func autoConvert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement(in *v1.NodeSelectorRequirement, out *core.NodeSelectorRequirement, s conversion.Scope) error { + out.Key = in.Key + out.Operator = core.NodeSelectorOperator(in.Operator) + out.Values = *(*[]string)(unsafe.Pointer(&in.Values)) + return nil +} + +// Convert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement is an autogenerated conversion function. +func Convert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement(in *v1.NodeSelectorRequirement, out *core.NodeSelectorRequirement, s conversion.Scope) error { + return autoConvert_v1_NodeSelectorRequirement_To_core_NodeSelectorRequirement(in, out, s) +} + +func autoConvert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement(in *core.NodeSelectorRequirement, out *v1.NodeSelectorRequirement, s conversion.Scope) error { + out.Key = in.Key + out.Operator = v1.NodeSelectorOperator(in.Operator) + out.Values = *(*[]string)(unsafe.Pointer(&in.Values)) + return nil +} + +// Convert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement is an autogenerated conversion function. +func Convert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement(in *core.NodeSelectorRequirement, out *v1.NodeSelectorRequirement, s conversion.Scope) error { + return autoConvert_core_NodeSelectorRequirement_To_v1_NodeSelectorRequirement(in, out, s) +} + +func autoConvert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm(in *v1.NodeSelectorTerm, out *core.NodeSelectorTerm, s conversion.Scope) error { + out.MatchExpressions = *(*[]core.NodeSelectorRequirement)(unsafe.Pointer(&in.MatchExpressions)) + return nil +} + +// Convert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm is an autogenerated conversion function. +func Convert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm(in *v1.NodeSelectorTerm, out *core.NodeSelectorTerm, s conversion.Scope) error { + return autoConvert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm(in, out, s) +} + +func autoConvert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm(in *core.NodeSelectorTerm, out *v1.NodeSelectorTerm, s conversion.Scope) error { + out.MatchExpressions = *(*[]v1.NodeSelectorRequirement)(unsafe.Pointer(&in.MatchExpressions)) + return nil +} + +// Convert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm is an autogenerated conversion function. +func Convert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm(in *core.NodeSelectorTerm, out *v1.NodeSelectorTerm, s conversion.Scope) error { + return autoConvert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm(in, out, s) +} + +func autoConvert_v1_NodeSpec_To_core_NodeSpec(in *v1.NodeSpec, out *core.NodeSpec, s conversion.Scope) error { + out.PodCIDR = in.PodCIDR + out.ExternalID = in.ExternalID + out.ProviderID = in.ProviderID + out.Unschedulable = in.Unschedulable + out.Taints = *(*[]core.Taint)(unsafe.Pointer(&in.Taints)) + out.ConfigSource = (*core.NodeConfigSource)(unsafe.Pointer(in.ConfigSource)) + return nil +} + +// Convert_v1_NodeSpec_To_core_NodeSpec is an autogenerated conversion function. +func Convert_v1_NodeSpec_To_core_NodeSpec(in *v1.NodeSpec, out *core.NodeSpec, s conversion.Scope) error { + return autoConvert_v1_NodeSpec_To_core_NodeSpec(in, out, s) +} + +func autoConvert_core_NodeSpec_To_v1_NodeSpec(in *core.NodeSpec, out *v1.NodeSpec, s conversion.Scope) error { + out.PodCIDR = in.PodCIDR + out.ExternalID = in.ExternalID + out.ProviderID = in.ProviderID + out.Unschedulable = in.Unschedulable + out.Taints = *(*[]v1.Taint)(unsafe.Pointer(&in.Taints)) + out.ConfigSource = (*v1.NodeConfigSource)(unsafe.Pointer(in.ConfigSource)) + return nil +} + +// Convert_core_NodeSpec_To_v1_NodeSpec is an autogenerated conversion function. +func Convert_core_NodeSpec_To_v1_NodeSpec(in *core.NodeSpec, out *v1.NodeSpec, s conversion.Scope) error { + return autoConvert_core_NodeSpec_To_v1_NodeSpec(in, out, s) +} + +func autoConvert_v1_NodeStatus_To_core_NodeStatus(in *v1.NodeStatus, out *core.NodeStatus, s conversion.Scope) error { + out.Capacity = *(*core.ResourceList)(unsafe.Pointer(&in.Capacity)) + out.Allocatable = *(*core.ResourceList)(unsafe.Pointer(&in.Allocatable)) + out.Phase = core.NodePhase(in.Phase) + out.Conditions = *(*[]core.NodeCondition)(unsafe.Pointer(&in.Conditions)) + out.Addresses = *(*[]core.NodeAddress)(unsafe.Pointer(&in.Addresses)) + if err := Convert_v1_NodeDaemonEndpoints_To_core_NodeDaemonEndpoints(&in.DaemonEndpoints, &out.DaemonEndpoints, s); err != nil { + return err + } + if err := Convert_v1_NodeSystemInfo_To_core_NodeSystemInfo(&in.NodeInfo, &out.NodeInfo, s); err != nil { + return err + } + out.Images = *(*[]core.ContainerImage)(unsafe.Pointer(&in.Images)) + out.VolumesInUse = *(*[]core.UniqueVolumeName)(unsafe.Pointer(&in.VolumesInUse)) + out.VolumesAttached = *(*[]core.AttachedVolume)(unsafe.Pointer(&in.VolumesAttached)) + return nil +} + +// Convert_v1_NodeStatus_To_core_NodeStatus is an autogenerated conversion function. +func Convert_v1_NodeStatus_To_core_NodeStatus(in *v1.NodeStatus, out *core.NodeStatus, s conversion.Scope) error { + return autoConvert_v1_NodeStatus_To_core_NodeStatus(in, out, s) +} + +func autoConvert_core_NodeStatus_To_v1_NodeStatus(in *core.NodeStatus, out *v1.NodeStatus, s conversion.Scope) error { + out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity)) + out.Allocatable = *(*v1.ResourceList)(unsafe.Pointer(&in.Allocatable)) + out.Phase = v1.NodePhase(in.Phase) + out.Conditions = *(*[]v1.NodeCondition)(unsafe.Pointer(&in.Conditions)) + out.Addresses = *(*[]v1.NodeAddress)(unsafe.Pointer(&in.Addresses)) + if err := Convert_core_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints(&in.DaemonEndpoints, &out.DaemonEndpoints, s); err != nil { + return err + } + if err := Convert_core_NodeSystemInfo_To_v1_NodeSystemInfo(&in.NodeInfo, &out.NodeInfo, s); err != nil { + return err + } + out.Images = *(*[]v1.ContainerImage)(unsafe.Pointer(&in.Images)) + out.VolumesInUse = *(*[]v1.UniqueVolumeName)(unsafe.Pointer(&in.VolumesInUse)) + out.VolumesAttached = *(*[]v1.AttachedVolume)(unsafe.Pointer(&in.VolumesAttached)) + return nil +} + +// Convert_core_NodeStatus_To_v1_NodeStatus is an autogenerated conversion function. +func Convert_core_NodeStatus_To_v1_NodeStatus(in *core.NodeStatus, out *v1.NodeStatus, s conversion.Scope) error { + return autoConvert_core_NodeStatus_To_v1_NodeStatus(in, out, s) +} + +func autoConvert_v1_NodeSystemInfo_To_core_NodeSystemInfo(in *v1.NodeSystemInfo, out *core.NodeSystemInfo, s conversion.Scope) error { + out.MachineID = in.MachineID + out.SystemUUID = in.SystemUUID + out.BootID = in.BootID + out.KernelVersion = in.KernelVersion + out.OSImage = in.OSImage + out.ContainerRuntimeVersion = in.ContainerRuntimeVersion + out.KubeletVersion = in.KubeletVersion + out.KubeProxyVersion = in.KubeProxyVersion + out.OperatingSystem = in.OperatingSystem + out.Architecture = in.Architecture + return nil +} + +// Convert_v1_NodeSystemInfo_To_core_NodeSystemInfo is an autogenerated conversion function. +func Convert_v1_NodeSystemInfo_To_core_NodeSystemInfo(in *v1.NodeSystemInfo, out *core.NodeSystemInfo, s conversion.Scope) error { + return autoConvert_v1_NodeSystemInfo_To_core_NodeSystemInfo(in, out, s) +} + +func autoConvert_core_NodeSystemInfo_To_v1_NodeSystemInfo(in *core.NodeSystemInfo, out *v1.NodeSystemInfo, s conversion.Scope) error { + out.MachineID = in.MachineID + out.SystemUUID = in.SystemUUID + out.BootID = in.BootID + out.KernelVersion = in.KernelVersion + out.OSImage = in.OSImage + out.ContainerRuntimeVersion = in.ContainerRuntimeVersion + out.KubeletVersion = in.KubeletVersion + out.KubeProxyVersion = in.KubeProxyVersion + out.OperatingSystem = in.OperatingSystem + out.Architecture = in.Architecture + return nil +} + +// Convert_core_NodeSystemInfo_To_v1_NodeSystemInfo is an autogenerated conversion function. +func Convert_core_NodeSystemInfo_To_v1_NodeSystemInfo(in *core.NodeSystemInfo, out *v1.NodeSystemInfo, s conversion.Scope) error { + return autoConvert_core_NodeSystemInfo_To_v1_NodeSystemInfo(in, out, s) +} + +func autoConvert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector(in *v1.ObjectFieldSelector, out *core.ObjectFieldSelector, s conversion.Scope) error { + out.APIVersion = in.APIVersion + out.FieldPath = in.FieldPath + return nil +} + +// Convert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector is an autogenerated conversion function. +func Convert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector(in *v1.ObjectFieldSelector, out *core.ObjectFieldSelector, s conversion.Scope) error { + return autoConvert_v1_ObjectFieldSelector_To_core_ObjectFieldSelector(in, out, s) +} + +func autoConvert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector(in *core.ObjectFieldSelector, out *v1.ObjectFieldSelector, s conversion.Scope) error { + out.APIVersion = in.APIVersion + out.FieldPath = in.FieldPath + return nil +} + +// Convert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector is an autogenerated conversion function. +func Convert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector(in *core.ObjectFieldSelector, out *v1.ObjectFieldSelector, s conversion.Scope) error { + return autoConvert_core_ObjectFieldSelector_To_v1_ObjectFieldSelector(in, out, s) +} + +func autoConvert_v1_ObjectMeta_To_core_ObjectMeta(in *v1.ObjectMeta, out *core.ObjectMeta, s conversion.Scope) error { + out.Name = in.Name + out.GenerateName = in.GenerateName + out.Namespace = in.Namespace + out.SelfLink = in.SelfLink + out.UID = types.UID(in.UID) + out.ResourceVersion = in.ResourceVersion + out.Generation = in.Generation + out.CreationTimestamp = in.CreationTimestamp + out.DeletionTimestamp = (*meta_v1.Time)(unsafe.Pointer(in.DeletionTimestamp)) + out.DeletionGracePeriodSeconds = (*int64)(unsafe.Pointer(in.DeletionGracePeriodSeconds)) + out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) + out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) + out.OwnerReferences = *(*[]meta_v1.OwnerReference)(unsafe.Pointer(&in.OwnerReferences)) + out.Initializers = (*meta_v1.Initializers)(unsafe.Pointer(in.Initializers)) + out.Finalizers = *(*[]string)(unsafe.Pointer(&in.Finalizers)) + out.ClusterName = in.ClusterName + return nil +} + +// Convert_v1_ObjectMeta_To_core_ObjectMeta is an autogenerated conversion function. +func Convert_v1_ObjectMeta_To_core_ObjectMeta(in *v1.ObjectMeta, out *core.ObjectMeta, s conversion.Scope) error { + return autoConvert_v1_ObjectMeta_To_core_ObjectMeta(in, out, s) +} + +func autoConvert_core_ObjectMeta_To_v1_ObjectMeta(in *core.ObjectMeta, out *v1.ObjectMeta, s conversion.Scope) error { + out.Name = in.Name + out.GenerateName = in.GenerateName + out.Namespace = in.Namespace + out.SelfLink = in.SelfLink + out.UID = types.UID(in.UID) + out.ResourceVersion = in.ResourceVersion + out.Generation = in.Generation + out.CreationTimestamp = in.CreationTimestamp + out.DeletionTimestamp = (*meta_v1.Time)(unsafe.Pointer(in.DeletionTimestamp)) + out.DeletionGracePeriodSeconds = (*int64)(unsafe.Pointer(in.DeletionGracePeriodSeconds)) + out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) + out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) + out.OwnerReferences = *(*[]meta_v1.OwnerReference)(unsafe.Pointer(&in.OwnerReferences)) + out.Initializers = (*meta_v1.Initializers)(unsafe.Pointer(in.Initializers)) + out.Finalizers = *(*[]string)(unsafe.Pointer(&in.Finalizers)) + out.ClusterName = in.ClusterName + return nil +} + +// Convert_core_ObjectMeta_To_v1_ObjectMeta is an autogenerated conversion function. +func Convert_core_ObjectMeta_To_v1_ObjectMeta(in *core.ObjectMeta, out *v1.ObjectMeta, s conversion.Scope) error { + return autoConvert_core_ObjectMeta_To_v1_ObjectMeta(in, out, s) +} + +func autoConvert_v1_ObjectReference_To_core_ObjectReference(in *v1.ObjectReference, out *core.ObjectReference, s conversion.Scope) error { + out.Kind = in.Kind + out.Namespace = in.Namespace + out.Name = in.Name + out.UID = types.UID(in.UID) + out.APIVersion = in.APIVersion + out.ResourceVersion = in.ResourceVersion + out.FieldPath = in.FieldPath + return nil +} + +// Convert_v1_ObjectReference_To_core_ObjectReference is an autogenerated conversion function. +func Convert_v1_ObjectReference_To_core_ObjectReference(in *v1.ObjectReference, out *core.ObjectReference, s conversion.Scope) error { + return autoConvert_v1_ObjectReference_To_core_ObjectReference(in, out, s) +} + +func autoConvert_core_ObjectReference_To_v1_ObjectReference(in *core.ObjectReference, out *v1.ObjectReference, s conversion.Scope) error { + out.Kind = in.Kind + out.Namespace = in.Namespace + out.Name = in.Name + out.UID = types.UID(in.UID) + out.APIVersion = in.APIVersion + out.ResourceVersion = in.ResourceVersion + out.FieldPath = in.FieldPath + return nil +} + +// Convert_core_ObjectReference_To_v1_ObjectReference is an autogenerated conversion function. +func Convert_core_ObjectReference_To_v1_ObjectReference(in *core.ObjectReference, out *v1.ObjectReference, s conversion.Scope) error { + return autoConvert_core_ObjectReference_To_v1_ObjectReference(in, out, s) +} + +func autoConvert_v1_PersistentVolume_To_core_PersistentVolume(in *v1.PersistentVolume, out *core.PersistentVolume, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_PersistentVolume_To_core_PersistentVolume is an autogenerated conversion function. +func Convert_v1_PersistentVolume_To_core_PersistentVolume(in *v1.PersistentVolume, out *core.PersistentVolume, s conversion.Scope) error { + return autoConvert_v1_PersistentVolume_To_core_PersistentVolume(in, out, s) +} + +func autoConvert_core_PersistentVolume_To_v1_PersistentVolume(in *core.PersistentVolume, out *v1.PersistentVolume, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_core_PersistentVolume_To_v1_PersistentVolume is an autogenerated conversion function. +func Convert_core_PersistentVolume_To_v1_PersistentVolume(in *core.PersistentVolume, out *v1.PersistentVolume, s conversion.Scope) error { + return autoConvert_core_PersistentVolume_To_v1_PersistentVolume(in, out, s) +} + +func autoConvert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim(in *v1.PersistentVolumeClaim, out *core.PersistentVolumeClaim, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim is an autogenerated conversion function. +func Convert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim(in *v1.PersistentVolumeClaim, out *core.PersistentVolumeClaim, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim(in, out, s) +} + +func autoConvert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim(in *core.PersistentVolumeClaim, out *v1.PersistentVolumeClaim, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim is an autogenerated conversion function. +func Convert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim(in *core.PersistentVolumeClaim, out *v1.PersistentVolumeClaim, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeClaim_To_v1_PersistentVolumeClaim(in, out, s) +} + +func autoConvert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition(in *v1.PersistentVolumeClaimCondition, out *core.PersistentVolumeClaimCondition, s conversion.Scope) error { + out.Type = core.PersistentVolumeClaimConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastProbeTime = in.LastProbeTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition is an autogenerated conversion function. +func Convert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition(in *v1.PersistentVolumeClaimCondition, out *core.PersistentVolumeClaimCondition, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeClaimCondition_To_core_PersistentVolumeClaimCondition(in, out, s) +} + +func autoConvert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition(in *core.PersistentVolumeClaimCondition, out *v1.PersistentVolumeClaimCondition, s conversion.Scope) error { + out.Type = v1.PersistentVolumeClaimConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastProbeTime = in.LastProbeTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition is an autogenerated conversion function. +func Convert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition(in *core.PersistentVolumeClaimCondition, out *v1.PersistentVolumeClaimCondition, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeClaimCondition_To_v1_PersistentVolumeClaimCondition(in, out, s) +} + +func autoConvert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList(in *v1.PersistentVolumeClaimList, out *core.PersistentVolumeClaimList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.PersistentVolumeClaim)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList is an autogenerated conversion function. +func Convert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList(in *v1.PersistentVolumeClaimList, out *core.PersistentVolumeClaimList, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeClaimList_To_core_PersistentVolumeClaimList(in, out, s) +} + +func autoConvert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList(in *core.PersistentVolumeClaimList, out *v1.PersistentVolumeClaimList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.PersistentVolumeClaim)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList is an autogenerated conversion function. +func Convert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList(in *core.PersistentVolumeClaimList, out *v1.PersistentVolumeClaimList, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeClaimList_To_v1_PersistentVolumeClaimList(in, out, s) +} + +func autoConvert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec(in *v1.PersistentVolumeClaimSpec, out *core.PersistentVolumeClaimSpec, s conversion.Scope) error { + out.AccessModes = *(*[]core.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := Convert_v1_ResourceRequirements_To_core_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil { + return err + } + out.VolumeName = in.VolumeName + out.StorageClassName = (*string)(unsafe.Pointer(in.StorageClassName)) + return nil +} + +// Convert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec is an autogenerated conversion function. +func Convert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec(in *v1.PersistentVolumeClaimSpec, out *core.PersistentVolumeClaimSpec, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeClaimSpec_To_core_PersistentVolumeClaimSpec(in, out, s) +} + +func autoConvert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(in *core.PersistentVolumeClaimSpec, out *v1.PersistentVolumeClaimSpec, s conversion.Scope) error { + out.AccessModes = *(*[]v1.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := Convert_core_ResourceRequirements_To_v1_ResourceRequirements(&in.Resources, &out.Resources, s); err != nil { + return err + } + out.VolumeName = in.VolumeName + out.StorageClassName = (*string)(unsafe.Pointer(in.StorageClassName)) + return nil +} + +// Convert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec is an autogenerated conversion function. +func Convert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(in *core.PersistentVolumeClaimSpec, out *v1.PersistentVolumeClaimSpec, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeClaimSpec_To_v1_PersistentVolumeClaimSpec(in, out, s) +} + +func autoConvert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus(in *v1.PersistentVolumeClaimStatus, out *core.PersistentVolumeClaimStatus, s conversion.Scope) error { + out.Phase = core.PersistentVolumeClaimPhase(in.Phase) + out.AccessModes = *(*[]core.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) + out.Capacity = *(*core.ResourceList)(unsafe.Pointer(&in.Capacity)) + out.Conditions = *(*[]core.PersistentVolumeClaimCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus is an autogenerated conversion function. +func Convert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus(in *v1.PersistentVolumeClaimStatus, out *core.PersistentVolumeClaimStatus, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeClaimStatus_To_core_PersistentVolumeClaimStatus(in, out, s) +} + +func autoConvert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(in *core.PersistentVolumeClaimStatus, out *v1.PersistentVolumeClaimStatus, s conversion.Scope) error { + out.Phase = v1.PersistentVolumeClaimPhase(in.Phase) + out.AccessModes = *(*[]v1.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) + out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity)) + out.Conditions = *(*[]v1.PersistentVolumeClaimCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus is an autogenerated conversion function. +func Convert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(in *core.PersistentVolumeClaimStatus, out *v1.PersistentVolumeClaimStatus, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeClaimStatus_To_v1_PersistentVolumeClaimStatus(in, out, s) +} + +func autoConvert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource(in *v1.PersistentVolumeClaimVolumeSource, out *core.PersistentVolumeClaimVolumeSource, s conversion.Scope) error { + out.ClaimName = in.ClaimName + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource is an autogenerated conversion function. +func Convert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource(in *v1.PersistentVolumeClaimVolumeSource, out *core.PersistentVolumeClaimVolumeSource, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeClaimVolumeSource_To_core_PersistentVolumeClaimVolumeSource(in, out, s) +} + +func autoConvert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource(in *core.PersistentVolumeClaimVolumeSource, out *v1.PersistentVolumeClaimVolumeSource, s conversion.Scope) error { + out.ClaimName = in.ClaimName + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource is an autogenerated conversion function. +func Convert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource(in *core.PersistentVolumeClaimVolumeSource, out *v1.PersistentVolumeClaimVolumeSource, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeClaimVolumeSource_To_v1_PersistentVolumeClaimVolumeSource(in, out, s) +} + +func autoConvert_v1_PersistentVolumeList_To_core_PersistentVolumeList(in *v1.PersistentVolumeList, out *core.PersistentVolumeList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]core.PersistentVolume, len(*in)) + for i := range *in { + if err := Convert_v1_PersistentVolume_To_core_PersistentVolume(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_PersistentVolumeList_To_core_PersistentVolumeList is an autogenerated conversion function. +func Convert_v1_PersistentVolumeList_To_core_PersistentVolumeList(in *v1.PersistentVolumeList, out *core.PersistentVolumeList, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeList_To_core_PersistentVolumeList(in, out, s) +} + +func autoConvert_core_PersistentVolumeList_To_v1_PersistentVolumeList(in *core.PersistentVolumeList, out *v1.PersistentVolumeList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.PersistentVolume, len(*in)) + for i := range *in { + if err := Convert_core_PersistentVolume_To_v1_PersistentVolume(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_core_PersistentVolumeList_To_v1_PersistentVolumeList is an autogenerated conversion function. +func Convert_core_PersistentVolumeList_To_v1_PersistentVolumeList(in *core.PersistentVolumeList, out *v1.PersistentVolumeList, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeList_To_v1_PersistentVolumeList(in, out, s) +} + +func autoConvert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource(in *v1.PersistentVolumeSource, out *core.PersistentVolumeSource, s conversion.Scope) error { + out.GCEPersistentDisk = (*core.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk)) + out.AWSElasticBlockStore = (*core.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore)) + out.HostPath = (*core.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) + out.Glusterfs = (*core.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) + out.NFS = (*core.NFSVolumeSource)(unsafe.Pointer(in.NFS)) + out.RBD = (*core.RBDPersistentVolumeSource)(unsafe.Pointer(in.RBD)) + out.ISCSI = (*core.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) + out.Cinder = (*core.CinderVolumeSource)(unsafe.Pointer(in.Cinder)) + out.CephFS = (*core.CephFSPersistentVolumeSource)(unsafe.Pointer(in.CephFS)) + out.FC = (*core.FCVolumeSource)(unsafe.Pointer(in.FC)) + out.Flocker = (*core.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) + out.FlexVolume = (*core.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) + out.AzureFile = (*core.AzureFilePersistentVolumeSource)(unsafe.Pointer(in.AzureFile)) + out.VsphereVolume = (*core.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) + out.Quobyte = (*core.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) + out.AzureDisk = (*core.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) + out.PhotonPersistentDisk = (*core.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk)) + out.PortworxVolume = (*core.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume)) + out.ScaleIO = (*core.ScaleIOPersistentVolumeSource)(unsafe.Pointer(in.ScaleIO)) + out.Local = (*core.LocalVolumeSource)(unsafe.Pointer(in.Local)) + out.StorageOS = (*core.StorageOSPersistentVolumeSource)(unsafe.Pointer(in.StorageOS)) + return nil +} + +// Convert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource is an autogenerated conversion function. +func Convert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource(in *v1.PersistentVolumeSource, out *core.PersistentVolumeSource, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource(in, out, s) +} + +func autoConvert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource(in *core.PersistentVolumeSource, out *v1.PersistentVolumeSource, s conversion.Scope) error { + out.GCEPersistentDisk = (*v1.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk)) + out.AWSElasticBlockStore = (*v1.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore)) + out.HostPath = (*v1.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) + out.Glusterfs = (*v1.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) + out.NFS = (*v1.NFSVolumeSource)(unsafe.Pointer(in.NFS)) + out.RBD = (*v1.RBDPersistentVolumeSource)(unsafe.Pointer(in.RBD)) + out.Quobyte = (*v1.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) + out.ISCSI = (*v1.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) + out.FlexVolume = (*v1.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) + out.Cinder = (*v1.CinderVolumeSource)(unsafe.Pointer(in.Cinder)) + out.CephFS = (*v1.CephFSPersistentVolumeSource)(unsafe.Pointer(in.CephFS)) + out.FC = (*v1.FCVolumeSource)(unsafe.Pointer(in.FC)) + out.Flocker = (*v1.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) + out.AzureFile = (*v1.AzureFilePersistentVolumeSource)(unsafe.Pointer(in.AzureFile)) + out.VsphereVolume = (*v1.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) + out.AzureDisk = (*v1.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) + out.PhotonPersistentDisk = (*v1.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk)) + out.PortworxVolume = (*v1.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume)) + out.ScaleIO = (*v1.ScaleIOPersistentVolumeSource)(unsafe.Pointer(in.ScaleIO)) + out.Local = (*v1.LocalVolumeSource)(unsafe.Pointer(in.Local)) + out.StorageOS = (*v1.StorageOSPersistentVolumeSource)(unsafe.Pointer(in.StorageOS)) + return nil +} + +// Convert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource is an autogenerated conversion function. +func Convert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource(in *core.PersistentVolumeSource, out *v1.PersistentVolumeSource, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource(in, out, s) +} + +func autoConvert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(in *v1.PersistentVolumeSpec, out *core.PersistentVolumeSpec, s conversion.Scope) error { + out.Capacity = *(*core.ResourceList)(unsafe.Pointer(&in.Capacity)) + if err := Convert_v1_PersistentVolumeSource_To_core_PersistentVolumeSource(&in.PersistentVolumeSource, &out.PersistentVolumeSource, s); err != nil { + return err + } + out.AccessModes = *(*[]core.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) + out.ClaimRef = (*core.ObjectReference)(unsafe.Pointer(in.ClaimRef)) + out.PersistentVolumeReclaimPolicy = core.PersistentVolumeReclaimPolicy(in.PersistentVolumeReclaimPolicy) + out.StorageClassName = in.StorageClassName + out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions)) + return nil +} + +// Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec is an autogenerated conversion function. +func Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(in *v1.PersistentVolumeSpec, out *core.PersistentVolumeSpec, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(in, out, s) +} + +func autoConvert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(in *core.PersistentVolumeSpec, out *v1.PersistentVolumeSpec, s conversion.Scope) error { + out.Capacity = *(*v1.ResourceList)(unsafe.Pointer(&in.Capacity)) + if err := Convert_core_PersistentVolumeSource_To_v1_PersistentVolumeSource(&in.PersistentVolumeSource, &out.PersistentVolumeSource, s); err != nil { + return err + } + out.AccessModes = *(*[]v1.PersistentVolumeAccessMode)(unsafe.Pointer(&in.AccessModes)) + out.ClaimRef = (*v1.ObjectReference)(unsafe.Pointer(in.ClaimRef)) + out.PersistentVolumeReclaimPolicy = v1.PersistentVolumeReclaimPolicy(in.PersistentVolumeReclaimPolicy) + out.StorageClassName = in.StorageClassName + out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions)) + return nil +} + +// Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec is an autogenerated conversion function. +func Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(in *core.PersistentVolumeSpec, out *v1.PersistentVolumeSpec, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(in, out, s) +} + +func autoConvert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus(in *v1.PersistentVolumeStatus, out *core.PersistentVolumeStatus, s conversion.Scope) error { + out.Phase = core.PersistentVolumePhase(in.Phase) + out.Message = in.Message + out.Reason = in.Reason + return nil +} + +// Convert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus is an autogenerated conversion function. +func Convert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus(in *v1.PersistentVolumeStatus, out *core.PersistentVolumeStatus, s conversion.Scope) error { + return autoConvert_v1_PersistentVolumeStatus_To_core_PersistentVolumeStatus(in, out, s) +} + +func autoConvert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(in *core.PersistentVolumeStatus, out *v1.PersistentVolumeStatus, s conversion.Scope) error { + out.Phase = v1.PersistentVolumePhase(in.Phase) + out.Message = in.Message + out.Reason = in.Reason + return nil +} + +// Convert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus is an autogenerated conversion function. +func Convert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(in *core.PersistentVolumeStatus, out *v1.PersistentVolumeStatus, s conversion.Scope) error { + return autoConvert_core_PersistentVolumeStatus_To_v1_PersistentVolumeStatus(in, out, s) +} + +func autoConvert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource(in *v1.PhotonPersistentDiskVolumeSource, out *core.PhotonPersistentDiskVolumeSource, s conversion.Scope) error { + out.PdID = in.PdID + out.FSType = in.FSType + return nil +} + +// Convert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource is an autogenerated conversion function. +func Convert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource(in *v1.PhotonPersistentDiskVolumeSource, out *core.PhotonPersistentDiskVolumeSource, s conversion.Scope) error { + return autoConvert_v1_PhotonPersistentDiskVolumeSource_To_core_PhotonPersistentDiskVolumeSource(in, out, s) +} + +func autoConvert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource(in *core.PhotonPersistentDiskVolumeSource, out *v1.PhotonPersistentDiskVolumeSource, s conversion.Scope) error { + out.PdID = in.PdID + out.FSType = in.FSType + return nil +} + +// Convert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource is an autogenerated conversion function. +func Convert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource(in *core.PhotonPersistentDiskVolumeSource, out *v1.PhotonPersistentDiskVolumeSource, s conversion.Scope) error { + return autoConvert_core_PhotonPersistentDiskVolumeSource_To_v1_PhotonPersistentDiskVolumeSource(in, out, s) +} + +func autoConvert_v1_Pod_To_core_Pod(in *v1.Pod, out *core.Pod, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_PodSpec_To_core_PodSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_PodStatus_To_core_PodStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_Pod_To_core_Pod is an autogenerated conversion function. +func Convert_v1_Pod_To_core_Pod(in *v1.Pod, out *core.Pod, s conversion.Scope) error { + return autoConvert_v1_Pod_To_core_Pod(in, out, s) +} + +func autoConvert_core_Pod_To_v1_Pod(in *core.Pod, out *v1.Pod, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_PodSpec_To_v1_PodSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_core_PodStatus_To_v1_PodStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +func autoConvert_v1_PodAffinity_To_core_PodAffinity(in *v1.PodAffinity, out *core.PodAffinity, s conversion.Scope) error { + out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]core.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution)) + out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]core.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) + return nil +} + +// Convert_v1_PodAffinity_To_core_PodAffinity is an autogenerated conversion function. +func Convert_v1_PodAffinity_To_core_PodAffinity(in *v1.PodAffinity, out *core.PodAffinity, s conversion.Scope) error { + return autoConvert_v1_PodAffinity_To_core_PodAffinity(in, out, s) +} + +func autoConvert_core_PodAffinity_To_v1_PodAffinity(in *core.PodAffinity, out *v1.PodAffinity, s conversion.Scope) error { + out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]v1.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution)) + out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]v1.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) + return nil +} + +// Convert_core_PodAffinity_To_v1_PodAffinity is an autogenerated conversion function. +func Convert_core_PodAffinity_To_v1_PodAffinity(in *core.PodAffinity, out *v1.PodAffinity, s conversion.Scope) error { + return autoConvert_core_PodAffinity_To_v1_PodAffinity(in, out, s) +} + +func autoConvert_v1_PodAffinityTerm_To_core_PodAffinityTerm(in *v1.PodAffinityTerm, out *core.PodAffinityTerm, s conversion.Scope) error { + out.LabelSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.LabelSelector)) + out.Namespaces = *(*[]string)(unsafe.Pointer(&in.Namespaces)) + out.TopologyKey = in.TopologyKey + return nil +} + +// Convert_v1_PodAffinityTerm_To_core_PodAffinityTerm is an autogenerated conversion function. +func Convert_v1_PodAffinityTerm_To_core_PodAffinityTerm(in *v1.PodAffinityTerm, out *core.PodAffinityTerm, s conversion.Scope) error { + return autoConvert_v1_PodAffinityTerm_To_core_PodAffinityTerm(in, out, s) +} + +func autoConvert_core_PodAffinityTerm_To_v1_PodAffinityTerm(in *core.PodAffinityTerm, out *v1.PodAffinityTerm, s conversion.Scope) error { + out.LabelSelector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.LabelSelector)) + out.Namespaces = *(*[]string)(unsafe.Pointer(&in.Namespaces)) + out.TopologyKey = in.TopologyKey + return nil +} + +// Convert_core_PodAffinityTerm_To_v1_PodAffinityTerm is an autogenerated conversion function. +func Convert_core_PodAffinityTerm_To_v1_PodAffinityTerm(in *core.PodAffinityTerm, out *v1.PodAffinityTerm, s conversion.Scope) error { + return autoConvert_core_PodAffinityTerm_To_v1_PodAffinityTerm(in, out, s) +} + +func autoConvert_v1_PodAntiAffinity_To_core_PodAntiAffinity(in *v1.PodAntiAffinity, out *core.PodAntiAffinity, s conversion.Scope) error { + out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]core.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution)) + out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]core.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) + return nil +} + +// Convert_v1_PodAntiAffinity_To_core_PodAntiAffinity is an autogenerated conversion function. +func Convert_v1_PodAntiAffinity_To_core_PodAntiAffinity(in *v1.PodAntiAffinity, out *core.PodAntiAffinity, s conversion.Scope) error { + return autoConvert_v1_PodAntiAffinity_To_core_PodAntiAffinity(in, out, s) +} + +func autoConvert_core_PodAntiAffinity_To_v1_PodAntiAffinity(in *core.PodAntiAffinity, out *v1.PodAntiAffinity, s conversion.Scope) error { + out.RequiredDuringSchedulingIgnoredDuringExecution = *(*[]v1.PodAffinityTerm)(unsafe.Pointer(&in.RequiredDuringSchedulingIgnoredDuringExecution)) + out.PreferredDuringSchedulingIgnoredDuringExecution = *(*[]v1.WeightedPodAffinityTerm)(unsafe.Pointer(&in.PreferredDuringSchedulingIgnoredDuringExecution)) + return nil +} + +// Convert_core_PodAntiAffinity_To_v1_PodAntiAffinity is an autogenerated conversion function. +func Convert_core_PodAntiAffinity_To_v1_PodAntiAffinity(in *core.PodAntiAffinity, out *v1.PodAntiAffinity, s conversion.Scope) error { + return autoConvert_core_PodAntiAffinity_To_v1_PodAntiAffinity(in, out, s) +} + +func autoConvert_v1_PodAttachOptions_To_core_PodAttachOptions(in *v1.PodAttachOptions, out *core.PodAttachOptions, s conversion.Scope) error { + out.Stdin = in.Stdin + out.Stdout = in.Stdout + out.Stderr = in.Stderr + out.TTY = in.TTY + out.Container = in.Container + return nil +} + +// Convert_v1_PodAttachOptions_To_core_PodAttachOptions is an autogenerated conversion function. +func Convert_v1_PodAttachOptions_To_core_PodAttachOptions(in *v1.PodAttachOptions, out *core.PodAttachOptions, s conversion.Scope) error { + return autoConvert_v1_PodAttachOptions_To_core_PodAttachOptions(in, out, s) +} + +func autoConvert_core_PodAttachOptions_To_v1_PodAttachOptions(in *core.PodAttachOptions, out *v1.PodAttachOptions, s conversion.Scope) error { + out.Stdin = in.Stdin + out.Stdout = in.Stdout + out.Stderr = in.Stderr + out.TTY = in.TTY + out.Container = in.Container + return nil +} + +// Convert_core_PodAttachOptions_To_v1_PodAttachOptions is an autogenerated conversion function. +func Convert_core_PodAttachOptions_To_v1_PodAttachOptions(in *core.PodAttachOptions, out *v1.PodAttachOptions, s conversion.Scope) error { + return autoConvert_core_PodAttachOptions_To_v1_PodAttachOptions(in, out, s) +} + +func autoConvert_v1_PodCondition_To_core_PodCondition(in *v1.PodCondition, out *core.PodCondition, s conversion.Scope) error { + out.Type = core.PodConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastProbeTime = in.LastProbeTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_PodCondition_To_core_PodCondition is an autogenerated conversion function. +func Convert_v1_PodCondition_To_core_PodCondition(in *v1.PodCondition, out *core.PodCondition, s conversion.Scope) error { + return autoConvert_v1_PodCondition_To_core_PodCondition(in, out, s) +} + +func autoConvert_core_PodCondition_To_v1_PodCondition(in *core.PodCondition, out *v1.PodCondition, s conversion.Scope) error { + out.Type = v1.PodConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastProbeTime = in.LastProbeTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_core_PodCondition_To_v1_PodCondition is an autogenerated conversion function. +func Convert_core_PodCondition_To_v1_PodCondition(in *core.PodCondition, out *v1.PodCondition, s conversion.Scope) error { + return autoConvert_core_PodCondition_To_v1_PodCondition(in, out, s) +} + +func autoConvert_v1_PodExecOptions_To_core_PodExecOptions(in *v1.PodExecOptions, out *core.PodExecOptions, s conversion.Scope) error { + out.Stdin = in.Stdin + out.Stdout = in.Stdout + out.Stderr = in.Stderr + out.TTY = in.TTY + out.Container = in.Container + out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) + return nil +} + +// Convert_v1_PodExecOptions_To_core_PodExecOptions is an autogenerated conversion function. +func Convert_v1_PodExecOptions_To_core_PodExecOptions(in *v1.PodExecOptions, out *core.PodExecOptions, s conversion.Scope) error { + return autoConvert_v1_PodExecOptions_To_core_PodExecOptions(in, out, s) +} + +func autoConvert_core_PodExecOptions_To_v1_PodExecOptions(in *core.PodExecOptions, out *v1.PodExecOptions, s conversion.Scope) error { + out.Stdin = in.Stdin + out.Stdout = in.Stdout + out.Stderr = in.Stderr + out.TTY = in.TTY + out.Container = in.Container + out.Command = *(*[]string)(unsafe.Pointer(&in.Command)) + return nil +} + +// Convert_core_PodExecOptions_To_v1_PodExecOptions is an autogenerated conversion function. +func Convert_core_PodExecOptions_To_v1_PodExecOptions(in *core.PodExecOptions, out *v1.PodExecOptions, s conversion.Scope) error { + return autoConvert_core_PodExecOptions_To_v1_PodExecOptions(in, out, s) +} + +func autoConvert_v1_PodList_To_core_PodList(in *v1.PodList, out *core.PodList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]core.Pod, len(*in)) + for i := range *in { + if err := Convert_v1_Pod_To_core_Pod(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_PodList_To_core_PodList is an autogenerated conversion function. +func Convert_v1_PodList_To_core_PodList(in *v1.PodList, out *core.PodList, s conversion.Scope) error { + return autoConvert_v1_PodList_To_core_PodList(in, out, s) +} + +func autoConvert_core_PodList_To_v1_PodList(in *core.PodList, out *v1.PodList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.Pod, len(*in)) + for i := range *in { + if err := Convert_core_Pod_To_v1_Pod(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_core_PodList_To_v1_PodList is an autogenerated conversion function. +func Convert_core_PodList_To_v1_PodList(in *core.PodList, out *v1.PodList, s conversion.Scope) error { + return autoConvert_core_PodList_To_v1_PodList(in, out, s) +} + +func autoConvert_v1_PodLogOptions_To_core_PodLogOptions(in *v1.PodLogOptions, out *core.PodLogOptions, s conversion.Scope) error { + out.Container = in.Container + out.Follow = in.Follow + out.Previous = in.Previous + out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds)) + out.SinceTime = (*meta_v1.Time)(unsafe.Pointer(in.SinceTime)) + out.Timestamps = in.Timestamps + out.TailLines = (*int64)(unsafe.Pointer(in.TailLines)) + out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes)) + return nil +} + +// Convert_v1_PodLogOptions_To_core_PodLogOptions is an autogenerated conversion function. +func Convert_v1_PodLogOptions_To_core_PodLogOptions(in *v1.PodLogOptions, out *core.PodLogOptions, s conversion.Scope) error { + return autoConvert_v1_PodLogOptions_To_core_PodLogOptions(in, out, s) +} + +func autoConvert_core_PodLogOptions_To_v1_PodLogOptions(in *core.PodLogOptions, out *v1.PodLogOptions, s conversion.Scope) error { + out.Container = in.Container + out.Follow = in.Follow + out.Previous = in.Previous + out.SinceSeconds = (*int64)(unsafe.Pointer(in.SinceSeconds)) + out.SinceTime = (*meta_v1.Time)(unsafe.Pointer(in.SinceTime)) + out.Timestamps = in.Timestamps + out.TailLines = (*int64)(unsafe.Pointer(in.TailLines)) + out.LimitBytes = (*int64)(unsafe.Pointer(in.LimitBytes)) + return nil +} + +// Convert_core_PodLogOptions_To_v1_PodLogOptions is an autogenerated conversion function. +func Convert_core_PodLogOptions_To_v1_PodLogOptions(in *core.PodLogOptions, out *v1.PodLogOptions, s conversion.Scope) error { + return autoConvert_core_PodLogOptions_To_v1_PodLogOptions(in, out, s) +} + +func autoConvert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(in *v1.PodPortForwardOptions, out *core.PodPortForwardOptions, s conversion.Scope) error { + out.Ports = *(*[]int32)(unsafe.Pointer(&in.Ports)) + return nil +} + +// Convert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions is an autogenerated conversion function. +func Convert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(in *v1.PodPortForwardOptions, out *core.PodPortForwardOptions, s conversion.Scope) error { + return autoConvert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(in, out, s) +} + +func autoConvert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions(in *core.PodPortForwardOptions, out *v1.PodPortForwardOptions, s conversion.Scope) error { + out.Ports = *(*[]int32)(unsafe.Pointer(&in.Ports)) + return nil +} + +// Convert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions is an autogenerated conversion function. +func Convert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions(in *core.PodPortForwardOptions, out *v1.PodPortForwardOptions, s conversion.Scope) error { + return autoConvert_core_PodPortForwardOptions_To_v1_PodPortForwardOptions(in, out, s) +} + +func autoConvert_v1_PodProxyOptions_To_core_PodProxyOptions(in *v1.PodProxyOptions, out *core.PodProxyOptions, s conversion.Scope) error { + out.Path = in.Path + return nil +} + +// Convert_v1_PodProxyOptions_To_core_PodProxyOptions is an autogenerated conversion function. +func Convert_v1_PodProxyOptions_To_core_PodProxyOptions(in *v1.PodProxyOptions, out *core.PodProxyOptions, s conversion.Scope) error { + return autoConvert_v1_PodProxyOptions_To_core_PodProxyOptions(in, out, s) +} + +func autoConvert_core_PodProxyOptions_To_v1_PodProxyOptions(in *core.PodProxyOptions, out *v1.PodProxyOptions, s conversion.Scope) error { + out.Path = in.Path + return nil +} + +// Convert_core_PodProxyOptions_To_v1_PodProxyOptions is an autogenerated conversion function. +func Convert_core_PodProxyOptions_To_v1_PodProxyOptions(in *core.PodProxyOptions, out *v1.PodProxyOptions, s conversion.Scope) error { + return autoConvert_core_PodProxyOptions_To_v1_PodProxyOptions(in, out, s) +} + +func autoConvert_v1_PodSecurityContext_To_core_PodSecurityContext(in *v1.PodSecurityContext, out *core.PodSecurityContext, s conversion.Scope) error { + out.SELinuxOptions = (*core.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) + out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser)) + out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot)) + out.SupplementalGroups = *(*[]int64)(unsafe.Pointer(&in.SupplementalGroups)) + out.FSGroup = (*int64)(unsafe.Pointer(in.FSGroup)) + return nil +} + +func autoConvert_core_PodSecurityContext_To_v1_PodSecurityContext(in *core.PodSecurityContext, out *v1.PodSecurityContext, s conversion.Scope) error { + // INFO: in.HostNetwork opted out of conversion generation + // INFO: in.HostPID opted out of conversion generation + // INFO: in.HostIPC opted out of conversion generation + out.SELinuxOptions = (*v1.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) + out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser)) + out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot)) + out.SupplementalGroups = *(*[]int64)(unsafe.Pointer(&in.SupplementalGroups)) + out.FSGroup = (*int64)(unsafe.Pointer(in.FSGroup)) + return nil +} + +func autoConvert_v1_PodSignature_To_core_PodSignature(in *v1.PodSignature, out *core.PodSignature, s conversion.Scope) error { + out.PodController = (*meta_v1.OwnerReference)(unsafe.Pointer(in.PodController)) + return nil +} + +// Convert_v1_PodSignature_To_core_PodSignature is an autogenerated conversion function. +func Convert_v1_PodSignature_To_core_PodSignature(in *v1.PodSignature, out *core.PodSignature, s conversion.Scope) error { + return autoConvert_v1_PodSignature_To_core_PodSignature(in, out, s) +} + +func autoConvert_core_PodSignature_To_v1_PodSignature(in *core.PodSignature, out *v1.PodSignature, s conversion.Scope) error { + out.PodController = (*meta_v1.OwnerReference)(unsafe.Pointer(in.PodController)) + return nil +} + +// Convert_core_PodSignature_To_v1_PodSignature is an autogenerated conversion function. +func Convert_core_PodSignature_To_v1_PodSignature(in *core.PodSignature, out *v1.PodSignature, s conversion.Scope) error { + return autoConvert_core_PodSignature_To_v1_PodSignature(in, out, s) +} + +func autoConvert_v1_PodSpec_To_core_PodSpec(in *v1.PodSpec, out *core.PodSpec, s conversion.Scope) error { + if in.Volumes != nil { + in, out := &in.Volumes, &out.Volumes + *out = make([]core.Volume, len(*in)) + for i := range *in { + if err := Convert_v1_Volume_To_core_Volume(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Volumes = nil + } + if in.InitContainers != nil { + in, out := &in.InitContainers, &out.InitContainers + *out = make([]core.Container, len(*in)) + for i := range *in { + if err := Convert_v1_Container_To_core_Container(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.InitContainers = nil + } + if in.Containers != nil { + in, out := &in.Containers, &out.Containers + *out = make([]core.Container, len(*in)) + for i := range *in { + if err := Convert_v1_Container_To_core_Container(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Containers = nil + } + out.RestartPolicy = core.RestartPolicy(in.RestartPolicy) + out.TerminationGracePeriodSeconds = (*int64)(unsafe.Pointer(in.TerminationGracePeriodSeconds)) + out.ActiveDeadlineSeconds = (*int64)(unsafe.Pointer(in.ActiveDeadlineSeconds)) + out.DNSPolicy = core.DNSPolicy(in.DNSPolicy) + out.NodeSelector = *(*map[string]string)(unsafe.Pointer(&in.NodeSelector)) + out.ServiceAccountName = in.ServiceAccountName + // INFO: in.DeprecatedServiceAccount opted out of conversion generation + out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken)) + out.NodeName = in.NodeName + // INFO: in.HostNetwork opted out of conversion generation + // INFO: in.HostPID opted out of conversion generation + // INFO: in.HostIPC opted out of conversion generation + if in.SecurityContext != nil { + in, out := &in.SecurityContext, &out.SecurityContext + *out = new(core.PodSecurityContext) + if err := Convert_v1_PodSecurityContext_To_core_PodSecurityContext(*in, *out, s); err != nil { + return err + } + } else { + out.SecurityContext = nil + } + out.ImagePullSecrets = *(*[]core.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets)) + out.Hostname = in.Hostname + out.Subdomain = in.Subdomain + out.Affinity = (*core.Affinity)(unsafe.Pointer(in.Affinity)) + out.SchedulerName = in.SchedulerName + out.Tolerations = *(*[]core.Toleration)(unsafe.Pointer(&in.Tolerations)) + out.HostAliases = *(*[]core.HostAlias)(unsafe.Pointer(&in.HostAliases)) + out.PriorityClassName = in.PriorityClassName + out.Priority = (*int32)(unsafe.Pointer(in.Priority)) + return nil +} + +func autoConvert_core_PodSpec_To_v1_PodSpec(in *core.PodSpec, out *v1.PodSpec, s conversion.Scope) error { + if in.Volumes != nil { + in, out := &in.Volumes, &out.Volumes + *out = make([]v1.Volume, len(*in)) + for i := range *in { + if err := Convert_core_Volume_To_v1_Volume(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Volumes = nil + } + if in.InitContainers != nil { + in, out := &in.InitContainers, &out.InitContainers + *out = make([]v1.Container, len(*in)) + for i := range *in { + if err := Convert_core_Container_To_v1_Container(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.InitContainers = nil + } + if in.Containers != nil { + in, out := &in.Containers, &out.Containers + *out = make([]v1.Container, len(*in)) + for i := range *in { + if err := Convert_core_Container_To_v1_Container(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Containers = nil + } + out.RestartPolicy = v1.RestartPolicy(in.RestartPolicy) + out.TerminationGracePeriodSeconds = (*int64)(unsafe.Pointer(in.TerminationGracePeriodSeconds)) + out.ActiveDeadlineSeconds = (*int64)(unsafe.Pointer(in.ActiveDeadlineSeconds)) + out.DNSPolicy = v1.DNSPolicy(in.DNSPolicy) + out.NodeSelector = *(*map[string]string)(unsafe.Pointer(&in.NodeSelector)) + out.ServiceAccountName = in.ServiceAccountName + out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken)) + out.NodeName = in.NodeName + if in.SecurityContext != nil { + in, out := &in.SecurityContext, &out.SecurityContext + *out = new(v1.PodSecurityContext) + if err := Convert_core_PodSecurityContext_To_v1_PodSecurityContext(*in, *out, s); err != nil { + return err + } + } else { + out.SecurityContext = nil + } + out.ImagePullSecrets = *(*[]v1.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets)) + out.Hostname = in.Hostname + out.Subdomain = in.Subdomain + out.Affinity = (*v1.Affinity)(unsafe.Pointer(in.Affinity)) + out.SchedulerName = in.SchedulerName + out.Tolerations = *(*[]v1.Toleration)(unsafe.Pointer(&in.Tolerations)) + out.HostAliases = *(*[]v1.HostAlias)(unsafe.Pointer(&in.HostAliases)) + out.PriorityClassName = in.PriorityClassName + out.Priority = (*int32)(unsafe.Pointer(in.Priority)) + return nil +} + +func autoConvert_v1_PodStatus_To_core_PodStatus(in *v1.PodStatus, out *core.PodStatus, s conversion.Scope) error { + out.Phase = core.PodPhase(in.Phase) + out.Conditions = *(*[]core.PodCondition)(unsafe.Pointer(&in.Conditions)) + out.Message = in.Message + out.Reason = in.Reason + out.HostIP = in.HostIP + out.PodIP = in.PodIP + out.StartTime = (*meta_v1.Time)(unsafe.Pointer(in.StartTime)) + out.InitContainerStatuses = *(*[]core.ContainerStatus)(unsafe.Pointer(&in.InitContainerStatuses)) + out.ContainerStatuses = *(*[]core.ContainerStatus)(unsafe.Pointer(&in.ContainerStatuses)) + out.QOSClass = core.PodQOSClass(in.QOSClass) + return nil +} + +// Convert_v1_PodStatus_To_core_PodStatus is an autogenerated conversion function. +func Convert_v1_PodStatus_To_core_PodStatus(in *v1.PodStatus, out *core.PodStatus, s conversion.Scope) error { + return autoConvert_v1_PodStatus_To_core_PodStatus(in, out, s) +} + +func autoConvert_core_PodStatus_To_v1_PodStatus(in *core.PodStatus, out *v1.PodStatus, s conversion.Scope) error { + out.Phase = v1.PodPhase(in.Phase) + out.Conditions = *(*[]v1.PodCondition)(unsafe.Pointer(&in.Conditions)) + out.Message = in.Message + out.Reason = in.Reason + out.HostIP = in.HostIP + out.PodIP = in.PodIP + out.StartTime = (*meta_v1.Time)(unsafe.Pointer(in.StartTime)) + out.QOSClass = v1.PodQOSClass(in.QOSClass) + out.InitContainerStatuses = *(*[]v1.ContainerStatus)(unsafe.Pointer(&in.InitContainerStatuses)) + out.ContainerStatuses = *(*[]v1.ContainerStatus)(unsafe.Pointer(&in.ContainerStatuses)) + return nil +} + +// Convert_core_PodStatus_To_v1_PodStatus is an autogenerated conversion function. +func Convert_core_PodStatus_To_v1_PodStatus(in *core.PodStatus, out *v1.PodStatus, s conversion.Scope) error { + return autoConvert_core_PodStatus_To_v1_PodStatus(in, out, s) +} + +func autoConvert_v1_PodStatusResult_To_core_PodStatusResult(in *v1.PodStatusResult, out *core.PodStatusResult, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_PodStatus_To_core_PodStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_PodStatusResult_To_core_PodStatusResult is an autogenerated conversion function. +func Convert_v1_PodStatusResult_To_core_PodStatusResult(in *v1.PodStatusResult, out *core.PodStatusResult, s conversion.Scope) error { + return autoConvert_v1_PodStatusResult_To_core_PodStatusResult(in, out, s) +} + +func autoConvert_core_PodStatusResult_To_v1_PodStatusResult(in *core.PodStatusResult, out *v1.PodStatusResult, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_PodStatus_To_v1_PodStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_core_PodStatusResult_To_v1_PodStatusResult is an autogenerated conversion function. +func Convert_core_PodStatusResult_To_v1_PodStatusResult(in *core.PodStatusResult, out *v1.PodStatusResult, s conversion.Scope) error { + return autoConvert_core_PodStatusResult_To_v1_PodStatusResult(in, out, s) +} + +func autoConvert_v1_PodTemplate_To_core_PodTemplate(in *v1.PodTemplate, out *core.PodTemplate, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +// Convert_v1_PodTemplate_To_core_PodTemplate is an autogenerated conversion function. +func Convert_v1_PodTemplate_To_core_PodTemplate(in *v1.PodTemplate, out *core.PodTemplate, s conversion.Scope) error { + return autoConvert_v1_PodTemplate_To_core_PodTemplate(in, out, s) +} + +func autoConvert_core_PodTemplate_To_v1_PodTemplate(in *core.PodTemplate, out *v1.PodTemplate, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +// Convert_core_PodTemplate_To_v1_PodTemplate is an autogenerated conversion function. +func Convert_core_PodTemplate_To_v1_PodTemplate(in *core.PodTemplate, out *v1.PodTemplate, s conversion.Scope) error { + return autoConvert_core_PodTemplate_To_v1_PodTemplate(in, out, s) +} + +func autoConvert_v1_PodTemplateList_To_core_PodTemplateList(in *v1.PodTemplateList, out *core.PodTemplateList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]core.PodTemplate, len(*in)) + for i := range *in { + if err := Convert_v1_PodTemplate_To_core_PodTemplate(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_PodTemplateList_To_core_PodTemplateList is an autogenerated conversion function. +func Convert_v1_PodTemplateList_To_core_PodTemplateList(in *v1.PodTemplateList, out *core.PodTemplateList, s conversion.Scope) error { + return autoConvert_v1_PodTemplateList_To_core_PodTemplateList(in, out, s) +} + +func autoConvert_core_PodTemplateList_To_v1_PodTemplateList(in *core.PodTemplateList, out *v1.PodTemplateList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.PodTemplate, len(*in)) + for i := range *in { + if err := Convert_core_PodTemplate_To_v1_PodTemplate(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_core_PodTemplateList_To_v1_PodTemplateList is an autogenerated conversion function. +func Convert_core_PodTemplateList_To_v1_PodTemplateList(in *core.PodTemplateList, out *v1.PodTemplateList, s conversion.Scope) error { + return autoConvert_core_PodTemplateList_To_v1_PodTemplateList(in, out, s) +} + +func autoConvert_v1_PodTemplateSpec_To_core_PodTemplateSpec(in *v1.PodTemplateSpec, out *core.PodTemplateSpec, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_PodSpec_To_core_PodSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +func autoConvert_core_PodTemplateSpec_To_v1_PodTemplateSpec(in *core.PodTemplateSpec, out *v1.PodTemplateSpec, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_PodSpec_To_v1_PodSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +func autoConvert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource(in *v1.PortworxVolumeSource, out *core.PortworxVolumeSource, s conversion.Scope) error { + out.VolumeID = in.VolumeID + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource is an autogenerated conversion function. +func Convert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource(in *v1.PortworxVolumeSource, out *core.PortworxVolumeSource, s conversion.Scope) error { + return autoConvert_v1_PortworxVolumeSource_To_core_PortworxVolumeSource(in, out, s) +} + +func autoConvert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource(in *core.PortworxVolumeSource, out *v1.PortworxVolumeSource, s conversion.Scope) error { + out.VolumeID = in.VolumeID + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource is an autogenerated conversion function. +func Convert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource(in *core.PortworxVolumeSource, out *v1.PortworxVolumeSource, s conversion.Scope) error { + return autoConvert_core_PortworxVolumeSource_To_v1_PortworxVolumeSource(in, out, s) +} + +func autoConvert_v1_Preconditions_To_core_Preconditions(in *v1.Preconditions, out *core.Preconditions, s conversion.Scope) error { + out.UID = (*types.UID)(unsafe.Pointer(in.UID)) + return nil +} + +// Convert_v1_Preconditions_To_core_Preconditions is an autogenerated conversion function. +func Convert_v1_Preconditions_To_core_Preconditions(in *v1.Preconditions, out *core.Preconditions, s conversion.Scope) error { + return autoConvert_v1_Preconditions_To_core_Preconditions(in, out, s) +} + +func autoConvert_core_Preconditions_To_v1_Preconditions(in *core.Preconditions, out *v1.Preconditions, s conversion.Scope) error { + out.UID = (*types.UID)(unsafe.Pointer(in.UID)) + return nil +} + +// Convert_core_Preconditions_To_v1_Preconditions is an autogenerated conversion function. +func Convert_core_Preconditions_To_v1_Preconditions(in *core.Preconditions, out *v1.Preconditions, s conversion.Scope) error { + return autoConvert_core_Preconditions_To_v1_Preconditions(in, out, s) +} + +func autoConvert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry(in *v1.PreferAvoidPodsEntry, out *core.PreferAvoidPodsEntry, s conversion.Scope) error { + if err := Convert_v1_PodSignature_To_core_PodSignature(&in.PodSignature, &out.PodSignature, s); err != nil { + return err + } + out.EvictionTime = in.EvictionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry is an autogenerated conversion function. +func Convert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry(in *v1.PreferAvoidPodsEntry, out *core.PreferAvoidPodsEntry, s conversion.Scope) error { + return autoConvert_v1_PreferAvoidPodsEntry_To_core_PreferAvoidPodsEntry(in, out, s) +} + +func autoConvert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry(in *core.PreferAvoidPodsEntry, out *v1.PreferAvoidPodsEntry, s conversion.Scope) error { + if err := Convert_core_PodSignature_To_v1_PodSignature(&in.PodSignature, &out.PodSignature, s); err != nil { + return err + } + out.EvictionTime = in.EvictionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry is an autogenerated conversion function. +func Convert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry(in *core.PreferAvoidPodsEntry, out *v1.PreferAvoidPodsEntry, s conversion.Scope) error { + return autoConvert_core_PreferAvoidPodsEntry_To_v1_PreferAvoidPodsEntry(in, out, s) +} + +func autoConvert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm(in *v1.PreferredSchedulingTerm, out *core.PreferredSchedulingTerm, s conversion.Scope) error { + out.Weight = in.Weight + if err := Convert_v1_NodeSelectorTerm_To_core_NodeSelectorTerm(&in.Preference, &out.Preference, s); err != nil { + return err + } + return nil +} + +// Convert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm is an autogenerated conversion function. +func Convert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm(in *v1.PreferredSchedulingTerm, out *core.PreferredSchedulingTerm, s conversion.Scope) error { + return autoConvert_v1_PreferredSchedulingTerm_To_core_PreferredSchedulingTerm(in, out, s) +} + +func autoConvert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm(in *core.PreferredSchedulingTerm, out *v1.PreferredSchedulingTerm, s conversion.Scope) error { + out.Weight = in.Weight + if err := Convert_core_NodeSelectorTerm_To_v1_NodeSelectorTerm(&in.Preference, &out.Preference, s); err != nil { + return err + } + return nil +} + +// Convert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm is an autogenerated conversion function. +func Convert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm(in *core.PreferredSchedulingTerm, out *v1.PreferredSchedulingTerm, s conversion.Scope) error { + return autoConvert_core_PreferredSchedulingTerm_To_v1_PreferredSchedulingTerm(in, out, s) +} + +func autoConvert_v1_Probe_To_core_Probe(in *v1.Probe, out *core.Probe, s conversion.Scope) error { + if err := Convert_v1_Handler_To_core_Handler(&in.Handler, &out.Handler, s); err != nil { + return err + } + out.InitialDelaySeconds = in.InitialDelaySeconds + out.TimeoutSeconds = in.TimeoutSeconds + out.PeriodSeconds = in.PeriodSeconds + out.SuccessThreshold = in.SuccessThreshold + out.FailureThreshold = in.FailureThreshold + return nil +} + +// Convert_v1_Probe_To_core_Probe is an autogenerated conversion function. +func Convert_v1_Probe_To_core_Probe(in *v1.Probe, out *core.Probe, s conversion.Scope) error { + return autoConvert_v1_Probe_To_core_Probe(in, out, s) +} + +func autoConvert_core_Probe_To_v1_Probe(in *core.Probe, out *v1.Probe, s conversion.Scope) error { + if err := Convert_core_Handler_To_v1_Handler(&in.Handler, &out.Handler, s); err != nil { + return err + } + out.InitialDelaySeconds = in.InitialDelaySeconds + out.TimeoutSeconds = in.TimeoutSeconds + out.PeriodSeconds = in.PeriodSeconds + out.SuccessThreshold = in.SuccessThreshold + out.FailureThreshold = in.FailureThreshold + return nil +} + +// Convert_core_Probe_To_v1_Probe is an autogenerated conversion function. +func Convert_core_Probe_To_v1_Probe(in *core.Probe, out *v1.Probe, s conversion.Scope) error { + return autoConvert_core_Probe_To_v1_Probe(in, out, s) +} + +func autoConvert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource(in *v1.ProjectedVolumeSource, out *core.ProjectedVolumeSource, s conversion.Scope) error { + out.Sources = *(*[]core.VolumeProjection)(unsafe.Pointer(&in.Sources)) + out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) + return nil +} + +// Convert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource is an autogenerated conversion function. +func Convert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource(in *v1.ProjectedVolumeSource, out *core.ProjectedVolumeSource, s conversion.Scope) error { + return autoConvert_v1_ProjectedVolumeSource_To_core_ProjectedVolumeSource(in, out, s) +} + +func autoConvert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource(in *core.ProjectedVolumeSource, out *v1.ProjectedVolumeSource, s conversion.Scope) error { + out.Sources = *(*[]v1.VolumeProjection)(unsafe.Pointer(&in.Sources)) + out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) + return nil +} + +// Convert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource is an autogenerated conversion function. +func Convert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource(in *core.ProjectedVolumeSource, out *v1.ProjectedVolumeSource, s conversion.Scope) error { + return autoConvert_core_ProjectedVolumeSource_To_v1_ProjectedVolumeSource(in, out, s) +} + +func autoConvert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource(in *v1.QuobyteVolumeSource, out *core.QuobyteVolumeSource, s conversion.Scope) error { + out.Registry = in.Registry + out.Volume = in.Volume + out.ReadOnly = in.ReadOnly + out.User = in.User + out.Group = in.Group + return nil +} + +// Convert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource is an autogenerated conversion function. +func Convert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource(in *v1.QuobyteVolumeSource, out *core.QuobyteVolumeSource, s conversion.Scope) error { + return autoConvert_v1_QuobyteVolumeSource_To_core_QuobyteVolumeSource(in, out, s) +} + +func autoConvert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in *core.QuobyteVolumeSource, out *v1.QuobyteVolumeSource, s conversion.Scope) error { + out.Registry = in.Registry + out.Volume = in.Volume + out.ReadOnly = in.ReadOnly + out.User = in.User + out.Group = in.Group + return nil +} + +// Convert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource is an autogenerated conversion function. +func Convert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in *core.QuobyteVolumeSource, out *v1.QuobyteVolumeSource, s conversion.Scope) error { + return autoConvert_core_QuobyteVolumeSource_To_v1_QuobyteVolumeSource(in, out, s) +} + +func autoConvert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource(in *v1.RBDPersistentVolumeSource, out *core.RBDPersistentVolumeSource, s conversion.Scope) error { + out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors)) + out.RBDImage = in.RBDImage + out.FSType = in.FSType + out.RBDPool = in.RBDPool + out.RadosUser = in.RadosUser + out.Keyring = in.Keyring + out.SecretRef = (*core.SecretReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource is an autogenerated conversion function. +func Convert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource(in *v1.RBDPersistentVolumeSource, out *core.RBDPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_v1_RBDPersistentVolumeSource_To_core_RBDPersistentVolumeSource(in, out, s) +} + +func autoConvert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource(in *core.RBDPersistentVolumeSource, out *v1.RBDPersistentVolumeSource, s conversion.Scope) error { + out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors)) + out.RBDImage = in.RBDImage + out.FSType = in.FSType + out.RBDPool = in.RBDPool + out.RadosUser = in.RadosUser + out.Keyring = in.Keyring + out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource is an autogenerated conversion function. +func Convert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource(in *core.RBDPersistentVolumeSource, out *v1.RBDPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_core_RBDPersistentVolumeSource_To_v1_RBDPersistentVolumeSource(in, out, s) +} + +func autoConvert_v1_RBDVolumeSource_To_core_RBDVolumeSource(in *v1.RBDVolumeSource, out *core.RBDVolumeSource, s conversion.Scope) error { + out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors)) + out.RBDImage = in.RBDImage + out.FSType = in.FSType + out.RBDPool = in.RBDPool + out.RadosUser = in.RadosUser + out.Keyring = in.Keyring + out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_RBDVolumeSource_To_core_RBDVolumeSource is an autogenerated conversion function. +func Convert_v1_RBDVolumeSource_To_core_RBDVolumeSource(in *v1.RBDVolumeSource, out *core.RBDVolumeSource, s conversion.Scope) error { + return autoConvert_v1_RBDVolumeSource_To_core_RBDVolumeSource(in, out, s) +} + +func autoConvert_core_RBDVolumeSource_To_v1_RBDVolumeSource(in *core.RBDVolumeSource, out *v1.RBDVolumeSource, s conversion.Scope) error { + out.CephMonitors = *(*[]string)(unsafe.Pointer(&in.CephMonitors)) + out.RBDImage = in.RBDImage + out.FSType = in.FSType + out.RBDPool = in.RBDPool + out.RadosUser = in.RadosUser + out.Keyring = in.Keyring + out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_RBDVolumeSource_To_v1_RBDVolumeSource is an autogenerated conversion function. +func Convert_core_RBDVolumeSource_To_v1_RBDVolumeSource(in *core.RBDVolumeSource, out *v1.RBDVolumeSource, s conversion.Scope) error { + return autoConvert_core_RBDVolumeSource_To_v1_RBDVolumeSource(in, out, s) +} + +func autoConvert_v1_RangeAllocation_To_core_RangeAllocation(in *v1.RangeAllocation, out *core.RangeAllocation, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Range = in.Range + out.Data = *(*[]byte)(unsafe.Pointer(&in.Data)) + return nil +} + +// Convert_v1_RangeAllocation_To_core_RangeAllocation is an autogenerated conversion function. +func Convert_v1_RangeAllocation_To_core_RangeAllocation(in *v1.RangeAllocation, out *core.RangeAllocation, s conversion.Scope) error { + return autoConvert_v1_RangeAllocation_To_core_RangeAllocation(in, out, s) +} + +func autoConvert_core_RangeAllocation_To_v1_RangeAllocation(in *core.RangeAllocation, out *v1.RangeAllocation, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Range = in.Range + out.Data = *(*[]byte)(unsafe.Pointer(&in.Data)) + return nil +} + +// Convert_core_RangeAllocation_To_v1_RangeAllocation is an autogenerated conversion function. +func Convert_core_RangeAllocation_To_v1_RangeAllocation(in *core.RangeAllocation, out *v1.RangeAllocation, s conversion.Scope) error { + return autoConvert_core_RangeAllocation_To_v1_RangeAllocation(in, out, s) +} + +func autoConvert_v1_ReplicationController_To_core_ReplicationController(in *v1.ReplicationController, out *core.ReplicationController, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_ReplicationController_To_core_ReplicationController is an autogenerated conversion function. +func Convert_v1_ReplicationController_To_core_ReplicationController(in *v1.ReplicationController, out *core.ReplicationController, s conversion.Scope) error { + return autoConvert_v1_ReplicationController_To_core_ReplicationController(in, out, s) +} + +func autoConvert_core_ReplicationController_To_v1_ReplicationController(in *core.ReplicationController, out *v1.ReplicationController, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_core_ReplicationController_To_v1_ReplicationController is an autogenerated conversion function. +func Convert_core_ReplicationController_To_v1_ReplicationController(in *core.ReplicationController, out *v1.ReplicationController, s conversion.Scope) error { + return autoConvert_core_ReplicationController_To_v1_ReplicationController(in, out, s) +} + +func autoConvert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition(in *v1.ReplicationControllerCondition, out *core.ReplicationControllerCondition, s conversion.Scope) error { + out.Type = core.ReplicationControllerConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition is an autogenerated conversion function. +func Convert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition(in *v1.ReplicationControllerCondition, out *core.ReplicationControllerCondition, s conversion.Scope) error { + return autoConvert_v1_ReplicationControllerCondition_To_core_ReplicationControllerCondition(in, out, s) +} + +func autoConvert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition(in *core.ReplicationControllerCondition, out *v1.ReplicationControllerCondition, s conversion.Scope) error { + out.Type = v1.ReplicationControllerConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition is an autogenerated conversion function. +func Convert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition(in *core.ReplicationControllerCondition, out *v1.ReplicationControllerCondition, s conversion.Scope) error { + return autoConvert_core_ReplicationControllerCondition_To_v1_ReplicationControllerCondition(in, out, s) +} + +func autoConvert_v1_ReplicationControllerList_To_core_ReplicationControllerList(in *v1.ReplicationControllerList, out *core.ReplicationControllerList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]core.ReplicationController, len(*in)) + for i := range *in { + if err := Convert_v1_ReplicationController_To_core_ReplicationController(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_ReplicationControllerList_To_core_ReplicationControllerList is an autogenerated conversion function. +func Convert_v1_ReplicationControllerList_To_core_ReplicationControllerList(in *v1.ReplicationControllerList, out *core.ReplicationControllerList, s conversion.Scope) error { + return autoConvert_v1_ReplicationControllerList_To_core_ReplicationControllerList(in, out, s) +} + +func autoConvert_core_ReplicationControllerList_To_v1_ReplicationControllerList(in *core.ReplicationControllerList, out *v1.ReplicationControllerList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.ReplicationController, len(*in)) + for i := range *in { + if err := Convert_core_ReplicationController_To_v1_ReplicationController(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_core_ReplicationControllerList_To_v1_ReplicationControllerList is an autogenerated conversion function. +func Convert_core_ReplicationControllerList_To_v1_ReplicationControllerList(in *core.ReplicationControllerList, out *v1.ReplicationControllerList, s conversion.Scope) error { + return autoConvert_core_ReplicationControllerList_To_v1_ReplicationControllerList(in, out, s) +} + +func autoConvert_v1_ReplicationControllerSpec_To_core_ReplicationControllerSpec(in *v1.ReplicationControllerSpec, out *core.ReplicationControllerSpec, s conversion.Scope) error { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector)) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(core.PodTemplateSpec) + if err := Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Template = nil + } + return nil +} + +func autoConvert_core_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *core.ReplicationControllerSpec, out *v1.ReplicationControllerSpec, s conversion.Scope) error { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector)) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(v1.PodTemplateSpec) + if err := Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Template = nil + } + return nil +} + +func autoConvert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus(in *v1.ReplicationControllerStatus, out *core.ReplicationControllerStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.FullyLabeledReplicas = in.FullyLabeledReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.ObservedGeneration = in.ObservedGeneration + out.Conditions = *(*[]core.ReplicationControllerCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus is an autogenerated conversion function. +func Convert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus(in *v1.ReplicationControllerStatus, out *core.ReplicationControllerStatus, s conversion.Scope) error { + return autoConvert_v1_ReplicationControllerStatus_To_core_ReplicationControllerStatus(in, out, s) +} + +func autoConvert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in *core.ReplicationControllerStatus, out *v1.ReplicationControllerStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.FullyLabeledReplicas = in.FullyLabeledReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.ObservedGeneration = in.ObservedGeneration + out.Conditions = *(*[]v1.ReplicationControllerCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus is an autogenerated conversion function. +func Convert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in *core.ReplicationControllerStatus, out *v1.ReplicationControllerStatus, s conversion.Scope) error { + return autoConvert_core_ReplicationControllerStatus_To_v1_ReplicationControllerStatus(in, out, s) +} + +func autoConvert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector(in *v1.ResourceFieldSelector, out *core.ResourceFieldSelector, s conversion.Scope) error { + out.ContainerName = in.ContainerName + out.Resource = in.Resource + out.Divisor = in.Divisor + return nil +} + +// Convert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector is an autogenerated conversion function. +func Convert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector(in *v1.ResourceFieldSelector, out *core.ResourceFieldSelector, s conversion.Scope) error { + return autoConvert_v1_ResourceFieldSelector_To_core_ResourceFieldSelector(in, out, s) +} + +func autoConvert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector(in *core.ResourceFieldSelector, out *v1.ResourceFieldSelector, s conversion.Scope) error { + out.ContainerName = in.ContainerName + out.Resource = in.Resource + out.Divisor = in.Divisor + return nil +} + +// Convert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector is an autogenerated conversion function. +func Convert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector(in *core.ResourceFieldSelector, out *v1.ResourceFieldSelector, s conversion.Scope) error { + return autoConvert_core_ResourceFieldSelector_To_v1_ResourceFieldSelector(in, out, s) +} + +func autoConvert_v1_ResourceQuota_To_core_ResourceQuota(in *v1.ResourceQuota, out *core.ResourceQuota, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_ResourceQuota_To_core_ResourceQuota is an autogenerated conversion function. +func Convert_v1_ResourceQuota_To_core_ResourceQuota(in *v1.ResourceQuota, out *core.ResourceQuota, s conversion.Scope) error { + return autoConvert_v1_ResourceQuota_To_core_ResourceQuota(in, out, s) +} + +func autoConvert_core_ResourceQuota_To_v1_ResourceQuota(in *core.ResourceQuota, out *v1.ResourceQuota, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_core_ResourceQuota_To_v1_ResourceQuota is an autogenerated conversion function. +func Convert_core_ResourceQuota_To_v1_ResourceQuota(in *core.ResourceQuota, out *v1.ResourceQuota, s conversion.Scope) error { + return autoConvert_core_ResourceQuota_To_v1_ResourceQuota(in, out, s) +} + +func autoConvert_v1_ResourceQuotaList_To_core_ResourceQuotaList(in *v1.ResourceQuotaList, out *core.ResourceQuotaList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.ResourceQuota)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_ResourceQuotaList_To_core_ResourceQuotaList is an autogenerated conversion function. +func Convert_v1_ResourceQuotaList_To_core_ResourceQuotaList(in *v1.ResourceQuotaList, out *core.ResourceQuotaList, s conversion.Scope) error { + return autoConvert_v1_ResourceQuotaList_To_core_ResourceQuotaList(in, out, s) +} + +func autoConvert_core_ResourceQuotaList_To_v1_ResourceQuotaList(in *core.ResourceQuotaList, out *v1.ResourceQuotaList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.ResourceQuota)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_ResourceQuotaList_To_v1_ResourceQuotaList is an autogenerated conversion function. +func Convert_core_ResourceQuotaList_To_v1_ResourceQuotaList(in *core.ResourceQuotaList, out *v1.ResourceQuotaList, s conversion.Scope) error { + return autoConvert_core_ResourceQuotaList_To_v1_ResourceQuotaList(in, out, s) +} + +func autoConvert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(in *v1.ResourceQuotaSpec, out *core.ResourceQuotaSpec, s conversion.Scope) error { + out.Hard = *(*core.ResourceList)(unsafe.Pointer(&in.Hard)) + out.Scopes = *(*[]core.ResourceQuotaScope)(unsafe.Pointer(&in.Scopes)) + return nil +} + +// Convert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec is an autogenerated conversion function. +func Convert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(in *v1.ResourceQuotaSpec, out *core.ResourceQuotaSpec, s conversion.Scope) error { + return autoConvert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(in, out, s) +} + +func autoConvert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(in *core.ResourceQuotaSpec, out *v1.ResourceQuotaSpec, s conversion.Scope) error { + out.Hard = *(*v1.ResourceList)(unsafe.Pointer(&in.Hard)) + out.Scopes = *(*[]v1.ResourceQuotaScope)(unsafe.Pointer(&in.Scopes)) + return nil +} + +// Convert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec is an autogenerated conversion function. +func Convert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(in *core.ResourceQuotaSpec, out *v1.ResourceQuotaSpec, s conversion.Scope) error { + return autoConvert_core_ResourceQuotaSpec_To_v1_ResourceQuotaSpec(in, out, s) +} + +func autoConvert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus(in *v1.ResourceQuotaStatus, out *core.ResourceQuotaStatus, s conversion.Scope) error { + out.Hard = *(*core.ResourceList)(unsafe.Pointer(&in.Hard)) + out.Used = *(*core.ResourceList)(unsafe.Pointer(&in.Used)) + return nil +} + +// Convert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus is an autogenerated conversion function. +func Convert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus(in *v1.ResourceQuotaStatus, out *core.ResourceQuotaStatus, s conversion.Scope) error { + return autoConvert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus(in, out, s) +} + +func autoConvert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(in *core.ResourceQuotaStatus, out *v1.ResourceQuotaStatus, s conversion.Scope) error { + out.Hard = *(*v1.ResourceList)(unsafe.Pointer(&in.Hard)) + out.Used = *(*v1.ResourceList)(unsafe.Pointer(&in.Used)) + return nil +} + +// Convert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus is an autogenerated conversion function. +func Convert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(in *core.ResourceQuotaStatus, out *v1.ResourceQuotaStatus, s conversion.Scope) error { + return autoConvert_core_ResourceQuotaStatus_To_v1_ResourceQuotaStatus(in, out, s) +} + +func autoConvert_v1_ResourceRequirements_To_core_ResourceRequirements(in *v1.ResourceRequirements, out *core.ResourceRequirements, s conversion.Scope) error { + out.Limits = *(*core.ResourceList)(unsafe.Pointer(&in.Limits)) + out.Requests = *(*core.ResourceList)(unsafe.Pointer(&in.Requests)) + return nil +} + +// Convert_v1_ResourceRequirements_To_core_ResourceRequirements is an autogenerated conversion function. +func Convert_v1_ResourceRequirements_To_core_ResourceRequirements(in *v1.ResourceRequirements, out *core.ResourceRequirements, s conversion.Scope) error { + return autoConvert_v1_ResourceRequirements_To_core_ResourceRequirements(in, out, s) +} + +func autoConvert_core_ResourceRequirements_To_v1_ResourceRequirements(in *core.ResourceRequirements, out *v1.ResourceRequirements, s conversion.Scope) error { + out.Limits = *(*v1.ResourceList)(unsafe.Pointer(&in.Limits)) + out.Requests = *(*v1.ResourceList)(unsafe.Pointer(&in.Requests)) + return nil +} + +// Convert_core_ResourceRequirements_To_v1_ResourceRequirements is an autogenerated conversion function. +func Convert_core_ResourceRequirements_To_v1_ResourceRequirements(in *core.ResourceRequirements, out *v1.ResourceRequirements, s conversion.Scope) error { + return autoConvert_core_ResourceRequirements_To_v1_ResourceRequirements(in, out, s) +} + +func autoConvert_v1_SELinuxOptions_To_core_SELinuxOptions(in *v1.SELinuxOptions, out *core.SELinuxOptions, s conversion.Scope) error { + out.User = in.User + out.Role = in.Role + out.Type = in.Type + out.Level = in.Level + return nil +} + +// Convert_v1_SELinuxOptions_To_core_SELinuxOptions is an autogenerated conversion function. +func Convert_v1_SELinuxOptions_To_core_SELinuxOptions(in *v1.SELinuxOptions, out *core.SELinuxOptions, s conversion.Scope) error { + return autoConvert_v1_SELinuxOptions_To_core_SELinuxOptions(in, out, s) +} + +func autoConvert_core_SELinuxOptions_To_v1_SELinuxOptions(in *core.SELinuxOptions, out *v1.SELinuxOptions, s conversion.Scope) error { + out.User = in.User + out.Role = in.Role + out.Type = in.Type + out.Level = in.Level + return nil +} + +// Convert_core_SELinuxOptions_To_v1_SELinuxOptions is an autogenerated conversion function. +func Convert_core_SELinuxOptions_To_v1_SELinuxOptions(in *core.SELinuxOptions, out *v1.SELinuxOptions, s conversion.Scope) error { + return autoConvert_core_SELinuxOptions_To_v1_SELinuxOptions(in, out, s) +} + +func autoConvert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource(in *v1.ScaleIOPersistentVolumeSource, out *core.ScaleIOPersistentVolumeSource, s conversion.Scope) error { + out.Gateway = in.Gateway + out.System = in.System + out.SecretRef = (*core.SecretReference)(unsafe.Pointer(in.SecretRef)) + out.SSLEnabled = in.SSLEnabled + out.ProtectionDomain = in.ProtectionDomain + out.StoragePool = in.StoragePool + out.StorageMode = in.StorageMode + out.VolumeName = in.VolumeName + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource is an autogenerated conversion function. +func Convert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource(in *v1.ScaleIOPersistentVolumeSource, out *core.ScaleIOPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_v1_ScaleIOPersistentVolumeSource_To_core_ScaleIOPersistentVolumeSource(in, out, s) +} + +func autoConvert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource(in *core.ScaleIOPersistentVolumeSource, out *v1.ScaleIOPersistentVolumeSource, s conversion.Scope) error { + out.Gateway = in.Gateway + out.System = in.System + out.SecretRef = (*v1.SecretReference)(unsafe.Pointer(in.SecretRef)) + out.SSLEnabled = in.SSLEnabled + out.ProtectionDomain = in.ProtectionDomain + out.StoragePool = in.StoragePool + out.StorageMode = in.StorageMode + out.VolumeName = in.VolumeName + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource is an autogenerated conversion function. +func Convert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource(in *core.ScaleIOPersistentVolumeSource, out *v1.ScaleIOPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_core_ScaleIOPersistentVolumeSource_To_v1_ScaleIOPersistentVolumeSource(in, out, s) +} + +func autoConvert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource(in *v1.ScaleIOVolumeSource, out *core.ScaleIOVolumeSource, s conversion.Scope) error { + out.Gateway = in.Gateway + out.System = in.System + out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.SSLEnabled = in.SSLEnabled + out.ProtectionDomain = in.ProtectionDomain + out.StoragePool = in.StoragePool + out.StorageMode = in.StorageMode + out.VolumeName = in.VolumeName + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource is an autogenerated conversion function. +func Convert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource(in *v1.ScaleIOVolumeSource, out *core.ScaleIOVolumeSource, s conversion.Scope) error { + return autoConvert_v1_ScaleIOVolumeSource_To_core_ScaleIOVolumeSource(in, out, s) +} + +func autoConvert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource(in *core.ScaleIOVolumeSource, out *v1.ScaleIOVolumeSource, s conversion.Scope) error { + out.Gateway = in.Gateway + out.System = in.System + out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + out.SSLEnabled = in.SSLEnabled + out.ProtectionDomain = in.ProtectionDomain + out.StoragePool = in.StoragePool + out.StorageMode = in.StorageMode + out.VolumeName = in.VolumeName + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + return nil +} + +// Convert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource is an autogenerated conversion function. +func Convert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource(in *core.ScaleIOVolumeSource, out *v1.ScaleIOVolumeSource, s conversion.Scope) error { + return autoConvert_core_ScaleIOVolumeSource_To_v1_ScaleIOVolumeSource(in, out, s) +} + +func autoConvert_v1_Secret_To_core_Secret(in *v1.Secret, out *core.Secret, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Data = *(*map[string][]byte)(unsafe.Pointer(&in.Data)) + // INFO: in.StringData opted out of conversion generation + out.Type = core.SecretType(in.Type) + return nil +} + +func autoConvert_core_Secret_To_v1_Secret(in *core.Secret, out *v1.Secret, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Data = *(*map[string][]byte)(unsafe.Pointer(&in.Data)) + out.Type = v1.SecretType(in.Type) + return nil +} + +// Convert_core_Secret_To_v1_Secret is an autogenerated conversion function. +func Convert_core_Secret_To_v1_Secret(in *core.Secret, out *v1.Secret, s conversion.Scope) error { + return autoConvert_core_Secret_To_v1_Secret(in, out, s) +} + +func autoConvert_v1_SecretEnvSource_To_core_SecretEnvSource(in *v1.SecretEnvSource, out *core.SecretEnvSource, s conversion.Scope) error { + if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_v1_SecretEnvSource_To_core_SecretEnvSource is an autogenerated conversion function. +func Convert_v1_SecretEnvSource_To_core_SecretEnvSource(in *v1.SecretEnvSource, out *core.SecretEnvSource, s conversion.Scope) error { + return autoConvert_v1_SecretEnvSource_To_core_SecretEnvSource(in, out, s) +} + +func autoConvert_core_SecretEnvSource_To_v1_SecretEnvSource(in *core.SecretEnvSource, out *v1.SecretEnvSource, s conversion.Scope) error { + if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_core_SecretEnvSource_To_v1_SecretEnvSource is an autogenerated conversion function. +func Convert_core_SecretEnvSource_To_v1_SecretEnvSource(in *core.SecretEnvSource, out *v1.SecretEnvSource, s conversion.Scope) error { + return autoConvert_core_SecretEnvSource_To_v1_SecretEnvSource(in, out, s) +} + +func autoConvert_v1_SecretKeySelector_To_core_SecretKeySelector(in *v1.SecretKeySelector, out *core.SecretKeySelector, s conversion.Scope) error { + if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Key = in.Key + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_v1_SecretKeySelector_To_core_SecretKeySelector is an autogenerated conversion function. +func Convert_v1_SecretKeySelector_To_core_SecretKeySelector(in *v1.SecretKeySelector, out *core.SecretKeySelector, s conversion.Scope) error { + return autoConvert_v1_SecretKeySelector_To_core_SecretKeySelector(in, out, s) +} + +func autoConvert_core_SecretKeySelector_To_v1_SecretKeySelector(in *core.SecretKeySelector, out *v1.SecretKeySelector, s conversion.Scope) error { + if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Key = in.Key + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_core_SecretKeySelector_To_v1_SecretKeySelector is an autogenerated conversion function. +func Convert_core_SecretKeySelector_To_v1_SecretKeySelector(in *core.SecretKeySelector, out *v1.SecretKeySelector, s conversion.Scope) error { + return autoConvert_core_SecretKeySelector_To_v1_SecretKeySelector(in, out, s) +} + +func autoConvert_v1_SecretList_To_core_SecretList(in *v1.SecretList, out *core.SecretList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]core.Secret, len(*in)) + for i := range *in { + if err := Convert_v1_Secret_To_core_Secret(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_SecretList_To_core_SecretList is an autogenerated conversion function. +func Convert_v1_SecretList_To_core_SecretList(in *v1.SecretList, out *core.SecretList, s conversion.Scope) error { + return autoConvert_v1_SecretList_To_core_SecretList(in, out, s) +} + +func autoConvert_core_SecretList_To_v1_SecretList(in *core.SecretList, out *v1.SecretList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.Secret, len(*in)) + for i := range *in { + if err := Convert_core_Secret_To_v1_Secret(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_core_SecretList_To_v1_SecretList is an autogenerated conversion function. +func Convert_core_SecretList_To_v1_SecretList(in *core.SecretList, out *v1.SecretList, s conversion.Scope) error { + return autoConvert_core_SecretList_To_v1_SecretList(in, out, s) +} + +func autoConvert_v1_SecretProjection_To_core_SecretProjection(in *v1.SecretProjection, out *core.SecretProjection, s conversion.Scope) error { + if err := Convert_v1_LocalObjectReference_To_core_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Items = *(*[]core.KeyToPath)(unsafe.Pointer(&in.Items)) + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_v1_SecretProjection_To_core_SecretProjection is an autogenerated conversion function. +func Convert_v1_SecretProjection_To_core_SecretProjection(in *v1.SecretProjection, out *core.SecretProjection, s conversion.Scope) error { + return autoConvert_v1_SecretProjection_To_core_SecretProjection(in, out, s) +} + +func autoConvert_core_SecretProjection_To_v1_SecretProjection(in *core.SecretProjection, out *v1.SecretProjection, s conversion.Scope) error { + if err := Convert_core_LocalObjectReference_To_v1_LocalObjectReference(&in.LocalObjectReference, &out.LocalObjectReference, s); err != nil { + return err + } + out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items)) + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_core_SecretProjection_To_v1_SecretProjection is an autogenerated conversion function. +func Convert_core_SecretProjection_To_v1_SecretProjection(in *core.SecretProjection, out *v1.SecretProjection, s conversion.Scope) error { + return autoConvert_core_SecretProjection_To_v1_SecretProjection(in, out, s) +} + +func autoConvert_v1_SecretReference_To_core_SecretReference(in *v1.SecretReference, out *core.SecretReference, s conversion.Scope) error { + out.Name = in.Name + out.Namespace = in.Namespace + return nil +} + +// Convert_v1_SecretReference_To_core_SecretReference is an autogenerated conversion function. +func Convert_v1_SecretReference_To_core_SecretReference(in *v1.SecretReference, out *core.SecretReference, s conversion.Scope) error { + return autoConvert_v1_SecretReference_To_core_SecretReference(in, out, s) +} + +func autoConvert_core_SecretReference_To_v1_SecretReference(in *core.SecretReference, out *v1.SecretReference, s conversion.Scope) error { + out.Name = in.Name + out.Namespace = in.Namespace + return nil +} + +// Convert_core_SecretReference_To_v1_SecretReference is an autogenerated conversion function. +func Convert_core_SecretReference_To_v1_SecretReference(in *core.SecretReference, out *v1.SecretReference, s conversion.Scope) error { + return autoConvert_core_SecretReference_To_v1_SecretReference(in, out, s) +} + +func autoConvert_v1_SecretVolumeSource_To_core_SecretVolumeSource(in *v1.SecretVolumeSource, out *core.SecretVolumeSource, s conversion.Scope) error { + out.SecretName = in.SecretName + out.Items = *(*[]core.KeyToPath)(unsafe.Pointer(&in.Items)) + out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_v1_SecretVolumeSource_To_core_SecretVolumeSource is an autogenerated conversion function. +func Convert_v1_SecretVolumeSource_To_core_SecretVolumeSource(in *v1.SecretVolumeSource, out *core.SecretVolumeSource, s conversion.Scope) error { + return autoConvert_v1_SecretVolumeSource_To_core_SecretVolumeSource(in, out, s) +} + +func autoConvert_core_SecretVolumeSource_To_v1_SecretVolumeSource(in *core.SecretVolumeSource, out *v1.SecretVolumeSource, s conversion.Scope) error { + out.SecretName = in.SecretName + out.Items = *(*[]v1.KeyToPath)(unsafe.Pointer(&in.Items)) + out.DefaultMode = (*int32)(unsafe.Pointer(in.DefaultMode)) + out.Optional = (*bool)(unsafe.Pointer(in.Optional)) + return nil +} + +// Convert_core_SecretVolumeSource_To_v1_SecretVolumeSource is an autogenerated conversion function. +func Convert_core_SecretVolumeSource_To_v1_SecretVolumeSource(in *core.SecretVolumeSource, out *v1.SecretVolumeSource, s conversion.Scope) error { + return autoConvert_core_SecretVolumeSource_To_v1_SecretVolumeSource(in, out, s) +} + +func autoConvert_v1_SecurityContext_To_core_SecurityContext(in *v1.SecurityContext, out *core.SecurityContext, s conversion.Scope) error { + out.Capabilities = (*core.Capabilities)(unsafe.Pointer(in.Capabilities)) + out.Privileged = (*bool)(unsafe.Pointer(in.Privileged)) + out.SELinuxOptions = (*core.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) + out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser)) + out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot)) + out.ReadOnlyRootFilesystem = (*bool)(unsafe.Pointer(in.ReadOnlyRootFilesystem)) + out.AllowPrivilegeEscalation = (*bool)(unsafe.Pointer(in.AllowPrivilegeEscalation)) + return nil +} + +// Convert_v1_SecurityContext_To_core_SecurityContext is an autogenerated conversion function. +func Convert_v1_SecurityContext_To_core_SecurityContext(in *v1.SecurityContext, out *core.SecurityContext, s conversion.Scope) error { + return autoConvert_v1_SecurityContext_To_core_SecurityContext(in, out, s) +} + +func autoConvert_core_SecurityContext_To_v1_SecurityContext(in *core.SecurityContext, out *v1.SecurityContext, s conversion.Scope) error { + out.Capabilities = (*v1.Capabilities)(unsafe.Pointer(in.Capabilities)) + out.Privileged = (*bool)(unsafe.Pointer(in.Privileged)) + out.SELinuxOptions = (*v1.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) + out.RunAsUser = (*int64)(unsafe.Pointer(in.RunAsUser)) + out.RunAsNonRoot = (*bool)(unsafe.Pointer(in.RunAsNonRoot)) + out.ReadOnlyRootFilesystem = (*bool)(unsafe.Pointer(in.ReadOnlyRootFilesystem)) + out.AllowPrivilegeEscalation = (*bool)(unsafe.Pointer(in.AllowPrivilegeEscalation)) + return nil +} + +func autoConvert_v1_SerializedReference_To_core_SerializedReference(in *v1.SerializedReference, out *core.SerializedReference, s conversion.Scope) error { + if err := Convert_v1_ObjectReference_To_core_ObjectReference(&in.Reference, &out.Reference, s); err != nil { + return err + } + return nil +} + +// Convert_v1_SerializedReference_To_core_SerializedReference is an autogenerated conversion function. +func Convert_v1_SerializedReference_To_core_SerializedReference(in *v1.SerializedReference, out *core.SerializedReference, s conversion.Scope) error { + return autoConvert_v1_SerializedReference_To_core_SerializedReference(in, out, s) +} + +func autoConvert_core_SerializedReference_To_v1_SerializedReference(in *core.SerializedReference, out *v1.SerializedReference, s conversion.Scope) error { + if err := Convert_core_ObjectReference_To_v1_ObjectReference(&in.Reference, &out.Reference, s); err != nil { + return err + } + return nil +} + +// Convert_core_SerializedReference_To_v1_SerializedReference is an autogenerated conversion function. +func Convert_core_SerializedReference_To_v1_SerializedReference(in *core.SerializedReference, out *v1.SerializedReference, s conversion.Scope) error { + return autoConvert_core_SerializedReference_To_v1_SerializedReference(in, out, s) +} + +func autoConvert_v1_Service_To_core_Service(in *v1.Service, out *core.Service, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_ServiceSpec_To_core_ServiceSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_ServiceStatus_To_core_ServiceStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_Service_To_core_Service is an autogenerated conversion function. +func Convert_v1_Service_To_core_Service(in *v1.Service, out *core.Service, s conversion.Scope) error { + return autoConvert_v1_Service_To_core_Service(in, out, s) +} + +func autoConvert_core_Service_To_v1_Service(in *core.Service, out *v1.Service, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_core_ServiceSpec_To_v1_ServiceSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_core_ServiceStatus_To_v1_ServiceStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_core_Service_To_v1_Service is an autogenerated conversion function. +func Convert_core_Service_To_v1_Service(in *core.Service, out *v1.Service, s conversion.Scope) error { + return autoConvert_core_Service_To_v1_Service(in, out, s) +} + +func autoConvert_v1_ServiceAccount_To_core_ServiceAccount(in *v1.ServiceAccount, out *core.ServiceAccount, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Secrets = *(*[]core.ObjectReference)(unsafe.Pointer(&in.Secrets)) + out.ImagePullSecrets = *(*[]core.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets)) + out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken)) + return nil +} + +// Convert_v1_ServiceAccount_To_core_ServiceAccount is an autogenerated conversion function. +func Convert_v1_ServiceAccount_To_core_ServiceAccount(in *v1.ServiceAccount, out *core.ServiceAccount, s conversion.Scope) error { + return autoConvert_v1_ServiceAccount_To_core_ServiceAccount(in, out, s) +} + +func autoConvert_core_ServiceAccount_To_v1_ServiceAccount(in *core.ServiceAccount, out *v1.ServiceAccount, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Secrets = *(*[]v1.ObjectReference)(unsafe.Pointer(&in.Secrets)) + out.ImagePullSecrets = *(*[]v1.LocalObjectReference)(unsafe.Pointer(&in.ImagePullSecrets)) + out.AutomountServiceAccountToken = (*bool)(unsafe.Pointer(in.AutomountServiceAccountToken)) + return nil +} + +// Convert_core_ServiceAccount_To_v1_ServiceAccount is an autogenerated conversion function. +func Convert_core_ServiceAccount_To_v1_ServiceAccount(in *core.ServiceAccount, out *v1.ServiceAccount, s conversion.Scope) error { + return autoConvert_core_ServiceAccount_To_v1_ServiceAccount(in, out, s) +} + +func autoConvert_v1_ServiceAccountList_To_core_ServiceAccountList(in *v1.ServiceAccountList, out *core.ServiceAccountList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]core.ServiceAccount)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_ServiceAccountList_To_core_ServiceAccountList is an autogenerated conversion function. +func Convert_v1_ServiceAccountList_To_core_ServiceAccountList(in *v1.ServiceAccountList, out *core.ServiceAccountList, s conversion.Scope) error { + return autoConvert_v1_ServiceAccountList_To_core_ServiceAccountList(in, out, s) +} + +func autoConvert_core_ServiceAccountList_To_v1_ServiceAccountList(in *core.ServiceAccountList, out *v1.ServiceAccountList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1.ServiceAccount)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_core_ServiceAccountList_To_v1_ServiceAccountList is an autogenerated conversion function. +func Convert_core_ServiceAccountList_To_v1_ServiceAccountList(in *core.ServiceAccountList, out *v1.ServiceAccountList, s conversion.Scope) error { + return autoConvert_core_ServiceAccountList_To_v1_ServiceAccountList(in, out, s) +} + +func autoConvert_v1_ServiceList_To_core_ServiceList(in *v1.ServiceList, out *core.ServiceList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]core.Service, len(*in)) + for i := range *in { + if err := Convert_v1_Service_To_core_Service(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1_ServiceList_To_core_ServiceList is an autogenerated conversion function. +func Convert_v1_ServiceList_To_core_ServiceList(in *v1.ServiceList, out *core.ServiceList, s conversion.Scope) error { + return autoConvert_v1_ServiceList_To_core_ServiceList(in, out, s) +} + +func autoConvert_core_ServiceList_To_v1_ServiceList(in *core.ServiceList, out *v1.ServiceList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1.Service, len(*in)) + for i := range *in { + if err := Convert_core_Service_To_v1_Service(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_core_ServiceList_To_v1_ServiceList is an autogenerated conversion function. +func Convert_core_ServiceList_To_v1_ServiceList(in *core.ServiceList, out *v1.ServiceList, s conversion.Scope) error { + return autoConvert_core_ServiceList_To_v1_ServiceList(in, out, s) +} + +func autoConvert_v1_ServicePort_To_core_ServicePort(in *v1.ServicePort, out *core.ServicePort, s conversion.Scope) error { + out.Name = in.Name + out.Protocol = core.Protocol(in.Protocol) + out.Port = in.Port + out.TargetPort = in.TargetPort + out.NodePort = in.NodePort + return nil +} + +// Convert_v1_ServicePort_To_core_ServicePort is an autogenerated conversion function. +func Convert_v1_ServicePort_To_core_ServicePort(in *v1.ServicePort, out *core.ServicePort, s conversion.Scope) error { + return autoConvert_v1_ServicePort_To_core_ServicePort(in, out, s) +} + +func autoConvert_core_ServicePort_To_v1_ServicePort(in *core.ServicePort, out *v1.ServicePort, s conversion.Scope) error { + out.Name = in.Name + out.Protocol = v1.Protocol(in.Protocol) + out.Port = in.Port + out.TargetPort = in.TargetPort + out.NodePort = in.NodePort + return nil +} + +// Convert_core_ServicePort_To_v1_ServicePort is an autogenerated conversion function. +func Convert_core_ServicePort_To_v1_ServicePort(in *core.ServicePort, out *v1.ServicePort, s conversion.Scope) error { + return autoConvert_core_ServicePort_To_v1_ServicePort(in, out, s) +} + +func autoConvert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions(in *v1.ServiceProxyOptions, out *core.ServiceProxyOptions, s conversion.Scope) error { + out.Path = in.Path + return nil +} + +// Convert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions is an autogenerated conversion function. +func Convert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions(in *v1.ServiceProxyOptions, out *core.ServiceProxyOptions, s conversion.Scope) error { + return autoConvert_v1_ServiceProxyOptions_To_core_ServiceProxyOptions(in, out, s) +} + +func autoConvert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions(in *core.ServiceProxyOptions, out *v1.ServiceProxyOptions, s conversion.Scope) error { + out.Path = in.Path + return nil +} + +// Convert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions is an autogenerated conversion function. +func Convert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions(in *core.ServiceProxyOptions, out *v1.ServiceProxyOptions, s conversion.Scope) error { + return autoConvert_core_ServiceProxyOptions_To_v1_ServiceProxyOptions(in, out, s) +} + +func autoConvert_v1_ServiceSpec_To_core_ServiceSpec(in *v1.ServiceSpec, out *core.ServiceSpec, s conversion.Scope) error { + out.Ports = *(*[]core.ServicePort)(unsafe.Pointer(&in.Ports)) + out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector)) + out.ClusterIP = in.ClusterIP + out.Type = core.ServiceType(in.Type) + out.ExternalIPs = *(*[]string)(unsafe.Pointer(&in.ExternalIPs)) + out.SessionAffinity = core.ServiceAffinity(in.SessionAffinity) + out.LoadBalancerIP = in.LoadBalancerIP + out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges)) + out.ExternalName = in.ExternalName + out.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy) + out.HealthCheckNodePort = in.HealthCheckNodePort + out.PublishNotReadyAddresses = in.PublishNotReadyAddresses + out.SessionAffinityConfig = (*core.SessionAffinityConfig)(unsafe.Pointer(in.SessionAffinityConfig)) + return nil +} + +// Convert_v1_ServiceSpec_To_core_ServiceSpec is an autogenerated conversion function. +func Convert_v1_ServiceSpec_To_core_ServiceSpec(in *v1.ServiceSpec, out *core.ServiceSpec, s conversion.Scope) error { + return autoConvert_v1_ServiceSpec_To_core_ServiceSpec(in, out, s) +} + +func autoConvert_core_ServiceSpec_To_v1_ServiceSpec(in *core.ServiceSpec, out *v1.ServiceSpec, s conversion.Scope) error { + out.Type = v1.ServiceType(in.Type) + out.Ports = *(*[]v1.ServicePort)(unsafe.Pointer(&in.Ports)) + out.Selector = *(*map[string]string)(unsafe.Pointer(&in.Selector)) + out.ClusterIP = in.ClusterIP + out.ExternalName = in.ExternalName + out.ExternalIPs = *(*[]string)(unsafe.Pointer(&in.ExternalIPs)) + out.LoadBalancerIP = in.LoadBalancerIP + out.SessionAffinity = v1.ServiceAffinity(in.SessionAffinity) + out.SessionAffinityConfig = (*v1.SessionAffinityConfig)(unsafe.Pointer(in.SessionAffinityConfig)) + out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges)) + out.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy) + out.HealthCheckNodePort = in.HealthCheckNodePort + out.PublishNotReadyAddresses = in.PublishNotReadyAddresses + return nil +} + +// Convert_core_ServiceSpec_To_v1_ServiceSpec is an autogenerated conversion function. +func Convert_core_ServiceSpec_To_v1_ServiceSpec(in *core.ServiceSpec, out *v1.ServiceSpec, s conversion.Scope) error { + return autoConvert_core_ServiceSpec_To_v1_ServiceSpec(in, out, s) +} + +func autoConvert_v1_ServiceStatus_To_core_ServiceStatus(in *v1.ServiceStatus, out *core.ServiceStatus, s conversion.Scope) error { + if err := Convert_v1_LoadBalancerStatus_To_core_LoadBalancerStatus(&in.LoadBalancer, &out.LoadBalancer, s); err != nil { + return err + } + return nil +} + +// Convert_v1_ServiceStatus_To_core_ServiceStatus is an autogenerated conversion function. +func Convert_v1_ServiceStatus_To_core_ServiceStatus(in *v1.ServiceStatus, out *core.ServiceStatus, s conversion.Scope) error { + return autoConvert_v1_ServiceStatus_To_core_ServiceStatus(in, out, s) +} + +func autoConvert_core_ServiceStatus_To_v1_ServiceStatus(in *core.ServiceStatus, out *v1.ServiceStatus, s conversion.Scope) error { + if err := Convert_core_LoadBalancerStatus_To_v1_LoadBalancerStatus(&in.LoadBalancer, &out.LoadBalancer, s); err != nil { + return err + } + return nil +} + +// Convert_core_ServiceStatus_To_v1_ServiceStatus is an autogenerated conversion function. +func Convert_core_ServiceStatus_To_v1_ServiceStatus(in *core.ServiceStatus, out *v1.ServiceStatus, s conversion.Scope) error { + return autoConvert_core_ServiceStatus_To_v1_ServiceStatus(in, out, s) +} + +func autoConvert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig(in *v1.SessionAffinityConfig, out *core.SessionAffinityConfig, s conversion.Scope) error { + out.ClientIP = (*core.ClientIPConfig)(unsafe.Pointer(in.ClientIP)) + return nil +} + +// Convert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig is an autogenerated conversion function. +func Convert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig(in *v1.SessionAffinityConfig, out *core.SessionAffinityConfig, s conversion.Scope) error { + return autoConvert_v1_SessionAffinityConfig_To_core_SessionAffinityConfig(in, out, s) +} + +func autoConvert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig(in *core.SessionAffinityConfig, out *v1.SessionAffinityConfig, s conversion.Scope) error { + out.ClientIP = (*v1.ClientIPConfig)(unsafe.Pointer(in.ClientIP)) + return nil +} + +// Convert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig is an autogenerated conversion function. +func Convert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig(in *core.SessionAffinityConfig, out *v1.SessionAffinityConfig, s conversion.Scope) error { + return autoConvert_core_SessionAffinityConfig_To_v1_SessionAffinityConfig(in, out, s) +} + +func autoConvert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource(in *v1.StorageOSPersistentVolumeSource, out *core.StorageOSPersistentVolumeSource, s conversion.Scope) error { + out.VolumeName = in.VolumeName + out.VolumeNamespace = in.VolumeNamespace + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + out.SecretRef = (*core.ObjectReference)(unsafe.Pointer(in.SecretRef)) + return nil +} + +// Convert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource is an autogenerated conversion function. +func Convert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource(in *v1.StorageOSPersistentVolumeSource, out *core.StorageOSPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_v1_StorageOSPersistentVolumeSource_To_core_StorageOSPersistentVolumeSource(in, out, s) +} + +func autoConvert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource(in *core.StorageOSPersistentVolumeSource, out *v1.StorageOSPersistentVolumeSource, s conversion.Scope) error { + out.VolumeName = in.VolumeName + out.VolumeNamespace = in.VolumeNamespace + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + out.SecretRef = (*v1.ObjectReference)(unsafe.Pointer(in.SecretRef)) + return nil +} + +// Convert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource is an autogenerated conversion function. +func Convert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource(in *core.StorageOSPersistentVolumeSource, out *v1.StorageOSPersistentVolumeSource, s conversion.Scope) error { + return autoConvert_core_StorageOSPersistentVolumeSource_To_v1_StorageOSPersistentVolumeSource(in, out, s) +} + +func autoConvert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource(in *v1.StorageOSVolumeSource, out *core.StorageOSVolumeSource, s conversion.Scope) error { + out.VolumeName = in.VolumeName + out.VolumeNamespace = in.VolumeNamespace + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + out.SecretRef = (*core.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + return nil +} + +// Convert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource is an autogenerated conversion function. +func Convert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource(in *v1.StorageOSVolumeSource, out *core.StorageOSVolumeSource, s conversion.Scope) error { + return autoConvert_v1_StorageOSVolumeSource_To_core_StorageOSVolumeSource(in, out, s) +} + +func autoConvert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource(in *core.StorageOSVolumeSource, out *v1.StorageOSVolumeSource, s conversion.Scope) error { + out.VolumeName = in.VolumeName + out.VolumeNamespace = in.VolumeNamespace + out.FSType = in.FSType + out.ReadOnly = in.ReadOnly + out.SecretRef = (*v1.LocalObjectReference)(unsafe.Pointer(in.SecretRef)) + return nil +} + +// Convert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource is an autogenerated conversion function. +func Convert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource(in *core.StorageOSVolumeSource, out *v1.StorageOSVolumeSource, s conversion.Scope) error { + return autoConvert_core_StorageOSVolumeSource_To_v1_StorageOSVolumeSource(in, out, s) +} + +func autoConvert_v1_Sysctl_To_core_Sysctl(in *v1.Sysctl, out *core.Sysctl, s conversion.Scope) error { + out.Name = in.Name + out.Value = in.Value + return nil +} + +// Convert_v1_Sysctl_To_core_Sysctl is an autogenerated conversion function. +func Convert_v1_Sysctl_To_core_Sysctl(in *v1.Sysctl, out *core.Sysctl, s conversion.Scope) error { + return autoConvert_v1_Sysctl_To_core_Sysctl(in, out, s) +} + +func autoConvert_core_Sysctl_To_v1_Sysctl(in *core.Sysctl, out *v1.Sysctl, s conversion.Scope) error { + out.Name = in.Name + out.Value = in.Value + return nil +} + +// Convert_core_Sysctl_To_v1_Sysctl is an autogenerated conversion function. +func Convert_core_Sysctl_To_v1_Sysctl(in *core.Sysctl, out *v1.Sysctl, s conversion.Scope) error { + return autoConvert_core_Sysctl_To_v1_Sysctl(in, out, s) +} + +func autoConvert_v1_TCPSocketAction_To_core_TCPSocketAction(in *v1.TCPSocketAction, out *core.TCPSocketAction, s conversion.Scope) error { + out.Port = in.Port + out.Host = in.Host + return nil +} + +// Convert_v1_TCPSocketAction_To_core_TCPSocketAction is an autogenerated conversion function. +func Convert_v1_TCPSocketAction_To_core_TCPSocketAction(in *v1.TCPSocketAction, out *core.TCPSocketAction, s conversion.Scope) error { + return autoConvert_v1_TCPSocketAction_To_core_TCPSocketAction(in, out, s) +} + +func autoConvert_core_TCPSocketAction_To_v1_TCPSocketAction(in *core.TCPSocketAction, out *v1.TCPSocketAction, s conversion.Scope) error { + out.Port = in.Port + out.Host = in.Host + return nil +} + +// Convert_core_TCPSocketAction_To_v1_TCPSocketAction is an autogenerated conversion function. +func Convert_core_TCPSocketAction_To_v1_TCPSocketAction(in *core.TCPSocketAction, out *v1.TCPSocketAction, s conversion.Scope) error { + return autoConvert_core_TCPSocketAction_To_v1_TCPSocketAction(in, out, s) +} + +func autoConvert_v1_Taint_To_core_Taint(in *v1.Taint, out *core.Taint, s conversion.Scope) error { + out.Key = in.Key + out.Value = in.Value + out.Effect = core.TaintEffect(in.Effect) + out.TimeAdded = (*meta_v1.Time)(unsafe.Pointer(in.TimeAdded)) + return nil +} + +// Convert_v1_Taint_To_core_Taint is an autogenerated conversion function. +func Convert_v1_Taint_To_core_Taint(in *v1.Taint, out *core.Taint, s conversion.Scope) error { + return autoConvert_v1_Taint_To_core_Taint(in, out, s) +} + +func autoConvert_core_Taint_To_v1_Taint(in *core.Taint, out *v1.Taint, s conversion.Scope) error { + out.Key = in.Key + out.Value = in.Value + out.Effect = v1.TaintEffect(in.Effect) + out.TimeAdded = (*meta_v1.Time)(unsafe.Pointer(in.TimeAdded)) + return nil +} + +// Convert_core_Taint_To_v1_Taint is an autogenerated conversion function. +func Convert_core_Taint_To_v1_Taint(in *core.Taint, out *v1.Taint, s conversion.Scope) error { + return autoConvert_core_Taint_To_v1_Taint(in, out, s) +} + +func autoConvert_v1_Toleration_To_core_Toleration(in *v1.Toleration, out *core.Toleration, s conversion.Scope) error { + out.Key = in.Key + out.Operator = core.TolerationOperator(in.Operator) + out.Value = in.Value + out.Effect = core.TaintEffect(in.Effect) + out.TolerationSeconds = (*int64)(unsafe.Pointer(in.TolerationSeconds)) + return nil +} + +// Convert_v1_Toleration_To_core_Toleration is an autogenerated conversion function. +func Convert_v1_Toleration_To_core_Toleration(in *v1.Toleration, out *core.Toleration, s conversion.Scope) error { + return autoConvert_v1_Toleration_To_core_Toleration(in, out, s) +} + +func autoConvert_core_Toleration_To_v1_Toleration(in *core.Toleration, out *v1.Toleration, s conversion.Scope) error { + out.Key = in.Key + out.Operator = v1.TolerationOperator(in.Operator) + out.Value = in.Value + out.Effect = v1.TaintEffect(in.Effect) + out.TolerationSeconds = (*int64)(unsafe.Pointer(in.TolerationSeconds)) + return nil +} + +// Convert_core_Toleration_To_v1_Toleration is an autogenerated conversion function. +func Convert_core_Toleration_To_v1_Toleration(in *core.Toleration, out *v1.Toleration, s conversion.Scope) error { + return autoConvert_core_Toleration_To_v1_Toleration(in, out, s) +} + +func autoConvert_v1_Volume_To_core_Volume(in *v1.Volume, out *core.Volume, s conversion.Scope) error { + out.Name = in.Name + if err := Convert_v1_VolumeSource_To_core_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil { + return err + } + return nil +} + +// Convert_v1_Volume_To_core_Volume is an autogenerated conversion function. +func Convert_v1_Volume_To_core_Volume(in *v1.Volume, out *core.Volume, s conversion.Scope) error { + return autoConvert_v1_Volume_To_core_Volume(in, out, s) +} + +func autoConvert_core_Volume_To_v1_Volume(in *core.Volume, out *v1.Volume, s conversion.Scope) error { + out.Name = in.Name + if err := Convert_core_VolumeSource_To_v1_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil { + return err + } + return nil +} + +// Convert_core_Volume_To_v1_Volume is an autogenerated conversion function. +func Convert_core_Volume_To_v1_Volume(in *core.Volume, out *v1.Volume, s conversion.Scope) error { + return autoConvert_core_Volume_To_v1_Volume(in, out, s) +} + +func autoConvert_v1_VolumeMount_To_core_VolumeMount(in *v1.VolumeMount, out *core.VolumeMount, s conversion.Scope) error { + out.Name = in.Name + out.ReadOnly = in.ReadOnly + out.MountPath = in.MountPath + out.SubPath = in.SubPath + out.MountPropagation = (*core.MountPropagationMode)(unsafe.Pointer(in.MountPropagation)) + return nil +} + +// Convert_v1_VolumeMount_To_core_VolumeMount is an autogenerated conversion function. +func Convert_v1_VolumeMount_To_core_VolumeMount(in *v1.VolumeMount, out *core.VolumeMount, s conversion.Scope) error { + return autoConvert_v1_VolumeMount_To_core_VolumeMount(in, out, s) +} + +func autoConvert_core_VolumeMount_To_v1_VolumeMount(in *core.VolumeMount, out *v1.VolumeMount, s conversion.Scope) error { + out.Name = in.Name + out.ReadOnly = in.ReadOnly + out.MountPath = in.MountPath + out.SubPath = in.SubPath + out.MountPropagation = (*v1.MountPropagationMode)(unsafe.Pointer(in.MountPropagation)) + return nil +} + +// Convert_core_VolumeMount_To_v1_VolumeMount is an autogenerated conversion function. +func Convert_core_VolumeMount_To_v1_VolumeMount(in *core.VolumeMount, out *v1.VolumeMount, s conversion.Scope) error { + return autoConvert_core_VolumeMount_To_v1_VolumeMount(in, out, s) +} + +func autoConvert_v1_VolumeProjection_To_core_VolumeProjection(in *v1.VolumeProjection, out *core.VolumeProjection, s conversion.Scope) error { + out.Secret = (*core.SecretProjection)(unsafe.Pointer(in.Secret)) + out.DownwardAPI = (*core.DownwardAPIProjection)(unsafe.Pointer(in.DownwardAPI)) + out.ConfigMap = (*core.ConfigMapProjection)(unsafe.Pointer(in.ConfigMap)) + return nil +} + +// Convert_v1_VolumeProjection_To_core_VolumeProjection is an autogenerated conversion function. +func Convert_v1_VolumeProjection_To_core_VolumeProjection(in *v1.VolumeProjection, out *core.VolumeProjection, s conversion.Scope) error { + return autoConvert_v1_VolumeProjection_To_core_VolumeProjection(in, out, s) +} + +func autoConvert_core_VolumeProjection_To_v1_VolumeProjection(in *core.VolumeProjection, out *v1.VolumeProjection, s conversion.Scope) error { + out.Secret = (*v1.SecretProjection)(unsafe.Pointer(in.Secret)) + out.DownwardAPI = (*v1.DownwardAPIProjection)(unsafe.Pointer(in.DownwardAPI)) + out.ConfigMap = (*v1.ConfigMapProjection)(unsafe.Pointer(in.ConfigMap)) + return nil +} + +// Convert_core_VolumeProjection_To_v1_VolumeProjection is an autogenerated conversion function. +func Convert_core_VolumeProjection_To_v1_VolumeProjection(in *core.VolumeProjection, out *v1.VolumeProjection, s conversion.Scope) error { + return autoConvert_core_VolumeProjection_To_v1_VolumeProjection(in, out, s) +} + +func autoConvert_v1_VolumeSource_To_core_VolumeSource(in *v1.VolumeSource, out *core.VolumeSource, s conversion.Scope) error { + out.HostPath = (*core.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) + out.EmptyDir = (*core.EmptyDirVolumeSource)(unsafe.Pointer(in.EmptyDir)) + out.GCEPersistentDisk = (*core.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk)) + out.AWSElasticBlockStore = (*core.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore)) + out.GitRepo = (*core.GitRepoVolumeSource)(unsafe.Pointer(in.GitRepo)) + out.Secret = (*core.SecretVolumeSource)(unsafe.Pointer(in.Secret)) + out.NFS = (*core.NFSVolumeSource)(unsafe.Pointer(in.NFS)) + out.ISCSI = (*core.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) + out.Glusterfs = (*core.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) + out.PersistentVolumeClaim = (*core.PersistentVolumeClaimVolumeSource)(unsafe.Pointer(in.PersistentVolumeClaim)) + out.RBD = (*core.RBDVolumeSource)(unsafe.Pointer(in.RBD)) + out.FlexVolume = (*core.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) + out.Cinder = (*core.CinderVolumeSource)(unsafe.Pointer(in.Cinder)) + out.CephFS = (*core.CephFSVolumeSource)(unsafe.Pointer(in.CephFS)) + out.Flocker = (*core.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) + out.DownwardAPI = (*core.DownwardAPIVolumeSource)(unsafe.Pointer(in.DownwardAPI)) + out.FC = (*core.FCVolumeSource)(unsafe.Pointer(in.FC)) + out.AzureFile = (*core.AzureFileVolumeSource)(unsafe.Pointer(in.AzureFile)) + out.ConfigMap = (*core.ConfigMapVolumeSource)(unsafe.Pointer(in.ConfigMap)) + out.VsphereVolume = (*core.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) + out.Quobyte = (*core.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) + out.AzureDisk = (*core.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) + out.PhotonPersistentDisk = (*core.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk)) + out.Projected = (*core.ProjectedVolumeSource)(unsafe.Pointer(in.Projected)) + out.PortworxVolume = (*core.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume)) + out.ScaleIO = (*core.ScaleIOVolumeSource)(unsafe.Pointer(in.ScaleIO)) + out.StorageOS = (*core.StorageOSVolumeSource)(unsafe.Pointer(in.StorageOS)) + return nil +} + +// Convert_v1_VolumeSource_To_core_VolumeSource is an autogenerated conversion function. +func Convert_v1_VolumeSource_To_core_VolumeSource(in *v1.VolumeSource, out *core.VolumeSource, s conversion.Scope) error { + return autoConvert_v1_VolumeSource_To_core_VolumeSource(in, out, s) +} + +func autoConvert_core_VolumeSource_To_v1_VolumeSource(in *core.VolumeSource, out *v1.VolumeSource, s conversion.Scope) error { + out.HostPath = (*v1.HostPathVolumeSource)(unsafe.Pointer(in.HostPath)) + out.EmptyDir = (*v1.EmptyDirVolumeSource)(unsafe.Pointer(in.EmptyDir)) + out.GCEPersistentDisk = (*v1.GCEPersistentDiskVolumeSource)(unsafe.Pointer(in.GCEPersistentDisk)) + out.AWSElasticBlockStore = (*v1.AWSElasticBlockStoreVolumeSource)(unsafe.Pointer(in.AWSElasticBlockStore)) + out.GitRepo = (*v1.GitRepoVolumeSource)(unsafe.Pointer(in.GitRepo)) + out.Secret = (*v1.SecretVolumeSource)(unsafe.Pointer(in.Secret)) + out.NFS = (*v1.NFSVolumeSource)(unsafe.Pointer(in.NFS)) + out.ISCSI = (*v1.ISCSIVolumeSource)(unsafe.Pointer(in.ISCSI)) + out.Glusterfs = (*v1.GlusterfsVolumeSource)(unsafe.Pointer(in.Glusterfs)) + out.PersistentVolumeClaim = (*v1.PersistentVolumeClaimVolumeSource)(unsafe.Pointer(in.PersistentVolumeClaim)) + out.RBD = (*v1.RBDVolumeSource)(unsafe.Pointer(in.RBD)) + out.Quobyte = (*v1.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) + out.FlexVolume = (*v1.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) + out.Cinder = (*v1.CinderVolumeSource)(unsafe.Pointer(in.Cinder)) + out.CephFS = (*v1.CephFSVolumeSource)(unsafe.Pointer(in.CephFS)) + out.Flocker = (*v1.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) + out.DownwardAPI = (*v1.DownwardAPIVolumeSource)(unsafe.Pointer(in.DownwardAPI)) + out.FC = (*v1.FCVolumeSource)(unsafe.Pointer(in.FC)) + out.AzureFile = (*v1.AzureFileVolumeSource)(unsafe.Pointer(in.AzureFile)) + out.ConfigMap = (*v1.ConfigMapVolumeSource)(unsafe.Pointer(in.ConfigMap)) + out.VsphereVolume = (*v1.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) + out.AzureDisk = (*v1.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) + out.PhotonPersistentDisk = (*v1.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk)) + out.Projected = (*v1.ProjectedVolumeSource)(unsafe.Pointer(in.Projected)) + out.PortworxVolume = (*v1.PortworxVolumeSource)(unsafe.Pointer(in.PortworxVolume)) + out.ScaleIO = (*v1.ScaleIOVolumeSource)(unsafe.Pointer(in.ScaleIO)) + out.StorageOS = (*v1.StorageOSVolumeSource)(unsafe.Pointer(in.StorageOS)) + return nil +} + +// Convert_core_VolumeSource_To_v1_VolumeSource is an autogenerated conversion function. +func Convert_core_VolumeSource_To_v1_VolumeSource(in *core.VolumeSource, out *v1.VolumeSource, s conversion.Scope) error { + return autoConvert_core_VolumeSource_To_v1_VolumeSource(in, out, s) +} + +func autoConvert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource(in *v1.VsphereVirtualDiskVolumeSource, out *core.VsphereVirtualDiskVolumeSource, s conversion.Scope) error { + out.VolumePath = in.VolumePath + out.FSType = in.FSType + out.StoragePolicyName = in.StoragePolicyName + out.StoragePolicyID = in.StoragePolicyID + return nil +} + +// Convert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource is an autogenerated conversion function. +func Convert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource(in *v1.VsphereVirtualDiskVolumeSource, out *core.VsphereVirtualDiskVolumeSource, s conversion.Scope) error { + return autoConvert_v1_VsphereVirtualDiskVolumeSource_To_core_VsphereVirtualDiskVolumeSource(in, out, s) +} + +func autoConvert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource(in *core.VsphereVirtualDiskVolumeSource, out *v1.VsphereVirtualDiskVolumeSource, s conversion.Scope) error { + out.VolumePath = in.VolumePath + out.FSType = in.FSType + out.StoragePolicyName = in.StoragePolicyName + out.StoragePolicyID = in.StoragePolicyID + return nil +} + +// Convert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource is an autogenerated conversion function. +func Convert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource(in *core.VsphereVirtualDiskVolumeSource, out *v1.VsphereVirtualDiskVolumeSource, s conversion.Scope) error { + return autoConvert_core_VsphereVirtualDiskVolumeSource_To_v1_VsphereVirtualDiskVolumeSource(in, out, s) +} + +func autoConvert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm(in *v1.WeightedPodAffinityTerm, out *core.WeightedPodAffinityTerm, s conversion.Scope) error { + out.Weight = in.Weight + if err := Convert_v1_PodAffinityTerm_To_core_PodAffinityTerm(&in.PodAffinityTerm, &out.PodAffinityTerm, s); err != nil { + return err + } + return nil +} + +// Convert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm is an autogenerated conversion function. +func Convert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm(in *v1.WeightedPodAffinityTerm, out *core.WeightedPodAffinityTerm, s conversion.Scope) error { + return autoConvert_v1_WeightedPodAffinityTerm_To_core_WeightedPodAffinityTerm(in, out, s) +} + +func autoConvert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm(in *core.WeightedPodAffinityTerm, out *v1.WeightedPodAffinityTerm, s conversion.Scope) error { + out.Weight = in.Weight + if err := Convert_core_PodAffinityTerm_To_v1_PodAffinityTerm(&in.PodAffinityTerm, &out.PodAffinityTerm, s); err != nil { + return err + } + return nil +} + +// Convert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm is an autogenerated conversion function. +func Convert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm(in *core.WeightedPodAffinityTerm, out *v1.WeightedPodAffinityTerm, s conversion.Scope) error { + return autoConvert_core_WeightedPodAffinityTerm_To_v1_WeightedPodAffinityTerm(in, out, s) +} diff --git a/vendor/k8s.io/kubernetes/pkg/api/v1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.defaults.go similarity index 99% rename from vendor/k8s.io/kubernetes/pkg/api/v1/zz_generated.defaults.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.defaults.go index c41d6ae3e..9779d2a1a 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/v1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/zz_generated.defaults.go @@ -137,7 +137,7 @@ func SetObjectDefaults_PersistentVolume(in *v1.PersistentVolume) { SetDefaults_HostPathVolumeSource(in.Spec.PersistentVolumeSource.HostPath) } if in.Spec.PersistentVolumeSource.RBD != nil { - SetDefaults_RBDVolumeSource(in.Spec.PersistentVolumeSource.RBD) + SetDefaults_RBDPersistentVolumeSource(in.Spec.PersistentVolumeSource.RBD) } if in.Spec.PersistentVolumeSource.ISCSI != nil { SetDefaults_ISCSIVolumeSource(in.Spec.PersistentVolumeSource.ISCSI) @@ -146,7 +146,7 @@ func SetObjectDefaults_PersistentVolume(in *v1.PersistentVolume) { SetDefaults_AzureDiskVolumeSource(in.Spec.PersistentVolumeSource.AzureDisk) } if in.Spec.PersistentVolumeSource.ScaleIO != nil { - SetDefaults_ScaleIOVolumeSource(in.Spec.PersistentVolumeSource.ScaleIO) + SetDefaults_ScaleIOPersistentVolumeSource(in.Spec.PersistentVolumeSource.ScaleIO) } } diff --git a/vendor/k8s.io/kubernetes/pkg/api/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/BUILD similarity index 84% rename from vendor/k8s.io/kubernetes/pkg/api/validation/BUILD rename to vendor/k8s.io/kubernetes/pkg/apis/core/validation/BUILD index 684e46f24..ef2778079 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/BUILD @@ -11,14 +11,15 @@ go_library( "events.go", "validation.go", ], - importpath = "k8s.io/kubernetes/pkg/api/validation", + importpath = "k8s.io/kubernetes/pkg/apis/core/validation", visibility = ["//visibility:public"], deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/service:go_default_library", - "//pkg/api/v1:go_default_library", - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", + "//pkg/apis/core/v1:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/capabilities:go_default_library", "//pkg/features:go_default_library", "//pkg/security/apparmor:go_default_library", @@ -47,12 +48,13 @@ go_test( "events_test.go", "validation_test.go", ], - importpath = "k8s.io/kubernetes/pkg/api/validation", + importpath = "k8s.io/kubernetes/pkg/apis/core/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/capabilities:go_default_library", "//pkg/security/apparmor:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/api/validation/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/OWNERS similarity index 100% rename from vendor/k8s.io/kubernetes/pkg/api/validation/OWNERS rename to vendor/k8s.io/kubernetes/pkg/apis/core/validation/OWNERS diff --git a/vendor/k8s.io/kubernetes/pkg/api/validation/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/doc.go similarity index 90% rename from vendor/k8s.io/kubernetes/pkg/api/validation/doc.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/validation/doc.go index 30f541de3..0c1cfaab5 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/validation/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/doc.go @@ -16,4 +16,4 @@ limitations under the License. // Package validation has functions for validating the correctness of api // objects and explaining what is wrong with them when they aren't valid. -package validation // import "k8s.io/kubernetes/pkg/api/validation" +package validation // import "k8s.io/kubernetes/pkg/apis/core/validation" diff --git a/vendor/k8s.io/kubernetes/pkg/api/validation/events.go b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/events.go similarity index 94% rename from vendor/k8s.io/kubernetes/pkg/api/validation/events.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/validation/events.go index 890a6cce4..dc0f5a937 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/validation/events.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/events.go @@ -24,11 +24,12 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + "k8s.io/kubernetes/pkg/apis/core" ) // ValidateEvent makes sure that the event makes sense. -func ValidateEvent(event *api.Event) field.ErrorList { +func ValidateEvent(event *core.Event) field.ErrorList { allErrs := field.ErrorList{} // Make sure event.Namespace and the involvedObject.Namespace agree @@ -66,7 +67,7 @@ func isNamespacedKind(kind, groupVersion string) (bool, error) { if err != nil { return false, err } - g, err := api.Registry.Group(gv.Group) + g, err := legacyscheme.Registry.Group(gv.Group) if err != nil { return false, err } diff --git a/vendor/k8s.io/kubernetes/pkg/api/validation/events_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/events_test.go similarity index 81% rename from vendor/k8s.io/kubernetes/pkg/api/validation/events_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/validation/events_test.go index 0df784f6d..c96ed2409 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/validation/events_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/events_test.go @@ -20,69 +20,69 @@ import ( "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/core" ) func TestValidateEvent(t *testing.T) { table := []struct { - *api.Event + *core.Event valid bool }{ { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test1", Namespace: "foo", }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ Namespace: "bar", Kind: "Pod", }, }, false, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test2", Namespace: "aoeu-_-aoeu", }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ Namespace: "aoeu-_-aoeu", Kind: "Pod", }, }, false, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test3", Namespace: metav1.NamespaceDefault, }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "v1", Kind: "Node", }, }, true, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test4", Namespace: metav1.NamespaceDefault, }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "v1", Kind: "Namespace", }, }, true, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test5", Namespace: metav1.NamespaceDefault, }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "extensions/v1beta1", Kind: "NoKind", Namespace: metav1.NamespaceDefault, @@ -90,12 +90,12 @@ func TestValidateEvent(t *testing.T) { }, true, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test6", Namespace: metav1.NamespaceDefault, }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "extensions/v1beta1", Kind: "Job", Namespace: "foo", @@ -103,12 +103,12 @@ func TestValidateEvent(t *testing.T) { }, false, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test7", Namespace: metav1.NamespaceDefault, }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "extensions/v1beta1", Kind: "Job", Namespace: metav1.NamespaceDefault, @@ -116,12 +116,12 @@ func TestValidateEvent(t *testing.T) { }, true, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test8", Namespace: metav1.NamespaceDefault, }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "other/v1beta1", Kind: "Job", Namespace: "foo", @@ -129,12 +129,12 @@ func TestValidateEvent(t *testing.T) { }, false, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test9", Namespace: "foo", }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "other/v1beta1", Kind: "Job", Namespace: "foo", @@ -142,12 +142,12 @@ func TestValidateEvent(t *testing.T) { }, true, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test10", Namespace: metav1.NamespaceDefault, }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "extensions", Kind: "Job", Namespace: "foo", @@ -155,12 +155,12 @@ func TestValidateEvent(t *testing.T) { }, false, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test11", Namespace: "foo", }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ // must register in v1beta1 to be true APIVersion: "extensions/v1beta1", Kind: "Job", @@ -170,12 +170,12 @@ func TestValidateEvent(t *testing.T) { true, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test12", Namespace: "foo", }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "other/v1beta1", Kind: "FooBar", Namespace: "bar", @@ -184,12 +184,12 @@ func TestValidateEvent(t *testing.T) { false, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test13", Namespace: "", }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "other/v1beta1", Kind: "FooBar", Namespace: "bar", @@ -198,12 +198,12 @@ func TestValidateEvent(t *testing.T) { false, }, { - &api.Event{ + &core.Event{ ObjectMeta: metav1.ObjectMeta{ Name: "test14", Namespace: "foo", }, - InvolvedObject: api.ObjectReference{ + InvolvedObject: core.ObjectReference{ APIVersion: "other/v1beta1", Kind: "FooBar", Namespace: "", diff --git a/vendor/k8s.io/kubernetes/pkg/api/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go similarity index 84% rename from vendor/k8s.io/kubernetes/pkg/api/validation/validation.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go index 3d08bbe51..8fe283ddf 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation.go @@ -33,7 +33,6 @@ import ( apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/api/resource" apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation" - genericvalidation "k8s.io/apimachinery/pkg/api/validation" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" "k8s.io/apimachinery/pkg/labels" @@ -43,11 +42,12 @@ import ( "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + "k8s.io/kubernetes/pkg/api/legacyscheme" apiservice "k8s.io/kubernetes/pkg/api/service" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" + corev1 "k8s.io/kubernetes/pkg/apis/core/v1" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/security/apparmor" @@ -55,18 +55,19 @@ import ( // TODO: delete this global variable when we enable the validation of common // fields by default. -var RepairMalformedUpdates bool = genericvalidation.RepairMalformedUpdates +var RepairMalformedUpdates bool = apimachineryvalidation.RepairMalformedUpdates const isNegativeErrorMsg string = apimachineryvalidation.IsNegativeErrorMsg const isInvalidQuotaResource string = `must be a standard resource for quota` -const fieldImmutableErrorMsg string = genericvalidation.FieldImmutableErrorMsg +const fieldImmutableErrorMsg string = apimachineryvalidation.FieldImmutableErrorMsg const isNotIntegerErrorMsg string = `must be an integer` +const isNotPositiveErrorMsg string = `must be greater than zero` var pdPartitionErrorMsg string = validation.InclusiveRangeError(1, 255) var volumeModeErrorMsg string = "must be a number between 0 and 0777 (octal), both inclusive" // BannedOwners is a black list of object that are not allowed to be owners. -var BannedOwners = genericvalidation.BannedOwners +var BannedOwners = apimachineryvalidation.BannedOwners var iscsiInitiatorIqnRegex = regexp.MustCompile(`iqn\.\d{4}-\d{2}\.([[:alnum:]-.]+)(:[^,;*&$|\s]+)$`) var iscsiInitiatorEuiRegex = regexp.MustCompile(`^eui.[[:alnum:]]{16}$`) @@ -90,7 +91,7 @@ func ValidateHasLabel(meta metav1.ObjectMeta, fldPath *field.Path, key, expected // ValidateAnnotations validates that a set of annotations are correctly defined. func ValidateAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList { - return genericvalidation.ValidateAnnotations(annotations, fldPath) + return apimachineryvalidation.ValidateAnnotations(annotations, fldPath) } func ValidateDNS1123Label(value string, fldPath *field.Path) field.ErrorList { @@ -110,37 +111,37 @@ func ValidateDNS1123Subdomain(value string, fldPath *field.Path) field.ErrorList return allErrs } -func ValidatePodSpecificAnnotations(annotations map[string]string, spec *api.PodSpec, fldPath *field.Path) field.ErrorList { +func ValidatePodSpecificAnnotations(annotations map[string]string, spec *core.PodSpec, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - if value, isMirror := annotations[api.MirrorPodAnnotationKey]; isMirror { + if value, isMirror := annotations[core.MirrorPodAnnotationKey]; isMirror { if len(spec.NodeName) == 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Key(api.MirrorPodAnnotationKey), value, "must set spec.nodeName if mirror pod annotation is set")) + allErrs = append(allErrs, field.Invalid(fldPath.Key(core.MirrorPodAnnotationKey), value, "must set spec.nodeName if mirror pod annotation is set")) } } - if annotations[api.TolerationsAnnotationKey] != "" { + if annotations[core.TolerationsAnnotationKey] != "" { allErrs = append(allErrs, ValidateTolerationsInPodAnnotations(annotations, fldPath)...) } allErrs = append(allErrs, ValidateSeccompPodAnnotations(annotations, fldPath)...) allErrs = append(allErrs, ValidateAppArmorPodAnnotations(annotations, spec, fldPath)...) - sysctls, err := helper.SysctlsFromPodAnnotation(annotations[api.SysctlsPodAnnotationKey]) + sysctls, err := helper.SysctlsFromPodAnnotation(annotations[core.SysctlsPodAnnotationKey]) if err != nil { - allErrs = append(allErrs, field.Invalid(fldPath.Key(api.SysctlsPodAnnotationKey), annotations[api.SysctlsPodAnnotationKey], err.Error())) + allErrs = append(allErrs, field.Invalid(fldPath.Key(core.SysctlsPodAnnotationKey), annotations[core.SysctlsPodAnnotationKey], err.Error())) } else { - allErrs = append(allErrs, validateSysctls(sysctls, fldPath.Key(api.SysctlsPodAnnotationKey))...) + allErrs = append(allErrs, validateSysctls(sysctls, fldPath.Key(core.SysctlsPodAnnotationKey))...) } - unsafeSysctls, err := helper.SysctlsFromPodAnnotation(annotations[api.UnsafeSysctlsPodAnnotationKey]) + unsafeSysctls, err := helper.SysctlsFromPodAnnotation(annotations[core.UnsafeSysctlsPodAnnotationKey]) if err != nil { - allErrs = append(allErrs, field.Invalid(fldPath.Key(api.UnsafeSysctlsPodAnnotationKey), annotations[api.UnsafeSysctlsPodAnnotationKey], err.Error())) + allErrs = append(allErrs, field.Invalid(fldPath.Key(core.UnsafeSysctlsPodAnnotationKey), annotations[core.UnsafeSysctlsPodAnnotationKey], err.Error())) } else { - allErrs = append(allErrs, validateSysctls(unsafeSysctls, fldPath.Key(api.UnsafeSysctlsPodAnnotationKey))...) + allErrs = append(allErrs, validateSysctls(unsafeSysctls, fldPath.Key(core.UnsafeSysctlsPodAnnotationKey))...) } inBoth := sysctlIntersection(sysctls, unsafeSysctls) if len(inBoth) > 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Key(api.UnsafeSysctlsPodAnnotationKey), strings.Join(inBoth, ", "), "can not be safe and unsafe")) + allErrs = append(allErrs, field.Invalid(fldPath.Key(core.UnsafeSysctlsPodAnnotationKey), strings.Join(inBoth, ", "), "can not be safe and unsafe")) } return allErrs @@ -152,18 +153,18 @@ func ValidateTolerationsInPodAnnotations(annotations map[string]string, fldPath tolerations, err := helper.GetTolerationsFromPodAnnotations(annotations) if err != nil { - allErrs = append(allErrs, field.Invalid(fldPath, api.TolerationsAnnotationKey, err.Error())) + allErrs = append(allErrs, field.Invalid(fldPath, core.TolerationsAnnotationKey, err.Error())) return allErrs } if len(tolerations) > 0 { - allErrs = append(allErrs, ValidateTolerations(tolerations, fldPath.Child(api.TolerationsAnnotationKey))...) + allErrs = append(allErrs, ValidateTolerations(tolerations, fldPath.Child(core.TolerationsAnnotationKey))...) } return allErrs } -func ValidatePodSpecificAnnotationUpdates(newPod, oldPod *api.Pod, fldPath *field.Path) field.ErrorList { +func ValidatePodSpecificAnnotationUpdates(newPod, oldPod *core.Pod, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} newAnnotations := newPod.Annotations oldAnnotations := oldPod.Annotations @@ -174,7 +175,7 @@ func ValidatePodSpecificAnnotationUpdates(newPod, oldPod *api.Pod, fldPath *fiel if strings.HasPrefix(k, apparmor.ContainerAnnotationKeyPrefix) { allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "may not remove or update AppArmor annotations")) } - if k == api.MirrorPodAnnotationKey { + if k == core.MirrorPodAnnotationKey { allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "may not remove or update mirror pod annotation")) } } @@ -186,7 +187,7 @@ func ValidatePodSpecificAnnotationUpdates(newPod, oldPod *api.Pod, fldPath *fiel if strings.HasPrefix(k, apparmor.ContainerAnnotationKeyPrefix) { allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "may not add AppArmor annotations")) } - if k == api.MirrorPodAnnotationKey { + if k == core.MirrorPodAnnotationKey { allErrs = append(allErrs, field.Forbidden(fldPath.Key(k), "may not add mirror pod annotation")) } } @@ -200,7 +201,7 @@ func ValidateEndpointsSpecificAnnotations(annotations map[string]string, fldPath } func ValidateOwnerReferences(ownerReferences []metav1.OwnerReference, fldPath *field.Path) field.ErrorList { - return genericvalidation.ValidateOwnerReferences(ownerReferences, fldPath) + return apimachineryvalidation.ValidateOwnerReferences(ownerReferences, fldPath) } // ValidateNameFunc validates that the provided name is valid for a given resource type. @@ -272,7 +273,7 @@ var ValidateServiceAccountName = apimachineryvalidation.ValidateServiceAccountNa var ValidateEndpointsName = NameIsDNSSubdomain // ValidateClusterName can be used to check whether the given cluster name is valid. -var ValidateClusterName = genericvalidation.ValidateClusterName +var ValidateClusterName = apimachineryvalidation.ValidateClusterName // ValidateClassName can be used to check whether the given class name is valid. // It is defined here to avoid import cycle between pkg/apis/storage/validation @@ -283,7 +284,7 @@ var ValidateClassName = NameIsDNSSubdomain // class name is valid. var ValidatePriorityClassName = NameIsDNSSubdomain -// TODO update all references to these functions to point to the genericvalidation ones +// TODO update all references to these functions to point to the apimachineryvalidation ones // NameIsDNSSubdomain is a ValidateNameFunc for names that must be a DNS subdomain. func NameIsDNSSubdomain(name string, prefix bool) []string { return apimachineryvalidation.NameIsDNSSubdomain(name, prefix) @@ -313,8 +314,17 @@ func ValidateNonnegativeQuantity(value resource.Quantity, fldPath *field.Path) f return allErrs } +// Validates that a Quantity is positive +func ValidatePositiveQuantityValue(value resource.Quantity, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + if value.Cmp(resource.Quantity{}) <= 0 { + allErrs = append(allErrs, field.Invalid(fldPath, value.String(), isNotPositiveErrorMsg)) + } + return allErrs +} + func ValidateImmutableField(newVal, oldVal interface{}, fldPath *field.Path) field.ErrorList { - return genericvalidation.ValidateImmutableField(newVal, oldVal, fldPath) + return apimachineryvalidation.ValidateImmutableField(newVal, oldVal, fldPath) } func ValidateImmutableAnnotation(newVal string, oldVal string, annotation string, fldPath *field.Path) field.ErrorList { @@ -331,7 +341,7 @@ func ValidateImmutableAnnotation(newVal string, oldVal string, annotation string // It doesn't return an error for rootscoped resources with namespace, because namespace should already be cleared before. // TODO: Remove calls to this method scattered in validations of specific resources, e.g., ValidatePodUpdate. func ValidateObjectMeta(meta *metav1.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc, fldPath *field.Path) field.ErrorList { - allErrs := genericvalidation.ValidateObjectMeta(meta, requiresNamespace, apimachineryvalidation.ValidateNameFunc(nameFn), fldPath) + allErrs := apimachineryvalidation.ValidateObjectMeta(meta, requiresNamespace, apimachineryvalidation.ValidateNameFunc(nameFn), fldPath) // run additional checks for the finalizer name for i := range meta.Finalizers { allErrs = append(allErrs, validateKubeFinalizerName(string(meta.Finalizers[i]), fldPath.Child("finalizers").Index(i))...) @@ -341,7 +351,7 @@ func ValidateObjectMeta(meta *metav1.ObjectMeta, requiresNamespace bool, nameFn // ValidateObjectMetaUpdate validates an object's metadata when updated func ValidateObjectMetaUpdate(newMeta, oldMeta *metav1.ObjectMeta, fldPath *field.Path) field.ErrorList { - allErrs := genericvalidation.ValidateObjectMetaUpdate(newMeta, oldMeta, fldPath) + allErrs := apimachineryvalidation.ValidateObjectMetaUpdate(newMeta, oldMeta, fldPath) // run additional checks for the finalizer name for i := range newMeta.Finalizers { allErrs = append(allErrs, validateKubeFinalizerName(string(newMeta.Finalizers[i]), fldPath.Child("finalizers").Index(i))...) @@ -351,10 +361,10 @@ func ValidateObjectMetaUpdate(newMeta, oldMeta *metav1.ObjectMeta, fldPath *fiel } func ValidateNoNewFinalizers(newFinalizers []string, oldFinalizers []string, fldPath *field.Path) field.ErrorList { - return genericvalidation.ValidateNoNewFinalizers(newFinalizers, oldFinalizers, fldPath) + return apimachineryvalidation.ValidateNoNewFinalizers(newFinalizers, oldFinalizers, fldPath) } -func ValidateVolumes(volumes []api.Volume, fldPath *field.Path) (sets.String, field.ErrorList) { +func ValidateVolumes(volumes []core.Volume, fldPath *field.Path) (sets.String, field.ErrorList) { allErrs := field.ErrorList{} allNames := sets.String{} @@ -380,7 +390,7 @@ func ValidateVolumes(volumes []api.Volume, fldPath *field.Path) (sets.String, fi return allNames, allErrs } -func validateVolumeSource(source *api.VolumeSource, fldPath *field.Path, volName string) field.ErrorList { +func validateVolumeSource(source *core.VolumeSource, fldPath *field.Path, volName string) field.ErrorList { numVolumes := 0 allErrs := field.ErrorList{} if source.EmptyDir != nil { @@ -394,7 +404,7 @@ func validateVolumeSource(source *api.VolumeSource, fldPath *field.Path, volName allErrs = append(allErrs, field.Forbidden(fldPath.Child("emptyDir").Child("sizeLimit"), "SizeLimit field must be a valid resource quantity")) } } - if !utilfeature.DefaultFeatureGate.Enabled(features.HugePages) && source.EmptyDir.Medium == api.StorageMediumHugePages { + if !utilfeature.DefaultFeatureGate.Enabled(features.HugePages) && source.EmptyDir.Medium == core.StorageMediumHugePages { allErrs = append(allErrs, field.Forbidden(fldPath.Child("emptyDir").Child("medium"), "HugePages medium is disabled by feature-gate for EmptyDir volumes")) } } @@ -620,7 +630,7 @@ func validateVolumeSource(source *api.VolumeSource, fldPath *field.Path, volName return allErrs } -func validateHostPathVolumeSource(hostPath *api.HostPathVolumeSource, fldPath *field.Path) field.ErrorList { +func validateHostPathVolumeSource(hostPath *core.HostPathVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(hostPath.Path) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("path"), "")) @@ -632,7 +642,7 @@ func validateHostPathVolumeSource(hostPath *api.HostPathVolumeSource, fldPath *f return allErrs } -func validateGitRepoVolumeSource(gitRepo *api.GitRepoVolumeSource, fldPath *field.Path) field.ErrorList { +func validateGitRepoVolumeSource(gitRepo *core.GitRepoVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(gitRepo.Repository) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("repository"), "")) @@ -643,7 +653,7 @@ func validateGitRepoVolumeSource(gitRepo *api.GitRepoVolumeSource, fldPath *fiel return allErrs } -func validateISCSIVolumeSource(iscsi *api.ISCSIVolumeSource, fldPath *field.Path) field.ErrorList { +func validateISCSIVolumeSource(iscsi *core.ISCSIVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(iscsi.TargetPortal) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("targetPortal"), "")) @@ -683,7 +693,7 @@ func validateISCSIVolumeSource(iscsi *api.ISCSIVolumeSource, fldPath *field.Path return allErrs } -func validateFCVolumeSource(fc *api.FCVolumeSource, fldPath *field.Path) field.ErrorList { +func validateFCVolumeSource(fc *core.FCVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(fc.TargetWWNs) < 1 && len(fc.WWIDs) < 1 { allErrs = append(allErrs, field.Required(fldPath.Child("targetWWNs"), "must specify either targetWWNs or wwids, but not both")) @@ -705,7 +715,7 @@ func validateFCVolumeSource(fc *api.FCVolumeSource, fldPath *field.Path) field.E return allErrs } -func validateGCEPersistentDiskVolumeSource(pd *api.GCEPersistentDiskVolumeSource, fldPath *field.Path) field.ErrorList { +func validateGCEPersistentDiskVolumeSource(pd *core.GCEPersistentDiskVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(pd.PDName) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("pdName"), "")) @@ -716,7 +726,7 @@ func validateGCEPersistentDiskVolumeSource(pd *api.GCEPersistentDiskVolumeSource return allErrs } -func validateAWSElasticBlockStoreVolumeSource(PD *api.AWSElasticBlockStoreVolumeSource, fldPath *field.Path) field.ErrorList { +func validateAWSElasticBlockStoreVolumeSource(PD *core.AWSElasticBlockStoreVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(PD.VolumeID) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("volumeID"), "")) @@ -727,7 +737,7 @@ func validateAWSElasticBlockStoreVolumeSource(PD *api.AWSElasticBlockStoreVolume return allErrs } -func validateSecretVolumeSource(secretSource *api.SecretVolumeSource, fldPath *field.Path) field.ErrorList { +func validateSecretVolumeSource(secretSource *core.SecretVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(secretSource.SecretName) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("secretName"), "")) @@ -746,7 +756,7 @@ func validateSecretVolumeSource(secretSource *api.SecretVolumeSource, fldPath *f return allErrs } -func validateConfigMapVolumeSource(configMapSource *api.ConfigMapVolumeSource, fldPath *field.Path) field.ErrorList { +func validateConfigMapVolumeSource(configMapSource *core.ConfigMapVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(configMapSource.Name) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("name"), "")) @@ -765,7 +775,7 @@ func validateConfigMapVolumeSource(configMapSource *api.ConfigMapVolumeSource, f return allErrs } -func validateKeyToPath(kp *api.KeyToPath, fldPath *field.Path) field.ErrorList { +func validateKeyToPath(kp *core.KeyToPath, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(kp.Key) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("key"), "")) @@ -781,7 +791,7 @@ func validateKeyToPath(kp *api.KeyToPath, fldPath *field.Path) field.ErrorList { return allErrs } -func validatePersistentClaimVolumeSource(claim *api.PersistentVolumeClaimVolumeSource, fldPath *field.Path) field.ErrorList { +func validatePersistentClaimVolumeSource(claim *core.PersistentVolumeClaimVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(claim.ClaimName) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("claimName"), "")) @@ -789,7 +799,7 @@ func validatePersistentClaimVolumeSource(claim *api.PersistentVolumeClaimVolumeS return allErrs } -func validateNFSVolumeSource(nfs *api.NFSVolumeSource, fldPath *field.Path) field.ErrorList { +func validateNFSVolumeSource(nfs *core.NFSVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(nfs.Server) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("server"), "")) @@ -803,7 +813,7 @@ func validateNFSVolumeSource(nfs *api.NFSVolumeSource, fldPath *field.Path) fiel return allErrs } -func validateQuobyteVolumeSource(quobyte *api.QuobyteVolumeSource, fldPath *field.Path) field.ErrorList { +func validateQuobyteVolumeSource(quobyte *core.QuobyteVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(quobyte.Registry) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("registry"), "must be a host:port pair or multiple pairs separated by commas")) @@ -821,7 +831,7 @@ func validateQuobyteVolumeSource(quobyte *api.QuobyteVolumeSource, fldPath *fiel return allErrs } -func validateGlusterfsVolumeSource(glusterfs *api.GlusterfsVolumeSource, fldPath *field.Path) field.ErrorList { +func validateGlusterfsVolumeSource(glusterfs *core.GlusterfsVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(glusterfs.EndpointsName) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("endpoints"), "")) @@ -832,7 +842,7 @@ func validateGlusterfsVolumeSource(glusterfs *api.GlusterfsVolumeSource, fldPath return allErrs } -func validateFlockerVolumeSource(flocker *api.FlockerVolumeSource, fldPath *field.Path) field.ErrorList { +func validateFlockerVolumeSource(flocker *core.FlockerVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(flocker.DatasetName) == 0 && len(flocker.DatasetUUID) == 0 { //TODO: consider adding a RequiredOneOf() error for this and similar cases @@ -854,7 +864,7 @@ var validDownwardAPIFieldPathExpressions = sets.NewString( "metadata.annotations", "metadata.uid") -func validateDownwardAPIVolumeFile(file *api.DownwardAPIVolumeFile, fldPath *field.Path) field.ErrorList { +func validateDownwardAPIVolumeFile(file *core.DownwardAPIVolumeFile, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(file.Path) == 0 { @@ -878,7 +888,7 @@ func validateDownwardAPIVolumeFile(file *api.DownwardAPIVolumeFile, fldPath *fie return allErrs } -func validateDownwardAPIVolumeSource(downwardAPIVolume *api.DownwardAPIVolumeSource, fldPath *field.Path) field.ErrorList { +func validateDownwardAPIVolumeSource(downwardAPIVolume *core.DownwardAPIVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} downwardAPIMode := downwardAPIVolume.DefaultMode @@ -892,7 +902,7 @@ func validateDownwardAPIVolumeSource(downwardAPIVolume *api.DownwardAPIVolumeSou return allErrs } -func validateProjectionSources(projection *api.ProjectedVolumeSource, projectionMode *int32, fldPath *field.Path) field.ErrorList { +func validateProjectionSources(projection *core.ProjectedVolumeSource, projectionMode *int32, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} allPaths := sets.String{} @@ -968,7 +978,7 @@ func validateProjectionSources(projection *api.ProjectedVolumeSource, projection return allErrs } -func validateProjectedVolumeSource(projection *api.ProjectedVolumeSource, fldPath *field.Path) field.ErrorList { +func validateProjectedVolumeSource(projection *core.ProjectedVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} projectionMode := projection.DefaultMode @@ -981,16 +991,16 @@ func validateProjectedVolumeSource(projection *api.ProjectedVolumeSource, fldPat } var supportedHostPathTypes = sets.NewString( - string(api.HostPathUnset), - string(api.HostPathDirectoryOrCreate), - string(api.HostPathDirectory), - string(api.HostPathFileOrCreate), - string(api.HostPathFile), - string(api.HostPathSocket), - string(api.HostPathCharDev), - string(api.HostPathBlockDev)) - -func validateHostPathType(hostPathType *api.HostPathType, fldPath *field.Path) field.ErrorList { + string(core.HostPathUnset), + string(core.HostPathDirectoryOrCreate), + string(core.HostPathDirectory), + string(core.HostPathFileOrCreate), + string(core.HostPathFile), + string(core.HostPathSocket), + string(core.HostPathCharDev), + string(core.HostPathBlockDev)) + +func validateHostPathType(hostPathType *core.HostPathType, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if hostPathType != nil && !supportedHostPathTypes.Has(string(*hostPathType)) { @@ -1032,7 +1042,7 @@ func validatePathNoBacksteps(targetPath string, fldPath *field.Path) field.Error // validateMountPropagation verifies that MountPropagation field is valid and // allowed for given container. -func validateMountPropagation(mountPropagation *api.MountPropagationMode, container *api.Container, fldPath *field.Path) field.ErrorList { +func validateMountPropagation(mountPropagation *core.MountPropagationMode, container *core.Container, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if mountPropagation == nil { @@ -1043,7 +1053,7 @@ func validateMountPropagation(mountPropagation *api.MountPropagationMode, contai return allErrs } - supportedMountPropagations := sets.NewString(string(api.MountPropagationBidirectional), string(api.MountPropagationHostToContainer)) + supportedMountPropagations := sets.NewString(string(core.MountPropagationBidirectional), string(core.MountPropagationHostToContainer)) if !supportedMountPropagations.Has(string(*mountPropagation)) { allErrs = append(allErrs, field.NotSupported(fldPath, *mountPropagation, supportedMountPropagations.List())) } @@ -1056,7 +1066,7 @@ func validateMountPropagation(mountPropagation *api.MountPropagationMode, contai } privileged := container.SecurityContext != nil && container.SecurityContext.Privileged != nil && *container.SecurityContext.Privileged - if *mountPropagation == api.MountPropagationBidirectional && !privileged { + if *mountPropagation == core.MountPropagationBidirectional && !privileged { allErrs = append(allErrs, field.Forbidden(fldPath, "Bidirectional mount propagation is available only to privileged containers")) } return allErrs @@ -1076,7 +1086,7 @@ func validateLocalNonReservedPath(targetPath string, fldPath *field.Path) field. return allErrs } -func validateRBDVolumeSource(rbd *api.RBDVolumeSource, fldPath *field.Path) field.ErrorList { +func validateRBDVolumeSource(rbd *core.RBDVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(rbd.CephMonitors) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("monitors"), "")) @@ -1087,7 +1097,18 @@ func validateRBDVolumeSource(rbd *api.RBDVolumeSource, fldPath *field.Path) fiel return allErrs } -func validateCinderVolumeSource(cd *api.CinderVolumeSource, fldPath *field.Path) field.ErrorList { +func validateRBDPersistentVolumeSource(rbd *core.RBDPersistentVolumeSource, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + if len(rbd.CephMonitors) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("monitors"), "")) + } + if len(rbd.RBDImage) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("image"), "")) + } + return allErrs +} + +func validateCinderVolumeSource(cd *core.CinderVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(cd.VolumeID) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("volumeID"), "")) @@ -1095,7 +1116,7 @@ func validateCinderVolumeSource(cd *api.CinderVolumeSource, fldPath *field.Path) return allErrs } -func validateCephFSVolumeSource(cephfs *api.CephFSVolumeSource, fldPath *field.Path) field.ErrorList { +func validateCephFSVolumeSource(cephfs *core.CephFSVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(cephfs.Monitors) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("monitors"), "")) @@ -1103,7 +1124,7 @@ func validateCephFSVolumeSource(cephfs *api.CephFSVolumeSource, fldPath *field.P return allErrs } -func validateCephFSPersistentVolumeSource(cephfs *api.CephFSPersistentVolumeSource, fldPath *field.Path) field.ErrorList { +func validateCephFSPersistentVolumeSource(cephfs *core.CephFSPersistentVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(cephfs.Monitors) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("monitors"), "")) @@ -1111,7 +1132,7 @@ func validateCephFSPersistentVolumeSource(cephfs *api.CephFSPersistentVolumeSour return allErrs } -func validateFlexVolumeSource(fv *api.FlexVolumeSource, fldPath *field.Path) field.ErrorList { +func validateFlexVolumeSource(fv *core.FlexVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(fv.Driver) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("driver"), "")) @@ -1132,7 +1153,7 @@ func validateFlexVolumeSource(fv *api.FlexVolumeSource, fldPath *field.Path) fie return allErrs } -func validateAzureFile(azure *api.AzureFileVolumeSource, fldPath *field.Path) field.ErrorList { +func validateAzureFile(azure *core.AzureFileVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if azure.SecretName == "" { allErrs = append(allErrs, field.Required(fldPath.Child("secretName"), "")) @@ -1143,7 +1164,7 @@ func validateAzureFile(azure *api.AzureFileVolumeSource, fldPath *field.Path) fi return allErrs } -func validateAzureFilePV(azure *api.AzureFilePersistentVolumeSource, fldPath *field.Path) field.ErrorList { +func validateAzureFilePV(azure *core.AzureFilePersistentVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if azure.SecretName == "" { allErrs = append(allErrs, field.Required(fldPath.Child("secretName"), "")) @@ -1159,9 +1180,9 @@ func validateAzureFilePV(azure *api.AzureFilePersistentVolumeSource, fldPath *fi return allErrs } -func validateAzureDisk(azure *api.AzureDiskVolumeSource, fldPath *field.Path) field.ErrorList { - var supportedCachingModes = sets.NewString(string(api.AzureDataDiskCachingNone), string(api.AzureDataDiskCachingReadOnly), string(api.AzureDataDiskCachingReadWrite)) - var supportedDiskKinds = sets.NewString(string(api.AzureSharedBlobDisk), string(api.AzureDedicatedBlobDisk), string(api.AzureManagedDisk)) +func validateAzureDisk(azure *core.AzureDiskVolumeSource, fldPath *field.Path) field.ErrorList { + var supportedCachingModes = sets.NewString(string(core.AzureDataDiskCachingNone), string(core.AzureDataDiskCachingReadOnly), string(core.AzureDataDiskCachingReadWrite)) + var supportedDiskKinds = sets.NewString(string(core.AzureSharedBlobDisk), string(core.AzureDedicatedBlobDisk), string(core.AzureManagedDisk)) diskUriSupportedManaged := []string{"/subscriptions/{sub-id}/resourcegroups/{group-name}/providers/microsoft.compute/disks/{disk-id}"} diskUriSupportedblob := []string{"https://{account-name}.blob.core.windows.net/{container-name}/{disk-name}.vhd"} @@ -1184,18 +1205,18 @@ func validateAzureDisk(azure *api.AzureDiskVolumeSource, fldPath *field.Path) fi } // validate that DiskUri is the correct format - if azure.Kind != nil && *azure.Kind == api.AzureManagedDisk && strings.Index(azure.DataDiskURI, "/subscriptions/") != 0 { + if azure.Kind != nil && *azure.Kind == core.AzureManagedDisk && strings.Index(azure.DataDiskURI, "/subscriptions/") != 0 { allErrs = append(allErrs, field.NotSupported(fldPath.Child("diskURI"), azure.DataDiskURI, diskUriSupportedManaged)) } - if azure.Kind != nil && *azure.Kind != api.AzureManagedDisk && strings.Index(azure.DataDiskURI, "https://") != 0 { + if azure.Kind != nil && *azure.Kind != core.AzureManagedDisk && strings.Index(azure.DataDiskURI, "https://") != 0 { allErrs = append(allErrs, field.NotSupported(fldPath.Child("diskURI"), azure.DataDiskURI, diskUriSupportedblob)) } return allErrs } -func validateVsphereVolumeSource(cd *api.VsphereVirtualDiskVolumeSource, fldPath *field.Path) field.ErrorList { +func validateVsphereVolumeSource(cd *core.VsphereVirtualDiskVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(cd.VolumePath) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("volumePath"), "")) @@ -1203,7 +1224,7 @@ func validateVsphereVolumeSource(cd *api.VsphereVirtualDiskVolumeSource, fldPath return allErrs } -func validatePhotonPersistentDiskVolumeSource(cd *api.PhotonPersistentDiskVolumeSource, fldPath *field.Path) field.ErrorList { +func validatePhotonPersistentDiskVolumeSource(cd *core.PhotonPersistentDiskVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(cd.PdID) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("pdID"), "")) @@ -1211,7 +1232,7 @@ func validatePhotonPersistentDiskVolumeSource(cd *api.PhotonPersistentDiskVolume return allErrs } -func validatePortworxVolumeSource(pwx *api.PortworxVolumeSource, fldPath *field.Path) field.ErrorList { +func validatePortworxVolumeSource(pwx *core.PortworxVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(pwx.VolumeID) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("volumeID"), "")) @@ -1219,7 +1240,21 @@ func validatePortworxVolumeSource(pwx *api.PortworxVolumeSource, fldPath *field. return allErrs } -func validateScaleIOVolumeSource(sio *api.ScaleIOVolumeSource, fldPath *field.Path) field.ErrorList { +func validateScaleIOVolumeSource(sio *core.ScaleIOVolumeSource, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + if sio.Gateway == "" { + allErrs = append(allErrs, field.Required(fldPath.Child("gateway"), "")) + } + if sio.System == "" { + allErrs = append(allErrs, field.Required(fldPath.Child("system"), "")) + } + if sio.VolumeName == "" { + allErrs = append(allErrs, field.Required(fldPath.Child("volumeName"), "")) + } + return allErrs +} + +func validateScaleIOPersistentVolumeSource(sio *core.ScaleIOPersistentVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if sio.Gateway == "" { allErrs = append(allErrs, field.Required(fldPath.Child("gateway"), "")) @@ -1233,7 +1268,7 @@ func validateScaleIOVolumeSource(sio *api.ScaleIOVolumeSource, fldPath *field.Pa return allErrs } -func validateLocalVolumeSource(ls *api.LocalVolumeSource, fldPath *field.Path) field.ErrorList { +func validateLocalVolumeSource(ls *core.LocalVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if ls.Path == "" { allErrs = append(allErrs, field.Required(fldPath.Child("path"), "")) @@ -1244,7 +1279,7 @@ func validateLocalVolumeSource(ls *api.LocalVolumeSource, fldPath *field.Path) f return allErrs } -func validateStorageOSVolumeSource(storageos *api.StorageOSVolumeSource, fldPath *field.Path) field.ErrorList { +func validateStorageOSVolumeSource(storageos *core.StorageOSVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(storageos.VolumeName) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("volumeName"), "")) @@ -1262,7 +1297,7 @@ func validateStorageOSVolumeSource(storageos *api.StorageOSVolumeSource, fldPath return allErrs } -func validateStorageOSPersistentVolumeSource(storageos *api.StorageOSPersistentVolumeSource, fldPath *field.Path) field.ErrorList { +func validateStorageOSPersistentVolumeSource(storageos *core.StorageOSPersistentVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(storageos.VolumeName) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("volumeName"), "")) @@ -1287,11 +1322,11 @@ func validateStorageOSPersistentVolumeSource(storageos *api.StorageOSPersistentV // PersistentVolumeName object. var ValidatePersistentVolumeName = NameIsDNSSubdomain -var supportedAccessModes = sets.NewString(string(api.ReadWriteOnce), string(api.ReadOnlyMany), string(api.ReadWriteMany)) +var supportedAccessModes = sets.NewString(string(core.ReadWriteOnce), string(core.ReadOnlyMany), string(core.ReadWriteMany)) -var supportedReclaimPolicy = sets.NewString(string(api.PersistentVolumeReclaimDelete), string(api.PersistentVolumeReclaimRecycle), string(api.PersistentVolumeReclaimRetain)) +var supportedReclaimPolicy = sets.NewString(string(core.PersistentVolumeReclaimDelete), string(core.PersistentVolumeReclaimRecycle), string(core.PersistentVolumeReclaimRetain)) -func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList { +func ValidatePersistentVolume(pv *core.PersistentVolume) field.ErrorList { metaPath := field.NewPath("metadata") allErrs := ValidateObjectMeta(&pv.ObjectMeta, false, ValidatePersistentVolumeName, metaPath) @@ -1309,12 +1344,13 @@ func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList { allErrs = append(allErrs, field.Required(specPath.Child("capacity"), "")) } - if _, ok := pv.Spec.Capacity[api.ResourceStorage]; !ok || len(pv.Spec.Capacity) > 1 { - allErrs = append(allErrs, field.NotSupported(specPath.Child("capacity"), pv.Spec.Capacity, []string{string(api.ResourceStorage)})) + if _, ok := pv.Spec.Capacity[core.ResourceStorage]; !ok || len(pv.Spec.Capacity) > 1 { + allErrs = append(allErrs, field.NotSupported(specPath.Child("capacity"), pv.Spec.Capacity, []string{string(core.ResourceStorage)})) } capPath := specPath.Child("capacity") for r, qty := range pv.Spec.Capacity { allErrs = append(allErrs, validateBasicResource(qty, capPath.Key(string(r)))...) + allErrs = append(allErrs, ValidatePositiveQuantityValue(qty, capPath.Key(string(r)))...) } if len(string(pv.Spec.PersistentVolumeReclaimPolicy)) > 0 { if !supportedReclaimPolicy.Has(string(pv.Spec.PersistentVolumeReclaimPolicy)) { @@ -1379,7 +1415,7 @@ func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList { allErrs = append(allErrs, field.Forbidden(specPath.Child("rbd"), "may not specify more than 1 volume type")) } else { numVolumes++ - allErrs = append(allErrs, validateRBDVolumeSource(pv.Spec.RBD, specPath.Child("rbd"))...) + allErrs = append(allErrs, validateRBDPersistentVolumeSource(pv.Spec.RBD, specPath.Child("rbd"))...) } } if pv.Spec.Quobyte != nil { @@ -1477,7 +1513,7 @@ func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList { allErrs = append(allErrs, field.Forbidden(specPath.Child("scaleIO"), "may not specify more than 1 volume type")) } else { numVolumes++ - allErrs = append(allErrs, validateScaleIOVolumeSource(pv.Spec.ScaleIO, specPath.Child("scaleIO"))...) + allErrs = append(allErrs, validateScaleIOPersistentVolumeSource(pv.Spec.ScaleIO, specPath.Child("scaleIO"))...) } } if pv.Spec.Local != nil { @@ -1510,7 +1546,7 @@ func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList { } // do not allow hostPath mounts of '/' to have a 'recycle' reclaim policy - if pv.Spec.HostPath != nil && path.Clean(pv.Spec.HostPath.Path) == "/" && pv.Spec.PersistentVolumeReclaimPolicy == api.PersistentVolumeReclaimRecycle { + if pv.Spec.HostPath != nil && path.Clean(pv.Spec.HostPath.Path) == "/" && pv.Spec.PersistentVolumeReclaimPolicy == core.PersistentVolumeReclaimRecycle { allErrs = append(allErrs, field.Forbidden(specPath.Child("persistentVolumeReclaimPolicy"), "may not be 'recycle' for a hostPath mount of '/'")) } @@ -1525,16 +1561,22 @@ func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList { // ValidatePersistentVolumeUpdate tests to see if the update is legal for an end user to make. // newPv is updated with fields that cannot be changed. -func ValidatePersistentVolumeUpdate(newPv, oldPv *api.PersistentVolume) field.ErrorList { +func ValidatePersistentVolumeUpdate(newPv, oldPv *core.PersistentVolume) field.ErrorList { allErrs := field.ErrorList{} allErrs = ValidatePersistentVolume(newPv) + + // PersistentVolumeSource should be immutable after creation. + if !apiequality.Semantic.DeepEqual(newPv.Spec.PersistentVolumeSource, oldPv.Spec.PersistentVolumeSource) { + allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "persistentvolumesource"), "is immutable after creation")) + } + newPv.Status = oldPv.Status return allErrs } // ValidatePersistentVolumeStatusUpdate tests to see if the status update is legal for an end user to make. // newPv is updated with fields that cannot be changed. -func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *api.PersistentVolume) field.ErrorList { +func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *core.PersistentVolume) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newPv.ObjectMeta, &oldPv.ObjectMeta, field.NewPath("metadata")) if len(newPv.ResourceVersion) == 0 { allErrs = append(allErrs, field.Required(field.NewPath("resourceVersion"), "")) @@ -1544,14 +1586,14 @@ func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *api.PersistentVolume) fi } // ValidatePersistentVolumeClaim validates a PersistentVolumeClaim -func ValidatePersistentVolumeClaim(pvc *api.PersistentVolumeClaim) field.ErrorList { +func ValidatePersistentVolumeClaim(pvc *core.PersistentVolumeClaim) field.ErrorList { allErrs := ValidateObjectMeta(&pvc.ObjectMeta, true, ValidatePersistentVolumeName, field.NewPath("metadata")) allErrs = append(allErrs, ValidatePersistentVolumeClaimSpec(&pvc.Spec, field.NewPath("spec"))...) return allErrs } // ValidatePersistentVolumeClaimSpec validates a PersistentVolumeClaimSpec -func ValidatePersistentVolumeClaimSpec(spec *api.PersistentVolumeClaimSpec, fldPath *field.Path) field.ErrorList { +func ValidatePersistentVolumeClaimSpec(spec *core.PersistentVolumeClaimSpec, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(spec.AccessModes) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("accessModes"), "at least 1 access mode is required")) @@ -1560,15 +1602,16 @@ func ValidatePersistentVolumeClaimSpec(spec *api.PersistentVolumeClaimSpec, fldP allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...) } for _, mode := range spec.AccessModes { - if mode != api.ReadWriteOnce && mode != api.ReadOnlyMany && mode != api.ReadWriteMany { + if mode != core.ReadWriteOnce && mode != core.ReadOnlyMany && mode != core.ReadWriteMany { allErrs = append(allErrs, field.NotSupported(fldPath.Child("accessModes"), mode, supportedAccessModes.List())) } } - storageValue, ok := spec.Resources.Requests[api.ResourceStorage] + storageValue, ok := spec.Resources.Requests[core.ResourceStorage] if !ok { - allErrs = append(allErrs, field.Required(fldPath.Child("resources").Key(string(api.ResourceStorage)), "")) + allErrs = append(allErrs, field.Required(fldPath.Child("resources").Key(string(core.ResourceStorage)), "")) } else { - allErrs = append(allErrs, ValidateResourceQuantityValue(string(api.ResourceStorage), storageValue, fldPath.Child("resources").Key(string(api.ResourceStorage)))...) + allErrs = append(allErrs, ValidateResourceQuantityValue(string(core.ResourceStorage), storageValue, fldPath.Child("resources").Key(string(core.ResourceStorage)))...) + allErrs = append(allErrs, ValidatePositiveQuantityValue(storageValue, fldPath.Child("resources").Key(string(core.ResourceStorage)))...) } if spec.StorageClassName != nil && len(*spec.StorageClassName) > 0 { @@ -1580,7 +1623,7 @@ func ValidatePersistentVolumeClaimSpec(spec *api.PersistentVolumeClaimSpec, fldP } // ValidatePersistentVolumeClaimUpdate validates an update to a PersistentVolumeClaim -func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) field.ErrorList { +func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *core.PersistentVolumeClaim) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newPvc.ObjectMeta, &oldPvc.ObjectMeta, field.NewPath("metadata")) allErrs = append(allErrs, ValidatePersistentVolumeClaim(newPvc)...) // PVController needs to update PVC.Spec w/ VolumeName. @@ -1596,7 +1639,7 @@ func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *api.PersistentVolumeCla newPVCSpecCopy := newPvc.Spec.DeepCopy() // lets make sure storage values are same. - if newPvc.Status.Phase == api.ClaimBound && newPVCSpecCopy.Resources.Requests != nil { + if newPvc.Status.Phase == core.ClaimBound && newPVCSpecCopy.Resources.Requests != nil { newPVCSpecCopy.Resources.Requests["storage"] = oldPvc.Spec.Resources.Requests["storage"] } @@ -1627,7 +1670,7 @@ func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *api.PersistentVolumeCla } // ValidatePersistentVolumeClaimStatusUpdate validates an update to status of a PersistentVolumeClaim -func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *api.PersistentVolumeClaim) field.ErrorList { +func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *core.PersistentVolumeClaim) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newPvc.ObjectMeta, &oldPvc.ObjectMeta, field.NewPath("metadata")) if len(newPvc.ResourceVersion) == 0 { allErrs = append(allErrs, field.Required(field.NewPath("resourceVersion"), "")) @@ -1647,9 +1690,9 @@ func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *api.PersistentVol return allErrs } -var supportedPortProtocols = sets.NewString(string(api.ProtocolTCP), string(api.ProtocolUDP)) +var supportedPortProtocols = sets.NewString(string(core.ProtocolTCP), string(core.ProtocolUDP)) -func validateContainerPorts(ports []api.ContainerPort, fldPath *field.Path) field.ErrorList { +func validateContainerPorts(ports []core.ContainerPort, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} allNames := sets.String{} @@ -1688,7 +1731,7 @@ func validateContainerPorts(ports []api.ContainerPort, fldPath *field.Path) fiel } // ValidateEnv validates env vars -func ValidateEnv(vars []api.EnvVar, fldPath *field.Path) field.ErrorList { +func ValidateEnv(vars []core.EnvVar, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for i, ev := range vars { @@ -1708,7 +1751,7 @@ func ValidateEnv(vars []api.EnvVar, fldPath *field.Path) field.ErrorList { var validFieldPathExpressionsEnv = sets.NewString("metadata.name", "metadata.namespace", "metadata.uid", "spec.nodeName", "spec.serviceAccountName", "status.hostIP", "status.podIP") var validContainerResourceFieldPathExpressions = sets.NewString("limits.cpu", "limits.memory", "limits.ephemeral-storage", "requests.cpu", "requests.memory", "requests.ephemeral-storage") -func validateEnvVarValueFrom(ev api.EnvVar, fldPath *field.Path) field.ErrorList { +func validateEnvVarValueFrom(ev core.EnvVar, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if ev.ValueFrom == nil { @@ -1747,7 +1790,7 @@ func validateEnvVarValueFrom(ev api.EnvVar, fldPath *field.Path) field.ErrorList return allErrs } -func validateObjectFieldSelector(fs *api.ObjectFieldSelector, expressions *sets.String, fldPath *field.Path) field.ErrorList { +func validateObjectFieldSelector(fs *core.ObjectFieldSelector, expressions *sets.String, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(fs.APIVersion) == 0 { @@ -1755,7 +1798,7 @@ func validateObjectFieldSelector(fs *api.ObjectFieldSelector, expressions *sets. } else if len(fs.FieldPath) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("fieldPath"), "")) } else { - internalFieldPath, _, err := api.Scheme.ConvertFieldLabel(fs.APIVersion, "Pod", fs.FieldPath, "") + internalFieldPath, _, err := legacyscheme.Scheme.ConvertFieldLabel(fs.APIVersion, "Pod", fs.FieldPath, "") if err != nil { allErrs = append(allErrs, field.Invalid(fldPath.Child("fieldPath"), fs.FieldPath, fmt.Sprintf("error converting fieldPath: %v", err))) } else if !expressions.Has(internalFieldPath) { @@ -1773,7 +1816,7 @@ func fsResourceIsEphemeralStorage(resource string) bool { return false } -func validateContainerResourceFieldSelector(fs *api.ResourceFieldSelector, expressions *sets.String, fldPath *field.Path, volume bool) field.ErrorList { +func validateContainerResourceFieldSelector(fs *core.ResourceFieldSelector, expressions *sets.String, fldPath *field.Path, volume bool) field.ErrorList { allErrs := field.ErrorList{} if volume && len(fs.ContainerName) == 0 { @@ -1789,7 +1832,7 @@ func validateContainerResourceFieldSelector(fs *api.ResourceFieldSelector, expre return allErrs } -func ValidateEnvFrom(vars []api.EnvFromSource, fldPath *field.Path) field.ErrorList { +func ValidateEnvFrom(vars []core.EnvFromSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for i, ev := range vars { idxPath := fldPath.Index(i) @@ -1818,7 +1861,7 @@ func ValidateEnvFrom(vars []api.EnvFromSource, fldPath *field.Path) field.ErrorL return allErrs } -func validateConfigMapEnvSource(configMapSource *api.ConfigMapEnvSource, fldPath *field.Path) field.ErrorList { +func validateConfigMapEnvSource(configMapSource *core.ConfigMapEnvSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(configMapSource.Name) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("name"), "")) @@ -1830,7 +1873,7 @@ func validateConfigMapEnvSource(configMapSource *api.ConfigMapEnvSource, fldPath return allErrs } -func validateSecretEnvSource(secretSource *api.SecretEnvSource, fldPath *field.Path) field.ErrorList { +func validateSecretEnvSource(secretSource *core.SecretEnvSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(secretSource.Name) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("name"), "")) @@ -1869,7 +1912,7 @@ func validateContainerResourceDivisor(rName string, divisor resource.Quantity, f return allErrs } -func validateConfigMapKeySelector(s *api.ConfigMapKeySelector, fldPath *field.Path) field.ErrorList { +func validateConfigMapKeySelector(s *core.ConfigMapKeySelector, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} nameFn := ValidateNameFunc(ValidateSecretName) @@ -1887,7 +1930,7 @@ func validateConfigMapKeySelector(s *api.ConfigMapKeySelector, fldPath *field.Pa return allErrs } -func validateSecretKeySelector(s *api.SecretKeySelector, fldPath *field.Path) field.ErrorList { +func validateSecretKeySelector(s *core.SecretKeySelector, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} nameFn := ValidateNameFunc(ValidateSecretName) @@ -1905,7 +1948,7 @@ func validateSecretKeySelector(s *api.SecretKeySelector, fldPath *field.Path) fi return allErrs } -func ValidateVolumeMounts(mounts []api.VolumeMount, volumes sets.String, container *api.Container, fldPath *field.Path) field.ErrorList { +func ValidateVolumeMounts(mounts []core.VolumeMount, volumes sets.String, container *core.Container, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} mountpoints := sets.NewString() @@ -1923,7 +1966,11 @@ func ValidateVolumeMounts(mounts []api.VolumeMount, volumes sets.String, contain allErrs = append(allErrs, field.Invalid(idxPath.Child("mountPath"), mnt.MountPath, "must be unique")) } if !path.IsAbs(mnt.MountPath) { - allErrs = append(allErrs, field.Invalid(idxPath.Child("mountPath"), mnt.MountPath, "must be an absolute path")) + // also allow windows absolute path + p := mnt.MountPath + if len(p) < 2 || ((p[0] < 'A' || p[0] > 'Z') && (p[0] < 'a' || p[0] > 'z')) || p[1] != ':' { + allErrs = append(allErrs, field.Invalid(idxPath.Child("mountPath"), mnt.MountPath, "must be an absolute path")) + } } mountpoints.Insert(mnt.MountPath) if len(mnt.SubPath) > 0 { @@ -1937,7 +1984,7 @@ func ValidateVolumeMounts(mounts []api.VolumeMount, volumes sets.String, contain return allErrs } -func validateProbe(probe *api.Probe, fldPath *field.Path) field.ErrorList { +func validateProbe(probe *core.Probe, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if probe == nil { @@ -1953,18 +2000,18 @@ func validateProbe(probe *api.Probe, fldPath *field.Path) field.ErrorList { return allErrs } -func validateClientIPAffinityConfig(config *api.SessionAffinityConfig, fldPath *field.Path) field.ErrorList { +func validateClientIPAffinityConfig(config *core.SessionAffinityConfig, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if config == nil { - allErrs = append(allErrs, field.Required(fldPath, fmt.Sprintf("when session affinity type is %s", api.ServiceAffinityClientIP))) + allErrs = append(allErrs, field.Required(fldPath, fmt.Sprintf("when session affinity type is %s", core.ServiceAffinityClientIP))) return allErrs } if config.ClientIP == nil { - allErrs = append(allErrs, field.Required(fldPath.Child("clientIP"), fmt.Sprintf("when session affinity type is %s", api.ServiceAffinityClientIP))) + allErrs = append(allErrs, field.Required(fldPath.Child("clientIP"), fmt.Sprintf("when session affinity type is %s", core.ServiceAffinityClientIP))) return allErrs } if config.ClientIP.TimeoutSeconds == nil { - allErrs = append(allErrs, field.Required(fldPath.Child("clientIP").Child("timeoutSeconds"), fmt.Sprintf("when session affinity type is %s", api.ServiceAffinityClientIP))) + allErrs = append(allErrs, field.Required(fldPath.Child("clientIP").Child("timeoutSeconds"), fmt.Sprintf("when session affinity type is %s", core.ServiceAffinityClientIP))) return allErrs } allErrs = append(allErrs, validateAffinityTimeout(config.ClientIP.TimeoutSeconds, fldPath.Child("clientIP").Child("timeoutSeconds"))...) @@ -1974,15 +2021,15 @@ func validateClientIPAffinityConfig(config *api.SessionAffinityConfig, fldPath * func validateAffinityTimeout(timeout *int32, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - if *timeout <= 0 || *timeout > api.MaxClientIPServiceAffinitySeconds { - allErrs = append(allErrs, field.Invalid(fldPath, timeout, fmt.Sprintf("must be greater than 0 and less than %d", api.MaxClientIPServiceAffinitySeconds))) + if *timeout <= 0 || *timeout > core.MaxClientIPServiceAffinitySeconds { + allErrs = append(allErrs, field.Invalid(fldPath, timeout, fmt.Sprintf("must be greater than 0 and less than %d", core.MaxClientIPServiceAffinitySeconds))) } return allErrs } // AccumulateUniqueHostPorts extracts each HostPort of each Container, // accumulating the results and returning an error if any ports conflict. -func AccumulateUniqueHostPorts(containers []api.Container, accumulator *sets.String, fldPath *field.Path) field.ErrorList { +func AccumulateUniqueHostPorts(containers []core.Container, accumulator *sets.String, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for ci, ctr := range containers { @@ -2007,12 +2054,12 @@ func AccumulateUniqueHostPorts(containers []api.Container, accumulator *sets.Str // checkHostPortConflicts checks for colliding Port.HostPort values across // a slice of containers. -func checkHostPortConflicts(containers []api.Container, fldPath *field.Path) field.ErrorList { +func checkHostPortConflicts(containers []core.Container, fldPath *field.Path) field.ErrorList { allPorts := sets.String{} return AccumulateUniqueHostPorts(containers, &allPorts, fldPath) } -func validateExecAction(exec *api.ExecAction, fldPath *field.Path) field.ErrorList { +func validateExecAction(exec *core.ExecAction, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} if len(exec.Command) == 0 { allErrors = append(allErrors, field.Required(fldPath.Child("command"), "")) @@ -2020,9 +2067,9 @@ func validateExecAction(exec *api.ExecAction, fldPath *field.Path) field.ErrorLi return allErrors } -var supportedHTTPSchemes = sets.NewString(string(api.URISchemeHTTP), string(api.URISchemeHTTPS)) +var supportedHTTPSchemes = sets.NewString(string(core.URISchemeHTTP), string(core.URISchemeHTTPS)) -func validateHTTPGetAction(http *api.HTTPGetAction, fldPath *field.Path) field.ErrorList { +func validateHTTPGetAction(http *core.HTTPGetAction, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} if len(http.Path) == 0 { allErrors = append(allErrors, field.Required(fldPath.Child("path"), "")) @@ -2055,11 +2102,11 @@ func ValidatePortNumOrName(port intstr.IntOrString, fldPath *field.Path) field.E return allErrs } -func validateTCPSocketAction(tcp *api.TCPSocketAction, fldPath *field.Path) field.ErrorList { +func validateTCPSocketAction(tcp *core.TCPSocketAction, fldPath *field.Path) field.ErrorList { return ValidatePortNumOrName(tcp.Port, fldPath.Child("port")) } -func validateHandler(handler *api.Handler, fldPath *field.Path) field.ErrorList { +func validateHandler(handler *core.Handler, fldPath *field.Path) field.ErrorList { numHandlers := 0 allErrors := field.ErrorList{} if handler.Exec != nil { @@ -2092,7 +2139,7 @@ func validateHandler(handler *api.Handler, fldPath *field.Path) field.ErrorList return allErrors } -func validateLifecycle(lifecycle *api.Lifecycle, fldPath *field.Path) field.ErrorList { +func validateLifecycle(lifecycle *core.Lifecycle, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if lifecycle.PostStart != nil { allErrs = append(allErrs, validateHandler(lifecycle.PostStart, fldPath.Child("postStart"))...) @@ -2103,13 +2150,13 @@ func validateLifecycle(lifecycle *api.Lifecycle, fldPath *field.Path) field.Erro return allErrs } -var supportedPullPolicies = sets.NewString(string(api.PullAlways), string(api.PullIfNotPresent), string(api.PullNever)) +var supportedPullPolicies = sets.NewString(string(core.PullAlways), string(core.PullIfNotPresent), string(core.PullNever)) -func validatePullPolicy(policy api.PullPolicy, fldPath *field.Path) field.ErrorList { +func validatePullPolicy(policy core.PullPolicy, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} switch policy { - case api.PullAlways, api.PullIfNotPresent, api.PullNever: + case core.PullAlways, core.PullIfNotPresent, core.PullNever: break case "": allErrors = append(allErrors, field.Required(fldPath, "")) @@ -2120,7 +2167,7 @@ func validatePullPolicy(policy api.PullPolicy, fldPath *field.Path) field.ErrorL return allErrors } -func validateInitContainers(containers, otherContainers []api.Container, volumes sets.String, fldPath *field.Path) field.ErrorList { +func validateInitContainers(containers, otherContainers []core.Container, volumes sets.String, fldPath *field.Path) field.ErrorList { var allErrs field.ErrorList if len(containers) > 0 { allErrs = append(allErrs, validateContainers(containers, volumes, fldPath)...) @@ -2151,7 +2198,7 @@ func validateInitContainers(containers, otherContainers []api.Container, volumes return allErrs } -func validateContainers(containers []api.Container, volumes sets.String, fldPath *field.Path) field.ErrorList { +func validateContainers(containers []core.Container, volumes sets.String, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(containers) == 0 { @@ -2188,7 +2235,7 @@ func validateContainers(containers []api.Container, volumes sets.String, fldPath } switch ctr.TerminationMessagePolicy { - case api.TerminationMessageReadFile, api.TerminationMessageFallbackToLogsOnError: + case core.TerminationMessageReadFile, core.TerminationMessageFallbackToLogsOnError: case "": allErrs = append(allErrs, field.Required(idxPath.Child("terminationMessagePolicy"), "must be 'File' or 'FallbackToLogsOnError'")) default: @@ -2210,36 +2257,36 @@ func validateContainers(containers []api.Container, volumes sets.String, fldPath return allErrs } -func validateRestartPolicy(restartPolicy *api.RestartPolicy, fldPath *field.Path) field.ErrorList { +func validateRestartPolicy(restartPolicy *core.RestartPolicy, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} switch *restartPolicy { - case api.RestartPolicyAlways, api.RestartPolicyOnFailure, api.RestartPolicyNever: + case core.RestartPolicyAlways, core.RestartPolicyOnFailure, core.RestartPolicyNever: break case "": allErrors = append(allErrors, field.Required(fldPath, "")) default: - validValues := []string{string(api.RestartPolicyAlways), string(api.RestartPolicyOnFailure), string(api.RestartPolicyNever)} + validValues := []string{string(core.RestartPolicyAlways), string(core.RestartPolicyOnFailure), string(core.RestartPolicyNever)} allErrors = append(allErrors, field.NotSupported(fldPath, *restartPolicy, validValues)) } return allErrors } -func validateDNSPolicy(dnsPolicy *api.DNSPolicy, fldPath *field.Path) field.ErrorList { +func validateDNSPolicy(dnsPolicy *core.DNSPolicy, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} switch *dnsPolicy { - case api.DNSClusterFirstWithHostNet, api.DNSClusterFirst, api.DNSDefault: + case core.DNSClusterFirstWithHostNet, core.DNSClusterFirst, core.DNSDefault: break case "": allErrors = append(allErrors, field.Required(fldPath, "")) default: - validValues := []string{string(api.DNSClusterFirstWithHostNet), string(api.DNSClusterFirst), string(api.DNSDefault)} + validValues := []string{string(core.DNSClusterFirstWithHostNet), string(core.DNSClusterFirst), string(core.DNSDefault)} allErrors = append(allErrors, field.NotSupported(fldPath, dnsPolicy, validValues)) } return allErrors } -func validateHostNetwork(hostNetwork bool, containers []api.Container, fldPath *field.Path) field.ErrorList { +func validateHostNetwork(hostNetwork bool, containers []core.Container, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} if hostNetwork { for i, container := range containers { @@ -2259,11 +2306,11 @@ func validateHostNetwork(hostNetwork bool, containers []api.Container, fldPath * // formed. Right now, we only expect name to be set (it's the only field). If // this ever changes and someone decides to set those fields, we'd like to // know. -func validateImagePullSecrets(imagePullSecrets []api.LocalObjectReference, fldPath *field.Path) field.ErrorList { +func validateImagePullSecrets(imagePullSecrets []core.LocalObjectReference, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} for i, currPullSecret := range imagePullSecrets { idxPath := fldPath.Index(i) - strippedRef := api.LocalObjectReference{Name: currPullSecret.Name} + strippedRef := core.LocalObjectReference{Name: currPullSecret.Name} if !reflect.DeepEqual(strippedRef, currPullSecret) { allErrors = append(allErrors, field.Invalid(idxPath, currPullSecret, "only name may be set")) } @@ -2272,7 +2319,7 @@ func validateImagePullSecrets(imagePullSecrets []api.LocalObjectReference, fldPa } // validateAffinity checks if given affinities are valid -func validateAffinity(affinity *api.Affinity, fldPath *field.Path) field.ErrorList { +func validateAffinity(affinity *core.Affinity, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if affinity != nil { @@ -2301,7 +2348,7 @@ func validateAffinity(affinity *api.Affinity, fldPath *field.Path) field.ErrorLi return allErrs } -func validateTaintEffect(effect *api.TaintEffect, allowEmpty bool, fldPath *field.Path) field.ErrorList { +func validateTaintEffect(effect *core.TaintEffect, allowEmpty bool, fldPath *field.Path) field.ErrorList { if !allowEmpty && len(*effect) == 0 { return field.ErrorList{field.Required(fldPath, "")} } @@ -2309,15 +2356,15 @@ func validateTaintEffect(effect *api.TaintEffect, allowEmpty bool, fldPath *fiel allErrors := field.ErrorList{} switch *effect { // TODO: Replace next line with subsequent commented-out line when implement TaintEffectNoScheduleNoAdmit. - case api.TaintEffectNoSchedule, api.TaintEffectPreferNoSchedule, api.TaintEffectNoExecute: - // case api.TaintEffectNoSchedule, api.TaintEffectPreferNoSchedule, api.TaintEffectNoScheduleNoAdmit, api.TaintEffectNoExecute: + case core.TaintEffectNoSchedule, core.TaintEffectPreferNoSchedule, core.TaintEffectNoExecute: + // case core.TaintEffectNoSchedule, core.TaintEffectPreferNoSchedule, core.TaintEffectNoScheduleNoAdmit, core.TaintEffectNoExecute: default: validValues := []string{ - string(api.TaintEffectNoSchedule), - string(api.TaintEffectPreferNoSchedule), - string(api.TaintEffectNoExecute), + string(core.TaintEffectNoSchedule), + string(core.TaintEffectPreferNoSchedule), + string(core.TaintEffectNoExecute), // TODO: Uncomment this block when implement TaintEffectNoScheduleNoAdmit. - // string(api.TaintEffectNoScheduleNoAdmit), + // string(core.TaintEffectNoScheduleNoAdmit), } allErrors = append(allErrors, field.NotSupported(fldPath, effect, validValues)) } @@ -2325,7 +2372,7 @@ func validateTaintEffect(effect *api.TaintEffect, allowEmpty bool, fldPath *fiel } // validateOnlyAddedTolerations validates updated pod tolerations. -func validateOnlyAddedTolerations(newTolerations []api.Toleration, oldTolerations []api.Toleration, fldPath *field.Path) field.ErrorList { +func validateOnlyAddedTolerations(newTolerations []core.Toleration, oldTolerations []core.Toleration, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for _, old := range oldTolerations { found := false @@ -2347,7 +2394,7 @@ func validateOnlyAddedTolerations(newTolerations []api.Toleration, oldToleration return allErrs } -func ValidateHostAliases(hostAliases []api.HostAlias, fldPath *field.Path) field.ErrorList { +func ValidateHostAliases(hostAliases []core.HostAlias, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for _, hostAlias := range hostAliases { if ip := net.ParseIP(hostAlias.IP); ip == nil { @@ -2361,7 +2408,7 @@ func ValidateHostAliases(hostAliases []api.HostAlias, fldPath *field.Path) field } // ValidateTolerations tests if given tolerations have valid data. -func ValidateTolerations(tolerations []api.Toleration, fldPath *field.Path) field.ErrorList { +func ValidateTolerations(tolerations []core.Toleration, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} for i, toleration := range tolerations { idxPath := fldPath.Index(i) @@ -2371,12 +2418,12 @@ func ValidateTolerations(tolerations []api.Toleration, fldPath *field.Path) fiel } // empty toleration key with Exists operator and empty value means match all taints - if len(toleration.Key) == 0 && toleration.Operator != api.TolerationOpExists { + if len(toleration.Key) == 0 && toleration.Operator != core.TolerationOpExists { allErrors = append(allErrors, field.Invalid(idxPath.Child("operator"), toleration.Operator, "operator must be Exists when `key` is empty, which means \"match all values and all keys\"")) } - if toleration.TolerationSeconds != nil && toleration.Effect != api.TaintEffectNoExecute { + if toleration.TolerationSeconds != nil && toleration.Effect != core.TaintEffectNoExecute { allErrors = append(allErrors, field.Invalid(idxPath.Child("effect"), toleration.Effect, "effect must be 'NoExecute' when `tolerationSeconds` is set")) } @@ -2384,16 +2431,16 @@ func ValidateTolerations(tolerations []api.Toleration, fldPath *field.Path) fiel // validate toleration operator and value switch toleration.Operator { // empty operator means Equal - case api.TolerationOpEqual, "": + case core.TolerationOpEqual, "": if errs := validation.IsValidLabelValue(toleration.Value); len(errs) != 0 { allErrors = append(allErrors, field.Invalid(idxPath.Child("operator"), toleration.Value, strings.Join(errs, ";"))) } - case api.TolerationOpExists: + case core.TolerationOpExists: if len(toleration.Value) > 0 { allErrors = append(allErrors, field.Invalid(idxPath.Child("operator"), toleration, "value must be empty when `operator` is 'Exists'")) } default: - validValues := []string{string(api.TolerationOpEqual), string(api.TolerationOpExists)} + validValues := []string{string(core.TolerationOpEqual), string(core.TolerationOpExists)} allErrors = append(allErrors, field.NotSupported(idxPath.Child("operator"), toleration.Operator, validValues)) } @@ -2405,15 +2452,15 @@ func ValidateTolerations(tolerations []api.Toleration, fldPath *field.Path) fiel return allErrors } -func toResourceNames(resources api.ResourceList) []api.ResourceName { - result := []api.ResourceName{} +func toResourceNames(resources core.ResourceList) []core.ResourceName { + result := []core.ResourceName{} for resourceName := range resources { result = append(result, resourceName) } return result } -func toSet(resourceNames []api.ResourceName) sets.String { +func toSet(resourceNames []core.ResourceName) sets.String { result := sets.NewString() for _, resourceName := range resourceNames { result.Insert(string(resourceName)) @@ -2421,7 +2468,7 @@ func toSet(resourceNames []api.ResourceName) sets.String { return result } -func toContainerResourcesSet(ctr *api.Container) sets.String { +func toContainerResourcesSet(ctr *core.Container) sets.String { resourceNames := toResourceNames(ctr.Resources.Requests) resourceNames = append(resourceNames, toResourceNames(ctr.Resources.Limits)...) return toSet(resourceNames) @@ -2429,7 +2476,7 @@ func toContainerResourcesSet(ctr *api.Container) sets.String { // validateContainersOnlyForPod does additional validation for containers on a pod versus a pod template // it only does additive validation of fields not covered in validateContainers -func validateContainersOnlyForPod(containers []api.Container, fldPath *field.Path) field.ErrorList { +func validateContainersOnlyForPod(containers []core.Container, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for i, ctr := range containers { idxPath := fldPath.Index(i) @@ -2441,7 +2488,7 @@ func validateContainersOnlyForPod(containers []api.Container, fldPath *field.Pat } // ValidatePod tests if required fields in the pod are set. -func ValidatePod(pod *api.Pod) field.ErrorList { +func ValidatePod(pod *core.Pod) field.ErrorList { fldPath := field.NewPath("metadata") allErrs := ValidateObjectMeta(&pod.ObjectMeta, true, ValidatePodName, fldPath) allErrs = append(allErrs, ValidatePodSpecificAnnotations(pod.ObjectMeta.Annotations, &pod.Spec, fldPath.Child("annotations"))...) @@ -2476,7 +2523,7 @@ func ValidatePod(pod *api.Pod) field.ErrorList { // This includes checking formatting and uniqueness. It also canonicalizes the // structure by setting default values and implementing any backwards-compatibility // tricks. -func ValidatePodSpec(spec *api.PodSpec, fldPath *field.Path) field.ErrorList { +func ValidatePodSpec(spec *core.PodSpec, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} allVolumes, vErrs := ValidateVolumes(spec.Volumes, fldPath.Child("volumes")) @@ -2542,19 +2589,19 @@ func ValidatePodSpec(spec *api.PodSpec, fldPath *field.Path) field.ErrorList { } // ValidateNodeSelectorRequirement tests that the specified NodeSelectorRequirement fields has valid data -func ValidateNodeSelectorRequirement(rq api.NodeSelectorRequirement, fldPath *field.Path) field.ErrorList { +func ValidateNodeSelectorRequirement(rq core.NodeSelectorRequirement, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} switch rq.Operator { - case api.NodeSelectorOpIn, api.NodeSelectorOpNotIn: + case core.NodeSelectorOpIn, core.NodeSelectorOpNotIn: if len(rq.Values) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("values"), "must be specified when `operator` is 'In' or 'NotIn'")) } - case api.NodeSelectorOpExists, api.NodeSelectorOpDoesNotExist: + case core.NodeSelectorOpExists, core.NodeSelectorOpDoesNotExist: if len(rq.Values) > 0 { allErrs = append(allErrs, field.Forbidden(fldPath.Child("values"), "may not be specified when `operator` is 'Exists' or 'DoesNotExist'")) } - case api.NodeSelectorOpGt, api.NodeSelectorOpLt: + case core.NodeSelectorOpGt, core.NodeSelectorOpLt: if len(rq.Values) != 1 { allErrs = append(allErrs, field.Required(fldPath.Child("values"), "must be specified single value when `operator` is 'Lt' or 'Gt'")) } @@ -2566,7 +2613,7 @@ func ValidateNodeSelectorRequirement(rq api.NodeSelectorRequirement, fldPath *fi } // ValidateNodeSelectorTerm tests that the specified node selector term has valid data -func ValidateNodeSelectorTerm(term api.NodeSelectorTerm, fldPath *field.Path) field.ErrorList { +func ValidateNodeSelectorTerm(term core.NodeSelectorTerm, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(term.MatchExpressions) == 0 { @@ -2579,7 +2626,7 @@ func ValidateNodeSelectorTerm(term api.NodeSelectorTerm, fldPath *field.Path) fi } // ValidateNodeSelector tests that the specified nodeSelector fields has valid data -func ValidateNodeSelector(nodeSelector *api.NodeSelector, fldPath *field.Path) field.ErrorList { +func ValidateNodeSelector(nodeSelector *core.NodeSelector, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} termFldPath := fldPath.Child("nodeSelectorTerms") @@ -2600,18 +2647,18 @@ func ValidateAvoidPodsInNodeAnnotations(annotations map[string]string, fldPath * v1Avoids, err := v1helper.GetAvoidPodsFromNodeAnnotations(annotations) if err != nil { - allErrs = append(allErrs, field.Invalid(fldPath.Child("AvoidPods"), api.PreferAvoidPodsAnnotationKey, err.Error())) + allErrs = append(allErrs, field.Invalid(fldPath.Child("AvoidPods"), core.PreferAvoidPodsAnnotationKey, err.Error())) return allErrs } - var avoids api.AvoidPods - if err := k8s_api_v1.Convert_v1_AvoidPods_To_api_AvoidPods(&v1Avoids, &avoids, nil); err != nil { - allErrs = append(allErrs, field.Invalid(fldPath.Child("AvoidPods"), api.PreferAvoidPodsAnnotationKey, err.Error())) + var avoids core.AvoidPods + if err := corev1.Convert_v1_AvoidPods_To_core_AvoidPods(&v1Avoids, &avoids, nil); err != nil { + allErrs = append(allErrs, field.Invalid(fldPath.Child("AvoidPods"), core.PreferAvoidPodsAnnotationKey, err.Error())) return allErrs } if len(avoids.PreferAvoidPods) != 0 { for i, pa := range avoids.PreferAvoidPods { - idxPath := fldPath.Child(api.PreferAvoidPodsAnnotationKey).Index(i) + idxPath := fldPath.Child(core.PreferAvoidPodsAnnotationKey).Index(i) allErrs = append(allErrs, validatePreferAvoidPodsEntry(pa, idxPath)...) } } @@ -2620,7 +2667,7 @@ func ValidateAvoidPodsInNodeAnnotations(annotations map[string]string, fldPath * } // validatePreferAvoidPodsEntry tests if given PreferAvoidPodsEntry has valid data. -func validatePreferAvoidPodsEntry(avoidPodEntry api.PreferAvoidPodsEntry, fldPath *field.Path) field.ErrorList { +func validatePreferAvoidPodsEntry(avoidPodEntry core.PreferAvoidPodsEntry, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} if avoidPodEntry.PodSignature.PodController == nil { allErrors = append(allErrors, field.Required(fldPath.Child("PodSignature"), "")) @@ -2635,7 +2682,7 @@ func validatePreferAvoidPodsEntry(avoidPodEntry api.PreferAvoidPodsEntry, fldPat } // ValidatePreferredSchedulingTerms tests that the specified SoftNodeAffinity fields has valid data -func ValidatePreferredSchedulingTerms(terms []api.PreferredSchedulingTerm, fldPath *field.Path) field.ErrorList { +func ValidatePreferredSchedulingTerms(terms []core.PreferredSchedulingTerm, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for i, term := range terms { @@ -2649,7 +2696,7 @@ func ValidatePreferredSchedulingTerms(terms []api.PreferredSchedulingTerm, fldPa } // validatePodAffinityTerm tests that the specified podAffinityTerm fields have valid data -func validatePodAffinityTerm(podAffinityTerm api.PodAffinityTerm, fldPath *field.Path) field.ErrorList { +func validatePodAffinityTerm(podAffinityTerm core.PodAffinityTerm, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(podAffinityTerm.LabelSelector, fldPath.Child("matchExpressions"))...) @@ -2665,7 +2712,7 @@ func validatePodAffinityTerm(podAffinityTerm api.PodAffinityTerm, fldPath *field } // validatePodAffinityTerms tests that the specified podAffinityTerms fields have valid data -func validatePodAffinityTerms(podAffinityTerms []api.PodAffinityTerm, fldPath *field.Path) field.ErrorList { +func validatePodAffinityTerms(podAffinityTerms []core.PodAffinityTerm, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for i, podAffinityTerm := range podAffinityTerms { allErrs = append(allErrs, validatePodAffinityTerm(podAffinityTerm, fldPath.Index(i))...) @@ -2674,7 +2721,7 @@ func validatePodAffinityTerms(podAffinityTerms []api.PodAffinityTerm, fldPath *f } // validateWeightedPodAffinityTerms tests that the specified weightedPodAffinityTerms fields have valid data -func validateWeightedPodAffinityTerms(weightedPodAffinityTerms []api.WeightedPodAffinityTerm, fldPath *field.Path) field.ErrorList { +func validateWeightedPodAffinityTerms(weightedPodAffinityTerms []core.WeightedPodAffinityTerm, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for j, weightedTerm := range weightedPodAffinityTerms { if weightedTerm.Weight <= 0 || weightedTerm.Weight > 100 { @@ -2686,7 +2733,7 @@ func validateWeightedPodAffinityTerms(weightedPodAffinityTerms []api.WeightedPod } // validatePodAntiAffinity tests that the specified podAntiAffinity fields have valid data -func validatePodAntiAffinity(podAntiAffinity *api.PodAntiAffinity, fldPath *field.Path) field.ErrorList { +func validatePodAntiAffinity(podAntiAffinity *core.PodAntiAffinity, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} // TODO:Uncomment below code once RequiredDuringSchedulingRequiredDuringExecution is implemented. // if podAntiAffinity.RequiredDuringSchedulingRequiredDuringExecution != nil { @@ -2705,7 +2752,7 @@ func validatePodAntiAffinity(podAntiAffinity *api.PodAntiAffinity, fldPath *fiel } // validatePodAffinity tests that the specified podAffinity fields have valid data -func validatePodAffinity(podAffinity *api.PodAffinity, fldPath *field.Path) field.ErrorList { +func validatePodAffinity(podAffinity *core.PodAffinity, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} // TODO:Uncomment below code once RequiredDuringSchedulingRequiredDuringExecution is implemented. // if podAffinity.RequiredDuringSchedulingRequiredDuringExecution != nil { @@ -2738,11 +2785,11 @@ func ValidateSeccompProfile(p string, fldPath *field.Path) field.ErrorList { func ValidateSeccompPodAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - if p, exists := annotations[api.SeccompPodAnnotationKey]; exists { - allErrs = append(allErrs, ValidateSeccompProfile(p, fldPath.Child(api.SeccompPodAnnotationKey))...) + if p, exists := annotations[core.SeccompPodAnnotationKey]; exists { + allErrs = append(allErrs, ValidateSeccompProfile(p, fldPath.Child(core.SeccompPodAnnotationKey))...) } for k, p := range annotations { - if strings.HasPrefix(k, api.SeccompContainerAnnotationKeyPrefix) { + if strings.HasPrefix(k, core.SeccompContainerAnnotationKeyPrefix) { allErrs = append(allErrs, ValidateSeccompProfile(p, fldPath.Child(k))...) } } @@ -2750,7 +2797,7 @@ func ValidateSeccompPodAnnotations(annotations map[string]string, fldPath *field return allErrs } -func ValidateAppArmorPodAnnotations(annotations map[string]string, spec *api.PodSpec, fldPath *field.Path) field.ErrorList { +func ValidateAppArmorPodAnnotations(annotations map[string]string, spec *core.PodSpec, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for k, p := range annotations { if !strings.HasPrefix(k, apparmor.ContainerAnnotationKeyPrefix) { @@ -2774,7 +2821,7 @@ func ValidateAppArmorPodAnnotations(annotations map[string]string, spec *api.Pod return allErrs } -func podSpecHasContainer(spec *api.PodSpec, containerName string) bool { +func podSpecHasContainer(spec *core.PodSpec, containerName string) bool { for _, c := range spec.InitContainers { if c.Name == containerName { return true @@ -2810,7 +2857,7 @@ func IsValidSysctlName(name string) bool { return sysctlRegexp.MatchString(name) } -func validateSysctls(sysctls []api.Sysctl, fldPath *field.Path) field.ErrorList { +func validateSysctls(sysctls []core.Sysctl, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for i, s := range sysctls { if len(s.Name) == 0 { @@ -2823,7 +2870,7 @@ func validateSysctls(sysctls []api.Sysctl, fldPath *field.Path) field.ErrorList } // ValidatePodSecurityContext test that the specified PodSecurityContext has valid data. -func ValidatePodSecurityContext(securityContext *api.PodSecurityContext, spec *api.PodSpec, specPath, fldPath *field.Path) field.ErrorList { +func ValidatePodSecurityContext(securityContext *core.PodSecurityContext, spec *core.PodSpec, specPath, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if securityContext != nil { @@ -2848,7 +2895,7 @@ func ValidatePodSecurityContext(securityContext *api.PodSecurityContext, spec *a return allErrs } -func ValidateContainerUpdates(newContainers, oldContainers []api.Container, fldPath *field.Path) (allErrs field.ErrorList, stop bool) { +func ValidateContainerUpdates(newContainers, oldContainers []core.Container, fldPath *field.Path) (allErrs field.ErrorList, stop bool) { allErrs = field.ErrorList{} if len(newContainers) != len(oldContainers) { //TODO: Pinpoint the specific container that causes the invalid error after we have strategic merge diff @@ -2871,7 +2918,7 @@ func ValidateContainerUpdates(newContainers, oldContainers []api.Container, fldP // ValidatePodUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields // that cannot be changed. -func ValidatePodUpdate(newPod, oldPod *api.Pod) field.ErrorList { +func ValidatePodUpdate(newPod, oldPod *core.Pod) field.ErrorList { fldPath := field.NewPath("metadata") allErrs := ValidateObjectMetaUpdate(&newPod.ObjectMeta, &oldPod.ObjectMeta, fldPath) allErrs = append(allErrs, ValidatePodSpecificAnnotationUpdates(newPod, oldPod, fldPath.Child("annotations"))...) @@ -2916,14 +2963,14 @@ func ValidatePodUpdate(newPod, oldPod *api.Pod) field.ErrorList { // handle updateable fields by munging those fields prior to deep equal comparison. mungedPod := *newPod // munge spec.containers[*].image - var newContainers []api.Container + var newContainers []core.Container for ix, container := range mungedPod.Spec.Containers { container.Image = oldPod.Spec.Containers[ix].Image newContainers = append(newContainers, container) } mungedPod.Spec.Containers = newContainers // munge spec.initContainers[*].image - var newInitContainers []api.Container + var newInitContainers []core.Container for ix, container := range mungedPod.Spec.InitContainers { container.Image = oldPod.Spec.InitContainers[ix].Image newInitContainers = append(newInitContainers, container) @@ -2952,7 +2999,7 @@ func ValidatePodUpdate(newPod, oldPod *api.Pod) field.ErrorList { // ValidatePodStatusUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields // that cannot be changed. -func ValidatePodStatusUpdate(newPod, oldPod *api.Pod) field.ErrorList { +func ValidatePodStatusUpdate(newPod, oldPod *core.Pod) field.ErrorList { fldPath := field.NewPath("metadata") allErrs := ValidateObjectMetaUpdate(&newPod.ObjectMeta, &oldPod.ObjectMeta, fldPath) allErrs = append(allErrs, ValidatePodSpecificAnnotationUpdates(newPod, oldPod, fldPath.Child("annotations"))...) @@ -2968,7 +3015,7 @@ func ValidatePodStatusUpdate(newPod, oldPod *api.Pod) field.ErrorList { } // ValidatePodBinding tests if required fields in the pod binding are legal. -func ValidatePodBinding(binding *api.Binding) field.ErrorList { +func ValidatePodBinding(binding *core.Binding) field.ErrorList { allErrs := field.ErrorList{} if len(binding.Target.Kind) != 0 && binding.Target.Kind != "Node" { @@ -2984,7 +3031,7 @@ func ValidatePodBinding(binding *api.Binding) field.ErrorList { } // ValidatePodTemplate tests if required fields in the pod template are set. -func ValidatePodTemplate(pod *api.PodTemplate) field.ErrorList { +func ValidatePodTemplate(pod *core.PodTemplate) field.ErrorList { allErrs := ValidateObjectMeta(&pod.ObjectMeta, true, ValidatePodName, field.NewPath("metadata")) allErrs = append(allErrs, ValidatePodTemplateSpec(&pod.Template, field.NewPath("template"))...) return allErrs @@ -2992,27 +3039,27 @@ func ValidatePodTemplate(pod *api.PodTemplate) field.ErrorList { // ValidatePodTemplateUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields // that cannot be changed. -func ValidatePodTemplateUpdate(newPod, oldPod *api.PodTemplate) field.ErrorList { +func ValidatePodTemplateUpdate(newPod, oldPod *core.PodTemplate) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&oldPod.ObjectMeta, &newPod.ObjectMeta, field.NewPath("metadata")) allErrs = append(allErrs, ValidatePodTemplateSpec(&newPod.Template, field.NewPath("template"))...) return allErrs } -var supportedSessionAffinityType = sets.NewString(string(api.ServiceAffinityClientIP), string(api.ServiceAffinityNone)) -var supportedServiceType = sets.NewString(string(api.ServiceTypeClusterIP), string(api.ServiceTypeNodePort), - string(api.ServiceTypeLoadBalancer), string(api.ServiceTypeExternalName)) +var supportedSessionAffinityType = sets.NewString(string(core.ServiceAffinityClientIP), string(core.ServiceAffinityNone)) +var supportedServiceType = sets.NewString(string(core.ServiceTypeClusterIP), string(core.ServiceTypeNodePort), + string(core.ServiceTypeLoadBalancer), string(core.ServiceTypeExternalName)) // ValidateService tests if required fields/annotations of a Service are valid. -func ValidateService(service *api.Service) field.ErrorList { +func ValidateService(service *core.Service) field.ErrorList { allErrs := ValidateObjectMeta(&service.ObjectMeta, true, ValidateServiceName, field.NewPath("metadata")) specPath := field.NewPath("spec") - isHeadlessService := service.Spec.ClusterIP == api.ClusterIPNone - if len(service.Spec.Ports) == 0 && !isHeadlessService && service.Spec.Type != api.ServiceTypeExternalName { + isHeadlessService := service.Spec.ClusterIP == core.ClusterIPNone + if len(service.Spec.Ports) == 0 && !isHeadlessService && service.Spec.Type != core.ServiceTypeExternalName { allErrs = append(allErrs, field.Required(specPath.Child("ports"), "")) } switch service.Spec.Type { - case api.ServiceTypeLoadBalancer: + case core.ServiceTypeLoadBalancer: for ix := range service.Spec.Ports { port := &service.Spec.Ports[ix] // This is a workaround for broken cloud environments that @@ -3026,11 +3073,11 @@ func ValidateService(service *api.Service) field.ErrorList { if service.Spec.ClusterIP == "None" { allErrs = append(allErrs, field.Invalid(specPath.Child("clusterIP"), service.Spec.ClusterIP, "may not be set to 'None' for LoadBalancer services")) } - case api.ServiceTypeNodePort: + case core.ServiceTypeNodePort: if service.Spec.ClusterIP == "None" { allErrs = append(allErrs, field.Invalid(specPath.Child("clusterIP"), service.Spec.ClusterIP, "may not be set to 'None' for NodePort services")) } - case api.ServiceTypeExternalName: + case core.ServiceTypeExternalName: if service.Spec.ClusterIP != "" { allErrs = append(allErrs, field.Invalid(specPath.Child("clusterIP"), service.Spec.ClusterIP, "must be empty for ExternalName services")) } @@ -3058,11 +3105,11 @@ func ValidateService(service *api.Service) field.ErrorList { allErrs = append(allErrs, field.NotSupported(specPath.Child("sessionAffinity"), service.Spec.SessionAffinity, supportedSessionAffinityType.List())) } - if service.Spec.SessionAffinity == api.ServiceAffinityClientIP { + if service.Spec.SessionAffinity == core.ServiceAffinityClientIP { allErrs = append(allErrs, validateClientIPAffinityConfig(service.Spec.SessionAffinityConfig, specPath.Child("sessionAffinityConfig"))...) - } else if service.Spec.SessionAffinity == api.ServiceAffinityNone { + } else if service.Spec.SessionAffinity == core.ServiceAffinityNone { if service.Spec.SessionAffinityConfig != nil { - allErrs = append(allErrs, field.Forbidden(specPath.Child("sessionAffinityConfig"), fmt.Sprintf("must not be set when session affinity is %s", string(api.ServiceAffinityNone)))) + allErrs = append(allErrs, field.Forbidden(specPath.Child("sessionAffinityConfig"), fmt.Sprintf("must not be set when session affinity is %s", string(core.ServiceAffinityNone)))) } } @@ -3090,7 +3137,7 @@ func ValidateService(service *api.Service) field.ErrorList { allErrs = append(allErrs, field.NotSupported(specPath.Child("type"), service.Spec.Type, supportedServiceType.List())) } - if service.Spec.Type == api.ServiceTypeLoadBalancer { + if service.Spec.Type == core.ServiceTypeLoadBalancer { portsPath := specPath.Child("ports") includeProtocols := sets.NewString() for i := range service.Spec.Ports { @@ -3106,7 +3153,7 @@ func ValidateService(service *api.Service) field.ErrorList { } } - if service.Spec.Type == api.ServiceTypeClusterIP { + if service.Spec.Type == core.ServiceTypeClusterIP { portsPath := specPath.Child("ports") for i := range service.Spec.Ports { portPath := portsPath.Index(i) @@ -3118,14 +3165,14 @@ func ValidateService(service *api.Service) field.ErrorList { // Check for duplicate NodePorts, considering (protocol,port) pairs portsPath = specPath.Child("ports") - nodePorts := make(map[api.ServicePort]bool) + nodePorts := make(map[core.ServicePort]bool) for i := range service.Spec.Ports { port := &service.Spec.Ports[i] if port.NodePort == 0 { continue } portPath := portsPath.Index(i) - var key api.ServicePort + var key core.ServicePort key.Protocol = port.Protocol key.NodePort = port.NodePort _, found := nodePorts[key] @@ -3137,10 +3184,10 @@ func ValidateService(service *api.Service) field.ErrorList { // Check for duplicate Ports, considering (protocol,port) pairs portsPath = specPath.Child("ports") - ports := make(map[api.ServicePort]bool) + ports := make(map[core.ServicePort]bool) for i, port := range service.Spec.Ports { portPath := portsPath.Index(i) - key := api.ServicePort{Protocol: port.Protocol, Port: port.Port} + key := core.ServicePort{Protocol: port.Protocol, Port: port.Port} _, found := ports[key] if found { allErrs = append(allErrs, field.Duplicate(portPath, key)) @@ -3148,24 +3195,8 @@ func ValidateService(service *api.Service) field.ErrorList { ports[key] = true } - // Check for duplicate TargetPort - portsPath = specPath.Child("ports") - targetPorts := make(map[api.ServicePort]bool) - for i, port := range service.Spec.Ports { - if (port.TargetPort.Type == intstr.Int && port.TargetPort.IntVal == 0) || (port.TargetPort.Type == intstr.String && port.TargetPort.StrVal == "") { - continue - } - portPath := portsPath.Index(i) - key := api.ServicePort{Protocol: port.Protocol, TargetPort: port.TargetPort} - _, found := targetPorts[key] - if found { - allErrs = append(allErrs, field.Duplicate(portPath.Child("targetPort"), port.TargetPort)) - } - targetPorts[key] = true - } - // Validate SourceRange field and annotation - _, ok := service.Annotations[api.AnnotationLoadBalancerSourceRangesKey] + _, ok := service.Annotations[core.AnnotationLoadBalancerSourceRangesKey] if len(service.Spec.LoadBalancerSourceRanges) > 0 || ok { var fieldPath *field.Path var val string @@ -3173,10 +3204,10 @@ func ValidateService(service *api.Service) field.ErrorList { fieldPath = specPath.Child("LoadBalancerSourceRanges") val = fmt.Sprintf("%v", service.Spec.LoadBalancerSourceRanges) } else { - fieldPath = field.NewPath("metadata", "annotations").Key(api.AnnotationLoadBalancerSourceRangesKey) - val = service.Annotations[api.AnnotationLoadBalancerSourceRangesKey] + fieldPath = field.NewPath("metadata", "annotations").Key(core.AnnotationLoadBalancerSourceRangesKey) + val = service.Annotations[core.AnnotationLoadBalancerSourceRangesKey] } - if service.Spec.Type != api.ServiceTypeLoadBalancer { + if service.Spec.Type != core.ServiceTypeLoadBalancer { allErrs = append(allErrs, field.Invalid(fieldPath, "", "may only be used when `type` is 'LoadBalancer'")) } _, err := apiservice.GetLoadBalancerSourceRanges(service) @@ -3190,7 +3221,7 @@ func ValidateService(service *api.Service) field.ErrorList { return allErrs } -func validateServicePort(sp *api.ServicePort, requireName, isHeadlessService bool, allNames *sets.String, fldPath *field.Path) field.ErrorList { +func validateServicePort(sp *core.ServicePort, requireName, isHeadlessService bool, allNames *sets.String, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if requireName && len(sp.Name) == 0 { @@ -3230,15 +3261,15 @@ func validateServicePort(sp *api.ServicePort, requireName, isHeadlessService boo // validateServiceExternalTrafficFieldsValue validates ExternalTraffic related annotations // have legal value. -func validateServiceExternalTrafficFieldsValue(service *api.Service) field.ErrorList { +func validateServiceExternalTrafficFieldsValue(service *core.Service) field.ErrorList { allErrs := field.ErrorList{} // Check first class fields. if service.Spec.ExternalTrafficPolicy != "" && - service.Spec.ExternalTrafficPolicy != api.ServiceExternalTrafficPolicyTypeCluster && - service.Spec.ExternalTrafficPolicy != api.ServiceExternalTrafficPolicyTypeLocal { + service.Spec.ExternalTrafficPolicy != core.ServiceExternalTrafficPolicyTypeCluster && + service.Spec.ExternalTrafficPolicy != core.ServiceExternalTrafficPolicyTypeLocal { allErrs = append(allErrs, field.Invalid(field.NewPath("spec").Child("externalTrafficPolicy"), service.Spec.ExternalTrafficPolicy, - fmt.Sprintf("ExternalTrafficPolicy must be empty, %v or %v", api.ServiceExternalTrafficPolicyTypeCluster, api.ServiceExternalTrafficPolicyTypeLocal))) + fmt.Sprintf("ExternalTrafficPolicy must be empty, %v or %v", core.ServiceExternalTrafficPolicyTypeCluster, core.ServiceExternalTrafficPolicyTypeLocal))) } if service.Spec.HealthCheckNodePort < 0 { allErrs = append(allErrs, field.Invalid(field.NewPath("spec").Child("healthCheckNodePort"), service.Spec.HealthCheckNodePort, @@ -3252,11 +3283,11 @@ func validateServiceExternalTrafficFieldsValue(service *api.Service) field.Error // HealthCheckNodePort and Type combination are legal. For update, it should be called // after clearing externalTraffic related fields for the ease of transitioning between // different service types. -func ValidateServiceExternalTrafficFieldsCombination(service *api.Service) field.ErrorList { +func ValidateServiceExternalTrafficFieldsCombination(service *core.Service) field.ErrorList { allErrs := field.ErrorList{} - if service.Spec.Type != api.ServiceTypeLoadBalancer && - service.Spec.Type != api.ServiceTypeNodePort && + if service.Spec.Type != core.ServiceTypeLoadBalancer && + service.Spec.Type != core.ServiceTypeNodePort && service.Spec.ExternalTrafficPolicy != "" { allErrs = append(allErrs, field.Invalid(field.NewPath("spec", "externalTrafficPolicy"), service.Spec.ExternalTrafficPolicy, "ExternalTrafficPolicy can only be set on NodePort and LoadBalancer service")) @@ -3272,13 +3303,13 @@ func ValidateServiceExternalTrafficFieldsCombination(service *api.Service) field } // ValidateServiceUpdate tests if required fields in the service are set during an update -func ValidateServiceUpdate(service, oldService *api.Service) field.ErrorList { +func ValidateServiceUpdate(service, oldService *core.Service) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&service.ObjectMeta, &oldService.ObjectMeta, field.NewPath("metadata")) // ClusterIP should be immutable for services using it (every type other than ExternalName) // which do not have ClusterIP assigned yet (empty string value) - if service.Spec.Type != api.ServiceTypeExternalName { - if oldService.Spec.Type != api.ServiceTypeExternalName && oldService.Spec.ClusterIP != "" { + if service.Spec.Type != core.ServiceTypeExternalName { + if oldService.Spec.Type != core.ServiceTypeExternalName && oldService.Spec.ClusterIP != "" { allErrs = append(allErrs, ValidateImmutableField(service.Spec.ClusterIP, oldService.Spec.ClusterIP, field.NewPath("spec", "clusterIP"))...) } } @@ -3288,34 +3319,34 @@ func ValidateServiceUpdate(service, oldService *api.Service) field.ErrorList { } // ValidateServiceStatusUpdate tests if required fields in the Service are set when updating status. -func ValidateServiceStatusUpdate(service, oldService *api.Service) field.ErrorList { +func ValidateServiceStatusUpdate(service, oldService *core.Service) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&service.ObjectMeta, &oldService.ObjectMeta, field.NewPath("metadata")) allErrs = append(allErrs, ValidateLoadBalancerStatus(&service.Status.LoadBalancer, field.NewPath("status", "loadBalancer"))...) return allErrs } // ValidateReplicationController tests if required fields in the replication controller are set. -func ValidateReplicationController(controller *api.ReplicationController) field.ErrorList { +func ValidateReplicationController(controller *core.ReplicationController) field.ErrorList { allErrs := ValidateObjectMeta(&controller.ObjectMeta, true, ValidateReplicationControllerName, field.NewPath("metadata")) allErrs = append(allErrs, ValidateReplicationControllerSpec(&controller.Spec, field.NewPath("spec"))...) return allErrs } // ValidateReplicationControllerUpdate tests if required fields in the replication controller are set. -func ValidateReplicationControllerUpdate(controller, oldController *api.ReplicationController) field.ErrorList { +func ValidateReplicationControllerUpdate(controller, oldController *core.ReplicationController) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&controller.ObjectMeta, &oldController.ObjectMeta, field.NewPath("metadata")) allErrs = append(allErrs, ValidateReplicationControllerSpec(&controller.Spec, field.NewPath("spec"))...) return allErrs } // ValidateReplicationControllerStatusUpdate tests if required fields in the replication controller are set. -func ValidateReplicationControllerStatusUpdate(controller, oldController *api.ReplicationController) field.ErrorList { +func ValidateReplicationControllerStatusUpdate(controller, oldController *core.ReplicationController) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&controller.ObjectMeta, &oldController.ObjectMeta, field.NewPath("metadata")) allErrs = append(allErrs, ValidateReplicationControllerStatus(controller.Status, field.NewPath("status"))...) return allErrs } -func ValidateReplicationControllerStatus(status api.ReplicationControllerStatus, statusPath *field.Path) field.ErrorList { +func ValidateReplicationControllerStatus(status core.ReplicationControllerStatus, statusPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} allErrs = append(allErrs, ValidateNonnegativeField(int64(status.Replicas), statusPath.Child("replicas"))...) allErrs = append(allErrs, ValidateNonnegativeField(int64(status.FullyLabeledReplicas), statusPath.Child("fullyLabeledReplicas"))...) @@ -3349,7 +3380,7 @@ func ValidateNonEmptySelector(selectorMap map[string]string, fldPath *field.Path } // Validates the given template and ensures that it is in accordance with the desired selector and replicas. -func ValidatePodTemplateSpecForRC(template *api.PodTemplateSpec, selectorMap map[string]string, replicas int32, fldPath *field.Path) field.ErrorList { +func ValidatePodTemplateSpecForRC(template *core.PodTemplateSpec, selectorMap map[string]string, replicas int32, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if template == nil { allErrs = append(allErrs, field.Required(fldPath, "")) @@ -3367,8 +3398,8 @@ func ValidatePodTemplateSpecForRC(template *api.PodTemplateSpec, selectorMap map allErrs = append(allErrs, ValidateReadOnlyPersistentDisks(template.Spec.Volumes, fldPath.Child("spec", "volumes"))...) } // RestartPolicy has already been first-order validated as per ValidatePodTemplateSpec(). - if template.Spec.RestartPolicy != api.RestartPolicyAlways { - allErrs = append(allErrs, field.NotSupported(fldPath.Child("spec", "restartPolicy"), template.Spec.RestartPolicy, []string{string(api.RestartPolicyAlways)})) + if template.Spec.RestartPolicy != core.RestartPolicyAlways { + allErrs = append(allErrs, field.NotSupported(fldPath.Child("spec", "restartPolicy"), template.Spec.RestartPolicy, []string{string(core.RestartPolicyAlways)})) } if template.Spec.ActiveDeadlineSeconds != nil { allErrs = append(allErrs, field.Invalid(fldPath.Child("spec", "activeDeadlineSeconds"), template.Spec.ActiveDeadlineSeconds, "must not be specified")) @@ -3378,7 +3409,7 @@ func ValidatePodTemplateSpecForRC(template *api.PodTemplateSpec, selectorMap map } // ValidateReplicationControllerSpec tests if required fields in the replication controller spec are set. -func ValidateReplicationControllerSpec(spec *api.ReplicationControllerSpec, fldPath *field.Path) field.ErrorList { +func ValidateReplicationControllerSpec(spec *core.ReplicationControllerSpec, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} allErrs = append(allErrs, ValidateNonnegativeField(int64(spec.MinReadySeconds), fldPath.Child("minReadySeconds"))...) allErrs = append(allErrs, ValidateNonEmptySelector(spec.Selector, fldPath.Child("selector"))...) @@ -3388,7 +3419,7 @@ func ValidateReplicationControllerSpec(spec *api.ReplicationControllerSpec, fldP } // ValidatePodTemplateSpec validates the spec of a pod template -func ValidatePodTemplateSpec(spec *api.PodTemplateSpec, fldPath *field.Path) field.ErrorList { +func ValidatePodTemplateSpec(spec *core.PodTemplateSpec, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} allErrs = append(allErrs, unversionedvalidation.ValidateLabels(spec.Labels, fldPath.Child("labels"))...) allErrs = append(allErrs, ValidateAnnotations(spec.Annotations, fldPath.Child("annotations"))...) @@ -3397,7 +3428,7 @@ func ValidatePodTemplateSpec(spec *api.PodTemplateSpec, fldPath *field.Path) fie return allErrs } -func ValidateReadOnlyPersistentDisks(volumes []api.Volume, fldPath *field.Path) field.ErrorList { +func ValidateReadOnlyPersistentDisks(volumes []core.Volume, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for i := range volumes { vol := &volumes[i] @@ -3418,22 +3449,22 @@ func ValidateTaintsInNodeAnnotations(annotations map[string]string, fldPath *fie taints, err := helper.GetTaintsFromNodeAnnotations(annotations) if err != nil { - allErrs = append(allErrs, field.Invalid(fldPath, api.TaintsAnnotationKey, err.Error())) + allErrs = append(allErrs, field.Invalid(fldPath, core.TaintsAnnotationKey, err.Error())) return allErrs } if len(taints) > 0 { - allErrs = append(allErrs, validateNodeTaints(taints, fldPath.Child(api.TaintsAnnotationKey))...) + allErrs = append(allErrs, validateNodeTaints(taints, fldPath.Child(core.TaintsAnnotationKey))...) } return allErrs } // validateNodeTaints tests if given taints have valid data. -func validateNodeTaints(taints []api.Taint, fldPath *field.Path) field.ErrorList { +func validateNodeTaints(taints []core.Taint, fldPath *field.Path) field.ErrorList { allErrors := field.ErrorList{} - uniqueTaints := map[api.TaintEffect]sets.String{} + uniqueTaints := map[core.TaintEffect]sets.String{} for i, currTaint := range taints { idxPath := fldPath.Index(i) @@ -3466,18 +3497,18 @@ func validateNodeTaints(taints []api.Taint, fldPath *field.Path) field.ErrorList func ValidateNodeSpecificAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - if annotations[api.TaintsAnnotationKey] != "" { + if annotations[core.TaintsAnnotationKey] != "" { allErrs = append(allErrs, ValidateTaintsInNodeAnnotations(annotations, fldPath)...) } - if annotations[api.PreferAvoidPodsAnnotationKey] != "" { + if annotations[core.PreferAvoidPodsAnnotationKey] != "" { allErrs = append(allErrs, ValidateAvoidPodsInNodeAnnotations(annotations, fldPath)...) } return allErrs } // ValidateNode tests if required fields in the node are set. -func ValidateNode(node *api.Node) field.ErrorList { +func ValidateNode(node *core.Node) field.ErrorList { fldPath := field.NewPath("metadata") allErrs := ValidateObjectMeta(&node.ObjectMeta, false, ValidateNodeName, fldPath) allErrs = append(allErrs, ValidateNodeSpecificAnnotations(node.ObjectMeta.Annotations, fldPath.Child("annotations"))...) @@ -3500,12 +3531,17 @@ func ValidateNode(node *api.Node) field.ErrorList { allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "configSource"), "configSource may only be set if the DynamicKubeletConfig feature gate is enabled)")) } - // TODO(rjnagal): Ignore PodCIDR till its completely implemented. + if len(node.Spec.PodCIDR) != 0 { + _, err := ValidateCIDR(node.Spec.PodCIDR) + if err != nil { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec", "podCIDR"), node.Spec.PodCIDR, "not a valid CIDR")) + } + } return allErrs } // ValidateNodeResources is used to make sure a node has valid capacity and allocatable values. -func ValidateNodeResources(node *api.Node) field.ErrorList { +func ValidateNodeResources(node *core.Node) field.ErrorList { allErrs := field.ErrorList{} // Validate resource quantities in capacity. hugePageSizes := sets.NewString() @@ -3537,21 +3573,21 @@ func ValidateNodeResources(node *api.Node) field.ErrorList { } // ValidateNodeUpdate tests to make sure a node update can be applied. Modifies oldNode. -func ValidateNodeUpdate(node, oldNode *api.Node) field.ErrorList { +func ValidateNodeUpdate(node, oldNode *core.Node) field.ErrorList { fldPath := field.NewPath("metadata") allErrs := ValidateObjectMetaUpdate(&node.ObjectMeta, &oldNode.ObjectMeta, fldPath) allErrs = append(allErrs, ValidateNodeSpecificAnnotations(node.ObjectMeta.Annotations, fldPath.Child("annotations"))...) - // TODO: Enable the code once we have better api object.status update model. Currently, + // TODO: Enable the code once we have better core object.status update model. Currently, // anyone can update node status. - // if !apiequality.Semantic.DeepEqual(node.Status, api.NodeStatus{}) { + // if !apiequality.Semantic.DeepEqual(node.Status, core.NodeStatus{}) { // allErrs = append(allErrs, field.Invalid("status", node.Status, "must be empty")) // } allErrs = append(allErrs, ValidateNodeResources(node)...) // Validate no duplicate addresses in node status. - addresses := make(map[api.NodeAddress]bool) + addresses := make(map[core.NodeAddress]bool) for i, address := range node.Status.Addresses { if _, ok := addresses[address]; ok { allErrs = append(allErrs, field.Duplicate(field.NewPath("status", "addresses").Index(i), address)) @@ -3613,7 +3649,7 @@ func ValidateNodeUpdate(node, oldNode *api.Node) field.ErrorList { func validateResourceName(value string, fldPath *field.Path) field.ErrorList { // Opaque integer resources (OIR) deprecation began in v1.8 // TODO: Remove warning after OIR deprecation cycle. - if helper.IsOpaqueIntResourceName(api.ResourceName(value)) { + if helper.IsOpaqueIntResourceName(core.ResourceName(value)) { glog.Errorf("DEPRECATION WARNING! Opaque integer resources are deprecated starting with v1.8: %s", value) } @@ -3649,8 +3685,8 @@ func validateContainerResourceName(value string, fldPath *field.Path) field.Erro // isLocalStorageResource checks whether the resource is local ephemeral storage func isLocalStorageResource(name string) bool { - if name == string(api.ResourceEphemeralStorage) || name == string(api.ResourceRequestsEphemeralStorage) || - name == string(api.ResourceLimitsEphemeralStorage) { + if name == string(core.ResourceEphemeralStorage) || name == string(core.ResourceRequestsEphemeralStorage) || + name == string(core.ResourceLimitsEphemeralStorage) { return true } else { return false @@ -3693,13 +3729,13 @@ func validateLimitRangeTypeName(value string, fldPath *field.Path) field.ErrorLi // Validate limit range resource name // limit types (other than Pod/Container) could contain storage not just cpu or memory -func validateLimitRangeResourceName(limitType api.LimitType, value string, fldPath *field.Path) field.ErrorList { +func validateLimitRangeResourceName(limitType core.LimitType, value string, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - if value == string(api.ResourceEphemeralStorage) && !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) { + if value == string(core.ResourceEphemeralStorage) && !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) { return append(allErrs, field.Forbidden(fldPath, "ResourceEphemeralStorage field disabled by feature-gate for Resource LimitRange")) } switch limitType { - case api.LimitTypePod, api.LimitTypeContainer: + case core.LimitTypePod, core.LimitTypeContainer: return validateContainerResourceName(value, fldPath) default: return validateResourceName(value, fldPath) @@ -3707,11 +3743,11 @@ func validateLimitRangeResourceName(limitType api.LimitType, value string, fldPa } // ValidateLimitRange tests if required fields in the LimitRange are set. -func ValidateLimitRange(limitRange *api.LimitRange) field.ErrorList { +func ValidateLimitRange(limitRange *core.LimitRange) field.ErrorList { allErrs := ValidateObjectMeta(&limitRange.ObjectMeta, true, ValidateLimitRangeName, field.NewPath("metadata")) // ensure resource names are properly qualified per docs/design/resources.md - limitTypeSet := map[api.LimitType]bool{} + limitTypeSet := map[core.LimitType]bool{} fldPath := field.NewPath("spec", "limits") for i := range limitRange.Spec.Limits { idxPath := fldPath.Index(i) @@ -3742,7 +3778,7 @@ func ValidateLimitRange(limitRange *api.LimitRange) field.ErrorList { min[string(k)] = q } - if limit.Type == api.LimitTypePod { + if limit.Type == core.LimitTypePod { if len(limit.Default) > 0 { allErrs = append(allErrs, field.Forbidden(idxPath.Child("default"), "may not be specified when `type` is 'Pod'")) } @@ -3762,9 +3798,9 @@ func ValidateLimitRange(limitRange *api.LimitRange) field.ErrorList { } } - if limit.Type == api.LimitTypePersistentVolumeClaim { - _, minQuantityFound := limit.Min[api.ResourceStorage] - _, maxQuantityFound := limit.Max[api.ResourceStorage] + if limit.Type == core.LimitTypePersistentVolumeClaim { + _, minQuantityFound := limit.Min[core.ResourceStorage] + _, maxQuantityFound := limit.Max[core.ResourceStorage] if !minQuantityFound && !maxQuantityFound { allErrs = append(allErrs, field.Required(idxPath.Child("limits"), "either minimum or maximum storage value is required, but neither was provided")) } @@ -3823,6 +3859,11 @@ func ValidateLimitRange(limitRange *api.LimitRange) field.ErrorList { allErrs = append(allErrs, field.Invalid(idxPath.Child("maxLimitRequestRatio").Key(string(k)), maxRatio, fmt.Sprintf("ratio %s is greater than max/min = %f", maxRatio.String(), maxRatioLimit))) } } + + // for GPU and hugepages, the default value and defaultRequest value must match if both are specified + if !helper.IsOvercommitAllowed(core.ResourceName(k)) && defaultQuantityFound && defaultRequestQuantityFound && defaultQuantity.Cmp(defaultRequestQuantity) != 0 { + allErrs = append(allErrs, field.Invalid(idxPath.Child("defaultRequest").Key(string(k)), defaultRequestQuantity, fmt.Sprintf("default value %s must equal to defaultRequest value %s in %s", defaultQuantity.String(), defaultRequestQuantity.String(), k))) + } } } @@ -3830,20 +3871,20 @@ func ValidateLimitRange(limitRange *api.LimitRange) field.ErrorList { } // ValidateServiceAccount tests if required fields in the ServiceAccount are set. -func ValidateServiceAccount(serviceAccount *api.ServiceAccount) field.ErrorList { +func ValidateServiceAccount(serviceAccount *core.ServiceAccount) field.ErrorList { allErrs := ValidateObjectMeta(&serviceAccount.ObjectMeta, true, ValidateServiceAccountName, field.NewPath("metadata")) return allErrs } // ValidateServiceAccountUpdate tests if required fields in the ServiceAccount are set. -func ValidateServiceAccountUpdate(newServiceAccount, oldServiceAccount *api.ServiceAccount) field.ErrorList { +func ValidateServiceAccountUpdate(newServiceAccount, oldServiceAccount *core.ServiceAccount) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newServiceAccount.ObjectMeta, &oldServiceAccount.ObjectMeta, field.NewPath("metadata")) allErrs = append(allErrs, ValidateServiceAccount(newServiceAccount)...) return allErrs } // ValidateSecret tests if required fields in the Secret are set. -func ValidateSecret(secret *api.Secret) field.ErrorList { +func ValidateSecret(secret *core.Secret) field.ErrorList { allErrs := ValidateObjectMeta(&secret.ObjectMeta, true, ValidateSecretName, field.NewPath("metadata")) dataPath := field.NewPath("data") @@ -3854,63 +3895,63 @@ func ValidateSecret(secret *api.Secret) field.ErrorList { } totalSize += len(value) } - if totalSize > api.MaxSecretSize { - allErrs = append(allErrs, field.TooLong(dataPath, "", api.MaxSecretSize)) + if totalSize > core.MaxSecretSize { + allErrs = append(allErrs, field.TooLong(dataPath, "", core.MaxSecretSize)) } switch secret.Type { - case api.SecretTypeServiceAccountToken: + case core.SecretTypeServiceAccountToken: // Only require Annotations[kubernetes.io/service-account.name] // Additional fields (like Annotations[kubernetes.io/service-account.uid] and Data[token]) might be contributed later by a controller loop - if value := secret.Annotations[api.ServiceAccountNameKey]; len(value) == 0 { - allErrs = append(allErrs, field.Required(field.NewPath("metadata", "annotations").Key(api.ServiceAccountNameKey), "")) + if value := secret.Annotations[core.ServiceAccountNameKey]; len(value) == 0 { + allErrs = append(allErrs, field.Required(field.NewPath("metadata", "annotations").Key(core.ServiceAccountNameKey), "")) } - case api.SecretTypeOpaque, "": + case core.SecretTypeOpaque, "": // no-op - case api.SecretTypeDockercfg: - dockercfgBytes, exists := secret.Data[api.DockerConfigKey] + case core.SecretTypeDockercfg: + dockercfgBytes, exists := secret.Data[core.DockerConfigKey] if !exists { - allErrs = append(allErrs, field.Required(dataPath.Key(api.DockerConfigKey), "")) + allErrs = append(allErrs, field.Required(dataPath.Key(core.DockerConfigKey), "")) break } // make sure that the content is well-formed json. if err := json.Unmarshal(dockercfgBytes, &map[string]interface{}{}); err != nil { - allErrs = append(allErrs, field.Invalid(dataPath.Key(api.DockerConfigKey), "", err.Error())) + allErrs = append(allErrs, field.Invalid(dataPath.Key(core.DockerConfigKey), "", err.Error())) } - case api.SecretTypeDockerConfigJson: - dockerConfigJsonBytes, exists := secret.Data[api.DockerConfigJsonKey] + case core.SecretTypeDockerConfigJson: + dockerConfigJsonBytes, exists := secret.Data[core.DockerConfigJsonKey] if !exists { - allErrs = append(allErrs, field.Required(dataPath.Key(api.DockerConfigJsonKey), "")) + allErrs = append(allErrs, field.Required(dataPath.Key(core.DockerConfigJsonKey), "")) break } // make sure that the content is well-formed json. if err := json.Unmarshal(dockerConfigJsonBytes, &map[string]interface{}{}); err != nil { - allErrs = append(allErrs, field.Invalid(dataPath.Key(api.DockerConfigJsonKey), "", err.Error())) + allErrs = append(allErrs, field.Invalid(dataPath.Key(core.DockerConfigJsonKey), "", err.Error())) } - case api.SecretTypeBasicAuth: - _, usernameFieldExists := secret.Data[api.BasicAuthUsernameKey] - _, passwordFieldExists := secret.Data[api.BasicAuthPasswordKey] + case core.SecretTypeBasicAuth: + _, usernameFieldExists := secret.Data[core.BasicAuthUsernameKey] + _, passwordFieldExists := secret.Data[core.BasicAuthPasswordKey] // username or password might be empty, but the field must be present if !usernameFieldExists && !passwordFieldExists { - allErrs = append(allErrs, field.Required(field.NewPath("data[%s]").Key(api.BasicAuthUsernameKey), "")) - allErrs = append(allErrs, field.Required(field.NewPath("data[%s]").Key(api.BasicAuthPasswordKey), "")) + allErrs = append(allErrs, field.Required(field.NewPath("data[%s]").Key(core.BasicAuthUsernameKey), "")) + allErrs = append(allErrs, field.Required(field.NewPath("data[%s]").Key(core.BasicAuthPasswordKey), "")) break } - case api.SecretTypeSSHAuth: - if len(secret.Data[api.SSHAuthPrivateKey]) == 0 { - allErrs = append(allErrs, field.Required(field.NewPath("data[%s]").Key(api.SSHAuthPrivateKey), "")) + case core.SecretTypeSSHAuth: + if len(secret.Data[core.SSHAuthPrivateKey]) == 0 { + allErrs = append(allErrs, field.Required(field.NewPath("data[%s]").Key(core.SSHAuthPrivateKey), "")) break } - case api.SecretTypeTLS: - if _, exists := secret.Data[api.TLSCertKey]; !exists { - allErrs = append(allErrs, field.Required(dataPath.Key(api.TLSCertKey), "")) + case core.SecretTypeTLS: + if _, exists := secret.Data[core.TLSCertKey]; !exists { + allErrs = append(allErrs, field.Required(dataPath.Key(core.TLSCertKey), "")) } - if _, exists := secret.Data[api.TLSPrivateKeyKey]; !exists { - allErrs = append(allErrs, field.Required(dataPath.Key(api.TLSPrivateKeyKey), "")) + if _, exists := secret.Data[core.TLSPrivateKeyKey]; !exists { + allErrs = append(allErrs, field.Required(dataPath.Key(core.TLSPrivateKeyKey), "")) } // TODO: Verify that the key matches the cert. default: @@ -3921,7 +3962,7 @@ func ValidateSecret(secret *api.Secret) field.ErrorList { } // ValidateSecretUpdate tests if required fields in the Secret are set. -func ValidateSecretUpdate(newSecret, oldSecret *api.Secret) field.ErrorList { +func ValidateSecretUpdate(newSecret, oldSecret *core.Secret) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newSecret.ObjectMeta, &oldSecret.ObjectMeta, field.NewPath("metadata")) if len(newSecret.Type) == 0 { @@ -3940,7 +3981,7 @@ func ValidateSecretUpdate(newSecret, oldSecret *api.Secret) field.ErrorList { var ValidateConfigMapName = NameIsDNSSubdomain // ValidateConfigMap tests whether required fields in the ConfigMap are set. -func ValidateConfigMap(cfg *api.ConfigMap) field.ErrorList { +func ValidateConfigMap(cfg *core.ConfigMap) field.ErrorList { allErrs := field.ErrorList{} allErrs = append(allErrs, ValidateObjectMeta(&cfg.ObjectMeta, true, ValidateConfigMapName, field.NewPath("metadata"))...) @@ -3952,15 +3993,15 @@ func ValidateConfigMap(cfg *api.ConfigMap) field.ErrorList { } totalSize += len(value) } - if totalSize > api.MaxSecretSize { - allErrs = append(allErrs, field.TooLong(field.NewPath("data"), "", api.MaxSecretSize)) + if totalSize > core.MaxSecretSize { + allErrs = append(allErrs, field.TooLong(field.NewPath("data"), "", core.MaxSecretSize)) } return allErrs } // ValidateConfigMapUpdate tests if required fields in the ConfigMap are set. -func ValidateConfigMapUpdate(newCfg, oldCfg *api.ConfigMap) field.ErrorList { +func ValidateConfigMapUpdate(newCfg, oldCfg *core.ConfigMap) field.ErrorList { allErrs := field.ErrorList{} allErrs = append(allErrs, ValidateObjectMetaUpdate(&newCfg.ObjectMeta, &oldCfg.ObjectMeta, field.NewPath("metadata"))...) allErrs = append(allErrs, ValidateConfigMap(newCfg)...) @@ -3976,7 +4017,7 @@ func validateBasicResource(quantity resource.Quantity, fldPath *field.Path) fiel } // Validates resource requirement spec. -func ValidateResourceRequirements(requirements *api.ResourceRequirements, fldPath *field.Path) field.ErrorList { +func ValidateResourceRequirements(requirements *core.ResourceRequirements, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} limPath := fldPath.Child("limits") reqPath := fldPath.Child("requests") @@ -3988,7 +4029,7 @@ func ValidateResourceRequirements(requirements *api.ResourceRequirements, fldPat // Validate resource quantity. allErrs = append(allErrs, ValidateResourceQuantityValue(string(resourceName), quantity, fldPath)...) - if resourceName == api.ResourceEphemeralStorage && !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) { + if resourceName == core.ResourceEphemeralStorage && !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) { allErrs = append(allErrs, field.Forbidden(limPath, "ResourceEphemeralStorage field disabled by feature-gate for ResourceRequirements")) } if helper.IsHugePageResourceName(resourceName) && !utilfeature.DefaultFeatureGate.Enabled(features.HugePages) { @@ -4008,12 +4049,12 @@ func ValidateResourceRequirements(requirements *api.ResourceRequirements, fldPat if exists { // For GPUs, not only requests can't exceed limits, they also can't be lower, i.e. must be equal. if quantity.Cmp(limitQuantity) != 0 && !helper.IsOvercommitAllowed(resourceName) { - allErrs = append(allErrs, field.Invalid(reqPath, quantity.String(), fmt.Sprintf("must be equal to %s limit", api.ResourceNvidiaGPU))) + allErrs = append(allErrs, field.Invalid(reqPath, quantity.String(), fmt.Sprintf("must be equal to %s limit", resourceName))) } else if quantity.Cmp(limitQuantity) > 0 { allErrs = append(allErrs, field.Invalid(reqPath, quantity.String(), fmt.Sprintf("must be less than or equal to %s limit", resourceName))) } - } else if resourceName == api.ResourceNvidiaGPU { - allErrs = append(allErrs, field.Invalid(reqPath, quantity.String(), fmt.Sprintf("must be equal to %s request", api.ResourceNvidiaGPU))) + } else if resourceName == core.ResourceNvidiaGPU { + allErrs = append(allErrs, field.Invalid(reqPath, quantity.String(), fmt.Sprintf("must be equal to %s request", core.ResourceNvidiaGPU))) } } @@ -4021,7 +4062,7 @@ func ValidateResourceRequirements(requirements *api.ResourceRequirements, fldPat } // validateResourceQuotaScopes ensures that each enumerated hard resource constraint is valid for set of scopes -func validateResourceQuotaScopes(resourceQuotaSpec *api.ResourceQuotaSpec, fld *field.Path) field.ErrorList { +func validateResourceQuotaScopes(resourceQuotaSpec *core.ResourceQuotaSpec, fld *field.Path) field.ErrorList { allErrs := field.ErrorList{} if len(resourceQuotaSpec.Scopes) == 0 { return allErrs @@ -4044,8 +4085,8 @@ func validateResourceQuotaScopes(resourceQuotaSpec *api.ResourceQuotaSpec, fld * scopeSet.Insert(string(scope)) } invalidScopePairs := []sets.String{ - sets.NewString(string(api.ResourceQuotaScopeBestEffort), string(api.ResourceQuotaScopeNotBestEffort)), - sets.NewString(string(api.ResourceQuotaScopeTerminating), string(api.ResourceQuotaScopeNotTerminating)), + sets.NewString(string(core.ResourceQuotaScopeBestEffort), string(core.ResourceQuotaScopeNotBestEffort)), + sets.NewString(string(core.ResourceQuotaScopeTerminating), string(core.ResourceQuotaScopeNotTerminating)), } for _, invalidScopePair := range invalidScopePairs { if scopeSet.HasAll(invalidScopePair.List()...) { @@ -4056,7 +4097,7 @@ func validateResourceQuotaScopes(resourceQuotaSpec *api.ResourceQuotaSpec, fld * } // ValidateResourceQuota tests if required fields in the ResourceQuota are set. -func ValidateResourceQuota(resourceQuota *api.ResourceQuota) field.ErrorList { +func ValidateResourceQuota(resourceQuota *core.ResourceQuota) field.ErrorList { allErrs := ValidateObjectMeta(&resourceQuota.ObjectMeta, true, ValidateResourceQuotaName, field.NewPath("metadata")) allErrs = append(allErrs, ValidateResourceQuotaSpec(&resourceQuota.Spec, field.NewPath("spec"))...) @@ -4065,7 +4106,7 @@ func ValidateResourceQuota(resourceQuota *api.ResourceQuota) field.ErrorList { return allErrs } -func ValidateResourceQuotaStatus(status *api.ResourceQuotaStatus, fld *field.Path) field.ErrorList { +func ValidateResourceQuotaStatus(status *core.ResourceQuotaStatus, fld *field.Path) field.ErrorList { allErrs := field.ErrorList{} fldPath := fld.Child("hard") @@ -4084,7 +4125,7 @@ func ValidateResourceQuotaStatus(status *api.ResourceQuotaStatus, fld *field.Pat return allErrs } -func ValidateResourceQuotaSpec(resourceQuotaSpec *api.ResourceQuotaSpec, fld *field.Path) field.ErrorList { +func ValidateResourceQuotaSpec(resourceQuotaSpec *core.ResourceQuotaSpec, fld *field.Path) field.ErrorList { allErrs := field.ErrorList{} fldPath := fld.Child("hard") @@ -4112,7 +4153,7 @@ func ValidateResourceQuantityValue(resource string, value resource.Quantity, fld // ValidateResourceQuotaUpdate tests to see if the update is legal for an end user to make. // newResourceQuota is updated with fields that cannot be changed. -func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) field.ErrorList { +func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *core.ResourceQuota) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newResourceQuota.ObjectMeta, &oldResourceQuota.ObjectMeta, field.NewPath("metadata")) allErrs = append(allErrs, ValidateResourceQuotaSpec(&newResourceQuota.Spec, field.NewPath("spec"))...) @@ -4136,7 +4177,7 @@ func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *api.Resourc // ValidateResourceQuotaStatusUpdate tests to see if the status update is legal for an end user to make. // newResourceQuota is updated with fields that cannot be changed. -func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *api.ResourceQuota) field.ErrorList { +func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *core.ResourceQuota) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newResourceQuota.ObjectMeta, &oldResourceQuota.ObjectMeta, field.NewPath("metadata")) if len(newResourceQuota.ResourceVersion) == 0 { allErrs = append(allErrs, field.Required(field.NewPath("resourceVersion"), "")) @@ -4158,7 +4199,7 @@ func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *api.R } // ValidateNamespace tests if required fields are set. -func ValidateNamespace(namespace *api.Namespace) field.ErrorList { +func ValidateNamespace(namespace *core.Namespace) field.ErrorList { allErrs := ValidateObjectMeta(&namespace.ObjectMeta, false, ValidateNamespaceName, field.NewPath("metadata")) for i := range namespace.Spec.Finalizers { allErrs = append(allErrs, validateFinalizerName(string(namespace.Spec.Finalizers[i]), field.NewPath("spec", "finalizers"))...) @@ -4168,7 +4209,7 @@ func ValidateNamespace(namespace *api.Namespace) field.ErrorList { // Validate finalizer names func validateFinalizerName(stringValue string, fldPath *field.Path) field.ErrorList { - allErrs := genericvalidation.ValidateFinalizerName(stringValue, fldPath) + allErrs := apimachineryvalidation.ValidateFinalizerName(stringValue, fldPath) for _, err := range validateKubeFinalizerName(stringValue, fldPath) { allErrs = append(allErrs, err) } @@ -4190,7 +4231,7 @@ func validateKubeFinalizerName(stringValue string, fldPath *field.Path) field.Er // ValidateNamespaceUpdate tests to make sure a namespace update can be applied. // newNamespace is updated with fields that cannot be changed -func ValidateNamespaceUpdate(newNamespace *api.Namespace, oldNamespace *api.Namespace) field.ErrorList { +func ValidateNamespaceUpdate(newNamespace *core.Namespace, oldNamespace *core.Namespace) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata")) newNamespace.Spec.Finalizers = oldNamespace.Spec.Finalizers newNamespace.Status = oldNamespace.Status @@ -4199,15 +4240,15 @@ func ValidateNamespaceUpdate(newNamespace *api.Namespace, oldNamespace *api.Name // ValidateNamespaceStatusUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields // that cannot be changed. -func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *api.Namespace) field.ErrorList { +func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *core.Namespace) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata")) newNamespace.Spec = oldNamespace.Spec if newNamespace.DeletionTimestamp.IsZero() { - if newNamespace.Status.Phase != api.NamespaceActive { + if newNamespace.Status.Phase != core.NamespaceActive { allErrs = append(allErrs, field.Invalid(field.NewPath("status", "Phase"), newNamespace.Status.Phase, "may only be 'Active' if `deletionTimestamp` is empty")) } } else { - if newNamespace.Status.Phase != api.NamespaceTerminating { + if newNamespace.Status.Phase != core.NamespaceTerminating { allErrs = append(allErrs, field.Invalid(field.NewPath("status", "Phase"), newNamespace.Status.Phase, "may only be 'Terminating' if `deletionTimestamp` is not empty")) } } @@ -4216,7 +4257,7 @@ func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *api.Namespace) fi // ValidateNamespaceFinalizeUpdate tests to see if the update is legal for an end user to make. // newNamespace is updated with fields that cannot be changed. -func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *api.Namespace) field.ErrorList { +func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *core.Namespace) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata")) fldPath := field.NewPath("spec", "finalizers") @@ -4229,7 +4270,7 @@ func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *api.Namespace) } // Construct lookup map of old subset IPs to NodeNames. -func updateEpAddrToNodeNameMap(ipToNodeName map[string]string, addresses []api.EndpointAddress) { +func updateEpAddrToNodeNameMap(ipToNodeName map[string]string, addresses []core.EndpointAddress) { for n := range addresses { if addresses[n].NodeName == nil { continue @@ -4239,7 +4280,7 @@ func updateEpAddrToNodeNameMap(ipToNodeName map[string]string, addresses []api.E } // Build a map across all subsets of IP -> NodeName -func buildEndpointAddressNodeNameMap(subsets []api.EndpointSubset) map[string]string { +func buildEndpointAddressNodeNameMap(subsets []core.EndpointSubset) map[string]string { ipToNodeName := make(map[string]string) for i := range subsets { updateEpAddrToNodeNameMap(ipToNodeName, subsets[i].Addresses) @@ -4248,7 +4289,7 @@ func buildEndpointAddressNodeNameMap(subsets []api.EndpointSubset) map[string]st return ipToNodeName } -func validateEpAddrNodeNameTransition(addr *api.EndpointAddress, ipToNodeName map[string]string, fldPath *field.Path) field.ErrorList { +func validateEpAddrNodeNameTransition(addr *core.EndpointAddress, ipToNodeName map[string]string, fldPath *field.Path) field.ErrorList { errList := field.ErrorList{} existingNodeName, found := ipToNodeName[addr.IP] if !found { @@ -4262,14 +4303,14 @@ func validateEpAddrNodeNameTransition(addr *api.EndpointAddress, ipToNodeName ma } // ValidateEndpoints tests if required fields are set. -func ValidateEndpoints(endpoints *api.Endpoints) field.ErrorList { +func ValidateEndpoints(endpoints *core.Endpoints) field.ErrorList { allErrs := ValidateObjectMeta(&endpoints.ObjectMeta, true, ValidateEndpointsName, field.NewPath("metadata")) allErrs = append(allErrs, ValidateEndpointsSpecificAnnotations(endpoints.Annotations, field.NewPath("annotations"))...) - allErrs = append(allErrs, validateEndpointSubsets(endpoints.Subsets, []api.EndpointSubset{}, field.NewPath("subsets"))...) + allErrs = append(allErrs, validateEndpointSubsets(endpoints.Subsets, []core.EndpointSubset{}, field.NewPath("subsets"))...) return allErrs } -func validateEndpointSubsets(subsets []api.EndpointSubset, oldSubsets []api.EndpointSubset, fldPath *field.Path) field.ErrorList { +func validateEndpointSubsets(subsets []core.EndpointSubset, oldSubsets []core.EndpointSubset, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} ipToNodeName := buildEndpointAddressNodeNameMap(oldSubsets) for i := range subsets { @@ -4295,7 +4336,7 @@ func validateEndpointSubsets(subsets []api.EndpointSubset, oldSubsets []api.Endp return allErrs } -func validateEndpointAddress(address *api.EndpointAddress, fldPath *field.Path, ipToNodeName map[string]string) field.ErrorList { +func validateEndpointAddress(address *core.EndpointAddress, fldPath *field.Path, ipToNodeName map[string]string) field.ErrorList { allErrs := field.ErrorList{} for _, msg := range validation.IsValidIP(address.IP) { allErrs = append(allErrs, field.Invalid(fldPath.Child("ip"), address.IP, msg)) @@ -4343,7 +4384,7 @@ func validateNonSpecialIP(ipAddress string, fldPath *field.Path) field.ErrorList return allErrs } -func validateEndpointPort(port *api.EndpointPort, requireName bool, fldPath *field.Path) field.ErrorList { +func validateEndpointPort(port *core.EndpointPort, requireName bool, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if requireName && len(port.Name) == 0 { allErrs = append(allErrs, field.Required(fldPath.Child("name"), "")) @@ -4362,7 +4403,7 @@ func validateEndpointPort(port *api.EndpointPort, requireName bool, fldPath *fie } // ValidateEndpointsUpdate tests to make sure an endpoints update can be applied. -func ValidateEndpointsUpdate(newEndpoints, oldEndpoints *api.Endpoints) field.ErrorList { +func ValidateEndpointsUpdate(newEndpoints, oldEndpoints *core.Endpoints) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newEndpoints.ObjectMeta, &oldEndpoints.ObjectMeta, field.NewPath("metadata")) allErrs = append(allErrs, validateEndpointSubsets(newEndpoints.Subsets, oldEndpoints.Subsets, field.NewPath("subsets"))...) allErrs = append(allErrs, ValidateEndpointsSpecificAnnotations(newEndpoints.Annotations, field.NewPath("annotations"))...) @@ -4370,9 +4411,9 @@ func ValidateEndpointsUpdate(newEndpoints, oldEndpoints *api.Endpoints) field.Er } // ValidateSecurityContext ensure the security context contains valid settings -func ValidateSecurityContext(sc *api.SecurityContext, fldPath *field.Path) field.ErrorList { +func ValidateSecurityContext(sc *core.SecurityContext, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - //this should only be true for testing since SecurityContext is defaulted by the api + //this should only be true for testing since SecurityContext is defaulted by the core if sc == nil { return allErrs } @@ -4406,7 +4447,7 @@ func ValidateSecurityContext(sc *api.SecurityContext, fldPath *field.Path) field return allErrs } -func ValidatePodLogOptions(opts *api.PodLogOptions) field.ErrorList { +func ValidatePodLogOptions(opts *core.PodLogOptions) field.ErrorList { allErrs := field.ErrorList{} if opts.TailLines != nil && *opts.TailLines < 0 { allErrs = append(allErrs, field.Invalid(field.NewPath("tailLines"), *opts.TailLines, isNegativeErrorMsg)) @@ -4426,7 +4467,7 @@ func ValidatePodLogOptions(opts *api.PodLogOptions) field.ErrorList { } // ValidateLoadBalancerStatus validates required fields on a LoadBalancerStatus -func ValidateLoadBalancerStatus(status *api.LoadBalancerStatus, fldPath *field.Path) field.ErrorList { +func ValidateLoadBalancerStatus(status *core.LoadBalancerStatus, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for i, ingress := range status.Ingress { idxPath := fldPath.Child("ingress").Index(i) @@ -4447,7 +4488,7 @@ func ValidateLoadBalancerStatus(status *api.LoadBalancerStatus, fldPath *field.P return allErrs } -func sysctlIntersection(a []api.Sysctl, b []api.Sysctl) []string { +func sysctlIntersection(a []core.Sysctl, b []core.Sysctl) []string { lookup := make(map[string]struct{}, len(a)) result := []string{} for i := range a { @@ -4467,7 +4508,7 @@ func validateStorageNodeAffinityAnnotation(annotations map[string]string, fldPat na, err := helper.GetStorageNodeAffinityFromAnnotation(annotations) if err != nil { - allErrs = append(allErrs, field.Invalid(fldPath, api.AlphaStorageNodeAffinityAnnotation, err.Error())) + allErrs = append(allErrs, field.Invalid(fldPath, core.AlphaStorageNodeAffinityAnnotation, err.Error())) return false, allErrs } if na == nil { @@ -4489,3 +4530,12 @@ func validateStorageNodeAffinityAnnotation(annotations map[string]string, fldPat } return policySpecified, allErrs } + +// ValidateCIDR validates whether a CIDR matches the conventions expected by net.ParseCIDR +func ValidateCIDR(cidr string) (*net.IPNet, error) { + _, net, err := net.ParseCIDR(cidr) + if err != nil { + return nil, err + } + return net, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/api/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation_test.go similarity index 60% rename from vendor/k8s.io/kubernetes/pkg/api/validation/validation_test.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation_test.go index bb34926bb..3a6121715 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/validation_test.go @@ -30,9 +30,11 @@ import ( "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/api/testapi" + "k8s.io/kubernetes/pkg/apis/core" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/security/apparmor" ) @@ -43,25 +45,25 @@ const ( envVarNameErrMsg = "a valid environment variable name must consist of" ) -func newHostPathType(pathType string) *api.HostPathType { - hostPathType := new(api.HostPathType) - *hostPathType = api.HostPathType(pathType) +func newHostPathType(pathType string) *core.HostPathType { + hostPathType := new(core.HostPathType) + *hostPathType = core.HostPathType(pathType) return hostPathType } -func testVolume(name string, namespace string, spec api.PersistentVolumeSpec) *api.PersistentVolume { +func testVolume(name string, namespace string, spec core.PersistentVolumeSpec) *core.PersistentVolume { objMeta := metav1.ObjectMeta{Name: name} if namespace != "" { objMeta.Namespace = namespace } - return &api.PersistentVolume{ + return &core.PersistentVolume{ ObjectMeta: objMeta, Spec: spec, } } -func testVolumeWithNodeAffinity(t *testing.T, name string, namespace string, affinity *api.NodeAffinity, spec api.PersistentVolumeSpec) *api.PersistentVolume { +func testVolumeWithNodeAffinity(t *testing.T, name string, namespace string, affinity *core.NodeAffinity, spec core.PersistentVolumeSpec) *core.PersistentVolume { objMeta := metav1.ObjectMeta{Name: name} if namespace != "" { objMeta.Namespace = namespace @@ -73,7 +75,7 @@ func testVolumeWithNodeAffinity(t *testing.T, name string, namespace string, aff t.Fatalf("Failed to get node affinity annotation: %v", err) } - return &api.PersistentVolume{ + return &core.PersistentVolume{ ObjectMeta: objMeta, Spec: spec, } @@ -82,19 +84,64 @@ func testVolumeWithNodeAffinity(t *testing.T, name string, namespace string, aff func TestValidatePersistentVolumes(t *testing.T) { scenarios := map[string]struct { isExpectedFailure bool - volume *api.PersistentVolume + volume *core.PersistentVolume }{ "good-volume": { isExpectedFailure: false, - volume: testVolume("foo", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, + }), + }, + "good-volume-with-capacity-unit": { + isExpectedFailure: false, + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10Gi"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, + }), + }, + "good-volume-without-capacity-unit": { + isExpectedFailure: false, + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, + }), + }, + "good-volume-with-storage-class": { + isExpectedFailure: false, + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), }, }, StorageClassName: "valid", @@ -102,46 +149,46 @@ func TestValidatePersistentVolumes(t *testing.T) { }, "good-volume-with-retain-policy": { isExpectedFailure: false, - volume: testVolume("foo", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, - PersistentVolumeReclaimPolicy: api.PersistentVolumeReclaimRetain, + PersistentVolumeReclaimPolicy: core.PersistentVolumeReclaimRetain, }), }, "invalid-accessmode": { isExpectedFailure: true, - volume: testVolume("foo", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{"fakemode"}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{"fakemode"}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, }), }, "invalid-reclaimpolicy": { isExpectedFailure: true, - volume: testVolume("foo", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, PersistentVolumeReclaimPolicy: "fakeReclaimPolicy", @@ -149,119 +196,157 @@ func TestValidatePersistentVolumes(t *testing.T) { }, "unexpected-namespace": { isExpectedFailure: true, - volume: testVolume("foo", "unexpected-namespace", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("foo", "unexpected-namespace", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, }), }, + "missing-volume-source": { + isExpectedFailure: true, + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + }), + }, "bad-name": { isExpectedFailure: true, - volume: testVolume("123*Bad(Name", "unexpected-namespace", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("123*Bad(Name", "unexpected-namespace", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, }), }, "missing-name": { isExpectedFailure: true, - volume: testVolume("", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, }), }, "missing-capacity": { isExpectedFailure: true, - volume: testVolume("foo", "", api.PersistentVolumeSpec{}), + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, + }), + }, + "bad-volume-zero-capacity": { + isExpectedFailure: true, + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("0"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, + }), }, "missing-accessmodes": { isExpectedFailure: true, - volume: testVolume("goodname", "missing-accessmodes", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("goodname", "missing-accessmodes", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, }), }, "too-many-sources": { isExpectedFailure: true, - volume: testVolume("", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("5G"), + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("5G"), }, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, - GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{PDName: "foo", FSType: "ext4"}, + GCEPersistentDisk: &core.GCEPersistentDiskVolumeSource{PDName: "foo", FSType: "ext4"}, }, }), }, "host mount of / with recycle reclaim policy": { isExpectedFailure: true, - volume: testVolume("bad-recycle-do-not-want", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("bad-recycle-do-not-want", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, - PersistentVolumeReclaimPolicy: api.PersistentVolumeReclaimRecycle, + PersistentVolumeReclaimPolicy: core.PersistentVolumeReclaimRecycle, }), }, "host mount of / with recycle reclaim policy 2": { isExpectedFailure: true, - volume: testVolume("bad-recycle-do-not-want", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("bad-recycle-do-not-want", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/a/..", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, - PersistentVolumeReclaimPolicy: api.PersistentVolumeReclaimRecycle, + PersistentVolumeReclaimPolicy: core.PersistentVolumeReclaimRecycle, }), }, "invalid-storage-class-name": { isExpectedFailure: true, - volume: testVolume("invalid-storage-class-name", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("invalid-storage-class-name", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, StorageClassName: "-invalid-", @@ -275,14 +360,14 @@ func TestValidatePersistentVolumes(t *testing.T) { t, "valid-local-volume", "", - &api.NodeAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: &api.NodeSelector{ - NodeSelectorTerms: []api.NodeSelectorTerm{ + &core.NodeAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: &core.NodeSelector{ + NodeSelectorTerms: []core.NodeSelectorTerm{ { - MatchExpressions: []api.NodeSelectorRequirement{ + MatchExpressions: []core.NodeSelectorRequirement{ { Key: "test-label-key", - Operator: api.NodeSelectorOpIn, + Operator: core.NodeSelectorOpIn, Values: []string{"test-label-value"}, }, }, @@ -290,13 +375,13 @@ func TestValidatePersistentVolumes(t *testing.T) { }, }, }, - api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - Local: &api.LocalVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + Local: &core.LocalVolumeSource{ Path: "/foo", }, }, @@ -305,15 +390,15 @@ func TestValidatePersistentVolumes(t *testing.T) { }, "bad-hostpath-volume-backsteps": { isExpectedFailure: true, - volume: testVolume("foo", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - HostPath: &api.HostPathVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/foo/..", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, StorageClassName: "backstep-hostpath", @@ -321,13 +406,13 @@ func TestValidatePersistentVolumes(t *testing.T) { }, "bad-local-volume-backsteps": { isExpectedFailure: true, - volume: testVolume("foo", "", api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - Local: &api.LocalVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + Local: &core.LocalVolumeSource{ Path: "/foo/..", }, }, @@ -348,10 +433,71 @@ func TestValidatePersistentVolumes(t *testing.T) { } +func TestValidatePersistentVolumeSourceUpdate(t *testing.T) { + validVolume := testVolume("foo", "", api.PersistentVolumeSpec{ + Capacity: api.ResourceList{ + api.ResourceName(api.ResourceStorage): resource.MustParse("1G"), + }, + AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, + PersistentVolumeSource: api.PersistentVolumeSource{ + HostPath: &api.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(api.HostPathDirectory)), + }, + }, + StorageClassName: "valid", + }) + validPvSourceNoUpdate := validVolume.DeepCopy() + invalidPvSourceUpdateType := validVolume.DeepCopy() + invalidPvSourceUpdateType.Spec.PersistentVolumeSource = api.PersistentVolumeSource{ + FlexVolume: &api.FlexVolumeSource{ + Driver: "kubernetes.io/blue", + FSType: "ext4", + }, + } + invalidPvSourceUpdateDeep := validVolume.DeepCopy() + invalidPvSourceUpdateDeep.Spec.PersistentVolumeSource = api.PersistentVolumeSource{ + HostPath: &api.HostPathVolumeSource{ + Path: "/updated", + Type: newHostPathType(string(api.HostPathDirectory)), + }, + } + scenarios := map[string]struct { + isExpectedFailure bool + oldVolume *api.PersistentVolume + newVolume *api.PersistentVolume + }{ + "condition-no-update": { + isExpectedFailure: false, + oldVolume: validVolume, + newVolume: validPvSourceNoUpdate, + }, + "condition-update-source-type": { + isExpectedFailure: true, + oldVolume: validVolume, + newVolume: invalidPvSourceUpdateType, + }, + "condition-update-source-deep": { + isExpectedFailure: true, + oldVolume: validVolume, + newVolume: invalidPvSourceUpdateDeep, + }, + } + for name, scenario := range scenarios { + errs := ValidatePersistentVolumeUpdate(scenario.newVolume, scenario.oldVolume) + if len(errs) == 0 && scenario.isExpectedFailure { + t.Errorf("Unexpected success for scenario: %s", name) + } + if len(errs) > 0 && !scenario.isExpectedFailure { + t.Errorf("Unexpected failure for scenario: %s - %+v", name, errs) + } + } +} + func TestValidateLocalVolumes(t *testing.T) { scenarios := map[string]struct { isExpectedFailure bool - volume *api.PersistentVolume + volume *core.PersistentVolume }{ "valid local volume": { isExpectedFailure: false, @@ -359,14 +505,14 @@ func TestValidateLocalVolumes(t *testing.T) { t, "valid-local-volume", "", - &api.NodeAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: &api.NodeSelector{ - NodeSelectorTerms: []api.NodeSelectorTerm{ + &core.NodeAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: &core.NodeSelector{ + NodeSelectorTerms: []core.NodeSelectorTerm{ { - MatchExpressions: []api.NodeSelectorRequirement{ + MatchExpressions: []core.NodeSelectorRequirement{ { Key: "test-label-key", - Operator: api.NodeSelectorOpIn, + Operator: core.NodeSelectorOpIn, Values: []string{"test-label-value"}, }, }, @@ -374,13 +520,13 @@ func TestValidateLocalVolumes(t *testing.T) { }, }, }, - api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - Local: &api.LocalVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + Local: &core.LocalVolumeSource{ Path: "/foo", }, }, @@ -392,13 +538,13 @@ func TestValidateLocalVolumes(t *testing.T) { volume: testVolume( "invalid-local-volume-nil-annotations", "", - api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - Local: &api.LocalVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + Local: &core.LocalVolumeSource{ Path: "/foo", }, }, @@ -411,14 +557,14 @@ func TestValidateLocalVolumes(t *testing.T) { t, "invalid-local-volume-empty-affinity", "", - &api.NodeAffinity{}, - api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), - }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - Local: &api.LocalVolumeSource{ + &core.NodeAffinity{}, + core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + Local: &core.LocalVolumeSource{ Path: "/foo", }, }, @@ -431,28 +577,28 @@ func TestValidateLocalVolumes(t *testing.T) { t, "invalid-local-volume-preferred-affinity", "", - &api.NodeAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: &api.NodeSelector{ - NodeSelectorTerms: []api.NodeSelectorTerm{ + &core.NodeAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: &core.NodeSelector{ + NodeSelectorTerms: []core.NodeSelectorTerm{ { - MatchExpressions: []api.NodeSelectorRequirement{ + MatchExpressions: []core.NodeSelectorRequirement{ { Key: "test-label-key", - Operator: api.NodeSelectorOpIn, + Operator: core.NodeSelectorOpIn, Values: []string{"test-label-value"}, }, }, }, }, }, - PreferredDuringSchedulingIgnoredDuringExecution: []api.PreferredSchedulingTerm{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.PreferredSchedulingTerm{ { Weight: 10, - Preference: api.NodeSelectorTerm{ - MatchExpressions: []api.NodeSelectorRequirement{ + Preference: core.NodeSelectorTerm{ + MatchExpressions: []core.NodeSelectorRequirement{ { Key: "test-label-key", - Operator: api.NodeSelectorOpIn, + Operator: core.NodeSelectorOpIn, Values: []string{"test-label-value"}, }, }, @@ -460,13 +606,13 @@ func TestValidateLocalVolumes(t *testing.T) { }, }, }, - api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - Local: &api.LocalVolumeSource{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + Local: &core.LocalVolumeSource{ Path: "/foo", }, }, @@ -479,14 +625,14 @@ func TestValidateLocalVolumes(t *testing.T) { t, "invalid-local-volume-empty-path", "", - &api.NodeAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: &api.NodeSelector{ - NodeSelectorTerms: []api.NodeSelectorTerm{ + &core.NodeAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: &core.NodeSelector{ + NodeSelectorTerms: []core.NodeSelectorTerm{ { - MatchExpressions: []api.NodeSelectorRequirement{ + MatchExpressions: []core.NodeSelectorRequirement{ { Key: "test-label-key", - Operator: api.NodeSelectorOpIn, + Operator: core.NodeSelectorOpIn, Values: []string{"test-label-value"}, }, }, @@ -494,13 +640,13 @@ func TestValidateLocalVolumes(t *testing.T) { }, }, }, - api.PersistentVolumeSpec{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, - AccessModes: []api.PersistentVolumeAccessMode{api.ReadWriteOnce}, - PersistentVolumeSource: api.PersistentVolumeSource{ - Local: &api.LocalVolumeSource{}, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + Local: &core.LocalVolumeSource{}, }, StorageClassName: "test-storage-class", }), @@ -523,8 +669,8 @@ func TestValidateLocalVolumes(t *testing.T) { } } -func testVolumeClaim(name string, namespace string, spec api.PersistentVolumeClaimSpec) *api.PersistentVolumeClaim { - return &api.PersistentVolumeClaim{ +func testVolumeClaim(name string, namespace string, spec core.PersistentVolumeClaimSpec) *core.PersistentVolumeClaim { + return &core.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace}, Spec: spec, } @@ -532,21 +678,21 @@ func testVolumeClaim(name string, namespace string, spec api.PersistentVolumeCla func testVolumeClaimWithStatus( name, namespace string, - spec api.PersistentVolumeClaimSpec, - status api.PersistentVolumeClaimStatus) *api.PersistentVolumeClaim { - return &api.PersistentVolumeClaim{ + spec core.PersistentVolumeClaimSpec, + status core.PersistentVolumeClaimStatus) *core.PersistentVolumeClaim { + return &core.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace}, Spec: spec, Status: status, } } -func testVolumeClaimStorageClass(name string, namespace string, annval string, spec api.PersistentVolumeClaimSpec) *api.PersistentVolumeClaim { +func testVolumeClaimStorageClass(name string, namespace string, annval string, spec core.PersistentVolumeClaimSpec) *core.PersistentVolumeClaim { annotations := map[string]string{ v1.BetaStorageClassAnnotation: annval, } - return &api.PersistentVolumeClaim{ + return &core.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, @@ -556,12 +702,12 @@ func testVolumeClaimStorageClass(name string, namespace string, annval string, s } } -func testVolumeClaimAnnotation(name string, namespace string, ann string, annval string, spec api.PersistentVolumeClaimSpec) *api.PersistentVolumeClaim { +func testVolumeClaimAnnotation(name string, namespace string, ann string, annval string, spec core.PersistentVolumeClaimSpec) *core.PersistentVolumeClaim { annotations := map[string]string{ ann: annval, } - return &api.PersistentVolumeClaim{ + return &core.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, @@ -576,11 +722,11 @@ func TestValidatePersistentVolumeClaim(t *testing.T) { validClassName := "valid" scenarios := map[string]struct { isExpectedFailure bool - claim *api.PersistentVolumeClaim + claim *core.PersistentVolumeClaim }{ "good-claim": { isExpectedFailure: false, - claim: testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ Selector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -589,13 +735,36 @@ func TestValidatePersistentVolumeClaim(t *testing.T) { }, }, }, - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), + }, + }, + StorageClassName: &validClassName, + }), + }, + "invalid-claim-zero-capacity": { + isExpectedFailure: true, + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + Selector: &metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{ + { + Key: "key2", + Operator: "Exists", + }, + }, + }, + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, + }, + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("0G"), }, }, StorageClassName: &validClassName, @@ -603,7 +772,7 @@ func TestValidatePersistentVolumeClaim(t *testing.T) { }, "invalid-label-selector": { isExpectedFailure: true, - claim: testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ Selector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -613,76 +782,76 @@ func TestValidatePersistentVolumeClaim(t *testing.T) { }, }, }, - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, }), }, "invalid-accessmode": { isExpectedFailure: true, - claim: testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{"fakemode"}, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{"fakemode"}, + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, }), }, "missing-namespace": { isExpectedFailure: true, - claim: testVolumeClaim("foo", "", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + claim: testVolumeClaim("foo", "", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, }), }, "no-access-modes": { isExpectedFailure: true, - claim: testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, }), }, "no-resource-requests": { isExpectedFailure: true, - claim: testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, }, }), }, "invalid-resource-requests": { isExpectedFailure: true, - claim: testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), }, }, }), }, "negative-storage-request": { isExpectedFailure: true, - claim: testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ Selector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -691,20 +860,42 @@ func TestValidatePersistentVolumeClaim(t *testing.T) { }, }, }, - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("-10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("-10G"), + }, + }, + }), + }, + "zero-storage-request": { + isExpectedFailure: true, + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + Selector: &metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{ + { + Key: "key2", + Operator: "Exists", + }, + }, + }, + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, + }, + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(api.ResourceStorage): resource.MustParse("0G"), }, }, }), }, "invalid-storage-class-name": { isExpectedFailure: true, - claim: testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ + claim: testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ Selector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -713,13 +904,13 @@ func TestValidatePersistentVolumeClaim(t *testing.T) { }, }, }, - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, StorageClassName: &invalidClassName, @@ -739,155 +930,155 @@ func TestValidatePersistentVolumeClaim(t *testing.T) { } func TestValidatePersistentVolumeClaimUpdate(t *testing.T) { - validClaim := testVolumeClaimWithStatus("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + validClaim := testVolumeClaimWithStatus("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, - }, api.PersistentVolumeClaimStatus{ - Phase: api.ClaimBound, + }, core.PersistentVolumeClaimStatus{ + Phase: core.ClaimBound, }) - validClaimStorageClass := testVolumeClaimStorageClass("foo", "ns", "fast", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadOnlyMany, + validClaimStorageClass := testVolumeClaimStorageClass("foo", "ns", "fast", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, }) - validClaimAnnotation := testVolumeClaimAnnotation("foo", "ns", "description", "foo-description", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadOnlyMany, + validClaimAnnotation := testVolumeClaimAnnotation("foo", "ns", "description", "foo-description", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, }) - validUpdateClaim := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + validUpdateClaim := testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, VolumeName: "volume", }) - invalidUpdateClaimResources := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + invalidUpdateClaimResources := testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("20G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("20G"), }, }, VolumeName: "volume", }) - invalidUpdateClaimAccessModes := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, + invalidUpdateClaimAccessModes := testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, VolumeName: "volume", }) - invalidUpdateClaimStorageClass := testVolumeClaimStorageClass("foo", "ns", "fast2", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadOnlyMany, + invalidUpdateClaimStorageClass := testVolumeClaimStorageClass("foo", "ns", "fast2", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, VolumeName: "volume", }) - validUpdateClaimMutableAnnotation := testVolumeClaimAnnotation("foo", "ns", "description", "updated-or-added-foo-description", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadOnlyMany, + validUpdateClaimMutableAnnotation := testVolumeClaimAnnotation("foo", "ns", "description", "updated-or-added-foo-description", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, VolumeName: "volume", }) - validAddClaimAnnotation := testVolumeClaimAnnotation("foo", "ns", "description", "updated-or-added-foo-description", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + validAddClaimAnnotation := testVolumeClaimAnnotation("foo", "ns", "description", "updated-or-added-foo-description", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, VolumeName: "volume", }) - validSizeUpdate := testVolumeClaimWithStatus("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + validSizeUpdate := testVolumeClaimWithStatus("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("15G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("15G"), }, }, - }, api.PersistentVolumeClaimStatus{ - Phase: api.ClaimBound, + }, core.PersistentVolumeClaimStatus{ + Phase: core.ClaimBound, }) - invalidSizeUpdate := testVolumeClaimWithStatus("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + invalidSizeUpdate := testVolumeClaimWithStatus("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("5G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("5G"), }, }, - }, api.PersistentVolumeClaimStatus{ - Phase: api.ClaimBound, + }, core.PersistentVolumeClaimStatus{ + Phase: core.ClaimBound, }) - unboundSizeUpdate := testVolumeClaimWithStatus("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + unboundSizeUpdate := testVolumeClaimWithStatus("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("12G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("12G"), }, }, - }, api.PersistentVolumeClaimStatus{ - Phase: api.ClaimPending, + }, core.PersistentVolumeClaimStatus{ + Phase: core.ClaimPending, }) scenarios := map[string]struct { isExpectedFailure bool - oldClaim *api.PersistentVolumeClaim - newClaim *api.PersistentVolumeClaim + oldClaim *core.PersistentVolumeClaim + newClaim *core.PersistentVolumeClaim enableResize bool }{ "valid-update-volumeName-only": { @@ -992,63 +1183,63 @@ func togglePVExpandFeature(toggleFlag bool, t *testing.T) { func TestValidateKeyToPath(t *testing.T) { testCases := []struct { - kp api.KeyToPath + kp core.KeyToPath ok bool errtype field.ErrorType }{ { - kp: api.KeyToPath{Key: "k", Path: "p"}, + kp: core.KeyToPath{Key: "k", Path: "p"}, ok: true, }, { - kp: api.KeyToPath{Key: "k", Path: "p/p/p/p"}, + kp: core.KeyToPath{Key: "k", Path: "p/p/p/p"}, ok: true, }, { - kp: api.KeyToPath{Key: "k", Path: "p/..p/p../p..p"}, + kp: core.KeyToPath{Key: "k", Path: "p/..p/p../p..p"}, ok: true, }, { - kp: api.KeyToPath{Key: "k", Path: "p", Mode: newInt32(0644)}, + kp: core.KeyToPath{Key: "k", Path: "p", Mode: newInt32(0644)}, ok: true, }, { - kp: api.KeyToPath{Key: "", Path: "p"}, + kp: core.KeyToPath{Key: "", Path: "p"}, ok: false, errtype: field.ErrorTypeRequired, }, { - kp: api.KeyToPath{Key: "k", Path: ""}, + kp: core.KeyToPath{Key: "k", Path: ""}, ok: false, errtype: field.ErrorTypeRequired, }, { - kp: api.KeyToPath{Key: "k", Path: "..p"}, + kp: core.KeyToPath{Key: "k", Path: "..p"}, ok: false, errtype: field.ErrorTypeInvalid, }, { - kp: api.KeyToPath{Key: "k", Path: "../p"}, + kp: core.KeyToPath{Key: "k", Path: "../p"}, ok: false, errtype: field.ErrorTypeInvalid, }, { - kp: api.KeyToPath{Key: "k", Path: "p/../p"}, + kp: core.KeyToPath{Key: "k", Path: "p/../p"}, ok: false, errtype: field.ErrorTypeInvalid, }, { - kp: api.KeyToPath{Key: "k", Path: "p/.."}, + kp: core.KeyToPath{Key: "k", Path: "p/.."}, ok: false, errtype: field.ErrorTypeInvalid, }, { - kp: api.KeyToPath{Key: "k", Path: "p", Mode: newInt32(01000)}, + kp: core.KeyToPath{Key: "k", Path: "p", Mode: newInt32(01000)}, ok: false, errtype: field.ErrorTypeInvalid, }, { - kp: api.KeyToPath{Key: "k", Path: "p", Mode: newInt32(-1)}, + kp: core.KeyToPath{Key: "k", Path: "p", Mode: newInt32(-1)}, ok: false, errtype: field.ErrorTypeInvalid, }, @@ -1073,26 +1264,26 @@ func TestValidateKeyToPath(t *testing.T) { func TestValidateNFSVolumeSource(t *testing.T) { testCases := []struct { name string - nfs *api.NFSVolumeSource + nfs *core.NFSVolumeSource errtype field.ErrorType errfield string errdetail string }{ { name: "missing server", - nfs: &api.NFSVolumeSource{Server: "", Path: "/tmp"}, + nfs: &core.NFSVolumeSource{Server: "", Path: "/tmp"}, errtype: field.ErrorTypeRequired, errfield: "server", }, { name: "missing path", - nfs: &api.NFSVolumeSource{Server: "my-server", Path: ""}, + nfs: &core.NFSVolumeSource{Server: "my-server", Path: ""}, errtype: field.ErrorTypeRequired, errfield: "path", }, { name: "abs path", - nfs: &api.NFSVolumeSource{Server: "my-server", Path: "tmp"}, + nfs: &core.NFSVolumeSource{Server: "my-server", Path: "tmp"}, errtype: field.ErrorTypeInvalid, errfield: "path", errdetail: "must be an absolute path", @@ -1121,25 +1312,25 @@ func TestValidateNFSVolumeSource(t *testing.T) { func TestValidateGlusterfs(t *testing.T) { testCases := []struct { name string - gfs *api.GlusterfsVolumeSource + gfs *core.GlusterfsVolumeSource errtype field.ErrorType errfield string }{ { name: "missing endpointname", - gfs: &api.GlusterfsVolumeSource{EndpointsName: "", Path: "/tmp"}, + gfs: &core.GlusterfsVolumeSource{EndpointsName: "", Path: "/tmp"}, errtype: field.ErrorTypeRequired, errfield: "endpoints", }, { name: "missing path", - gfs: &api.GlusterfsVolumeSource{EndpointsName: "my-endpoint", Path: ""}, + gfs: &core.GlusterfsVolumeSource{EndpointsName: "my-endpoint", Path: ""}, errtype: field.ErrorTypeRequired, errfield: "path", }, { name: "missing endpintname and path", - gfs: &api.GlusterfsVolumeSource{EndpointsName: "", Path: ""}, + gfs: &core.GlusterfsVolumeSource{EndpointsName: "", Path: ""}, errtype: field.ErrorTypeRequired, errfield: "endpoints", }, @@ -1177,7 +1368,7 @@ func TestValidateVolumes(t *testing.T) { invalidInitiatorName := "2015-02.example.com:init" testCases := []struct { name string - vol api.Volume + vol core.Volume errtype field.ErrorType errfield string errdetail string @@ -1185,54 +1376,54 @@ func TestValidateVolumes(t *testing.T) { // EmptyDir and basic volume names { name: "valid alpha name", - vol: api.Volume{ + vol: core.Volume{ Name: "empty", - VolumeSource: api.VolumeSource{ - EmptyDir: &api.EmptyDirVolumeSource{}, + VolumeSource: core.VolumeSource{ + EmptyDir: &core.EmptyDirVolumeSource{}, }, }, }, { name: "valid num name", - vol: api.Volume{ + vol: core.Volume{ Name: "123", - VolumeSource: api.VolumeSource{ - EmptyDir: &api.EmptyDirVolumeSource{}, + VolumeSource: core.VolumeSource{ + EmptyDir: &core.EmptyDirVolumeSource{}, }, }, }, { name: "valid alphanum name", - vol: api.Volume{ + vol: core.Volume{ Name: "empty-123", - VolumeSource: api.VolumeSource{ - EmptyDir: &api.EmptyDirVolumeSource{}, + VolumeSource: core.VolumeSource{ + EmptyDir: &core.EmptyDirVolumeSource{}, }, }, }, { name: "valid numalpha name", - vol: api.Volume{ + vol: core.Volume{ Name: "123-empty", - VolumeSource: api.VolumeSource{ - EmptyDir: &api.EmptyDirVolumeSource{}, + VolumeSource: core.VolumeSource{ + EmptyDir: &core.EmptyDirVolumeSource{}, }, }, }, { name: "zero-length name", - vol: api.Volume{ + vol: core.Volume{ Name: "", - VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}, + VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}, }, errtype: field.ErrorTypeRequired, errfield: "name", }, { name: "name > 63 characters", - vol: api.Volume{ + vol: core.Volume{ Name: strings.Repeat("a", 64), - VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}, + VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}, }, errtype: field.ErrorTypeInvalid, errfield: "name", @@ -1240,9 +1431,9 @@ func TestValidateVolumes(t *testing.T) { }, { name: "name not a DNS label", - vol: api.Volume{ + vol: core.Volume{ Name: "a.b.c", - VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}, + VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}, }, errtype: field.ErrorTypeInvalid, errfield: "name", @@ -1251,13 +1442,13 @@ func TestValidateVolumes(t *testing.T) { // More than one source field specified. { name: "more than one source", - vol: api.Volume{ + vol: core.Volume{ Name: "dups", - VolumeSource: api.VolumeSource{ - EmptyDir: &api.EmptyDirVolumeSource{}, - HostPath: &api.HostPathVolumeSource{ + VolumeSource: core.VolumeSource{ + EmptyDir: &core.EmptyDirVolumeSource{}, + HostPath: &core.HostPathVolumeSource{ Path: "/mnt/path", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, }, @@ -1268,12 +1459,12 @@ func TestValidateVolumes(t *testing.T) { // HostPath Default { name: "default HostPath", - vol: api.Volume{ + vol: core.Volume{ Name: "hostpath", - VolumeSource: api.VolumeSource{ - HostPath: &api.HostPathVolumeSource{ + VolumeSource: core.VolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/mnt/path", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, }, @@ -1281,12 +1472,12 @@ func TestValidateVolumes(t *testing.T) { // HostPath Supported { name: "valid HostPath", - vol: api.Volume{ + vol: core.Volume{ Name: "hostpath", - VolumeSource: api.VolumeSource{ - HostPath: &api.HostPathVolumeSource{ + VolumeSource: core.VolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/mnt/path", - Type: newHostPathType(string(api.HostPathSocket)), + Type: newHostPathType(string(core.HostPathSocket)), }, }, }, @@ -1294,10 +1485,10 @@ func TestValidateVolumes(t *testing.T) { // HostPath Invalid { name: "invalid HostPath", - vol: api.Volume{ + vol: core.Volume{ Name: "hostpath", - VolumeSource: api.VolumeSource{ - HostPath: &api.HostPathVolumeSource{ + VolumeSource: core.VolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/mnt/path", Type: newHostPathType("invalid"), }, @@ -1308,12 +1499,12 @@ func TestValidateVolumes(t *testing.T) { }, { name: "invalid HostPath backsteps", - vol: api.Volume{ + vol: core.Volume{ Name: "hostpath", - VolumeSource: api.VolumeSource{ - HostPath: &api.HostPathVolumeSource{ + VolumeSource: core.VolumeSource{ + HostPath: &core.HostPathVolumeSource{ Path: "/mnt/path/..", - Type: newHostPathType(string(api.HostPathDirectory)), + Type: newHostPathType(string(core.HostPathDirectory)), }, }, }, @@ -1324,10 +1515,10 @@ func TestValidateVolumes(t *testing.T) { // GcePersistentDisk { name: "valid GcePersistentDisk", - vol: api.Volume{ + vol: core.Volume{ Name: "gce-pd", - VolumeSource: api.VolumeSource{ - GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{ + VolumeSource: core.VolumeSource{ + GCEPersistentDisk: &core.GCEPersistentDiskVolumeSource{ PDName: "my-PD", FSType: "ext4", Partition: 1, @@ -1339,10 +1530,10 @@ func TestValidateVolumes(t *testing.T) { // AWSElasticBlockStore { name: "valid AWSElasticBlockStore", - vol: api.Volume{ + vol: core.Volume{ Name: "aws-ebs", - VolumeSource: api.VolumeSource{ - AWSElasticBlockStore: &api.AWSElasticBlockStoreVolumeSource{ + VolumeSource: core.VolumeSource{ + AWSElasticBlockStore: &core.AWSElasticBlockStoreVolumeSource{ VolumeID: "my-PD", FSType: "ext4", Partition: 1, @@ -1354,10 +1545,10 @@ func TestValidateVolumes(t *testing.T) { // GitRepo { name: "valid GitRepo", - vol: api.Volume{ + vol: core.Volume{ Name: "git-repo", - VolumeSource: api.VolumeSource{ - GitRepo: &api.GitRepoVolumeSource{ + VolumeSource: core.VolumeSource{ + GitRepo: &core.GitRepoVolumeSource{ Repository: "my-repo", Revision: "hashstring", Directory: "target", @@ -1367,10 +1558,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid GitRepo in .", - vol: api.Volume{ + vol: core.Volume{ Name: "git-repo-dot", - VolumeSource: api.VolumeSource{ - GitRepo: &api.GitRepoVolumeSource{ + VolumeSource: core.VolumeSource{ + GitRepo: &core.GitRepoVolumeSource{ Repository: "my-repo", Directory: ".", }, @@ -1379,10 +1570,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid GitRepo with .. in name", - vol: api.Volume{ + vol: core.Volume{ Name: "git-repo-dot-dot-foo", - VolumeSource: api.VolumeSource{ - GitRepo: &api.GitRepoVolumeSource{ + VolumeSource: core.VolumeSource{ + GitRepo: &core.GitRepoVolumeSource{ Repository: "my-repo", Directory: "..foo", }, @@ -1391,10 +1582,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "GitRepo starts with ../", - vol: api.Volume{ + vol: core.Volume{ Name: "gitrepo", - VolumeSource: api.VolumeSource{ - GitRepo: &api.GitRepoVolumeSource{ + VolumeSource: core.VolumeSource{ + GitRepo: &core.GitRepoVolumeSource{ Repository: "foo", Directory: "../dots/bar", }, @@ -1406,10 +1597,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "GitRepo contains ..", - vol: api.Volume{ + vol: core.Volume{ Name: "gitrepo", - VolumeSource: api.VolumeSource{ - GitRepo: &api.GitRepoVolumeSource{ + VolumeSource: core.VolumeSource{ + GitRepo: &core.GitRepoVolumeSource{ Repository: "foo", Directory: "dots/../bar", }, @@ -1421,10 +1612,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "GitRepo absolute target", - vol: api.Volume{ + vol: core.Volume{ Name: "gitrepo", - VolumeSource: api.VolumeSource{ - GitRepo: &api.GitRepoVolumeSource{ + VolumeSource: core.VolumeSource{ + GitRepo: &core.GitRepoVolumeSource{ Repository: "foo", Directory: "/abstarget", }, @@ -1436,10 +1627,10 @@ func TestValidateVolumes(t *testing.T) { // ISCSI { name: "valid ISCSI", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "iqn.2015-02.example.com:test", Lun: 1, @@ -1451,10 +1642,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid IQN: eui format", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "eui.0123456789ABCDEF", Lun: 1, @@ -1466,10 +1657,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid IQN: naa format", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "naa.62004567BA64678D0123456789ABCDEF", Lun: 1, @@ -1481,10 +1672,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty portal", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "", IQN: "iqn.2015-02.example.com:test", Lun: 1, @@ -1498,10 +1689,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty iqn", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "", Lun: 1, @@ -1515,10 +1706,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "invalid IQN: iqn format", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "iqn.2015-02.example.com:test;ls;", Lun: 1, @@ -1532,10 +1723,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "invalid IQN: eui format", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "eui.0123456789ABCDEFGHIJ", Lun: 1, @@ -1549,10 +1740,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "invalid IQN: naa format", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "naa.62004567BA_4-78D.123456789ABCDEF", Lun: 1, @@ -1566,10 +1757,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid initiatorName", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "iqn.2015-02.example.com:test", Lun: 1, @@ -1582,10 +1773,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "invalid initiatorName", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "iqn.2015-02.example.com:test", Lun: 1, @@ -1600,10 +1791,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty secret", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "iqn.2015-02.example.com:test", Lun: 1, @@ -1618,10 +1809,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty secret", - vol: api.Volume{ + vol: core.Volume{ Name: "iscsi", - VolumeSource: api.VolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ + VolumeSource: core.VolumeSource{ + ISCSI: &core.ISCSIVolumeSource{ TargetPortal: "127.0.0.1", IQN: "iqn.2015-02.example.com:test", Lun: 1, @@ -1637,10 +1828,10 @@ func TestValidateVolumes(t *testing.T) { // Secret { name: "valid Secret", - vol: api.Volume{ + vol: core.Volume{ Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ + VolumeSource: core.VolumeSource{ + Secret: &core.SecretVolumeSource{ SecretName: "my-secret", }, }, @@ -1648,10 +1839,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid Secret with defaultMode", - vol: api.Volume{ + vol: core.Volume{ Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ + VolumeSource: core.VolumeSource{ + Secret: &core.SecretVolumeSource{ SecretName: "my-secret", DefaultMode: newInt32(0644), }, @@ -1660,12 +1851,12 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid Secret with projection and mode", - vol: api.Volume{ + vol: core.Volume{ Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ + VolumeSource: core.VolumeSource{ + Secret: &core.SecretVolumeSource{ SecretName: "my-secret", - Items: []api.KeyToPath{{ + Items: []core.KeyToPath{{ Key: "key", Path: "filename", Mode: newInt32(0644), @@ -1676,12 +1867,12 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid Secret with subdir projection", - vol: api.Volume{ + vol: core.Volume{ Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ + VolumeSource: core.VolumeSource{ + Secret: &core.SecretVolumeSource{ SecretName: "my-secret", - Items: []api.KeyToPath{{ + Items: []core.KeyToPath{{ Key: "key", Path: "dir/filename", }}, @@ -1691,12 +1882,12 @@ func TestValidateVolumes(t *testing.T) { }, { name: "secret with missing path", - vol: api.Volume{ + vol: core.Volume{ Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ + VolumeSource: core.VolumeSource{ + Secret: &core.SecretVolumeSource{ SecretName: "s", - Items: []api.KeyToPath{{Key: "key", Path: ""}}, + Items: []core.KeyToPath{{Key: "key", Path: ""}}, }, }, }, @@ -1705,12 +1896,12 @@ func TestValidateVolumes(t *testing.T) { }, { name: "secret with leading ..", - vol: api.Volume{ + vol: core.Volume{ Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ + VolumeSource: core.VolumeSource{ + Secret: &core.SecretVolumeSource{ SecretName: "s", - Items: []api.KeyToPath{{Key: "key", Path: "../foo"}}, + Items: []core.KeyToPath{{Key: "key", Path: "../foo"}}, }, }, }, @@ -1719,12 +1910,12 @@ func TestValidateVolumes(t *testing.T) { }, { name: "secret with .. inside", - vol: api.Volume{ + vol: core.Volume{ Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ + VolumeSource: core.VolumeSource{ + Secret: &core.SecretVolumeSource{ SecretName: "s", - Items: []api.KeyToPath{{Key: "key", Path: "foo/../bar"}}, + Items: []core.KeyToPath{{Key: "key", Path: "foo/../bar"}}, }, }, }, @@ -1733,10 +1924,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "secret with invalid positive defaultMode", - vol: api.Volume{ + vol: core.Volume{ Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ + VolumeSource: core.VolumeSource{ + Secret: &core.SecretVolumeSource{ SecretName: "s", DefaultMode: newInt32(01000), }, @@ -1747,10 +1938,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "secret with invalid negative defaultMode", - vol: api.Volume{ + vol: core.Volume{ Name: "secret", - VolumeSource: api.VolumeSource{ - Secret: &api.SecretVolumeSource{ + VolumeSource: core.VolumeSource{ + Secret: &core.SecretVolumeSource{ SecretName: "s", DefaultMode: newInt32(-1), }, @@ -1762,11 +1953,11 @@ func TestValidateVolumes(t *testing.T) { // ConfigMap { name: "valid ConfigMap", - vol: api.Volume{ + vol: core.Volume{ Name: "cfgmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - LocalObjectReference: api.LocalObjectReference{ + VolumeSource: core.VolumeSource{ + ConfigMap: &core.ConfigMapVolumeSource{ + LocalObjectReference: core.LocalObjectReference{ Name: "my-cfgmap", }, }, @@ -1775,11 +1966,11 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid ConfigMap with defaultMode", - vol: api.Volume{ + vol: core.Volume{ Name: "cfgmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - LocalObjectReference: api.LocalObjectReference{ + VolumeSource: core.VolumeSource{ + ConfigMap: &core.ConfigMapVolumeSource{ + LocalObjectReference: core.LocalObjectReference{ Name: "my-cfgmap", }, DefaultMode: newInt32(0644), @@ -1789,13 +1980,13 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid ConfigMap with projection and mode", - vol: api.Volume{ + vol: core.Volume{ Name: "cfgmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - LocalObjectReference: api.LocalObjectReference{ + VolumeSource: core.VolumeSource{ + ConfigMap: &core.ConfigMapVolumeSource{ + LocalObjectReference: core.LocalObjectReference{ Name: "my-cfgmap"}, - Items: []api.KeyToPath{{ + Items: []core.KeyToPath{{ Key: "key", Path: "filename", Mode: newInt32(0644), @@ -1806,13 +1997,13 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid ConfigMap with subdir projection", - vol: api.Volume{ + vol: core.Volume{ Name: "cfgmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - LocalObjectReference: api.LocalObjectReference{ + VolumeSource: core.VolumeSource{ + ConfigMap: &core.ConfigMapVolumeSource{ + LocalObjectReference: core.LocalObjectReference{ Name: "my-cfgmap"}, - Items: []api.KeyToPath{{ + Items: []core.KeyToPath{{ Key: "key", Path: "dir/filename", }}, @@ -1822,12 +2013,12 @@ func TestValidateVolumes(t *testing.T) { }, { name: "configmap with missing path", - vol: api.Volume{ + vol: core.Volume{ Name: "cfgmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - LocalObjectReference: api.LocalObjectReference{Name: "c"}, - Items: []api.KeyToPath{{Key: "key", Path: ""}}, + VolumeSource: core.VolumeSource{ + ConfigMap: &core.ConfigMapVolumeSource{ + LocalObjectReference: core.LocalObjectReference{Name: "c"}, + Items: []core.KeyToPath{{Key: "key", Path: ""}}, }, }, }, @@ -1836,12 +2027,12 @@ func TestValidateVolumes(t *testing.T) { }, { name: "configmap with leading ..", - vol: api.Volume{ + vol: core.Volume{ Name: "cfgmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - LocalObjectReference: api.LocalObjectReference{Name: "c"}, - Items: []api.KeyToPath{{Key: "key", Path: "../foo"}}, + VolumeSource: core.VolumeSource{ + ConfigMap: &core.ConfigMapVolumeSource{ + LocalObjectReference: core.LocalObjectReference{Name: "c"}, + Items: []core.KeyToPath{{Key: "key", Path: "../foo"}}, }, }, }, @@ -1850,12 +2041,12 @@ func TestValidateVolumes(t *testing.T) { }, { name: "configmap with .. inside", - vol: api.Volume{ + vol: core.Volume{ Name: "cfgmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - LocalObjectReference: api.LocalObjectReference{Name: "c"}, - Items: []api.KeyToPath{{Key: "key", Path: "foo/../bar"}}, + VolumeSource: core.VolumeSource{ + ConfigMap: &core.ConfigMapVolumeSource{ + LocalObjectReference: core.LocalObjectReference{Name: "c"}, + Items: []core.KeyToPath{{Key: "key", Path: "foo/../bar"}}, }, }, }, @@ -1864,11 +2055,11 @@ func TestValidateVolumes(t *testing.T) { }, { name: "configmap with invalid positive defaultMode", - vol: api.Volume{ + vol: core.Volume{ Name: "cfgmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - LocalObjectReference: api.LocalObjectReference{Name: "c"}, + VolumeSource: core.VolumeSource{ + ConfigMap: &core.ConfigMapVolumeSource{ + LocalObjectReference: core.LocalObjectReference{Name: "c"}, DefaultMode: newInt32(01000), }, }, @@ -1878,11 +2069,11 @@ func TestValidateVolumes(t *testing.T) { }, { name: "configmap with invalid negative defaultMode", - vol: api.Volume{ + vol: core.Volume{ Name: "cfgmap", - VolumeSource: api.VolumeSource{ - ConfigMap: &api.ConfigMapVolumeSource{ - LocalObjectReference: api.LocalObjectReference{Name: "c"}, + VolumeSource: core.VolumeSource{ + ConfigMap: &core.ConfigMapVolumeSource{ + LocalObjectReference: core.LocalObjectReference{Name: "c"}, DefaultMode: newInt32(-1), }, }, @@ -1893,10 +2084,10 @@ func TestValidateVolumes(t *testing.T) { // Glusterfs { name: "valid Glusterfs", - vol: api.Volume{ + vol: core.Volume{ Name: "glusterfs", - VolumeSource: api.VolumeSource{ - Glusterfs: &api.GlusterfsVolumeSource{ + VolumeSource: core.VolumeSource{ + Glusterfs: &core.GlusterfsVolumeSource{ EndpointsName: "host1", Path: "path", ReadOnly: false, @@ -1906,10 +2097,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty hosts", - vol: api.Volume{ + vol: core.Volume{ Name: "glusterfs", - VolumeSource: api.VolumeSource{ - Glusterfs: &api.GlusterfsVolumeSource{ + VolumeSource: core.VolumeSource{ + Glusterfs: &core.GlusterfsVolumeSource{ EndpointsName: "", Path: "path", ReadOnly: false, @@ -1921,10 +2112,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty path", - vol: api.Volume{ + vol: core.Volume{ Name: "glusterfs", - VolumeSource: api.VolumeSource{ - Glusterfs: &api.GlusterfsVolumeSource{ + VolumeSource: core.VolumeSource{ + Glusterfs: &core.GlusterfsVolumeSource{ EndpointsName: "host", Path: "", ReadOnly: false, @@ -1937,10 +2128,10 @@ func TestValidateVolumes(t *testing.T) { // Flocker { name: "valid Flocker -- datasetUUID", - vol: api.Volume{ + vol: core.Volume{ Name: "flocker", - VolumeSource: api.VolumeSource{ - Flocker: &api.FlockerVolumeSource{ + VolumeSource: core.VolumeSource{ + Flocker: &core.FlockerVolumeSource{ DatasetUUID: "d846b09d-223d-43df-ab5b-d6db2206a0e4", }, }, @@ -1948,10 +2139,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "valid Flocker -- datasetName", - vol: api.Volume{ + vol: core.Volume{ Name: "flocker", - VolumeSource: api.VolumeSource{ - Flocker: &api.FlockerVolumeSource{ + VolumeSource: core.VolumeSource{ + Flocker: &core.FlockerVolumeSource{ DatasetName: "datasetName", }, }, @@ -1959,10 +2150,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "both empty", - vol: api.Volume{ + vol: core.Volume{ Name: "flocker", - VolumeSource: api.VolumeSource{ - Flocker: &api.FlockerVolumeSource{ + VolumeSource: core.VolumeSource{ + Flocker: &core.FlockerVolumeSource{ DatasetName: "", }, }, @@ -1972,10 +2163,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "both specified", - vol: api.Volume{ + vol: core.Volume{ Name: "flocker", - VolumeSource: api.VolumeSource{ - Flocker: &api.FlockerVolumeSource{ + VolumeSource: core.VolumeSource{ + Flocker: &core.FlockerVolumeSource{ DatasetName: "datasetName", DatasetUUID: "d846b09d-223d-43df-ab5b-d6db2206a0e4", }, @@ -1986,10 +2177,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "slash in flocker datasetName", - vol: api.Volume{ + vol: core.Volume{ Name: "flocker", - VolumeSource: api.VolumeSource{ - Flocker: &api.FlockerVolumeSource{ + VolumeSource: core.VolumeSource{ + Flocker: &core.FlockerVolumeSource{ DatasetName: "foo/bar", }, }, @@ -2001,10 +2192,10 @@ func TestValidateVolumes(t *testing.T) { // RBD { name: "valid RBD", - vol: api.Volume{ + vol: core.Volume{ Name: "rbd", - VolumeSource: api.VolumeSource{ - RBD: &api.RBDVolumeSource{ + VolumeSource: core.VolumeSource{ + RBD: &core.RBDVolumeSource{ CephMonitors: []string{"foo"}, RBDImage: "bar", FSType: "ext4", @@ -2014,10 +2205,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty rbd monitors", - vol: api.Volume{ + vol: core.Volume{ Name: "rbd", - VolumeSource: api.VolumeSource{ - RBD: &api.RBDVolumeSource{ + VolumeSource: core.VolumeSource{ + RBD: &core.RBDVolumeSource{ CephMonitors: []string{}, RBDImage: "bar", FSType: "ext4", @@ -2029,10 +2220,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty image", - vol: api.Volume{ + vol: core.Volume{ Name: "rbd", - VolumeSource: api.VolumeSource{ - RBD: &api.RBDVolumeSource{ + VolumeSource: core.VolumeSource{ + RBD: &core.RBDVolumeSource{ CephMonitors: []string{"foo"}, RBDImage: "", FSType: "ext4", @@ -2045,10 +2236,10 @@ func TestValidateVolumes(t *testing.T) { // Cinder { name: "valid Cinder", - vol: api.Volume{ + vol: core.Volume{ Name: "cinder", - VolumeSource: api.VolumeSource{ - Cinder: &api.CinderVolumeSource{ + VolumeSource: core.VolumeSource{ + Cinder: &core.CinderVolumeSource{ VolumeID: "29ea5088-4f60-4757-962e-dba678767887", FSType: "ext4", ReadOnly: false, @@ -2059,10 +2250,10 @@ func TestValidateVolumes(t *testing.T) { // CephFS { name: "valid CephFS", - vol: api.Volume{ + vol: core.Volume{ Name: "cephfs", - VolumeSource: api.VolumeSource{ - CephFS: &api.CephFSVolumeSource{ + VolumeSource: core.VolumeSource{ + CephFS: &core.CephFSVolumeSource{ Monitors: []string{"foo"}, }, }, @@ -2070,10 +2261,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty cephfs monitors", - vol: api.Volume{ + vol: core.Volume{ Name: "cephfs", - VolumeSource: api.VolumeSource{ - CephFS: &api.CephFSVolumeSource{ + VolumeSource: core.VolumeSource{ + CephFS: &core.CephFSVolumeSource{ Monitors: []string{}, }, }, @@ -2084,91 +2275,91 @@ func TestValidateVolumes(t *testing.T) { // DownwardAPI { name: "valid DownwardAPI", - vol: api.Volume{ + vol: core.Volume{ Name: "downwardapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{ { Path: "labels", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, }, { Path: "annotations", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.annotations", }, }, { Path: "namespace", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.namespace", }, }, { Path: "name", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.name", }, }, { Path: "path/with/subdirs", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, }, { Path: "path/./withdot", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, }, { Path: "path/with/embedded..dotdot", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, }, { Path: "path/with/leading/..dotdot", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, }, { Path: "cpu_limit", - ResourceFieldRef: &api.ResourceFieldSelector{ + ResourceFieldRef: &core.ResourceFieldSelector{ ContainerName: "test-container", Resource: "limits.cpu", }, }, { Path: "cpu_request", - ResourceFieldRef: &api.ResourceFieldSelector{ + ResourceFieldRef: &core.ResourceFieldSelector{ ContainerName: "test-container", Resource: "requests.cpu", }, }, { Path: "memory_limit", - ResourceFieldRef: &api.ResourceFieldSelector{ + ResourceFieldRef: &core.ResourceFieldSelector{ ContainerName: "test-container", Resource: "limits.memory", }, }, { Path: "memory_request", - ResourceFieldRef: &api.ResourceFieldSelector{ + ResourceFieldRef: &core.ResourceFieldSelector{ ContainerName: "test-container", Resource: "requests.memory", }, @@ -2180,10 +2371,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi valid defaultMode", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ DefaultMode: newInt32(0644), }, }, @@ -2191,14 +2382,14 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi valid item mode", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{{ Mode: newInt32(0644), Path: "path", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, @@ -2209,14 +2400,14 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi invalid positive item mode", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{{ Mode: newInt32(01000), Path: "path", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, @@ -2229,14 +2420,14 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi invalid negative item mode", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{{ Mode: newInt32(-1), Path: "path", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, @@ -2249,13 +2440,13 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi empty metatada path", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{{ Path: "", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, @@ -2268,13 +2459,13 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi absolute path", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{{ Path: "/absolutepath", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, @@ -2287,13 +2478,13 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi dot dot path", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{{ Path: "../../passwd", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, @@ -2307,13 +2498,13 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi dot dot file name", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{{ Path: "..badFileName", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, @@ -2327,13 +2518,13 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi dot dot first level dirent", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{{ Path: "..badDirName/goodFileName", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, @@ -2347,17 +2538,17 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi fieldRef and ResourceFieldRef together", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ - Items: []api.DownwardAPIVolumeFile{{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ + Items: []core.DownwardAPIVolumeFile{{ Path: "test", - FieldRef: &api.ObjectFieldSelector{ + FieldRef: &core.ObjectFieldSelector{ APIVersion: "v1", FieldPath: "metadata.labels", }, - ResourceFieldRef: &api.ResourceFieldSelector{ + ResourceFieldRef: &core.ResourceFieldSelector{ ContainerName: "test-container", Resource: "requests.memory", }, @@ -2371,10 +2562,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi invalid positive defaultMode", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ DefaultMode: newInt32(01000), }, }, @@ -2384,10 +2575,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "downapi invalid negative defaultMode", - vol: api.Volume{ + vol: core.Volume{ Name: "downapi", - VolumeSource: api.VolumeSource{ - DownwardAPI: &api.DownwardAPIVolumeSource{ + VolumeSource: core.VolumeSource{ + DownwardAPI: &core.DownwardAPIVolumeSource{ DefaultMode: newInt32(-1), }, }, @@ -2398,10 +2589,10 @@ func TestValidateVolumes(t *testing.T) { // FC { name: "FC valid targetWWNs and lun", - vol: api.Volume{ + vol: core.Volume{ Name: "fc", - VolumeSource: api.VolumeSource{ - FC: &api.FCVolumeSource{ + VolumeSource: core.VolumeSource{ + FC: &core.FCVolumeSource{ TargetWWNs: []string{"some_wwn"}, Lun: newInt32(1), FSType: "ext4", @@ -2412,10 +2603,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "FC valid wwids", - vol: api.Volume{ + vol: core.Volume{ Name: "fc", - VolumeSource: api.VolumeSource{ - FC: &api.FCVolumeSource{ + VolumeSource: core.VolumeSource{ + FC: &core.FCVolumeSource{ WWIDs: []string{"some_wwid"}, FSType: "ext4", ReadOnly: false, @@ -2425,10 +2616,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "FC empty targetWWNs and wwids", - vol: api.Volume{ + vol: core.Volume{ Name: "fc", - VolumeSource: api.VolumeSource{ - FC: &api.FCVolumeSource{ + VolumeSource: core.VolumeSource{ + FC: &core.FCVolumeSource{ TargetWWNs: []string{}, Lun: newInt32(1), WWIDs: []string{}, @@ -2443,10 +2634,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "FC invalid: both targetWWNs and wwids simultaneously", - vol: api.Volume{ + vol: core.Volume{ Name: "fc", - VolumeSource: api.VolumeSource{ - FC: &api.FCVolumeSource{ + VolumeSource: core.VolumeSource{ + FC: &core.FCVolumeSource{ TargetWWNs: []string{"some_wwn"}, Lun: newInt32(1), WWIDs: []string{"some_wwid"}, @@ -2461,10 +2652,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "FC valid targetWWNs and empty lun", - vol: api.Volume{ + vol: core.Volume{ Name: "fc", - VolumeSource: api.VolumeSource{ - FC: &api.FCVolumeSource{ + VolumeSource: core.VolumeSource{ + FC: &core.FCVolumeSource{ TargetWWNs: []string{"wwn"}, Lun: nil, FSType: "ext4", @@ -2478,10 +2669,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "FC valid targetWWNs and invalid lun", - vol: api.Volume{ + vol: core.Volume{ Name: "fc", - VolumeSource: api.VolumeSource{ - FC: &api.FCVolumeSource{ + VolumeSource: core.VolumeSource{ + FC: &core.FCVolumeSource{ TargetWWNs: []string{"wwn"}, Lun: newInt32(256), FSType: "ext4", @@ -2496,10 +2687,10 @@ func TestValidateVolumes(t *testing.T) { // FlexVolume { name: "valid FlexVolume", - vol: api.Volume{ + vol: core.Volume{ Name: "flex-volume", - VolumeSource: api.VolumeSource{ - FlexVolume: &api.FlexVolumeSource{ + VolumeSource: core.VolumeSource{ + FlexVolume: &core.FlexVolumeSource{ Driver: "kubernetes.io/blue", FSType: "ext4", }, @@ -2509,10 +2700,10 @@ func TestValidateVolumes(t *testing.T) { // AzureFile { name: "valid AzureFile", - vol: api.Volume{ + vol: core.Volume{ Name: "azure-file", - VolumeSource: api.VolumeSource{ - AzureFile: &api.AzureFileVolumeSource{ + VolumeSource: core.VolumeSource{ + AzureFile: &core.AzureFileVolumeSource{ SecretName: "key", ShareName: "share", ReadOnly: false, @@ -2522,10 +2713,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "AzureFile empty secret", - vol: api.Volume{ + vol: core.Volume{ Name: "azure-file", - VolumeSource: api.VolumeSource{ - AzureFile: &api.AzureFileVolumeSource{ + VolumeSource: core.VolumeSource{ + AzureFile: &core.AzureFileVolumeSource{ SecretName: "", ShareName: "share", ReadOnly: false, @@ -2537,10 +2728,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "AzureFile empty share", - vol: api.Volume{ + vol: core.Volume{ Name: "azure-file", - VolumeSource: api.VolumeSource{ - AzureFile: &api.AzureFileVolumeSource{ + VolumeSource: core.VolumeSource{ + AzureFile: &core.AzureFileVolumeSource{ SecretName: "name", ShareName: "", ReadOnly: false, @@ -2553,10 +2744,10 @@ func TestValidateVolumes(t *testing.T) { // Quobyte { name: "valid Quobyte", - vol: api.Volume{ + vol: core.Volume{ Name: "quobyte", - VolumeSource: api.VolumeSource{ - Quobyte: &api.QuobyteVolumeSource{ + VolumeSource: core.VolumeSource{ + Quobyte: &core.QuobyteVolumeSource{ Registry: "registry:7861", Volume: "volume", ReadOnly: false, @@ -2568,10 +2759,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty registry quobyte", - vol: api.Volume{ + vol: core.Volume{ Name: "quobyte", - VolumeSource: api.VolumeSource{ - Quobyte: &api.QuobyteVolumeSource{ + VolumeSource: core.VolumeSource{ + Quobyte: &core.QuobyteVolumeSource{ Volume: "/test", }, }, @@ -2581,10 +2772,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "wrong format registry quobyte", - vol: api.Volume{ + vol: core.Volume{ Name: "quobyte", - VolumeSource: api.VolumeSource{ - Quobyte: &api.QuobyteVolumeSource{ + VolumeSource: core.VolumeSource{ + Quobyte: &core.QuobyteVolumeSource{ Registry: "registry7861", Volume: "/test", }, @@ -2595,10 +2786,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "wrong format multiple registries quobyte", - vol: api.Volume{ + vol: core.Volume{ Name: "quobyte", - VolumeSource: api.VolumeSource{ - Quobyte: &api.QuobyteVolumeSource{ + VolumeSource: core.VolumeSource{ + Quobyte: &core.QuobyteVolumeSource{ Registry: "registry:7861,reg2", Volume: "/test", }, @@ -2609,10 +2800,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "empty volume quobyte", - vol: api.Volume{ + vol: core.Volume{ Name: "quobyte", - VolumeSource: api.VolumeSource{ - Quobyte: &api.QuobyteVolumeSource{ + VolumeSource: core.VolumeSource{ + Quobyte: &core.QuobyteVolumeSource{ Registry: "registry:7861", }, }, @@ -2623,10 +2814,10 @@ func TestValidateVolumes(t *testing.T) { // AzureDisk { name: "valid AzureDisk", - vol: api.Volume{ + vol: core.Volume{ Name: "azure-disk", - VolumeSource: api.VolumeSource{ - AzureDisk: &api.AzureDiskVolumeSource{ + VolumeSource: core.VolumeSource{ + AzureDisk: &core.AzureDiskVolumeSource{ DiskName: "foo", DataDiskURI: "https://blob/vhds/bar.vhd", }, @@ -2635,10 +2826,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "AzureDisk empty disk name", - vol: api.Volume{ + vol: core.Volume{ Name: "azure-disk", - VolumeSource: api.VolumeSource{ - AzureDisk: &api.AzureDiskVolumeSource{ + VolumeSource: core.VolumeSource{ + AzureDisk: &core.AzureDiskVolumeSource{ DiskName: "", DataDiskURI: "https://blob/vhds/bar.vhd", }, @@ -2649,10 +2840,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "AzureDisk empty disk uri", - vol: api.Volume{ + vol: core.Volume{ Name: "azure-disk", - VolumeSource: api.VolumeSource{ - AzureDisk: &api.AzureDiskVolumeSource{ + VolumeSource: core.VolumeSource{ + AzureDisk: &core.AzureDiskVolumeSource{ DiskName: "foo", DataDiskURI: "", }, @@ -2664,10 +2855,10 @@ func TestValidateVolumes(t *testing.T) { // ScaleIO { name: "valid scaleio volume", - vol: api.Volume{ + vol: core.Volume{ Name: "scaleio-volume", - VolumeSource: api.VolumeSource{ - ScaleIO: &api.ScaleIOVolumeSource{ + VolumeSource: core.VolumeSource{ + ScaleIO: &core.ScaleIOVolumeSource{ Gateway: "http://abcd/efg", System: "test-system", VolumeName: "test-vol-1", @@ -2677,10 +2868,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "ScaleIO with empty name", - vol: api.Volume{ + vol: core.Volume{ Name: "scaleio-volume", - VolumeSource: api.VolumeSource{ - ScaleIO: &api.ScaleIOVolumeSource{ + VolumeSource: core.VolumeSource{ + ScaleIO: &core.ScaleIOVolumeSource{ Gateway: "http://abcd/efg", System: "test-system", VolumeName: "", @@ -2692,10 +2883,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "ScaleIO with empty gateway", - vol: api.Volume{ + vol: core.Volume{ Name: "scaleio-volume", - VolumeSource: api.VolumeSource{ - ScaleIO: &api.ScaleIOVolumeSource{ + VolumeSource: core.VolumeSource{ + ScaleIO: &core.ScaleIOVolumeSource{ Gateway: "", System: "test-system", VolumeName: "test-vol-1", @@ -2707,10 +2898,10 @@ func TestValidateVolumes(t *testing.T) { }, { name: "ScaleIO with empty system", - vol: api.Volume{ + vol: core.Volume{ Name: "scaleio-volume", - VolumeSource: api.VolumeSource{ - ScaleIO: &api.ScaleIOVolumeSource{ + VolumeSource: core.VolumeSource{ + ScaleIO: &core.ScaleIOVolumeSource{ Gateway: "http://agc/efg/gateway", System: "", VolumeName: "test-vol-1", @@ -2723,7 +2914,7 @@ func TestValidateVolumes(t *testing.T) { } for i, tc := range testCases { - names, errs := ValidateVolumes([]api.Volume{tc.vol}, field.NewPath("field")) + names, errs := ValidateVolumes([]core.Volume{tc.vol}, field.NewPath("field")) if len(errs) > 0 && tc.errtype == "" { t.Errorf("[%d: %q] unexpected error(s): %v", i, tc.name, errs) } else if len(errs) > 1 { @@ -2745,9 +2936,9 @@ func TestValidateVolumes(t *testing.T) { } } - dupsCase := []api.Volume{ - {Name: "abc", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, - {Name: "abc", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, + dupsCase := []core.Volume{ + {Name: "abc", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}, + {Name: "abc", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}, } _, errs := ValidateVolumes(dupsCase, field.NewPath("field")) if len(errs) == 0 { @@ -2759,7 +2950,7 @@ func TestValidateVolumes(t *testing.T) { } // Validate HugePages medium type for EmptyDir when HugePages feature is enabled/disabled - hugePagesCase := api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{Medium: api.StorageMediumHugePages}} + hugePagesCase := core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{Medium: core.StorageMediumHugePages}} // Enable alpha feature HugePages err := utilfeature.DefaultFeatureGate.Set("HugePages=true") @@ -2782,69 +2973,69 @@ func TestValidateVolumes(t *testing.T) { } func TestAlphaHugePagesIsolation(t *testing.T) { - successCases := []api.Pod{ + successCases := []core.Pod{ { // Basic fields. ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), }, - Limits: api.ResourceList{ - api.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), + Limits: core.ResourceList{ + core.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), }, }, }, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, } - failureCases := []api.Pod{ + failureCases := []core.Pod{ { // Basic fields. ObjectMeta: metav1.ObjectMeta{Name: "hugepages-shared", Namespace: "ns"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), }, - Limits: api.ResourceList{ - api.ResourceName("hugepages-2Mi"): resource.MustParse("2Gi"), + Limits: core.ResourceList{ + core.ResourceName("hugepages-2Mi"): resource.MustParse("2Gi"), }, }, }, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, { // Basic fields. ObjectMeta: metav1.ObjectMeta{Name: "hugepages-multiple", Namespace: "ns"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), - api.ResourceName("hugepages-1Gi"): resource.MustParse("2Gi"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), + core.ResourceName("hugepages-1Gi"): resource.MustParse("2Gi"), }, - Limits: api.ResourceList{ - api.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), - api.ResourceName("hugepages-1Gi"): resource.MustParse("2Gi"), + Limits: core.ResourceList{ + core.ResourceName("hugepages-2Mi"): resource.MustParse("1Gi"), + core.ResourceName("hugepages-1Gi"): resource.MustParse("2Gi"), }, }, }, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, } @@ -2883,8 +3074,8 @@ func TestAlphaHugePagesIsolation(t *testing.T) { func TestAlphaLocalStorageCapacityIsolation(t *testing.T) { - testCases := []api.VolumeSource{ - {EmptyDir: &api.EmptyDirVolumeSource{SizeLimit: resource.NewQuantity(int64(5), resource.BinarySI)}}, + testCases := []core.VolumeSource{ + {EmptyDir: &core.EmptyDirVolumeSource{SizeLimit: resource.NewQuantity(int64(5), resource.BinarySI)}}, } // Enable alpha feature LocalStorageCapacityIsolation err := utilfeature.DefaultFeatureGate.Set("LocalStorageCapacityIsolation=true") @@ -2909,9 +3100,9 @@ func TestAlphaLocalStorageCapacityIsolation(t *testing.T) { } } - containerLimitCase := api.ResourceRequirements{ - Limits: api.ResourceList{ - api.ResourceEphemeralStorage: *resource.NewMilliQuantity( + containerLimitCase := core.ResourceRequirements{ + Limits: core.ResourceList{ + core.ResourceEphemeralStorage: *resource.NewMilliQuantity( int64(40000), resource.BinarySI), }, @@ -2938,26 +3129,26 @@ func TestAlphaLocalStorageCapacityIsolation(t *testing.T) { } func TestValidateResourceQuotaWithAlphaLocalStorageCapacityIsolation(t *testing.T) { - spec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100"), - api.ResourceMemory: resource.MustParse("10000"), - api.ResourceRequestsCPU: resource.MustParse("100"), - api.ResourceRequestsMemory: resource.MustParse("10000"), - api.ResourceLimitsCPU: resource.MustParse("100"), - api.ResourceLimitsMemory: resource.MustParse("10000"), - api.ResourcePods: resource.MustParse("10"), - api.ResourceServices: resource.MustParse("0"), - api.ResourceReplicationControllers: resource.MustParse("10"), - api.ResourceQuotas: resource.MustParse("10"), - api.ResourceConfigMaps: resource.MustParse("10"), - api.ResourceSecrets: resource.MustParse("10"), - api.ResourceEphemeralStorage: resource.MustParse("10000"), - api.ResourceRequestsEphemeralStorage: resource.MustParse("10000"), - api.ResourceLimitsEphemeralStorage: resource.MustParse("10000"), - }, - } - resourceQuota := &api.ResourceQuota{ + spec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100"), + core.ResourceMemory: resource.MustParse("10000"), + core.ResourceRequestsCPU: resource.MustParse("100"), + core.ResourceRequestsMemory: resource.MustParse("10000"), + core.ResourceLimitsCPU: resource.MustParse("100"), + core.ResourceLimitsMemory: resource.MustParse("10000"), + core.ResourcePods: resource.MustParse("10"), + core.ResourceServices: resource.MustParse("0"), + core.ResourceReplicationControllers: resource.MustParse("10"), + core.ResourceQuotas: resource.MustParse("10"), + core.ResourceConfigMaps: resource.MustParse("10"), + core.ResourceSecrets: resource.MustParse("10"), + core.ResourceEphemeralStorage: resource.MustParse("10000"), + core.ResourceRequestsEphemeralStorage: resource.MustParse("10000"), + core.ResourceLimitsEphemeralStorage: resource.MustParse("10000"), + }, + } + resourceQuota := &core.ResourceQuota{ ObjectMeta: metav1.ObjectMeta{ Name: "abc", Namespace: "foo", @@ -2994,7 +3185,7 @@ func TestValidateResourceQuotaWithAlphaLocalStorageCapacityIsolation(t *testing. } func TestValidatePorts(t *testing.T) { - successCase := []api.ContainerPort{ + successCase := []core.ContainerPort{ {Name: "abc", ContainerPort: 80, HostPort: 80, Protocol: "TCP"}, {Name: "easy", ContainerPort: 82, Protocol: "TCP"}, {Name: "as", ContainerPort: 83, Protocol: "UDP"}, @@ -3005,7 +3196,7 @@ func TestValidatePorts(t *testing.T) { t.Errorf("expected success: %v", errs) } - nonCanonicalCase := []api.ContainerPort{ + nonCanonicalCase := []core.ContainerPort{ {ContainerPort: 80, Protocol: "TCP"}, } if errs := validateContainerPorts(nonCanonicalCase, field.NewPath("field")); len(errs) != 0 { @@ -3013,28 +3204,28 @@ func TestValidatePorts(t *testing.T) { } errorCases := map[string]struct { - P []api.ContainerPort + P []core.ContainerPort T field.ErrorType F string D string }{ "name > 15 characters": { - []api.ContainerPort{{Name: strings.Repeat("a", 16), ContainerPort: 80, Protocol: "TCP"}}, + []core.ContainerPort{{Name: strings.Repeat("a", 16), ContainerPort: 80, Protocol: "TCP"}}, field.ErrorTypeInvalid, "name", "15", }, "name contains invalid characters": { - []api.ContainerPort{{Name: "a.b.c", ContainerPort: 80, Protocol: "TCP"}}, + []core.ContainerPort{{Name: "a.b.c", ContainerPort: 80, Protocol: "TCP"}}, field.ErrorTypeInvalid, "name", "alpha-numeric", }, "name is a number": { - []api.ContainerPort{{Name: "80", ContainerPort: 80, Protocol: "TCP"}}, + []core.ContainerPort{{Name: "80", ContainerPort: 80, Protocol: "TCP"}}, field.ErrorTypeInvalid, "name", "at least one letter", }, "name not unique": { - []api.ContainerPort{ + []core.ContainerPort{ {Name: "abc", ContainerPort: 80, Protocol: "TCP"}, {Name: "abc", ContainerPort: 81, Protocol: "TCP"}, }, @@ -3042,32 +3233,32 @@ func TestValidatePorts(t *testing.T) { "[1].name", "", }, "zero container port": { - []api.ContainerPort{{ContainerPort: 0, Protocol: "TCP"}}, + []core.ContainerPort{{ContainerPort: 0, Protocol: "TCP"}}, field.ErrorTypeRequired, "containerPort", "", }, "invalid container port": { - []api.ContainerPort{{ContainerPort: 65536, Protocol: "TCP"}}, + []core.ContainerPort{{ContainerPort: 65536, Protocol: "TCP"}}, field.ErrorTypeInvalid, "containerPort", "between", }, "invalid host port": { - []api.ContainerPort{{ContainerPort: 80, HostPort: 65536, Protocol: "TCP"}}, + []core.ContainerPort{{ContainerPort: 80, HostPort: 65536, Protocol: "TCP"}}, field.ErrorTypeInvalid, "hostPort", "between", }, "invalid protocol case": { - []api.ContainerPort{{ContainerPort: 80, Protocol: "tcp"}}, + []core.ContainerPort{{ContainerPort: 80, Protocol: "tcp"}}, field.ErrorTypeNotSupported, "protocol", `supported values: "TCP", "UDP"`, }, "invalid protocol": { - []api.ContainerPort{{ContainerPort: 80, Protocol: "ICMP"}}, + []core.ContainerPort{{ContainerPort: 80, Protocol: "ICMP"}}, field.ErrorTypeNotSupported, "protocol", `supported values: "TCP", "UDP"`, }, "protocol required": { - []api.ContainerPort{{Name: "abc", ContainerPort: 80}}, + []core.ContainerPort{{Name: "abc", ContainerPort: 80}}, field.ErrorTypeRequired, "protocol", "", }, @@ -3092,11 +3283,11 @@ func TestValidatePorts(t *testing.T) { } func TestLocalStorageEnvWithFeatureGate(t *testing.T) { - testCases := []api.EnvVar{ + testCases := []core.EnvVar{ { Name: "ephemeral-storage-limits", - ValueFrom: &api.EnvVarSource{ - ResourceFieldRef: &api.ResourceFieldSelector{ + ValueFrom: &core.EnvVarSource{ + ResourceFieldRef: &core.ResourceFieldSelector{ ContainerName: "test-container", Resource: "limits.ephemeral-storage", }, @@ -3104,8 +3295,8 @@ func TestLocalStorageEnvWithFeatureGate(t *testing.T) { }, { Name: "ephemeral-storage-requests", - ValueFrom: &api.EnvVarSource{ - ResourceFieldRef: &api.ResourceFieldSelector{ + ValueFrom: &core.EnvVarSource{ + ResourceFieldRef: &core.ResourceFieldSelector{ ContainerName: "test-container", Resource: "requests.ephemeral-storage", }, @@ -3138,7 +3329,7 @@ func TestLocalStorageEnvWithFeatureGate(t *testing.T) { } func TestValidateEnv(t *testing.T) { - successCase := []api.EnvVar{ + successCase := []core.EnvVar{ {Name: "abc", Value: "value"}, {Name: "ABC", Value: "value"}, {Name: "AbC_123", Value: "value"}, @@ -3147,72 +3338,72 @@ func TestValidateEnv(t *testing.T) { {Name: "a-b-c", Value: "value"}, { Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "metadata.name", }, }, }, { Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "metadata.namespace", }, }, }, { Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "metadata.uid", }, }, }, { Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "spec.nodeName", }, }, }, { Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "spec.serviceAccountName", }, }, }, { Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "status.hostIP", }, }, }, { Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "status.podIP", }, }, }, { Name: "secret_value", - ValueFrom: &api.EnvVarSource{ - SecretKeyRef: &api.SecretKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + ValueFrom: &core.EnvVarSource{ + SecretKeyRef: &core.SecretKeySelector{ + LocalObjectReference: core.LocalObjectReference{ Name: "some-secret", }, Key: "secret-key", @@ -3221,9 +3412,9 @@ func TestValidateEnv(t *testing.T) { }, { Name: "ENV_VAR_1", - ValueFrom: &api.EnvVarSource{ - ConfigMapKeyRef: &api.ConfigMapKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + ValueFrom: &core.EnvVarSource{ + ConfigMapKeyRef: &core.ConfigMapKeySelector{ + LocalObjectReference: core.LocalObjectReference{ Name: "some-config-map", }, Key: "some-key", @@ -3237,42 +3428,42 @@ func TestValidateEnv(t *testing.T) { errorCases := []struct { name string - envs []api.EnvVar + envs []core.EnvVar expectedError string }{ { name: "zero-length name", - envs: []api.EnvVar{{Name: ""}}, + envs: []core.EnvVar{{Name: ""}}, expectedError: "[0].name: Required value", }, { name: "illegal character", - envs: []api.EnvVar{{Name: "a!b"}}, + envs: []core.EnvVar{{Name: "a!b"}}, expectedError: `[0].name: Invalid value: "a!b": ` + envVarNameErrMsg, }, { name: "dot only", - envs: []api.EnvVar{{Name: "."}}, + envs: []core.EnvVar{{Name: "."}}, expectedError: `[0].name: Invalid value: ".": must not be`, }, { name: "double dots only", - envs: []api.EnvVar{{Name: ".."}}, + envs: []core.EnvVar{{Name: ".."}}, expectedError: `[0].name: Invalid value: "..": must not be`, }, { name: "leading double dots", - envs: []api.EnvVar{{Name: "..abc"}}, + envs: []core.EnvVar{{Name: "..abc"}}, expectedError: `[0].name: Invalid value: "..abc": must not start with`, }, { name: "value and valueFrom specified", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", Value: "foo", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "metadata.name", }, }, @@ -3281,23 +3472,23 @@ func TestValidateEnv(t *testing.T) { }, { name: "valueFrom without a source", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{}, + ValueFrom: &core.EnvVarSource{}, }}, expectedError: "[0].valueFrom: Invalid value: \"\": must specify one of: `fieldRef`, `resourceFieldRef`, `configMapKeyRef` or `secretKeyRef`", }, { name: "valueFrom.fieldRef and valueFrom.secretKeyRef specified", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "metadata.name", }, - SecretKeyRef: &api.SecretKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + SecretKeyRef: &core.SecretKeySelector{ + LocalObjectReference: core.LocalObjectReference{ Name: "a-secret", }, Key: "a-key", @@ -3308,15 +3499,15 @@ func TestValidateEnv(t *testing.T) { }, { name: "valueFrom.fieldRef and valueFrom.configMapKeyRef set", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "some_var_name", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "metadata.name", }, - ConfigMapKeyRef: &api.ConfigMapKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + ConfigMapKeyRef: &core.ConfigMapKeySelector{ + LocalObjectReference: core.LocalObjectReference{ Name: "some-config-map", }, Key: "some-key", @@ -3327,21 +3518,21 @@ func TestValidateEnv(t *testing.T) { }, { name: "valueFrom.fieldRef and valueFrom.secretKeyRef specified", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), FieldPath: "metadata.name", }, - SecretKeyRef: &api.SecretKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + SecretKeyRef: &core.SecretKeySelector{ + LocalObjectReference: core.LocalObjectReference{ Name: "a-secret", }, Key: "a-key", }, - ConfigMapKeyRef: &api.ConfigMapKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + ConfigMapKeyRef: &core.ConfigMapKeySelector{ + LocalObjectReference: core.LocalObjectReference{ Name: "some-config-map", }, Key: "some-key", @@ -3352,11 +3543,11 @@ func TestValidateEnv(t *testing.T) { }, { name: "valueFrom.secretKeyRef.name invalid", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{ - SecretKeyRef: &api.SecretKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + ValueFrom: &core.EnvVarSource{ + SecretKeyRef: &core.SecretKeySelector{ + LocalObjectReference: core.LocalObjectReference{ Name: "$%^&*#", }, Key: "a-key", @@ -3366,11 +3557,11 @@ func TestValidateEnv(t *testing.T) { }, { name: "valueFrom.configMapKeyRef.name invalid", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{ - ConfigMapKeyRef: &api.ConfigMapKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + ValueFrom: &core.EnvVarSource{ + ConfigMapKeyRef: &core.ConfigMapKeySelector{ + LocalObjectReference: core.LocalObjectReference{ Name: "$%^&*#", }, Key: "some-key", @@ -3380,11 +3571,11 @@ func TestValidateEnv(t *testing.T) { }, { name: "missing FieldPath on ObjectFieldSelector", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), }, }, }}, @@ -3392,10 +3583,10 @@ func TestValidateEnv(t *testing.T) { }, { name: "missing APIVersion on ObjectFieldSelector", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ FieldPath: "metadata.name", }, }, @@ -3404,12 +3595,12 @@ func TestValidateEnv(t *testing.T) { }, { name: "invalid fieldPath", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ FieldPath: "metadata.whoops", - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), }, }, }}, @@ -3417,10 +3608,10 @@ func TestValidateEnv(t *testing.T) { }, { name: "invalid fieldPath labels", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "labels", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ FieldPath: "metadata.labels", APIVersion: "v1", }, @@ -3430,10 +3621,10 @@ func TestValidateEnv(t *testing.T) { }, { name: "invalid fieldPath annotations", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ FieldPath: "metadata.annotations", APIVersion: "v1", }, @@ -3443,12 +3634,12 @@ func TestValidateEnv(t *testing.T) { }, { name: "unsupported fieldPath", - envs: []api.EnvVar{{ + envs: []core.EnvVar{{ Name: "abc", - ValueFrom: &api.EnvVarSource{ - FieldRef: &api.ObjectFieldSelector{ + ValueFrom: &core.EnvVarSource{ + FieldRef: &core.ObjectFieldSelector{ FieldPath: "status.phase", - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(core.GroupName).GroupVersion.String(), }, }, }}, @@ -3470,39 +3661,39 @@ func TestValidateEnv(t *testing.T) { } func TestValidateEnvFrom(t *testing.T) { - successCase := []api.EnvFromSource{ + successCase := []core.EnvFromSource{ { - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}, + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}, }, }, { Prefix: "pre_", - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}, + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}, }, }, { Prefix: "a.b", - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}, + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}, }, }, { - SecretRef: &api.SecretEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}, + SecretRef: &core.SecretEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}, }, }, { Prefix: "pre_", - SecretRef: &api.SecretEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}, + SecretRef: &core.SecretEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}, }, }, { Prefix: "a.b", - SecretRef: &api.SecretEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}, + SecretRef: &core.SecretEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}, }, }, } @@ -3512,106 +3703,106 @@ func TestValidateEnvFrom(t *testing.T) { errorCases := []struct { name string - envs []api.EnvFromSource + envs []core.EnvFromSource expectedError string }{ { name: "zero-length name", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ { - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: ""}}, + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: ""}}, }, }, expectedError: "field[0].configMapRef.name: Required value", }, { name: "invalid name", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ { - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "$"}}, + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "$"}}, }, }, expectedError: "field[0].configMapRef.name: Invalid value", }, { name: "invalid prefix", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ { Prefix: "a!b", - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}}, + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}}, }, }, expectedError: `field[0].prefix: Invalid value: "a!b": ` + envVarNameErrMsg, }, { name: "zero-length name", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ { - SecretRef: &api.SecretEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: ""}}, + SecretRef: &core.SecretEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: ""}}, }, }, expectedError: "field[0].secretRef.name: Required value", }, { name: "invalid name", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ { - SecretRef: &api.SecretEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "&"}}, + SecretRef: &core.SecretEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "&"}}, }, }, expectedError: "field[0].secretRef.name: Invalid value", }, { name: "invalid prefix", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ { Prefix: "a!b", - SecretRef: &api.SecretEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}}, + SecretRef: &core.SecretEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}}, }, }, expectedError: `field[0].prefix: Invalid value: "a!b": ` + envVarNameErrMsg, }, { name: "no refs", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ {}, }, expectedError: "field: Invalid value: \"\": must specify one of: `configMapRef` or `secretRef`", }, { name: "multiple refs", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ { - SecretRef: &api.SecretEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}}, - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "abc"}}, + SecretRef: &core.SecretEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}}, + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "abc"}}, }, }, expectedError: "field: Invalid value: \"\": may not have more than one field specified at a time", }, { name: "invalid secret ref name", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ { - SecretRef: &api.SecretEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "$%^&*#"}}, + SecretRef: &core.SecretEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "$%^&*#"}}, }, }, expectedError: "field[0].secretRef.name: Invalid value: \"$%^&*#\": " + dnsSubdomainLabelErrMsg, }, { name: "invalid config ref name", - envs: []api.EnvFromSource{ + envs: []core.EnvFromSource{ { - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{Name: "$%^&*#"}}, + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{Name: "$%^&*#"}}, }, }, expectedError: "field[0].configMapRef.name: Invalid value: \"$%^&*#\": " + dnsSubdomainLabelErrMsg, @@ -3633,17 +3824,20 @@ func TestValidateEnvFrom(t *testing.T) { func TestValidateVolumeMounts(t *testing.T) { volumes := sets.NewString("abc", "123", "abc-123") - container := api.Container{ + container := core.Container{ SecurityContext: nil, } - propagation := api.MountPropagationBidirectional + propagation := core.MountPropagationBidirectional - successCase := []api.VolumeMount{ + successCase := []core.VolumeMount{ {Name: "abc", MountPath: "/foo"}, {Name: "123", MountPath: "/bar"}, {Name: "abc-123", MountPath: "/baz"}, {Name: "abc-123", MountPath: "/baa", SubPath: ""}, {Name: "abc-123", MountPath: "/bab", SubPath: "baz"}, + {Name: "abc-123", MountPath: "d:", SubPath: ""}, + {Name: "abc-123", MountPath: "F:", SubPath: ""}, + {Name: "abc-123", MountPath: "G:\\mount", SubPath: ""}, {Name: "abc-123", MountPath: "/bac", SubPath: ".baz"}, {Name: "abc-123", MountPath: "/bad", SubPath: "..baz"}, } @@ -3651,13 +3845,14 @@ func TestValidateVolumeMounts(t *testing.T) { t.Errorf("expected success: %v", errs) } - errorCases := map[string][]api.VolumeMount{ + errorCases := map[string][]core.VolumeMount{ "empty name": {{Name: "", MountPath: "/foo"}}, "name not found": {{Name: "", MountPath: "/foo"}}, "empty mountpath": {{Name: "abc", MountPath: ""}}, "relative mountpath": {{Name: "abc", MountPath: "bar"}}, "mountpath collision": {{Name: "foo", MountPath: "/path/a"}, {Name: "bar", MountPath: "/path/a"}}, "absolute subpath": {{Name: "abc", MountPath: "/bar", SubPath: "/baz"}}, + "windows absolute subpath": {{Name: "abc", MountPath: "D", SubPath: ""}}, "subpath in ..": {{Name: "abc", MountPath: "/bar", SubPath: "../baz"}}, "subpath contains ..": {{Name: "abc", MountPath: "/bar", SubPath: "baz/../bat"}}, "subpath ends in ..": {{Name: "abc", MountPath: "/bar", SubPath: "./.."}}, @@ -3673,90 +3868,90 @@ func TestValidateVolumeMounts(t *testing.T) { func TestValidateMountPropagation(t *testing.T) { bTrue := true bFalse := false - privilegedContainer := &api.Container{ - SecurityContext: &api.SecurityContext{ + privilegedContainer := &core.Container{ + SecurityContext: &core.SecurityContext{ Privileged: &bTrue, }, } - nonPrivilegedContainer := &api.Container{ - SecurityContext: &api.SecurityContext{ + nonPrivilegedContainer := &core.Container{ + SecurityContext: &core.SecurityContext{ Privileged: &bFalse, }, } - defaultContainer := &api.Container{} + defaultContainer := &core.Container{} - propagationBidirectional := api.MountPropagationBidirectional - propagationHostToContainer := api.MountPropagationHostToContainer - propagationInvalid := api.MountPropagationMode("invalid") + propagationBidirectional := core.MountPropagationBidirectional + propagationHostToContainer := core.MountPropagationHostToContainer + propagationInvalid := core.MountPropagationMode("invalid") tests := []struct { - mount api.VolumeMount - container *api.Container + mount core.VolumeMount + container *core.Container expectError bool }{ { // implicitly non-privileged container + no propagation - api.VolumeMount{Name: "foo", MountPath: "/foo"}, + core.VolumeMount{Name: "foo", MountPath: "/foo"}, defaultContainer, false, }, { // implicitly non-privileged container + HostToContainer - api.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationHostToContainer}, + core.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationHostToContainer}, defaultContainer, false, }, { // error: implicitly non-privileged container + Bidirectional - api.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationBidirectional}, + core.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationBidirectional}, defaultContainer, true, }, { // explicitly non-privileged container + no propagation - api.VolumeMount{Name: "foo", MountPath: "/foo"}, + core.VolumeMount{Name: "foo", MountPath: "/foo"}, nonPrivilegedContainer, false, }, { // explicitly non-privileged container + HostToContainer - api.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationHostToContainer}, + core.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationHostToContainer}, nonPrivilegedContainer, false, }, { // explicitly non-privileged container + HostToContainer - api.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationBidirectional}, + core.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationBidirectional}, nonPrivilegedContainer, true, }, { // privileged container + no propagation - api.VolumeMount{Name: "foo", MountPath: "/foo"}, + core.VolumeMount{Name: "foo", MountPath: "/foo"}, privilegedContainer, false, }, { // privileged container + HostToContainer - api.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationHostToContainer}, + core.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationHostToContainer}, privilegedContainer, false, }, { // privileged container + Bidirectional - api.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationBidirectional}, + core.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationBidirectional}, privilegedContainer, false, }, { // error: privileged container + invalid mount propagation - api.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationInvalid}, + core.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationInvalid}, privilegedContainer, true, }, { // no container + Bidirectional - api.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationBidirectional}, + core.VolumeMount{Name: "foo", MountPath: "/foo", MountPropagation: &propagationBidirectional}, nil, false, }, @@ -3784,7 +3979,7 @@ func TestValidateMountPropagation(t *testing.T) { for i, test := range tests { volumes := sets.NewString("foo") - errs := ValidateVolumeMounts([]api.VolumeMount{test.mount}, volumes, test.container, field.NewPath("field")) + errs := ValidateVolumeMounts([]core.VolumeMount{test.mount}, volumes, test.container, field.NewPath("field")) if test.expectError && len(errs) == 0 { t.Errorf("test %d expected error, got none", i) } @@ -3796,12 +3991,12 @@ func TestValidateMountPropagation(t *testing.T) { } func TestValidateProbe(t *testing.T) { - handler := api.Handler{Exec: &api.ExecAction{Command: []string{"echo"}}} + handler := core.Handler{Exec: &core.ExecAction{Command: []string{"echo"}}} // These fields must be positive. positiveFields := [...]string{"InitialDelaySeconds", "TimeoutSeconds", "PeriodSeconds", "SuccessThreshold", "FailureThreshold"} - successCases := []*api.Probe{nil} + successCases := []*core.Probe{nil} for _, field := range positiveFields { - probe := &api.Probe{Handler: handler} + probe := &core.Probe{Handler: handler} reflect.ValueOf(probe).Elem().FieldByName(field).SetInt(10) successCases = append(successCases, probe) } @@ -3812,9 +4007,9 @@ func TestValidateProbe(t *testing.T) { } } - errorCases := []*api.Probe{{TimeoutSeconds: 10, InitialDelaySeconds: 10}} + errorCases := []*core.Probe{{TimeoutSeconds: 10, InitialDelaySeconds: 10}} for _, field := range positiveFields { - probe := &api.Probe{Handler: handler} + probe := &core.Probe{Handler: handler} reflect.ValueOf(probe).Elem().FieldByName(field).SetInt(-10) errorCases = append(errorCases, probe) } @@ -3826,13 +4021,13 @@ func TestValidateProbe(t *testing.T) { } func TestValidateHandler(t *testing.T) { - successCases := []api.Handler{ - {Exec: &api.ExecAction{Command: []string{"echo"}}}, - {HTTPGet: &api.HTTPGetAction{Path: "/", Port: intstr.FromInt(1), Host: "", Scheme: "HTTP"}}, - {HTTPGet: &api.HTTPGetAction{Path: "/foo", Port: intstr.FromInt(65535), Host: "host", Scheme: "HTTP"}}, - {HTTPGet: &api.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP"}}, - {HTTPGet: &api.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP", HTTPHeaders: []api.HTTPHeader{{Name: "Host", Value: "foo.example.com"}}}}, - {HTTPGet: &api.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP", HTTPHeaders: []api.HTTPHeader{{Name: "X-Forwarded-For", Value: "1.2.3.4"}, {Name: "X-Forwarded-For", Value: "5.6.7.8"}}}}, + successCases := []core.Handler{ + {Exec: &core.ExecAction{Command: []string{"echo"}}}, + {HTTPGet: &core.HTTPGetAction{Path: "/", Port: intstr.FromInt(1), Host: "", Scheme: "HTTP"}}, + {HTTPGet: &core.HTTPGetAction{Path: "/foo", Port: intstr.FromInt(65535), Host: "host", Scheme: "HTTP"}}, + {HTTPGet: &core.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP"}}, + {HTTPGet: &core.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP", HTTPHeaders: []core.HTTPHeader{{Name: "Host", Value: "foo.example.com"}}}}, + {HTTPGet: &core.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP", HTTPHeaders: []core.HTTPHeader{{Name: "X-Forwarded-For", Value: "1.2.3.4"}, {Name: "X-Forwarded-For", Value: "5.6.7.8"}}}}, } for _, h := range successCases { if errs := validateHandler(&h, field.NewPath("field")); len(errs) != 0 { @@ -3840,14 +4035,14 @@ func TestValidateHandler(t *testing.T) { } } - errorCases := []api.Handler{ + errorCases := []core.Handler{ {}, - {Exec: &api.ExecAction{Command: []string{}}}, - {HTTPGet: &api.HTTPGetAction{Path: "", Port: intstr.FromInt(0), Host: ""}}, - {HTTPGet: &api.HTTPGetAction{Path: "/foo", Port: intstr.FromInt(65536), Host: "host"}}, - {HTTPGet: &api.HTTPGetAction{Path: "", Port: intstr.FromString(""), Host: ""}}, - {HTTPGet: &api.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP", HTTPHeaders: []api.HTTPHeader{{Name: "Host:", Value: "foo.example.com"}}}}, - {HTTPGet: &api.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP", HTTPHeaders: []api.HTTPHeader{{Name: "X_Forwarded_For", Value: "foo.example.com"}}}}, + {Exec: &core.ExecAction{Command: []string{}}}, + {HTTPGet: &core.HTTPGetAction{Path: "", Port: intstr.FromInt(0), Host: ""}}, + {HTTPGet: &core.HTTPGetAction{Path: "/foo", Port: intstr.FromInt(65536), Host: "host"}}, + {HTTPGet: &core.HTTPGetAction{Path: "", Port: intstr.FromString(""), Host: ""}}, + {HTTPGet: &core.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP", HTTPHeaders: []core.HTTPHeader{{Name: "Host:", Value: "foo.example.com"}}}}, + {HTTPGet: &core.HTTPGetAction{Path: "/", Port: intstr.FromString("port"), Host: "", Scheme: "HTTP", HTTPHeaders: []core.HTTPHeader{{Name: "X_Forwarded_For", Value: "foo.example.com"}}}}, } for _, h := range errorCases { if errs := validateHandler(&h, field.NewPath("field")); len(errs) == 0 { @@ -3858,33 +4053,33 @@ func TestValidateHandler(t *testing.T) { func TestValidatePullPolicy(t *testing.T) { type T struct { - Container api.Container - ExpectedPolicy api.PullPolicy + Container core.Container + ExpectedPolicy core.PullPolicy } testCases := map[string]T{ "NotPresent1": { - api.Container{Name: "abc", Image: "image:latest", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, - api.PullIfNotPresent, + core.Container{Name: "abc", Image: "image:latest", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, + core.PullIfNotPresent, }, "NotPresent2": { - api.Container{Name: "abc1", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, - api.PullIfNotPresent, + core.Container{Name: "abc1", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, + core.PullIfNotPresent, }, "Always1": { - api.Container{Name: "123", Image: "image:latest", ImagePullPolicy: "Always"}, - api.PullAlways, + core.Container{Name: "123", Image: "image:latest", ImagePullPolicy: "Always"}, + core.PullAlways, }, "Always2": { - api.Container{Name: "1234", Image: "image", ImagePullPolicy: "Always"}, - api.PullAlways, + core.Container{Name: "1234", Image: "image", ImagePullPolicy: "Always"}, + core.PullAlways, }, "Never1": { - api.Container{Name: "abc-123", Image: "image:latest", ImagePullPolicy: "Never"}, - api.PullNever, + core.Container{Name: "abc-123", Image: "image:latest", ImagePullPolicy: "Never"}, + core.PullNever, }, "Never2": { - api.Container{Name: "abc-1234", Image: "image", ImagePullPolicy: "Never"}, - api.PullNever, + core.Container{Name: "abc-1234", Image: "image", ImagePullPolicy: "Never"}, + core.PullNever, }, } for k, v := range testCases { @@ -3899,10 +4094,10 @@ func TestValidatePullPolicy(t *testing.T) { } } -func getResourceLimits(cpu, memory string) api.ResourceList { - res := api.ResourceList{} - res[api.ResourceCPU] = resource.MustParse(cpu) - res[api.ResourceMemory] = resource.MustParse(memory) +func getResourceLimits(cpu, memory string) core.ResourceList { + res := core.ResourceList{} + res[core.ResourceCPU] = resource.MustParse(cpu) + res[core.ResourceMemory] = resource.MustParse(memory) return res } @@ -3912,7 +4107,7 @@ func TestValidateContainers(t *testing.T) { AllowPrivileged: true, }) - successCase := []api.Container{ + successCase := []core.Container{ {Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, // backwards compatibility to ensure containers in pod template spec do not check for this {Name: "def", Image: " ", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, @@ -3922,9 +4117,9 @@ func TestValidateContainers(t *testing.T) { { Name: "life-123", Image: "image", - Lifecycle: &api.Lifecycle{ - PreStop: &api.Handler{ - Exec: &api.ExecAction{Command: []string{"ls", "-l"}}, + Lifecycle: &core.Lifecycle{ + PreStop: &core.Handler{ + Exec: &core.ExecAction{Command: []string{"ls", "-l"}}, }, }, ImagePullPolicy: "IfNotPresent", @@ -3933,11 +4128,11 @@ func TestValidateContainers(t *testing.T) { { Name: "resources-test", Image: "image", - Resources: api.ResourceRequirements{ - Limits: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName("my.org/resource"): resource.MustParse("10"), + Resources: core.ResourceRequirements{ + Limits: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName("my.org/resource"): resource.MustParse("10"), }, }, ImagePullPolicy: "IfNotPresent", @@ -3946,16 +4141,16 @@ func TestValidateContainers(t *testing.T) { { Name: "resources-test-with-gpu-with-request", Image: "image", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName(api.ResourceNvidiaGPU): resource.MustParse("1"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName(core.ResourceNvidiaGPU): resource.MustParse("1"), }, - Limits: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName(api.ResourceNvidiaGPU): resource.MustParse("1"), + Limits: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName(core.ResourceNvidiaGPU): resource.MustParse("1"), }, }, ImagePullPolicy: "IfNotPresent", @@ -3964,15 +4159,15 @@ func TestValidateContainers(t *testing.T) { { Name: "resources-test-with-gpu-without-request", Image: "image", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), }, - Limits: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName(api.ResourceNvidiaGPU): resource.MustParse("1"), + Limits: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName(core.ResourceNvidiaGPU): resource.MustParse("1"), }, }, ImagePullPolicy: "IfNotPresent", @@ -3981,12 +4176,12 @@ func TestValidateContainers(t *testing.T) { { Name: "resources-request-limit-simple", Image: "image", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("8"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("8"), }, - Limits: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), + Limits: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), }, }, ImagePullPolicy: "IfNotPresent", @@ -3995,16 +4190,16 @@ func TestValidateContainers(t *testing.T) { { Name: "resources-request-limit-edge", Image: "image", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName("my.org/resource"): resource.MustParse("10"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName("my.org/resource"): resource.MustParse("10"), }, - Limits: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName("my.org/resource"): resource.MustParse("10"), + Limits: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName("my.org/resource"): resource.MustParse("10"), }, }, ImagePullPolicy: "IfNotPresent", @@ -4013,14 +4208,14 @@ func TestValidateContainers(t *testing.T) { { Name: "resources-request-limit-partials", Image: "image", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("9.5"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("9.5"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), }, - Limits: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName("my.org/resource"): resource.MustParse("10"), + Limits: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName("my.org/resource"): resource.MustParse("10"), }, }, ImagePullPolicy: "IfNotPresent", @@ -4029,10 +4224,10 @@ func TestValidateContainers(t *testing.T) { { Name: "resources-request", Image: "image", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("9.5"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("9.5"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), }, }, ImagePullPolicy: "IfNotPresent", @@ -4041,7 +4236,7 @@ func TestValidateContainers(t *testing.T) { { Name: "same-host-port-different-protocol", Image: "image", - Ports: []api.ContainerPort{ + Ports: []core.ContainerPort{ {ContainerPort: 80, HostPort: 80, Protocol: "TCP"}, {ContainerPort: 80, HostPort: 80, Protocol: "UDP"}, }, @@ -4065,10 +4260,10 @@ func TestValidateContainers(t *testing.T) { Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File", - EnvFrom: []api.EnvFromSource{ + EnvFrom: []core.EnvFromSource{ { - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{ + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{ Name: "test", }, }, @@ -4084,7 +4279,7 @@ func TestValidateContainers(t *testing.T) { capabilities.SetForTests(capabilities.Capabilities{ AllowPrivileged: false, }) - errorCases := map[string][]api.Container{ + errorCases := map[string][]core.Container{ "zero-length name": {{Name: "", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, "zero-length-image": {{Name: "abc", Image: "", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, "name > 63 characters": {{Name: strings.Repeat("a", 64), Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, @@ -4095,25 +4290,25 @@ func TestValidateContainers(t *testing.T) { }, "zero-length image": {{Name: "abc", Image: "", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, "host port not unique": { - {Name: "abc", Image: "image", Ports: []api.ContainerPort{{ContainerPort: 80, HostPort: 80, Protocol: "TCP"}}, + {Name: "abc", Image: "image", Ports: []core.ContainerPort{{ContainerPort: 80, HostPort: 80, Protocol: "TCP"}}, ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, - {Name: "def", Image: "image", Ports: []api.ContainerPort{{ContainerPort: 81, HostPort: 80, Protocol: "TCP"}}, + {Name: "def", Image: "image", Ports: []core.ContainerPort{{ContainerPort: 81, HostPort: 80, Protocol: "TCP"}}, ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, }, "invalid env var name": { - {Name: "abc", Image: "image", Env: []api.EnvVar{{Name: "ev!1"}}, ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, + {Name: "abc", Image: "image", Env: []core.EnvVar{{Name: "ev!1"}}, ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, }, "unknown volume name": { - {Name: "abc", Image: "image", VolumeMounts: []api.VolumeMount{{Name: "anything", MountPath: "/foo"}}, + {Name: "abc", Image: "image", VolumeMounts: []core.VolumeMount{{Name: "anything", MountPath: "/foo"}}, ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, }, "invalid lifecycle, no exec command.": { { Name: "life-123", Image: "image", - Lifecycle: &api.Lifecycle{ - PreStop: &api.Handler{ - Exec: &api.ExecAction{}, + Lifecycle: &core.Lifecycle{ + PreStop: &core.Handler{ + Exec: &core.ExecAction{}, }, }, ImagePullPolicy: "IfNotPresent", @@ -4124,9 +4319,9 @@ func TestValidateContainers(t *testing.T) { { Name: "life-123", Image: "image", - Lifecycle: &api.Lifecycle{ - PreStop: &api.Handler{ - HTTPGet: &api.HTTPGetAction{}, + Lifecycle: &core.Lifecycle{ + PreStop: &core.Handler{ + HTTPGet: &core.HTTPGetAction{}, }, }, ImagePullPolicy: "IfNotPresent", @@ -4137,9 +4332,9 @@ func TestValidateContainers(t *testing.T) { { Name: "life-123", Image: "image", - Lifecycle: &api.Lifecycle{ - PreStop: &api.Handler{ - TCPSocket: &api.TCPSocketAction{}, + Lifecycle: &core.Lifecycle{ + PreStop: &core.Handler{ + TCPSocket: &core.TCPSocketAction{}, }, }, ImagePullPolicy: "IfNotPresent", @@ -4150,9 +4345,9 @@ func TestValidateContainers(t *testing.T) { { Name: "life-123", Image: "image", - Lifecycle: &api.Lifecycle{ - PreStop: &api.Handler{ - TCPSocket: &api.TCPSocketAction{ + Lifecycle: &core.Lifecycle{ + PreStop: &core.Handler{ + TCPSocket: &core.TCPSocketAction{ Port: intstr.FromInt(0), }, }, @@ -4165,8 +4360,8 @@ func TestValidateContainers(t *testing.T) { { Name: "life-123", Image: "image", - Lifecycle: &api.Lifecycle{ - PreStop: &api.Handler{}, + Lifecycle: &core.Lifecycle{ + PreStop: &core.Handler{}, }, ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File", @@ -4176,9 +4371,9 @@ func TestValidateContainers(t *testing.T) { { Name: "life-123", Image: "image", - LivenessProbe: &api.Probe{ - Handler: api.Handler{ - TCPSocket: &api.TCPSocketAction{}, + LivenessProbe: &core.Probe{ + Handler: core.Handler{ + TCPSocket: &core.TCPSocketAction{}, }, }, ImagePullPolicy: "IfNotPresent", @@ -4189,8 +4384,8 @@ func TestValidateContainers(t *testing.T) { { Name: "life-123", Image: "image", - LivenessProbe: &api.Probe{ - Handler: api.Handler{}, + LivenessProbe: &core.Probe{ + Handler: core.Handler{}, }, ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File", @@ -4219,8 +4414,8 @@ func TestValidateContainers(t *testing.T) { { Name: "abc-123", Image: "image", - Resources: api.ResourceRequirements{ - Limits: api.ResourceList{ + Resources: core.ResourceRequirements{ + Limits: core.ResourceList{ "disk": resource.MustParse("10G"), }, }, @@ -4232,7 +4427,7 @@ func TestValidateContainers(t *testing.T) { { Name: "abc-123", Image: "image", - Resources: api.ResourceRequirements{ + Resources: core.ResourceRequirements{ Limits: getResourceLimits("-10", "0"), }, ImagePullPolicy: "IfNotPresent", @@ -4243,7 +4438,7 @@ func TestValidateContainers(t *testing.T) { { Name: "abc-123", Image: "image", - Resources: api.ResourceRequirements{ + Resources: core.ResourceRequirements{ Requests: getResourceLimits("-10", "0"), }, ImagePullPolicy: "IfNotPresent", @@ -4254,7 +4449,7 @@ func TestValidateContainers(t *testing.T) { { Name: "abc-123", Image: "image", - Resources: api.ResourceRequirements{ + Resources: core.ResourceRequirements{ Limits: getResourceLimits("0", "-10"), }, ImagePullPolicy: "IfNotPresent", @@ -4265,16 +4460,16 @@ func TestValidateContainers(t *testing.T) { { Name: "gpu-resource-request-limit", Image: "image", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName(api.ResourceNvidiaGPU): resource.MustParse("0"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName(core.ResourceNvidiaGPU): resource.MustParse("0"), }, - Limits: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName(api.ResourceNvidiaGPU): resource.MustParse("1"), + Limits: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName(core.ResourceNvidiaGPU): resource.MustParse("1"), }, }, TerminationMessagePolicy: "File", @@ -4285,11 +4480,11 @@ func TestValidateContainers(t *testing.T) { { Name: "gpu-resource-request-limit", Image: "image", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName(api.ResourceNvidiaGPU): resource.MustParse("1"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName(core.ResourceNvidiaGPU): resource.MustParse("1"), }, }, TerminationMessagePolicy: "File", @@ -4300,7 +4495,7 @@ func TestValidateContainers(t *testing.T) { { Name: "abc-123", Image: "image", - Resources: api.ResourceRequirements{ + Resources: core.ResourceRequirements{ Limits: getResourceLimits("5", "3"), Requests: getResourceLimits("6", "3"), }, @@ -4312,7 +4507,7 @@ func TestValidateContainers(t *testing.T) { { Name: "abc-123", Image: "image", - Resources: api.ResourceRequirements{ + Resources: core.ResourceRequirements{ Limits: getResourceLimits("5", "3"), Requests: getResourceLimits("6", "4"), }, @@ -4326,10 +4521,10 @@ func TestValidateContainers(t *testing.T) { Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File", - EnvFrom: []api.EnvFromSource{ + EnvFrom: []core.EnvFromSource{ { - ConfigMapRef: &api.ConfigMapEnvSource{ - LocalObjectReference: api.LocalObjectReference{ + ConfigMapRef: &core.ConfigMapEnvSource{ + LocalObjectReference: core.LocalObjectReference{ Name: "$%^&*#", }, }, @@ -4346,10 +4541,10 @@ func TestValidateContainers(t *testing.T) { } func TestValidateRestartPolicy(t *testing.T) { - successCases := []api.RestartPolicy{ - api.RestartPolicyAlways, - api.RestartPolicyOnFailure, - api.RestartPolicyNever, + successCases := []core.RestartPolicy{ + core.RestartPolicyAlways, + core.RestartPolicyOnFailure, + core.RestartPolicyNever, } for _, policy := range successCases { if errs := validateRestartPolicy(&policy, field.NewPath("field")); len(errs) != 0 { @@ -4357,7 +4552,7 @@ func TestValidateRestartPolicy(t *testing.T) { } } - errorCases := []api.RestartPolicy{"", "newpolicy"} + errorCases := []core.RestartPolicy{"", "newpolicy"} for k, policy := range errorCases { if errs := validateRestartPolicy(&policy, field.NewPath("field")); len(errs) == 0 { @@ -4367,14 +4562,14 @@ func TestValidateRestartPolicy(t *testing.T) { } func TestValidateDNSPolicy(t *testing.T) { - successCases := []api.DNSPolicy{api.DNSClusterFirst, api.DNSDefault, api.DNSPolicy(api.DNSClusterFirst)} + successCases := []core.DNSPolicy{core.DNSClusterFirst, core.DNSDefault, core.DNSPolicy(core.DNSClusterFirst)} for _, policy := range successCases { if errs := validateDNSPolicy(&policy, field.NewPath("field")); len(errs) != 0 { t.Errorf("expected success: %v", errs) } } - errorCases := []api.DNSPolicy{api.DNSPolicy("invalid")} + errorCases := []core.DNSPolicy{core.DNSPolicy("invalid")} for _, policy := range errorCases { if errs := validateDNSPolicy(&policy, field.NewPath("field")); len(errs) == 0 { t.Errorf("expected failure for %v", policy) @@ -4409,128 +4604,128 @@ func TestValidatePodSpec(t *testing.T) { t.Errorf("Failed to enable feature gate for PodPriority: %v", err) return } - successCases := []api.PodSpec{ + successCases := []core.PodSpec{ { // Populate basic fields, leave defaults for most. - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate all fields. - Volumes: []api.Volume{ - {Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, + Volumes: []core.Volume{ + {Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}, }, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - InitContainers: []api.Container{{Name: "ictr", Image: "iimage", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + InitContainers: []core.Container{{Name: "ictr", Image: "iimage", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, NodeSelector: map[string]string{ "key": "value", }, NodeName: "foobar", - DNSPolicy: api.DNSClusterFirst, + DNSPolicy: core.DNSClusterFirst, ActiveDeadlineSeconds: &activeDeadlineSeconds, ServiceAccountName: "acct", }, { // Populate all fields with larger active deadline. - Volumes: []api.Volume{ - {Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, + Volumes: []core.Volume{ + {Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}, }, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - InitContainers: []api.Container{{Name: "ictr", Image: "iimage", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + InitContainers: []core.Container{{Name: "ictr", Image: "iimage", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, NodeSelector: map[string]string{ "key": "value", }, NodeName: "foobar", - DNSPolicy: api.DNSClusterFirst, + DNSPolicy: core.DNSClusterFirst, ActiveDeadlineSeconds: &activeDeadlineSecondsMax, ServiceAccountName: "acct", }, { // Populate HostNetwork. - Containers: []api.Container{ + Containers: []core.Container{ {Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File", - Ports: []api.ContainerPort{ + Ports: []core.ContainerPort{ {HostPort: 8080, ContainerPort: 8080, Protocol: "TCP"}}, }, }, - SecurityContext: &api.PodSecurityContext{ + SecurityContext: &core.PodSecurityContext{ HostNetwork: true, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate RunAsUser SupplementalGroups FSGroup with minID 0 - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - SecurityContext: &api.PodSecurityContext{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + SecurityContext: &core.PodSecurityContext{ SupplementalGroups: []int64{minGroupID}, RunAsUser: &minUserID, FSGroup: &minGroupID, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate RunAsUser SupplementalGroups FSGroup with maxID 2147483647 - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - SecurityContext: &api.PodSecurityContext{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + SecurityContext: &core.PodSecurityContext{ SupplementalGroups: []int64{maxGroupID}, RunAsUser: &maxUserID, FSGroup: &maxGroupID, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate HostIPC. - SecurityContext: &api.PodSecurityContext{ + SecurityContext: &core.PodSecurityContext{ HostIPC: true, }, - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate HostPID. - SecurityContext: &api.PodSecurityContext{ + SecurityContext: &core.PodSecurityContext{ HostPID: true, }, - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate Affinity. - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate HostAliases. - HostAliases: []api.HostAlias{{IP: "12.34.56.78", Hostnames: []string{"host1", "host2"}}}, - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + HostAliases: []core.HostAlias{{IP: "12.34.56.78", Hostnames: []string{"host1", "host2"}}}, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate HostAliases with `foo.bar` hostnames. - HostAliases: []api.HostAlias{{IP: "12.34.56.78", Hostnames: []string{"host1.foo", "host2.bar"}}}, - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + HostAliases: []core.HostAlias{{IP: "12.34.56.78", Hostnames: []string{"host1.foo", "host2.bar"}}}, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate HostAliases with HostNetwork. - HostAliases: []api.HostAlias{{IP: "12.34.56.78", Hostnames: []string{"host1.foo", "host2.bar"}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - SecurityContext: &api.PodSecurityContext{ + HostAliases: []core.HostAlias{{IP: "12.34.56.78", Hostnames: []string{"host1.foo", "host2.bar"}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + SecurityContext: &core.PodSecurityContext{ HostNetwork: true, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, { // Populate PriorityClassName. - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, PriorityClassName: "valid-name", }, } @@ -4548,171 +4743,171 @@ func TestValidatePodSpec(t *testing.T) { minGroupID = int64(-1) maxGroupID = int64(2147483648) - failureCases := map[string]api.PodSpec{ + failureCases := map[string]core.PodSpec{ "bad volume": { - Volumes: []api.Volume{{}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Volumes: []core.Volume{{}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, "no containers": { - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad container": { - Containers: []api.Container{{}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Containers: []core.Container{{}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad init container": { - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - InitContainers: []api.Container{{}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + InitContainers: []core.Container{{}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad DNS policy": { - DNSPolicy: api.DNSPolicy("invalid"), - RestartPolicy: api.RestartPolicyAlways, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + DNSPolicy: core.DNSPolicy("invalid"), + RestartPolicy: core.RestartPolicyAlways, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, "bad service account name": { - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, ServiceAccountName: "invalidName", }, "bad restart policy": { RestartPolicy: "UnknowPolicy", - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, "with hostNetwork hostPort not equal to containerPort": { - Containers: []api.Container{ - {Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", Ports: []api.ContainerPort{ + Containers: []core.Container{ + {Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", Ports: []core.ContainerPort{ {HostPort: 8080, ContainerPort: 2600, Protocol: "TCP"}}, }, }, - SecurityContext: &api.PodSecurityContext{ + SecurityContext: &core.PodSecurityContext{ HostNetwork: true, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "with hostAliases with invalid IP": { - SecurityContext: &api.PodSecurityContext{ + SecurityContext: &core.PodSecurityContext{ HostNetwork: false, }, - HostAliases: []api.HostAlias{{IP: "999.999.999.999", Hostnames: []string{"host1", "host2"}}}, + HostAliases: []core.HostAlias{{IP: "999.999.999.999", Hostnames: []string{"host1", "host2"}}}, }, "with hostAliases with invalid hostname": { - SecurityContext: &api.PodSecurityContext{ + SecurityContext: &core.PodSecurityContext{ HostNetwork: false, }, - HostAliases: []api.HostAlias{{IP: "12.34.56.78", Hostnames: []string{"@#$^#@#$"}}}, + HostAliases: []core.HostAlias{{IP: "12.34.56.78", Hostnames: []string{"@#$^#@#$"}}}, }, "bad supplementalGroups large than math.MaxInt32": { - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - SecurityContext: &api.PodSecurityContext{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + SecurityContext: &core.PodSecurityContext{ HostNetwork: false, SupplementalGroups: []int64{maxGroupID, 1234}, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad supplementalGroups less than 0": { - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - SecurityContext: &api.PodSecurityContext{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + SecurityContext: &core.PodSecurityContext{ HostNetwork: false, SupplementalGroups: []int64{minGroupID, 1234}, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad runAsUser large than math.MaxInt32": { - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - SecurityContext: &api.PodSecurityContext{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + SecurityContext: &core.PodSecurityContext{ HostNetwork: false, RunAsUser: &maxUserID, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad runAsUser less than 0": { - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - SecurityContext: &api.PodSecurityContext{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + SecurityContext: &core.PodSecurityContext{ HostNetwork: false, RunAsUser: &minUserID, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad fsGroup large than math.MaxInt32": { - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - SecurityContext: &api.PodSecurityContext{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + SecurityContext: &core.PodSecurityContext{ HostNetwork: false, FSGroup: &maxGroupID, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad fsGroup less than 0": { - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - SecurityContext: &api.PodSecurityContext{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + SecurityContext: &core.PodSecurityContext{ HostNetwork: false, FSGroup: &minGroupID, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad-active-deadline-seconds": { - Volumes: []api.Volume{ - {Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, + Volumes: []core.Volume{ + {Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}, }, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, NodeSelector: map[string]string{ "key": "value", }, NodeName: "foobar", - DNSPolicy: api.DNSClusterFirst, + DNSPolicy: core.DNSClusterFirst, ActiveDeadlineSeconds: &activeDeadlineSeconds, }, "active-deadline-seconds-too-large": { - Volumes: []api.Volume{ - {Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, + Volumes: []core.Volume{ + {Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}, }, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, NodeSelector: map[string]string{ "key": "value", }, NodeName: "foobar", - DNSPolicy: api.DNSClusterFirst, + DNSPolicy: core.DNSClusterFirst, ActiveDeadlineSeconds: &activeDeadlineSecondsTooLarge, }, "bad nodeName": { NodeName: "node name", - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, "bad PriorityClassName": { - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, PriorityClassName: "InvalidName", }, "with privileged and allowPrivilegeEscalation false": { - Containers: []api.Container{ + Containers: []core.Container{ { Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", - Ports: []api.ContainerPort{ + Ports: []core.ContainerPort{ {HostPort: 8080, ContainerPort: 2600, Protocol: "TCP"}}, - SecurityContext: &api.SecurityContext{ + SecurityContext: &core.SecurityContext{ Privileged: boolPtr(true), AllowPrivilegeEscalation: boolPtr(false), }, @@ -4720,16 +4915,16 @@ func TestValidatePodSpec(t *testing.T) { }, }, "with CAP_SYS_ADMIN and allowPrivilegeEscalation false": { - Containers: []api.Container{ + Containers: []core.Container{ { Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", - Ports: []api.ContainerPort{ + Ports: []core.ContainerPort{ {HostPort: 8080, ContainerPort: 2600, Protocol: "TCP"}}, - SecurityContext: &api.SecurityContext{ - Capabilities: &api.Capabilities{ - Add: []api.Capability{"CAP_SYS_ADMIN"}, + SecurityContext: &core.SecurityContext{ + Capabilities: &core.Capabilities{ + Add: []core.Capability{"CAP_SYS_ADMIN"}, }, AllowPrivilegeEscalation: boolPtr(false), }, @@ -4749,19 +4944,19 @@ func TestValidatePodSpec(t *testing.T) { return } priority := int32(100) - featuregatedCases := map[string]api.PodSpec{ + featuregatedCases := map[string]core.PodSpec{ "set PriorityClassName": { - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, PriorityClassName: "valid-name", }, "set Priority": { - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, Priority: &priority, }, } @@ -4772,8 +4967,8 @@ func TestValidatePodSpec(t *testing.T) { } } -func extendPodSpecwithTolerations(in api.PodSpec, tolerations []api.Toleration) api.PodSpec { - var out api.PodSpec +func extendPodSpecwithTolerations(in core.PodSpec, tolerations []core.Toleration) core.PodSpec { + var out core.PodSpec out.Containers = in.Containers out.RestartPolicy = in.RestartPolicy out.DNSPolicy = in.DNSPolicy @@ -4782,11 +4977,11 @@ func extendPodSpecwithTolerations(in api.PodSpec, tolerations []api.Toleration) } func TestValidatePod(t *testing.T) { - validPodSpec := func(affinity *api.Affinity) api.PodSpec { - spec := api.PodSpec{ - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + validPodSpec := func(affinity *core.Affinity) core.PodSpec { + spec := core.PodSpec{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, } if affinity != nil { spec.Affinity = affinity @@ -4794,25 +4989,25 @@ func TestValidatePod(t *testing.T) { return spec } - successCases := []api.Pod{ + successCases := []core.Pod{ { // Basic fields. ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns"}, - Spec: api.PodSpec{ - Volumes: []api.Volume{{Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Spec: core.PodSpec{ + Volumes: []core.Volume{{Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, { // Just about everything. ObjectMeta: metav1.ObjectMeta{Name: "abc.123.do-re-mi", Namespace: "ns"}, - Spec: api.PodSpec{ - Volumes: []api.Volume{ - {Name: "vol", VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, + Spec: core.PodSpec{ + Volumes: []core.Volume{ + {Name: "vol", VolumeSource: core.VolumeSource{EmptyDir: &core.EmptyDirVolumeSource{}}}, }, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, NodeSelector: map[string]string{ "key": "value", }, @@ -4827,41 +5022,41 @@ func TestValidatePod(t *testing.T) { Spec: validPodSpec( // TODO: Uncomment and move this block and move inside NodeAffinity once // RequiredDuringSchedulingRequiredDuringExecution is implemented - // RequiredDuringSchedulingRequiredDuringExecution: &api.NodeSelector{ - // NodeSelectorTerms: []api.NodeSelectorTerm{ + // RequiredDuringSchedulingRequiredDuringExecution: &core.NodeSelector{ + // NodeSelectorTerms: []core.NodeSelectorTerm{ // { - // MatchExpressions: []api.NodeSelectorRequirement{ + // MatchExpressions: []core.NodeSelectorRequirement{ // { // Key: "key1", - // Operator: api.NodeSelectorOpExists + // Operator: core.NodeSelectorOpExists // }, // }, // }, // }, // }, - &api.Affinity{ - NodeAffinity: &api.NodeAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: &api.NodeSelector{ - NodeSelectorTerms: []api.NodeSelectorTerm{ + &core.Affinity{ + NodeAffinity: &core.NodeAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: &core.NodeSelector{ + NodeSelectorTerms: []core.NodeSelectorTerm{ { - MatchExpressions: []api.NodeSelectorRequirement{ + MatchExpressions: []core.NodeSelectorRequirement{ { Key: "key2", - Operator: api.NodeSelectorOpIn, + Operator: core.NodeSelectorOpIn, Values: []string{"value1", "value2"}, }, }, }, }, }, - PreferredDuringSchedulingIgnoredDuringExecution: []api.PreferredSchedulingTerm{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.PreferredSchedulingTerm{ { Weight: 10, - Preference: api.NodeSelectorTerm{ - MatchExpressions: []api.NodeSelectorRequirement{ + Preference: core.NodeSelectorTerm{ + MatchExpressions: []core.NodeSelectorRequirement{ { Key: "foo", - Operator: api.NodeSelectorOpIn, + Operator: core.NodeSelectorOpIn, Values: []string{"bar"}, }, }, @@ -4890,9 +5085,9 @@ func TestValidatePod(t *testing.T) { // "topologyKey": "zone" // }] }, - Spec: validPodSpec(&api.Affinity{ - PodAffinity: &api.PodAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: []api.PodAffinityTerm{ + Spec: validPodSpec(&core.Affinity{ + PodAffinity: &core.PodAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: []core.PodAffinityTerm{ { LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -4907,10 +5102,10 @@ func TestValidatePod(t *testing.T) { Namespaces: []string{"ns"}, }, }, - PreferredDuringSchedulingIgnoredDuringExecution: []api.WeightedPodAffinityTerm{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.WeightedPodAffinityTerm{ { Weight: 10, - PodAffinityTerm: api.PodAffinityTerm{ + PodAffinityTerm: core.PodAffinityTerm{ LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -4946,9 +5141,9 @@ func TestValidatePod(t *testing.T) { // "topologyKey": "zone" // }] }, - Spec: validPodSpec(&api.Affinity{ - PodAntiAffinity: &api.PodAntiAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: []api.PodAffinityTerm{ + Spec: validPodSpec(&core.Affinity{ + PodAntiAffinity: &core.PodAntiAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: []core.PodAffinityTerm{ { LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -4962,10 +5157,10 @@ func TestValidatePod(t *testing.T) { Namespaces: []string{"ns"}, }, }, - PreferredDuringSchedulingIgnoredDuringExecution: []api.WeightedPodAffinityTerm{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.WeightedPodAffinityTerm{ { Weight: 10, - PodAffinityTerm: api.PodAffinityTerm{ + PodAffinityTerm: core.PodAffinityTerm{ LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -4987,21 +5182,21 @@ func TestValidatePod(t *testing.T) { Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "foo", Operator: "Exists", Value: "", Effect: "NoExecute", TolerationSeconds: &[]int64{60}[0]}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "foo", Operator: "Exists", Value: "", Effect: "NoExecute", TolerationSeconds: &[]int64{60}[0]}}), }, { // populate forgiveness tolerations with equal operator in annotations. ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "foo", Operator: "Equal", Value: "bar", Effect: "NoExecute", TolerationSeconds: &[]int64{60}[0]}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "foo", Operator: "Equal", Value: "bar", Effect: "NoExecute", TolerationSeconds: &[]int64{60}[0]}}), }, { // populate tolerations equal operator in annotations. ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "foo", Operator: "Equal", Value: "bar", Effect: "NoSchedule"}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "foo", Operator: "Equal", Value: "bar", Effect: "NoSchedule"}}), }, { // populate tolerations exists operator in annotations. ObjectMeta: metav1.ObjectMeta{ @@ -5015,35 +5210,35 @@ func TestValidatePod(t *testing.T) { Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Operator: "Exists", Effect: "NoSchedule"}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Operator: "Exists", Effect: "NoSchedule"}}), }, { // empty operator is OK for toleration, defaults to Equal. ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "foo", Value: "bar", Effect: "NoSchedule"}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "foo", Value: "bar", Effect: "NoSchedule"}}), }, { // empty effect is OK for toleration, empty toleration effect means match all taint effects. ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "foo", Operator: "Equal", Value: "bar"}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "foo", Operator: "Equal", Value: "bar"}}), }, { // negative tolerationSeconds is OK for toleration. ObjectMeta: metav1.ObjectMeta{ Name: "pod-forgiveness-invalid", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "node.kubernetes.io/not-ready", Operator: "Exists", Effect: "NoExecute", TolerationSeconds: &[]int64{-2}[0]}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "node.kubernetes.io/not-ready", Operator: "Exists", Effect: "NoExecute", TolerationSeconds: &[]int64{-2}[0]}}), }, { // docker default seccomp profile ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompPodAnnotationKey: "docker/default", + core.SeccompPodAnnotationKey: "docker/default", }, }, Spec: validPodSpec(nil), @@ -5053,7 +5248,7 @@ func TestValidatePod(t *testing.T) { Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompPodAnnotationKey: "unconfined", + core.SeccompPodAnnotationKey: "unconfined", }, }, Spec: validPodSpec(nil), @@ -5063,7 +5258,7 @@ func TestValidatePod(t *testing.T) { Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompPodAnnotationKey: "localhost/foo", + core.SeccompPodAnnotationKey: "localhost/foo", }, }, Spec: validPodSpec(nil), @@ -5073,7 +5268,7 @@ func TestValidatePod(t *testing.T) { Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompContainerAnnotationKeyPrefix + "foo": "localhost/foo", + core.SeccompContainerAnnotationKeyPrefix + "foo": "localhost/foo", }, }, Spec: validPodSpec(nil), @@ -5096,11 +5291,11 @@ func TestValidatePod(t *testing.T) { apparmor.ContainerAnnotationKeyPrefix + "init-ctr": apparmor.ProfileRuntimeDefault, }, }, - Spec: api.PodSpec{ - InitContainers: []api.Container{{Name: "init-ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Spec: core.PodSpec{ + InitContainers: []core.Container{{Name: "init-ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, { // localhost AppArmor profile for a container @@ -5118,58 +5313,58 @@ func TestValidatePod(t *testing.T) { Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SysctlsPodAnnotationKey: "kernel.shmmni=32768,kernel.shmmax=1000000000", - api.UnsafeSysctlsPodAnnotationKey: "knet.ipv4.route.min_pmtu=1000", + core.SysctlsPodAnnotationKey: "kernel.shmmni=32768,kernel.shmmax=1000000000", + core.UnsafeSysctlsPodAnnotationKey: "knet.ipv4.route.min_pmtu=1000", }, }, Spec: validPodSpec(nil), }, { // valid opaque integer resources for init container ObjectMeta: metav1.ObjectMeta{Name: "valid-opaque-int", Namespace: "ns"}, - Spec: api.PodSpec{ - InitContainers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{ { Name: "valid-opaque-int", Image: "image", ImagePullPolicy: "IfNotPresent", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("10"), }, - Limits: api.ResourceList{ + Limits: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("20"), }, }, TerminationMessagePolicy: "File", }, }, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, { // valid opaque integer resources for regular container ObjectMeta: metav1.ObjectMeta{Name: "valid-opaque-int", Namespace: "ns"}, - Spec: api.PodSpec{ - InitContainers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - Containers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Containers: []core.Container{ { Name: "valid-opaque-int", Image: "image", ImagePullPolicy: "IfNotPresent", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("10"), }, - Limits: api.ResourceList{ + Limits: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("20"), }, }, TerminationMessagePolicy: "File", }, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, } @@ -5180,65 +5375,65 @@ func TestValidatePod(t *testing.T) { } errorCases := map[string]struct { - spec api.Pod + spec core.Pod expectedError string }{ "bad name": { expectedError: "metadata.name", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: "ns"}, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, }, }, "image whitespace": { expectedError: "spec.containers[0].image", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "ns"}, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "ctr", Image: " ", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: " ", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, }, }, "image leading and trailing whitespace": { expectedError: "spec.containers[0].image", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "ns"}, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "ctr", Image: " something ", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: " something ", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, }, }, "bad namespace": { expectedError: "metadata.namespace", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: ""}, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, }, }, "bad spec": { expectedError: "spec.containers[0].name", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "ns"}, - Spec: api.PodSpec{ - Containers: []api.Container{{}}, + Spec: core.PodSpec{ + Containers: []core.Container{{}}, }, }, }, "bad label": { expectedError: "NoUppercaseOrSpecialCharsLike=Equals", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "abc", Namespace: "ns", @@ -5246,26 +5441,26 @@ func TestValidatePod(t *testing.T) { "NoUppercaseOrSpecialCharsLike=Equals": "bar", }, }, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, }, }, "invalid node selector requirement in node affinity, operator can't be null": { expectedError: "spec.affinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].operator", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - NodeAffinity: &api.NodeAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: &api.NodeSelector{ - NodeSelectorTerms: []api.NodeSelectorTerm{ + Spec: validPodSpec(&core.Affinity{ + NodeAffinity: &core.NodeAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: &core.NodeSelector{ + NodeSelectorTerms: []core.NodeSelectorTerm{ { - MatchExpressions: []api.NodeSelectorRequirement{ + MatchExpressions: []core.NodeSelectorRequirement{ { Key: "key1", }, @@ -5279,21 +5474,21 @@ func TestValidatePod(t *testing.T) { }, "invalid preferredSchedulingTerm in node affinity, weight should be in range 1-100": { expectedError: "must be in the range 1-100", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - NodeAffinity: &api.NodeAffinity{ - PreferredDuringSchedulingIgnoredDuringExecution: []api.PreferredSchedulingTerm{ + Spec: validPodSpec(&core.Affinity{ + NodeAffinity: &core.NodeAffinity{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.PreferredSchedulingTerm{ { Weight: 199, - Preference: api.NodeSelectorTerm{ - MatchExpressions: []api.NodeSelectorRequirement{ + Preference: core.NodeSelectorTerm{ + MatchExpressions: []core.NodeSelectorRequirement{ { Key: "foo", - Operator: api.NodeSelectorOpIn, + Operator: core.NodeSelectorOpIn, Values: []string{"bar"}, }, }, @@ -5306,15 +5501,15 @@ func TestValidatePod(t *testing.T) { }, "invalid requiredDuringSchedulingIgnoredDuringExecution node selector, nodeSelectorTerms must have at least one term": { expectedError: "spec.affinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - NodeAffinity: &api.NodeAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: &api.NodeSelector{ - NodeSelectorTerms: []api.NodeSelectorTerm{}, + Spec: validPodSpec(&core.Affinity{ + NodeAffinity: &core.NodeAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: &core.NodeSelector{ + NodeSelectorTerms: []core.NodeSelectorTerm{}, }, }, }), @@ -5322,17 +5517,17 @@ func TestValidatePod(t *testing.T) { }, "invalid requiredDuringSchedulingIgnoredDuringExecution node selector term, matchExpressions must have at least one node selector requirement": { expectedError: "spec.affinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - NodeAffinity: &api.NodeAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: &api.NodeSelector{ - NodeSelectorTerms: []api.NodeSelectorTerm{ + Spec: validPodSpec(&core.Affinity{ + NodeAffinity: &core.NodeAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: &core.NodeSelector{ + NodeSelectorTerms: []core.NodeSelectorTerm{ { - MatchExpressions: []api.NodeSelectorRequirement{}, + MatchExpressions: []core.NodeSelectorRequirement{}, }, }, }, @@ -5342,17 +5537,17 @@ func TestValidatePod(t *testing.T) { }, "invalid weight in preferredDuringSchedulingIgnoredDuringExecution in pod affinity annotations, weight should be in range 1-100": { expectedError: "must be in the range 1-100", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - PodAffinity: &api.PodAffinity{ - PreferredDuringSchedulingIgnoredDuringExecution: []api.WeightedPodAffinityTerm{ + Spec: validPodSpec(&core.Affinity{ + PodAffinity: &core.PodAffinity{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.WeightedPodAffinityTerm{ { Weight: 109, - PodAffinityTerm: api.PodAffinityTerm{ + PodAffinityTerm: core.PodAffinityTerm{ LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -5373,17 +5568,17 @@ func TestValidatePod(t *testing.T) { }, "invalid labelSelector in preferredDuringSchedulingIgnoredDuringExecution in podaffinity annotations, values should be empty if the operator is Exists": { expectedError: "spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.matchExpressions.matchExpressions[0].values", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - PodAntiAffinity: &api.PodAntiAffinity{ - PreferredDuringSchedulingIgnoredDuringExecution: []api.WeightedPodAffinityTerm{ + Spec: validPodSpec(&core.Affinity{ + PodAntiAffinity: &core.PodAntiAffinity{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.WeightedPodAffinityTerm{ { Weight: 10, - PodAffinityTerm: api.PodAffinityTerm{ + PodAffinityTerm: core.PodAffinityTerm{ LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -5404,17 +5599,17 @@ func TestValidatePod(t *testing.T) { }, "invalid name space in preferredDuringSchedulingIgnoredDuringExecution in podaffinity annotations, name space shouldbe valid": { expectedError: "spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.namespace", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - PodAffinity: &api.PodAffinity{ - PreferredDuringSchedulingIgnoredDuringExecution: []api.WeightedPodAffinityTerm{ + Spec: validPodSpec(&core.Affinity{ + PodAffinity: &core.PodAffinity{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.WeightedPodAffinityTerm{ { Weight: 10, - PodAffinityTerm: api.PodAffinityTerm{ + PodAffinityTerm: core.PodAffinityTerm{ LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -5434,14 +5629,14 @@ func TestValidatePod(t *testing.T) { }, "invalid hard pod affinity, empty topologyKey is not allowed for hard pod affinity": { expectedError: "can not be empty", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - PodAffinity: &api.PodAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: []api.PodAffinityTerm{ + Spec: validPodSpec(&core.Affinity{ + PodAffinity: &core.PodAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: []core.PodAffinityTerm{ { LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -5461,14 +5656,14 @@ func TestValidatePod(t *testing.T) { }, "invalid hard pod anti-affinity, empty topologyKey is not allowed for hard pod anti-affinity": { expectedError: "can not be empty", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - PodAntiAffinity: &api.PodAntiAffinity{ - RequiredDuringSchedulingIgnoredDuringExecution: []api.PodAffinityTerm{ + Spec: validPodSpec(&core.Affinity{ + PodAntiAffinity: &core.PodAntiAffinity{ + RequiredDuringSchedulingIgnoredDuringExecution: []core.PodAffinityTerm{ { LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -5488,17 +5683,17 @@ func TestValidatePod(t *testing.T) { }, "invalid soft pod affinity, empty topologyKey is not allowed for soft pod affinity": { expectedError: "can not be empty", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - PodAffinity: &api.PodAffinity{ - PreferredDuringSchedulingIgnoredDuringExecution: []api.WeightedPodAffinityTerm{ + Spec: validPodSpec(&core.Affinity{ + PodAffinity: &core.PodAffinity{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.WeightedPodAffinityTerm{ { Weight: 10, - PodAffinityTerm: api.PodAffinityTerm{ + PodAffinityTerm: core.PodAffinityTerm{ LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -5518,17 +5713,17 @@ func TestValidatePod(t *testing.T) { }, "invalid soft pod anti-affinity, empty topologyKey is not allowed for soft pod anti-affinity": { expectedError: "can not be empty", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: validPodSpec(&api.Affinity{ - PodAntiAffinity: &api.PodAntiAffinity{ - PreferredDuringSchedulingIgnoredDuringExecution: []api.WeightedPodAffinityTerm{ + Spec: validPodSpec(&core.Affinity{ + PodAntiAffinity: &core.PodAntiAffinity{ + PreferredDuringSchedulingIgnoredDuringExecution: []core.WeightedPodAffinityTerm{ { Weight: 10, - PodAffinityTerm: api.PodAffinityTerm{ + PodAffinityTerm: core.PodAffinityTerm{ LabelSelector: &metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ { @@ -5548,63 +5743,63 @@ func TestValidatePod(t *testing.T) { }, "invalid toleration key": { expectedError: "spec.tolerations[0].key", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "nospecialchars^=@", Operator: "Equal", Value: "bar", Effect: "NoSchedule"}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "nospecialchars^=@", Operator: "Equal", Value: "bar", Effect: "NoSchedule"}}), }, }, "invalid toleration operator": { expectedError: "spec.tolerations[0].operator", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "foo", Operator: "In", Value: "bar", Effect: "NoSchedule"}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "foo", Operator: "In", Value: "bar", Effect: "NoSchedule"}}), }, }, "value must be empty when `operator` is 'Exists'": { expectedError: "spec.tolerations[0].operator", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "foo", Operator: "Exists", Value: "bar", Effect: "NoSchedule"}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "foo", Operator: "Exists", Value: "bar", Effect: "NoSchedule"}}), }, }, "operator must be 'Exists' when `key` is empty": { expectedError: "spec.tolerations[0].operator", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Operator: "Equal", Value: "bar", Effect: "NoSchedule"}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Operator: "Equal", Value: "bar", Effect: "NoSchedule"}}), }, }, "effect must be 'NoExecute' when `TolerationSeconds` is set": { expectedError: "spec.tolerations[0].effect", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "pod-forgiveness-invalid", Namespace: "ns", }, - Spec: extendPodSpecwithTolerations(validPodSpec(nil), []api.Toleration{{Key: "node.kubernetes.io/not-ready", Operator: "Exists", Effect: "NoSchedule", TolerationSeconds: &[]int64{20}[0]}}), + Spec: extendPodSpecwithTolerations(validPodSpec(nil), []core.Toleration{{Key: "node.kubernetes.io/not-ready", Operator: "Exists", Effect: "NoSchedule", TolerationSeconds: &[]int64{20}[0]}}), }, }, "must be a valid pod seccomp profile": { expectedError: "must be a valid seccomp profile", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompPodAnnotationKey: "foo", + core.SeccompPodAnnotationKey: "foo", }, }, Spec: validPodSpec(nil), @@ -5612,12 +5807,12 @@ func TestValidatePod(t *testing.T) { }, "must be a valid container seccomp profile": { expectedError: "must be a valid seccomp profile", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompContainerAnnotationKeyPrefix + "foo": "foo", + core.SeccompContainerAnnotationKeyPrefix + "foo": "foo", }, }, Spec: validPodSpec(nil), @@ -5625,12 +5820,12 @@ func TestValidatePod(t *testing.T) { }, "must be a non-empty container name in seccomp annotation": { expectedError: "name part must be non-empty", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompContainerAnnotationKeyPrefix: "foo", + core.SeccompContainerAnnotationKeyPrefix: "foo", }, }, Spec: validPodSpec(nil), @@ -5638,12 +5833,12 @@ func TestValidatePod(t *testing.T) { }, "must be a non-empty container profile in seccomp annotation": { expectedError: "must be a valid seccomp profile", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompContainerAnnotationKeyPrefix + "foo": "", + core.SeccompContainerAnnotationKeyPrefix + "foo": "", }, }, Spec: validPodSpec(nil), @@ -5651,12 +5846,12 @@ func TestValidatePod(t *testing.T) { }, "must be a relative path in a node-local seccomp profile annotation": { expectedError: "must be a relative path", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompPodAnnotationKey: "localhost//foo", + core.SeccompPodAnnotationKey: "localhost//foo", }, }, Spec: validPodSpec(nil), @@ -5664,12 +5859,12 @@ func TestValidatePod(t *testing.T) { }, "must not start with '../'": { expectedError: "must not contain '..'", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SeccompPodAnnotationKey: "localhost/../foo", + core.SeccompPodAnnotationKey: "localhost/../foo", }, }, Spec: validPodSpec(nil), @@ -5677,7 +5872,7 @@ func TestValidatePod(t *testing.T) { }, "AppArmor profile must apply to a container": { expectedError: "metadata.annotations[container.apparmor.security.beta.kubernetes.io/fake-ctr]", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", @@ -5687,17 +5882,17 @@ func TestValidatePod(t *testing.T) { apparmor.ContainerAnnotationKeyPrefix + "fake-ctr": apparmor.ProfileRuntimeDefault, }, }, - Spec: api.PodSpec{ - InitContainers: []api.Container{{Name: "init-ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Spec: core.PodSpec{ + InitContainers: []core.Container{{Name: "init-ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, }, "AppArmor profile format must be valid": { expectedError: "invalid AppArmor profile name", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", @@ -5710,7 +5905,7 @@ func TestValidatePod(t *testing.T) { }, "only default AppArmor profile may start with runtime/": { expectedError: "invalid AppArmor profile name", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", @@ -5723,12 +5918,12 @@ func TestValidatePod(t *testing.T) { }, "invalid sysctl annotation": { expectedError: "metadata.annotations[security.alpha.kubernetes.io/sysctls]", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SysctlsPodAnnotationKey: "foo:", + core.SysctlsPodAnnotationKey: "foo:", }, }, Spec: validPodSpec(nil), @@ -5736,12 +5931,12 @@ func TestValidatePod(t *testing.T) { }, "invalid comma-separated sysctl annotation": { expectedError: "not of the format sysctl_name=value", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SysctlsPodAnnotationKey: "kernel.msgmax,", + core.SysctlsPodAnnotationKey: "kernel.msgmax,", }, }, Spec: validPodSpec(nil), @@ -5749,12 +5944,12 @@ func TestValidatePod(t *testing.T) { }, "invalid unsafe sysctl annotation": { expectedError: "metadata.annotations[security.alpha.kubernetes.io/sysctls]", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SysctlsPodAnnotationKey: "foo:", + core.SysctlsPodAnnotationKey: "foo:", }, }, Spec: validPodSpec(nil), @@ -5762,13 +5957,13 @@ func TestValidatePod(t *testing.T) { }, "intersecting safe sysctls and unsafe sysctls annotations": { expectedError: "can not be safe and unsafe", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "123", Namespace: "ns", Annotations: map[string]string{ - api.SysctlsPodAnnotationKey: "kernel.shmmax=10000000", - api.UnsafeSysctlsPodAnnotationKey: "kernel.shmmax=10000000", + core.SysctlsPodAnnotationKey: "kernel.shmmax=10000000", + core.UnsafeSysctlsPodAnnotationKey: "kernel.shmmax=10000000", }, }, Spec: validPodSpec(nil), @@ -5776,144 +5971,144 @@ func TestValidatePod(t *testing.T) { }, "invalid opaque integer resource requirement: request must be <= limit": { expectedError: "must be less than or equal to pod.alpha.kubernetes.io/opaque-int-resource-A", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Name: "invalid", Image: "image", ImagePullPolicy: "IfNotPresent", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("2"), }, - Limits: api.ResourceList{ + Limits: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("1"), }, }, }, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, }, "invalid fractional opaque integer resource in container request": { expectedError: "must be an integer", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Name: "invalid", Image: "image", ImagePullPolicy: "IfNotPresent", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("500m"), }, }, }, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, }, "invalid fractional opaque integer resource in init container request": { expectedError: "must be an integer", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns"}, - Spec: api.PodSpec{ - InitContainers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{ { Name: "invalid", Image: "image", ImagePullPolicy: "IfNotPresent", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("500m"), }, }, }, }, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, }, "invalid fractional opaque integer resource in container limit": { expectedError: "must be an integer", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Name: "invalid", Image: "image", ImagePullPolicy: "IfNotPresent", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("5"), }, - Limits: api.ResourceList{ + Limits: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("2.5"), }, }, }, }, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, }, "invalid fractional opaque integer resource in init container limit": { expectedError: "must be an integer", - spec: api.Pod{ + spec: core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns"}, - Spec: api.PodSpec{ - InitContainers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{ { Name: "invalid", Image: "image", ImagePullPolicy: "IfNotPresent", - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("5"), }, - Limits: api.ResourceList{ + Limits: core.ResourceList{ helper.OpaqueIntResourceName("A"): resource.MustParse("2.5"), }, }, }, }, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, }, "mirror-pod present without nodeName": { expectedError: "mirror", - spec: api.Pod{ - ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns", Annotations: map[string]string{api.MirrorPodAnnotationKey: ""}}, - Spec: api.PodSpec{ - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + spec: core.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns", Annotations: map[string]string{core.MirrorPodAnnotationKey: ""}}, + Spec: core.PodSpec{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, }, "mirror-pod populated without nodeName": { expectedError: "mirror", - spec: api.Pod{ - ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns", Annotations: map[string]string{api.MirrorPodAnnotationKey: "foo"}}, - Spec: api.PodSpec{ - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + spec: core.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: "ns", Annotations: map[string]string{core.MirrorPodAnnotationKey: "foo"}}, + Spec: core.PodSpec{ + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, }, }, @@ -5942,24 +6137,24 @@ func TestValidatePodUpdate(t *testing.T) { ) tests := []struct { - new api.Pod - old api.Pod + new core.Pod + old core.Pod err string test string }{ - {api.Pod{}, api.Pod{}, "", "nothing"}, + {core.Pod{}, core.Pod{}, "", "nothing"}, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "bar"}, }, "metadata.name", "ids", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{ @@ -5967,7 +6162,7 @@ func TestValidatePodUpdate(t *testing.T) { }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{ @@ -5979,7 +6174,7 @@ func TestValidatePodUpdate(t *testing.T) { "labels", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Annotations: map[string]string{ @@ -5987,7 +6182,7 @@ func TestValidatePodUpdate(t *testing.T) { }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Annotations: map[string]string{ @@ -5999,22 +6194,22 @@ func TestValidatePodUpdate(t *testing.T) { "annotations", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V1", }, }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V2", }, @@ -6028,12 +6223,12 @@ func TestValidatePodUpdate(t *testing.T) { "less containers", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V1", }, @@ -6043,10 +6238,10 @@ func TestValidatePodUpdate(t *testing.T) { }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V2", }, @@ -6057,22 +6252,22 @@ func TestValidatePodUpdate(t *testing.T) { "more containers", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ - InitContainers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{ { Image: "foo:V1", }, }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - InitContainers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{ { Image: "foo:V2", }, @@ -6086,56 +6281,56 @@ func TestValidatePodUpdate(t *testing.T) { "more init containers", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{Containers: []api.Container{{Image: "foo:V1"}}}, + Spec: core.PodSpec{Containers: []core.Container{{Image: "foo:V1"}}}, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo", DeletionTimestamp: &now}, - Spec: api.PodSpec{Containers: []api.Container{{Image: "foo:V1"}}}, + Spec: core.PodSpec{Containers: []core.Container{{Image: "foo:V1"}}}, }, "", "deletion timestamp removed", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo", DeletionTimestamp: &now}, - Spec: api.PodSpec{Containers: []api.Container{{Image: "foo:V1"}}}, + Spec: core.PodSpec{Containers: []core.Container{{Image: "foo:V1"}}}, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{Containers: []api.Container{{Image: "foo:V1"}}}, + Spec: core.PodSpec{Containers: []core.Container{{Image: "foo:V1"}}}, }, "metadata.deletionTimestamp", "deletion timestamp added", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo", DeletionTimestamp: &now, DeletionGracePeriodSeconds: &grace}, - Spec: api.PodSpec{Containers: []api.Container{{Image: "foo:V1"}}}, + Spec: core.PodSpec{Containers: []core.Container{{Image: "foo:V1"}}}, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo", DeletionTimestamp: &now, DeletionGracePeriodSeconds: &grace2}, - Spec: api.PodSpec{Containers: []api.Container{{Image: "foo:V1"}}}, + Spec: core.PodSpec{Containers: []core.Container{{Image: "foo:V1"}}}, }, "metadata.deletionGracePeriodSeconds", "deletion grace period seconds changed", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V1", }, }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V2", }, @@ -6146,20 +6341,20 @@ func TestValidatePodUpdate(t *testing.T) { "image change", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - InitContainers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{ { Image: "foo:V1", }, }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - InitContainers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{ { Image: "foo:V2", }, @@ -6170,18 +6365,18 @@ func TestValidatePodUpdate(t *testing.T) { "init container image change", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ {}, }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V2", }, @@ -6192,18 +6387,18 @@ func TestValidatePodUpdate(t *testing.T) { "image change to empty", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - InitContainers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{ {}, }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - InitContainers: []api.Container{ + Spec: core.PodSpec{ + InitContainers: []core.Container{ { Image: "foo:V2", }, @@ -6214,23 +6409,23 @@ func TestValidatePodUpdate(t *testing.T) { "init container image change to empty", }, { - api.Pod{ - Spec: api.PodSpec{}, + core.Pod{ + Spec: core.PodSpec{}, }, - api.Pod{ - Spec: api.PodSpec{}, + core.Pod{ + Spec: core.PodSpec{}, }, "", "activeDeadlineSeconds no change, nil", }, { - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsPositive, }, }, - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsPositive, }, }, @@ -6238,23 +6433,23 @@ func TestValidatePodUpdate(t *testing.T) { "activeDeadlineSeconds no change, set", }, { - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsPositive, }, }, - api.Pod{}, + core.Pod{}, "", "activeDeadlineSeconds change to positive from nil", }, { - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsPositive, }, }, - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsLarger, }, }, @@ -6262,13 +6457,13 @@ func TestValidatePodUpdate(t *testing.T) { "activeDeadlineSeconds change to smaller positive", }, { - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsLarger, }, }, - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsPositive, }, }, @@ -6277,23 +6472,23 @@ func TestValidatePodUpdate(t *testing.T) { }, { - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsNegative, }, }, - api.Pod{}, + core.Pod{}, "spec.activeDeadlineSeconds", "activeDeadlineSeconds change to negative from nil", }, { - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsNegative, }, }, - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsPositive, }, }, @@ -6301,13 +6496,13 @@ func TestValidatePodUpdate(t *testing.T) { "activeDeadlineSeconds change to negative from positive", }, { - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsZero, }, }, - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsPositive, }, }, @@ -6315,19 +6510,19 @@ func TestValidatePodUpdate(t *testing.T) { "activeDeadlineSeconds change to zero from positive", }, { - api.Pod{ - Spec: api.PodSpec{ + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsZero, }, }, - api.Pod{}, + core.Pod{}, "", "activeDeadlineSeconds change to zero from nil", }, { - api.Pod{}, - api.Pod{ - Spec: api.PodSpec{ + core.Pod{}, + core.Pod{ + Spec: core.PodSpec{ ActiveDeadlineSeconds: &activeDeadlineSecondsPositive, }, }, @@ -6335,26 +6530,26 @@ func TestValidatePodUpdate(t *testing.T) { "activeDeadlineSeconds change to nil from positive", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V1", - Resources: api.ResourceRequirements{ + Resources: core.ResourceRequirements{ Limits: getResourceLimits("100m", "0"), }, }, }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V2", - Resources: api.ResourceRequirements{ + Resources: core.ResourceRequirements{ Limits: getResourceLimits("1000m", "0"), }, }, @@ -6365,26 +6560,26 @@ func TestValidatePodUpdate(t *testing.T) { "cpu change", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V1", - Ports: []api.ContainerPort{ + Ports: []core.ContainerPort{ {HostPort: 8080, ContainerPort: 80}, }, }, }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: api.PodSpec{ - Containers: []api.Container{ + Spec: core.PodSpec{ + Containers: []core.Container{ { Image: "foo:V2", - Ports: []api.ContainerPort{ + Ports: []core.ContainerPort{ {HostPort: 8000, ContainerPort: 80}, }, }, @@ -6395,7 +6590,7 @@ func TestValidatePodUpdate(t *testing.T) { "port change", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{ @@ -6403,7 +6598,7 @@ func TestValidatePodUpdate(t *testing.T) { }, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{ @@ -6415,195 +6610,195 @@ func TestValidatePodUpdate(t *testing.T) { "bad label change", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{{Key: "key1", Value: "value2"}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value2"}}, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{{Key: "key1", Value: "value1"}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value1"}}, }, }, "spec.tolerations: Forbidden", "existing toleration value modified in pod spec updates", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{{Key: "key1", Value: "value2", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: nil}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value2", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: nil}}, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{10}[0]}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{10}[0]}}, }, }, "spec.tolerations: Forbidden", "existing toleration value modified in pod spec updates with modified tolerationSeconds", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{10}[0]}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{10}[0]}}, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{20}[0]}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{20}[0]}}, }}, "", "modified tolerationSeconds in existing toleration value in pod spec updates", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ - Tolerations: []api.Toleration{{Key: "key1", Value: "value2"}}, + Spec: core.PodSpec{ + Tolerations: []core.Toleration{{Key: "key1", Value: "value2"}}, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "", - Tolerations: []api.Toleration{{Key: "key1", Value: "value1"}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value1"}}, }, }, "spec.tolerations: Forbidden", "toleration modified in updates to an unscheduled pod", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{{Key: "key1", Value: "value1"}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value1"}}, }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{{Key: "key1", Value: "value1"}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value1"}}, }, }, "", "tolerations unmodified in updates to a scheduled pod", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{ + Tolerations: []core.Toleration{ {Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{20}[0]}, {Key: "key2", Value: "value2", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{30}[0]}, }, }}, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{10}[0]}}, + Tolerations: []core.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{10}[0]}}, }, }, "", "added valid new toleration to existing tolerations in pod spec updates", }, { - api.Pod{ - ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: api.PodSpec{ + core.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: core.PodSpec{ NodeName: "node1", - Tolerations: []api.Toleration{ + Tolerations: []core.Toleration{ {Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{20}[0]}, {Key: "key2", Value: "value2", Operator: "Equal", Effect: "NoSchedule", TolerationSeconds: &[]int64{30}[0]}, }, }}, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ - NodeName: "node1", Tolerations: []api.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{10}[0]}}, + Spec: core.PodSpec{ + NodeName: "node1", Tolerations: []core.Toleration{{Key: "key1", Value: "value1", Operator: "Equal", Effect: "NoExecute", TolerationSeconds: &[]int64{10}[0]}}, }}, "spec.tolerations[1].effect", "added invalid new toleration to existing tolerations in pod spec updates", }, { - api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: api.PodSpec{NodeName: "foo"}}, - api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, + core.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: core.PodSpec{NodeName: "foo"}}, + core.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, "spec: Forbidden: pod updates may not change fields", "removed nodeName from pod spec", }, { - api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Annotations: map[string]string{api.MirrorPodAnnotationKey: ""}}, Spec: api.PodSpec{NodeName: "foo"}}, - api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: api.PodSpec{NodeName: "foo"}}, + core.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Annotations: map[string]string{core.MirrorPodAnnotationKey: ""}}, Spec: core.PodSpec{NodeName: "foo"}}, + core.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: core.PodSpec{NodeName: "foo"}}, "metadata.annotations[kubernetes.io/config.mirror]", "added mirror pod annotation", }, { - api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: api.PodSpec{NodeName: "foo"}}, - api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Annotations: map[string]string{api.MirrorPodAnnotationKey: ""}}, Spec: api.PodSpec{NodeName: "foo"}}, + core.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Spec: core.PodSpec{NodeName: "foo"}}, + core.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Annotations: map[string]string{core.MirrorPodAnnotationKey: ""}}, Spec: core.PodSpec{NodeName: "foo"}}, "metadata.annotations[kubernetes.io/config.mirror]", "removed mirror pod annotation", }, { - api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Annotations: map[string]string{api.MirrorPodAnnotationKey: "foo"}}, Spec: api.PodSpec{NodeName: "foo"}}, - api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Annotations: map[string]string{api.MirrorPodAnnotationKey: "bar"}}, Spec: api.PodSpec{NodeName: "foo"}}, + core.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Annotations: map[string]string{core.MirrorPodAnnotationKey: "foo"}}, Spec: core.PodSpec{NodeName: "foo"}}, + core.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Annotations: map[string]string{core.MirrorPodAnnotationKey: "bar"}}, Spec: core.PodSpec{NodeName: "foo"}}, "metadata.annotations[kubernetes.io/config.mirror]", "changed mirror pod annotation", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", PriorityClassName: "bar-priority", }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", PriorityClassName: "foo-priority", }, @@ -6612,20 +6807,20 @@ func TestValidatePodUpdate(t *testing.T) { "changed priority class name", }, { - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", PriorityClassName: "", }, }, - api.Pod{ + core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.PodSpec{ + Spec: core.PodSpec{ NodeName: "node1", PriorityClassName: "foo-priority", }, @@ -6653,8 +6848,8 @@ func TestValidatePodUpdate(t *testing.T) { } } -func makeValidService() api.Service { - return api.Service{ +func makeValidService() core.Service { + return core.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "valid", Namespace: "valid", @@ -6662,11 +6857,11 @@ func makeValidService() api.Service { Annotations: map[string]string{}, ResourceVersion: "1", }, - Spec: api.ServiceSpec{ + Spec: core.ServiceSpec{ Selector: map[string]string{"key": "val"}, SessionAffinity: "None", - Type: api.ServiceTypeClusterIP, - Ports: []api.ServicePort{{Name: "p", Protocol: "TCP", Port: 8675, TargetPort: intstr.FromInt(8675)}}, + Type: core.ServiceTypeClusterIP, + Ports: []core.ServicePort{{Name: "p", Protocol: "TCP", Port: 8675, TargetPort: intstr.FromInt(8675)}}, }, } } @@ -6674,201 +6869,201 @@ func makeValidService() api.Service { func TestValidateService(t *testing.T) { testCases := []struct { name string - tweakSvc func(svc *api.Service) // given a basic valid service, each test case can customize it + tweakSvc func(svc *core.Service) // given a basic valid service, each test case can customize it numErrs int }{ { name: "missing namespace", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Namespace = "" }, numErrs: 1, }, { name: "invalid namespace", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Namespace = "-123" }, numErrs: 1, }, { name: "missing name", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Name = "" }, numErrs: 1, }, { name: "invalid name", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Name = "-123" }, numErrs: 1, }, { name: "too long name", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Name = strings.Repeat("a", 64) }, numErrs: 1, }, { name: "invalid generateName", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.GenerateName = "-123" }, numErrs: 1, }, { name: "too long generateName", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.GenerateName = strings.Repeat("a", 64) }, numErrs: 1, }, { name: "invalid label", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Labels["NoUppercaseOrSpecialCharsLike=Equals"] = "bar" }, numErrs: 1, }, { name: "invalid annotation", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Annotations["NoSpecialCharsLike=Equals"] = "bar" }, numErrs: 1, }, { name: "nil selector", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Selector = nil }, numErrs: 0, }, { name: "invalid selector", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Selector["NoSpecialCharsLike=Equals"] = "bar" }, numErrs: 1, }, { name: "missing session affinity", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.SessionAffinity = "" }, numErrs: 1, }, { name: "missing type", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Type = "" }, numErrs: 1, }, { name: "missing ports", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports = nil }, numErrs: 1, }, { name: "missing ports but headless", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports = nil - s.Spec.ClusterIP = api.ClusterIPNone + s.Spec.ClusterIP = core.ClusterIPNone }, numErrs: 0, }, { name: "empty port[0] name", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Name = "" }, numErrs: 0, }, { name: "empty port[1] name", - tweakSvc: func(s *api.Service) { - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "", Protocol: "TCP", Port: 12345, TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "", Protocol: "TCP", Port: 12345, TargetPort: intstr.FromInt(12345)}) }, numErrs: 1, }, { name: "empty multi-port port[0] name", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Name = "" - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "p", Protocol: "TCP", Port: 12345, TargetPort: intstr.FromInt(12345)}) + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "p", Protocol: "TCP", Port: 12345, TargetPort: intstr.FromInt(12345)}) }, numErrs: 1, }, { name: "invalid port name", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Name = "INVALID" }, numErrs: 1, }, { name: "missing protocol", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Protocol = "" }, numErrs: 1, }, { name: "invalid protocol", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Protocol = "INVALID" }, numErrs: 1, }, { name: "invalid cluster ip", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.ClusterIP = "invalid" }, numErrs: 1, }, { name: "missing port", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Port = 0 }, numErrs: 1, }, { name: "invalid port", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Port = 65536 }, numErrs: 1, }, { name: "invalid TargetPort int", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].TargetPort = intstr.FromInt(65536) }, numErrs: 1, }, { name: "valid port headless", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Port = 11722 s.Spec.Ports[0].TargetPort = intstr.FromInt(11722) - s.Spec.ClusterIP = api.ClusterIPNone + s.Spec.ClusterIP = core.ClusterIPNone }, numErrs: 0, }, { name: "invalid port headless 1", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Port = 11722 s.Spec.Ports[0].TargetPort = intstr.FromInt(11721) - s.Spec.ClusterIP = api.ClusterIPNone + s.Spec.ClusterIP = core.ClusterIPNone }, // in the v1 API, targetPorts on headless services were tolerated. // once we have version-specific validation, we can reject this on newer API versions, but until then, we have to tolerate it for compatibility. @@ -6877,10 +7072,10 @@ func TestValidateService(t *testing.T) { }, { name: "invalid port headless 2", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Port = 11722 s.Spec.Ports[0].TargetPort = intstr.FromString("target") - s.Spec.ClusterIP = api.ClusterIPNone + s.Spec.ClusterIP = core.ClusterIPNone }, // in the v1 API, targetPorts on headless services were tolerated. // once we have version-specific validation, we can reject this on newer API versions, but until then, we have to tolerate it for compatibility. @@ -6889,74 +7084,74 @@ func TestValidateService(t *testing.T) { }, { name: "invalid publicIPs localhost", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.ExternalIPs = []string{"127.0.0.1"} }, numErrs: 1, }, { name: "invalid publicIPs unspecified", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.ExternalIPs = []string{"0.0.0.0"} }, numErrs: 1, }, { name: "invalid publicIPs loopback", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.ExternalIPs = []string{"127.0.0.1"} }, numErrs: 1, }, { name: "invalid publicIPs host", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.ExternalIPs = []string{"myhost.mydomain"} }, numErrs: 1, }, { name: "dup port name", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Name = "p" - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "p", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "p", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 1, }, { name: "valid load balancer protocol UDP 1", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer s.Spec.Ports[0].Protocol = "UDP" }, numErrs: 0, }, { name: "valid load balancer protocol UDP 2", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.Ports[0] = api.ServicePort{Name: "q", Port: 12345, Protocol: "UDP", TargetPort: intstr.FromInt(12345)} + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.Ports[0] = core.ServicePort{Name: "q", Port: 12345, Protocol: "UDP", TargetPort: intstr.FromInt(12345)} }, numErrs: 0, }, { name: "invalid load balancer with mix protocol", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "UDP", TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "UDP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 1, }, { name: "valid 1", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { // do nothing }, numErrs: 0, }, { name: "valid 2", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].Protocol = "UDP" s.Spec.Ports[0].TargetPort = intstr.FromInt(12345) }, @@ -6964,21 +7159,21 @@ func TestValidateService(t *testing.T) { }, { name: "valid 3", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.Ports[0].TargetPort = intstr.FromString("http") }, numErrs: 0, }, { name: "valid cluster ip - none ", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.ClusterIP = "None" }, numErrs: 0, }, { name: "valid cluster ip - empty", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.ClusterIP = "" s.Spec.Ports[0].TargetPort = intstr.FromString("http") }, @@ -6986,189 +7181,153 @@ func TestValidateService(t *testing.T) { }, { name: "valid type - cluster", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeClusterIP }, numErrs: 0, }, { name: "valid type - loadbalancer", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer }, numErrs: 0, }, { name: "valid type loadbalancer 2 ports", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, }, { name: "valid external load balancer 2 ports", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, }, { name: "duplicate nodeports", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeNodePort - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "r", Port: 2, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(2)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeNodePort + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "r", Port: 2, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(2)}) }, numErrs: 1, }, { name: "duplicate nodeports (different protocols)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeNodePort - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "r", Port: 2, Protocol: "UDP", NodePort: 1, TargetPort: intstr.FromInt(2)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeNodePort + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "r", Port: 2, Protocol: "UDP", NodePort: 1, TargetPort: intstr.FromInt(2)}) }, numErrs: 0, }, { name: "invalid duplicate ports (with same protocol)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(8080)}) - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "r", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(80)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeClusterIP + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(8080)}) + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "r", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(80)}) }, numErrs: 1, }, { name: "valid duplicate ports (with different protocols)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(8080)}) - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "r", Port: 12345, Protocol: "UDP", TargetPort: intstr.FromInt(80)}) - }, - numErrs: 0, - }, - { - name: "invalid duplicate targetports (number with same protocol)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 1, Protocol: "TCP", TargetPort: intstr.FromInt(8080)}) - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "r", Port: 2, Protocol: "TCP", TargetPort: intstr.FromInt(8080)}) - }, - numErrs: 1, - }, - { - name: "invalid duplicate targetports (name with same protocol)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 1, Protocol: "TCP", TargetPort: intstr.FromString("http")}) - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "r", Port: 2, Protocol: "TCP", TargetPort: intstr.FromString("http")}) - }, - numErrs: 1, - }, - { - name: "valid duplicate targetports (number with different protocols)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 1, Protocol: "TCP", TargetPort: intstr.FromInt(8080)}) - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "r", Port: 2, Protocol: "UDP", TargetPort: intstr.FromInt(8080)}) - }, - numErrs: 0, - }, - { - name: "valid duplicate targetports (name with different protocols)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 1, Protocol: "TCP", TargetPort: intstr.FromString("http")}) - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "r", Port: 2, Protocol: "UDP", TargetPort: intstr.FromString("http")}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeClusterIP + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(8080)}) + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "r", Port: 12345, Protocol: "UDP", TargetPort: intstr.FromInt(80)}) }, numErrs: 0, }, { name: "valid type - cluster", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeClusterIP }, numErrs: 0, }, { name: "valid type - nodeport", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeNodePort + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeNodePort }, numErrs: 0, }, { name: "valid type - loadbalancer", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer }, numErrs: 0, }, { name: "valid type loadbalancer 2 ports", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, }, { name: "valid type loadbalancer with NodePort", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", NodePort: 12345, TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", NodePort: 12345, TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, }, { name: "valid type=NodePort service with NodePort", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeNodePort - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", NodePort: 12345, TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeNodePort + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", NodePort: 12345, TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, }, { name: "valid type=NodePort service without NodePort", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeNodePort - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeNodePort + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, }, { name: "valid cluster service without NodePort", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeClusterIP + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, }, { name: "invalid cluster service with NodePort", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", NodePort: 12345, TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeClusterIP + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", NodePort: 12345, TargetPort: intstr.FromInt(12345)}) }, numErrs: 1, }, { name: "invalid public service with duplicate NodePort", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeNodePort - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "p1", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "p2", Port: 2, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(2)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeNodePort + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "p1", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "p2", Port: 2, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(2)}) }, numErrs: 1, }, { name: "valid type=LoadBalancer", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 12345, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 0, }, @@ -7176,78 +7335,78 @@ func TestValidateService(t *testing.T) { // For now we open firewalls, and its insecure if we open 10250, remove this // when we have better protections in place. name: "invalid port type=LoadBalancer", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "kubelet", Port: 10250, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "kubelet", Port: 10250, Protocol: "TCP", TargetPort: intstr.FromInt(12345)}) }, numErrs: 1, }, { name: "valid LoadBalancer source range annotation", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Annotations[api.AnnotationLoadBalancerSourceRangesKey] = "1.2.3.4/8, 5.6.7.8/16" + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Annotations[core.AnnotationLoadBalancerSourceRangesKey] = "1.2.3.4/8, 5.6.7.8/16" }, numErrs: 0, }, { name: "empty LoadBalancer source range annotation", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Annotations[api.AnnotationLoadBalancerSourceRangesKey] = "" + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Annotations[core.AnnotationLoadBalancerSourceRangesKey] = "" }, numErrs: 0, }, { name: "invalid LoadBalancer source range annotation (hostname)", - tweakSvc: func(s *api.Service) { - s.Annotations[api.AnnotationLoadBalancerSourceRangesKey] = "foo.bar" + tweakSvc: func(s *core.Service) { + s.Annotations[core.AnnotationLoadBalancerSourceRangesKey] = "foo.bar" }, numErrs: 2, }, { name: "invalid LoadBalancer source range annotation (invalid CIDR)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Annotations[api.AnnotationLoadBalancerSourceRangesKey] = "1.2.3.4/33" + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Annotations[core.AnnotationLoadBalancerSourceRangesKey] = "1.2.3.4/33" }, numErrs: 1, }, { name: "invalid source range for non LoadBalancer type service", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.LoadBalancerSourceRanges = []string{"1.2.3.4/8", "5.6.7.8/16"} }, numErrs: 1, }, { name: "valid LoadBalancer source range", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer s.Spec.LoadBalancerSourceRanges = []string{"1.2.3.4/8", "5.6.7.8/16"} }, numErrs: 0, }, { name: "empty LoadBalancer source range", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer s.Spec.LoadBalancerSourceRanges = []string{" "} }, numErrs: 1, }, { name: "invalid LoadBalancer source range", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer s.Spec.LoadBalancerSourceRanges = []string{"foo.bar"} }, numErrs: 1, }, { name: "valid ExternalName", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeExternalName + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeExternalName s.Spec.ClusterIP = "" s.Spec.ExternalName = "foo.bar.example.com" }, @@ -7255,8 +7414,8 @@ func TestValidateService(t *testing.T) { }, { name: "invalid ExternalName clusterIP (valid IP)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeExternalName + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeExternalName s.Spec.ClusterIP = "1.2.3.4" s.Spec.ExternalName = "foo.bar.example.com" }, @@ -7264,8 +7423,8 @@ func TestValidateService(t *testing.T) { }, { name: "invalid ExternalName clusterIP (None)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeExternalName + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeExternalName s.Spec.ClusterIP = "None" s.Spec.ExternalName = "foo.bar.example.com" }, @@ -7273,8 +7432,8 @@ func TestValidateService(t *testing.T) { }, { name: "invalid ExternalName (not a DNS name)", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeExternalName + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeExternalName s.Spec.ClusterIP = "" s.Spec.ExternalName = "-123" }, @@ -7282,17 +7441,17 @@ func TestValidateService(t *testing.T) { }, { name: "LoadBalancer type cannot have None ClusterIP", - tweakSvc: func(s *api.Service) { + tweakSvc: func(s *core.Service) { s.Spec.ClusterIP = "None" - s.Spec.Type = api.ServiceTypeLoadBalancer + s.Spec.Type = core.ServiceTypeLoadBalancer }, numErrs: 1, }, { name: "invalid node port with clusterIP None", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeNodePort - s.Spec.Ports = append(s.Spec.Ports, api.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeNodePort + s.Spec.Ports = append(s.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) s.Spec.ClusterIP = "None" }, numErrs: 1, @@ -7300,26 +7459,26 @@ func TestValidateService(t *testing.T) { // ESIPP section begins. { name: "invalid externalTraffic field", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer s.Spec.ExternalTrafficPolicy = "invalid" }, numErrs: 1, }, { name: "nagative healthCheckNodePort field", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal s.Spec.HealthCheckNodePort = -1 }, numErrs: 1, }, { name: "nagative healthCheckNodePort field", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal s.Spec.HealthCheckNodePort = 31100 }, numErrs: 0, @@ -7327,11 +7486,11 @@ func TestValidateService(t *testing.T) { // ESIPP section ends. { name: "invalid timeoutSeconds field", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.SessionAffinity = api.ServiceAffinityClientIP - s.Spec.SessionAffinityConfig = &api.SessionAffinityConfig{ - ClientIP: &api.ClientIPConfig{ + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeClusterIP + s.Spec.SessionAffinity = core.ServiceAffinityClientIP + s.Spec.SessionAffinityConfig = &core.SessionAffinityConfig{ + ClientIP: &core.ClientIPConfig{ TimeoutSeconds: newInt32(-1), }, } @@ -7340,11 +7499,11 @@ func TestValidateService(t *testing.T) { }, { name: "sessionAffinityConfig can't be set when session affinity is None", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.SessionAffinity = api.ServiceAffinityNone - s.Spec.SessionAffinityConfig = &api.SessionAffinityConfig{ - ClientIP: &api.ClientIPConfig{ + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.SessionAffinity = core.ServiceAffinityNone + s.Spec.SessionAffinityConfig = &core.SessionAffinityConfig{ + ClientIP: &core.ClientIPConfig{ TimeoutSeconds: newInt32(90), }, } @@ -7366,56 +7525,56 @@ func TestValidateService(t *testing.T) { func TestValidateServiceExternalTrafficFieldsCombination(t *testing.T) { testCases := []struct { name string - tweakSvc func(svc *api.Service) // Given a basic valid service, each test case can customize it. + tweakSvc func(svc *core.Service) // Given a basic valid service, each test case can customize it. numErrs int }{ { name: "valid loadBalancer service with externalTrafficPolicy and healthCheckNodePort set", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal s.Spec.HealthCheckNodePort = 34567 }, numErrs: 0, }, { name: "valid nodePort service with externalTrafficPolicy set", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeNodePort + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal }, numErrs: 0, }, { name: "valid clusterIP service with none of externalTrafficPolicy and healthCheckNodePort set", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeClusterIP }, numErrs: 0, }, { name: "cannot set healthCheckNodePort field on loadBalancer service with externalTrafficPolicy!=Local", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeCluster + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeLoadBalancer + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeCluster s.Spec.HealthCheckNodePort = 34567 }, numErrs: 1, }, { name: "cannot set healthCheckNodePort field on nodePort service", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeNodePort - s.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeNodePort + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal s.Spec.HealthCheckNodePort = 34567 }, numErrs: 1, }, { name: "cannot set externalTrafficPolicy or healthCheckNodePort fields on clusterIP service", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeClusterIP - s.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + tweakSvc: func(s *core.Service) { + s.Spec.Type = core.ServiceTypeClusterIP + s.Spec.ExternalTrafficPolicy = core.ServiceExternalTrafficPolicyTypeLocal s.Spec.HealthCheckNodePort = 34567 }, numErrs: 2, @@ -7537,7 +7696,7 @@ func TestValidateReplicationControllerStatus(t *testing.T) { } for _, test := range tests { - status := api.ReplicationControllerStatus{ + status := core.ReplicationControllerStatus{ Replicas: test.replicas, FullyLabeledReplicas: test.fullyLabeledReplicas, ReadyReplicas: test.readyReplicas, @@ -7553,42 +7712,42 @@ func TestValidateReplicationControllerStatus(t *testing.T) { func TestValidateReplicationControllerStatusUpdate(t *testing.T) { validSelector := map[string]string{"a": "b"} - validPodTemplate := api.PodTemplate{ - Template: api.PodTemplateSpec{ + validPodTemplate := core.PodTemplate{ + Template: core.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Labels: validSelector, }, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, }, } type rcUpdateTest struct { - old api.ReplicationController - update api.ReplicationController + old core.ReplicationController + update core.ReplicationController } successCases := []rcUpdateTest{ { - old: api.ReplicationController{ + old: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, - Status: api.ReplicationControllerStatus{ + Status: core.ReplicationControllerStatus{ Replicas: 2, }, }, - update: api.ReplicationController{ + update: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: 3, Selector: validSelector, Template: &validPodTemplate.Template, }, - Status: api.ReplicationControllerStatus{ + Status: core.ReplicationControllerStatus{ Replicas: 4, }, }, @@ -7603,24 +7762,24 @@ func TestValidateReplicationControllerStatusUpdate(t *testing.T) { } errorCases := map[string]rcUpdateTest{ "negative replicas": { - old: api.ReplicationController{ + old: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, - Status: api.ReplicationControllerStatus{ + Status: core.ReplicationControllerStatus{ Replicas: 3, }, }, - update: api.ReplicationController{ + update: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: 2, Selector: validSelector, Template: &validPodTemplate.Template, }, - Status: api.ReplicationControllerStatus{ + Status: core.ReplicationControllerStatus{ Replicas: -3, }, }, @@ -7636,37 +7795,37 @@ func TestValidateReplicationControllerStatusUpdate(t *testing.T) { func TestValidateReplicationControllerUpdate(t *testing.T) { validSelector := map[string]string{"a": "b"} - validPodTemplate := api.PodTemplate{ - Template: api.PodTemplateSpec{ + validPodTemplate := core.PodTemplate{ + Template: core.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Labels: validSelector, }, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, }, } - readWriteVolumePodTemplate := api.PodTemplate{ - Template: api.PodTemplateSpec{ + readWriteVolumePodTemplate := core.PodTemplate{ + Template: core.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Labels: validSelector, }, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, - Volumes: []api.Volume{{Name: "gcepd", VolumeSource: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{PDName: "my-PD", FSType: "ext4", Partition: 1, ReadOnly: false}}}}, + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Volumes: []core.Volume{{Name: "gcepd", VolumeSource: core.VolumeSource{GCEPersistentDisk: &core.GCEPersistentDiskVolumeSource{PDName: "my-PD", FSType: "ext4", Partition: 1, ReadOnly: false}}}}, }, }, } invalidSelector := map[string]string{"NoUppercaseOrSpecialCharsLike=Equals": "b"} - invalidPodTemplate := api.PodTemplate{ - Template: api.PodTemplateSpec{ - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + invalidPodTemplate := core.PodTemplate{ + Template: core.PodTemplateSpec{ + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, ObjectMeta: metav1.ObjectMeta{ Labels: invalidSelector, @@ -7674,21 +7833,21 @@ func TestValidateReplicationControllerUpdate(t *testing.T) { }, } type rcUpdateTest struct { - old api.ReplicationController - update api.ReplicationController + old core.ReplicationController + update core.ReplicationController } successCases := []rcUpdateTest{ { - old: api.ReplicationController{ + old: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, - update: api.ReplicationController{ + update: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: 3, Selector: validSelector, Template: &validPodTemplate.Template, @@ -7696,16 +7855,16 @@ func TestValidateReplicationControllerUpdate(t *testing.T) { }, }, { - old: api.ReplicationController{ + old: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, - update: api.ReplicationController{ + update: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: 1, Selector: validSelector, Template: &readWriteVolumePodTemplate.Template, @@ -7722,16 +7881,16 @@ func TestValidateReplicationControllerUpdate(t *testing.T) { } errorCases := map[string]rcUpdateTest{ "more than one read/write": { - old: api.ReplicationController{ + old: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, - update: api.ReplicationController{ + update: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: 2, Selector: validSelector, Template: &readWriteVolumePodTemplate.Template, @@ -7739,16 +7898,16 @@ func TestValidateReplicationControllerUpdate(t *testing.T) { }, }, "invalid selector": { - old: api.ReplicationController{ + old: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, - update: api.ReplicationController{ + update: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: 2, Selector: invalidSelector, Template: &validPodTemplate.Template, @@ -7756,16 +7915,16 @@ func TestValidateReplicationControllerUpdate(t *testing.T) { }, }, "invalid pod": { - old: api.ReplicationController{ + old: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, - update: api.ReplicationController{ + update: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: 2, Selector: validSelector, Template: &invalidPodTemplate.Template, @@ -7773,16 +7932,16 @@ func TestValidateReplicationControllerUpdate(t *testing.T) { }, }, "negative replicas": { - old: api.ReplicationController{ + old: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, - update: api.ReplicationController{ + update: core.ReplicationController{ ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: -1, Selector: validSelector, Template: &validPodTemplate.Template, @@ -7799,61 +7958,61 @@ func TestValidateReplicationControllerUpdate(t *testing.T) { func TestValidateReplicationController(t *testing.T) { validSelector := map[string]string{"a": "b"} - validPodTemplate := api.PodTemplate{ - Template: api.PodTemplateSpec{ + validPodTemplate := core.PodTemplate{ + Template: core.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Labels: validSelector, }, - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, }, } - readWriteVolumePodTemplate := api.PodTemplate{ - Template: api.PodTemplateSpec{ + readWriteVolumePodTemplate := core.PodTemplate{ + Template: core.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Labels: validSelector, }, - Spec: api.PodSpec{ - Volumes: []api.Volume{{Name: "gcepd", VolumeSource: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{PDName: "my-PD", FSType: "ext4", Partition: 1, ReadOnly: false}}}}, - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Spec: core.PodSpec{ + Volumes: []core.Volume{{Name: "gcepd", VolumeSource: core.VolumeSource{GCEPersistentDisk: &core.GCEPersistentDiskVolumeSource{PDName: "my-PD", FSType: "ext4", Partition: 1, ReadOnly: false}}}}, + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "abc", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, }, } invalidSelector := map[string]string{"NoUppercaseOrSpecialCharsLike=Equals": "b"} - invalidPodTemplate := api.PodTemplate{ - Template: api.PodTemplateSpec{ - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyAlways, - DNSPolicy: api.DNSClusterFirst, + invalidPodTemplate := core.PodTemplate{ + Template: core.PodTemplateSpec{ + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyAlways, + DNSPolicy: core.DNSClusterFirst, }, ObjectMeta: metav1.ObjectMeta{ Labels: invalidSelector, }, }, } - successCases := []api.ReplicationController{ + successCases := []core.ReplicationController{ { ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, { ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, { ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: 1, Selector: validSelector, Template: &readWriteVolumePodTemplate.Template, @@ -7866,43 +8025,43 @@ func TestValidateReplicationController(t *testing.T) { } } - errorCases := map[string]api.ReplicationController{ + errorCases := map[string]core.ReplicationController{ "zero-length ID": { ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, "missing-namespace": { ObjectMeta: metav1.ObjectMeta{Name: "abc-123"}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, }, "empty selector": { ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Template: &validPodTemplate.Template, }, }, "selector_doesnt_match": { ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: map[string]string{"foo": "bar"}, Template: &validPodTemplate.Template, }, }, "invalid manifest": { ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, }, }, "read-write persistent disk with > 1 pod": { ObjectMeta: metav1.ObjectMeta{Name: "abc"}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: 2, Selector: validSelector, Template: &readWriteVolumePodTemplate.Template, @@ -7910,7 +8069,7 @@ func TestValidateReplicationController(t *testing.T) { }, "negative_replicas": { ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Replicas: -1, Selector: validSelector, }, @@ -7923,7 +8082,7 @@ func TestValidateReplicationController(t *testing.T) { "NoUppercaseOrSpecialCharsLike=Equals": "bar", }, }, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, @@ -7936,7 +8095,7 @@ func TestValidateReplicationController(t *testing.T) { "NoUppercaseOrSpecialCharsLike=Equals": "bar", }, }, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Template: &invalidPodTemplate.Template, }, }, @@ -7948,7 +8107,7 @@ func TestValidateReplicationController(t *testing.T) { "NoUppercaseOrSpecialCharsLike=Equals": "bar", }, }, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, Template: &validPodTemplate.Template, }, @@ -7958,13 +8117,13 @@ func TestValidateReplicationController(t *testing.T) { Name: "abc-123", Namespace: metav1.NamespaceDefault, }, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, - Template: &api.PodTemplateSpec{ - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyOnFailure, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Template: &core.PodTemplateSpec{ + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyOnFailure, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, ObjectMeta: metav1.ObjectMeta{ Labels: validSelector, @@ -7977,13 +8136,13 @@ func TestValidateReplicationController(t *testing.T) { Name: "abc-123", Namespace: metav1.NamespaceDefault, }, - Spec: api.ReplicationControllerSpec{ + Spec: core.ReplicationControllerSpec{ Selector: validSelector, - Template: &api.PodTemplateSpec{ - Spec: api.PodSpec{ - RestartPolicy: api.RestartPolicyNever, - DNSPolicy: api.DNSClusterFirst, - Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, + Template: &core.PodTemplateSpec{ + Spec: core.PodSpec{ + RestartPolicy: core.RestartPolicyNever, + DNSPolicy: core.DNSClusterFirst, + Containers: []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}}, }, ObjectMeta: metav1.ObjectMeta{ Labels: validSelector, @@ -8019,25 +8178,25 @@ func TestValidateReplicationController(t *testing.T) { func TestValidateNode(t *testing.T) { validSelector := map[string]string{"a": "b"} invalidSelector := map[string]string{"NoUppercaseOrSpecialCharsLike=Equals": "b"} - successCases := []api.Node{ + successCases := []core.Node{ { ObjectMeta: metav1.ObjectMeta{ Name: "abc", Labels: validSelector, }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "something"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, }, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName("my.org/gpu"): resource.MustParse("10"), - api.ResourceName("hugepages-2Mi"): resource.MustParse("10Gi"), - api.ResourceName("hugepages-1Gi"): resource.MustParse("0"), + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName("my.org/gpu"): resource.MustParse("10"), + core.ResourceName("hugepages-2Mi"): resource.MustParse("10Gi"), + core.ResourceName("hugepages-1Gi"): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", }, }, @@ -8045,16 +8204,16 @@ func TestValidateNode(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "abc", }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "something"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, }, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("0"), + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", }, }, @@ -8062,26 +8221,26 @@ func TestValidateNode(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "dedicated-node1", }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "something"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, }, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("0"), + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", // Add a valid taint to a node - Taints: []api.Taint{{Key: "GPU", Value: "true", Effect: "NoSchedule"}}, + Taints: []core.Taint{{Key: "GPU", Value: "true", Effect: "NoSchedule"}}, }, }, { ObjectMeta: metav1.ObjectMeta{ Name: "abc", Annotations: map[string]string{ - api.PreferAvoidPodsAnnotationKey: ` + core.PreferAvoidPodsAnnotationKey: ` { "preferAvoidPods": [ { @@ -8101,17 +8260,35 @@ func TestValidateNode(t *testing.T) { }`, }, }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "something"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, + }, + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), + }, + }, + Spec: core.NodeSpec{ + ExternalID: "external", + }, + }, + { + ObjectMeta: metav1.ObjectMeta{ + Name: "abc", + }, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, }, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("0"), + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", + PodCIDR: "192.168.0.0/16", }, }, } @@ -8121,20 +8298,20 @@ func TestValidateNode(t *testing.T) { } } - errorCases := map[string]api.Node{ + errorCases := map[string]core.Node{ "zero-length Name": { ObjectMeta: metav1.ObjectMeta{ Name: "", Labels: validSelector, }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{}, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{}, + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", }, }, @@ -8143,13 +8320,13 @@ func TestValidateNode(t *testing.T) { Name: "abc-123", Labels: invalidSelector, }, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), + Status: core.NodeStatus{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", }, }, @@ -8158,10 +8335,10 @@ func TestValidateNode(t *testing.T) { Name: "abc-123", Labels: validSelector, }, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), + Status: core.NodeStatus{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), }, }, }, @@ -8169,87 +8346,87 @@ func TestValidateNode(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "dedicated-node1", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", // Add a taint with an empty key to a node - Taints: []api.Taint{{Key: "", Value: "special-user-1", Effect: "NoSchedule"}}, + Taints: []core.Taint{{Key: "", Value: "special-user-1", Effect: "NoSchedule"}}, }, }, "bad-taint-key": { ObjectMeta: metav1.ObjectMeta{ Name: "dedicated-node1", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", // Add a taint with an invalid key to a node - Taints: []api.Taint{{Key: "NoUppercaseOrSpecialCharsLike=Equals", Value: "special-user-1", Effect: "NoSchedule"}}, + Taints: []core.Taint{{Key: "NoUppercaseOrSpecialCharsLike=Equals", Value: "special-user-1", Effect: "NoSchedule"}}, }, }, "bad-taint-value": { ObjectMeta: metav1.ObjectMeta{ Name: "dedicated-node2", }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "something"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, }, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("0"), + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", // Add a taint with a bad value to a node - Taints: []api.Taint{{Key: "dedicated", Value: "some\\bad\\value", Effect: "NoSchedule"}}, + Taints: []core.Taint{{Key: "dedicated", Value: "some\\bad\\value", Effect: "NoSchedule"}}, }, }, "missing-taint-effect": { ObjectMeta: metav1.ObjectMeta{ Name: "dedicated-node3", }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "something"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, }, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("0"), + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", // Add a taint with an empty effect to a node - Taints: []api.Taint{{Key: "dedicated", Value: "special-user-3", Effect: ""}}, + Taints: []core.Taint{{Key: "dedicated", Value: "special-user-3", Effect: ""}}, }, }, "invalid-taint-effect": { ObjectMeta: metav1.ObjectMeta{ Name: "dedicated-node3", }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "something"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, }, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("0"), + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", // Add a taint with NoExecute effect to a node - Taints: []api.Taint{{Key: "dedicated", Value: "special-user-3", Effect: "NoScheduleNoAdmit"}}, + Taints: []core.Taint{{Key: "dedicated", Value: "special-user-3", Effect: "NoScheduleNoAdmit"}}, }, }, "duplicated-taints-with-same-key-effect": { ObjectMeta: metav1.ObjectMeta{ Name: "dedicated-node1", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", // Add two taints to the node with the same key and effect; should be rejected. - Taints: []api.Taint{ + Taints: []core.Taint{ {Key: "dedicated", Value: "special-user-1", Effect: "NoSchedule"}, {Key: "dedicated", Value: "special-user-2", Effect: "NoSchedule"}, }, @@ -8259,7 +8436,7 @@ func TestValidateNode(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "abc-123", Annotations: map[string]string{ - api.PreferAvoidPodsAnnotationKey: ` + core.PreferAvoidPodsAnnotationKey: ` { "preferAvoidPods": [ { @@ -8270,14 +8447,14 @@ func TestValidateNode(t *testing.T) { }`, }, }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{}, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("0"), + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{}, + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", }, }, @@ -8285,7 +8462,7 @@ func TestValidateNode(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "abc-123", Annotations: map[string]string{ - api.PreferAvoidPodsAnnotationKey: ` + core.PreferAvoidPodsAnnotationKey: ` { "preferAvoidPods": [ { @@ -8305,14 +8482,14 @@ func TestValidateNode(t *testing.T) { }`, }, }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{}, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("0"), + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{}, + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", }, }, @@ -8321,20 +8498,38 @@ func TestValidateNode(t *testing.T) { Name: "abc", Labels: validSelector, }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "something"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, + }, + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + core.ResourceName("my.org/gpu"): resource.MustParse("10"), + core.ResourceName("hugepages-2Mi"): resource.MustParse("10Gi"), + core.ResourceName("hugepages-1Gi"): resource.MustParse("10Gi"), + }, + }, + Spec: core.NodeSpec{ + ExternalID: "external", + }, + }, + "invalid-pod-cidr": { + ObjectMeta: metav1.ObjectMeta{ + Name: "abc", + }, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "something"}, }, - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - api.ResourceName("my.org/gpu"): resource.MustParse("10"), - api.ResourceName("hugepages-2Mi"): resource.MustParse("10Gi"), - api.ResourceName("hugepages-1Gi"): resource.MustParse("10Gi"), + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("0"), }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ExternalID: "external", + PodCIDR: "192.168.0.0", }, }, } @@ -8368,211 +8563,211 @@ func TestValidateNode(t *testing.T) { func TestValidateNodeUpdate(t *testing.T) { tests := []struct { - oldNode api.Node - node api.Node + oldNode core.Node + node core.Node valid bool }{ - {api.Node{}, api.Node{}, true}, - {api.Node{ + {core.Node{}, core.Node{}, true}, + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo"}}, - api.Node{ + core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "bar"}, }, false}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"foo": "bar"}, }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"foo": "baz"}, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"foo": "baz"}, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"bar": "foo"}, }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"foo": "baz"}, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ PodCIDR: "", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ PodCIDR: "192.168.0.0/16", }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ PodCIDR: "192.123.0.0/16", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ PodCIDR: "192.168.0.0/16", }, }, false}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceCPU: resource.MustParse("10000"), - api.ResourceMemory: resource.MustParse("100"), + Status: core.NodeStatus{ + Capacity: core.ResourceList{ + core.ResourceCPU: resource.MustParse("10000"), + core.ResourceMemory: resource.MustParse("100"), }, }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100"), - api.ResourceMemory: resource.MustParse("10000"), + Status: core.NodeStatus{ + Capacity: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100"), + core.ResourceMemory: resource.MustParse("10000"), }, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"bar": "foo"}, }, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceCPU: resource.MustParse("10000"), - api.ResourceMemory: resource.MustParse("100"), + Status: core.NodeStatus{ + Capacity: core.ResourceList{ + core.ResourceCPU: resource.MustParse("10000"), + core.ResourceMemory: resource.MustParse("100"), }, }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"bar": "fooobaz"}, }, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100"), - api.ResourceMemory: resource.MustParse("10000"), + Status: core.NodeStatus{ + Capacity: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100"), + core.ResourceMemory: resource.MustParse("10000"), }, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"bar": "foo"}, }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.2.3.4"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.2.3.4"}, }, }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"bar": "fooobaz"}, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"foo": "baz"}, }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Labels: map[string]string{"Foo": "baz"}, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ Unschedulable: false, }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ Unschedulable: true, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ Unschedulable: false, }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, }, }, }, false}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ Unschedulable: false, }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Status: api.NodeStatus{ - Addresses: []api.NodeAddress{ - {Type: api.NodeExternalIP, Address: "1.1.1.1"}, - {Type: api.NodeInternalIP, Address: "10.1.1.1"}, + Status: core.NodeStatus{ + Addresses: []core.NodeAddress{ + {Type: core.NodeExternalIP, Address: "1.1.1.1"}, + {Type: core.NodeInternalIP, Address: "10.1.1.1"}, }, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Annotations: map[string]string{ - api.PreferAvoidPodsAnnotationKey: ` + core.PreferAvoidPodsAnnotationKey: ` { "preferAvoidPods": [ { @@ -8592,19 +8787,19 @@ func TestValidateNodeUpdate(t *testing.T) { }`, }, }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ Unschedulable: false, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Annotations: map[string]string{ - api.PreferAvoidPodsAnnotationKey: ` + core.PreferAvoidPodsAnnotationKey: ` { "preferAvoidPods": [ { @@ -8616,15 +8811,15 @@ func TestValidateNodeUpdate(t *testing.T) { }, }, }, false}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Annotations: map[string]string{ - api.PreferAvoidPodsAnnotationKey: ` + core.PreferAvoidPodsAnnotationKey: ` { "preferAvoidPods": [ { @@ -8645,84 +8840,84 @@ func TestValidateNodeUpdate(t *testing.T) { }, }, }, false}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "valid-opaque-int-resources", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "valid-opaque-int-resources", }, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - helper.OpaqueIntResourceName("A"): resource.MustParse("5"), - helper.OpaqueIntResourceName("B"): resource.MustParse("10"), + Status: core.NodeStatus{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + helper.OpaqueIntResourceName("A"): resource.MustParse("5"), + helper.OpaqueIntResourceName("B"): resource.MustParse("10"), }, }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "invalid-fractional-opaque-int-capacity", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "invalid-fractional-opaque-int-capacity", }, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - helper.OpaqueIntResourceName("A"): resource.MustParse("500m"), + Status: core.NodeStatus{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + helper.OpaqueIntResourceName("A"): resource.MustParse("500m"), }, }, }, false}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "invalid-fractional-opaque-int-allocatable", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "invalid-fractional-opaque-int-allocatable", }, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - helper.OpaqueIntResourceName("A"): resource.MustParse("5"), + Status: core.NodeStatus{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + helper.OpaqueIntResourceName("A"): resource.MustParse("5"), }, - Allocatable: api.ResourceList{ - api.ResourceName(api.ResourceCPU): resource.MustParse("10"), - api.ResourceName(api.ResourceMemory): resource.MustParse("10G"), - helper.OpaqueIntResourceName("A"): resource.MustParse("4.5"), + Allocatable: core.ResourceList{ + core.ResourceName(core.ResourceCPU): resource.MustParse("10"), + core.ResourceName(core.ResourceMemory): resource.MustParse("10G"), + helper.OpaqueIntResourceName("A"): resource.MustParse("4.5"), }, }, }, false}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "update-provider-id-when-not-set", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "update-provider-id-when-not-set", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ProviderID: "provider:///new", }, }, true}, - {api.Node{ + {core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "update-provider-id-when-set", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ProviderID: "provider:///old", }, - }, api.Node{ + }, core.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "update-provider-id-when-set", }, - Spec: api.NodeSpec{ + Spec: core.NodeSpec{ ProviderID: "provider:///new", }, }, false}, @@ -8744,47 +8939,47 @@ func TestValidateNodeUpdate(t *testing.T) { func TestValidateServiceUpdate(t *testing.T) { testCases := []struct { name string - tweakSvc func(oldSvc, newSvc *api.Service) // given basic valid services, each test case can customize them + tweakSvc func(oldSvc, newSvc *core.Service) // given basic valid services, each test case can customize them numErrs int }{ { name: "no change", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { // do nothing }, numErrs: 0, }, { name: "change name", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Name += "2" }, numErrs: 1, }, { name: "change namespace", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Namespace += "2" }, numErrs: 1, }, { name: "change label valid", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Labels["key"] = "other-value" }, numErrs: 0, }, { name: "add label", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Labels["key2"] = "value2" }, numErrs: 0, }, { name: "change cluster IP", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "8.6.7.5" }, @@ -8792,7 +8987,7 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "remove cluster IP", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "" }, @@ -8800,10 +8995,10 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "change affinity", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Spec.SessionAffinity = "ClientIP" - newSvc.Spec.SessionAffinityConfig = &api.SessionAffinityConfig{ - ClientIP: &api.ClientIPConfig{ + newSvc.Spec.SessionAffinityConfig = &core.SessionAffinityConfig{ + ClientIP: &core.ClientIPConfig{ TimeoutSeconds: newInt32(90), }, } @@ -8812,62 +9007,62 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "remove affinity", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Spec.SessionAffinity = "" }, numErrs: 1, }, { name: "change type", - tweakSvc: func(oldSvc, newSvc *api.Service) { - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(oldSvc, newSvc *core.Service) { + newSvc.Spec.Type = core.ServiceTypeLoadBalancer }, numErrs: 0, }, { name: "remove type", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Spec.Type = "" }, numErrs: 1, }, { name: "change type -> nodeport", - tweakSvc: func(oldSvc, newSvc *api.Service) { - newSvc.Spec.Type = api.ServiceTypeNodePort + tweakSvc: func(oldSvc, newSvc *core.Service) { + newSvc.Spec.Type = core.ServiceTypeNodePort }, numErrs: 0, }, { name: "add loadBalancerSourceRanges", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeLoadBalancer + newSvc.Spec.Type = core.ServiceTypeLoadBalancer newSvc.Spec.LoadBalancerSourceRanges = []string{"10.0.0.0/8"} }, numErrs: 0, }, { name: "update loadBalancerSourceRanges", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.LoadBalancerSourceRanges = []string{"10.0.0.0/8"} - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + newSvc.Spec.Type = core.ServiceTypeLoadBalancer newSvc.Spec.LoadBalancerSourceRanges = []string{"10.100.0.0/16"} }, numErrs: 0, }, { name: "LoadBalancer type cannot have None ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { newSvc.Spec.ClusterIP = "None" - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + newSvc.Spec.Type = core.ServiceTypeLoadBalancer }, numErrs: 1, }, { name: "`None` ClusterIP cannot be changed", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.ClusterIP = "None" newSvc.Spec.ClusterIP = "1.2.3.4" }, @@ -8875,7 +9070,7 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "`None` ClusterIP cannot be removed", - tweakSvc: func(oldSvc, newSvc *api.Service) { + tweakSvc: func(oldSvc, newSvc *core.Service) { oldSvc.Spec.ClusterIP = "None" newSvc.Spec.ClusterIP = "" }, @@ -8883,9 +9078,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with ClusterIP type cannot change its set ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeClusterIP - newSvc.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeClusterIP + newSvc.Spec.Type = core.ServiceTypeClusterIP oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8894,9 +9089,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with ClusterIP type can change its empty ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeClusterIP - newSvc.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeClusterIP + newSvc.Spec.Type = core.ServiceTypeClusterIP oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8905,9 +9100,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with ClusterIP type cannot change its set ClusterIP when changing type to NodePort", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeClusterIP - newSvc.Spec.Type = api.ServiceTypeNodePort + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeClusterIP + newSvc.Spec.Type = core.ServiceTypeNodePort oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8916,9 +9111,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with ClusterIP type can change its empty ClusterIP when changing type to NodePort", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeClusterIP - newSvc.Spec.Type = api.ServiceTypeNodePort + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeClusterIP + newSvc.Spec.Type = core.ServiceTypeNodePort oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8927,9 +9122,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with ClusterIP type cannot change its ClusterIP when changing type to LoadBalancer", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeClusterIP - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeClusterIP + newSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8938,9 +9133,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with ClusterIP type can change its empty ClusterIP when changing type to LoadBalancer", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeClusterIP - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeClusterIP + newSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8949,9 +9144,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with NodePort type cannot change its set ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeNodePort - newSvc.Spec.Type = api.ServiceTypeNodePort + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeNodePort + newSvc.Spec.Type = core.ServiceTypeNodePort oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8960,9 +9155,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with NodePort type can change its empty ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeNodePort - newSvc.Spec.Type = api.ServiceTypeNodePort + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeNodePort + newSvc.Spec.Type = core.ServiceTypeNodePort oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8971,9 +9166,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with NodePort type cannot change its set ClusterIP when changing type to ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeNodePort - newSvc.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeNodePort + newSvc.Spec.Type = core.ServiceTypeClusterIP oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8982,9 +9177,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with NodePort type can change its empty ClusterIP when changing type to ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeNodePort - newSvc.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeNodePort + newSvc.Spec.Type = core.ServiceTypeClusterIP oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -8993,9 +9188,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with NodePort type cannot change its set ClusterIP when changing type to LoadBalancer", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeNodePort - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeNodePort + newSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9004,9 +9199,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with NodePort type can change its empty ClusterIP when changing type to LoadBalancer", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeNodePort - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeNodePort + newSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9015,9 +9210,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with LoadBalancer type cannot change its set ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeLoadBalancer + newSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9026,9 +9221,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with LoadBalancer type can change its empty ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Spec.Type = api.ServiceTypeLoadBalancer + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeLoadBalancer + newSvc.Spec.Type = core.ServiceTypeLoadBalancer oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9037,9 +9232,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with LoadBalancer type cannot change its set ClusterIP when changing type to ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeLoadBalancer + newSvc.Spec.Type = core.ServiceTypeClusterIP oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9048,9 +9243,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with LoadBalancer type can change its empty ClusterIP when changing type to ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeLoadBalancer + newSvc.Spec.Type = core.ServiceTypeClusterIP oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9059,9 +9254,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with LoadBalancer type cannot change its set ClusterIP when changing type to NodePort", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Spec.Type = api.ServiceTypeNodePort + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeLoadBalancer + newSvc.Spec.Type = core.ServiceTypeNodePort oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9070,9 +9265,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with LoadBalancer type can change its empty ClusterIP when changing type to NodePort", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Spec.Type = api.ServiceTypeNodePort + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeLoadBalancer + newSvc.Spec.Type = core.ServiceTypeNodePort oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9081,9 +9276,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with ExternalName type can change its empty ClusterIP when changing type to ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeExternalName - newSvc.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeExternalName + newSvc.Spec.Type = core.ServiceTypeClusterIP oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9092,9 +9287,9 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "Service with ExternalName type can change its set ClusterIP when changing type to ClusterIP", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeExternalName - newSvc.Spec.Type = api.ServiceTypeClusterIP + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeExternalName + newSvc.Spec.Type = core.ServiceTypeClusterIP oldSvc.Spec.ClusterIP = "1.2.3.4" newSvc.Spec.ClusterIP = "1.2.3.5" @@ -9103,12 +9298,12 @@ func TestValidateServiceUpdate(t *testing.T) { }, { name: "invalid node port with clusterIP None", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeNodePort - newSvc.Spec.Type = api.ServiceTypeNodePort + tweakSvc: func(oldSvc, newSvc *core.Service) { + oldSvc.Spec.Type = core.ServiceTypeNodePort + newSvc.Spec.Type = core.ServiceTypeNodePort - oldSvc.Spec.Ports = append(oldSvc.Spec.Ports, api.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) - newSvc.Spec.Ports = append(newSvc.Spec.Ports, api.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) + oldSvc.Spec.Ports = append(oldSvc.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) + newSvc.Spec.Ports = append(newSvc.Spec.Ports, core.ServicePort{Name: "q", Port: 1, Protocol: "TCP", NodePort: 1, TargetPort: intstr.FromInt(1)}) oldSvc.Spec.ClusterIP = "" newSvc.Spec.ClusterIP = "None" @@ -9173,29 +9368,29 @@ func TestValidateResourceNames(t *testing.T) { } } -func getResourceList(cpu, memory string) api.ResourceList { - res := api.ResourceList{} +func getResourceList(cpu, memory string) core.ResourceList { + res := core.ResourceList{} if cpu != "" { - res[api.ResourceCPU] = resource.MustParse(cpu) + res[core.ResourceCPU] = resource.MustParse(cpu) } if memory != "" { - res[api.ResourceMemory] = resource.MustParse(memory) + res[core.ResourceMemory] = resource.MustParse(memory) } return res } -func getStorageResourceList(storage string) api.ResourceList { - res := api.ResourceList{} +func getStorageResourceList(storage string) core.ResourceList { + res := core.ResourceList{} if storage != "" { - res[api.ResourceStorage] = resource.MustParse(storage) + res[core.ResourceStorage] = resource.MustParse(storage) } return res } -func getLocalStorageResourceList(ephemeralStorage string) api.ResourceList { - res := api.ResourceList{} +func getLocalStorageResourceList(ephemeralStorage string) core.ResourceList { + res := core.ResourceList{} if ephemeralStorage != "" { - res[api.ResourceEphemeralStorage] = resource.MustParse(ephemeralStorage) + res[core.ResourceEphemeralStorage] = resource.MustParse(ephemeralStorage) } return res } @@ -9203,20 +9398,20 @@ func getLocalStorageResourceList(ephemeralStorage string) api.ResourceList { func TestValidateLimitRangeForLocalStorage(t *testing.T) { testCases := []struct { name string - spec api.LimitRangeSpec + spec core.LimitRangeSpec }{ { name: "all-fields-valid", - spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePod, + Type: core.LimitTypePod, Max: getLocalStorageResourceList("10000Mi"), Min: getLocalStorageResourceList("100Mi"), MaxLimitRequestRatio: getLocalStorageResourceList(""), }, { - Type: api.LimitTypeContainer, + Type: core.LimitTypeContainer, Max: getLocalStorageResourceList("10000Mi"), Min: getLocalStorageResourceList("100Mi"), Default: getLocalStorageResourceList("500Mi"), @@ -9236,7 +9431,7 @@ func TestValidateLimitRangeForLocalStorage(t *testing.T) { } for _, testCase := range testCases { - limitRange := &api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: testCase.name, Namespace: "foo"}, Spec: testCase.spec} + limitRange := &core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: testCase.name, Namespace: "foo"}, Spec: testCase.spec} if errs := ValidateLimitRange(limitRange); len(errs) != 0 { t.Errorf("Case %v, unexpected error: %v", testCase.name, errs) } @@ -9249,7 +9444,7 @@ func TestValidateLimitRangeForLocalStorage(t *testing.T) { return } for _, testCase := range testCases { - limitRange := &api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: testCase.name, Namespace: "foo"}, Spec: testCase.spec} + limitRange := &core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: testCase.name, Namespace: "foo"}, Spec: testCase.spec} if errs := ValidateLimitRange(limitRange); len(errs) == 0 { t.Errorf("Case %v, expected feature gate unable error but actually no error", testCase.name) } @@ -9260,20 +9455,20 @@ func TestValidateLimitRangeForLocalStorage(t *testing.T) { func TestValidateLimitRange(t *testing.T) { successCases := []struct { name string - spec api.LimitRangeSpec + spec core.LimitRangeSpec }{ { name: "all-fields-valid", - spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePod, + Type: core.LimitTypePod, Max: getResourceList("100m", "10000Mi"), Min: getResourceList("5m", "100Mi"), MaxLimitRequestRatio: getResourceList("10", ""), }, { - Type: api.LimitTypeContainer, + Type: core.LimitTypeContainer, Max: getResourceList("100m", "10000Mi"), Min: getResourceList("5m", "100Mi"), Default: getResourceList("50m", "500Mi"), @@ -9281,7 +9476,7 @@ func TestValidateLimitRange(t *testing.T) { MaxLimitRequestRatio: getResourceList("10", ""), }, { - Type: api.LimitTypePersistentVolumeClaim, + Type: core.LimitTypePersistentVolumeClaim, Max: getStorageResourceList("10Gi"), Min: getStorageResourceList("5Gi"), }, @@ -9290,10 +9485,10 @@ func TestValidateLimitRange(t *testing.T) { }, { name: "pvc-min-only", - spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePersistentVolumeClaim, + Type: core.LimitTypePersistentVolumeClaim, Min: getStorageResourceList("5Gi"), }, }, @@ -9301,10 +9496,10 @@ func TestValidateLimitRange(t *testing.T) { }, { name: "pvc-max-only", - spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePersistentVolumeClaim, + Type: core.LimitTypePersistentVolumeClaim, Max: getStorageResourceList("10Gi"), }, }, @@ -9312,10 +9507,10 @@ func TestValidateLimitRange(t *testing.T) { }, { name: "all-fields-valid-big-numbers", - spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypeContainer, + Type: core.LimitTypeContainer, Max: getResourceList("100m", "10000T"), Min: getResourceList("5m", "100Mi"), Default: getResourceList("50m", "500Mi"), @@ -9327,8 +9522,8 @@ func TestValidateLimitRange(t *testing.T) { }, { name: "thirdparty-fields-all-valid-standard-container-resources", - spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { Type: "thirdparty.com/foo", Max: getResourceList("100m", "10000T"), @@ -9342,8 +9537,8 @@ func TestValidateLimitRange(t *testing.T) { }, { name: "thirdparty-fields-all-valid-storage-resources", - spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { Type: "thirdparty.com/foo", Max: getStorageResourceList("10000T"), @@ -9358,42 +9553,42 @@ func TestValidateLimitRange(t *testing.T) { } for _, successCase := range successCases { - limitRange := &api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: successCase.name, Namespace: "foo"}, Spec: successCase.spec} + limitRange := &core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: successCase.name, Namespace: "foo"}, Spec: successCase.spec} if errs := ValidateLimitRange(limitRange); len(errs) != 0 { t.Errorf("Case %v, unexpected error: %v", successCase.name, errs) } } errorCases := map[string]struct { - R api.LimitRange + R core.LimitRange D string }{ "zero-length-name": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: "foo"}, Spec: api.LimitRangeSpec{}}, + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: "foo"}, Spec: core.LimitRangeSpec{}}, "name or generateName is required", }, "zero-length-namespace": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: ""}, Spec: api.LimitRangeSpec{}}, + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: ""}, Spec: core.LimitRangeSpec{}}, "", }, "invalid-name": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "^Invalid", Namespace: "foo"}, Spec: api.LimitRangeSpec{}}, + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "^Invalid", Namespace: "foo"}, Spec: core.LimitRangeSpec{}}, dnsSubdomainLabelErrMsg, }, "invalid-namespace": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "^Invalid"}, Spec: api.LimitRangeSpec{}}, + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "^Invalid"}, Spec: core.LimitRangeSpec{}}, dnsLabelErrMsg, }, "duplicate-limit-type": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePod, + Type: core.LimitTypePod, Max: getResourceList("100m", "10000m"), Min: getResourceList("0m", "100m"), }, { - Type: api.LimitTypePod, + Type: core.LimitTypePod, Min: getResourceList("0m", "100m"), }, }, @@ -9401,10 +9596,10 @@ func TestValidateLimitRange(t *testing.T) { "", }, "default-limit-type-pod": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePod, + Type: core.LimitTypePod, Max: getResourceList("100m", "10000m"), Min: getResourceList("0m", "100m"), Default: getResourceList("10m", "100m"), @@ -9414,10 +9609,10 @@ func TestValidateLimitRange(t *testing.T) { "may not be specified when `type` is 'Pod'", }, "default-request-limit-type-pod": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePod, + Type: core.LimitTypePod, Max: getResourceList("100m", "10000m"), Min: getResourceList("0m", "100m"), DefaultRequest: getResourceList("10m", "100m"), @@ -9427,10 +9622,10 @@ func TestValidateLimitRange(t *testing.T) { "may not be specified when `type` is 'Pod'", }, "min value 100m is greater than max value 10m": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePod, + Type: core.LimitTypePod, Max: getResourceList("10m", ""), Min: getResourceList("100m", ""), }, @@ -9439,10 +9634,10 @@ func TestValidateLimitRange(t *testing.T) { "min value 100m is greater than max value 10m", }, "invalid spec default outside range": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypeContainer, + Type: core.LimitTypeContainer, Max: getResourceList("1", ""), Min: getResourceList("100m", ""), Default: getResourceList("2000m", ""), @@ -9452,10 +9647,10 @@ func TestValidateLimitRange(t *testing.T) { "default value 2 is greater than max value 1", }, "invalid spec default request outside range": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypeContainer, + Type: core.LimitTypeContainer, Max: getResourceList("1", ""), Min: getResourceList("100m", ""), DefaultRequest: getResourceList("2000m", ""), @@ -9465,10 +9660,10 @@ func TestValidateLimitRange(t *testing.T) { "default request value 2 is greater than max value 1", }, "invalid spec default request more than default": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypeContainer, + Type: core.LimitTypeContainer, Max: getResourceList("2", ""), Min: getResourceList("100m", ""), Default: getResourceList("500m", ""), @@ -9479,10 +9674,10 @@ func TestValidateLimitRange(t *testing.T) { "default request value 800m is greater than default limit value 500m", }, "invalid spec maxLimitRequestRatio less than 1": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePod, + Type: core.LimitTypePod, MaxLimitRequestRatio: getResourceList("800m", ""), }, }, @@ -9490,10 +9685,10 @@ func TestValidateLimitRange(t *testing.T) { "ratio 800m is less than 1", }, "invalid spec maxLimitRequestRatio greater than max/min": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypeContainer, + Type: core.LimitTypeContainer, Max: getResourceList("", "2Gi"), Min: getResourceList("", "512Mi"), MaxLimitRequestRatio: getResourceList("", "10"), @@ -9503,8 +9698,8 @@ func TestValidateLimitRange(t *testing.T) { "ratio 10 is greater than max/min = 4.000000", }, "invalid non standard limit type": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { Type: "foo", Max: getStorageResourceList("10000T"), @@ -9518,20 +9713,20 @@ func TestValidateLimitRange(t *testing.T) { "must be a standard limit type or fully qualified", }, "min and max values missing, one required": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePersistentVolumeClaim, + Type: core.LimitTypePersistentVolumeClaim, }, }, }}, "either minimum or maximum storage value is required, but neither was provided", }, "invalid min greater than max": { - api.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{ - Limits: []api.LimitRangeItem{ + core.LimitRange{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: core.LimitRangeSpec{ + Limits: []core.LimitRangeItem{ { - Type: api.LimitTypePersistentVolumeClaim, + Type: core.LimitTypePersistentVolumeClaim, Min: getStorageResourceList("10Gi"), Max: getStorageResourceList("1Gi"), }, @@ -9557,37 +9752,37 @@ func TestValidateLimitRange(t *testing.T) { } func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { - validClaim := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + validClaim := testVolumeClaim("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, }) - validConditionUpdate := testVolumeClaimWithStatus("foo", "ns", api.PersistentVolumeClaimSpec{ - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, + validConditionUpdate := testVolumeClaimWithStatus("foo", "ns", core.PersistentVolumeClaimSpec{ + AccessModes: []core.PersistentVolumeAccessMode{ + core.ReadWriteOnce, + core.ReadOnlyMany, }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), + Resources: core.ResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, }, - }, api.PersistentVolumeClaimStatus{ - Phase: api.ClaimPending, - Conditions: []api.PersistentVolumeClaimCondition{ - {Type: api.PersistentVolumeClaimResizing, Status: api.ConditionTrue}, + }, core.PersistentVolumeClaimStatus{ + Phase: core.ClaimPending, + Conditions: []core.PersistentVolumeClaimCondition{ + {Type: core.PersistentVolumeClaimResizing, Status: core.ConditionTrue}, }, }) scenarios := map[string]struct { isExpectedFailure bool - oldClaim *api.PersistentVolumeClaim - newClaim *api.PersistentVolumeClaim + oldClaim *core.PersistentVolumeClaim + newClaim *core.PersistentVolumeClaim enableResize bool }{ "condition-update-with-disabled-feature-gate": { @@ -9619,109 +9814,109 @@ func TestValidatePersistentVolumeClaimStatusUpdate(t *testing.T) { } func TestValidateResourceQuota(t *testing.T) { - spec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100"), - api.ResourceMemory: resource.MustParse("10000"), - api.ResourceRequestsCPU: resource.MustParse("100"), - api.ResourceRequestsMemory: resource.MustParse("10000"), - api.ResourceLimitsCPU: resource.MustParse("100"), - api.ResourceLimitsMemory: resource.MustParse("10000"), - api.ResourcePods: resource.MustParse("10"), - api.ResourceServices: resource.MustParse("0"), - api.ResourceReplicationControllers: resource.MustParse("10"), - api.ResourceQuotas: resource.MustParse("10"), - api.ResourceConfigMaps: resource.MustParse("10"), - api.ResourceSecrets: resource.MustParse("10"), + spec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100"), + core.ResourceMemory: resource.MustParse("10000"), + core.ResourceRequestsCPU: resource.MustParse("100"), + core.ResourceRequestsMemory: resource.MustParse("10000"), + core.ResourceLimitsCPU: resource.MustParse("100"), + core.ResourceLimitsMemory: resource.MustParse("10000"), + core.ResourcePods: resource.MustParse("10"), + core.ResourceServices: resource.MustParse("0"), + core.ResourceReplicationControllers: resource.MustParse("10"), + core.ResourceQuotas: resource.MustParse("10"), + core.ResourceConfigMaps: resource.MustParse("10"), + core.ResourceSecrets: resource.MustParse("10"), }, } - terminatingSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100"), - api.ResourceLimitsCPU: resource.MustParse("200"), + terminatingSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100"), + core.ResourceLimitsCPU: resource.MustParse("200"), }, - Scopes: []api.ResourceQuotaScope{api.ResourceQuotaScopeTerminating}, + Scopes: []core.ResourceQuotaScope{core.ResourceQuotaScopeTerminating}, } - nonTerminatingSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100"), + nonTerminatingSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100"), }, - Scopes: []api.ResourceQuotaScope{api.ResourceQuotaScopeNotTerminating}, + Scopes: []core.ResourceQuotaScope{core.ResourceQuotaScopeNotTerminating}, } - bestEffortSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourcePods: resource.MustParse("100"), + bestEffortSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourcePods: resource.MustParse("100"), }, - Scopes: []api.ResourceQuotaScope{api.ResourceQuotaScopeBestEffort}, + Scopes: []core.ResourceQuotaScope{core.ResourceQuotaScopeBestEffort}, } - nonBestEffortSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100"), + nonBestEffortSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100"), }, - Scopes: []api.ResourceQuotaScope{api.ResourceQuotaScopeNotBestEffort}, + Scopes: []core.ResourceQuotaScope{core.ResourceQuotaScopeNotBestEffort}, } // storage is not yet supported as a quota tracked resource - invalidQuotaResourceSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceStorage: resource.MustParse("10"), + invalidQuotaResourceSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceStorage: resource.MustParse("10"), }, } - negativeSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceCPU: resource.MustParse("-100"), - api.ResourceMemory: resource.MustParse("-10000"), - api.ResourcePods: resource.MustParse("-10"), - api.ResourceServices: resource.MustParse("-10"), - api.ResourceReplicationControllers: resource.MustParse("-10"), - api.ResourceQuotas: resource.MustParse("-10"), - api.ResourceConfigMaps: resource.MustParse("-10"), - api.ResourceSecrets: resource.MustParse("-10"), + negativeSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceCPU: resource.MustParse("-100"), + core.ResourceMemory: resource.MustParse("-10000"), + core.ResourcePods: resource.MustParse("-10"), + core.ResourceServices: resource.MustParse("-10"), + core.ResourceReplicationControllers: resource.MustParse("-10"), + core.ResourceQuotas: resource.MustParse("-10"), + core.ResourceConfigMaps: resource.MustParse("-10"), + core.ResourceSecrets: resource.MustParse("-10"), }, } - fractionalComputeSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100m"), + fractionalComputeSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100m"), }, } - fractionalPodSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourcePods: resource.MustParse(".1"), - api.ResourceServices: resource.MustParse(".5"), - api.ResourceReplicationControllers: resource.MustParse("1.25"), - api.ResourceQuotas: resource.MustParse("2.5"), + fractionalPodSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourcePods: resource.MustParse(".1"), + core.ResourceServices: resource.MustParse(".5"), + core.ResourceReplicationControllers: resource.MustParse("1.25"), + core.ResourceQuotas: resource.MustParse("2.5"), }, } - invalidTerminatingScopePairsSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100"), + invalidTerminatingScopePairsSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100"), }, - Scopes: []api.ResourceQuotaScope{api.ResourceQuotaScopeTerminating, api.ResourceQuotaScopeNotTerminating}, + Scopes: []core.ResourceQuotaScope{core.ResourceQuotaScopeTerminating, core.ResourceQuotaScopeNotTerminating}, } - invalidBestEffortScopePairsSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourcePods: resource.MustParse("100"), + invalidBestEffortScopePairsSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourcePods: resource.MustParse("100"), }, - Scopes: []api.ResourceQuotaScope{api.ResourceQuotaScopeBestEffort, api.ResourceQuotaScopeNotBestEffort}, + Scopes: []core.ResourceQuotaScope{core.ResourceQuotaScopeBestEffort, core.ResourceQuotaScopeNotBestEffort}, } - invalidScopeNameSpec := api.ResourceQuotaSpec{ - Hard: api.ResourceList{ - api.ResourceCPU: resource.MustParse("100"), + invalidScopeNameSpec := core.ResourceQuotaSpec{ + Hard: core.ResourceList{ + core.ResourceCPU: resource.MustParse("100"), }, - Scopes: []api.ResourceQuotaScope{api.ResourceQuotaScope("foo")}, + Scopes: []core.ResourceQuotaScope{core.ResourceQuotaScope("foo")}, } - successCases := []api.ResourceQuota{ + successCases := []core.ResourceQuota{ { ObjectMeta: metav1.ObjectMeta{ Name: "abc", @@ -9773,47 +9968,47 @@ func TestValidateResourceQuota(t *testing.T) { } errorCases := map[string]struct { - R api.ResourceQuota + R core.ResourceQuota D string }{ "zero-length Name": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: "foo"}, Spec: spec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "", Namespace: "foo"}, Spec: spec}, "name or generateName is required", }, "zero-length Namespace": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: ""}, Spec: spec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: ""}, Spec: spec}, "", }, "invalid Name": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "^Invalid", Namespace: "foo"}, Spec: spec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "^Invalid", Namespace: "foo"}, Spec: spec}, dnsSubdomainLabelErrMsg, }, "invalid Namespace": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "^Invalid"}, Spec: spec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "^Invalid"}, Spec: spec}, dnsLabelErrMsg, }, "negative-limits": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: negativeSpec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: negativeSpec}, isNegativeErrorMsg, }, "fractional-api-resource": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: fractionalPodSpec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: fractionalPodSpec}, isNotIntegerErrorMsg, }, "invalid-quota-resource": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: invalidQuotaResourceSpec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: invalidQuotaResourceSpec}, isInvalidQuotaResource, }, "invalid-quota-terminating-pair": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: invalidTerminatingScopePairsSpec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: invalidTerminatingScopePairsSpec}, "conflicting scopes", }, "invalid-quota-besteffort-pair": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: invalidBestEffortScopePairsSpec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: invalidBestEffortScopePairsSpec}, "conflicting scopes", }, "invalid-quota-scope-name": { - api.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: invalidScopeNameSpec}, + core.ResourceQuota{ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: invalidScopeNameSpec}, "unsupported scope", }, } @@ -9833,14 +10028,14 @@ func TestValidateResourceQuota(t *testing.T) { func TestValidateNamespace(t *testing.T) { validLabels := map[string]string{"a": "b"} invalidLabels := map[string]string{"NoUppercaseOrSpecialCharsLike=Equals": "b"} - successCases := []api.Namespace{ + successCases := []core.Namespace{ { ObjectMeta: metav1.ObjectMeta{Name: "abc", Labels: validLabels}, }, { ObjectMeta: metav1.ObjectMeta{Name: "abc-123"}, - Spec: api.NamespaceSpec{ - Finalizers: []api.FinalizerName{"example.com/something", "example.com/other"}, + Spec: core.NamespaceSpec{ + Finalizers: []core.FinalizerName{"example.com/something", "example.com/other"}, }, }, } @@ -9850,19 +10045,19 @@ func TestValidateNamespace(t *testing.T) { } } errorCases := map[string]struct { - R api.Namespace + R core.Namespace D string }{ "zero-length name": { - api.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ""}}, + core.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ""}}, "", }, "defined-namespace": { - api.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: "makesnosense"}}, + core.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: "makesnosense"}}, "", }, "invalid-labels": { - api.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "abc", Labels: invalidLabels}}, + core.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "abc", Labels: invalidLabels}}, "", }, } @@ -9876,47 +10071,47 @@ func TestValidateNamespace(t *testing.T) { func TestValidateNamespaceFinalizeUpdate(t *testing.T) { tests := []struct { - oldNamespace api.Namespace - namespace api.Namespace + oldNamespace core.Namespace + namespace core.Namespace valid bool }{ - {api.Namespace{}, api.Namespace{}, true}, - {api.Namespace{ + {core.Namespace{}, core.Namespace{}, true}, + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo"}}, - api.Namespace{ + core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo"}, - Spec: api.NamespaceSpec{ - Finalizers: []api.FinalizerName{"Foo"}, + Spec: core.NamespaceSpec{ + Finalizers: []core.FinalizerName{"Foo"}, }, }, false}, - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo"}, - Spec: api.NamespaceSpec{ - Finalizers: []api.FinalizerName{"foo.com/bar"}, + Spec: core.NamespaceSpec{ + Finalizers: []core.FinalizerName{"foo.com/bar"}, }, }, - api.Namespace{ + core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo"}, - Spec: api.NamespaceSpec{ - Finalizers: []api.FinalizerName{"foo.com/bar", "what.com/bar"}, + Spec: core.NamespaceSpec{ + Finalizers: []core.FinalizerName{"foo.com/bar", "what.com/bar"}, }, }, true}, - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "fooemptyfinalizer"}, - Spec: api.NamespaceSpec{ - Finalizers: []api.FinalizerName{"foo.com/bar"}, + Spec: core.NamespaceSpec{ + Finalizers: []core.FinalizerName{"foo.com/bar"}, }, }, - api.Namespace{ + core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "fooemptyfinalizer"}, - Spec: api.NamespaceSpec{ - Finalizers: []api.FinalizerName{"", "foo.com/bar", "what.com/bar"}, + Spec: core.NamespaceSpec{ + Finalizers: []core.FinalizerName{"", "foo.com/bar", "what.com/bar"}, }, }, false}, } @@ -9938,58 +10133,58 @@ func TestValidateNamespaceStatusUpdate(t *testing.T) { now := metav1.Now() tests := []struct { - oldNamespace api.Namespace - namespace api.Namespace + oldNamespace core.Namespace + namespace core.Namespace valid bool }{ - {api.Namespace{}, api.Namespace{ - Status: api.NamespaceStatus{ - Phase: api.NamespaceActive, + {core.Namespace{}, core.Namespace{ + Status: core.NamespaceStatus{ + Phase: core.NamespaceActive, }, }, true}, // Cannot set deletionTimestamp via status update - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo"}}, - api.Namespace{ + core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", DeletionTimestamp: &now}, - Status: api.NamespaceStatus{ - Phase: api.NamespaceTerminating, + Status: core.NamespaceStatus{ + Phase: core.NamespaceTerminating, }, }, false}, // Can update phase via status update - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", DeletionTimestamp: &now}}, - api.Namespace{ + core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", DeletionTimestamp: &now}, - Status: api.NamespaceStatus{ - Phase: api.NamespaceTerminating, + Status: core.NamespaceStatus{ + Phase: core.NamespaceTerminating, }, }, true}, - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo"}}, - api.Namespace{ + core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo"}, - Status: api.NamespaceStatus{ - Phase: api.NamespaceTerminating, + Status: core.NamespaceStatus{ + Phase: core.NamespaceTerminating, }, }, false}, - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo"}}, - api.Namespace{ + core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "bar"}, - Status: api.NamespaceStatus{ - Phase: api.NamespaceTerminating, + Status: core.NamespaceStatus{ + Phase: core.NamespaceTerminating, }, }, false}, } @@ -10009,76 +10204,76 @@ func TestValidateNamespaceStatusUpdate(t *testing.T) { func TestValidateNamespaceUpdate(t *testing.T) { tests := []struct { - oldNamespace api.Namespace - namespace api.Namespace + oldNamespace core.Namespace + namespace core.Namespace valid bool }{ - {api.Namespace{}, api.Namespace{}, true}, - {api.Namespace{ + {core.Namespace{}, core.Namespace{}, true}, + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo1"}}, - api.Namespace{ + core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "bar1"}, }, false}, - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo2", Labels: map[string]string{"foo": "bar"}, }, - }, api.Namespace{ + }, core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo2", Labels: map[string]string{"foo": "baz"}, }, }, true}, - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo3", }, - }, api.Namespace{ + }, core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo3", Labels: map[string]string{"foo": "baz"}, }, }, true}, - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo4", Labels: map[string]string{"bar": "foo"}, }, - }, api.Namespace{ + }, core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo4", Labels: map[string]string{"foo": "baz"}, }, }, true}, - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo5", Labels: map[string]string{"foo": "baz"}, }, - }, api.Namespace{ + }, core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo5", Labels: map[string]string{"Foo": "baz"}, }, }, true}, - {api.Namespace{ + {core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo6", Labels: map[string]string{"foo": "baz"}, }, - }, api.Namespace{ + }, core.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo6", Labels: map[string]string{"Foo": "baz"}, }, - Spec: api.NamespaceSpec{ - Finalizers: []api.FinalizerName{"kubernetes"}, + Spec: core.NamespaceSpec{ + Finalizers: []core.FinalizerName{"kubernetes"}, }, - Status: api.NamespaceStatus{ - Phase: api.NamespaceTerminating, + Status: core.NamespaceStatus{ + Phase: core.NamespaceTerminating, }, }, true}, } @@ -10098,8 +10293,8 @@ func TestValidateNamespaceUpdate(t *testing.T) { func TestValidateSecret(t *testing.T) { // Opaque secret validation - validSecret := func() api.Secret { - return api.Secret{ + validSecret := func() core.Secret { + return core.Secret{ ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Data: map[string][]byte{ "data-1": []byte("bar"), @@ -10124,7 +10319,7 @@ func TestValidateSecret(t *testing.T) { emptyNs.Namespace = "" invalidNs.Namespace = "NoUppercaseOrSpecialCharsLike=Equals" overMaxSize.Data = map[string][]byte{ - "over": make([]byte, api.MaxSecretSize+1), + "over": make([]byte, core.MaxSecretSize+1), } invalidKey.Data["a*b"] = []byte("whoops") leadingDotKey.Data[".key"] = []byte("bar") @@ -10132,16 +10327,16 @@ func TestValidateSecret(t *testing.T) { doubleDotKey.Data[".."] = []byte("bar") // kubernetes.io/service-account-token secret validation - validServiceAccountTokenSecret := func() api.Secret { - return api.Secret{ + validServiceAccountTokenSecret := func() core.Secret { + return core.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "bar", Annotations: map[string]string{ - api.ServiceAccountNameKey: "foo", + core.ServiceAccountNameKey: "foo", }, }, - Type: api.SecretTypeServiceAccountToken, + Type: core.SecretTypeServiceAccountToken, Data: map[string][]byte{ "data-1": []byte("bar"), }, @@ -10153,12 +10348,12 @@ func TestValidateSecret(t *testing.T) { missingTokenAnnotation = validServiceAccountTokenSecret() missingTokenAnnotations = validServiceAccountTokenSecret() ) - emptyTokenAnnotation.Annotations[api.ServiceAccountNameKey] = "" - delete(missingTokenAnnotation.Annotations, api.ServiceAccountNameKey) + emptyTokenAnnotation.Annotations[core.ServiceAccountNameKey] = "" + delete(missingTokenAnnotation.Annotations, core.ServiceAccountNameKey) missingTokenAnnotations.Annotations = nil tests := map[string]struct { - secret api.Secret + secret core.Secret valid bool }{ "valid": {validSecret(), true}, @@ -10189,21 +10384,21 @@ func TestValidateSecret(t *testing.T) { } func TestValidateDockerConfigSecret(t *testing.T) { - validDockerSecret := func() api.Secret { - return api.Secret{ + validDockerSecret := func() core.Secret { + return core.Secret{ ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, - Type: api.SecretTypeDockercfg, + Type: core.SecretTypeDockercfg, Data: map[string][]byte{ - api.DockerConfigKey: []byte(`{"https://index.docker.io/v1/": {"auth": "Y2x1ZWRyb29sZXIwMDAxOnBhc3N3b3Jk","email": "fake@example.com"}}`), + core.DockerConfigKey: []byte(`{"https://index.docker.io/v1/": {"auth": "Y2x1ZWRyb29sZXIwMDAxOnBhc3N3b3Jk","email": "fake@example.com"}}`), }, } } - validDockerSecret2 := func() api.Secret { - return api.Secret{ + validDockerSecret2 := func() core.Secret { + return core.Secret{ ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, - Type: api.SecretTypeDockerConfigJson, + Type: core.SecretTypeDockerConfigJson, Data: map[string][]byte{ - api.DockerConfigJsonKey: []byte(`{"auths":{"https://index.docker.io/v1/": {"auth": "Y2x1ZWRyb29sZXIwMDAxOnBhc3N3b3Jk","email": "fake@example.com"}}}`), + core.DockerConfigJsonKey: []byte(`{"auths":{"https://index.docker.io/v1/": {"auth": "Y2x1ZWRyb29sZXIwMDAxOnBhc3N3b3Jk","email": "fake@example.com"}}}`), }, } } @@ -10217,15 +10412,15 @@ func TestValidateDockerConfigSecret(t *testing.T) { invalidDockerConfigKey2 = validDockerSecret2() ) - delete(missingDockerConfigKey.Data, api.DockerConfigKey) - emptyDockerConfigKey.Data[api.DockerConfigKey] = []byte("") - invalidDockerConfigKey.Data[api.DockerConfigKey] = []byte("bad") - delete(missingDockerConfigKey2.Data, api.DockerConfigJsonKey) - emptyDockerConfigKey2.Data[api.DockerConfigJsonKey] = []byte("") - invalidDockerConfigKey2.Data[api.DockerConfigJsonKey] = []byte("bad") + delete(missingDockerConfigKey.Data, core.DockerConfigKey) + emptyDockerConfigKey.Data[core.DockerConfigKey] = []byte("") + invalidDockerConfigKey.Data[core.DockerConfigKey] = []byte("bad") + delete(missingDockerConfigKey2.Data, core.DockerConfigJsonKey) + emptyDockerConfigKey2.Data[core.DockerConfigJsonKey] = []byte("") + invalidDockerConfigKey2.Data[core.DockerConfigJsonKey] = []byte("bad") tests := map[string]struct { - secret api.Secret + secret core.Secret valid bool }{ "valid dockercfg": {validDockerSecret(), true}, @@ -10250,13 +10445,13 @@ func TestValidateDockerConfigSecret(t *testing.T) { } func TestValidateBasicAuthSecret(t *testing.T) { - validBasicAuthSecret := func() api.Secret { - return api.Secret{ + validBasicAuthSecret := func() core.Secret { + return core.Secret{ ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, - Type: api.SecretTypeBasicAuth, + Type: core.SecretTypeBasicAuth, Data: map[string][]byte{ - api.BasicAuthUsernameKey: []byte("username"), - api.BasicAuthPasswordKey: []byte("password"), + core.BasicAuthUsernameKey: []byte("username"), + core.BasicAuthPasswordKey: []byte("password"), }, } } @@ -10265,11 +10460,11 @@ func TestValidateBasicAuthSecret(t *testing.T) { missingBasicAuthUsernamePasswordKeys = validBasicAuthSecret() ) - delete(missingBasicAuthUsernamePasswordKeys.Data, api.BasicAuthUsernameKey) - delete(missingBasicAuthUsernamePasswordKeys.Data, api.BasicAuthPasswordKey) + delete(missingBasicAuthUsernamePasswordKeys.Data, core.BasicAuthUsernameKey) + delete(missingBasicAuthUsernamePasswordKeys.Data, core.BasicAuthPasswordKey) tests := map[string]struct { - secret api.Secret + secret core.Secret valid bool }{ "valid": {validBasicAuthSecret(), true}, @@ -10288,22 +10483,22 @@ func TestValidateBasicAuthSecret(t *testing.T) { } func TestValidateSSHAuthSecret(t *testing.T) { - validSSHAuthSecret := func() api.Secret { - return api.Secret{ + validSSHAuthSecret := func() core.Secret { + return core.Secret{ ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, - Type: api.SecretTypeSSHAuth, + Type: core.SecretTypeSSHAuth, Data: map[string][]byte{ - api.SSHAuthPrivateKey: []byte("foo-bar-baz"), + core.SSHAuthPrivateKey: []byte("foo-bar-baz"), }, } } missingSSHAuthPrivateKey := validSSHAuthSecret() - delete(missingSSHAuthPrivateKey.Data, api.SSHAuthPrivateKey) + delete(missingSSHAuthPrivateKey.Data, core.SSHAuthPrivateKey) tests := map[string]struct { - secret api.Secret + secret core.Secret valid bool }{ "valid": {validSSHAuthSecret(), true}, @@ -10322,17 +10517,17 @@ func TestValidateSSHAuthSecret(t *testing.T) { } func TestValidateEndpoints(t *testing.T) { - successCases := map[string]api.Endpoints{ + successCases := map[string]core.Endpoints{ "simple endpoint": { ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "10.10.1.1"}, {IP: "10.10.2.2"}}, - Ports: []api.EndpointPort{{Name: "a", Port: 8675, Protocol: "TCP"}, {Name: "b", Port: 309, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "10.10.1.1"}, {IP: "10.10.2.2"}}, + Ports: []core.EndpointPort{{Name: "a", Port: 8675, Protocol: "TCP"}, {Name: "b", Port: 309, Protocol: "TCP"}}, }, { - Addresses: []api.EndpointAddress{{IP: "10.10.3.3"}}, - Ports: []api.EndpointPort{{Name: "a", Port: 93, Protocol: "TCP"}, {Name: "b", Port: 76, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "10.10.3.3"}}, + Ports: []core.EndpointPort{{Name: "a", Port: 93, Protocol: "TCP"}, {Name: "b", Port: 76, Protocol: "TCP"}}, }, }, }, @@ -10341,18 +10536,18 @@ func TestValidateEndpoints(t *testing.T) { }, "no name required for singleton port": { ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "10.10.1.1"}}, - Ports: []api.EndpointPort{{Port: 8675, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "10.10.1.1"}}, + Ports: []core.EndpointPort{{Port: 8675, Protocol: "TCP"}}, }, }, }, "empty ports": { ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "10.10.3.3"}}, + Addresses: []core.EndpointAddress{{IP: "10.10.3.3"}}, }, }, }, @@ -10365,46 +10560,46 @@ func TestValidateEndpoints(t *testing.T) { } errorCases := map[string]struct { - endpoints api.Endpoints + endpoints core.Endpoints errorType field.ErrorType errorDetail string }{ "missing namespace": { - endpoints: api.Endpoints{ObjectMeta: metav1.ObjectMeta{Name: "mysvc"}}, + endpoints: core.Endpoints{ObjectMeta: metav1.ObjectMeta{Name: "mysvc"}}, errorType: "FieldValueRequired", }, "missing name": { - endpoints: api.Endpoints{ObjectMeta: metav1.ObjectMeta{Namespace: "namespace"}}, + endpoints: core.Endpoints{ObjectMeta: metav1.ObjectMeta{Namespace: "namespace"}}, errorType: "FieldValueRequired", }, "invalid namespace": { - endpoints: api.Endpoints{ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "no@#invalid.;chars\"allowed"}}, + endpoints: core.Endpoints{ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "no@#invalid.;chars\"allowed"}}, errorType: "FieldValueInvalid", errorDetail: dnsLabelErrMsg, }, "invalid name": { - endpoints: api.Endpoints{ObjectMeta: metav1.ObjectMeta{Name: "-_Invliad^&Characters", Namespace: "namespace"}}, + endpoints: core.Endpoints{ObjectMeta: metav1.ObjectMeta{Name: "-_Invliad^&Characters", Namespace: "namespace"}}, errorType: "FieldValueInvalid", errorDetail: dnsSubdomainLabelErrMsg, }, "empty addresses": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Ports: []api.EndpointPort{{Name: "a", Port: 93, Protocol: "TCP"}}, + Ports: []core.EndpointPort{{Name: "a", Port: 93, Protocol: "TCP"}}, }, }, }, errorType: "FieldValueRequired", }, "invalid IP": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "[2001:0db8:85a3:0042:1000:8a2e:0370:7334]"}}, - Ports: []api.EndpointPort{{Name: "a", Port: 93, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "[2001:0db8:85a3:0042:1000:8a2e:0370:7334]"}}, + Ports: []core.EndpointPort{{Name: "a", Port: 93, Protocol: "TCP"}}, }, }, }, @@ -10412,24 +10607,24 @@ func TestValidateEndpoints(t *testing.T) { errorDetail: "must be a valid IP address", }, "Multiple ports, one without name": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "10.10.1.1"}}, - Ports: []api.EndpointPort{{Port: 8675, Protocol: "TCP"}, {Name: "b", Port: 309, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "10.10.1.1"}}, + Ports: []core.EndpointPort{{Port: 8675, Protocol: "TCP"}, {Name: "b", Port: 309, Protocol: "TCP"}}, }, }, }, errorType: "FieldValueRequired", }, "Invalid port number": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "10.10.1.1"}}, - Ports: []api.EndpointPort{{Name: "a", Port: 66000, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "10.10.1.1"}}, + Ports: []core.EndpointPort{{Name: "a", Port: 66000, Protocol: "TCP"}}, }, }, }, @@ -10437,24 +10632,24 @@ func TestValidateEndpoints(t *testing.T) { errorDetail: "between", }, "Invalid protocol": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "10.10.1.1"}}, - Ports: []api.EndpointPort{{Name: "a", Port: 93, Protocol: "Protocol"}}, + Addresses: []core.EndpointAddress{{IP: "10.10.1.1"}}, + Ports: []core.EndpointPort{{Name: "a", Port: 93, Protocol: "Protocol"}}, }, }, }, errorType: "FieldValueNotSupported", }, "Address missing IP": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{}}, - Ports: []api.EndpointPort{{Name: "a", Port: 93, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{}}, + Ports: []core.EndpointPort{{Name: "a", Port: 93, Protocol: "TCP"}}, }, }, }, @@ -10462,12 +10657,12 @@ func TestValidateEndpoints(t *testing.T) { errorDetail: "must be a valid IP address", }, "Port missing number": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "10.10.1.1"}}, - Ports: []api.EndpointPort{{Name: "a", Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "10.10.1.1"}}, + Ports: []core.EndpointPort{{Name: "a", Protocol: "TCP"}}, }, }, }, @@ -10475,24 +10670,24 @@ func TestValidateEndpoints(t *testing.T) { errorDetail: "between", }, "Port missing protocol": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "10.10.1.1"}}, - Ports: []api.EndpointPort{{Name: "a", Port: 93}}, + Addresses: []core.EndpointAddress{{IP: "10.10.1.1"}}, + Ports: []core.EndpointPort{{Name: "a", Port: 93}}, }, }, }, errorType: "FieldValueRequired", }, "Address is loopback": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "127.0.0.1"}}, - Ports: []api.EndpointPort{{Name: "p", Port: 93, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "127.0.0.1"}}, + Ports: []core.EndpointPort{{Name: "p", Port: 93, Protocol: "TCP"}}, }, }, }, @@ -10500,12 +10695,12 @@ func TestValidateEndpoints(t *testing.T) { errorDetail: "loopback", }, "Address is link-local": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "169.254.169.254"}}, - Ports: []api.EndpointPort{{Name: "p", Port: 93, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "169.254.169.254"}}, + Ports: []core.EndpointPort{{Name: "p", Port: 93, Protocol: "TCP"}}, }, }, }, @@ -10513,12 +10708,12 @@ func TestValidateEndpoints(t *testing.T) { errorDetail: "link-local", }, "Address is link-local multicast": { - endpoints: api.Endpoints{ + endpoints: core.Endpoints{ ObjectMeta: metav1.ObjectMeta{Name: "mysvc", Namespace: "namespace"}, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - Addresses: []api.EndpointAddress{{IP: "224.0.0.1"}}, - Ports: []api.EndpointPort{{Name: "p", Port: 93, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{{IP: "224.0.0.1"}}, + Ports: []core.EndpointPort{{Name: "p", Port: 93, Protocol: "TCP"}}, }, }, }, @@ -10535,12 +10730,12 @@ func TestValidateEndpoints(t *testing.T) { } func TestValidateTLSSecret(t *testing.T) { - successCases := map[string]api.Secret{ + successCases := map[string]core.Secret{ "empty certificate chain": { ObjectMeta: metav1.ObjectMeta{Name: "tls-cert", Namespace: "namespace"}, Data: map[string][]byte{ - api.TLSCertKey: []byte("public key"), - api.TLSPrivateKeyKey: []byte("private key"), + core.TLSCertKey: []byte("public key"), + core.TLSPrivateKeyKey: []byte("private key"), }, }, } @@ -10550,24 +10745,24 @@ func TestValidateTLSSecret(t *testing.T) { } } errorCases := map[string]struct { - secrets api.Secret + secrets core.Secret errorType field.ErrorType errorDetail string }{ "missing public key": { - secrets: api.Secret{ + secrets: core.Secret{ ObjectMeta: metav1.ObjectMeta{Name: "tls-cert"}, Data: map[string][]byte{ - api.TLSCertKey: []byte("public key"), + core.TLSCertKey: []byte("public key"), }, }, errorType: "FieldValueRequired", }, "missing private key": { - secrets: api.Secret{ + secrets: core.Secret{ ObjectMeta: metav1.ObjectMeta{Name: "tls-cert"}, Data: map[string][]byte{ - api.TLSCertKey: []byte("public key"), + core.TLSCertKey: []byte("public key"), }, }, errorType: "FieldValueRequired", @@ -10583,14 +10778,14 @@ func TestValidateTLSSecret(t *testing.T) { func TestValidateSecurityContext(t *testing.T) { priv := false runAsUser := int64(1) - fullValidSC := func() *api.SecurityContext { - return &api.SecurityContext{ + fullValidSC := func() *core.SecurityContext { + return &core.SecurityContext{ Privileged: &priv, - Capabilities: &api.Capabilities{ - Add: []api.Capability{"foo"}, - Drop: []api.Capability{"bar"}, + Capabilities: &core.Capabilities{ + Add: []core.Capability{"foo"}, + Drop: []core.Capability{"bar"}, }, - SELinuxOptions: &api.SELinuxOptions{ + SELinuxOptions: &core.SELinuxOptions{ User: "user", Role: "role", Type: "type", @@ -10615,7 +10810,7 @@ func TestValidateSecurityContext(t *testing.T) { noRunAsUser.RunAsUser = nil successCases := map[string]struct { - sc *api.SecurityContext + sc *core.SecurityContext }{ "all settings": {allSettings}, "no capabilities": {noCaps}, @@ -10638,7 +10833,7 @@ func TestValidateSecurityContext(t *testing.T) { negativeRunAsUser.RunAsUser = &negativeUser errorCases := map[string]struct { - sc *api.SecurityContext + sc *core.SecurityContext errorType field.ErrorType errorDetail string }{ @@ -10660,8 +10855,8 @@ func TestValidateSecurityContext(t *testing.T) { } } -func fakeValidSecurityContext(priv bool) *api.SecurityContext { - return &api.SecurityContext{ +func fakeValidSecurityContext(priv bool) *core.SecurityContext { + return &core.SecurityContext{ Privileged: &priv, } } @@ -10672,22 +10867,22 @@ func TestValidPodLogOptions(t *testing.T) { zero := int64(0) positive := int64(1) tests := []struct { - opt api.PodLogOptions + opt core.PodLogOptions errs int }{ - {api.PodLogOptions{}, 0}, - {api.PodLogOptions{Previous: true}, 0}, - {api.PodLogOptions{Follow: true}, 0}, - {api.PodLogOptions{TailLines: &zero}, 0}, - {api.PodLogOptions{TailLines: &negative}, 1}, - {api.PodLogOptions{TailLines: &positive}, 0}, - {api.PodLogOptions{LimitBytes: &zero}, 1}, - {api.PodLogOptions{LimitBytes: &negative}, 1}, - {api.PodLogOptions{LimitBytes: &positive}, 0}, - {api.PodLogOptions{SinceSeconds: &negative}, 1}, - {api.PodLogOptions{SinceSeconds: &positive}, 0}, - {api.PodLogOptions{SinceSeconds: &zero}, 1}, - {api.PodLogOptions{SinceTime: &now}, 0}, + {core.PodLogOptions{}, 0}, + {core.PodLogOptions{Previous: true}, 0}, + {core.PodLogOptions{Follow: true}, 0}, + {core.PodLogOptions{TailLines: &zero}, 0}, + {core.PodLogOptions{TailLines: &negative}, 1}, + {core.PodLogOptions{TailLines: &positive}, 0}, + {core.PodLogOptions{LimitBytes: &zero}, 1}, + {core.PodLogOptions{LimitBytes: &negative}, 1}, + {core.PodLogOptions{LimitBytes: &positive}, 0}, + {core.PodLogOptions{SinceSeconds: &negative}, 1}, + {core.PodLogOptions{SinceSeconds: &positive}, 0}, + {core.PodLogOptions{SinceSeconds: &zero}, 1}, + {core.PodLogOptions{SinceTime: &now}, 0}, } for i, test := range tests { errs := ValidatePodLogOptions(&test.opt) @@ -10698,8 +10893,8 @@ func TestValidPodLogOptions(t *testing.T) { } func TestValidateConfigMap(t *testing.T) { - newConfigMap := func(name, namespace string, data map[string]string) api.ConfigMap { - return api.ConfigMap{ + newConfigMap := func(name, namespace string, data map[string]string) core.ConfigMap { + return core.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, @@ -10721,11 +10916,11 @@ func TestValidateConfigMap(t *testing.T) { dotKey = newConfigMap("validname", "validns", map[string]string{".": "value"}) doubleDotKey = newConfigMap("validname", "validns", map[string]string{"..": "value"}) overMaxKeyLength = newConfigMap("validname", "validns", map[string]string{strings.Repeat("a", 254): "value"}) - overMaxSize = newConfigMap("validname", "validns", map[string]string{"key": strings.Repeat("a", api.MaxSecretSize+1)}) + overMaxSize = newConfigMap("validname", "validns", map[string]string{"key": strings.Repeat("a", core.MaxSecretSize+1)}) ) tests := map[string]struct { - cfg api.ConfigMap + cfg core.ConfigMap isValid bool }{ "valid": {validConfigMap, true}, @@ -10754,8 +10949,8 @@ func TestValidateConfigMap(t *testing.T) { } func TestValidateConfigMapUpdate(t *testing.T) { - newConfigMap := func(version, name, namespace string, data map[string]string) api.ConfigMap { - return api.ConfigMap{ + newConfigMap := func(version, name, namespace string, data map[string]string) core.ConfigMap { + return core.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, @@ -10772,8 +10967,8 @@ func TestValidateConfigMapUpdate(t *testing.T) { cases := []struct { name string - newCfg api.ConfigMap - oldCfg api.ConfigMap + newCfg core.ConfigMap + oldCfg core.ConfigMap isValid bool }{ { @@ -10900,7 +11095,7 @@ func TestValidateSysctls(t *testing.T) { "_invalid", } - sysctls := make([]api.Sysctl, len(valid)) + sysctls := make([]core.Sysctl, len(valid)) for i, sysctl := range valid { sysctls[i].Name = sysctl } @@ -10909,7 +11104,7 @@ func TestValidateSysctls(t *testing.T) { t.Errorf("unexpected validation errors: %v", errs) } - sysctls = make([]api.Sysctl, len(invalid)) + sysctls = make([]core.Sysctl, len(invalid)) for i, sysctl := range invalid { sysctls[i].Name = sysctl } @@ -10926,18 +11121,18 @@ func TestValidateSysctls(t *testing.T) { } } -func newNodeNameEndpoint(nodeName string) *api.Endpoints { - ep := &api.Endpoints{ +func newNodeNameEndpoint(nodeName string) *core.Endpoints { + ep := &core.Endpoints{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: metav1.NamespaceDefault, ResourceVersion: "1", }, - Subsets: []api.EndpointSubset{ + Subsets: []core.EndpointSubset{ { - NotReadyAddresses: []api.EndpointAddress{}, - Ports: []api.EndpointPort{{Name: "https", Port: 443, Protocol: "TCP"}}, - Addresses: []api.EndpointAddress{ + NotReadyAddresses: []core.EndpointAddress{}, + Ports: []core.EndpointPort{{Name: "https", Port: 443, Protocol: "TCP"}}, + Addresses: []core.EndpointAddress{ { IP: "8.8.8.8", Hostname: "zookeeper1", @@ -10975,23 +11170,23 @@ func TestEndpointAddressNodeNameCanBeAnIPAddress(t *testing.T) { func TestValidateFlexVolumeSource(t *testing.T) { testcases := map[string]struct { - source *api.FlexVolumeSource + source *core.FlexVolumeSource expectedErrs map[string]string }{ "valid": { - source: &api.FlexVolumeSource{Driver: "foo"}, + source: &core.FlexVolumeSource{Driver: "foo"}, expectedErrs: map[string]string{}, }, "valid with options": { - source: &api.FlexVolumeSource{Driver: "foo", Options: map[string]string{"foo": "bar"}}, + source: &core.FlexVolumeSource{Driver: "foo", Options: map[string]string{"foo": "bar"}}, expectedErrs: map[string]string{}, }, "no driver": { - source: &api.FlexVolumeSource{Driver: ""}, + source: &core.FlexVolumeSource{Driver: ""}, expectedErrs: map[string]string{"driver": "Required value"}, }, "reserved option keys": { - source: &api.FlexVolumeSource{ + source: &core.FlexVolumeSource{ Driver: "foo", Options: map[string]string{ // valid options @@ -11057,20 +11252,20 @@ func TestValidateFlexVolumeSource(t *testing.T) { } func TestValidateOrSetClientIPAffinityConfig(t *testing.T) { - successCases := map[string]*api.SessionAffinityConfig{ + successCases := map[string]*core.SessionAffinityConfig{ "non-empty config, valid timeout: 1": { - ClientIP: &api.ClientIPConfig{ + ClientIP: &core.ClientIPConfig{ TimeoutSeconds: newInt32(1), }, }, - "non-empty config, valid timeout: api.MaxClientIPServiceAffinitySeconds-1": { - ClientIP: &api.ClientIPConfig{ - TimeoutSeconds: newInt32(int(api.MaxClientIPServiceAffinitySeconds - 1)), + "non-empty config, valid timeout: core.MaxClientIPServiceAffinitySeconds-1": { + ClientIP: &core.ClientIPConfig{ + TimeoutSeconds: newInt32(int(core.MaxClientIPServiceAffinitySeconds - 1)), }, }, - "non-empty config, valid timeout: api.MaxClientIPServiceAffinitySeconds": { - ClientIP: &api.ClientIPConfig{ - TimeoutSeconds: newInt32(int(api.MaxClientIPServiceAffinitySeconds)), + "non-empty config, valid timeout: core.MaxClientIPServiceAffinitySeconds": { + ClientIP: &core.ClientIPConfig{ + TimeoutSeconds: newInt32(int(core.MaxClientIPServiceAffinitySeconds)), }, }, } @@ -11081,28 +11276,28 @@ func TestValidateOrSetClientIPAffinityConfig(t *testing.T) { } } - errorCases := map[string]*api.SessionAffinityConfig{ + errorCases := map[string]*core.SessionAffinityConfig{ "empty session affinity config": nil, "empty client IP config": { ClientIP: nil, }, "empty timeoutSeconds": { - ClientIP: &api.ClientIPConfig{ + ClientIP: &core.ClientIPConfig{ TimeoutSeconds: nil, }, }, - "non-empty config, invalid timeout: api.MaxClientIPServiceAffinitySeconds+1": { - ClientIP: &api.ClientIPConfig{ - TimeoutSeconds: newInt32(int(api.MaxClientIPServiceAffinitySeconds + 1)), + "non-empty config, invalid timeout: core.MaxClientIPServiceAffinitySeconds+1": { + ClientIP: &core.ClientIPConfig{ + TimeoutSeconds: newInt32(int(core.MaxClientIPServiceAffinitySeconds + 1)), }, }, "non-empty config, invalid timeout: -1": { - ClientIP: &api.ClientIPConfig{ + ClientIP: &core.ClientIPConfig{ TimeoutSeconds: newInt32(-1), }, }, "non-empty config, invalid timeout: 0": { - ClientIP: &api.ClientIPConfig{ + ClientIP: &core.ClientIPConfig{ TimeoutSeconds: newInt32(0), }, }, diff --git a/vendor/k8s.io/kubernetes/pkg/api/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go similarity index 77% rename from vendor/k8s.io/kubernetes/pkg/api/zz_generated.deepcopy.go rename to vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go index 4929278ed..b149b365f 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go @@ -18,742 +18,15 @@ limitations under the License. // This file was autogenerated by deepcopy-gen. Do not edit it manually! -package api +package core import ( resource "k8s.io/apimachinery/pkg/api/resource" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" types "k8s.io/apimachinery/pkg/types" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AWSElasticBlockStoreVolumeSource).DeepCopyInto(out.(*AWSElasticBlockStoreVolumeSource)) - return nil - }, InType: reflect.TypeOf(&AWSElasticBlockStoreVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Affinity).DeepCopyInto(out.(*Affinity)) - return nil - }, InType: reflect.TypeOf(&Affinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AttachedVolume).DeepCopyInto(out.(*AttachedVolume)) - return nil - }, InType: reflect.TypeOf(&AttachedVolume{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AvoidPods).DeepCopyInto(out.(*AvoidPods)) - return nil - }, InType: reflect.TypeOf(&AvoidPods{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AzureDiskVolumeSource).DeepCopyInto(out.(*AzureDiskVolumeSource)) - return nil - }, InType: reflect.TypeOf(&AzureDiskVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AzureFilePersistentVolumeSource).DeepCopyInto(out.(*AzureFilePersistentVolumeSource)) - return nil - }, InType: reflect.TypeOf(&AzureFilePersistentVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AzureFileVolumeSource).DeepCopyInto(out.(*AzureFileVolumeSource)) - return nil - }, InType: reflect.TypeOf(&AzureFileVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Binding).DeepCopyInto(out.(*Binding)) - return nil - }, InType: reflect.TypeOf(&Binding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Capabilities).DeepCopyInto(out.(*Capabilities)) - return nil - }, InType: reflect.TypeOf(&Capabilities{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CephFSPersistentVolumeSource).DeepCopyInto(out.(*CephFSPersistentVolumeSource)) - return nil - }, InType: reflect.TypeOf(&CephFSPersistentVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CephFSVolumeSource).DeepCopyInto(out.(*CephFSVolumeSource)) - return nil - }, InType: reflect.TypeOf(&CephFSVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CinderVolumeSource).DeepCopyInto(out.(*CinderVolumeSource)) - return nil - }, InType: reflect.TypeOf(&CinderVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClientIPConfig).DeepCopyInto(out.(*ClientIPConfig)) - return nil - }, InType: reflect.TypeOf(&ClientIPConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ComponentCondition).DeepCopyInto(out.(*ComponentCondition)) - return nil - }, InType: reflect.TypeOf(&ComponentCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ComponentStatus).DeepCopyInto(out.(*ComponentStatus)) - return nil - }, InType: reflect.TypeOf(&ComponentStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ComponentStatusList).DeepCopyInto(out.(*ComponentStatusList)) - return nil - }, InType: reflect.TypeOf(&ComponentStatusList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMap).DeepCopyInto(out.(*ConfigMap)) - return nil - }, InType: reflect.TypeOf(&ConfigMap{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapEnvSource).DeepCopyInto(out.(*ConfigMapEnvSource)) - return nil - }, InType: reflect.TypeOf(&ConfigMapEnvSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapKeySelector).DeepCopyInto(out.(*ConfigMapKeySelector)) - return nil - }, InType: reflect.TypeOf(&ConfigMapKeySelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapList).DeepCopyInto(out.(*ConfigMapList)) - return nil - }, InType: reflect.TypeOf(&ConfigMapList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapProjection).DeepCopyInto(out.(*ConfigMapProjection)) - return nil - }, InType: reflect.TypeOf(&ConfigMapProjection{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapVolumeSource).DeepCopyInto(out.(*ConfigMapVolumeSource)) - return nil - }, InType: reflect.TypeOf(&ConfigMapVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Container).DeepCopyInto(out.(*Container)) - return nil - }, InType: reflect.TypeOf(&Container{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerImage).DeepCopyInto(out.(*ContainerImage)) - return nil - }, InType: reflect.TypeOf(&ContainerImage{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerPort).DeepCopyInto(out.(*ContainerPort)) - return nil - }, InType: reflect.TypeOf(&ContainerPort{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerState).DeepCopyInto(out.(*ContainerState)) - return nil - }, InType: reflect.TypeOf(&ContainerState{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerStateRunning).DeepCopyInto(out.(*ContainerStateRunning)) - return nil - }, InType: reflect.TypeOf(&ContainerStateRunning{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerStateTerminated).DeepCopyInto(out.(*ContainerStateTerminated)) - return nil - }, InType: reflect.TypeOf(&ContainerStateTerminated{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerStateWaiting).DeepCopyInto(out.(*ContainerStateWaiting)) - return nil - }, InType: reflect.TypeOf(&ContainerStateWaiting{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerStatus).DeepCopyInto(out.(*ContainerStatus)) - return nil - }, InType: reflect.TypeOf(&ContainerStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonEndpoint).DeepCopyInto(out.(*DaemonEndpoint)) - return nil - }, InType: reflect.TypeOf(&DaemonEndpoint{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeleteOptions).DeepCopyInto(out.(*DeleteOptions)) - return nil - }, InType: reflect.TypeOf(&DeleteOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DownwardAPIProjection).DeepCopyInto(out.(*DownwardAPIProjection)) - return nil - }, InType: reflect.TypeOf(&DownwardAPIProjection{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DownwardAPIVolumeFile).DeepCopyInto(out.(*DownwardAPIVolumeFile)) - return nil - }, InType: reflect.TypeOf(&DownwardAPIVolumeFile{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DownwardAPIVolumeSource).DeepCopyInto(out.(*DownwardAPIVolumeSource)) - return nil - }, InType: reflect.TypeOf(&DownwardAPIVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EmptyDirVolumeSource).DeepCopyInto(out.(*EmptyDirVolumeSource)) - return nil - }, InType: reflect.TypeOf(&EmptyDirVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EndpointAddress).DeepCopyInto(out.(*EndpointAddress)) - return nil - }, InType: reflect.TypeOf(&EndpointAddress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EndpointPort).DeepCopyInto(out.(*EndpointPort)) - return nil - }, InType: reflect.TypeOf(&EndpointPort{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EndpointSubset).DeepCopyInto(out.(*EndpointSubset)) - return nil - }, InType: reflect.TypeOf(&EndpointSubset{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Endpoints).DeepCopyInto(out.(*Endpoints)) - return nil - }, InType: reflect.TypeOf(&Endpoints{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EndpointsList).DeepCopyInto(out.(*EndpointsList)) - return nil - }, InType: reflect.TypeOf(&EndpointsList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EnvFromSource).DeepCopyInto(out.(*EnvFromSource)) - return nil - }, InType: reflect.TypeOf(&EnvFromSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EnvVar).DeepCopyInto(out.(*EnvVar)) - return nil - }, InType: reflect.TypeOf(&EnvVar{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EnvVarSource).DeepCopyInto(out.(*EnvVarSource)) - return nil - }, InType: reflect.TypeOf(&EnvVarSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Event).DeepCopyInto(out.(*Event)) - return nil - }, InType: reflect.TypeOf(&Event{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EventList).DeepCopyInto(out.(*EventList)) - return nil - }, InType: reflect.TypeOf(&EventList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EventSource).DeepCopyInto(out.(*EventSource)) - return nil - }, InType: reflect.TypeOf(&EventSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExecAction).DeepCopyInto(out.(*ExecAction)) - return nil - }, InType: reflect.TypeOf(&ExecAction{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FCVolumeSource).DeepCopyInto(out.(*FCVolumeSource)) - return nil - }, InType: reflect.TypeOf(&FCVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlexVolumeSource).DeepCopyInto(out.(*FlexVolumeSource)) - return nil - }, InType: reflect.TypeOf(&FlexVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlockerVolumeSource).DeepCopyInto(out.(*FlockerVolumeSource)) - return nil - }, InType: reflect.TypeOf(&FlockerVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GCEPersistentDiskVolumeSource).DeepCopyInto(out.(*GCEPersistentDiskVolumeSource)) - return nil - }, InType: reflect.TypeOf(&GCEPersistentDiskVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GitRepoVolumeSource).DeepCopyInto(out.(*GitRepoVolumeSource)) - return nil - }, InType: reflect.TypeOf(&GitRepoVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GlusterfsVolumeSource).DeepCopyInto(out.(*GlusterfsVolumeSource)) - return nil - }, InType: reflect.TypeOf(&GlusterfsVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HTTPGetAction).DeepCopyInto(out.(*HTTPGetAction)) - return nil - }, InType: reflect.TypeOf(&HTTPGetAction{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HTTPHeader).DeepCopyInto(out.(*HTTPHeader)) - return nil - }, InType: reflect.TypeOf(&HTTPHeader{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Handler).DeepCopyInto(out.(*Handler)) - return nil - }, InType: reflect.TypeOf(&Handler{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HostAlias).DeepCopyInto(out.(*HostAlias)) - return nil - }, InType: reflect.TypeOf(&HostAlias{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HostPathVolumeSource).DeepCopyInto(out.(*HostPathVolumeSource)) - return nil - }, InType: reflect.TypeOf(&HostPathVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ISCSIVolumeSource).DeepCopyInto(out.(*ISCSIVolumeSource)) - return nil - }, InType: reflect.TypeOf(&ISCSIVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KeyToPath).DeepCopyInto(out.(*KeyToPath)) - return nil - }, InType: reflect.TypeOf(&KeyToPath{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Lifecycle).DeepCopyInto(out.(*Lifecycle)) - return nil - }, InType: reflect.TypeOf(&Lifecycle{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitRange).DeepCopyInto(out.(*LimitRange)) - return nil - }, InType: reflect.TypeOf(&LimitRange{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitRangeItem).DeepCopyInto(out.(*LimitRangeItem)) - return nil - }, InType: reflect.TypeOf(&LimitRangeItem{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitRangeList).DeepCopyInto(out.(*LimitRangeList)) - return nil - }, InType: reflect.TypeOf(&LimitRangeList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitRangeSpec).DeepCopyInto(out.(*LimitRangeSpec)) - return nil - }, InType: reflect.TypeOf(&LimitRangeSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*List).DeepCopyInto(out.(*List)) - return nil - }, InType: reflect.TypeOf(&List{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ListOptions).DeepCopyInto(out.(*ListOptions)) - return nil - }, InType: reflect.TypeOf(&ListOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LoadBalancerIngress).DeepCopyInto(out.(*LoadBalancerIngress)) - return nil - }, InType: reflect.TypeOf(&LoadBalancerIngress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LoadBalancerStatus).DeepCopyInto(out.(*LoadBalancerStatus)) - return nil - }, InType: reflect.TypeOf(&LoadBalancerStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LocalObjectReference).DeepCopyInto(out.(*LocalObjectReference)) - return nil - }, InType: reflect.TypeOf(&LocalObjectReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LocalVolumeSource).DeepCopyInto(out.(*LocalVolumeSource)) - return nil - }, InType: reflect.TypeOf(&LocalVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NFSVolumeSource).DeepCopyInto(out.(*NFSVolumeSource)) - return nil - }, InType: reflect.TypeOf(&NFSVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Namespace).DeepCopyInto(out.(*Namespace)) - return nil - }, InType: reflect.TypeOf(&Namespace{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamespaceList).DeepCopyInto(out.(*NamespaceList)) - return nil - }, InType: reflect.TypeOf(&NamespaceList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamespaceSpec).DeepCopyInto(out.(*NamespaceSpec)) - return nil - }, InType: reflect.TypeOf(&NamespaceSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamespaceStatus).DeepCopyInto(out.(*NamespaceStatus)) - return nil - }, InType: reflect.TypeOf(&NamespaceStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Node).DeepCopyInto(out.(*Node)) - return nil - }, InType: reflect.TypeOf(&Node{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeAddress).DeepCopyInto(out.(*NodeAddress)) - return nil - }, InType: reflect.TypeOf(&NodeAddress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeAffinity).DeepCopyInto(out.(*NodeAffinity)) - return nil - }, InType: reflect.TypeOf(&NodeAffinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeCondition).DeepCopyInto(out.(*NodeCondition)) - return nil - }, InType: reflect.TypeOf(&NodeCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeConfigSource).DeepCopyInto(out.(*NodeConfigSource)) - return nil - }, InType: reflect.TypeOf(&NodeConfigSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeDaemonEndpoints).DeepCopyInto(out.(*NodeDaemonEndpoints)) - return nil - }, InType: reflect.TypeOf(&NodeDaemonEndpoints{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeList).DeepCopyInto(out.(*NodeList)) - return nil - }, InType: reflect.TypeOf(&NodeList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeProxyOptions).DeepCopyInto(out.(*NodeProxyOptions)) - return nil - }, InType: reflect.TypeOf(&NodeProxyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeResources).DeepCopyInto(out.(*NodeResources)) - return nil - }, InType: reflect.TypeOf(&NodeResources{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSelector).DeepCopyInto(out.(*NodeSelector)) - return nil - }, InType: reflect.TypeOf(&NodeSelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSelectorRequirement).DeepCopyInto(out.(*NodeSelectorRequirement)) - return nil - }, InType: reflect.TypeOf(&NodeSelectorRequirement{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSelectorTerm).DeepCopyInto(out.(*NodeSelectorTerm)) - return nil - }, InType: reflect.TypeOf(&NodeSelectorTerm{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSpec).DeepCopyInto(out.(*NodeSpec)) - return nil - }, InType: reflect.TypeOf(&NodeSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeStatus).DeepCopyInto(out.(*NodeStatus)) - return nil - }, InType: reflect.TypeOf(&NodeStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSystemInfo).DeepCopyInto(out.(*NodeSystemInfo)) - return nil - }, InType: reflect.TypeOf(&NodeSystemInfo{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectFieldSelector).DeepCopyInto(out.(*ObjectFieldSelector)) - return nil - }, InType: reflect.TypeOf(&ObjectFieldSelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectMeta).DeepCopyInto(out.(*ObjectMeta)) - return nil - }, InType: reflect.TypeOf(&ObjectMeta{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectReference).DeepCopyInto(out.(*ObjectReference)) - return nil - }, InType: reflect.TypeOf(&ObjectReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolume).DeepCopyInto(out.(*PersistentVolume)) - return nil - }, InType: reflect.TypeOf(&PersistentVolume{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaim).DeepCopyInto(out.(*PersistentVolumeClaim)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaim{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimCondition).DeepCopyInto(out.(*PersistentVolumeClaimCondition)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimList).DeepCopyInto(out.(*PersistentVolumeClaimList)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimSpec).DeepCopyInto(out.(*PersistentVolumeClaimSpec)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimStatus).DeepCopyInto(out.(*PersistentVolumeClaimStatus)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimVolumeSource).DeepCopyInto(out.(*PersistentVolumeClaimVolumeSource)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeList).DeepCopyInto(out.(*PersistentVolumeList)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeSource).DeepCopyInto(out.(*PersistentVolumeSource)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeSpec).DeepCopyInto(out.(*PersistentVolumeSpec)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeStatus).DeepCopyInto(out.(*PersistentVolumeStatus)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PhotonPersistentDiskVolumeSource).DeepCopyInto(out.(*PhotonPersistentDiskVolumeSource)) - return nil - }, InType: reflect.TypeOf(&PhotonPersistentDiskVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Pod).DeepCopyInto(out.(*Pod)) - return nil - }, InType: reflect.TypeOf(&Pod{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodAffinity).DeepCopyInto(out.(*PodAffinity)) - return nil - }, InType: reflect.TypeOf(&PodAffinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodAffinityTerm).DeepCopyInto(out.(*PodAffinityTerm)) - return nil - }, InType: reflect.TypeOf(&PodAffinityTerm{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodAntiAffinity).DeepCopyInto(out.(*PodAntiAffinity)) - return nil - }, InType: reflect.TypeOf(&PodAntiAffinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodAttachOptions).DeepCopyInto(out.(*PodAttachOptions)) - return nil - }, InType: reflect.TypeOf(&PodAttachOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodCondition).DeepCopyInto(out.(*PodCondition)) - return nil - }, InType: reflect.TypeOf(&PodCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodExecOptions).DeepCopyInto(out.(*PodExecOptions)) - return nil - }, InType: reflect.TypeOf(&PodExecOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodList).DeepCopyInto(out.(*PodList)) - return nil - }, InType: reflect.TypeOf(&PodList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodLogOptions).DeepCopyInto(out.(*PodLogOptions)) - return nil - }, InType: reflect.TypeOf(&PodLogOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodPortForwardOptions).DeepCopyInto(out.(*PodPortForwardOptions)) - return nil - }, InType: reflect.TypeOf(&PodPortForwardOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodProxyOptions).DeepCopyInto(out.(*PodProxyOptions)) - return nil - }, InType: reflect.TypeOf(&PodProxyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSecurityContext).DeepCopyInto(out.(*PodSecurityContext)) - return nil - }, InType: reflect.TypeOf(&PodSecurityContext{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSignature).DeepCopyInto(out.(*PodSignature)) - return nil - }, InType: reflect.TypeOf(&PodSignature{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSpec).DeepCopyInto(out.(*PodSpec)) - return nil - }, InType: reflect.TypeOf(&PodSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodStatus).DeepCopyInto(out.(*PodStatus)) - return nil - }, InType: reflect.TypeOf(&PodStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodStatusResult).DeepCopyInto(out.(*PodStatusResult)) - return nil - }, InType: reflect.TypeOf(&PodStatusResult{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodTemplate).DeepCopyInto(out.(*PodTemplate)) - return nil - }, InType: reflect.TypeOf(&PodTemplate{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodTemplateList).DeepCopyInto(out.(*PodTemplateList)) - return nil - }, InType: reflect.TypeOf(&PodTemplateList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodTemplateSpec).DeepCopyInto(out.(*PodTemplateSpec)) - return nil - }, InType: reflect.TypeOf(&PodTemplateSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PortworxVolumeSource).DeepCopyInto(out.(*PortworxVolumeSource)) - return nil - }, InType: reflect.TypeOf(&PortworxVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Preconditions).DeepCopyInto(out.(*Preconditions)) - return nil - }, InType: reflect.TypeOf(&Preconditions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PreferAvoidPodsEntry).DeepCopyInto(out.(*PreferAvoidPodsEntry)) - return nil - }, InType: reflect.TypeOf(&PreferAvoidPodsEntry{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PreferredSchedulingTerm).DeepCopyInto(out.(*PreferredSchedulingTerm)) - return nil - }, InType: reflect.TypeOf(&PreferredSchedulingTerm{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Probe).DeepCopyInto(out.(*Probe)) - return nil - }, InType: reflect.TypeOf(&Probe{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ProjectedVolumeSource).DeepCopyInto(out.(*ProjectedVolumeSource)) - return nil - }, InType: reflect.TypeOf(&ProjectedVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*QuobyteVolumeSource).DeepCopyInto(out.(*QuobyteVolumeSource)) - return nil - }, InType: reflect.TypeOf(&QuobyteVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RBDVolumeSource).DeepCopyInto(out.(*RBDVolumeSource)) - return nil - }, InType: reflect.TypeOf(&RBDVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RangeAllocation).DeepCopyInto(out.(*RangeAllocation)) - return nil - }, InType: reflect.TypeOf(&RangeAllocation{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationController).DeepCopyInto(out.(*ReplicationController)) - return nil - }, InType: reflect.TypeOf(&ReplicationController{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerCondition).DeepCopyInto(out.(*ReplicationControllerCondition)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerList).DeepCopyInto(out.(*ReplicationControllerList)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerSpec).DeepCopyInto(out.(*ReplicationControllerSpec)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerStatus).DeepCopyInto(out.(*ReplicationControllerStatus)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceFieldSelector).DeepCopyInto(out.(*ResourceFieldSelector)) - return nil - }, InType: reflect.TypeOf(&ResourceFieldSelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceQuota).DeepCopyInto(out.(*ResourceQuota)) - return nil - }, InType: reflect.TypeOf(&ResourceQuota{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceQuotaList).DeepCopyInto(out.(*ResourceQuotaList)) - return nil - }, InType: reflect.TypeOf(&ResourceQuotaList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceQuotaSpec).DeepCopyInto(out.(*ResourceQuotaSpec)) - return nil - }, InType: reflect.TypeOf(&ResourceQuotaSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceQuotaStatus).DeepCopyInto(out.(*ResourceQuotaStatus)) - return nil - }, InType: reflect.TypeOf(&ResourceQuotaStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceRequirements).DeepCopyInto(out.(*ResourceRequirements)) - return nil - }, InType: reflect.TypeOf(&ResourceRequirements{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SELinuxOptions).DeepCopyInto(out.(*SELinuxOptions)) - return nil - }, InType: reflect.TypeOf(&SELinuxOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleIOVolumeSource).DeepCopyInto(out.(*ScaleIOVolumeSource)) - return nil - }, InType: reflect.TypeOf(&ScaleIOVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Secret).DeepCopyInto(out.(*Secret)) - return nil - }, InType: reflect.TypeOf(&Secret{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretEnvSource).DeepCopyInto(out.(*SecretEnvSource)) - return nil - }, InType: reflect.TypeOf(&SecretEnvSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretKeySelector).DeepCopyInto(out.(*SecretKeySelector)) - return nil - }, InType: reflect.TypeOf(&SecretKeySelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretList).DeepCopyInto(out.(*SecretList)) - return nil - }, InType: reflect.TypeOf(&SecretList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretProjection).DeepCopyInto(out.(*SecretProjection)) - return nil - }, InType: reflect.TypeOf(&SecretProjection{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretReference).DeepCopyInto(out.(*SecretReference)) - return nil - }, InType: reflect.TypeOf(&SecretReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretVolumeSource).DeepCopyInto(out.(*SecretVolumeSource)) - return nil - }, InType: reflect.TypeOf(&SecretVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecurityContext).DeepCopyInto(out.(*SecurityContext)) - return nil - }, InType: reflect.TypeOf(&SecurityContext{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SerializedReference).DeepCopyInto(out.(*SerializedReference)) - return nil - }, InType: reflect.TypeOf(&SerializedReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Service).DeepCopyInto(out.(*Service)) - return nil - }, InType: reflect.TypeOf(&Service{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceAccount).DeepCopyInto(out.(*ServiceAccount)) - return nil - }, InType: reflect.TypeOf(&ServiceAccount{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceAccountList).DeepCopyInto(out.(*ServiceAccountList)) - return nil - }, InType: reflect.TypeOf(&ServiceAccountList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceList).DeepCopyInto(out.(*ServiceList)) - return nil - }, InType: reflect.TypeOf(&ServiceList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServicePort).DeepCopyInto(out.(*ServicePort)) - return nil - }, InType: reflect.TypeOf(&ServicePort{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceProxyOptions).DeepCopyInto(out.(*ServiceProxyOptions)) - return nil - }, InType: reflect.TypeOf(&ServiceProxyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceSpec).DeepCopyInto(out.(*ServiceSpec)) - return nil - }, InType: reflect.TypeOf(&ServiceSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceStatus).DeepCopyInto(out.(*ServiceStatus)) - return nil - }, InType: reflect.TypeOf(&ServiceStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SessionAffinityConfig).DeepCopyInto(out.(*SessionAffinityConfig)) - return nil - }, InType: reflect.TypeOf(&SessionAffinityConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageOSPersistentVolumeSource).DeepCopyInto(out.(*StorageOSPersistentVolumeSource)) - return nil - }, InType: reflect.TypeOf(&StorageOSPersistentVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageOSVolumeSource).DeepCopyInto(out.(*StorageOSVolumeSource)) - return nil - }, InType: reflect.TypeOf(&StorageOSVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Sysctl).DeepCopyInto(out.(*Sysctl)) - return nil - }, InType: reflect.TypeOf(&Sysctl{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TCPSocketAction).DeepCopyInto(out.(*TCPSocketAction)) - return nil - }, InType: reflect.TypeOf(&TCPSocketAction{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Taint).DeepCopyInto(out.(*Taint)) - return nil - }, InType: reflect.TypeOf(&Taint{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Toleration).DeepCopyInto(out.(*Toleration)) - return nil - }, InType: reflect.TypeOf(&Toleration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Volume).DeepCopyInto(out.(*Volume)) - return nil - }, InType: reflect.TypeOf(&Volume{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VolumeMount).DeepCopyInto(out.(*VolumeMount)) - return nil - }, InType: reflect.TypeOf(&VolumeMount{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VolumeProjection).DeepCopyInto(out.(*VolumeProjection)) - return nil - }, InType: reflect.TypeOf(&VolumeProjection{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VolumeSource).DeepCopyInto(out.(*VolumeSource)) - return nil - }, InType: reflect.TypeOf(&VolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VsphereVirtualDiskVolumeSource).DeepCopyInto(out.(*VsphereVirtualDiskVolumeSource)) - return nil - }, InType: reflect.TypeOf(&VsphereVirtualDiskVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*WeightedPodAffinityTerm).DeepCopyInto(out.(*WeightedPodAffinityTerm)) - return nil - }, InType: reflect.TypeOf(&WeightedPodAffinityTerm{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AWSElasticBlockStoreVolumeSource) DeepCopyInto(out *AWSElasticBlockStoreVolumeSource) { *out = *in @@ -3747,7 +3020,7 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(RBDVolumeSource) + *out = new(RBDPersistentVolumeSource) (*in).DeepCopyInto(*out) } } @@ -3864,7 +3137,7 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(ScaleIOVolumeSource) + *out = new(ScaleIOPersistentVolumeSource) (*in).DeepCopyInto(*out) } } @@ -4815,6 +4088,36 @@ func (in *QuobyteVolumeSource) DeepCopy() *QuobyteVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RBDPersistentVolumeSource) DeepCopyInto(out *RBDPersistentVolumeSource) { + *out = *in + if in.CephMonitors != nil { + in, out := &in.CephMonitors, &out.CephMonitors + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + if *in == nil { + *out = nil + } else { + *out = new(SecretReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDPersistentVolumeSource. +func (in *RBDPersistentVolumeSource) DeepCopy() *RBDPersistentVolumeSource { + if in == nil { + return nil + } + out := new(RBDPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RBDVolumeSource) DeepCopyInto(out *RBDVolumeSource) { *out = *in @@ -5196,6 +4499,31 @@ func (in *SELinuxOptions) DeepCopy() *SELinuxOptions { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ScaleIOPersistentVolumeSource) DeepCopyInto(out *ScaleIOPersistentVolumeSource) { + *out = *in + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + if *in == nil { + *out = nil + } else { + *out = new(SecretReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleIOPersistentVolumeSource. +func (in *ScaleIOPersistentVolumeSource) DeepCopy() *ScaleIOPersistentVolumeSource { + if in == nil { + return nil + } + out := new(ScaleIOPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ScaleIOVolumeSource) DeepCopyInto(out *ScaleIOVolumeSource) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/extensions/BUILD index 5cdded17f..c52d2a9ac 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/BUILD @@ -24,11 +24,11 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/extensions", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/networking:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/doc.go index fbce8ee70..d97cffdbc 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package extensions // import "k8s.io/kubernetes/pkg/apis/extensions" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/fuzzer/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/extensions/fuzzer/BUILD index 4f4bf9cce..712d0f4e6 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/fuzzer/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/fuzzer/BUILD @@ -12,7 +12,6 @@ go_library( deps = [ "//pkg/apis/extensions:go_default_library", "//vendor/github.com/google/gofuzz: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/util/intstr:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/fuzzer/fuzzer.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/fuzzer/fuzzer.go index a36148b79..006d04f9f 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/fuzzer/fuzzer.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/fuzzer/fuzzer.go @@ -21,7 +21,6 @@ import ( fuzz "github.com/google/gofuzz" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/kubernetes/pkg/apis/extensions" @@ -57,29 +56,31 @@ var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { }, func(psp *extensions.PodSecurityPolicySpec, c fuzz.Continue) { c.FuzzNoCustom(psp) // fuzz self without calling this function again - runAsUserRules := []extensions.RunAsUserStrategy{extensions.RunAsUserStrategyMustRunAsNonRoot, extensions.RunAsUserStrategyMustRunAs, extensions.RunAsUserStrategyRunAsAny} + + runAsUserRules := []extensions.RunAsUserStrategy{ + extensions.RunAsUserStrategyMustRunAsNonRoot, + extensions.RunAsUserStrategyMustRunAs, + extensions.RunAsUserStrategyRunAsAny, + } psp.RunAsUser.Rule = runAsUserRules[c.Rand.Intn(len(runAsUserRules))] - seLinuxRules := []extensions.SELinuxStrategy{extensions.SELinuxStrategyRunAsAny, extensions.SELinuxStrategyMustRunAs} + + seLinuxRules := []extensions.SELinuxStrategy{ + extensions.SELinuxStrategyMustRunAs, + extensions.SELinuxStrategyRunAsAny, + } psp.SELinux.Rule = seLinuxRules[c.Rand.Intn(len(seLinuxRules))] - }, - func(s *extensions.Scale, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - // TODO: Implement a fuzzer to generate valid keys, values and operators for - // selector requirements. - if s.Status.Selector != nil { - s.Status.Selector = &metav1.LabelSelector{ - MatchLabels: map[string]string{ - "testlabelkey": "testlabelval", - }, - MatchExpressions: []metav1.LabelSelectorRequirement{ - { - Key: "testkey", - Operator: metav1.LabelSelectorOpIn, - Values: []string{"val1", "val2", "val3"}, - }, - }, - } + + supplementalGroupsRules := []extensions.SupplementalGroupsStrategyType{ + extensions.SupplementalGroupsStrategyRunAsAny, + extensions.SupplementalGroupsStrategyMustRunAs, + } + psp.SupplementalGroups.Rule = supplementalGroupsRules[c.Rand.Intn(len(supplementalGroupsRules))] + + fsGroupRules := []extensions.FSGroupStrategyType{ + extensions.FSGroupStrategyMustRunAs, + extensions.FSGroupStrategyRunAsAny, } + psp.FSGroup.Rule = fsGroupRules[c.Rand.Intn(len(fsGroupRules))] }, func(j *extensions.DaemonSetSpec, c fuzz.Continue) { c.FuzzNoCustom(j) // fuzz self without calling this function again diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/BUILD index 971b44e30..886ce927a 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/extensions/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/install.go index 7e8cc9c21..dfa899101 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/install/install.go @@ -23,13 +23,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme @@ -38,7 +38,7 @@ func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *r &announced.GroupMetaFactoryArgs{ GroupName: extensions.GroupName, VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - RootScopedKinds: sets.NewString("PodSecurityPolicy", "ThirdPartyResource"), + RootScopedKinds: sets.NewString("PodSecurityPolicy"), AddInternalObjectsToScheme: extensions.AddToScheme, }, announced.VersionToSchemeFunc{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/register.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/register.go index 780f58dc7..48137fc69 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/register.go @@ -19,6 +19,7 @@ package extensions import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/networking" ) @@ -43,7 +44,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { // TODO this gets cleaned up when the types are fixed scheme.AddKnownTypes(SchemeGroupVersion, @@ -51,19 +52,15 @@ func addKnownTypes(scheme *runtime.Scheme) error { &DeploymentList{}, &DeploymentRollback{}, &ReplicationControllerDummy{}, - &Scale{}, - &ThirdPartyResource{}, - &ThirdPartyResourceList{}, &DaemonSetList{}, &DaemonSet{}, - &ThirdPartyResourceData{}, - &ThirdPartyResourceDataList{}, &Ingress{}, &IngressList{}, &ReplicaSet{}, &ReplicaSetList{}, &PodSecurityPolicy{}, &PodSecurityPolicyList{}, + &autoscaling.Scale{}, &networking.NetworkPolicy{}, &networking.NetworkPolicyList{}, ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/types.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/types.go index 3abc8f8f3..01c6de7dc 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/types.go @@ -32,7 +32,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) const ( @@ -42,44 +42,6 @@ const ( SysctlsPodSecurityPolicyAnnotationKey string = "security.alpha.kubernetes.io/sysctls" ) -// describes the attributes of a scale subresource -type ScaleSpec struct { - // desired number of instances for the scaled object. - // +optional - Replicas int32 -} - -// represents the current status of a scale subresource. -type ScaleStatus struct { - // actual number of observed instances of the scaled object. - Replicas int32 - - // label query over pods that should match the replicas count. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional - Selector *metav1.LabelSelector -} - -// +genclient -// +genclient:noVerbs -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// represents a scaling request for a resource. -type Scale struct { - metav1.TypeMeta - // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. - // +optional - metav1.ObjectMeta - - // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. - // +optional - Spec ScaleSpec - - // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only. - // +optional - Status ScaleStatus -} - // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Dummy definition @@ -111,63 +73,8 @@ type CustomMetricCurrentStatusList struct { } // +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource -// types to the API. It consists of one or more Versions of the api. -type ThirdPartyResource struct { - metav1.TypeMeta - - // Standard object metadata - // +optional - metav1.ObjectMeta - - // Description is the description of this object. - // +optional - Description string - - // Versions are versions for this third party object - Versions []APIVersion -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type ThirdPartyResourceList struct { - metav1.TypeMeta - - // Standard list metadata. - // +optional - metav1.ListMeta - - // Items is the list of horizontal pod autoscalers. - Items []ThirdPartyResource -} - -// An APIVersion represents a single concrete version of an object model. -// TODO: we should consider merge this struct with GroupVersion in metav1.go -type APIVersion struct { - // Name of this version (e.g. 'v1'). - Name string -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// An internal object, used for versioned storage in etcd. Not exposed to the end user. -type ThirdPartyResourceData struct { - metav1.TypeMeta - // Standard object metadata. - // +optional - metav1.ObjectMeta - - // Data is the raw JSON data for this data. - // +optional - Data []byte -} - -// +genclient -// +genclient:method=GetScale,verb=get,subresource=scale,result=Scale -// +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale +// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale +// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/autoscaling.Scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type Deployment struct { @@ -524,6 +431,27 @@ type DaemonSetStatus struct { // create the name for the newest ControllerRevision. // +optional CollisionCount *int32 + + // Represents the latest available observations of a DaemonSet's current state. + Conditions []DaemonSetCondition +} + +type DaemonSetConditionType string + +// TODO: Add valid condition types of a DaemonSet. + +// DaemonSetCondition describes the state of a DaemonSet at a certain point. +type DaemonSetCondition struct { + // Type of DaemonSet condition. + Type DaemonSetConditionType + // Status of the condition, one of True, False, Unknown. + Status api.ConditionStatus + // Last time the condition transitioned from one status to another. + LastTransitionTime metav1.Time + // The reason for the condition's last transition. + Reason string + // A human readable message indicating details about the transition. + Message string } // +genclient @@ -573,18 +501,6 @@ type DaemonSetList struct { Items []DaemonSet } -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type ThirdPartyResourceDataList struct { - metav1.TypeMeta - // Standard list metadata - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - metav1.ListMeta - // Items is a list of third party objects - Items []ThirdPartyResourceData -} - // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -755,8 +671,8 @@ type IngressBackend struct { } // +genclient -// +genclient:method=GetScale,verb=get,subresource=scale,result=Scale -// +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale +// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale +// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/autoscaling.Scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // ReplicaSet ensures that a specified number of pod replicas are running at any given time. @@ -888,7 +804,8 @@ type PodSecurityPolicySpec struct { Privileged bool // DefaultAddCapabilities is the default set of capabilities that will be added to the container // unless the pod spec specifically drops the capability. You may not list a capability in both - // DefaultAddCapabilities and RequiredDropCapabilities. + // DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly + // allowed, and need not be included in the AllowedCapabilities list. // +optional DefaultAddCapabilities []api.Capability // RequiredDropCapabilities are the capabilities that will be dropped from the container. These @@ -962,9 +879,9 @@ type AllowedHostPath struct { // for pods to use. It requires both the start and end to be defined. type HostPortRange struct { // Min is the start of the range, inclusive. - Min int + Min int32 // Max is the end of the range, inclusive. - Max int + Max int32 } // AllowAllCapabilities can be used as a value for the PodSecurityPolicy.AllowAllCapabilities @@ -1010,7 +927,7 @@ type SELinuxStrategyOptions struct { // Rule is the strategy that will dictate the allowable labels that may be set. Rule SELinuxStrategy // seLinuxOptions required to run as; required for MustRunAs - // More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md + // More info: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#selinux // +optional SELinuxOptions *api.SELinuxOptions } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/BUILD index a85401656..51d6bf1c7 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/BUILD @@ -18,14 +18,16 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/extensions/v1beta1", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/networking:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", @@ -38,8 +40,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/extensions/v1beta1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions/install:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/conversion.go index 04aa3a316..d236a415e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/conversion.go @@ -24,10 +24,12 @@ import ( v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/networking" ) @@ -35,8 +37,8 @@ import ( func addConversionFuncs(scheme *runtime.Scheme) error { // Add non-generated conversion functions err := scheme.AddConversionFuncs( - Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus, - Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus, + Convert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus, + Convert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus, Convert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec, Convert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec, Convert_extensions_DeploymentStrategy_To_v1beta1_DeploymentStrategy, @@ -72,48 +74,35 @@ func addConversionFuncs(scheme *runtime.Scheme) error { return nil } -func Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus(in *extensions.ScaleStatus, out *extensionsv1beta1.ScaleStatus, s conversion.Scope) error { +func Convert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus(in *autoscaling.ScaleStatus, out *extensionsv1beta1.ScaleStatus, s conversion.Scope) error { out.Replicas = int32(in.Replicas) + out.TargetSelector = in.Selector out.Selector = nil - out.TargetSelector = "" - if in.Selector != nil { - if in.Selector.MatchExpressions == nil || len(in.Selector.MatchExpressions) == 0 { - out.Selector = in.Selector.MatchLabels - } - - selector, err := metav1.LabelSelectorAsSelector(in.Selector) - if err != nil { - return fmt.Errorf("invalid label selector: %v", err) - } - out.TargetSelector = selector.String() + selector, err := metav1.ParseToLabelSelector(in.Selector) + if err != nil { + return fmt.Errorf("failed to parse selector: %v", err) } + if len(selector.MatchExpressions) == 0 { + out.Selector = selector.MatchLabels + } + return nil } -func Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus(in *extensionsv1beta1.ScaleStatus, out *extensions.ScaleStatus, s conversion.Scope) error { +func Convert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus(in *extensionsv1beta1.ScaleStatus, out *autoscaling.ScaleStatus, s conversion.Scope) error { out.Replicas = in.Replicas - // Normally when 2 fields map to the same internal value we favor the old field, since - // old clients can't be expected to know about new fields but clients that know about the - // new field can be expected to know about the old field (though that's not quite true, due - // to kubectl apply). However, these fields are readonly, so any non-nil value should work. if in.TargetSelector != "" { - labelSelector, err := metav1.ParseToLabelSelector(in.TargetSelector) - if err != nil { - out.Selector = nil - return fmt.Errorf("failed to parse target selector: %v", err) - } - out.Selector = labelSelector + out.Selector = in.TargetSelector } else if in.Selector != nil { - out.Selector = new(metav1.LabelSelector) - selector := make(map[string]string) + set := labels.Set{} for key, val := range in.Selector { - selector[key] = val + set[key] = val } - out.Selector.MatchLabels = selector + out.Selector = labels.SelectorFromSet(set).String() } else { - out.Selector = nil + out.Selector = "" } return nil } @@ -121,7 +110,7 @@ func Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus(in *extensionsv1beta1 func Convert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec(in *extensions.DeploymentSpec, out *extensionsv1beta1.DeploymentSpec, s conversion.Scope) error { out.Replicas = &in.Replicas out.Selector = in.Selector - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DeploymentStrategy_To_v1beta1_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -151,7 +140,7 @@ func Convert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(in *extensionsv out.Replicas = *in.Replicas } out.Selector = in.Selector - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -247,7 +236,7 @@ func Convert_extensions_ReplicaSetSpec_To_v1beta1_ReplicaSetSpec(in *extensions. *out.Replicas = int32(in.Replicas) out.MinReadySeconds = in.MinReadySeconds out.Selector = in.Selector - if err := k8s_api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil @@ -259,7 +248,7 @@ func Convert_v1beta1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *extensionsv } out.MinReadySeconds = in.MinReadySeconds out.Selector = in.Selector - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil @@ -338,10 +327,12 @@ func Convert_v1beta1_NetworkPolicyIngressRule_To_networking_NetworkPolicyIngress return err } } - out.From = make([]networking.NetworkPolicyPeer, len(in.From)) - for i := range in.From { - if err := Convert_v1beta1_NetworkPolicyPeer_To_networking_NetworkPolicyPeer(&in.From[i], &out.From[i], s); err != nil { - return err + if in.From != nil { + out.From = make([]networking.NetworkPolicyPeer, len(in.From)) + for i := range in.From { + if err := Convert_v1beta1_NetworkPolicyPeer_To_networking_NetworkPolicyPeer(&in.From[i], &out.From[i], s); err != nil { + return err + } } } return nil @@ -354,10 +345,12 @@ func Convert_networking_NetworkPolicyIngressRule_To_v1beta1_NetworkPolicyIngress return err } } - out.From = make([]extensionsv1beta1.NetworkPolicyPeer, len(in.From)) - for i := range in.From { - if err := Convert_networking_NetworkPolicyPeer_To_v1beta1_NetworkPolicyPeer(&in.From[i], &out.From[i], s); err != nil { - return err + if in.From != nil { + out.From = make([]extensionsv1beta1.NetworkPolicyPeer, len(in.From)) + for i := range in.From { + if err := Convert_networking_NetworkPolicyPeer_To_v1beta1_NetworkPolicyPeer(&in.From[i], &out.From[i], s); err != nil { + return err + } } } return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/defaults_test.go index e1c2b527d..a35b76f19 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/defaults_test.go @@ -28,8 +28,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/extensions/install" . "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" ) @@ -723,18 +724,18 @@ func TestSetDefaultNetworkPolicy(t *testing.T) { } func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/doc.go index fb27eae22..0d778368f 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/doc.go @@ -15,6 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions +// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/autoscaling // +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/extensions/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/extensions/v1beta1 diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/zz_generated.conversion.go index 95b006f05..89fe74883 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/zz_generated.conversion.go @@ -21,13 +21,14 @@ limitations under the License. package v1beta1 import ( - core_v1 "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" v1beta1 "k8s.io/api/extensions/v1beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - api_v1 "k8s.io/kubernetes/pkg/api/v1" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" + core "k8s.io/kubernetes/pkg/apis/core" + core_v1 "k8s.io/kubernetes/pkg/apis/core/v1" extensions "k8s.io/kubernetes/pkg/apis/extensions" unsafe "unsafe" ) @@ -40,8 +41,6 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( - Convert_v1beta1_APIVersion_To_extensions_APIVersion, - Convert_extensions_APIVersion_To_v1beta1_APIVersion, Convert_v1beta1_AllowedHostPath_To_extensions_AllowedHostPath, Convert_extensions_AllowedHostPath_To_v1beta1_AllowedHostPath, Convert_v1beta1_CustomMetricCurrentStatus_To_extensions_CustomMetricCurrentStatus, @@ -54,6 +53,8 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_extensions_CustomMetricTargetList_To_v1beta1_CustomMetricTargetList, Convert_v1beta1_DaemonSet_To_extensions_DaemonSet, Convert_extensions_DaemonSet_To_v1beta1_DaemonSet, + Convert_v1beta1_DaemonSetCondition_To_extensions_DaemonSetCondition, + Convert_extensions_DaemonSetCondition_To_v1beta1_DaemonSetCondition, Convert_v1beta1_DaemonSetList_To_extensions_DaemonSetList, Convert_extensions_DaemonSetList_To_v1beta1_DaemonSetList, Convert_v1beta1_DaemonSetSpec_To_extensions_DaemonSetSpec, @@ -128,45 +129,17 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_extensions_RunAsUserStrategyOptions_To_v1beta1_RunAsUserStrategyOptions, Convert_v1beta1_SELinuxStrategyOptions_To_extensions_SELinuxStrategyOptions, Convert_extensions_SELinuxStrategyOptions_To_v1beta1_SELinuxStrategyOptions, - Convert_v1beta1_Scale_To_extensions_Scale, - Convert_extensions_Scale_To_v1beta1_Scale, - Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec, - Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec, - Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus, - Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus, + Convert_v1beta1_Scale_To_autoscaling_Scale, + Convert_autoscaling_Scale_To_v1beta1_Scale, + Convert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec, + Convert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec, + Convert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus, + Convert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus, Convert_v1beta1_SupplementalGroupsStrategyOptions_To_extensions_SupplementalGroupsStrategyOptions, Convert_extensions_SupplementalGroupsStrategyOptions_To_v1beta1_SupplementalGroupsStrategyOptions, - Convert_v1beta1_ThirdPartyResource_To_extensions_ThirdPartyResource, - Convert_extensions_ThirdPartyResource_To_v1beta1_ThirdPartyResource, - Convert_v1beta1_ThirdPartyResourceData_To_extensions_ThirdPartyResourceData, - Convert_extensions_ThirdPartyResourceData_To_v1beta1_ThirdPartyResourceData, - Convert_v1beta1_ThirdPartyResourceDataList_To_extensions_ThirdPartyResourceDataList, - Convert_extensions_ThirdPartyResourceDataList_To_v1beta1_ThirdPartyResourceDataList, - Convert_v1beta1_ThirdPartyResourceList_To_extensions_ThirdPartyResourceList, - Convert_extensions_ThirdPartyResourceList_To_v1beta1_ThirdPartyResourceList, ) } -func autoConvert_v1beta1_APIVersion_To_extensions_APIVersion(in *v1beta1.APIVersion, out *extensions.APIVersion, s conversion.Scope) error { - out.Name = in.Name - return nil -} - -// Convert_v1beta1_APIVersion_To_extensions_APIVersion is an autogenerated conversion function. -func Convert_v1beta1_APIVersion_To_extensions_APIVersion(in *v1beta1.APIVersion, out *extensions.APIVersion, s conversion.Scope) error { - return autoConvert_v1beta1_APIVersion_To_extensions_APIVersion(in, out, s) -} - -func autoConvert_extensions_APIVersion_To_v1beta1_APIVersion(in *extensions.APIVersion, out *v1beta1.APIVersion, s conversion.Scope) error { - out.Name = in.Name - return nil -} - -// Convert_extensions_APIVersion_To_v1beta1_APIVersion is an autogenerated conversion function. -func Convert_extensions_APIVersion_To_v1beta1_APIVersion(in *extensions.APIVersion, out *v1beta1.APIVersion, s conversion.Scope) error { - return autoConvert_extensions_APIVersion_To_v1beta1_APIVersion(in, out, s) -} - func autoConvert_v1beta1_AllowedHostPath_To_extensions_AllowedHostPath(in *v1beta1.AllowedHostPath, out *extensions.AllowedHostPath, s conversion.Scope) error { out.PathPrefix = in.PathPrefix return nil @@ -303,6 +276,34 @@ func Convert_extensions_DaemonSet_To_v1beta1_DaemonSet(in *extensions.DaemonSet, return autoConvert_extensions_DaemonSet_To_v1beta1_DaemonSet(in, out, s) } +func autoConvert_v1beta1_DaemonSetCondition_To_extensions_DaemonSetCondition(in *v1beta1.DaemonSetCondition, out *extensions.DaemonSetCondition, s conversion.Scope) error { + out.Type = extensions.DaemonSetConditionType(in.Type) + out.Status = core.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1beta1_DaemonSetCondition_To_extensions_DaemonSetCondition is an autogenerated conversion function. +func Convert_v1beta1_DaemonSetCondition_To_extensions_DaemonSetCondition(in *v1beta1.DaemonSetCondition, out *extensions.DaemonSetCondition, s conversion.Scope) error { + return autoConvert_v1beta1_DaemonSetCondition_To_extensions_DaemonSetCondition(in, out, s) +} + +func autoConvert_extensions_DaemonSetCondition_To_v1beta1_DaemonSetCondition(in *extensions.DaemonSetCondition, out *v1beta1.DaemonSetCondition, s conversion.Scope) error { + out.Type = v1beta1.DaemonSetConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_extensions_DaemonSetCondition_To_v1beta1_DaemonSetCondition is an autogenerated conversion function. +func Convert_extensions_DaemonSetCondition_To_v1beta1_DaemonSetCondition(in *extensions.DaemonSetCondition, out *v1beta1.DaemonSetCondition, s conversion.Scope) error { + return autoConvert_extensions_DaemonSetCondition_To_v1beta1_DaemonSetCondition(in, out, s) +} + func autoConvert_v1beta1_DaemonSetList_To_extensions_DaemonSetList(in *v1beta1.DaemonSetList, out *extensions.DaemonSetList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items != nil { @@ -346,8 +347,8 @@ func Convert_extensions_DaemonSetList_To_v1beta1_DaemonSetList(in *extensions.Da } func autoConvert_v1beta1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *v1beta1.DaemonSetSpec, out *extensions.DaemonSetSpec, s conversion.Scope) error { - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta1_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -365,8 +366,8 @@ func Convert_v1beta1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *v1beta1.Daemo } func autoConvert_extensions_DaemonSetSpec_To_v1beta1_DaemonSetSpec(in *extensions.DaemonSetSpec, out *v1beta1.DaemonSetSpec, s conversion.Scope) error { - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DaemonSetUpdateStrategy_To_v1beta1_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { @@ -393,6 +394,7 @@ func autoConvert_v1beta1_DaemonSetStatus_To_extensions_DaemonSetStatus(in *v1bet out.NumberAvailable = in.NumberAvailable out.NumberUnavailable = in.NumberUnavailable out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]extensions.DaemonSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } @@ -411,6 +413,7 @@ func autoConvert_extensions_DaemonSetStatus_To_v1beta1_DaemonSetStatus(in *exten out.NumberAvailable = in.NumberAvailable out.NumberUnavailable = in.NumberUnavailable out.CollisionCount = (*int32)(unsafe.Pointer(in.CollisionCount)) + out.Conditions = *(*[]v1beta1.DaemonSetCondition)(unsafe.Pointer(&in.Conditions)) return nil } @@ -491,7 +494,7 @@ func Convert_extensions_Deployment_To_v1beta1_Deployment(in *extensions.Deployme func autoConvert_v1beta1_DeploymentCondition_To_extensions_DeploymentCondition(in *v1beta1.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { out.Type = extensions.DeploymentConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) + out.Status = core.ConditionStatus(in.Status) out.LastUpdateTime = in.LastUpdateTime out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason @@ -506,7 +509,7 @@ func Convert_v1beta1_DeploymentCondition_To_extensions_DeploymentCondition(in *v func autoConvert_extensions_DeploymentCondition_To_v1beta1_DeploymentCondition(in *extensions.DeploymentCondition, out *v1beta1.DeploymentCondition, s conversion.Scope) error { out.Type = v1beta1.DeploymentConditionType(in.Type) - out.Status = core_v1.ConditionStatus(in.Status) + out.Status = v1.ConditionStatus(in.Status) out.LastUpdateTime = in.LastUpdateTime out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason @@ -590,11 +593,11 @@ func Convert_extensions_DeploymentRollback_To_v1beta1_DeploymentRollback(in *ext } func autoConvert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(in *v1beta1.DeploymentSpec, out *extensions.DeploymentSpec, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -609,11 +612,11 @@ func autoConvert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(in *v1beta1 } func autoConvert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec(in *extensions.DeploymentSpec, out *v1beta1.DeploymentSpec, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_extensions_DeploymentStrategy_To_v1beta1_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { @@ -758,8 +761,8 @@ func Convert_extensions_HTTPIngressRuleValue_To_v1beta1_HTTPIngressRuleValue(in } func autoConvert_v1beta1_HostPortRange_To_extensions_HostPortRange(in *v1beta1.HostPortRange, out *extensions.HostPortRange, s conversion.Scope) error { - out.Min = int(in.Min) - out.Max = int(in.Max) + out.Min = in.Min + out.Max = in.Max return nil } @@ -769,8 +772,8 @@ func Convert_v1beta1_HostPortRange_To_extensions_HostPortRange(in *v1beta1.HostP } func autoConvert_extensions_HostPortRange_To_v1beta1_HostPortRange(in *extensions.HostPortRange, out *v1beta1.HostPortRange, s conversion.Scope) error { - out.Min = int32(in.Min) - out.Max = int32(in.Max) + out.Min = in.Min + out.Max = in.Max return nil } @@ -1043,22 +1046,12 @@ func Convert_extensions_PodSecurityPolicyList_To_v1beta1_PodSecurityPolicyList(i func autoConvert_v1beta1_PodSecurityPolicySpec_To_extensions_PodSecurityPolicySpec(in *v1beta1.PodSecurityPolicySpec, out *extensions.PodSecurityPolicySpec, s conversion.Scope) error { out.Privileged = in.Privileged - out.DefaultAddCapabilities = *(*[]api.Capability)(unsafe.Pointer(&in.DefaultAddCapabilities)) - out.RequiredDropCapabilities = *(*[]api.Capability)(unsafe.Pointer(&in.RequiredDropCapabilities)) - out.AllowedCapabilities = *(*[]api.Capability)(unsafe.Pointer(&in.AllowedCapabilities)) + out.DefaultAddCapabilities = *(*[]core.Capability)(unsafe.Pointer(&in.DefaultAddCapabilities)) + out.RequiredDropCapabilities = *(*[]core.Capability)(unsafe.Pointer(&in.RequiredDropCapabilities)) + out.AllowedCapabilities = *(*[]core.Capability)(unsafe.Pointer(&in.AllowedCapabilities)) out.Volumes = *(*[]extensions.FSType)(unsafe.Pointer(&in.Volumes)) out.HostNetwork = in.HostNetwork - if in.HostPorts != nil { - in, out := &in.HostPorts, &out.HostPorts - *out = make([]extensions.HostPortRange, len(*in)) - for i := range *in { - if err := Convert_v1beta1_HostPortRange_To_extensions_HostPortRange(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.HostPorts = nil - } + out.HostPorts = *(*[]extensions.HostPortRange)(unsafe.Pointer(&in.HostPorts)) out.HostPID = in.HostPID out.HostIPC = in.HostIPC if err := Convert_v1beta1_SELinuxStrategyOptions_To_extensions_SELinuxStrategyOptions(&in.SELinux, &out.SELinux, s); err != nil { @@ -1075,7 +1068,7 @@ func autoConvert_v1beta1_PodSecurityPolicySpec_To_extensions_PodSecurityPolicySp } out.ReadOnlyRootFilesystem = in.ReadOnlyRootFilesystem out.DefaultAllowPrivilegeEscalation = (*bool)(unsafe.Pointer(in.DefaultAllowPrivilegeEscalation)) - if err := v1.Convert_Pointer_bool_To_bool(&in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation, s); err != nil { + if err := meta_v1.Convert_Pointer_bool_To_bool(&in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation, s); err != nil { return err } out.AllowedHostPaths = *(*[]extensions.AllowedHostPath)(unsafe.Pointer(&in.AllowedHostPaths)) @@ -1089,22 +1082,12 @@ func Convert_v1beta1_PodSecurityPolicySpec_To_extensions_PodSecurityPolicySpec(i func autoConvert_extensions_PodSecurityPolicySpec_To_v1beta1_PodSecurityPolicySpec(in *extensions.PodSecurityPolicySpec, out *v1beta1.PodSecurityPolicySpec, s conversion.Scope) error { out.Privileged = in.Privileged - out.DefaultAddCapabilities = *(*[]core_v1.Capability)(unsafe.Pointer(&in.DefaultAddCapabilities)) - out.RequiredDropCapabilities = *(*[]core_v1.Capability)(unsafe.Pointer(&in.RequiredDropCapabilities)) - out.AllowedCapabilities = *(*[]core_v1.Capability)(unsafe.Pointer(&in.AllowedCapabilities)) + out.DefaultAddCapabilities = *(*[]v1.Capability)(unsafe.Pointer(&in.DefaultAddCapabilities)) + out.RequiredDropCapabilities = *(*[]v1.Capability)(unsafe.Pointer(&in.RequiredDropCapabilities)) + out.AllowedCapabilities = *(*[]v1.Capability)(unsafe.Pointer(&in.AllowedCapabilities)) out.Volumes = *(*[]v1beta1.FSType)(unsafe.Pointer(&in.Volumes)) out.HostNetwork = in.HostNetwork - if in.HostPorts != nil { - in, out := &in.HostPorts, &out.HostPorts - *out = make([]v1beta1.HostPortRange, len(*in)) - for i := range *in { - if err := Convert_extensions_HostPortRange_To_v1beta1_HostPortRange(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.HostPorts = nil - } + out.HostPorts = *(*[]v1beta1.HostPortRange)(unsafe.Pointer(&in.HostPorts)) out.HostPID = in.HostPID out.HostIPC = in.HostIPC if err := Convert_extensions_SELinuxStrategyOptions_To_v1beta1_SELinuxStrategyOptions(&in.SELinux, &out.SELinux, s); err != nil { @@ -1121,7 +1104,7 @@ func autoConvert_extensions_PodSecurityPolicySpec_To_v1beta1_PodSecurityPolicySp } out.ReadOnlyRootFilesystem = in.ReadOnlyRootFilesystem out.DefaultAllowPrivilegeEscalation = (*bool)(unsafe.Pointer(in.DefaultAllowPrivilegeEscalation)) - if err := v1.Convert_bool_To_Pointer_bool(&in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation, s); err != nil { + if err := meta_v1.Convert_bool_To_Pointer_bool(&in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation, s); err != nil { return err } out.AllowedHostPaths = *(*[]v1beta1.AllowedHostPath)(unsafe.Pointer(&in.AllowedHostPaths)) @@ -1162,7 +1145,7 @@ func Convert_extensions_ReplicaSet_To_v1beta1_ReplicaSet(in *extensions.ReplicaS func autoConvert_v1beta1_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in *v1beta1.ReplicaSetCondition, out *extensions.ReplicaSetCondition, s conversion.Scope) error { out.Type = extensions.ReplicaSetConditionType(in.Type) - out.Status = api.ConditionStatus(in.Status) + out.Status = core.ConditionStatus(in.Status) out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason out.Message = in.Message @@ -1176,7 +1159,7 @@ func Convert_v1beta1_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in *v func autoConvert_extensions_ReplicaSetCondition_To_v1beta1_ReplicaSetCondition(in *extensions.ReplicaSetCondition, out *v1beta1.ReplicaSetCondition, s conversion.Scope) error { out.Type = v1beta1.ReplicaSetConditionType(in.Type) - out.Status = core_v1.ConditionStatus(in.Status) + out.Status = v1.ConditionStatus(in.Status) out.LastTransitionTime = in.LastTransitionTime out.Reason = in.Reason out.Message = in.Message @@ -1231,24 +1214,24 @@ func Convert_extensions_ReplicaSetList_To_v1beta1_ReplicaSetList(in *extensions. } func autoConvert_v1beta1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *v1beta1.ReplicaSetSpec, out *extensions.ReplicaSetSpec, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } out.MinReadySeconds = in.MinReadySeconds - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil } func autoConvert_extensions_ReplicaSetSpec_To_v1beta1_ReplicaSetSpec(in *extensions.ReplicaSetSpec, out *v1beta1.ReplicaSetSpec, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } out.MinReadySeconds = in.MinReadySeconds - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) - if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := core_v1.Convert_core_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } return nil @@ -1368,7 +1351,7 @@ func Convert_extensions_RunAsUserStrategyOptions_To_v1beta1_RunAsUserStrategyOpt func autoConvert_v1beta1_SELinuxStrategyOptions_To_extensions_SELinuxStrategyOptions(in *v1beta1.SELinuxStrategyOptions, out *extensions.SELinuxStrategyOptions, s conversion.Scope) error { out.Rule = extensions.SELinuxStrategy(in.Rule) - out.SELinuxOptions = (*api.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) + out.SELinuxOptions = (*core.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) return nil } @@ -1379,7 +1362,7 @@ func Convert_v1beta1_SELinuxStrategyOptions_To_extensions_SELinuxStrategyOptions func autoConvert_extensions_SELinuxStrategyOptions_To_v1beta1_SELinuxStrategyOptions(in *extensions.SELinuxStrategyOptions, out *v1beta1.SELinuxStrategyOptions, s conversion.Scope) error { out.Rule = v1beta1.SELinuxStrategy(in.Rule) - out.SELinuxOptions = (*core_v1.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) + out.SELinuxOptions = (*v1.SELinuxOptions)(unsafe.Pointer(in.SELinuxOptions)) return nil } @@ -1388,68 +1371,68 @@ func Convert_extensions_SELinuxStrategyOptions_To_v1beta1_SELinuxStrategyOptions return autoConvert_extensions_SELinuxStrategyOptions_To_v1beta1_SELinuxStrategyOptions(in, out, s) } -func autoConvert_v1beta1_Scale_To_extensions_Scale(in *v1beta1.Scale, out *extensions.Scale, s conversion.Scope) error { +func autoConvert_v1beta1_Scale_To_autoscaling_Scale(in *v1beta1.Scale, out *autoscaling.Scale, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_v1beta1_Scale_To_extensions_Scale is an autogenerated conversion function. -func Convert_v1beta1_Scale_To_extensions_Scale(in *v1beta1.Scale, out *extensions.Scale, s conversion.Scope) error { - return autoConvert_v1beta1_Scale_To_extensions_Scale(in, out, s) +// Convert_v1beta1_Scale_To_autoscaling_Scale is an autogenerated conversion function. +func Convert_v1beta1_Scale_To_autoscaling_Scale(in *v1beta1.Scale, out *autoscaling.Scale, s conversion.Scope) error { + return autoConvert_v1beta1_Scale_To_autoscaling_Scale(in, out, s) } -func autoConvert_extensions_Scale_To_v1beta1_Scale(in *extensions.Scale, out *v1beta1.Scale, s conversion.Scope) error { +func autoConvert_autoscaling_Scale_To_v1beta1_Scale(in *autoscaling.Scale, out *v1beta1.Scale, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_extensions_Scale_To_v1beta1_Scale is an autogenerated conversion function. -func Convert_extensions_Scale_To_v1beta1_Scale(in *extensions.Scale, out *v1beta1.Scale, s conversion.Scope) error { - return autoConvert_extensions_Scale_To_v1beta1_Scale(in, out, s) +// Convert_autoscaling_Scale_To_v1beta1_Scale is an autogenerated conversion function. +func Convert_autoscaling_Scale_To_v1beta1_Scale(in *autoscaling.Scale, out *v1beta1.Scale, s conversion.Scope) error { + return autoConvert_autoscaling_Scale_To_v1beta1_Scale(in, out, s) } -func autoConvert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(in *v1beta1.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { +func autoConvert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec(in *v1beta1.ScaleSpec, out *autoscaling.ScaleSpec, s conversion.Scope) error { out.Replicas = in.Replicas return nil } -// Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec is an autogenerated conversion function. -func Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(in *v1beta1.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { - return autoConvert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(in, out, s) +// Convert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec is an autogenerated conversion function. +func Convert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec(in *v1beta1.ScaleSpec, out *autoscaling.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1beta1_ScaleSpec_To_autoscaling_ScaleSpec(in, out, s) } -func autoConvert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(in *extensions.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { +func autoConvert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec(in *autoscaling.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { out.Replicas = in.Replicas return nil } -// Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec is an autogenerated conversion function. -func Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(in *extensions.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { - return autoConvert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(in, out, s) +// Convert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec is an autogenerated conversion function. +func Convert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec(in *autoscaling.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + return autoConvert_autoscaling_ScaleSpec_To_v1beta1_ScaleSpec(in, out, s) } -func autoConvert_v1beta1_ScaleStatus_To_extensions_ScaleStatus(in *v1beta1.ScaleStatus, out *extensions.ScaleStatus, s conversion.Scope) error { +func autoConvert_v1beta1_ScaleStatus_To_autoscaling_ScaleStatus(in *v1beta1.ScaleStatus, out *autoscaling.ScaleStatus, s conversion.Scope) error { out.Replicas = in.Replicas - // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs string) // WARNING: in.TargetSelector requires manual conversion: does not exist in peer-type return nil } -func autoConvert_extensions_ScaleStatus_To_v1beta1_ScaleStatus(in *extensions.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { +func autoConvert_autoscaling_ScaleStatus_To_v1beta1_ScaleStatus(in *autoscaling.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { out.Replicas = in.Replicas - // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs map[string]string) + // WARNING: in.Selector requires manual conversion: inconvertible types (string vs map[string]string) return nil } @@ -1474,93 +1457,3 @@ func autoConvert_extensions_SupplementalGroupsStrategyOptions_To_v1beta1_Supplem func Convert_extensions_SupplementalGroupsStrategyOptions_To_v1beta1_SupplementalGroupsStrategyOptions(in *extensions.SupplementalGroupsStrategyOptions, out *v1beta1.SupplementalGroupsStrategyOptions, s conversion.Scope) error { return autoConvert_extensions_SupplementalGroupsStrategyOptions_To_v1beta1_SupplementalGroupsStrategyOptions(in, out, s) } - -func autoConvert_v1beta1_ThirdPartyResource_To_extensions_ThirdPartyResource(in *v1beta1.ThirdPartyResource, out *extensions.ThirdPartyResource, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Description = in.Description - out.Versions = *(*[]extensions.APIVersion)(unsafe.Pointer(&in.Versions)) - return nil -} - -// Convert_v1beta1_ThirdPartyResource_To_extensions_ThirdPartyResource is an autogenerated conversion function. -func Convert_v1beta1_ThirdPartyResource_To_extensions_ThirdPartyResource(in *v1beta1.ThirdPartyResource, out *extensions.ThirdPartyResource, s conversion.Scope) error { - return autoConvert_v1beta1_ThirdPartyResource_To_extensions_ThirdPartyResource(in, out, s) -} - -func autoConvert_extensions_ThirdPartyResource_To_v1beta1_ThirdPartyResource(in *extensions.ThirdPartyResource, out *v1beta1.ThirdPartyResource, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Description = in.Description - out.Versions = *(*[]v1beta1.APIVersion)(unsafe.Pointer(&in.Versions)) - return nil -} - -// Convert_extensions_ThirdPartyResource_To_v1beta1_ThirdPartyResource is an autogenerated conversion function. -func Convert_extensions_ThirdPartyResource_To_v1beta1_ThirdPartyResource(in *extensions.ThirdPartyResource, out *v1beta1.ThirdPartyResource, s conversion.Scope) error { - return autoConvert_extensions_ThirdPartyResource_To_v1beta1_ThirdPartyResource(in, out, s) -} - -func autoConvert_v1beta1_ThirdPartyResourceData_To_extensions_ThirdPartyResourceData(in *v1beta1.ThirdPartyResourceData, out *extensions.ThirdPartyResourceData, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Data = *(*[]byte)(unsafe.Pointer(&in.Data)) - return nil -} - -// Convert_v1beta1_ThirdPartyResourceData_To_extensions_ThirdPartyResourceData is an autogenerated conversion function. -func Convert_v1beta1_ThirdPartyResourceData_To_extensions_ThirdPartyResourceData(in *v1beta1.ThirdPartyResourceData, out *extensions.ThirdPartyResourceData, s conversion.Scope) error { - return autoConvert_v1beta1_ThirdPartyResourceData_To_extensions_ThirdPartyResourceData(in, out, s) -} - -func autoConvert_extensions_ThirdPartyResourceData_To_v1beta1_ThirdPartyResourceData(in *extensions.ThirdPartyResourceData, out *v1beta1.ThirdPartyResourceData, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - out.Data = *(*[]byte)(unsafe.Pointer(&in.Data)) - return nil -} - -// Convert_extensions_ThirdPartyResourceData_To_v1beta1_ThirdPartyResourceData is an autogenerated conversion function. -func Convert_extensions_ThirdPartyResourceData_To_v1beta1_ThirdPartyResourceData(in *extensions.ThirdPartyResourceData, out *v1beta1.ThirdPartyResourceData, s conversion.Scope) error { - return autoConvert_extensions_ThirdPartyResourceData_To_v1beta1_ThirdPartyResourceData(in, out, s) -} - -func autoConvert_v1beta1_ThirdPartyResourceDataList_To_extensions_ThirdPartyResourceDataList(in *v1beta1.ThirdPartyResourceDataList, out *extensions.ThirdPartyResourceDataList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]extensions.ThirdPartyResourceData)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1beta1_ThirdPartyResourceDataList_To_extensions_ThirdPartyResourceDataList is an autogenerated conversion function. -func Convert_v1beta1_ThirdPartyResourceDataList_To_extensions_ThirdPartyResourceDataList(in *v1beta1.ThirdPartyResourceDataList, out *extensions.ThirdPartyResourceDataList, s conversion.Scope) error { - return autoConvert_v1beta1_ThirdPartyResourceDataList_To_extensions_ThirdPartyResourceDataList(in, out, s) -} - -func autoConvert_extensions_ThirdPartyResourceDataList_To_v1beta1_ThirdPartyResourceDataList(in *extensions.ThirdPartyResourceDataList, out *v1beta1.ThirdPartyResourceDataList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1beta1.ThirdPartyResourceData)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_extensions_ThirdPartyResourceDataList_To_v1beta1_ThirdPartyResourceDataList is an autogenerated conversion function. -func Convert_extensions_ThirdPartyResourceDataList_To_v1beta1_ThirdPartyResourceDataList(in *extensions.ThirdPartyResourceDataList, out *v1beta1.ThirdPartyResourceDataList, s conversion.Scope) error { - return autoConvert_extensions_ThirdPartyResourceDataList_To_v1beta1_ThirdPartyResourceDataList(in, out, s) -} - -func autoConvert_v1beta1_ThirdPartyResourceList_To_extensions_ThirdPartyResourceList(in *v1beta1.ThirdPartyResourceList, out *extensions.ThirdPartyResourceList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]extensions.ThirdPartyResource)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_v1beta1_ThirdPartyResourceList_To_extensions_ThirdPartyResourceList is an autogenerated conversion function. -func Convert_v1beta1_ThirdPartyResourceList_To_extensions_ThirdPartyResourceList(in *v1beta1.ThirdPartyResourceList, out *extensions.ThirdPartyResourceList, s conversion.Scope) error { - return autoConvert_v1beta1_ThirdPartyResourceList_To_extensions_ThirdPartyResourceList(in, out, s) -} - -func autoConvert_extensions_ThirdPartyResourceList_To_v1beta1_ThirdPartyResourceList(in *extensions.ThirdPartyResourceList, out *v1beta1.ThirdPartyResourceList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - out.Items = *(*[]v1beta1.ThirdPartyResource)(unsafe.Pointer(&in.Items)) - return nil -} - -// Convert_extensions_ThirdPartyResourceList_To_v1beta1_ThirdPartyResourceList is an autogenerated conversion function. -func Convert_extensions_ThirdPartyResourceList_To_v1beta1_ThirdPartyResourceList(in *extensions.ThirdPartyResourceList, out *v1beta1.ThirdPartyResourceList, s conversion.Scope) error { - return autoConvert_extensions_ThirdPartyResourceList_To_v1beta1_ThirdPartyResourceList(in, out, s) -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/zz_generated.defaults.go index 11bd8e640..f22282f85 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/v1beta1/zz_generated.defaults.go @@ -23,7 +23,7 @@ package v1beta1 import ( v1beta1 "k8s.io/api/extensions/v1beta1" runtime "k8s.io/apimachinery/pkg/runtime" - v1 "k8s.io/kubernetes/pkg/api/v1" + v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/BUILD index 797acbd57..d7ea42609 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/BUILD @@ -11,8 +11,8 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/extensions/validation", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/security/apparmor:go_default_library", "//pkg/security/podsecuritypolicy/seccomp:go_default_library", @@ -34,7 +34,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/extensions/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/security/apparmor:go_default_library", "//pkg/security/podsecuritypolicy/seccomp:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/validation.go index 1206feedb..bab3fd2f4 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/validation.go @@ -33,8 +33,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" - apivalidation "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/security/apparmor" "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp" @@ -325,9 +325,7 @@ func ValidateDeploymentStatus(status *extensions.DeploymentStatus, fldPath *fiel if status.AvailableReplicas > status.Replicas { allErrs = append(allErrs, field.Invalid(fldPath.Child("availableReplicas"), status.AvailableReplicas, msg)) } - // TODO: ReadyReplicas is introduced in 1.6 and this check breaks the Deployment controller when pre-1.6 clusters get upgraded. - // Remove the comparison to zero once we stop supporting upgrades from 1.5. - if status.ReadyReplicas > 0 && status.AvailableReplicas > status.ReadyReplicas { + if status.AvailableReplicas > status.ReadyReplicas { allErrs = append(allErrs, field.Invalid(fldPath.Child("availableReplicas"), status.AvailableReplicas, "cannot be greater than readyReplicas")) } return allErrs @@ -353,7 +351,7 @@ func ValidateDeploymentStatusUpdate(update, old *extensions.Deployment) field.Er return allErrs } -// TODO: Move in "k8s.io/kubernetes/pkg/api/validation" +// TODO: Move in "k8s.io/kubernetes/pkg/apis/core/validation" func isDecremented(update, old *int32) bool { if update == nil && old != nil { return true @@ -522,17 +520,6 @@ func validateIngressBackend(backend *extensions.IngressBackend, fldPath *field.P return allErrs } -func ValidateScale(scale *extensions.Scale) field.ErrorList { - allErrs := field.ErrorList{} - allErrs = append(allErrs, apivalidation.ValidateObjectMeta(&scale.ObjectMeta, true, apivalidation.NameIsDNSSubdomain, field.NewPath("metadata"))...) - - if scale.Spec.Replicas < 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath("spec", "replicas"), scale.Spec.Replicas, "must be greater than or equal to 0")) - } - - return allErrs -} - // ValidateReplicaSetName can be used to check whether the given ReplicaSet // name is valid. // Prefix indicates this name will be used as part of generation, in which case diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/validation_test.go index 980a6f472..2a432da9b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/validation/validation_test.go @@ -26,7 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/security/apparmor" "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp" @@ -1335,15 +1335,6 @@ func TestValidateDeploymentStatus(t *testing.T) { observedGeneration: 1, expectedErr: true, }, - // TODO: Remove the following test case once we stop supporting upgrades from 1.5. - { - name: "don't validate readyReplicas when it's zero", - replicas: 3, - readyReplicas: 0, - availableReplicas: 3, - observedGeneration: 1, - expectedErr: false, - }, { name: "invalid collisionCount", replicas: 3, @@ -1750,70 +1741,6 @@ func TestValidateIngressStatusUpdate(t *testing.T) { } } -func TestValidateScale(t *testing.T) { - successCases := []extensions.Scale{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "frontend", - Namespace: metav1.NamespaceDefault, - }, - Spec: extensions.ScaleSpec{ - Replicas: 1, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "frontend", - Namespace: metav1.NamespaceDefault, - }, - Spec: extensions.ScaleSpec{ - Replicas: 10, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "frontend", - Namespace: metav1.NamespaceDefault, - }, - Spec: extensions.ScaleSpec{ - Replicas: 0, - }, - }, - } - - for _, successCase := range successCases { - if errs := ValidateScale(&successCase); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } - } - - errorCases := []struct { - scale extensions.Scale - msg string - }{ - { - scale: extensions.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Name: "frontend", - Namespace: metav1.NamespaceDefault, - }, - Spec: extensions.ScaleSpec{ - Replicas: -1, - }, - }, - msg: "must be greater than or equal to 0", - }, - } - - for _, c := range errorCases { - if errs := ValidateScale(&c.scale); len(errs) == 0 { - t.Errorf("expected failure for %s", c.msg) - } else if !strings.Contains(errs[0].Error(), c.msg) { - t.Errorf("unexpected error: %v, expected: %s", errs[0], c.msg) - } - } -} - func TestValidateReplicaSetStatus(t *testing.T) { tests := []struct { name string diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/extensions/zz_generated.deepcopy.go index d41048a5a..3d9457692 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/extensions/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/zz_generated.deepcopy.go @@ -22,257 +22,10 @@ package extensions import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - reflect "reflect" + core "k8s.io/kubernetes/pkg/apis/core" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIVersion).DeepCopyInto(out.(*APIVersion)) - return nil - }, InType: reflect.TypeOf(&APIVersion{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AllowedHostPath).DeepCopyInto(out.(*AllowedHostPath)) - return nil - }, InType: reflect.TypeOf(&AllowedHostPath{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomMetricCurrentStatus).DeepCopyInto(out.(*CustomMetricCurrentStatus)) - return nil - }, InType: reflect.TypeOf(&CustomMetricCurrentStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomMetricCurrentStatusList).DeepCopyInto(out.(*CustomMetricCurrentStatusList)) - return nil - }, InType: reflect.TypeOf(&CustomMetricCurrentStatusList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomMetricTarget).DeepCopyInto(out.(*CustomMetricTarget)) - return nil - }, InType: reflect.TypeOf(&CustomMetricTarget{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomMetricTargetList).DeepCopyInto(out.(*CustomMetricTargetList)) - return nil - }, InType: reflect.TypeOf(&CustomMetricTargetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSet).DeepCopyInto(out.(*DaemonSet)) - return nil - }, InType: reflect.TypeOf(&DaemonSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetList).DeepCopyInto(out.(*DaemonSetList)) - return nil - }, InType: reflect.TypeOf(&DaemonSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetSpec).DeepCopyInto(out.(*DaemonSetSpec)) - return nil - }, InType: reflect.TypeOf(&DaemonSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetStatus).DeepCopyInto(out.(*DaemonSetStatus)) - return nil - }, InType: reflect.TypeOf(&DaemonSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetUpdateStrategy).DeepCopyInto(out.(*DaemonSetUpdateStrategy)) - return nil - }, InType: reflect.TypeOf(&DaemonSetUpdateStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Deployment).DeepCopyInto(out.(*Deployment)) - return nil - }, InType: reflect.TypeOf(&Deployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentCondition).DeepCopyInto(out.(*DeploymentCondition)) - return nil - }, InType: reflect.TypeOf(&DeploymentCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentList).DeepCopyInto(out.(*DeploymentList)) - return nil - }, InType: reflect.TypeOf(&DeploymentList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentRollback).DeepCopyInto(out.(*DeploymentRollback)) - return nil - }, InType: reflect.TypeOf(&DeploymentRollback{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentSpec).DeepCopyInto(out.(*DeploymentSpec)) - return nil - }, InType: reflect.TypeOf(&DeploymentSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStatus).DeepCopyInto(out.(*DeploymentStatus)) - return nil - }, InType: reflect.TypeOf(&DeploymentStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStrategy).DeepCopyInto(out.(*DeploymentStrategy)) - return nil - }, InType: reflect.TypeOf(&DeploymentStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FSGroupStrategyOptions).DeepCopyInto(out.(*FSGroupStrategyOptions)) - return nil - }, InType: reflect.TypeOf(&FSGroupStrategyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupIDRange).DeepCopyInto(out.(*GroupIDRange)) - return nil - }, InType: reflect.TypeOf(&GroupIDRange{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HTTPIngressPath).DeepCopyInto(out.(*HTTPIngressPath)) - return nil - }, InType: reflect.TypeOf(&HTTPIngressPath{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HTTPIngressRuleValue).DeepCopyInto(out.(*HTTPIngressRuleValue)) - return nil - }, InType: reflect.TypeOf(&HTTPIngressRuleValue{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HostPortRange).DeepCopyInto(out.(*HostPortRange)) - return nil - }, InType: reflect.TypeOf(&HostPortRange{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Ingress).DeepCopyInto(out.(*Ingress)) - return nil - }, InType: reflect.TypeOf(&Ingress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressBackend).DeepCopyInto(out.(*IngressBackend)) - return nil - }, InType: reflect.TypeOf(&IngressBackend{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressList).DeepCopyInto(out.(*IngressList)) - return nil - }, InType: reflect.TypeOf(&IngressList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressRule).DeepCopyInto(out.(*IngressRule)) - return nil - }, InType: reflect.TypeOf(&IngressRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressRuleValue).DeepCopyInto(out.(*IngressRuleValue)) - return nil - }, InType: reflect.TypeOf(&IngressRuleValue{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressSpec).DeepCopyInto(out.(*IngressSpec)) - return nil - }, InType: reflect.TypeOf(&IngressSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressStatus).DeepCopyInto(out.(*IngressStatus)) - return nil - }, InType: reflect.TypeOf(&IngressStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressTLS).DeepCopyInto(out.(*IngressTLS)) - return nil - }, InType: reflect.TypeOf(&IngressTLS{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSecurityPolicy).DeepCopyInto(out.(*PodSecurityPolicy)) - return nil - }, InType: reflect.TypeOf(&PodSecurityPolicy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSecurityPolicyList).DeepCopyInto(out.(*PodSecurityPolicyList)) - return nil - }, InType: reflect.TypeOf(&PodSecurityPolicyList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSecurityPolicySpec).DeepCopyInto(out.(*PodSecurityPolicySpec)) - return nil - }, InType: reflect.TypeOf(&PodSecurityPolicySpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSet).DeepCopyInto(out.(*ReplicaSet)) - return nil - }, InType: reflect.TypeOf(&ReplicaSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetCondition).DeepCopyInto(out.(*ReplicaSetCondition)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetList).DeepCopyInto(out.(*ReplicaSetList)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetSpec).DeepCopyInto(out.(*ReplicaSetSpec)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetStatus).DeepCopyInto(out.(*ReplicaSetStatus)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerDummy).DeepCopyInto(out.(*ReplicationControllerDummy)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerDummy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollbackConfig).DeepCopyInto(out.(*RollbackConfig)) - return nil - }, InType: reflect.TypeOf(&RollbackConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDaemonSet).DeepCopyInto(out.(*RollingUpdateDaemonSet)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDaemonSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDeployment).DeepCopyInto(out.(*RollingUpdateDeployment)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDeployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RunAsUserStrategyOptions).DeepCopyInto(out.(*RunAsUserStrategyOptions)) - return nil - }, InType: reflect.TypeOf(&RunAsUserStrategyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SELinuxStrategyOptions).DeepCopyInto(out.(*SELinuxStrategyOptions)) - return nil - }, InType: reflect.TypeOf(&SELinuxStrategyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Scale).DeepCopyInto(out.(*Scale)) - return nil - }, InType: reflect.TypeOf(&Scale{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleSpec).DeepCopyInto(out.(*ScaleSpec)) - return nil - }, InType: reflect.TypeOf(&ScaleSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleStatus).DeepCopyInto(out.(*ScaleStatus)) - return nil - }, InType: reflect.TypeOf(&ScaleStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SupplementalGroupsStrategyOptions).DeepCopyInto(out.(*SupplementalGroupsStrategyOptions)) - return nil - }, InType: reflect.TypeOf(&SupplementalGroupsStrategyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ThirdPartyResource).DeepCopyInto(out.(*ThirdPartyResource)) - return nil - }, InType: reflect.TypeOf(&ThirdPartyResource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ThirdPartyResourceData).DeepCopyInto(out.(*ThirdPartyResourceData)) - return nil - }, InType: reflect.TypeOf(&ThirdPartyResourceData{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ThirdPartyResourceDataList).DeepCopyInto(out.(*ThirdPartyResourceDataList)) - return nil - }, InType: reflect.TypeOf(&ThirdPartyResourceDataList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ThirdPartyResourceList).DeepCopyInto(out.(*ThirdPartyResourceList)) - return nil - }, InType: reflect.TypeOf(&ThirdPartyResourceList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*UserIDRange).DeepCopyInto(out.(*UserIDRange)) - return nil - }, InType: reflect.TypeOf(&UserIDRange{})}, - ) -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *APIVersion) DeepCopyInto(out *APIVersion) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersion. -func (in *APIVersion) DeepCopy() *APIVersion { - if in == nil { - return nil - } - out := new(APIVersion) - 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 @@ -398,6 +151,23 @@ func (in *DaemonSet) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition. +func (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition { + if in == nil { + return nil + } + out := new(DaemonSetCondition) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) { *out = *in @@ -480,6 +250,13 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { **out = **in } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DaemonSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } @@ -1101,17 +878,17 @@ func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) { *out = *in if in.DefaultAddCapabilities != nil { in, out := &in.DefaultAddCapabilities, &out.DefaultAddCapabilities - *out = make([]api.Capability, len(*in)) + *out = make([]core.Capability, len(*in)) copy(*out, *in) } if in.RequiredDropCapabilities != nil { in, out := &in.RequiredDropCapabilities, &out.RequiredDropCapabilities - *out = make([]api.Capability, len(*in)) + *out = make([]core.Capability, len(*in)) copy(*out, *in) } if in.AllowedCapabilities != nil { in, out := &in.AllowedCapabilities, &out.AllowedCapabilities - *out = make([]api.Capability, len(*in)) + *out = make([]core.Capability, len(*in)) copy(*out, *in) } if in.Volumes != nil { @@ -1390,7 +1167,7 @@ func (in *SELinuxStrategyOptions) DeepCopyInto(out *SELinuxStrategyOptions) { if *in == nil { *out = nil } else { - *out = new(api.SELinuxOptions) + *out = new(core.SELinuxOptions) **out = **in } } @@ -1407,76 +1184,6 @@ func (in *SELinuxStrategyOptions) DeepCopy() *SELinuxStrategyOptions { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Scale) DeepCopyInto(out *Scale) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale. -func (in *Scale) DeepCopy() *Scale { - if in == nil { - return nil - } - out := new(Scale) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Scale) 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 *ScaleSpec) DeepCopyInto(out *ScaleSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec. -func (in *ScaleSpec) DeepCopy() *ScaleSpec { - if in == nil { - return nil - } - out := new(ScaleSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) { - *out = *in - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus. -func (in *ScaleStatus) DeepCopy() *ScaleStatus { - if in == nil { - return nil - } - out := new(ScaleStatus) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *SupplementalGroupsStrategyOptions) DeepCopyInto(out *SupplementalGroupsStrategyOptions) { *out = *in @@ -1498,138 +1205,6 @@ func (in *SupplementalGroupsStrategyOptions) DeepCopy() *SupplementalGroupsStrat return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ThirdPartyResource) DeepCopyInto(out *ThirdPartyResource) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Versions != nil { - in, out := &in.Versions, &out.Versions - *out = make([]APIVersion, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThirdPartyResource. -func (in *ThirdPartyResource) DeepCopy() *ThirdPartyResource { - if in == nil { - return nil - } - out := new(ThirdPartyResource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ThirdPartyResource) 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 *ThirdPartyResourceData) DeepCopyInto(out *ThirdPartyResourceData) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Data != nil { - in, out := &in.Data, &out.Data - *out = make([]byte, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThirdPartyResourceData. -func (in *ThirdPartyResourceData) DeepCopy() *ThirdPartyResourceData { - if in == nil { - return nil - } - out := new(ThirdPartyResourceData) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ThirdPartyResourceData) 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 *ThirdPartyResourceDataList) DeepCopyInto(out *ThirdPartyResourceDataList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ThirdPartyResourceData, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThirdPartyResourceDataList. -func (in *ThirdPartyResourceDataList) DeepCopy() *ThirdPartyResourceDataList { - if in == nil { - return nil - } - out := new(ThirdPartyResourceDataList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ThirdPartyResourceDataList) 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 *ThirdPartyResourceList) DeepCopyInto(out *ThirdPartyResourceList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ThirdPartyResource, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThirdPartyResourceList. -func (in *ThirdPartyResourceList) DeepCopy() *ThirdPartyResourceList { - if in == nil { - return nil - } - out := new(ThirdPartyResourceList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ThirdPartyResourceList) 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 *UserIDRange) DeepCopyInto(out *UserIDRange) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/BUILD index 67e196967..9dd53f7d3 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/imagepolicy", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/doc.go index e69aee397..a0af1868e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=imagepolicy.k8s.io package imagepolicy // import "k8s.io/kubernetes/pkg/apis/imagepolicy" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/BUILD index bcb06b883..77b3a196e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/imagepolicy/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/imagepolicy:go_default_library", "//pkg/apis/imagepolicy/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/install.go index cf03fd483..75f5ba1f4 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/install/install.go @@ -23,13 +23,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/imagepolicy" "k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/zz_generated.deepcopy.go index aa752870e..985d67753 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/zz_generated.deepcopy.go @@ -21,40 +21,9 @@ limitations under the License. package imagepolicy import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ImageReview).DeepCopyInto(out.(*ImageReview)) - return nil - }, InType: reflect.TypeOf(&ImageReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ImageReviewContainerSpec).DeepCopyInto(out.(*ImageReviewContainerSpec)) - return nil - }, InType: reflect.TypeOf(&ImageReviewContainerSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ImageReviewSpec).DeepCopyInto(out.(*ImageReviewSpec)) - return nil - }, InType: reflect.TypeOf(&ImageReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ImageReviewStatus).DeepCopyInto(out.(*ImageReviewStatus)) - return nil - }, InType: reflect.TypeOf(&ImageReviewStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ImageReview) DeepCopyInto(out *ImageReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/meta/v1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/meta/v1/BUILD deleted file mode 100644 index 1ceec8571..000000000 --- a/vendor/k8s.io/kubernetes/pkg/apis/meta/v1/BUILD +++ /dev/null @@ -1,30 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["time.go"], - importpath = "k8s.io/kubernetes/pkg/apis/meta/v1", - deps = [ - "//vendor/github.com/go-openapi/spec:go_default_library", - "//vendor/github.com/google/gofuzz:go_default_library", - "//vendor/k8s.io/kube-openapi/pkg/common:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/meta/v1/time.go b/vendor/k8s.io/kubernetes/pkg/apis/meta/v1/time.go deleted file mode 100644 index c73d7ca63..000000000 --- a/vendor/k8s.io/kubernetes/pkg/apis/meta/v1/time.go +++ /dev/null @@ -1,180 +0,0 @@ -/* -Copyright 2014 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 ( - "encoding/json" - "time" - - openapi "k8s.io/kube-openapi/pkg/common" - - "github.com/go-openapi/spec" - "github.com/google/gofuzz" -) - -// Time is a wrapper around time.Time which supports correct -// marshaling to YAML and JSON. Wrappers are provided for many -// of the factory methods that the time package offers. -// -// +protobuf.options.marshal=false -// +protobuf.as=Timestamp -// +protobuf.options.(gogoproto.goproto_stringer)=false -type Time struct { - time.Time `protobuf:"-"` -} - -// DeepCopyInto creates a deep-copy of the Time value. The underlying time.Time -// type is effectively immutable in the time API, so it is safe to -// copy-by-assign, despite the presence of (unexported) Pointer fields. -func (t *Time) DeepCopyInto(out *Time) { - *out = *t -} - -// String returns the representation of the time. -func (t Time) String() string { - return t.Time.String() -} - -// NewTime returns a wrapped instance of the provided time -func NewTime(time time.Time) Time { - return Time{time} -} - -// Date returns the Time corresponding to the supplied parameters -// by wrapping time.Date. -func Date(year int, month time.Month, day, hour, min, sec, nsec int, loc *time.Location) Time { - return Time{time.Date(year, month, day, hour, min, sec, nsec, loc)} -} - -// Now returns the current local time. -func Now() Time { - return Time{time.Now()} -} - -// IsZero returns true if the value is nil or time is zero. -func (t *Time) IsZero() bool { - if t == nil { - return true - } - return t.Time.IsZero() -} - -// Before reports whether the time instant t is before u. -func (t Time) Before(u Time) bool { - return t.Time.Before(u.Time) -} - -// Equal reports whether the time instant t is equal to u. -func (t Time) Equal(u Time) bool { - return t.Time.Equal(u.Time) -} - -// Unix returns the local time corresponding to the given Unix time -// by wrapping time.Unix. -func Unix(sec int64, nsec int64) Time { - return Time{time.Unix(sec, nsec)} -} - -// Rfc3339Copy returns a copy of the Time at second-level precision. -func (t Time) Rfc3339Copy() Time { - copied, _ := time.Parse(time.RFC3339, t.Format(time.RFC3339)) - return Time{copied} -} - -// UnmarshalJSON implements the json.Unmarshaller interface. -func (t *Time) UnmarshalJSON(b []byte) error { - if len(b) == 4 && string(b) == "null" { - t.Time = time.Time{} - return nil - } - - var str string - json.Unmarshal(b, &str) - - pt, err := time.Parse(time.RFC3339, str) - if err != nil { - return err - } - - t.Time = pt.Local() - return nil -} - -// UnmarshalQueryParameter converts from a URL query parameter value to an object -func (t *Time) UnmarshalQueryParameter(str string) error { - if len(str) == 0 { - t.Time = time.Time{} - return nil - } - // Tolerate requests from older clients that used JSON serialization to build query params - if len(str) == 4 && str == "null" { - t.Time = time.Time{} - return nil - } - - pt, err := time.Parse(time.RFC3339, str) - if err != nil { - return err - } - - t.Time = pt.Local() - return nil -} - -// MarshalJSON implements the json.Marshaler interface. -func (t Time) MarshalJSON() ([]byte, error) { - if t.IsZero() { - // Encode unset/nil objects as JSON's "null". - return []byte("null"), nil - } - - return json.Marshal(t.UTC().Format(time.RFC3339)) -} - -func (_ Time) OpenAPIDefinition() openapi.OpenAPIDefinition { - return openapi.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "date-time", - }, - }, - } -} - -// MarshalQueryParameter converts to a URL query parameter value -func (t Time) MarshalQueryParameter() (string, error) { - if t.IsZero() { - // Encode unset/nil objects as an empty string - return "", nil - } - - return t.UTC().Format(time.RFC3339), nil -} - -// Fuzz satisfies fuzz.Interface. -func (t *Time) Fuzz(c fuzz.Continue) { - if t == nil { - return - } - // Allow for about 1000 years of randomness. Leave off nanoseconds - // because JSON doesn't represent them so they can't round-trip - // properly. - t.Time = time.Unix(c.Rand.Int63n(1000*365*24*60*60), 0) -} - -var _ fuzz.Interface = &Time{} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/networking/BUILD index 5d62efcc5..4dff82d1b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/BUILD @@ -15,9 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/networking", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/doc.go index b583051ca..8b013e348 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=networking.k8s.io package networking // import "k8s.io/kubernetes/pkg/apis/networking" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/networking/install/BUILD index 504ea757b..a5ce49004 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/networking/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/networking:go_default_library", "//pkg/apis/networking/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/install/install.go index 85c7991bc..59a3d043c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/install/install.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/networking" "k8s.io/kubernetes/pkg/apis/networking/v1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go index 2109c3745..ae37fcd5e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/types.go @@ -19,7 +19,7 @@ package networking import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // +genclient diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/BUILD index 8cfe08308..a6237c850 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/BUILD @@ -17,7 +17,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/networking/v1", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/networking:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/networking/v1:go_default_library", @@ -48,8 +48,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/networking/v1_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/networking/install:go_default_library", "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/defaults_test.go index 3a86610d7..7bc2a6833 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/defaults_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/defaults_test.go @@ -25,8 +25,8 @@ import ( apiequality "k8s.io/apimachinery/pkg/api/equality" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/networking/install" . "k8s.io/kubernetes/pkg/apis/networking/v1" ) @@ -236,18 +236,18 @@ func TestSetDefaultNetworkPolicy(t *testing.T) { } func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - data, err := runtime.Encode(api.Codecs.LegacyCodec(SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(SchemeGroupVersion), obj) if err != nil { t.Errorf("%v\n %#v", err, obj) return nil } - obj2, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj2, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) return nil } obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = api.Scheme.Convert(obj2, obj3, nil) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) if err != nil { t.Errorf("%v\nSource: %#v", err, obj2) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/zz_generated.conversion.go index 67132df2c..0b1c29ddb 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/v1/zz_generated.conversion.go @@ -27,7 +27,7 @@ import ( conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" networking "k8s.io/kubernetes/pkg/apis/networking" unsafe "unsafe" ) @@ -198,7 +198,7 @@ func Convert_networking_NetworkPolicyPeer_To_v1_NetworkPolicyPeer(in *networking } func autoConvert_v1_NetworkPolicyPort_To_networking_NetworkPolicyPort(in *v1.NetworkPolicyPort, out *networking.NetworkPolicyPort, s conversion.Scope) error { - out.Protocol = (*api.Protocol)(unsafe.Pointer(in.Protocol)) + out.Protocol = (*core.Protocol)(unsafe.Pointer(in.Protocol)) out.Port = (*intstr.IntOrString)(unsafe.Pointer(in.Port)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/BUILD index f43264234..5f1ccf041 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/networking/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/networking:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", @@ -24,8 +24,8 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/networking/validation", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/networking:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/validation.go index 49f638f91..9f0a04c81 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/validation.go @@ -17,15 +17,13 @@ limitations under the License. package validation import ( - "net" - unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" - apivalidation "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/apis/networking" ) @@ -163,7 +161,7 @@ func ValidateIPBlock(ipb *networking.IPBlock, fldPath *field.Path) field.ErrorLi allErrs = append(allErrs, field.Required(fldPath.Child("cidr"), "")) return allErrs } - cidrIPNet, err := validateCIDR(ipb.CIDR) + cidrIPNet, err := apivalidation.ValidateCIDR(ipb.CIDR) if err != nil { allErrs = append(allErrs, field.Invalid(fldPath.Child("cidr"), ipb.CIDR, "not a valid CIDR")) return allErrs @@ -171,7 +169,7 @@ func ValidateIPBlock(ipb *networking.IPBlock, fldPath *field.Path) field.ErrorLi exceptCIDR := ipb.Except for i, exceptIP := range exceptCIDR { exceptPath := fldPath.Child("except").Index(i) - exceptCIDR, err := validateCIDR(exceptIP) + exceptCIDR, err := apivalidation.ValidateCIDR(exceptIP) if err != nil { allErrs = append(allErrs, field.Invalid(exceptPath, exceptIP, "not a valid CIDR")) return allErrs @@ -182,12 +180,3 @@ func ValidateIPBlock(ipb *networking.IPBlock, fldPath *field.Path) field.ErrorLi } return allErrs } - -// validateCIDR validates whether a CIDR matches the conventions expected by net.ParseCIDR -func validateCIDR(cidr string) (*net.IPNet, error) { - _, net, err := net.ParseCIDR(cidr) - if err != nil { - return nil, err - } - return net, nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/validation_test.go index 401eb43b6..3af353d8c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/validation/validation_test.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/networking" ) @@ -215,6 +215,36 @@ func TestValidateNetworkPolicy(t *testing.T) { PolicyTypes: []networking.PolicyType{networking.PolicyTypeIngress, networking.PolicyTypeEgress}, }, }, + { + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, + Spec: networking.NetworkPolicySpec{ + PodSelector: metav1.LabelSelector{ + MatchLabels: map[string]string{"a": "b"}, + }, + Egress: []networking.NetworkPolicyEgressRule{ + { + Ports: []networking.NetworkPolicyPort{ + { + Protocol: nil, + Port: &intstr.IntOrString{Type: intstr.Int, IntVal: 80}, + }, + { + Protocol: &protocolTCP, + Port: nil, + }, + { + Protocol: &protocolTCP, + Port: &intstr.IntOrString{Type: intstr.Int, IntVal: 443}, + }, + { + Protocol: &protocolUDP, + Port: &intstr.IntOrString{Type: intstr.String, StrVal: "dns"}, + }, + }, + }, + }, + }, + }, } // Success cases are expected to pass validation. @@ -246,6 +276,38 @@ func TestValidateNetworkPolicy(t *testing.T) { }, }, }, + Egress: []networking.NetworkPolicyEgressRule{ + { + To: []networking.NetworkPolicyPeer{ + { + PodSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{"c": "d"}, + }, + NamespaceSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{"c": "d"}, + }, + }, + }, + }, + }, + }, + }, + "missing from and to type": { + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, + Spec: networking.NetworkPolicySpec{ + PodSelector: metav1.LabelSelector{ + MatchLabels: map[string]string{"a": "b"}, + }, + Ingress: []networking.NetworkPolicyIngressRule{ + { + From: []networking.NetworkPolicyPeer{{}}, + }, + }, + Egress: []networking.NetworkPolicyEgressRule{ + { + To: []networking.NetworkPolicyPeer{{}}, + }, + }, }, }, "invalid spec.podSelector": { @@ -349,6 +411,54 @@ func TestValidateNetworkPolicy(t *testing.T) { }, }, }, + "invalid egress.ports.protocol": { + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, + Spec: networking.NetworkPolicySpec{ + PodSelector: metav1.LabelSelector{}, + Egress: []networking.NetworkPolicyEgressRule{ + { + Ports: []networking.NetworkPolicyPort{ + { + Protocol: &protocolICMP, + Port: &intstr.IntOrString{Type: intstr.Int, IntVal: 80}, + }, + }, + }, + }, + }, + }, + "invalid egress.ports.port (int)": { + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, + Spec: networking.NetworkPolicySpec{ + PodSelector: metav1.LabelSelector{}, + Egress: []networking.NetworkPolicyEgressRule{ + { + Ports: []networking.NetworkPolicyPort{ + { + Protocol: &protocolTCP, + Port: &intstr.IntOrString{Type: intstr.Int, IntVal: 123456789}, + }, + }, + }, + }, + }, + }, + "invalid egress.ports.port (str)": { + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, + Spec: networking.NetworkPolicySpec{ + PodSelector: metav1.LabelSelector{}, + Egress: []networking.NetworkPolicyEgressRule{ + { + Ports: []networking.NetworkPolicyPort{ + { + Protocol: &protocolTCP, + Port: &intstr.IntOrString{Type: intstr.String, StrVal: "!@#$"}, + }, + }, + }, + }, + }, + }, "invalid ingress.from.namespaceSelector": { ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: networking.NetworkPolicySpec{ diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go index da38fb5e8..aa5958efb 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/zz_generated.deepcopy.go @@ -22,58 +22,11 @@ package networking import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" - api "k8s.io/kubernetes/pkg/api" - reflect "reflect" + core "k8s.io/kubernetes/pkg/apis/core" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IPBlock).DeepCopyInto(out.(*IPBlock)) - return nil - }, InType: reflect.TypeOf(&IPBlock{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicy).DeepCopyInto(out.(*NetworkPolicy)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyEgressRule).DeepCopyInto(out.(*NetworkPolicyEgressRule)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyEgressRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyIngressRule).DeepCopyInto(out.(*NetworkPolicyIngressRule)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyIngressRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyList).DeepCopyInto(out.(*NetworkPolicyList)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyPeer).DeepCopyInto(out.(*NetworkPolicyPeer)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyPeer{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyPort).DeepCopyInto(out.(*NetworkPolicyPort)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyPort{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicySpec).DeepCopyInto(out.(*NetworkPolicySpec)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicySpec{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IPBlock) DeepCopyInto(out *IPBlock) { *out = *in @@ -268,7 +221,7 @@ func (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) { if *in == nil { *out = nil } else { - *out = new(api.Protocol) + *out = new(core.Protocol) **out = **in } } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/policy/BUILD index 8396aae0f..fa6f1618c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/policy", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/policy/doc.go index 86f4cd560..e8e081e7a 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package policy // import "k8s.io/kubernetes/pkg/apis/policy" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/policy/install/BUILD index b063e7259..6cecb3979 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/policy/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/policy:go_default_library", "//pkg/apis/policy/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/policy/install/install.go index cf133df6b..6c5703195 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/install/install.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/apis/policy/v1beta1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/register.go b/vendor/k8s.io/kubernetes/pkg/apis/policy/register.go index 5aadc3f1b..80e834b38 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/register.go @@ -42,7 +42,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { // TODO this gets cleaned up when the types are fixed scheme.AddKnownTypes(SchemeGroupVersion, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/BUILD index 9818297b0..767e92fe9 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/BUILD @@ -17,7 +17,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/policy/v1alpha1", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/doc.go index e5b6777ce..8ef6fc804 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:defaulter-gen=TypeMeta -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package policy is for any kind of policy object. Suitable examples, even if // they aren't all here, are PodDisruptionBudget, PodSecurityPolicy, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/register.go b/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/register.go index 78092cecf..bf88a1e19 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/register.go @@ -48,7 +48,7 @@ func init() { localSchemeBuilder.Register(addKnownTypes, RegisterDefaults) } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &PodDisruptionBudget{}, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/zz_generated.deepcopy.go index d4c262805..4138017ae 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/v1alpha1/zz_generated.deepcopy.go @@ -22,44 +22,9 @@ package v1alpha1 import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Eviction).DeepCopyInto(out.(*Eviction)) - return nil - }, InType: reflect.TypeOf(&Eviction{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudget).DeepCopyInto(out.(*PodDisruptionBudget)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudget{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudgetList).DeepCopyInto(out.(*PodDisruptionBudgetList)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudgetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudgetSpec).DeepCopyInto(out.(*PodDisruptionBudgetSpec)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudgetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudgetStatus).DeepCopyInto(out.(*PodDisruptionBudgetStatus)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudgetStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Eviction) DeepCopyInto(out *Eviction) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/policy/validation/BUILD index 20cf1223c..1f372c738 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/validation/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/policy/validation", deps = [ - "//pkg/api/validation:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//pkg/apis/policy:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/policy/validation/validation.go index cb0e0506d..cae1609de 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/validation/validation.go @@ -21,7 +21,7 @@ import ( unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" "k8s.io/apimachinery/pkg/util/validation/field" - apivalidation "k8s.io/kubernetes/pkg/api/validation" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" extensionsvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/apis/policy" ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/policy/zz_generated.deepcopy.go index 46dfdd8f4..564329c60 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/policy/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/zz_generated.deepcopy.go @@ -22,45 +22,10 @@ package policy import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Eviction).DeepCopyInto(out.(*Eviction)) - return nil - }, InType: reflect.TypeOf(&Eviction{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudget).DeepCopyInto(out.(*PodDisruptionBudget)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudget{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudgetList).DeepCopyInto(out.(*PodDisruptionBudgetList)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudgetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudgetSpec).DeepCopyInto(out.(*PodDisruptionBudgetSpec)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudgetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudgetStatus).DeepCopyInto(out.(*PodDisruptionBudgetStatus)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudgetStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Eviction) DeepCopyInto(out *Eviction) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/rbac/BUILD index 5e305a6ab..ef634f03a 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/BUILD @@ -18,7 +18,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/rbac", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", @@ -52,7 +51,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/rbac_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/rbac/install:go_default_library", "//pkg/apis/rbac/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/doc.go index b264fb9a0..bebcb771d 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=rbac.authorization.k8s.io package rbac // import "k8s.io/kubernetes/pkg/apis/rbac" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/helpers.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/helpers.go index efc4c61c5..4b1a1d3a0 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/helpers.go @@ -55,14 +55,29 @@ func APIGroupMatches(rule *PolicyRule, requestedGroup string) bool { return false } -func ResourceMatches(rule *PolicyRule, requestedResource string) bool { +func ResourceMatches(rule *PolicyRule, combinedRequestedResource, requestedSubresource string) bool { for _, ruleResource := range rule.Resources { + // if everything is allowed, we match if ruleResource == ResourceAll { return true } - if ruleResource == requestedResource { + // if we have an exact match, we match + if ruleResource == combinedRequestedResource { return true } + + // We can also match a */subresource. + // if there isn't a subresource, then continue + if len(requestedSubresource) == 0 { + continue + } + // if the rule isn't in the format */subresource, then we don't match, continue + if len(ruleResource) == len(requestedSubresource)+2 && + strings.HasPrefix(ruleResource, "*/") && + strings.HasSuffix(ruleResource, requestedSubresource) { + return true + + } } return false diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/helpers_test.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/helpers_test.go index de9f24a09..8723796e8 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/helpers_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/helpers_test.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac/v1" @@ -53,13 +53,13 @@ func TestHelpersRoundTrip(t *testing.T) { } for _, internalObj := range []runtime.Object{&rb, &rbcr, &crb, role, clusterRole} { - v1Obj, err := api.Scheme.ConvertToVersion(internalObj, v1.SchemeGroupVersion) + v1Obj, err := legacyscheme.Scheme.ConvertToVersion(internalObj, v1.SchemeGroupVersion) if err != nil { t.Errorf("err on %T: %v", internalObj, err) continue } - api.Scheme.Default(v1Obj) - roundTrippedObj, err := api.Scheme.ConvertToVersion(v1Obj, rbac.SchemeGroupVersion) + legacyscheme.Scheme.Default(v1Obj) + roundTrippedObj, err := legacyscheme.Scheme.ConvertToVersion(v1Obj, rbac.SchemeGroupVersion) if err != nil { t.Errorf("err on %T: %v", internalObj, err) continue @@ -70,3 +70,108 @@ func TestHelpersRoundTrip(t *testing.T) { } } } + +func TestResourceMatches(t *testing.T) { + tests := []struct { + name string + ruleResources []string + combinedRequestedResource string + requestedSubresource string + expected bool + }{ + { + name: "all matches 01", + ruleResources: []string{"*"}, + combinedRequestedResource: "foo", + expected: true, + }, + { + name: "checks all rules", + ruleResources: []string{"doesn't match", "*"}, + combinedRequestedResource: "foo", + expected: true, + }, + { + name: "matches exact rule", + ruleResources: []string{"foo/bar"}, + combinedRequestedResource: "foo/bar", + requestedSubresource: "bar", + expected: true, + }, + { + name: "matches exact rule 02", + ruleResources: []string{"foo/bar"}, + combinedRequestedResource: "foo", + expected: false, + }, + { + name: "matches subresource", + ruleResources: []string{"*/scale"}, + combinedRequestedResource: "foo/scale", + requestedSubresource: "scale", + expected: true, + }, + { + name: "doesn't match partial subresource hit", + ruleResources: []string{"foo/bar", "*/other"}, + combinedRequestedResource: "foo/other/segment", + requestedSubresource: "other/segment", + expected: false, + }, + { + name: "matches subresource with multiple slashes", + ruleResources: []string{"*/other/segment"}, + combinedRequestedResource: "foo/other/segment", + requestedSubresource: "other/segment", + expected: true, + }, + { + name: "doesn't fail on empty", + ruleResources: []string{""}, + combinedRequestedResource: "foo/other/segment", + requestedSubresource: "other/segment", + expected: false, + }, + { + name: "doesn't fail on slash", + ruleResources: []string{"/"}, + combinedRequestedResource: "foo/other/segment", + requestedSubresource: "other/segment", + expected: false, + }, + { + name: "doesn't fail on missing subresource", + ruleResources: []string{"*/"}, + combinedRequestedResource: "foo/other/segment", + requestedSubresource: "other/segment", + expected: false, + }, + { + name: "doesn't match on not star", + ruleResources: []string{"*something/other/segment"}, + combinedRequestedResource: "foo/other/segment", + requestedSubresource: "other/segment", + expected: false, + }, + { + name: "doesn't match on something else", + ruleResources: []string{"something/other/segment"}, + combinedRequestedResource: "foo/other/segment", + requestedSubresource: "other/segment", + expected: false, + }, + } + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + rule := &rbac.PolicyRule{ + Resources: tc.ruleResources, + } + actual := rbac.ResourceMatches(rule, tc.combinedRequestedResource, tc.requestedSubresource) + if tc.expected != actual { + t.Errorf("expected %v, got %v", tc.expected, actual) + } + + }) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/BUILD index ff8ca7c4e..5c699a006 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/rbac/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/apis/rbac/v1:go_default_library", "//pkg/apis/rbac/v1alpha1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/install.go index 84be4c186..b03d8475c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/install/install.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac/v1" "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1" @@ -31,7 +31,7 @@ import ( ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/register.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/register.go index f4a838bd8..4f2329515 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Role{}, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/types.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/types.go index 6e5ce60fb..6fdd486d2 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/types.go @@ -48,7 +48,8 @@ type PolicyRule struct { // APIGroups is the name of the APIGroup that contains the resources. // If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. APIGroups []string - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. + // Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. + // '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups. Resources []string // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. ResourceNames []string @@ -154,6 +155,18 @@ type ClusterRole struct { // Rules holds all the PolicyRules for this ClusterRole Rules []PolicyRule + + // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. + // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be + // stomped by the controller. + AggregationRule *AggregationRule +} + +// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole +type AggregationRule struct { + // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. + // If any of the selectors match, then the ClusterRole's permissions will be added + ClusterRoleSelectors []metav1.LabelSelector } // +genclient diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1/zz_generated.conversion.go index e5e668811..c46056a92 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1/zz_generated.conversion.go @@ -22,6 +22,7 @@ package v1 import ( v1 "k8s.io/api/rbac/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" rbac "k8s.io/kubernetes/pkg/apis/rbac" @@ -36,6 +37,8 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( + Convert_v1_AggregationRule_To_rbac_AggregationRule, + Convert_rbac_AggregationRule_To_v1_AggregationRule, Convert_v1_ClusterRole_To_rbac_ClusterRole, Convert_rbac_ClusterRole_To_v1_ClusterRole, Convert_v1_ClusterRoleBinding_To_rbac_ClusterRoleBinding, @@ -61,9 +64,30 @@ func RegisterConversions(scheme *runtime.Scheme) error { ) } +func autoConvert_v1_AggregationRule_To_rbac_AggregationRule(in *v1.AggregationRule, out *rbac.AggregationRule, s conversion.Scope) error { + out.ClusterRoleSelectors = *(*[]meta_v1.LabelSelector)(unsafe.Pointer(&in.ClusterRoleSelectors)) + return nil +} + +// Convert_v1_AggregationRule_To_rbac_AggregationRule is an autogenerated conversion function. +func Convert_v1_AggregationRule_To_rbac_AggregationRule(in *v1.AggregationRule, out *rbac.AggregationRule, s conversion.Scope) error { + return autoConvert_v1_AggregationRule_To_rbac_AggregationRule(in, out, s) +} + +func autoConvert_rbac_AggregationRule_To_v1_AggregationRule(in *rbac.AggregationRule, out *v1.AggregationRule, s conversion.Scope) error { + out.ClusterRoleSelectors = *(*[]meta_v1.LabelSelector)(unsafe.Pointer(&in.ClusterRoleSelectors)) + return nil +} + +// Convert_rbac_AggregationRule_To_v1_AggregationRule is an autogenerated conversion function. +func Convert_rbac_AggregationRule_To_v1_AggregationRule(in *rbac.AggregationRule, out *v1.AggregationRule, s conversion.Scope) error { + return autoConvert_rbac_AggregationRule_To_v1_AggregationRule(in, out, s) +} + func autoConvert_v1_ClusterRole_To_rbac_ClusterRole(in *v1.ClusterRole, out *rbac.ClusterRole, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta out.Rules = *(*[]rbac.PolicyRule)(unsafe.Pointer(&in.Rules)) + out.AggregationRule = (*rbac.AggregationRule)(unsafe.Pointer(in.AggregationRule)) return nil } @@ -75,6 +99,7 @@ func Convert_v1_ClusterRole_To_rbac_ClusterRole(in *v1.ClusterRole, out *rbac.Cl func autoConvert_rbac_ClusterRole_To_v1_ClusterRole(in *rbac.ClusterRole, out *v1.ClusterRole, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta out.Rules = *(*[]v1.PolicyRule)(unsafe.Pointer(&in.Rules)) + out.AggregationRule = (*v1.AggregationRule)(unsafe.Pointer(in.AggregationRule)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/BUILD index 6df936ab4..fed81967e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/BUILD @@ -33,7 +33,7 @@ go_test( srcs = ["conversion_test.go"], importpath = "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1_test", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/apis/rbac/install:go_default_library", "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/conversion_test.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/conversion_test.go index ca436d530..2eea78041 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/conversion_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/conversion_test.go @@ -21,7 +21,7 @@ import ( "testing" "k8s.io/api/rbac/v1alpha1" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" rbacapi "k8s.io/kubernetes/pkg/apis/rbac" _ "k8s.io/kubernetes/pkg/apis/rbac/install" ) @@ -96,7 +96,7 @@ func TestConversion(t *testing.T) { } for k, tc := range testcases { internal := &rbacapi.RoleBinding{} - if err := api.Scheme.Convert(tc.old, internal, nil); err != nil { + if err := legacyscheme.Scheme.Convert(tc.old, internal, nil); err != nil { t.Errorf("%s: unexpected error: %v", k, err) } if !reflect.DeepEqual(internal, tc.expected) { diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/zz_generated.conversion.go index 4c52c5a78..6076e0d3d 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1alpha1/zz_generated.conversion.go @@ -22,6 +22,7 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/rbac/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" rbac "k8s.io/kubernetes/pkg/apis/rbac" @@ -36,6 +37,8 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( + Convert_v1alpha1_AggregationRule_To_rbac_AggregationRule, + Convert_rbac_AggregationRule_To_v1alpha1_AggregationRule, Convert_v1alpha1_ClusterRole_To_rbac_ClusterRole, Convert_rbac_ClusterRole_To_v1alpha1_ClusterRole, Convert_v1alpha1_ClusterRoleBinding_To_rbac_ClusterRoleBinding, @@ -61,9 +64,30 @@ func RegisterConversions(scheme *runtime.Scheme) error { ) } +func autoConvert_v1alpha1_AggregationRule_To_rbac_AggregationRule(in *v1alpha1.AggregationRule, out *rbac.AggregationRule, s conversion.Scope) error { + out.ClusterRoleSelectors = *(*[]v1.LabelSelector)(unsafe.Pointer(&in.ClusterRoleSelectors)) + return nil +} + +// Convert_v1alpha1_AggregationRule_To_rbac_AggregationRule is an autogenerated conversion function. +func Convert_v1alpha1_AggregationRule_To_rbac_AggregationRule(in *v1alpha1.AggregationRule, out *rbac.AggregationRule, s conversion.Scope) error { + return autoConvert_v1alpha1_AggregationRule_To_rbac_AggregationRule(in, out, s) +} + +func autoConvert_rbac_AggregationRule_To_v1alpha1_AggregationRule(in *rbac.AggregationRule, out *v1alpha1.AggregationRule, s conversion.Scope) error { + out.ClusterRoleSelectors = *(*[]v1.LabelSelector)(unsafe.Pointer(&in.ClusterRoleSelectors)) + return nil +} + +// Convert_rbac_AggregationRule_To_v1alpha1_AggregationRule is an autogenerated conversion function. +func Convert_rbac_AggregationRule_To_v1alpha1_AggregationRule(in *rbac.AggregationRule, out *v1alpha1.AggregationRule, s conversion.Scope) error { + return autoConvert_rbac_AggregationRule_To_v1alpha1_AggregationRule(in, out, s) +} + func autoConvert_v1alpha1_ClusterRole_To_rbac_ClusterRole(in *v1alpha1.ClusterRole, out *rbac.ClusterRole, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta out.Rules = *(*[]rbac.PolicyRule)(unsafe.Pointer(&in.Rules)) + out.AggregationRule = (*rbac.AggregationRule)(unsafe.Pointer(in.AggregationRule)) return nil } @@ -75,6 +99,7 @@ func Convert_v1alpha1_ClusterRole_To_rbac_ClusterRole(in *v1alpha1.ClusterRole, func autoConvert_rbac_ClusterRole_To_v1alpha1_ClusterRole(in *rbac.ClusterRole, out *v1alpha1.ClusterRole, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta out.Rules = *(*[]v1alpha1.PolicyRule)(unsafe.Pointer(&in.Rules)) + out.AggregationRule = (*v1alpha1.AggregationRule)(unsafe.Pointer(in.AggregationRule)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1beta1/zz_generated.conversion.go index d06b9265a..d031b15fa 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/v1beta1/zz_generated.conversion.go @@ -22,6 +22,7 @@ package v1beta1 import ( v1beta1 "k8s.io/api/rbac/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" rbac "k8s.io/kubernetes/pkg/apis/rbac" @@ -36,6 +37,8 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( + Convert_v1beta1_AggregationRule_To_rbac_AggregationRule, + Convert_rbac_AggregationRule_To_v1beta1_AggregationRule, Convert_v1beta1_ClusterRole_To_rbac_ClusterRole, Convert_rbac_ClusterRole_To_v1beta1_ClusterRole, Convert_v1beta1_ClusterRoleBinding_To_rbac_ClusterRoleBinding, @@ -61,9 +64,30 @@ func RegisterConversions(scheme *runtime.Scheme) error { ) } +func autoConvert_v1beta1_AggregationRule_To_rbac_AggregationRule(in *v1beta1.AggregationRule, out *rbac.AggregationRule, s conversion.Scope) error { + out.ClusterRoleSelectors = *(*[]v1.LabelSelector)(unsafe.Pointer(&in.ClusterRoleSelectors)) + return nil +} + +// Convert_v1beta1_AggregationRule_To_rbac_AggregationRule is an autogenerated conversion function. +func Convert_v1beta1_AggregationRule_To_rbac_AggregationRule(in *v1beta1.AggregationRule, out *rbac.AggregationRule, s conversion.Scope) error { + return autoConvert_v1beta1_AggregationRule_To_rbac_AggregationRule(in, out, s) +} + +func autoConvert_rbac_AggregationRule_To_v1beta1_AggregationRule(in *rbac.AggregationRule, out *v1beta1.AggregationRule, s conversion.Scope) error { + out.ClusterRoleSelectors = *(*[]v1.LabelSelector)(unsafe.Pointer(&in.ClusterRoleSelectors)) + return nil +} + +// Convert_rbac_AggregationRule_To_v1beta1_AggregationRule is an autogenerated conversion function. +func Convert_rbac_AggregationRule_To_v1beta1_AggregationRule(in *rbac.AggregationRule, out *v1beta1.AggregationRule, s conversion.Scope) error { + return autoConvert_rbac_AggregationRule_To_v1beta1_AggregationRule(in, out, s) +} + func autoConvert_v1beta1_ClusterRole_To_rbac_ClusterRole(in *v1beta1.ClusterRole, out *rbac.ClusterRole, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta out.Rules = *(*[]rbac.PolicyRule)(unsafe.Pointer(&in.Rules)) + out.AggregationRule = (*rbac.AggregationRule)(unsafe.Pointer(in.AggregationRule)) return nil } @@ -75,6 +99,7 @@ func Convert_v1beta1_ClusterRole_To_rbac_ClusterRole(in *v1beta1.ClusterRole, ou func autoConvert_rbac_ClusterRole_To_v1beta1_ClusterRole(in *rbac.ClusterRole, out *v1beta1.ClusterRole, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta out.Rules = *(*[]v1beta1.PolicyRule)(unsafe.Pointer(&in.Rules)) + out.AggregationRule = (*v1beta1.AggregationRule)(unsafe.Pointer(in.AggregationRule)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/rbac/validation/BUILD index d3a74c673..3c3408307 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/validation/BUILD @@ -11,9 +11,11 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/rbac/validation", deps = [ - "//pkg/api/validation:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/rbac:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation/path:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/validation/validation.go index 0fc3cb1fb..92fc5bdb1 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/validation/validation.go @@ -18,8 +18,10 @@ package validation import ( "k8s.io/apimachinery/pkg/api/validation/path" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/apis/rbac" ) @@ -61,6 +63,22 @@ func ValidateClusterRole(role *rbac.ClusterRole) field.ErrorList { allErrs = append(allErrs, err...) } } + + if role.AggregationRule != nil { + if len(role.AggregationRule.ClusterRoleSelectors) == 0 { + allErrs = append(allErrs, field.Required(field.NewPath("aggregationRule", "clusterRoleSelectors"), "at least one clusterRoleSelector required if aggregationRule is non-nil")) + } + for i, selector := range role.AggregationRule.ClusterRoleSelectors { + fieldPath := field.NewPath("aggregationRule", "clusterRoleSelectors").Index(i) + allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(&selector, fieldPath)...) + + selector, err := metav1.LabelSelectorAsSelector(&selector) + if err != nil { + allErrs = append(allErrs, field.Invalid(fieldPath, selector, "invalid label selector.")) + } + } + } + if len(allErrs) != 0 { return allErrs } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/rbac/zz_generated.deepcopy.go index ce1103742..8454f2308 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/rbac/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/zz_generated.deepcopy.go @@ -21,66 +21,31 @@ limitations under the License. package rbac import ( - conversion "k8s.io/apimachinery/pkg/conversion" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRole).DeepCopyInto(out.(*ClusterRole)) - return nil - }, InType: reflect.TypeOf(&ClusterRole{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleBinding).DeepCopyInto(out.(*ClusterRoleBinding)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleBinding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleBindingList).DeepCopyInto(out.(*ClusterRoleBindingList)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleBindingList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleList).DeepCopyInto(out.(*ClusterRoleList)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyRule).DeepCopyInto(out.(*PolicyRule)) - return nil - }, InType: reflect.TypeOf(&PolicyRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Role).DeepCopyInto(out.(*Role)) - return nil - }, InType: reflect.TypeOf(&Role{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleBinding).DeepCopyInto(out.(*RoleBinding)) - return nil - }, InType: reflect.TypeOf(&RoleBinding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleBindingList).DeepCopyInto(out.(*RoleBindingList)) - return nil - }, InType: reflect.TypeOf(&RoleBindingList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleList).DeepCopyInto(out.(*RoleList)) - return nil - }, InType: reflect.TypeOf(&RoleList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleRef).DeepCopyInto(out.(*RoleRef)) - return nil - }, InType: reflect.TypeOf(&RoleRef{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Subject).DeepCopyInto(out.(*Subject)) - return nil - }, InType: reflect.TypeOf(&Subject{})}, - ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AggregationRule) DeepCopyInto(out *AggregationRule) { + *out = *in + if in.ClusterRoleSelectors != nil { + in, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors + *out = make([]v1.LabelSelector, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule. +func (in *AggregationRule) DeepCopy() *AggregationRule { + if in == nil { + return nil + } + out := new(AggregationRule) + in.DeepCopyInto(out) + return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. @@ -95,6 +60,15 @@ func (in *ClusterRole) DeepCopyInto(out *ClusterRole) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.AggregationRule != nil { + in, out := &in.AggregationRule, &out.AggregationRule + if *in == nil { + *out = nil + } else { + *out = new(AggregationRule) + (*in).DeepCopyInto(*out) + } + } return } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/BUILD index bae1489d2..58811a512 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/apis/scheduling", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/doc.go index 782bf3fbd..f2745c227 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=scheduling.k8s.io package scheduling // import "k8s.io/kubernetes/pkg/apis/scheduling" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/install/BUILD index c0cf8f9ea..b15164848 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/scheduling/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/scheduling:go_default_library", "//pkg/apis/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/install/install.go index d35d47058..0a47a8815 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/install/install.go @@ -23,13 +23,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/scheduling" "k8s.io/kubernetes/pkg/apis/scheduling/v1alpha1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/validation/BUILD index 5056a08c1..fc4680377 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/validation/BUILD @@ -23,7 +23,7 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/scheduling/validation", deps = [ - "//pkg/api/validation:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/scheduling:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/validation/validation.go index 0c32fe251..f4fac9d9c 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/validation/validation.go @@ -18,7 +18,7 @@ package validation import ( "k8s.io/apimachinery/pkg/util/validation/field" - apivalidation "k8s.io/kubernetes/pkg/api/validation" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/apis/scheduling" ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/zz_generated.deepcopy.go index 9eb362fad..7eb3fea06 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/scheduling/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/scheduling/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package scheduling import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PriorityClass).DeepCopyInto(out.(*PriorityClass)) - return nil - }, InType: reflect.TypeOf(&PriorityClass{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PriorityClassList).DeepCopyInto(out.(*PriorityClassList)) - return nil - }, InType: reflect.TypeOf(&PriorityClassList{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PriorityClass) DeepCopyInto(out *PriorityClass) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/settings/BUILD index cb4d216f5..2e9f40d27 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/BUILD @@ -15,9 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/settings", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/doc.go index 292cb6b24..6093e3e82 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=settings.k8s.io package settings // import "k8s.io/kubernetes/pkg/apis/settings" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/settings/install/BUILD index 9b304daa2..9a6ffe726 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/install/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/settings/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/settings:go_default_library", "//pkg/apis/settings/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/install/install.go index fdaf7d2c3..bf4ae5c57 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/install/install.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/settings" "k8s.io/kubernetes/pkg/apis/settings/v1alpha1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/register.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/register.go index 858470127..7b144b7df 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/register.go @@ -42,7 +42,7 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &PodPreset{}, diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/types.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/types.go index 1087f00f8..876c80255 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/types.go @@ -18,7 +18,7 @@ package settings import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // +genclient diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/BUILD index 923fd9e57..7869c4fad 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/BUILD @@ -15,8 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/settings/v1alpha1", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/apis/settings:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/zz_generated.conversion.go index 396102ecd..de7bb8672 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/zz_generated.conversion.go @@ -25,7 +25,7 @@ import ( v1alpha1 "k8s.io/api/settings/v1alpha1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" settings "k8s.io/kubernetes/pkg/apis/settings" unsafe "unsafe" ) @@ -117,11 +117,11 @@ func Convert_settings_PodPresetList_To_v1alpha1_PodPresetList(in *settings.PodPr func autoConvert_v1alpha1_PodPresetSpec_To_settings_PodPresetSpec(in *v1alpha1.PodPresetSpec, out *settings.PodPresetSpec, s conversion.Scope) error { out.Selector = in.Selector - out.Env = *(*[]api.EnvVar)(unsafe.Pointer(&in.Env)) - out.EnvFrom = *(*[]api.EnvFromSource)(unsafe.Pointer(&in.EnvFrom)) + out.Env = *(*[]core.EnvVar)(unsafe.Pointer(&in.Env)) + out.EnvFrom = *(*[]core.EnvFromSource)(unsafe.Pointer(&in.EnvFrom)) if in.Volumes != nil { in, out := &in.Volumes, &out.Volumes - *out = make([]api.Volume, len(*in)) + *out = make([]core.Volume, len(*in)) for i := range *in { // TODO: Inefficient conversion - can we improve it? if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { @@ -131,7 +131,7 @@ func autoConvert_v1alpha1_PodPresetSpec_To_settings_PodPresetSpec(in *v1alpha1.P } else { out.Volumes = nil } - out.VolumeMounts = *(*[]api.VolumeMount)(unsafe.Pointer(&in.VolumeMounts)) + out.VolumeMounts = *(*[]core.VolumeMount)(unsafe.Pointer(&in.VolumeMounts)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/zz_generated.defaults.go index b2fa4af7d..af5867ce3 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/v1alpha1/zz_generated.defaults.go @@ -23,7 +23,7 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/settings/v1alpha1" runtime "k8s.io/apimachinery/pkg/runtime" - v1 "k8s.io/kubernetes/pkg/api/v1" + v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // RegisterDefaults adds defaulters functions to the given scheme. diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/BUILD index 9b1ab0c1e..f0e6d67f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/settings/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/settings:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], @@ -23,7 +23,7 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/settings/validation", deps = [ - "//pkg/api/validation:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/settings:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/validation.go index 6f02781ff..1acfef0d7 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/validation.go @@ -19,7 +19,7 @@ package validation import ( unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" "k8s.io/apimachinery/pkg/util/validation/field" - apivalidation "k8s.io/kubernetes/pkg/api/validation" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/apis/settings" ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/validation_test.go index 343f6465c..884b15f2b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/validation/validation_test.go @@ -21,7 +21,7 @@ import ( "testing" "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/settings" ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/settings/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/settings/zz_generated.deepcopy.go index a6d188a39..742ebb506 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/settings/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/settings/zz_generated.deepcopy.go @@ -21,37 +21,10 @@ limitations under the License. package settings import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - reflect "reflect" + core "k8s.io/kubernetes/pkg/apis/core" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodPreset).DeepCopyInto(out.(*PodPreset)) - return nil - }, InType: reflect.TypeOf(&PodPreset{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodPresetList).DeepCopyInto(out.(*PodPresetList)) - return nil - }, InType: reflect.TypeOf(&PodPresetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodPresetSpec).DeepCopyInto(out.(*PodPresetSpec)) - return nil - }, InType: reflect.TypeOf(&PodPresetSpec{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PodPreset) DeepCopyInto(out *PodPreset) { *out = *in @@ -120,28 +93,28 @@ func (in *PodPresetSpec) DeepCopyInto(out *PodPresetSpec) { in.Selector.DeepCopyInto(&out.Selector) if in.Env != nil { in, out := &in.Env, &out.Env - *out = make([]api.EnvVar, len(*in)) + *out = make([]core.EnvVar, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } if in.EnvFrom != nil { in, out := &in.EnvFrom, &out.EnvFrom - *out = make([]api.EnvFromSource, len(*in)) + *out = make([]core.EnvFromSource, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } if in.Volumes != nil { in, out := &in.Volumes, &out.Volumes - *out = make([]api.Volume, len(*in)) + *out = make([]core.Volume, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } if in.VolumeMounts != nil { in, out := &in.VolumeMounts, &out.VolumeMounts - *out = make([]api.VolumeMount, len(*in)) + *out = make([]core.VolumeMount, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/storage/BUILD index aa487dde1..b8d3d38ef 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/BUILD @@ -15,9 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], @@ -38,6 +37,7 @@ filegroup( "//pkg/apis/storage/install:all-srcs", "//pkg/apis/storage/util:all-srcs", "//pkg/apis/storage/v1:all-srcs", + "//pkg/apis/storage/v1alpha1:all-srcs", "//pkg/apis/storage/v1beta1:all-srcs", "//pkg/apis/storage/validation:all-srcs", ], diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/doc.go index 51dbb344c..5220b981e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=storage.k8s.io package storage // import "k8s.io/kubernetes/pkg/apis/storage" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/fuzzer/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/storage/fuzzer/BUILD index 150483ad3..fcec240ec 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/fuzzer/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/fuzzer/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["fuzzer.go"], importpath = "k8s.io/kubernetes/pkg/apis/storage/fuzzer", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/storage:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/fuzzer/fuzzer.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/fuzzer/fuzzer.go index e8a365149..ea35b74a5 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/fuzzer/fuzzer.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/fuzzer/fuzzer.go @@ -20,7 +20,7 @@ import ( fuzz "github.com/google/gofuzz" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/storage" ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/install/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/storage/install/BUILD index 91b5cfef4..798341862 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/install/BUILD @@ -10,9 +10,10 @@ go_library( srcs = ["install.go"], importpath = "k8s.io/kubernetes/pkg/apis/storage/install", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/storage:go_default_library", "//pkg/apis/storage/v1:go_default_library", + "//pkg/apis/storage/v1alpha1:go_default_library", "//pkg/apis/storage/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/install/install.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/install/install.go index 6c645feb6..28fa78659 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/install/install.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/install/install.go @@ -23,28 +23,33 @@ import ( "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/storage" "k8s.io/kubernetes/pkg/apis/storage/v1" + "k8s.io/kubernetes/pkg/apis/storage/v1alpha1" "k8s.io/kubernetes/pkg/apis/storage/v1beta1" ) func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) + Install(legacyscheme.GroupFactoryRegistry, legacyscheme.Registry, legacyscheme.Scheme) } // Install registers the API group and adds types to a scheme func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { if err := announced.NewGroupMetaFactory( &announced.GroupMetaFactoryArgs{ - GroupName: storage.GroupName, - VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v1beta1.SchemeGroupVersion.Version}, - RootScopedKinds: sets.NewString("StorageClass"), + GroupName: storage.GroupName, + VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version, v1beta1.SchemeGroupVersion.Version, v1alpha1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString( + "StorageClass", + "VolumeAttachment", + ), AddInternalObjectsToScheme: storage.AddToScheme, }, announced.VersionToSchemeFunc{ - v1.SchemeGroupVersion.Version: v1.AddToScheme, - v1beta1.SchemeGroupVersion.Version: v1beta1.AddToScheme, + v1.SchemeGroupVersion.Version: v1.AddToScheme, + v1beta1.SchemeGroupVersion.Version: v1beta1.AddToScheme, + v1alpha1.SchemeGroupVersion.Version: v1alpha1.AddToScheme, }, ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { panic(err) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/register.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/register.go index aaa619b4d..7ae2f3efe 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/register.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/register.go @@ -46,6 +46,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &StorageClass{}, &StorageClassList{}, + &VolumeAttachment{}, + &VolumeAttachmentList{}, ) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/types.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/types.go index 1af94b2d7..e44b327d3 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/types.go @@ -18,7 +18,7 @@ package storage import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // +genclient @@ -65,6 +65,13 @@ type StorageClass struct { // for all PVs created from this storageclass. // +optional AllowVolumeExpansion *bool + + // VolumeBindingMode indicates how PersistentVolumeClaims should be + // provisioned and bound. When unset, VolumeBindingImmediate is used. + // This field is alpha-level and is only honored by servers that enable + // the VolumeScheduling feature. + // +optional + VolumeBindingMode *VolumeBindingMode } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -80,3 +87,125 @@ type StorageClassList struct { // Items is the list of StorageClasses Items []StorageClass } + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Captures the intent to attach or detach the specified volume to/from +// the specified node. +// +// VolumeAttachment objects are non-namespaced. +type VolumeAttachment struct { + metav1.TypeMeta + + // Standard object metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta + + // Specification of the desired attach/detach volume behavior. + // Populated by the Kubernetes system. + Spec VolumeAttachmentSpec + + // Status of the VolumeAttachment request. + // Populated by the entity completing the attach or detach + // operation, i.e. the external-attacher. + // +optional + Status VolumeAttachmentStatus +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// VolumeAttachmentList is a collection of VolumeAttachment objects. +type VolumeAttachmentList struct { + metav1.TypeMeta + // Standard list metadata + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ListMeta + + // Items is the list of VolumeAttachments + Items []VolumeAttachment +} + +// The specification of a VolumeAttachment request. +type VolumeAttachmentSpec struct { + // Attacher indicates the name of the volume driver that MUST handle this + // request. This is the name returned by GetPluginName(). + Attacher string + + // Source represents the volume that should be attached. + Source VolumeAttachmentSource + + // The node that the volume should be attached to. + NodeName string +} + +// VolumeAttachmentSource represents a volume that should be attached. +// Right now only PersistenVolumes can be attached via external attacher, +// in future we may allow also inline volumes in pods. +// Exactly one member can be set. +type VolumeAttachmentSource struct { + // Name of the persistent volume to attach. + // +optional + PersistentVolumeName *string + + // Placeholder for *VolumeSource to accommodate inline volumes in pods. +} + +// The status of a VolumeAttachment request. +type VolumeAttachmentStatus struct { + // Indicates the volume is successfully attached. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + Attached bool + + // Upon successful attach, this field is populated with any + // information returned by the attach operation that must be passed + // into subsequent WaitForAttach or Mount calls. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + AttachmentMetadata map[string]string + + // The last error encountered during attach operation, if any. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + AttachError *VolumeError + + // The last error encountered during detach operation, if any. + // This field must only be set by the entity completing the detach + // operation, i.e. the external-attacher. + // +optional + DetachError *VolumeError +} + +// Captures an error encountered during a volume operation. +type VolumeError struct { + // Time the error was encountered. + // +optional + Time metav1.Time + + // String detailing the error encountered during Attach or Detach operation. + // This string maybe logged, so it should not contain sensitive + // information. + // +optional + Message string +} + +// VolumeBindingMode indicates how PersistentVolumeClaims should be bound. +type VolumeBindingMode string + +const ( + // VolumeBindingImmediate indicates that PersistentVolumeClaims should be + // immediately provisioned and bound. + VolumeBindingImmediate VolumeBindingMode = "Immediate" + + // VolumeBindingWaitForFirstConsumer indicates that PersistentVolumeClaims + // should not be provisioned and bound until the first Pod is created that + // references the PeristentVolumeClaim. The volume provisioning and + // binding will occur during Pod scheduing. + VolumeBindingWaitForFirstConsumer VolumeBindingMode = "WaitForFirstConsumer" +) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/util/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/storage/util/BUILD index 297c1df9b..490e83721 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/util/BUILD @@ -3,13 +3,22 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( name = "go_default_library", - srcs = ["helpers.go"], + srcs = [ + "helpers.go", + "util.go", + ], importpath = "k8s.io/kubernetes/pkg/apis/storage/util", - deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], + deps = [ + "//pkg/apis/storage:go_default_library", + "//pkg/features:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", + ], ) filegroup( @@ -24,3 +33,14 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = ["util_test.go"], + importpath = "k8s.io/kubernetes/pkg/apis/storage/util", + library = ":go_default_library", + deps = [ + "//pkg/apis/storage:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/util/util.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/util/util.go new file mode 100644 index 000000000..9d1340435 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/util/util.go @@ -0,0 +1,30 @@ +/* +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 util + +import ( + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/apis/storage" + "k8s.io/kubernetes/pkg/features" +) + +// DropDisabledAlphaFields removes disabled fields from the StorageClass object. +func DropDisabledAlphaFields(class *storage.StorageClass) { + if !utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) { + class.VolumeBindingMode = nil + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/util/util_test.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/util/util_test.go new file mode 100644 index 000000000..d75b24558 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/util/util_test.go @@ -0,0 +1,52 @@ +/* +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 util + +import ( + "testing" + + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/apis/storage" +) + +func TestDropAlphaFields(t *testing.T) { + bindingMode := storage.VolumeBindingWaitForFirstConsumer + + // Test that field gets dropped when feature gate is not set + class := &storage.StorageClass{ + VolumeBindingMode: &bindingMode, + } + DropDisabledAlphaFields(class) + if class.VolumeBindingMode != nil { + t.Errorf("VolumeBindingMode field didn't get dropped: %+v", class.VolumeBindingMode) + } + + // Test that field does not get dropped when feature gate is set + class = &storage.StorageClass{ + VolumeBindingMode: &bindingMode, + } + if err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=true"); err != nil { + t.Fatalf("Failed to set feature gate for VolumeScheduling: %v", err) + } + DropDisabledAlphaFields(class) + if class.VolumeBindingMode != &bindingMode { + t.Errorf("VolumeBindingMode field got unexpectantly modified: %+v", class.VolumeBindingMode) + } + if err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false"); err != nil { + t.Fatalf("Failed to disable feature gate for VolumeScheduling: %v", err) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/BUILD index f630ecc27..aeb7e17d2 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/BUILD @@ -3,6 +3,7 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( @@ -16,13 +17,15 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/storage/v1", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/storage:go_default_library", + "//pkg/features:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/storage/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", ], ) @@ -41,3 +44,16 @@ filegroup( ], tags = ["automanaged"], ) + +go_test( + name = "go_default_xtest", + srcs = ["defaults_test.go"], + importpath = "k8s.io/kubernetes/pkg/apis/storage/v1_test", + deps = [ + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/storage/install:go_default_library", + "//vendor/k8s.io/api/storage/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/defaults.go index 2e7c51c63..6f574f486 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/defaults.go @@ -20,6 +20,8 @@ import ( "k8s.io/api/core/v1" storagev1 "k8s.io/api/storage/v1" "k8s.io/apimachinery/pkg/runtime" + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/features" ) func addDefaultingFuncs(scheme *runtime.Scheme) error { @@ -31,4 +33,9 @@ func SetDefaults_StorageClass(obj *storagev1.StorageClass) { obj.ReclaimPolicy = new(v1.PersistentVolumeReclaimPolicy) *obj.ReclaimPolicy = v1.PersistentVolumeReclaimDelete } + + if obj.VolumeBindingMode == nil && utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) { + obj.VolumeBindingMode = new(storagev1.VolumeBindingMode) + *obj.VolumeBindingMode = storagev1.VolumeBindingImmediate + } } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/defaults_test.go new file mode 100644 index 000000000..4fb6304f7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/defaults_test.go @@ -0,0 +1,81 @@ +/* +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_test + +import ( + "reflect" + "testing" + + storagev1 "k8s.io/api/storage/v1" + "k8s.io/apimachinery/pkg/runtime" + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/storage/install" +) + +func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { + codec := legacyscheme.Codecs.LegacyCodec(storagev1.SchemeGroupVersion) + data, err := runtime.Encode(codec, obj) + if err != nil { + t.Errorf("%v\n %#v", err, obj) + return nil + } + obj2, err := runtime.Decode(codec, data) + if err != nil { + t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) + return nil + } + obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) + if err != nil { + t.Errorf("%v\nSource: %#v", err, obj2) + return nil + } + return obj3 +} + +func TestSetDefaultVolumeBindingMode(t *testing.T) { + class := &storagev1.StorageClass{} + + // When feature gate is disabled, field should not be defaulted + output := roundTrip(t, runtime.Object(class)).(*storagev1.StorageClass) + if output.VolumeBindingMode != nil { + t.Errorf("Expected VolumeBindingMode to not be defaulted, got: %+v", output.VolumeBindingMode) + } + + class = &storagev1.StorageClass{} + + err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=true") + if err != nil { + t.Fatalf("Failed to enable feature gate for VolumeScheduling: %v", err) + } + + // When feature gate is enabled, field should be defaulted + defaultMode := storagev1.VolumeBindingImmediate + output = roundTrip(t, runtime.Object(class)).(*storagev1.StorageClass) + outMode := output.VolumeBindingMode + if outMode == nil { + t.Errorf("Expected VolumeBindingMode to be defaulted to: %+v, got: nil", defaultMode) + } else if *outMode != defaultMode { + t.Errorf("Expected VolumeBindingMode to be defaulted to: %+v, got: %+v", defaultMode, outMode) + } + + err = utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false") + if err != nil { + t.Fatalf("Failed to disable feature gate for VolumeScheduling: %v", err) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/util/helpers.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/util/helpers.go index 62c27ccfc..d0d5ad7ba 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/util/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/util/helpers.go @@ -16,7 +16,9 @@ limitations under the License. package util -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) // IsDefaultStorageClassAnnotation represents a StorageClass annotation that // marks a class as the default StorageClass diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/zz_generated.conversion.go index 59594d265..1e63af36e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1/zz_generated.conversion.go @@ -25,7 +25,7 @@ import ( v1 "k8s.io/api/storage/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" storage "k8s.io/kubernetes/pkg/apis/storage" unsafe "unsafe" ) @@ -49,9 +49,10 @@ func autoConvert_v1_StorageClass_To_storage_StorageClass(in *v1.StorageClass, ou out.ObjectMeta = in.ObjectMeta out.Provisioner = in.Provisioner out.Parameters = *(*map[string]string)(unsafe.Pointer(&in.Parameters)) - out.ReclaimPolicy = (*api.PersistentVolumeReclaimPolicy)(unsafe.Pointer(in.ReclaimPolicy)) + out.ReclaimPolicy = (*core.PersistentVolumeReclaimPolicy)(unsafe.Pointer(in.ReclaimPolicy)) out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions)) out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion)) + out.VolumeBindingMode = (*storage.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode)) return nil } @@ -67,6 +68,7 @@ func autoConvert_storage_StorageClass_To_v1_StorageClass(in *storage.StorageClas out.ReclaimPolicy = (*core_v1.PersistentVolumeReclaimPolicy)(unsafe.Pointer(in.ReclaimPolicy)) out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions)) out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion)) + out.VolumeBindingMode = (*v1.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/BUILD new file mode 100644 index 000000000..6617d6a97 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "register.go", + "zz_generated.conversion.go", + "zz_generated.defaults.go", + ], + importpath = "k8s.io/kubernetes/pkg/apis/storage/v1alpha1", + visibility = ["//visibility:public"], + deps = [ + "//pkg/apis/storage:go_default_library", + "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion: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/kubernetes/pkg/apis/storage/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/doc.go new file mode 100644 index 000000000..5c1f6059d --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/doc.go @@ -0,0 +1,22 @@ +/* +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:conversion-gen=k8s.io/kubernetes/pkg/apis/storage +// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/storage/v1alpha1 +// +groupName=storage.k8s.io +// +k8s:defaulter-gen=TypeMeta +// +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/storage/v1alpha1 +package v1alpha1 // import "k8s.io/kubernetes/pkg/apis/storage/v1alpha1" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/register.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/register.go new file mode 100644 index 000000000..699fab12d --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/register.go @@ -0,0 +1,38 @@ +/* +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 v1alpha1 + +import ( + storagev1alpha1 "k8s.io/api/storage/v1alpha1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "storage.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + localSchemeBuilder = &storagev1alpha1.SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/zz_generated.conversion.go new file mode 100644 index 000000000..9bea7b3ad --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/zz_generated.conversion.go @@ -0,0 +1,202 @@ +// +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 conversion-gen. Do not edit it manually! + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/storage/v1alpha1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + storage "k8s.io/kubernetes/pkg/apis/storage" + unsafe "unsafe" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1alpha1_VolumeAttachment_To_storage_VolumeAttachment, + Convert_storage_VolumeAttachment_To_v1alpha1_VolumeAttachment, + Convert_v1alpha1_VolumeAttachmentList_To_storage_VolumeAttachmentList, + Convert_storage_VolumeAttachmentList_To_v1alpha1_VolumeAttachmentList, + Convert_v1alpha1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource, + Convert_storage_VolumeAttachmentSource_To_v1alpha1_VolumeAttachmentSource, + Convert_v1alpha1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec, + Convert_storage_VolumeAttachmentSpec_To_v1alpha1_VolumeAttachmentSpec, + Convert_v1alpha1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus, + Convert_storage_VolumeAttachmentStatus_To_v1alpha1_VolumeAttachmentStatus, + Convert_v1alpha1_VolumeError_To_storage_VolumeError, + Convert_storage_VolumeError_To_v1alpha1_VolumeError, + ) +} + +func autoConvert_v1alpha1_VolumeAttachment_To_storage_VolumeAttachment(in *v1alpha1.VolumeAttachment, out *storage.VolumeAttachment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1alpha1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha1_VolumeAttachment_To_storage_VolumeAttachment is an autogenerated conversion function. +func Convert_v1alpha1_VolumeAttachment_To_storage_VolumeAttachment(in *v1alpha1.VolumeAttachment, out *storage.VolumeAttachment, s conversion.Scope) error { + return autoConvert_v1alpha1_VolumeAttachment_To_storage_VolumeAttachment(in, out, s) +} + +func autoConvert_storage_VolumeAttachment_To_v1alpha1_VolumeAttachment(in *storage.VolumeAttachment, out *v1alpha1.VolumeAttachment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_storage_VolumeAttachmentSpec_To_v1alpha1_VolumeAttachmentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_storage_VolumeAttachmentStatus_To_v1alpha1_VolumeAttachmentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_storage_VolumeAttachment_To_v1alpha1_VolumeAttachment is an autogenerated conversion function. +func Convert_storage_VolumeAttachment_To_v1alpha1_VolumeAttachment(in *storage.VolumeAttachment, out *v1alpha1.VolumeAttachment, s conversion.Scope) error { + return autoConvert_storage_VolumeAttachment_To_v1alpha1_VolumeAttachment(in, out, s) +} + +func autoConvert_v1alpha1_VolumeAttachmentList_To_storage_VolumeAttachmentList(in *v1alpha1.VolumeAttachmentList, out *storage.VolumeAttachmentList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]storage.VolumeAttachment)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1alpha1_VolumeAttachmentList_To_storage_VolumeAttachmentList is an autogenerated conversion function. +func Convert_v1alpha1_VolumeAttachmentList_To_storage_VolumeAttachmentList(in *v1alpha1.VolumeAttachmentList, out *storage.VolumeAttachmentList, s conversion.Scope) error { + return autoConvert_v1alpha1_VolumeAttachmentList_To_storage_VolumeAttachmentList(in, out, s) +} + +func autoConvert_storage_VolumeAttachmentList_To_v1alpha1_VolumeAttachmentList(in *storage.VolumeAttachmentList, out *v1alpha1.VolumeAttachmentList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1alpha1.VolumeAttachment)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_storage_VolumeAttachmentList_To_v1alpha1_VolumeAttachmentList is an autogenerated conversion function. +func Convert_storage_VolumeAttachmentList_To_v1alpha1_VolumeAttachmentList(in *storage.VolumeAttachmentList, out *v1alpha1.VolumeAttachmentList, s conversion.Scope) error { + return autoConvert_storage_VolumeAttachmentList_To_v1alpha1_VolumeAttachmentList(in, out, s) +} + +func autoConvert_v1alpha1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource(in *v1alpha1.VolumeAttachmentSource, out *storage.VolumeAttachmentSource, s conversion.Scope) error { + out.PersistentVolumeName = (*string)(unsafe.Pointer(in.PersistentVolumeName)) + return nil +} + +// Convert_v1alpha1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource is an autogenerated conversion function. +func Convert_v1alpha1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource(in *v1alpha1.VolumeAttachmentSource, out *storage.VolumeAttachmentSource, s conversion.Scope) error { + return autoConvert_v1alpha1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource(in, out, s) +} + +func autoConvert_storage_VolumeAttachmentSource_To_v1alpha1_VolumeAttachmentSource(in *storage.VolumeAttachmentSource, out *v1alpha1.VolumeAttachmentSource, s conversion.Scope) error { + out.PersistentVolumeName = (*string)(unsafe.Pointer(in.PersistentVolumeName)) + return nil +} + +// Convert_storage_VolumeAttachmentSource_To_v1alpha1_VolumeAttachmentSource is an autogenerated conversion function. +func Convert_storage_VolumeAttachmentSource_To_v1alpha1_VolumeAttachmentSource(in *storage.VolumeAttachmentSource, out *v1alpha1.VolumeAttachmentSource, s conversion.Scope) error { + return autoConvert_storage_VolumeAttachmentSource_To_v1alpha1_VolumeAttachmentSource(in, out, s) +} + +func autoConvert_v1alpha1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(in *v1alpha1.VolumeAttachmentSpec, out *storage.VolumeAttachmentSpec, s conversion.Scope) error { + out.Attacher = in.Attacher + if err := Convert_v1alpha1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource(&in.Source, &out.Source, s); err != nil { + return err + } + out.NodeName = in.NodeName + return nil +} + +// Convert_v1alpha1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec is an autogenerated conversion function. +func Convert_v1alpha1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(in *v1alpha1.VolumeAttachmentSpec, out *storage.VolumeAttachmentSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(in, out, s) +} + +func autoConvert_storage_VolumeAttachmentSpec_To_v1alpha1_VolumeAttachmentSpec(in *storage.VolumeAttachmentSpec, out *v1alpha1.VolumeAttachmentSpec, s conversion.Scope) error { + out.Attacher = in.Attacher + if err := Convert_storage_VolumeAttachmentSource_To_v1alpha1_VolumeAttachmentSource(&in.Source, &out.Source, s); err != nil { + return err + } + out.NodeName = in.NodeName + return nil +} + +// Convert_storage_VolumeAttachmentSpec_To_v1alpha1_VolumeAttachmentSpec is an autogenerated conversion function. +func Convert_storage_VolumeAttachmentSpec_To_v1alpha1_VolumeAttachmentSpec(in *storage.VolumeAttachmentSpec, out *v1alpha1.VolumeAttachmentSpec, s conversion.Scope) error { + return autoConvert_storage_VolumeAttachmentSpec_To_v1alpha1_VolumeAttachmentSpec(in, out, s) +} + +func autoConvert_v1alpha1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus(in *v1alpha1.VolumeAttachmentStatus, out *storage.VolumeAttachmentStatus, s conversion.Scope) error { + out.Attached = in.Attached + out.AttachmentMetadata = *(*map[string]string)(unsafe.Pointer(&in.AttachmentMetadata)) + out.AttachError = (*storage.VolumeError)(unsafe.Pointer(in.AttachError)) + out.DetachError = (*storage.VolumeError)(unsafe.Pointer(in.DetachError)) + return nil +} + +// Convert_v1alpha1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus is an autogenerated conversion function. +func Convert_v1alpha1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus(in *v1alpha1.VolumeAttachmentStatus, out *storage.VolumeAttachmentStatus, s conversion.Scope) error { + return autoConvert_v1alpha1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus(in, out, s) +} + +func autoConvert_storage_VolumeAttachmentStatus_To_v1alpha1_VolumeAttachmentStatus(in *storage.VolumeAttachmentStatus, out *v1alpha1.VolumeAttachmentStatus, s conversion.Scope) error { + out.Attached = in.Attached + out.AttachmentMetadata = *(*map[string]string)(unsafe.Pointer(&in.AttachmentMetadata)) + out.AttachError = (*v1alpha1.VolumeError)(unsafe.Pointer(in.AttachError)) + out.DetachError = (*v1alpha1.VolumeError)(unsafe.Pointer(in.DetachError)) + return nil +} + +// Convert_storage_VolumeAttachmentStatus_To_v1alpha1_VolumeAttachmentStatus is an autogenerated conversion function. +func Convert_storage_VolumeAttachmentStatus_To_v1alpha1_VolumeAttachmentStatus(in *storage.VolumeAttachmentStatus, out *v1alpha1.VolumeAttachmentStatus, s conversion.Scope) error { + return autoConvert_storage_VolumeAttachmentStatus_To_v1alpha1_VolumeAttachmentStatus(in, out, s) +} + +func autoConvert_v1alpha1_VolumeError_To_storage_VolumeError(in *v1alpha1.VolumeError, out *storage.VolumeError, s conversion.Scope) error { + out.Time = in.Time + out.Message = in.Message + return nil +} + +// Convert_v1alpha1_VolumeError_To_storage_VolumeError is an autogenerated conversion function. +func Convert_v1alpha1_VolumeError_To_storage_VolumeError(in *v1alpha1.VolumeError, out *storage.VolumeError, s conversion.Scope) error { + return autoConvert_v1alpha1_VolumeError_To_storage_VolumeError(in, out, s) +} + +func autoConvert_storage_VolumeError_To_v1alpha1_VolumeError(in *storage.VolumeError, out *v1alpha1.VolumeError, s conversion.Scope) error { + out.Time = in.Time + out.Message = in.Message + return nil +} + +// Convert_storage_VolumeError_To_v1alpha1_VolumeError is an autogenerated conversion function. +func Convert_storage_VolumeError_To_v1alpha1_VolumeError(in *storage.VolumeError, out *v1alpha1.VolumeError, s conversion.Scope) error { + return autoConvert_storage_VolumeError_To_v1alpha1_VolumeError(in, out, s) +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/zz_generated.defaults.go new file mode 100644 index 000000000..7e6df29d4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1alpha1/zz_generated.defaults.go @@ -0,0 +1,32 @@ +// +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 defaulter-gen. Do not edit it manually! + +package v1alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/BUILD index 247f4ff04..368302812 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/BUILD @@ -3,6 +3,7 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( @@ -16,13 +17,15 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/apis/storage/v1beta1", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/storage:go_default_library", + "//pkg/features:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/storage/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", ], ) @@ -41,3 +44,16 @@ filegroup( ], tags = ["automanaged"], ) + +go_test( + name = "go_default_xtest", + srcs = ["defaults_test.go"], + importpath = "k8s.io/kubernetes/pkg/apis/storage/v1beta1_test", + deps = [ + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/storage/install:go_default_library", + "//vendor/k8s.io/api/storage/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/defaults.go index e50599bf2..97dbff2f3 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/defaults.go @@ -20,6 +20,8 @@ import ( "k8s.io/api/core/v1" storagev1beta1 "k8s.io/api/storage/v1beta1" "k8s.io/apimachinery/pkg/runtime" + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/features" ) func addDefaultingFuncs(scheme *runtime.Scheme) error { @@ -31,4 +33,9 @@ func SetDefaults_StorageClass(obj *storagev1beta1.StorageClass) { obj.ReclaimPolicy = new(v1.PersistentVolumeReclaimPolicy) *obj.ReclaimPolicy = v1.PersistentVolumeReclaimDelete } + + if obj.VolumeBindingMode == nil && utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) { + obj.VolumeBindingMode = new(storagev1beta1.VolumeBindingMode) + *obj.VolumeBindingMode = storagev1beta1.VolumeBindingImmediate + } } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/defaults_test.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/defaults_test.go new file mode 100644 index 000000000..34aff74b8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/defaults_test.go @@ -0,0 +1,81 @@ +/* +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_test + +import ( + "reflect" + "testing" + + storagev1beta1 "k8s.io/api/storage/v1beta1" + "k8s.io/apimachinery/pkg/runtime" + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/storage/install" +) + +func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { + codec := legacyscheme.Codecs.LegacyCodec(storagev1beta1.SchemeGroupVersion) + data, err := runtime.Encode(codec, obj) + if err != nil { + t.Errorf("%v\n %#v", err, obj) + return nil + } + obj2, err := runtime.Decode(codec, data) + if err != nil { + t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) + return nil + } + obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) + err = legacyscheme.Scheme.Convert(obj2, obj3, nil) + if err != nil { + t.Errorf("%v\nSource: %#v", err, obj2) + return nil + } + return obj3 +} + +func TestSetDefaultVolumeBindingMode(t *testing.T) { + class := &storagev1beta1.StorageClass{} + + // When feature gate is disabled, field should not be defaulted + output := roundTrip(t, runtime.Object(class)).(*storagev1beta1.StorageClass) + if output.VolumeBindingMode != nil { + t.Errorf("Expected VolumeBindingMode to not be defaulted, got: %+v", output.VolumeBindingMode) + } + + class = &storagev1beta1.StorageClass{} + + err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=true") + if err != nil { + t.Fatalf("Failed to enable feature gate for VolumeScheduling: %v", err) + } + + // When feature gate is enabled, field should be defaulted + defaultMode := storagev1beta1.VolumeBindingImmediate + output = roundTrip(t, runtime.Object(class)).(*storagev1beta1.StorageClass) + outMode := output.VolumeBindingMode + if outMode == nil { + t.Errorf("Expected VolumeBindingMode to be defaulted to: %+v, got: nil", defaultMode) + } else if *outMode != defaultMode { + t.Errorf("Expected VolumeBindingMode to be defaulted to: %+v, got: %+v", defaultMode, outMode) + } + + err = utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false") + if err != nil { + t.Fatalf("Failed to disable feature gate for VolumeScheduling: %v", err) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/zz_generated.conversion.go index d340530ab..9637b2ea4 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/v1beta1/zz_generated.conversion.go @@ -25,7 +25,7 @@ import ( v1beta1 "k8s.io/api/storage/v1beta1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" storage "k8s.io/kubernetes/pkg/apis/storage" unsafe "unsafe" ) @@ -49,9 +49,10 @@ func autoConvert_v1beta1_StorageClass_To_storage_StorageClass(in *v1beta1.Storag out.ObjectMeta = in.ObjectMeta out.Provisioner = in.Provisioner out.Parameters = *(*map[string]string)(unsafe.Pointer(&in.Parameters)) - out.ReclaimPolicy = (*api.PersistentVolumeReclaimPolicy)(unsafe.Pointer(in.ReclaimPolicy)) + out.ReclaimPolicy = (*core.PersistentVolumeReclaimPolicy)(unsafe.Pointer(in.ReclaimPolicy)) out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions)) out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion)) + out.VolumeBindingMode = (*storage.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode)) return nil } @@ -67,6 +68,7 @@ func autoConvert_storage_StorageClass_To_v1beta1_StorageClass(in *storage.Storag out.ReclaimPolicy = (*v1.PersistentVolumeReclaimPolicy)(unsafe.Pointer(in.ReclaimPolicy)) out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions)) out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion)) + out.VolumeBindingMode = (*v1beta1.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode)) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/BUILD index c637aa9c5..e80f7838d 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/BUILD @@ -11,10 +11,11 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/apis/storage/validation", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/storage:go_default_library", "//pkg/features:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", @@ -28,7 +29,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/apis/storage/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/storage:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/validation.go index 38b791516..e9f66e938 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/validation.go @@ -20,16 +20,25 @@ import ( "reflect" "strings" + apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" - apivalidation "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/apis/storage" "k8s.io/kubernetes/pkg/features" ) +const ( + maxProvisionerParameterSize = 256 * (1 << 10) // 256 kB + maxProvisionerParameterLen = 512 + + maxAttachedVolumeMetadataSize = 256 * (1 << 10) // 256 kB + maxVolumeErrorMessageSize = 1024 +) + // ValidateStorageClass validates a StorageClass. func ValidateStorageClass(storageClass *storage.StorageClass) field.ErrorList { allErrs := apivalidation.ValidateObjectMeta(&storageClass.ObjectMeta, false, apivalidation.ValidateClassName, field.NewPath("metadata")) @@ -37,6 +46,7 @@ func ValidateStorageClass(storageClass *storage.StorageClass) field.ErrorList { allErrs = append(allErrs, validateParameters(storageClass.Parameters, field.NewPath("parameters"))...) allErrs = append(allErrs, validateReclaimPolicy(storageClass.ReclaimPolicy, field.NewPath("reclaimPolicy"))...) allErrs = append(allErrs, validateAllowVolumeExpansion(storageClass.AllowVolumeExpansion, field.NewPath("allowVolumeExpansion"))...) + allErrs = append(allErrs, validateVolumeBindingMode(storageClass.VolumeBindingMode, field.NewPath("volumeBindingMode"))...) return allErrs } @@ -55,6 +65,8 @@ func ValidateStorageClassUpdate(storageClass, oldStorageClass *storage.StorageCl if *storageClass.ReclaimPolicy != *oldStorageClass.ReclaimPolicy { allErrs = append(allErrs, field.Forbidden(field.NewPath("reclaimPolicy"), "updates to reclaimPolicy are forbidden.")) } + + allErrs = append(allErrs, apivalidation.ValidateImmutableField(storageClass.VolumeBindingMode, oldStorageClass.VolumeBindingMode, field.NewPath("volumeBindingMode"))...) return allErrs } @@ -72,9 +84,6 @@ func validateProvisioner(provisioner string, fldPath *field.Path) field.ErrorLis return allErrs } -const maxProvisionerParameterSize = 256 * (1 << 10) // 256 kB -const maxProvisionerParameterLen = 512 - // validateParameters tests that keys are qualified names and that provisionerParameter are < 256kB. func validateParameters(params map[string]string, fldPath *field.Path) field.ErrorList { var totalSize int64 @@ -121,3 +130,112 @@ func validateAllowVolumeExpansion(allowExpand *bool, fldPath *field.Path) field. } return allErrs } + +// ValidateVolumeAttachment validates a VolumeAttachment. +func ValidateVolumeAttachment(volumeAttachment *storage.VolumeAttachment) field.ErrorList { + allErrs := apivalidation.ValidateObjectMeta(&volumeAttachment.ObjectMeta, false, apivalidation.ValidateClassName, field.NewPath("metadata")) + allErrs = append(allErrs, validateVolumeAttachmentSpec(&volumeAttachment.Spec, field.NewPath("spec"))...) + allErrs = append(allErrs, validateVolumeAttachmentStatus(&volumeAttachment.Status, field.NewPath("status"))...) + return allErrs +} + +// ValidateVolumeAttachmentSpec tests that the specified VolumeAttachmentSpec +// has valid data. +func validateVolumeAttachmentSpec( + spec *storage.VolumeAttachmentSpec, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + allErrs = append(allErrs, validateAttacher(spec.Attacher, fldPath.Child("attacher"))...) + allErrs = append(allErrs, validateVolumeAttachmentSource(&spec.Source, fldPath.Child("source"))...) + allErrs = append(allErrs, validateNodeName(spec.NodeName, fldPath.Child("nodeName"))...) + return allErrs +} + +// validateAttacher tests if attacher is a valid qualified name. +func validateAttacher(attacher string, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + if len(attacher) == 0 { + allErrs = append(allErrs, field.Required(fldPath, attacher)) + } + return allErrs +} + +// validateSource tests if the source is valid for VolumeAttachment. +func validateVolumeAttachmentSource(source *storage.VolumeAttachmentSource, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + if source.PersistentVolumeName == nil || len(*source.PersistentVolumeName) == 0 { + allErrs = append(allErrs, field.Required(fldPath, "")) + } + return allErrs +} + +// validateNodeName tests if the nodeName is valid for VolumeAttachment. +func validateNodeName(nodeName string, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + for _, msg := range apivalidation.ValidateNodeName(nodeName, false /* prefix */) { + allErrs = append(allErrs, field.Invalid(fldPath, nodeName, msg)) + } + return allErrs +} + +// validaVolumeAttachmentStatus tests if volumeAttachmentStatus is valid. +func validateVolumeAttachmentStatus(status *storage.VolumeAttachmentStatus, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + allErrs = append(allErrs, validateAttachmentMetadata(status.AttachmentMetadata, fldPath.Child("attachmentMetadata"))...) + allErrs = append(allErrs, validateVolumeError(status.AttachError, fldPath.Child("attachError"))...) + allErrs = append(allErrs, validateVolumeError(status.DetachError, fldPath.Child("detachError"))...) + return allErrs +} + +func validateAttachmentMetadata(metadata map[string]string, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + + var size int64 + for k, v := range metadata { + size += (int64)(len(k)) + (int64)(len(v)) + } + if size > maxAttachedVolumeMetadataSize { + allErrs = append(allErrs, field.TooLong(fldPath, metadata, maxAttachedVolumeMetadataSize)) + } + return allErrs +} + +func validateVolumeError(e *storage.VolumeError, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + + if e == nil { + return allErrs + } + if len(e.Message) > maxVolumeErrorMessageSize { + allErrs = append(allErrs, field.TooLong(fldPath.Child("message"), e.Message, maxAttachedVolumeMetadataSize)) + } + return allErrs +} + +// ValidateVolumeAttachmentUpdate validates a VolumeAttachment. +func ValidateVolumeAttachmentUpdate(new, old *storage.VolumeAttachment) field.ErrorList { + allErrs := ValidateVolumeAttachment(new) + + // Spec is read-only + if !apiequality.Semantic.DeepEqual(old.Spec, new.Spec) { + allErrs = append(allErrs, field.Invalid(field.NewPath("spec"), new.Spec, "field is immutable")) + } + return allErrs +} + +var supportedVolumeBindingModes = sets.NewString(string(storage.VolumeBindingImmediate), string(storage.VolumeBindingWaitForFirstConsumer)) + +// validateVolumeBindingMode tests that VolumeBindingMode specifies valid values. +func validateVolumeBindingMode(mode *storage.VolumeBindingMode, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + if utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) { + if mode == nil { + allErrs = append(allErrs, field.Required(fldPath, "")) + } else if !supportedVolumeBindingModes.Has(string(*mode)) { + allErrs = append(allErrs, field.NotSupported(fldPath, mode, supportedVolumeBindingModes.List())) + } + } else if mode != nil { + allErrs = append(allErrs, field.Forbidden(fldPath, "field is disabled by feature-gate VolumeScheduling")) + } + + return allErrs +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/validation_test.go index 8e8e9f499..2cb0a61a4 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/validation/validation_test.go @@ -18,14 +18,23 @@ package validation import ( "fmt" + "strings" "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/storage" ) +var ( + deleteReclaimPolicy = api.PersistentVolumeReclaimDelete + immediateMode1 = storage.VolumeBindingImmediate + immediateMode2 = storage.VolumeBindingImmediate + waitingMode = storage.VolumeBindingWaitForFirstConsumer + invalidMode = storage.VolumeBindingMode("foo") +) + func TestValidateStorageClass(t *testing.T) { deleteReclaimPolicy := api.PersistentVolumeReclaimPolicy("Delete") retainReclaimPolicy := api.PersistentVolumeReclaimPolicy("Retain") @@ -157,3 +166,419 @@ func TestAlphaExpandPersistentVolumesFeatureValidation(t *testing.T) { } } + +func TestVolumeAttachmentValidation(t *testing.T) { + volumeName := "pv-name" + empty := "" + successCases := []storage.VolumeAttachment{ + { + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + NodeName: "mynode", + }, + }, + { + ObjectMeta: metav1.ObjectMeta{Name: "foo-with-status"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + NodeName: "mynode", + }, + Status: storage.VolumeAttachmentStatus{ + Attached: true, + AttachmentMetadata: map[string]string{ + "foo": "bar", + }, + AttachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: "hello world", + }, + DetachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: "hello world", + }, + }, + }, + } + + for _, volumeAttachment := range successCases { + if errs := ValidateVolumeAttachment(&volumeAttachment); len(errs) != 0 { + t.Errorf("expected success: %v", errs) + } + } + errorCases := []storage.VolumeAttachment{ + { + // Empty attacher name + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "", + NodeName: "mynode", + }, + }, + { + // Invalid attacher name + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "invalid!@#$%^&*()", + NodeName: "mynode", + }, + }, + { + // Empty node name + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + NodeName: "", + }, + }, + { + // No volume name + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + NodeName: "node", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: nil, + }, + }, + }, + { + // Empty volume name + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + NodeName: "node", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &empty, + }, + }, + }, + { + // Too long error message + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + NodeName: "node", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + }, + Status: storage.VolumeAttachmentStatus{ + Attached: true, + AttachmentMetadata: map[string]string{ + "foo": "bar", + }, + AttachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: "hello world", + }, + DetachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: strings.Repeat("a", maxVolumeErrorMessageSize+1), + }, + }, + }, + { + // Too long metadata + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + NodeName: "node", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + }, + Status: storage.VolumeAttachmentStatus{ + Attached: true, + AttachmentMetadata: map[string]string{ + "foo": strings.Repeat("a", maxAttachedVolumeMetadataSize), + }, + AttachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: "hello world", + }, + DetachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: "hello world", + }, + }, + }, + } + + for _, volumeAttachment := range errorCases { + if errs := ValidateVolumeAttachment(&volumeAttachment); len(errs) == 0 { + t.Errorf("Expected failure for test: %v", volumeAttachment) + } + } +} + +func TestVolumeAttachmentUpdateValidation(t *testing.T) { + volumeName := "foo" + newVolumeName := "bar" + + old := storage.VolumeAttachment{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + NodeName: "mynode", + }, + } + successCases := []storage.VolumeAttachment{ + { + // no change + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + NodeName: "mynode", + }, + }, + { + // modify status + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + NodeName: "mynode", + }, + Status: storage.VolumeAttachmentStatus{ + Attached: true, + AttachmentMetadata: map[string]string{ + "foo": "bar", + }, + AttachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: "hello world", + }, + DetachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: "hello world", + }, + }, + }, + } + + for _, volumeAttachment := range successCases { + if errs := ValidateVolumeAttachmentUpdate(&volumeAttachment, &old); len(errs) != 0 { + t.Errorf("expected success: %v", errs) + } + } + + errorCases := []storage.VolumeAttachment{ + { + // change attacher + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "another-attacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + NodeName: "mynode", + }, + }, + { + // change volume + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &newVolumeName, + }, + NodeName: "mynode", + }, + }, + { + // change node + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + NodeName: "anothernode", + }, + }, + { + // add invalid status + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "myattacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &volumeName, + }, + NodeName: "mynode", + }, + Status: storage.VolumeAttachmentStatus{ + Attached: true, + AttachmentMetadata: map[string]string{ + "foo": "bar", + }, + AttachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: strings.Repeat("a", maxAttachedVolumeMetadataSize), + }, + DetachError: &storage.VolumeError{ + Time: metav1.Time{}, + Message: "hello world", + }, + }, + }, + } + + for _, volumeAttachment := range errorCases { + if errs := ValidateVolumeAttachmentUpdate(&volumeAttachment, &old); len(errs) == 0 { + t.Errorf("Expected failure for test: %v", volumeAttachment) + } + } +} + +func makeClassWithBinding(mode *storage.VolumeBindingMode) *storage.StorageClass { + return &storage.StorageClass{ + ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "foo"}, + Provisioner: "kubernetes.io/foo-provisioner", + ReclaimPolicy: &deleteReclaimPolicy, + VolumeBindingMode: mode, + } +} + +// TODO: Remove these tests once feature gate is not required +func TestValidateVolumeBindingModeAlphaDisabled(t *testing.T) { + errorCases := map[string]*storage.StorageClass{ + "immediate mode": makeClassWithBinding(&immediateMode1), + "waiting mode": makeClassWithBinding(&waitingMode), + "invalid mode": makeClassWithBinding(&invalidMode), + } + + for testName, storageClass := range errorCases { + if errs := ValidateStorageClass(storageClass); len(errs) == 0 { + t.Errorf("Expected failure for test: %v", testName) + } + } +} + +type bindingTest struct { + class *storage.StorageClass + shouldSucceed bool +} + +func TestValidateVolumeBindingMode(t *testing.T) { + cases := map[string]bindingTest{ + "no mode": { + class: makeClassWithBinding(nil), + shouldSucceed: false, + }, + "immediate mode": { + class: makeClassWithBinding(&immediateMode1), + shouldSucceed: true, + }, + "waiting mode": { + class: makeClassWithBinding(&waitingMode), + shouldSucceed: true, + }, + "invalid mode": { + class: makeClassWithBinding(&invalidMode), + shouldSucceed: false, + }, + } + + // TODO: remove when feature gate not required + err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=true") + if err != nil { + t.Fatalf("Failed to enable feature gate for VolumeScheduling: %v", err) + } + + for testName, testCase := range cases { + errs := ValidateStorageClass(testCase.class) + if testCase.shouldSucceed && len(errs) != 0 { + t.Errorf("Expected success for test %q, got %v", testName, errs) + } + if !testCase.shouldSucceed && len(errs) == 0 { + t.Errorf("Expected failure for test %q, got success", testName) + } + } + + err = utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false") + if err != nil { + t.Fatalf("Failed to disable feature gate for VolumeScheduling: %v", err) + } +} + +type updateTest struct { + oldClass *storage.StorageClass + newClass *storage.StorageClass + shouldSucceed bool +} + +func TestValidateUpdateVolumeBindingMode(t *testing.T) { + noBinding := makeClassWithBinding(nil) + immediateBinding1 := makeClassWithBinding(&immediateMode1) + immediateBinding2 := makeClassWithBinding(&immediateMode2) + waitBinding := makeClassWithBinding(&waitingMode) + + cases := map[string]updateTest{ + "old and new no mode": { + oldClass: noBinding, + newClass: noBinding, + shouldSucceed: true, + }, + "old and new same mode ptr": { + oldClass: immediateBinding1, + newClass: immediateBinding1, + shouldSucceed: true, + }, + "old and new same mode value": { + oldClass: immediateBinding1, + newClass: immediateBinding2, + shouldSucceed: true, + }, + "old no mode, new mode": { + oldClass: noBinding, + newClass: waitBinding, + shouldSucceed: false, + }, + "old mode, new no mode": { + oldClass: waitBinding, + newClass: noBinding, + shouldSucceed: false, + }, + "old and new different modes": { + oldClass: waitBinding, + newClass: immediateBinding1, + shouldSucceed: false, + }, + } + + // TODO: remove when feature gate not required + err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=true") + if err != nil { + t.Fatalf("Failed to enable feature gate for VolumeScheduling: %v", err) + } + + for testName, testCase := range cases { + errs := ValidateStorageClassUpdate(testCase.newClass, testCase.oldClass) + if testCase.shouldSucceed && len(errs) != 0 { + t.Errorf("Expected success for %v, got %v", testName, errs) + } + if !testCase.shouldSucceed && len(errs) == 0 { + t.Errorf("Expected failure for %v, got success", testName) + } + } + + err = utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false") + if err != nil { + t.Fatalf("Failed to disable feature gate for VolumeScheduling: %v", err) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/storage/zz_generated.deepcopy.go index b6564ce03..287623fd4 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/storage/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/zz_generated.deepcopy.go @@ -21,33 +21,10 @@ limitations under the License. package storage import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - reflect "reflect" + core "k8s.io/kubernetes/pkg/apis/core" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageClass).DeepCopyInto(out.(*StorageClass)) - return nil - }, InType: reflect.TypeOf(&StorageClass{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageClassList).DeepCopyInto(out.(*StorageClassList)) - return nil - }, InType: reflect.TypeOf(&StorageClassList{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *StorageClass) DeepCopyInto(out *StorageClass) { *out = *in @@ -65,7 +42,7 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { if *in == nil { *out = nil } else { - *out = new(api.PersistentVolumeReclaimPolicy) + *out = new(core.PersistentVolumeReclaimPolicy) **out = **in } } @@ -83,6 +60,15 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { **out = **in } } + if in.VolumeBindingMode != nil { + in, out := &in.VolumeBindingMode, &out.VolumeBindingMode + if *in == nil { + *out = nil + } else { + *out = new(VolumeBindingMode) + **out = **in + } + } return } @@ -138,3 +124,166 @@ func (in *StorageClassList) DeepCopyObject() runtime.Object { return nil } } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment. +func (in *VolumeAttachment) DeepCopy() *VolumeAttachment { + if in == nil { + return nil + } + out := new(VolumeAttachment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeAttachment) 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 *VolumeAttachmentList) DeepCopyInto(out *VolumeAttachmentList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VolumeAttachment, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentList. +func (in *VolumeAttachmentList) DeepCopy() *VolumeAttachmentList { + if in == nil { + return nil + } + out := new(VolumeAttachmentList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeAttachmentList) 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 *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) { + *out = *in + if in.PersistentVolumeName != nil { + in, out := &in.PersistentVolumeName, &out.PersistentVolumeName + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSource. +func (in *VolumeAttachmentSource) DeepCopy() *VolumeAttachmentSource { + if in == nil { + return nil + } + out := new(VolumeAttachmentSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachmentSpec) DeepCopyInto(out *VolumeAttachmentSpec) { + *out = *in + in.Source.DeepCopyInto(&out.Source) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSpec. +func (in *VolumeAttachmentSpec) DeepCopy() *VolumeAttachmentSpec { + if in == nil { + return nil + } + out := new(VolumeAttachmentSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) { + *out = *in + if in.AttachmentMetadata != nil { + in, out := &in.AttachmentMetadata, &out.AttachmentMetadata + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.AttachError != nil { + in, out := &in.AttachError, &out.AttachError + if *in == nil { + *out = nil + } else { + *out = new(VolumeError) + (*in).DeepCopyInto(*out) + } + } + if in.DetachError != nil { + in, out := &in.DetachError, &out.DetachError + if *in == nil { + *out = nil + } else { + *out = new(VolumeError) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus. +func (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus { + if in == nil { + return nil + } + out := new(VolumeAttachmentStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeError) DeepCopyInto(out *VolumeError) { + *out = *in + in.Time.DeepCopyInto(&out.Time) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError. +func (in *VolumeError) DeepCopy() *VolumeError { + if in == nil { + return nil + } + out := new(VolumeError) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/pkg/auth/authorizer/abac/abac.go b/vendor/k8s.io/kubernetes/pkg/auth/authorizer/abac/abac.go index 5e56c19ba..f3132740d 100644 --- a/vendor/k8s.io/kubernetes/pkg/auth/authorizer/abac/abac.go +++ b/vendor/k8s.io/kubernetes/pkg/auth/authorizer/abac/abac.go @@ -30,7 +30,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" - api "k8s.io/kubernetes/pkg/apis/abac" + "k8s.io/kubernetes/pkg/apis/abac" _ "k8s.io/kubernetes/pkg/apis/abac/latest" "k8s.io/kubernetes/pkg/apis/abac/v0" ) @@ -49,7 +49,7 @@ func (p policyLoadError) Error() string { return fmt.Sprintf("error reading policy file %s: %v", p.path, p.err) } -type policyList []*api.Policy +type policyList []*abac.Policy // TODO: Have policies be created via an API call and stored in REST storage. func NewFromFile(path string) (policyList, error) { @@ -64,13 +64,13 @@ func NewFromFile(path string) (policyList, error) { scanner := bufio.NewScanner(file) pl := make(policyList, 0) - decoder := api.Codecs.UniversalDecoder() + decoder := abac.Codecs.UniversalDecoder() i := 0 unversionedLines := 0 for scanner.Scan() { i++ - p := &api.Policy{} + p := &abac.Policy{} b := scanner.Bytes() // skip comment lines and blank lines @@ -90,14 +90,14 @@ func NewFromFile(path string) (policyList, error) { if err := runtime.DecodeInto(decoder, b, oldPolicy); err != nil { return nil, policyLoadError{path, i, b, err} } - if err := api.Scheme.Convert(oldPolicy, p, nil); err != nil { + if err := abac.Scheme.Convert(oldPolicy, p, nil); err != nil { return nil, policyLoadError{path, i, b, err} } pl = append(pl, p) continue } - decodedPolicy, ok := decodedObj.(*api.Policy) + decodedPolicy, ok := decodedObj.(*abac.Policy) if !ok { return nil, policyLoadError{path, i, b, fmt.Errorf("unrecognized object: %#v", decodedObj)} } @@ -114,7 +114,7 @@ func NewFromFile(path string) (policyList, error) { return pl, nil } -func matches(p api.Policy, a authorizer.Attributes) bool { +func matches(p abac.Policy, a authorizer.Attributes) bool { if subjectMatches(p, a.GetUser()) { if verbMatches(p, a) { // Resource and non-resource requests are mutually exclusive, at most one will match a policy @@ -130,7 +130,7 @@ func matches(p api.Policy, a authorizer.Attributes) bool { } // subjectMatches returns true if specified user and group properties in the policy match the attributes -func subjectMatches(p api.Policy, user user.Info) bool { +func subjectMatches(p abac.Policy, user user.Info) bool { matched := false if user == nil { @@ -171,7 +171,7 @@ func subjectMatches(p api.Policy, user user.Info) bool { return matched } -func verbMatches(p api.Policy, a authorizer.Attributes) bool { +func verbMatches(p abac.Policy, a authorizer.Attributes) bool { // TODO: match on verb // All policies allow read only requests @@ -187,7 +187,7 @@ func verbMatches(p api.Policy, a authorizer.Attributes) bool { return false } -func nonResourceMatches(p api.Policy, a authorizer.Attributes) bool { +func nonResourceMatches(p abac.Policy, a authorizer.Attributes) bool { // A non-resource policy cannot match a resource request if !a.IsResourceRequest() { // Allow wildcard match @@ -206,7 +206,7 @@ func nonResourceMatches(p api.Policy, a authorizer.Attributes) bool { return false } -func resourceMatches(p api.Policy, a authorizer.Attributes) bool { +func resourceMatches(p abac.Policy, a authorizer.Attributes) bool { // A resource policy cannot match a non-resource request if a.IsResourceRequest() { if p.Spec.Namespace == "*" || p.Spec.Namespace == a.GetNamespace() { @@ -221,13 +221,13 @@ func resourceMatches(p api.Policy, a authorizer.Attributes) bool { } // Authorizer implements authorizer.Authorize -func (pl policyList) Authorize(a authorizer.Attributes) (bool, string, error) { +func (pl policyList) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) { for _, p := range pl { if matches(*p, a) { - return true, "", nil + return authorizer.DecisionAllow, "", nil } } - return false, "No policy matched.", nil + return authorizer.DecisionNoOpinion, "No policy matched.", nil // TODO: Benchmark how much time policy matching takes with a medium size // policy file, compared to other steps such as encoding/decoding. // Then, add Caching only if needed. diff --git a/vendor/k8s.io/kubernetes/pkg/auth/authorizer/abac/abac_test.go b/vendor/k8s.io/kubernetes/pkg/auth/authorizer/abac/abac_test.go index b8df86bb8..6d7323992 100644 --- a/vendor/k8s.io/kubernetes/pkg/auth/authorizer/abac/abac_test.go +++ b/vendor/k8s.io/kubernetes/pkg/auth/authorizer/abac/abac_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" - api "k8s.io/kubernetes/pkg/apis/abac" + "k8s.io/kubernetes/pkg/apis/abac" "k8s.io/kubernetes/pkg/apis/abac/v0" "k8s.io/kubernetes/pkg/apis/abac/v1beta1" ) @@ -81,46 +81,46 @@ func TestAuthorizeV0(t *testing.T) { uChuck := user.DefaultInfo{Name: "chuck", UID: "uid5", Groups: authenticatedGroup} testCases := []struct { - User user.DefaultInfo - Verb string - Resource string - NS string - APIGroup string - Path string - ExpectAllow bool + User user.DefaultInfo + Verb string + Resource string + NS string + APIGroup string + Path string + ExpectDecision authorizer.Decision }{ // Scheduler can read pods - {User: uScheduler, Verb: "list", Resource: "pods", NS: "ns1", ExpectAllow: true}, - {User: uScheduler, Verb: "list", Resource: "pods", NS: "", ExpectAllow: true}, + {User: uScheduler, Verb: "list", Resource: "pods", NS: "ns1", ExpectDecision: authorizer.DecisionAllow}, + {User: uScheduler, Verb: "list", Resource: "pods", NS: "", ExpectDecision: authorizer.DecisionAllow}, // Scheduler cannot write pods - {User: uScheduler, Verb: "create", Resource: "pods", NS: "ns1", ExpectAllow: false}, - {User: uScheduler, Verb: "create", Resource: "pods", NS: "", ExpectAllow: false}, + {User: uScheduler, Verb: "create", Resource: "pods", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uScheduler, Verb: "create", Resource: "pods", NS: "", ExpectDecision: authorizer.DecisionNoOpinion}, // Scheduler can write bindings - {User: uScheduler, Verb: "get", Resource: "bindings", NS: "ns1", ExpectAllow: true}, - {User: uScheduler, Verb: "get", Resource: "bindings", NS: "", ExpectAllow: true}, + {User: uScheduler, Verb: "get", Resource: "bindings", NS: "ns1", ExpectDecision: authorizer.DecisionAllow}, + {User: uScheduler, Verb: "get", Resource: "bindings", NS: "", ExpectDecision: authorizer.DecisionAllow}, // Alice can read and write anything in the right namespace. - {User: uAlice, Verb: "get", Resource: "pods", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "get", Resource: "widgets", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "get", Resource: "", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "update", Resource: "pods", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "update", Resource: "widgets", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "update", Resource: "", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "update", Resource: "foo", NS: "projectCaribou", APIGroup: "bar", ExpectAllow: true}, + {User: uAlice, Verb: "get", Resource: "pods", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "get", Resource: "widgets", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "get", Resource: "", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "update", Resource: "pods", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "update", Resource: "widgets", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "update", Resource: "", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "update", Resource: "foo", NS: "projectCaribou", APIGroup: "bar", ExpectDecision: authorizer.DecisionAllow}, // .. but not the wrong namespace. - {User: uAlice, Verb: "get", Resource: "pods", NS: "ns1", ExpectAllow: false}, - {User: uAlice, Verb: "get", Resource: "widgets", NS: "ns1", ExpectAllow: false}, - {User: uAlice, Verb: "get", Resource: "", NS: "ns1", ExpectAllow: false}, + {User: uAlice, Verb: "get", Resource: "pods", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uAlice, Verb: "get", Resource: "widgets", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uAlice, Verb: "get", Resource: "", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, // Chuck can read events, since anyone can. - {User: uChuck, Verb: "get", Resource: "events", NS: "ns1", ExpectAllow: true}, - {User: uChuck, Verb: "get", Resource: "events", NS: "", ExpectAllow: true}, + {User: uChuck, Verb: "get", Resource: "events", NS: "ns1", ExpectDecision: authorizer.DecisionAllow}, + {User: uChuck, Verb: "get", Resource: "events", NS: "", ExpectDecision: authorizer.DecisionAllow}, // Chuck can't do other things. - {User: uChuck, Verb: "update", Resource: "events", NS: "ns1", ExpectAllow: false}, - {User: uChuck, Verb: "get", Resource: "pods", NS: "ns1", ExpectAllow: false}, - {User: uChuck, Verb: "get", Resource: "floop", NS: "ns1", ExpectAllow: false}, + {User: uChuck, Verb: "update", Resource: "events", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uChuck, Verb: "get", Resource: "pods", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uChuck, Verb: "get", Resource: "floop", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, // Chunk can't access things with no kind or namespace - {User: uChuck, Verb: "get", Path: "/", Resource: "", NS: "", ExpectAllow: false}, + {User: uChuck, Verb: "get", Path: "/", Resource: "", NS: "", ExpectDecision: authorizer.DecisionNoOpinion}, } for i, tc := range testCases { attr := authorizer.AttributesRecord{ @@ -133,11 +133,11 @@ func TestAuthorizeV0(t *testing.T) { ResourceRequest: len(tc.NS) > 0 || len(tc.Resource) > 0, } - authorized, _, _ := a.Authorize(attr) - if tc.ExpectAllow != authorized { + decision, _, _ := a.Authorize(attr) + if tc.ExpectDecision != decision { t.Logf("tc: %v -> attr %v", tc, attr) t.Errorf("%d: Expected allowed=%v but actually allowed=%v\n\t%v", - i, tc.ExpectAllow, authorized, tc) + i, tc.ExpectDecision, decision, tc) } } } @@ -373,72 +373,72 @@ func TestAuthorizeV1beta1(t *testing.T) { uAPIGroup := user.DefaultInfo{Name: "apigroupuser", UID: "uid8", Groups: authenticatedGroup} testCases := []struct { - User user.DefaultInfo - Verb string - Resource string - APIGroup string - NS string - Path string - ExpectAllow bool + User user.DefaultInfo + Verb string + Resource string + APIGroup string + NS string + Path string + ExpectDecision authorizer.Decision }{ // Scheduler can read pods - {User: uScheduler, Verb: "list", Resource: "pods", NS: "ns1", ExpectAllow: true}, - {User: uScheduler, Verb: "list", Resource: "pods", NS: "", ExpectAllow: true}, + {User: uScheduler, Verb: "list", Resource: "pods", NS: "ns1", ExpectDecision: authorizer.DecisionAllow}, + {User: uScheduler, Verb: "list", Resource: "pods", NS: "", ExpectDecision: authorizer.DecisionAllow}, // Scheduler cannot write pods - {User: uScheduler, Verb: "create", Resource: "pods", NS: "ns1", ExpectAllow: false}, - {User: uScheduler, Verb: "create", Resource: "pods", NS: "", ExpectAllow: false}, + {User: uScheduler, Verb: "create", Resource: "pods", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uScheduler, Verb: "create", Resource: "pods", NS: "", ExpectDecision: authorizer.DecisionNoOpinion}, // Scheduler can write bindings - {User: uScheduler, Verb: "get", Resource: "bindings", NS: "ns1", ExpectAllow: true}, - {User: uScheduler, Verb: "get", Resource: "bindings", NS: "", ExpectAllow: true}, + {User: uScheduler, Verb: "get", Resource: "bindings", NS: "ns1", ExpectDecision: authorizer.DecisionAllow}, + {User: uScheduler, Verb: "get", Resource: "bindings", NS: "", ExpectDecision: authorizer.DecisionAllow}, // Alice can read and write anything in the right namespace. - {User: uAlice, Verb: "get", Resource: "pods", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "get", Resource: "widgets", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "get", Resource: "", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "update", Resource: "pods", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "update", Resource: "widgets", NS: "projectCaribou", ExpectAllow: true}, - {User: uAlice, Verb: "update", Resource: "", NS: "projectCaribou", ExpectAllow: true}, + {User: uAlice, Verb: "get", Resource: "pods", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "get", Resource: "widgets", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "get", Resource: "", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "update", Resource: "pods", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "update", Resource: "widgets", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, + {User: uAlice, Verb: "update", Resource: "", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, // .. but not the wrong namespace. - {User: uAlice, Verb: "get", Resource: "pods", NS: "ns1", ExpectAllow: false}, - {User: uAlice, Verb: "get", Resource: "widgets", NS: "ns1", ExpectAllow: false}, - {User: uAlice, Verb: "get", Resource: "", NS: "ns1", ExpectAllow: false}, + {User: uAlice, Verb: "get", Resource: "pods", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uAlice, Verb: "get", Resource: "widgets", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uAlice, Verb: "get", Resource: "", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, // Debbie can write to pods in the right namespace - {User: uDebbie, Verb: "update", Resource: "pods", NS: "projectCaribou", ExpectAllow: true}, + {User: uDebbie, Verb: "update", Resource: "pods", NS: "projectCaribou", ExpectDecision: authorizer.DecisionAllow}, // Chuck can read events, since anyone can. - {User: uChuck, Verb: "get", Resource: "events", NS: "ns1", ExpectAllow: true}, - {User: uChuck, Verb: "get", Resource: "events", NS: "", ExpectAllow: true}, + {User: uChuck, Verb: "get", Resource: "events", NS: "ns1", ExpectDecision: authorizer.DecisionAllow}, + {User: uChuck, Verb: "get", Resource: "events", NS: "", ExpectDecision: authorizer.DecisionAllow}, // Chuck can't do other things. - {User: uChuck, Verb: "update", Resource: "events", NS: "ns1", ExpectAllow: false}, - {User: uChuck, Verb: "get", Resource: "pods", NS: "ns1", ExpectAllow: false}, - {User: uChuck, Verb: "get", Resource: "floop", NS: "ns1", ExpectAllow: false}, + {User: uChuck, Verb: "update", Resource: "events", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uChuck, Verb: "get", Resource: "pods", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uChuck, Verb: "get", Resource: "floop", NS: "ns1", ExpectDecision: authorizer.DecisionNoOpinion}, // Chuck can't access things with no resource or namespace - {User: uChuck, Verb: "get", Path: "/", Resource: "", NS: "", ExpectAllow: false}, + {User: uChuck, Verb: "get", Path: "/", Resource: "", NS: "", ExpectDecision: authorizer.DecisionNoOpinion}, // but can access /api - {User: uChuck, Verb: "get", Path: "/api", Resource: "", NS: "", ExpectAllow: true}, + {User: uChuck, Verb: "get", Path: "/api", Resource: "", NS: "", ExpectDecision: authorizer.DecisionAllow}, // though he cannot write to it - {User: uChuck, Verb: "create", Path: "/api", Resource: "", NS: "", ExpectAllow: false}, + {User: uChuck, Verb: "create", Path: "/api", Resource: "", NS: "", ExpectDecision: authorizer.DecisionNoOpinion}, // while he can write to /custom - {User: uChuck, Verb: "update", Path: "/custom", Resource: "", NS: "", ExpectAllow: true}, + {User: uChuck, Verb: "update", Path: "/custom", Resource: "", NS: "", ExpectDecision: authorizer.DecisionAllow}, // he cannot get "/root" - {User: uChuck, Verb: "get", Path: "/root", Resource: "", NS: "", ExpectAllow: false}, + {User: uChuck, Verb: "get", Path: "/root", Resource: "", NS: "", ExpectDecision: authorizer.DecisionNoOpinion}, // but can get any subpath - {User: uChuck, Verb: "get", Path: "/root/", Resource: "", NS: "", ExpectAllow: true}, - {User: uChuck, Verb: "get", Path: "/root/test/1/2/3", Resource: "", NS: "", ExpectAllow: true}, + {User: uChuck, Verb: "get", Path: "/root/", Resource: "", NS: "", ExpectDecision: authorizer.DecisionAllow}, + {User: uChuck, Verb: "get", Path: "/root/test/1/2/3", Resource: "", NS: "", ExpectDecision: authorizer.DecisionAllow}, // the user "noresource" can get any non-resource request - {User: uNoResource, Verb: "get", Path: "", Resource: "", NS: "", ExpectAllow: true}, - {User: uNoResource, Verb: "get", Path: "/", Resource: "", NS: "", ExpectAllow: true}, - {User: uNoResource, Verb: "get", Path: "/foo/bar/baz", Resource: "", NS: "", ExpectAllow: true}, + {User: uNoResource, Verb: "get", Path: "", Resource: "", NS: "", ExpectDecision: authorizer.DecisionAllow}, + {User: uNoResource, Verb: "get", Path: "/", Resource: "", NS: "", ExpectDecision: authorizer.DecisionAllow}, + {User: uNoResource, Verb: "get", Path: "/foo/bar/baz", Resource: "", NS: "", ExpectDecision: authorizer.DecisionAllow}, // but cannot get any request where IsResourceRequest() == true - {User: uNoResource, Verb: "get", Path: "/", Resource: "", NS: "bar", ExpectAllow: false}, - {User: uNoResource, Verb: "get", Path: "/foo/bar/baz", Resource: "foo", NS: "bar", ExpectAllow: false}, + {User: uNoResource, Verb: "get", Path: "/", Resource: "", NS: "bar", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uNoResource, Verb: "get", Path: "/foo/bar/baz", Resource: "foo", NS: "bar", ExpectDecision: authorizer.DecisionNoOpinion}, // Test APIGroup matching - {User: uAPIGroup, Verb: "get", APIGroup: "x", Resource: "foo", NS: "projectAnyGroup", ExpectAllow: true}, - {User: uAPIGroup, Verb: "get", APIGroup: "x", Resource: "foo", NS: "projectEmptyGroup", ExpectAllow: false}, - {User: uAPIGroup, Verb: "get", APIGroup: "x", Resource: "foo", NS: "projectXGroup", ExpectAllow: true}, + {User: uAPIGroup, Verb: "get", APIGroup: "x", Resource: "foo", NS: "projectAnyGroup", ExpectDecision: authorizer.DecisionAllow}, + {User: uAPIGroup, Verb: "get", APIGroup: "x", Resource: "foo", NS: "projectEmptyGroup", ExpectDecision: authorizer.DecisionNoOpinion}, + {User: uAPIGroup, Verb: "get", APIGroup: "x", Resource: "foo", NS: "projectXGroup", ExpectDecision: authorizer.DecisionAllow}, } for i, tc := range testCases { attr := authorizer.AttributesRecord{ @@ -451,10 +451,10 @@ func TestAuthorizeV1beta1(t *testing.T) { Path: tc.Path, } // t.Logf("tc %2v: %v -> attr %v", i, tc, attr) - authorized, _, _ := a.Authorize(attr) - if tc.ExpectAllow != authorized { + decision, _, _ := a.Authorize(attr) + if tc.ExpectDecision != decision { t.Errorf("%d: Expected allowed=%v but actually allowed=%v, for case %+v & %+v", - i, tc.ExpectAllow, authorized, tc, attr) + i, tc.ExpectDecision, decision, tc, attr) } } } @@ -799,8 +799,8 @@ func TestSubjectMatches(t *testing.T) { } for k, tc := range testCases { - policy := &api.Policy{} - if err := api.Scheme.Convert(tc.Policy, policy, nil); err != nil { + policy := &abac.Policy{} + if err := abac.Scheme.Convert(tc.Policy, policy, nil); err != nil { t.Errorf("%s: error converting: %v", k, err) continue } @@ -1254,8 +1254,8 @@ func TestPolicy(t *testing.T) { }, } for _, test := range tests { - policy := &api.Policy{} - if err := api.Scheme.Convert(test.policy, policy, nil); err != nil { + policy := &abac.Policy{} + if err := abac.Scheme.Convert(test.policy, policy, nil); err != nil { t.Errorf("%s: error converting: %v", test.name, err) continue } diff --git a/vendor/k8s.io/kubernetes/pkg/auth/nodeidentifier/interfaces.go b/vendor/k8s.io/kubernetes/pkg/auth/nodeidentifier/interfaces.go index 917bebaf9..df10a88a8 100644 --- a/vendor/k8s.io/kubernetes/pkg/auth/nodeidentifier/interfaces.go +++ b/vendor/k8s.io/kubernetes/pkg/auth/nodeidentifier/interfaces.go @@ -22,7 +22,7 @@ import ( // NodeIdentifier determines node information from a given user type NodeIdentifier interface { - // IdentifyNode determines node information from the given user.Info. + // NodeIdentity determines node information from the given user.Info. // nodeName is the name of the Node API object associated with the user.Info, // and may be empty if a specific node cannot be determined. // isNode is true if the user.Info represents an identity issued to a node. diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake/BUILD index 7b7ef98d9..72685a878 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/authentication:go_default_library", @@ -22,6 +21,7 @@ go_library( "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/certificates:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/networking:go_default_library", "//pkg/apis/policy:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake/register.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake/register.go index 279688bc7..cf2e6054c 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake/register.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake/register.go @@ -21,7 +21,6 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" - coreinternalversion "k8s.io/kubernetes/pkg/api" admissionregistrationinternalversion "k8s.io/kubernetes/pkg/apis/admissionregistration" appsinternalversion "k8s.io/kubernetes/pkg/apis/apps" authenticationinternalversion "k8s.io/kubernetes/pkg/apis/authentication" @@ -29,6 +28,7 @@ import ( autoscalinginternalversion "k8s.io/kubernetes/pkg/apis/autoscaling" batchinternalversion "k8s.io/kubernetes/pkg/apis/batch" certificatesinternalversion "k8s.io/kubernetes/pkg/apis/certificates" + coreinternalversion "k8s.io/kubernetes/pkg/apis/core" extensionsinternalversion "k8s.io/kubernetes/pkg/apis/extensions" networkinginternalversion "k8s.io/kubernetes/pkg/apis/networking" policyinternalversion "k8s.io/kubernetes/pkg/apis/policy" diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme/BUILD index 8b94589bf..39b1ede5f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme/BUILD @@ -14,7 +14,6 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme", deps = [ - "//pkg/api/install:go_default_library", "//pkg/apis/admissionregistration/install:go_default_library", "//pkg/apis/apps/install:go_default_library", "//pkg/apis/authentication/install:go_default_library", @@ -23,6 +22,7 @@ go_library( "//pkg/apis/batch/install:go_default_library", "//pkg/apis/certificates/install:go_default_library", "//pkg/apis/componentconfig/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions/install:go_default_library", "//pkg/apis/networking/install:go_default_library", "//pkg/apis/policy/install:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme/register.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme/register.go index 500d8da9f..0a4fd9bfb 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme/register.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme/register.go @@ -23,7 +23,6 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" - core "k8s.io/kubernetes/pkg/api/install" admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration/install" apps "k8s.io/kubernetes/pkg/apis/apps/install" authentication "k8s.io/kubernetes/pkg/apis/authentication/install" @@ -31,6 +30,7 @@ import ( autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling/install" batch "k8s.io/kubernetes/pkg/apis/batch/install" certificates "k8s.io/kubernetes/pkg/apis/certificates/install" + core "k8s.io/kubernetes/pkg/apis/core/install" extensions "k8s.io/kubernetes/pkg/apis/extensions/install" networking "k8s.io/kubernetes/pkg/apis/networking/install" policy "k8s.io/kubernetes/pkg/apis/policy/install" diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD index 6d1e815c9..74333876b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD @@ -10,9 +10,10 @@ go_library( srcs = [ "admissionregistration_client.go", "doc.go", - "externaladmissionhookconfiguration.go", "generated_expansion.go", "initializerconfiguration.go", + "mutatingwebhookconfiguration.go", + "validatingwebhookconfiguration.go", ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/admissionregistration_client.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/admissionregistration_client.go index e64ad0d13..319d5ebd9 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/admissionregistration_client.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/admissionregistration_client.go @@ -23,8 +23,9 @@ import ( type AdmissionregistrationInterface interface { RESTClient() rest.Interface - ExternalAdmissionHookConfigurationsGetter InitializerConfigurationsGetter + MutatingWebhookConfigurationsGetter + ValidatingWebhookConfigurationsGetter } // AdmissionregistrationClient is used to interact with features provided by the admissionregistration.k8s.io group. @@ -32,14 +33,18 @@ type AdmissionregistrationClient struct { restClient rest.Interface } -func (c *AdmissionregistrationClient) ExternalAdmissionHookConfigurations() ExternalAdmissionHookConfigurationInterface { - return newExternalAdmissionHookConfigurations(c) -} - func (c *AdmissionregistrationClient) InitializerConfigurations() InitializerConfigurationInterface { return newInitializerConfigurations(c) } +func (c *AdmissionregistrationClient) MutatingWebhookConfigurations() MutatingWebhookConfigurationInterface { + return newMutatingWebhookConfigurations(c) +} + +func (c *AdmissionregistrationClient) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface { + return newValidatingWebhookConfigurations(c) +} + // NewForConfig creates a new AdmissionregistrationClient for the given config. func NewForConfig(c *rest.Config) (*AdmissionregistrationClient, error) { config := *c diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/externaladmissionhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/externaladmissionhookconfiguration.go deleted file mode 100644 index 09b2b383a..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/externaladmissionhookconfiguration.go +++ /dev/null @@ -1,145 +0,0 @@ -/* -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 internalversion - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" - scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" -) - -// ExternalAdmissionHookConfigurationsGetter has a method to return a ExternalAdmissionHookConfigurationInterface. -// A group's client should implement this interface. -type ExternalAdmissionHookConfigurationsGetter interface { - ExternalAdmissionHookConfigurations() ExternalAdmissionHookConfigurationInterface -} - -// ExternalAdmissionHookConfigurationInterface has methods to work with ExternalAdmissionHookConfiguration resources. -type ExternalAdmissionHookConfigurationInterface interface { - Create(*admissionregistration.ExternalAdmissionHookConfiguration) (*admissionregistration.ExternalAdmissionHookConfiguration, error) - Update(*admissionregistration.ExternalAdmissionHookConfiguration) (*admissionregistration.ExternalAdmissionHookConfiguration, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*admissionregistration.ExternalAdmissionHookConfiguration, error) - List(opts v1.ListOptions) (*admissionregistration.ExternalAdmissionHookConfigurationList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *admissionregistration.ExternalAdmissionHookConfiguration, err error) - ExternalAdmissionHookConfigurationExpansion -} - -// externalAdmissionHookConfigurations implements ExternalAdmissionHookConfigurationInterface -type externalAdmissionHookConfigurations struct { - client rest.Interface -} - -// newExternalAdmissionHookConfigurations returns a ExternalAdmissionHookConfigurations -func newExternalAdmissionHookConfigurations(c *AdmissionregistrationClient) *externalAdmissionHookConfigurations { - return &externalAdmissionHookConfigurations{ - client: c.RESTClient(), - } -} - -// Get takes name of the externalAdmissionHookConfiguration, and returns the corresponding externalAdmissionHookConfiguration object, and an error if there is any. -func (c *externalAdmissionHookConfigurations) Get(name string, options v1.GetOptions) (result *admissionregistration.ExternalAdmissionHookConfiguration, err error) { - result = &admissionregistration.ExternalAdmissionHookConfiguration{} - err = c.client.Get(). - Resource("externaladmissionhookconfigurations"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ExternalAdmissionHookConfigurations that match those selectors. -func (c *externalAdmissionHookConfigurations) List(opts v1.ListOptions) (result *admissionregistration.ExternalAdmissionHookConfigurationList, err error) { - result = &admissionregistration.ExternalAdmissionHookConfigurationList{} - err = c.client.Get(). - Resource("externaladmissionhookconfigurations"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested externalAdmissionHookConfigurations. -func (c *externalAdmissionHookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Resource("externaladmissionhookconfigurations"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a externalAdmissionHookConfiguration and creates it. Returns the server's representation of the externalAdmissionHookConfiguration, and an error, if there is any. -func (c *externalAdmissionHookConfigurations) Create(externalAdmissionHookConfiguration *admissionregistration.ExternalAdmissionHookConfiguration) (result *admissionregistration.ExternalAdmissionHookConfiguration, err error) { - result = &admissionregistration.ExternalAdmissionHookConfiguration{} - err = c.client.Post(). - Resource("externaladmissionhookconfigurations"). - Body(externalAdmissionHookConfiguration). - Do(). - Into(result) - return -} - -// Update takes the representation of a externalAdmissionHookConfiguration and updates it. Returns the server's representation of the externalAdmissionHookConfiguration, and an error, if there is any. -func (c *externalAdmissionHookConfigurations) Update(externalAdmissionHookConfiguration *admissionregistration.ExternalAdmissionHookConfiguration) (result *admissionregistration.ExternalAdmissionHookConfiguration, err error) { - result = &admissionregistration.ExternalAdmissionHookConfiguration{} - err = c.client.Put(). - Resource("externaladmissionhookconfigurations"). - Name(externalAdmissionHookConfiguration.Name). - Body(externalAdmissionHookConfiguration). - Do(). - Into(result) - return -} - -// Delete takes name of the externalAdmissionHookConfiguration and deletes it. Returns an error if one occurs. -func (c *externalAdmissionHookConfigurations) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Resource("externaladmissionhookconfigurations"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *externalAdmissionHookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Resource("externaladmissionhookconfigurations"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched externalAdmissionHookConfiguration. -func (c *externalAdmissionHookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *admissionregistration.ExternalAdmissionHookConfiguration, err error) { - result = &admissionregistration.ExternalAdmissionHookConfiguration{} - err = c.client.Patch(pt). - Resource("externaladmissionhookconfigurations"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD index 8d32bc249..9fd39c1ad 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD @@ -10,8 +10,9 @@ go_library( srcs = [ "doc.go", "fake_admissionregistration_client.go", - "fake_externaladmissionhookconfiguration.go", "fake_initializerconfiguration.go", + "fake_mutatingwebhookconfiguration.go", + "fake_validatingwebhookconfiguration.go", ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_admissionregistration_client.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_admissionregistration_client.go index b0e7b8357..7e1a6978b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_admissionregistration_client.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_admissionregistration_client.go @@ -26,14 +26,18 @@ type FakeAdmissionregistration struct { *testing.Fake } -func (c *FakeAdmissionregistration) ExternalAdmissionHookConfigurations() internalversion.ExternalAdmissionHookConfigurationInterface { - return &FakeExternalAdmissionHookConfigurations{c} -} - func (c *FakeAdmissionregistration) InitializerConfigurations() internalversion.InitializerConfigurationInterface { return &FakeInitializerConfigurations{c} } +func (c *FakeAdmissionregistration) MutatingWebhookConfigurations() internalversion.MutatingWebhookConfigurationInterface { + return &FakeMutatingWebhookConfigurations{c} +} + +func (c *FakeAdmissionregistration) ValidatingWebhookConfigurations() internalversion.ValidatingWebhookConfigurationInterface { + return &FakeValidatingWebhookConfigurations{c} +} + // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeAdmissionregistration) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_externaladmissionhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_externaladmissionhookconfiguration.go deleted file mode 100644 index be6b42e2e..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_externaladmissionhookconfiguration.go +++ /dev/null @@ -1,118 +0,0 @@ -/* -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 fake - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" - admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" -) - -// FakeExternalAdmissionHookConfigurations implements ExternalAdmissionHookConfigurationInterface -type FakeExternalAdmissionHookConfigurations struct { - Fake *FakeAdmissionregistration -} - -var externaladmissionhookconfigurationsResource = schema.GroupVersionResource{Group: "admissionregistration.k8s.io", Version: "", Resource: "externaladmissionhookconfigurations"} - -var externaladmissionhookconfigurationsKind = schema.GroupVersionKind{Group: "admissionregistration.k8s.io", Version: "", Kind: "ExternalAdmissionHookConfiguration"} - -// Get takes name of the externalAdmissionHookConfiguration, and returns the corresponding externalAdmissionHookConfiguration object, and an error if there is any. -func (c *FakeExternalAdmissionHookConfigurations) Get(name string, options v1.GetOptions) (result *admissionregistration.ExternalAdmissionHookConfiguration, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(externaladmissionhookconfigurationsResource, name), &admissionregistration.ExternalAdmissionHookConfiguration{}) - if obj == nil { - return nil, err - } - return obj.(*admissionregistration.ExternalAdmissionHookConfiguration), err -} - -// List takes label and field selectors, and returns the list of ExternalAdmissionHookConfigurations that match those selectors. -func (c *FakeExternalAdmissionHookConfigurations) List(opts v1.ListOptions) (result *admissionregistration.ExternalAdmissionHookConfigurationList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(externaladmissionhookconfigurationsResource, externaladmissionhookconfigurationsKind, opts), &admissionregistration.ExternalAdmissionHookConfigurationList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &admissionregistration.ExternalAdmissionHookConfigurationList{} - for _, item := range obj.(*admissionregistration.ExternalAdmissionHookConfigurationList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested externalAdmissionHookConfigurations. -func (c *FakeExternalAdmissionHookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(externaladmissionhookconfigurationsResource, opts)) -} - -// Create takes the representation of a externalAdmissionHookConfiguration and creates it. Returns the server's representation of the externalAdmissionHookConfiguration, and an error, if there is any. -func (c *FakeExternalAdmissionHookConfigurations) Create(externalAdmissionHookConfiguration *admissionregistration.ExternalAdmissionHookConfiguration) (result *admissionregistration.ExternalAdmissionHookConfiguration, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(externaladmissionhookconfigurationsResource, externalAdmissionHookConfiguration), &admissionregistration.ExternalAdmissionHookConfiguration{}) - if obj == nil { - return nil, err - } - return obj.(*admissionregistration.ExternalAdmissionHookConfiguration), err -} - -// Update takes the representation of a externalAdmissionHookConfiguration and updates it. Returns the server's representation of the externalAdmissionHookConfiguration, and an error, if there is any. -func (c *FakeExternalAdmissionHookConfigurations) Update(externalAdmissionHookConfiguration *admissionregistration.ExternalAdmissionHookConfiguration) (result *admissionregistration.ExternalAdmissionHookConfiguration, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(externaladmissionhookconfigurationsResource, externalAdmissionHookConfiguration), &admissionregistration.ExternalAdmissionHookConfiguration{}) - if obj == nil { - return nil, err - } - return obj.(*admissionregistration.ExternalAdmissionHookConfiguration), err -} - -// Delete takes name of the externalAdmissionHookConfiguration and deletes it. Returns an error if one occurs. -func (c *FakeExternalAdmissionHookConfigurations) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(externaladmissionhookconfigurationsResource, name), &admissionregistration.ExternalAdmissionHookConfiguration{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeExternalAdmissionHookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(externaladmissionhookconfigurationsResource, listOptions) - - _, err := c.Fake.Invokes(action, &admissionregistration.ExternalAdmissionHookConfigurationList{}) - return err -} - -// Patch applies the patch and returns the patched externalAdmissionHookConfiguration. -func (c *FakeExternalAdmissionHookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *admissionregistration.ExternalAdmissionHookConfiguration, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(externaladmissionhookconfigurationsResource, name, data, subresources...), &admissionregistration.ExternalAdmissionHookConfiguration{}) - if obj == nil { - return nil, err - } - return obj.(*admissionregistration.ExternalAdmissionHookConfiguration), err -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_mutatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_mutatingwebhookconfiguration.go new file mode 100644 index 000000000..3660ccfba --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_mutatingwebhookconfiguration.go @@ -0,0 +1,118 @@ +/* +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 fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" + admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" +) + +// FakeMutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface +type FakeMutatingWebhookConfigurations struct { + Fake *FakeAdmissionregistration +} + +var mutatingwebhookconfigurationsResource = schema.GroupVersionResource{Group: "admissionregistration.k8s.io", Version: "", Resource: "mutatingwebhookconfigurations"} + +var mutatingwebhookconfigurationsKind = schema.GroupVersionKind{Group: "admissionregistration.k8s.io", Version: "", Kind: "MutatingWebhookConfiguration"} + +// Get takes name of the mutatingWebhookConfiguration, and returns the corresponding mutatingWebhookConfiguration object, and an error if there is any. +func (c *FakeMutatingWebhookConfigurations) Get(name string, options v1.GetOptions) (result *admissionregistration.MutatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(mutatingwebhookconfigurationsResource, name), &admissionregistration.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistration.MutatingWebhookConfiguration), err +} + +// List takes label and field selectors, and returns the list of MutatingWebhookConfigurations that match those selectors. +func (c *FakeMutatingWebhookConfigurations) List(opts v1.ListOptions) (result *admissionregistration.MutatingWebhookConfigurationList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(mutatingwebhookconfigurationsResource, mutatingwebhookconfigurationsKind, opts), &admissionregistration.MutatingWebhookConfigurationList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &admissionregistration.MutatingWebhookConfigurationList{} + for _, item := range obj.(*admissionregistration.MutatingWebhookConfigurationList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested mutatingWebhookConfigurations. +func (c *FakeMutatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(mutatingwebhookconfigurationsResource, opts)) +} + +// Create takes the representation of a mutatingWebhookConfiguration and creates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any. +func (c *FakeMutatingWebhookConfigurations) Create(mutatingWebhookConfiguration *admissionregistration.MutatingWebhookConfiguration) (result *admissionregistration.MutatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(mutatingwebhookconfigurationsResource, mutatingWebhookConfiguration), &admissionregistration.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistration.MutatingWebhookConfiguration), err +} + +// Update takes the representation of a mutatingWebhookConfiguration and updates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any. +func (c *FakeMutatingWebhookConfigurations) Update(mutatingWebhookConfiguration *admissionregistration.MutatingWebhookConfiguration) (result *admissionregistration.MutatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(mutatingwebhookconfigurationsResource, mutatingWebhookConfiguration), &admissionregistration.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistration.MutatingWebhookConfiguration), err +} + +// Delete takes name of the mutatingWebhookConfiguration and deletes it. Returns an error if one occurs. +func (c *FakeMutatingWebhookConfigurations) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(mutatingwebhookconfigurationsResource, name), &admissionregistration.MutatingWebhookConfiguration{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeMutatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(mutatingwebhookconfigurationsResource, listOptions) + + _, err := c.Fake.Invokes(action, &admissionregistration.MutatingWebhookConfigurationList{}) + return err +} + +// Patch applies the patch and returns the patched mutatingWebhookConfiguration. +func (c *FakeMutatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *admissionregistration.MutatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, name, data, subresources...), &admissionregistration.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistration.MutatingWebhookConfiguration), err +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_validatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_validatingwebhookconfiguration.go new file mode 100644 index 000000000..4056e54b7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/fake_validatingwebhookconfiguration.go @@ -0,0 +1,118 @@ +/* +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 fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" + admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" +) + +// FakeValidatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface +type FakeValidatingWebhookConfigurations struct { + Fake *FakeAdmissionregistration +} + +var validatingwebhookconfigurationsResource = schema.GroupVersionResource{Group: "admissionregistration.k8s.io", Version: "", Resource: "validatingwebhookconfigurations"} + +var validatingwebhookconfigurationsKind = schema.GroupVersionKind{Group: "admissionregistration.k8s.io", Version: "", Kind: "ValidatingWebhookConfiguration"} + +// Get takes name of the validatingWebhookConfiguration, and returns the corresponding validatingWebhookConfiguration object, and an error if there is any. +func (c *FakeValidatingWebhookConfigurations) Get(name string, options v1.GetOptions) (result *admissionregistration.ValidatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(validatingwebhookconfigurationsResource, name), &admissionregistration.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistration.ValidatingWebhookConfiguration), err +} + +// List takes label and field selectors, and returns the list of ValidatingWebhookConfigurations that match those selectors. +func (c *FakeValidatingWebhookConfigurations) List(opts v1.ListOptions) (result *admissionregistration.ValidatingWebhookConfigurationList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(validatingwebhookconfigurationsResource, validatingwebhookconfigurationsKind, opts), &admissionregistration.ValidatingWebhookConfigurationList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &admissionregistration.ValidatingWebhookConfigurationList{} + for _, item := range obj.(*admissionregistration.ValidatingWebhookConfigurationList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested validatingWebhookConfigurations. +func (c *FakeValidatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(validatingwebhookconfigurationsResource, opts)) +} + +// Create takes the representation of a validatingWebhookConfiguration and creates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any. +func (c *FakeValidatingWebhookConfigurations) Create(validatingWebhookConfiguration *admissionregistration.ValidatingWebhookConfiguration) (result *admissionregistration.ValidatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(validatingwebhookconfigurationsResource, validatingWebhookConfiguration), &admissionregistration.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistration.ValidatingWebhookConfiguration), err +} + +// Update takes the representation of a validatingWebhookConfiguration and updates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any. +func (c *FakeValidatingWebhookConfigurations) Update(validatingWebhookConfiguration *admissionregistration.ValidatingWebhookConfiguration) (result *admissionregistration.ValidatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(validatingwebhookconfigurationsResource, validatingWebhookConfiguration), &admissionregistration.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistration.ValidatingWebhookConfiguration), err +} + +// Delete takes name of the validatingWebhookConfiguration and deletes it. Returns an error if one occurs. +func (c *FakeValidatingWebhookConfigurations) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(validatingwebhookconfigurationsResource, name), &admissionregistration.ValidatingWebhookConfiguration{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeValidatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(validatingwebhookconfigurationsResource, listOptions) + + _, err := c.Fake.Invokes(action, &admissionregistration.ValidatingWebhookConfigurationList{}) + return err +} + +// Patch applies the patch and returns the patched validatingWebhookConfiguration. +func (c *FakeValidatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *admissionregistration.ValidatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, name, data, subresources...), &admissionregistration.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*admissionregistration.ValidatingWebhookConfiguration), err +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/generated_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/generated_expansion.go index 631817dea..d41780a7a 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/generated_expansion.go @@ -16,6 +16,8 @@ limitations under the License. package internalversion -type ExternalAdmissionHookConfigurationExpansion interface{} - type InitializerConfigurationExpansion interface{} + +type MutatingWebhookConfigurationExpansion interface{} + +type ValidatingWebhookConfigurationExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/mutatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/mutatingwebhookconfiguration.go new file mode 100644 index 000000000..a58d0fd1c --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/mutatingwebhookconfiguration.go @@ -0,0 +1,145 @@ +/* +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 internalversion + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" + admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" + scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" +) + +// MutatingWebhookConfigurationsGetter has a method to return a MutatingWebhookConfigurationInterface. +// A group's client should implement this interface. +type MutatingWebhookConfigurationsGetter interface { + MutatingWebhookConfigurations() MutatingWebhookConfigurationInterface +} + +// MutatingWebhookConfigurationInterface has methods to work with MutatingWebhookConfiguration resources. +type MutatingWebhookConfigurationInterface interface { + Create(*admissionregistration.MutatingWebhookConfiguration) (*admissionregistration.MutatingWebhookConfiguration, error) + Update(*admissionregistration.MutatingWebhookConfiguration) (*admissionregistration.MutatingWebhookConfiguration, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*admissionregistration.MutatingWebhookConfiguration, error) + List(opts v1.ListOptions) (*admissionregistration.MutatingWebhookConfigurationList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *admissionregistration.MutatingWebhookConfiguration, err error) + MutatingWebhookConfigurationExpansion +} + +// mutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface +type mutatingWebhookConfigurations struct { + client rest.Interface +} + +// newMutatingWebhookConfigurations returns a MutatingWebhookConfigurations +func newMutatingWebhookConfigurations(c *AdmissionregistrationClient) *mutatingWebhookConfigurations { + return &mutatingWebhookConfigurations{ + client: c.RESTClient(), + } +} + +// Get takes name of the mutatingWebhookConfiguration, and returns the corresponding mutatingWebhookConfiguration object, and an error if there is any. +func (c *mutatingWebhookConfigurations) Get(name string, options v1.GetOptions) (result *admissionregistration.MutatingWebhookConfiguration, err error) { + result = &admissionregistration.MutatingWebhookConfiguration{} + err = c.client.Get(). + Resource("mutatingwebhookconfigurations"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of MutatingWebhookConfigurations that match those selectors. +func (c *mutatingWebhookConfigurations) List(opts v1.ListOptions) (result *admissionregistration.MutatingWebhookConfigurationList, err error) { + result = &admissionregistration.MutatingWebhookConfigurationList{} + err = c.client.Get(). + Resource("mutatingwebhookconfigurations"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested mutatingWebhookConfigurations. +func (c *mutatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("mutatingwebhookconfigurations"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a mutatingWebhookConfiguration and creates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any. +func (c *mutatingWebhookConfigurations) Create(mutatingWebhookConfiguration *admissionregistration.MutatingWebhookConfiguration) (result *admissionregistration.MutatingWebhookConfiguration, err error) { + result = &admissionregistration.MutatingWebhookConfiguration{} + err = c.client.Post(). + Resource("mutatingwebhookconfigurations"). + Body(mutatingWebhookConfiguration). + Do(). + Into(result) + return +} + +// Update takes the representation of a mutatingWebhookConfiguration and updates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any. +func (c *mutatingWebhookConfigurations) Update(mutatingWebhookConfiguration *admissionregistration.MutatingWebhookConfiguration) (result *admissionregistration.MutatingWebhookConfiguration, err error) { + result = &admissionregistration.MutatingWebhookConfiguration{} + err = c.client.Put(). + Resource("mutatingwebhookconfigurations"). + Name(mutatingWebhookConfiguration.Name). + Body(mutatingWebhookConfiguration). + Do(). + Into(result) + return +} + +// Delete takes name of the mutatingWebhookConfiguration and deletes it. Returns an error if one occurs. +func (c *mutatingWebhookConfigurations) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("mutatingwebhookconfigurations"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *mutatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Resource("mutatingwebhookconfigurations"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched mutatingWebhookConfiguration. +func (c *mutatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *admissionregistration.MutatingWebhookConfiguration, err error) { + result = &admissionregistration.MutatingWebhookConfiguration{} + err = c.client.Patch(pt). + Resource("mutatingwebhookconfigurations"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/validatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/validatingwebhookconfiguration.go new file mode 100644 index 000000000..090cd6f67 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/validatingwebhookconfiguration.go @@ -0,0 +1,145 @@ +/* +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 internalversion + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" + admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" + scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" +) + +// ValidatingWebhookConfigurationsGetter has a method to return a ValidatingWebhookConfigurationInterface. +// A group's client should implement this interface. +type ValidatingWebhookConfigurationsGetter interface { + ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface +} + +// ValidatingWebhookConfigurationInterface has methods to work with ValidatingWebhookConfiguration resources. +type ValidatingWebhookConfigurationInterface interface { + Create(*admissionregistration.ValidatingWebhookConfiguration) (*admissionregistration.ValidatingWebhookConfiguration, error) + Update(*admissionregistration.ValidatingWebhookConfiguration) (*admissionregistration.ValidatingWebhookConfiguration, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*admissionregistration.ValidatingWebhookConfiguration, error) + List(opts v1.ListOptions) (*admissionregistration.ValidatingWebhookConfigurationList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *admissionregistration.ValidatingWebhookConfiguration, err error) + ValidatingWebhookConfigurationExpansion +} + +// validatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface +type validatingWebhookConfigurations struct { + client rest.Interface +} + +// newValidatingWebhookConfigurations returns a ValidatingWebhookConfigurations +func newValidatingWebhookConfigurations(c *AdmissionregistrationClient) *validatingWebhookConfigurations { + return &validatingWebhookConfigurations{ + client: c.RESTClient(), + } +} + +// Get takes name of the validatingWebhookConfiguration, and returns the corresponding validatingWebhookConfiguration object, and an error if there is any. +func (c *validatingWebhookConfigurations) Get(name string, options v1.GetOptions) (result *admissionregistration.ValidatingWebhookConfiguration, err error) { + result = &admissionregistration.ValidatingWebhookConfiguration{} + err = c.client.Get(). + Resource("validatingwebhookconfigurations"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of ValidatingWebhookConfigurations that match those selectors. +func (c *validatingWebhookConfigurations) List(opts v1.ListOptions) (result *admissionregistration.ValidatingWebhookConfigurationList, err error) { + result = &admissionregistration.ValidatingWebhookConfigurationList{} + err = c.client.Get(). + Resource("validatingwebhookconfigurations"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested validatingWebhookConfigurations. +func (c *validatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("validatingwebhookconfigurations"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a validatingWebhookConfiguration and creates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any. +func (c *validatingWebhookConfigurations) Create(validatingWebhookConfiguration *admissionregistration.ValidatingWebhookConfiguration) (result *admissionregistration.ValidatingWebhookConfiguration, err error) { + result = &admissionregistration.ValidatingWebhookConfiguration{} + err = c.client.Post(). + Resource("validatingwebhookconfigurations"). + Body(validatingWebhookConfiguration). + Do(). + Into(result) + return +} + +// Update takes the representation of a validatingWebhookConfiguration and updates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any. +func (c *validatingWebhookConfigurations) Update(validatingWebhookConfiguration *admissionregistration.ValidatingWebhookConfiguration) (result *admissionregistration.ValidatingWebhookConfiguration, err error) { + result = &admissionregistration.ValidatingWebhookConfiguration{} + err = c.client.Put(). + Resource("validatingwebhookconfigurations"). + Name(validatingWebhookConfiguration.Name). + Body(validatingWebhookConfiguration). + Do(). + Into(result) + return +} + +// Delete takes name of the validatingWebhookConfiguration and deletes it. Returns an error if one occurs. +func (c *validatingWebhookConfigurations) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("validatingwebhookconfigurations"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *validatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Resource("validatingwebhookconfigurations"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched validatingWebhookConfiguration. +func (c *validatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *admissionregistration.ValidatingWebhookConfiguration, err error) { + result = &admissionregistration.ValidatingWebhookConfiguration{} + err = c.client.Patch(pt). + Resource("validatingwebhookconfigurations"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD index 9435fcd51..e3fad87be 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD @@ -17,7 +17,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion", deps = [ "//pkg/apis/apps:go_default_library", - "//pkg/apis/extensions:go_default_library", + "//pkg/apis/autoscaling:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD index b124ea578..ecee8ae0d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD @@ -16,7 +16,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake", deps = [ "//pkg/apis/apps:go_default_library", - "//pkg/apis/extensions:go_default_library", + "//pkg/apis/autoscaling:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/fake_statefulset.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/fake_statefulset.go index df41c42aa..680142275 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/fake_statefulset.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/fake_statefulset.go @@ -24,7 +24,7 @@ import ( watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" apps "k8s.io/kubernetes/pkg/apis/apps" - extensions "k8s.io/kubernetes/pkg/apis/extensions" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" ) // FakeStatefulSets implements StatefulSetInterface @@ -139,23 +139,23 @@ func (c *FakeStatefulSets) Patch(name string, pt types.PatchType, data []byte, s } // GetScale takes name of the statefulSet, and returns the corresponding scale object, and an error if there is any. -func (c *FakeStatefulSets) GetScale(statefulSetName string, options v1.GetOptions) (result *extensions.Scale, err error) { +func (c *FakeStatefulSets) GetScale(statefulSetName string, options v1.GetOptions) (result *autoscaling.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewGetSubresourceAction(statefulsetsResource, c.ns, "scale", statefulSetName), &extensions.Scale{}) + Invokes(testing.NewGetSubresourceAction(statefulsetsResource, c.ns, "scale", statefulSetName), &autoscaling.Scale{}) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*autoscaling.Scale), err } // UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *FakeStatefulSets) UpdateScale(statefulSetName string, scale *extensions.Scale) (result *extensions.Scale, err error) { +func (c *FakeStatefulSets) UpdateScale(statefulSetName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(statefulsetsResource, "scale", c.ns, scale), &extensions.Scale{}) + Invokes(testing.NewUpdateSubresourceAction(statefulsetsResource, "scale", c.ns, scale), &autoscaling.Scale{}) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*autoscaling.Scale), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/statefulset.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/statefulset.go index 85ee4bd86..ae64cc008 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/statefulset.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/statefulset.go @@ -22,7 +22,7 @@ import ( watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" apps "k8s.io/kubernetes/pkg/apis/apps" - extensions "k8s.io/kubernetes/pkg/apis/extensions" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -43,8 +43,8 @@ type StatefulSetInterface interface { List(opts v1.ListOptions) (*apps.StatefulSetList, error) Watch(opts v1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps.StatefulSet, err error) - GetScale(statefulSetName string, options v1.GetOptions) (*extensions.Scale, error) - UpdateScale(statefulSetName string, scale *extensions.Scale) (*extensions.Scale, error) + GetScale(statefulSetName string, options v1.GetOptions) (*autoscaling.Scale, error) + UpdateScale(statefulSetName string, scale *autoscaling.Scale) (*autoscaling.Scale, error) StatefulSetExpansion } @@ -175,9 +175,9 @@ func (c *statefulSets) Patch(name string, pt types.PatchType, data []byte, subre return } -// GetScale takes name of the statefulSet, and returns the corresponding extensions.Scale object, and an error if there is any. -func (c *statefulSets) GetScale(statefulSetName string, options v1.GetOptions) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +// GetScale takes name of the statefulSet, and returns the corresponding autoscaling.Scale object, and an error if there is any. +func (c *statefulSets) GetScale(statefulSetName string, options v1.GetOptions) (result *autoscaling.Scale, err error) { + result = &autoscaling.Scale{} err = c.client.Get(). Namespace(c.ns). Resource("statefulsets"). @@ -190,8 +190,8 @@ func (c *statefulSets) GetScale(statefulSetName string, options v1.GetOptions) ( } // UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *statefulSets) UpdateScale(statefulSetName string, scale *extensions.Scale) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +func (c *statefulSets) UpdateScale(statefulSetName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) { + result = &autoscaling.Scale{} err = c.client.Put(). Namespace(c.ns). Resource("statefulsets"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD index 8a2308628..ad0e9695a 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD @@ -35,10 +35,11 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/ref:go_default_library", - "//pkg/api/v1:go_default_library", - "//pkg/apis/extensions:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/componentstatus.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/componentstatus.go index dfd6969a9..66b4b464f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/componentstatus.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/componentstatus.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,14 +33,14 @@ type ComponentStatusesGetter interface { // ComponentStatusInterface has methods to work with ComponentStatus resources. type ComponentStatusInterface interface { - Create(*api.ComponentStatus) (*api.ComponentStatus, error) - Update(*api.ComponentStatus) (*api.ComponentStatus, error) + Create(*core.ComponentStatus) (*core.ComponentStatus, error) + Update(*core.ComponentStatus) (*core.ComponentStatus, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.ComponentStatus, error) - List(opts v1.ListOptions) (*api.ComponentStatusList, error) + Get(name string, options v1.GetOptions) (*core.ComponentStatus, error) + List(opts v1.ListOptions) (*core.ComponentStatusList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ComponentStatus, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ComponentStatus, err error) ComponentStatusExpansion } @@ -57,8 +57,8 @@ func newComponentStatuses(c *CoreClient) *componentStatuses { } // Get takes name of the componentStatus, and returns the corresponding componentStatus object, and an error if there is any. -func (c *componentStatuses) Get(name string, options v1.GetOptions) (result *api.ComponentStatus, err error) { - result = &api.ComponentStatus{} +func (c *componentStatuses) Get(name string, options v1.GetOptions) (result *core.ComponentStatus, err error) { + result = &core.ComponentStatus{} err = c.client.Get(). Resource("componentstatuses"). Name(name). @@ -69,8 +69,8 @@ func (c *componentStatuses) Get(name string, options v1.GetOptions) (result *api } // List takes label and field selectors, and returns the list of ComponentStatuses that match those selectors. -func (c *componentStatuses) List(opts v1.ListOptions) (result *api.ComponentStatusList, err error) { - result = &api.ComponentStatusList{} +func (c *componentStatuses) List(opts v1.ListOptions) (result *core.ComponentStatusList, err error) { + result = &core.ComponentStatusList{} err = c.client.Get(). Resource("componentstatuses"). VersionedParams(&opts, scheme.ParameterCodec). @@ -89,8 +89,8 @@ func (c *componentStatuses) Watch(opts v1.ListOptions) (watch.Interface, error) } // Create takes the representation of a componentStatus and creates it. Returns the server's representation of the componentStatus, and an error, if there is any. -func (c *componentStatuses) Create(componentStatus *api.ComponentStatus) (result *api.ComponentStatus, err error) { - result = &api.ComponentStatus{} +func (c *componentStatuses) Create(componentStatus *core.ComponentStatus) (result *core.ComponentStatus, err error) { + result = &core.ComponentStatus{} err = c.client.Post(). Resource("componentstatuses"). Body(componentStatus). @@ -100,8 +100,8 @@ func (c *componentStatuses) Create(componentStatus *api.ComponentStatus) (result } // Update takes the representation of a componentStatus and updates it. Returns the server's representation of the componentStatus, and an error, if there is any. -func (c *componentStatuses) Update(componentStatus *api.ComponentStatus) (result *api.ComponentStatus, err error) { - result = &api.ComponentStatus{} +func (c *componentStatuses) Update(componentStatus *core.ComponentStatus) (result *core.ComponentStatus, err error) { + result = &core.ComponentStatus{} err = c.client.Put(). Resource("componentstatuses"). Name(componentStatus.Name). @@ -132,8 +132,8 @@ func (c *componentStatuses) DeleteCollection(options *v1.DeleteOptions, listOpti } // Patch applies the patch and returns the patched componentStatus. -func (c *componentStatuses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ComponentStatus, err error) { - result = &api.ComponentStatus{} +func (c *componentStatuses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ComponentStatus, err error) { + result = &core.ComponentStatus{} err = c.client.Patch(pt). Resource("componentstatuses"). SubResource(subresources...). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/configmap.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/configmap.go index 53ed9fed8..7f5adbc44 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/configmap.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/configmap.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,14 +33,14 @@ type ConfigMapsGetter interface { // ConfigMapInterface has methods to work with ConfigMap resources. type ConfigMapInterface interface { - Create(*api.ConfigMap) (*api.ConfigMap, error) - Update(*api.ConfigMap) (*api.ConfigMap, error) + Create(*core.ConfigMap) (*core.ConfigMap, error) + Update(*core.ConfigMap) (*core.ConfigMap, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.ConfigMap, error) - List(opts v1.ListOptions) (*api.ConfigMapList, error) + Get(name string, options v1.GetOptions) (*core.ConfigMap, error) + List(opts v1.ListOptions) (*core.ConfigMapList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ConfigMap, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ConfigMap, err error) ConfigMapExpansion } @@ -59,8 +59,8 @@ func newConfigMaps(c *CoreClient, namespace string) *configMaps { } // Get takes name of the configMap, and returns the corresponding configMap object, and an error if there is any. -func (c *configMaps) Get(name string, options v1.GetOptions) (result *api.ConfigMap, err error) { - result = &api.ConfigMap{} +func (c *configMaps) Get(name string, options v1.GetOptions) (result *core.ConfigMap, err error) { + result = &core.ConfigMap{} err = c.client.Get(). Namespace(c.ns). Resource("configmaps"). @@ -72,8 +72,8 @@ func (c *configMaps) Get(name string, options v1.GetOptions) (result *api.Config } // List takes label and field selectors, and returns the list of ConfigMaps that match those selectors. -func (c *configMaps) List(opts v1.ListOptions) (result *api.ConfigMapList, err error) { - result = &api.ConfigMapList{} +func (c *configMaps) List(opts v1.ListOptions) (result *core.ConfigMapList, err error) { + result = &core.ConfigMapList{} err = c.client.Get(). Namespace(c.ns). Resource("configmaps"). @@ -94,8 +94,8 @@ func (c *configMaps) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a configMap and creates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *configMaps) Create(configMap *api.ConfigMap) (result *api.ConfigMap, err error) { - result = &api.ConfigMap{} +func (c *configMaps) Create(configMap *core.ConfigMap) (result *core.ConfigMap, err error) { + result = &core.ConfigMap{} err = c.client.Post(). Namespace(c.ns). Resource("configmaps"). @@ -106,8 +106,8 @@ func (c *configMaps) Create(configMap *api.ConfigMap) (result *api.ConfigMap, er } // Update takes the representation of a configMap and updates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *configMaps) Update(configMap *api.ConfigMap) (result *api.ConfigMap, err error) { - result = &api.ConfigMap{} +func (c *configMaps) Update(configMap *core.ConfigMap) (result *core.ConfigMap, err error) { + result = &core.ConfigMap{} err = c.client.Put(). Namespace(c.ns). Resource("configmaps"). @@ -141,8 +141,8 @@ func (c *configMaps) DeleteCollection(options *v1.DeleteOptions, listOptions v1. } // Patch applies the patch and returns the patched configMap. -func (c *configMaps) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ConfigMap, err error) { - result = &api.ConfigMap{} +func (c *configMaps) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ConfigMap, err error) { + result = &core.ConfigMap{} err = c.client.Patch(pt). Namespace(c.ns). Resource("configmaps"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/endpoints.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/endpoints.go index 39fe3d44c..8a35c807a 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/endpoints.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/endpoints.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,14 +33,14 @@ type EndpointsGetter interface { // EndpointsInterface has methods to work with Endpoints resources. type EndpointsInterface interface { - Create(*api.Endpoints) (*api.Endpoints, error) - Update(*api.Endpoints) (*api.Endpoints, error) + Create(*core.Endpoints) (*core.Endpoints, error) + Update(*core.Endpoints) (*core.Endpoints, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.Endpoints, error) - List(opts v1.ListOptions) (*api.EndpointsList, error) + Get(name string, options v1.GetOptions) (*core.Endpoints, error) + List(opts v1.ListOptions) (*core.EndpointsList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Endpoints, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Endpoints, err error) EndpointsExpansion } @@ -59,8 +59,8 @@ func newEndpoints(c *CoreClient, namespace string) *endpoints { } // Get takes name of the endpoints, and returns the corresponding endpoints object, and an error if there is any. -func (c *endpoints) Get(name string, options v1.GetOptions) (result *api.Endpoints, err error) { - result = &api.Endpoints{} +func (c *endpoints) Get(name string, options v1.GetOptions) (result *core.Endpoints, err error) { + result = &core.Endpoints{} err = c.client.Get(). Namespace(c.ns). Resource("endpoints"). @@ -72,8 +72,8 @@ func (c *endpoints) Get(name string, options v1.GetOptions) (result *api.Endpoin } // List takes label and field selectors, and returns the list of Endpoints that match those selectors. -func (c *endpoints) List(opts v1.ListOptions) (result *api.EndpointsList, err error) { - result = &api.EndpointsList{} +func (c *endpoints) List(opts v1.ListOptions) (result *core.EndpointsList, err error) { + result = &core.EndpointsList{} err = c.client.Get(). Namespace(c.ns). Resource("endpoints"). @@ -94,8 +94,8 @@ func (c *endpoints) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a endpoints and creates it. Returns the server's representation of the endpoints, and an error, if there is any. -func (c *endpoints) Create(endpoints *api.Endpoints) (result *api.Endpoints, err error) { - result = &api.Endpoints{} +func (c *endpoints) Create(endpoints *core.Endpoints) (result *core.Endpoints, err error) { + result = &core.Endpoints{} err = c.client.Post(). Namespace(c.ns). Resource("endpoints"). @@ -106,8 +106,8 @@ func (c *endpoints) Create(endpoints *api.Endpoints) (result *api.Endpoints, err } // Update takes the representation of a endpoints and updates it. Returns the server's representation of the endpoints, and an error, if there is any. -func (c *endpoints) Update(endpoints *api.Endpoints) (result *api.Endpoints, err error) { - result = &api.Endpoints{} +func (c *endpoints) Update(endpoints *core.Endpoints) (result *core.Endpoints, err error) { + result = &core.Endpoints{} err = c.client.Put(). Namespace(c.ns). Resource("endpoints"). @@ -141,8 +141,8 @@ func (c *endpoints) DeleteCollection(options *v1.DeleteOptions, listOptions v1.L } // Patch applies the patch and returns the patched endpoints. -func (c *endpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Endpoints, err error) { - result = &api.Endpoints{} +func (c *endpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Endpoints, err error) { + result = &core.Endpoints{} err = c.client.Patch(pt). Namespace(c.ns). Resource("endpoints"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/event.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/event.go index 143099b67..cad5b84a3 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/event.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/event.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,14 +33,14 @@ type EventsGetter interface { // EventInterface has methods to work with Event resources. type EventInterface interface { - Create(*api.Event) (*api.Event, error) - Update(*api.Event) (*api.Event, error) + Create(*core.Event) (*core.Event, error) + Update(*core.Event) (*core.Event, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.Event, error) - List(opts v1.ListOptions) (*api.EventList, error) + Get(name string, options v1.GetOptions) (*core.Event, error) + List(opts v1.ListOptions) (*core.EventList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Event, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Event, err error) EventExpansion } @@ -59,8 +59,8 @@ func newEvents(c *CoreClient, namespace string) *events { } // 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 *api.Event, err error) { - result = &api.Event{} +func (c *events) Get(name string, options v1.GetOptions) (result *core.Event, err error) { + result = &core.Event{} err = c.client.Get(). Namespace(c.ns). Resource("events"). @@ -72,8 +72,8 @@ func (c *events) Get(name string, options v1.GetOptions) (result *api.Event, err } // List takes label and field selectors, and returns the list of Events that match those selectors. -func (c *events) List(opts v1.ListOptions) (result *api.EventList, err error) { - result = &api.EventList{} +func (c *events) List(opts v1.ListOptions) (result *core.EventList, err error) { + result = &core.EventList{} err = c.client.Get(). Namespace(c.ns). Resource("events"). @@ -94,8 +94,8 @@ func (c *events) Watch(opts v1.ListOptions) (watch.Interface, error) { } // 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 *api.Event) (result *api.Event, err error) { - result = &api.Event{} +func (c *events) Create(event *core.Event) (result *core.Event, err error) { + result = &core.Event{} err = c.client.Post(). Namespace(c.ns). Resource("events"). @@ -106,8 +106,8 @@ func (c *events) Create(event *api.Event) (result *api.Event, err error) { } // 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 *api.Event) (result *api.Event, err error) { - result = &api.Event{} +func (c *events) Update(event *core.Event) (result *core.Event, err error) { + result = &core.Event{} err = c.client.Put(). Namespace(c.ns). Resource("events"). @@ -141,8 +141,8 @@ func (c *events) DeleteCollection(options *v1.DeleteOptions, listOptions v1.List } // Patch applies the patch and returns the patched event. -func (c *events) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Event, err error) { - result = &api.Event{} +func (c *events) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Event, err error) { + result = &core.Event{} err = c.client.Patch(pt). Namespace(c.ns). Resource("events"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/event_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/event_expansion.go index d9ac64fdb..5f1ebb89c 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/event_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/event_expansion.go @@ -24,9 +24,9 @@ import ( "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/ref" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" ) // The EventExpansion interface allows manually adding extra methods to the EventInterface. @@ -155,7 +155,7 @@ type EventSinkImpl struct { func (e *EventSinkImpl) Create(event *v1.Event) (*v1.Event, error) { internalEvent := &api.Event{} - err := k8s_api_v1.Convert_v1_Event_To_api_Event(event, internalEvent, nil) + err := k8s_api_v1.Convert_v1_Event_To_core_Event(event, internalEvent, nil) if err != nil { return nil, err } @@ -168,7 +168,7 @@ func (e *EventSinkImpl) Create(event *v1.Event) (*v1.Event, error) { func (e *EventSinkImpl) Update(event *v1.Event) (*v1.Event, error) { internalEvent := &api.Event{} - err := k8s_api_v1.Convert_v1_Event_To_api_Event(event, internalEvent, nil) + err := k8s_api_v1.Convert_v1_Event_To_core_Event(event, internalEvent, nil) if err != nil { return nil, err } @@ -181,7 +181,7 @@ func (e *EventSinkImpl) Update(event *v1.Event) (*v1.Event, error) { func (e *EventSinkImpl) Patch(event *v1.Event, data []byte) (*v1.Event, error) { internalEvent := &api.Event{} - err := k8s_api_v1.Convert_v1_Event_To_api_Event(event, internalEvent, nil) + err := k8s_api_v1.Convert_v1_Event_To_core_Event(event, internalEvent, nil) if err != nil { return nil, err } @@ -190,7 +190,7 @@ func (e *EventSinkImpl) Patch(event *v1.Event, data []byte) (*v1.Event, error) { return nil, err } externalEvent := &v1.Event{} - err = k8s_api_v1.Convert_api_Event_To_v1_Event(internalEvent, externalEvent, nil) + err = k8s_api_v1.Convert_core_Event_To_v1_Event(internalEvent, externalEvent, nil) if err != nil { // Patch succeeded, no need to report the failed conversion return event, nil diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD index 33bd6660e..e1c87b0aa 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD @@ -34,8 +34,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake", deps = [ - "//pkg/api:go_default_library", - "//pkg/apis/extensions:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_componentstatus.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_componentstatus.go index 9d2bdd39e..48151941c 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_componentstatus.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_componentstatus.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeComponentStatuses implements ComponentStatusInterface @@ -36,19 +36,19 @@ var componentstatusesResource = schema.GroupVersionResource{Group: "", Version: var componentstatusesKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "ComponentStatus"} // Get takes name of the componentStatus, and returns the corresponding componentStatus object, and an error if there is any. -func (c *FakeComponentStatuses) Get(name string, options v1.GetOptions) (result *api.ComponentStatus, err error) { +func (c *FakeComponentStatuses) Get(name string, options v1.GetOptions) (result *core.ComponentStatus, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(componentstatusesResource, name), &api.ComponentStatus{}) + Invokes(testing.NewRootGetAction(componentstatusesResource, name), &core.ComponentStatus{}) if obj == nil { return nil, err } - return obj.(*api.ComponentStatus), err + return obj.(*core.ComponentStatus), err } // List takes label and field selectors, and returns the list of ComponentStatuses that match those selectors. -func (c *FakeComponentStatuses) List(opts v1.ListOptions) (result *api.ComponentStatusList, err error) { +func (c *FakeComponentStatuses) List(opts v1.ListOptions) (result *core.ComponentStatusList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(componentstatusesResource, componentstatusesKind, opts), &api.ComponentStatusList{}) + Invokes(testing.NewRootListAction(componentstatusesResource, componentstatusesKind, opts), &core.ComponentStatusList{}) if obj == nil { return nil, err } @@ -57,8 +57,8 @@ func (c *FakeComponentStatuses) List(opts v1.ListOptions) (result *api.Component if label == nil { label = labels.Everything() } - list := &api.ComponentStatusList{} - for _, item := range obj.(*api.ComponentStatusList).Items { + list := &core.ComponentStatusList{} + for _, item := range obj.(*core.ComponentStatusList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -73,29 +73,29 @@ func (c *FakeComponentStatuses) Watch(opts v1.ListOptions) (watch.Interface, err } // Create takes the representation of a componentStatus and creates it. Returns the server's representation of the componentStatus, and an error, if there is any. -func (c *FakeComponentStatuses) Create(componentStatus *api.ComponentStatus) (result *api.ComponentStatus, err error) { +func (c *FakeComponentStatuses) Create(componentStatus *core.ComponentStatus) (result *core.ComponentStatus, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(componentstatusesResource, componentStatus), &api.ComponentStatus{}) + Invokes(testing.NewRootCreateAction(componentstatusesResource, componentStatus), &core.ComponentStatus{}) if obj == nil { return nil, err } - return obj.(*api.ComponentStatus), err + return obj.(*core.ComponentStatus), err } // Update takes the representation of a componentStatus and updates it. Returns the server's representation of the componentStatus, and an error, if there is any. -func (c *FakeComponentStatuses) Update(componentStatus *api.ComponentStatus) (result *api.ComponentStatus, err error) { +func (c *FakeComponentStatuses) Update(componentStatus *core.ComponentStatus) (result *core.ComponentStatus, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(componentstatusesResource, componentStatus), &api.ComponentStatus{}) + Invokes(testing.NewRootUpdateAction(componentstatusesResource, componentStatus), &core.ComponentStatus{}) if obj == nil { return nil, err } - return obj.(*api.ComponentStatus), err + return obj.(*core.ComponentStatus), err } // Delete takes name of the componentStatus and deletes it. Returns an error if one occurs. func (c *FakeComponentStatuses) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(componentstatusesResource, name), &api.ComponentStatus{}) + Invokes(testing.NewRootDeleteAction(componentstatusesResource, name), &core.ComponentStatus{}) return err } @@ -103,16 +103,16 @@ func (c *FakeComponentStatuses) Delete(name string, options *v1.DeleteOptions) e func (c *FakeComponentStatuses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(componentstatusesResource, listOptions) - _, err := c.Fake.Invokes(action, &api.ComponentStatusList{}) + _, err := c.Fake.Invokes(action, &core.ComponentStatusList{}) return err } // Patch applies the patch and returns the patched componentStatus. -func (c *FakeComponentStatuses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ComponentStatus, err error) { +func (c *FakeComponentStatuses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ComponentStatus, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(componentstatusesResource, name, data, subresources...), &api.ComponentStatus{}) + Invokes(testing.NewRootPatchSubresourceAction(componentstatusesResource, name, data, subresources...), &core.ComponentStatus{}) if obj == nil { return nil, err } - return obj.(*api.ComponentStatus), err + return obj.(*core.ComponentStatus), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_configmap.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_configmap.go index cf5ac3e47..94b5e59b9 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_configmap.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_configmap.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeConfigMaps implements ConfigMapInterface @@ -37,20 +37,20 @@ var configmapsResource = schema.GroupVersionResource{Group: "", Version: "", Res var configmapsKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "ConfigMap"} // Get takes name of the configMap, and returns the corresponding configMap object, and an error if there is any. -func (c *FakeConfigMaps) Get(name string, options v1.GetOptions) (result *api.ConfigMap, err error) { +func (c *FakeConfigMaps) Get(name string, options v1.GetOptions) (result *core.ConfigMap, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(configmapsResource, c.ns, name), &api.ConfigMap{}) + Invokes(testing.NewGetAction(configmapsResource, c.ns, name), &core.ConfigMap{}) if obj == nil { return nil, err } - return obj.(*api.ConfigMap), err + return obj.(*core.ConfigMap), err } // List takes label and field selectors, and returns the list of ConfigMaps that match those selectors. -func (c *FakeConfigMaps) List(opts v1.ListOptions) (result *api.ConfigMapList, err error) { +func (c *FakeConfigMaps) List(opts v1.ListOptions) (result *core.ConfigMapList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(configmapsResource, configmapsKind, c.ns, opts), &api.ConfigMapList{}) + Invokes(testing.NewListAction(configmapsResource, configmapsKind, c.ns, opts), &core.ConfigMapList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeConfigMaps) List(opts v1.ListOptions) (result *api.ConfigMapList, e if label == nil { label = labels.Everything() } - list := &api.ConfigMapList{} - for _, item := range obj.(*api.ConfigMapList).Items { + list := &core.ConfigMapList{} + for _, item := range obj.(*core.ConfigMapList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,31 +77,31 @@ func (c *FakeConfigMaps) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a configMap and creates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *FakeConfigMaps) Create(configMap *api.ConfigMap) (result *api.ConfigMap, err error) { +func (c *FakeConfigMaps) Create(configMap *core.ConfigMap) (result *core.ConfigMap, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(configmapsResource, c.ns, configMap), &api.ConfigMap{}) + Invokes(testing.NewCreateAction(configmapsResource, c.ns, configMap), &core.ConfigMap{}) if obj == nil { return nil, err } - return obj.(*api.ConfigMap), err + return obj.(*core.ConfigMap), err } // Update takes the representation of a configMap and updates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *FakeConfigMaps) Update(configMap *api.ConfigMap) (result *api.ConfigMap, err error) { +func (c *FakeConfigMaps) Update(configMap *core.ConfigMap) (result *core.ConfigMap, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(configmapsResource, c.ns, configMap), &api.ConfigMap{}) + Invokes(testing.NewUpdateAction(configmapsResource, c.ns, configMap), &core.ConfigMap{}) if obj == nil { return nil, err } - return obj.(*api.ConfigMap), err + return obj.(*core.ConfigMap), err } // Delete takes name of the configMap and deletes it. Returns an error if one occurs. func (c *FakeConfigMaps) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(configmapsResource, c.ns, name), &api.ConfigMap{}) + Invokes(testing.NewDeleteAction(configmapsResource, c.ns, name), &core.ConfigMap{}) return err } @@ -110,17 +110,17 @@ func (c *FakeConfigMaps) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeConfigMaps) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(configmapsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.ConfigMapList{}) + _, err := c.Fake.Invokes(action, &core.ConfigMapList{}) return err } // Patch applies the patch and returns the patched configMap. -func (c *FakeConfigMaps) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ConfigMap, err error) { +func (c *FakeConfigMaps) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ConfigMap, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(configmapsResource, c.ns, name, data, subresources...), &api.ConfigMap{}) + Invokes(testing.NewPatchSubresourceAction(configmapsResource, c.ns, name, data, subresources...), &core.ConfigMap{}) if obj == nil { return nil, err } - return obj.(*api.ConfigMap), err + return obj.(*core.ConfigMap), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_endpoints.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_endpoints.go index 4e31fdcdd..bfe1ee924 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_endpoints.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_endpoints.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeEndpoints implements EndpointsInterface @@ -37,20 +37,20 @@ var endpointsResource = schema.GroupVersionResource{Group: "", Version: "", Reso var endpointsKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "Endpoints"} // Get takes name of the endpoints, and returns the corresponding endpoints object, and an error if there is any. -func (c *FakeEndpoints) Get(name string, options v1.GetOptions) (result *api.Endpoints, err error) { +func (c *FakeEndpoints) Get(name string, options v1.GetOptions) (result *core.Endpoints, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(endpointsResource, c.ns, name), &api.Endpoints{}) + Invokes(testing.NewGetAction(endpointsResource, c.ns, name), &core.Endpoints{}) if obj == nil { return nil, err } - return obj.(*api.Endpoints), err + return obj.(*core.Endpoints), err } // List takes label and field selectors, and returns the list of Endpoints that match those selectors. -func (c *FakeEndpoints) List(opts v1.ListOptions) (result *api.EndpointsList, err error) { +func (c *FakeEndpoints) List(opts v1.ListOptions) (result *core.EndpointsList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(endpointsResource, endpointsKind, c.ns, opts), &api.EndpointsList{}) + Invokes(testing.NewListAction(endpointsResource, endpointsKind, c.ns, opts), &core.EndpointsList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeEndpoints) List(opts v1.ListOptions) (result *api.EndpointsList, er if label == nil { label = labels.Everything() } - list := &api.EndpointsList{} - for _, item := range obj.(*api.EndpointsList).Items { + list := &core.EndpointsList{} + for _, item := range obj.(*core.EndpointsList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,31 +77,31 @@ func (c *FakeEndpoints) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a endpoints and creates it. Returns the server's representation of the endpoints, and an error, if there is any. -func (c *FakeEndpoints) Create(endpoints *api.Endpoints) (result *api.Endpoints, err error) { +func (c *FakeEndpoints) Create(endpoints *core.Endpoints) (result *core.Endpoints, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(endpointsResource, c.ns, endpoints), &api.Endpoints{}) + Invokes(testing.NewCreateAction(endpointsResource, c.ns, endpoints), &core.Endpoints{}) if obj == nil { return nil, err } - return obj.(*api.Endpoints), err + return obj.(*core.Endpoints), err } // Update takes the representation of a endpoints and updates it. Returns the server's representation of the endpoints, and an error, if there is any. -func (c *FakeEndpoints) Update(endpoints *api.Endpoints) (result *api.Endpoints, err error) { +func (c *FakeEndpoints) Update(endpoints *core.Endpoints) (result *core.Endpoints, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(endpointsResource, c.ns, endpoints), &api.Endpoints{}) + Invokes(testing.NewUpdateAction(endpointsResource, c.ns, endpoints), &core.Endpoints{}) if obj == nil { return nil, err } - return obj.(*api.Endpoints), err + return obj.(*core.Endpoints), err } // Delete takes name of the endpoints and deletes it. Returns an error if one occurs. func (c *FakeEndpoints) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(endpointsResource, c.ns, name), &api.Endpoints{}) + Invokes(testing.NewDeleteAction(endpointsResource, c.ns, name), &core.Endpoints{}) return err } @@ -110,17 +110,17 @@ func (c *FakeEndpoints) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeEndpoints) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(endpointsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.EndpointsList{}) + _, err := c.Fake.Invokes(action, &core.EndpointsList{}) return err } // Patch applies the patch and returns the patched endpoints. -func (c *FakeEndpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Endpoints, err error) { +func (c *FakeEndpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Endpoints, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(endpointsResource, c.ns, name, data, subresources...), &api.Endpoints{}) + Invokes(testing.NewPatchSubresourceAction(endpointsResource, c.ns, name, data, subresources...), &core.Endpoints{}) if obj == nil { return nil, err } - return obj.(*api.Endpoints), err + return obj.(*core.Endpoints), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_event.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_event.go index 3242483df..52dfe1667 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_event.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_event.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeEvents implements EventInterface @@ -37,20 +37,20 @@ var eventsResource = schema.GroupVersionResource{Group: "", Version: "", Resourc var eventsKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "Event"} // Get takes name of the event, and returns the corresponding event object, and an error if there is any. -func (c *FakeEvents) Get(name string, options v1.GetOptions) (result *api.Event, err error) { +func (c *FakeEvents) Get(name string, options v1.GetOptions) (result *core.Event, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(eventsResource, c.ns, name), &api.Event{}) + Invokes(testing.NewGetAction(eventsResource, c.ns, name), &core.Event{}) if obj == nil { return nil, err } - return obj.(*api.Event), err + return obj.(*core.Event), err } // List takes label and field selectors, and returns the list of Events that match those selectors. -func (c *FakeEvents) List(opts v1.ListOptions) (result *api.EventList, err error) { +func (c *FakeEvents) List(opts v1.ListOptions) (result *core.EventList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(eventsResource, eventsKind, c.ns, opts), &api.EventList{}) + Invokes(testing.NewListAction(eventsResource, eventsKind, c.ns, opts), &core.EventList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeEvents) List(opts v1.ListOptions) (result *api.EventList, err error if label == nil { label = labels.Everything() } - list := &api.EventList{} - for _, item := range obj.(*api.EventList).Items { + list := &core.EventList{} + for _, item := range obj.(*core.EventList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,31 +77,31 @@ func (c *FakeEvents) Watch(opts v1.ListOptions) (watch.Interface, error) { } // 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 *FakeEvents) Create(event *api.Event) (result *api.Event, err error) { +func (c *FakeEvents) Create(event *core.Event) (result *core.Event, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(eventsResource, c.ns, event), &api.Event{}) + Invokes(testing.NewCreateAction(eventsResource, c.ns, event), &core.Event{}) if obj == nil { return nil, err } - return obj.(*api.Event), err + return obj.(*core.Event), err } // 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 *FakeEvents) Update(event *api.Event) (result *api.Event, err error) { +func (c *FakeEvents) Update(event *core.Event) (result *core.Event, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(eventsResource, c.ns, event), &api.Event{}) + Invokes(testing.NewUpdateAction(eventsResource, c.ns, event), &core.Event{}) if obj == nil { return nil, err } - return obj.(*api.Event), err + return obj.(*core.Event), err } // Delete takes name of the event and deletes it. Returns an error if one occurs. func (c *FakeEvents) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(eventsResource, c.ns, name), &api.Event{}) + Invokes(testing.NewDeleteAction(eventsResource, c.ns, name), &core.Event{}) return err } @@ -110,17 +110,17 @@ func (c *FakeEvents) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeEvents) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(eventsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.EventList{}) + _, err := c.Fake.Invokes(action, &core.EventList{}) return err } // Patch applies the patch and returns the patched event. -func (c *FakeEvents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Event, err error) { +func (c *FakeEvents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Event, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, data, subresources...), &api.Event{}) + Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, data, subresources...), &core.Event{}) if obj == nil { return nil, err } - return obj.(*api.Event), err + return obj.(*core.Event), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_event_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_event_expansion.go index 283578a58..3adbbac70 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_event_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_event_expansion.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func (c *FakeEvents) CreateWithEventNamespace(event *api.Event) (*api.Event, error) { diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_limitrange.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_limitrange.go index 7323825c6..89287b620 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_limitrange.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_limitrange.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeLimitRanges implements LimitRangeInterface @@ -37,20 +37,20 @@ var limitrangesResource = schema.GroupVersionResource{Group: "", Version: "", Re var limitrangesKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "LimitRange"} // Get takes name of the limitRange, and returns the corresponding limitRange object, and an error if there is any. -func (c *FakeLimitRanges) Get(name string, options v1.GetOptions) (result *api.LimitRange, err error) { +func (c *FakeLimitRanges) Get(name string, options v1.GetOptions) (result *core.LimitRange, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(limitrangesResource, c.ns, name), &api.LimitRange{}) + Invokes(testing.NewGetAction(limitrangesResource, c.ns, name), &core.LimitRange{}) if obj == nil { return nil, err } - return obj.(*api.LimitRange), err + return obj.(*core.LimitRange), err } // List takes label and field selectors, and returns the list of LimitRanges that match those selectors. -func (c *FakeLimitRanges) List(opts v1.ListOptions) (result *api.LimitRangeList, err error) { +func (c *FakeLimitRanges) List(opts v1.ListOptions) (result *core.LimitRangeList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(limitrangesResource, limitrangesKind, c.ns, opts), &api.LimitRangeList{}) + Invokes(testing.NewListAction(limitrangesResource, limitrangesKind, c.ns, opts), &core.LimitRangeList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeLimitRanges) List(opts v1.ListOptions) (result *api.LimitRangeList, if label == nil { label = labels.Everything() } - list := &api.LimitRangeList{} - for _, item := range obj.(*api.LimitRangeList).Items { + list := &core.LimitRangeList{} + for _, item := range obj.(*core.LimitRangeList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,31 +77,31 @@ func (c *FakeLimitRanges) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a limitRange and creates it. Returns the server's representation of the limitRange, and an error, if there is any. -func (c *FakeLimitRanges) Create(limitRange *api.LimitRange) (result *api.LimitRange, err error) { +func (c *FakeLimitRanges) Create(limitRange *core.LimitRange) (result *core.LimitRange, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(limitrangesResource, c.ns, limitRange), &api.LimitRange{}) + Invokes(testing.NewCreateAction(limitrangesResource, c.ns, limitRange), &core.LimitRange{}) if obj == nil { return nil, err } - return obj.(*api.LimitRange), err + return obj.(*core.LimitRange), err } // Update takes the representation of a limitRange and updates it. Returns the server's representation of the limitRange, and an error, if there is any. -func (c *FakeLimitRanges) Update(limitRange *api.LimitRange) (result *api.LimitRange, err error) { +func (c *FakeLimitRanges) Update(limitRange *core.LimitRange) (result *core.LimitRange, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(limitrangesResource, c.ns, limitRange), &api.LimitRange{}) + Invokes(testing.NewUpdateAction(limitrangesResource, c.ns, limitRange), &core.LimitRange{}) if obj == nil { return nil, err } - return obj.(*api.LimitRange), err + return obj.(*core.LimitRange), err } // Delete takes name of the limitRange and deletes it. Returns an error if one occurs. func (c *FakeLimitRanges) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(limitrangesResource, c.ns, name), &api.LimitRange{}) + Invokes(testing.NewDeleteAction(limitrangesResource, c.ns, name), &core.LimitRange{}) return err } @@ -110,17 +110,17 @@ func (c *FakeLimitRanges) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeLimitRanges) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(limitrangesResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.LimitRangeList{}) + _, err := c.Fake.Invokes(action, &core.LimitRangeList{}) return err } // Patch applies the patch and returns the patched limitRange. -func (c *FakeLimitRanges) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.LimitRange, err error) { +func (c *FakeLimitRanges) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.LimitRange, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(limitrangesResource, c.ns, name, data, subresources...), &api.LimitRange{}) + Invokes(testing.NewPatchSubresourceAction(limitrangesResource, c.ns, name, data, subresources...), &core.LimitRange{}) if obj == nil { return nil, err } - return obj.(*api.LimitRange), err + return obj.(*core.LimitRange), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_namespace.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_namespace.go index be812a4b8..7c5e8353e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_namespace.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_namespace.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeNamespaces implements NamespaceInterface @@ -36,19 +36,19 @@ var namespacesResource = schema.GroupVersionResource{Group: "", Version: "", Res var namespacesKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "Namespace"} // Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any. -func (c *FakeNamespaces) Get(name string, options v1.GetOptions) (result *api.Namespace, err error) { +func (c *FakeNamespaces) Get(name string, options v1.GetOptions) (result *core.Namespace, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(namespacesResource, name), &api.Namespace{}) + Invokes(testing.NewRootGetAction(namespacesResource, name), &core.Namespace{}) if obj == nil { return nil, err } - return obj.(*api.Namespace), err + return obj.(*core.Namespace), err } // List takes label and field selectors, and returns the list of Namespaces that match those selectors. -func (c *FakeNamespaces) List(opts v1.ListOptions) (result *api.NamespaceList, err error) { +func (c *FakeNamespaces) List(opts v1.ListOptions) (result *core.NamespaceList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(namespacesResource, namespacesKind, opts), &api.NamespaceList{}) + Invokes(testing.NewRootListAction(namespacesResource, namespacesKind, opts), &core.NamespaceList{}) if obj == nil { return nil, err } @@ -57,8 +57,8 @@ func (c *FakeNamespaces) List(opts v1.ListOptions) (result *api.NamespaceList, e if label == nil { label = labels.Everything() } - list := &api.NamespaceList{} - for _, item := range obj.(*api.NamespaceList).Items { + list := &core.NamespaceList{} + for _, item := range obj.(*core.NamespaceList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -73,40 +73,40 @@ func (c *FakeNamespaces) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a namespace and creates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *FakeNamespaces) Create(namespace *api.Namespace) (result *api.Namespace, err error) { +func (c *FakeNamespaces) Create(namespace *core.Namespace) (result *core.Namespace, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(namespacesResource, namespace), &api.Namespace{}) + Invokes(testing.NewRootCreateAction(namespacesResource, namespace), &core.Namespace{}) if obj == nil { return nil, err } - return obj.(*api.Namespace), err + return obj.(*core.Namespace), err } // Update takes the representation of a namespace and updates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *FakeNamespaces) Update(namespace *api.Namespace) (result *api.Namespace, err error) { +func (c *FakeNamespaces) Update(namespace *core.Namespace) (result *core.Namespace, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(namespacesResource, namespace), &api.Namespace{}) + Invokes(testing.NewRootUpdateAction(namespacesResource, namespace), &core.Namespace{}) if obj == nil { return nil, err } - return obj.(*api.Namespace), err + return obj.(*core.Namespace), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeNamespaces) UpdateStatus(namespace *api.Namespace) (*api.Namespace, error) { +func (c *FakeNamespaces) UpdateStatus(namespace *core.Namespace) (*core.Namespace, error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(namespacesResource, "status", namespace), &api.Namespace{}) + Invokes(testing.NewRootUpdateSubresourceAction(namespacesResource, "status", namespace), &core.Namespace{}) if obj == nil { return nil, err } - return obj.(*api.Namespace), err + return obj.(*core.Namespace), err } // Delete takes name of the namespace and deletes it. Returns an error if one occurs. func (c *FakeNamespaces) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(namespacesResource, name), &api.Namespace{}) + Invokes(testing.NewRootDeleteAction(namespacesResource, name), &core.Namespace{}) return err } @@ -114,16 +114,16 @@ func (c *FakeNamespaces) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeNamespaces) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(namespacesResource, listOptions) - _, err := c.Fake.Invokes(action, &api.NamespaceList{}) + _, err := c.Fake.Invokes(action, &core.NamespaceList{}) return err } // Patch applies the patch and returns the patched namespace. -func (c *FakeNamespaces) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Namespace, err error) { +func (c *FakeNamespaces) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Namespace, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(namespacesResource, name, data, subresources...), &api.Namespace{}) + Invokes(testing.NewRootPatchSubresourceAction(namespacesResource, name, data, subresources...), &core.Namespace{}) if obj == nil { return nil, err } - return obj.(*api.Namespace), err + return obj.(*core.Namespace), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_namespace_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_namespace_expansion.go index dd425cf8c..77200c72f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_namespace_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_namespace_expansion.go @@ -18,7 +18,7 @@ package fake import ( core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func (c *FakeNamespaces) Finalize(namespace *api.Namespace) (*api.Namespace, error) { diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_node.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_node.go index 55be99ece..4fdff82f6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_node.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_node.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeNodes implements NodeInterface @@ -36,19 +36,19 @@ var nodesResource = schema.GroupVersionResource{Group: "", Version: "", Resource var nodesKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "Node"} // Get takes name of the node, and returns the corresponding node object, and an error if there is any. -func (c *FakeNodes) Get(name string, options v1.GetOptions) (result *api.Node, err error) { +func (c *FakeNodes) Get(name string, options v1.GetOptions) (result *core.Node, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(nodesResource, name), &api.Node{}) + Invokes(testing.NewRootGetAction(nodesResource, name), &core.Node{}) if obj == nil { return nil, err } - return obj.(*api.Node), err + return obj.(*core.Node), err } // List takes label and field selectors, and returns the list of Nodes that match those selectors. -func (c *FakeNodes) List(opts v1.ListOptions) (result *api.NodeList, err error) { +func (c *FakeNodes) List(opts v1.ListOptions) (result *core.NodeList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(nodesResource, nodesKind, opts), &api.NodeList{}) + Invokes(testing.NewRootListAction(nodesResource, nodesKind, opts), &core.NodeList{}) if obj == nil { return nil, err } @@ -57,8 +57,8 @@ func (c *FakeNodes) List(opts v1.ListOptions) (result *api.NodeList, err error) if label == nil { label = labels.Everything() } - list := &api.NodeList{} - for _, item := range obj.(*api.NodeList).Items { + list := &core.NodeList{} + for _, item := range obj.(*core.NodeList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -73,40 +73,40 @@ func (c *FakeNodes) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a node and creates it. Returns the server's representation of the node, and an error, if there is any. -func (c *FakeNodes) Create(node *api.Node) (result *api.Node, err error) { +func (c *FakeNodes) Create(node *core.Node) (result *core.Node, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(nodesResource, node), &api.Node{}) + Invokes(testing.NewRootCreateAction(nodesResource, node), &core.Node{}) if obj == nil { return nil, err } - return obj.(*api.Node), err + return obj.(*core.Node), err } // Update takes the representation of a node and updates it. Returns the server's representation of the node, and an error, if there is any. -func (c *FakeNodes) Update(node *api.Node) (result *api.Node, err error) { +func (c *FakeNodes) Update(node *core.Node) (result *core.Node, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(nodesResource, node), &api.Node{}) + Invokes(testing.NewRootUpdateAction(nodesResource, node), &core.Node{}) if obj == nil { return nil, err } - return obj.(*api.Node), err + return obj.(*core.Node), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeNodes) UpdateStatus(node *api.Node) (*api.Node, error) { +func (c *FakeNodes) UpdateStatus(node *core.Node) (*core.Node, error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(nodesResource, "status", node), &api.Node{}) + Invokes(testing.NewRootUpdateSubresourceAction(nodesResource, "status", node), &core.Node{}) if obj == nil { return nil, err } - return obj.(*api.Node), err + return obj.(*core.Node), err } // Delete takes name of the node and deletes it. Returns an error if one occurs. func (c *FakeNodes) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(nodesResource, name), &api.Node{}) + Invokes(testing.NewRootDeleteAction(nodesResource, name), &core.Node{}) return err } @@ -114,16 +114,16 @@ func (c *FakeNodes) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeNodes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(nodesResource, listOptions) - _, err := c.Fake.Invokes(action, &api.NodeList{}) + _, err := c.Fake.Invokes(action, &core.NodeList{}) return err } // Patch applies the patch and returns the patched node. -func (c *FakeNodes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Node, err error) { +func (c *FakeNodes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Node, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(nodesResource, name, data, subresources...), &api.Node{}) + Invokes(testing.NewRootPatchSubresourceAction(nodesResource, name, data, subresources...), &core.Node{}) if obj == nil { return nil, err } - return obj.(*api.Node), err + return obj.(*core.Node), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_node_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_node_expansion.go index d119e95a4..6d5df8dc7 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_node_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_node_expansion.go @@ -18,7 +18,7 @@ package fake import ( core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func (c *FakeNodes) PatchStatus(nodeName string, data []byte) (*api.Node, error) { diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_persistentvolume.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_persistentvolume.go index b55c8cd6d..a91ff70b3 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_persistentvolume.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_persistentvolume.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakePersistentVolumes implements PersistentVolumeInterface @@ -36,19 +36,19 @@ var persistentvolumesResource = schema.GroupVersionResource{Group: "", Version: var persistentvolumesKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "PersistentVolume"} // Get takes name of the persistentVolume, and returns the corresponding persistentVolume object, and an error if there is any. -func (c *FakePersistentVolumes) Get(name string, options v1.GetOptions) (result *api.PersistentVolume, err error) { +func (c *FakePersistentVolumes) Get(name string, options v1.GetOptions) (result *core.PersistentVolume, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(persistentvolumesResource, name), &api.PersistentVolume{}) + Invokes(testing.NewRootGetAction(persistentvolumesResource, name), &core.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolume), err + return obj.(*core.PersistentVolume), err } // List takes label and field selectors, and returns the list of PersistentVolumes that match those selectors. -func (c *FakePersistentVolumes) List(opts v1.ListOptions) (result *api.PersistentVolumeList, err error) { +func (c *FakePersistentVolumes) List(opts v1.ListOptions) (result *core.PersistentVolumeList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(persistentvolumesResource, persistentvolumesKind, opts), &api.PersistentVolumeList{}) + Invokes(testing.NewRootListAction(persistentvolumesResource, persistentvolumesKind, opts), &core.PersistentVolumeList{}) if obj == nil { return nil, err } @@ -57,8 +57,8 @@ func (c *FakePersistentVolumes) List(opts v1.ListOptions) (result *api.Persisten if label == nil { label = labels.Everything() } - list := &api.PersistentVolumeList{} - for _, item := range obj.(*api.PersistentVolumeList).Items { + list := &core.PersistentVolumeList{} + for _, item := range obj.(*core.PersistentVolumeList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -73,40 +73,40 @@ func (c *FakePersistentVolumes) Watch(opts v1.ListOptions) (watch.Interface, err } // Create takes the representation of a persistentVolume and creates it. Returns the server's representation of the persistentVolume, and an error, if there is any. -func (c *FakePersistentVolumes) Create(persistentVolume *api.PersistentVolume) (result *api.PersistentVolume, err error) { +func (c *FakePersistentVolumes) Create(persistentVolume *core.PersistentVolume) (result *core.PersistentVolume, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(persistentvolumesResource, persistentVolume), &api.PersistentVolume{}) + Invokes(testing.NewRootCreateAction(persistentvolumesResource, persistentVolume), &core.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolume), err + return obj.(*core.PersistentVolume), err } // Update takes the representation of a persistentVolume and updates it. Returns the server's representation of the persistentVolume, and an error, if there is any. -func (c *FakePersistentVolumes) Update(persistentVolume *api.PersistentVolume) (result *api.PersistentVolume, err error) { +func (c *FakePersistentVolumes) Update(persistentVolume *core.PersistentVolume) (result *core.PersistentVolume, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(persistentvolumesResource, persistentVolume), &api.PersistentVolume{}) + Invokes(testing.NewRootUpdateAction(persistentvolumesResource, persistentVolume), &core.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolume), err + return obj.(*core.PersistentVolume), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakePersistentVolumes) UpdateStatus(persistentVolume *api.PersistentVolume) (*api.PersistentVolume, error) { +func (c *FakePersistentVolumes) UpdateStatus(persistentVolume *core.PersistentVolume) (*core.PersistentVolume, error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(persistentvolumesResource, "status", persistentVolume), &api.PersistentVolume{}) + Invokes(testing.NewRootUpdateSubresourceAction(persistentvolumesResource, "status", persistentVolume), &core.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolume), err + return obj.(*core.PersistentVolume), err } // Delete takes name of the persistentVolume and deletes it. Returns an error if one occurs. func (c *FakePersistentVolumes) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(persistentvolumesResource, name), &api.PersistentVolume{}) + Invokes(testing.NewRootDeleteAction(persistentvolumesResource, name), &core.PersistentVolume{}) return err } @@ -114,16 +114,16 @@ func (c *FakePersistentVolumes) Delete(name string, options *v1.DeleteOptions) e func (c *FakePersistentVolumes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(persistentvolumesResource, listOptions) - _, err := c.Fake.Invokes(action, &api.PersistentVolumeList{}) + _, err := c.Fake.Invokes(action, &core.PersistentVolumeList{}) return err } // Patch applies the patch and returns the patched persistentVolume. -func (c *FakePersistentVolumes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.PersistentVolume, err error) { +func (c *FakePersistentVolumes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.PersistentVolume, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(persistentvolumesResource, name, data, subresources...), &api.PersistentVolume{}) + Invokes(testing.NewRootPatchSubresourceAction(persistentvolumesResource, name, data, subresources...), &core.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolume), err + return obj.(*core.PersistentVolume), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_persistentvolumeclaim.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_persistentvolumeclaim.go index 34727f80a..db5659ea9 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_persistentvolumeclaim.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_persistentvolumeclaim.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakePersistentVolumeClaims implements PersistentVolumeClaimInterface @@ -37,20 +37,20 @@ var persistentvolumeclaimsResource = schema.GroupVersionResource{Group: "", Vers var persistentvolumeclaimsKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "PersistentVolumeClaim"} // Get takes name of the persistentVolumeClaim, and returns the corresponding persistentVolumeClaim object, and an error if there is any. -func (c *FakePersistentVolumeClaims) Get(name string, options v1.GetOptions) (result *api.PersistentVolumeClaim, err error) { +func (c *FakePersistentVolumeClaims) Get(name string, options v1.GetOptions) (result *core.PersistentVolumeClaim, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(persistentvolumeclaimsResource, c.ns, name), &api.PersistentVolumeClaim{}) + Invokes(testing.NewGetAction(persistentvolumeclaimsResource, c.ns, name), &core.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolumeClaim), err + return obj.(*core.PersistentVolumeClaim), err } // List takes label and field selectors, and returns the list of PersistentVolumeClaims that match those selectors. -func (c *FakePersistentVolumeClaims) List(opts v1.ListOptions) (result *api.PersistentVolumeClaimList, err error) { +func (c *FakePersistentVolumeClaims) List(opts v1.ListOptions) (result *core.PersistentVolumeClaimList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(persistentvolumeclaimsResource, persistentvolumeclaimsKind, c.ns, opts), &api.PersistentVolumeClaimList{}) + Invokes(testing.NewListAction(persistentvolumeclaimsResource, persistentvolumeclaimsKind, c.ns, opts), &core.PersistentVolumeClaimList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakePersistentVolumeClaims) List(opts v1.ListOptions) (result *api.Pers if label == nil { label = labels.Everything() } - list := &api.PersistentVolumeClaimList{} - for _, item := range obj.(*api.PersistentVolumeClaimList).Items { + list := &core.PersistentVolumeClaimList{} + for _, item := range obj.(*core.PersistentVolumeClaimList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,43 +77,43 @@ func (c *FakePersistentVolumeClaims) Watch(opts v1.ListOptions) (watch.Interface } // Create takes the representation of a persistentVolumeClaim and creates it. Returns the server's representation of the persistentVolumeClaim, and an error, if there is any. -func (c *FakePersistentVolumeClaims) Create(persistentVolumeClaim *api.PersistentVolumeClaim) (result *api.PersistentVolumeClaim, err error) { +func (c *FakePersistentVolumeClaims) Create(persistentVolumeClaim *core.PersistentVolumeClaim) (result *core.PersistentVolumeClaim, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &api.PersistentVolumeClaim{}) + Invokes(testing.NewCreateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &core.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolumeClaim), err + return obj.(*core.PersistentVolumeClaim), err } // Update takes the representation of a persistentVolumeClaim and updates it. Returns the server's representation of the persistentVolumeClaim, and an error, if there is any. -func (c *FakePersistentVolumeClaims) Update(persistentVolumeClaim *api.PersistentVolumeClaim) (result *api.PersistentVolumeClaim, err error) { +func (c *FakePersistentVolumeClaims) Update(persistentVolumeClaim *core.PersistentVolumeClaim) (result *core.PersistentVolumeClaim, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &api.PersistentVolumeClaim{}) + Invokes(testing.NewUpdateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &core.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolumeClaim), err + return obj.(*core.PersistentVolumeClaim), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakePersistentVolumeClaims) UpdateStatus(persistentVolumeClaim *api.PersistentVolumeClaim) (*api.PersistentVolumeClaim, error) { +func (c *FakePersistentVolumeClaims) UpdateStatus(persistentVolumeClaim *core.PersistentVolumeClaim) (*core.PersistentVolumeClaim, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(persistentvolumeclaimsResource, "status", c.ns, persistentVolumeClaim), &api.PersistentVolumeClaim{}) + Invokes(testing.NewUpdateSubresourceAction(persistentvolumeclaimsResource, "status", c.ns, persistentVolumeClaim), &core.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolumeClaim), err + return obj.(*core.PersistentVolumeClaim), err } // Delete takes name of the persistentVolumeClaim and deletes it. Returns an error if one occurs. func (c *FakePersistentVolumeClaims) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(persistentvolumeclaimsResource, c.ns, name), &api.PersistentVolumeClaim{}) + Invokes(testing.NewDeleteAction(persistentvolumeclaimsResource, c.ns, name), &core.PersistentVolumeClaim{}) return err } @@ -122,17 +122,17 @@ func (c *FakePersistentVolumeClaims) Delete(name string, options *v1.DeleteOptio func (c *FakePersistentVolumeClaims) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(persistentvolumeclaimsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.PersistentVolumeClaimList{}) + _, err := c.Fake.Invokes(action, &core.PersistentVolumeClaimList{}) return err } // Patch applies the patch and returns the patched persistentVolumeClaim. -func (c *FakePersistentVolumeClaims) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.PersistentVolumeClaim, err error) { +func (c *FakePersistentVolumeClaims) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.PersistentVolumeClaim, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(persistentvolumeclaimsResource, c.ns, name, data, subresources...), &api.PersistentVolumeClaim{}) + Invokes(testing.NewPatchSubresourceAction(persistentvolumeclaimsResource, c.ns, name, data, subresources...), &core.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*api.PersistentVolumeClaim), err + return obj.(*core.PersistentVolumeClaim), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_pod.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_pod.go index 1fe43bd8b..2d4536ac6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_pod.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_pod.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakePods implements PodInterface @@ -37,20 +37,20 @@ var podsResource = schema.GroupVersionResource{Group: "", Version: "", Resource: var podsKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "Pod"} // Get takes name of the pod, and returns the corresponding pod object, and an error if there is any. -func (c *FakePods) Get(name string, options v1.GetOptions) (result *api.Pod, err error) { +func (c *FakePods) Get(name string, options v1.GetOptions) (result *core.Pod, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(podsResource, c.ns, name), &api.Pod{}) + Invokes(testing.NewGetAction(podsResource, c.ns, name), &core.Pod{}) if obj == nil { return nil, err } - return obj.(*api.Pod), err + return obj.(*core.Pod), err } // List takes label and field selectors, and returns the list of Pods that match those selectors. -func (c *FakePods) List(opts v1.ListOptions) (result *api.PodList, err error) { +func (c *FakePods) List(opts v1.ListOptions) (result *core.PodList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(podsResource, podsKind, c.ns, opts), &api.PodList{}) + Invokes(testing.NewListAction(podsResource, podsKind, c.ns, opts), &core.PodList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakePods) List(opts v1.ListOptions) (result *api.PodList, err error) { if label == nil { label = labels.Everything() } - list := &api.PodList{} - for _, item := range obj.(*api.PodList).Items { + list := &core.PodList{} + for _, item := range obj.(*core.PodList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,43 +77,43 @@ func (c *FakePods) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a pod and creates it. Returns the server's representation of the pod, and an error, if there is any. -func (c *FakePods) Create(pod *api.Pod) (result *api.Pod, err error) { +func (c *FakePods) Create(pod *core.Pod) (result *core.Pod, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(podsResource, c.ns, pod), &api.Pod{}) + Invokes(testing.NewCreateAction(podsResource, c.ns, pod), &core.Pod{}) if obj == nil { return nil, err } - return obj.(*api.Pod), err + return obj.(*core.Pod), err } // Update takes the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any. -func (c *FakePods) Update(pod *api.Pod) (result *api.Pod, err error) { +func (c *FakePods) Update(pod *core.Pod) (result *core.Pod, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(podsResource, c.ns, pod), &api.Pod{}) + Invokes(testing.NewUpdateAction(podsResource, c.ns, pod), &core.Pod{}) if obj == nil { return nil, err } - return obj.(*api.Pod), err + return obj.(*core.Pod), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakePods) UpdateStatus(pod *api.Pod) (*api.Pod, error) { +func (c *FakePods) UpdateStatus(pod *core.Pod) (*core.Pod, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(podsResource, "status", c.ns, pod), &api.Pod{}) + Invokes(testing.NewUpdateSubresourceAction(podsResource, "status", c.ns, pod), &core.Pod{}) if obj == nil { return nil, err } - return obj.(*api.Pod), err + return obj.(*core.Pod), err } // Delete takes name of the pod and deletes it. Returns an error if one occurs. func (c *FakePods) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(podsResource, c.ns, name), &api.Pod{}) + Invokes(testing.NewDeleteAction(podsResource, c.ns, name), &core.Pod{}) return err } @@ -122,17 +122,17 @@ func (c *FakePods) Delete(name string, options *v1.DeleteOptions) error { func (c *FakePods) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(podsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.PodList{}) + _, err := c.Fake.Invokes(action, &core.PodList{}) return err } // Patch applies the patch and returns the patched pod. -func (c *FakePods) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Pod, err error) { +func (c *FakePods) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Pod, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(podsResource, c.ns, name, data, subresources...), &api.Pod{}) + Invokes(testing.NewPatchSubresourceAction(podsResource, c.ns, name, data, subresources...), &core.Pod{}) if obj == nil { return nil, err } - return obj.(*api.Pod), err + return obj.(*core.Pod), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_pod_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_pod_expansion.go index 8e94319ea..8853f9eee 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_pod_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_pod_expansion.go @@ -19,7 +19,7 @@ package fake import ( restclient "k8s.io/client-go/rest" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func (c *FakePods) Bind(binding *api.Binding) error { diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_podtemplate.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_podtemplate.go index 770ca16d8..4da291103 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_podtemplate.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_podtemplate.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakePodTemplates implements PodTemplateInterface @@ -37,20 +37,20 @@ var podtemplatesResource = schema.GroupVersionResource{Group: "", Version: "", R var podtemplatesKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "PodTemplate"} // Get takes name of the podTemplate, and returns the corresponding podTemplate object, and an error if there is any. -func (c *FakePodTemplates) Get(name string, options v1.GetOptions) (result *api.PodTemplate, err error) { +func (c *FakePodTemplates) Get(name string, options v1.GetOptions) (result *core.PodTemplate, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(podtemplatesResource, c.ns, name), &api.PodTemplate{}) + Invokes(testing.NewGetAction(podtemplatesResource, c.ns, name), &core.PodTemplate{}) if obj == nil { return nil, err } - return obj.(*api.PodTemplate), err + return obj.(*core.PodTemplate), err } // List takes label and field selectors, and returns the list of PodTemplates that match those selectors. -func (c *FakePodTemplates) List(opts v1.ListOptions) (result *api.PodTemplateList, err error) { +func (c *FakePodTemplates) List(opts v1.ListOptions) (result *core.PodTemplateList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(podtemplatesResource, podtemplatesKind, c.ns, opts), &api.PodTemplateList{}) + Invokes(testing.NewListAction(podtemplatesResource, podtemplatesKind, c.ns, opts), &core.PodTemplateList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakePodTemplates) List(opts v1.ListOptions) (result *api.PodTemplateLis if label == nil { label = labels.Everything() } - list := &api.PodTemplateList{} - for _, item := range obj.(*api.PodTemplateList).Items { + list := &core.PodTemplateList{} + for _, item := range obj.(*core.PodTemplateList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,31 +77,31 @@ func (c *FakePodTemplates) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a podTemplate and creates it. Returns the server's representation of the podTemplate, and an error, if there is any. -func (c *FakePodTemplates) Create(podTemplate *api.PodTemplate) (result *api.PodTemplate, err error) { +func (c *FakePodTemplates) Create(podTemplate *core.PodTemplate) (result *core.PodTemplate, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(podtemplatesResource, c.ns, podTemplate), &api.PodTemplate{}) + Invokes(testing.NewCreateAction(podtemplatesResource, c.ns, podTemplate), &core.PodTemplate{}) if obj == nil { return nil, err } - return obj.(*api.PodTemplate), err + return obj.(*core.PodTemplate), err } // Update takes the representation of a podTemplate and updates it. Returns the server's representation of the podTemplate, and an error, if there is any. -func (c *FakePodTemplates) Update(podTemplate *api.PodTemplate) (result *api.PodTemplate, err error) { +func (c *FakePodTemplates) Update(podTemplate *core.PodTemplate) (result *core.PodTemplate, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(podtemplatesResource, c.ns, podTemplate), &api.PodTemplate{}) + Invokes(testing.NewUpdateAction(podtemplatesResource, c.ns, podTemplate), &core.PodTemplate{}) if obj == nil { return nil, err } - return obj.(*api.PodTemplate), err + return obj.(*core.PodTemplate), err } // Delete takes name of the podTemplate and deletes it. Returns an error if one occurs. func (c *FakePodTemplates) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(podtemplatesResource, c.ns, name), &api.PodTemplate{}) + Invokes(testing.NewDeleteAction(podtemplatesResource, c.ns, name), &core.PodTemplate{}) return err } @@ -110,17 +110,17 @@ func (c *FakePodTemplates) Delete(name string, options *v1.DeleteOptions) error func (c *FakePodTemplates) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(podtemplatesResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.PodTemplateList{}) + _, err := c.Fake.Invokes(action, &core.PodTemplateList{}) return err } // Patch applies the patch and returns the patched podTemplate. -func (c *FakePodTemplates) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.PodTemplate, err error) { +func (c *FakePodTemplates) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.PodTemplate, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(podtemplatesResource, c.ns, name, data, subresources...), &api.PodTemplate{}) + Invokes(testing.NewPatchSubresourceAction(podtemplatesResource, c.ns, name, data, subresources...), &core.PodTemplate{}) if obj == nil { return nil, err } - return obj.(*api.PodTemplate), err + return obj.(*core.PodTemplate), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_replicationcontroller.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_replicationcontroller.go index 80e7de10f..9e14923e8 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_replicationcontroller.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_replicationcontroller.go @@ -23,8 +23,8 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" - extensions "k8s.io/kubernetes/pkg/apis/extensions" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeReplicationControllers implements ReplicationControllerInterface @@ -38,20 +38,20 @@ var replicationcontrollersResource = schema.GroupVersionResource{Group: "", Vers var replicationcontrollersKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "ReplicationController"} // Get takes name of the replicationController, and returns the corresponding replicationController object, and an error if there is any. -func (c *FakeReplicationControllers) Get(name string, options v1.GetOptions) (result *api.ReplicationController, err error) { +func (c *FakeReplicationControllers) Get(name string, options v1.GetOptions) (result *core.ReplicationController, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(replicationcontrollersResource, c.ns, name), &api.ReplicationController{}) + Invokes(testing.NewGetAction(replicationcontrollersResource, c.ns, name), &core.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*api.ReplicationController), err + return obj.(*core.ReplicationController), err } // List takes label and field selectors, and returns the list of ReplicationControllers that match those selectors. -func (c *FakeReplicationControllers) List(opts v1.ListOptions) (result *api.ReplicationControllerList, err error) { +func (c *FakeReplicationControllers) List(opts v1.ListOptions) (result *core.ReplicationControllerList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(replicationcontrollersResource, replicationcontrollersKind, c.ns, opts), &api.ReplicationControllerList{}) + Invokes(testing.NewListAction(replicationcontrollersResource, replicationcontrollersKind, c.ns, opts), &core.ReplicationControllerList{}) if obj == nil { return nil, err @@ -61,8 +61,8 @@ func (c *FakeReplicationControllers) List(opts v1.ListOptions) (result *api.Repl if label == nil { label = labels.Everything() } - list := &api.ReplicationControllerList{} - for _, item := range obj.(*api.ReplicationControllerList).Items { + list := &core.ReplicationControllerList{} + for _, item := range obj.(*core.ReplicationControllerList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -78,43 +78,43 @@ func (c *FakeReplicationControllers) Watch(opts v1.ListOptions) (watch.Interface } // Create takes the representation of a replicationController and creates it. Returns the server's representation of the replicationController, and an error, if there is any. -func (c *FakeReplicationControllers) Create(replicationController *api.ReplicationController) (result *api.ReplicationController, err error) { +func (c *FakeReplicationControllers) Create(replicationController *core.ReplicationController) (result *core.ReplicationController, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(replicationcontrollersResource, c.ns, replicationController), &api.ReplicationController{}) + Invokes(testing.NewCreateAction(replicationcontrollersResource, c.ns, replicationController), &core.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*api.ReplicationController), err + return obj.(*core.ReplicationController), err } // Update takes the representation of a replicationController and updates it. Returns the server's representation of the replicationController, and an error, if there is any. -func (c *FakeReplicationControllers) Update(replicationController *api.ReplicationController) (result *api.ReplicationController, err error) { +func (c *FakeReplicationControllers) Update(replicationController *core.ReplicationController) (result *core.ReplicationController, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(replicationcontrollersResource, c.ns, replicationController), &api.ReplicationController{}) + Invokes(testing.NewUpdateAction(replicationcontrollersResource, c.ns, replicationController), &core.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*api.ReplicationController), err + return obj.(*core.ReplicationController), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeReplicationControllers) UpdateStatus(replicationController *api.ReplicationController) (*api.ReplicationController, error) { +func (c *FakeReplicationControllers) UpdateStatus(replicationController *core.ReplicationController) (*core.ReplicationController, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, "status", c.ns, replicationController), &api.ReplicationController{}) + Invokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, "status", c.ns, replicationController), &core.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*api.ReplicationController), err + return obj.(*core.ReplicationController), err } // Delete takes name of the replicationController and deletes it. Returns an error if one occurs. func (c *FakeReplicationControllers) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(replicationcontrollersResource, c.ns, name), &api.ReplicationController{}) + Invokes(testing.NewDeleteAction(replicationcontrollersResource, c.ns, name), &core.ReplicationController{}) return err } @@ -123,39 +123,39 @@ func (c *FakeReplicationControllers) Delete(name string, options *v1.DeleteOptio func (c *FakeReplicationControllers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(replicationcontrollersResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.ReplicationControllerList{}) + _, err := c.Fake.Invokes(action, &core.ReplicationControllerList{}) return err } // Patch applies the patch and returns the patched replicationController. -func (c *FakeReplicationControllers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ReplicationController, err error) { +func (c *FakeReplicationControllers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ReplicationController, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(replicationcontrollersResource, c.ns, name, data, subresources...), &api.ReplicationController{}) + Invokes(testing.NewPatchSubresourceAction(replicationcontrollersResource, c.ns, name, data, subresources...), &core.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*api.ReplicationController), err + return obj.(*core.ReplicationController), err } // GetScale takes name of the replicationController, and returns the corresponding scale object, and an error if there is any. -func (c *FakeReplicationControllers) GetScale(replicationControllerName string, options v1.GetOptions) (result *extensions.Scale, err error) { +func (c *FakeReplicationControllers) GetScale(replicationControllerName string, options v1.GetOptions) (result *autoscaling.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewGetSubresourceAction(replicationcontrollersResource, c.ns, "scale", replicationControllerName), &extensions.Scale{}) + Invokes(testing.NewGetSubresourceAction(replicationcontrollersResource, c.ns, "scale", replicationControllerName), &autoscaling.Scale{}) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*autoscaling.Scale), err } // UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *FakeReplicationControllers) UpdateScale(replicationControllerName string, scale *extensions.Scale) (result *extensions.Scale, err error) { +func (c *FakeReplicationControllers) UpdateScale(replicationControllerName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, "scale", c.ns, scale), &extensions.Scale{}) + Invokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, "scale", c.ns, scale), &autoscaling.Scale{}) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*autoscaling.Scale), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_resourcequota.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_resourcequota.go index 610f24c1b..b73040db6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_resourcequota.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_resourcequota.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeResourceQuotas implements ResourceQuotaInterface @@ -37,20 +37,20 @@ var resourcequotasResource = schema.GroupVersionResource{Group: "", Version: "", var resourcequotasKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "ResourceQuota"} // Get takes name of the resourceQuota, and returns the corresponding resourceQuota object, and an error if there is any. -func (c *FakeResourceQuotas) Get(name string, options v1.GetOptions) (result *api.ResourceQuota, err error) { +func (c *FakeResourceQuotas) Get(name string, options v1.GetOptions) (result *core.ResourceQuota, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(resourcequotasResource, c.ns, name), &api.ResourceQuota{}) + Invokes(testing.NewGetAction(resourcequotasResource, c.ns, name), &core.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*api.ResourceQuota), err + return obj.(*core.ResourceQuota), err } // List takes label and field selectors, and returns the list of ResourceQuotas that match those selectors. -func (c *FakeResourceQuotas) List(opts v1.ListOptions) (result *api.ResourceQuotaList, err error) { +func (c *FakeResourceQuotas) List(opts v1.ListOptions) (result *core.ResourceQuotaList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(resourcequotasResource, resourcequotasKind, c.ns, opts), &api.ResourceQuotaList{}) + Invokes(testing.NewListAction(resourcequotasResource, resourcequotasKind, c.ns, opts), &core.ResourceQuotaList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeResourceQuotas) List(opts v1.ListOptions) (result *api.ResourceQuot if label == nil { label = labels.Everything() } - list := &api.ResourceQuotaList{} - for _, item := range obj.(*api.ResourceQuotaList).Items { + list := &core.ResourceQuotaList{} + for _, item := range obj.(*core.ResourceQuotaList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,43 +77,43 @@ func (c *FakeResourceQuotas) Watch(opts v1.ListOptions) (watch.Interface, error) } // Create takes the representation of a resourceQuota and creates it. Returns the server's representation of the resourceQuota, and an error, if there is any. -func (c *FakeResourceQuotas) Create(resourceQuota *api.ResourceQuota) (result *api.ResourceQuota, err error) { +func (c *FakeResourceQuotas) Create(resourceQuota *core.ResourceQuota) (result *core.ResourceQuota, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(resourcequotasResource, c.ns, resourceQuota), &api.ResourceQuota{}) + Invokes(testing.NewCreateAction(resourcequotasResource, c.ns, resourceQuota), &core.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*api.ResourceQuota), err + return obj.(*core.ResourceQuota), err } // Update takes the representation of a resourceQuota and updates it. Returns the server's representation of the resourceQuota, and an error, if there is any. -func (c *FakeResourceQuotas) Update(resourceQuota *api.ResourceQuota) (result *api.ResourceQuota, err error) { +func (c *FakeResourceQuotas) Update(resourceQuota *core.ResourceQuota) (result *core.ResourceQuota, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(resourcequotasResource, c.ns, resourceQuota), &api.ResourceQuota{}) + Invokes(testing.NewUpdateAction(resourcequotasResource, c.ns, resourceQuota), &core.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*api.ResourceQuota), err + return obj.(*core.ResourceQuota), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeResourceQuotas) UpdateStatus(resourceQuota *api.ResourceQuota) (*api.ResourceQuota, error) { +func (c *FakeResourceQuotas) UpdateStatus(resourceQuota *core.ResourceQuota) (*core.ResourceQuota, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(resourcequotasResource, "status", c.ns, resourceQuota), &api.ResourceQuota{}) + Invokes(testing.NewUpdateSubresourceAction(resourcequotasResource, "status", c.ns, resourceQuota), &core.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*api.ResourceQuota), err + return obj.(*core.ResourceQuota), err } // Delete takes name of the resourceQuota and deletes it. Returns an error if one occurs. func (c *FakeResourceQuotas) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(resourcequotasResource, c.ns, name), &api.ResourceQuota{}) + Invokes(testing.NewDeleteAction(resourcequotasResource, c.ns, name), &core.ResourceQuota{}) return err } @@ -122,17 +122,17 @@ func (c *FakeResourceQuotas) Delete(name string, options *v1.DeleteOptions) erro func (c *FakeResourceQuotas) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(resourcequotasResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.ResourceQuotaList{}) + _, err := c.Fake.Invokes(action, &core.ResourceQuotaList{}) return err } // Patch applies the patch and returns the patched resourceQuota. -func (c *FakeResourceQuotas) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ResourceQuota, err error) { +func (c *FakeResourceQuotas) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ResourceQuota, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, name, data, subresources...), &api.ResourceQuota{}) + Invokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, name, data, subresources...), &core.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*api.ResourceQuota), err + return obj.(*core.ResourceQuota), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_secret.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_secret.go index 22f9cf836..5920dba25 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_secret.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_secret.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeSecrets implements SecretInterface @@ -37,20 +37,20 @@ var secretsResource = schema.GroupVersionResource{Group: "", Version: "", Resour var secretsKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "Secret"} // Get takes name of the secret, and returns the corresponding secret object, and an error if there is any. -func (c *FakeSecrets) Get(name string, options v1.GetOptions) (result *api.Secret, err error) { +func (c *FakeSecrets) Get(name string, options v1.GetOptions) (result *core.Secret, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(secretsResource, c.ns, name), &api.Secret{}) + Invokes(testing.NewGetAction(secretsResource, c.ns, name), &core.Secret{}) if obj == nil { return nil, err } - return obj.(*api.Secret), err + return obj.(*core.Secret), err } // List takes label and field selectors, and returns the list of Secrets that match those selectors. -func (c *FakeSecrets) List(opts v1.ListOptions) (result *api.SecretList, err error) { +func (c *FakeSecrets) List(opts v1.ListOptions) (result *core.SecretList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(secretsResource, secretsKind, c.ns, opts), &api.SecretList{}) + Invokes(testing.NewListAction(secretsResource, secretsKind, c.ns, opts), &core.SecretList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeSecrets) List(opts v1.ListOptions) (result *api.SecretList, err err if label == nil { label = labels.Everything() } - list := &api.SecretList{} - for _, item := range obj.(*api.SecretList).Items { + list := &core.SecretList{} + for _, item := range obj.(*core.SecretList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,31 +77,31 @@ func (c *FakeSecrets) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a secret and creates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *FakeSecrets) Create(secret *api.Secret) (result *api.Secret, err error) { +func (c *FakeSecrets) Create(secret *core.Secret) (result *core.Secret, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(secretsResource, c.ns, secret), &api.Secret{}) + Invokes(testing.NewCreateAction(secretsResource, c.ns, secret), &core.Secret{}) if obj == nil { return nil, err } - return obj.(*api.Secret), err + return obj.(*core.Secret), err } // Update takes the representation of a secret and updates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *FakeSecrets) Update(secret *api.Secret) (result *api.Secret, err error) { +func (c *FakeSecrets) Update(secret *core.Secret) (result *core.Secret, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(secretsResource, c.ns, secret), &api.Secret{}) + Invokes(testing.NewUpdateAction(secretsResource, c.ns, secret), &core.Secret{}) if obj == nil { return nil, err } - return obj.(*api.Secret), err + return obj.(*core.Secret), err } // Delete takes name of the secret and deletes it. Returns an error if one occurs. func (c *FakeSecrets) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(secretsResource, c.ns, name), &api.Secret{}) + Invokes(testing.NewDeleteAction(secretsResource, c.ns, name), &core.Secret{}) return err } @@ -110,17 +110,17 @@ func (c *FakeSecrets) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeSecrets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(secretsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.SecretList{}) + _, err := c.Fake.Invokes(action, &core.SecretList{}) return err } // Patch applies the patch and returns the patched secret. -func (c *FakeSecrets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Secret, err error) { +func (c *FakeSecrets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Secret, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(secretsResource, c.ns, name, data, subresources...), &api.Secret{}) + Invokes(testing.NewPatchSubresourceAction(secretsResource, c.ns, name, data, subresources...), &core.Secret{}) if obj == nil { return nil, err } - return obj.(*api.Secret), err + return obj.(*core.Secret), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_service.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_service.go index 337b3b34d..4c15e2e2f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_service.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_service.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeServices implements ServiceInterface @@ -37,20 +37,20 @@ var servicesResource = schema.GroupVersionResource{Group: "", Version: "", Resou var servicesKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "Service"} // Get takes name of the service, and returns the corresponding service object, and an error if there is any. -func (c *FakeServices) Get(name string, options v1.GetOptions) (result *api.Service, err error) { +func (c *FakeServices) Get(name string, options v1.GetOptions) (result *core.Service, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(servicesResource, c.ns, name), &api.Service{}) + Invokes(testing.NewGetAction(servicesResource, c.ns, name), &core.Service{}) if obj == nil { return nil, err } - return obj.(*api.Service), err + return obj.(*core.Service), err } // List takes label and field selectors, and returns the list of Services that match those selectors. -func (c *FakeServices) List(opts v1.ListOptions) (result *api.ServiceList, err error) { +func (c *FakeServices) List(opts v1.ListOptions) (result *core.ServiceList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(servicesResource, servicesKind, c.ns, opts), &api.ServiceList{}) + Invokes(testing.NewListAction(servicesResource, servicesKind, c.ns, opts), &core.ServiceList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeServices) List(opts v1.ListOptions) (result *api.ServiceList, err e if label == nil { label = labels.Everything() } - list := &api.ServiceList{} - for _, item := range obj.(*api.ServiceList).Items { + list := &core.ServiceList{} + for _, item := range obj.(*core.ServiceList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,43 +77,43 @@ func (c *FakeServices) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a service and creates it. Returns the server's representation of the service, and an error, if there is any. -func (c *FakeServices) Create(service *api.Service) (result *api.Service, err error) { +func (c *FakeServices) Create(service *core.Service) (result *core.Service, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(servicesResource, c.ns, service), &api.Service{}) + Invokes(testing.NewCreateAction(servicesResource, c.ns, service), &core.Service{}) if obj == nil { return nil, err } - return obj.(*api.Service), err + return obj.(*core.Service), err } // Update takes the representation of a service and updates it. Returns the server's representation of the service, and an error, if there is any. -func (c *FakeServices) Update(service *api.Service) (result *api.Service, err error) { +func (c *FakeServices) Update(service *core.Service) (result *core.Service, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(servicesResource, c.ns, service), &api.Service{}) + Invokes(testing.NewUpdateAction(servicesResource, c.ns, service), &core.Service{}) if obj == nil { return nil, err } - return obj.(*api.Service), err + return obj.(*core.Service), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeServices) UpdateStatus(service *api.Service) (*api.Service, error) { +func (c *FakeServices) UpdateStatus(service *core.Service) (*core.Service, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(servicesResource, "status", c.ns, service), &api.Service{}) + Invokes(testing.NewUpdateSubresourceAction(servicesResource, "status", c.ns, service), &core.Service{}) if obj == nil { return nil, err } - return obj.(*api.Service), err + return obj.(*core.Service), err } // Delete takes name of the service and deletes it. Returns an error if one occurs. func (c *FakeServices) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(servicesResource, c.ns, name), &api.Service{}) + Invokes(testing.NewDeleteAction(servicesResource, c.ns, name), &core.Service{}) return err } @@ -122,17 +122,17 @@ func (c *FakeServices) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeServices) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(servicesResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.ServiceList{}) + _, err := c.Fake.Invokes(action, &core.ServiceList{}) return err } // Patch applies the patch and returns the patched service. -func (c *FakeServices) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Service, err error) { +func (c *FakeServices) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Service, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, name, data, subresources...), &api.Service{}) + Invokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, name, data, subresources...), &core.Service{}) if obj == nil { return nil, err } - return obj.(*api.Service), err + return obj.(*core.Service), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_serviceaccount.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_serviceaccount.go index 07b893b0d..1776b4ed6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_serviceaccount.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/fake_serviceaccount.go @@ -23,7 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // FakeServiceAccounts implements ServiceAccountInterface @@ -37,20 +37,20 @@ var serviceaccountsResource = schema.GroupVersionResource{Group: "", Version: "" var serviceaccountsKind = schema.GroupVersionKind{Group: "", Version: "", Kind: "ServiceAccount"} // Get takes name of the serviceAccount, and returns the corresponding serviceAccount object, and an error if there is any. -func (c *FakeServiceAccounts) Get(name string, options v1.GetOptions) (result *api.ServiceAccount, err error) { +func (c *FakeServiceAccounts) Get(name string, options v1.GetOptions) (result *core.ServiceAccount, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(serviceaccountsResource, c.ns, name), &api.ServiceAccount{}) + Invokes(testing.NewGetAction(serviceaccountsResource, c.ns, name), &core.ServiceAccount{}) if obj == nil { return nil, err } - return obj.(*api.ServiceAccount), err + return obj.(*core.ServiceAccount), err } // List takes label and field selectors, and returns the list of ServiceAccounts that match those selectors. -func (c *FakeServiceAccounts) List(opts v1.ListOptions) (result *api.ServiceAccountList, err error) { +func (c *FakeServiceAccounts) List(opts v1.ListOptions) (result *core.ServiceAccountList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(serviceaccountsResource, serviceaccountsKind, c.ns, opts), &api.ServiceAccountList{}) + Invokes(testing.NewListAction(serviceaccountsResource, serviceaccountsKind, c.ns, opts), &core.ServiceAccountList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeServiceAccounts) List(opts v1.ListOptions) (result *api.ServiceAcco if label == nil { label = labels.Everything() } - list := &api.ServiceAccountList{} - for _, item := range obj.(*api.ServiceAccountList).Items { + list := &core.ServiceAccountList{} + for _, item := range obj.(*core.ServiceAccountList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,31 +77,31 @@ func (c *FakeServiceAccounts) Watch(opts v1.ListOptions) (watch.Interface, error } // Create takes the representation of a serviceAccount and creates it. Returns the server's representation of the serviceAccount, and an error, if there is any. -func (c *FakeServiceAccounts) Create(serviceAccount *api.ServiceAccount) (result *api.ServiceAccount, err error) { +func (c *FakeServiceAccounts) Create(serviceAccount *core.ServiceAccount) (result *core.ServiceAccount, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(serviceaccountsResource, c.ns, serviceAccount), &api.ServiceAccount{}) + Invokes(testing.NewCreateAction(serviceaccountsResource, c.ns, serviceAccount), &core.ServiceAccount{}) if obj == nil { return nil, err } - return obj.(*api.ServiceAccount), err + return obj.(*core.ServiceAccount), err } // Update takes the representation of a serviceAccount and updates it. Returns the server's representation of the serviceAccount, and an error, if there is any. -func (c *FakeServiceAccounts) Update(serviceAccount *api.ServiceAccount) (result *api.ServiceAccount, err error) { +func (c *FakeServiceAccounts) Update(serviceAccount *core.ServiceAccount) (result *core.ServiceAccount, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(serviceaccountsResource, c.ns, serviceAccount), &api.ServiceAccount{}) + Invokes(testing.NewUpdateAction(serviceaccountsResource, c.ns, serviceAccount), &core.ServiceAccount{}) if obj == nil { return nil, err } - return obj.(*api.ServiceAccount), err + return obj.(*core.ServiceAccount), err } // Delete takes name of the serviceAccount and deletes it. Returns an error if one occurs. func (c *FakeServiceAccounts) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(serviceaccountsResource, c.ns, name), &api.ServiceAccount{}) + Invokes(testing.NewDeleteAction(serviceaccountsResource, c.ns, name), &core.ServiceAccount{}) return err } @@ -110,17 +110,17 @@ func (c *FakeServiceAccounts) Delete(name string, options *v1.DeleteOptions) err func (c *FakeServiceAccounts) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(serviceaccountsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &api.ServiceAccountList{}) + _, err := c.Fake.Invokes(action, &core.ServiceAccountList{}) return err } // Patch applies the patch and returns the patched serviceAccount. -func (c *FakeServiceAccounts) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ServiceAccount, err error) { +func (c *FakeServiceAccounts) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ServiceAccount, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(serviceaccountsResource, c.ns, name, data, subresources...), &api.ServiceAccount{}) + Invokes(testing.NewPatchSubresourceAction(serviceaccountsResource, c.ns, name, data, subresources...), &core.ServiceAccount{}) if obj == nil { return nil, err } - return obj.(*api.ServiceAccount), err + return obj.(*core.ServiceAccount), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/limitrange.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/limitrange.go index f809d04cb..de59dda99 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/limitrange.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/limitrange.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,14 +33,14 @@ type LimitRangesGetter interface { // LimitRangeInterface has methods to work with LimitRange resources. type LimitRangeInterface interface { - Create(*api.LimitRange) (*api.LimitRange, error) - Update(*api.LimitRange) (*api.LimitRange, error) + Create(*core.LimitRange) (*core.LimitRange, error) + Update(*core.LimitRange) (*core.LimitRange, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.LimitRange, error) - List(opts v1.ListOptions) (*api.LimitRangeList, error) + Get(name string, options v1.GetOptions) (*core.LimitRange, error) + List(opts v1.ListOptions) (*core.LimitRangeList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.LimitRange, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.LimitRange, err error) LimitRangeExpansion } @@ -59,8 +59,8 @@ func newLimitRanges(c *CoreClient, namespace string) *limitRanges { } // Get takes name of the limitRange, and returns the corresponding limitRange object, and an error if there is any. -func (c *limitRanges) Get(name string, options v1.GetOptions) (result *api.LimitRange, err error) { - result = &api.LimitRange{} +func (c *limitRanges) Get(name string, options v1.GetOptions) (result *core.LimitRange, err error) { + result = &core.LimitRange{} err = c.client.Get(). Namespace(c.ns). Resource("limitranges"). @@ -72,8 +72,8 @@ func (c *limitRanges) Get(name string, options v1.GetOptions) (result *api.Limit } // List takes label and field selectors, and returns the list of LimitRanges that match those selectors. -func (c *limitRanges) List(opts v1.ListOptions) (result *api.LimitRangeList, err error) { - result = &api.LimitRangeList{} +func (c *limitRanges) List(opts v1.ListOptions) (result *core.LimitRangeList, err error) { + result = &core.LimitRangeList{} err = c.client.Get(). Namespace(c.ns). Resource("limitranges"). @@ -94,8 +94,8 @@ func (c *limitRanges) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a limitRange and creates it. Returns the server's representation of the limitRange, and an error, if there is any. -func (c *limitRanges) Create(limitRange *api.LimitRange) (result *api.LimitRange, err error) { - result = &api.LimitRange{} +func (c *limitRanges) Create(limitRange *core.LimitRange) (result *core.LimitRange, err error) { + result = &core.LimitRange{} err = c.client.Post(). Namespace(c.ns). Resource("limitranges"). @@ -106,8 +106,8 @@ func (c *limitRanges) Create(limitRange *api.LimitRange) (result *api.LimitRange } // Update takes the representation of a limitRange and updates it. Returns the server's representation of the limitRange, and an error, if there is any. -func (c *limitRanges) Update(limitRange *api.LimitRange) (result *api.LimitRange, err error) { - result = &api.LimitRange{} +func (c *limitRanges) Update(limitRange *core.LimitRange) (result *core.LimitRange, err error) { + result = &core.LimitRange{} err = c.client.Put(). Namespace(c.ns). Resource("limitranges"). @@ -141,8 +141,8 @@ func (c *limitRanges) DeleteCollection(options *v1.DeleteOptions, listOptions v1 } // Patch applies the patch and returns the patched limitRange. -func (c *limitRanges) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.LimitRange, err error) { - result = &api.LimitRange{} +func (c *limitRanges) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.LimitRange, err error) { + result = &core.LimitRange{} err = c.client.Patch(pt). Namespace(c.ns). Resource("limitranges"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/namespace.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/namespace.go index fff41e420..f4ae53883 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/namespace.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/namespace.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,15 +33,15 @@ type NamespacesGetter interface { // NamespaceInterface has methods to work with Namespace resources. type NamespaceInterface interface { - Create(*api.Namespace) (*api.Namespace, error) - Update(*api.Namespace) (*api.Namespace, error) - UpdateStatus(*api.Namespace) (*api.Namespace, error) + Create(*core.Namespace) (*core.Namespace, error) + Update(*core.Namespace) (*core.Namespace, error) + UpdateStatus(*core.Namespace) (*core.Namespace, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.Namespace, error) - List(opts v1.ListOptions) (*api.NamespaceList, error) + Get(name string, options v1.GetOptions) (*core.Namespace, error) + List(opts v1.ListOptions) (*core.NamespaceList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Namespace, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Namespace, err error) NamespaceExpansion } @@ -58,8 +58,8 @@ func newNamespaces(c *CoreClient) *namespaces { } // Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any. -func (c *namespaces) Get(name string, options v1.GetOptions) (result *api.Namespace, err error) { - result = &api.Namespace{} +func (c *namespaces) Get(name string, options v1.GetOptions) (result *core.Namespace, err error) { + result = &core.Namespace{} err = c.client.Get(). Resource("namespaces"). Name(name). @@ -70,8 +70,8 @@ func (c *namespaces) Get(name string, options v1.GetOptions) (result *api.Namesp } // List takes label and field selectors, and returns the list of Namespaces that match those selectors. -func (c *namespaces) List(opts v1.ListOptions) (result *api.NamespaceList, err error) { - result = &api.NamespaceList{} +func (c *namespaces) List(opts v1.ListOptions) (result *core.NamespaceList, err error) { + result = &core.NamespaceList{} err = c.client.Get(). Resource("namespaces"). VersionedParams(&opts, scheme.ParameterCodec). @@ -90,8 +90,8 @@ func (c *namespaces) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a namespace and creates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *namespaces) Create(namespace *api.Namespace) (result *api.Namespace, err error) { - result = &api.Namespace{} +func (c *namespaces) Create(namespace *core.Namespace) (result *core.Namespace, err error) { + result = &core.Namespace{} err = c.client.Post(). Resource("namespaces"). Body(namespace). @@ -101,8 +101,8 @@ func (c *namespaces) Create(namespace *api.Namespace) (result *api.Namespace, er } // Update takes the representation of a namespace and updates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *namespaces) Update(namespace *api.Namespace) (result *api.Namespace, err error) { - result = &api.Namespace{} +func (c *namespaces) Update(namespace *core.Namespace) (result *core.Namespace, err error) { + result = &core.Namespace{} err = c.client.Put(). Resource("namespaces"). Name(namespace.Name). @@ -115,8 +115,8 @@ func (c *namespaces) Update(namespace *api.Namespace) (result *api.Namespace, er // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *namespaces) UpdateStatus(namespace *api.Namespace) (result *api.Namespace, err error) { - result = &api.Namespace{} +func (c *namespaces) UpdateStatus(namespace *core.Namespace) (result *core.Namespace, err error) { + result = &core.Namespace{} err = c.client.Put(). Resource("namespaces"). Name(namespace.Name). @@ -148,8 +148,8 @@ func (c *namespaces) DeleteCollection(options *v1.DeleteOptions, listOptions v1. } // Patch applies the patch and returns the patched namespace. -func (c *namespaces) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Namespace, err error) { - result = &api.Namespace{} +func (c *namespaces) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Namespace, err error) { + result = &core.Namespace{} err = c.client.Patch(pt). Resource("namespaces"). SubResource(subresources...). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/namespace_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/namespace_expansion.go index 456de1cdf..29c7bcf2e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/namespace_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/namespace_expansion.go @@ -16,7 +16,9 @@ limitations under the License. package internalversion -import "k8s.io/kubernetes/pkg/api" +import ( + api "k8s.io/kubernetes/pkg/apis/core" +) // The NamespaceExpansion interface allows manually adding extra methods to the NamespaceInterface. type NamespaceExpansion interface { diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/node.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/node.go index ee11691b8..b5c92087b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/node.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/node.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,15 +33,15 @@ type NodesGetter interface { // NodeInterface has methods to work with Node resources. type NodeInterface interface { - Create(*api.Node) (*api.Node, error) - Update(*api.Node) (*api.Node, error) - UpdateStatus(*api.Node) (*api.Node, error) + Create(*core.Node) (*core.Node, error) + Update(*core.Node) (*core.Node, error) + UpdateStatus(*core.Node) (*core.Node, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.Node, error) - List(opts v1.ListOptions) (*api.NodeList, error) + Get(name string, options v1.GetOptions) (*core.Node, error) + List(opts v1.ListOptions) (*core.NodeList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Node, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Node, err error) NodeExpansion } @@ -58,8 +58,8 @@ func newNodes(c *CoreClient) *nodes { } // Get takes name of the node, and returns the corresponding node object, and an error if there is any. -func (c *nodes) Get(name string, options v1.GetOptions) (result *api.Node, err error) { - result = &api.Node{} +func (c *nodes) Get(name string, options v1.GetOptions) (result *core.Node, err error) { + result = &core.Node{} err = c.client.Get(). Resource("nodes"). Name(name). @@ -70,8 +70,8 @@ func (c *nodes) Get(name string, options v1.GetOptions) (result *api.Node, err e } // List takes label and field selectors, and returns the list of Nodes that match those selectors. -func (c *nodes) List(opts v1.ListOptions) (result *api.NodeList, err error) { - result = &api.NodeList{} +func (c *nodes) List(opts v1.ListOptions) (result *core.NodeList, err error) { + result = &core.NodeList{} err = c.client.Get(). Resource("nodes"). VersionedParams(&opts, scheme.ParameterCodec). @@ -90,8 +90,8 @@ func (c *nodes) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a node and creates it. Returns the server's representation of the node, and an error, if there is any. -func (c *nodes) Create(node *api.Node) (result *api.Node, err error) { - result = &api.Node{} +func (c *nodes) Create(node *core.Node) (result *core.Node, err error) { + result = &core.Node{} err = c.client.Post(). Resource("nodes"). Body(node). @@ -101,8 +101,8 @@ func (c *nodes) Create(node *api.Node) (result *api.Node, err error) { } // Update takes the representation of a node and updates it. Returns the server's representation of the node, and an error, if there is any. -func (c *nodes) Update(node *api.Node) (result *api.Node, err error) { - result = &api.Node{} +func (c *nodes) Update(node *core.Node) (result *core.Node, err error) { + result = &core.Node{} err = c.client.Put(). Resource("nodes"). Name(node.Name). @@ -115,8 +115,8 @@ func (c *nodes) Update(node *api.Node) (result *api.Node, err error) { // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *nodes) UpdateStatus(node *api.Node) (result *api.Node, err error) { - result = &api.Node{} +func (c *nodes) UpdateStatus(node *core.Node) (result *core.Node, err error) { + result = &core.Node{} err = c.client.Put(). Resource("nodes"). Name(node.Name). @@ -148,8 +148,8 @@ func (c *nodes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListO } // Patch applies the patch and returns the patched node. -func (c *nodes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Node, err error) { - result = &api.Node{} +func (c *nodes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Node, err error) { + result = &core.Node{} err = c.client.Patch(pt). Resource("nodes"). SubResource(subresources...). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/node_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/node_expansion.go index b02fa083b..8e29d5f1e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/node_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/node_expansion.go @@ -18,7 +18,7 @@ package internalversion import ( "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // The NodeExpansion interface allows manually adding extra methods to the NodeInterface. diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/persistentvolume.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/persistentvolume.go index 92a2657d4..9f8921c48 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/persistentvolume.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/persistentvolume.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,15 +33,15 @@ type PersistentVolumesGetter interface { // PersistentVolumeInterface has methods to work with PersistentVolume resources. type PersistentVolumeInterface interface { - Create(*api.PersistentVolume) (*api.PersistentVolume, error) - Update(*api.PersistentVolume) (*api.PersistentVolume, error) - UpdateStatus(*api.PersistentVolume) (*api.PersistentVolume, error) + Create(*core.PersistentVolume) (*core.PersistentVolume, error) + Update(*core.PersistentVolume) (*core.PersistentVolume, error) + UpdateStatus(*core.PersistentVolume) (*core.PersistentVolume, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.PersistentVolume, error) - List(opts v1.ListOptions) (*api.PersistentVolumeList, error) + Get(name string, options v1.GetOptions) (*core.PersistentVolume, error) + List(opts v1.ListOptions) (*core.PersistentVolumeList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.PersistentVolume, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.PersistentVolume, err error) PersistentVolumeExpansion } @@ -58,8 +58,8 @@ func newPersistentVolumes(c *CoreClient) *persistentVolumes { } // Get takes name of the persistentVolume, and returns the corresponding persistentVolume object, and an error if there is any. -func (c *persistentVolumes) Get(name string, options v1.GetOptions) (result *api.PersistentVolume, err error) { - result = &api.PersistentVolume{} +func (c *persistentVolumes) Get(name string, options v1.GetOptions) (result *core.PersistentVolume, err error) { + result = &core.PersistentVolume{} err = c.client.Get(). Resource("persistentvolumes"). Name(name). @@ -70,8 +70,8 @@ func (c *persistentVolumes) Get(name string, options v1.GetOptions) (result *api } // List takes label and field selectors, and returns the list of PersistentVolumes that match those selectors. -func (c *persistentVolumes) List(opts v1.ListOptions) (result *api.PersistentVolumeList, err error) { - result = &api.PersistentVolumeList{} +func (c *persistentVolumes) List(opts v1.ListOptions) (result *core.PersistentVolumeList, err error) { + result = &core.PersistentVolumeList{} err = c.client.Get(). Resource("persistentvolumes"). VersionedParams(&opts, scheme.ParameterCodec). @@ -90,8 +90,8 @@ func (c *persistentVolumes) Watch(opts v1.ListOptions) (watch.Interface, error) } // Create takes the representation of a persistentVolume and creates it. Returns the server's representation of the persistentVolume, and an error, if there is any. -func (c *persistentVolumes) Create(persistentVolume *api.PersistentVolume) (result *api.PersistentVolume, err error) { - result = &api.PersistentVolume{} +func (c *persistentVolumes) Create(persistentVolume *core.PersistentVolume) (result *core.PersistentVolume, err error) { + result = &core.PersistentVolume{} err = c.client.Post(). Resource("persistentvolumes"). Body(persistentVolume). @@ -101,8 +101,8 @@ func (c *persistentVolumes) Create(persistentVolume *api.PersistentVolume) (resu } // Update takes the representation of a persistentVolume and updates it. Returns the server's representation of the persistentVolume, and an error, if there is any. -func (c *persistentVolumes) Update(persistentVolume *api.PersistentVolume) (result *api.PersistentVolume, err error) { - result = &api.PersistentVolume{} +func (c *persistentVolumes) Update(persistentVolume *core.PersistentVolume) (result *core.PersistentVolume, err error) { + result = &core.PersistentVolume{} err = c.client.Put(). Resource("persistentvolumes"). Name(persistentVolume.Name). @@ -115,8 +115,8 @@ func (c *persistentVolumes) Update(persistentVolume *api.PersistentVolume) (resu // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *persistentVolumes) UpdateStatus(persistentVolume *api.PersistentVolume) (result *api.PersistentVolume, err error) { - result = &api.PersistentVolume{} +func (c *persistentVolumes) UpdateStatus(persistentVolume *core.PersistentVolume) (result *core.PersistentVolume, err error) { + result = &core.PersistentVolume{} err = c.client.Put(). Resource("persistentvolumes"). Name(persistentVolume.Name). @@ -148,8 +148,8 @@ func (c *persistentVolumes) DeleteCollection(options *v1.DeleteOptions, listOpti } // Patch applies the patch and returns the patched persistentVolume. -func (c *persistentVolumes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.PersistentVolume, err error) { - result = &api.PersistentVolume{} +func (c *persistentVolumes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.PersistentVolume, err error) { + result = &core.PersistentVolume{} err = c.client.Patch(pt). Resource("persistentvolumes"). SubResource(subresources...). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/persistentvolumeclaim.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/persistentvolumeclaim.go index d0db131d7..d8e2e5a3e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/persistentvolumeclaim.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/persistentvolumeclaim.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,15 +33,15 @@ type PersistentVolumeClaimsGetter interface { // PersistentVolumeClaimInterface has methods to work with PersistentVolumeClaim resources. type PersistentVolumeClaimInterface interface { - Create(*api.PersistentVolumeClaim) (*api.PersistentVolumeClaim, error) - Update(*api.PersistentVolumeClaim) (*api.PersistentVolumeClaim, error) - UpdateStatus(*api.PersistentVolumeClaim) (*api.PersistentVolumeClaim, error) + Create(*core.PersistentVolumeClaim) (*core.PersistentVolumeClaim, error) + Update(*core.PersistentVolumeClaim) (*core.PersistentVolumeClaim, error) + UpdateStatus(*core.PersistentVolumeClaim) (*core.PersistentVolumeClaim, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.PersistentVolumeClaim, error) - List(opts v1.ListOptions) (*api.PersistentVolumeClaimList, error) + Get(name string, options v1.GetOptions) (*core.PersistentVolumeClaim, error) + List(opts v1.ListOptions) (*core.PersistentVolumeClaimList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.PersistentVolumeClaim, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.PersistentVolumeClaim, err error) PersistentVolumeClaimExpansion } @@ -60,8 +60,8 @@ func newPersistentVolumeClaims(c *CoreClient, namespace string) *persistentVolum } // Get takes name of the persistentVolumeClaim, and returns the corresponding persistentVolumeClaim object, and an error if there is any. -func (c *persistentVolumeClaims) Get(name string, options v1.GetOptions) (result *api.PersistentVolumeClaim, err error) { - result = &api.PersistentVolumeClaim{} +func (c *persistentVolumeClaims) Get(name string, options v1.GetOptions) (result *core.PersistentVolumeClaim, err error) { + result = &core.PersistentVolumeClaim{} err = c.client.Get(). Namespace(c.ns). Resource("persistentvolumeclaims"). @@ -73,8 +73,8 @@ func (c *persistentVolumeClaims) Get(name string, options v1.GetOptions) (result } // List takes label and field selectors, and returns the list of PersistentVolumeClaims that match those selectors. -func (c *persistentVolumeClaims) List(opts v1.ListOptions) (result *api.PersistentVolumeClaimList, err error) { - result = &api.PersistentVolumeClaimList{} +func (c *persistentVolumeClaims) List(opts v1.ListOptions) (result *core.PersistentVolumeClaimList, err error) { + result = &core.PersistentVolumeClaimList{} err = c.client.Get(). Namespace(c.ns). Resource("persistentvolumeclaims"). @@ -95,8 +95,8 @@ func (c *persistentVolumeClaims) Watch(opts v1.ListOptions) (watch.Interface, er } // Create takes the representation of a persistentVolumeClaim and creates it. Returns the server's representation of the persistentVolumeClaim, and an error, if there is any. -func (c *persistentVolumeClaims) Create(persistentVolumeClaim *api.PersistentVolumeClaim) (result *api.PersistentVolumeClaim, err error) { - result = &api.PersistentVolumeClaim{} +func (c *persistentVolumeClaims) Create(persistentVolumeClaim *core.PersistentVolumeClaim) (result *core.PersistentVolumeClaim, err error) { + result = &core.PersistentVolumeClaim{} err = c.client.Post(). Namespace(c.ns). Resource("persistentvolumeclaims"). @@ -107,8 +107,8 @@ func (c *persistentVolumeClaims) Create(persistentVolumeClaim *api.PersistentVol } // Update takes the representation of a persistentVolumeClaim and updates it. Returns the server's representation of the persistentVolumeClaim, and an error, if there is any. -func (c *persistentVolumeClaims) Update(persistentVolumeClaim *api.PersistentVolumeClaim) (result *api.PersistentVolumeClaim, err error) { - result = &api.PersistentVolumeClaim{} +func (c *persistentVolumeClaims) Update(persistentVolumeClaim *core.PersistentVolumeClaim) (result *core.PersistentVolumeClaim, err error) { + result = &core.PersistentVolumeClaim{} err = c.client.Put(). Namespace(c.ns). Resource("persistentvolumeclaims"). @@ -122,8 +122,8 @@ func (c *persistentVolumeClaims) Update(persistentVolumeClaim *api.PersistentVol // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *persistentVolumeClaims) UpdateStatus(persistentVolumeClaim *api.PersistentVolumeClaim) (result *api.PersistentVolumeClaim, err error) { - result = &api.PersistentVolumeClaim{} +func (c *persistentVolumeClaims) UpdateStatus(persistentVolumeClaim *core.PersistentVolumeClaim) (result *core.PersistentVolumeClaim, err error) { + result = &core.PersistentVolumeClaim{} err = c.client.Put(). Namespace(c.ns). Resource("persistentvolumeclaims"). @@ -158,8 +158,8 @@ func (c *persistentVolumeClaims) DeleteCollection(options *v1.DeleteOptions, lis } // Patch applies the patch and returns the patched persistentVolumeClaim. -func (c *persistentVolumeClaims) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.PersistentVolumeClaim, err error) { - result = &api.PersistentVolumeClaim{} +func (c *persistentVolumeClaims) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.PersistentVolumeClaim, err error) { + result = &core.PersistentVolumeClaim{} err = c.client.Patch(pt). Namespace(c.ns). Resource("persistentvolumeclaims"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/pod.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/pod.go index b662689cf..7c8555329 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/pod.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/pod.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,15 +33,15 @@ type PodsGetter interface { // PodInterface has methods to work with Pod resources. type PodInterface interface { - Create(*api.Pod) (*api.Pod, error) - Update(*api.Pod) (*api.Pod, error) - UpdateStatus(*api.Pod) (*api.Pod, error) + Create(*core.Pod) (*core.Pod, error) + Update(*core.Pod) (*core.Pod, error) + UpdateStatus(*core.Pod) (*core.Pod, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.Pod, error) - List(opts v1.ListOptions) (*api.PodList, error) + Get(name string, options v1.GetOptions) (*core.Pod, error) + List(opts v1.ListOptions) (*core.PodList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Pod, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Pod, err error) PodExpansion } @@ -60,8 +60,8 @@ func newPods(c *CoreClient, namespace string) *pods { } // Get takes name of the pod, and returns the corresponding pod object, and an error if there is any. -func (c *pods) Get(name string, options v1.GetOptions) (result *api.Pod, err error) { - result = &api.Pod{} +func (c *pods) Get(name string, options v1.GetOptions) (result *core.Pod, err error) { + result = &core.Pod{} err = c.client.Get(). Namespace(c.ns). Resource("pods"). @@ -73,8 +73,8 @@ func (c *pods) Get(name string, options v1.GetOptions) (result *api.Pod, err err } // List takes label and field selectors, and returns the list of Pods that match those selectors. -func (c *pods) List(opts v1.ListOptions) (result *api.PodList, err error) { - result = &api.PodList{} +func (c *pods) List(opts v1.ListOptions) (result *core.PodList, err error) { + result = &core.PodList{} err = c.client.Get(). Namespace(c.ns). Resource("pods"). @@ -95,8 +95,8 @@ func (c *pods) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a pod and creates it. Returns the server's representation of the pod, and an error, if there is any. -func (c *pods) Create(pod *api.Pod) (result *api.Pod, err error) { - result = &api.Pod{} +func (c *pods) Create(pod *core.Pod) (result *core.Pod, err error) { + result = &core.Pod{} err = c.client.Post(). Namespace(c.ns). Resource("pods"). @@ -107,8 +107,8 @@ func (c *pods) Create(pod *api.Pod) (result *api.Pod, err error) { } // Update takes the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any. -func (c *pods) Update(pod *api.Pod) (result *api.Pod, err error) { - result = &api.Pod{} +func (c *pods) Update(pod *core.Pod) (result *core.Pod, err error) { + result = &core.Pod{} err = c.client.Put(). Namespace(c.ns). Resource("pods"). @@ -122,8 +122,8 @@ func (c *pods) Update(pod *api.Pod) (result *api.Pod, err error) { // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *pods) UpdateStatus(pod *api.Pod) (result *api.Pod, err error) { - result = &api.Pod{} +func (c *pods) UpdateStatus(pod *core.Pod) (result *core.Pod, err error) { + result = &core.Pod{} err = c.client.Put(). Namespace(c.ns). Resource("pods"). @@ -158,8 +158,8 @@ func (c *pods) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOp } // Patch applies the patch and returns the patched pod. -func (c *pods) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Pod, err error) { - result = &api.Pod{} +func (c *pods) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Pod, err error) { + result = &core.Pod{} err = c.client.Patch(pt). Namespace(c.ns). Resource("pods"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/pod_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/pod_expansion.go index d6ea139a4..86fead7cc 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/pod_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/pod_expansion.go @@ -18,7 +18,8 @@ package internalversion import ( restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" ) // The PodExpansion interface allows manually adding extra methods to the PodInterface. @@ -34,5 +35,5 @@ func (c *pods) Bind(binding *api.Binding) error { // Get constructs a request for getting the logs for a pod func (c *pods) GetLogs(name string, opts *api.PodLogOptions) *restclient.Request { - return c.client.Get().Namespace(c.ns).Name(name).Resource("pods").SubResource("log").VersionedParams(opts, api.ParameterCodec) + return c.client.Get().Namespace(c.ns).Name(name).Resource("pods").SubResource("log").VersionedParams(opts, legacyscheme.ParameterCodec) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/podtemplate.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/podtemplate.go index 8a940bf6b..49723c120 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/podtemplate.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/podtemplate.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,14 +33,14 @@ type PodTemplatesGetter interface { // PodTemplateInterface has methods to work with PodTemplate resources. type PodTemplateInterface interface { - Create(*api.PodTemplate) (*api.PodTemplate, error) - Update(*api.PodTemplate) (*api.PodTemplate, error) + Create(*core.PodTemplate) (*core.PodTemplate, error) + Update(*core.PodTemplate) (*core.PodTemplate, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.PodTemplate, error) - List(opts v1.ListOptions) (*api.PodTemplateList, error) + Get(name string, options v1.GetOptions) (*core.PodTemplate, error) + List(opts v1.ListOptions) (*core.PodTemplateList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.PodTemplate, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.PodTemplate, err error) PodTemplateExpansion } @@ -59,8 +59,8 @@ func newPodTemplates(c *CoreClient, namespace string) *podTemplates { } // Get takes name of the podTemplate, and returns the corresponding podTemplate object, and an error if there is any. -func (c *podTemplates) Get(name string, options v1.GetOptions) (result *api.PodTemplate, err error) { - result = &api.PodTemplate{} +func (c *podTemplates) Get(name string, options v1.GetOptions) (result *core.PodTemplate, err error) { + result = &core.PodTemplate{} err = c.client.Get(). Namespace(c.ns). Resource("podtemplates"). @@ -72,8 +72,8 @@ func (c *podTemplates) Get(name string, options v1.GetOptions) (result *api.PodT } // List takes label and field selectors, and returns the list of PodTemplates that match those selectors. -func (c *podTemplates) List(opts v1.ListOptions) (result *api.PodTemplateList, err error) { - result = &api.PodTemplateList{} +func (c *podTemplates) List(opts v1.ListOptions) (result *core.PodTemplateList, err error) { + result = &core.PodTemplateList{} err = c.client.Get(). Namespace(c.ns). Resource("podtemplates"). @@ -94,8 +94,8 @@ func (c *podTemplates) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a podTemplate and creates it. Returns the server's representation of the podTemplate, and an error, if there is any. -func (c *podTemplates) Create(podTemplate *api.PodTemplate) (result *api.PodTemplate, err error) { - result = &api.PodTemplate{} +func (c *podTemplates) Create(podTemplate *core.PodTemplate) (result *core.PodTemplate, err error) { + result = &core.PodTemplate{} err = c.client.Post(). Namespace(c.ns). Resource("podtemplates"). @@ -106,8 +106,8 @@ func (c *podTemplates) Create(podTemplate *api.PodTemplate) (result *api.PodTemp } // Update takes the representation of a podTemplate and updates it. Returns the server's representation of the podTemplate, and an error, if there is any. -func (c *podTemplates) Update(podTemplate *api.PodTemplate) (result *api.PodTemplate, err error) { - result = &api.PodTemplate{} +func (c *podTemplates) Update(podTemplate *core.PodTemplate) (result *core.PodTemplate, err error) { + result = &core.PodTemplate{} err = c.client.Put(). Namespace(c.ns). Resource("podtemplates"). @@ -141,8 +141,8 @@ func (c *podTemplates) DeleteCollection(options *v1.DeleteOptions, listOptions v } // Patch applies the patch and returns the patched podTemplate. -func (c *podTemplates) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.PodTemplate, err error) { - result = &api.PodTemplate{} +func (c *podTemplates) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.PodTemplate, err error) { + result = &core.PodTemplate{} err = c.client.Patch(pt). Namespace(c.ns). Resource("podtemplates"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/replicationcontroller.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/replicationcontroller.go index 3be51c316..5c787f776 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/replicationcontroller.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/replicationcontroller.go @@ -21,8 +21,8 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" - extensions "k8s.io/kubernetes/pkg/apis/extensions" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -34,17 +34,17 @@ type ReplicationControllersGetter interface { // ReplicationControllerInterface has methods to work with ReplicationController resources. type ReplicationControllerInterface interface { - Create(*api.ReplicationController) (*api.ReplicationController, error) - Update(*api.ReplicationController) (*api.ReplicationController, error) - UpdateStatus(*api.ReplicationController) (*api.ReplicationController, error) + Create(*core.ReplicationController) (*core.ReplicationController, error) + Update(*core.ReplicationController) (*core.ReplicationController, error) + UpdateStatus(*core.ReplicationController) (*core.ReplicationController, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.ReplicationController, error) - List(opts v1.ListOptions) (*api.ReplicationControllerList, error) + Get(name string, options v1.GetOptions) (*core.ReplicationController, error) + List(opts v1.ListOptions) (*core.ReplicationControllerList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ReplicationController, err error) - GetScale(replicationControllerName string, options v1.GetOptions) (*extensions.Scale, error) - UpdateScale(replicationControllerName string, scale *extensions.Scale) (*extensions.Scale, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ReplicationController, err error) + GetScale(replicationControllerName string, options v1.GetOptions) (*autoscaling.Scale, error) + UpdateScale(replicationControllerName string, scale *autoscaling.Scale) (*autoscaling.Scale, error) ReplicationControllerExpansion } @@ -64,8 +64,8 @@ func newReplicationControllers(c *CoreClient, namespace string) *replicationCont } // Get takes name of the replicationController, and returns the corresponding replicationController object, and an error if there is any. -func (c *replicationControllers) Get(name string, options v1.GetOptions) (result *api.ReplicationController, err error) { - result = &api.ReplicationController{} +func (c *replicationControllers) Get(name string, options v1.GetOptions) (result *core.ReplicationController, err error) { + result = &core.ReplicationController{} err = c.client.Get(). Namespace(c.ns). Resource("replicationcontrollers"). @@ -77,8 +77,8 @@ func (c *replicationControllers) Get(name string, options v1.GetOptions) (result } // List takes label and field selectors, and returns the list of ReplicationControllers that match those selectors. -func (c *replicationControllers) List(opts v1.ListOptions) (result *api.ReplicationControllerList, err error) { - result = &api.ReplicationControllerList{} +func (c *replicationControllers) List(opts v1.ListOptions) (result *core.ReplicationControllerList, err error) { + result = &core.ReplicationControllerList{} err = c.client.Get(). Namespace(c.ns). Resource("replicationcontrollers"). @@ -99,8 +99,8 @@ func (c *replicationControllers) Watch(opts v1.ListOptions) (watch.Interface, er } // Create takes the representation of a replicationController and creates it. Returns the server's representation of the replicationController, and an error, if there is any. -func (c *replicationControllers) Create(replicationController *api.ReplicationController) (result *api.ReplicationController, err error) { - result = &api.ReplicationController{} +func (c *replicationControllers) Create(replicationController *core.ReplicationController) (result *core.ReplicationController, err error) { + result = &core.ReplicationController{} err = c.client.Post(). Namespace(c.ns). Resource("replicationcontrollers"). @@ -111,8 +111,8 @@ func (c *replicationControllers) Create(replicationController *api.ReplicationCo } // Update takes the representation of a replicationController and updates it. Returns the server's representation of the replicationController, and an error, if there is any. -func (c *replicationControllers) Update(replicationController *api.ReplicationController) (result *api.ReplicationController, err error) { - result = &api.ReplicationController{} +func (c *replicationControllers) Update(replicationController *core.ReplicationController) (result *core.ReplicationController, err error) { + result = &core.ReplicationController{} err = c.client.Put(). Namespace(c.ns). Resource("replicationcontrollers"). @@ -126,8 +126,8 @@ func (c *replicationControllers) Update(replicationController *api.ReplicationCo // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *replicationControllers) UpdateStatus(replicationController *api.ReplicationController) (result *api.ReplicationController, err error) { - result = &api.ReplicationController{} +func (c *replicationControllers) UpdateStatus(replicationController *core.ReplicationController) (result *core.ReplicationController, err error) { + result = &core.ReplicationController{} err = c.client.Put(). Namespace(c.ns). Resource("replicationcontrollers"). @@ -162,8 +162,8 @@ func (c *replicationControllers) DeleteCollection(options *v1.DeleteOptions, lis } // Patch applies the patch and returns the patched replicationController. -func (c *replicationControllers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ReplicationController, err error) { - result = &api.ReplicationController{} +func (c *replicationControllers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ReplicationController, err error) { + result = &core.ReplicationController{} err = c.client.Patch(pt). Namespace(c.ns). Resource("replicationcontrollers"). @@ -175,9 +175,9 @@ func (c *replicationControllers) Patch(name string, pt types.PatchType, data []b return } -// GetScale takes name of the replicationController, and returns the corresponding extensions.Scale object, and an error if there is any. -func (c *replicationControllers) GetScale(replicationControllerName string, options v1.GetOptions) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +// GetScale takes name of the replicationController, and returns the corresponding autoscaling.Scale object, and an error if there is any. +func (c *replicationControllers) GetScale(replicationControllerName string, options v1.GetOptions) (result *autoscaling.Scale, err error) { + result = &autoscaling.Scale{} err = c.client.Get(). Namespace(c.ns). Resource("replicationcontrollers"). @@ -190,8 +190,8 @@ func (c *replicationControllers) GetScale(replicationControllerName string, opti } // UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *replicationControllers) UpdateScale(replicationControllerName string, scale *extensions.Scale) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +func (c *replicationControllers) UpdateScale(replicationControllerName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) { + result = &autoscaling.Scale{} err = c.client.Put(). Namespace(c.ns). Resource("replicationcontrollers"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/resourcequota.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/resourcequota.go index 169f3219a..5c5c3f136 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/resourcequota.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/resourcequota.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,15 +33,15 @@ type ResourceQuotasGetter interface { // ResourceQuotaInterface has methods to work with ResourceQuota resources. type ResourceQuotaInterface interface { - Create(*api.ResourceQuota) (*api.ResourceQuota, error) - Update(*api.ResourceQuota) (*api.ResourceQuota, error) - UpdateStatus(*api.ResourceQuota) (*api.ResourceQuota, error) + Create(*core.ResourceQuota) (*core.ResourceQuota, error) + Update(*core.ResourceQuota) (*core.ResourceQuota, error) + UpdateStatus(*core.ResourceQuota) (*core.ResourceQuota, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.ResourceQuota, error) - List(opts v1.ListOptions) (*api.ResourceQuotaList, error) + Get(name string, options v1.GetOptions) (*core.ResourceQuota, error) + List(opts v1.ListOptions) (*core.ResourceQuotaList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ResourceQuota, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ResourceQuota, err error) ResourceQuotaExpansion } @@ -60,8 +60,8 @@ func newResourceQuotas(c *CoreClient, namespace string) *resourceQuotas { } // Get takes name of the resourceQuota, and returns the corresponding resourceQuota object, and an error if there is any. -func (c *resourceQuotas) Get(name string, options v1.GetOptions) (result *api.ResourceQuota, err error) { - result = &api.ResourceQuota{} +func (c *resourceQuotas) Get(name string, options v1.GetOptions) (result *core.ResourceQuota, err error) { + result = &core.ResourceQuota{} err = c.client.Get(). Namespace(c.ns). Resource("resourcequotas"). @@ -73,8 +73,8 @@ func (c *resourceQuotas) Get(name string, options v1.GetOptions) (result *api.Re } // List takes label and field selectors, and returns the list of ResourceQuotas that match those selectors. -func (c *resourceQuotas) List(opts v1.ListOptions) (result *api.ResourceQuotaList, err error) { - result = &api.ResourceQuotaList{} +func (c *resourceQuotas) List(opts v1.ListOptions) (result *core.ResourceQuotaList, err error) { + result = &core.ResourceQuotaList{} err = c.client.Get(). Namespace(c.ns). Resource("resourcequotas"). @@ -95,8 +95,8 @@ func (c *resourceQuotas) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a resourceQuota and creates it. Returns the server's representation of the resourceQuota, and an error, if there is any. -func (c *resourceQuotas) Create(resourceQuota *api.ResourceQuota) (result *api.ResourceQuota, err error) { - result = &api.ResourceQuota{} +func (c *resourceQuotas) Create(resourceQuota *core.ResourceQuota) (result *core.ResourceQuota, err error) { + result = &core.ResourceQuota{} err = c.client.Post(). Namespace(c.ns). Resource("resourcequotas"). @@ -107,8 +107,8 @@ func (c *resourceQuotas) Create(resourceQuota *api.ResourceQuota) (result *api.R } // Update takes the representation of a resourceQuota and updates it. Returns the server's representation of the resourceQuota, and an error, if there is any. -func (c *resourceQuotas) Update(resourceQuota *api.ResourceQuota) (result *api.ResourceQuota, err error) { - result = &api.ResourceQuota{} +func (c *resourceQuotas) Update(resourceQuota *core.ResourceQuota) (result *core.ResourceQuota, err error) { + result = &core.ResourceQuota{} err = c.client.Put(). Namespace(c.ns). Resource("resourcequotas"). @@ -122,8 +122,8 @@ func (c *resourceQuotas) Update(resourceQuota *api.ResourceQuota) (result *api.R // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *resourceQuotas) UpdateStatus(resourceQuota *api.ResourceQuota) (result *api.ResourceQuota, err error) { - result = &api.ResourceQuota{} +func (c *resourceQuotas) UpdateStatus(resourceQuota *core.ResourceQuota) (result *core.ResourceQuota, err error) { + result = &core.ResourceQuota{} err = c.client.Put(). Namespace(c.ns). Resource("resourcequotas"). @@ -158,8 +158,8 @@ func (c *resourceQuotas) DeleteCollection(options *v1.DeleteOptions, listOptions } // Patch applies the patch and returns the patched resourceQuota. -func (c *resourceQuotas) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ResourceQuota, err error) { - result = &api.ResourceQuota{} +func (c *resourceQuotas) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ResourceQuota, err error) { + result = &core.ResourceQuota{} err = c.client.Patch(pt). Namespace(c.ns). Resource("resourcequotas"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/secret.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/secret.go index 628fa1471..36a1a16e0 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/secret.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/secret.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,14 +33,14 @@ type SecretsGetter interface { // SecretInterface has methods to work with Secret resources. type SecretInterface interface { - Create(*api.Secret) (*api.Secret, error) - Update(*api.Secret) (*api.Secret, error) + Create(*core.Secret) (*core.Secret, error) + Update(*core.Secret) (*core.Secret, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.Secret, error) - List(opts v1.ListOptions) (*api.SecretList, error) + Get(name string, options v1.GetOptions) (*core.Secret, error) + List(opts v1.ListOptions) (*core.SecretList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Secret, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Secret, err error) SecretExpansion } @@ -59,8 +59,8 @@ func newSecrets(c *CoreClient, namespace string) *secrets { } // Get takes name of the secret, and returns the corresponding secret object, and an error if there is any. -func (c *secrets) Get(name string, options v1.GetOptions) (result *api.Secret, err error) { - result = &api.Secret{} +func (c *secrets) Get(name string, options v1.GetOptions) (result *core.Secret, err error) { + result = &core.Secret{} err = c.client.Get(). Namespace(c.ns). Resource("secrets"). @@ -72,8 +72,8 @@ func (c *secrets) Get(name string, options v1.GetOptions) (result *api.Secret, e } // List takes label and field selectors, and returns the list of Secrets that match those selectors. -func (c *secrets) List(opts v1.ListOptions) (result *api.SecretList, err error) { - result = &api.SecretList{} +func (c *secrets) List(opts v1.ListOptions) (result *core.SecretList, err error) { + result = &core.SecretList{} err = c.client.Get(). Namespace(c.ns). Resource("secrets"). @@ -94,8 +94,8 @@ func (c *secrets) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a secret and creates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *secrets) Create(secret *api.Secret) (result *api.Secret, err error) { - result = &api.Secret{} +func (c *secrets) Create(secret *core.Secret) (result *core.Secret, err error) { + result = &core.Secret{} err = c.client.Post(). Namespace(c.ns). Resource("secrets"). @@ -106,8 +106,8 @@ func (c *secrets) Create(secret *api.Secret) (result *api.Secret, err error) { } // Update takes the representation of a secret and updates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *secrets) Update(secret *api.Secret) (result *api.Secret, err error) { - result = &api.Secret{} +func (c *secrets) Update(secret *core.Secret) (result *core.Secret, err error) { + result = &core.Secret{} err = c.client.Put(). Namespace(c.ns). Resource("secrets"). @@ -141,8 +141,8 @@ func (c *secrets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.Lis } // Patch applies the patch and returns the patched secret. -func (c *secrets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Secret, err error) { - result = &api.Secret{} +func (c *secrets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Secret, err error) { + result = &core.Secret{} err = c.client.Patch(pt). Namespace(c.ns). Resource("secrets"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/service.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/service.go index 05bd7855d..6a9cfc0cb 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/service.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/service.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,15 +33,15 @@ type ServicesGetter interface { // ServiceInterface has methods to work with Service resources. type ServiceInterface interface { - Create(*api.Service) (*api.Service, error) - Update(*api.Service) (*api.Service, error) - UpdateStatus(*api.Service) (*api.Service, error) + Create(*core.Service) (*core.Service, error) + Update(*core.Service) (*core.Service, error) + UpdateStatus(*core.Service) (*core.Service, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.Service, error) - List(opts v1.ListOptions) (*api.ServiceList, error) + Get(name string, options v1.GetOptions) (*core.Service, error) + List(opts v1.ListOptions) (*core.ServiceList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Service, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Service, err error) ServiceExpansion } @@ -60,8 +60,8 @@ func newServices(c *CoreClient, namespace string) *services { } // Get takes name of the service, and returns the corresponding service object, and an error if there is any. -func (c *services) Get(name string, options v1.GetOptions) (result *api.Service, err error) { - result = &api.Service{} +func (c *services) Get(name string, options v1.GetOptions) (result *core.Service, err error) { + result = &core.Service{} err = c.client.Get(). Namespace(c.ns). Resource("services"). @@ -73,8 +73,8 @@ func (c *services) Get(name string, options v1.GetOptions) (result *api.Service, } // List takes label and field selectors, and returns the list of Services that match those selectors. -func (c *services) List(opts v1.ListOptions) (result *api.ServiceList, err error) { - result = &api.ServiceList{} +func (c *services) List(opts v1.ListOptions) (result *core.ServiceList, err error) { + result = &core.ServiceList{} err = c.client.Get(). Namespace(c.ns). Resource("services"). @@ -95,8 +95,8 @@ func (c *services) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a service and creates it. Returns the server's representation of the service, and an error, if there is any. -func (c *services) Create(service *api.Service) (result *api.Service, err error) { - result = &api.Service{} +func (c *services) Create(service *core.Service) (result *core.Service, err error) { + result = &core.Service{} err = c.client.Post(). Namespace(c.ns). Resource("services"). @@ -107,8 +107,8 @@ func (c *services) Create(service *api.Service) (result *api.Service, err error) } // Update takes the representation of a service and updates it. Returns the server's representation of the service, and an error, if there is any. -func (c *services) Update(service *api.Service) (result *api.Service, err error) { - result = &api.Service{} +func (c *services) Update(service *core.Service) (result *core.Service, err error) { + result = &core.Service{} err = c.client.Put(). Namespace(c.ns). Resource("services"). @@ -122,8 +122,8 @@ func (c *services) Update(service *api.Service) (result *api.Service, err error) // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *services) UpdateStatus(service *api.Service) (result *api.Service, err error) { - result = &api.Service{} +func (c *services) UpdateStatus(service *core.Service) (result *core.Service, err error) { + result = &core.Service{} err = c.client.Put(). Namespace(c.ns). Resource("services"). @@ -158,8 +158,8 @@ func (c *services) DeleteCollection(options *v1.DeleteOptions, listOptions v1.Li } // Patch applies the patch and returns the patched service. -func (c *services) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.Service, err error) { - result = &api.Service{} +func (c *services) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.Service, err error) { + result = &core.Service{} err = c.client.Patch(pt). Namespace(c.ns). Resource("services"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/serviceaccount.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/serviceaccount.go index 3a7bf04aa..75f0191f6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/serviceaccount.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/serviceaccount.go @@ -21,7 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -33,14 +33,14 @@ type ServiceAccountsGetter interface { // ServiceAccountInterface has methods to work with ServiceAccount resources. type ServiceAccountInterface interface { - Create(*api.ServiceAccount) (*api.ServiceAccount, error) - Update(*api.ServiceAccount) (*api.ServiceAccount, error) + Create(*core.ServiceAccount) (*core.ServiceAccount, error) + Update(*core.ServiceAccount) (*core.ServiceAccount, error) Delete(name string, options *v1.DeleteOptions) error DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*api.ServiceAccount, error) - List(opts v1.ListOptions) (*api.ServiceAccountList, error) + Get(name string, options v1.GetOptions) (*core.ServiceAccount, error) + List(opts v1.ListOptions) (*core.ServiceAccountList, error) Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ServiceAccount, err error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ServiceAccount, err error) ServiceAccountExpansion } @@ -59,8 +59,8 @@ func newServiceAccounts(c *CoreClient, namespace string) *serviceAccounts { } // Get takes name of the serviceAccount, and returns the corresponding serviceAccount object, and an error if there is any. -func (c *serviceAccounts) Get(name string, options v1.GetOptions) (result *api.ServiceAccount, err error) { - result = &api.ServiceAccount{} +func (c *serviceAccounts) Get(name string, options v1.GetOptions) (result *core.ServiceAccount, err error) { + result = &core.ServiceAccount{} err = c.client.Get(). Namespace(c.ns). Resource("serviceaccounts"). @@ -72,8 +72,8 @@ func (c *serviceAccounts) Get(name string, options v1.GetOptions) (result *api.S } // List takes label and field selectors, and returns the list of ServiceAccounts that match those selectors. -func (c *serviceAccounts) List(opts v1.ListOptions) (result *api.ServiceAccountList, err error) { - result = &api.ServiceAccountList{} +func (c *serviceAccounts) List(opts v1.ListOptions) (result *core.ServiceAccountList, err error) { + result = &core.ServiceAccountList{} err = c.client.Get(). Namespace(c.ns). Resource("serviceaccounts"). @@ -94,8 +94,8 @@ func (c *serviceAccounts) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a serviceAccount and creates it. Returns the server's representation of the serviceAccount, and an error, if there is any. -func (c *serviceAccounts) Create(serviceAccount *api.ServiceAccount) (result *api.ServiceAccount, err error) { - result = &api.ServiceAccount{} +func (c *serviceAccounts) Create(serviceAccount *core.ServiceAccount) (result *core.ServiceAccount, err error) { + result = &core.ServiceAccount{} err = c.client.Post(). Namespace(c.ns). Resource("serviceaccounts"). @@ -106,8 +106,8 @@ func (c *serviceAccounts) Create(serviceAccount *api.ServiceAccount) (result *ap } // Update takes the representation of a serviceAccount and updates it. Returns the server's representation of the serviceAccount, and an error, if there is any. -func (c *serviceAccounts) Update(serviceAccount *api.ServiceAccount) (result *api.ServiceAccount, err error) { - result = &api.ServiceAccount{} +func (c *serviceAccounts) Update(serviceAccount *core.ServiceAccount) (result *core.ServiceAccount, err error) { + result = &core.ServiceAccount{} err = c.client.Put(). Namespace(c.ns). Resource("serviceaccounts"). @@ -141,8 +141,8 @@ func (c *serviceAccounts) DeleteCollection(options *v1.DeleteOptions, listOption } // Patch applies the patch and returns the patched serviceAccount. -func (c *serviceAccounts) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *api.ServiceAccount, err error) { - result = &api.ServiceAccount{} +func (c *serviceAccounts) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core.ServiceAccount, err error) { + result = &core.ServiceAccount{} err = c.client.Patch(pt). Namespace(c.ns). Resource("serviceaccounts"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD index 7d2f3aa3d..85d27b165 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD @@ -17,17 +17,13 @@ go_library( "ingress.go", "podsecuritypolicy.go", "replicaset.go", - "scale.go", - "scale_expansion.go", - "thirdpartyresource.go", ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion", deps = [ + "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema: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/rest:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/deployment.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/deployment.go index 322137517..919ab32e2 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/deployment.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/deployment.go @@ -21,6 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" extensions "k8s.io/kubernetes/pkg/apis/extensions" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -42,8 +43,8 @@ type DeploymentInterface interface { List(opts v1.ListOptions) (*extensions.DeploymentList, error) Watch(opts v1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *extensions.Deployment, err error) - GetScale(deploymentName string, options v1.GetOptions) (*extensions.Scale, error) - UpdateScale(deploymentName string, scale *extensions.Scale) (*extensions.Scale, error) + GetScale(deploymentName string, options v1.GetOptions) (*autoscaling.Scale, error) + UpdateScale(deploymentName string, scale *autoscaling.Scale) (*autoscaling.Scale, error) DeploymentExpansion } @@ -174,9 +175,9 @@ func (c *deployments) Patch(name string, pt types.PatchType, data []byte, subres return } -// GetScale takes name of the deployment, and returns the corresponding extensions.Scale object, and an error if there is any. -func (c *deployments) GetScale(deploymentName string, options v1.GetOptions) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +// GetScale takes name of the deployment, and returns the corresponding autoscaling.Scale object, and an error if there is any. +func (c *deployments) GetScale(deploymentName string, options v1.GetOptions) (result *autoscaling.Scale, err error) { + result = &autoscaling.Scale{} err = c.client.Get(). Namespace(c.ns). Resource("deployments"). @@ -189,8 +190,8 @@ func (c *deployments) GetScale(deploymentName string, options v1.GetOptions) (re } // UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *deployments) UpdateScale(deploymentName string, scale *extensions.Scale) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +func (c *deployments) UpdateScale(deploymentName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) { + result = &autoscaling.Scale{} err = c.client.Put(). Namespace(c.ns). Resource("deployments"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/extensions_client.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/extensions_client.go index a89a83719..1a26d5d30 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/extensions_client.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/extensions_client.go @@ -28,8 +28,6 @@ type ExtensionsInterface interface { IngressesGetter PodSecurityPoliciesGetter ReplicaSetsGetter - ScalesGetter - ThirdPartyResourcesGetter } // ExtensionsClient is used to interact with features provided by the extensions group. @@ -57,14 +55,6 @@ func (c *ExtensionsClient) ReplicaSets(namespace string) ReplicaSetInterface { return newReplicaSets(c, namespace) } -func (c *ExtensionsClient) Scales(namespace string) ScaleInterface { - return newScales(c, namespace) -} - -func (c *ExtensionsClient) ThirdPartyResources() ThirdPartyResourceInterface { - return newThirdPartyResources(c) -} - // NewForConfig creates a new ExtensionsClient for the given config. func NewForConfig(c *rest.Config) (*ExtensionsClient, error) { config := *c diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD index 44971327d..91755daa6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD @@ -16,12 +16,10 @@ go_library( "fake_ingress.go", "fake_podsecuritypolicy.go", "fake_replicaset.go", - "fake_scale.go", - "fake_scale_expansion.go", - "fake_thirdpartyresource.go", ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake", deps = [ + "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_deployment.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_deployment.go index be65113bb..73d8730c1 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_deployment.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_deployment.go @@ -23,6 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" extensions "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -138,23 +139,23 @@ func (c *FakeDeployments) Patch(name string, pt types.PatchType, data []byte, su } // GetScale takes name of the deployment, and returns the corresponding scale object, and an error if there is any. -func (c *FakeDeployments) GetScale(deploymentName string, options v1.GetOptions) (result *extensions.Scale, err error) { +func (c *FakeDeployments) GetScale(deploymentName string, options v1.GetOptions) (result *autoscaling.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewGetSubresourceAction(deploymentsResource, c.ns, "scale", deploymentName), &extensions.Scale{}) + Invokes(testing.NewGetSubresourceAction(deploymentsResource, c.ns, "scale", deploymentName), &autoscaling.Scale{}) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*autoscaling.Scale), err } // UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *FakeDeployments) UpdateScale(deploymentName string, scale *extensions.Scale) (result *extensions.Scale, err error) { +func (c *FakeDeployments) UpdateScale(deploymentName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(deploymentsResource, "scale", c.ns, scale), &extensions.Scale{}) + Invokes(testing.NewUpdateSubresourceAction(deploymentsResource, "scale", c.ns, scale), &autoscaling.Scale{}) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*autoscaling.Scale), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_extensions_client.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_extensions_client.go index 82ec8abfa..1032452a7 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_extensions_client.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_extensions_client.go @@ -46,14 +46,6 @@ func (c *FakeExtensions) ReplicaSets(namespace string) internalversion.ReplicaSe return &FakeReplicaSets{c, namespace} } -func (c *FakeExtensions) Scales(namespace string) internalversion.ScaleInterface { - return &FakeScales{c, namespace} -} - -func (c *FakeExtensions) ThirdPartyResources() internalversion.ThirdPartyResourceInterface { - return &FakeThirdPartyResources{c} -} - // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeExtensions) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_replicaset.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_replicaset.go index 37ed3661a..3a5a59f11 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_replicaset.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_replicaset.go @@ -23,6 +23,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" extensions "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -138,23 +139,23 @@ func (c *FakeReplicaSets) Patch(name string, pt types.PatchType, data []byte, su } // GetScale takes name of the replicaSet, and returns the corresponding scale object, and an error if there is any. -func (c *FakeReplicaSets) GetScale(replicaSetName string, options v1.GetOptions) (result *extensions.Scale, err error) { +func (c *FakeReplicaSets) GetScale(replicaSetName string, options v1.GetOptions) (result *autoscaling.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewGetSubresourceAction(replicasetsResource, c.ns, "scale", replicaSetName), &extensions.Scale{}) + Invokes(testing.NewGetSubresourceAction(replicasetsResource, c.ns, "scale", replicaSetName), &autoscaling.Scale{}) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*autoscaling.Scale), err } // UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *FakeReplicaSets) UpdateScale(replicaSetName string, scale *extensions.Scale) (result *extensions.Scale, err error) { +func (c *FakeReplicaSets) UpdateScale(replicaSetName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(replicasetsResource, "scale", c.ns, scale), &extensions.Scale{}) + Invokes(testing.NewUpdateSubresourceAction(replicasetsResource, "scale", c.ns, scale), &autoscaling.Scale{}) if obj == nil { return nil, err } - return obj.(*extensions.Scale), err + return obj.(*autoscaling.Scale), err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_scale_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_scale_expansion.go deleted file mode 100644 index 4b9413322..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_scale_expansion.go +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright 2015 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 fake - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/apis/extensions" -) - -func (c *FakeScales) Get(kind string, name string) (result *extensions.Scale, err error) { - action := core.GetActionImpl{} - action.Verb = "get" - action.Namespace = c.ns - action.Resource = schema.GroupVersionResource{Resource: kind} - action.Subresource = "scale" - action.Name = name - obj, err := c.Fake.Invokes(action, &extensions.Scale{}) - result = obj.(*extensions.Scale) - return -} - -func (c *FakeScales) Update(kind string, scale *extensions.Scale) (result *extensions.Scale, err error) { - action := core.UpdateActionImpl{} - action.Verb = "update" - action.Namespace = c.ns - action.Resource = schema.GroupVersionResource{Resource: kind} - action.Subresource = "scale" - action.Object = scale - obj, err := c.Fake.Invokes(action, scale) - result = obj.(*extensions.Scale) - return -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_thirdpartyresource.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_thirdpartyresource.go deleted file mode 100644 index 2ff85611c..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_thirdpartyresource.go +++ /dev/null @@ -1,118 +0,0 @@ -/* -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 fake - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" - extensions "k8s.io/kubernetes/pkg/apis/extensions" -) - -// FakeThirdPartyResources implements ThirdPartyResourceInterface -type FakeThirdPartyResources struct { - Fake *FakeExtensions -} - -var thirdpartyresourcesResource = schema.GroupVersionResource{Group: "extensions", Version: "", Resource: "thirdpartyresources"} - -var thirdpartyresourcesKind = schema.GroupVersionKind{Group: "extensions", Version: "", Kind: "ThirdPartyResource"} - -// Get takes name of the thirdPartyResource, and returns the corresponding thirdPartyResource object, and an error if there is any. -func (c *FakeThirdPartyResources) Get(name string, options v1.GetOptions) (result *extensions.ThirdPartyResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(thirdpartyresourcesResource, name), &extensions.ThirdPartyResource{}) - if obj == nil { - return nil, err - } - return obj.(*extensions.ThirdPartyResource), err -} - -// List takes label and field selectors, and returns the list of ThirdPartyResources that match those selectors. -func (c *FakeThirdPartyResources) List(opts v1.ListOptions) (result *extensions.ThirdPartyResourceList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(thirdpartyresourcesResource, thirdpartyresourcesKind, opts), &extensions.ThirdPartyResourceList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &extensions.ThirdPartyResourceList{} - for _, item := range obj.(*extensions.ThirdPartyResourceList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested thirdPartyResources. -func (c *FakeThirdPartyResources) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(thirdpartyresourcesResource, opts)) -} - -// Create takes the representation of a thirdPartyResource and creates it. Returns the server's representation of the thirdPartyResource, and an error, if there is any. -func (c *FakeThirdPartyResources) Create(thirdPartyResource *extensions.ThirdPartyResource) (result *extensions.ThirdPartyResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(thirdpartyresourcesResource, thirdPartyResource), &extensions.ThirdPartyResource{}) - if obj == nil { - return nil, err - } - return obj.(*extensions.ThirdPartyResource), err -} - -// Update takes the representation of a thirdPartyResource and updates it. Returns the server's representation of the thirdPartyResource, and an error, if there is any. -func (c *FakeThirdPartyResources) Update(thirdPartyResource *extensions.ThirdPartyResource) (result *extensions.ThirdPartyResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(thirdpartyresourcesResource, thirdPartyResource), &extensions.ThirdPartyResource{}) - if obj == nil { - return nil, err - } - return obj.(*extensions.ThirdPartyResource), err -} - -// Delete takes name of the thirdPartyResource and deletes it. Returns an error if one occurs. -func (c *FakeThirdPartyResources) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(thirdpartyresourcesResource, name), &extensions.ThirdPartyResource{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeThirdPartyResources) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(thirdpartyresourcesResource, listOptions) - - _, err := c.Fake.Invokes(action, &extensions.ThirdPartyResourceList{}) - return err -} - -// Patch applies the patch and returns the patched thirdPartyResource. -func (c *FakeThirdPartyResources) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *extensions.ThirdPartyResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(thirdpartyresourcesResource, name, data, subresources...), &extensions.ThirdPartyResource{}) - if obj == nil { - return nil, err - } - return obj.(*extensions.ThirdPartyResource), err -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/generated_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/generated_expansion.go index d59199eb5..cf6ee02f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/generated_expansion.go @@ -23,5 +23,3 @@ type IngressExpansion interface{} type PodSecurityPolicyExpansion interface{} type ReplicaSetExpansion interface{} - -type ThirdPartyResourceExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/replicaset.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/replicaset.go index d6debe65f..5da973b71 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/replicaset.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/replicaset.go @@ -21,6 +21,7 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" extensions "k8s.io/kubernetes/pkg/apis/extensions" scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" ) @@ -42,8 +43,8 @@ type ReplicaSetInterface interface { List(opts v1.ListOptions) (*extensions.ReplicaSetList, error) Watch(opts v1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *extensions.ReplicaSet, err error) - GetScale(replicaSetName string, options v1.GetOptions) (*extensions.Scale, error) - UpdateScale(replicaSetName string, scale *extensions.Scale) (*extensions.Scale, error) + GetScale(replicaSetName string, options v1.GetOptions) (*autoscaling.Scale, error) + UpdateScale(replicaSetName string, scale *autoscaling.Scale) (*autoscaling.Scale, error) ReplicaSetExpansion } @@ -174,9 +175,9 @@ func (c *replicaSets) Patch(name string, pt types.PatchType, data []byte, subres return } -// GetScale takes name of the replicaSet, and returns the corresponding extensions.Scale object, and an error if there is any. -func (c *replicaSets) GetScale(replicaSetName string, options v1.GetOptions) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +// GetScale takes name of the replicaSet, and returns the corresponding autoscaling.Scale object, and an error if there is any. +func (c *replicaSets) GetScale(replicaSetName string, options v1.GetOptions) (result *autoscaling.Scale, err error) { + result = &autoscaling.Scale{} err = c.client.Get(). Namespace(c.ns). Resource("replicasets"). @@ -189,8 +190,8 @@ func (c *replicaSets) GetScale(replicaSetName string, options v1.GetOptions) (re } // UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *replicaSets) UpdateScale(replicaSetName string, scale *extensions.Scale) (result *extensions.Scale, err error) { - result = &extensions.Scale{} +func (c *replicaSets) UpdateScale(replicaSetName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) { + result = &autoscaling.Scale{} err = c.client.Put(). Namespace(c.ns). Resource("replicasets"). diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/scale_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/scale_expansion.go deleted file mode 100644 index e5f2242a8..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/scale_expansion.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -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 internalversion - -import ( - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/pkg/apis/extensions" -) - -// The ScaleExpansion interface allows manually adding extra methods to the ScaleInterface. -type ScaleExpansion interface { - Get(kind string, name string) (*extensions.Scale, error) - Update(kind string, scale *extensions.Scale) (*extensions.Scale, error) -} - -// Get takes the reference to scale subresource and returns the subresource or error, if one occurs. -func (c *scales) Get(kind string, name string) (result *extensions.Scale, err error) { - result = &extensions.Scale{} - - // TODO this method needs to take a proper unambiguous kind - fullyQualifiedKind := schema.GroupVersionKind{Kind: kind} - resource, _ := meta.UnsafeGuessKindToResource(fullyQualifiedKind) - - err = c.client.Get(). - Namespace(c.ns). - Resource(resource.Resource). - Name(name). - SubResource("scale"). - Do(). - Into(result) - return -} - -func (c *scales) Update(kind string, scale *extensions.Scale) (result *extensions.Scale, err error) { - result = &extensions.Scale{} - - // TODO this method needs to take a proper unambiguous kind - fullyQualifiedKind := schema.GroupVersionKind{Kind: kind} - resource, _ := meta.UnsafeGuessKindToResource(fullyQualifiedKind) - - err = c.client.Put(). - Namespace(scale.Namespace). - Resource(resource.Resource). - Name(scale.Name). - SubResource("scale"). - Body(scale). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/thirdpartyresource.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/thirdpartyresource.go deleted file mode 100644 index cd814b6e5..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/thirdpartyresource.go +++ /dev/null @@ -1,145 +0,0 @@ -/* -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 internalversion - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" - extensions "k8s.io/kubernetes/pkg/apis/extensions" - scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" -) - -// ThirdPartyResourcesGetter has a method to return a ThirdPartyResourceInterface. -// A group's client should implement this interface. -type ThirdPartyResourcesGetter interface { - ThirdPartyResources() ThirdPartyResourceInterface -} - -// ThirdPartyResourceInterface has methods to work with ThirdPartyResource resources. -type ThirdPartyResourceInterface interface { - Create(*extensions.ThirdPartyResource) (*extensions.ThirdPartyResource, error) - Update(*extensions.ThirdPartyResource) (*extensions.ThirdPartyResource, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*extensions.ThirdPartyResource, error) - List(opts v1.ListOptions) (*extensions.ThirdPartyResourceList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *extensions.ThirdPartyResource, err error) - ThirdPartyResourceExpansion -} - -// thirdPartyResources implements ThirdPartyResourceInterface -type thirdPartyResources struct { - client rest.Interface -} - -// newThirdPartyResources returns a ThirdPartyResources -func newThirdPartyResources(c *ExtensionsClient) *thirdPartyResources { - return &thirdPartyResources{ - client: c.RESTClient(), - } -} - -// Get takes name of the thirdPartyResource, and returns the corresponding thirdPartyResource object, and an error if there is any. -func (c *thirdPartyResources) Get(name string, options v1.GetOptions) (result *extensions.ThirdPartyResource, err error) { - result = &extensions.ThirdPartyResource{} - err = c.client.Get(). - Resource("thirdpartyresources"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ThirdPartyResources that match those selectors. -func (c *thirdPartyResources) List(opts v1.ListOptions) (result *extensions.ThirdPartyResourceList, err error) { - result = &extensions.ThirdPartyResourceList{} - err = c.client.Get(). - Resource("thirdpartyresources"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested thirdPartyResources. -func (c *thirdPartyResources) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Resource("thirdpartyresources"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a thirdPartyResource and creates it. Returns the server's representation of the thirdPartyResource, and an error, if there is any. -func (c *thirdPartyResources) Create(thirdPartyResource *extensions.ThirdPartyResource) (result *extensions.ThirdPartyResource, err error) { - result = &extensions.ThirdPartyResource{} - err = c.client.Post(). - Resource("thirdpartyresources"). - Body(thirdPartyResource). - Do(). - Into(result) - return -} - -// Update takes the representation of a thirdPartyResource and updates it. Returns the server's representation of the thirdPartyResource, and an error, if there is any. -func (c *thirdPartyResources) Update(thirdPartyResource *extensions.ThirdPartyResource) (result *extensions.ThirdPartyResource, err error) { - result = &extensions.ThirdPartyResource{} - err = c.client.Put(). - Resource("thirdpartyresources"). - Name(thirdPartyResource.Name). - Body(thirdPartyResource). - Do(). - Into(result) - return -} - -// Delete takes name of the thirdPartyResource and deletes it. Returns an error if one occurs. -func (c *thirdPartyResources) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Resource("thirdpartyresources"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *thirdPartyResources) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Resource("thirdpartyresources"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched thirdPartyResource. -func (c *thirdPartyResources) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *extensions.ThirdPartyResource, err error) { - result = &extensions.ThirdPartyResource{} - err = c.client.Patch(pt). - Resource("thirdpartyresources"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD index 9c2c76bc7..cd8e7a812 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD @@ -12,6 +12,7 @@ go_library( "generated_expansion.go", "storage_client.go", "storageclass.go", + "volumeattachment.go", ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD index 9acf4577a..dbe295857 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD @@ -11,6 +11,7 @@ go_library( "doc.go", "fake_storage_client.go", "fake_storageclass.go", + "fake_volumeattachment.go", ], importpath = "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/fake_storage_client.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/fake_storage_client.go index 2bccdbd24..0dce78b5a 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/fake_storage_client.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/fake_storage_client.go @@ -30,6 +30,10 @@ func (c *FakeStorage) StorageClasses() internalversion.StorageClassInterface { return &FakeStorageClasses{c} } +func (c *FakeStorage) VolumeAttachments() internalversion.VolumeAttachmentInterface { + return &FakeVolumeAttachments{c} +} + // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeStorage) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/fake_volumeattachment.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/fake_volumeattachment.go new file mode 100644 index 000000000..68c421d88 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/fake_volumeattachment.go @@ -0,0 +1,129 @@ +/* +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 fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" + storage "k8s.io/kubernetes/pkg/apis/storage" +) + +// FakeVolumeAttachments implements VolumeAttachmentInterface +type FakeVolumeAttachments struct { + Fake *FakeStorage +} + +var volumeattachmentsResource = schema.GroupVersionResource{Group: "storage.k8s.io", Version: "", Resource: "volumeattachments"} + +var volumeattachmentsKind = schema.GroupVersionKind{Group: "storage.k8s.io", Version: "", Kind: "VolumeAttachment"} + +// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any. +func (c *FakeVolumeAttachments) Get(name string, options v1.GetOptions) (result *storage.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(volumeattachmentsResource, name), &storage.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storage.VolumeAttachment), err +} + +// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors. +func (c *FakeVolumeAttachments) List(opts v1.ListOptions) (result *storage.VolumeAttachmentList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(volumeattachmentsResource, volumeattachmentsKind, opts), &storage.VolumeAttachmentList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &storage.VolumeAttachmentList{} + for _, item := range obj.(*storage.VolumeAttachmentList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested volumeAttachments. +func (c *FakeVolumeAttachments) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(volumeattachmentsResource, opts)) +} + +// Create takes the representation of a volumeAttachment and creates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *FakeVolumeAttachments) Create(volumeAttachment *storage.VolumeAttachment) (result *storage.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(volumeattachmentsResource, volumeAttachment), &storage.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storage.VolumeAttachment), err +} + +// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *FakeVolumeAttachments) Update(volumeAttachment *storage.VolumeAttachment) (result *storage.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(volumeattachmentsResource, volumeAttachment), &storage.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storage.VolumeAttachment), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeVolumeAttachments) UpdateStatus(volumeAttachment *storage.VolumeAttachment) (*storage.VolumeAttachment, error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(volumeattachmentsResource, "status", volumeAttachment), &storage.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storage.VolumeAttachment), err +} + +// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs. +func (c *FakeVolumeAttachments) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(volumeattachmentsResource, name), &storage.VolumeAttachment{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeVolumeAttachments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(volumeattachmentsResource, listOptions) + + _, err := c.Fake.Invokes(action, &storage.VolumeAttachmentList{}) + return err +} + +// Patch applies the patch and returns the patched volumeAttachment. +func (c *FakeVolumeAttachments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *storage.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, data, subresources...), &storage.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storage.VolumeAttachment), err +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/generated_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/generated_expansion.go index 2fe8e8d7e..a1b2c0f5b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/generated_expansion.go @@ -17,3 +17,5 @@ limitations under the License. package internalversion type StorageClassExpansion interface{} + +type VolumeAttachmentExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/storage_client.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/storage_client.go index 9eebff01a..2eca72b8f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/storage_client.go +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/storage_client.go @@ -24,6 +24,7 @@ import ( type StorageInterface interface { RESTClient() rest.Interface StorageClassesGetter + VolumeAttachmentsGetter } // StorageClient is used to interact with features provided by the storage.k8s.io group. @@ -35,6 +36,10 @@ func (c *StorageClient) StorageClasses() StorageClassInterface { return newStorageClasses(c) } +func (c *StorageClient) VolumeAttachments() VolumeAttachmentInterface { + return newVolumeAttachments(c) +} + // NewForConfig creates a new StorageClient for the given config. func NewForConfig(c *rest.Config) (*StorageClient, error) { config := *c diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/volumeattachment.go b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/volumeattachment.go new file mode 100644 index 000000000..da7fb9e24 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/volumeattachment.go @@ -0,0 +1,161 @@ +/* +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 internalversion + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" + storage "k8s.io/kubernetes/pkg/apis/storage" + scheme "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme" +) + +// VolumeAttachmentsGetter has a method to return a VolumeAttachmentInterface. +// A group's client should implement this interface. +type VolumeAttachmentsGetter interface { + VolumeAttachments() VolumeAttachmentInterface +} + +// VolumeAttachmentInterface has methods to work with VolumeAttachment resources. +type VolumeAttachmentInterface interface { + Create(*storage.VolumeAttachment) (*storage.VolumeAttachment, error) + Update(*storage.VolumeAttachment) (*storage.VolumeAttachment, error) + UpdateStatus(*storage.VolumeAttachment) (*storage.VolumeAttachment, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*storage.VolumeAttachment, error) + List(opts v1.ListOptions) (*storage.VolumeAttachmentList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *storage.VolumeAttachment, err error) + VolumeAttachmentExpansion +} + +// volumeAttachments implements VolumeAttachmentInterface +type volumeAttachments struct { + client rest.Interface +} + +// newVolumeAttachments returns a VolumeAttachments +func newVolumeAttachments(c *StorageClient) *volumeAttachments { + return &volumeAttachments{ + client: c.RESTClient(), + } +} + +// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any. +func (c *volumeAttachments) Get(name string, options v1.GetOptions) (result *storage.VolumeAttachment, err error) { + result = &storage.VolumeAttachment{} + err = c.client.Get(). + Resource("volumeattachments"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors. +func (c *volumeAttachments) List(opts v1.ListOptions) (result *storage.VolumeAttachmentList, err error) { + result = &storage.VolumeAttachmentList{} + err = c.client.Get(). + Resource("volumeattachments"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested volumeAttachments. +func (c *volumeAttachments) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("volumeattachments"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a volumeAttachment and creates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *volumeAttachments) Create(volumeAttachment *storage.VolumeAttachment) (result *storage.VolumeAttachment, err error) { + result = &storage.VolumeAttachment{} + err = c.client.Post(). + Resource("volumeattachments"). + Body(volumeAttachment). + Do(). + Into(result) + return +} + +// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *volumeAttachments) Update(volumeAttachment *storage.VolumeAttachment) (result *storage.VolumeAttachment, err error) { + result = &storage.VolumeAttachment{} + err = c.client.Put(). + Resource("volumeattachments"). + Name(volumeAttachment.Name). + Body(volumeAttachment). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *volumeAttachments) UpdateStatus(volumeAttachment *storage.VolumeAttachment) (result *storage.VolumeAttachment, err error) { + result = &storage.VolumeAttachment{} + err = c.client.Put(). + Resource("volumeattachments"). + Name(volumeAttachment.Name). + SubResource("status"). + Body(volumeAttachment). + Do(). + Into(result) + return +} + +// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs. +func (c *volumeAttachments) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("volumeattachments"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *volumeAttachments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Resource("volumeattachments"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched volumeAttachment. +func (c *volumeAttachments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *storage.VolumeAttachment, err error) { + result = &storage.VolumeAttachment{} + err = c.client.Patch(pt). + Resource("volumeattachments"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/BUILD index fea81e07c..91495dc5d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/BUILD @@ -13,12 +13,12 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/certificates:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/networking:go_default_library", "//pkg/apis/policy:go_default_library", @@ -41,6 +41,7 @@ go_library( "//pkg/client/informers/informers_generated/internalversion/scheduling:go_default_library", "//pkg/client/informers/informers_generated/internalversion/settings:go_default_library", "//pkg/client/informers/informers_generated/internalversion/storage: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", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/interface.go index 036ae9754..30943e156 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD index 19467f1ed..ca1c234c0 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD @@ -8,9 +8,10 @@ load( go_library( name = "go_default_library", srcs = [ - "externaladmissionhookconfiguration.go", "initializerconfiguration.go", "interface.go", + "mutatingwebhookconfiguration.go", + "validatingwebhookconfiguration.go", ], importpath = "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/externaladmissionhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/externaladmissionhookconfiguration.go deleted file mode 100644 index 697200473..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/externaladmissionhookconfiguration.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -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 internalversion - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" - admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" - internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" - internalversion "k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion" - time "time" -) - -// ExternalAdmissionHookConfigurationInformer provides access to a shared informer and lister for -// ExternalAdmissionHookConfigurations. -type ExternalAdmissionHookConfigurationInformer interface { - Informer() cache.SharedIndexInformer - Lister() internalversion.ExternalAdmissionHookConfigurationLister -} - -type externalAdmissionHookConfigurationInformer struct { - factory internalinterfaces.SharedInformerFactory -} - -// NewExternalAdmissionHookConfigurationInformer constructs a new informer for ExternalAdmissionHookConfiguration 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 NewExternalAdmissionHookConfigurationInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - return client.Admissionregistration().ExternalAdmissionHookConfigurations().List(options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - return client.Admissionregistration().ExternalAdmissionHookConfigurations().Watch(options) - }, - }, - &admissionregistration.ExternalAdmissionHookConfiguration{}, - resyncPeriod, - indexers, - ) -} - -func defaultExternalAdmissionHookConfigurationInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewExternalAdmissionHookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) -} - -func (f *externalAdmissionHookConfigurationInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&admissionregistration.ExternalAdmissionHookConfiguration{}, defaultExternalAdmissionHookConfigurationInformer) -} - -func (f *externalAdmissionHookConfigurationInformer) Lister() internalversion.ExternalAdmissionHookConfigurationLister { - return internalversion.NewExternalAdmissionHookConfigurationLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/initializerconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/initializerconfiguration.go index 70f869291..bc31ce102 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/initializerconfiguration.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/initializerconfiguration.go @@ -38,19 +38,33 @@ type InitializerConfigurationInformer interface { } type initializerConfigurationInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewInitializerConfigurationInformer constructs a new informer for InitializerConfiguration 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 NewInitializerConfigurationInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredInitializerConfigurationInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredInitializerConfigurationInformer constructs a new informer for InitializerConfiguration 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 NewFilteredInitializerConfigurationInformer(client internalclientset.Interface, 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.Admissionregistration().InitializerConfigurations().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Admissionregistration().InitializerConfigurations().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewInitializerConfigurationInformer(client internalclientset.Interface, res ) } -func defaultInitializerConfigurationInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewInitializerConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *initializerConfigurationInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredInitializerConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *initializerConfigurationInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&admissionregistration.InitializerConfiguration{}, defaultInitializerConfigurationInformer) + return f.factory.InformerFor(&admissionregistration.InitializerConfiguration{}, f.defaultInformer) } func (f *initializerConfigurationInformer) Lister() internalversion.InitializerConfigurationLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/interface.go index bd0803e27..0d7bec017 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/interface.go @@ -24,27 +24,36 @@ import ( // Interface provides access to all the informers in this group version. type Interface interface { - // ExternalAdmissionHookConfigurations returns a ExternalAdmissionHookConfigurationInformer. - ExternalAdmissionHookConfigurations() ExternalAdmissionHookConfigurationInformer // InitializerConfigurations returns a InitializerConfigurationInformer. InitializerConfigurations() InitializerConfigurationInformer + // MutatingWebhookConfigurations returns a MutatingWebhookConfigurationInformer. + MutatingWebhookConfigurations() MutatingWebhookConfigurationInformer + // ValidatingWebhookConfigurations returns a ValidatingWebhookConfigurationInformer. + ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInformer } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} -} - -// ExternalAdmissionHookConfigurations returns a ExternalAdmissionHookConfigurationInformer. -func (v *version) ExternalAdmissionHookConfigurations() ExternalAdmissionHookConfigurationInformer { - return &externalAdmissionHookConfigurationInformer{factory: v.SharedInformerFactory} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InitializerConfigurations returns a InitializerConfigurationInformer. func (v *version) InitializerConfigurations() InitializerConfigurationInformer { - return &initializerConfigurationInformer{factory: v.SharedInformerFactory} + return &initializerConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} + +// MutatingWebhookConfigurations returns a MutatingWebhookConfigurationInformer. +func (v *version) MutatingWebhookConfigurations() MutatingWebhookConfigurationInformer { + return &mutatingWebhookConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} + +// ValidatingWebhookConfigurations returns a ValidatingWebhookConfigurationInformer. +func (v *version) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInformer { + return &validatingWebhookConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/mutatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/mutatingwebhookconfiguration.go new file mode 100644 index 000000000..409f36b96 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/mutatingwebhookconfiguration.go @@ -0,0 +1,87 @@ +/* +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 internalversion + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" + admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" + internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" + internalversion "k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion" + time "time" +) + +// MutatingWebhookConfigurationInformer provides access to a shared informer and lister for +// MutatingWebhookConfigurations. +type MutatingWebhookConfigurationInformer interface { + Informer() cache.SharedIndexInformer + Lister() internalversion.MutatingWebhookConfigurationLister +} + +type mutatingWebhookConfigurationInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewMutatingWebhookConfigurationInformer constructs a new informer for MutatingWebhookConfiguration 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 NewMutatingWebhookConfigurationInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredMutatingWebhookConfigurationInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredMutatingWebhookConfigurationInformer constructs a new informer for MutatingWebhookConfiguration 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 NewFilteredMutatingWebhookConfigurationInformer(client internalclientset.Interface, 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.Admissionregistration().MutatingWebhookConfigurations().List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.Admissionregistration().MutatingWebhookConfigurations().Watch(options) + }, + }, + &admissionregistration.MutatingWebhookConfiguration{}, + resyncPeriod, + indexers, + ) +} + +func (f *mutatingWebhookConfigurationInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredMutatingWebhookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *mutatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&admissionregistration.MutatingWebhookConfiguration{}, f.defaultInformer) +} + +func (f *mutatingWebhookConfigurationInformer) Lister() internalversion.MutatingWebhookConfigurationLister { + return internalversion.NewMutatingWebhookConfigurationLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/validatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/validatingwebhookconfiguration.go new file mode 100644 index 000000000..3242e317f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/validatingwebhookconfiguration.go @@ -0,0 +1,87 @@ +/* +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 internalversion + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" + admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" + internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" + internalversion "k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion" + time "time" +) + +// ValidatingWebhookConfigurationInformer provides access to a shared informer and lister for +// ValidatingWebhookConfigurations. +type ValidatingWebhookConfigurationInformer interface { + Informer() cache.SharedIndexInformer + Lister() internalversion.ValidatingWebhookConfigurationLister +} + +type validatingWebhookConfigurationInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewValidatingWebhookConfigurationInformer constructs a new informer for ValidatingWebhookConfiguration 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 NewValidatingWebhookConfigurationInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredValidatingWebhookConfigurationInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredValidatingWebhookConfigurationInformer constructs a new informer for ValidatingWebhookConfiguration 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 NewFilteredValidatingWebhookConfigurationInformer(client internalclientset.Interface, 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.Admissionregistration().ValidatingWebhookConfigurations().List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.Admissionregistration().ValidatingWebhookConfigurations().Watch(options) + }, + }, + &admissionregistration.ValidatingWebhookConfiguration{}, + resyncPeriod, + indexers, + ) +} + +func (f *validatingWebhookConfigurationInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredValidatingWebhookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *validatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&admissionregistration.ValidatingWebhookConfiguration{}, f.defaultInformer) +} + +func (f *validatingWebhookConfigurationInformer) Lister() internalversion.ValidatingWebhookConfigurationLister { + return internalversion.NewValidatingWebhookConfigurationLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/interface.go index 720ab8c11..7467b3eec 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/controllerrevision.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/controllerrevision.go index 11e381b53..27407a12d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/controllerrevision.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/controllerrevision.go @@ -38,19 +38,34 @@ type ControllerRevisionInformer interface { } type controllerRevisionInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewControllerRevisionInformer constructs a new informer for ControllerRevision 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 NewControllerRevisionInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredControllerRevisionInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredControllerRevisionInformer constructs a new informer for ControllerRevision 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 NewFilteredControllerRevisionInformer(client internalclientset.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.Apps().ControllerRevisions(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Apps().ControllerRevisions(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewControllerRevisionInformer(client internalclientset.Interface, namespace ) } -func defaultControllerRevisionInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewControllerRevisionInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *controllerRevisionInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredControllerRevisionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps.ControllerRevision{}, defaultControllerRevisionInformer) + return f.factory.InformerFor(&apps.ControllerRevision{}, f.defaultInformer) } func (f *controllerRevisionInformer) Lister() internalversion.ControllerRevisionLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/interface.go index bd5ec23b1..3ceeae009 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/interface.go @@ -31,20 +31,22 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // ControllerRevisions returns a ControllerRevisionInformer. func (v *version) ControllerRevisions() ControllerRevisionInformer { - return &controllerRevisionInformer{factory: v.SharedInformerFactory} + return &controllerRevisionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // StatefulSets returns a StatefulSetInformer. func (v *version) StatefulSets() StatefulSetInformer { - return &statefulSetInformer{factory: v.SharedInformerFactory} + return &statefulSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/statefulset.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/statefulset.go index e52b64661..055612f8d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/statefulset.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/apps/internalversion/statefulset.go @@ -38,19 +38,34 @@ type StatefulSetInformer interface { } type statefulSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewStatefulSetInformer constructs a new informer for StatefulSet 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 NewStatefulSetInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredStatefulSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredStatefulSetInformer constructs a new informer for StatefulSet 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 NewFilteredStatefulSetInformer(client internalclientset.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.Apps().StatefulSets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Apps().StatefulSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewStatefulSetInformer(client internalclientset.Interface, namespace string ) } -func defaultStatefulSetInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewStatefulSetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *statefulSetInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredStatefulSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *statefulSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps.StatefulSet{}, defaultStatefulSetInformer) + return f.factory.InformerFor(&apps.StatefulSet{}, f.defaultInformer) } func (f *statefulSetInformer) Lister() internalversion.StatefulSetLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/interface.go index 52a595766..00e9e7f0c 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/horizontalpodautoscaler.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/horizontalpodautoscaler.go index cc8e7997b..4ba40676a 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/horizontalpodautoscaler.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/horizontalpodautoscaler.go @@ -38,19 +38,34 @@ type HorizontalPodAutoscalerInformer interface { } type horizontalPodAutoscalerInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler 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 NewHorizontalPodAutoscalerInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredHorizontalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler 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 NewFilteredHorizontalPodAutoscalerInformer(client internalclientset.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.Autoscaling().HorizontalPodAutoscalers(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Autoscaling().HorizontalPodAutoscalers(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewHorizontalPodAutoscalerInformer(client internalclientset.Interface, name ) } -func defaultHorizontalPodAutoscalerInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewHorizontalPodAutoscalerInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *horizontalPodAutoscalerInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredHorizontalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&autoscaling.HorizontalPodAutoscaler{}, defaultHorizontalPodAutoscalerInformer) + return f.factory.InformerFor(&autoscaling.HorizontalPodAutoscaler{}, f.defaultInformer) } func (f *horizontalPodAutoscalerInformer) Lister() internalversion.HorizontalPodAutoscalerLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/interface.go index e442cfb1b..3ac44fa63 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer. func (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer { - return &horizontalPodAutoscalerInformer{factory: v.SharedInformerFactory} + return &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/interface.go index 72bb5e729..ec3bef48d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/cronjob.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/cronjob.go index d0362f436..eeff85dad 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/cronjob.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/cronjob.go @@ -38,19 +38,34 @@ type CronJobInformer interface { } type cronJobInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewCronJobInformer constructs a new informer for CronJob 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 NewCronJobInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCronJobInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredCronJobInformer constructs a new informer for CronJob 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 NewFilteredCronJobInformer(client internalclientset.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.Batch().CronJobs(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Batch().CronJobs(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewCronJobInformer(client internalclientset.Interface, namespace string, re ) } -func defaultCronJobInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewCronJobInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *cronJobInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCronJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *cronJobInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&batch.CronJob{}, defaultCronJobInformer) + return f.factory.InformerFor(&batch.CronJob{}, f.defaultInformer) } func (f *cronJobInformer) Lister() internalversion.CronJobLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/interface.go index e02c25aaf..ca29cc526 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/interface.go @@ -31,20 +31,22 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // CronJobs returns a CronJobInformer. func (v *version) CronJobs() CronJobInformer { - return &cronJobInformer{factory: v.SharedInformerFactory} + return &cronJobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Jobs returns a JobInformer. func (v *version) Jobs() JobInformer { - return &jobInformer{factory: v.SharedInformerFactory} + return &jobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/job.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/job.go index 56039f740..1430f5b12 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/job.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/batch/internalversion/job.go @@ -38,19 +38,34 @@ type JobInformer interface { } type jobInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewJobInformer constructs a new informer for Job 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 NewJobInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredJobInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredJobInformer constructs a new informer for Job 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 NewFilteredJobInformer(client internalclientset.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.Batch().Jobs(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Batch().Jobs(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewJobInformer(client internalclientset.Interface, namespace string, resync ) } -func defaultJobInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewJobInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *jobInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *jobInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&batch.Job{}, defaultJobInformer) + return f.factory.InformerFor(&batch.Job{}, f.defaultInformer) } func (f *jobInformer) Lister() internalversion.JobLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/interface.go index eda8f8153..881fc209e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/certificatesigningrequest.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/certificatesigningrequest.go index 88bda731b..d4608c9e3 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/certificatesigningrequest.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/certificatesigningrequest.go @@ -38,19 +38,33 @@ type CertificateSigningRequestInformer interface { } type certificateSigningRequestInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewCertificateSigningRequestInformer constructs a new informer for CertificateSigningRequest 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 NewCertificateSigningRequestInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCertificateSigningRequestInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredCertificateSigningRequestInformer constructs a new informer for CertificateSigningRequest 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 NewFilteredCertificateSigningRequestInformer(client internalclientset.Interface, 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.Certificates().CertificateSigningRequests().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Certificates().CertificateSigningRequests().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewCertificateSigningRequestInformer(client internalclientset.Interface, re ) } -func defaultCertificateSigningRequestInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewCertificateSigningRequestInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *certificateSigningRequestInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCertificateSigningRequestInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *certificateSigningRequestInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&certificates.CertificateSigningRequest{}, defaultCertificateSigningRequestInformer) + return f.factory.InformerFor(&certificates.CertificateSigningRequest{}, f.defaultInformer) } func (f *certificateSigningRequestInformer) Lister() internalversion.CertificateSigningRequestLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/interface.go index 6dcbb4503..d017cfcea 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // CertificateSigningRequests returns a CertificateSigningRequestInformer. func (v *version) CertificateSigningRequests() CertificateSigningRequestInformer { - return &certificateSigningRequestInformer{factory: v.SharedInformerFactory} + return &certificateSigningRequestInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/interface.go index 329d6b529..12dab3466 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD index 5d703c4a2..6724faa6a 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD @@ -28,7 +28,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/componentstatus.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/componentstatus.go index 4044e1aba..805e45bb5 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/componentstatus.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/componentstatus.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,48 @@ type ComponentStatusInformer interface { } type componentStatusInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewComponentStatusInformer constructs a new informer for ComponentStatus 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 NewComponentStatusInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredComponentStatusInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredComponentStatusInformer constructs a new informer for ComponentStatus 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 NewFilteredComponentStatusInformer(client internalclientset.Interface, 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.Core().ComponentStatuses().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().ComponentStatuses().Watch(options) }, }, - &api.ComponentStatus{}, + &core.ComponentStatus{}, resyncPeriod, indexers, ) } -func defaultComponentStatusInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewComponentStatusInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *componentStatusInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredComponentStatusInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *componentStatusInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.ComponentStatus{}, defaultComponentStatusInformer) + return f.factory.InformerFor(&core.ComponentStatus{}, f.defaultInformer) } func (f *componentStatusInformer) Lister() internalversion.ComponentStatusLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/configmap.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/configmap.go index bfd2af64b..f96cdf8d9 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/configmap.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/configmap.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type ConfigMapInformer interface { } type configMapInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewConfigMapInformer constructs a new informer for ConfigMap 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 NewConfigMapInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredConfigMapInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredConfigMapInformer constructs a new informer for ConfigMap 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 NewFilteredConfigMapInformer(client internalclientset.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.Core().ConfigMaps(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().ConfigMaps(namespace).Watch(options) }, }, - &api.ConfigMap{}, + &core.ConfigMap{}, resyncPeriod, indexers, ) } -func defaultConfigMapInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewConfigMapInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *configMapInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredConfigMapInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *configMapInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.ConfigMap{}, defaultConfigMapInformer) + return f.factory.InformerFor(&core.ConfigMap{}, f.defaultInformer) } func (f *configMapInformer) Lister() internalversion.ConfigMapLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/endpoints.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/endpoints.go index bb9991256..f45d51817 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/endpoints.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/endpoints.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type EndpointsInformer interface { } type endpointsInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewEndpointsInformer constructs a new informer for Endpoints 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 NewEndpointsInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredEndpointsInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredEndpointsInformer constructs a new informer for Endpoints 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 NewFilteredEndpointsInformer(client internalclientset.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.Core().Endpoints(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().Endpoints(namespace).Watch(options) }, }, - &api.Endpoints{}, + &core.Endpoints{}, resyncPeriod, indexers, ) } -func defaultEndpointsInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewEndpointsInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *endpointsInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredEndpointsInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *endpointsInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.Endpoints{}, defaultEndpointsInformer) + return f.factory.InformerFor(&core.Endpoints{}, f.defaultInformer) } func (f *endpointsInformer) Lister() internalversion.EndpointsLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/event.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/event.go index 7b7108b61..936b60186 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/event.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/event.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type EventInformer interface { } type eventInformer struct { - factory internalinterfaces.SharedInformerFactory + 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 internalclientset.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 internalclientset.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.Core().Events(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().Events(namespace).Watch(options) }, }, - &api.Event{}, + &core.Event{}, resyncPeriod, indexers, ) } -func defaultEventInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewEventInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *eventInformer) defaultInformer(client internalclientset.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(&api.Event{}, defaultEventInformer) + return f.factory.InformerFor(&core.Event{}, f.defaultInformer) } func (f *eventInformer) Lister() internalversion.EventLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/interface.go index a9f5f1633..295600cb5 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/interface.go @@ -59,90 +59,92 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // ComponentStatuses returns a ComponentStatusInformer. func (v *version) ComponentStatuses() ComponentStatusInformer { - return &componentStatusInformer{factory: v.SharedInformerFactory} + return &componentStatusInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // ConfigMaps returns a ConfigMapInformer. func (v *version) ConfigMaps() ConfigMapInformer { - return &configMapInformer{factory: v.SharedInformerFactory} + return &configMapInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Endpoints returns a EndpointsInformer. func (v *version) Endpoints() EndpointsInformer { - return &endpointsInformer{factory: v.SharedInformerFactory} + return &endpointsInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Events returns a EventInformer. func (v *version) Events() EventInformer { - return &eventInformer{factory: v.SharedInformerFactory} + return &eventInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // LimitRanges returns a LimitRangeInformer. func (v *version) LimitRanges() LimitRangeInformer { - return &limitRangeInformer{factory: v.SharedInformerFactory} + return &limitRangeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Namespaces returns a NamespaceInformer. func (v *version) Namespaces() NamespaceInformer { - return &namespaceInformer{factory: v.SharedInformerFactory} + return &namespaceInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // Nodes returns a NodeInformer. func (v *version) Nodes() NodeInformer { - return &nodeInformer{factory: v.SharedInformerFactory} + return &nodeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // PersistentVolumes returns a PersistentVolumeInformer. func (v *version) PersistentVolumes() PersistentVolumeInformer { - return &persistentVolumeInformer{factory: v.SharedInformerFactory} + return &persistentVolumeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // PersistentVolumeClaims returns a PersistentVolumeClaimInformer. func (v *version) PersistentVolumeClaims() PersistentVolumeClaimInformer { - return &persistentVolumeClaimInformer{factory: v.SharedInformerFactory} + return &persistentVolumeClaimInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Pods returns a PodInformer. func (v *version) Pods() PodInformer { - return &podInformer{factory: v.SharedInformerFactory} + return &podInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // PodTemplates returns a PodTemplateInformer. func (v *version) PodTemplates() PodTemplateInformer { - return &podTemplateInformer{factory: v.SharedInformerFactory} + return &podTemplateInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // ReplicationControllers returns a ReplicationControllerInformer. func (v *version) ReplicationControllers() ReplicationControllerInformer { - return &replicationControllerInformer{factory: v.SharedInformerFactory} + return &replicationControllerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // ResourceQuotas returns a ResourceQuotaInformer. func (v *version) ResourceQuotas() ResourceQuotaInformer { - return &resourceQuotaInformer{factory: v.SharedInformerFactory} + return &resourceQuotaInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Secrets returns a SecretInformer. func (v *version) Secrets() SecretInformer { - return &secretInformer{factory: v.SharedInformerFactory} + return &secretInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Services returns a ServiceInformer. func (v *version) Services() ServiceInformer { - return &serviceInformer{factory: v.SharedInformerFactory} + return &serviceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // ServiceAccounts returns a ServiceAccountInformer. func (v *version) ServiceAccounts() ServiceAccountInformer { - return &serviceAccountInformer{factory: v.SharedInformerFactory} + return &serviceAccountInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/limitrange.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/limitrange.go index 8eea5642f..e167da6e3 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/limitrange.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/limitrange.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type LimitRangeInformer interface { } type limitRangeInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewLimitRangeInformer constructs a new informer for LimitRange 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 NewLimitRangeInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredLimitRangeInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredLimitRangeInformer constructs a new informer for LimitRange 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 NewFilteredLimitRangeInformer(client internalclientset.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.Core().LimitRanges(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().LimitRanges(namespace).Watch(options) }, }, - &api.LimitRange{}, + &core.LimitRange{}, resyncPeriod, indexers, ) } -func defaultLimitRangeInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewLimitRangeInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *limitRangeInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredLimitRangeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *limitRangeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.LimitRange{}, defaultLimitRangeInformer) + return f.factory.InformerFor(&core.LimitRange{}, f.defaultInformer) } func (f *limitRangeInformer) Lister() internalversion.LimitRangeLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/namespace.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/namespace.go index 8610b66c7..da9f88eaa 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/namespace.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/namespace.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,48 @@ type NamespaceInformer interface { } type namespaceInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewNamespaceInformer constructs a new informer for Namespace 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 NewNamespaceInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredNamespaceInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredNamespaceInformer constructs a new informer for Namespace 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 NewFilteredNamespaceInformer(client internalclientset.Interface, 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.Core().Namespaces().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().Namespaces().Watch(options) }, }, - &api.Namespace{}, + &core.Namespace{}, resyncPeriod, indexers, ) } -func defaultNamespaceInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewNamespaceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *namespaceInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredNamespaceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *namespaceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.Namespace{}, defaultNamespaceInformer) + return f.factory.InformerFor(&core.Namespace{}, f.defaultInformer) } func (f *namespaceInformer) Lister() internalversion.NamespaceLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/node.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/node.go index bc8432c3a..5a112bf89 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/node.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/node.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,48 @@ type NodeInformer interface { } type nodeInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewNodeInformer constructs a new informer for Node 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 NewNodeInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredNodeInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredNodeInformer constructs a new informer for Node 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 NewFilteredNodeInformer(client internalclientset.Interface, 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.Core().Nodes().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().Nodes().Watch(options) }, }, - &api.Node{}, + &core.Node{}, resyncPeriod, indexers, ) } -func defaultNodeInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewNodeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *nodeInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredNodeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *nodeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.Node{}, defaultNodeInformer) + return f.factory.InformerFor(&core.Node{}, f.defaultInformer) } func (f *nodeInformer) Lister() internalversion.NodeLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/persistentvolume.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/persistentvolume.go index 7f344f1fd..ecccd769f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/persistentvolume.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/persistentvolume.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,48 @@ type PersistentVolumeInformer interface { } type persistentVolumeInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewPersistentVolumeInformer constructs a new informer for PersistentVolume 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 NewPersistentVolumeInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPersistentVolumeInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredPersistentVolumeInformer constructs a new informer for PersistentVolume 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 NewFilteredPersistentVolumeInformer(client internalclientset.Interface, 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.Core().PersistentVolumes().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().PersistentVolumes().Watch(options) }, }, - &api.PersistentVolume{}, + &core.PersistentVolume{}, resyncPeriod, indexers, ) } -func defaultPersistentVolumeInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPersistentVolumeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *persistentVolumeInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPersistentVolumeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *persistentVolumeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.PersistentVolume{}, defaultPersistentVolumeInformer) + return f.factory.InformerFor(&core.PersistentVolume{}, f.defaultInformer) } func (f *persistentVolumeInformer) Lister() internalversion.PersistentVolumeLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/persistentvolumeclaim.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/persistentvolumeclaim.go index e32130ba3..bc0c55a12 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/persistentvolumeclaim.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/persistentvolumeclaim.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type PersistentVolumeClaimInformer interface { } type persistentVolumeClaimInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPersistentVolumeClaimInformer constructs a new informer for PersistentVolumeClaim 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 NewPersistentVolumeClaimInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPersistentVolumeClaimInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPersistentVolumeClaimInformer constructs a new informer for PersistentVolumeClaim 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 NewFilteredPersistentVolumeClaimInformer(client internalclientset.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.Core().PersistentVolumeClaims(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().PersistentVolumeClaims(namespace).Watch(options) }, }, - &api.PersistentVolumeClaim{}, + &core.PersistentVolumeClaim{}, resyncPeriod, indexers, ) } -func defaultPersistentVolumeClaimInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPersistentVolumeClaimInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *persistentVolumeClaimInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPersistentVolumeClaimInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *persistentVolumeClaimInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.PersistentVolumeClaim{}, defaultPersistentVolumeClaimInformer) + return f.factory.InformerFor(&core.PersistentVolumeClaim{}, f.defaultInformer) } func (f *persistentVolumeClaimInformer) Lister() internalversion.PersistentVolumeClaimLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/pod.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/pod.go index a5bf7be52..cf72a57fc 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/pod.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/pod.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type PodInformer interface { } type podInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPodInformer constructs a new informer for Pod 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 NewPodInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPodInformer constructs a new informer for Pod 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 NewFilteredPodInformer(client internalclientset.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.Core().Pods(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().Pods(namespace).Watch(options) }, }, - &api.Pod{}, + &core.Pod{}, resyncPeriod, indexers, ) } -func defaultPodInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.Pod{}, defaultPodInformer) + return f.factory.InformerFor(&core.Pod{}, f.defaultInformer) } func (f *podInformer) Lister() internalversion.PodLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/podtemplate.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/podtemplate.go index 295fdc174..536fafd63 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/podtemplate.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/podtemplate.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type PodTemplateInformer interface { } type podTemplateInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPodTemplateInformer constructs a new informer for PodTemplate 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 NewPodTemplateInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodTemplateInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPodTemplateInformer constructs a new informer for PodTemplate 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 NewFilteredPodTemplateInformer(client internalclientset.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.Core().PodTemplates(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().PodTemplates(namespace).Watch(options) }, }, - &api.PodTemplate{}, + &core.PodTemplate{}, resyncPeriod, indexers, ) } -func defaultPodTemplateInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodTemplateInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podTemplateInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodTemplateInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podTemplateInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.PodTemplate{}, defaultPodTemplateInformer) + return f.factory.InformerFor(&core.PodTemplate{}, f.defaultInformer) } func (f *podTemplateInformer) Lister() internalversion.PodTemplateLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/replicationcontroller.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/replicationcontroller.go index 592d6bcc4..4741b32b4 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/replicationcontroller.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/replicationcontroller.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type ReplicationControllerInformer interface { } type replicationControllerInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewReplicationControllerInformer constructs a new informer for ReplicationController 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 NewReplicationControllerInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredReplicationControllerInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredReplicationControllerInformer constructs a new informer for ReplicationController 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 NewFilteredReplicationControllerInformer(client internalclientset.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.Core().ReplicationControllers(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().ReplicationControllers(namespace).Watch(options) }, }, - &api.ReplicationController{}, + &core.ReplicationController{}, resyncPeriod, indexers, ) } -func defaultReplicationControllerInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewReplicationControllerInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *replicationControllerInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredReplicationControllerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *replicationControllerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.ReplicationController{}, defaultReplicationControllerInformer) + return f.factory.InformerFor(&core.ReplicationController{}, f.defaultInformer) } func (f *replicationControllerInformer) Lister() internalversion.ReplicationControllerLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/resourcequota.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/resourcequota.go index 04327b479..2a50f2c49 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/resourcequota.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/resourcequota.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type ResourceQuotaInformer interface { } type resourceQuotaInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewResourceQuotaInformer constructs a new informer for ResourceQuota 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 NewResourceQuotaInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredResourceQuotaInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredResourceQuotaInformer constructs a new informer for ResourceQuota 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 NewFilteredResourceQuotaInformer(client internalclientset.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.Core().ResourceQuotas(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().ResourceQuotas(namespace).Watch(options) }, }, - &api.ResourceQuota{}, + &core.ResourceQuota{}, resyncPeriod, indexers, ) } -func defaultResourceQuotaInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewResourceQuotaInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *resourceQuotaInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredResourceQuotaInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *resourceQuotaInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.ResourceQuota{}, defaultResourceQuotaInformer) + return f.factory.InformerFor(&core.ResourceQuota{}, f.defaultInformer) } func (f *resourceQuotaInformer) Lister() internalversion.ResourceQuotaLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/secret.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/secret.go index 1dae56770..35c4d2067 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/secret.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/secret.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type SecretInformer interface { } type secretInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewSecretInformer constructs a new informer for Secret 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 NewSecretInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredSecretInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredSecretInformer constructs a new informer for Secret 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 NewFilteredSecretInformer(client internalclientset.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.Core().Secrets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().Secrets(namespace).Watch(options) }, }, - &api.Secret{}, + &core.Secret{}, resyncPeriod, indexers, ) } -func defaultSecretInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewSecretInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *secretInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredSecretInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *secretInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.Secret{}, defaultSecretInformer) + return f.factory.InformerFor(&core.Secret{}, f.defaultInformer) } func (f *secretInformer) Lister() internalversion.SecretLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/service.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/service.go index 0e6175754..086529166 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/service.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/service.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type ServiceInformer interface { } type serviceInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewServiceInformer constructs a new informer for Service 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 NewServiceInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredServiceInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredServiceInformer constructs a new informer for Service 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 NewFilteredServiceInformer(client internalclientset.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.Core().Services(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().Services(namespace).Watch(options) }, }, - &api.Service{}, + &core.Service{}, resyncPeriod, indexers, ) } -func defaultServiceInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewServiceInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *serviceInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredServiceInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *serviceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.Service{}, defaultServiceInformer) + return f.factory.InformerFor(&core.Service{}, f.defaultInformer) } func (f *serviceInformer) Lister() internalversion.ServiceLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/serviceaccount.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/serviceaccount.go index dce710de7..54d4509c3 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/serviceaccount.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion/serviceaccount.go @@ -23,7 +23,7 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" internalversion "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -38,34 +38,49 @@ type ServiceAccountInformer interface { } type serviceAccountInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewServiceAccountInformer constructs a new informer for ServiceAccount 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 NewServiceAccountInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredServiceAccountInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredServiceAccountInformer constructs a new informer for ServiceAccount 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 NewFilteredServiceAccountInformer(client internalclientset.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.Core().ServiceAccounts(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Core().ServiceAccounts(namespace).Watch(options) }, }, - &api.ServiceAccount{}, + &core.ServiceAccount{}, resyncPeriod, indexers, ) } -func defaultServiceAccountInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewServiceAccountInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *serviceAccountInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredServiceAccountInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *serviceAccountInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&api.ServiceAccount{}, defaultServiceAccountInformer) + return f.factory.InformerFor(&core.ServiceAccount{}, f.defaultInformer) } func (f *serviceAccountInformer) Lister() internalversion.ServiceAccountLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/interface.go index acc422e79..b909a563f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD index d0b14d962..4b31f38ce 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD @@ -14,7 +14,6 @@ go_library( "interface.go", "podsecuritypolicy.go", "replicaset.go", - "thirdpartyresource.go", ], importpath = "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/daemonset.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/daemonset.go index 401a08551..21479d96e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/daemonset.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/daemonset.go @@ -38,19 +38,34 @@ type DaemonSetInformer interface { } type daemonSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewDaemonSetInformer constructs a new informer for DaemonSet 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 NewDaemonSetInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDaemonSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDaemonSetInformer constructs a new informer for DaemonSet 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 NewFilteredDaemonSetInformer(client internalclientset.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.Extensions().DaemonSets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Extensions().DaemonSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewDaemonSetInformer(client internalclientset.Interface, namespace string, ) } -func defaultDaemonSetInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewDaemonSetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *daemonSetInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDaemonSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *daemonSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions.DaemonSet{}, defaultDaemonSetInformer) + return f.factory.InformerFor(&extensions.DaemonSet{}, f.defaultInformer) } func (f *daemonSetInformer) Lister() internalversion.DaemonSetLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/deployment.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/deployment.go index 872c211e0..6b1044a46 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/deployment.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/deployment.go @@ -38,19 +38,34 @@ type DeploymentInformer interface { } type deploymentInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewDeploymentInformer constructs a new informer for Deployment 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 NewDeploymentInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDeploymentInformer constructs a new informer for Deployment 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 NewFilteredDeploymentInformer(client internalclientset.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.Extensions().Deployments(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Extensions().Deployments(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewDeploymentInformer(client internalclientset.Interface, namespace string, ) } -func defaultDeploymentInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewDeploymentInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *deploymentInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *deploymentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions.Deployment{}, defaultDeploymentInformer) + return f.factory.InformerFor(&extensions.Deployment{}, f.defaultInformer) } func (f *deploymentInformer) Lister() internalversion.DeploymentLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/ingress.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/ingress.go index 8c1e22d71..f40244494 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/ingress.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/ingress.go @@ -38,19 +38,34 @@ type IngressInformer interface { } type ingressInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewIngressInformer constructs a new informer for Ingress 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 NewIngressInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredIngressInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredIngressInformer constructs a new informer for Ingress 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 NewFilteredIngressInformer(client internalclientset.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.Extensions().Ingresses(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Extensions().Ingresses(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewIngressInformer(client internalclientset.Interface, namespace string, re ) } -func defaultIngressInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewIngressInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *ingressInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredIngressInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *ingressInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions.Ingress{}, defaultIngressInformer) + return f.factory.InformerFor(&extensions.Ingress{}, f.defaultInformer) } func (f *ingressInformer) Lister() internalversion.IngressLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/interface.go index 04e131c80..2c5f3212d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/interface.go @@ -34,45 +34,40 @@ type Interface interface { PodSecurityPolicies() PodSecurityPolicyInformer // ReplicaSets returns a ReplicaSetInformer. ReplicaSets() ReplicaSetInformer - // ThirdPartyResources returns a ThirdPartyResourceInformer. - ThirdPartyResources() ThirdPartyResourceInformer } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // DaemonSets returns a DaemonSetInformer. func (v *version) DaemonSets() DaemonSetInformer { - return &daemonSetInformer{factory: v.SharedInformerFactory} + return &daemonSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Deployments returns a DeploymentInformer. func (v *version) Deployments() DeploymentInformer { - return &deploymentInformer{factory: v.SharedInformerFactory} + return &deploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Ingresses returns a IngressInformer. func (v *version) Ingresses() IngressInformer { - return &ingressInformer{factory: v.SharedInformerFactory} + return &ingressInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // PodSecurityPolicies returns a PodSecurityPolicyInformer. func (v *version) PodSecurityPolicies() PodSecurityPolicyInformer { - return &podSecurityPolicyInformer{factory: v.SharedInformerFactory} + return &podSecurityPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // ReplicaSets returns a ReplicaSetInformer. func (v *version) ReplicaSets() ReplicaSetInformer { - return &replicaSetInformer{factory: v.SharedInformerFactory} -} - -// ThirdPartyResources returns a ThirdPartyResourceInformer. -func (v *version) ThirdPartyResources() ThirdPartyResourceInformer { - return &thirdPartyResourceInformer{factory: v.SharedInformerFactory} + return &replicaSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/podsecuritypolicy.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/podsecuritypolicy.go index 07d30d0dd..c1015ae10 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/podsecuritypolicy.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/podsecuritypolicy.go @@ -38,19 +38,33 @@ type PodSecurityPolicyInformer interface { } type podSecurityPolicyInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewPodSecurityPolicyInformer constructs a new informer for PodSecurityPolicy 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 NewPodSecurityPolicyInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodSecurityPolicyInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredPodSecurityPolicyInformer constructs a new informer for PodSecurityPolicy 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 NewFilteredPodSecurityPolicyInformer(client internalclientset.Interface, 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.Extensions().PodSecurityPolicies().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Extensions().PodSecurityPolicies().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewPodSecurityPolicyInformer(client internalclientset.Interface, resyncPeri ) } -func defaultPodSecurityPolicyInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodSecurityPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podSecurityPolicyInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodSecurityPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podSecurityPolicyInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions.PodSecurityPolicy{}, defaultPodSecurityPolicyInformer) + return f.factory.InformerFor(&extensions.PodSecurityPolicy{}, f.defaultInformer) } func (f *podSecurityPolicyInformer) Lister() internalversion.PodSecurityPolicyLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/replicaset.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/replicaset.go index c5deda6ce..7a4b889f6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/replicaset.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/replicaset.go @@ -38,19 +38,34 @@ type ReplicaSetInformer interface { } type replicaSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewReplicaSetInformer constructs a new informer for ReplicaSet 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 NewReplicaSetInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredReplicaSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredReplicaSetInformer constructs a new informer for ReplicaSet 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 NewFilteredReplicaSetInformer(client internalclientset.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.Extensions().ReplicaSets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Extensions().ReplicaSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewReplicaSetInformer(client internalclientset.Interface, namespace string, ) } -func defaultReplicaSetInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewReplicaSetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *replicaSetInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredReplicaSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *replicaSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions.ReplicaSet{}, defaultReplicaSetInformer) + return f.factory.InformerFor(&extensions.ReplicaSet{}, f.defaultInformer) } func (f *replicaSetInformer) Lister() internalversion.ReplicaSetLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/thirdpartyresource.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/thirdpartyresource.go deleted file mode 100644 index 7b121bd4c..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/thirdpartyresource.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -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 internalversion - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" - extensions "k8s.io/kubernetes/pkg/apis/extensions" - internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" - internalversion "k8s.io/kubernetes/pkg/client/listers/extensions/internalversion" - time "time" -) - -// ThirdPartyResourceInformer provides access to a shared informer and lister for -// ThirdPartyResources. -type ThirdPartyResourceInformer interface { - Informer() cache.SharedIndexInformer - Lister() internalversion.ThirdPartyResourceLister -} - -type thirdPartyResourceInformer struct { - factory internalinterfaces.SharedInformerFactory -} - -// NewThirdPartyResourceInformer constructs a new informer for ThirdPartyResource 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 NewThirdPartyResourceInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - return client.Extensions().ThirdPartyResources().List(options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - return client.Extensions().ThirdPartyResources().Watch(options) - }, - }, - &extensions.ThirdPartyResource{}, - resyncPeriod, - indexers, - ) -} - -func defaultThirdPartyResourceInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewThirdPartyResourceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) -} - -func (f *thirdPartyResourceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions.ThirdPartyResource{}, defaultThirdPartyResourceInformer) -} - -func (f *thirdPartyResourceInformer) Lister() internalversion.ThirdPartyResourceLister { - return internalversion.NewThirdPartyResourceLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go index c5dba5cc0..e66407f88 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go @@ -19,6 +19,7 @@ limitations under the License. package internalversion import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" @@ -43,9 +44,11 @@ import ( ) type sharedInformerFactory struct { - client internalclientset.Interface - lock sync.Mutex - defaultResync time.Duration + client internalclientset.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -55,8 +58,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client internalclientset.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client internalclientset.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -138,53 +150,53 @@ type SharedInformerFactory interface { } func (f *sharedInformerFactory) Admissionregistration() admissionregistration.Interface { - return admissionregistration.New(f) + return admissionregistration.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Apps() apps.Interface { - return apps.New(f) + return apps.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Autoscaling() autoscaling.Interface { - return autoscaling.New(f) + return autoscaling.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Batch() batch.Interface { - return batch.New(f) + return batch.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Certificates() certificates.Interface { - return certificates.New(f) + return certificates.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Core() core.Interface { - return core.New(f) + return core.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Extensions() extensions.Interface { - return extensions.New(f) + return extensions.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Networking() networking.Interface { - return networking.New(f) + return networking.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Policy() policy.Interface { - return policy.New(f) + return policy.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Rbac() rbac.Interface { - return rbac.New(f) + return rbac.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Scheduling() scheduling.Interface { - return scheduling.New(f) + return scheduling.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Settings() settings.Interface { - return settings.New(f) + return settings.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Storage() storage.Interface { - return storage.New(f) + return storage.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/generic.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/generic.go index 8fa88584b..1de571167 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/generic.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/generic.go @@ -22,12 +22,12 @@ import ( "fmt" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" apps "k8s.io/kubernetes/pkg/apis/apps" autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling" batch "k8s.io/kubernetes/pkg/apis/batch" certificates "k8s.io/kubernetes/pkg/apis/certificates" + core "k8s.io/kubernetes/pkg/apis/core" extensions "k8s.io/kubernetes/pkg/apis/extensions" networking "k8s.io/kubernetes/pkg/apis/networking" policy "k8s.io/kubernetes/pkg/apis/policy" @@ -63,67 +63,69 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Admissionregistration, Version=InternalVersion - case admissionregistration.SchemeGroupVersion.WithResource("externaladmissionhookconfigurations"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().InternalVersion().ExternalAdmissionHookConfigurations().Informer()}, nil + // Group=admissionregistration.k8s.io, Version=internalVersion case admissionregistration.SchemeGroupVersion.WithResource("initializerconfigurations"): return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().InternalVersion().InitializerConfigurations().Informer()}, nil + case admissionregistration.SchemeGroupVersion.WithResource("mutatingwebhookconfigurations"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().InternalVersion().MutatingWebhookConfigurations().Informer()}, nil + case admissionregistration.SchemeGroupVersion.WithResource("validatingwebhookconfigurations"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().InternalVersion().ValidatingWebhookConfigurations().Informer()}, nil - // Group=Apps, Version=InternalVersion + // Group=apps, Version=internalVersion case apps.SchemeGroupVersion.WithResource("controllerrevisions"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().InternalVersion().ControllerRevisions().Informer()}, nil case apps.SchemeGroupVersion.WithResource("statefulsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().InternalVersion().StatefulSets().Informer()}, nil - // Group=Autoscaling, Version=InternalVersion + // Group=autoscaling, Version=internalVersion case autoscaling.SchemeGroupVersion.WithResource("horizontalpodautoscalers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().InternalVersion().HorizontalPodAutoscalers().Informer()}, nil - // Group=Batch, Version=InternalVersion + // Group=batch, Version=internalVersion case batch.SchemeGroupVersion.WithResource("cronjobs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().InternalVersion().CronJobs().Informer()}, nil case batch.SchemeGroupVersion.WithResource("jobs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().InternalVersion().Jobs().Informer()}, nil - // Group=Certificates, Version=InternalVersion + // Group=certificates.k8s.io, Version=internalVersion case certificates.SchemeGroupVersion.WithResource("certificatesigningrequests"): return &genericInformer{resource: resource.GroupResource(), informer: f.Certificates().InternalVersion().CertificateSigningRequests().Informer()}, nil - // Group=Core, Version=InternalVersion - case api.SchemeGroupVersion.WithResource("componentstatuses"): + // Group=core, Version=internalVersion + case core.SchemeGroupVersion.WithResource("componentstatuses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().ComponentStatuses().Informer()}, nil - case api.SchemeGroupVersion.WithResource("configmaps"): + case core.SchemeGroupVersion.WithResource("configmaps"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().ConfigMaps().Informer()}, nil - case api.SchemeGroupVersion.WithResource("endpoints"): + case core.SchemeGroupVersion.WithResource("endpoints"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().Endpoints().Informer()}, nil - case api.SchemeGroupVersion.WithResource("events"): + case core.SchemeGroupVersion.WithResource("events"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().Events().Informer()}, nil - case api.SchemeGroupVersion.WithResource("limitranges"): + case core.SchemeGroupVersion.WithResource("limitranges"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().LimitRanges().Informer()}, nil - case api.SchemeGroupVersion.WithResource("namespaces"): + case core.SchemeGroupVersion.WithResource("namespaces"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().Namespaces().Informer()}, nil - case api.SchemeGroupVersion.WithResource("nodes"): + case core.SchemeGroupVersion.WithResource("nodes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().Nodes().Informer()}, nil - case api.SchemeGroupVersion.WithResource("persistentvolumes"): + case core.SchemeGroupVersion.WithResource("persistentvolumes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().PersistentVolumes().Informer()}, nil - case api.SchemeGroupVersion.WithResource("persistentvolumeclaims"): + case core.SchemeGroupVersion.WithResource("persistentvolumeclaims"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().PersistentVolumeClaims().Informer()}, nil - case api.SchemeGroupVersion.WithResource("pods"): + case core.SchemeGroupVersion.WithResource("pods"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().Pods().Informer()}, nil - case api.SchemeGroupVersion.WithResource("podtemplates"): + case core.SchemeGroupVersion.WithResource("podtemplates"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().PodTemplates().Informer()}, nil - case api.SchemeGroupVersion.WithResource("replicationcontrollers"): + case core.SchemeGroupVersion.WithResource("replicationcontrollers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().ReplicationControllers().Informer()}, nil - case api.SchemeGroupVersion.WithResource("resourcequotas"): + case core.SchemeGroupVersion.WithResource("resourcequotas"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().ResourceQuotas().Informer()}, nil - case api.SchemeGroupVersion.WithResource("secrets"): + case core.SchemeGroupVersion.WithResource("secrets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().Secrets().Informer()}, nil - case api.SchemeGroupVersion.WithResource("services"): + case core.SchemeGroupVersion.WithResource("services"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().Services().Informer()}, nil - case api.SchemeGroupVersion.WithResource("serviceaccounts"): + case core.SchemeGroupVersion.WithResource("serviceaccounts"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().InternalVersion().ServiceAccounts().Informer()}, nil - // Group=Extensions, Version=InternalVersion + // Group=extensions, Version=internalVersion case extensions.SchemeGroupVersion.WithResource("daemonsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().InternalVersion().DaemonSets().Informer()}, nil case extensions.SchemeGroupVersion.WithResource("deployments"): @@ -134,18 +136,16 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().InternalVersion().PodSecurityPolicies().Informer()}, nil case extensions.SchemeGroupVersion.WithResource("replicasets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().InternalVersion().ReplicaSets().Informer()}, nil - case extensions.SchemeGroupVersion.WithResource("thirdpartyresources"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().InternalVersion().ThirdPartyResources().Informer()}, nil - // Group=Networking, Version=InternalVersion + // Group=networking.k8s.io, Version=internalVersion case networking.SchemeGroupVersion.WithResource("networkpolicies"): return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().InternalVersion().NetworkPolicies().Informer()}, nil - // Group=Policy, Version=InternalVersion + // Group=policy, Version=internalVersion case policy.SchemeGroupVersion.WithResource("poddisruptionbudgets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().InternalVersion().PodDisruptionBudgets().Informer()}, nil - // Group=Rbac, Version=InternalVersion + // Group=rbac.authorization.k8s.io, Version=internalVersion case rbac.SchemeGroupVersion.WithResource("clusterroles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().InternalVersion().ClusterRoles().Informer()}, nil case rbac.SchemeGroupVersion.WithResource("clusterrolebindings"): @@ -155,17 +155,19 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case rbac.SchemeGroupVersion.WithResource("rolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().InternalVersion().RoleBindings().Informer()}, nil - // Group=Scheduling, Version=InternalVersion + // Group=scheduling.k8s.io, Version=internalVersion case scheduling.SchemeGroupVersion.WithResource("priorityclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().InternalVersion().PriorityClasses().Informer()}, nil - // Group=Settings, Version=InternalVersion + // Group=settings.k8s.io, Version=internalVersion case settings.SchemeGroupVersion.WithResource("podpresets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Settings().InternalVersion().PodPresets().Informer()}, nil - // Group=Storage, Version=InternalVersion + // Group=storage.k8s.io, Version=internalVersion case storage.SchemeGroupVersion.WithResource("storageclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().InternalVersion().StorageClasses().Informer()}, nil + case storage.SchemeGroupVersion.WithResource("volumeattachments"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().InternalVersion().VolumeAttachments().Informer()}, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD index 05f5fa181..a87900962 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD @@ -11,6 +11,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces", deps = [ "//pkg/client/clientset_generated/internalclientset: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/client-go/tools/cache:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces/factory_interfaces.go index 5b168b591..9c7a91905 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces/factory_interfaces.go @@ -19,6 +19,7 @@ limitations under the License. package internalinterfaces import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/interface.go index bae69a504..e6b776212 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/internalversion/interface.go index e3eb5fa81..8a8762775 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/internalversion/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // NetworkPolicies returns a NetworkPolicyInformer. func (v *version) NetworkPolicies() NetworkPolicyInformer { - return &networkPolicyInformer{factory: v.SharedInformerFactory} + return &networkPolicyInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/internalversion/networkpolicy.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/internalversion/networkpolicy.go index aea32f716..0b094a7ce 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/internalversion/networkpolicy.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/networking/internalversion/networkpolicy.go @@ -38,19 +38,34 @@ type NetworkPolicyInformer interface { } type networkPolicyInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewNetworkPolicyInformer constructs a new informer for NetworkPolicy 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 NewNetworkPolicyInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredNetworkPolicyInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredNetworkPolicyInformer constructs a new informer for NetworkPolicy 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 NewFilteredNetworkPolicyInformer(client internalclientset.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.Networking().NetworkPolicies(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Networking().NetworkPolicies(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewNetworkPolicyInformer(client internalclientset.Interface, namespace stri ) } -func defaultNetworkPolicyInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewNetworkPolicyInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *networkPolicyInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredNetworkPolicyInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *networkPolicyInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&networking.NetworkPolicy{}, defaultNetworkPolicyInformer) + return f.factory.InformerFor(&networking.NetworkPolicy{}, f.defaultInformer) } func (f *networkPolicyInformer) Lister() internalversion.NetworkPolicyLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/interface.go index 82977c9ce..286028374 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/internalversion/interface.go index 258654df2..74773e72e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/internalversion/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // PodDisruptionBudgets returns a PodDisruptionBudgetInformer. func (v *version) PodDisruptionBudgets() PodDisruptionBudgetInformer { - return &podDisruptionBudgetInformer{factory: v.SharedInformerFactory} + return &podDisruptionBudgetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/internalversion/poddisruptionbudget.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/internalversion/poddisruptionbudget.go index 6be99a712..431d5898b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/internalversion/poddisruptionbudget.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/policy/internalversion/poddisruptionbudget.go @@ -38,19 +38,34 @@ type PodDisruptionBudgetInformer interface { } type podDisruptionBudgetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget 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 NewPodDisruptionBudgetInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodDisruptionBudgetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget 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 NewFilteredPodDisruptionBudgetInformer(client internalclientset.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.Policy().PodDisruptionBudgets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Policy().PodDisruptionBudgets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewPodDisruptionBudgetInformer(client internalclientset.Interface, namespac ) } -func defaultPodDisruptionBudgetInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodDisruptionBudgetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podDisruptionBudgetInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodDisruptionBudgetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podDisruptionBudgetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&policy.PodDisruptionBudget{}, defaultPodDisruptionBudgetInformer) + return f.factory.InformerFor(&policy.PodDisruptionBudget{}, f.defaultInformer) } func (f *podDisruptionBudgetInformer) Lister() internalversion.PodDisruptionBudgetLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/interface.go index 47dad0522..bcd516701 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/clusterrole.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/clusterrole.go index 6f3d575ce..d723beeeb 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/clusterrole.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/clusterrole.go @@ -38,19 +38,33 @@ type ClusterRoleInformer interface { } type clusterRoleInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewClusterRoleInformer constructs a new informer for ClusterRole 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 NewClusterRoleInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredClusterRoleInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredClusterRoleInformer constructs a new informer for ClusterRole 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 NewFilteredClusterRoleInformer(client internalclientset.Interface, 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.Rbac().ClusterRoles().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Rbac().ClusterRoles().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewClusterRoleInformer(client internalclientset.Interface, resyncPeriod tim ) } -func defaultClusterRoleInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *clusterRoleInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac.ClusterRole{}, defaultClusterRoleInformer) + return f.factory.InformerFor(&rbac.ClusterRole{}, f.defaultInformer) } func (f *clusterRoleInformer) Lister() internalversion.ClusterRoleLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/clusterrolebinding.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/clusterrolebinding.go index e0c5160a7..07b15deaa 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/clusterrolebinding.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/clusterrolebinding.go @@ -38,19 +38,33 @@ type ClusterRoleBindingInformer interface { } type clusterRoleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewClusterRoleBindingInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewFilteredClusterRoleBindingInformer(client internalclientset.Interface, 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.Rbac().ClusterRoleBindings().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Rbac().ClusterRoleBindings().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewClusterRoleBindingInformer(client internalclientset.Interface, resyncPer ) } -func defaultClusterRoleBindingInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *clusterRoleBindingInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac.ClusterRoleBinding{}, defaultClusterRoleBindingInformer) + return f.factory.InformerFor(&rbac.ClusterRoleBinding{}, f.defaultInformer) } func (f *clusterRoleBindingInformer) Lister() internalversion.ClusterRoleBindingLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/interface.go index fc85041c4..ac8b2040c 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/interface.go @@ -35,30 +35,32 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // ClusterRoles returns a ClusterRoleInformer. func (v *version) ClusterRoles() ClusterRoleInformer { - return &clusterRoleInformer{factory: v.SharedInformerFactory} + return &clusterRoleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // ClusterRoleBindings returns a ClusterRoleBindingInformer. func (v *version) ClusterRoleBindings() ClusterRoleBindingInformer { - return &clusterRoleBindingInformer{factory: v.SharedInformerFactory} + return &clusterRoleBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // Roles returns a RoleInformer. func (v *version) Roles() RoleInformer { - return &roleInformer{factory: v.SharedInformerFactory} + return &roleInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // RoleBindings returns a RoleBindingInformer. func (v *version) RoleBindings() RoleBindingInformer { - return &roleBindingInformer{factory: v.SharedInformerFactory} + return &roleBindingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/role.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/role.go index 5d61c9c28..7a736633d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/role.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/role.go @@ -38,19 +38,34 @@ type RoleInformer interface { } type roleInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewRoleInformer constructs a new informer for Role 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 NewRoleInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredRoleInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredRoleInformer constructs a new informer for Role 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 NewFilteredRoleInformer(client internalclientset.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.Rbac().Roles(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Rbac().Roles(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewRoleInformer(client internalclientset.Interface, namespace string, resyn ) } -func defaultRoleInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewRoleInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *roleInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredRoleInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *roleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac.Role{}, defaultRoleInformer) + return f.factory.InformerFor(&rbac.Role{}, f.defaultInformer) } func (f *roleInformer) Lister() internalversion.RoleLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/rolebinding.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/rolebinding.go index 752fba074..6b0560953 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/rolebinding.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/rolebinding.go @@ -38,19 +38,34 @@ type RoleBindingInformer interface { } type roleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewRoleBindingInformer constructs a new informer for RoleBinding 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 NewRoleBindingInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredRoleBindingInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredRoleBindingInformer constructs a new informer for RoleBinding 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 NewFilteredRoleBindingInformer(client internalclientset.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.Rbac().RoleBindings(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Rbac().RoleBindings(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewRoleBindingInformer(client internalclientset.Interface, namespace string ) } -func defaultRoleBindingInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewRoleBindingInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *roleBindingInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredRoleBindingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac.RoleBinding{}, defaultRoleBindingInformer) + return f.factory.InformerFor(&rbac.RoleBinding{}, f.defaultInformer) } func (f *roleBindingInformer) Lister() internalversion.RoleBindingLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/interface.go index 3fb2db10b..54b493e23 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/interface.go index fe670796c..37dd2d17d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // PriorityClasses returns a PriorityClassInformer. func (v *version) PriorityClasses() PriorityClassInformer { - return &priorityClassInformer{factory: v.SharedInformerFactory} + return &priorityClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/priorityclass.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/priorityclass.go index 551ba23b2..68600f23b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/priorityclass.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/priorityclass.go @@ -38,19 +38,33 @@ type PriorityClassInformer interface { } type priorityClassInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewPriorityClassInformer constructs a new informer for PriorityClass 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 NewPriorityClassInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPriorityClassInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredPriorityClassInformer constructs a new informer for PriorityClass 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 NewFilteredPriorityClassInformer(client internalclientset.Interface, 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.Scheduling().PriorityClasses().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Scheduling().PriorityClasses().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewPriorityClassInformer(client internalclientset.Interface, resyncPeriod t ) } -func defaultPriorityClassInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPriorityClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *priorityClassInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPriorityClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *priorityClassInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&scheduling.PriorityClass{}, defaultPriorityClassInformer) + return f.factory.InformerFor(&scheduling.PriorityClass{}, f.defaultInformer) } func (f *priorityClassInformer) Lister() internalversion.PriorityClassLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/interface.go index 2c4321439..6683fbdf5 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/internalversion/interface.go index d8f7c3418..679c8a2d5 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/internalversion/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // PodPresets returns a PodPresetInformer. func (v *version) PodPresets() PodPresetInformer { - return &podPresetInformer{factory: v.SharedInformerFactory} + return &podPresetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/internalversion/podpreset.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/internalversion/podpreset.go index df812b421..5ecfe1e6d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/internalversion/podpreset.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/settings/internalversion/podpreset.go @@ -38,19 +38,34 @@ type PodPresetInformer interface { } type podPresetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPodPresetInformer constructs a new informer for PodPreset 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 NewPodPresetInformer(client internalclientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodPresetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPodPresetInformer constructs a new informer for PodPreset 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 NewFilteredPodPresetInformer(client internalclientset.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.Settings().PodPresets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Settings().PodPresets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewPodPresetInformer(client internalclientset.Interface, namespace string, ) } -func defaultPodPresetInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodPresetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podPresetInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodPresetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podPresetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&settings.PodPreset{}, defaultPodPresetInformer) + return f.factory.InformerFor(&settings.PodPreset{}, f.defaultInformer) } func (f *podPresetInformer) Lister() internalversion.PodPresetLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/interface.go index d4f366fed..01c55b1b6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD index 98539bc21..f4ffc7da1 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD @@ -10,6 +10,7 @@ go_library( srcs = [ "interface.go", "storageclass.go", + "volumeattachment.go", ], importpath = "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion", deps = [ diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/interface.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/interface.go index 86cf36763..cea995f8c 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/interface.go @@ -26,18 +26,27 @@ import ( type Interface interface { // StorageClasses returns a StorageClassInformer. StorageClasses() StorageClassInformer + // VolumeAttachments returns a VolumeAttachmentInformer. + VolumeAttachments() VolumeAttachmentInformer } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // StorageClasses returns a StorageClassInformer. func (v *version) StorageClasses() StorageClassInformer { - return &storageClassInformer{factory: v.SharedInformerFactory} + return &storageClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} + +// VolumeAttachments returns a VolumeAttachmentInformer. +func (v *version) VolumeAttachments() VolumeAttachmentInformer { + return &volumeAttachmentInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/storageclass.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/storageclass.go index eb7761a80..01e932627 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/storageclass.go +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/storageclass.go @@ -38,19 +38,33 @@ type StorageClassInformer interface { } type storageClassInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewStorageClassInformer constructs a new informer for StorageClass 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 NewStorageClassInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredStorageClassInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredStorageClassInformer constructs a new informer for StorageClass 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 NewFilteredStorageClassInformer(client internalclientset.Interface, 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.Storage().StorageClasses().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Storage().StorageClasses().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewStorageClassInformer(client internalclientset.Interface, resyncPeriod ti ) } -func defaultStorageClassInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewStorageClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *storageClassInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredStorageClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *storageClassInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&storage.StorageClass{}, defaultStorageClassInformer) + return f.factory.InformerFor(&storage.StorageClass{}, f.defaultInformer) } func (f *storageClassInformer) Lister() internalversion.StorageClassLister { diff --git a/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/volumeattachment.go b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/volumeattachment.go new file mode 100644 index 000000000..54d411f43 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/storage/internalversion/volumeattachment.go @@ -0,0 +1,87 @@ +/* +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 internalversion + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" + storage "k8s.io/kubernetes/pkg/apis/storage" + internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/internalinterfaces" + internalversion "k8s.io/kubernetes/pkg/client/listers/storage/internalversion" + time "time" +) + +// VolumeAttachmentInformer provides access to a shared informer and lister for +// VolumeAttachments. +type VolumeAttachmentInformer interface { + Informer() cache.SharedIndexInformer + Lister() internalversion.VolumeAttachmentLister +} + +type volumeAttachmentInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewVolumeAttachmentInformer constructs a new informer for VolumeAttachment 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 NewVolumeAttachmentInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredVolumeAttachmentInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredVolumeAttachmentInformer constructs a new informer for VolumeAttachment 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 NewFilteredVolumeAttachmentInformer(client internalclientset.Interface, 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.Storage().VolumeAttachments().List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.Storage().VolumeAttachments().Watch(options) + }, + }, + &storage.VolumeAttachment{}, + resyncPeriod, + indexers, + ) +} + +func (f *volumeAttachmentInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredVolumeAttachmentInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *volumeAttachmentInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&storage.VolumeAttachment{}, f.defaultInformer) +} + +func (f *volumeAttachmentInformer) Lister() internalversion.VolumeAttachmentLister { + return internalversion.NewVolumeAttachmentLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/BUILD index 16b67f74c..1afdec477 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/BUILD @@ -9,14 +9,14 @@ go_library( name = "go_default_library", srcs = [ "expansion_generated.go", - "externaladmissionhookconfiguration.go", "initializerconfiguration.go", + "mutatingwebhookconfiguration.go", + "validatingwebhookconfiguration.go", ], importpath = "k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion", deps = [ "//pkg/apis/admissionregistration: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/kubernetes/pkg/client/listers/admissionregistration/internalversion/expansion_generated.go b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/expansion_generated.go index 278e929fb..366db3d77 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/expansion_generated.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/expansion_generated.go @@ -18,10 +18,14 @@ limitations under the License. package internalversion -// ExternalAdmissionHookConfigurationListerExpansion allows custom methods to be added to -// ExternalAdmissionHookConfigurationLister. -type ExternalAdmissionHookConfigurationListerExpansion interface{} - // InitializerConfigurationListerExpansion allows custom methods to be added to // InitializerConfigurationLister. type InitializerConfigurationListerExpansion interface{} + +// MutatingWebhookConfigurationListerExpansion allows custom methods to be added to +// MutatingWebhookConfigurationLister. +type MutatingWebhookConfigurationListerExpansion interface{} + +// ValidatingWebhookConfigurationListerExpansion allows custom methods to be added to +// ValidatingWebhookConfigurationLister. +type ValidatingWebhookConfigurationListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/externaladmissionhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/externaladmissionhookconfiguration.go deleted file mode 100644 index ac200d552..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/externaladmissionhookconfiguration.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -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 internalversion - -import ( - "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" - admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" -) - -// ExternalAdmissionHookConfigurationLister helps list ExternalAdmissionHookConfigurations. -type ExternalAdmissionHookConfigurationLister interface { - // List lists all ExternalAdmissionHookConfigurations in the indexer. - List(selector labels.Selector) (ret []*admissionregistration.ExternalAdmissionHookConfiguration, err error) - // Get retrieves the ExternalAdmissionHookConfiguration from the index for a given name. - Get(name string) (*admissionregistration.ExternalAdmissionHookConfiguration, error) - ExternalAdmissionHookConfigurationListerExpansion -} - -// externalAdmissionHookConfigurationLister implements the ExternalAdmissionHookConfigurationLister interface. -type externalAdmissionHookConfigurationLister struct { - indexer cache.Indexer -} - -// NewExternalAdmissionHookConfigurationLister returns a new ExternalAdmissionHookConfigurationLister. -func NewExternalAdmissionHookConfigurationLister(indexer cache.Indexer) ExternalAdmissionHookConfigurationLister { - return &externalAdmissionHookConfigurationLister{indexer: indexer} -} - -// List lists all ExternalAdmissionHookConfigurations in the indexer. -func (s *externalAdmissionHookConfigurationLister) List(selector labels.Selector) (ret []*admissionregistration.ExternalAdmissionHookConfiguration, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*admissionregistration.ExternalAdmissionHookConfiguration)) - }) - return ret, err -} - -// Get retrieves the ExternalAdmissionHookConfiguration from the index for a given name. -func (s *externalAdmissionHookConfigurationLister) Get(name string) (*admissionregistration.ExternalAdmissionHookConfiguration, error) { - key := &admissionregistration.ExternalAdmissionHookConfiguration{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(admissionregistration.Resource("externaladmissionhookconfiguration"), name) - } - return obj.(*admissionregistration.ExternalAdmissionHookConfiguration), nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/initializerconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/initializerconfiguration.go index 8fe394f0e..0a67f7d8e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/initializerconfiguration.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/initializerconfiguration.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" @@ -55,8 +54,7 @@ func (s *initializerConfigurationLister) List(selector labels.Selector) (ret []* // Get retrieves the InitializerConfiguration from the index for a given name. func (s *initializerConfigurationLister) Get(name string) (*admissionregistration.InitializerConfiguration, error) { - key := &admissionregistration.InitializerConfiguration{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/mutatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/mutatingwebhookconfiguration.go new file mode 100644 index 000000000..31fcbdba7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/mutatingwebhookconfiguration.go @@ -0,0 +1,65 @@ +/* +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 internalversion + +import ( + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" +) + +// MutatingWebhookConfigurationLister helps list MutatingWebhookConfigurations. +type MutatingWebhookConfigurationLister interface { + // List lists all MutatingWebhookConfigurations in the indexer. + List(selector labels.Selector) (ret []*admissionregistration.MutatingWebhookConfiguration, err error) + // Get retrieves the MutatingWebhookConfiguration from the index for a given name. + Get(name string) (*admissionregistration.MutatingWebhookConfiguration, error) + MutatingWebhookConfigurationListerExpansion +} + +// mutatingWebhookConfigurationLister implements the MutatingWebhookConfigurationLister interface. +type mutatingWebhookConfigurationLister struct { + indexer cache.Indexer +} + +// NewMutatingWebhookConfigurationLister returns a new MutatingWebhookConfigurationLister. +func NewMutatingWebhookConfigurationLister(indexer cache.Indexer) MutatingWebhookConfigurationLister { + return &mutatingWebhookConfigurationLister{indexer: indexer} +} + +// List lists all MutatingWebhookConfigurations in the indexer. +func (s *mutatingWebhookConfigurationLister) List(selector labels.Selector) (ret []*admissionregistration.MutatingWebhookConfiguration, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*admissionregistration.MutatingWebhookConfiguration)) + }) + return ret, err +} + +// Get retrieves the MutatingWebhookConfiguration from the index for a given name. +func (s *mutatingWebhookConfigurationLister) Get(name string) (*admissionregistration.MutatingWebhookConfiguration, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(admissionregistration.Resource("mutatingwebhookconfiguration"), name) + } + return obj.(*admissionregistration.MutatingWebhookConfiguration), nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/validatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/validatingwebhookconfiguration.go new file mode 100644 index 000000000..9b4693584 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/admissionregistration/internalversion/validatingwebhookconfiguration.go @@ -0,0 +1,65 @@ +/* +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 internalversion + +import ( + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" +) + +// ValidatingWebhookConfigurationLister helps list ValidatingWebhookConfigurations. +type ValidatingWebhookConfigurationLister interface { + // List lists all ValidatingWebhookConfigurations in the indexer. + List(selector labels.Selector) (ret []*admissionregistration.ValidatingWebhookConfiguration, err error) + // Get retrieves the ValidatingWebhookConfiguration from the index for a given name. + Get(name string) (*admissionregistration.ValidatingWebhookConfiguration, error) + ValidatingWebhookConfigurationListerExpansion +} + +// validatingWebhookConfigurationLister implements the ValidatingWebhookConfigurationLister interface. +type validatingWebhookConfigurationLister struct { + indexer cache.Indexer +} + +// NewValidatingWebhookConfigurationLister returns a new ValidatingWebhookConfigurationLister. +func NewValidatingWebhookConfigurationLister(indexer cache.Indexer) ValidatingWebhookConfigurationLister { + return &validatingWebhookConfigurationLister{indexer: indexer} +} + +// List lists all ValidatingWebhookConfigurations in the indexer. +func (s *validatingWebhookConfigurationLister) List(selector labels.Selector) (ret []*admissionregistration.ValidatingWebhookConfiguration, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*admissionregistration.ValidatingWebhookConfiguration)) + }) + return ret, err +} + +// Get retrieves the ValidatingWebhookConfiguration from the index for a given name. +func (s *validatingWebhookConfigurationLister) Get(name string) (*admissionregistration.ValidatingWebhookConfiguration, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(admissionregistration.Resource("validatingwebhookconfiguration"), name) + } + return obj.(*admissionregistration.ValidatingWebhookConfiguration), nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/BUILD new file mode 100644 index 000000000..abefdf365 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "expansion_generated.go", + "initializerconfiguration.go", + ], + importpath = "k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration", + visibility = ["//visibility:public"], + deps = [ + "//pkg/apis/admissionregistration: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/kubernetes/pkg/client/listers/apis/admissionregistration/expansion_generated.go b/vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/expansion_generated.go new file mode 100644 index 000000000..8142f2712 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/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 admissionregistration + +// InitializerConfigurationListerExpansion allows custom methods to be added to +// InitializerConfigurationLister. +type InitializerConfigurationListerExpansion interface{} + +// ValidatingWebhookConfigurationListerExpansion allows custom methods to be added to +// ValidatingWebhookConfigurationLister. +type ValidatingWebhookConfigurationListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/initializerconfiguration.go b/vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/initializerconfiguration.go new file mode 100644 index 000000000..a935f624e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/apis/admissionregistration/initializerconfiguration.go @@ -0,0 +1,65 @@ +/* +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 admissionregistration + +import ( + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + admissionregistration "k8s.io/kubernetes/pkg/apis/admissionregistration" +) + +// InitializerConfigurationLister helps list InitializerConfigurations. +type InitializerConfigurationLister interface { + // List lists all InitializerConfigurations in the indexer. + List(selector labels.Selector) (ret []*admissionregistration.InitializerConfiguration, err error) + // Get retrieves the InitializerConfiguration from the index for a given name. + Get(name string) (*admissionregistration.InitializerConfiguration, error) + InitializerConfigurationListerExpansion +} + +// initializerConfigurationLister implements the InitializerConfigurationLister interface. +type initializerConfigurationLister struct { + indexer cache.Indexer +} + +// NewInitializerConfigurationLister returns a new InitializerConfigurationLister. +func NewInitializerConfigurationLister(indexer cache.Indexer) InitializerConfigurationLister { + return &initializerConfigurationLister{indexer: indexer} +} + +// List lists all InitializerConfigurations in the indexer. +func (s *initializerConfigurationLister) List(selector labels.Selector) (ret []*admissionregistration.InitializerConfiguration, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*admissionregistration.InitializerConfiguration)) + }) + return ret, err +} + +// Get retrieves the InitializerConfiguration from the index for a given name. +func (s *initializerConfigurationLister) Get(name string) (*admissionregistration.InitializerConfiguration, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(admissionregistration.Resource("initializerconfiguration"), name) + } + return obj.(*admissionregistration.InitializerConfiguration), nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/apps/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/apps/internalversion/BUILD index bd5e13960..73334dd2e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/apps/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/apps/internalversion/BUILD @@ -15,8 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/listers/apps/internalversion", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/core: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", diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/apps/internalversion/statefulset_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/listers/apps/internalversion/statefulset_expansion.go index c98c700b4..8798f7249 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/apps/internalversion/statefulset_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/apps/internalversion/statefulset_expansion.go @@ -21,8 +21,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" + api "k8s.io/kubernetes/pkg/apis/core" ) // StatefulSetListerExpansion allows custom methods to be added to diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/authentication/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/authentication/internalversion/BUILD index b5ea7c5e6..8a3d4bf56 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/authentication/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/authentication/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//pkg/apis/authentication: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/kubernetes/pkg/client/listers/authentication/internalversion/tokenreview.go b/vendor/k8s.io/kubernetes/pkg/client/listers/authentication/internalversion/tokenreview.go index df92d2fb2..ca878ccd3 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/authentication/internalversion/tokenreview.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/authentication/internalversion/tokenreview.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" authentication "k8s.io/kubernetes/pkg/apis/authentication" @@ -55,8 +54,7 @@ func (s *tokenReviewLister) List(selector labels.Selector) (ret []*authenticatio // Get retrieves the TokenReview from the index for a given name. func (s *tokenReviewLister) Get(name string) (*authentication.TokenReview, error) { - key := &authentication.TokenReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/BUILD index 765f66ffb..25fc1d63d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//pkg/apis/authorization: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/kubernetes/pkg/client/listers/authorization/internalversion/selfsubjectaccessreview.go b/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/selfsubjectaccessreview.go index c968fa6d5..b883ef603 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/selfsubjectaccessreview.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/selfsubjectaccessreview.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" authorization "k8s.io/kubernetes/pkg/apis/authorization" @@ -55,8 +54,7 @@ func (s *selfSubjectAccessReviewLister) List(selector labels.Selector) (ret []*a // Get retrieves the SelfSubjectAccessReview from the index for a given name. func (s *selfSubjectAccessReviewLister) Get(name string) (*authorization.SelfSubjectAccessReview, error) { - key := &authorization.SelfSubjectAccessReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/selfsubjectrulesreview.go b/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/selfsubjectrulesreview.go index 999956a5a..9efca6cbf 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/selfsubjectrulesreview.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/selfsubjectrulesreview.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" authorization "k8s.io/kubernetes/pkg/apis/authorization" @@ -55,8 +54,7 @@ func (s *selfSubjectRulesReviewLister) List(selector labels.Selector) (ret []*au // Get retrieves the SelfSubjectRulesReview from the index for a given name. func (s *selfSubjectRulesReviewLister) Get(name string) (*authorization.SelfSubjectRulesReview, error) { - key := &authorization.SelfSubjectRulesReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/subjectaccessreview.go b/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/subjectaccessreview.go index fbb6f4044..d6980c8d6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/subjectaccessreview.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/authorization/internalversion/subjectaccessreview.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" authorization "k8s.io/kubernetes/pkg/apis/authorization" @@ -55,8 +54,7 @@ func (s *subjectAccessReviewLister) List(selector labels.Selector) (ret []*autho // Get retrieves the SubjectAccessReview from the index for a given name. func (s *subjectAccessReviewLister) Get(name string) (*authorization.SubjectAccessReview, error) { - key := &authorization.SubjectAccessReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/BUILD index 1d09a9512..1f0b20799 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/BUILD @@ -16,8 +16,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/listers/batch/internalversion", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core: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", @@ -31,8 +31,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/client/listers/batch/internalversion", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core: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/apimachinery/pkg/util/sets:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/job_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/job_expansion.go index 1687f8819..083453d90 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/job_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/job_expansion.go @@ -21,8 +21,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" ) // JobListerExpansion allows custom methods to be added to diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/job_test.go b/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/job_test.go index c47859345..b4c60de3e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/job_test.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/batch/internalversion/job_test.go @@ -23,8 +23,8 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestJobLister(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/certificates/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/certificates/internalversion/BUILD index f158bd430..afc655b9e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/certificates/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/certificates/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//pkg/apis/certificates: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/kubernetes/pkg/client/listers/certificates/internalversion/certificatesigningrequest.go b/vendor/k8s.io/kubernetes/pkg/client/listers/certificates/internalversion/certificatesigningrequest.go index 3ba28efa5..4ded13d7a 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/certificates/internalversion/certificatesigningrequest.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/certificates/internalversion/certificatesigningrequest.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" certificates "k8s.io/kubernetes/pkg/apis/certificates" @@ -55,8 +54,7 @@ func (s *certificateSigningRequestLister) List(selector labels.Selector) (ret [] // Get retrieves the CertificateSigningRequest from the index for a given name. func (s *certificateSigningRequestLister) Get(name string) (*certificates.CertificateSigningRequest, error) { - key := &certificates.CertificateSigningRequest{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/BUILD index 9f54d4878..8daff542f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/BUILD @@ -31,9 +31,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/listers/core/internalversion", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core: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/kubernetes/pkg/client/listers/core/internalversion/componentstatus.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/componentstatus.go index 8f0a0a71f..0be8bc557 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/componentstatus.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/componentstatus.go @@ -20,18 +20,17 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // ComponentStatusLister helps list ComponentStatuses. type ComponentStatusLister interface { // List lists all ComponentStatuses in the indexer. - List(selector labels.Selector) (ret []*api.ComponentStatus, err error) + List(selector labels.Selector) (ret []*core.ComponentStatus, err error) // Get retrieves the ComponentStatus from the index for a given name. - Get(name string) (*api.ComponentStatus, error) + Get(name string) (*core.ComponentStatus, error) ComponentStatusListerExpansion } @@ -46,22 +45,21 @@ func NewComponentStatusLister(indexer cache.Indexer) ComponentStatusLister { } // List lists all ComponentStatuses in the indexer. -func (s *componentStatusLister) List(selector labels.Selector) (ret []*api.ComponentStatus, err error) { +func (s *componentStatusLister) List(selector labels.Selector) (ret []*core.ComponentStatus, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.ComponentStatus)) + ret = append(ret, m.(*core.ComponentStatus)) }) return ret, err } // Get retrieves the ComponentStatus from the index for a given name. -func (s *componentStatusLister) Get(name string) (*api.ComponentStatus, error) { - key := &api.ComponentStatus{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) +func (s *componentStatusLister) Get(name string) (*core.ComponentStatus, error) { + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("componentstatus"), name) + return nil, errors.NewNotFound(core.Resource("componentstatus"), name) } - return obj.(*api.ComponentStatus), nil + return obj.(*core.ComponentStatus), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/configmap.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/configmap.go index 373447625..539a9751d 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/configmap.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/configmap.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // ConfigMapLister helps list ConfigMaps. type ConfigMapLister interface { // List lists all ConfigMaps in the indexer. - List(selector labels.Selector) (ret []*api.ConfigMap, err error) + List(selector labels.Selector) (ret []*core.ConfigMap, err error) // ConfigMaps returns an object that can list and get ConfigMaps. ConfigMaps(namespace string) ConfigMapNamespaceLister ConfigMapListerExpansion @@ -45,9 +45,9 @@ func NewConfigMapLister(indexer cache.Indexer) ConfigMapLister { } // List lists all ConfigMaps in the indexer. -func (s *configMapLister) List(selector labels.Selector) (ret []*api.ConfigMap, err error) { +func (s *configMapLister) List(selector labels.Selector) (ret []*core.ConfigMap, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.ConfigMap)) + ret = append(ret, m.(*core.ConfigMap)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *configMapLister) ConfigMaps(namespace string) ConfigMapNamespaceLister // ConfigMapNamespaceLister helps list and get ConfigMaps. type ConfigMapNamespaceLister interface { // List lists all ConfigMaps in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.ConfigMap, err error) + List(selector labels.Selector) (ret []*core.ConfigMap, err error) // Get retrieves the ConfigMap from the indexer for a given namespace and name. - Get(name string) (*api.ConfigMap, error) + Get(name string) (*core.ConfigMap, error) ConfigMapNamespaceListerExpansion } @@ -74,21 +74,21 @@ type configMapNamespaceLister struct { } // List lists all ConfigMaps in the indexer for a given namespace. -func (s configMapNamespaceLister) List(selector labels.Selector) (ret []*api.ConfigMap, err error) { +func (s configMapNamespaceLister) List(selector labels.Selector) (ret []*core.ConfigMap, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.ConfigMap)) + ret = append(ret, m.(*core.ConfigMap)) }) return ret, err } // Get retrieves the ConfigMap from the indexer for a given namespace and name. -func (s configMapNamespaceLister) Get(name string) (*api.ConfigMap, error) { +func (s configMapNamespaceLister) Get(name string) (*core.ConfigMap, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("configmap"), name) + return nil, errors.NewNotFound(core.Resource("configmap"), name) } - return obj.(*api.ConfigMap), nil + return obj.(*core.ConfigMap), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/endpoints.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/endpoints.go index efea139fa..a65c98b0b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/endpoints.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/endpoints.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // EndpointsLister helps list Endpoints. type EndpointsLister interface { // List lists all Endpoints in the indexer. - List(selector labels.Selector) (ret []*api.Endpoints, err error) + List(selector labels.Selector) (ret []*core.Endpoints, err error) // Endpoints returns an object that can list and get Endpoints. Endpoints(namespace string) EndpointsNamespaceLister EndpointsListerExpansion @@ -45,9 +45,9 @@ func NewEndpointsLister(indexer cache.Indexer) EndpointsLister { } // List lists all Endpoints in the indexer. -func (s *endpointsLister) List(selector labels.Selector) (ret []*api.Endpoints, err error) { +func (s *endpointsLister) List(selector labels.Selector) (ret []*core.Endpoints, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.Endpoints)) + ret = append(ret, m.(*core.Endpoints)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *endpointsLister) Endpoints(namespace string) EndpointsNamespaceLister { // EndpointsNamespaceLister helps list and get Endpoints. type EndpointsNamespaceLister interface { // List lists all Endpoints in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.Endpoints, err error) + List(selector labels.Selector) (ret []*core.Endpoints, err error) // Get retrieves the Endpoints from the indexer for a given namespace and name. - Get(name string) (*api.Endpoints, error) + Get(name string) (*core.Endpoints, error) EndpointsNamespaceListerExpansion } @@ -74,21 +74,21 @@ type endpointsNamespaceLister struct { } // List lists all Endpoints in the indexer for a given namespace. -func (s endpointsNamespaceLister) List(selector labels.Selector) (ret []*api.Endpoints, err error) { +func (s endpointsNamespaceLister) List(selector labels.Selector) (ret []*core.Endpoints, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.Endpoints)) + ret = append(ret, m.(*core.Endpoints)) }) return ret, err } // Get retrieves the Endpoints from the indexer for a given namespace and name. -func (s endpointsNamespaceLister) Get(name string) (*api.Endpoints, error) { +func (s endpointsNamespaceLister) Get(name string) (*core.Endpoints, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("endpoints"), name) + return nil, errors.NewNotFound(core.Resource("endpoints"), name) } - return obj.(*api.Endpoints), nil + return obj.(*core.Endpoints), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/event.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/event.go index e66ec202a..2c04cd1dd 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/event.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/event.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // EventLister helps list Events. type EventLister interface { // List lists all Events in the indexer. - List(selector labels.Selector) (ret []*api.Event, err error) + List(selector labels.Selector) (ret []*core.Event, err error) // Events returns an object that can list and get Events. Events(namespace string) EventNamespaceLister EventListerExpansion @@ -45,9 +45,9 @@ func NewEventLister(indexer cache.Indexer) EventLister { } // List lists all Events in the indexer. -func (s *eventLister) List(selector labels.Selector) (ret []*api.Event, err error) { +func (s *eventLister) List(selector labels.Selector) (ret []*core.Event, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.Event)) + ret = append(ret, m.(*core.Event)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *eventLister) Events(namespace string) EventNamespaceLister { // 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 []*api.Event, err error) + List(selector labels.Selector) (ret []*core.Event, err error) // Get retrieves the Event from the indexer for a given namespace and name. - Get(name string) (*api.Event, error) + Get(name string) (*core.Event, error) EventNamespaceListerExpansion } @@ -74,21 +74,21 @@ type eventNamespaceLister struct { } // List lists all Events in the indexer for a given namespace. -func (s eventNamespaceLister) List(selector labels.Selector) (ret []*api.Event, err error) { +func (s eventNamespaceLister) List(selector labels.Selector) (ret []*core.Event, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.Event)) + ret = append(ret, m.(*core.Event)) }) return ret, err } // Get retrieves the Event from the indexer for a given namespace and name. -func (s eventNamespaceLister) Get(name string) (*api.Event, error) { +func (s eventNamespaceLister) Get(name string) (*core.Event, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("event"), name) + return nil, errors.NewNotFound(core.Resource("event"), name) } - return obj.(*api.Event), nil + return obj.(*core.Event), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/limitrange.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/limitrange.go index 1fa3bea66..92bcf032e 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/limitrange.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/limitrange.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // LimitRangeLister helps list LimitRanges. type LimitRangeLister interface { // List lists all LimitRanges in the indexer. - List(selector labels.Selector) (ret []*api.LimitRange, err error) + List(selector labels.Selector) (ret []*core.LimitRange, err error) // LimitRanges returns an object that can list and get LimitRanges. LimitRanges(namespace string) LimitRangeNamespaceLister LimitRangeListerExpansion @@ -45,9 +45,9 @@ func NewLimitRangeLister(indexer cache.Indexer) LimitRangeLister { } // List lists all LimitRanges in the indexer. -func (s *limitRangeLister) List(selector labels.Selector) (ret []*api.LimitRange, err error) { +func (s *limitRangeLister) List(selector labels.Selector) (ret []*core.LimitRange, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.LimitRange)) + ret = append(ret, m.(*core.LimitRange)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *limitRangeLister) LimitRanges(namespace string) LimitRangeNamespaceList // LimitRangeNamespaceLister helps list and get LimitRanges. type LimitRangeNamespaceLister interface { // List lists all LimitRanges in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.LimitRange, err error) + List(selector labels.Selector) (ret []*core.LimitRange, err error) // Get retrieves the LimitRange from the indexer for a given namespace and name. - Get(name string) (*api.LimitRange, error) + Get(name string) (*core.LimitRange, error) LimitRangeNamespaceListerExpansion } @@ -74,21 +74,21 @@ type limitRangeNamespaceLister struct { } // List lists all LimitRanges in the indexer for a given namespace. -func (s limitRangeNamespaceLister) List(selector labels.Selector) (ret []*api.LimitRange, err error) { +func (s limitRangeNamespaceLister) List(selector labels.Selector) (ret []*core.LimitRange, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.LimitRange)) + ret = append(ret, m.(*core.LimitRange)) }) return ret, err } // Get retrieves the LimitRange from the indexer for a given namespace and name. -func (s limitRangeNamespaceLister) Get(name string) (*api.LimitRange, error) { +func (s limitRangeNamespaceLister) Get(name string) (*core.LimitRange, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("limitrange"), name) + return nil, errors.NewNotFound(core.Resource("limitrange"), name) } - return obj.(*api.LimitRange), nil + return obj.(*core.LimitRange), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/namespace.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/namespace.go index c925f6523..a429b48a6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/namespace.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/namespace.go @@ -20,18 +20,17 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // NamespaceLister helps list Namespaces. type NamespaceLister interface { // List lists all Namespaces in the indexer. - List(selector labels.Selector) (ret []*api.Namespace, err error) + List(selector labels.Selector) (ret []*core.Namespace, err error) // Get retrieves the Namespace from the index for a given name. - Get(name string) (*api.Namespace, error) + Get(name string) (*core.Namespace, error) NamespaceListerExpansion } @@ -46,22 +45,21 @@ func NewNamespaceLister(indexer cache.Indexer) NamespaceLister { } // List lists all Namespaces in the indexer. -func (s *namespaceLister) List(selector labels.Selector) (ret []*api.Namespace, err error) { +func (s *namespaceLister) List(selector labels.Selector) (ret []*core.Namespace, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.Namespace)) + ret = append(ret, m.(*core.Namespace)) }) return ret, err } // Get retrieves the Namespace from the index for a given name. -func (s *namespaceLister) Get(name string) (*api.Namespace, error) { - key := &api.Namespace{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) +func (s *namespaceLister) Get(name string) (*core.Namespace, error) { + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("namespace"), name) + return nil, errors.NewNotFound(core.Resource("namespace"), name) } - return obj.(*api.Namespace), nil + return obj.(*core.Namespace), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/node.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/node.go index ba33d6489..e722b0fe6 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/node.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/node.go @@ -20,18 +20,17 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // NodeLister helps list Nodes. type NodeLister interface { // List lists all Nodes in the indexer. - List(selector labels.Selector) (ret []*api.Node, err error) + List(selector labels.Selector) (ret []*core.Node, err error) // Get retrieves the Node from the index for a given name. - Get(name string) (*api.Node, error) + Get(name string) (*core.Node, error) NodeListerExpansion } @@ -46,22 +45,21 @@ func NewNodeLister(indexer cache.Indexer) NodeLister { } // List lists all Nodes in the indexer. -func (s *nodeLister) List(selector labels.Selector) (ret []*api.Node, err error) { +func (s *nodeLister) List(selector labels.Selector) (ret []*core.Node, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.Node)) + ret = append(ret, m.(*core.Node)) }) return ret, err } // Get retrieves the Node from the index for a given name. -func (s *nodeLister) Get(name string) (*api.Node, error) { - key := &api.Node{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) +func (s *nodeLister) Get(name string) (*core.Node, error) { + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("node"), name) + return nil, errors.NewNotFound(core.Resource("node"), name) } - return obj.(*api.Node), nil + return obj.(*core.Node), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/node_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/node_expansion.go index 465c59e3b..3abca2d58 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/node_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/node_expansion.go @@ -18,7 +18,7 @@ package internalversion import ( "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // NodeConditionPredicate is a function that indicates whether the given node's conditions meet diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/persistentvolume.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/persistentvolume.go index 040058df2..e5b0f7fff 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/persistentvolume.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/persistentvolume.go @@ -20,18 +20,17 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // PersistentVolumeLister helps list PersistentVolumes. type PersistentVolumeLister interface { // List lists all PersistentVolumes in the indexer. - List(selector labels.Selector) (ret []*api.PersistentVolume, err error) + List(selector labels.Selector) (ret []*core.PersistentVolume, err error) // Get retrieves the PersistentVolume from the index for a given name. - Get(name string) (*api.PersistentVolume, error) + Get(name string) (*core.PersistentVolume, error) PersistentVolumeListerExpansion } @@ -46,22 +45,21 @@ func NewPersistentVolumeLister(indexer cache.Indexer) PersistentVolumeLister { } // List lists all PersistentVolumes in the indexer. -func (s *persistentVolumeLister) List(selector labels.Selector) (ret []*api.PersistentVolume, err error) { +func (s *persistentVolumeLister) List(selector labels.Selector) (ret []*core.PersistentVolume, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.PersistentVolume)) + ret = append(ret, m.(*core.PersistentVolume)) }) return ret, err } // Get retrieves the PersistentVolume from the index for a given name. -func (s *persistentVolumeLister) Get(name string) (*api.PersistentVolume, error) { - key := &api.PersistentVolume{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) +func (s *persistentVolumeLister) Get(name string) (*core.PersistentVolume, error) { + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("persistentvolume"), name) + return nil, errors.NewNotFound(core.Resource("persistentvolume"), name) } - return obj.(*api.PersistentVolume), nil + return obj.(*core.PersistentVolume), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/persistentvolumeclaim.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/persistentvolumeclaim.go index f2e482269..bfd54a63f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/persistentvolumeclaim.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/persistentvolumeclaim.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // PersistentVolumeClaimLister helps list PersistentVolumeClaims. type PersistentVolumeClaimLister interface { // List lists all PersistentVolumeClaims in the indexer. - List(selector labels.Selector) (ret []*api.PersistentVolumeClaim, err error) + List(selector labels.Selector) (ret []*core.PersistentVolumeClaim, err error) // PersistentVolumeClaims returns an object that can list and get PersistentVolumeClaims. PersistentVolumeClaims(namespace string) PersistentVolumeClaimNamespaceLister PersistentVolumeClaimListerExpansion @@ -45,9 +45,9 @@ func NewPersistentVolumeClaimLister(indexer cache.Indexer) PersistentVolumeClaim } // List lists all PersistentVolumeClaims in the indexer. -func (s *persistentVolumeClaimLister) List(selector labels.Selector) (ret []*api.PersistentVolumeClaim, err error) { +func (s *persistentVolumeClaimLister) List(selector labels.Selector) (ret []*core.PersistentVolumeClaim, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.PersistentVolumeClaim)) + ret = append(ret, m.(*core.PersistentVolumeClaim)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *persistentVolumeClaimLister) PersistentVolumeClaims(namespace string) P // PersistentVolumeClaimNamespaceLister helps list and get PersistentVolumeClaims. type PersistentVolumeClaimNamespaceLister interface { // List lists all PersistentVolumeClaims in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.PersistentVolumeClaim, err error) + List(selector labels.Selector) (ret []*core.PersistentVolumeClaim, err error) // Get retrieves the PersistentVolumeClaim from the indexer for a given namespace and name. - Get(name string) (*api.PersistentVolumeClaim, error) + Get(name string) (*core.PersistentVolumeClaim, error) PersistentVolumeClaimNamespaceListerExpansion } @@ -74,21 +74,21 @@ type persistentVolumeClaimNamespaceLister struct { } // List lists all PersistentVolumeClaims in the indexer for a given namespace. -func (s persistentVolumeClaimNamespaceLister) List(selector labels.Selector) (ret []*api.PersistentVolumeClaim, err error) { +func (s persistentVolumeClaimNamespaceLister) List(selector labels.Selector) (ret []*core.PersistentVolumeClaim, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.PersistentVolumeClaim)) + ret = append(ret, m.(*core.PersistentVolumeClaim)) }) return ret, err } // Get retrieves the PersistentVolumeClaim from the indexer for a given namespace and name. -func (s persistentVolumeClaimNamespaceLister) Get(name string) (*api.PersistentVolumeClaim, error) { +func (s persistentVolumeClaimNamespaceLister) Get(name string) (*core.PersistentVolumeClaim, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("persistentvolumeclaim"), name) + return nil, errors.NewNotFound(core.Resource("persistentvolumeclaim"), name) } - return obj.(*api.PersistentVolumeClaim), nil + return obj.(*core.PersistentVolumeClaim), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/pod.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/pod.go index 2785db1c5..c89ae6f20 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/pod.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/pod.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // PodLister helps list Pods. type PodLister interface { // List lists all Pods in the indexer. - List(selector labels.Selector) (ret []*api.Pod, err error) + List(selector labels.Selector) (ret []*core.Pod, err error) // Pods returns an object that can list and get Pods. Pods(namespace string) PodNamespaceLister PodListerExpansion @@ -45,9 +45,9 @@ func NewPodLister(indexer cache.Indexer) PodLister { } // List lists all Pods in the indexer. -func (s *podLister) List(selector labels.Selector) (ret []*api.Pod, err error) { +func (s *podLister) List(selector labels.Selector) (ret []*core.Pod, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.Pod)) + ret = append(ret, m.(*core.Pod)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *podLister) Pods(namespace string) PodNamespaceLister { // PodNamespaceLister helps list and get Pods. type PodNamespaceLister interface { // List lists all Pods in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.Pod, err error) + List(selector labels.Selector) (ret []*core.Pod, err error) // Get retrieves the Pod from the indexer for a given namespace and name. - Get(name string) (*api.Pod, error) + Get(name string) (*core.Pod, error) PodNamespaceListerExpansion } @@ -74,21 +74,21 @@ type podNamespaceLister struct { } // List lists all Pods in the indexer for a given namespace. -func (s podNamespaceLister) List(selector labels.Selector) (ret []*api.Pod, err error) { +func (s podNamespaceLister) List(selector labels.Selector) (ret []*core.Pod, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.Pod)) + ret = append(ret, m.(*core.Pod)) }) return ret, err } // Get retrieves the Pod from the indexer for a given namespace and name. -func (s podNamespaceLister) Get(name string) (*api.Pod, error) { +func (s podNamespaceLister) Get(name string) (*core.Pod, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("pod"), name) + return nil, errors.NewNotFound(core.Resource("pod"), name) } - return obj.(*api.Pod), nil + return obj.(*core.Pod), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/podtemplate.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/podtemplate.go index becc58485..ec8343314 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/podtemplate.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/podtemplate.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // PodTemplateLister helps list PodTemplates. type PodTemplateLister interface { // List lists all PodTemplates in the indexer. - List(selector labels.Selector) (ret []*api.PodTemplate, err error) + List(selector labels.Selector) (ret []*core.PodTemplate, err error) // PodTemplates returns an object that can list and get PodTemplates. PodTemplates(namespace string) PodTemplateNamespaceLister PodTemplateListerExpansion @@ -45,9 +45,9 @@ func NewPodTemplateLister(indexer cache.Indexer) PodTemplateLister { } // List lists all PodTemplates in the indexer. -func (s *podTemplateLister) List(selector labels.Selector) (ret []*api.PodTemplate, err error) { +func (s *podTemplateLister) List(selector labels.Selector) (ret []*core.PodTemplate, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.PodTemplate)) + ret = append(ret, m.(*core.PodTemplate)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *podTemplateLister) PodTemplates(namespace string) PodTemplateNamespaceL // PodTemplateNamespaceLister helps list and get PodTemplates. type PodTemplateNamespaceLister interface { // List lists all PodTemplates in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.PodTemplate, err error) + List(selector labels.Selector) (ret []*core.PodTemplate, err error) // Get retrieves the PodTemplate from the indexer for a given namespace and name. - Get(name string) (*api.PodTemplate, error) + Get(name string) (*core.PodTemplate, error) PodTemplateNamespaceListerExpansion } @@ -74,21 +74,21 @@ type podTemplateNamespaceLister struct { } // List lists all PodTemplates in the indexer for a given namespace. -func (s podTemplateNamespaceLister) List(selector labels.Selector) (ret []*api.PodTemplate, err error) { +func (s podTemplateNamespaceLister) List(selector labels.Selector) (ret []*core.PodTemplate, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.PodTemplate)) + ret = append(ret, m.(*core.PodTemplate)) }) return ret, err } // Get retrieves the PodTemplate from the indexer for a given namespace and name. -func (s podTemplateNamespaceLister) Get(name string) (*api.PodTemplate, error) { +func (s podTemplateNamespaceLister) Get(name string) (*core.PodTemplate, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("podtemplate"), name) + return nil, errors.NewNotFound(core.Resource("podtemplate"), name) } - return obj.(*api.PodTemplate), nil + return obj.(*core.PodTemplate), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/replicationcontroller.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/replicationcontroller.go index b9728c249..77cf24677 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/replicationcontroller.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/replicationcontroller.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // ReplicationControllerLister helps list ReplicationControllers. type ReplicationControllerLister interface { // List lists all ReplicationControllers in the indexer. - List(selector labels.Selector) (ret []*api.ReplicationController, err error) + List(selector labels.Selector) (ret []*core.ReplicationController, err error) // ReplicationControllers returns an object that can list and get ReplicationControllers. ReplicationControllers(namespace string) ReplicationControllerNamespaceLister ReplicationControllerListerExpansion @@ -45,9 +45,9 @@ func NewReplicationControllerLister(indexer cache.Indexer) ReplicationController } // List lists all ReplicationControllers in the indexer. -func (s *replicationControllerLister) List(selector labels.Selector) (ret []*api.ReplicationController, err error) { +func (s *replicationControllerLister) List(selector labels.Selector) (ret []*core.ReplicationController, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.ReplicationController)) + ret = append(ret, m.(*core.ReplicationController)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *replicationControllerLister) ReplicationControllers(namespace string) R // ReplicationControllerNamespaceLister helps list and get ReplicationControllers. type ReplicationControllerNamespaceLister interface { // List lists all ReplicationControllers in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.ReplicationController, err error) + List(selector labels.Selector) (ret []*core.ReplicationController, err error) // Get retrieves the ReplicationController from the indexer for a given namespace and name. - Get(name string) (*api.ReplicationController, error) + Get(name string) (*core.ReplicationController, error) ReplicationControllerNamespaceListerExpansion } @@ -74,21 +74,21 @@ type replicationControllerNamespaceLister struct { } // List lists all ReplicationControllers in the indexer for a given namespace. -func (s replicationControllerNamespaceLister) List(selector labels.Selector) (ret []*api.ReplicationController, err error) { +func (s replicationControllerNamespaceLister) List(selector labels.Selector) (ret []*core.ReplicationController, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.ReplicationController)) + ret = append(ret, m.(*core.ReplicationController)) }) return ret, err } // Get retrieves the ReplicationController from the indexer for a given namespace and name. -func (s replicationControllerNamespaceLister) Get(name string) (*api.ReplicationController, error) { +func (s replicationControllerNamespaceLister) Get(name string) (*core.ReplicationController, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("replicationcontroller"), name) + return nil, errors.NewNotFound(core.Resource("replicationcontroller"), name) } - return obj.(*api.ReplicationController), nil + return obj.(*core.ReplicationController), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/replicationcontroller_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/replicationcontroller_expansion.go index c08d38d2d..bd9029160 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/replicationcontroller_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/replicationcontroller_expansion.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // ReplicationControllerListerExpansion allows custom methods to be added to diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/resourcequota.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/resourcequota.go index d0015df76..2b695099b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/resourcequota.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/resourcequota.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // ResourceQuotaLister helps list ResourceQuotas. type ResourceQuotaLister interface { // List lists all ResourceQuotas in the indexer. - List(selector labels.Selector) (ret []*api.ResourceQuota, err error) + List(selector labels.Selector) (ret []*core.ResourceQuota, err error) // ResourceQuotas returns an object that can list and get ResourceQuotas. ResourceQuotas(namespace string) ResourceQuotaNamespaceLister ResourceQuotaListerExpansion @@ -45,9 +45,9 @@ func NewResourceQuotaLister(indexer cache.Indexer) ResourceQuotaLister { } // List lists all ResourceQuotas in the indexer. -func (s *resourceQuotaLister) List(selector labels.Selector) (ret []*api.ResourceQuota, err error) { +func (s *resourceQuotaLister) List(selector labels.Selector) (ret []*core.ResourceQuota, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.ResourceQuota)) + ret = append(ret, m.(*core.ResourceQuota)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *resourceQuotaLister) ResourceQuotas(namespace string) ResourceQuotaName // ResourceQuotaNamespaceLister helps list and get ResourceQuotas. type ResourceQuotaNamespaceLister interface { // List lists all ResourceQuotas in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.ResourceQuota, err error) + List(selector labels.Selector) (ret []*core.ResourceQuota, err error) // Get retrieves the ResourceQuota from the indexer for a given namespace and name. - Get(name string) (*api.ResourceQuota, error) + Get(name string) (*core.ResourceQuota, error) ResourceQuotaNamespaceListerExpansion } @@ -74,21 +74,21 @@ type resourceQuotaNamespaceLister struct { } // List lists all ResourceQuotas in the indexer for a given namespace. -func (s resourceQuotaNamespaceLister) List(selector labels.Selector) (ret []*api.ResourceQuota, err error) { +func (s resourceQuotaNamespaceLister) List(selector labels.Selector) (ret []*core.ResourceQuota, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.ResourceQuota)) + ret = append(ret, m.(*core.ResourceQuota)) }) return ret, err } // Get retrieves the ResourceQuota from the indexer for a given namespace and name. -func (s resourceQuotaNamespaceLister) Get(name string) (*api.ResourceQuota, error) { +func (s resourceQuotaNamespaceLister) Get(name string) (*core.ResourceQuota, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("resourcequota"), name) + return nil, errors.NewNotFound(core.Resource("resourcequota"), name) } - return obj.(*api.ResourceQuota), nil + return obj.(*core.ResourceQuota), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/secret.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/secret.go index 820fc4219..e5585d9e0 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/secret.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/secret.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // SecretLister helps list Secrets. type SecretLister interface { // List lists all Secrets in the indexer. - List(selector labels.Selector) (ret []*api.Secret, err error) + List(selector labels.Selector) (ret []*core.Secret, err error) // Secrets returns an object that can list and get Secrets. Secrets(namespace string) SecretNamespaceLister SecretListerExpansion @@ -45,9 +45,9 @@ func NewSecretLister(indexer cache.Indexer) SecretLister { } // List lists all Secrets in the indexer. -func (s *secretLister) List(selector labels.Selector) (ret []*api.Secret, err error) { +func (s *secretLister) List(selector labels.Selector) (ret []*core.Secret, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.Secret)) + ret = append(ret, m.(*core.Secret)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *secretLister) Secrets(namespace string) SecretNamespaceLister { // SecretNamespaceLister helps list and get Secrets. type SecretNamespaceLister interface { // List lists all Secrets in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.Secret, err error) + List(selector labels.Selector) (ret []*core.Secret, err error) // Get retrieves the Secret from the indexer for a given namespace and name. - Get(name string) (*api.Secret, error) + Get(name string) (*core.Secret, error) SecretNamespaceListerExpansion } @@ -74,21 +74,21 @@ type secretNamespaceLister struct { } // List lists all Secrets in the indexer for a given namespace. -func (s secretNamespaceLister) List(selector labels.Selector) (ret []*api.Secret, err error) { +func (s secretNamespaceLister) List(selector labels.Selector) (ret []*core.Secret, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.Secret)) + ret = append(ret, m.(*core.Secret)) }) return ret, err } // Get retrieves the Secret from the indexer for a given namespace and name. -func (s secretNamespaceLister) Get(name string) (*api.Secret, error) { +func (s secretNamespaceLister) Get(name string) (*core.Secret, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("secret"), name) + return nil, errors.NewNotFound(core.Resource("secret"), name) } - return obj.(*api.Secret), nil + return obj.(*core.Secret), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/service.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/service.go index 06afb1b50..34f3d7747 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/service.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/service.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // ServiceLister helps list Services. type ServiceLister interface { // List lists all Services in the indexer. - List(selector labels.Selector) (ret []*api.Service, err error) + List(selector labels.Selector) (ret []*core.Service, err error) // Services returns an object that can list and get Services. Services(namespace string) ServiceNamespaceLister ServiceListerExpansion @@ -45,9 +45,9 @@ func NewServiceLister(indexer cache.Indexer) ServiceLister { } // List lists all Services in the indexer. -func (s *serviceLister) List(selector labels.Selector) (ret []*api.Service, err error) { +func (s *serviceLister) List(selector labels.Selector) (ret []*core.Service, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.Service)) + ret = append(ret, m.(*core.Service)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *serviceLister) Services(namespace string) ServiceNamespaceLister { // ServiceNamespaceLister helps list and get Services. type ServiceNamespaceLister interface { // List lists all Services in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.Service, err error) + List(selector labels.Selector) (ret []*core.Service, err error) // Get retrieves the Service from the indexer for a given namespace and name. - Get(name string) (*api.Service, error) + Get(name string) (*core.Service, error) ServiceNamespaceListerExpansion } @@ -74,21 +74,21 @@ type serviceNamespaceLister struct { } // List lists all Services in the indexer for a given namespace. -func (s serviceNamespaceLister) List(selector labels.Selector) (ret []*api.Service, err error) { +func (s serviceNamespaceLister) List(selector labels.Selector) (ret []*core.Service, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.Service)) + ret = append(ret, m.(*core.Service)) }) return ret, err } // Get retrieves the Service from the indexer for a given namespace and name. -func (s serviceNamespaceLister) Get(name string) (*api.Service, error) { +func (s serviceNamespaceLister) Get(name string) (*core.Service, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("service"), name) + return nil, errors.NewNotFound(core.Resource("service"), name) } - return obj.(*api.Service), nil + return obj.(*core.Service), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/service_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/service_expansion.go index 1bbc89c5c..6a951cabf 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/service_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/service_expansion.go @@ -18,7 +18,7 @@ package internalversion import ( "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // ServiceListerExpansion allows custom methods to be added to diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/serviceaccount.go b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/serviceaccount.go index 5b07ee039..59a0e8aef 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/serviceaccount.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/core/internalversion/serviceaccount.go @@ -22,13 +22,13 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" ) // ServiceAccountLister helps list ServiceAccounts. type ServiceAccountLister interface { // List lists all ServiceAccounts in the indexer. - List(selector labels.Selector) (ret []*api.ServiceAccount, err error) + List(selector labels.Selector) (ret []*core.ServiceAccount, err error) // ServiceAccounts returns an object that can list and get ServiceAccounts. ServiceAccounts(namespace string) ServiceAccountNamespaceLister ServiceAccountListerExpansion @@ -45,9 +45,9 @@ func NewServiceAccountLister(indexer cache.Indexer) ServiceAccountLister { } // List lists all ServiceAccounts in the indexer. -func (s *serviceAccountLister) List(selector labels.Selector) (ret []*api.ServiceAccount, err error) { +func (s *serviceAccountLister) List(selector labels.Selector) (ret []*core.ServiceAccount, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*api.ServiceAccount)) + ret = append(ret, m.(*core.ServiceAccount)) }) return ret, err } @@ -60,9 +60,9 @@ func (s *serviceAccountLister) ServiceAccounts(namespace string) ServiceAccountN // ServiceAccountNamespaceLister helps list and get ServiceAccounts. type ServiceAccountNamespaceLister interface { // List lists all ServiceAccounts in the indexer for a given namespace. - List(selector labels.Selector) (ret []*api.ServiceAccount, err error) + List(selector labels.Selector) (ret []*core.ServiceAccount, err error) // Get retrieves the ServiceAccount from the indexer for a given namespace and name. - Get(name string) (*api.ServiceAccount, error) + Get(name string) (*core.ServiceAccount, error) ServiceAccountNamespaceListerExpansion } @@ -74,21 +74,21 @@ type serviceAccountNamespaceLister struct { } // List lists all ServiceAccounts in the indexer for a given namespace. -func (s serviceAccountNamespaceLister) List(selector labels.Selector) (ret []*api.ServiceAccount, err error) { +func (s serviceAccountNamespaceLister) List(selector labels.Selector) (ret []*core.ServiceAccount, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*api.ServiceAccount)) + ret = append(ret, m.(*core.ServiceAccount)) }) return ret, err } // Get retrieves the ServiceAccount from the indexer for a given namespace and name. -func (s serviceAccountNamespaceLister) Get(name string) (*api.ServiceAccount, error) { +func (s serviceAccountNamespaceLister) Get(name string) (*core.ServiceAccount, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(api.Resource("serviceaccount"), name) + return nil, errors.NewNotFound(core.Resource("serviceaccount"), name) } - return obj.(*api.ServiceAccount), nil + return obj.(*core.ServiceAccount), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/BUILD index 6981d11e9..2e76730a7 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/BUILD @@ -18,12 +18,10 @@ go_library( "podsecuritypolicy.go", "replicaset.go", "replicaset_expansion.go", - "scale.go", - "thirdpartyresource.go", ], importpath = "k8s.io/kubernetes/pkg/client/listers/extensions/internalversion", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -51,7 +49,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/client/listers/extensions/internalversion", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/daemonset_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/daemonset_expansion.go index d6c55ec49..dd9eee743 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/daemonset_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/daemonset_expansion.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/daemonset_expansion_test.go b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/daemonset_expansion_test.go index b3a596c07..2455b5271 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/daemonset_expansion_test.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/daemonset_expansion_test.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/expansion_generated.go b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/expansion_generated.go index 1faa9b749..1872c99f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/expansion_generated.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/expansion_generated.go @@ -29,15 +29,3 @@ type IngressNamespaceListerExpansion interface{} // PodSecurityPolicyListerExpansion allows custom methods to be added to // PodSecurityPolicyLister. type PodSecurityPolicyListerExpansion interface{} - -// ScaleListerExpansion allows custom methods to be added to -// ScaleLister. -type ScaleListerExpansion interface{} - -// ScaleNamespaceListerExpansion allows custom methods to be added to -// ScaleNamespaceLister. -type ScaleNamespaceListerExpansion interface{} - -// ThirdPartyResourceListerExpansion allows custom methods to be added to -// ThirdPartyResourceLister. -type ThirdPartyResourceListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/podsecuritypolicy.go b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/podsecuritypolicy.go index 03a976bad..f57b90398 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/podsecuritypolicy.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/podsecuritypolicy.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" extensions "k8s.io/kubernetes/pkg/apis/extensions" @@ -55,8 +54,7 @@ func (s *podSecurityPolicyLister) List(selector labels.Selector) (ret []*extensi // Get retrieves the PodSecurityPolicy from the index for a given name. func (s *podSecurityPolicyLister) Get(name string) (*extensions.PodSecurityPolicy, error) { - key := &extensions.PodSecurityPolicy{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/replicaset_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/replicaset_expansion.go index 44808306b..3b3cfc361 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/replicaset_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/replicaset_expansion.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/scale.go b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/scale.go deleted file mode 100644 index b33c2a156..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/scale.go +++ /dev/null @@ -1,94 +0,0 @@ -/* -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 internalversion - -import ( - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" - extensions "k8s.io/kubernetes/pkg/apis/extensions" -) - -// ScaleLister helps list Scales. -type ScaleLister interface { - // List lists all Scales in the indexer. - List(selector labels.Selector) (ret []*extensions.Scale, err error) - // Scales returns an object that can list and get Scales. - Scales(namespace string) ScaleNamespaceLister - ScaleListerExpansion -} - -// scaleLister implements the ScaleLister interface. -type scaleLister struct { - indexer cache.Indexer -} - -// NewScaleLister returns a new ScaleLister. -func NewScaleLister(indexer cache.Indexer) ScaleLister { - return &scaleLister{indexer: indexer} -} - -// List lists all Scales in the indexer. -func (s *scaleLister) List(selector labels.Selector) (ret []*extensions.Scale, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*extensions.Scale)) - }) - return ret, err -} - -// Scales returns an object that can list and get Scales. -func (s *scaleLister) Scales(namespace string) ScaleNamespaceLister { - return scaleNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// ScaleNamespaceLister helps list and get Scales. -type ScaleNamespaceLister interface { - // List lists all Scales in the indexer for a given namespace. - List(selector labels.Selector) (ret []*extensions.Scale, err error) - // Get retrieves the Scale from the indexer for a given namespace and name. - Get(name string) (*extensions.Scale, error) - ScaleNamespaceListerExpansion -} - -// scaleNamespaceLister implements the ScaleNamespaceLister -// interface. -type scaleNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Scales in the indexer for a given namespace. -func (s scaleNamespaceLister) List(selector labels.Selector) (ret []*extensions.Scale, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*extensions.Scale)) - }) - return ret, err -} - -// Get retrieves the Scale from the indexer for a given namespace and name. -func (s scaleNamespaceLister) Get(name string) (*extensions.Scale, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(extensions.Resource("scale"), name) - } - return obj.(*extensions.Scale), nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/thirdpartyresource.go b/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/thirdpartyresource.go deleted file mode 100644 index 6177bf5f5..000000000 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/extensions/internalversion/thirdpartyresource.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -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 internalversion - -import ( - "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" - extensions "k8s.io/kubernetes/pkg/apis/extensions" -) - -// ThirdPartyResourceLister helps list ThirdPartyResources. -type ThirdPartyResourceLister interface { - // List lists all ThirdPartyResources in the indexer. - List(selector labels.Selector) (ret []*extensions.ThirdPartyResource, err error) - // Get retrieves the ThirdPartyResource from the index for a given name. - Get(name string) (*extensions.ThirdPartyResource, error) - ThirdPartyResourceListerExpansion -} - -// thirdPartyResourceLister implements the ThirdPartyResourceLister interface. -type thirdPartyResourceLister struct { - indexer cache.Indexer -} - -// NewThirdPartyResourceLister returns a new ThirdPartyResourceLister. -func NewThirdPartyResourceLister(indexer cache.Indexer) ThirdPartyResourceLister { - return &thirdPartyResourceLister{indexer: indexer} -} - -// List lists all ThirdPartyResources in the indexer. -func (s *thirdPartyResourceLister) List(selector labels.Selector) (ret []*extensions.ThirdPartyResource, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*extensions.ThirdPartyResource)) - }) - return ret, err -} - -// Get retrieves the ThirdPartyResource from the index for a given name. -func (s *thirdPartyResourceLister) Get(name string) (*extensions.ThirdPartyResource, error) { - key := &extensions.ThirdPartyResource{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(extensions.Resource("thirdpartyresource"), name) - } - return obj.(*extensions.ThirdPartyResource), nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/imagepolicy/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/imagepolicy/internalversion/BUILD index af588cda2..22a9151e0 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/imagepolicy/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/imagepolicy/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//pkg/apis/imagepolicy: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/kubernetes/pkg/client/listers/imagepolicy/internalversion/imagereview.go b/vendor/k8s.io/kubernetes/pkg/client/listers/imagepolicy/internalversion/imagereview.go index 98cfe57b9..68b753759 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/imagepolicy/internalversion/imagereview.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/imagepolicy/internalversion/imagereview.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" imagepolicy "k8s.io/kubernetes/pkg/apis/imagepolicy" @@ -55,8 +54,7 @@ func (s *imageReviewLister) List(selector labels.Selector) (ret []*imagepolicy.I // Get retrieves the ImageReview from the index for a given name. func (s *imageReviewLister) Get(name string) (*imagepolicy.ImageReview, error) { - key := &imagepolicy.ImageReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/policy/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/policy/internalversion/BUILD index 26f5cfc14..c120deb3b 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/policy/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/policy/internalversion/BUILD @@ -15,7 +15,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/listers/policy/internalversion", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/policy:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/policy/internalversion/poddisruptionbudget_expansion.go b/vendor/k8s.io/kubernetes/pkg/client/listers/policy/internalversion/poddisruptionbudget_expansion.go index 025358920..fcbc88bc8 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/policy/internalversion/poddisruptionbudget_expansion.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/policy/internalversion/poddisruptionbudget_expansion.go @@ -22,7 +22,7 @@ import ( "github.com/golang/glog" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/policy" ) diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/BUILD index f0b816c06..153099539 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//pkg/apis/rbac: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/kubernetes/pkg/client/listers/rbac/internalversion/clusterrole.go b/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/clusterrole.go index eda1cc3ac..ae4089520 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/clusterrole.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/clusterrole.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" rbac "k8s.io/kubernetes/pkg/apis/rbac" @@ -55,8 +54,7 @@ func (s *clusterRoleLister) List(selector labels.Selector) (ret []*rbac.ClusterR // Get retrieves the ClusterRole from the index for a given name. func (s *clusterRoleLister) Get(name string) (*rbac.ClusterRole, error) { - key := &rbac.ClusterRole{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/clusterrolebinding.go b/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/clusterrolebinding.go index fed2b2e9f..258c41768 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/clusterrolebinding.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/rbac/internalversion/clusterrolebinding.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" rbac "k8s.io/kubernetes/pkg/apis/rbac" @@ -55,8 +54,7 @@ func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*rbac.C // Get retrieves the ClusterRoleBinding from the index for a given name. func (s *clusterRoleBindingLister) Get(name string) (*rbac.ClusterRoleBinding, error) { - key := &rbac.ClusterRoleBinding{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/scheduling/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/scheduling/internalversion/BUILD index 2dd681185..5c2f02baf 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/scheduling/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/scheduling/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//pkg/apis/scheduling: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/kubernetes/pkg/client/listers/scheduling/internalversion/priorityclass.go b/vendor/k8s.io/kubernetes/pkg/client/listers/scheduling/internalversion/priorityclass.go index b219677dd..1692ba758 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/scheduling/internalversion/priorityclass.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/scheduling/internalversion/priorityclass.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" scheduling "k8s.io/kubernetes/pkg/apis/scheduling" @@ -55,8 +54,7 @@ func (s *priorityClassLister) List(selector labels.Selector) (ret []*scheduling. // Get retrieves the PriorityClass from the index for a given name. func (s *priorityClassLister) Get(name string) (*scheduling.PriorityClass, error) { - key := &scheduling.PriorityClass{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/BUILD index 4733b25a4..ff223c8b8 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/BUILD @@ -10,12 +10,12 @@ go_library( srcs = [ "expansion_generated.go", "storageclass.go", + "volumeattachment.go", ], importpath = "k8s.io/kubernetes/pkg/client/listers/storage/internalversion", deps = [ "//pkg/apis/storage: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/kubernetes/pkg/client/listers/storage/internalversion/expansion_generated.go b/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/expansion_generated.go index 858ece21c..e5a64c5d0 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/expansion_generated.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/expansion_generated.go @@ -21,3 +21,7 @@ package internalversion // StorageClassListerExpansion allows custom methods to be added to // StorageClassLister. type StorageClassListerExpansion interface{} + +// VolumeAttachmentListerExpansion allows custom methods to be added to +// VolumeAttachmentLister. +type VolumeAttachmentListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/storageclass.go b/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/storageclass.go index f1898a98f..b14973fe2 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/storageclass.go +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/storageclass.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" storage "k8s.io/kubernetes/pkg/apis/storage" @@ -55,8 +54,7 @@ func (s *storageClassLister) List(selector labels.Selector) (ret []*storage.Stor // Get retrieves the StorageClass from the index for a given name. func (s *storageClassLister) Get(name string) (*storage.StorageClass, error) { - key := &storage.StorageClass{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/volumeattachment.go b/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/volumeattachment.go new file mode 100644 index 000000000..16fd281d0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/client/listers/storage/internalversion/volumeattachment.go @@ -0,0 +1,65 @@ +/* +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 internalversion + +import ( + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + storage "k8s.io/kubernetes/pkg/apis/storage" +) + +// VolumeAttachmentLister helps list VolumeAttachments. +type VolumeAttachmentLister interface { + // List lists all VolumeAttachments in the indexer. + List(selector labels.Selector) (ret []*storage.VolumeAttachment, err error) + // Get retrieves the VolumeAttachment from the index for a given name. + Get(name string) (*storage.VolumeAttachment, error) + VolumeAttachmentListerExpansion +} + +// volumeAttachmentLister implements the VolumeAttachmentLister interface. +type volumeAttachmentLister struct { + indexer cache.Indexer +} + +// NewVolumeAttachmentLister returns a new VolumeAttachmentLister. +func NewVolumeAttachmentLister(indexer cache.Indexer) VolumeAttachmentLister { + return &volumeAttachmentLister{indexer: indexer} +} + +// List lists all VolumeAttachments in the indexer. +func (s *volumeAttachmentLister) List(selector labels.Selector) (ret []*storage.VolumeAttachment, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*storage.VolumeAttachment)) + }) + return ret, err +} + +// Get retrieves the VolumeAttachment from the index for a given name. +func (s *volumeAttachmentLister) Get(name string) (*storage.VolumeAttachment, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(storage.Resource("volumeattachment"), name) + } + return obj.(*storage.VolumeAttachment), nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/client/tests/BUILD b/vendor/k8s.io/kubernetes/pkg/client/tests/BUILD index aa3cb29bb..cf7b50747 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/tests/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/tests/BUILD @@ -17,9 +17,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/client/tests", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/kubelet/server/portforward:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/tests/fake_client_test.go b/vendor/k8s.io/kubernetes/pkg/client/tests/fake_client_test.go index 25b3dc03d..731e334e7 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/tests/fake_client_test.go +++ b/vendor/k8s.io/kubernetes/pkg/client/tests/fake_client_test.go @@ -20,10 +20,10 @@ import ( "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" - _ "k8s.io/kubernetes/pkg/api/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestFakeClientSetFiltering(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/client/tests/listwatch_test.go b/vendor/k8s.io/kubernetes/pkg/client/tests/listwatch_test.go index b3fd42d61..a4b6c2118 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/tests/listwatch_test.go +++ b/vendor/k8s.io/kubernetes/pkg/client/tests/listwatch_test.go @@ -30,7 +30,7 @@ import ( restclient "k8s.io/client-go/rest" . "k8s.io/client-go/tools/cache" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" ) @@ -61,7 +61,7 @@ func buildLocation(resourcePath string, query url.Values) string { } func TestListWatchesCanList(t *testing.T) { - fieldSelectorQueryParamName := metav1.FieldSelectorQueryParam(api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()) + fieldSelectorQueryParamName := metav1.FieldSelectorQueryParam(legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()) table := []struct { location string resource string @@ -102,7 +102,7 @@ func TestListWatchesCanList(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) lw := NewListWatchFromClient(client.Core().RESTClient(), item.resource, item.namespace, item.fieldSelector) lw.DisableChunking = true // This test merely tests that the correct request is made. @@ -112,7 +112,7 @@ func TestListWatchesCanList(t *testing.T) { } func TestListWatchesCanWatch(t *testing.T) { - fieldSelectorQueryParamName := metav1.FieldSelectorQueryParam(api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()) + fieldSelectorQueryParamName := metav1.FieldSelectorQueryParam(legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()) table := []struct { rv string location string @@ -169,7 +169,7 @@ func TestListWatchesCanWatch(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) lw := NewListWatchFromClient(client.Core().RESTClient(), item.resource, item.namespace, item.fieldSelector) // This test merely tests that the correct request is made. lw.Watch(metav1.ListOptions{ResourceVersion: item.rv}) diff --git a/vendor/k8s.io/kubernetes/pkg/client/tests/remotecommand_test.go b/vendor/k8s.io/kubernetes/pkg/client/tests/remotecommand_test.go index 6ea8a96ec..71d3be8fe 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/tests/remotecommand_test.go +++ b/vendor/k8s.io/kubernetes/pkg/client/tests/remotecommand_test.go @@ -38,8 +38,8 @@ import ( restclient "k8s.io/client-go/rest" remoteclient "k8s.io/client-go/tools/remotecommand" "k8s.io/client-go/transport/spdy" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubelet/server/remotecommand" ) diff --git a/vendor/k8s.io/kubernetes/pkg/client/unversioned/BUILD b/vendor/k8s.io/kubernetes/pkg/client/unversioned/BUILD index 02e53cb56..4ed4a551f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/unversioned/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/unversioned/BUILD @@ -14,10 +14,11 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/client/unversioned", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library", @@ -39,8 +40,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/client/unversioned", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core: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", diff --git a/vendor/k8s.io/kubernetes/pkg/client/unversioned/conditions.go b/vendor/k8s.io/kubernetes/pkg/client/unversioned/conditions.go index a65c84750..042d13a6f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/unversioned/conditions.go +++ b/vendor/k8s.io/kubernetes/pkg/client/unversioned/conditions.go @@ -24,10 +24,10 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/pod" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" appsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion" batchclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion" diff --git a/vendor/k8s.io/kubernetes/pkg/client/unversioned/helper.go b/vendor/k8s.io/kubernetes/pkg/client/unversioned/helper.go index 74baf75d0..ca0fc2c70 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/unversioned/helper.go +++ b/vendor/k8s.io/kubernetes/pkg/client/unversioned/helper.go @@ -19,7 +19,7 @@ package unversioned import ( "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" // Import solely to initialize client auth plugins. _ "k8s.io/client-go/plugin/pkg/client/auth" ) @@ -41,7 +41,7 @@ func SetKubernetesDefaults(config *restclient.Config) error { config.GroupVersion = &schema.GroupVersion{} } if config.NegotiatedSerializer == nil { - config.NegotiatedSerializer = api.Codecs + config.NegotiatedSerializer = legacyscheme.Codecs } return restclient.SetKubernetesDefaults(config) } @@ -52,7 +52,7 @@ func setGroupDefaults(groupName string, config *restclient.Config) error { config.UserAgent = restclient.DefaultKubernetesUserAgent() } if config.GroupVersion == nil || config.GroupVersion.Group != groupName { - g, err := api.Registry.Group(groupName) + g, err := legacyscheme.Registry.Group(groupName) if err != nil { return err } @@ -60,7 +60,7 @@ func setGroupDefaults(groupName string, config *restclient.Config) error { config.GroupVersion = ©GroupVersion } if config.NegotiatedSerializer == nil { - config.NegotiatedSerializer = api.Codecs + config.NegotiatedSerializer = legacyscheme.Codecs } return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/client/unversioned/helper_test.go b/vendor/k8s.io/kubernetes/pkg/client/unversioned/helper_test.go index 529661015..4b62c3bfc 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/unversioned/helper_test.go +++ b/vendor/k8s.io/kubernetes/pkg/client/unversioned/helper_test.go @@ -27,8 +27,9 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestSetKubernetesDefaults(t *testing.T) { @@ -140,9 +141,9 @@ func TestSetsCodec(t *testing.T) { Prefix string NegotiatedSerializer runtime.NegotiatedSerializer }{ - api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version: { + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version: { Err: false, - Prefix: "/api/" + api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version, + Prefix: "/api/" + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version, NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), }, // Add this test back when we fixed config and SetKubernetesDefaults diff --git a/vendor/k8s.io/kubernetes/pkg/client/unversioned/testclient/simple/BUILD b/vendor/k8s.io/kubernetes/pkg/client/unversioned/testclient/simple/BUILD index 781454671..788e07aee 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/unversioned/testclient/simple/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/client/unversioned/testclient/simple/BUILD @@ -10,8 +10,9 @@ go_library( srcs = ["simple_testclient.go"], importpath = "k8s.io/kubernetes/pkg/client/unversioned/testclient/simple", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/client/unversioned/testclient/simple/simple_testclient.go b/vendor/k8s.io/kubernetes/pkg/client/unversioned/testclient/simple/simple_testclient.go index 34649d0f0..17160aa3f 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/unversioned/testclient/simple/simple_testclient.go +++ b/vendor/k8s.io/kubernetes/pkg/client/unversioned/testclient/simple/simple_testclient.go @@ -31,8 +31,9 @@ import ( "k8s.io/apimachinery/pkg/runtime" restclient "k8s.io/client-go/rest" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" ) @@ -141,9 +142,9 @@ func (c *Client) ValidateCommon(t *testing.T, err error) { validator, ok := c.QueryValidator[key] if !ok { switch key { - case metav1.LabelSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()): + case metav1.LabelSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()): validator = ValidateLabels - case metav1.FieldSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()): + case metav1.FieldSelectorQueryParam(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()): validator = validateFields default: validator = func(a, b string) bool { return a == b } @@ -199,7 +200,7 @@ func validateFields(a, b string) bool { func (c *Client) body(t *testing.T, obj runtime.Object, raw *string) *string { if obj != nil { - fqKinds, _, err := api.Scheme.ObjectKinds(obj) + fqKinds, _, err := legacyscheme.Scheme.ObjectKinds(obj) if err != nil { t.Errorf("unexpected encoding error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/aws/aws.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/aws/aws.go index 65c360f7e..88b18e9c1 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/aws/aws.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/aws/aws.go @@ -1039,7 +1039,7 @@ func (c *Cloud) NodeAddresses(name types.NodeName) ([]v1.NodeAddress, error) { if err != nil || len(internalDNS) == 0 { //TODO: It would be nice to be able to determine the reason for the failure, // but the AWS client masks all failures with the same error description. - glog.V(2).Info("Could not determine private DNS from AWS metadata.") + glog.V(4).Info("Could not determine private DNS from AWS metadata.") } else { addresses = append(addresses, v1.NodeAddress{Type: v1.NodeInternalDNS, Address: internalDNS}) } @@ -1048,7 +1048,7 @@ func (c *Cloud) NodeAddresses(name types.NodeName) ([]v1.NodeAddress, error) { if err != nil || len(externalDNS) == 0 { //TODO: It would be nice to be able to determine the reason for the failure, // but the AWS client masks all failures with the same error description. - glog.V(2).Info("Could not determine public DNS from AWS metadata.") + glog.V(4).Info("Could not determine public DNS from AWS metadata.") } else { addresses = append(addresses, v1.NodeAddress{Type: v1.NodeExternalDNS, Address: externalDNS}) } @@ -1152,7 +1152,33 @@ func (c *Cloud) ExternalID(nodeName types.NodeName) (string, error) { // InstanceExistsByProviderID returns true if the instance with the given provider id still exists and is running. // If false is returned with no error, the instance will be immediately deleted by the cloud controller manager. func (c *Cloud) InstanceExistsByProviderID(providerID string) (bool, error) { - return false, cloudprovider.NotImplemented + instanceID, err := kubernetesInstanceID(providerID).mapToAWSInstanceID() + if err != nil { + return false, err + } + + request := &ec2.DescribeInstancesInput{ + InstanceIds: []*string{instanceID.awsString()}, + } + + instances, err := c.ec2.DescribeInstances(request) + if err != nil { + return false, err + } + if len(instances) == 0 { + return false, nil + } + if len(instances) > 1 { + return false, fmt.Errorf("multiple instances found for instance: %s", instanceID) + } + + state := instances[0].State.Name + if *state != "running" { + glog.Warningf("the instance %s is not running", instanceID) + return false, nil + } + + return true, nil } // InstanceID returns the cloud provider ID of the node with the specified nodeName. @@ -1690,6 +1716,12 @@ func (c *Cloud) AttachDisk(diskName KubernetesVolumeID, nodeName types.NodeName, ec2Device := "/dev/xvd" + string(mountDevice) if !alreadyAttached { + available, err := c.checkIfAvailable(disk, "attaching", awsInstance.awsID) + + if !available { + attachEnded = true + return "", err + } request := &ec2.AttachVolumeInput{ Device: aws.String(ec2Device), InstanceId: aws.String(awsInstance.awsID), @@ -1922,9 +1954,48 @@ func (c *Cloud) DeleteDisk(volumeName KubernetesVolumeID) (bool, error) { if err != nil { return false, err } + available, err := c.checkIfAvailable(awsDisk, "deleting", "") + + if !available { + return false, err + } + return awsDisk.deleteVolume() } +func (c *Cloud) checkIfAvailable(disk *awsDisk, opName string, instance string) (bool, error) { + info, err := disk.describeVolume() + + if err != nil { + glog.Errorf("Error describing volume %q: %q", disk.awsID, err) + // if for some reason we can not describe volume we will return error + return false, err + } + + volumeState := aws.StringValue(info.State) + opError := fmt.Sprintf("Error %s EBS volume %q", opName, disk.awsID) + if len(instance) != 0 { + opError = fmt.Sprintf("%q to instance %q", opError, instance) + } + + // Only available volumes can be attached or deleted + if volumeState != "available" { + // Volume is attached somewhere else and we can not attach it here + if len(info.Attachments) > 0 { + attachment := info.Attachments[0] + attachErr := fmt.Errorf("%s since volume is currently attached to %q", opError, aws.StringValue(attachment.InstanceId)) + glog.Error(attachErr) + return false, attachErr + } + + attachErr := fmt.Errorf("%s since volume is in %q state", opError, volumeState) + glog.Error(attachErr) + return false, attachErr + } + + return true, nil +} + func (c *Cloud) GetLabelsForVolume(pv *v1.PersistentVolume) (map[string]string, error) { // Ignore any volumes that are being provisioned if pv.Spec.AWSElasticBlockStore.VolumeID == volume.ProvisionedVolumeName { diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure.go index 44a91bb87..ee9ebf352 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure.go @@ -166,8 +166,12 @@ func GetServicePrincipalToken(config *Config, env *azure.Environment) (*adal.Ser if config.UseManagedIdentityExtension { glog.V(2).Infoln("azure: using managed identity extension to retrieve access token") + msiEndpoint, err := adal.GetMSIVMEndpoint() + if err != nil { + return nil, fmt.Errorf("Getting the managed service identity endpoint: %v", err) + } return adal.NewServicePrincipalTokenFromMSI( - *oauthConfig, + msiEndpoint, env.ServiceManagementEndpoint) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances.go index ea85388ca..0af7eec29 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances.go @@ -89,7 +89,20 @@ func (az *Cloud) ExternalID(name types.NodeName) (string, error) { // InstanceExistsByProviderID returns true if the instance with the given provider id still exists and is running. // If false is returned with no error, the instance will be immediately deleted by the cloud controller manager. func (az *Cloud) InstanceExistsByProviderID(providerID string) (bool, error) { - return false, cloudprovider.NotImplemented + name, err := splitProviderID(providerID) + if err != nil { + return false, err + } + + _, err = az.InstanceID(name) + if err != nil { + if err == cloudprovider.InstanceNotFound { + return false, nil + } + return false, err + } + + return true, nil } func (az *Cloud) isCurrentInstance(name types.NodeName) (bool, error) { diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_loadbalancer.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_loadbalancer.go index 5ad04a8f8..3b970e87e 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_loadbalancer.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_loadbalancer.go @@ -39,6 +39,9 @@ const ServiceAnnotationLoadBalancerInternal = "service.beta.kubernetes.io/azure- // to specify what subnet it is exposed on const ServiceAnnotationLoadBalancerInternalSubnet = "service.beta.kubernetes.io/azure-load-balancer-internal-subnet" +// ServiceAnnotationDNSLabelName annotation speficying the DNS label name for the service. +const ServiceAnnotationDNSLabelName = "service.beta.kubernetes.io/azure-dns-label-name" + // GetLoadBalancer returns whether the specified load balancer exists, and // if so, what its status is. func (az *Cloud) GetLoadBalancer(clusterName string, service *v1.Service) (status *v1.LoadBalancerStatus, exists bool, err error) { @@ -118,6 +121,13 @@ func (az *Cloud) determinePublicIPName(clusterName string, service *v1.Service) return "", fmt.Errorf("user supplied IP Address %s was not found", loadBalancerIP) } +func getPublicIPLabel(service *v1.Service) string { + if labelName, found := service.Annotations[ServiceAnnotationDNSLabelName]; found { + return labelName + } + return "" +} + // EnsureLoadBalancer creates a new load balancer 'name', or updates the existing one. Returns the status of the balancer func (az *Cloud) EnsureLoadBalancer(clusterName string, service *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) { isInternal := requiresInternalLoadBalancer(service) @@ -134,42 +144,6 @@ func (az *Cloud) EnsureLoadBalancer(clusterName string, service *v1.Service, nod serviceName := getServiceName(service) glog.V(5).Infof("ensure(%s): START clusterName=%q lbName=%q", serviceName, clusterName, lbName) - az.operationPollRateLimiter.Accept() - glog.V(10).Infof("SecurityGroupsClient.Get(%q): start", az.SecurityGroupName) - sg, err := az.SecurityGroupsClient.Get(az.ResourceGroup, az.SecurityGroupName, "") - glog.V(10).Infof("SecurityGroupsClient.Get(%q): end", az.SecurityGroupName) - if err != nil { - return nil, err - } - sg, sgNeedsUpdate, err := az.reconcileSecurityGroup(sg, clusterName, service, true /* wantLb */) - if err != nil { - return nil, err - } - if sgNeedsUpdate { - glog.V(3).Infof("ensure(%s): sg(%s) - updating", serviceName, *sg.Name) - // azure-sdk-for-go introduced contraint validation which breaks the updating here if we don't set these - // to nil. This is a workaround until https://github.com/Azure/go-autorest/issues/112 is fixed - sg.SecurityGroupPropertiesFormat.NetworkInterfaces = nil - sg.SecurityGroupPropertiesFormat.Subnets = nil - az.operationPollRateLimiter.Accept() - glog.V(10).Infof("SecurityGroupsClient.CreateOrUpdate(%q): start", *sg.Name) - respChan, errChan := az.SecurityGroupsClient.CreateOrUpdate(az.ResourceGroup, *sg.Name, sg, nil) - resp := <-respChan - err := <-errChan - glog.V(10).Infof("SecurityGroupsClient.CreateOrUpdate(%q): end", *sg.Name) - if az.CloudProviderBackoff && shouldRetryAPIRequest(resp.Response, err) { - glog.V(2).Infof("ensure(%s) backing off: sg(%s) - updating", serviceName, *sg.Name) - retryErr := az.CreateOrUpdateSGWithRetry(sg) - if retryErr != nil { - glog.V(2).Infof("ensure(%s) abort backoff: sg(%s) - updating", serviceName, *sg.Name) - return nil, retryErr - } - } - if err != nil { - return nil, err - } - } - lb, existsLb, err := az.getAzureLoadBalancer(lbName) if err != nil { return nil, err @@ -221,7 +195,8 @@ func (az *Cloud) EnsureLoadBalancer(clusterName string, service *v1.Service, nod if err != nil { return nil, err } - pip, err := az.ensurePublicIPExists(serviceName, pipName) + domainNameLabel := getPublicIPLabel(service) + pip, err := az.ensurePublicIPExists(serviceName, pipName, domainNameLabel) if err != nil { return nil, err } @@ -257,6 +232,50 @@ func (az *Cloud) EnsureLoadBalancer(clusterName string, service *v1.Service, nod } } + var lbStatus *v1.LoadBalancerStatus + if lbIP == nil { + lbStatus, exists, err := az.GetLoadBalancer(clusterName, service) + if err != nil { + return nil, err + } + if !exists { + return nil, fmt.Errorf("ensure(%s): lb(%s) - failed to get back load balancer", serviceName, lbName) + } + lbIP = &lbStatus.Ingress[0].IP + } + + az.operationPollRateLimiter.Accept() + glog.V(10).Infof("SecurityGroupsClient.Get(%q): start", az.SecurityGroupName) + sg, err := az.SecurityGroupsClient.Get(az.ResourceGroup, az.SecurityGroupName, "") + glog.V(10).Infof("SecurityGroupsClient.Get(%q): end", az.SecurityGroupName) + if err != nil { + return nil, err + } + sg, sgNeedsUpdate, err := az.reconcileSecurityGroup(sg, clusterName, service, lbIP, true /* wantLb */) + if err != nil { + return nil, err + } + if sgNeedsUpdate { + glog.V(3).Infof("ensure(%s): sg(%s) - updating", serviceName, *sg.Name) + az.operationPollRateLimiter.Accept() + glog.V(10).Infof("SecurityGroupsClient.CreateOrUpdate(%q): start", *sg.Name) + respChan, errChan := az.SecurityGroupsClient.CreateOrUpdate(az.ResourceGroup, *sg.Name, sg, nil) + resp := <-respChan + err := <-errChan + glog.V(10).Infof("SecurityGroupsClient.CreateOrUpdate(%q): end", *sg.Name) + if az.CloudProviderBackoff && shouldRetryAPIRequest(resp.Response, err) { + glog.V(2).Infof("ensure(%s) backing off: sg(%s) - updating", serviceName, *sg.Name) + retryErr := az.CreateOrUpdateSGWithRetry(sg) + if retryErr != nil { + glog.V(2).Infof("ensure(%s) abort backoff: sg(%s) - updating", serviceName, *sg.Name) + return nil, retryErr + } + } + if err != nil { + return nil, err + } + } + // Add the machines to the backend pool if they're not already lbBackendName := getBackendPoolName(clusterName) lbBackendPoolID := az.getBackendPoolID(lbName, lbBackendName) @@ -280,6 +299,10 @@ func (az *Cloud) EnsureLoadBalancer(clusterName string, service *v1.Service, nod glog.V(2).Infof("ensure(%s): lb(%s) finished", serviceName, lbName) + if lbStatus != nil { + return lbStatus, nil + } + if lbIP == nil { lbStatus, exists, err := az.GetLoadBalancer(clusterName, service) if err != nil { @@ -325,16 +348,12 @@ func (az *Cloud) EnsureLoadBalancerDeleted(clusterName string, service *v1.Servi return err } if existsSg { - reconciledSg, sgNeedsUpdate, reconcileErr := az.reconcileSecurityGroup(sg, clusterName, service, false /* wantLb */) + reconciledSg, sgNeedsUpdate, reconcileErr := az.reconcileSecurityGroup(sg, clusterName, service, nil, false /* wantLb */) if reconcileErr != nil { return reconcileErr } if sgNeedsUpdate { glog.V(3).Infof("delete(%s): sg(%s) - updating", serviceName, az.SecurityGroupName) - // azure-sdk-for-go introduced contraint validation which breaks the updating here if we don't set these - // to nil. This is a workaround until https://github.com/Azure/go-autorest/issues/112 is fixed - sg.SecurityGroupPropertiesFormat.NetworkInterfaces = nil - sg.SecurityGroupPropertiesFormat.Subnets = nil az.operationPollRateLimiter.Accept() glog.V(10).Infof("SecurityGroupsClient.CreateOrUpdate(%q): start", *reconciledSg.Name) respChan, errChan := az.SecurityGroupsClient.CreateOrUpdate(az.ResourceGroup, *reconciledSg.Name, reconciledSg, nil) @@ -455,7 +474,7 @@ func (az *Cloud) cleanupLoadBalancer(clusterName string, service *v1.Service, is return nil } -func (az *Cloud) ensurePublicIPExists(serviceName, pipName string) (*network.PublicIPAddress, error) { +func (az *Cloud) ensurePublicIPExists(serviceName, pipName, domainNameLabel string) (*network.PublicIPAddress, error) { pip, existsPip, err := az.getPublicIPAddress(pipName) if err != nil { return nil, err @@ -469,6 +488,11 @@ func (az *Cloud) ensurePublicIPExists(serviceName, pipName string) (*network.Pub pip.PublicIPAddressPropertiesFormat = &network.PublicIPAddressPropertiesFormat{ PublicIPAllocationMethod: network.Static, } + if len(domainNameLabel) > 0 { + pip.PublicIPAddressPropertiesFormat.DNSSettings = &network.PublicIPAddressDNSSettings{ + DomainNameLabel: &domainNameLabel, + } + } pip.Tags = &map[string]*string{"service": &serviceName} glog.V(3).Infof("ensure(%s): pip(%s) - creating", serviceName, *pip.Name) @@ -784,7 +808,7 @@ func (az *Cloud) reconcileLoadBalancer(lb network.LoadBalancer, fipConfiguration // This reconciles the Network Security Group similar to how the LB is reconciled. // This entails adding required, missing SecurityRules and removing stale rules. -func (az *Cloud) reconcileSecurityGroup(sg network.SecurityGroup, clusterName string, service *v1.Service, wantLb bool) (network.SecurityGroup, bool, error) { +func (az *Cloud) reconcileSecurityGroup(sg network.SecurityGroup, clusterName string, service *v1.Service, lbIP *string, wantLb bool) (network.SecurityGroup, bool, error) { serviceName := getServiceName(service) var ports []v1.ServicePort if wantLb { @@ -793,6 +817,17 @@ func (az *Cloud) reconcileSecurityGroup(sg network.SecurityGroup, clusterName st ports = []v1.ServicePort{} } + destinationIPAddress := "" + if wantLb { + if lbIP == nil { + return sg, false, fmt.Errorf("No load balancer IP for setting up security rules for service %s", service.Name) + } + destinationIPAddress = *lbIP + } + if destinationIPAddress == "" { + destinationIPAddress = "*" + } + sourceRanges, err := serviceapi.GetLoadBalancerSourceRanges(service) if err != nil { return sg, false, err @@ -824,7 +859,7 @@ func (az *Cloud) reconcileSecurityGroup(sg network.SecurityGroup, clusterName st SourcePortRange: to.StringPtr("*"), DestinationPortRange: to.StringPtr(strconv.Itoa(int(port.Port))), SourceAddressPrefix: to.StringPtr(sourceAddressPrefixes[j]), - DestinationAddressPrefix: to.StringPtr("*"), + DestinationAddressPrefix: to.StringPtr(destinationIPAddress), Access: network.SecurityRuleAccessAllow, Direction: network.SecurityRuleDirectionInbound, }, diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_test.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_test.go index e579a159f..da9776e84 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_test.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_test.go @@ -299,7 +299,7 @@ func TestReconcileSecurityGroupNewServiceAddsPort(t *testing.T) { sg := getTestSecurityGroup() - sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &svc1, true) + sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &svc1, to.StringPtr("192.168.0.0"), true) if err != nil { t.Errorf("Unexpected error: %q", err) } @@ -313,7 +313,7 @@ func TestReconcileSecurityGroupNewInternalServiceAddsPort(t *testing.T) { sg := getTestSecurityGroup() - sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &svc1, true) + sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &svc1, to.StringPtr("192.168.0.0"), true) if err != nil { t.Errorf("Unexpected error: %q", err) } @@ -329,7 +329,7 @@ func TestReconcileSecurityGroupRemoveService(t *testing.T) { validateSecurityGroup(t, sg, service1, service2) az := getTestCloud() - sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &service1, false) + sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &service1, nil, false) if err != nil { t.Errorf("Unexpected error: %q", err) } @@ -344,7 +344,7 @@ func TestReconcileSecurityGroupRemoveServiceRemovesPort(t *testing.T) { sg := getTestSecurityGroup(svc) svcUpdated := getTestService("servicea", v1.ProtocolTCP, 80) - sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &svcUpdated, true) + sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &svcUpdated, to.StringPtr("192.168.0.0"), true) if err != nil { t.Errorf("Unexpected error: %q", err) } @@ -361,7 +361,7 @@ func TestReconcileSecurityWithSourceRanges(t *testing.T) { } sg := getTestSecurityGroup(svc) - sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &svc, true) + sg, _, err := az.reconcileSecurityGroup(sg, testClusterName, &svc, to.StringPtr("192.168.0.0"), true) if err != nil { t.Errorf("Unexpected error: %q", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/BUILD b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/BUILD index d25739c94..d68e1a8f8 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/BUILD @@ -40,7 +40,6 @@ go_library( "gce_urlmap.go", "gce_util.go", "gce_zones.go", - "kms.go", "metrics.go", "token_source.go", ], @@ -53,6 +52,7 @@ go_library( "//pkg/master/ports:go_default_library", "//pkg/util/net/sets:go_default_library", "//pkg/util/version:go_default_library", + "//pkg/version:go_default_library", "//pkg/volume:go_default_library", "//pkg/volume/util:go_default_library", "//vendor/cloud.google.com/go/compute/metadata:go_default_library", @@ -60,7 +60,6 @@ go_library( "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/golang.org/x/oauth2:go_default_library", "//vendor/golang.org/x/oauth2/google:go_default_library", - "//vendor/google.golang.org/api/cloudkms/v1:go_default_library", "//vendor/google.golang.org/api/compute/v0.alpha:go_default_library", "//vendor/google.golang.org/api/compute/v0.beta:go_default_library", "//vendor/google.golang.org/api/compute/v1:go_default_library", @@ -76,8 +75,6 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/apiserver/pkg/server/options/encryptionconfig:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage/value/encrypt/envelope:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce.go index 1c77a4f79..f86865c4d 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce.go @@ -21,6 +21,7 @@ import ( "io" "net/http" "regexp" + "runtime" "strconv" "strings" "sync" @@ -33,8 +34,6 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apiserver/pkg/server/options/encryptionconfig" - "k8s.io/apiserver/pkg/storage/value/encrypt/envelope" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/scheme" v1core "k8s.io/client-go/kubernetes/typed/core/v1" @@ -42,11 +41,11 @@ import ( "k8s.io/client-go/util/flowcontrol" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller" + "k8s.io/kubernetes/pkg/version" "github.com/golang/glog" "golang.org/x/oauth2" "golang.org/x/oauth2/google" - cloudkms "google.golang.org/api/cloudkms/v1" computealpha "google.golang.org/api/compute/v0.alpha" computebeta "google.golang.org/api/compute/v0.beta" compute "google.golang.org/api/compute/v1" @@ -104,7 +103,6 @@ type GCECloud struct { serviceBeta *computebeta.Service serviceAlpha *computealpha.Service containerService *container.Service - cloudkmsService *cloudkms.Service client clientset.Interface clientBuilder controller.ControllerClientBuilder eventBroadcaster record.EventBroadcaster @@ -193,10 +191,6 @@ type CloudConfig struct { AlphaFeatureGate *AlphaFeatureGate } -// kmsPluginRegisterOnce prevents the cloudprovider from registering its KMS plugin -// more than once in the KMS plugin registry. -var kmsPluginRegisterOnce sync.Once - func init() { cloudprovider.RegisterCloudProvider( ProviderName, @@ -210,11 +204,6 @@ func (g *GCECloud) GetComputeService() *compute.Service { return g.service } -// Raw access to the cloudkmsService of GCE cloud. Required for encryption of etcd using Google KMS. -func (g *GCECloud) GetKMSService() *cloudkms.Service { - return g.cloudkmsService -} - // newGCECloud creates a new instance of GCECloud. func newGCECloud(config io.Reader) (gceCloud *GCECloud, err error) { var cloudConfig *CloudConfig @@ -344,6 +333,13 @@ func generateCloudConfig(configFile *ConfigFile) (cloudConfig *CloudConfig, err // If no tokenSource is specified, uses oauth2.DefaultTokenSource. // If managedZones is nil / empty all zones in the region will be managed. func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { + // Remove any pre-release version and build metadata from the semver, leaving only the MAJOR.MINOR.PATCH portion. + // See http://semver.org/. + version := strings.TrimLeft(strings.Split(strings.Split(version.Get().GitVersion, "-")[0], "+")[0], "v") + + // Create a user-agent header append string to supply to the Google API clients, to identify Kubernetes as the origin of the GCP API calls. + userAgent := fmt.Sprintf("Kubernetes/%s (%s %s)", version, runtime.GOOS, runtime.GOARCH) + // Use ProjectID for NetworkProjectID, if it wasn't explicitly set. if config.NetworkProjectID == "" { config.NetworkProjectID = config.ProjectID @@ -357,6 +353,7 @@ func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { if err != nil { return nil, err } + service.UserAgent = userAgent client, err = newOauthClient(config.TokenSource) if err != nil { @@ -366,6 +363,7 @@ func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { if err != nil { return nil, err } + serviceBeta.UserAgent = userAgent client, err = newOauthClient(config.TokenSource) if err != nil { @@ -375,6 +373,7 @@ func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { if err != nil { return nil, err } + serviceAlpha.UserAgent = userAgent // Expect override api endpoint to always be v1 api and follows the same pattern as prod. // Generate alpha and beta api endpoints based on override v1 api endpoint. @@ -390,11 +389,7 @@ func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { if err != nil { return nil, err } - - cloudkmsService, err := cloudkms.New(client) - if err != nil { - return nil, err - } + containerService.UserAgent = userAgent // ProjectID and.NetworkProjectID may be project number or name. projID, netProjID := tryConvertToProjectNames(config.ProjectID, config.NetworkProjectID, service) @@ -449,7 +444,7 @@ func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { return nil, err } } - if len(config.ManagedZones) != 1 { + if len(config.ManagedZones) > 1 { glog.Infof("managing multiple zones: %v", config.ManagedZones) } @@ -460,7 +455,6 @@ func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { serviceAlpha: serviceAlpha, serviceBeta: serviceBeta, containerService: containerService, - cloudkmsService: cloudkmsService, projectID: projID, networkProjectID: netProjID, onXPN: onXPN, @@ -480,14 +474,6 @@ func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { gce.manager = &gceServiceManager{gce} - // Registering the KMS plugin only the first time. - kmsPluginRegisterOnce.Do(func() { - // Register the Google Cloud KMS based service in the KMS plugin registry. - encryptionconfig.KMSPluginRegistry.Register(KMSServiceName, func(config io.Reader) (envelope.Service, error) { - return gce.getGCPCloudKMSService(config) - }) - }) - return gce, nil } @@ -526,7 +512,7 @@ func (gce *GCECloud) Initialize(clientBuilder controller.ControllerClientBuilder if gce.OnXPN() { gce.eventBroadcaster = record.NewBroadcaster() - gce.eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(gce.client.Core().RESTClient()).Events("")}) + gce.eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(gce.client.CoreV1().RESTClient()).Events("")}) gce.eventRecorder = gce.eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "gce-cloudprovider"}) } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_clusterid.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_clusterid.go index 6f1b667c8..46b4ff4f6 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_clusterid.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_clusterid.go @@ -101,7 +101,7 @@ func (gce *GCECloud) watchClusterID() { }, } - listerWatcher := cache.NewListWatchFromClient(gce.ClusterID.client.Core().RESTClient(), "configmaps", UIDNamespace, fields.Everything()) + listerWatcher := cache.NewListWatchFromClient(gce.ClusterID.client.CoreV1().RESTClient(), "configmaps", UIDNamespace, fields.Everything()) var controller cache.Controller gce.ClusterID.store, controller = cache.NewInformer(newSingleObjectListerWatcher(listerWatcher, UIDConfigMapName), &v1.ConfigMap{}, updateFuncFrequency, mapEventHandler) @@ -189,7 +189,7 @@ func (ci *ClusterID) getOrInitialize() error { UIDProvider: newId, } - if _, err := ci.client.Core().ConfigMaps(UIDNamespace).Create(cfg); err != nil { + if _, err := ci.client.CoreV1().ConfigMaps(UIDNamespace).Create(cfg); err != nil { glog.Errorf("GCE cloud provider failed to create %v config map to store cluster id: %v", ci.cfgMapKey, err) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instances.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instances.go index f55b06d6c..1d252d8d2 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instances.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_instances.go @@ -116,19 +116,35 @@ func (gce *GCECloud) NodeAddressesByProviderID(providerID string) ([]v1.NodeAddr return nodeAddresses, nil } +// instanceByProviderID returns the cloudprovider instance of the node +// with the specified unique providerID +func (gce *GCECloud) instanceByProviderID(providerID string) (*gceInstance, error) { + project, zone, name, err := splitProviderID(providerID) + if err != nil { + return nil, err + } + + instance, err := gce.getInstanceFromProjectInZoneByName(project, zone, name) + if err != nil { + if isHTTPErrorCode(err, http.StatusNotFound) { + return nil, cloudprovider.InstanceNotFound + } + return nil, err + } + + return instance, nil +} + // InstanceTypeByProviderID returns the cloudprovider instance type of the node // with the specified unique providerID This method will not be called from the // node that is requesting this ID. i.e. metadata service and other local // methods cannot be used here func (gce *GCECloud) InstanceTypeByProviderID(providerID string) (string, error) { - project, zone, name, err := splitProviderID(providerID) - if err != nil { - return "", err - } - instance, err := gce.getInstanceFromProjectInZoneByName(project, zone, name) + instance, err := gce.instanceByProviderID(providerID) if err != nil { return "", err } + return instance.Type, nil } @@ -156,7 +172,15 @@ func (gce *GCECloud) ExternalID(nodeName types.NodeName) (string, error) { // InstanceExistsByProviderID returns true if the instance with the given provider id still exists and is running. // If false is returned with no error, the instance will be immediately deleted by the cloud controller manager. func (gce *GCECloud) InstanceExistsByProviderID(providerID string) (bool, error) { - return false, cloudprovider.NotImplemented + _, err := gce.instanceByProviderID(providerID) + if err != nil { + if err == cloudprovider.InstanceNotFound { + return false, nil + } + return false, err + } + + return true, nil } // InstanceID returns the cloud provider ID of the node with the specified NodeName. @@ -371,7 +395,7 @@ func (gce *GCECloud) AddAliasToInstance(nodeName types.NodeName, alias *net.IPNe mc := newInstancesMetricContext("addalias", v1instance.Zone) op, err := gce.serviceAlpha.Instances.UpdateNetworkInterface( - gce.projectID, instance.Zone, instance.Name, iface.Name, iface).Do() + gce.projectID, lastComponent(instance.Zone), instance.Name, iface.Name, iface).Do() if err != nil { return mc.Observe(err) } @@ -464,6 +488,7 @@ func (gce *GCECloud) getInstanceByName(name string) (*gceInstance, error) { if isHTTPErrorCode(err, http.StatusNotFound) { continue } + glog.Errorf("getInstanceByName: failed to get instance %s in zone %s; err: %v", name, zone, err) return nil, err } return instance, nil @@ -478,7 +503,6 @@ func (gce *GCECloud) getInstanceFromProjectInZoneByName(project, zone, name stri res, err := gce.service.Instances.Get(project, zone, name).Do() mc.Observe(err) if err != nil { - glog.Errorf("getInstanceFromProjectInZoneByName: failed to get instance %s; err: %v", name, err) return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_loadbalancer_external.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_loadbalancer_external.go index a7f7b55b1..4bb2a4094 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_loadbalancer_external.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/gce_loadbalancer_external.go @@ -66,18 +66,17 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a affinityType := apiService.Spec.SessionAffinity serviceName := types.NamespacedName{Namespace: apiService.Namespace, Name: apiService.Name} - glog.V(2).Infof("EnsureLoadBalancer(%v, %v, %v, %v, %v, %v, %v)", - loadBalancerName, gce.region, requestedIP, portStr, hostNames, serviceName, apiService.Annotations) - lbRefStr := fmt.Sprintf("%v(%v)", loadBalancerName, serviceName) + glog.V(2).Infof("ensureExternalLoadBalancer(%s, %v, %v, %v, %v, %v)", lbRefStr, gce.region, requestedIP, portStr, hostNames, apiService.Annotations) + // Check the current and the desired network tiers. If they do not match, // tear down the existing resources with the wrong tier. netTier, err := gce.getServiceNetworkTier(apiService) if err != nil { - glog.Errorf("EnsureLoadBalancer(%s): failed to get the desired network tier: %v", lbRefStr, err) + glog.Errorf("ensureExternalLoadBalancer(%s): Failed to get the desired network tier: %v.", lbRefStr, err) return nil, err } - glog.V(4).Infof("EnsureLoadBalancer(%s): desired network tier %q ", lbRefStr, netTier) + glog.V(4).Infof("ensureExternalLoadBalancer(%s): Desired network tier %q.", lbRefStr, netTier) if gce.AlphaFeatureGate.Enabled(AlphaFeatureNetworkTiers) { gce.deleteWrongNetworkTieredResources(loadBalancerName, lbRefStr, netTier) } @@ -88,8 +87,7 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a return nil, err } if !fwdRuleExists { - glog.V(2).Infof("Forwarding rule %v for Service %v/%v doesn't exist", - loadBalancerName, apiService.Namespace, apiService.Name) + glog.V(2).Infof("ensureExternalLoadBalancer(%s): Forwarding rule %v doesn't exist.", lbRefStr, loadBalancerName) } // Make sure we know which IP address will be used and have properly reserved @@ -124,14 +122,14 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a } if isSafeToReleaseIP { if err := gce.DeleteRegionAddress(loadBalancerName, gce.region); err != nil && !isNotFound(err) { - glog.Errorf("Failed to release static IP %s for load balancer (%v(%v), %v): %v", ipAddressToUse, loadBalancerName, serviceName, gce.region, err) + glog.Errorf("ensureExternalLoadBalancer(%s): Failed to release static IP %s in region %v: %v.", lbRefStr, ipAddressToUse, gce.region, err) } else if isNotFound(err) { - glog.V(2).Infof("EnsureLoadBalancer(%v(%v)): address %s is not reserved.", loadBalancerName, serviceName, ipAddressToUse) + glog.V(2).Infof("ensureExternalLoadBalancer(%s): IP address %s is not reserved.", lbRefStr, ipAddressToUse) } else { - glog.V(2).Infof("EnsureLoadBalancer(%v(%v)): released static IP %s", loadBalancerName, serviceName, ipAddressToUse) + glog.Infof("ensureExternalLoadBalancer(%s): Released static IP %s.", lbRefStr, ipAddressToUse) } } else { - glog.Warningf("orphaning static IP %s during update of load balancer (%v(%v), %v): %v", ipAddressToUse, loadBalancerName, serviceName, gce.region, err) + glog.Warningf("ensureExternalLoadBalancer(%s): Orphaning static IP %s in region %v: %v.", lbRefStr, ipAddressToUse, gce.region, err) } }() @@ -150,9 +148,9 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a // emphemeral IP used by the fwd rule, or create a new static IP. ipAddr, existed, err := ensureStaticIP(gce, loadBalancerName, serviceName.String(), gce.region, fwdRuleIP, netTier) if err != nil { - return nil, fmt.Errorf("failed to ensure a static IP for the LB: %v", err) + return nil, fmt.Errorf("failed to ensure a static IP for load balancer (%s): %v", lbRefStr, err) } - glog.V(4).Infof("EnsureLoadBalancer(%s): ensured IP address %s (tier: %s)", lbRefStr, ipAddr, netTier) + glog.Infof("ensureExternalLoadBalancer(%s): Ensured IP address %s (tier: %s).", lbRefStr, ipAddr, netTier) // If the IP was not owned by the user, but it already existed, it // could indicate that the previous update cycle failed. We can use // this IP and try to run through the process again, but we should @@ -180,17 +178,17 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a // Unlike forwarding rules and target pools, firewalls can be updated // without needing to be deleted and recreated. if firewallExists { - glog.Infof("EnsureLoadBalancer(%v(%v)): updating firewall", loadBalancerName, serviceName) + glog.Infof("ensureExternalLoadBalancer(%s): Updating firewall.", lbRefStr) if err := gce.updateFirewall(apiService, MakeFirewallName(loadBalancerName), gce.region, desc, sourceRanges, ports, hosts); err != nil { return nil, err } - glog.Infof("EnsureLoadBalancer(%v(%v)): updated firewall", loadBalancerName, serviceName) + glog.Infof("ensureExternalLoadBalancer(%s): Updated firewall.", lbRefStr) } else { - glog.Infof("EnsureLoadBalancer(%v(%v)): creating firewall", loadBalancerName, serviceName) + glog.Infof("ensureExternalLoadBalancer(%s): Creating firewall.", lbRefStr) if err := gce.createFirewall(apiService, MakeFirewallName(loadBalancerName), gce.region, desc, sourceRanges, ports, hosts); err != nil { return nil, err } - glog.Infof("EnsureLoadBalancer(%v(%v)): created firewall", loadBalancerName, serviceName) + glog.Infof("ensureExternalLoadBalancer(%s): Created firewall.", lbRefStr) } } @@ -199,7 +197,7 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a return nil, err } if !tpExists { - glog.Infof("Target pool %v for Service %v/%v doesn't exist", loadBalancerName, apiService.Namespace, apiService.Name) + glog.Infof("ensureExternalLoadBalancer(%s): Target pool for service doesn't exist.", lbRefStr) } // Check which health check needs to create and which health check needs to delete. @@ -207,15 +205,15 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a var hcToCreate, hcToDelete *compute.HttpHealthCheck hcLocalTrafficExisting, err := gce.GetHttpHealthCheck(loadBalancerName) if err != nil && !isHTTPErrorCode(err, http.StatusNotFound) { - return nil, fmt.Errorf("error checking HTTP health check %s: %v", loadBalancerName, err) + return nil, fmt.Errorf("error checking HTTP health check for load balancer (%s): %v", lbRefStr, err) } if path, healthCheckNodePort := apiservice.GetServiceHealthCheckPathPort(apiService); path != "" { - glog.V(4).Infof("service %v (%v) needs local traffic health checks on: %d%s)", apiService.Name, loadBalancerName, healthCheckNodePort, path) + glog.V(4).Infof("ensureExternalLoadBalancer(%s): Service needs local traffic health checks on: %d%s.", lbRefStr, healthCheckNodePort, path) if hcLocalTrafficExisting == nil { // This logic exists to detect a transition for non-OnlyLocal to OnlyLocal service // turn on the tpNeedsUpdate flag to delete/recreate fwdrule/tpool updating the // target pool to use local traffic health check. - glog.V(2).Infof("Updating from nodes health checks to local traffic health checks for service %v LB %v", apiService.Name, loadBalancerName) + glog.V(2).Infof("ensureExternalLoadBalancer(%s): Updating from nodes health checks to local traffic health checks.", lbRefStr) if supportsNodesHealthCheck { hcToDelete = makeHttpHealthCheck(MakeNodesHealthCheckName(clusterID), GetNodesHealthCheckPath(), GetNodesHealthCheckPort()) } @@ -223,12 +221,12 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a } hcToCreate = makeHttpHealthCheck(loadBalancerName, path, healthCheckNodePort) } else { - glog.V(4).Infof("Service %v needs nodes health checks.", apiService.Name) + glog.V(4).Infof("ensureExternalLoadBalancer(%s): Service needs nodes health checks.", lbRefStr) if hcLocalTrafficExisting != nil { // This logic exists to detect a transition from OnlyLocal to non-OnlyLocal service // and turn on the tpNeedsUpdate flag to delete/recreate fwdrule/tpool updating the // target pool to use nodes health check. - glog.V(2).Infof("Updating from local traffic health checks to nodes health checks for service %v LB %v", apiService.Name, loadBalancerName) + glog.V(2).Infof("ensureExternalLoadBalancer(%s): Updating from local traffic health checks to nodes health checks.", lbRefStr) hcToDelete = hcLocalTrafficExisting tpNeedsUpdate = true } @@ -249,9 +247,9 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a // IP. That way we can come back to it later. isSafeToReleaseIP = false if err := gce.DeleteRegionForwardingRule(loadBalancerName, gce.region); err != nil && !isNotFound(err) { - return nil, fmt.Errorf("failed to delete existing forwarding rule %s for load balancer update: %v", loadBalancerName, err) + return nil, fmt.Errorf("failed to delete existing forwarding rule for load balancer (%s) update: %v", lbRefStr, err) } - glog.Infof("EnsureLoadBalancer(%v(%v)): deleted forwarding rule", loadBalancerName, serviceName) + glog.Infof("ensureExternalLoadBalancer(%s): Deleted forwarding rule.", lbRefStr) } if tpExists && tpNeedsUpdate { // Pass healthchecks to DeleteExternalTargetPoolAndChecks to cleanup health checks after cleaning up the target pool itself. @@ -260,9 +258,9 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a hcNames = append(hcNames, hcToDelete.Name) } if err := gce.DeleteExternalTargetPoolAndChecks(apiService, loadBalancerName, gce.region, clusterID, hcNames...); err != nil { - return nil, fmt.Errorf("failed to delete existing target pool %s for load balancer update: %v", loadBalancerName, err) + return nil, fmt.Errorf("failed to delete existing target pool for load balancer (%s) update: %v", lbRefStr, err) } - glog.Infof("EnsureLoadBalancer(%v(%v)): deleted target pool", loadBalancerName, serviceName) + glog.Infof("ensureExternalLoadBalancer(%s): Deleted target pool.", lbRefStr) } // Once we've deleted the resources (if necessary), build them back up (or for @@ -274,37 +272,37 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a } // Pass healthchecks to createTargetPool which needs them as health check links in the target pool if err := gce.createTargetPool(apiService, loadBalancerName, serviceName.String(), ipAddressToUse, gce.region, clusterID, createInstances, affinityType, hcToCreate); err != nil { - return nil, fmt.Errorf("failed to create target pool %s: %v", loadBalancerName, err) + return nil, fmt.Errorf("failed to create target pool for load balancer (%s): %v", lbRefStr, err) } if hcToCreate != nil { - glog.Infof("EnsureLoadBalancer(%v(%v)): created health checks %v for target pool", loadBalancerName, serviceName, hcToCreate.Name) + glog.Infof("ensureExternalLoadBalancer(%s): Created health checks %v.", lbRefStr, hcToCreate.Name) } if len(hosts) <= maxTargetPoolCreateInstances { - glog.Infof("EnsureLoadBalancer(%v(%v)): created target pool", loadBalancerName, serviceName) + glog.Infof("ensureExternalLoadBalancer(%s): Created target pool.", lbRefStr) } else { - glog.Infof("EnsureLoadBalancer(%v(%v)): created initial target pool (now updating with %d hosts)", loadBalancerName, serviceName, len(hosts)-maxTargetPoolCreateInstances) + glog.Infof("ensureExternalLoadBalancer(%s): Created initial target pool (now updating with %d hosts).", lbRefStr, len(hosts)-maxTargetPoolCreateInstances) created := sets.NewString() for _, host := range createInstances { created.Insert(host.makeComparableHostPath()) } if err := gce.updateTargetPool(loadBalancerName, created, hosts); err != nil { - return nil, fmt.Errorf("failed to update target pool %s: %v", loadBalancerName, err) + return nil, fmt.Errorf("failed to update target pool for load balancer (%s): %v", lbRefStr, err) } - glog.Infof("EnsureLoadBalancer(%v(%v)): updated target pool (with %d hosts)", loadBalancerName, serviceName, len(hosts)-maxTargetPoolCreateInstances) + glog.Infof("ensureExternalLoadBalancer(%s): Updated target pool (with %d hosts).", lbRefStr, len(hosts)-maxTargetPoolCreateInstances) } } if tpNeedsUpdate || fwdRuleNeedsUpdate { - glog.Infof("EnsureLoadBalancer(%v(%v)): creating forwarding rule, IP %s (tier: %s)", loadBalancerName, serviceName, ipAddressToUse, netTier) + glog.Infof("ensureExternalLoadBalancer(%s): Creating forwarding rule, IP %s (tier: %s).", lbRefStr, ipAddressToUse, netTier) if err := createForwardingRule(gce, loadBalancerName, serviceName.String(), gce.region, ipAddressToUse, gce.targetPoolURL(loadBalancerName), ports, netTier); err != nil { - return nil, fmt.Errorf("failed to create forwarding rule %s: %v", loadBalancerName, err) + return nil, fmt.Errorf("failed to create forwarding rule for load balancer (%s): %v", lbRefStr, err) } // End critical section. It is safe to release the static IP (which // just demotes it to ephemeral) now that it is attached. In the case // of a user-requested IP, the "is user-owned" flag will be set, // preventing it from actually being released. isSafeToReleaseIP = true - glog.Infof("EnsureLoadBalancer(%v(%v)): created forwarding rule, IP %s", loadBalancerName, serviceName, ipAddressToUse) + glog.Infof("ensureExternalLoadBalancer(%s): Created forwarding rule, IP %s.", lbRefStr, ipAddressToUse) } status := &v1.LoadBalancerStatus{} @@ -336,12 +334,14 @@ func (gce *GCECloud) updateExternalLoadBalancer(clusterName string, service *v1. // ensureExternalLoadBalancerDeleted is the external implementation of LoadBalancer.EnsureLoadBalancerDeleted func (gce *GCECloud) ensureExternalLoadBalancerDeleted(clusterName, clusterID string, service *v1.Service) error { loadBalancerName := cloudprovider.GetLoadBalancerName(service) + serviceName := types.NamespacedName{Namespace: service.Namespace, Name: service.Name} + lbRefStr := fmt.Sprintf("%v(%v)", loadBalancerName, serviceName) var hcNames []string if path, _ := apiservice.GetServiceHealthCheckPathPort(service); path != "" { hcToDelete, err := gce.GetHttpHealthCheck(loadBalancerName) if err != nil && !isHTTPErrorCode(err, http.StatusNotFound) { - glog.Infof("Failed to retrieve health check %v:%v", loadBalancerName, err) + glog.Infof("ensureExternalLoadBalancerDeleted(%s): Failed to retrieve health check:%v.", lbRefStr, err) return err } hcNames = append(hcNames, hcToDelete.Name) @@ -356,10 +356,11 @@ func (gce *GCECloud) ensureExternalLoadBalancerDeleted(clusterName, clusterID st errs := utilerrors.AggregateGoroutines( func() error { + glog.Infof("ensureExternalLoadBalancerDeleted(%s): Deleting firewall rule.", lbRefStr) fwName := MakeFirewallName(loadBalancerName) err := ignoreNotFound(gce.DeleteFirewall(fwName)) if isForbidden(err) && gce.OnXPN() { - glog.V(4).Infof("ensureExternalLoadBalancerDeleted(%v): do not have permission to delete firewall rule (on XPN). Raising event.", loadBalancerName) + glog.V(4).Infof("ensureExternalLoadBalancerDeleted(%s): Do not have permission to delete firewall rule %v (on XPN). Raising event.", lbRefStr, fwName) gce.raiseFirewallChangeNeededEvent(service, FirewallToGCloudDeleteCmd(fwName, gce.NetworkProjectID())) return nil } @@ -368,13 +369,18 @@ func (gce *GCECloud) ensureExternalLoadBalancerDeleted(clusterName, clusterID st // Even though we don't hold on to static IPs for load balancers, it's // possible that EnsureLoadBalancer left one around in a failed // creation/update attempt, so make sure we clean it up here just in case. - func() error { return ignoreNotFound(gce.DeleteRegionAddress(loadBalancerName, gce.region)) }, func() error { + glog.Infof("ensureExternalLoadBalancerDeleted(%s): Deleting IP address.", lbRefStr) + return ignoreNotFound(gce.DeleteRegionAddress(loadBalancerName, gce.region)) + }, + func() error { + glog.Infof("ensureExternalLoadBalancerDeleted(%s): Deleting forwarding rule.", lbRefStr) // The forwarding rule must be deleted before either the target pool can, // unfortunately, so we have to do these two serially. if err := ignoreNotFound(gce.DeleteRegionForwardingRule(loadBalancerName, gce.region)); err != nil { return err } + glog.Infof("ensureExternalLoadBalancerDeleted(%s): Deleting target pool.", lbRefStr) if err := gce.DeleteExternalTargetPoolAndChecks(service, loadBalancerName, gce.region, clusterID, hcNames...); err != nil { return err } @@ -388,10 +394,13 @@ func (gce *GCECloud) ensureExternalLoadBalancerDeleted(clusterName, clusterID st } func (gce *GCECloud) DeleteExternalTargetPoolAndChecks(service *v1.Service, name, region, clusterID string, hcNames ...string) error { + serviceName := types.NamespacedName{Namespace: service.Namespace, Name: service.Name} + lbRefStr := fmt.Sprintf("%v(%v)", name, serviceName) + if err := gce.DeleteTargetPool(name, region); err != nil && isHTTPErrorCode(err, http.StatusNotFound) { - glog.Infof("Target pool %s already deleted. Continuing to delete other resources.", name) + glog.Infof("DeleteExternalTargetPoolAndChecks(%v): Target pool already deleted. Continuing to delete other resources.", lbRefStr) } else if err != nil { - glog.Warningf("Failed to delete target pool %s, got error %s.", name, err.Error()) + glog.Warningf("DeleteExternalTargetPoolAndChecks(%v): Failed to delete target pool, got error %s.", lbRefStr, err.Error()) return err } @@ -406,14 +415,14 @@ func (gce *GCECloud) DeleteExternalTargetPoolAndChecks(service *v1.Service, name gce.sharedResourceLock.Lock() defer gce.sharedResourceLock.Unlock() } - glog.Infof("Deleting health check %v", hcName) + glog.Infof("DeleteExternalTargetPoolAndChecks(%v): Deleting health check %v.", lbRefStr, hcName) if err := gce.DeleteHttpHealthCheck(hcName); err != nil { // Delete nodes health checks will fail if any other target pool is using it. if isInUsedByError(err) { - glog.V(4).Infof("Health check %v is in used: %v.", hcName, err) + glog.V(4).Infof("DeleteExternalTargetPoolAndChecks(%v): Health check %v is in used: %v.", lbRefStr, hcName, err) return nil } else if !isHTTPErrorCode(err, http.StatusNotFound) { - glog.Warningf("Failed to delete health check %v: %v", hcName, err) + glog.Warningf("DeleteExternalTargetPoolAndChecks(%v): Failed to delete health check %v: %v.", lbRefStr, hcName, err) return err } // StatusNotFound could happen when: @@ -423,15 +432,15 @@ func (gce *GCECloud) DeleteExternalTargetPoolAndChecks(service *v1.Service, name // - This is a retry and in previous round we failed to delete the healthcheck firewall // after deleted the healthcheck. // We continue to delete the healthcheck firewall to prevent leaking. - glog.V(4).Infof("Health check %v is already deleted.", hcName) + glog.V(4).Infof("DeleteExternalTargetPoolAndChecks(%v): Health check %v is already deleted.", lbRefStr, hcName) } // If health check is deleted without error, it means no load-balancer is using it. // So we should delete the health check firewall as well. fwName := MakeHealthCheckFirewallName(clusterID, hcName, isNodesHealthCheck) - glog.Infof("Deleting firewall %v.", fwName) + glog.Infof("DeleteExternalTargetPoolAndChecks(%v): Deleting health check firewall %v.", lbRefStr, fwName) if err := ignoreNotFound(gce.DeleteFirewall(fwName)); err != nil { if isForbidden(err) && gce.OnXPN() { - glog.V(4).Infof("DeleteExternalTargetPoolAndChecks(%v): do not have permission to delete firewall rule (on XPN). Raising event.", hcName) + glog.V(4).Infof("DeleteExternalTargetPoolAndChecks(%v): Do not have permission to delete firewall rule %v (on XPN). Raising event.", lbRefStr, fwName) gce.raiseFirewallChangeNeededEvent(service, FirewallToGCloudDeleteCmd(fwName, gce.NetworkProjectID())) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/kms.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/kms.go deleted file mode 100644 index fbe62f523..000000000 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/kms.go +++ /dev/null @@ -1,167 +0,0 @@ -/* -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 gce - -import ( - "encoding/base64" - "fmt" - "io" - - "github.com/golang/glog" - cloudkms "google.golang.org/api/cloudkms/v1" - "google.golang.org/api/googleapi" - gcfg "gopkg.in/gcfg.v1" - "k8s.io/apiserver/pkg/storage/value/encrypt/envelope" -) - -const ( - // KMSServiceName is the name of the cloudkms provider registered by this cloud. - KMSServiceName = "gcp-cloudkms" - - defaultGKMSKeyRing = "google-container-engine" - defaultGKMSKeyRingLocation = "global" -) - -// gkmsConfig contains the GCE specific KMS configuration for setting up a KMS connection. -type gkmsConfig struct { - Global struct { - // location is the KMS location of the KeyRing to be used for encryption. - // It can be found by checking the available KeyRings in the IAM UI. - // This is not the same as the GCP location of the project. - // +optional - Location string `gcfg:"kms-location"` - // keyRing is the keyRing of the hosted key to be used. The default value is "google-kubernetes". - // +optional - KeyRing string `gcfg:"kms-keyring"` - // cryptoKey is the name of the key to be used for encryption of Data-Encryption-Keys. - CryptoKey string `gcfg:"kms-cryptokey"` - } -} - -// readGCPCloudKMSConfig parses and returns the configuration parameters for Google Cloud KMS. -func readGCPCloudKMSConfig(reader io.Reader) (*gkmsConfig, error) { - cfg := &gkmsConfig{} - if err := gcfg.FatalOnly(gcfg.ReadInto(cfg, reader)); err != nil { - glog.Errorf("Couldn't read Google Cloud KMS config: %v", err) - return nil, err - } - return cfg, nil -} - -// gkmsService provides Encrypt and Decrypt methods which allow cryptographic operations -// using Google Cloud KMS service. -type gkmsService struct { - parentName string - cloudkmsService *cloudkms.Service -} - -// getGCPCloudKMSService provides a Google Cloud KMS based implementation of envelope.Service. -func (gce *GCECloud) getGCPCloudKMSService(config io.Reader) (envelope.Service, error) { - kmsConfig, err := readGCPCloudKMSConfig(config) - if err != nil { - return nil, err - } - - // Hosting on GCE/GKE with Google KMS encryption provider - cloudkmsService := gce.GetKMSService() - - // Set defaults for location and keyRing. - location := kmsConfig.Global.Location - if len(location) == 0 { - location = defaultGKMSKeyRingLocation - } - keyRing := kmsConfig.Global.KeyRing - if len(keyRing) == 0 { - keyRing = defaultGKMSKeyRing - } - - cryptoKey := kmsConfig.Global.CryptoKey - if len(cryptoKey) == 0 { - return nil, fmt.Errorf("missing cryptoKey for cloudprovided KMS: " + KMSServiceName) - } - - parentName := fmt.Sprintf("projects/%s/locations/%s", gce.projectID, location) - - // Create the keyRing if it does not exist yet - _, err = cloudkmsService.Projects.Locations.KeyRings.Create(parentName, - &cloudkms.KeyRing{}).KeyRingId(keyRing).Do() - if err != nil && unrecoverableCreationError(err) { - return nil, err - } - parentName = parentName + "/keyRings/" + keyRing - - // Create the cryptoKey if it does not exist yet - _, err = cloudkmsService.Projects.Locations.KeyRings.CryptoKeys.Create(parentName, - &cloudkms.CryptoKey{ - Purpose: "ENCRYPT_DECRYPT", - }).CryptoKeyId(cryptoKey).Do() - if err != nil && unrecoverableCreationError(err) { - return nil, err - } - parentName = parentName + "/cryptoKeys/" + cryptoKey - - service := &gkmsService{ - parentName: parentName, - cloudkmsService: cloudkmsService, - } - - // Sanity check before startup. For non-GCP clusters, the user's account may not have permissions to create - // the key. We need to verify the existence of the key before apiserver startup. - _, err = service.Encrypt([]byte("test")) - if err != nil { - return nil, fmt.Errorf("failed to encrypt data using Google cloudkms, using key %s. Ensure that the keyRing and cryptoKey exist. Got error: %v", parentName, err) - } - - return service, nil -} - -// Decrypt decrypts a base64 representation of encrypted bytes. -func (t *gkmsService) Decrypt(data string) ([]byte, error) { - resp, err := t.cloudkmsService.Projects.Locations.KeyRings.CryptoKeys. - Decrypt(t.parentName, &cloudkms.DecryptRequest{ - Ciphertext: data, - }).Do() - if err != nil { - return nil, err - } - return base64.StdEncoding.DecodeString(resp.Plaintext) -} - -// Encrypt encrypts bytes, and returns base64 representation of the ciphertext. -func (t *gkmsService) Encrypt(data []byte) (string, error) { - resp, err := t.cloudkmsService.Projects.Locations.KeyRings.CryptoKeys. - Encrypt(t.parentName, &cloudkms.EncryptRequest{ - Plaintext: base64.StdEncoding.EncodeToString(data), - }).Do() - if err != nil { - return "", err - } - return resp.Ciphertext, nil -} - -// unrecoverableCreationError decides if Kubernetes should ignore the encountered Google KMS -// error. Only to be used for errors seen while creating a KeyRing or CryptoKey. -func unrecoverableCreationError(err error) bool { - apiError, isAPIError := err.(*googleapi.Error) - // 409 means the object exists. - // 403 means we do not have permission to create the object, the user must do it. - // Else, it is an unrecoverable error. - if !isAPIError || (apiError.Code != 409 && apiError.Code != 403) { - return true - } - return false -} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/BUILD b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/BUILD index b634bde37..756b145ee 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/BUILD @@ -20,8 +20,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/openstack", deps = [ - "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/service:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", "//pkg/util/mount:go_default_library", @@ -39,10 +39,6 @@ go_library( "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers:go_default_library", - "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members:go_default_library", - "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors:go_default_library", - "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools:go_default_library", - "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/metadata.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/metadata.go index 18fb4a5b0..959d91b92 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/metadata.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/metadata.go @@ -52,7 +52,7 @@ const ( configDriveID = "configDrive" ) -var ErrBadMetadata = errors.New("Invalid OpenStack metadata, got empty uuid") +var ErrBadMetadata = errors.New("invalid OpenStack metadata, got empty uuid") // Assumes the "2012-08-10" meta_data.json format. // See http://docs.openstack.org/user-guide/cli_config_drive.html @@ -89,8 +89,7 @@ func getMetadataFromConfigDrive() (*Metadata, error) { "-o", "device", ).CombinedOutput() if err != nil { - glog.V(2).Infof("Unable to run blkid: %v", err) - return nil, err + return nil, fmt.Errorf("unable to run blkid: %v", err) } dev = strings.TrimSpace(string(out)) } @@ -109,8 +108,7 @@ func getMetadataFromConfigDrive() (*Metadata, error) { err = mounter.Mount(dev, mntdir, "vfat", []string{"ro"}) } if err != nil { - glog.Errorf("Error mounting configdrive %s: %v", dev, err) - return nil, err + return nil, fmt.Errorf("error mounting configdrive %s: %v", dev, err) } defer mounter.Unmount(mntdir) @@ -119,8 +117,7 @@ func getMetadataFromConfigDrive() (*Metadata, error) { f, err := os.Open( filepath.Join(mntdir, configDrivePath)) if err != nil { - glog.Errorf("Error reading %s on config drive: %v", configDrivePath, err) - return nil, err + return nil, fmt.Errorf("error reading %s on config drive: %v", configDrivePath, err) } defer f.Close() @@ -128,18 +125,16 @@ func getMetadataFromConfigDrive() (*Metadata, error) { } func getMetadataFromMetadataService() (*Metadata, error) { - // Try to get JSON from metdata server. + // Try to get JSON from metadata server. glog.V(4).Infof("Attempting to fetch metadata from %s", metadataUrl) resp, err := http.Get(metadataUrl) if err != nil { - glog.V(3).Infof("Cannot read %s: %v", metadataUrl, err) - return nil, err + return nil, fmt.Errorf("error fetching %s: %v", metadataUrl, err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - err = fmt.Errorf("Unexpected status code when reading metadata from %s: %s", metadataUrl, resp.Status) - glog.V(3).Infof("%v", err) + err = fmt.Errorf("unexpected status code when reading metadata from %s: %s", metadataUrl, resp.Status) return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack.go index e8dbd3633..422cc72de 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack.go @@ -42,7 +42,7 @@ import ( "k8s.io/apimachinery/pkg/types" netutil "k8s.io/apimachinery/pkg/util/net" certutil "k8s.io/client-go/util/cert" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller" ) @@ -53,9 +53,9 @@ const ( defaultTimeOut = 60 * time.Second ) -var ErrNotFound = errors.New("Failed to find object") -var ErrMultipleResults = errors.New("Multiple results where only one expected") -var ErrNoAddressFound = errors.New("No address found for host") +var ErrNotFound = errors.New("failed to find object") +var ErrMultipleResults = errors.New("multiple results where only one expected") +var ErrNoAddressFound = errors.New("no address found for host") // encoding.TextUnmarshaler interface for time.Duration type MyDuration struct { @@ -78,10 +78,11 @@ type LoadBalancer struct { } type LoadBalancerOpts struct { - LBVersion string `gcfg:"lb-version"` // overrides autodetection. v1 or v2 + LBVersion string `gcfg:"lb-version"` // overrides autodetection. Only support v2. SubnetId string `gcfg:"subnet-id"` // overrides autodetection. FloatingNetworkId string `gcfg:"floating-network-id"` // If specified, will create floating ip for loadbalancer, or do not create floating ip. LBMethod string `gcfg:"lb-method"` // default to ROUND_ROBIN. + LBProvider string `gcfg:"lb-provider"` CreateMonitor bool `gcfg:"create-monitor"` MonitorDelay MyDuration `gcfg:"monitor-delay"` MonitorTimeout MyDuration `gcfg:"monitor-timeout"` @@ -179,8 +180,7 @@ func (cfg Config) toAuth3Options() tokens3.AuthOptions { func readConfig(config io.Reader) (Config, error) { if config == nil { - err := fmt.Errorf("no OpenStack cloud provider config file given") - return Config{}, err + return Config{}, fmt.Errorf("no OpenStack cloud provider config file given") } var cfg Config @@ -507,39 +507,17 @@ func (os *OpenStack) LoadBalancer() (cloudprovider.LoadBalancer, bool) { return nil, false } + // LBaaS v1 is deprecated in the OpenStack Liberty release. + // Currently kubernetes OpenStack cloud provider just support LBaaS v2. lbVersion := os.lbOpts.LBVersion - if lbVersion == "" { - // No version specified, try newest supported by server - netExts, err := networkExtensions(network) - if err != nil { - glog.Warningf("Failed to list neutron extensions: %v", err) - return nil, false - } - - if netExts["lbaasv2"] { - lbVersion = "v2" - } else if netExts["lbaas"] { - lbVersion = "v1" - } else { - glog.Warningf("Failed to find neutron LBaaS extension (v1 or v2)") - return nil, false - } - glog.V(3).Infof("Using LBaaS extension %v", lbVersion) + if lbVersion != "" && lbVersion != "v2" { + glog.Warningf("Config error: currently only support LBaaS v2, unrecognised lb-version \"%v\"", lbVersion) + return nil, false } glog.V(1).Info("Claiming to support LoadBalancer") - if lbVersion == "v2" { - return &LbaasV2{LoadBalancer{network, compute, os.lbOpts}}, true - } else if lbVersion == "v1" { - // Since LBaaS v1 is deprecated in the OpenStack Liberty release, so deprecate LBaaSV1 at V1.8, then remove LBaaSV1 after V1.9. - // Reference OpenStack doc: https://docs.openstack.org/mitaka/networking-guide/config-lbaas.html - glog.Warningf("The LBaaS v1 of OpenStack cloud provider has been deprecated, Please use LBaaS v2") - return &LbaasV1{LoadBalancer{network, compute, os.lbOpts}}, true - } else { - glog.Warningf("Config error: unrecognised lb-version \"%v\"", lbVersion) - return nil, false - } + return &LbaasV2{LoadBalancer{network, compute, os.lbOpts}}, true } func isNotFound(err error) bool { @@ -549,7 +527,6 @@ func isNotFound(err error) bool { func (os *OpenStack) Zones() (cloudprovider.Zones, bool) { glog.V(1).Info("Claiming to support Zones") - return os, true } @@ -563,8 +540,7 @@ func (os *OpenStack) GetZone() (cloudprovider.Zone, error) { FailureDomain: md.AvailabilityZone, Region: os.region, } - glog.V(1).Infof("Current zone is %v", zone) - + glog.V(4).Infof("Current zone is %v", zone) return zone, nil } @@ -592,7 +568,6 @@ func (os *OpenStack) GetZoneByProviderID(providerID string) (cloudprovider.Zone, Region: os.region, } glog.V(4).Infof("The instance %s in zone %v", srv.Name, zone) - return zone, nil } @@ -618,7 +593,6 @@ func (os *OpenStack) GetZoneByNodeName(nodeName types.NodeName) (cloudprovider.Z Region: os.region, } glog.V(4).Infof("The instance %s in zone %v", srv.Name, zone) - return zone, nil } @@ -653,7 +627,6 @@ func (os *OpenStack) Routes() (cloudprovider.Routes, bool) { } glog.V(1).Info("Claiming to support Routes") - return r, true } @@ -703,19 +676,18 @@ func (os *OpenStack) volumeService(forceVersion string) (volumeService, error) { } default: err_txt := fmt.Sprintf("Config error: unrecognised bs-version \"%v\"", os.bsOpts.BSVersion) - glog.Warningf(err_txt) return nil, errors.New(err_txt) } } func checkMetadataSearchOrder(order string) error { if order == "" { - return errors.New("Invalid value in section [Metadata] with key `search-order`. Value cannot be empty") + return errors.New("invalid value in section [Metadata] with key `search-order`. Value cannot be empty") } elements := strings.Split(order, ",") if len(elements) > 2 { - return errors.New("Invalid value in section [Metadata] with key `search-order`. Value cannot contain more than 2 elements") + return errors.New("invalid value in section [Metadata] with key `search-order`. Value cannot contain more than 2 elements") } for _, id := range elements { @@ -724,9 +696,8 @@ func checkMetadataSearchOrder(order string) error { case configDriveID: case metadataID: default: - errTxt := "Invalid element '%s' found in section [Metadata] with key `search-order`." + - "Supported elements include '%s' and '%s'" - return fmt.Errorf(errTxt, id, configDriveID, metadataID) + return fmt.Errorf("invalid element %q found in section [Metadata] with key `search-order`."+ + "Supported elements include %q and %q", id, configDriveID, metadataID) } } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_client.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_client.go index 916c4a09c..7d18ce42b 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_client.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_client.go @@ -17,10 +17,10 @@ limitations under the License. package openstack import ( + "fmt" + "github.com/gophercloud/gophercloud" "github.com/gophercloud/gophercloud/openstack" - - "github.com/golang/glog" ) func (os *OpenStack) NewNetworkV2() (*gophercloud.ServiceClient, error) { @@ -28,8 +28,7 @@ func (os *OpenStack) NewNetworkV2() (*gophercloud.ServiceClient, error) { Region: os.region, }) if err != nil { - glog.Warningf("Failed to find network v2 endpoint for region %s: %v", os.region, err) - return nil, err + return nil, fmt.Errorf("failed to find network v2 endpoint for region %s: %v", os.region, err) } return network, nil } @@ -39,8 +38,7 @@ func (os *OpenStack) NewComputeV2() (*gophercloud.ServiceClient, error) { Region: os.region, }) if err != nil { - glog.Warningf("Failed to find compute v2 endpoint for region %s: %v", os.region, err) - return nil, err + return nil, fmt.Errorf("failed to find compute v2 endpoint for region %s: %v", os.region, err) } return compute, nil } @@ -50,8 +48,7 @@ func (os *OpenStack) NewBlockStorageV1() (*gophercloud.ServiceClient, error) { Region: os.region, }) if err != nil { - glog.Errorf("Unable to initialize cinder v1 client for region %s: %v", os.region, err) - return nil, err + return nil, fmt.Errorf("unable to initialize cinder v1 client for region %s: %v", os.region, err) } return storage, nil } @@ -61,8 +58,7 @@ func (os *OpenStack) NewBlockStorageV2() (*gophercloud.ServiceClient, error) { Region: os.region, }) if err != nil { - glog.Errorf("Unable to initialize cinder v2 client for region %s: %v", os.region, err) - return nil, err + return nil, fmt.Errorf("unable to initialize cinder v2 client for region %s: %v", os.region, err) } return storage, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_instances.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_instances.go index 68876de57..3cf1733b3 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_instances.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_instances.go @@ -116,7 +116,25 @@ func (i *Instances) ExternalID(name types.NodeName) (string, error) { // InstanceExistsByProviderID returns true if the instance with the given provider id still exists and is running. // If false is returned with no error, the instance will be immediately deleted by the cloud controller manager. func (i *Instances) InstanceExistsByProviderID(providerID string) (bool, error) { - return false, cloudprovider.NotImplemented + instanceID, err := instanceIDFromProviderID(providerID) + if err != nil { + return false, err + } + + server, err := servers.Get(i.compute, instanceID).Extract() + if err != nil { + if isNotFound(err) { + return false, nil + } + return false, err + } + + if server.Status != "ACTIVE" { + glog.Warningf("the instance %s is not active", instanceID) + return false, nil + } + + return true, nil } // InstanceID returns the kubelet's cloud provider ID. diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go index c55f0e22a..19c6fb17a 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go @@ -26,10 +26,6 @@ import ( "github.com/gophercloud/gophercloud" "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions" "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips" - "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members" - "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors" - "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools" - "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips" "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners" "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers" v2monitors "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors" @@ -77,13 +73,6 @@ const ( ServiceAnnotationLoadBalancerInternal = "service.beta.kubernetes.io/openstack-internal-load-balancer" ) -// Deprecated; Since LBaaS v1 is deprecated in the OpenStack Liberty release, Kubernetes deprecated it at V1.8. -// TODO(FengyunPan): remove LBaaS v1 after kubernetes V1.9. -// LoadBalancer implementation for LBaaS v1 -type LbaasV1 struct { - LoadBalancer -} - // LoadBalancer implementation for LBaaS v2 type LbaasV2 struct { LoadBalancer @@ -144,76 +133,6 @@ func getFloatingIPByPortID(client *gophercloud.ServiceClient, portID string) (*f return &floatingIPList[0], nil } -func getPoolByName(client *gophercloud.ServiceClient, name string) (*pools.Pool, error) { - opts := pools.ListOpts{ - Name: name, - } - pager := pools.List(client, opts) - - poolList := make([]pools.Pool, 0, 1) - - err := pager.EachPage(func(page pagination.Page) (bool, error) { - p, err := pools.ExtractPools(page) - if err != nil { - return false, err - } - poolList = append(poolList, p...) - if len(poolList) > 1 { - return false, ErrMultipleResults - } - return true, nil - }) - if err != nil { - if isNotFound(err) { - return nil, ErrNotFound - } - return nil, err - } - - if len(poolList) == 0 { - return nil, ErrNotFound - } else if len(poolList) > 1 { - return nil, ErrMultipleResults - } - - return &poolList[0], nil -} - -func getVipByName(client *gophercloud.ServiceClient, name string) (*vips.VirtualIP, error) { - opts := vips.ListOpts{ - Name: name, - } - pager := vips.List(client, opts) - - vipList := make([]vips.VirtualIP, 0, 1) - - err := pager.EachPage(func(page pagination.Page) (bool, error) { - v, err := vips.ExtractVIPs(page) - if err != nil { - return false, err - } - vipList = append(vipList, v...) - if len(vipList) > 1 { - return false, ErrMultipleResults - } - return true, nil - }) - if err != nil { - if isNotFound(err) { - return nil, ErrNotFound - } - return nil, err - } - - if len(vipList) == 0 { - return nil, ErrNotFound - } else if len(vipList) > 1 { - return nil, ErrMultipleResults - } - - return &vipList[0], nil -} - func getLoadbalancerByName(client *gophercloud.ServiceClient, name string) (*loadbalancers.LoadBalancer, error) { opts := loadbalancers.ListOpts{ Name: name, @@ -416,7 +335,7 @@ func waitLoadbalancerActiveProvisioningStatus(client *gophercloud.ServiceClient, if loadbalancer.ProvisioningStatus == activeStatus { return true, nil } else if loadbalancer.ProvisioningStatus == errorStatus { - return true, fmt.Errorf("Loadbalancer has gone into ERROR state") + return true, fmt.Errorf("loadbalancer has gone into ERROR state") } else { return false, nil } @@ -424,7 +343,7 @@ func waitLoadbalancerActiveProvisioningStatus(client *gophercloud.ServiceClient, }) if err == wait.ErrWaitTimeout { - err = fmt.Errorf("Loadbalancer failed to go into ACTIVE provisioning status within alloted time") + err = fmt.Errorf("loadbalancer failed to go into ACTIVE provisioning status within alloted time") } return provisioningStatus, err } @@ -449,7 +368,7 @@ func waitLoadbalancerDeleted(client *gophercloud.ServiceClient, loadbalancerID s }) if err == wait.ErrWaitTimeout { - err = fmt.Errorf("Loadbalancer failed to delete within the alloted time") + err = fmt.Errorf("loadbalancer failed to delete within the alloted time") } return err @@ -515,6 +434,7 @@ func (lbaas *LbaasV2) createLoadBalancer(service *v1.Service, name string, inter Name: name, Description: fmt.Sprintf("Kubernetes external service %s", name), VipSubnetID: lbaas.opts.SubnetId, + Provider: lbaas.opts.LBProvider, } loadBalancerIP := service.Spec.LoadBalancerIP @@ -524,7 +444,7 @@ func (lbaas *LbaasV2) createLoadBalancer(service *v1.Service, name string, inter loadbalancer, err := loadbalancers.Create(lbaas.network, createOpts).Extract() if err != nil { - return nil, fmt.Errorf("Error creating loadbalancer %v: %v", createOpts, err) + return nil, fmt.Errorf("error creating loadbalancer %v: %v", createOpts, err) } return loadbalancer, nil } @@ -545,7 +465,7 @@ func (lbaas *LbaasV2) GetLoadBalancer(clusterName string, service *v1.Service) ( if portID != "" { floatIP, err := getFloatingIPByPortID(lbaas.network, portID) if err != nil { - return nil, false, fmt.Errorf("Error getting floating ip for port %s: %v", portID, err) + return nil, false, fmt.Errorf("error getting floating ip for port %s: %v", portID, err) } status.Ingress = []v1.LoadBalancerIngress{{IP: floatIP.FloatingIP}} } else { @@ -649,7 +569,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv glog.V(4).Infof("EnsureLoadBalancer(%v, %v, %v, %v, %v, %v, %v)", clusterName, apiService.Namespace, apiService.Name, apiService.Spec.LoadBalancerIP, apiService.Spec.Ports, nodes, apiService.Annotations) if len(nodes) == 0 { - return nil, fmt.Errorf("There are no available nodes for LoadBalancer service %s/%s", apiService.Namespace, apiService.Name) + return nil, fmt.Errorf("there are no available nodes for LoadBalancer service %s/%s", apiService.Namespace, apiService.Name) } if len(lbaas.opts.SubnetId) == 0 { @@ -658,7 +578,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv subnetID, err := getSubnetIDForLB(lbaas.compute, *nodes[0]) if err != nil { glog.Warningf("Failed to find subnet-id for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) - return nil, fmt.Errorf("No subnet-id for service %s/%s : subnet-id not set in cloud provider config, "+ + return nil, fmt.Errorf("no subnet-id for service %s/%s : subnet-id not set in cloud provider config, "+ "and failed to find subnet-id from OpenStack: %v", apiService.Namespace, apiService.Name, err) } lbaas.opts.SubnetId = subnetID @@ -683,10 +603,10 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv glog.V(4).Infof("Ensure an external loadbalancer service.") internalAnnotation = false } else { - return nil, fmt.Errorf("floating-network-id or loadbalancer.openstack.org/floating-network-id should be specified when ensuring an external loadbalancer service.") + return nil, fmt.Errorf("floating-network-id or loadbalancer.openstack.org/floating-network-id should be specified when ensuring an external loadbalancer service") } default: - return nil, fmt.Errorf("unknow service.beta.kubernetes.io/openstack-internal-load-balancer annotation: %v, specify \"true\" or \"false\".", + return nil, fmt.Errorf("unknown service.beta.kubernetes.io/openstack-internal-load-balancer annotation: %v, specify \"true\" or \"false\" ", internal) } @@ -694,17 +614,17 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv // TODO: Convert all error messages to use an event recorder for _, port := range ports { if port.Protocol != v1.ProtocolTCP { - return nil, fmt.Errorf("Only TCP LoadBalancer is supported for openstack load balancers") + return nil, fmt.Errorf("only TCP LoadBalancer is supported for openstack load balancers") } } sourceRanges, err := service.GetLoadBalancerSourceRanges(apiService) if err != nil { - return nil, fmt.Errorf("Failed to get source ranges for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) + return nil, fmt.Errorf("failed to get source ranges for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) } if !service.IsAllowAll(sourceRanges) && !lbaas.opts.ManageSecurityGroups { - return nil, fmt.Errorf("Source range restrictions are not supported for openstack load balancers without managing security groups") + return nil, fmt.Errorf("source range restrictions are not supported for openstack load balancers without managing security groups") } affinity := apiService.Spec.SessionAffinity @@ -722,13 +642,13 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv loadbalancer, err := getLoadbalancerByName(lbaas.network, name) if err != nil { if err != ErrNotFound { - return nil, fmt.Errorf("Error getting loadbalancer %s: %v", name, err) + return nil, fmt.Errorf("error getting loadbalancer %s: %v", name, err) } glog.V(2).Infof("Creating loadbalancer %s", name) loadbalancer, err = lbaas.createLoadBalancer(apiService, name, internalAnnotation) if err != nil { // Unknown error, retry later - return nil, fmt.Errorf("Error creating loadbalancer %s: %v", name, err) + return nil, fmt.Errorf("error creating loadbalancer %s: %v", name, err) } } else { glog.V(2).Infof("LoadBalancer %s already exists", name) @@ -743,7 +663,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv oldListeners, err := getListenersByLoadBalancerID(lbaas.network, loadbalancer.ID) if err != nil { - return nil, fmt.Errorf("Error getting LB %s listeners: %v", name, err) + return nil, fmt.Errorf("error getting LB %s listeners: %v", name, err) } for portIndex, port := range ports { listener := getListenerForPort(oldListeners, port) @@ -757,7 +677,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv }).Extract() if err != nil { // Unknown error, retry later - return nil, fmt.Errorf("Error creating LB listener: %v", err) + return nil, fmt.Errorf("error creating LB listener: %v", err) } waitLoadbalancerActiveProvisioningStatus(lbaas.network, loadbalancer.ID) } @@ -770,7 +690,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv pool, err := getPoolByListenerID(lbaas.network, loadbalancer.ID, listener.ID) if err != nil && err != ErrNotFound { // Unknown error, retry later - return nil, fmt.Errorf("Error getting pool for listener %s: %v", listener.ID, err) + return nil, fmt.Errorf("error getting pool for listener %s: %v", listener.ID, err) } if pool == nil { glog.V(4).Infof("Creating pool for listener %s", listener.ID) @@ -783,7 +703,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv }).Extract() if err != nil { // Unknown error, retry later - return nil, fmt.Errorf("Error creating pool for listener %s: %v", listener.ID, err) + return nil, fmt.Errorf("error creating pool for listener %s: %v", listener.ID, err) } waitLoadbalancerActiveProvisioningStatus(lbaas.network, loadbalancer.ID) } @@ -791,7 +711,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv glog.V(4).Infof("Pool for listener %s: %s", listener.ID, pool.ID) members, err := getMembersByPoolID(lbaas.network, pool.ID) if err != nil && !isNotFound(err) { - return nil, fmt.Errorf("Error getting pool members %s: %v", pool.ID, err) + return nil, fmt.Errorf("error getting pool members %s: %v", pool.ID, err) } for _, node := range nodes { addr, err := nodeAddressForLB(node) @@ -801,7 +721,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv glog.Warningf("Failed to create LB pool member for node %s: %v", node.Name, err) continue } else { - return nil, fmt.Errorf("Error getting address for node %s: %v", node.Name, err) + return nil, fmt.Errorf("error getting address for node %s: %v", node.Name, err) } } @@ -813,7 +733,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv SubnetID: lbaas.opts.SubnetId, }).Extract() if err != nil { - return nil, fmt.Errorf("Error creating LB pool member for node: %s, %v", node.Name, err) + return nil, fmt.Errorf("error creating LB pool member for node: %s, %v", node.Name, err) } waitLoadbalancerActiveProvisioningStatus(lbaas.network, loadbalancer.ID) @@ -830,7 +750,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv glog.V(4).Infof("Deleting obsolete member %s for pool %s address %s", member.ID, pool.ID, member.Address) err := v2pools.DeleteMember(lbaas.network, pool.ID, member.ID).ExtractErr() if err != nil && !isNotFound(err) { - return nil, fmt.Errorf("Error deleting obsolete member %s for pool %s address %s: %v", member.ID, pool.ID, member.Address, err) + return nil, fmt.Errorf("error deleting obsolete member %s for pool %s address %s: %v", member.ID, pool.ID, member.Address, err) } waitLoadbalancerActiveProvisioningStatus(lbaas.network, loadbalancer.ID) } @@ -846,7 +766,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv MaxRetries: int(lbaas.opts.MonitorMaxRetries), }).Extract() if err != nil { - return nil, fmt.Errorf("Error creating LB pool healthmonitor: %v", err) + return nil, fmt.Errorf("error creating LB pool healthmonitor: %v", err) } waitLoadbalancerActiveProvisioningStatus(lbaas.network, loadbalancer.ID) monitorID = monitor.ID @@ -865,7 +785,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv // get pool for listener pool, err := getPoolByListenerID(lbaas.network, loadbalancer.ID, listener.ID) if err != nil && err != ErrNotFound { - return nil, fmt.Errorf("Error getting pool for obsolete listener %s: %v", listener.ID, err) + return nil, fmt.Errorf("error getting pool for obsolete listener %s: %v", listener.ID, err) } if pool != nil { // get and delete monitor @@ -874,21 +794,21 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv glog.V(4).Infof("Deleting obsolete monitor %s for pool %s", monitorID, pool.ID) err = v2monitors.Delete(lbaas.network, monitorID).ExtractErr() if err != nil && !isNotFound(err) { - return nil, fmt.Errorf("Error deleting obsolete monitor %s for pool %s: %v", monitorID, pool.ID, err) + return nil, fmt.Errorf("error deleting obsolete monitor %s for pool %s: %v", monitorID, pool.ID, err) } waitLoadbalancerActiveProvisioningStatus(lbaas.network, loadbalancer.ID) } // get and delete pool members members, err := getMembersByPoolID(lbaas.network, pool.ID) if err != nil && !isNotFound(err) { - return nil, fmt.Errorf("Error getting members for pool %s: %v", pool.ID, err) + return nil, fmt.Errorf("error getting members for pool %s: %v", pool.ID, err) } if members != nil { for _, member := range members { glog.V(4).Infof("Deleting obsolete member %s for pool %s address %s", member.ID, pool.ID, member.Address) err := v2pools.DeleteMember(lbaas.network, pool.ID, member.ID).ExtractErr() if err != nil && !isNotFound(err) { - return nil, fmt.Errorf("Error deleting obsolete member %s for pool %s address %s: %v", member.ID, pool.ID, member.Address, err) + return nil, fmt.Errorf("error deleting obsolete member %s for pool %s address %s: %v", member.ID, pool.ID, member.Address, err) } waitLoadbalancerActiveProvisioningStatus(lbaas.network, loadbalancer.ID) } @@ -897,14 +817,14 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv // delete pool err = v2pools.Delete(lbaas.network, pool.ID).ExtractErr() if err != nil && !isNotFound(err) { - return nil, fmt.Errorf("Error deleting obsolete pool %s for listener %s: %v", pool.ID, listener.ID, err) + return nil, fmt.Errorf("error deleting obsolete pool %s for listener %s: %v", pool.ID, listener.ID, err) } waitLoadbalancerActiveProvisioningStatus(lbaas.network, loadbalancer.ID) } // delete listener err = listeners.Delete(lbaas.network, listener.ID).ExtractErr() if err != nil && !isNotFound(err) { - return nil, fmt.Errorf("Error deleteting obsolete listener: %v", err) + return nil, fmt.Errorf("error deleteting obsolete listener: %v", err) } waitLoadbalancerActiveProvisioningStatus(lbaas.network, loadbalancer.ID) glog.V(2).Infof("Deleted obsolete listener: %s", listener.ID) @@ -913,7 +833,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv portID := loadbalancer.VipPortID floatIP, err := getFloatingIPByPortID(lbaas.network, portID) if err != nil && err != ErrNotFound { - return nil, fmt.Errorf("Error getting floating ip for port %s: %v", portID, err) + return nil, fmt.Errorf("error getting floating ip for port %s: %v", portID, err) } if floatIP == nil && floatingPool != "" && !internalAnnotation { glog.V(4).Infof("Creating floating ip for loadbalancer %s port %s", loadbalancer.ID, portID) @@ -929,7 +849,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Serv floatIP, err = floatingips.Create(lbaas.network, floatIPOpts).Extract() if err != nil { - return nil, fmt.Errorf("Error creating LB floatingip %+v: %v", floatIPOpts, err) + return nil, fmt.Errorf("error creating LB floatingip %+v: %v", floatIPOpts, err) } } @@ -961,7 +881,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser if len(lbaas.opts.NodeSecurityGroupIDs) == 0 { lbaas.opts.NodeSecurityGroupIDs, err = getNodeSecurityGroupIDForLB(lbaas.compute, nodes) if err != nil { - return fmt.Errorf("Failed to find node-security-group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) + return fmt.Errorf("failed to find node-security-group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) } } glog.V(4).Infof("find node-security-group %v for loadbalancer service %s/%s", lbaas.opts.NodeSecurityGroupIDs, apiService.Namespace, apiService.Name) @@ -975,7 +895,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser // get service source ranges sourceRanges, err := service.GetLoadBalancerSourceRanges(apiService) if err != nil { - return fmt.Errorf("Failed to get source ranges for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) + return fmt.Errorf("failed to get source ranges for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) } // ensure security group for LB @@ -988,7 +908,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser // create it later lbSecGroupID = "" } else { - return fmt.Errorf("Error occurred finding security group: %s: %v", lbSecGroupName, err) + return fmt.Errorf("error occurred finding security group: %s: %v", lbSecGroupName, err) } } if len(lbSecGroupID) == 0 { @@ -1000,7 +920,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser lbSecGroup, err := groups.Create(lbaas.network, lbSecGroupCreateOpts).Extract() if err != nil { - return fmt.Errorf("Failed to create Security Group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) + return fmt.Errorf("failed to create Security Group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) } lbSecGroupID = lbSecGroup.ID @@ -1011,7 +931,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser network, _, err := net.ParseCIDR(sourceRange) if err != nil { - return fmt.Errorf("Error parsing source range %s as a CIDR: %v", sourceRange, err) + return fmt.Errorf("error parsing source range %s as a CIDR: %v", sourceRange, err) } if network.To4() == nil { @@ -1031,7 +951,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser _, err = rules.Create(lbaas.network, lbSecGroupRuleCreateOpts).Extract() if err != nil { - return fmt.Errorf("Error occured creating rule for SecGroup %s: %v", lbSecGroup.ID, err) + return fmt.Errorf("error occured creating rule for SecGroup %s: %v", lbSecGroup.ID, err) } } } @@ -1049,7 +969,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser _, err = rules.Create(lbaas.network, lbSecGroupRuleCreateOpts).Extract() if err != nil { - return fmt.Errorf("Error occured creating rule for SecGroup %s: %v", lbSecGroup.ID, err) + return fmt.Errorf("error occured creating rule for SecGroup %s: %v", lbSecGroup.ID, err) } lbSecGroupRuleCreateOpts = rules.CreateOpts{ @@ -1064,7 +984,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser _, err = rules.Create(lbaas.network, lbSecGroupRuleCreateOpts).Extract() if err != nil { - return fmt.Errorf("Error occured creating rule for SecGroup %s: %v", lbSecGroup.ID, err) + return fmt.Errorf("error occured creating rule for SecGroup %s: %v", lbSecGroup.ID, err) } // get security groups of port @@ -1119,7 +1039,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser // Add the rules in the Node Security Group err = createNodeSecurityGroup(lbaas.network, nodeSecurityGroupID, int(port.NodePort), port.Protocol, lbSecGroupID) if err != nil { - return fmt.Errorf("Error occured creating security group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) + return fmt.Errorf("error occured creating security group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) } } } @@ -1137,7 +1057,7 @@ func (lbaas *LbaasV2) UpdateLoadBalancer(clusterName string, service *v1.Service subnetID, err := getSubnetIDForLB(lbaas.compute, *nodes[0]) if err != nil { glog.Warningf("Failed to find subnet-id for loadbalancer service %s/%s: %v", service.Namespace, service.Name, err) - return fmt.Errorf("No subnet-id for service %s/%s : subnet-id not set in cloud provider config, "+ + return fmt.Errorf("no subnet-id for service %s/%s : subnet-id not set in cloud provider config, "+ "and failed to find subnet-id from OpenStack: %v", service.Namespace, service.Name, err) } lbaas.opts.SubnetId = subnetID @@ -1153,7 +1073,7 @@ func (lbaas *LbaasV2) UpdateLoadBalancer(clusterName string, service *v1.Service return err } if loadbalancer == nil { - return fmt.Errorf("Loadbalancer %s does not exist", loadBalancerName) + return fmt.Errorf("loadbalancer %s does not exist", loadBalancerName) } // Get all listeners for this loadbalancer, by "port key". @@ -1165,7 +1085,7 @@ func (lbaas *LbaasV2) UpdateLoadBalancer(clusterName string, service *v1.Service lbListeners := make(map[portKey]listeners.Listener) allListeners, err := getListenersByLoadBalancerID(lbaas.network, loadbalancer.ID) if err != nil { - return fmt.Errorf("Error getting listeners for LB %s: %v", loadBalancerName, err) + return fmt.Errorf("error getting listeners for LB %s: %v", loadBalancerName, err) } for _, l := range allListeners { key := portKey{Protocol: listeners.Protocol(l.Protocol), Port: l.ProtocolPort} @@ -1178,7 +1098,7 @@ func (lbaas *LbaasV2) UpdateLoadBalancer(clusterName string, service *v1.Service for _, listenerID := range listenerIDs { pool, err := getPoolByListenerID(lbaas.network, loadbalancer.ID, listenerID) if err != nil { - return fmt.Errorf("Error getting pool for listener %s: %v", listenerID, err) + return fmt.Errorf("error getting pool for listener %s: %v", listenerID, err) } lbPools[listenerID] = *pool } @@ -1201,19 +1121,19 @@ func (lbaas *LbaasV2) UpdateLoadBalancer(clusterName string, service *v1.Service Port: int(port.Port), }] if !ok { - return fmt.Errorf("Loadbalancer %s does not contain required listener for port %d and protocol %s", loadBalancerName, port.Port, port.Protocol) + return fmt.Errorf("loadbalancer %s does not contain required listener for port %d and protocol %s", loadBalancerName, port.Port, port.Protocol) } // Get pool associated with this listener pool, ok := lbPools[listener.ID] if !ok { - return fmt.Errorf("Loadbalancer %s does not contain required pool for listener %s", loadBalancerName, listener.ID) + return fmt.Errorf("loadbalancer %s does not contain required pool for listener %s", loadBalancerName, listener.ID) } // Find existing pool members (by address) for this port getMembers, err := getMembersByPoolID(lbaas.network, pool.ID) if err != nil { - return fmt.Errorf("Error getting pool members %s: %v", pool.ID, err) + return fmt.Errorf("error getting pool members %s: %v", pool.ID, err) } members := make(map[string]v2pools.Member) for _, member := range getMembers { @@ -1254,7 +1174,7 @@ func (lbaas *LbaasV2) UpdateLoadBalancer(clusterName string, service *v1.Service if lbaas.opts.ManageSecurityGroups { err := lbaas.updateSecurityGroup(clusterName, service, nodes, loadbalancer) if err != nil { - return fmt.Errorf("Failed to update Securty Group for loadbalancer service %s/%s: %v", service.Namespace, service.Name, err) + return fmt.Errorf("failed to update Securty Group for loadbalancer service %s/%s: %v", service.Namespace, service.Name, err) } } @@ -1268,7 +1188,7 @@ func (lbaas *LbaasV2) updateSecurityGroup(clusterName string, apiService *v1.Ser var err error lbaas.opts.NodeSecurityGroupIDs, err = getNodeSecurityGroupIDForLB(lbaas.compute, nodes) if err != nil { - return fmt.Errorf("Failed to find node-security-group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) + return fmt.Errorf("failed to find node-security-group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) } glog.V(4).Infof("find node-security-group %v for loadbalancer service %s/%s", lbaas.opts.NodeSecurityGroupIDs, apiService.Namespace, apiService.Name) @@ -1280,7 +1200,7 @@ func (lbaas *LbaasV2) updateSecurityGroup(clusterName string, apiService *v1.Ser lbSecGroupName := getSecurityGroupName(clusterName, apiService) lbSecGroupID, err := groups.IDFromName(lbaas.network, lbSecGroupName) if err != nil { - return fmt.Errorf("Error occurred finding security group: %s: %v", lbSecGroupName, err) + return fmt.Errorf("error occurred finding security group: %s: %v", lbSecGroupName, err) } ports := apiService.Spec.Ports @@ -1301,14 +1221,13 @@ func (lbaas *LbaasV2) updateSecurityGroup(clusterName string, apiService *v1.Ser } secGroupRules, err := getSecurityGroupRules(lbaas.network, opts) if err != nil && !isNotFound(err) { - msg := fmt.Sprintf("Error finding rules for remote group id %s in security group id %s: %v", lbSecGroupID, removal, err) - return fmt.Errorf(msg) + return fmt.Errorf("error finding rules for remote group id %s in security group id %s: %v", lbSecGroupID, removal, err) } for _, rule := range secGroupRules { res := rules.Delete(lbaas.network, rule.ID) if res.Err != nil && !isNotFound(res.Err) { - return fmt.Errorf("Error occurred deleting security group rule: %s: %v", rule.ID, res.Err) + return fmt.Errorf("error occurred deleting security group rule: %s: %v", rule.ID, res.Err) } } } @@ -1324,8 +1243,7 @@ func (lbaas *LbaasV2) updateSecurityGroup(clusterName string, apiService *v1.Ser } secGroupRules, err := getSecurityGroupRules(lbaas.network, opts) if err != nil && !isNotFound(err) { - msg := fmt.Sprintf("Error finding rules for remote group id %s in security group id %s: %v", lbSecGroupID, nodeSecurityGroupID, err) - return fmt.Errorf(msg) + return fmt.Errorf("error finding rules for remote group id %s in security group id %s: %v", lbSecGroupID, nodeSecurityGroupID, err) } if len(secGroupRules) != 0 { // Do not add rule when find rules for remote group in the Node Security Group @@ -1335,7 +1253,7 @@ func (lbaas *LbaasV2) updateSecurityGroup(clusterName string, apiService *v1.Ser // Add the rules in the Node Security Group err = createNodeSecurityGroup(lbaas.network, nodeSecurityGroupID, int(port.NodePort), port.Protocol, lbSecGroupID) if err != nil { - return fmt.Errorf("Error occured creating security group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) + return fmt.Errorf("error occured creating security group for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) } } } @@ -1372,7 +1290,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1. // get all listeners associated with this loadbalancer listenerList, err := getListenersByLoadBalancerID(lbaas.network, loadbalancer.ID) if err != nil { - return fmt.Errorf("Error getting LB %s listeners: %v", loadbalancer.ID, err) + return fmt.Errorf("error getting LB %s listeners: %v", loadbalancer.ID, err) } // get all pools (and health monitors) associated with this loadbalancer @@ -1381,7 +1299,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1. for _, listener := range listenerList { pool, err := getPoolByListenerID(lbaas.network, loadbalancer.ID, listener.ID) if err != nil && err != ErrNotFound { - return fmt.Errorf("Error getting pool for listener %s: %v", listener.ID, err) + return fmt.Errorf("error getting pool for listener %s: %v", listener.ID, err) } if pool != nil { poolIDs = append(poolIDs, pool.ID) @@ -1397,7 +1315,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1. for _, pool := range poolIDs { membersList, err := getMembersByPoolID(lbaas.network, pool) if err != nil && !isNotFound(err) { - return fmt.Errorf("Error getting pool members %s: %v", pool, err) + return fmt.Errorf("error getting pool members %s: %v", pool, err) } for _, member := range membersList { memberIDs = append(memberIDs, member.ID) @@ -1460,7 +1378,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1. // It is OK when the security group has been deleted by others. return nil } else { - return fmt.Errorf("Error occurred finding security group: %s: %v", lbSecGroupName, err) + return fmt.Errorf("error occurred finding security group: %s: %v", lbSecGroupName, err) } } @@ -1492,7 +1410,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1. for _, rule := range secGroupRules { res := rules.Delete(lbaas.network, rule.ID) if res.Err != nil && !isNotFound(res.Err) { - return fmt.Errorf("Error occurred deleting security group rule: %s: %v", rule.ID, res.Err) + return fmt.Errorf("error occurred deleting security group rule: %s: %v", rule.ID, res.Err) } } } @@ -1501,355 +1419,3 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1. return nil } - -func (lb *LbaasV1) GetLoadBalancer(clusterName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error) { - loadBalancerName := cloudprovider.GetLoadBalancerName(service) - vip, err := getVipByName(lb.network, loadBalancerName) - if err == ErrNotFound { - return nil, false, nil - } - if vip == nil { - return nil, false, err - } - - status := &v1.LoadBalancerStatus{} - - if vip.PortID != "" { - floatingIP, err := getFloatingIPByPortID(lb.network, vip.PortID) - if err != nil { - return nil, false, fmt.Errorf("Error getting floating ip for port %s: %v", vip.PortID, err) - } - status.Ingress = []v1.LoadBalancerIngress{{IP: floatingIP.FloatingIP}} - } else { - status.Ingress = []v1.LoadBalancerIngress{{IP: vip.Address}} - } - - return status, true, err -} - -// TODO: This code currently ignores 'region' and always creates a -// loadbalancer in only the current OpenStack region. We should take -// a list of regions (from config) and query/create loadbalancers in -// each region. - -func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) { - glog.V(4).Infof("EnsureLoadBalancer(%v, %v, %v, %v, %v, %v, %v)", clusterName, apiService.Namespace, apiService.Name, apiService.Spec.LoadBalancerIP, apiService.Spec.Ports, nodes, apiService.Annotations) - - if len(nodes) == 0 { - return nil, fmt.Errorf("There are no available nodes for LoadBalancer service %s/%s", apiService.Namespace, apiService.Name) - } - - if len(lb.opts.SubnetId) == 0 { - // Get SubnetId automatically. - // The LB needs to be configured with instance addresses on the same subnet, so get SubnetId by one node. - subnetID, err := getSubnetIDForLB(lb.compute, *nodes[0]) - if err != nil { - glog.Warningf("Failed to find subnet-id for loadbalancer service %s/%s: %v", apiService.Namespace, apiService.Name, err) - return nil, fmt.Errorf("No subnet-id for service %s/%s : subnet-id not set in cloud provider config, "+ - "and failed to find subnet-id from OpenStack: %v", apiService.Namespace, apiService.Name, err) - } - lb.opts.SubnetId = subnetID - } - - floatingPool := getStringFromServiceAnnotation(apiService, ServiceAnnotationLoadBalancerFloatingNetworkId, lb.opts.FloatingNetworkId) - glog.V(4).Infof("EnsureLoadBalancer using floatingPool: %v", floatingPool) - - var internalAnnotation bool - internal := getStringFromServiceAnnotation(apiService, ServiceAnnotationLoadBalancerInternal, "false") - switch internal { - case "true": - glog.V(4).Infof("Ensure an internal loadbalancer service.") - internalAnnotation = true - case "false": - if len(floatingPool) != 0 { - glog.V(4).Infof("Ensure an external loadbalancer service.") - internalAnnotation = false - } else { - return nil, fmt.Errorf("floating-network-id or loadbalancer.openstack.org/floating-network-id should be specified when ensuring an external loadbalancer service.") - } - default: - return nil, fmt.Errorf("unknow service.beta.kubernetes.io/openstack-internal-load-balancer annotation: %v, specify \"true\" or \"false\".", - internal) - } - - ports := apiService.Spec.Ports - if len(ports) > 1 { - return nil, fmt.Errorf("multiple ports are not supported in openstack v1 load balancers") - } else if len(ports) == 0 { - return nil, fmt.Errorf("no ports provided to openstack load balancer") - } - - // The service controller verified all the protocols match on the ports, just check and use the first one - // TODO: Convert all error messages to use an event recorder - if ports[0].Protocol != v1.ProtocolTCP { - return nil, fmt.Errorf("Only TCP LoadBalancer is supported for openstack load balancers") - } - - affinity := apiService.Spec.SessionAffinity - var persistence *vips.SessionPersistence - switch affinity { - case v1.ServiceAffinityNone: - persistence = nil - case v1.ServiceAffinityClientIP: - persistence = &vips.SessionPersistence{Type: "SOURCE_IP"} - default: - return nil, fmt.Errorf("unsupported load balancer affinity: %v", affinity) - } - - sourceRanges, err := service.GetLoadBalancerSourceRanges(apiService) - if err != nil { - return nil, err - } - - if !service.IsAllowAll(sourceRanges) { - return nil, fmt.Errorf("Source range restrictions are not supported for openstack load balancers") - } - - glog.V(2).Infof("Checking if openstack load balancer already exists: %s", cloudprovider.GetLoadBalancerName(apiService)) - _, exists, err := lb.GetLoadBalancer(clusterName, apiService) - if err != nil { - return nil, fmt.Errorf("error checking if openstack load balancer already exists: %v", err) - } - - // TODO: Implement a more efficient update strategy for common changes than delete & create - // In particular, if we implement hosts update, we can get rid of UpdateHosts - if exists { - err := lb.EnsureLoadBalancerDeleted(clusterName, apiService) - if err != nil { - return nil, fmt.Errorf("error deleting existing openstack load balancer: %v", err) - } - } - - lbmethod := pools.LBMethod(lb.opts.LBMethod) - if lbmethod == "" { - lbmethod = pools.LBMethodRoundRobin - } - name := cloudprovider.GetLoadBalancerName(apiService) - pool, err := pools.Create(lb.network, pools.CreateOpts{ - Name: name, - Protocol: pools.ProtocolTCP, - SubnetID: lb.opts.SubnetId, - LBMethod: lbmethod, - }).Extract() - if err != nil { - return nil, fmt.Errorf("Error creating pool for openstack load balancer %s: %v", name, err) - } - - for _, node := range nodes { - addr, err := nodeAddressForLB(node) - if err != nil { - return nil, err - } - - _, err = members.Create(lb.network, members.CreateOpts{ - PoolID: pool.ID, - ProtocolPort: int(ports[0].NodePort), //Note: only handles single port - Address: addr, - }).Extract() - if err != nil { - return nil, fmt.Errorf("Error creating member for the pool(%s) of openstack load balancer %s: %v", - pool.ID, name, err) - } - } - - var mon *monitors.Monitor - if lb.opts.CreateMonitor { - mon, err = monitors.Create(lb.network, monitors.CreateOpts{ - Type: monitors.TypeTCP, - Delay: int(lb.opts.MonitorDelay.Duration.Seconds()), - Timeout: int(lb.opts.MonitorTimeout.Duration.Seconds()), - MaxRetries: int(lb.opts.MonitorMaxRetries), - }).Extract() - if err != nil { - return nil, fmt.Errorf("Error creating monitor for openstack load balancer %s: %v", name, err) - } - - _, err = pools.AssociateMonitor(lb.network, pool.ID, mon.ID).Extract() - if err != nil { - return nil, fmt.Errorf("Error associating monitor(%s) with pool(%s) for"+ - "openstack load balancer %s: %v", mon.ID, pool.ID, name, err) - } - } - - createOpts := vips.CreateOpts{ - Name: name, - Description: fmt.Sprintf("Kubernetes external service %s", name), - Protocol: "TCP", - ProtocolPort: int(ports[0].Port), //TODO: need to handle multi-port - PoolID: pool.ID, - SubnetID: lb.opts.SubnetId, - Persistence: persistence, - } - - loadBalancerIP := apiService.Spec.LoadBalancerIP - if loadBalancerIP != "" && internalAnnotation { - createOpts.Address = loadBalancerIP - } - - vip, err := vips.Create(lb.network, createOpts).Extract() - if err != nil { - return nil, fmt.Errorf("Error creating vip for openstack load balancer %s: %v", name, err) - } - - status := &v1.LoadBalancerStatus{} - if floatingPool != "" && !internalAnnotation { - floatIPOpts := floatingips.CreateOpts{ - FloatingNetworkID: floatingPool, - PortID: vip.PortID, - } - - loadBalancerIP := apiService.Spec.LoadBalancerIP - if loadBalancerIP != "" { - floatIPOpts.FloatingIP = loadBalancerIP - } - - floatIP, err := floatingips.Create(lb.network, floatIPOpts).Extract() - if err != nil { - return nil, fmt.Errorf("Error creating floatingip for openstack load balancer %s: %v", name, err) - } - - status.Ingress = []v1.LoadBalancerIngress{{IP: floatIP.FloatingIP}} - } else { - status.Ingress = []v1.LoadBalancerIngress{{IP: vip.Address}} - } - - return status, nil - -} - -func (lb *LbaasV1) UpdateLoadBalancer(clusterName string, service *v1.Service, nodes []*v1.Node) error { - loadBalancerName := cloudprovider.GetLoadBalancerName(service) - glog.V(4).Infof("UpdateLoadBalancer(%v, %v, %v)", clusterName, loadBalancerName, nodes) - - vip, err := getVipByName(lb.network, loadBalancerName) - if err != nil { - return err - } - - // Set of member (addresses) that _should_ exist - addrs := map[string]bool{} - for _, node := range nodes { - addr, err := nodeAddressForLB(node) - if err != nil { - return err - } - - addrs[addr] = true - } - - // Iterate over members that _do_ exist - pager := members.List(lb.network, members.ListOpts{PoolID: vip.PoolID}) - err = pager.EachPage(func(page pagination.Page) (bool, error) { - memList, err := members.ExtractMembers(page) - if err != nil { - return false, err - } - - for _, member := range memList { - if _, found := addrs[member.Address]; found { - // Member already exists - delete(addrs, member.Address) - } else { - // Member needs to be deleted - err = members.Delete(lb.network, member.ID).ExtractErr() - if err != nil { - return false, err - } - } - } - - return true, nil - }) - if err != nil { - return err - } - - // Anything left in addrs is a new member that needs to be added - for addr := range addrs { - _, err := members.Create(lb.network, members.CreateOpts{ - PoolID: vip.PoolID, - Address: addr, - ProtocolPort: vip.ProtocolPort, - }).Extract() - if err != nil { - return err - } - } - - return nil -} - -func (lb *LbaasV1) EnsureLoadBalancerDeleted(clusterName string, service *v1.Service) error { - loadBalancerName := cloudprovider.GetLoadBalancerName(service) - glog.V(4).Infof("EnsureLoadBalancerDeleted(%v, %v)", clusterName, loadBalancerName) - - vip, err := getVipByName(lb.network, loadBalancerName) - if err != nil && err != ErrNotFound { - return err - } - - if vip != nil && vip.PortID != "" { - floatingIP, err := getFloatingIPByPortID(lb.network, vip.PortID) - if err != nil && !isNotFound(err) { - return err - } - if floatingIP != nil { - err = floatingips.Delete(lb.network, floatingIP.ID).ExtractErr() - if err != nil && !isNotFound(err) { - return err - } - } - } - - // We have to delete the VIP before the pool can be deleted, - // so no point continuing if this fails. - if vip != nil { - err := vips.Delete(lb.network, vip.ID).ExtractErr() - if err != nil && !isNotFound(err) { - return err - } - } - - var pool *pools.Pool - if vip != nil { - pool, err = pools.Get(lb.network, vip.PoolID).Extract() - if err != nil && !isNotFound(err) { - return err - } - } else { - // The VIP is gone, but it is conceivable that a Pool - // still exists that we failed to delete on some - // previous occasion. Make a best effort attempt to - // cleanup any pools with the same name as the VIP. - pool, err = getPoolByName(lb.network, service.Name) - if err != nil && err != ErrNotFound { - return err - } - } - - if pool != nil { - for _, monId := range pool.MonitorIDs { - _, err = pools.DisassociateMonitor(lb.network, pool.ID, monId).Extract() - if err != nil { - return err - } - - err = monitors.Delete(lb.network, monId).ExtractErr() - if err != nil && !isNotFound(err) { - return err - } - } - for _, memberId := range pool.MemberIDs { - err = members.Delete(lb.network, memberId).ExtractErr() - if err != nil && !isNotFound(err) { - return err - } - } - err = pools.Delete(lb.network, pool.ID).ExtractErr() - if err != nil && !isNotFound(err) { - return err - } - } - - return nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_test.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_test.go index 2c5f0886d..8b08d3172 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_test.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_test.go @@ -169,6 +169,7 @@ func TestCheckOpenStackOpts(t *testing.T) { SubnetId: "6261548e-ffde-4bc7-bd22-59c83578c5ef", FloatingNetworkId: "38b8b5f9-64dc-4424-bf86-679595714786", LBMethod: "ROUND_ROBIN", + LBProvider: "haproxy", CreateMonitor: true, MonitorDelay: delay, MonitorTimeout: timeout, @@ -227,7 +228,7 @@ func TestCheckOpenStackOpts(t *testing.T) { SearchOrder: "", }, }, - expectedError: fmt.Errorf("Invalid value in section [Metadata] with key `search-order`. Value cannot be empty"), + expectedError: fmt.Errorf("invalid value in section [Metadata] with key `search-order`. Value cannot be empty"), }, { name: "test5", @@ -237,7 +238,7 @@ func TestCheckOpenStackOpts(t *testing.T) { SearchOrder: "value1,value2,value3", }, }, - expectedError: fmt.Errorf("Invalid value in section [Metadata] with key `search-order`. Value cannot contain more than 2 elements"), + expectedError: fmt.Errorf("invalid value in section [Metadata] with key `search-order`. Value cannot contain more than 2 elements"), }, { name: "test6", @@ -247,8 +248,8 @@ func TestCheckOpenStackOpts(t *testing.T) { SearchOrder: "value1", }, }, - expectedError: fmt.Errorf("Invalid element '%s' found in section [Metadata] with key `search-order`."+ - "Supported elements include '%s' and '%s'", "value1", configDriveID, metadataID), + expectedError: fmt.Errorf("invalid element %q found in section [Metadata] with key `search-order`."+ + "Supported elements include %q and %q", "value1", configDriveID, metadataID), }, } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_volumes.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_volumes.go index f670bce6d..ebe7970f7 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_volumes.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/openstack/openstack_volumes.go @@ -17,7 +17,6 @@ limitations under the License. package openstack import ( - "errors" "fmt" "io/ioutil" "path" @@ -127,8 +126,7 @@ func (volumes *VolumesV1) getVolume(volumeID string) (Volume, error) { timeTaken := time.Since(startTime).Seconds() recordOpenstackOperationMetric("get_v1_volume", timeTaken, err) if err != nil { - glog.Errorf("Error occurred getting volume by ID: %s", volumeID) - return Volume{}, err + return Volume{}, fmt.Errorf("error occurred getting volume by ID: %s, err: %v", volumeID, err) } volume := Volume{ @@ -151,8 +149,7 @@ func (volumes *VolumesV2) getVolume(volumeID string) (Volume, error) { timeTaken := time.Since(startTime).Seconds() recordOpenstackOperationMetric("get_v2_volume", timeTaken, err) if err != nil { - glog.Errorf("Error occurred getting volume by ID: %s", volumeID) - return Volume{}, err + return Volume{}, fmt.Errorf("error occurred getting volume by ID: %s, err: %v", volumeID, err) } volume := Volume{ @@ -174,10 +171,6 @@ func (volumes *VolumesV1) deleteVolume(volumeID string) error { err := volumes_v1.Delete(volumes.blockstorage, volumeID).ExtractErr() timeTaken := time.Since(startTime).Seconds() recordOpenstackOperationMetric("delete_v1_volume", timeTaken, err) - if err != nil { - glog.Errorf("Cannot delete volume %s: %v", volumeID, err) - } - return err } @@ -186,10 +179,6 @@ func (volumes *VolumesV2) deleteVolume(volumeID string) error { err := volumes_v2.Delete(volumes.blockstorage, volumeID).ExtractErr() timeTaken := time.Since(startTime).Seconds() recordOpenstackOperationMetric("delete_v2_volume", timeTaken, err) - if err != nil { - glog.Errorf("Cannot delete volume %s: %v", volumeID, err) - } - return err } @@ -200,7 +189,6 @@ func (os *OpenStack) OperationPending(diskName string) (bool, string, error) { } volumeStatus := volume.Status if volumeStatus == VolumeErrorStatus { - glog.Errorf("status of volume %s is %s", diskName, volumeStatus) return false, volumeStatus, nil } if volumeStatus == VolumeAvailableStatus || volumeStatus == VolumeInUseStatus || volumeStatus == VolumeDeletedStatus { @@ -226,9 +214,7 @@ func (os *OpenStack) AttachDisk(instanceID, volumeID string) (string, error) { glog.V(4).Infof("Disk %s is already attached to instance %s", volumeID, instanceID) return volume.ID, nil } - errmsg := fmt.Sprintf("Disk %s is attached to a different instance (%s)", volumeID, volume.AttachedServerId) - glog.V(2).Infof(errmsg) - return "", errors.New(errmsg) + return "", fmt.Errorf("disk %s is attached to a different instance (%s)", volumeID, volume.AttachedServerId) } startTime := time.Now() @@ -239,8 +225,7 @@ func (os *OpenStack) AttachDisk(instanceID, volumeID string) (string, error) { timeTaken := time.Since(startTime).Seconds() recordOpenstackOperationMetric("attach_disk", timeTaken, err) if err != nil { - glog.Errorf("Failed to attach %s volume to %s compute: %v", volumeID, instanceID, err) - return "", err + return "", fmt.Errorf("failed to attach %s volume to %s compute: %v", volumeID, instanceID, err) } glog.V(2).Infof("Successfully attached %s volume to %s compute", volumeID, instanceID) return volume.ID, nil @@ -259,18 +244,14 @@ func (os *OpenStack) DetachDisk(instanceID, volumeID string) error { } if volume.Status != VolumeInUseStatus { - errmsg := fmt.Sprintf("can not detach volume %s, its status is %s.", volume.Name, volume.Status) - glog.Errorf(errmsg) - return errors.New(errmsg) + return fmt.Errorf("can not detach volume %s, its status is %s", volume.Name, volume.Status) } cClient, err := os.NewComputeV2() if err != nil { return err } if volume.AttachedServerId != instanceID { - errMsg := fmt.Sprintf("Disk: %s has no attachments or is not attached to compute: %s", volume.Name, instanceID) - glog.Errorf(errMsg) - return errors.New(errMsg) + return fmt.Errorf("disk: %s has no attachments or is not attached to compute: %s", volume.Name, instanceID) } else { startTime := time.Now() // This is a blocking call and effects kubelet's performance directly. @@ -279,8 +260,7 @@ func (os *OpenStack) DetachDisk(instanceID, volumeID string) error { timeTaken := time.Since(startTime).Seconds() recordOpenstackOperationMetric("detach_disk", timeTaken, err) if err != nil { - glog.Errorf("Failed to delete volume %s from compute %s attached %v", volume.ID, instanceID, err) - return err + return fmt.Errorf("failed to delete volume %s from compute %s attached %v", volume.ID, instanceID, err) } glog.V(2).Infof("Successfully detached volume: %s from compute: %s", volume.ID, instanceID) } @@ -291,9 +271,8 @@ func (os *OpenStack) DetachDisk(instanceID, volumeID string) error { // getVolume retrieves Volume by its ID. func (os *OpenStack) getVolume(volumeID string) (Volume, error) { volumes, err := os.volumeService("") - if err != nil || volumes == nil { - glog.Errorf("Unable to initialize cinder client for region: %s", os.region) - return Volume{}, err + if err != nil { + return Volume{}, fmt.Errorf("unable to initialize cinder client for region: %s, err: %v", os.region, err) } return volumes.getVolume(volumeID) } @@ -301,9 +280,8 @@ func (os *OpenStack) getVolume(volumeID string) (Volume, error) { // CreateVolume creates a volume of given size (in GiB) func (os *OpenStack) CreateVolume(name string, size int, vtype, availability string, tags *map[string]string) (string, string, bool, error) { volumes, err := os.volumeService("") - if err != nil || volumes == nil { - glog.Errorf("Unable to initialize cinder client for region: %s", os.region) - return "", "", os.bsOpts.IgnoreVolumeAZ, err + if err != nil { + return "", "", os.bsOpts.IgnoreVolumeAZ, fmt.Errorf("unable to initialize cinder client for region: %s, err: %v", os.region, err) } opts := VolumeCreateOpts{ @@ -319,8 +297,7 @@ func (os *OpenStack) CreateVolume(name string, size int, vtype, availability str volumeID, volumeAZ, err := volumes.createVolume(opts) if err != nil { - glog.Errorf("Failed to create a %d GB volume: %v", size, err) - return "", "", os.bsOpts.IgnoreVolumeAZ, err + return "", "", os.bsOpts.IgnoreVolumeAZ, fmt.Errorf("failed to create a %d GB volume: %v", size, err) } glog.Infof("Created volume %v in Availability Zone: %v Ignore volume AZ: %v", volumeID, volumeAZ, os.bsOpts.IgnoreVolumeAZ) @@ -365,15 +342,11 @@ func (os *OpenStack) DeleteVolume(volumeID string) error { } volumes, err := os.volumeService("") - if err != nil || volumes == nil { - glog.Errorf("Unable to initialize cinder client for region: %s", os.region) - return err + if err != nil { + return fmt.Errorf("unable to initialize cinder client for region: %s, err: %v", os.region, err) } err = volumes.deleteVolume(volumeID) - if err != nil { - glog.Errorf("Cannot delete volume %s: %v", volumeID, err) - } return err } @@ -387,9 +360,7 @@ func (os *OpenStack) GetAttachmentDiskPath(instanceID, volumeID string) (string, return "", err } if volume.Status != VolumeInUseStatus { - errmsg := fmt.Sprintf("can not get device path of volume %s, its status is %s.", volume.Name, volume.Status) - glog.Errorf(errmsg) - return "", errors.New(errmsg) + return "", fmt.Errorf("can not get device path of volume %s, its status is %s ", volume.Name, volume.Status) } if volume.AttachedServerId != "" { if instanceID == volume.AttachedServerId { @@ -397,12 +368,10 @@ func (os *OpenStack) GetAttachmentDiskPath(instanceID, volumeID string) (string, // see http://developer.openstack.org/api-ref-blockstorage-v1.html return volume.AttachedDevice, nil } else { - errMsg := fmt.Sprintf("Disk %q is attached to a different compute: %q, should be detached before proceeding", volumeID, volume.AttachedServerId) - glog.Errorf(errMsg) - return "", errors.New(errMsg) + return "", fmt.Errorf("disk %q is attached to a different compute: %q, should be detached before proceeding", volumeID, volume.AttachedServerId) } } - return "", fmt.Errorf("volume %s has no ServerId.", volumeID) + return "", fmt.Errorf("volume %s has no ServerId", volumeID) } // DiskIsAttached queries if a volume is attached to a compute instance diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/photon/BUILD b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/photon/BUILD index 875fec354..052159a13 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/photon/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/photon/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["photon.go"], importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/photon", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/photon/photon.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/photon/photon.go index 0abb8149f..5071de5c5 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/photon/photon.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/photon/photon.go @@ -38,7 +38,7 @@ import ( "gopkg.in/gcfg.v1" "k8s.io/api/core/v1" k8stypes "k8s.io/apimachinery/pkg/types" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller" ) diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/BUILD b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/BUILD index 598a2700a..f5b75b0c9 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", "//pkg/cloudprovider/providers/vsphere/vclib/diskmanagers:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vsphere.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vsphere.go index b89683577..31d2b64ec 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vsphere.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vsphere.go @@ -34,7 +34,7 @@ import ( "golang.org/x/net/context" "k8s.io/api/core/v1" k8stypes "k8s.io/apimachinery/pkg/types" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers" @@ -380,7 +380,35 @@ func (vs *VSphere) ExternalID(nodeName k8stypes.NodeName) (string, error) { // InstanceExistsByProviderID returns true if the instance with the given provider id still exists and is running. // If false is returned with no error, the instance will be immediately deleted by the cloud controller manager. func (vs *VSphere) InstanceExistsByProviderID(providerID string) (bool, error) { - return false, cloudprovider.NotImplemented + vmName := path.Base(providerID) + nodeName := vmNameToNodeName(vmName) + // Create context + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + // Ensure client is logged in and session is valid + err := vs.conn.Connect(ctx) + if err != nil { + return false, err + } + vm, err := vs.getVMByName(ctx, nodeName) + if err != nil { + if vclib.IsNotFound(err) { + return false, nil + } + glog.Errorf("Failed to get VM object for node: %q. err: +%v", nodeNameToVMName(nodeName), err) + return false, err + } + + isActive, err := vm.IsActive(ctx) + if err != nil { + glog.Errorf("Failed to check whether node %q is active. err: %+v.", nodeNameToVMName(nodeName), err) + return false, err + } + if !isActive { + return false, nil + } + + return true, nil } // InstanceID returns the cloud provider ID of the node with the specified Name. @@ -555,7 +583,7 @@ func (vs *VSphere) DiskIsAttached(volPath string, nodeName k8stypes.NodeName) (b glog.Errorf("Failed to get VM object for node: %q. err: +%v", vSphereInstance, err) return false, err } - + volPath = vclib.RemoveClusterFromVDiskPath(volPath) attached, err := vm.IsDiskAttached(ctx, volPath) if err != nil { glog.Errorf("DiskIsAttached failed to determine whether disk %q is still attached on node %q", @@ -593,6 +621,7 @@ func (vs *VSphere) DisksAreAttached(nodeVolumes map[k8stypes.NodeName][]string) vmVolumes := make(map[string][]string) for nodeName, volPaths := range nodeVolumes { for i, volPath := range volPaths { + volPath = vclib.RemoveClusterFromVDiskPath(volPath) // Get the canonical volume path for volPath. canonicalVolumePath, err := getcanonicalVolumePath(ctx, dc, volPath) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/BUILD index 7e31009c9..287ff8d32 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/BUILD @@ -15,9 +15,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/controller/testutil:go_default_library", "//pkg/securitycontext:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", @@ -52,10 +52,11 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/v1/pod:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/serviceaccount:go_default_library", "//pkg/util/hash:go_default_library", "//pkg/util/taints:go_default_library", @@ -82,13 +83,11 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/serviceaccount:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", - "//vendor/k8s.io/client-go/tools/reference:go_default_library", "//vendor/k8s.io/client-go/util/integer:go_default_library", "//vendor/k8s.io/client-go/util/retry:go_default_library", ], @@ -108,6 +107,7 @@ filegroup( "//pkg/controller/bootstrap:all-srcs", "//pkg/controller/certificates:all-srcs", "//pkg/controller/cloud:all-srcs", + "//pkg/controller/clusterroleaggregation:all-srcs", "//pkg/controller/cronjob:all-srcs", "//pkg/controller/daemon:all-srcs", "//pkg/controller/deployment:all-srcs", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/BUILD index fe86ddc55..6dfcd204c 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/BUILD @@ -18,8 +18,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/bootstrap", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/bootstrap/api:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", @@ -42,7 +42,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/bootstrap", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/bootstrap/api:go_default_library", "//pkg/util/metrics:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/bootstrapsigner.go b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/bootstrapsigner.go index 07a987658..5bb53a448 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/bootstrapsigner.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/bootstrapsigner.go @@ -33,7 +33,7 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" "k8s.io/kubernetes/pkg/util/metrics" ) @@ -92,26 +92,28 @@ type BootstrapSigner struct { // NewBootstrapSigner returns a new *BootstrapSigner. // // TODO: Switch to shared informers -func NewBootstrapSigner(cl clientset.Interface, options BootstrapSignerOptions) *BootstrapSigner { +func NewBootstrapSigner(cl clientset.Interface, options BootstrapSignerOptions) (*BootstrapSigner, error) { e := &BootstrapSigner{ client: cl, configMapKey: options.ConfigMapNamespace + "/" + options.ConfigMapName, secretNamespace: options.TokenSecretNamespace, syncQueue: workqueue.NewNamed("bootstrap_signer_queue"), } - if cl.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("bootstrap_signer", cl.Core().RESTClient().GetRateLimiter()) + if cl.CoreV1().RESTClient().GetRateLimiter() != nil { + if err := metrics.RegisterMetricAndTrackRateLimiterUsage("bootstrap_signer", cl.CoreV1().RESTClient().GetRateLimiter()); err != nil { + return nil, err + } } configMapSelector := fields.SelectorFromSet(map[string]string{api.ObjectNameField: options.ConfigMapName}) e.configMaps, e.configMapsController = cache.NewInformer( &cache.ListWatch{ ListFunc: func(lo metav1.ListOptions) (runtime.Object, error) { lo.FieldSelector = configMapSelector.String() - return e.client.Core().ConfigMaps(options.ConfigMapNamespace).List(lo) + return e.client.CoreV1().ConfigMaps(options.ConfigMapNamespace).List(lo) }, WatchFunc: func(lo metav1.ListOptions) (watch.Interface, error) { lo.FieldSelector = configMapSelector.String() - return e.client.Core().ConfigMaps(options.ConfigMapNamespace).Watch(lo) + return e.client.CoreV1().ConfigMaps(options.ConfigMapNamespace).Watch(lo) }, }, &v1.ConfigMap{}, @@ -127,11 +129,11 @@ func NewBootstrapSigner(cl clientset.Interface, options BootstrapSignerOptions) &cache.ListWatch{ ListFunc: func(lo metav1.ListOptions) (runtime.Object, error) { lo.FieldSelector = secretSelector.String() - return e.client.Core().Secrets(e.secretNamespace).List(lo) + return e.client.CoreV1().Secrets(e.secretNamespace).List(lo) }, WatchFunc: func(lo metav1.ListOptions) (watch.Interface, error) { lo.FieldSelector = secretSelector.String() - return e.client.Core().Secrets(e.secretNamespace).Watch(lo) + return e.client.CoreV1().Secrets(e.secretNamespace).Watch(lo) }, }, &v1.Secret{}, @@ -142,7 +144,7 @@ func NewBootstrapSigner(cl clientset.Interface, options BootstrapSignerOptions) DeleteFunc: func(_ interface{}) { e.pokeConfigMapSync() }, }, ) - return e + return e, nil } // Run runs controller loops and returns when they are done @@ -227,7 +229,7 @@ func (e *BootstrapSigner) signConfigMap() { } func (e *BootstrapSigner) updateConfigMap(cm *v1.ConfigMap) { - _, err := e.client.Core().ConfigMaps(cm.Namespace).Update(cm) + _, err := e.client.CoreV1().ConfigMaps(cm.Namespace).Update(cm) if err != nil && !apierrors.IsConflict(err) && !apierrors.IsNotFound(err) { glog.V(3).Infof("Error updating ConfigMap: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/bootstrapsigner_test.go b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/bootstrapsigner_test.go index 79e707748..ba9238230 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/bootstrapsigner_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/bootstrapsigner_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" ) @@ -36,10 +36,14 @@ func init() { const testTokenID = "abc123" -func newBootstrapSigner() (*BootstrapSigner, *fake.Clientset) { +func newBootstrapSigner() (*BootstrapSigner, *fake.Clientset, error) { options := DefaultBootstrapSignerOptions() cl := fake.NewSimpleClientset() - return NewBootstrapSigner(cl, options), cl + bsc, err := NewBootstrapSigner(cl, options) + if err != nil { + return nil, nil, err + } + return bsc, cl, nil } func newConfigMap(tokenID, signature string) *v1.ConfigMap { @@ -60,13 +64,19 @@ func newConfigMap(tokenID, signature string) *v1.ConfigMap { } func TestNoConfigMap(t *testing.T) { - signer, cl := newBootstrapSigner() + signer, cl, err := newBootstrapSigner() + if err != nil { + t.Fatalf("error creating BootstrapSigner: %v", err) + } signer.signConfigMap() verifyActions(t, []core.Action{}, cl.Actions()) } func TestSimpleSign(t *testing.T) { - signer, cl := newBootstrapSigner() + signer, cl, err := newBootstrapSigner() + if err != nil { + t.Fatalf("error creating BootstrapSigner: %v", err) + } cm := newConfigMap("", "") signer.configMaps.Add(cm) @@ -87,7 +97,10 @@ func TestSimpleSign(t *testing.T) { } func TestNoSignNeeded(t *testing.T) { - signer, cl := newBootstrapSigner() + signer, cl, err := newBootstrapSigner() + if err != nil { + t.Fatalf("error creating BootstrapSigner: %v", err) + } cm := newConfigMap(testTokenID, "eyJhbGciOiJIUzI1NiIsImtpZCI6ImFiYzEyMyJ9..QSxpUG7Q542CirTI2ECPSZjvBOJURUW5a7XqFpNI958") signer.configMaps.Add(cm) @@ -102,7 +115,10 @@ func TestNoSignNeeded(t *testing.T) { } func TestUpdateSignature(t *testing.T) { - signer, cl := newBootstrapSigner() + signer, cl, err := newBootstrapSigner() + if err != nil { + t.Fatalf("error creating BootstrapSigner: %v", err) + } cm := newConfigMap(testTokenID, "old signature") signer.configMaps.Add(cm) @@ -123,7 +139,10 @@ func TestUpdateSignature(t *testing.T) { } func TestRemoveSignature(t *testing.T) { - signer, cl := newBootstrapSigner() + signer, cl, err := newBootstrapSigner() + if err != nil { + t.Fatalf("error creating BootstrapSigner: %v", err) + } cm := newConfigMap(testTokenID, "old signature") signer.configMaps.Add(cm) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/common_test.go b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/common_test.go index c4937deff..a61ebc218 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/common_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/common_test.go @@ -24,7 +24,7 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api/helper" + "k8s.io/kubernetes/pkg/apis/core/helper" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" ) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/tokencleaner.go b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/tokencleaner.go index 38328edda..6c099a4c7 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/tokencleaner.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/tokencleaner.go @@ -30,7 +30,7 @@ import ( "k8s.io/apimachinery/pkg/watch" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" "k8s.io/kubernetes/pkg/util/metrics" ) @@ -66,13 +66,15 @@ type TokenCleaner struct { // NewTokenCleaner returns a new *NewTokenCleaner. // // TODO: Switch to shared informers -func NewTokenCleaner(cl clientset.Interface, options TokenCleanerOptions) *TokenCleaner { +func NewTokenCleaner(cl clientset.Interface, options TokenCleanerOptions) (*TokenCleaner, error) { e := &TokenCleaner{ client: cl, tokenSecretNamespace: options.TokenSecretNamespace, } - if cl.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("token_cleaner", cl.Core().RESTClient().GetRateLimiter()) + if cl.CoreV1().RESTClient().GetRateLimiter() != nil { + if err := metrics.RegisterMetricAndTrackRateLimiterUsage("token_cleaner", cl.CoreV1().RESTClient().GetRateLimiter()); err != nil { + return nil, err + } } secretSelector := fields.SelectorFromSet(map[string]string{api.SecretTypeField: string(bootstrapapi.SecretTypeBootstrapToken)}) @@ -80,11 +82,11 @@ func NewTokenCleaner(cl clientset.Interface, options TokenCleanerOptions) *Token &cache.ListWatch{ ListFunc: func(lo metav1.ListOptions) (runtime.Object, error) { lo.FieldSelector = secretSelector.String() - return e.client.Core().Secrets(e.tokenSecretNamespace).List(lo) + return e.client.CoreV1().Secrets(e.tokenSecretNamespace).List(lo) }, WatchFunc: func(lo metav1.ListOptions) (watch.Interface, error) { lo.FieldSelector = secretSelector.String() - return e.client.Core().Secrets(e.tokenSecretNamespace).Watch(lo) + return e.client.CoreV1().Secrets(e.tokenSecretNamespace).Watch(lo) }, }, &v1.Secret{}, @@ -94,7 +96,7 @@ func NewTokenCleaner(cl clientset.Interface, options TokenCleanerOptions) *Token UpdateFunc: func(oldSecret, newSecret interface{}) { e.evalSecret(newSecret) }, }, ) - return e + return e, nil } // Run runs controller loops and returns when they are done @@ -118,7 +120,7 @@ func (tc *TokenCleaner) evalSecret(o interface{}) { if len(secret.UID) > 0 { options = &metav1.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &secret.UID}} } - err := tc.client.Core().Secrets(secret.Namespace).Delete(secret.Name, options) + err := tc.client.CoreV1().Secrets(secret.Namespace).Delete(secret.Name, options) // NotFound isn't a real error (it's already been deleted) // Conflict isn't a real error (the UID precondition failed) if err != nil && !apierrors.IsConflict(err) && !apierrors.IsNotFound(err) { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/tokencleaner_test.go b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/tokencleaner_test.go index e2bc1ff2b..47059dd4d 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/tokencleaner_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/bootstrap/tokencleaner_test.go @@ -25,21 +25,28 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func init() { spew.Config.DisableMethods = true } -func newTokenCleaner() (*TokenCleaner, *fake.Clientset) { +func newTokenCleaner() (*TokenCleaner, *fake.Clientset, error) { options := DefaultTokenCleanerOptions() cl := fake.NewSimpleClientset() - return NewTokenCleaner(cl, options), cl + tcc, err := NewTokenCleaner(cl, options) + if err != nil { + return nil, nil, err + } + return tcc, cl, nil } func TestCleanerNoExpiration(t *testing.T) { - cleaner, cl := newTokenCleaner() + cleaner, cl, err := newTokenCleaner() + if err != nil { + t.Fatalf("error creating TokenCleaner: %v", err) + } secret := newTokenSecret("tokenID", "tokenSecret") cleaner.secrets.Add(secret) @@ -52,7 +59,10 @@ func TestCleanerNoExpiration(t *testing.T) { } func TestCleanerExpired(t *testing.T) { - cleaner, cl := newTokenCleaner() + cleaner, cl, err := newTokenCleaner() + if err != nil { + t.Fatalf("error creating TokenCleaner: %v", err) + } secret := newTokenSecret("tokenID", "tokenSecret") addSecretExpiration(secret, timeString(-time.Hour)) @@ -71,7 +81,10 @@ func TestCleanerExpired(t *testing.T) { } func TestCleanerNotExpired(t *testing.T) { - cleaner, cl := newTokenCleaner() + cleaner, cl, err := newTokenCleaner() + if err != nil { + t.Fatalf("error creating TokenCleaner: %v", err) + } secret := newTokenSecret("tokenID", "tokenSecret") addSecretExpiration(secret, timeString(time.Hour)) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/certificates/approver/sarapprove.go b/vendor/k8s.io/kubernetes/pkg/controller/certificates/approver/sarapprove.go index d2eb5ac5e..b8061fff1 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/certificates/approver/sarapprove.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/certificates/approver/sarapprove.go @@ -44,7 +44,7 @@ type sarApprover struct { recognizers []csrRecognizer } -func NewCSRApprovingController(client clientset.Interface, csrInformer certificatesinformers.CertificateSigningRequestInformer) (*certificates.CertificateController, error) { +func NewCSRApprovingController(client clientset.Interface, csrInformer certificatesinformers.CertificateSigningRequestInformer) *certificates.CertificateController { approver := &sarApprover{ client: client, recognizers: recognizers(), @@ -106,7 +106,7 @@ func (a *sarApprover) handle(csr *capi.CertificateSigningRequest) error { } if approved { appendApprovalCondition(csr, r.successMessage) - _, err = a.client.Certificates().CertificateSigningRequests().UpdateApproval(csr) + _, err = a.client.CertificatesV1beta1().CertificateSigningRequests().UpdateApproval(csr) if err != nil { return fmt.Errorf("error updating approval for csr: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/certificates/certificate_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/certificates/certificate_controller.go index 2caa30de3..b07d2fb5a 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/certificates/certificate_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/certificates/certificate_controller.go @@ -53,11 +53,11 @@ func NewCertificateController( kubeClient clientset.Interface, csrInformer certificatesinformers.CertificateSigningRequestInformer, handler func(*certificates.CertificateSigningRequest) error, -) (*CertificateController, error) { +) *CertificateController { // Send events to the apiserver eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.Core().RESTClient()).Events("")}) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) cc := &CertificateController{ kubeClient: kubeClient, @@ -97,8 +97,7 @@ func NewCertificateController( }) cc.csrLister = csrInformer.Lister() cc.csrsSynced = csrInformer.Informer().HasSynced - cc.handler = handler - return cc, nil + return cc } // Run the main goroutine responsible for watching and syncing jobs. diff --git a/vendor/k8s.io/kubernetes/pkg/controller/certificates/certificate_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/certificates/certificate_controller_test.go index 20a858b4b..8805fbfce 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/certificates/certificate_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/certificates/certificate_controller_test.go @@ -54,14 +54,11 @@ func TestCertificateController(t *testing.T) { return nil } - controller, err := NewCertificateController( + controller := NewCertificateController( client, informerFactory.Certificates().V1beta1().CertificateSigningRequests(), handler, ) - if err != nil { - t.Fatalf("error creating controller: %v", err) - } controller.csrsSynced = func() bool { return true } stopCh := make(chan struct{}) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/certificates/signer/cfssl_signer.go b/vendor/k8s.io/kubernetes/pkg/controller/certificates/signer/cfssl_signer.go index 1a5f3ff7e..dd57d68a0 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/certificates/signer/cfssl_signer.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/certificates/signer/cfssl_signer.go @@ -50,7 +50,7 @@ func NewCSRSigningController( client, csrInformer, signer.handle, - ) + ), nil } type cfsslSigner struct { @@ -103,7 +103,7 @@ func (s *cfsslSigner) handle(csr *capi.CertificateSigningRequest) error { if err != nil { return fmt.Errorf("error auto signing csr: %v", err) } - _, err = s.client.Certificates().CertificateSigningRequests().UpdateStatus(csr) + _, err = s.client.CertificatesV1beta1().CertificateSigningRequests().UpdateStatus(csr) if err != nil { return fmt.Errorf("error updating signature for csr: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/client_builder.go b/vendor/k8s.io/kubernetes/pkg/controller/client_builder.go index df873fb3e..041717623 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/client_builder.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/client_builder.go @@ -28,13 +28,13 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" apiserverserviceaccount "k8s.io/apiserver/pkg/authentication/serviceaccount" - clientgoclientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes" v1authentication "k8s.io/client-go/kubernetes/typed/authentication/v1" v1core "k8s.io/client-go/kubernetes/typed/core/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/serviceaccount" "github.com/golang/glog" @@ -46,8 +46,8 @@ type ControllerClientBuilder interface { ConfigOrDie(name string) *restclient.Config Client(name string) (clientset.Interface, error) ClientOrDie(name string) clientset.Interface - ClientGoClient(name string) (clientgoclientset.Interface, error) - ClientGoClientOrDie(name string) clientgoclientset.Interface + ClientGoClient(name string) (clientset.Interface, error) + ClientGoClientOrDie(name string) clientset.Interface } // SimpleControllerClientBuilder returns a fixed client with different user agents @@ -85,15 +85,15 @@ func (b SimpleControllerClientBuilder) ClientOrDie(name string) clientset.Interf return client } -func (b SimpleControllerClientBuilder) ClientGoClient(name string) (clientgoclientset.Interface, error) { +func (b SimpleControllerClientBuilder) ClientGoClient(name string) (clientset.Interface, error) { clientConfig, err := b.Config(name) if err != nil { return nil, err } - return clientgoclientset.NewForConfig(clientConfig) + return clientset.NewForConfig(clientConfig) } -func (b SimpleControllerClientBuilder) ClientGoClientOrDie(name string) clientgoclientset.Interface { +func (b SimpleControllerClientBuilder) ClientGoClientOrDie(name string) clientset.Interface { client, err := b.ClientGoClient(name) if err != nil { glog.Fatal(err) @@ -237,7 +237,7 @@ func (b SAControllerClientBuilder) getAuthenticatedConfig(sa *v1.ServiceAccount, // If we couldn't run the token review, the API might be disabled or we might not have permission. // Try to make a request to /apis with the token. If we get a 401 we should consider the token invalid. clientConfigCopy := *clientConfig - clientConfigCopy.NegotiatedSerializer = api.Codecs + clientConfigCopy.NegotiatedSerializer = legacyscheme.Codecs client, err := restclient.UnversionedRESTClientFor(&clientConfigCopy) if err != nil { return nil, false, err @@ -275,15 +275,15 @@ func (b SAControllerClientBuilder) ClientOrDie(name string) clientset.Interface return client } -func (b SAControllerClientBuilder) ClientGoClient(name string) (clientgoclientset.Interface, error) { +func (b SAControllerClientBuilder) ClientGoClient(name string) (clientset.Interface, error) { clientConfig, err := b.Config(name) if err != nil { return nil, err } - return clientgoclientset.NewForConfig(clientConfig) + return clientset.NewForConfig(clientConfig) } -func (b SAControllerClientBuilder) ClientGoClientOrDie(name string) clientgoclientset.Interface { +func (b SAControllerClientBuilder) ClientGoClientOrDie(name string) clientset.Interface { client, err := b.ClientGoClient(name) if err != nil { glog.Fatal(err) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller.go index 7f8847799..24c29df36 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller.go @@ -147,6 +147,15 @@ func (cnc *CloudNodeController) updateNodeAddress(node *v1.Node, instances cloud glog.V(5).Infof("This node %s is still tainted. Will not process.", node.Name) return } + // Node that isn't present according to the cloud provider shouldn't have its address updated + exists, err := ensureNodeExistsByProviderIDOrExternalID(instances, node) + if err != nil { + // Continue to update node address when not sure the node is not exists + glog.Errorf("%v", err) + } else if !exists { + glog.V(4).Infof("The node %s is no longer present according to the cloud provider, do not process.", node.Name) + return + } nodeAddresses, err := getNodeAddressesByProviderIDOrName(instances, node) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller_test.go index 27d2b95e1..5e2491406 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/cloud/node_controller_test.go @@ -458,7 +458,7 @@ func TestGCECondition(t *testing.T) { } } - assert.True(t, conditionAdded, "Network Route Condition for GCE not added by external cloud intializer") + assert.True(t, conditionAdded, "Network Route Condition for GCE not added by external cloud initializer") } // This test checks that a node with the external cloud provider taint is cloudprovider initialized and @@ -888,6 +888,75 @@ func TestNodeAddressesChangeDetected(t *testing.T) { "Node address changes are not detected correctly") } +// This test checks that a node with the external cloud provider taint is cloudprovider initialized and +// and node addresses will not be updated when node isn't present according to the cloudprovider +func TestNodeAddressesNotUpdate(t *testing.T) { + fnh := &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node0", + CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC), + Labels: map[string]string{}, + }, + Status: v1.NodeStatus{ + Conditions: []v1.NodeCondition{ + { + Type: v1.NodeReady, + Status: v1.ConditionUnknown, + LastHeartbeatTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + LastTransitionTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + }, + }, + }, + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + { + Key: "ImproveCoverageTaint", + Value: "true", + Effect: v1.TaintEffectNoSchedule, + }, + }, + }, + }, + }, + } + + factory := informers.NewSharedInformerFactory(fnh, controller.NoResyncPeriodFunc()) + + fakeCloud := &fakecloud.FakeCloud{ + InstanceTypes: map[types.NodeName]string{}, + Addresses: []v1.NodeAddress{ + { + Type: v1.NodeHostName, + Address: "node0.cloud.internal", + }, + { + Type: v1.NodeInternalIP, + Address: "10.0.0.1", + }, + { + Type: v1.NodeExternalIP, + Address: "132.143.154.163", + }, + }, + ExistsByProviderID: false, + Err: nil, + } + + cloudNodeController := &CloudNodeController{ + kubeClient: fnh, + nodeInformer: factory.Core().V1().Nodes(), + cloud: fakeCloud, + } + + cloudNodeController.updateNodeAddress(fnh.Existing[0], fakeCloud) + + if len(fnh.UpdatedNodes) != 0 { + t.Errorf("Node was not correctly updated, the updated len(nodes) got: %v, wanted=0", len(fnh.UpdatedNodes)) + } +} + // This test checks that a node is set with the correct providerID func TestNodeProviderID(t *testing.T) { fnh := &testutil.FakeNodeHandler{ diff --git a/vendor/k8s.io/kubernetes/pkg/controller/cloud/pvlcontroller.go b/vendor/k8s.io/kubernetes/pkg/controller/cloud/pvlcontroller.go index 1a75a9c28..3ae1fbf6b 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/cloud/pvlcontroller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/cloud/pvlcontroller.go @@ -235,7 +235,7 @@ func (pvlc *PersistentVolumeLabelController) updateVolume(vol *v1.PersistentVolu return err } - _, err = pvlc.kubeClient.Core().PersistentVolumes().Patch(string(volName), types.StrategicMergePatchType, patchBytes) + _, err = pvlc.kubeClient.CoreV1().PersistentVolumes().Patch(string(volName), types.StrategicMergePatchType, patchBytes) if err != nil { return fmt.Errorf("failed to update PersistentVolume %s: %v", volName, err) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/BUILD new file mode 100644 index 000000000..94a93af99 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/BUILD @@ -0,0 +1,57 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = ["clusterroleaggregation_controller.go"], + importpath = "k8s.io/kubernetes/pkg/controller/clusterroleaggregation", + visibility = ["//visibility:public"], + deps = [ + "//pkg/controller:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality: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/apimachinery/pkg/util/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/client-go/informers/rbac/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", + "//vendor/k8s.io/client-go/listers/rbac/v1:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + "//vendor/k8s.io/client-go/util/workqueue: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"], +) + +go_test( + name = "go_default_test", + srcs = ["clusterroleaggregation_controller_test.go"], + importpath = "k8s.io/kubernetes/pkg/controller/clusterroleaggregation", + library = ":go_default_library", + deps = [ + "//pkg/controller:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality: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/util/diff:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", + "//vendor/k8s.io/client-go/listers/rbac/v1:go_default_library", + "//vendor/k8s.io/client-go/testing:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/clusterroleaggregation_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/clusterroleaggregation_controller.go new file mode 100644 index 000000000..05879e0e6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/clusterroleaggregation_controller.go @@ -0,0 +1,213 @@ +/* +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 clusterroleaggregation + +import ( + "fmt" + "sort" + "time" + + "github.com/golang/glog" + + rbacv1 "k8s.io/api/rbac/v1" + "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + rbacinformers "k8s.io/client-go/informers/rbac/v1" + rbacclient "k8s.io/client-go/kubernetes/typed/rbac/v1" + rbaclisters "k8s.io/client-go/listers/rbac/v1" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/workqueue" + "k8s.io/kubernetes/pkg/controller" +) + +// ClusterRoleAggregationController is a controller to combine cluster roles +type ClusterRoleAggregationController struct { + clusterRoleClient rbacclient.ClusterRolesGetter + clusterRoleLister rbaclisters.ClusterRoleLister + clusterRolesSynced cache.InformerSynced + + syncHandler func(key string) error + queue workqueue.RateLimitingInterface +} + +// NewClusterRoleAggregation creates a new controller +func NewClusterRoleAggregation(clusterRoleInformer rbacinformers.ClusterRoleInformer, clusterRoleClient rbacclient.ClusterRolesGetter) *ClusterRoleAggregationController { + c := &ClusterRoleAggregationController{ + clusterRoleClient: clusterRoleClient, + clusterRoleLister: clusterRoleInformer.Lister(), + clusterRolesSynced: clusterRoleInformer.Informer().HasSynced, + + queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "ClusterRoleAggregator"), + } + c.syncHandler = c.syncClusterRole + + clusterRoleInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: func(obj interface{}) { + c.enqueue() + }, + UpdateFunc: func(old, cur interface{}) { + c.enqueue() + }, + DeleteFunc: func(uncast interface{}) { + c.enqueue() + }, + }) + return c +} + +func (c *ClusterRoleAggregationController) syncClusterRole(key string) error { + _, name, err := cache.SplitMetaNamespaceKey(key) + if err != nil { + return err + } + sharedClusterRole, err := c.clusterRoleLister.Get(name) + if errors.IsNotFound(err) { + return nil + } + if err != nil { + return err + } + if sharedClusterRole.AggregationRule == nil { + return nil + } + + newPolicyRules := []rbacv1.PolicyRule{} + for i := range sharedClusterRole.AggregationRule.ClusterRoleSelectors { + selector := sharedClusterRole.AggregationRule.ClusterRoleSelectors[i] + runtimeLabelSelector, err := metav1.LabelSelectorAsSelector(&selector) + if err != nil { + return err + } + clusterRoles, err := c.clusterRoleLister.List(runtimeLabelSelector) + if err != nil { + return err + } + sort.Sort(byName(clusterRoles)) + + for i := range clusterRoles { + if clusterRoles[i].Name == sharedClusterRole.Name { + continue + } + + for j := range clusterRoles[i].Rules { + currRule := clusterRoles[i].Rules[j] + if !ruleExists(newPolicyRules, currRule) { + newPolicyRules = append(newPolicyRules, currRule) + } + } + } + } + + if equality.Semantic.DeepEqual(newPolicyRules, sharedClusterRole.Rules) { + return nil + } + + // we need to update + clusterRole := sharedClusterRole.DeepCopy() + clusterRole.Rules = nil + for _, rule := range newPolicyRules { + clusterRole.Rules = append(clusterRole.Rules, *rule.DeepCopy()) + } + _, err = c.clusterRoleClient.ClusterRoles().Update(clusterRole) + + return err +} + +func ruleExists(haystack []rbacv1.PolicyRule, needle rbacv1.PolicyRule) bool { + for _, curr := range haystack { + if equality.Semantic.DeepEqual(curr, needle) { + return true + } + } + return false +} + +// Run starts the controller and blocks until stopCh is closed. +func (c *ClusterRoleAggregationController) Run(workers int, stopCh <-chan struct{}) { + defer utilruntime.HandleCrash() + defer c.queue.ShutDown() + + glog.Infof("Starting ClusterRoleAggregator") + defer glog.Infof("Shutting down ClusterRoleAggregator") + + if !controller.WaitForCacheSync("ClusterRoleAggregator", stopCh, c.clusterRolesSynced) { + return + } + + for i := 0; i < workers; i++ { + go wait.Until(c.runWorker, time.Second, stopCh) + } + + <-stopCh +} + +func (c *ClusterRoleAggregationController) runWorker() { + for c.processNextWorkItem() { + } +} + +func (c *ClusterRoleAggregationController) processNextWorkItem() bool { + dsKey, quit := c.queue.Get() + if quit { + return false + } + defer c.queue.Done(dsKey) + + err := c.syncHandler(dsKey.(string)) + if err == nil { + c.queue.Forget(dsKey) + return true + } + + utilruntime.HandleError(fmt.Errorf("%v failed with : %v", dsKey, err)) + c.queue.AddRateLimited(dsKey) + + return true +} + +func (c *ClusterRoleAggregationController) enqueue() { + // this is unusual, but since the set of all clusterroles is small and we don't know the dependency + // graph, just queue up every thing each time. This allows errors to be selectively retried if there + // is a problem updating a single role + allClusterRoles, err := c.clusterRoleLister.List(labels.Everything()) + if err != nil { + utilruntime.HandleError(fmt.Errorf("Couldn't list all objects %v", err)) + return + } + for _, clusterRole := range allClusterRoles { + // only queue ones that we may need to aggregate + if clusterRole.AggregationRule == nil { + continue + } + key, err := controller.KeyFunc(clusterRole) + if err != nil { + utilruntime.HandleError(fmt.Errorf("Couldn't get key for object %#v: %v", clusterRole, err)) + return + } + c.queue.Add(key) + } +} + +type byName []*rbacv1.ClusterRole + +func (a byName) Len() int { return len(a) } +func (a byName) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a byName) Less(i, j int) bool { return a[i].Name < a[j].Name } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/clusterroleaggregation_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/clusterroleaggregation_controller_test.go new file mode 100644 index 000000000..de007cdd3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/clusterroleaggregation/clusterroleaggregation_controller_test.go @@ -0,0 +1,182 @@ +/* +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 clusterroleaggregation + +import ( + "testing" + + rbacv1 "k8s.io/api/rbac/v1" + "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + fakeclient "k8s.io/client-go/kubernetes/fake" + rbaclisters "k8s.io/client-go/listers/rbac/v1" + clienttesting "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" + "k8s.io/kubernetes/pkg/controller" +) + +func TestSyncClusterRole(t *testing.T) { + hammerRules := func() []rbacv1.PolicyRule { + return []rbacv1.PolicyRule{ + {Verbs: []string{"hammer"}, Resources: []string{"nails"}}, + {Verbs: []string{"hammer"}, Resources: []string{"wedges"}}, + } + } + chiselRules := func() []rbacv1.PolicyRule { + return []rbacv1.PolicyRule{ + {Verbs: []string{"chisel"}, Resources: []string{"mortises"}}, + } + } + sawRules := func() []rbacv1.PolicyRule { + return []rbacv1.PolicyRule{ + {Verbs: []string{"saw"}, Resources: []string{"boards"}}, + } + } + role := func(name string, labels map[string]string, rules []rbacv1.PolicyRule) *rbacv1.ClusterRole { + return &rbacv1.ClusterRole{ + ObjectMeta: metav1.ObjectMeta{Name: name, Labels: labels}, + Rules: rules, + } + } + combinedRole := func(selectors []map[string]string, rules ...[]rbacv1.PolicyRule) *rbacv1.ClusterRole { + ret := &rbacv1.ClusterRole{ + ObjectMeta: metav1.ObjectMeta{Name: "combined"}, + AggregationRule: &rbacv1.AggregationRule{}, + } + for _, selector := range selectors { + ret.AggregationRule.ClusterRoleSelectors = append(ret.AggregationRule.ClusterRoleSelectors, + metav1.LabelSelector{MatchLabels: selector}) + } + for _, currRules := range rules { + ret.Rules = append(ret.Rules, currRules...) + } + return ret + } + + tests := []struct { + name string + startingClusterRoles []*rbacv1.ClusterRole + clusterRoleToSync string + expectedClusterRole *rbacv1.ClusterRole + }{ + { + name: "remove dead rules", + startingClusterRoles: []*rbacv1.ClusterRole{ + role("hammer", map[string]string{"foo": "bar"}, hammerRules()), + combinedRole([]map[string]string{{"foo": "bar"}}, sawRules()), + }, + clusterRoleToSync: "combined", + expectedClusterRole: combinedRole([]map[string]string{{"foo": "bar"}}, hammerRules()), + }, + { + name: "strip rules", + startingClusterRoles: []*rbacv1.ClusterRole{ + role("hammer", map[string]string{"foo": "not-bar"}, hammerRules()), + combinedRole([]map[string]string{{"foo": "bar"}}, hammerRules()), + }, + clusterRoleToSync: "combined", + expectedClusterRole: combinedRole([]map[string]string{{"foo": "bar"}}), + }, + { + name: "select properly and put in order", + startingClusterRoles: []*rbacv1.ClusterRole{ + role("hammer", map[string]string{"foo": "bar"}, hammerRules()), + role("chisel", map[string]string{"foo": "bar"}, chiselRules()), + role("saw", map[string]string{"foo": "not-bar"}, sawRules()), + combinedRole([]map[string]string{{"foo": "bar"}}), + }, + clusterRoleToSync: "combined", + expectedClusterRole: combinedRole([]map[string]string{{"foo": "bar"}}, chiselRules(), hammerRules()), + }, + { + name: "select properly with multiple selectors", + startingClusterRoles: []*rbacv1.ClusterRole{ + role("hammer", map[string]string{"foo": "bar"}, hammerRules()), + role("chisel", map[string]string{"foo": "bar"}, chiselRules()), + role("saw", map[string]string{"foo": "not-bar"}, sawRules()), + combinedRole([]map[string]string{{"foo": "bar"}, {"foo": "not-bar"}}), + }, + clusterRoleToSync: "combined", + expectedClusterRole: combinedRole([]map[string]string{{"foo": "bar"}, {"foo": "not-bar"}}, chiselRules(), hammerRules(), sawRules()), + }, + { + name: "select properly remove duplicates", + startingClusterRoles: []*rbacv1.ClusterRole{ + role("hammer", map[string]string{"foo": "bar"}, hammerRules()), + role("chisel", map[string]string{"foo": "bar"}, chiselRules()), + role("saw", map[string]string{"foo": "bar"}, sawRules()), + role("other-saw", map[string]string{"foo": "not-bar"}, sawRules()), + combinedRole([]map[string]string{{"foo": "bar"}, {"foo": "not-bar"}}), + }, + clusterRoleToSync: "combined", + expectedClusterRole: combinedRole([]map[string]string{{"foo": "bar"}, {"foo": "not-bar"}}, chiselRules(), hammerRules(), sawRules()), + }, + { + name: "no diff skip", + startingClusterRoles: []*rbacv1.ClusterRole{ + role("hammer", map[string]string{"foo": "bar"}, hammerRules()), + combinedRole([]map[string]string{{"foo": "bar"}}, hammerRules()), + }, + clusterRoleToSync: "combined", + expectedClusterRole: nil, + }} + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + indexer := cache.NewIndexer(controller.KeyFunc, cache.Indexers{}) + objs := []runtime.Object{} + for _, obj := range test.startingClusterRoles { + objs = append(objs, obj) + indexer.Add(obj) + } + fakeClient := fakeclient.NewSimpleClientset(objs...) + c := ClusterRoleAggregationController{ + clusterRoleClient: fakeClient.RbacV1(), + clusterRoleLister: rbaclisters.NewClusterRoleLister(indexer), + } + err := c.syncClusterRole(test.clusterRoleToSync) + if err != nil { + t.Fatal(err) + } + + if test.expectedClusterRole == nil { + if len(fakeClient.Actions()) != 0 { + t.Fatalf("unexpected actions %#v", fakeClient.Actions()) + } + return + } + if len(fakeClient.Actions()) != 1 { + t.Fatalf("unexpected actions %#v", fakeClient.Actions()) + } + + action := fakeClient.Actions()[0] + if !action.Matches("update", "clusterroles") { + t.Fatalf("unexpected action %#v", action) + } + updateAction, ok := action.(clienttesting.UpdateAction) + if !ok { + t.Fatalf("unexpected action %#v", action) + } + if !equality.Semantic.DeepEqual(updateAction.GetObject().(*rbacv1.ClusterRole), test.expectedClusterRole) { + t.Fatalf("%v", diff.ObjectDiff(test.expectedClusterRole, updateAction.GetObject().(*rbacv1.ClusterRole))) + + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/controller_utils.go b/vendor/k8s.io/kubernetes/pkg/controller/controller_utils.go index 360f2091b..9e0cb9f4d 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/controller_utils.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/controller_utils.go @@ -38,15 +38,13 @@ import ( "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" - ref "k8s.io/client-go/tools/reference" "k8s.io/client-go/util/integer" clientretry "k8s.io/client-go/util/retry" - _ "k8s.io/kubernetes/pkg/api/install" podutil "k8s.io/kubernetes/pkg/api/v1/pod" - "k8s.io/kubernetes/pkg/api/validation" + _ "k8s.io/kubernetes/pkg/apis/core/install" + "k8s.io/kubernetes/pkg/apis/core/validation" hashutil "k8s.io/kubernetes/pkg/util/hash" taintutils "k8s.io/kubernetes/pkg/util/taints" @@ -412,7 +410,7 @@ type RealRSControl struct { var _ RSControlInterface = &RealRSControl{} func (r RealRSControl) PatchReplicaSet(namespace, name string, data []byte) error { - _, err := r.KubeClient.Extensions().ReplicaSets(namespace).Patch(name, types.StrategicMergePatchType, data) + _, err := r.KubeClient.ExtensionsV1beta1().ReplicaSets(namespace).Patch(name, types.StrategicMergePatchType, data) return err } @@ -474,29 +472,12 @@ func getPodsFinalizers(template *v1.PodTemplateSpec) []string { return desiredFinalizers } -func getPodsAnnotationSet(template *v1.PodTemplateSpec, object runtime.Object) (labels.Set, error) { +func getPodsAnnotationSet(template *v1.PodTemplateSpec) labels.Set { desiredAnnotations := make(labels.Set) for k, v := range template.Annotations { desiredAnnotations[k] = v } - createdByRef, err := ref.GetReference(scheme.Scheme, object) - if err != nil { - return desiredAnnotations, fmt.Errorf("unable to get controller reference: %v", err) - } - - // TODO: this code was not safe previously - as soon as new code came along that switched to v2, old clients - // would be broken upon reading it. This is explicitly hardcoded to v1 to guarantee predictable deployment. - // We need to consistently handle this case of annotation versioning. - codec := scheme.Codecs.LegacyCodec(v1.SchemeGroupVersion) - - createdByRefJson, err := runtime.Encode(codec, &v1.SerializedReference{ - Reference: *createdByRef, - }) - if err != nil { - return desiredAnnotations, fmt.Errorf("unable to serialize controller reference: %v", err) - } - desiredAnnotations[v1.CreatedByAnnotation] = string(createdByRefJson) - return desiredAnnotations, nil + return desiredAnnotations } func getPodsPrefix(controllerName string) string { @@ -546,17 +527,14 @@ func (r RealPodControl) CreatePodsOnNode(nodeName, namespace string, template *v } func (r RealPodControl) PatchPod(namespace, name string, data []byte) error { - _, err := r.KubeClient.Core().Pods(namespace).Patch(name, types.StrategicMergePatchType, data) + _, err := r.KubeClient.CoreV1().Pods(namespace).Patch(name, types.StrategicMergePatchType, data) return err } func GetPodFromTemplate(template *v1.PodTemplateSpec, parentObject runtime.Object, controllerRef *metav1.OwnerReference) (*v1.Pod, error) { desiredLabels := getPodsLabelSet(template) desiredFinalizers := getPodsFinalizers(template) - desiredAnnotations, err := getPodsAnnotationSet(template, parentObject) - if err != nil { - return nil, err - } + desiredAnnotations := getPodsAnnotationSet(template) accessor, err := meta.Accessor(parentObject) if err != nil { return nil, fmt.Errorf("parentObject does not have ObjectMeta, %v", err) @@ -589,7 +567,7 @@ func (r RealPodControl) createPods(nodeName, namespace string, template *v1.PodT if labels.Set(pod.Labels).AsSelectorPreValidated().Empty() { return fmt.Errorf("unable to create pods, no labels") } - if newPod, err := r.KubeClient.Core().Pods(namespace).Create(pod); err != nil { + if newPod, err := r.KubeClient.CoreV1().Pods(namespace).Create(pod); err != nil { r.Recorder.Eventf(object, v1.EventTypeWarning, FailedCreatePodReason, "Error creating: %v", err) return err } else { @@ -610,7 +588,7 @@ func (r RealPodControl) DeletePod(namespace string, podID string, object runtime return fmt.Errorf("object does not have ObjectMeta, %v", err) } glog.V(2).Infof("Controller %v deleting pod %v/%v", accessor.GetName(), namespace, podID) - if err := r.KubeClient.Core().Pods(namespace).Delete(podID, nil); err != nil { + if err := r.KubeClient.CoreV1().Pods(namespace).Delete(podID, nil); err != nil { r.Recorder.Eventf(object, v1.EventTypeWarning, FailedDeletePodReason, "Error deleting: %v", err) return fmt.Errorf("unable to delete pods: %v", err) } else { @@ -925,10 +903,10 @@ func AddOrUpdateTaintOnNode(c clientset.Interface, nodeName string, taints ...*v // First we try getting node from the API server cache, as it's cheaper. If it fails // we get it from etcd to be sure to have fresh data. if firstTry { - oldNode, err = c.Core().Nodes().Get(nodeName, metav1.GetOptions{ResourceVersion: "0"}) + oldNode, err = c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{ResourceVersion: "0"}) firstTry = false } else { - oldNode, err = c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + oldNode, err = c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) } if err != nil { return err @@ -982,10 +960,10 @@ func RemoveTaintOffNode(c clientset.Interface, nodeName string, node *v1.Node, t // First we try getting node from the API server cache, as it's cheaper. If it fails // we get it from etcd to be sure to have fresh data. if firstTry { - oldNode, err = c.Core().Nodes().Get(nodeName, metav1.GetOptions{ResourceVersion: "0"}) + oldNode, err = c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{ResourceVersion: "0"}) firstTry = false } else { - oldNode, err = c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + oldNode, err = c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) } if err != nil { return err @@ -1030,7 +1008,7 @@ func PatchNodeTaints(c clientset.Interface, nodeName string, oldNode *v1.Node, n return fmt.Errorf("failed to create patch for node %q: %v", nodeName, err) } - _, err = c.Core().Nodes().Patch(string(nodeName), types.StrategicMergePatchType, patchBytes) + _, err = c.CoreV1().Nodes().Patch(string(nodeName), types.StrategicMergePatchType, patchBytes) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/controller_utils_test.go b/vendor/k8s.io/kubernetes/pkg/controller/controller_utils_test.go index 0a7797dad..f3599ba6d 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/controller_utils_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/controller_utils_test.go @@ -41,9 +41,9 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + _ "k8s.io/kubernetes/pkg/apis/core/install" "k8s.io/kubernetes/pkg/controller/testutil" "k8s.io/kubernetes/pkg/securitycontext" @@ -62,7 +62,7 @@ func NewFakeControllerExpectationsLookup(ttl time.Duration) (*ControllerExpectat func newReplicationController(replicas int) *v1.ReplicationController { rc := &v1.ReplicationController{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: "foobar", @@ -124,7 +124,7 @@ func newPodList(store cache.Store, count int, status v1.PodPhase, rc *v1.Replica func newReplicaSet(name string, replicas int) *extensions.ReplicaSet { return &extensions.ReplicaSet{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: name, @@ -286,7 +286,7 @@ func TestCreatePods(t *testing.T) { } testServer := httptest.NewServer(&fakeHandler) defer testServer.Close() - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: testServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: testServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) podControl := RealPodControl{ KubeClient: clientset, @@ -439,10 +439,6 @@ func TestActiveReplicaSetsFiltering(t *testing.T) { "expected %v, got %v", expectedNames.List(), gotNames.List()) } -func int64P(num int64) *int64 { - return &num -} - func TestComputeHash(t *testing.T) { collisionCount := int32(1) otherCollisionCount := int32(2) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/BUILD index 17d82782d..e484d2c50 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/cronjob", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/util/metrics:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/robfig/cron:go_default_library", @@ -49,8 +49,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/cronjob", library = ":go_default_library", deps = [ - "//pkg/api/install:go_default_library", "//pkg/apis/batch/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/batch/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controller.go index 682ae721a..679895e85 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controller.go @@ -66,14 +66,16 @@ type CronJobController struct { recorder record.EventRecorder } -func NewCronJobController(kubeClient clientset.Interface) *CronJobController { +func NewCronJobController(kubeClient clientset.Interface) (*CronJobController, error) { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) // TODO: remove the wrapper when every clients have moved to use the clientset. - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.Core().RESTClient()).Events("")}) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) if kubeClient != nil && kubeClient.CoreV1().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("cronjob_controller", kubeClient.Core().RESTClient().GetRateLimiter()) + if err := metrics.RegisterMetricAndTrackRateLimiterUsage("cronjob_controller", kubeClient.CoreV1().RESTClient().GetRateLimiter()); err != nil { + return nil, err + } } jm := &CronJobController{ @@ -84,12 +86,15 @@ func NewCronJobController(kubeClient clientset.Interface) *CronJobController { recorder: eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "cronjob-controller"}), } - return jm + return jm, nil } -func NewCronJobControllerFromClient(kubeClient clientset.Interface) *CronJobController { - jm := NewCronJobController(kubeClient) - return jm +func NewCronJobControllerFromClient(kubeClient clientset.Interface) (*CronJobController, error) { + jm, err := NewCronJobController(kubeClient) + if err != nil { + return nil, err + } + return jm, nil } // Run the main goroutine responsible for watching and syncing jobs. diff --git a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controller_test.go index bc08af54e..63cff8ef0 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/cronjob_controller_test.go @@ -31,8 +31,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/tools/record" // For the cronjob controller to do conversions. - _ "k8s.io/kubernetes/pkg/api/install" _ "k8s.io/kubernetes/pkg/apis/batch/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) var ( diff --git a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/utils.go b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/utils.go index 5909659de..d3286d99c 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/utils.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/utils.go @@ -31,7 +31,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" ref "k8s.io/client-go/tools/reference" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // Utilities for dealing with Jobs and CronJobs and time. @@ -176,11 +176,6 @@ func getJobFromTemplate(sj *batchv1beta1.CronJob, scheduledTime time.Time) (*bat // scheduled-job-name=$SJ_NAME -- for user convenience labels := copyLabels(&sj.Spec.JobTemplate) annotations := copyAnnotations(&sj.Spec.JobTemplate) - createdByRefJson, err := makeCreatedByRefJson(sj) - if err != nil { - return nil, err - } - annotations[v1.CreatedByAnnotation] = string(createdByRefJson) // We want job names for a given nominal start time to have a deterministic name to avoid the same job being created twice name := fmt.Sprintf("%s-%d", sj.Name, getTimeHash(scheduledTime)) @@ -192,7 +187,7 @@ func getJobFromTemplate(sj *batchv1beta1.CronJob, scheduledTime time.Time) (*bat OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(sj, controllerKind)}, }, } - if err := api.Scheme.Convert(&sj.Spec.JobTemplate.Spec, &job.Spec, nil); err != nil { + if err := legacyscheme.Scheme.Convert(&sj.Spec.JobTemplate.Spec, &job.Spec, nil); err != nil { return nil, fmt.Errorf("unable to convert job template: %v", err) } return job, nil @@ -205,7 +200,7 @@ func getTimeHash(scheduledTime time.Time) int64 { // makeCreatedByRefJson makes a json string with an object reference for use in "created-by" annotation value func makeCreatedByRefJson(object runtime.Object) (string, error) { - createdByRef, err := ref.GetReference(api.Scheme, object) + createdByRef, err := ref.GetReference(legacyscheme.Scheme, object) if err != nil { return "", fmt.Errorf("unable to get controller reference: %v", err) } @@ -213,7 +208,7 @@ func makeCreatedByRefJson(object runtime.Object) (string, error) { // TODO: this code was not safe previously - as soon as new code came along that switched to v2, old clients // would be broken upon reading it. This is explicitly hardcoded to v1 to guarantee predictable deployment. // We need to consistently handle this case of annotation versioning. - codec := api.Codecs.LegacyCodec(schema.GroupVersion{Group: v1.GroupName, Version: "v1"}) + codec := legacyscheme.Codecs.LegacyCodec(schema.GroupVersion{Group: v1.GroupName, Version: "v1"}) createdByRefJson, err := runtime.Encode(codec, &v1.SerializedReference{ Reference: *createdByRef, diff --git a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/utils_test.go b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/utils_test.go index dbb151212..fb6b569f2 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/utils_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/utils_test.go @@ -83,21 +83,9 @@ func TestGetJobFromTemplate(t *testing.T) { if len(job.ObjectMeta.Labels) != 1 { t.Errorf("Wrong number of labels") } - if len(job.ObjectMeta.Annotations) != 2 { + if len(job.ObjectMeta.Annotations) != 1 { t.Errorf("Wrong number of annotations") } - v, ok := job.ObjectMeta.Annotations[v1.CreatedByAnnotation] - if !ok { - t.Errorf("Missing created-by annotation") - } - expectedCreatedBy := `{"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"CronJob","namespace":"snazzycats","name":"mycronjob","uid":"1a2b3c","apiVersion":"batch"}} -` - if len(v) != len(expectedCreatedBy) { - t.Errorf("Wrong length for created-by annotation, expected %v got %v", len(expectedCreatedBy), len(v)) - } - if v != expectedCreatedBy { - t.Errorf("Wrong value for created-by annotation, expected %v got %v", expectedCreatedBy, v) - } } func TestGetParentUIDFromJob(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/daemon/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/daemon/BUILD index 9a76e7658..dd082c9ac 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/daemon/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/daemon/BUILD @@ -15,8 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/daemon", deps = [ - "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/controller:go_default_library", "//pkg/controller/daemon/util:go_default_library", "//pkg/features:go_default_library", @@ -68,9 +68,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/daemon", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/controller:go_default_library", "//pkg/kubelet/types:go_default_library", "//pkg/securitycontext:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/daemon/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/daemon/OWNERS index bb110c20d..d83d4dd28 100755 --- a/vendor/k8s.io/kubernetes/pkg/controller/daemon/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/controller/daemon/OWNERS @@ -5,3 +5,4 @@ reviewers: - lukaszo - mikedanese - tnozicka +- k82cn diff --git a/vendor/k8s.io/kubernetes/pkg/controller/daemon/daemon_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/daemon/daemon_controller.go index 0b0328eee..72308b93b 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/daemon/daemon_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/daemon/daemon_controller.go @@ -48,8 +48,8 @@ import ( "k8s.io/client-go/tools/record" "k8s.io/client-go/util/integer" "k8s.io/client-go/util/workqueue" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/daemon/util" "k8s.io/kubernetes/pkg/features" @@ -130,14 +130,16 @@ type DaemonSetsController struct { suspendedDaemonPods map[string]sets.String } -func NewDaemonSetsController(daemonSetInformer extensionsinformers.DaemonSetInformer, historyInformer appsinformers.ControllerRevisionInformer, podInformer coreinformers.PodInformer, nodeInformer coreinformers.NodeInformer, kubeClient clientset.Interface) *DaemonSetsController { +func NewDaemonSetsController(daemonSetInformer extensionsinformers.DaemonSetInformer, historyInformer appsinformers.ControllerRevisionInformer, podInformer coreinformers.PodInformer, nodeInformer coreinformers.NodeInformer, kubeClient clientset.Interface) (*DaemonSetsController, error) { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) // TODO: remove the wrapper when every clients have moved to use the clientset. - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.Core().RESTClient()).Events("")}) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) - if kubeClient != nil && kubeClient.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("daemon_controller", kubeClient.Core().RESTClient().GetRateLimiter()) + if kubeClient != nil && kubeClient.CoreV1().RESTClient().GetRateLimiter() != nil { + if err := metrics.RegisterMetricAndTrackRateLimiterUsage("daemon_controller", kubeClient.CoreV1().RESTClient().GetRateLimiter()); err != nil { + return nil, err + } } dsc := &DaemonSetsController{ kubeClient: kubeClient, @@ -201,7 +203,7 @@ func NewDaemonSetsController(daemonSetInformer extensionsinformers.DaemonSetInfo dsc.syncHandler = dsc.syncDaemonSet dsc.enqueueDaemonSet = dsc.enqueue dsc.enqueueDaemonSetRateLimited = dsc.enqueueRateLimited - return dsc + return dsc, nil } func (dsc *DaemonSetsController) deleteDaemonset(obj interface{}) { @@ -298,8 +300,8 @@ func (dsc *DaemonSetsController) enqueueDaemonSetAfter(obj interface{}, after ti dsc.queue.AddAfter(key, after) } -// getPodDaemonSets returns a list of DaemonSets that potentially match the pod. -func (dsc *DaemonSetsController) getPodDaemonSets(pod *v1.Pod) []*extensions.DaemonSet { +// getDaemonSetsForPod returns a list of DaemonSets that potentially match the pod. +func (dsc *DaemonSetsController) getDaemonSetsForPod(pod *v1.Pod) []*extensions.DaemonSet { sets, err := dsc.dsLister.GetPodDaemonSets(pod) if err != nil { return nil @@ -362,8 +364,8 @@ func (dsc *DaemonSetsController) addHistory(obj interface{}) { } // updateHistory figures out what DaemonSet(s) manage a ControllerRevision when the ControllerRevision -// is updated and wake them up. If the anything of the ControllerRevision have changed, we need to -// awaken both the old and new DaemonSets. +// is updated and wake them up. If anything of the ControllerRevision has changed, we need to awaken +// both the old and new DaemonSets. func (dsc *DaemonSetsController) updateHistory(old, cur interface{}) { curHistory := cur.(*apps.ControllerRevision) oldHistory := old.(*apps.ControllerRevision) @@ -474,7 +476,7 @@ func (dsc *DaemonSetsController) addPod(obj interface{}) { // them to see if anyone wants to adopt it. // DO NOT observe creation because no controller should be waiting for an // orphan. - dss := dsc.getPodDaemonSets(pod) + dss := dsc.getDaemonSetsForPod(pod) if len(dss) == 0 { return } @@ -495,8 +497,6 @@ func (dsc *DaemonSetsController) updatePod(old, cur interface{}) { // Two different versions of the same pod will always have different RVs. return } - changedToReady := !podutil.IsPodReady(oldPod) && podutil.IsPodReady(curPod) - labelChanged := !reflect.DeepEqual(curPod.Labels, oldPod.Labels) curControllerRef := metav1.GetControllerOf(curPod) oldControllerRef := metav1.GetControllerOf(oldPod) @@ -516,6 +516,7 @@ func (dsc *DaemonSetsController) updatePod(old, cur interface{}) { } glog.V(4).Infof("Pod %s updated.", curPod.Name) dsc.enqueueDaemonSet(ds) + changedToReady := !podutil.IsPodReady(oldPod) && podutil.IsPodReady(curPod) // See https://github.com/kubernetes/kubernetes/pull/38076 for more details if changedToReady && ds.Spec.MinReadySeconds > 0 { // Add a second to avoid milliseconds skew in AddAfter. @@ -527,11 +528,12 @@ func (dsc *DaemonSetsController) updatePod(old, cur interface{}) { // Otherwise, it's an orphan. If anything changed, sync matching controllers // to see if anyone wants to adopt it now. - dss := dsc.getPodDaemonSets(curPod) + dss := dsc.getDaemonSetsForPod(curPod) if len(dss) == 0 { return } glog.V(4).Infof("Orphan Pod %s updated.", curPod.Name) + labelChanged := !reflect.DeepEqual(curPod.Labels, oldPod.Labels) if labelChanged || controllerRefChanged { for _, ds := range dss { dsc.enqueueDaemonSet(ds) @@ -707,7 +709,7 @@ func (dsc *DaemonSetsController) updateNode(old, cur interface{}) { dsList, err := dsc.dsLister.List(labels.Everything()) if err != nil { - glog.V(4).Infof("Error enqueueing daemon sets: %v", err) + glog.V(4).Infof("Error listing daemon sets: %v", err) return } // TODO: it'd be nice to pass a hint with these enqueues, so that each ds would only examine the added node (unless it has other work to do, too). @@ -799,6 +801,10 @@ func (dsc *DaemonSetsController) resolveControllerRef(namespace string, controll return ds } +// manage manages the scheduling and running of Pods of ds on nodes. +// After figuring out which nodes should run a Pod of ds but not yet running one and +// which nodes should not run a Pod of ds but currently running one, it calls function +// syncNodes with a list of pods to remove and a list of nodes to run a Pod of ds. func (dsc *DaemonSetsController) manage(ds *extensions.DaemonSet, hash string) error { // Find out which nodes are running the daemon pods controlled by ds. nodeToDaemonPods, err := dsc.getNodesToDaemonPods(ds) @@ -1065,7 +1071,7 @@ func (dsc *DaemonSetsController) updateDaemonSetStatus(ds *extensions.DaemonSet, } numberUnavailable := desiredNumberScheduled - numberAvailable - err = storeDaemonSetStatus(dsc.kubeClient.Extensions().DaemonSets(ds.Namespace), ds, desiredNumberScheduled, currentNumberScheduled, numberMisscheduled, numberReady, updatedNumberScheduled, numberAvailable, numberUnavailable) + err = storeDaemonSetStatus(dsc.kubeClient.ExtensionsV1beta1().DaemonSets(ds.Namespace), ds, desiredNumberScheduled, currentNumberScheduled, numberMisscheduled, numberReady, updatedNumberScheduled, numberAvailable, numberUnavailable) if err != nil { return fmt.Errorf("error storing status for daemon set %#v: %v", ds, err) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/daemon/daemon_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/daemon/daemon_controller_test.go index 5a64914cf..9012e7ed6 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/daemon/daemon_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/daemon/daemon_controller_test.go @@ -39,9 +39,10 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/controller" kubelettypes "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/securitycontext" @@ -146,7 +147,7 @@ func updateStrategies() []*extensions.DaemonSetUpdateStrategy { func newNode(name string, label map[string]string) *v1.Node { return &v1.Node{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: label, @@ -196,7 +197,7 @@ func newPod(podName string, nodeName string, label map[string]string, ds *extens } pod := &v1.Pod{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ GenerateName: podName, Labels: newLabels, @@ -255,7 +256,7 @@ func (f *fakePodControl) CreatePodsOnNode(nodeName, namespace string, template * }, } - if err := api.Scheme.Convert(&template.Spec, &pod.Spec, nil); err != nil { + if err := legacyscheme.Scheme.Convert(&template.Spec, &pod.Spec, nil); err != nil { return fmt.Errorf("unable to convert pod template: %v", err) } if len(nodeName) != 0 { @@ -293,17 +294,20 @@ type daemonSetsController struct { fakeRecorder *record.FakeRecorder } -func newTestController(initialObjects ...runtime.Object) (*daemonSetsController, *fakePodControl, *fake.Clientset) { +func newTestController(initialObjects ...runtime.Object) (*daemonSetsController, *fakePodControl, *fake.Clientset, error) { clientset := fake.NewSimpleClientset(initialObjects...) informerFactory := informers.NewSharedInformerFactory(clientset, controller.NoResyncPeriodFunc()) - dsc := NewDaemonSetsController( + dsc, err := NewDaemonSetsController( informerFactory.Extensions().V1beta1().DaemonSets(), informerFactory.Apps().V1beta1().ControllerRevisions(), informerFactory.Core().V1().Pods(), informerFactory.Core().V1().Nodes(), clientset, ) + if err != nil { + return nil, nil, nil, err + } fakeRecorder := record.NewFakeRecorder(100) dsc.eventRecorder = fakeRecorder @@ -323,7 +327,7 @@ func newTestController(initialObjects ...runtime.Object) (*daemonSetsController, informerFactory.Core().V1().Pods().Informer().GetStore(), informerFactory.Core().V1().Nodes().Informer().GetStore(), fakeRecorder, - }, podControl, clientset + }, podControl, clientset, nil } func validateSyncDaemonSets(t *testing.T, manager *daemonSetsController, fakePodControl *fakePodControl, expectedCreates, expectedDeletes int, expectedEvents int) { @@ -377,7 +381,10 @@ func clearExpectations(t *testing.T, manager *daemonSetsController, ds *extensio func TestDeleteFinalStateUnknown(t *testing.T) { for _, strategy := range updateStrategies() { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 1, nil) ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy @@ -408,7 +415,10 @@ func TestSimpleDaemonSetLaunchesPods(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 5, nil) manager.dsStore.Add(ds) syncAndValidateDaemonSets(t, manager, ds, podControl, 5, 0, 0) @@ -421,7 +431,10 @@ func TestSimpleDaemonSetPodCreateErrors(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } podControl.FakePodControl.CreateLimit = 10 addNodes(manager.nodeStore, 0, podControl.FakePodControl.CreateLimit*10, nil) manager.dsStore.Add(ds) @@ -441,7 +454,10 @@ func TestSimpleDaemonSetUpdatesStatusAfterLaunchingPods(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, podControl, clientset := newTestController(ds) + manager, podControl, clientset, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } var updated *extensions.DaemonSet clientset.PrependReactor("update", "daemonsets", func(action core.Action) (handled bool, ret runtime.Object, err error) { @@ -469,7 +485,10 @@ func TestSimpleDaemonSetUpdatesStatusAfterLaunchingPods(t *testing.T) { // DaemonSets should do nothing if there aren't any nodes func TestNoNodesDoesNothing(t *testing.T) { for _, strategy := range updateStrategies() { - manager, podControl, _ := newTestController() + manager, podControl, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy manager.dsStore.Add(ds) @@ -483,7 +502,10 @@ func TestOneNodeDaemonLaunchesPod(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.nodeStore.Add(newNode("only-node", nil)) manager.dsStore.Add(ds) syncAndValidateDaemonSets(t, manager, ds, podControl, 1, 0, 0) @@ -491,11 +513,14 @@ func TestOneNodeDaemonLaunchesPod(t *testing.T) { } // DaemonSets should place onto NotReady nodes -func TestNotReadNodeDaemonDoesNotLaunchPod(t *testing.T) { +func TestNotReadyNodeDaemonDoesLaunchPod(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("not-ready", nil) node.Status.Conditions = []v1.NodeCondition{ {Type: v1.NodeReady, Status: v1.ConditionFalse}, @@ -542,7 +567,10 @@ func TestInsufficientCapacityNodeDaemonDoesNotLaunchPod(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec = podSpec - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("too-much-mem", nil) node.Status.Allocatable = allocatableResources("100M", "200m") manager.nodeStore.Add(node) @@ -569,7 +597,10 @@ func TestInsufficientCapacityNodeDaemonDoesNotUnscheduleRunningPod(t *testing.T) ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec = podSpec - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("too-much-mem", nil) node.Status.Allocatable = allocatableResources("100M", "200m") manager.nodeStore.Add(node) @@ -594,7 +625,10 @@ func TestInsufficientCapacityNodeSufficientCapacityWithNodeLabelDaemonLaunchPod( ds := newDaemonSet("foo") ds.Spec.Template.Spec = podSpec ds.Spec.Template.Spec.NodeSelector = simpleNodeLabel - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node1 := newNode("not-enough-resource", nil) node1.Status.Allocatable = allocatableResources("10M", "20m") node2 := newNode("enough-resource", simpleNodeLabel) @@ -615,7 +649,10 @@ func TestSufficientCapacityWithTerminatedPodsDaemonLaunchesPod(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec = podSpec - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("too-much-mem", nil) node.Status.Allocatable = allocatableResources("100M", "200m") manager.nodeStore.Add(node) @@ -635,7 +672,10 @@ func TestSufficientCapacityNodeDaemonLaunchesPod(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec = podSpec - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("not-too-much-mem", nil) node.Status.Allocatable = allocatableResources("200M", "200m") manager.nodeStore.Add(node) @@ -652,7 +692,10 @@ func TestNetworkUnavailableNodeDaemonLaunchesPod(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("simple") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("network-unavailable", nil) node.Status.Conditions = []v1.NodeCondition{ @@ -674,7 +717,10 @@ func TestDontDoAnythingIfBeingDeleted(t *testing.T) { ds.Spec.Template.Spec = podSpec now := metav1.Now() ds.DeletionTimestamp = &now - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("not-too-much-mem", nil) node.Status.Allocatable = allocatableResources("200M", "200m") manager.nodeStore.Add(node) @@ -693,7 +739,10 @@ func TestDontDoAnythingIfBeingDeletedRace(t *testing.T) { ds.Spec.UpdateStrategy = *strategy now := metav1.Now() ds.DeletionTimestamp = &now - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 5, nil) // Lister (cache) says it's NOT deleted. @@ -720,7 +769,10 @@ func TestPortConflictNodeDaemonDoesNotLaunchPod(t *testing.T) { }}, }}, } - manager, podControl, _ := newTestController() + manager, podControl, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("port-conflict", nil) manager.nodeStore.Add(node) manager.podStore.Add(&v1.Pod{ @@ -749,7 +801,10 @@ func TestPortConflictWithSameDaemonPodDoesNotDeletePod(t *testing.T) { }}, }}, } - manager, podControl, _ := newTestController() + manager, podControl, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("port-conflict", nil) manager.nodeStore.Add(node) ds := newDaemonSet("foo") @@ -784,7 +839,10 @@ func TestNoPortConflictNodeDaemonLaunchesPod(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec = podSpec2 - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("no-port-conflict", nil) manager.nodeStore.Add(node) manager.podStore.Add(&v1.Pod{ @@ -815,7 +873,10 @@ func TestPodIsNotDeletedByDaemonsetWithEmptyLabelSelector(t *testing.T) { ds.Spec.Selector = &ls ds.Spec.Template.Spec.NodeSelector = map[string]string{"foo": "bar"} - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.nodeStore.Add(newNode("node1", nil)) // Create pod not controlled by a daemonset. manager.podStore.Add(&v1.Pod{ @@ -838,7 +899,10 @@ func TestDealsWithExistingPods(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.dsStore.Add(ds) addNodes(manager.nodeStore, 0, 5, nil) addPods(manager.podStore, "node-1", simpleDaemonSetLabel, ds, 1) @@ -855,7 +919,10 @@ func TestSelectorDaemonLaunchesPods(t *testing.T) { daemon := newDaemonSet("foo") daemon.Spec.UpdateStrategy = *strategy daemon.Spec.Template.Spec.NodeSelector = simpleNodeLabel - manager, podControl, _ := newTestController(daemon) + manager, podControl, _, err := newTestController(daemon) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 4, nil) addNodes(manager.nodeStore, 4, 3, simpleNodeLabel) manager.dsStore.Add(daemon) @@ -869,7 +936,10 @@ func TestSelectorDaemonDeletesUnselectedPods(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec.NodeSelector = simpleNodeLabel - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.dsStore.Add(ds) addNodes(manager.nodeStore, 0, 5, nil) addNodes(manager.nodeStore, 5, 5, simpleNodeLabel) @@ -887,7 +957,10 @@ func TestSelectorDaemonDealsWithExistingPods(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec.NodeSelector = simpleNodeLabel - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.dsStore.Add(ds) addNodes(manager.nodeStore, 0, 5, nil) addNodes(manager.nodeStore, 5, 5, simpleNodeLabel) @@ -906,7 +979,10 @@ func TestSelectorDaemonDealsWithExistingPods(t *testing.T) { // DaemonSet with node selector which does not match any node labels should not launch pods. func TestBadSelectorDaemonDoesNothing(t *testing.T) { for _, strategy := range updateStrategies() { - manager, podControl, _ := newTestController() + manager, podControl, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 4, nil) addNodes(manager.nodeStore, 4, 3, simpleNodeLabel) ds := newDaemonSet("foo") @@ -923,7 +999,10 @@ func TestNameDaemonSetLaunchesPods(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec.NodeName = "node-0" - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 5, nil) manager.dsStore.Add(ds) syncAndValidateDaemonSets(t, manager, ds, podControl, 1, 0, 0) @@ -936,7 +1015,10 @@ func TestBadNameDaemonSetDoesNothing(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec.NodeName = "node-10" - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 5, nil) manager.dsStore.Add(ds) syncAndValidateDaemonSets(t, manager, ds, podControl, 0, 0, 0) @@ -950,7 +1032,10 @@ func TestNameAndSelectorDaemonSetLaunchesPods(t *testing.T) { ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec.NodeSelector = simpleNodeLabel ds.Spec.Template.Spec.NodeName = "node-6" - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 4, nil) addNodes(manager.nodeStore, 4, 3, simpleNodeLabel) manager.dsStore.Add(ds) @@ -965,7 +1050,10 @@ func TestInconsistentNameSelectorDaemonSetDoesNothing(t *testing.T) { ds.Spec.UpdateStrategy = *strategy ds.Spec.Template.Spec.NodeSelector = simpleNodeLabel ds.Spec.Template.Spec.NodeName = "node-0" - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 4, nil) addNodes(manager.nodeStore, 4, 3, simpleNodeLabel) manager.dsStore.Add(ds) @@ -977,7 +1065,10 @@ func TestInconsistentNameSelectorDaemonSetDoesNothing(t *testing.T) { func TestSelectorDaemonSetLaunchesPods(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.Template.Spec.NodeSelector = simpleNodeLabel - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 4, nil) addNodes(manager.nodeStore, 4, 3, simpleNodeLabel) manager.dsStore.Add(ds) @@ -1007,7 +1098,10 @@ func TestNodeAffinityDaemonLaunchesPods(t *testing.T) { }, } - manager, podControl, _ := newTestController(daemon) + manager, podControl, _, err := newTestController(daemon) + if err != nil { + t.Fatalf("rrror creating DaemonSetsController: %v", err) + } addNodes(manager.nodeStore, 0, 4, nil) addNodes(manager.nodeStore, 4, 3, simpleNodeLabel) manager.dsStore.Add(daemon) @@ -1019,7 +1113,10 @@ func TestNumberReadyStatus(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, podControl, clientset := newTestController(ds) + manager, podControl, clientset, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } var updated *extensions.DaemonSet clientset.PrependReactor("update", "daemonsets", func(action core.Action) (handled bool, ret runtime.Object, err error) { if action.GetSubresource() != "status" { @@ -1059,7 +1156,10 @@ func TestObservedGeneration(t *testing.T) { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy ds.Generation = 1 - manager, podControl, clientset := newTestController(ds) + manager, podControl, clientset, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } var updated *extensions.DaemonSet clientset.PrependReactor("update", "daemonsets", func(action core.Action) (handled bool, ret runtime.Object, err error) { if action.GetSubresource() != "status" { @@ -1100,7 +1200,10 @@ func TestDaemonKillFailedPods(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.dsStore.Add(ds) addNodes(manager.nodeStore, 0, 1, nil) addFailedPods(manager.podStore, "node-0", simpleDaemonSetLabel, ds, test.numFailedPods) @@ -1116,7 +1219,10 @@ func TestNoScheduleTaintedDoesntEvicitRunningIntolerantPod(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("intolerant") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("tainted", nil) manager.nodeStore.Add(node) @@ -1134,7 +1240,10 @@ func TestNoExecuteTaintedDoesEvicitRunningIntolerantPod(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("intolerant") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("tainted", nil) manager.nodeStore.Add(node) @@ -1151,7 +1260,10 @@ func TestTaintedNodeDaemonDoesNotLaunchIntolerantPod(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("intolerant") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("tainted", nil) setNodeTaint(node, noScheduleTaints) @@ -1168,7 +1280,10 @@ func TestTaintedNodeDaemonLaunchesToleratePod(t *testing.T) { ds := newDaemonSet("tolerate") ds.Spec.UpdateStrategy = *strategy setDaemonSetToleration(ds, noScheduleTolerations) - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("tainted", nil) setNodeTaint(node, noScheduleTaints) @@ -1184,7 +1299,10 @@ func TestNotReadyNodeDaemonLaunchesPod(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("simple") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("tainted", nil) setNodeTaint(node, nodeNotReady) @@ -1203,7 +1321,10 @@ func TestUnreachableNodeDaemonLaunchesPod(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("simple") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("tainted", nil) setNodeTaint(node, nodeUnreachable) @@ -1223,7 +1344,10 @@ func TestNodeDaemonLaunchesToleratePod(t *testing.T) { ds := newDaemonSet("tolerate") ds.Spec.UpdateStrategy = *strategy setDaemonSetToleration(ds, noScheduleTolerations) - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 1, nil) manager.dsStore.Add(ds) @@ -1236,7 +1360,10 @@ func TestDaemonSetRespectsTermination(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 1, simpleNodeLabel) pod := newPod(fmt.Sprintf("%s-", "node-0"), "node-0", simpleDaemonSetLabel, ds) @@ -1263,7 +1390,10 @@ func TestTaintOutOfDiskNodeDaemonLaunchesCriticalPod(t *testing.T) { ds := newDaemonSet("critical") ds.Spec.UpdateStrategy = *strategy setDaemonSetCritical(ds) - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("not-enough-disk", nil) node.Status.Conditions = []v1.NodeCondition{{Type: v1.NodeOutOfDisk, Status: v1.ConditionTrue}} @@ -1296,7 +1426,10 @@ func TestTaintPressureNodeDaemonLaunchesPod(t *testing.T) { ds := newDaemonSet("critical") ds.Spec.UpdateStrategy = *strategy setDaemonSetCritical(ds) - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("resources-pressure", nil) node.Status.Conditions = []v1.NodeCondition{ @@ -1328,7 +1461,10 @@ func TestInsufficientCapacityNodeDaemonLaunchesCriticalPod(t *testing.T) { ds.Spec.Template.Spec = podSpec setDaemonSetCritical(ds) - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("too-much-mem", nil) node.Status.Allocatable = allocatableResources("100M", "200m") manager.nodeStore.Add(node) @@ -1372,7 +1508,10 @@ func TestPortConflictNodeDaemonDoesNotLaunchCriticalPod(t *testing.T) { }}, }}, } - manager, podControl, _ := newTestController() + manager, podControl, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node := newNode("port-conflict", nil) manager.nodeStore.Add(node) manager.podStore.Add(&v1.Pod{ @@ -1493,7 +1632,10 @@ func TestNodeShouldRunDaemonPod(t *testing.T) { node := newNode("test-node", nil) node.Status.Conditions = append(node.Status.Conditions, c.nodeCondition...) node.Status.Allocatable = allocatableResources("100M", "1") - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.nodeStore.Add(node) for _, p := range c.podsOnNode { manager.podStore.Add(p) @@ -1565,7 +1707,10 @@ func TestUpdateNode(t *testing.T) { } for _, c := range cases { for _, strategy := range updateStrategies() { - manager, podControl, _ := newTestController() + manager, podControl, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.nodeStore.Add(c.oldNode) c.ds.Spec.UpdateStrategy = *strategy manager.dsStore.Add(c.ds) @@ -1728,7 +1873,10 @@ func TestDeleteNoDaemonPod(t *testing.T) { for _, c := range cases { for _, strategy := range updateStrategies() { - manager, podControl, _ := newTestController() + manager, podControl, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.nodeStore.Add(c.node) c.ds.Spec.UpdateStrategy = *strategy manager.dsStore.Add(c.ds) @@ -1765,7 +1913,10 @@ func TestGetNodesToDaemonPods(t *testing.T) { ds.Spec.UpdateStrategy = *strategy ds2 := newDaemonSet("foo2") ds2.Spec.UpdateStrategy = *strategy - manager, _, _ := newTestController(ds, ds2) + manager, _, _, err := newTestController(ds, ds2) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } manager.dsStore.Add(ds) manager.dsStore.Add(ds2) addNodes(manager.nodeStore, 0, 2, nil) @@ -1820,7 +1971,10 @@ func TestGetNodesToDaemonPods(t *testing.T) { } func TestAddNode(t *testing.T) { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } node1 := newNode("node1", nil) ds := newDaemonSet("ds") ds.Spec.Template.Spec.NodeSelector = simpleNodeLabel @@ -1844,7 +1998,10 @@ func TestAddNode(t *testing.T) { func TestAddPod(t *testing.T) { for _, strategy := range updateStrategies() { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds1 := newDaemonSet("foo1") ds1.Spec.UpdateStrategy = *strategy ds2 := newDaemonSet("foo2") @@ -1884,7 +2041,10 @@ func TestAddPod(t *testing.T) { func TestAddPodOrphan(t *testing.T) { for _, strategy := range updateStrategies() { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds1 := newDaemonSet("foo1") ds1.Spec.UpdateStrategy = *strategy ds2 := newDaemonSet("foo2") @@ -1910,7 +2070,10 @@ func TestAddPodOrphan(t *testing.T) { func TestUpdatePod(t *testing.T) { for _, strategy := range updateStrategies() { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds1 := newDaemonSet("foo1") ds1.Spec.UpdateStrategy = *strategy ds2 := newDaemonSet("foo2") @@ -1954,7 +2117,10 @@ func TestUpdatePod(t *testing.T) { func TestUpdatePodOrphanSameLabels(t *testing.T) { for _, strategy := range updateStrategies() { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds1 := newDaemonSet("foo1") ds1.Spec.UpdateStrategy = *strategy ds2 := newDaemonSet("foo2") @@ -1974,7 +2140,10 @@ func TestUpdatePodOrphanSameLabels(t *testing.T) { func TestUpdatePodOrphanWithNewLabels(t *testing.T) { for _, strategy := range updateStrategies() { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds1 := newDaemonSet("foo1") ds1.Spec.UpdateStrategy = *strategy ds2 := newDaemonSet("foo2") @@ -2000,7 +2169,10 @@ func TestUpdatePodChangeControllerRef(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds1 := newDaemonSet("foo1") ds2 := newDaemonSet("foo2") manager.dsStore.Add(ds1) @@ -2019,7 +2191,10 @@ func TestUpdatePodChangeControllerRef(t *testing.T) { func TestUpdatePodControllerRefRemoved(t *testing.T) { for _, strategy := range updateStrategies() { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds1 := newDaemonSet("foo1") ds1.Spec.UpdateStrategy = *strategy ds2 := newDaemonSet("foo2") @@ -2040,7 +2215,10 @@ func TestUpdatePodControllerRefRemoved(t *testing.T) { func TestDeletePod(t *testing.T) { for _, strategy := range updateStrategies() { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds1 := newDaemonSet("foo1") ds1.Spec.UpdateStrategy = *strategy ds2 := newDaemonSet("foo2") @@ -2080,7 +2258,10 @@ func TestDeletePod(t *testing.T) { func TestDeletePodOrphan(t *testing.T) { for _, strategy := range updateStrategies() { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } ds1 := newDaemonSet("foo1") ds1.Spec.UpdateStrategy = *strategy ds2 := newDaemonSet("foo2") diff --git a/vendor/k8s.io/kubernetes/pkg/controller/daemon/update.go b/vendor/k8s.io/kubernetes/pkg/controller/daemon/update.go index 1ed7f3f0f..bbc9015a2 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/daemon/update.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/daemon/update.go @@ -228,7 +228,7 @@ func (dsc *DaemonSetsController) dedupCurHistories(ds *extensions.DaemonSet, cur toUpdate.Labels = make(map[string]string) } toUpdate.Labels[extensions.DefaultDaemonSetUniqueLabelKey] = keepCur.Labels[extensions.DefaultDaemonSetUniqueLabelKey] - _, err = dsc.kubeClient.Core().Pods(ds.Namespace).Update(toUpdate) + _, err = dsc.kubeClient.CoreV1().Pods(ds.Namespace).Update(toUpdate) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/daemon/update_test.go b/vendor/k8s.io/kubernetes/pkg/controller/daemon/update_test.go index 1585f8e4e..0521bb576 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/daemon/update_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/daemon/update_test.go @@ -27,7 +27,10 @@ import ( func TestDaemonSetUpdatesPods(t *testing.T) { ds := newDaemonSet("foo") - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } maxUnavailable := 2 addNodes(manager.nodeStore, 0, 5, nil) manager.dsStore.Add(ds) @@ -66,7 +69,10 @@ func TestDaemonSetUpdatesPods(t *testing.T) { func TestDaemonSetUpdatesWhenNewPosIsNotReady(t *testing.T) { ds := newDaemonSet("foo") - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } maxUnavailable := 3 addNodes(manager.nodeStore, 0, 5, nil) manager.dsStore.Add(ds) @@ -93,7 +99,10 @@ func TestDaemonSetUpdatesWhenNewPosIsNotReady(t *testing.T) { func TestDaemonSetUpdatesAllOldPodsNotReady(t *testing.T) { ds := newDaemonSet("foo") - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } maxUnavailable := 3 addNodes(manager.nodeStore, 0, 5, nil) manager.dsStore.Add(ds) @@ -119,7 +128,10 @@ func TestDaemonSetUpdatesAllOldPodsNotReady(t *testing.T) { func TestDaemonSetUpdatesNoTemplateChanged(t *testing.T) { ds := newDaemonSet("foo") - manager, podControl, _ := newTestController(ds) + manager, podControl, _, err := newTestController(ds) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } maxUnavailable := 3 addNodes(manager.nodeStore, 0, 5, nil) manager.dsStore.Add(ds) @@ -149,7 +161,10 @@ func TestGetUnavailableNumbers(t *testing.T) { { name: "No nodes", Manager: func() *daemonSetsController { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } return manager }(), ds: func() *extensions.DaemonSet { @@ -165,7 +180,10 @@ func TestGetUnavailableNumbers(t *testing.T) { { name: "Two nodes with ready pods", Manager: func() *daemonSetsController { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 2, nil) return manager }(), @@ -191,7 +209,10 @@ func TestGetUnavailableNumbers(t *testing.T) { { name: "Two nodes, one node without pods", Manager: func() *daemonSetsController { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 2, nil) return manager }(), @@ -214,7 +235,10 @@ func TestGetUnavailableNumbers(t *testing.T) { { name: "Two nodes with pods, MaxUnavailable in percents", Manager: func() *daemonSetsController { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 2, nil) return manager }(), @@ -240,7 +264,10 @@ func TestGetUnavailableNumbers(t *testing.T) { { name: "Two nodes with pods, MaxUnavailable in percents, pod terminating", Manager: func() *daemonSetsController { - manager, _, _ := newTestController() + manager, _, _, err := newTestController() + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } addNodes(manager.nodeStore, 0, 2, nil) return manager }(), diff --git a/vendor/k8s.io/kubernetes/pkg/controller/daemon/util/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/daemon/util/BUILD index 72743c302..4a87a1eac 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/daemon/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/daemon/util/BUILD @@ -11,8 +11,8 @@ go_library( srcs = ["daemonset_util.go"], importpath = "k8s.io/kubernetes/pkg/controller/daemon/util", deps = [ - "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet/types:go_default_library", "//pkg/util/labels:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/daemon/util/daemonset_util.go b/vendor/k8s.io/kubernetes/pkg/controller/daemon/util/daemonset_util.go index 6ef70a3fa..1ea30b713 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/daemon/util/daemonset_util.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/daemon/util/daemonset_util.go @@ -23,8 +23,8 @@ import ( extensions "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilfeature "k8s.io/apiserver/pkg/util/feature" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/features" kubelettypes "k8s.io/kubernetes/pkg/kubelet/types" labelsutil "k8s.io/kubernetes/pkg/util/labels" diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/deployment/BUILD index ca75a1f11..6995ca4c3 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/BUILD @@ -59,14 +59,14 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/deployment", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/apps/install:go_default_library", "//pkg/apis/authentication/install:go_default_library", "//pkg/apis/authorization/install:go_default_library", "//pkg/apis/autoscaling/install:go_default_library", "//pkg/apis/batch/install:go_default_library", "//pkg/apis/certificates/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions/install:go_default_library", "//pkg/apis/policy/install:go_default_library", "//pkg/apis/rbac/install:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/deployment_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/deployment/deployment_controller.go index d3d5c7d42..0b3461f30 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/deployment_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/deployment_controller.go @@ -97,14 +97,16 @@ type DeploymentController struct { } // NewDeploymentController creates a new DeploymentController. -func NewDeploymentController(dInformer extensionsinformers.DeploymentInformer, rsInformer extensionsinformers.ReplicaSetInformer, podInformer coreinformers.PodInformer, client clientset.Interface) *DeploymentController { +func NewDeploymentController(dInformer extensionsinformers.DeploymentInformer, rsInformer extensionsinformers.ReplicaSetInformer, podInformer coreinformers.PodInformer, client clientset.Interface) (*DeploymentController, error) { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) // TODO: remove the wrapper when every clients have moved to use the clientset. - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(client.Core().RESTClient()).Events("")}) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(client.CoreV1().RESTClient()).Events("")}) - if client != nil && client.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("deployment_controller", client.Core().RESTClient().GetRateLimiter()) + if client != nil && client.CoreV1().RESTClient().GetRateLimiter() != nil { + if err := metrics.RegisterMetricAndTrackRateLimiterUsage("deployment_controller", client.CoreV1().RESTClient().GetRateLimiter()); err != nil { + return nil, err + } } dc := &DeploymentController{ client: client, @@ -140,7 +142,7 @@ func NewDeploymentController(dInformer extensionsinformers.DeploymentInformer, r dc.dListerSynced = dInformer.Informer().HasSynced dc.rsListerSynced = rsInformer.Informer().HasSynced dc.podListerSynced = podInformer.Informer().HasSynced - return dc + return dc, nil } // Run begins watching and syncing. @@ -585,7 +587,7 @@ func (dc *DeploymentController) syncDeployment(key string) error { dc.eventRecorder.Eventf(d, v1.EventTypeWarning, "SelectingAll", "This deployment is selecting all pods. A non-empty selector is required.") if d.Status.ObservedGeneration < d.Generation { d.Status.ObservedGeneration = d.Generation - dc.client.Extensions().Deployments(d.Namespace).UpdateStatus(d) + dc.client.ExtensionsV1beta1().Deployments(d.Namespace).UpdateStatus(d) } return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/deployment_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/deployment/deployment_controller_test.go index 6fbc0de69..7b4ed1432 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/deployment_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/deployment_controller_test.go @@ -31,14 +31,14 @@ import ( "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/apps/install" _ "k8s.io/kubernetes/pkg/apis/authentication/install" _ "k8s.io/kubernetes/pkg/apis/authorization/install" _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" _ "k8s.io/kubernetes/pkg/apis/batch/install" _ "k8s.io/kubernetes/pkg/apis/certificates/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/extensions/install" _ "k8s.io/kubernetes/pkg/apis/policy/install" _ "k8s.io/kubernetes/pkg/apis/rbac/install" @@ -78,7 +78,7 @@ func newRSWithStatus(name string, specReplicas, statusReplicas int, selector map func newDeployment(name string, replicas int, revisionHistoryLimit *int32, maxSurge, maxUnavailable *intstr.IntOrString, selector map[string]string) *extensions.Deployment { d := extensions.Deployment{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(extensions.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(extensions.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: name, @@ -187,10 +187,13 @@ func newFixture(t *testing.T) *fixture { return f } -func (f *fixture) newController() (*DeploymentController, informers.SharedInformerFactory) { +func (f *fixture) newController() (*DeploymentController, informers.SharedInformerFactory, error) { f.client = fake.NewSimpleClientset(f.objects...) informers := informers.NewSharedInformerFactory(f.client, controller.NoResyncPeriodFunc()) - c := NewDeploymentController(informers.Extensions().V1beta1().Deployments(), informers.Extensions().V1beta1().ReplicaSets(), informers.Core().V1().Pods(), f.client) + c, err := NewDeploymentController(informers.Extensions().V1beta1().Deployments(), informers.Extensions().V1beta1().ReplicaSets(), informers.Core().V1().Pods(), f.client) + if err != nil { + return nil, nil, err + } c.eventRecorder = &record.FakeRecorder{} c.dListerSynced = alwaysReady c.rsListerSynced = alwaysReady @@ -204,7 +207,7 @@ func (f *fixture) newController() (*DeploymentController, informers.SharedInform for _, pod := range f.podLister { informers.Core().V1().Pods().Informer().GetIndexer().Add(pod) } - return c, informers + return c, informers, nil } func (f *fixture) runExpectError(deploymentName string, startInformers bool) { @@ -216,14 +219,17 @@ func (f *fixture) run(deploymentName string) { } func (f *fixture) run_(deploymentName string, startInformers bool, expectError bool) { - c, informers := f.newController() + c, informers, err := f.newController() + if err != nil { + f.t.Fatalf("error creating Deployment controller: %v", err) + } if startInformers { stopCh := make(chan struct{}) defer close(stopCh) informers.Start(stopCh) } - err := c.syncDeployment(deploymentName) + err = c.syncDeployment(deploymentName) if !expectError && err != nil { f.t.Errorf("error syncing deployment: %v", err) } else if expectError && err == nil { @@ -378,7 +384,10 @@ func TestPodDeletionEnqueuesRecreateDeployment(t *testing.T) { f.rsLister = append(f.rsLister, rs) f.objects = append(f.objects, foo, rs) - c, _ := f.newController() + c, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } enqueued := false c.enqueueDeployment = func(d *extensions.Deployment) { if d.Name == "foo" { @@ -411,7 +420,10 @@ func TestPodDeletionDoesntEnqueueRecreateDeployment(t *testing.T) { // return a non-empty list. f.podLister = append(f.podLister, pod1, pod2) - c, _ := f.newController() + c, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } enqueued := false c.enqueueDeployment = func(d *extensions.Deployment) { if d.Name == "foo" { @@ -444,7 +456,10 @@ func TestPodDeletionPartialReplicaSetOwnershipEnqueueRecreateDeployment(t *testi f.rsLister = append(f.rsLister, rs1, rs2) f.objects = append(f.objects, foo, rs1, rs2) - c, _ := f.newController() + c, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } enqueued := false c.enqueueDeployment = func(d *extensions.Deployment) { if d.Name == "foo" { @@ -480,7 +495,10 @@ func TestPodDeletionPartialReplicaSetOwnershipDoesntEnqueueRecreateDeployment(t // return a non-empty list. f.podLister = append(f.podLister, pod) - c, _ := f.newController() + c, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } enqueued := false c.enqueueDeployment = func(d *extensions.Deployment) { if d.Name == "foo" { @@ -512,7 +530,10 @@ func TestGetReplicaSetsForDeployment(t *testing.T) { f.objects = append(f.objects, d1, d2, rs1, rs2) // Start the fixture. - c, informers := f.newController() + c, informers, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } stopCh := make(chan struct{}) defer close(stopCh) informers.Start(stopCh) @@ -559,7 +580,10 @@ func TestGetReplicaSetsForDeploymentAdoptRelease(t *testing.T) { f.objects = append(f.objects, d, rsAdopt, rsRelease) // Start the fixture. - c, informers := f.newController() + c, informers, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } stopCh := make(chan struct{}) defer close(stopCh) informers.Start(stopCh) @@ -603,7 +627,10 @@ func TestGetPodMapForReplicaSets(t *testing.T) { f.objects = append(f.objects, d, rs1, rs2, pod1, pod2, pod3, pod4) // Start the fixture. - c, informers := f.newController() + c, informers, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } stopCh := make(chan struct{}) defer close(stopCh) informers.Start(stopCh) @@ -656,7 +683,10 @@ func TestAddReplicaSet(t *testing.T) { // Create the fixture but don't start it, // so nothing happens in the background. - dc, _ := f.newController() + dc, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } dc.addReplicaSet(rs1) if got, want := dc.queue.Len(), 1; got != want { @@ -703,7 +733,10 @@ func TestAddReplicaSetOrphan(t *testing.T) { // Create the fixture but don't start it, // so nothing happens in the background. - dc, _ := f.newController() + dc, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } dc.addReplicaSet(rs) if got, want := dc.queue.Len(), 2; got != want { @@ -728,7 +761,10 @@ func TestUpdateReplicaSet(t *testing.T) { // Create the fixture but don't start it, // so nothing happens in the background. - dc, _ := f.newController() + dc, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } prev := *rs1 next := *rs1 @@ -779,7 +815,10 @@ func TestUpdateReplicaSetOrphanWithNewLabels(t *testing.T) { // Create the fixture but don't start it, // so nothing happens in the background. - dc, _ := f.newController() + dc, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } // Change labels and expect all matching controllers to queue. prev := *rs @@ -806,7 +845,10 @@ func TestUpdateReplicaSetChangeControllerRef(t *testing.T) { // Create the fixture but don't start it, // so nothing happens in the background. - dc, _ := f.newController() + dc, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } // Change ControllerRef and expect both old and new to queue. prev := *rs @@ -833,7 +875,10 @@ func TestUpdateReplicaSetRelease(t *testing.T) { // Create the fixture but don't start it, // so nothing happens in the background. - dc, _ := f.newController() + dc, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } // Remove ControllerRef and expect all matching controller to sync orphan. prev := *rs @@ -863,7 +908,10 @@ func TestDeleteReplicaSet(t *testing.T) { // Create the fixture but don't start it, // so nothing happens in the background. - dc, _ := f.newController() + dc, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } dc.deleteReplicaSet(rs1) if got, want := dc.queue.Len(), 1; got != want { @@ -908,7 +956,10 @@ func TestDeleteReplicaSetOrphan(t *testing.T) { // Create the fixture but don't start it, // so nothing happens in the background. - dc, _ := f.newController() + dc, _, err := f.newController() + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } dc.deleteReplicaSet(rs) if got, want := dc.queue.Len(), 0; got != want { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/progress.go b/vendor/k8s.io/kubernetes/pkg/controller/deployment/progress.go index 259920cb0..1cd25ed1f 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/progress.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/progress.go @@ -112,7 +112,7 @@ func (dc *DeploymentController) syncRolloutStatus(allRSs []*extensions.ReplicaSe newDeployment := d newDeployment.Status = newStatus - _, err := dc.client.Extensions().Deployments(newDeployment.Namespace).UpdateStatus(newDeployment) + _, err := dc.client.ExtensionsV1beta1().Deployments(newDeployment.Namespace).UpdateStatus(newDeployment) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/progress_test.go b/vendor/k8s.io/kubernetes/pkg/controller/deployment/progress_test.go index 41125e7bc..9677728e7 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/progress_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/progress_test.go @@ -23,6 +23,7 @@ import ( "k8s.io/api/core/v1" extensions "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/util/workqueue" "k8s.io/kubernetes/pkg/controller/deployment/util" ) @@ -54,6 +55,16 @@ func currentDeployment(pds *int32, replicas, statusReplicas, updatedReplicas, av return d } +// helper to create RS with given availableReplicas +func newRSWithAvailable(name string, specReplicas, statusReplicas, availableReplicas int) *extensions.ReplicaSet { + rs := rs(name, specReplicas, nil, metav1.Time{}) + rs.Status = extensions.ReplicaSetStatus{ + Replicas: int32(statusReplicas), + AvailableReplicas: int32(availableReplicas), + } + return rs +} + func TestRequeueStuckDeployment(t *testing.T) { pds := int32(60) failed := []extensions.DeploymentCondition{ @@ -161,3 +172,170 @@ func TestRequeueStuckDeployment(t *testing.T) { } } } + +func TestSyncRolloutStatus(t *testing.T) { + pds := int32(60) + testTime := metav1.Date(2017, 2, 15, 18, 49, 00, 00, time.UTC) + failedTimedOut := extensions.DeploymentCondition{ + Type: extensions.DeploymentProgressing, + Status: v1.ConditionFalse, + Reason: util.TimedOutReason, + } + newRSAvailable := extensions.DeploymentCondition{ + Type: extensions.DeploymentProgressing, + Status: v1.ConditionTrue, + Reason: util.NewRSAvailableReason, + LastUpdateTime: testTime, + LastTransitionTime: testTime, + } + replicaSetUpdated := extensions.DeploymentCondition{ + Type: extensions.DeploymentProgressing, + Status: v1.ConditionTrue, + Reason: util.ReplicaSetUpdatedReason, + LastUpdateTime: testTime, + LastTransitionTime: testTime, + } + + tests := []struct { + name string + d *extensions.Deployment + allRSs []*extensions.ReplicaSet + newRS *extensions.ReplicaSet + conditionType extensions.DeploymentConditionType + conditionStatus v1.ConditionStatus + conditionReason string + lastUpdate metav1.Time + lastTransition metav1.Time + }{ + { + name: "General: remove Progressing condition and do not estimate progress if deployment has no Progress Deadline", + d: currentDeployment(nil, 3, 2, 2, 2, []extensions.DeploymentCondition{replicaSetUpdated}), + allRSs: []*extensions.ReplicaSet{newRSWithAvailable("bar", 0, 1, 1)}, + newRS: newRSWithAvailable("foo", 3, 2, 2), + }, + { + name: "General: do not estimate progress of deployment with only one active ReplicaSet", + d: currentDeployment(&pds, 3, 3, 3, 3, []extensions.DeploymentCondition{newRSAvailable}), + allRSs: []*extensions.ReplicaSet{newRSWithAvailable("bar", 3, 3, 3)}, + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionTrue, + conditionReason: util.NewRSAvailableReason, + lastUpdate: testTime, + lastTransition: testTime, + }, + { + name: "DeploymentProgressing: dont update lastTransitionTime if deployment already has Progressing=True", + d: currentDeployment(&pds, 3, 2, 2, 2, []extensions.DeploymentCondition{replicaSetUpdated}), + allRSs: []*extensions.ReplicaSet{newRSWithAvailable("bar", 0, 1, 1)}, + newRS: newRSWithAvailable("foo", 3, 2, 2), + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionTrue, + conditionReason: util.ReplicaSetUpdatedReason, + lastTransition: testTime, + }, + { + name: "DeploymentProgressing: update everything if deployment has Progressing=False", + d: currentDeployment(&pds, 3, 2, 2, 2, []extensions.DeploymentCondition{failedTimedOut}), + allRSs: []*extensions.ReplicaSet{newRSWithAvailable("bar", 0, 1, 1)}, + newRS: newRSWithAvailable("foo", 3, 2, 2), + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionTrue, + conditionReason: util.ReplicaSetUpdatedReason, + }, + { + name: "DeploymentProgressing: create Progressing condition if it does not exist", + d: currentDeployment(&pds, 3, 2, 2, 2, []extensions.DeploymentCondition{}), + allRSs: []*extensions.ReplicaSet{newRSWithAvailable("bar", 0, 1, 1)}, + newRS: newRSWithAvailable("foo", 3, 2, 2), + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionTrue, + conditionReason: util.ReplicaSetUpdatedReason, + }, + { + name: "DeploymentComplete: dont update lastTransitionTime if deployment already has Progressing=True", + d: currentDeployment(&pds, 3, 3, 3, 3, []extensions.DeploymentCondition{replicaSetUpdated}), + allRSs: []*extensions.ReplicaSet{}, + newRS: newRSWithAvailable("foo", 3, 3, 3), + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionTrue, + conditionReason: util.NewRSAvailableReason, + lastTransition: testTime, + }, + { + name: "DeploymentComplete: update everything if deployment has Progressing=False", + d: currentDeployment(&pds, 3, 3, 3, 3, []extensions.DeploymentCondition{failedTimedOut}), + allRSs: []*extensions.ReplicaSet{}, + newRS: newRSWithAvailable("foo", 3, 3, 3), + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionTrue, + conditionReason: util.NewRSAvailableReason, + }, + { + name: "DeploymentComplete: create Progressing condition if it does not exist", + d: currentDeployment(&pds, 3, 3, 3, 3, []extensions.DeploymentCondition{}), + allRSs: []*extensions.ReplicaSet{}, + newRS: newRSWithAvailable("foo", 3, 3, 3), + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionTrue, + conditionReason: util.NewRSAvailableReason, + }, + { + name: "DeploymentComplete: defend against NPE when newRS=nil", + d: currentDeployment(&pds, 0, 3, 3, 3, []extensions.DeploymentCondition{replicaSetUpdated}), + allRSs: []*extensions.ReplicaSet{newRSWithAvailable("foo", 0, 0, 0)}, + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionTrue, + conditionReason: util.NewRSAvailableReason, + }, + { + name: "DeploymentTimedOut: update status if rollout exceeds Progress Deadline", + d: currentDeployment(&pds, 3, 2, 2, 2, []extensions.DeploymentCondition{replicaSetUpdated}), + allRSs: []*extensions.ReplicaSet{}, + newRS: newRSWithAvailable("foo", 3, 2, 2), + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionFalse, + conditionReason: util.TimedOutReason, + }, + { + name: "DeploymentTimedOut: do not update status if deployment has existing timedOut condition", + d: currentDeployment(&pds, 3, 2, 2, 2, []extensions.DeploymentCondition{failedTimedOut}), + allRSs: []*extensions.ReplicaSet{}, + newRS: newRSWithAvailable("foo", 3, 2, 2), + conditionType: extensions.DeploymentProgressing, + conditionStatus: v1.ConditionFalse, + conditionReason: util.TimedOutReason, + lastUpdate: testTime, + lastTransition: testTime, + }, + } + + for _, test := range tests { + fake := fake.Clientset{} + dc := &DeploymentController{ + client: &fake, + } + + if test.newRS != nil { + test.allRSs = append(test.allRSs, test.newRS) + } + + err := dc.syncRolloutStatus(test.allRSs, test.newRS, test.d) + if err != nil { + t.Error(err) + } + + newCond := util.GetDeploymentCondition(test.d.Status, test.conditionType) + switch { + case newCond == nil: + if test.d.Spec.ProgressDeadlineSeconds != nil { + t.Errorf("%s: expected deployment condition: %s", test.name, test.conditionType) + } + case newCond.Status != test.conditionStatus || newCond.Reason != test.conditionReason: + t.Errorf("%s: DeploymentProgressing has status %s with reason %s. Expected %s with %s.", test.name, newCond.Status, newCond.Reason, test.conditionStatus, test.conditionReason) + case !test.lastUpdate.IsZero() && test.lastUpdate != testTime: + t.Errorf("%s: LastUpdateTime was changed to %s but expected %s;", test.name, test.lastUpdate, testTime) + case !test.lastTransition.IsZero() && test.lastTransition != testTime: + t.Errorf("%s: LastTransitionTime was changed to %s but expected %s;", test.name, test.lastTransition, testTime) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/recreate_test.go b/vendor/k8s.io/kubernetes/pkg/controller/deployment/recreate_test.go index 4dc7d3345..2cf866178 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/recreate_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/recreate_test.go @@ -65,7 +65,10 @@ func TestScaleDownOldReplicaSets(t *testing.T) { kc := fake.NewSimpleClientset(expected...) informers := informers.NewSharedInformerFactory(kc, controller.NoResyncPeriodFunc()) - c := NewDeploymentController(informers.Extensions().V1beta1().Deployments(), informers.Extensions().V1beta1().ReplicaSets(), informers.Core().V1().Pods(), kc) + c, err := NewDeploymentController(informers.Extensions().V1beta1().Deployments(), informers.Extensions().V1beta1().ReplicaSets(), informers.Core().V1().Pods(), kc) + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } c.eventRecorder = &record.FakeRecorder{} c.scaleDownOldReplicaSetsForRecreate(oldRSs, test.d) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/rollback.go b/vendor/k8s.io/kubernetes/pkg/controller/deployment/rollback.go index 89d840f7f..826185afc 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/rollback.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/rollback.go @@ -55,7 +55,7 @@ func (dc *DeploymentController) rollback(d *extensions.Deployment, rsList []*ext glog.V(4).Infof("Found replica set %q with desired revision %d", rs.Name, v) // rollback by copying podTemplate.Spec from the replica set // revision number will be incremented during the next getAllReplicaSetsAndSyncRevision call - // no-op if the the spec matches current deployment's podTemplate.Spec + // no-op if the spec matches current deployment's podTemplate.Spec performedRollback, err := dc.rollbackToTemplate(d, rs) if performedRollback && err == nil { dc.emitRollbackNormalEvent(d, fmt.Sprintf("Rolled back deployment %q to revision %d", d.Name, *toRevision)) @@ -112,6 +112,6 @@ func (dc *DeploymentController) emitRollbackNormalEvent(d *extensions.Deployment func (dc *DeploymentController) updateDeploymentAndClearRollbackTo(d *extensions.Deployment) error { glog.V(4).Infof("Cleans up rollbackTo of deployment %q", d.Name) d.Spec.RollbackTo = nil - _, err := dc.client.Extensions().Deployments(d.Namespace).Update(d) + _, err := dc.client.ExtensionsV1beta1().Deployments(d.Namespace).Update(d) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/sync.go b/vendor/k8s.io/kubernetes/pkg/controller/deployment/sync.go index c208ef188..497e82cb1 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/sync.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/sync.go @@ -100,7 +100,7 @@ func (dc *DeploymentController) checkPausedConditions(d *extensions.Deployment) } var err error - d, err = dc.client.Extensions().Deployments(d.Namespace).UpdateStatus(d) + d, err = dc.client.ExtensionsV1beta1().Deployments(d.Namespace).UpdateStatus(d) return err } @@ -167,7 +167,7 @@ func (dc *DeploymentController) addHashKeyToRSAndPods(rs *extensions.ReplicaSet, return nil, err } // 1. Add hash template label to the rs. This ensures that any newly created pods will have the new label. - updatedRS, err := deploymentutil.UpdateRSWithRetries(dc.client.Extensions().ReplicaSets(rs.Namespace), dc.rsLister, rs.Namespace, rs.Name, + updatedRS, err := deploymentutil.UpdateRSWithRetries(dc.client.ExtensionsV1beta1().ReplicaSets(rs.Namespace), dc.rsLister, rs.Namespace, rs.Name, func(updated *extensions.ReplicaSet) error { // Precondition: the RS doesn't contain the new hash in its pod template label. if updated.Spec.Template.Labels[extensions.DefaultDeploymentUniqueLabelKey] == hash { @@ -207,7 +207,7 @@ func (dc *DeploymentController) addHashKeyToRSAndPods(rs *extensions.ReplicaSet, // 3. Update rs label and selector to include the new hash label // Copy the old selector, so that we can scrub out any orphaned pods - updatedRS, err = deploymentutil.UpdateRSWithRetries(dc.client.Extensions().ReplicaSets(rs.Namespace), dc.rsLister, rs.Namespace, rs.Name, func(updated *extensions.ReplicaSet) error { + updatedRS, err = deploymentutil.UpdateRSWithRetries(dc.client.ExtensionsV1beta1().ReplicaSets(rs.Namespace), dc.rsLister, rs.Namespace, rs.Name, func(updated *extensions.ReplicaSet) error { // Precondition: the RS doesn't contain the new hash in its label and selector. if updated.Labels[extensions.DefaultDeploymentUniqueLabelKey] == hash && updated.Spec.Selector.MatchLabels[extensions.DefaultDeploymentUniqueLabelKey] == hash { return utilerrors.ErrPreconditionViolated @@ -251,7 +251,7 @@ func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsLis minReadySecondsNeedsUpdate := rsCopy.Spec.MinReadySeconds != d.Spec.MinReadySeconds if annotationsUpdated || minReadySecondsNeedsUpdate { rsCopy.Spec.MinReadySeconds = d.Spec.MinReadySeconds - return dc.client.Extensions().ReplicaSets(rsCopy.ObjectMeta.Namespace).Update(rsCopy) + return dc.client.ExtensionsV1beta1().ReplicaSets(rsCopy.ObjectMeta.Namespace).Update(rsCopy) } // Should use the revision in existingNewRS's annotation, since it set by before @@ -269,7 +269,7 @@ func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsLis if needsUpdate { var err error - if d, err = dc.client.Extensions().Deployments(d.Namespace).UpdateStatus(d); err != nil { + if d, err = dc.client.ExtensionsV1beta1().Deployments(d.Namespace).UpdateStatus(d); err != nil { return nil, err } } @@ -315,7 +315,7 @@ func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsLis // hash collisions. If there is any other error, we need to report it in the status of // the Deployment. alreadyExists := false - createdRS, err := dc.client.Extensions().ReplicaSets(d.Namespace).Create(&newRS) + createdRS, err := dc.client.ExtensionsV1beta1().ReplicaSets(d.Namespace).Create(&newRS) switch { // We may end up hitting this due to a slow cache or a fast resync of the Deployment. // Fetch a copy of the ReplicaSet. If its PodTemplateSpec is semantically deep equal @@ -338,7 +338,7 @@ func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsLis *d.Status.CollisionCount++ // Update the collisionCount for the Deployment and let it requeue by returning the original // error. - _, dErr := dc.client.Extensions().Deployments(d.Namespace).UpdateStatus(d) + _, dErr := dc.client.ExtensionsV1beta1().Deployments(d.Namespace).UpdateStatus(d) if dErr == nil { glog.V(2).Infof("Found a hash collision for deployment %q - bumping collisionCount (%d->%d) to resolve it", d.Name, preCollisionCount, *d.Status.CollisionCount) } @@ -355,7 +355,7 @@ func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsLis // We don't really care about this error at this point, since we have a bigger issue to report. // TODO: Identify which errors are permanent and switch DeploymentIsFailed to take into account // these reasons as well. Related issue: https://github.com/kubernetes/kubernetes/issues/18568 - _, _ = dc.client.Extensions().Deployments(d.Namespace).UpdateStatus(d) + _, _ = dc.client.ExtensionsV1beta1().Deployments(d.Namespace).UpdateStatus(d) } dc.eventRecorder.Eventf(d, v1.EventTypeWarning, deploymentutil.FailedRSCreateReason, msg) return nil, err @@ -372,7 +372,7 @@ func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsLis needsUpdate = true } if needsUpdate { - _, err = dc.client.Extensions().Deployments(d.Namespace).UpdateStatus(d) + _, err = dc.client.ExtensionsV1beta1().Deployments(d.Namespace).UpdateStatus(d) } return createdRS, err } @@ -508,7 +508,7 @@ func (dc *DeploymentController) scaleReplicaSet(rs *extensions.ReplicaSet, newSc var err error if sizeNeedsUpdate || annotationsNeedUpdate { *(rsCopy.Spec.Replicas) = newScale - rs, err = dc.client.Extensions().ReplicaSets(rsCopy.Namespace).Update(rsCopy) + rs, err = dc.client.ExtensionsV1beta1().ReplicaSets(rsCopy.Namespace).Update(rsCopy) if err == nil && sizeNeedsUpdate { scaled = true dc.eventRecorder.Eventf(deployment, v1.EventTypeNormal, "ScalingReplicaSet", "Scaled %s replica set %s to %d", scalingOperation, rs.Name, newScale) @@ -546,7 +546,7 @@ func (dc *DeploymentController) cleanupDeployment(oldRSs []*extensions.ReplicaSe continue } glog.V(4).Infof("Trying to cleanup replica set %q for deployment %q", rs.Name, deployment.Name) - if err := dc.client.Extensions().ReplicaSets(rs.Namespace).Delete(rs.Name, nil); err != nil && !errors.IsNotFound(err) { + if err := dc.client.ExtensionsV1beta1().ReplicaSets(rs.Namespace).Delete(rs.Name, nil); err != nil && !errors.IsNotFound(err) { // Return error instead of aggregating and continuing DELETEs on the theory // that we may be overloading the api server. return err @@ -566,7 +566,7 @@ func (dc *DeploymentController) syncDeploymentStatus(allRSs []*extensions.Replic newDeployment := d newDeployment.Status = newStatus - _, err := dc.client.Extensions().Deployments(newDeployment.Namespace).UpdateStatus(newDeployment) + _, err := dc.client.ExtensionsV1beta1().Deployments(newDeployment.Namespace).UpdateStatus(newDeployment) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/sync_test.go b/vendor/k8s.io/kubernetes/pkg/controller/deployment/sync_test.go index 416f2826d..ce74a3eea 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/sync_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/sync_test.go @@ -399,7 +399,10 @@ func TestDeploymentController_cleanupDeployment(t *testing.T) { fake := &fake.Clientset{} informers := informers.NewSharedInformerFactory(fake, controller.NoResyncPeriodFunc()) - controller := NewDeploymentController(informers.Extensions().V1beta1().Deployments(), informers.Extensions().V1beta1().ReplicaSets(), informers.Core().V1().Pods(), fake) + controller, err := NewDeploymentController(informers.Extensions().V1beta1().Deployments(), informers.Extensions().V1beta1().ReplicaSets(), informers.Core().V1().Pods(), fake) + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } controller.eventRecorder = &record.FakeRecorder{} controller.dListerSynced = alwaysReady diff --git a/vendor/k8s.io/kubernetes/pkg/controller/deployment/util/deployment_util.go b/vendor/k8s.io/kubernetes/pkg/controller/deployment/util/deployment_util.go index e9bd1d631..d017e3370 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/deployment/util/deployment_util.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/deployment/util/deployment_util.go @@ -721,7 +721,7 @@ func LabelPodsWithHash(podList *v1.PodList, c clientset.Interface, podLister cor } // Only label the pod that doesn't already have the new hash if pod.Labels[extensions.DefaultDeploymentUniqueLabelKey] != hash { - _, err := UpdatePodWithRetries(c.Core().Pods(namespace), podLister, pod.Namespace, pod.Name, + _, err := UpdatePodWithRetries(c.CoreV1().Pods(namespace), podLister, pod.Namespace, pod.Name, func(podToUpdate *v1.Pod) error { // Precondition: the pod doesn't contain the new hash in its label. if podToUpdate.Labels[extensions.DefaultDeploymentUniqueLabelKey] == hash { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/disruption/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/disruption/BUILD index aca10cc14..b92a2e2c9 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/disruption/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/disruption/BUILD @@ -48,8 +48,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/disruption", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/controller:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/disruption/disruption.go b/vendor/k8s.io/kubernetes/pkg/controller/disruption/disruption.go index ab474ed22..b234f5ca0 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/disruption/disruption.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/disruption/disruption.go @@ -294,7 +294,7 @@ func (dc *DisruptionController) Run(stopCh <-chan struct{}) { if dc.kubeClient != nil { glog.Infof("Sending events to api server.") - dc.broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(dc.kubeClient.Core().RESTClient()).Events("")}) + dc.broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(dc.kubeClient.CoreV1().RESTClient()).Events("")}) } else { glog.Infof("No api server defined - no events will be sent to API server.") } @@ -728,7 +728,7 @@ func refresh(pdbClient policyclientset.PodDisruptionBudgetInterface, pdb *policy } func (dc *DisruptionController) writePdbStatus(pdb *policy.PodDisruptionBudget) error { - pdbClient := dc.kubeClient.Policy().PodDisruptionBudgets(pdb.Namespace) + pdbClient := dc.kubeClient.PolicyV1beta1().PodDisruptionBudgets(pdb.Namespace) st := pdb.Status var err error diff --git a/vendor/k8s.io/kubernetes/pkg/controller/disruption/disruption_test.go b/vendor/k8s.io/kubernetes/pkg/controller/disruption/disruption_test.go index 7d792f6e3..b64a7a10c 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/disruption/disruption_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/disruption/disruption_test.go @@ -33,8 +33,8 @@ import ( "k8s.io/client-go/informers" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/core/install" "k8s.io/kubernetes/pkg/controller" "github.com/Azure/go-autorest/autorest/to" @@ -142,7 +142,7 @@ func newSelFooBar() *metav1.LabelSelector { func newMinAvailablePodDisruptionBudget(t *testing.T, minAvailable intstr.IntOrString) (*policy.PodDisruptionBudget, string) { pdb := &policy.PodDisruptionBudget{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: "foobar", @@ -165,7 +165,7 @@ func newMinAvailablePodDisruptionBudget(t *testing.T, minAvailable intstr.IntOrS func newMaxUnavailablePodDisruptionBudget(t *testing.T, maxUnavailable intstr.IntOrString) (*policy.PodDisruptionBudget, string) { pdb := &policy.PodDisruptionBudget{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: "foobar", @@ -210,7 +210,7 @@ func updatePodOwnerToSs(t *testing.T, pod *v1.Pod, ss *apps.StatefulSet) { func newPod(t *testing.T, name string) (*v1.Pod, string) { pod := &v1.Pod{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Annotations: make(map[string]string), @@ -237,7 +237,7 @@ func newPod(t *testing.T, name string) (*v1.Pod, string) { func newReplicationController(t *testing.T, size int32) (*v1.ReplicationController, string) { rc := &v1.ReplicationController{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: "foobar", @@ -261,7 +261,7 @@ func newReplicationController(t *testing.T, size int32) (*v1.ReplicationControll func newDeployment(t *testing.T, size int32) (*extensions.Deployment, string) { d := &extensions.Deployment{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: "foobar", @@ -285,7 +285,7 @@ func newDeployment(t *testing.T, size int32) (*extensions.Deployment, string) { func newReplicaSet(t *testing.T, size int32) (*extensions.ReplicaSet, string) { rs := &extensions.ReplicaSet{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: "foobar", @@ -309,7 +309,7 @@ func newReplicaSet(t *testing.T, size int32) (*extensions.ReplicaSet, string) { func newStatefulSet(t *testing.T, size int32) (*apps.StatefulSet, string) { ss := &apps.StatefulSet{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: "foobar", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/BUILD index ba98c2038..ed8acb206 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/BUILD @@ -14,9 +14,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/endpoint", deps = [ - "//pkg/api:go_default_library", "//pkg/api/v1/endpoints:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/controller:go_default_library", "//pkg/util/metrics:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -43,9 +43,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/endpoint", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/v1/endpoints:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/controller:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller.go index 13ea96fd8..8aa41da8a 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller.go @@ -36,9 +36,9 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/leaderelection/resourcelock" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/v1/endpoints" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/util/metrics" @@ -75,8 +75,8 @@ var ( // NewEndpointController returns a new *EndpointController. func NewEndpointController(podInformer coreinformers.PodInformer, serviceInformer coreinformers.ServiceInformer, endpointsInformer coreinformers.EndpointsInformer, client clientset.Interface) *EndpointController { - if client != nil && client.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("endpoint_controller", client.Core().RESTClient().GetRateLimiter()) + if client != nil && client.CoreV1().RESTClient().GetRateLimiter() != nil { + metrics.RegisterMetricAndTrackRateLimiterUsage("endpoint_controller", client.CoreV1().RESTClient().GetRateLimiter()) } e := &EndpointController{ client: client, @@ -144,7 +144,7 @@ type EndpointController struct { workerLoopPeriod time.Duration } -// Runs e; will not return until stopCh is closed. workers determines how many +// Run will not return until stopCh is closed. workers determines how many // endpoints will be handled in parallel. func (e *EndpointController) Run(workers int, stopCh <-chan struct{}) { defer utilruntime.HandleCrash() @@ -215,6 +215,10 @@ func podToEndpointAddress(pod *v1.Pod) *v1.EndpointAddress { } func podChanged(oldPod, newPod *v1.Pod) bool { + // If the pod's deletion timestamp is set, remove endpoint from ready address. + if newPod.DeletionTimestamp != oldPod.DeletionTimestamp { + return true + } // If the pod's readiness has changed, the associated endpoint address // will move from the unready endpoints set to the ready endpoints. // So for the purposes of an endpoint, a readiness change on a pod @@ -395,7 +399,7 @@ func (e *EndpointController) syncService(key string) error { // service is deleted. However, if we're down at the time when // the service is deleted, we will miss that deletion, so this // doesn't completely solve the problem. See #6877. - err = e.client.Core().Endpoints(namespace).Delete(name, nil) + err = e.client.CoreV1().Endpoints(namespace).Delete(name, nil) if err != nil && !errors.IsNotFound(err) { return err } @@ -508,10 +512,10 @@ func (e *EndpointController) syncService(key string) error { glog.V(4).Infof("Update endpoints for %v/%v, ready: %d not ready: %d", service.Namespace, service.Name, totalReadyEps, totalNotReadyEps) if createEndpoints { // No previous endpoints, create them - _, err = e.client.Core().Endpoints(service.Namespace).Create(newEndpoints) + _, err = e.client.CoreV1().Endpoints(service.Namespace).Create(newEndpoints) } else { // Pre-existing - _, err = e.client.Core().Endpoints(service.Namespace).Update(newEndpoints) + _, err = e.client.CoreV1().Endpoints(service.Namespace).Update(newEndpoints) } if err != nil { if createEndpoints && errors.IsForbidden(err) { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller_test.go index 496aec14b..49e786d9c 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/endpoint/endpoints_controller_test.go @@ -34,9 +34,10 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" endptspkg "k8s.io/kubernetes/pkg/api/v1/endpoints" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/controller" ) @@ -47,7 +48,7 @@ var emptyNodeName string func addPods(store cache.Store, namespace string, nPods int, nPorts int, nNotReady int) { for i := 0; i < nPods+nNotReady; i++ { p := &v1.Pod{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: fmt.Sprintf("pod%d", i), @@ -80,7 +81,7 @@ func addPods(store cache.Store, namespace string, nPods int, nPorts int, nNotRea func addNotReadyPodsWithSpecifiedRestartPolicyAndPhase(store cache.Store, namespace string, nPods int, nPorts int, restartPolicy v1.RestartPolicy, podPhase v1.PodPhase) { for i := 0; i < nPods; i++ { p := &v1.Pod{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ Namespace: namespace, Name: fmt.Sprintf("pod%d", i), @@ -137,7 +138,7 @@ type endpointController struct { } func newController(url string) *endpointController { - client := clientset.NewForConfigOrDie(&restclient.Config{Host: url, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: url, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) informerFactory := informers.NewSharedInformerFactory(client, controller.NoResyncPeriodFunc()) endpoints := NewEndpointController(informerFactory.Core().V1().Pods(), informerFactory.Core().V1().Services(), informerFactory.Core().V1().Endpoints(), client) @@ -1038,6 +1039,13 @@ func TestPodChanged(t *testing.T) { t.Errorf("Expected pod to be changed with pod readiness change") } oldPod.Status.Conditions = saveConditions + + now := metav1.NewTime(time.Now().UTC()) + newPod.ObjectMeta.DeletionTimestamp = &now + if !podChanged(oldPod, newPod) { + t.Errorf("Expected pod to be changed with DeletionTimestamp change") + } + newPod.ObjectMeta.DeletionTimestamp = oldPod.ObjectMeta.DeletionTimestamp.DeepCopy() } func TestDetermineNeededServiceUpdates(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/BUILD index da7243d08..1ea321cce 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/BUILD @@ -53,8 +53,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/garbagecollector", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/controller/garbagecollector/metaonly:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -66,6 +66,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", "//vendor/k8s.io/client-go/dynamic:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/garbagecollector.go b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/garbagecollector.go index 885364087..ef9a69473 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/garbagecollector.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/garbagecollector.go @@ -171,11 +171,7 @@ func (gc *GarbageCollector) Sync(discoveryClient discovery.DiscoveryInterface, p oldResources := make(map[schema.GroupVersionResource]struct{}) wait.Until(func() { // Get the current resource list from discovery. - newResources, err := GetDeletableResources(discoveryClient) - if err != nil { - utilruntime.HandleError(err) - return - } + newResources := GetDeletableResources(discoveryClient) // Detect first or abnormal sync and try again later. if oldResources == nil || len(oldResources) == 0 { @@ -592,15 +588,37 @@ func (gc *GarbageCollector) GraphHasUID(UIDs []types.UID) bool { // GetDeletableResources returns all resources from discoveryClient that the // garbage collector should recognize and work with. More specifically, all // preferred resources which support the 'delete' verb. -func GetDeletableResources(discoveryClient discovery.DiscoveryInterface) (map[schema.GroupVersionResource]struct{}, error) { +// +// All discovery errors are considered temporary. Upon encountering any error, +// GetDeletableResources will log and return any discovered resources it was +// able to process (which may be none). +func GetDeletableResources(discoveryClient discovery.ServerResourcesInterface) map[schema.GroupVersionResource]struct{} { preferredResources, err := discoveryClient.ServerPreferredResources() if err != nil { - return nil, fmt.Errorf("failed to get supported resources from server: %v", err) + if discovery.IsGroupDiscoveryFailedError(err) { + glog.Warning("failed to discover some groups: %v", err.(*discovery.ErrGroupDiscoveryFailed).Groups) + } else { + glog.Warning("failed to discover preferred resources: %v", err) + } + } + if preferredResources == nil { + return map[schema.GroupVersionResource]struct{}{} } + + // This is extracted from discovery.GroupVersionResources to allow tolerating + // failures on a per-resource basis. deletableResources := discovery.FilteredBy(discovery.SupportsAllVerbs{Verbs: []string{"delete"}}, preferredResources) - deletableGroupVersionResources, err := discovery.GroupVersionResources(deletableResources) - if err != nil { - return nil, fmt.Errorf("Failed to parse resources from server: %v", err) + deletableGroupVersionResources := map[schema.GroupVersionResource]struct{}{} + for _, rl := range deletableResources { + gv, err := schema.ParseGroupVersion(rl.GroupVersion) + if err != nil { + glog.Warning("ignoring invalid discovered resource %q: %v", rl.GroupVersion, err) + continue + } + for i := range rl.APIResources { + deletableGroupVersionResources[schema.GroupVersionResource{Group: gv.Group, Version: gv.Version, Resource: rl.APIResources[i].Name}] = struct{}{} + } } - return deletableGroupVersionResources, nil + + return deletableGroupVersionResources } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/garbagecollector_test.go b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/garbagecollector_test.go index b6b2dc478..0927b392c 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/garbagecollector_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/garbagecollector_test.go @@ -17,6 +17,7 @@ limitations under the License. package garbagecollector import ( + "fmt" "net/http" "net/http/httptest" "reflect" @@ -26,7 +27,7 @@ import ( "github.com/stretchr/testify/assert" - _ "k8s.io/kubernetes/pkg/api/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" @@ -37,12 +38,13 @@ import ( "k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/strategicpatch" + "k8s.io/client-go/discovery" "k8s.io/client-go/dynamic" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes/fake" restclient "k8s.io/client-go/rest" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly" ) @@ -56,7 +58,7 @@ func TestGarbageCollectorConstruction(t *testing.T) { config := &restclient.Config{} config.ContentConfig.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: metaonly.NewMetadataCodecFactory()} tweakableRM := meta.NewDefaultRESTMapper(nil, nil) - rm := &testRESTMapper{meta.MultiRESTMapper{tweakableRM, api.Registry.RESTMapper()}} + rm := &testRESTMapper{meta.MultiRESTMapper{tweakableRM, legacyscheme.Registry.RESTMapper()}} metaOnlyClientPool := dynamic.NewClientPool(config, rm, dynamic.LegacyAPIPathResolverFunc) config.ContentConfig.NegotiatedSerializer = nil clientPool := dynamic.NewClientPool(config, rm, dynamic.LegacyAPIPathResolverFunc) @@ -170,15 +172,15 @@ type garbageCollector struct { func setupGC(t *testing.T, config *restclient.Config) garbageCollector { config.ContentConfig.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: metaonly.NewMetadataCodecFactory()} - metaOnlyClientPool := dynamic.NewClientPool(config, api.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) + metaOnlyClientPool := dynamic.NewClientPool(config, legacyscheme.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) config.ContentConfig.NegotiatedSerializer = nil - clientPool := dynamic.NewClientPool(config, api.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) + clientPool := dynamic.NewClientPool(config, legacyscheme.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) podResource := map[schema.GroupVersionResource]struct{}{{Version: "v1", Resource: "pods"}: {}} client := fake.NewSimpleClientset() sharedInformers := informers.NewSharedInformerFactory(client, 0) alwaysStarted := make(chan struct{}) close(alwaysStarted) - gc, err := NewGarbageCollector(metaOnlyClientPool, clientPool, &testRESTMapper{api.Registry.RESTMapper()}, podResource, ignoredResources, sharedInformers, alwaysStarted) + gc, err := NewGarbageCollector(metaOnlyClientPool, clientPool, &testRESTMapper{legacyscheme.Registry.RESTMapper()}, podResource, ignoredResources, sharedInformers, alwaysStarted) if err != nil { t.Fatal(err) } @@ -413,7 +415,7 @@ func TestGCListWatcher(t *testing.T) { testHandler := &fakeActionHandler{} srv, clientConfig := testServerAndClientConfig(testHandler.ServeHTTP) defer srv.Close() - clientPool := dynamic.NewClientPool(clientConfig, api.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) + clientPool := dynamic.NewClientPool(clientConfig, legacyscheme.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) podResource := schema.GroupVersionResource{Version: "v1", Resource: "pods"} client, err := clientPool.ClientForGroupVersionResource(podResource) if err != nil { @@ -671,3 +673,109 @@ func TestOrphanDependentsFailure(t *testing.T) { t.Errorf("expected error contains text %s, got %v", expected, err) } } + +// TestGetDeletableResources ensures GetDeletableResources always returns +// something usable regardless of discovery output. +func TestGetDeletableResources(t *testing.T) { + tests := map[string]struct { + serverResources []*metav1.APIResourceList + err error + deletableResources map[schema.GroupVersionResource]struct{} + }{ + "no error": { + serverResources: []*metav1.APIResourceList{ + { + // Valid GroupVersion + GroupVersion: "apps/v1", + APIResources: []metav1.APIResource{ + {Name: "pods", Namespaced: true, Kind: "Pod", Verbs: metav1.Verbs{"delete"}}, + {Name: "services", Namespaced: true, Kind: "Service"}, + }, + }, + { + // Invalid GroupVersion, should be ignored + GroupVersion: "foo//whatever", + APIResources: []metav1.APIResource{ + {Name: "bars", Namespaced: true, Kind: "Bar", Verbs: metav1.Verbs{"delete"}}, + }, + }, + }, + err: nil, + deletableResources: map[schema.GroupVersionResource]struct{}{ + {Group: "apps", Version: "v1", Resource: "pods"}: {}, + }, + }, + "nonspecific failure, includes usable results": { + serverResources: []*metav1.APIResourceList{ + { + GroupVersion: "apps/v1", + APIResources: []metav1.APIResource{ + {Name: "pods", Namespaced: true, Kind: "Pod", Verbs: metav1.Verbs{"delete"}}, + {Name: "services", Namespaced: true, Kind: "Service"}, + }, + }, + }, + err: fmt.Errorf("internal error"), + deletableResources: map[schema.GroupVersionResource]struct{}{ + {Group: "apps", Version: "v1", Resource: "pods"}: {}, + }, + }, + "partial discovery failure, includes usable results": { + serverResources: []*metav1.APIResourceList{ + { + GroupVersion: "apps/v1", + APIResources: []metav1.APIResource{ + {Name: "pods", Namespaced: true, Kind: "Pod", Verbs: metav1.Verbs{"delete"}}, + {Name: "services", Namespaced: true, Kind: "Service"}, + }, + }, + }, + err: &discovery.ErrGroupDiscoveryFailed{ + Groups: map[schema.GroupVersion]error{ + {Group: "foo", Version: "v1"}: fmt.Errorf("discovery failure"), + }, + }, + deletableResources: map[schema.GroupVersionResource]struct{}{ + {Group: "apps", Version: "v1", Resource: "pods"}: {}, + }, + }, + "discovery failure, no results": { + serverResources: nil, + err: fmt.Errorf("internal error"), + deletableResources: map[schema.GroupVersionResource]struct{}{}, + }, + } + + for name, test := range tests { + t.Logf("testing %q", name) + client := &fakeServerResources{ + PreferredResources: test.serverResources, + Error: test.err, + } + actual := GetDeletableResources(client) + if !reflect.DeepEqual(test.deletableResources, actual) { + t.Errorf("expected resources:\n%v\ngot:\n%v", test.deletableResources, actual) + } + } +} + +type fakeServerResources struct { + PreferredResources []*metav1.APIResourceList + Error error +} + +func (_ *fakeServerResources) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { + return nil, nil +} + +func (_ *fakeServerResources) ServerResources() ([]*metav1.APIResourceList, error) { + return nil, nil +} + +func (f *fakeServerResources) ServerPreferredResources() ([]*metav1.APIResourceList, error) { + return f.PreferredResources, f.Error +} + +func (_ *fakeServerResources) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { + return nil, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/BUILD index 995d33642..157f4ba9a 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/BUILD @@ -15,9 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", @@ -30,7 +29,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly", library = ":go_default_library", deps = [ - "//pkg/api/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/metaonly.go b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/metaonly.go index 5f1db87d3..aec98ba33 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/metaonly.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/metaonly.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) type metaOnlyJSONScheme struct{} @@ -41,10 +41,10 @@ func gvkToMetadataOnlyObject(gvk schema.GroupVersionKind) runtime.Object { } func NewMetadataCodecFactory() serializer.CodecFactory { - // populating another scheme from api.Scheme, registering every kind with + // populating another scheme from legacyscheme.Scheme, registering every kind with // MetadataOnlyObject (or MetadataOnlyObjectList). scheme := runtime.NewScheme() - allTypes := api.Scheme.AllKnownTypes() + allTypes := legacyscheme.Scheme.AllKnownTypes() for kind := range allTypes { if kind.Version == runtime.APIVersionInternal { continue diff --git a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/metaonly_test.go b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/metaonly_test.go index 6c0952c33..2bdf9c879 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/metaonly_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/metaonly_test.go @@ -27,7 +27,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" - _ "k8s.io/kubernetes/pkg/api/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func getPod() *v1.Pod { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/zz_generated.deepcopy.go index 70e294693..9c766f263 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly/zz_generated.deepcopy.go @@ -21,27 +21,9 @@ limitations under the License. package metaonly import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetadataOnlyObject).DeepCopyInto(out.(*MetadataOnlyObject)) - return nil - }, InType: reflect.TypeOf(&MetadataOnlyObject{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetadataOnlyObjectList).DeepCopyInto(out.(*MetadataOnlyObjectList)) - return nil - }, InType: reflect.TypeOf(&MetadataOnlyObjectList{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MetadataOnlyObject) DeepCopyInto(out *MetadataOnlyObject) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/controller/job/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/job/BUILD index 3c8891a10..a5ab7ba7a 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/job/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/job/BUILD @@ -48,8 +48,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/job", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/controller:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/job/job_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/job/job_controller.go index e31f83943..a12cbed1c 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/job/job_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/job/job_controller.go @@ -770,7 +770,7 @@ func (jm *JobController) manageJob(activePods []*v1.Pod, succeeded int32, job *b } func (jm *JobController) updateJobStatus(job *batch.Job) error { - _, err := jm.kubeClient.Batch().Jobs(job.Namespace).UpdateStatus(job) + _, err := jm.kubeClient.BatchV1().Jobs(job.Namespace).UpdateStatus(job) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/job/job_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/job/job_controller_test.go index eb5dffec3..4a9ddac1f 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/job/job_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/job/job_controller_test.go @@ -36,8 +36,8 @@ import ( restclient "k8s.io/client-go/rest" core "k8s.io/client-go/testing" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/core/install" "k8s.io/kubernetes/pkg/controller" ) @@ -253,7 +253,7 @@ func TestControllerSyncJob(t *testing.T) { for name, tc := range testCases { // job manager setup - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) manager, sharedInformerFactory := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) fakePodControl := controller.FakePodControl{Err: tc.podControllerError, CreateLimit: tc.podLimit} manager.podControl = &fakePodControl @@ -405,7 +405,7 @@ func TestSyncJobPastDeadline(t *testing.T) { for name, tc := range testCases { // job manager setup - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) manager, sharedInformerFactory := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) fakePodControl := controller.FakePodControl{} manager.podControl = &fakePodControl @@ -479,7 +479,7 @@ func getCondition(job *batch.Job, condition batch.JobConditionType, reason strin } func TestSyncPastDeadlineJobFinished(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) manager, sharedInformerFactory := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) fakePodControl := controller.FakePodControl{} manager.podControl = &fakePodControl @@ -517,7 +517,7 @@ func TestSyncPastDeadlineJobFinished(t *testing.T) { } func TestSyncJobComplete(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) manager, sharedInformerFactory := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) fakePodControl := controller.FakePodControl{} manager.podControl = &fakePodControl @@ -545,7 +545,7 @@ func TestSyncJobComplete(t *testing.T) { } func TestSyncJobDeleted(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) manager, _ := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) fakePodControl := controller.FakePodControl{} manager.podControl = &fakePodControl @@ -569,7 +569,7 @@ func TestSyncJobDeleted(t *testing.T) { } func TestSyncJobUpdateRequeue(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) DefaultJobBackOff = time.Duration(0) // overwrite the default value for testing manager, sharedInformerFactory := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) fakePodControl := controller.FakePodControl{} @@ -599,7 +599,7 @@ func TestSyncJobUpdateRequeue(t *testing.T) { } func TestJobPodLookup(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) manager, sharedInformerFactory := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) manager.podStoreSynced = alwaysReady manager.jobStoreSynced = alwaysReady @@ -692,7 +692,7 @@ func newPod(name string, job *batch.Job) *v1.Pod { } func TestGetPodsForJob(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -828,7 +828,7 @@ func TestGetPodsForJobNoAdoptIfBeingDeletedRace(t *testing.T) { } func TestGetPodsForJobRelease(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -857,7 +857,7 @@ func TestGetPodsForJobRelease(t *testing.T) { } func TestAddPod(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -902,7 +902,7 @@ func TestAddPod(t *testing.T) { } func TestAddPodOrphan(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -930,7 +930,7 @@ func TestAddPodOrphan(t *testing.T) { } func TestUpdatePod(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -979,7 +979,7 @@ func TestUpdatePod(t *testing.T) { } func TestUpdatePodOrphanWithNewLabels(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -1006,7 +1006,7 @@ func TestUpdatePodOrphanWithNewLabels(t *testing.T) { } func TestUpdatePodChangeControllerRef(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -1032,7 +1032,7 @@ func TestUpdatePodChangeControllerRef(t *testing.T) { } func TestUpdatePodRelease(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -1058,7 +1058,7 @@ func TestUpdatePodRelease(t *testing.T) { } func TestDeletePod(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -1103,7 +1103,7 @@ func TestDeletePod(t *testing.T) { } func TestDeletePodOrphan(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) jm, informer := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) jm.podStoreSynced = alwaysReady jm.jobStoreSynced = alwaysReady @@ -1143,7 +1143,7 @@ func (fe FakeJobExpectations) SatisfiedExpectations(controllerKey string) bool { // TestSyncJobExpectations tests that a pod cannot sneak in between counting active pods // and checking expectations. func TestSyncJobExpectations(t *testing.T) { - clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + clientset := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) manager, sharedInformerFactory := newJobControllerFromClient(clientset, controller.NoResyncPeriodFunc) fakePodControl := controller.FakePodControl{} manager.podControl = &fakePodControl diff --git a/vendor/k8s.io/kubernetes/pkg/controller/namespace/deletion/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/namespace/deletion/BUILD index ecc3fdb0d..3ff183f2e 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/namespace/deletion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/namespace/deletion/BUILD @@ -32,7 +32,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/namespace/deletion", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core: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", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/namespace/deletion/namespaced_resources_deleter_test.go b/vendor/k8s.io/kubernetes/pkg/controller/namespace/deletion/namespaced_resources_deleter_test.go index b9ffc80a2..d20cb4b10 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/namespace/deletion/namespaced_resources_deleter_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/namespace/deletion/namespaced_resources_deleter_test.go @@ -36,7 +36,8 @@ import ( "k8s.io/client-go/kubernetes/fake" restclient "k8s.io/client-go/rest" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestFinalized(t *testing.T) { @@ -172,7 +173,7 @@ func testSyncNamespaceThatIsTerminating(t *testing.T, versions *metav1.APIVersio defer srv.Close() mockClient := fake.NewSimpleClientset(testInput.testNamespace) - clientPool := dynamic.NewClientPool(clientConfig, api.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) + clientPool := dynamic.NewClientPool(clientConfig, legacyscheme.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) fn := func() ([]*metav1.APIResourceList, error) { return resources, nil diff --git a/vendor/k8s.io/kubernetes/pkg/controller/namespace/namespace_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/namespace/namespace_controller.go index c3bdd28be..32a0bb33f 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/namespace/namespace_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/namespace/namespace_controller.go @@ -72,11 +72,11 @@ func NewNamespaceController( // create the controller so we can inject the enqueue function namespaceController := &NamespaceController{ queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "namespace"), - namespacedResourcesDeleter: deletion.NewNamespacedResourcesDeleter(kubeClient.Core().Namespaces(), clientPool, kubeClient.Core(), discoverResourcesFn, finalizerToken, true), + namespacedResourcesDeleter: deletion.NewNamespacedResourcesDeleter(kubeClient.CoreV1().Namespaces(), clientPool, kubeClient.CoreV1(), discoverResourcesFn, finalizerToken, true), } - if kubeClient != nil && kubeClient.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("namespace_controller", kubeClient.Core().RESTClient().GetRateLimiter()) + if kubeClient != nil && kubeClient.CoreV1().RESTClient().GetRateLimiter() != nil { + metrics.RegisterMetricAndTrackRateLimiterUsage("namespace_controller", kubeClient.CoreV1().RESTClient().GetRateLimiter()) } // configure the namespace informer event handlers diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/node/BUILD index 78e933478..7ed48e2dc 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/BUILD @@ -60,7 +60,6 @@ go_library( "//pkg/util/node:go_default_library", "//pkg/util/system:go_default_library", "//pkg/util/taints:go_default_library", - "//pkg/util/version:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/node/OWNERS index b94f08c6b..99dd2eda0 100755 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/OWNERS @@ -6,3 +6,4 @@ reviewers: - smarterclayton - ingvagabund - aveshagarwal +- k82cn diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/adapter.go b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/adapter.go index 00a91535c..6a5d9e480 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/adapter.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/adapter.go @@ -52,7 +52,7 @@ func newAdapter(k8s clientset.Interface, cloud *gce.GCECloud) *adapter { ret.recorder = broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "cloudCIDRAllocator"}) glog.V(0).Infof("Sending events to api server.") broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{ - Interface: v1core.New(k8s.Core().RESTClient()).Events(""), + Interface: v1core.New(k8s.CoreV1().RESTClient()).Events(""), }) return ret @@ -86,7 +86,7 @@ func (a *adapter) AddAlias(ctx context.Context, nodeName string, cidrRange *net. } func (a *adapter) Node(ctx context.Context, name string) (*v1.Node, error) { - return a.k8s.Core().Nodes().Get(name, metav1.GetOptions{}) + return a.k8s.CoreV1().Nodes().Get(name, metav1.GetOptions{}) } func (a *adapter) UpdateNodePodCIDR(ctx context.Context, node *v1.Node, cidrRange *net.IPNet) error { @@ -101,7 +101,7 @@ func (a *adapter) UpdateNodePodCIDR(ctx context.Context, node *v1.Node, cidrRang return err } - _, err = a.k8s.Core().Nodes().Patch(node.Name, types.StrategicMergePatchType, bytes) + _, err = a.k8s.CoreV1().Nodes().Patch(node.Name, types.StrategicMergePatchType, bytes) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidr_allocator.go b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidr_allocator.go index 6fa8a684e..56523009a 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidr_allocator.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidr_allocator.go @@ -107,7 +107,7 @@ func listNodes(kubeClient clientset.Interface) (*v1.NodeList, error) { // controller manager to restart. if pollErr := wait.Poll(10*time.Second, apiserverStartupGracePeriod, func() (bool, error) { var err error - nodeList, err = kubeClient.Core().Nodes().List(metav1.ListOptions{ + nodeList, err = kubeClient.CoreV1().Nodes().List(metav1.ListOptions{ FieldSelector: fields.Everything().String(), LabelSelector: labels.Everything().String(), }) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidrset/cidr_set.go b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidrset/cidr_set.go index c977fd08b..088c62511 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidrset/cidr_set.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidrset/cidr_set.go @@ -48,30 +48,33 @@ const ( ) var ( - // ErrCIDRRangeNoCIDRsRemaining occurs when there are no more space + // ErrCIDRRangeNoCIDRsRemaining occurs when there is no more space // to allocate CIDR ranges. ErrCIDRRangeNoCIDRsRemaining = errors.New( "CIDR allocation failed; there are no remaining CIDRs left to allocate in the accepted range") + // ErrCIDRSetSubNetTooBig occurs when the subnet mask size is too + // big compared to the CIDR mask size. + ErrCIDRSetSubNetTooBig = errors.New( + "New CIDR set failed; the node CIDR size is too big") ) // NewCIDRSet creates a new CidrSet. -func NewCIDRSet(clusterCIDR *net.IPNet, subNetMaskSize int) *CidrSet { +func NewCIDRSet(clusterCIDR *net.IPNet, subNetMaskSize int) (*CidrSet, error) { clusterMask := clusterCIDR.Mask clusterMaskSize, _ := clusterMask.Size() var maxCIDRs int if (clusterCIDR.IP.To4() == nil) && (subNetMaskSize-clusterMaskSize > clusterSubnetMaxDiff) { - maxCIDRs = 0 - } else { - maxCIDRs = 1 << uint32(subNetMaskSize-clusterMaskSize) + return nil, ErrCIDRSetSubNetTooBig } + maxCIDRs = 1 << uint32(subNetMaskSize-clusterMaskSize) return &CidrSet{ clusterCIDR: clusterCIDR, clusterIP: clusterCIDR.IP, clusterMaskSize: clusterMaskSize, maxCIDRs: maxCIDRs, subNetMaskSize: subNetMaskSize, - } + }, nil } // TODO: Remove this function when upgrading to go 1.9 diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidrset/cidr_set_test.go b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidrset/cidr_set_test.go index a79cc100a..826eeba9b 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidrset/cidr_set_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cidrset/cidr_set_test.go @@ -47,8 +47,10 @@ func TestCIDRSetFullyAllocated(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) - + a, err := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) + if err != nil { + t.Fatalf("unexpected error: %v for %v", err, tc.description) + } p, err := a.AllocateNext() if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) @@ -196,7 +198,10 @@ func TestIndexToCIDRBlock(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := NewCIDRSet(clusterCIDR, tc.subnetMaskSize) + a, err := NewCIDRSet(clusterCIDR, tc.subnetMaskSize) + if err != nil { + t.Fatalf("error for %v ", tc.description) + } cidr := a.indexToCIDRBlock(tc.index) if cidr.String() != tc.CIDRBlock { t.Fatalf("error for %v index %d %s", tc.description, tc.index, cidr.String()) @@ -220,7 +225,10 @@ func TestCIDRSet_RandomishAllocation(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := NewCIDRSet(clusterCIDR, 24) + a, err := NewCIDRSet(clusterCIDR, 24) + if err != nil { + t.Fatalf("Error allocating CIDRSet for %v", tc.description) + } // allocate all the CIDRs var cidrs []*net.IPNet @@ -232,7 +240,7 @@ func TestCIDRSet_RandomishAllocation(t *testing.T) { } } - var err error + //var err error _, err = a.AllocateNext() if err == nil { t.Fatalf("expected error because of fully-allocated range for %v", tc.description) @@ -278,8 +286,10 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := NewCIDRSet(clusterCIDR, 24) - + a, err := NewCIDRSet(clusterCIDR, 24) + if err != nil { + t.Fatalf("Error allocating CIDRSet for %v", tc.description) + } // allocate all the CIDRs var cidrs []*net.IPNet var numCIDRs = 256 @@ -292,7 +302,7 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { } } - var err error + //var err error _, err = a.AllocateNext() if err == nil { t.Fatalf("expected error because of fully-allocated range for %v", tc.description) @@ -457,8 +467,10 @@ func TestGetBitforCIDR(t *testing.T) { t.Fatalf("unexpected error: %v for %v", err, tc.description) } - cs := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) - + cs, err := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) + if err != nil { + t.Fatalf("Error allocating CIDRSet for %v", tc.description) + } _, subnetCIDR, err := net.ParseCIDR(tc.subNetCIDRStr) if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) @@ -625,7 +637,10 @@ func TestOccupy(t *testing.T) { t.Fatalf("unexpected error: %v for %v", err, tc.description) } - cs := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) + cs, err := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) + if err != nil { + t.Fatalf("Error allocating CIDRSet for %v", tc.description) + } _, subnetCIDR, err := net.ParseCIDR(tc.subNetCIDRStr) if err != nil { @@ -686,7 +701,13 @@ func TestCIDRSetv6(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) + a, err := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) + if err != nil { + if tc.expectErr { + continue + } + t.Fatalf("Error allocating CIDRSet for %v", tc.description) + } p, err := a.AllocateNext() if err == nil && tc.expectErr { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cloud_cidr_allocator.go b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cloud_cidr_allocator.go index 5403ebb91..778f6a6a1 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cloud_cidr_allocator.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/cloud_cidr_allocator.go @@ -71,7 +71,7 @@ func NewCloudCIDRAllocator(client clientset.Interface, cloud cloudprovider.Inter recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "cidrAllocator"}) eventBroadcaster.StartLogging(glog.Infof) glog.V(0).Infof("Sending events to api server.") - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(client.Core().RESTClient()).Events("")}) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(client.CoreV1().RESTClient()).Events("")}) gceCloud, ok := cloud.(*gce.GCECloud) if !ok { @@ -170,7 +170,7 @@ func (ca *cloudCIDRAllocator) updateCIDRAllocation(data nodeAndCIDR) error { podCIDR := data.cidr.String() for rep := 0; rep < cidrUpdateRetries; rep++ { // TODO: change it to using PATCH instead of full Node updates. - node, err = ca.client.Core().Nodes().Get(data.nodeName, metav1.GetOptions{}) + node, err = ca.client.CoreV1().Nodes().Get(data.nodeName, metav1.GetOptions{}) if err != nil { glog.Errorf("Failed while getting node %v to retry updating Node.Spec.PodCIDR: %v", data.nodeName, err) continue @@ -189,7 +189,7 @@ func (ca *cloudCIDRAllocator) updateCIDRAllocation(data nodeAndCIDR) error { // See https://github.com/kubernetes/kubernetes/pull/42147#discussion_r103357248 } node.Spec.PodCIDR = podCIDR - if _, err = ca.client.Core().Nodes().Update(node); err == nil { + if _, err = ca.client.CoreV1().Nodes().Update(node); err == nil { glog.Infof("Set node %v PodCIDR to %v", node.Name, podCIDR) break } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/controller.go b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/controller.go index f8a237567..4b1221b67 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/controller.go @@ -76,11 +76,16 @@ func NewController( return nil, fmt.Errorf("cloud IPAM controller does not support %q provider", cloud.ProviderName()) } + set, err := cidrset.NewCIDRSet(clusterCIDR, nodeCIDRMaskSize) + if err != nil { + return nil, err + } + c := &Controller{ config: config, adapter: newAdapter(kubeClient, gceCloud), syncers: make(map[string]*nodesync.NodeSync), - set: cidrset.NewCIDRSet(clusterCIDR, nodeCIDRMaskSize), + set: set, } if err := occupyServiceCIDR(c.set, clusterCIDR, serviceCIDR); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/controller_test.go index 22baf2081..14fbb4340 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/controller_test.go @@ -37,7 +37,10 @@ TestCase: {"10.2.0.0/24"}, } { serviceCIDR := test.MustParseCIDR(tc.serviceCIDR) - set := cidrset.NewCIDRSet(test.MustParseCIDR(clusterCIDR), 24) + set, err := cidrset.NewCIDRSet(test.MustParseCIDR(clusterCIDR), 24) + if err != nil { + t.Errorf("test case %+v: NewCIDRSet() = %v, want nil", tc, err) + } if err := occupyServiceCIDR(set, test.MustParseCIDR(clusterCIDR), serviceCIDR); err != nil { t.Errorf("test case %+v: occupyServiceCIDR() = %v, want nil", tc, err) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/range_allocator.go b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/range_allocator.go index cacc47a86..102eac43d 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/range_allocator.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/range_allocator.go @@ -68,11 +68,15 @@ func NewCIDRRangeAllocator(client clientset.Interface, clusterCIDR *net.IPNet, s recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "cidrAllocator"}) eventBroadcaster.StartLogging(glog.Infof) glog.V(0).Infof("Sending events to api server.") - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(client.Core().RESTClient()).Events("")}) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(client.CoreV1().RESTClient()).Events("")}) + set, err := cidrset.NewCIDRSet(clusterCIDR, subNetMaskSize) + if err != nil { + return nil, err + } ra := &rangeAllocator{ client: client, - cidrs: cidrset.NewCIDRSet(clusterCIDR, subNetMaskSize), + cidrs: set, clusterCIDR: clusterCIDR, nodeCIDRUpdateChannel: make(chan nodeAndCIDR, cidrUpdateQueueSize), recorder: recorder, @@ -228,7 +232,7 @@ func (r *rangeAllocator) updateCIDRAllocation(data nodeAndCIDR) error { podCIDR := data.cidr.String() for rep := 0; rep < cidrUpdateRetries; rep++ { // TODO: change it to using PATCH instead of full Node updates. - node, err = r.client.Core().Nodes().Get(data.nodeName, metav1.GetOptions{}) + node, err = r.client.CoreV1().Nodes().Get(data.nodeName, metav1.GetOptions{}) if err != nil { glog.Errorf("Failed while getting node %v to retry updating Node.Spec.PodCIDR: %v", data.nodeName, err) continue @@ -245,7 +249,7 @@ func (r *rangeAllocator) updateCIDRAllocation(data nodeAndCIDR) error { return nil } node.Spec.PodCIDR = podCIDR - if _, err = r.client.Core().Nodes().Update(node); err == nil { + if _, err = r.client.CoreV1().Nodes().Update(node); err == nil { glog.Infof("Set node %v PodCIDR to %v", node.Name, podCIDR) break } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/sync/sync_test.go b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/sync/sync_test.go index 15d3e1b5b..d32684804 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/sync/sync_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/ipam/sync/sync_test.go @@ -194,7 +194,8 @@ func TestNodeSyncUpdate(t *testing.T) { wantError: false, }, } { - sync := New(&tc.fake, &tc.fake, &tc.fake, tc.mode, "node1", cidrset.NewCIDRSet(clusterCIDRRange, 24)) + cidr, _ := cidrset.NewCIDRSet(clusterCIDRRange, 24) + sync := New(&tc.fake, &tc.fake, &tc.fake, tc.mode, "node1", cidr) doneChan := make(chan struct{}) // Do a single step of the loop. @@ -225,7 +226,8 @@ func TestNodeSyncResync(t *testing.T) { resyncTimeout: time.Millisecond, reportChan: make(chan struct{}), } - sync := New(fake, fake, fake, SyncFromCluster, "node1", cidrset.NewCIDRSet(clusterCIDRRange, 24)) + cidr, _ := cidrset.NewCIDRSet(clusterCIDRRange, 24) + sync := New(fake, fake, fake, SyncFromCluster, "node1", cidr) doneChan := make(chan struct{}) go sync.Loop(doneChan) @@ -267,7 +269,8 @@ func TestNodeSyncDelete(t *testing.T) { }, }, } { - sync := New(&tc.fake, &tc.fake, &tc.fake, tc.mode, "node1", cidrset.NewCIDRSet(clusterCIDRRange, 24)) + cidr, _ := cidrset.NewCIDRSet(clusterCIDRRange, 24) + sync := New(&tc.fake, &tc.fake, &tc.fake, tc.mode, "node1", cidr) doneChan := make(chan struct{}) // Do a single step of the loop. diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/node_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/node/node_controller.go index a33e0b8b7..900bbd622 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/node_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/node_controller.go @@ -55,7 +55,6 @@ import ( utilnode "k8s.io/kubernetes/pkg/util/node" "k8s.io/kubernetes/pkg/util/system" taintutils "k8s.io/kubernetes/pkg/util/taints" - utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" ) @@ -65,7 +64,6 @@ func init() { } var ( - gracefulDeletionVersion = utilversion.MustParseSemantic("v1.1.0") // UnreachableTaintTemplate is the taint for when a node becomes unreachable. UnreachableTaintTemplate = &v1.Taint{ Key: algorithm.TaintNodeUnreachable, @@ -186,7 +184,6 @@ type Controller struct { cidrAllocator ipam.CIDRAllocator taintManager *scheduler.NoExecuteTaintManager - forcefullyDeletePod func(*v1.Pod) error nodeExistsInCloudProvider func(types.NodeName) (bool, error) computeZoneStateFunc func(nodeConditions []*v1.NodeCondition) (int, ZoneState) enterPartialDisruptionFunc func(nodeNum int) float32 @@ -249,11 +246,11 @@ func NewNodeController( glog.V(0).Infof("Sending events to api server.") eventBroadcaster.StartRecordingToSink( &v1core.EventSinkImpl{ - Interface: v1core.New(kubeClient.Core().RESTClient()).Events(""), + Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events(""), }) - if kubeClient != nil && kubeClient.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("node_controller", kubeClient.Core().RESTClient().GetRateLimiter()) + if kubeClient != nil && kubeClient.CoreV1().RESTClient().GetRateLimiter() != nil { + metrics.RegisterMetricAndTrackRateLimiterUsage("node_controller", kubeClient.CoreV1().RESTClient().GetRateLimiter()) } if allocateNodeCIDRs { @@ -285,9 +282,6 @@ func NewNodeController( serviceCIDR: serviceCIDR, allocateNodeCIDRs: allocateNodeCIDRs, allocatorType: allocatorType, - forcefullyDeletePod: func(p *v1.Pod) error { - return util.ForcefullyDeletePod(kubeClient, p) - }, nodeExistsInCloudProvider: func(nodeName types.NodeName) (bool, error) { return util.NodeExistsInCloudProvider(cloud, nodeName) }, @@ -654,7 +648,7 @@ func (nc *Controller) monitorNodeStatus() error { return true, nil } name := node.Name - node, err = nc.kubeClient.Core().Nodes().Get(name, metav1.GetOptions{}) + node, err = nc.kubeClient.CoreV1().Nodes().Get(name, metav1.GetOptions{}) if err != nil { glog.Errorf("Failed while getting a Node to retry updating NodeStatus. Probably Node %s was deleted.", name) return false, err @@ -1061,7 +1055,7 @@ func (nc *Controller) tryUpdateNodeStatus(node *v1.Node) (time.Duration, v1.Node _, currentCondition := v1node.GetNodeCondition(&node.Status, v1.NodeReady) if !apiequality.Semantic.DeepEqual(currentCondition, &observedReadyCondition) { - if _, err = nc.kubeClient.Core().Nodes().UpdateStatus(node); err != nil { + if _, err = nc.kubeClient.CoreV1().Nodes().UpdateStatus(node); err != nil { glog.Errorf("Error updating node %s: %v", node.Name, err) return gracePeriod, observedReadyCondition, currentReadyCondition, err } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/scheduler/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/node/scheduler/BUILD index 4c57a3828..eb6465351 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/scheduler/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/scheduler/BUILD @@ -35,8 +35,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/node/scheduler", deps = [ - "//pkg/api/helper:go_default_library", - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/scheduler/taint_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/node/scheduler/taint_controller.go index bab013489..bf641f69f 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/scheduler/taint_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/scheduler/taint_controller.go @@ -23,8 +23,8 @@ import ( "k8s.io/api/core/v1" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api/helper" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + "k8s.io/kubernetes/pkg/apis/core/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" @@ -88,7 +88,7 @@ func deletePodHandler(c clientset.Interface, emitEventFunc func(types.Namespaced } var err error for i := 0; i < retries; i++ { - err = c.Core().Pods(ns).Delete(name, &metav1.DeleteOptions{}) + err = c.CoreV1().Pods(ns).Delete(name, &metav1.DeleteOptions{}) if err == nil { break } @@ -110,12 +110,12 @@ func getNoExecuteTaints(taints []v1.Taint) []v1.Taint { func getPodsAssignedToNode(c clientset.Interface, nodeName string) ([]v1.Pod, error) { selector := fields.SelectorFromSet(fields.Set{"spec.nodeName": nodeName}) - pods, err := c.Core().Pods(v1.NamespaceAll).List(metav1.ListOptions{ + pods, err := c.CoreV1().Pods(v1.NamespaceAll).List(metav1.ListOptions{ FieldSelector: selector.String(), LabelSelector: labels.Everything().String(), }) for i := 0; i < retries && err != nil; i++ { - pods, err = c.Core().Pods(v1.NamespaceAll).List(metav1.ListOptions{ + pods, err = c.CoreV1().Pods(v1.NamespaceAll).List(metav1.ListOptions{ FieldSelector: selector.String(), LabelSelector: labels.Everything().String(), }) @@ -156,7 +156,7 @@ func NewNoExecuteTaintManager(c clientset.Interface) *NoExecuteTaintManager { eventBroadcaster.StartLogging(glog.Infof) if c != nil { glog.V(0).Infof("Sending events to api server.") - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(c.Core().RESTClient()).Events("")}) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(c.CoreV1().RESTClient()).Events("")}) } else { glog.Fatalf("kubeClient is nil when starting NodeController") } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/util/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/node/util/BUILD index d49ec9e92..b14d0cb92 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/util/BUILD @@ -10,12 +10,11 @@ go_library( srcs = ["controller_utils.go"], importpath = "k8s.io/kubernetes/pkg/controller/node/util", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", "//pkg/kubelet/util/format:go_default_library", "//pkg/util/node:go_default_library", - "//pkg/util/version:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/node/util/controller_utils.go b/vendor/k8s.io/kubernetes/pkg/controller/node/util/controller_utils.go index 17258e774..a9d8e08fa 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/node/util/controller_utils.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/node/util/controller_utils.go @@ -33,12 +33,11 @@ import ( "k8s.io/api/core/v1" clientset "k8s.io/client-go/kubernetes" extensionslisters "k8s.io/client-go/listers/extensions/v1beta1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/kubelet/util/format" nodepkg "k8s.io/kubernetes/pkg/util/node" - utilversion "k8s.io/kubernetes/pkg/util/version" "github.com/golang/glog" ) @@ -47,10 +46,6 @@ var ( // ErrCloudInstance occurs when the cloud provider does not support // the Instances API. ErrCloudInstance = errors.New("cloud provider doesn't support instances") - // podStatusReconciliationVersion is the the minimum kubelet version - // for which the nodecontroller can safely flip pod.Status to - // NotReady. - podStatusReconciliationVersion = utilversion.MustParseSemantic("v1.2.0") ) // DeletePods will delete all pods from master running on given node, @@ -60,7 +55,7 @@ func DeletePods(kubeClient clientset.Interface, recorder record.EventRecorder, n remaining := false selector := fields.OneTermEqualSelector(api.PodHostField, nodeName).String() options := metav1.ListOptions{FieldSelector: selector} - pods, err := kubeClient.Core().Pods(metav1.NamespaceAll).List(options) + pods, err := kubeClient.CoreV1().Pods(metav1.NamespaceAll).List(options) var updateErrList []error if err != nil { @@ -98,7 +93,7 @@ func DeletePods(kubeClient clientset.Interface, recorder record.EventRecorder, n glog.V(2).Infof("Starting deletion of pod %v/%v", pod.Namespace, pod.Name) recorder.Eventf(&pod, v1.EventTypeNormal, "NodeControllerEviction", "Marking for deletion Pod %s from Node %s", pod.Name, nodeName) - if err := kubeClient.Core().Pods(pod.Namespace).Delete(pod.Name, nil); err != nil { + if err := kubeClient.CoreV1().Pods(pod.Namespace).Delete(pod.Name, nil); err != nil { return false, err } remaining = true @@ -123,27 +118,16 @@ func SetPodTerminationReason(kubeClient clientset.Interface, pod *v1.Pod, nodeNa var updatedPod *v1.Pod var err error - if updatedPod, err = kubeClient.Core().Pods(pod.Namespace).UpdateStatus(pod); err != nil { + if updatedPod, err = kubeClient.CoreV1().Pods(pod.Namespace).UpdateStatus(pod); err != nil { return nil, err } return updatedPod, nil } -// ForcefullyDeletePod deletes the pod immediately. -func ForcefullyDeletePod(c clientset.Interface, pod *v1.Pod) error { - var zero int64 - glog.Infof("NodeController is force deleting Pod: %v:%v", pod.Namespace, pod.Name) - err := c.Core().Pods(pod.Namespace).Delete(pod.Name, &metav1.DeleteOptions{GracePeriodSeconds: &zero}) - if err == nil { - glog.V(4).Infof("forceful deletion of %s succeeded", pod.Name) - } - return err -} - // ForcefullyDeleteNode deletes the node immediately. The pods on the // node are cleaned up by the podGC. func ForcefullyDeleteNode(kubeClient clientset.Interface, nodeName string) error { - if err := kubeClient.Core().Nodes().Delete(nodeName, nil); err != nil { + if err := kubeClient.CoreV1().Nodes().Delete(nodeName, nil); err != nil { return fmt.Errorf("unable to delete node %q: %v", nodeName, err) } return nil @@ -155,7 +139,7 @@ func MarkAllPodsNotReady(kubeClient clientset.Interface, node *v1.Node) error { nodeName := node.Name glog.V(2).Infof("Update ready status of pods on node [%v]", nodeName) opts := metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector(api.PodHostField, nodeName).String()} - pods, err := kubeClient.Core().Pods(metav1.NamespaceAll).List(opts) + pods, err := kubeClient.CoreV1().Pods(metav1.NamespaceAll).List(opts) if err != nil { return err } @@ -171,7 +155,7 @@ func MarkAllPodsNotReady(kubeClient clientset.Interface, node *v1.Node) error { if cond.Type == v1.PodReady { pod.Status.Conditions[i].Status = v1.ConditionFalse glog.V(2).Infof("Updating ready status of pod %v to false", pod.Name) - _, err := kubeClient.Core().Pods(pod.Namespace).UpdateStatus(&pod) + _, err := kubeClient.CoreV1().Pods(pod.Namespace).UpdateStatus(&pod) if err != nil { glog.Warningf("Failed to update status for pod %q: %v", format.Pod(&pod), err) errMsg = append(errMsg, fmt.Sprintf("%v", err)) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/BUILD index 549c2d66e..08701232b 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/podautoscaler", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/controller:go_default_library", "//pkg/controller/podautoscaler/metrics:go_default_library", @@ -24,9 +24,9 @@ go_library( "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", @@ -39,8 +39,8 @@ go_library( "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:go_default_library", "//vendor/k8s.io/client-go/listers/autoscaling/v1:go_default_library", + "//vendor/k8s.io/client-go/scale:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", "//vendor/k8s.io/client-go/util/workqueue:go_default_library", @@ -58,9 +58,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/podautoscaler", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/autoscaling/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions/install:go_default_library", "//pkg/controller:go_default_library", "//pkg/controller/podautoscaler/metrics:go_default_library", @@ -69,15 +70,16 @@ go_test( "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource: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/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/scale/fake:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", "//vendor/k8s.io/heapster/metrics/api/v1/types:go_default_library", "//vendor/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal.go index 52541929f..e9719f8fc 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal.go @@ -25,9 +25,9 @@ import ( autoscalingv1 "k8s.io/api/autoscaling/v1" autoscalingv2 "k8s.io/api/autoscaling/v2beta1" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/api/errors" + apimeta "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" @@ -39,12 +39,12 @@ import ( "k8s.io/client-go/kubernetes/scheme" autoscalingclient "k8s.io/client-go/kubernetes/typed/autoscaling/v1" v1core "k8s.io/client-go/kubernetes/typed/core/v1" - extensionsclient "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" autoscalinglisters "k8s.io/client-go/listers/autoscaling/v1" + scaleclient "k8s.io/client-go/scale" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/controller" ) @@ -57,8 +57,9 @@ var ( // in the system with the actual deployments/replication controllers they // control. type HorizontalController struct { - scaleNamespacer extensionsclient.ScalesGetter + scaleNamespacer scaleclient.ScalesGetter hpaNamespacer autoscalingclient.HorizontalPodAutoscalersGetter + mapper apimeta.RESTMapper replicaCalc *ReplicaCalculator eventRecorder record.EventRecorder @@ -78,8 +79,9 @@ type HorizontalController struct { // NewHorizontalController creates a new HorizontalController. func NewHorizontalController( evtNamespacer v1core.EventsGetter, - scaleNamespacer extensionsclient.ScalesGetter, + scaleNamespacer scaleclient.ScalesGetter, hpaNamespacer autoscalingclient.HorizontalPodAutoscalersGetter, + mapper apimeta.RESTMapper, replicaCalc *ReplicaCalculator, hpaInformer autoscalinginformers.HorizontalPodAutoscalerInformer, resyncPeriod time.Duration, @@ -88,6 +90,7 @@ func NewHorizontalController( ) *HorizontalController { broadcaster := record.NewBroadcaster() + broadcaster.StartLogging(glog.Infof) // TODO: remove the wrapper when every clients have moved to use the clientset. broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: evtNamespacer.Events("")}) recorder := broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "horizontal-pod-autoscaler"}) @@ -99,7 +102,8 @@ func NewHorizontalController( hpaNamespacer: hpaNamespacer, upscaleForbiddenWindow: upscaleForbiddenWindow, downscaleForbiddenWindow: downscaleForbiddenWindow, - queue: workqueue.NewNamedRateLimitingQueue(NewDefaultHPARateLimiter(resyncPeriod), "horizontalpodautoscaler"), + queue: workqueue.NewNamedRateLimitingQueue(NewDefaultHPARateLimiter(resyncPeriod), "horizontalpodautoscaler"), + mapper: mapper, } hpaInformer.Informer().AddEventHandlerWithResyncPeriod( @@ -189,7 +193,7 @@ func (a *HorizontalController) processNextWorkItem() bool { // Computes the desired number of replicas for the metric specifications listed in the HPA, returning the maximum // of the computed replica counts, a description of the associated metric, and the statuses of all metrics // computed. -func (a *HorizontalController) computeReplicasForMetrics(hpa *autoscalingv2.HorizontalPodAutoscaler, scale *extensions.Scale, +func (a *HorizontalController) computeReplicasForMetrics(hpa *autoscalingv2.HorizontalPodAutoscaler, scale *autoscalingv1.Scale, metricSpecs []autoscalingv2.MetricSpec) (replicas int32, metric string, statuses []autoscalingv2.MetricStatus, timestamp time.Time, err error) { currentReplicas := scale.Status.Replicas @@ -197,21 +201,14 @@ func (a *HorizontalController) computeReplicasForMetrics(hpa *autoscalingv2.Hori statuses = make([]autoscalingv2.MetricStatus, len(metricSpecs)) for i, metricSpec := range metricSpecs { - if len(scale.Status.Selector) == 0 && len(scale.Status.TargetSelector) == 0 { + if scale.Status.Selector == "" { errMsg := "selector is required" a.eventRecorder.Event(hpa, v1.EventTypeWarning, "SelectorRequired", errMsg) setCondition(hpa, autoscalingv2.ScalingActive, v1.ConditionFalse, "InvalidSelector", "the HPA target's scale is missing a selector") return 0, "", nil, time.Time{}, fmt.Errorf(errMsg) } - var selector labels.Selector - var err error - if len(scale.Status.Selector) > 0 { - selector = labels.SelectorFromSet(labels.Set(scale.Status.Selector)) - err = nil - } else { - selector, err = labels.Parse(scale.Status.TargetSelector) - } + selector, err := labels.Parse(scale.Status.Selector) if err != nil { errMsg := fmt.Sprintf("couldn't convert selector into a corresponding internal selector object: %v", err) a.eventRecorder.Event(hpa, v1.EventTypeWarning, "InvalidSelector", errMsg) @@ -349,7 +346,28 @@ func (a *HorizontalController) reconcileAutoscaler(hpav1Shared *autoscalingv1.Ho reference := fmt.Sprintf("%s/%s/%s", hpa.Spec.ScaleTargetRef.Kind, hpa.Namespace, hpa.Spec.ScaleTargetRef.Name) - scale, err := a.scaleNamespacer.Scales(hpa.Namespace).Get(hpa.Spec.ScaleTargetRef.Kind, hpa.Spec.ScaleTargetRef.Name) + targetGV, err := schema.ParseGroupVersion(hpa.Spec.ScaleTargetRef.APIVersion) + if err != nil { + a.eventRecorder.Event(hpa, v1.EventTypeWarning, "FailedGetScale", err.Error()) + setCondition(hpa, autoscalingv2.AbleToScale, v1.ConditionFalse, "FailedGetScale", "the HPA controller was unable to get the target's current scale: %v", err) + a.updateStatusIfNeeded(hpaStatusOriginal, hpa) + return fmt.Errorf("invalid API version in scale target reference: %v", err) + } + + targetGK := schema.GroupKind{ + Group: targetGV.Group, + Kind: hpa.Spec.ScaleTargetRef.Kind, + } + + mappings, err := a.mapper.RESTMappings(targetGK) + if err != nil { + a.eventRecorder.Event(hpa, v1.EventTypeWarning, "FailedGetScale", err.Error()) + setCondition(hpa, autoscalingv2.AbleToScale, v1.ConditionFalse, "FailedGetScale", "the HPA controller was unable to get the target's current scale: %v", err) + a.updateStatusIfNeeded(hpaStatusOriginal, hpa) + return fmt.Errorf("unable to determine resource for scale target reference: %v", err) + } + + scale, targetGR, err := a.scaleForResourceMappings(hpa.Namespace, hpa.Spec.ScaleTargetRef.Name, mappings) if err != nil { a.eventRecorder.Event(hpa, v1.EventTypeWarning, "FailedGetScale", err.Error()) setCondition(hpa, autoscalingv2.AbleToScale, v1.ConditionFalse, "FailedGetScale", "the HPA controller was unable to get the target's current scale: %v", err) @@ -479,7 +497,7 @@ func (a *HorizontalController) reconcileAutoscaler(hpav1Shared *autoscalingv1.Ho if rescale { scale.Spec.Replicas = desiredReplicas - _, err = a.scaleNamespacer.Scales(hpa.Namespace).Update(hpa.Spec.ScaleTargetRef.Kind, scale) + _, err = a.scaleNamespacer.Scales(hpa.Namespace).Update(targetGR, scale) if err != nil { a.eventRecorder.Eventf(hpa, v1.EventTypeWarning, "FailedRescale", "New size: %d; reason: %s; error: %v", desiredReplicas, rescaleReason, err.Error()) setCondition(hpa, autoscalingv2.AbleToScale, v1.ConditionFalse, "FailedUpdateScale", "the HPA controller was unable to update the target scale: %v", err) @@ -526,6 +544,35 @@ func (a *HorizontalController) shouldScale(hpa *autoscalingv2.HorizontalPodAutos return false } +// scaleForResourceMappings attempts to fetch the scale for the +// resource with the given name and namespace, trying each RESTMapping +// in turn until a working one is found. If none work, the first error +// is returned. It returns both the scale, as well as the group-resource from +// the working mapping. +func (a *HorizontalController) scaleForResourceMappings(namespace, name string, mappings []*apimeta.RESTMapping) (*autoscalingv1.Scale, schema.GroupResource, error) { + var firstErr error + for i, mapping := range mappings { + targetGR := mapping.GroupVersionKind.GroupVersion().WithResource(mapping.Resource).GroupResource() + scale, err := a.scaleNamespacer.Scales(namespace).Get(targetGR, name) + if err == nil { + return scale, targetGR, nil + } + + // if this is the first error, remember it, + // then go on and try other mappings until we find a good one + if i == 0 { + firstErr = err + } + } + + // make sure we handle an empty set of mappings + if firstErr == nil { + firstErr = fmt.Errorf("unrecognized resource") + } + + return nil, schema.GroupResource{}, firstErr +} + // setCurrentReplicasInStatus sets the current replica count in the status of the HPA. func (a *HorizontalController) setCurrentReplicasInStatus(hpa *autoscalingv2.HorizontalPodAutoscaler, currentReplicas int32) { a.setStatus(hpa, currentReplicas, hpa.Status.DesiredReplicas, hpa.Status.CurrentMetrics, false) @@ -576,17 +623,17 @@ func (a *HorizontalController) updateStatus(hpa *autoscalingv2.HorizontalPodAuto return nil } -// unsafeConvertToVersionVia is like api.Scheme.UnsafeConvertToVersion, but it does so via an internal version first. +// unsafeConvertToVersionVia is like Scheme.UnsafeConvertToVersion, but it does so via an internal version first. // We use it since working with v2alpha1 is convenient here, but we want to use the v1 client (and // can't just use the internal version). Note that conversion mutates the object, so you need to deepcopy // *before* you call this if the input object came out of a shared cache. func unsafeConvertToVersionVia(obj runtime.Object, externalVersion schema.GroupVersion) (runtime.Object, error) { - objInt, err := api.Scheme.UnsafeConvertToVersion(obj, schema.GroupVersion{Group: externalVersion.Group, Version: runtime.APIVersionInternal}) + objInt, err := legacyscheme.Scheme.UnsafeConvertToVersion(obj, schema.GroupVersion{Group: externalVersion.Group, Version: runtime.APIVersionInternal}) if err != nil { return nil, fmt.Errorf("failed to convert the given object to the internal version: %v", err) } - objExt, err := api.Scheme.UnsafeConvertToVersion(objInt, externalVersion) + objExt, err := legacyscheme.Scheme.UnsafeConvertToVersion(objInt, externalVersion) if err != nil { return nil, fmt.Errorf("failed to convert the given object back to the external version: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal_test.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal_test.go index 544930fe9..ac840d61b 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal_test.go @@ -27,25 +27,25 @@ import ( autoscalingv1 "k8s.io/api/autoscaling/v1" autoscalingv2 "k8s.io/api/autoscaling/v2beta1" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes/fake" clientfake "k8s.io/client-go/kubernetes/fake" + scalefake "k8s.io/client-go/scale/fake" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/podautoscaler/metrics" - metricsfake "k8s.io/metrics/pkg/client/clientset_generated/clientset/fake" - cmfake "k8s.io/metrics/pkg/client/custom_metrics/fake" - cmapi "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1" metricsapi "k8s.io/metrics/pkg/apis/metrics/v1beta1" + metricsfake "k8s.io/metrics/pkg/client/clientset_generated/clientset/fake" + cmfake "k8s.io/metrics/pkg/client/custom_metrics/fake" "github.com/stretchr/testify/assert" @@ -122,6 +122,7 @@ type testCase struct { testClient *fake.Clientset testMetricsClient *metricsfake.Clientset testCMClient *cmfake.FakeCustomMetricsClient + testScaleClient *scalefake.FakeScaleClient } // Needs to be called under a lock. @@ -145,12 +146,12 @@ func init() { scaleUpLimitFactor = 8 } -func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfake.Clientset, *cmfake.FakeCustomMetricsClient) { +func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfake.Clientset, *cmfake.FakeCustomMetricsClient, *scalefake.FakeScaleClient) { namespace := "test-namespace" hpaName := "test-hpa" podNamePrefix := "test-pod" - // TODO: also test with TargetSelector - selector := map[string]string{"name": podNamePrefix} + labelSet := map[string]string{"name": podNamePrefix} + selector := labels.SelectorFromSet(labelSet).String() tc.Lock() @@ -162,13 +163,11 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa tc.computeCPUCurrent() } - // TODO(madhusudancs): HPA only supports resources in extensions/v1beta1 right now. Add - // tests for "v1" replicationcontrollers when HPA adds support for cross-group scale. if tc.resource == nil { tc.resource = &fakeResource{ name: "test-rc", - apiVersion: "extensions/v1beta1", - kind: "replicationcontrollers", + apiVersion: "v1", + kind: "ReplicationController", } } tc.Unlock() @@ -240,66 +239,6 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa return true, objv1, nil }) - fakeClient.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - tc.Lock() - defer tc.Unlock() - - obj := &extensions.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Name: tc.resource.name, - Namespace: namespace, - }, - Spec: extensions.ScaleSpec{ - Replicas: tc.initialReplicas, - }, - Status: extensions.ScaleStatus{ - Replicas: tc.initialReplicas, - Selector: selector, - }, - } - return true, obj, nil - }) - - fakeClient.AddReactor("get", "deployments", func(action core.Action) (handled bool, ret runtime.Object, err error) { - tc.Lock() - defer tc.Unlock() - - obj := &extensions.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Name: tc.resource.name, - Namespace: namespace, - }, - Spec: extensions.ScaleSpec{ - Replicas: tc.initialReplicas, - }, - Status: extensions.ScaleStatus{ - Replicas: tc.initialReplicas, - Selector: selector, - }, - } - return true, obj, nil - }) - - fakeClient.AddReactor("get", "replicasets", func(action core.Action) (handled bool, ret runtime.Object, err error) { - tc.Lock() - defer tc.Unlock() - - obj := &extensions.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Name: tc.resource.name, - Namespace: namespace, - }, - Spec: extensions.ScaleSpec{ - Replicas: tc.initialReplicas, - }, - Status: extensions.ScaleStatus{ - Replicas: tc.initialReplicas, - Selector: selector, - }, - } - return true, obj, nil - }) - fakeClient.AddReactor("list", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { tc.Lock() defer tc.Unlock() @@ -345,39 +284,6 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa return true, obj, nil }) - fakeClient.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - tc.Lock() - defer tc.Unlock() - - obj := action.(core.UpdateAction).GetObject().(*extensions.Scale) - replicas := action.(core.UpdateAction).GetObject().(*extensions.Scale).Spec.Replicas - assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the RC should be as expected") - tc.scaleUpdated = true - return true, obj, nil - }) - - fakeClient.AddReactor("update", "deployments", func(action core.Action) (handled bool, ret runtime.Object, err error) { - tc.Lock() - defer tc.Unlock() - - obj := action.(core.UpdateAction).GetObject().(*extensions.Scale) - replicas := action.(core.UpdateAction).GetObject().(*extensions.Scale).Spec.Replicas - assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the deployment should be as expected") - tc.scaleUpdated = true - return true, obj, nil - }) - - fakeClient.AddReactor("update", "replicasets", func(action core.Action) (handled bool, ret runtime.Object, err error) { - tc.Lock() - defer tc.Unlock() - - obj := action.(core.UpdateAction).GetObject().(*extensions.Scale) - replicas := action.(core.UpdateAction).GetObject().(*extensions.Scale).Spec.Replicas - assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the replicaset should be as expected") - tc.scaleUpdated = true - return true, obj, nil - }) - fakeClient.AddReactor("update", "horizontalpodautoscalers", func(action core.Action) (handled bool, ret runtime.Object, err error) { tc.Lock() defer tc.Unlock() @@ -387,8 +293,9 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa assert.Equal(t, hpaName, obj.Name, "the HPA name should be as expected") assert.Equal(t, tc.desiredReplicas, obj.Status.DesiredReplicas, "the desired replica count reported in the object status should be as expected") if tc.verifyCPUCurrent { - assert.NotNil(t, obj.Status.CurrentCPUUtilizationPercentage, "the reported CPU utilization percentage should be non-nil") - assert.Equal(t, tc.CPUCurrent, *obj.Status.CurrentCPUUtilizationPercentage, "the report CPU utilization percentage should be as expected") + if assert.NotNil(t, obj.Status.CurrentCPUUtilizationPercentage, "the reported CPU utilization percentage should be non-nil") { + assert.Equal(t, tc.CPUCurrent, *obj.Status.CurrentCPUUtilizationPercentage, "the report CPU utilization percentage should be as expected") + } } var actualConditions []autoscalingv1.HorizontalPodAutoscalerCondition if err := json.Unmarshal([]byte(obj.ObjectMeta.Annotations[autoscaling.HorizontalPodAutoscalerConditionsAnnotation]), &actualConditions); err != nil { @@ -412,6 +319,100 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa return true, obj, nil }) + fakeScaleClient := &scalefake.FakeScaleClient{} + fakeScaleClient.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.Lock() + defer tc.Unlock() + + obj := &autoscalingv1.Scale{ + ObjectMeta: metav1.ObjectMeta{ + Name: tc.resource.name, + Namespace: namespace, + }, + Spec: autoscalingv1.ScaleSpec{ + Replicas: tc.initialReplicas, + }, + Status: autoscalingv1.ScaleStatus{ + Replicas: tc.initialReplicas, + Selector: selector, + }, + } + return true, obj, nil + }) + + fakeScaleClient.AddReactor("get", "deployments", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.Lock() + defer tc.Unlock() + + obj := &autoscalingv1.Scale{ + ObjectMeta: metav1.ObjectMeta{ + Name: tc.resource.name, + Namespace: namespace, + }, + Spec: autoscalingv1.ScaleSpec{ + Replicas: tc.initialReplicas, + }, + Status: autoscalingv1.ScaleStatus{ + Replicas: tc.initialReplicas, + Selector: selector, + }, + } + return true, obj, nil + }) + + fakeScaleClient.AddReactor("get", "replicasets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.Lock() + defer tc.Unlock() + + obj := &autoscalingv1.Scale{ + ObjectMeta: metav1.ObjectMeta{ + Name: tc.resource.name, + Namespace: namespace, + }, + Spec: autoscalingv1.ScaleSpec{ + Replicas: tc.initialReplicas, + }, + Status: autoscalingv1.ScaleStatus{ + Replicas: tc.initialReplicas, + Selector: selector, + }, + } + return true, obj, nil + }) + + fakeScaleClient.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.Lock() + defer tc.Unlock() + + obj := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale) + replicas := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale).Spec.Replicas + assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the RC should be as expected") + tc.scaleUpdated = true + return true, obj, nil + }) + + fakeScaleClient.AddReactor("update", "deployments", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.Lock() + defer tc.Unlock() + + obj := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale) + replicas := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale).Spec.Replicas + assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the deployment should be as expected") + tc.scaleUpdated = true + return true, obj, nil + }) + + fakeScaleClient.AddReactor("update", "replicasets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.Lock() + defer tc.Unlock() + + obj := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale) + replicas := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale).Spec.Replicas + assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the replicaset should be as expected") + tc.scaleUpdated = true + return true, obj, nil + }) + fakeWatch := watch.NewFake() fakeClient.AddWatchReactor("*", core.DefaultWatchReactor(fakeWatch, nil)) @@ -428,7 +429,7 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("%s-%d", podNamePrefix, i), Namespace: namespace, - Labels: selector, + Labels: labelSet, }, Timestamp: metav1.Time{Time: time.Now()}, Containers: []metricsapi.ContainerMetrics{ @@ -486,7 +487,7 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa } name := getForAction.GetName() - mapper := api.Registry.RESTMapper() + mapper := legacyscheme.Registry.RESTMapper() metrics := &cmapi.MetricValueList{} var matchedTarget *autoscalingv2.MetricSpec for i, target := range tc.metricsTarget { @@ -523,7 +524,7 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa return true, metrics, nil }) - return fakeClient, fakeMetricsClient, fakeCMClient + return fakeClient, fakeMetricsClient, fakeCMClient, fakeScaleClient } func (tc *testCase) verifyResults(t *testing.T) { @@ -538,7 +539,7 @@ func (tc *testCase) verifyResults(t *testing.T) { } func (tc *testCase) setupController(t *testing.T) (*HorizontalController, informers.SharedInformerFactory) { - testClient, testMetricsClient, testCMClient := tc.prepareTestClient(t) + testClient, testMetricsClient, testCMClient, testScaleClient := tc.prepareTestClient(t) if tc.testClient != nil { testClient = tc.testClient } @@ -548,6 +549,9 @@ func (tc *testCase) setupController(t *testing.T) (*HorizontalController, inform if tc.testCMClient != nil { testCMClient = tc.testCMClient } + if tc.testScaleClient != nil { + testScaleClient = tc.testScaleClient + } metricsClient := metrics.NewRESTMetricsClient( testMetricsClient.MetricsV1beta1(), testCMClient, @@ -588,8 +592,9 @@ func (tc *testCase) setupController(t *testing.T) (*HorizontalController, inform hpaController := NewHorizontalController( eventClient.Core(), - testClient.Extensions(), + testScaleClient, testClient.Autoscaling(), + legacyscheme.Registry.RESTMapper(), replicaCalc, informerFactory.Autoscaling().V1().HorizontalPodAutoscalers(), controller.NoResyncPeriodFunc(), @@ -693,7 +698,7 @@ func TestScaleUpDeployment(t *testing.T) { resource: &fakeResource{ name: "test-dep", apiVersion: "extensions/v1beta1", - kind: "deployments", + kind: "Deployment", }, } tc.runTest(t) @@ -713,7 +718,7 @@ func TestScaleUpReplicaSet(t *testing.T) { resource: &fakeResource{ name: "test-replicaset", apiVersion: "extensions/v1beta1", - kind: "replicasets", + kind: "ReplicaSet", }, } tc.runTest(t) @@ -1268,18 +1273,18 @@ func TestConditionInvalidSelectorMissing(t *testing.T) { }, } - testClient, _, _ := tc.prepareTestClient(t) - tc.testClient = testClient + _, _, _, testScaleClient := tc.prepareTestClient(t) + tc.testScaleClient = testScaleClient - testClient.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - obj := &extensions.Scale{ + testScaleClient.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + obj := &autoscalingv1.Scale{ ObjectMeta: metav1.ObjectMeta{ Name: tc.resource.name, }, - Spec: extensions.ScaleSpec{ + Spec: autoscalingv1.ScaleSpec{ Replicas: tc.initialReplicas, }, - Status: extensions.ScaleStatus{ + Status: autoscalingv1.ScaleStatus{ Replicas: tc.initialReplicas, }, } @@ -1313,20 +1318,20 @@ func TestConditionInvalidSelectorUnparsable(t *testing.T) { }, } - testClient, _, _ := tc.prepareTestClient(t) - tc.testClient = testClient + _, _, _, testScaleClient := tc.prepareTestClient(t) + tc.testScaleClient = testScaleClient - testClient.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - obj := &extensions.Scale{ + testScaleClient.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + obj := &autoscalingv1.Scale{ ObjectMeta: metav1.ObjectMeta{ Name: tc.resource.name, }, - Spec: extensions.ScaleSpec{ + Spec: autoscalingv1.ScaleSpec{ Replicas: tc.initialReplicas, }, - Status: extensions.ScaleStatus{ - Replicas: tc.initialReplicas, - TargetSelector: "cheddar cheese", + Status: autoscalingv1.ScaleStatus{ + Replicas: tc.initialReplicas, + Selector: "cheddar cheese", }, } return true, obj, nil @@ -1374,7 +1379,7 @@ func TestConditionFailedGetMetrics(t *testing.T) { reportedCPURequests: []resource.Quantity{resource.MustParse("0.1"), resource.MustParse("0.1"), resource.MustParse("0.1")}, useMetricsAPI: true, } - _, testMetricsClient, testCMClient := tc.prepareTestClient(t) + _, testMetricsClient, testCMClient, _ := tc.prepareTestClient(t) tc.testMetricsClient = testMetricsClient tc.testCMClient = testCMClient @@ -1447,11 +1452,11 @@ func TestConditionFailedGetScale(t *testing.T) { }, } - testClient, _, _ := tc.prepareTestClient(t) - tc.testClient = testClient + _, _, _, testScaleClient := tc.prepareTestClient(t) + tc.testScaleClient = testScaleClient - testClient.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - return true, &extensions.Scale{}, fmt.Errorf("something went wrong") + testScaleClient.PrependReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + return true, &autoscalingv1.Scale{}, fmt.Errorf("something went wrong") }) tc.runTest(t) @@ -1474,11 +1479,11 @@ func TestConditionFailedUpdateScale(t *testing.T) { }), } - testClient, _, _ := tc.prepareTestClient(t) - tc.testClient = testClient + _, _, _, testScaleClient := tc.prepareTestClient(t) + tc.testScaleClient = testScaleClient - testClient.PrependReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - return true, &extensions.Scale{}, fmt.Errorf("something went wrong") + testScaleClient.PrependReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + return true, &autoscalingv1.Scale{}, fmt.Errorf("something went wrong") }) tc.runTest(t) @@ -1660,7 +1665,7 @@ func TestAvoidUncessaryUpdates(t *testing.T) { reportedPodReadiness: []v1.ConditionStatus{v1.ConditionTrue, v1.ConditionFalse, v1.ConditionFalse}, useMetricsAPI: true, } - testClient, _, _ := tc.prepareTestClient(t) + testClient, _, _, _ := tc.prepareTestClient(t) tc.testClient = testClient var savedHPA *autoscalingv1.HorizontalPodAutoscaler testClient.PrependReactor("list", "horizontalpodautoscalers", func(action core.Action) (handled bool, ret runtime.Object, err error) { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/legacy_horizontal_test.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/legacy_horizontal_test.go index b94ce82c6..ba12990b4 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/legacy_horizontal_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/legacy_horizontal_test.go @@ -30,16 +30,18 @@ import ( autoscalingv1 "k8s.io/api/autoscaling/v1" autoscalingv2 "k8s.io/api/autoscaling/v2beta1" "k8s.io/api/core/v1" - extensions "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes/fake" clientfake "k8s.io/client-go/kubernetes/fake" restclient "k8s.io/client-go/rest" + scalefake "k8s.io/client-go/scale/fake" core "k8s.io/client-go/testing" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/podautoscaler/metrics" @@ -49,6 +51,7 @@ import ( "github.com/stretchr/testify/assert" _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/extensions/install" ) @@ -114,12 +117,12 @@ func (tc *legacyTestCase) computeCPUCurrent() { tc.CPUCurrent = int32(100 * reported / requested) } -func (tc *legacyTestCase) prepareTestClient(t *testing.T) *fake.Clientset { +func (tc *legacyTestCase) prepareTestClient(t *testing.T) (*fake.Clientset, *scalefake.FakeScaleClient) { namespace := "test-namespace" hpaName := "test-hpa" podNamePrefix := "test-pod" - // TODO: also test with TargetSelector - selector := map[string]string{"name": podNamePrefix} + labelSet := map[string]string{"name": podNamePrefix} + selector := labels.SelectorFromSet(labelSet).String() tc.Lock() @@ -131,13 +134,11 @@ func (tc *legacyTestCase) prepareTestClient(t *testing.T) *fake.Clientset { tc.computeCPUCurrent() } - // TODO(madhusudancs): HPA only supports resources in extensions/v1beta1 right now. Add - // tests for "v1" replicationcontrollers when HPA adds support for cross-group scale. if tc.resource == nil { tc.resource = &fakeResource{ name: "test-rc", - apiVersion: "extensions/v1beta1", - kind: "replicationcontrollers", + apiVersion: "v1", + kind: "ReplicationController", } } tc.Unlock() @@ -208,66 +209,6 @@ func (tc *legacyTestCase) prepareTestClient(t *testing.T) *fake.Clientset { return true, objv1, nil }) - fakeClient.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { - tc.Lock() - defer tc.Unlock() - - obj := &extensions.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Name: tc.resource.name, - Namespace: namespace, - }, - Spec: extensions.ScaleSpec{ - Replicas: tc.initialReplicas, - }, - Status: extensions.ScaleStatus{ - Replicas: tc.initialReplicas, - Selector: selector, - }, - } - return true, obj, nil - }) - - fakeClient.AddReactor("get", "deployments", func(action core.Action) (handled bool, ret runtime.Object, err error) { - tc.Lock() - defer tc.Unlock() - - obj := &extensions.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Name: tc.resource.name, - Namespace: namespace, - }, - Spec: extensions.ScaleSpec{ - Replicas: tc.initialReplicas, - }, - Status: extensions.ScaleStatus{ - Replicas: tc.initialReplicas, - Selector: selector, - }, - } - return true, obj, nil - }) - - fakeClient.AddReactor("get", "replicasets", func(action core.Action) (handled bool, ret runtime.Object, err error) { - tc.Lock() - defer tc.Unlock() - - obj := &extensions.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Name: tc.resource.name, - Namespace: namespace, - }, - Spec: extensions.ScaleSpec{ - Replicas: tc.initialReplicas, - }, - Status: extensions.ScaleStatus{ - Replicas: tc.initialReplicas, - Selector: selector, - }, - } - return true, obj, nil - }) - fakeClient.AddReactor("list", "pods", func(action core.Action) (handled bool, ret runtime.Object, err error) { tc.Lock() defer tc.Unlock() @@ -386,61 +327,123 @@ func (tc *legacyTestCase) prepareTestClient(t *testing.T) *fake.Clientset { return true, newFakeResponseWrapper(heapsterRawMemResponse), nil }) - fakeClient.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakeClient.AddReactor("update", "horizontalpodautoscalers", func(action core.Action) (handled bool, ret runtime.Object, err error) { tc.Lock() defer tc.Unlock() - obj := action.(core.UpdateAction).GetObject().(*extensions.Scale) - replicas := action.(core.UpdateAction).GetObject().(*extensions.Scale).Spec.Replicas - assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the RC should be as expected") - tc.scaleUpdated = true + obj := action.(core.UpdateAction).GetObject().(*autoscalingv1.HorizontalPodAutoscaler) + assert.Equal(t, namespace, obj.Namespace, "the HPA namespace should be as expected") + assert.Equal(t, hpaName, obj.Name, "the HPA name should be as expected") + assert.Equal(t, tc.desiredReplicas, obj.Status.DesiredReplicas, "the desired replica count reported in the object status should be as expected") + if tc.verifyCPUCurrent { + if assert.NotNil(t, obj.Status.CurrentCPUUtilizationPercentage, "the reported CPU utilization percentage should be non-nil") { + assert.Equal(t, tc.CPUCurrent, *obj.Status.CurrentCPUUtilizationPercentage, "the report CPU utilization percentage should be as expected") + } + } + tc.statusUpdated = true + // Every time we reconcile HPA object we are updating status. + tc.processed <- obj.Name return true, obj, nil }) - fakeClient.AddReactor("update", "deployments", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakeScaleClient := &scalefake.FakeScaleClient{} + fakeScaleClient.AddReactor("get", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { tc.Lock() defer tc.Unlock() - obj := action.(core.UpdateAction).GetObject().(*extensions.Scale) - replicas := action.(core.UpdateAction).GetObject().(*extensions.Scale).Spec.Replicas - assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the deployment should be as expected") + obj := &autoscalingv1.Scale{ + ObjectMeta: metav1.ObjectMeta{ + Name: tc.resource.name, + Namespace: namespace, + }, + Spec: autoscalingv1.ScaleSpec{ + Replicas: tc.initialReplicas, + }, + Status: autoscalingv1.ScaleStatus{ + Replicas: tc.initialReplicas, + Selector: selector, + }, + } + return true, obj, nil + }) + + fakeScaleClient.AddReactor("get", "deployments", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.Lock() + defer tc.Unlock() + + obj := &autoscalingv1.Scale{ + ObjectMeta: metav1.ObjectMeta{ + Name: tc.resource.name, + Namespace: namespace, + }, + Spec: autoscalingv1.ScaleSpec{ + Replicas: tc.initialReplicas, + }, + Status: autoscalingv1.ScaleStatus{ + Replicas: tc.initialReplicas, + Selector: selector, + }, + } + return true, obj, nil + }) + + fakeScaleClient.AddReactor("get", "replicasets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.Lock() + defer tc.Unlock() + + obj := &autoscalingv1.Scale{ + ObjectMeta: metav1.ObjectMeta{ + Name: tc.resource.name, + Namespace: namespace, + }, + Spec: autoscalingv1.ScaleSpec{ + Replicas: tc.initialReplicas, + }, + Status: autoscalingv1.ScaleStatus{ + Replicas: tc.initialReplicas, + Selector: selector, + }, + } + return true, obj, nil + }) + + fakeScaleClient.AddReactor("update", "replicationcontrollers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + tc.Lock() + defer tc.Unlock() + + obj := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale) + replicas := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale).Spec.Replicas + assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the RC should be as expected") tc.scaleUpdated = true return true, obj, nil }) - fakeClient.AddReactor("update", "replicasets", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakeScaleClient.AddReactor("update", "deployments", func(action core.Action) (handled bool, ret runtime.Object, err error) { tc.Lock() defer tc.Unlock() - obj := action.(core.UpdateAction).GetObject().(*extensions.Scale) - replicas := action.(core.UpdateAction).GetObject().(*extensions.Scale).Spec.Replicas - assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the replicaset should be as expected") + obj := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale) + replicas := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale).Spec.Replicas + assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the deployment should be as expected") tc.scaleUpdated = true return true, obj, nil }) - fakeClient.AddReactor("update", "horizontalpodautoscalers", func(action core.Action) (handled bool, ret runtime.Object, err error) { + fakeScaleClient.AddReactor("update", "replicasets", func(action core.Action) (handled bool, ret runtime.Object, err error) { tc.Lock() defer tc.Unlock() - obj := action.(core.UpdateAction).GetObject().(*autoscalingv1.HorizontalPodAutoscaler) - assert.Equal(t, namespace, obj.Namespace, "the HPA namespace should be as expected") - assert.Equal(t, hpaName, obj.Name, "the HPA name should be as expected") - assert.Equal(t, tc.desiredReplicas, obj.Status.DesiredReplicas, "the desired replica count reported in the object status should be as expected") - if tc.verifyCPUCurrent { - assert.NotNil(t, obj.Status.CurrentCPUUtilizationPercentage, "the reported CPU utilization percentage should be non-nil") - assert.Equal(t, tc.CPUCurrent, *obj.Status.CurrentCPUUtilizationPercentage, "the report CPU utilization percentage should be as expected") - } - tc.statusUpdated = true - // Every time we reconcile HPA object we are updating status. - tc.processed <- obj.Name + obj := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale) + replicas := action.(core.UpdateAction).GetObject().(*autoscalingv1.Scale).Spec.Replicas + assert.Equal(t, tc.desiredReplicas, replicas, "the replica count of the replicaset should be as expected") + tc.scaleUpdated = true return true, obj, nil }) fakeWatch := watch.NewFake() fakeClient.AddWatchReactor("*", core.DefaultWatchReactor(fakeWatch, nil)) - return fakeClient + return fakeClient, fakeScaleClient } func (tc *legacyTestCase) verifyResults(t *testing.T) { @@ -455,7 +458,7 @@ func (tc *legacyTestCase) verifyResults(t *testing.T) { } func (tc *legacyTestCase) runTest(t *testing.T) { - testClient := tc.prepareTestClient(t) + testClient, testScaleClient := tc.prepareTestClient(t) metricsClient := metrics.NewHeapsterMetricsClient(testClient, metrics.DefaultHeapsterNamespace, metrics.DefaultHeapsterScheme, metrics.DefaultHeapsterService, metrics.DefaultHeapsterPort) eventClient := &clientfake.Clientset{} @@ -493,8 +496,9 @@ func (tc *legacyTestCase) runTest(t *testing.T) { hpaController := NewHorizontalController( eventClient.Core(), - testClient.Extensions(), + testScaleClient, testClient.Autoscaling(), + legacyscheme.Registry.RESTMapper(), replicaCalc, informerFactory.Autoscaling().V1().HorizontalPodAutoscalers(), controller.NoResyncPeriodFunc(), @@ -584,7 +588,7 @@ func LegacyTestScaleUpDeployment(t *testing.T) { resource: &fakeResource{ name: "test-dep", apiVersion: "extensions/v1beta1", - kind: "deployments", + kind: "Deployment", }, } tc.runTest(t) @@ -604,7 +608,7 @@ func LegacyTestScaleUpReplicaSet(t *testing.T) { resource: &fakeResource{ name: "test-replicaset", apiVersion: "extensions/v1beta1", - kind: "replicasets", + kind: "ReplicaSet", }, } tc.runTest(t) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/BUILD index 52f234be2..f0d328fdb 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/BUILD @@ -41,7 +41,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/podautoscaler/metrics", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/extensions/install:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/legacy_metrics_client.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/legacy_metrics_client.go index 36c24da2f..5d13acbd6 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/legacy_metrics_client.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/legacy_metrics_client.go @@ -54,8 +54,8 @@ type HeapsterMetricsClient struct { func NewHeapsterMetricsClient(client clientset.Interface, namespace, scheme, service, port string) MetricsClient { return &HeapsterMetricsClient{ - services: client.Core().Services(namespace), - podsGetter: client.Core(), + services: client.CoreV1().Services(namespace), + podsGetter: client.CoreV1(), heapsterScheme: scheme, heapsterService: service, heapsterPort: port, diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/rest_metrics_client_test.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/rest_metrics_client_test.go index 19ecfd0a7..d9a178a75 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/rest_metrics_client_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/rest_metrics_client_test.go @@ -30,14 +30,12 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" - // For api.Registry.RESTMapper() + "k8s.io/kubernetes/pkg/api/legacyscheme" _ "k8s.io/kubernetes/pkg/apis/extensions/install" - metricsfake "k8s.io/metrics/pkg/client/clientset_generated/clientset/fake" - cmfake "k8s.io/metrics/pkg/client/custom_metrics/fake" - cmapi "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1" metricsapi "k8s.io/metrics/pkg/apis/metrics/v1beta1" + metricsfake "k8s.io/metrics/pkg/client/clientset_generated/clientset/fake" + cmfake "k8s.io/metrics/pkg/client/custom_metrics/fake" "github.com/stretchr/testify/assert" ) @@ -131,7 +129,7 @@ func (tc *restClientTestCase) prepareTestClient(t *testing.T) (*metricsfake.Clie return true, &metrics, nil } else { name := getForAction.GetName() - mapper := api.Registry.RESTMapper() + mapper := legacyscheme.Registry.RESTMapper() assert.NotNil(t, tc.singleObject, "should have only requested a single-object metric when we asked for metrics for a single object") gk := schema.FromAPIVersionAndKind(tc.singleObject.APIVersion, tc.singleObject.Kind).GroupKind() mapping, err := mapper.RESTMapping(gk) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/utilization.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/utilization.go index 946a43bb1..0417b9a0e 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/utilization.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/metrics/utilization.go @@ -21,7 +21,7 @@ import ( ) // GetResourceUtilizationRatio takes in a set of metrics, a set of matching requests, -// and a target utilization percentage, and calculates the the ratio of +// and a target utilization percentage, and calculates the ratio of // desired to actual utilization (returning that, the actual utilization, and the raw average value) func GetResourceUtilizationRatio(metrics PodMetricsInfo, requests map[string]int64, targetUtilization int32) (utilizationRatio float64, currentUtilization int32, rawAverageValue int64, err error) { metricsTotal := int64(0) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/replica_calculator_test.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/replica_calculator_test.go index 3353adbe5..b12b62519 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/replica_calculator_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/replica_calculator_test.go @@ -30,13 +30,12 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/controller/podautoscaler/metrics" - metricsfake "k8s.io/metrics/pkg/client/clientset_generated/clientset/fake" - cmfake "k8s.io/metrics/pkg/client/custom_metrics/fake" - cmapi "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1" metricsapi "k8s.io/metrics/pkg/apis/metrics/v1beta1" + metricsfake "k8s.io/metrics/pkg/client/clientset_generated/clientset/fake" + cmfake "k8s.io/metrics/pkg/client/custom_metrics/fake" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -208,7 +207,7 @@ func (tc *replicaCalcTestCase) prepareTestClient(t *testing.T) (*fake.Clientset, return true, &metrics, nil } name := getForAction.GetName() - mapper := api.Registry.RESTMapper() + mapper := legacyscheme.Registry.RESTMapper() metrics := &cmapi.MetricValueList{} assert.NotNil(t, tc.metric.singleObject, "should have only requested a single-object metric when calling GetObjectMetricReplicas") gk := schema.FromAPIVersionAndKind(tc.metric.singleObject.APIVersion, tc.metric.singleObject.Kind).GroupKind() diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podgc/gc_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/podgc/gc_controller.go index 76179b736..8badcc4ea 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podgc/gc_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podgc/gc_controller.go @@ -52,15 +52,15 @@ type PodGCController struct { } func NewPodGC(kubeClient clientset.Interface, podInformer coreinformers.PodInformer, terminatedPodThreshold int) *PodGCController { - if kubeClient != nil && kubeClient.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("gc_controller", kubeClient.Core().RESTClient().GetRateLimiter()) + if kubeClient != nil && kubeClient.CoreV1().RESTClient().GetRateLimiter() != nil { + metrics.RegisterMetricAndTrackRateLimiterUsage("gc_controller", kubeClient.CoreV1().RESTClient().GetRateLimiter()) } gcc := &PodGCController{ kubeClient: kubeClient, terminatedPodThreshold: terminatedPodThreshold, deletePod: func(namespace, name string) error { glog.Infof("PodGC is force deleting Pod: %v:%v", namespace, name) - return kubeClient.Core().Pods(namespace).Delete(name, metav1.NewDeleteOptions(0)) + return kubeClient.CoreV1().Pods(namespace).Delete(name, metav1.NewDeleteOptions(0)) }, } @@ -143,7 +143,7 @@ func (gcc *PodGCController) gcTerminated(pods []*v1.Pod) { func (gcc *PodGCController) gcOrphaned(pods []*v1.Pod) { glog.V(4).Infof("GC'ing orphaned") // We want to get list of Nodes from the etcd, to make sure that it's as fresh as possible. - nodes, err := gcc.kubeClient.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := gcc.kubeClient.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { return } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/BUILD index 9ddc5b0f0..3711a751a 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/BUILD @@ -24,6 +24,7 @@ go_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/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", @@ -43,11 +44,14 @@ go_library( go_test( name = "go_default_test", - srcs = ["replica_set_test.go"], + srcs = [ + "replica_set_test.go", + "replica_set_utils_test.go", + ], importpath = "k8s.io/kubernetes/pkg/controller/replicaset", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/controller:go_default_library", "//pkg/securitycontext:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/OWNERS index 3fc7da4b6..1cf422540 100755 --- a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/OWNERS @@ -1,7 +1,9 @@ approvers: - caesarxuchao - lavalamp +- enisoc reviewers: - caesarxuchao - lavalamp - tnozicka +- enisoc diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set.go b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set.go index 3a24370b0..a111e5b62 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set.go @@ -14,7 +14,16 @@ See the License for the specific language governing permissions and limitations under the License. */ -// If you make changes to this file, you should also make the corresponding change in ReplicationController. +// ### ATTENTION ### +// +// This code implements both ReplicaSet and ReplicationController. +// +// For RC, the objects are converted on the way in and out (see ../replication/), +// as if ReplicationController were just an older API version of ReplicaSet. +// However, RC and RS still have separate storage and separate instantiations +// of the ReplicaSetController object. +// +// Use rsc.Kind in log messages rather than hard-coding "ReplicaSet". package replicaset @@ -22,6 +31,7 @@ import ( "fmt" "reflect" "sort" + "strings" "sync" "time" @@ -32,6 +42,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" coreinformers "k8s.io/client-go/informers/core/v1" @@ -59,12 +70,14 @@ const ( statusUpdateRetries = 1 ) -// controllerKind contains the schema.GroupVersionKind for this controller type. -var controllerKind = v1beta1.SchemeGroupVersion.WithKind("ReplicaSet") - // ReplicaSetController is responsible for synchronizing ReplicaSet objects stored // in the system with actual running pods. type ReplicaSetController struct { + // GroupVersionKind indicates the controller type. + // Different instances of this struct may handle different GVKs. + // For example, this struct can be used (with adapters) to handle ReplicationController. + schema.GroupVersionKind + kubeClient clientset.Interface podControl controller.PodControlInterface @@ -95,22 +108,35 @@ type ReplicaSetController struct { // NewReplicaSetController configures a replica set controller with the specified event recorder func NewReplicaSetController(rsInformer extensionsinformers.ReplicaSetInformer, podInformer coreinformers.PodInformer, kubeClient clientset.Interface, burstReplicas int) *ReplicaSetController { - if kubeClient != nil && kubeClient.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("replicaset_controller", kubeClient.Core().RESTClient().GetRateLimiter()) - } eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.Core().RESTClient()).Events("")}) - - rsc := &ReplicaSetController{ - kubeClient: kubeClient, - podControl: controller.RealPodControl{ + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) + return NewBaseController(rsInformer, podInformer, kubeClient, burstReplicas, + v1beta1.SchemeGroupVersion.WithKind("ReplicaSet"), + "replicaset_controller", + "replicaset", + controller.RealPodControl{ KubeClient: kubeClient, Recorder: eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "replicaset-controller"}), }, - burstReplicas: burstReplicas, - expectations: controller.NewUIDTrackingControllerExpectations(controller.NewControllerExpectations()), - queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "replicaset"), + ) +} + +// NewBaseController is the implementation of NewReplicaSetController with additional injected +// parameters so that it can also serve as the implementation of NewReplicationController. +func NewBaseController(rsInformer extensionsinformers.ReplicaSetInformer, podInformer coreinformers.PodInformer, kubeClient clientset.Interface, burstReplicas int, + gvk schema.GroupVersionKind, metricOwnerName, queueName string, podControl controller.PodControlInterface) *ReplicaSetController { + if kubeClient != nil && kubeClient.CoreV1().RESTClient().GetRateLimiter() != nil { + metrics.RegisterMetricAndTrackRateLimiterUsage(metricOwnerName, kubeClient.CoreV1().RESTClient().GetRateLimiter()) + } + + rsc := &ReplicaSetController{ + GroupVersionKind: gvk, + kubeClient: kubeClient, + podControl: podControl, + burstReplicas: burstReplicas, + expectations: controller.NewUIDTrackingControllerExpectations(controller.NewControllerExpectations()), + queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), queueName), } rsInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -153,10 +179,11 @@ func (rsc *ReplicaSetController) Run(workers int, stopCh <-chan struct{}) { defer utilruntime.HandleCrash() defer rsc.queue.ShutDown() - glog.Infof("Starting replica set controller") - defer glog.Infof("Shutting down replica set Controller") + controllerName := strings.ToLower(rsc.Kind) + glog.Infof("Starting %v controller", controllerName) + defer glog.Infof("Shutting down %v controller", controllerName) - if !controller.WaitForCacheSync("replica set", stopCh, rsc.podListerSynced, rsc.rsListerSynced) { + if !controller.WaitForCacheSync(rsc.Kind, stopCh, rsc.podListerSynced, rsc.rsListerSynced) { return } @@ -176,7 +203,7 @@ func (rsc *ReplicaSetController) getPodReplicaSets(pod *v1.Pod) []*extensions.Re if len(rss) > 1 { // ControllerRef will ensure we don't do anything crazy, but more than one // item in this list nevertheless constitutes user error. - utilruntime.HandleError(fmt.Errorf("user error! more than one ReplicaSet is selecting pods with labels: %+v", pod.Labels)) + utilruntime.HandleError(fmt.Errorf("user error! more than one %v is selecting pods with labels: %+v", rsc.Kind, pod.Labels)) } return rss } @@ -187,7 +214,7 @@ func (rsc *ReplicaSetController) getPodReplicaSets(pod *v1.Pod) []*extensions.Re func (rsc *ReplicaSetController) resolveControllerRef(namespace string, controllerRef *metav1.OwnerReference) *extensions.ReplicaSet { // We can't look up by UID, so look up by Name and then verify UID. // Don't even try to look up by Name if it's the wrong Kind. - if controllerRef.Kind != controllerKind.Kind { + if controllerRef.Kind != rsc.Kind { return nil } rs, err := rsc.rsLister.ReplicaSets(namespace).Get(controllerRef.Name) @@ -220,7 +247,7 @@ func (rsc *ReplicaSetController) updateRS(old, cur interface{}) { // that bad as ReplicaSets that haven't met expectations yet won't // sync, and all the listing is done using local stores. if *(oldRS.Spec.Replicas) != *(curRS.Spec.Replicas) { - glog.V(4).Infof("Replica set %v updated. Desired pod count change: %d->%d", curRS.Name, *(oldRS.Spec.Replicas), *(curRS.Spec.Replicas)) + glog.V(4).Infof("%v %v updated. Desired pod count change: %d->%d", rsc.Kind, curRS.Name, *(oldRS.Spec.Replicas), *(curRS.Spec.Replicas)) } rsc.enqueueReplicaSet(cur) } @@ -319,7 +346,7 @@ func (rsc *ReplicaSetController) updatePod(old, cur interface{}) { // Note that this still suffers from #29229, we are just moving the problem one level // "closer" to kubelet (from the deployment to the replica set controller). if !podutil.IsPodReady(oldPod) && podutil.IsPodReady(curPod) && rs.Spec.MinReadySeconds > 0 { - glog.V(2).Infof("ReplicaSet %q will be enqueued after %ds for availability check", rs.Name, rs.Spec.MinReadySeconds) + glog.V(2).Infof("%v %q will be enqueued after %ds for availability check", rsc.Kind, rs.Name, rs.Spec.MinReadySeconds) // Add a second to avoid milliseconds skew in AddAfter. // See https://github.com/kubernetes/kubernetes/issues/39785#issuecomment-279959133 for more info. rsc.enqueueReplicaSetAfter(rs, (time.Duration(rs.Spec.MinReadySeconds)*time.Second)+time.Second) @@ -434,13 +461,11 @@ func (rsc *ReplicaSetController) manageReplicas(filteredPods []*v1.Pod, rs *exte diff := len(filteredPods) - int(*(rs.Spec.Replicas)) rsKey, err := controller.KeyFunc(rs) if err != nil { - utilruntime.HandleError(fmt.Errorf("Couldn't get key for ReplicaSet %#v: %v", rs, err)) + utilruntime.HandleError(fmt.Errorf("Couldn't get key for %v %#v: %v", rsc.Kind, rs, err)) return nil } - var errCh chan error if diff < 0 { diff *= -1 - errCh = make(chan error, diff) if diff > rsc.burstReplicas { diff = rsc.burstReplicas } @@ -450,8 +475,7 @@ func (rsc *ReplicaSetController) manageReplicas(filteredPods []*v1.Pod, rs *exte // into a performance bottleneck. We should generate a UID for the pod // beforehand and store it via ExpectCreations. rsc.expectations.ExpectCreations(rsKey, diff) - var wg sync.WaitGroup - glog.V(2).Infof("Too few %q/%q replicas, need %d, creating %d", rs.Namespace, rs.Name, *(rs.Spec.Replicas), diff) + glog.V(2).Infof("Too few replicas for %v %s/%s, need %d, creating %d", rsc.Kind, rs.Namespace, rs.Name, *(rs.Spec.Replicas), diff) // Batch the pod creates. Batch sizes start at SlowStartInitialBatchSize // and double with each successful iteration in a kind of "slow start". // This handles attempts to start large numbers of pods that would @@ -460,105 +484,85 @@ func (rsc *ReplicaSetController) manageReplicas(filteredPods []*v1.Pod, rs *exte // prevented from spamming the API service with the pod create requests // after one of its pods fails. Conveniently, this also prevents the // event spam that those failures would generate. - for batchSize := integer.IntMin(diff, controller.SlowStartInitialBatchSize); diff > 0; batchSize = integer.IntMin(2*batchSize, diff) { - errorCount := len(errCh) - wg.Add(batchSize) - for i := 0; i < batchSize; i++ { - go func() { - defer wg.Done() - var err error - boolPtr := func(b bool) *bool { return &b } - controllerRef := &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: rs.Name, - UID: rs.UID, - BlockOwnerDeletion: boolPtr(true), - Controller: boolPtr(true), - } - err = rsc.podControl.CreatePodsWithControllerRef(rs.Namespace, &rs.Spec.Template, rs, controllerRef) - if err != nil && errors.IsTimeout(err) { - // Pod is created but its initialization has timed out. - // If the initialization is successful eventually, the - // controller will observe the creation via the informer. - // If the initialization fails, or if the pod keeps - // uninitialized for a long time, the informer will not - // receive any update, and the controller will create a new - // pod when the expectation expires. - return - } - if err != nil { - // Decrement the expected number of creates because the informer won't observe this pod - glog.V(2).Infof("Failed creation, decrementing expectations for replica set %q/%q", rs.Namespace, rs.Name) - rsc.expectations.CreationObserved(rsKey) - errCh <- err - } - }() + successfulCreations, err := slowStartBatch(diff, controller.SlowStartInitialBatchSize, func() error { + boolPtr := func(b bool) *bool { return &b } + controllerRef := &metav1.OwnerReference{ + APIVersion: rsc.GroupVersion().String(), + Kind: rsc.Kind, + Name: rs.Name, + UID: rs.UID, + BlockOwnerDeletion: boolPtr(true), + Controller: boolPtr(true), } - wg.Wait() - // any skipped pods that we never attempted to start shouldn't be expected. - skippedPods := diff - batchSize - if errorCount < len(errCh) && skippedPods > 0 { - glog.V(2).Infof("Slow-start failure. Skipping creation of %d pods, decrementing expectations for replica set %q/%q", skippedPods, rs.Namespace, rs.Name) - for i := 0; i < skippedPods; i++ { - // Decrement the expected number of creates because the informer won't observe this pod - rsc.expectations.CreationObserved(rsKey) - } - // The skipped pods will be retried later. The next controller resync will - // retry the slow start process. - break + err := rsc.podControl.CreatePodsWithControllerRef(rs.Namespace, &rs.Spec.Template, rs, controllerRef) + if err != nil && errors.IsTimeout(err) { + // Pod is created but its initialization has timed out. + // If the initialization is successful eventually, the + // controller will observe the creation via the informer. + // If the initialization fails, or if the pod keeps + // uninitialized for a long time, the informer will not + // receive any update, and the controller will create a new + // pod when the expectation expires. + return nil + } + return err + }) + + // Any skipped pods that we never attempted to start shouldn't be expected. + // The skipped pods will be retried later. The next controller resync will + // retry the slow start process. + if skippedPods := diff - successfulCreations; skippedPods > 0 { + glog.V(2).Infof("Slow-start failure. Skipping creation of %d pods, decrementing expectations for %v %v/%v", skippedPods, rsc.Kind, rs.Namespace, rs.Name) + for i := 0; i < skippedPods; i++ { + // Decrement the expected number of creates because the informer won't observe this pod + rsc.expectations.CreationObserved(rsKey) } - diff -= batchSize } + return err } else if diff > 0 { if diff > rsc.burstReplicas { diff = rsc.burstReplicas } - errCh = make(chan error, diff) - glog.V(2).Infof("Too many %q/%q replicas, need %d, deleting %d", rs.Namespace, rs.Name, *(rs.Spec.Replicas), diff) - // No need to sort pods if we are about to delete all of them - if *(rs.Spec.Replicas) != 0 { - // Sort the pods in the order such that not-ready < ready, unscheduled - // < scheduled, and pending < running. This ensures that we delete pods - // in the earlier stages whenever possible. - sort.Sort(controller.ActivePods(filteredPods)) - } + glog.V(2).Infof("Too many replicas for %v %s/%s, need %d, deleting %d", rsc.Kind, rs.Namespace, rs.Name, *(rs.Spec.Replicas), diff) + + // Choose which Pods to delete, preferring those in earlier phases of startup. + podsToDelete := getPodsToDelete(filteredPods, diff) + // Snapshot the UIDs (ns/name) of the pods we're expecting to see // deleted, so we know to record their expectations exactly once either // when we see it as an update of the deletion timestamp, or as a delete. // Note that if the labels on a pod/rs change in a way that the pod gets // orphaned, the rs will only wake up after the expectations have // expired even if other pods are deleted. - deletedPodKeys := []string{} - for i := 0; i < diff; i++ { - deletedPodKeys = append(deletedPodKeys, controller.PodKey(filteredPods[i])) - } - rsc.expectations.ExpectDeletions(rsKey, deletedPodKeys) + rsc.expectations.ExpectDeletions(rsKey, getPodKeys(podsToDelete)) + + errCh := make(chan error, diff) var wg sync.WaitGroup wg.Add(diff) - for i := 0; i < diff; i++ { - go func(ix int) { + for _, pod := range podsToDelete { + go func(targetPod *v1.Pod) { defer wg.Done() - if err := rsc.podControl.DeletePod(rs.Namespace, filteredPods[ix].Name, rs); err != nil { + if err := rsc.podControl.DeletePod(rs.Namespace, targetPod.Name, rs); err != nil { // Decrement the expected number of deletes because the informer won't observe this deletion - podKey := controller.PodKey(filteredPods[ix]) - glog.V(2).Infof("Failed to delete %v, decrementing expectations for controller %q/%q", podKey, rs.Namespace, rs.Name) + podKey := controller.PodKey(targetPod) + glog.V(2).Infof("Failed to delete %v, decrementing expectations for %v %s/%s", podKey, rsc.Kind, rs.Namespace, rs.Name) rsc.expectations.DeletionObserved(rsKey, podKey) errCh <- err } - }(i) + }(pod) } wg.Wait() - } - select { - case err := <-errCh: - // all errors have been reported before and they're likely to be the same, so we'll only return the first one we hit. - if err != nil { - return err + select { + case err := <-errCh: + // all errors have been reported before and they're likely to be the same, so we'll only return the first one we hit. + if err != nil { + return err + } + default: } - default: } + return nil } @@ -566,9 +570,10 @@ func (rsc *ReplicaSetController) manageReplicas(filteredPods []*v1.Pod, rs *exte // meaning it did not expect to see any more of its pods created or deleted. This function is not meant to be // invoked concurrently with the same key. func (rsc *ReplicaSetController) syncReplicaSet(key string) error { + startTime := time.Now() defer func() { - glog.V(4).Infof("Finished syncing replica set %q (%v)", key, time.Now().Sub(startTime)) + glog.V(4).Infof("Finished syncing %v %q (%v)", rsc.Kind, key, time.Since(startTime)) }() namespace, name, err := cache.SplitMetaNamespaceKey(key) @@ -577,7 +582,7 @@ func (rsc *ReplicaSetController) syncReplicaSet(key string) error { } rs, err := rsc.rsLister.ReplicaSets(namespace).Get(name) if errors.IsNotFound(err) { - glog.V(4).Infof("ReplicaSet has been deleted %v", key) + glog.V(4).Infof("%v %v has been deleted", rsc.Kind, key) rsc.expectations.DeleteExpectations(key) return nil } @@ -606,22 +611,10 @@ func (rsc *ReplicaSetController) syncReplicaSet(key string) error { filteredPods = append(filteredPods, pod) } } - // If any adoptions are attempted, we should first recheck for deletion with - // an uncached quorum read sometime after listing Pods (see #42639). - canAdoptFunc := controller.RecheckDeletionTimestamp(func() (metav1.Object, error) { - fresh, err := rsc.kubeClient.ExtensionsV1beta1().ReplicaSets(rs.Namespace).Get(rs.Name, metav1.GetOptions{}) - if err != nil { - return nil, err - } - if fresh.UID != rs.UID { - return nil, fmt.Errorf("original ReplicaSet %v/%v is gone: got uid %v, wanted %v", rs.Namespace, rs.Name, fresh.UID, rs.UID) - } - return fresh, nil - }) - cm := controller.NewPodControllerRefManager(rsc.podControl, rs, selector, controllerKind, canAdoptFunc) + // NOTE: filteredPods are pointing to objects from cache - if you need to // modify them, you need to copy it first. - filteredPods, err = cm.ClaimPods(filteredPods) + filteredPods, err = rsc.claimPods(rs, selector, filteredPods) if err != nil { return err } @@ -630,13 +623,11 @@ func (rsc *ReplicaSetController) syncReplicaSet(key string) error { if rsNeedsSync && rs.DeletionTimestamp == nil { manageReplicasErr = rsc.manageReplicas(filteredPods, rs) } - rs = rs.DeepCopy() - newStatus := calculateStatus(rs, filteredPods, manageReplicasErr) // Always updates status as pods come up or die. - updatedRS, err := updateReplicaSetStatus(rsc.kubeClient.Extensions().ReplicaSets(rs.Namespace), rs, newStatus) + updatedRS, err := updateReplicaSetStatus(rsc.kubeClient.ExtensionsV1beta1().ReplicaSets(rs.Namespace), rs, newStatus) if err != nil { // Multiple things could lead to this update failing. Requeuing the replica set ensures // Returning an error causes a requeue without forcing a hotloop @@ -650,3 +641,77 @@ func (rsc *ReplicaSetController) syncReplicaSet(key string) error { } return manageReplicasErr } + +func (rsc *ReplicaSetController) claimPods(rs *extensions.ReplicaSet, selector labels.Selector, filteredPods []*v1.Pod) ([]*v1.Pod, error) { + // If any adoptions are attempted, we should first recheck for deletion with + // an uncached quorum read sometime after listing Pods (see #42639). + canAdoptFunc := controller.RecheckDeletionTimestamp(func() (metav1.Object, error) { + fresh, err := rsc.kubeClient.ExtensionsV1beta1().ReplicaSets(rs.Namespace).Get(rs.Name, metav1.GetOptions{}) + if err != nil { + return nil, err + } + if fresh.UID != rs.UID { + return nil, fmt.Errorf("original %v %v/%v is gone: got uid %v, wanted %v", rsc.Kind, rs.Namespace, rs.Name, fresh.UID, rs.UID) + } + return fresh, nil + }) + cm := controller.NewPodControllerRefManager(rsc.podControl, rs, selector, rsc.GroupVersionKind, canAdoptFunc) + return cm.ClaimPods(filteredPods) +} + +// slowStartBatch tries to call the provided function a total of 'count' times, +// starting slow to check for errors, then speeding up if calls succeed. +// +// It groups the calls into batches, starting with a group of initialBatchSize. +// Within each batch, it may call the function multiple times concurrently. +// +// If a whole batch succeeds, the next batch may get exponentially larger. +// If there are any failures in a batch, all remaining batches are skipped +// after waiting for the current batch to complete. +// +// It returns the number of successful calls to the function. +func slowStartBatch(count int, initialBatchSize int, fn func() error) (int, error) { + remaining := count + successes := 0 + for batchSize := integer.IntMin(remaining, initialBatchSize); batchSize > 0; batchSize = integer.IntMin(2*batchSize, remaining) { + errCh := make(chan error, batchSize) + var wg sync.WaitGroup + wg.Add(batchSize) + for i := 0; i < batchSize; i++ { + go func() { + defer wg.Done() + if err := fn(); err != nil { + errCh <- err + } + }() + } + wg.Wait() + curSuccesses := batchSize - len(errCh) + successes += curSuccesses + if len(errCh) > 0 { + return successes, <-errCh + } + remaining -= batchSize + } + return successes, nil +} + +func getPodsToDelete(filteredPods []*v1.Pod, diff int) []*v1.Pod { + // No need to sort pods if we are about to delete all of them. + // diff will always be <= len(filteredPods), so not need to handle > case. + if diff < len(filteredPods) { + // Sort the pods in the order such that not-ready < ready, unscheduled + // < scheduled, and pending < running. This ensures that we delete pods + // in the earlier stages whenever possible. + sort.Sort(controller.ActivePods(filteredPods)) + } + return filteredPods[:diff] +} + +func getPodKeys(pods []*v1.Pod) []string { + podKeys := make([]string, 0, len(pods)) + for _, pod := range pods { + podKeys = append(podKeys, controller.PodKey(pod)) + } + return podKeys +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_test.go b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_test.go index 88ca66d2f..da71ea727 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_test.go @@ -14,8 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// If you make changes to this file, you should also make the corresponding change in ReplicationController. - package replicaset import ( @@ -26,6 +24,7 @@ import ( "net/url" "reflect" "strings" + "sync" "testing" "time" @@ -47,7 +46,7 @@ import ( "k8s.io/client-go/tools/cache" utiltesting "k8s.io/client-go/util/testing" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/securitycontext" ) @@ -91,7 +90,7 @@ func getKey(rs *extensions.ReplicaSet, t *testing.T) string { func newReplicaSet(replicas int, selectorMap map[string]string) *extensions.ReplicaSet { rs := &extensions.ReplicaSet{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, ObjectMeta: metav1.ObjectMeta{ UID: uuid.NewUUID(), Name: "foobar", @@ -209,7 +208,7 @@ func replicaSetResourceName() string { } func TestSyncReplicaSetDoesNothing(t *testing.T) { - client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) fakePodControl := controller.FakePodControl{} stopCh := make(chan struct{}) defer close(stopCh) @@ -227,7 +226,7 @@ func TestSyncReplicaSetDoesNothing(t *testing.T) { } func TestDeleteFinalStateUnknown(t *testing.T) { - client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) fakePodControl := controller.FakePodControl{} stopCh := make(chan struct{}) defer close(stopCh) @@ -298,7 +297,7 @@ func TestSyncReplicaSetDormancy(t *testing.T) { } testServer := httptest.NewServer(&fakeHandler) defer testServer.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: testServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: testServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) fakePodControl := controller.FakePodControl{} stopCh := make(chan struct{}) @@ -359,7 +358,7 @@ func TestSyncReplicaSetDormancy(t *testing.T) { func TestPodControllerLookup(t *testing.T) { stopCh := make(chan struct{}) defer close(stopCh) - manager, informers := testNewReplicaSetControllerFromClient(clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}), stopCh, BurstReplicas) + manager, informers := testNewReplicaSetControllerFromClient(clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}), stopCh, BurstReplicas) testCases := []struct { inRSs []*extensions.ReplicaSet pod *v1.Pod @@ -887,7 +886,7 @@ func (fe FakeRSExpectations) SatisfiedExpectations(controllerKey string) bool { // TestRSSyncExpectations tests that a pod cannot sneak in between counting active pods // and checking expectations. func TestRSSyncExpectations(t *testing.T) { - client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) fakePodControl := controller.FakePodControl{} stopCh := make(chan struct{}) defer close(stopCh) @@ -968,7 +967,7 @@ func shuffle(controllers []*extensions.ReplicaSet) []*extensions.ReplicaSet { } func TestOverlappingRSs(t *testing.T) { - client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) labelMap := map[string]string{"foo": "bar"} stopCh := make(chan struct{}) @@ -1011,7 +1010,7 @@ func TestOverlappingRSs(t *testing.T) { } func TestDeletionTimestamp(t *testing.T) { - c := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + c := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) labelMap := map[string]string{"foo": "bar"} stopCh := make(chan struct{}) defer close(stopCh) @@ -1373,3 +1372,254 @@ func TestRemoveCondition(t *testing.T) { } } } + +func TestSlowStartBatch(t *testing.T) { + fakeErr := fmt.Errorf("fake error") + callCnt := 0 + callLimit := 0 + var lock sync.Mutex + fn := func() error { + lock.Lock() + defer lock.Unlock() + callCnt++ + if callCnt > callLimit { + return fakeErr + } + return nil + } + + tests := []struct { + name string + count int + callLimit int + fn func() error + expectedSuccesses int + expectedErr error + expectedCallCnt int + }{ + { + name: "callLimit = 0 (all fail)", + count: 10, + callLimit: 0, + fn: fn, + expectedSuccesses: 0, + expectedErr: fakeErr, + expectedCallCnt: 1, // 1(first batch): function will be called at least once + }, + { + name: "callLimit = count (all succeed)", + count: 10, + callLimit: 10, + fn: fn, + expectedSuccesses: 10, + expectedErr: nil, + expectedCallCnt: 10, // 1(first batch) + 2(2nd batch) + 4(3rd batch) + 3(4th batch) = 10 + }, + { + name: "callLimit < count (some succeed)", + count: 10, + callLimit: 5, + fn: fn, + expectedSuccesses: 5, + expectedErr: fakeErr, + expectedCallCnt: 7, // 1(first batch) + 2(2nd batch) + 4(3rd batch) = 7 + }, + } + + for _, test := range tests { + callCnt = 0 + callLimit = test.callLimit + successes, err := slowStartBatch(test.count, 1, test.fn) + if successes != test.expectedSuccesses { + t.Errorf("%s: unexpected processed batch size, expected %d, got %d", test.name, test.expectedSuccesses, successes) + } + if err != test.expectedErr { + t.Errorf("%s: unexpected processed batch size, expected %v, got %v", test.name, test.expectedErr, err) + } + // verify that slowStartBatch stops trying more calls after a batch fails + if callCnt != test.expectedCallCnt { + t.Errorf("%s: slowStartBatch() still tries calls after a batch fails, expected %d calls, got %d", test.name, test.expectedCallCnt, callCnt) + } + } +} + +func TestGetPodsToDelete(t *testing.T) { + labelMap := map[string]string{"name": "foo"} + rs := newReplicaSet(1, labelMap) + // an unscheduled, pending pod + unscheduledPendingPod := newPod("unscheduled-pending-pod", rs, v1.PodPending, nil, true) + // a scheduled, pending pod + scheduledPendingPod := newPod("scheduled-pending-pod", rs, v1.PodPending, nil, true) + scheduledPendingPod.Spec.NodeName = "fake-node" + // a scheduled, running, not-ready pod + scheduledRunningNotReadyPod := newPod("scheduled-running-not-ready-pod", rs, v1.PodRunning, nil, true) + scheduledRunningNotReadyPod.Spec.NodeName = "fake-node" + scheduledRunningNotReadyPod.Status.Conditions = []v1.PodCondition{ + { + Type: v1.PodReady, + Status: v1.ConditionFalse, + }, + } + // a scheduled, running, ready pod + scheduledRunningReadyPod := newPod("scheduled-running-ready-pod", rs, v1.PodRunning, nil, true) + scheduledRunningReadyPod.Spec.NodeName = "fake-node" + scheduledRunningReadyPod.Status.Conditions = []v1.PodCondition{ + { + Type: v1.PodReady, + Status: v1.ConditionTrue, + }, + } + + tests := []struct { + name string + pods []*v1.Pod + diff int + expectedPodsToDelete []*v1.Pod + }{ + // Order used when selecting pods for deletion: + // an unscheduled, pending pod + // a scheduled, pending pod + // a scheduled, running, not-ready pod + // a scheduled, running, ready pod + // Note that a pending pod cannot be ready + { + "len(pods) = 0 (i.e., diff = 0 too)", + []*v1.Pod{}, + 0, + []*v1.Pod{}, + }, + { + "diff = len(pods)", + []*v1.Pod{ + scheduledRunningNotReadyPod, + scheduledRunningReadyPod, + }, + 2, + []*v1.Pod{scheduledRunningNotReadyPod, scheduledRunningReadyPod}, + }, + { + "diff < len(pods)", + []*v1.Pod{ + scheduledRunningReadyPod, + scheduledRunningNotReadyPod, + }, + 1, + []*v1.Pod{scheduledRunningNotReadyPod}, + }, + { + "various pod phases and conditions, diff = len(pods)", + []*v1.Pod{ + scheduledRunningReadyPod, + scheduledRunningNotReadyPod, + scheduledPendingPod, + unscheduledPendingPod, + }, + 4, + []*v1.Pod{ + scheduledRunningReadyPod, + scheduledRunningNotReadyPod, + scheduledPendingPod, + unscheduledPendingPod, + }, + }, + { + "scheduled vs unscheduled, diff < len(pods)", + []*v1.Pod{ + scheduledPendingPod, + unscheduledPendingPod, + }, + 1, + []*v1.Pod{ + unscheduledPendingPod, + }, + }, + { + "ready vs not-ready, diff < len(pods)", + []*v1.Pod{ + scheduledRunningReadyPod, + scheduledRunningNotReadyPod, + scheduledRunningNotReadyPod, + }, + 2, + []*v1.Pod{ + scheduledRunningNotReadyPod, + scheduledRunningNotReadyPod, + }, + }, + { + "pending vs running, diff < len(pods)", + []*v1.Pod{ + scheduledPendingPod, + scheduledRunningNotReadyPod, + }, + 1, + []*v1.Pod{ + scheduledPendingPod, + }, + }, + { + "various pod phases and conditions, diff < len(pods)", + []*v1.Pod{ + scheduledRunningReadyPod, + scheduledRunningNotReadyPod, + scheduledPendingPod, + unscheduledPendingPod, + }, + 3, + []*v1.Pod{ + unscheduledPendingPod, + scheduledPendingPod, + scheduledRunningNotReadyPod, + }, + }, + } + + for _, test := range tests { + podsToDelete := getPodsToDelete(test.pods, test.diff) + if len(podsToDelete) != len(test.expectedPodsToDelete) { + t.Errorf("%s: unexpected pods to delete, expected %v, got %v", test.name, test.expectedPodsToDelete, podsToDelete) + } + if !reflect.DeepEqual(podsToDelete, test.expectedPodsToDelete) { + t.Errorf("%s: unexpected pods to delete, expected %v, got %v", test.name, test.expectedPodsToDelete, podsToDelete) + } + } +} + +func TestGetPodKeys(t *testing.T) { + labelMap := map[string]string{"name": "foo"} + rs := newReplicaSet(1, labelMap) + pod1 := newPod("pod1", rs, v1.PodRunning, nil, true) + pod2 := newPod("pod2", rs, v1.PodRunning, nil, true) + + tests := []struct { + name string + pods []*v1.Pod + expectedPodKeys []string + }{ + { + "len(pods) = 0 (i.e., pods = nil)", + []*v1.Pod{}, + []string{}, + }, + { + "len(pods) > 0", + []*v1.Pod{ + pod1, + pod2, + }, + []string{"default/pod1", "default/pod2"}, + }, + } + + for _, test := range tests { + podKeys := getPodKeys(test.pods) + if len(podKeys) != len(test.expectedPodKeys) { + t.Errorf("%s: unexpected keys for pods to delete, expected %v, got %v", test.name, test.expectedPodKeys, podKeys) + } + for i := 0; i < len(podKeys); i++ { + if podKeys[i] != test.expectedPodKeys[i] { + t.Errorf("%s: unexpected keys for pods to delete, expected %v, got %v", test.name, test.expectedPodKeys, podKeys) + } + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_utils.go b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_utils.go index ec11fd106..ad628da95 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_utils.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_utils.go @@ -55,7 +55,7 @@ func updateReplicaSetStatus(c unversionedextensions.ReplicaSetInterface, rs *ext var getErr, updateErr error var updatedRS *extensions.ReplicaSet for i, rs := 0, rs; ; i++ { - glog.V(4).Infof(fmt.Sprintf("Updating status for ReplicaSet: %s/%s, ", rs.Namespace, rs.Name) + + glog.V(4).Infof(fmt.Sprintf("Updating status for %v: %s/%s, ", rs.Kind, rs.Namespace, rs.Name) + fmt.Sprintf("replicas %d->%d (need %d), ", rs.Status.Replicas, newStatus.Replicas, *(rs.Spec.Replicas)) + fmt.Sprintf("fullyLabeledReplicas %d->%d, ", rs.Status.FullyLabeledReplicas, newStatus.FullyLabeledReplicas) + fmt.Sprintf("readyReplicas %d->%d, ", rs.Status.ReadyReplicas, newStatus.ReadyReplicas) + diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_utils_test.go b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_utils_test.go new file mode 100644 index 000000000..fbde4d0b4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/replica_set_utils_test.go @@ -0,0 +1,246 @@ +/* +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. +*/ + +// If you make changes to this file, you should also make the corresponding change in ReplicationController. + +package replicaset + +import ( + "fmt" + "reflect" + "testing" + + "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" +) + +func TestCalculateStatus(t *testing.T) { + labelMap := map[string]string{"name": "foo"} + fullLabelMap := map[string]string{"name": "foo", "type": "production"} + notFullyLabelledRS := newReplicaSet(1, labelMap) + // Set replica num to 2 for status condition testing (diff < 0, diff > 0) + fullyLabelledRS := newReplicaSet(2, fullLabelMap) + longMinReadySecondsRS := newReplicaSet(1, fullLabelMap) + longMinReadySecondsRS.Spec.MinReadySeconds = 3600 + + rsStatusTests := []struct { + name string + replicaset *extensions.ReplicaSet + filteredPods []*v1.Pod + expectedReplicaSetStatus extensions.ReplicaSetStatus + }{ + { + "1 fully labelled pod", + fullyLabelledRS, + []*v1.Pod{ + newPod("pod1", fullyLabelledRS, v1.PodRunning, nil, true), + }, + extensions.ReplicaSetStatus{ + Replicas: 1, + FullyLabeledReplicas: 1, + ReadyReplicas: 1, + AvailableReplicas: 1, + }, + }, + { + "1 not fully labelled pod", + notFullyLabelledRS, + []*v1.Pod{ + newPod("pod1", notFullyLabelledRS, v1.PodRunning, nil, true), + }, + extensions.ReplicaSetStatus{ + Replicas: 1, + FullyLabeledReplicas: 0, + ReadyReplicas: 1, + AvailableReplicas: 1, + }, + }, + { + "2 fully labelled pods", + fullyLabelledRS, + []*v1.Pod{ + newPod("pod1", fullyLabelledRS, v1.PodRunning, nil, true), + newPod("pod2", fullyLabelledRS, v1.PodRunning, nil, true), + }, + extensions.ReplicaSetStatus{ + Replicas: 2, + FullyLabeledReplicas: 2, + ReadyReplicas: 2, + AvailableReplicas: 2, + }, + }, + { + "2 not fully labelled pods", + notFullyLabelledRS, + []*v1.Pod{ + newPod("pod1", notFullyLabelledRS, v1.PodRunning, nil, true), + newPod("pod2", notFullyLabelledRS, v1.PodRunning, nil, true), + }, + extensions.ReplicaSetStatus{ + Replicas: 2, + FullyLabeledReplicas: 0, + ReadyReplicas: 2, + AvailableReplicas: 2, + }, + }, + { + "1 fully labelled pod, 1 not fully labelled pod", + notFullyLabelledRS, + []*v1.Pod{ + newPod("pod1", notFullyLabelledRS, v1.PodRunning, nil, true), + newPod("pod2", fullyLabelledRS, v1.PodRunning, nil, true), + }, + extensions.ReplicaSetStatus{ + Replicas: 2, + FullyLabeledReplicas: 1, + ReadyReplicas: 2, + AvailableReplicas: 2, + }, + }, + { + "1 non-ready pod", + fullyLabelledRS, + []*v1.Pod{ + newPod("pod1", fullyLabelledRS, v1.PodPending, nil, true), + }, + extensions.ReplicaSetStatus{ + Replicas: 1, + FullyLabeledReplicas: 1, + ReadyReplicas: 0, + AvailableReplicas: 0, + }, + }, + { + "1 ready but non-available pod", + longMinReadySecondsRS, + []*v1.Pod{ + newPod("pod1", longMinReadySecondsRS, v1.PodRunning, nil, true), + }, + extensions.ReplicaSetStatus{ + Replicas: 1, + FullyLabeledReplicas: 1, + ReadyReplicas: 1, + AvailableReplicas: 0, + }, + }, + } + + for _, test := range rsStatusTests { + replicaSetStatus := calculateStatus(test.replicaset, test.filteredPods, nil) + if !reflect.DeepEqual(replicaSetStatus, test.expectedReplicaSetStatus) { + t.Errorf("%s: unexpected replicaset status: expected %v, got %v", test.name, test.expectedReplicaSetStatus, replicaSetStatus) + } + } +} + +func TestCalculateStatusConditions(t *testing.T) { + labelMap := map[string]string{"name": "foo"} + rs := newReplicaSet(2, labelMap) + replicaFailureRS := newReplicaSet(10, labelMap) + replicaFailureRS.Status.Conditions = []extensions.ReplicaSetCondition{ + { + Type: extensions.ReplicaSetReplicaFailure, + Status: v1.ConditionTrue, + }, + } + + rsStatusConditionTests := []struct { + name string + replicaset *extensions.ReplicaSet + filteredPods []*v1.Pod + manageReplicasErr error + expectedReplicaSetConditions []extensions.ReplicaSetCondition + }{ + + { + "manageReplicasErr != nil && failureCond == nil, diff < 0", + rs, + []*v1.Pod{ + newPod("pod1", rs, v1.PodRunning, nil, true), + }, + fmt.Errorf("fake manageReplicasErr"), + []extensions.ReplicaSetCondition{ + { + Type: extensions.ReplicaSetReplicaFailure, + Status: v1.ConditionTrue, + Reason: "FailedCreate", + Message: "fake manageReplicasErr", + }, + }, + }, + { + "manageReplicasErr != nil && failureCond == nil, diff > 0", + rs, + []*v1.Pod{ + newPod("pod1", rs, v1.PodRunning, nil, true), + newPod("pod2", rs, v1.PodRunning, nil, true), + newPod("pod3", rs, v1.PodRunning, nil, true), + }, + fmt.Errorf("fake manageReplicasErr"), + []extensions.ReplicaSetCondition{ + { + Type: extensions.ReplicaSetReplicaFailure, + Status: v1.ConditionTrue, + Reason: "FailedDelete", + Message: "fake manageReplicasErr", + }, + }, + }, + { + "manageReplicasErr == nil && failureCond != nil", + replicaFailureRS, + []*v1.Pod{ + newPod("pod1", replicaFailureRS, v1.PodRunning, nil, true), + }, + nil, + nil, + }, + { + "manageReplicasErr != nil && failureCond != nil", + replicaFailureRS, + []*v1.Pod{ + newPod("pod1", replicaFailureRS, v1.PodRunning, nil, true), + }, + fmt.Errorf("fake manageReplicasErr"), + []extensions.ReplicaSetCondition{ + { + Type: extensions.ReplicaSetReplicaFailure, + Status: v1.ConditionTrue, + }, + }, + }, + { + "manageReplicasErr == nil && failureCond == nil", + rs, + []*v1.Pod{ + newPod("pod1", rs, v1.PodRunning, nil, true), + }, + nil, + nil, + }, + } + + for _, test := range rsStatusConditionTests { + replicaSetStatus := calculateStatus(test.replicaset, test.filteredPods, test.manageReplicasErr) + // all test cases have at most 1 status condition + if len(replicaSetStatus.Conditions) > 0 { + test.expectedReplicaSetConditions[0].LastTransitionTime = replicaSetStatus.Conditions[0].LastTransitionTime + } + if !reflect.DeepEqual(replicaSetStatus.Conditions, test.expectedReplicaSetConditions) { + t.Errorf("%s: unexpected replicaset status: expected %v, got %v", test.name, test.expectedReplicaSetConditions, replicaSetStatus.Conditions) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replication/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/replication/BUILD index 9c0c18ec8..17eb6701a 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/replication/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/replication/BUILD @@ -9,63 +9,47 @@ load( go_library( name = "go_default_library", srcs = [ + "conversion.go", "doc.go", "replication_controller.go", "replication_controller_utils.go", ], importpath = "k8s.io/kubernetes/pkg/controller/replication", deps = [ - "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core/v1:go_default_library", + "//pkg/apis/extensions:go_default_library", + "//pkg/apis/extensions/v1beta1:go_default_library", "//pkg/controller:go_default_library", - "//pkg/util/metrics:go_default_library", + "//pkg/controller/replicaset:go_default_library", "//vendor/github.com/golang/glog: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/api/extensions/v1beta1: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/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/trace:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:go_default_library", "//vendor/k8s.io/client-go/listers/core/v1:go_default_library", + "//vendor/k8s.io/client-go/listers/extensions/v1beta1:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", - "//vendor/k8s.io/client-go/util/integer:go_default_library", - "//vendor/k8s.io/client-go/util/workqueue:go_default_library", ], ) go_test( name = "go_default_test", - srcs = ["replication_controller_test.go"], + srcs = ["replication_controller_utils_test.go"], importpath = "k8s.io/kubernetes/pkg/controller/replication", library = ":go_default_library", - deps = [ - "//pkg/api:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/controller:go_default_library", - "//pkg/securitycontext:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/equality: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/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers:go_default_library", - "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - "//vendor/k8s.io/client-go/util/testing:go_default_library", - "//vendor/k8s.io/client-go/util/workqueue:go_default_library", - ], + deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) filegroup( diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replication/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/replication/OWNERS index 3fc7da4b6..1cf422540 100755 --- a/vendor/k8s.io/kubernetes/pkg/controller/replication/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/controller/replication/OWNERS @@ -1,7 +1,9 @@ approvers: - caesarxuchao - lavalamp +- enisoc reviewers: - caesarxuchao - lavalamp - tnozicka +- enisoc diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replication/conversion.go b/vendor/k8s.io/kubernetes/pkg/controller/replication/conversion.go new file mode 100644 index 000000000..67c1847a9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/replication/conversion.go @@ -0,0 +1,372 @@ +/* +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 contains adapters that convert between RC and RS, +// as if ReplicationController were an older API version of ReplicaSet. +// It allows ReplicaSetController to directly replace the old ReplicationManager, +// which was previously a manually-maintained copy-paste of RSC. + +package replication + +import ( + "errors" + "fmt" + "time" + + "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/watch" + coreinformers "k8s.io/client-go/informers/core/v1" + clientset "k8s.io/client-go/kubernetes" + appsv1 "k8s.io/client-go/kubernetes/typed/apps/v1" + appsv1beta2 "k8s.io/client-go/kubernetes/typed/apps/v1beta2" + v1client "k8s.io/client-go/kubernetes/typed/core/v1" + extensionsv1beta1client "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" + v1listers "k8s.io/client-go/listers/core/v1" + extensionslisters "k8s.io/client-go/listers/extensions/v1beta1" + "k8s.io/client-go/tools/cache" + apiv1 "k8s.io/kubernetes/pkg/apis/core/v1" + "k8s.io/kubernetes/pkg/apis/extensions" + extensionsinternalv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" + "k8s.io/kubernetes/pkg/controller" +) + +// informerAdapter implements ReplicaSetInformer by wrapping ReplicationControllerInformer +// and converting objects. +type informerAdapter struct { + rcInformer coreinformers.ReplicationControllerInformer +} + +func (i informerAdapter) Informer() cache.SharedIndexInformer { + return conversionInformer{i.rcInformer.Informer()} +} + +func (i informerAdapter) Lister() extensionslisters.ReplicaSetLister { + return conversionLister{i.rcInformer.Lister()} +} + +type conversionInformer struct { + cache.SharedIndexInformer +} + +func (i conversionInformer) AddEventHandler(handler cache.ResourceEventHandler) { + i.SharedIndexInformer.AddEventHandler(conversionEventHandler{handler}) +} + +func (i conversionInformer) AddEventHandlerWithResyncPeriod(handler cache.ResourceEventHandler, resyncPeriod time.Duration) { + i.SharedIndexInformer.AddEventHandlerWithResyncPeriod(conversionEventHandler{handler}, resyncPeriod) +} + +type conversionLister struct { + rcLister v1listers.ReplicationControllerLister +} + +func (l conversionLister) List(selector labels.Selector) ([]*extensionsv1beta1.ReplicaSet, error) { + rcList, err := l.rcLister.List(selector) + if err != nil { + return nil, err + } + return convertSlice(rcList) +} + +func (l conversionLister) ReplicaSets(namespace string) extensionslisters.ReplicaSetNamespaceLister { + return conversionNamespaceLister{l.rcLister.ReplicationControllers(namespace)} +} + +func (l conversionLister) GetPodReplicaSets(pod *v1.Pod) ([]*extensionsv1beta1.ReplicaSet, error) { + rcList, err := l.rcLister.GetPodControllers(pod) + if err != nil { + return nil, err + } + return convertSlice(rcList) +} + +type conversionNamespaceLister struct { + rcLister v1listers.ReplicationControllerNamespaceLister +} + +func (l conversionNamespaceLister) List(selector labels.Selector) ([]*extensionsv1beta1.ReplicaSet, error) { + rcList, err := l.rcLister.List(selector) + if err != nil { + return nil, err + } + return convertSlice(rcList) +} + +func (l conversionNamespaceLister) Get(name string) (*extensionsv1beta1.ReplicaSet, error) { + rc, err := l.rcLister.Get(name) + if err != nil { + return nil, err + } + return convertRCtoRS(rc, nil) +} + +type conversionEventHandler struct { + handler cache.ResourceEventHandler +} + +func (h conversionEventHandler) OnAdd(obj interface{}) { + rs, err := convertRCtoRS(obj.(*v1.ReplicationController), nil) + if err != nil { + utilruntime.HandleError(fmt.Errorf("dropping RC OnAdd event: can't convert object %#v to RS: %v", obj, err)) + return + } + h.handler.OnAdd(rs) +} + +func (h conversionEventHandler) OnUpdate(oldObj, newObj interface{}) { + oldRS, err := convertRCtoRS(oldObj.(*v1.ReplicationController), nil) + if err != nil { + utilruntime.HandleError(fmt.Errorf("dropping RC OnUpdate event: can't convert old object %#v to RS: %v", oldObj, err)) + return + } + newRS, err := convertRCtoRS(newObj.(*v1.ReplicationController), nil) + if err != nil { + utilruntime.HandleError(fmt.Errorf("dropping RC OnUpdate event: can't convert new object %#v to RS: %v", newObj, err)) + return + } + h.handler.OnUpdate(oldRS, newRS) +} + +func (h conversionEventHandler) OnDelete(obj interface{}) { + rc, ok := obj.(*v1.ReplicationController) + if !ok { + // Convert the Obj inside DeletedFinalStateUnknown. + tombstone, ok := obj.(cache.DeletedFinalStateUnknown) + if !ok { + utilruntime.HandleError(fmt.Errorf("dropping RC OnDelete event: couldn't get object from tombstone %+v", obj)) + return + } + rc, ok = tombstone.Obj.(*v1.ReplicationController) + if !ok { + utilruntime.HandleError(fmt.Errorf("dropping RC OnDelete event: tombstone contained object that is not a RC %#v", obj)) + return + } + rs, err := convertRCtoRS(rc, nil) + if err != nil { + utilruntime.HandleError(fmt.Errorf("dropping RC OnDelete event: can't convert object %#v to RS: %v", obj, err)) + return + } + h.handler.OnDelete(cache.DeletedFinalStateUnknown{Key: tombstone.Key, Obj: rs}) + return + } + + // It's a regular RC object. + rs, err := convertRCtoRS(rc, nil) + if err != nil { + utilruntime.HandleError(fmt.Errorf("dropping RC OnDelete event: can't convert object %#v to RS: %v", obj, err)) + return + } + h.handler.OnDelete(rs) +} + +type clientsetAdapter struct { + clientset.Interface +} + +func (c clientsetAdapter) ExtensionsV1beta1() extensionsv1beta1client.ExtensionsV1beta1Interface { + return conversionExtensionsClient{c.Interface, c.Interface.ExtensionsV1beta1()} +} + +func (c clientsetAdapter) Extensions() extensionsv1beta1client.ExtensionsV1beta1Interface { + return conversionExtensionsClient{c.Interface, c.Interface.Extensions()} +} + +func (c clientsetAdapter) AppsV1beta2() appsv1beta2.AppsV1beta2Interface { + return conversionAppsV1beta2Client{c.Interface, c.Interface.AppsV1beta2()} +} + +func (c clientsetAdapter) AppsV1() appsv1.AppsV1Interface { + return conversionAppsV1Client{c.Interface, c.Interface.AppsV1()} +} + +func (c clientsetAdapter) Apps() appsv1.AppsV1Interface { + return conversionAppsV1Client{c.Interface, c.Interface.AppsV1()} +} + +type conversionAppsV1beta2Client struct { + clientset clientset.Interface + appsv1beta2.AppsV1beta2Interface +} + +func (c conversionAppsV1beta2Client) ReplicaSets(namespace string) appsv1beta2.ReplicaSetInterface { + // TODO(enisoc): This will force RC integration tests to fail if anyone tries to update + // ReplicaSetController to use apps/v1beta2 without updating this conversion adapter. + // Please change conversionClient to use the new RS version instead of extensions/v1beta1, + // and then return a conversionClient here. + panic("need to update RC/RS conversionClient for apps/v1beta2") +} + +type conversionAppsV1Client struct { + clientset clientset.Interface + appsv1.AppsV1Interface +} + +func (c conversionAppsV1Client) ReplicaSets(namespace string) appsv1.ReplicaSetInterface { + // TODO(enisoc): This will force RC integration tests to fail if anyone tries to update + // ReplicaSetController to use apps/v1 without updating this conversion adapter. + // Please change conversionClient to use the new RS version instead of extensions/v1beta1, + // and then return a conversionClient here. + panic("need to update RC/RS conversionClient for apps/v1") +} + +type conversionExtensionsClient struct { + clientset clientset.Interface + extensionsv1beta1client.ExtensionsV1beta1Interface +} + +func (c conversionExtensionsClient) ReplicaSets(namespace string) extensionsv1beta1client.ReplicaSetInterface { + return conversionClient{c.clientset.CoreV1().ReplicationControllers(namespace)} +} + +type conversionClient struct { + v1client.ReplicationControllerInterface +} + +func (c conversionClient) Create(rs *extensionsv1beta1.ReplicaSet) (*extensionsv1beta1.ReplicaSet, error) { + return convertCall(c.ReplicationControllerInterface.Create, rs) +} + +func (c conversionClient) Update(rs *extensionsv1beta1.ReplicaSet) (*extensionsv1beta1.ReplicaSet, error) { + return convertCall(c.ReplicationControllerInterface.Update, rs) +} + +func (c conversionClient) UpdateStatus(rs *extensionsv1beta1.ReplicaSet) (*extensionsv1beta1.ReplicaSet, error) { + return convertCall(c.ReplicationControllerInterface.UpdateStatus, rs) +} + +func (c conversionClient) Get(name string, options metav1.GetOptions) (*extensionsv1beta1.ReplicaSet, error) { + rc, err := c.ReplicationControllerInterface.Get(name, options) + if err != nil { + return nil, err + } + return convertRCtoRS(rc, nil) +} + +func (c conversionClient) List(opts metav1.ListOptions) (*extensionsv1beta1.ReplicaSetList, error) { + rcList, err := c.ReplicationControllerInterface.List(opts) + if err != nil { + return nil, err + } + return convertList(rcList) +} + +func (c conversionClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { + // This is not used by RSC because we wrap the shared informer instead. + return nil, errors.New("Watch() is not implemented for conversionClient") +} + +func (c conversionClient) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *extensionsv1beta1.ReplicaSet, err error) { + // This is not used by RSC. + return nil, errors.New("Patch() is not implemented for conversionClient") +} + +func convertSlice(rcList []*v1.ReplicationController) ([]*extensionsv1beta1.ReplicaSet, error) { + rsList := make([]*extensionsv1beta1.ReplicaSet, 0, len(rcList)) + for _, rc := range rcList { + rs, err := convertRCtoRS(rc, nil) + if err != nil { + return nil, err + } + rsList = append(rsList, rs) + } + return rsList, nil +} + +func convertList(rcList *v1.ReplicationControllerList) (*extensionsv1beta1.ReplicaSetList, error) { + rsList := &extensionsv1beta1.ReplicaSetList{Items: make([]extensionsv1beta1.ReplicaSet, len(rcList.Items))} + for i := range rcList.Items { + rc := &rcList.Items[i] + _, err := convertRCtoRS(rc, &rsList.Items[i]) + if err != nil { + return nil, err + } + } + return rsList, nil +} + +func convertCall(fn func(*v1.ReplicationController) (*v1.ReplicationController, error), rs *extensionsv1beta1.ReplicaSet) (*extensionsv1beta1.ReplicaSet, error) { + rc, err := convertRStoRC(rs) + if err != nil { + return nil, err + } + result, err := fn(rc) + if err != nil { + return nil, err + } + return convertRCtoRS(result, nil) +} + +func convertRCtoRS(rc *v1.ReplicationController, out *extensionsv1beta1.ReplicaSet) (*extensionsv1beta1.ReplicaSet, error) { + var rsInternal extensions.ReplicaSet + if err := apiv1.Convert_v1_ReplicationController_to_extensions_ReplicaSet(rc, &rsInternal, nil); err != nil { + return nil, fmt.Errorf("can't convert ReplicationController %v/%v to ReplicaSet: %v", rc.Namespace, rc.Name, err) + } + if out == nil { + out = new(extensionsv1beta1.ReplicaSet) + } + if err := extensionsinternalv1beta1.Convert_extensions_ReplicaSet_To_v1beta1_ReplicaSet(&rsInternal, out, nil); err != nil { + return nil, fmt.Errorf("can't convert ReplicaSet (converted from ReplicationController %v/%v) from internal to extensions/v1beta1: %v", rc.Namespace, rc.Name, err) + } + return out, nil +} + +func convertRStoRC(rs *extensionsv1beta1.ReplicaSet) (*v1.ReplicationController, error) { + var rsInternal extensions.ReplicaSet + if err := extensionsinternalv1beta1.Convert_v1beta1_ReplicaSet_To_extensions_ReplicaSet(rs, &rsInternal, nil); err != nil { + return nil, fmt.Errorf("can't convert ReplicaSet (converting to ReplicationController %v/%v) from extensions/v1beta1 to internal: %v", rs.Namespace, rs.Name, err) + } + var rc v1.ReplicationController + if err := apiv1.Convert_extensions_ReplicaSet_to_v1_ReplicationController(&rsInternal, &rc, nil); err != nil { + return nil, fmt.Errorf("can't convert ReplicaSet to ReplicationController %v/%v: %v", rs.Namespace, rs.Name, err) + } + return &rc, nil +} + +type podControlAdapter struct { + controller.PodControlInterface +} + +func (pc podControlAdapter) CreatePods(namespace string, template *v1.PodTemplateSpec, object runtime.Object) error { + // This is not used by RSC. + return errors.New("CreatePods() is not implemented for podControlAdapter") +} + +func (pc podControlAdapter) CreatePodsOnNode(nodeName, namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error { + // This is not used by RSC. + return errors.New("CreatePodsOnNode() is not implemented for podControlAdapter") +} + +func (pc podControlAdapter) CreatePodsWithControllerRef(namespace string, template *v1.PodTemplateSpec, object runtime.Object, controllerRef *metav1.OwnerReference) error { + rc, err := convertRStoRC(object.(*extensionsv1beta1.ReplicaSet)) + if err != nil { + return err + } + return pc.PodControlInterface.CreatePodsWithControllerRef(namespace, template, rc, controllerRef) +} + +func (pc podControlAdapter) DeletePod(namespace string, podID string, object runtime.Object) error { + rc, err := convertRStoRC(object.(*extensionsv1beta1.ReplicaSet)) + if err != nil { + return err + } + return pc.PodControlInterface.DeletePod(namespace, podID, rc) +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller.go index ff032f840..b181db0f3 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller.go @@ -14,653 +14,54 @@ See the License for the specific language governing permissions and limitations under the License. */ -// If you make changes to this file, you should also make the corresponding change in ReplicaSet. +// ### ATTENTION ### +// +// ReplicationManager is now just a wrapper around ReplicaSetController, +// with a conversion layer that effectively treats ReplicationController +// as if it were an older API version of ReplicaSet. +// +// However, RC and RS still have separate storage and separate instantiations +// of the ReplicaSetController object. package replication import ( - "fmt" - "reflect" - "sort" - "sync" - "time" - "github.com/golang/glog" "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/wait" - utiltrace "k8s.io/apiserver/pkg/util/trace" coreinformers "k8s.io/client-go/informers/core/v1" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/scheme" v1core "k8s.io/client-go/kubernetes/typed/core/v1" - corelisters "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" - "k8s.io/client-go/util/integer" - "k8s.io/client-go/util/workqueue" - podutil "k8s.io/kubernetes/pkg/api/v1/pod" "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/util/metrics" + "k8s.io/kubernetes/pkg/controller/replicaset" ) const ( - // Realistic value of the burstReplica field for the replication manager based off - // performance requirements for kubernetes 1.0. - BurstReplicas = 500 - - // The number of times we retry updating a replication controller's status. - statusUpdateRetries = 1 + BurstReplicas = replicaset.BurstReplicas ) -// controllerKind contains the schema.GroupVersionKind for this controller type. -var controllerKind = v1.SchemeGroupVersion.WithKind("ReplicationController") - // ReplicationManager is responsible for synchronizing ReplicationController objects stored // in the system with actual running pods. -// NOTE: using this name to distinguish this type from API object "ReplicationController"; will -// not fix it right now. Refer to #41459 for more detail. +// It is actually just a wrapper around ReplicaSetController. type ReplicationManager struct { - kubeClient clientset.Interface - podControl controller.PodControlInterface - - // An rc is temporarily suspended after creating/deleting these many replicas. - // It resumes normal action after observing the watch events for them. - burstReplicas int - // To allow injection of syncReplicationController for testing. - syncHandler func(rcKey string) error - - // A TTLCache of pod creates/deletes each rc expects to see. - expectations *controller.UIDTrackingControllerExpectations - - rcLister corelisters.ReplicationControllerLister - rcListerSynced cache.InformerSynced - - podLister corelisters.PodLister - // podListerSynced returns true if the pod store has been synced at least once. - // Added as a member to the struct to allow injection for testing. - podListerSynced cache.InformerSynced - - // Controllers that need to be synced - queue workqueue.RateLimitingInterface + replicaset.ReplicaSetController } // NewReplicationManager configures a replication manager with the specified event recorder func NewReplicationManager(podInformer coreinformers.PodInformer, rcInformer coreinformers.ReplicationControllerInformer, kubeClient clientset.Interface, burstReplicas int) *ReplicationManager { - if kubeClient != nil && kubeClient.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("replication_controller", kubeClient.Core().RESTClient().GetRateLimiter()) - } - eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.Core().RESTClient()).Events("")}) - - rm := &ReplicationManager{ - kubeClient: kubeClient, - podControl: controller.RealPodControl{ - KubeClient: kubeClient, - Recorder: eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "replication-controller"}), - }, - burstReplicas: burstReplicas, - expectations: controller.NewUIDTrackingControllerExpectations(controller.NewControllerExpectations()), - queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "replicationmanager"), - } - - rcInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ - AddFunc: rm.enqueueController, - UpdateFunc: rm.updateRC, - // This will enter the sync loop and no-op, because the controller has been deleted from the store. - // Note that deleting a controller immediately after scaling it to 0 will not work. The recommended - // way of achieving this is by performing a `stop` operation on the controller. - DeleteFunc: rm.enqueueController, - }) - rm.rcLister = rcInformer.Lister() - rm.rcListerSynced = rcInformer.Informer().HasSynced - - podInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ - AddFunc: rm.addPod, - // This invokes the rc for every pod change, eg: host assignment. Though this might seem like overkill - // the most frequent pod update is status, and the associated rc will only list from local storage, so - // it should be ok. - UpdateFunc: rm.updatePod, - DeleteFunc: rm.deletePod, - }) - rm.podLister = podInformer.Lister() - rm.podListerSynced = podInformer.Informer().HasSynced - - rm.syncHandler = rm.syncReplicationController - return rm -} - -// SetEventRecorder replaces the event recorder used by the replication manager -// with the given recorder. Only used for testing. -func (rm *ReplicationManager) SetEventRecorder(recorder record.EventRecorder) { - // TODO: Hack. We can't cleanly shutdown the event recorder, so benchmarks - // need to pass in a fake. - rm.podControl = controller.RealPodControl{KubeClient: rm.kubeClient, Recorder: recorder} -} - -// Run begins watching and syncing. -func (rm *ReplicationManager) Run(workers int, stopCh <-chan struct{}) { - defer utilruntime.HandleCrash() - defer rm.queue.ShutDown() - - glog.Infof("Starting RC controller") - defer glog.Infof("Shutting down RC controller") - - if !controller.WaitForCacheSync("RC", stopCh, rm.podListerSynced, rm.rcListerSynced) { - return - } - - for i := 0; i < workers; i++ { - go wait.Until(rm.worker, time.Second, stopCh) - } - - <-stopCh -} - -// getPodControllers returns a list of ReplicationControllers matching the given pod. -func (rm *ReplicationManager) getPodControllers(pod *v1.Pod) []*v1.ReplicationController { - rcs, err := rm.rcLister.GetPodControllers(pod) - if err != nil { - return nil - } - if len(rcs) > 1 { - // ControllerRef will ensure we don't do anything crazy, but more than one - // item in this list nevertheless constitutes user error. - utilruntime.HandleError(fmt.Errorf("user error! more than one ReplicationController is selecting pods with labels: %+v", pod.Labels)) - } - return rcs -} - -// resolveControllerRef returns the controller referenced by a ControllerRef, -// or nil if the ControllerRef could not be resolved to a matching controller -// of the correct Kind. -func (rm *ReplicationManager) resolveControllerRef(namespace string, controllerRef *metav1.OwnerReference) *v1.ReplicationController { - // We can't look up by UID, so look up by Name and then verify UID. - // Don't even try to look up by Name if it's the wrong Kind. - if controllerRef.Kind != controllerKind.Kind { - return nil - } - rc, err := rm.rcLister.ReplicationControllers(namespace).Get(controllerRef.Name) - if err != nil { - return nil - } - if rc.UID != controllerRef.UID { - // The controller we found with this Name is not the same one that the - // ControllerRef points to. - return nil - } - return rc -} - -// callback when RC is updated -func (rm *ReplicationManager) updateRC(old, cur interface{}) { - oldRC := old.(*v1.ReplicationController) - curRC := cur.(*v1.ReplicationController) - - // You might imagine that we only really need to enqueue the - // controller when Spec changes, but it is safer to sync any - // time this function is triggered. That way a full informer - // resync can requeue any controllers that don't yet have pods - // but whose last attempts at creating a pod have failed (since - // we don't block on creation of pods) instead of those - // controllers stalling indefinitely. Enqueueing every time - // does result in some spurious syncs (like when Status.Replica - // is updated and the watch notification from it retriggers - // this function), but in general extra resyncs shouldn't be - // that bad as rcs that haven't met expectations yet won't - // sync, and all the listing is done using local stores. - if *(oldRC.Spec.Replicas) != *(curRC.Spec.Replicas) { - glog.V(4).Infof("Replication controller %v updated. Desired pod count change: %d->%d", curRC.Name, *(oldRC.Spec.Replicas), *(curRC.Spec.Replicas)) - } - rm.enqueueController(cur) -} - -// When a pod is created, enqueue the ReplicationController that manages it and update its expectations. -func (rm *ReplicationManager) addPod(obj interface{}) { - pod := obj.(*v1.Pod) - - if pod.DeletionTimestamp != nil { - // on a restart of the controller manager, it's possible a new pod shows up in a state that - // is already pending deletion. Prevent the pod from being a creation observation. - rm.deletePod(pod) - return - } - - // If it has a ControllerRef, that's all that matters. - if controllerRef := metav1.GetControllerOf(pod); controllerRef != nil { - rc := rm.resolveControllerRef(pod.Namespace, controllerRef) - if rc == nil { - return - } - rsKey, err := controller.KeyFunc(rc) - if err != nil { - return - } - glog.V(4).Infof("Pod %s created: %#v.", pod.Name, pod) - rm.expectations.CreationObserved(rsKey) - rm.enqueueController(rc) - return - } - - // Otherwise, it's an orphan. Get a list of all matching ReplicationControllers and sync - // them to see if anyone wants to adopt it. - // DO NOT observe creation because no controller should be waiting for an - // orphan. - rcs := rm.getPodControllers(pod) - if len(rcs) == 0 { - return - } - glog.V(4).Infof("Orphan Pod %s created: %#v.", pod.Name, pod) - for _, rc := range rcs { - rm.enqueueController(rc) - } -} - -// When a pod is updated, figure out what ReplicationController/s manage it and wake them -// up. If the labels of the pod have changed we need to awaken both the old -// and new ReplicationController. old and cur must be *v1.Pod types. -func (rm *ReplicationManager) updatePod(old, cur interface{}) { - curPod := cur.(*v1.Pod) - oldPod := old.(*v1.Pod) - if curPod.ResourceVersion == oldPod.ResourceVersion { - // Periodic resync will send update events for all known pods. - // Two different versions of the same pod will always have different RVs. - return - } - - labelChanged := !reflect.DeepEqual(curPod.Labels, oldPod.Labels) - if curPod.DeletionTimestamp != nil { - // when a pod is deleted gracefully it's deletion timestamp is first modified to reflect a grace period, - // and after such time has passed, the kubelet actually deletes it from the store. We receive an update - // for modification of the deletion timestamp and expect an rc to create more replicas asap, not wait - // until the kubelet actually deletes the pod. This is different from the Phase of a pod changing, because - // an rc never initiates a phase change, and so is never asleep waiting for the same. - rm.deletePod(curPod) - if labelChanged { - // we don't need to check the oldPod.DeletionTimestamp because DeletionTimestamp cannot be unset. - rm.deletePod(oldPod) - } - return - } - - curControllerRef := metav1.GetControllerOf(curPod) - oldControllerRef := metav1.GetControllerOf(oldPod) - controllerRefChanged := !reflect.DeepEqual(curControllerRef, oldControllerRef) - if controllerRefChanged && oldControllerRef != nil { - // The ControllerRef was changed. Sync the old controller, if any. - if rc := rm.resolveControllerRef(oldPod.Namespace, oldControllerRef); rc != nil { - rm.enqueueController(rc) - } - } - - // If it has a ControllerRef, that's all that matters. - if curControllerRef != nil { - rc := rm.resolveControllerRef(curPod.Namespace, curControllerRef) - if rc == nil { - return - } - glog.V(4).Infof("Pod %s updated, objectMeta %+v -> %+v.", curPod.Name, oldPod.ObjectMeta, curPod.ObjectMeta) - rm.enqueueController(rc) - // TODO: MinReadySeconds in the Pod will generate an Available condition to be added in - // the Pod status which in turn will trigger a requeue of the owning ReplicationController thus - // having its status updated with the newly available replica. For now, we can fake the - // update by resyncing the controller MinReadySeconds after the it is requeued because - // a Pod transitioned to Ready. - // Note that this still suffers from #29229, we are just moving the problem one level - // "closer" to kubelet (from the deployment to the ReplicationController controller). - if !podutil.IsPodReady(oldPod) && podutil.IsPodReady(curPod) && rc.Spec.MinReadySeconds > 0 { - glog.V(2).Infof("ReplicationController %q will be enqueued after %ds for availability check", rc.Name, rc.Spec.MinReadySeconds) - // Add a second to avoid milliseconds skew in AddAfter. - // See https://github.com/kubernetes/kubernetes/issues/39785#issuecomment-279959133 for more info. - rm.enqueueControllerAfter(rc, (time.Duration(rc.Spec.MinReadySeconds)*time.Second)+time.Second) - } - return - } - - // Otherwise, it's an orphan. If anything changed, sync matching controllers - // to see if anyone wants to adopt it now. - if labelChanged || controllerRefChanged { - rcs := rm.getPodControllers(curPod) - if len(rcs) == 0 { - return - } - glog.V(4).Infof("Orphan Pod %s updated, objectMeta %+v -> %+v.", curPod.Name, oldPod.ObjectMeta, curPod.ObjectMeta) - for _, rc := range rcs { - rm.enqueueController(rc) - } - } -} - -// When a pod is deleted, enqueue the ReplicationController that manages the pod and update its expectations. -// obj could be an *v1.Pod, or a DeletionFinalStateUnknown marker item. -func (rm *ReplicationManager) deletePod(obj interface{}) { - pod, ok := obj.(*v1.Pod) - - // When a delete is dropped, the relist will notice a pod in the store not - // in the list, leading to the insertion of a tombstone object which contains - // the deleted key/value. Note that this value might be stale. If the pod - // changed labels the new ReplicationController will not be woken up till the periodic resync. - if !ok { - tombstone, ok := obj.(cache.DeletedFinalStateUnknown) - if !ok { - utilruntime.HandleError(fmt.Errorf("couldn't get object from tombstone %+v", obj)) - return - } - pod, ok = tombstone.Obj.(*v1.Pod) - if !ok { - utilruntime.HandleError(fmt.Errorf("tombstone contained object that is not a pod %#v", obj)) - return - } - } - - controllerRef := metav1.GetControllerOf(pod) - if controllerRef == nil { - // No controller should care about orphans being deleted. - return - } - rc := rm.resolveControllerRef(pod.Namespace, controllerRef) - if rc == nil { - return - } - rsKey, err := controller.KeyFunc(rc) - if err != nil { - return - } - glog.V(4).Infof("Pod %s/%s deleted through %v, timestamp %+v: %#v.", pod.Namespace, pod.Name, utilruntime.GetCaller(), pod.DeletionTimestamp, pod) - rm.expectations.DeletionObserved(rsKey, controller.PodKey(pod)) - rm.enqueueController(rc) -} - -// obj could be an *v1.ReplicationController, or a DeletionFinalStateUnknown marker item. -func (rm *ReplicationManager) enqueueController(obj interface{}) { - key, err := controller.KeyFunc(obj) - if err != nil { - utilruntime.HandleError(fmt.Errorf("couldn't get key for object %+v: %v", obj, err)) - return - } - rm.queue.Add(key) -} - -// obj could be an *v1.ReplicationController, or a DeletionFinalStateUnknown marker item. -func (rm *ReplicationManager) enqueueControllerAfter(obj interface{}, after time.Duration) { - key, err := controller.KeyFunc(obj) - if err != nil { - utilruntime.HandleError(fmt.Errorf("couldn't get key for object %+v: %v", obj, err)) - return - } - rm.queue.AddAfter(key, after) -} - -// worker runs a worker thread that just dequeues items, processes them, and marks them done. -// It enforces that the syncHandler is never invoked concurrently with the same key. -func (rm *ReplicationManager) worker() { - for rm.processNextWorkItem() { - } - glog.Infof("replication controller worker shutting down") -} - -func (rm *ReplicationManager) processNextWorkItem() bool { - key, quit := rm.queue.Get() - if quit { - return false - } - defer rm.queue.Done(key) - - err := rm.syncHandler(key.(string)) - if err == nil { - rm.queue.Forget(key) - return true - } - - rm.queue.AddRateLimited(key) - utilruntime.HandleError(err) - return true -} - -// manageReplicas checks and updates replicas for the given replication controller. -// Does NOT modify . -func (rm *ReplicationManager) manageReplicas(filteredPods []*v1.Pod, rc *v1.ReplicationController) error { - diff := len(filteredPods) - int(*(rc.Spec.Replicas)) - rcKey, err := controller.KeyFunc(rc) - if err != nil { - return err - } - if diff == 0 { - return nil - } - - if diff < 0 { - diff *= -1 - if diff > rm.burstReplicas { - diff = rm.burstReplicas - } - // TODO: Track UIDs of creates just like deletes. The problem currently - // is we'd need to wait on the result of a create to record the pod's - // UID, which would require locking *across* the create, which will turn - // into a performance bottleneck. We should generate a UID for the pod - // beforehand and store it via ExpectCreations. - errCh := make(chan error, diff) - rm.expectations.ExpectCreations(rcKey, diff) - var wg sync.WaitGroup - glog.V(2).Infof("Too few %q/%q replicas, need %d, creating %d", rc.Namespace, rc.Name, *(rc.Spec.Replicas), diff) - // Batch the pod creates. Batch sizes start at SlowStartInitialBatchSize - // and double with each successful iteration in a kind of "slow start". - // This handles attempts to start large numbers of pods that would - // likely all fail with the same error. For example a project with a - // low quota that attempts to create a large number of pods will be - // prevented from spamming the API service with the pod create requests - // after one of its pods fails. Conveniently, this also prevents the - // event spam that those failures would generate. - for batchSize := integer.IntMin(diff, controller.SlowStartInitialBatchSize); diff > 0; batchSize = integer.IntMin(2*batchSize, diff) { - errorCount := len(errCh) - wg.Add(batchSize) - for i := 0; i < batchSize; i++ { - go func() { - defer wg.Done() - var err error - boolPtr := func(b bool) *bool { return &b } - controllerRef := &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: rc.Name, - UID: rc.UID, - BlockOwnerDeletion: boolPtr(true), - Controller: boolPtr(true), - } - err = rm.podControl.CreatePodsWithControllerRef(rc.Namespace, rc.Spec.Template, rc, controllerRef) - if err != nil && errors.IsTimeout(err) { - // Pod is created but its initialization has timed out. - // If the initialization is successful eventually, the - // controller will observe the creation via the informer. - // If the initialization fails, or if the pod keeps - // uninitialized for a long time, the informer will not - // receive any update, and the controller will create a new - // pod when the expectation expires. - return - } - if err != nil { - // Decrement the expected number of creates because the informer won't observe this pod - glog.V(2).Infof("Failed creation, decrementing expectations for controller %q/%q", rc.Namespace, rc.Name) - rm.expectations.CreationObserved(rcKey) - errCh <- err - utilruntime.HandleError(err) - } - }() - } - wg.Wait() - // any skipped pods that we never attempted to start shouldn't be expected. - skippedPods := diff - batchSize - if errorCount < len(errCh) && skippedPods > 0 { - glog.V(2).Infof("Slow-start failure. Skipping creation of %d pods, decrementing expectations for controller %q/%q", skippedPods, rc.Namespace, rc.Name) - for i := 0; i < skippedPods; i++ { - // Decrement the expected number of creates because the informer won't observe this pod - rm.expectations.CreationObserved(rcKey) - } - // The skipped pods will be retried later. The next controller resync will - // retry the slow start process. - break - } - diff -= batchSize - } - - select { - case err := <-errCh: - // all errors have been reported before and they're likely to be the same, so we'll only return the first one we hit. - if err != nil { - return err - } - default: - } - - return nil - } - - if diff > rm.burstReplicas { - diff = rm.burstReplicas - } - glog.V(2).Infof("Too many %q/%q replicas, need %d, deleting %d", rc.Namespace, rc.Name, *(rc.Spec.Replicas), diff) - // No need to sort pods if we are about to delete all of them - if *(rc.Spec.Replicas) != 0 { - // Sort the pods in the order such that not-ready < ready, unscheduled - // < scheduled, and pending < running. This ensures that we delete pods - // in the earlier stages whenever possible. - sort.Sort(controller.ActivePods(filteredPods)) - } - // Snapshot the UIDs (ns/name) of the pods we're expecting to see - // deleted, so we know to record their expectations exactly once either - // when we see it as an update of the deletion timestamp, or as a delete. - // Note that if the labels on a pod/rc change in a way that the pod gets - // orphaned, the rs will only wake up after the expectations have - // expired even if other pods are deleted. - deletedPodKeys := []string{} - for i := 0; i < diff; i++ { - deletedPodKeys = append(deletedPodKeys, controller.PodKey(filteredPods[i])) - } - // We use pod namespace/name as a UID to wait for deletions, so if the - // labels on a pod/rc change in a way that the pod gets orphaned, the - // rc will only wake up after the expectation has expired. - errCh := make(chan error, diff) - rm.expectations.ExpectDeletions(rcKey, deletedPodKeys) - var wg sync.WaitGroup - wg.Add(diff) - for i := 0; i < diff; i++ { - go func(ix int) { - defer wg.Done() - if err := rm.podControl.DeletePod(rc.Namespace, filteredPods[ix].Name, rc); err != nil { - // Decrement the expected number of deletes because the informer won't observe this deletion - podKey := controller.PodKey(filteredPods[ix]) - glog.V(2).Infof("Failed to delete %v due to %v, decrementing expectations for controller %q/%q", podKey, err, rc.Namespace, rc.Name) - rm.expectations.DeletionObserved(rcKey, podKey) - errCh <- err - utilruntime.HandleError(err) - } - }(i) - } - wg.Wait() - - select { - case err := <-errCh: - // all errors have been reported before and they're likely to be the same, so we'll only return the first one we hit. - if err != nil { - return err - } - default: - } - - return nil - -} - -// syncReplicationController will sync the rc with the given key if it has had its expectations fulfilled, meaning -// it did not expect to see any more of its pods created or deleted. This function is not meant to be invoked -// concurrently with the same key. -func (rm *ReplicationManager) syncReplicationController(key string) error { - trace := utiltrace.New("syncReplicationController: " + key) - defer trace.LogIfLong(250 * time.Millisecond) - - startTime := time.Now() - defer func() { - glog.V(4).Infof("Finished syncing controller %q (%v)", key, time.Now().Sub(startTime)) - }() - - namespace, name, err := cache.SplitMetaNamespaceKey(key) - if err != nil { - return err - } - rc, err := rm.rcLister.ReplicationControllers(namespace).Get(name) - if errors.IsNotFound(err) { - glog.Infof("Replication Controller has been deleted %v", key) - rm.expectations.DeleteExpectations(key) - return nil - } - if err != nil { - return err - } - - trace.Step("ReplicationController restored") - rcNeedsSync := rm.expectations.SatisfiedExpectations(key) - trace.Step("Expectations restored") - - // list all pods to include the pods that don't match the rc's selector - // anymore but has the stale controller ref. - // TODO: Do the List and Filter in a single pass, or use an index. - allPods, err := rm.podLister.Pods(rc.Namespace).List(labels.Everything()) - if err != nil { - return err - } - // Ignore inactive pods. - var filteredPods []*v1.Pod - for _, pod := range allPods { - if controller.IsPodActive(pod) { - filteredPods = append(filteredPods, pod) - } - } - // If any adoptions are attempted, we should first recheck for deletion with - // an uncached quorum read sometime after listing Pods (see #42639). - canAdoptFunc := controller.RecheckDeletionTimestamp(func() (metav1.Object, error) { - fresh, err := rm.kubeClient.CoreV1().ReplicationControllers(rc.Namespace).Get(rc.Name, metav1.GetOptions{}) - if err != nil { - return nil, err - } - if fresh.UID != rc.UID { - return nil, fmt.Errorf("original ReplicationController %v/%v is gone: got uid %v, wanted %v", rc.Namespace, rc.Name, fresh.UID, rc.UID) - } - return fresh, nil - }) - cm := controller.NewPodControllerRefManager(rm.podControl, rc, labels.Set(rc.Spec.Selector).AsSelectorPreValidated(), controllerKind, canAdoptFunc) - // NOTE: filteredPods are pointing to objects from cache - if you need to - // modify them, you need to copy it first. - filteredPods, err = cm.ClaimPods(filteredPods) - if err != nil { - return err - } - - var manageReplicasErr error - if rcNeedsSync && rc.DeletionTimestamp == nil { - manageReplicasErr = rm.manageReplicas(filteredPods, rc) - } - trace.Step("manageReplicas done") - - rc = rc.DeepCopy() - - newStatus := calculateStatus(rc, filteredPods, manageReplicasErr) - - // Always updates status as pods come up or die. - updatedRC, err := updateReplicationControllerStatus(rm.kubeClient.Core().ReplicationControllers(rc.Namespace), *rc, newStatus) - if err != nil { - // Multiple things could lead to this update failing. Returning an error causes a requeue without forcing a hotloop - return err - } - // Resync the ReplicationController after MinReadySeconds as a last line of defense to guard against clock-skew. - if manageReplicasErr == nil && updatedRC.Spec.MinReadySeconds > 0 && - updatedRC.Status.ReadyReplicas == *(updatedRC.Spec.Replicas) && - updatedRC.Status.AvailableReplicas != *(updatedRC.Spec.Replicas) { - rm.enqueueControllerAfter(updatedRC, time.Duration(updatedRC.Spec.MinReadySeconds)*time.Second) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) + return &ReplicationManager{ + *replicaset.NewBaseController(informerAdapter{rcInformer}, podInformer, clientsetAdapter{kubeClient}, burstReplicas, + v1.SchemeGroupVersion.WithKind("ReplicationController"), + "replication_controller", + "replicationmanager", + podControlAdapter{controller.RealPodControl{ + KubeClient: kubeClient, + Recorder: eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "replication-controller"}), + }}, + ), } - return manageReplicasErr } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_test.go deleted file mode 100644 index 45ca053eb..000000000 --- a/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_test.go +++ /dev/null @@ -1,1719 +0,0 @@ -/* -Copyright 2014 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. -*/ - -// If you make changes to this file, you should also make the corresponding change in ReplicaSet. - -package replication - -import ( - "errors" - "fmt" - "math/rand" - "net/http/httptest" - "net/url" - "reflect" - "strings" - "testing" - "time" - - "k8s.io/api/core/v1" - apiequality "k8s.io/apimachinery/pkg/api/equality" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/informers" - coreinformers "k8s.io/client-go/informers/core/v1" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/client-go/kubernetes/fake" - fakeclientset "k8s.io/client-go/kubernetes/fake" - restclient "k8s.io/client-go/rest" - core "k8s.io/client-go/testing" - "k8s.io/client-go/tools/cache" - utiltesting "k8s.io/client-go/util/testing" - "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/securitycontext" -) - -var alwaysReady = func() bool { return true } - -func getKey(rc *v1.ReplicationController, t *testing.T) string { - if key, err := controller.KeyFunc(rc); err != nil { - t.Errorf("Unexpected error getting key for rc %v: %v", rc.Name, err) - return "" - } else { - return key - } -} - -func newReplicationController(replicas int) *v1.ReplicationController { - rc := &v1.ReplicationController{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, - ObjectMeta: metav1.ObjectMeta{ - UID: uuid.NewUUID(), - Name: "foobar", - Namespace: metav1.NamespaceDefault, - ResourceVersion: "18", - }, - Spec: v1.ReplicationControllerSpec{ - Replicas: func() *int32 { i := int32(replicas); return &i }(), - Selector: map[string]string{"foo": "bar"}, - Template: &v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "name": "foo", - "type": "production", - }, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Image: "foo/bar", - TerminationMessagePath: v1.TerminationMessagePathDefault, - ImagePullPolicy: v1.PullIfNotPresent, - SecurityContext: securitycontext.ValidSecurityContextWithContainerDefaults(), - }, - }, - RestartPolicy: v1.RestartPolicyAlways, - DNSPolicy: v1.DNSDefault, - NodeSelector: map[string]string{ - "baz": "blah", - }, - }, - }, - }, - } - return rc -} - -// create a pod with the given phase for the given rc (same selectors and namespace). -func newPod(name string, rc *v1.ReplicationController, status v1.PodPhase, lastTransitionTime *metav1.Time, properlyOwned bool) *v1.Pod { - var conditions []v1.PodCondition - if status == v1.PodRunning { - condition := v1.PodCondition{Type: v1.PodReady, Status: v1.ConditionTrue} - if lastTransitionTime != nil { - condition.LastTransitionTime = *lastTransitionTime - } - conditions = append(conditions, condition) - } - var controllerReference metav1.OwnerReference - if properlyOwned { - var trueVar = true - controllerReference = metav1.OwnerReference{UID: rc.UID, APIVersion: "v1beta1", Kind: "ReplicaSet", Name: rc.Name, Controller: &trueVar} - } - - return &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: rc.Spec.Selector, - Namespace: rc.Namespace, - OwnerReferences: []metav1.OwnerReference{controllerReference}, - }, - Status: v1.PodStatus{Phase: status, Conditions: conditions}, - } -} - -// create count pods with the given phase for the given rc (same selectors and namespace), and add them to the store. -func newPodList(store cache.Store, count int, status v1.PodPhase, rc *v1.ReplicationController, name string) *v1.PodList { - pods := []v1.Pod{} - var trueVar = true - controllerReference := metav1.OwnerReference{UID: rc.UID, APIVersion: "v1", Kind: "ReplicationController", Name: rc.Name, Controller: &trueVar} - for i := 0; i < count; i++ { - pod := newPod(fmt.Sprintf("%s%d", name, i), rc, status, nil, false) - pod.OwnerReferences = []metav1.OwnerReference{controllerReference} - if store != nil { - store.Add(pod) - } - pods = append(pods, *pod) - } - return &v1.PodList{ - Items: pods, - } -} - -// processSync initiates a sync via processNextWorkItem() to test behavior that -// depends on both functions (such as re-queueing on sync error). -func processSync(rm *ReplicationManager, key string) error { - // Save old syncHandler and replace with one that captures the error. - oldSyncHandler := rm.syncHandler - defer func() { - rm.syncHandler = oldSyncHandler - }() - var syncErr error - rm.syncHandler = func(key string) error { - syncErr = oldSyncHandler(key) - return syncErr - } - rm.queue.Add(key) - rm.processNextWorkItem() - return syncErr -} - -func validateSyncReplication(t *testing.T, fakePodControl *controller.FakePodControl, expectedCreates, expectedDeletes, expectedPatches int) { - if e, a := expectedCreates, len(fakePodControl.Templates); e != a { - t.Errorf("Unexpected number of creates. Expected %d, saw %d\n", e, a) - } - if e, a := expectedDeletes, len(fakePodControl.DeletePodName); e != a { - t.Errorf("Unexpected number of deletes. Expected %d, saw %d\n", e, a) - } - if e, a := expectedPatches, len(fakePodControl.Patches); e != a { - t.Errorf("Unexpected number of patches. Expected %d, saw %d\n", e, a) - } -} - -func replicationControllerResourceName() string { - return "replicationcontrollers" -} - -type serverResponse struct { - statusCode int - obj interface{} -} - -func newReplicationManagerFromClient(kubeClient clientset.Interface, burstReplicas int) (*ReplicationManager, coreinformers.PodInformer, coreinformers.ReplicationControllerInformer) { - informerFactory := informers.NewSharedInformerFactory(kubeClient, controller.NoResyncPeriodFunc()) - podInformer := informerFactory.Core().V1().Pods() - rcInformer := informerFactory.Core().V1().ReplicationControllers() - rm := NewReplicationManager(podInformer, rcInformer, kubeClient, burstReplicas) - rm.podListerSynced = alwaysReady - rm.rcListerSynced = alwaysReady - return rm, podInformer, rcInformer -} - -func TestSyncReplicationControllerDoesNothing(t *testing.T) { - c := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - fakePodControl := controller.FakePodControl{} - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - - // 2 running pods, a controller with 2 replicas, sync is a no-op - controllerSpec := newReplicationController(2) - rcInformer.Informer().GetIndexer().Add(controllerSpec) - newPodList(podInformer.Informer().GetIndexer(), 2, v1.PodRunning, controllerSpec, "pod") - - manager.podControl = &fakePodControl - manager.syncReplicationController(getKey(controllerSpec, t)) - validateSyncReplication(t, &fakePodControl, 0, 0, 0) -} - -func TestSyncReplicationControllerDeletes(t *testing.T) { - controllerSpec := newReplicationController(1) - - c := fake.NewSimpleClientset(controllerSpec) - fakePodControl := controller.FakePodControl{} - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - manager.podControl = &fakePodControl - - // 2 running pods and a controller with 1 replica, one pod delete expected - rcInformer.Informer().GetIndexer().Add(controllerSpec) - newPodList(podInformer.Informer().GetIndexer(), 2, v1.PodRunning, controllerSpec, "pod") - - err := manager.syncReplicationController(getKey(controllerSpec, t)) - if err != nil { - t.Fatalf("syncReplicationController() error: %v", err) - } - validateSyncReplication(t, &fakePodControl, 0, 1, 0) -} - -func TestDeleteFinalStateUnknown(t *testing.T) { - c := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - fakePodControl := controller.FakePodControl{} - manager, _, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - manager.podControl = &fakePodControl - - received := make(chan string) - manager.syncHandler = func(key string) error { - received <- key - return nil - } - - // The DeletedFinalStateUnknown object should cause the rc manager to insert - // the controller matching the selectors of the deleted pod into the work queue. - controllerSpec := newReplicationController(1) - rcInformer.Informer().GetIndexer().Add(controllerSpec) - pods := newPodList(nil, 1, v1.PodRunning, controllerSpec, "pod") - manager.deletePod(cache.DeletedFinalStateUnknown{Key: "foo", Obj: &pods.Items[0]}) - - go manager.worker() - - expected := getKey(controllerSpec, t) - select { - case key := <-received: - if key != expected { - t.Errorf("Unexpected sync all for rc %v, expected %v", key, expected) - } - case <-time.After(wait.ForeverTestTimeout): - t.Errorf("Processing DeleteFinalStateUnknown took longer than expected") - } -} - -func TestSyncReplicationControllerCreates(t *testing.T) { - rc := newReplicationController(2) - c := fake.NewSimpleClientset(rc) - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - - // A controller with 2 replicas and no active pods in the store. - // Inactive pods should be ignored. 2 creates expected. - rcInformer.Informer().GetIndexer().Add(rc) - failedPod := newPod("failed-pod", rc, v1.PodFailed, nil, true) - deletedPod := newPod("deleted-pod", rc, v1.PodRunning, nil, true) - deletedPod.DeletionTimestamp = &metav1.Time{Time: time.Now()} - podInformer.Informer().GetIndexer().Add(failedPod) - podInformer.Informer().GetIndexer().Add(deletedPod) - - fakePodControl := controller.FakePodControl{} - manager.podControl = &fakePodControl - manager.syncReplicationController(getKey(rc, t)) - validateSyncReplication(t, &fakePodControl, 2, 0, 0) -} - -// Tell the controller to create 100 replicas, but simulate a limit (like a quota limit) -// of 10, and verify that the controller doesn't make 100 create calls per sync pass -func TestSyncReplicationControllerCreateFailures(t *testing.T) { - fakePodControl := controller.FakePodControl{} - fakePodControl.CreateLimit = 10 - - rc := newReplicationController(fakePodControl.CreateLimit * 10) - c := fake.NewSimpleClientset(rc) - manager, _ /*podInformer*/, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - - rcInformer.Informer().GetIndexer().Add(rc) - - manager.podControl = &fakePodControl - manager.syncReplicationController(getKey(rc, t)) - validateSyncReplication(t, &fakePodControl, fakePodControl.CreateLimit, 0, 0) - expectedLimit := 0 - for pass := uint8(0); expectedLimit <= fakePodControl.CreateLimit; pass++ { - expectedLimit += controller.SlowStartInitialBatchSize << pass - } - if fakePodControl.CreateCallCount > expectedLimit { - t.Errorf("Unexpected number of create calls. Expected <= %d, saw %d\n", fakePodControl.CreateLimit*2, fakePodControl.CreateCallCount) - } -} - -func TestStatusUpdatesWithoutReplicasChange(t *testing.T) { - // Setup a fake server to listen for requests, and run the rc manager in steady state - fakeHandler := utiltesting.FakeHandler{ - StatusCode: 200, - ResponseBody: "", - SkipRequestFn: func(verb string, url url.URL) bool { - if verb == "GET" { - // Ignore refetch to check DeletionTimestamp. - return true - } - return false - }, - } - testServer := httptest.NewServer(&fakeHandler) - defer testServer.Close() - c := clientset.NewForConfigOrDie(&restclient.Config{Host: testServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - - // Steady state for the replication controller, no Status.Replicas updates expected - activePods := 5 - rc := newReplicationController(activePods) - rcInformer.Informer().GetIndexer().Add(rc) - rc.Status = v1.ReplicationControllerStatus{Replicas: int32(activePods), ReadyReplicas: int32(activePods), AvailableReplicas: int32(activePods)} - newPodList(podInformer.Informer().GetIndexer(), activePods, v1.PodRunning, rc, "pod") - - fakePodControl := controller.FakePodControl{} - manager.podControl = &fakePodControl - manager.syncReplicationController(getKey(rc, t)) - - validateSyncReplication(t, &fakePodControl, 0, 0, 0) - if fakeHandler.RequestReceived != nil { - t.Errorf("Unexpected update when pods and rcs are in a steady state") - } - - // This response body is just so we don't err out decoding the http response, all - // we care about is the request body sent below. - response := runtime.EncodeOrDie(testapi.Default.Codec(), &v1.ReplicationController{}) - fakeHandler.ResponseBody = response - - rc.Generation = rc.Generation + 1 - manager.syncReplicationController(getKey(rc, t)) - - rc.Status.ObservedGeneration = rc.Generation - updatedRc := runtime.EncodeOrDie(testapi.Default.Codec(), rc) - fakeHandler.ValidateRequest(t, testapi.Default.ResourcePath(replicationControllerResourceName(), rc.Namespace, rc.Name)+"/status", "PUT", &updatedRc) -} - -func TestControllerUpdateReplicas(t *testing.T) { - // This is a happy server just to record the PUT request we expect for status.Replicas - fakeHandler := utiltesting.FakeHandler{ - StatusCode: 200, - ResponseBody: "", - } - testServer := httptest.NewServer(&fakeHandler) - defer testServer.Close() - c := clientset.NewForConfigOrDie(&restclient.Config{Host: testServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - - // Insufficient number of pods in the system, and Status.Replicas is wrong; - // Status.Replica should update to match number of pods in system, 1 new pod should be created. - rc := newReplicationController(5) - rcInformer.Informer().GetIndexer().Add(rc) - rc.Status = v1.ReplicationControllerStatus{Replicas: 2, FullyLabeledReplicas: 6, ReadyReplicas: 2, AvailableReplicas: 2, ObservedGeneration: 0} - rc.Generation = 1 - newPodList(podInformer.Informer().GetIndexer(), 2, v1.PodRunning, rc, "pod") - rcCopy := *rc - extraLabelMap := map[string]string{"foo": "bar", "extraKey": "extraValue"} - rcCopy.Spec.Selector = extraLabelMap - newPodList(podInformer.Informer().GetIndexer(), 2, v1.PodRunning, &rcCopy, "podWithExtraLabel") - - // This response body is just so we don't err out decoding the http response - response := runtime.EncodeOrDie(testapi.Default.Codec(), &v1.ReplicationController{}) - fakeHandler.ResponseBody = response - - fakePodControl := controller.FakePodControl{} - manager.podControl = &fakePodControl - - manager.syncReplicationController(getKey(rc, t)) - - // 1. Status.Replicas should go up from 2->4 even though we created 5-4=1 pod. - // 2. Status.FullyLabeledReplicas should equal to the number of pods that - // has the extra labels, i.e., 2. - // 3. Every update to the status should include the Generation of the spec. - rc.Status = v1.ReplicationControllerStatus{Replicas: 4, ReadyReplicas: 4, AvailableReplicas: 4, ObservedGeneration: 1} - - decRc := runtime.EncodeOrDie(testapi.Default.Codec(), rc) - fakeHandler.ValidateRequest(t, testapi.Default.ResourcePath(replicationControllerResourceName(), rc.Namespace, rc.Name)+"/status", "PUT", &decRc) - validateSyncReplication(t, &fakePodControl, 1, 0, 0) -} - -func TestSyncReplicationControllerDormancy(t *testing.T) { - controllerSpec := newReplicationController(2) - c := fake.NewSimpleClientset(controllerSpec) - fakePodControl := controller.FakePodControl{} - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - manager.podControl = &fakePodControl - - rcInformer.Informer().GetIndexer().Add(controllerSpec) - newPodList(podInformer.Informer().GetIndexer(), 1, v1.PodRunning, controllerSpec, "pod") - - // Creates a replica and sets expectations - controllerSpec.Status.Replicas = 1 - controllerSpec.Status.ReadyReplicas = 1 - controllerSpec.Status.AvailableReplicas = 1 - manager.syncReplicationController(getKey(controllerSpec, t)) - validateSyncReplication(t, &fakePodControl, 1, 0, 0) - - // Expectations prevents replicas but not an update on status - controllerSpec.Status.Replicas = 0 - controllerSpec.Status.ReadyReplicas = 0 - controllerSpec.Status.AvailableReplicas = 0 - fakePodControl.Clear() - manager.syncReplicationController(getKey(controllerSpec, t)) - validateSyncReplication(t, &fakePodControl, 0, 0, 0) - - // Get the key for the controller - rcKey, err := controller.KeyFunc(controllerSpec) - if err != nil { - t.Errorf("Couldn't get key for object %#v: %v", controllerSpec, err) - } - - // Lowering expectations should lead to a sync that creates a replica, however the - // fakePodControl error will prevent this, leaving expectations at 0, 0. - manager.expectations.CreationObserved(rcKey) - controllerSpec.Status.Replicas = 1 - controllerSpec.Status.ReadyReplicas = 1 - controllerSpec.Status.AvailableReplicas = 1 - fakePodControl.Clear() - fakePodControl.Err = fmt.Errorf("Fake Error") - - manager.syncReplicationController(getKey(controllerSpec, t)) - validateSyncReplication(t, &fakePodControl, 1, 0, 0) - - // This replica should not need a Lowering of expectations, since the previous create failed - fakePodControl.Clear() - fakePodControl.Err = nil - manager.syncReplicationController(getKey(controllerSpec, t)) - validateSyncReplication(t, &fakePodControl, 1, 0, 0) -} - -func TestPodControllerLookup(t *testing.T) { - manager, _, rcInformer := newReplicationManagerFromClient(clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}), BurstReplicas) - testCases := []struct { - inRCs []*v1.ReplicationController - pod *v1.Pod - outRCName string - }{ - // pods without labels don't match any rcs - { - inRCs: []*v1.ReplicationController{ - {ObjectMeta: metav1.ObjectMeta{Name: "basic"}}}, - pod: &v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo1", Namespace: metav1.NamespaceAll}}, - outRCName: "", - }, - // Matching labels, not namespace - { - inRCs: []*v1.ReplicationController{ - { - ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: v1.ReplicationControllerSpec{ - Selector: map[string]string{"foo": "bar"}, - }, - }, - }, - pod: &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo2", Namespace: "ns", Labels: map[string]string{"foo": "bar"}}}, - outRCName: "", - }, - // Matching ns and labels returns the key to the rc, not the rc name - { - inRCs: []*v1.ReplicationController{ - { - ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "ns"}, - Spec: v1.ReplicationControllerSpec{ - Selector: map[string]string{"foo": "bar"}, - }, - }, - }, - pod: &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo3", Namespace: "ns", Labels: map[string]string{"foo": "bar"}}}, - outRCName: "bar", - }, - } - for _, c := range testCases { - for _, r := range c.inRCs { - rcInformer.Informer().GetIndexer().Add(r) - } - if rcs := manager.getPodControllers(c.pod); rcs != nil { - if len(rcs) != 1 { - t.Errorf("len(rcs) = %v, want %v", len(rcs), 1) - continue - } - rc := rcs[0] - if c.outRCName != rc.Name { - t.Errorf("Got controller %+v expected %+v", rc.Name, c.outRCName) - } - } else if c.outRCName != "" { - t.Errorf("Expected a controller %v pod %v, found none", c.outRCName, c.pod.Name) - } - } -} - -func TestWatchControllers(t *testing.T) { - fakeWatch := watch.NewFake() - c := &fake.Clientset{} - c.AddWatchReactor("replicationcontrollers", core.DefaultWatchReactor(fakeWatch, nil)) - stopCh := make(chan struct{}) - defer close(stopCh) - informers := informers.NewSharedInformerFactory(c, controller.NoResyncPeriodFunc()) - podInformer := informers.Core().V1().Pods() - rcInformer := informers.Core().V1().ReplicationControllers() - manager := NewReplicationManager(podInformer, rcInformer, c, BurstReplicas) - informers.Start(stopCh) - - var testControllerSpec v1.ReplicationController - received := make(chan string) - - // The update sent through the fakeWatcher should make its way into the workqueue, - // and eventually into the syncHandler. The handler validates the received controller - // and closes the received channel to indicate that the test can finish. - manager.syncHandler = func(key string) error { - obj, exists, err := rcInformer.Informer().GetIndexer().GetByKey(key) - if !exists || err != nil { - t.Errorf("Expected to find controller under key %v", key) - } - controllerSpec := *obj.(*v1.ReplicationController) - if !apiequality.Semantic.DeepDerivative(controllerSpec, testControllerSpec) { - t.Errorf("Expected %#v, but got %#v", testControllerSpec, controllerSpec) - } - close(received) - return nil - } - - // Start only the rc watcher and the workqueue, send a watch event, - // and make sure it hits the sync method. - go wait.Until(manager.worker, 10*time.Millisecond, stopCh) - - testControllerSpec.Name = "foo" - fakeWatch.Add(&testControllerSpec) - - select { - case <-received: - case <-time.After(wait.ForeverTestTimeout): - t.Errorf("unexpected timeout from result channel") - } -} - -func TestWatchPods(t *testing.T) { - fakeWatch := watch.NewFake() - c := &fake.Clientset{} - c.AddWatchReactor("*", core.DefaultWatchReactor(fakeWatch, nil)) - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - - // Put one rc and one pod into the controller's stores - testControllerSpec := newReplicationController(1) - rcInformer.Informer().GetIndexer().Add(testControllerSpec) - received := make(chan string) - // The pod update sent through the fakeWatcher should figure out the managing rc and - // send it into the syncHandler. - manager.syncHandler = func(key string) error { - - obj, exists, err := rcInformer.Informer().GetIndexer().GetByKey(key) - if !exists || err != nil { - t.Errorf("Expected to find controller under key %v", key) - } - controllerSpec := obj.(*v1.ReplicationController) - if !apiequality.Semantic.DeepDerivative(controllerSpec, testControllerSpec) { - t.Errorf("\nExpected %#v,\nbut got %#v", testControllerSpec, controllerSpec) - } - close(received) - return nil - } - // Start only the pod watcher and the workqueue, send a watch event, - // and make sure it hits the sync method for the right rc. - stopCh := make(chan struct{}) - defer close(stopCh) - go podInformer.Informer().Run(stopCh) - go wait.Until(manager.worker, 10*time.Millisecond, stopCh) - - pods := newPodList(nil, 1, v1.PodRunning, testControllerSpec, "pod") - testPod := pods.Items[0] - testPod.Status.Phase = v1.PodFailed - fakeWatch.Add(&testPod) - - select { - case <-received: - case <-time.After(wait.ForeverTestTimeout): - t.Errorf("unexpected timeout from result channel") - } -} - -func TestUpdatePods(t *testing.T) { - manager, podInformer, rcInformer := newReplicationManagerFromClient(fake.NewSimpleClientset(), BurstReplicas) - - received := make(chan string) - - manager.syncHandler = func(key string) error { - obj, exists, err := rcInformer.Informer().GetIndexer().GetByKey(key) - if !exists || err != nil { - t.Errorf("Expected to find controller under key %v", key) - } - received <- obj.(*v1.ReplicationController).Name - return nil - } - - stopCh := make(chan struct{}) - defer close(stopCh) - go wait.Until(manager.worker, 10*time.Millisecond, stopCh) - - // Put 2 rcs and one pod into the controller's stores - labelMap1 := map[string]string{"foo": "bar"} - testControllerSpec1 := newReplicationController(1) - testControllerSpec1.Spec.Selector = labelMap1 - rcInformer.Informer().GetIndexer().Add(testControllerSpec1) - labelMap2 := map[string]string{"bar": "foo"} - testControllerSpec2 := *testControllerSpec1 - testControllerSpec2.Spec.Selector = labelMap2 - testControllerSpec2.Name = "barfoo" - rcInformer.Informer().GetIndexer().Add(&testControllerSpec2) - - isController := true - controllerRef1 := metav1.OwnerReference{UID: testControllerSpec1.UID, APIVersion: "v1", Kind: "ReplicationController", Name: testControllerSpec1.Name, Controller: &isController} - controllerRef2 := metav1.OwnerReference{UID: testControllerSpec2.UID, APIVersion: "v1", Kind: "ReplicationController", Name: testControllerSpec2.Name, Controller: &isController} - - // case 1: Pod with a ControllerRef - pod1 := newPodList(podInformer.Informer().GetIndexer(), 1, v1.PodRunning, testControllerSpec1, "pod").Items[0] - pod1.OwnerReferences = []metav1.OwnerReference{controllerRef1} - pod1.ResourceVersion = "1" - pod2 := pod1 - pod2.Labels = labelMap2 - pod2.ResourceVersion = "2" - manager.updatePod(&pod1, &pod2) - expected := sets.NewString(testControllerSpec1.Name) - for _, name := range expected.List() { - t.Logf("Expecting update for %+v", name) - select { - case got := <-received: - if !expected.Has(got) { - t.Errorf("Expected keys %#v got %v", expected, got) - } - case <-time.After(wait.ForeverTestTimeout): - t.Errorf("Expected update notifications for ReplicationControllers") - } - } - - // case 2: Remove ControllerRef (orphan). Expect to sync label-matching RC. - pod1 = newPodList(podInformer.Informer().GetIndexer(), 1, v1.PodRunning, testControllerSpec1, "pod").Items[0] - pod1.ResourceVersion = "1" - pod1.Labels = labelMap2 - pod1.OwnerReferences = []metav1.OwnerReference{controllerRef2} - pod2 = pod1 - pod2.OwnerReferences = nil - pod2.ResourceVersion = "2" - manager.updatePod(&pod1, &pod2) - expected = sets.NewString(testControllerSpec2.Name) - for _, name := range expected.List() { - t.Logf("Expecting update for %+v", name) - select { - case got := <-received: - if !expected.Has(got) { - t.Errorf("Expected keys %#v got %v", expected, got) - } - case <-time.After(wait.ForeverTestTimeout): - t.Errorf("Expected update notifications for ReplicationControllers") - } - } - - // case 2: Remove ControllerRef (orphan). Expect to sync both former owner and - // any label-matching RC. - pod1 = newPodList(podInformer.Informer().GetIndexer(), 1, v1.PodRunning, testControllerSpec1, "pod").Items[0] - pod1.ResourceVersion = "1" - pod1.Labels = labelMap2 - pod1.OwnerReferences = []metav1.OwnerReference{controllerRef1} - pod2 = pod1 - pod2.OwnerReferences = nil - pod2.ResourceVersion = "2" - manager.updatePod(&pod1, &pod2) - expected = sets.NewString(testControllerSpec1.Name, testControllerSpec2.Name) - for _, name := range expected.List() { - t.Logf("Expecting update for %+v", name) - select { - case got := <-received: - if !expected.Has(got) { - t.Errorf("Expected keys %#v got %v", expected, got) - } - case <-time.After(wait.ForeverTestTimeout): - t.Errorf("Expected update notifications for ReplicationControllers") - } - } - - // case 4: Keep ControllerRef, change labels. Expect to sync owning RC. - pod1 = newPodList(podInformer.Informer().GetIndexer(), 1, v1.PodRunning, testControllerSpec1, "pod").Items[0] - pod1.ResourceVersion = "1" - pod1.Labels = labelMap1 - pod1.OwnerReferences = []metav1.OwnerReference{controllerRef2} - pod2 = pod1 - pod2.Labels = labelMap2 - pod2.ResourceVersion = "2" - manager.updatePod(&pod1, &pod2) - expected = sets.NewString(testControllerSpec2.Name) - for _, name := range expected.List() { - t.Logf("Expecting update for %+v", name) - select { - case got := <-received: - if !expected.Has(got) { - t.Errorf("Expected keys %#v got %v", expected, got) - } - case <-time.After(wait.ForeverTestTimeout): - t.Errorf("Expected update notifications for ReplicationControllers") - } - } -} - -func TestControllerUpdateRequeue(t *testing.T) { - // This server should force a requeue of the controller because it fails to update status.Replicas. - rc := newReplicationController(1) - c := fake.NewSimpleClientset(rc) - c.PrependReactor("update", "replicationcontrollers", - func(action core.Action) (bool, runtime.Object, error) { - if action.GetSubresource() != "status" { - return false, nil, nil - } - return true, nil, errors.New("failed to update status") - }) - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - - rcInformer.Informer().GetIndexer().Add(rc) - rc.Status = v1.ReplicationControllerStatus{Replicas: 2} - newPodList(podInformer.Informer().GetIndexer(), 1, v1.PodRunning, rc, "pod") - - fakePodControl := controller.FakePodControl{} - manager.podControl = &fakePodControl - - // Enqueue once. Then process it. Disable rate-limiting for this. - manager.queue = workqueue.NewRateLimitingQueue(workqueue.NewMaxOfRateLimiter()) - manager.enqueueController(rc) - manager.processNextWorkItem() - // It should have been requeued. - if got, want := manager.queue.Len(), 1; got != want { - t.Errorf("queue.Len() = %v, want %v", got, want) - } -} - -func TestControllerUpdateStatusWithFailure(t *testing.T) { - rc := newReplicationController(1) - c := &fake.Clientset{} - c.AddReactor("get", "replicationcontrollers", func(action core.Action) (bool, runtime.Object, error) { - return true, rc, nil - }) - c.AddReactor("*", "*", func(action core.Action) (bool, runtime.Object, error) { - return true, &v1.ReplicationController{}, fmt.Errorf("Fake error") - }) - fakeRCClient := c.Core().ReplicationControllers("default") - numReplicas := int32(10) - status := v1.ReplicationControllerStatus{Replicas: numReplicas} - updateReplicationControllerStatus(fakeRCClient, *rc, status) - updates, gets := 0, 0 - for _, a := range c.Actions() { - if a.GetResource().Resource != "replicationcontrollers" { - t.Errorf("Unexpected action %+v", a) - continue - } - - switch action := a.(type) { - case core.GetAction: - gets++ - // Make sure the get is for the right rc even though the update failed. - if action.GetName() != rc.Name { - t.Errorf("Expected get for rc %v, got %+v instead", rc.Name, action.GetName()) - } - case core.UpdateAction: - updates++ - // Confirm that the update has the right status.Replicas even though the Get - // returned an rc with replicas=1. - if c, ok := action.GetObject().(*v1.ReplicationController); !ok { - t.Errorf("Expected an rc as the argument to update, got %T", c) - } else if c.Status.Replicas != numReplicas { - t.Errorf("Expected update for rc to contain replicas %v, got %v instead", - numReplicas, c.Status.Replicas) - } - default: - t.Errorf("Unexpected action %+v", a) - break - } - } - if gets != 1 || updates != 2 { - t.Errorf("Expected 1 get and 2 updates, got %d gets %d updates", gets, updates) - } -} - -// TODO: This test is too hairy for a unittest. It should be moved to an E2E suite. -func doTestControllerBurstReplicas(t *testing.T, burstReplicas, numReplicas int) { - controllerSpec := newReplicationController(numReplicas) - c := fake.NewSimpleClientset(controllerSpec) - fakePodControl := controller.FakePodControl{} - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, burstReplicas) - manager.podControl = &fakePodControl - - rcInformer.Informer().GetIndexer().Add(controllerSpec) - - expectedPods := 0 - pods := newPodList(nil, numReplicas, v1.PodPending, controllerSpec, "pod") - - rcKey, err := controller.KeyFunc(controllerSpec) - if err != nil { - t.Errorf("Couldn't get key for object %#v: %v", controllerSpec, err) - } - - // Size up the controller, then size it down, and confirm the expected create/delete pattern - for _, replicas := range []int{numReplicas, 0} { - - *(controllerSpec.Spec.Replicas) = int32(replicas) - rcInformer.Informer().GetIndexer().Add(controllerSpec) - - for i := 0; i < numReplicas; i += burstReplicas { - manager.syncReplicationController(getKey(controllerSpec, t)) - - // The store accrues active pods. It's also used by the rc to determine how many - // replicas to create. - activePods := len(podInformer.Informer().GetIndexer().List()) - if replicas != 0 { - // This is the number of pods currently "in flight". They were created by the rc manager above, - // which then puts the rc to sleep till all of them have been observed. - expectedPods = replicas - activePods - if expectedPods > burstReplicas { - expectedPods = burstReplicas - } - // This validates the rc manager sync actually created pods - validateSyncReplication(t, &fakePodControl, expectedPods, 0, 0) - - // This simulates the watch events for all but 1 of the expected pods. - // None of these should wake the controller because it has expectations==BurstReplicas. - for i := 0; i < expectedPods-1; i++ { - podInformer.Informer().GetIndexer().Add(&pods.Items[i]) - manager.addPod(&pods.Items[i]) - } - - podExp, exists, err := manager.expectations.GetExpectations(rcKey) - if !exists || err != nil { - t.Fatalf("Did not find expectations for rc.") - } - if add, _ := podExp.GetExpectations(); add != 1 { - t.Fatalf("Expectations are wrong %v", podExp) - } - } else { - expectedPods = (replicas - activePods) * -1 - if expectedPods > burstReplicas { - expectedPods = burstReplicas - } - validateSyncReplication(t, &fakePodControl, 0, expectedPods, 0) - - // To accurately simulate a watch we must delete the exact pods - // the rc is waiting for. - expectedDels := manager.expectations.GetUIDs(getKey(controllerSpec, t)) - podsToDelete := []*v1.Pod{} - isController := true - for _, key := range expectedDels.List() { - nsName := strings.Split(key, "/") - podsToDelete = append(podsToDelete, &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: nsName[1], - Namespace: nsName[0], - Labels: controllerSpec.Spec.Selector, - OwnerReferences: []metav1.OwnerReference{ - {UID: controllerSpec.UID, APIVersion: "v1", Kind: "ReplicationController", Name: controllerSpec.Name, Controller: &isController}, - }, - }, - }) - } - // Don't delete all pods because we confirm that the last pod - // has exactly one expectation at the end, to verify that we - // don't double delete. - for i := range podsToDelete[1:] { - podInformer.Informer().GetIndexer().Delete(podsToDelete[i]) - manager.deletePod(podsToDelete[i]) - } - podExp, exists, err := manager.expectations.GetExpectations(rcKey) - if !exists || err != nil { - t.Fatalf("Did not find expectations for rc.") - } - if _, del := podExp.GetExpectations(); del != 1 { - t.Fatalf("Expectations are wrong %v", podExp) - } - } - - // Check that the rc didn't take any action for all the above pods - fakePodControl.Clear() - manager.syncReplicationController(getKey(controllerSpec, t)) - validateSyncReplication(t, &fakePodControl, 0, 0, 0) - - // Create/Delete the last pod - // The last add pod will decrease the expectation of the rc to 0, - // which will cause it to create/delete the remaining replicas up to burstReplicas. - if replicas != 0 { - podInformer.Informer().GetIndexer().Add(&pods.Items[expectedPods-1]) - manager.addPod(&pods.Items[expectedPods-1]) - } else { - expectedDel := manager.expectations.GetUIDs(getKey(controllerSpec, t)) - if expectedDel.Len() != 1 { - t.Fatalf("Waiting on unexpected number of deletes.") - } - nsName := strings.Split(expectedDel.List()[0], "/") - isController := true - lastPod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: nsName[1], - Namespace: nsName[0], - Labels: controllerSpec.Spec.Selector, - OwnerReferences: []metav1.OwnerReference{ - {UID: controllerSpec.UID, APIVersion: "v1", Kind: "ReplicationController", Name: controllerSpec.Name, Controller: &isController}, - }, - }, - } - podInformer.Informer().GetIndexer().Delete(lastPod) - manager.deletePod(lastPod) - } - pods.Items = pods.Items[expectedPods:] - } - - // Confirm that we've created the right number of replicas - activePods := int32(len(podInformer.Informer().GetIndexer().List())) - if activePods != *(controllerSpec.Spec.Replicas) { - t.Fatalf("Unexpected number of active pods, expected %d, got %d", *(controllerSpec.Spec.Replicas), activePods) - } - // Replenish the pod list, since we cut it down sizing up - pods = newPodList(nil, replicas, v1.PodRunning, controllerSpec, "pod") - } -} - -func TestControllerBurstReplicas(t *testing.T) { - doTestControllerBurstReplicas(t, 5, 30) - doTestControllerBurstReplicas(t, 5, 12) - doTestControllerBurstReplicas(t, 3, 2) -} - -type FakeRCExpectations struct { - *controller.ControllerExpectations - satisfied bool - expSatisfied func() -} - -func (fe FakeRCExpectations) SatisfiedExpectations(controllerKey string) bool { - fe.expSatisfied() - return fe.satisfied -} - -// TestRCSyncExpectations tests that a pod cannot sneak in between counting active pods -// and checking expectations. -func TestRCSyncExpectations(t *testing.T) { - c := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - fakePodControl := controller.FakePodControl{} - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, 2) - manager.podControl = &fakePodControl - - controllerSpec := newReplicationController(2) - rcInformer.Informer().GetIndexer().Add(controllerSpec) - pods := newPodList(nil, 2, v1.PodPending, controllerSpec, "pod") - podInformer.Informer().GetIndexer().Add(&pods.Items[0]) - postExpectationsPod := pods.Items[1] - - manager.expectations = controller.NewUIDTrackingControllerExpectations(FakeRCExpectations{ - controller.NewControllerExpectations(), true, func() { - // If we check active pods before checking expectataions, the rc - // will create a new replica because it doesn't see this pod, but - // has fulfilled its expectations. - podInformer.Informer().GetIndexer().Add(&postExpectationsPod) - }, - }) - manager.syncReplicationController(getKey(controllerSpec, t)) - validateSyncReplication(t, &fakePodControl, 0, 0, 0) -} - -func TestDeleteControllerAndExpectations(t *testing.T) { - rc := newReplicationController(1) - c := fake.NewSimpleClientset(rc) - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, 10) - - rcInformer.Informer().GetIndexer().Add(rc) - - fakePodControl := controller.FakePodControl{} - manager.podControl = &fakePodControl - - // This should set expectations for the rc - manager.syncReplicationController(getKey(rc, t)) - validateSyncReplication(t, &fakePodControl, 1, 0, 0) - fakePodControl.Clear() - - // Get the RC key - rcKey, err := controller.KeyFunc(rc) - if err != nil { - t.Errorf("Couldn't get key for object %#v: %v", rc, err) - } - - // This is to simulate a concurrent addPod, that has a handle on the expectations - // as the controller deletes it. - podExp, exists, err := manager.expectations.GetExpectations(rcKey) - if !exists || err != nil { - t.Errorf("No expectations found for rc") - } - rcInformer.Informer().GetIndexer().Delete(rc) - manager.syncReplicationController(getKey(rc, t)) - - if _, exists, err = manager.expectations.GetExpectations(rcKey); exists { - t.Errorf("Found expectaions, expected none since the rc has been deleted.") - } - - // This should have no effect, since we've deleted the rc. - podExp.Add(-1, 0) - podInformer.Informer().GetIndexer().Replace(make([]interface{}, 0), "0") - manager.syncReplicationController(getKey(rc, t)) - validateSyncReplication(t, &fakePodControl, 0, 0, 0) -} - -// shuffle returns a new shuffled list of container controllers. -func shuffle(controllers []*v1.ReplicationController) []*v1.ReplicationController { - numControllers := len(controllers) - randIndexes := rand.Perm(numControllers) - shuffled := make([]*v1.ReplicationController, numControllers) - for i := 0; i < numControllers; i++ { - shuffled[i] = controllers[randIndexes[i]] - } - return shuffled -} - -func TestOverlappingRCs(t *testing.T) { - c := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - - manager, _, rcInformer := newReplicationManagerFromClient(c, 10) - - // Create 10 rcs, shuffled them randomly and insert them into the - // rc manager's store. - // All use the same CreationTimestamp since ControllerRef should be able - // to handle that. - var controllers []*v1.ReplicationController - timestamp := metav1.Date(2014, time.December, 0, 0, 0, 0, 0, time.Local) - for j := 1; j < 10; j++ { - controllerSpec := newReplicationController(1) - controllerSpec.CreationTimestamp = timestamp - controllerSpec.Name = fmt.Sprintf("rc%d", j) - controllers = append(controllers, controllerSpec) - } - shuffledControllers := shuffle(controllers) - for j := range shuffledControllers { - rcInformer.Informer().GetIndexer().Add(shuffledControllers[j]) - } - // Add a pod with a ControllerRef and make sure only the corresponding - // ReplicationController is synced. Pick a RC in the middle since the old code - // used to sort by name if all timestamps were equal. - rc := controllers[3] - pods := newPodList(nil, 1, v1.PodPending, rc, "pod") - pod := &pods.Items[0] - isController := true - pod.OwnerReferences = []metav1.OwnerReference{ - {UID: rc.UID, APIVersion: "v1", Kind: "ReplicationController", Name: rc.Name, Controller: &isController}, - } - rcKey := getKey(rc, t) - - manager.addPod(pod) - queueRC, _ := manager.queue.Get() - if queueRC != rcKey { - t.Fatalf("Expected to find key %v in queue, found %v", rcKey, queueRC) - } -} - -func TestDeletionTimestamp(t *testing.T) { - c := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - manager, _, rcInformer := newReplicationManagerFromClient(c, 10) - - controllerSpec := newReplicationController(1) - rcInformer.Informer().GetIndexer().Add(controllerSpec) - rcKey, err := controller.KeyFunc(controllerSpec) - if err != nil { - t.Errorf("Couldn't get key for object %#v: %v", controllerSpec, err) - } - pod := newPodList(nil, 1, v1.PodPending, controllerSpec, "pod").Items[0] - pod.DeletionTimestamp = &metav1.Time{Time: time.Now()} - pod.ResourceVersion = "1" - manager.expectations.ExpectDeletions(rcKey, []string{controller.PodKey(&pod)}) - - // A pod added with a deletion timestamp should decrement deletions, not creations. - manager.addPod(&pod) - - queueRC, _ := manager.queue.Get() - if queueRC != rcKey { - t.Fatalf("Expected to find key %v in queue, found %v", rcKey, queueRC) - } - manager.queue.Done(rcKey) - - podExp, exists, err := manager.expectations.GetExpectations(rcKey) - if !exists || err != nil || !podExp.Fulfilled() { - t.Fatalf("Wrong expectations %#v", podExp) - } - - // An update from no deletion timestamp to having one should be treated - // as a deletion. - oldPod := newPodList(nil, 1, v1.PodPending, controllerSpec, "pod").Items[0] - oldPod.ResourceVersion = "2" - manager.expectations.ExpectDeletions(rcKey, []string{controller.PodKey(&pod)}) - manager.updatePod(&oldPod, &pod) - - queueRC, _ = manager.queue.Get() - if queueRC != rcKey { - t.Fatalf("Expected to find key %v in queue, found %v", rcKey, queueRC) - } - manager.queue.Done(rcKey) - - podExp, exists, err = manager.expectations.GetExpectations(rcKey) - if !exists || err != nil || !podExp.Fulfilled() { - t.Fatalf("Wrong expectations %#v", podExp) - } - - // An update to the pod (including an update to the deletion timestamp) - // should not be counted as a second delete. - isController := true - secondPod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: pod.Namespace, - Name: "secondPod", - Labels: pod.Labels, - OwnerReferences: []metav1.OwnerReference{ - {UID: controllerSpec.UID, APIVersion: "v1", Kind: "ReplicationController", Name: controllerSpec.Name, Controller: &isController}, - }, - }, - } - manager.expectations.ExpectDeletions(rcKey, []string{controller.PodKey(secondPod)}) - oldPod.DeletionTimestamp = &metav1.Time{Time: time.Now()} - oldPod.ResourceVersion = "2" - manager.updatePod(&oldPod, &pod) - - podExp, exists, err = manager.expectations.GetExpectations(rcKey) - if !exists || err != nil || podExp.Fulfilled() { - t.Fatalf("Wrong expectations %#v", podExp) - } - - // A pod with a non-nil deletion timestamp should also be ignored by the - // delete handler, because it's already been counted in the update. - manager.deletePod(&pod) - podExp, exists, err = manager.expectations.GetExpectations(rcKey) - if !exists || err != nil || podExp.Fulfilled() { - t.Fatalf("Wrong expectations %#v", podExp) - } - - // Deleting the second pod should clear expectations. - manager.deletePod(secondPod) - - queueRC, _ = manager.queue.Get() - if queueRC != rcKey { - t.Fatalf("Expected to find key %v in queue, found %v", rcKey, queueRC) - } - manager.queue.Done(rcKey) - - podExp, exists, err = manager.expectations.GetExpectations(rcKey) - if !exists || err != nil || !podExp.Fulfilled() { - t.Fatalf("Wrong expectations %#v", podExp) - } -} - -func BenchmarkGetPodControllerMultiNS(b *testing.B) { - client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - manager, _, rcInformer := newReplicationManagerFromClient(client, BurstReplicas) - - const nsNum = 1000 - - pods := []v1.Pod{} - for i := 0; i < nsNum; i++ { - ns := fmt.Sprintf("ns-%d", i) - for j := 0; j < 10; j++ { - rcName := fmt.Sprintf("rc-%d", j) - for k := 0; k < 10; k++ { - podName := fmt.Sprintf("pod-%d-%d", j, k) - pods = append(pods, v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: podName, - Namespace: ns, - Labels: map[string]string{"rcName": rcName}, - }, - }) - } - } - } - - for i := 0; i < nsNum; i++ { - ns := fmt.Sprintf("ns-%d", i) - for j := 0; j < 10; j++ { - rcName := fmt.Sprintf("rc-%d", j) - rcInformer.Informer().GetIndexer().Add(&v1.ReplicationController{ - ObjectMeta: metav1.ObjectMeta{Name: rcName, Namespace: ns}, - Spec: v1.ReplicationControllerSpec{ - Selector: map[string]string{"rcName": rcName}, - }, - }) - } - } - - b.ResetTimer() - - for i := 0; i < b.N; i++ { - for _, pod := range pods { - manager.getPodControllers(&pod) - } - } -} - -func BenchmarkGetPodControllerSingleNS(b *testing.B) { - client := clientset.NewForConfigOrDie(&restclient.Config{Host: "", ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - manager, _, rcInformer := newReplicationManagerFromClient(client, BurstReplicas) - - const rcNum = 1000 - const replicaNum = 3 - - pods := []v1.Pod{} - for i := 0; i < rcNum; i++ { - rcName := fmt.Sprintf("rc-%d", i) - for j := 0; j < replicaNum; j++ { - podName := fmt.Sprintf("pod-%d-%d", i, j) - pods = append(pods, v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: podName, - Namespace: "foo", - Labels: map[string]string{"rcName": rcName}, - }, - }) - } - } - - for i := 0; i < rcNum; i++ { - rcName := fmt.Sprintf("rc-%d", i) - rcInformer.Informer().GetIndexer().Add(&v1.ReplicationController{ - ObjectMeta: metav1.ObjectMeta{Name: rcName, Namespace: "foo"}, - Spec: v1.ReplicationControllerSpec{ - Selector: map[string]string{"rcName": rcName}, - }, - }) - } - b.ResetTimer() - - for i := 0; i < b.N; i++ { - for _, pod := range pods { - manager.getPodControllers(&pod) - } - } -} - -// setupManagerWithGCEnabled creates a RC manager with a fakePodControl -func setupManagerWithGCEnabled(objs ...runtime.Object) (manager *ReplicationManager, fakePodControl *controller.FakePodControl, podInformer coreinformers.PodInformer, rcInformer coreinformers.ReplicationControllerInformer) { - c := fakeclientset.NewSimpleClientset(objs...) - fakePodControl = &controller.FakePodControl{} - manager, podInformer, rcInformer = newReplicationManagerFromClient(c, BurstReplicas) - manager.podControl = fakePodControl - return manager, fakePodControl, podInformer, rcInformer -} - -func TestDoNotPatchPodWithOtherControlRef(t *testing.T) { - rc := newReplicationController(2) - manager, fakePodControl, podInformer, rcInformer := setupManagerWithGCEnabled(rc) - rcInformer.Informer().GetIndexer().Add(rc) - var trueVar = true - otherControllerReference := metav1.OwnerReference{UID: uuid.NewUUID(), APIVersion: "v1", Kind: "ReplicationController", Name: "AnotherRC", Controller: &trueVar} - // add to podLister a matching Pod controlled by another controller. Expect no patch. - pod := newPod("pod", rc, v1.PodRunning, nil, false) - pod.OwnerReferences = []metav1.OwnerReference{otherControllerReference} - podInformer.Informer().GetIndexer().Add(pod) - err := manager.syncReplicationController(getKey(rc, t)) - if err != nil { - t.Fatal(err) - } - // because the matching pod already has a controller, so 2 pods should be created. - validateSyncReplication(t, fakePodControl, 2, 0, 0) -} - -func TestPatchPodWithOtherOwnerRef(t *testing.T) { - rc := newReplicationController(2) - manager, fakePodControl, podInformer, rcInformer := setupManagerWithGCEnabled(rc) - rcInformer.Informer().GetIndexer().Add(rc) - // add to podLister one more matching pod that doesn't have a controller - // ref, but has an owner ref pointing to other object. Expect a patch to - // take control of it. - unrelatedOwnerReference := metav1.OwnerReference{UID: uuid.NewUUID(), APIVersion: "batch/v1", Kind: "Job", Name: "Job"} - pod := newPod("pod", rc, v1.PodRunning, nil, false) - pod.OwnerReferences = []metav1.OwnerReference{unrelatedOwnerReference} - podInformer.Informer().GetIndexer().Add(pod) - - err := manager.syncReplicationController(getKey(rc, t)) - if err != nil { - t.Fatal(err) - } - // 1 patch to take control of pod, and 1 create of new pod. - validateSyncReplication(t, fakePodControl, 1, 0, 1) -} - -func TestPatchPodWithCorrectOwnerRef(t *testing.T) { - rc := newReplicationController(2) - manager, fakePodControl, podInformer, rcInformer := setupManagerWithGCEnabled(rc) - rcInformer.Informer().GetIndexer().Add(rc) - // add to podLister a matching pod that has an ownerRef pointing to the rc, - // but ownerRef.Controller is false. Expect a patch to take control it. - rcOwnerReference := metav1.OwnerReference{UID: rc.UID, APIVersion: "v1", Kind: "ReplicationController", Name: rc.Name} - pod := newPod("pod", rc, v1.PodRunning, nil, false) - pod.OwnerReferences = []metav1.OwnerReference{rcOwnerReference} - podInformer.Informer().GetIndexer().Add(pod) - - err := manager.syncReplicationController(getKey(rc, t)) - if err != nil { - t.Fatal(err) - } - // 1 patch to take control of pod, and 1 create of new pod. - validateSyncReplication(t, fakePodControl, 1, 0, 1) -} - -func TestPatchPodFails(t *testing.T) { - rc := newReplicationController(2) - manager, fakePodControl, podInformer, rcInformer := setupManagerWithGCEnabled(rc) - rcInformer.Informer().GetIndexer().Add(rc) - // add to podLister two matching pods. Expect two patches to take control - // them. - podInformer.Informer().GetIndexer().Add(newPod("pod1", rc, v1.PodRunning, nil, false)) - podInformer.Informer().GetIndexer().Add(newPod("pod2", rc, v1.PodRunning, nil, false)) - // let both patches fail. The rc manager will assume it fails to take - // control of the pods and requeue to try again. - fakePodControl.Err = fmt.Errorf("Fake Error") - rcKey := getKey(rc, t) - err := processSync(manager, rcKey) - if err == nil || !strings.Contains(err.Error(), "Fake Error") { - t.Fatalf("expected Fake Error, got %v", err) - } - // 2 patches to take control of pod1 and pod2 (both fail). - validateSyncReplication(t, fakePodControl, 0, 0, 2) - // RC should requeue itself. - queueRC, _ := manager.queue.Get() - if queueRC != rcKey { - t.Fatalf("Expected to find key %v in queue, found %v", rcKey, queueRC) - } -} - -func TestPatchExtraPodsThenDelete(t *testing.T) { - rc := newReplicationController(2) - manager, fakePodControl, podInformer, rcInformer := setupManagerWithGCEnabled(rc) - rcInformer.Informer().GetIndexer().Add(rc) - // add to podLister three matching pods. Expect three patches to take control - // them, and later delete one of them. - podInformer.Informer().GetIndexer().Add(newPod("pod1", rc, v1.PodRunning, nil, false)) - podInformer.Informer().GetIndexer().Add(newPod("pod2", rc, v1.PodRunning, nil, false)) - podInformer.Informer().GetIndexer().Add(newPod("pod3", rc, v1.PodRunning, nil, false)) - err := manager.syncReplicationController(getKey(rc, t)) - if err != nil { - t.Fatal(err) - } - // 3 patches to take control of the pods, and 1 deletion because there is an extra pod. - validateSyncReplication(t, fakePodControl, 0, 1, 3) -} - -func TestUpdateLabelsRemoveControllerRef(t *testing.T) { - rc := newReplicationController(2) - manager, fakePodControl, podInformer, rcInformer := setupManagerWithGCEnabled(rc) - rcInformer.Informer().GetIndexer().Add(rc) - // put one pod in the podLister - pod := newPod("pod", rc, v1.PodRunning, nil, false) - pod.ResourceVersion = "1" - var trueVar = true - rcOwnerReference := metav1.OwnerReference{UID: rc.UID, APIVersion: "v1", Kind: "ReplicationController", Name: rc.Name, Controller: &trueVar} - pod.OwnerReferences = []metav1.OwnerReference{rcOwnerReference} - updatedPod := *pod - // reset the labels - updatedPod.Labels = make(map[string]string) - updatedPod.ResourceVersion = "2" - // add the updatedPod to the store. This is consistent with the behavior of - // the Informer: Informer updates the store before call the handler - // (updatePod() in this case). - podInformer.Informer().GetIndexer().Add(&updatedPod) - // send a update of the same pod with modified labels - manager.updatePod(pod, &updatedPod) - // verifies that rc is added to the queue - rcKey := getKey(rc, t) - queueRC, _ := manager.queue.Get() - if queueRC != rcKey { - t.Fatalf("Expected to find key %v in queue, found %v", rcKey, queueRC) - } - manager.queue.Done(queueRC) - err := manager.syncReplicationController(rcKey) - if err != nil { - t.Fatal(err) - } - // expect 1 patch to be sent to remove the controllerRef for the pod. - // expect 2 creates because the *(rc.Spec.Replicas)=2 and there exists no - // matching pod. - validateSyncReplication(t, fakePodControl, 2, 0, 1) - fakePodControl.Clear() -} - -func TestUpdateSelectorControllerRef(t *testing.T) { - rc := newReplicationController(2) - manager, fakePodControl, podInformer, rcInformer := setupManagerWithGCEnabled(rc) - // put 2 pods in the podLister - newPodList(podInformer.Informer().GetIndexer(), 2, v1.PodRunning, rc, "pod") - // update the RC so that its selector no longer matches the pods - updatedRC := *rc - updatedRC.Spec.Selector = map[string]string{"foo": "baz"} - // put the updatedRC into the store. This is consistent with the behavior of - // the Informer: Informer updates the store before call the handler - // (updateRC() in this case). - rcInformer.Informer().GetIndexer().Add(&updatedRC) - manager.updateRC(rc, &updatedRC) - // verifies that the rc is added to the queue - rcKey := getKey(rc, t) - queueRC, _ := manager.queue.Get() - if queueRC != rcKey { - t.Fatalf("Expected to find key %v in queue, found %v", rcKey, queueRC) - } - manager.queue.Done(queueRC) - err := manager.syncReplicationController(rcKey) - if err != nil { - t.Fatal(err) - } - // expect 2 patches to be sent to remove the controllerRef for the pods. - // expect 2 creates because the *(rc.Spec.Replicas)=2 and there exists no - // matching pod. - validateSyncReplication(t, fakePodControl, 2, 0, 2) - fakePodControl.Clear() -} - -// RC manager shouldn't adopt or create more pods if the rc is about to be -// deleted. -func TestDoNotAdoptOrCreateIfBeingDeleted(t *testing.T) { - rc := newReplicationController(2) - now := metav1.Now() - rc.DeletionTimestamp = &now - manager, fakePodControl, podInformer, rcInformer := setupManagerWithGCEnabled(rc) - rcInformer.Informer().GetIndexer().Add(rc) - pod1 := newPod("pod1", rc, v1.PodRunning, nil, false) - podInformer.Informer().GetIndexer().Add(pod1) - - // no patch, no create - err := manager.syncReplicationController(getKey(rc, t)) - if err != nil { - t.Fatal(err) - } - validateSyncReplication(t, fakePodControl, 0, 0, 0) -} - -func TestDoNotAdoptOrCreateIfBeingDeletedRace(t *testing.T) { - // Bare client says it IS deleted. - rc := newReplicationController(2) - now := metav1.Now() - rc.DeletionTimestamp = &now - manager, fakePodControl, podInformer, rcInformer := setupManagerWithGCEnabled(rc) - // Lister (cache) says it's NOT deleted. - rc2 := *rc - rc2.DeletionTimestamp = nil - rcInformer.Informer().GetIndexer().Add(&rc2) - - // Recheck occurs if a matching orphan is present. - pod1 := newPod("pod1", rc, v1.PodRunning, nil, false) - podInformer.Informer().GetIndexer().Add(pod1) - - // sync should abort. - err := manager.syncReplicationController(getKey(rc, t)) - if err == nil { - t.Error("syncReplicationController() err = nil, expected non-nil") - } - // no patch, no create. - validateSyncReplication(t, fakePodControl, 0, 0, 0) -} - -func TestReadyReplicas(t *testing.T) { - // This is a happy server just to record the PUT request we expect for status.Replicas - fakeHandler := utiltesting.FakeHandler{ - StatusCode: 200, - ResponseBody: "{}", - } - testServer := httptest.NewServer(&fakeHandler) - defer testServer.Close() - - c := clientset.NewForConfigOrDie(&restclient.Config{Host: testServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - - // Status.Replica should update to match number of pods in system, 1 new pod should be created. - rc := newReplicationController(2) - rc.Status = v1.ReplicationControllerStatus{Replicas: 2, ReadyReplicas: 0, AvailableReplicas: 0, ObservedGeneration: 1} - rc.Generation = 1 - rcInformer.Informer().GetIndexer().Add(rc) - - newPodList(podInformer.Informer().GetIndexer(), 2, v1.PodPending, rc, "pod") - newPodList(podInformer.Informer().GetIndexer(), 2, v1.PodRunning, rc, "pod") - - // This response body is just so we don't err out decoding the http response - response := runtime.EncodeOrDie(testapi.Default.Codec(), &v1.ReplicationController{}) - fakeHandler.ResponseBody = response - - fakePodControl := controller.FakePodControl{} - manager.podControl = &fakePodControl - - manager.syncReplicationController(getKey(rc, t)) - - // ReadyReplicas should go from 0 to 2. - rc.Status = v1.ReplicationControllerStatus{Replicas: 2, ReadyReplicas: 2, AvailableReplicas: 2, ObservedGeneration: 1} - - decRc := runtime.EncodeOrDie(testapi.Default.Codec(), rc) - fakeHandler.ValidateRequest(t, testapi.Default.ResourcePath(replicationControllerResourceName(), rc.Namespace, rc.Name)+"/status", "PUT", &decRc) - validateSyncReplication(t, &fakePodControl, 0, 0, 0) -} - -func TestAvailableReplicas(t *testing.T) { - // This is a happy server just to record the PUT request we expect for status.Replicas - fakeHandler := utiltesting.FakeHandler{ - StatusCode: 200, - ResponseBody: "{}", - } - testServer := httptest.NewServer(&fakeHandler) - defer testServer.Close() - - c := clientset.NewForConfigOrDie(&restclient.Config{Host: testServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - manager, podInformer, rcInformer := newReplicationManagerFromClient(c, BurstReplicas) - - // Status.Replica should update to match number of pods in system, 1 new pod should be created. - rc := newReplicationController(2) - rc.Status = v1.ReplicationControllerStatus{Replicas: 2, ReadyReplicas: 0, ObservedGeneration: 1} - rc.Generation = 1 - // minReadySeconds set to 15s - rc.Spec.MinReadySeconds = 15 - rcInformer.Informer().GetIndexer().Add(rc) - - // First pod becomes ready 20s ago - moment := metav1.Time{Time: time.Now().Add(-2e10)} - pod := newPod("pod", rc, v1.PodRunning, &moment, true) - podInformer.Informer().GetIndexer().Add(pod) - - // Second pod becomes ready now - otherMoment := metav1.Now() - otherPod := newPod("otherPod", rc, v1.PodRunning, &otherMoment, true) - podInformer.Informer().GetIndexer().Add(otherPod) - - // This response body is just so we don't err out decoding the http response - response := runtime.EncodeOrDie(testapi.Default.Codec(), &v1.ReplicationController{}) - fakeHandler.ResponseBody = response - - fakePodControl := controller.FakePodControl{} - manager.podControl = &fakePodControl - - // The controller should see only one available pod. - manager.syncReplicationController(getKey(rc, t)) - - rc.Status = v1.ReplicationControllerStatus{Replicas: 2, ReadyReplicas: 2, AvailableReplicas: 1, ObservedGeneration: 1} - - decRc := runtime.EncodeOrDie(testapi.Default.Codec(), rc) - fakeHandler.ValidateRequest(t, testapi.Default.ResourcePath(replicationControllerResourceName(), rc.Namespace, rc.Name)+"/status", "PUT", &decRc) - validateSyncReplication(t, &fakePodControl, 0, 0, 0) -} - -var ( - imagePullBackOff v1.ReplicationControllerConditionType = "ImagePullBackOff" - - condImagePullBackOff = func() v1.ReplicationControllerCondition { - return v1.ReplicationControllerCondition{ - Type: imagePullBackOff, - Status: v1.ConditionTrue, - Reason: "NonExistentImage", - } - } - - condReplicaFailure = func() v1.ReplicationControllerCondition { - return v1.ReplicationControllerCondition{ - Type: v1.ReplicationControllerReplicaFailure, - Status: v1.ConditionTrue, - Reason: "OtherFailure", - } - } - - condReplicaFailure2 = func() v1.ReplicationControllerCondition { - return v1.ReplicationControllerCondition{ - Type: v1.ReplicationControllerReplicaFailure, - Status: v1.ConditionTrue, - Reason: "AnotherFailure", - } - } - - status = func() *v1.ReplicationControllerStatus { - return &v1.ReplicationControllerStatus{ - Conditions: []v1.ReplicationControllerCondition{condReplicaFailure()}, - } - } -) - -func TestGetCondition(t *testing.T) { - exampleStatus := status() - - tests := []struct { - name string - - status v1.ReplicationControllerStatus - condType v1.ReplicationControllerConditionType - condStatus v1.ConditionStatus - condReason string - - expected bool - }{ - { - name: "condition exists", - - status: *exampleStatus, - condType: v1.ReplicationControllerReplicaFailure, - - expected: true, - }, - { - name: "condition does not exist", - - status: *exampleStatus, - condType: imagePullBackOff, - - expected: false, - }, - } - - for _, test := range tests { - cond := GetCondition(test.status, test.condType) - exists := cond != nil - if exists != test.expected { - t.Errorf("%s: expected condition to exist: %t, got: %t", test.name, test.expected, exists) - } - } -} - -func TestSetCondition(t *testing.T) { - tests := []struct { - name string - - status *v1.ReplicationControllerStatus - cond v1.ReplicationControllerCondition - - expectedStatus *v1.ReplicationControllerStatus - }{ - { - name: "set for the first time", - - status: &v1.ReplicationControllerStatus{}, - cond: condReplicaFailure(), - - expectedStatus: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condReplicaFailure()}}, - }, - { - name: "simple set", - - status: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condImagePullBackOff()}}, - cond: condReplicaFailure(), - - expectedStatus: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condImagePullBackOff(), condReplicaFailure()}}, - }, - { - name: "overwrite", - - status: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condReplicaFailure()}}, - cond: condReplicaFailure2(), - - expectedStatus: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condReplicaFailure2()}}, - }, - } - - for _, test := range tests { - SetCondition(test.status, test.cond) - if !reflect.DeepEqual(test.status, test.expectedStatus) { - t.Errorf("%s: expected status: %v, got: %v", test.name, test.expectedStatus, test.status) - } - } -} - -func TestRemoveCondition(t *testing.T) { - tests := []struct { - name string - - status *v1.ReplicationControllerStatus - condType v1.ReplicationControllerConditionType - - expectedStatus *v1.ReplicationControllerStatus - }{ - { - name: "remove from empty status", - - status: &v1.ReplicationControllerStatus{}, - condType: v1.ReplicationControllerReplicaFailure, - - expectedStatus: &v1.ReplicationControllerStatus{}, - }, - { - name: "simple remove", - - status: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condReplicaFailure()}}, - condType: v1.ReplicationControllerReplicaFailure, - - expectedStatus: &v1.ReplicationControllerStatus{}, - }, - { - name: "doesn't remove anything", - - status: status(), - condType: imagePullBackOff, - - expectedStatus: status(), - }, - } - - for _, test := range tests { - RemoveCondition(test.status, test.condType) - if !reflect.DeepEqual(test.status, test.expectedStatus) { - t.Errorf("%s: expected status: %v, got: %v", test.name, test.expectedStatus, test.status) - } - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_utils.go b/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_utils.go index 625317bec..506074b83 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_utils.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_utils.go @@ -19,123 +19,10 @@ limitations under the License. package replication import ( - "fmt" - "reflect" - - "github.com/golang/glog" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - v1core "k8s.io/client-go/kubernetes/typed/core/v1" - podutil "k8s.io/kubernetes/pkg/api/v1/pod" ) -// updateReplicationControllerStatus attempts to update the Status.Replicas of the given controller, with a single GET/PUT retry. -func updateReplicationControllerStatus(c v1core.ReplicationControllerInterface, rc v1.ReplicationController, newStatus v1.ReplicationControllerStatus) (*v1.ReplicationController, error) { - // This is the steady state. It happens when the rc doesn't have any expectations, since - // we do a periodic relist every 30s. If the generations differ but the replicas are - // the same, a caller might've resized to the same replica count. - if rc.Status.Replicas == newStatus.Replicas && - rc.Status.FullyLabeledReplicas == newStatus.FullyLabeledReplicas && - rc.Status.ReadyReplicas == newStatus.ReadyReplicas && - rc.Status.AvailableReplicas == newStatus.AvailableReplicas && - rc.Generation == rc.Status.ObservedGeneration && - reflect.DeepEqual(rc.Status.Conditions, newStatus.Conditions) { - return &rc, nil - } - // Save the generation number we acted on, otherwise we might wrongfully indicate - // that we've seen a spec update when we retry. - // TODO: This can clobber an update if we allow multiple agents to write to the - // same status. - newStatus.ObservedGeneration = rc.Generation - - var getErr, updateErr error - var updatedRC *v1.ReplicationController - for i, rc := 0, &rc; ; i++ { - glog.V(4).Infof(fmt.Sprintf("Updating status for rc: %s/%s, ", rc.Namespace, rc.Name) + - fmt.Sprintf("replicas %d->%d (need %d), ", rc.Status.Replicas, newStatus.Replicas, *(rc.Spec.Replicas)) + - fmt.Sprintf("fullyLabeledReplicas %d->%d, ", rc.Status.FullyLabeledReplicas, newStatus.FullyLabeledReplicas) + - fmt.Sprintf("readyReplicas %d->%d, ", rc.Status.ReadyReplicas, newStatus.ReadyReplicas) + - fmt.Sprintf("availableReplicas %d->%d, ", rc.Status.AvailableReplicas, newStatus.AvailableReplicas) + - fmt.Sprintf("sequence No: %v->%v", rc.Status.ObservedGeneration, newStatus.ObservedGeneration)) - - rc.Status = newStatus - updatedRC, updateErr = c.UpdateStatus(rc) - if updateErr == nil { - return updatedRC, nil - } - // Stop retrying if we exceed statusUpdateRetries - the replicationController will be requeued with a rate limit. - if i >= statusUpdateRetries { - break - } - // Update the controller with the latest resource version for the next poll - if rc, getErr = c.Get(rc.Name, metav1.GetOptions{}); getErr != nil { - // If the GET fails we can't trust status.Replicas anymore. This error - // is bound to be more interesting than the update failure. - return nil, getErr - } - } - - return nil, updateErr -} - -// OverlappingControllers sorts a list of controllers by creation timestamp, using their names as a tie breaker. -type OverlappingControllers []*v1.ReplicationController - -func (o OverlappingControllers) Len() int { return len(o) } -func (o OverlappingControllers) Swap(i, j int) { o[i], o[j] = o[j], o[i] } - -func (o OverlappingControllers) Less(i, j int) bool { - if o[i].CreationTimestamp.Equal(&o[j].CreationTimestamp) { - return o[i].Name < o[j].Name - } - return o[i].CreationTimestamp.Before(&o[j].CreationTimestamp) -} - -func calculateStatus(rc *v1.ReplicationController, filteredPods []*v1.Pod, manageReplicasErr error) v1.ReplicationControllerStatus { - newStatus := rc.Status - // Count the number of pods that have labels matching the labels of the pod - // template of the replication controller, the matching pods may have more - // labels than are in the template. Because the label of podTemplateSpec is - // a superset of the selector of the replication controller, so the possible - // matching pods must be part of the filteredPods. - fullyLabeledReplicasCount := 0 - readyReplicasCount := 0 - availableReplicasCount := 0 - templateLabel := labels.Set(rc.Spec.Template.Labels).AsSelectorPreValidated() - for _, pod := range filteredPods { - if templateLabel.Matches(labels.Set(pod.Labels)) { - fullyLabeledReplicasCount++ - } - if podutil.IsPodReady(pod) { - readyReplicasCount++ - if podutil.IsPodAvailable(pod, rc.Spec.MinReadySeconds, metav1.Now()) { - availableReplicasCount++ - } - } - } - - failureCond := GetCondition(rc.Status, v1.ReplicationControllerReplicaFailure) - if manageReplicasErr != nil && failureCond == nil { - var reason string - if diff := len(filteredPods) - int(*(rc.Spec.Replicas)); diff < 0 { - reason = "FailedCreate" - } else if diff > 0 { - reason = "FailedDelete" - } - cond := NewReplicationControllerCondition(v1.ReplicationControllerReplicaFailure, v1.ConditionTrue, reason, manageReplicasErr.Error()) - SetCondition(&newStatus, cond) - } else if manageReplicasErr == nil && failureCond != nil { - RemoveCondition(&newStatus, v1.ReplicationControllerReplicaFailure) - } - - newStatus.Replicas = int32(len(filteredPods)) - newStatus.FullyLabeledReplicas = int32(fullyLabeledReplicasCount) - newStatus.ReadyReplicas = int32(readyReplicasCount) - newStatus.AvailableReplicas = int32(availableReplicasCount) - return newStatus -} - // NewReplicationControllerCondition creates a new replication controller condition. func NewReplicationControllerCondition(condType v1.ReplicationControllerConditionType, status v1.ConditionStatus, reason, msg string) v1.ReplicationControllerCondition { return v1.ReplicationControllerCondition{ diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_utils_test.go b/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_utils_test.go new file mode 100644 index 000000000..0acaf0b0b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/replication/replication_controller_utils_test.go @@ -0,0 +1,184 @@ +/* +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 replication + +import ( + "reflect" + "testing" + + "k8s.io/api/core/v1" +) + +var ( + imagePullBackOff v1.ReplicationControllerConditionType = "ImagePullBackOff" + + condImagePullBackOff = func() v1.ReplicationControllerCondition { + return v1.ReplicationControllerCondition{ + Type: imagePullBackOff, + Status: v1.ConditionTrue, + Reason: "NonExistentImage", + } + } + + condReplicaFailure = func() v1.ReplicationControllerCondition { + return v1.ReplicationControllerCondition{ + Type: v1.ReplicationControllerReplicaFailure, + Status: v1.ConditionTrue, + Reason: "OtherFailure", + } + } + + condReplicaFailure2 = func() v1.ReplicationControllerCondition { + return v1.ReplicationControllerCondition{ + Type: v1.ReplicationControllerReplicaFailure, + Status: v1.ConditionTrue, + Reason: "AnotherFailure", + } + } + + status = func() *v1.ReplicationControllerStatus { + return &v1.ReplicationControllerStatus{ + Conditions: []v1.ReplicationControllerCondition{condReplicaFailure()}, + } + } +) + +func TestGetCondition(t *testing.T) { + exampleStatus := status() + + tests := []struct { + name string + + status v1.ReplicationControllerStatus + condType v1.ReplicationControllerConditionType + condStatus v1.ConditionStatus + condReason string + + expected bool + }{ + { + name: "condition exists", + + status: *exampleStatus, + condType: v1.ReplicationControllerReplicaFailure, + + expected: true, + }, + { + name: "condition does not exist", + + status: *exampleStatus, + condType: imagePullBackOff, + + expected: false, + }, + } + + for _, test := range tests { + cond := GetCondition(test.status, test.condType) + exists := cond != nil + if exists != test.expected { + t.Errorf("%s: expected condition to exist: %t, got: %t", test.name, test.expected, exists) + } + } +} + +func TestSetCondition(t *testing.T) { + tests := []struct { + name string + + status *v1.ReplicationControllerStatus + cond v1.ReplicationControllerCondition + + expectedStatus *v1.ReplicationControllerStatus + }{ + { + name: "set for the first time", + + status: &v1.ReplicationControllerStatus{}, + cond: condReplicaFailure(), + + expectedStatus: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condReplicaFailure()}}, + }, + { + name: "simple set", + + status: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condImagePullBackOff()}}, + cond: condReplicaFailure(), + + expectedStatus: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condImagePullBackOff(), condReplicaFailure()}}, + }, + { + name: "overwrite", + + status: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condReplicaFailure()}}, + cond: condReplicaFailure2(), + + expectedStatus: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condReplicaFailure2()}}, + }, + } + + for _, test := range tests { + SetCondition(test.status, test.cond) + if !reflect.DeepEqual(test.status, test.expectedStatus) { + t.Errorf("%s: expected status: %v, got: %v", test.name, test.expectedStatus, test.status) + } + } +} + +func TestRemoveCondition(t *testing.T) { + tests := []struct { + name string + + status *v1.ReplicationControllerStatus + condType v1.ReplicationControllerConditionType + + expectedStatus *v1.ReplicationControllerStatus + }{ + { + name: "remove from empty status", + + status: &v1.ReplicationControllerStatus{}, + condType: v1.ReplicationControllerReplicaFailure, + + expectedStatus: &v1.ReplicationControllerStatus{}, + }, + { + name: "simple remove", + + status: &v1.ReplicationControllerStatus{Conditions: []v1.ReplicationControllerCondition{condReplicaFailure()}}, + condType: v1.ReplicationControllerReplicaFailure, + + expectedStatus: &v1.ReplicationControllerStatus{}, + }, + { + name: "doesn't remove anything", + + status: status(), + condType: imagePullBackOff, + + expectedStatus: status(), + }, + } + + for _, test := range tests { + RemoveCondition(test.status, test.condType) + if !reflect.DeepEqual(test.status, test.expectedStatus) { + t.Errorf("%s: expected status: %v, got: %v", test.name, test.expectedStatus, test.status) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/BUILD index a50bca09b..2b4bf4564 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/BUILD @@ -10,16 +10,17 @@ go_library( name = "go_default_library", srcs = [ "doc.go", - "replenishment_controller.go", "resource_quota_controller.go", + "resource_quota_monitor.go", ], importpath = "k8s.io/kubernetes/pkg/controller/resourcequota", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/controller:go_default_library", "//pkg/quota:go_default_library", "//pkg/quota/evaluator/core:go_default_library", + "//pkg/quota/generic:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -27,11 +28,12 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/api/meta: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/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", @@ -43,15 +45,12 @@ go_library( go_test( name = "go_default_test", - srcs = [ - "replenishment_controller_test.go", - "resource_quota_controller_test.go", - ], + srcs = ["resource_quota_controller_test.go"], importpath = "k8s.io/kubernetes/pkg/controller/resourcequota", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/controller:go_default_library", + "//pkg/quota:go_default_library", "//pkg/quota/generic:go_default_library", "//pkg/quota/install:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -59,12 +58,12 @@ go_test( "//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", - "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/replenishment_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/replenishment_controller.go deleted file mode 100644 index 5f063e656..000000000 --- a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/replenishment_controller.go +++ /dev/null @@ -1,233 +0,0 @@ -/* -Copyright 2015 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 resourcequota - -import ( - "fmt" - - "github.com/golang/glog" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/clock" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/client-go/informers" - "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/quota/evaluator/core" -) - -// ReplenishmentFunc is a function that is invoked when controller sees a change -// that may require a quota to be replenished (i.e. object deletion, or object moved to terminal state) -type ReplenishmentFunc func(groupKind schema.GroupKind, namespace string, object runtime.Object) - -// ReplenishmentControllerOptions is an options struct that tells a factory -// how to configure a controller that can inform the quota system it should -// replenish quota -type ReplenishmentControllerOptions struct { - // The kind monitored for replenishment - GroupKind schema.GroupKind - // The period that should be used to re-sync the monitored resource - ResyncPeriod controller.ResyncPeriodFunc - // The function to invoke when a change is observed that should trigger - // replenishment - ReplenishmentFunc ReplenishmentFunc -} - -// PodReplenishmentUpdateFunc will replenish if the old pod was quota tracked but the new is not -func PodReplenishmentUpdateFunc(options *ReplenishmentControllerOptions, clock clock.Clock) func(oldObj, newObj interface{}) { - return func(oldObj, newObj interface{}) { - oldPod := oldObj.(*v1.Pod) - newPod := newObj.(*v1.Pod) - if core.QuotaV1Pod(oldPod, clock) && !core.QuotaV1Pod(newPod, clock) { - options.ReplenishmentFunc(options.GroupKind, newPod.Namespace, oldPod) - } - } -} - -// ObjectReplenishmentDeleteFunc will replenish on every delete -func ObjectReplenishmentDeleteFunc(options *ReplenishmentControllerOptions) func(obj interface{}) { - return func(obj interface{}) { - metaObject, err := meta.Accessor(obj) - if err != nil { - tombstone, ok := obj.(cache.DeletedFinalStateUnknown) - if !ok { - glog.Errorf("replenishment controller could not get object from tombstone %+v, could take up to %v before quota is replenished", obj, options.ResyncPeriod()) - utilruntime.HandleError(err) - return - } - metaObject, err = meta.Accessor(tombstone.Obj) - if err != nil { - glog.Errorf("replenishment controller tombstone contained object that is not a meta %+v, could take up to %v before quota is replenished", tombstone.Obj, options.ResyncPeriod()) - utilruntime.HandleError(err) - return - } - } - options.ReplenishmentFunc(options.GroupKind, metaObject.GetNamespace(), nil) - } -} - -// ReplenishmentControllerFactory knows how to build replenishment controllers -type ReplenishmentControllerFactory interface { - // NewController returns a controller configured with the specified options. - // This method is NOT thread-safe. - NewController(options *ReplenishmentControllerOptions) (cache.Controller, error) -} - -// replenishmentControllerFactory implements ReplenishmentControllerFactory -type replenishmentControllerFactory struct { - sharedInformerFactory informers.SharedInformerFactory -} - -// NewReplenishmentControllerFactory returns a factory that knows how to build controllers -// to replenish resources when updated or deleted -func NewReplenishmentControllerFactory(f informers.SharedInformerFactory) ReplenishmentControllerFactory { - return &replenishmentControllerFactory{ - sharedInformerFactory: f, - } -} - -func (r *replenishmentControllerFactory) NewController(options *ReplenishmentControllerOptions) (cache.Controller, error) { - var ( - informer informers.GenericInformer - err error - ) - - switch options.GroupKind { - case api.Kind("Pod"): - informer, err = r.sharedInformerFactory.ForResource(v1.SchemeGroupVersion.WithResource("pods")) - if err != nil { - return nil, err - } - clock := clock.RealClock{} - informer.Informer().AddEventHandlerWithResyncPeriod( - cache.ResourceEventHandlerFuncs{ - UpdateFunc: PodReplenishmentUpdateFunc(options, clock), - DeleteFunc: ObjectReplenishmentDeleteFunc(options), - }, - options.ResyncPeriod(), - ) - case api.Kind("Service"): - informer, err = r.sharedInformerFactory.ForResource(v1.SchemeGroupVersion.WithResource("services")) - if err != nil { - return nil, err - } - informer.Informer().AddEventHandlerWithResyncPeriod( - cache.ResourceEventHandlerFuncs{ - UpdateFunc: ServiceReplenishmentUpdateFunc(options), - DeleteFunc: ObjectReplenishmentDeleteFunc(options), - }, - options.ResyncPeriod(), - ) - case api.Kind("ReplicationController"): - informer, err = r.sharedInformerFactory.ForResource(v1.SchemeGroupVersion.WithResource("replicationcontrollers")) - if err != nil { - return nil, err - } - informer.Informer().AddEventHandlerWithResyncPeriod( - cache.ResourceEventHandlerFuncs{ - DeleteFunc: ObjectReplenishmentDeleteFunc(options), - }, - options.ResyncPeriod(), - ) - case api.Kind("PersistentVolumeClaim"): - informer, err = r.sharedInformerFactory.ForResource(v1.SchemeGroupVersion.WithResource("persistentvolumeclaims")) - if err != nil { - return nil, err - } - informer.Informer().AddEventHandlerWithResyncPeriod( - cache.ResourceEventHandlerFuncs{ - DeleteFunc: ObjectReplenishmentDeleteFunc(options), - }, - options.ResyncPeriod(), - ) - case api.Kind("Secret"): - informer, err = r.sharedInformerFactory.ForResource(v1.SchemeGroupVersion.WithResource("secrets")) - if err != nil { - return nil, err - } - informer.Informer().AddEventHandlerWithResyncPeriod( - cache.ResourceEventHandlerFuncs{ - DeleteFunc: ObjectReplenishmentDeleteFunc(options), - }, - options.ResyncPeriod(), - ) - case api.Kind("ConfigMap"): - informer, err = r.sharedInformerFactory.ForResource(v1.SchemeGroupVersion.WithResource("configmaps")) - if err != nil { - return nil, err - } - informer.Informer().AddEventHandlerWithResyncPeriod( - cache.ResourceEventHandlerFuncs{ - DeleteFunc: ObjectReplenishmentDeleteFunc(options), - }, - options.ResyncPeriod(), - ) - default: - return nil, NewUnhandledGroupKindError(options.GroupKind) - } - return informer.Informer().GetController(), nil -} - -// ServiceReplenishmentUpdateFunc will replenish if the service was quota tracked has changed service type -func ServiceReplenishmentUpdateFunc(options *ReplenishmentControllerOptions) func(oldObj, newObj interface{}) { - return func(oldObj, newObj interface{}) { - oldService := oldObj.(*v1.Service) - newService := newObj.(*v1.Service) - if core.GetQuotaServiceType(oldService) != core.GetQuotaServiceType(newService) { - options.ReplenishmentFunc(options.GroupKind, newService.Namespace, nil) - } - } -} - -type unhandledKindErr struct { - kind schema.GroupKind -} - -func (e unhandledKindErr) Error() string { - return fmt.Sprintf("no replenishment controller available for %s", e.kind) -} - -func NewUnhandledGroupKindError(kind schema.GroupKind) error { - return unhandledKindErr{kind: kind} -} - -func IsUnhandledGroupKindError(err error) bool { - if err == nil { - return false - } - _, ok := err.(unhandledKindErr) - return ok -} - -// UnionReplenishmentControllerFactory iterates through its constituent factories ignoring, UnhandledGroupKindErrors -// returning the first success or failure it hits. If there are no hits either way, it return an UnhandledGroupKind error -type UnionReplenishmentControllerFactory []ReplenishmentControllerFactory - -func (f UnionReplenishmentControllerFactory) NewController(options *ReplenishmentControllerOptions) (cache.Controller, error) { - for _, factory := range f { - controller, err := factory.NewController(options) - if !IsUnhandledGroupKindError(err) { - return controller, err - } - } - - return nil, NewUnhandledGroupKindError(options.GroupKind) -} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/replenishment_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/replenishment_controller_test.go deleted file mode 100644 index 45df8164e..000000000 --- a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/replenishment_controller_test.go +++ /dev/null @@ -1,160 +0,0 @@ -/* -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 resourcequota - -import ( - "testing" - "time" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/clock" - "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/controller" -) - -// testReplenishment lets us test replenishment functions are invoked -type testReplenishment struct { - groupKind schema.GroupKind - namespace string -} - -// mock function that holds onto the last kind that was replenished -func (t *testReplenishment) Replenish(groupKind schema.GroupKind, namespace string, object runtime.Object) { - t.groupKind = groupKind - t.namespace = namespace -} - -func TestPodReplenishmentUpdateFunc(t *testing.T) { - mockReplenish := &testReplenishment{} - options := ReplenishmentControllerOptions{ - GroupKind: api.Kind("Pod"), - ReplenishmentFunc: mockReplenish.Replenish, - ResyncPeriod: controller.NoResyncPeriodFunc, - } - oldPod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{Namespace: "test", Name: "pod"}, - Status: v1.PodStatus{Phase: v1.PodRunning}, - } - newPod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{Namespace: "test", Name: "pod"}, - Status: v1.PodStatus{Phase: v1.PodFailed}, - } - fakeClock := clock.NewFakeClock(time.Now()) - updateFunc := PodReplenishmentUpdateFunc(&options, fakeClock) - updateFunc(oldPod, newPod) - if mockReplenish.groupKind != api.Kind("Pod") { - t.Errorf("Unexpected group kind %v", mockReplenish.groupKind) - } - if mockReplenish.namespace != oldPod.Namespace { - t.Errorf("Unexpected namespace %v", mockReplenish.namespace) - } -} - -func TestObjectReplenishmentDeleteFunc(t *testing.T) { - mockReplenish := &testReplenishment{} - options := ReplenishmentControllerOptions{ - GroupKind: api.Kind("Pod"), - ReplenishmentFunc: mockReplenish.Replenish, - ResyncPeriod: controller.NoResyncPeriodFunc, - } - oldPod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{Namespace: "test", Name: "pod"}, - Status: v1.PodStatus{Phase: v1.PodRunning}, - } - deleteFunc := ObjectReplenishmentDeleteFunc(&options) - deleteFunc(oldPod) - if mockReplenish.groupKind != api.Kind("Pod") { - t.Errorf("Unexpected group kind %v", mockReplenish.groupKind) - } - if mockReplenish.namespace != oldPod.Namespace { - t.Errorf("Unexpected namespace %v", mockReplenish.namespace) - } -} - -func TestServiceReplenishmentUpdateFunc(t *testing.T) { - mockReplenish := &testReplenishment{} - options := ReplenishmentControllerOptions{ - GroupKind: api.Kind("Service"), - ReplenishmentFunc: mockReplenish.Replenish, - ResyncPeriod: controller.NoResyncPeriodFunc, - } - oldService := &v1.Service{ - ObjectMeta: metav1.ObjectMeta{Namespace: "test", Name: "mysvc"}, - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeNodePort, - Ports: []v1.ServicePort{{ - Port: 80, - TargetPort: intstr.FromInt(80), - }}, - }, - } - newService := &v1.Service{ - ObjectMeta: metav1.ObjectMeta{Namespace: "test", Name: "mysvc"}, - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeClusterIP, - Ports: []v1.ServicePort{{ - Port: 80, - TargetPort: intstr.FromInt(80), - }}}, - } - updateFunc := ServiceReplenishmentUpdateFunc(&options) - updateFunc(oldService, newService) - if mockReplenish.groupKind != api.Kind("Service") { - t.Errorf("Unexpected group kind %v", mockReplenish.groupKind) - } - if mockReplenish.namespace != oldService.Namespace { - t.Errorf("Unexpected namespace %v", mockReplenish.namespace) - } - - mockReplenish = &testReplenishment{} - options = ReplenishmentControllerOptions{ - GroupKind: api.Kind("Service"), - ReplenishmentFunc: mockReplenish.Replenish, - ResyncPeriod: controller.NoResyncPeriodFunc, - } - oldService = &v1.Service{ - ObjectMeta: metav1.ObjectMeta{Namespace: "test", Name: "mysvc"}, - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeNodePort, - Ports: []v1.ServicePort{{ - Port: 80, - TargetPort: intstr.FromInt(80), - }}, - }, - } - newService = &v1.Service{ - ObjectMeta: metav1.ObjectMeta{Namespace: "test", Name: "mysvc"}, - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeNodePort, - Ports: []v1.ServicePort{{ - Port: 81, - TargetPort: intstr.FromInt(81), - }}}, - } - updateFunc = ServiceReplenishmentUpdateFunc(&options) - updateFunc(oldService, newService) - if mockReplenish.groupKind == api.Kind("Service") { - t.Errorf("Unexpected group kind %v", mockReplenish.groupKind) - } - if mockReplenish.namespace == oldService.Namespace { - t.Errorf("Unexpected namespace %v", mockReplenish.namespace) - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_controller.go index 43acf9878..7ac8d350a 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_controller.go @@ -18,6 +18,8 @@ package resourcequota import ( "fmt" + "reflect" + "sync" "time" "github.com/golang/glog" @@ -27,21 +29,35 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/discovery" + "k8s.io/client-go/informers" coreinformers "k8s.io/client-go/informers/core/v1" corev1client "k8s.io/client-go/kubernetes/typed/core/v1" corelisters "k8s.io/client-go/listers/core/v1" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/quota" ) +// NamespacedResourcesFunc knows how to discover namespaced resources. +type NamespacedResourcesFunc func() ([]*metav1.APIResourceList, error) + +// ReplenishmentFunc is a signal that a resource changed in specified namespace +// that may require quota to be recalculated. +type ReplenishmentFunc func(groupResource schema.GroupResource, namespace string) + +// InformerFactory is all the quota system needs to interface with informers. +type InformerFactory interface { + ForResource(resource schema.GroupVersionResource) (informers.GenericInformer, error) + Start(stopCh <-chan struct{}) +} + // ResourceQuotaControllerOptions holds options for creating a quota controller type ResourceQuotaControllerOptions struct { // Must have authority to list all quotas, and update quota status @@ -50,15 +66,18 @@ type ResourceQuotaControllerOptions struct { ResourceQuotaInformer coreinformers.ResourceQuotaInformer // Controls full recalculation of quota usage ResyncPeriod controller.ResyncPeriodFunc - // Knows how to calculate usage + // Maintains evaluators that know how to calculate usage for group resource Registry quota.Registry - // Knows how to build controllers that notify replenishment events - ControllerFactory ReplenishmentControllerFactory + // Discover list of supported resources on the server. + DiscoveryFunc NamespacedResourcesFunc + // A function that returns the list of resources to ignore + IgnoredResourcesFunc func() map[schema.GroupResource]struct{} + // InformersStarted knows if informers were started. + InformersStarted <-chan struct{} + // InformerFactory interfaces with informers. + InformerFactory InformerFactory // Controls full resync of objects monitored for replenishment. ReplenishmentResyncPeriod controller.ResyncPeriodFunc - // List of GroupKind objects that should be monitored for replenishment at - // a faster frequency than the quota controller recalculation interval - GroupKindsToReplenish []schema.GroupKind } // ResourceQuotaController is responsible for tracking quota usage status in the system @@ -79,21 +98,25 @@ type ResourceQuotaController struct { resyncPeriod controller.ResyncPeriodFunc // knows how to calculate usage registry quota.Registry - // controllers monitoring to notify for replenishment - replenishmentControllers []cache.Controller + // knows how to monitor all the resources tracked by quota and trigger replenishment + quotaMonitor *QuotaMonitor + // controls the workers that process quotas + // this lock is acquired to control write access to the monitors and ensures that all + // monitors are synced before the controller can process quotas. + workerLock sync.RWMutex } -func NewResourceQuotaController(options *ResourceQuotaControllerOptions) *ResourceQuotaController { +// NewResourceQuotaController creates a quota controller with specified options +func NewResourceQuotaController(options *ResourceQuotaControllerOptions) (*ResourceQuotaController, error) { // build the resource quota controller rq := &ResourceQuotaController{ - rqClient: options.QuotaClient, - rqLister: options.ResourceQuotaInformer.Lister(), - informerSyncedFuncs: []cache.InformerSynced{options.ResourceQuotaInformer.Informer().HasSynced}, - queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "resourcequota_primary"), - missingUsageQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "resourcequota_priority"), - resyncPeriod: options.ResyncPeriod, - registry: options.Registry, - replenishmentControllers: []cache.Controller{}, + rqClient: options.QuotaClient, + rqLister: options.ResourceQuotaInformer.Lister(), + informerSyncedFuncs: []cache.InformerSynced{options.ResourceQuotaInformer.Informer().HasSynced}, + queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "resourcequota_primary"), + missingUsageQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "resourcequota_priority"), + resyncPeriod: options.ResyncPeriod, + registry: options.Registry, } // set the synchronization handler rq.syncHandler = rq.syncResourceQuotaFromKey @@ -125,21 +148,30 @@ func NewResourceQuotaController(options *ResourceQuotaControllerOptions) *Resour rq.resyncPeriod(), ) - for _, groupKindToReplenish := range options.GroupKindsToReplenish { - controllerOptions := &ReplenishmentControllerOptions{ - GroupKind: groupKindToReplenish, - ResyncPeriod: options.ReplenishmentResyncPeriod, - ReplenishmentFunc: rq.replenishQuota, - } - replenishmentController, err := options.ControllerFactory.NewController(controllerOptions) - if err != nil { - glog.Warningf("quota controller unable to replenish %s due to %v, changes only accounted during full resync", groupKindToReplenish, err) - } else { - // make sure we wait for each shared informer's cache to sync - rq.informerSyncedFuncs = append(rq.informerSyncedFuncs, replenishmentController.HasSynced) - } + qm := &QuotaMonitor{ + informersStarted: options.InformersStarted, + informerFactory: options.InformerFactory, + ignoredResources: options.IgnoredResourcesFunc(), + resourceChanges: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "resource_quota_controller_resource_changes"), + resyncPeriod: options.ReplenishmentResyncPeriod, + replenishmentFunc: rq.replenishQuota, + registry: rq.registry, + } + rq.quotaMonitor = qm + + // do initial quota monitor setup + resources, err := GetQuotableResources(options.DiscoveryFunc) + if err != nil { + return nil, err } - return rq + if err = qm.syncMonitors(resources); err != nil { + utilruntime.HandleError(fmt.Errorf("initial monitor sync has error: %v", err)) + } + + // only start quota once all informers synced + rq.informerSyncedFuncs = append(rq.informerSyncedFuncs, qm.IsSynced) + + return rq, nil } // enqueueAll is called at the fullResyncPeriod interval to force a full recalculation of quota usage statistics @@ -189,7 +221,7 @@ func (rq *ResourceQuotaController) addQuota(obj interface{}) { for constraint := range resourceQuota.Status.Hard { if _, usageFound := resourceQuota.Status.Used[constraint]; !usageFound { matchedResources := []api.ResourceName{api.ResourceName(constraint)} - for _, evaluator := range rq.registry.Evaluators() { + for _, evaluator := range rq.registry.List() { if intersection := evaluator.MatchingResources(matchedResources); len(intersection) > 0 { rq.missingUsageQueue.Add(key) return @@ -205,6 +237,10 @@ func (rq *ResourceQuotaController) addQuota(obj interface{}) { // worker runs a worker thread that just dequeues items, processes them, and marks them done. func (rq *ResourceQuotaController) worker(queue workqueue.RateLimitingInterface) func() { workFunc := func() bool { + + rq.workerLock.RLock() + defer rq.workerLock.RUnlock() + key, quit := queue.Get() if quit { return true @@ -238,10 +274,7 @@ func (rq *ResourceQuotaController) Run(workers int, stopCh <-chan struct{}) { glog.Infof("Starting resource quota controller") defer glog.Infof("Shutting down resource quota controller") - // the controllers that replenish other resources to respond rapidly to state changes - for _, replenishmentController := range rq.replenishmentControllers { - go replenishmentController.Run(stopCh) - } + go rq.quotaMonitor.Run(stopCh) if !controller.WaitForCacheSync("resource quota", stopCh, rq.informerSyncedFuncs...) { return @@ -287,7 +320,7 @@ func (rq *ResourceQuotaController) syncResourceQuota(v1ResourceQuota *v1.Resourc dirty := !apiequality.Semantic.DeepEqual(v1ResourceQuota.Spec.Hard, v1ResourceQuota.Status.Hard) resourceQuota := api.ResourceQuota{} - if err := k8s_api_v1.Convert_v1_ResourceQuota_To_api_ResourceQuota(v1ResourceQuota, &resourceQuota, nil); err != nil { + if err := k8s_api_v1.Convert_v1_ResourceQuota_To_core_ResourceQuota(v1ResourceQuota, &resourceQuota, nil); err != nil { return err } @@ -334,7 +367,7 @@ func (rq *ResourceQuotaController) syncResourceQuota(v1ResourceQuota *v1.Resourc // there was a change observed by this controller that requires we update quota if dirty { v1Usage := &v1.ResourceQuota{} - if err := k8s_api_v1.Convert_api_ResourceQuota_To_v1_ResourceQuota(&usage, v1Usage, nil); err != nil { + if err := k8s_api_v1.Convert_core_ResourceQuota_To_v1_ResourceQuota(&usage, v1Usage, nil); err != nil { return err } _, err = rq.rqClient.ResourceQuotas(usage.Namespace).UpdateStatus(v1Usage) @@ -344,11 +377,10 @@ func (rq *ResourceQuotaController) syncResourceQuota(v1ResourceQuota *v1.Resourc } // replenishQuota is a replenishment function invoked by a controller to notify that a quota should be recalculated -func (rq *ResourceQuotaController) replenishQuota(groupKind schema.GroupKind, namespace string, object runtime.Object) { - // check if the quota controller can evaluate this kind, if not, ignore it altogether... - evaluators := rq.registry.Evaluators() - evaluator, found := evaluators[groupKind] - if !found { +func (rq *ResourceQuotaController) replenishQuota(groupResource schema.GroupResource, namespace string) { + // check if the quota controller can evaluate this groupResource, if not, ignore it altogether... + evaluator := rq.registry.Get(groupResource) + if evaluator == nil { return } @@ -370,7 +402,7 @@ func (rq *ResourceQuotaController) replenishQuota(groupKind schema.GroupKind, na for i := range resourceQuotas { resourceQuota := resourceQuotas[i] internalResourceQuota := &api.ResourceQuota{} - if err := k8s_api_v1.Convert_v1_ResourceQuota_To_api_ResourceQuota(resourceQuota, internalResourceQuota, nil); err != nil { + if err := k8s_api_v1.Convert_v1_ResourceQuota_To_core_ResourceQuota(resourceQuota, internalResourceQuota, nil); err != nil { glog.Error(err) continue } @@ -381,3 +413,66 @@ func (rq *ResourceQuotaController) replenishQuota(groupKind schema.GroupKind, na } } } + +// Sync periodically resyncs the controller when new resources are observed from discovery. +func (rq *ResourceQuotaController) Sync(discoveryFunc NamespacedResourcesFunc, period time.Duration, stopCh <-chan struct{}) { + // Something has changed, so track the new state and perform a sync. + oldResources := make(map[schema.GroupVersionResource]struct{}) + wait.Until(func() { + // Get the current resource list from discovery. + newResources, err := GetQuotableResources(discoveryFunc) + if err != nil { + utilruntime.HandleError(err) + return + } + + // Decide whether discovery has reported a change. + if reflect.DeepEqual(oldResources, newResources) { + glog.V(4).Infof("no resource updates from discovery, skipping resource quota sync") + return + } + + // Something has changed, so track the new state and perform a sync. + glog.V(2).Infof("syncing resource quota controller with updated resources from discovery: %v", newResources) + oldResources = newResources + + // Ensure workers are paused to avoid processing events before informers + // have resynced. + rq.workerLock.Lock() + defer rq.workerLock.Unlock() + + // Perform the monitor resync and wait for controllers to report cache sync. + if err := rq.resyncMonitors(newResources); err != nil { + utilruntime.HandleError(fmt.Errorf("failed to sync resource monitors: %v", err)) + return + } + if !controller.WaitForCacheSync("resource quota", stopCh, rq.quotaMonitor.IsSynced) { + utilruntime.HandleError(fmt.Errorf("timed out waiting for quota monitor sync")) + } + }, period, stopCh) +} + +// resyncMonitors starts or stops quota monitors as needed to ensure that all +// (and only) those resources present in the map are monitored. +func (rq *ResourceQuotaController) resyncMonitors(resources map[schema.GroupVersionResource]struct{}) error { + if err := rq.quotaMonitor.syncMonitors(resources); err != nil { + return err + } + rq.quotaMonitor.startMonitors() + return nil +} + +// GetQuotableResources returns all resources that the quota system should recognize. +// It requires a resource supports the following verbs: 'create','list','delete' +func GetQuotableResources(discoveryFunc NamespacedResourcesFunc) (map[schema.GroupVersionResource]struct{}, error) { + possibleResources, err := discoveryFunc() + if err != nil { + return nil, fmt.Errorf("failed to discover resources: %v", err) + } + quotableResources := discovery.FilteredBy(discovery.SupportsAllVerbs{Verbs: []string{"create", "list", "delete"}}, possibleResources) + quotableGroupVersionResources, err := discovery.GroupVersionResources(quotableResources) + if err != nil { + return nil, fmt.Errorf("Failed to parse resources: %v", err) + } + return quotableGroupVersionResources, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_controller_test.go index 3ab763859..dcbbad8b7 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_controller_test.go @@ -17,19 +17,23 @@ limitations under the License. package resourcequota import ( + "fmt" "strings" "testing" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/informers" + "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/client-go/tools/cache" "k8s.io/kubernetes/pkg/controller" + "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/generic" "k8s.io/kubernetes/pkg/quota/install" ) @@ -52,383 +56,249 @@ func getResourceRequirements(requests, limits v1.ResourceList) v1.ResourceRequir return res } -func TestSyncResourceQuota(t *testing.T) { - podList := v1.PodList{ - Items: []v1.Pod{ - { - ObjectMeta: metav1.ObjectMeta{Name: "pod-running", Namespace: "testing"}, - Status: v1.PodStatus{Phase: v1.PodRunning}, - Spec: v1.PodSpec{ - Volumes: []v1.Volume{{Name: "vol"}}, - Containers: []v1.Container{{Name: "ctr", Image: "image", Resources: getResourceRequirements(getResourceList("100m", "1Gi"), getResourceList("", ""))}}, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{Name: "pod-running-2", Namespace: "testing"}, - Status: v1.PodStatus{Phase: v1.PodRunning}, - Spec: v1.PodSpec{ - Volumes: []v1.Volume{{Name: "vol"}}, - Containers: []v1.Container{{Name: "ctr", Image: "image", Resources: getResourceRequirements(getResourceList("100m", "1Gi"), getResourceList("", ""))}}, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{Name: "pod-failed", Namespace: "testing"}, - Status: v1.PodStatus{Phase: v1.PodFailed}, - Spec: v1.PodSpec{ - Volumes: []v1.Volume{{Name: "vol"}}, - Containers: []v1.Container{{Name: "ctr", Image: "image", Resources: getResourceRequirements(getResourceList("100m", "1Gi"), getResourceList("", ""))}}, - }, - }, - }, - } - resourceQuota := v1.ResourceQuota{ - ObjectMeta: metav1.ObjectMeta{Name: "quota", Namespace: "testing"}, - Spec: v1.ResourceQuotaSpec{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("3"), - v1.ResourceMemory: resource.MustParse("100Gi"), - v1.ResourcePods: resource.MustParse("5"), - }, - }, +func mockDiscoveryFunc() ([]*metav1.APIResourceList, error) { + return []*metav1.APIResourceList{}, nil +} + +func mockListerForResourceFunc(listersForResource map[schema.GroupVersionResource]cache.GenericLister) quota.ListerForResourceFunc { + return func(gvr schema.GroupVersionResource) (cache.GenericLister, error) { + lister, found := listersForResource[gvr] + if !found { + return nil, fmt.Errorf("no lister found for resource") + } + return lister, nil } - expectedUsage := v1.ResourceQuota{ - Status: v1.ResourceQuotaStatus{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("3"), - v1.ResourceMemory: resource.MustParse("100Gi"), - v1.ResourcePods: resource.MustParse("5"), - }, - Used: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("200m"), - v1.ResourceMemory: resource.MustParse("2Gi"), - v1.ResourcePods: resource.MustParse("2"), - }, - }, +} + +func newGenericLister(groupResource schema.GroupResource, items []runtime.Object) cache.GenericLister { + store := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{"namespace": cache.MetaNamespaceIndexFunc}) + for _, item := range items { + store.Add(item) } + return cache.NewGenericLister(store, groupResource) +} + +type quotaController struct { + *ResourceQuotaController + stop chan struct{} +} - kubeClient := fake.NewSimpleClientset(&podList, &resourceQuota) +func setupQuotaController(t *testing.T, kubeClient kubernetes.Interface, lister quota.ListerForResourceFunc) quotaController { informerFactory := informers.NewSharedInformerFactory(kubeClient, controller.NoResyncPeriodFunc()) + quotaConfiguration := install.NewQuotaConfigurationForControllers(lister) + alwaysStarted := make(chan struct{}) + close(alwaysStarted) resourceQuotaControllerOptions := &ResourceQuotaControllerOptions{ - QuotaClient: kubeClient.Core(), - ResourceQuotaInformer: informerFactory.Core().V1().ResourceQuotas(), - ResyncPeriod: controller.NoResyncPeriodFunc, - Registry: install.NewRegistry(kubeClient, nil), - GroupKindsToReplenish: []schema.GroupKind{ - api.Kind("Pod"), - api.Kind("Service"), - api.Kind("ReplicationController"), - api.Kind("PersistentVolumeClaim"), - }, - ControllerFactory: NewReplenishmentControllerFactory(informerFactory), + QuotaClient: kubeClient.Core(), + ResourceQuotaInformer: informerFactory.Core().V1().ResourceQuotas(), + ResyncPeriod: controller.NoResyncPeriodFunc, ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc, + IgnoredResourcesFunc: quotaConfiguration.IgnoredResources, + DiscoveryFunc: mockDiscoveryFunc, + Registry: generic.NewRegistry(quotaConfiguration.Evaluators()), + InformersStarted: alwaysStarted, } - quotaController := NewResourceQuotaController(resourceQuotaControllerOptions) - err := quotaController.syncResourceQuota(&resourceQuota) + qc, err := NewResourceQuotaController(resourceQuotaControllerOptions) if err != nil { - t.Fatalf("Unexpected error %v", err) - } - expectedActionSet := sets.NewString( - strings.Join([]string{"list", "pods", ""}, "-"), - strings.Join([]string{"update", "resourcequotas", "status"}, "-"), - ) - actionSet := sets.NewString() - for _, action := range kubeClient.Actions() { - actionSet.Insert(strings.Join([]string{action.GetVerb(), action.GetResource().Resource, action.GetSubresource()}, "-")) - } - if !actionSet.HasAll(expectedActionSet.List()...) { - t.Errorf("Expected actions:\n%v\n but got:\n%v\nDifference:\n%v", expectedActionSet, actionSet, expectedActionSet.Difference(actionSet)) - } - - lastActionIndex := len(kubeClient.Actions()) - 1 - usage := kubeClient.Actions()[lastActionIndex].(core.UpdateAction).GetObject().(*v1.ResourceQuota) - - // ensure hard and used limits are what we expected - for k, v := range expectedUsage.Status.Hard { - actual := usage.Status.Hard[k] - actualValue := actual.String() - expectedValue := v.String() - if expectedValue != actualValue { - t.Errorf("Usage Hard: Key: %v, Expected: %v, Actual: %v", k, expectedValue, actualValue) - } - } - for k, v := range expectedUsage.Status.Used { - actual := usage.Status.Used[k] - actualValue := actual.String() - expectedValue := v.String() - if expectedValue != actualValue { - t.Errorf("Usage Used: Key: %v, Expected: %v, Actual: %v", k, expectedValue, actualValue) - } + t.Fatal(err) } + stop := make(chan struct{}) + go informerFactory.Start(stop) + return quotaController{qc, stop} } -func TestSyncResourceQuotaSpecChange(t *testing.T) { - resourceQuota := v1.ResourceQuota{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "default", - Name: "rq", - }, - Spec: v1.ResourceQuotaSpec{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("4"), +func newTestPods() []runtime.Object { + return []runtime.Object{ + &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "pod-running", Namespace: "testing"}, + Status: v1.PodStatus{Phase: v1.PodRunning}, + Spec: v1.PodSpec{ + Volumes: []v1.Volume{{Name: "vol"}}, + Containers: []v1.Container{{Name: "ctr", Image: "image", Resources: getResourceRequirements(getResourceList("100m", "1Gi"), getResourceList("", ""))}}, }, }, - Status: v1.ResourceQuotaStatus{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("3"), - }, - Used: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("0"), + &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "pod-running-2", Namespace: "testing"}, + Status: v1.PodStatus{Phase: v1.PodRunning}, + Spec: v1.PodSpec{ + Volumes: []v1.Volume{{Name: "vol"}}, + Containers: []v1.Container{{Name: "ctr", Image: "image", Resources: getResourceRequirements(getResourceList("100m", "1Gi"), getResourceList("", ""))}}, }, }, - } - - expectedUsage := v1.ResourceQuota{ - Status: v1.ResourceQuotaStatus{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("4"), + &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "pod-failed", Namespace: "testing"}, + Status: v1.PodStatus{Phase: v1.PodFailed}, + Spec: v1.PodSpec{ + Volumes: []v1.Volume{{Name: "vol"}}, + Containers: []v1.Container{{Name: "ctr", Image: "image", Resources: getResourceRequirements(getResourceList("100m", "1Gi"), getResourceList("", ""))}}, }, - Used: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("0"), - }, - }, - } - - kubeClient := fake.NewSimpleClientset(&resourceQuota) - informerFactory := informers.NewSharedInformerFactory(kubeClient, controller.NoResyncPeriodFunc()) - resourceQuotaControllerOptions := &ResourceQuotaControllerOptions{ - QuotaClient: kubeClient.Core(), - ResourceQuotaInformer: informerFactory.Core().V1().ResourceQuotas(), - ResyncPeriod: controller.NoResyncPeriodFunc, - Registry: install.NewRegistry(kubeClient, nil), - GroupKindsToReplenish: []schema.GroupKind{ - api.Kind("Pod"), - api.Kind("Service"), - api.Kind("ReplicationController"), - api.Kind("PersistentVolumeClaim"), }, - ControllerFactory: NewReplenishmentControllerFactory(informerFactory), - ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc, - } - quotaController := NewResourceQuotaController(resourceQuotaControllerOptions) - err := quotaController.syncResourceQuota(&resourceQuota) - if err != nil { - t.Fatalf("Unexpected error %v", err) - } - - expectedActionSet := sets.NewString( - strings.Join([]string{"list", "pods", ""}, "-"), - strings.Join([]string{"update", "resourcequotas", "status"}, "-"), - ) - actionSet := sets.NewString() - for _, action := range kubeClient.Actions() { - actionSet.Insert(strings.Join([]string{action.GetVerb(), action.GetResource().Resource, action.GetSubresource()}, "-")) - } - if !actionSet.HasAll(expectedActionSet.List()...) { - t.Errorf("Expected actions:\n%v\n but got:\n%v\nDifference:\n%v", expectedActionSet, actionSet, expectedActionSet.Difference(actionSet)) } - - lastActionIndex := len(kubeClient.Actions()) - 1 - usage := kubeClient.Actions()[lastActionIndex].(core.UpdateAction).GetObject().(*v1.ResourceQuota) - - // ensure hard and used limits are what we expected - for k, v := range expectedUsage.Status.Hard { - actual := usage.Status.Hard[k] - actualValue := actual.String() - expectedValue := v.String() - if expectedValue != actualValue { - t.Errorf("Usage Hard: Key: %v, Expected: %v, Actual: %v", k, expectedValue, actualValue) - } - } - for k, v := range expectedUsage.Status.Used { - actual := usage.Status.Used[k] - actualValue := actual.String() - expectedValue := v.String() - if expectedValue != actualValue { - t.Errorf("Usage Used: Key: %v, Expected: %v, Actual: %v", k, expectedValue, actualValue) - } - } - } -func TestSyncResourceQuotaSpecHardChange(t *testing.T) { - resourceQuota := v1.ResourceQuota{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "default", - Name: "rq", - }, - Spec: v1.ResourceQuotaSpec{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("4"), + +func TestSyncResourceQuota(t *testing.T) { + testCases := map[string]struct { + gvr schema.GroupVersionResource + items []runtime.Object + quota v1.ResourceQuota + status v1.ResourceQuotaStatus + expectedActionSet sets.String + }{ + "pods": { + gvr: v1.SchemeGroupVersion.WithResource("pods"), + quota: v1.ResourceQuota{ + ObjectMeta: metav1.ObjectMeta{Name: "quota", Namespace: "testing"}, + Spec: v1.ResourceQuotaSpec{ + Hard: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("3"), + v1.ResourceMemory: resource.MustParse("100Gi"), + v1.ResourcePods: resource.MustParse("5"), + }, + }, + }, + status: v1.ResourceQuotaStatus{ + Hard: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("3"), + v1.ResourceMemory: resource.MustParse("100Gi"), + v1.ResourcePods: resource.MustParse("5"), + }, + Used: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("200m"), + v1.ResourceMemory: resource.MustParse("2Gi"), + v1.ResourcePods: resource.MustParse("2"), + }, }, + expectedActionSet: sets.NewString( + strings.Join([]string{"update", "resourcequotas", "status"}, "-"), + ), + items: newTestPods(), }, - Status: v1.ResourceQuotaStatus{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("3"), - v1.ResourceMemory: resource.MustParse("1Gi"), + "quota-spec-hard-updated": { + gvr: v1.SchemeGroupVersion.WithResource("pods"), + quota: v1.ResourceQuota{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "default", + Name: "rq", + }, + Spec: v1.ResourceQuotaSpec{ + Hard: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("4"), + }, + }, + Status: v1.ResourceQuotaStatus{ + Hard: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("3"), + }, + Used: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("0"), + }, + }, }, - Used: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("0"), - v1.ResourceMemory: resource.MustParse("0"), + status: v1.ResourceQuotaStatus{ + Hard: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("4"), + }, + Used: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("0"), + }, }, + expectedActionSet: sets.NewString( + strings.Join([]string{"update", "resourcequotas", "status"}, "-"), + ), + items: []runtime.Object{}, }, - } - - expectedUsage := v1.ResourceQuota{ - Status: v1.ResourceQuotaStatus{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("4"), + "quota-unchanged": { + gvr: v1.SchemeGroupVersion.WithResource("pods"), + quota: v1.ResourceQuota{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "default", + Name: "rq", + }, + Spec: v1.ResourceQuotaSpec{ + Hard: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("4"), + }, + }, + Status: v1.ResourceQuotaStatus{ + Hard: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("0"), + }, + }, }, - Used: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("0"), + status: v1.ResourceQuotaStatus{ + Hard: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("4"), + }, + Used: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("0"), + }, }, + expectedActionSet: sets.NewString(), + items: []runtime.Object{}, }, } - kubeClient := fake.NewSimpleClientset(&resourceQuota) - informerFactory := informers.NewSharedInformerFactory(kubeClient, controller.NoResyncPeriodFunc()) - resourceQuotaControllerOptions := &ResourceQuotaControllerOptions{ - QuotaClient: kubeClient.Core(), - ResourceQuotaInformer: informerFactory.Core().V1().ResourceQuotas(), - ResyncPeriod: controller.NoResyncPeriodFunc, - Registry: install.NewRegistry(kubeClient, nil), - GroupKindsToReplenish: []schema.GroupKind{ - api.Kind("Pod"), - api.Kind("Service"), - api.Kind("ReplicationController"), - api.Kind("PersistentVolumeClaim"), - }, - ControllerFactory: NewReplenishmentControllerFactory(informerFactory), - ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc, - } - quotaController := NewResourceQuotaController(resourceQuotaControllerOptions) - err := quotaController.syncResourceQuota(&resourceQuota) - if err != nil { - t.Fatalf("Unexpected error %v", err) - } - - expectedActionSet := sets.NewString( - strings.Join([]string{"list", "pods", ""}, "-"), - strings.Join([]string{"update", "resourcequotas", "status"}, "-"), - ) - actionSet := sets.NewString() - for _, action := range kubeClient.Actions() { - actionSet.Insert(strings.Join([]string{action.GetVerb(), action.GetResource().Resource, action.GetSubresource()}, "-")) - } - if !actionSet.HasAll(expectedActionSet.List()...) { - t.Errorf("Expected actions:\n%v\n but got:\n%v\nDifference:\n%v", expectedActionSet, actionSet, expectedActionSet.Difference(actionSet)) - } - - lastActionIndex := len(kubeClient.Actions()) - 1 - usage := kubeClient.Actions()[lastActionIndex].(core.UpdateAction).GetObject().(*v1.ResourceQuota) - - // ensure hard and used limits are what we expected - for k, v := range expectedUsage.Status.Hard { - actual := usage.Status.Hard[k] - actualValue := actual.String() - expectedValue := v.String() - if expectedValue != actualValue { - t.Errorf("Usage Hard: Key: %v, Expected: %v, Actual: %v", k, expectedValue, actualValue) + for testName, testCase := range testCases { + kubeClient := fake.NewSimpleClientset(&testCase.quota) + listersForResourceConfig := map[schema.GroupVersionResource]cache.GenericLister{ + testCase.gvr: newGenericLister(testCase.gvr.GroupResource(), testCase.items), } - } - for k, v := range expectedUsage.Status.Used { - actual := usage.Status.Used[k] - actualValue := actual.String() - expectedValue := v.String() - if expectedValue != actualValue { - t.Errorf("Usage Used: Key: %v, Expected: %v, Actual: %v", k, expectedValue, actualValue) - } - } + qc := setupQuotaController(t, kubeClient, mockListerForResourceFunc(listersForResourceConfig)) + defer close(qc.stop) - // ensure usage hard and used are are synced with spec hard, not have dirty resource - for k, v := range usage.Status.Hard { - if k == v1.ResourceMemory { - t.Errorf("Unexpected Usage Hard: Key: %v, Value: %v", k, v.String()) + if err := qc.syncResourceQuota(&testCase.quota); err != nil { + t.Fatalf("test: %s, unexpected error: %v", testName, err) } - } - for k, v := range usage.Status.Used { - if k == v1.ResourceMemory { - t.Errorf("Unexpected Usage Used: Key: %v, Value: %v", k, v.String()) + actionSet := sets.NewString() + for _, action := range kubeClient.Actions() { + actionSet.Insert(strings.Join([]string{action.GetVerb(), action.GetResource().Resource, action.GetSubresource()}, "-")) + } + if !actionSet.HasAll(testCase.expectedActionSet.List()...) { + t.Errorf("test: %s,\nExpected actions:\n%v\n but got:\n%v\nDifference:\n%v", testName, testCase.expectedActionSet, actionSet, testCase.expectedActionSet.Difference(actionSet)) } - } -} -func TestSyncResourceQuotaNoChange(t *testing.T) { - resourceQuota := v1.ResourceQuota{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "default", - Name: "rq", - }, - Spec: v1.ResourceQuotaSpec{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("4"), - }, - }, - Status: v1.ResourceQuotaStatus{ - Hard: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("4"), - }, - Used: v1.ResourceList{ - v1.ResourceCPU: resource.MustParse("0"), - }, - }, - } + lastActionIndex := len(kubeClient.Actions()) - 1 + usage := kubeClient.Actions()[lastActionIndex].(core.UpdateAction).GetObject().(*v1.ResourceQuota) - kubeClient := fake.NewSimpleClientset(&v1.PodList{}, &resourceQuota) - informerFactory := informers.NewSharedInformerFactory(kubeClient, controller.NoResyncPeriodFunc()) - resourceQuotaControllerOptions := &ResourceQuotaControllerOptions{ - QuotaClient: kubeClient.Core(), - ResourceQuotaInformer: informerFactory.Core().V1().ResourceQuotas(), - ResyncPeriod: controller.NoResyncPeriodFunc, - Registry: install.NewRegistry(kubeClient, nil), - GroupKindsToReplenish: []schema.GroupKind{ - api.Kind("Pod"), - api.Kind("Service"), - api.Kind("ReplicationController"), - api.Kind("PersistentVolumeClaim"), - }, - ControllerFactory: NewReplenishmentControllerFactory(informerFactory), - ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc, - } - quotaController := NewResourceQuotaController(resourceQuotaControllerOptions) - err := quotaController.syncResourceQuota(&resourceQuota) - if err != nil { - t.Fatalf("Unexpected error %v", err) - } - expectedActionSet := sets.NewString( - strings.Join([]string{"list", "pods", ""}, "-"), - ) - actionSet := sets.NewString() - for _, action := range kubeClient.Actions() { - actionSet.Insert(strings.Join([]string{action.GetVerb(), action.GetResource().Resource, action.GetSubresource()}, "-")) - } - if !actionSet.HasAll(expectedActionSet.List()...) { - t.Errorf("Expected actions:\n%v\n but got:\n%v\nDifference:\n%v", expectedActionSet, actionSet, expectedActionSet.Difference(actionSet)) + // ensure usage is as expected + if len(usage.Status.Hard) != len(testCase.status.Hard) { + t.Errorf("test: %s, status hard lengths do not match", testName) + } + if len(usage.Status.Used) != len(testCase.status.Used) { + t.Errorf("test: %s, status used lengths do not match", testName) + } + for k, v := range testCase.status.Hard { + actual := usage.Status.Hard[k] + actualValue := actual.String() + expectedValue := v.String() + if expectedValue != actualValue { + t.Errorf("test: %s, Usage Hard: Key: %v, Expected: %v, Actual: %v", testName, k, expectedValue, actualValue) + } + } + for k, v := range testCase.status.Used { + actual := usage.Status.Used[k] + actualValue := actual.String() + expectedValue := v.String() + if expectedValue != actualValue { + t.Errorf("test: %s, Usage Used: Key: %v, Expected: %v, Actual: %v", testName, k, expectedValue, actualValue) + } + } } } func TestAddQuota(t *testing.T) { kubeClient := fake.NewSimpleClientset() - informerFactory := informers.NewSharedInformerFactory(kubeClient, controller.NoResyncPeriodFunc()) - resourceQuotaControllerOptions := &ResourceQuotaControllerOptions{ - QuotaClient: kubeClient.Core(), - ResourceQuotaInformer: informerFactory.Core().V1().ResourceQuotas(), - ResyncPeriod: controller.NoResyncPeriodFunc, - Registry: install.NewRegistry(kubeClient, nil), - GroupKindsToReplenish: []schema.GroupKind{ - api.Kind("Pod"), - api.Kind("ReplicationController"), - api.Kind("PersistentVolumeClaim"), - }, - ControllerFactory: NewReplenishmentControllerFactory(informerFactory), - ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc, + gvr := v1.SchemeGroupVersion.WithResource("pods") + listersForResourceConfig := map[schema.GroupVersionResource]cache.GenericLister{ + gvr: newGenericLister(gvr.GroupResource(), newTestPods()), } - quotaController := NewResourceQuotaController(resourceQuotaControllerOptions) - delete(quotaController.registry.(*generic.GenericRegistry).InternalEvaluators, api.Kind("Service")) + qc := setupQuotaController(t, kubeClient, mockListerForResourceFunc(listersForResourceConfig)) + defer close(qc.stop) testCases := []struct { - name string - + name string quota *v1.ResourceQuota expectedPriority bool }{ @@ -491,7 +361,7 @@ func TestAddQuota(t *testing.T) { }, }, { - name: "status, missing usage, but don't care", + name: "status, missing usage, but don't care (no informer)", expectedPriority: false, quota: &v1.ResourceQuota{ ObjectMeta: metav1.ObjectMeta{ @@ -500,12 +370,12 @@ func TestAddQuota(t *testing.T) { }, Spec: v1.ResourceQuotaSpec{ Hard: v1.ResourceList{ - v1.ResourceServices: resource.MustParse("4"), + "count/foobars.example.com": resource.MustParse("4"), }, }, Status: v1.ResourceQuotaStatus{ Hard: v1.ResourceList{ - v1.ResourceServices: resource.MustParse("4"), + "count/foobars.example.com": resource.MustParse("4"), }, }, }, @@ -536,30 +406,29 @@ func TestAddQuota(t *testing.T) { } for _, tc := range testCases { - quotaController.addQuota(tc.quota) + qc.addQuota(tc.quota) if tc.expectedPriority { - if e, a := 1, quotaController.missingUsageQueue.Len(); e != a { + if e, a := 1, qc.missingUsageQueue.Len(); e != a { t.Errorf("%s: expected %v, got %v", tc.name, e, a) } - if e, a := 0, quotaController.queue.Len(); e != a { + if e, a := 0, qc.queue.Len(); e != a { t.Errorf("%s: expected %v, got %v", tc.name, e, a) } } else { - if e, a := 0, quotaController.missingUsageQueue.Len(); e != a { + if e, a := 0, qc.missingUsageQueue.Len(); e != a { t.Errorf("%s: expected %v, got %v", tc.name, e, a) } - if e, a := 1, quotaController.queue.Len(); e != a { + if e, a := 1, qc.queue.Len(); e != a { t.Errorf("%s: expected %v, got %v", tc.name, e, a) } } - - for quotaController.missingUsageQueue.Len() > 0 { - key, _ := quotaController.missingUsageQueue.Get() - quotaController.missingUsageQueue.Done(key) + for qc.missingUsageQueue.Len() > 0 { + key, _ := qc.missingUsageQueue.Get() + qc.missingUsageQueue.Done(key) } - for quotaController.queue.Len() > 0 { - key, _ := quotaController.queue.Get() - quotaController.queue.Done(key) + for qc.queue.Len() > 0 { + key, _ := qc.queue.Get() + qc.queue.Done(key) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_monitor.go b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_monitor.go new file mode 100644 index 000000000..e5d6dc593 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_monitor.go @@ -0,0 +1,341 @@ +/* +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 resourcequota + +import ( + "fmt" + "sync" + "time" + + "github.com/golang/glog" + + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/clock" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/workqueue" + "k8s.io/kubernetes/pkg/controller" + "k8s.io/kubernetes/pkg/quota" + "k8s.io/kubernetes/pkg/quota/evaluator/core" + "k8s.io/kubernetes/pkg/quota/generic" +) + +type eventType int + +func (e eventType) String() string { + switch e { + case addEvent: + return "add" + case updateEvent: + return "update" + case deleteEvent: + return "delete" + default: + return fmt.Sprintf("unknown(%d)", int(e)) + } +} + +const ( + addEvent eventType = iota + updateEvent + deleteEvent +) + +type event struct { + eventType eventType + obj interface{} + oldObj interface{} + gvr schema.GroupVersionResource +} + +type QuotaMonitor struct { + // each monitor list/watches a resource and determines if we should replenish quota + monitors monitors + monitorLock sync.Mutex + // informersStarted is closed after after all of the controllers have been initialized and are running. + // After that it is safe to start them here, before that it is not. + informersStarted <-chan struct{} + + // stopCh drives shutdown. If it is nil, it indicates that Run() has not been + // called yet. If it is non-nil, then when closed it indicates everything + // should shut down. + // + // This channel is also protected by monitorLock. + stopCh <-chan struct{} + + // monitors are the producer of the resourceChanges queue + resourceChanges workqueue.RateLimitingInterface + + // interfaces with informers + informerFactory InformerFactory + + // list of resources to ignore + ignoredResources map[schema.GroupResource]struct{} + + // The period that should be used to re-sync the monitored resource + resyncPeriod controller.ResyncPeriodFunc + + // callback to alert that a change may require quota recalculation + replenishmentFunc ReplenishmentFunc + + // maintains list of evaluators + registry quota.Registry +} + +// monitor runs a Controller with a local stop channel. +type monitor struct { + controller cache.Controller + + // stopCh stops Controller. If stopCh is nil, the monitor is considered to be + // not yet started. + stopCh chan struct{} +} + +// Run is intended to be called in a goroutine. Multiple calls of this is an +// error. +func (m *monitor) Run() { + m.controller.Run(m.stopCh) +} + +type monitors map[schema.GroupVersionResource]*monitor + +func (qm *QuotaMonitor) controllerFor(resource schema.GroupVersionResource) (cache.Controller, error) { + // TODO: pass this down + clock := clock.RealClock{} + handlers := cache.ResourceEventHandlerFuncs{ + UpdateFunc: func(oldObj, newObj interface{}) { + // TODO: leaky abstraction! live w/ it for now, but should pass down an update filter func. + // we only want to queue the updates we care about though as too much noise will overwhelm queue. + notifyUpdate := false + switch resource.GroupResource() { + case schema.GroupResource{Resource: "pods"}: + oldPod := oldObj.(*v1.Pod) + newPod := newObj.(*v1.Pod) + notifyUpdate = core.QuotaV1Pod(oldPod, clock) && !core.QuotaV1Pod(newPod, clock) + case schema.GroupResource{Resource: "services"}: + oldService := oldObj.(*v1.Service) + newService := newObj.(*v1.Service) + notifyUpdate = core.GetQuotaServiceType(oldService) != core.GetQuotaServiceType(newService) + } + if notifyUpdate { + event := &event{ + eventType: updateEvent, + obj: newObj, + oldObj: oldObj, + gvr: resource, + } + qm.resourceChanges.Add(event) + } + }, + DeleteFunc: func(obj interface{}) { + // delta fifo may wrap the object in a cache.DeletedFinalStateUnknown, unwrap it + if deletedFinalStateUnknown, ok := obj.(cache.DeletedFinalStateUnknown); ok { + obj = deletedFinalStateUnknown.Obj + } + event := &event{ + eventType: deleteEvent, + obj: obj, + gvr: resource, + } + qm.resourceChanges.Add(event) + }, + } + shared, err := qm.informerFactory.ForResource(resource) + if err == nil { + glog.V(4).Infof("QuotaMonitor using a shared informer for resource %q", resource.String()) + shared.Informer().AddEventHandlerWithResyncPeriod(handlers, qm.resyncPeriod()) + return shared.Informer().GetController(), nil + } + glog.V(4).Infof("QuotaMonitor unable to use a shared informer for resource %q: %v", resource.String(), err) + + // TODO: if we can share storage with garbage collector, it may make sense to support other resources + // until that time, aggregated api servers will have to run their own controller to reconcile their own quota. + return nil, fmt.Errorf("unable to monitor quota for resource %q", resource.String()) +} + +// syncMonitors rebuilds the monitor set according to the supplied resources, +// creating or deleting monitors as necessary. It will return any error +// encountered, but will make an attempt to create a monitor for each resource +// instead of immediately exiting on an error. It may be called before or after +// Run. Monitors are NOT started as part of the sync. To ensure all existing +// monitors are started, call startMonitors. +func (qm *QuotaMonitor) syncMonitors(resources map[schema.GroupVersionResource]struct{}) error { + qm.monitorLock.Lock() + defer qm.monitorLock.Unlock() + + toRemove := qm.monitors + if toRemove == nil { + toRemove = monitors{} + } + current := monitors{} + errs := []error{} + kept := 0 + added := 0 + for resource := range resources { + if _, ok := qm.ignoredResources[resource.GroupResource()]; ok { + continue + } + if m, ok := toRemove[resource]; ok { + current[resource] = m + delete(toRemove, resource) + kept++ + continue + } + c, err := qm.controllerFor(resource) + if err != nil { + errs = append(errs, fmt.Errorf("couldn't start monitor for resource %q: %v", resource, err)) + continue + } + + // check if we need to create an evaluator for this resource (if none previously registered) + evaluator := qm.registry.Get(resource.GroupResource()) + if evaluator == nil { + listerFunc := generic.ListerFuncForResourceFunc(qm.informerFactory.ForResource) + listResourceFunc := generic.ListResourceUsingListerFunc(listerFunc, resource) + evaluator = generic.NewObjectCountEvaluator(false, resource.GroupResource(), listResourceFunc, "") + qm.registry.Add(evaluator) + glog.Infof("QuotaMonitor created object count evaluator for %s", resource.GroupResource()) + } + + // track the monitor + current[resource] = &monitor{controller: c} + added++ + } + qm.monitors = current + + for _, monitor := range toRemove { + if monitor.stopCh != nil { + close(monitor.stopCh) + } + } + + glog.V(4).Infof("quota synced monitors; added %d, kept %d, removed %d", added, kept, len(toRemove)) + // NewAggregate returns nil if errs is 0-length + return utilerrors.NewAggregate(errs) +} + +// startMonitors ensures the current set of monitors are running. Any newly +// started monitors will also cause shared informers to be started. +// +// If called before Run, startMonitors does nothing (as there is no stop channel +// to support monitor/informer execution). +func (qm *QuotaMonitor) startMonitors() { + qm.monitorLock.Lock() + defer qm.monitorLock.Unlock() + + if qm.stopCh == nil { + return + } + + // we're waiting until after the informer start that happens once all the controllers are initialized. This ensures + // that they don't get unexpected events on their work queues. + <-qm.informersStarted + + monitors := qm.monitors + started := 0 + for _, monitor := range monitors { + if monitor.stopCh == nil { + monitor.stopCh = make(chan struct{}) + qm.informerFactory.Start(qm.stopCh) + go monitor.Run() + started++ + } + } + glog.V(4).Infof("QuotaMonitor started %d new monitors, %d currently running", started, len(monitors)) +} + +// IsSynced returns true if any monitors exist AND all those monitors' +// controllers HasSynced functions return true. This means IsSynced could return +// true at one time, and then later return false if all monitors were +// reconstructed. +func (qm *QuotaMonitor) IsSynced() bool { + qm.monitorLock.Lock() + defer qm.monitorLock.Unlock() + + if len(qm.monitors) == 0 { + return false + } + + for _, monitor := range qm.monitors { + if !monitor.controller.HasSynced() { + return false + } + } + return true +} + +// Run sets the stop channel and starts monitor execution until stopCh is +// closed. Any running monitors will be stopped before Run returns. +func (qm *QuotaMonitor) Run(stopCh <-chan struct{}) { + glog.Infof("QuotaMonitor running") + defer glog.Infof("QuotaMonitor stopping") + + // Set up the stop channel. + qm.monitorLock.Lock() + qm.stopCh = stopCh + qm.monitorLock.Unlock() + + // Start monitors and begin change processing until the stop channel is + // closed. + qm.startMonitors() + wait.Until(qm.runProcessResourceChanges, 1*time.Second, stopCh) + + // Stop any running monitors. + qm.monitorLock.Lock() + defer qm.monitorLock.Unlock() + monitors := qm.monitors + stopped := 0 + for _, monitor := range monitors { + if monitor.stopCh != nil { + stopped++ + close(monitor.stopCh) + } + } + glog.Infof("QuotaMonitor stopped %d of %d monitors", stopped, len(monitors)) +} + +func (qm *QuotaMonitor) runProcessResourceChanges() { + for qm.processResourceChanges() { + } +} + +// Dequeueing an event from resourceChanges to process +func (qm *QuotaMonitor) processResourceChanges() bool { + item, quit := qm.resourceChanges.Get() + if quit { + return false + } + defer qm.resourceChanges.Done(item) + event, ok := item.(*event) + if !ok { + utilruntime.HandleError(fmt.Errorf("expect a *event, got %v", item)) + return true + } + obj := event.obj + accessor, err := meta.Accessor(obj) + if err != nil { + utilruntime.HandleError(fmt.Errorf("cannot access obj: %v", err)) + return true + } + glog.V(4).Infof("QuotaMonitor process object: %s, namespace %s, name %s, uid %s, event type %v", event.gvr.String(), accessor.GetNamespace(), accessor.GetName(), string(accessor.GetUID()), event.eventType) + qm.replenishmentFunc(event.gvr.GroupResource(), accessor.GetNamespace()) + return true +} diff --git a/vendor/k8s.io/kubernetes/pkg/controller/route/route_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/route/route_controller.go index bb6995d77..9a399a027 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/route/route_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/route/route_controller.go @@ -66,8 +66,8 @@ type RouteController struct { } func New(routes cloudprovider.Routes, kubeClient clientset.Interface, nodeInformer coreinformers.NodeInformer, clusterName string, clusterCIDR *net.IPNet) *RouteController { - if kubeClient != nil && kubeClient.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("route_controller", kubeClient.Core().RESTClient().GetRateLimiter()) + if kubeClient != nil && kubeClient.CoreV1().RESTClient().GetRateLimiter() != nil { + metrics.RegisterMetricAndTrackRateLimiterUsage("route_controller", kubeClient.CoreV1().RESTClient().GetRateLimiter()) } if clusterCIDR == nil { @@ -75,7 +75,8 @@ func New(routes cloudprovider.Routes, kubeClient clientset.Interface, nodeInform } eventBroadcaster := record.NewBroadcaster() - recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "route-controller"}) + eventBroadcaster.StartLogging(glog.Infof) + recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "route_controller"}) rc := &RouteController{ routes: routes, @@ -102,7 +103,7 @@ func (rc *RouteController) Run(stopCh <-chan struct{}, syncPeriod time.Duration) } if rc.broadcaster != nil { - rc.broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(rc.kubeClient.Core().RESTClient()).Events("")}) + rc.broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(rc.kubeClient.CoreV1().RESTClient()).Events("")}) } // TODO: If we do just the full Resync every 5 minutes (default value) @@ -114,7 +115,7 @@ func (rc *RouteController) Run(stopCh <-chan struct{}, syncPeriod time.Duration) if err := rc.reconcileNodeRoutes(); err != nil { glog.Errorf("Couldn't reconcile node routes: %v", err) } - }, syncPeriod, wait.NeverStop) + }, syncPeriod, stopCh) <-stopCh } @@ -254,7 +255,7 @@ func (rc *RouteController) updateNetworkingCondition(nodeName types.NodeName, ro glog.Errorf("Error updating node %s: %v", nodeName, err) return err } - glog.Errorf("Error updating node %s, retrying: %v", nodeName, err) + glog.V(4).Infof("Error updating node %s, retrying: %v", nodeName, err) } glog.Errorf("Error updating node %s: %v", nodeName, err) return err diff --git a/vendor/k8s.io/kubernetes/pkg/controller/service/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/service/BUILD index 8e37fd961..cfb191f9c 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/service/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/service/BUILD @@ -14,15 +14,17 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/service", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", + "//pkg/features:go_default_library", "//pkg/util/metrics:go_default_library", "//vendor/github.com/golang/glog: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/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/service/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/service/OWNERS index fcaf26466..d1170c74d 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/service/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/controller/service/OWNERS @@ -3,3 +3,8 @@ reviewers: - MrHohn - thockin - matchstick +approvers: +- bowei +- MrHohn +- thockin +- matchstick diff --git a/vendor/k8s.io/kubernetes/pkg/controller/service/service_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/service/service_controller.go index 0f7c1f686..2b2ff2be8 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/service/service_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/service/service_controller.go @@ -29,6 +29,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" + utilfeature "k8s.io/apiserver/pkg/util/feature" coreinformers "k8s.io/client-go/informers/core/v1" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/scheme" @@ -37,9 +38,10 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" "k8s.io/client-go/util/workqueue" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller" + kubefeatures "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/util/metrics" ) @@ -69,7 +71,7 @@ const ( // LabelNodeRoleExcludeBalancer specifies that the node should be // exclude from load balancers created by a cloud provider. - LabelNodeRoleExcludeBalancer = "alpha.node.role.kubernetes.io/exclude-balancer" + LabelNodeRoleExcludeBalancer = "alpha.service-controller.kubernetes.io/exclude-balancer" ) type cachedService struct { @@ -112,12 +114,14 @@ func New( clusterName string, ) (*ServiceController, error) { broadcaster := record.NewBroadcaster() - broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.Core().RESTClient()).Events("")}) - recorder := broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "service-controller"}) broadcaster.StartLogging(glog.Infof) + broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) + recorder := broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "service-controller"}) - if kubeClient != nil && kubeClient.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("service_controller", kubeClient.Core().RESTClient().GetRateLimiter()) + if kubeClient != nil && kubeClient.CoreV1().RESTClient().GetRateLimiter() != nil { + if err := metrics.RegisterMetricAndTrackRateLimiterUsage("service_controller", kubeClient.CoreV1().RESTClient().GetRateLimiter()); err != nil { + return nil, err + } } s := &ServiceController{ @@ -244,15 +248,17 @@ func (s *ServiceController) processServiceUpdate(cachedService *cachedService, s err, retry := s.createLoadBalancerIfNeeded(key, service) if err != nil { message := "Error creating load balancer" + var retryToReturn time.Duration if retry { message += " (will retry): " + retryToReturn = cachedService.nextRetryDelay() } else { message += " (will not retry): " + retryToReturn = doNotRetry } message += err.Error() s.eventRecorder.Event(service, v1.EventTypeWarning, "CreatingLoadBalancerFailed", message) - - return err, cachedService.nextRetryDelay() + return err, retryToReturn } // Always update the cache upon success. // NOTE: Since we update the cached service if and only if we successfully @@ -325,7 +331,7 @@ func (s *ServiceController) createLoadBalancerIfNeeded(key string, service *v1.S func (s *ServiceController) persistUpdate(service *v1.Service) error { var err error for i := 0; i < clientRetryCount; i++ { - _, err = s.kubeClient.Core().Services(service.Namespace).UpdateStatus(service) + _, err = s.kubeClient.CoreV1().Services(service.Namespace).UpdateStatus(service) if err == nil { return nil } @@ -356,6 +362,11 @@ func (s *ServiceController) ensureLoadBalancer(service *v1.Service) (*v1.LoadBal return nil, err } + // If there are no available nodes for LoadBalancer service, make a EventTypeWarning event for it. + if len(nodes) == 0 { + s.eventRecorder.Eventf(service, v1.EventTypeWarning, "UnAvailableLoadBalancer", "There are no available nodes for LoadBalancer service %s/%s", service.Namespace, service.Name) + } + // - Only one protocol supported per service // - Not all cloud providers support all protocols and the next step is expected to return // an error for unsupported protocols @@ -606,8 +617,10 @@ func getNodeConditionPredicate() corelisters.NodeConditionPredicate { return false } - if _, hasExcludeBalancerLabel := node.Labels[LabelNodeRoleExcludeBalancer]; hasExcludeBalancerLabel { - return false + if utilfeature.DefaultFeatureGate.Enabled(kubefeatures.ServiceNodeExclusion) { + if _, hasExcludeBalancerLabel := node.Labels[LabelNodeRoleExcludeBalancer]; hasExcludeBalancerLabel { + return false + } } // If we have no info, don't accept @@ -683,7 +696,12 @@ func (s *ServiceController) lockedUpdateLoadBalancerHosts(service *v1.Service, h // This operation doesn't normally take very long (and happens pretty often), so we only record the final event err := s.balancer.UpdateLoadBalancer(s.clusterName, service, hosts) if err == nil { - s.eventRecorder.Event(service, v1.EventTypeNormal, "UpdatedLoadBalancer", "Updated load balancer with new hosts") + // If there are no available nodes for LoadBalancer service, make a EventTypeWarning event for it. + if len(hosts) == 0 { + s.eventRecorder.Eventf(service, v1.EventTypeWarning, "UnAvailableLoadBalancer", "There are no available nodes for LoadBalancer service %s/%s", service.Namespace, service.Name) + } else { + s.eventRecorder.Event(service, v1.EventTypeNormal, "UpdatedLoadBalancer", "Updated load balancer with new hosts") + } return nil } @@ -758,7 +776,7 @@ func (s *ServiceController) syncService(key string) error { if retryDelay != 0 { // Add the failed service back to the queue so we'll retry it. - glog.Errorf("Failed to process service. Retrying in %s: %v", retryDelay, err) + glog.Errorf("Failed to process service %v. Retrying in %s: %v", key, retryDelay, err) go func(obj interface{}, delay time.Duration) { // put back the service key to working queue, it is possible that more entries of the service // were added into the queue during the delay, but it does not mess as when handling the retry, @@ -766,7 +784,7 @@ func (s *ServiceController) syncService(key string) error { s.workingQueue.AddAfter(obj, delay) }(key, retryDelay) } else if err != nil { - runtime.HandleError(fmt.Errorf("Failed to process service. Not retrying: %v", err)) + runtime.HandleError(fmt.Errorf("Failed to process service %v. Not retrying: %v", key, err)) } return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/BUILD index 85d5012bb..ef389de51 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/serviceaccount", deps = [ - "//pkg/api/v1:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/controller:go_default_library", "//pkg/registry/core/secret:go_default_library", "//pkg/registry/core/secret/storage:go_default_library", @@ -54,7 +54,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/serviceaccount", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/controller:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/serviceaccounts_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/serviceaccounts_controller.go index a84ce6138..e0c41b82f 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/serviceaccounts_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/serviceaccounts_controller.go @@ -61,14 +61,16 @@ func DefaultServiceAccountsControllerOptions() ServiceAccountsControllerOptions } // NewServiceAccountsController returns a new *ServiceAccountsController. -func NewServiceAccountsController(saInformer coreinformers.ServiceAccountInformer, nsInformer coreinformers.NamespaceInformer, cl clientset.Interface, options ServiceAccountsControllerOptions) *ServiceAccountsController { +func NewServiceAccountsController(saInformer coreinformers.ServiceAccountInformer, nsInformer coreinformers.NamespaceInformer, cl clientset.Interface, options ServiceAccountsControllerOptions) (*ServiceAccountsController, error) { e := &ServiceAccountsController{ client: cl, serviceAccountsToEnsure: options.ServiceAccounts, queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "serviceaccount"), } - if cl != nil && cl.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("serviceaccount_controller", cl.Core().RESTClient().GetRateLimiter()) + if cl != nil && cl.CoreV1().RESTClient().GetRateLimiter() != nil { + if err := metrics.RegisterMetricAndTrackRateLimiterUsage("serviceaccount_controller", cl.CoreV1().RESTClient().GetRateLimiter()); err != nil { + return nil, err + } } saInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -86,7 +88,7 @@ func NewServiceAccountsController(saInformer coreinformers.ServiceAccountInforme e.syncHandler = e.syncNamespace - return e + return e, nil } // ServiceAccountsController manages ServiceAccount objects inside Namespaces @@ -210,7 +212,7 @@ func (c *ServiceAccountsController) syncNamespace(key string) error { // TODO eliminate this once the fake client can handle creation without NS sa.Namespace = ns.Name - if _, err := c.client.Core().ServiceAccounts(ns.Name).Create(&sa); err != nil && !apierrs.IsAlreadyExists(err) { + if _, err := c.client.CoreV1().ServiceAccounts(ns.Name).Create(&sa); err != nil && !apierrs.IsAlreadyExists(err) { createFailures = append(createFailures, err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/serviceaccounts_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/serviceaccounts_controller_test.go index 83589b084..969f8a17c 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/serviceaccounts_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/serviceaccounts_controller_test.go @@ -165,12 +165,15 @@ func TestServiceAccountCreation(t *testing.T) { } saInformer := informers.Core().V1().ServiceAccounts() nsInformer := informers.Core().V1().Namespaces() - controller := NewServiceAccountsController( + controller, err := NewServiceAccountsController( saInformer, nsInformer, client, options, ) + if err != nil { + t.Fatalf("error creating ServiceAccounts controller: %v", err) + } controller.saListerSynced = alwaysReady controller.nsListerSynced = alwaysReady diff --git a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokengetter.go b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokengetter.go index e81f13815..d21f578b2 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokengetter.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokengetter.go @@ -23,7 +23,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/storage/storagebackend" clientset "k8s.io/client-go/kubernetes" - apiv1 "k8s.io/kubernetes/pkg/api/v1" + apiv1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/registry/core/secret" secretstore "k8s.io/kubernetes/pkg/registry/core/secret/storage" serviceaccountregistry "k8s.io/kubernetes/pkg/registry/core/serviceaccount" @@ -44,10 +44,10 @@ func NewGetterFromClient(c clientset.Interface) serviceaccount.ServiceAccountTok return clientGetter{c} } func (c clientGetter) GetServiceAccount(namespace, name string) (*v1.ServiceAccount, error) { - return c.client.Core().ServiceAccounts(namespace).Get(name, metav1.GetOptions{}) + return c.client.CoreV1().ServiceAccounts(namespace).Get(name, metav1.GetOptions{}) } func (c clientGetter) GetSecret(namespace, name string) (*v1.Secret, error) { - return c.client.Core().Secrets(namespace).Get(name, metav1.GetOptions{}) + return c.client.CoreV1().Secrets(namespace).Get(name, metav1.GetOptions{}) } // registryGetter implements ServiceAccountTokenGetter using a service account and secret registry @@ -68,7 +68,7 @@ func (r *registryGetter) GetServiceAccount(namespace, name string) (*v1.ServiceA return nil, err } v1ServiceAccount := v1.ServiceAccount{} - err = apiv1.Convert_api_ServiceAccount_To_v1_ServiceAccount(internalServiceAccount, &v1ServiceAccount, nil) + err = apiv1.Convert_core_ServiceAccount_To_v1_ServiceAccount(internalServiceAccount, &v1ServiceAccount, nil) return &v1ServiceAccount, err } @@ -79,7 +79,7 @@ func (r *registryGetter) GetSecret(namespace, name string) (*v1.Secret, error) { return nil, err } v1Secret := v1.Secret{} - err = apiv1.Convert_api_Secret_To_v1_Secret(internalSecret, &v1Secret, nil) + err = apiv1.Convert_core_Secret_To_v1_Secret(internalSecret, &v1Secret, nil) return &v1Secret, err } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokens_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokens_controller.go index f8d585110..c34e600ef 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokens_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokens_controller.go @@ -70,7 +70,7 @@ type TokensControllerOptions struct { } // NewTokensController returns a new *TokensController. -func NewTokensController(serviceAccounts informers.ServiceAccountInformer, secrets informers.SecretInformer, cl clientset.Interface, options TokensControllerOptions) *TokensController { +func NewTokensController(serviceAccounts informers.ServiceAccountInformer, secrets informers.SecretInformer, cl clientset.Interface, options TokensControllerOptions) (*TokensController, error) { maxRetries := options.MaxRetries if maxRetries == 0 { maxRetries = 10 @@ -86,8 +86,10 @@ func NewTokensController(serviceAccounts informers.ServiceAccountInformer, secre maxRetries: maxRetries, } - if cl != nil && cl.Core().RESTClient().GetRateLimiter() != nil { - metrics.RegisterMetricAndTrackRateLimiterUsage("serviceaccount_tokens_controller", cl.Core().RESTClient().GetRateLimiter()) + if cl != nil && cl.CoreV1().RESTClient().GetRateLimiter() != nil { + if err := metrics.RegisterMetricAndTrackRateLimiterUsage("serviceaccount_tokens_controller", cl.CoreV1().RESTClient().GetRateLimiter()); err != nil { + return nil, err + } } e.serviceAccounts = serviceAccounts.Lister() @@ -124,7 +126,7 @@ func NewTokensController(serviceAccounts informers.ServiceAccountInformer, secre options.SecretResync, ) - return e + return e, nil } // TokensController manages ServiceAccountToken secrets for ServiceAccount objects @@ -344,7 +346,7 @@ func (e *TokensController) deleteToken(ns, name string, uid types.UID) ( /*retry if len(uid) > 0 { opts = &metav1.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &uid}} } - err := e.client.Core().Secrets(ns).Delete(name, opts) + err := e.client.CoreV1().Secrets(ns).Delete(name, opts) // NotFound doesn't need a retry (it's already been deleted) // Conflict doesn't need a retry (the UID precondition failed) if err == nil || apierrors.IsNotFound(err) || apierrors.IsConflict(err) { @@ -366,7 +368,7 @@ func (e *TokensController) ensureReferencedToken(serviceAccount *v1.ServiceAccou // We don't want to update the cache's copy of the service account // so add the secret to a freshly retrieved copy of the service account - serviceAccounts := e.client.Core().ServiceAccounts(serviceAccount.Namespace) + serviceAccounts := e.client.CoreV1().ServiceAccounts(serviceAccount.Namespace) liveServiceAccount, err := serviceAccounts.Get(serviceAccount.Name, metav1.GetOptions{}) if err != nil { // Retry if we cannot fetch the live service account (for a NotFound error, either the live lookup or our cache are stale) @@ -405,7 +407,7 @@ func (e *TokensController) ensureReferencedToken(serviceAccount *v1.ServiceAccou } // Save the secret - createdToken, err := e.client.Core().Secrets(serviceAccount.Namespace).Create(secret) + createdToken, err := e.client.CoreV1().Secrets(serviceAccount.Namespace).Create(secret) if err != nil { // retriable error return true, err @@ -455,7 +457,7 @@ func (e *TokensController) ensureReferencedToken(serviceAccount *v1.ServiceAccou // we weren't able to use the token, try to clean it up. glog.V(2).Infof("deleting secret %s/%s because reference couldn't be added (%v)", secret.Namespace, secret.Name, err) deleteOpts := &metav1.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &createdToken.UID}} - if deleteErr := e.client.Core().Secrets(createdToken.Namespace).Delete(createdToken.Name, deleteOpts); deleteErr != nil { + if deleteErr := e.client.CoreV1().Secrets(createdToken.Namespace).Delete(createdToken.Name, deleteOpts); deleteErr != nil { glog.Error(deleteErr) // if we fail, just log it } } @@ -513,7 +515,7 @@ func (e *TokensController) generateTokenIfNeeded(serviceAccount *v1.ServiceAccou // We don't want to update the cache's copy of the secret // so add the token to a freshly retrieved copy of the secret - secrets := e.client.Core().Secrets(cachedSecret.Namespace) + secrets := e.client.CoreV1().Secrets(cachedSecret.Namespace) liveSecret, err := secrets.Get(cachedSecret.Name, metav1.GetOptions{}) if err != nil { // Retry for any error other than a NotFound @@ -577,7 +579,7 @@ func (e *TokensController) generateTokenIfNeeded(serviceAccount *v1.ServiceAccou func (e *TokensController) removeSecretReference(saNamespace string, saName string, saUID types.UID, secretName string) error { // We don't want to update the cache's copy of the service account // so remove the secret from a freshly retrieved copy of the service account - serviceAccounts := e.client.Core().ServiceAccounts(saNamespace) + serviceAccounts := e.client.CoreV1().ServiceAccounts(saNamespace) serviceAccount, err := serviceAccounts.Get(saName, metav1.GetOptions{}) // Ignore NotFound errors when attempting to remove a reference if apierrors.IsNotFound(err) { @@ -631,7 +633,7 @@ func (e *TokensController) getServiceAccount(ns string, name string, uid types.U } // Live lookup - sa, err = e.client.Core().ServiceAccounts(ns).Get(name, metav1.GetOptions{}) + sa, err = e.client.CoreV1().ServiceAccounts(ns).Get(name, metav1.GetOptions{}) if apierrors.IsNotFound(err) { return nil, nil } @@ -667,7 +669,7 @@ func (e *TokensController) getSecret(ns string, name string, uid types.UID, fetc } // Live lookup - secret, err := e.client.Core().Secrets(ns).Get(name, metav1.GetOptions{}) + secret, err := e.client.CoreV1().Secrets(ns).Get(name, metav1.GetOptions{}) if apierrors.IsNotFound(err) { return nil, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokens_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokens_controller_test.go index f9ffe53b2..bacf60500 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokens_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/tokens_controller_test.go @@ -34,7 +34,7 @@ import ( "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/controller" ) @@ -586,7 +586,10 @@ func TestTokenCreation(t *testing.T) { secretInformer := informers.Core().V1().Secrets().Informer() secrets := secretInformer.GetStore() serviceAccounts := informers.Core().V1().ServiceAccounts().Informer().GetStore() - controller := NewTokensController(informers.Core().V1().ServiceAccounts(), informers.Core().V1().Secrets(), client, TokensControllerOptions{TokenGenerator: generator, RootCA: []byte("CA Data"), MaxRetries: tc.MaxRetries}) + controller, err := NewTokensController(informers.Core().V1().ServiceAccounts(), informers.Core().V1().Secrets(), client, TokensControllerOptions{TokenGenerator: generator, RootCA: []byte("CA Data"), MaxRetries: tc.MaxRetries}) + if err != nil { + t.Fatalf("error creating Tokens controller: %v", err) + } if tc.ExistingServiceAccount != nil { serviceAccounts.Add(tc.ExistingServiceAccount) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/statefulset/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/statefulset/BUILD index d2203271f..d35a9de07 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/statefulset/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/statefulset/BUILD @@ -57,9 +57,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/statefulset", library = ":go_default_library", deps = [ - "//pkg/api/install:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/apis/apps/install:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/controller:go_default_library", "//pkg/controller/history:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_pod_control.go b/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_pod_control.go index ef33a78b1..fff080462 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_pod_control.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_pod_control.go @@ -77,7 +77,7 @@ func (spc *realStatefulPodControl) CreateStatefulPod(set *apps.StatefulSet, pod return err } // If we created the PVCs attempt to create the Pod - _, err := spc.client.Core().Pods(set.Namespace).Create(pod) + _, err := spc.client.CoreV1().Pods(set.Namespace).Create(pod) // sink already exists errors if apierrors.IsAlreadyExists(err) { return err @@ -113,7 +113,7 @@ func (spc *realStatefulPodControl) UpdateStatefulPod(set *apps.StatefulSet, pod attemptedUpdate = true // commit the update, retrying on conflicts - _, updateErr := spc.client.Core().Pods(set.Namespace).Update(pod) + _, updateErr := spc.client.CoreV1().Pods(set.Namespace).Update(pod) if updateErr == nil { return nil } @@ -134,7 +134,7 @@ func (spc *realStatefulPodControl) UpdateStatefulPod(set *apps.StatefulSet, pod } func (spc *realStatefulPodControl) DeleteStatefulPod(set *apps.StatefulSet, pod *v1.Pod) error { - err := spc.client.Core().Pods(set.Namespace).Delete(pod.Name, nil) + err := spc.client.CoreV1().Pods(set.Namespace).Delete(pod.Name, nil) spc.recordPodEvent("delete", set, pod, err) return err } @@ -182,7 +182,7 @@ func (spc *realStatefulPodControl) createPersistentVolumeClaims(set *apps.Statef _, err := spc.pvcLister.PersistentVolumeClaims(claim.Namespace).Get(claim.Name) switch { case apierrors.IsNotFound(err): - _, err := spc.client.Core().PersistentVolumeClaims(claim.Namespace).Create(&claim) + _, err := spc.client.CoreV1().PersistentVolumeClaims(claim.Namespace).Create(&claim) if err != nil { errs = append(errs, fmt.Errorf("Failed to create PVC %s: %s", claim.Name, err)) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_pod_control_test.go b/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_pod_control_test.go index 9d397930a..31ea8ac46 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_pod_control_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_pod_control_test.go @@ -31,8 +31,8 @@ import ( "k8s.io/api/core/v1" "k8s.io/client-go/kubernetes/fake" corelisters "k8s.io/client-go/listers/core/v1" - _ "k8s.io/kubernetes/pkg/api/install" _ "k8s.io/kubernetes/pkg/apis/apps/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestStatefulPodControlCreatesPods(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_set.go b/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_set.go index 582b15b6d..e9db4c10b 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_set.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/statefulset/stateful_set.go @@ -85,7 +85,7 @@ func NewStatefulSetController( ) *StatefulSetController { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.Core().RESTClient()).Events("")}) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "statefulset-controller"}) ssc := &StatefulSetController{ @@ -400,7 +400,7 @@ func (ssc *StatefulSetController) processNextWorkItem() bool { return true } -// worker runs a worker goroutine that invokes processNextWorkItem until the the controller's queue is closed +// worker runs a worker goroutine that invokes processNextWorkItem until the controller's queue is closed func (ssc *StatefulSetController) worker() { for ssc.processNextWorkItem() { } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/testutil/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/testutil/BUILD index 488102b95..0bfd0d077 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/testutil/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/testutil/BUILD @@ -10,7 +10,8 @@ go_library( srcs = ["test_utils.go"], importpath = "k8s.io/kubernetes/pkg/controller/testutil", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/util/node:go_default_library", "//vendor/github.com/evanphx/json-patch:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/testutil/test_utils.go b/vendor/k8s.io/kubernetes/pkg/controller/testutil/test_utils.go index 3801c4a93..1ecada1f6 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/testutil/test_utils.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/testutil/test_utils.go @@ -38,7 +38,8 @@ import ( "k8s.io/api/core/v1" "k8s.io/client-go/kubernetes/fake" v1core "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" utilnode "k8s.io/kubernetes/pkg/util/node" jsonpatch "github.com/evanphx/json-patch" @@ -363,7 +364,7 @@ func (f *FakeRecorder) PastEventf(obj runtime.Object, timestamp metav1.Time, eve func (f *FakeRecorder) generateEvent(obj runtime.Object, timestamp metav1.Time, eventtype, reason, message string) { f.Lock() defer f.Unlock() - ref, err := ref.GetReference(api.Scheme, obj) + ref, err := ref.GetReference(legacyscheme.Scheme, obj) if err != nil { glog.Errorf("Encoutered error while getting reference: %v", err) return diff --git a/vendor/k8s.io/kubernetes/pkg/controller/ttl/ttl_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/ttl/ttl_controller.go index 3581e0519..2938ca827 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/ttl/ttl_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/ttl/ttl_controller.go @@ -263,7 +263,7 @@ func (ttlc *TTLController) patchNodeWithAnnotation(node *v1.Node, annotationKey if err != nil { return err } - _, err = ttlc.kubeClient.Core().Nodes().Patch(node.Name, types.StrategicMergePatchType, patchBytes) + _, err = ttlc.kubeClient.CoreV1().Nodes().Patch(node.Name, types.StrategicMergePatchType, patchBytes) if err != nil { glog.V(2).Infof("Failed to change ttl annotation for node %s: %v", node.Name, err) return err diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/volume/OWNERS index debfb8198..f77dc4182 100755 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/OWNERS @@ -7,8 +7,8 @@ reviewers: - saad-ali - jsafrane - jingxu97 -- pmorie -- justinsb - rootfs - gnufied - msau42 +- verult +- davidz627 diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller.go index 847ab12d7..ca6d0a5d3 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller.go @@ -134,7 +134,7 @@ func NewAttachDetachController( eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.Core().RESTClient()).Events("")}) + eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubeClient.CoreV1().RESTClient()).Events("")}) recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "attachdetach-controller"}) adc.desiredStateOfWorld = cache.NewDesiredStateOfWorld(&adc.volumePluginMgr) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller_test.go b/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller_test.go index 9f8b58658..283a910f2 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller_test.go @@ -239,7 +239,7 @@ func attachDetachRecoveryTestCase(t *testing.T, extraPods1 []*v1.Pod, extraPods2 for _, newPod := range extraPods1 { // Add a new pod between ASW and DSW ppoulators - _, err = adc.kubeClient.Core().Pods(newPod.ObjectMeta.Namespace).Create(newPod) + _, err = adc.kubeClient.CoreV1().Pods(newPod.ObjectMeta.Namespace).Create(newPod) if err != nil { t.Fatalf("Run failed with error. Failed to create a new pod: <%v>", err) } @@ -256,7 +256,7 @@ func attachDetachRecoveryTestCase(t *testing.T, extraPods1 []*v1.Pod, extraPods2 for _, newPod := range extraPods2 { // Add a new pod between DSW ppoulator and reconciler run - _, err = adc.kubeClient.Core().Pods(newPod.ObjectMeta.Namespace).Create(newPod) + _, err = adc.kubeClient.CoreV1().Pods(newPod.ObjectMeta.Namespace).Create(newPod) if err != nil { t.Fatalf("Run failed with error. Failed to create a new pod: <%v>", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache/actual_state_of_world.go b/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache/actual_state_of_world.go index 20dfa5a14..9bb6320c6 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache/actual_state_of_world.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache/actual_state_of_world.go @@ -173,7 +173,7 @@ type actualStateOfWorld struct { sync.RWMutex } -// The volume object represents a volume the the attach/detach controller +// The volume object represents a volume the attach/detach controller // believes to be successfully attached to a node it is managing. type attachedVolume struct { // volumeName contains the unique identifier for this volume. @@ -475,7 +475,6 @@ func (asw *actualStateOfWorld) updateNodeStatusUpdateNeeded(nodeName types.NodeN // should not happen errMsg := fmt.Sprintf("Failed to set statusUpdateNeeded to needed %t because nodeName=%q does not exist", needed, nodeName) - glog.Errorf(errMsg) return fmt.Errorf(errMsg) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/statusupdater/node_status_updater.go b/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/statusupdater/node_status_updater.go index e1b31fbcc..ab6dd05ec 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/statusupdater/node_status_updater.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/attachdetach/statusupdater/node_status_updater.go @@ -129,10 +129,10 @@ func (nsu *nodeStatusUpdater) updateNodeStatus(nodeName types.NodeName, nodeObj err) } - _, err = nsu.kubeClient.Core().Nodes().PatchStatus(string(nodeName), patchBytes) + _, err = nsu.kubeClient.CoreV1().Nodes().PatchStatus(string(nodeName), patchBytes) if err != nil { return fmt.Errorf( - "failed to kubeClient.Core().Nodes().Patch for node %q. %v", + "failed to kubeClient.CoreV1().Nodes().Patch for node %q. %v", nodeName, err) } diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/BUILD b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/BUILD index e2871ab09..a9899d788 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/controller/volume/persistentvolume", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", "//pkg/controller/volume/events:go_default_library", @@ -65,8 +65,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/controller/volume/persistentvolume", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/controller:go_default_library", "//pkg/volume:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/index.go b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/index.go index e9a40fe1c..d39fca6d2 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/index.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/index.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/volume" ) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/provision_test.go b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/provision_test.go index db247b080..15b898709 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/provision_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/provision_test.go @@ -24,7 +24,7 @@ import ( storage "k8s.io/api/storage/v1" apierrs "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) var class1Parameters = map[string]string{ diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/pv_controller.go b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/pv_controller.go index 3c6b60fb6..ebcb38995 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/pv_controller.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/pv_controller.go @@ -34,7 +34,7 @@ import ( "k8s.io/client-go/tools/record" ref "k8s.io/client-go/tools/reference" "k8s.io/client-go/util/workqueue" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller/volume/events" "k8s.io/kubernetes/pkg/util/goroutinemap" @@ -641,7 +641,7 @@ func (ctrl *PersistentVolumeController) updateClaimStatus(claim *v1.PersistentVo return claim, nil } - newClaim, err := ctrl.kubeClient.Core().PersistentVolumeClaims(claimClone.Namespace).UpdateStatus(claimClone) + newClaim, err := ctrl.kubeClient.CoreV1().PersistentVolumeClaims(claimClone.Namespace).UpdateStatus(claimClone) if err != nil { glog.V(4).Infof("updating PersistentVolumeClaim[%s] status: set phase %s failed: %v", claimToClaimKey(claim), phase, err) return newClaim, err @@ -697,7 +697,7 @@ func (ctrl *PersistentVolumeController) updateVolumePhase(volume *v1.PersistentV volumeClone.Status.Phase = phase volumeClone.Status.Message = message - newVol, err := ctrl.kubeClient.Core().PersistentVolumes().UpdateStatus(volumeClone) + newVol, err := ctrl.kubeClient.CoreV1().PersistentVolumes().UpdateStatus(volumeClone) if err != nil { glog.V(4).Infof("updating PersistentVolume[%s]: set phase %s failed: %v", volume.Name, phase, err) return newVol, err @@ -775,7 +775,7 @@ func (ctrl *PersistentVolumeController) bindVolumeToClaim(volume *v1.PersistentV // Save the volume only if something was changed if dirty { glog.V(2).Infof("claim %q bound to volume %q", claimToClaimKey(claim), volume.Name) - newVol, err := ctrl.kubeClient.Core().PersistentVolumes().Update(volumeClone) + newVol, err := ctrl.kubeClient.CoreV1().PersistentVolumes().Update(volumeClone) if err != nil { glog.V(4).Infof("updating PersistentVolume[%s]: binding to %q failed: %v", volume.Name, claimToClaimKey(claim), err) return newVol, err @@ -829,7 +829,7 @@ func (ctrl *PersistentVolumeController) bindClaimToVolume(claim *v1.PersistentVo if dirty { glog.V(2).Infof("volume %q bound to claim %q", volume.Name, claimToClaimKey(claim)) - newClaim, err := ctrl.kubeClient.Core().PersistentVolumeClaims(claim.Namespace).Update(claimClone) + newClaim, err := ctrl.kubeClient.CoreV1().PersistentVolumeClaims(claim.Namespace).Update(claimClone) if err != nil { glog.V(4).Infof("updating PersistentVolumeClaim[%s]: binding to %q failed: %v", claimToClaimKey(claim), volume.Name, err) return newClaim, err @@ -916,7 +916,7 @@ func (ctrl *PersistentVolumeController) unbindVolume(volume *v1.PersistentVolume volumeClone.Spec.ClaimRef.UID = "" } - newVol, err := ctrl.kubeClient.Core().PersistentVolumes().Update(volumeClone) + newVol, err := ctrl.kubeClient.CoreV1().PersistentVolumes().Update(volumeClone) if err != nil { glog.V(4).Infof("updating PersistentVolume[%s]: rollback failed: %v", volume.Name, err) return err @@ -977,7 +977,7 @@ func (ctrl *PersistentVolumeController) recycleVolumeOperation(arg interface{}) // This method may have been waiting for a volume lock for some time. // Previous recycleVolumeOperation might just have saved an updated version, // so read current volume state now. - newVolume, err := ctrl.kubeClient.Core().PersistentVolumes().Get(volume.Name, metav1.GetOptions{}) + newVolume, err := ctrl.kubeClient.CoreV1().PersistentVolumes().Get(volume.Name, metav1.GetOptions{}) if err != nil { glog.V(3).Infof("error reading peristent volume %q: %v", volume.Name, err) return @@ -1056,7 +1056,7 @@ func (ctrl *PersistentVolumeController) deleteVolumeOperation(arg interface{}) e // This method may have been waiting for a volume lock for some time. // Previous deleteVolumeOperation might just have saved an updated version, so // read current volume state now. - newVolume, err := ctrl.kubeClient.Core().PersistentVolumes().Get(volume.Name, metav1.GetOptions{}) + newVolume, err := ctrl.kubeClient.CoreV1().PersistentVolumes().Get(volume.Name, metav1.GetOptions{}) if err != nil { glog.V(3).Infof("error reading peristent volume %q: %v", volume.Name, err) return nil @@ -1100,7 +1100,7 @@ func (ctrl *PersistentVolumeController) deleteVolumeOperation(arg interface{}) e glog.V(4).Infof("deleteVolumeOperation [%s]: success", volume.Name) // Delete the volume - if err = ctrl.kubeClient.Core().PersistentVolumes().Delete(volume.Name, nil); err != nil { + if err = ctrl.kubeClient.CoreV1().PersistentVolumes().Delete(volume.Name, nil); err != nil { // Oops, could not delete the volume and therefore the controller will // try to delete the volume again on next update. We _could_ maintain a // cache of "recently deleted volumes" and avoid unnecessary deletion, @@ -1260,7 +1260,7 @@ func (ctrl *PersistentVolumeController) provisionClaimOperation(claimObj interfa // yet. pvName := ctrl.getProvisionedVolumeNameForClaim(claim) - volume, err := ctrl.kubeClient.Core().PersistentVolumes().Get(pvName, metav1.GetOptions{}) + volume, err := ctrl.kubeClient.CoreV1().PersistentVolumes().Get(pvName, metav1.GetOptions{}) if err == nil && volume != nil { // Volume has been already provisioned, nothing to do. glog.V(4).Infof("provisionClaimOperation [%s]: volume already exists, skipping", claimToClaimKey(claim)) @@ -1338,7 +1338,7 @@ func (ctrl *PersistentVolumeController) provisionClaimOperation(claimObj interfa for i := 0; i < ctrl.createProvisionedPVRetryCount; i++ { glog.V(4).Infof("provisionClaimOperation [%s]: trying to save volume %s", claimToClaimKey(claim), volume.Name) var newVol *v1.PersistentVolume - if newVol, err = ctrl.kubeClient.Core().PersistentVolumes().Create(volume); err == nil || apierrs.IsAlreadyExists(err) { + if newVol, err = ctrl.kubeClient.CoreV1().PersistentVolumes().Create(volume); err == nil || apierrs.IsAlreadyExists(err) { // Save succeeded. if err != nil { glog.V(3).Infof("volume %q for claim %q already exists, reusing", volume.Name, claimToClaimKey(claim)) diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/pv_controller_base.go b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/pv_controller_base.go index 2fb5852f7..2ba5d831c 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/pv_controller_base.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/persistentvolume/pv_controller_base.go @@ -70,7 +70,8 @@ func NewController(p ControllerParameters) (*PersistentVolumeController, error) eventRecorder := p.EventRecorder if eventRecorder == nil { broadcaster := record.NewBroadcaster() - broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(p.KubeClient.Core().RESTClient()).Events("")}) + broadcaster.StartLogging(glog.Infof) + broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(p.KubeClient.CoreV1().RESTClient()).Events("")}) eventRecorder = broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "persistentvolume-controller"}) } @@ -242,11 +243,15 @@ func (ctrl *PersistentVolumeController) deleteClaim(claim *v1.PersistentVolumeCl _ = ctrl.claims.Delete(claim) glog.V(4).Infof("claim %q deleted", claimToClaimKey(claim)) + volumeName := claim.Spec.VolumeName + if volumeName == "" { + glog.V(5).Infof("deleteClaim[%q]: volume not bound", claimToClaimKey(claim)) + return + } // sync the volume when its claim is deleted. Explicitly sync'ing the // volume here in response to claim deletion prevents the volume from // waiting until the next sync period for its Release. - volumeName := claim.Spec.VolumeName - glog.V(5).Infof("deleteClaim[%s]: scheduling sync of volume %q", claimToClaimKey(claim), volumeName) + glog.V(5).Infof("deleteClaim[%q]: scheduling sync of volume %s", claimToClaimKey(claim), volumeName) ctrl.volumeQueue.Add(volumeName) } @@ -424,7 +429,7 @@ func (ctrl *PersistentVolumeController) setClaimProvisioner(claim *v1.Persistent // modify these, therefore create a copy. claimClone := claim.DeepCopy() metav1.SetMetaDataAnnotation(&claimClone.ObjectMeta, annStorageProvisioner, class.Provisioner) - newClaim, err := ctrl.kubeClient.Core().PersistentVolumeClaims(claim.Namespace).Update(claimClone) + newClaim, err := ctrl.kubeClient.CoreV1().PersistentVolumeClaims(claim.Namespace).Update(claimClone) if err != nil { return newClaim, err } diff --git a/vendor/k8s.io/kubernetes/pkg/features/kube_features.go b/vendor/k8s.io/kubernetes/pkg/features/kube_features.go index 7033678cc..910c7cfdb 100644 --- a/vendor/k8s.io/kubernetes/pkg/features/kube_features.go +++ b/vendor/k8s.io/kubernetes/pkg/features/kube_features.go @@ -98,7 +98,7 @@ const ( // the API server as the certificate approaches expiration. RotateKubeletClientCertificate utilfeature.Feature = "RotateKubeletClientCertificate" - // owner: @msau + // owner: @msau42 // alpha: v1.7 // // A new volume type that supports local disks on a node. @@ -163,6 +163,24 @@ const ( // // Enable pods to consume pre-allocated huge pages of varying page sizes HugePages utilfeature.Feature = "HugePages" + + // owner @brendandburns + // alpha: v1.8 + // + // Enable nodes to exclude themselves from service load balancers + ServiceNodeExclusion utilfeature.Feature = "ServiceNodeExclusion" + + // owner: @jsafrane + // alpha: v1.9 + // + // Enable running mount utilities in containers. + MountContainers utilfeature.Feature = "MountContainers" + + // owner: @msau42 + // alpha: v1.9 + // + // Extend the default scheduler to be aware of PV topology and handle PV binding + VolumeScheduling utilfeature.Feature = "VolumeScheduling" ) func init() { @@ -194,6 +212,9 @@ var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureS MountPropagation: {Default: false, PreRelease: utilfeature.Alpha}, ExpandPersistentVolumes: {Default: false, PreRelease: utilfeature.Alpha}, CPUManager: {Default: false, PreRelease: utilfeature.Alpha}, + ServiceNodeExclusion: {Default: false, PreRelease: utilfeature.Alpha}, + MountContainers: {Default: false, PreRelease: utilfeature.Alpha}, + VolumeScheduling: {Default: false, PreRelease: utilfeature.Alpha}, // inherited features from generic apiserver, relisted here to get a conflict if it is changed // unintentionally on either side: diff --git a/vendor/k8s.io/kubernetes/pkg/generated/bindata.go b/vendor/k8s.io/kubernetes/pkg/generated/bindata.go index b7e8c5679..e926127d8 100644 --- a/vendor/k8s.io/kubernetes/pkg/generated/bindata.go +++ b/vendor/k8s.io/kubernetes/pkg/generated/bindata.go @@ -383,8 +383,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " @@ -3606,8 +3606,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " @@ -3616,8 +3616,8 @@ msgid "" msgstr "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " @@ -7083,8 +7083,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " @@ -7093,8 +7093,8 @@ msgid "" msgstr "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " @@ -10690,8 +10690,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " @@ -14096,8 +14096,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " diff --git a/vendor/k8s.io/kubernetes/pkg/generated/openapi/BUILD b/vendor/k8s.io/kubernetes/pkg/generated/openapi/BUILD index b421da0e5..d6572c428 100644 --- a/vendor/k8s.io/kubernetes/pkg/generated/openapi/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/generated/openapi/BUILD @@ -4,19 +4,22 @@ package(default_visibility = ["//visibility:public"]) load("//pkg/generated/openapi:def.bzl", "openapi_library") +load("//build:openapi.bzl", "openapi_go_prefix", "openapi_vendor_prefix") openapi_library( name = "go_default_library", srcs = ["doc.go"], + go_prefix = openapi_go_prefix, openapi_targets = [ - "federation/apis/federation/v1beta1", "pkg/apis/abac/v0", "pkg/apis/abac/v1beta1", "pkg/apis/componentconfig/v1alpha1", "pkg/kubelet/apis/kubeletconfig/v1alpha1", + "pkg/proxy/apis/kubeproxyconfig/v1alpha1", "pkg/version", ], tags = ["automanaged"], + vendor_prefix = openapi_vendor_prefix, vendor_targets = [ "k8s.io/api/admission/v1alpha1", "k8s.io/api/admissionregistration/v1alpha1", @@ -44,6 +47,7 @@ openapi_library( "k8s.io/api/scheduling/v1alpha1", "k8s.io/api/settings/v1alpha1", "k8s.io/api/storage/v1", + "k8s.io/api/storage/v1alpha1", "k8s.io/api/storage/v1beta1", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1", "k8s.io/apimachinery/pkg/api/resource", @@ -56,6 +60,7 @@ openapi_library( "k8s.io/apiserver/pkg/apis/audit/v1alpha1", "k8s.io/apiserver/pkg/apis/audit/v1beta1", "k8s.io/apiserver/pkg/apis/example/v1", + "k8s.io/apiserver/pkg/apis/example2/v1", "k8s.io/client-go/pkg/version", "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1", "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1", diff --git a/vendor/k8s.io/kubernetes/pkg/generated/openapi/def.bzl b/vendor/k8s.io/kubernetes/pkg/generated/openapi/def.bzl index fa530f2b7..87fa23acd 100644 --- a/vendor/k8s.io/kubernetes/pkg/generated/openapi/def.bzl +++ b/vendor/k8s.io/kubernetes/pkg/generated/openapi/def.bzl @@ -1,7 +1,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") load("@io_kubernetes_build//defs:go.bzl", "go_genrule") -def openapi_library(name, tags, srcs, openapi_targets=[], vendor_targets=[]): +def openapi_library(name, tags, srcs, go_prefix, vendor_prefix="", openapi_targets=[], vendor_targets=[]): deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/k8s.io/kube-openapi/pkg/common:go_default_library", @@ -14,17 +14,17 @@ def openapi_library(name, tags, srcs, openapi_targets=[], vendor_targets=[]): ) go_genrule( name = "zz_generated.openapi", - srcs = srcs + ["//hack/boilerplate:boilerplate.go.txt"], + srcs = srcs + ["//" + vendor_prefix + "hack/boilerplate:boilerplate.go.txt"], outs = ["zz_generated.openapi.go"], cmd = " ".join([ "$(location //vendor/k8s.io/code-generator/cmd/openapi-gen)", "--v 1", "--logtostderr", - "--go-header-file $(location //hack/boilerplate:boilerplate.go.txt)", + "--go-header-file $(location //" + vendor_prefix + "hack/boilerplate:boilerplate.go.txt)", "--output-file-base zz_generated.openapi", - "--output-package k8s.io/kubernetes/pkg/generated/openapi", - "--input-dirs " + ",".join(["k8s.io/kubernetes/" + target for target in openapi_targets] + ["k8s.io/kubernetes/vendor/" + target for target in vendor_targets]), - "&& cp pkg/generated/openapi/zz_generated.openapi.go $(location :zz_generated.openapi.go)", + "--output-package " + go_prefix + vendor_prefix + "pkg/generated/openapi", + "--input-dirs " + ",".join([go_prefix + target for target in openapi_targets] + [go_prefix + "vendor/" + target for target in vendor_targets]), + "&& cp " + vendor_prefix + "pkg/generated/openapi/zz_generated.openapi.go $(location :zz_generated.openapi.go)", ]), go_deps = deps, tools = ["//vendor/k8s.io/code-generator/cmd/openapi-gen"], diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/BUILD b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/BUILD index 81416341a..e72de1f9f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubeapiserver", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/storage:go_default_library", @@ -49,8 +49,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubeapiserver", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions/install:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/BUILD b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/BUILD index 9e2b4c1be..ec2d84caf 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/BUILD @@ -11,7 +11,10 @@ go_test( srcs = ["init_test.go"], importpath = "k8s.io/kubernetes/pkg/kubeapiserver/admission", library = ":go_default_library", - deps = ["//vendor/k8s.io/apiserver/pkg/admission:go_default_library"], + deps = [ + "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/config:go_default_library", + ], ) go_library( @@ -24,6 +27,7 @@ go_library( "//pkg/quota:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/config:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/init_test.go b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/init_test.go index 80152a291..910f03f94 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/init_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/init_test.go @@ -21,6 +21,7 @@ import ( "testing" "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/admission/plugin/webhook/config" ) type doNothingAdmission struct{} @@ -40,7 +41,7 @@ func (self *WantsCloudConfigAdmissionPlugin) SetCloudConfig(cloudConfig []byte) func TestCloudConfigAdmissionPlugin(t *testing.T) { cloudConfig := []byte("cloud-configuration") - initializer := NewPluginInitializer(nil, nil, cloudConfig, nil, nil) + initializer := NewPluginInitializer(nil, nil, cloudConfig, nil, nil, nil, nil) wantsCloudConfigAdmission := &WantsCloudConfigAdmissionPlugin{} initializer.Initialize(wantsCloudConfigAdmission) @@ -60,13 +61,13 @@ type serviceWanter struct { got ServiceResolver } -func (s *serviceWanter) SetServiceResolver(sr ServiceResolver) { s.got = sr } +func (s *serviceWanter) SetServiceResolver(sr config.ServiceResolver) { s.got = sr } func TestWantsServiceResolver(t *testing.T) { sw := &serviceWanter{} fsr := &fakeServiceResolver{} - i := &PluginInitializer{} - i.SetServiceResolver(fsr).Initialize(sw) + i := NewPluginInitializer(nil, nil, nil, nil, nil, nil, fsr) + i.Initialize(sw) if got, ok := sw.got.(*fakeServiceResolver); !ok || got != fsr { t.Errorf("plumbing fail - %v %v#", ok, got) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/initializer.go b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/initializer.go index d90e9bc63..826ce7432 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/initializer.go +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/admission/initializer.go @@ -17,11 +17,11 @@ limitations under the License. package admission import ( - "net/http" "net/url" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apiserver/pkg/admission" + webhookconfig "k8s.io/apiserver/pkg/admission/plugin/webhook/config" "k8s.io/apiserver/pkg/authorization/authorizer" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -34,13 +34,13 @@ import ( // WantsInternalKubeClientSet defines a function which sets ClientSet for admission plugins that need it type WantsInternalKubeClientSet interface { SetInternalKubeClientSet(internalclientset.Interface) - admission.Validator + admission.InitializationValidator } // WantsInternalKubeInformerFactory defines a function which sets InformerFactory for admission plugins that need it type WantsInternalKubeInformerFactory interface { SetInternalKubeInformerFactory(informers.SharedInformerFactory) - admission.Validator + admission.InitializationValidator } // WantsCloudConfig defines a function which sets CloudConfig for admission plugins that need it. @@ -53,16 +53,16 @@ type WantsRESTMapper interface { SetRESTMapper(meta.RESTMapper) } -// WantsQuotaRegistry defines a function which sets quota registry for admission plugins that need it. -type WantsQuotaRegistry interface { - SetQuotaRegistry(quota.Registry) - admission.Validator +// WantsQuotaConfiguration defines a function which sets quota configuration for admission plugins that need it. +type WantsQuotaConfiguration interface { + SetQuotaConfiguration(quota.Configuration) + admission.InitializationValidator } // WantsServiceResolver defines a fuction that accepts a ServiceResolver for // admission plugins that need to make calls to services. type WantsServiceResolver interface { - SetServiceResolver(ServiceResolver) + SetServiceResolver(webhookconfig.ServiceResolver) } // ServiceResolver knows how to convert a service reference into an actual @@ -71,24 +71,23 @@ type ServiceResolver interface { ResolveEndpoint(namespace, name string) (*url.URL, error) } -// WantsProxyTransport defines a fuction that accepts a proxy transport for admission -// plugins that need to make calls to pods. -type WantsProxyTransport interface { - SetProxyTransport(proxyTransport *http.Transport) +// WantsAuthenticationInfoResolverWrapper defines a function that wraps the standard AuthenticationInfoResolver +// to allow the apiserver to control what is returned as auth info +type WantsAuthenticationInfoResolverWrapper interface { + SetAuthenticationInfoResolverWrapper(webhookconfig.AuthenticationInfoResolverWrapper) + admission.InitializationValidator } type PluginInitializer struct { - internalClient internalclientset.Interface - externalClient clientset.Interface - informers informers.SharedInformerFactory - authorizer authorizer.Authorizer - cloudConfig []byte - restMapper meta.RESTMapper - quotaRegistry quota.Registry - serviceResolver ServiceResolver - - // for proving we are apiserver in call-outs - proxyTransport *http.Transport + internalClient internalclientset.Interface + externalClient clientset.Interface + informers informers.SharedInformerFactory + authorizer authorizer.Authorizer + cloudConfig []byte + restMapper meta.RESTMapper + quotaConfiguration quota.Configuration + serviceResolver webhookconfig.ServiceResolver + authenticationInfoResolverWrapper webhookconfig.AuthenticationInfoResolverWrapper } var _ admission.PluginInitializer = &PluginInitializer{} @@ -101,29 +100,21 @@ func NewPluginInitializer( sharedInformers informers.SharedInformerFactory, cloudConfig []byte, restMapper meta.RESTMapper, - quotaRegistry quota.Registry, + quotaConfiguration quota.Configuration, + authenticationInfoResolverWrapper webhookconfig.AuthenticationInfoResolverWrapper, + serviceResolver webhookconfig.ServiceResolver, ) *PluginInitializer { return &PluginInitializer{ - internalClient: internalClient, - informers: sharedInformers, - cloudConfig: cloudConfig, - restMapper: restMapper, - quotaRegistry: quotaRegistry, + internalClient: internalClient, + informers: sharedInformers, + cloudConfig: cloudConfig, + restMapper: restMapper, + quotaConfiguration: quotaConfiguration, + authenticationInfoResolverWrapper: authenticationInfoResolverWrapper, + serviceResolver: serviceResolver, } } -// SetServiceResolver sets the service resolver which is needed by some plugins. -func (i *PluginInitializer) SetServiceResolver(s ServiceResolver) *PluginInitializer { - i.serviceResolver = s - return i -} - -// SetProxyTransport sets the proxyTransport which is needed by some plugins. -func (i *PluginInitializer) SetProxyTransport(proxyTransport *http.Transport) *PluginInitializer { - i.proxyTransport = proxyTransport - return i -} - // Initialize checks the initialization interfaces implemented by each plugin // and provide the appropriate initialization data func (i *PluginInitializer) Initialize(plugin admission.Interface) { @@ -143,15 +134,17 @@ func (i *PluginInitializer) Initialize(plugin admission.Interface) { wants.SetRESTMapper(i.restMapper) } - if wants, ok := plugin.(WantsQuotaRegistry); ok { - wants.SetQuotaRegistry(i.quotaRegistry) + if wants, ok := plugin.(WantsQuotaConfiguration); ok { + wants.SetQuotaConfiguration(i.quotaConfiguration) } if wants, ok := plugin.(WantsServiceResolver); ok { wants.SetServiceResolver(i.serviceResolver) } - if wants, ok := plugin.(WantsProxyTransport); ok { - wants.SetProxyTransport(i.proxyTransport) + if wants, ok := plugin.(WantsAuthenticationInfoResolverWrapper); ok { + if i.authenticationInfoResolverWrapper != nil { + wants.SetAuthenticationInfoResolverWrapper(i.authenticationInfoResolverWrapper) + } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/default_storage_factory_builder.go b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/default_storage_factory_builder.go index 4f266e528..ca1a3d35b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/default_storage_factory_builder.go +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/default_storage_factory_builder.go @@ -26,7 +26,7 @@ import ( serverstorage "k8s.io/apiserver/pkg/server/storage" "k8s.io/apiserver/pkg/storage/storagebackend" utilflag "k8s.io/apiserver/pkg/util/flag" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) // specialDefaultResourcePrefixes are prefixes compiled into Kubernetes. @@ -85,9 +85,9 @@ func mergeAPIResourceConfigs(defaultAPIResourceConfig *serverstorage.ResourceCon if ok { if allAPIFlagValue == "false" { // Disable all group versions. - resourceConfig.DisableVersions(api.Registry.RegisteredGroupVersions()...) + resourceConfig.DisableVersions(legacyscheme.Registry.RegisteredGroupVersions()...) } else if allAPIFlagValue == "true" { - resourceConfig.EnableVersions(api.Registry.RegisteredGroupVersions()...) + resourceConfig.EnableVersions(legacyscheme.Registry.RegisteredGroupVersions()...) } } @@ -121,8 +121,8 @@ func mergeAPIResourceConfigs(defaultAPIResourceConfig *serverstorage.ResourceCon if err != nil { return nil, fmt.Errorf("invalid key %s", key) } - // Verify that the groupVersion is api.Registry. - if !api.Registry.IsRegisteredVersion(groupVersion) { + // Verify that the groupVersion is legacyscheme.Registry. + if !legacyscheme.Registry.IsRegisteredVersion(groupVersion) { return nil, fmt.Errorf("group version %s that has not been registered", groupVersion.String()) } enabled, err := getRuntimeConfigValue(overrides, key, false) @@ -153,8 +153,8 @@ func mergeAPIResourceConfigs(defaultAPIResourceConfig *serverstorage.ResourceCon return nil, fmt.Errorf("invalid key %s", key) } resource := tokens[2] - // Verify that the groupVersion is api.Registry. - if !api.Registry.IsRegisteredVersion(groupVersion) { + // Verify that the groupVersion is legacyscheme.Registry. + if !legacyscheme.Registry.IsRegisteredVersion(groupVersion) { return nil, fmt.Errorf("group version %s that has not been registered", groupVersion.String()) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/default_storage_factory_builder_test.go b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/default_storage_factory_builder_test.go index 869fffba1..b5c9b4d88 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/default_storage_factory_builder_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/default_storage_factory_builder_test.go @@ -24,8 +24,8 @@ import ( extensionsapiv1beta1 "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/runtime/schema" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/extensions/install" ) @@ -173,7 +173,7 @@ func TestParseRuntimeConfig(t *testing.T) { }, expectedAPIConfig: func() *serverstorage.ResourceConfig { config := serverstorage.NewResourceConfig() - config.EnableVersions(api.Registry.RegisteredGroupVersions()...) + config.EnableVersions(legacyscheme.Registry.RegisteredGroupVersions()...) return config }, err: false, @@ -188,7 +188,7 @@ func TestParseRuntimeConfig(t *testing.T) { }, expectedAPIConfig: func() *serverstorage.ResourceConfig { config := serverstorage.NewResourceConfig() - config.DisableVersions(api.Registry.RegisteredGroupVersions()...) + config.DisableVersions(legacyscheme.Registry.RegisteredGroupVersions()...) return config }, err: false, diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/BUILD b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/BUILD index a6c122961..4c8d3d517 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/BUILD @@ -19,7 +19,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubeapiserver/options", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/kubeapiserver/authenticator:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/cloudprovider.go b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/cloudprovider.go index f1e599762..310acb592 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/cloudprovider.go +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/cloudprovider.go @@ -81,6 +81,8 @@ func (s *CloudProviderOptions) DefaultExternalHost(genericoptions *genericoption for _, addr := range addrs { if addr.Type == v1.NodeExternalIP { genericoptions.ExternalHost = addr.Address + glog.Warning("[Deprecated] Getting host address using cloud provider is " + + "now deprecated. Please use --external-hostname explicitly") } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/storage_versions.go b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/storage_versions.go index d46690043..bac872560 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/storage_versions.go +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/options/storage_versions.go @@ -20,7 +20,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "github.com/spf13/pflag" ) @@ -40,8 +40,8 @@ type StorageSerializationOptions struct { func NewStorageSerializationOptions() *StorageSerializationOptions { return &StorageSerializationOptions{ - DefaultStorageVersions: api.Registry.AllPreferredGroupVersions(), - StorageVersions: api.Registry.AllPreferredGroupVersions(), + DefaultStorageVersions: legacyscheme.Registry.AllPreferredGroupVersions(), + StorageVersions: legacyscheme.Registry.AllPreferredGroupVersions(), } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/server/insecure_handler.go b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/server/insecure_handler.go index 8186a0ac7..cc7c0a79d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/server/insecure_handler.go +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/server/insecure_handler.go @@ -19,6 +19,7 @@ package server import ( "net" "net/http" + "time" "github.com/golang/glog" @@ -45,11 +46,12 @@ func BuildInsecureHandlerChain(apiHandler http.Handler, c *server.Config) http.H } handler = genericapifilters.WithAuthentication(handler, c.RequestContextMapper, insecureSuperuser{}, nil) handler = genericfilters.WithCORS(handler, c.CorsAllowedOriginList, nil, nil, nil, "true") - handler = genericfilters.WithPanicRecovery(handler) handler = genericfilters.WithTimeoutForNonLongRunningRequests(handler, c.RequestContextMapper, c.LongRunningFunc, c.RequestTimeout) handler = genericfilters.WithMaxInFlightLimit(handler, c.MaxRequestsInFlight, c.MaxMutatingRequestsInFlight, c.RequestContextMapper, c.LongRunningFunc) + handler = genericfilters.WithWaitGroup(handler, c.RequestContextMapper, c.LongRunningFunc, c.HandlerChainWaitGroup) handler = genericapifilters.WithRequestInfo(handler, server.NewRequestInfoResolver(c), c.RequestContextMapper) handler = apirequest.WithRequestContext(handler, c.RequestContextMapper) + handler = genericfilters.WithPanicRecovery(handler) return handler } @@ -84,12 +86,12 @@ func (s *InsecureServingInfo) NewLoopbackClientConfig(token string) (*rest.Confi // NonBlockingRun spawns the insecure http server. An error is // returned if the ports cannot be listened on. -func NonBlockingRun(insecureServingInfo *InsecureServingInfo, insecureHandler http.Handler, stopCh <-chan struct{}) error { +func NonBlockingRun(insecureServingInfo *InsecureServingInfo, insecureHandler http.Handler, shutDownTimeout time.Duration, stopCh <-chan struct{}) error { // Use an internal stop channel to allow cleanup of the listeners on error. internalStopCh := make(chan struct{}) if insecureServingInfo != nil && insecureHandler != nil { - if err := serveInsecurely(insecureServingInfo, insecureHandler, internalStopCh); err != nil { + if err := serveInsecurely(insecureServingInfo, insecureHandler, shutDownTimeout, internalStopCh); err != nil { close(internalStopCh) return err } @@ -109,7 +111,7 @@ func NonBlockingRun(insecureServingInfo *InsecureServingInfo, insecureHandler ht // serveInsecurely run the insecure http server. It fails only if the initial listen // call fails. The actual server loop (stoppable by closing stopCh) runs in a go // routine, i.e. serveInsecurely does not block. -func serveInsecurely(insecureServingInfo *InsecureServingInfo, insecureHandler http.Handler, stopCh <-chan struct{}) error { +func serveInsecurely(insecureServingInfo *InsecureServingInfo, insecureHandler http.Handler, shutDownTimeout time.Duration, stopCh <-chan struct{}) error { insecureServer := &http.Server{ Addr: insecureServingInfo.BindAddress, Handler: insecureHandler, @@ -117,7 +119,7 @@ func serveInsecurely(insecureServingInfo *InsecureServingInfo, insecureHandler h } glog.Infof("Serving insecurely on %s", insecureServingInfo.BindAddress) var err error - _, err = server.RunServer(insecureServer, insecureServingInfo.BindNetwork, stopCh) + _, err = server.RunServer(insecureServer, insecureServingInfo.BindNetwork, shutDownTimeout, stopCh) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/.import-restrictions b/vendor/k8s.io/kubernetes/pkg/kubectl/.import-restrictions new file mode 100644 index 000000000..cedbea71e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/.import-restrictions @@ -0,0 +1,149 @@ +{ + "Rules": [{ + "SelectorRegexp": "k8s[.]io/kubernetes/pkg", + "AllowedPrefixes": [ + "k8s.io/kubernetes/pkg/api", + "k8s.io/kubernetes/pkg/api/events", + "k8s.io/kubernetes/pkg/api/legacyscheme", + "k8s.io/kubernetes/pkg/api/pod", + "k8s.io/kubernetes/pkg/api/ref", + "k8s.io/kubernetes/pkg/api/resource", + "k8s.io/kubernetes/pkg/api/service", + "k8s.io/kubernetes/pkg/api/v1/pod", + "k8s.io/kubernetes/pkg/api/v1/service", + "k8s.io/kubernetes/pkg/apis/admissionregistration", + "k8s.io/kubernetes/pkg/apis/admissionregistration/install", + "k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1", + "k8s.io/kubernetes/pkg/apis/apps", + "k8s.io/kubernetes/pkg/apis/apps/install", + "k8s.io/kubernetes/pkg/apis/apps/v1", + "k8s.io/kubernetes/pkg/apis/apps/v1beta1", + "k8s.io/kubernetes/pkg/apis/apps/v1beta2", + "k8s.io/kubernetes/pkg/apis/authentication", + "k8s.io/kubernetes/pkg/apis/authentication/install", + "k8s.io/kubernetes/pkg/apis/authentication/v1", + "k8s.io/kubernetes/pkg/apis/authentication/v1beta1", + "k8s.io/kubernetes/pkg/apis/authorization", + "k8s.io/kubernetes/pkg/apis/authorization/install", + "k8s.io/kubernetes/pkg/apis/authorization/v1", + "k8s.io/kubernetes/pkg/apis/authorization/v1beta1", + "k8s.io/kubernetes/pkg/apis/autoscaling", + "k8s.io/kubernetes/pkg/apis/autoscaling/install", + "k8s.io/kubernetes/pkg/apis/autoscaling/v1", + "k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1", + "k8s.io/kubernetes/pkg/apis/batch", + "k8s.io/kubernetes/pkg/apis/batch/install", + "k8s.io/kubernetes/pkg/apis/batch/v1", + "k8s.io/kubernetes/pkg/apis/batch/v1beta1", + "k8s.io/kubernetes/pkg/apis/batch/v2alpha1", + "k8s.io/kubernetes/pkg/apis/certificates", + "k8s.io/kubernetes/pkg/apis/certificates/install", + "k8s.io/kubernetes/pkg/apis/certificates/v1beta1", + "k8s.io/kubernetes/pkg/apis/componentconfig", + "k8s.io/kubernetes/pkg/apis/componentconfig/install", + "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1", + "k8s.io/kubernetes/pkg/apis/core", + "k8s.io/kubernetes/pkg/apis/core/helper", + "k8s.io/kubernetes/pkg/apis/core/helper/qos", + "k8s.io/kubernetes/pkg/apis/core/install", + "k8s.io/kubernetes/pkg/apis/core/v1", + "k8s.io/kubernetes/pkg/apis/core/v1/helper", + "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos", + "k8s.io/kubernetes/pkg/apis/core/validation", + "k8s.io/kubernetes/pkg/apis/extensions", + "k8s.io/kubernetes/pkg/apis/extensions/install", + "k8s.io/kubernetes/pkg/apis/extensions/v1beta1", + "k8s.io/kubernetes/pkg/apis/networking", + "k8s.io/kubernetes/pkg/apis/networking/install", + "k8s.io/kubernetes/pkg/apis/networking/v1", + "k8s.io/kubernetes/pkg/apis/policy", + "k8s.io/kubernetes/pkg/apis/policy/install", + "k8s.io/kubernetes/pkg/apis/policy/v1beta1", + "k8s.io/kubernetes/pkg/apis/rbac", + "k8s.io/kubernetes/pkg/apis/rbac/install", + "k8s.io/kubernetes/pkg/apis/rbac/v1", + "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1", + "k8s.io/kubernetes/pkg/apis/rbac/v1beta1", + "k8s.io/kubernetes/pkg/apis/scheduling", + "k8s.io/kubernetes/pkg/apis/scheduling/install", + "k8s.io/kubernetes/pkg/apis/scheduling/v1alpha1", + "k8s.io/kubernetes/pkg/apis/settings", + "k8s.io/kubernetes/pkg/apis/settings/install", + "k8s.io/kubernetes/pkg/apis/settings/v1alpha1", + "k8s.io/kubernetes/pkg/apis/storage", + "k8s.io/kubernetes/pkg/apis/storage/install", + "k8s.io/kubernetes/pkg/apis/storage/util", + "k8s.io/kubernetes/pkg/apis/storage/v1", + "k8s.io/kubernetes/pkg/apis/storage/v1beta1", + "k8s.io/kubernetes/pkg/capabilities", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion", + "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion", + "k8s.io/kubernetes/pkg/client/metrics/prometheus", + "k8s.io/kubernetes/pkg/client/unversioned", + "k8s.io/kubernetes/pkg/cloudprovider", + "k8s.io/kubernetes/pkg/cloudprovider/providers/aws", + "k8s.io/kubernetes/pkg/controller", + "k8s.io/kubernetes/pkg/controller/daemon", + "k8s.io/kubernetes/pkg/controller/daemon/util", + "k8s.io/kubernetes/pkg/controller/deployment/util", + "k8s.io/kubernetes/pkg/controller/history", + "k8s.io/kubernetes/pkg/controller/statefulset", + "k8s.io/kubernetes/pkg/credentialprovider", + "k8s.io/kubernetes/pkg/credentialprovider/aws", + "k8s.io/kubernetes/pkg/features", + "k8s.io/kubernetes/pkg/fieldpath", + "k8s.io/kubernetes/pkg/generated", + "k8s.io/kubernetes/pkg/kubectl", + "k8s.io/kubernetes/pkg/kubelet/apis", + "k8s.io/kubernetes/pkg/kubelet/qos", + "k8s.io/kubernetes/pkg/kubelet/types", + "k8s.io/kubernetes/pkg/master/ports", + "k8s.io/kubernetes/pkg/printers", + "k8s.io/kubernetes/pkg/printers/internalversion", + "k8s.io/kubernetes/pkg/registry/rbac/reconciliation", + "k8s.io/kubernetes/pkg/registry/rbac/validation", + "k8s.io/kubernetes/pkg/security/apparmor", + "k8s.io/kubernetes/pkg/serviceaccount", + "k8s.io/kubernetes/pkg/util/file", + "k8s.io/kubernetes/pkg/util/hash", + "k8s.io/kubernetes/pkg/util/interrupt", + "k8s.io/kubernetes/pkg/util/io", + "k8s.io/kubernetes/pkg/util/labels", + "k8s.io/kubernetes/pkg/util/metrics", + "k8s.io/kubernetes/pkg/util/mount", + "k8s.io/kubernetes/pkg/util/net/sets", + "k8s.io/kubernetes/pkg/util/node", + "k8s.io/kubernetes/pkg/util/nsenter", + "k8s.io/kubernetes/pkg/util/parsers", + "k8s.io/kubernetes/pkg/util/pointer", + "k8s.io/kubernetes/pkg/util/slice", + "k8s.io/kubernetes/pkg/util/taints", + "k8s.io/kubernetes/pkg/version", + "k8s.io/kubernetes/pkg/version/prometheus", + "k8s.io/kubernetes/pkg/volume", + "k8s.io/kubernetes/pkg/volume/util", + "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm", + "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates", + "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/util", + "k8s.io/kubernetes/plugin/pkg/scheduler/api", + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache", + "k8s.io/kubernetes/plugin/pkg/scheduler/util" + ], + "ForbiddenPrefixes": [] + }] +} \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/BUILD index 775701b94..2c6a7b2f3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/BUILD @@ -10,14 +10,16 @@ go_test( name = "go_default_test", srcs = [ "autoscale_test.go", - "cluster_test.go", "clusterrolebinding_test.go", "configmap_test.go", "delete_test.go", "deployment_test.go", "env_file_test.go", "generate_test.go", + "history_test.go", "namespace_test.go", + "pdb_test.go", + "priorityclass_test.go", "quota_test.go", "resource_filter_test.go", "rolebinding_test.go", @@ -36,14 +38,12 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubectl", library = ":go_default_library", deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", - "//pkg/apis/apps:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", - "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library", @@ -59,7 +59,10 @@ go_test( "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", + "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -71,6 +74,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/rest/fake:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", @@ -84,7 +88,6 @@ go_library( "apply.go", "autoscale.go", "bash_comp_utils.go", - "cluster.go", "clusterrolebinding.go", "configmap.go", "delete.go", @@ -97,6 +100,7 @@ go_library( "kubectl.go", "namespace.go", "pdb.go", + "priorityclass.go", "quota.go", "resource_filter.go", "rolebinding.go", @@ -116,15 +120,13 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubectl", deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/apis/extensions:go_default_library", - "//pkg/apis/policy:go_default_library", - "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library", @@ -135,6 +137,7 @@ go_library( "//pkg/controller/deployment/util:go_default_library", "//pkg/controller/statefulset:go_default_library", "//pkg/credentialprovider:go_default_library", + "//pkg/kubectl/apps:go_default_library", "//pkg/kubectl/resource:go_default_library", "//pkg/kubectl/util:go_default_library", "//pkg/kubectl/util/hash:go_default_library", @@ -151,7 +154,10 @@ go_library( "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", + "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -171,6 +177,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", @@ -200,6 +207,7 @@ filegroup( "//pkg/kubectl/plugins:all-srcs", "//pkg/kubectl/proxy:all-srcs", "//pkg/kubectl/resource:all-srcs", + "//pkg/kubectl/scheme:all-srcs", "//pkg/kubectl/testing:all-srcs", "//pkg/kubectl/util:all-srcs", "//pkg/kubectl/validation:all-srcs", diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply.go index ba7488895..784fc9b25 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply.go @@ -19,7 +19,7 @@ package kubectl import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl/resource" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/element.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/element.go index 44b90d85a..0b55b109b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/element.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/element.go @@ -78,16 +78,14 @@ type FieldMeta interface { // FieldMetaImpl implements FieldMeta type FieldMetaImpl struct { - // The type of merge strategy to use for this field + // MergeType is the type of merge strategy to use for this field // maybe "merge", "replace" or "retainkeys" - // TODO: There maybe multiple strategies, so this may need to be a slice, map, or struct - // Address this in a follow up in the PR to introduce retainkeys strategy MergeType string - // The merge key to use when the MergeType is "merge" and underlying type is a list + // MergeKeys are the merge keys to use when the MergeType is "merge" and underlying type is a list MergeKeys MergeKeys - // The openapi type of the field - "list", "primitive", "map" + // Type is the openapi type of the field - "list", "primitive", "map" Type string // Name contains of the field diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/BUILD index 89842456a..aedfc3f8a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/BUILD @@ -19,6 +19,7 @@ go_library( "//pkg/kubectl/apply:go_default_library", "//pkg/kubectl/cmd/util/openapi:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/factory.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/factory.go index 7bd20c435..c9cc8fb2e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/factory.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/factory.go @@ -20,6 +20,7 @@ import ( "fmt" "reflect" + "k8s.io/kube-openapi/pkg/util/proto" "k8s.io/kubernetes/pkg/kubectl/apply" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" ) @@ -60,7 +61,7 @@ func (b *Factory) CreateElement(recorded, local, remote map[string]interface{}) } // getItem returns the appropriate Item based on the underlying type of the arguments -func (v *ElementBuildingVisitor) getItem(s openapi.Schema, name string, data apply.RawElementData) (Item, error) { +func (v *ElementBuildingVisitor) getItem(s proto.Schema, name string, data apply.RawElementData) (Item, error) { kind, err := getType(data.GetRecorded(), data.GetLocal(), data.GetRemote()) if err != nil { return nil, err @@ -77,25 +78,43 @@ func (v *ElementBuildingVisitor) getItem(s openapi.Schema, name string, data app reflect.String: p, err := getPrimitive(s) if err != nil { - return nil, fmt.Errorf("expected openapi Primitive, was %T for %v", s, kind) + return nil, fmt.Errorf("expected openapi Primitive, was %T for %v (%v)", s, kind, err) } return &primitiveItem{name, p, data}, nil case reflect.Array, reflect.Slice: a, err := getArray(s) if err != nil { - return nil, fmt.Errorf("expected openapi Array, was %T for %v", s, kind) + return nil, fmt.Errorf("expected openapi Array, was %T for %v (%v)", s, kind, err) } - return &listItem{name, a, apply.ListElementData{data}}, nil + return &listItem{ + Name: name, + Array: a, + ListElementData: apply.ListElementData{ + RawElementData: data, + }, + }, nil case reflect.Map: if k, err := getKind(s); err == nil { - return &typeItem{name, k, apply.MapElementData{data}}, nil + return &typeItem{ + Name: name, + Type: k, + MapElementData: apply.MapElementData{ + RawElementData: data, + }, + }, nil } // If it looks like a map, and no openapi type is found, default to mapItem m, err := getMap(s) if err != nil { - return nil, fmt.Errorf("expected openapi Kind or Map, was %T for %v", s, kind) + return nil, fmt.Errorf("expected openapi Kind or Map, was %T for %v (%v)", s, kind, err) } - return &mapItem{name, m, apply.MapElementData{data}}, nil + return &mapItem{ + Name: name, + Map: m, + MapElementData: apply.MapElementData{ + RawElementData: data, + }, + }, nil } return nil, fmt.Errorf("unsupported type type %v", kind) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/item.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/item.go index e2642a760..15eae075f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/item.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/item.go @@ -17,8 +17,8 @@ limitations under the License. package parse import ( + "k8s.io/kube-openapi/pkg/util/proto" "k8s.io/kubernetes/pkg/kubectl/apply" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" ) // Item wraps values from 3 sources (recorded, local, remote). @@ -31,7 +31,7 @@ type Item interface { // primitiveItem contains a recorded, local, and remote value type primitiveItem struct { Name string - Primitive *openapi.Primitive + Primitive *proto.Primitive apply.RawElementData } @@ -40,7 +40,7 @@ func (i *primitiveItem) CreateElement(v ItemVisitor) (apply.Element, error) { return v.CreatePrimitiveElement(i) } -func (i *primitiveItem) GetMeta() openapi.Schema { +func (i *primitiveItem) GetMeta() proto.Schema { // https://golang.org/doc/faq#nil_error if i.Primitive != nil { return i.Primitive @@ -51,7 +51,7 @@ func (i *primitiveItem) GetMeta() openapi.Schema { // listItem contains a recorded, local, and remote list type listItem struct { Name string - Array *openapi.Array + Array *proto.Array apply.ListElementData } @@ -60,7 +60,7 @@ func (i *listItem) CreateElement(v ItemVisitor) (apply.Element, error) { return v.CreateListElement(i) } -func (i *listItem) GetMeta() openapi.Schema { +func (i *listItem) GetMeta() proto.Schema { // https://golang.org/doc/faq#nil_error if i.Array != nil { return i.Array @@ -71,7 +71,7 @@ func (i *listItem) GetMeta() openapi.Schema { // mapItem contains a recorded, local, and remote map type mapItem struct { Name string - Map *openapi.Map + Map *proto.Map apply.MapElementData } @@ -80,7 +80,7 @@ func (i *mapItem) CreateElement(v ItemVisitor) (apply.Element, error) { return v.CreateMapElement(i) } -func (i *mapItem) GetMeta() openapi.Schema { +func (i *mapItem) GetMeta() proto.Schema { // https://golang.org/doc/faq#nil_error if i.Map != nil { return i.Map @@ -91,12 +91,12 @@ func (i *mapItem) GetMeta() openapi.Schema { // mapItem contains a recorded, local, and remote map type typeItem struct { Name string - Type *openapi.Kind + Type *proto.Kind apply.MapElementData } -func (i *typeItem) GetMeta() openapi.Schema { +func (i *typeItem) GetMeta() proto.Schema { // https://golang.org/doc/faq#nil_error if i.Type != nil { return i.Type diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/list_element.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/list_element.go index ed9a59dd2..487a5f19f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/list_element.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/list_element.go @@ -18,8 +18,9 @@ package parse import ( "fmt" + + "k8s.io/kube-openapi/pkg/util/proto" "k8s.io/kubernetes/pkg/kubectl/apply" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" ) // Contains the heavy lifting for finding tuples of matching elements in lists based on the merge key @@ -44,7 +45,7 @@ func (v ElementBuildingVisitor) mergeListElement(meta apply.FieldMetaImpl, item func (v ElementBuildingVisitor) doPrimitiveList(meta apply.FieldMetaImpl, item *listItem) (*apply.ListElement, error) { result := &apply.ListElement{ FieldMetaImpl: apply.FieldMetaImpl{ - MergeType: "merge", + MergeType: apply.MergeStrategy, Name: item.Name, }, ListElementData: item.ListElementData, @@ -70,7 +71,7 @@ func (v ElementBuildingVisitor) doPrimitiveList(meta apply.FieldMetaImpl, item * } for i, l := range orderedKeys.Items { - var s openapi.Schema + var s proto.Schema if item.Array != nil && item.Array.SubType != nil { s = item.Array.SubType } @@ -100,7 +101,7 @@ func (v ElementBuildingVisitor) doMapList(meta apply.FieldMetaImpl, item *listIt key := meta.GetFieldMergeKeys() result := &apply.ListElement{ FieldMetaImpl: apply.FieldMetaImpl{ - MergeType: "merge", + MergeType: apply.MergeStrategy, MergeKeys: key, Name: item.Name, }, @@ -127,7 +128,7 @@ func (v ElementBuildingVisitor) doMapList(meta apply.FieldMetaImpl, item *listIt } for i, l := range orderedKeys.Items { - var s openapi.Schema + var s proto.Schema if item.Array != nil && item.Array.SubType != nil { s = item.Array.SubType } @@ -153,7 +154,11 @@ func (v ElementBuildingVisitor) doMapList(meta apply.FieldMetaImpl, item *listIt // Uses the "replace" strategy and identify "same" elements across lists by their index func (v ElementBuildingVisitor) replaceListElement(meta apply.FieldMetaImpl, item *listItem) (*apply.ListElement, error) { meta.Name = item.Name - result := &apply.ListElement{meta, item.ListElementData, []apply.Element{}} + result := &apply.ListElement{ + FieldMetaImpl: meta, + ListElementData: item.ListElementData, + Values: []apply.Element{}, + } // Use the max length to iterate over the slices for i := 0; i < max(len(item.GetRecordedList()), len(item.GetLocalList()), len(item.GetRemoteList())); i++ { @@ -171,7 +176,7 @@ func (v ElementBuildingVisitor) replaceListElement(meta apply.FieldMetaImpl, ite } // Create the Item - var s openapi.Schema + var s proto.Schema if item.Array != nil && item.Array.SubType != nil { s = item.Array.SubType } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/map_element.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/map_element.go index 6f21c566f..0580ab1ba 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/map_element.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/map_element.go @@ -17,14 +17,14 @@ limitations under the License. package parse import ( + "k8s.io/kube-openapi/pkg/util/proto" "k8s.io/kubernetes/pkg/kubectl/apply" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" ) // mapElement builds a new mapElement from a mapItem func (v ElementBuildingVisitor) mapElement(meta apply.FieldMetaImpl, item *mapItem) (*apply.MapElement, error) { // Function to return schema type of the map values - var fn schemaFn = func(string) openapi.Schema { + var fn schemaFn = func(string) proto.Schema { // All map values share the same schema if item.Map != nil && item.Map.SubType != nil { return item.Map.SubType @@ -39,11 +39,15 @@ func (v ElementBuildingVisitor) mapElement(meta apply.FieldMetaImpl, item *mapIt } // Return the result - return &apply.MapElement{meta, item.MapElementData, values}, nil + return &apply.MapElement{ + FieldMetaImpl: meta, + MapElementData: item.MapElementData, + Values: values, + }, nil } // schemaFn returns the schema for a field or map value based on its name or key -type schemaFn func(key string) openapi.Schema +type schemaFn func(key string) proto.Schema // createMapValues combines the recorded, local and remote values from // data into a map of elements. diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/openapi.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/openapi.go index 68d81567b..a55594de4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/openapi.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/openapi.go @@ -18,13 +18,15 @@ package parse import ( "fmt" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" + "strings" + + "k8s.io/kube-openapi/pkg/util/proto" ) // Contains functions for casting openapi interfaces to their underlying types // getSchemaType returns the string type of the schema - e.g. array, primitive, map, kind, reference -func getSchemaType(schema openapi.Schema) string { +func getSchemaType(schema proto.Schema) string { if schema == nil { return "" } @@ -33,8 +35,8 @@ func getSchemaType(schema openapi.Schema) string { return visitor.Kind } -// getKind converts schema to an *openapi.Kind object -func getKind(schema openapi.Schema) (*openapi.Kind, error) { +// getKind converts schema to an *proto.Kind object +func getKind(schema proto.Schema) (*proto.Kind, error) { if schema == nil { return nil, nil } @@ -43,8 +45,8 @@ func getKind(schema openapi.Schema) (*openapi.Kind, error) { return visitor.Result, visitor.Err } -// getArray converts schema to an *openapi.Array object -func getArray(schema openapi.Schema) (*openapi.Array, error) { +// getArray converts schema to an *proto.Array object +func getArray(schema proto.Schema) (*proto.Array, error) { if schema == nil { return nil, nil } @@ -53,8 +55,8 @@ func getArray(schema openapi.Schema) (*openapi.Array, error) { return visitor.Result, visitor.Err } -// getMap converts schema to an *openapi.Map object -func getMap(schema openapi.Schema) (*openapi.Map, error) { +// getMap converts schema to an *proto.Map object +func getMap(schema proto.Schema) (*proto.Map, error) { if schema == nil { return nil, nil } @@ -63,8 +65,8 @@ func getMap(schema openapi.Schema) (*openapi.Map, error) { return visitor.Result, visitor.Err } -// getPrimitive converts schema to an *openapi.Primitive object -func getPrimitive(schema openapi.Schema) (*openapi.Primitive, error) { +// getPrimitive converts schema to an *proto.Primitive object +func getPrimitive(schema proto.Schema) (*proto.Primitive, error) { if schema == nil { return nil, nil } @@ -79,95 +81,147 @@ type baseSchemaVisitor struct { } // VisitArray implements openapi -func (v *baseSchemaVisitor) VisitArray(array *openapi.Array) { +func (v *baseSchemaVisitor) VisitArray(array *proto.Array) { v.Kind = "array" v.Err = fmt.Errorf("Array type not expected") } // MergeMap implements openapi -func (v *baseSchemaVisitor) VisitMap(*openapi.Map) { +func (v *baseSchemaVisitor) VisitMap(*proto.Map) { v.Kind = "map" v.Err = fmt.Errorf("Map type not expected") } // MergePrimitive implements openapi -func (v *baseSchemaVisitor) VisitPrimitive(*openapi.Primitive) { +func (v *baseSchemaVisitor) VisitPrimitive(*proto.Primitive) { v.Kind = "primitive" v.Err = fmt.Errorf("Primitive type not expected") } // VisitKind implements openapi -func (v *baseSchemaVisitor) VisitKind(*openapi.Kind) { +func (v *baseSchemaVisitor) VisitKind(*proto.Kind) { v.Kind = "kind" v.Err = fmt.Errorf("Kind type not expected") } // VisitReference implements openapi -func (v *baseSchemaVisitor) VisitReference(reference openapi.Reference) { +func (v *baseSchemaVisitor) VisitReference(reference proto.Reference) { v.Kind = "reference" v.Err = fmt.Errorf("Reference type not expected") } type kindSchemaVisitor struct { baseSchemaVisitor - Result *openapi.Kind + Result *proto.Kind } // VisitKind implements openapi -func (v *kindSchemaVisitor) VisitKind(result *openapi.Kind) { +func (v *kindSchemaVisitor) VisitKind(result *proto.Kind) { v.Result = result v.Kind = "kind" } // VisitReference implements openapi -func (v *kindSchemaVisitor) VisitReference(reference openapi.Reference) { +func (v *kindSchemaVisitor) VisitReference(reference proto.Reference) { reference.SubSchema().Accept(v) + if v.Err == nil { + v.Err = copyExtensions(reference.GetPath().String(), reference.GetExtensions(), v.Result.Extensions) + } +} + +func copyExtensions(field string, from, to map[string]interface{}) error { + // Copy extensions from field to type for references + for key, val := range from { + if curr, found := to[key]; found { + // Don't allow the same extension to be defined both on the field and on the type + return fmt.Errorf("Cannot override value for extension %s on field %s from %v to %v", + key, field, curr, val) + } + to[key] = val + } + return nil } type mapSchemaVisitor struct { baseSchemaVisitor - Result *openapi.Map + Result *proto.Map } // MergeMap implements openapi -func (v *mapSchemaVisitor) VisitMap(result *openapi.Map) { +func (v *mapSchemaVisitor) VisitMap(result *proto.Map) { v.Result = result v.Kind = "map" } // VisitReference implements openapi -func (v *mapSchemaVisitor) VisitReference(reference openapi.Reference) { +func (v *mapSchemaVisitor) VisitReference(reference proto.Reference) { reference.SubSchema().Accept(v) + if v.Err == nil { + v.Err = copyExtensions(reference.GetPath().String(), reference.GetExtensions(), v.Result.Extensions) + } } type arraySchemaVisitor struct { baseSchemaVisitor - Result *openapi.Array + Result *proto.Array } // VisitArray implements openapi -func (v *arraySchemaVisitor) VisitArray(result *openapi.Array) { +func (v *arraySchemaVisitor) VisitArray(result *proto.Array) { v.Result = result v.Kind = "array" + v.Err = copySubElementPatchStrategy(result.Path.String(), result.GetExtensions(), result.SubType.GetExtensions()) +} + +// copyPatchStrategy copies the strategies to subelements to the subtype +// e.g. PodTemplate.Volumes is a []Volume with "x-kubernetes-patch-strategy": "merge,retainKeys" +// the "retainKeys" strategy applies to merging Volumes, and must be copied to the sub element +func copySubElementPatchStrategy(field string, from, to map[string]interface{}) error { + // Check if the parent has a patch strategy extension + if ext, found := from["x-kubernetes-patch-strategy"]; found { + strategy, ok := ext.(string) + if !ok { + return fmt.Errorf("Expected string value for x-kubernetes-patch-strategy on %s, was %T", + field, ext) + } + // Check of the parent patch strategy has a sub patch strategy, and if so copy to the sub type + if strings.Contains(strategy, ",") { + strategies := strings.Split(strategy, ",") + if len(strategies) != 2 { + // Only 1 sub strategy is supported + return fmt.Errorf( + "Expected between 0 and 2 elements for x-kubernetes-patch-merge-strategy by got %v", + strategies) + } + to["x-kubernetes-patch-strategy"] = strategies[1] + } + } + return nil } // MergePrimitive implements openapi -func (v *arraySchemaVisitor) VisitReference(reference openapi.Reference) { +func (v *arraySchemaVisitor) VisitReference(reference proto.Reference) { reference.SubSchema().Accept(v) + if v.Err == nil { + v.Err = copyExtensions(reference.GetPath().String(), reference.GetExtensions(), v.Result.Extensions) + } } type primitiveSchemaVisitor struct { baseSchemaVisitor - Result *openapi.Primitive + Result *proto.Primitive } // MergePrimitive implements openapi -func (v *primitiveSchemaVisitor) VisitPrimitive(result *openapi.Primitive) { +func (v *primitiveSchemaVisitor) VisitPrimitive(result *proto.Primitive) { v.Result = result v.Kind = "primitive" } // VisitReference implements openapi -func (v *primitiveSchemaVisitor) VisitReference(reference openapi.Reference) { +func (v *primitiveSchemaVisitor) VisitReference(reference proto.Reference) { reference.SubSchema().Accept(v) + if v.Err == nil { + v.Err = copyExtensions(reference.GetPath().String(), reference.GetExtensions(), v.Result.Extensions) + } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/primitive_element.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/primitive_element.go index 5fac5ce04..de393e86a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/primitive_element.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/primitive_element.go @@ -21,5 +21,8 @@ import "k8s.io/kubernetes/pkg/kubectl/apply" // primitiveElement builds a new primitiveElement from a PrimitiveItem func (v ElementBuildingVisitor) primitiveElement(item *primitiveItem) (*apply.PrimitiveElement, error) { meta := apply.FieldMetaImpl{Name: item.Name} - return &apply.PrimitiveElement{meta, item.RawElementData}, nil + return &apply.PrimitiveElement{ + FieldMetaImpl: meta, + RawElementData: item.RawElementData, + }, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/type_element.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/type_element.go index 0eabd9df0..e2fa1d8b6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/type_element.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/type_element.go @@ -17,14 +17,14 @@ limitations under the License. package parse import ( + "k8s.io/kube-openapi/pkg/util/proto" "k8s.io/kubernetes/pkg/kubectl/apply" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" ) // typeElement builds a new mapElement from a typeItem func (v ElementBuildingVisitor) typeElement(meta apply.FieldMetaImpl, item *typeItem) (*apply.TypeElement, error) { // Function to get the schema of a field from its key - var fn schemaFn = func(key string) openapi.Schema { + var fn schemaFn = func(key string) proto.Schema { if item.Type != nil && item.Type.Fields != nil { return item.Type.Fields[key] } @@ -38,5 +38,9 @@ func (v ElementBuildingVisitor) typeElement(meta apply.FieldMetaImpl, item *type } // Return the result - return &apply.TypeElement{meta, item.MapElementData, values}, nil + return &apply.TypeElement{ + FieldMetaImpl: meta, + MapElementData: item.MapElementData, + Values: values, + }, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/util.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/util.go index 9d170abf7..ce7adddab 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/util.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/util.go @@ -22,8 +22,8 @@ import ( "strings" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/kube-openapi/pkg/util/proto" "k8s.io/kubernetes/pkg/kubectl/apply" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" ) // nilSafeLookup returns the value from the map if the map is non-nil @@ -97,17 +97,24 @@ func getType(args ...interface{}) (reflect.Type, error) { } // getFieldMeta parses the metadata about the field from the openapi spec -func getFieldMeta(s openapi.Schema, name string) (apply.FieldMetaImpl, error) { +func getFieldMeta(s proto.Schema, name string) (apply.FieldMetaImpl, error) { m := apply.FieldMetaImpl{} if s != nil { ext := s.GetExtensions() - if s, found := ext["x-kubernetes-patch-strategy"]; found { - strategy, ok := s.(string) + if e, found := ext["x-kubernetes-patch-strategy"]; found { + strategy, ok := e.(string) if !ok { return apply.FieldMetaImpl{}, fmt.Errorf("Expected string for x-kubernetes-patch-strategy by got %T", s) } - // TODO: Support multi-strategy - m.MergeType = strategy + + // Take the first strategy if there are substrategies. + // Sub strategies are copied to sub types in openapi.go + strategies := strings.Split(strategy, ",") + if len(strategies) > 2 { + return apply.FieldMetaImpl{}, fmt.Errorf("Expected between 0 and 2 elements for x-kubernetes-patch-merge-strategy by got %v", strategies) + } + // For lists, choose the strategy for this type, not the subtype + m.MergeType = strategies[0] } if k, found := ext["x-kubernetes-patch-merge-key"]; found { key, ok := k.(string) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/visitor.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/visitor.go index 5c01d26c1..d67ba6a79 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/visitor.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/parse/visitor.go @@ -54,7 +54,7 @@ func (v ElementBuildingVisitor) CreateListElement(item *listItem) (apply.Element if err != nil { return nil, err } - if meta.GetFieldMergeType() == "merge" { + if meta.GetFieldMergeType() == apply.MergeStrategy { return v.mergeListElement(meta, item) } return v.replaceListElement(meta, item) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/BUILD index b489a9545..e1810a786 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/BUILD @@ -25,6 +25,7 @@ go_test( "replace_map_list_test.go", "replace_map_test.go", "replace_primitive_list_test.go", + "retain_keys_test.go", "suite_test.go", "utils_test.go", ], diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/merge_map_list_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/merge_map_list_test.go index df0dfffe4..f18eb875f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/merge_map_list_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/merge_map_list_test.go @@ -20,6 +20,8 @@ import ( . "github.com/onsi/ginkgo" "k8s.io/kubernetes/pkg/kubectl/apply/strategy" + "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" + tst "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing" ) var _ = Describe("Merging fields of type list-of-map with openapi", func() { @@ -431,6 +433,11 @@ spec: }) var _ = Describe("Merging fields of type list-of-map with openapi containing a multi-field mergekey", func() { + var resources openapi.Resources + BeforeEach(func() { + resources = tst.NewFakeResources("test_swagger.json") + }) + Context("where one of the items has been deleted", func() { It("should delete the item", func() { recorded := create(` @@ -492,7 +499,7 @@ spec: protocol: TCP hostPort: 2020 `) - runWith(strategy.Create(strategy.Options{}), recorded, local, remote, expected, "test_swagger.json") + runWith(strategy.Create(strategy.Options{}), recorded, local, remote, expected, resources) }) }) @@ -564,7 +571,7 @@ spec: hostPort: 2022 hostIP: "127.0.0.1" `) - runWith(strategy.Create(strategy.Options{}), recorded, local, remote, expected, "test_swagger.json") + runWith(strategy.Create(strategy.Options{}), recorded, local, remote, expected, resources) }) }) @@ -630,7 +637,7 @@ spec: protocol: UDP hostPort: 2022 `) - runWith(strategy.Create(strategy.Options{}), recorded, local, remote, expected, "test_swagger.json") + runWith(strategy.Create(strategy.Options{}), recorded, local, remote, expected, resources) }) }) }) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/merge_visitor.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/merge_visitor.go index 3a3c414fc..94a9d701f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/merge_visitor.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/merge_visitor.go @@ -29,13 +29,13 @@ func createMergeStrategy(options Options, strategic *delegatingStrategy) mergeSt } } -// mergeStrategy creates a patch to merge a local file value into a remote field value +// mergeStrategy merges the values in an Element into a single Result type mergeStrategy struct { strategic *delegatingStrategy options Options } -// MergeList creates a patch to merge a local list field value into a remote list field value +// MergeList merges the lists in a ListElement into a single Result func (v mergeStrategy) MergeList(e apply.ListElement) (apply.Result, error) { // No merge logic if adding or deleting a field if result, done := v.doAddOrDelete(e); done { @@ -51,7 +51,6 @@ func (v mergeStrategy) MergeList(e apply.ListElement) (apply.Result, error) { return apply.Result{}, err } - fmt.Printf("\nResult %+v\n%+v\n", m.MergedResult, value) switch m.Operation { case apply.SET: // Keep the list item value @@ -71,26 +70,32 @@ func (v mergeStrategy) MergeList(e apply.ListElement) (apply.Result, error) { return apply.Result{Operation: apply.SET, MergedResult: merged}, nil } -// MergeMap creates a patch to merge a local map field into a remote map field +// MergeMap merges the maps in a MapElement into a single Result func (v mergeStrategy) MergeMap(e apply.MapElement) (apply.Result, error) { - return v.doMergeMap(e) -} + // No merge logic if adding or deleting a field + if result, done := v.doAddOrDelete(e); done { + return result, nil + } -// MergeType creates a patch to merge a local map field into a remote map field -func (v mergeStrategy) MergeType(e apply.TypeElement) (apply.Result, error) { - return v.doMergeMap(e) + return v.doMergeMap(e.GetValues()) } -// do merges a recorded, local and remote map into a new object -func (v mergeStrategy) doMergeMap(e apply.MapValuesElement) (apply.Result, error) { +// MergeMap merges the type instances in a TypeElement into a single Result +func (v mergeStrategy) MergeType(e apply.TypeElement) (apply.Result, error) { // No merge logic if adding or deleting a field if result, done := v.doAddOrDelete(e); done { return result, nil } + return v.doMergeMap(e.GetValues()) +} + +// do merges a recorded, local and remote map into a new object +func (v mergeStrategy) doMergeMap(e map[string]apply.Element) (apply.Result, error) { + // Merge each item in the list merged := map[string]interface{}{} - for key, value := range e.GetValues() { + for key, value := range e { // Recursively merge the map element before adding the value to the map result, err := value.Merge(v.strategic) if err != nil { @@ -135,7 +140,7 @@ func (v mergeStrategy) MergePrimitive(diff apply.PrimitiveElement) (apply.Result return apply.Result{}, fmt.Errorf("Cannot merge primitive element %v", diff.Name) } -// MergeEmpty +// MergeEmpty returns an empty result func (v mergeStrategy) MergeEmpty(diff apply.EmptyElement) (apply.Result, error) { return apply.Result{Operation: apply.SET}, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/replace_map_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/replace_map_test.go index ff6141ea4..e6873c17a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/replace_map_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/replace_map_test.go @@ -20,9 +20,16 @@ import ( . "github.com/onsi/ginkgo" "k8s.io/kubernetes/pkg/kubectl/apply/strategy" + "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" + tst "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing" ) var _ = Describe("Replacing fields of type map with openapi for some fields", func() { + var resources openapi.Resources + BeforeEach(func() { + resources = tst.NewFakeResources("test_swagger.json") + }) + Context("where a field is has been updated", func() { It("should update the field", func() { recorded := create(` @@ -67,7 +74,7 @@ spec: `) // Use modified swagger for ReplicaSet spec - runWith(strategy.Create(strategy.Options{}), recorded, local, remote, expected, "test_swagger.json") + runWith(strategy.Create(strategy.Options{}), recorded, local, remote, expected, resources) }) }) }) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/retain_keys_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/retain_keys_test.go new file mode 100644 index 000000000..481da91a0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/retain_keys_test.go @@ -0,0 +1,195 @@ +/* +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 strategy_test + +import ( + . "github.com/onsi/ginkgo" + + "k8s.io/kubernetes/pkg/kubectl/apply/strategy" +) + +var _ = Describe("Merging fields with the retainkeys strategy", func() { + Context("where some fields are only defined remotely", func() { + It("should drop those fields ", func() { + recorded := create(` +apiVersion: extensions/v1beta1 +kind: Deployment +spec: + strategy: +`) + local := create(` +apiVersion: extensions/v1beta1 +kind: Deployment +spec: + strategy: + type: Recreate +`) + remote := create(` +apiVersion: extensions/v1beta1 +kind: Deployment +spec: + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + maxSurge: 1 +`) + expected := create(` +apiVersion: extensions/v1beta1 +kind: Deployment +spec: + strategy: + type: Recreate +`) + run(strategy.Create(strategy.Options{}), recorded, local, remote, expected) + }) + }) + + Context("where some fields are defined both locally and remotely", func() { + It("should merge those fields", func() { + recorded := create(` +apiVersion: extensions/v1beta1 +kind: Deployment +spec: + strategy: +`) + local := create(` +apiVersion: extensions/v1beta1 +kind: Deployment +spec: + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 2 +`) + remote := create(` +apiVersion: extensions/v1beta1 +kind: Deployment +spec: + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 +`) + expected := create(` +apiVersion: extensions/v1beta1 +kind: Deployment +spec: + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 2 + maxSurge: 1 +`) + run(strategy.Create(strategy.Options{}), recorded, local, remote, expected) + }) + }) + + Context("where the elements are in a list and some fields are only defined remotely", func() { + It("should drop those fields ", func() { + recorded := create(` +apiVersion: apps/v1beta1 +kind: Deployment +spec: + template: + spec: +`) + local := create(` +apiVersion: apps/v1beta1 +kind: Deployment +spec: + template: + spec: + volumes: + - name: cache-volume + emptyDir: +`) + remote := create(` +apiVersion: apps/v1beta1 +kind: Deployment +spec: + template: + spec: + volumes: + - name: cache-volume + hostPath: + path: /tmp/cache-volume +`) + expected := create(` +apiVersion: apps/v1beta1 +kind: Deployment +spec: + template: + spec: + volumes: + - name: cache-volume + emptyDir: +`) + run(strategy.Create(strategy.Options{}), recorded, local, remote, expected) + }) + }) + + Context("where the elements are in a list", func() { + It("the fields defined both locally and remotely should be merged", func() { + recorded := create(` +apiVersion: apps/v1beta1 +kind: Deployment +spec: + template: + spec: +`) + local := create(` +apiVersion: apps/v1beta1 +kind: Deployment +spec: + template: + spec: + volumes: + - name: cache-volume + hostPath: + path: /tmp/cache-volume + emptyDir: +`) + remote := create(` +apiVersion: apps/v1beta1 +kind: Deployment +spec: + template: + spec: + volumes: + - name: cache-volume + hostPath: + path: /tmp/cache-volume + type: Directory +`) + expected := create(` +apiVersion: apps/v1beta1 +kind: Deployment +spec: + template: + spec: + volumes: + - name: cache-volume + hostPath: + path: /tmp/cache-volume + type: Directory + emptyDir: +`) + run(strategy.Create(strategy.Options{}), recorded, local, remote, expected) + }) + }) +}) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/retain_keys_visitor.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/retain_keys_visitor.go index 2483af0fa..b901285be 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/retain_keys_visitor.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/retain_keys_visitor.go @@ -16,4 +16,62 @@ limitations under the License. package strategy -// TODO: Write this +import ( + "fmt" + "k8s.io/kubernetes/pkg/kubectl/apply" +) + +func createRetainKeysStrategy(options Options, strategic *delegatingStrategy) retainKeysStrategy { + return retainKeysStrategy{ + &mergeStrategy{strategic, options}, + strategic, + options, + } +} + +// retainKeysStrategy merges the values in an Element into a single Result, +// dropping any fields omitted from the local copy. (but merging values when +// defined locally and remotely) +type retainKeysStrategy struct { + merge *mergeStrategy + strategic *delegatingStrategy + options Options +} + +// MergeMap merges the type instances in a TypeElement into a single Result +// keeping only the fields defined locally, but merging their values with +// the remote values. +func (v retainKeysStrategy) MergeType(e apply.TypeElement) (apply.Result, error) { + // No merge logic if adding or deleting a field + if result, done := v.merge.doAddOrDelete(&e); done { + return result, nil + } + + elem := map[string]apply.Element{} + for key := range e.GetLocalMap() { + elem[key] = e.GetValues()[key] + } + return v.merge.doMergeMap(elem) +} + +// MergeMap returns an error. Only TypeElements can have retainKeys. +func (v retainKeysStrategy) MergeMap(e apply.MapElement) (apply.Result, error) { + return apply.Result{}, fmt.Errorf("Cannot use retainkeys with map element %v", e.Name) +} + +// MergeList returns an error. Only TypeElements can have retainKeys. +func (v retainKeysStrategy) MergeList(e apply.ListElement) (apply.Result, error) { + return apply.Result{}, fmt.Errorf("Cannot use retainkeys with list element %v", e.Name) +} + +// MergePrimitive returns an error. Only TypeElements can have retainKeys. +func (v retainKeysStrategy) MergePrimitive(diff apply.PrimitiveElement) (apply.Result, error) { + return apply.Result{}, fmt.Errorf("Cannot use retainkeys with primitive element %v", diff.Name) +} + +// MergeEmpty returns an empty result +func (v retainKeysStrategy) MergeEmpty(diff apply.EmptyElement) (apply.Result, error) { + return v.merge.MergeEmpty(diff) +} + +var _ apply.Strategy = &retainKeysStrategy{} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/strategic_visitor.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/strategic_visitor.go index 399227172..eae1f9230 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/strategic_visitor.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/strategic_visitor.go @@ -16,14 +16,17 @@ limitations under the License. package strategy -import "k8s.io/kubernetes/pkg/kubectl/apply" +import ( + "k8s.io/kubernetes/pkg/kubectl/apply" +) // delegatingStrategy delegates merging fields to other visitor implementations // based on the merge strategy preferred by the field. type delegatingStrategy struct { - options Options - merge mergeStrategy - replace replaceStrategy + options Options + merge mergeStrategy + replace replaceStrategy + retainKeys retainKeysStrategy } // createDelegatingStrategy returns a new delegatingStrategy @@ -33,18 +36,20 @@ func createDelegatingStrategy(options Options) *delegatingStrategy { } v.replace = createReplaceStrategy(options, v) v.merge = createMergeStrategy(options, v) + v.retainKeys = createRetainKeysStrategy(options, v) return v } // MergeList delegates visiting a list based on the field patch strategy. // Defaults to "replace" func (v delegatingStrategy) MergeList(diff apply.ListElement) (apply.Result, error) { - // TODO: Support retainkeys switch diff.GetFieldMergeType() { - case "merge": + case apply.MergeStrategy: return v.merge.MergeList(diff) - case "replace": + case apply.ReplaceStrategy: return v.replace.MergeList(diff) + case apply.RetainKeysStrategy: + return v.retainKeys.MergeList(diff) default: return v.replace.MergeList(diff) } @@ -53,12 +58,13 @@ func (v delegatingStrategy) MergeList(diff apply.ListElement) (apply.Result, err // MergeMap delegates visiting a map based on the field patch strategy. // Defaults to "merge" func (v delegatingStrategy) MergeMap(diff apply.MapElement) (apply.Result, error) { - // TODO: Support retainkeys switch diff.GetFieldMergeType() { - case "merge": + case apply.MergeStrategy: return v.merge.MergeMap(diff) - case "replace": + case apply.ReplaceStrategy: return v.replace.MergeMap(diff) + case apply.RetainKeysStrategy: + return v.retainKeys.MergeMap(diff) default: return v.merge.MergeMap(diff) } @@ -67,12 +73,13 @@ func (v delegatingStrategy) MergeMap(diff apply.MapElement) (apply.Result, error // MergeType delegates visiting a map based on the field patch strategy. // Defaults to "merge" func (v delegatingStrategy) MergeType(diff apply.TypeElement) (apply.Result, error) { - // TODO: Support retainkeys switch diff.GetFieldMergeType() { - case "merge": + case apply.MergeStrategy: return v.merge.MergeType(diff) - case "replace": + case apply.ReplaceStrategy: return v.replace.MergeType(diff) + case apply.RetainKeysStrategy: + return v.retainKeys.MergeType(diff) default: return v.merge.MergeType(diff) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/utils_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/utils_test.go index a5c226e53..1ca687bac 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/utils_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/strategy/utils_test.go @@ -32,19 +32,15 @@ import ( tst "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing" ) +var fakeResources = tst.NewFakeResources(filepath.Join("..", "..", "..", "..", "api", "openapi-spec", "swagger.json")) + // run parses the openapi and runs the tests func run(instance apply.Strategy, recorded, local, remote, expected map[string]interface{}) { - runWith(instance, recorded, local, remote, expected, - filepath.Join("..", "..", "..", "..", "api", "openapi-spec", "swagger.json")) + runWith(instance, recorded, local, remote, expected, fakeResources) } -func runWith(instance apply.Strategy, recorded, local, remote, expected map[string]interface{}, swaggerPath string) { - fakeSchema := tst.Fake{Path: swaggerPath} - s, err := fakeSchema.OpenAPISchema() - Expect(err).To(BeNil()) - resources, err := openapi.NewOpenAPIData(s) - Expect(err).To(BeNil()) - parseFactory := parse.Factory{resources} +func runWith(instance apply.Strategy, recorded, local, remote, expected map[string]interface{}, resources openapi.Resources) { + parseFactory := parse.Factory{Resources: resources} parsed, err := parseFactory.CreateElement(recorded, local, remote) Expect(err).Should(Not(HaveOccurred())) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/visitor.go b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/visitor.go index 0cf895718..d63d973cd 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/apply/visitor.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/apply/visitor.go @@ -56,8 +56,13 @@ type Result struct { MergedResult interface{} } -// MapValuesElement exposes how to get the field / key - value pairs out of a Map or Type Element -type MapValuesElement interface { - Element - GetValues() map[string]Element -} +const ( + // MergeStrategy is the strategy to merge the local and remote values + MergeStrategy = "merge" + + // RetainKeysStrategy is the strategy to merge the local and remote values, but drop any fields not defined locally + RetainKeysStrategy = "retainKeys" + + // ReplaceStrategy is the strategy to replace the remote value with the local value + ReplaceStrategy = "replace" +) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cluster.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cluster.go deleted file mode 100644 index ffac838b4..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cluster.go +++ /dev/null @@ -1,159 +0,0 @@ -/* -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 kubectl - -import ( - "fmt" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" -) - -const ( - ServiceAccountNameAnnotation = "federation.kubernetes.io/servive-account-name" - ClusterRoleNameAnnotation = "federation.kubernetes.io/cluster-role-name" -) - -// ClusterGeneratorV1Beta1 supports stable generation of a -// federation/cluster resource. -type ClusterGeneratorV1Beta1 struct { - // Name of the cluster context (required) - Name string - // ClientCIDR is the CIDR range in which the Kubernetes APIServer - // is available for the client (optional) - ClientCIDR string - // ServerAddress is the APIServer address of the Kubernetes cluster - // that is being registered (required) - ServerAddress string - // SecretName is the name of the secret that stores the credentials - // for the Kubernetes cluster that is being registered (optional) - SecretName string - // ServiceAccountName is the name of the service account that is - // created in the cluster being registered. If this is provided, - // then ClusterRoleName must also be provided (optional) - ServiceAccountName string - // ClusterRoleName is the name of the cluster role and cluster role - // binding that are created in the cluster being registered. If this - // is provided, then ServiceAccountName must also be provided - // (optional) - ClusterRoleName string -} - -// Ensure it supports the generator pattern that uses parameter -// injection. -var _ Generator = &ClusterGeneratorV1Beta1{} - -// Ensure it supports the generator pattern that uses parameters -// specified during construction. -var _ StructuredGenerator = &ClusterGeneratorV1Beta1{} - -// Generate returns a cluster resource using the specified parameters. -func (s ClusterGeneratorV1Beta1) Generate(genericParams map[string]interface{}) (runtime.Object, error) { - err := ValidateParams(s.ParamNames(), genericParams) - if err != nil { - return nil, err - } - clustergen := &ClusterGeneratorV1Beta1{} - params := map[string]string{} - for key, value := range genericParams { - strVal, isString := value.(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for '%s'", value, key) - } - params[key] = strVal - } - clustergen.Name = params["name"] - clustergen.ClientCIDR = params["client-cidr"] - clustergen.ServerAddress = params["server-address"] - clustergen.SecretName = params["secret"] - clustergen.ServiceAccountName = params["service-account-name"] - clustergen.ClusterRoleName = params["cluster-role-name"] - return clustergen.StructuredGenerate() -} - -// ParamNames returns the set of supported input parameters when using -// the parameter injection generator pattern. -func (s ClusterGeneratorV1Beta1) ParamNames() []GeneratorParam { - return []GeneratorParam{ - {"name", true}, - {"client-cidr", false}, - {"server-address", true}, - {"secret", false}, - {"service-account-name", false}, - {"cluster-role-name", false}, - } -} - -// StructuredGenerate outputs a federation cluster resource object -// using the configured fields. -func (s ClusterGeneratorV1Beta1) StructuredGenerate() (runtime.Object, error) { - if err := s.validate(); err != nil { - return nil, err - } - if s.ClientCIDR == "" { - s.ClientCIDR = "0.0.0.0/0" - } - if s.SecretName == "" { - s.SecretName = s.Name - } - cluster := &federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: s.Name, - }, - Spec: federationapi.ClusterSpec{ - ServerAddressByClientCIDRs: []federationapi.ServerAddressByClientCIDR{ - { - ClientCIDR: s.ClientCIDR, - ServerAddress: s.ServerAddress, - }, - }, - SecretRef: &v1.LocalObjectReference{ - Name: s.SecretName, - }, - }, - } - - annotations := make(map[string]string) - if s.ServiceAccountName != "" { - annotations[ServiceAccountNameAnnotation] = s.ServiceAccountName - } - if s.ClusterRoleName != "" { - annotations[ClusterRoleNameAnnotation] = s.ClusterRoleName - } - if len(annotations) == 1 { - return nil, fmt.Errorf("Either both or neither of ServiceAccountName and ClusterRoleName must be provided.") - } - if len(annotations) > 0 { - cluster.SetAnnotations(annotations) - } - - return cluster, nil -} - -// validate validates required fields are set to support structured -// generation. -func (s ClusterGeneratorV1Beta1) validate() error { - if len(s.Name) == 0 { - return fmt.Errorf("name must be specified") - } - if len(s.ServerAddress) == 0 { - return fmt.Errorf("server address must be specified") - } - return nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cluster_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cluster_test.go deleted file mode 100644 index ef21accd1..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cluster_test.go +++ /dev/null @@ -1,239 +0,0 @@ -/* -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 kubectl - -import ( - "reflect" - "testing" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" -) - -func TestClusterGenerate(t *testing.T) { - tests := []struct { - params map[string]interface{} - expected *federationapi.Cluster - expectErr bool - }{ - { - params: map[string]interface{}{ - "name": "foo", - "client-cidr": "0.0.0.0/0", - "server-address": "10.20.30.40", - "secret": "foo-credentials", - }, - expected: &federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - }, - Spec: federationapi.ClusterSpec{ - ServerAddressByClientCIDRs: []federationapi.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "10.20.30.40", - }, - }, - SecretRef: &v1.LocalObjectReference{ - Name: "foo-credentials", - }, - }, - }, - expectErr: false, - }, - { - params: map[string]interface{}{ - "name": "foo", - "client-cidr": "10.20.30.40/16", - "server-address": "https://foo.example.com", - "secret": "foo-credentials", - }, - expected: &federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - }, - Spec: federationapi.ClusterSpec{ - ServerAddressByClientCIDRs: []federationapi.ServerAddressByClientCIDR{ - { - ClientCIDR: "10.20.30.40/16", - ServerAddress: "https://foo.example.com", - }, - }, - SecretRef: &v1.LocalObjectReference{ - Name: "foo-credentials", - }, - }, - }, - expectErr: false, - }, - { - params: map[string]interface{}{ - "name": "bar-cluster", - "client-cidr": "10.20.30.40/16", - "server-address": "http://10.20.30.40", - "secret": "credentials", - }, - expected: &federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "bar-cluster", - }, - Spec: federationapi.ClusterSpec{ - ServerAddressByClientCIDRs: []federationapi.ServerAddressByClientCIDR{ - { - ClientCIDR: "10.20.30.40/16", - ServerAddress: "http://10.20.30.40", - }, - }, - SecretRef: &v1.LocalObjectReference{ - Name: "credentials", - }, - }, - }, - expectErr: false, - }, - { - params: map[string]interface{}{ - "name": "bar-cluster", - "client-cidr": "10.20.30.40/16", - "server-address": "http://10.20.30.40", - "secret": "credentials", - }, - expected: &federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "bar-cluster", - }, - Spec: federationapi.ClusterSpec{ - ServerAddressByClientCIDRs: []federationapi.ServerAddressByClientCIDR{ - { - ClientCIDR: "10.20.30.40/16", - ServerAddress: "http://10.20.30.40", - }, - }, - SecretRef: &v1.LocalObjectReference{ - Name: "credentials", - }, - }, - }, - expectErr: false, - }, - { - params: map[string]interface{}{ - "name": "bar-cluster", - "client-cidr": "10.20.30.40/16", - "server-address": "http://10.20.30.40", - "secret": "credentials", - "service-account-name": "service-account", - "cluster-role-name": "cluster-role", - }, - expected: &federationapi.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "bar-cluster", - Annotations: map[string]string{ - ServiceAccountNameAnnotation: "service-account", - ClusterRoleNameAnnotation: "cluster-role", - }, - }, - Spec: federationapi.ClusterSpec{ - ServerAddressByClientCIDRs: []federationapi.ServerAddressByClientCIDR{ - { - ClientCIDR: "10.20.30.40/16", - ServerAddress: "http://10.20.30.40", - }, - }, - SecretRef: &v1.LocalObjectReference{ - Name: "credentials", - }, - }, - }, - expectErr: false, - }, - { - params: map[string]interface{}{ - "server-address": "https://10.20.30.40", - }, - expected: nil, - expectErr: true, - }, - { - params: map[string]interface{}{ - "secret": "baz-credentials", - }, - expected: nil, - expectErr: true, - }, - { - params: map[string]interface{}{ - "server-address": "http://foo.example.com", - "secret": "foo-credentials", - }, - expected: nil, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": "foo", - "secret": "foo-credentials", - }, - expected: nil, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": "foo", - "client-cidr": "10.20.30.40/16", - }, - expected: nil, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": "bar-cluster", - "client-cidr": "10.20.30.40/16", - "server-address": "http://10.20.30.40", - "secret": "credentials", - "cluster-role-name": "cluster-role", - }, - expected: nil, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": "bar-cluster", - "client-cidr": "10.20.30.40/16", - "server-address": "http://10.20.30.40", - "secret": "credentials", - "service-account-name": "service-account", - }, - expected: nil, - expectErr: true, - }, - } - generator := ClusterGeneratorV1Beta1{} - for i, test := range tests { - obj, err := generator.Generate(test.params) - if !test.expectErr && err != nil { - t.Errorf("[%d] unexpected error: %v", i, err) - } - if test.expectErr && err != nil { - continue - } - if !reflect.DeepEqual(obj.(*federationapi.Cluster), test.expected) { - t.Errorf("\n[%d] want:\n%#v\n[%d] got:\n%#v", i, test.expected, i, obj.(*federationapi.Cluster)) - } - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/BUILD index 07324d293..83e8ca7ab 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/BUILD @@ -30,6 +30,7 @@ go_library( "create_deployment.go", "create_namespace.go", "create_pdb.go", + "create_priorityclass.go", "create_quota.go", "create_role.go", "create_rolebinding.go", @@ -38,12 +39,12 @@ go_library( "create_serviceaccount.go", "delete.go", "describe.go", + "diff.go", "drain.go", "edit.go", "exec.go", "explain.go", "expose.go", - "get.go", "help.go", "label.go", "logs.go", @@ -67,29 +68,30 @@ go_library( "//build/visible_to:pkg_kubectl_cmd_CONSUMERS", ], deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/certificates:go_default_library", - "//pkg/apis/policy:go_default_library", - "//pkg/apis/rbac:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", - "//pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion:go_default_library", "//pkg/client/unversioned:go_default_library", "//pkg/kubectl:go_default_library", + "//pkg/kubectl/apply/parse:go_default_library", + "//pkg/kubectl/apply/strategy:go_default_library", "//pkg/kubectl/cmd/auth:go_default_library", "//pkg/kubectl/cmd/config:go_default_library", + "//pkg/kubectl/cmd/resource:go_default_library", "//pkg/kubectl/cmd/rollout:go_default_library", "//pkg/kubectl/cmd/set:go_default_library", "//pkg/kubectl/cmd/templates:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", "//pkg/kubectl/cmd/util/editor:go_default_library", - "//pkg/kubectl/cmd/util/openapi:go_default_library", "//pkg/kubectl/explain:go_default_library", "//pkg/kubectl/metricsutil:go_default_library", "//pkg/kubectl/plugins:go_default_library", "//pkg/kubectl/proxy:go_default_library", "//pkg/kubectl/resource:go_default_library", + "//pkg/kubectl/scheme:go_default_library", "//pkg/kubectl/util:go_default_library", "//pkg/kubectl/util/i18n:go_default_library", "//pkg/kubectl/util/term:go_default_library", @@ -112,6 +114,8 @@ go_library( "//vendor/k8s.io/api/batch/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -135,6 +139,9 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/portforward:go_default_library", @@ -152,6 +159,7 @@ go_test( "attach_test.go", "clusterinfo_dump_test.go", "cmd_test.go", + "convert_test.go", "cp_test.go", "create_clusterrole_test.go", "create_clusterrolebinding_test.go", @@ -159,6 +167,7 @@ go_test( "create_deployment_test.go", "create_namespace_test.go", "create_pdb_test.go", + "create_priorityclass_test.go", "create_quota_test.go", "create_role_test.go", "create_rolebinding_test.go", @@ -168,11 +177,11 @@ go_test( "create_test.go", "delete_test.go", "describe_test.go", + "diff_test.go", "drain_test.go", "edit_test.go", "exec_test.go", "expose_test.go", - "get_test.go", "label_test.go", "logs_test.go", "patch_test.go", @@ -194,20 +203,19 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubectl/cmd", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/ref:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", - "//pkg/apis/policy:go_default_library", - "//pkg/apis/rbac:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubectl/cmd/testing:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", - "//pkg/kubectl/cmd/util/openapi:go_default_library", "//pkg/kubectl/plugins:go_default_library", "//pkg/kubectl/resource:go_default_library", + "//pkg/kubectl/scheme:go_default_library", "//pkg/kubectl/util/i18n:go_default_library", "//pkg/kubectl/util/term:go_default_library", "//pkg/printers:go_default_library", @@ -217,8 +225,9 @@ go_test( "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/gopkg.in/yaml.v2:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -226,21 +235,18 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/json:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/dynamic:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/rest/fake:go_default_library", - "//vendor/k8s.io/client-go/rest/watch:go_default_library", "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/metrics/pkg/apis/metrics/v1alpha1:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", ], ) @@ -256,6 +262,7 @@ filegroup( ":package-srcs", "//pkg/kubectl/cmd/auth:all-srcs", "//pkg/kubectl/cmd/config:all-srcs", + "//pkg/kubectl/cmd/resource:all-srcs", "//pkg/kubectl/cmd/rollout:all-srcs", "//pkg/kubectl/cmd/set:all-srcs", "//pkg/kubectl/cmd/templates:all-srcs", diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/alpha.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/alpha.go index efec2b9b6..afbe7347d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/alpha.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/alpha.go @@ -37,6 +37,7 @@ func NewCmdAlpha(f cmdutil.Factory, in io.Reader, out, err io.Writer) *cobra.Com // Alpha commands should be added here. As features graduate from alpha they should move // from here to the CommandGroups defined by NewKubeletCommand() in cmd.go. //cmd.AddCommand(NewCmdDebug(f, in, out, err)) + cmd.AddCommand(NewCmdDiff(f, out, err)) // NewKubeletCommand() will hide the alpha command if it has no subcommands. Overriding // the help function ensures a reasonable message if someone types the hidden command anyway. diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/annotate.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/annotate.go index 3d53db969..bf1128568 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/annotate.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/annotate.go @@ -65,14 +65,16 @@ type AnnotateOptions struct { var ( annotateLong = templates.LongDesc(` - Update the annotations on one or more resources. + Update the annotations on one or more resources - * An annotation is a key/value pair that can hold larger (compared to a label), and possibly not human-readable, data. - * It is intended to store non-identifying auxiliary data, especially data manipulated by tools and system extensions. - * If --overwrite is true, then existing annotations can be overwritten, otherwise attempting to overwrite an annotation will result in an error. - * If --resource-version is specified, then updates will use this resource version, otherwise the existing resource-version will be used. + All Kubernetes objects support the ability to store additional data with the object as + annotations. Annotations are key/value pairs that can be larger than labels and include + arbitrary string values such as structured JSON. Tools and system extensions may use + annotations to store their own data. - ` + validResources) + Attempting to set an annotation that already exists will fail unless --overwrite is set. + If --resource-version is specified and does not match the current resource version on + the server the command will fail.`) annotateExample = templates.Examples(i18n.T(` # Update pod 'foo' with the annotation 'description' and the value 'my frontend'. @@ -113,7 +115,7 @@ func NewCmdAnnotate(f cmdutil.Factory, out io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]", Short: i18n.T("Update the annotations on a resource"), - Long: annotateLong, + Long: annotateLong + "\n\n" + cmdutil.ValidResourceTypeList(f), Example: annotateExample, Run: func(cmd *cobra.Command, args []string) { if err := options.Complete(out, cmd, args); err != nil { @@ -187,31 +189,23 @@ func (o AnnotateOptions) RunAnnotate(f cmdutil.Factory, cmd *cobra.Command) erro changeCause := f.Command(cmd, false) includeUninitialized := cmdutil.ShouldIncludeUninitialized(cmd, false) - b := f.NewBuilder(). - ContinueOnError(). - NamespaceParam(namespace).DefaultNamespace(). - FilenameParam(enforceNamespace, &o.FilenameOptions). - IncludeUninitialized(includeUninitialized). - Flatten() - - if !o.local { - // call this method here, as it requires an api call - // and will cause the command to fail when there is - // no connection to a server - mapper, typer, err := f.UnstructuredObject() - if err != nil { - return err - } - b = b.SelectorParam(o.selector). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + var b *resource.Builder + if o.local { + b = f.NewBuilder(). + Local(f.ClientForMapping) + } else { + b = f.NewUnstructuredBuilder(). + LabelSelectorParam(o.selector). ResourceTypeOrNameArgs(o.all, o.resources...). Latest() - } else { - b = b.Local(f.ClientForMapping) } - - r := b.Do() + r := b.ContinueOnError(). + NamespaceParam(namespace).DefaultNamespace(). + FilenameParam(enforceNamespace, &o.FilenameOptions). + IncludeUninitialized(includeUninitialized). + Flatten(). + Do() if err := r.Err(); err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/annotate_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/annotate_test.go index e1b6ca7d6..1c112d6a8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/annotate_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/annotate_test.go @@ -25,9 +25,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - restclient "k8s.io/client-go/rest" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) @@ -117,8 +117,8 @@ func TestParseAnnotations(t *testing.T) { expectErr: false, }, { - annotations: []string{"url=" + testURL, api.CreatedByAnnotation + "=" + testJSON}, - expected: map[string]string{"url": testURL, api.CreatedByAnnotation: testJSON}, + annotations: []string{"url=" + testURL, "fake.kubernetes.io/annotation=" + testJSON}, + expected: map[string]string{"url": testURL, "fake.kubernetes.io/annotation": testJSON}, expectedRemove: []string{}, scenario: "add annotations with special characters", expectErr: false, @@ -418,7 +418,7 @@ func TestAnnotateErrors(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdAnnotate(f, buf) @@ -451,7 +451,7 @@ func TestAnnotateObject(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.Method { @@ -478,7 +478,7 @@ func TestAnnotateObject(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdAnnotate(f, buf) @@ -502,7 +502,7 @@ func TestAnnotateObjectFromFile(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.Method { @@ -529,7 +529,7 @@ func TestAnnotateObjectFromFile(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdAnnotate(f, buf) @@ -551,7 +551,7 @@ func TestAnnotateObjectFromFile(t *testing.T) { func TestAnnotateLocal(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) @@ -559,7 +559,7 @@ func TestAnnotateLocal(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdAnnotate(f, buf) @@ -584,7 +584,7 @@ func TestAnnotateMultipleObjects(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Group: "testgroup", Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.Method { @@ -613,7 +613,7 @@ func TestAnnotateMultipleObjects(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdAnnotate(f, buf) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply.go index adda03661..a8ec0eed5 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply.go @@ -37,12 +37,13 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/util/i18n" ) @@ -197,7 +198,7 @@ func RunApply(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opti return err } - mapper, typer, err := f.UnstructuredObject() + mapper, _, err := f.UnstructuredObject() if err != nil { return err } @@ -212,13 +213,12 @@ func RunApply(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opti // include the uninitialized objects by default if --prune is true // unless explicitly set --include-uninitialized=false includeUninitialized := cmdutil.ShouldIncludeUninitialized(cmd, options.Prune) - r := f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + r := f.NewUnstructuredBuilder(). Schema(schema). ContinueOnError(). NamespaceParam(cmdNamespace).DefaultNamespace(). FilenameParam(enforceNamespace, &options.FilenameOptions). - SelectorParam(options.Selector). + LabelSelectorParam(options.Selector). IncludeUninitialized(includeUninitialized). Flatten(). Do() @@ -292,7 +292,7 @@ func RunApply(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opti count++ if len(output) > 0 && !shortOutput { - return cmdutil.PrintResourceInfoForCommand(cmd, info, f, out) + return f.PrintResourceInfoForCommand(cmd, info, out) } cmdutil.PrintSuccess(mapper, shortOutput, out, info.Mapping.Resource, info.Name, dryRun, "created") return nil @@ -335,10 +335,16 @@ func RunApply(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opti } else { visitedUids.Insert(string(uid)) } + + if string(patchBytes) == "{}" { + count++ + cmdutil.PrintSuccess(mapper, shortOutput, out, info.Mapping.Resource, info.Name, false, "unchanged") + return nil + } } count++ if len(output) > 0 && !shortOutput { - return cmdutil.PrintResourceInfoForCommand(cmd, info, f, out) + return f.PrintResourceInfoForCommand(cmd, info, out) } cmdutil.PrintSuccess(mapper, shortOutput, out, info.Mapping.Resource, info.Name, dryRun, "configured") return nil @@ -360,8 +366,8 @@ func RunApply(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opti clientFunc: f.UnstructuredClientForMapping, clientsetFunc: f.ClientSet, - selector: options.Selector, - visitedUids: visitedUids, + labelSelector: options.Selector, + visitedUids: visitedUids, cascade: options.Cascade, dryRun: dryRun, @@ -446,8 +452,9 @@ type pruner struct { clientFunc resource.ClientMapperFunc clientsetFunc func() (internalclientset.Interface, error) - visitedUids sets.String - selector string + visitedUids sets.String + labelSelector string + fieldSelector string cascade bool dryRun bool @@ -462,7 +469,16 @@ func (p *pruner) prune(namespace string, mapping *meta.RESTMapping, shortOutput, return err } - objList, err := resource.NewHelper(c, mapping).List(namespace, mapping.GroupVersionKind.Version, p.selector, false, includeUninitialized) + objList, err := resource.NewHelper(c, mapping).List( + namespace, + mapping.GroupVersionKind.Version, + false, + &metav1.ListOptions{ + LabelSelector: p.labelSelector, + FieldSelector: p.fieldSelector, + IncludeUninitialized: includeUninitialized, + }, + ) if err != nil { return err } @@ -580,7 +596,7 @@ func (p *patcher) patchSimple(obj runtime.Object, modified []byte, source, names // Create the versioned struct from the type defined in the restmapping // (which is the API version we'll be submitting the patch to) - versionedObject, err := api.Scheme.New(p.mapping.GroupVersionKind) + versionedObject, err := scheme.Scheme.New(p.mapping.GroupVersionKind) var patchType types.PatchType var patch []byte createPatchErrFormat := "creating patch with:\noriginal:\n%s\nmodified:\n%s\ncurrent:\n%s\nfor:" @@ -608,6 +624,10 @@ func (p *patcher) patchSimple(obj runtime.Object, modified []byte, source, names } } + if string(patch) == "{}" { + return patch, obj, nil + } + patchedObj, err := p.helper.Patch(namespace, name, patchType, patch) return patch, patchedObj, err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_set_last_applied.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_set_last_applied.go index f1f06648a..095d16ef7 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_set_last_applied.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_set_last_applied.go @@ -30,7 +30,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" apijson "k8s.io/apimachinery/pkg/util/json" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -122,19 +122,13 @@ func (o *SetLastAppliedOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) } func (o *SetLastAppliedOptions) Validate(f cmdutil.Factory, cmd *cobra.Command) error { - mapper, typer, err := f.UnstructuredObject() - if err != nil { - return err - } - - r := f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + r := f.NewUnstructuredBuilder(). NamespaceParam(o.Namespace).DefaultNamespace(). FilenameParam(o.EnforceNamespace, &o.FilenameOptions). Latest(). Flatten(). Do() - err = r.Err() + err := r.Err() if err != nil { return err } @@ -196,7 +190,7 @@ func (o *SetLastAppliedOptions) RunSetLastApplied(f cmdutil.Factory, cmd *cobra. if len(o.Output) > 0 && !o.ShortOutput { info.Refresh(patchedObj, false) - return cmdutil.PrintResourceInfoForCommand(cmd, info, f, o.Out) + return f.PrintResourceInfoForCommand(cmd, info, o.Out) } cmdutil.PrintSuccess(o.Mapper, o.ShortOutput, o.Out, info.Mapping.Resource, info.Name, o.DryRun, "configured") diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_test.go index 6f184ac86..84eaa967a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_test.go @@ -33,10 +33,9 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -62,15 +61,17 @@ func validateApplyArgs(cmd *cobra.Command, args []string) error { } const ( - filenameRC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc.yaml" - filenameRCNoAnnotation = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-no-annotation.yaml" - filenameRCLASTAPPLIED = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied.yaml" - filenameSVC = "../../../test/fixtures/pkg/kubectl/cmd/apply/service.yaml" - filenameRCSVC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-service.yaml" - filenameNoExistRC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-noexist.yaml" - filenameRCPatchTest = "../../../test/fixtures/pkg/kubectl/cmd/apply/patch.json" - dirName = "../../../test/fixtures/pkg/kubectl/cmd/apply/testdir" - filenameRCJSON = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc.json" + filenameRC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc.yaml" + filenameRCArgs = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-args.yaml" + filenameRCLastAppliedArgs = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied-args.yaml" + filenameRCNoAnnotation = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-no-annotation.yaml" + filenameRCLASTAPPLIED = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied.yaml" + filenameSVC = "../../../test/fixtures/pkg/kubectl/cmd/apply/service.yaml" + filenameRCSVC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-service.yaml" + filenameNoExistRC = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc-noexist.yaml" + filenameRCPatchTest = "../../../test/fixtures/pkg/kubectl/cmd/apply/patch.json" + dirName = "../../../test/fixtures/pkg/kubectl/cmd/apply/testdir" + filenameRCJSON = "../../../test/fixtures/pkg/kubectl/cmd/apply/rc.json" filenameWidgetClientside = "../../../test/fixtures/pkg/kubectl/cmd/apply/widget-clientside.yaml" filenameWidgetServerside = "../../../test/fixtures/pkg/kubectl/cmd/apply/widget-serverside.yaml" @@ -228,6 +229,7 @@ func walkMapPath(t *testing.T, start map[string]interface{}, path []string) map[ func TestRunApplyViewLastApplied(t *testing.T) { _, rcBytesWithConfig := readReplicationController(t, filenameRCLASTAPPLIED) + _, rcBytesWithArgs := readReplicationController(t, filenameRCLastAppliedArgs) nameRC, rcBytes := readReplicationController(t, filenameRC) pathRC := "/namespaces/test/replicationcontrollers/" + nameRC @@ -246,6 +248,16 @@ func TestRunApplyViewLastApplied(t *testing.T) { args: []string{}, respBytes: rcBytesWithConfig, }, + { + name: "test with file include `%s` in arguments", + filePath: filenameRCArgs, + outputFormat: "", + expectedErr: "", + expectedOut: "args: -random_flag=%s@domain.com\n", + selector: "", + args: []string{}, + respBytes: rcBytesWithArgs, + }, { name: "view with file json format", filePath: filenameRC, @@ -301,7 +313,7 @@ func TestRunApplyViewLastApplied(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -357,7 +369,6 @@ func TestApplyObjectWithoutAnnotation(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -402,7 +413,6 @@ func TestApplyObject(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -459,7 +469,6 @@ func TestApplyObjectOutput(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &printers.YAMLPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -504,7 +513,6 @@ func TestApplyRetry(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -558,7 +566,6 @@ func TestApplyNonExistObject(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -591,6 +598,75 @@ func TestApplyNonExistObject(t *testing.T) { } } +func TestApplyEmptyPatch(t *testing.T) { + initTestErrorHandler(t) + nameRC, _ := readAndAnnotateReplicationController(t, filenameRC) + pathRC := "/namespaces/test/replicationcontrollers" + pathNameRC := pathRC + "/" + nameRC + + verifyPost := false + + var body []byte + + f, tf, _, _ := cmdtesting.NewAPIFactory() + tf.Printer = &testPrinter{} + tf.UnstructuredClient = &fake.RESTClient{ + GroupVersion: schema.GroupVersion{Version: "v1"}, + NegotiatedSerializer: unstructuredSerializer, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + switch p, m := req.URL.Path, req.Method; { + case p == "/api/v1/namespaces/test" && m == "GET": + return &http.Response{StatusCode: 404, Header: defaultHeader(), Body: ioutil.NopCloser(bytes.NewReader(nil))}, nil + case p == pathNameRC && m == "GET": + if body == nil { + return &http.Response{StatusCode: 404, Header: defaultHeader(), Body: ioutil.NopCloser(bytes.NewReader(nil))}, nil + } + bodyRC := ioutil.NopCloser(bytes.NewReader(body)) + return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: bodyRC}, nil + case p == pathRC && m == "POST": + body, _ = ioutil.ReadAll(req.Body) + verifyPost = true + bodyRC := ioutil.NopCloser(bytes.NewReader(body)) + return &http.Response{StatusCode: 201, Header: defaultHeader(), Body: bodyRC}, nil + default: + t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) + return nil, nil + } + }), + } + tf.Namespace = "test" + + // 1. apply non exist object + buf := bytes.NewBuffer([]byte{}) + errBuf := bytes.NewBuffer([]byte{}) + + cmd := NewCmdApply("kubectl", f, buf, errBuf) + cmd.Flags().Set("filename", filenameRC) + cmd.Flags().Set("output", "name") + cmd.Run(cmd, []string{}) + + expectRC := "replicationcontroller/" + nameRC + "\n" + if buf.String() != expectRC { + t.Fatalf("unexpected output: %s\nexpected: %s", buf.String(), expectRC) + } + if !verifyPost { + t.Fatal("No server-side post call detected") + } + + // 2. test apply already exist object, will not send empty patch request + buf = bytes.NewBuffer([]byte{}) + errBuf = bytes.NewBuffer([]byte{}) + + cmd = NewCmdApply("kubectl", f, buf, errBuf) + cmd.Flags().Set("filename", filenameRC) + cmd.Flags().Set("output", "name") + cmd.Run(cmd, []string{}) + + if buf.String() != expectRC { + t.Fatalf("unexpected output: %s\nexpected: %s", buf.String(), expectRC) + } +} + func TestApplyMultipleObjectsAsList(t *testing.T) { testApplyMultipleObjects(t, true) } @@ -609,7 +685,6 @@ func testApplyMultipleObjects(t *testing.T, asList bool) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -687,7 +762,6 @@ func TestApplyNULLPreservation(t *testing.T) { f, tf, _, _ := cmdtesting.NewTestFactory() tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -756,7 +830,6 @@ func TestUnstructuredApply(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -820,7 +893,6 @@ func TestUnstructuredIdempotentApply(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -945,7 +1017,7 @@ func TestRunApplySetLastApplied(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -1034,7 +1106,6 @@ func TestForceApply(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -1092,7 +1163,7 @@ func TestForceApply(t *testing.T) { }), } tf.Client = tf.UnstructuredClient - tf.ClientConfig = &restclient.Config{} + tf.ClientConfig = defaultClientConfig() tf.Namespace = "test" buf := bytes.NewBuffer([]byte{}) errBuf := bytes.NewBuffer([]byte{}) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_view_last_applied.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_view_last_applied.go index 4c7cec821..7a01bee09 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_view_last_applied.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply_view_last_applied.go @@ -87,18 +87,12 @@ func (o *ViewLastAppliedOptions) Complete(f cmdutil.Factory, args []string) erro return err } - mapper, typer, err := f.UnstructuredObject() - if err != nil { - return err - } - - r := f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + r := f.NewUnstructuredBuilder(). NamespaceParam(cmdNamespace).DefaultNamespace(). FilenameParam(enforceNamespace, &o.FilenameOptions). ResourceTypeOrNameArgs(enforceNamespace, args...). SelectAllParam(o.All). - SelectorParam(o.Selector). + LabelSelectorParam(o.Selector). Latest(). Flatten(). Do() diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/attach.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/attach.go index 008617849..313291d18 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/attach.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/attach.go @@ -30,7 +30,8 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/remotecommand" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -278,7 +279,7 @@ func (p *AttachOptions) Run() error { Stdout: p.Out != nil, Stderr: p.Err != nil, TTY: t.Raw, - }, api.ParameterCodec) + }, legacyscheme.ParameterCodec) return p.Attach.Attach("POST", req.URL(), p.Config, p.In, p.Out, p.Err, t.Raw, sizeQueue) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/attach_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/attach_test.go index bbe04e26f..42801a9b2 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/attach_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/attach_test.go @@ -34,7 +34,8 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" "k8s.io/client-go/tools/remotecommand" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" ) @@ -139,7 +140,7 @@ func TestPodAndContainerAttach(t *testing.T) { for _, test := range tests { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { if test.obj != nil { @@ -175,7 +176,7 @@ func TestPodAndContainerAttach(t *testing.T) { } func TestAttach(t *testing.T) { - version := api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version + version := legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version tests := []struct { name, version, podPath, fetchPodPath, attachPath, container string pod *api.Pod @@ -216,7 +217,7 @@ func TestAttach(t *testing.T) { for _, test := range tests { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -234,7 +235,7 @@ func TestAttach(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs, GroupVersion: &schema.GroupVersion{Version: test.version}}} + tf.ClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs, GroupVersion: &schema.GroupVersion{Version: test.version}}} bufOut := bytes.NewBuffer([]byte{}) bufErr := bytes.NewBuffer([]byte{}) bufIn := bytes.NewBuffer([]byte{}) @@ -283,7 +284,7 @@ func TestAttach(t *testing.T) { } func TestAttachWarnings(t *testing.T) { - version := api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version + version := legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version tests := []struct { name, container, version, podPath, fetchPodPath, expectedErr, expectedOut string pod *api.Pod @@ -303,7 +304,7 @@ func TestAttachWarnings(t *testing.T) { for _, test := range tests { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -320,7 +321,7 @@ func TestAttachWarnings(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs, GroupVersion: &schema.GroupVersion{Version: test.version}}} + tf.ClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs, GroupVersion: &schema.GroupVersion{Version: test.version}}} bufOut := bytes.NewBuffer([]byte{}) bufErr := bytes.NewBuffer([]byte{}) bufIn := bytes.NewBuffer([]byte{}) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/BUILD index dddcdf675..c702b790d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/BUILD @@ -53,8 +53,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/auth", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/kubectl/cmd/testing:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/rest/fake:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/cani_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/cani_test.go index a2210ec87..0b4407f6d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/cani_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/cani_test.go @@ -24,9 +24,9 @@ import ( "strings" "testing" + "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) @@ -121,7 +121,7 @@ func TestRunAccessCheck(t *testing.T) { f, tf, _, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Group: "", Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { expectPath := "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews" @@ -152,7 +152,7 @@ func TestRunAccessCheck(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"}}} if err := test.o.Complete(f, test.args); err != nil { t.Errorf("%s: %v", test.name, err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/reconcile.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/reconcile.go index 948d8f3fa..0c1a3969d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/reconcile.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth/reconcile.go @@ -35,9 +35,9 @@ import ( // ReconcileOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of // referencing the cmd.Flags() type ReconcileOptions struct { - ResourceBuilder *resource.Builder + Visitor resource.Visitor RBACClient internalrbacclient.RbacInterface - CoreClient internalcoreclient.CoreInterface + NamespaceClient internalcoreclient.NamespaceInterface Print func(*resource.Info) error @@ -92,18 +92,24 @@ func (o *ReconcileOptions) Complete(cmd *cobra.Command, f cmdutil.Factory, args if err != nil { return err } - o.ResourceBuilder = f.NewBuilder(). + + r := f.NewBuilder(). ContinueOnError(). NamespaceParam(namespace).DefaultNamespace(). FilenameParam(enforceNamespace, options). - Flatten() + Flatten(). + Do() + if err := r.Err(); err != nil { + return err + } + o.Visitor = r client, err := f.ClientSet() if err != nil { return err } o.RBACClient = client.Rbac() - o.CoreClient = client.Core() + o.NamespaceClient = client.Core().Namespaces() mapper, _ := f.Object() dryRun := false @@ -111,7 +117,7 @@ func (o *ReconcileOptions) Complete(cmd *cobra.Command, f cmdutil.Factory, args shortOutput := output == "name" o.Print = func(info *resource.Info) error { if len(output) > 0 && !shortOutput { - return cmdutil.PrintResourceInfoForCommand(cmd, info, f, o.Out) + return f.PrintResourceInfoForCommand(cmd, info, o.Out) } cmdutil.PrintSuccess(mapper, shortOutput, o.Out, info.Mapping.Resource, info.Name, dryRun, "reconciled") return nil @@ -121,17 +127,29 @@ func (o *ReconcileOptions) Complete(cmd *cobra.Command, f cmdutil.Factory, args } func (o *ReconcileOptions) Validate() error { + if o.Visitor == nil { + return errors.New("ReconcileOptions.Visitor must be set") + } + if o.RBACClient == nil { + return errors.New("ReconcileOptions.RBACClient must be set") + } + if o.NamespaceClient == nil { + return errors.New("ReconcileOptions.NamespaceClient must be set") + } + if o.Print == nil { + return errors.New("ReconcileOptions.Print must be set") + } + if o.Out == nil { + return errors.New("ReconcileOptions.Out must be set") + } + if o.Err == nil { + return errors.New("ReconcileOptions.Err must be set") + } return nil } func (o *ReconcileOptions) RunReconcile() error { - r := o.ResourceBuilder.Do() - err := r.Err() - if err != nil { - return err - } - - err = r.Visit(func(info *resource.Info, err error) error { + return o.Visitor.Visit(func(info *resource.Info, err error) error { if err != nil { return err } @@ -147,7 +165,7 @@ func (o *ReconcileOptions) RunReconcile() error { RemoveExtraPermissions: false, Role: reconciliation.RoleRuleOwner{Role: t}, Client: reconciliation.RoleModifier{ - NamespaceClient: o.CoreClient.Namespaces(), + NamespaceClient: o.NamespaceClient, Client: o.RBACClient, }, } @@ -181,7 +199,7 @@ func (o *ReconcileOptions) RunReconcile() error { RoleBinding: reconciliation.RoleBindingAdapter{RoleBinding: t}, Client: reconciliation.RoleBindingClientAdapter{ Client: o.RBACClient, - NamespaceClient: o.CoreClient.Namespaces(), + NamespaceClient: o.NamespaceClient, }, } result, err := reconcileOptions.Run() @@ -214,6 +232,4 @@ func (o *ReconcileOptions) RunReconcile() error { return nil }) - - return err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/autoscale.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/autoscale.go index 27f320d5d..ce96b037c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/autoscale.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/autoscale.go @@ -38,7 +38,7 @@ var ( An autoscaler can automatically increase or decrease number of pods deployed within the system as needed.`)) autoscaleExample = templates.Examples(i18n.T(` - # Auto scale a deployment "foo", with the number of pods between 2 and 10, target CPU utilization specified so a default autoscaling policy will be used: + # Auto scale a deployment "foo", with the number of pods between 2 and 10, no target CPU utilization specified so a default autoscaling policy will be used: kubectl autoscale deployment foo --min=2 --max=10 # Auto scale a replication controller "foo", with the number of pods between 1 and 5, target CPU utilization at 80%: diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/clusterinfo.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/clusterinfo.go index 83b90c04e..6f8139649 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/clusterinfo.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/clusterinfo.go @@ -23,7 +23,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilnet "k8s.io/apimachinery/pkg/util/net" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" @@ -74,10 +74,10 @@ func RunClusterInfo(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) error // TODO use generalized labels once they are implemented (#341) b := f.NewBuilder(). NamespaceParam(cmdNamespace).DefaultNamespace(). - SelectorParam("kubernetes.io/cluster-service=true"). + LabelSelectorParam("kubernetes.io/cluster-service=true"). ResourceTypeOrNameArgs(false, []string{"services"}...). Latest() - b.Do().Visit(func(r *resource.Info, err error) error { + err = b.Do().Visit(func(r *resource.Info, err error) error { if err != nil { return err } @@ -125,7 +125,7 @@ func RunClusterInfo(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) error return nil }) out.Write([]byte("\nTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.\n")) - return nil + return err // TODO consider printing more information about cluster } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/clusterinfo_dump.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/clusterinfo_dump.go index b718bf6e7..511bba5d9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/clusterinfo_dump.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/clusterinfo_dump.go @@ -25,7 +25,7 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/util/i18n" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd.go index 8287b1980..782fa37c2 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd.go @@ -24,6 +24,7 @@ import ( "k8s.io/client-go/tools/clientcmd" "k8s.io/kubernetes/pkg/kubectl/cmd/auth" cmdconfig "k8s.io/kubernetes/pkg/kubectl/cmd/config" + "k8s.io/kubernetes/pkg/kubectl/cmd/resource" "k8s.io/kubernetes/pkg/kubectl/cmd/rollout" "k8s.io/kubernetes/pkg/kubectl/cmd/set" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" @@ -36,22 +37,22 @@ import ( const ( bashCompletionFunc = `# call kubectl get $1, -__kubectl_override_flag_list=(kubeconfig cluster user context namespace server) +__kubectl_override_flag_list=(--kubeconfig --cluster --user --context --namespace --server -n -s) __kubectl_override_flags() { - local ${__kubectl_override_flag_list[*]} two_word_of of + local ${__kubectl_override_flag_list[*]##*-} two_word_of of var for w in "${words[@]}"; do if [ -n "${two_word_of}" ]; then - eval "${two_word_of}=\"--${two_word_of}=\${w}\"" + eval "${two_word_of##*-}=\"${two_word_of}=\${w}\"" two_word_of= continue fi for of in "${__kubectl_override_flag_list[@]}"; do case "${w}" in - --${of}=*) - eval "${of}=\"${w}\"" + ${of}=*) + eval "${of##*-}=\"${w}\"" ;; - --${of}) + ${of}) two_word_of="${of}" ;; esac @@ -60,9 +61,9 @@ __kubectl_override_flags() namespace="--all-namespaces" fi done - for of in "${__kubectl_override_flag_list[@]}"; do - if eval "test -n \"\$${of}\""; then - eval "echo \${${of}}" + for var in "${__kubectl_override_flag_list[@]##*-}"; do + if eval "test -n \"\$${var}\""; then + eval "echo \${${var}}" fi done } @@ -187,7 +188,7 @@ __custom_func() { __kubectl_get_resource_node return ;; - kubectl_config_use-context) + kubectl_config_use-context | kubectl_config_rename-context) __kubectl_config_get_contexts return ;; @@ -199,52 +200,6 @@ __custom_func() { ;; esac } -` - - // If you add a resource to this list, please also take a look at pkg/kubectl/kubectl.go - // and add a short forms entry in expandResourceShortcut() when appropriate. - // TODO: This should be populated using the discovery information from apiserver. - validResources = `Valid resource types include: - - * all - * certificatesigningrequests (aka 'csr') - * clusterrolebindings - * clusterroles - * clusters (valid only for federation apiservers) - * componentstatuses (aka 'cs') - * configmaps (aka 'cm') - * controllerrevisions - * cronjobs - * customresourcedefinition (aka 'crd') - * daemonsets (aka 'ds') - * deployments (aka 'deploy') - * endpoints (aka 'ep') - * events (aka 'ev') - * horizontalpodautoscalers (aka 'hpa') - * ingresses (aka 'ing') - * jobs - * limitranges (aka 'limits') - * namespaces (aka 'ns') - * networkpolicies (aka 'netpol') - * nodes (aka 'no') - * persistentvolumeclaims (aka 'pvc') - * persistentvolumes (aka 'pv') - * poddisruptionbudgets (aka 'pdb') - * podpreset - * pods (aka 'po') - * podsecuritypolicies (aka 'psp') - * podtemplates - * replicasets (aka 'rs') - * replicationcontrollers (aka 'rc') - * resourcequotas (aka 'quota') - * rolebindings - * roles - * secrets - * serviceaccounts (aka 'sa') - * services (aka 'svc') - * statefulsets (aka 'sts') - * storageclasses (aka 'sc') - ` ) @@ -298,7 +253,7 @@ func NewKubectlCommand(f cmdutil.Factory, in io.Reader, out, err io.Writer) *cob { Message: "Basic Commands (Intermediate):", Commands: []*cobra.Command{ - NewCmdGet(f, out, err), + resource.NewCmdGet(f, out, err), NewCmdExplain(f, out, err), NewCmdEdit(f, out, err), NewCmdDelete(f, out, err), diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd_test.go index 41639c760..260689e43 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cmd_test.go @@ -36,15 +36,22 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" + apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/printers" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" "k8s.io/kubernetes/pkg/util/strings" ) +// This init should be removed after switching this command and its tests to user external types. +func init() { + api.AddToScheme(scheme.Scheme) +} + func initTestErrorHandler(t *testing.T) { cmdutil.BehaviorOnFatal(func(str string, code int) { t.Errorf("Error running command (exit code %d): %s", code, str) @@ -61,9 +68,9 @@ func defaultClientConfig() *restclient.Config { return &restclient.Config{ APIPath: "/api", ContentConfig: restclient.ContentConfig{ - NegotiatedSerializer: api.Codecs, + NegotiatedSerializer: scheme.Codecs, ContentType: runtime.ContentTypeJSON, - GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion, + GroupVersion: &schema.GroupVersion{Version: "v1"}, }, } } @@ -72,13 +79,59 @@ func defaultClientConfigForVersion(version *schema.GroupVersion) *restclient.Con return &restclient.Config{ APIPath: "/api", ContentConfig: restclient.ContentConfig{ - NegotiatedSerializer: api.Codecs, + NegotiatedSerializer: scheme.Codecs, ContentType: runtime.ContentTypeJSON, GroupVersion: version, }, } } +func testData() (*api.PodList, *api.ServiceList, *api.ReplicationControllerList) { + pods := &api.PodList{ + ListMeta: metav1.ListMeta{ + ResourceVersion: "15", + }, + Items: []api.Pod{ + { + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test", ResourceVersion: "10"}, + Spec: apitesting.DeepEqualSafePodSpec(), + }, + { + ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "test", ResourceVersion: "11"}, + Spec: apitesting.DeepEqualSafePodSpec(), + }, + }, + } + svc := &api.ServiceList{ + ListMeta: metav1.ListMeta{ + ResourceVersion: "16", + }, + Items: []api.Service{ + { + ObjectMeta: metav1.ObjectMeta{Name: "baz", Namespace: "test", ResourceVersion: "12"}, + Spec: api.ServiceSpec{ + SessionAffinity: "None", + Type: api.ServiceTypeClusterIP, + }, + }, + }, + } + rc := &api.ReplicationControllerList{ + ListMeta: metav1.ListMeta{ + ResourceVersion: "17", + }, + Items: []api.ReplicationController{ + { + ObjectMeta: metav1.ObjectMeta{Name: "rc1", Namespace: "test", ResourceVersion: "18"}, + Spec: api.ReplicationControllerSpec{ + Replicas: 1, + }, + }, + }, + } + return pods, svc, rc +} + type testPrinter struct { Objects []runtime.Object Err error @@ -162,7 +215,6 @@ func Example_printReplicationControllerWithNamespace() { printersinternal.AddHandlers(p) tf.Printer = p tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: nil, } @@ -215,7 +267,6 @@ func Example_printMultiContainersReplicationControllerWithWide() { printersinternal.AddHandlers(p) tf.Printer = p tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: nil, } @@ -269,7 +320,6 @@ func Example_printReplicationController() { printersinternal.AddHandlers(p) tf.Printer = p tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: nil, } @@ -324,7 +374,6 @@ func Example_printPodWithWideFormat() { printersinternal.AddHandlers(p) tf.Printer = p tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: nil, } @@ -367,7 +416,6 @@ func Example_printPodWithShowLabels() { printersinternal.AddHandlers(p) tf.Printer = p tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: nil, } @@ -504,7 +552,6 @@ func Example_printPodHideTerminated() { printersinternal.AddHandlers(p) tf.Printer = p tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: nil, } @@ -540,7 +587,6 @@ func Example_printPodShowAll() { printersinternal.AddHandlers(p) tf.Printer = p tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: nil, } @@ -569,7 +615,6 @@ func Example_printServiceWithNamespacesAndLabels() { printersinternal.AddHandlers(p) tf.Printer = p tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: nil, } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/get_contexts.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/get_contexts.go index 9ba113b15..b018a52dc 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/get_contexts.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/get_contexts.go @@ -19,6 +19,7 @@ package config import ( "fmt" "io" + "sort" "strings" "text/tabwriter" @@ -138,6 +139,7 @@ func (o GetContextsOptions) RunGetContexts() error { } } + sort.Strings(toPrint) for _, name := range toPrint { err = printContext(name, config.Contexts[name], out, o.nameOnly, config.CurrentContext == name) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/get_contexts_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/get_contexts_test.go index 209d26c05..d21c4470a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/get_contexts_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/get_contexts_test.go @@ -66,6 +66,27 @@ func TestGetContextsAllNoHeader(t *testing.T) { test.run(t) } +func TestGetContextsAllSorted(t *testing.T) { + tconf := clientcmdapi.Config{ + CurrentContext: "shaker-context", + Contexts: map[string]*clientcmdapi.Context{ + "shaker-context": {AuthInfo: "blue-user", Cluster: "big-cluster", Namespace: "saw-ns"}, + "abc": {AuthInfo: "blue-user", Cluster: "abc-cluster", Namespace: "kube-system"}, + "xyz": {AuthInfo: "blue-user", Cluster: "xyz-cluster", Namespace: "default"}}} + test := getContextsTest{ + startingConfig: tconf, + names: []string{}, + noHeader: false, + nameOnly: false, + expectedOut: `CURRENT NAME CLUSTER AUTHINFO NAMESPACE + abc abc-cluster blue-user kube-system +* shaker-context big-cluster blue-user saw-ns + xyz xyz-cluster blue-user default +`, + } + test.run(t) +} + func TestGetContextsAllName(t *testing.T) { tconf := clientcmdapi.Config{ Contexts: map[string]*clientcmdapi.Context{ diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/rename_context.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/rename_context.go index d1a3d6f8e..3216a7c83 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/rename_context.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/rename_context.go @@ -43,7 +43,7 @@ const ( var ( renameContextLong = templates.LongDesc(` - Renames a context from the kubeconfig file . + Renames a context from the kubeconfig file. CONTEXT_NAME is the context name that you wish change. @@ -70,7 +70,7 @@ func NewCmdConfigRenameContext(out io.Writer, configAccess clientcmd.ConfigAcces cmdutil.CheckErr(err) } if err := options.Validate(); err != nil { - cmdutil.UsageErrorf(cmd, err.Error()) + cmdutil.CheckErr(cmdutil.UsageErrorf(cmd, err.Error())) } if err := options.RunRenameContext(out); err != nil { cmdutil.CheckErr(err) @@ -130,6 +130,6 @@ func (o RenameContextOptions) RunRenameContext(out io.Writer) error { return err } - fmt.Fprintf(out, "Context %q was renamed to %q.\n", o.contextName, o.newName) + fmt.Fprintf(out, "Context %q renamed to %q.\n", o.contextName, o.newName) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/rename_context_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/rename_context_test.go index 4a074a49e..cfe371497 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/rename_context_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config/rename_context_test.go @@ -62,7 +62,7 @@ func TestRenameContext(t *testing.T) { initialConfig: initialConfig, expectedConfig: expectedConfig, args: []string{currentContext, newContext}, - expectedOut: fmt.Sprintf("Context %q was renamed to %q.\n", currentContext, newContext), + expectedOut: fmt.Sprintf("Context %q renamed to %q.\n", currentContext, newContext), expectedErr: "", } test.run(t) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/convert.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/convert.go index 3f369d0cc..2c91b7d8a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/convert.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/convert.go @@ -23,7 +23,8 @@ import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/pkg/api" + scheme "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" @@ -51,7 +52,7 @@ var ( kubectl convert -f pod.yaml # Convert the live state of the resource specified by 'pod.yaml' to the latest version - # and print to stdout in json format. + # and print to stdout in JSON format. kubectl convert -f pod.yaml --local -o json # Convert all files under current directory to latest version and create them all. @@ -118,24 +119,24 @@ func outputVersion(cmd *cobra.Command, defaultVersion *schema.GroupVersion) (sch // Complete collects information required to run Convert command from command line. func (o *ConvertOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) (err error) { - o.outputVersion, err = outputVersion(cmd, &api.Registry.EnabledVersionsForGroup(api.GroupName)[0]) + o.outputVersion, err = outputVersion(cmd, &scheme.Registry.EnabledVersionsForGroup(api.GroupName)[0]) if err != nil { return err } - if !api.Registry.IsEnabledVersion(o.outputVersion) { - cmdutil.UsageErrorf(cmd, "'%s' is not a registered version.", o.outputVersion) + if !scheme.Registry.IsEnabledVersion(o.outputVersion) { + return cmdutil.UsageErrorf(cmd, "'%s' is not a registered version.", o.outputVersion) } // build the builder o.builder = f.NewBuilder() - if !o.local { + if o.local { + o.builder = o.builder.Local(f.ClientForMapping) + } else { schema, err := f.Validator(cmdutil.GetFlagBool(cmd, "validate")) if err != nil { return err } o.builder = o.builder.Schema(schema) - } else { - o.builder = o.builder.Local(f.ClientForMapping) } cmdNamespace, _, err := f.DefaultNamespace() @@ -203,18 +204,18 @@ func (o *ConvertOptions) RunConvert() error { return o.printer.PrintObj(objects, o.out) } -// ObjectListToVersionedObject receives a list of api objects and a group version +// objectListToVersionedObject receives a list of api objects and a group version // and squashes the list's items into a single versioned runtime.Object. func objectListToVersionedObject(objects []runtime.Object, version schema.GroupVersion) (runtime.Object, error) { objectList := &api.List{Items: objects} - converted, err := tryConvert(api.Scheme, objectList, version, api.Registry.GroupOrDie(api.GroupName).GroupVersion) + converted, err := tryConvert(scheme.Scheme, objectList, version, scheme.Registry.GroupOrDie(api.GroupName).GroupVersion) if err != nil { return nil, err } return converted, nil } -// AsVersionedObject converts a list of infos into a single object - either a List containing +// asVersionedObject converts a list of infos into a single object - either a List containing // the objects as children, or if only a single Object is present, as that object. The provided // version will be preferred as the conversion target, but the Object's mapping version will be // used if that version is not present. @@ -229,7 +230,7 @@ func asVersionedObject(infos []*resource.Info, forceList bool, version schema.Gr object = objects[0] } else { object = &api.List{Items: objects} - converted, err := tryConvert(api.Scheme, object, version, api.Registry.GroupOrDie(api.GroupName).GroupVersion) + converted, err := tryConvert(scheme.Scheme, object, version, scheme.Registry.GroupOrDie(api.GroupName).GroupVersion) if err != nil { return nil, err } @@ -247,7 +248,7 @@ func asVersionedObject(infos []*resource.Info, forceList bool, version schema.Gr return object, nil } -// AsVersionedObjects converts a list of infos into versioned objects. The provided +// asVersionedObjects converts a list of infos into versioned objects. The provided // version will be preferred as the conversion target, but the Object's mapping version will be // used if that version is not present. func asVersionedObjects(infos []*resource.Info, version schema.GroupVersion, encoder runtime.Encoder) ([]runtime.Object, error) { @@ -260,7 +261,7 @@ func asVersionedObjects(infos []*resource.Info, version schema.GroupVersion, enc // objects that are not part of api.Scheme must be converted to JSON // TODO: convert to map[string]interface{}, attach to runtime.Unknown? if !version.Empty() { - if _, _, err := api.Scheme.ObjectKinds(info.Object); runtime.IsNotRegisteredError(err) { + if _, _, err := scheme.Scheme.ObjectKinds(info.Object); runtime.IsNotRegisteredError(err) { // TODO: ideally this would encode to version, but we don't expose multiple codecs here. data, err := runtime.Encode(encoder, info.Object) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/convert_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/convert_test.go new file mode 100644 index 000000000..c6d1ed7d9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/convert_test.go @@ -0,0 +1,127 @@ +/* +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 cmd + +import ( + "bytes" + "net/http" + "testing" + + "k8s.io/client-go/rest/fake" + cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" + "k8s.io/kubernetes/pkg/printers" +) + +type testcase struct { + name string + file string + outputVersion string + fields []checkField +} + +type checkField struct { + template string + expected string +} + +func TestConvertObject(t *testing.T) { + testcases := []testcase{ + { + name: "apps deployment to extensions deployment", + file: "../../../test/fixtures/pkg/kubectl/cmd/convert/appsdeployment.yaml", + outputVersion: "extensions/v1beta1", + fields: []checkField{ + { + template: "{{.apiVersion}}", + expected: "extensions/v1beta1", + }, + }, + }, + { + name: "extensions deployment to apps deployment", + file: "../../../test/fixtures/pkg/kubectl/cmd/convert/extensionsdeployment.yaml", + outputVersion: "apps/v1beta2", + fields: []checkField{ + { + template: "{{.apiVersion}}", + expected: "apps/v1beta2", + }, + }, + }, + { + name: "v1 HPA to v2beta1 HPA", + file: "../../../test/fixtures/pkg/kubectl/cmd/convert/v1HPA.yaml", + outputVersion: "autoscaling/v2beta1", + fields: []checkField{ + { + template: "{{.apiVersion}}", + expected: "autoscaling/v2beta1", + }, + { + template: "{{(index .spec.metrics 0).resource.name}}", + expected: "cpu", + }, + { + template: "{{(index .spec.metrics 0).resource.targetAverageUtilization}}", + expected: "50", + }, + }, + }, + { + name: "v2beta1 HPA to v1 HPA", + file: "../../../test/fixtures/pkg/kubectl/cmd/convert/v2beta1HPA.yaml", + outputVersion: "autoscaling/v1", + fields: []checkField{ + { + template: "{{.apiVersion}}", + expected: "autoscaling/v1", + }, + { + template: "{{.spec.targetCPUUtilizationPercentage}}", + expected: "50", + }, + }, + }, + } + + f, tf, _, _ := cmdtesting.NewAPIFactory() + tf.UnstructuredClient = &fake.RESTClient{ + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) + return nil, nil + }), + } + tf.Namespace = "test" + buf := bytes.NewBuffer([]byte{}) + + for _, tc := range testcases { + cmd := NewCmdConvert(f, buf) + cmd.Flags().Set("filename", tc.file) + cmd.Flags().Set("output-version", tc.outputVersion) + cmd.Flags().Set("local", "true") + cmd.Flags().Set("output", "go-template") + + for _, field := range tc.fields { + buf.Reset() + tf.Printer, _ = printers.NewTemplatePrinter([]byte(field.template)) + cmd.Run(cmd, []string{}) + if buf.String() != field.expected { + t.Errorf("unexpected output when converting %s to %q, expected: %q, but got %q", tc.file, tc.outputVersion, field.expected, buf.String()) + } + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp.go index 8b3a89096..a5d67de3f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp.go @@ -301,10 +301,12 @@ func recursiveTar(srcBase, srcFile, destBase, destFile string, tw *tar.Writer) e if err != nil { return err } - defer f.Close() - _, err = io.Copy(tw, f) - return err + + if _, err := io.Copy(tw, f); err != nil { + return err + } + return f.Close() } return nil } @@ -330,7 +332,6 @@ func untarAll(reader io.Reader, destFile, prefix string) error { return err } if header.FileInfo().IsDir() { - if err := os.MkdirAll(outFileName, 0755); err != nil { return err } @@ -359,7 +360,12 @@ func untarAll(reader io.Reader, destFile, prefix string) error { return err } defer outFile.Close() - io.Copy(outFile, tarReader) + if _, err := io.Copy(outFile, tarReader); err != nil { + return err + } + if err := outFile.Close(); err != nil { + return err + } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp_test.go index b410bc694..8236fef7a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/cp_test.go @@ -109,8 +109,8 @@ func TestGetPrefix(t *testing.T) { } func TestTarUntar(t *testing.T) { - dir, err := ioutil.TempDir(os.TempDir(), "input") - dir2, err2 := ioutil.TempDir(os.TempDir(), "output") + dir, err := ioutil.TempDir("", "input") + dir2, err2 := ioutil.TempDir("", "output") if err != nil || err2 != nil { t.Errorf("unexpected error: %v | %v", err, err2) t.FailNow() @@ -160,74 +160,74 @@ func TestTarUntar(t *testing.T) { for _, file := range files { filepath := path.Join(dir, file.name) if err := os.MkdirAll(path.Dir(filepath), 0755); err != nil { - t.Errorf("unexpected error: %v", err) - t.FailNow() + t.Fatalf("unexpected error: %v", err) } if file.fileType == RegularFile { f, err := os.Create(filepath) if err != nil { - t.Errorf("unexpected error: %v", err) - t.FailNow() + t.Fatalf("unexpected error: %v", err) } defer f.Close() if _, err := io.Copy(f, bytes.NewBuffer([]byte(file.data))); err != nil { - t.Errorf("unexpected error: %v", err) - t.FailNow() + t.Fatalf("unexpected error: %v", err) + } + if err := f.Close(); err != nil { + t.Fatal(err) } } else if file.fileType == SymLink { err := os.Symlink(file.data, filepath) if err != nil { - t.Errorf("unexpected error: %v", err) - t.FailNow() + t.Fatalf("unexpected error: %v", err) } } else { - t.Errorf("unexpected file type: %v", file) - t.FailNow() + t.Fatalf("unexpected file type: %v", file) } } writer := &bytes.Buffer{} if err := makeTar(dir, dir, writer); err != nil { - t.Errorf("unexpected error: %v", err) + t.Fatalf("unexpected error: %v", err) } reader := bytes.NewBuffer(writer.Bytes()) if err := untarAll(reader, dir2, ""); err != nil { - t.Errorf("unexpected error: %v", err) - t.FailNow() + t.Fatalf("unexpected error: %v", err) } for _, file := range files { - absPath := dir2 + strings.TrimPrefix(dir, os.TempDir()) - filepath := path.Join(absPath, file.name) + absPath := filepath.Join(dir2, strings.TrimPrefix(dir, os.TempDir())) + filePath := filepath.Join(absPath, file.name) if file.fileType == RegularFile { - f, err := os.Open(filepath) + f, err := os.Open(filePath) if err != nil { - t.Errorf("unexpected error: %v", err) + t.Fatalf("unexpected error: %v", err) } defer f.Close() buff := &bytes.Buffer{} - io.Copy(buff, f) - + if _, err := io.Copy(buff, f); err != nil { + t.Fatal(err) + } + if err := f.Close(); err != nil { + t.Fatal(err) + } if file.data != string(buff.Bytes()) { - t.Errorf("expected: %s, saw: %s", file.data, string(buff.Bytes())) + t.Fatalf("expected: %s, saw: %s", file.data, string(buff.Bytes())) } } else if file.fileType == SymLink { - dest, err := os.Readlink(filepath) + dest, err := os.Readlink(filePath) if err != nil { - t.Errorf("unexpected error: %v", err) + t.Fatalf("unexpected error: %v", err) } if file.data != dest { - t.Errorf("expected: %s, saw: %s", file.data, dest) + t.Fatalf("expected: %s, saw: %s", file.data, dest) } } else { - t.Errorf("unexpected file type: %v", file) - t.FailNow() + t.Fatalf("unexpected file type: %v", file) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create.go index 5ed32cb81..80613dac6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create.go @@ -19,10 +19,15 @@ package cmd import ( "fmt" "io" + "os" "runtime" + "strings" "github.com/spf13/cobra" + "net/url" + + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" @@ -36,6 +41,7 @@ type CreateOptions struct { FilenameOptions resource.FilenameOptions Selector string EditBeforeCreate bool + Raw string } var ( @@ -69,7 +75,7 @@ func NewCmdCreate(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command { defaultRunFunc(cmd, args) return } - cmdutil.CheckErr(ValidateArgs(cmd, args)) + cmdutil.CheckErr(options.ValidateArgs(cmd, args)) cmdutil.CheckErr(RunCreate(f, cmd, out, errOut, &options)) }, } @@ -87,6 +93,7 @@ func NewCmdCreate(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command { cmdutil.AddDryRunFlag(cmd) cmdutil.AddInclude3rdPartyFlags(cmd) cmd.Flags().StringVarP(&options.Selector, "selector", "l", "", "Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2)") + cmd.Flags().StringVar(&options.Raw, "raw", options.Raw, "Raw URI to POST to the server. Uses the transport specified by the kubeconfig file.") // create subcommands cmd.AddCommand(NewCmdCreateNamespace(f, out)) @@ -101,17 +108,69 @@ func NewCmdCreate(f cmdutil.Factory, out, errOut io.Writer) *cobra.Command { cmd.AddCommand(NewCmdCreateRole(f, out)) cmd.AddCommand(NewCmdCreateRoleBinding(f, out)) cmd.AddCommand(NewCmdCreatePodDisruptionBudget(f, out)) + cmd.AddCommand(NewCmdCreatePriorityClass(f, out)) return cmd } -func ValidateArgs(cmd *cobra.Command, args []string) error { +func (o *CreateOptions) ValidateArgs(cmd *cobra.Command, args []string) error { if len(args) != 0 { return cmdutil.UsageErrorf(cmd, "Unexpected args: %v", args) } + if len(o.Raw) > 0 { + if o.EditBeforeCreate { + return cmdutil.UsageErrorf(cmd, "--raw and --edit are mutually exclusive") + } + if len(o.FilenameOptions.Filenames) != 1 { + return cmdutil.UsageErrorf(cmd, "--raw can only use a single local file or stdin") + } + if strings.HasPrefix(o.FilenameOptions.Filenames[0], "http") { + return cmdutil.UsageErrorf(cmd, "--raw cannot read from a url") + } + if o.FilenameOptions.Recursive { + return cmdutil.UsageErrorf(cmd, "--raw and --recursive are mutually exclusive") + } + if len(o.Selector) > 0 { + return cmdutil.UsageErrorf(cmd, "--raw and --selector (-l) are mutually exclusive") + } + if len(cmdutil.GetFlagString(cmd, "output")) > 0 { + return cmdutil.UsageErrorf(cmd, "--raw and --output are mutually exclusive") + } + if _, err := url.ParseRequestURI(o.Raw); err != nil { + return cmdutil.UsageErrorf(cmd, "--raw must be a valid URL path: %v", err) + } + } + return nil } func RunCreate(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, options *CreateOptions) error { + // raw only makes sense for a single file resource multiple objects aren't likely to do what you want. + // the validator enforces this, so + if len(options.Raw) > 0 { + restClient, err := f.RESTClient() + if err != nil { + return err + } + + var data io.ReadCloser + if options.FilenameOptions.Filenames[0] == "-" { + data = os.Stdin + } else { + data, err = os.Open(options.FilenameOptions.Filenames[0]) + if err != nil { + return err + } + } + // TODO post content with stream. Right now it ignores body content + bytes, err := restClient.Post().RequestURI(options.Raw).Body(data).DoRaw() + if err != nil { + return err + } + + fmt.Fprintf(out, "%v", string(bytes)) + return nil + } + if options.EditBeforeCreate { return RunEditOnCreate(f, out, errOut, cmd, &options.FilenameOptions) } @@ -125,18 +184,17 @@ func RunCreate(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opt return err } - mapper, typer, err := f.UnstructuredObject() + mapper, _, err := f.UnstructuredObject() if err != nil { return err } - r := f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + r := f.NewUnstructuredBuilder(). Schema(schema). ContinueOnError(). NamespaceParam(cmdNamespace).DefaultNamespace(). FilenameParam(enforceNamespace, &options.FilenameOptions). - SelectorParam(options.Selector). + LabelSelectorParam(options.Selector). Flatten(). Do() err = r.Err() @@ -172,7 +230,7 @@ func RunCreate(f cmdutil.Factory, cmd *cobra.Command, out, errOut io.Writer, opt shortOutput := output == "name" if len(output) > 0 && !shortOutput { - return cmdutil.PrintResourceInfoForCommand(cmd, info, f, out) + return f.PrintResourceInfoForCommand(cmd, info, out) } if !shortOutput { f.PrintObjectSpecificMessage(info.Object, out) @@ -242,7 +300,7 @@ type CreateSubcommandOptions struct { // RunCreateSubcommand executes a create subcommand using the specified options func RunCreateSubcommand(f cmdutil.Factory, cmd *cobra.Command, out io.Writer, options *CreateSubcommandOptions) error { - namespace, _, err := f.DefaultNamespace() + namespace, nsOverriden, err := f.DefaultNamespace() if err != nil { return err } @@ -283,6 +341,10 @@ func RunCreateSubcommand(f cmdutil.Factory, cmd *cobra.Command, out io.Writer, o if err != nil { return err } + } else { + if meta, err := meta.Accessor(obj); err == nil && nsOverriden { + meta.SetNamespace(namespace) + } } if useShortOutput := options.OutputFormat == "name"; useShortOutput || len(options.OutputFormat) == 0 { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrole.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrole.go index fd77ef0bc..88114b2bf 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrole.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrole.go @@ -23,7 +23,7 @@ import ( "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/apis/rbac" + rbacv1 "k8s.io/api/rbac/v1" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/util/i18n" @@ -155,7 +155,7 @@ func (c *CreateClusterRoleOptions) Validate() error { } func (c *CreateClusterRoleOptions) RunCreateRole() error { - clusterRole := &rbac.ClusterRole{} + clusterRole := &rbacv1.ClusterRole{} clusterRole.Name = c.Name rules, err := generateResourcePolicyRules(c.Mapper, c.Verbs, c.Resources, c.ResourceNames, c.NonResourceURLs) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrole_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrole_test.go index e930c6eac..dee5b4fd8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrole_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrole_test.go @@ -22,10 +22,10 @@ import ( "reflect" "testing" + rbac "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/apis/rbac" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrolebinding_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrolebinding_test.go index f21aceba8..37aefc81e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrolebinding_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_clusterrolebinding_test.go @@ -30,7 +30,6 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) @@ -77,7 +76,6 @@ func TestCreateClusterRoleBinding(t *testing.T) { tf.Printer = &testPrinter{} tf.Client = &ClusterRoleBindingRESTClient{ RESTClient: &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -130,7 +128,6 @@ type ClusterRoleBindingRESTClient struct { func (c *ClusterRoleBindingRESTClient) Post() *restclient.Request { config := restclient.ContentConfig{ ContentType: runtime.ContentTypeJSON, - GroupVersion: &schema.GroupVersion{Group: "rbac.authorization.k8s.io", Version: "v1beta1"}, NegotiatedSerializer: c.NegotiatedSerializer, } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_configmap_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_configmap_test.go index b86548c40..2ac2a939a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_configmap_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_configmap_test.go @@ -21,18 +21,19 @@ import ( "net/http" "testing" + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) func TestCreateConfigMap(t *testing.T) { - configMap := &api.ConfigMap{} + configMap := &v1.ConfigMap{} configMap.Name = "my-configmap" f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Group: "", Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_deployment_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_deployment_test.go index 2afc37c3e..a266fa01f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_deployment_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_deployment_test.go @@ -26,7 +26,6 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -76,7 +75,6 @@ func TestCreateDeployment(t *testing.T) { depName := "jonny-dep" f, tf, _, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { return &http.Response{ @@ -105,7 +103,6 @@ func TestCreateDeploymentNoImage(t *testing.T) { depName := "jonny-dep" f, tf, _, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { return &http.Response{ diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_namespace_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_namespace_test.go index 548b90c8a..3b172b67e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_namespace_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_namespace_test.go @@ -21,18 +21,19 @@ import ( "net/http" "testing" + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) func TestCreateNamespace(t *testing.T) { - namespaceObject := &api.Namespace{} + namespaceObject := &v1.Namespace{} namespaceObject.Name = "my-namespace" f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_pdb_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_pdb_test.go index aabf0590f..e99d5b57c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_pdb_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_pdb_test.go @@ -22,9 +22,9 @@ import ( "net/http" "testing" + "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) @@ -32,7 +32,7 @@ func TestCreatePdb(t *testing.T) { pdbName := "my-pdb" f, tf, _, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Group: "policy", Version: "v1beta1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { return &http.Response{ diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_priorityclass.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_priorityclass.go new file mode 100644 index 000000000..7f3561ae6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_priorityclass.go @@ -0,0 +1,90 @@ +/* +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 cmd + +import ( + "io" + + "github.com/spf13/cobra" + + "k8s.io/kubernetes/pkg/kubectl" + "k8s.io/kubernetes/pkg/kubectl/cmd/templates" + cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + "k8s.io/kubernetes/pkg/kubectl/util/i18n" +) + +var ( + pcLong = templates.LongDesc(i18n.T(` + Create a priorityclass with the specified name, value, globalDefault and description`)) + + pcExample = templates.Examples(i18n.T(` + # Create a priorityclass named high-priority + kubectl create priorityclass default-priority --value=1000 --description="high priority" + + # Create a priorityclass named default-priority that considered as the global default priority + kubectl create priorityclass default-priority --value=1000 --global-default=true --description="default priority"`)) +) + +// NewCmdCreatePriorityClass is a macro command to create a new priorityClass. +func NewCmdCreatePriorityClass(f cmdutil.Factory, cmdOut io.Writer) *cobra.Command { + cmd := &cobra.Command{ + Use: "priorityclass NAME --value=VALUE --global-default=BOOL [--dry-run]", + Aliases: []string{"pc"}, + Short: i18n.T("Create a priorityclass with the specified name."), + Long: pcLong, + Example: pcExample, + Run: func(cmd *cobra.Command, args []string) { + cmdutil.CheckErr(CreatePriorityClass(f, cmdOut, cmd, args)) + }, + } + + cmdutil.AddApplyAnnotationFlags(cmd) + cmdutil.AddValidateFlags(cmd) + cmdutil.AddPrinterFlags(cmd) + cmdutil.AddGeneratorFlags(cmd, cmdutil.PriorityClassV1Alpha1GeneratorName) + + cmd.Flags().Int32("value", 0, i18n.T("the value of this priority class.")) + cmd.Flags().Bool("global-default", false, i18n.T("global-default specifies whether this PriorityClass should be considered as the default priority.")) + cmd.Flags().String("description", "", i18n.T("description is an arbitrary string that usually provides guidelines on when this priority class should be used.")) + return cmd +} + +// CreatePriorityClass implements the behavior to run the create priorityClass command. +func CreatePriorityClass(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.Command, args []string) error { + name, err := NameFromCommandArgs(cmd, args) + if err != nil { + return err + } + var generator kubectl.StructuredGenerator + switch generatorName := cmdutil.GetFlagString(cmd, "generator"); generatorName { + case cmdutil.PriorityClassV1Alpha1GeneratorName: + generator = &kubectl.PriorityClassV1Generator{ + Name: name, + Value: cmdutil.GetFlagInt32(cmd, "value"), + GlobalDefault: cmdutil.GetFlagBool(cmd, "global-default"), + Description: cmdutil.GetFlagString(cmd, "description"), + } + default: + return errUnsupportedGenerator(cmd, generatorName) + } + return RunCreateSubcommand(f, cmd, cmdOut, &CreateSubcommandOptions{ + Name: name, + StructuredGenerator: generator, + DryRun: cmdutil.GetFlagBool(cmd, "dry-run"), + OutputFormat: cmdutil.GetFlagString(cmd, "output"), + }) +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_priorityclass_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_priorityclass_test.go new file mode 100644 index 000000000..2ef8b143a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_priorityclass_test.go @@ -0,0 +1,59 @@ +/* +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 cmd + +import ( + "bytes" + "io/ioutil" + "net/http" + "testing" + + "k8s.io/apimachinery/pkg/runtime/schema" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/rest/fake" + cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" +) + +func TestCreatePriorityClass(t *testing.T) { + pcName := "my-pc" + f, tf, _, ns := cmdtesting.NewAPIFactory() + tf.Client = &fake.RESTClient{ + GroupVersion: schema.GroupVersion{Group: "scheduling.k8s.io", Version: "v1alpha1"}, + NegotiatedSerializer: ns, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + return &http.Response{ + StatusCode: http.StatusOK, + Body: ioutil.NopCloser(&bytes.Buffer{}), + }, nil + }), + } + tf.ClientConfig = &restclient.Config{} + tf.Printer = &testPrinter{} + buf := bytes.NewBuffer([]byte{}) + + cmd := NewCmdCreatePriorityClass(f, buf) + cmd.Flags().Set("value", "1000") + cmd.Flags().Set("global-default", "true") + cmd.Flags().Set("description", "my priority") + cmd.Flags().Set("dry-run", "true") + cmd.Flags().Set("output", "name") + CreatePriorityClass(f, buf, cmd, []string{pcName}) + expectedOutput := "priorityclass/" + pcName + "\n" + if buf.String() != expectedOutput { + t.Errorf("expected output: %s, but got: %s", expectedOutput, buf.String()) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_quota_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_quota_test.go index 659530cb7..abf0e33a8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_quota_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_quota_test.go @@ -21,18 +21,19 @@ import ( "net/http" "testing" + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) func TestCreateQuota(t *testing.T) { - resourceQuotaObject := &api.ResourceQuota{} + resourceQuotaObject := &v1.ResourceQuota{} resourceQuotaObject.Name = "my-quota" f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_role.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_role.go index 9ea8cc33a..2fced1427 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_role.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_role.go @@ -23,12 +23,12 @@ import ( "github.com/spf13/cobra" + rbacv1 "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/apis/rbac" - internalversionrbac "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion" + clientgorbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/util/i18n" @@ -108,7 +108,7 @@ type CreateRoleOptions struct { DryRun bool OutputFormat string Namespace string - Client internalversionrbac.RbacInterface + Client clientgorbacv1.RbacV1Interface Mapper meta.RESTMapper Out io.Writer PrintObject func(obj runtime.Object) error @@ -206,11 +206,11 @@ func (c *CreateRoleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args return f.PrintObject(cmd, false, c.Mapper, obj, c.Out) } - clientSet, err := f.ClientSet() + clientset, err := f.KubernetesClientSet() if err != nil { return err } - c.Client = clientSet.Rbac() + c.Client = clientset.RbacV1() return nil } @@ -275,7 +275,7 @@ func (c *CreateRoleOptions) validateResource() error { } func (c *CreateRoleOptions) RunCreateRole() error { - role := &rbac.Role{} + role := &rbacv1.Role{} role.Name = c.Name rules, err := generateResourcePolicyRules(c.Mapper, c.Verbs, c.Resources, c.ResourceNames, []string{}) if err != nil { @@ -308,7 +308,7 @@ func arrayContains(s []string, e string) bool { return false } -func generateResourcePolicyRules(mapper meta.RESTMapper, verbs []string, resources []ResourceOptions, resourceNames []string, nonResourceURLs []string) ([]rbac.PolicyRule, error) { +func generateResourcePolicyRules(mapper meta.RESTMapper, verbs []string, resources []ResourceOptions, resourceNames []string, nonResourceURLs []string) ([]rbacv1.PolicyRule, error) { // groupResourceMapping is a apigroup-resource map. The key of this map is api group, while the value // is a string array of resources under this api group. // E.g. groupResourceMapping = {"extensions": ["replicasets", "deployments"], "batch":["jobs"]} @@ -334,9 +334,9 @@ func generateResourcePolicyRules(mapper meta.RESTMapper, verbs []string, resourc } // Create separate rule for each of the api group. - rules := []rbac.PolicyRule{} + rules := []rbacv1.PolicyRule{} for _, g := range sets.StringKeySet(groupResourceMapping).List() { - rule := rbac.PolicyRule{} + rule := rbacv1.PolicyRule{} rule.Verbs = verbs rule.Resources = groupResourceMapping[g] rule.APIGroups = []string{g} @@ -345,7 +345,7 @@ func generateResourcePolicyRules(mapper meta.RESTMapper, verbs []string, resourc } if len(nonResourceURLs) > 0 { - rule := rbac.PolicyRule{} + rule := rbacv1.PolicyRule{} rule.Verbs = verbs rule.NonResourceURLs = nonResourceURLs rules = append(rules, rule) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_role_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_role_test.go index 1dcd14705..62ca02bf5 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_role_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_role_test.go @@ -22,10 +22,10 @@ import ( "reflect" "testing" + rbac "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/apis/rbac" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_rolebinding_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_rolebinding_test.go index 910738c60..154ae26a1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_rolebinding_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_rolebinding_test.go @@ -24,20 +24,23 @@ import ( "reflect" "testing" + rbac "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/rbac" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) -var groupVersion = schema.GroupVersion{Group: "rbac.authorization.k8s.io", Version: "v1alpha1"} +var groupVersion = schema.GroupVersion{Group: "rbac.authorization.k8s.io", Version: "v1"} func TestCreateRoleBinding(t *testing.T) { expectBinding := &rbac.RoleBinding{ + TypeMeta: v1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "RoleBinding", + }, ObjectMeta: v1.ObjectMeta{ Name: "fake-binding", }, @@ -75,7 +78,6 @@ func TestCreateRoleBinding(t *testing.T) { tf.Printer = &testPrinter{} tf.Client = &RoleBindingRESTClient{ RESTClient: &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_secret.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_secret.go index 85909ceb0..f49048bf9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_secret.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_secret.go @@ -169,6 +169,7 @@ func NewCmdCreateSecretDockerRegistry(f cmdutil.Factory, cmdOut io.Writer) *cobr cmd.Flags().String("docker-email", "", i18n.T("Email for Docker registry")) cmd.Flags().String("docker-server", "https://index.docker.io/v1/", i18n.T("Server location for Docker registry")) cmd.Flags().Bool("append-hash", false, "Append a hash of the secret to its name.") + cmdutil.AddInclude3rdPartyFlags(cmd) return cmd } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_secret_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_secret_test.go index 9f9128db2..0db9873d5 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_secret_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_secret_test.go @@ -21,13 +21,14 @@ import ( "net/http" "testing" + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) func TestCreateSecretGeneric(t *testing.T) { - secretObject := &api.Secret{ + secretObject := &v1.Secret{ Data: map[string][]byte{ "password": []byte("includes,comma"), "username": []byte("test_user"), @@ -37,7 +38,7 @@ func TestCreateSecretGeneric(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -63,12 +64,12 @@ func TestCreateSecretGeneric(t *testing.T) { } func TestCreateSecretDockerRegistry(t *testing.T) { - secretObject := &api.Secret{} + secretObject := &v1.Secret{} secretObject.Name = "my-secret" f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_service.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_service.go index 545874229..52496a03b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_service.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_service.go @@ -21,7 +21,7 @@ import ( "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/api" + "k8s.io/api/core/v1" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -47,13 +47,13 @@ func NewCmdCreateService(f cmdutil.Factory, cmdOut, errOut io.Writer) *cobra.Com var ( serviceClusterIPLong = templates.LongDesc(i18n.T(` - Create a clusterIP service with the specified name.`)) + Create a ClusterIP service with the specified name.`)) serviceClusterIPExample = templates.Examples(i18n.T(` - # Create a new clusterIP service named my-cs + # Create a new ClusterIP service named my-cs kubectl create service clusterip my-cs --tcp=5678:8080 - # Create a new clusterIP service named my-cs (in headless mode) + # Create a new ClusterIP service named my-cs (in headless mode) kubectl create service clusterip my-cs --clusterip="None"`)) ) @@ -61,11 +61,11 @@ func addPortFlags(cmd *cobra.Command) { cmd.Flags().StringSlice("tcp", []string{}, "Port pairs can be specified as ':'.") } -// NewCmdCreateServiceClusterIP is a command to create a clusterIP service +// NewCmdCreateServiceClusterIP is a command to create a ClusterIP service func NewCmdCreateServiceClusterIP(f cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "clusterip NAME [--tcp=:] [--dry-run]", - Short: i18n.T("Create a clusterIP service."), + Short: i18n.T("Create a ClusterIP service."), Long: serviceClusterIPLong, Example: serviceClusterIPExample, Run: func(cmd *cobra.Command, args []string) { @@ -86,7 +86,7 @@ func errUnsupportedGenerator(cmd *cobra.Command, generatorName string) error { return cmdutil.UsageErrorf(cmd, "Generator %s not supported. ", generatorName) } -// CreateServiceClusterIP implements the behavior to run the create service clusterIP command +// CreateServiceClusterIP is the implementation of the create service clusterip command func CreateServiceClusterIP(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.Command, args []string) error { name, err := NameFromCommandArgs(cmd, args) if err != nil { @@ -98,7 +98,7 @@ func CreateServiceClusterIP(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.Comm generator = &kubectl.ServiceCommonGeneratorV1{ Name: name, TCP: cmdutil.GetFlagStringSlice(cmd, "tcp"), - Type: api.ServiceTypeClusterIP, + Type: v1.ServiceTypeClusterIP, ClusterIP: cmdutil.GetFlagString(cmd, "clusterip"), } default: @@ -114,10 +114,10 @@ func CreateServiceClusterIP(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.Comm var ( serviceNodePortLong = templates.LongDesc(i18n.T(` - Create a nodeport service with the specified name.`)) + Create a NodePort service with the specified name.`)) serviceNodePortExample = templates.Examples(i18n.T(` - # Create a new nodeport service named my-ns + # Create a new NodePort service named my-ns kubectl create service nodeport my-ns --tcp=5678:8080`)) ) @@ -154,7 +154,7 @@ func CreateServiceNodePort(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.Comma generator = &kubectl.ServiceCommonGeneratorV1{ Name: name, TCP: cmdutil.GetFlagStringSlice(cmd, "tcp"), - Type: api.ServiceTypeNodePort, + Type: v1.ServiceTypeNodePort, ClusterIP: "", NodePort: cmdutil.GetFlagInt(cmd, "node-port"), } @@ -198,7 +198,7 @@ func NewCmdCreateServiceLoadBalancer(f cmdutil.Factory, cmdOut io.Writer) *cobra return cmd } -// CreateServiceLoadBalancer is the implementation of the service loadbalancer command +// CreateServiceLoadBalancer is the implementation of the create service loadbalancer command func CreateServiceLoadBalancer(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.Command, args []string) error { name, err := NameFromCommandArgs(cmd, args) if err != nil { @@ -210,7 +210,7 @@ func CreateServiceLoadBalancer(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.C generator = &kubectl.ServiceCommonGeneratorV1{ Name: name, TCP: cmdutil.GetFlagStringSlice(cmd, "tcp"), - Type: api.ServiceTypeLoadBalancer, + Type: v1.ServiceTypeLoadBalancer, ClusterIP: "", } default: @@ -237,7 +237,7 @@ var ( kubectl create service externalname my-ns --external-name bar.com`)) ) -// NewCmdCreateServiceExternalName is a macro command for creating a ExternalName service +// NewCmdCreateServiceExternalName is a macro command for creating an ExternalName service func NewCmdCreateServiceExternalName(f cmdutil.Factory, cmdOut io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "externalname NAME --external-name external.name [--dry-run]", @@ -259,7 +259,7 @@ func NewCmdCreateServiceExternalName(f cmdutil.Factory, cmdOut io.Writer) *cobra return cmd } -// CreateExternalNameService is the implementation of the service externalname command +// CreateExternalNameService is the implementation of the create service externalname command func CreateExternalNameService(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.Command, args []string) error { name, err := NameFromCommandArgs(cmd, args) if err != nil { @@ -270,7 +270,7 @@ func CreateExternalNameService(f cmdutil.Factory, cmdOut io.Writer, cmd *cobra.C case cmdutil.ServiceExternalNameGeneratorV1Name: generator = &kubectl.ServiceCommonGeneratorV1{ Name: name, - Type: api.ServiceTypeExternalName, + Type: v1.ServiceTypeExternalName, ExternalName: cmdutil.GetFlagString(cmd, "external-name"), ClusterIP: "", } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_service_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_service_test.go index 75fa4ae13..9e7e1bb51 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_service_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_service_test.go @@ -21,18 +21,19 @@ import ( "net/http" "testing" + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) func TestCreateService(t *testing.T) { - service := &api.Service{} + service := &v1.Service{} service.Name = "my-service" f, tf, codec, negSer := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: negSer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -57,12 +58,12 @@ func TestCreateService(t *testing.T) { } func TestCreateServiceNodePort(t *testing.T) { - service := &api.Service{} + service := &v1.Service{} service.Name = "my-node-port-service" f, tf, codec, negSer := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: negSer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -87,12 +88,12 @@ func TestCreateServiceNodePort(t *testing.T) { } func TestCreateServiceExternalName(t *testing.T) { - service := &api.Service{} + service := &v1.Service{} service.Name = "my-external-name-service" f, tf, codec, negSer := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: negSer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_serviceaccount_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_serviceaccount_test.go index 63e71dc00..c510cb52e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_serviceaccount_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_serviceaccount_test.go @@ -21,18 +21,19 @@ import ( "net/http" "testing" + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) func TestCreateServiceAccount(t *testing.T) { - serviceAccountObject := &api.ServiceAccount{} + serviceAccountObject := &v1.ServiceAccount{} serviceAccountObject.Name = "my-service-account" f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_test.go index b68670afc..a554a17b9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/create_test.go @@ -21,8 +21,8 @@ import ( "net/http" "testing" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) @@ -33,7 +33,8 @@ func TestExtraArgsFail(t *testing.T) { f, _, _, _ := cmdtesting.NewAPIFactory() c := NewCmdCreate(f, buf, errBuf) - if ValidateArgs(c, []string{"rc"}) == nil { + options := CreateOptions{} + if options.ValidateArgs(c, []string{"rc"}) == nil { t.Errorf("unexpected non-error") } } @@ -46,7 +47,7 @@ func TestCreateObject(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -80,7 +81,7 @@ func TestCreateMultipleObject(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -118,7 +119,7 @@ func TestCreateDirectory(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/delete.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/delete.go index 50f32f4ca..ad9efbb2a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/delete.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/delete.go @@ -170,19 +170,18 @@ func (o *DeleteOptions) Complete(f cmdutil.Factory, out, errOut io.Writer, args } // Set up client based support. - mapper, typer, err := f.UnstructuredObject() + mapper, _, err := f.UnstructuredObject() if err != nil { return err } o.Mapper = mapper includeUninitialized := cmdutil.ShouldIncludeUninitialized(cmd, false) - r := f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + r := f.NewUnstructuredBuilder(). ContinueOnError(). NamespaceParam(cmdNamespace).DefaultNamespace(). FilenameParam(enforceNamespace, &o.FilenameOptions). - SelectorParam(o.Selector). + LabelSelectorParam(o.Selector). IncludeUninitialized(includeUninitialized). SelectAllParam(o.DeleteAll). ResourceTypeOrNameArgs(false, args...).RequireObject(false). diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/delete_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/delete_test.go index 5cd244d39..5b78ba097 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/delete_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/delete_test.go @@ -32,9 +32,8 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/dynamic" - restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -57,7 +56,6 @@ func TestDeleteObjectByTuple(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -122,7 +120,6 @@ func TestOrphanDependentsInDeleteObject(t *testing.T) { tf.Printer = &testPrinter{} var expectedOrphanDependents *bool tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m, b := req.URL.Path, req.Method, req.Body; { @@ -171,7 +168,6 @@ func TestDeleteNamedObject(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -222,7 +218,6 @@ func TestDeleteObject(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -281,7 +276,6 @@ func TestDeleteObjectGraceZero(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { t.Logf("got request %s %s", req.Method, req.URL.Path) @@ -331,7 +325,6 @@ func TestDeleteObjectNotFound(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -369,7 +362,6 @@ func TestDeleteObjectIgnoreNotFound(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -407,7 +399,6 @@ func TestDeleteAllNotFound(t *testing.T) { tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -457,7 +448,6 @@ func TestDeleteAllIgnoreNotFound(t *testing.T) { tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -494,7 +484,6 @@ func TestDeleteMultipleObject(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -530,7 +519,6 @@ func TestDeleteMultipleObjectContinueOnMissing(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -575,7 +563,6 @@ func TestDeleteMultipleResourcesWithTheSameName(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -614,7 +601,6 @@ func TestDeleteDirectory(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -647,17 +633,16 @@ func TestDeleteMultipleSelector(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { case p == "/namespaces/test/pods" && m == "GET": - if req.URL.Query().Get(metav1.LabelSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != "a=b" { + if req.URL.Query().Get(metav1.LabelSelectorQueryParam("v1")) != "a=b" { t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) } return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, nil case p == "/namespaces/test/services" && m == "GET": - if req.URL.Query().Get(metav1.LabelSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != "a=b" { + if req.URL.Query().Get(metav1.LabelSelectorQueryParam("v1")) != "a=b" { t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) } return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, svc)}, nil @@ -713,7 +698,7 @@ func TestResourceErrors(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf, errBuf := bytes.NewBuffer([]byte{}), bytes.NewBuffer([]byte{}) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/describe.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/describe.go index 579d521de..efb479855 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/describe.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/describe.go @@ -37,20 +37,19 @@ import ( ) var ( - describe_long = templates.LongDesc(` - Show details of a specific resource or group of resources. - It includes the uninitialized objects, unless --include-uninitialized=false is explicitly set. - This command joins many API calls together to form a detailed description of a - given resource or group of resources. + describeLong = templates.LongDesc(` + Show details of a specific resource or group of resources + + Print a detailed description of the selected resources, including related resources such + as events or controllers. You may select a single object by name, all objects of that + type, provide a name prefix, or label selector. For example: $ kubectl describe TYPE NAME_PREFIX will first check for an exact match on TYPE and NAME_PREFIX. If no such resource - exists, it will output details for every resource that has a name prefixed with NAME_PREFIX. - - ` + validResources) + exists, it will output details for every resource that has a name prefixed with NAME_PREFIX.`) - describe_example = templates.Examples(i18n.T(` + describeExample = templates.Examples(i18n.T(` # Describe a node kubectl describe nodes kubernetes-node-emt8.c.myproject.internal @@ -83,8 +82,8 @@ func NewCmdDescribe(f cmdutil.Factory, out, cmdErr io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME)", Short: i18n.T("Show details of a specific resource or group of resources"), - Long: describe_long, - Example: describe_example, + Long: describeLong + "\n\n" + cmdutil.ValidResourceTypeList(f), + Example: describeExample, Run: func(cmd *cobra.Command, args []string) { err := RunDescribe(f, out, cmdErr, cmd, args, options, describerSettings) cmdutil.CheckErr(err) @@ -113,24 +112,18 @@ func RunDescribe(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, a enforceNamespace = false } if len(args) == 0 && cmdutil.IsFilenameSliceEmpty(options.Filenames) { - fmt.Fprint(cmdErr, "You must specify the type of resource to describe. ", validResources) + fmt.Fprint(cmdErr, "You must specify the type of resource to describe. ", cmdutil.ValidResourceTypeList(f)) return cmdutil.UsageErrorf(cmd, "Required resource not specified.") } - mapper, typer, err := f.UnstructuredObject() - if err != nil { - return err - } - // include the uninitialized objects by default // unless user explicitly set --include-uninitialized=false includeUninitialized := cmdutil.ShouldIncludeUninitialized(cmd, true) - r := f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + r := f.NewUnstructuredBuilder(). ContinueOnError(). NamespaceParam(cmdNamespace).DefaultNamespace().AllNamespaces(allNamespaces). FilenameParam(enforceNamespace, options). - SelectorParam(selector). + LabelSelectorParam(selector). IncludeUninitialized(includeUninitialized). ResourceTypeOrNameArgs(true, args...). Flatten(). diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/describe_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/describe_test.go index 1064d981f..2c3ec49c5 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/describe_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/describe_test.go @@ -23,7 +23,6 @@ import ( "testing" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) @@ -33,7 +32,6 @@ func TestDescribeUnknownSchemaObject(t *testing.T) { f, tf, codec, _ := cmdtesting.NewTestFactory() tf.Describer = d tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", "foo"))}, } @@ -58,7 +56,6 @@ func TestDescribeUnknownNamespacedSchemaObject(t *testing.T) { f, tf, codec, _ := cmdtesting.NewTestFactory() tf.Describer = d tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalNamespacedType("", "", "foo", "non-default"))}, } @@ -83,7 +80,6 @@ func TestDescribeObject(t *testing.T) { d := &testDescriber{Output: "test output"} tf.Describer = d tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -117,7 +113,6 @@ func TestDescribeListObjects(t *testing.T) { d := &testDescriber{Output: "test output"} tf.Describer = d tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, } @@ -138,7 +133,6 @@ func TestDescribeObjectShowEvents(t *testing.T) { d := &testDescriber{Output: "test output"} tf.Describer = d tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, } @@ -160,7 +154,6 @@ func TestDescribeObjectSkipEvents(t *testing.T) { d := &testDescriber{Output: "test output"} tf.Describer = d tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff.go new file mode 100644 index 000000000..c3aaca5e7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff.go @@ -0,0 +1,453 @@ +/* +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 cmd + +import ( + "encoding/json" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + + "github.com/ghodss/yaml" + "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/kubectl/apply/parse" + "k8s.io/kubernetes/pkg/kubectl/apply/strategy" + "k8s.io/kubernetes/pkg/kubectl/cmd/templates" + cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/util/i18n" + "k8s.io/utils/exec" +) + +var ( + diffLong = templates.LongDesc(i18n.T(` + Diff configurations specified by filename or stdin between their local, + last-applied, live and/or "merged" versions. + + LOCAL and LIVE versions are diffed by default. Other availble keywords + are MERGED and LAST. + + Output is always YAML. + + KUBERNETES_EXTERNAL_DIFF environment variable can be used to select your own + diff command. By default, the "diff" command available in your path will be + run with "-u" (unicode) and "-N" (treat new files as empty) options.`)) + diffExample = templates.Examples(i18n.T(` + # Diff resources included in pod.json. By default, it will diff LOCAL and LIVE versions + kubectl alpha diff -f pod.json + + # When one version is specified, diff that version against LIVE + cat service.yaml | kubectl alpha diff -f - MERGED + + # Or specify both versions + kubectl alpha diff -f pod.json -f service.yaml LAST LOCAL`)) +) + +type DiffOptions struct { + FilenameOptions resource.FilenameOptions +} + +func isValidArgument(arg string) error { + switch arg { + case "LOCAL", "LIVE", "LAST", "MERGED": + return nil + default: + return fmt.Errorf(`Invalid parameter %q, must be either "LOCAL", "LIVE", "LAST" or "MERGED"`, arg) + } + +} + +func parseDiffArguments(args []string) (string, string, error) { + if len(args) > 2 { + return "", "", fmt.Errorf("Invalid number of arguments: expected at most 2.") + } + // Default values + from := "LOCAL" + to := "LIVE" + if len(args) > 0 { + from = args[0] + } + if len(args) > 1 { + to = args[1] + } + + if err := isValidArgument(to); err != nil { + return "", "", err + } + if err := isValidArgument(from); err != nil { + return "", "", err + } + + return from, to, nil +} + +func NewCmdDiff(f cmdutil.Factory, stdout, stderr io.Writer) *cobra.Command { + var options DiffOptions + diff := DiffProgram{ + Exec: exec.New(), + Stdout: stdout, + Stderr: stderr, + } + cmd := &cobra.Command{ + Use: "diff -f FILENAME", + Short: i18n.T("Diff different versions of configurations"), + Long: diffLong, + Example: diffExample, + Run: func(cmd *cobra.Command, args []string) { + from, to, err := parseDiffArguments(args) + cmdutil.CheckErr(err) + cmdutil.CheckErr(RunDiff(f, &diff, &options, from, to)) + }, + } + + usage := "contains the configuration to diff" + cmdutil.AddFilenameOptionFlags(cmd, &options.FilenameOptions, usage) + cmd.MarkFlagRequired("filename") + + return cmd +} + +// DiffProgram finds and run the diff program. The value of +// KUBERNETES_EXTERNAL_DIFF environment variable will be used a diff +// program. By default, `diff(1)` will be used. +type DiffProgram struct { + Exec exec.Interface + Stdout io.Writer + Stderr io.Writer +} + +func (d *DiffProgram) getCommand(args ...string) exec.Cmd { + diff := "" + if envDiff := os.Getenv("KUBERNETES_EXTERNAL_DIFF"); envDiff != "" { + diff = envDiff + } else { + diff = "diff" + args = append([]string{"-u", "-N"}, args...) + } + + cmd := d.Exec.Command(diff, args...) + cmd.SetStdout(d.Stdout) + cmd.SetStderr(d.Stderr) + + return cmd +} + +// Run runs the detected diff program. `from` and `to` are the directory to diff. +func (d *DiffProgram) Run(from, to string) error { + d.getCommand(from, to).Run() // Ignore diff return code + return nil +} + +// Printer is used to print an object. +type Printer struct{} + +// Print the object inside the writer w. +func (p *Printer) Print(obj map[string]interface{}, w io.Writer) error { + if obj == nil { + return nil + } + data, err := yaml.Marshal(obj) + if err != nil { + return err + } + _, err = w.Write(data) + return err + +} + +// DiffVersion gets the proper version of objects, and aggregate them into a directory. +type DiffVersion struct { + Dir *Directory + Name string +} + +// NewDiffVersion creates a new DiffVersion with the named version. +func NewDiffVersion(name string) (*DiffVersion, error) { + dir, err := CreateDirectory(name) + if err != nil { + return nil, err + } + return &DiffVersion{ + Dir: dir, + Name: name, + }, nil +} + +func (v *DiffVersion) getObject(obj Object) (map[string]interface{}, error) { + switch v.Name { + case "LIVE": + return obj.Live() + case "MERGED": + return obj.Merged() + case "LOCAL": + return obj.Local() + case "LAST": + return obj.Last() + } + return nil, fmt.Errorf("Unknown version: %v", v.Name) +} + +// Print prints the object using the printer into a new file in the directory. +func (v *DiffVersion) Print(obj Object, printer Printer) error { + vobj, err := v.getObject(obj) + if err != nil { + return err + } + f, err := v.Dir.NewFile(obj.Name()) + if err != nil { + return err + } + defer f.Close() + return printer.Print(vobj, f) +} + +// Directory creates a new temp directory, and allows to easily create new files. +type Directory struct { + Name string +} + +// CreateDirectory does create the actual disk directory, and return a +// new representation of it. +func CreateDirectory(prefix string) (*Directory, error) { + name, err := ioutil.TempDir("", prefix+"-") + if err != nil { + return nil, err + } + + return &Directory{ + Name: name, + }, nil +} + +// NewFile creates a new file in the directory. +func (d *Directory) NewFile(name string) (*os.File, error) { + return os.OpenFile(filepath.Join(d.Name, name), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0700) +} + +// Delete removes the directory recursively. +func (d *Directory) Delete() error { + return os.RemoveAll(d.Name) +} + +// Object is an interface that let's you retrieve multiple version of +// it. +type Object interface { + Local() (map[string]interface{}, error) + Live() (map[string]interface{}, error) + Last() (map[string]interface{}, error) + Merged() (map[string]interface{}, error) + + Name() string +} + +// InfoObject is an implementation of the Object interface. It gets all +// the information from the Info object. +type InfoObject struct { + Info *resource.Info + Encoder runtime.Encoder + Parser *parse.Factory +} + +var _ Object = &InfoObject{} + +func (obj InfoObject) toMap(data []byte) (map[string]interface{}, error) { + m := map[string]interface{}{} + if len(data) == 0 { + return m, nil + } + err := json.Unmarshal(data, &m) + return m, err +} + +func (obj InfoObject) Local() (map[string]interface{}, error) { + data, err := runtime.Encode(obj.Encoder, obj.Info.VersionedObject) + if err != nil { + return nil, err + } + return obj.toMap(data) +} + +func (obj InfoObject) Live() (map[string]interface{}, error) { + if obj.Info.Object == nil { + return nil, nil // Object doesn't exist on cluster. + } + data, err := runtime.Encode(obj.Encoder, obj.Info.Object) + if err != nil { + return nil, err + } + return obj.toMap(data) +} + +func (obj InfoObject) Merged() (map[string]interface{}, error) { + local, err := obj.Local() + if err != nil { + return nil, err + } + + live, err := obj.Live() + if err != nil { + return nil, err + } + + last, err := obj.Last() + if err != nil { + return nil, err + } + + if live == nil || last == nil { + return local, nil // We probably don't have a live verison, merged is local. + } + + elmt, err := obj.Parser.CreateElement(last, local, live) + if err != nil { + return nil, err + } + result, err := elmt.Merge(strategy.Create(strategy.Options{})) + return result.MergedResult.(map[string]interface{}), err +} + +func (obj InfoObject) Last() (map[string]interface{}, error) { + if obj.Info.Object == nil { + return nil, nil // No object is live, return empty + } + accessor, err := meta.Accessor(obj.Info.Object) + if err != nil { + return nil, err + } + annots := accessor.GetAnnotations() + if annots == nil { + return nil, nil // Not an error, just empty. + } + + return obj.toMap([]byte(annots[api.LastAppliedConfigAnnotation])) +} + +func (obj InfoObject) Name() string { + return obj.Info.Name +} + +// Differ creates two DiffVersion and diffs them. +type Differ struct { + From *DiffVersion + To *DiffVersion +} + +func NewDiffer(from, to string) (*Differ, error) { + differ := Differ{} + var err error + differ.From, err = NewDiffVersion(from) + if err != nil { + return nil, err + } + differ.To, err = NewDiffVersion(to) + if err != nil { + differ.From.Dir.Delete() + return nil, err + } + + return &differ, nil +} + +// Diff diffs to versions of a specific object, and print both versions to directories. +func (d *Differ) Diff(obj Object, printer Printer) error { + if err := d.From.Print(obj, printer); err != nil { + return err + } + if err := d.To.Print(obj, printer); err != nil { + return err + } + return nil +} + +// Run runs the diff program against both directories. +func (d *Differ) Run(diff *DiffProgram) error { + return diff.Run(d.From.Dir.Name, d.To.Dir.Name) +} + +// TearDown removes both temporary directories recursively. +func (d *Differ) TearDown() { + d.From.Dir.Delete() // Ignore error + d.To.Dir.Delete() // Ignore error +} + +// RunDiff uses the factory to parse file arguments, find the version to +// diff, and find each Info object for each files, and runs against the +// differ. +func RunDiff(f cmdutil.Factory, diff *DiffProgram, options *DiffOptions, from, to string) error { + openapi, err := f.OpenAPISchema() + if err != nil { + return err + } + parser := &parse.Factory{Resources: openapi} + + differ, err := NewDiffer(from, to) + if err != nil { + return err + } + defer differ.TearDown() + + printer := Printer{} + + cmdNamespace, enforceNamespace, err := f.DefaultNamespace() + if err != nil { + return err + } + + r := f.NewUnstructuredBuilder(). + NamespaceParam(cmdNamespace).DefaultNamespace(). + FilenameParam(enforceNamespace, &options.FilenameOptions). + Flatten(). + Do() + err = r.Err() + if err != nil { + return err + } + + err = r.Visit(func(info *resource.Info, err error) error { + if err != nil { + return err + } + + if err := info.Get(); err != nil { + if !errors.IsNotFound(err) { + return cmdutil.AddSourceToErr(fmt.Sprintf("retrieving current configuration of:\n%v\nfrom server for:", info), info.Source, err) + } + info.Object = nil + } + + obj := InfoObject{ + Info: info, + Parser: parser, + Encoder: f.JSONEncoder(), + } + + return differ.Diff(obj, printer) + }) + if err != nil { + return err + } + + differ.Run(diff) + + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff_test.go new file mode 100644 index 000000000..4400023ff --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff_test.go @@ -0,0 +1,285 @@ +/* +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 cmd + +import ( + "bytes" + "io/ioutil" + "os" + "path" + "path/filepath" + "strings" + "testing" + + "k8s.io/utils/exec" +) + +type FakeObject struct { + name string + local map[string]interface{} + merged map[string]interface{} + live map[string]interface{} + last map[string]interface{} +} + +var _ Object = &FakeObject{} + +func (f *FakeObject) Name() string { + return f.name +} + +func (f *FakeObject) Local() (map[string]interface{}, error) { + return f.local, nil +} + +func (f *FakeObject) Merged() (map[string]interface{}, error) { + return f.merged, nil +} + +func (f *FakeObject) Live() (map[string]interface{}, error) { + return f.live, nil +} + +func (f *FakeObject) Last() (map[string]interface{}, error) { + return f.last, nil +} + +func TestArguments(t *testing.T) { + tests := []struct { + // Input + args []string + + // Outputs + from string + to string + err string + }{ + // Defaults + { + args: []string{}, + from: "LOCAL", + to: "LIVE", + err: "", + }, + // One valid argument + { + args: []string{"MERGED"}, + from: "MERGED", + to: "LIVE", + err: "", + }, + // One invalid argument + { + args: []string{"WRONG"}, + from: "", + to: "", + err: `Invalid parameter "WRONG", must be either "LOCAL", "LIVE", "LAST" or "MERGED"`, + }, + // Two valid arguments + { + args: []string{"MERGED", "LAST"}, + from: "MERGED", + to: "LAST", + err: "", + }, + // Two same arguments is fine + { + args: []string{"MERGED", "MERGED"}, + from: "MERGED", + to: "MERGED", + err: "", + }, + // Second argument is invalid + { + args: []string{"MERGED", "WRONG"}, + from: "", + to: "", + err: `Invalid parameter "WRONG", must be either "LOCAL", "LIVE", "LAST" or "MERGED"`, + }, + // Three arguments + { + args: []string{"MERGED", "LIVE", "LAST"}, + from: "", + to: "", + err: `Invalid number of arguments: expected at most 2.`, + }, + } + + for _, test := range tests { + from, to, e := parseDiffArguments(test.args) + err := "" + if e != nil { + err = e.Error() + } + if from != test.from || to != test.to || err != test.err { + t.Errorf("parseDiffArguments(%v) = (%v, %v, %v), expected (%v, %v, %v)", + test.args, + from, to, err, + test.from, test.to, test.err, + ) + } + } +} + +func TestDiffProgram(t *testing.T) { + os.Setenv("KUBERNETES_EXTERNAL_DIFF", "echo") + stdout := bytes.Buffer{} + diff := DiffProgram{ + Stdout: &stdout, + Stderr: &bytes.Buffer{}, + Exec: exec.New(), + } + err := diff.Run("one", "two") + if err != nil { + t.Fatal(err) + } + if output := stdout.String(); output != "one two\n" { + t.Fatalf(`stdout = %q, expected "one two\n"`, output) + } +} + +func TestPrinter(t *testing.T) { + printer := Printer{} + + obj := map[string]interface{}{ + "string": "string", + "list": []int{1, 2, 3}, + "int": 12, + } + buf := bytes.Buffer{} + printer.Print(obj, &buf) + want := `int: 12 +list: +- 1 +- 2 +- 3 +string: string +` + if buf.String() != want { + t.Errorf("Print() = %q, want %q", buf.String(), want) + } +} + +func TestDiffVersion(t *testing.T) { + diff, err := NewDiffVersion("LOCAL") + if err != nil { + t.Fatal(err) + } + defer diff.Dir.Delete() + + obj := FakeObject{ + name: "bla", + local: map[string]interface{}{"local": true}, + last: map[string]interface{}{"last": true}, + live: map[string]interface{}{"live": true}, + merged: map[string]interface{}{"merged": true}, + } + err = diff.Print(&obj, Printer{}) + if err != nil { + t.Fatal(err) + } + fcontent, err := ioutil.ReadFile(path.Join(diff.Dir.Name, obj.Name())) + if err != nil { + t.Fatal(err) + } + econtent := "local: true\n" + if string(fcontent) != econtent { + t.Fatalf("File has %q, expected %q", string(fcontent), econtent) + } +} + +func TestDirectory(t *testing.T) { + dir, err := CreateDirectory("prefix") + defer dir.Delete() + if err != nil { + t.Fatal(err) + } + _, err = os.Stat(dir.Name) + if err != nil { + t.Fatal(err) + } + if !strings.HasPrefix(filepath.Base(dir.Name), "prefix") { + t.Fatalf(`Directory doesn't start with "prefix": %q`, dir.Name) + } + entries, err := ioutil.ReadDir(dir.Name) + if err != nil { + t.Fatal(err) + } + if len(entries) != 0 { + t.Fatalf("Directory should be empty, has %d elements", len(entries)) + } + _, err = dir.NewFile("ONE") + if err != nil { + t.Fatal(err) + } + _, err = dir.NewFile("TWO") + if err != nil { + t.Fatal(err) + } + entries, err = ioutil.ReadDir(dir.Name) + if err != nil { + t.Fatal(err) + } + if len(entries) != 2 { + t.Fatalf("ReadDir should have two elements, has %d elements", len(entries)) + } + err = dir.Delete() + if err != nil { + t.Fatal(err) + } + _, err = os.Stat(dir.Name) + if err == nil { + t.Fatal("Directory should be gone, still present.") + } +} + +func TestDiffer(t *testing.T) { + diff, err := NewDiffer("LOCAL", "LIVE") + if err != nil { + t.Fatal(err) + } + defer diff.TearDown() + + obj := FakeObject{ + name: "bla", + local: map[string]interface{}{"local": true}, + last: map[string]interface{}{"last": true}, + live: map[string]interface{}{"live": true}, + merged: map[string]interface{}{"merged": true}, + } + err = diff.Diff(&obj, Printer{}) + if err != nil { + t.Fatal(err) + } + fcontent, err := ioutil.ReadFile(path.Join(diff.From.Dir.Name, obj.Name())) + if err != nil { + t.Fatal(err) + } + econtent := "local: true\n" + if string(fcontent) != econtent { + t.Fatalf("File has %q, expected %q", string(fcontent), econtent) + } + + fcontent, err = ioutil.ReadFile(path.Join(diff.To.Dir.Name, obj.Name())) + if err != nil { + t.Fatal(err) + } + econtent = "live: true\n" + if string(fcontent) != econtent { + t.Fatalf("File has %q, expected %q", string(fcontent), econtent) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/drain.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/drain.go index 7d0a9b4ba..396f5e2ea 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/drain.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/drain.go @@ -28,6 +28,7 @@ import ( "github.com/spf13/cobra" corev1 "k8s.io/api/core/v1" + policyv1beta1 "k8s.io/api/policy/v1beta1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -38,11 +39,9 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/policy" - "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -51,7 +50,7 @@ import ( ) type DrainOptions struct { - client internalclientset.Interface + client kubernetes.Interface restClient *restclient.RESTClient Factory cmdutil.Factory Force bool @@ -71,7 +70,7 @@ type DrainOptions struct { // Takes a pod and returns a bool indicating whether or not to operate on the // pod, an optional warning message, and an optional fatal error. -type podFilter func(api.Pod) (include bool, w *warning, f *fatal) +type podFilter func(corev1.Pod) (include bool, w *warning, f *fatal) type warning struct { string } @@ -220,7 +219,7 @@ func (o *DrainOptions) SetupDrain(cmd *cobra.Command, args []string) error { o.DryRun = cmdutil.GetFlagBool(cmd, "dry-run") - if o.client, err = o.Factory.ClientSet(); err != nil { + if o.client, err = o.Factory.KubernetesClientSet(); err != nil { return err } @@ -237,20 +236,18 @@ func (o *DrainOptions) SetupDrain(cmd *cobra.Command, args []string) error { return err } - nameArgs := []string{"nodes"} - if len(args) > 0 { - nameArgs = append(nameArgs, args[0]) - if strings.Contains(args[0], "/") { - nameArgs = []string{args[0]} - } + builder := o.Factory.NewBuilder(). + NamespaceParam(cmdNamespace).DefaultNamespace(). + ResourceNames("nodes", args...). + SingleResourceType(). + Flatten() + + if len(o.Selector) > 0 { + builder = builder.LabelSelectorParam(o.Selector). + ResourceTypes("nodes") } - r := o.Factory.NewBuilder(). - NamespaceParam(cmdNamespace).DefaultNamespace(). - SelectorParam(o.Selector). - ResourceTypeOrNameArgs(true, nameArgs...). - Flatten(). - Do() + r := builder.Do() if err = r.Err(); err != nil { return err @@ -260,6 +257,10 @@ func (o *DrainOptions) SetupDrain(cmd *cobra.Command, args []string) error { if err != nil { return err } + if info.Mapping.Resource != "nodes" { + return fmt.Errorf("error: expected resource of type node, got %q", info.Mapping.Resource) + } + o.nodeInfos = append(o.nodeInfos, info) return nil }) @@ -337,12 +338,12 @@ func (o *DrainOptions) getController(namespace string, controllerRef *metav1.Own case "ReplicaSet": return o.client.Extensions().ReplicaSets(namespace).Get(controllerRef.Name, metav1.GetOptions{}) case "StatefulSet": - return o.client.Apps().StatefulSets(namespace).Get(controllerRef.Name, metav1.GetOptions{}) + return o.client.AppsV1beta1().StatefulSets(namespace).Get(controllerRef.Name, metav1.GetOptions{}) } return nil, fmt.Errorf("Unknown controller kind %q", controllerRef.Kind) } -func (o *DrainOptions) getPodController(pod api.Pod) (*metav1.OwnerReference, error) { +func (o *DrainOptions) getPodController(pod corev1.Pod) (*metav1.OwnerReference, error) { controllerRef := metav1.GetControllerOf(&pod) if controllerRef == nil { return nil, nil @@ -360,9 +361,9 @@ func (o *DrainOptions) getPodController(pod api.Pod) (*metav1.OwnerReference, er return controllerRef, nil } -func (o *DrainOptions) unreplicatedFilter(pod api.Pod) (bool, *warning, *fatal) { +func (o *DrainOptions) unreplicatedFilter(pod corev1.Pod) (bool, *warning, *fatal) { // any finished pod can be removed - if pod.Status.Phase == api.PodSucceeded || pod.Status.Phase == api.PodFailed { + if pod.Status.Phase == corev1.PodSucceeded || pod.Status.Phase == corev1.PodFailed { return true, nil, nil } @@ -383,7 +384,7 @@ func (o *DrainOptions) unreplicatedFilter(pod api.Pod) (bool, *warning, *fatal) return true, &warning{kUnmanagedWarning}, nil } -func (o *DrainOptions) daemonsetFilter(pod api.Pod) (bool, *warning, *fatal) { +func (o *DrainOptions) daemonsetFilter(pod corev1.Pod) (bool, *warning, *fatal) { // Note that we return false in cases where the pod is DaemonSet managed, // regardless of flags. We never delete them, the only question is whether // their presence constitutes an error. @@ -411,14 +412,14 @@ func (o *DrainOptions) daemonsetFilter(pod api.Pod) (bool, *warning, *fatal) { return false, &warning{kDaemonsetWarning}, nil } -func mirrorPodFilter(pod api.Pod) (bool, *warning, *fatal) { +func mirrorPodFilter(pod corev1.Pod) (bool, *warning, *fatal) { if _, found := pod.ObjectMeta.Annotations[corev1.MirrorPodAnnotationKey]; found { return false, nil, nil } return true, nil, nil } -func hasLocalStorage(pod api.Pod) bool { +func hasLocalStorage(pod corev1.Pod) bool { for _, volume := range pod.Spec.Volumes { if volume.EmptyDir != nil { return true @@ -428,7 +429,7 @@ func hasLocalStorage(pod api.Pod) bool { return false } -func (o *DrainOptions) localStorageFilter(pod api.Pod) (bool, *warning, *fatal) { +func (o *DrainOptions) localStorageFilter(pod corev1.Pod) (bool, *warning, *fatal) { if !hasLocalStorage(pod) { return true, nil, nil } @@ -452,7 +453,7 @@ func (ps podStatuses) Message() string { // getPodsForDeletion receives resource info for a node, and returns all the pods from the given node that we // are planning on deleting. If there are any pods preventing us from deleting, we return that list in an error. -func (o *DrainOptions) getPodsForDeletion(nodeInfo *resource.Info) (pods []api.Pod, err error) { +func (o *DrainOptions) getPodsForDeletion(nodeInfo *resource.Info) (pods []corev1.Pod, err error) { podList, err := o.client.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{ FieldSelector: fields.SelectorFromSet(fields.Set{"spec.nodeName": nodeInfo.Name}).String()}) if err != nil { @@ -481,7 +482,7 @@ func (o *DrainOptions) getPodsForDeletion(nodeInfo *resource.Info) (pods []api.P } if len(fs) > 0 { - return []api.Pod{}, errors.New(fs.Message()) + return []corev1.Pod{}, errors.New(fs.Message()) } if len(ws) > 0 { fmt.Fprintf(o.ErrOut, "WARNING: %s\n", ws.Message()) @@ -489,7 +490,7 @@ func (o *DrainOptions) getPodsForDeletion(nodeInfo *resource.Info) (pods []api.P return pods, nil } -func (o *DrainOptions) deletePod(pod api.Pod) error { +func (o *DrainOptions) deletePod(pod corev1.Pod) error { deleteOptions := &metav1.DeleteOptions{} if o.GracePeriodSeconds >= 0 { gracePeriodSeconds := int64(o.GracePeriodSeconds) @@ -498,13 +499,13 @@ func (o *DrainOptions) deletePod(pod api.Pod) error { return o.client.Core().Pods(pod.Namespace).Delete(pod.Name, deleteOptions) } -func (o *DrainOptions) evictPod(pod api.Pod, policyGroupVersion string) error { +func (o *DrainOptions) evictPod(pod corev1.Pod, policyGroupVersion string) error { deleteOptions := &metav1.DeleteOptions{} if o.GracePeriodSeconds >= 0 { gracePeriodSeconds := int64(o.GracePeriodSeconds) deleteOptions.GracePeriodSeconds = &gracePeriodSeconds } - eviction := &policy.Eviction{ + eviction := &policyv1beta1.Eviction{ TypeMeta: metav1.TypeMeta{ APIVersion: policyGroupVersion, Kind: EvictionKind, @@ -520,7 +521,7 @@ func (o *DrainOptions) evictPod(pod api.Pod, policyGroupVersion string) error { } // deleteOrEvictPods deletes or evicts the pods on the api server -func (o *DrainOptions) deleteOrEvictPods(pods []api.Pod) error { +func (o *DrainOptions) deleteOrEvictPods(pods []corev1.Pod) error { if len(pods) == 0 { return nil } @@ -530,7 +531,7 @@ func (o *DrainOptions) deleteOrEvictPods(pods []api.Pod) error { return err } - getPodFn := func(namespace, name string) (*api.Pod, error) { + getPodFn := func(namespace, name string) (*corev1.Pod, error) { return o.client.Core().Pods(namespace).Get(name, metav1.GetOptions{}) } @@ -541,12 +542,12 @@ func (o *DrainOptions) deleteOrEvictPods(pods []api.Pod) error { } } -func (o *DrainOptions) evictPods(pods []api.Pod, policyGroupVersion string, getPodFn func(namespace, name string) (*api.Pod, error)) error { +func (o *DrainOptions) evictPods(pods []corev1.Pod, policyGroupVersion string, getPodFn func(namespace, name string) (*corev1.Pod, error)) error { doneCh := make(chan bool, len(pods)) errCh := make(chan error, 1) for _, pod := range pods { - go func(pod api.Pod, doneCh chan bool, errCh chan error) { + go func(pod corev1.Pod, doneCh chan bool, errCh chan error) { var err error for { err = o.evictPod(pod, policyGroupVersion) @@ -562,7 +563,7 @@ func (o *DrainOptions) evictPods(pods []api.Pod, policyGroupVersion string, getP return } } - podArray := []api.Pod{pod} + podArray := []corev1.Pod{pod} _, err = o.waitForDelete(podArray, kubectl.Interval, time.Duration(math.MaxInt64), true, getPodFn) if err == nil { doneCh <- true @@ -595,7 +596,7 @@ func (o *DrainOptions) evictPods(pods []api.Pod, policyGroupVersion string, getP } } -func (o *DrainOptions) deletePods(pods []api.Pod, getPodFn func(namespace, name string) (*api.Pod, error)) error { +func (o *DrainOptions) deletePods(pods []corev1.Pod, getPodFn func(namespace, name string) (*corev1.Pod, error)) error { // 0 timeout means infinite, we use MaxInt64 to represent it. var globalTimeout time.Duration if o.Timeout == 0 { @@ -613,7 +614,7 @@ func (o *DrainOptions) deletePods(pods []api.Pod, getPodFn func(namespace, name return err } -func (o *DrainOptions) waitForDelete(pods []api.Pod, interval, timeout time.Duration, usingEviction bool, getPodFn func(string, string) (*api.Pod, error)) ([]api.Pod, error) { +func (o *DrainOptions) waitForDelete(pods []corev1.Pod, interval, timeout time.Duration, usingEviction bool, getPodFn func(string, string) (*corev1.Pod, error)) ([]corev1.Pod, error) { var verbStr string if usingEviction { verbStr = "evicted" @@ -621,7 +622,7 @@ func (o *DrainOptions) waitForDelete(pods []api.Pod, interval, timeout time.Dura verbStr = "deleted" } err := wait.PollImmediate(interval, timeout, func() (bool, error) { - pendingPods := []api.Pod{} + pendingPods := []corev1.Pod{} for i, pod := range pods { p, err := getPodFn(pod.Namespace, pod.Name) if apierrors.IsNotFound(err) || (p != nil && p.ObjectMeta.UID != pod.ObjectMeta.UID) { @@ -644,7 +645,7 @@ func (o *DrainOptions) waitForDelete(pods []api.Pod, interval, timeout time.Dura // SupportEviction uses Discovery API to find out if the server support eviction subresource // If support, it will return its groupVersion; Otherwise, it will return "" -func SupportEviction(clientset internalclientset.Interface) (string, error) { +func SupportEviction(clientset kubernetes.Interface) (string, error) { discoveryClient := clientset.Discovery() groupList, err := discoveryClient.ServerGroups() if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/drain_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/drain_test.go index 9cd2e330b..df390a181 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/drain_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/drain_test.go @@ -33,7 +33,8 @@ import ( "github.com/spf13/cobra" - "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" + policyv1beta1 "k8s.io/api/policy/v1beta1" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -42,12 +43,12 @@ import ( "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/ref" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/apis/policy" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" ) @@ -57,22 +58,22 @@ const ( DeleteMethod = "Delete" ) -var node *v1.Node -var cordoned_node *v1.Node +var node *corev1.Node +var cordoned_node *corev1.Node func boolptr(b bool) *bool { return &b } func TestMain(m *testing.M) { // Create a node. - node = &v1.Node{ + node = &corev1.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "node", CreationTimestamp: metav1.Time{Time: time.Now()}, }, - Spec: v1.NodeSpec{ + Spec: corev1.NodeSpec{ ExternalID: "node", }, - Status: v1.NodeStatus{}, + Status: corev1.NodeStatus{}, } // A copy of the same node, but cordoned. @@ -84,8 +85,8 @@ func TestMain(m *testing.M) { func TestCordon(t *testing.T) { tests := []struct { description string - node *v1.Node - expected *v1.Node + node *corev1.Node + expected *corev1.Node cmd func(cmdutil.Factory, io.Writer) *cobra.Command arg string expectFatal bool @@ -150,10 +151,10 @@ func TestCordon(t *testing.T) { for _, test := range tests { f, tf, codec, ns := cmdtesting.NewAPIFactory() - new_node := &v1.Node{} + new_node := &corev1.Node{} updated := false tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { m := &MyReq{req} @@ -172,7 +173,7 @@ func TestCordon(t *testing.T) { if err != nil { t.Fatalf("%s: unexpected error: %v", test.description, err) } - appliedPatch, err := strategicpatch.StrategicMergePatch(oldJSON, data, &v1.Node{}) + appliedPatch, err := strategicpatch.StrategicMergePatch(oldJSON, data, &corev1.Node{}) if err != nil { t.Fatalf("%s: unexpected error: %v", test.description, err) } @@ -246,17 +247,13 @@ func TestDrain(t *testing.T) { }, } - rc_anno := make(map[string]string) - rc_anno[api.CreatedByAnnotation] = refJson(t, &rc) - - rc_pod := api.Pod{ + rc_pod := corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "default", CreationTimestamp: metav1.Time{Time: time.Now()}, Labels: labels, SelfLink: testapi.Default.SelfLink("pods", "bar"), - Annotations: rc_anno, OwnerReferences: []metav1.OwnerReference{ { APIVersion: "v1", @@ -268,7 +265,7 @@ func TestDrain(t *testing.T) { }, }, }, - Spec: api.PodSpec{ + Spec: corev1.PodSpec{ NodeName: "node", }, } @@ -285,17 +282,13 @@ func TestDrain(t *testing.T) { }, } - ds_anno := make(map[string]string) - ds_anno[api.CreatedByAnnotation] = refJson(t, &ds) - - ds_pod := api.Pod{ + ds_pod := corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "default", CreationTimestamp: metav1.Time{Time: time.Now()}, Labels: labels, SelfLink: testapi.Default.SelfLink("pods", "bar"), - Annotations: ds_anno, OwnerReferences: []metav1.OwnerReference{ { APIVersion: "extensions/v1beta1", @@ -306,45 +299,20 @@ func TestDrain(t *testing.T) { }, }, }, - Spec: api.PodSpec{ + Spec: corev1.PodSpec{ NodeName: "node", }, } - missing_ds := extensions.DaemonSet{ - ObjectMeta: metav1.ObjectMeta{ - Name: "missing-ds", - Namespace: "default", - CreationTimestamp: metav1.Time{Time: time.Now()}, - SelfLink: testapi.Default.SelfLink("daemonsets", "missing-ds"), - }, - Spec: extensions.DaemonSetSpec{ - Selector: &metav1.LabelSelector{MatchLabels: labels}, - }, - } - - missing_ds_anno := make(map[string]string) - missing_ds_anno[api.CreatedByAnnotation] = refJson(t, &missing_ds) - - orphaned_ds_pod := api.Pod{ + orphaned_ds_pod := corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "default", CreationTimestamp: metav1.Time{Time: time.Now()}, Labels: labels, SelfLink: testapi.Default.SelfLink("pods", "bar"), - Annotations: missing_ds_anno, - OwnerReferences: []metav1.OwnerReference{ - { - APIVersion: "extensions/v1beta1", - Kind: "DaemonSet", - Name: "missing-ds", - BlockOwnerDeletion: boolptr(true), - Controller: boolptr(true), - }, - }, }, - Spec: api.PodSpec{ + Spec: corev1.PodSpec{ NodeName: "node", }, } @@ -361,14 +329,13 @@ func TestDrain(t *testing.T) { }, } - job_pod := api.Pod{ + job_pod := corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "default", CreationTimestamp: metav1.Time{Time: time.Now()}, Labels: labels, SelfLink: testapi.Default.SelfLink("pods", "bar"), - Annotations: map[string]string{api.CreatedByAnnotation: refJson(t, &job)}, OwnerReferences: []metav1.OwnerReference{ { APIVersion: "v1", @@ -394,17 +361,13 @@ func TestDrain(t *testing.T) { }, } - rs_anno := make(map[string]string) - rs_anno[api.CreatedByAnnotation] = refJson(t, &rs) - - rs_pod := api.Pod{ + rs_pod := corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "default", CreationTimestamp: metav1.Time{Time: time.Now()}, Labels: labels, SelfLink: testapi.Default.SelfLink("pods", "bar"), - Annotations: rs_anno, OwnerReferences: []metav1.OwnerReference{ { APIVersion: "v1", @@ -415,36 +378,36 @@ func TestDrain(t *testing.T) { }, }, }, - Spec: api.PodSpec{ + Spec: corev1.PodSpec{ NodeName: "node", }, } - naked_pod := api.Pod{ + naked_pod := corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "default", CreationTimestamp: metav1.Time{Time: time.Now()}, Labels: labels, }, - Spec: api.PodSpec{ + Spec: corev1.PodSpec{ NodeName: "node", }, } - emptydir_pod := api.Pod{ + emptydir_pod := corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "bar", Namespace: "default", CreationTimestamp: metav1.Time{Time: time.Now()}, Labels: labels, }, - Spec: api.PodSpec{ + Spec: corev1.PodSpec{ NodeName: "node", - Volumes: []api.Volume{ + Volumes: []corev1.Volume{ { Name: "scratch", - VolumeSource: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{Medium: ""}}, + VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{Medium: ""}}, }, }, }, @@ -452,9 +415,9 @@ func TestDrain(t *testing.T) { tests := []struct { description string - node *v1.Node - expected *v1.Node - pods []api.Pod + node *corev1.Node + expected *corev1.Node + pods []corev1.Pod rcs []api.ReplicationController replicaSets []extensions.ReplicaSet args []string @@ -465,7 +428,7 @@ func TestDrain(t *testing.T) { description: "RC-managed pod", node: node, expected: cordoned_node, - pods: []api.Pod{rc_pod}, + pods: []corev1.Pod{rc_pod}, rcs: []api.ReplicationController{rc}, args: []string{"node"}, expectFatal: false, @@ -475,7 +438,7 @@ func TestDrain(t *testing.T) { description: "DS-managed pod", node: node, expected: cordoned_node, - pods: []api.Pod{ds_pod}, + pods: []corev1.Pod{ds_pod}, rcs: []api.ReplicationController{rc}, args: []string{"node"}, expectFatal: true, @@ -485,7 +448,7 @@ func TestDrain(t *testing.T) { description: "orphaned DS-managed pod", node: node, expected: cordoned_node, - pods: []api.Pod{orphaned_ds_pod}, + pods: []corev1.Pod{orphaned_ds_pod}, rcs: []api.ReplicationController{}, args: []string{"node"}, expectFatal: true, @@ -495,7 +458,7 @@ func TestDrain(t *testing.T) { description: "orphaned DS-managed pod with --force", node: node, expected: cordoned_node, - pods: []api.Pod{orphaned_ds_pod}, + pods: []corev1.Pod{orphaned_ds_pod}, rcs: []api.ReplicationController{}, args: []string{"node", "--force"}, expectFatal: false, @@ -505,7 +468,7 @@ func TestDrain(t *testing.T) { description: "DS-managed pod with --ignore-daemonsets", node: node, expected: cordoned_node, - pods: []api.Pod{ds_pod}, + pods: []corev1.Pod{ds_pod}, rcs: []api.ReplicationController{rc}, args: []string{"node", "--ignore-daemonsets"}, expectFatal: false, @@ -515,7 +478,7 @@ func TestDrain(t *testing.T) { description: "Job-managed pod", node: node, expected: cordoned_node, - pods: []api.Pod{job_pod}, + pods: []corev1.Pod{job_pod}, rcs: []api.ReplicationController{rc}, args: []string{"node"}, expectFatal: false, @@ -525,7 +488,7 @@ func TestDrain(t *testing.T) { description: "RS-managed pod", node: node, expected: cordoned_node, - pods: []api.Pod{rs_pod}, + pods: []corev1.Pod{rs_pod}, replicaSets: []extensions.ReplicaSet{rs}, args: []string{"node"}, expectFatal: false, @@ -535,7 +498,7 @@ func TestDrain(t *testing.T) { description: "naked pod", node: node, expected: cordoned_node, - pods: []api.Pod{naked_pod}, + pods: []corev1.Pod{naked_pod}, rcs: []api.ReplicationController{}, args: []string{"node"}, expectFatal: true, @@ -545,7 +508,7 @@ func TestDrain(t *testing.T) { description: "naked pod with --force", node: node, expected: cordoned_node, - pods: []api.Pod{naked_pod}, + pods: []corev1.Pod{naked_pod}, rcs: []api.ReplicationController{}, args: []string{"node", "--force"}, expectFatal: false, @@ -555,7 +518,7 @@ func TestDrain(t *testing.T) { description: "pod with EmptyDir", node: node, expected: cordoned_node, - pods: []api.Pod{emptydir_pod}, + pods: []corev1.Pod{emptydir_pod}, args: []string{"node", "--force"}, expectFatal: true, expectDelete: false, @@ -564,7 +527,7 @@ func TestDrain(t *testing.T) { description: "pod with EmptyDir and --delete-local-data", node: node, expected: cordoned_node, - pods: []api.Pod{emptydir_pod}, + pods: []corev1.Pod{emptydir_pod}, args: []string{"node", "--force", "--delete-local-data=true"}, expectFatal: false, expectDelete: true, @@ -573,7 +536,7 @@ func TestDrain(t *testing.T) { description: "empty node", node: node, expected: cordoned_node, - pods: []api.Pod{}, + pods: []corev1.Pod{}, rcs: []api.ReplicationController{rc}, args: []string{"node"}, expectFatal: false, @@ -591,12 +554,12 @@ func TestDrain(t *testing.T) { currMethod = DeleteMethod } for _, test := range tests { - new_node := &v1.Node{} + new_node := &corev1.Node{} deleted := false evicted := false f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { m := &MyReq{req} @@ -644,7 +607,7 @@ func TestDrain(t *testing.T) { case m.isFor("GET", "/namespaces/default/replicasets/rs"): return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(testapi.Extensions.Codec(), &test.replicaSets[0])}, nil case m.isFor("GET", "/namespaces/default/pods/bar"): - return &http.Response{StatusCode: 404, Header: defaultHeader(), Body: objBody(codec, &api.Pod{})}, nil + return &http.Response{StatusCode: 404, Header: defaultHeader(), Body: objBody(codec, &corev1.Pod{})}, nil case m.isFor("GET", "/pods"): values, err := url.ParseQuery(req.URL.RawQuery) if err != nil { @@ -655,7 +618,7 @@ func TestDrain(t *testing.T) { if !reflect.DeepEqual(get_params, values) { t.Fatalf("%s: expected:\n%v\nsaw:\n%v\n", test.description, get_params, values) } - return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &api.PodList{Items: test.pods})}, nil + return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &corev1.PodList{Items: test.pods})}, nil case m.isFor("GET", "/replicationcontrollers"): return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &api.ReplicationControllerList{Items: test.rcs})}, nil case m.isFor("PATCH", "/nodes/node"): @@ -668,7 +631,7 @@ func TestDrain(t *testing.T) { if err != nil { t.Fatalf("%s: unexpected error: %v", test.description, err) } - appliedPatch, err := strategicpatch.StrategicMergePatch(oldJSON, data, &v1.Node{}) + appliedPatch, err := strategicpatch.StrategicMergePatch(oldJSON, data, &corev1.Node{}) if err != nil { t.Fatalf("%s: unexpected error: %v", test.description, err) } @@ -684,7 +647,7 @@ func TestDrain(t *testing.T) { return &http.Response{StatusCode: 204, Header: defaultHeader(), Body: objBody(codec, &test.pods[0])}, nil case m.isFor("POST", "/namespaces/default/pods/bar/eviction"): evicted = true - return &http.Response{StatusCode: 201, Header: defaultHeader(), Body: policyObjBody(&policy.Eviction{})}, nil + return &http.Response{StatusCode: 201, Header: defaultHeader(), Body: policyObjBody(&policyv1beta1.Eviction{})}, nil default: t.Fatalf("%s: unexpected request: %v %#v\n%#v", test.description, req.Method, req.URL, req) return nil, nil @@ -743,7 +706,7 @@ func TestDeletePods(t *testing.T) { expectPendingPods bool expectError bool expectedError *error - getPodFn func(namespace, name string) (*api.Pod, error) + getPodFn func(namespace, name string) (*corev1.Pod, error) }{ { description: "Wait for deleting to complete", @@ -752,7 +715,7 @@ func TestDeletePods(t *testing.T) { expectPendingPods: false, expectError: false, expectedError: nil, - getPodFn: func(namespace, name string) (*api.Pod, error) { + getPodFn: func(namespace, name string) (*corev1.Pod, error) { oldPodMap, _ := createPods(false) newPodMap, _ := createPods(true) if oldPod, found := oldPodMap[name]; found { @@ -777,7 +740,7 @@ func TestDeletePods(t *testing.T) { expectPendingPods: true, expectError: true, expectedError: &wait.ErrWaitTimeout, - getPodFn: func(namespace, name string) (*api.Pod, error) { + getPodFn: func(namespace, name string) (*corev1.Pod, error) { oldPodMap, _ := createPods(false) if oldPod, found := oldPodMap[name]; found { return &oldPod, nil @@ -792,7 +755,7 @@ func TestDeletePods(t *testing.T) { expectPendingPods: true, expectError: true, expectedError: nil, - getPodFn: func(namespace, name string) (*api.Pod, error) { + getPodFn: func(namespace, name string) (*corev1.Pod, error) { return nil, errors.New("This is a random error for testing") }, }, @@ -827,9 +790,9 @@ func TestDeletePods(t *testing.T) { } } -func createPods(ifCreateNewPods bool) (map[string]api.Pod, []api.Pod) { - podMap := make(map[string]api.Pod) - podSlice := []api.Pod{} +func createPods(ifCreateNewPods bool) (map[string]corev1.Pod, []corev1.Pod) { + podMap := make(map[string]corev1.Pod) + podSlice := []corev1.Pod{} for i := 0; i < 8; i++ { var uid types.UID if ifCreateNewPods { @@ -837,7 +800,7 @@ func createPods(ifCreateNewPods bool) (map[string]api.Pod, []api.Pod) { } else { uid = types.UID(strconv.Itoa(i) + strconv.Itoa(i)) } - pod := api.Pod{ + pod := corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "pod" + strconv.Itoa(i), Namespace: "default", @@ -865,7 +828,7 @@ func (m *MyReq) isFor(method string, path string) bool { } func refJson(t *testing.T, o runtime.Object) string { - ref, err := ref.GetReference(api.Scheme, o) + ref, err := ref.GetReference(legacyscheme.Scheme, o) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/edit_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/edit_test.go index ef3be5e40..4362826cc 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/edit_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/edit_test.go @@ -36,7 +36,6 @@ import ( "k8s.io/apimachinery/pkg/util/diff" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" @@ -217,7 +216,6 @@ func TestEdit(t *testing.T) { versionedAPIPath = "/apis/" + mapping.GroupVersionKind.Group + "/" + mapping.GroupVersionKind.Version } return &fake.RESTClient{ - APIRegistry: api.Registry, VersionedAPIPath: versionedAPIPath, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(reqResp), diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/exec.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/exec.go index 10f65b0bb..810cd9106 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/exec.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/exec.go @@ -27,7 +27,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/remotecommand" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -320,7 +321,7 @@ func (p *ExecOptions) Run() error { Stdout: p.Out != nil, Stderr: p.Err != nil, TTY: t.Raw, - }, api.ParameterCodec) + }, legacyscheme.ParameterCodec) return p.Executor.Execute("POST", req.URL(), p.Config, p.In, p.Out, p.Err, t.Raw, sizeQueue) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/exec_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/exec_test.go index 6c57bbd80..afa52ca63 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/exec_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/exec_test.go @@ -33,7 +33,7 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" "k8s.io/client-go/tools/remotecommand" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/kubectl/util/term" ) @@ -130,7 +130,6 @@ func TestPodAndContainer(t *testing.T) { for _, test := range tests { f, tf, _, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { return nil, nil }), } @@ -162,7 +161,7 @@ func TestPodAndContainer(t *testing.T) { } func TestExec(t *testing.T) { - version := api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version + version := "v1" tests := []struct { name, podPath, execPath, container string pod *api.Pod @@ -185,7 +184,6 @@ func TestExec(t *testing.T) { for _, test := range tests { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/explain.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/explain.go index 55d095690..a339df7c8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/explain.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/explain.go @@ -23,18 +23,24 @@ import ( "github.com/spf13/cobra" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/explain" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/util/i18n" ) var ( explainLong = templates.LongDesc(` - Documentation of resources. - - ` + validResources) + List the fields for supported resources + + This command describes the fields associated with each supported API resource. + Fields are identified via a simple JSONPath identifier: + + .[.] + + Add the --recursive flag to display all of the fields at once without descriptions. + Information about each field is retrieved from the server in OpenAPI format.`) explainExamples = templates.Examples(i18n.T(` # Get the documentation of the resource and its fields @@ -49,7 +55,7 @@ func NewCmdExplain(f cmdutil.Factory, out, cmdErr io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "explain RESOURCE", Short: i18n.T("Documentation of resources"), - Long: explainLong, + Long: explainLong + "\n\n" + cmdutil.ValidResourceTypeList(f), Example: explainExamples, Run: func(cmd *cobra.Command, args []string) { err := RunExplain(f, out, cmdErr, cmd, args) @@ -65,7 +71,7 @@ func NewCmdExplain(f cmdutil.Factory, out, cmdErr io.Writer) *cobra.Command { // RunExplain executes the appropriate steps to print a model's documentation func RunExplain(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, args []string) error { if len(args) == 0 { - fmt.Fprintf(cmdErr, "You must specify the type of resource to explain. %s\n", validResources) + fmt.Fprintf(cmdErr, "You must specify the type of resource to explain. %s\n", cmdutil.ValidResourceTypeList(f)) return cmdutil.UsageErrorf(cmd, "Required resource not specified.") } if len(args) > 1 { @@ -99,7 +105,7 @@ func RunExplain(f cmdutil.Factory, out, cmdErr io.Writer, cmd *cobra.Command, ar } if len(apiVersionString) == 0 { - groupMeta, err := api.Registry.Group(gvk.Group) + groupMeta, err := scheme.Registry.Group(gvk.Group) if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/expose.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/expose.go index 6ae438737..7f0654c42 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/expose.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/expose.go @@ -98,7 +98,7 @@ func NewCmdExposeService(f cmdutil.Factory, out io.Writer) *cobra.Command { cmd.Flags().String("generator", "service/v2", i18n.T("The name of the API generator to use. There are 2 generators: 'service/v1' and 'service/v2'. The only difference between them is that service port in v1 is named 'default', while it is left unnamed in v2. Default is 'service/v2'.")) cmd.Flags().String("protocol", "", i18n.T("The network protocol for the service to be created. Default is 'TCP'.")) cmd.Flags().String("port", "", i18n.T("The port that the service should serve on. Copied from the resource being exposed, if unspecified")) - cmd.Flags().String("type", "", i18n.T("Type for this service: ClusterIP, NodePort, or LoadBalancer. Default is 'ClusterIP'.")) + cmd.Flags().String("type", "", i18n.T("Type for this service: ClusterIP, NodePort, LoadBalancer, or ExternalName. Default is 'ClusterIP'.")) cmd.Flags().String("load-balancer-ip", "", i18n.T("IP to assign to the Load Balancer. If empty, an ephemeral IP will be created and used (cloud-provider specific).")) cmd.Flags().String("selector", "", i18n.T("A label selector to use for this service. Only equality-based selector requirements are supported. If empty (the default) infer the selector from the replication controller or replica set.)")) cmd.Flags().StringP("labels", "l", "", "Labels to apply to the service created by this call.") diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/expose_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/expose_test.go index fdf67367f..edcc75ee8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/expose_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/expose_test.go @@ -25,13 +25,20 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/printers" ) +// This init should be removed after switching this command and its tests to user external types. +func init() { + api.AddToScheme(scheme.Scheme) +} + func TestRunExposeService(t *testing.T) { tests := []struct { name string @@ -462,7 +469,7 @@ func TestRunExposeService(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &printers.JSONPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get.go deleted file mode 100644 index 79f03b6a2..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get.go +++ /dev/null @@ -1,638 +0,0 @@ -/* -Copyright 2014 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 cmd - -import ( - "encoding/json" - "fmt" - "io" - "strings" - - "github.com/golang/glog" - "github.com/spf13/cobra" - - kapierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - utilerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/kubectl/cmd/templates" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" - "k8s.io/kubernetes/pkg/kubectl/resource" - "k8s.io/kubernetes/pkg/kubectl/util/i18n" - "k8s.io/kubernetes/pkg/printers" - "k8s.io/kubernetes/pkg/util/interrupt" -) - -// GetOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of -// referencing the cmd.Flags() -type GetOptions struct { - resource.FilenameOptions - - IgnoreNotFound bool - Raw string -} - -var ( - getLong = templates.LongDesc(` - Display one or many resources. - - ` + validResources + ` - - This command will hide resources that have completed, such as pods that are - in the Succeeded or Failed phases. You can see the full results for any - resource by providing the '--show-all' flag, but this flag does not include - the uninitialized objects by default, unless '--include-uninitialized' is explicitly set. - - By specifying the output as 'template' and providing a Go template as the value - of the --template flag, you can filter the attributes of the fetched resources.`) - - getExample = templates.Examples(i18n.T(` - # List all pods in ps output format. - kubectl get pods - - # List all pods in ps output format with more information (such as node name). - kubectl get pods -o wide - - # List a single replication controller with specified NAME in ps output format. - kubectl get replicationcontroller web - - # List a single pod in JSON output format. - kubectl get -o json pod web-pod-13je7 - - # List a pod identified by type and name specified in "pod.yaml" in JSON output format. - kubectl get -f pod.yaml -o json - - # Return only the phase value of the specified pod. - kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}} - - # List all replication controllers and services together in ps output format. - kubectl get rc,services - - # List one or more resources by their type and names. - kubectl get rc/web service/frontend pods/web-pod-13je7 - - # List all resources with different types. - kubectl get all`)) -) - -const ( - useOpenAPIPrintColumnFlagLabel = "experimental-use-openapi-print-columns" -) - -// NewCmdGet creates a command object for the generic "get" action, which -// retrieves one or more resources from a server. -func NewCmdGet(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.Command { - options := &GetOptions{} - - // retrieve a list of handled resources from printer as valid args - validArgs, argAliases := []string{}, []string{} - p, err := f.Printer(nil, printers.PrintOptions{ - ColumnLabels: []string{}, - }) - cmdutil.CheckErr(err) - if p != nil { - validArgs = p.HandledResources() - argAliases = kubectl.ResourceAliases(validArgs) - } - - cmd := &cobra.Command{ - Use: "get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] (TYPE [NAME | -l label] | TYPE/NAME ...) [flags]", - Short: i18n.T("Display one or many resources"), - Long: getLong, - Example: getExample, - Run: func(cmd *cobra.Command, args []string) { - err := RunGet(f, out, errOut, cmd, args, options) - cmdutil.CheckErr(err) - }, - SuggestFor: []string{"list", "ps"}, - ValidArgs: validArgs, - ArgAliases: argAliases, - } - cmdutil.AddPrinterFlags(cmd) - cmd.Flags().StringP("selector", "l", "", "Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2)") - cmdutil.AddIncludeUninitializedFlag(cmd) - cmd.Flags().BoolP("watch", "w", false, "After listing/getting the requested object, watch for changes. Uninitialized objects are excluded if no object name is provided.") - cmd.Flags().Bool("watch-only", false, "Watch for changes to the requested object(s), without listing/getting first.") - cmd.Flags().Bool("show-kind", false, "If present, list the resource type for the requested object(s).") - cmd.Flags().Bool("all-namespaces", false, "If present, list the requested object(s) across all namespaces. Namespace in current context is ignored even if specified with --namespace.") - cmd.Flags().BoolVar(&options.IgnoreNotFound, "ignore-not-found", false, "Treat \"resource not found\" as a successful retrieval.") - cmd.Flags().StringSliceP("label-columns", "L", []string{}, "Accepts a comma separated list of labels that are going to be presented as columns. Names are case-sensitive. You can also use multiple flag options like -L label1 -L label2...") - cmd.Flags().Bool("export", false, "If true, use 'export' for the resources. Exported resources are stripped of cluster-specific information.") - addOpenAPIPrintColumnFlags(cmd) - usage := "identifying the resource to get from a server." - cmdutil.AddFilenameOptionFlags(cmd, &options.FilenameOptions, usage) - cmdutil.AddInclude3rdPartyFlags(cmd) - cmd.Flags().StringVar(&options.Raw, "raw", options.Raw, "Raw URI to request from the server. Uses the transport specified by the kubeconfig file.") - return cmd -} - -// RunGet implements the generic Get command -// TODO: convert all direct flag accessors to a struct and pass that instead of cmd -func RunGet(f cmdutil.Factory, out, errOut io.Writer, cmd *cobra.Command, args []string, options *GetOptions) error { - if len(options.Raw) > 0 { - restClient, err := f.RESTClient() - if err != nil { - return err - } - - stream, err := restClient.Get().RequestURI(options.Raw).Stream() - if err != nil { - return err - } - defer stream.Close() - - _, err = io.Copy(out, stream) - if err != nil && err != io.EOF { - return err - } - return nil - } - - mapper, typer, err := f.UnstructuredObject() - if err != nil { - return err - } - - selector := cmdutil.GetFlagString(cmd, "selector") - allNamespaces := cmdutil.GetFlagBool(cmd, "all-namespaces") - showKind := cmdutil.GetFlagBool(cmd, "show-kind") - builder := f.NewBuilder().Unstructured(f.UnstructuredClientForMapping, mapper, typer) - - cmdNamespace, enforceNamespace, err := f.DefaultNamespace() - if err != nil { - return err - } - - if allNamespaces { - enforceNamespace = false - } - - if len(args) == 0 && cmdutil.IsFilenameSliceEmpty(options.Filenames) { - fmt.Fprint(errOut, "You must specify the type of resource to get. ", validResources) - - fullCmdName := cmd.Parent().CommandPath() - usageString := "Required resource not specified." - if len(fullCmdName) > 0 && cmdutil.IsSiblingCommandExists(cmd, "explain") { - usageString = fmt.Sprintf("%s\nUse \"%s explain \" for a detailed description of that resource (e.g. %[2]s explain pods).", usageString, fullCmdName) - } - - return cmdutil.UsageErrorf(cmd, usageString) - } - - export := cmdutil.GetFlagBool(cmd, "export") - - filterFuncs := f.DefaultResourceFilterFunc() - filterOpts := f.DefaultResourceFilterOptions(cmd, allNamespaces) - - // handle watch separately since we cannot watch multiple resource types - isWatch, isWatchOnly := cmdutil.GetFlagBool(cmd, "watch"), cmdutil.GetFlagBool(cmd, "watch-only") - - var includeUninitialized bool - if isWatch && len(args) == 2 { - // include the uninitialized one for watching on a single object - // unless explicitly set --include-uninitialized=false - includeUninitialized = true - } - includeUninitialized = cmdutil.ShouldIncludeUninitialized(cmd, includeUninitialized) - - if isWatch || isWatchOnly { - r := f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). - NamespaceParam(cmdNamespace).DefaultNamespace().AllNamespaces(allNamespaces). - FilenameParam(enforceNamespace, &options.FilenameOptions). - SelectorParam(selector). - ExportParam(export). - IncludeUninitialized(includeUninitialized). - ResourceTypeOrNameArgs(true, args...). - SingleResourceType(). - Latest(). - Do() - err = r.Err() - if err != nil { - return err - } - infos, err := r.Infos() - if err != nil { - return err - } - if len(infos) != 1 { - return i18n.Errorf("watch is only supported on individual resources and resource collections - %d resources were found", len(infos)) - } - if r.TargetsSingleItems() { - filterFuncs = nil - } - info := infos[0] - mapping := info.ResourceMapping() - printer, err := f.PrinterForMapping(cmd, false, nil, mapping, allNamespaces) - if err != nil { - return err - } - obj, err := r.Object() - if err != nil { - return err - } - - // watching from resourceVersion 0, starts the watch at ~now and - // will return an initial watch event. Starting form ~now, rather - // the rv of the object will insure that we start the watch from - // inside the watch window, which the rv of the object might not be. - rv := "0" - isList := meta.IsListType(obj) - if isList { - // the resourceVersion of list objects is ~now but won't return - // an initial watch event - rv, err = mapping.MetadataAccessor.ResourceVersion(obj) - if err != nil { - return err - } - } - - // print the current object - if !isWatchOnly { - var objsToPrint []runtime.Object - writer := printers.GetNewTabWriter(out) - - if isList { - objsToPrint, _ = meta.ExtractList(obj) - } else { - objsToPrint = append(objsToPrint, obj) - } - for _, objToPrint := range objsToPrint { - if isFiltered, err := filterFuncs.Filter(objToPrint, filterOpts); !isFiltered { - if err != nil { - glog.V(2).Infof("Unable to filter resource: %v", err) - } else if err := printer.PrintObj(objToPrint, writer); err != nil { - return fmt.Errorf("unable to output the provided object: %v", err) - } - } - } - writer.Flush() - } - - // print watched changes - w, err := r.Watch(rv) - if err != nil { - return err - } - - first := true - intr := interrupt.New(nil, w.Stop) - intr.Run(func() error { - _, err := watch.Until(0, w, func(e watch.Event) (bool, error) { - if !isList && first { - // drop the initial watch event in the single resource case - first = false - return false, nil - } - - if isFiltered, err := filterFuncs.Filter(e.Object, filterOpts); !isFiltered { - if err != nil { - glog.V(2).Infof("Unable to filter resource: %v", err) - } else if err := printer.PrintObj(e.Object, out); err != nil { - return false, err - } - } - return false, nil - }) - return err - }) - return nil - } - - r := builder. - NamespaceParam(cmdNamespace).DefaultNamespace().AllNamespaces(allNamespaces). - FilenameParam(enforceNamespace, &options.FilenameOptions). - SelectorParam(selector). - ExportParam(export). - IncludeUninitialized(includeUninitialized). - ResourceTypeOrNameArgs(true, args...). - ContinueOnError(). - Latest(). - Flatten(). - Do() - err = r.Err() - if err != nil { - return err - } - - printer, err := f.PrinterForCommand(cmd, false, nil, printers.PrintOptions{}) - if err != nil { - return err - } - if r.TargetsSingleItems() { - filterFuncs = nil - } - if options.IgnoreNotFound { - r.IgnoreErrors(kapierrors.IsNotFound) - } - - if printer.IsGeneric() { - // we flattened the data from the builder, so we have individual items, but now we'd like to either: - // 1. if there is more than one item, combine them all into a single list - // 2. if there is a single item and that item is a list, leave it as its specific list - // 3. if there is a single item and it is not a a list, leave it as a single item - var errs []error - singleItemImplied := false - infos, err := r.IntoSingleItemImplied(&singleItemImplied).Infos() - if err != nil { - if singleItemImplied { - return err - } - errs = append(errs, err) - } - - if len(infos) == 0 && options.IgnoreNotFound { - return utilerrors.Reduce(utilerrors.Flatten(utilerrors.NewAggregate(errs))) - } - - var obj runtime.Object - if !singleItemImplied || len(infos) > 1 { - // we have more than one item, so coerce all items into a list - // we have more than one item, so coerce all items into a list. - // we don't want an *unstructured.Unstructured list yet, as we - // may be dealing with non-unstructured objects. Compose all items - // into an api.List, and then decode using an unstructured scheme. - list := api.List{ - TypeMeta: metav1.TypeMeta{ - Kind: "List", - APIVersion: "v1", - }, - ListMeta: metav1.ListMeta{}, - } - for _, info := range infos { - list.Items = append(list.Items, info.Object) - } - - listData, err := json.Marshal(list) - if err != nil { - return err - } - - converted, err := runtime.Decode(unstructured.UnstructuredJSONScheme, listData) - if err != nil { - return err - } - - obj = converted - } else { - obj = infos[0].Object - } - - isList := meta.IsListType(obj) - if isList { - _, items, err := cmdutil.FilterResourceList(obj, filterFuncs, filterOpts) - if err != nil { - return err - } - - // take the filtered items and create a new list for display - list := &unstructured.UnstructuredList{ - Object: map[string]interface{}{ - "kind": "List", - "apiVersion": "v1", - "metadata": map[string]interface{}{}, - }, - } - if listMeta, err := meta.ListAccessor(obj); err == nil { - list.Object["metadata"] = map[string]interface{}{ - "selfLink": listMeta.GetSelfLink(), - "resourceVersion": listMeta.GetResourceVersion(), - } - } - - for _, item := range items { - list.Items = append(list.Items, *item.(*unstructured.Unstructured)) - } - if err := printer.PrintObj(list, out); err != nil { - errs = append(errs, err) - } - return utilerrors.Reduce(utilerrors.Flatten(utilerrors.NewAggregate(errs))) - } - - if isFiltered, err := filterFuncs.Filter(obj, filterOpts); !isFiltered { - if err != nil { - glog.V(2).Infof("Unable to filter resource: %v", err) - } else if err := printer.PrintObj(obj, out); err != nil { - errs = append(errs, err) - } - } - - return utilerrors.Reduce(utilerrors.Flatten(utilerrors.NewAggregate(errs))) - } - - allErrs := []error{} - errs := sets.NewString() - infos, err := r.Infos() - if err != nil { - allErrs = append(allErrs, err) - } - - objs := make([]runtime.Object, len(infos)) - for ix := range infos { - objs[ix] = infos[ix].Object - } - - sorting, err := cmd.Flags().GetString("sort-by") - if err != nil { - return err - } - var sorter *kubectl.RuntimeSort - if len(sorting) > 0 && len(objs) > 1 { - // TODO: questionable - if sorter, err = kubectl.SortObjects(f.Decoder(true), objs, sorting); err != nil { - return err - } - } - - // use the default printer for each object - printer = nil - var lastMapping *meta.RESTMapping - w := printers.GetNewTabWriter(out) - - useOpenAPIPrintColumns := cmdutil.GetFlagBool(cmd, useOpenAPIPrintColumnFlagLabel) - - if resource.MultipleTypesRequested(args) || cmdutil.MustPrintWithKinds(objs, infos, sorter) { - showKind = true - } - - filteredResourceCount := 0 - for ix := range objs { - var mapping *meta.RESTMapping - var original runtime.Object - - if sorter != nil { - mapping = infos[sorter.OriginalPosition(ix)].Mapping - original = infos[sorter.OriginalPosition(ix)].Object - } else { - mapping = infos[ix].Mapping - original = infos[ix].Object - } - if shouldGetNewPrinterForMapping(printer, lastMapping, mapping) { - if printer != nil { - w.Flush() - } - - var outputOpts *printers.OutputOptions - // if cmd does not specify output format and useOpenAPIPrintColumnFlagLabel flag is true, - // then get the default output options for this mapping from OpenAPI schema. - if !cmdSpecifiesOutputFmt(cmd) && useOpenAPIPrintColumns { - outputOpts, _ = outputOptsForMappingFromOpenAPI(f, mapping) - } - - printer, err = f.PrinterForMapping(cmd, false, outputOpts, mapping, allNamespaces) - if err != nil { - if !errs.Has(err.Error()) { - errs.Insert(err.Error()) - allErrs = append(allErrs, err) - } - continue - } - - // add linebreak between resource groups (if there is more than one) - // skip linebreak above first resource group - noHeaders := cmdutil.GetFlagBool(cmd, "no-headers") - if lastMapping != nil && !noHeaders { - fmt.Fprintf(errOut, "%s\n", "") - } - - lastMapping = mapping - } - - // try to convert before apply filter func - decodedObj, _ := kubectl.DecodeUnknownObject(original) - - // filter objects if filter has been defined for current object - if isFiltered, err := filterFuncs.Filter(decodedObj, filterOpts); isFiltered { - if err == nil { - filteredResourceCount++ - continue - } - if !errs.Has(err.Error()) { - errs.Insert(err.Error()) - allErrs = append(allErrs, err) - } - } - - if resourcePrinter, found := printer.(*printers.HumanReadablePrinter); found { - resourceName := resourcePrinter.GetResourceKind() - if mapping != nil { - if resourceName == "" { - resourceName = mapping.Resource - } - if alias, ok := kubectl.ResourceShortFormFor(mapping.Resource); ok { - resourceName = alias - } else if resourceName == "" { - resourceName = "none" - } - } else { - resourceName = "none" - } - - if showKind { - resourcePrinter.EnsurePrintWithKind(resourceName) - } - - if err := printer.PrintObj(decodedObj, w); err != nil { - if !errs.Has(err.Error()) { - errs.Insert(err.Error()) - allErrs = append(allErrs, err) - } - } - continue - } - objToPrint := decodedObj - if printer.IsGeneric() { - // use raw object as recieved from the builder when using generic - // printer instead of decodedObj - objToPrint = original - } - if err := printer.PrintObj(objToPrint, w); err != nil { - if !errs.Has(err.Error()) { - errs.Insert(err.Error()) - allErrs = append(allErrs, err) - } - continue - } - } - w.Flush() - cmdutil.PrintFilterCount(errOut, len(objs), filteredResourceCount, len(allErrs), filterOpts, options.IgnoreNotFound) - return utilerrors.NewAggregate(allErrs) -} - -func addOpenAPIPrintColumnFlags(cmd *cobra.Command) { - cmd.Flags().Bool(useOpenAPIPrintColumnFlagLabel, false, "If true, use x-kubernetes-print-column metadata (if present) from openapi schema for displaying a resource.") - // marking it deprecated so that it is hidden from usage/help text. - cmd.Flags().MarkDeprecated(useOpenAPIPrintColumnFlagLabel, "It's an experimental feature.") -} - -func shouldGetNewPrinterForMapping(printer printers.ResourcePrinter, lastMapping, mapping *meta.RESTMapping) bool { - return printer == nil || lastMapping == nil || mapping == nil || mapping.Resource != lastMapping.Resource -} - -func cmdSpecifiesOutputFmt(cmd *cobra.Command) bool { - return cmdutil.GetFlagString(cmd, "output") != "" -} - -// outputOptsForMappingFromOpenAPI looks for the output format metatadata in the -// openapi schema and returns the output options for the mapping if found. -func outputOptsForMappingFromOpenAPI(f cmdutil.Factory, mapping *meta.RESTMapping) (*printers.OutputOptions, bool) { - - // user has not specified any output format, check if OpenAPI has - // default specification to print this resource type - api, err := f.OpenAPISchema() - if err != nil { - // Error getting schema - return nil, false - } - // Found openapi metadata for this resource - schema := api.LookupResource(mapping.GroupVersionKind) - if schema == nil { - // Schema not found, return empty columns - return nil, false - } - - columns, found := openapi.GetPrintColumns(schema.GetExtensions()) - if !found { - // Extension not found, return empty columns - return nil, false - } - - return outputOptsFromStr(columns) -} - -// outputOptsFromStr parses the print-column metadata and generates printer.OutputOptions object. -func outputOptsFromStr(columnStr string) (*printers.OutputOptions, bool) { - if columnStr == "" { - return nil, false - } - parts := strings.SplitN(columnStr, "=", 2) - if len(parts) < 2 { - return nil, false - } - return &printers.OutputOptions{ - FmtType: parts[0], - FmtArg: parts[1], - AllowMissingKeys: true, - }, true -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/label.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/label.go index 01166db62..bda7c8a17 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/label.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/label.go @@ -70,7 +70,8 @@ var ( labelLong = templates.LongDesc(i18n.T(` Update the labels on a resource. - * A label must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to %[1]d characters. + * A label key and value must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to %[1]d characters each. + * Optionally, the key can begin with a DNS subdomain prefix and a single '/', like example.com/my-app * If --overwrite is true, then existing labels can be overwritten, otherwise attempting to overwrite a label will result in an error. * If --resource-version is specified, then updates will use this resource version, otherwise the existing resource-version will be used.`)) @@ -190,32 +191,25 @@ func (o *LabelOptions) RunLabel(f cmdutil.Factory, cmd *cobra.Command) error { changeCause := f.Command(cmd, false) includeUninitialized := cmdutil.ShouldIncludeUninitialized(cmd, false) - b := f.NewBuilder(). - ContinueOnError(). - NamespaceParam(cmdNamespace).DefaultNamespace(). - FilenameParam(enforceNamespace, &o.FilenameOptions). - IncludeUninitialized(includeUninitialized). - Flatten() - - if !o.local { - // call this method here, as it requires an api call - // and will cause the command to fail when there is - // no connection to a server - mapper, typer, err := f.UnstructuredObject() - if err != nil { - return err - } - - b = b.SelectorParam(o.selector). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + var b *resource.Builder + if o.local { + b = f.NewBuilder(). + Local(f.ClientForMapping) + } else { + b = f.NewUnstructuredBuilder(). + LabelSelectorParam(o.selector). ResourceTypeOrNameArgs(o.all, o.resources...). Latest() - } else { - b = b.Local(f.ClientForMapping) } one := false - r := b.Do().IntoSingleItemImplied(&one) + r := b.ContinueOnError(). + NamespaceParam(cmdNamespace).DefaultNamespace(). + FilenameParam(enforceNamespace, &o.FilenameOptions). + IncludeUninitialized(includeUninitialized). + Flatten(). + Do(). + IntoSingleItemImplied(&one) if err := r.Err(); err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/label_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/label_test.go index 5140ca2bc..ff7d56497 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/label_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/label_test.go @@ -25,9 +25,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/kubectl/resource" ) @@ -323,7 +322,7 @@ func TestLabelErrors(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdLabel(f, buf) @@ -357,7 +356,6 @@ func TestLabelForResourceFromFile(t *testing.T) { pods, _, _ := testData() f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.Method { @@ -384,7 +382,7 @@ func TestLabelForResourceFromFile(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdLabel(f, buf) @@ -408,7 +406,6 @@ func TestLabelForResourceFromFile(t *testing.T) { func TestLabelLocal(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) @@ -416,7 +413,7 @@ func TestLabelLocal(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdLabel(f, buf) @@ -442,7 +439,6 @@ func TestLabelMultipleObjects(t *testing.T) { pods, _, _ := testData() f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.Method { @@ -471,7 +467,7 @@ func TestLabelMultipleObjects(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdLabel(f, buf) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/logs.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/logs.go index 8392c95ba..d0e7601da 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/logs.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/logs.go @@ -28,8 +28,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/util" @@ -199,7 +199,7 @@ func (o *LogsOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.Comm builder.ResourceNames("pods", o.ResourceArg) } if selector != "" { - builder.ResourceTypes("pods").SelectorParam(selector) + builder.ResourceTypes("pods").LabelSelectorParam(selector) } infos, err := builder.Do().Infos() if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/logs_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/logs_test.go index 246edc9dd..ab71ccf16 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/logs_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/logs_test.go @@ -27,10 +27,8 @@ import ( "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) @@ -51,7 +49,6 @@ func TestLog(t *testing.T) { logContent := "test log content" f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -69,7 +66,7 @@ func TestLog(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs, GroupVersion: &schema.GroupVersion{Version: test.version}}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) cmd := NewCmdLogs(f, buf) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/patch.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/patch.go index be49545d5..dffaff4d9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/patch.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/patch.go @@ -34,11 +34,11 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/util/i18n" "k8s.io/kubernetes/pkg/printers" ) @@ -153,13 +153,7 @@ func RunPatch(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []strin return fmt.Errorf("unable to parse %q: %v", patch, err) } - mapper, typer, err := f.UnstructuredObject() - if err != nil { - return err - } - - r := f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + r := f.NewUnstructuredBuilder(). ContinueOnError(). NamespaceParam(cmdNamespace).DefaultNamespace(). FilenameParam(enforceNamespace, &options.FilenameOptions). @@ -226,7 +220,7 @@ func RunPatch(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []strin } if len(options.OutputFormat) > 0 && options.OutputFormat != "name" { - return cmdutil.PrintResourceInfoForCommand(cmd, info, f, out) + return f.PrintResourceInfoForCommand(cmd, info, out) } mapper, _, err := f.UnstructuredObject() if err != nil { @@ -249,7 +243,7 @@ func RunPatch(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []strin return err } - originalPatchedObjJS, err := getPatchedJSON(patchType, originalObjJS, patchBytes, mapping.GroupVersionKind, api.Scheme) + originalPatchedObjJS, err := getPatchedJSON(patchType, originalObjJS, patchBytes, mapping.GroupVersionKind, scheme.Scheme) if err != nil { return err } @@ -266,7 +260,7 @@ func RunPatch(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []strin if err := info.Refresh(targetObj, true); err != nil { return err } - return cmdutil.PrintResourceInfoForCommand(cmd, info, f, out) + return f.PrintResourceInfoForCommand(cmd, info, out) }) if err != nil { return err diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/patch_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/patch_test.go index c72d308ee..f9692a977 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/patch_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/patch_test.go @@ -23,7 +23,6 @@ import ( "testing" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/printers" ) @@ -33,7 +32,6 @@ func TestPatchObject(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -72,7 +70,6 @@ func TestPatchObjectFromFile(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -107,7 +104,6 @@ func TestPatchNoop(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -153,7 +149,6 @@ func TestPatchObjectFromFileOutput(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &printers.YAMLPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/plugin.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/plugin.go index e883d1a65..b69e7a89c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/plugin.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/plugin.go @@ -19,6 +19,9 @@ package cmd import ( "fmt" "io" + "os" + "os/exec" + "syscall" "github.com/golang/glog" "github.com/spf13/cobra" @@ -109,6 +112,15 @@ func NewCmdForPlugin(f cmdutil.Factory, plugin *plugins.Plugin, runner plugins.P } if err := runner.Run(plugin, runningContext); err != nil { + if exiterr, ok := err.(*exec.ExitError); ok { + // check for (and exit with) the correct exit code + // from a failed plugin command execution + if status, ok := exiterr.Sys().(syscall.WaitStatus); ok { + fmt.Fprintf(errout, "error: %v\n", err) + os.Exit(status.ExitStatus()) + } + } + cmdutil.CheckErr(err) } }, diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/portforward.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/portforward.go index b9ef50736..cedb93bb2 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/portforward.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/portforward.go @@ -30,7 +30,7 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/portforward" "k8s.io/client-go/transport/spdy" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/portforward_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/portforward_test.go index e896e4ace..dcb6f1da8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/portforward_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/portforward_test.go @@ -25,8 +25,9 @@ import ( "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) @@ -43,7 +44,7 @@ func (f *fakePortForwarder) ForwardPorts(method string, url *url.URL, opts PortF } func testPortForward(t *testing.T, flags map[string]string, args []string) { - version := api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version + version := "v1" tests := []struct { name string @@ -69,7 +70,7 @@ func testPortForward(t *testing.T, flags map[string]string, args []string) { var err error f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Group: ""}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/replace.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/replace.go index d6f5e2635..8d2674af8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/replace.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/replace.go @@ -120,13 +120,12 @@ func RunReplace(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []str return fmt.Errorf("--timeout must have --force specified") } - mapper, typer, err := f.UnstructuredObject() + mapper, _, err := f.UnstructuredObject() if err != nil { return err } - r := f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + r := f.NewUnstructuredBuilder(). Schema(schema). ContinueOnError(). NamespaceParam(cmdNamespace).DefaultNamespace(). @@ -233,7 +232,7 @@ func forceReplace(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s if timeout == 0 { timeout = kubectl.Timeout } - r.Visit(func(info *resource.Info, err error) error { + err = r.Visit(func(info *resource.Info, err error) error { if err != nil { return err } @@ -245,9 +244,11 @@ func forceReplace(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s return true, nil }) }) + if err != nil { + return err + } - r = f.NewBuilder(). - Unstructured(f.UnstructuredClientForMapping, mapper, typer). + r = f.NewUnstructuredBuilder(). Schema(schema). ContinueOnError(). NamespaceParam(cmdNamespace).DefaultNamespace(). diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/replace_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/replace_test.go index cb54fddf8..2e5e175ac 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/replace_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/replace_test.go @@ -23,7 +23,7 @@ import ( "testing" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" ) @@ -34,7 +34,6 @@ func TestReplaceObject(t *testing.T) { tf.Printer = &testPrinter{} deleted := false tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -91,7 +90,6 @@ func TestReplaceMultipleObject(t *testing.T) { redisMasterDeleted := false frontendDeleted := false tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -160,7 +158,6 @@ func TestReplaceDirectory(t *testing.T) { tf.Printer = &testPrinter{} created := map[string]bool{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -216,7 +213,6 @@ func TestForceReplaceObjectNotFound(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/BUILD new file mode 100644 index 000000000..207a5cf79 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/BUILD @@ -0,0 +1,78 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = ["get.go"], + importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/resource", + visibility = ["//visibility:public"], + deps = [ + "//pkg/apis/core:go_default_library", + "//pkg/kubectl:go_default_library", + "//pkg/kubectl/cmd/templates:go_default_library", + "//pkg/kubectl/cmd/util:go_default_library", + "//pkg/kubectl/cmd/util/openapi:go_default_library", + "//pkg/kubectl/resource:go_default_library", + "//pkg/kubectl/util/i18n:go_default_library", + "//pkg/printers:go_default_library", + "//pkg/util/interrupt:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/spf13/cobra:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["get_test.go"], + data = [ + "//examples:config", + "//test/fixtures", + ], + importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/resource", + library = ":go_default_library", + deps = [ + "//pkg/api/testapi:go_default_library", + "//pkg/api/testing:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", + "//pkg/kubectl/cmd/testing:go_default_library", + "//pkg/kubectl/cmd/util:go_default_library", + "//pkg/kubectl/cmd/util/openapi:go_default_library", + "//pkg/kubectl/scheme:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/json:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/dynamic:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/rest/fake:go_default_library", + "//vendor/k8s.io/client-go/rest/watch:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/util/proto: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/kubernetes/pkg/kubectl/cmd/resource/get.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/get.go new file mode 100644 index 000000000..b99d4857a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/get.go @@ -0,0 +1,698 @@ +/* +Copyright 2014 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 resource + +import ( + "encoding/json" + "fmt" + "io" + "strings" + + "github.com/golang/glog" + "github.com/spf13/cobra" + + kapierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/kubectl" + "k8s.io/kubernetes/pkg/kubectl/cmd/templates" + cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" + "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/util/i18n" + "k8s.io/kubernetes/pkg/printers" + "k8s.io/kubernetes/pkg/util/interrupt" +) + +// GetOptions contains the input to the get command. +type GetOptions struct { + Out, ErrOut io.Writer + + resource.FilenameOptions + + Raw string + Watch bool + WatchOnly bool + ChunkSize int64 + + LabelSelector string + FieldSelector string + AllNamespaces bool + Namespace string + ExplicitNamespace bool + + IgnoreNotFound bool + ShowKind bool + LabelColumns []string + Export bool +} + +var ( + getLong = templates.LongDesc(` + Display one or many resources + + Prints a table of the most important information about the specified resources. + You can filter the list using a label selector and the --selector flag. If the + desired resource type is namespaced you will only see results in your current + namespace unless you pass --all-namespaces. + + This command will hide resources that have completed, such as pods that are + in the Succeeded or Failed phases. You can see the full results for any + resource by providing the --show-all flag. Uninitialized objects are not + shown unless --include-uninitialized is passed. + + By specifying the output as 'template' and providing a Go template as the value + of the --template flag, you can filter the attributes of the fetched resources.`) + + getExample = templates.Examples(i18n.T(` + # List all pods in ps output format. + kubectl get pods + + # List all pods in ps output format with more information (such as node name). + kubectl get pods -o wide + + # List a single replication controller with specified NAME in ps output format. + kubectl get replicationcontroller web + + # List a single pod in JSON output format. + kubectl get -o json pod web-pod-13je7 + + # List a pod identified by type and name specified in "pod.yaml" in JSON output format. + kubectl get -f pod.yaml -o json + + # Return only the phase value of the specified pod. + kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}} + + # List all replication controllers and services together in ps output format. + kubectl get rc,services + + # List one or more resources by their type and names. + kubectl get rc/web service/frontend pods/web-pod-13je7 + + # List all resources with different types. + kubectl get all`)) +) + +const ( + useOpenAPIPrintColumnFlagLabel = "experimental-use-openapi-print-columns" +) + +// NewCmdGet creates a command object for the generic "get" action, which +// retrieves one or more resources from a server. +func NewCmdGet(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.Command { + options := &GetOptions{ + Out: out, + ErrOut: errOut, + } + + // TODO: this needs to be abstracted behind the factory like ValidResourceTypeList + // and use discovery + // retrieve a list of handled resources from printer as valid args + validArgs, argAliases := []string{}, []string{} + p, err := f.Printer(nil, printers.PrintOptions{ + ColumnLabels: []string{}, + }) + cmdutil.CheckErr(err) + if p != nil { + validArgs = p.HandledResources() + argAliases = kubectl.ResourceAliases(validArgs) + } + + cmd := &cobra.Command{ + Use: "get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] (TYPE [NAME | -l label] | TYPE/NAME ...) [flags]", + Short: i18n.T("Display one or many resources"), + Long: getLong + "\n\n" + cmdutil.ValidResourceTypeList(f), + Example: getExample, + Run: func(cmd *cobra.Command, args []string) { + cmdutil.CheckErr(options.Complete(f, cmd, args)) + cmdutil.CheckErr(options.Validate()) + cmdutil.CheckErr(options.Run(f, cmd, args)) + }, + SuggestFor: []string{"list", "ps"}, + ValidArgs: validArgs, + ArgAliases: argAliases, + } + + cmd.Flags().StringVar(&options.Raw, "raw", options.Raw, "Raw URI to request from the server. Uses the transport specified by the kubeconfig file.") + cmd.Flags().BoolVarP(&options.Watch, "watch", "w", options.Watch, "After listing/getting the requested object, watch for changes. Uninitialized objects are excluded if no object name is provided.") + cmd.Flags().BoolVar(&options.WatchOnly, "watch-only", options.WatchOnly, "Watch for changes to the requested object(s), without listing/getting first.") + cmd.Flags().Int64Var(&options.ChunkSize, "chunk-size", 500, "Return large lists in chunks rather than all at once. Pass 0 to disable. This flag is beta and may change in the future.") + cmd.Flags().BoolVar(&options.IgnoreNotFound, "ignore-not-found", options.IgnoreNotFound, "If the requested object does not exist the command will return exit code 0.") + cmd.Flags().StringVarP(&options.LabelSelector, "selector", "l", options.LabelSelector, "Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2)") + cmd.Flags().StringVar(&options.FieldSelector, "field-selector", options.FieldSelector, "Selector (field query) to filter on, supports '=', '==', and '!='.(e.g. --field-selector key1=value1,key2=value2). The server only supports a limited number of field queries per type.") + cmd.Flags().BoolVar(&options.AllNamespaces, "all-namespaces", options.AllNamespaces, "If present, list the requested object(s) across all namespaces. Namespace in current context is ignored even if specified with --namespace.") + cmdutil.AddIncludeUninitializedFlag(cmd) + cmdutil.AddPrinterFlags(cmd) + addOpenAPIPrintColumnFlags(cmd) + cmd.Flags().BoolVar(&options.ShowKind, "show-kind", options.ShowKind, "If present, list the resource type for the requested object(s).") + cmd.Flags().StringSliceVarP(&options.LabelColumns, "label-columns", "L", options.LabelColumns, "Accepts a comma separated list of labels that are going to be presented as columns. Names are case-sensitive. You can also use multiple flag options like -L label1 -L label2...") + cmd.Flags().BoolVar(&options.Export, "export", options.Export, "If true, use 'export' for the resources. Exported resources are stripped of cluster-specific information.") + cmdutil.AddFilenameOptionFlags(cmd, &options.FilenameOptions, "identifying the resource to get from a server.") + cmdutil.AddInclude3rdPartyFlags(cmd) + return cmd +} + +// Complete takes the command arguments and factory and infers any remaining options. +func (options *GetOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { + if len(options.Raw) > 0 { + if len(args) > 0 { + return fmt.Errorf("arguments may not be passed when --raw is specified") + } + return nil + } + + var err error + options.Namespace, options.ExplicitNamespace, err = f.DefaultNamespace() + if err != nil { + return err + } + if options.AllNamespaces { + options.ExplicitNamespace = false + } + + switch { + case options.Watch || options.WatchOnly: + + default: + if len(args) == 0 && cmdutil.IsFilenameSliceEmpty(options.Filenames) { + fmt.Fprint(options.ErrOut, "You must specify the type of resource to get. ", cmdutil.ValidResourceTypeList(f)) + fullCmdName := cmd.Parent().CommandPath() + usageString := "Required resource not specified." + if len(fullCmdName) > 0 && cmdutil.IsSiblingCommandExists(cmd, "explain") { + usageString = fmt.Sprintf("%s\nUse \"%s explain \" for a detailed description of that resource (e.g. %[2]s explain pods).", usageString, fullCmdName) + } + + return cmdutil.UsageErrorf(cmd, usageString) + } + } + return nil +} + +// Validate checks the set of flags provided by the user. +func (options *GetOptions) Validate() error { + if len(options.Raw) > 0 && (options.Watch || options.WatchOnly || len(options.LabelSelector) > 0 || options.Export) { + return fmt.Errorf("--raw may not be specified with other flags that filter the server request or alter the output") + } + return nil +} + +// Run performs the get operation. +// TODO: remove the need to pass these arguments, like other commands. +func (options *GetOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) error { + if len(options.Raw) > 0 { + return options.raw(f) + } + if options.Watch || options.WatchOnly { + return options.watch(f, cmd, args) + } + + r := f.NewUnstructuredBuilder(). + NamespaceParam(options.Namespace).DefaultNamespace().AllNamespaces(options.AllNamespaces). + FilenameParam(options.ExplicitNamespace, &options.FilenameOptions). + LabelSelectorParam(options.LabelSelector). + FieldSelectorParam(options.FieldSelector). + ExportParam(options.Export). + RequestChunksOf(options.ChunkSize). + IncludeUninitialized(cmdutil.ShouldIncludeUninitialized(cmd, false)). // TODO: this needs to be better factored + ResourceTypeOrNameArgs(true, args...). + ContinueOnError(). + Latest(). + Flatten(). + Do() + + if options.IgnoreNotFound { + r.IgnoreErrors(kapierrors.IsNotFound) + } + if err := r.Err(); err != nil { + return err + } + + printer, err := f.PrinterForCommand(cmd, false, nil, printers.PrintOptions{}) + if err != nil { + return err + } + + filterOpts := f.DefaultResourceFilterOptions(cmd, options.AllNamespaces) + filterFuncs := f.DefaultResourceFilterFunc() + if r.TargetsSingleItems() { + filterFuncs = nil + } + + if printer.IsGeneric() { + return options.printGeneric(printer, r, filterFuncs, filterOpts) + } + + allErrs := []error{} + errs := sets.NewString() + infos, err := r.Infos() + if err != nil { + allErrs = append(allErrs, err) + } + + objs := make([]runtime.Object, len(infos)) + for ix := range infos { + objs[ix] = infos[ix].Object + } + + sorting, err := cmd.Flags().GetString("sort-by") + if err != nil { + return err + } + var sorter *kubectl.RuntimeSort + if len(sorting) > 0 && len(objs) > 1 { + // TODO: questionable + if sorter, err = kubectl.SortObjects(f.Decoder(true), objs, sorting); err != nil { + return err + } + } + + // use the default printer for each object + printer = nil + var lastMapping *meta.RESTMapping + w := printers.GetNewTabWriter(options.Out) + + useOpenAPIPrintColumns := cmdutil.GetFlagBool(cmd, useOpenAPIPrintColumnFlagLabel) + + showKind := options.ShowKind + // TODO: abstract more cleanly + if resource.MultipleTypesRequested(args) || cmdutil.MustPrintWithKinds(objs, infos, sorter) { + showKind = true + } + + filteredResourceCount := 0 + for ix := range objs { + var mapping *meta.RESTMapping + var original runtime.Object + + if sorter != nil { + mapping = infos[sorter.OriginalPosition(ix)].Mapping + original = infos[sorter.OriginalPosition(ix)].Object + } else { + mapping = infos[ix].Mapping + original = infos[ix].Object + } + if shouldGetNewPrinterForMapping(printer, lastMapping, mapping) { + if printer != nil { + w.Flush() + } + + printWithNamespace := options.AllNamespaces + if mapping != nil && mapping.Scope.Name() == meta.RESTScopeNameRoot { + printWithNamespace = false + } + + var outputOpts *printers.OutputOptions + // if cmd does not specify output format and useOpenAPIPrintColumnFlagLabel flag is true, + // then get the default output options for this mapping from OpenAPI schema. + if !cmdSpecifiesOutputFmt(cmd) && useOpenAPIPrintColumns { + outputOpts, _ = outputOptsForMappingFromOpenAPI(f, mapping) + } + + printer, err = f.PrinterForMapping(cmd, false, outputOpts, mapping, printWithNamespace) + if err != nil { + if !errs.Has(err.Error()) { + errs.Insert(err.Error()) + allErrs = append(allErrs, err) + } + continue + } + + // TODO: this doesn't belong here + // add linebreak between resource groups (if there is more than one) + // skip linebreak above first resource group + noHeaders := cmdutil.GetFlagBool(cmd, "no-headers") + if lastMapping != nil && !noHeaders { + fmt.Fprintf(options.ErrOut, "%s\n", "") + } + + lastMapping = mapping + } + + // try to convert before apply filter func + decodedObj, _ := kubectl.DecodeUnknownObject(original) + + // filter objects if filter has been defined for current object + if isFiltered, err := filterFuncs.Filter(decodedObj, filterOpts); isFiltered { + if err == nil { + filteredResourceCount++ + continue + } + if !errs.Has(err.Error()) { + errs.Insert(err.Error()) + allErrs = append(allErrs, err) + } + } + + if resourcePrinter, found := printer.(*printers.HumanReadablePrinter); found { + resourceName := resourcePrinter.GetResourceKind() + if mapping != nil { + if resourceName == "" { + resourceName = mapping.Resource + } + if alias, ok := kubectl.ResourceShortFormFor(mapping.Resource); ok { + resourceName = alias + } else if resourceName == "" { + resourceName = "none" + } + } else { + resourceName = "none" + } + + if showKind { + resourcePrinter.EnsurePrintWithKind(resourceName) + } + + if err := printer.PrintObj(decodedObj, w); err != nil { + if !errs.Has(err.Error()) { + errs.Insert(err.Error()) + allErrs = append(allErrs, err) + } + } + continue + } + objToPrint := decodedObj + if printer.IsGeneric() { + // use raw object as recieved from the builder when using generic + // printer instead of decodedObj + objToPrint = original + } + if err := printer.PrintObj(objToPrint, w); err != nil { + if !errs.Has(err.Error()) { + errs.Insert(err.Error()) + allErrs = append(allErrs, err) + } + continue + } + } + w.Flush() + cmdutil.PrintFilterCount(options.ErrOut, len(objs), filteredResourceCount, len(allErrs), filterOpts, options.IgnoreNotFound) + return utilerrors.NewAggregate(allErrs) +} + +// raw makes a simple HTTP request to the provided path on the server using the default +// credentials. +func (options *GetOptions) raw(f cmdutil.Factory) error { + restClient, err := f.RESTClient() + if err != nil { + return err + } + + stream, err := restClient.Get().RequestURI(options.Raw).Stream() + if err != nil { + return err + } + defer stream.Close() + + _, err = io.Copy(options.Out, stream) + if err != nil && err != io.EOF { + return err + } + return nil +} + +// watch starts a client-side watch of one or more resources. +// TODO: remove the need for arguments here. +func (options *GetOptions) watch(f cmdutil.Factory, cmd *cobra.Command, args []string) error { + // TODO: this could be better factored + // include uninitialized objects when watching on a single object + // unless explicitly set --include-uninitialized=false + includeUninitialized := cmdutil.ShouldIncludeUninitialized(cmd, len(args) == 2) + + r := f.NewUnstructuredBuilder(). + NamespaceParam(options.Namespace).DefaultNamespace().AllNamespaces(options.AllNamespaces). + FilenameParam(options.ExplicitNamespace, &options.FilenameOptions). + LabelSelectorParam(options.LabelSelector). + FieldSelectorParam(options.FieldSelector). + ExportParam(options.Export). + RequestChunksOf(options.ChunkSize). + IncludeUninitialized(includeUninitialized). + ResourceTypeOrNameArgs(true, args...). + SingleResourceType(). + Latest(). + Do() + err := r.Err() + if err != nil { + return err + } + infos, err := r.Infos() + if err != nil { + return err + } + if len(infos) != 1 { + return i18n.Errorf("watch is only supported on individual resources and resource collections - %d resources were found", len(infos)) + } + + filterOpts := f.DefaultResourceFilterOptions(cmd, options.AllNamespaces) + filterFuncs := f.DefaultResourceFilterFunc() + if r.TargetsSingleItems() { + filterFuncs = nil + } + + info := infos[0] + mapping := info.ResourceMapping() + printer, err := f.PrinterForMapping(cmd, false, nil, mapping, options.AllNamespaces) + if err != nil { + return err + } + obj, err := r.Object() + if err != nil { + return err + } + + // watching from resourceVersion 0, starts the watch at ~now and + // will return an initial watch event. Starting form ~now, rather + // the rv of the object will insure that we start the watch from + // inside the watch window, which the rv of the object might not be. + rv := "0" + isList := meta.IsListType(obj) + if isList { + // the resourceVersion of list objects is ~now but won't return + // an initial watch event + rv, err = mapping.MetadataAccessor.ResourceVersion(obj) + if err != nil { + return err + } + } + + // print the current object + if !options.WatchOnly { + var objsToPrint []runtime.Object + writer := printers.GetNewTabWriter(options.Out) + + if isList { + objsToPrint, _ = meta.ExtractList(obj) + } else { + objsToPrint = append(objsToPrint, obj) + } + for _, objToPrint := range objsToPrint { + if isFiltered, err := filterFuncs.Filter(objToPrint, filterOpts); !isFiltered { + if err != nil { + glog.V(2).Infof("Unable to filter resource: %v", err) + } else if err := printer.PrintObj(objToPrint, writer); err != nil { + return fmt.Errorf("unable to output the provided object: %v", err) + } + } + } + writer.Flush() + } + + // print watched changes + w, err := r.Watch(rv) + if err != nil { + return err + } + + first := true + intr := interrupt.New(nil, w.Stop) + intr.Run(func() error { + _, err := watch.Until(0, w, func(e watch.Event) (bool, error) { + if !isList && first { + // drop the initial watch event in the single resource case + first = false + return false, nil + } + + if isFiltered, err := filterFuncs.Filter(e.Object, filterOpts); !isFiltered { + if err != nil { + glog.V(2).Infof("Unable to filter resource: %v", err) + } else if err := printer.PrintObj(e.Object, options.Out); err != nil { + return false, err + } + } + return false, nil + }) + return err + }) + return nil +} + +func (options *GetOptions) printGeneric(printer printers.ResourcePrinter, r *resource.Result, filterFuncs kubectl.Filters, filterOpts *printers.PrintOptions) error { + // we flattened the data from the builder, so we have individual items, but now we'd like to either: + // 1. if there is more than one item, combine them all into a single list + // 2. if there is a single item and that item is a list, leave it as its specific list + // 3. if there is a single item and it is not a list, leave it as a single item + var errs []error + singleItemImplied := false + infos, err := r.IntoSingleItemImplied(&singleItemImplied).Infos() + if err != nil { + if singleItemImplied { + return err + } + errs = append(errs, err) + } + + if len(infos) == 0 && options.IgnoreNotFound { + return utilerrors.Reduce(utilerrors.Flatten(utilerrors.NewAggregate(errs))) + } + + var obj runtime.Object + if !singleItemImplied || len(infos) > 1 { + // we have more than one item, so coerce all items into a list + // we have more than one item, so coerce all items into a list. + // we don't want an *unstructured.Unstructured list yet, as we + // may be dealing with non-unstructured objects. Compose all items + // into an api.List, and then decode using an unstructured scheme. + list := api.List{ + TypeMeta: metav1.TypeMeta{ + Kind: "List", + APIVersion: "v1", + }, + ListMeta: metav1.ListMeta{}, + } + for _, info := range infos { + list.Items = append(list.Items, info.Object) + } + + listData, err := json.Marshal(list) + if err != nil { + return err + } + + converted, err := runtime.Decode(unstructured.UnstructuredJSONScheme, listData) + if err != nil { + return err + } + + obj = converted + } else { + obj = infos[0].Object + } + + isList := meta.IsListType(obj) + if isList { + _, items, err := cmdutil.FilterResourceList(obj, filterFuncs, filterOpts) + if err != nil { + return err + } + + // take the filtered items and create a new list for display + list := &unstructured.UnstructuredList{ + Object: map[string]interface{}{ + "kind": "List", + "apiVersion": "v1", + "metadata": map[string]interface{}{}, + }, + } + if listMeta, err := meta.ListAccessor(obj); err == nil { + list.Object["metadata"] = map[string]interface{}{ + "selfLink": listMeta.GetSelfLink(), + "resourceVersion": listMeta.GetResourceVersion(), + } + } + + for _, item := range items { + list.Items = append(list.Items, *item.(*unstructured.Unstructured)) + } + if err := printer.PrintObj(list, options.Out); err != nil { + errs = append(errs, err) + } + return utilerrors.Reduce(utilerrors.Flatten(utilerrors.NewAggregate(errs))) + } + + if isFiltered, err := filterFuncs.Filter(obj, filterOpts); !isFiltered { + if err != nil { + glog.V(2).Infof("Unable to filter resource: %v", err) + } else if err := printer.PrintObj(obj, options.Out); err != nil { + errs = append(errs, err) + } + } + + return utilerrors.Reduce(utilerrors.Flatten(utilerrors.NewAggregate(errs))) +} + +func addOpenAPIPrintColumnFlags(cmd *cobra.Command) { + cmd.Flags().Bool(useOpenAPIPrintColumnFlagLabel, false, "If true, use x-kubernetes-print-column metadata (if present) from the OpenAPI schema for displaying a resource.") + // marking it deprecated so that it is hidden from usage/help text. + cmd.Flags().MarkDeprecated(useOpenAPIPrintColumnFlagLabel, "This flag is experimental and may be removed in the future.") +} + +func shouldGetNewPrinterForMapping(printer printers.ResourcePrinter, lastMapping, mapping *meta.RESTMapping) bool { + return printer == nil || lastMapping == nil || mapping == nil || mapping.Resource != lastMapping.Resource +} + +func cmdSpecifiesOutputFmt(cmd *cobra.Command) bool { + return cmdutil.GetFlagString(cmd, "output") != "" +} + +// outputOptsForMappingFromOpenAPI looks for the output format metatadata in the +// openapi schema and returns the output options for the mapping if found. +func outputOptsForMappingFromOpenAPI(f cmdutil.Factory, mapping *meta.RESTMapping) (*printers.OutputOptions, bool) { + + // user has not specified any output format, check if OpenAPI has + // default specification to print this resource type + api, err := f.OpenAPISchema() + if err != nil { + // Error getting schema + return nil, false + } + // Found openapi metadata for this resource + schema := api.LookupResource(mapping.GroupVersionKind) + if schema == nil { + // Schema not found, return empty columns + return nil, false + } + + columns, found := openapi.GetPrintColumns(schema.GetExtensions()) + if !found { + // Extension not found, return empty columns + return nil, false + } + + return outputOptsFromStr(columns) +} + +// outputOptsFromStr parses the print-column metadata and generates printer.OutputOptions object. +func outputOptsFromStr(columnStr string) (*printers.OutputOptions, bool) { + if columnStr == "" { + return nil, false + } + parts := strings.SplitN(columnStr, "=", 2) + if len(parts) < 2 { + return nil, false + } + return &printers.OutputOptions{ + FmtType: parts[0], + FmtArg: parts[1], + AllowMissingKeys: true, + }, true +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/get_test.go similarity index 83% rename from vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get_test.go rename to vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/get_test.go index f62369bd3..0ff0c4e06 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/resource/get_test.go @@ -14,11 +14,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -package cmd +package resource import ( "bytes" encjson "encoding/json" + "fmt" "io" "io/ioutil" "net/http" @@ -35,16 +36,98 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer/json" "k8s.io/apimachinery/pkg/runtime/serializer/streaming" "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/dynamic" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" restclientwatch "k8s.io/client-go/rest/watch" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kube-openapi/pkg/util/proto" "k8s.io/kubernetes/pkg/api/testapi" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/v1" + cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" + cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" + "k8s.io/kubernetes/pkg/kubectl/scheme" ) +// This init should be removed after switching this command and its tests to user external types. +func init() { + api.AddToScheme(scheme.Scheme) + scheme.Scheme.AddConversionFuncs(v1.Convert_core_PodSpec_To_v1_PodSpec) + scheme.Scheme.AddConversionFuncs(v1.Convert_v1_PodSecurityContext_To_core_PodSecurityContext) +} + +var unstructuredSerializer = dynamic.ContentConfig().NegotiatedSerializer + +func defaultHeader() http.Header { + header := http.Header{} + header.Set("Content-Type", runtime.ContentTypeJSON) + return header +} + +func defaultClientConfig() *restclient.Config { + return &restclient.Config{ + APIPath: "/api", + ContentConfig: restclient.ContentConfig{ + NegotiatedSerializer: scheme.Codecs, + ContentType: runtime.ContentTypeJSON, + GroupVersion: &scheme.Registry.GroupOrDie(api.GroupName).GroupVersion, + }, + } +} + +func defaultClientConfigForVersion(version *schema.GroupVersion) *restclient.Config { + return &restclient.Config{ + APIPath: "/api", + ContentConfig: restclient.ContentConfig{ + NegotiatedSerializer: scheme.Codecs, + ContentType: runtime.ContentTypeJSON, + GroupVersion: version, + }, + } +} + +type testPrinter struct { + Objects []runtime.Object + Err error + GenericPrinter bool +} + +func (t *testPrinter) PrintObj(obj runtime.Object, out io.Writer) error { + t.Objects = append(t.Objects, obj) + fmt.Fprintf(out, "%#v", obj) + return t.Err +} + +// TODO: implement HandledResources() +func (t *testPrinter) HandledResources() []string { + return []string{} +} + +func (t *testPrinter) AfterPrint(output io.Writer, res string) error { + return nil +} + +func (t *testPrinter) IsGeneric() bool { + return t.GenericPrinter +} + +func objBody(codec runtime.Codec, obj runtime.Object) io.ReadCloser { + return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(codec, obj)))) +} + +func stringBody(body string) io.ReadCloser { + return ioutil.NopCloser(bytes.NewReader([]byte(body))) +} + +func initTestErrorHandler(t *testing.T) { + cmdutil.BehaviorOnFatal(func(str string, code int) { + t.Errorf("Error running command (exit code %d): %s", code, str) + }) +} + func testData() (*api.PodList, *api.ServiceList, *api.ReplicationControllerList) { pods := &api.PodList{ ListMeta: metav1.ListMeta{ @@ -124,12 +207,11 @@ func TestGetUnknownSchemaObject(t *testing.T) { _, _, codec, _ := cmdtesting.NewTestFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", "foo"))}, } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) errBuf := bytes.NewBuffer([]byte{}) @@ -149,7 +231,7 @@ func TestGetUnknownSchemaObject(t *testing.T) { t.Fatal(err) } - actualJSON := runtime.EncodeOrDie(api.Codecs.LegacyCodec(), obj) + actualJSON := runtime.EncodeOrDie(scheme.Codecs.LegacyCodec(), obj) actualMap := map[string]interface{}{} if err := encjson.Unmarshal([]byte(actualJSON), &actualMap); err != nil { t.Fatal(err) @@ -165,16 +247,15 @@ func TestGetUnknownSchemaObject(t *testing.T) { func TestGetSchemaObject(t *testing.T) { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Mapper = testapi.Default.RESTMapper() - tf.Typer = api.Scheme + tf.Typer = scheme.Scheme codec := testapi.Default.Codec() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &api.ReplicationController{ObjectMeta: metav1.ObjectMeta{Name: "foo"}})}, } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: "v1"}}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) errBuf := bytes.NewBuffer([]byte{}) @@ -195,7 +276,6 @@ func TestGetObjectsWithOpenAPIOutputFormatPresent(t *testing.T) { // for Pod type. tf.OpenAPISchemaFunc = testOpenAPISchemaData tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])}, } @@ -217,10 +297,10 @@ func TestGetObjectsWithOpenAPIOutputFormatPresent(t *testing.T) { } type FakeResources struct { - resources map[schema.GroupVersionKind]openapi.Schema + resources map[schema.GroupVersionKind]proto.Schema } -func (f FakeResources) LookupResource(s schema.GroupVersionKind) openapi.Schema { +func (f FakeResources) LookupResource(s schema.GroupVersionKind) proto.Schema { return f.resources[s] } @@ -228,12 +308,12 @@ var _ openapi.Resources = &FakeResources{} func testOpenAPISchemaData() (openapi.Resources, error) { return &FakeResources{ - resources: map[schema.GroupVersionKind]openapi.Schema{ + resources: map[schema.GroupVersionKind]proto.Schema{ { Version: "v1", Kind: "Pod", - }: &openapi.Primitive{ - BaseSchema: openapi.BaseSchema{ + }: &proto.Primitive{ + BaseSchema: proto.BaseSchema{ Extensions: map[string]interface{}{ "x-kubernetes-print-columns": "custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion", }, @@ -249,7 +329,6 @@ func TestGetObjects(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])}, } @@ -289,7 +368,7 @@ func TestGetObjectsFiltered(t *testing.T) { {args: []string{"pods"}, flags: map[string]string{"show-all": "true"}, resp: pods, expect: []runtime.Object{first, second}}, {args: []string{"pods/foo"}, resp: first, expect: []runtime.Object{first}, genericPrinter: true}, {args: []string{"pods"}, flags: map[string]string{"output": "yaml"}, resp: pods, expect: []runtime.Object{second}}, - {args: []string{}, flags: map[string]string{"filename": "../../../examples/storage/cassandra/cassandra-controller.yaml"}, resp: pods, expect: []runtime.Object{first, second}}, + {args: []string{}, flags: map[string]string{"filename": "../../../../examples/storage/cassandra/cassandra-controller.yaml"}, resp: pods, expect: []runtime.Object{first, second}}, {args: []string{"pods"}, resp: pods, expect: []runtime.Object{second}}, {args: []string{"pods"}, flags: map[string]string{"show-all": "true", "output": "yaml"}, resp: pods, expect: []runtime.Object{first, second}}, @@ -301,7 +380,7 @@ func TestGetObjectsFiltered(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{GenericPrinter: test.genericPrinter} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, test.resp)}, } @@ -342,7 +421,6 @@ func TestGetObjectIgnoreNotFound(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{GenericPrinter: true} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -395,7 +473,6 @@ func TestGetSortedObjects(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, } @@ -432,8 +509,8 @@ func verifyObjects(t *testing.T, expected, actual []runtime.Object) { switch obj.(type) { case runtime.Unstructured, *runtime.Unknown: actualObj, err = runtime.Decode( - api.Codecs.UniversalDecoder(), - []byte(runtime.EncodeOrDie(api.Codecs.LegacyCodec(), obj))) + scheme.Codecs.UniversalDecoder(), + []byte(runtime.EncodeOrDie(scheme.Codecs.LegacyCodec(), obj))) default: actualObj = obj err = nil @@ -454,7 +531,6 @@ func TestGetObjectsIdentifiedByFile(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{GenericPrinter: true} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])}, } @@ -464,7 +540,7 @@ func TestGetObjectsIdentifiedByFile(t *testing.T) { cmd := NewCmdGet(f, buf, errBuf) cmd.SetOutput(buf) - cmd.Flags().Set("filename", "../../../examples/storage/cassandra/cassandra-controller.yaml") + cmd.Flags().Set("filename", "../../../../examples/storage/cassandra/cassandra-controller.yaml") cmd.Run(cmd, []string{}) expected := []runtime.Object{&pods.Items[0]} @@ -481,7 +557,6 @@ func TestGetListObjects(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, } @@ -522,7 +597,6 @@ func TestGetAllListObjects(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, } @@ -552,7 +626,6 @@ func TestGetListComponentStatus(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, statuses)}, } @@ -594,7 +667,6 @@ func TestGetMixedGenericObjects(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{GenericPrinter: true} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.URL.Path { @@ -607,7 +679,7 @@ func TestGetMixedGenericObjects(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) errBuf := bytes.NewBuffer([]byte{}) @@ -622,7 +694,7 @@ func TestGetMixedGenericObjects(t *testing.T) { actual := tf.Printer.(*testPrinter).Objects fn := func(obj runtime.Object) unstructured.Unstructured { - data, err := runtime.Encode(api.Codecs.LegacyCodec(schema.GroupVersion{Version: "v1"}), obj) + data, err := runtime.Encode(scheme.Codecs.LegacyCodec(schema.GroupVersion{Version: "v1"}), obj) if err != nil { panic(err) } @@ -658,7 +730,6 @@ func TestGetMultipleTypeObjects(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.URL.Path { @@ -697,7 +768,6 @@ func TestGetMultipleTypeObjectsAsList(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{GenericPrinter: true} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.URL.Path { @@ -712,7 +782,7 @@ func TestGetMultipleTypeObjectsAsList(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() buf := bytes.NewBuffer([]byte{}) errBuf := bytes.NewBuffer([]byte{}) @@ -724,7 +794,7 @@ func TestGetMultipleTypeObjectsAsList(t *testing.T) { actual := tf.Printer.(*testPrinter).Objects fn := func(obj runtime.Object) unstructured.Unstructured { - data, err := runtime.Encode(api.Codecs.LegacyCodec(schema.GroupVersion{Version: "v1"}), obj) + data, err := runtime.Encode(scheme.Codecs.LegacyCodec(schema.GroupVersion{Version: "v1"}), obj) if err != nil { t.Fatal(err) } @@ -756,16 +826,15 @@ func TestGetMultipleTypeObjectsAsList(t *testing.T) { } } -func TestGetMultipleTypeObjectsWithSelector(t *testing.T) { +func TestGetMultipleTypeObjectsWithLabelSelector(t *testing.T) { pods, svc, _ := testData() f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { - if req.URL.Query().Get(metav1.LabelSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != "a=b" { + if req.URL.Query().Get(metav1.LabelSelectorQueryParam("v1")) != "a=b" { t.Fatalf("request url: %#v,and request: %#v", req.URL, req) } switch req.URL.Path { @@ -800,6 +869,49 @@ func TestGetMultipleTypeObjectsWithSelector(t *testing.T) { } } +func TestGetMultipleTypeObjectsWithFieldSelector(t *testing.T) { + pods, svc, _ := testData() + + f, tf, codec, _ := cmdtesting.NewAPIFactory() + tf.Printer = &testPrinter{} + tf.UnstructuredClient = &fake.RESTClient{ + NegotiatedSerializer: unstructuredSerializer, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + if req.URL.Query().Get(metav1.FieldSelectorQueryParam("v1")) != "a=b" { + t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) + } + switch req.URL.Path { + case "/namespaces/test/pods": + return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, pods)}, nil + case "/namespaces/test/services": + return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, svc)}, nil + default: + t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) + return nil, nil + } + }), + } + tf.Namespace = "test" + buf := bytes.NewBuffer([]byte{}) + errBuf := bytes.NewBuffer([]byte{}) + + cmd := NewCmdGet(f, buf, errBuf) + cmd.SetOutput(buf) + + cmd.Flags().Set("field-selector", "a=b") + cmd.Run(cmd, []string{"pods,services"}) + + expected, err := extractResourceList([]runtime.Object{pods, svc}) + if err != nil { + t.Fatal(err) + } + verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) + + if len(buf.String()) == 0 { + t.Errorf("unexpected empty output") + } +} + func TestGetMultipleTypeObjectsWithDirectReference(t *testing.T) { _, svc, _ := testData() node := &api.Node{ @@ -814,7 +926,6 @@ func TestGetMultipleTypeObjectsWithDirectReference(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.URL.Path { @@ -851,7 +962,6 @@ func TestGetByFormatForcesFlag(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{GenericPrinter: true} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, &pods.Items[0])}, } @@ -940,7 +1050,7 @@ func watchTestData() ([]api.Pod, []watch.Event) { return pods, events } -func TestWatchSelector(t *testing.T) { +func TestWatchLabelSelector(t *testing.T) { pods, events := watchTestData() f, tf, codec, _ := cmdtesting.NewAPIFactory() @@ -952,19 +1062,17 @@ func TestWatchSelector(t *testing.T) { }, } tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { - if req.URL.Query().Get(metav1.LabelSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != "a=b" { + if req.URL.Query().Get(metav1.LabelSelectorQueryParam("v1")) != "a=b" { t.Fatalf("request url: %#v,and request: %#v", req.URL, req) } switch req.URL.Path { case "/namespaces/test/pods": if req.URL.Query().Get("watch") == "true" { return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: watchBody(codec, events[2:])}, nil - } else { - return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, podList)}, nil } + return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, podList)}, nil default: t.Fatalf("request url: %#v,and request: %#v", req.URL, req) return nil, nil @@ -990,13 +1098,60 @@ func TestWatchSelector(t *testing.T) { } } +func TestWatchFieldSelector(t *testing.T) { + pods, events := watchTestData() + + f, tf, codec, _ := cmdtesting.NewAPIFactory() + tf.Printer = &testPrinter{} + podList := &api.PodList{ + Items: pods, + ListMeta: metav1.ListMeta{ + ResourceVersion: "10", + }, + } + tf.UnstructuredClient = &fake.RESTClient{ + NegotiatedSerializer: unstructuredSerializer, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + if req.URL.Query().Get(metav1.FieldSelectorQueryParam("v1")) != "a=b" { + t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) + } + switch req.URL.Path { + case "/namespaces/test/pods": + if req.URL.Query().Get("watch") == "true" { + return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: watchBody(codec, events[2:])}, nil + } + return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, podList)}, nil + default: + t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) + return nil, nil + } + }), + } + tf.Namespace = "test" + buf := bytes.NewBuffer([]byte{}) + errBuf := bytes.NewBuffer([]byte{}) + + cmd := NewCmdGet(f, buf, errBuf) + cmd.SetOutput(buf) + + cmd.Flags().Set("watch", "true") + cmd.Flags().Set("field-selector", "a=b") + cmd.Run(cmd, []string{"pods"}) + + expected := []runtime.Object{&pods[0], &pods[1], events[2].Object, events[3].Object} + verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) + + if len(buf.String()) == 0 { + t.Errorf("unexpected empty output") + } +} + func TestWatchResource(t *testing.T) { pods, events := watchTestData() f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.URL.Path { @@ -1038,7 +1193,6 @@ func TestWatchResourceIdentifiedByFile(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.URL.Path { @@ -1064,7 +1218,7 @@ func TestWatchResourceIdentifiedByFile(t *testing.T) { cmd.SetOutput(buf) cmd.Flags().Set("watch", "true") - cmd.Flags().Set("filename", "../../../examples/storage/cassandra/cassandra-controller.yaml") + cmd.Flags().Set("filename", "../../../../examples/storage/cassandra/cassandra-controller.yaml") cmd.Run(cmd, []string{}) expected := []runtime.Object{&pods[1], events[2].Object, events[3].Object} @@ -1081,7 +1235,6 @@ func TestWatchOnlyResource(t *testing.T) { f, tf, codec, _ := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.URL.Path { @@ -1129,16 +1282,14 @@ func TestWatchOnlyList(t *testing.T) { }, } tf.UnstructuredClient = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: unstructuredSerializer, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch req.URL.Path { case "/namespaces/test/pods": if req.URL.Query().Get("watch") == "true" { return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: watchBody(codec, events[2:])}, nil - } else { - return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, podList)}, nil } + return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, podList)}, nil default: t.Fatalf("request url: %#v,and request: %#v", req.URL, req) return nil, nil diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollingupdate.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollingupdate.go index 3f6ac6d04..3b97e6fd8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollingupdate.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollingupdate.go @@ -31,7 +31,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -211,14 +212,14 @@ func RunRollingUpdate(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args var ok bool // Handle filename input from stdin. The resource builder always returns an api.List // when creating resource(s) from a stream. - if list, ok := obj.(*api.List); ok { + if list, ok := obj.(*v1.List); ok { if len(list.Items) > 1 { return cmdutil.UsageErrorf(cmd, "%s specifies multiple items", filename) } if len(list.Items) == 0 { return cmdutil.UsageErrorf(cmd, "please make sure %s exists and is not empty", filename) } - obj = list.Items[0] + obj = list.Items[0].Object } newRc, ok = obj.(*api.ReplicationController) if !ok { @@ -239,7 +240,7 @@ func RunRollingUpdate(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args // than the old rc. This selector is the hash of the rc, with a suffix to provide uniqueness for // same-image updates. if len(image) != 0 { - codec := api.Codecs.LegacyCodec(v1.SchemeGroupVersion) + codec := legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion) keepOldName = len(args) == 1 newName := findNewName(args, oldRc) if newRc, err = kubectl.LoadExistingNextReplicationController(coreClient, cmdNamespace, newName); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/run.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/run.go index 5f0989317..87b5ba2a0 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/run.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/run.go @@ -31,7 +31,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" conditions "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/kubectl" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/run_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/run_test.go index 0cd8cf893..1e8790ac5 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/run_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/run_test.go @@ -35,12 +35,18 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/util/i18n" ) +// This init should be removed after switching this command and its tests to user external types. +func init() { + api.AddToScheme(scheme.Scheme) +} + func TestGetRestartPolicy(t *testing.T) { tests := []struct { input string @@ -163,7 +169,7 @@ func TestRunArgsFollowDashRules(t *testing.T) { for _, test := range tests { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { if req.URL.Path == "/namespaces/test/replicationcontrollers" { @@ -284,10 +290,10 @@ func TestGenerateService(t *testing.T) { for _, test := range tests { sawPOST := false f, tf, codec, ns := cmdtesting.NewAPIFactory() - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = defaultClientConfig() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -428,12 +434,11 @@ func TestRunValidations(t *testing.T) { f, tf, codec, ns := cmdtesting.NewTestFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Resp: &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, cmdtesting.NewInternalType("", "", ""))}, } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: "v1"}}} + tf.ClientConfig = defaultClientConfig() inBuf := bytes.NewReader([]byte{}) outBuf := bytes.NewBuffer([]byte{}) errBuf := bytes.NewBuffer([]byte{}) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/scale.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/scale.go index de3fef08f..f94e445af 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/scale.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/scale.go @@ -110,7 +110,7 @@ func RunScale(f cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []strin FilenameParam(enforceNamespace, options). ResourceTypeOrNameArgs(all, args...). Flatten(). - SelectorParam(selector). + LabelSelectorParam(selector). Do() err = r.Err() if resource.IsUsageError(err) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/BUILD index 45e134260..04a98ce07 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/BUILD @@ -19,7 +19,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/set", visibility = ["//build/visible_to:pkg_kubectl_cmd_set_CONSUMERS"], deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubectl/cmd/templates:go_default_library", @@ -28,6 +28,7 @@ go_library( "//pkg/kubectl/resource:go_default_library", "//pkg/kubectl/util/i18n:go_default_library", "//vendor/github.com/spf13/cobra: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/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -37,6 +38,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", ], ) @@ -58,20 +60,24 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/set", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", - "//pkg/apis/apps:go_default_library", - "//pkg/apis/batch:go_default_library", - "//pkg/apis/extensions:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/kubectl/cmd/testing:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", "//pkg/kubectl/resource:go_default_library", + "//pkg/kubectl/scheme:go_default_library", "//pkg/printers:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/k8s.io/api/apps/v1:go_default_library", + "//vendor/k8s.io/api/apps/v1beta1:go_default_library", + "//vendor/k8s.io/api/apps/v1beta2:go_default_library", + "//vendor/k8s.io/api/batch/v1:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/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/runtime/schema:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/rest/fake:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/helper.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/helper.go index eabbb974b..6f8bdfee8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/helper.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/helper.go @@ -21,19 +21,19 @@ import ( "io" "strings" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/strategicpatch" - "k8s.io/kubernetes/pkg/api" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" ) // selectContainers allows one or more containers to be matched against a string or wildcard -func selectContainers(containers []api.Container, spec string) ([]*api.Container, []*api.Container) { - out := []*api.Container{} - skipped := []*api.Container{} +func selectContainers(containers []v1.Container, spec string) ([]*v1.Container, []*v1.Container) { + out := []*v1.Container{} + skipped := []*v1.Container{} for i, c := range containers { if selectString(c.Name, spec) { out = append(out, &containers[i]) @@ -126,10 +126,14 @@ type patchFn func(*resource.Info) ([]byte, error) // the changes in the object. Encoder must be able to encode the info into the appropriate destination type. // This function returns whether the mutation function made any change in the original object. func CalculatePatch(patch *Patch, encoder runtime.Encoder, mutateFn patchFn) bool { - versionedEncoder := api.Codecs.EncoderForVersion(encoder, patch.Info.Mapping.GroupVersionKind.GroupVersion()) - - patch.Before, patch.Err = runtime.Encode(versionedEncoder, patch.Info.Object) + versioned, err := patch.Info.Mapping.ConvertToVersion(patch.Info.Object, patch.Info.Mapping.GroupVersionKind.GroupVersion()) + if err != nil { + patch.Err = err + return true + } + patch.Info.VersionedObject = versioned + patch.Before, patch.Err = runtime.Encode(encoder, patch.Info.VersionedObject) patch.After, patch.Err = mutateFn(patch.Info) if patch.Err != nil { return true @@ -138,14 +142,7 @@ func CalculatePatch(patch *Patch, encoder runtime.Encoder, mutateFn patchFn) boo return false } - // TODO: should be via New - versioned, err := patch.Info.Mapping.ConvertToVersion(patch.Info.Object, patch.Info.Mapping.GroupVersionKind.GroupVersion()) - if err != nil { - patch.Err = err - return true - } - - patch.Patch, patch.Err = strategicpatch.CreateTwoWayMergePatch(patch.Before, patch.After, versioned) + patch.Patch, patch.Err = strategicpatch.CreateTwoWayMergePatch(patch.Before, patch.After, patch.Info.VersionedObject) return true } @@ -162,17 +159,17 @@ func CalculatePatches(infos []*resource.Info, encoder runtime.Encoder, mutateFn return patches } -func findEnv(env []api.EnvVar, name string) (api.EnvVar, bool) { +func findEnv(env []v1.EnvVar, name string) (v1.EnvVar, bool) { for _, e := range env { if e.Name == name { return e, true } } - return api.EnvVar{}, false + return v1.EnvVar{}, false } -func updateEnv(existing []api.EnvVar, env []api.EnvVar, remove []string) []api.EnvVar { - out := []api.EnvVar{} +func updateEnv(existing []v1.EnvVar, env []v1.EnvVar, remove []string) []v1.EnvVar { + out := []v1.EnvVar{} covered := sets.NewString(remove...) for _, e := range existing { if covered.Has(e.Name) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_env.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_env.go index c4d2a309b..303ccc009 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_env.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_env.go @@ -25,10 +25,11 @@ import ( "strings" "github.com/spf13/cobra" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" envutil "k8s.io/kubernetes/pkg/kubectl/cmd/util/env" @@ -73,10 +74,10 @@ var ( kubectl set env rc --all ENV=prod # Import environment from a secret - kubectl set env --from=secret/mysecret dc/myapp + kubectl set env --from=secret/mysecret deployment/myapp # Import environment from a config map with a prefix - kubectl set env --from=configmap/myconfigmap --prefix=MYSQL_ dc/myapp + kubectl set env --from=configmap/myconfigmap --prefix=MYSQL_ deployment/myapp # Remove the environment variable ENV from container 'c1' in all deployment configs kubectl set env deployments --all --containers="c1" ENV- @@ -86,7 +87,7 @@ var ( kubectl set env -f deploy.json ENV- # Set some of the local shell environment into a deployment config on the server - env | grep RAILS_ | kubectl set env -e - dc/registry`) + env | grep RAILS_ | kubectl set env -e - deployment/registry`) ) type EnvOptions struct { @@ -115,14 +116,13 @@ type EnvOptions struct { Prefix string Mapper meta.RESTMapper - Typer runtime.ObjectTyper Builder *resource.Builder Infos []*resource.Info Encoder runtime.Encoder Cmd *cobra.Command - UpdatePodSpecForObject func(obj runtime.Object, fn func(*api.PodSpec) error) (bool, error) + UpdatePodSpecForObject func(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error) PrintObject func(cmd *cobra.Command, isLocal bool, mapper meta.RESTMapper, obj runtime.Object, out io.Writer) error } @@ -152,7 +152,7 @@ func NewCmdEnv(f cmdutil.Factory, in io.Reader, out, errout io.Writer) *cobra.Co cmd.Flags().BoolVar(&options.List, "list", options.List, "If true, display the environment and any changes in the standard format. this flag will removed when we have kubectl view env.") cmd.Flags().BoolVar(&options.Resolve, "resolve", options.Resolve, "If true, show secret or configmap references when listing variables") cmd.Flags().StringVarP(&options.Selector, "selector", "l", options.Selector, "Selector (label query) to filter on") - cmd.Flags().BoolVar(&options.Local, "local", false, "If true, set image will NOT contact api-server but run locally.") + cmd.Flags().BoolVar(&options.Local, "local", false, "If true, set env will NOT contact api-server but run locally.") cmd.Flags().BoolVar(&options.All, "all", options.All, "If true, select all resources in the namespace of the specified resource types") cmd.Flags().BoolVar(&options.Overwrite, "overwrite", true, "If true, allow environment to be overwritten, otherwise reject updates that overwrite existing environment.") @@ -162,7 +162,7 @@ func NewCmdEnv(f cmdutil.Factory, in io.Reader, out, errout io.Writer) *cobra.Co return cmd } -func validateNoOverwrites(existing []api.EnvVar, env []api.EnvVar) error { +func validateNoOverwrites(existing []v1.EnvVar, env []v1.EnvVar) error { for _, e := range env { if current, exists := findEnv(existing, e.Name); exists && current.Value != e.Value { return fmt.Errorf("'%s' already has a value (%s), and --overwrite is false", current.Name, current.Value) @@ -185,7 +185,7 @@ func (o *EnvOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []stri return cmdutil.UsageErrorf(cmd, "one or more resources must be specified as or /") } - o.Mapper, o.Typer = f.Object() + o.Mapper, _ = f.Object() o.UpdatePodSpecForObject = f.UpdatePodSpecForObject o.Encoder = f.JSONEncoder() o.ContainerSelector = cmdutil.GetFlagString(cmd, "containers") @@ -215,9 +215,13 @@ func (o *EnvOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []stri // RunEnv contains all the necessary functionality for the OpenShift cli env command func (o *EnvOptions) RunEnv(f cmdutil.Factory) error { - kubeClient, err := f.ClientSet() - if err != nil { - return err + var kubeClient *kubernetes.Clientset + if o.List { + client, err := f.KubernetesClientSet() + if err != nil { + return err + } + kubeClient = client } cmdNamespace, enforceNamespace, err := f.DefaultNamespace() @@ -237,13 +241,13 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error { FilenameParam(enforceNamespace, &o.FilenameOptions). Flatten() - if !o.Local { + if o.Local { + b = b.Local(f.ClientForMapping) + } else { b = b. - SelectorParam(o.Selector). + LabelSelectorParam(o.Selector). ResourceTypeOrNameArgs(o.All, o.From). Latest() - } else { - b = b.Local(f.ClientForMapping) } infos, err := b.Do().Infos() @@ -252,14 +256,18 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error { } for _, info := range infos { - switch from := info.Object.(type) { - case *api.Secret: + versionedObject, err := info.Mapping.ConvertToVersion(info.Object, info.Mapping.GroupVersionKind.GroupVersion()) + if err != nil { + return err + } + switch from := versionedObject.(type) { + case *v1.Secret: for key := range from.Data { - envVar := api.EnvVar{ + envVar := v1.EnvVar{ Name: keyToEnvName(key), - ValueFrom: &api.EnvVarSource{ - SecretKeyRef: &api.SecretKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + ValueFrom: &v1.EnvVarSource{ + SecretKeyRef: &v1.SecretKeySelector{ + LocalObjectReference: v1.LocalObjectReference{ Name: from.Name, }, Key: key, @@ -268,13 +276,13 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error { } env = append(env, envVar) } - case *api.ConfigMap: + case *v1.ConfigMap: for key := range from.Data { - envVar := api.EnvVar{ + envVar := v1.EnvVar{ Name: keyToEnvName(key), - ValueFrom: &api.EnvVarSource{ - ConfigMapKeyRef: &api.ConfigMapKeySelector{ - LocalObjectReference: api.LocalObjectReference{ + ValueFrom: &v1.EnvVarSource{ + ConfigMapKeyRef: &v1.ConfigMapKeySelector{ + LocalObjectReference: v1.LocalObjectReference{ Name: from.Name, }, Key: key, @@ -301,13 +309,13 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error { FilenameParam(enforceNamespace, &o.FilenameOptions). Flatten() - if !o.Local { + if o.Local { + b = b.Local(f.ClientForMapping) + } else { b = b. - SelectorParam(o.Selector). + LabelSelectorParam(o.Selector). ResourceTypeOrNameArgs(o.All, o.Resources...). Latest() - } else { - b = b.Local(f.ClientForMapping) } o.Infos, err = b.Do().Infos() @@ -315,7 +323,7 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error { return err } patches := CalculatePatches(o.Infos, o.Encoder, func(info *resource.Info) ([]byte, error) { - _, err := f.UpdatePodSpecForObject(info.Object, func(spec *api.PodSpec) error { + _, err := o.UpdatePodSpecForObject(info.VersionedObject, func(spec *v1.PodSpec) error { resolutionErrorsEncountered := false containers, _ := selectContainers(spec.Containers, o.ContainerSelector) if len(containers) == 0 { @@ -381,9 +389,7 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error { }) if err == nil { - // TODO: switch UpdatePodSpecForObject to work on v1.PodSpec, use info.VersionedObject, and avoid conversion completely - versionedEncoder := api.Codecs.EncoderForVersion(o.Encoder, info.Mapping.GroupVersionKind.GroupVersion()) - return runtime.Encode(versionedEncoder, info.Object) + return runtime.Encode(o.Encoder, info.VersionedObject) } return nil, err }) @@ -407,7 +413,7 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error { } if o.PrintObject != nil && (o.Local || o.DryRun) { - if err := o.PrintObject(o.Cmd, o.Local, o.Mapper, info.Object, o.Out); err != nil { + if err := o.PrintObject(o.Cmd, o.Local, o.Mapper, patch.Info.VersionedObject, o.Out); err != nil { return err } continue @@ -427,7 +433,14 @@ func (o *EnvOptions) RunEnv(f cmdutil.Factory) error { } if len(o.Output) > 0 { - return o.PrintObject(o.Cmd, o.Local, o.Mapper, obj, o.Out) + versionedObject, err := patch.Info.Mapping.ConvertToVersion(obj, patch.Info.Mapping.GroupVersionKind.GroupVersion()) + if err != nil { + return err + } + if err := o.PrintObject(o.Cmd, o.Local, o.Mapper, versionedObject, o.Out); err != nil { + return err + } + continue } cmdutil.PrintSuccess(o.Mapper, o.ShortOutput, o.Out, info.Mapping.Resource, info.Name, false, "env updated") diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_env_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_env_test.go index 129a5c98c..2c4d1455b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_env_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_env_test.go @@ -18,24 +18,37 @@ package set import ( "bytes" + "fmt" + "io/ioutil" "net/http" + "os" + "path" "strings" "testing" + "github.com/stretchr/testify/assert" + appsv1 "k8s.io/api/apps/v1" + appsv1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta2 "k8s.io/api/apps/v1beta2" + batchv1 "k8s.io/api/batch/v1" + "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/testapi" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/printers" - "os" ) func TestSetEnvLocal(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: ""}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) @@ -43,7 +56,7 @@ func TestSetEnvLocal(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: ""}}} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdEnv(f, os.Stdin, buf, buf) @@ -68,3 +81,398 @@ func TestSetEnvLocal(t *testing.T) { t.Errorf("did not set env: %s", buf.String()) } } + +func TestSetMultiResourcesEnvLocal(t *testing.T) { + f, tf, codec, ns := cmdtesting.NewAPIFactory() + tf.Client = &fake.RESTClient{ + GroupVersion: schema.GroupVersion{Version: ""}, + NegotiatedSerializer: ns, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) + return nil, nil + }), + } + tf.Namespace = "test" + tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: ""}}} + + buf := bytes.NewBuffer([]byte{}) + cmd := NewCmdEnv(f, os.Stdin, buf, buf) + cmd.SetOutput(buf) + cmd.Flags().Set("output", "name") + cmd.Flags().Set("local", "true") + mapper, typer := f.Object() + tf.Printer = &printers.NamePrinter{Decoders: []runtime.Decoder{codec}, Typer: typer, Mapper: mapper} + + opts := EnvOptions{FilenameOptions: resource.FilenameOptions{ + Filenames: []string{"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"}}, + Out: buf, + Local: true} + err := opts.Complete(f, cmd, []string{"env=prod"}) + if err == nil { + err = opts.RunEnv(f) + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + expectedOut := "replicationcontrollers/first-rc\nreplicationcontrollers/second-rc\n" + if buf.String() != expectedOut { + t.Errorf("expected out:\n%s\nbut got:\n%s", expectedOut, buf.String()) + } +} + +func TestSetEnvRemote(t *testing.T) { + inputs := []struct { + object runtime.Object + apiPrefix, apiGroup, apiVersion string + testAPIGroup string + args []string + }{ + { + object: &extensionsv1beta1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: extensionsv1beta1.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"replicaset", "nginx", "env=prod"}, + }, + { + object: &appsv1beta2.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"replicaset", "nginx", "env=prod"}, + }, + { + object: &appsv1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"replicaset", "nginx", "env=prod"}, + }, + { + object: &extensionsv1beta1.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: extensionsv1beta1.DaemonSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"daemonset", "nginx", "env=prod"}, + }, + { + object: &appsv1beta2.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.DaemonSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"daemonset", "nginx", "env=prod"}, + }, + { + object: &appsv1.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.DaemonSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"daemonset", "nginx", "env=prod"}, + }, + { + object: &extensionsv1beta1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: extensionsv1beta1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"deployment", "nginx", "env=prod"}, + }, + { + object: &appsv1beta1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta1", + args: []string{"deployment", "nginx", "env=prod"}, + }, + { + object: &appsv1beta2.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"deployment", "nginx", "env=prod"}, + }, + { + object: &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"deployment", "nginx", "env=prod"}, + }, + { + object: &appsv1beta1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta1.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta1", + args: []string{"statefulset", "nginx", "env=prod"}, + }, + { + object: &appsv1beta2.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"statefulset", "nginx", "env=prod"}, + }, + { + object: &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"statefulset", "nginx", "env=prod"}, + }, + { + object: &batchv1.Job{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: batchv1.JobSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "batch", + apiPrefix: "/apis", apiGroup: "batch", apiVersion: "v1", + args: []string{"job", "nginx", "env=prod"}, + }, + { + object: &v1.ReplicationController{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: v1.ReplicationControllerSpec{ + Template: &v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "", + apiPrefix: "/api", apiGroup: "", apiVersion: "v1", + args: []string{"replicationcontroller", "nginx", "env=prod"}, + }, + } + for _, input := range inputs { + groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion} + testapi.Default = testapi.Groups[input.testAPIGroup] + f, tf, _, ns := cmdtesting.NewAPIFactory() + codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion) + tf.Printer = printers.NewVersionedPrinter(&printers.YAMLPrinter{}, testapi.Default.Converter(), *testapi.Default.GroupVersion()) + tf.Namespace = "test" + tf.CategoryExpander = resource.LegacyCategoryExpander + tf.Client = &fake.RESTClient{ + GroupVersion: groupVersion, + NegotiatedSerializer: ns, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + resourcePath := testapi.Default.ResourcePath(input.args[0]+"s", tf.Namespace, input.args[1]) + switch p, m := req.URL.Path, req.Method; { + case p == resourcePath && m == http.MethodGet: + return &http.Response{StatusCode: http.StatusOK, Header: defaultHeader(), Body: objBody(codec, input.object)}, nil + case p == resourcePath && m == http.MethodPatch: + stream, err := req.GetBody() + if err != nil { + return nil, err + } + bytes, err := ioutil.ReadAll(stream) + if err != nil { + return nil, err + } + assert.Contains(t, string(bytes), `"value":`+`"`+"prod"+`"`, fmt.Sprintf("env not updated for %#v", input.object)) + return &http.Response{StatusCode: http.StatusOK, Header: defaultHeader(), Body: objBody(codec, input.object)}, nil + default: + t.Errorf("%s: unexpected request: %s %#v\n%#v", "image", req.Method, req.URL, req) + return nil, fmt.Errorf("unexpected request") + } + }), + VersionedAPIPath: path.Join(input.apiPrefix, testapi.Default.GroupVersion().String()), + } + out := new(bytes.Buffer) + cmd := NewCmdEnv(f, out, out, out) + cmd.SetOutput(out) + cmd.Flags().Set("output", "yaml") + opts := EnvOptions{ + Out: out, + Local: false} + err := opts.Complete(f, cmd, input.args) + assert.NoError(t, err) + err = opts.RunEnv(f) + assert.NoError(t, err) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_image.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_image.go index d366d7404..bad1c7ac2 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_image.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_image.go @@ -21,11 +21,11 @@ import ( "io" "github.com/spf13/cobra" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" @@ -38,9 +38,9 @@ type ImageOptions struct { resource.FilenameOptions Mapper meta.RESTMapper - Typer runtime.ObjectTyper Infos []*resource.Info Encoder runtime.Encoder + Decoder runtime.Decoder Selector string Out io.Writer Err io.Writer @@ -55,7 +55,7 @@ type ImageOptions struct { ResolveImage func(in string) (string, error) PrintObject func(cmd *cobra.Command, isLocal bool, mapper meta.RESTMapper, obj runtime.Object, out io.Writer) error - UpdatePodSpecForObject func(obj runtime.Object, fn func(*api.PodSpec) error) (bool, error) + UpdatePodSpecForObject func(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error) Resources []string ContainerImages map[string]string } @@ -115,9 +115,10 @@ func NewCmdImage(f cmdutil.Factory, out, err io.Writer) *cobra.Command { } func (o *ImageOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { - o.Mapper, o.Typer = f.Object() + o.Mapper, _ = f.Object() o.UpdatePodSpecForObject = f.UpdatePodSpecForObject o.Encoder = f.JSONEncoder() + o.Decoder = f.Decoder(true) o.ShortOutput = cmdutil.GetFlagString(cmd, "output") == "name" o.Record = cmdutil.GetRecordFlag(cmd) o.ChangeCause = f.Command(cmd, false) @@ -146,12 +147,7 @@ func (o *ImageOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st IncludeUninitialized(includeUninitialized). Flatten() - if !o.Local { - builder = builder. - SelectorParam(o.Selector). - ResourceTypeOrNameArgs(o.All, o.Resources...). - Latest() - } else { + if o.Local { // if a --local flag was provided, and a resource was specified in the form // /, fail immediately as --local cannot query the api server // for the specified resource. @@ -160,6 +156,11 @@ func (o *ImageOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st } builder = builder.Local(f.ClientForMapping) + } else { + builder = builder. + LabelSelectorParam(o.Selector). + ResourceTypeOrNameArgs(o.All, o.Resources...). + Latest() } o.Infos, err = builder.Do().Infos() @@ -188,7 +189,7 @@ func (o *ImageOptions) Run() error { patches := CalculatePatches(o.Infos, o.Encoder, func(info *resource.Info) ([]byte, error) { transformed := false - _, err := o.UpdatePodSpecForObject(info.Object, func(spec *api.PodSpec) error { + _, err := o.UpdatePodSpecForObject(info.VersionedObject, func(spec *v1.PodSpec) error { for name, image := range o.ContainerImages { var ( containerFound bool @@ -225,9 +226,7 @@ func (o *ImageOptions) Run() error { return nil }) if transformed && err == nil { - // TODO: switch UpdatePodSpecForObject to work on v1.PodSpec, use info.VersionedObject, and avoid conversion completely - versionedEncoder := api.Codecs.EncoderForVersion(o.Encoder, info.Mapping.GroupVersionKind.GroupVersion()) - return runtime.Encode(versionedEncoder, info.Object) + return runtime.Encode(o.Encoder, info.VersionedObject) } return nil, err }) @@ -245,7 +244,7 @@ func (o *ImageOptions) Run() error { } if o.PrintObject != nil && (o.Local || o.DryRun) { - if err := o.PrintObject(o.Cmd, o.Local, o.Mapper, info.Object, o.Out); err != nil { + if err := o.PrintObject(o.Cmd, o.Local, o.Mapper, patch.Info.VersionedObject, o.Out); err != nil { return err } continue @@ -271,7 +270,11 @@ func (o *ImageOptions) Run() error { info.Refresh(obj, true) if len(o.Output) > 0 { - if err := o.PrintObject(o.Cmd, o.Local, o.Mapper, obj, o.Out); err != nil { + versionedObject, err := patch.Info.Mapping.ConvertToVersion(obj, patch.Info.Mapping.GroupVersionKind.GroupVersion()) + if err != nil { + return err + } + if err := o.PrintObject(o.Cmd, o.Local, o.Mapper, versionedObject, o.Out); err != nil { return err } continue diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_image_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_image_test.go index 0faf88eb6..144d92184 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_image_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_image_test.go @@ -18,23 +18,36 @@ package set import ( "bytes" + "fmt" + "io/ioutil" "net/http" + "path" "strings" "testing" + "github.com/stretchr/testify/assert" + appsv1 "k8s.io/api/apps/v1" + appsv1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta2 "k8s.io/api/apps/v1beta2" + batchv1 "k8s.io/api/batch/v1" + "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/testapi" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/printers" ) func TestImageLocal(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: ""}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) @@ -42,7 +55,7 @@ func TestImageLocal(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: ""}}} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdImage(f, buf, buf) @@ -133,3 +146,400 @@ func TestSetImageValidation(t *testing.T) { } } } + +func TestSetMultiResourcesImageLocal(t *testing.T) { + f, tf, codec, ns := cmdtesting.NewAPIFactory() + tf.Client = &fake.RESTClient{ + GroupVersion: schema.GroupVersion{Version: ""}, + NegotiatedSerializer: ns, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) + return nil, nil + }), + } + tf.Namespace = "test" + tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: ""}}} + + buf := bytes.NewBuffer([]byte{}) + cmd := NewCmdImage(f, buf, buf) + cmd.SetOutput(buf) + cmd.Flags().Set("output", "name") + cmd.Flags().Set("local", "true") + mapper, typer := f.Object() + tf.Printer = &printers.NamePrinter{Decoders: []runtime.Decoder{codec}, Typer: typer, Mapper: mapper} + + opts := ImageOptions{FilenameOptions: resource.FilenameOptions{ + Filenames: []string{"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"}}, + Out: buf, + Local: true} + err := opts.Complete(f, cmd, []string{"*=thingy"}) + if err == nil { + err = opts.Validate() + } + if err == nil { + err = opts.Run() + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + expectedOut := "replicationcontrollers/first-rc\nreplicationcontrollers/second-rc\n" + if buf.String() != expectedOut { + t.Errorf("expected out:\n%s\nbut got:\n%s", expectedOut, buf.String()) + } +} + +func TestSetImageRemote(t *testing.T) { + inputs := []struct { + object runtime.Object + apiPrefix, apiGroup, apiVersion string + testAPIGroup string + args []string + }{ + { + object: &extensionsv1beta1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: extensionsv1beta1.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"replicaset", "nginx", "*=thingy"}, + }, + { + object: &appsv1beta2.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"replicaset", "nginx", "*=thingy"}, + }, + { + object: &appsv1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"replicaset", "nginx", "*=thingy"}, + }, + { + object: &extensionsv1beta1.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: extensionsv1beta1.DaemonSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"daemonset", "nginx", "*=thingy"}, + }, + { + object: &appsv1beta2.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.DaemonSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"daemonset", "nginx", "*=thingy"}, + }, + { + object: &appsv1.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.DaemonSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"daemonset", "nginx", "*=thingy"}, + }, + { + object: &extensionsv1beta1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: extensionsv1beta1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"deployment", "nginx", "*=thingy"}, + }, + { + object: &appsv1beta1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta1", + args: []string{"deployment", "nginx", "*=thingy"}, + }, + { + object: &appsv1beta2.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"deployment", "nginx", "*=thingy"}, + }, + { + object: &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"deployment", "nginx", "*=thingy"}, + }, + { + object: &appsv1beta1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta1.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta1", + args: []string{"statefulset", "nginx", "*=thingy"}, + }, + { + object: &appsv1beta2.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"statefulset", "nginx", "*=thingy"}, + }, + { + object: &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"statefulset", "nginx", "*=thingy"}, + }, + { + object: &batchv1.Job{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: batchv1.JobSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "batch", + apiPrefix: "/apis", apiGroup: "batch", apiVersion: "v1", + args: []string{"job", "nginx", "*=thingy"}, + }, + { + object: &v1.ReplicationController{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: v1.ReplicationControllerSpec{ + Template: &v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "", + apiPrefix: "/api", apiGroup: "", apiVersion: "v1", + args: []string{"replicationcontroller", "nginx", "*=thingy"}, + }, + } + for _, input := range inputs { + groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion} + testapi.Default = testapi.Groups[input.testAPIGroup] + f, tf, _, ns := cmdtesting.NewAPIFactory() + codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion) + tf.Printer = printers.NewVersionedPrinter(&printers.YAMLPrinter{}, testapi.Default.Converter(), *testapi.Default.GroupVersion()) + tf.Namespace = "test" + tf.CategoryExpander = resource.LegacyCategoryExpander + tf.Client = &fake.RESTClient{ + GroupVersion: groupVersion, + NegotiatedSerializer: ns, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + resourcePath := testapi.Default.ResourcePath(input.args[0]+"s", tf.Namespace, input.args[1]) + switch p, m := req.URL.Path, req.Method; { + case p == resourcePath && m == http.MethodGet: + return &http.Response{StatusCode: http.StatusOK, Header: defaultHeader(), Body: objBody(codec, input.object)}, nil + case p == resourcePath && m == http.MethodPatch: + stream, err := req.GetBody() + if err != nil { + return nil, err + } + bytes, err := ioutil.ReadAll(stream) + if err != nil { + return nil, err + } + assert.Contains(t, string(bytes), `"image":`+`"`+"thingy"+`"`, fmt.Sprintf("image not updated for %#v", input.object)) + return &http.Response{StatusCode: http.StatusOK, Header: defaultHeader(), Body: objBody(codec, input.object)}, nil + default: + t.Errorf("%s: unexpected request: %s %#v\n%#v", "image", req.Method, req.URL, req) + return nil, fmt.Errorf("unexpected request") + } + }), + VersionedAPIPath: path.Join(input.apiPrefix, testapi.Default.GroupVersion().String()), + } + out := new(bytes.Buffer) + cmd := NewCmdImage(f, out, out) + cmd.SetOutput(out) + cmd.Flags().Set("output", "yaml") + opts := ImageOptions{ + Out: out, + Local: false} + err := opts.Complete(f, cmd, input.args) + assert.NoError(t, err) + err = opts.Run() + assert.NoError(t, err) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_resources.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_resources.go index 7ee0f99ec..5b6a1ac60 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_resources.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_resources.go @@ -22,8 +22,8 @@ import ( "strings" "github.com/spf13/cobra" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/kubernetes/pkg/api" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" @@ -63,7 +63,6 @@ type ResourcesOptions struct { resource.FilenameOptions Mapper meta.RESTMapper - Typer runtime.ObjectTyper Infos []*resource.Info Encoder runtime.Encoder Out io.Writer @@ -79,10 +78,10 @@ type ResourcesOptions struct { Limits string Requests string - ResourceRequirements api.ResourceRequirements + ResourceRequirements v1.ResourceRequirements PrintObject func(cmd *cobra.Command, isLocal bool, mapper meta.RESTMapper, obj runtime.Object, out io.Writer) error - UpdatePodSpecForObject func(obj runtime.Object, fn func(*api.PodSpec) error) (bool, error) + UpdatePodSpecForObject func(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error) Resources []string } @@ -127,7 +126,7 @@ func NewCmdResources(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra. } func (o *ResourcesOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []string) error { - o.Mapper, o.Typer = f.Object() + o.Mapper, _ = f.Object() o.UpdatePodSpecForObject = f.UpdatePodSpecForObject o.Encoder = f.JSONEncoder() o.Output = cmdutil.GetFlagString(cmd, "output") @@ -150,12 +149,7 @@ func (o *ResourcesOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args IncludeUninitialized(includeUninitialized). Flatten() - if !o.Local { - builder = builder. - SelectorParam(o.Selector). - ResourceTypeOrNameArgs(o.All, args...). - Latest() - } else { + if o.Local { // if a --local flag was provided, and a resource was specified in the form // /, fail immediately as --local cannot query the api server // for the specified resource. @@ -164,6 +158,11 @@ func (o *ResourcesOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args } builder = builder.Local(f.ClientForMapping) + } else { + builder = builder. + LabelSelectorParam(o.Selector). + ResourceTypeOrNameArgs(o.All, args...). + Latest() } o.Infos, err = builder.Do().Infos() @@ -179,7 +178,7 @@ func (o *ResourcesOptions) Validate() error { return fmt.Errorf("you must specify an update to requests or limits (in the form of --requests/--limits)") } - o.ResourceRequirements, err = kubectl.HandleResourceRequirements(map[string]string{"limits": o.Limits, "requests": o.Requests}) + o.ResourceRequirements, err = kubectl.HandleResourceRequirementsV1(map[string]string{"limits": o.Limits, "requests": o.Requests}) if err != nil { return err } @@ -191,19 +190,19 @@ func (o *ResourcesOptions) Run() error { allErrs := []error{} patches := CalculatePatches(o.Infos, o.Encoder, func(info *resource.Info) ([]byte, error) { transformed := false - _, err := o.UpdatePodSpecForObject(info.Object, func(spec *api.PodSpec) error { + _, err := o.UpdatePodSpecForObject(info.VersionedObject, func(spec *v1.PodSpec) error { containers, _ := selectContainers(spec.Containers, o.ContainerSelector) if len(containers) != 0 { for i := range containers { if len(o.Limits) != 0 && len(containers[i].Resources.Limits) == 0 { - containers[i].Resources.Limits = make(api.ResourceList) + containers[i].Resources.Limits = make(v1.ResourceList) } for key, value := range o.ResourceRequirements.Limits { containers[i].Resources.Limits[key] = value } if len(o.Requests) != 0 && len(containers[i].Resources.Requests) == 0 { - containers[i].Resources.Requests = make(api.ResourceList) + containers[i].Resources.Requests = make(v1.ResourceList) } for key, value := range o.ResourceRequirements.Requests { containers[i].Resources.Requests[key] = value @@ -216,9 +215,7 @@ func (o *ResourcesOptions) Run() error { return nil }) if transformed && err == nil { - // TODO: switch UpdatePodSpecForObject to work on v1.PodSpec, use info.VersionedObject, and avoid conversion completely - versionedEncoder := api.Codecs.EncoderForVersion(o.Encoder, info.Mapping.GroupVersionKind.GroupVersion()) - return runtime.Encode(versionedEncoder, info.Object) + return runtime.Encode(o.Encoder, info.VersionedObject) } return nil, err }) @@ -237,7 +234,10 @@ func (o *ResourcesOptions) Run() error { } if o.Local || cmdutil.GetDryRunFlag(o.Cmd) { - return o.PrintObject(o.Cmd, o.Local, o.Mapper, info.Object, o.Out) + if err := o.PrintObject(o.Cmd, o.Local, o.Mapper, patch.Info.VersionedObject, o.Out); err != nil { + return err + } + continue } obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) @@ -259,7 +259,14 @@ func (o *ResourcesOptions) Run() error { shortOutput := o.Output == "name" if len(o.Output) > 0 && !shortOutput { - return o.PrintObject(o.Cmd, o.Local, o.Mapper, info.Object, o.Out) + versionedObject, err := patch.Info.Mapping.ConvertToVersion(obj, patch.Info.Mapping.GroupVersionKind.GroupVersion()) + if err != nil { + return err + } + if err := o.PrintObject(o.Cmd, o.Local, o.Mapper, versionedObject, o.Out); err != nil { + return err + } + continue } cmdutil.PrintSuccess(o.Mapper, shortOutput, o.Out, info.Mapping.Resource, info.Name, false, "resource requirements updated") } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_resources_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_resources_test.go index 16bd5300b..dcfd89bd4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_resources_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_resources_test.go @@ -18,23 +18,36 @@ package set import ( "bytes" + "fmt" + "io/ioutil" "net/http" + "path" "strings" "testing" + "github.com/stretchr/testify/assert" + appsv1 "k8s.io/api/apps/v1" + appsv1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta2 "k8s.io/api/apps/v1beta2" + batchv1 "k8s.io/api/batch/v1" + "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/testapi" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/printers" ) func TestResourcesLocal(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: ""}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) @@ -42,7 +55,7 @@ func TestResourcesLocal(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: ""}}} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdResources(f, buf, buf) @@ -74,3 +87,411 @@ func TestResourcesLocal(t *testing.T) { t.Errorf("did not set resources: %s", buf.String()) } } + +func TestSetMultiResourcesLimitsLocal(t *testing.T) { + f, tf, codec, ns := cmdtesting.NewAPIFactory() + tf.Client = &fake.RESTClient{ + GroupVersion: schema.GroupVersion{Version: ""}, + NegotiatedSerializer: ns, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) + return nil, nil + }), + } + tf.Namespace = "test" + tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: ""}}} + + buf := bytes.NewBuffer([]byte{}) + cmd := NewCmdResources(f, buf, buf) + cmd.SetOutput(buf) + cmd.Flags().Set("output", "name") + cmd.Flags().Set("local", "true") + mapper, typer := f.Object() + tf.Printer = &printers.NamePrinter{Decoders: []runtime.Decoder{codec}, Typer: typer, Mapper: mapper} + + opts := ResourcesOptions{FilenameOptions: resource.FilenameOptions{ + Filenames: []string{"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"}}, + Out: buf, + Local: true, + Limits: "cpu=200m,memory=512Mi", + Requests: "cpu=200m,memory=512Mi", + ContainerSelector: "*"} + + err := opts.Complete(f, cmd, []string{}) + if err == nil { + err = opts.Validate() + } + if err == nil { + err = opts.Run() + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + expectedOut := "replicationcontrollers/first-rc\nreplicationcontrollers/second-rc\n" + if buf.String() != expectedOut { + t.Errorf("expected out:\n%s\nbut got:\n%s", expectedOut, buf.String()) + } +} + +func TestSetResourcesRemote(t *testing.T) { + inputs := []struct { + object runtime.Object + apiPrefix, apiGroup, apiVersion string + testAPIGroup string + args []string + }{ + { + object: &extensionsv1beta1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: extensionsv1beta1.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"replicaset", "nginx"}, + }, + { + object: &appsv1beta2.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"replicaset", "nginx"}, + }, + { + object: &appsv1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"replicaset", "nginx"}, + }, + { + object: &extensionsv1beta1.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: extensionsv1beta1.DaemonSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"daemonset", "nginx"}, + }, + { + object: &appsv1beta2.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.DaemonSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"daemonset", "nginx"}, + }, + { + object: &appsv1.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.DaemonSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"daemonset", "nginx"}, + }, + { + object: &extensionsv1beta1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: extensionsv1beta1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"deployment", "nginx"}, + }, + { + object: &appsv1beta1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta1", + args: []string{"deployment", "nginx"}, + }, + { + object: &appsv1beta2.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"deployment", "nginx"}, + }, + { + object: &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"deployment", "nginx"}, + }, + { + object: &appsv1beta1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta1.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta1", + args: []string{"statefulset", "nginx"}, + }, + { + object: &appsv1beta2.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"statefulset", "nginx"}, + }, + { + object: &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"statefulset", "nginx"}, + }, + { + object: &batchv1.Job{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: batchv1.JobSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "batch", + apiPrefix: "/apis", apiGroup: "batch", apiVersion: "v1", + args: []string{"job", "nginx"}, + }, + { + object: &v1.ReplicationController{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: v1.ReplicationControllerSpec{ + Template: &v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "", + apiPrefix: "/api", apiGroup: "", apiVersion: "v1", + args: []string{"replicationcontroller", "nginx"}, + }, + } + for _, input := range inputs { + groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion} + testapi.Default = testapi.Groups[input.testAPIGroup] + f, tf, _, ns := cmdtesting.NewAPIFactory() + codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion) + mapper, typer := f.Object() + tf.Printer = &printers.NamePrinter{Decoders: []runtime.Decoder{testapi.Default.Codec()}, Typer: typer, Mapper: mapper} + tf.Namespace = "test" + tf.CategoryExpander = resource.LegacyCategoryExpander + tf.Client = &fake.RESTClient{ + GroupVersion: groupVersion, + NegotiatedSerializer: ns, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + resourcePath := testapi.Default.ResourcePath(input.args[0]+"s", tf.Namespace, input.args[1]) + switch p, m := req.URL.Path, req.Method; { + case p == resourcePath && m == http.MethodGet: + return &http.Response{StatusCode: http.StatusOK, Header: defaultHeader(), Body: objBody(codec, input.object)}, nil + case p == resourcePath && m == http.MethodPatch: + stream, err := req.GetBody() + if err != nil { + return nil, err + } + bytes, err := ioutil.ReadAll(stream) + if err != nil { + return nil, err + } + assert.Contains(t, string(bytes), "200m", fmt.Sprintf("resources not updated for %#v", input.object)) + return &http.Response{StatusCode: http.StatusOK, Header: defaultHeader(), Body: objBody(codec, input.object)}, nil + default: + t.Errorf("%s: unexpected request: %s %#v\n%#v", "resources", req.Method, req.URL, req) + return nil, fmt.Errorf("unexpected request") + } + }), + VersionedAPIPath: path.Join(input.apiPrefix, testapi.Default.GroupVersion().String()), + } + buf := new(bytes.Buffer) + cmd := NewCmdResources(f, buf, buf) + cmd.SetOutput(buf) + cmd.Flags().Set("output", "yaml") + opts := ResourcesOptions{ + Out: buf, + Local: true, + Limits: "cpu=200m,memory=512Mi", + ContainerSelector: "*"} + err := opts.Complete(f, cmd, input.args) + if err == nil { + err = opts.Validate() + } + if err == nil { + err = opts.Run() + } + assert.NoError(t, err) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_selector.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_selector.go index 343c80518..bebc824db 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_selector.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_selector.go @@ -21,13 +21,12 @@ import ( "io" "github.com/spf13/cobra" - + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" @@ -119,6 +118,7 @@ func (o *SelectorOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [ mapper, _ := f.Object() o.mapper = mapper o.encoder = f.JSONEncoder() + o.resources, o.selector, err = getResourcesAndSelector(args) if err != nil { return err @@ -132,11 +132,7 @@ func (o *SelectorOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [ IncludeUninitialized(includeUninitialized). Flatten() - if !o.local { - o.builder = o.builder. - ResourceTypeOrNameArgs(o.all, o.resources...). - Latest() - } else { + if o.local { // if a --local flag was provided, and a resource was specified in the form // /, fail immediately as --local cannot query the api server // for the specified resource. @@ -145,6 +141,10 @@ func (o *SelectorOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [ } o.builder = o.builder.Local(f.ClientForMapping) + } else { + o.builder = o.builder. + ResourceTypeOrNameArgs(o.all, o.resources...). + Latest() } o.PrintObject = func(obj runtime.Object) error { @@ -178,10 +178,15 @@ func (o *SelectorOptions) RunSelector() error { return r.Visit(func(info *resource.Info, err error) error { patch := &Patch{Info: info} CalculatePatch(patch, o.encoder, func(info *resource.Info) ([]byte, error) { - selectErr := updateSelectorForObject(info.Object, *o.selector) + versioned, err := info.Mapping.ConvertToVersion(info.Object, info.Mapping.GroupVersionKind.GroupVersion()) + if err != nil { + return nil, err + } + patch.Info.VersionedObject = versioned + selectErr := updateSelectorForObject(info.VersionedObject, *o.selector) if selectErr == nil { - return runtime.Encode(o.encoder, info.Object) + return runtime.Encode(o.encoder, info.VersionedObject) } return nil, selectErr }) @@ -190,8 +195,7 @@ func (o *SelectorOptions) RunSelector() error { return patch.Err } if o.local || o.dryrun { - o.PrintObject(info.Object) - return nil + return o.PrintObject(info.VersionedObject) } patched, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) @@ -211,7 +215,7 @@ func (o *SelectorOptions) RunSelector() error { shortOutput := o.output == "name" if len(o.output) > 0 && !shortOutput { - return o.PrintObject(info.Object) + return o.PrintObject(patched) } cmdutil.PrintSuccess(o.mapper, shortOutput, o.out, info.Mapping.Resource, info.Name, o.dryrun, "selector updated") return nil @@ -231,7 +235,7 @@ func updateSelectorForObject(obj runtime.Object, selector metav1.LabelSelector) } var err error switch t := obj.(type) { - case *api.Service: + case *v1.Service: t.Spec.Selector, err = copyOldSelector() default: err = fmt.Errorf("setting a selector is only supported for Services") diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_selector_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_selector_test.go index 425f29c38..901b95649 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_selector_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_selector_test.go @@ -24,13 +24,14 @@ import ( "testing" "github.com/stretchr/testify/assert" + batchv1 "k8s.io/api/batch/v1" + "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/batch" - "k8s.io/kubernetes/pkg/apis/extensions" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/printers" ) @@ -45,14 +46,14 @@ func TestUpdateSelectorForObjectTypes(t *testing.T) { }, }} - rc := api.ReplicationController{} - ser := api.Service{} - dep := extensions.Deployment{Spec: extensions.DeploymentSpec{Selector: &before}} - ds := extensions.DaemonSet{Spec: extensions.DaemonSetSpec{Selector: &before}} - rs := extensions.ReplicaSet{Spec: extensions.ReplicaSetSpec{Selector: &before}} - job := batch.Job{Spec: batch.JobSpec{Selector: &before}} - pvc := api.PersistentVolumeClaim{Spec: api.PersistentVolumeClaimSpec{Selector: &before}} - sa := api.ServiceAccount{} + rc := v1.ReplicationController{} + ser := v1.Service{} + dep := extensionsv1beta1.Deployment{Spec: extensionsv1beta1.DeploymentSpec{Selector: &before}} + ds := extensionsv1beta1.DaemonSet{Spec: extensionsv1beta1.DaemonSetSpec{Selector: &before}} + rs := extensionsv1beta1.ReplicaSet{Spec: extensionsv1beta1.ReplicaSetSpec{Selector: &before}} + job := batchv1.Job{Spec: batchv1.JobSpec{Selector: &before}} + pvc := v1.PersistentVolumeClaim{Spec: v1.PersistentVolumeClaimSpec{Selector: &before}} + sa := v1.ServiceAccount{} type args struct { obj runtime.Object selector metav1.LabelSelector @@ -127,7 +128,7 @@ func TestUpdateSelectorForObjectTypes(t *testing.T) { } func TestUpdateNewSelectorValuesForObject(t *testing.T) { - ser := api.Service{} + ser := v1.Service{} type args struct { obj runtime.Object selector metav1.LabelSelector @@ -169,7 +170,7 @@ func TestUpdateNewSelectorValuesForObject(t *testing.T) { } func TestUpdateOldSelectorValuesForObject(t *testing.T) { - ser := api.Service{Spec: api.ServiceSpec{Selector: map[string]string{"fee": "true"}}} + ser := v1.Service{Spec: v1.ServiceSpec{Selector: map[string]string{"fee": "true"}}} type args struct { obj runtime.Object selector metav1.LabelSelector @@ -317,7 +318,7 @@ func TestGetResourcesAndSelector(t *testing.T) { func TestSelectorTest(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: ""}, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) @@ -325,7 +326,7 @@ func TestSelectorTest(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: ""}}} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdSelector(f, buf) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_serviceaccount.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_serviceaccount.go index f767bce07..db17d0ebc 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_serviceaccount.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_serviceaccount.go @@ -23,11 +23,11 @@ import ( "github.com/spf13/cobra" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" @@ -61,14 +61,15 @@ type serviceAccountConfig struct { out io.Writer err io.Writer dryRun bool + cmd *cobra.Command shortOutput bool all bool record bool output string changeCause string local bool - saPrint func(obj runtime.Object) error - updatePodSpecForObject func(runtime.Object, func(*api.PodSpec) error) (bool, error) + PrintObject func(cmd *cobra.Command, isLocal bool, mapper meta.RESTMapper, obj runtime.Object, out io.Writer) error + updatePodSpecForObject func(runtime.Object, func(*v1.PodSpec) error) (bool, error) infos []*resource.Info serviceAccountName string } @@ -96,7 +97,7 @@ func NewCmdServiceAccount(f cmdutil.Factory, out, err io.Writer) *cobra.Command usage := "identifying the resource to get from a server." cmdutil.AddFilenameOptionFlags(cmd, &saConfig.fileNameOptions, usage) cmd.Flags().BoolVar(&saConfig.all, "all", false, "Select all resources, including uninitialized ones, in the namespace of the specified resource types") - cmd.Flags().BoolVar(&saConfig.local, "local", false, "If true, set image will NOT contact api-server but run locally.") + cmd.Flags().BoolVar(&saConfig.local, "local", false, "If true, set serviceaccount will NOT contact api-server but run locally.") cmdutil.AddRecordFlag(cmd) cmdutil.AddDryRunFlag(cmd) cmdutil.AddIncludeUninitializedFlag(cmd) @@ -113,9 +114,9 @@ func (saConfig *serviceAccountConfig) Complete(f cmdutil.Factory, cmd *cobra.Com saConfig.dryRun = cmdutil.GetDryRunFlag(cmd) saConfig.output = cmdutil.GetFlagString(cmd, "output") saConfig.updatePodSpecForObject = f.UpdatePodSpecForObject - saConfig.saPrint = func(obj runtime.Object) error { - return f.PrintObject(cmd, saConfig.local, saConfig.mapper, obj, saConfig.out) - } + saConfig.PrintObject = f.PrintObject + saConfig.cmd = cmd + cmdNamespace, enforceNamespace, err := f.DefaultNamespace() if err != nil { return err @@ -148,11 +149,11 @@ func (saConfig *serviceAccountConfig) Complete(f cmdutil.Factory, cmd *cobra.Com func (saConfig *serviceAccountConfig) Run() error { patchErrs := []error{} patchFn := func(info *resource.Info) ([]byte, error) { - saConfig.updatePodSpecForObject(info.Object, func(podSpec *api.PodSpec) error { + saConfig.updatePodSpecForObject(info.VersionedObject, func(podSpec *v1.PodSpec) error { podSpec.ServiceAccountName = saConfig.serviceAccountName return nil }) - return runtime.Encode(saConfig.encoder, info.Object) + return runtime.Encode(saConfig.encoder, info.VersionedObject) } patches := CalculatePatches(saConfig.infos, saConfig.encoder, patchFn) for _, patch := range patches { @@ -162,7 +163,9 @@ func (saConfig *serviceAccountConfig) Run() error { continue } if saConfig.local || saConfig.dryRun { - saConfig.saPrint(patch.Info.Object) + if err := saConfig.PrintObject(saConfig.cmd, saConfig.local, saConfig.mapper, patch.Info.VersionedObject, saConfig.out); err != nil { + return err + } continue } patched, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) @@ -179,7 +182,14 @@ func (saConfig *serviceAccountConfig) Run() error { } } if len(saConfig.output) > 0 { - saConfig.saPrint(patched) + versionedObject, err := patch.Info.Mapping.ConvertToVersion(patched, patch.Info.Mapping.GroupVersionKind.GroupVersion()) + if err != nil { + return err + } + if err := saConfig.PrintObject(saConfig.cmd, saConfig.local, saConfig.mapper, versionedObject, saConfig.out); err != nil { + return err + } + continue } cmdutil.PrintSuccess(saConfig.mapper, saConfig.shortOutput, saConfig.out, info.Mapping.Resource, info.Name, saConfig.dryRun, "serviceaccount updated") } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_serviceaccount_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_serviceaccount_test.go index 16cfbdc5d..c162d618c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_serviceaccount_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_serviceaccount_test.go @@ -26,17 +26,21 @@ import ( "testing" "github.com/stretchr/testify/assert" - + appsv1 "k8s.io/api/apps/v1" + appsv1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta2 "k8s.io/api/apps/v1beta2" + batchv1 "k8s.io/api/batch/v1" + "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" - "k8s.io/kubernetes/pkg/apis/apps" - "k8s.io/kubernetes/pkg/apis/batch" - "k8s.io/kubernetes/pkg/apis/extensions" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/printers" ) @@ -49,22 +53,21 @@ Example resource specifications include: ' ' ''` -func TestServiceAccountLocal(t *testing.T) { +func TestSetServiceAccountLocal(t *testing.T) { inputs := []struct { yaml string apiGroup string }{ - {yaml: "../../../../test/fixtures/doc-yaml/user-guide/replication.yaml", apiGroup: api.GroupName}, - {yaml: "../../../../test/fixtures/doc-yaml/admin/daemon.yaml", apiGroup: extensions.GroupName}, - {yaml: "../../../../test/fixtures/doc-yaml/user-guide/replicaset/redis-slave.yaml", apiGroup: extensions.GroupName}, - {yaml: "../../../../test/fixtures/doc-yaml/user-guide/job.yaml", apiGroup: batch.GroupName}, - {yaml: "../../../../test/fixtures/doc-yaml/user-guide/deployment.yaml", apiGroup: extensions.GroupName}, - {yaml: "../../../../examples/storage/minio/minio-distributed-statefulset.yaml", apiGroup: apps.GroupName}, + {yaml: "../../../../test/fixtures/doc-yaml/user-guide/replication.yaml", apiGroup: ""}, + {yaml: "../../../../test/fixtures/doc-yaml/admin/daemon.yaml", apiGroup: "extensions"}, + {yaml: "../../../../test/fixtures/doc-yaml/user-guide/replicaset/redis-slave.yaml", apiGroup: "extensions"}, + {yaml: "../../../../test/fixtures/doc-yaml/user-guide/job.yaml", apiGroup: "batch"}, + {yaml: "../../../../test/fixtures/doc-yaml/user-guide/deployment.yaml", apiGroup: "extensions"}, } f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) return nil, nil @@ -91,71 +94,232 @@ func TestServiceAccountLocal(t *testing.T) { } } -func TestServiceAccountRemote(t *testing.T) { +func TestSetServiceAccountMultiLocal(t *testing.T) { + testapi.Default = testapi.Groups[""] + f, tf, codec, ns := cmdtesting.NewAPIFactory() + tf.Client = &fake.RESTClient{ + GroupVersion: schema.GroupVersion{Version: ""}, + NegotiatedSerializer: ns, + Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) + return nil, nil + }), + } + tf.Namespace = "test" + tf.ClientConfig = &restclient.Config{ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Version: ""}}} + + buf := bytes.NewBuffer([]byte{}) + cmd := NewCmdServiceAccount(f, buf, buf) + cmd.SetOutput(buf) + cmd.Flags().Set("output", "name") + cmd.Flags().Set("local", "true") + mapper, typer := f.Object() + tf.Printer = &printers.NamePrinter{Decoders: []runtime.Decoder{codec}, Typer: typer, Mapper: mapper} + opts := serviceAccountConfig{fileNameOptions: resource.FilenameOptions{ + Filenames: []string{"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"}}, + out: buf, + local: true} + + err := opts.Complete(f, cmd, []string{serviceAccount}) + if err == nil { + err = opts.Run() + } + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + expectedOut := "replicationcontrollers/first-rc\nreplicationcontrollers/second-rc\n" + if buf.String() != expectedOut { + t.Errorf("expected out:\n%s\nbut got:\n%s", expectedOut, buf.String()) + } +} + +func TestSetServiceAccountRemote(t *testing.T) { inputs := []struct { - object runtime.Object - apiPrefix, apiGroup string - args []string + object runtime.Object + apiPrefix, apiGroup, apiVersion string + testAPIGroup string + args []string }{ { - object: &extensions.ReplicaSet{ - TypeMeta: metav1.TypeMeta{Kind: "ReplicaSet", APIVersion: api.Registry.GroupOrDie(extensions.GroupName).GroupVersion.String()}, + object: &extensionsv1beta1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", + args: []string{"replicaset", "nginx", serviceAccount}, + }, + { + object: &appsv1beta2.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1beta2.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"replicaset", "nginx", serviceAccount}, + }, + { + object: &appsv1.ReplicaSet{ ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.ReplicaSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, }, - apiPrefix: "/apis", apiGroup: extensions.GroupName, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", args: []string{"replicaset", "nginx", serviceAccount}, }, { - object: &extensions.DaemonSet{ - TypeMeta: metav1.TypeMeta{Kind: "DaemonSet", APIVersion: api.Registry.GroupOrDie(extensions.GroupName).GroupVersion.String()}, + object: &extensionsv1beta1.DaemonSet{ ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, }, - apiPrefix: "/apis", apiGroup: extensions.GroupName, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", args: []string{"daemonset", "nginx", serviceAccount}, }, { - object: &api.ReplicationController{ - TypeMeta: metav1.TypeMeta{Kind: "ReplicationController", APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()}, + object: &appsv1beta2.DaemonSet{ ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, }, - apiPrefix: "/api", apiGroup: api.GroupName, - args: []string{"replicationcontroller", "nginx", serviceAccount}}, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"daemonset", "nginx", serviceAccount}, + }, + { + object: &appsv1.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"daemonset", "nginx", serviceAccount}, + }, { - object: &extensions.Deployment{ - TypeMeta: metav1.TypeMeta{Kind: "Deployment", APIVersion: api.Registry.GroupOrDie(extensions.GroupName).GroupVersion.String()}, + object: &extensionsv1beta1.Deployment{ ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, }, - apiPrefix: "/apis", apiGroup: extensions.GroupName, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "extensions", apiVersion: "v1beta1", args: []string{"deployment", "nginx", serviceAccount}, }, { - object: &batch.Job{ - TypeMeta: metav1.TypeMeta{Kind: "Job", APIVersion: api.Registry.GroupOrDie(batch.GroupName).GroupVersion.String()}, + object: &appsv1beta1.Deployment{ ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, }, - apiPrefix: "/apis", apiGroup: batch.GroupName, - args: []string{"job", "nginx", serviceAccount}, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta1", + args: []string{"deployment", "nginx", serviceAccount}, }, { - object: &apps.StatefulSet{ - TypeMeta: metav1.TypeMeta{Kind: "StatefulSet", APIVersion: api.Registry.GroupOrDie(apps.GroupName).GroupVersion.String()}, + object: &appsv1beta2.Deployment{ ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, }, - apiPrefix: "/apis", apiGroup: apps.GroupName, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", + args: []string{"deployment", "nginx", serviceAccount}, + }, + { + object: &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.DeploymentSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "extensions", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"deployment", "nginx", serviceAccount}, + }, + { + object: &appsv1beta1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta1", + args: []string{"statefulset", "nginx", serviceAccount}, + }, + { + object: &appsv1beta2.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1beta2", args: []string{"statefulset", "nginx", serviceAccount}, }, + { + object: &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + Spec: appsv1.StatefulSetSpec{ + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "nginx", + Image: "nginx", + }, + }, + }, + }, + }, + }, + testAPIGroup: "apps", + apiPrefix: "/apis", apiGroup: "apps", apiVersion: "v1", + args: []string{"statefulset", "nginx", serviceAccount}, + }, + { + object: &batchv1.Job{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + }, + testAPIGroup: "batch", + apiPrefix: "/apis", apiGroup: "batch", apiVersion: "v1", + args: []string{"job", "nginx", serviceAccount}, + }, + { + object: &v1.ReplicationController{ + ObjectMeta: metav1.ObjectMeta{Name: "nginx"}, + }, + testAPIGroup: "", + apiPrefix: "/api", apiGroup: "", apiVersion: "v1", + args: []string{"replicationcontroller", "nginx", serviceAccount}, + }, } for _, input := range inputs { - - groupVersion := api.Registry.GroupOrDie(input.apiGroup).GroupVersion - testapi.Default = testapi.Groups[input.apiGroup] - f, tf, codec, _ := cmdtesting.NewAPIFactory() + groupVersion := schema.GroupVersion{Group: input.apiGroup, Version: input.apiVersion} + testapi.Default = testapi.Groups[input.testAPIGroup] + f, tf, _, ns := cmdtesting.NewAPIFactory() + codec := scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(groupVersion), scheme.Codecs.UniversalDecoder(groupVersion), groupVersion, groupVersion) tf.Printer = printers.NewVersionedPrinter(&printers.YAMLPrinter{}, testapi.Default.Converter(), *testapi.Default.GroupVersion()) tf.Namespace = "test" tf.CategoryExpander = resource.LegacyCategoryExpander tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), + GroupVersion: groupVersion, + NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { resourcePath := testapi.Default.ResourcePath(input.args[0]+"s", tf.Namespace, input.args[1]) switch p, m := req.URL.Path, req.Method; { @@ -177,14 +341,12 @@ func TestServiceAccountRemote(t *testing.T) { return nil, fmt.Errorf("unexpected request") } }), - VersionedAPIPath: path.Join(input.apiPrefix, groupVersion.String()), - GroupName: input.apiGroup, + VersionedAPIPath: path.Join(input.apiPrefix, testapi.Default.GroupVersion().String()), } out := new(bytes.Buffer) cmd := NewCmdServiceAccount(f, out, out) cmd.SetOutput(out) cmd.Flags().Set("output", "yaml") - saConfig := serviceAccountConfig{ out: out, local: false} @@ -206,7 +368,7 @@ func TestServiceAccountValidation(t *testing.T) { for _, input := range inputs { f, tf, _, _ := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: schema.GroupVersion{Version: "v1"}, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { t.Fatalf("unexpected request: %s %#v\n%#v", req.Method, req.URL, req) return nil, nil diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_subject.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_subject.go index a9120654c..4972d88fb 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_subject.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set/set_subject.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -101,7 +101,7 @@ func NewCmdSubject(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.Co cmdutil.AddFilenameOptionFlags(cmd, &options.FilenameOptions, usage) cmd.Flags().BoolVar(&options.All, "all", false, "Select all resources, including uninitialized ones, in the namespace of the specified resource types") cmd.Flags().StringVarP(&options.Selector, "selector", "l", "", "Selector (label query) to filter on, not including uninitialized ones, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2)") - cmd.Flags().BoolVar(&options.Local, "local", false, "If true, set resources will NOT contact api-server but run locally.") + cmd.Flags().BoolVar(&options.Local, "local", false, "If true, set subject will NOT contact api-server but run locally.") cmdutil.AddDryRunFlag(cmd) cmd.Flags().StringArrayVar(&options.Users, "user", []string{}, "Usernames to bind to the role") cmd.Flags().StringArrayVar(&options.Groups, "group", []string{}, "Groups to bind to the role") @@ -133,12 +133,7 @@ func (o *SubjectOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [] IncludeUninitialized(includeUninitialized). Flatten() - if !o.Local { - builder = builder. - SelectorParam(o.Selector). - ResourceTypeOrNameArgs(o.All, args...). - Latest() - } else { + if o.Local { // if a --local flag was provided, and a resource was specified in the form // /, fail immediately as --local cannot query the api server // for the specified resource. @@ -147,6 +142,11 @@ func (o *SubjectOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [] } builder = builder.Local(f.ClientForMapping) + } else { + builder = builder. + LabelSelectorParam(o.Selector). + ResourceTypeOrNameArgs(o.All, args...). + Latest() } o.Infos, err = builder.Do().Infos() @@ -220,7 +220,7 @@ func (o *SubjectOptions) Run(f cmdutil.Factory, fn updateSubjects) error { transformed, err := updateSubjectForObject(info.Object, subjects, fn) if transformed && err == nil { // TODO: switch UpdatePodSpecForObject to work on v1.PodSpec, use info.VersionedObject, and avoid conversion completely - versionedEncoder := api.Codecs.EncoderForVersion(o.Encoder, info.Mapping.GroupVersionKind.GroupVersion()) + versionedEncoder := legacyscheme.Codecs.EncoderForVersion(o.Encoder, info.Mapping.GroupVersionKind.GroupVersion()) return runtime.Encode(versionedEncoder, info.Object) } return nil, err @@ -241,7 +241,10 @@ func (o *SubjectOptions) Run(f cmdutil.Factory, fn updateSubjects) error { } if o.Local || o.DryRun { - return o.PrintObject(o.Mapper, info.Object, o.Out) + if err := o.PrintObject(o.Mapper, info.Object, o.Out); err != nil { + return err + } + continue } obj, err := resource.NewHelper(info.Client, info.Mapping).Patch(info.Namespace, info.Name, types.StrategicMergePatchType, patch.Patch) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/taint.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/taint.go index 04578bbee..e3d61843e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/taint.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/taint.go @@ -58,6 +58,7 @@ var ( * A taint consists of a key, value, and effect. As an argument here, it is expressed as key=value:effect. * The key must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to %[1]d characters. + * Optionally, the key can begin with a DNS subdomain prefix and a single '/', like example.com/my-app * The value must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to %[2]d characters. * The effect must be NoSchedule, PreferNoSchedule or NoExecute. * Currently taint can only apply to node.`)) @@ -152,7 +153,7 @@ func (o *TaintOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.Com ContinueOnError(). NamespaceParam(namespace).DefaultNamespace() if o.selector != "" { - o.builder = o.builder.SelectorParam(o.selector).ResourceTypes("node") + o.builder = o.builder.LabelSelectorParam(o.selector).ResourceTypes("node") } if o.all { o.builder = o.builder.SelectAllParam(o.all).ResourceTypes("node").Flatten().Latest() @@ -160,7 +161,7 @@ func (o *TaintOptions) Complete(f cmdutil.Factory, out io.Writer, cmd *cobra.Com if !o.all && o.selector == "" && len(o.resources) >= 2 { o.builder = o.builder.ResourceNames("node", o.resources[1:]...) } - o.builder = o.builder.SelectorParam(o.selector). + o.builder = o.builder.LabelSelectorParam(o.selector). Flatten(). Latest() o.f = f diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/taint_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/taint_test.go index 0bdf71409..8e9013649 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/taint_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/taint_test.go @@ -29,7 +29,6 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" ) @@ -242,7 +241,6 @@ func TestTaint(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { m := &MyReq{req} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/BUILD index 1bfd4b3f8..f556f1f6f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/BUILD @@ -14,9 +14,9 @@ go_library( "//build/visible_to:pkg_kubectl_cmd_testing_CONSUMERS", ], deps = [ - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", @@ -27,9 +27,10 @@ go_library( "//pkg/printers:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/fake.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/fake.go index d5c0fd4d0..39bf2d998 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/fake.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/fake.go @@ -26,8 +26,10 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" @@ -35,9 +37,9 @@ import ( "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -173,7 +175,7 @@ func versionErrIfFalse(b bool) error { return versionErr } -var ValidVersion = api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version +var ValidVersion = legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version var InternalGV = schema.GroupVersion{Group: "apitest", Version: runtime.APIVersionInternal} var UnlikelyGV = schema.GroupVersion{Group: "apitest", Version: "unlikelyversion"} var ValidVersionGV = schema.GroupVersion{Group: "apitest", Version: ValidVersion} @@ -278,7 +280,7 @@ func (f *FakeFactory) FlagSet() *pflag.FlagSet { } func (f *FakeFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) { - return api.Registry.RESTMapper(), f.tf.Typer + return legacyscheme.Registry.RESTMapper(), f.tf.Typer } func (f *FakeFactory) UnstructuredObject() (meta.RESTMapper, runtime.ObjectTyper, error) { @@ -330,12 +332,6 @@ func (f *FakeFactory) ClientForMapping(mapping *meta.RESTMapping) (resource.REST return f.tf.Client, f.tf.Err } -func (f *FakeFactory) FederationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) { - return nil, nil -} -func (f *FakeFactory) FederationClientForVersion(version *schema.GroupVersion) (*restclient.RESTClient, error) { - return nil, nil -} func (f *FakeFactory) ClientSetForVersion(requiredVersion *schema.GroupVersion) (internalclientset.Interface, error) { return nil, nil } @@ -358,6 +354,20 @@ func (f *FakeFactory) PrinterForCommand(cmd *cobra.Command, isLocal bool, output return f.tf.Printer, f.tf.Err } +func (f *FakeFactory) PrintResourceInfoForCommand(cmd *cobra.Command, info *resource.Info, out io.Writer) error { + printer, err := f.PrinterForCommand(cmd, false, nil, printers.PrintOptions{}) + if err != nil { + return err + } + if !printer.IsGeneric() { + printer, err = f.PrinterForMapping(cmd, false, nil, nil, false) + if err != nil { + return err + } + } + return printer.PrintObj(info.Object, out) +} + func (f *FakeFactory) Printer(mapping *meta.RESTMapping, options printers.PrintOptions) (printers.ResourcePrinter, error) { return f.tf.Printer, f.tf.Err } @@ -453,7 +463,7 @@ func (f *FakeFactory) ApproximatePodTemplateForObject(obj runtime.Object) (*api. return f.ApproximatePodTemplateForObject(obj) } -func (f *FakeFactory) UpdatePodSpecForObject(obj runtime.Object, fn func(*api.PodSpec) error) (bool, error) { +func (f *FakeFactory) UpdatePodSpecForObject(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error) { return false, nil } @@ -487,6 +497,19 @@ func (f *FakeFactory) NewBuilder() *resource.Builder { return resource.NewBuilder(mapper, f.CategoryExpander(), typer, resource.ClientMapperFunc(f.ClientForMapping), f.Decoder(true)) } +func (f *FakeFactory) NewUnstructuredBuilder() *resource.Builder { + mapper, typer, err := f.UnstructuredObject() + if err != nil { + cmdutil.CheckErr(err) + } + return resource.NewBuilder( + mapper, + f.CategoryExpander(), + typer, + resource.ClientMapperFunc(f.UnstructuredClientForMapping), + unstructured.UnstructuredJSONScheme) +} + func (f *FakeFactory) DefaultResourceFilterOptions(cmd *cobra.Command, withNamespace bool) *printers.PrintOptions { return &printers.PrintOptions{} } @@ -526,11 +549,11 @@ func (f *fakeMixedFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) { {Group: meta.AnyGroup, Version: "v1", Kind: meta.AnyKind}, }, } - return priorityRESTMapper, runtime.MultiObjectTyper{f.tf.Typer, api.Scheme} + return priorityRESTMapper, runtime.MultiObjectTyper{f.tf.Typer, legacyscheme.Scheme} } func (f *fakeMixedFactory) ClientForMapping(m *meta.RESTMapping) (resource.RESTClient, error) { - if m.ObjectConvertor == api.Scheme { + if m.ObjectConvertor == legacyscheme.Scheme { return f.apiClient, f.tf.Err } if f.tf.ClientForMappingFunc != nil { @@ -554,7 +577,7 @@ type fakeAPIFactory struct { } func (f *fakeAPIFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) { - return testapi.Default.RESTMapper(), api.Scheme + return testapi.Default.RESTMapper(), legacyscheme.Scheme } func (f *fakeAPIFactory) UnstructuredObject() (meta.RESTMapper, runtime.ObjectTyper, error) { @@ -674,6 +697,20 @@ func (f *fakeAPIFactory) PrinterForCommand(cmd *cobra.Command, isLocal bool, out return f.tf.Printer, f.tf.Err } +func (f *fakeAPIFactory) PrintResourceInfoForCommand(cmd *cobra.Command, info *resource.Info, out io.Writer) error { + printer, err := f.PrinterForCommand(cmd, false, nil, printers.PrintOptions{}) + if err != nil { + return err + } + if !printer.IsGeneric() { + printer, err = f.PrinterForMapping(cmd, false, nil, nil, false) + if err != nil { + return err + } + } + return printer.PrintObj(info.Object, out) +} + func (f *fakeAPIFactory) Describer(*meta.RESTMapping) (printers.Describer, error) { return f.tf.Describer, f.tf.Err } @@ -696,7 +733,7 @@ func (f *fakeAPIFactory) LogsForObject(object, options runtime.Object, timeout t } return c.Core().Pods(f.tf.Namespace).GetLogs(t.Name, opts), nil default: - fqKinds, _, err := api.Scheme.ObjectKinds(object) + fqKinds, _, err := legacyscheme.Scheme.ObjectKinds(object) if err != nil { return nil, err } @@ -709,7 +746,7 @@ func (f *fakeAPIFactory) AttachablePodForObject(object runtime.Object, timeout t case *api.Pod: return t, nil default: - gvks, _, err := api.Scheme.ObjectKinds(object) + gvks, _, err := legacyscheme.Scheme.ObjectKinds(object) if err != nil { return nil, err } @@ -738,7 +775,7 @@ func (f *fakeAPIFactory) Generators(cmdName string) map[string]kubectl.Generator } func (f *fakeAPIFactory) PrintObject(cmd *cobra.Command, isLocal bool, mapper meta.RESTMapper, obj runtime.Object, out io.Writer) error { - gvks, _, err := api.Scheme.ObjectKinds(obj) + gvks, _, err := legacyscheme.Scheme.ObjectKinds(obj) if err != nil { return err } @@ -764,6 +801,19 @@ func (f *fakeAPIFactory) NewBuilder() *resource.Builder { return resource.NewBuilder(mapper, f.CategoryExpander(), typer, resource.ClientMapperFunc(f.ClientForMapping), f.Decoder(true)) } +func (f *fakeAPIFactory) NewUnstructuredBuilder() *resource.Builder { + mapper, typer, err := f.UnstructuredObject() + if err != nil { + cmdutil.CheckErr(err) + } + return resource.NewBuilder( + mapper, + f.CategoryExpander(), + typer, + resource.ClientMapperFunc(f.UnstructuredClientForMapping), + unstructured.UnstructuredJSONScheme) +} + func (f *fakeAPIFactory) SuggestedPodTemplateResources() []schema.GroupResource { return []schema.GroupResource{} } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/zz_generated.deepcopy.go index 08c8d321c..db5724487 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing/zz_generated.deepcopy.go @@ -21,43 +21,9 @@ limitations under the License. package testing import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalNamespacedType).DeepCopyInto(out.(*ExternalNamespacedType)) - return nil - }, InType: reflect.TypeOf(&ExternalNamespacedType{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalNamespacedType2).DeepCopyInto(out.(*ExternalNamespacedType2)) - return nil - }, InType: reflect.TypeOf(&ExternalNamespacedType2{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalType).DeepCopyInto(out.(*ExternalType)) - return nil - }, InType: reflect.TypeOf(&ExternalType{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalType2).DeepCopyInto(out.(*ExternalType2)) - return nil - }, InType: reflect.TypeOf(&ExternalType2{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InternalNamespacedType).DeepCopyInto(out.(*InternalNamespacedType)) - return nil - }, InType: reflect.TypeOf(&InternalNamespacedType{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InternalType).DeepCopyInto(out.(*InternalType)) - return nil - }, InType: reflect.TypeOf(&InternalType{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ExternalNamespacedType) DeepCopyInto(out *ExternalNamespacedType) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_node.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_node.go index f535b734e..ab7b992cd 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_node.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_node.go @@ -22,10 +22,10 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" - coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" + corev1 "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/metricsutil" @@ -36,7 +36,7 @@ import ( type TopNodeOptions struct { ResourceName string Selector string - NodeClient coreclient.NodesGetter + NodeClient corev1.CoreV1Interface HeapsterOptions HeapsterTopOptions Client *metricsutil.HeapsterMetricsClient Printer *metricsutil.TopCmdPrinter @@ -118,7 +118,7 @@ func (o *TopNodeOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args [] return cmdutil.UsageErrorf(cmd, "%s", cmd.Use) } - clientset, err := f.ClientSet() + clientset, err := f.KubernetesClientSet() if err != nil { return err } @@ -149,7 +149,7 @@ func (o TopNodeOptions) RunTopNode() error { return errors.New("metrics not available yet") } - var nodes []api.Node + var nodes []v1.Node if len(o.ResourceName) > 0 { node, err := o.NodeClient.Nodes().Get(o.ResourceName, metav1.GetOptions{}) if err != nil { @@ -166,7 +166,7 @@ func (o TopNodeOptions) RunTopNode() error { nodes = append(nodes, nodeList.Items...) } - allocatable := make(map[string]api.ResourceList) + allocatable := make(map[string]v1.ResourceList) for _, n := range nodes { allocatable[n.Name] = n.Status.Allocatable diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_node_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_node_test.go index ba292a63b..7afc783da 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_node_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_node_test.go @@ -25,8 +25,8 @@ import ( "net/url" + "k8s.io/api/core/v1" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/metrics/pkg/apis/metrics/v1alpha1" ) @@ -45,7 +45,6 @@ func TestTopNodeAllMetrics(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -91,7 +90,6 @@ func TestTopNodeAllMetricsCustomDefaults(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -147,7 +145,6 @@ func TestTopNodeWithNameMetrics(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -191,7 +188,7 @@ func TestTopNodeWithLabelSelectorMetrics(t *testing.T) { ListMeta: metrics.ListMeta, Items: metrics.Items[0:1], } - expectedNodes := api.NodeList{ + expectedNodes := v1.NodeList{ ListMeta: nodes.ListMeta, Items: nodes.Items[0:1], } @@ -207,7 +204,6 @@ func TestTopNodeWithLabelSelectorMetrics(t *testing.T) { f, tf, codec, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m, q := req.URL.Path, req.Method, req.URL.RawQuery; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_pod.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_pod.go index 6e975bd5f..d64c012f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_pod.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_pod.go @@ -22,10 +22,10 @@ import ( "io" "time" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" - coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" + corev1 "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/metricsutil" @@ -41,7 +41,7 @@ type TopPodOptions struct { Selector string AllNamespaces bool PrintContainers bool - PodClient coreclient.PodsGetter + PodClient corev1.PodsGetter HeapsterOptions HeapsterTopOptions Client *metricsutil.HeapsterMetricsClient Printer *metricsutil.TopCmdPrinter @@ -114,7 +114,7 @@ func (o *TopPodOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []s if err != nil { return err } - clientset, err := f.ClientSet() + clientset, err := f.KubernetesClientSet() if err != nil { return err } @@ -185,7 +185,7 @@ func verifyEmptyMetrics(o TopPodOptions, selector labels.Selector) error { return errors.New("metrics not available yet") } -func checkPodAge(pod *api.Pod) error { +func checkPodAge(pod *v1.Pod) error { age := time.Since(pod.CreationTimestamp.Time) if age > metricsCreationDelay { message := fmt.Sprintf("Metrics not available for pod %s/%s, age: %s", pod.Namespace, pod.Name, age.String()) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_pod_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_pod_test.go index 3766123fb..94bca7ec3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_pod_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_pod_test.go @@ -29,7 +29,6 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" metricsapi "k8s.io/metrics/pkg/apis/metrics/v1alpha1" ) @@ -118,7 +117,6 @@ func TestTopPod(t *testing.T) { f, tf, _, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m, q := req.URL.Path, req.Method, req.URL.RawQuery; { @@ -254,7 +252,6 @@ func TestTopPodCustomDefaults(t *testing.T) { f, tf, _, ns := cmdtesting.NewAPIFactory() tf.Printer = &testPrinter{} tf.Client = &fake.RESTClient{ - APIRegistry: api.Registry, NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m, q := req.URL.Path, req.Method, req.URL.RawQuery; { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_test.go index 4b469fa5c..ce168b649 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/top_test.go @@ -28,7 +28,6 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" metricsapi "k8s.io/metrics/pkg/apis/metrics/v1alpha1" ) @@ -59,7 +58,7 @@ func marshallBody(metrics interface{}) (io.ReadCloser, error) { return ioutil.NopCloser(bytes.NewReader(result)), nil } -func testNodeMetricsData() (*metricsapi.NodeMetricsList, *api.NodeList) { +func testNodeMetricsData() (*metricsapi.NodeMetricsList, *v1.NodeList) { metrics := &metricsapi.NodeMetricsList{ ListMeta: metav1.ListMeta{ ResourceVersion: "1", @@ -85,28 +84,28 @@ func testNodeMetricsData() (*metricsapi.NodeMetricsList, *api.NodeList) { }, }, } - nodes := &api.NodeList{ + nodes := &v1.NodeList{ ListMeta: metav1.ListMeta{ ResourceVersion: "15", }, - Items: []api.Node{ + Items: []v1.Node{ { ObjectMeta: metav1.ObjectMeta{Name: "node1", ResourceVersion: "10"}, - Status: api.NodeStatus{ - Allocatable: api.ResourceList{ - api.ResourceCPU: *resource.NewMilliQuantity(10, resource.DecimalSI), - api.ResourceMemory: *resource.NewQuantity(20*(1024*1024), resource.DecimalSI), - api.ResourceStorage: *resource.NewQuantity(30*(1024*1024), resource.DecimalSI), + Status: v1.NodeStatus{ + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(10, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(20*(1024*1024), resource.DecimalSI), + v1.ResourceStorage: *resource.NewQuantity(30*(1024*1024), resource.DecimalSI), }, }, }, { ObjectMeta: metav1.ObjectMeta{Name: "node2", ResourceVersion: "11"}, - Status: api.NodeStatus{ - Allocatable: api.ResourceList{ - api.ResourceCPU: *resource.NewMilliQuantity(50, resource.DecimalSI), - api.ResourceMemory: *resource.NewQuantity(60*(1024*1024), resource.DecimalSI), - api.ResourceStorage: *resource.NewQuantity(70*(1024*1024), resource.DecimalSI), + Status: v1.NodeStatus{ + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(50, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(60*(1024*1024), resource.DecimalSI), + v1.ResourceStorage: *resource.NewQuantity(70*(1024*1024), resource.DecimalSI), }, }, }, diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/BUILD index a48f77e24..e6fcfeead 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/BUILD @@ -22,22 +22,23 @@ go_library( "//build/visible_to:pkg_kubectl_cmd_util_CONSUMERS", ], deps = [ - "//federation/apis/federation:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//pkg/client/unversioned:go_default_library", "//pkg/controller:go_default_library", "//pkg/kubectl:go_default_library", + "//pkg/kubectl/cmd/templates:go_default_library", "//pkg/kubectl/cmd/util/openapi:go_default_library", "//pkg/kubectl/cmd/util/openapi/validation:go_default_library", "//pkg/kubectl/plugins:go_default_library", "//pkg/kubectl/resource:go_default_library", + "//pkg/kubectl/scheme:go_default_library", "//pkg/kubectl/validation:go_default_library", "//pkg/printers:go_default_library", "//pkg/printers/internalversion:go_default_library", @@ -47,9 +48,13 @@ go_library( "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/k8s.io/api/apps/v1:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", + "//vendor/k8s.io/api/apps/v1beta2:go_default_library", + "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -94,11 +99,12 @@ go_test( "//build/visible_to:COMMON_testing", ], deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/cached_discovery.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/cached_discovery.go index 8150b00ef..0224ebbe9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/cached_discovery.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/cached_discovery.go @@ -32,7 +32,7 @@ import ( "k8s.io/apimachinery/pkg/version" "k8s.io/client-go/discovery" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/kubectl/scheme" ) // CachedDiscoveryClient implements the functions that discovery server-supported API groups, @@ -66,7 +66,7 @@ func (d *CachedDiscoveryClient) ServerResourcesForGroupVersion(groupVersion stri // don't fail on errors, we either don't have a file or won't be able to run the cached check. Either way we can fallback. if err == nil { cachedResources := &metav1.APIResourceList{} - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), cachedBytes, cachedResources); err == nil { + if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), cachedBytes, cachedResources); err == nil { glog.V(10).Infof("returning cached discovery info from %v", filename) return cachedResources, nil } @@ -113,7 +113,7 @@ func (d *CachedDiscoveryClient) ServerGroups() (*metav1.APIGroupList, error) { // don't fail on errors, we either don't have a file or won't be able to run the cached check. Either way we can fallback. if err == nil { cachedGroups := &metav1.APIGroupList{} - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), cachedBytes, cachedGroups); err == nil { + if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), cachedBytes, cachedGroups); err == nil { glog.V(10).Infof("returning cached discovery info from %v", filename) return cachedGroups, nil } @@ -179,7 +179,7 @@ func (d *CachedDiscoveryClient) writeCachedFile(filename string, obj runtime.Obj return err } - bytes, err := runtime.Encode(api.Codecs.LegacyCodec(), obj) + bytes, err := runtime.Encode(scheme.Codecs.LegacyCodec(), obj) if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/clientcache.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/clientcache.go index 5312cb309..124216d2e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/clientcache.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/clientcache.go @@ -24,7 +24,6 @@ import ( "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" oldclient "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/version" @@ -34,7 +33,6 @@ func NewClientCache(loader clientcmd.ClientConfig, discoveryClientFactory Discov return &ClientCache{ clientsets: make(map[schema.GroupVersion]internalclientset.Interface), configs: make(map[schema.GroupVersion]*restclient.Config), - fedClientSets: make(map[schema.GroupVersion]fedclientset.Interface), loader: loader, discoveryClientFactory: discoveryClientFactory, } @@ -43,10 +41,9 @@ func NewClientCache(loader clientcmd.ClientConfig, discoveryClientFactory Discov // ClientCache caches previously loaded clients for reuse, and ensures MatchServerVersion // is invoked only once type ClientCache struct { - loader clientcmd.ClientConfig - clientsets map[schema.GroupVersion]internalclientset.Interface - fedClientSets map[schema.GroupVersion]fedclientset.Interface - configs map[schema.GroupVersion]*restclient.Config + loader clientcmd.ClientConfig + clientsets map[schema.GroupVersion]internalclientset.Interface + configs map[schema.GroupVersion]*restclient.Config // noVersionConfig provides a cached config for the case of no required version specified noVersionConfig *restclient.Config @@ -211,51 +208,3 @@ func (c *ClientCache) ClientSetForVersion(requiredVersion *schema.GroupVersion) return clientset, nil } - -func (c *ClientCache) FederationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) { - c.lock.Lock() - defer c.lock.Unlock() - - return c.federationClientSetForVersion(version) -} - -func (c *ClientCache) federationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) { - if version != nil { - if clientSet, found := c.fedClientSets[*version]; found { - return clientSet, nil - } - } - config, err := c.clientConfigForVersion(version) - if err != nil { - return nil, err - } - - // TODO: support multi versions of client with clientset - clientSet, err := fedclientset.NewForConfig(config) - if err != nil { - return nil, err - } - c.fedClientSets[*config.GroupVersion] = clientSet - - if version != nil { - configCopy := *config - clientSet, err := fedclientset.NewForConfig(&configCopy) - if err != nil { - return nil, err - } - c.fedClientSets[*version] = clientSet - } - - return clientSet, nil -} - -func (c *ClientCache) FederationClientForVersion(version *schema.GroupVersion) (*restclient.RESTClient, error) { - c.lock.Lock() - defer c.lock.Unlock() - - fedClientSet, err := c.federationClientSetForVersion(version) - if err != nil { - return nil, err - } - return fedClientSet.Federation().RESTClient().(*restclient.RESTClient), nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor/BUILD index d131c5d9b..c156ddb6e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor/BUILD @@ -15,10 +15,11 @@ go_library( "//build/visible_to:pkg_kubectl_cmd_util_editor_CONSUMERS", ], deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", "//pkg/kubectl/resource:go_default_library", + "//pkg/kubectl/scheme:go_default_library", "//pkg/kubectl/util/crlf:go_default_library", "//pkg/kubectl/util/term:go_default_library", "//pkg/printers:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor/editoptions.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor/editoptions.go index f125efa60..6531d7382 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor/editoptions.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor/editoptions.go @@ -41,10 +41,11 @@ import ( "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/scheme" "k8s.io/kubernetes/pkg/kubectl/util/crlf" "k8s.io/kubernetes/pkg/printers" ) @@ -106,12 +107,12 @@ func (o *EditOptions) Complete(f cmdutil.Factory, out, errOut io.Writer, args [] if err != nil { return err } - mapper, typer, err := f.UnstructuredObject() + mapper, _, err := f.UnstructuredObject() if err != nil { return err } - b := f.NewBuilder().Unstructured(f.UnstructuredClientForMapping, mapper, typer) + b := f.NewUnstructuredBuilder() if o.EditMode == NormalEditMode || o.EditMode == ApplyEditMode { // when do normal edit or apply edit we need to always retrieve the latest resource from server b = b.ResourceTypeOrNameArgs(true, args...).Latest() @@ -131,7 +132,7 @@ func (o *EditOptions) Complete(f cmdutil.Factory, out, errOut io.Writer, args [] o.updatedResultGetter = func(data []byte) *resource.Result { // resource builder to read objects from edited data - return resource.NewBuilder(mapper, f.CategoryExpander(), typer, resource.ClientMapperFunc(f.UnstructuredClientForMapping), unstructured.UnstructuredJSONScheme). + return f.NewUnstructuredBuilder(). Stream(bytes.NewReader(data), "edited-file"). IncludeUninitialized(includeUninitialized). ContinueOnError(). @@ -547,7 +548,7 @@ func (o *EditOptions) visitToPatch(originalInfos []*resource.Info, patchVisitor // Create the versioned struct from the type defined in the mapping // (which is the API version we'll be submitting the patch to) - versionedObject, err := api.Scheme.New(info.Mapping.GroupVersionKind) + versionedObject, err := scheme.Scheme.New(info.Mapping.GroupVersionKind) var patchType types.PatchType var patch []byte switch { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/BUILD index ccd5b4b20..c6084cfea 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/BUILD @@ -1,21 +1,22 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", srcs = [ + "doc.go", "env_parse.go", "env_resolve.go", ], importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/util/env", visibility = ["//visibility:public"], deps = [ - "//pkg/api:go_default_library", - "//pkg/api/resource:go_default_library", - "//pkg/client/clientset_generated/internalclientset:go_default_library", + "//pkg/api/v1/resource:go_default_library", "//pkg/fieldpath: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/util/sets:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", ], ) @@ -32,3 +33,10 @@ filegroup( tags = ["automanaged"], visibility = ["//visibility:public"], ) + +go_test( + name = "go_default_test", + srcs = ["env_parse_test.go"], + importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/util/env", + library = ":go_default_library", +) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/doc.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/doc.go new file mode 100644 index 000000000..39adb0adf --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/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. +*/ + +// Package env provides functions to incorporate environment variables into kubectl commands. +package env // import "k8s.io/kubernetes/pkg/kubectl/cmd/util/env" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_parse.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_parse.go index d9c15123d..1d1686af6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_parse.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_parse.go @@ -24,11 +24,11 @@ import ( "regexp" "strings" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" ) -// Env returns an environment variable or a default value if not specified. +// Env returns an environment variable if not nil, or a default value. func Env(key string, defaultValue string) string { val := os.Getenv(key) if len(val) == 0 { @@ -37,7 +37,7 @@ func Env(key string, defaultValue string) string { return val } -// GetEnv returns an environment value if specified +// GetEnv returns an environment value if not nil, and an ok boolean. func GetEnv(key string) (string, bool) { val := os.Getenv(key) if len(val) == 0 { @@ -49,17 +49,18 @@ func GetEnv(key string) (string, bool) { var argumentEnvironment = regexp.MustCompile("(?ms)^(.+)\\=(.*)$") var validArgumentEnvironment = regexp.MustCompile("(?ms)^(\\w+)\\=(.*)$") -// IsEnvironmentArgument check str is env args +// IsEnvironmentArgument checks whether a string is an environment argument, that is, whether it matches the "anycharacters=anycharacters" pattern. func IsEnvironmentArgument(s string) bool { return argumentEnvironment.MatchString(s) } -// IsValidEnvironmentArgument check str is valid env +// IsValidEnvironmentArgument checks whether a string is a valid environment argument, that is, whether it matches the "wordcharacters=anycharacters" pattern. Word characters can be letters, numbers, and underscores. func IsValidEnvironmentArgument(s string) bool { return validArgumentEnvironment.MatchString(s) } -// SplitEnvironmentFromResources returns resources and envargs +// SplitEnvironmentFromResources separates resources from environment arguments. +// Resources must come first. Arguments may have the "DASH-" syntax. func SplitEnvironmentFromResources(args []string) (resources, envArgs []string, ok bool) { first := true for _, s := range args { @@ -82,8 +83,8 @@ func SplitEnvironmentFromResources(args []string) (resources, envArgs []string, // parseIntoEnvVar parses the list of key-value pairs into kubernetes EnvVar. // envVarType is for making errors more specific to user intentions. -func parseIntoEnvVar(spec []string, defaultReader io.Reader, envVarType string) ([]api.EnvVar, []string, error) { - env := []api.EnvVar{} +func parseIntoEnvVar(spec []string, defaultReader io.Reader, envVarType string) ([]v1.EnvVar, []string, error) { + env := []v1.EnvVar{} exists := sets.NewString() var remove []string for _, envSpec := range spec { @@ -105,7 +106,7 @@ func parseIntoEnvVar(spec []string, defaultReader io.Reader, envVarType string) return nil, nil, fmt.Errorf("invalid %s: %v", envVarType, envSpec) } exists.Insert(parts[0]) - env = append(env, api.EnvVar{ + env = append(env, v1.EnvVar{ Name: parts[0], Value: parts[1], }) @@ -123,13 +124,14 @@ func parseIntoEnvVar(spec []string, defaultReader io.Reader, envVarType string) return env, remove, nil } -// ParseEnv parse env from reader -func ParseEnv(spec []string, defaultReader io.Reader) ([]api.EnvVar, []string, error) { +// ParseEnv parses the elements of the first argument looking for environment variables in key=value form and, if one of those values is "-", it also scans the reader. +// The same environment variable cannot be both modified and removed in the same command. +func ParseEnv(spec []string, defaultReader io.Reader) ([]v1.EnvVar, []string, error) { return parseIntoEnvVar(spec, defaultReader, "environment variable") } -func readEnv(r io.Reader, envVarType string) ([]api.EnvVar, error) { - env := []api.EnvVar{} +func readEnv(r io.Reader, envVarType string) ([]v1.EnvVar, error) { + env := []v1.EnvVar{} scanner := bufio.NewScanner(r) for scanner.Scan() { envSpec := scanner.Text() @@ -141,7 +143,7 @@ func readEnv(r io.Reader, envVarType string) ([]api.EnvVar, error) { if len(parts) != 2 { return nil, fmt.Errorf("invalid %s: %v", envVarType, envSpec) } - env = append(env, api.EnvVar{ + env = append(env, v1.EnvVar{ Name: parts[0], Value: parts[1], }) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_parse_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_parse_test.go new file mode 100644 index 000000000..32be9833c --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_parse_test.go @@ -0,0 +1,96 @@ +/* +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 env + +import ( + "fmt" + "io" + "os" + "strings" +) + +func ExampleEnv_defaultValue() { + fmt.Println(Env("TESTENVVAR", "default")) + // Output: default +} + +func ExampleEnv_variableExists() { + os.Setenv("TESTENVVAR", "test value") + defer os.Unsetenv("TESTENVVAR") + fmt.Println(Env("TESTENVVAR", "default")) + // Output: test value +} + +func ExampleGetEnv_variableExists() { + os.Setenv("THISVAREXISTS", "value") + defer os.Unsetenv("THISVAREXISTS") + fmt.Println(GetEnv("THISVAREXISTS")) + // Output: + // value true +} + +func ExampleGetEnv_variableDoesNotExist() { + fmt.Println(GetEnv("THISVARDOESNOTEXIST")) + // Output: + // false +} + +func ExampleIsEnvironmentArgument_true() { + test := "returns=true" + fmt.Println(IsEnvironmentArgument(test)) + // Output: true +} + +func ExampleIsEnvironmentArgument_false() { + test := "returnsfalse" + fmt.Println(IsEnvironmentArgument(test)) + // Output: false +} + +func ExampleIsValidEnvironmentArgument_true() { + test := "wordcharacters=true" + fmt.Println(IsValidEnvironmentArgument(test)) + // Output: true +} + +func ExampleIsValidEnvironmentArgument_false() { + test := "not$word^characters=test" + fmt.Println(IsValidEnvironmentArgument(test)) + // Output: false +} + +func ExampleSplitEnvironmentFromResources() { + args := []string{`resource`, "ENV\\=ARG", `ONE\=MORE`, `DASH-`} + fmt.Println(SplitEnvironmentFromResources(args)) + // Output: [resource] [ENV\=ARG ONE\=MORE DASH-] true +} + +func ExampleParseEnv_good() { + r := strings.NewReader("FROM=READER") + ss := []string{"ENV=VARIABLE", "AND=ANOTHER", "REMOVE-", "-"} + fmt.Println(ParseEnv(ss, r)) + // Output: + // [{ENV VARIABLE nil} {AND ANOTHER nil} {FROM READER nil}] [REMOVE] +} + +func ExampleParseEnv_bad() { + var r io.Reader + bad := []string{"This not in the key=value format."} + fmt.Println(ParseEnv(bad, r)) + // Output: + // [] [] environment variables must be of the form key=value and can only contain letters, numbers, and underscores +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_resolve.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_resolve.go index 8955fb219..d663f7304 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_resolve.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/env/env_resolve.go @@ -19,30 +19,30 @@ package env import ( "fmt" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/resource" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/api/v1/resource" "k8s.io/kubernetes/pkg/fieldpath" ) -// ResourceStore defines a new resource store data structure +// ResourceStore defines a new resource store data structure. type ResourceStore struct { - SecretStore map[string]*api.Secret - ConfigMapStore map[string]*api.ConfigMap + SecretStore map[string]*v1.Secret + ConfigMapStore map[string]*v1.ConfigMap } -// NewResourceStore returns a pointer to a new resource store data structure +// NewResourceStore returns a pointer to a new resource store data structure. func NewResourceStore() *ResourceStore { return &ResourceStore{ - SecretStore: make(map[string]*api.Secret), - ConfigMapStore: make(map[string]*api.ConfigMap), + SecretStore: make(map[string]*v1.Secret), + ConfigMapStore: make(map[string]*v1.ConfigMap), } } // getSecretRefValue returns the value of a secret in the supplied namespace -func getSecretRefValue(client clientset.Interface, namespace string, store *ResourceStore, secretSelector *api.SecretKeySelector) (string, error) { +func getSecretRefValue(client kubernetes.Interface, namespace string, store *ResourceStore, secretSelector *v1.SecretKeySelector) (string, error) { secret, ok := store.SecretStore[secretSelector.Name] if !ok { var err error @@ -60,7 +60,7 @@ func getSecretRefValue(client clientset.Interface, namespace string, store *Reso } // getConfigMapRefValue returns the value of a configmap in the supplied namespace -func getConfigMapRefValue(client clientset.Interface, namespace string, store *ResourceStore, configMapSelector *api.ConfigMapKeySelector) (string, error) { +func getConfigMapRefValue(client kubernetes.Interface, namespace string, store *ResourceStore, configMapSelector *v1.ConfigMapKeySelector) (string, error) { configMap, ok := store.ConfigMapStore[configMapSelector.Name] if !ok { var err error @@ -77,17 +77,17 @@ func getConfigMapRefValue(client clientset.Interface, namespace string, store *R } // getFieldRef returns the value of the supplied path in the given object -func getFieldRef(obj runtime.Object, from *api.EnvVarSource) (string, error) { +func getFieldRef(obj runtime.Object, from *v1.EnvVarSource) (string, error) { return fieldpath.ExtractFieldPathAsString(obj, from.FieldRef.FieldPath) } // getResourceFieldRef returns the value of a resource in the given container -func getResourceFieldRef(from *api.EnvVarSource, c *api.Container) (string, error) { +func getResourceFieldRef(from *v1.EnvVarSource, c *v1.Container) (string, error) { return resource.ExtractContainerResourceValue(from.ResourceFieldRef, c) } -// GetEnvVarRefValue returns the value referenced by the supplied envvarsource given the other supplied information -func GetEnvVarRefValue(kc clientset.Interface, ns string, store *ResourceStore, from *api.EnvVarSource, obj runtime.Object, c *api.Container) (string, error) { +// GetEnvVarRefValue returns the value referenced by the supplied EnvVarSource given the other supplied information. +func GetEnvVarRefValue(kc kubernetes.Interface, ns string, store *ResourceStore, from *v1.EnvVarSource, obj runtime.Object, c *v1.Container) (string, error) { if from.SecretKeyRef != nil { return getSecretRefValue(kc, ns, store, from.SecretKeyRef) } @@ -107,8 +107,8 @@ func GetEnvVarRefValue(kc clientset.Interface, ns string, store *ResourceStore, return "", fmt.Errorf("invalid valueFrom") } -// GetEnvVarRefString returns a text description of the supplied envvarsource -func GetEnvVarRefString(from *api.EnvVarSource) string { +// GetEnvVarRefString returns a text description of whichever field is set within the supplied EnvVarSource argument. +func GetEnvVarRefString(from *v1.EnvVarSource) string { if from.ConfigMapKeyRef != nil { return fmt.Sprintf("configmap %s, key %s", from.ConfigMapKeyRef.Name, from.ConfigMapKeyRef.Key) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory.go index 2191fbc9e..73c2d8914 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory.go @@ -37,9 +37,8 @@ import ( "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/pkg/api" - apiv1 "k8s.io/kubernetes/pkg/api/v1" + api "k8s.io/kubernetes/pkg/apis/core" + apiv1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/kubectl" @@ -103,11 +102,6 @@ type ClientAccessFactory interface { // just directions to the server. People use this to build RESTMappers on top of BareClientConfig() (*restclient.Config, error) - // TODO this should probably be removed and collapsed into whatever we want to use long term - // probably returning a restclient for a version and leaving contruction up to someone else - FederationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) - // TODO remove this should be rolled into restclient with the right version - FederationClientForVersion(version *schema.GroupVersion) (*restclient.RESTClient, error) // TODO remove. This should be rolled into `ClientSet` ClientSetForVersion(requiredVersion *schema.GroupVersion) (internalclientset.Interface, error) // TODO remove. This should be rolled into `ClientConfig` @@ -122,7 +116,7 @@ type ClientAccessFactory interface { // UpdatePodSpecForObject will call the provided function on the pod spec this object supports, // return false if no pod spec is supported, or return an error. - UpdatePodSpecForObject(obj runtime.Object, fn func(*api.PodSpec) error) (bool, error) + UpdatePodSpecForObject(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error) // MapBasedSelectorForObject returns the map-based selector associated with the provided object. If a // new set-based selector is provided, an error is returned if the selector cannot be converted to a @@ -249,8 +243,15 @@ type BuilderFactory interface { PrinterForMapping(cmd *cobra.Command, isLocal bool, outputOpts *printers.OutputOptions, mapping *meta.RESTMapping, withNamespace bool) (printers.ResourcePrinter, error) // PrintObject prints an api object given command line flags to modify the output format PrintObject(cmd *cobra.Command, isLocal bool, mapper meta.RESTMapper, obj runtime.Object, out io.Writer) error - // One stop shopping for a Builder + // PrintResourceInfoForCommand receives a *cobra.Command and a *resource.Info and + // attempts to print an info object based on the specified output format. If the + // object passed is non-generic, it attempts to print the object using a HumanReadablePrinter. + // Requires that printer flags have been added to cmd (see AddPrinterFlags). + PrintResourceInfoForCommand(cmd *cobra.Command, info *resource.Info, out io.Writer) error + // One stop shopping for a structured Builder NewBuilder() *resource.Builder + // One stop shopping for a unstructured Builder + NewUnstructuredBuilder() *resource.Builder // PluginLoader provides the implementation to be used to load cli plugins. PluginLoader() plugins.PluginLoader // PluginRunner provides the implementation to be used to run cli plugins. @@ -301,13 +302,13 @@ func GetFirstPod(client coreclient.PodsGetter, namespace string, selector string for i := range podList.Items { pod := podList.Items[i] externalPod := &v1.Pod{} - apiv1.Convert_api_Pod_To_v1_Pod(&pod, externalPod, nil) + apiv1.Convert_core_Pod_To_v1_Pod(&pod, externalPod, nil) pods = append(pods, externalPod) } if len(pods) > 0 { sort.Sort(sortBy(pods)) internalPod := &api.Pod{} - apiv1.Convert_v1_Pod_To_api_Pod(pods[0], internalPod, nil) + apiv1.Convert_v1_Pod_To_core_Pod(pods[0], internalPod, nil) return internalPod, len(podList.Items), nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_builder.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_builder.go index b9e0fda2b..36e22d656 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_builder.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_builder.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl/plugins" "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/printers" @@ -54,8 +54,8 @@ func (f *ring2Factory) PrinterForCommand(cmd *cobra.Command, isLocal bool, outpu var err error if isLocal { - mapper = api.Registry.RESTMapper() - typer = api.Scheme + mapper = legacyscheme.Registry.RESTMapper() + typer = legacyscheme.Scheme } else { mapper, typer, err = f.objectMappingFactory.UnstructuredObject() if err != nil { @@ -125,8 +125,13 @@ func (f *ring2Factory) PrintObject(cmd *cobra.Command, isLocal bool, mapper meta if err != nil { return err } + // Prefer the existing external version if specified + var preferredVersion []string + if gvks[0].Version != "" && gvks[0].Version != runtime.APIVersionInternal { + preferredVersion = []string{gvks[0].Version} + } - mapping, err := mapper.RESTMapping(gvks[0].GroupKind()) + mapping, err := mapper.RESTMapping(gvks[0].GroupKind(), preferredVersion...) if err != nil { return err } @@ -138,8 +143,21 @@ func (f *ring2Factory) PrintObject(cmd *cobra.Command, isLocal bool, mapper meta return printer.PrintObj(obj, out) } -// NewBuilder returns a new resource builder. -// Receives a bool flag and avoids remote calls if set to false +func (f *ring2Factory) PrintResourceInfoForCommand(cmd *cobra.Command, info *resource.Info, out io.Writer) error { + printer, err := f.PrinterForCommand(cmd, false, nil, printers.PrintOptions{}) + if err != nil { + return err + } + if !printer.IsGeneric() { + printer, err = f.PrinterForMapping(cmd, false, nil, nil, false) + if err != nil { + return err + } + } + return printer.PrintObj(info.Object, out) +} + +// NewBuilder returns a new resource builder for structured api objects. func (f *ring2Factory) NewBuilder() *resource.Builder { clientMapperFunc := resource.ClientMapperFunc(f.objectMappingFactory.ClientForMapping) @@ -149,6 +167,18 @@ func (f *ring2Factory) NewBuilder() *resource.Builder { return resource.NewBuilder(mapper, categoryExpander, typer, clientMapperFunc, f.clientAccessFactory.Decoder(true)) } +// NewUnstructuredBuilder returns a new resource builder for unstructured api objects. +func (f *ring2Factory) NewUnstructuredBuilder() *resource.Builder { + clientMapperFunc := resource.ClientMapperFunc(f.objectMappingFactory.UnstructuredClientForMapping) + mapper, typer, err := f.objectMappingFactory.UnstructuredObject() + if err != nil { + CheckErr(err) + } + categoryExpander := f.objectMappingFactory.CategoryExpander() + + return resource.NewBuilder(mapper, categoryExpander, typer, clientMapperFunc, unstructured.UnstructuredJSONScheme) +} + // PluginLoader loads plugins from a path set by the KUBECTL_PLUGINS_PATH env var. // If this env var is not set, it defaults to // "~/.kube/plugins", plus diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_client_access.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_client_access.go index 7035a76b9..ea783b99e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_client_access.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_client_access.go @@ -29,11 +29,17 @@ import ( "strings" "time" + "k8s.io/api/core/v1" + "github.com/spf13/cobra" "github.com/spf13/pflag" + appsv1 "k8s.io/api/apps/v1" appsv1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta2 "k8s.io/api/apps/v1beta2" + batchv1 "k8s.io/api/batch/v1" batchv2alpha1 "k8s.io/api/batch/v2alpha1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -45,10 +51,9 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/util/homedir" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/apps" - "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubectl" @@ -212,47 +217,63 @@ func (f *ring0Factory) RESTClient() (*restclient.RESTClient, error) { return restclient.RESTClientFor(clientConfig) } -func (f *ring0Factory) FederationClientSetForVersion(version *schema.GroupVersion) (fedclientset.Interface, error) { - return f.clientCache.FederationClientSetForVersion(version) -} - -func (f *ring0Factory) FederationClientForVersion(version *schema.GroupVersion) (*restclient.RESTClient, error) { - return f.clientCache.FederationClientForVersion(version) -} - func (f *ring0Factory) Decoder(toInternal bool) runtime.Decoder { var decoder runtime.Decoder if toInternal { - decoder = api.Codecs.UniversalDecoder() + decoder = legacyscheme.Codecs.UniversalDecoder() } else { - decoder = api.Codecs.UniversalDeserializer() + decoder = legacyscheme.Codecs.UniversalDeserializer() } return decoder } func (f *ring0Factory) JSONEncoder() runtime.Encoder { - return api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...) + return legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...) } -func (f *ring0Factory) UpdatePodSpecForObject(obj runtime.Object, fn func(*api.PodSpec) error) (bool, error) { +func (f *ring0Factory) UpdatePodSpecForObject(obj runtime.Object, fn func(*v1.PodSpec) error) (bool, error) { // TODO: replace with a swagger schema based approach (identify pod template via schema introspection) switch t := obj.(type) { - case *api.Pod: + case *v1.Pod: return true, fn(&t.Spec) - case *api.ReplicationController: + // ReplicationController + case *v1.ReplicationController: if t.Spec.Template == nil { - t.Spec.Template = &api.PodTemplateSpec{} + t.Spec.Template = &v1.PodTemplateSpec{} } return true, fn(&t.Spec.Template.Spec) - case *extensions.Deployment: + // Deployment + case *extensionsv1beta1.Deployment: return true, fn(&t.Spec.Template.Spec) - case *extensions.DaemonSet: + case *appsv1beta1.Deployment: return true, fn(&t.Spec.Template.Spec) - case *extensions.ReplicaSet: + case *appsv1beta2.Deployment: + return true, fn(&t.Spec.Template.Spec) + case *appsv1.Deployment: + return true, fn(&t.Spec.Template.Spec) + // DaemonSet + case *extensionsv1beta1.DaemonSet: + return true, fn(&t.Spec.Template.Spec) + case *appsv1beta2.DaemonSet: + return true, fn(&t.Spec.Template.Spec) + case *appsv1.DaemonSet: + return true, fn(&t.Spec.Template.Spec) + // ReplicaSet + case *extensionsv1beta1.ReplicaSet: + return true, fn(&t.Spec.Template.Spec) + case *appsv1beta2.ReplicaSet: + return true, fn(&t.Spec.Template.Spec) + case *appsv1.ReplicaSet: + return true, fn(&t.Spec.Template.Spec) + // StatefulSet + case *appsv1beta1.StatefulSet: + return true, fn(&t.Spec.Template.Spec) + case *appsv1beta2.StatefulSet: return true, fn(&t.Spec.Template.Spec) - case *apps.StatefulSet: + case *appsv1.StatefulSet: return true, fn(&t.Spec.Template.Spec) - case *batch.Job: + // Job + case *batchv1.Job: return true, fn(&t.Spec.Template.Spec) default: return false, fmt.Errorf("the object is not a pod or does not have a pod template") @@ -289,7 +310,7 @@ func (f *ring0Factory) MapBasedSelectorForObject(object runtime.Object) (string, } return kubectl.MakeLabels(t.Spec.Selector.MatchLabels), nil default: - gvks, _, err := api.Scheme.ObjectKinds(object) + gvks, _, err := legacyscheme.Scheme.ObjectKinds(object) if err != nil { return "", err } @@ -311,7 +332,7 @@ func (f *ring0Factory) PortsForObject(object runtime.Object) ([]string, error) { case *extensions.ReplicaSet: return getPorts(t.Spec.Template.Spec), nil default: - gvks, _, err := api.Scheme.ObjectKinds(object) + gvks, _, err := legacyscheme.Scheme.ObjectKinds(object) if err != nil { return nil, err } @@ -333,7 +354,7 @@ func (f *ring0Factory) ProtocolsForObject(object runtime.Object) (map[string]str case *extensions.ReplicaSet: return getProtocols(t.Spec.Template.Spec), nil default: - gvks, _, err := api.Scheme.ObjectKinds(object) + gvks, _, err := legacyscheme.Scheme.ObjectKinds(object) if err != nil { return nil, err } @@ -506,6 +527,7 @@ const ( ClusterV1Beta1GeneratorName = "cluster/v1beta1" PodDisruptionBudgetV1GeneratorName = "poddisruptionbudget/v1beta1" PodDisruptionBudgetV2GeneratorName = "poddisruptionbudget/v1beta1/v2" + PriorityClassV1Alpha1GeneratorName = "priorityclass/v1alpha1" ) // DefaultGenerators returns the set of default generators for use in Factory instances diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_object_mapping.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_object_mapping.go index 7ebd2740b..a7cdf7603 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_object_mapping.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_object_mapping.go @@ -35,10 +35,10 @@ import ( "k8s.io/client-go/discovery" "k8s.io/client-go/dynamic" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" client "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/controller" @@ -74,13 +74,13 @@ func NewObjectMappingFactory(clientAccessFactory ClientAccessFactory) ObjectMapp // return lazy implementations of mapper and typer that don't hit the wire until they are // invoked. func (f *ring1Factory) Object() (meta.RESTMapper, runtime.ObjectTyper) { - mapper := api.Registry.RESTMapper() + mapper := legacyscheme.Registry.RESTMapper() discoveryClient, err := f.clientAccessFactory.DiscoveryClient() if err == nil { mapper = meta.FirstHitRESTMapper{ MultiRESTMapper: meta.MultiRESTMapper{ - discovery.NewDeferredDiscoveryRESTMapper(discoveryClient, api.Registry.InterfacesFor), - api.Registry.RESTMapper(), // hardcoded fall back + discovery.NewDeferredDiscoveryRESTMapper(discoveryClient, legacyscheme.Registry.InterfacesFor), + legacyscheme.Registry.RESTMapper(), // hardcoded fall back }, } @@ -90,7 +90,7 @@ func (f *ring1Factory) Object() (meta.RESTMapper, runtime.ObjectTyper) { CheckErr(err) } - return mapper, api.Scheme + return mapper, legacyscheme.Scheme } func (f *ring1Factory) UnstructuredObject() (meta.RESTMapper, runtime.ObjectTyper, error) { @@ -142,9 +142,6 @@ func (f *ring1Factory) ClientForMapping(mapping *meta.RESTMapping) (resource.RES } gvk := mapping.GroupVersionKind switch gvk.Group { - case federation.GroupName: - mappingVersion := mapping.GroupVersionKind.GroupVersion() - return f.clientAccessFactory.FederationClientForVersion(&mappingVersion) case api.GroupName: cfg.APIPath = "/api" default: @@ -175,15 +172,6 @@ func (f *ring1Factory) UnstructuredClientForMapping(mapping *meta.RESTMapping) ( func (f *ring1Factory) Describer(mapping *meta.RESTMapping) (printers.Describer, error) { mappingVersion := mapping.GroupVersionKind.GroupVersion() - if mapping.GroupVersionKind.Group == federation.GroupName { - fedClientSet, err := f.clientAccessFactory.FederationClientSetForVersion(&mappingVersion) - if err != nil { - return nil, err - } - if mapping.GroupVersionKind.Kind == "Cluster" { - return &printersinternal.ClusterDescriber{Interface: fedClientSet}, nil - } - } clientset, err := f.clientAccessFactory.ClientSetForVersion(&mappingVersion) if err != nil { @@ -284,7 +272,7 @@ func (f *ring1Factory) LogsForObject(object, options runtime.Object, timeout tim } default: - gvks, _, err := api.Scheme.ObjectKinds(object) + gvks, _, err := legacyscheme.Scheme.ObjectKinds(object) if err != nil { return nil, err } @@ -326,26 +314,23 @@ func (f *ring1Factory) Reaper(mapping *meta.RESTMapping) (kubectl.Reaper, error) } func (f *ring1Factory) HistoryViewer(mapping *meta.RESTMapping) (kubectl.HistoryViewer, error) { - mappingVersion := mapping.GroupVersionKind.GroupVersion() - clientset, err := f.clientAccessFactory.ClientSetForVersion(&mappingVersion) + external, err := f.clientAccessFactory.KubernetesClientSet() if err != nil { return nil, err } - return kubectl.HistoryViewerFor(mapping.GroupVersionKind.GroupKind(), clientset) + return kubectl.HistoryViewerFor(mapping.GroupVersionKind.GroupKind(), external) } func (f *ring1Factory) Rollbacker(mapping *meta.RESTMapping) (kubectl.Rollbacker, error) { - mappingVersion := mapping.GroupVersionKind.GroupVersion() - clientset, err := f.clientAccessFactory.ClientSetForVersion(&mappingVersion) + external, err := f.clientAccessFactory.KubernetesClientSet() if err != nil { return nil, err } - return kubectl.RollbackerFor(mapping.GroupVersionKind.GroupKind(), clientset) + return kubectl.RollbackerFor(mapping.GroupVersionKind.GroupKind(), external) } func (f *ring1Factory) StatusViewer(mapping *meta.RESTMapping) (kubectl.StatusViewer, error) { - mappingVersion := mapping.GroupVersionKind.GroupVersion() - clientset, err := f.clientAccessFactory.ClientSetForVersion(&mappingVersion) + clientset, err := f.clientAccessFactory.KubernetesClientSet() if err != nil { return nil, err } @@ -415,7 +400,7 @@ func (f *ring1Factory) AttachablePodForObject(object runtime.Object, timeout tim return t, nil default: - gvks, _, err := api.Scheme.ObjectKinds(object) + gvks, _, err := legacyscheme.Scheme.ObjectKinds(object) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_object_mapping_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_object_mapping_test.go index 80622d793..3da414c6e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_object_mapping_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_object_mapping_test.go @@ -26,9 +26,9 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/diff" testclient "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_test.go index 37bc6ee1a..c8f349898 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/factory_test.go @@ -38,8 +38,9 @@ import ( testcore "k8s.io/client-go/testing" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/kubectl" @@ -541,7 +542,7 @@ func TestDiscoveryReplaceAliases(t *testing.T) { if err != nil { t.Fatalf("Unable to create shortcut expander, err = %s", err.Error()) } - b := resource.NewBuilder(mapper, resource.LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()) + b := resource.NewBuilder(mapper, resource.LegacyCategoryExpander, legacyscheme.Scheme, fakeClient(), testapi.Default.Codec()) for _, test := range tests { replaced := b.ReplaceAliases(test.arg) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/helpers.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/helpers.go index 16ba707cd..b982d86b8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/helpers.go @@ -27,7 +27,7 @@ import ( "strings" "time" - jsonpatch "github.com/evanphx/json-patch" + "github.com/evanphx/json-patch" "github.com/golang/glog" "github.com/spf13/cobra" @@ -43,7 +43,7 @@ import ( "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/client-go/tools/clientcmd" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/printers" @@ -362,6 +362,15 @@ func GetFlagInt(cmd *cobra.Command, flag string) int { return i } +// Assumes the flag has a default value. +func GetFlagInt32(cmd *cobra.Command, flag string) int32 { + i, err := cmd.Flags().GetInt32(flag) + if err != nil { + glog.Fatalf("error accessing flag %s for command %s: %v", flag, cmd.Name(), err) + } + return i +} + // Assumes the flag has a default value. func GetFlagInt64(cmd *cobra.Command, flag string) int64 { i, err := cmd.Flags().GetInt64(flag) @@ -687,7 +696,7 @@ func FilterResourceList(obj runtime.Object, filterFuncs kubectl.Filters, filterO if err != nil { return 0, []runtime.Object{obj}, utilerrors.NewAggregate([]error{err}) } - if errs := runtime.DecodeList(items, api.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme); len(errs) > 0 { + if errs := runtime.DecodeList(items, legacyscheme.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme); len(errs) > 0 { return 0, []runtime.Object{obj}, utilerrors.NewAggregate(errs) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/helpers_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/helpers_test.go index 9b5b86c44..db3d09ae3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/helpers_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/helpers_test.go @@ -32,9 +32,10 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/utils/exec" ) @@ -52,7 +53,7 @@ func TestMerge(t *testing.T) { Name: "foo", }, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s" }`, api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s" }`, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), expected: &api.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", @@ -80,7 +81,7 @@ func TestMerge(t *testing.T) { }, }, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "containers": [ { "name": "c1", "image": "green-image" } ] } }`, api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "containers": [ { "name": "c1", "image": "green-image" } ] } }`, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), expected: &api.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", @@ -105,7 +106,7 @@ func TestMerge(t *testing.T) { Name: "foo", }, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "volumes": [ {"name": "v1"}, {"name": "v2"} ] } }`, api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "volumes": [ {"name": "v1"}, {"name": "v2"} ] } }`, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), expected: &api.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", @@ -144,7 +145,7 @@ func TestMerge(t *testing.T) { obj: &api.Service{ Spec: api.ServiceSpec{}, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "ports": [ { "port": 0 } ] } }`, api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "ports": [ { "port": 0 } ] } }`, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), expected: &api.Service{ Spec: api.ServiceSpec{ SessionAffinity: "None", @@ -166,7 +167,7 @@ func TestMerge(t *testing.T) { }, }, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "selector": { "version": "v2" } } }`, api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "selector": { "version": "v2" } } }`, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String()), expected: &api.Service{ Spec: api.ServiceSpec{ SessionAffinity: "None", diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/BUILD index 4ffa5e238..149567c29 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/BUILD @@ -10,7 +10,6 @@ go_library( name = "go_default_library", srcs = [ "doc.go", - "document.go", "extensions.go", "openapi.go", "openapi_getter.go", @@ -19,9 +18,9 @@ go_library( deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", - "//vendor/gopkg.in/yaml.v2:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library", ], ) @@ -43,6 +42,7 @@ go_test( "//vendor/github.com/onsi/ginkgo/types:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/OWNERS new file mode 100644 index 000000000..7eb2d06fe --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/OWNERS @@ -0,0 +1,4 @@ +approvers: +- apelisse +reviewers: +- apelisse diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/openapi.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/openapi.go index bc479f66b..fef6a187b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/openapi.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/openapi.go @@ -17,236 +17,108 @@ limitations under the License. package openapi import ( - "fmt" - "sort" - "strings" + openapi_v2 "github.com/googleapis/gnostic/OpenAPIv2" "k8s.io/apimachinery/pkg/runtime/schema" -) - -// 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" + "k8s.io/kube-openapi/pkg/util/proto" ) // Resources interface describe a resources provider, that can give you // resource based on group-version-kind. type Resources interface { - LookupResource(gvk schema.GroupVersionKind) Schema -} - -// 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) + LookupResource(gvk schema.GroupVersionKind) proto.Schema } -// 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{} -} +// groupVersionKindExtensionKey is the key used to lookup the +// GroupVersionKind value for an object definition from the +// definition's "extensions" map. +const groupVersionKindExtensionKey = "x-kubernetes-group-version-kind" -// Path helps us keep track of type paths -type Path struct { - parent *Path - key string +// document is an implementation of `Resources`. It looks for +// resources in an openapi Schema. +type document struct { + // Maps gvk to model name + resources map[schema.GroupVersionKind]string + models proto.Models } -func NewPath(key string) Path { - return Path{key: key} -} +var _ Resources = &document{} -func (p *Path) Get() []string { - if p == nil { - return []string{} +func NewOpenAPIData(doc *openapi_v2.Document) (Resources, error) { + models, err := proto.NewOpenAPIData(doc) + if err != nil { + return nil, err } - 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), + resources := map[schema.GroupVersionKind]string{} + for _, modelName := range models.ListModels() { + model := models.LookupModel(modelName) + if model == nil { + panic("ListModels returns a model that can't be looked-up.") + } + gvk := parseGroupVersionKind(model) + if len(gvk.Kind) > 0 { + resources[gvk] = modelName + } } -} - -// 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()) + return &document{ + resources: resources, + models: models, + }, nil } -// 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 +func (d *document) LookupResource(gvk schema.GroupVersionKind) proto.Schema { + modelName, found := d.resources[gvk] + if !found { + return nil + } + return d.models.LookupModel(modelName) } -var _ Schema = &Kind{} +// Get and parse GroupVersionKind from the extension. Returns empty if it doesn't have one. +func parseGroupVersionKind(s proto.Schema) schema.GroupVersionKind { + extensions := s.GetExtensions() -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) + // Get the extensions + gvkExtension, ok := extensions[groupVersionKindExtensionKey] + if !ok { + return schema.GroupVersionKind{} } - 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 - } + // gvk extension must be a list of 1 element. + gvkList, ok := gvkExtension.([]interface{}) + if !ok { + return schema.GroupVersionKind{} } - return false -} + if len(gvkList) != 1 { + return schema.GroupVersionKind{} -// 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 + gvk := gvkList[0] - // 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 + // gvk extension list must be a map with group, version, and + // kind fields + gvkMap, ok := gvk.(map[interface{}]interface{}) + if !ok { + return schema.GroupVersionKind{} + } + group, ok := gvkMap["group"].(string) + if !ok { + return schema.GroupVersionKind{} + } + version, ok := gvkMap["version"].(string) + if !ok { + return schema.GroupVersionKind{} + } + kind, ok := gvkMap["kind"].(string) + if !ok { + return schema.GroupVersionKind{} } - 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 + return schema.GroupVersionKind{ + Group: group, + Version: version, + Kind: kind, + } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/openapi_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/openapi_test.go index 93736c93c..5ee7302f1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/openapi_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/openapi_test.go @@ -23,6 +23,7 @@ import ( . "github.com/onsi/gomega" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/kube-openapi/pkg/util/proto" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" tst "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing" ) @@ -44,98 +45,17 @@ var _ = Describe("Reading apps/v1beta1/Deployment from openAPIData", func() { Group: "apps", } - var schema openapi.Schema + var schema proto.Schema It("should lookup the Schema by its GroupVersionKind", func() { schema = resources.LookupResource(gvk) Expect(schema).ToNot(BeNil()) }) - var deployment *openapi.Kind + var deployment *proto.Kind It("should be a Kind", func() { - deployment = schema.(*openapi.Kind) + deployment = schema.(*proto.Kind) Expect(deployment).ToNot(BeNil()) }) - - It("should have a path", func() { - Expect(deployment.GetPath().Get()).To(Equal([]string{"io.k8s.api.apps.v1beta1.Deployment"})) - }) - - It("should have a kind key of type string", func() { - Expect(deployment.Fields).To(HaveKey("kind")) - key := deployment.Fields["kind"].(*openapi.Primitive) - Expect(key).ToNot(BeNil()) - Expect(key.Type).To(Equal("string")) - Expect(key.GetPath().Get()).To(Equal([]string{"io.k8s.api.apps.v1beta1.Deployment", ".kind"})) - }) - - It("should have a apiVersion key of type string", func() { - Expect(deployment.Fields).To(HaveKey("apiVersion")) - key := deployment.Fields["apiVersion"].(*openapi.Primitive) - Expect(key).ToNot(BeNil()) - Expect(key.Type).To(Equal("string")) - Expect(key.GetPath().Get()).To(Equal([]string{"io.k8s.api.apps.v1beta1.Deployment", ".apiVersion"})) - }) - - It("should have a metadata key of type Reference", func() { - Expect(deployment.Fields).To(HaveKey("metadata")) - key := deployment.Fields["metadata"].(openapi.Reference) - Expect(key).ToNot(BeNil()) - Expect(key.Reference()).To(Equal("io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta")) - subSchema := key.SubSchema().(*openapi.Kind) - Expect(subSchema).ToNot(BeNil()) - }) - - var status *openapi.Kind - It("should have a status key of type Reference", func() { - Expect(deployment.Fields).To(HaveKey("status")) - key := deployment.Fields["status"].(openapi.Reference) - Expect(key).ToNot(BeNil()) - Expect(key.Reference()).To(Equal("io.k8s.api.apps.v1beta1.DeploymentStatus")) - status = key.SubSchema().(*openapi.Kind) - Expect(status).ToNot(BeNil()) - }) - - It("should have a valid DeploymentStatus", func() { - By("having availableReplicas key") - Expect(status.Fields).To(HaveKey("availableReplicas")) - replicas := status.Fields["availableReplicas"].(*openapi.Primitive) - Expect(replicas).ToNot(BeNil()) - Expect(replicas.Type).To(Equal("integer")) - - By("having conditions key") - Expect(status.Fields).To(HaveKey("conditions")) - conditions := status.Fields["conditions"].(*openapi.Array) - Expect(conditions).ToNot(BeNil()) - Expect(conditions.GetName()).To(Equal(`Array of Reference to "io.k8s.api.apps.v1beta1.DeploymentCondition"`)) - Expect(conditions.GetExtensions()).To(Equal(map[string]interface{}{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - })) - condition := conditions.SubType.(openapi.Reference) - Expect(condition.Reference()).To(Equal("io.k8s.api.apps.v1beta1.DeploymentCondition")) - }) - - var spec *openapi.Kind - It("should have a spec key of type Reference", func() { - Expect(deployment.Fields).To(HaveKey("spec")) - key := deployment.Fields["spec"].(openapi.Reference) - Expect(key).ToNot(BeNil()) - Expect(key.Reference()).To(Equal("io.k8s.api.apps.v1beta1.DeploymentSpec")) - spec = key.SubSchema().(*openapi.Kind) - Expect(spec).ToNot(BeNil()) - }) - - It("should have a spec with no gvk", func() { - _, found := spec.GetExtensions()["x-kubernetes-group-version-kind"] - Expect(found).To(BeFalse()) - }) - - It("should have a spec with a PodTemplateSpec sub-field", func() { - Expect(spec.Fields).To(HaveKey("template")) - key := spec.Fields["template"].(openapi.Reference) - Expect(key).ToNot(BeNil()) - Expect(key.Reference()).To(Equal("io.k8s.api.core.v1.PodTemplateSpec")) - }) }) var _ = Describe("Reading authorization.k8s.io/v1/SubjectAccessReview from openAPIData", func() { @@ -153,66 +73,21 @@ var _ = Describe("Reading authorization.k8s.io/v1/SubjectAccessReview from openA Group: "authorization.k8s.io", } - var schema openapi.Schema + var schema proto.Schema It("should lookup the Schema by its GroupVersionKind", func() { schema = resources.LookupResource(gvk) Expect(schema).ToNot(BeNil()) }) - var sarspec *openapi.Kind + var sarspec *proto.Kind It("should be a Kind and have a spec", func() { - sar := schema.(*openapi.Kind) + sar := schema.(*proto.Kind) Expect(sar).ToNot(BeNil()) Expect(sar.Fields).To(HaveKey("spec")) - specRef := sar.Fields["spec"].(openapi.Reference) + specRef := sar.Fields["spec"].(proto.Reference) Expect(specRef).ToNot(BeNil()) Expect(specRef.Reference()).To(Equal("io.k8s.api.authorization.v1.SubjectAccessReviewSpec")) - sarspec = specRef.SubSchema().(*openapi.Kind) + sarspec = specRef.SubSchema().(*proto.Kind) Expect(sarspec).ToNot(BeNil()) }) - - It("should have a valid SubjectAccessReviewSpec", func() { - Expect(sarspec.Fields).To(HaveKey("extra")) - extra := sarspec.Fields["extra"].(*openapi.Map) - Expect(extra).ToNot(BeNil()) - Expect(extra.GetName()).To(Equal("Map of Array of string")) - Expect(extra.GetPath().Get()).To(Equal([]string{"io.k8s.api.authorization.v1.SubjectAccessReviewSpec", ".extra"})) - array := extra.SubType.(*openapi.Array) - Expect(array).ToNot(BeNil()) - Expect(array.GetName()).To(Equal("Array of string")) - Expect(array.GetPath().Get()).To(Equal([]string{"io.k8s.api.authorization.v1.SubjectAccessReviewSpec", ".extra"})) - str := array.SubType.(*openapi.Primitive) - Expect(str).ToNot(BeNil()) - Expect(str.Type).To(Equal("string")) - Expect(str.GetName()).To(Equal("string")) - Expect(str.GetPath().Get()).To(Equal([]string{"io.k8s.api.authorization.v1.SubjectAccessReviewSpec", ".extra"})) - }) -}) - -var _ = Describe("Path", func() { - It("can be created by NewPath", func() { - path := openapi.NewPath("key") - Expect(path.String()).To(Equal("key")) - }) - It("can create and print complex paths", func() { - key := openapi.NewPath("key") - array := key.ArrayPath(12) - field := array.FieldPath("subKey") - - Expect(field.String()).To(Equal("key[12].subKey")) - }) - It("has a length", func() { - key := openapi.NewPath("key") - array := key.ArrayPath(12) - field := array.FieldPath("subKey") - - Expect(field.Len()).To(Equal(3)) - }) - It("can look like an array", func() { - key := openapi.NewPath("key") - array := key.ArrayPath(12) - field := array.FieldPath("subKey") - - Expect(field.Get()).To(Equal([]string{"key", "[12]", ".subKey"})) - }) }) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing/BUILD index dbe051cac..26a7b3467 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing/BUILD @@ -15,6 +15,7 @@ go_library( "//vendor/github.com/googleapis/gnostic/compiler:go_default_library", "//vendor/gopkg.in/yaml.v2:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing/openapi.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing/openapi.go index e08f1defc..46d2328a6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing/openapi.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing/openapi.go @@ -22,6 +22,7 @@ import ( "sync" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/kube-openapi/pkg/util/proto" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" yaml "gopkg.in/yaml.v2" @@ -109,7 +110,7 @@ func NewFakeResources(path string) *FakeResources { // LookupResource will read the schema, parse it and return the // resources. It doesn't return errors and will panic instead. -func (f *FakeResources) LookupResource(gvk schema.GroupVersionKind) openapi.Schema { +func (f *FakeResources) LookupResource(gvk schema.GroupVersionKind) proto.Schema { s, err := f.fake.OpenAPISchema() if err != nil { panic(err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/BUILD index cb52520d3..cf05b074a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/BUILD @@ -8,11 +8,7 @@ load( go_library( name = "go_default_library", - srcs = [ - "errors.go", - "types.go", - "validation.go", - ], + srcs = ["validation.go"], importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation", deps = [ "//pkg/kubectl/cmd/util/openapi:go_default_library", @@ -20,19 +16,20 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/yaml:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/util/proto/validation:go_default_library", ], ) go_test( - name = "go_default_xtest", + name = "go_default_test", srcs = [ "validation_suite_test.go", "validation_test.go", ], data = ["//api/openapi-spec:swagger-spec"], - importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation_test", + importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation", + library = ":go_default_library", deps = [ - ":go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/kubectl/cmd/util/openapi:go_default_library", "//pkg/kubectl/cmd/util/openapi/testing:go_default_library", @@ -41,6 +38,7 @@ go_test( "//vendor/github.com/onsi/ginkgo/types:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/util/proto/validation:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/errors.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/errors.go deleted file mode 100644 index 4f4ab9e3b..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/errors.go +++ /dev/null @@ -1,79 +0,0 @@ -/* -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 validation - -import ( - "fmt" -) - -type Errors struct { - errors []error -} - -func (e *Errors) Errors() []error { - return e.errors -} - -func (e *Errors) AppendErrors(err ...error) { - e.errors = append(e.errors, err...) -} - -type ValidationError struct { - Path string - Err error -} - -func (e ValidationError) Error() string { - return fmt.Sprintf("ValidationError(%s): %v", e.Path, e.Err) -} - -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) -} - -type MissingRequiredFieldError struct { - Path string - Field string -} - -func (e MissingRequiredFieldError) Error() string { - return fmt.Sprintf("missing required field %q in %s", e.Field, e.Path) -} - -type UnknownFieldError struct { - Path string - Field string -} - -func (e UnknownFieldError) Error() string { - return fmt.Sprintf("unknown field %q in %s", e.Field, e.Path) -} - -type InvalidObjectTypeError struct { - Path string - Type string -} - -func (e InvalidObjectTypeError) Error() string { - return fmt.Sprintf("unknown object type %q in %s", e.Type, e.Path) -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/types.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/types.go deleted file mode 100644 index 2c16c2b16..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/types.go +++ /dev/null @@ -1,289 +0,0 @@ -/* -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 validation - -import ( - "reflect" - "sort" - - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" -) - -type ValidationItem interface { - openapi.SchemaVisitor - - Errors() []error - Path() *openapi.Path -} - -type baseItem struct { - errors Errors - path openapi.Path -} - -// Errors returns the list of errors found for this item. -func (item *baseItem) Errors() []error { - return item.errors.Errors() -} - -// AddValidationError wraps the given error into a ValidationError and -// attaches it to this item. -func (item *baseItem) AddValidationError(err error) { - item.errors.AppendErrors(ValidationError{Path: item.path.String(), Err: err}) -} - -// AddError adds a regular (non-validation related) error to the list. -func (item *baseItem) AddError(err error) { - item.errors.AppendErrors(err) -} - -// CopyErrors adds a list of errors to this item. This is useful to copy -// errors from subitems. -func (item *baseItem) CopyErrors(errs []error) { - item.errors.AppendErrors(errs...) -} - -// Path returns the path of this item, helps print useful errors. -func (item *baseItem) Path() *openapi.Path { - return &item.path -} - -// mapItem represents a map entry in the yaml. -type mapItem struct { - baseItem - - Map map[string]interface{} -} - -func (item *mapItem) sortedKeys() []string { - sortedKeys := []string{} - for key := range item.Map { - sortedKeys = append(sortedKeys, key) - } - sort.Strings(sortedKeys) - return sortedKeys -} - -var _ ValidationItem = &mapItem{} - -func (item *mapItem) VisitPrimitive(schema *openapi.Primitive) { - item.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: schema.Type, Actual: "map"}) -} - -func (item *mapItem) VisitArray(schema *openapi.Array) { - item.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: "array", Actual: "map"}) -} - -func (item *mapItem) VisitMap(schema *openapi.Map) { - for _, key := range item.sortedKeys() { - subItem, err := itemFactory(item.Path().FieldPath(key), item.Map[key]) - if err != nil { - item.AddError(err) - continue - } - schema.SubType.Accept(subItem) - item.CopyErrors(subItem.Errors()) - } -} - -func (item *mapItem) VisitKind(schema *openapi.Kind) { - // Verify each sub-field. - for _, key := range item.sortedKeys() { - if item.Map[key] == nil { - continue - } - subItem, err := itemFactory(item.Path().FieldPath(key), item.Map[key]) - if err != nil { - item.AddError(err) - continue - } - if _, ok := schema.Fields[key]; !ok { - item.AddValidationError(UnknownFieldError{Path: schema.GetPath().String(), Field: key}) - continue - } - schema.Fields[key].Accept(subItem) - item.CopyErrors(subItem.Errors()) - } - - // Verify that all required fields are present. - for _, required := range schema.RequiredFields { - if v, ok := item.Map[required]; !ok || v == nil { - item.AddValidationError(MissingRequiredFieldError{Path: schema.GetPath().String(), Field: required}) - } - } -} - -func (item *mapItem) VisitReference(schema openapi.Reference) { - // passthrough - schema.SubSchema().Accept(item) -} - -// arrayItem represents a yaml array. -type arrayItem struct { - baseItem - - Array []interface{} -} - -var _ ValidationItem = &arrayItem{} - -func (item *arrayItem) VisitPrimitive(schema *openapi.Primitive) { - item.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: schema.Type, Actual: "array"}) -} - -func (item *arrayItem) VisitArray(schema *openapi.Array) { - for i, v := range item.Array { - path := item.Path().ArrayPath(i) - if v == nil { - item.AddValidationError(InvalidObjectTypeError{Type: "nil", Path: path.String()}) - continue - } - subItem, err := itemFactory(path, v) - if err != nil { - item.AddError(err) - continue - } - schema.SubType.Accept(subItem) - item.CopyErrors(subItem.Errors()) - } -} - -func (item *arrayItem) VisitMap(schema *openapi.Map) { - item.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: "array", Actual: "map"}) -} - -func (item *arrayItem) VisitKind(schema *openapi.Kind) { - item.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: "array", Actual: "map"}) -} - -func (item *arrayItem) VisitReference(schema openapi.Reference) { - // passthrough - schema.SubSchema().Accept(item) -} - -// primitiveItem represents a yaml value. -type primitiveItem struct { - baseItem - - Value interface{} - Kind string -} - -var _ ValidationItem = &primitiveItem{} - -func (item *primitiveItem) VisitPrimitive(schema *openapi.Primitive) { - // Some types of primitives can match more than one (a number - // can be a string, but not the other way around). Return from - // the switch if we have a valid possible type conversion - // NOTE(apelisse): This logic is blindly copied from the - // existing swagger logic, and I'm not sure I agree with it. - switch schema.Type { - case openapi.Boolean: - switch item.Kind { - case openapi.Boolean: - return - } - case openapi.Integer: - switch item.Kind { - case openapi.Integer, openapi.Number: - return - } - case openapi.Number: - switch item.Kind { - case openapi.Number: - return - } - case openapi.String: - return - } - - item.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: schema.Type, Actual: item.Kind}) -} - -func (item *primitiveItem) VisitArray(schema *openapi.Array) { - item.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: "array", Actual: item.Kind}) -} - -func (item *primitiveItem) VisitMap(schema *openapi.Map) { - item.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: "map", Actual: item.Kind}) -} - -func (item *primitiveItem) VisitKind(schema *openapi.Kind) { - item.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: "map", Actual: item.Kind}) -} - -func (item *primitiveItem) VisitReference(schema openapi.Reference) { - // passthrough - schema.SubSchema().Accept(item) -} - -// itemFactory creates the relevant item type/visitor based on the current yaml type. -func itemFactory(path openapi.Path, v interface{}) (ValidationItem, error) { - // We need to special case for no-type fields in yaml (e.g. empty item in list) - if v == nil { - return nil, InvalidObjectTypeError{Type: "nil", Path: path.String()} - } - kind := reflect.TypeOf(v).Kind() - switch kind { - case reflect.Bool: - return &primitiveItem{ - baseItem: baseItem{path: path}, - Value: v, - Kind: openapi.Boolean, - }, nil - case reflect.Int, - reflect.Int8, - reflect.Int16, - reflect.Int32, - reflect.Int64, - reflect.Uint, - reflect.Uint8, - reflect.Uint16, - reflect.Uint32, - reflect.Uint64: - return &primitiveItem{ - baseItem: baseItem{path: path}, - Value: v, - Kind: openapi.Integer, - }, nil - case reflect.Float32, - reflect.Float64: - return &primitiveItem{ - baseItem: baseItem{path: path}, - Value: v, - Kind: openapi.Number, - }, nil - case reflect.String: - return &primitiveItem{ - baseItem: baseItem{path: path}, - Value: v, - Kind: openapi.String, - }, nil - case reflect.Array, - reflect.Slice: - return &arrayItem{ - baseItem: baseItem{path: path}, - Array: v.([]interface{}), - }, nil - case reflect.Map: - return &mapItem{ - baseItem: baseItem{path: path}, - Map: v.(map[string]interface{}), - }, nil - } - return nil, InvalidObjectTypeError{Type: kind.String(), Path: path.String()} -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation.go index 212012293..ce8826896 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation.go @@ -24,28 +24,34 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/yaml" + "k8s.io/kube-openapi/pkg/util/proto/validation" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" ) +// SchemaValidation validates the object against an OpenAPI schema. type SchemaValidation struct { resources openapi.Resources } +// NewSchemaValidation creates a new SchemaValidation that can be used +// to validate objects. func NewSchemaValidation(resources openapi.Resources) *SchemaValidation { return &SchemaValidation{ resources: resources, } } +// ValidateBytes will validates the object against using the Resources +// object. func (v *SchemaValidation) ValidateBytes(data []byte) error { obj, err := parse(data) if err != nil { return err } - gvk, err := getObjectKind(obj) - if err != nil { - return err + gvk, errs := getObjectKind(obj) + if errs != nil { + return utilerrors.NewAggregate(errs) } if strings.HasSuffix(gvk.Kind, "List") { @@ -61,15 +67,15 @@ func (v *SchemaValidation) validateList(object interface{}) []error { return []error{errors.New("invalid object to validate")} } - errs := []error{} + allErrors := []error{} for _, item := range fields["items"].([]interface{}) { - if gvk, err := getObjectKind(item); err != nil { - errs = append(errs, err) + if gvk, errs := getObjectKind(item); errs != nil { + allErrors = append(allErrors, errs...) } else { - errs = append(errs, v.validateResource(item, gvk)...) + allErrors = append(allErrors, v.validateResource(item, gvk)...) } } - return errs + return allErrors } func (v *SchemaValidation) validateResource(obj interface{}, gvk schema.GroupVersionKind) []error { @@ -79,12 +85,7 @@ func (v *SchemaValidation) validateResource(obj interface{}, gvk schema.GroupVer return nil } - rootValidation, err := itemFactory(openapi.NewPath(gvk.Kind), obj) - if err != nil { - return []error{err} - } - resource.Accept(rootValidation) - return rootValidation.Errors() + return validation.ValidateModel(obj, resource, gvk.Kind) } func parse(data []byte) (interface{}, error) { @@ -99,29 +100,39 @@ func parse(data []byte) (interface{}, error) { return obj, nil } -func getObjectKind(object interface{}) (schema.GroupVersionKind, error) { +func getObjectKind(object interface{}) (schema.GroupVersionKind, []error) { + var listErrors []error fields := object.(map[string]interface{}) if fields == nil { - return schema.GroupVersionKind{}, errors.New("invalid object to validate") + listErrors = append(listErrors, errors.New("invalid object to validate")) + return schema.GroupVersionKind{}, listErrors } + + var group string + var version string apiVersion := fields["apiVersion"] if apiVersion == nil { - return schema.GroupVersionKind{}, errors.New("apiVersion not set") - } - if _, ok := apiVersion.(string); !ok { - return schema.GroupVersionKind{}, errors.New("apiVersion isn't string type") - } - gv, err := schema.ParseGroupVersion(apiVersion.(string)) - if err != nil { - return schema.GroupVersionKind{}, err + listErrors = append(listErrors, errors.New("apiVersion not set")) + } else if _, ok := apiVersion.(string); !ok { + listErrors = append(listErrors, errors.New("apiVersion isn't string type")) + } else { + gv, err := schema.ParseGroupVersion(apiVersion.(string)) + if err != nil { + listErrors = append(listErrors, err) + } else { + group = gv.Group + version = gv.Version + } } kind := fields["kind"] if kind == nil { - return schema.GroupVersionKind{}, errors.New("kind not set") + listErrors = append(listErrors, errors.New("kind not set")) + } else if _, ok := kind.(string); !ok { + listErrors = append(listErrors, errors.New("kind isn't string type")) } - if _, ok := kind.(string); !ok { - return schema.GroupVersionKind{}, errors.New("kind isn't string type") + if listErrors != nil { + return schema.GroupVersionKind{}, listErrors } - return schema.GroupVersionKind{Group: gv.Group, Version: gv.Version, Kind: kind.(string)}, nil + return schema.GroupVersionKind{Group: group, Version: version, Kind: kind.(string)}, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation_suite_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation_suite_test.go index bfc62c3ca..30e4381f9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation_suite_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation_suite_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package validation_test +package validation import ( . "github.com/onsi/ginkgo" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation_test.go index c1f86f256..c038682a3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation/validation_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package validation_test +package validation import ( "path/filepath" @@ -23,23 +23,23 @@ import ( . "github.com/onsi/gomega" utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/kube-openapi/pkg/util/proto/validation" // This dependency is needed to register API types. _ "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" tst "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation" ) var fakeSchema = tst.Fake{Path: filepath.Join("..", "..", "..", "..", "..", "..", "api", "openapi-spec", "swagger.json")} var _ = Describe("resource validation using OpenAPI Schema", func() { - var validator *validation.SchemaValidation + var validator *SchemaValidation BeforeEach(func() { s, err := fakeSchema.OpenAPISchema() Expect(err).To(BeNil()) resources, err := openapi.NewOpenAPIData(s) Expect(err).To(BeNil()) - validator = validation.NewSchemaValidation(resources) + validator = NewSchemaValidation(resources) Expect(validator).ToNot(BeNil()) }) @@ -335,4 +335,63 @@ items: Expect(err).To(BeNil()) }) + + It("fails because apiVersion is not provided", func() { + err := validator.ValidateBytes([]byte(` +kind: Pod +metadata: + name: name +spec: + containers: + - name: name + image: image +`)) + Expect(err.Error()).To(Equal("apiVersion not set")) + }) + + It("fails because apiVersion type is not string and kind is not provided", func() { + err := validator.ValidateBytes([]byte(` +apiVersion: 1 +metadata: + name: name +spec: + containers: + - name: name + image: image +`)) + Expect(err.Error()).To(Equal("[apiVersion isn't string type, kind not set]")) + }) + + It("fails because List first item is missing kind and second item is missing apiVersion", func() { + err := validator.ValidateBytes([]byte(` +apiVersion: v1 +kind: List +items: +- apiVersion: v1 + metadata: + name: name + spec: + replicas: 1 + template: + metadata: + labels: + name: name + spec: + containers: + - name: name + image: image +- kind: Service + metadata: + name: name + spec: + type: NodePort + ports: + - port: 123 + targetPort: 1234 + name: name + selector: + name: name +`)) + Expect(err.Error()).To(Equal("[kind not set, apiVersion not set]")) + }) }) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/printing.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/printing.go index 8e26c2559..a45fe1922 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/printing.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/printing.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/pkg/kubectl" - "k8s.io/kubernetes/pkg/kubectl/resource" + "k8s.io/kubernetes/pkg/kubectl/cmd/templates" "k8s.io/kubernetes/pkg/printers" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" @@ -137,24 +137,6 @@ func PrinterForCommand(cmd *cobra.Command, outputOpts *printers.OutputOptions, m return maybeWrapSortingPrinter(cmd, printer), nil } -// PrintResourceInfoForCommand receives a *cobra.Command and a *resource.Info and -// attempts to print an info object based on the specified output format. If the -// object passed is non-generic, it attempts to print the object using a HumanReadablePrinter. -// Requires that printer flags have been added to cmd (see AddPrinterFlags). -func PrintResourceInfoForCommand(cmd *cobra.Command, info *resource.Info, f Factory, out io.Writer) error { - printer, err := f.PrinterForCommand(cmd, false, nil, printers.PrintOptions{}) - if err != nil { - return err - } - if !printer.IsGeneric() { - printer, err = f.PrinterForMapping(cmd, false, nil, nil, false) - if err != nil { - return err - } - } - return printer.PrintObj(info.Object, out) -} - // extractOutputOptions parses printer specific commandline args and returns // printers.OutputsOptions object. func extractOutputOptions(cmd *cobra.Command) *printers.OutputOptions { @@ -216,3 +198,53 @@ func maybeWrapSortingPrinter(cmd *cobra.Command, printer printers.ResourcePrinte } return printer } + +// ValidResourceTypeList returns a multi-line string containing the valid resources. May +// be called before the factory is initialized. +// TODO: This function implementation should be replaced with a real implementation from the +// discovery service. +func ValidResourceTypeList(f ClientAccessFactory) string { + // TODO: Should attempt to use the cached discovery list or fallback to a static list + // that is calculated from code compiled into the factory. + return templates.LongDesc(`Valid resource types include: + + * all + * certificatesigningrequests (aka 'csr') + * clusterrolebindings + * clusterroles + * componentstatuses (aka 'cs') + * configmaps (aka 'cm') + * controllerrevisions + * cronjobs + * customresourcedefinition (aka 'crd') + * daemonsets (aka 'ds') + * deployments (aka 'deploy') + * endpoints (aka 'ep') + * events (aka 'ev') + * horizontalpodautoscalers (aka 'hpa') + * ingresses (aka 'ing') + * jobs + * limitranges (aka 'limits') + * namespaces (aka 'ns') + * networkpolicies (aka 'netpol') + * nodes (aka 'no') + * persistentvolumeclaims (aka 'pvc') + * persistentvolumes (aka 'pv') + * poddisruptionbudgets (aka 'pdb') + * podpreset + * pods (aka 'po') + * podsecuritypolicies (aka 'psp') + * podtemplates + * replicasets (aka 'rs') + * replicationcontrollers (aka 'rc') + * resourcequotas (aka 'quota') + * rolebindings + * roles + * secrets + * serviceaccounts (aka 'sa') + * services (aka 'svc') + * statefulsets (aka 'sts') + * storageclasses (aka 'sc') + + `) +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/shortcut_restmapper.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/shortcut_restmapper.go index 8d71af02c..33889b48a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/shortcut_restmapper.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/shortcut_restmapper.go @@ -79,22 +79,24 @@ func (e shortcutExpander) RESTMappings(gk schema.GroupKind, versions ...string) func (e shortcutExpander) getShortcutMappings() ([]kubectl.ResourceShortcuts, error) { res := []kubectl.ResourceShortcuts{} // get server resources + // This can return an error *and* the results it was able to find. We don't need to fail on the error. apiResList, err := e.discoveryClient.ServerResources() - if err == nil { - for _, apiResources := range apiResList { - for _, apiRes := range apiResources.APIResources { - for _, shortName := range apiRes.ShortNames { - gv, err := schema.ParseGroupVersion(apiResources.GroupVersion) - if err != nil { - glog.V(1).Infof("Unable to parse groupversion = %s due to = %s", apiResources.GroupVersion, err.Error()) - continue - } - rs := kubectl.ResourceShortcuts{ - ShortForm: schema.GroupResource{Group: gv.Group, Resource: shortName}, - LongForm: schema.GroupResource{Group: gv.Group, Resource: apiRes.Name}, - } - res = append(res, rs) + if err != nil { + glog.V(1).Infof("Error loading discovery information: %v", err) + } + for _, apiResources := range apiResList { + for _, apiRes := range apiResources.APIResources { + for _, shortName := range apiRes.ShortNames { + gv, err := schema.ParseGroupVersion(apiResources.GroupVersion) + if err != nil { + glog.V(1).Infof("Unable to parse groupversion = %s due to = %s", apiResources.GroupVersion, err.Error()) + continue + } + rs := kubectl.ResourceShortcuts{ + ShortForm: schema.GroupResource{Group: gv.Group, Resource: shortName}, + LongForm: schema.GroupResource{Group: gv.Group, Resource: apiRes.Name}, } + res = append(res, rs) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/configmap.go b/vendor/k8s.io/kubernetes/pkg/kubectl/configmap.go index cc73d690a..8d1ef5281 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/configmap.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/configmap.go @@ -23,9 +23,9 @@ import ( "path" "strings" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl/util" "k8s.io/kubernetes/pkg/kubectl/util/hash" ) @@ -127,7 +127,7 @@ func (s ConfigMapGeneratorV1) StructuredGenerate() (runtime.Object, error) { if err := s.validate(); err != nil { return nil, err } - configMap := &api.ConfigMap{} + configMap := &v1.ConfigMap{} configMap.Name = s.Name configMap.Data = map[string]string{} if len(s.FileSources) > 0 { @@ -168,7 +168,7 @@ func (s ConfigMapGeneratorV1) validate() error { // handleConfigMapFromLiteralSources adds the specified literal source // information into the provided configMap. -func handleConfigMapFromLiteralSources(configMap *api.ConfigMap, literalSources []string) error { +func handleConfigMapFromLiteralSources(configMap *v1.ConfigMap, literalSources []string) error { for _, literalSource := range literalSources { keyName, value, err := util.ParseLiteralSource(literalSource) if err != nil { @@ -184,7 +184,7 @@ func handleConfigMapFromLiteralSources(configMap *api.ConfigMap, literalSources // handleConfigMapFromFileSources adds the specified file source information // into the provided configMap -func handleConfigMapFromFileSources(configMap *api.ConfigMap, fileSources []string) error { +func handleConfigMapFromFileSources(configMap *v1.ConfigMap, fileSources []string) error { for _, fileSource := range fileSources { keyName, filePath, err := util.ParseFileSource(fileSource) if err != nil { @@ -229,7 +229,7 @@ func handleConfigMapFromFileSources(configMap *api.ConfigMap, fileSources []stri // handleConfigMapFromEnvFileSource adds the specified env file source information // into the provided configMap -func handleConfigMapFromEnvFileSource(configMap *api.ConfigMap, envFileSource string) error { +func handleConfigMapFromEnvFileSource(configMap *v1.ConfigMap, envFileSource string) error { info, err := os.Stat(envFileSource) if err != nil { switch err := err.(type) { @@ -250,7 +250,7 @@ func handleConfigMapFromEnvFileSource(configMap *api.ConfigMap, envFileSource st // addKeyFromFileToConfigMap adds a key with the given name to a ConfigMap, populating // the value with the content of the given file path, or returns an error. -func addKeyFromFileToConfigMap(configMap *api.ConfigMap, keyName, filePath string) error { +func addKeyFromFileToConfigMap(configMap *v1.ConfigMap, keyName, filePath string) error { data, err := ioutil.ReadFile(filePath) if err != nil { return err @@ -260,7 +260,7 @@ func addKeyFromFileToConfigMap(configMap *api.ConfigMap, keyName, filePath strin // addKeyFromLiteralToConfigMap adds the given key and data to the given config map, // returning an error if the key is not valid or if the key already exists. -func addKeyFromLiteralToConfigMap(configMap *api.ConfigMap, keyName, data string) error { +func addKeyFromLiteralToConfigMap(configMap *v1.ConfigMap, keyName, data string) error { // Note, the rules for ConfigMap keys are the exact same as the ones for SecretKeys. if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 { return fmt.Errorf("%q is not a valid key name for a ConfigMap: %s", keyName, strings.Join(errs, ";")) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/configmap_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/configmap_test.go index 74a85a89e..05007dfb4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/configmap_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/configmap_test.go @@ -22,22 +22,22 @@ import ( "reflect" "testing" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" ) func TestConfigMapGenerate(t *testing.T) { tests := []struct { setup func(t *testing.T, params map[string]interface{}) func() params map[string]interface{} - expected *api.ConfigMap + expected *v1.ConfigMap expectErr bool }{ { params: map[string]interface{}{ "name": "foo", }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -50,7 +50,7 @@ func TestConfigMapGenerate(t *testing.T) { "name": "foo", "append-hash": true, }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "foo-867km9574f", }, @@ -63,7 +63,7 @@ func TestConfigMapGenerate(t *testing.T) { "name": "foo", "type": "my-type", }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -77,7 +77,7 @@ func TestConfigMapGenerate(t *testing.T) { "type": "my-type", "append-hash": true, }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "foo-867km9574f", }, @@ -90,7 +90,7 @@ func TestConfigMapGenerate(t *testing.T) { "name": "foo", "from-literal": []string{"key1=value1", "key2=value2"}, }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -107,7 +107,7 @@ func TestConfigMapGenerate(t *testing.T) { "from-literal": []string{"key1=value1", "key2=value2"}, "append-hash": true, }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "foo-gcb75dd9gb", }, @@ -144,7 +144,7 @@ func TestConfigMapGenerate(t *testing.T) { "name": "foo", "from-literal": []string{"key1==value1"}, }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -160,7 +160,7 @@ func TestConfigMapGenerate(t *testing.T) { "from-literal": []string{"key1==value1"}, "append-hash": true, }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "foo-bdgk9ttt7m", }, @@ -176,7 +176,7 @@ func TestConfigMapGenerate(t *testing.T) { "name": "valid_env", "from-env-file": "file.env", }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "valid_env", }, @@ -194,7 +194,7 @@ func TestConfigMapGenerate(t *testing.T) { "from-env-file": "file.env", "append-hash": true, }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "valid_env-2cgh8552ch", }, @@ -215,7 +215,7 @@ func TestConfigMapGenerate(t *testing.T) { "name": "getenv", "from-env-file": "file.env", }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "getenv", }, @@ -237,7 +237,7 @@ func TestConfigMapGenerate(t *testing.T) { "from-env-file": "file.env", "append-hash": true, }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "getenv-b4hh92hgdk", }, @@ -270,7 +270,7 @@ func TestConfigMapGenerate(t *testing.T) { "name": "with_spaces", "from-env-file": "file.env", }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "with_spaces", }, @@ -287,7 +287,7 @@ func TestConfigMapGenerate(t *testing.T) { "from-env-file": "file.env", "append-hash": true, }, - expected: &api.ConfigMap{ + expected: &v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: "with_spaces-bfc558b4ct", }, @@ -312,8 +312,8 @@ func TestConfigMapGenerate(t *testing.T) { if test.expectErr && err != nil { continue } - if !reflect.DeepEqual(obj.(*api.ConfigMap), test.expected) { - t.Errorf("\ncase %d, expected:\n%#v\nsaw:\n%#v", i, test.expected, obj.(*api.ConfigMap)) + if !reflect.DeepEqual(obj.(*v1.ConfigMap), test.expected) { + t.Errorf("\ncase %d, expected:\n%#v\nsaw:\n%#v", i, test.expected, obj.(*v1.ConfigMap)) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/delete.go b/vendor/k8s.io/kubernetes/pkg/kubectl/delete.go index 3982bc17e..1522f71b6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/delete.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/delete.go @@ -28,9 +28,9 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" appsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/delete_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/delete_test.go index 66803de14..d250d1e54 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/delete_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/delete_test.go @@ -30,8 +30,8 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/watch" testcore "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/BUILD index 68c95738f..6792dbf6b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/BUILD @@ -15,8 +15,8 @@ go_library( importpath = "k8s.io/kubernetes/pkg/kubectl/explain", visibility = ["//visibility:public"], deps = [ - "//pkg/kubectl/cmd/util/openapi:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/OWNERS new file mode 100644 index 000000000..7eb2d06fe --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/OWNERS @@ -0,0 +1,4 @@ +approvers: +- apelisse +reviewers: +- apelisse diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/explain.go b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/explain.go index d794ea70e..a0dcc389a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/explain.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/explain.go @@ -21,11 +21,11 @@ import ( "strings" "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" + "k8s.io/kube-openapi/pkg/util/proto" ) type fieldsPrinter interface { - PrintFields(openapi.Schema) error + PrintFields(proto.Schema) error } func splitDotNotation(model string) (string, []string) { @@ -47,7 +47,7 @@ func SplitAndParseResourceRequest(inResource string, mapper meta.RESTMapper) (st // PrintModelDescription prints the description of a specific model or dot path. // If recursive, all components nested within the fields of the schema will be // printed. -func PrintModelDescription(fieldsPath []string, w io.Writer, schema openapi.Schema, recursive bool) error { +func PrintModelDescription(fieldsPath []string, w io.Writer, schema proto.Schema, recursive bool) error { fieldName := "" if len(fieldsPath) != 0 { fieldName = fieldsPath[len(fieldsPath)-1] diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/field_lookup.go b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/field_lookup.go index b766fbf3b..82288642d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/field_lookup.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/field_lookup.go @@ -19,7 +19,7 @@ package explain import ( "fmt" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" + "k8s.io/kube-openapi/pkg/util/proto" ) // fieldLookup walks through a schema by following a path, and returns @@ -29,13 +29,13 @@ type fieldLookup struct { Path []string // Return information: Schema found, or error. - Schema openapi.Schema + Schema proto.Schema Error error } // SaveLeafSchema is used to detect if we are done walking the path, and // saves the schema as a match. -func (f *fieldLookup) SaveLeafSchema(schema openapi.Schema) bool { +func (f *fieldLookup) SaveLeafSchema(schema proto.Schema) bool { if len(f.Path) != 0 { return false } @@ -46,7 +46,7 @@ func (f *fieldLookup) SaveLeafSchema(schema openapi.Schema) bool { } // VisitArray is mostly a passthrough. -func (f *fieldLookup) VisitArray(a *openapi.Array) { +func (f *fieldLookup) VisitArray(a *proto.Array) { if f.SaveLeafSchema(a) { return } @@ -56,7 +56,7 @@ func (f *fieldLookup) VisitArray(a *openapi.Array) { } // VisitMap is mostly a passthrough. -func (f *fieldLookup) VisitMap(m *openapi.Map) { +func (f *fieldLookup) VisitMap(m *proto.Map) { if f.SaveLeafSchema(m) { return } @@ -67,14 +67,14 @@ func (f *fieldLookup) VisitMap(m *openapi.Map) { // VisitPrimitive stops the operation and returns itself as the found // schema, even if it had more path to walk. -func (f *fieldLookup) VisitPrimitive(p *openapi.Primitive) { +func (f *fieldLookup) VisitPrimitive(p *proto.Primitive) { // Even if Path is not empty (we're not expecting a leaf), // return that primitive. f.Schema = p } // VisitKind unstacks fields as it finds them. -func (f *fieldLookup) VisitKind(k *openapi.Kind) { +func (f *fieldLookup) VisitKind(k *proto.Kind) { if f.SaveLeafSchema(k) { return } @@ -90,7 +90,7 @@ func (f *fieldLookup) VisitKind(k *openapi.Kind) { } // VisitReference is mostly a passthrough. -func (f *fieldLookup) VisitReference(r openapi.Reference) { +func (f *fieldLookup) VisitReference(r proto.Reference) { if f.SaveLeafSchema(r) { return } @@ -100,7 +100,7 @@ func (f *fieldLookup) VisitReference(r openapi.Reference) { } // LookupSchemaForField looks for the schema of a given path in a base schema. -func LookupSchemaForField(schema openapi.Schema, path []string) (openapi.Schema, error) { +func LookupSchemaForField(schema proto.Schema, path []string) (proto.Schema, error) { f := &fieldLookup{Path: path} schema.Accept(f) return f.Schema, f.Error diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/field_lookup_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/field_lookup_test.go index 4120c31f3..239ad7040 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/field_lookup_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/field_lookup_test.go @@ -69,9 +69,9 @@ func TestFindField(t *testing.T) { gotPath = path.GetPath().String() } - if gotErr != test.err && gotPath != test.expectedPath { - t.Errorf("LookupSchemaForField(schema, %v) = (%v, %v), expected (%s, %v)", - test.path, gotErr, gotPath, test.expectedPath, test.err) + if gotErr != test.err || gotPath != test.expectedPath { + t.Errorf("LookupSchemaForField(schema, %v) = (path: %q, err: %q), expected (path: %q, err: %q)", + test.path, gotPath, gotErr, test.expectedPath, test.err) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/fields_printer.go b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/fields_printer.go index 8da066085..bb25241a4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/fields_printer.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/fields_printer.go @@ -16,9 +16,7 @@ limitations under the License. package explain -import ( - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" -) +import "k8s.io/kube-openapi/pkg/util/proto" // indentDesc is the level of indentation for descriptions. const indentDesc = 2 @@ -29,17 +27,17 @@ type regularFieldsPrinter struct { Error error } -var _ openapi.SchemaVisitor = ®ularFieldsPrinter{} +var _ proto.SchemaVisitor = ®ularFieldsPrinter{} var _ fieldsPrinter = ®ularFieldsPrinter{} // VisitArray prints a Array type. It is just a passthrough. -func (f *regularFieldsPrinter) VisitArray(a *openapi.Array) { +func (f *regularFieldsPrinter) VisitArray(a *proto.Array) { a.SubType.Accept(f) } // VisitKind prints a Kind type. It prints each key in the kind, with // the type, the required flag, and the description. -func (f *regularFieldsPrinter) VisitKind(k *openapi.Kind) { +func (f *regularFieldsPrinter) VisitKind(k *proto.Kind) { for _, key := range k.Keys() { v := k.Fields[key] required := "" @@ -63,22 +61,22 @@ func (f *regularFieldsPrinter) VisitKind(k *openapi.Kind) { } // VisitMap prints a Map type. It is just a passthrough. -func (f *regularFieldsPrinter) VisitMap(m *openapi.Map) { +func (f *regularFieldsPrinter) VisitMap(m *proto.Map) { m.SubType.Accept(f) } // VisitPrimitive prints a Primitive type. It stops the recursion. -func (f *regularFieldsPrinter) VisitPrimitive(p *openapi.Primitive) { +func (f *regularFieldsPrinter) VisitPrimitive(p *proto.Primitive) { // Nothing to do. Shouldn't really happen. } // VisitReference prints a Reference type. It is just a passthrough. -func (f *regularFieldsPrinter) VisitReference(r openapi.Reference) { +func (f *regularFieldsPrinter) VisitReference(r proto.Reference) { r.SubSchema().Accept(f) } // PrintFields will write the types from schema. -func (f *regularFieldsPrinter) PrintFields(schema openapi.Schema) error { +func (f *regularFieldsPrinter) PrintFields(schema proto.Schema) error { schema.Accept(f) return f.Error } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/model_printer.go b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/model_printer.go index 1f8d92086..82ad99fac 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/model_printer.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/model_printer.go @@ -16,9 +16,7 @@ limitations under the License. package explain -import ( - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" -) +import "k8s.io/kube-openapi/pkg/util/proto" // fieldIndentLevel is the level of indentation for fields. const fieldIndentLevel = 3 @@ -38,12 +36,12 @@ type modelPrinter struct { Error error } -var _ openapi.SchemaVisitor = &modelPrinter{} +var _ proto.SchemaVisitor = &modelPrinter{} // PrintDescription prints the description for a given schema. There // might be multiple description, since we collect descriptions when we // go through references, arrays and maps. -func (m *modelPrinter) PrintDescription(schema openapi.Schema) error { +func (m *modelPrinter) PrintDescription(schema proto.Schema) error { if err := m.Writer.Write("DESCRIPTION:"); err != nil { return err } @@ -65,7 +63,7 @@ func (m *modelPrinter) PrintDescription(schema openapi.Schema) error { // VisitArray recurses inside the subtype, while collecting the type if // not done yet, and the description. -func (m *modelPrinter) VisitArray(a *openapi.Array) { +func (m *modelPrinter) VisitArray(a *proto.Array) { m.Descriptions = append(m.Descriptions, a.GetDescription()) if m.Type == "" { m.Type = GetTypeName(a) @@ -74,7 +72,7 @@ func (m *modelPrinter) VisitArray(a *openapi.Array) { } // VisitKind prints a full resource with its fields. -func (m *modelPrinter) VisitKind(k *openapi.Kind) { +func (m *modelPrinter) VisitKind(k *proto.Kind) { if m.Type == "" { m.Type = GetTypeName(k) } @@ -95,7 +93,7 @@ func (m *modelPrinter) VisitKind(k *openapi.Kind) { // VisitMap recurses inside the subtype, while collecting the type if // not done yet, and the description. -func (m *modelPrinter) VisitMap(om *openapi.Map) { +func (m *modelPrinter) VisitMap(om *proto.Map) { m.Descriptions = append(m.Descriptions, om.GetDescription()) if m.Type == "" { m.Type = GetTypeName(om) @@ -104,7 +102,7 @@ func (m *modelPrinter) VisitMap(om *openapi.Map) { } // VisitPrimitive prints a field type and its description. -func (m *modelPrinter) VisitPrimitive(p *openapi.Primitive) { +func (m *modelPrinter) VisitPrimitive(p *proto.Primitive) { if m.Type == "" { m.Type = GetTypeName(p) } @@ -116,13 +114,13 @@ func (m *modelPrinter) VisitPrimitive(p *openapi.Primitive) { } // VisitReference recurses inside the subtype, while collecting the description. -func (m *modelPrinter) VisitReference(r openapi.Reference) { +func (m *modelPrinter) VisitReference(r proto.Reference) { m.Descriptions = append(m.Descriptions, r.GetDescription()) r.SubSchema().Accept(m) } // PrintModel prints the description of a schema in writer. -func PrintModel(name string, writer *Formatter, builder fieldsPrinterBuilder, schema openapi.Schema) error { +func PrintModel(name string, writer *Formatter, builder fieldsPrinterBuilder, schema proto.Schema) error { m := &modelPrinter{Name: name, Writer: writer, Builder: builder} schema.Accept(m) return m.Error diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/recursive_fields_printer.go b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/recursive_fields_printer.go index dfa37931c..95638c85a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/recursive_fields_printer.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/recursive_fields_printer.go @@ -16,9 +16,7 @@ limitations under the License. package explain -import ( - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" -) +import "k8s.io/kube-openapi/pkg/util/proto" // indentPerLevel is the level of indentation for each field recursion. const indentPerLevel = 3 @@ -30,17 +28,17 @@ type recursiveFieldsPrinter struct { Error error } -var _ openapi.SchemaVisitor = &recursiveFieldsPrinter{} +var _ proto.SchemaVisitor = &recursiveFieldsPrinter{} var _ fieldsPrinter = &recursiveFieldsPrinter{} // VisitArray is just a passthrough. -func (f *recursiveFieldsPrinter) VisitArray(a *openapi.Array) { +func (f *recursiveFieldsPrinter) VisitArray(a *proto.Array) { a.SubType.Accept(f) } // VisitKind prints all its fields with their type, and then recurses // inside each of these (pre-order). -func (f *recursiveFieldsPrinter) VisitKind(k *openapi.Kind) { +func (f *recursiveFieldsPrinter) VisitKind(k *proto.Kind) { for _, key := range k.Keys() { v := k.Fields[key] f.Writer.Write("%s\t<%s>", key, GetTypeName(v)) @@ -55,23 +53,23 @@ func (f *recursiveFieldsPrinter) VisitKind(k *openapi.Kind) { } // VisitMap is just a passthrough. -func (f *recursiveFieldsPrinter) VisitMap(m *openapi.Map) { +func (f *recursiveFieldsPrinter) VisitMap(m *proto.Map) { m.SubType.Accept(f) } // VisitPrimitive does nothing, since it doesn't have sub-fields. -func (f *recursiveFieldsPrinter) VisitPrimitive(p *openapi.Primitive) { +func (f *recursiveFieldsPrinter) VisitPrimitive(p *proto.Primitive) { // Nothing to do. } // VisitReference is just a passthrough. -func (f *recursiveFieldsPrinter) VisitReference(r openapi.Reference) { +func (f *recursiveFieldsPrinter) VisitReference(r proto.Reference) { r.SubSchema().Accept(f) } // PrintFields will recursively print all the fields for the given // schema. -func (f *recursiveFieldsPrinter) PrintFields(schema openapi.Schema) error { +func (f *recursiveFieldsPrinter) PrintFields(schema proto.Schema) error { schema.Accept(f) return f.Error } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/typename.go b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/typename.go index b90580e61..b9d71b69a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/explain/typename.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/explain/typename.go @@ -19,7 +19,7 @@ package explain import ( "fmt" - "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" + "k8s.io/kube-openapi/pkg/util/proto" ) // typeName finds the name of a schema @@ -27,39 +27,39 @@ type typeName struct { Name string } -var _ openapi.SchemaVisitor = &typeName{} +var _ proto.SchemaVisitor = &typeName{} // VisitArray adds the [] prefix and recurses. -func (t *typeName) VisitArray(a *openapi.Array) { +func (t *typeName) VisitArray(a *proto.Array) { s := &typeName{} a.SubType.Accept(s) t.Name = fmt.Sprintf("[]%s", s.Name) } // VisitKind just returns "Object". -func (t *typeName) VisitKind(k *openapi.Kind) { +func (t *typeName) VisitKind(k *proto.Kind) { t.Name = "Object" } // VisitMap adds the map[string] prefix and recurses. -func (t *typeName) VisitMap(m *openapi.Map) { +func (t *typeName) VisitMap(m *proto.Map) { s := &typeName{} m.SubType.Accept(s) t.Name = fmt.Sprintf("map[string]%s", s.Name) } // VisitPrimitive returns the name of the primitive. -func (t *typeName) VisitPrimitive(p *openapi.Primitive) { +func (t *typeName) VisitPrimitive(p *proto.Primitive) { t.Name = p.Type } // VisitReference is just a passthrough. -func (t *typeName) VisitReference(r openapi.Reference) { +func (t *typeName) VisitReference(r proto.Reference) { r.SubSchema().Accept(t) } // GetTypeName returns the type of a schema. -func GetTypeName(schema openapi.Schema) string { +func GetTypeName(schema proto.Schema) string { t := &typeName{} schema.Accept(t) return t.Name diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/history.go b/vendor/k8s.io/kubernetes/pkg/kubectl/history.go index 546468629..f59da50be 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/history.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/history.go @@ -27,18 +27,18 @@ import ( extensionsv1beta1 "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/strategicpatch" + "k8s.io/client-go/kubernetes" clientappsv1beta1 "k8s.io/client-go/kubernetes/typed/apps/v1beta1" - clientextensionsv1beta1 "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" - "k8s.io/kubernetes/pkg/api" - apiv1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/apis/apps" - "k8s.io/kubernetes/pkg/apis/extensions" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + clientextv1beta1 "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" + api "k8s.io/kubernetes/pkg/apis/core" + apiv1 "k8s.io/kubernetes/pkg/apis/core/v1" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" + kapps "k8s.io/kubernetes/pkg/kubectl/apps" sliceutil "k8s.io/kubernetes/pkg/kubectl/util/slice" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" ) @@ -52,26 +52,57 @@ type HistoryViewer interface { ViewHistory(namespace, name string, revision int64) (string, error) } -func HistoryViewerFor(kind schema.GroupKind, c clientset.Interface) (HistoryViewer, error) { - switch kind { - case extensions.Kind("Deployment"), apps.Kind("Deployment"): - return &DeploymentHistoryViewer{c}, nil - case apps.Kind("StatefulSet"): - return &StatefulSetHistoryViewer{c}, nil - case extensions.Kind("DaemonSet"), apps.Kind("DaemonSet"): - return &DaemonSetHistoryViewer{c}, nil +type HistoryVisitor struct { + clientset kubernetes.Interface + result HistoryViewer +} + +func (v *HistoryVisitor) VisitDeployment(elem kapps.GroupKindElement) { + v.result = &DeploymentHistoryViewer{v.clientset} +} + +func (v *HistoryVisitor) VisitStatefulSet(kind kapps.GroupKindElement) { + v.result = &StatefulSetHistoryViewer{v.clientset} +} + +func (v *HistoryVisitor) VisitDaemonSet(kind kapps.GroupKindElement) { + v.result = &DaemonSetHistoryViewer{v.clientset} +} + +func (v *HistoryVisitor) VisitJob(kind kapps.GroupKindElement) {} +func (v *HistoryVisitor) VisitPod(kind kapps.GroupKindElement) {} +func (v *HistoryVisitor) VisitReplicaSet(kind kapps.GroupKindElement) {} +func (v *HistoryVisitor) VisitReplicationController(kind kapps.GroupKindElement) {} + +// HistoryViewerFor returns an implementation of HistoryViewer interface for the given schema kind +func HistoryViewerFor(kind schema.GroupKind, c kubernetes.Interface) (HistoryViewer, error) { + elem := kapps.GroupKindElement(kind) + visitor := &HistoryVisitor{ + clientset: c, } - return nil, fmt.Errorf("no history viewer has been implemented for %q", kind) + + // Determine which HistoryViewer we need here + err := elem.Accept(visitor) + + if err != nil { + return nil, fmt.Errorf("error retrieving history for %q, %v", kind.String(), err) + } + + if visitor.result == nil { + return nil, fmt.Errorf("no history viewer has been implemented for %q", kind.String()) + } + + return visitor.result, nil } type DeploymentHistoryViewer struct { - c clientset.Interface + c kubernetes.Interface } // ViewHistory returns a revision-to-replicaset map as the revision history of a deployment // TODO: this should be a describer func (h *DeploymentHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error) { - versionedExtensionsClient := versionedExtensionsClientV1beta1(h.c) + versionedExtensionsClient := h.c.ExtensionsV1beta1() deployment, err := versionedExtensionsClient.Deployments(namespace).Get(name, metav1.GetOptions{}) if err != nil { return "", fmt.Errorf("failed to retrieve deployment %s: %v", name, err) @@ -138,7 +169,7 @@ func (h *DeploymentHistoryViewer) ViewHistory(namespace, name string, revision i func printTemplate(template *v1.PodTemplateSpec) (string, error) { buf := bytes.NewBuffer([]byte{}) internalTemplate := &api.PodTemplateSpec{} - if err := apiv1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(template, internalTemplate, nil); err != nil { + if err := apiv1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(template, internalTemplate, nil); err != nil { return "", fmt.Errorf("failed to convert podtemplate, %v", err) } w := printersinternal.NewPrefixWriter(buf) @@ -147,24 +178,21 @@ func printTemplate(template *v1.PodTemplateSpec) (string, error) { } type DaemonSetHistoryViewer struct { - c clientset.Interface + c kubernetes.Interface } // ViewHistory returns a revision-to-history map as the revision history of a deployment // TODO: this should be a describer func (h *DaemonSetHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error) { - versionedAppsClient := versionedAppsClientV1beta1(h.c) - versionedExtensionsClient := versionedExtensionsClientV1beta1(h.c) - versionedObj, allHistory, err := controlledHistories(versionedAppsClient, versionedExtensionsClient, namespace, name, "DaemonSet") + ds, history, err := daemonSetHistory(h.c.ExtensionsV1beta1(), h.c.AppsV1beta1(), namespace, name) if err != nil { - return "", fmt.Errorf("unable to find history controlled by DaemonSet %s: %v", name, err) + return "", err } historyInfo := make(map[int64]*appsv1beta1.ControllerRevision) - for _, history := range allHistory { + for _, history := range history { // TODO: for now we assume revisions don't overlap, we may need to handle it historyInfo[history.Revision] = history } - if len(historyInfo) == 0 { return "No rollout history found.", nil } @@ -175,13 +203,7 @@ func (h *DaemonSetHistoryViewer) ViewHistory(namespace, name string, revision in if !ok { return "", fmt.Errorf("unable to find the specified revision") } - - versionedDS, ok := versionedObj.(*extensionsv1beta1.DaemonSet) - if !ok { - return "", fmt.Errorf("unexpected non-DaemonSet object returned: %v", versionedDS) - } - - dsOfHistory, err := applyHistory(versionedDS, history) + dsOfHistory, err := applyDaemonSetHistory(ds, history) if err != nil { return "", fmt.Errorf("unable to parse history %s", history.Name) } @@ -211,93 +233,46 @@ func (h *DaemonSetHistoryViewer) ViewHistory(namespace, name string, revision in } type StatefulSetHistoryViewer struct { - c clientset.Interface -} - -func getOwner(revision apps.ControllerRevision) *metav1.OwnerReference { - ownerRefs := revision.GetOwnerReferences() - for i := range ownerRefs { - owner := &ownerRefs[i] - if owner.Controller != nil && *owner.Controller == true { - return owner - } - } - return nil + c kubernetes.Interface } // ViewHistory returns a list of the revision history of a statefulset // TODO: this should be a describer // TODO: needs to implement detailed revision view func (h *StatefulSetHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error) { - - sts, err := h.c.Apps().StatefulSets(namespace).Get(name, metav1.GetOptions{}) + _, history, err := statefulSetHistory(h.c.AppsV1beta1(), namespace, name) if err != nil { - return "", fmt.Errorf("failed to retrieve statefulset %s", err) - } - selector, err := metav1.LabelSelectorAsSelector(sts.Spec.Selector) - if err != nil { - return "", fmt.Errorf("failed to retrieve statefulset history %s", err) - } - revisions, err := h.c.Apps().ControllerRevisions(namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) - if err != nil { - return "", fmt.Errorf("failed to retrieve statefulset history %s", err) + return "", err } - if len(revisions.Items) <= 0 { + + if len(history) <= 0 { return "No rollout history found.", nil } - revisionNumbers := make([]int64, len(revisions.Items)) - for i := range revisions.Items { - if owner := getOwner(revisions.Items[i]); owner != nil && owner.UID == sts.UID { - revisionNumbers[i] = revisions.Items[i].Revision - } + revisions := make([]int64, len(history)) + for _, revision := range history { + revisions = append(revisions, revision.Revision) } - sliceutil.SortInts64(revisionNumbers) + sliceutil.SortInts64(revisions) return tabbedString(func(out io.Writer) error { fmt.Fprintf(out, "REVISION\n") - for _, r := range revisionNumbers { + for _, r := range revisions { fmt.Fprintf(out, "%d\n", r) } return nil }) } -// controlledHistories returns all ControllerRevisions controlled by the given API object -func controlledHistories(apps clientappsv1beta1.AppsV1beta1Interface, extensions clientextensionsv1beta1.ExtensionsV1beta1Interface, namespace, name, kind string) (runtime.Object, []*appsv1beta1.ControllerRevision, error) { - var obj runtime.Object - var labelSelector *metav1.LabelSelector - - switch kind { - case "DaemonSet": - ds, err := extensions.DaemonSets(namespace).Get(name, metav1.GetOptions{}) - if err != nil { - return nil, nil, fmt.Errorf("failed to retrieve DaemonSet %s: %v", name, err) - } - labelSelector = ds.Spec.Selector - obj = ds - case "StatefulSet": - ss, err := apps.StatefulSets(namespace).Get(name, metav1.GetOptions{}) - if err != nil { - return nil, nil, fmt.Errorf("failed to retrieve StatefulSet %s: %v", name, err) - } - labelSelector = ss.Spec.Selector - obj = ss - default: - return nil, nil, fmt.Errorf("unsupported API object kind: %s", kind) - } - +// controlledHistories returns all ControllerRevisions in namespace that selected by selector and owned by accessor +func controlledHistory( + apps clientappsv1beta1.AppsV1beta1Interface, + namespace string, + selector labels.Selector, + accessor metav1.Object) ([]*appsv1beta1.ControllerRevision, error) { var result []*appsv1beta1.ControllerRevision - selector, err := metav1.LabelSelectorAsSelector(labelSelector) - if err != nil { - return nil, nil, err - } historyList, err := apps.ControllerRevisions(namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) if err != nil { - return nil, nil, err - } - accessor, err := meta.Accessor(obj) - if err != nil { - return nil, nil, fmt.Errorf("failed to obtain accessor for %s named %s: %v", kind, name, err) + return nil, err } for i := range historyList.Items { history := historyList.Items[i] @@ -306,16 +281,59 @@ func controlledHistories(apps clientappsv1beta1.AppsV1beta1Interface, extensions result = append(result, &history) } } - return obj, result, nil + return result, nil } -// applyHistory returns a specific revision of DaemonSet by applying the given history to a copy of the given DaemonSet -func applyHistory(ds *extensionsv1beta1.DaemonSet, history *appsv1beta1.ControllerRevision) (*extensionsv1beta1.DaemonSet, error) { - obj, err := api.Scheme.New(ds.GroupVersionKind()) +// daemonSetHistory returns the DaemonSet named name in namespace and all ControllerRevisions in its history. +func daemonSetHistory( + ext clientextv1beta1.ExtensionsV1beta1Interface, + apps clientappsv1beta1.AppsV1beta1Interface, + namespace, name string) (*extensionsv1beta1.DaemonSet, []*appsv1beta1.ControllerRevision, error) { + ds, err := ext.DaemonSets(namespace).Get(name, metav1.GetOptions{}) if err != nil { - return nil, err + return nil, nil, fmt.Errorf("failed to retrieve DaemonSet %s: %v", name, err) + } + selector, err := metav1.LabelSelectorAsSelector(ds.Spec.Selector) + if err != nil { + return nil, nil, fmt.Errorf("failed to create selector for DaemonSet %s: %v", ds.Name, err) } - clone := obj.(*extensionsv1beta1.DaemonSet) + accessor, err := meta.Accessor(ds) + if err != nil { + return nil, nil, fmt.Errorf("failed to create accessor for DaemonSet %s: %v", ds.Name, err) + } + history, err := controlledHistory(apps, ds.Namespace, selector, accessor) + if err != nil { + return nil, nil, fmt.Errorf("unable to find history controlled by DaemonSet %s: %v", ds.Name, err) + } + return ds, history, nil +} + +// statefulSetHistory returns the StatefulSet named name in namespace and all ControllerRevisions in its history. +func statefulSetHistory( + apps clientappsv1beta1.AppsV1beta1Interface, + namespace, name string) (*appsv1beta1.StatefulSet, []*appsv1beta1.ControllerRevision, error) { + sts, err := apps.StatefulSets(namespace).Get(name, metav1.GetOptions{}) + if err != nil { + return nil, nil, fmt.Errorf("failed to retrieve Statefulset %s: %s", name, err.Error()) + } + selector, err := metav1.LabelSelectorAsSelector(sts.Spec.Selector) + if err != nil { + return nil, nil, fmt.Errorf("failed to create selector for StatefulSet %s: %s", name, err.Error()) + } + accessor, err := meta.Accessor(sts) + if err != nil { + return nil, nil, fmt.Errorf("failed to obtain accessor for StatefulSet %s: %s", name, err.Error()) + } + history, err := controlledHistory(apps, namespace, selector, accessor) + if err != nil { + return nil, nil, fmt.Errorf("unable to find history controlled by StatefulSet %s: %v", name, err) + } + return sts, history, nil +} + +// applyDaemonSetHistory returns a specific revision of DaemonSet by applying the given history to a copy of the given DaemonSet +func applyDaemonSetHistory(ds *extensionsv1beta1.DaemonSet, history *appsv1beta1.ControllerRevision) (*extensionsv1beta1.DaemonSet, error) { + clone := ds.DeepCopy() cloneBytes, err := json.Marshal(clone) if err != nil { return nil, err diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/history_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/history_test.go new file mode 100644 index 000000000..55a266935 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/history_test.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. +*/ + +package kubectl + +import ( + "reflect" + "testing" + + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/kubernetes/fake" +) + +var historytests = map[schema.GroupKind]reflect.Type{ + {Group: "apps", Kind: "DaemonSet"}: reflect.TypeOf(&DaemonSetHistoryViewer{}), + {Group: "apps", Kind: "StatefulSet"}: reflect.TypeOf(&StatefulSetHistoryViewer{}), + {Group: "apps", Kind: "Deployment"}: reflect.TypeOf(&DeploymentHistoryViewer{}), +} + +func TestHistoryViewerFor(t *testing.T) { + fakeClientset := &fake.Clientset{} + + for kind, expectedType := range historytests { + result, err := HistoryViewerFor(kind, fakeClientset) + if err != nil { + t.Fatalf("error getting HistoryViewer for a %v: %v", kind.String(), err) + } + + if reflect.TypeOf(result) != expectedType { + t.Fatalf("unexpected output type (%v was expected but got %v)", expectedType, reflect.TypeOf(result)) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/BUILD index 66464edb1..84fc55a01 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/BUILD @@ -14,14 +14,15 @@ go_library( "//build/visible_to:pkg_kubectl_metricsutil_CONSUMERS", ], deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", - "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/printers:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource: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/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//vendor/k8s.io/metrics/pkg/apis/metrics/v1alpha1:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/metrics_client.go b/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/metrics_client.go index fb0781c0f..909f91f67 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/metrics_client.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/metrics_client.go @@ -24,8 +24,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/pkg/api/validation" - coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" + corev1 "k8s.io/client-go/kubernetes/typed/core/v1" + "k8s.io/kubernetes/pkg/apis/core/validation" metricsapi "k8s.io/metrics/pkg/apis/metrics/v1alpha1" ) @@ -46,14 +46,14 @@ var ( ) type HeapsterMetricsClient struct { - SVCClient coreclient.ServicesGetter + SVCClient corev1.ServicesGetter HeapsterNamespace string HeapsterScheme string HeapsterService string HeapsterPort string } -func NewHeapsterMetricsClient(svcClient coreclient.ServicesGetter, namespace, scheme, service, port string) *HeapsterMetricsClient { +func NewHeapsterMetricsClient(svcClient corev1.ServicesGetter, namespace, scheme, service, port string) *HeapsterMetricsClient { return &HeapsterMetricsClient{ SVCClient: svcClient, HeapsterNamespace: namespace, @@ -63,7 +63,7 @@ func NewHeapsterMetricsClient(svcClient coreclient.ServicesGetter, namespace, sc } } -func DefaultHeapsterMetricsClient(svcClient coreclient.ServicesGetter) *HeapsterMetricsClient { +func DefaultHeapsterMetricsClient(svcClient corev1.ServicesGetter) *HeapsterMetricsClient { return NewHeapsterMetricsClient(svcClient, DefaultHeapsterNamespace, DefaultHeapsterScheme, DefaultHeapsterService, DefaultHeapsterPort) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/metrics_printer.go b/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/metrics_printer.go index 678330766..b1bd5451b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/metrics_printer.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/metricsutil/metrics_printer.go @@ -21,16 +21,17 @@ import ( "io" "sort" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/printers" metricsapi "k8s.io/metrics/pkg/apis/metrics/v1alpha1" ) var ( - MeasuredResources = []api.ResourceName{ - api.ResourceCPU, - api.ResourceMemory, + MeasuredResources = []v1.ResourceName{ + v1.ResourceCPU, + v1.ResourceMemory, } NodeColumns = []string{"NAME", "CPU(cores)", "CPU%", "MEMORY(bytes)", "MEMORY%"} PodColumns = []string{"NAME", "CPU(cores)", "MEMORY(bytes)"} @@ -40,8 +41,8 @@ var ( type ResourceMetricsInfo struct { Name string - Metrics api.ResourceList - Available api.ResourceList + Metrics v1.ResourceList + Available v1.ResourceList } type TopCmdPrinter struct { @@ -52,7 +53,7 @@ func NewTopCmdPrinter(out io.Writer) *TopCmdPrinter { return &TopCmdPrinter{out: out} } -func (printer *TopCmdPrinter) PrintNodeMetrics(metrics []metricsapi.NodeMetrics, availableResources map[string]api.ResourceList) error { +func (printer *TopCmdPrinter) PrintNodeMetrics(metrics []metricsapi.NodeMetrics, availableResources map[string]v1.ResourceList) error { if len(metrics) == 0 { return nil } @@ -64,9 +65,9 @@ func (printer *TopCmdPrinter) PrintNodeMetrics(metrics []metricsapi.NodeMetrics, }) printColumnNames(w, NodeColumns) - var usage api.ResourceList + var usage v1.ResourceList for _, m := range metrics { - err := api.Scheme.Convert(&m.Usage, &usage, nil) + err := legacyscheme.Scheme.Convert(&m.Usage, &usage, nil) if err != nil { return err } @@ -118,15 +119,15 @@ func printColumnNames(out io.Writer, names []string) { } func printSinglePodMetrics(out io.Writer, m *metricsapi.PodMetrics, printContainersOnly bool, withNamespace bool) error { - containers := make(map[string]api.ResourceList) - podMetrics := make(api.ResourceList) + containers := make(map[string]v1.ResourceList) + podMetrics := make(v1.ResourceList) for _, res := range MeasuredResources { podMetrics[res], _ = resource.ParseQuantity("0") } for _, c := range m.Containers { - var usage api.ResourceList - err := api.Scheme.Convert(&c.Usage, &usage, nil) + var usage v1.ResourceList + err := legacyscheme.Scheme.Convert(&c.Usage, &usage, nil) if err != nil { return err } @@ -148,7 +149,7 @@ func printSinglePodMetrics(out io.Writer, m *metricsapi.PodMetrics, printContain printMetricsLine(out, &ResourceMetricsInfo{ Name: contName, Metrics: containers[contName], - Available: api.ResourceList{}, + Available: v1.ResourceList{}, }) } } else { @@ -158,7 +159,7 @@ func printSinglePodMetrics(out io.Writer, m *metricsapi.PodMetrics, printContain printMetricsLine(out, &ResourceMetricsInfo{ Name: m.Name, Metrics: podMetrics, - Available: api.ResourceList{}, + Available: v1.ResourceList{}, }) } return nil @@ -186,11 +187,11 @@ func printAllResourceUsages(out io.Writer, metrics *ResourceMetricsInfo) { } } -func printSingleResourceUsage(out io.Writer, resourceType api.ResourceName, quantity resource.Quantity) { +func printSingleResourceUsage(out io.Writer, resourceType v1.ResourceName, quantity resource.Quantity) { switch resourceType { - case api.ResourceCPU: + case v1.ResourceCPU: fmt.Fprintf(out, "%vm", quantity.MilliValue()) - case api.ResourceMemory: + case v1.ResourceMemory: fmt.Fprintf(out, "%vMi", quantity.Value()/(1024*1024)) default: fmt.Fprintf(out, "%v", quantity.Value()) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/namespace.go b/vendor/k8s.io/kubernetes/pkg/kubectl/namespace.go index a649ced7f..03723cdaa 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/namespace.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/namespace.go @@ -19,8 +19,8 @@ package kubectl import ( "fmt" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" ) // NamespaceGeneratorV1 supports stable generation of a namespace @@ -65,7 +65,7 @@ func (g *NamespaceGeneratorV1) StructuredGenerate() (runtime.Object, error) { if err := g.validate(); err != nil { return nil, err } - namespace := &api.Namespace{} + namespace := &v1.Namespace{} namespace.Name = g.Name return namespace, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/namespace_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/namespace_test.go index 165a62202..2a017ba80 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/namespace_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/namespace_test.go @@ -20,14 +20,14 @@ import ( "reflect" "testing" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" ) func TestNamespaceGenerate(t *testing.T) { tests := []struct { params map[string]interface{} - expected *api.Namespace + expected *v1.Namespace expectErr bool index int }{ @@ -35,7 +35,7 @@ func TestNamespaceGenerate(t *testing.T) { params: map[string]interface{}{ "name": "foo", }, - expected: &api.Namespace{ + expected: &v1.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -92,8 +92,8 @@ func TestNamespaceGenerate(t *testing.T) { case !test.expectErr && err == nil: // do nothing and drop through } - if !reflect.DeepEqual(obj.(*api.Namespace), test.expected) { - t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*api.Namespace)) + if !reflect.DeepEqual(obj.(*v1.Namespace), test.expected) { + t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*v1.Namespace)) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/pdb.go b/vendor/k8s.io/kubernetes/pkg/kubectl/pdb.go index 08d8a74b8..24632b0c3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/pdb.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/pdb.go @@ -18,12 +18,11 @@ package kubectl import ( "fmt" - "os" + policy "k8s.io/api/policy/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/apis/policy" ) // PodDisruptionBudgetV1Generator supports stable generation of a pod disruption budget. @@ -167,15 +166,6 @@ func (s *PodDisruptionBudgetV2Generator) StructuredGenerate() (runtime.Object, e return nil, err } - if len(s.MaxUnavailable) == 0 && len(s.MinAvailable) == 0 { - s.MinAvailable = "1" - - // This behavior is intended for backward compatibility. - // TODO: remove in Kubernetes 1.8 - fmt.Fprintln(os.Stderr, "Deprecated behavior in kubectl create pdb: Defaulting min-available to 1. "+ - "Kubernetes 1.8 will remove this default, and one of min-available/max-available must be specified. ") - } - if len(s.MaxUnavailable) > 0 { maxUnavailable := intstr.Parse(s.MaxUnavailable) return &policy.PodDisruptionBudget{ @@ -213,6 +203,9 @@ func (s *PodDisruptionBudgetV2Generator) validate() error { if len(s.Selector) == 0 { return fmt.Errorf("a selector must be specified") } + if len(s.MaxUnavailable) == 0 && len(s.MinAvailable) == 0 { + return fmt.Errorf("one of min-available/max-available must be specified") + } if len(s.MaxUnavailable) > 0 && len(s.MinAvailable) > 0 { return fmt.Errorf("min-available and max-unavailable cannot be both specified") } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/pdb_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/pdb_test.go new file mode 100644 index 000000000..f821e9e81 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/pdb_test.go @@ -0,0 +1,130 @@ +/* +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 kubectl + +import ( + policy "k8s.io/api/policy/v1beta1" + apiequality "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" + "testing" +) + +func TestPodDisruptionBudgetV2Generator(t *testing.T) { + minAvailableNumber := intstr.Parse("2") + minAvailablePercent := intstr.Parse("50%") + + tests := map[string]struct { + params map[string]interface{} + expected *policy.PodDisruptionBudget + expectErr bool + }{ + "test valid case with number min-available": { + params: map[string]interface{}{ + "name": "foo", + "selector": "app=nginx", + "min-available": "2", + "max-available": "", + }, + expected: &policy.PodDisruptionBudget{ + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: policy.PodDisruptionBudgetSpec{ + MinAvailable: &minAvailableNumber, + Selector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "nginx", + }, + }, + }, + }, + expectErr: false, + }, + "test valid case with percent min-available": { + params: map[string]interface{}{ + "name": "foo", + "selector": "app=nginx", + "min-available": "50%", + "max-available": "", + }, + expected: &policy.PodDisruptionBudget{ + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: policy.PodDisruptionBudgetSpec{ + MinAvailable: &minAvailablePercent, + Selector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "nginx", + }, + }, + }, + }, + expectErr: false, + }, + "test missing required param": { + params: map[string]interface{}{ + "name": "foo", + "min-available": "2", + "max-available": "", + }, + expectErr: true, + }, + "test with invalid format params": { + params: map[string]interface{}{ + "name": "foo", + "selector": "app=nginx", + "min-available": 2, + "max-available": "", + }, + expectErr: true, + }, + "test min-available/max-available all not be specified": { + params: map[string]interface{}{ + "name": "foo", + "selector": "app=nginx", + "min-available": "", + "max-available": "", + }, + expectErr: true, + }, + "test min-available and max-unavailable cannot be both specified": { + params: map[string]interface{}{ + "name": "foo", + "selector": "app=nginx", + "min-available": "2", + "max-available": "5", + }, + expectErr: true, + }, + } + + generator := PodDisruptionBudgetV2Generator{} + for name, test := range tests { + obj, err := generator.Generate(test.params) + if !test.expectErr && err != nil { + t.Errorf("%s: unexpected error: %v", name, err) + } + if test.expectErr && err != nil { + continue + } + if !apiequality.Semantic.DeepEqual(obj.(*policy.PodDisruptionBudget), test.expected) { + t.Errorf("%s:\nexpected:\n%#v\nsaw:\n%#v", name, test.expected, obj.(*policy.PodDisruptionBudget)) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/plugins/examples/aging/aging.rb b/vendor/k8s.io/kubernetes/pkg/kubectl/plugins/examples/aging/aging.rb index ed9a87fff..3a60e94c4 100755 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/plugins/examples/aging/aging.rb +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/plugins/examples/aging/aging.rb @@ -22,7 +22,8 @@ def duration end end -pods_json = `kubectl get pods -o json` +namespace = ENV['KUBECTL_PLUGINS_CURRENT_NAMESPACE'] || 'default' +pods_json = `kubectl --namespace #{namespace} get pods -o json` pods_parsed = JSON.parse(pods_json) puts "The Magnificent Aging Plugin." diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/plugins/examples/aging/plugin.yaml b/vendor/k8s.io/kubernetes/pkg/kubectl/plugins/examples/aging/plugin.yaml index 07dc2022a..87275dc09 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/plugins/examples/aging/plugin.yaml +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/plugins/examples/aging/plugin.yaml @@ -2,7 +2,4 @@ name: "aging" shortDesc: "Aging shows pods by age" longDesc: > Aging shows pods from the current namespace by age. - Once we have plugin support for global flags through - env vars (planned for V1) we'll be able to switch - between namespaces using the --namespace flag. command: ./aging.rb diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/priorityclass.go b/vendor/k8s.io/kubernetes/pkg/kubectl/priorityclass.go new file mode 100644 index 000000000..fd600ae32 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/priorityclass.go @@ -0,0 +1,85 @@ +/* +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 kubectl + +import ( + "fmt" + + scheduling "k8s.io/api/scheduling/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" +) + +// PriorityClassV1Generator supports stable generation of a priorityClass. +type PriorityClassV1Generator struct { + Name string + Value int32 + GlobalDefault bool + Description string +} + +// Ensure it supports the generator pattern that uses parameters specified during construction. +var _ StructuredGenerator = &PriorityClassV1Generator{} + +func (PriorityClassV1Generator) ParamNames() []GeneratorParam { + return []GeneratorParam{ + {"name", true}, + {"value", true}, + {"global-default", false}, + {"description", false}, + } +} + +func (s PriorityClassV1Generator) Generate(params map[string]interface{}) (runtime.Object, error) { + if err := ValidateParams(s.ParamNames(), params); err != nil { + return nil, err + } + + name, found := params["name"].(string) + if !found { + return nil, fmt.Errorf("expected string, saw %v for 'name'", name) + } + + value, found := params["value"].(int32) + if !found { + return nil, fmt.Errorf("expected int32, found %v", value) + } + + globalDefault, found := params["global-default"].(bool) + if !found { + return nil, fmt.Errorf("expected bool, found %v", globalDefault) + } + + description, found := params["description"].(string) + if !found { + return nil, fmt.Errorf("expected string, found %v", description) + } + delegate := &PriorityClassV1Generator{Name: name, Value: value, GlobalDefault: globalDefault, Description: description} + return delegate.StructuredGenerate() +} + +// StructuredGenerate outputs a priorityClass object using the configured fields. +func (s *PriorityClassV1Generator) StructuredGenerate() (runtime.Object, error) { + return &scheduling.PriorityClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: s.Name, + }, + Value: s.Value, + GlobalDefault: s.GlobalDefault, + Description: s.Description, + }, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/priorityclass_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/priorityclass_test.go new file mode 100644 index 000000000..2702ce33b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/priorityclass_test.go @@ -0,0 +1,90 @@ +/* +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 kubectl + +import ( + scheduling "k8s.io/api/scheduling/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "reflect" + "testing" +) + +func TestPriorityClassV1Generator(t *testing.T) { + tests := map[string]struct { + params map[string]interface{} + expected *scheduling.PriorityClass + expectErr bool + }{ + "test valid case": { + params: map[string]interface{}{ + "name": "foo", + "value": int32(1000), + "global-default": false, + "description": "high priority class", + }, + expected: &scheduling.PriorityClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Value: int32(1000), + GlobalDefault: false, + Description: "high priority class", + }, + expectErr: false, + }, + "test valid case that as default priority": { + params: map[string]interface{}{ + "name": "foo", + "value": int32(1000), + "global-default": true, + "description": "high priority class", + }, + expected: &scheduling.PriorityClass{ + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Value: int32(1000), + GlobalDefault: true, + Description: "high priority class", + }, + expectErr: false, + }, + "test missing required param": { + params: map[string]interface{}{ + "name": "foo", + "global-default": true, + "description": "high priority class", + }, + expectErr: true, + }, + } + + generator := PriorityClassV1Generator{} + for name, test := range tests { + obj, err := generator.Generate(test.params) + if !test.expectErr && err != nil { + t.Errorf("%s: unexpected error: %v", name, err) + } + if test.expectErr && err != nil { + continue + } + if !reflect.DeepEqual(obj.(*scheduling.PriorityClass), test.expected) { + t.Errorf("%s:\nexpected:\n%#v\nsaw:\n%#v", name, test.expected, obj.(*scheduling.PriorityClass)) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/quota.go b/vendor/k8s.io/kubernetes/pkg/kubectl/quota.go index 173f568c6..d51b74af9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/quota.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/quota.go @@ -20,8 +20,8 @@ import ( "fmt" "strings" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" ) // ResourceQuotaGeneratorV1 supports stable generation of a resource quota @@ -79,7 +79,7 @@ func (g *ResourceQuotaGeneratorV1) StructuredGenerate() (runtime.Object, error) return nil, err } - resourceList, err := populateResourceList(g.Hard) + resourceList, err := populateResourceListV1(g.Hard) if err != nil { return nil, err } @@ -89,7 +89,7 @@ func (g *ResourceQuotaGeneratorV1) StructuredGenerate() (runtime.Object, error) return nil, err } - resourceQuota := &api.ResourceQuota{} + resourceQuota := &v1.ResourceQuota{} resourceQuota.Name = g.Name resourceQuota.Spec.Hard = resourceList resourceQuota.Spec.Scopes = scopes @@ -104,14 +104,14 @@ func (r *ResourceQuotaGeneratorV1) validate() error { return nil } -func parseScopes(spec string) ([]api.ResourceQuotaScope, error) { +func parseScopes(spec string) ([]v1.ResourceQuotaScope, error) { // empty input gets a nil response to preserve generator test expected behaviors if spec == "" { return nil, nil } scopes := strings.Split(spec, ",") - result := make([]api.ResourceQuotaScope, 0, len(scopes)) + result := make([]v1.ResourceQuotaScope, 0, len(scopes)) for _, scope := range scopes { // intentionally do not verify the scope against the valid scope list. This is done by the apiserver anyway. @@ -119,7 +119,7 @@ func parseScopes(spec string) ([]api.ResourceQuotaScope, error) { return nil, fmt.Errorf("invalid resource quota scope \"\"") } - result = append(result, api.ResourceQuotaScope(scope)) + result = append(result, v1.ResourceQuotaScope(scope)) } return result, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/quota_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/quota_test.go index 8529dd676..990a9379d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/quota_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/quota_test.go @@ -20,20 +20,20 @@ import ( "reflect" "testing" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" ) func TestQuotaGenerate(t *testing.T) { hard := "cpu=10,memory=5G,pods=10,services=7" - resourceQuotaSpecList, err := populateResourceList(hard) + resourceQuotaSpecList, err := populateResourceListV1(hard) if err != nil { t.Errorf("unexpected error: %v", err) } tests := map[string]struct { params map[string]interface{} - expected *api.ResourceQuota + expected *v1.ResourceQuota expectErr bool }{ "test-valid-use": { @@ -41,11 +41,11 @@ func TestQuotaGenerate(t *testing.T) { "name": "foo", "hard": hard, }, - expected: &api.ResourceQuota{ + expected: &v1.ResourceQuota{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.ResourceQuotaSpec{Hard: resourceQuotaSpecList}, + Spec: v1.ResourceQuotaSpec{Hard: resourceQuotaSpecList}, }, expectErr: false, }, @@ -61,15 +61,15 @@ func TestQuotaGenerate(t *testing.T) { "hard": hard, "scopes": "BestEffort,NotTerminating", }, - expected: &api.ResourceQuota{ + expected: &v1.ResourceQuota{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.ResourceQuotaSpec{ + Spec: v1.ResourceQuotaSpec{ Hard: resourceQuotaSpecList, - Scopes: []api.ResourceQuotaScope{ - api.ResourceQuotaScopeBestEffort, - api.ResourceQuotaScopeNotTerminating, + Scopes: []v1.ResourceQuotaScope{ + v1.ResourceQuotaScopeBestEffort, + v1.ResourceQuotaScopeNotTerminating, }, }, }, @@ -81,11 +81,11 @@ func TestQuotaGenerate(t *testing.T) { "hard": hard, "scopes": "", }, - expected: &api.ResourceQuota{ + expected: &v1.ResourceQuota{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, - Spec: api.ResourceQuotaSpec{Hard: resourceQuotaSpecList}, + Spec: v1.ResourceQuotaSpec{Hard: resourceQuotaSpecList}, }, expectErr: false, }, @@ -108,8 +108,8 @@ func TestQuotaGenerate(t *testing.T) { if test.expectErr && err != nil { continue } - if !reflect.DeepEqual(obj.(*api.ResourceQuota), test.expected) { - t.Errorf("%s:\nexpected:\n%#v\nsaw:\n%#v", name, test.expected, obj.(*api.ResourceQuota)) + if !reflect.DeepEqual(obj.(*v1.ResourceQuota), test.expected) { + t.Errorf("%s:\nexpected:\n%#v\nsaw:\n%#v", name, test.expected, obj.(*v1.ResourceQuota)) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/BUILD index cfacc3dac..ed749eb0d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/BUILD @@ -22,14 +22,13 @@ go_library( "//build/visible_to:pkg_kubectl_resource_CONSUMERS", ], deps = [ - "//pkg/api:go_default_library", "//pkg/kubectl/validation:go_default_library", "//vendor/golang.org/x/text/encoding/unicode:go_default_library", "//vendor/golang.org/x/text/transform: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/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -59,9 +58,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubectl/resource", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/api/testing:go_default_library", + "//pkg/kubectl/scheme:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", @@ -73,11 +70,13 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/rest/fake:go_default_library", "//vendor/k8s.io/client-go/rest/watch:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/builder.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/builder.go index 51d82a84b..c9b2cfee4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/builder.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/builder.go @@ -26,7 +26,6 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -53,9 +52,11 @@ type Builder struct { stream bool dir bool - selector *string + labelSelector *string + fieldSelector *string selectAll bool includeUninitialized bool + limitChunks int64 resources []string @@ -68,9 +69,6 @@ type Builder struct { defaultNamespace bool requireNamespace bool - isLocal bool - isUnstructured bool - flatten bool latest bool @@ -86,8 +84,6 @@ type Builder struct { schema validation.Schema } -var LocalUnstructuredBuilderError = fmt.Errorf("Unstructured objects cannot be handled with a local builder - Local and Unstructured attributes cannot be used in conjunction") - var missingResourceError = fmt.Errorf(`You must provide one or more resources by argument or filename. Example resource specifications include: '-f rsrc.yaml' @@ -169,33 +165,10 @@ func (b *Builder) FilenameParam(enforceNamespace bool, filenameOptions *Filename // Local wraps the builder's clientMapper in a DisabledClientMapperForMapping func (b *Builder) Local(mapperFunc ClientMapperFunc) *Builder { - if b.isUnstructured { - b.errs = append(b.errs, LocalUnstructuredBuilderError) - return b - } - - b.isLocal = true b.mapper.ClientMapper = DisabledClientForMapping{ClientMapper: ClientMapperFunc(mapperFunc)} return b } -// Unstructured updates the builder's ClientMapper, RESTMapper, -// ObjectTyper, and codec for working with unstructured api objects -func (b *Builder) Unstructured(mapperFunc ClientMapperFunc, mapper meta.RESTMapper, typer runtime.ObjectTyper) *Builder { - if b.isLocal { - b.errs = append(b.errs, LocalUnstructuredBuilderError) - return b - } - - b.isUnstructured = true - b.mapper.RESTMapper = mapper - b.mapper.ObjectTyper = typer - b.mapper.Decoder = unstructured.UnstructuredJSONScheme - b.mapper.ClientMapper = ClientMapperFunc(mapperFunc) - - return b -} - // URL accepts a number of URLs directly. func (b *Builder) URL(httpAttemptCount int, urls ...*url.URL) *Builder { for _, u := range urls { @@ -290,24 +263,41 @@ func (b *Builder) ResourceNames(resource string, names ...string) *Builder { return b } -// SelectorParam defines a selector that should be applied to the object types to load. +// LabelSelectorParam defines a selector that should be applied to the object types to load. // This will not affect files loaded from disk or URL. If the parameter is empty it is -// a no-op - to select all resources invoke `b.Selector(labels.Everything.String)`. -func (b *Builder) SelectorParam(s string) *Builder { +// a no-op - to select all resources invoke `b.LabelSelector(labels.Everything.String)`. +func (b *Builder) LabelSelectorParam(s string) *Builder { selector := strings.TrimSpace(s) if len(selector) == 0 { return b } if b.selectAll { - b.errs = append(b.errs, fmt.Errorf("found non empty selector %q with previously set 'all' parameter. ", s)) + b.errs = append(b.errs, fmt.Errorf("found non-empty label selector %q with previously set 'all' parameter. ", s)) return b } - return b.Selector(selector) + return b.LabelSelector(selector) } -// Selector accepts a selector directly, and if non nil will trigger a list action. -func (b *Builder) Selector(selector string) *Builder { - b.selector = &selector +// LabelSelector accepts a selector directly and will filter the resulting list by that object. +// Use LabelSelectorParam instead for user input. +func (b *Builder) LabelSelector(selector string) *Builder { + b.labelSelector = &selector + return b +} + +// FieldSelectorParam defines a selector that should be applied to the object types to load. +// This will not affect files loaded from disk or URL. If the parameter is empty it is +// a no-op - to select all resources. +func (b *Builder) FieldSelectorParam(s string) *Builder { + s = strings.TrimSpace(s) + if len(s) == 0 { + return b + } + if b.selectAll { + b.errs = append(b.errs, fmt.Errorf("found non-empty field selector %q with previously set 'all' parameter. ", s)) + return b + } + b.fieldSelector = &s return b } @@ -355,9 +345,17 @@ func (b *Builder) RequireNamespace() *Builder { return b } +// RequestChunksOf attempts to load responses from the server in batches of size limit +// to avoid long delays loading and transferring very large lists. If unset defaults to +// no chunking. +func (b *Builder) RequestChunksOf(chunkSize int64) *Builder { + b.limitChunks = chunkSize + return b +} + // SelectEverythingParam func (b *Builder) SelectAllParam(selectAll bool) *Builder { - if selectAll && b.selector != nil { + if selectAll && (b.labelSelector != nil || b.fieldSelector != nil) { b.errs = append(b.errs, fmt.Errorf("setting 'all' parameter but found a non empty selector. ")) return b } @@ -402,9 +400,9 @@ func (b *Builder) ResourceTypeOrNameArgs(allowEmptySelector bool, args ...string b.ResourceTypes(SplitResourceArgument(args[0])...) case len(args) == 1: b.ResourceTypes(SplitResourceArgument(args[0])...) - if b.selector == nil && allowEmptySelector { + if b.labelSelector == nil && allowEmptySelector { selector := labels.Everything().String() - b.selector = &selector + b.labelSelector = &selector } case len(args) == 0: default: @@ -593,7 +591,7 @@ func (b *Builder) visitorResult() *Result { if b.selectAll { selector := labels.Everything().String() - b.selector = &selector + b.labelSelector = &selector } // visit items specified by paths @@ -602,7 +600,7 @@ func (b *Builder) visitorResult() *Result { } // visit selectors - if b.selector != nil { + if b.labelSelector != nil || b.fieldSelector != nil { return b.visitBySelector() } @@ -642,6 +640,14 @@ func (b *Builder) visitBySelector() *Result { return result } + var labelSelector, fieldSelector string + if b.labelSelector != nil { + labelSelector = *b.labelSelector + } + if b.fieldSelector != nil { + fieldSelector = *b.fieldSelector + } + visitors := []Visitor{} for _, mapping := range mappings { client, err := b.mapper.ClientForMapping(mapping) @@ -653,7 +659,7 @@ func (b *Builder) visitBySelector() *Result { if mapping.Scope.Name() != meta.RESTScopeNameNamespace { selectorNamespace = "" } - visitors = append(visitors, NewSelector(client, mapping, selectorNamespace, *b.selector, b.export, b.includeUninitialized)) + visitors = append(visitors, NewSelector(client, mapping, selectorNamespace, labelSelector, fieldSelector, b.export, b.includeUninitialized, b.limitChunks)) } if b.continueOnError { result.visitor = EagerVisitorList(visitors) @@ -828,12 +834,12 @@ func (b *Builder) visitByPaths() *Result { } visitors = NewDecoratedVisitor(visitors, RetrieveLatest) } - if b.selector != nil { - selector, err := labels.Parse(*b.selector) + if b.labelSelector != nil { + selector, err := labels.Parse(*b.labelSelector) if err != nil { - return result.withError(fmt.Errorf("the provided selector %q is not valid: %v", b.selector, err)) + return result.withError(fmt.Errorf("the provided selector %q is not valid: %v", b.labelSelector, err)) } - visitors = NewFilteredVisitor(visitors, FilterBySelector(selector)) + visitors = NewFilteredVisitor(visitors, FilterByLabelSelector(selector)) } result.visitor = visitors result.sources = b.paths diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/builder_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/builder_test.go index d2614c3a4..ec21bf67f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/builder_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/builder_test.go @@ -37,15 +37,22 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/runtime/serializer/streaming" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/rest/fake" restclientwatch "k8s.io/client-go/rest/watch" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - apitesting "k8s.io/kubernetes/pkg/api/testing" + "k8s.io/kubernetes/pkg/kubectl/scheme" +) + +var ( + corev1GV = schema.GroupVersion{Version: "v1"} + corev1Codec = scheme.Codecs.CodecForVersions(scheme.Codecs.LegacyCodec(corev1GV), scheme.Codecs.UniversalDecoder(corev1GV), corev1GV, corev1GV) + metaAccessor = meta.NewAccessor() + restmapper = scheme.Registry.RESTMapper() ) func stringBody(body string) io.ReadCloser { @@ -54,7 +61,7 @@ func stringBody(body string) io.ReadCloser { func watchBody(events ...watch.Event) string { buf := &bytes.Buffer{} - codec := testapi.Default.Codec() + codec := corev1Codec enc := restclientwatch.NewEncoder(streaming.NewEncoder(buf, codec), codec) for _, e := range events { enc.Encode(&e) @@ -71,8 +78,8 @@ func fakeClient() ClientMapper { func fakeClientWith(testName string, t *testing.T, data map[string]string) ClientMapper { return ClientMapperFunc(func(*meta.RESTMapping) (RESTClient, error) { return &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), + GroupVersion: corev1GV, + NegotiatedSerializer: serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { p := req.URL.Path q := req.URL.RawQuery @@ -95,30 +102,30 @@ func fakeClientWith(testName string, t *testing.T, data map[string]string) Clien }) } -func testData() (*api.PodList, *api.ServiceList) { - pods := &api.PodList{ +func testData() (*v1.PodList, *v1.ServiceList) { + pods := &v1.PodList{ ListMeta: metav1.ListMeta{ ResourceVersion: "15", }, - Items: []api.Pod{ + Items: []v1.Pod{ { ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test", ResourceVersion: "10"}, - Spec: apitesting.DeepEqualSafePodSpec(), + Spec: V1DeepEqualSafePodSpec(), }, { ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "test", ResourceVersion: "11"}, - Spec: apitesting.DeepEqualSafePodSpec(), + Spec: V1DeepEqualSafePodSpec(), }, }, } - svc := &api.ServiceList{ + svc := &v1.ServiceList{ ListMeta: metav1.ListMeta{ ResourceVersion: "16", }, - Items: []api.Service{ + Items: []v1.Service{ { ObjectMeta: metav1.ObjectMeta{Name: "baz", Namespace: "test", ResourceVersion: "12"}, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Type: "ClusterIP", SessionAffinity: "None", }, @@ -128,13 +135,13 @@ func testData() (*api.PodList, *api.ServiceList) { return pods, svc } -func streamTestData() (io.Reader, *api.PodList, *api.ServiceList) { +func streamTestData() (io.Reader, *v1.PodList, *v1.ServiceList) { pods, svc := testData() r, w := io.Pipe() go func() { defer w.Close() - w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), pods))) - w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), svc))) + w.Write([]byte(runtime.EncodeOrDie(corev1Codec, pods))) + w.Write([]byte(runtime.EncodeOrDie(corev1Codec, svc))) }() return r, pods, svc } @@ -147,14 +154,14 @@ func JSONToYAMLOrDie(in []byte) []byte { return data } -func streamYAMLTestData() (io.Reader, *api.PodList, *api.ServiceList) { +func streamYAMLTestData() (io.Reader, *v1.PodList, *v1.ServiceList) { pods, svc := testData() r, w := io.Pipe() go func() { defer w.Close() - w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), pods)))) + w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(corev1Codec, pods)))) w.Write([]byte("\n---\n")) - w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), svc)))) + w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(corev1Codec, svc)))) }() return r, pods, svc } @@ -163,7 +170,7 @@ func streamTestObject(obj runtime.Object) io.Reader { r, w := io.Pipe() go func() { defer w.Close() - w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), obj))) + w.Write([]byte(runtime.EncodeOrDie(corev1Codec, obj))) }() return r } @@ -192,7 +199,7 @@ func (v *testVisitor) Objects() []runtime.Object { var aPod string = ` { "kind": "Pod", - "apiVersion": "` + api.Registry.GroupOrDie(api.GroupName).GroupVersion.String() + `", + "apiVersion": "` + corev1GV.String() + `", "metadata": { "name": "busybox{id}", "labels": { @@ -219,7 +226,7 @@ var aPod string = ` var aRC string = ` { "kind": "ReplicationController", - "apiVersion": "` + api.Registry.GroupOrDie(api.GroupName).GroupVersion.String() + `", + "apiVersion": "` + corev1GV.String() + `", "metadata": { "name": "busybox{id}", "labels": { @@ -255,7 +262,7 @@ var aRC string = ` ` func TestPathBuilderAndVersionedObjectNotDefaulted(t *testing.T) { - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../test/fixtures/pkg/kubectl/builder/kitten-rc.yaml"}}) test := &testVisitor{} @@ -278,23 +285,23 @@ func TestPathBuilderAndVersionedObjectNotDefaulted(t *testing.T) { } func TestNodeBuilder(t *testing.T) { - node := &api.Node{ + node := &v1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "node1", Namespace: "should-not-have", ResourceVersion: "10"}, - Spec: api.NodeSpec{}, - Status: api.NodeStatus{ - Capacity: api.ResourceList{ - api.ResourceCPU: resource.MustParse("1000m"), - api.ResourceMemory: resource.MustParse("1Mi"), + Spec: v1.NodeSpec{}, + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("1000m"), + v1.ResourceMemory: resource.MustParse("1Mi"), }, }, } r, w := io.Pipe() go func() { defer w.Close() - w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), node))) + w.Write([]byte(runtime.EncodeOrDie(corev1Codec, node))) }() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). NamespaceParam("test").Stream(r, "STDIN") test := &testVisitor{} @@ -349,16 +356,16 @@ func TestPathBuilderWithMultiple(t *testing.T) { directory string expectedNames []string }{ - {"pod", &api.Pod{}, false, "../../../examples/pod", []string{"nginx"}}, - {"recursive-pod", &api.Pod{}, true, fmt.Sprintf("%s/recursive/pod", tmpDir), []string{"busybox0", "busybox1"}}, - {"rc", &api.ReplicationController{}, false, "../../../examples/guestbook/legacy/redis-master-controller.yaml", []string{"redis-master"}}, - {"recursive-rc", &api.ReplicationController{}, true, fmt.Sprintf("%s/recursive/rc", tmpDir), []string{"busybox0", "busybox1"}}, - {"hardlink", &api.Pod{}, false, fmt.Sprintf("%s/inode/hardlink/busybox-link.json", tmpDir), []string{"busybox0"}}, - {"hardlink", &api.Pod{}, true, fmt.Sprintf("%s/inode/hardlink/busybox-link.json", tmpDir), []string{"busybox0"}}, + {"pod", &v1.Pod{}, false, "../../../examples/pod", []string{"nginx"}}, + {"recursive-pod", &v1.Pod{}, true, fmt.Sprintf("%s/recursive/pod", tmpDir), []string{"busybox0", "busybox1"}}, + {"rc", &v1.ReplicationController{}, false, "../../../examples/guestbook/legacy/redis-master-controller.yaml", []string{"redis-master"}}, + {"recursive-rc", &v1.ReplicationController{}, true, fmt.Sprintf("%s/recursive/rc", tmpDir), []string{"busybox0", "busybox1"}}, + {"hardlink", &v1.Pod{}, false, fmt.Sprintf("%s/inode/hardlink/busybox-link.json", tmpDir), []string{"busybox0"}}, + {"hardlink", &v1.Pod{}, true, fmt.Sprintf("%s/inode/hardlink/busybox-link.json", tmpDir), []string{"busybox0"}}, } for _, test := range tests { - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). FilenameParam(false, &FilenameOptions{Recursive: test.recursive, Filenames: []string{test.directory}}). NamespaceParam("test").DefaultNamespace() @@ -374,12 +381,12 @@ func TestPathBuilderWithMultiple(t *testing.T) { for i, v := range info { switch test.object.(type) { - case *api.Pod: - if _, ok := v.Object.(*api.Pod); !ok || v.Name != test.expectedNames[i] || v.Namespace != "test" { + case *v1.Pod: + if _, ok := v.Object.(*v1.Pod); !ok || v.Name != test.expectedNames[i] || v.Namespace != "test" { t.Errorf("unexpected info: %#v", v) } - case *api.ReplicationController: - if _, ok := v.Object.(*api.ReplicationController); !ok || v.Name != test.expectedNames[i] || v.Namespace != "test" { + case *v1.ReplicationController: + if _, ok := v.Object.(*v1.ReplicationController); !ok || v.Name != test.expectedNames[i] || v.Namespace != "test" { t.Errorf("unexpected info: %#v", v) } } @@ -417,7 +424,7 @@ func TestPathBuilderWithMultipleInvalid(t *testing.T) { } for _, test := range tests { - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). FilenameParam(false, &FilenameOptions{Recursive: test.recursive, Filenames: []string{test.directory}}). NamespaceParam("test").DefaultNamespace() @@ -432,7 +439,7 @@ func TestPathBuilderWithMultipleInvalid(t *testing.T) { } func TestDirectoryBuilder(t *testing.T) { - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy"}}). NamespaceParam("test").DefaultNamespace() @@ -459,11 +466,11 @@ func TestDirectoryBuilder(t *testing.T) { func TestNamespaceOverride(t *testing.T) { s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { w.WriteHeader(http.StatusOK) - w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) + w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &v1.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) })) defer s.Close() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). NamespaceParam("test") @@ -474,7 +481,7 @@ func TestNamespaceOverride(t *testing.T) { t.Fatalf("unexpected response: %v %#v", err, test.Infos) } - b = NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b = NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). FilenameParam(true, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). NamespaceParam("test") @@ -489,12 +496,12 @@ func TestNamespaceOverride(t *testing.T) { func TestURLBuilder(t *testing.T) { s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { w.WriteHeader(http.StatusOK) - w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) - w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test1"}}))) + w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &v1.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) + w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &v1.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test1"}}))) })) defer s.Close() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). NamespaceParam("foo") @@ -519,11 +526,11 @@ func TestURLBuilder(t *testing.T) { func TestURLBuilderRequireNamespace(t *testing.T) { s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { w.WriteHeader(http.StatusOK) - w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) + w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &v1.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "foo", Name: "test"}}))) })) defer s.Close() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{s.URL}}). NamespaceParam("test").RequireNamespace() @@ -538,9 +545,9 @@ func TestURLBuilderRequireNamespace(t *testing.T) { func TestResourceByName(t *testing.T) { pods, _ := testData() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), - }), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), + }), corev1Codec). NamespaceParam("test") test := &testVisitor{} @@ -571,12 +578,12 @@ func TestResourceByName(t *testing.T) { func TestMultipleResourceByTheSameName(t *testing.T) { pods, svcs := testData() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), - "/namespaces/test/pods/baz": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[1]), - "/namespaces/test/services/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &svcs.Items[0]), - "/namespaces/test/services/baz": runtime.EncodeOrDie(testapi.Default.Codec(), &svcs.Items[0]), - }), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), + "/namespaces/test/pods/baz": runtime.EncodeOrDie(corev1Codec, &pods.Items[1]), + "/namespaces/test/services/foo": runtime.EncodeOrDie(corev1Codec, &svcs.Items[0]), + "/namespaces/test/services/baz": runtime.EncodeOrDie(corev1Codec, &svcs.Items[0]), + }), corev1Codec). NamespaceParam("test") test := &testVisitor{} @@ -603,10 +610,10 @@ func TestMultipleResourceByTheSameName(t *testing.T) { func TestResourceNames(t *testing.T) { pods, svc := testData() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), - "/namespaces/test/services/baz": runtime.EncodeOrDie(testapi.Default.Codec(), &svc.Items[0]), - }), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), + "/namespaces/test/services/baz": runtime.EncodeOrDie(corev1Codec, &svc.Items[0]), + }), corev1Codec). NamespaceParam("test") test := &testVisitor{} @@ -631,10 +638,10 @@ func TestResourceNames(t *testing.T) { func TestResourceNamesWithoutResource(t *testing.T) { pods, svc := testData() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), - "/namespaces/test/services/baz": runtime.EncodeOrDie(testapi.Default.Codec(), &svc.Items[0]), - }), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), + "/namespaces/test/services/baz": runtime.EncodeOrDie(corev1Codec, &svc.Items[0]), + }), corev1Codec). NamespaceParam("test") test := &testVisitor{} @@ -652,7 +659,7 @@ func TestResourceNamesWithoutResource(t *testing.T) { } func TestResourceByNameWithoutRequireObject(t *testing.T) { - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{}), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{}), corev1Codec). NamespaceParam("test") test := &testVisitor{} @@ -686,11 +693,11 @@ func TestResourceByNameWithoutRequireObject(t *testing.T) { func TestResourceByNameAndEmptySelector(t *testing.T) { pods, _ := testData() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), - }), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), + }), corev1Codec). NamespaceParam("test"). - SelectorParam(""). + LabelSelectorParam(""). ResourceTypeOrNameArgs(true, "pods", "foo") singleItemImplied := false @@ -711,14 +718,58 @@ func TestResourceByNameAndEmptySelector(t *testing.T) { } } -func TestSelector(t *testing.T) { +func TestLabelSelector(t *testing.T) { + pods, svc := testData() + labelKey := metav1.LabelSelectorQueryParam(corev1GV.String()) + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, pods), + "/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, svc), + }), corev1Codec). + LabelSelectorParam("a=b"). + NamespaceParam("test"). + Flatten() + + test := &testVisitor{} + singleItemImplied := false + + if b.Do().Err() == nil { + t.Errorf("unexpected non-error") + } + + b.ResourceTypeOrNameArgs(true, "pods,service") + + err := b.Do().IntoSingleItemImplied(&singleItemImplied).Visit(test.Handle) + if err != nil || singleItemImplied || len(test.Infos) != 3 { + t.Fatalf("unexpected response: %v %t %#v", err, singleItemImplied, test.Infos) + } + if !apiequality.Semantic.DeepDerivative([]runtime.Object{&pods.Items[0], &pods.Items[1], &svc.Items[0]}, test.Objects()) { + t.Errorf("unexpected visited objects: %#v", test.Objects()) + } + + if _, err := b.Do().ResourceMapping(); err == nil { + t.Errorf("unexpected non-error") + } +} + +func TestLabelSelectorRequiresKnownTypes(t *testing.T) { + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). + LabelSelectorParam("a=b"). + NamespaceParam("test"). + ResourceTypes("unknown") + + if b.Do().Err() == nil { + t.Errorf("unexpected non-error") + } +} + +func TestFieldSelector(t *testing.T) { pods, svc := testData() - labelKey := metav1.LabelSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()) - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods), - "/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), svc), - }), testapi.Default.Codec()). - SelectorParam("a=b"). + fieldKey := metav1.FieldSelectorQueryParam(corev1GV.String()) + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods?" + fieldKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, pods), + "/namespaces/test/services?" + fieldKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, svc), + }), corev1Codec). + FieldSelectorParam("a=b"). NamespaceParam("test"). Flatten() @@ -744,9 +795,9 @@ func TestSelector(t *testing.T) { } } -func TestSelectorRequiresKnownTypes(t *testing.T) { - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). - SelectorParam("a=b"). +func TestFieldSelectorRequiresKnownTypes(t *testing.T) { + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). + FieldSelectorParam("a=b"). NamespaceParam("test"). ResourceTypes("unknown") @@ -756,8 +807,8 @@ func TestSelectorRequiresKnownTypes(t *testing.T) { } func TestSingleResourceType(t *testing.T) { - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). - SelectorParam("a=b"). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). + LabelSelectorParam("a=b"). SingleResourceType(). ResourceTypeOrNameArgs(true, "pods,services") @@ -820,13 +871,13 @@ func TestResourceTuple(t *testing.T) { if requireObject { pods, _ := testData() expectedRequests = map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), - "/namespaces/test/pods/bar": runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]), - "/nodes/foo": runtime.EncodeOrDie(testapi.Default.Codec(), &api.Node{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}), + "/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), + "/namespaces/test/pods/bar": runtime.EncodeOrDie(corev1Codec, &pods.Items[0]), + "/nodes/foo": runtime.EncodeOrDie(corev1Codec, &v1.Node{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}), } } - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith(k, t, expectedRequests), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith(k, t, expectedRequests), corev1Codec). NamespaceParam("test").DefaultNamespace(). ResourceTypeOrNameArgs(true, testCase.args...).RequireObject(requireObject) @@ -857,7 +908,7 @@ func TestResourceTuple(t *testing.T) { func TestStream(t *testing.T) { r, pods, rc := streamTestData() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). NamespaceParam("test").Stream(r, "STDIN").Flatten() test := &testVisitor{} @@ -874,7 +925,7 @@ func TestStream(t *testing.T) { func TestYAMLStream(t *testing.T) { r, pods, rc := streamYAMLTestData() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). NamespaceParam("test").Stream(r, "STDIN").Flatten() test := &testVisitor{} @@ -891,7 +942,7 @@ func TestYAMLStream(t *testing.T) { func TestMultipleObject(t *testing.T) { r, pods, svc := streamTestData() - obj, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + obj, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). NamespaceParam("test").Stream(r, "STDIN").Flatten(). Do().Object() @@ -899,11 +950,11 @@ func TestMultipleObject(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - expected := &api.List{ - Items: []runtime.Object{ - &pods.Items[0], - &pods.Items[1], - &svc.Items[0], + expected := &v1.List{ + Items: []runtime.RawExtension{ + {Object: &pods.Items[0]}, + {Object: &pods.Items[1]}, + {Object: &svc.Items[0]}, }, } if !apiequality.Semantic.DeepDerivative(expected, obj) { @@ -913,7 +964,7 @@ func TestMultipleObject(t *testing.T) { func TestContinueOnErrorVisitor(t *testing.T) { r, _, _ := streamTestData() - req := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + req := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). ContinueOnError(). NamespaceParam("test").Stream(r, "STDIN").Flatten(). Do() @@ -942,7 +993,7 @@ func TestContinueOnErrorVisitor(t *testing.T) { } func TestSingleItemImpliedObject(t *testing.T) { - obj, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + obj, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). NamespaceParam("test").DefaultNamespace(). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy/redis-master-controller.yaml"}}). Flatten(). @@ -952,7 +1003,7 @@ func TestSingleItemImpliedObject(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - rc, ok := obj.(*api.ReplicationController) + rc, ok := obj.(*v1.ReplicationController) if !ok { t.Fatalf("unexpected object: %#v", obj) } @@ -962,7 +1013,7 @@ func TestSingleItemImpliedObject(t *testing.T) { } func TestSingleItemImpliedObjectNoExtension(t *testing.T) { - obj, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + obj, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). NamespaceParam("test").DefaultNamespace(). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/pod"}}). Flatten(). @@ -972,7 +1023,7 @@ func TestSingleItemImpliedObjectNoExtension(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - pod, ok := obj.(*api.Pod) + pod, ok := obj.(*v1.Pod) if !ok { t.Fatalf("unexpected object: %#v", obj) } @@ -982,9 +1033,9 @@ func TestSingleItemImpliedObjectNoExtension(t *testing.T) { } func TestSingleItemImpliedRootScopedObject(t *testing.T) { - node := &api.Node{ObjectMeta: metav1.ObjectMeta{Name: "test"}, Spec: api.NodeSpec{ExternalID: "test"}} + node := &v1.Node{ObjectMeta: metav1.ObjectMeta{Name: "test"}, Spec: v1.NodeSpec{ExternalID: "test"}} r := streamTestObject(node) - infos, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + infos, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). NamespaceParam("test").DefaultNamespace(). Stream(r, "STDIN"). Flatten(). @@ -997,7 +1048,7 @@ func TestSingleItemImpliedRootScopedObject(t *testing.T) { if infos[0].Namespace != "" { t.Errorf("namespace should be empty: %#v", infos[0]) } - n, ok := infos[0].Object.(*api.Node) + n, ok := infos[0].Object.(*v1.Node) if !ok { t.Fatalf("unexpected object: %#v", infos[0].Object) } @@ -1008,11 +1059,11 @@ func TestSingleItemImpliedRootScopedObject(t *testing.T) { func TestListObject(t *testing.T) { pods, _ := testData() - labelKey := metav1.LabelSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()) - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods), - }), testapi.Default.Codec()). - SelectorParam("a=b"). + labelKey := metav1.LabelSelectorQueryParam(corev1GV.String()) + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, pods), + }), corev1Codec). + LabelSelectorParam("a=b"). NamespaceParam("test"). ResourceTypeOrNameArgs(true, "pods"). Flatten() @@ -1022,7 +1073,7 @@ func TestListObject(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - list, ok := obj.(*api.List) + list, ok := obj.(*v1.List) if !ok { t.Fatalf("unexpected object: %#v", obj) } @@ -1041,12 +1092,12 @@ func TestListObject(t *testing.T) { func TestListObjectWithDifferentVersions(t *testing.T) { pods, svc := testData() - labelKey := metav1.LabelSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String()) - obj, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods), - "/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), svc), - }), testapi.Default.Codec()). - SelectorParam("a=b"). + labelKey := metav1.LabelSelectorQueryParam(corev1GV.String()) + obj, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, pods), + "/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(corev1Codec, svc), + }), corev1Codec). + LabelSelectorParam("a=b"). NamespaceParam("test"). ResourceTypeOrNameArgs(true, "pods,services"). Flatten(). @@ -1056,7 +1107,7 @@ func TestListObjectWithDifferentVersions(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - list, ok := obj.(*api.List) + list, ok := obj.(*v1.List) if !ok { t.Fatalf("unexpected object: %#v", obj) } @@ -1068,12 +1119,12 @@ func TestListObjectWithDifferentVersions(t *testing.T) { func TestWatch(t *testing.T) { _, svc := testData() - w, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ + w, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ "/namespaces/test/services?fieldSelector=metadata.name%3Dredis-master&resourceVersion=12&watch=true": watchBody(watch.Event{ Type: watch.Added, Object: &svc.Items[0], }), - }), testapi.Default.Codec()). + }), corev1Codec). NamespaceParam("test").DefaultNamespace(). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/redis-master-service.yaml"}}).Flatten(). Do().Watch("12") @@ -1089,7 +1140,7 @@ func TestWatch(t *testing.T) { if obj.Type != watch.Added { t.Fatalf("unexpected watch event %#v", obj) } - service, ok := obj.Object.(*api.Service) + service, ok := obj.Object.(*v1.Service) if !ok { t.Fatalf("unexpected object: %#v", obj) } @@ -1100,7 +1151,7 @@ func TestWatch(t *testing.T) { } func TestWatchMultipleError(t *testing.T) { - _, err := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + _, err := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). NamespaceParam("test").DefaultNamespace(). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy/redis-master-controller.yaml"}}).Flatten(). FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../examples/guestbook/legacy/redis-master-controller.yaml"}}).Flatten(). @@ -1113,21 +1164,21 @@ func TestWatchMultipleError(t *testing.T) { func TestLatest(t *testing.T) { r, _, _ := streamTestData() - newPod := &api.Pod{ + newPod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test", ResourceVersion: "13"}, } - newPod2 := &api.Pod{ + newPod2 := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "bar", Namespace: "test", ResourceVersion: "14"}, } - newSvc := &api.Service{ + newSvc := &v1.Service{ ObjectMeta: metav1.ObjectMeta{Name: "baz", Namespace: "test", ResourceVersion: "15"}, } - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(testapi.Default.Codec(), newPod), - "/namespaces/test/pods/bar": runtime.EncodeOrDie(testapi.Default.Codec(), newPod2), - "/namespaces/test/services/baz": runtime.EncodeOrDie(testapi.Default.Codec(), newSvc), - }), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(corev1Codec, newPod), + "/namespaces/test/pods/bar": runtime.EncodeOrDie(corev1Codec, newPod2), + "/namespaces/test/services/baz": runtime.EncodeOrDie(corev1Codec, newSvc), + }), corev1Codec). NamespaceParam("other").Stream(r, "STDIN").Flatten().Latest() test := &testVisitor{} @@ -1149,17 +1200,17 @@ func TestReceiveMultipleErrors(t *testing.T) { go func() { defer w.Close() w.Write([]byte(`{}`)) - w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &pods.Items[0]))) + w.Write([]byte(runtime.EncodeOrDie(corev1Codec, &pods.Items[0]))) }() r2, w2 := io.Pipe() go func() { defer w2.Close() w2.Write([]byte(`{}`)) - w2.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &svc.Items[0]))) + w2.Write([]byte(runtime.EncodeOrDie(corev1Codec, &svc.Items[0]))) }() - b := NewBuilder(testapi.Default.RESTMapper(), LegacyCategoryExpander, api.Scheme, fakeClient(), testapi.Default.Codec()). + b := NewBuilder(restmapper, LegacyCategoryExpander, scheme.Scheme, fakeClient(), corev1Codec). Stream(r, "1").Stream(r2, "2"). ContinueOnError() diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/categories.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/categories.go index bee08a05c..1b1378b93 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/categories.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/categories.go @@ -179,10 +179,3 @@ var LegacyCategoryExpander CategoryExpander = SimpleCategoryExpander{ "all": legacyUserResources, }, } - -// LegacyFederationCategoryExpander is the old hardcoded expansion for federation -var LegacyFederationCategoryExpander CategoryExpander = SimpleCategoryExpander{ - Expansions: map[string][]schema.GroupResource{ - "all": {{Group: "", Resource: "services"}}, - }, -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/helper.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/helper.go index 7cb7bf4a3..e5ca36221 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/helper.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/helper.go @@ -63,33 +63,24 @@ func (m *Helper) Get(namespace, name string, export bool) (runtime.Object, error return req.Do().Get() } -// TODO: add field selector -func (m *Helper) List(namespace, apiVersion string, selector string, export, includeUninitialized bool) (runtime.Object, error) { +func (m *Helper) List(namespace, apiVersion string, export bool, options *metav1.ListOptions) (runtime.Object, error) { req := m.RESTClient.Get(). NamespaceIfScoped(namespace, m.NamespaceScoped). Resource(m.Resource). - VersionedParams(&metav1.ListOptions{ - LabelSelector: selector, - }, metav1.ParameterCodec) + VersionedParams(options, metav1.ParameterCodec) if export { // TODO: I should be part of ListOptions req.Param("export", strconv.FormatBool(export)) } - if includeUninitialized { - req.Param("includeUninitialized", strconv.FormatBool(includeUninitialized)) - } return req.Do().Get() } -func (m *Helper) Watch(namespace, resourceVersion, apiVersion string, labelSelector string) (watch.Interface, error) { +func (m *Helper) Watch(namespace, apiVersion string, options *metav1.ListOptions) (watch.Interface, error) { + options.Watch = true return m.RESTClient.Get(). NamespaceIfScoped(namespace, m.NamespaceScoped). Resource(m.Resource). - VersionedParams(&metav1.ListOptions{ - ResourceVersion: resourceVersion, - Watch: true, - LabelSelector: labelSelector, - }, metav1.ParameterCodec). + VersionedParams(options, metav1.ParameterCodec). Watch() } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/helper_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/helper_test.go index 7ce9a3aad..96a2d7789 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/helper_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/helper_test.go @@ -26,17 +26,17 @@ import ( "strings" "testing" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest/fake" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - apitesting "k8s.io/kubernetes/pkg/api/testing" ) func objBody(obj runtime.Object) io.ReadCloser { - return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), obj)))) + return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(corev1Codec, obj)))) } func header() http.Header { @@ -54,6 +54,17 @@ func splitPath(path string) []string { return strings.Split(path, "/") } +// V1DeepEqualSafePodSpec returns a PodSpec which is ready to be used with apiequality.Semantic.DeepEqual +func V1DeepEqualSafePodSpec() corev1.PodSpec { + grace := int64(30) + return corev1.PodSpec{ + RestartPolicy: corev1.RestartPolicyAlways, + DNSPolicy: corev1.DNSClusterFirst, + TerminationGracePeriodSeconds: &grace, + SecurityContext: &corev1.PodSecurityContext{}, + } +} + func TestHelperDelete(t *testing.T) { tests := []struct { Err bool @@ -103,8 +114,7 @@ func TestHelperDelete(t *testing.T) { } for _, test := range tests { client := &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), + NegotiatedSerializer: scheme.Codecs, Resp: test.Resp, Err: test.HttpErr, } @@ -167,26 +177,26 @@ func TestHelperCreate(t *testing.T) { Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess}), }, - Object: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, - ExpectObject: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, + Object: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, + ExpectObject: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, Req: expectPost, }, { Modify: false, - Object: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, - ExpectObject: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, + Object: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, + ExpectObject: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, Resp: &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, Req: expectPost, }, { Modify: true, - Object: &api.Pod{ + Object: &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, - Spec: apitesting.DeepEqualSafePodSpec(), + Spec: V1DeepEqualSafePodSpec(), }, - ExpectObject: &api.Pod{ + ExpectObject: &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: apitesting.DeepEqualSafePodSpec(), + Spec: V1DeepEqualSafePodSpec(), }, Resp: &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, Req: expectPost, @@ -194,14 +204,14 @@ func TestHelperCreate(t *testing.T) { } for i, test := range tests { client := &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), + GroupVersion: corev1GV, + NegotiatedSerializer: scheme.Codecs, Resp: test.Resp, Err: test.HttpErr, } modifier := &Helper{ RESTClient: client, - Versioner: testapi.Default.MetadataAccessor(), + Versioner: metaAccessor, NamespaceScoped: true, } _, err := modifier.Create("bar", test.Modify, test.Object) @@ -221,7 +231,7 @@ func TestHelperCreate(t *testing.T) { t.Logf("got body: %s", string(body)) expect := []byte{} if test.ExpectObject != nil { - expect = []byte(runtime.EncodeOrDie(testapi.Default.Codec(), test.ExpectObject)) + expect = []byte(runtime.EncodeOrDie(corev1Codec, test.ExpectObject)) } if !reflect.DeepEqual(expect, body) { t.Errorf("%d: unexpected body: %s (expected %s)", i, string(body), string(expect)) @@ -253,7 +263,7 @@ func TestHelperGet(t *testing.T) { Resp: &http.Response{ StatusCode: http.StatusOK, Header: header(), - Body: objBody(&api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}), + Body: objBody(&corev1.Pod{TypeMeta: metav1.TypeMeta{APIVersion: "v1", Kind: "Pod"}, ObjectMeta: metav1.ObjectMeta{Name: "foo"}}), }, Req: func(req *http.Request) bool { if req.Method != "GET" { @@ -273,10 +283,10 @@ func TestHelperGet(t *testing.T) { }, }, } - for _, test := range tests { + for i, test := range tests { client := &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), + GroupVersion: corev1GV, + NegotiatedSerializer: serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}, Resp: test.Resp, Err: test.HttpErr, } @@ -285,13 +295,14 @@ func TestHelperGet(t *testing.T) { NamespaceScoped: true, } obj, err := modifier.Get("bar", "foo", false) + if (err != nil) != test.Err { - t.Errorf("unexpected error: %t %v", test.Err, err) + t.Errorf("unexpected error: %d %t %v", i, test.Err, err) } if err != nil { continue } - if obj.(*api.Pod).Name != "foo" { + if obj.(*corev1.Pod).Name != "foo" { t.Errorf("unexpected object: %#v", obj) } if test.Req != nil && !test.Req(client.Req) { @@ -323,8 +334,8 @@ func TestHelperList(t *testing.T) { Resp: &http.Response{ StatusCode: http.StatusOK, Header: header(), - Body: objBody(&api.PodList{ - Items: []api.Pod{{ + Body: objBody(&corev1.PodList{ + Items: []corev1.Pod{{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, }, }, @@ -339,7 +350,7 @@ func TestHelperList(t *testing.T) { t.Errorf("url doesn't contain name: %#v", req.URL) return false } - if req.URL.Query().Get(metav1.LabelSelectorQueryParam(api.Registry.GroupOrDie(api.GroupName).GroupVersion.String())) != labels.SelectorFromSet(labels.Set{"foo": "baz"}).String() { + if req.URL.Query().Get(metav1.LabelSelectorQueryParam(corev1GV.String())) != labels.SelectorFromSet(labels.Set{"foo": "baz"}).String() { t.Errorf("url doesn't contain query parameters: %#v", req.URL) return false } @@ -349,8 +360,8 @@ func TestHelperList(t *testing.T) { } for _, test := range tests { client := &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), + GroupVersion: corev1GV, + NegotiatedSerializer: serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}, Resp: test.Resp, Err: test.HttpErr, } @@ -358,14 +369,14 @@ func TestHelperList(t *testing.T) { RESTClient: client, NamespaceScoped: true, } - obj, err := modifier.List("bar", api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "foo=baz", false, false) + obj, err := modifier.List("bar", corev1GV.String(), false, &metav1.ListOptions{LabelSelector: "foo=baz"}) if (err != nil) != test.Err { t.Errorf("unexpected error: %t %v", test.Err, err) } if err != nil { continue } - if obj.(*api.PodList).Items[0].Name != "foo" { + if obj.(*corev1.PodList).Items[0].Name != "foo" { t.Errorf("unexpected object: %#v", obj) } if test.Req != nil && !test.Req(client.Req) { @@ -374,6 +385,72 @@ func TestHelperList(t *testing.T) { } } +func TestHelperListSelectorCombination(t *testing.T) { + tests := []struct { + Name string + Err bool + ErrMsg string + FieldSelector string + LabelSelector string + }{ + { + Name: "No selector", + Err: false, + }, + { + Name: "Only Label Selector", + Err: false, + LabelSelector: "foo=baz", + }, + { + Name: "Only Field Selector", + Err: false, + FieldSelector: "xyz=zyx", + }, + { + Name: "Both Label and Field Selector", + Err: false, + LabelSelector: "foo=baz", + FieldSelector: "xyz=zyx", + }, + } + + resp := &http.Response{ + StatusCode: http.StatusOK, + Header: header(), + Body: objBody(&corev1.PodList{ + Items: []corev1.Pod{{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + }, + }, + }), + } + client := &fake.RESTClient{ + NegotiatedSerializer: scheme.Codecs, + Resp: resp, + Err: nil, + } + modifier := &Helper{ + RESTClient: client, + NamespaceScoped: true, + } + + for _, test := range tests { + _, err := modifier.List("bar", + corev1GV.String(), + false, + &metav1.ListOptions{LabelSelector: test.LabelSelector, FieldSelector: test.FieldSelector}) + if test.Err { + if err == nil { + t.Errorf("%q expected error: %q", test.Name, test.ErrMsg) + } + if err != nil && err.Error() != test.ErrMsg { + t.Errorf("%q expected error: %q", test.Name, test.ErrMsg) + } + } + } +} + func TestHelperReplace(t *testing.T) { expectPut := func(path string, req *http.Request) bool { if req.Method != "PUT" { @@ -410,7 +487,7 @@ func TestHelperReplace(t *testing.T) { { Namespace: "bar", NamespaceScoped: true, - Object: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, + Object: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, Resp: &http.Response{ StatusCode: http.StatusNotFound, Header: header(), @@ -421,9 +498,9 @@ func TestHelperReplace(t *testing.T) { { Namespace: "bar", NamespaceScoped: true, - Object: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, + Object: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, ExpectPath: "/namespaces/bar/foo", - ExpectObject: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, + ExpectObject: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, Resp: &http.Response{ StatusCode: http.StatusOK, Header: header(), @@ -435,30 +512,30 @@ func TestHelperReplace(t *testing.T) { { Namespace: "bar", NamespaceScoped: true, - Object: &api.Pod{ + Object: &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - Spec: apitesting.DeepEqualSafePodSpec(), + Spec: V1DeepEqualSafePodSpec(), }, ExpectPath: "/namespaces/bar/foo", - ExpectObject: &api.Pod{ + ExpectObject: &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, - Spec: apitesting.DeepEqualSafePodSpec(), + Spec: V1DeepEqualSafePodSpec(), }, Overwrite: true, HTTPClient: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { if req.Method == "PUT" { return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, nil } - return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}})}, nil + return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}})}, nil }), Req: expectPut, }, // cluster scoped resource { - Object: &api.Node{ + Object: &corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "foo"}, }, - ExpectObject: &api.Node{ + ExpectObject: &corev1.Node{ ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}, }, Overwrite: true, @@ -467,31 +544,31 @@ func TestHelperReplace(t *testing.T) { if req.Method == "PUT" { return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, nil } - return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&api.Node{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}})}, nil + return &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&corev1.Node{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}})}, nil }), Req: expectPut, }, { Namespace: "bar", NamespaceScoped: true, - Object: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, + Object: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, ExpectPath: "/namespaces/bar/foo", - ExpectObject: &api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, + ExpectObject: &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "10"}}, Resp: &http.Response{StatusCode: http.StatusOK, Header: header(), Body: objBody(&metav1.Status{Status: metav1.StatusSuccess})}, Req: expectPut, }, } for i, test := range tests { client := &fake.RESTClient{ - APIRegistry: api.Registry, - NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), + GroupVersion: corev1GV, + NegotiatedSerializer: serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}, Client: test.HTTPClient, Resp: test.Resp, Err: test.HttpErr, } modifier := &Helper{ RESTClient: client, - Versioner: testapi.Default.MetadataAccessor(), + Versioner: metaAccessor, NamespaceScoped: test.NamespaceScoped, } _, err := modifier.Replace(test.Namespace, "foo", test.Overwrite, test.Object) @@ -510,7 +587,7 @@ func TestHelperReplace(t *testing.T) { } expect := []byte{} if test.ExpectObject != nil { - expect = []byte(runtime.EncodeOrDie(testapi.Default.Codec(), test.ExpectObject)) + expect = []byte(runtime.EncodeOrDie(corev1Codec, test.ExpectObject)) } if !reflect.DeepEqual(expect, body) { t.Errorf("%d: unexpected body: %s", i, string(body)) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/result.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/result.go index 46578a573..3c0471cae 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/result.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/result.go @@ -20,13 +20,13 @@ import ( "fmt" "reflect" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/watch" - "k8s.io/kubernetes/pkg/api" ) // ErrMatchFunc can be used to filter errors that may not be true failures. @@ -129,7 +129,7 @@ func (r *Result) Infos() ([]*Info, error) { // found resources. If the Builder was a singular context (expected to return a // single resource by user input) and only a single resource was found, the resource // will be returned as is. Otherwise, the returned resources will be part of an -// api.List. The ResourceVersion of the api.List will be set only if it is identical +// v1.List. The ResourceVersion of the v1.List will be set only if it is identical // across all infos returned. func (r *Result) Object() (runtime.Object, error) { infos, err := r.Infos() @@ -160,12 +160,27 @@ func (r *Result) Object() (runtime.Object, error) { if len(versions) == 1 { version = versions.List()[0] } - return &api.List{ + + return toV1List(objects, version), err +} + +// Compile time check to enforce that list implements the necessary interface +var _ metav1.ListInterface = &v1.List{} +var _ metav1.ListMetaAccessor = &v1.List{} + +// toV1List takes a slice of Objects + their version, and returns +// a v1.List Object containing the objects in the Items field +func toV1List(objects []runtime.Object, version string) runtime.Object { + raw := []runtime.RawExtension{} + for _, o := range objects { + raw = append(raw, runtime.RawExtension{Object: o}) + } + return &v1.List{ ListMeta: metav1.ListMeta{ ResourceVersion: version, }, - Items: objects, - }, err + Items: raw, + } } // ResourceMapping returns a single meta.RESTMapping representing the diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/selector.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/selector.go index 1afa4d1f7..c46d39ac8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/selector.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/selector.go @@ -21,6 +21,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/watch" ) @@ -29,60 +30,88 @@ type Selector struct { Client RESTClient Mapping *meta.RESTMapping Namespace string - Selector string + LabelSelector string + FieldSelector string Export bool IncludeUninitialized bool + LimitChunks int64 } // NewSelector creates a resource selector which hides details of getting items by their label selector. -func NewSelector(client RESTClient, mapping *meta.RESTMapping, namespace string, selector string, export, includeUninitialized bool) *Selector { +func NewSelector(client RESTClient, mapping *meta.RESTMapping, namespace, labelSelector, fieldSelector string, export, includeUninitialized bool, limitChunks int64) *Selector { return &Selector{ Client: client, Mapping: mapping, Namespace: namespace, - Selector: selector, + LabelSelector: labelSelector, + FieldSelector: fieldSelector, Export: export, IncludeUninitialized: includeUninitialized, + LimitChunks: limitChunks, } } -// Visit implements Visitor +// Visit implements Visitor and uses request chunking by default. func (r *Selector) Visit(fn VisitorFunc) error { - list, err := NewHelper(r.Client, r.Mapping).List(r.Namespace, r.ResourceMapping().GroupVersionKind.GroupVersion().String(), r.Selector, r.Export, r.IncludeUninitialized) - if err != nil { - if errors.IsBadRequest(err) || errors.IsNotFound(err) { - if se, ok := err.(*errors.StatusError); ok { - // modify the message without hiding this is an API error - if len(r.Selector) == 0 { - se.ErrStatus.Message = fmt.Sprintf("Unable to list %q: %v", r.Mapping.Resource, se.ErrStatus.Message) - } else { - se.ErrStatus.Message = fmt.Sprintf("Unable to find %q that match the selector %q: %v", r.Mapping.Resource, r.Selector, se.ErrStatus.Message) - } - return se + var continueToken string + for { + list, err := NewHelper(r.Client, r.Mapping).List( + r.Namespace, + r.ResourceMapping().GroupVersionKind.GroupVersion().String(), + r.Export, + &metav1.ListOptions{ + LabelSelector: r.LabelSelector, + FieldSelector: r.FieldSelector, + IncludeUninitialized: r.IncludeUninitialized, + Limit: r.LimitChunks, + Continue: continueToken, + }, + ) + if err != nil { + if errors.IsResourceExpired(err) { + return err } - if len(r.Selector) == 0 { - return fmt.Errorf("Unable to list %q: %v", r.Mapping.Resource, err) - } else { - return fmt.Errorf("Unable to find %q that match the selector %q: %v", r.Mapping.Resource, r.Selector, err) + if errors.IsBadRequest(err) || errors.IsNotFound(err) { + if se, ok := err.(*errors.StatusError); ok { + // modify the message without hiding this is an API error + if len(r.LabelSelector) == 0 && len(r.FieldSelector) == 0 { + se.ErrStatus.Message = fmt.Sprintf("Unable to list %q: %v", r.Mapping.Resource, se.ErrStatus.Message) + } else { + se.ErrStatus.Message = fmt.Sprintf("Unable to find %q that match label selector %q, field selector %q: %v", r.Mapping.Resource, r.LabelSelector, r.FieldSelector, se.ErrStatus.Message) + } + return se + } + if len(r.LabelSelector) == 0 && len(r.FieldSelector) == 0 { + return fmt.Errorf("Unable to list %q: %v", r.Mapping.Resource, err) + } + return fmt.Errorf("Unable to find %q that match label selector %q, field selector %q: %v", r.Mapping.Resource, r.LabelSelector, r.FieldSelector, err) } + return err } - return err - } - accessor := r.Mapping.MetadataAccessor - resourceVersion, _ := accessor.ResourceVersion(list) - info := &Info{ - Client: r.Client, - Mapping: r.Mapping, - Namespace: r.Namespace, + accessor := r.Mapping.MetadataAccessor + resourceVersion, _ := accessor.ResourceVersion(list) + nextContinueToken, _ := accessor.Continue(list) + info := &Info{ + Client: r.Client, + Mapping: r.Mapping, + Namespace: r.Namespace, - Object: list, - ResourceVersion: resourceVersion, + Object: list, + ResourceVersion: resourceVersion, + } + if err := fn(info, nil); err != nil { + return err + } + if len(nextContinueToken) == 0 { + return nil + } + continueToken = nextContinueToken } - return fn(info, nil) } func (r *Selector) Watch(resourceVersion string) (watch.Interface, error) { - return NewHelper(r.Client, r.Mapping).Watch(r.Namespace, resourceVersion, r.ResourceMapping().GroupVersionKind.GroupVersion().String(), r.Selector) + return NewHelper(r.Client, r.Mapping).Watch(r.Namespace, r.ResourceMapping().GroupVersionKind.GroupVersion().String(), + &metav1.ListOptions{ResourceVersion: resourceVersion, LabelSelector: r.LabelSelector, FieldSelector: r.FieldSelector}) } // ResourceMapping returns the mapping for this resource and implements ResourceMapping diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/visitor.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/visitor.go index 5e5a73a31..824f0132b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource/visitor.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource/visitor.go @@ -691,7 +691,7 @@ func (v FilteredVisitor) Visit(fn VisitorFunc) error { }) } -func FilterBySelector(s labels.Selector) FilterFunc { +func FilterByLabelSelector(s labels.Selector) FilterFunc { return func(info *Info, err error) (bool, error) { if err != nil { return false, err diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource_filter.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource_filter.go index a85d1454b..a77cbf101 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource_filter.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource_filter.go @@ -19,7 +19,8 @@ package kubectl import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/printers" ) @@ -74,8 +75,8 @@ func DecodeUnknownObject(obj runtime.Object) (runtime.Object, error) { switch obj.(type) { case runtime.Unstructured, *runtime.Unknown: - if objBytes, err := runtime.Encode(api.Codecs.LegacyCodec(), obj); err == nil { - if decodedObj, err := runtime.Decode(api.Codecs.UniversalDecoder(), objBytes); err == nil { + if objBytes, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(), obj); err == nil { + if decodedObj, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), objBytes); err == nil { obj = decodedObj } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/resource_filter_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/resource_filter_test.go index a45933633..7c3335bdf 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/resource_filter_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/resource_filter_test.go @@ -21,7 +21,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/printers" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/rolebinding.go b/vendor/k8s.io/kubernetes/pkg/kubectl/rolebinding.go index 6d1ae4dda..0eddb1e03 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/rolebinding.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/rolebinding.go @@ -21,9 +21,9 @@ import ( "strings" + rbacv1 "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/apis/rbac" ) // RoleBindingGeneratorV1 supports stable generation of a roleBinding. @@ -113,35 +113,35 @@ func (s RoleBindingGeneratorV1) StructuredGenerate() (runtime.Object, error) { if err := s.validate(); err != nil { return nil, err } - roleBinding := &rbac.RoleBinding{} + roleBinding := &rbacv1.RoleBinding{} roleBinding.Name = s.Name switch { case len(s.Role) > 0: - roleBinding.RoleRef = rbac.RoleRef{ - APIGroup: rbac.GroupName, + roleBinding.RoleRef = rbacv1.RoleRef{ + APIGroup: rbacv1.GroupName, Kind: "Role", Name: s.Role, } case len(s.ClusterRole) > 0: - roleBinding.RoleRef = rbac.RoleRef{ - APIGroup: rbac.GroupName, + roleBinding.RoleRef = rbacv1.RoleRef{ + APIGroup: rbacv1.GroupName, Kind: "ClusterRole", Name: s.ClusterRole, } } for _, user := range sets.NewString(s.Users...).List() { - roleBinding.Subjects = append(roleBinding.Subjects, rbac.Subject{ - Kind: rbac.UserKind, - APIGroup: rbac.GroupName, + roleBinding.Subjects = append(roleBinding.Subjects, rbacv1.Subject{ + Kind: rbacv1.UserKind, + APIGroup: rbacv1.GroupName, Name: user, }) } for _, group := range sets.NewString(s.Groups...).List() { - roleBinding.Subjects = append(roleBinding.Subjects, rbac.Subject{ - Kind: rbac.GroupKind, - APIGroup: rbac.GroupName, + roleBinding.Subjects = append(roleBinding.Subjects, rbacv1.Subject{ + Kind: rbacv1.GroupKind, + APIGroup: rbacv1.GroupName, Name: group, }) } @@ -150,8 +150,8 @@ func (s RoleBindingGeneratorV1) StructuredGenerate() (runtime.Object, error) { if len(tokens) != 2 || tokens[1] == "" { return nil, fmt.Errorf("serviceaccount must be :") } - roleBinding.Subjects = append(roleBinding.Subjects, rbac.Subject{ - Kind: rbac.ServiceAccountKind, + roleBinding.Subjects = append(roleBinding.Subjects, rbacv1.Subject{ + Kind: rbacv1.ServiceAccountKind, APIGroup: "", Namespace: tokens[0], Name: tokens[1], diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/rolebinding_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/rolebinding_test.go index 8fedb1e00..01504f268 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/rolebinding_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/rolebinding_test.go @@ -20,8 +20,8 @@ import ( "reflect" "testing" + rbac "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/apis/rbac" ) func TestRoleBindingGenerate(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/rollback.go b/vendor/k8s.io/kubernetes/pkg/kubectl/rollback.go index 31f74d81c..7f6dfa80f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/rollback.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/rollback.go @@ -26,17 +26,19 @@ import ( appsv1beta1 "k8s.io/api/apps/v1beta1" "k8s.io/api/core/v1" - externalextensions "k8s.io/api/extensions/v1beta1" + extv1beta1 "k8s.io/api/extensions/v1beta1" + "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" - "k8s.io/kubernetes/pkg/api" - apiv1 "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/apps" + api "k8s.io/kubernetes/pkg/apis/core" + apiv1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/apis/extensions" - clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/controller/daemon" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" "k8s.io/kubernetes/pkg/controller/statefulset" @@ -54,7 +56,7 @@ type Rollbacker interface { Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64, dryRun bool) (string, error) } -func RollbackerFor(kind schema.GroupKind, c clientset.Interface) (Rollbacker, error) { +func RollbackerFor(kind schema.GroupKind, c kubernetes.Interface) (Rollbacker, error) { switch kind { case extensions.Kind("Deployment"), apps.Kind("Deployment"): return &DeploymentRollbacker{c}, nil @@ -67,7 +69,7 @@ func RollbackerFor(kind schema.GroupKind, c clientset.Interface) (Rollbacker, er } type DeploymentRollbacker struct { - c clientset.Interface + c kubernetes.Interface } func (r *DeploymentRollbacker) Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64, dryRun bool) (string, error) { @@ -81,26 +83,26 @@ func (r *DeploymentRollbacker) Rollback(obj runtime.Object, updatedAnnotations m if d.Spec.Paused { return "", fmt.Errorf("you cannot rollback a paused deployment; resume it first with 'kubectl rollout resume deployment/%s' and try again", d.Name) } - deploymentRollback := &extensions.DeploymentRollback{ + deploymentRollback := &extv1beta1.DeploymentRollback{ Name: d.Name, UpdatedAnnotations: updatedAnnotations, - RollbackTo: extensions.RollbackConfig{ + RollbackTo: extv1beta1.RollbackConfig{ Revision: toRevision, }, } result := "" // Get current events - events, err := r.c.Core().Events(d.Namespace).List(metav1.ListOptions{}) + events, err := r.c.CoreV1().Events(d.Namespace).List(metav1.ListOptions{}) if err != nil { return result, err } // Do the rollback - if err := r.c.Extensions().Deployments(d.Namespace).Rollback(deploymentRollback); err != nil { + if err := r.c.ExtensionsV1beta1().Deployments(d.Namespace).Rollback(deploymentRollback); err != nil { return result, err } // Watch for the changes of events - watch, err := r.c.Core().Events(d.Namespace).Watch(metav1.ListOptions{Watch: true, ResourceVersion: events.ResourceVersion}) + watch, err := r.c.CoreV1().Events(d.Namespace).Watch(metav1.ListOptions{Watch: true, ResourceVersion: events.ResourceVersion}) if err != nil { return result, err } @@ -149,13 +151,13 @@ func isRollbackEvent(e *api.Event) (bool, string) { return false, "" } -func simpleDryRun(deployment *extensions.Deployment, c clientset.Interface, toRevision int64) (string, error) { - externalDeployment := &externalextensions.Deployment{} - if err := api.Scheme.Convert(deployment, externalDeployment, nil); err != nil { +func simpleDryRun(deployment *extensions.Deployment, c kubernetes.Interface, toRevision int64) (string, error) { + externalDeployment := &extv1beta1.Deployment{} + if err := legacyscheme.Scheme.Convert(deployment, externalDeployment, nil); err != nil { return "", fmt.Errorf("failed to convert deployment, %v", err) } - versionedExtensionsClient := versionedExtensionsClientV1beta1(c) - _, allOldRSs, newRS, err := deploymentutil.GetAllReplicaSets(externalDeployment, versionedExtensionsClient) + + _, allOldRSs, newRS, err := deploymentutil.GetAllReplicaSets(externalDeployment, c.ExtensionsV1beta1()) if err != nil { return "", fmt.Errorf("failed to retrieve replica sets from deployment %s: %v", deployment.Name, err) } @@ -184,7 +186,7 @@ func simpleDryRun(deployment *extensions.Deployment, c clientset.Interface, toRe } buf := bytes.NewBuffer([]byte{}) internalTemplate := &api.PodTemplateSpec{} - if err := apiv1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(template, internalTemplate, nil); err != nil { + if err := apiv1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(template, internalTemplate, nil); err != nil { return "", fmt.Errorf("failed to convert podtemplate, %v", err) } w := printersinternal.NewPrefixWriter(buf) @@ -203,7 +205,7 @@ func simpleDryRun(deployment *extensions.Deployment, c clientset.Interface, toRe buf := bytes.NewBuffer([]byte{}) buf.WriteString("\n") internalTemplate := &api.PodTemplateSpec{} - if err := apiv1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(template, internalTemplate, nil); err != nil { + if err := apiv1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(template, internalTemplate, nil); err != nil { return "", fmt.Errorf("failed to convert podtemplate, %v", err) } w := printersinternal.NewPrefixWriter(buf) @@ -212,40 +214,32 @@ func simpleDryRun(deployment *extensions.Deployment, c clientset.Interface, toRe } type DaemonSetRollbacker struct { - c clientset.Interface + c kubernetes.Interface } func (r *DaemonSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64, dryRun bool) (string, error) { if toRevision < 0 { return "", revisionNotFoundErr(toRevision) } - - ds, ok := obj.(*extensions.DaemonSet) - if !ok { - return "", fmt.Errorf("passed object is not a DaemonSet: %#v", obj) - } - versionedAppsClient := versionedAppsClientV1beta1(r.c) - versionedExtensionsClient := versionedExtensionsClientV1beta1(r.c) - versionedObj, allHistory, err := controlledHistories(versionedAppsClient, versionedExtensionsClient, ds.Namespace, ds.Name, "DaemonSet") + accessor, err := meta.Accessor(obj) if err != nil { - return "", fmt.Errorf("unable to find history controlled by DaemonSet %s: %v", ds.Name, err) + return "", fmt.Errorf("failed to create accessor for kind %v: %s", obj.GetObjectKind(), err.Error()) } - versionedDS, ok := versionedObj.(*externalextensions.DaemonSet) - if !ok { - return "", fmt.Errorf("unexpected non-DaemonSet object returned: %v", versionedDS) + ds, history, err := daemonSetHistory(r.c.ExtensionsV1beta1(), r.c.AppsV1beta1(), accessor.GetNamespace(), accessor.GetName()) + if err != nil { + return "", err } - - if toRevision == 0 && len(allHistory) <= 1 { + if toRevision == 0 && len(history) <= 1 { return "", fmt.Errorf("no last revision to roll back to") } - toHistory := findHistory(toRevision, allHistory) + toHistory := findHistory(toRevision, history) if toHistory == nil { return "", revisionNotFoundErr(toRevision) } if dryRun { - appliedDS, err := applyHistory(versionedDS, toHistory) + appliedDS, err := applyDaemonSetHistory(ds, toHistory) if err != nil { return "", err } @@ -253,7 +247,7 @@ func (r *DaemonSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations ma } // Skip if the revision already matches current DaemonSet - done, err := daemon.Match(versionedDS, toHistory) + done, err := daemon.Match(ds, toHistory) if err != nil { return "", err } @@ -262,7 +256,7 @@ func (r *DaemonSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations ma } // Restore revision - if _, err = versionedExtensionsClient.DaemonSets(ds.Namespace).Patch(ds.Name, types.StrategicMergePatchType, toHistory.Data.Raw); err != nil { + if _, err = r.c.ExtensionsV1beta1().DaemonSets(accessor.GetNamespace()).Patch(accessor.GetName(), types.StrategicMergePatchType, toHistory.Data.Raw); err != nil { return "", fmt.Errorf("failed restoring revision %d: %v", toRevision, err) } @@ -270,7 +264,7 @@ func (r *DaemonSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations ma } type StatefulSetRollbacker struct { - c clientset.Interface + c kubernetes.Interface } // toRevision is a non-negative integer, with 0 being reserved to indicate rolling back to previous configuration @@ -278,34 +272,25 @@ func (r *StatefulSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations if toRevision < 0 { return "", revisionNotFoundErr(toRevision) } - - ss, ok := obj.(*apps.StatefulSet) - if !ok { - return "", fmt.Errorf("passed object is not a StatefulSet: %#v", obj) - } - versionedAppsClient := versionedAppsClientV1beta1(r.c) - versionedExtensionsClient := versionedExtensionsClientV1beta1(r.c) - versionedObj, allHistory, err := controlledHistories(versionedAppsClient, versionedExtensionsClient, ss.Namespace, ss.Name, "StatefulSet") + accessor, err := meta.Accessor(obj) if err != nil { - return "", fmt.Errorf("unable to find history controlled by StatefulSet %s: %v", ss.Name, err) + return "", fmt.Errorf("failed to create accessor for kind %v: %s", obj.GetObjectKind(), err.Error()) } - - versionedSS, ok := versionedObj.(*appsv1beta1.StatefulSet) - if !ok { - return "", fmt.Errorf("unexpected non-StatefulSet object returned: %v", versionedSS) + sts, history, err := statefulSetHistory(r.c.AppsV1beta1(), accessor.GetNamespace(), accessor.GetName()) + if err != nil { + return "", err } - - if toRevision == 0 && len(allHistory) <= 1 { + if toRevision == 0 && len(history) <= 1 { return "", fmt.Errorf("no last revision to roll back to") } - toHistory := findHistory(toRevision, allHistory) + toHistory := findHistory(toRevision, history) if toHistory == nil { return "", revisionNotFoundErr(toRevision) } if dryRun { - appliedSS, err := statefulset.ApplyRevision(versionedSS, toHistory) + appliedSS, err := statefulset.ApplyRevision(sts, toHistory) if err != nil { return "", err } @@ -313,7 +298,7 @@ func (r *StatefulSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations } // Skip if the revision already matches current StatefulSet - done, err := statefulset.Match(versionedSS, toHistory) + done, err := statefulset.Match(sts, toHistory) if err != nil { return "", err } @@ -322,7 +307,7 @@ func (r *StatefulSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations } // Restore revision - if _, err = versionedAppsClient.StatefulSets(ss.Namespace).Patch(ss.Name, types.StrategicMergePatchType, toHistory.Data.Raw); err != nil { + if _, err = r.c.AppsV1beta1().StatefulSets(sts.Namespace).Patch(sts.Name, types.StrategicMergePatchType, toHistory.Data.Raw); err != nil { return "", fmt.Errorf("failed restoring revision %d: %v", toRevision, err) } @@ -360,7 +345,7 @@ func printPodTemplate(specTemplate *v1.PodTemplateSpec) (string, error) { content := bytes.NewBuffer([]byte{}) w := printersinternal.NewPrefixWriter(content) internalTemplate := &api.PodTemplateSpec{} - if err := apiv1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(specTemplate, internalTemplate, nil); err != nil { + if err := apiv1.Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec(specTemplate, internalTemplate, nil); err != nil { return "", fmt.Errorf("failed to convert podtemplate while printing: %v", err) } printersinternal.DescribePodTemplate(internalTemplate, w) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/rolling_updater.go b/vendor/k8s.io/kubernetes/pkg/kubectl/rolling_updater.go index 395213d64..1a1f8dfb3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/rolling_updater.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/rolling_updater.go @@ -32,9 +32,9 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/util/integer" "k8s.io/client-go/util/retry" - "k8s.io/kubernetes/pkg/api" - apiv1 "k8s.io/kubernetes/pkg/api/v1" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + api "k8s.io/kubernetes/pkg/apis/core" + apiv1 "k8s.io/kubernetes/pkg/apis/core/v1" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" client "k8s.io/kubernetes/pkg/client/unversioned" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" @@ -425,7 +425,7 @@ func (r *RollingUpdater) readyPods(oldRc, newRc *api.ReplicationController, minR } for _, pod := range pods.Items { v1Pod := &v1.Pod{} - if err := apiv1.Convert_api_Pod_To_v1_Pod(&pod, v1Pod, nil); err != nil { + if err := apiv1.Convert_core_Pod_To_v1_Pod(&pod, v1Pod, nil); err != nil { return 0, 0, err } // Do not count deleted pods as ready diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/rolling_updater_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/rolling_updater_test.go index 2070df1d5..0bd04c6b1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/rolling_updater_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/rolling_updater_test.go @@ -36,9 +36,10 @@ import ( restclient "k8s.io/client-go/rest" manualfake "k8s.io/client-go/rest/fake" testcore "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" "k8s.io/kubernetes/pkg/kubectl/util" @@ -1468,7 +1469,7 @@ func TestUpdateRcWithRetries(t *testing.T) { {StatusCode: 200, Header: header, Body: objBody(codec, rc)}, } fakeClient := &manualfake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), Client: manualfake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { @@ -1495,7 +1496,7 @@ func TestUpdateRcWithRetries(t *testing.T) { } }), } - clientConfig := &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs, GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + clientConfig := &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs, GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}} restClient, _ := restclient.RESTClientFor(clientConfig) restClient.Client = fakeClient.Client clientset := internalclientset.New(restClient) @@ -1561,7 +1562,7 @@ func TestAddDeploymentHash(t *testing.T) { seen := sets.String{} updatedRc := false fakeClient := &manualfake.RESTClient{ - APIRegistry: api.Registry, + GroupVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, NegotiatedSerializer: testapi.Default.NegotiatedSerializer(), Client: manualfake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { header := http.Header{} @@ -1596,7 +1597,7 @@ func TestAddDeploymentHash(t *testing.T) { } }), } - clientConfig := &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs, GroupVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion}} + clientConfig := &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs, GroupVersion: &legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion}} restClient, _ := restclient.RESTClientFor(clientConfig) restClient.Client = fakeClient.Client clientset := internalclientset.New(restClient) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/rollout_status.go b/vendor/k8s.io/kubernetes/pkg/kubectl/rollout_status.go index d7d40af16..2f58cb28e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/rollout_status.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/rollout_status.go @@ -19,13 +19,13 @@ package kubectl import ( "fmt" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/kubernetes" + clientappsv1beta1 "k8s.io/client-go/kubernetes/typed/apps/v1beta1" + clientextensionsv1beta1 "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" "k8s.io/kubernetes/pkg/apis/apps" - "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - appsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion" - extensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion" "k8s.io/kubernetes/pkg/controller/deployment/util" ) @@ -35,31 +35,31 @@ type StatusViewer interface { } // StatusViewerFor returns a StatusViewer for the resource specified by kind. -func StatusViewerFor(kind schema.GroupKind, c internalclientset.Interface) (StatusViewer, error) { +func StatusViewerFor(kind schema.GroupKind, c kubernetes.Interface) (StatusViewer, error) { switch kind { - case extensions.Kind("Deployment"), apps.Kind("Deployment"): + case extensionsv1beta1.SchemeGroupVersion.WithKind("Deployment").GroupKind(), apps.Kind("Deployment"): return &DeploymentStatusViewer{c.Extensions()}, nil - case extensions.Kind("DaemonSet"), apps.Kind("DaemonSet"): + case extensionsv1beta1.SchemeGroupVersion.WithKind("DaemonSet").GroupKind(), apps.Kind("DaemonSet"): return &DaemonSetStatusViewer{c.Extensions()}, nil case apps.Kind("StatefulSet"): - return &StatefulSetStatusViewer{c.Apps()}, nil + return &StatefulSetStatusViewer{c.AppsV1beta1()}, nil } return nil, fmt.Errorf("no status viewer has been implemented for %v", kind) } // DeploymentStatusViewer implements the StatusViewer interface. type DeploymentStatusViewer struct { - c extensionsclient.DeploymentsGetter + c clientextensionsv1beta1.DeploymentsGetter } // DaemonSetStatusViewer implements the StatusViewer interface. type DaemonSetStatusViewer struct { - c extensionsclient.DaemonSetsGetter + c clientextensionsv1beta1.DaemonSetsGetter } // StatefulSetStatusViewer implements the StatusViewer interface. type StatefulSetStatusViewer struct { - c appsclient.StatefulSetsGetter + c clientappsv1beta1.StatefulSetsGetter } // Status returns a message describing deployment status, and a bool value indicating if the status is considered done. @@ -78,12 +78,12 @@ func (s *DeploymentStatusViewer) Status(namespace, name string, revision int64) } } if deployment.Generation <= deployment.Status.ObservedGeneration { - cond := util.GetDeploymentConditionInternal(deployment.Status, extensions.DeploymentProgressing) + cond := util.GetDeploymentCondition(deployment.Status, extensionsv1beta1.DeploymentProgressing) if cond != nil && cond.Reason == util.TimedOutReason { return "", false, fmt.Errorf("deployment %q exceeded its progress deadline", name) } - if deployment.Status.UpdatedReplicas < deployment.Spec.Replicas { - return fmt.Sprintf("Waiting for rollout to finish: %d out of %d new replicas have been updated...\n", deployment.Status.UpdatedReplicas, deployment.Spec.Replicas), false, nil + if deployment.Spec.Replicas != nil && deployment.Status.UpdatedReplicas < *deployment.Spec.Replicas { + return fmt.Sprintf("Waiting for rollout to finish: %d out of %d new replicas have been updated...\n", deployment.Status.UpdatedReplicas, *deployment.Spec.Replicas), false, nil } if deployment.Status.Replicas > deployment.Status.UpdatedReplicas { return fmt.Sprintf("Waiting for rollout to finish: %d old replicas are pending termination...\n", deployment.Status.Replicas-deployment.Status.UpdatedReplicas), false, nil @@ -104,7 +104,7 @@ func (s *DaemonSetStatusViewer) Status(namespace, name string, revision int64) ( if err != nil { return "", false, err } - if daemon.Spec.UpdateStrategy.Type != extensions.RollingUpdateDaemonSetStrategyType { + if daemon.Spec.UpdateStrategy.Type != extensionsv1beta1.RollingUpdateDaemonSetStrategyType { return "", true, fmt.Errorf("Status is available only for RollingUpdate strategy type") } if daemon.Generation <= daemon.Status.ObservedGeneration { @@ -131,13 +131,15 @@ func (s *StatefulSetStatusViewer) Status(namespace, name string, revision int64) if sts.Status.ObservedGeneration == nil || sts.Generation > *sts.Status.ObservedGeneration { return "Waiting for statefulset spec update to be observed...\n", false, nil } - if sts.Status.ReadyReplicas < sts.Spec.Replicas { - return fmt.Sprintf("Waiting for %d pods to be ready...\n", sts.Spec.Replicas-sts.Status.ReadyReplicas), false, nil + if sts.Spec.Replicas != nil && sts.Status.ReadyReplicas < *sts.Spec.Replicas { + return fmt.Sprintf("Waiting for %d pods to be ready...\n", *sts.Spec.Replicas-sts.Status.ReadyReplicas), false, nil } if sts.Spec.UpdateStrategy.Type == apps.RollingUpdateStatefulSetStrategyType && sts.Spec.UpdateStrategy.RollingUpdate != nil { - if sts.Status.UpdatedReplicas < (sts.Spec.Replicas - sts.Spec.UpdateStrategy.RollingUpdate.Partition) { - return fmt.Sprintf("Waiting for partitioned roll out to finish: %d out of %d new pods have been updated...\n", - sts.Status.UpdatedReplicas, (sts.Spec.Replicas - sts.Spec.UpdateStrategy.RollingUpdate.Partition)), false, nil + if sts.Spec.Replicas != nil && sts.Spec.UpdateStrategy.RollingUpdate.Partition != nil { + if sts.Status.UpdatedReplicas < (*sts.Spec.Replicas - *sts.Spec.UpdateStrategy.RollingUpdate.Partition) { + return fmt.Sprintf("Waiting for partitioned roll out to finish: %d out of %d new pods have been updated...\n", + sts.Status.UpdatedReplicas, (*sts.Spec.Replicas - *sts.Spec.UpdateStrategy.RollingUpdate.Partition)), false, nil + } } return fmt.Sprintf("partitioned roll out complete: %d new pods have been updated...\n", sts.Status.UpdatedReplicas), true, nil diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/rollout_status_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/rollout_status_test.go index ae13d9b09..38fd2348f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/rollout_status_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/rollout_status_test.go @@ -20,11 +20,11 @@ import ( "fmt" "testing" + apps "k8s.io/api/apps/v1beta1" + api "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/apps" - "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" + "k8s.io/client-go/kubernetes/fake" ) func TestDeploymentStatusViewerStatus(t *testing.T) { @@ -116,7 +116,7 @@ func TestDeploymentStatusViewerStatus(t *testing.T) { Generation: test.generation, }, Spec: extensions.DeploymentSpec{ - Replicas: test.specReplicas, + Replicas: &test.specReplicas, }, Status: test.status, } @@ -306,7 +306,8 @@ func TestStatefulSetStatusViewerStatus(t *testing.T) { generation: 1, strategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType, RollingUpdate: func() *apps.RollingUpdateStatefulSetStrategy { - return &apps.RollingUpdateStatefulSetStrategy{Partition: 2} + partition := int32(2) + return &apps.RollingUpdateStatefulSetStrategy{Partition: &partition} }()}, status: apps.StatefulSetStatus{ ObservedGeneration: func() *int64 { @@ -328,7 +329,8 @@ func TestStatefulSetStatusViewerStatus(t *testing.T) { generation: 1, strategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType, RollingUpdate: func() *apps.RollingUpdateStatefulSetStrategy { - return &apps.RollingUpdateStatefulSetStrategy{Partition: 2} + partition := int32(2) + return &apps.RollingUpdateStatefulSetStrategy{Partition: &partition} }()}, status: apps.StatefulSetStatus{ ObservedGeneration: func() *int64 { @@ -373,7 +375,7 @@ func TestStatefulSetStatusViewerStatus(t *testing.T) { s.Status = test.status s.Spec.UpdateStrategy = test.strategy s.Generation = test.generation - client := fake.NewSimpleClientset(s).Apps() + client := fake.NewSimpleClientset(s).AppsV1beta1() dsv := &StatefulSetStatusViewer{c: client} msg, done, err := dsv.Status(s.Namespace, s.Name, 0) if test.err && err == nil { @@ -439,7 +441,7 @@ func newStatefulSet(replicas int32) *apps.StatefulSet { DNSPolicy: api.DNSClusterFirst, }, }, - Replicas: replicas, + Replicas: &replicas, UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType}, }, Status: apps.StatefulSetStatus{}, diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/run.go b/vendor/k8s.io/kubernetes/pkg/kubectl/run.go index 7dd77f1f3..e78bfd4c3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/run.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/run.go @@ -31,7 +31,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/kubernetes/pkg/api" ) type DeploymentV1Beta1 struct{} @@ -102,8 +101,6 @@ func (DeploymentV1Beta1) Generate(genericParams map[string]interface{}) (runtime return nil, err } - // TODO: use versioned types for generators so that we don't need to - // set default values manually (see issue #17384) count32 := int32(count) deployment := extensionsv1beta1.Deployment{ ObjectMeta: metav1.ObjectMeta{ @@ -608,31 +605,6 @@ func (BasicReplicationController) ParamNames() []GeneratorParam { } } -// populateResourceList takes strings of form =,= -// and returns ResourceList. -func populateResourceList(spec string) (api.ResourceList, error) { - // empty input gets a nil response to preserve generator test expected behaviors - if spec == "" { - return nil, nil - } - - result := api.ResourceList{} - resourceStatements := strings.Split(spec, ",") - for _, resourceStatement := range resourceStatements { - parts := strings.Split(resourceStatement, "=") - if len(parts) != 2 { - return nil, fmt.Errorf("Invalid argument syntax %v, expected =", resourceStatement) - } - resourceName := api.ResourceName(parts[0]) - resourceQuantity, err := resource.ParseQuantity(parts[1]) - if err != nil { - return nil, err - } - result[resourceName] = resourceQuantity - } - return result, nil -} - // populateResourceListV1 takes strings of form =,= // and returns ResourceList. func populateResourceListV1(spec string) (v1.ResourceList, error) { @@ -658,23 +630,6 @@ func populateResourceListV1(spec string) (v1.ResourceList, error) { return result, nil } -// HandleResourceRequirements parses the limits and requests parameters if specified -// and returns ResourceRequirements. -func HandleResourceRequirements(params map[string]string) (api.ResourceRequirements, error) { - result := api.ResourceRequirements{} - limits, err := populateResourceList(params["limits"]) - if err != nil { - return result, err - } - result.Limits = limits - requests, err := populateResourceList(params["requests"]) - if err != nil { - return result, err - } - result.Requests = requests - return result, nil -} - // HandleResourceRequirementsV1 parses the limits and requests parameters if specified // and returns ResourceRequirements. func HandleResourceRequirementsV1(params map[string]string) (v1.ResourceRequirements, error) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/scale.go b/vendor/k8s.io/kubernetes/pkg/kubectl/scale.go index 20734bc5f..da6d4fbb7 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/scale.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/scale.go @@ -27,9 +27,9 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" appsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/scale_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/scale_test.go index 6e6cd62ed..85c77a1ff 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/scale_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/scale_test.go @@ -23,8 +23,8 @@ import ( kerrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" testcore "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" batchclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion" diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/scheme/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/scheme/BUILD new file mode 100644 index 000000000..d24b79b1b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/scheme/BUILD @@ -0,0 +1,62 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "install.go", + "scheme.go", + ], + importpath = "k8s.io/kubernetes/pkg/kubectl/scheme", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/admission/v1alpha1:go_default_library", + "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", + "//vendor/k8s.io/api/apps/v1:go_default_library", + "//vendor/k8s.io/api/apps/v1beta1:go_default_library", + "//vendor/k8s.io/api/apps/v1beta2:go_default_library", + "//vendor/k8s.io/api/authentication/v1:go_default_library", + "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", + "//vendor/k8s.io/api/authorization/v1:go_default_library", + "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", + "//vendor/k8s.io/api/batch/v1:go_default_library", + "//vendor/k8s.io/api/batch/v1beta1:go_default_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/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/api/imagepolicy/v1alpha1:go_default_library", + "//vendor/k8s.io/api/networking/v1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", + "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", + "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", + "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", + "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", + "//vendor/k8s.io/api/storage/v1:go_default_library", + "//vendor/k8s.io/api/storage/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered: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", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme: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/kubernetes/pkg/kubectl/scheme/install.go b/vendor/k8s.io/kubernetes/pkg/kubectl/scheme/install.go new file mode 100644 index 000000000..fd405aefd --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/scheme/install.go @@ -0,0 +1,304 @@ +/* +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 scheme + +import ( + admissionv1alpha1 "k8s.io/api/admission/v1alpha1" + admissionregistrationv1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + appsv1 "k8s.io/api/apps/v1" + appsv1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta2 "k8s.io/api/apps/v1beta2" + authenticationv1 "k8s.io/api/authentication/v1" + authenticationv1beta1 "k8s.io/api/authentication/v1beta1" + authorizationv1 "k8s.io/api/authorization/v1" + authorizationv1beta1 "k8s.io/api/authorization/v1beta1" + autoscalingv1 "k8s.io/api/autoscaling/v1" + autoscalingv2beta1 "k8s.io/api/autoscaling/v2beta1" + batchv1 "k8s.io/api/batch/v1" + batchv1beta1 "k8s.io/api/batch/v1beta1" + batchv2alpha1 "k8s.io/api/batch/v2alpha1" + certificatesv1beta1 "k8s.io/api/certificates/v1beta1" + corev1 "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + imagepolicyv1alpha1 "k8s.io/api/imagepolicy/v1alpha1" + networkingv1 "k8s.io/api/networking/v1" + policyv1beta1 "k8s.io/api/policy/v1beta1" + rbacv1 "k8s.io/api/rbac/v1" + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" + settingsv1alpha1 "k8s.io/api/settings/v1alpha1" + storagev1 "k8s.io/api/storage/v1" + storagev1beta1 "k8s.io/api/storage/v1beta1" + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/client-go/kubernetes/scheme" +) + +// Register all groups in the kubectl's registry, but no componentconfig group since it's not in k8s.io/api +// The code in this file mostly duplicate the install under k8s.io/kubernetes/pkg/api and k8s.io/kubernetes/pkg/apis, +// but does NOT register the internal types. +func init() { + // Register external types for Scheme + v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) + scheme.AddToScheme(Scheme) + + // Register external types for Registry + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: corev1.GroupName, + VersionPreferenceOrder: []string{corev1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString( + "Node", + "Namespace", + "PersistentVolume", + "ComponentStatus", + ), + IgnoredKinds: sets.NewString( + "ListOptions", + "DeleteOptions", + "Status", + "PodLogOptions", + "PodExecOptions", + "PodAttachOptions", + "PodPortForwardOptions", + "PodProxyOptions", + "NodeProxyOptions", + "ServiceProxyOptions", + ), + }, + announced.VersionToSchemeFunc{ + corev1.SchemeGroupVersion.Version: corev1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: admissionv1alpha1.GroupName, + VersionPreferenceOrder: []string{admissionv1alpha1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("AdmissionReview"), + }, + announced.VersionToSchemeFunc{ + admissionv1alpha1.SchemeGroupVersion.Version: admissionv1alpha1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: admissionregistrationv1alpha1.GroupName, + RootScopedKinds: sets.NewString("InitializerConfiguration", "ValidatingWebhookConfiguration", "MutatingWebhookConfiguration"), + VersionPreferenceOrder: []string{admissionregistrationv1alpha1.SchemeGroupVersion.Version}, + }, + announced.VersionToSchemeFunc{ + admissionregistrationv1alpha1.SchemeGroupVersion.Version: admissionregistrationv1alpha1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: appsv1.GroupName, + VersionPreferenceOrder: []string{appsv1beta1.SchemeGroupVersion.Version, appsv1beta2.SchemeGroupVersion.Version, appsv1.SchemeGroupVersion.Version}, + }, + announced.VersionToSchemeFunc{ + appsv1beta1.SchemeGroupVersion.Version: appsv1beta1.AddToScheme, + appsv1beta2.SchemeGroupVersion.Version: appsv1beta2.AddToScheme, + appsv1.SchemeGroupVersion.Version: appsv1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: authenticationv1beta1.GroupName, + VersionPreferenceOrder: []string{authenticationv1.SchemeGroupVersion.Version, authenticationv1beta1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("TokenReview"), + }, + announced.VersionToSchemeFunc{ + authenticationv1beta1.SchemeGroupVersion.Version: authenticationv1beta1.AddToScheme, + authenticationv1.SchemeGroupVersion.Version: authenticationv1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: authorizationv1.GroupName, + VersionPreferenceOrder: []string{authorizationv1.SchemeGroupVersion.Version, authorizationv1beta1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("SubjectAccessReview", "SelfSubjectAccessReview", "SelfSubjectRulesReview"), + }, + announced.VersionToSchemeFunc{ + authorizationv1beta1.SchemeGroupVersion.Version: authorizationv1beta1.AddToScheme, + authorizationv1.SchemeGroupVersion.Version: authorizationv1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: autoscalingv1.GroupName, + VersionPreferenceOrder: []string{autoscalingv1.SchemeGroupVersion.Version, autoscalingv2beta1.SchemeGroupVersion.Version}, + }, + announced.VersionToSchemeFunc{ + autoscalingv1.SchemeGroupVersion.Version: autoscalingv1.AddToScheme, + autoscalingv2beta1.SchemeGroupVersion.Version: autoscalingv2beta1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: batchv1.GroupName, + VersionPreferenceOrder: []string{batchv1.SchemeGroupVersion.Version, batchv1beta1.SchemeGroupVersion.Version, batchv2alpha1.SchemeGroupVersion.Version}, + }, + announced.VersionToSchemeFunc{ + batchv1.SchemeGroupVersion.Version: batchv1.AddToScheme, + batchv1beta1.SchemeGroupVersion.Version: batchv1beta1.AddToScheme, + batchv2alpha1.SchemeGroupVersion.Version: batchv2alpha1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: certificatesv1beta1.GroupName, + VersionPreferenceOrder: []string{certificatesv1beta1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("CertificateSigningRequest"), + }, + announced.VersionToSchemeFunc{ + certificatesv1beta1.SchemeGroupVersion.Version: certificatesv1beta1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: extensionsv1beta1.GroupName, + VersionPreferenceOrder: []string{extensionsv1beta1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("PodSecurityPolicy"), + }, + announced.VersionToSchemeFunc{ + extensionsv1beta1.SchemeGroupVersion.Version: extensionsv1beta1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: imagepolicyv1alpha1.GroupName, + VersionPreferenceOrder: []string{imagepolicyv1alpha1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("ImageReview"), + }, + announced.VersionToSchemeFunc{ + imagepolicyv1alpha1.SchemeGroupVersion.Version: imagepolicyv1alpha1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: networkingv1.GroupName, + VersionPreferenceOrder: []string{networkingv1.SchemeGroupVersion.Version}, + }, + announced.VersionToSchemeFunc{ + networkingv1.SchemeGroupVersion.Version: networkingv1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: policyv1beta1.GroupName, + VersionPreferenceOrder: []string{policyv1beta1.SchemeGroupVersion.Version}, + }, + announced.VersionToSchemeFunc{ + policyv1beta1.SchemeGroupVersion.Version: policyv1beta1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: rbacv1.GroupName, + VersionPreferenceOrder: []string{rbacv1.SchemeGroupVersion.Version, rbacv1beta1.SchemeGroupVersion.Version, rbacv1alpha1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("ClusterRole", "ClusterRoleBinding"), + }, + announced.VersionToSchemeFunc{ + rbacv1.SchemeGroupVersion.Version: rbacv1.AddToScheme, + rbacv1beta1.SchemeGroupVersion.Version: rbacv1beta1.AddToScheme, + rbacv1alpha1.SchemeGroupVersion.Version: rbacv1alpha1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: schedulingv1alpha1.GroupName, + VersionPreferenceOrder: []string{schedulingv1alpha1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("PriorityClass"), + }, + announced.VersionToSchemeFunc{ + schedulingv1alpha1.SchemeGroupVersion.Version: schedulingv1alpha1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: settingsv1alpha1.GroupName, + VersionPreferenceOrder: []string{settingsv1alpha1.SchemeGroupVersion.Version}, + }, + announced.VersionToSchemeFunc{ + settingsv1alpha1.SchemeGroupVersion.Version: settingsv1alpha1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } + + if err := announced.NewGroupMetaFactory( + &announced.GroupMetaFactoryArgs{ + GroupName: storagev1.GroupName, + VersionPreferenceOrder: []string{storagev1.SchemeGroupVersion.Version, storagev1beta1.SchemeGroupVersion.Version}, + RootScopedKinds: sets.NewString("StorageClass"), + }, + announced.VersionToSchemeFunc{ + storagev1.SchemeGroupVersion.Version: storagev1.AddToScheme, + storagev1beta1.SchemeGroupVersion.Version: storagev1beta1.AddToScheme, + }, + ).Announce(GroupFactoryRegistry).RegisterAndEnable(Registry, Scheme); err != nil { + panic(err) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/scheme/scheme.go b/vendor/k8s.io/kubernetes/pkg/kubectl/scheme/scheme.go new file mode 100644 index 000000000..cd38d22a1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/scheme/scheme.go @@ -0,0 +1,43 @@ +/* +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 scheme + +import ( + "os" + + "k8s.io/apimachinery/pkg/apimachinery/announced" + "k8s.io/apimachinery/pkg/apimachinery/registered" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// All kubectl code should eventually switch to use this Registry and Scheme instead of the global ones. + +// GroupFactoryRegistry is the APIGroupFactoryRegistry (overlaps a bit with Registry, see comments in package for details) +var GroupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +// Registry is an instance of an API registry. +var Registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) + +// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered. +var Scheme = runtime.NewScheme() + +// Codecs provides access to encoding and decoding for the scheme +var Codecs = serializer.NewCodecFactory(Scheme) + +// ParameterCodec handles versioning of objects that are converted to query parameters. +var ParameterCodec = runtime.NewParameterCodec(Scheme) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/secret.go b/vendor/k8s.io/kubernetes/pkg/kubectl/secret.go index 6ad8e7a25..04c5ced23 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/secret.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/secret.go @@ -23,9 +23,9 @@ import ( "path" "strings" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl/util" "k8s.io/kubernetes/pkg/kubectl/util/hash" ) @@ -129,11 +129,11 @@ func (s SecretGeneratorV1) StructuredGenerate() (runtime.Object, error) { if err := s.validate(); err != nil { return nil, err } - secret := &api.Secret{} + secret := &v1.Secret{} secret.Name = s.Name secret.Data = map[string][]byte{} if len(s.Type) > 0 { - secret.Type = api.SecretType(s.Type) + secret.Type = v1.SecretType(s.Type) } if len(s.FileSources) > 0 { if err := handleFromFileSources(secret, s.FileSources); err != nil { @@ -172,7 +172,7 @@ func (s SecretGeneratorV1) validate() error { } // handleFromLiteralSources adds the specified literal source information into the provided secret -func handleFromLiteralSources(secret *api.Secret, literalSources []string) error { +func handleFromLiteralSources(secret *v1.Secret, literalSources []string) error { for _, literalSource := range literalSources { keyName, value, err := util.ParseLiteralSource(literalSource) if err != nil { @@ -186,7 +186,7 @@ func handleFromLiteralSources(secret *api.Secret, literalSources []string) error } // handleFromFileSources adds the specified file source information into the provided secret -func handleFromFileSources(secret *api.Secret, fileSources []string) error { +func handleFromFileSources(secret *v1.Secret, fileSources []string) error { for _, fileSource := range fileSources { keyName, filePath, err := util.ParseFileSource(fileSource) if err != nil { @@ -230,7 +230,7 @@ func handleFromFileSources(secret *api.Secret, fileSources []string) error { // handleFromEnvFileSource adds the specified env file source information // into the provided secret -func handleFromEnvFileSource(secret *api.Secret, envFileSource string) error { +func handleFromEnvFileSource(secret *v1.Secret, envFileSource string) error { info, err := os.Stat(envFileSource) if err != nil { switch err := err.(type) { @@ -249,7 +249,7 @@ func handleFromEnvFileSource(secret *api.Secret, envFileSource string) error { }) } -func addKeyFromFileToSecret(secret *api.Secret, keyName, filePath string) error { +func addKeyFromFileToSecret(secret *v1.Secret, keyName, filePath string) error { data, err := ioutil.ReadFile(filePath) if err != nil { return err @@ -257,7 +257,7 @@ func addKeyFromFileToSecret(secret *api.Secret, keyName, filePath string) error return addKeyFromLiteralToSecret(secret, keyName, data) } -func addKeyFromLiteralToSecret(secret *api.Secret, keyName string, data []byte) error { +func addKeyFromLiteralToSecret(secret *v1.Secret, keyName string, data []byte) error { if errs := validation.IsConfigMapKey(keyName); len(errs) != 0 { return fmt.Errorf("%q is not a valid key name for a Secret: %s", keyName, strings.Join(errs, ";")) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_docker_registry.go b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_docker_registry.go index d39ebb5b3..fc1e15b6b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_docker_registry.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_docker_registry.go @@ -20,8 +20,8 @@ import ( "encoding/json" "fmt" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/credentialprovider" "k8s.io/kubernetes/pkg/kubectl/util/hash" ) @@ -89,11 +89,11 @@ func (s SecretForDockerRegistryGeneratorV1) StructuredGenerate() (runtime.Object if err != nil { return nil, err } - secret := &api.Secret{} + secret := &v1.Secret{} secret.Name = s.Name - secret.Type = api.SecretTypeDockercfg + secret.Type = v1.SecretTypeDockercfg secret.Data = map[string][]byte{} - secret.Data[api.DockerConfigKey] = dockercfgContent + secret.Data[v1.DockerConfigKey] = dockercfgContent if s.AppendHash { h, err := hash.SecretHash(secret) if err != nil { @@ -141,7 +141,9 @@ func handleDockercfgContent(username, password, email, server string) ([]byte, e Email: email, } - dockerCfg := map[string]credentialprovider.DockerConfigEntry{server: dockercfgAuth} + dockerCfg := credentialprovider.DockerConfigJson{ + Auths: map[string]credentialprovider.DockerConfigEntry{server: dockercfgAuth}, + } return json.Marshal(dockerCfg) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_docker_registry_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_docker_registry_test.go index e1621cbef..66d1ec12f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_docker_registry_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_docker_registry_test.go @@ -20,8 +20,8 @@ import ( "reflect" "testing" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" ) func TestSecretForDockerRegistryGenerate(t *testing.T) { @@ -37,7 +37,7 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) { tests := map[string]struct { params map[string]interface{} - expected *api.Secret + expected *v1.Secret expectErr bool }{ "test-valid-use": { @@ -48,14 +48,14 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) { "docker-password": password, "docker-email": email, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, Data: map[string][]byte{ - api.DockerConfigKey: secretData, + v1.DockerConfigKey: secretData, }, - Type: api.SecretTypeDockercfg, + Type: v1.SecretTypeDockercfg, }, expectErr: false, }, @@ -68,14 +68,14 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) { "docker-email": email, "append-hash": true, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ - Name: "foo-gb4kftc655", + Name: "foo-94759gc65b", }, Data: map[string][]byte{ - api.DockerConfigKey: secretData, + v1.DockerConfigKey: secretData, }, - Type: api.SecretTypeDockercfg, + Type: v1.SecretTypeDockercfg, }, expectErr: false, }, @@ -86,14 +86,14 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) { "docker-username": username, "docker-password": password, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, Data: map[string][]byte{ - api.DockerConfigKey: secretDataNoEmail, + v1.DockerConfigKey: secretDataNoEmail, }, - Type: api.SecretTypeDockercfg, + Type: v1.SecretTypeDockercfg, }, expectErr: false, }, @@ -117,8 +117,8 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) { if test.expectErr && err != nil { continue } - if !reflect.DeepEqual(obj.(*api.Secret), test.expected) { - t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*api.Secret)) + if !reflect.DeepEqual(obj.(*v1.Secret), test.expected) { + t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*v1.Secret)) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_tls.go b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_tls.go index aeb6d8863..1c3fffd04 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_tls.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_tls.go @@ -21,8 +21,8 @@ import ( "fmt" "io/ioutil" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/kubectl/util/hash" ) @@ -87,12 +87,12 @@ func (s SecretForTLSGeneratorV1) StructuredGenerate() (runtime.Object, error) { if err != nil { return nil, err } - secret := &api.Secret{} + secret := &v1.Secret{} secret.Name = s.Name - secret.Type = api.SecretTypeTLS + secret.Type = v1.SecretTypeTLS secret.Data = map[string][]byte{} - secret.Data[api.TLSCertKey] = []byte(tlsCrt) - secret.Data[api.TLSPrivateKeyKey] = []byte(tlsKey) + secret.Data[v1.TLSCertKey] = []byte(tlsCrt) + secret.Data[v1.TLSPrivateKeyKey] = []byte(tlsKey) if s.AppendHash { h, err := hash.SecretHash(secret) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_tls_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_tls_test.go index 252f84913..9f296a888 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_tls_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_for_tls_test.go @@ -23,9 +23,9 @@ import ( "reflect" "testing" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" ) var rsaCertPEM = `-----BEGIN CERTIFICATE----- @@ -124,7 +124,7 @@ func TestSecretForTLSGenerate(t *testing.T) { tests := map[string]struct { params map[string]interface{} - expected *api.Secret + expected *v1.Secret expectErr bool }{ "test-valid-tls-secret": { @@ -133,15 +133,15 @@ func TestSecretForTLSGenerate(t *testing.T) { "key": validKeyPath, "cert": validCertPath, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, Data: map[string][]byte{ - api.TLSCertKey: []byte(rsaCertPEM), - api.TLSPrivateKeyKey: []byte(rsaKeyPEM), + v1.TLSCertKey: []byte(rsaCertPEM), + v1.TLSPrivateKeyKey: []byte(rsaKeyPEM), }, - Type: api.SecretTypeTLS, + Type: v1.SecretTypeTLS, }, expectErr: false, }, @@ -152,15 +152,15 @@ func TestSecretForTLSGenerate(t *testing.T) { "cert": validCertPath, "append-hash": true, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo-272h6tt825", }, Data: map[string][]byte{ - api.TLSCertKey: []byte(rsaCertPEM), - api.TLSPrivateKeyKey: []byte(rsaKeyPEM), + v1.TLSCertKey: []byte(rsaCertPEM), + v1.TLSPrivateKeyKey: []byte(rsaKeyPEM), }, - Type: api.SecretTypeTLS, + Type: v1.SecretTypeTLS, }, expectErr: false, }, @@ -170,15 +170,15 @@ func TestSecretForTLSGenerate(t *testing.T) { "key": invalidKeyPath, "cert": invalidCertPath, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, Data: map[string][]byte{ - api.TLSCertKey: []byte("test"), - api.TLSPrivateKeyKey: []byte("test"), + v1.TLSCertKey: []byte("test"), + v1.TLSPrivateKeyKey: []byte("test"), }, - Type: api.SecretTypeTLS, + Type: v1.SecretTypeTLS, }, expectErr: true, }, @@ -188,15 +188,15 @@ func TestSecretForTLSGenerate(t *testing.T) { "key": mismatchKeyPath, "cert": mismatchCertPath, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, Data: map[string][]byte{ - api.TLSCertKey: []byte(rsaCertPEM), - api.TLSPrivateKeyKey: []byte(mismatchRSAKeyPEM), + v1.TLSCertKey: []byte(rsaCertPEM), + v1.TLSPrivateKeyKey: []byte(mismatchRSAKeyPEM), }, - Type: api.SecretTypeTLS, + Type: v1.SecretTypeTLS, }, expectErr: true, }, @@ -218,8 +218,8 @@ func TestSecretForTLSGenerate(t *testing.T) { if test.expectErr && err != nil { continue } - if !reflect.DeepEqual(obj.(*api.Secret), test.expected) { - t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*api.Secret)) + if !reflect.DeepEqual(obj.(*v1.Secret), test.expected) { + t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*v1.Secret)) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_test.go index a9777cd1b..15f3db0b4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/secret_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/secret_test.go @@ -21,22 +21,22 @@ import ( "reflect" "testing" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" ) func TestSecretGenerate(t *testing.T) { tests := []struct { setup func(t *testing.T, params map[string]interface{}) func() params map[string]interface{} - expected *api.Secret + expected *v1.Secret expectErr bool }{ { params: map[string]interface{}{ "name": "foo", }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -49,7 +49,7 @@ func TestSecretGenerate(t *testing.T) { "name": "foo", "append-hash": true, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo-949tdgdkgg", }, @@ -62,7 +62,7 @@ func TestSecretGenerate(t *testing.T) { "name": "foo", "type": "my-type", }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -77,7 +77,7 @@ func TestSecretGenerate(t *testing.T) { "type": "my-type", "append-hash": true, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo-dg474f9t76", }, @@ -91,7 +91,7 @@ func TestSecretGenerate(t *testing.T) { "name": "foo", "from-literal": []string{"key1=value1", "key2=value2"}, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -108,7 +108,7 @@ func TestSecretGenerate(t *testing.T) { "from-literal": []string{"key1=value1", "key2=value2"}, "append-hash": true, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo-tf72c228m4", }, @@ -145,7 +145,7 @@ func TestSecretGenerate(t *testing.T) { "name": "foo", "from-literal": []string{"key1==value1"}, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -161,7 +161,7 @@ func TestSecretGenerate(t *testing.T) { "from-literal": []string{"key1==value1"}, "append-hash": true, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "foo-fdcc8tkhh5", }, @@ -177,7 +177,7 @@ func TestSecretGenerate(t *testing.T) { "name": "valid_env", "from-env-file": "file.env", }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "valid_env", }, @@ -195,7 +195,7 @@ func TestSecretGenerate(t *testing.T) { "from-env-file": "file.env", "append-hash": true, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "valid_env-bkb2m2965h", }, @@ -216,7 +216,7 @@ func TestSecretGenerate(t *testing.T) { "name": "getenv", "from-env-file": "file.env", }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "getenv", }, @@ -238,7 +238,7 @@ func TestSecretGenerate(t *testing.T) { "from-env-file": "file.env", "append-hash": true, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "getenv-m7kg2khdb4", }, @@ -271,7 +271,7 @@ func TestSecretGenerate(t *testing.T) { "name": "with_spaces", "from-env-file": "file.env", }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "with_spaces", }, @@ -288,7 +288,7 @@ func TestSecretGenerate(t *testing.T) { "from-env-file": "file.env", "append-hash": true, }, - expected: &api.Secret{ + expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "with_spaces-4488d5b57d", }, @@ -314,8 +314,8 @@ func TestSecretGenerate(t *testing.T) { if test.expectErr && err != nil { continue } - if !reflect.DeepEqual(obj.(*api.Secret), test.expected) { - t.Errorf("\ncase %d, expected:\n%#v\nsaw:\n%#v", i, test.expected, obj.(*api.Secret)) + if !reflect.DeepEqual(obj.(*v1.Secret), test.expected) { + t.Errorf("\ncase %d, expected:\n%#v\nsaw:\n%#v", i, test.expected, obj.(*v1.Secret)) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/service.go b/vendor/k8s.io/kubernetes/pkg/kubectl/service.go index 072bddbeb..7f0e0d869 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/service.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/service.go @@ -21,10 +21,10 @@ import ( "strconv" "strings" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" ) // The only difference between ServiceGeneratorV1 and V2 is that the service port is named "default" in V1, while it is left unnamed in V2. @@ -113,7 +113,7 @@ func generate(genericParams map[string]interface{}) (runtime.Object, error) { isHeadlessService := params["cluster-ip"] == "None" - ports := []api.ServicePort{} + ports := []v1.ServicePort{} servicePortName, found := params["port-name"] if !found { // Leave the port unnamed. @@ -135,7 +135,7 @@ func generate(genericParams map[string]interface{}) (runtime.Object, error) { if portString, found = params["ports"]; !found { portString, found = params["port"] if !found && !isHeadlessService { - return nil, fmt.Errorf("'port' is a required parameter.") + return nil, fmt.Errorf("'ports' or 'port' is a required parameter.") } } @@ -168,20 +168,20 @@ func generate(genericParams map[string]interface{}) (runtime.Object, error) { protocol = exposeProtocol } } - ports = append(ports, api.ServicePort{ + ports = append(ports, v1.ServicePort{ Name: name, Port: int32(port), - Protocol: api.Protocol(protocol), + Protocol: v1.Protocol(protocol), }) } } - service := api.Service{ + service := v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: name, Labels: labels, }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: selector, Ports: ports, }, @@ -213,24 +213,24 @@ func generate(genericParams map[string]interface{}) (runtime.Object, error) { service.Spec.ExternalIPs = []string{params["external-ip"]} } if len(params["type"]) != 0 { - service.Spec.Type = api.ServiceType(params["type"]) + service.Spec.Type = v1.ServiceType(params["type"]) } - if service.Spec.Type == api.ServiceTypeLoadBalancer { + if service.Spec.Type == v1.ServiceTypeLoadBalancer { service.Spec.LoadBalancerIP = params["load-balancer-ip"] } if len(params["session-affinity"]) != 0 { - switch api.ServiceAffinity(params["session-affinity"]) { - case api.ServiceAffinityNone: - service.Spec.SessionAffinity = api.ServiceAffinityNone - case api.ServiceAffinityClientIP: - service.Spec.SessionAffinity = api.ServiceAffinityClientIP + switch v1.ServiceAffinity(params["session-affinity"]) { + case v1.ServiceAffinityNone: + service.Spec.SessionAffinity = v1.ServiceAffinityNone + case v1.ServiceAffinityClientIP: + service.Spec.SessionAffinity = v1.ServiceAffinityClientIP default: return nil, fmt.Errorf("unknown session affinity: %s", params["session-affinity"]) } } if len(params["cluster-ip"]) != 0 { if params["cluster-ip"] == "None" { - service.Spec.ClusterIP = api.ClusterIPNone + service.Spec.ClusterIP = v1.ClusterIPNone } else { service.Spec.ClusterIP = params["cluster-ip"] } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/service_basic.go b/vendor/k8s.io/kubernetes/pkg/kubectl/service_basic.go index d53cc60fc..1f31bd09a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/service_basic.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/service_basic.go @@ -21,17 +21,17 @@ import ( "strconv" "strings" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/kubernetes/pkg/api" ) type ServiceCommonGeneratorV1 struct { Name string TCP []string - Type api.ServiceType + Type v1.ServiceType ClusterIP string NodePort int ExternalName string @@ -89,14 +89,25 @@ func parsePorts(portString string) (int32, intstr.IntOrString, error) { if err != nil { return 0, intstr.FromInt(0), err } + + if errs := validation.IsValidPortNum(port); len(errs) != 0 { + return 0, intstr.FromInt(0), fmt.Errorf(strings.Join(errs, ",")) + } + if len(portStringSlice) == 1 { return int32(port), intstr.FromInt(int(port)), nil } var targetPort intstr.IntOrString if portNum, err := strconv.Atoi(portStringSlice[1]); err != nil { + if errs := validation.IsValidPortName(portStringSlice[1]); len(errs) != 0 { + return 0, intstr.FromInt(0), fmt.Errorf(strings.Join(errs, ",")) + } targetPort = intstr.FromString(portStringSlice[1]) } else { + if errs := validation.IsValidPortNum(portNum); len(errs) != 0 { + return 0, intstr.FromInt(0), fmt.Errorf(strings.Join(errs, ",")) + } targetPort = intstr.FromInt(portNum) } return int32(port), targetPort, nil @@ -131,7 +142,7 @@ func (s ServiceLoadBalancerGeneratorV1) Generate(params map[string]interface{}) if err != nil { return nil, err } - delegate := &ServiceCommonGeneratorV1{Type: api.ServiceTypeLoadBalancer, ClusterIP: ""} + delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeLoadBalancer, ClusterIP: ""} err = delegate.GenerateCommon(params) if err != nil { return nil, err @@ -144,7 +155,7 @@ func (s ServiceNodePortGeneratorV1) Generate(params map[string]interface{}) (run if err != nil { return nil, err } - delegate := &ServiceCommonGeneratorV1{Type: api.ServiceTypeNodePort, ClusterIP: ""} + delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeNodePort, ClusterIP: ""} err = delegate.GenerateCommon(params) if err != nil { return nil, err @@ -157,7 +168,7 @@ func (s ServiceClusterIPGeneratorV1) Generate(params map[string]interface{}) (ru if err != nil { return nil, err } - delegate := &ServiceCommonGeneratorV1{Type: api.ServiceTypeClusterIP, ClusterIP: ""} + delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeClusterIP, ClusterIP: ""} err = delegate.GenerateCommon(params) if err != nil { return nil, err @@ -170,7 +181,7 @@ func (s ServiceExternalNameGeneratorV1) Generate(params map[string]interface{}) if err != nil { return nil, err } - delegate := &ServiceCommonGeneratorV1{Type: api.ServiceTypeExternalName, ClusterIP: ""} + delegate := &ServiceCommonGeneratorV1{Type: v1.ServiceTypeExternalName, ClusterIP: ""} err = delegate.GenerateCommon(params) if err != nil { return nil, err @@ -187,13 +198,13 @@ func (s ServiceCommonGeneratorV1) validate() error { if len(s.Type) == 0 { return fmt.Errorf("type must be specified") } - if s.ClusterIP == api.ClusterIPNone && s.Type != api.ServiceTypeClusterIP { + if s.ClusterIP == v1.ClusterIPNone && s.Type != v1.ServiceTypeClusterIP { return fmt.Errorf("ClusterIP=None can only be used with ClusterIP service type") } - if s.ClusterIP != api.ClusterIPNone && len(s.TCP) == 0 && s.Type != api.ServiceTypeExternalName { + if s.ClusterIP != v1.ClusterIPNone && len(s.TCP) == 0 && s.Type != v1.ServiceTypeExternalName { return fmt.Errorf("at least one tcp port specifier must be provided") } - if s.Type == api.ServiceTypeExternalName { + if s.Type == v1.ServiceTypeExternalName { if errs := validation.IsDNS1123Subdomain(s.ExternalName); len(errs) != 0 { return fmt.Errorf("invalid service external name %s", s.ExternalName) } @@ -206,7 +217,7 @@ func (s ServiceCommonGeneratorV1) StructuredGenerate() (runtime.Object, error) { if err != nil { return nil, err } - ports := []api.ServicePort{} + ports := []v1.ServicePort{} for _, tcpString := range s.TCP { port, targetPort, err := parsePorts(tcpString) if err != nil { @@ -214,11 +225,11 @@ func (s ServiceCommonGeneratorV1) StructuredGenerate() (runtime.Object, error) { } portName := strings.Replace(tcpString, ":", "-", -1) - ports = append(ports, api.ServicePort{ + ports = append(ports, v1.ServicePort{ Name: portName, Port: port, TargetPort: targetPort, - Protocol: api.Protocol("TCP"), + Protocol: v1.Protocol("TCP"), NodePort: int32(s.NodePort), }) } @@ -229,13 +240,13 @@ func (s ServiceCommonGeneratorV1) StructuredGenerate() (runtime.Object, error) { selector := map[string]string{} selector["app"] = s.Name - service := api.Service{ + service := v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: s.Name, Labels: labels, }, - Spec: api.ServiceSpec{ - Type: api.ServiceType(s.Type), + Spec: v1.ServiceSpec{ + Type: v1.ServiceType(s.Type), Selector: selector, Ports: ports, ExternalName: s.ExternalName, diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/service_basic_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/service_basic_test.go index a7fea4860..c7f9ff717 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/service_basic_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/service_basic_test.go @@ -20,32 +20,32 @@ import ( "reflect" "testing" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" ) func TestServiceBasicGenerate(t *testing.T) { tests := []struct { name string - serviceType api.ServiceType + serviceType v1.ServiceType tcp []string clusterip string - expected *api.Service + expected *v1.Service expectErr bool }{ { name: "clusterip-ok", tcp: []string{"456", "321:908"}, clusterip: "", - serviceType: api.ServiceTypeClusterIP, - expected: &api.Service{ + serviceType: v1.ServiceTypeClusterIP, + expected: &v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "clusterip-ok", Labels: map[string]string{"app": "clusterip-ok"}, }, - Spec: api.ServiceSpec{Type: "ClusterIP", - Ports: []api.ServicePort{{Name: "456", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 456, StrVal: ""}, NodePort: 0}, + Spec: v1.ServiceSpec{Type: "ClusterIP", + Ports: []v1.ServicePort{{Name: "456", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 456, StrVal: ""}, NodePort: 0}, {Name: "321-908", Protocol: "TCP", Port: 321, TargetPort: intstr.IntOrString{Type: 0, IntVal: 908, StrVal: ""}, NodePort: 0}}, Selector: map[string]string{"app": "clusterip-ok"}, ClusterIP: "", ExternalIPs: []string(nil), LoadBalancerIP: ""}, @@ -54,28 +54,28 @@ func TestServiceBasicGenerate(t *testing.T) { }, { name: "clusterip-missing", - serviceType: api.ServiceTypeClusterIP, + serviceType: v1.ServiceTypeClusterIP, expectErr: true, }, { name: "clusterip-none-wrong-type", tcp: []string{}, clusterip: "None", - serviceType: api.ServiceTypeNodePort, + serviceType: v1.ServiceTypeNodePort, expectErr: true, }, { name: "clusterip-none-ok", tcp: []string{}, clusterip: "None", - serviceType: api.ServiceTypeClusterIP, - expected: &api.Service{ + serviceType: v1.ServiceTypeClusterIP, + expected: &v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "clusterip-none-ok", Labels: map[string]string{"app": "clusterip-none-ok"}, }, - Spec: api.ServiceSpec{Type: "ClusterIP", - Ports: []api.ServicePort{}, + Spec: v1.ServiceSpec{Type: "ClusterIP", + Ports: []v1.ServicePort{}, Selector: map[string]string{"app": "clusterip-none-ok"}, ClusterIP: "None", ExternalIPs: []string(nil), LoadBalancerIP: ""}, }, @@ -85,14 +85,14 @@ func TestServiceBasicGenerate(t *testing.T) { name: "clusterip-none-and-port-mapping", tcp: []string{"456:9898"}, clusterip: "None", - serviceType: api.ServiceTypeClusterIP, - expected: &api.Service{ + serviceType: v1.ServiceTypeClusterIP, + expected: &v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "clusterip-none-and-port-mapping", Labels: map[string]string{"app": "clusterip-none-and-port-mapping"}, }, - Spec: api.ServiceSpec{Type: "ClusterIP", - Ports: []api.ServicePort{{Name: "456-9898", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 9898, StrVal: ""}, NodePort: 0}}, + Spec: v1.ServiceSpec{Type: "ClusterIP", + Ports: []v1.ServicePort{{Name: "456-9898", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 9898, StrVal: ""}, NodePort: 0}}, Selector: map[string]string{"app": "clusterip-none-and-port-mapping"}, ClusterIP: "None", ExternalIPs: []string(nil), LoadBalancerIP: ""}, }, @@ -102,19 +102,33 @@ func TestServiceBasicGenerate(t *testing.T) { name: "loadbalancer-ok", tcp: []string{"456:9898"}, clusterip: "", - serviceType: api.ServiceTypeLoadBalancer, - expected: &api.Service{ + serviceType: v1.ServiceTypeLoadBalancer, + expected: &v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "loadbalancer-ok", Labels: map[string]string{"app": "loadbalancer-ok"}, }, - Spec: api.ServiceSpec{Type: "LoadBalancer", - Ports: []api.ServicePort{{Name: "456-9898", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 9898, StrVal: ""}, NodePort: 0}}, + Spec: v1.ServiceSpec{Type: "LoadBalancer", + Ports: []v1.ServicePort{{Name: "456-9898", Protocol: "TCP", Port: 456, TargetPort: intstr.IntOrString{Type: 0, IntVal: 9898, StrVal: ""}, NodePort: 0}}, Selector: map[string]string{"app": "loadbalancer-ok"}, ClusterIP: "", ExternalIPs: []string(nil), LoadBalancerIP: ""}, }, expectErr: false, }, + { + name: "invalid-port", + tcp: []string{"65536"}, + clusterip: "None", + serviceType: v1.ServiceTypeClusterIP, + expectErr: true, + }, + { + name: "invalid-port-mapping", + tcp: []string{"8080:-abc"}, + clusterip: "None", + serviceType: v1.ServiceTypeClusterIP, + expectErr: true, + }, { expectErr: true, }, @@ -133,8 +147,8 @@ func TestServiceBasicGenerate(t *testing.T) { if test.expectErr && err != nil { continue } - if !reflect.DeepEqual(obj.(*api.Service), test.expected) { - t.Errorf("test: %v\nexpected:\n%#v\nsaw:\n%#v", test.name, test.expected, obj.(*api.Service)) + if !reflect.DeepEqual(obj.(*v1.Service), test.expected) { + t.Errorf("test: %v\nexpected:\n%#v\nsaw:\n%#v", test.name, test.expected, obj.(*v1.Service)) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/service_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/service_test.go index bd80422ea..0120c3557 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/service_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/service_test.go @@ -20,16 +20,16 @@ import ( "reflect" "testing" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" ) func TestGenerateService(t *testing.T) { tests := []struct { generator Generator params map[string]interface{} - expected api.Service + expected v1.Service }{ { generator: ServiceGeneratorV2{}, @@ -40,16 +40,16 @@ func TestGenerateService(t *testing.T) { "protocol": "TCP", "container-port": "1234", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Port: 80, Protocol: "TCP", @@ -69,16 +69,16 @@ func TestGenerateService(t *testing.T) { "protocol": "UDP", "container-port": "foobar", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Port: 80, Protocol: "UDP", @@ -98,7 +98,7 @@ func TestGenerateService(t *testing.T) { "protocol": "TCP", "container-port": "1234", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", Labels: map[string]string{ @@ -106,12 +106,12 @@ func TestGenerateService(t *testing.T) { "key2": "value2", }, }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Port: 80, Protocol: "TCP", @@ -131,16 +131,16 @@ func TestGenerateService(t *testing.T) { "container-port": "foobar", "external-ip": "1.2.3.4", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Port: 80, Protocol: "UDP", @@ -162,23 +162,23 @@ func TestGenerateService(t *testing.T) { "external-ip": "1.2.3.4", "type": "LoadBalancer", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Port: 80, Protocol: "UDP", TargetPort: intstr.FromString("foobar"), }, }, - Type: api.ServiceTypeLoadBalancer, + Type: v1.ServiceTypeLoadBalancer, ExternalIPs: []string{"1.2.3.4"}, }, }, @@ -191,25 +191,25 @@ func TestGenerateService(t *testing.T) { "port": "80", "protocol": "UDP", "container-port": "foobar", - "type": string(api.ServiceTypeNodePort), + "type": string(v1.ServiceTypeNodePort), }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Port: 80, Protocol: "UDP", TargetPort: intstr.FromString("foobar"), }, }, - Type: api.ServiceTypeNodePort, + Type: v1.ServiceTypeNodePort, }, }, }, @@ -222,25 +222,25 @@ func TestGenerateService(t *testing.T) { "protocol": "UDP", "container-port": "foobar", "create-external-load-balancer": "true", // ignored when type is present - "type": string(api.ServiceTypeNodePort), + "type": string(v1.ServiceTypeNodePort), }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Port: 80, Protocol: "UDP", TargetPort: intstr.FromString("foobar"), }, }, - Type: api.ServiceTypeNodePort, + Type: v1.ServiceTypeNodePort, }, }, }, @@ -253,16 +253,16 @@ func TestGenerateService(t *testing.T) { "protocol": "TCP", "container-port": "1234", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Name: "default", Port: 80, @@ -283,16 +283,16 @@ func TestGenerateService(t *testing.T) { "container-port": "1234", "session-affinity": "ClientIP", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Name: "default", Port: 80, @@ -300,7 +300,7 @@ func TestGenerateService(t *testing.T) { TargetPort: intstr.FromInt(1234), }, }, - SessionAffinity: api.ServiceAffinityClientIP, + SessionAffinity: v1.ServiceAffinityClientIP, }, }, }, @@ -314,16 +314,16 @@ func TestGenerateService(t *testing.T) { "container-port": "1234", "cluster-ip": "10.10.10.10", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Port: 80, Protocol: "TCP", @@ -344,23 +344,23 @@ func TestGenerateService(t *testing.T) { "container-port": "1234", "cluster-ip": "None", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Port: 80, Protocol: "TCP", TargetPort: intstr.FromInt(1234), }, }, - ClusterIP: api.ClusterIPNone, + ClusterIP: v1.ClusterIPNone, }, }, }, @@ -373,25 +373,25 @@ func TestGenerateService(t *testing.T) { "protocol": "TCP", "container-port": "foobar", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Name: "port-1", Port: 80, - Protocol: api.ProtocolTCP, + Protocol: v1.ProtocolTCP, TargetPort: intstr.FromString("foobar"), }, { Name: "port-2", Port: 443, - Protocol: api.ProtocolTCP, + Protocol: v1.ProtocolTCP, TargetPort: intstr.FromString("foobar"), }, }, @@ -407,25 +407,25 @@ func TestGenerateService(t *testing.T) { "protocol": "UDP", "target-port": "1234", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Name: "port-1", Port: 80, - Protocol: api.ProtocolUDP, + Protocol: v1.ProtocolUDP, TargetPort: intstr.FromInt(1234), }, { Name: "port-2", Port: 443, - Protocol: api.ProtocolUDP, + Protocol: v1.ProtocolUDP, TargetPort: intstr.FromInt(1234), }, }, @@ -440,25 +440,25 @@ func TestGenerateService(t *testing.T) { "ports": "80,443", "protocol": "TCP", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Name: "port-1", Port: 80, - Protocol: api.ProtocolTCP, + Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(80), }, { Name: "port-2", Port: 443, - Protocol: api.ProtocolTCP, + Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(443), }, }, @@ -473,25 +473,25 @@ func TestGenerateService(t *testing.T) { "ports": "80,8080", "protocols": "8080/UDP", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Name: "port-1", Port: 80, - Protocol: api.ProtocolTCP, + Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(80), }, { Name: "port-2", Port: 8080, - Protocol: api.ProtocolUDP, + Protocol: v1.ProtocolUDP, TargetPort: intstr.FromInt(8080), }, }, @@ -506,31 +506,31 @@ func TestGenerateService(t *testing.T) { "ports": "80,8080,8081", "protocols": "8080/UDP,8081/TCP", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", }, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Name: "port-1", Port: 80, - Protocol: api.ProtocolTCP, + Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(80), }, { Name: "port-2", Port: 8080, - Protocol: api.ProtocolUDP, + Protocol: v1.ProtocolUDP, TargetPort: intstr.FromInt(8080), }, { Name: "port-3", Port: 8081, - Protocol: api.ProtocolTCP, + Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(8081), }, }, @@ -546,17 +546,17 @@ func TestGenerateService(t *testing.T) { "container-port": "1234", "cluster-ip": "None", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", "baz": "blah", }, - Ports: []api.ServicePort{}, - ClusterIP: api.ClusterIPNone, + Ports: []v1.ServicePort{}, + ClusterIP: v1.ClusterIPNone, }, }, }, @@ -567,16 +567,16 @@ func TestGenerateService(t *testing.T) { "name": "test", "cluster-ip": "None", }, - expected: api.Service{ + expected: v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "test", }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: map[string]string{ "foo": "bar", }, - Ports: []api.ServicePort{}, - ClusterIP: api.ClusterIPNone, + Ports: []v1.ServicePort{}, + ClusterIP: v1.ClusterIPNone, }, }, }, diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/serviceaccount.go b/vendor/k8s.io/kubernetes/pkg/kubectl/serviceaccount.go index 08b84fb6f..fa701e140 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/serviceaccount.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/serviceaccount.go @@ -19,8 +19,8 @@ package kubectl import ( "fmt" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" ) // ServiceAccountGeneratorV1 supports stable generation of a service account @@ -37,7 +37,7 @@ func (g *ServiceAccountGeneratorV1) StructuredGenerate() (runtime.Object, error) if err := g.validate(); err != nil { return nil, err } - serviceAccount := &api.ServiceAccount{} + serviceAccount := &v1.ServiceAccount{} serviceAccount.Name = g.Name return serviceAccount, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/serviceaccount_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/serviceaccount_test.go index e82239142..ec232f4a6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/serviceaccount_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/serviceaccount_test.go @@ -20,19 +20,19 @@ import ( "reflect" "testing" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" ) func TestServiceAccountGenerate(t *testing.T) { tests := []struct { name string - expected *api.ServiceAccount + expected *v1.ServiceAccount expectErr bool }{ { name: "foo", - expected: &api.ServiceAccount{ + expected: &v1.ServiceAccount{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", }, @@ -54,8 +54,8 @@ func TestServiceAccountGenerate(t *testing.T) { if test.expectErr && err != nil { continue } - if !reflect.DeepEqual(obj.(*api.ServiceAccount), test.expected) { - t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*api.ServiceAccount)) + if !reflect.DeepEqual(obj.(*v1.ServiceAccount), test.expected) { + t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*v1.ServiceAccount)) } } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/sorting_printer_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/sorting_printer_test.go index 28b96e660..7f6b0ad5c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/sorting_printer_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/sorting_printer_test.go @@ -25,11 +25,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" - internal "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) func encodeOrDie(obj runtime.Object) []byte { - data, err := runtime.Encode(internal.Codecs.LegacyCodec(api.SchemeGroupVersion), obj) + data, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(api.SchemeGroupVersion), obj) if err != nil { panic(err.Error()) } @@ -389,7 +389,7 @@ func TestSortingPrinter(t *testing.T) { }, } for _, test := range tests { - sort := &SortingPrinter{SortField: test.field, Decoder: internal.Codecs.UniversalDecoder()} + sort := &SortingPrinter{SortField: test.field, Decoder: legacyscheme.Codecs.UniversalDecoder()} err := sort.sortObj(test.obj) if err != nil { if len(test.expectedErr) > 0 { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/testing/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/testing/BUILD index 99e7bf90a..f6fff93f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/testing/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/testing/BUILD @@ -11,7 +11,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/testing/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/kubectl/testing/zz_generated.deepcopy.go index 79c1b4003..bfa6c1d78 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/testing/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/testing/zz_generated.deepcopy.go @@ -21,23 +21,9 @@ limitations under the License. package testing import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestStruct).DeepCopyInto(out.(*TestStruct)) - return nil - }, InType: reflect.TypeOf(&TestStruct{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TestStruct) DeepCopyInto(out *TestStruct) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/BUILD b/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/BUILD index b302b0797..7e8885b65 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/BUILD @@ -11,14 +11,14 @@ go_test( srcs = ["hash_test.go"], importpath = "k8s.io/kubernetes/pkg/kubectl/util/hash", library = ":go_default_library", - deps = ["//pkg/api:go_default_library"], + deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) go_library( name = "go_default_library", srcs = ["hash.go"], importpath = "k8s.io/kubernetes/pkg/kubectl/util/hash", - deps = ["//pkg/api:go_default_library"], + deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) filegroup( diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/hash.go b/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/hash.go index 137e18045..d7afaab7d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/hash.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/hash.go @@ -21,12 +21,12 @@ import ( "encoding/json" "fmt" - "k8s.io/kubernetes/pkg/api" + "k8s.io/api/core/v1" ) // ConfigMapHash returns a hash of the ConfigMap. // The Data, Kind, and Name are taken into account. -func ConfigMapHash(cm *api.ConfigMap) (string, error) { +func ConfigMapHash(cm *v1.ConfigMap) (string, error) { encoded, err := encodeConfigMap(cm) if err != nil { return "", err @@ -40,7 +40,7 @@ func ConfigMapHash(cm *api.ConfigMap) (string, error) { // SecretHash returns a hash of the Secret. // The Data, Kind, Name, and Type are taken into account. -func SecretHash(sec *api.Secret) (string, error) { +func SecretHash(sec *v1.Secret) (string, error) { encoded, err := encodeSecret(sec) if err != nil { return "", err @@ -54,7 +54,7 @@ func SecretHash(sec *api.Secret) (string, error) { // encodeConfigMap encodes a ConfigMap. // Data, Kind, and Name are taken into account. -func encodeConfigMap(cm *api.ConfigMap) (string, error) { +func encodeConfigMap(cm *v1.ConfigMap) (string, error) { // json.Marshal sorts the keys in a stable order in the encoding data, err := json.Marshal(map[string]interface{}{"kind": "ConfigMap", "name": cm.Name, "data": cm.Data}) if err != nil { @@ -65,7 +65,7 @@ func encodeConfigMap(cm *api.ConfigMap) (string, error) { // encodeSecret encodes a Secret. // Data, Kind, Name, and Type are taken into account. -func encodeSecret(sec *api.Secret) (string, error) { +func encodeSecret(sec *v1.Secret) (string, error) { // json.Marshal sorts the keys in a stable order in the encoding data, err := json.Marshal(map[string]interface{}{"kind": "Secret", "type": sec.Type, "name": sec.Name, "data": sec.Data}) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/hash_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/hash_test.go index ee344a354..15a0bd20e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/hash_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/util/hash/hash_test.go @@ -21,22 +21,22 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/api/core/v1" ) func TestConfigMapHash(t *testing.T) { cases := []struct { desc string - cm *api.ConfigMap + cm *v1.ConfigMap hash string err string }{ // empty map - {"empty data", &api.ConfigMap{Data: map[string]string{}}, "42745tchd9", ""}, + {"empty data", &v1.ConfigMap{Data: map[string]string{}}, "42745tchd9", ""}, // one key - {"one key", &api.ConfigMap{Data: map[string]string{"one": ""}}, "9g67k2htb6", ""}, + {"one key", &v1.ConfigMap{Data: map[string]string{"one": ""}}, "9g67k2htb6", ""}, // three keys (tests sorting order) - {"three keys", &api.ConfigMap{Data: map[string]string{"two": "2", "one": "", "three": "3"}}, "f5h7t85m9b", ""}, + {"three keys", &v1.ConfigMap{Data: map[string]string{"two": "2", "one": "", "three": "3"}}, "f5h7t85m9b", ""}, } for _, c := range cases { @@ -53,16 +53,16 @@ func TestConfigMapHash(t *testing.T) { func TestSecretHash(t *testing.T) { cases := []struct { desc string - secret *api.Secret + secret *v1.Secret hash string err string }{ // empty map - {"empty data", &api.Secret{Type: "my-type", Data: map[string][]byte{}}, "t75bgf6ctb", ""}, + {"empty data", &v1.Secret{Type: "my-type", Data: map[string][]byte{}}, "t75bgf6ctb", ""}, // one key - {"one key", &api.Secret{Type: "my-type", Data: map[string][]byte{"one": []byte("")}}, "74bd68bm66", ""}, + {"one key", &v1.Secret{Type: "my-type", Data: map[string][]byte{"one": []byte("")}}, "74bd68bm66", ""}, // three keys (tests sorting order) - {"three keys", &api.Secret{Type: "my-type", Data: map[string][]byte{"two": []byte("2"), "one": []byte(""), "three": []byte("3")}}, "dgcb6h9tmk", ""}, + {"three keys", &v1.Secret{Type: "my-type", Data: map[string][]byte{"two": []byte("2"), "one": []byte(""), "three": []byte("3")}}, "dgcb6h9tmk", ""}, } for _, c := range cases { @@ -79,16 +79,16 @@ func TestSecretHash(t *testing.T) { func TestEncodeConfigMap(t *testing.T) { cases := []struct { desc string - cm *api.ConfigMap + cm *v1.ConfigMap expect string err string }{ // empty map - {"empty data", &api.ConfigMap{Data: map[string]string{}}, `{"data":{},"kind":"ConfigMap","name":""}`, ""}, + {"empty data", &v1.ConfigMap{Data: map[string]string{}}, `{"data":{},"kind":"ConfigMap","name":""}`, ""}, // one key - {"one key", &api.ConfigMap{Data: map[string]string{"one": ""}}, `{"data":{"one":""},"kind":"ConfigMap","name":""}`, ""}, + {"one key", &v1.ConfigMap{Data: map[string]string{"one": ""}}, `{"data":{"one":""},"kind":"ConfigMap","name":""}`, ""}, // three keys (tests sorting order) - {"three keys", &api.ConfigMap{Data: map[string]string{"two": "2", "one": "", "three": "3"}}, `{"data":{"one":"","three":"3","two":"2"},"kind":"ConfigMap","name":""}`, ""}, + {"three keys", &v1.ConfigMap{Data: map[string]string{"two": "2", "one": "", "three": "3"}}, `{"data":{"one":"","three":"3","two":"2"},"kind":"ConfigMap","name":""}`, ""}, } for _, c := range cases { s, err := encodeConfigMap(c.cm) @@ -104,16 +104,16 @@ func TestEncodeConfigMap(t *testing.T) { func TestEncodeSecret(t *testing.T) { cases := []struct { desc string - secret *api.Secret + secret *v1.Secret expect string err string }{ // empty map - {"empty data", &api.Secret{Type: "my-type", Data: map[string][]byte{}}, `{"data":{},"kind":"Secret","name":"","type":"my-type"}`, ""}, + {"empty data", &v1.Secret{Type: "my-type", Data: map[string][]byte{}}, `{"data":{},"kind":"Secret","name":"","type":"my-type"}`, ""}, // one key - {"one key", &api.Secret{Type: "my-type", Data: map[string][]byte{"one": []byte("")}}, `{"data":{"one":""},"kind":"Secret","name":"","type":"my-type"}`, ""}, + {"one key", &v1.Secret{Type: "my-type", Data: map[string][]byte{"one": []byte("")}}, `{"data":{"one":""},"kind":"Secret","name":"","type":"my-type"}`, ""}, // three keys (tests sorting order) - note json.Marshal base64 encodes the values because they come in as []byte - {"three keys", &api.Secret{Type: "my-type", Data: map[string][]byte{"two": []byte("2"), "one": []byte(""), "three": []byte("3")}}, `{"data":{"one":"","three":"Mw==","two":"Mg=="},"kind":"Secret","name":"","type":"my-type"}`, ""}, + {"three keys", &v1.Secret{Type: "my-type", Data: map[string][]byte{"two": []byte("2"), "one": []byte(""), "three": []byte("3")}}, `{"data":{"one":"","three":"Mw==","two":"Mg=="},"kind":"Secret","name":"","type":"my-type"}`, ""}, } for _, c := range cases { s, err := encodeSecret(c.secret) @@ -148,8 +148,8 @@ not their metadata (e.g. the Data of a ConfigMap, but nothing in ObjectMeta). obj interface{} expect int }{ - {"ConfigMap", api.ConfigMap{}, 3}, - {"Secret", api.Secret{}, 4}, + {"ConfigMap", v1.ConfigMap{}, 3}, + {"Secret", v1.Secret{}, 5}, } for _, c := range cases { val := reflect.ValueOf(c.obj) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/BUILD index f5f5f13f1..4fa0bb507 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/BUILD @@ -18,7 +18,6 @@ go_library( "kubelet_pods.go", "kubelet_resources.go", "kubelet_volumes.go", - "networks.go", "oom_watcher.go", "pod_container_deletor.go", "pod_workers.go", @@ -30,13 +29,14 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", - "//pkg/api/v1/helper:go_default_library", - "//pkg/api/v1/helper/qos:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/api/v1/resource:go_default_library", - "//pkg/api/v1/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper/qos:go_default_library", + "//pkg/apis/core/v1/validation:go_default_library", "//pkg/capabilities:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/features:go_default_library", @@ -53,7 +53,6 @@ go_library( "//pkg/kubelet/configmap:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/dockershim:go_default_library", - "//pkg/kubelet/dockershim/libdocker:go_default_library", "//pkg/kubelet/dockershim/remote:go_default_library", "//pkg/kubelet/envvars:go_default_library", "//pkg/kubelet/events:go_default_library", @@ -65,6 +64,7 @@ go_library( "//pkg/kubelet/kuberuntime:go_default_library", "//pkg/kubelet/lifecycle:go_default_library", "//pkg/kubelet/metrics:go_default_library", + "//pkg/kubelet/mountpod:go_default_library", "//pkg/kubelet/network:go_default_library", "//pkg/kubelet/pleg:go_default_library", "//pkg/kubelet/pod:go_default_library", @@ -152,7 +152,6 @@ go_test( "kubelet_resources_test.go", "kubelet_test.go", "kubelet_volumes_test.go", - "networks_test.go", "oom_watcher_test.go", "pod_container_deletor_test.go", "pod_workers_test.go", @@ -167,8 +166,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/capabilities:go_default_library", "//pkg/cloudprovider/providers/fake:go_default_library", "//pkg/kubelet/apis:go_default_library", @@ -208,6 +207,7 @@ go_test( "//pkg/volume/host_path:go_default_library", "//pkg/volume/testing:go_default_library", "//pkg/volume/util/volumehelper:go_default_library", + "//plugin/pkg/scheduler/schedulercache:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/info/v2:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", @@ -259,7 +259,6 @@ filegroup( "//pkg/kubelet/configmap:all-srcs", "//pkg/kubelet/container:all-srcs", "//pkg/kubelet/custommetrics:all-srcs", - "//pkg/kubelet/deviceplugin:all-srcs", "//pkg/kubelet/dockershim:all-srcs", "//pkg/kubelet/envvars:all-srcs", "//pkg/kubelet/events:all-srcs", @@ -271,6 +270,7 @@ filegroup( "//pkg/kubelet/leaky:all-srcs", "//pkg/kubelet/lifecycle:all-srcs", "//pkg/kubelet/metrics:all-srcs", + "//pkg/kubelet/mountpod:all-srcs", "//pkg/kubelet/network:all-srcs", "//pkg/kubelet/pleg:all-srcs", "//pkg/kubelet/pod:all-srcs", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/BUILD index 00352f578..490bbd581 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/BUILD @@ -26,7 +26,7 @@ filegroup( srcs = [ ":package-srcs", "//pkg/kubelet/apis/cri:all-srcs", - "//pkg/kubelet/apis/deviceplugin/v1alpha1:all-srcs", + "//pkg/kubelet/apis/deviceplugin/v1alpha:all-srcs", "//pkg/kubelet/apis/kubeletconfig:all-srcs", "//pkg/kubelet/apis/stats/v1alpha1:all-srcs", ], diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/testing/fake_runtime_service.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/testing/fake_runtime_service.go index 69a0b773b..284467f07 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/testing/fake_runtime_service.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/testing/fake_runtime_service.go @@ -26,7 +26,7 @@ import ( ) var ( - version = "0.1.0" + FakeVersion = "0.1.0" FakeRuntimeName = "fakeRuntime" FakePodSandboxIP = "192.168.192.168" @@ -117,10 +117,10 @@ func (r *FakeRuntimeService) Version(apiVersion string) (*runtimeapi.VersionResp r.Called = append(r.Called, "Version") return &runtimeapi.VersionResponse{ - Version: version, + Version: FakeVersion, RuntimeName: FakeRuntimeName, - RuntimeVersion: version, - RuntimeApiVersion: version, + RuntimeVersion: FakeVersion, + RuntimeApiVersion: FakeVersion, }, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go index 3264e2a1d..f0b41f00a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go @@ -860,6 +860,8 @@ func (*RemovePodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescr type PodSandboxStatusRequest struct { // ID of the PodSandbox for which to retrieve status. PodSandboxId string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` + // Verbose indicates whether to return extra information about the pod sandbox. + Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` } func (m *PodSandboxStatusRequest) Reset() { *m = PodSandboxStatusRequest{} } @@ -873,6 +875,13 @@ func (m *PodSandboxStatusRequest) GetPodSandboxId() string { return "" } +func (m *PodSandboxStatusRequest) GetVerbose() bool { + if m != nil { + return m.Verbose + } + return false +} + // PodSandboxNetworkStatus is the status of the network for a PodSandbox. type PodSandboxNetworkStatus struct { // IP address of the PodSandbox. @@ -1010,6 +1019,11 @@ func (m *PodSandboxStatus) GetAnnotations() map[string]string { type PodSandboxStatusResponse struct { // Status of the PodSandbox. Status *PodSandboxStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` + // Info is extra information of the PodSandbox. The key could be abitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. network namespace for linux container based container runtime. + // It should only be returned non-empty when Verbose is true. + Info map[string]string `protobuf:"bytes,2,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *PodSandboxStatusResponse) Reset() { *m = PodSandboxStatusResponse{} } @@ -1023,6 +1037,13 @@ func (m *PodSandboxStatusResponse) GetStatus() *PodSandboxStatus { return nil } +func (m *PodSandboxStatusResponse) GetInfo() map[string]string { + if m != nil { + return m.Info + } + return nil +} + // PodSandboxStateValue is the wrapper of PodSandboxState. type PodSandboxStateValue struct { // State of the sandbox. @@ -2088,6 +2109,8 @@ func (m *ListContainersResponse) GetContainers() []*Container { type ContainerStatusRequest struct { // ID of the container for which to retrieve status. ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + // Verbose indicates whether to return extra information about the container. + Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` } func (m *ContainerStatusRequest) Reset() { *m = ContainerStatusRequest{} } @@ -2101,6 +2124,13 @@ func (m *ContainerStatusRequest) GetContainerId() string { return "" } +func (m *ContainerStatusRequest) GetVerbose() bool { + if m != nil { + return m.Verbose + } + return false +} + // ContainerStatus represents the status of a container. type ContainerStatus struct { // ID of the container. @@ -2252,6 +2282,11 @@ func (m *ContainerStatus) GetLogPath() string { type ContainerStatusResponse struct { // Status of the container. Status *ContainerStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` + // Info is extra information of the Container. The key could be abitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. pid for linux container based container runtime. + // It should only be returned non-empty when Verbose is true. + Info map[string]string `protobuf:"bytes,2,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *ContainerStatusResponse) Reset() { *m = ContainerStatusResponse{} } @@ -2265,6 +2300,13 @@ func (m *ContainerStatusResponse) GetStatus() *ContainerStatus { return nil } +func (m *ContainerStatusResponse) GetInfo() map[string]string { + if m != nil { + return m.Info + } + return nil +} + type UpdateContainerResourcesRequest struct { // ID of the container to update. ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` @@ -2684,6 +2726,8 @@ func (m *ListImagesResponse) GetImages() []*Image { type ImageStatusRequest struct { // Spec of the image. Image *ImageSpec `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` + // Verbose indicates whether to return extra information about the image. + Verbose bool `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"` } func (m *ImageStatusRequest) Reset() { *m = ImageStatusRequest{} } @@ -2697,9 +2741,21 @@ func (m *ImageStatusRequest) GetImage() *ImageSpec { return nil } +func (m *ImageStatusRequest) GetVerbose() bool { + if m != nil { + return m.Verbose + } + return false +} + type ImageStatusResponse struct { // Status of the image. Image *Image `protobuf:"bytes,1,opt,name=image" json:"image,omitempty"` + // Info is extra information of the Image. The key could be abitrary string, and + // value should be in json format. The information could include anything useful + // for debug, e.g. image config for oci image based container runtime. + // It should only be returned non-empty when Verbose is true. + Info map[string]string `protobuf:"bytes,2,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *ImageStatusResponse) Reset() { *m = ImageStatusResponse{} } @@ -2713,6 +2769,13 @@ func (m *ImageStatusResponse) GetImage() *Image { return nil } +func (m *ImageStatusResponse) GetInfo() map[string]string { + if m != nil { + return m.Info + } + return nil +} + // AuthConfig contains authorization information for connecting to a registry. type AuthConfig struct { Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` @@ -2973,15 +3036,29 @@ func (m *RuntimeStatus) GetConditions() []*RuntimeCondition { } type StatusRequest struct { + // Verbose indicates whether to return extra information about the runtime. + Verbose bool `protobuf:"varint,1,opt,name=verbose,proto3" json:"verbose,omitempty"` } func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (*StatusRequest) ProtoMessage() {} func (*StatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{81} } +func (m *StatusRequest) GetVerbose() bool { + if m != nil { + return m.Verbose + } + return false +} + type StatusResponse struct { // Status of the Runtime. Status *RuntimeStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` + // Info is extra information of the Runtime. The key could be abitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. plugins used by the container runtime. + // It should only be returned non-empty when Verbose is true. + Info map[string]string `protobuf:"bytes,2,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (m *StatusResponse) Reset() { *m = StatusResponse{} } @@ -2995,6 +3072,13 @@ func (m *StatusResponse) GetStatus() *RuntimeStatus { return nil } +func (m *StatusResponse) GetInfo() map[string]string { + if m != nil { + return m.Info + } + return nil +} + type ImageFsInfoRequest struct { } @@ -5220,6 +5304,16 @@ func (m *PodSandboxStatusRequest) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintApi(dAtA, i, uint64(len(m.PodSandboxId))) i += copy(dAtA[i:], m.PodSandboxId) } + if m.Verbose { + dAtA[i] = 0x10 + i++ + if m.Verbose { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -5426,6 +5520,23 @@ func (m *PodSandboxStatusResponse) MarshalTo(dAtA []byte) (int, error) { } i += n16 } + if len(m.Info) > 0 { + for k := range m.Info { + dAtA[i] = 0x12 + i++ + v := m.Info[k] + mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + i = encodeVarintApi(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } return i, nil } @@ -6713,6 +6824,16 @@ func (m *ContainerStatusRequest) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId))) i += copy(dAtA[i:], m.ContainerId) } + if m.Verbose { + dAtA[i] = 0x10 + i++ + if m.Verbose { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -6880,6 +7001,23 @@ func (m *ContainerStatusResponse) MarshalTo(dAtA []byte) (int, error) { } i += n39 } + if len(m.Info) > 0 { + for k := range m.Info { + dAtA[i] = 0x12 + i++ + v := m.Info[k] + mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + i = encodeVarintApi(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } return i, nil } @@ -7457,6 +7595,16 @@ func (m *ImageStatusRequest) MarshalTo(dAtA []byte) (int, error) { } i += n46 } + if m.Verbose { + dAtA[i] = 0x10 + i++ + if m.Verbose { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -7485,6 +7633,23 @@ func (m *ImageStatusResponse) MarshalTo(dAtA []byte) (int, error) { } i += n47 } + if len(m.Info) > 0 { + for k := range m.Info { + dAtA[i] = 0x12 + i++ + v := m.Info[k] + mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + i = encodeVarintApi(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } return i, nil } @@ -7849,6 +8014,16 @@ func (m *StatusRequest) MarshalTo(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Verbose { + dAtA[i] = 0x8 + i++ + if m.Verbose { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -7877,6 +8052,23 @@ func (m *StatusResponse) MarshalTo(dAtA []byte) (int, error) { } i += n54 } + if len(m.Info) > 0 { + for k := range m.Info { + dAtA[i] = 0x12 + i++ + v := m.Info[k] + mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + i = encodeVarintApi(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } return i, nil } @@ -8711,6 +8903,9 @@ func (m *PodSandboxStatusRequest) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } + if m.Verbose { + n += 2 + } return n } @@ -8795,6 +8990,14 @@ func (m *PodSandboxStatusResponse) Size() (n int) { l = m.Status.Size() n += 1 + l + sovApi(uint64(l)) } + if len(m.Info) > 0 { + for k, v := range m.Info { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + n += mapEntrySize + 1 + sovApi(uint64(mapEntrySize)) + } + } return n } @@ -9347,6 +9550,9 @@ func (m *ContainerStatusRequest) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } + if m.Verbose { + n += 2 + } return n } @@ -9428,6 +9634,14 @@ func (m *ContainerStatusResponse) Size() (n int) { l = m.Status.Size() n += 1 + l + sovApi(uint64(l)) } + if len(m.Info) > 0 { + for k, v := range m.Info { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + n += mapEntrySize + 1 + sovApi(uint64(mapEntrySize)) + } + } return n } @@ -9656,6 +9870,9 @@ func (m *ImageStatusRequest) Size() (n int) { l = m.Image.Size() n += 1 + l + sovApi(uint64(l)) } + if m.Verbose { + n += 2 + } return n } @@ -9666,6 +9883,14 @@ func (m *ImageStatusResponse) Size() (n int) { l = m.Image.Size() n += 1 + l + sovApi(uint64(l)) } + if len(m.Info) > 0 { + for k, v := range m.Info { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + n += mapEntrySize + 1 + sovApi(uint64(mapEntrySize)) + } + } return n } @@ -9815,6 +10040,9 @@ func (m *RuntimeStatus) Size() (n int) { func (m *StatusRequest) Size() (n int) { var l int _ = l + if m.Verbose { + n += 2 + } return n } @@ -9825,6 +10053,14 @@ func (m *StatusResponse) Size() (n int) { l = m.Status.Size() n += 1 + l + sovApi(uint64(l)) } + if len(m.Info) > 0 { + for k, v := range m.Info { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) + n += mapEntrySize + 1 + sovApi(uint64(mapEntrySize)) + } + } return n } @@ -10277,6 +10513,7 @@ func (this *PodSandboxStatusRequest) String() string { } s := strings.Join([]string{`&PodSandboxStatusRequest{`, `PodSandboxId:` + fmt.Sprintf("%v", this.PodSandboxId) + `,`, + `Verbose:` + fmt.Sprintf("%v", this.Verbose) + `,`, `}`, }, "") return s @@ -10352,8 +10589,19 @@ func (this *PodSandboxStatusResponse) String() string { if this == nil { return "nil" } + keysForInfo := make([]string, 0, len(this.Info)) + for k := range this.Info { + keysForInfo = append(keysForInfo, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForInfo) + mapStringForInfo := "map[string]string{" + for _, k := range keysForInfo { + mapStringForInfo += fmt.Sprintf("%v: %v,", k, this.Info[k]) + } + mapStringForInfo += "}" s := strings.Join([]string{`&PodSandboxStatusResponse{`, `Status:` + strings.Replace(fmt.Sprintf("%v", this.Status), "PodSandboxStatus", "PodSandboxStatus", 1) + `,`, + `Info:` + mapStringForInfo + `,`, `}`, }, "") return s @@ -10781,6 +11029,7 @@ func (this *ContainerStatusRequest) String() string { } s := strings.Join([]string{`&ContainerStatusRequest{`, `ContainerId:` + fmt.Sprintf("%v", this.ContainerId) + `,`, + `Verbose:` + fmt.Sprintf("%v", this.Verbose) + `,`, `}`, }, "") return s @@ -10833,8 +11082,19 @@ func (this *ContainerStatusResponse) String() string { if this == nil { return "nil" } + keysForInfo := make([]string, 0, len(this.Info)) + for k := range this.Info { + keysForInfo = append(keysForInfo, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForInfo) + mapStringForInfo := "map[string]string{" + for _, k := range keysForInfo { + mapStringForInfo += fmt.Sprintf("%v: %v,", k, this.Info[k]) + } + mapStringForInfo += "}" s := strings.Join([]string{`&ContainerStatusResponse{`, `Status:` + strings.Replace(fmt.Sprintf("%v", this.Status), "ContainerStatus", "ContainerStatus", 1) + `,`, + `Info:` + mapStringForInfo + `,`, `}`, }, "") return s @@ -11004,6 +11264,7 @@ func (this *ImageStatusRequest) String() string { } s := strings.Join([]string{`&ImageStatusRequest{`, `Image:` + strings.Replace(fmt.Sprintf("%v", this.Image), "ImageSpec", "ImageSpec", 1) + `,`, + `Verbose:` + fmt.Sprintf("%v", this.Verbose) + `,`, `}`, }, "") return s @@ -11012,8 +11273,19 @@ func (this *ImageStatusResponse) String() string { if this == nil { return "nil" } + keysForInfo := make([]string, 0, len(this.Info)) + for k := range this.Info { + keysForInfo = append(keysForInfo, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForInfo) + mapStringForInfo := "map[string]string{" + for _, k := range keysForInfo { + mapStringForInfo += fmt.Sprintf("%v: %v,", k, this.Info[k]) + } + mapStringForInfo += "}" s := strings.Join([]string{`&ImageStatusResponse{`, `Image:` + strings.Replace(fmt.Sprintf("%v", this.Image), "Image", "Image", 1) + `,`, + `Info:` + mapStringForInfo + `,`, `}`, }, "") return s @@ -11141,6 +11413,7 @@ func (this *StatusRequest) String() string { return "nil" } s := strings.Join([]string{`&StatusRequest{`, + `Verbose:` + fmt.Sprintf("%v", this.Verbose) + `,`, `}`, }, "") return s @@ -11149,8 +11422,19 @@ func (this *StatusResponse) String() string { if this == nil { return "nil" } + keysForInfo := make([]string, 0, len(this.Info)) + for k := range this.Info { + keysForInfo = append(keysForInfo, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForInfo) + mapStringForInfo := "map[string]string{" + for _, k := range keysForInfo { + mapStringForInfo += fmt.Sprintf("%v: %v,", k, this.Info[k]) + } + mapStringForInfo += "}" s := strings.Join([]string{`&StatusResponse{`, `Status:` + strings.Replace(fmt.Sprintf("%v", this.Status), "RuntimeStatus", "RuntimeStatus", 1) + `,`, + `Info:` + mapStringForInfo + `,`, `}`, }, "") return s @@ -13821,6 +14105,26 @@ func (m *PodSandboxStatusRequest) Unmarshal(dAtA []byte) error { } m.PodSandboxId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbose", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Verbose = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -14597,61 +14901,11 @@ func (m *PodSandboxStatusResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodSandboxStateValue) 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 ErrIntOverflowApi - } - 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: PodSandboxStateValue: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodSandboxStateValue: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) } - m.State = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -14661,21 +14915,187 @@ func (m *PodSandboxStateValue) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.State |= (PodSandboxState(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { + if msglen < 0 { return ErrInvalidLengthApi } - if (iNdEx + skippy) > l { + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Info == nil { + m.Info = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Info[mapkey] = mapvalue + } else { + var mapvalue string + m.Info[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodSandboxStateValue) 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 ErrIntOverflowApi + } + 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: PodSandboxStateValue: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodSandboxStateValue: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + m.State = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.State |= (PodSandboxState(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } iNdEx += skippy @@ -19168,6 +19588,26 @@ func (m *ContainerStatusRequest) Unmarshal(dAtA []byte) error { } m.ContainerId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbose", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Verbose = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -19870,61 +20310,11 @@ func (m *ContainerStatusResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UpdateContainerResourcesRequest) 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 ErrIntOverflowApi - } - 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: UpdateContainerResourcesRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateContainerResourcesRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContainerId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -19934,26 +20324,19 @@ func (m *UpdateContainerResourcesRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthApi } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.ContainerId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Linux", wireType) - } - var msglen int + var keykey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -19963,7 +20346,180 @@ func (m *UpdateContainerResourcesRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Info == nil { + m.Info = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Info[mapkey] = mapvalue + } else { + var mapvalue string + m.Info[mapkey] = mapvalue + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateContainerResourcesRequest) 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 ErrIntOverflowApi + } + 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: UpdateContainerResourcesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateContainerResourcesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContainerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + 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 ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContainerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Linux", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } @@ -21563,6 +22119,26 @@ func (m *ImageStatusRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbose", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Verbose = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -21646,6 +22222,122 @@ func (m *ImageStatusResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Info == nil { + m.Info = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Info[mapkey] = mapvalue + } else { + var mapvalue string + m.Info[mapkey] = mapvalue + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -22814,6 +23506,26 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: StatusRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbose", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Verbose = bool(v != 0) default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -22897,6 +23609,122 @@ func (m *StatusResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Info == nil { + m.Info = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthApi + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Info[mapkey] = mapvalue + } else { + var mapvalue string + m.Info[mapkey] = mapvalue + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -24753,274 +25581,280 @@ var ( func init() { proto.RegisterFile("api.proto", fileDescriptorApi) } var fileDescriptorApi = []byte{ - // 4300 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3b, 0x4d, 0x6f, 0x1b, 0x49, - 0x76, 0x22, 0xa9, 0x0f, 0xf2, 0x51, 0xa4, 0xa8, 0x92, 0x2c, 0x51, 0xb4, 0x2d, 0xcb, 0xed, 0xf1, - 0x8c, 0xed, 0x5d, 0x7b, 0x3c, 0x9a, 0x1d, 0x4f, 0xc6, 0xf3, 0x65, 0x8e, 0x24, 0x3b, 0x1a, 0xdb, - 0x94, 0xb6, 0x29, 0xcd, 0xee, 0x62, 0x03, 0x74, 0x5a, 0xec, 0x12, 0xd5, 0x33, 0x64, 0x77, 0x4f, - 0x77, 0xb5, 0x6d, 0x05, 0x39, 0x24, 0x97, 0x20, 0x08, 0x10, 0x60, 0x73, 0x4c, 0x4e, 0x39, 0x04, - 0x58, 0xe4, 0x92, 0x43, 0x0e, 0x41, 0x7e, 0x41, 0xb0, 0x97, 0x05, 0x02, 0x04, 0x08, 0x92, 0x5b, - 0xd6, 0x39, 0xe4, 0x10, 0x20, 0xbf, 0x21, 0xa8, 0xaf, 0xee, 0xea, 0x2f, 0x5a, 0xf2, 0x0c, 0x76, - 0x7d, 0x62, 0xd7, 0xab, 0x57, 0xaf, 0x5e, 0xbd, 0xf7, 0xea, 0xd5, 0x7b, 0xaf, 0x8a, 0x50, 0x33, - 0x3d, 0xfb, 0x8e, 0xe7, 0xbb, 0xc4, 0x45, 0x73, 0x7e, 0xe8, 0x10, 0x7b, 0x8c, 0x3b, 0xb7, 0x87, - 0x36, 0x39, 0x09, 0x8f, 0xee, 0x0c, 0xdc, 0xf1, 0xbb, 0x43, 0x77, 0xe8, 0xbe, 0xcb, 0xfa, 0x8f, - 0xc2, 0x63, 0xd6, 0x62, 0x0d, 0xf6, 0xc5, 0xc7, 0x69, 0xb7, 0xa0, 0xf9, 0x15, 0xf6, 0x03, 0xdb, - 0x75, 0x74, 0xfc, 0x6d, 0x88, 0x03, 0x82, 0xda, 0x30, 0xf7, 0x8c, 0x43, 0xda, 0xa5, 0x8d, 0xd2, - 0x8d, 0x9a, 0x2e, 0x9b, 0xda, 0x2f, 0x4b, 0xb0, 0x10, 0x21, 0x07, 0x9e, 0xeb, 0x04, 0xb8, 0x18, - 0x1b, 0x5d, 0x85, 0x79, 0xc1, 0x93, 0xe1, 0x98, 0x63, 0xdc, 0x2e, 0xb3, 0xee, 0xba, 0x80, 0xf5, - 0xcc, 0x31, 0x46, 0xef, 0xc0, 0x82, 0x44, 0x91, 0x44, 0x2a, 0x0c, 0xab, 0x29, 0xc0, 0x62, 0x36, - 0x74, 0x07, 0x96, 0x24, 0xa2, 0xe9, 0xd9, 0x11, 0xf2, 0x34, 0x43, 0x5e, 0x14, 0x5d, 0x5d, 0xcf, - 0x16, 0xf8, 0xda, 0xcf, 0xa1, 0xb6, 0xdd, 0xeb, 0x6f, 0xb9, 0xce, 0xb1, 0x3d, 0xa4, 0x2c, 0x06, - 0xd8, 0xa7, 0x63, 0xda, 0xa5, 0x8d, 0x0a, 0x65, 0x51, 0x34, 0x51, 0x07, 0xaa, 0x01, 0x36, 0xfd, - 0xc1, 0x09, 0x0e, 0xda, 0x65, 0xd6, 0x15, 0xb5, 0xe9, 0x28, 0xd7, 0x23, 0xb6, 0xeb, 0x04, 0xed, - 0x0a, 0x1f, 0x25, 0x9a, 0xda, 0x5f, 0x97, 0xa0, 0xbe, 0xef, 0xfa, 0xe4, 0xa9, 0xe9, 0x79, 0xb6, - 0x33, 0x44, 0xb7, 0xa1, 0xca, 0x64, 0x39, 0x70, 0x47, 0x4c, 0x06, 0xcd, 0xcd, 0xc5, 0x3b, 0x82, - 0xa5, 0x3b, 0xfb, 0xa2, 0x43, 0x8f, 0x50, 0xd0, 0x75, 0x68, 0x0e, 0x5c, 0x87, 0x98, 0xb6, 0x83, - 0x7d, 0xc3, 0x73, 0x7d, 0xc2, 0x24, 0x33, 0xa3, 0x37, 0x22, 0x28, 0x25, 0x8e, 0x2e, 0x42, 0xed, - 0xc4, 0x0d, 0x08, 0xc7, 0xa8, 0x30, 0x8c, 0x2a, 0x05, 0xb0, 0xce, 0x55, 0x98, 0x63, 0x9d, 0xb6, - 0x27, 0x64, 0x30, 0x4b, 0x9b, 0xbb, 0x9e, 0xf6, 0xeb, 0x12, 0xcc, 0x3c, 0x75, 0x43, 0x87, 0xa4, - 0xa6, 0x31, 0xc9, 0x89, 0xd0, 0x8f, 0x32, 0x8d, 0x49, 0x4e, 0xe2, 0x69, 0x28, 0x06, 0x57, 0x11, - 0x9f, 0x86, 0x76, 0x76, 0xa0, 0xea, 0x63, 0xd3, 0x72, 0x9d, 0xd1, 0x29, 0x63, 0xa1, 0xaa, 0x47, - 0x6d, 0xaa, 0xbb, 0x00, 0x8f, 0x6c, 0x27, 0x7c, 0x61, 0xf8, 0x78, 0x64, 0x1e, 0xe1, 0x11, 0x63, - 0xa5, 0xaa, 0x37, 0x05, 0x58, 0xe7, 0x50, 0xf4, 0x31, 0xd4, 0x3d, 0xdf, 0xf5, 0xcc, 0xa1, 0x49, - 0xc5, 0xd7, 0x9e, 0x61, 0x12, 0x5a, 0x8b, 0x24, 0xc4, 0xb8, 0xdd, 0x8f, 0x11, 0x74, 0x15, 0x5b, - 0xfb, 0x1a, 0x16, 0xa8, 0xa5, 0x04, 0x9e, 0x39, 0xc0, 0x7b, 0x4c, 0xfe, 0xd4, 0xae, 0x18, 0xc7, - 0x0e, 0x26, 0xcf, 0x5d, 0xff, 0x1b, 0xb6, 0xac, 0xaa, 0x5e, 0xa7, 0xb0, 0x1e, 0x07, 0xa1, 0x35, - 0xa8, 0xf2, 0x45, 0xd9, 0x16, 0x5b, 0x53, 0x55, 0x67, 0xe2, 0xda, 0xb7, 0xad, 0xa8, 0xcb, 0xf6, - 0x06, 0x62, 0x49, 0x73, 0x5c, 0x74, 0x03, 0x4d, 0x03, 0xd8, 0x75, 0xc8, 0xbd, 0x1f, 0x7d, 0x65, - 0x8e, 0x42, 0x8c, 0x96, 0x61, 0xe6, 0x19, 0xfd, 0x60, 0xf4, 0x2b, 0x3a, 0x6f, 0x68, 0x7f, 0x56, - 0x81, 0x8b, 0x4f, 0xe8, 0xea, 0xfa, 0xa6, 0x63, 0x1d, 0xb9, 0x2f, 0xfa, 0x78, 0x10, 0xfa, 0x36, - 0x39, 0xdd, 0x72, 0x1d, 0x82, 0x5f, 0x10, 0xb4, 0x03, 0x8b, 0x8e, 0xe4, 0xd7, 0x90, 0xf6, 0x43, - 0x29, 0xd4, 0x37, 0xdb, 0xd1, 0x92, 0x53, 0x2b, 0xd2, 0x5b, 0x4e, 0x12, 0x10, 0xa0, 0xcf, 0x63, - 0xe1, 0x4a, 0x22, 0x65, 0x46, 0x64, 0x25, 0x22, 0xd2, 0xdf, 0x61, 0x7c, 0x08, 0x12, 0x52, 0xe8, - 0x92, 0xc0, 0xfb, 0x40, 0x37, 0x9a, 0x61, 0x06, 0x46, 0x18, 0x60, 0x9f, 0xad, 0xb4, 0xbe, 0xb9, - 0x14, 0x0d, 0x8e, 0xd7, 0xa9, 0xd7, 0xfc, 0xd0, 0xe9, 0x06, 0x87, 0x01, 0xf6, 0xd9, 0x76, 0x14, - 0xea, 0x35, 0x7c, 0xd7, 0x25, 0xc7, 0x81, 0x54, 0xa9, 0x04, 0xeb, 0x0c, 0x8a, 0xde, 0x85, 0xa5, - 0x20, 0xf4, 0xbc, 0x11, 0x1e, 0x63, 0x87, 0x98, 0x23, 0x63, 0xe8, 0xbb, 0xa1, 0x17, 0xb4, 0x67, - 0x36, 0x2a, 0x37, 0x2a, 0x3a, 0x52, 0xbb, 0x1e, 0xb1, 0x1e, 0xb4, 0x0e, 0xe0, 0xf9, 0xf6, 0x33, - 0x7b, 0x84, 0x87, 0xd8, 0x6a, 0xcf, 0x32, 0xa2, 0x0a, 0x04, 0xdd, 0x85, 0xe5, 0x00, 0x0f, 0x06, - 0xee, 0xd8, 0x33, 0x3c, 0xdf, 0x3d, 0xb6, 0x47, 0x98, 0x1b, 0xe4, 0x1c, 0x33, 0x48, 0x24, 0xfa, - 0xf6, 0x79, 0x17, 0x35, 0x4d, 0xed, 0x17, 0x65, 0xb8, 0xc0, 0x04, 0xb0, 0xef, 0x5a, 0x42, 0x17, - 0x62, 0xbb, 0x5f, 0x83, 0xc6, 0x80, 0x31, 0x64, 0x78, 0xa6, 0x8f, 0x1d, 0x22, 0xec, 0x7e, 0x9e, - 0x03, 0xf7, 0x19, 0x0c, 0xed, 0x41, 0x2b, 0x10, 0xaa, 0x33, 0x06, 0x5c, 0x77, 0x42, 0xc2, 0x6f, - 0x45, 0x42, 0x9a, 0xa0, 0x67, 0x7d, 0x21, 0xc8, 0x28, 0x7e, 0x2e, 0x38, 0x0d, 0x06, 0x64, 0xc4, - 0xdd, 0x45, 0x7d, 0xf3, 0x07, 0x49, 0x3a, 0x69, 0x36, 0xef, 0xf4, 0x39, 0xf6, 0x8e, 0x43, 0xfc, - 0x53, 0x5d, 0x8e, 0xed, 0xdc, 0x87, 0x79, 0xb5, 0x03, 0xb5, 0xa0, 0xf2, 0x0d, 0x3e, 0x15, 0x4b, - 0xa0, 0x9f, 0xb1, 0x5d, 0xf2, 0xcd, 0xca, 0x1b, 0xf7, 0xcb, 0xbf, 0x57, 0xd2, 0x7c, 0x40, 0xf1, - 0x2c, 0x4f, 0x31, 0x31, 0x2d, 0x93, 0x98, 0x08, 0xc1, 0x34, 0x73, 0xbf, 0x9c, 0x04, 0xfb, 0xa6, - 0x54, 0x43, 0xb1, 0x35, 0x6a, 0x3a, 0xfd, 0x44, 0x97, 0xa0, 0x16, 0x19, 0xa1, 0xf0, 0xc1, 0x31, - 0x80, 0xfa, 0x42, 0x93, 0x10, 0x3c, 0xf6, 0x08, 0x33, 0x88, 0x86, 0x2e, 0x9b, 0xda, 0x3f, 0x4f, - 0x43, 0x2b, 0xa3, 0x81, 0x0f, 0xa1, 0x3a, 0x16, 0xd3, 0x0b, 0xdb, 0xbf, 0x18, 0x3b, 0xc4, 0x0c, - 0x87, 0x7a, 0x84, 0x4c, 0xfd, 0x0d, 0xdd, 0x8c, 0xca, 0x71, 0x11, 0xb5, 0xa9, 0x5a, 0x47, 0xee, - 0xd0, 0xb0, 0x6c, 0x1f, 0x0f, 0x88, 0xeb, 0x9f, 0x0a, 0x2e, 0xe7, 0x47, 0xee, 0x70, 0x5b, 0xc2, - 0xd0, 0x7b, 0x00, 0x96, 0x13, 0x50, 0x8d, 0x1e, 0xdb, 0x43, 0xc6, 0x6b, 0x7d, 0x13, 0x45, 0x73, - 0x47, 0x47, 0x82, 0x5e, 0xb3, 0x9c, 0x40, 0x30, 0xfb, 0x11, 0x34, 0xa8, 0x8b, 0x35, 0xc6, 0xdc, - 0x9b, 0x73, 0x2b, 0xae, 0x6f, 0x2e, 0x2b, 0x1c, 0x47, 0xae, 0x5e, 0x9f, 0xf7, 0xe2, 0x46, 0x80, - 0x3e, 0x85, 0x59, 0xe6, 0xe2, 0x82, 0xf6, 0x2c, 0x1b, 0x73, 0x3d, 0x67, 0x95, 0x42, 0xdb, 0x4f, - 0x18, 0x1e, 0x57, 0xb6, 0x18, 0x84, 0x9e, 0x40, 0xdd, 0x74, 0x1c, 0x97, 0x98, 0x7c, 0x83, 0xcf, - 0x31, 0x1a, 0xb7, 0x8a, 0x69, 0x74, 0x63, 0x64, 0x4e, 0x48, 0x1d, 0x8e, 0x7e, 0x04, 0x33, 0xcc, - 0x03, 0xb4, 0xab, 0x6c, 0xd5, 0xeb, 0x93, 0xcd, 0x4f, 0xe7, 0xc8, 0x9d, 0x8f, 0xa0, 0xae, 0xb0, - 0x76, 0x1e, 0x73, 0xeb, 0x7c, 0x06, 0xad, 0x34, 0x47, 0xe7, 0x32, 0xd7, 0x5d, 0x58, 0xd6, 0x43, - 0x27, 0x66, 0x4c, 0xc6, 0x1f, 0xef, 0xc1, 0xac, 0xd0, 0x1f, 0xb7, 0x9d, 0xb5, 0x42, 0x89, 0xe8, - 0x02, 0x51, 0xfb, 0x14, 0x2e, 0xa4, 0x48, 0x89, 0xe8, 0xe4, 0x2d, 0x68, 0x7a, 0xae, 0x65, 0x04, - 0x1c, 0x6c, 0xd8, 0x96, 0x74, 0x06, 0x5e, 0x84, 0xbb, 0x6b, 0xd1, 0xe1, 0x7d, 0xe2, 0x7a, 0x59, - 0x56, 0xce, 0x36, 0xbc, 0x0d, 0x2b, 0xe9, 0xe1, 0x7c, 0x7a, 0xed, 0x73, 0x58, 0xd5, 0xf1, 0xd8, - 0x7d, 0x86, 0x5f, 0x97, 0x74, 0x07, 0xda, 0x59, 0x02, 0x31, 0xf1, 0x18, 0xda, 0x27, 0x26, 0x09, - 0x83, 0xf3, 0x11, 0xbf, 0xa9, 0x12, 0x10, 0x47, 0x27, 0xa7, 0x83, 0x9a, 0x50, 0xb6, 0x3d, 0x31, - 0xa8, 0x6c, 0x7b, 0xda, 0xe7, 0x50, 0x8b, 0x0e, 0x2d, 0xb4, 0x19, 0x47, 0x46, 0xe5, 0x57, 0x9c, - 0x6c, 0x51, 0xcc, 0xf4, 0x38, 0xe3, 0xad, 0xc5, 0x4c, 0x9b, 0x00, 0x91, 0x9f, 0x91, 0x27, 0x25, - 0xca, 0xd2, 0xd3, 0x15, 0x2c, 0xed, 0xef, 0x12, 0x4e, 0x47, 0x61, 0xd9, 0x8a, 0x58, 0xb6, 0x12, - 0x4e, 0xa8, 0x7c, 0x1e, 0x27, 0x74, 0x07, 0x66, 0x02, 0x62, 0x12, 0xee, 0x06, 0x9b, 0xca, 0xe2, - 0x92, 0x53, 0x62, 0x9d, 0xa3, 0xa1, 0xcb, 0x00, 0x03, 0x1f, 0x9b, 0x04, 0x5b, 0x86, 0xc9, 0xfd, - 0x63, 0x45, 0xaf, 0x09, 0x48, 0x97, 0xa0, 0xfb, 0x30, 0x27, 0x23, 0x95, 0x19, 0xc6, 0xc6, 0x46, - 0x0e, 0xc1, 0x84, 0xf4, 0x75, 0x39, 0x20, 0xde, 0xd3, 0xb3, 0x93, 0xf7, 0xb4, 0x18, 0xc7, 0x91, - 0x15, 0xb7, 0x34, 0x57, 0xe8, 0x96, 0xf8, 0x88, 0xb3, 0xb8, 0xa5, 0x6a, 0xa1, 0x5b, 0x12, 0x34, - 0x26, 0xba, 0xa5, 0xdf, 0xa5, 0x83, 0x79, 0x0a, 0xed, 0xec, 0x06, 0x11, 0x8e, 0xe1, 0x3d, 0x98, - 0x0d, 0x18, 0x64, 0x82, 0x93, 0x11, 0x43, 0x04, 0xa2, 0xf6, 0x10, 0x96, 0x53, 0x16, 0xc0, 0x03, - 0xc5, 0xc8, 0x5e, 0x4a, 0x67, 0xb2, 0x17, 0xed, 0xff, 0x4a, 0xaa, 0xf5, 0x3e, 0xb4, 0x47, 0x04, - 0xfb, 0x19, 0xeb, 0x7d, 0x5f, 0x12, 0xe5, 0xa6, 0x7b, 0xb9, 0x88, 0x28, 0x8f, 0xe1, 0x84, 0x25, - 0xf6, 0xa1, 0xc9, 0x74, 0x68, 0x04, 0x78, 0xc4, 0x0e, 0x44, 0x11, 0x8a, 0xfc, 0x30, 0x67, 0x34, - 0x9f, 0x97, 0x1b, 0x40, 0x5f, 0xa0, 0x73, 0xf5, 0x35, 0x46, 0x2a, 0xac, 0xf3, 0x00, 0x50, 0x16, - 0xe9, 0x5c, 0x7a, 0xf8, 0x92, 0xee, 0x7d, 0x9a, 0xb8, 0xe4, 0x78, 0xfa, 0x63, 0xc6, 0xc6, 0x04, - 0x25, 0x70, 0x3e, 0x75, 0x81, 0xa8, 0xfd, 0x6d, 0x05, 0x20, 0xee, 0x7c, 0x63, 0x37, 0xfd, 0x87, - 0xd1, 0x16, 0xe4, 0xd1, 0xc4, 0x95, 0x1c, 0x7a, 0xb9, 0x9b, 0xef, 0x61, 0x72, 0xf3, 0xf1, 0xb8, - 0xe2, 0xad, 0xbc, 0xd1, 0x6f, 0xec, 0xb6, 0xdb, 0x82, 0x95, 0xb4, 0xba, 0xc5, 0xa6, 0xbb, 0x09, - 0x33, 0x36, 0xc1, 0x63, 0x9e, 0x86, 0xab, 0xe9, 0x88, 0x82, 0xcb, 0x31, 0xb4, 0xab, 0x50, 0xdb, - 0x1d, 0x9b, 0x43, 0xdc, 0xf7, 0xf0, 0x80, 0xce, 0x65, 0xd3, 0x86, 0x98, 0x9f, 0x37, 0xb4, 0x4d, - 0xa8, 0x3e, 0xc6, 0xa7, 0x7c, 0x0f, 0x9e, 0x91, 0x3f, 0xed, 0x2f, 0xcb, 0xb0, 0xca, 0x7c, 0xe7, - 0x96, 0x4c, 0x82, 0x75, 0x1c, 0xb8, 0xa1, 0x3f, 0xc0, 0x01, 0x53, 0xa9, 0x17, 0x1a, 0x1e, 0xf6, - 0x6d, 0xd7, 0x12, 0x59, 0x5f, 0x6d, 0xe0, 0x85, 0xfb, 0x0c, 0x40, 0x13, 0x65, 0xda, 0xfd, 0x6d, - 0xe8, 0x0a, 0xdb, 0xaa, 0xe8, 0xd5, 0x81, 0x17, 0xfe, 0x98, 0xb6, 0xe5, 0xd8, 0xe0, 0xc4, 0xf4, - 0x71, 0xc0, 0x6c, 0x88, 0x8f, 0xed, 0x33, 0x00, 0x7a, 0x0f, 0x2e, 0x8c, 0xf1, 0xd8, 0xf5, 0x4f, - 0x8d, 0x91, 0x3d, 0xb6, 0x89, 0x61, 0x3b, 0xc6, 0xd1, 0x29, 0xc1, 0x81, 0x30, 0x1c, 0xc4, 0x3b, - 0x9f, 0xd0, 0xbe, 0x5d, 0xe7, 0x0b, 0xda, 0x83, 0x34, 0x68, 0xb8, 0xee, 0xd8, 0x08, 0x06, 0xae, - 0x8f, 0x0d, 0xd3, 0xfa, 0x9a, 0x1d, 0x1e, 0x15, 0xbd, 0xee, 0xba, 0xe3, 0x3e, 0x85, 0x75, 0xad, - 0xaf, 0xd1, 0x15, 0xa8, 0x0f, 0xbc, 0x30, 0xc0, 0xc4, 0xa0, 0x3f, 0xec, 0x90, 0xa8, 0xe9, 0xc0, - 0x41, 0x5b, 0x5e, 0x18, 0x28, 0x08, 0x63, 0x2a, 0xf6, 0x39, 0x15, 0xe1, 0x29, 0x15, 0xb3, 0x09, - 0x8d, 0x44, 0x1e, 0x49, 0xb3, 0x05, 0x96, 0x30, 0x8a, 0x6c, 0x81, 0x7e, 0x53, 0x98, 0xef, 0x8e, - 0xa4, 0x24, 0xd9, 0x37, 0x85, 0x91, 0x53, 0x4f, 0xa6, 0x0a, 0xec, 0x9b, 0x8a, 0x7c, 0x84, 0x9f, - 0x89, 0x3a, 0x40, 0x4d, 0xe7, 0x0d, 0xcd, 0x02, 0xd8, 0x32, 0x3d, 0xf3, 0xc8, 0x1e, 0xd9, 0xe4, - 0x14, 0xdd, 0x84, 0x96, 0x69, 0x59, 0xc6, 0x40, 0x42, 0x6c, 0x2c, 0x8b, 0x32, 0x0b, 0xa6, 0x65, - 0x6d, 0x29, 0x60, 0xf4, 0x03, 0x58, 0xb4, 0x7c, 0xd7, 0x4b, 0xe2, 0xf2, 0x2a, 0x4d, 0x8b, 0x76, - 0xa8, 0xc8, 0xda, 0x3f, 0x4d, 0xc3, 0xe5, 0xa4, 0x62, 0xd3, 0x99, 0xf9, 0x87, 0x30, 0x9f, 0x9a, - 0x35, 0x99, 0x12, 0xc7, 0x4c, 0xea, 0x09, 0xc4, 0x54, 0xee, 0x5a, 0xce, 0xe4, 0xae, 0xb9, 0x29, - 0x7f, 0xe5, 0xfb, 0x48, 0xf9, 0xa7, 0xbf, 0x4b, 0xca, 0x3f, 0x73, 0xa6, 0x94, 0xff, 0x6d, 0x56, - 0x81, 0x93, 0x83, 0x58, 0xe2, 0xc5, 0xcd, 0xa8, 0x11, 0xe1, 0x38, 0xb2, 0x52, 0x97, 0x2a, 0x0d, - 0xcc, 0x9d, 0xa7, 0x34, 0x50, 0x2d, 0x2c, 0x0d, 0x50, 0x8b, 0xf0, 0x3c, 0xd3, 0x1f, 0xbb, 0xbe, - 0xcc, 0xfd, 0xdb, 0x35, 0xc6, 0xc2, 0x82, 0x84, 0x8b, 0xbc, 0xbf, 0xb0, 0x4a, 0x00, 0x45, 0x55, - 0x02, 0xb4, 0x01, 0xf3, 0x8e, 0x6b, 0x38, 0xf8, 0xb9, 0x41, 0x15, 0x16, 0xb4, 0xeb, 0x5c, 0x7b, - 0x8e, 0xdb, 0xc3, 0xcf, 0xf7, 0x29, 0x44, 0xfb, 0xfb, 0x12, 0x2c, 0x27, 0x0d, 0x47, 0xe4, 0x85, - 0x9f, 0x41, 0xcd, 0x97, 0xbe, 0x41, 0x18, 0xcb, 0x46, 0x32, 0xfe, 0xca, 0xfa, 0x10, 0x3d, 0x1e, - 0x82, 0x7e, 0x5c, 0x58, 0x61, 0x78, 0xbb, 0x80, 0xcc, 0xab, 0x6a, 0x0c, 0x5a, 0x17, 0x16, 0x23, - 0xe4, 0x89, 0xf9, 0xbd, 0x92, 0xaf, 0x97, 0x93, 0xf9, 0xba, 0x03, 0xb3, 0xdb, 0xf8, 0x99, 0x3d, - 0xc0, 0xdf, 0x4b, 0x7d, 0x70, 0x03, 0xea, 0x1e, 0xf6, 0xc7, 0x76, 0x10, 0x44, 0x46, 0x5f, 0xd3, - 0x55, 0x90, 0xf6, 0x9f, 0x33, 0xb0, 0x90, 0x96, 0xec, 0xbd, 0x4c, 0x79, 0xa0, 0x13, 0xef, 0xc2, - 0xf4, 0xfa, 0x94, 0x33, 0xfa, 0x86, 0x3c, 0x06, 0xca, 0xa9, 0x2c, 0x21, 0x3a, 0x29, 0xc4, 0xd1, - 0x40, 0xd7, 0x3f, 0x70, 0xc7, 0x63, 0xd3, 0xb1, 0x64, 0xed, 0x56, 0x34, 0xa9, 0xb4, 0x4c, 0x7f, - 0x48, 0xb7, 0x16, 0x05, 0xb3, 0x6f, 0xea, 0x25, 0x69, 0xb4, 0x6d, 0x3b, 0xac, 0xba, 0xc0, 0x36, - 0x4e, 0x4d, 0x07, 0x01, 0xda, 0xb6, 0x7d, 0x74, 0x1d, 0xa6, 0xb1, 0xf3, 0x4c, 0x9e, 0xc6, 0x71, - 0x71, 0x57, 0x1e, 0x3f, 0x3a, 0xeb, 0x46, 0x6f, 0xc3, 0xec, 0xd8, 0x0d, 0x1d, 0x22, 0xe3, 0xee, - 0x66, 0xb2, 0xc6, 0xa9, 0x8b, 0x5e, 0x74, 0x13, 0xe6, 0x2c, 0xa6, 0x03, 0x19, 0x5c, 0x2f, 0xc4, - 0x15, 0x0a, 0x06, 0xd7, 0x65, 0x3f, 0xfa, 0x24, 0x8a, 0x23, 0x6a, 0xa9, 0x48, 0x20, 0x25, 0xd4, - 0xdc, 0x60, 0xe2, 0x71, 0x32, 0x98, 0x00, 0x46, 0xe2, 0x66, 0x21, 0x89, 0xc9, 0xf5, 0x85, 0x35, - 0xa8, 0x8e, 0xdc, 0x21, 0xb7, 0x83, 0x3a, 0xaf, 0xf4, 0x8f, 0xdc, 0x21, 0x33, 0x83, 0x65, 0x1a, - 0x3c, 0x59, 0xb6, 0xd3, 0x9e, 0x67, 0xdb, 0x8b, 0x37, 0xe8, 0x99, 0xc8, 0x3e, 0x0c, 0xd7, 0x19, - 0xe0, 0x76, 0x83, 0x75, 0xd5, 0x18, 0x64, 0xcf, 0x19, 0xb0, 0x23, 0x9b, 0x90, 0xd3, 0x76, 0x93, - 0xc1, 0xe9, 0x27, 0x8d, 0x79, 0x79, 0xb6, 0xb3, 0x90, 0x8a, 0x79, 0xf3, 0xf6, 0xe7, 0x1b, 0x50, - 0xc0, 0xf8, 0xc7, 0x12, 0xac, 0x6c, 0xb1, 0x90, 0x4f, 0xf1, 0x04, 0xe7, 0x48, 0xc0, 0xd1, 0xdd, - 0xa8, 0xd2, 0x91, 0xce, 0xa3, 0xd3, 0x8b, 0x15, 0x78, 0xe8, 0x01, 0x34, 0x25, 0x4d, 0x31, 0xb2, - 0xf2, 0xaa, 0x1a, 0x49, 0x23, 0x50, 0x9b, 0xda, 0x27, 0xb0, 0x9a, 0xe1, 0x59, 0x84, 0x67, 0x57, - 0x61, 0x3e, 0xf6, 0x08, 0x11, 0xcb, 0xf5, 0x08, 0xb6, 0x6b, 0x69, 0xf7, 0xe1, 0x42, 0x9f, 0x98, - 0x3e, 0xc9, 0x2c, 0xf8, 0x0c, 0x63, 0x59, 0x99, 0x24, 0x39, 0x56, 0x54, 0x32, 0xfa, 0xb0, 0xdc, - 0x27, 0xae, 0xf7, 0x1a, 0x44, 0xe9, 0x4e, 0xa7, 0xcb, 0x76, 0x43, 0x22, 0x62, 0x32, 0xd9, 0xd4, - 0x56, 0x79, 0x51, 0x27, 0x3b, 0xdb, 0xc7, 0xb0, 0xc2, 0x6b, 0x2a, 0xaf, 0xb3, 0x88, 0x35, 0x59, - 0xd1, 0xc9, 0xd2, 0xdd, 0x86, 0xa5, 0xd8, 0x95, 0xc7, 0xe9, 0xe1, 0xed, 0x64, 0x7a, 0xb8, 0x9a, - 0xd5, 0x71, 0x22, 0x3b, 0xfc, 0xab, 0xb2, 0xe2, 0x30, 0x0b, 0x92, 0xc3, 0xcd, 0x64, 0x72, 0x78, - 0xa9, 0x80, 0x64, 0x22, 0x37, 0xcc, 0x5a, 0x64, 0x25, 0xc7, 0x22, 0xf5, 0x4c, 0x06, 0x39, 0x9d, - 0x2a, 0x66, 0xa7, 0x78, 0xfb, 0xad, 0x24, 0x90, 0xbb, 0x3c, 0x81, 0x8c, 0xa6, 0x8e, 0xea, 0x5c, - 0x77, 0x53, 0x09, 0x64, 0xbb, 0x88, 0xcd, 0x28, 0x7f, 0xfc, 0xf3, 0x69, 0xa8, 0x45, 0x7d, 0x19, - 0xc1, 0x66, 0x85, 0x54, 0xce, 0x11, 0x92, 0x7a, 0x7e, 0x55, 0x5e, 0xe7, 0xfc, 0x9a, 0x7e, 0xd5, - 0xf9, 0x75, 0x11, 0x6a, 0xec, 0xc3, 0xf0, 0xf1, 0xb1, 0x38, 0x8f, 0xaa, 0x0c, 0xa0, 0xe3, 0xe3, - 0xd8, 0xa0, 0x66, 0xcf, 0x62, 0x50, 0xa9, 0x4c, 0x75, 0x2e, 0x9d, 0xa9, 0xde, 0x8b, 0x4e, 0x18, - 0x7e, 0x16, 0xad, 0x67, 0xc9, 0xe5, 0x9e, 0x2d, 0x3b, 0xc9, 0xb3, 0x85, 0x1f, 0x4f, 0xd7, 0x72, - 0x06, 0xbf, 0xb1, 0x79, 0xea, 0x13, 0x9e, 0xa7, 0xaa, 0x56, 0x25, 0x1c, 0xe1, 0x26, 0x40, 0xb4, - 0xe7, 0x65, 0xb2, 0x8a, 0xb2, 0x4b, 0xd3, 0x15, 0x2c, 0xea, 0x55, 0x12, 0xf2, 0x8f, 0x8b, 0xb1, - 0x67, 0xf0, 0x2a, 0xff, 0xa2, 0x46, 0x49, 0x05, 0xf5, 0xcc, 0x7b, 0x99, 0xd2, 0xc6, 0xd9, 0xac, - 0xee, 0x76, 0xb2, 0xb2, 0x71, 0x3e, 0x73, 0xc9, 0x14, 0x36, 0xd8, 0xa1, 0x6e, 0xfa, 0xa2, 0x9b, - 0xe7, 0xa4, 0x35, 0x01, 0xe9, 0x12, 0x1a, 0x4a, 0x1d, 0xdb, 0x8e, 0x1d, 0x9c, 0xf0, 0xfe, 0x59, - 0xd6, 0x0f, 0x12, 0xd4, 0x65, 0xb7, 0xda, 0xf8, 0x85, 0x4d, 0x8c, 0x81, 0x6b, 0x61, 0x66, 0x8c, - 0x33, 0x7a, 0x95, 0x02, 0xb6, 0x5c, 0x0b, 0xc7, 0x1b, 0xa4, 0x7a, 0xae, 0x0d, 0x52, 0x4b, 0x6d, - 0x90, 0x15, 0x98, 0xf5, 0xb1, 0x19, 0xb8, 0x8e, 0x48, 0x0c, 0x44, 0x8b, 0x9e, 0x15, 0x63, 0x1c, - 0x04, 0x74, 0x02, 0x11, 0xc0, 0x88, 0xa6, 0x12, 0x66, 0xcd, 0x17, 0x85, 0x59, 0x13, 0x0a, 0xa6, - 0xa9, 0x30, 0xab, 0x51, 0x14, 0x66, 0x9d, 0xa5, 0x5e, 0xaa, 0x04, 0x91, 0xcd, 0x89, 0x41, 0xa4, - 0x1a, 0x8e, 0x2d, 0x24, 0xc2, 0xb1, 0xdf, 0xe5, 0x9e, 0x7a, 0x0c, 0xab, 0x99, 0x5d, 0x20, 0x36, - 0xd5, 0xdd, 0x54, 0xc5, 0xb5, 0x5d, 0x24, 0xa0, 0xa8, 0xe0, 0xfa, 0xc7, 0x70, 0xe5, 0xd0, 0xb3, - 0x52, 0xa1, 0x8a, 0x48, 0xb4, 0xce, 0x1e, 0x21, 0xdc, 0x93, 0x51, 0x65, 0xf9, 0x8c, 0x39, 0x1c, - 0x47, 0xd7, 0x34, 0xd8, 0x28, 0x9e, 0x5d, 0x1c, 0xf9, 0x7f, 0x08, 0x0b, 0x3b, 0x2f, 0xf0, 0xa0, - 0x7f, 0xea, 0x0c, 0xce, 0xc1, 0x51, 0x0b, 0x2a, 0x83, 0xb1, 0x25, 0x4a, 0x19, 0xf4, 0x53, 0x8d, - 0x62, 0x2a, 0xc9, 0x28, 0xc6, 0x80, 0x56, 0x3c, 0x83, 0x90, 0xe4, 0x0a, 0x95, 0xa4, 0x45, 0x91, - 0x29, 0xf1, 0x79, 0x5d, 0xb4, 0x04, 0x1c, 0xfb, 0x3e, 0x5b, 0x2a, 0x87, 0x63, 0xdf, 0x4f, 0xee, - 0xb9, 0x4a, 0x72, 0xcf, 0x69, 0x7f, 0x53, 0x82, 0x3a, 0x9d, 0xe1, 0x3b, 0xf1, 0x2f, 0x62, 0xf9, - 0x4a, 0x1c, 0xcb, 0x47, 0x29, 0xc1, 0xb4, 0x9a, 0x12, 0xc4, 0x9c, 0xcf, 0x30, 0x70, 0x96, 0xf3, - 0xd9, 0x08, 0x8e, 0x7d, 0x5f, 0xdb, 0x80, 0x79, 0xce, 0x9b, 0x58, 0x79, 0x0b, 0x2a, 0xa1, 0x3f, - 0x92, 0xa6, 0x18, 0xfa, 0x23, 0xed, 0x2f, 0x4a, 0xd0, 0xe8, 0x12, 0x62, 0x0e, 0x4e, 0xce, 0xb1, - 0x80, 0x88, 0xb9, 0xb2, 0xca, 0x5c, 0x76, 0x11, 0x31, 0xbb, 0xd3, 0x05, 0xec, 0xce, 0x24, 0xd8, - 0xd5, 0xa0, 0x29, 0x79, 0x29, 0x64, 0xb8, 0x07, 0x68, 0xdf, 0xf5, 0xc9, 0x43, 0xd7, 0x7f, 0x6e, - 0xfa, 0xd6, 0xf9, 0xf2, 0x05, 0x04, 0xd3, 0xe2, 0xbd, 0x50, 0xe5, 0xc6, 0x8c, 0xce, 0xbe, 0xb5, - 0x77, 0x60, 0x29, 0x41, 0xaf, 0x70, 0xe2, 0x0f, 0xa1, 0xce, 0xdc, 0xa8, 0x88, 0x29, 0x6f, 0xa8, - 0x35, 0xd5, 0x49, 0xbe, 0x56, 0xeb, 0xc2, 0x22, 0x3d, 0x27, 0x19, 0x3c, 0xda, 0x78, 0x3f, 0x4c, - 0x45, 0x5e, 0xcb, 0xc9, 0xf1, 0xa9, 0xa8, 0xeb, 0x1f, 0x4a, 0x30, 0xc3, 0xe0, 0x99, 0x53, 0xed, - 0x22, 0xd4, 0x7c, 0xec, 0xb9, 0x06, 0x31, 0x87, 0xd1, 0x13, 0x2c, 0x0a, 0x38, 0x30, 0x87, 0x01, - 0x7b, 0x41, 0x46, 0x3b, 0x2d, 0x7b, 0x88, 0x03, 0x22, 0xdf, 0x61, 0xd5, 0x29, 0x6c, 0x9b, 0x83, - 0xa8, 0x48, 0x02, 0xfb, 0x8f, 0x78, 0x48, 0x35, 0xad, 0xb3, 0x6f, 0x74, 0x9d, 0xbf, 0x6e, 0x98, - 0x50, 0x00, 0x63, 0x4f, 0x1e, 0x3a, 0x50, 0x4d, 0xd5, 0xbc, 0xa2, 0xb6, 0xf6, 0x09, 0x20, 0x75, - 0xcd, 0x42, 0xa8, 0x6f, 0xc3, 0x2c, 0x13, 0x89, 0x8c, 0x09, 0x9a, 0xc9, 0x45, 0xeb, 0xa2, 0x57, - 0xfb, 0x0c, 0x10, 0x97, 0x62, 0x22, 0x0e, 0x38, 0xbb, 0xc4, 0x3f, 0x86, 0xa5, 0xc4, 0xf8, 0xe8, - 0x32, 0x3b, 0x41, 0x20, 0x3d, 0xbb, 0x18, 0xfc, 0xeb, 0x12, 0x40, 0x37, 0x24, 0x27, 0xa2, 0xd8, - 0xa2, 0xae, 0xb2, 0x94, 0x5c, 0x25, 0xed, 0xf3, 0xcc, 0x20, 0x78, 0xee, 0xfa, 0x32, 0xd0, 0x8d, - 0xda, 0xac, 0x50, 0x12, 0x92, 0x13, 0x59, 0xe0, 0xa5, 0xdf, 0xe8, 0x3a, 0x34, 0xf9, 0xcb, 0x39, - 0xc3, 0xb4, 0x2c, 0x1f, 0x07, 0x81, 0xa8, 0xf4, 0x36, 0x38, 0xb4, 0xcb, 0x81, 0x14, 0xcd, 0xb6, - 0xb0, 0x43, 0x6c, 0x72, 0x6a, 0x10, 0xf7, 0x1b, 0xec, 0x88, 0x10, 0xb6, 0x21, 0xa1, 0x07, 0x14, - 0x48, 0xd1, 0x7c, 0x3c, 0xb4, 0x03, 0xe2, 0x4b, 0x34, 0x59, 0x79, 0x14, 0x50, 0x86, 0xa6, 0xfd, - 0xb2, 0x04, 0xad, 0xfd, 0x70, 0x34, 0xe2, 0x8b, 0x3c, 0xaf, 0x2c, 0xd1, 0x3b, 0x62, 0x1d, 0xe5, - 0x94, 0x35, 0xc4, 0x22, 0x12, 0x8b, 0xfb, 0xee, 0xa9, 0xf5, 0x5d, 0x58, 0x54, 0x18, 0x15, 0x4a, - 0x4b, 0x44, 0x2a, 0xa5, 0x64, 0xa4, 0x42, 0x0d, 0x85, 0x67, 0x93, 0xaf, 0xb7, 0x38, 0xed, 0x02, - 0x2c, 0x25, 0xc6, 0x8b, 0x63, 0xe9, 0x16, 0x34, 0xc4, 0x85, 0xb2, 0x30, 0x82, 0x35, 0xa8, 0x52, - 0xf7, 0x32, 0xb0, 0x2d, 0x59, 0xd9, 0x9f, 0xf3, 0x5c, 0x6b, 0xcb, 0xb6, 0x7c, 0xad, 0x07, 0x0d, - 0x9d, 0x93, 0x17, 0xb8, 0x9f, 0x42, 0x53, 0x5c, 0x3f, 0x1b, 0x89, 0x67, 0x18, 0x71, 0x19, 0x3a, - 0x41, 0x5b, 0x6f, 0x38, 0x6a, 0x53, 0xfb, 0x39, 0x74, 0xf8, 0xb1, 0x99, 0xa0, 0x2a, 0x97, 0xf6, - 0x29, 0xc8, 0x97, 0x9d, 0x45, 0xc4, 0x93, 0xc3, 0x1a, 0xbe, 0xda, 0xd4, 0x2e, 0xc3, 0xc5, 0x5c, - 0xe2, 0x62, 0xdd, 0x1e, 0xb4, 0xe2, 0x0e, 0xcb, 0x96, 0x17, 0x1a, 0xec, 0xa2, 0xa2, 0xa4, 0x5c, - 0x54, 0xac, 0x44, 0xa1, 0x48, 0x59, 0xfa, 0x6f, 0x16, 0x72, 0xc7, 0x81, 0x63, 0xa5, 0x28, 0x70, - 0x9c, 0x4e, 0x04, 0x8e, 0xda, 0x97, 0x91, 0xf4, 0x44, 0xd4, 0xfe, 0x11, 0x4b, 0x1d, 0xf8, 0xdc, - 0xd2, 0x4d, 0xac, 0xe5, 0x2c, 0x8e, 0x63, 0xe8, 0x0a, 0xb2, 0xb6, 0x00, 0x8d, 0x84, 0xc3, 0xd0, - 0x1e, 0x40, 0x33, 0xe5, 0x01, 0xee, 0xa4, 0x62, 0xa8, 0x8c, 0xd8, 0x52, 0x11, 0xd4, 0xb2, 0x70, - 0x44, 0x0f, 0x83, 0x5d, 0xe7, 0xd8, 0x95, 0x74, 0xaf, 0x41, 0xfd, 0xb0, 0xe8, 0xa1, 0xe3, 0xb4, - 0xbc, 0x29, 0x7b, 0x07, 0x16, 0xfb, 0xc4, 0xf5, 0xcd, 0x21, 0xde, 0x65, 0xbb, 0xf6, 0xd8, 0xe6, - 0x37, 0x41, 0x61, 0x18, 0xf9, 0x6f, 0xf6, 0xad, 0xfd, 0x7b, 0x09, 0x16, 0x1e, 0xda, 0x23, 0x1c, - 0x9c, 0x06, 0x04, 0x8f, 0x0f, 0x59, 0x3c, 0x7d, 0x09, 0x6a, 0x94, 0x9b, 0x80, 0x98, 0x63, 0x4f, - 0xde, 0xa4, 0x45, 0x00, 0x2a, 0xa3, 0x80, 0x93, 0x96, 0x19, 0xb6, 0x9a, 0xcb, 0x64, 0x66, 0xa5, - 0xf9, 0x85, 0x00, 0xa1, 0xf7, 0x01, 0xc2, 0x00, 0x5b, 0xe2, 0xf6, 0xac, 0x92, 0x3a, 0x7a, 0x0e, - 0xd5, 0x3b, 0x0e, 0x8a, 0xc7, 0xaf, 0xd2, 0x3e, 0x80, 0xba, 0xed, 0xb8, 0x16, 0x66, 0x77, 0x1c, - 0x96, 0xc8, 0xbe, 0xf3, 0x47, 0x01, 0x47, 0x3c, 0x0c, 0xb0, 0xa5, 0xfd, 0x81, 0xf0, 0xc2, 0x52, - 0x78, 0x42, 0x07, 0x3b, 0xb0, 0xc8, 0x37, 0xf4, 0x71, 0xb4, 0x68, 0xa9, 0xe8, 0x38, 0xa4, 0x4d, - 0x09, 0x44, 0x6f, 0xd9, 0xe2, 0x54, 0x94, 0x23, 0xb4, 0xfb, 0x70, 0x21, 0x11, 0xf7, 0x9e, 0x27, - 0x5d, 0x7c, 0x94, 0xca, 0x35, 0x63, 0x03, 0x11, 0xc9, 0x9e, 0xb4, 0x8f, 0x82, 0x64, 0x2f, 0xe0, - 0xc9, 0x5e, 0xa0, 0xe9, 0xb0, 0x96, 0x48, 0x81, 0x13, 0x8c, 0x7c, 0x90, 0x3a, 0xe2, 0x2f, 0x17, - 0x10, 0x4b, 0x9d, 0xf5, 0xff, 0x53, 0x82, 0xe5, 0x3c, 0x84, 0xd7, 0x2c, 0xb6, 0xfc, 0xa4, 0xe0, - 0x4d, 0xc3, 0xdd, 0x89, 0xdc, 0xfc, 0x56, 0xca, 0x52, 0x8f, 0xa1, 0x93, 0x27, 0xbd, 0xac, 0x2a, - 0x2a, 0x67, 0x50, 0xc5, 0xff, 0x96, 0x95, 0xf2, 0x61, 0x97, 0x10, 0xdf, 0x3e, 0x0a, 0xa9, 0xf1, - 0x7e, 0x5f, 0x65, 0x80, 0x07, 0x51, 0x8a, 0xcb, 0xe5, 0x77, 0x23, 0x3b, 0x2a, 0x9e, 0x35, 0x37, - 0xcd, 0xdd, 0x4b, 0xa6, 0xb9, 0xbc, 0x30, 0x78, 0x7b, 0x22, 0x99, 0x37, 0xb6, 0xf6, 0xf3, 0xb2, - 0x04, 0xcd, 0xa4, 0x1e, 0xd0, 0x27, 0x00, 0x66, 0xc4, 0xb9, 0x30, 0xf9, 0x4b, 0x93, 0x56, 0xa7, - 0x2b, 0xf8, 0xe8, 0x1a, 0x54, 0x06, 0x5e, 0x28, 0x34, 0x12, 0xdf, 0x10, 0x6d, 0x79, 0x21, 0x77, - 0x00, 0xb4, 0x97, 0x06, 0xcd, 0xfc, 0xa6, 0x3f, 0xe3, 0xb9, 0x9e, 0x32, 0x30, 0x47, 0x15, 0x38, - 0xe8, 0x73, 0x68, 0x3e, 0xf7, 0x6d, 0x62, 0x1e, 0x8d, 0xb0, 0x31, 0x32, 0x4f, 0xb1, 0x2f, 0x3c, - 0x57, 0xb1, 0x97, 0x69, 0x48, 0xfc, 0x27, 0x14, 0x5d, 0x0b, 0xa1, 0x2a, 0xe7, 0x7f, 0x85, 0x47, - 0x7e, 0x0c, 0xab, 0x21, 0x45, 0x33, 0xd8, 0x6b, 0x03, 0xc7, 0x74, 0x5c, 0x23, 0xc0, 0xf4, 0x68, - 0x92, 0x2f, 0xfc, 0xf2, 0xbd, 0xe5, 0x32, 0x1b, 0xb4, 0xe5, 0xfa, 0xb8, 0x67, 0x3a, 0x6e, 0x9f, - 0x8f, 0xd0, 0xc6, 0x50, 0x57, 0x96, 0xf3, 0x8a, 0x99, 0x1f, 0xc0, 0xa2, 0xbc, 0x7b, 0x0b, 0x30, - 0x11, 0x7e, 0x7d, 0xd2, 0x9c, 0x0b, 0x02, 0xbd, 0x8f, 0x09, 0xf3, 0xee, 0xb7, 0x2e, 0x41, 0x55, - 0xfe, 0xc9, 0x02, 0xcd, 0x41, 0xe5, 0x60, 0x6b, 0xbf, 0x35, 0x45, 0x3f, 0x0e, 0xb7, 0xf7, 0x5b, - 0xa5, 0x5b, 0x63, 0x68, 0xa5, 0xff, 0x60, 0x80, 0x56, 0x61, 0x69, 0x5f, 0xdf, 0xdb, 0xef, 0x3e, - 0xea, 0x1e, 0xec, 0xee, 0xf5, 0x8c, 0x7d, 0x7d, 0xf7, 0xab, 0xee, 0xc1, 0x4e, 0x6b, 0x0a, 0x5d, - 0x85, 0xcb, 0x6a, 0xc7, 0xef, 0xef, 0xf5, 0x0f, 0x8c, 0x83, 0x3d, 0x63, 0x6b, 0xaf, 0x77, 0xd0, - 0xdd, 0xed, 0xed, 0xe8, 0xad, 0x12, 0xba, 0x0c, 0x6b, 0x2a, 0xca, 0x17, 0xbb, 0xdb, 0xbb, 0xfa, - 0xce, 0x16, 0xfd, 0xee, 0x3e, 0x69, 0x95, 0x6f, 0xdd, 0x87, 0x85, 0xd4, 0x83, 0x21, 0xb4, 0x08, - 0x8d, 0x7e, 0xb7, 0xb7, 0xfd, 0xc5, 0xde, 0x4f, 0x0d, 0x7d, 0xa7, 0xbb, 0xfd, 0xb3, 0xd6, 0x14, - 0x5a, 0x86, 0x96, 0x04, 0xf5, 0xf6, 0x0e, 0x38, 0xb4, 0x74, 0xeb, 0x9b, 0x94, 0x49, 0x62, 0x74, - 0x01, 0x16, 0xa3, 0xb9, 0x8d, 0x2d, 0x7d, 0xa7, 0x7b, 0xb0, 0xb3, 0xdd, 0x9a, 0x4a, 0x82, 0xf5, - 0xc3, 0x5e, 0x6f, 0xb7, 0xf7, 0xa8, 0x55, 0xa2, 0x54, 0x63, 0xf0, 0xce, 0x4f, 0x77, 0x29, 0x72, - 0x39, 0x89, 0x7c, 0xd8, 0x7b, 0xdc, 0xdb, 0xfb, 0x49, 0xaf, 0x55, 0xd9, 0xfc, 0xb7, 0x06, 0x34, - 0x65, 0xcc, 0x80, 0x7d, 0x76, 0x21, 0xfc, 0x19, 0xcc, 0xc9, 0xbf, 0xdb, 0xc4, 0xce, 0x2a, 0xf9, - 0xdf, 0xa0, 0x4e, 0x3b, 0xdb, 0x21, 0x62, 0xaf, 0x29, 0xb4, 0xcf, 0x62, 0x21, 0xe5, 0x71, 0xd6, - 0x65, 0x35, 0x3a, 0xc9, 0xbc, 0xfe, 0xea, 0xac, 0x17, 0x75, 0x47, 0x14, 0xfb, 0x34, 0x00, 0x52, - 0x1f, 0xd6, 0xa2, 0x75, 0x35, 0x4c, 0xc8, 0x3e, 0xd8, 0xed, 0x5c, 0x29, 0xec, 0x8f, 0x88, 0xfe, - 0x0c, 0x5a, 0xe9, 0x27, 0xb5, 0x28, 0x2e, 0x0a, 0x15, 0x3c, 0xd7, 0xed, 0x5c, 0x9d, 0x80, 0xa1, - 0x92, 0xce, 0x3c, 0x4b, 0xdd, 0x28, 0x7e, 0x58, 0x98, 0x21, 0x5d, 0xf4, 0x5a, 0x91, 0x8b, 0x22, - 0xf9, 0xa8, 0x0a, 0xa9, 0x8f, 0x41, 0x73, 0x1e, 0xd7, 0x29, 0xa2, 0xc8, 0x7f, 0x8d, 0xa5, 0x4d, - 0xa1, 0xaf, 0x60, 0x21, 0x75, 0x17, 0x88, 0xe2, 0x51, 0xf9, 0x37, 0x9b, 0x9d, 0x8d, 0x62, 0x84, - 0xa4, 0xde, 0xd4, 0x9b, 0xbe, 0x84, 0xde, 0x72, 0xae, 0x0f, 0x13, 0x7a, 0xcb, 0xbd, 0x22, 0x64, - 0xe6, 0x95, 0xb8, 0xcf, 0x53, 0xcc, 0x2b, 0xef, 0xf2, 0xb0, 0xb3, 0x5e, 0xd4, 0xad, 0x2e, 0x3f, - 0x75, 0x97, 0xa7, 0x2c, 0x3f, 0xff, 0x8a, 0xb0, 0xb3, 0x51, 0x8c, 0x90, 0xd6, 0x55, 0x7c, 0xb1, - 0x90, 0xd2, 0x55, 0xe6, 0x1e, 0x2b, 0xa5, 0xab, 0xec, 0x8d, 0x84, 0xd0, 0x55, 0xea, 0x86, 0xe0, - 0x4a, 0x61, 0x05, 0x35, 0xab, 0xab, 0xfc, 0xa2, 0xac, 0x36, 0x85, 0xbe, 0x85, 0x76, 0x51, 0x99, - 0x13, 0xc5, 0x31, 0xc2, 0x2b, 0xea, 0xb0, 0x9d, 0x9b, 0x67, 0xc0, 0x8c, 0xa6, 0xec, 0x42, 0x55, - 0xd6, 0x34, 0x51, 0xec, 0x50, 0x52, 0x85, 0xd4, 0xce, 0x5a, 0x4e, 0x4f, 0x44, 0xe2, 0x03, 0x98, - 0xa6, 0x50, 0xb4, 0x9c, 0x40, 0x92, 0x43, 0x2f, 0xa4, 0xa0, 0xd1, 0xb0, 0x8f, 0x61, 0x96, 0x17, - 0xe8, 0x50, 0x9c, 0x39, 0x25, 0xaa, 0x87, 0x9d, 0xd5, 0x0c, 0x3c, 0x1a, 0xfc, 0x25, 0xff, 0xd7, - 0x9f, 0xa8, 0xb4, 0xa1, 0x8b, 0x89, 0x3f, 0x88, 0x24, 0xeb, 0x79, 0x9d, 0x4b, 0xf9, 0x9d, 0xaa, - 0x89, 0xa4, 0xc2, 0x8f, 0xf5, 0xa2, 0xf8, 0x30, 0x63, 0x22, 0xf9, 0xf1, 0xa6, 0x36, 0x85, 0x0c, - 0x5e, 0xb4, 0x4a, 0x11, 0xd6, 0xf2, 0x6d, 0x2b, 0x41, 0xfc, 0xda, 0x44, 0x9c, 0x68, 0x82, 0x23, - 0x58, 0xca, 0x49, 0xbf, 0xd1, 0xb5, 0x94, 0xf2, 0xf3, 0x32, 0xff, 0xce, 0x5b, 0x93, 0x91, 0x54, - 0x15, 0x09, 0xf3, 0x5e, 0x51, 0x7d, 0x82, 0x62, 0xd5, 0xab, 0x19, 0xb8, 0x1c, 0xbc, 0xf9, 0xa7, - 0x15, 0x98, 0xe7, 0x45, 0x12, 0x71, 0xa6, 0x3d, 0x02, 0x88, 0xeb, 0x78, 0xa8, 0x93, 0x58, 0x66, - 0xa2, 0xa0, 0xd9, 0xb9, 0x98, 0xdb, 0xa7, 0x2a, 0x5f, 0x29, 0xc9, 0x29, 0xca, 0xcf, 0x16, 0xfa, - 0x14, 0xe5, 0xe7, 0x54, 0xf1, 0xb4, 0x29, 0xb4, 0x0d, 0xb5, 0xa8, 0x4e, 0x84, 0x94, 0xf2, 0x52, - 0xaa, 0xc8, 0xd5, 0xe9, 0xe4, 0x75, 0xa9, 0x1c, 0x29, 0xb5, 0x1f, 0x85, 0xa3, 0x6c, 0x45, 0x49, - 0xe1, 0x28, 0xaf, 0x5c, 0x14, 0xaf, 0x8e, 0xa7, 0xba, 0xe9, 0xd5, 0x25, 0xaa, 0x07, 0xe9, 0xd5, - 0x25, 0xb3, 0x63, 0x6d, 0xea, 0x8b, 0x4b, 0xbf, 0xfa, 0xcd, 0x7a, 0xe9, 0x3f, 0x7e, 0xb3, 0x3e, - 0xf5, 0x27, 0x2f, 0xd7, 0x4b, 0xbf, 0x7a, 0xb9, 0x5e, 0xfa, 0xd7, 0x97, 0xeb, 0xa5, 0xff, 0x7a, - 0xb9, 0x5e, 0xfa, 0xc5, 0x7f, 0xaf, 0x4f, 0x1d, 0xcd, 0xb2, 0xbf, 0xc1, 0xbe, 0xff, 0xff, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x61, 0x12, 0x07, 0xa4, 0xba, 0x3c, 0x00, 0x00, + // 4392 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0xcd, 0x6f, 0x1c, 0x47, + 0x76, 0xe7, 0xcc, 0xf0, 0x63, 0xe6, 0x0d, 0x67, 0x38, 0x2c, 0x51, 0xe4, 0x70, 0x24, 0x51, 0x54, + 0xcb, 0x92, 0x25, 0xed, 0x4a, 0x96, 0xe9, 0xb5, 0x14, 0xcb, 0xb6, 0xe4, 0x31, 0x49, 0x29, 0xb4, + 0x24, 0x92, 0xdb, 0x43, 0x7a, 0x6d, 0x6c, 0x80, 0x4e, 0x73, 0xba, 0x38, 0x6c, 0x7b, 0xa6, 0xab, + 0xdd, 0x1f, 0x92, 0x18, 0xe4, 0x90, 0x5c, 0x82, 0x20, 0x40, 0x80, 0xcd, 0x31, 0x39, 0xe5, 0x10, + 0x60, 0x91, 0x4b, 0x10, 0xe4, 0x10, 0xe4, 0x0f, 0x08, 0x92, 0xbd, 0x2c, 0x10, 0x20, 0x40, 0x90, + 0xdc, 0xb2, 0xca, 0x21, 0x87, 0x00, 0xf9, 0x1b, 0x16, 0xf5, 0xd5, 0x5d, 0xfd, 0x35, 0x22, 0x65, + 0xef, 0x5a, 0xa7, 0xe9, 0x7a, 0xf5, 0xea, 0xd5, 0xab, 0xaa, 0x57, 0xaf, 0xde, 0xfb, 0x55, 0x0d, + 0xd4, 0x4c, 0xd7, 0xbe, 0xe5, 0x7a, 0x24, 0x20, 0x68, 0xc6, 0x0b, 0x9d, 0xc0, 0x1e, 0xe1, 0xce, + 0xcd, 0x81, 0x1d, 0x1c, 0x85, 0x07, 0xb7, 0xfa, 0x64, 0xf4, 0xce, 0x80, 0x0c, 0xc8, 0x3b, 0xac, + 0xfe, 0x20, 0x3c, 0x64, 0x25, 0x56, 0x60, 0x5f, 0xbc, 0x9d, 0x76, 0x03, 0x9a, 0x9f, 0x63, 0xcf, + 0xb7, 0x89, 0xa3, 0xe3, 0x6f, 0x42, 0xec, 0x07, 0xa8, 0x0d, 0x33, 0xcf, 0x38, 0xa5, 0x5d, 0x5a, + 0x2d, 0x5d, 0xab, 0xe9, 0xb2, 0xa8, 0xfd, 0xbc, 0x04, 0x73, 0x11, 0xb3, 0xef, 0x12, 0xc7, 0xc7, + 0xc5, 0xdc, 0xe8, 0x12, 0xcc, 0x0a, 0x9d, 0x0c, 0xc7, 0x1c, 0xe1, 0x76, 0x99, 0x55, 0xd7, 0x05, + 0x6d, 0xdb, 0x1c, 0x61, 0xf4, 0x36, 0xcc, 0x49, 0x16, 0x29, 0xa4, 0xc2, 0xb8, 0x9a, 0x82, 0x2c, + 0x7a, 0x43, 0xb7, 0xe0, 0x8c, 0x64, 0x34, 0x5d, 0x3b, 0x62, 0x9e, 0x64, 0xcc, 0xf3, 0xa2, 0xaa, + 0xeb, 0xda, 0x82, 0x5f, 0xfb, 0x29, 0xd4, 0x36, 0xb6, 0x7b, 0xeb, 0xc4, 0x39, 0xb4, 0x07, 0x54, + 0x45, 0x1f, 0x7b, 0xb4, 0x4d, 0xbb, 0xb4, 0x5a, 0xa1, 0x2a, 0x8a, 0x22, 0xea, 0x40, 0xd5, 0xc7, + 0xa6, 0xd7, 0x3f, 0xc2, 0x7e, 0xbb, 0xcc, 0xaa, 0xa2, 0x32, 0x6d, 0x45, 0xdc, 0xc0, 0x26, 0x8e, + 0xdf, 0xae, 0xf0, 0x56, 0xa2, 0xa8, 0xfd, 0x65, 0x09, 0xea, 0xbb, 0xc4, 0x0b, 0x9e, 0x9a, 0xae, + 0x6b, 0x3b, 0x03, 0x74, 0x13, 0xaa, 0x6c, 0x2e, 0xfb, 0x64, 0xc8, 0xe6, 0xa0, 0xb9, 0x36, 0x7f, + 0x4b, 0xa8, 0x74, 0x6b, 0x57, 0x54, 0xe8, 0x11, 0x0b, 0xba, 0x02, 0xcd, 0x3e, 0x71, 0x02, 0xd3, + 0x76, 0xb0, 0x67, 0xb8, 0xc4, 0x0b, 0xd8, 0xcc, 0x4c, 0xe9, 0x8d, 0x88, 0x4a, 0x85, 0xa3, 0x73, + 0x50, 0x3b, 0x22, 0x7e, 0xc0, 0x39, 0x2a, 0x8c, 0xa3, 0x4a, 0x09, 0xac, 0x72, 0x09, 0x66, 0x58, + 0xa5, 0xed, 0x8a, 0x39, 0x98, 0xa6, 0xc5, 0x2d, 0x57, 0xfb, 0x65, 0x09, 0xa6, 0x9e, 0x92, 0xd0, + 0x09, 0x52, 0xdd, 0x98, 0xc1, 0x91, 0x58, 0x1f, 0xa5, 0x1b, 0x33, 0x38, 0x8a, 0xbb, 0xa1, 0x1c, + 0x7c, 0x89, 0x78, 0x37, 0xb4, 0xb2, 0x03, 0x55, 0x0f, 0x9b, 0x16, 0x71, 0x86, 0xc7, 0x4c, 0x85, + 0xaa, 0x1e, 0x95, 0xe9, 0xda, 0xf9, 0x78, 0x68, 0x3b, 0xe1, 0x0b, 0xc3, 0xc3, 0x43, 0xf3, 0x00, + 0x0f, 0x99, 0x2a, 0x55, 0xbd, 0x29, 0xc8, 0x3a, 0xa7, 0xa2, 0x0f, 0xa1, 0xee, 0x7a, 0xc4, 0x35, + 0x07, 0x26, 0x9d, 0xbe, 0xf6, 0x14, 0x9b, 0xa1, 0xe5, 0x68, 0x86, 0x98, 0xb6, 0xbb, 0x31, 0x83, + 0xae, 0x72, 0x6b, 0x5f, 0xc1, 0x1c, 0xb5, 0x14, 0xdf, 0x35, 0xfb, 0x78, 0x87, 0xcd, 0x3f, 0xb5, + 0x2b, 0xa6, 0xb1, 0x83, 0x83, 0xe7, 0xc4, 0xfb, 0x9a, 0x0d, 0xab, 0xaa, 0xd7, 0x29, 0x6d, 0x9b, + 0x93, 0xd0, 0x32, 0x54, 0xf9, 0xa0, 0x6c, 0x8b, 0x8d, 0xa9, 0xaa, 0xb3, 0xe9, 0xda, 0xb5, 0xad, + 0xa8, 0xca, 0x76, 0xfb, 0x62, 0x48, 0x33, 0x7c, 0xea, 0xfa, 0x9a, 0x06, 0xb0, 0xe5, 0x04, 0x77, + 0x7e, 0xf4, 0xb9, 0x39, 0x0c, 0x31, 0x5a, 0x80, 0xa9, 0x67, 0xf4, 0x83, 0xc9, 0xaf, 0xe8, 0xbc, + 0xa0, 0xfd, 0x49, 0x05, 0xce, 0x3d, 0xa1, 0xa3, 0xeb, 0x99, 0x8e, 0x75, 0x40, 0x5e, 0xf4, 0x70, + 0x3f, 0xf4, 0xec, 0xe0, 0x78, 0x9d, 0x38, 0x01, 0x7e, 0x11, 0xa0, 0x4d, 0x98, 0x77, 0xa4, 0xbe, + 0x86, 0xb4, 0x1f, 0x2a, 0xa1, 0xbe, 0xd6, 0x8e, 0x86, 0x9c, 0x1a, 0x91, 0xde, 0x72, 0x92, 0x04, + 0x1f, 0x3d, 0x88, 0x27, 0x57, 0x0a, 0x29, 0x33, 0x21, 0x8b, 0x91, 0x90, 0xde, 0x26, 0xd3, 0x43, + 0x88, 0x90, 0x93, 0x2e, 0x05, 0xbc, 0x07, 0x74, 0xa3, 0x19, 0xa6, 0x6f, 0x84, 0x3e, 0xf6, 0xd8, + 0x48, 0xeb, 0x6b, 0x67, 0xa2, 0xc6, 0xf1, 0x38, 0xf5, 0x9a, 0x17, 0x3a, 0x5d, 0x7f, 0xdf, 0xc7, + 0x1e, 0xdb, 0x8e, 0x62, 0x79, 0x0d, 0x8f, 0x90, 0xe0, 0xd0, 0x97, 0x4b, 0x2a, 0xc9, 0x3a, 0xa3, + 0xa2, 0x77, 0xe0, 0x8c, 0x1f, 0xba, 0xee, 0x10, 0x8f, 0xb0, 0x13, 0x98, 0x43, 0x63, 0xe0, 0x91, + 0xd0, 0xf5, 0xdb, 0x53, 0xab, 0x95, 0x6b, 0x15, 0x1d, 0xa9, 0x55, 0x8f, 0x58, 0x0d, 0x5a, 0x01, + 0x70, 0x3d, 0xfb, 0x99, 0x3d, 0xc4, 0x03, 0x6c, 0xb5, 0xa7, 0x99, 0x50, 0x85, 0x82, 0x6e, 0xc3, + 0x82, 0x8f, 0xfb, 0x7d, 0x32, 0x72, 0x0d, 0xd7, 0x23, 0x87, 0xf6, 0x10, 0x73, 0x83, 0x9c, 0x61, + 0x06, 0x89, 0x44, 0xdd, 0x2e, 0xaf, 0xa2, 0xa6, 0xa9, 0xfd, 0xac, 0x0c, 0x67, 0xd9, 0x04, 0xec, + 0x12, 0x4b, 0xac, 0x85, 0xd8, 0xee, 0x97, 0xa1, 0xd1, 0x67, 0x0a, 0x19, 0xae, 0xe9, 0x61, 0x27, + 0x10, 0x76, 0x3f, 0xcb, 0x89, 0xbb, 0x8c, 0x86, 0x76, 0xa0, 0xe5, 0x8b, 0xa5, 0x33, 0xfa, 0x7c, + 0xed, 0xc4, 0x0c, 0xbf, 0x15, 0x4d, 0xd2, 0x98, 0x75, 0xd6, 0xe7, 0xfc, 0xcc, 0xc2, 0xcf, 0xf8, + 0xc7, 0x7e, 0x3f, 0x18, 0x72, 0x77, 0x51, 0x5f, 0xfb, 0x41, 0x52, 0x4e, 0x5a, 0xcd, 0x5b, 0x3d, + 0xce, 0xbd, 0xe9, 0x04, 0xde, 0xb1, 0x2e, 0xdb, 0x76, 0xee, 0xc1, 0xac, 0x5a, 0x81, 0x5a, 0x50, + 0xf9, 0x1a, 0x1f, 0x8b, 0x21, 0xd0, 0xcf, 0xd8, 0x2e, 0xf9, 0x66, 0xe5, 0x85, 0x7b, 0xe5, 0xdf, + 0x29, 0x69, 0x1e, 0xa0, 0xb8, 0x97, 0xa7, 0x38, 0x30, 0x2d, 0x33, 0x30, 0x11, 0x82, 0x49, 0xe6, + 0x7e, 0xb9, 0x08, 0xf6, 0x4d, 0xa5, 0x86, 0x62, 0x6b, 0xd4, 0x74, 0xfa, 0x89, 0xce, 0x43, 0x2d, + 0x32, 0x42, 0xe1, 0x83, 0x63, 0x02, 0xf5, 0x85, 0x66, 0x10, 0xe0, 0x91, 0x1b, 0x30, 0x83, 0x68, + 0xe8, 0xb2, 0xa8, 0xfd, 0xd3, 0x24, 0xb4, 0x32, 0x2b, 0x70, 0x17, 0xaa, 0x23, 0xd1, 0xbd, 0xb0, + 0xfd, 0x73, 0xb1, 0x43, 0xcc, 0x68, 0xa8, 0x47, 0xcc, 0xd4, 0xdf, 0xd0, 0xcd, 0xa8, 0x1c, 0x17, + 0x51, 0x99, 0x2e, 0xeb, 0x90, 0x0c, 0x0c, 0xcb, 0xf6, 0x70, 0x3f, 0x20, 0xde, 0xb1, 0xd0, 0x72, + 0x76, 0x48, 0x06, 0x1b, 0x92, 0x86, 0xde, 0x05, 0xb0, 0x1c, 0x9f, 0xae, 0xe8, 0xa1, 0x3d, 0x60, + 0xba, 0xd6, 0xd7, 0x50, 0xd4, 0x77, 0x74, 0x24, 0xe8, 0x35, 0xcb, 0xf1, 0x85, 0xb2, 0x1f, 0x40, + 0x83, 0xba, 0x58, 0x63, 0xc4, 0xbd, 0x39, 0xb7, 0xe2, 0xfa, 0xda, 0x82, 0xa2, 0x71, 0xe4, 0xea, + 0xf5, 0x59, 0x37, 0x2e, 0xf8, 0xe8, 0x63, 0x98, 0x66, 0x2e, 0xce, 0x6f, 0x4f, 0xb3, 0x36, 0x57, + 0x72, 0x46, 0x29, 0x56, 0xfb, 0x09, 0xe3, 0xe3, 0x8b, 0x2d, 0x1a, 0xa1, 0x27, 0x50, 0x37, 0x1d, + 0x87, 0x04, 0x26, 0xdf, 0xe0, 0x33, 0x4c, 0xc6, 0x8d, 0x62, 0x19, 0xdd, 0x98, 0x99, 0x0b, 0x52, + 0x9b, 0xa3, 0x1f, 0xc1, 0x14, 0xf3, 0x00, 0xed, 0x2a, 0x1b, 0xf5, 0xca, 0x78, 0xf3, 0xd3, 0x39, + 0x73, 0xe7, 0x03, 0xa8, 0x2b, 0xaa, 0x9d, 0xc6, 0xdc, 0x3a, 0xf7, 0xa1, 0x95, 0xd6, 0xe8, 0x54, + 0xe6, 0xba, 0x05, 0x0b, 0x7a, 0xe8, 0xc4, 0x8a, 0xc9, 0xf8, 0xe3, 0x5d, 0x98, 0x16, 0xeb, 0xc7, + 0x6d, 0x67, 0xb9, 0x70, 0x46, 0x74, 0xc1, 0xa8, 0x7d, 0x0c, 0x67, 0x53, 0xa2, 0x44, 0x74, 0xf2, + 0x16, 0x34, 0x5d, 0x62, 0x19, 0x3e, 0x27, 0x1b, 0xb6, 0x25, 0x9d, 0x81, 0x1b, 0xf1, 0x6e, 0x59, + 0xb4, 0x79, 0x2f, 0x20, 0x6e, 0x56, 0x95, 0x93, 0x35, 0x6f, 0xc3, 0x62, 0xba, 0x39, 0xef, 0x5e, + 0x7b, 0x00, 0x4b, 0x3a, 0x1e, 0x91, 0x67, 0xf8, 0x75, 0x45, 0x77, 0xa0, 0x9d, 0x15, 0x20, 0x84, + 0x7f, 0x09, 0x4b, 0x31, 0xb5, 0x17, 0x98, 0x41, 0xe8, 0x9f, 0x4a, 0xb8, 0x08, 0xdd, 0x0e, 0x88, + 0x8f, 0xe5, 0x21, 0x29, 0x8a, 0xda, 0x75, 0x55, 0xb4, 0x38, 0x54, 0x79, 0x0f, 0xa8, 0x09, 0x65, + 0xdb, 0x15, 0xe2, 0xca, 0xb6, 0xab, 0x3d, 0x80, 0x5a, 0x74, 0x9c, 0xa1, 0xb5, 0x38, 0x66, 0x2a, + 0xbf, 0xe2, 0xcc, 0x8b, 0xa2, 0xa9, 0xc7, 0x19, 0x3f, 0x2e, 0x7a, 0x5a, 0x03, 0x88, 0x3c, 0x90, + 0x3c, 0x43, 0x51, 0x56, 0x9e, 0xae, 0x70, 0x69, 0x7f, 0x93, 0x70, 0x47, 0x8a, 0xca, 0x56, 0xa4, + 0xb2, 0x95, 0x70, 0x4f, 0xe5, 0xd3, 0xb8, 0xa7, 0x5b, 0x30, 0xe5, 0x07, 0x66, 0xc0, 0x1d, 0x64, + 0x53, 0x19, 0x5c, 0xb2, 0x4b, 0xac, 0x73, 0x36, 0x74, 0x01, 0xa0, 0xef, 0x61, 0x33, 0xc0, 0x96, + 0x61, 0x72, 0xcf, 0x59, 0xd1, 0x6b, 0x82, 0xd2, 0x0d, 0xd0, 0x3d, 0x98, 0x91, 0x31, 0xcc, 0x14, + 0x53, 0x63, 0x35, 0x47, 0x60, 0x62, 0xf6, 0x75, 0xd9, 0x20, 0xde, 0xed, 0xd3, 0xe3, 0x77, 0xbb, + 0x68, 0xc7, 0x99, 0x15, 0x87, 0x35, 0x53, 0xe8, 0xb0, 0x78, 0x8b, 0x93, 0x38, 0xac, 0x6a, 0xa1, + 0xc3, 0x12, 0x32, 0xc6, 0x3a, 0xac, 0xef, 0xd3, 0xf5, 0xfc, 0x6b, 0x09, 0xda, 0xd9, 0xbd, 0x23, + 0x7c, 0xc6, 0xbb, 0x30, 0xed, 0x33, 0xca, 0x18, 0xff, 0x23, 0x9a, 0x08, 0x46, 0xf4, 0x00, 0x26, + 0x6d, 0xe7, 0x90, 0xb0, 0x1c, 0x42, 0x3d, 0xf9, 0x8b, 0xfa, 0xb8, 0xb5, 0xe5, 0x1c, 0x12, 0x3e, + 0x25, 0xac, 0x61, 0xe7, 0x2e, 0xd4, 0x22, 0xd2, 0xa9, 0x46, 0xf2, 0x10, 0x16, 0x52, 0xc6, 0xc7, + 0xa3, 0xd7, 0xc8, 0x54, 0x4b, 0x27, 0x32, 0x55, 0xed, 0xff, 0x4b, 0xea, 0xc6, 0x79, 0x68, 0x0f, + 0x03, 0xec, 0x65, 0x36, 0xce, 0x7b, 0x52, 0x28, 0xdf, 0x35, 0x17, 0x8a, 0x84, 0xf2, 0xc0, 0x52, + 0x6c, 0x82, 0x1e, 0x34, 0x99, 0xf9, 0x18, 0x3e, 0x1e, 0xb2, 0x53, 0x5a, 0xc4, 0x47, 0x3f, 0xcc, + 0x69, 0xcd, 0xfb, 0xe5, 0xb6, 0xd7, 0x13, 0xec, 0x7c, 0x9a, 0x1a, 0x43, 0x95, 0xd6, 0xf9, 0x04, + 0x50, 0x96, 0xe9, 0x54, 0x13, 0xf7, 0x19, 0x75, 0x3b, 0x34, 0x9b, 0xca, 0x39, 0x7e, 0x0e, 0x99, + 0x1a, 0x63, 0x96, 0x9f, 0xeb, 0xa9, 0x0b, 0x46, 0xed, 0xaf, 0x2b, 0x00, 0x71, 0xe5, 0x1b, 0xeb, + 0x6f, 0xee, 0x46, 0xbb, 0x9f, 0x87, 0x38, 0x17, 0x73, 0xe4, 0xe5, 0xee, 0xfb, 0x87, 0xc9, 0x7d, + 0xcf, 0x83, 0x9d, 0xb7, 0xf2, 0x5a, 0xbf, 0xb1, 0x3b, 0x7e, 0x1d, 0x16, 0xd3, 0xcb, 0x2d, 0xb6, + 0xfb, 0x75, 0x98, 0xb2, 0x03, 0x3c, 0xe2, 0xd8, 0x80, 0x9a, 0x23, 0x29, 0xbc, 0x9c, 0x43, 0xbb, + 0x04, 0xb5, 0xad, 0x91, 0x39, 0xc0, 0x3d, 0x17, 0xf7, 0x69, 0x5f, 0x36, 0x2d, 0x88, 0xfe, 0x79, + 0x41, 0x5b, 0x83, 0xea, 0x63, 0x7c, 0xcc, 0xf7, 0xe0, 0x09, 0xf5, 0xd3, 0xfe, 0xbc, 0x0c, 0x4b, + 0xcc, 0x6d, 0xaf, 0xcb, 0xcc, 0x5c, 0xc7, 0x3e, 0x09, 0xbd, 0x3e, 0xf6, 0xd9, 0x92, 0xba, 0xa1, + 0xe1, 0x62, 0xcf, 0x26, 0x96, 0x48, 0x45, 0x6b, 0x7d, 0x37, 0xdc, 0x65, 0x04, 0x9a, 0xbd, 0xd3, + 0xea, 0x6f, 0x42, 0x22, 0x6c, 0xab, 0xa2, 0x57, 0xfb, 0x6e, 0xf8, 0x63, 0x5a, 0x96, 0x6d, 0xfd, + 0x23, 0xd3, 0xc3, 0x3e, 0xb3, 0x21, 0xde, 0xb6, 0xc7, 0x08, 0xe8, 0x5d, 0x38, 0x3b, 0xc2, 0x23, + 0xe2, 0x1d, 0x1b, 0x43, 0x7b, 0x64, 0x07, 0x86, 0xed, 0x18, 0x07, 0xc7, 0x01, 0xf6, 0x85, 0xe1, + 0x20, 0x5e, 0xf9, 0x84, 0xd6, 0x6d, 0x39, 0x9f, 0xd2, 0x1a, 0xa4, 0x41, 0x83, 0x90, 0x91, 0xe1, + 0xf7, 0x89, 0x87, 0x0d, 0xd3, 0xfa, 0x8a, 0x9d, 0x5b, 0x15, 0xbd, 0x4e, 0xc8, 0xa8, 0x47, 0x69, + 0x5d, 0xeb, 0x2b, 0x74, 0x11, 0xea, 0x7d, 0x37, 0xf4, 0x71, 0x60, 0xd0, 0x1f, 0x76, 0x3e, 0xd5, + 0x74, 0xe0, 0xa4, 0x75, 0x37, 0xf4, 0x15, 0x86, 0x11, 0x9d, 0xf6, 0x19, 0x95, 0xe1, 0x29, 0x9d, + 0x66, 0x13, 0x1a, 0x89, 0xe4, 0x96, 0xa6, 0x30, 0x2c, 0x8b, 0x15, 0x29, 0x0c, 0xfd, 0xa6, 0x34, + 0x8f, 0x0c, 0xe5, 0x4c, 0xb2, 0x6f, 0x4a, 0x0b, 0x8e, 0x5d, 0x99, 0xbf, 0xb0, 0x6f, 0x3a, 0xe5, + 0x43, 0xfc, 0x4c, 0x80, 0x13, 0x35, 0x9d, 0x17, 0x34, 0x0b, 0x60, 0xdd, 0x74, 0xcd, 0x03, 0x7b, + 0x68, 0x07, 0xc7, 0xe8, 0x3a, 0xb4, 0x4c, 0xcb, 0x32, 0xfa, 0x92, 0x62, 0x63, 0x89, 0x14, 0xcd, + 0x99, 0x96, 0xb5, 0xae, 0x90, 0xd1, 0x0f, 0x60, 0xde, 0xf2, 0x88, 0x9b, 0xe4, 0xe5, 0xd0, 0x51, + 0x8b, 0x56, 0xa8, 0xcc, 0xda, 0x3f, 0x4e, 0xc2, 0x85, 0xe4, 0xc2, 0xa6, 0xe1, 0x82, 0xbb, 0x30, + 0x9b, 0xea, 0x35, 0x99, 0xa7, 0xc7, 0x4a, 0xea, 0x09, 0xc6, 0x54, 0x42, 0x5d, 0xce, 0x24, 0xd4, + 0xb9, 0x38, 0x44, 0xe5, 0xbb, 0xc0, 0x21, 0x26, 0xbf, 0x0d, 0x0e, 0x31, 0x75, 0x22, 0x1c, 0xe2, + 0x2a, 0x83, 0x05, 0x65, 0x23, 0x96, 0x0d, 0x72, 0x33, 0x6a, 0x44, 0x3c, 0x8e, 0x84, 0x0f, 0x53, + 0x78, 0xc5, 0xcc, 0x69, 0xf0, 0x8a, 0x6a, 0x21, 0x5e, 0x41, 0x2d, 0xc2, 0x75, 0x4d, 0x6f, 0x44, + 0x3c, 0x09, 0x48, 0xb4, 0x6b, 0x4c, 0x85, 0x39, 0x49, 0x17, 0x60, 0x44, 0x21, 0x74, 0x01, 0x45, + 0xd0, 0x05, 0x5a, 0x85, 0x59, 0x87, 0x18, 0x0e, 0x7e, 0x6e, 0xd0, 0x05, 0xf3, 0xdb, 0x75, 0xbe, + 0x7a, 0x0e, 0xd9, 0xc6, 0xcf, 0x77, 0x29, 0x45, 0xfb, 0xdb, 0x12, 0x2c, 0x24, 0x0d, 0x47, 0x24, + 0xab, 0xf7, 0xa1, 0xe6, 0x49, 0xdf, 0x20, 0x8c, 0x65, 0x35, 0x19, 0xfa, 0x65, 0x7d, 0x88, 0x1e, + 0x37, 0x41, 0x3f, 0x2e, 0x84, 0x3d, 0xae, 0x16, 0x88, 0x79, 0x15, 0xf0, 0xa1, 0x75, 0x61, 0x3e, + 0x62, 0x1e, 0x0b, 0x3a, 0x28, 0x20, 0x42, 0x39, 0x09, 0x22, 0x38, 0x30, 0xbd, 0x81, 0x9f, 0xd9, + 0x7d, 0xfc, 0x9d, 0x80, 0x96, 0xab, 0x50, 0x77, 0xb1, 0x37, 0xb2, 0x7d, 0x3f, 0x32, 0xfa, 0x9a, + 0xae, 0x92, 0xb4, 0xff, 0x9a, 0x82, 0xb9, 0xf4, 0xcc, 0xde, 0xc9, 0x60, 0x16, 0x9d, 0x78, 0x17, + 0xa6, 0xc7, 0xa7, 0x9c, 0xd1, 0xd7, 0xe4, 0x31, 0x50, 0x4e, 0x25, 0x28, 0xd1, 0x49, 0x21, 0x8e, + 0x06, 0x3a, 0xfe, 0x3e, 0x19, 0x8d, 0x4c, 0xc7, 0x92, 0x80, 0xb2, 0x28, 0xd2, 0xd9, 0x32, 0xbd, + 0x01, 0xdd, 0x5a, 0x94, 0xcc, 0xbe, 0xa9, 0x97, 0xa4, 0x81, 0xbe, 0xed, 0x30, 0xc8, 0x83, 0x6d, + 0x9c, 0x9a, 0x0e, 0x82, 0xb4, 0x61, 0x7b, 0xe8, 0x0a, 0x4c, 0x62, 0xe7, 0x99, 0x3c, 0x8d, 0x63, + 0xc4, 0x59, 0x1e, 0x3f, 0x3a, 0xab, 0x46, 0x57, 0x61, 0x7a, 0x44, 0x42, 0x27, 0x90, 0x21, 0x7f, + 0x33, 0x09, 0xbc, 0xea, 0xa2, 0x16, 0x5d, 0x87, 0x19, 0x8b, 0xad, 0x81, 0x8c, 0xeb, 0xe7, 0x62, + 0xd8, 0x84, 0xd1, 0x75, 0x59, 0x8f, 0x3e, 0x8a, 0xe2, 0x88, 0x5a, 0x2a, 0x12, 0x48, 0x4d, 0x6a, + 0x6e, 0x30, 0xf1, 0x38, 0x19, 0x4c, 0x00, 0x13, 0x71, 0xbd, 0x50, 0xc4, 0x78, 0xd0, 0x63, 0x19, + 0xaa, 0x43, 0x32, 0xe0, 0x76, 0x50, 0xe7, 0xd7, 0x0f, 0x43, 0x32, 0x60, 0x66, 0xb0, 0x40, 0x83, + 0x27, 0xcb, 0x76, 0xda, 0xb3, 0x6c, 0x7b, 0xf1, 0x02, 0x3d, 0x13, 0xd9, 0x87, 0x41, 0x9c, 0x3e, + 0x6e, 0x37, 0x58, 0x55, 0x8d, 0x51, 0x76, 0x9c, 0x3e, 0x3b, 0xb2, 0x83, 0xe0, 0xb8, 0xdd, 0x64, + 0x74, 0xfa, 0x49, 0x63, 0x5e, 0x9e, 0x68, 0xcd, 0xa5, 0x62, 0xde, 0xbc, 0xfd, 0xf9, 0x06, 0xa0, + 0x2a, 0xff, 0x50, 0x82, 0xc5, 0x75, 0x16, 0xf2, 0x29, 0x9e, 0xe0, 0x34, 0xa8, 0xc0, 0xed, 0x08, + 0x7e, 0x49, 0xa7, 0xf0, 0xe9, 0xc1, 0x0a, 0x3e, 0xf4, 0x09, 0x34, 0xa5, 0x4c, 0xd1, 0xb2, 0xf2, + 0x2a, 0xe0, 0xa6, 0xe1, 0xab, 0x45, 0xed, 0x23, 0x58, 0xca, 0xe8, 0x2c, 0xc2, 0xb3, 0x4b, 0x30, + 0x1b, 0x7b, 0x84, 0x48, 0xe5, 0x7a, 0x44, 0xdb, 0xb2, 0xb4, 0x7b, 0x70, 0xb6, 0x17, 0x98, 0x5e, + 0x90, 0x19, 0xf0, 0x09, 0xda, 0x32, 0xec, 0x26, 0xd9, 0x56, 0xc0, 0x2b, 0x3d, 0x58, 0xe8, 0x05, + 0xc4, 0x7d, 0x0d, 0xa1, 0x74, 0xa7, 0xd3, 0x61, 0x93, 0x30, 0x10, 0x31, 0x99, 0x2c, 0x6a, 0x4b, + 0x1c, 0x69, 0xca, 0xf6, 0xf6, 0x21, 0x2c, 0x72, 0xa0, 0xe7, 0x75, 0x06, 0xb1, 0x2c, 0x61, 0xa6, + 0xac, 0xdc, 0x0d, 0x38, 0x13, 0xbb, 0xf2, 0x38, 0x3d, 0xbc, 0x99, 0x4c, 0x0f, 0x97, 0xb2, 0x6b, + 0x9c, 0xc8, 0x0e, 0xff, 0xa2, 0xac, 0x38, 0xcc, 0x82, 0xe4, 0x70, 0x2d, 0x99, 0x1c, 0x9e, 0x2f, + 0x10, 0x99, 0xc8, 0x0d, 0xb3, 0x16, 0x59, 0xc9, 0xb1, 0x48, 0x3d, 0x93, 0x41, 0x4e, 0xa6, 0xf2, + 0xec, 0x94, 0x6e, 0xbf, 0x95, 0x04, 0x72, 0x8b, 0x27, 0x90, 0x51, 0xd7, 0x11, 0xf8, 0x76, 0x3b, + 0x95, 0x40, 0xb6, 0x8b, 0xd4, 0x8c, 0xf2, 0xc7, 0x3f, 0x9d, 0x84, 0x5a, 0x54, 0x97, 0x99, 0xd8, + 0xec, 0x24, 0x95, 0x73, 0x26, 0x49, 0x3d, 0xbf, 0x2a, 0xaf, 0x73, 0x7e, 0x4d, 0xbe, 0xea, 0xfc, + 0x3a, 0x07, 0x35, 0xf6, 0x61, 0x78, 0xf8, 0x50, 0x9c, 0x47, 0x55, 0x46, 0xd0, 0xf1, 0x61, 0x6c, + 0x50, 0xd3, 0x27, 0x31, 0xa8, 0x54, 0xa6, 0x3a, 0x93, 0xce, 0x54, 0xef, 0x44, 0x27, 0x0c, 0x3f, + 0x8b, 0x56, 0xb2, 0xe2, 0x72, 0xcf, 0x96, 0xcd, 0xe4, 0xd9, 0xc2, 0x8f, 0xa7, 0xcb, 0x39, 0x8d, + 0xdf, 0xd8, 0x3c, 0xf5, 0x09, 0xcf, 0x53, 0x55, 0xab, 0x12, 0x8e, 0x70, 0x0d, 0x20, 0xda, 0xf3, + 0x32, 0x59, 0x45, 0xd9, 0xa1, 0xe9, 0x0a, 0x97, 0xb6, 0x0f, 0x8b, 0x89, 0xf9, 0x8f, 0x11, 0xe2, + 0x93, 0x79, 0xb1, 0x02, 0x78, 0xf8, 0x5f, 0xd4, 0xf8, 0xa9, 0x00, 0x64, 0xbd, 0x93, 0x01, 0x3d, + 0x4e, 0x66, 0x8f, 0x37, 0x93, 0x98, 0xc7, 0xe9, 0x0c, 0x29, 0x03, 0x79, 0xb0, 0xe3, 0xde, 0xf4, + 0x44, 0x35, 0xcf, 0x56, 0x6b, 0x82, 0xd2, 0x0d, 0x68, 0x90, 0x75, 0x68, 0x3b, 0xb6, 0x7f, 0xc4, + 0xeb, 0xa7, 0x59, 0x3d, 0x48, 0x52, 0x97, 0x5d, 0xc2, 0xe3, 0x17, 0x76, 0x60, 0xf4, 0x89, 0x85, + 0x99, 0x99, 0x4e, 0xe9, 0x55, 0x4a, 0x58, 0x27, 0x16, 0x8e, 0xb7, 0x4e, 0xf5, 0x54, 0x5b, 0xa7, + 0x96, 0xda, 0x3a, 0x8b, 0x30, 0xed, 0x61, 0xd3, 0x27, 0x8e, 0x48, 0x19, 0x44, 0x89, 0xce, 0xff, + 0x08, 0xfb, 0x3e, 0xed, 0x40, 0x84, 0x36, 0xa2, 0xa8, 0x04, 0x60, 0xb3, 0x45, 0x01, 0xd8, 0x18, + 0x14, 0x37, 0x15, 0x80, 0x35, 0x8a, 0x02, 0xb0, 0x93, 0x80, 0xb8, 0x4a, 0x78, 0xd9, 0x1c, 0x1b, + 0x5e, 0xaa, 0x81, 0xda, 0x5c, 0x22, 0x50, 0xfb, 0x3e, 0x77, 0xdb, 0x3f, 0x97, 0x60, 0x29, 0xb3, + 0x41, 0xc4, 0x7e, 0xbb, 0x9d, 0x82, 0x81, 0xdb, 0x45, 0x33, 0x14, 0xa1, 0xc0, 0xf7, 0x13, 0x28, + 0xf0, 0x8d, 0x42, 0xfe, 0xef, 0x1c, 0x04, 0xfe, 0x43, 0xb8, 0xb8, 0xef, 0x5a, 0xa9, 0xf0, 0x49, + 0x24, 0x7f, 0x27, 0xdf, 0xef, 0x77, 0x64, 0xa4, 0x5b, 0x3e, 0x61, 0x5e, 0xc9, 0xd9, 0x35, 0x0d, + 0x56, 0x8b, 0x7b, 0x17, 0x61, 0xc8, 0xef, 0xc3, 0xdc, 0xe6, 0x0b, 0xdc, 0xef, 0x1d, 0x3b, 0xfd, + 0x53, 0x68, 0xd4, 0x82, 0x4a, 0x7f, 0x64, 0x09, 0x78, 0x85, 0x7e, 0xaa, 0x91, 0x55, 0x25, 0x19, + 0x59, 0x19, 0xd0, 0x8a, 0x7b, 0x10, 0x4b, 0xb8, 0x48, 0x97, 0xd0, 0xa2, 0xcc, 0x54, 0xf8, 0xac, + 0x2e, 0x4a, 0x82, 0x8e, 0x3d, 0x8f, 0x0d, 0x95, 0xd3, 0xb1, 0xe7, 0x25, 0x77, 0x7b, 0x25, 0xb9, + 0xdb, 0xb5, 0xbf, 0x2a, 0x41, 0x9d, 0xf6, 0xf0, 0xad, 0xf4, 0x17, 0xf9, 0x45, 0x25, 0xce, 0x2f, + 0xa2, 0x34, 0x65, 0x52, 0x4d, 0x53, 0x62, 0xcd, 0xa7, 0x18, 0x39, 0xab, 0xf9, 0x74, 0x44, 0xc7, + 0x9e, 0xa7, 0xad, 0xc2, 0x2c, 0xd7, 0x4d, 0x8c, 0xbc, 0x05, 0x95, 0xd0, 0x1b, 0x4a, 0xeb, 0x09, + 0xbd, 0xa1, 0xf6, 0x67, 0x25, 0x68, 0x74, 0x83, 0xc0, 0xec, 0x1f, 0x9d, 0x62, 0x00, 0x91, 0x72, + 0x65, 0x55, 0xb9, 0xec, 0x20, 0x62, 0x75, 0x27, 0x0b, 0xd4, 0x9d, 0x4a, 0xa8, 0xab, 0x41, 0x53, + 0xea, 0x52, 0xa8, 0xf0, 0x36, 0xa0, 0x5d, 0xe2, 0x05, 0x0f, 0x89, 0xf7, 0xdc, 0xf4, 0xac, 0xd3, + 0xe5, 0x30, 0x08, 0x26, 0xc5, 0xc3, 0xaa, 0xca, 0xb5, 0x29, 0x9d, 0x7d, 0x6b, 0x6f, 0xc3, 0x99, + 0x84, 0xbc, 0xc2, 0x8e, 0xef, 0x42, 0x9d, 0x39, 0x70, 0x11, 0xe7, 0x5e, 0x53, 0x71, 0xde, 0x71, + 0x5e, 0x5e, 0xeb, 0xc2, 0x3c, 0x3d, 0xbb, 0x19, 0x3d, 0xda, 0x78, 0x3f, 0x4c, 0x45, 0x83, 0x0b, + 0xc9, 0xf6, 0xa9, 0x48, 0xf0, 0xef, 0x4a, 0x30, 0xc5, 0xe8, 0x99, 0xf3, 0xf4, 0x1c, 0xd4, 0x3c, + 0xec, 0x12, 0x23, 0x30, 0x07, 0xd1, 0x5b, 0x35, 0x4a, 0xd8, 0x33, 0x07, 0x3e, 0x7b, 0x6a, 0x47, + 0x2b, 0x2d, 0x7b, 0x80, 0xfd, 0x40, 0x3e, 0x58, 0xab, 0x53, 0xda, 0x06, 0x27, 0xd1, 0x29, 0xf1, + 0xed, 0x3f, 0xe0, 0x61, 0xde, 0xa4, 0xce, 0xbe, 0xd1, 0x15, 0xfe, 0x0c, 0x64, 0x0c, 0x28, 0xc7, + 0xde, 0x86, 0x74, 0xa0, 0x9a, 0xc2, 0xe1, 0xa2, 0xb2, 0xf6, 0x11, 0x20, 0x75, 0xcc, 0x62, 0x52, + 0xaf, 0xc2, 0x34, 0x9b, 0x12, 0x19, 0xa7, 0x34, 0x93, 0x83, 0xd6, 0x45, 0xad, 0xf6, 0x05, 0x20, + 0x3e, 0x8b, 0x89, 0xd8, 0xe4, 0xc4, 0x33, 0x3e, 0x26, 0x44, 0xf9, 0xfb, 0x12, 0x9c, 0x49, 0x88, + 0x8e, 0x1e, 0x04, 0x24, 0x64, 0xa7, 0x15, 0x13, 0x72, 0xef, 0x25, 0x3c, 0xf9, 0xd5, 0x94, 0x02, + 0xbf, 0x21, 0x2f, 0xfe, 0xcb, 0x12, 0x40, 0x37, 0x0c, 0x8e, 0x04, 0x20, 0xa5, 0xce, 0x7a, 0x29, + 0x39, 0xeb, 0xb4, 0xce, 0x35, 0x7d, 0xff, 0x39, 0xf1, 0x64, 0x32, 0x10, 0x95, 0x19, 0x98, 0x14, + 0x06, 0x47, 0x12, 0x04, 0xa7, 0xdf, 0xe8, 0x0a, 0x34, 0xf9, 0x93, 0x47, 0xc3, 0xb4, 0x2c, 0x0f, + 0xfb, 0xbe, 0x40, 0xc3, 0x1b, 0x9c, 0xda, 0xe5, 0x44, 0xca, 0x66, 0x5b, 0xd8, 0x09, 0xec, 0xe0, + 0xd8, 0x08, 0xc8, 0xd7, 0xd8, 0x11, 0x61, 0x7e, 0x43, 0x52, 0xf7, 0x28, 0x91, 0xb2, 0x79, 0x78, + 0x60, 0xfb, 0x81, 0x27, 0xd9, 0x24, 0x3a, 0x2b, 0xa8, 0x8c, 0x4d, 0xfb, 0x79, 0x09, 0x5a, 0xbb, + 0xe1, 0x70, 0xc8, 0x67, 0xf6, 0xd4, 0x6b, 0xfb, 0xb6, 0x18, 0x47, 0x39, 0x65, 0x9d, 0xf1, 0x14, + 0x89, 0xc1, 0x7d, 0x7b, 0xf8, 0xe1, 0x36, 0xcc, 0x2b, 0x8a, 0x0a, 0x4b, 0x49, 0xc4, 0x6c, 0xa5, + 0x64, 0xcc, 0xa6, 0xdd, 0x07, 0xc4, 0x33, 0xee, 0xd7, 0x1b, 0x9c, 0x76, 0x16, 0xce, 0x24, 0xda, + 0x8b, 0x63, 0xf2, 0x06, 0x34, 0xc4, 0x7d, 0xbf, 0x30, 0x82, 0x65, 0xa8, 0x52, 0x77, 0xd7, 0xb7, + 0x2d, 0x79, 0xfb, 0x31, 0xe3, 0x12, 0x6b, 0xdd, 0xb6, 0x3c, 0x6d, 0x1b, 0x1a, 0x3a, 0x17, 0x2f, + 0x78, 0x3f, 0x86, 0xa6, 0x78, 0x1d, 0x60, 0x24, 0xde, 0xcf, 0xc4, 0x50, 0x7d, 0x42, 0xb6, 0xde, + 0x70, 0xd4, 0xa2, 0xf6, 0x53, 0xe8, 0xf0, 0x63, 0x3c, 0x21, 0x55, 0x0e, 0xed, 0x63, 0x90, 0x4f, + 0x72, 0x8b, 0x84, 0x27, 0x9b, 0x35, 0x3c, 0xb5, 0xa8, 0x5d, 0x80, 0x73, 0xb9, 0xc2, 0xc5, 0xb8, + 0x5d, 0x68, 0xc5, 0x15, 0x96, 0x2d, 0x2f, 0x7d, 0xd8, 0x65, 0x4e, 0x49, 0xb9, 0xcc, 0x59, 0x8c, + 0x62, 0xb2, 0xb2, 0x3c, 0x4f, 0x58, 0xe4, 0x15, 0x87, 0xd0, 0x95, 0xa2, 0x10, 0x7a, 0x32, 0x11, + 0x42, 0x6b, 0x9f, 0x45, 0xb3, 0x27, 0xf2, 0x97, 0x0f, 0x58, 0x7a, 0xc5, 0xfb, 0x96, 0x6e, 0x6b, + 0x39, 0x67, 0x70, 0x9c, 0x43, 0x57, 0x98, 0xb5, 0xeb, 0xd0, 0x48, 0x3a, 0x30, 0xc5, 0x2d, 0x95, + 0x32, 0x6e, 0xa9, 0x99, 0xf2, 0x48, 0xb7, 0x52, 0x71, 0x66, 0x66, 0x46, 0x53, 0x51, 0xe6, 0xfb, + 0x09, 0xdf, 0x74, 0x29, 0xbe, 0x87, 0xf9, 0x0d, 0xb9, 0xa5, 0x05, 0xe1, 0xa3, 0x1f, 0xfa, 0xb4, + 0xbd, 0x18, 0xa2, 0x76, 0x19, 0xea, 0xfb, 0x45, 0x8f, 0x65, 0x27, 0xe5, 0xc5, 0xe6, 0xdb, 0x30, + 0xdf, 0x0b, 0x88, 0x67, 0x0e, 0xf0, 0x16, 0x73, 0x20, 0x87, 0x36, 0xbf, 0xb8, 0x0b, 0xc3, 0xe8, + 0x68, 0x63, 0xdf, 0xda, 0x7f, 0x94, 0x60, 0xee, 0xa1, 0x3d, 0xc4, 0xfe, 0xb1, 0x1f, 0xe0, 0xd1, + 0x3e, 0x4b, 0x72, 0xce, 0x43, 0x8d, 0x8e, 0xcb, 0x0f, 0xcc, 0x91, 0x2b, 0x2f, 0x3e, 0x23, 0x02, + 0x5d, 0x2e, 0x9f, 0x8b, 0x96, 0x80, 0x88, 0x9a, 0x60, 0x66, 0x7a, 0xa5, 0x49, 0x9f, 0x20, 0xa1, + 0xf7, 0x00, 0x42, 0x1f, 0x5b, 0xe2, 0xb2, 0xb3, 0x92, 0x3a, 0x95, 0xf7, 0xd5, 0x2b, 0x29, 0xca, + 0xc7, 0x6f, 0x3e, 0xdf, 0x87, 0xba, 0xed, 0x10, 0x0b, 0xb3, 0x2b, 0x29, 0x4b, 0x80, 0x25, 0xf9, + 0xad, 0x80, 0x33, 0xee, 0xfb, 0xd8, 0xd2, 0x7e, 0x4f, 0x9c, 0x42, 0x72, 0xf2, 0xc4, 0x9a, 0x6f, + 0xc2, 0x3c, 0xf7, 0x2d, 0x87, 0xd1, 0xa0, 0xa5, 0xcd, 0xc5, 0x69, 0x46, 0x6a, 0x42, 0xf4, 0x96, + 0x2d, 0x02, 0x06, 0xd9, 0x42, 0xbb, 0x07, 0x67, 0x13, 0xb9, 0xc5, 0x29, 0xa2, 0x7d, 0xed, 0x51, + 0x0a, 0x1a, 0x88, 0x0d, 0x52, 0x64, 0xe0, 0xd2, 0x1e, 0x0b, 0x32, 0x70, 0x9f, 0x67, 0xe0, 0xbe, + 0xa6, 0xc3, 0x72, 0x02, 0xb1, 0x48, 0x28, 0xf2, 0x7e, 0x2a, 0xfa, 0xb9, 0x50, 0x20, 0x2c, 0x15, + 0x06, 0xfd, 0x6f, 0x09, 0x16, 0xf2, 0x18, 0x5e, 0x13, 0x1b, 0xfb, 0x49, 0xc1, 0x13, 0x94, 0xdb, + 0x63, 0xb5, 0xf9, 0xad, 0xa0, 0x88, 0x8f, 0xa1, 0x93, 0x37, 0x7b, 0xd9, 0xa5, 0xa8, 0x9c, 0x60, + 0x29, 0xfe, 0xaf, 0xac, 0xa0, 0xbd, 0xdd, 0x20, 0xf0, 0xec, 0x83, 0x90, 0x1a, 0xef, 0x77, 0x85, + 0xcd, 0x7c, 0x12, 0xe1, 0x0e, 0x7c, 0xfe, 0xae, 0x65, 0x5b, 0xc5, 0xbd, 0xe6, 0x62, 0x0f, 0x3b, + 0x49, 0xec, 0x81, 0xe3, 0xb8, 0x37, 0xc7, 0x8a, 0x79, 0x63, 0xa1, 0xba, 0x97, 0x25, 0x68, 0x26, + 0xd7, 0x01, 0x7d, 0x04, 0x60, 0x46, 0x9a, 0x0b, 0x93, 0x3f, 0x3f, 0x6e, 0x74, 0xba, 0xc2, 0x8f, + 0x2e, 0x43, 0xa5, 0xef, 0x86, 0x62, 0x45, 0xe2, 0x0b, 0xbd, 0x75, 0x37, 0xe4, 0x0e, 0x80, 0xd6, + 0xd2, 0x7c, 0x82, 0x3f, 0xcc, 0xc8, 0x78, 0xae, 0xa7, 0x8c, 0xcc, 0x59, 0x05, 0x0f, 0x7a, 0x00, + 0xcd, 0xe7, 0x9e, 0x1d, 0x98, 0x07, 0x43, 0x6c, 0x0c, 0xcd, 0x63, 0xec, 0x09, 0xcf, 0x55, 0xec, + 0x65, 0x1a, 0x92, 0xff, 0x09, 0x65, 0xd7, 0x42, 0xa8, 0xca, 0xfe, 0x5f, 0xe1, 0x91, 0x1f, 0xc3, + 0x52, 0x48, 0xd9, 0x0c, 0xf6, 0x38, 0xc4, 0x31, 0x1d, 0x62, 0xf8, 0x98, 0x9e, 0x92, 0xf2, 0x2d, + 0x68, 0xbe, 0xb7, 0x5c, 0x60, 0x8d, 0xd6, 0x89, 0x87, 0xb7, 0x4d, 0x87, 0xf4, 0x78, 0x0b, 0x6d, + 0x04, 0x75, 0x65, 0x38, 0xaf, 0xe8, 0xf9, 0x13, 0x98, 0x97, 0x57, 0xa5, 0x3e, 0x0e, 0x84, 0x5f, + 0x1f, 0xd7, 0xe7, 0x9c, 0x60, 0xef, 0xe1, 0x80, 0x79, 0xf7, 0x1b, 0xe7, 0xa1, 0x2a, 0xff, 0xa8, + 0x83, 0x66, 0xa0, 0xb2, 0xb7, 0xbe, 0xdb, 0x9a, 0xa0, 0x1f, 0xfb, 0x1b, 0xbb, 0xad, 0xd2, 0x8d, + 0x11, 0xb4, 0xd2, 0x7f, 0x52, 0x41, 0x4b, 0x70, 0x66, 0x57, 0xdf, 0xd9, 0xed, 0x3e, 0xea, 0xee, + 0x6d, 0xed, 0x6c, 0x1b, 0xbb, 0xfa, 0xd6, 0xe7, 0xdd, 0xbd, 0xcd, 0xd6, 0x04, 0xba, 0x04, 0x17, + 0xd4, 0x8a, 0xdf, 0xdd, 0xe9, 0xed, 0x19, 0x7b, 0x3b, 0xc6, 0xfa, 0xce, 0xf6, 0x5e, 0x77, 0x6b, + 0x7b, 0x53, 0x6f, 0x95, 0xd0, 0x05, 0x58, 0x56, 0x59, 0x3e, 0xdd, 0xda, 0xd8, 0xd2, 0x37, 0xd7, + 0xe9, 0x77, 0xf7, 0x49, 0xab, 0x7c, 0xe3, 0x1e, 0xcc, 0xa5, 0xde, 0x77, 0xa1, 0x79, 0x68, 0xf4, + 0xba, 0xdb, 0x1b, 0x9f, 0xee, 0x7c, 0x61, 0xe8, 0x9b, 0xdd, 0x8d, 0x2f, 0x5b, 0x13, 0x68, 0x01, + 0x5a, 0x92, 0xb4, 0xbd, 0xb3, 0xc7, 0xa9, 0xa5, 0x1b, 0x5f, 0xa7, 0x4c, 0x12, 0xa3, 0xb3, 0x30, + 0x1f, 0xf5, 0x6d, 0xac, 0xeb, 0x9b, 0xdd, 0xbd, 0xcd, 0x8d, 0xd6, 0x44, 0x92, 0xac, 0xef, 0x6f, + 0x6f, 0x6f, 0x6d, 0x3f, 0x6a, 0x95, 0xa8, 0xd4, 0x98, 0xbc, 0xf9, 0xc5, 0x16, 0x65, 0x2e, 0x27, + 0x99, 0xf7, 0xb7, 0x1f, 0x6f, 0xef, 0xfc, 0x64, 0xbb, 0x55, 0x59, 0xfb, 0xf7, 0x06, 0x34, 0x65, + 0x8c, 0x82, 0x3d, 0x76, 0x7f, 0x7f, 0x1f, 0x66, 0xe4, 0x5f, 0xb6, 0x62, 0x67, 0x95, 0xfc, 0x7f, + 0x59, 0xa7, 0x9d, 0xad, 0x10, 0x61, 0xe0, 0x04, 0xda, 0x65, 0x61, 0x99, 0xf2, 0x96, 0xee, 0x82, + 0x1a, 0x0d, 0x65, 0x1e, 0xeb, 0x75, 0x56, 0x8a, 0xaa, 0x23, 0x89, 0x3d, 0x1a, 0x70, 0xa9, 0x8f, + 0xb3, 0xd1, 0x8a, 0x1a, 0x26, 0x64, 0x1f, 0x7d, 0x77, 0x2e, 0x16, 0xd6, 0x47, 0x42, 0xbf, 0x84, + 0x56, 0xfa, 0x59, 0x36, 0x8a, 0xf1, 0xb2, 0x82, 0x27, 0xdf, 0x9d, 0x4b, 0x63, 0x38, 0x54, 0xd1, + 0x99, 0x07, 0xcc, 0xab, 0x63, 0x1e, 0x94, 0xa6, 0x45, 0x17, 0x3d, 0x39, 0xe5, 0x53, 0x91, 0x7c, + 0x03, 0x87, 0xd4, 0x67, 0xc3, 0x39, 0x6f, 0x21, 0x95, 0xa9, 0xc8, 0x7f, 0x3c, 0xa7, 0x4d, 0xa0, + 0xcf, 0x61, 0x2e, 0x75, 0x75, 0x8b, 0xe2, 0x56, 0xf9, 0x17, 0xd1, 0x9d, 0xd5, 0x62, 0x86, 0xe4, + 0xba, 0xa9, 0x17, 0xb3, 0x89, 0x75, 0xcb, 0xb9, 0xed, 0x4d, 0xac, 0x5b, 0xee, 0x8d, 0x2e, 0x33, + 0xaf, 0xc4, 0xf5, 0xab, 0x62, 0x5e, 0x79, 0x77, 0xbd, 0x9d, 0x95, 0xa2, 0x6a, 0x75, 0xf8, 0xa9, + 0xab, 0x57, 0x65, 0xf8, 0xf9, 0x37, 0xba, 0x9d, 0xd5, 0x62, 0x86, 0xf4, 0x5a, 0xc5, 0xf7, 0x40, + 0xa9, 0xb5, 0xca, 0x5c, 0x3b, 0xa6, 0xd6, 0x2a, 0x7b, 0x81, 0x24, 0xd6, 0x2a, 0x75, 0x6d, 0x73, + 0xb1, 0x18, 0xa5, 0xce, 0xac, 0x55, 0x3e, 0x8c, 0xad, 0x4d, 0xa0, 0x6f, 0xa0, 0x5d, 0x84, 0x00, + 0xa3, 0x38, 0x46, 0x78, 0x05, 0x44, 0xdd, 0xb9, 0x7e, 0x02, 0xce, 0xa8, 0xcb, 0x2e, 0x54, 0x25, + 0xdc, 0x8b, 0x62, 0x87, 0x92, 0xc2, 0x98, 0x3b, 0xcb, 0x39, 0x35, 0x91, 0x88, 0xf7, 0x61, 0x92, + 0x52, 0xd1, 0x42, 0x82, 0x49, 0x36, 0x3d, 0x9b, 0xa2, 0x46, 0xcd, 0x3e, 0x84, 0x69, 0x8e, 0x5d, + 0xa2, 0x38, 0x53, 0x4b, 0x00, 0xab, 0x9d, 0xa5, 0x0c, 0x3d, 0x6a, 0xfc, 0x19, 0xff, 0xe7, 0xa8, + 0x00, 0x21, 0xd1, 0xb9, 0xc4, 0x9f, 0x8c, 0x92, 0x50, 0x67, 0xe7, 0x7c, 0x7e, 0xa5, 0x6a, 0x22, + 0xa9, 0xf0, 0x63, 0xa5, 0x28, 0x3e, 0xcc, 0x98, 0x48, 0x7e, 0xbc, 0xa9, 0x4d, 0x20, 0x83, 0xe3, + 0x79, 0x29, 0xc1, 0x5a, 0xbe, 0x6d, 0x25, 0x84, 0x5f, 0x1e, 0xcb, 0x13, 0x75, 0x70, 0x00, 0x67, + 0x72, 0x90, 0x00, 0x74, 0x39, 0xb5, 0xf8, 0x79, 0x20, 0x44, 0xe7, 0xad, 0xf1, 0x4c, 0xea, 0x12, + 0x09, 0xf3, 0x5e, 0xcc, 0xa4, 0xc7, 0xe9, 0x25, 0x4a, 0x1b, 0xf3, 0xda, 0x1f, 0x57, 0x60, 0x96, + 0xe3, 0x35, 0xe2, 0x4c, 0x7b, 0x04, 0x10, 0x43, 0x9c, 0xa8, 0x93, 0x18, 0x66, 0x02, 0xeb, 0xed, + 0x9c, 0xcb, 0xad, 0x53, 0x17, 0x5f, 0x01, 0x10, 0x95, 0xc5, 0xcf, 0x62, 0xa0, 0xca, 0xe2, 0xe7, + 0x60, 0x8e, 0xda, 0x04, 0xda, 0x80, 0x5a, 0x04, 0x59, 0x21, 0x05, 0xe9, 0x4a, 0xe1, 0x6d, 0x9d, + 0x4e, 0x5e, 0x95, 0xaa, 0x91, 0x02, 0x43, 0x29, 0x1a, 0x65, 0xc1, 0x2d, 0x45, 0xa3, 0x3c, 0xe4, + 0x2a, 0x1e, 0x1d, 0x4f, 0x75, 0xd3, 0xa3, 0x4b, 0xa0, 0x07, 0xe9, 0xd1, 0x25, 0xb3, 0x63, 0x6d, + 0xe2, 0xd3, 0xf3, 0xbf, 0xf8, 0xd5, 0x4a, 0xe9, 0x3f, 0x7f, 0xb5, 0x32, 0xf1, 0x47, 0x2f, 0x57, + 0x4a, 0xbf, 0x78, 0xb9, 0x52, 0xfa, 0xb7, 0x97, 0x2b, 0xa5, 0xff, 0x7e, 0xb9, 0x52, 0xfa, 0xd9, + 0xff, 0xac, 0x4c, 0x1c, 0x4c, 0xb3, 0xbf, 0x52, 0xbf, 0xf7, 0xeb, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xa6, 0x04, 0x77, 0x58, 0xfe, 0x3e, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto index 31a238b28..93428edc8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto @@ -331,6 +331,8 @@ message RemovePodSandboxResponse {} message PodSandboxStatusRequest { // ID of the PodSandbox for which to retrieve status. string pod_sandbox_id = 1; + // Verbose indicates whether to return extra information about the pod sandbox. + bool verbose = 2; } // PodSandboxNetworkStatus is the status of the network for a PodSandbox. @@ -382,6 +384,11 @@ message PodSandboxStatus { message PodSandboxStatusResponse { // Status of the PodSandbox. PodSandboxStatus status = 1; + // Info is extra information of the PodSandbox. The key could be abitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. network namespace for linux container based container runtime. + // It should only be returned non-empty when Verbose is true. + map info = 2; } // PodSandboxStateValue is the wrapper of PodSandboxState. @@ -747,6 +754,8 @@ message ListContainersResponse { message ContainerStatusRequest { // ID of the container for which to retrieve status. string container_id = 1; + // Verbose indicates whether to return extra information about the container. + bool verbose = 2; } // ContainerStatus represents the status of a container. @@ -791,6 +800,11 @@ message ContainerStatus { message ContainerStatusResponse { // Status of the container. ContainerStatus status = 1; + // Info is extra information of the Container. The key could be abitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. pid for linux container based container runtime. + // It should only be returned non-empty when Verbose is true. + map info = 2; } message UpdateContainerResourcesRequest { @@ -920,11 +934,18 @@ message ListImagesResponse { message ImageStatusRequest { // Spec of the image. ImageSpec image = 1; + // Verbose indicates whether to return extra information about the image. + bool verbose = 2; } message ImageStatusResponse { // Status of the image. Image image = 1; + // Info is extra information of the Image. The key could be abitrary string, and + // value should be in json format. The information could include anything useful + // for debug, e.g. image config for oci image based container runtime. + // It should only be returned non-empty when Verbose is true. + map info = 2; } // AuthConfig contains authorization information for connecting to a registry. @@ -1007,11 +1028,19 @@ message RuntimeStatus { repeated RuntimeCondition conditions = 1; } -message StatusRequest {} +message StatusRequest { + // Verbose indicates whether to return extra information about the runtime. + bool verbose = 1; +} message StatusResponse { // Status of the Runtime. RuntimeStatus status = 1; + // Info is extra information of the Runtime. The key could be abitrary string, and + // value should be in json format. The information could include anything useful for + // debug, e.g. plugins used by the container runtime. + // It should only be returned non-empty when Verbose is true. + map info = 2; } message ImageFsInfoRequest {} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/BUILD similarity index 98% rename from vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/BUILD rename to vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/BUILD index f9677feac..b60d55569 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/BUILD @@ -11,7 +11,7 @@ go_library( "api.pb.go", "constants.go", ], - importpath = "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1", + importpath = "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha", deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/api.pb.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/api.pb.go similarity index 85% rename from vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/api.pb.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/api.pb.go index 2d73929bd..6a939acde 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/api.pb.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/api.pb.go @@ -31,7 +31,6 @@ limitations under the License. Device AllocateRequest AllocateResponse - DeviceRuntimeSpec Mount DeviceSpec */ @@ -177,64 +176,42 @@ func (m *AllocateRequest) GetDevicesIDs() []string { return nil } +// AllocateResponse includes the artifacts that needs to be injected into +// a container for accessing 'deviceIDs' that were mentioned as part of +// 'AllocateRequest'. // Failure Handling: // if Kubelet sends an allocation request for dev1 and dev2. // Allocation on dev1 succeeds but allocation on dev2 fails. // The Device plugin should send a ListAndWatch update and fail the // Allocation request type AllocateResponse struct { - Spec []*DeviceRuntimeSpec `protobuf:"bytes,1,rep,name=spec" json:"spec,omitempty"` + // List of environment variable to be set in the container to access one of more devices. + Envs map[string]string `protobuf:"bytes,1,rep,name=envs" json:"envs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Mounts for the container. + Mounts []*Mount `protobuf:"bytes,2,rep,name=mounts" json:"mounts,omitempty"` + // Devices for the container. + Devices []*DeviceSpec `protobuf:"bytes,3,rep,name=devices" json:"devices,omitempty"` } func (m *AllocateResponse) Reset() { *m = AllocateResponse{} } func (*AllocateResponse) ProtoMessage() {} func (*AllocateResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{5} } -func (m *AllocateResponse) GetSpec() []*DeviceRuntimeSpec { - if m != nil { - return m.Spec - } - return nil -} - -// The list to be added to the CRI spec -type DeviceRuntimeSpec struct { - // ID of the Device - ID string `protobuf:"bytes,1,opt,name=ID,json=iD,proto3" json:"ID,omitempty"` - // List of environment variable to set in the container. - Envs map[string]string `protobuf:"bytes,2,rep,name=envs" json:"envs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Mounts for the container. - Mounts []*Mount `protobuf:"bytes,3,rep,name=mounts" json:"mounts,omitempty"` - // Devices for the container - Devices []*DeviceSpec `protobuf:"bytes,4,rep,name=devices" json:"devices,omitempty"` -} - -func (m *DeviceRuntimeSpec) Reset() { *m = DeviceRuntimeSpec{} } -func (*DeviceRuntimeSpec) ProtoMessage() {} -func (*DeviceRuntimeSpec) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{6} } - -func (m *DeviceRuntimeSpec) GetID() string { - if m != nil { - return m.ID - } - return "" -} - -func (m *DeviceRuntimeSpec) GetEnvs() map[string]string { +func (m *AllocateResponse) GetEnvs() map[string]string { if m != nil { return m.Envs } return nil } -func (m *DeviceRuntimeSpec) GetMounts() []*Mount { +func (m *AllocateResponse) GetMounts() []*Mount { if m != nil { return m.Mounts } return nil } -func (m *DeviceRuntimeSpec) GetDevices() []*DeviceSpec { +func (m *AllocateResponse) GetDevices() []*DeviceSpec { if m != nil { return m.Devices } @@ -254,7 +231,7 @@ type Mount struct { func (m *Mount) Reset() { *m = Mount{} } func (*Mount) ProtoMessage() {} -func (*Mount) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{7} } +func (*Mount) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{6} } func (m *Mount) GetContainerPath() string { if m != nil { @@ -292,7 +269,7 @@ type DeviceSpec struct { func (m *DeviceSpec) Reset() { *m = DeviceSpec{} } func (*DeviceSpec) ProtoMessage() {} -func (*DeviceSpec) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{8} } +func (*DeviceSpec) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{7} } func (m *DeviceSpec) GetContainerPath() string { if m != nil { @@ -322,7 +299,6 @@ func init() { proto.RegisterType((*Device)(nil), "deviceplugin.Device") proto.RegisterType((*AllocateRequest)(nil), "deviceplugin.AllocateRequest") proto.RegisterType((*AllocateResponse)(nil), "deviceplugin.AllocateResponse") - proto.RegisterType((*DeviceRuntimeSpec)(nil), "deviceplugin.DeviceRuntimeSpec") proto.RegisterType((*Mount)(nil), "deviceplugin.Mount") proto.RegisterType((*DeviceSpec)(nil), "deviceplugin.DeviceSpec") } @@ -698,45 +674,9 @@ func (m *AllocateResponse) MarshalTo(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.Spec) > 0 { - for _, msg := range m.Spec { - dAtA[i] = 0xa - i++ - i = encodeVarintApi(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *DeviceRuntimeSpec) 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 *DeviceRuntimeSpec) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.ID) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.ID))) - i += copy(dAtA[i:], m.ID) - } if len(m.Envs) > 0 { for k := range m.Envs { - dAtA[i] = 0x12 + dAtA[i] = 0xa i++ v := m.Envs[k] mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) @@ -753,7 +693,7 @@ func (m *DeviceRuntimeSpec) MarshalTo(dAtA []byte) (int, error) { } if len(m.Mounts) > 0 { for _, msg := range m.Mounts { - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(msg.Size())) n, err := msg.MarshalTo(dAtA[i:]) @@ -765,7 +705,7 @@ func (m *DeviceRuntimeSpec) MarshalTo(dAtA []byte) (int, error) { } if len(m.Devices) > 0 { for _, msg := range m.Devices { - dAtA[i] = 0x22 + dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(msg.Size())) n, err := msg.MarshalTo(dAtA[i:]) @@ -946,22 +886,6 @@ func (m *AllocateRequest) Size() (n int) { func (m *AllocateResponse) Size() (n int) { var l int _ = l - if len(m.Spec) > 0 { - for _, e := range m.Spec { - l = e.Size() - n += 1 + l + sovApi(uint64(l)) - } - } - return n -} - -func (m *DeviceRuntimeSpec) Size() (n int) { - var l int - _ = l - l = len(m.ID) - if l > 0 { - n += 1 + l + sovApi(uint64(l)) - } if len(m.Envs) > 0 { for k, v := range m.Envs { _ = k @@ -1086,16 +1010,6 @@ func (this *AllocateRequest) String() string { return s } func (this *AllocateResponse) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllocateResponse{`, - `Spec:` + strings.Replace(fmt.Sprintf("%v", this.Spec), "DeviceRuntimeSpec", "DeviceRuntimeSpec", 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeviceRuntimeSpec) String() string { if this == nil { return "nil" } @@ -1109,8 +1023,7 @@ func (this *DeviceRuntimeSpec) String() string { mapStringForEnvs += fmt.Sprintf("%v: %v,", k, this.Envs[k]) } mapStringForEnvs += "}" - s := strings.Join([]string{`&DeviceRuntimeSpec{`, - `ID:` + fmt.Sprintf("%v", this.ID) + `,`, + s := strings.Join([]string{`&AllocateResponse{`, `Envs:` + mapStringForEnvs + `,`, `Mounts:` + strings.Replace(fmt.Sprintf("%v", this.Mounts), "Mount", "Mount", 1) + `,`, `Devices:` + strings.Replace(fmt.Sprintf("%v", this.Devices), "DeviceSpec", "DeviceSpec", 1) + `,`, @@ -1635,116 +1548,6 @@ func (m *AllocateResponse) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Spec = append(m.Spec, &DeviceRuntimeSpec{}) - if err := m.Spec[len(m.Spec)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeviceRuntimeSpec) 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 ErrIntOverflowApi - } - 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: DeviceRuntimeSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeviceRuntimeSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - 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 ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Envs", wireType) } @@ -1860,7 +1663,7 @@ func (m *DeviceRuntimeSpec) Unmarshal(dAtA []byte) error { m.Envs[mapkey] = mapvalue } iNdEx = postIndex - case 3: + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Mounts", wireType) } @@ -1891,7 +1694,7 @@ func (m *DeviceRuntimeSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Devices", wireType) } @@ -2316,42 +2119,41 @@ var ( func init() { proto.RegisterFile("api.proto", fileDescriptorApi) } var fileDescriptorApi = []byte{ - // 590 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xce, 0x26, 0x6d, 0x9a, 0x4c, 0xd3, 0x1f, 0x96, 0x0a, 0x59, 0x01, 0x4c, 0x65, 0x84, 0x54, - 0x84, 0x70, 0x4b, 0x7a, 0x00, 0x21, 0x21, 0x51, 0x94, 0x82, 0xaa, 0xf2, 0x53, 0x99, 0x03, 0xc7, - 0x6a, 0xeb, 0x0c, 0xf1, 0x0a, 0x7b, 0xd7, 0x78, 0xd7, 0x91, 0x72, 0xe3, 0x11, 0x78, 0x0c, 0x1e, - 0xa5, 0x47, 0x8e, 0x1c, 0x69, 0x78, 0x0d, 0x0e, 0xc8, 0xeb, 0x75, 0x9b, 0xa6, 0x41, 0x5c, 0xb8, - 0x79, 0xbe, 0xf9, 0x66, 0xe6, 0x9b, 0xcd, 0x7c, 0x81, 0x36, 0x4b, 0xb9, 0x9f, 0x66, 0x52, 0x4b, - 0xda, 0x19, 0xe0, 0x88, 0x87, 0x98, 0xc6, 0xf9, 0x90, 0x8b, 0xee, 0xc3, 0x21, 0xd7, 0x51, 0x7e, - 0xe2, 0x87, 0x32, 0xd9, 0x1e, 0xca, 0xa1, 0xdc, 0x36, 0xa4, 0x93, 0xfc, 0xa3, 0x89, 0x4c, 0x60, - 0xbe, 0xca, 0x62, 0x2f, 0x86, 0xb5, 0x00, 0x87, 0x5c, 0x69, 0xcc, 0x02, 0xfc, 0x9c, 0xa3, 0xd2, - 0xd4, 0x81, 0xa5, 0x11, 0x66, 0x8a, 0x4b, 0xe1, 0x90, 0x4d, 0xb2, 0xd5, 0x0e, 0xaa, 0x90, 0x76, - 0xa1, 0x85, 0x62, 0x90, 0x4a, 0x2e, 0xb4, 0x53, 0x37, 0xa9, 0xf3, 0x98, 0xde, 0x85, 0x95, 0x0c, - 0x95, 0xcc, 0xb3, 0x10, 0x8f, 0x05, 0x4b, 0xd0, 0x69, 0x18, 0x42, 0xa7, 0x02, 0xdf, 0xb2, 0x04, - 0xbd, 0x25, 0x58, 0xdc, 0x4f, 0x52, 0x3d, 0xf6, 0x5e, 0xc2, 0xc6, 0x6b, 0xae, 0xf4, 0x9e, 0x18, - 0x7c, 0x60, 0x3a, 0x8c, 0x02, 0x54, 0xa9, 0x14, 0x0a, 0xa9, 0x0f, 0x4b, 0xe5, 0x36, 0xca, 0x21, - 0x9b, 0x8d, 0xad, 0xe5, 0xde, 0x86, 0x3f, 0xbd, 0x9d, 0xdf, 0x37, 0x41, 0x50, 0x91, 0xbc, 0x1d, - 0x68, 0x96, 0x10, 0x5d, 0x85, 0xfa, 0x41, 0xdf, 0x0a, 0xae, 0xf3, 0x3e, 0xbd, 0x01, 0xcd, 0x08, - 0x59, 0xac, 0x23, 0xab, 0xd4, 0x46, 0xde, 0x23, 0x58, 0xdb, 0x8b, 0x63, 0x19, 0x32, 0x8d, 0xd5, - 0xc2, 0x2e, 0x80, 0xed, 0x77, 0xd0, 0x2f, 0xe7, 0xb6, 0x83, 0x29, 0xc4, 0x7b, 0x05, 0xeb, 0x17, - 0x25, 0x56, 0xe8, 0x2e, 0x2c, 0xa8, 0x14, 0x43, 0xab, 0xf2, 0xce, 0x5c, 0x95, 0xb9, 0xd0, 0x3c, - 0xc1, 0xf7, 0x29, 0x86, 0x81, 0x21, 0x7b, 0xbf, 0x09, 0x5c, 0xbb, 0x92, 0xbb, 0xa2, 0xfc, 0x19, - 0x2c, 0xa0, 0x18, 0x29, 0xa7, 0x6e, 0x5a, 0xdf, 0xff, 0x47, 0x6b, 0x7f, 0x5f, 0x8c, 0xd4, 0xbe, - 0xd0, 0xd9, 0x38, 0x30, 0x65, 0xf4, 0x01, 0x34, 0x13, 0x99, 0x0b, 0xad, 0x9c, 0x86, 0x69, 0x70, - 0xfd, 0x72, 0x83, 0x37, 0x45, 0x2e, 0xb0, 0x14, 0xda, 0xbb, 0x78, 0xef, 0x05, 0xc3, 0x76, 0xe6, - 0x8d, 0x33, 0x2b, 0x54, 0xc4, 0xee, 0x63, 0x68, 0x9f, 0xcf, 0xa4, 0xeb, 0xd0, 0xf8, 0x84, 0x63, - 0xab, 0xbe, 0xf8, 0xa4, 0x1b, 0xb0, 0x38, 0x62, 0x71, 0x8e, 0xf6, 0xdd, 0xcb, 0xe0, 0x69, 0xfd, - 0x09, 0xf1, 0x22, 0x58, 0x34, 0xd3, 0xe9, 0x3d, 0x58, 0x0d, 0xa5, 0xd0, 0x8c, 0x0b, 0xcc, 0x8e, - 0x53, 0xa6, 0x23, 0x5b, 0xbf, 0x72, 0x8e, 0x1e, 0x31, 0x1d, 0xd1, 0x9b, 0xd0, 0x8e, 0xa4, 0xd2, - 0x25, 0xc3, 0xde, 0x5b, 0x01, 0x54, 0xc9, 0x0c, 0xd9, 0xe0, 0x58, 0x8a, 0x78, 0x6c, 0x6e, 0xad, - 0x15, 0xb4, 0x0a, 0xe0, 0x9d, 0x88, 0xc7, 0x5e, 0x06, 0x70, 0xa1, 0xfc, 0xbf, 0x8c, 0xdb, 0x84, - 0xe5, 0x14, 0xb3, 0x84, 0xab, 0xc2, 0x08, 0xca, 0x1e, 0xf7, 0x34, 0xd4, 0x3b, 0x82, 0x4e, 0xe9, - 0xa4, 0x8c, 0xe9, 0xc2, 0x2c, 0xcf, 0xa1, 0x55, 0x39, 0x8b, 0xde, 0xbe, 0xfc, 0xaa, 0x33, 0x8e, - 0xeb, 0xce, 0xfc, 0x44, 0xa5, 0x45, 0x6a, 0xbd, 0x6f, 0x04, 0x3a, 0xe5, 0x1a, 0x47, 0x26, 0x41, - 0x0f, 0xa1, 0x33, 0xed, 0x1a, 0x3a, 0xaf, 0xae, 0xeb, 0x5d, 0x06, 0xe7, 0xd9, 0xcc, 0xab, 0xed, - 0x10, 0x7a, 0x08, 0xad, 0xea, 0xaa, 0x67, 0xf5, 0xcd, 0x18, 0xa4, 0xeb, 0xfe, 0x2d, 0x5d, 0xb5, - 0x7b, 0x71, 0xeb, 0xf4, 0xcc, 0x25, 0x3f, 0xce, 0xdc, 0xda, 0x97, 0x89, 0x4b, 0x4e, 0x27, 0x2e, - 0xf9, 0x3e, 0x71, 0xc9, 0xcf, 0x89, 0x4b, 0xbe, 0xfe, 0x72, 0x6b, 0x27, 0x4d, 0xf3, 0x5f, 0xb3, - 0xfb, 0x27, 0x00, 0x00, 0xff, 0xff, 0x99, 0xda, 0x39, 0xd8, 0xb5, 0x04, 0x00, 0x00, + // 562 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcb, 0x8e, 0xd3, 0x4a, + 0x10, 0x4d, 0x27, 0x77, 0xf2, 0xa8, 0xc9, 0x3c, 0xd4, 0x37, 0x42, 0x96, 0x01, 0x2b, 0x32, 0x42, + 0x8a, 0x84, 0xf0, 0x0c, 0x61, 0x01, 0x42, 0x2c, 0x18, 0x94, 0x20, 0x8d, 0x86, 0x47, 0x64, 0x16, + 0x2c, 0xa3, 0x8e, 0x53, 0xc4, 0x16, 0x76, 0xb7, 0x71, 0xb7, 0x23, 0x65, 0xc7, 0x27, 0xf0, 0x19, + 0x7c, 0xca, 0x2c, 0x59, 0xb2, 0x64, 0xc2, 0x8e, 0xaf, 0x40, 0x6e, 0xdb, 0x79, 0x29, 0x62, 0xc5, + 0xce, 0x75, 0xea, 0x9c, 0xd4, 0xa9, 0xca, 0xb1, 0xa1, 0xc5, 0xe2, 0xc0, 0x89, 0x13, 0xa1, 0x04, + 0x6d, 0x4f, 0x71, 0x1e, 0x78, 0x18, 0x87, 0xe9, 0x2c, 0xe0, 0xe6, 0xc3, 0x59, 0xa0, 0xfc, 0x74, + 0xe2, 0x78, 0x22, 0x3a, 0x9b, 0x89, 0x99, 0x38, 0xd3, 0xa4, 0x49, 0xfa, 0x51, 0x57, 0xba, 0xd0, + 0x4f, 0xb9, 0xd8, 0x0e, 0xe1, 0xc4, 0xc5, 0x59, 0x20, 0x15, 0x26, 0x2e, 0x7e, 0x4e, 0x51, 0x2a, + 0x6a, 0x40, 0x63, 0x8e, 0x89, 0x0c, 0x04, 0x37, 0x48, 0x97, 0xf4, 0x5a, 0x6e, 0x59, 0x52, 0x13, + 0x9a, 0xc8, 0xa7, 0xb1, 0x08, 0xb8, 0x32, 0xaa, 0xba, 0xb5, 0xaa, 0xe9, 0x3d, 0x38, 0x4a, 0x50, + 0x8a, 0x34, 0xf1, 0x70, 0xcc, 0x59, 0x84, 0x46, 0x4d, 0x13, 0xda, 0x25, 0xf8, 0x96, 0x45, 0x68, + 0x37, 0xe0, 0x60, 0x18, 0xc5, 0x6a, 0x61, 0xbf, 0x82, 0xce, 0xeb, 0x40, 0xaa, 0x0b, 0x3e, 0xfd, + 0xc0, 0x94, 0xe7, 0xbb, 0x28, 0x63, 0xc1, 0x25, 0x52, 0x07, 0x1a, 0xf9, 0x36, 0xd2, 0x20, 0xdd, + 0x5a, 0xef, 0xb0, 0xdf, 0x71, 0x36, 0xb7, 0x73, 0x06, 0xba, 0x70, 0x4b, 0x92, 0x7d, 0x0e, 0xf5, + 0x1c, 0xa2, 0xc7, 0x50, 0xbd, 0x1c, 0x14, 0x86, 0xab, 0xc1, 0x80, 0xde, 0x82, 0xba, 0x8f, 0x2c, + 0x54, 0x7e, 0xe1, 0xb4, 0xa8, 0xec, 0x47, 0x70, 0x72, 0x11, 0x86, 0xc2, 0x63, 0x0a, 0xcb, 0x85, + 0x2d, 0x80, 0xe2, 0xf7, 0x2e, 0x07, 0xf9, 0xdc, 0x96, 0xbb, 0x81, 0xd8, 0xbf, 0x09, 0x9c, 0xae, + 0x35, 0x85, 0xd3, 0xe7, 0xf0, 0x1f, 0xf2, 0x79, 0x69, 0xb3, 0xb7, 0x6d, 0x73, 0x97, 0xed, 0x0c, + 0xf9, 0x5c, 0x0e, 0xb9, 0x4a, 0x16, 0xae, 0x56, 0xd1, 0x07, 0x50, 0x8f, 0x44, 0xca, 0x95, 0x34, + 0xaa, 0x5a, 0xff, 0xff, 0xb6, 0xfe, 0x4d, 0xd6, 0x73, 0x0b, 0x0a, 0xed, 0xaf, 0x8f, 0x52, 0xd3, + 0x6c, 0x63, 0xdf, 0x51, 0xde, 0xc7, 0xe8, 0xad, 0x0e, 0x63, 0x3e, 0x81, 0xd6, 0x6a, 0x26, 0x3d, + 0x85, 0xda, 0x27, 0x5c, 0x14, 0xc7, 0xc9, 0x1e, 0x69, 0x07, 0x0e, 0xe6, 0x2c, 0x4c, 0xb1, 0x38, + 0x4e, 0x5e, 0x3c, 0xab, 0x3e, 0x25, 0xb6, 0x0f, 0x07, 0x7a, 0x3a, 0xbd, 0x0f, 0xc7, 0x9e, 0xe0, + 0x8a, 0x05, 0x1c, 0x93, 0x71, 0xcc, 0x94, 0x5f, 0xe8, 0x8f, 0x56, 0xe8, 0x88, 0x29, 0x9f, 0xde, + 0x86, 0x96, 0x2f, 0xa4, 0xca, 0x19, 0x45, 0x28, 0x32, 0xa0, 0x6c, 0x26, 0xc8, 0xa6, 0x63, 0xc1, + 0xc3, 0x85, 0x0e, 0x44, 0xd3, 0x6d, 0x66, 0xc0, 0x3b, 0x1e, 0x2e, 0xec, 0x04, 0x60, 0xed, 0xfc, + 0x9f, 0x8c, 0xeb, 0xc2, 0x61, 0x8c, 0x49, 0x14, 0xc8, 0x2c, 0xad, 0xb2, 0x48, 0xe0, 0x26, 0xd4, + 0x1f, 0x41, 0x3b, 0x8f, 0x7b, 0xc2, 0x54, 0x96, 0xe8, 0x17, 0xd0, 0x2c, 0xe3, 0x4f, 0xef, 0x6e, + 0x5f, 0x75, 0xe7, 0xb5, 0x30, 0x77, 0xfe, 0xa2, 0x3c, 0xc7, 0x95, 0xfe, 0x37, 0x02, 0xed, 0x7c, + 0x8d, 0x91, 0x6e, 0xd0, 0x2b, 0x68, 0x6f, 0x46, 0x9b, 0xee, 0xd3, 0x99, 0xf6, 0x36, 0xb8, 0xef, + 0x5d, 0xb0, 0x2b, 0xe7, 0x84, 0x5e, 0x41, 0xb3, 0xcc, 0xd2, 0xae, 0xbf, 0x9d, 0x14, 0x9b, 0xd6, + 0xdf, 0x23, 0x68, 0x57, 0x5e, 0xde, 0xb9, 0xbe, 0xb1, 0xc8, 0x8f, 0x1b, 0xab, 0xf2, 0x65, 0x69, + 0x91, 0xeb, 0xa5, 0x45, 0xbe, 0x2f, 0x2d, 0xf2, 0x73, 0x69, 0x91, 0xaf, 0xbf, 0xac, 0xca, 0xa4, + 0xae, 0x3f, 0x08, 0x8f, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x17, 0x55, 0xaf, 0xe1, 0x5a, 0x04, + 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/api.proto b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/api.proto similarity index 91% rename from vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/api.proto rename to vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/api.proto index e222d14a7..05408cbb1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/api.proto +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/api.proto @@ -81,25 +81,21 @@ message AllocateRequest { repeated string devicesIDs = 1; } +// AllocateResponse includes the artifacts that needs to be injected into +// a container for accessing 'deviceIDs' that were mentioned as part of +// 'AllocateRequest'. // Failure Handling: // if Kubelet sends an allocation request for dev1 and dev2. // Allocation on dev1 succeeds but allocation on dev2 fails. // The Device plugin should send a ListAndWatch update and fail the // Allocation request message AllocateResponse { - repeated DeviceRuntimeSpec spec = 1; -} - -// The list to be added to the CRI spec -message DeviceRuntimeSpec { - // ID of the Device - string ID = 1; - // List of environment variable to set in the container. - map envs = 2; + // List of environment variable to be set in the container to access one of more devices. + map envs = 1; // Mounts for the container. - repeated Mount mounts = 3; - // Devices for the container - repeated DeviceSpec devices = 4; + repeated Mount mounts = 2; + // Devices for the container. + repeated DeviceSpec devices = 3; } // Mount specifies a host volume to mount into a container. diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/constants.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/constants.go similarity index 93% rename from vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/constants.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/constants.go index fb0440cce..896354ab9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1/constants.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha/constants.go @@ -22,8 +22,8 @@ const ( // UnHealthy means that the device is unhealty Unhealthy = "Unhealthy" - // Version is the API version - Version = "0.1" + // Current version of the API supported by kubelet + Version = "v1alpha2" // DevicePluginPath is the folder the Device Plugin is expecting sockets to be on // Only privileged pods have access to this path // Note: Placeholder until we find a "standard path" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/BUILD index 252d7c2aa..e340e0b95 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/BUILD @@ -3,21 +3,22 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( name = "go_default_library", srcs = [ "doc.go", + "helpers.go", "register.go", "types.go", "zz_generated.deepcopy.go", ], importpath = "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], @@ -40,3 +41,14 @@ filegroup( ], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = ["helpers_test.go"], + importpath = "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig", + library = ":go_default_library", + deps = [ + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/doc.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/doc.go index 831e60061..bd856d831 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package kubeletconfig // import "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/helpers.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/helpers.go new file mode 100644 index 000000000..debdb7da6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/helpers.go @@ -0,0 +1,34 @@ +/* +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 kubeletconfig + +// KubeletConfigurationPathRefs returns pointers to all of the KubeletConfiguration fields that contain filepaths. +// You might use this, for example, to resolve all relative paths against some common root before +// passing the configuration to the application. This method must be kept up to date as new fields are added. +func KubeletConfigurationPathRefs(kc *KubeletConfiguration) []*string { + paths := []*string{} + paths = append(paths, &kc.PodManifestPath) + paths = append(paths, &kc.Authentication.X509.ClientCAFile) + paths = append(paths, &kc.TLSCertFile) + paths = append(paths, &kc.TLSPrivateKeyFile) + paths = append(paths, &kc.SeccompProfileRoot) + paths = append(paths, &kc.ResolverConfig) + // TODO(#55562): planning on moving two out of KubeletConfiguration + paths = append(paths, &kc.VolumePluginDir) + paths = append(paths, &kc.LockFilePath) + return paths +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/helpers_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/helpers_test.go new file mode 100644 index 000000000..24bab8779 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/helpers_test.go @@ -0,0 +1,241 @@ +/* +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 kubeletconfig + +import ( + "reflect" + "strings" + "testing" + + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation/field" +) + +func TestKubeletConfigurationPathFields(t *testing.T) { + // ensure the intersection of kubeletConfigurationPathFieldPaths and KubeletConfigurationNonPathFields is empty + if i := kubeletConfigurationPathFieldPaths.Intersection(kubeletConfigurationNonPathFieldPaths); len(i) > 0 { + t.Fatalf("expect the intersection of kubeletConfigurationPathFieldPaths and "+ + "KubeletConfigurationNonPathFields to be emtpy, got:\n%s", + strings.Join(i.List(), "\n")) + } + + // ensure that kubeletConfigurationPathFields U kubeletConfigurationNonPathFields == allPrimitiveFieldPaths(KubeletConfiguration) + expect := sets.NewString().Union(kubeletConfigurationPathFieldPaths).Union(kubeletConfigurationNonPathFieldPaths) + result := allPrimitiveFieldPaths(t, reflect.TypeOf(&KubeletConfiguration{}), nil) + if !expect.Equal(result) { + // expected fields missing from result + missing := expect.Difference(result) + // unexpected fields in result but not specified in expect + unexpected := result.Difference(expect) + if len(missing) > 0 { + t.Errorf("the following fields were expected, but missing from the result. "+ + "If the field has been removed, please remove it from the kubeletConfigurationPathFieldPaths set "+ + "and the KubeletConfigurationPathRefs function, "+ + "or remove it from the kubeletConfigurationNonPathFieldPaths set, as appropriate:\n%s", + strings.Join(missing.List(), "\n")) + } + if len(unexpected) > 0 { + t.Errorf("the following fields were in the result, but unexpected. "+ + "If the field is new, please add it to the kubeletConfigurationPathFieldPaths set "+ + "and the KubeletConfigurationPathRefs function, "+ + "or add it to the kubeletConfigurationNonPathFieldPaths set, as appropriate:\n%s", + strings.Join(unexpected.List(), "\n")) + } + } +} + +func allPrimitiveFieldPaths(t *testing.T, tp reflect.Type, path *field.Path) sets.String { + paths := sets.NewString() + switch tp.Kind() { + case reflect.Ptr: + paths.Insert(allPrimitiveFieldPaths(t, tp.Elem(), path).List()...) + case reflect.Struct: + for i := 0; i < tp.NumField(); i++ { + field := tp.Field(i) + paths.Insert(allPrimitiveFieldPaths(t, field.Type, path.Child(field.Name)).List()...) + } + case reflect.Map, reflect.Slice: + paths.Insert(allPrimitiveFieldPaths(t, tp.Elem(), path.Key("*")).List()...) + case reflect.Interface: + t.Fatalf("unexpected interface{} field %s", path.String()) + default: + // if we hit a primitive type, we're at a leaf + paths.Insert(path.String()) + } + return paths +} + +// dummy helper types +type foo struct { + foo int +} +type bar struct { + str string + strptr *string + + ints []int + stringMap map[string]string + + foo foo + fooptr *foo + + bars []foo + barMap map[string]foo +} + +func TestAllPrimitiveFieldPaths(t *testing.T) { + expect := sets.NewString( + "str", + "strptr", + "ints[*]", + "stringMap[*]", + "foo.foo", + "fooptr.foo", + "bars[*].foo", + "barMap[*].foo", + ) + result := allPrimitiveFieldPaths(t, reflect.TypeOf(&bar{}), nil) + if !expect.Equal(result) { + // expected fields missing from result + missing := expect.Difference(result) + + // unexpected fields in result but not specified in expect + unexpected := result.Difference(expect) + + if len(missing) > 0 { + t.Errorf("the following fields were exepcted, but missing from the result:\n%s", strings.Join(missing.List(), "\n")) + } + if len(unexpected) > 0 { + t.Errorf("the following fields were in the result, but unexpected:\n%s", strings.Join(unexpected.List(), "\n")) + } + } +} + +var ( + // KubeletConfiguration fields that contain file paths. If you update this, also update KubeletConfigurationPathRefs! + kubeletConfigurationPathFieldPaths = sets.NewString( + "PodManifestPath", + "Authentication.X509.ClientCAFile", + "TLSCertFile", + "TLSPrivateKeyFile", + "SeccompProfileRoot", + "ResolverConfig", + "VolumePluginDir", + "LockFilePath", + ) + + // KubeletConfiguration fields that do not contain file paths. + kubeletConfigurationNonPathFieldPaths = sets.NewString( + "Address", + "AllowPrivileged", + "Authentication.Anonymous.Enabled", + "Authentication.Webhook.CacheTTL.Duration", + "Authentication.Webhook.Enabled", + "Authorization.Mode", + "Authorization.Webhook.CacheAuthorizedTTL.Duration", + "Authorization.Webhook.CacheUnauthorizedTTL.Duration", + "CAdvisorPort", + "CPUCFSQuota", + "CPUManagerPolicy", + "CPUManagerReconcilePeriod.Duration", + "CgroupDriver", + "CgroupRoot", + "CgroupsPerQOS", + "ClusterDNS[*]", + "ClusterDomain", + "ConfigTrialDuration.Duration", + "ContentType", + "EnableContentionProfiling", + "EnableControllerAttachDetach", + "EnableDebuggingHandlers", + "EnableServer", + "EnforceNodeAllocatable[*]", + "EventBurst", + "EventRecordQPS", + "EvictionHard", + "EvictionMaxPodGracePeriod", + "EvictionMinimumReclaim", + "EvictionPressureTransitionPeriod.Duration", + "EvictionSoft", + "EvictionSoftGracePeriod", + "ExitOnLockContention", + "FailSwapOn", + "FeatureGates[*]", + "FileCheckFrequency.Duration", + "HTTPCheckFrequency.Duration", + "HairpinMode", + "HealthzBindAddress", + "HealthzPort", + "HostIPCSources[*]", + "HostNetworkSources[*]", + "HostPIDSources[*]", + "IPTablesDropBit", + "IPTablesMasqueradeBit", + "ImageGCHighThresholdPercent", + "ImageGCLowThresholdPercent", + "ImageMinimumGCAge.Duration", + "KubeAPIBurst", + "KubeAPIQPS", + "KubeReservedCgroup", + "KubeReserved[*]", + "KubeletCgroups", + "MakeIPTablesUtilChains", + "ManifestURL", + "ManifestURLHeader[*][*]", + "MaxOpenFiles", + "MaxPods", + "NodeLabels[*]", + "NodeStatusUpdateFrequency.Duration", + "OOMScoreAdj", + "PodCIDR", + "PodsPerCore", + "Port", + "ProtectKernelDefaults", + "ReadOnlyPort", + "RegisterNode", + "RegisterWithTaints[*].Effect", + "RegisterWithTaints[*].Key", + "RegisterWithTaints[*].TimeAdded.Time.ext", + "RegisterWithTaints[*].TimeAdded.Time.loc.cacheEnd", + "RegisterWithTaints[*].TimeAdded.Time.loc.cacheStart", + "RegisterWithTaints[*].TimeAdded.Time.loc.cacheZone.isDST", + "RegisterWithTaints[*].TimeAdded.Time.loc.cacheZone.name", + "RegisterWithTaints[*].TimeAdded.Time.loc.cacheZone.offset", + "RegisterWithTaints[*].TimeAdded.Time.loc.name", + "RegisterWithTaints[*].TimeAdded.Time.loc.tx[*].index", + "RegisterWithTaints[*].TimeAdded.Time.loc.tx[*].isstd", + "RegisterWithTaints[*].TimeAdded.Time.loc.tx[*].isutc", + "RegisterWithTaints[*].TimeAdded.Time.loc.tx[*].when", + "RegisterWithTaints[*].TimeAdded.Time.loc.zone[*].isDST", + "RegisterWithTaints[*].TimeAdded.Time.loc.zone[*].name", + "RegisterWithTaints[*].TimeAdded.Time.loc.zone[*].offset", + "RegisterWithTaints[*].TimeAdded.Time.wall", + "RegisterWithTaints[*].Value", + "RegistryBurst", + "RegistryPullQPS", + "RuntimeRequestTimeout.Duration", + "SerializeImagePulls", + "StreamingConnectionIdleTimeout.Duration", + "SyncFrequency.Duration", + "SystemCgroups", + "SystemReservedCgroup", + "SystemReserved[*]", + "TypeMeta.APIVersion", + "TypeMeta.Kind", + "VolumeStatsAggPeriod.Duration", + ) +) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/types.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/types.go index 73fb46334..947774aed 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/types.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/types.go @@ -22,7 +22,7 @@ import ( "strings" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // HairpinMode denotes how the kubelet should configure networking to handle @@ -70,7 +70,7 @@ type KubeletConfiguration struct { ManifestURL string // manifestURLHeader is the HTTP header to use when accessing the manifest // URL, with the key separated from the value with a ':', as in 'key:value' - ManifestURLHeader string + ManifestURLHeader map[string][]string // enableServer enables the Kubelet's server EnableServer bool // address is the IP address for the Kubelet to serve on (set to 0.0.0.0 @@ -181,9 +181,6 @@ type KubeletConfiguration struct { // driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd) // +optional CgroupDriver string - // Cgroups that container runtime is expected to be isolated in. - // +optional - RuntimeCgroups string // SystemCgroups is absolute name of cgroups in which to place // all non-kernel processes that are not already in a container. Empty // for no container. Rolling back the flag requires a reboot. @@ -193,8 +190,6 @@ type KubeletConfiguration struct { // If CgroupsPerQOS is enabled, this is the root of the QoS cgroup hierarchy. // +optional CgroupRoot string - // containerRuntime is the container runtime to use. - ContainerRuntime string // CPUManagerPolicy is the name of the policy to use. CPUManagerPolicy string // CPU Manager reconciliation period. @@ -227,7 +222,7 @@ type KubeletConfiguration struct { // In cluster mode, this is obtained from the master. PodCIDR string // ResolverConfig is the resolver configuration file used as the basis - // for the container DNS resolution configuration."), [] + // for the container DNS resolution configuration. ResolverConfig string // cpuCFSQuota is Enable CPU CFS quota enforcement for containers that // specify CPU limits @@ -252,8 +247,6 @@ type KubeletConfiguration struct { SerializeImagePulls bool // nodeLabels to add when registering the node in the cluster. NodeLabels map[string]string - // enable gathering custom metrics. - EnableCustomMetrics bool // Comma-delimited list of hard eviction expressions. For example, 'memory.available<300Mi'. // +optional EvictionHard string diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/BUILD index f72ddde62..317244557 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/BUILD @@ -18,7 +18,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/qos:go_default_library", "//pkg/kubelet/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/defaults.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/defaults.go index 15eff10c0..941a975e6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/defaults.go @@ -84,9 +84,6 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { if obj.VolumeStatsAggPeriod == zeroDuration { obj.VolumeStatsAggPeriod = metav1.Duration{Duration: time.Minute} } - if obj.ContainerRuntime == "" { - obj.ContainerRuntime = kubetypes.DockerContainerRuntime - } if obj.RuntimeRequestTimeout == zeroDuration { obj.RuntimeRequestTimeout = metav1.Duration{Duration: 2 * time.Minute} } @@ -245,6 +242,9 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { if obj.FeatureGates == nil { obj.FeatureGates = make(map[string]bool) } + if obj.ManifestURLHeader == nil { + obj.ManifestURLHeader = make(map[string][]string) + } } func boolVar(b bool) *bool { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/doc.go index dc1a19536..eb9b39136 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/types.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/types.go index c90fbff04..b2375d9aa 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/types.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/types.go @@ -66,7 +66,7 @@ type KubeletConfiguration struct { ManifestURL string `json:"manifestURL"` // manifestURLHeader is the HTTP header to use when accessing the manifest // URL, with the key separated from the value with a ':', as in 'key:value' - ManifestURLHeader string `json:"manifestURLHeader"` + ManifestURLHeader map[string][]string `json:"manifestURLHeader"` // enableServer enables the Kubelet's server EnableServer *bool `json:"enableServer"` // address is the IP address for the Kubelet to serve on (set to 0.0.0.0 @@ -169,8 +169,6 @@ type KubeletConfiguration struct { VolumePluginDir string `json:"volumePluginDir"` // kubeletCgroups is the absolute name of cgroups to isolate the kubelet in. KubeletCgroups string `json:"kubeletCgroups"` - // runtimeCgroups are cgroups that container runtime is expected to be isolated in. - RuntimeCgroups string `json:"runtimeCgroups"` // systemCgroups is absolute name of cgroups in which to place // all non-kernel processes that are not already in a container. Empty // for no container. Rolling back the flag requires a reboot. @@ -186,8 +184,6 @@ type KubeletConfiguration struct { // driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd) // +optional CgroupDriver string `json:"cgroupDriver,omitempty"` - // containerRuntime is the container runtime to use. - ContainerRuntime string `json:"containerRuntime"` // CPUManagerPolicy is the name of the policy to use. CPUManagerPolicy string `json:"cpuManagerPolicy"` // CPU Manager reconciliation period. @@ -219,7 +215,7 @@ type KubeletConfiguration struct { // In cluster mode, this is obtained from the master. PodCIDR string `json:"podCIDR"` // ResolverConfig is the resolver configuration file used as the basis - // for the container DNS resolution configuration."), [] + // for the container DNS resolution configuration. ResolverConfig string `json:"resolvConf"` // cpuCFSQuota is Enable CPU CFS quota enforcement for containers that // specify CPU limits @@ -244,8 +240,6 @@ type KubeletConfiguration struct { SerializeImagePulls *bool `json:"serializeImagePulls"` // nodeLabels to add when registering the node in the cluster. NodeLabels map[string]string `json:"nodeLabels"` - // enable gathering custom metrics. - EnableCustomMetrics bool `json:"enableCustomMetrics"` // Comma-delimited list of hard eviction expressions. For example, 'memory.available<300Mi'. EvictionHard *string `json:"evictionHard"` // Comma-delimited list of soft eviction expressions. For example, 'memory.available<300Mi'. diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.conversion.go index 5b4aeef55..5e4e97584 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.conversion.go @@ -25,7 +25,7 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" unsafe "unsafe" ) @@ -148,7 +148,7 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfigura out.FileCheckFrequency = in.FileCheckFrequency out.HTTPCheckFrequency = in.HTTPCheckFrequency out.ManifestURL = in.ManifestURL - out.ManifestURLHeader = in.ManifestURLHeader + out.ManifestURLHeader = *(*map[string][]string)(unsafe.Pointer(&in.ManifestURLHeader)) if err := v1.Convert_Pointer_bool_To_bool(&in.EnableServer, &out.EnableServer, s); err != nil { return err } @@ -211,14 +211,12 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfigura out.VolumeStatsAggPeriod = in.VolumeStatsAggPeriod out.VolumePluginDir = in.VolumePluginDir out.KubeletCgroups = in.KubeletCgroups - out.RuntimeCgroups = in.RuntimeCgroups out.SystemCgroups = in.SystemCgroups out.CgroupRoot = in.CgroupRoot if err := v1.Convert_Pointer_bool_To_bool(&in.CgroupsPerQOS, &out.CgroupsPerQOS, s); err != nil { return err } out.CgroupDriver = in.CgroupDriver - out.ContainerRuntime = in.ContainerRuntime out.CPUManagerPolicy = in.CPUManagerPolicy out.CPUManagerReconcilePeriod = in.CPUManagerReconcilePeriod out.RuntimeRequestTimeout = in.RuntimeRequestTimeout @@ -234,7 +232,7 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfigura return err } out.MaxOpenFiles = in.MaxOpenFiles - out.RegisterWithTaints = *(*[]api.Taint)(unsafe.Pointer(&in.RegisterWithTaints)) + out.RegisterWithTaints = *(*[]core.Taint)(unsafe.Pointer(&in.RegisterWithTaints)) out.ContentType = in.ContentType if err := v1.Convert_Pointer_int32_To_int32(&in.KubeAPIQPS, &out.KubeAPIQPS, s); err != nil { return err @@ -244,7 +242,6 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_kubeletconfig_KubeletConfigura return err } out.NodeLabels = *(*map[string]string)(unsafe.Pointer(&in.NodeLabels)) - out.EnableCustomMetrics = in.EnableCustomMetrics if err := v1.Convert_Pointer_string_To_string(&in.EvictionHard, &out.EvictionHard, s); err != nil { return err } @@ -289,7 +286,7 @@ func autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigura out.FileCheckFrequency = in.FileCheckFrequency out.HTTPCheckFrequency = in.HTTPCheckFrequency out.ManifestURL = in.ManifestURL - out.ManifestURLHeader = in.ManifestURLHeader + out.ManifestURLHeader = *(*map[string][]string)(unsafe.Pointer(&in.ManifestURLHeader)) if err := v1.Convert_bool_To_Pointer_bool(&in.EnableServer, &out.EnableServer, s); err != nil { return err } @@ -356,10 +353,8 @@ func autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigura return err } out.CgroupDriver = in.CgroupDriver - out.RuntimeCgroups = in.RuntimeCgroups out.SystemCgroups = in.SystemCgroups out.CgroupRoot = in.CgroupRoot - out.ContainerRuntime = in.ContainerRuntime out.CPUManagerPolicy = in.CPUManagerPolicy out.CPUManagerReconcilePeriod = in.CPUManagerReconcilePeriod out.RuntimeRequestTimeout = in.RuntimeRequestTimeout @@ -385,7 +380,6 @@ func autoConvert_kubeletconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigura return err } out.NodeLabels = *(*map[string]string)(unsafe.Pointer(&in.NodeLabels)) - out.EnableCustomMetrics = in.EnableCustomMetrics if err := v1.Convert_string_To_Pointer_string(&in.EvictionHard, &out.EvictionHard, s); err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.deepcopy.go index df855d99c..88311be36 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/v1alpha1/zz_generated.deepcopy.go @@ -23,52 +23,9 @@ package v1alpha1 import ( core_v1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletAnonymousAuthentication).DeepCopyInto(out.(*KubeletAnonymousAuthentication)) - return nil - }, InType: reflect.TypeOf(&KubeletAnonymousAuthentication{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletAuthentication).DeepCopyInto(out.(*KubeletAuthentication)) - return nil - }, InType: reflect.TypeOf(&KubeletAuthentication{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletAuthorization).DeepCopyInto(out.(*KubeletAuthorization)) - return nil - }, InType: reflect.TypeOf(&KubeletAuthorization{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletConfiguration).DeepCopyInto(out.(*KubeletConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeletConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletWebhookAuthentication).DeepCopyInto(out.(*KubeletWebhookAuthentication)) - return nil - }, InType: reflect.TypeOf(&KubeletWebhookAuthentication{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletWebhookAuthorization).DeepCopyInto(out.(*KubeletWebhookAuthorization)) - return nil - }, InType: reflect.TypeOf(&KubeletWebhookAuthorization{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletX509Authentication).DeepCopyInto(out.(*KubeletX509Authentication)) - return nil - }, InType: reflect.TypeOf(&KubeletX509Authentication{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *KubeletAnonymousAuthentication) DeepCopyInto(out *KubeletAnonymousAuthentication) { *out = *in @@ -146,6 +103,18 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) { out.SyncFrequency = in.SyncFrequency out.FileCheckFrequency = in.FileCheckFrequency out.HTTPCheckFrequency = in.HTTPCheckFrequency + if in.ManifestURLHeader != nil { + in, out := &in.ManifestURLHeader, &out.ManifestURLHeader + *out = make(map[string][]string, len(*in)) + for key, val := range *in { + if val == nil { + (*out)[key] = nil + } else { + (*out)[key] = make([]string, len(val)) + copy((*out)[key], val) + } + } + } if in.EnableServer != nil { in, out := &in.EnableServer, &out.EnableServer if *in == nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/validation/validation_test.go index d9bff809d..1e07e4161 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/validation/validation_test.go @@ -26,7 +26,7 @@ import ( func TestValidateKubeletConfiguration(t *testing.T) { successCase := &kubeletconfig.KubeletConfiguration{ CgroupsPerQOS: true, - EnforceNodeAllocatable: []string{"pods"}, + EnforceNodeAllocatable: []string{"pods", "system-reserved", "kube-reserved"}, SystemCgroups: "", CgroupRoot: "", CAdvisorPort: 0, @@ -54,7 +54,7 @@ func TestValidateKubeletConfiguration(t *testing.T) { errorCase := &kubeletconfig.KubeletConfiguration{ CgroupsPerQOS: false, - EnforceNodeAllocatable: []string{"pods"}, + EnforceNodeAllocatable: []string{"pods", "system-reserved", "kube-reserved", "illegal-key"}, SystemCgroups: "/", CgroupRoot: "", CAdvisorPort: -10, @@ -76,7 +76,7 @@ func TestValidateKubeletConfiguration(t *testing.T) { RegistryBurst: -10, RegistryPullQPS: -10, } - if allErrors := ValidateKubeletConfiguration(errorCase); len(allErrors.(utilerrors.Aggregate).Errors()) != 20 { - t.Errorf("expect 20 errors got %v", len(allErrors.(utilerrors.Aggregate).Errors())) + if allErrors := ValidateKubeletConfiguration(errorCase); len(allErrors.(utilerrors.Aggregate).Errors()) != 21 { + t.Errorf("expect 21 errors got %v", len(allErrors.(utilerrors.Aggregate).Errors())) } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/zz_generated.deepcopy.go index 9be3d24a4..9a05dd760 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/zz_generated.deepcopy.go @@ -22,53 +22,10 @@ package kubeletconfig import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - reflect "reflect" + core "k8s.io/kubernetes/pkg/apis/core" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletAnonymousAuthentication).DeepCopyInto(out.(*KubeletAnonymousAuthentication)) - return nil - }, InType: reflect.TypeOf(&KubeletAnonymousAuthentication{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletAuthentication).DeepCopyInto(out.(*KubeletAuthentication)) - return nil - }, InType: reflect.TypeOf(&KubeletAuthentication{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletAuthorization).DeepCopyInto(out.(*KubeletAuthorization)) - return nil - }, InType: reflect.TypeOf(&KubeletAuthorization{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletConfiguration).DeepCopyInto(out.(*KubeletConfiguration)) - return nil - }, InType: reflect.TypeOf(&KubeletConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletWebhookAuthentication).DeepCopyInto(out.(*KubeletWebhookAuthentication)) - return nil - }, InType: reflect.TypeOf(&KubeletWebhookAuthentication{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletWebhookAuthorization).DeepCopyInto(out.(*KubeletWebhookAuthorization)) - return nil - }, InType: reflect.TypeOf(&KubeletWebhookAuthorization{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KubeletX509Authentication).DeepCopyInto(out.(*KubeletX509Authentication)) - return nil - }, InType: reflect.TypeOf(&KubeletX509Authentication{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *KubeletAnonymousAuthentication) DeepCopyInto(out *KubeletAnonymousAuthentication) { *out = *in @@ -137,6 +94,18 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) { out.SyncFrequency = in.SyncFrequency out.FileCheckFrequency = in.FileCheckFrequency out.HTTPCheckFrequency = in.HTTPCheckFrequency + if in.ManifestURLHeader != nil { + in, out := &in.ManifestURLHeader, &out.ManifestURLHeader + *out = make(map[string][]string, len(*in)) + for key, val := range *in { + if val == nil { + (*out)[key] = nil + } else { + (*out)[key] = make([]string, len(val)) + copy((*out)[key], val) + } + } + } out.Authentication = in.Authentication out.Authorization = in.Authorization if in.HostNetworkSources != nil { @@ -167,7 +136,7 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) { out.RuntimeRequestTimeout = in.RuntimeRequestTimeout if in.RegisterWithTaints != nil { in, out := &in.RegisterWithTaints, &out.RegisterWithTaints - *out = make([]api.Taint, len(*in)) + *out = make([]core.Taint, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/BUILD index c64cad6af..adb113dd9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/BUILD @@ -26,7 +26,7 @@ go_library( }), importpath = "k8s.io/kubernetes/pkg/kubelet/cadvisor", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/features:go_default_library", "//vendor/github.com/google/cadvisor/events:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/util.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/util.go index dd4d7c4b1..6c679a072 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/util.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cadvisor/util.go @@ -22,7 +22,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" utilfeature "k8s.io/apiserver/pkg/util/feature" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/features" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap/BUILD index e4aeb0e97..05d24e0c0 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap/BUILD @@ -22,14 +22,16 @@ go_library( srcs = ["bootstrap.go"], importpath = "k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap", deps = [ - "//pkg/kubelet/util/csr:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", + "//vendor/k8s.io/client-go/transport:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", + "//vendor/k8s.io/client-go/util/certificate/csr:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap/bootstrap.go b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap/bootstrap.go index 2952ba0bd..d123c0bee 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap/bootstrap.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap/bootstrap.go @@ -20,16 +20,19 @@ import ( "fmt" "os" "path/filepath" + "time" "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" certificates "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + "k8s.io/client-go/transport" certutil "k8s.io/client-go/util/cert" - "k8s.io/kubernetes/pkg/kubelet/util/csr" + "k8s.io/client-go/util/certificate/csr" ) const ( @@ -42,17 +45,15 @@ const ( // On success, a kubeconfig file referencing the generated key and obtained certificate is written to kubeconfigPath. // The certificate and key file are stored in certDir. func LoadClientCert(kubeconfigPath string, bootstrapPath string, certDir string, nodeName types.NodeName) error { - // Short-circuit if the kubeconfig file already exists. - // TODO: inspect the kubeconfig, ensure a rest client can be built from it, verify client cert expiration, etc. - _, err := os.Stat(kubeconfigPath) - if err == nil { - glog.V(2).Infof("Kubeconfig %s exists, skipping bootstrap", kubeconfigPath) - return nil - } - if !os.IsNotExist(err) { - glog.Errorf("Error reading kubeconfig %s, skipping bootstrap: %v", kubeconfigPath, err) + // Short-circuit if the kubeconfig file exists and is valid. + ok, err := verifyBootstrapClientConfig(kubeconfigPath) + if err != nil { return err } + if ok { + glog.V(2).Infof("Kubeconfig %s exists and is valid, skipping bootstrap", kubeconfigPath) + return nil + } glog.V(2).Info("Using bootstrap kubeconfig to generate TLS client cert, key and kubeconfig file") @@ -72,6 +73,17 @@ func LoadClientCert(kubeconfigPath string, bootstrapPath string, certDir string, if err != nil { return fmt.Errorf("unable to build bootstrap key path: %v", err) } + // If we are unable to generate a CSR, we remove our key file and start fresh. + // This method is used before enabling client rotation and so we must ensure we + // can make forward progress if we crash and exit when a CSR exists but the cert + // it is signed for has expired. + defer func() { + if !success { + if err := os.Remove(keyPath); err != nil && !os.IsNotExist(err) { + glog.Warningf("Cannot clean up the key file %q: %v", keyPath, err) + } + } + }() keyData, _, err := certutil.LoadOrGenerateKeyFile(keyPath) if err != nil { return err @@ -82,6 +94,13 @@ func LoadClientCert(kubeconfigPath string, bootstrapPath string, certDir string, if err != nil { return fmt.Errorf("unable to build bootstrap client cert path: %v", err) } + defer func() { + if !success { + if err := os.Remove(certPath); err != nil && !os.IsNotExist(err) { + glog.Warningf("Cannot clean up the cert file %q: %v", certPath, err) + } + } + }() certData, err := csr.RequestNodeCertificate(bootstrapClient.CertificateSigningRequests(), keyData, nodeName) if err != nil { return err @@ -89,13 +108,6 @@ func LoadClientCert(kubeconfigPath string, bootstrapPath string, certDir string, if err := certutil.WriteCert(certPath, certData); err != nil { return err } - defer func() { - if !success { - if err := os.Remove(certPath); err != nil { - glog.Warningf("Cannot clean up the cert file %q: %v", certPath, err) - } - } - }() // Get the CA data from the bootstrap client config. caFile, caData := bootstrapClientConfig.CAFile, []byte{} @@ -150,3 +162,48 @@ func loadRESTClientConfig(kubeconfig string) (*restclient.Config, error) { loader, ).ClientConfig() } + +// verifyBootstrapClientConfig checks the provided kubeconfig to see if it has a valid +// client certificate. It returns true if the kubeconfig is valid, or an error if bootstrapping +// should stop immediately. +func verifyBootstrapClientConfig(kubeconfigPath string) (bool, error) { + _, err := os.Stat(kubeconfigPath) + if os.IsNotExist(err) { + return false, nil + } + if err != nil { + return false, fmt.Errorf("error reading existing bootstrap kubeconfig %s: %v", kubeconfigPath, err) + } + bootstrapClientConfig, err := loadRESTClientConfig(kubeconfigPath) + if err != nil { + utilruntime.HandleError(fmt.Errorf("Unable to read existing bootstrap client config: %v", err)) + return false, nil + } + transportConfig, err := bootstrapClientConfig.TransportConfig() + if err != nil { + utilruntime.HandleError(fmt.Errorf("Unable to load transport configuration from existing bootstrap client config: %v", err)) + return false, nil + } + // has side effect of populating transport config data fields + if _, err := transport.TLSConfigFor(transportConfig); err != nil { + utilruntime.HandleError(fmt.Errorf("Unable to load TLS configuration from existing bootstrap client config: %v", err)) + return false, nil + } + certs, err := certutil.ParseCertsPEM(transportConfig.TLS.CertData) + if err != nil { + utilruntime.HandleError(fmt.Errorf("Unable to load TLS certificates from existing bootstrap client config: %v", err)) + return false, nil + } + if len(certs) == 0 { + utilruntime.HandleError(fmt.Errorf("Unable to read TLS certificates from existing bootstrap client config: %v", err)) + return false, nil + } + now := time.Now() + for _, cert := range certs { + if now.After(cert.NotAfter) { + utilruntime.HandleError(fmt.Errorf("Part of the existing bootstrap client certificate is expired: %s", cert.NotAfter)) + return false, nil + } + } + return true, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/kubelet.go b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/kubelet.go index 097266c7f..b8530074c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/kubelet.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/kubelet.go @@ -37,8 +37,8 @@ import ( // or returns an error. func NewKubeletServerCertificateManager(kubeClient clientset.Interface, kubeCfg *kubeletconfig.KubeletConfiguration, nodeName types.NodeName, ips []net.IP, hostnames []string, certDirectory string) (certificate.Manager, error) { var certSigningRequestClient clientcertificates.CertificateSigningRequestInterface - if kubeClient != nil && kubeClient.Certificates() != nil { - certSigningRequestClient = kubeClient.Certificates().CertificateSigningRequests() + if kubeClient != nil && kubeClient.CertificatesV1beta1() != nil { + certSigningRequestClient = kubeClient.CertificatesV1beta1().CertificateSigningRequests() } certificateStore, err := certificate.NewFileStore( "kubelet-server", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/transport.go b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/transport.go index 49c089b44..1683ad097 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/transport.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/transport.go @@ -45,13 +45,13 @@ import ( // // stopCh should be used to indicate when the transport is unused and doesn't need // to continue checking the manager. -func UpdateTransport(stopCh <-chan struct{}, clientConfig *restclient.Config, clientCertificateManager certificate.Manager) error { - return updateTransport(stopCh, 10*time.Second, clientConfig, clientCertificateManager) +func UpdateTransport(stopCh <-chan struct{}, clientConfig *restclient.Config, clientCertificateManager certificate.Manager, exitIfExpired bool) error { + return updateTransport(stopCh, 10*time.Second, clientConfig, clientCertificateManager, exitIfExpired) } // updateTransport is an internal method that exposes how often this method checks that the // client cert has changed. Intended for testing. -func updateTransport(stopCh <-chan struct{}, period time.Duration, clientConfig *restclient.Config, clientCertificateManager certificate.Manager) error { +func updateTransport(stopCh <-chan struct{}, period time.Duration, clientConfig *restclient.Config, clientCertificateManager certificate.Manager, exitIfExpired bool) error { if clientConfig.Transport != nil { return fmt.Errorf("there is already a transport configured") } @@ -80,6 +80,13 @@ func updateTransport(stopCh <-chan struct{}, period time.Duration, clientConfig lastCert := clientCertificateManager.Current() go wait.Until(func() { curr := clientCertificateManager.Current() + if exitIfExpired && curr != nil && time.Now().After(curr.Leaf.NotAfter) { + if clientCertificateManager.ServerHealthy() { + glog.Fatalf("The currently active client certificate has expired and the server is responsive, exiting.") + } else { + glog.Errorf("The currently active client certificate has expired, but the server is not responsive. A restart may be necessary to retrieve new initial credentials.") + } + } if curr == nil || lastCert == curr { // Cert hasn't been rotated. return diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/transport_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/transport_test.go index 306c3c18a..6e476c3b8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/transport_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/transport_test.go @@ -114,13 +114,16 @@ func newCertificateData(certificatePEM string, keyPEM string) *certificateData { } type fakeManager struct { - cert atomic.Value // Always a *tls.Certificate + cert atomic.Value // Always a *tls.Certificate + healthy bool } func (f *fakeManager) SetCertificateSigningRequestClient(certificatesclient.CertificateSigningRequestInterface) error { return nil } +func (f *fakeManager) ServerHealthy() bool { return f.healthy } + func (f *fakeManager) Start() {} func (f *fakeManager) Current() *tls.Certificate { @@ -184,7 +187,7 @@ func TestRotateShutsDownConnections(t *testing.T) { } // Check for a new cert every 10 milliseconds - if err := updateTransport(stop, 10*time.Millisecond, c, m); err != nil { + if err := updateTransport(stop, 10*time.Millisecond, c, m, false); err != nil { t.Fatal(err) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/BUILD index d046325f2..78ffeb575 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/BUILD @@ -7,8 +7,6 @@ go_library( "container_manager.go", "container_manager_stub.go", "container_manager_unsupported.go", - "device_plugin_handler.go", - "device_plugin_handler_stub.go", "fake_internal_container_lifecycle.go", "helpers_unsupported.go", "internal_container_lifecycle.go", @@ -34,27 +32,27 @@ go_library( deps = [ "//pkg/features:go_default_library", "//pkg/kubelet/apis/cri:go_default_library", - "//pkg/kubelet/apis/deviceplugin/v1alpha1:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/cm/cpumanager:go_default_library", "//pkg/kubelet/container:go_default_library", - "//pkg/kubelet/deviceplugin:go_default_library", "//pkg/kubelet/eviction/api:go_default_library", + "//pkg/kubelet/lifecycle:go_default_library", "//pkg/kubelet/status:go_default_library", "//pkg/util/mount:go_default_library", + "//plugin/pkg/scheduler/schedulercache:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", ] + select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ - "//pkg/api/v1/helper:go_default_library", - "//pkg/api/v1/helper/qos:go_default_library", "//pkg/api/v1/resource:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper/qos:go_default_library", + "//pkg/kubelet/cm/deviceplugin:go_default_library", "//pkg/kubelet/cm/util:go_default_library", "//pkg/kubelet/events:go_default_library", "//pkg/kubelet/metrics:go_default_library", @@ -69,6 +67,7 @@ go_library( "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", ], @@ -80,7 +79,6 @@ go_test( name = "go_default_test", srcs = [ "container_manager_unsupported_test.go", - "device_plugin_handler_test.go", ] + select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "cgroup_manager_linux_test.go", @@ -94,19 +92,15 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/cm", library = ":go_default_library", deps = [ - "//pkg/kubelet/apis/deviceplugin/v1alpha1:go_default_library", "//pkg/util/mount:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", ] + select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/eviction/api:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", ], "//conditions:default": [], }), @@ -125,6 +119,7 @@ filegroup( ":package-srcs", "//pkg/kubelet/cm/cpumanager:all-srcs", "//pkg/kubelet/cm/cpuset:all-srcs", + "//pkg/kubelet/cm/deviceplugin:all-srcs", "//pkg/kubelet/cm/util:all-srcs", ], tags = ["automanaged"], diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager.go index eb556ef00..ce19634d3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager.go @@ -26,7 +26,9 @@ import ( "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api" + "k8s.io/kubernetes/pkg/kubelet/lifecycle" "k8s.io/kubernetes/pkg/kubelet/status" + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" "fmt" "strconv" @@ -74,7 +76,14 @@ type ContainerManager interface { // GetResources returns RunContainerOptions with devices, mounts, and env fields populated for // extended resources required by container. - GetResources(pod *v1.Pod, container *v1.Container, activePods []*v1.Pod) (*kubecontainer.RunContainerOptions, error) + GetResources(pod *v1.Pod, container *v1.Container) (*kubecontainer.RunContainerOptions, error) + + // UpdatePluginResources calls Allocate of device plugin handler for potential + // requests for device plugin resources, and returns an error if fails. + // Otherwise, it updates allocatableResource in nodeInfo if necessary, + // to make sure it is at least equal to the pod's requested capacity for + // any registered device plugin resource + UpdatePluginResources(*schedulercache.NodeInfo, *lifecycle.PodAdmitAttributes) error InternalContainerLifecycle() InternalContainerLifecycle } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go index f7c82b697..22c4dbf15 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go @@ -45,8 +45,10 @@ import ( internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" "k8s.io/kubernetes/pkg/kubelet/cadvisor" "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager" + "k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin" cmutil "k8s.io/kubernetes/pkg/kubelet/cm/util" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" + "k8s.io/kubernetes/pkg/kubelet/lifecycle" "k8s.io/kubernetes/pkg/kubelet/qos" "k8s.io/kubernetes/pkg/kubelet/status" utilfile "k8s.io/kubernetes/pkg/util/file" @@ -55,6 +57,7 @@ import ( "k8s.io/kubernetes/pkg/util/procfs" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" utilversion "k8s.io/kubernetes/pkg/util/version" + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" ) const ( @@ -125,7 +128,7 @@ type containerManagerImpl struct { // Interface for QoS cgroup management qosContainerManager QOSContainerManager // Interface for exporting and allocating devices reported by device plugins. - devicePluginHandler DevicePluginHandler + devicePluginHandler deviceplugin.Handler // Interface for CPU affinity management. cpuManager cpumanager.Manager } @@ -236,7 +239,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I return nil, fmt.Errorf("invalid configuration: cgroup-root %q doesn't exist: %v", cgroupRoot, err) } glog.Infof("container manager verified user specified cgroup-root exists: %v", cgroupRoot) - // Include the the top level cgroup for enforcing node allocatable into cgroup-root. + // Include the top level cgroup for enforcing node allocatable into cgroup-root. // This way, all sub modules can avoid having to understand the concept of node allocatable. cgroupRoot = path.Join(cgroupRoot, defaultNodeAllocatableCgroupName) } @@ -273,9 +276,9 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I glog.Infof("Creating device plugin handler: %t", devicePluginEnabled) if devicePluginEnabled { - cm.devicePluginHandler, err = NewDevicePluginHandlerImpl(updateDeviceCapacityFunc) + cm.devicePluginHandler, err = deviceplugin.NewHandlerImpl(updateDeviceCapacityFunc) } else { - cm.devicePluginHandler, err = NewDevicePluginHandlerStub() + cm.devicePluginHandler, err = deviceplugin.NewHandlerStub() } if err != nil { return nil, err @@ -593,7 +596,7 @@ func (cm *containerManagerImpl) Start(node *v1.Node, }, time.Second, stopChan) // Starts device plugin manager. - if err := cm.devicePluginHandler.Start(); err != nil { + if err := cm.devicePluginHandler.Start(deviceplugin.ActivePodsFunc(activePods)); err != nil { return err } return nil @@ -614,75 +617,24 @@ func (cm *containerManagerImpl) setFsCapacity() error { } // TODO: move the GetResources logic to PodContainerManager. -func (cm *containerManagerImpl) GetResources(pod *v1.Pod, container *v1.Container, activePods []*v1.Pod) (*kubecontainer.RunContainerOptions, error) { +func (cm *containerManagerImpl) GetResources(pod *v1.Pod, container *v1.Container) (*kubecontainer.RunContainerOptions, error) { opts := &kubecontainer.RunContainerOptions{} - // Gets devices, mounts, and envs from device plugin handler. - glog.V(3).Infof("Calling devicePluginHandler AllocateDevices") - // Maps to detect duplicate settings. - devsMap := make(map[string]string) - mountsMap := make(map[string]string) - envsMap := make(map[string]string) - allocResps, err := cm.devicePluginHandler.Allocate(pod, container, activePods) - if err != nil { - return opts, err - } - // Loops through AllocationResponses of all required extended resources. - for _, resp := range allocResps { - // Loops through runtime spec of all devices of the given resource. - for _, devRuntime := range resp.Spec { - // Updates RunContainerOptions.Devices. - for _, dev := range devRuntime.Devices { - if d, ok := devsMap[dev.ContainerPath]; ok { - glog.V(3).Infof("skip existing device %s %s", dev.ContainerPath, dev.HostPath) - if d != dev.HostPath { - glog.Errorf("Container device %s has conflicting mapping host devices: %s and %s", - dev.ContainerPath, d, dev.HostPath) - } - continue - } - devsMap[dev.ContainerPath] = dev.HostPath - opts.Devices = append(opts.Devices, kubecontainer.DeviceInfo{ - PathOnHost: dev.HostPath, - PathInContainer: dev.ContainerPath, - Permissions: dev.Permissions, - }) - } - // Updates RunContainerOptions.Mounts. - for _, mount := range devRuntime.Mounts { - if m, ok := mountsMap[mount.ContainerPath]; ok { - glog.V(3).Infof("skip existing mount %s %s", mount.ContainerPath, mount.HostPath) - if m != mount.HostPath { - glog.Errorf("Container mount %s has conflicting mapping host mounts: %s and %s", - mount.ContainerPath, m, mount.HostPath) - } - continue - } - mountsMap[mount.ContainerPath] = mount.HostPath - opts.Mounts = append(opts.Mounts, kubecontainer.Mount{ - Name: mount.ContainerPath, - ContainerPath: mount.ContainerPath, - HostPath: mount.HostPath, - ReadOnly: mount.ReadOnly, - SELinuxRelabel: false, - }) - } - // Updates RunContainerOptions.Envs. - for k, v := range devRuntime.Envs { - if e, ok := envsMap[k]; ok { - glog.V(3).Infof("skip existing envs %s %s", k, v) - if e != v { - glog.Errorf("Environment variable %s has conflicting setting: %s and %s", k, e, v) - } - continue - } - envsMap[k] = v - opts.Envs = append(opts.Envs, kubecontainer.EnvVar{Name: k, Value: v}) - } - } - } + // Allocate should already be called during predicateAdmitHandler.Admit(), + // just try to fetch device runtime information from cached state here + devOpts := cm.devicePluginHandler.GetDeviceRunContainerOptions(pod, container) + if devOpts == nil { + return opts, nil + } + opts.Devices = append(opts.Devices, devOpts.Devices...) + opts.Mounts = append(opts.Mounts, devOpts.Mounts...) + opts.Envs = append(opts.Envs, devOpts.Envs...) return opts, nil } +func (cm *containerManagerImpl) UpdatePluginResources(node *schedulercache.NodeInfo, attrs *lifecycle.PodAdmitAttributes) error { + return cm.devicePluginHandler.Allocate(node, attrs) +} + func (cm *containerManagerImpl) SystemCgroupsLimit() v1.ResourceList { cpuLimit := int64(0) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_stub.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_stub.go index ee5d7c73b..beaf57a34 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_stub.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_stub.go @@ -23,7 +23,9 @@ import ( internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" + "k8s.io/kubernetes/pkg/kubelet/lifecycle" "k8s.io/kubernetes/pkg/kubelet/status" + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" ) type containerManagerStub struct{} @@ -71,10 +73,14 @@ func (cm *containerManagerStub) NewPodContainerManager() PodContainerManager { return &podContainerManagerStub{} } -func (cm *containerManagerStub) GetResources(pod *v1.Pod, container *v1.Container, activePods []*v1.Pod) (*kubecontainer.RunContainerOptions, error) { +func (cm *containerManagerStub) GetResources(pod *v1.Pod, container *v1.Container) (*kubecontainer.RunContainerOptions, error) { return &kubecontainer.RunContainerOptions{}, nil } +func (cm *containerManagerStub) UpdatePluginResources(*schedulercache.NodeInfo, *lifecycle.PodAdmitAttributes) error { + return nil +} + func (cm *containerManagerStub) InternalContainerLifecycle() InternalContainerLifecycle { return &internalContainerLifecycleImpl{cpumanager.NewFakeManager()} } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_unsupported.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_unsupported.go index 0602bb5de..f39377036 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_unsupported.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_unsupported.go @@ -27,8 +27,10 @@ import ( "k8s.io/kubernetes/pkg/kubelet/cadvisor" "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" + "k8s.io/kubernetes/pkg/kubelet/lifecycle" "k8s.io/kubernetes/pkg/kubelet/status" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" ) type unsupportedContainerManager struct { @@ -76,10 +78,14 @@ func (cm *unsupportedContainerManager) NewPodContainerManager() PodContainerMana return &unsupportedPodContainerManager{} } -func (cm *unsupportedContainerManager) GetResources(pod *v1.Pod, container *v1.Container, activePods []*v1.Pod) (*kubecontainer.RunContainerOptions, error) { +func (cm *unsupportedContainerManager) GetResources(pod *v1.Pod, container *v1.Container) (*kubecontainer.RunContainerOptions, error) { return &kubecontainer.RunContainerOptions{}, nil } +func (cm *unsupportedContainerManager) UpdatePluginResources(*schedulercache.NodeInfo, *lifecycle.PodAdmitAttributes) error { + return nil +} + func (cm *unsupportedContainerManager) InternalContainerLifecycle() InternalContainerLifecycle { return &internalContainerLifecycleImpl{cpumanager.NewFakeManager()} } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_unsupported_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_unsupported_test.go index ed8a4fb87..592164b93 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_unsupported_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_unsupported_test.go @@ -40,17 +40,20 @@ func (mi *fakeMountInterface) List() ([]mount.MountPoint, error) { return mi.mountPoints, nil } -func (f *fakeMountInterface) IsMountPointMatch(mp mount.MountPoint, dir string) bool { +func (mi *fakeMountInterface) IsMountPointMatch(mp mount.MountPoint, dir string) bool { return (mp.Path == dir) } -func (f *fakeMountInterface) IsNotMountPoint(dir string) (bool, error) { +func (mi *fakeMountInterface) IsNotMountPoint(dir string) (bool, error) { return false, fmt.Errorf("unsupported") } func (mi *fakeMountInterface) IsLikelyNotMountPoint(file string) (bool, error) { return false, fmt.Errorf("unsupported") } +func (mi *fakeMountInterface) GetDeviceNameFromMount(mountPath, pluginDir string) (string, error) { + return "", nil +} func (mi *fakeMountInterface) DeviceOpened(pathname string) (bool, error) { for _, mp := range mi.mountPoints { @@ -65,14 +68,26 @@ func (mi *fakeMountInterface) PathIsDevice(pathname string) (bool, error) { return true, nil } -func (mi *fakeMountInterface) GetDeviceNameFromMount(mountPath, pluginDir string) (string, error) { - return "", nil +func (mi *fakeMountInterface) MakeRShared(path string) error { + return nil } -func (mi *fakeMountInterface) MakeRShared(path string) error { +func (mi *fakeMountInterface) GetFileType(pathname string) (mount.FileType, error) { + return mount.FileType("fake"), nil +} + +func (mi *fakeMountInterface) MakeDir(pathname string) error { return nil } +func (mi *fakeMountInterface) MakeFile(pathname string) error { + return nil +} + +func (mi *fakeMountInterface) ExistsPath(pathname string) bool { + return true +} + func fakeContainerMgrMountInt() mount.Interface { return &fakeMountInterface{ []mount.MountPoint{ diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/BUILD index 64a5f7e1b..370217f3d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/BUILD @@ -13,7 +13,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager", visibility = ["//visibility:public"], deps = [ - "//pkg/api/v1/helper/qos:go_default_library", + "//pkg/apis/core/v1/helper/qos:go_default_library", "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", "//pkg/kubelet/cm/cpumanager/state:go_default_library", "//pkg/kubelet/cm/cpumanager/topology:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go index 353f5ee1e..b91fdfa3e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go @@ -241,7 +241,7 @@ func (m *manager) reconcileState() (success []reconciledContainer, failure []rec continue } - glog.Infof("[cpumanager] reconcileState: updating container (pod: %s, container: %s, container id: %s, cpuset: \"%v\")", pod.Name, container.Name, containerID, cset) + glog.V(4).Infof("[cpumanager] reconcileState: updating container (pod: %s, container: %s, container id: %s, cpuset: \"%v\")", pod.Name, container.Name, containerID, cset) err = m.updateContainerCPUSet(containerID, cset) if err != nil { glog.Errorf("[cpumanager] reconcileState: failed to update container (pod: %s, container: %s, container id: %s, cpuset: \"%v\", error: %v)", pod.Name, container.Name, containerID, cset, err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager_test.go index a763bbfaf..e4df638c3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager_test.go @@ -32,7 +32,7 @@ import ( ) type mockState struct { - assignments map[string]cpuset.CPUSet + assignments state.ContainerCPUAssignments defaultCPUSet cpuset.CPUSet } @@ -64,6 +64,19 @@ func (s *mockState) Delete(containerID string) { delete(s.assignments, containerID) } +func (s *mockState) ClearState() { + s.defaultCPUSet = cpuset.CPUSet{} + s.assignments = make(state.ContainerCPUAssignments) +} + +func (s *mockState) SetCPUAssignments(a state.ContainerCPUAssignments) { + s.assignments = a.Clone() +} + +func (s *mockState) GetCPUAssignments() state.ContainerCPUAssignments { + return s.assignments.Clone() +} + type mockPolicy struct { err error } @@ -190,7 +203,7 @@ func TestCPUManagerAdd(t *testing.T) { err: testCase.regErr, }, state: &mockState{ - assignments: map[string]cpuset.CPUSet{}, + assignments: state.ContainerCPUAssignments{}, defaultCPUSet: cpuset.NewCPUSet(), }, containerRuntime: mockRuntimeService{ @@ -216,7 +229,7 @@ func TestCPUManagerRemove(t *testing.T) { err: nil, }, state: &mockState{ - assignments: map[string]cpuset.CPUSet{}, + assignments: state.ContainerCPUAssignments{}, defaultCPUSet: cpuset.NewCPUSet(), }, containerRuntime: mockRuntimeService{}, @@ -251,7 +264,7 @@ func TestReconcileState(t *testing.T) { activePods []*v1.Pod pspPS v1.PodStatus pspFound bool - stAssignments map[string]cpuset.CPUSet + stAssignments state.ContainerCPUAssignments stDefaultCPUSet cpuset.CPUSet updateErr error expectFailedContainerName string @@ -282,7 +295,7 @@ func TestReconcileState(t *testing.T) { }, }, pspFound: true, - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID": cpuset.NewCPUSet(1, 2), }, stDefaultCPUSet: cpuset.NewCPUSet(3, 4, 5, 6, 7), @@ -308,7 +321,7 @@ func TestReconcileState(t *testing.T) { }, pspPS: v1.PodStatus{}, pspFound: false, - stAssignments: map[string]cpuset.CPUSet{}, + stAssignments: state.ContainerCPUAssignments{}, stDefaultCPUSet: cpuset.NewCPUSet(), updateErr: nil, expectFailedContainerName: "fakeName", @@ -339,7 +352,7 @@ func TestReconcileState(t *testing.T) { }, }, pspFound: true, - stAssignments: map[string]cpuset.CPUSet{}, + stAssignments: state.ContainerCPUAssignments{}, stDefaultCPUSet: cpuset.NewCPUSet(), updateErr: nil, expectFailedContainerName: "fakeName", @@ -370,7 +383,7 @@ func TestReconcileState(t *testing.T) { }, }, pspFound: true, - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID": cpuset.NewCPUSet(), }, stDefaultCPUSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 6, 7), @@ -403,7 +416,7 @@ func TestReconcileState(t *testing.T) { }, }, pspFound: true, - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID": cpuset.NewCPUSet(1, 2), }, stDefaultCPUSet: cpuset.NewCPUSet(3, 4, 5, 6, 7), diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_none_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_none_test.go index e20f9bdbb..99e61fdbb 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_none_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_none_test.go @@ -19,6 +19,7 @@ package cpumanager import ( "testing" + "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state" "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" ) @@ -36,7 +37,7 @@ func TestNonePolicyAdd(t *testing.T) { policy := &nonePolicy{} st := &mockState{ - assignments: map[string]cpuset.CPUSet{}, + assignments: state.ContainerCPUAssignments{}, defaultCPUSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 6, 7), } @@ -53,7 +54,7 @@ func TestNonePolicyRemove(t *testing.T) { policy := &nonePolicy{} st := &mockState{ - assignments: map[string]cpuset.CPUSet{}, + assignments: state.ContainerCPUAssignments{}, defaultCPUSet: cpuset.NewCPUSet(1, 2, 3, 4, 5, 6, 7), } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_static.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_static.go index 1eca50b91..8f1403a6d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_static.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_static.go @@ -21,7 +21,7 @@ import ( "github.com/golang/glog" "k8s.io/api/core/v1" - v1qos "k8s.io/kubernetes/pkg/api/v1/helper/qos" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state" "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology" "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_static_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_static_test.go index bf6b53f32..e6626f446 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_static_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/policy_static_test.go @@ -22,6 +22,7 @@ import ( "testing" "k8s.io/api/core/v1" + "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state" "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology" "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" ) @@ -31,7 +32,7 @@ type staticPolicyTest struct { topo *topology.CPUTopology numReservedCPUs int containerID string - stAssignments map[string]cpuset.CPUSet + stAssignments state.ContainerCPUAssignments stDefaultCPUSet cpuset.CPUSet pod *v1.Pod expErr error @@ -53,7 +54,7 @@ func TestStaticPolicyStart(t *testing.T) { policy := NewStaticPolicy(topoSingleSocketHT, 1).(*staticPolicy) st := &mockState{ - assignments: map[string]cpuset.CPUSet{}, + assignments: state.ContainerCPUAssignments{}, defaultCPUSet: cpuset.NewCPUSet(), } @@ -88,7 +89,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoSingleSocketHT, numReservedCPUs: 1, containerID: "fakeID2", - stAssignments: map[string]cpuset.CPUSet{}, + stAssignments: state.ContainerCPUAssignments{}, stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), pod: makePod("8000m", "8000m"), expErr: fmt.Errorf("not enough cpus available to satisfy request"), @@ -100,7 +101,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoSingleSocketHT, numReservedCPUs: 1, containerID: "fakeID2", - stAssignments: map[string]cpuset.CPUSet{}, + stAssignments: state.ContainerCPUAssignments{}, stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), pod: makePod("1000m", "1000m"), expErr: nil, @@ -112,7 +113,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoSingleSocketHT, numReservedCPUs: 1, containerID: "fakeID3", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": cpuset.NewCPUSet(2, 3, 6, 7), }, stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 4, 5), @@ -126,7 +127,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoDualSocketHT, numReservedCPUs: 1, containerID: "fakeID3", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": cpuset.NewCPUSet(2), }, stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11), @@ -140,7 +141,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoDualSocketHT, numReservedCPUs: 1, containerID: "fakeID3", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": cpuset.NewCPUSet(1, 5), }, stDefaultCPUSet: cpuset.NewCPUSet(0, 2, 3, 4, 6, 7, 8, 9, 10, 11), @@ -154,7 +155,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoDualSocketNoHT, numReservedCPUs: 1, containerID: "fakeID1", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": cpuset.NewCPUSet(), }, stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 3, 4, 5, 6, 7), @@ -168,7 +169,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoDualSocketNoHT, numReservedCPUs: 1, containerID: "fakeID1", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": cpuset.NewCPUSet(4, 5), }, stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 3, 6, 7), @@ -182,7 +183,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoDualSocketHT, numReservedCPUs: 1, containerID: "fakeID3", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": cpuset.NewCPUSet(2), }, stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11), @@ -196,7 +197,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoSingleSocketHT, numReservedCPUs: 1, containerID: "fakeID1", - stAssignments: map[string]cpuset.CPUSet{}, + stAssignments: state.ContainerCPUAssignments{}, stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), pod: makePod("1000m", "2000m"), expErr: nil, @@ -208,7 +209,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoSingleSocketHT, numReservedCPUs: 1, containerID: "fakeID4", - stAssignments: map[string]cpuset.CPUSet{}, + stAssignments: state.ContainerCPUAssignments{}, stDefaultCPUSet: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), pod: makePod("977m", "977m"), expErr: nil, @@ -220,7 +221,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoSingleSocketHT, numReservedCPUs: 1, containerID: "fakeID5", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": cpuset.NewCPUSet(1, 2, 3, 4, 5, 6), }, stDefaultCPUSet: cpuset.NewCPUSet(0, 7), @@ -234,7 +235,7 @@ func TestStaticPolicyAdd(t *testing.T) { topo: topoDualSocketHT, numReservedCPUs: 1, containerID: "fakeID5", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": cpuset.NewCPUSet(1, 2, 3), }, stDefaultCPUSet: cpuset.NewCPUSet(0, 4, 5, 6, 7, 8, 9, 10, 11), @@ -250,7 +251,7 @@ func TestStaticPolicyAdd(t *testing.T) { description: "GuPodMultipleCores, topoQuadSocketFourWayHT, ExpectAllocSock0", topo: topoQuadSocketFourWayHT, containerID: "fakeID5", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": cpuset.NewCPUSet(3, 11, 4, 5, 6, 7), }, stDefaultCPUSet: largeTopoCPUSet.Difference(cpuset.NewCPUSet(3, 11, 4, 5, 6, 7)), @@ -265,7 +266,7 @@ func TestStaticPolicyAdd(t *testing.T) { description: "GuPodMultipleCores, topoQuadSocketFourWayHT, ExpectAllocAllFullCoresFromThreeSockets", topo: topoQuadSocketFourWayHT, containerID: "fakeID5", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": largeTopoCPUSet.Difference(cpuset.NewCPUSet(1, 25, 13, 38, 2, 9, 11, 35, 23, 48, 12, 51, 53, 173, 113, 233, 54, 61)), }, @@ -281,7 +282,7 @@ func TestStaticPolicyAdd(t *testing.T) { description: "GuPodMultipleCores, topoQuadSocketFourWayHT, ExpectAllocAllSock1+FullCore", topo: topoQuadSocketFourWayHT, containerID: "fakeID5", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": largeTopoCPUSet.Difference(largeTopoSock1CPUSet.Union(cpuset.NewCPUSet(10, 34, 22, 47, 53, 173, 61, 181, 108, 228, 115, 235))), }, @@ -298,7 +299,7 @@ func TestStaticPolicyAdd(t *testing.T) { description: "GuPodMultipleCores, topoQuadSocketFourWayHT, ExpectAllocCPUs", topo: topoQuadSocketFourWayHT, containerID: "fakeID5", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": largeTopoCPUSet.Difference(cpuset.NewCPUSet(10, 11, 53, 37, 55, 67, 52)), }, stDefaultCPUSet: cpuset.NewCPUSet(10, 11, 53, 67, 52), @@ -314,7 +315,7 @@ func TestStaticPolicyAdd(t *testing.T) { description: "GuPodMultipleCores, topoQuadSocketFourWayHT, NoAlloc", topo: topoQuadSocketFourWayHT, containerID: "fakeID5", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID100": largeTopoCPUSet.Difference(cpuset.NewCPUSet(10, 11, 53, 37, 55, 67, 52)), }, stDefaultCPUSet: cpuset.NewCPUSet(10, 11, 53, 37, 55, 67, 52), @@ -374,7 +375,7 @@ func TestStaticPolicyRemove(t *testing.T) { description: "SingleSocketHT, DeAllocOneContainer", topo: topoSingleSocketHT, containerID: "fakeID1", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID1": cpuset.NewCPUSet(1, 2, 3), }, stDefaultCPUSet: cpuset.NewCPUSet(4, 5, 6, 7), @@ -384,7 +385,7 @@ func TestStaticPolicyRemove(t *testing.T) { description: "SingleSocketHT, DeAllocOneContainer, BeginEmpty", topo: topoSingleSocketHT, containerID: "fakeID1", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID1": cpuset.NewCPUSet(1, 2, 3), "fakeID2": cpuset.NewCPUSet(4, 5, 6, 7), }, @@ -395,7 +396,7 @@ func TestStaticPolicyRemove(t *testing.T) { description: "SingleSocketHT, DeAllocTwoContainer", topo: topoSingleSocketHT, containerID: "fakeID1", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID1": cpuset.NewCPUSet(1, 3, 5), "fakeID2": cpuset.NewCPUSet(2, 4), }, @@ -406,7 +407,7 @@ func TestStaticPolicyRemove(t *testing.T) { description: "SingleSocketHT, NoDeAlloc", topo: topoSingleSocketHT, containerID: "fakeID2", - stAssignments: map[string]cpuset.CPUSet{ + stAssignments: state.ContainerCPUAssignments{ "fakeID1": cpuset.NewCPUSet(1, 3, 5), }, stDefaultCPUSet: cpuset.NewCPUSet(2, 4, 6, 7), diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/BUILD index 6393bdec4..8af631c9a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/BUILD @@ -1,9 +1,10 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", srcs = [ "state.go", + "state_file.go", "state_mem.go", ], importpath = "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state", @@ -14,6 +15,14 @@ go_library( ], ) +go_test( + name = "go_default_test", + srcs = ["state_file_test.go"], + importpath = "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state", + library = ":go_default_library", + deps = ["//pkg/kubelet/cm/cpuset:go_default_library"], +) + filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state.go index 98f7f7dc2..0550b644d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state.go @@ -20,17 +20,32 @@ import ( "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" ) +// ContainerCPUAssignments type used in cpu manger state +type ContainerCPUAssignments map[string]cpuset.CPUSet + +// Clone returns a copy of ContainerCPUAssignments +func (as ContainerCPUAssignments) Clone() ContainerCPUAssignments { + ret := make(ContainerCPUAssignments) + for key, val := range as { + ret[key] = val + } + return ret +} + // Reader interface used to read current cpu/pod assignment state type Reader interface { GetCPUSet(containerID string) (cpuset.CPUSet, bool) GetDefaultCPUSet() cpuset.CPUSet GetCPUSetOrDefault(containerID string) cpuset.CPUSet + GetCPUAssignments() ContainerCPUAssignments } type writer interface { SetCPUSet(containerID string, cpuset cpuset.CPUSet) SetDefaultCPUSet(cpuset cpuset.CPUSet) + SetCPUAssignments(ContainerCPUAssignments) Delete(containerID string) + ClearState() } // State interface provides methods for tracking and setting cpu/pod assignment diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_file.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_file.go new file mode 100644 index 000000000..b80061341 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_file.go @@ -0,0 +1,195 @@ +/* +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 state + +import ( + "encoding/json" + "github.com/golang/glog" + "io/ioutil" + "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" + "os" + "sync" +) + +type stateFileData struct { + DefaultCPUSet string `json:"defaultCpuSet"` + Entries map[string]string `json:"entries,omitempty"` +} + +var _ State = &stateFile{} + +type stateFile struct { + sync.RWMutex + stateFilePath string + cache State +} + +// NewFileState creates new State for keeping track of cpu/pod assignment with file backend +func NewFileState(filePath string) State { + stateFile := &stateFile{ + stateFilePath: filePath, + cache: NewMemoryState(), + } + + if err := stateFile.tryRestoreState(); err != nil { + // could not restore state, init new state file + glog.Infof("[cpumanager] state file: initializing empty state file") + stateFile.cache.ClearState() + stateFile.storeState() + } + + return stateFile +} + +// tryRestoreState tries to read state file, upon any error, +// err message is logged and state is left clean. un-initialized +func (sf *stateFile) tryRestoreState() error { + sf.Lock() + defer sf.Unlock() + var err error + + // used when all parsing is ok + tmpAssignments := make(ContainerCPUAssignments) + tmpDefaultCPUSet := cpuset.NewCPUSet() + tmpContainerCPUSet := cpuset.NewCPUSet() + + var content []byte + + if content, err = ioutil.ReadFile(sf.stateFilePath); os.IsNotExist(err) { + // Create file + if _, err = os.Create(sf.stateFilePath); err != nil { + glog.Errorf("[cpumanager] state file: unable to create state file \"%s\":%s", sf.stateFilePath, err.Error()) + panic("[cpumanager] state file not created") + } + glog.Infof("[cpumanager] state file: created empty state file \"%s\"", sf.stateFilePath) + } else { + // File exists - try to read + var readState stateFileData + + if err = json.Unmarshal(content, &readState); err != nil { + glog.Warningf("[cpumanager] state file: could not unmarshal, corrupted state file - \"%s\"", sf.stateFilePath) + return err + } + + if tmpDefaultCPUSet, err = cpuset.Parse(readState.DefaultCPUSet); err != nil { + glog.Warningf("[cpumanager] state file: could not parse state file - [defaultCpuSet:\"%s\"]", readState.DefaultCPUSet) + return err + } + + for containerID, cpuString := range readState.Entries { + if tmpContainerCPUSet, err = cpuset.Parse(cpuString); err != nil { + glog.Warningf("[cpumanager] state file: could not parse state file - container id: %s, cpuset: \"%s\"", containerID, cpuString) + return err + } + tmpAssignments[containerID] = tmpContainerCPUSet + } + + sf.cache.SetDefaultCPUSet(tmpDefaultCPUSet) + sf.cache.SetCPUAssignments(tmpAssignments) + + glog.V(2).Infof("[cpumanager] state file: restored state from state file \"%s\"", sf.stateFilePath) + glog.V(2).Infof("[cpumanager] state file: defaultCPUSet: %s", tmpDefaultCPUSet.String()) + } + return nil +} + +// saves state to a file, caller is responsible for locking +func (sf *stateFile) storeState() { + var content []byte + var err error + + data := stateFileData{ + DefaultCPUSet: sf.cache.GetDefaultCPUSet().String(), + Entries: map[string]string{}, + } + + for containerID, cset := range sf.cache.GetCPUAssignments() { + data.Entries[containerID] = cset.String() + } + + if content, err = json.Marshal(data); err != nil { + panic("[cpumanager] state file: could not serialize state to json") + } + + if err = ioutil.WriteFile(sf.stateFilePath, content, 0644); err != nil { + panic("[cpumanager] state file not written") + } + return +} + +func (sf *stateFile) GetCPUSet(containerID string) (cpuset.CPUSet, bool) { + sf.RLock() + defer sf.RUnlock() + + res, ok := sf.cache.GetCPUSet(containerID) + return res, ok +} + +func (sf *stateFile) GetDefaultCPUSet() cpuset.CPUSet { + sf.RLock() + defer sf.RUnlock() + + return sf.cache.GetDefaultCPUSet() +} + +func (sf *stateFile) GetCPUSetOrDefault(containerID string) cpuset.CPUSet { + sf.RLock() + defer sf.RUnlock() + + return sf.cache.GetCPUSetOrDefault(containerID) +} + +func (sf *stateFile) GetCPUAssignments() ContainerCPUAssignments { + sf.RLock() + defer sf.RUnlock() + return sf.cache.GetCPUAssignments() +} + +func (sf *stateFile) SetCPUSet(containerID string, cset cpuset.CPUSet) { + sf.Lock() + defer sf.Unlock() + sf.cache.SetCPUSet(containerID, cset) + sf.storeState() +} + +func (sf *stateFile) SetDefaultCPUSet(cset cpuset.CPUSet) { + sf.Lock() + defer sf.Unlock() + sf.cache.SetDefaultCPUSet(cset) + sf.storeState() +} + +func (sf *stateFile) SetCPUAssignments(a ContainerCPUAssignments) { + sf.Lock() + defer sf.Unlock() + sf.cache.SetCPUAssignments(a) + sf.storeState() +} + +func (sf *stateFile) Delete(containerID string) { + sf.Lock() + defer sf.Unlock() + sf.cache.Delete(containerID) + sf.storeState() +} + +func (sf *stateFile) ClearState() { + sf.Lock() + defer sf.Unlock() + sf.cache.ClearState() + sf.storeState() +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_file_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_file_test.go new file mode 100644 index 000000000..c04860ac3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_file_test.go @@ -0,0 +1,446 @@ +/* +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 state + +import ( + "bytes" + "flag" + "fmt" + "io" + "io/ioutil" + "os" + "path" + "reflect" + "strings" + "testing" + + "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" +) + +func writeToStateFile(statefile string, content string) { + ioutil.WriteFile(statefile, []byte(content), 0644) +} + +func stateEqual(t *testing.T, sf State, sm State) { + cpusetSf := sf.GetDefaultCPUSet() + cpusetSm := sm.GetDefaultCPUSet() + if !cpusetSf.Equals(cpusetSm) { + t.Errorf("State CPUSet mismatch. Have %v, want %v", cpusetSf, cpusetSm) + } + + cpuassignmentSf := sf.GetCPUAssignments() + cpuassignmentSm := sm.GetCPUAssignments() + if !reflect.DeepEqual(cpuassignmentSf, cpuassignmentSm) { + t.Errorf("State CPU assigments mismatch. Have %s, want %s", cpuassignmentSf, cpuassignmentSm) + } +} + +func stderrCapture(t *testing.T, f func() State) (bytes.Buffer, State) { + stderr := os.Stderr + + readBuffer, writeBuffer, err := os.Pipe() + if err != nil { + t.Errorf("cannot create pipe: %v", err.Error()) + } + + os.Stderr = writeBuffer + var outputBuffer bytes.Buffer + + state := f() + writeBuffer.Close() + io.Copy(&outputBuffer, readBuffer) + os.Stderr = stderr + + return outputBuffer, state +} + +func TestFileStateTryRestore(t *testing.T) { + flag.Set("alsologtostderr", "true") + flag.Parse() + + testCases := []struct { + description string + stateFileContent string + expErr string + expectedState *stateMemory + }{ + { + "Invalid JSON - empty file", + "\n", + "state file: could not unmarshal, corrupted state file", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + { + "Invalid JSON - invalid content", + "{", + "state file: could not unmarshal, corrupted state file", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + { + "Try restore defaultCPUSet only", + "{ \"defaultCpuSet\": \"4-6\"}", + "", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(4, 5, 6), + }, + }, + { + "Try restore defaultCPUSet only - invalid name", + "{ \"defCPUSet\": \"4-6\"}", + "", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + { + "Try restore assignments only", + "{" + + "\"entries\": { " + + "\"container1\": \"4-6\"," + + "\"container2\": \"1-3\"" + + "} }", + "", + &stateMemory{ + assignments: ContainerCPUAssignments{ + "container1": cpuset.NewCPUSet(4, 5, 6), + "container2": cpuset.NewCPUSet(1, 2, 3), + }, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + { + "Try restore invalid assignments", + "{ \"entries\": }", + "state file: could not unmarshal, corrupted state file", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + { + "Try restore valid file", + "{ " + + "\"defaultCpuSet\": \"23-24\", " + + "\"entries\": { " + + "\"container1\": \"4-6\", " + + "\"container2\": \"1-3\"" + + " } }", + "", + &stateMemory{ + assignments: ContainerCPUAssignments{ + "container1": cpuset.NewCPUSet(4, 5, 6), + "container2": cpuset.NewCPUSet(1, 2, 3), + }, + defaultCPUSet: cpuset.NewCPUSet(23, 24), + }, + }, + { + "Try restore un-parsable defaultCPUSet ", + "{ \"defaultCpuSet\": \"2-sd\" }", + "state file: could not parse state file", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + { + "Try restore un-parsable assignments", + "{ " + + "\"defaultCpuSet\": \"23-24\", " + + "\"entries\": { " + + "\"container1\": \"p-6\", " + + "\"container2\": \"1-3\"" + + " } }", + "state file: could not parse state file", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + { + "TryRestoreState creates empty state file", + "", + "", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + } + + for idx, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + sfilePath, err := ioutil.TempFile("/tmp", fmt.Sprintf("cpumanager_state_file_test_%d", idx)) + if err != nil { + t.Errorf("cannot create temporary file: %q", err.Error()) + } + // Don't create state file, let TryRestoreState figure out that is should create + if tc.stateFileContent != "" { + writeToStateFile(sfilePath.Name(), tc.stateFileContent) + } + + // Always remove file - regardless of who created + defer os.Remove(sfilePath.Name()) + + logData, fileState := stderrCapture(t, func() State { + return NewFileState(sfilePath.Name()) + }) + + if tc.expErr != "" { + if logData.String() != "" { + if !strings.Contains(logData.String(), tc.expErr) { + t.Errorf("TryRestoreState() error = %v, wantErr %v", logData.String(), tc.expErr) + return + } + } else { + t.Errorf("TryRestoreState() error = nil, wantErr %v", tc.expErr) + return + } + } + + stateEqual(t, fileState, tc.expectedState) + }) + } +} + +func TestFileStateTryRestorePanic(t *testing.T) { + + testCase := struct { + description string + wantPanic bool + panicMessage string + }{ + "Panic creating file", + true, + "[cpumanager] state file not created", + } + + t.Run(testCase.description, func(t *testing.T) { + sfilePath := path.Join("/invalid_path/to_some_dir", "cpumanager_state_file_test") + defer func() { + if err := recover(); err != nil { + if testCase.wantPanic { + if testCase.panicMessage == err { + t.Logf("TryRestoreState() got expected panic = %v", err) + return + } + t.Errorf("TryRestoreState() unexpected panic = %v, wantErr %v", err, testCase.panicMessage) + } + } + }() + NewFileState(sfilePath) + }) +} + +func TestUpdateStateFile(t *testing.T) { + flag.Set("alsologtostderr", "true") + flag.Parse() + + testCases := []struct { + description string + expErr string + expectedState *stateMemory + }{ + { + "Save empty state", + "", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + { + "Save defaultCPUSet only", + "", + &stateMemory{ + assignments: ContainerCPUAssignments{}, + defaultCPUSet: cpuset.NewCPUSet(1, 6), + }, + }, + { + "Save assignments only", + "", + &stateMemory{ + assignments: ContainerCPUAssignments{ + "container1": cpuset.NewCPUSet(4, 5, 6), + "container2": cpuset.NewCPUSet(1, 2, 3), + }, + defaultCPUSet: cpuset.NewCPUSet(), + }, + }, + } + + for idx, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + + sfilePath, err := ioutil.TempFile("/tmp", fmt.Sprintf("cpumanager_state_file_test_%d", idx)) + defer os.Remove(sfilePath.Name()) + if err != nil { + t.Errorf("cannot create temporary file: %q", err.Error()) + } + fileState := stateFile{ + stateFilePath: sfilePath.Name(), + cache: NewMemoryState(), + } + + fileState.SetDefaultCPUSet(tc.expectedState.defaultCPUSet) + fileState.SetCPUAssignments(tc.expectedState.assignments) + + logData, _ := stderrCapture(t, func() State { + fileState.storeState() + return &stateFile{} + }) + + errMsg := logData.String() + + if tc.expErr != "" { + if errMsg != "" { + if errMsg != tc.expErr { + t.Errorf("UpdateStateFile() error = %v, wantErr %v", errMsg, tc.expErr) + return + } + } else { + t.Errorf("UpdateStateFile() error = nil, wantErr %v", tc.expErr) + return + } + } else { + if errMsg != "" { + t.Errorf("UpdateStateFile() error = %v, wantErr nil", errMsg) + return + } + } + newFileState := NewFileState(sfilePath.Name()) + stateEqual(t, newFileState, tc.expectedState) + }) + } +} + +func TestHelpersStateFile(t *testing.T) { + testCases := []struct { + description string + defaultCPUset cpuset.CPUSet + containers map[string]cpuset.CPUSet + }{ + { + description: "one container", + defaultCPUset: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7, 8), + containers: map[string]cpuset.CPUSet{ + "c1": cpuset.NewCPUSet(0, 1), + }, + }, + { + description: "two containers", + defaultCPUset: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7, 8), + containers: map[string]cpuset.CPUSet{ + "c1": cpuset.NewCPUSet(0, 1), + "c2": cpuset.NewCPUSet(2, 3, 4, 5), + }, + }, + { + description: "container with more cpus than is possible", + defaultCPUset: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7, 8), + containers: map[string]cpuset.CPUSet{ + "c1": cpuset.NewCPUSet(0, 10), + }, + }, + { + description: "container without assigned cpus", + defaultCPUset: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7, 8), + containers: map[string]cpuset.CPUSet{ + "c1": cpuset.NewCPUSet(), + }, + }, + } + + for _, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + sfFile, err := ioutil.TempFile("/tmp", "testHelpersStateFile") + defer os.Remove(sfFile.Name()) + if err != nil { + t.Errorf("cannot create temporary test file: %q", err.Error()) + } + + state := NewFileState(sfFile.Name()) + state.SetDefaultCPUSet(tc.defaultCPUset) + + for containerName, containerCPUs := range tc.containers { + state.SetCPUSet(containerName, containerCPUs) + if cpus, _ := state.GetCPUSet(containerName); !cpus.Equals(containerCPUs) { + t.Errorf("state is inconsistant. Wants = %q Have = %q", containerCPUs, cpus) + } + state.Delete(containerName) + if cpus := state.GetCPUSetOrDefault(containerName); !cpus.Equals(tc.defaultCPUset) { + t.Error("deleted container still existing in state") + } + + } + + }) + } +} + +func TestClearStateStateFile(t *testing.T) { + testCases := []struct { + description string + defaultCPUset cpuset.CPUSet + containers map[string]cpuset.CPUSet + }{ + { + description: "valid file", + defaultCPUset: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7, 8), + containers: map[string]cpuset.CPUSet{ + "c1": cpuset.NewCPUSet(0, 1), + "c2": cpuset.NewCPUSet(2, 3), + "c3": cpuset.NewCPUSet(4, 5), + }, + }, + } + for _, testCase := range testCases { + t.Run(testCase.description, func(t *testing.T) { + sfFile, err := ioutil.TempFile("/tmp", "testHelpersStateFile") + defer os.Remove(sfFile.Name()) + if err != nil { + t.Errorf("cannot create temporary test file: %q", err.Error()) + } + + state := NewFileState(sfFile.Name()) + state.SetDefaultCPUSet(testCase.defaultCPUset) + for containerName, containerCPUs := range testCase.containers { + state.SetCPUSet(containerName, containerCPUs) + } + + state.ClearState() + if !cpuset.NewCPUSet().Equals(state.GetDefaultCPUSet()) { + t.Error("cleared state shoudn't has got information about available cpuset") + } + for containerName := range testCase.containers { + if !cpuset.NewCPUSet().Equals(state.GetCPUSetOrDefault(containerName)) { + t.Error("cleared state shoudn't has got information about containers") + } + } + + }) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_mem.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_mem.go index 751b1726a..797cdb15b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_mem.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state/state_mem.go @@ -25,7 +25,7 @@ import ( type stateMemory struct { sync.RWMutex - assignments map[string]cpuset.CPUSet + assignments ContainerCPUAssignments defaultCPUSet cpuset.CPUSet } @@ -35,7 +35,7 @@ var _ State = &stateMemory{} func NewMemoryState() State { glog.Infof("[cpumanager] initializing new in-memory state store") return &stateMemory{ - assignments: map[string]cpuset.CPUSet{}, + assignments: ContainerCPUAssignments{}, defaultCPUSet: cpuset.NewCPUSet(), } } @@ -65,6 +65,12 @@ func (s *stateMemory) GetCPUSetOrDefault(containerID string) cpuset.CPUSet { return s.GetDefaultCPUSet() } +func (s *stateMemory) GetCPUAssignments() ContainerCPUAssignments { + s.RLock() + defer s.RUnlock() + return s.assignments.Clone() +} + func (s *stateMemory) SetCPUSet(containerID string, cset cpuset.CPUSet) { s.Lock() defer s.Unlock() @@ -81,6 +87,14 @@ func (s *stateMemory) SetDefaultCPUSet(cset cpuset.CPUSet) { glog.Infof("[cpumanager] updated default cpuset: \"%s\"", cset) } +func (s *stateMemory) SetCPUAssignments(a ContainerCPUAssignments) { + s.Lock() + defer s.Unlock() + + s.assignments = a.Clone() + glog.Infof("[cpumanager] updated cpuset assignments: \"%v\"", a) +} + func (s *stateMemory) Delete(containerID string) { s.Lock() defer s.Unlock() @@ -88,3 +102,12 @@ func (s *stateMemory) Delete(containerID string) { delete(s.assignments, containerID) glog.V(2).Infof("[cpumanager] deleted cpuset assignment (container id: %s)", containerID) } + +func (s *stateMemory) ClearState() { + s.Lock() + defer s.Unlock() + + s.defaultCPUSet = cpuset.CPUSet{} + s.assignments = make(ContainerCPUAssignments) + glog.V(2).Infof("[cpumanager] cleared state") +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler.go deleted file mode 100644 index 790f720ee..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler.go +++ /dev/null @@ -1,294 +0,0 @@ -/* -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 cm - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "os" - "sync" - - "github.com/golang/glog" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/apimachinery/pkg/util/sets" - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" - "k8s.io/kubernetes/pkg/kubelet/deviceplugin" -) - -// podDevices represents a list of pod to device Id mappings. -type containerDevices map[string]sets.String -type podDevices map[string]containerDevices - -func (pdev podDevices) pods() sets.String { - ret := sets.NewString() - for k := range pdev { - ret.Insert(k) - } - return ret -} - -func (pdev podDevices) insert(podUID, contName string, device string) { - if _, exists := pdev[podUID]; !exists { - pdev[podUID] = make(containerDevices) - } - if _, exists := pdev[podUID][contName]; !exists { - pdev[podUID][contName] = sets.NewString() - } - pdev[podUID][contName].Insert(device) -} - -func (pdev podDevices) getDevices(podUID, contName string) sets.String { - containers, exists := pdev[podUID] - if !exists { - return nil - } - devices, exists := containers[contName] - if !exists { - return nil - } - return devices -} - -func (pdev podDevices) delete(pods []string) { - for _, uid := range pods { - delete(pdev, uid) - } -} - -func (pdev podDevices) devices() sets.String { - ret := sets.NewString() - for _, containerDevices := range pdev { - for _, deviceSet := range containerDevices { - ret = ret.Union(deviceSet) - } - } - return ret -} - -type DevicePluginHandler interface { - // Start starts device plugin registration service. - Start() error - // Devices returns all of registered devices keyed by resourceName. - Devices() map[string][]*pluginapi.Device - // Allocate attempts to allocate all of required extended resources for - // the input container, issues an Allocate rpc request for each of such - // resources, and returns their AllocateResponses on success. - Allocate(pod *v1.Pod, container *v1.Container, activePods []*v1.Pod) ([]*pluginapi.AllocateResponse, error) -} - -type DevicePluginHandlerImpl struct { - sync.Mutex - devicePluginManager deviceplugin.Manager - // devicePluginManagerMonitorCallback is used for testing only. - devicePluginManagerMonitorCallback deviceplugin.MonitorCallback - // allDevices contains all of registered resourceNames and their exported device IDs. - allDevices map[string]sets.String - // allocatedDevices contains pod to allocated device mapping, keyed by resourceName. - allocatedDevices map[string]podDevices -} - -// NewDevicePluginHandler create a DevicePluginHandler -// updateCapacityFunc is called to update ContainerManager capacity when -// device capacity changes. -func NewDevicePluginHandlerImpl(updateCapacityFunc func(v1.ResourceList)) (*DevicePluginHandlerImpl, error) { - glog.V(2).Infof("Creating Device Plugin Handler") - handler := &DevicePluginHandlerImpl{ - allDevices: make(map[string]sets.String), - allocatedDevices: make(map[string]podDevices), - } - - deviceManagerMonitorCallback := func(resourceName string, added, updated, deleted []*pluginapi.Device) { - var capacity = v1.ResourceList{} - kept := append(updated, added...) - if _, ok := handler.allDevices[resourceName]; !ok { - handler.allDevices[resourceName] = sets.NewString() - } - // For now, DevicePluginHandler only keeps track of healthy devices. - // We can revisit this later when the need comes to track unhealthy devices here. - for _, dev := range kept { - if dev.Health == pluginapi.Healthy { - handler.allDevices[resourceName].Insert(dev.ID) - } else { - handler.allDevices[resourceName].Delete(dev.ID) - } - } - for _, dev := range deleted { - handler.allDevices[resourceName].Delete(dev.ID) - } - capacity[v1.ResourceName(resourceName)] = *resource.NewQuantity(int64(handler.allDevices[resourceName].Len()), resource.DecimalSI) - updateCapacityFunc(capacity) - } - - mgr, err := deviceplugin.NewManagerImpl(pluginapi.KubeletSocket, deviceManagerMonitorCallback) - if err != nil { - return nil, fmt.Errorf("Failed to initialize device plugin manager: %+v", err) - } - - handler.devicePluginManager = mgr - handler.devicePluginManagerMonitorCallback = deviceManagerMonitorCallback - // Loads in allocatedDevices information from disk. - err = handler.readCheckpoint() - if err != nil { - glog.Warningf("Continue after failing to read checkpoint file. Device allocation info may NOT be up-to-date. Err: %v", err) - } - return handler, nil -} - -func (h *DevicePluginHandlerImpl) Start() error { - return h.devicePluginManager.Start() -} - -func (h *DevicePluginHandlerImpl) Devices() map[string][]*pluginapi.Device { - return h.devicePluginManager.Devices() -} - -func (h *DevicePluginHandlerImpl) Allocate(pod *v1.Pod, container *v1.Container, activePods []*v1.Pod) ([]*pluginapi.AllocateResponse, error) { - var ret []*pluginapi.AllocateResponse - h.updateAllocatedDevices(activePods) - for k, v := range container.Resources.Limits { - resource := string(k) - needed := int(v.Value()) - glog.V(3).Infof("needs %d %s", needed, resource) - _, registeredResource := h.allDevices[resource] - if !registeredResource || needed == 0 { - continue - } - h.Lock() - // Gets list of devices that have already been allocated. - // This can happen if a container restarts for example. - if h.allocatedDevices[resource] == nil { - h.allocatedDevices[resource] = make(podDevices) - } - devices := h.allocatedDevices[resource].getDevices(string(pod.UID), container.Name) - if devices != nil { - glog.V(3).Infof("Found pre-allocated devices for resource %s container %q in Pod %q: %v", resource, container.Name, pod.UID, devices.List()) - needed = needed - devices.Len() - } - // Get Devices in use. - devicesInUse := h.allocatedDevices[resource].devices() - // Get a list of available devices. - available := h.allDevices[resource].Difference(devicesInUse) - if int(available.Len()) < needed { - h.Unlock() - return nil, fmt.Errorf("requested number of devices unavailable for %s. Requested: %d, Available: %d", resource, needed, available.Len()) - } - allocated := available.UnsortedList()[:needed] - for _, device := range allocated { - // Update internal allocated device cache. - h.allocatedDevices[resource].insert(string(pod.UID), container.Name, device) - } - h.Unlock() - // devicePluginManager.Allocate involves RPC calls to device plugin, which - // could be heavy-weight. Therefore we want to perform this operation outside - // mutex lock. Note if Allcate call fails, we may leave container resources - // partially allocated for the failed container. We rely on updateAllocatedDevices() - // to garbage collect these resources later. Another side effect is that if - // we have X resource A and Y resource B in total, and two containers, container1 - // and container2 both require X resource A and Y resource B. Both allocation - // requests may fail if we serve them in mixed order. - // TODO: may revisit this part later if we see inefficient resource allocation - // in real use as the result of this. - resp, err := h.devicePluginManager.Allocate(resource, append(devices.UnsortedList(), allocated...)) - if err != nil { - return nil, err - } - ret = append(ret, resp) - } - // Checkpoints device to container allocation information. - if err := h.writeCheckpoint(); err != nil { - return nil, err - } - return ret, nil -} - -// updateAllocatedDevices updates the list of GPUs in use. -// It gets a list of active pods and then frees any GPUs that are bound to -// terminated pods. Returns error on failure. -func (h *DevicePluginHandlerImpl) updateAllocatedDevices(activePods []*v1.Pod) { - h.Lock() - defer h.Unlock() - activePodUids := sets.NewString() - for _, pod := range activePods { - activePodUids.Insert(string(pod.UID)) - } - for _, podDevs := range h.allocatedDevices { - allocatedPodUids := podDevs.pods() - podsToBeRemoved := allocatedPodUids.Difference(activePodUids) - glog.V(5).Infof("pods to be removed: %v", podsToBeRemoved.List()) - podDevs.delete(podsToBeRemoved.List()) - } -} - -type checkpointEntry struct { - PodUID string - ContainerName string - ResourceName string - DeviceID string -} - -// checkpointData struct is used to store pod to device allocation information -// in a checkpoint file. -// TODO: add version control when we need to change checkpoint format. -type checkpointData struct { - Entries []checkpointEntry -} - -// Checkpoints device to container allocation information to disk. -func (h *DevicePluginHandlerImpl) writeCheckpoint() error { - filepath := h.devicePluginManager.CheckpointFile() - var data checkpointData - for resourceName, podDev := range h.allocatedDevices { - for podUID, conDev := range podDev { - for conName, devs := range conDev { - for _, devId := range devs.UnsortedList() { - data.Entries = append(data.Entries, checkpointEntry{podUID, conName, resourceName, devId}) - } - } - } - } - dataJson, err := json.Marshal(data) - if err != nil { - return err - } - return ioutil.WriteFile(filepath, dataJson, 0644) -} - -// Reads device to container allocation information from disk, and populates -// h.allocatedDevices accordingly. -func (h *DevicePluginHandlerImpl) readCheckpoint() error { - filepath := h.devicePluginManager.CheckpointFile() - content, err := ioutil.ReadFile(filepath) - if err != nil && !os.IsNotExist(err) { - return fmt.Errorf("failed to read checkpoint file %q: %v", filepath, err) - } - glog.V(2).Infof("Read checkpoint file %s\n", filepath) - var data checkpointData - if err := json.Unmarshal(content, &data); err != nil { - return fmt.Errorf("failed to unmarshal checkpoint data: %v", err) - } - for _, entry := range data.Entries { - glog.V(2).Infof("Get checkpoint entry: %v %v %v %v\n", entry.PodUID, entry.ContainerName, entry.ResourceName, entry.DeviceID) - if h.allocatedDevices[entry.ResourceName] == nil { - h.allocatedDevices[entry.ResourceName] = make(podDevices) - } - h.allocatedDevices[entry.ResourceName].insert(entry.PodUID, entry.ContainerName, entry.DeviceID) - } - return nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler_stub.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler_stub.go deleted file mode 100644 index a70c28108..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler_stub.go +++ /dev/null @@ -1,42 +0,0 @@ -/* -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 cm - -import ( - "k8s.io/api/core/v1" - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" -) - -// A simple stub implementation for DevicePluginHandler. -type DevicePluginHandlerStub struct{} - -func NewDevicePluginHandlerStub() (*DevicePluginHandlerStub, error) { - return &DevicePluginHandlerStub{}, nil -} - -func (h *DevicePluginHandlerStub) Start() error { - return nil -} - -func (h *DevicePluginHandlerStub) Devices() map[string][]*pluginapi.Device { - return make(map[string][]*pluginapi.Device) -} - -func (h *DevicePluginHandlerStub) Allocate(pod *v1.Pod, container *v1.Container, activePods []*v1.Pod) ([]*pluginapi.AllocateResponse, error) { - var ret []*pluginapi.AllocateResponse - return ret, nil -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler_test.go deleted file mode 100644 index e9df09ef2..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/device_plugin_handler_test.go +++ /dev/null @@ -1,285 +0,0 @@ -/* -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 cm - -import ( - "flag" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/uuid" - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" -) - -func TestUpdateCapacity(t *testing.T) { - var expected = v1.ResourceList{} - as := assert.New(t) - verifyCapacityFunc := func(updates v1.ResourceList) { - as.Equal(expected, updates) - } - testDevicePluginHandler, err := NewDevicePluginHandlerImpl(verifyCapacityFunc) - as.NotNil(testDevicePluginHandler) - as.Nil(err) - - devs := []*pluginapi.Device{ - {ID: "Device1", Health: pluginapi.Healthy}, - {ID: "Device2", Health: pluginapi.Healthy}, - {ID: "Device3", Health: pluginapi.Unhealthy}, - } - - resourceName := "resource1" - // Adds three devices for resource1, two healthy and one unhealthy. - // Expects capacity for resource1 to be 2. - expected[v1.ResourceName(resourceName)] = *resource.NewQuantity(int64(2), resource.DecimalSI) - testDevicePluginHandler.devicePluginManagerMonitorCallback(resourceName, devs, []*pluginapi.Device{}, []*pluginapi.Device{}) - // Deletes an unhealthy device should NOT change capacity. - testDevicePluginHandler.devicePluginManagerMonitorCallback(resourceName, []*pluginapi.Device{}, []*pluginapi.Device{}, []*pluginapi.Device{devs[2]}) - // Updates a healthy device to unhealthy should reduce capacity by 1. - expected[v1.ResourceName(resourceName)] = *resource.NewQuantity(int64(1), resource.DecimalSI) - // Deletes a healthy device should reduce capacity by 1. - expected[v1.ResourceName(resourceName)] = *resource.NewQuantity(int64(0), resource.DecimalSI) - // Tests adding another resource. - delete(expected, v1.ResourceName(resourceName)) - resourceName2 := "resource2" - expected[v1.ResourceName(resourceName2)] = *resource.NewQuantity(int64(2), resource.DecimalSI) - testDevicePluginHandler.devicePluginManagerMonitorCallback(resourceName2, devs, []*pluginapi.Device{}, []*pluginapi.Device{}) -} - -type stringPairType struct { - value1 string - value2 string -} - -// DevicePluginManager stub to test device Allocation behavior. -type DevicePluginManagerTestStub struct { - // All data structs are keyed by resourceName+DevId - devRuntimeDevices map[string][]stringPairType - devRuntimeMounts map[string][]stringPairType - devRuntimeEnvs map[string][]stringPairType -} - -func NewDevicePluginManagerTestStub() (*DevicePluginManagerTestStub, error) { - return &DevicePluginManagerTestStub{ - devRuntimeDevices: make(map[string][]stringPairType), - devRuntimeMounts: make(map[string][]stringPairType), - devRuntimeEnvs: make(map[string][]stringPairType), - }, nil -} - -func (m *DevicePluginManagerTestStub) Start() error { - return nil -} - -func (m *DevicePluginManagerTestStub) Devices() map[string][]*pluginapi.Device { - return make(map[string][]*pluginapi.Device) -} - -func (m *DevicePluginManagerTestStub) Allocate(resourceName string, devIds []string) (*pluginapi.AllocateResponse, error) { - resp := new(pluginapi.AllocateResponse) - for _, id := range devIds { - key := resourceName + id - fmt.Printf("Alloc device %q for resource %q\n", id, resourceName) - devRuntime := new(pluginapi.DeviceRuntimeSpec) - for _, dev := range m.devRuntimeDevices[key] { - devRuntime.Devices = append(devRuntime.Devices, &pluginapi.DeviceSpec{ - ContainerPath: dev.value1, - HostPath: dev.value2, - Permissions: "mrw", - }) - } - for _, mount := range m.devRuntimeMounts[key] { - fmt.Printf("Add mount %q %q\n", mount.value1, mount.value2) - devRuntime.Mounts = append(devRuntime.Mounts, &pluginapi.Mount{ - ContainerPath: mount.value1, - HostPath: mount.value2, - ReadOnly: true, - }) - } - devRuntime.Envs = make(map[string]string) - for _, env := range m.devRuntimeEnvs[key] { - devRuntime.Envs[env.value1] = env.value2 - } - resp.Spec = append(resp.Spec, devRuntime) - } - return resp, nil -} - -func (m *DevicePluginManagerTestStub) Stop() error { - return nil -} - -func (m *DevicePluginManagerTestStub) CheckpointFile() string { - return "/tmp/device-plugin-checkpoint" -} - -func TestCheckpoint(t *testing.T) { - resourceName1 := "domain1.com/resource1" - resourceName2 := "domain2.com/resource2" - - m, err := NewDevicePluginManagerTestStub() - as := assert.New(t) - as.Nil(err) - - testDevicePluginHandler := &DevicePluginHandlerImpl{ - devicePluginManager: m, - allDevices: make(map[string]sets.String), - allocatedDevices: make(map[string]podDevices), - } - testDevicePluginHandler.allocatedDevices[resourceName1] = make(podDevices) - testDevicePluginHandler.allocatedDevices[resourceName1].insert("pod1", "con1", "dev1") - testDevicePluginHandler.allocatedDevices[resourceName1].insert("pod1", "con1", "dev2") - testDevicePluginHandler.allocatedDevices[resourceName1].insert("pod1", "con2", "dev1") - testDevicePluginHandler.allocatedDevices[resourceName1].insert("pod2", "con1", "dev1") - testDevicePluginHandler.allocatedDevices[resourceName2] = make(podDevices) - testDevicePluginHandler.allocatedDevices[resourceName2].insert("pod1", "con1", "dev3") - testDevicePluginHandler.allocatedDevices[resourceName2].insert("pod1", "con1", "dev4") - - err = testDevicePluginHandler.writeCheckpoint() - as.Nil(err) - expected := testDevicePluginHandler.allocatedDevices - testDevicePluginHandler.allocatedDevices = make(map[string]podDevices) - err = testDevicePluginHandler.readCheckpoint() - as.Nil(err) - as.Equal(expected, testDevicePluginHandler.allocatedDevices) -} - -func TestPodContainerDeviceAllocation(t *testing.T) { - flag.Set("alsologtostderr", fmt.Sprintf("%t", true)) - var logLevel string - flag.StringVar(&logLevel, "logLevel", "4", "test") - flag.Lookup("v").Value.Set(logLevel) - - var activePods []*v1.Pod - resourceName1 := "domain1.com/resource1" - resourceQuantity1 := *resource.NewQuantity(int64(2), resource.DecimalSI) - devId1 := "dev1" - devId2 := "dev2" - resourceName2 := "domain2.com/resource2" - resourceQuantity2 := *resource.NewQuantity(int64(1), resource.DecimalSI) - devId3 := "dev3" - devId4 := "dev4" - - m, err := NewDevicePluginManagerTestStub() - as := assert.New(t) - as.Nil(err) - monitorCallback := func(resourceName string, added, updated, deleted []*pluginapi.Device) {} - - testDevicePluginHandler := &DevicePluginHandlerImpl{ - devicePluginManager: m, - devicePluginManagerMonitorCallback: monitorCallback, - allDevices: make(map[string]sets.String), - allocatedDevices: make(map[string]podDevices), - } - testDevicePluginHandler.allDevices[resourceName1] = sets.NewString() - testDevicePluginHandler.allDevices[resourceName1].Insert(devId1) - testDevicePluginHandler.allDevices[resourceName1].Insert(devId2) - testDevicePluginHandler.allDevices[resourceName2] = sets.NewString() - testDevicePluginHandler.allDevices[resourceName2].Insert(devId3) - testDevicePluginHandler.allDevices[resourceName2].Insert(devId4) - - m.devRuntimeDevices[resourceName1+devId1] = append(m.devRuntimeDevices[resourceName1+devId1], stringPairType{"/dev/aaa", "/dev/aaa"}) - m.devRuntimeDevices[resourceName1+devId1] = append(m.devRuntimeDevices[resourceName1+devId1], stringPairType{"/dev/bbb", "/dev/bbb"}) - m.devRuntimeDevices[resourceName1+devId2] = append(m.devRuntimeDevices[resourceName1+devId2], stringPairType{"/dev/ccc", "/dev/ccc"}) - m.devRuntimeMounts[resourceName1+devId1] = append(m.devRuntimeMounts[resourceName1+devId1], stringPairType{"/container_dir1/file1", "host_dir1/file1"}) - m.devRuntimeMounts[resourceName1+devId2] = append(m.devRuntimeMounts[resourceName1+devId2], stringPairType{"/container_dir1/file1", "host_dir1/file1"}) - m.devRuntimeEnvs[resourceName1+devId2] = append(m.devRuntimeEnvs[resourceName1+devId2], stringPairType{"key1", "val1"}) - m.devRuntimeEnvs[resourceName2+devId3] = append(m.devRuntimeEnvs[resourceName2+devId3], stringPairType{"key2", "val2"}) - m.devRuntimeEnvs[resourceName2+devId4] = append(m.devRuntimeEnvs[resourceName2+devId4], stringPairType{"key2", "val2"}) - - pod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - UID: uuid.NewUUID(), - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: string(uuid.NewUUID()), - Resources: v1.ResourceRequirements{ - Limits: v1.ResourceList{ - v1.ResourceName(resourceName1): resourceQuantity1, - v1.ResourceName("cpu"): resourceQuantity1, - v1.ResourceName(resourceName2): resourceQuantity2, - }, - }, - }, - }, - }, - } - - cm := &containerManagerImpl{ - devicePluginHandler: testDevicePluginHandler, - } - activePods = append(activePods, pod) - runContainerOpts, err := cm.GetResources(pod, &pod.Spec.Containers[0], activePods) - as.Equal(len(runContainerOpts.Devices), 3) - // Two devices require to mount the same path. Expects a single mount entry to be created. - as.Equal(len(runContainerOpts.Mounts), 1) - as.Equal(runContainerOpts.Mounts[0].ContainerPath, "/container_dir1/file1") - as.Equal(len(runContainerOpts.Envs), 2) - - // Requesting to create a pod without enough resources should fail. - failPod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - UID: uuid.NewUUID(), - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: string(uuid.NewUUID()), - Resources: v1.ResourceRequirements{ - Limits: v1.ResourceList{ - v1.ResourceName(resourceName1): resourceQuantity1, - }, - }, - }, - }, - }, - } - runContainerOpts2, err := cm.GetResources(failPod, &failPod.Spec.Containers[0], activePods) - as.NotNil(err) - as.Equal(len(runContainerOpts2.Devices), 0) - as.Equal(len(runContainerOpts2.Mounts), 0) - as.Equal(len(runContainerOpts2.Envs), 0) - - // Requesting to create a new pod with a single resourceName2 should succeed. - newPod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - UID: uuid.NewUUID(), - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: string(uuid.NewUUID()), - Resources: v1.ResourceRequirements{ - Limits: v1.ResourceList{ - v1.ResourceName(resourceName2): resourceQuantity2, - }, - }, - }, - }, - }, - } - runContainerOpts3, err := cm.GetResources(newPod, &newPod.Spec.Containers[0], activePods) - as.Nil(err) - as.Equal(len(runContainerOpts3.Envs), 1) -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/BUILD new file mode 100644 index 000000000..1d650b6d8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/BUILD @@ -0,0 +1,70 @@ +package(default_visibility = ["//visibility:public"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_library( + name = "go_default_library", + srcs = [ + "device_plugin_handler.go", + "device_plugin_handler_stub.go", + "device_plugin_stub.go", + "endpoint.go", + "manager.go", + "pod_devices.go", + "types.go", + ], + importpath = "k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin", + deps = [ + "//pkg/apis/core/v1/helper:go_default_library", + "//pkg/kubelet/apis/deviceplugin/v1alpha:go_default_library", + "//pkg/kubelet/container:go_default_library", + "//pkg/kubelet/lifecycle:go_default_library", + "//plugin/pkg/scheduler/schedulercache:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) + +go_test( + name = "go_default_test", + srcs = [ + "device_plugin_handler_test.go", + "endpoint_test.go", + "manager_test.go", + ], + importpath = "k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin", + library = ":go_default_library", + deps = [ + "//pkg/kubelet/apis/deviceplugin/v1alpha:go_default_library", + "//pkg/kubelet/lifecycle:go_default_library", + "//plugin/pkg/scheduler/schedulercache:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/github.com/stretchr/testify/require:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/OWNERS similarity index 84% rename from vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/OWNERS rename to vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/OWNERS index f16238fc9..ec9b7ddc1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/OWNERS @@ -1,5 +1,6 @@ -reviewers: +approvers: - jiayingz +- vishh +reviewers: - mindprince - RenaudWasTaken -- vishh diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler.go new file mode 100644 index 000000000..4c9de6b3f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler.go @@ -0,0 +1,365 @@ +/* +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 deviceplugin + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "os" + "sync" + + "github.com/golang/glog" + + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/apimachinery/pkg/util/sets" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" + "k8s.io/kubernetes/pkg/kubelet/lifecycle" + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" +) + +// ActivePodsFunc is a function that returns a list of pods to reconcile. +type ActivePodsFunc func() []*v1.Pod + +// Handler defines the functions used to manage and access device plugin resources. +type Handler interface { + // Start starts device plugin registration service. + Start(activePods ActivePodsFunc) error + // Devices returns all of registered devices keyed by resourceName. + Devices() map[string][]pluginapi.Device + // Allocate scans through containers in the pod spec + // If it finds the container requires device plugin resource, it: + // 1. Checks whether it already has this information in its cached state. + // 2. If not, it calls Allocate and populate its cached state afterwards. + // 3. If there is no cached state and Allocate fails, it returns an error. + // 4. Otherwise, it updates allocatableResource in nodeInfo if necessary, + // to make sure it is at least equal to the pod's requested capacity for + // any registered device plugin resource + Allocate(node *schedulercache.NodeInfo, attrs *lifecycle.PodAdmitAttributes) error + // GetDeviceRunContainerOptions checks whether we have cached containerDevices + // for the passed-in and returns its DeviceRunContainerOptions + // for the found one. An empty struct is returned in case no cached state is found. + GetDeviceRunContainerOptions(pod *v1.Pod, container *v1.Container) *DeviceRunContainerOptions +} + +// HandlerImpl implements the actual functionality to manage device plugin resources. +type HandlerImpl struct { + // TODO: consider to change this to RWMutex. + sync.Mutex + // devicePluginManager is an implementation of deviceplugin.Manager interface. + devicePluginManager Manager + // activePods is a method for listing active pods on the node + // so the amount of pluginResources requested by existing pods + // could be counted when updating allocated devices + activePods ActivePodsFunc + // devicePluginManagerMonitorCallback is used for updating devices' states in one time call. + // e.g. a new device is advertised, two old devices are deleted and a running device fails. + devicePluginManagerMonitorCallback MonitorCallback + // allDevices contains all of registered resourceNames and their exported device IDs. + allDevices map[string]sets.String + // allocatedDevices contains allocated deviceIds, keyed by resourceName. + allocatedDevices map[string]sets.String + // podDevices contains pod to allocated device mapping. + podDevices podDevices +} + +// NewHandlerImpl creates a HandlerImpl to manage device plugin resources. +// updateCapacityFunc is called to update ContainerManager capacity when +// device capacity changes. +func NewHandlerImpl(updateCapacityFunc func(v1.ResourceList)) (*HandlerImpl, error) { + glog.V(2).Infof("Creating Device Plugin Handler") + handler := &HandlerImpl{ + allDevices: make(map[string]sets.String), + allocatedDevices: make(map[string]sets.String), + podDevices: make(podDevices), + } + + deviceManagerMonitorCallback := func(resourceName string, added, updated, deleted []pluginapi.Device) { + var capacity = v1.ResourceList{} + kept := append(updated, added...) + if _, ok := handler.allDevices[resourceName]; !ok { + handler.allDevices[resourceName] = sets.NewString() + } + // For now, Handler only keeps track of healthy devices. + // We can revisit this later when the need comes to track unhealthy devices here. + for _, dev := range kept { + if dev.Health == pluginapi.Healthy { + handler.allDevices[resourceName].Insert(dev.ID) + } else { + handler.allDevices[resourceName].Delete(dev.ID) + } + } + for _, dev := range deleted { + handler.allDevices[resourceName].Delete(dev.ID) + } + capacity[v1.ResourceName(resourceName)] = *resource.NewQuantity(int64(handler.allDevices[resourceName].Len()), resource.DecimalSI) + updateCapacityFunc(capacity) + } + + mgr, err := NewManagerImpl(pluginapi.KubeletSocket, deviceManagerMonitorCallback) + if err != nil { + return nil, fmt.Errorf("Failed to initialize device plugin manager: %+v", err) + } + + handler.devicePluginManager = mgr + handler.devicePluginManagerMonitorCallback = deviceManagerMonitorCallback + + return handler, nil +} + +// Start initializes podDevices and allocatedDevices information from checkpoint-ed state +// and starts device plugin registration service. +func (h *HandlerImpl) Start(activePods ActivePodsFunc) error { + h.activePods = activePods + + // Loads in allocatedDevices information from disk. + err := h.readCheckpoint() + if err != nil { + glog.Warningf("Continue after failing to read checkpoint file. Device allocation info may NOT be up-to-date. Err: %v", err) + } + + return h.devicePluginManager.Start() +} + +// Devices returns all of registered devices keyed by resourceName. +func (h *HandlerImpl) Devices() map[string][]pluginapi.Device { + return h.devicePluginManager.Devices() +} + +// Returns list of device Ids we need to allocate with Allocate rpc call. +// Returns empty list in case we don't need to issue the Allocate rpc call. +func (h *HandlerImpl) devicesToAllocate(podUID, contName, resource string, required int) (sets.String, error) { + h.Lock() + defer h.Unlock() + needed := required + // Gets list of devices that have already been allocated. + // This can happen if a container restarts for example. + devices := h.podDevices.containerDevices(podUID, contName, resource) + if devices != nil { + glog.V(3).Infof("Found pre-allocated devices for resource %s container %q in Pod %q: %v", resource, contName, podUID, devices.List()) + needed = needed - devices.Len() + // A pod's resource is not expected to change once admitted by the API server, + // so just fail loudly here. We can revisit this part if this no longer holds. + if needed != 0 { + return nil, fmt.Errorf("pod %v container %v changed request for resource %v from %v to %v", podUID, contName, resource, devices.Len(), required) + } + } + if needed == 0 { + // No change, no work. + return nil, nil + } + devices = sets.NewString() + // Needs to allocate additional devices. + if h.allocatedDevices[resource] == nil { + h.allocatedDevices[resource] = sets.NewString() + } + // Gets Devices in use. + devicesInUse := h.allocatedDevices[resource] + // Gets a list of available devices. + available := h.allDevices[resource].Difference(devicesInUse) + if int(available.Len()) < needed { + return nil, fmt.Errorf("requested number of devices unavailable for %s. Requested: %d, Available: %d", resource, needed, available.Len()) + } + allocated := available.UnsortedList()[:needed] + // Updates h.allocatedDevices with allocated devices to prevent them + // from being allocated to other pods/containers, given that we are + // not holding lock during the rpc call. + for _, device := range allocated { + h.allocatedDevices[resource].Insert(device) + devices.Insert(device) + } + return devices, nil +} + +// allocateContainerResources attempts to allocate all of required device +// plugin resources for the input container, issues an Allocate rpc request +// for each new device resource requirement, processes their AllocateResponses, +// and updates the cached containerDevices on success. +func (h *HandlerImpl) allocateContainerResources(pod *v1.Pod, container *v1.Container) error { + podUID := string(pod.UID) + contName := container.Name + allocatedDevicesUpdated := false + for k, v := range container.Resources.Limits { + resource := string(k) + needed := int(v.Value()) + glog.V(3).Infof("needs %d %s", needed, resource) + if _, registeredResource := h.allDevices[resource]; !registeredResource { + continue + } + // Updates allocatedDevices to garbage collect any stranded resources + // before doing the device plugin allocation. + if !allocatedDevicesUpdated { + h.updateAllocatedDevices(h.activePods()) + allocatedDevicesUpdated = true + } + allocDevices, err := h.devicesToAllocate(podUID, contName, resource, needed) + if err != nil { + return err + } + if allocDevices == nil || len(allocDevices) <= 0 { + continue + } + // devicePluginManager.Allocate involves RPC calls to device plugin, which + // could be heavy-weight. Therefore we want to perform this operation outside + // mutex lock. Note if Allcate call fails, we may leave container resources + // partially allocated for the failed container. We rely on updateAllocatedDevices() + // to garbage collect these resources later. Another side effect is that if + // we have X resource A and Y resource B in total, and two containers, container1 + // and container2 both require X resource A and Y resource B. Both allocation + // requests may fail if we serve them in mixed order. + // TODO: may revisit this part later if we see inefficient resource allocation + // in real use as the result of this. Should also consider to parallize device + // plugin Allocate grpc calls if it becomes common that a container may require + // resources from multiple device plugins. + resp, err := h.devicePluginManager.Allocate(resource, allocDevices.UnsortedList()) + if err != nil { + // In case of allocation failure, we want to restore h.allocatedDevices + // to the actual allocated state from h.podDevices. + h.Lock() + h.allocatedDevices = h.podDevices.devices() + h.Unlock() + return err + } + + // Update internal cached podDevices state. + h.Lock() + h.podDevices.insert(podUID, contName, resource, allocDevices, resp) + h.Unlock() + } + + // Checkpoints device to container allocation information. + return h.writeCheckpoint() +} + +// Allocate attempts to allocate all of required device plugin resources, +// and update Allocatable resources in nodeInfo if necessary +func (h *HandlerImpl) Allocate(node *schedulercache.NodeInfo, attrs *lifecycle.PodAdmitAttributes) error { + pod := attrs.Pod + // TODO: Reuse devices between init containers and regular containers. + for _, container := range pod.Spec.InitContainers { + if err := h.allocateContainerResources(pod, &container); err != nil { + return err + } + } + for _, container := range pod.Spec.Containers { + if err := h.allocateContainerResources(pod, &container); err != nil { + return err + } + } + + // quick return if no pluginResources requested + if _, podRequireDevicePluginResource := h.podDevices[string(pod.UID)]; !podRequireDevicePluginResource { + return nil + } + + h.sanitizeNodeAllocatable(node) + + return nil +} + +// sanitizeNodeAllocatable scans through allocatedDevices in DevicePluginHandler +// and if necessary, updates allocatableResource in nodeInfo to at least equal to +// the allocated capacity. This allows pods that have already been scheduled on +// the node to pass GeneralPredicates admission checking even upon device plugin failure. +func (h *HandlerImpl) sanitizeNodeAllocatable(node *schedulercache.NodeInfo) { + var newAllocatableResource *schedulercache.Resource + allocatableResource := node.AllocatableResource() + if allocatableResource.ScalarResources == nil { + allocatableResource.ScalarResources = make(map[v1.ResourceName]int64) + } + for resource, devices := range h.allocatedDevices { + needed := devices.Len() + quant, ok := allocatableResource.ScalarResources[v1.ResourceName(resource)] + if ok && int(quant) >= needed { + continue + } + // Needs to update nodeInfo.AllocatableResource to make sure + // NodeInfo.allocatableResource at least equal to the capacity already allocated. + if newAllocatableResource == nil { + newAllocatableResource = allocatableResource.Clone() + } + newAllocatableResource.ScalarResources[v1.ResourceName(resource)] = int64(needed) + } + if newAllocatableResource != nil { + node.SetAllocatableResource(newAllocatableResource) + } +} + +// GetDeviceRunContainerOptions checks whether we have cached containerDevices +// for the passed-in and returns its DeviceRunContainerOptions +// for the found one. An empty struct is returned in case no cached state is found. +func (h *HandlerImpl) GetDeviceRunContainerOptions(pod *v1.Pod, container *v1.Container) *DeviceRunContainerOptions { + h.Lock() + defer h.Unlock() + return h.podDevices.deviceRunContainerOptions(string(pod.UID), container.Name) +} + +// updateAllocatedDevices gets a list of active pods and then frees any Devices that are bound to +// terminated pods. Returns error on failure. +func (h *HandlerImpl) updateAllocatedDevices(activePods []*v1.Pod) { + h.Lock() + defer h.Unlock() + activePodUids := sets.NewString() + for _, pod := range activePods { + activePodUids.Insert(string(pod.UID)) + } + allocatedPodUids := h.podDevices.pods() + podsToBeRemoved := allocatedPodUids.Difference(activePodUids) + if len(podsToBeRemoved) <= 0 { + return + } + glog.V(5).Infof("pods to be removed: %v", podsToBeRemoved.List()) + h.podDevices.delete(podsToBeRemoved.List()) + // Regenerated allocatedDevices after we update pod allocation information. + h.allocatedDevices = h.podDevices.devices() +} + +// Checkpoints device to container allocation information to disk. +func (h *HandlerImpl) writeCheckpoint() error { + h.Lock() + data := h.podDevices.toCheckpointData() + h.Unlock() + + dataJSON, err := json.Marshal(data) + if err != nil { + return err + } + filepath := h.devicePluginManager.CheckpointFile() + return ioutil.WriteFile(filepath, dataJSON, 0644) +} + +// Reads device to container allocation information from disk, and populates +// h.allocatedDevices accordingly. +func (h *HandlerImpl) readCheckpoint() error { + filepath := h.devicePluginManager.CheckpointFile() + content, err := ioutil.ReadFile(filepath) + if err != nil && !os.IsNotExist(err) { + return fmt.Errorf("failed to read checkpoint file %q: %v", filepath, err) + } + glog.V(2).Infof("Read checkpoint file %s\n", filepath) + var data checkpointData + if err := json.Unmarshal(content, &data); err != nil { + return fmt.Errorf("failed to unmarshal checkpoint data: %v", err) + } + + h.Lock() + defer h.Unlock() + h.podDevices.fromCheckpointData(data) + h.allocatedDevices = h.podDevices.devices() + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler_stub.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler_stub.go new file mode 100644 index 000000000..eb7230904 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler_stub.go @@ -0,0 +1,52 @@ +/* +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 deviceplugin + +import ( + "k8s.io/api/core/v1" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" + "k8s.io/kubernetes/pkg/kubelet/lifecycle" + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" +) + +// HandlerStub provides a simple stub implementation for Handler. +type HandlerStub struct{} + +// NewHandlerStub creates a HandlerStub. +func NewHandlerStub() (*HandlerStub, error) { + return &HandlerStub{}, nil +} + +// Start simply returns nil. +func (h *HandlerStub) Start(activePods ActivePodsFunc) error { + return nil +} + +// Devices returns an empty map. +func (h *HandlerStub) Devices() map[string][]pluginapi.Device { + return make(map[string][]pluginapi.Device) +} + +// Allocate simply returns nil. +func (h *HandlerStub) Allocate(node *schedulercache.NodeInfo, attrs *lifecycle.PodAdmitAttributes) error { + return nil +} + +// GetDeviceRunContainerOptions simply returns nil. +func (h *HandlerStub) GetDeviceRunContainerOptions(pod *v1.Pod, container *v1.Container) *DeviceRunContainerOptions { + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler_test.go new file mode 100644 index 000000000..252968c38 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_handler_test.go @@ -0,0 +1,414 @@ +/* +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 deviceplugin + +import ( + "flag" + "fmt" + "reflect" + "testing" + + "github.com/stretchr/testify/assert" + + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/uuid" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" + "k8s.io/kubernetes/pkg/kubelet/lifecycle" + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" +) + +func TestUpdateCapacity(t *testing.T) { + var expected = v1.ResourceList{} + as := assert.New(t) + verifyCapacityFunc := func(updates v1.ResourceList) { + as.Equal(expected, updates) + } + testHandler, err := NewHandlerImpl(verifyCapacityFunc) + as.NotNil(testHandler) + as.Nil(err) + + devs := []pluginapi.Device{ + {ID: "Device1", Health: pluginapi.Healthy}, + {ID: "Device2", Health: pluginapi.Healthy}, + {ID: "Device3", Health: pluginapi.Unhealthy}, + } + + resourceName := "resource1" + // Adds three devices for resource1, two healthy and one unhealthy. + // Expects capacity for resource1 to be 2. + expected[v1.ResourceName(resourceName)] = *resource.NewQuantity(int64(2), resource.DecimalSI) + testHandler.devicePluginManagerMonitorCallback(resourceName, devs, []pluginapi.Device{}, []pluginapi.Device{}) + // Deletes an unhealthy device should NOT change capacity. + testHandler.devicePluginManagerMonitorCallback(resourceName, []pluginapi.Device{}, []pluginapi.Device{}, []pluginapi.Device{devs[2]}) + // Updates a healthy device to unhealthy should reduce capacity by 1. + expected[v1.ResourceName(resourceName)] = *resource.NewQuantity(int64(1), resource.DecimalSI) + // Deletes a healthy device should reduce capacity by 1. + expected[v1.ResourceName(resourceName)] = *resource.NewQuantity(int64(0), resource.DecimalSI) + // Tests adding another resource. + delete(expected, v1.ResourceName(resourceName)) + resourceName2 := "resource2" + expected[v1.ResourceName(resourceName2)] = *resource.NewQuantity(int64(2), resource.DecimalSI) + testHandler.devicePluginManagerMonitorCallback(resourceName2, devs, []pluginapi.Device{}, []pluginapi.Device{}) +} + +type stringPairType struct { + value1 string + value2 string +} + +// DevicePluginManager stub to test device Allocation behavior. +type DevicePluginManagerTestStub struct { + // All data structs are keyed by resourceName+DevId + devRuntimeDevices map[string][]stringPairType + devRuntimeMounts map[string][]stringPairType + devRuntimeEnvs map[string][]stringPairType +} + +func NewDevicePluginManagerTestStub() (*DevicePluginManagerTestStub, error) { + return &DevicePluginManagerTestStub{ + devRuntimeDevices: make(map[string][]stringPairType), + devRuntimeMounts: make(map[string][]stringPairType), + devRuntimeEnvs: make(map[string][]stringPairType), + }, nil +} + +func (m *DevicePluginManagerTestStub) Start() error { + return nil +} + +func (m *DevicePluginManagerTestStub) Devices() map[string][]pluginapi.Device { + return make(map[string][]pluginapi.Device) +} + +func (m *DevicePluginManagerTestStub) Allocate(resourceName string, devIds []string) (*pluginapi.AllocateResponse, error) { + resp := new(pluginapi.AllocateResponse) + resp.Envs = make(map[string]string) + for _, id := range devIds { + key := resourceName + id + fmt.Printf("Alloc device %v for resource %v\n", id, resourceName) + for _, dev := range m.devRuntimeDevices[key] { + fmt.Printf("Add dev %v %v\n", dev.value1, dev.value2) + resp.Devices = append(resp.Devices, &pluginapi.DeviceSpec{ + ContainerPath: dev.value1, + HostPath: dev.value2, + Permissions: "mrw", + }) + } + for _, mount := range m.devRuntimeMounts[key] { + fmt.Printf("Add mount %v %v\n", mount.value1, mount.value2) + resp.Mounts = append(resp.Mounts, &pluginapi.Mount{ + ContainerPath: mount.value1, + HostPath: mount.value2, + ReadOnly: true, + }) + } + for _, env := range m.devRuntimeEnvs[key] { + fmt.Printf("Add env %v %v\n", env.value1, env.value2) + resp.Envs[env.value1] = env.value2 + } + } + return resp, nil +} + +func (m *DevicePluginManagerTestStub) Stop() error { + return nil +} + +func (m *DevicePluginManagerTestStub) CheckpointFile() string { + return "/tmp/device-plugin-checkpoint" +} + +func constructDevices(devices []string) sets.String { + ret := sets.NewString() + for _, dev := range devices { + ret.Insert(dev) + } + return ret +} + +func constructAllocResp(devices, mounts, envs map[string]string) *pluginapi.AllocateResponse { + resp := &pluginapi.AllocateResponse{} + for k, v := range devices { + resp.Devices = append(resp.Devices, &pluginapi.DeviceSpec{ + HostPath: k, + ContainerPath: v, + Permissions: "mrw", + }) + } + for k, v := range mounts { + resp.Mounts = append(resp.Mounts, &pluginapi.Mount{ + ContainerPath: k, + HostPath: v, + ReadOnly: true, + }) + } + resp.Envs = make(map[string]string) + for k, v := range envs { + resp.Envs[k] = v + } + return resp +} + +func TestCheckpoint(t *testing.T) { + resourceName1 := "domain1.com/resource1" + resourceName2 := "domain2.com/resource2" + + m, err := NewDevicePluginManagerTestStub() + as := assert.New(t) + as.Nil(err) + + testHandler := &HandlerImpl{ + devicePluginManager: m, + allDevices: make(map[string]sets.String), + allocatedDevices: make(map[string]sets.String), + podDevices: make(podDevices), + } + + testHandler.podDevices.insert("pod1", "con1", resourceName1, + constructDevices([]string{"dev1", "dev2"}), + constructAllocResp(map[string]string{"/dev/r1dev1": "/dev/r1dev1", "/dev/r1dev2": "/dev/r1dev2"}, + map[string]string{"/home/r1lib1": "/usr/r1lib1"}, map[string]string{})) + testHandler.podDevices.insert("pod1", "con1", resourceName2, + constructDevices([]string{"dev1", "dev2"}), + constructAllocResp(map[string]string{"/dev/r2dev1": "/dev/r2dev1", "/dev/r2dev2": "/dev/r2dev2"}, + map[string]string{"/home/r2lib1": "/usr/r2lib1"}, + map[string]string{"r2devices": "dev1 dev2"})) + testHandler.podDevices.insert("pod1", "con2", resourceName1, + constructDevices([]string{"dev3"}), + constructAllocResp(map[string]string{"/dev/r1dev3": "/dev/r1dev3"}, + map[string]string{"/home/r1lib1": "/usr/r1lib1"}, map[string]string{})) + testHandler.podDevices.insert("pod2", "con1", resourceName1, + constructDevices([]string{"dev4"}), + constructAllocResp(map[string]string{"/dev/r1dev4": "/dev/r1dev4"}, + map[string]string{"/home/r1lib1": "/usr/r1lib1"}, map[string]string{})) + + expectedPodDevices := testHandler.podDevices + expectedAllocatedDevices := testHandler.podDevices.devices() + + err = testHandler.writeCheckpoint() + as.Nil(err) + testHandler.podDevices = make(podDevices) + err = testHandler.readCheckpoint() + as.Nil(err) + + as.Equal(len(expectedPodDevices), len(testHandler.podDevices)) + for podUID, containerDevices := range expectedPodDevices { + for conName, resources := range containerDevices { + for resource := range resources { + as.True(reflect.DeepEqual( + expectedPodDevices.containerDevices(podUID, conName, resource), + testHandler.podDevices.containerDevices(podUID, conName, resource))) + opts1 := expectedPodDevices.deviceRunContainerOptions(podUID, conName) + opts2 := testHandler.podDevices.deviceRunContainerOptions(podUID, conName) + as.Equal(len(opts1.Envs), len(opts2.Envs)) + as.Equal(len(opts1.Mounts), len(opts2.Mounts)) + as.Equal(len(opts1.Devices), len(opts2.Devices)) + } + } + } + as.True(reflect.DeepEqual(expectedAllocatedDevices, testHandler.allocatedDevices)) +} + +type activePodsStub struct { + activePods []*v1.Pod +} + +func (a *activePodsStub) getActivePods() []*v1.Pod { + return a.activePods +} + +func (a *activePodsStub) updateActivePods(newPods []*v1.Pod) { + a.activePods = newPods +} + +func TestPodContainerDeviceAllocation(t *testing.T) { + flag.Set("alsologtostderr", fmt.Sprintf("%t", true)) + var logLevel string + flag.StringVar(&logLevel, "logLevel", "4", "test") + flag.Lookup("v").Value.Set(logLevel) + + resourceName1 := "domain1.com/resource1" + resourceQuantity1 := *resource.NewQuantity(int64(2), resource.DecimalSI) + devID1 := "dev1" + devID2 := "dev2" + resourceName2 := "domain2.com/resource2" + resourceQuantity2 := *resource.NewQuantity(int64(1), resource.DecimalSI) + devID3 := "dev3" + devID4 := "dev4" + + m, err := NewDevicePluginManagerTestStub() + as := assert.New(t) + as.Nil(err) + monitorCallback := func(resourceName string, added, updated, deleted []pluginapi.Device) {} + podsStub := activePodsStub{ + activePods: []*v1.Pod{}, + } + cachedNode := &v1.Node{ + Status: v1.NodeStatus{ + Allocatable: v1.ResourceList{}, + }, + } + nodeInfo := &schedulercache.NodeInfo{} + nodeInfo.SetNode(cachedNode) + + testHandler := &HandlerImpl{ + devicePluginManager: m, + devicePluginManagerMonitorCallback: monitorCallback, + allDevices: make(map[string]sets.String), + allocatedDevices: make(map[string]sets.String), + podDevices: make(podDevices), + activePods: podsStub.getActivePods, + } + testHandler.allDevices[resourceName1] = sets.NewString() + testHandler.allDevices[resourceName1].Insert(devID1) + testHandler.allDevices[resourceName1].Insert(devID2) + testHandler.allDevices[resourceName2] = sets.NewString() + testHandler.allDevices[resourceName2].Insert(devID3) + testHandler.allDevices[resourceName2].Insert(devID4) + + m.devRuntimeDevices[resourceName1+devID1] = append(m.devRuntimeDevices[resourceName1+devID1], stringPairType{"/dev/aaa", "/dev/aaa"}) + m.devRuntimeDevices[resourceName1+devID1] = append(m.devRuntimeDevices[resourceName1+devID1], stringPairType{"/dev/bbb", "/dev/bbb"}) + m.devRuntimeDevices[resourceName1+devID2] = append(m.devRuntimeDevices[resourceName1+devID2], stringPairType{"/dev/ccc", "/dev/ccc"}) + m.devRuntimeMounts[resourceName1+devID1] = append(m.devRuntimeMounts[resourceName1+devID1], stringPairType{"/container_dir1/file1", "host_dir1/file1"}) + m.devRuntimeMounts[resourceName1+devID2] = append(m.devRuntimeMounts[resourceName1+devID2], stringPairType{"/container_dir1/file2", "host_dir1/file2"}) + m.devRuntimeEnvs[resourceName1+devID2] = append(m.devRuntimeEnvs[resourceName1+devID2], stringPairType{"key1", "val1"}) + m.devRuntimeEnvs[resourceName2+devID3] = append(m.devRuntimeEnvs[resourceName2+devID3], stringPairType{"key2", "val2"}) + m.devRuntimeEnvs[resourceName2+devID4] = append(m.devRuntimeEnvs[resourceName2+devID4], stringPairType{"key2", "val3"}) + + pod := &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + UID: uuid.NewUUID(), + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: string(uuid.NewUUID()), + Resources: v1.ResourceRequirements{ + Limits: v1.ResourceList{ + v1.ResourceName(resourceName1): resourceQuantity1, + v1.ResourceName("cpu"): resourceQuantity1, + v1.ResourceName(resourceName2): resourceQuantity2, + }, + }, + }, + }, + }, + } + + podsStub.updateActivePods([]*v1.Pod{pod}) + err = testHandler.Allocate(nodeInfo, &lifecycle.PodAdmitAttributes{Pod: pod}) + as.Nil(err) + runContainerOpts := testHandler.GetDeviceRunContainerOptions(pod, &pod.Spec.Containers[0]) + as.Equal(len(runContainerOpts.Devices), 3) + as.Equal(len(runContainerOpts.Mounts), 2) + as.Equal(len(runContainerOpts.Envs), 2) + + // Requesting to create a pod without enough resources should fail. + as.Equal(2, testHandler.allocatedDevices[resourceName1].Len()) + failPod := &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + UID: uuid.NewUUID(), + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: string(uuid.NewUUID()), + Resources: v1.ResourceRequirements{ + Limits: v1.ResourceList{ + v1.ResourceName(resourceName1): resourceQuantity2, + }, + }, + }, + }, + }, + } + err = testHandler.Allocate(nodeInfo, &lifecycle.PodAdmitAttributes{Pod: failPod}) + as.NotNil(err) + runContainerOpts2 := testHandler.GetDeviceRunContainerOptions(failPod, &failPod.Spec.Containers[0]) + as.Nil(runContainerOpts2) + + // Requesting to create a new pod with a single resourceName2 should succeed. + newPod := &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + UID: uuid.NewUUID(), + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: string(uuid.NewUUID()), + Resources: v1.ResourceRequirements{ + Limits: v1.ResourceList{ + v1.ResourceName(resourceName2): resourceQuantity2, + }, + }, + }, + }, + }, + } + err = testHandler.Allocate(nodeInfo, &lifecycle.PodAdmitAttributes{Pod: newPod}) + as.Nil(err) + runContainerOpts3 := testHandler.GetDeviceRunContainerOptions(newPod, &newPod.Spec.Containers[0]) + as.Equal(1, len(runContainerOpts3.Envs)) +} + +func TestSanitizeNodeAllocatable(t *testing.T) { + resourceName1 := "domain1.com/resource1" + devID1 := "dev1" + + resourceName2 := "domain2.com/resource2" + devID2 := "dev2" + + m, err := NewDevicePluginManagerTestStub() + as := assert.New(t) + as.Nil(err) + monitorCallback := func(resourceName string, added, updated, deleted []pluginapi.Device) {} + + testHandler := &HandlerImpl{ + devicePluginManager: m, + devicePluginManagerMonitorCallback: monitorCallback, + allDevices: make(map[string]sets.String), + allocatedDevices: make(map[string]sets.String), + podDevices: make(podDevices), + } + // require one of resource1 and one of resource2 + testHandler.allocatedDevices[resourceName1] = sets.NewString() + testHandler.allocatedDevices[resourceName1].Insert(devID1) + testHandler.allocatedDevices[resourceName2] = sets.NewString() + testHandler.allocatedDevices[resourceName2].Insert(devID2) + + cachedNode := &v1.Node{ + Status: v1.NodeStatus{ + Allocatable: v1.ResourceList{ + // has no resource1 and two of resource2 + v1.ResourceName(resourceName2): *resource.NewQuantity(int64(2), resource.DecimalSI), + }, + }, + } + nodeInfo := &schedulercache.NodeInfo{} + nodeInfo.SetNode(cachedNode) + + testHandler.sanitizeNodeAllocatable(nodeInfo) + + allocatableScalarResources := nodeInfo.AllocatableResource().ScalarResources + // allocatable in nodeInfo is less than needed, should update + as.Equal(1, int(allocatableScalarResources[v1.ResourceName(resourceName1)])) + // allocatable in nodeInfo is more than needed, should skip updating + as.Equal(2, int(allocatableScalarResources[v1.ResourceName(resourceName2)])) +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/device_plugin_stub.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_stub.go similarity index 99% rename from vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/device_plugin_stub.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_stub.go index a0f103d03..01f08c159 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/device_plugin_stub.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/device_plugin_stub.go @@ -26,7 +26,7 @@ import ( "golang.org/x/net/context" "google.golang.org/grpc" - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" ) // Stub implementation for DevicePlugin. diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/endpoint.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/endpoint.go similarity index 80% rename from vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/endpoint.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/endpoint.go index f0523471a..8e0b619d7 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/endpoint.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/endpoint.go @@ -26,65 +26,63 @@ import ( "golang.org/x/net/context" "google.golang.org/grpc" - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" ) // endpoint maps to a single registered device plugin. It is responsible // for managing gRPC communications with the device plugin and caching // device states reported by the device plugin. type endpoint struct { - client pluginapi.DevicePluginClient + client pluginapi.DevicePluginClient + clientConn *grpc.ClientConn socketPath string resourceName string - devices map[string]*pluginapi.Device + devices map[string]pluginapi.Device mutex sync.Mutex callback MonitorCallback - - cancel context.CancelFunc - ctx context.Context } // newEndpoint creates a new endpoint for the given resourceName. func newEndpoint(socketPath, resourceName string, callback MonitorCallback) (*endpoint, error) { - client, err := dial(socketPath) + client, c, err := dial(socketPath) if err != nil { glog.Errorf("Can't create new endpoint with path %s err %v", socketPath, err) return nil, err } - ctx, stop := context.WithCancel(context.Background()) - return &endpoint{ - client: client, + client: client, + clientConn: c, socketPath: socketPath, resourceName: resourceName, devices: nil, callback: callback, - - cancel: stop, - ctx: ctx, }, nil } -func (e *endpoint) getDevices() []*pluginapi.Device { +func (e *endpoint) getDevices() []pluginapi.Device { e.mutex.Lock() defer e.mutex.Unlock() - return copyDevices(e.devices) + var devs []pluginapi.Device + + for _, d := range e.devices { + devs = append(devs, d) + } + + return devs } // list initializes ListAndWatch gRPC call for the device plugin and gets the // initial list of the devices. Returns ListAndWatch gRPC stream on success. func (e *endpoint) list() (pluginapi.DevicePlugin_ListAndWatchClient, error) { - glog.V(3).Infof("Starting List") - stream, err := e.client.ListAndWatch(e.ctx, &pluginapi.Empty{}) + stream, err := e.client.ListAndWatch(context.Background(), &pluginapi.Empty{}) if err != nil { glog.Errorf(errListAndWatch, e.resourceName, err) - return nil, err } @@ -94,11 +92,11 @@ func (e *endpoint) list() (pluginapi.DevicePlugin_ListAndWatchClient, error) { return nil, err } - devices := make(map[string]*pluginapi.Device) - var added, updated, deleted []*pluginapi.Device + devices := make(map[string]pluginapi.Device) + var added, updated, deleted []pluginapi.Device for _, d := range devs.Devices { - devices[d.ID] = d - added = append(added, cloneDevice(d)) + devices[d.ID] = *d + added = append(added, *d) } e.mutex.Lock() @@ -118,11 +116,11 @@ func (e *endpoint) list() (pluginapi.DevicePlugin_ListAndWatchClient, error) { func (e *endpoint) listAndWatch(stream pluginapi.DevicePlugin_ListAndWatchClient) { glog.V(3).Infof("Starting ListAndWatch") - devices := make(map[string]*pluginapi.Device) + devices := make(map[string]pluginapi.Device) e.mutex.Lock() for _, d := range e.devices { - devices[d.ID] = cloneDevice(d) + devices[d.ID] = d } e.mutex.Unlock() @@ -137,7 +135,7 @@ func (e *endpoint) listAndWatch(stream pluginapi.DevicePlugin_ListAndWatchClient glog.V(2).Infof("State pushed for device plugin %s", e.resourceName) newDevs := make(map[string]*pluginapi.Device) - var added, updated []*pluginapi.Device + var added, updated []pluginapi.Device for _, d := range devs { dOld, ok := devices[d.ID] @@ -146,8 +144,8 @@ func (e *endpoint) listAndWatch(stream pluginapi.DevicePlugin_ListAndWatchClient if !ok { glog.V(2).Infof("New device for Endpoint %s: %v", e.resourceName, d) - devices[d.ID] = d - added = append(added, cloneDevice(d)) + devices[d.ID] = *d + added = append(added, *d) continue } @@ -162,11 +160,11 @@ func (e *endpoint) listAndWatch(stream pluginapi.DevicePlugin_ListAndWatchClient glog.V(2).Infof("Device %s is now Healthy", d.ID) } - devices[d.ID] = d - updated = append(updated, cloneDevice(d)) + devices[d.ID] = *d + updated = append(updated, *d) } - var deleted []*pluginapi.Device + var deleted []pluginapi.Device for id, d := range devices { if _, ok := newDevs[id]; ok { continue @@ -174,7 +172,7 @@ func (e *endpoint) listAndWatch(stream pluginapi.DevicePlugin_ListAndWatchClient glog.Errorf("Device %s was deleted", d.ID) - deleted = append(deleted, cloneDevice(d)) + deleted = append(deleted, d) delete(devices, id) } @@ -184,7 +182,6 @@ func (e *endpoint) listAndWatch(stream pluginapi.DevicePlugin_ListAndWatchClient e.callback(e.resourceName, added, updated, deleted) } - } // allocate issues Allocate gRPC call to the device plugin. @@ -195,11 +192,11 @@ func (e *endpoint) allocate(devs []string) (*pluginapi.AllocateResponse, error) } func (e *endpoint) stop() { - e.cancel() + e.clientConn.Close() } // dial establishes the gRPC communication with the registered device plugin. -func dial(unixSocketPath string) (pluginapi.DevicePluginClient, error) { +func dial(unixSocketPath string) (pluginapi.DevicePluginClient, *grpc.ClientConn, error) { c, err := grpc.Dial(unixSocketPath, grpc.WithInsecure(), grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) { return net.DialTimeout("unix", addr, timeout) @@ -207,8 +204,8 @@ func dial(unixSocketPath string) (pluginapi.DevicePluginClient, error) { ) if err != nil { - return nil, fmt.Errorf(errFailedToDialDevicePlugin+" %v", err) + return nil, nil, fmt.Errorf(errFailedToDialDevicePlugin+" %v", err) } - return pluginapi.NewDevicePluginClient(c), nil + return pluginapi.NewDevicePluginClient(c), c, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/endpoint_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/endpoint_test.go similarity index 90% rename from vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/endpoint_test.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/endpoint_test.go index a1786711d..a7e458258 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/endpoint_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/endpoint_test.go @@ -23,7 +23,7 @@ import ( "github.com/stretchr/testify/require" - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" ) var ( @@ -37,7 +37,7 @@ func TestNewEndpoint(t *testing.T) { {ID: "ADeviceId", Health: pluginapi.Healthy}, } - p, e := esetup(t, devs, socket, "mock", func(n string, a, u, r []*pluginapi.Device) {}) + p, e := esetup(t, devs, socket, "mock", func(n string, a, u, r []pluginapi.Device) {}) defer ecleanup(t, p, e) } @@ -48,7 +48,7 @@ func TestList(t *testing.T) { {ID: "ADeviceId", Health: pluginapi.Healthy}, } - p, e := esetup(t, devs, socket, "mock", func(n string, a, u, r []*pluginapi.Device) {}) + p, e := esetup(t, devs, socket, "mock", func(n string, a, u, r []pluginapi.Device) {}) defer ecleanup(t, p, e) _, err := e.list() @@ -79,7 +79,7 @@ func TestListAndWatch(t *testing.T) { {ID: "AThirdDeviceId", Health: pluginapi.Healthy}, } - p, e := esetup(t, devs, socket, "mock", func(n string, a, u, r []*pluginapi.Device) { + p, e := esetup(t, devs, socket, "mock", func(n string, a, u, r []pluginapi.Device) { require.Len(t, a, 1) require.Len(t, u, 1) require.Len(t, r, 1) @@ -114,13 +114,23 @@ func TestListAndWatch(t *testing.T) { } +func TestGetDevices(t *testing.T) { + e := endpoint{ + devices: map[string]pluginapi.Device{ + "ADeviceId": {ID: "ADeviceId", Health: pluginapi.Healthy}, + }, + } + devs := e.getDevices() + require.Len(t, devs, 1) +} + func esetup(t *testing.T, devs []*pluginapi.Device, socket, resourceName string, callback MonitorCallback) (*Stub, *endpoint) { p := NewDevicePluginStub(devs, socket) err := p.Start() require.NoError(t, err) - e, err := newEndpoint(socket, "mock", func(n string, a, u, r []*pluginapi.Device) {}) + e, err := newEndpoint(socket, "mock", func(n string, a, u, r []pluginapi.Device) {}) require.NoError(t, err) return p, e diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/manager.go similarity index 81% rename from vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/manager.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/manager.go index 5c05a9728..e255054af 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/manager.go @@ -27,7 +27,9 @@ import ( "golang.org/x/net/context" "google.golang.org/grpc" - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" + "k8s.io/api/core/v1" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" ) // ManagerImpl is the structure in charge of managing Device Plugins. @@ -94,9 +96,14 @@ func (m *ManagerImpl) removeContents(dir string) error { return nil } +const ( + // defaultCheckpoint is the file name of device plugin checkpoint + defaultCheckpoint = "kubelet_internal_checkpoint" +) + // CheckpointFile returns device plugin checkpoint file path. func (m *ManagerImpl) CheckpointFile() string { - return filepath.Join(m.socketdir, "kubelet_internal_checkpoint") + return filepath.Join(m.socketdir, defaultCheckpoint) } // Start starts the Device Plugin Manager @@ -112,11 +119,6 @@ func (m *ManagerImpl) Start() error { glog.Errorf("Fail to clean up stale contents under %s: %+v", m.socketdir, err) } - if err := os.Remove(socketPath); err != nil && !os.IsNotExist(err) { - glog.Errorf(errRemoveSocket+" %+v", err) - return err - } - s, err := net.Listen("unix", socketPath) if err != nil { glog.Errorf(errListenSocket+" %+v", err) @@ -133,13 +135,13 @@ func (m *ManagerImpl) Start() error { // Devices is the map of devices that are known by the Device // Plugin manager with the kind of the devices as key -func (m *ManagerImpl) Devices() map[string][]*pluginapi.Device { +func (m *ManagerImpl) Devices() map[string][]pluginapi.Device { m.mutex.Lock() defer m.mutex.Unlock() - devs := make(map[string][]*pluginapi.Device) + devs := make(map[string][]pluginapi.Device) for k, e := range m.endpoints { - glog.V(3).Infof("Endpoint: %+v: %+v", k, e) + glog.V(3).Infof("Endpoint: %+v: %p", k, e) devs[k] = e.getDevices() } @@ -167,15 +169,18 @@ func (m *ManagerImpl) Allocate(resourceName string, devs []string) (*pluginapi.A } // Register registers a device plugin. -func (m *ManagerImpl) Register(ctx context.Context, - r *pluginapi.RegisterRequest) (*pluginapi.Empty, error) { - glog.V(2).Infof("Got request for Device Plugin %s", r.ResourceName) +func (m *ManagerImpl) Register(ctx context.Context, r *pluginapi.RegisterRequest) (*pluginapi.Empty, error) { + glog.Infof("Got registration request from device plugin with resource name %q", r.ResourceName) if r.Version != pluginapi.Version { - return &pluginapi.Empty{}, fmt.Errorf(errUnsuportedVersion) + errorString := fmt.Sprintf(errUnsuportedVersion, r.Version, pluginapi.Version) + glog.Infof("Bad registration request from device plugin with resource name %q: %v", r.ResourceName, errorString) + return &pluginapi.Empty{}, fmt.Errorf(errorString) } - if err := IsResourceNameValid(r.ResourceName); err != nil { - return &pluginapi.Empty{}, err + if !v1helper.IsExtendedResourceName(v1.ResourceName(r.ResourceName)) { + errorString := fmt.Sprintf(errInvalidResourceName, r.ResourceName) + glog.Infof("Bad registration request from device plugin: %v", errorString) + return &pluginapi.Empty{}, fmt.Errorf(errorString) } // TODO: for now, always accepts newest device plugin. Later may consider to @@ -206,9 +211,11 @@ func (m *ManagerImpl) addEndpoint(r *pluginapi.RegisterRequest) { glog.Errorf("Failed to dial device plugin with request %v: %v", r, err) return } + stream, err := e.list() if err != nil { glog.Errorf("Failed to List devices for plugin %v: %v", r.ResourceName, err) + e.stop() return } @@ -217,22 +224,25 @@ func (m *ManagerImpl) addEndpoint(r *pluginapi.RegisterRequest) { m.mutex.Lock() old, ok := m.endpoints[r.ResourceName] m.endpoints[r.ResourceName] = e - m.mutex.Unlock() glog.V(2).Infof("Registered endpoint %v", e) + m.mutex.Unlock() + if ok && old != nil { old.stop() } go func() { e.listAndWatch(stream) + e.stop() m.mutex.Lock() if old, ok := m.endpoints[r.ResourceName]; ok && old == e { glog.V(2).Infof("Delete resource for endpoint %v", e) delete(m.endpoints, r.ResourceName) // Issues callback to delete all of devices. - e.callback(e.resourceName, []*pluginapi.Device{}, []*pluginapi.Device{}, e.getDevices()) + e.callback(e.resourceName, []pluginapi.Device{}, []pluginapi.Device{}, e.getDevices()) } + glog.V(2).Infof("Unregistered endpoint %v", e) m.mutex.Unlock() }() diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/manager_test.go similarity index 92% rename from vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/manager_test.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/manager_test.go index cdc43a0b2..a9f05700b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/manager_test.go @@ -23,7 +23,7 @@ import ( "github.com/stretchr/testify/require" - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" ) const ( @@ -33,15 +33,15 @@ const ( ) func TestNewManagerImpl(t *testing.T) { - _, err := NewManagerImpl("", func(n string, a, u, r []*pluginapi.Device) {}) + _, err := NewManagerImpl("", func(n string, a, u, r []pluginapi.Device) {}) require.Error(t, err) - _, err = NewManagerImpl(socketName, func(n string, a, u, r []*pluginapi.Device) {}) + _, err = NewManagerImpl(socketName, func(n string, a, u, r []pluginapi.Device) {}) require.NoError(t, err) } func TestNewManagerImplStart(t *testing.T) { - m, p := setup(t, []*pluginapi.Device{}, func(n string, a, u, r []*pluginapi.Device) {}) + m, p := setup(t, []*pluginapi.Device{}, func(n string, a, u, r []pluginapi.Device) {}) cleanup(t, m, p) } @@ -58,7 +58,7 @@ func TestDevicePluginReRegistration(t *testing.T) { callbackChan := make(chan int) var stopping int32 stopping = 0 - callback := func(n string, a, u, r []*pluginapi.Device) { + callback := func(n string, a, u, r []pluginapi.Device) { // Should be called twice, one for each plugin registration, till we are stopping. if callbackCount > 1 && atomic.LoadInt32(&stopping) <= 0 { t.FailNow() diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/pod_devices.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/pod_devices.go new file mode 100644 index 000000000..e343321e2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/pod_devices.go @@ -0,0 +1,228 @@ +/* +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 deviceplugin + +import ( + "github.com/golang/glog" + + "k8s.io/apimachinery/pkg/util/sets" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" + kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" +) + +type deviceAllocateInfo struct { + // deviceIds contains device Ids allocated to this container for the given resourceName. + deviceIds sets.String + // allocResp contains cached rpc AllocateResponse. + allocResp *pluginapi.AllocateResponse +} + +type resourceAllocateInfo map[string]deviceAllocateInfo // Keyed by resourceName. +type containerDevices map[string]resourceAllocateInfo // Keyed by containerName. +type podDevices map[string]containerDevices // Keyed by podUID. + +func (pdev podDevices) pods() sets.String { + ret := sets.NewString() + for k := range pdev { + ret.Insert(k) + } + return ret +} + +func (pdev podDevices) insert(podUID, contName, resource string, devices sets.String, resp *pluginapi.AllocateResponse) { + if _, podExists := pdev[podUID]; !podExists { + pdev[podUID] = make(containerDevices) + } + if _, contExists := pdev[podUID][contName]; !contExists { + pdev[podUID][contName] = make(resourceAllocateInfo) + } + pdev[podUID][contName][resource] = deviceAllocateInfo{ + deviceIds: devices, + allocResp: resp, + } +} + +func (pdev podDevices) delete(pods []string) { + for _, uid := range pods { + delete(pdev, uid) + } +} + +// Returns list of device Ids allocated to the given container for the given resource. +// Returns nil if we don't have cached state for the given . +func (pdev podDevices) containerDevices(podUID, contName, resource string) sets.String { + if _, podExists := pdev[podUID]; !podExists { + return nil + } + if _, contExists := pdev[podUID][contName]; !contExists { + return nil + } + devs, resourceExists := pdev[podUID][contName][resource] + if !resourceExists { + return nil + } + return devs.deviceIds +} + +// Returns all of devices allocated to the pods being tracked, keyed by resourceName. +func (pdev podDevices) devices() map[string]sets.String { + ret := make(map[string]sets.String) + for _, containerDevices := range pdev { + for _, resources := range containerDevices { + for resource, devices := range resources { + if _, exists := ret[resource]; !exists { + ret[resource] = sets.NewString() + } + ret[resource] = ret[resource].Union(devices.deviceIds) + } + } + } + return ret +} + +type checkpointEntry struct { + PodUID string + ContainerName string + ResourceName string + DeviceIDs []string + AllocResp []byte +} + +// checkpointData struct is used to store pod to device allocation information +// in a checkpoint file. +// TODO: add version control when we need to change checkpoint format. +type checkpointData struct { + Entries []checkpointEntry +} + +// Turns podDevices to checkpointData. +func (pdev podDevices) toCheckpointData() checkpointData { + var data checkpointData + for podUID, containerDevices := range pdev { + for conName, resources := range containerDevices { + for resource, devices := range resources { + devIds := devices.deviceIds.UnsortedList() + allocResp, err := devices.allocResp.Marshal() + if err != nil { + glog.Errorf("Can't marshal allocResp for %v %v %v: %v", podUID, conName, resource, err) + continue + } + data.Entries = append(data.Entries, checkpointEntry{podUID, conName, resource, devIds, allocResp}) + } + } + } + return data +} + +// Populates podDevices from the passed in checkpointData. +func (pdev podDevices) fromCheckpointData(data checkpointData) { + for _, entry := range data.Entries { + glog.V(2).Infof("Get checkpoint entry: %v %v %v %v %v\n", + entry.PodUID, entry.ContainerName, entry.ResourceName, entry.DeviceIDs, entry.AllocResp) + devIDs := sets.NewString() + for _, devID := range entry.DeviceIDs { + devIDs.Insert(devID) + } + allocResp := &pluginapi.AllocateResponse{} + err := allocResp.Unmarshal(entry.AllocResp) + if err != nil { + glog.Errorf("Can't unmarshal allocResp for %v %v %v: %v", entry.PodUID, entry.ContainerName, entry.ResourceName, err) + continue + } + pdev.insert(entry.PodUID, entry.ContainerName, entry.ResourceName, devIDs, allocResp) + } +} + +// Returns combined container runtime settings to consume the container's allocated devices. +func (pdev podDevices) deviceRunContainerOptions(podUID, contName string) *DeviceRunContainerOptions { + containers, exists := pdev[podUID] + if !exists { + return nil + } + resources, exists := containers[contName] + if !exists { + return nil + } + opts := &DeviceRunContainerOptions{} + // Maps to detect duplicate settings. + devsMap := make(map[string]string) + mountsMap := make(map[string]string) + envsMap := make(map[string]string) + // Loops through AllocationResponses of all cached device resources. + for _, devices := range resources { + resp := devices.allocResp + // Each Allocate response has the following artifacts. + // Environment variables + // Mount points + // Device files + // These artifacts are per resource per container. + // Updates RunContainerOptions.Envs. + for k, v := range resp.Envs { + if e, ok := envsMap[k]; ok { + glog.V(3).Infof("skip existing env %s %s", k, v) + if e != v { + glog.Errorf("Environment variable %s has conflicting setting: %s and %s", k, e, v) + } + continue + } + glog.V(4).Infof("add env %s %s", k, v) + envsMap[k] = v + opts.Envs = append(opts.Envs, kubecontainer.EnvVar{Name: k, Value: v}) + } + + // Updates RunContainerOptions.Devices. + for _, dev := range resp.Devices { + if d, ok := devsMap[dev.ContainerPath]; ok { + glog.V(3).Infof("skip existing device %s %s", dev.ContainerPath, dev.HostPath) + if d != dev.HostPath { + glog.Errorf("Container device %s has conflicting mapping host devices: %s and %s", + dev.ContainerPath, d, dev.HostPath) + } + continue + } + glog.V(4).Infof("add device %s %s", dev.ContainerPath, dev.HostPath) + devsMap[dev.ContainerPath] = dev.HostPath + opts.Devices = append(opts.Devices, kubecontainer.DeviceInfo{ + PathOnHost: dev.HostPath, + PathInContainer: dev.ContainerPath, + Permissions: dev.Permissions, + }) + } + // Updates RunContainerOptions.Mounts. + for _, mount := range resp.Mounts { + if m, ok := mountsMap[mount.ContainerPath]; ok { + glog.V(3).Infof("skip existing mount %s %s", mount.ContainerPath, mount.HostPath) + if m != mount.HostPath { + glog.Errorf("Container mount %s has conflicting mapping host mounts: %s and %s", + mount.ContainerPath, m, mount.HostPath) + } + continue + } + glog.V(4).Infof("add mount %s %s", mount.ContainerPath, mount.HostPath) + mountsMap[mount.ContainerPath] = mount.HostPath + opts.Mounts = append(opts.Mounts, kubecontainer.Mount{ + Name: mount.ContainerPath, + ContainerPath: mount.ContainerPath, + HostPath: mount.HostPath, + ReadOnly: mount.ReadOnly, + // TODO: This may need to be part of Device plugin API. + SELinuxRelabel: false, + }) + } + } + return opts +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/types.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/types.go similarity index 82% rename from vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/types.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/types.go index 3a2eae6fe..9745393d4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/types.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/deviceplugin/types.go @@ -17,13 +17,14 @@ limitations under the License. package deviceplugin import ( - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" + pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha" + kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" ) // MonitorCallback is the function called when a device's health state changes, // or new devices are reported, or old devices are deleted. // Updated contains the most recent state of the Device. -type MonitorCallback func(resourceName string, added, updated, deleted []*pluginapi.Device) +type MonitorCallback func(resourceName string, added, updated, deleted []pluginapi.Device) // Manager manages all the Device Plugins running on a node. type Manager interface { @@ -33,7 +34,7 @@ type Manager interface { // Devices is the map of devices that have registered themselves // against the manager. // The map key is the ResourceName of the device plugins. - Devices() map[string][]*pluginapi.Device + Devices() map[string][]pluginapi.Device // Allocate takes resourceName and list of device Ids, and calls the // gRPC Allocate on the device plugin matching the resourceName. @@ -46,6 +47,16 @@ type Manager interface { CheckpointFile() string } +// DeviceRunContainerOptions contains the combined container runtime settings to consume its allocated devices. +type DeviceRunContainerOptions struct { + // The environment variables list. + Envs []kubecontainer.EnvVar + // The mounts for the container. + Mounts []kubecontainer.Mount + // The host devices mapped into the container. + Devices []kubecontainer.DeviceInfo +} + // TODO: evaluate whether we need these error definitions. const ( // errFailedToDialDevicePlugin is the error raised when the device plugin could not be @@ -53,13 +64,13 @@ const ( errFailedToDialDevicePlugin = "failed to dial device plugin:" // errUnsuportedVersion is the error raised when the device plugin uses an API version not // supported by the Kubelet registry - errUnsuportedVersion = "unsupported API version by the Kubelet registry" + errUnsuportedVersion = "requested API version %q is not supported by kubelet. Supported version is %q" // errDevicePluginAlreadyExists is the error raised when a device plugin with the // same Resource Name tries to register itself errDevicePluginAlreadyExists = "another device plugin already registered this Resource Name" // errInvalidResourceName is the error raised when a device plugin is registering // itself with an invalid ResourceName - errInvalidResourceName = "the ResourceName is invalid" + errInvalidResourceName = "the ResourceName %q is invalid" // errEmptyResourceName is the error raised when the resource name field is empty errEmptyResourceName = "invalid Empty ResourceName" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/helpers_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/helpers_linux.go index 6525bb984..e36e97be0 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/helpers_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/helpers_linux.go @@ -26,9 +26,9 @@ import ( libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups" "k8s.io/api/core/v1" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" - v1qos "k8s.io/kubernetes/pkg/api/v1/helper/qos" "k8s.io/kubernetes/pkg/api/v1/resource" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" ) const ( diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/pod_container_manager_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/pod_container_manager_linux.go index 7180a73c4..2043596c9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/pod_container_manager_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/pod_container_manager_linux.go @@ -27,7 +27,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" - v1qos "k8s.io/kubernetes/pkg/api/v1/helper/qos" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" ) const ( diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/qos_container_manager_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/qos_container_manager_linux.go index 12bf9a2d8..129acda58 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/qos_container_manager_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/qos_container_manager_linux.go @@ -31,8 +31,8 @@ import ( cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs" "k8s.io/api/core/v1" utilfeature "k8s.io/apiserver/pkg/util/feature" - v1qos "k8s.io/kubernetes/pkg/api/v1/helper/qos" "k8s.io/kubernetes/pkg/api/v1/resource" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" kubefeatures "k8s.io/kubernetes/pkg/features" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/config/BUILD index c11924e0b..c5c0f37e7 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/BUILD @@ -27,11 +27,12 @@ go_library( }), importpath = "k8s.io/kubernetes/pkg/kubelet/config", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", - "//pkg/api/install:go_default_library", - "//pkg/api/v1:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", + "//pkg/apis/core/install:go_default_library", + "//pkg/apis/core/v1:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/events:go_default_library", "//pkg/kubelet/types:go_default_library", @@ -46,7 +47,6 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/yaml:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", @@ -76,10 +76,11 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/config", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", - "//pkg/api/v1:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/kubelet/types:go_default_library", "//pkg/securitycontext:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/apiserver.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/apiserver.go index 016c33bf7..a8afc6e34 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/apiserver.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/apiserver.go @@ -25,13 +25,13 @@ import ( "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" ) // NewSourceApiserver creates a config source that watches and pulls from the apiserver. func NewSourceApiserver(c clientset.Interface, nodeName types.NodeName, updates chan<- interface{}) { - lw := cache.NewListWatchFromClient(c.Core().RESTClient(), "pods", metav1.NamespaceAll, fields.OneTermEqualSelector(api.PodHostField, string(nodeName))) + lw := cache.NewListWatchFromClient(c.CoreV1().RESTClient(), "pods", metav1.NamespaceAll, fields.OneTermEqualSelector(api.PodHostField, string(nodeName))) newSourceApiserverFromLW(lw, updates) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/common.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/common.go index 8203efa57..02a4f4761 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/common.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/common.go @@ -27,14 +27,15 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" utilyaml "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" // TODO: remove this import if // api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String() is changed // to "v1"? - _ "k8s.io/kubernetes/pkg/api/install" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/core/install" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" + "k8s.io/kubernetes/pkg/apis/core/validation" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/util/hash" @@ -98,7 +99,7 @@ func getSelfLink(name, namespace string) string { if len(namespace) == 0 { namespace = metav1.NamespaceDefault } - selfLink = fmt.Sprintf("/api/"+api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version+"/namespaces/%s/pods/%s", namespace, name) + selfLink = fmt.Sprintf("/api/"+legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version+"/namespaces/%s/pods/%s", namespace, name) return selfLink } @@ -110,7 +111,7 @@ func tryDecodeSinglePod(data []byte, defaultFn defaultFunc) (parsed bool, pod *v if err != nil { return false, nil, err } - obj, err := runtime.Decode(api.Codecs.UniversalDecoder(), json) + obj, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), json) if err != nil { return false, pod, err } @@ -118,8 +119,7 @@ func tryDecodeSinglePod(data []byte, defaultFn defaultFunc) (parsed bool, pod *v newPod, ok := obj.(*api.Pod) // Check whether the object could be converted to single pod. if !ok { - err = fmt.Errorf("invalid pod: %#v", obj) - return false, pod, err + return false, pod, fmt.Errorf("invalid pod: %#v", obj) } // Apply default values and validate the pod. @@ -127,18 +127,18 @@ func tryDecodeSinglePod(data []byte, defaultFn defaultFunc) (parsed bool, pod *v return true, pod, err } if errs := validation.ValidatePod(newPod); len(errs) > 0 { - err = fmt.Errorf("invalid pod: %v", errs) - return true, pod, err + return true, pod, fmt.Errorf("invalid pod: %v", errs) } v1Pod := &v1.Pod{} - if err := k8s_api_v1.Convert_api_Pod_To_v1_Pod(newPod, v1Pod, nil); err != nil { + if err := k8s_api_v1.Convert_core_Pod_To_v1_Pod(newPod, v1Pod, nil); err != nil { + glog.Errorf("Pod %q failed to convert to v1", newPod.Name) return true, nil, err } return true, v1Pod, nil } func tryDecodePodList(data []byte, defaultFn defaultFunc) (parsed bool, pods v1.PodList, err error) { - obj, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { return false, pods, err } @@ -162,7 +162,7 @@ func tryDecodePodList(data []byte, defaultFn defaultFunc) (parsed bool, pods v1. } } v1Pods := &v1.PodList{} - if err := k8s_api_v1.Convert_api_PodList_To_v1_PodList(newPods, v1Pods, nil); err != nil { + if err := k8s_api_v1.Convert_core_PodList_To_v1_PodList(newPods, v1Pods, nil); err != nil { return true, pods, err } return true, *v1Pods, err diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/common_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/common_test.go index 8f2dfbdaf..9dd694669 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/common_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/common_test.go @@ -23,8 +23,9 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/securitycontext" ) @@ -72,9 +73,9 @@ func TestDecodeSinglePod(t *testing.T) { t.Errorf("expected:\n%#v\ngot:\n%#v\n%s", pod, podOut, string(json)) } - for _, gv := range api.Registry.EnabledVersionsForGroup(v1.GroupName) { - info, _ := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), "application/yaml") - encoder := api.Codecs.EncoderForVersion(info.Serializer, gv) + for _, gv := range legacyscheme.Registry.EnabledVersionsForGroup(v1.GroupName) { + info, _ := runtime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), "application/yaml") + encoder := legacyscheme.Codecs.EncoderForVersion(info.Serializer, gv) yaml, err := runtime.Encode(encoder, pod) if err != nil { t.Errorf("unexpected error: %v", err) @@ -138,9 +139,9 @@ func TestDecodePodList(t *testing.T) { t.Errorf("expected:\n%#v\ngot:\n%#v\n%s", podList, &podListOut, string(json)) } - for _, gv := range api.Registry.EnabledVersionsForGroup(v1.GroupName) { - info, _ := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), "application/yaml") - encoder := api.Codecs.EncoderForVersion(info.Serializer, gv) + for _, gv := range legacyscheme.Registry.EnabledVersionsForGroup(v1.GroupName) { + info, _ := runtime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), "application/yaml") + encoder := legacyscheme.Codecs.EncoderForVersion(info.Serializer, gv) yaml, err := runtime.Encode(encoder, podList) if err != nil { t.Errorf("unexpected error: %v", err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/config.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/config.go index ed7869dfb..ca322d45f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/config.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/config.go @@ -25,11 +25,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/api/validation" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/events" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" @@ -323,34 +319,17 @@ func (s *podStorage) seenSources(sources ...string) bool { func filterInvalidPods(pods []*v1.Pod, source string, recorder record.EventRecorder) (filtered []*v1.Pod) { names := sets.String{} for i, pod := range pods { - var errlist field.ErrorList - // TODO: remove the conversion when validation is performed on versioned objects. - internalPod := &api.Pod{} - if err := k8s_api_v1.Convert_v1_Pod_To_api_Pod(pod, internalPod, nil); err != nil { - glog.Warningf("Pod[%d] (%s) from %s failed to convert to v1, ignoring: %v", i+1, format.Pod(pod), source, err) - recorder.Eventf(pod, v1.EventTypeWarning, "FailedConversion", "Error converting pod %s from %s, ignoring: %v", format.Pod(pod), source, err) + // Pods from each source are assumed to have passed validation individually. + // This function only checks if there is any naming conflict. + name := kubecontainer.GetPodFullName(pod) + if names.Has(name) { + glog.Warningf("Pod[%d] (%s) from %s failed validation due to duplicate pod name %q, ignoring", i+1, format.Pod(pod), source, pod.Name) + recorder.Eventf(pod, v1.EventTypeWarning, events.FailedValidation, "Error validating pod %s from %s due to duplicate pod name %q, ignoring", format.Pod(pod), source, pod.Name) continue - } - if errs := validation.ValidatePod(internalPod); len(errs) != 0 { - errlist = append(errlist, errs...) - // If validation fails, don't trust it any further - - // even Name could be bad. } else { - name := kubecontainer.GetPodFullName(pod) - if names.Has(name) { - // TODO: when validation becomes versioned, this gets a bit - // more complicated. - errlist = append(errlist, field.Duplicate(field.NewPath("metadata", "name"), pod.Name)) - } else { - names.Insert(name) - } - } - if len(errlist) > 0 { - err := errlist.ToAggregate() - glog.Warningf("Pod[%d] (%s) from %s failed validation, ignoring: %v", i+1, format.Pod(pod), source, err) - recorder.Eventf(pod, v1.EventTypeWarning, events.FailedValidation, "Error validating pod %s from %s, ignoring: %v", format.Pod(pod), source, err) - continue + names.Insert(name) } + filtered = append(filtered, pod) } return diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/config_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/config_test.go index 1e93e5f2a..deb1f4dca 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/config_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/config_test.go @@ -146,8 +146,10 @@ func TestNewPodAddedInvalidNamespace(t *testing.T) { // see an update podUpdate := CreatePodUpdate(kubetypes.ADD, TestSource, CreateValidPod("foo", "")) channel <- podUpdate + expectPodUpdate(t, ch, CreatePodUpdate(kubetypes.ADD, TestSource, CreateValidPod("foo", ""))) + config.Sync() - expectPodUpdate(t, ch, CreatePodUpdate(kubetypes.SET, kubetypes.AllSource)) + expectPodUpdate(t, ch, CreatePodUpdate(kubetypes.SET, kubetypes.AllSource, CreateValidPod("foo", ""))) } func TestNewPodAddedDefaultNamespace(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/defaults.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/defaults.go index b000b60b1..e70659d36 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/defaults.go @@ -17,8 +17,9 @@ limitations under the License. package config const ( - DefaultKubeletPodsDirName = "pods" - DefaultKubeletVolumesDirName = "volumes" - DefaultKubeletPluginsDirName = "plugins" - DefaultKubeletContainersDirName = "containers" + DefaultKubeletPodsDirName = "pods" + DefaultKubeletVolumesDirName = "volumes" + DefaultKubeletPluginsDirName = "plugins" + DefaultKubeletContainersDirName = "containers" + DefaultKubeletPluginContainersDirName = "plugin-containers" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/file.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/file.go index f825c2eb5..a706abdb3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/file.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/file.go @@ -32,7 +32,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/file_linux_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/file_linux_test.go index c17d33fc5..9ca23f115 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/file_linux_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/file_linux_test.go @@ -36,10 +36,10 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" + "k8s.io/kubernetes/pkg/apis/core/validation" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/securitycontext" ) @@ -90,7 +90,7 @@ func TestReadPodsFromFileExistAlready(t *testing.T) { for _, pod := range update.Pods { // TODO: remove the conversion when validation is performed on versioned objects. internalPod := &api.Pod{} - if err := k8s_api_v1.Convert_v1_Pod_To_api_Pod(pod, internalPod, nil); err != nil { + if err := k8s_api_v1.Convert_v1_Pod_To_core_Pod(pod, internalPod, nil); err != nil { t.Fatalf("%s: Cannot convert pod %#v, %#v", testCase.desc, pod, err) } if errs := validation.ValidatePod(internalPod); len(errs) > 0 { @@ -373,7 +373,7 @@ func expectUpdate(t *testing.T, ch chan interface{}, testCase *testCase) { for _, pod := range update.Pods { // TODO: remove the conversion when validation is performed on versioned objects. internalPod := &api.Pod{} - if err := k8s_api_v1.Convert_v1_Pod_To_api_Pod(pod, internalPod, nil); err != nil { + if err := k8s_api_v1.Convert_v1_Pod_To_core_Pod(pod, internalPod, nil); err != nil { t.Fatalf("%s: Cannot convert pod %#v, %#v", testCase.desc, pod, err) } if errs := validation.ValidatePod(internalPod); len(errs) > 0 { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/flags.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/flags.go index e63b23225..705b8babf 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/flags.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/flags.go @@ -22,6 +22,14 @@ import ( ) type ContainerRuntimeOptions struct { + + // General options. + + // ContainerRuntime is the container runtime to use. + ContainerRuntime string + // RuntimeCgroups that container runtime is expected to be isolated in. + RuntimeCgroups string + // Docker-specific options. // DockershimRootDirectory is the path to the dockershim root directory. Defaults to @@ -53,9 +61,6 @@ type ContainerRuntimeOptions struct { // and overrides the default MTU for cases where it cannot be automatically // computed (such as IPSEC). NetworkPluginMTU int32 - // NetworkPluginDir is the full path of the directory in which to search - // for network plugins (and, for backwards-compat, CNI config files) - NetworkPluginDir string // CNIConfDir is the full path of the directory in which to search for // CNI config files CNIConfDir string @@ -75,6 +80,10 @@ type ContainerRuntimeOptions struct { } func (s *ContainerRuntimeOptions) AddFlags(fs *pflag.FlagSet) { + // General settings. + fs.StringVar(&s.ContainerRuntime, "container-runtime", s.ContainerRuntime, "The container runtime to use. Possible values: 'docker', 'rkt'.") + fs.StringVar(&s.RuntimeCgroups, "runtime-cgroups", s.RuntimeCgroups, "Optional absolute name of cgroups to create and run the runtime in.") + // Docker-specific settings. fs.BoolVar(&s.ExperimentalDockershim, "experimental-dockershim", s.ExperimentalDockershim, "Enable dockershim only mode. In this mode, kubelet will only start dockershim without any other functionalities. This flag only serves test purpose, please do not use it unless you are conscious of what you are doing. [default=false]") fs.MarkHidden("experimental-dockershim") @@ -87,9 +96,6 @@ func (s *ContainerRuntimeOptions) AddFlags(fs *pflag.FlagSet) { // Network plugin settings. Shared by both docker and rkt. fs.StringVar(&s.NetworkPluginName, "network-plugin", s.NetworkPluginName, " The name of the network plugin to be invoked for various events in kubelet/pod lifecycle") - //TODO(#46410): Remove the network-plugin-dir flag. - fs.StringVar(&s.NetworkPluginDir, "network-plugin-dir", s.NetworkPluginDir, " The full path of the directory in which to search for network plugins or CNI config") - fs.MarkDeprecated("network-plugin-dir", "Use --cni-bin-dir instead. This flag will be removed in a future version.") fs.StringVar(&s.CNIConfDir, "cni-conf-dir", s.CNIConfDir, " The full path of the directory in which to search for CNI config files. Default: /etc/cni/net.d") fs.StringVar(&s.CNIBinDir, "cni-bin-dir", s.CNIBinDir, " The full path of the directory in which to search for CNI plugin binaries. Default: /opt/cni/bin") fs.Int32Var(&s.NetworkPluginMTU, "network-plugin-mtu", s.NetworkPluginMTU, " The MTU to be passed to the network plugin, to override the default. Set to 0 to use the default 1460 MTU.") diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/http.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/http.go index 077fdb444..0ef43e062 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/http.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/http.go @@ -26,7 +26,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" "github.com/golang/glog" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/http_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/http_test.go index 843a6bd50..edb25dda9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/http_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/http_test.go @@ -29,10 +29,11 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" + "k8s.io/kubernetes/pkg/apis/core/validation" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" ) @@ -71,7 +72,7 @@ func TestExtractInvalidPods(t *testing.T) { { desc: "Invalid volume name", pod: &v1.Pod{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, Spec: v1.PodSpec{ Volumes: []v1.Volume{{Name: "_INVALID_"}}, }, @@ -80,7 +81,7 @@ func TestExtractInvalidPods(t *testing.T) { { desc: "Duplicate volume names", pod: &v1.Pod{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, Spec: v1.PodSpec{ Volumes: []v1.Volume{{Name: "repeated"}, {Name: "repeated"}}, }, @@ -89,7 +90,7 @@ func TestExtractInvalidPods(t *testing.T) { { desc: "Unspecified container name", pod: &v1.Pod{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, Spec: v1.PodSpec{ Containers: []v1.Container{{Name: ""}}, }, @@ -98,7 +99,7 @@ func TestExtractInvalidPods(t *testing.T) { { desc: "Invalid container name", pod: &v1.Pod{ - TypeMeta: metav1.TypeMeta{APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, + TypeMeta: metav1.TypeMeta{APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String()}, Spec: v1.PodSpec{ Containers: []v1.Container{{Name: "_INVALID_"}}, }, @@ -317,7 +318,7 @@ func TestExtractPodsFromHTTP(t *testing.T) { for _, pod := range update.Pods { // TODO: remove the conversion when validation is performed on versioned objects. internalPod := &api.Pod{} - if err := k8s_api_v1.Convert_v1_Pod_To_api_Pod(pod, internalPod, nil); err != nil { + if err := k8s_api_v1.Convert_v1_Pod_To_core_Pod(pod, internalPod, nil); err != nil { t.Fatalf("%s: Cannot convert pod %#v, %#v", testCase.desc, pod, err) } if errs := validation.ValidatePod(internalPod); len(errs) != 0 { @@ -330,7 +331,7 @@ func TestExtractPodsFromHTTP(t *testing.T) { func TestURLWithHeader(t *testing.T) { pod := &v1.Pod{ TypeMeta: metav1.TypeMeta{ - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), Kind: "Pod", }, ObjectMeta: metav1.ObjectMeta{ diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/configmap/configmap_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/configmap/configmap_manager.go index d66f0bc23..71a7ae148 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/configmap/configmap_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/configmap/configmap_manager.go @@ -64,7 +64,7 @@ func NewSimpleConfigMapManager(kubeClient clientset.Interface) Manager { } func (s *simpleConfigMapManager) GetConfigMap(namespace, name string) (*v1.ConfigMap, error) { - return s.kubeClient.Core().ConfigMaps(namespace).Get(name, metav1.GetOptions{}) + return s.kubeClient.CoreV1().ConfigMaps(namespace).Get(name, metav1.GetOptions{}) } func (s *simpleConfigMapManager) RegisterPod(pod *v1.Pod) { @@ -216,7 +216,7 @@ func (s *configMapStore) Get(namespace, name string) (*v1.ConfigMap, error) { // etcd and apiserver (the cache is eventually consistent). util.FromApiserverCache(&opts) } - configMap, err := s.kubeClient.Core().ConfigMaps(namespace).Get(name, opts) + configMap, err := s.kubeClient.CoreV1().ConfigMaps(namespace).Get(name, opts) if err != nil && !apierrors.IsNotFound(err) && data.configMap == nil && data.err == nil { // Couldn't fetch the latest configmap, but there is no cached data to return. // Return the fetch result instead. @@ -282,6 +282,11 @@ func (c *cachingConfigMapManager) RegisterPod(pod *v1.Pod) { c.registeredPods[key] = pod if prev != nil { for name := range getConfigMapNames(prev) { + // On an update, the .Add() call above will have re-incremented the + // ref count of any existing items, so any configmaps that are in both + // names and prev need to have their ref counts decremented. Any that + // are only in prev need to be completely removed. This unconditional + // call takes care of both cases. c.configMapStore.Delete(prev.Namespace, name) } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/configmap/configmap_manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/configmap/configmap_manager_test.go index ec2a74257..d79a80b50 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/configmap/configmap_manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/configmap/configmap_manager_test.go @@ -299,11 +299,11 @@ type configMapsToAttach struct { volumes []string } -func podWithConfigMaps(ns, name string, toAttach configMapsToAttach) *v1.Pod { +func podWithConfigMaps(ns, podName string, toAttach configMapsToAttach) *v1.Pod { pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Namespace: ns, - Name: name, + Name: podName, }, Spec: v1.PodSpec{}, } @@ -454,6 +454,17 @@ func TestCacheRefcounts(t *testing.T) { manager.RegisterPod(podWithConfigMaps("ns1", "other-name", s2)) manager.UnregisterPod(podWithConfigMaps("ns1", "other-name", s2)) + s5 := configMapsToAttach{ + containerEnvConfigMaps: []envConfigMaps{ + {envVarNames: []string{"s7"}}, + {envFromNames: []string{"s70"}}, + }, + } + + // Check the no-op update scenario + manager.RegisterPod(podWithConfigMaps("ns1", "noop-pod", s5)) + manager.RegisterPod(podWithConfigMaps("ns1", "noop-pod", s5)) + refs := func(ns, name string) int { store.lock.Lock() defer store.lock.Unlock() @@ -463,17 +474,18 @@ func TestCacheRefcounts(t *testing.T) { } return item.refCount } - assert.Equal(t, refs("ns1", "s1"), 1) - assert.Equal(t, refs("ns1", "s10"), 1) - assert.Equal(t, refs("ns1", "s2"), 1) - assert.Equal(t, refs("ns1", "s3"), 3) - assert.Equal(t, refs("ns1", "s30"), 2) - assert.Equal(t, refs("ns1", "s4"), 2) - assert.Equal(t, refs("ns1", "s5"), 4) - assert.Equal(t, refs("ns1", "s50"), 2) - assert.Equal(t, refs("ns1", "s6"), 0) - assert.Equal(t, refs("ns1", "s60"), 0) - assert.Equal(t, refs("ns1", "s7"), 0) + assert.Equal(t, 1, refs("ns1", "s1")) + assert.Equal(t, 1, refs("ns1", "s10")) + assert.Equal(t, 1, refs("ns1", "s2")) + assert.Equal(t, 3, refs("ns1", "s3")) + assert.Equal(t, 2, refs("ns1", "s30")) + assert.Equal(t, 2, refs("ns1", "s4")) + assert.Equal(t, 4, refs("ns1", "s5")) + assert.Equal(t, 2, refs("ns1", "s50")) + assert.Equal(t, 0, refs("ns1", "s6")) + assert.Equal(t, 0, refs("ns1", "s60")) + assert.Equal(t, 1, refs("ns1", "s7")) + assert.Equal(t, 1, refs("ns1", "s70")) } func TestCachingConfigMapManager(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/container/BUILD index e44be4442..ac38ebd80 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/BUILD @@ -24,7 +24,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/kubelet/container", visibility = ["//visibility:public"], deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", "//pkg/kubelet/util/format:go_default_library", "//pkg/kubelet/util/ioutils:go_default_library", @@ -61,8 +61,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/container", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/install:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go index e242398ff..a1ed5aed7 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/helpers.go @@ -46,9 +46,9 @@ type HandlerRunner interface { // RuntimeHelper wraps kubelet to make container runtime // able to get necessary informations like the RunContainerOptions, DNS settings, Host IP. type RuntimeHelper interface { - GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (contOpts *RunContainerOptions, useClusterFirstPolicy bool, err error) - GetClusterDNS(pod *v1.Pod) (dnsServers []string, dnsSearches []string, useClusterFirstPolicy bool, err error) - // GetPodCgroupParent returns the the CgroupName identifer, and its literal cgroupfs form on the host + GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (contOpts *RunContainerOptions, err error) + GetClusterDNS(pod *v1.Pod) (dnsServers []string, dnsSearches []string, dnsOptions []string, useClusterFirstPolicy bool, err error) + // GetPodCgroupParent returns the CgroupName identifer, and its literal cgroupfs form on the host // of a pod. GetPodCgroupParent(pod *v1.Pod) string GetPodDir(podUID types.UID) string diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref.go index b15f7702e..f61c0fc4a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref.go @@ -21,7 +21,7 @@ import ( "k8s.io/api/core/v1" ref "k8s.io/client-go/tools/reference" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) var ImplicitContainerPrefix string = "implicitly required container " @@ -39,7 +39,7 @@ func GenerateContainerRef(pod *v1.Pod, container *v1.Container) (*v1.ObjectRefer // start (like the pod infra container). This is not a good way, ugh. fieldPath = ImplicitContainerPrefix + container.Name } - ref, err := ref.GetPartialReference(api.Scheme, pod, fieldPath) + ref, err := ref.GetPartialReference(legacyscheme.Scheme, pod, fieldPath) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref_test.go index b25e740de..705f202fd 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/ref_test.go @@ -21,8 +21,8 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) func TestFieldPath(t *testing.T) { @@ -68,14 +68,14 @@ func TestGenerateContainerRef(t *testing.T) { okPod = v1.Pod{ TypeMeta: metav1.TypeMeta{ Kind: "Pod", - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), }, ObjectMeta: metav1.ObjectMeta{ Name: "ok", Namespace: "test-ns", UID: "bar", ResourceVersion: "42", - SelfLink: "/api/" + api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String() + "/pods/foo", + SelfLink: "/api/" + legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String() + "/pods/foo", }, Spec: v1.PodSpec{ Containers: []v1.Container{ @@ -92,7 +92,7 @@ func TestGenerateContainerRef(t *testing.T) { noSelfLinkPod.Kind = "" noSelfLinkPod.APIVersion = "" noSelfLinkPod.ObjectMeta.SelfLink = "" - defaultedSelfLinkPod.ObjectMeta.SelfLink = "/api/" + api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String() + "/pods/ok" + defaultedSelfLinkPod.ObjectMeta.SelfLink = "/api/" + legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String() + "/pods/ok" cases := []struct { name string @@ -109,7 +109,7 @@ func TestGenerateContainerRef(t *testing.T) { }, expected: &v1.ObjectReference{ Kind: "Pod", - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), Name: "ok", Namespace: "test-ns", UID: "bar", @@ -124,7 +124,7 @@ func TestGenerateContainerRef(t *testing.T) { container: &v1.Container{}, expected: &v1.ObjectReference{ Kind: "Pod", - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), Name: "ok", Namespace: "test-ns", UID: "bar", @@ -148,7 +148,7 @@ func TestGenerateContainerRef(t *testing.T) { }, expected: &v1.ObjectReference{ Kind: "Pod", - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), Name: "ok", Namespace: "test-ns", UID: "bar", @@ -165,7 +165,7 @@ func TestGenerateContainerRef(t *testing.T) { }, expected: &v1.ObjectReference{ Kind: "Pod", - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), Name: "ok", Namespace: "test-ns", UID: "bar", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime.go index f545b41a7..4e372d639 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/runtime.go @@ -428,10 +428,6 @@ type RunContainerOptions struct { // this directory will be used to create and mount the log file to // container.TerminationMessagePath PodContainerDir string - // The list of DNS servers for the container to use. - DNS []string - // The list of DNS search domains. - DNSSearch []string // The parent cgroup to pass to Docker CgroupParent string // The type of container rootfs diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/container/testing/fake_runtime_helper.go b/vendor/k8s.io/kubernetes/pkg/kubelet/container/testing/fake_runtime_helper.go index 97b77a56d..b6c27333d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/container/testing/fake_runtime_helper.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/container/testing/fake_runtime_helper.go @@ -32,20 +32,20 @@ type FakeRuntimeHelper struct { Err error } -func (f *FakeRuntimeHelper) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (*kubecontainer.RunContainerOptions, bool, error) { +func (f *FakeRuntimeHelper) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (*kubecontainer.RunContainerOptions, error) { var opts kubecontainer.RunContainerOptions if len(container.TerminationMessagePath) != 0 { opts.PodContainerDir = f.PodContainerDir } - return &opts, false, nil + return &opts, nil } func (f *FakeRuntimeHelper) GetPodCgroupParent(pod *v1.Pod) string { return "" } -func (f *FakeRuntimeHelper) GetClusterDNS(pod *v1.Pod) ([]string, []string, bool, error) { - return f.DNSServers, f.DNSSearches, false, f.Err +func (f *FakeRuntimeHelper) GetClusterDNS(pod *v1.Pod) ([]string, []string, []string, bool, error) { + return f.DNSServers, f.DNSSearches, nil, false, f.Err } // This is not used by docker runtime. diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/BUILD deleted file mode 100644 index beaaaaebd..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/BUILD +++ /dev/null @@ -1,55 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "device_plugin_stub.go", - "endpoint.go", - "manager.go", - "types.go", - "utils.go", - ], - importpath = "k8s.io/kubernetes/pkg/kubelet/deviceplugin", - deps = [ - "//pkg/api/v1/helper:go_default_library", - "//pkg/kubelet/apis/deviceplugin/v1alpha1:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/net/context:go_default_library", - "//vendor/google.golang.org/grpc:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -go_test( - name = "go_default_test", - srcs = [ - "endpoint_test.go", - "manager_test.go", - "utils_test.go", - ], - importpath = "k8s.io/kubernetes/pkg/kubelet/deviceplugin", - library = ":go_default_library", - deps = [ - "//pkg/kubelet/apis/deviceplugin/v1alpha1:go_default_library", - "//vendor/github.com/stretchr/testify/require:go_default_library", - ], -) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/utils.go b/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/utils.go deleted file mode 100644 index b30ac2f64..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/utils.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -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 deviceplugin - -import ( - "fmt" - - "k8s.io/api/core/v1" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" -) - -func cloneDevice(d *pluginapi.Device) *pluginapi.Device { - return &pluginapi.Device{ - ID: d.ID, - Health: d.Health, - } - -} - -func copyDevices(devs map[string]*pluginapi.Device) []*pluginapi.Device { - var clones []*pluginapi.Device - - for _, d := range devs { - clones = append(clones, cloneDevice(d)) - } - - return clones -} - -// IsResourceNameValid returns an error if the resource is invalid or is not an -// extended resource name. -func IsResourceNameValid(resourceName string) error { - if resourceName == "" { - return fmt.Errorf(errEmptyResourceName) - } - if !IsDeviceName(v1.ResourceName(resourceName)) { - return fmt.Errorf(errInvalidResourceName) - } - return nil -} - -// IsDeviceName returns whether the ResourceName points to an extended resource -// name exported by a device plugin. -func IsDeviceName(k v1.ResourceName) bool { - return v1helper.IsExtendedResourceName(k) -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/utils_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/utils_test.go deleted file mode 100644 index 33924605c..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/deviceplugin/utils_test.go +++ /dev/null @@ -1,53 +0,0 @@ -/* -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 deviceplugin - -import ( - "testing" - - "github.com/stretchr/testify/require" - - pluginapi "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1alpha1" -) - -func TestCloneDevice(t *testing.T) { - d := cloneDevice(&pluginapi.Device{ID: "ADeviceId", Health: pluginapi.Healthy}) - - require.Equal(t, d.ID, "ADeviceId") - require.Equal(t, d.Health, pluginapi.Healthy) -} - -func TestCopyDevices(t *testing.T) { - d := map[string]*pluginapi.Device{ - "ADeviceId": {ID: "ADeviceId", Health: pluginapi.Healthy}, - } - - devs := copyDevices(d) - require.Len(t, devs, 1) -} - -func TestIsResourceName(t *testing.T) { - require.NotNil(t, IsResourceNameValid("")) - require.NotNil(t, IsResourceNameValid("cpu")) - require.NotNil(t, IsResourceNameValid("name1")) - require.NotNil(t, IsResourceNameValid("alpha.kubernetes.io/name1")) - require.NotNil(t, IsResourceNameValid("beta.kubernetes.io/name1")) - require.NotNil(t, IsResourceNameValid("kubernetes.io/name1")) - require.Nil(t, IsResourceNameValid("domain1.io/name1")) - require.Nil(t, IsResourceNameValid("alpha.domain1.io/name1")) - require.Nil(t, IsResourceNameValid("beta.domain1.io/name1")) -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/BUILD index a2c566599..431c24e1c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/BUILD @@ -9,7 +9,6 @@ load( go_library( name = "go_default_library", srcs = [ - "checkpoint_store.go", "convert.go", "doc.go", "docker_checkpoint.go", @@ -48,7 +47,6 @@ go_library( "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/dockershim/cm:go_default_library", - "//pkg/kubelet/dockershim/errors:go_default_library", "//pkg/kubelet/dockershim/libdocker:go_default_library", "//pkg/kubelet/dockershim/metrics:go_default_library", "//pkg/kubelet/leaky:go_default_library", @@ -61,9 +59,12 @@ go_library( "//pkg/kubelet/types:go_default_library", "//pkg/kubelet/util/cache:go_default_library", "//pkg/kubelet/util/ioutils:go_default_library", + "//pkg/kubelet/util/store:go_default_library", "//pkg/security/apparmor:go_default_library", + "//pkg/util/filesystem:go_default_library", "//pkg/util/hash:go_default_library", "//pkg/util/parsers:go_default_library", + "//vendor/github.com/armon/circbuf:go_default_library", "//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/docker/docker/api/types:go_default_library", "//vendor/github.com/docker/docker/api/types/container:go_default_library", @@ -74,6 +75,7 @@ go_library( "//vendor/github.com/golang/glog: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/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", ], @@ -82,7 +84,6 @@ go_library( go_test( name = "go_default_test", srcs = [ - "checkpoint_store_test.go", "convert_test.go", "docker_checkpoint_test.go", "docker_container_test.go", @@ -109,7 +110,6 @@ go_test( "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/container/testing:go_default_library", - "//pkg/kubelet/dockershim/errors:go_default_library", "//pkg/kubelet/dockershim/libdocker:go_default_library", "//pkg/kubelet/dockershim/testing:go_default_library", "//pkg/kubelet/network:go_default_library", @@ -141,7 +141,6 @@ filegroup( srcs = [ ":package-srcs", "//pkg/kubelet/dockershim/cm:all-srcs", - "//pkg/kubelet/dockershim/errors:all-srcs", "//pkg/kubelet/dockershim/libdocker:all-srcs", "//pkg/kubelet/dockershim/metrics:all-srcs", "//pkg/kubelet/dockershim/remote:all-srcs", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/checkpoint_store.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/checkpoint_store.go deleted file mode 100644 index b8160bbd9..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/checkpoint_store.go +++ /dev/null @@ -1,156 +0,0 @@ -/* -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 dockershim - -import ( - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "regexp" - "strings" - - "k8s.io/kubernetes/pkg/kubelet/dockershim/errors" -) - -const ( - tmpPrefix = "." - tmpSuffix = ".tmp" - keyMaxLength = 250 -) - -var keyRegex = regexp.MustCompile("^[a-zA-Z0-9]+$") - -// CheckpointStore provides the interface for checkpoint storage backend. -// CheckpointStore must be thread-safe -type CheckpointStore interface { - // key must contain one or more characters in [A-Za-z0-9] - // Write persists a checkpoint with key - Write(key string, data []byte) error - // Read retrieves a checkpoint with key - // Read must return CheckpointNotFoundError if checkpoint is not found - Read(key string) ([]byte, error) - // Delete deletes a checkpoint with key - // Delete must not return error if checkpoint does not exist - Delete(key string) error - // List lists all keys of existing checkpoints - List() ([]string, error) -} - -// FileStore is an implementation of CheckpointStore interface which stores checkpoint in files. -type FileStore struct { - // path to the base directory for storing checkpoint files - path string -} - -func NewFileStore(path string) (CheckpointStore, error) { - if err := ensurePath(path); err != nil { - return nil, err - } - return &FileStore{path: path}, nil -} - -// writeFileAndSync is copied from ioutil.WriteFile, with the extra File.Sync -// at the end to ensure file is written on the disk. -func writeFileAndSync(filename string, data []byte, perm os.FileMode) error { - f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) - if err != nil { - return err - } - n, err := f.Write(data) - if err == nil && n < len(data) { - err = io.ErrShortWrite - } - if err == nil { - // Only sync if the Write completed successfully. - err = f.Sync() - } - if err1 := f.Close(); err == nil { - err = err1 - } - return err -} - -func (fstore *FileStore) Write(key string, data []byte) error { - if err := validateKey(key); err != nil { - return err - } - if err := ensurePath(fstore.path); err != nil { - return err - } - tmpfile := filepath.Join(fstore.path, fmt.Sprintf("%s%s%s", tmpPrefix, key, tmpSuffix)) - if err := writeFileAndSync(tmpfile, data, 0644); err != nil { - return err - } - return os.Rename(tmpfile, fstore.getCheckpointPath(key)) -} - -func (fstore *FileStore) Read(key string) ([]byte, error) { - if err := validateKey(key); err != nil { - return nil, err - } - bytes, err := ioutil.ReadFile(fstore.getCheckpointPath(key)) - if os.IsNotExist(err) { - return bytes, errors.CheckpointNotFoundError - } - return bytes, err -} - -func (fstore *FileStore) Delete(key string) error { - if err := validateKey(key); err != nil { - return err - } - if err := os.Remove(fstore.getCheckpointPath(key)); err != nil && !os.IsNotExist(err) { - return err - } - return nil -} - -func (fstore *FileStore) List() ([]string, error) { - keys := make([]string, 0) - files, err := ioutil.ReadDir(fstore.path) - if err != nil { - return keys, err - } - for _, f := range files { - if !strings.HasPrefix(f.Name(), tmpPrefix) { - keys = append(keys, f.Name()) - } - } - return keys, nil -} - -func (fstore *FileStore) getCheckpointPath(key string) string { - return filepath.Join(fstore.path, key) -} - -// ensurePath creates input directory if it does not exist -func ensurePath(path string) error { - if _, err := os.Stat(path); err != nil { - // MkdirAll returns nil if directory already exists - return os.MkdirAll(path, 0755) - } - return nil -} - -func validateKey(key string) error { - if len(key) <= keyMaxLength && keyRegex.MatchString(key) { - return nil - } - return fmt.Errorf("checkpoint key %q is not valid.", key) -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/cm/container_manager_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/cm/container_manager_linux.go index b820a8126..74d00be66 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/cm/container_manager_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/cm/container_manager_linux.go @@ -91,7 +91,7 @@ func (m *containerManager) doWork() { glog.Errorf("Unable to parse docker version %q: %v", v.APIVersion, err) return } - // EnsureDockerInConatiner does two things. + // EnsureDockerInContainer does two things. // 1. Ensure processes run in the cgroups if m.cgroupsManager is not nil. // 2. Ensure processes have the OOM score applied. if err := kubecm.EnsureDockerInContainer(version, dockerOOMScoreAdj, m.cgroupsManager); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_checkpoint.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_checkpoint.go index 6ad1d7941..f47469699 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_checkpoint.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_checkpoint.go @@ -23,7 +23,8 @@ import ( "path/filepath" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/kubelet/dockershim/errors" + utilstore "k8s.io/kubernetes/pkg/kubelet/util/store" + utilfs "k8s.io/kubernetes/pkg/util/filesystem" hashutil "k8s.io/kubernetes/pkg/util/hash" ) @@ -82,11 +83,11 @@ type CheckpointHandler interface { // PersistentCheckpointHandler is an implementation of CheckpointHandler. It persists checkpoint in CheckpointStore type PersistentCheckpointHandler struct { - store CheckpointStore + store utilstore.Store } func NewPersistentCheckpointHandler(dockershimRootDir string) (CheckpointHandler, error) { - fstore, err := NewFileStore(filepath.Join(dockershimRootDir, sandboxCheckpointDir)) + fstore, err := utilstore.NewFileStore(filepath.Join(dockershimRootDir, sandboxCheckpointDir), utilfs.DefaultFs{}) if err != nil { return nil, err } @@ -111,12 +112,14 @@ func (handler *PersistentCheckpointHandler) GetCheckpoint(podSandboxID string) ( //TODO: unmarhsal into a struct with just Version, check version, unmarshal into versioned type. err = json.Unmarshal(blob, &checkpoint) if err != nil { - glog.Errorf("Failed to unmarshal checkpoint %q. Checkpoint content: %q. ErrMsg: %v", podSandboxID, string(blob), err) - return &checkpoint, errors.CorruptCheckpointError + glog.Errorf("Failed to unmarshal checkpoint %q, removing checkpoint. Checkpoint content: %q. ErrMsg: %v", podSandboxID, string(blob), err) + handler.RemoveCheckpoint(podSandboxID) + return nil, fmt.Errorf("failed to unmarshal checkpoint") } if checkpoint.CheckSum != calculateChecksum(checkpoint) { - glog.Errorf("Checksum of checkpoint %q is not valid", podSandboxID) - return &checkpoint, errors.CorruptCheckpointError + glog.Errorf("Checksum of checkpoint %q is not valid, removing checkpoint", podSandboxID) + handler.RemoveCheckpoint(podSandboxID) + return nil, fmt.Errorf("checkpoint is corrupted") } return &checkpoint, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_container.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_container.go index 61401ee1f..453c18c75 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_container.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_container.go @@ -197,7 +197,7 @@ func (ds *dockerService) createContainerLogSymlink(containerID string) error { path, realPath, containerID, err) } } else { - supported, err := IsCRISupportedLogDriver(ds.client) + supported, err := ds.IsCRISupportedLogDriver() if err != nil { glog.Warningf("Failed to check supported logging driver by CRI: %v", err) return nil diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_image.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_image.go index b1171c6f0..1b39522f8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_image.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_image.go @@ -21,6 +21,7 @@ import ( "net/http" dockertypes "github.com/docker/docker/api/types" + dockerfilters "github.com/docker/docker/api/types/filters" "github.com/docker/docker/pkg/jsonmessage" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" @@ -33,8 +34,9 @@ import ( func (ds *dockerService) ListImages(filter *runtimeapi.ImageFilter) ([]*runtimeapi.Image, error) { opts := dockertypes.ImageListOptions{} if filter != nil { - if imgSpec := filter.GetImage(); imgSpec != nil { - opts.Filters.Add("reference", imgSpec.Image) + if filter.GetImage().GetImage() != "" { + opts.Filters = dockerfilters.NewArgs() + opts.Filters.Add("reference", filter.GetImage().GetImage()) } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go index 3cc23eee9..11077059d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_sandbox.go @@ -30,7 +30,6 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - "k8s.io/kubernetes/pkg/kubelet/dockershim/errors" "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" "k8s.io/kubernetes/pkg/kubelet/qos" "k8s.io/kubernetes/pkg/kubelet/types" @@ -193,20 +192,10 @@ func (ds *dockerService) StopPodSandbox(podSandboxID string) error { // actions will only have sandbox ID and not have pod namespace and name information. // Return error if encounter any unexpected error. if checkpointErr != nil { - if libdocker.IsContainerNotFoundError(statusErr) && checkpointErr == errors.CheckpointNotFoundError { + if libdocker.IsContainerNotFoundError(statusErr) { glog.Warningf("Both sandbox container and checkpoint for id %q could not be found. "+ "Proceed without further sandbox information.", podSandboxID) } else { - if checkpointErr == errors.CorruptCheckpointError { - // Remove the corrupted checkpoint so that the next - // StopPodSandbox call can proceed. This may indicate that - // some resources won't be reclaimed. - // TODO (#43021): Fix this properly. - glog.Warningf("Removing corrupted checkpoint %q: %+v", podSandboxID, *checkpoint) - if err := ds.checkpointHandler.RemoveCheckpoint(podSandboxID); err != nil { - glog.Warningf("Unable to remove corrupted checkpoint %q: %v", podSandboxID, err) - } - } return utilerrors.NewAggregate([]error{ fmt.Errorf("failed to get checkpoint for sandbox %q: %v", podSandboxID, checkpointErr), fmt.Errorf("failed to get sandbox status: %v", statusErr)}) @@ -239,10 +228,13 @@ func (ds *dockerService) StopPodSandbox(podSandboxID string) error { } } if err := ds.client.StopContainer(podSandboxID, defaultSandboxGracePeriod); err != nil { - glog.Errorf("Failed to stop sandbox %q: %v", podSandboxID, err) // Do not return error if the container does not exist if !libdocker.IsContainerNotFoundError(err) { + glog.Errorf("Failed to stop sandbox %q: %v", podSandboxID, err) errList = append(errList, err) + } else { + // remove the checkpoint for any sandbox that is not found in the runtime + ds.checkpointHandler.RemoveCheckpoint(podSandboxID) } } return utilerrors.NewAggregate(errList) @@ -485,13 +477,6 @@ func (ds *dockerService) ListPodSandbox(filter *runtimeapi.PodSandboxFilter) ([] checkpoint, err := ds.checkpointHandler.GetCheckpoint(id) if err != nil { glog.Errorf("Failed to retrieve checkpoint for sandbox %q: %v", id, err) - - if err == errors.CorruptCheckpointError { - glog.Warningf("Removing corrupted checkpoint %q: %+v", id, *checkpoint) - if err := ds.checkpointHandler.RemoveCheckpoint(id); err != nil { - glog.Warningf("Unable to remove corrupted checkpoint %q: %v", id, err) - } - } continue } result = append(result, checkpointToRuntimeAPISandbox(id, checkpoint)) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_service.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_service.go index 037819b78..df81937a3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_service.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/docker_service.go @@ -24,19 +24,20 @@ import ( "sync" "time" + "github.com/armon/circbuf" "github.com/blang/semver" dockertypes "github.com/docker/docker/api/types" "github.com/golang/glog" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kubetypes "k8s.io/apimachinery/pkg/types" internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubecm "k8s.io/kubernetes/pkg/kubelet/cm" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/dockershim/cm" - "k8s.io/kubernetes/pkg/kubelet/dockershim/errors" "k8s.io/kubernetes/pkg/kubelet/network" "k8s.io/kubernetes/pkg/kubelet/network/cni" "k8s.io/kubernetes/pkg/kubelet/network/hostport" @@ -146,9 +147,41 @@ type dockerNetworkHost struct { var internalLabelKeys []string = []string{containerTypeLabelKey, containerLogPathLabelKey, sandboxIDLabelKey} +// ClientConfig is parameters used to initialize docker client +type ClientConfig struct { + DockerEndpoint string + RuntimeRequestTimeout time.Duration + ImagePullProgressDeadline time.Duration + + // Configuration for fake docker client + EnableSleep bool + WithTraceDisabled bool +} + +// NewDockerClientFromConfig create a docker client from given configure +// return nil if nil configure is given. +func NewDockerClientFromConfig(config *ClientConfig) libdocker.Interface { + if config != nil { + // Create docker client. + client := libdocker.ConnectToDockerOrDie( + config.DockerEndpoint, + config.RuntimeRequestTimeout, + config.ImagePullProgressDeadline, + config.WithTraceDisabled, + config.EnableSleep, + ) + return client + } + + return nil +} + // NOTE: Anything passed to DockerService should be eventually handled in another way when we switch to running the shim as a different process. -func NewDockerService(client libdocker.Interface, podSandboxImage string, streamingConfig *streaming.Config, +func NewDockerService(config *ClientConfig, podSandboxImage string, streamingConfig *streaming.Config, pluginSettings *NetworkPluginSettings, cgroupsName string, kubeCgroupDriver string, dockershimRootDir string, disableSharedPID bool) (DockerService, error) { + + client := NewDockerClientFromConfig(config) + c := libdocker.NewInstrumentedInterface(client) checkpointHandler, err := NewPersistentCheckpointHandler(dockershimRootDir) if err != nil { @@ -200,6 +233,7 @@ func NewDockerService(client libdocker.Interface, podSandboxImage string, stream // NOTE: cgroup driver is only detectable in docker 1.11+ cgroupDriver := defaultCgroupDriver dockerInfo, err := ds.client.Info() + glog.Infof("Docker Info: %+v", dockerInfo) if err != nil { glog.Errorf("Failed to execute Info() call to the Docker client: %v", err) glog.Warningf("Falling back to use the default driver: %q", cgroupDriver) @@ -235,6 +269,15 @@ type DockerService interface { Start() error // For serving streaming calls. http.Handler + + // IsCRISupportedLogDriver checks whether the logging driver used by docker is + // suppoted by native CRI integration. + // TODO(resouer): remove this when deprecating unsupported log driver + IsCRISupportedLogDriver() (bool, error) + + // NewDockerLegacyService created docker legacy service when log driver is not supported. + // TODO(resouer): remove this when deprecating unsupported log driver + NewDockerLegacyService() DockerLegacyService } type dockerService struct { @@ -322,10 +365,6 @@ func (ds *dockerService) GetPodPortMappings(podSandboxID string) ([]*hostport.Po checkpoint, err := ds.checkpointHandler.GetCheckpoint(podSandboxID) // Return empty portMappings if checkpoint is not found if err != nil { - if err == errors.CheckpointNotFoundError { - glog.Warningf("Failed to retrieve checkpoint for sandbox %q: %v", podSandboxID, err) - return nil, nil - } return nil, err } @@ -477,8 +516,10 @@ type dockerLegacyService struct { client libdocker.Interface } -func NewDockerLegacyService(client libdocker.Interface) DockerLegacyService { - return &dockerLegacyService{client: client} +// NewDockerLegacyService created docker legacy service when log driver is not supported. +// TODO(resouer): remove this when deprecating unsupported log driver +func (d *dockerService) NewDockerLegacyService() DockerLegacyService { + return &dockerLegacyService{client: d.client} } // GetContainerLogs get container logs directly from docker daemon. @@ -515,13 +556,43 @@ func (d *dockerLegacyService) GetContainerLogs(pod *v1.Pod, containerID kubecont return d.client.Logs(containerID.ID, opts, sopts) } +// LegacyLogProvider implements the kuberuntime.LegacyLogProvider interface +type LegacyLogProvider struct { + dls DockerLegacyService +} + +func NewLegacyLogProvider(dls DockerLegacyService) LegacyLogProvider { + return LegacyLogProvider{dls: dls} +} + +// GetContainerLogTail attempts to read up to MaxContainerTerminationMessageLogLength +// from the end of the log when docker is configured with a log driver other than json-log. +// It reads up to MaxContainerTerminationMessageLogLines lines. +func (l LegacyLogProvider) GetContainerLogTail(uid kubetypes.UID, name, namespace string, containerId kubecontainer.ContainerID) (string, error) { + value := int64(kubecontainer.MaxContainerTerminationMessageLogLines) + buf, _ := circbuf.NewBuffer(kubecontainer.MaxContainerTerminationMessageLogLength) + // Although this is not a full spec pod, dockerLegacyService.GetContainerLogs() currently completely ignores its pod param + pod := &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + UID: uid, + Name: name, + Namespace: namespace, + }, + } + err := l.dls.GetContainerLogs(pod, containerId, &v1.PodLogOptions{TailLines: &value}, buf, buf) + if err != nil { + return "", err + } + return buf.String(), nil +} + // criSupportedLogDrivers are log drivers supported by native CRI integration. var criSupportedLogDrivers = []string{"json-file"} // IsCRISupportedLogDriver checks whether the logging driver used by docker is // suppoted by native CRI integration. -func IsCRISupportedLogDriver(client libdocker.Interface) (bool, error) { - info, err := client.Info() +func (d *dockerService) IsCRISupportedLogDriver() (bool, error) { + info, err := d.client.Info() if err != nil { return false, fmt.Errorf("failed to get docker info: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/errors/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/errors/BUILD deleted file mode 100644 index 24142c75e..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/errors/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["errors.go"], - importpath = "k8s.io/kubernetes/pkg/kubelet/dockershim/errors", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers.go index c6f442c78..595263a84 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers.go @@ -223,14 +223,6 @@ func getApparmorSecurityOpts(sc *runtimeapi.LinuxContainerSecurityContext, separ return fmtOpts, nil } -func getNetworkNamespace(c *dockertypes.ContainerJSON) (string, error) { - if c.State.Pid == 0 { - // Docker reports pid 0 for an exited container. - return "", fmt.Errorf("Cannot find network namespace for the terminated container %q", c.ID) - } - return fmt.Sprintf(dockerNetNSFmt, c.State.Pid), nil -} - // dockerFilter wraps around dockerfilters.Args and provides methods to modify // the filter easily. type dockerFilter struct { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go index 18a223d75..a53ecce17 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go @@ -133,3 +133,11 @@ func (ds *dockerService) updateCreateConfig( func (ds *dockerService) determinePodIPBySandboxID(uid string) string { return "" } + +func getNetworkNamespace(c *dockertypes.ContainerJSON) (string, error) { + if c.State.Pid == 0 { + // Docker reports pid 0 for an exited container. + return "", fmt.Errorf("cannot find network namespace for the terminated container %q", c.ID) + } + return fmt.Sprintf(dockerNetNSFmt, c.State.Pid), nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_unsupported.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_unsupported.go index db24ae7af..dfe3a097a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_unsupported.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_unsupported.go @@ -19,6 +19,8 @@ limitations under the License. package dockershim import ( + "fmt" + "github.com/blang/semver" dockertypes "github.com/docker/docker/api/types" "github.com/golang/glog" @@ -47,3 +49,7 @@ func (ds *dockerService) determinePodIPBySandboxID(uid string) string { glog.Warningf("determinePodIPBySandboxID is unsupported in this build") return "" } + +func getNetworkNamespace(c *dockertypes.ContainerJSON) (string, error) { + return "", fmt.Errorf("unsupported platform") +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_windows.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_windows.go index b9ddfd2c6..c93515daa 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_windows.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_windows.go @@ -47,6 +47,9 @@ func (ds *dockerService) updateCreateConfig( podSandboxID string, securityOptSep rune, apiVersion *semver.Version) error { if networkMode := os.Getenv("CONTAINER_NETWORK"); networkMode != "" { createConfig.HostConfig.NetworkMode = dockercontainer.NetworkMode(networkMode) + } else { + // Todo: Refactor this call in future for calling methods directly in security_context.go + modifyHostNetworkOptionForContainer(false, podSandboxID, createConfig.HostConfig) } return nil @@ -71,14 +74,49 @@ func (ds *dockerService) determinePodIPBySandboxID(sandboxID string) string { if err != nil { continue } - if containerIP := getContainerIP(r); containerIP != "" { - return containerIP + + // Versions and feature support + // ============================ + // Windows version == Windows Server, Version 1709,, Supports both sandbox and non-sandbox case + // Windows version == Windows Server 2016 Support only non-sandbox case + // Windows version < Windows Server 2016 is Not Supported + + // Sandbox support in Windows mandates CNI Plugin. + // Presense of CONTAINER_NETWORK flag is considered as non-Sandbox cases here + + // Todo: Add a kernel version check for more validation + + if networkMode := os.Getenv("CONTAINER_NETWORK"); networkMode == "" { + // Do not return any IP, so that we would continue and get the IP of the Sandbox + ds.getIP(sandboxID, r) + } else { + // On Windows, every container that is created in a Sandbox, needs to invoke CNI plugin again for adding the Network, + // with the shared container name as NetNS info, + // This is passed down to the platform to replicate some necessary information to the new container + + // + // This place is chosen as a hack for now, since getContainerIP would end up calling CNI's addToNetwork + // That is why addToNetwork is required to be idempotent + + // Instead of relying on this call, an explicit call to addToNetwork should be + // done immediately after ContainerCreation, in case of Windows only. TBD Issue # to handle this + + if containerIP := getContainerIP(r); containerIP != "" { + return containerIP + } } } return "" } +func getNetworkNamespace(c *dockertypes.ContainerJSON) (string, error) { + // Currently in windows there is no identifier exposed for network namespace + // Like docker, the referenced container id is used to figure out the network namespace id internally by the platform + // so returning the docker networkMode (which holds container: for network namespace here + return string(c.HostConfig.NetworkMode), nil +} + func getContainerIP(container *dockertypes.ContainerJSON) string { if container.NetworkSettings != nil { for _, network := range container.NetworkSettings.Networks { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker/client.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker/client.go index 0b5dcdd8d..0400bbb91 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker/client.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker/client.go @@ -40,6 +40,9 @@ const ( // This is only used by GetKubeletDockerContainers(), and should be removed // along with the function. containerNamePrefix = "k8s" + + // Fake docker endpoint + FakeDockerEndpoint = "fake://" ) // Interface is an abstract interface for testability. It abstracts the interface of docker client. @@ -86,9 +89,18 @@ func getDockerClient(dockerEndpoint string) (*dockerapi.Client, error) { // is the timeout for docker requests. If timeout is exceeded, the request // will be cancelled and throw out an error. If requestTimeout is 0, a default // value will be applied. -func ConnectToDockerOrDie(dockerEndpoint string, requestTimeout, imagePullProgressDeadline time.Duration) Interface { - if dockerEndpoint == "fake://" { - return NewFakeDockerClient() +func ConnectToDockerOrDie(dockerEndpoint string, requestTimeout, imagePullProgressDeadline time.Duration, + withTraceDisabled bool, enableSleep bool) Interface { + if dockerEndpoint == FakeDockerEndpoint { + fakeClient := NewFakeDockerClient() + if withTraceDisabled { + fakeClient = fakeClient.WithTraceDisabled() + } + + if enableSleep { + fakeClient.EnableSleep = true + } + return fakeClient } client, err := getDockerClient(dockerEndpoint) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/testing/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/testing/BUILD index dc709aa5c..0e57c9b08 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/testing/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/testing/BUILD @@ -9,7 +9,6 @@ go_library( name = "go_default_library", srcs = ["util.go"], importpath = "k8s.io/kubernetes/pkg/kubelet/dockershim/testing", - deps = ["//pkg/kubelet/dockershim/errors:go_default_library"], ) filegroup( diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/testing/util.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/testing/util.go index 02195b026..34bbb5303 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/testing/util.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/testing/util.go @@ -17,9 +17,8 @@ limitations under the License. package testing import ( + "fmt" "sync" - - "k8s.io/kubernetes/pkg/kubelet/dockershim/errors" ) // MemStore is an implementation of CheckpointStore interface which stores checkpoint in memory. @@ -44,7 +43,7 @@ func (mstore *MemStore) Read(key string) ([]byte, error) { defer mstore.Unlock() data, ok := mstore.mem[key] if !ok { - return nil, errors.CheckpointNotFoundError + return nil, fmt.Errorf("checkpoint is not found") } return data, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/envvars/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/envvars/BUILD index c65ecdd4c..0583ebdf1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/envvars/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/envvars/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/envvars", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/envvars/envvars.go b/vendor/k8s.io/kubernetes/pkg/kubelet/envvars/envvars.go index 9dcb7ebbb..789c20820 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/envvars/envvars.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/envvars/envvars.go @@ -23,7 +23,7 @@ import ( "strings" "k8s.io/api/core/v1" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" ) // FromServices builds environment variables that a container is started with, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD index 880cdbf0d..3f90d903b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/BUILD @@ -15,7 +15,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/eviction", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", "//pkg/kubelet/cm:go_default_library", @@ -49,8 +49,8 @@ go_library( }), importpath = "k8s.io/kubernetes/pkg/kubelet/eviction", deps = [ - "//pkg/api/v1/helper/qos:go_default_library", "//pkg/api/v1/resource:go_default_library", + "//pkg/apis/core/v1/helper/qos:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", "//pkg/kubelet/cm:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go index 14596188f..b8f763712 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager.go @@ -30,8 +30,8 @@ import ( "k8s.io/apimachinery/pkg/util/wait" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/record" - v1qos "k8s.io/kubernetes/pkg/api/v1/helper/qos" apiv1resource "k8s.io/kubernetes/pkg/api/v1/resource" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" "k8s.io/kubernetes/pkg/features" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" "k8s.io/kubernetes/pkg/kubelet/cm" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager_test.go index d84748142..488e54d2e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/eviction_manager_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/clock" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/record" - kubeapi "k8s.io/kubernetes/pkg/api" + kubeapi "k8s.io/kubernetes/pkg/apis/core" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api" "k8s.io/kubernetes/pkg/kubelet/lifecycle" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers_test.go index 448c89a4b..f2089b04f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/eviction/helpers_test.go @@ -27,7 +27,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/features" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" "k8s.io/kubernetes/pkg/kubelet/cm" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/BUILD index 2b31e7eb6..62082545e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/BUILD @@ -14,6 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/gpu/nvidia", deps = [ + "//pkg/kubelet/dockershim:go_default_library", "//pkg/kubelet/dockershim/libdocker:go_default_library", "//pkg/kubelet/gpu:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -42,6 +43,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/gpu/nvidia", library = ":go_default_library", deps = [ + "//pkg/kubelet/dockershim:go_default_library", "//pkg/kubelet/dockershim/libdocker:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/nvidia_gpu_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/nvidia_gpu_manager.go index c347cd2ad..911434f6b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/nvidia_gpu_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/nvidia_gpu_manager.go @@ -30,6 +30,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/kubernetes/pkg/kubelet/dockershim" "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" "k8s.io/kubernetes/pkg/kubelet/gpu" ) @@ -67,10 +68,12 @@ type nvidiaGPUManager struct { // NewNvidiaGPUManager returns a GPUManager that manages local Nvidia GPUs. // TODO: Migrate to use pod level cgroups and make it generic to all runtimes. -func NewNvidiaGPUManager(activePodsLister activePodsLister, dockerClient libdocker.Interface) (gpu.GPUManager, error) { +func NewNvidiaGPUManager(activePodsLister activePodsLister, config *dockershim.ClientConfig) (gpu.GPUManager, error) { + dockerClient := dockershim.NewDockerClientFromConfig(config) if dockerClient == nil { - return nil, fmt.Errorf("invalid docker client specified") + return nil, fmt.Errorf("invalid docker client configure specified") } + return &nvidiaGPUManager{ allGPUs: sets.NewString(), dockerClient: dockerClient, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/nvidia_gpu_manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/nvidia_gpu_manager_test.go index dc7253f09..8dc2cd6e6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/nvidia_gpu_manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/gpu/nvidia/nvidia_gpu_manager_test.go @@ -28,6 +28,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/uuid" + "k8s.io/kubernetes/pkg/kubelet/dockershim" "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" ) @@ -73,8 +74,9 @@ func TestNewNvidiaGPUManager(t *testing.T) { as.NotNil(err) // Expects a GPUManager to be created with non-nil dockerClient. - fakeDocker := libdocker.NewFakeDockerClient() - testGpuManager2, err := NewNvidiaGPUManager(podLister, fakeDocker) + testGpuManager2, err := NewNvidiaGPUManager(podLister, &dockershim.ClientConfig{ + DockerEndpoint: libdocker.FakeDockerEndpoint, + }) as.NotNil(testGpuManager2) as.Nil(err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go index 67c6b6521..da3c221b3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go @@ -19,13 +19,11 @@ package kubelet import ( "crypto/tls" "fmt" - "io/ioutil" "net" "net/http" "net/url" "os" "path" - "path/filepath" goruntime "runtime" "sort" "strings" @@ -35,8 +33,6 @@ import ( "github.com/golang/glog" - clientgoclientset "k8s.io/client-go/kubernetes" - cadvisorapi "github.com/google/cadvisor/info/v1" cadvisorapiv2 "github.com/google/cadvisor/info/v2" "k8s.io/api/core/v1" @@ -57,7 +53,7 @@ import ( "k8s.io/client-go/util/certificate" "k8s.io/client-go/util/flowcontrol" "k8s.io/client-go/util/integer" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/features" internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" @@ -70,7 +66,6 @@ import ( "k8s.io/kubernetes/pkg/kubelet/configmap" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/dockershim" - "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" dockerremote "k8s.io/kubernetes/pkg/kubelet/dockershim/remote" "k8s.io/kubernetes/pkg/kubelet/events" "k8s.io/kubernetes/pkg/kubelet/eviction" @@ -197,6 +192,8 @@ type Bootstrap interface { type Builder func(kubeCfg *kubeletconfiginternal.KubeletConfiguration, kubeDeps *Dependencies, crOptions *config.ContainerRuntimeOptions, + containerRuntime string, + runtimeCgroups string, hostnameOverride string, nodeIP string, providerID string, @@ -250,11 +247,11 @@ type Dependencies struct { CAdvisorInterface cadvisor.Interface Cloud cloudprovider.Interface ContainerManager cm.ContainerManager - DockerClient libdocker.Interface + DockerClientConfig *dockershim.ClientConfig EventClient v1core.EventsGetter HeartbeatClient v1core.CoreV1Interface KubeClient clientset.Interface - ExternalKubeClient clientgoclientset.Interface + ExternalKubeClient clientset.Interface Mounter mount.Interface NetworkPlugins []network.NetworkPlugin OOMAdjuster *oom.OOMAdjuster @@ -272,12 +269,12 @@ type Dependencies struct { // KubeletConfiguration or returns an error. func makePodSourceConfig(kubeCfg *kubeletconfiginternal.KubeletConfiguration, kubeDeps *Dependencies, nodeName types.NodeName) (*config.PodConfig, error) { manifestURLHeader := make(http.Header) - if kubeCfg.ManifestURLHeader != "" { - pieces := strings.Split(kubeCfg.ManifestURLHeader, ":") - if len(pieces) != 2 { - return nil, fmt.Errorf("manifest-url-header must have a single ':' key-value separator, got %q", kubeCfg.ManifestURLHeader) + if len(kubeCfg.ManifestURLHeader) > 0 { + for k, v := range kubeCfg.ManifestURLHeader { + for i := range v { + manifestURLHeader.Add(k, v[i]) + } } - manifestURLHeader.Set(pieces[0], pieces[1]) } // source of all configuration @@ -318,6 +315,8 @@ func getRuntimeAndImageServices(remoteRuntimeEndpoint string, remoteImageEndpoin func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, kubeDeps *Dependencies, crOptions *config.ContainerRuntimeOptions, + containerRuntime string, + runtimeCgroups string, hostnameOverride string, nodeIP string, providerID string, @@ -439,7 +438,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, serviceIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) if kubeDeps.KubeClient != nil { - serviceLW := cache.NewListWatchFromClient(kubeDeps.KubeClient.Core().RESTClient(), "services", metav1.NamespaceAll, fields.Everything()) + serviceLW := cache.NewListWatchFromClient(kubeDeps.KubeClient.CoreV1().RESTClient(), "services", metav1.NamespaceAll, fields.Everything()) r := cache.NewReflector(serviceLW, &v1.Service{}, serviceIndexer, 0) go r.Run(wait.NeverStop) } @@ -448,7 +447,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, nodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) if kubeDeps.KubeClient != nil { fieldSelector := fields.Set{api.ObjectNameField: string(nodeName)}.AsSelector() - nodeLW := cache.NewListWatchFromClient(kubeDeps.KubeClient.Core().RESTClient(), "nodes", metav1.NamespaceAll, fieldSelector) + nodeLW := cache.NewListWatchFromClient(kubeDeps.KubeClient.CoreV1().RESTClient(), "nodes", metav1.NamespaceAll, fieldSelector) r := cache.NewReflector(nodeLW, &v1.Node{}, nodeIndexer, 0) go r.Run(wait.NeverStop) } @@ -504,20 +503,21 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, nodeRef: nodeRef, nodeLabels: kubeCfg.NodeLabels, nodeStatusUpdateFrequency: kubeCfg.NodeStatusUpdateFrequency.Duration, - os: kubeDeps.OSInterface, - oomWatcher: oomWatcher, - cgroupsPerQOS: kubeCfg.CgroupsPerQOS, - cgroupRoot: kubeCfg.CgroupRoot, - mounter: kubeDeps.Mounter, - writer: kubeDeps.Writer, - maxPods: int(kubeCfg.MaxPods), - podsPerCore: int(kubeCfg.PodsPerCore), - syncLoopMonitor: atomic.Value{}, - resolverConfig: kubeCfg.ResolverConfig, - daemonEndpoints: daemonEndpoints, - containerManager: kubeDeps.ContainerManager, - nodeIP: net.ParseIP(nodeIP), - clock: clock.RealClock{}, + os: kubeDeps.OSInterface, + oomWatcher: oomWatcher, + cgroupsPerQOS: kubeCfg.CgroupsPerQOS, + cgroupRoot: kubeCfg.CgroupRoot, + mounter: kubeDeps.Mounter, + writer: kubeDeps.Writer, + maxPods: int(kubeCfg.MaxPods), + podsPerCore: int(kubeCfg.PodsPerCore), + syncLoopMonitor: atomic.Value{}, + resolverConfig: kubeCfg.ResolverConfig, + daemonEndpoints: daemonEndpoints, + containerManager: kubeDeps.ContainerManager, + containerRuntimeName: containerRuntime, + nodeIP: net.ParseIP(nodeIP), + clock: clock.RealClock{}, enableControllerAttachDetach: kubeCfg.EnableControllerAttachDetach, iptClient: utilipt.New(utilexec.New(), utildbus.New(), utilipt.ProtocolIpv4), makeIPTablesUtilChains: kubeCfg.MakeIPTablesUtilChains, @@ -539,7 +539,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, glog.Infof("Experimental host user namespace defaulting is enabled.") } - hairpinMode, err := effectiveHairpinMode(kubeletconfiginternal.HairpinMode(kubeCfg.HairpinMode), kubeCfg.ContainerRuntime, crOptions.NetworkPluginName) + hairpinMode, err := effectiveHairpinMode(kubeletconfiginternal.HairpinMode(kubeCfg.HairpinMode), containerRuntime, crOptions.NetworkPluginName) if err != nil { // This is a non-recoverable error. Returning it up the callstack will just // lead to retries of the same failure, so just fail hard. @@ -574,16 +574,12 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, } // TODO: These need to become arguments to a standalone docker shim. - binDir := crOptions.CNIBinDir - if binDir == "" { - binDir = crOptions.NetworkPluginDir - } pluginSettings := dockershim.NetworkPluginSettings{ HairpinMode: hairpinMode, NonMasqueradeCIDR: nonMasqueradeCIDR, PluginName: crOptions.NetworkPluginName, PluginConfDir: crOptions.CNIConfDir, - PluginBinDir: binDir, + PluginBinDir: crOptions.CNIBinDir, MTU: int(crOptions.NetworkPluginMTU), } @@ -596,19 +592,21 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, pluginSettings.LegacyRuntimeHost = nl // rktnetes cannot be run with CRI. - if kubeCfg.ContainerRuntime != kubetypes.RktContainerRuntime { + if containerRuntime != kubetypes.RktContainerRuntime { // kubelet defers to the runtime shim to setup networking. Setting // this to nil will prevent it from trying to invoke the plugin. // It's easier to always probe and initialize plugins till cri // becomes the default. klet.networkPlugin = nil + // if left at nil, that means it is unneeded + var legacyLogProvider kuberuntime.LegacyLogProvider - switch kubeCfg.ContainerRuntime { + switch containerRuntime { case kubetypes.DockerContainerRuntime: // Create and start the CRI shim running as a grpc server. streamingConfig := getStreamingConfig(kubeCfg, kubeDeps) - ds, err := dockershim.NewDockerService(kubeDeps.DockerClient, crOptions.PodSandboxImage, streamingConfig, - &pluginSettings, kubeCfg.RuntimeCgroups, kubeCfg.CgroupDriver, crOptions.DockershimRootDirectory, + ds, err := dockershim.NewDockerService(kubeDeps.DockerClientConfig, crOptions.PodSandboxImage, streamingConfig, + &pluginSettings, runtimeCgroups, kubeCfg.CgroupDriver, crOptions.DockershimRootDirectory, crOptions.DockerDisableSharedPID) if err != nil { return nil, err @@ -631,18 +629,19 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, } // Create dockerLegacyService when the logging driver is not supported. - supported, err := dockershim.IsCRISupportedLogDriver(kubeDeps.DockerClient) + supported, err := ds.IsCRISupportedLogDriver() if err != nil { return nil, err } if !supported { - klet.dockerLegacyService = dockershim.NewDockerLegacyService(kubeDeps.DockerClient) + klet.dockerLegacyService = ds.NewDockerLegacyService() + legacyLogProvider = dockershim.NewLegacyLogProvider(klet.dockerLegacyService) } case kubetypes.RemoteContainerRuntime: // No-op. break default: - return nil, fmt.Errorf("unsupported CRI runtime: %q", kubeCfg.ContainerRuntime) + return nil, fmt.Errorf("unsupported CRI runtime: %q", containerRuntime) } runtimeService, imageService, err := getRuntimeAndImageServices(remoteRuntimeEndpoint, remoteImageEndpoint, kubeCfg.RuntimeRequestTimeout) if err != nil { @@ -667,6 +666,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, runtimeService, imageService, kubeDeps.ContainerManager.InternalContainerLifecycle(), + legacyLogProvider, ) if err != nil { return nil, err @@ -680,7 +680,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, // cri-o relies on cadvisor as a temporary workaround. The code should // be removed. Related issue: // https://github.com/kubernetes/kubernetes/issues/51798 - if (kubeCfg.ContainerRuntime == kubetypes.DockerContainerRuntime && + if (containerRuntime == kubetypes.DockerContainerRuntime && goruntime.GOOS == "linux") || remoteRuntimeEndpoint == "/var/run/crio.sock" { klet.StatsProvider = stats.NewCadvisorStatsProvider( klet.cadvisor, @@ -872,18 +872,18 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, klet.AddPodSyncHandler(activeDeadlineHandler) criticalPodAdmissionHandler := preemption.NewCriticalPodAdmissionHandler(klet.GetActivePods, killPodNow(klet.podWorkers, kubeDeps.Recorder), kubeDeps.Recorder) - klet.admitHandlers.AddPodAdmitHandler(lifecycle.NewPredicateAdmitHandler(klet.getNodeAnyWay, criticalPodAdmissionHandler)) + klet.admitHandlers.AddPodAdmitHandler(lifecycle.NewPredicateAdmitHandler(klet.getNodeAnyWay, criticalPodAdmissionHandler, klet.containerManager.UpdatePluginResources)) // apply functional Option's for _, opt := range kubeDeps.Options { opt(klet) } - klet.appArmorValidator = apparmor.NewValidator(kubeCfg.ContainerRuntime) + klet.appArmorValidator = apparmor.NewValidator(containerRuntime) klet.softAdmitHandlers.AddPodAdmitHandler(lifecycle.NewAppArmorAdmitHandler(klet.appArmorValidator)) klet.softAdmitHandlers.AddPodAdmitHandler(lifecycle.NewNoNewPrivsAdmitHandler(klet.containerRuntime)) if utilfeature.DefaultFeatureGate.Enabled(features.Accelerators) { - if kubeCfg.ContainerRuntime == kubetypes.DockerContainerRuntime { - if klet.gpuManager, err = nvidia.NewNvidiaGPUManager(klet, kubeDeps.DockerClient); err != nil { + if containerRuntime == kubetypes.DockerContainerRuntime { + if klet.gpuManager, err = nvidia.NewNvidiaGPUManager(klet, kubeDeps.DockerClientConfig); err != nil { return nil, err } } else { @@ -1027,6 +1027,9 @@ type Kubelet struct { // Reference to this node. nodeRef *v1.ObjectReference + // The name of the container runtime + containerRuntimeName string + // Container runtime. containerRuntime kubecontainer.Runtime @@ -1392,64 +1395,6 @@ func (kl *Kubelet) GetKubeClient() clientset.Interface { return kl.kubeClient } -// GetClusterDNS returns a list of the DNS servers and a list of the DNS search -// domains of the cluster. -func (kl *Kubelet) GetClusterDNS(pod *v1.Pod) ([]string, []string, bool, error) { - var hostDNS, hostSearch []string - // Get host DNS settings - if kl.resolverConfig != "" { - f, err := os.Open(kl.resolverConfig) - if err != nil { - return nil, nil, false, err - } - defer f.Close() - - hostDNS, hostSearch, err = kl.parseResolvConf(f) - if err != nil { - return nil, nil, false, err - } - } - useClusterFirstPolicy := ((pod.Spec.DNSPolicy == v1.DNSClusterFirst && !kubecontainer.IsHostNetworkPod(pod)) || pod.Spec.DNSPolicy == v1.DNSClusterFirstWithHostNet) - if useClusterFirstPolicy && len(kl.clusterDNS) == 0 { - // clusterDNS is not known. - // pod with ClusterDNSFirst Policy cannot be created - kl.recorder.Eventf(pod, v1.EventTypeWarning, "MissingClusterDNS", "kubelet does not have ClusterDNS IP configured and cannot create Pod using %q policy. Falling back to DNSDefault policy.", pod.Spec.DNSPolicy) - log := fmt.Sprintf("kubelet does not have ClusterDNS IP configured and cannot create Pod using %q policy. pod: %q. Falling back to DNSDefault policy.", pod.Spec.DNSPolicy, format.Pod(pod)) - kl.recorder.Eventf(kl.nodeRef, v1.EventTypeWarning, "MissingClusterDNS", log) - - // fallback to DNSDefault - useClusterFirstPolicy = false - } - - if !useClusterFirstPolicy { - // When the kubelet --resolv-conf flag is set to the empty string, use - // DNS settings that override the docker default (which is to use - // /etc/resolv.conf) and effectively disable DNS lookups. According to - // the bind documentation, the behavior of the DNS client library when - // "nameservers" are not specified is to "use the nameserver on the - // local machine". A nameserver setting of localhost is equivalent to - // this documented behavior. - if kl.resolverConfig == "" { - hostDNS = []string{"127.0.0.1"} - hostSearch = []string{"."} - } else { - hostSearch = kl.formDNSSearchForDNSDefault(hostSearch, pod) - } - return hostDNS, hostSearch, useClusterFirstPolicy, nil - } - - // for a pod with DNSClusterFirst policy, the cluster DNS server is the only nameserver configured for - // the pod. The cluster DNS server itself will forward queries to other nameservers that is configured to use, - // in case the cluster DNS server cannot resolve the DNS query itself - dns := make([]string, len(kl.clusterDNS)) - for i, ip := range kl.clusterDNS { - dns[i] = ip.String() - } - dnsSearch := kl.formDNSSearch(hostSearch, pod) - - return dns, dnsSearch, useClusterFirstPolicy, nil -} - // syncPod is the transaction script for the sync of a single pod. // // Arguments: @@ -2125,7 +2070,7 @@ func (kl *Kubelet) updateRuntimeUp() { } // rkt uses the legacy, non-CRI integration. Don't check the runtime // conditions for it. - if kl.kubeletConfiguration.ContainerRuntime != kubetypes.RktContainerRuntime { + if kl.containerRuntimeName != kubetypes.RktContainerRuntime { if s == nil { glog.Errorf("Container runtime status is nil") return @@ -2215,36 +2160,6 @@ func (kl *Kubelet) cleanUpContainersInPod(podID types.UID, exitedContainerID str } } -// Replace the nameserver in containerized-mounter's rootfs/etc/resolve.conf with kubelet.ClusterDNS -func (kl *Kubelet) setupDNSinContainerizedMounter(mounterPath string) { - resolvePath := filepath.Join(strings.TrimSuffix(mounterPath, "/mounter"), "rootfs", "etc", "resolv.conf") - dnsString := "" - for _, dns := range kl.clusterDNS { - dnsString = dnsString + fmt.Sprintf("nameserver %s\n", dns) - } - if kl.resolverConfig != "" { - f, err := os.Open(kl.resolverConfig) - defer f.Close() - if err != nil { - glog.Error("Could not open resolverConf file") - } else { - _, hostSearch, err := kl.parseResolvConf(f) - if err != nil { - glog.Errorf("Error for parsing the reslov.conf file: %v", err) - } else { - dnsString = dnsString + "search" - for _, search := range hostSearch { - dnsString = dnsString + fmt.Sprintf(" %s", search) - } - dnsString = dnsString + "\n" - } - } - } - if err := ioutil.WriteFile(resolvePath, []byte(dnsString), 0600); err != nil { - glog.Errorf("Could not write dns nameserver in file %s, with error %v", resolvePath, err) - } -} - // isSyncPodWorthy filters out events that are not worthy of pod syncing func isSyncPodWorthy(event *pleg.PodLifecycleEvent) bool { // ContatnerRemoved doesn't affect pod state diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go index 525f94cb7..6519d7522 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go @@ -219,7 +219,7 @@ func (kl *Kubelet) getPodVolumePathListFromDisk(podUID types.UID) ([]string, err if pathExists, pathErr := volumeutil.PathExists(podVolDir); pathErr != nil { return volumes, fmt.Errorf("Error checking if path %q exists: %v", podVolDir, pathErr) } else if !pathExists { - glog.Warningf("Warning: path %q does not exist: %q", podVolDir) + glog.Warningf("Path %q does not exist", podVolDir) return volumes, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_network.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_network.go index e8f0edab7..9b9b588df 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_network.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_network.go @@ -21,13 +21,17 @@ import ( "io" "io/ioutil" "os" + "path/filepath" "strings" "github.com/golang/glog" "k8s.io/api/core/v1" + clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" + kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/network" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" + "k8s.io/kubernetes/pkg/kubelet/util/format" utiliptables "k8s.io/kubernetes/pkg/util/iptables" ) @@ -46,6 +50,77 @@ const ( KubeFirewallChain utiliptables.Chain = "KUBE-FIREWALL" ) +// This just exports required functions from kubelet proper, for use by network +// plugins. +// TODO(#35457): get rid of this backchannel to the kubelet. The scope of +// the back channel is restricted to host-ports/testing, and restricted +// to kubenet. No other network plugin wrapper needs it. Other plugins +// only require a way to access namespace information, which they can do +// directly through the methods implemented by criNetworkHost. +type networkHost struct { + kubelet *Kubelet +} + +func (nh *networkHost) GetPodByName(name, namespace string) (*v1.Pod, bool) { + return nh.kubelet.GetPodByName(name, namespace) +} + +func (nh *networkHost) GetKubeClient() clientset.Interface { + return nh.kubelet.kubeClient +} + +func (nh *networkHost) GetRuntime() kubecontainer.Runtime { + return nh.kubelet.GetRuntime() +} + +func (nh *networkHost) SupportsLegacyFeatures() bool { + return true +} + +// criNetworkHost implements the part of network.Host required by the +// cri (NamespaceGetter). It leechs off networkHost for all other +// methods, because networkHost is slated for deletion. +type criNetworkHost struct { + *networkHost + // criNetworkHost currently support legacy features. Hence no need to support PortMappingGetter + *network.NoopPortMappingGetter +} + +// GetNetNS returns the network namespace of the given containerID. +// This method satisfies the network.NamespaceGetter interface for +// networkHost. It's only meant to be used from network plugins +// that are directly invoked by the kubelet (aka: legacy, pre-cri). +// Any network plugin invoked by a cri must implement NamespaceGetter +// to talk directly to the runtime instead. +func (c *criNetworkHost) GetNetNS(containerID string) (string, error) { + return c.kubelet.GetRuntime().GetNetNS(kubecontainer.ContainerID{Type: "", ID: containerID}) +} + +// NoOpLegacyHost implements the network.LegacyHost interface for the remote +// runtime shim by just returning empties. It doesn't support legacy features +// like host port and bandwidth shaping. +type NoOpLegacyHost struct{} + +// GetPodByName always returns "nil, true" for 'NoOpLegacyHost' +func (n *NoOpLegacyHost) GetPodByName(namespace, name string) (*v1.Pod, bool) { + return nil, true +} + +// GetKubeClient always returns "nil" for 'NoOpLegacyHost' +func (n *NoOpLegacyHost) GetKubeClient() clientset.Interface { + return nil +} + +// GetRuntime always returns "nil" for 'NoOpLegacyHost' +func (n *NoOpLegacyHost) GetRuntime() kubecontainer.Runtime { + return nil +} + +// SupportsLegacyFeatures always returns "false" for 'NoOpLegacyHost' +func (n *NoOpLegacyHost) SupportsLegacyFeatures() bool { + return false +} + // effectiveHairpinMode determines the effective hairpin mode given the // configured mode, container runtime, and whether cbr0 should be configured. func effectiveHairpinMode(hairpinMode kubeletconfig.HairpinMode, containerRuntime string, networkPlugin string) (kubeletconfig.HairpinMode, error) { @@ -89,7 +164,7 @@ func (kl *Kubelet) providerRequiresNetworkingConfiguration() bool { return supported } -func omitDuplicates(kl *Kubelet, pod *v1.Pod, combinedSearch []string) []string { +func omitDuplicates(pod *v1.Pod, combinedSearch []string) []string { uniqueDomains := map[string]bool{} for _, dnsDomain := range combinedSearch { @@ -101,7 +176,7 @@ func omitDuplicates(kl *Kubelet, pod *v1.Pod, combinedSearch []string) []string return combinedSearch[:len(uniqueDomains)] } -func formDNSSearchFitsLimits(kl *Kubelet, pod *v1.Pod, composedSearch []string) []string { +func (kl *Kubelet) formDNSSearchFitsLimits(pod *v1.Pod, composedSearch []string) []string { // resolver file Search line current limitations resolvSearchLineDNSDomainsLimit := 6 resolvSearchLineLenLimit := 255 @@ -137,12 +212,12 @@ func formDNSSearchFitsLimits(kl *Kubelet, pod *v1.Pod, composedSearch []string) } func (kl *Kubelet) formDNSSearchForDNSDefault(hostSearch []string, pod *v1.Pod) []string { - return formDNSSearchFitsLimits(kl, pod, hostSearch) + return kl.formDNSSearchFitsLimits(pod, hostSearch) } func (kl *Kubelet) formDNSSearch(hostSearch []string, pod *v1.Pod) []string { if kl.clusterDomain == "" { - formDNSSearchFitsLimits(kl, pod, hostSearch) + kl.formDNSSearchFitsLimits(pod, hostSearch) return hostSearch } @@ -152,8 +227,8 @@ func (kl *Kubelet) formDNSSearch(hostSearch []string, pod *v1.Pod) []string { combinedSearch := append(dnsSearch, hostSearch...) - combinedSearch = omitDuplicates(kl, pod, combinedSearch) - return formDNSSearchFitsLimits(kl, pod, combinedSearch) + combinedSearch = omitDuplicates(pod, combinedSearch) + return kl.formDNSSearchFitsLimits(pod, combinedSearch) } func (kl *Kubelet) checkLimitsForResolvConf() { @@ -169,7 +244,7 @@ func (kl *Kubelet) checkLimitsForResolvConf() { } defer f.Close() - _, hostSearch, err := kl.parseResolvConf(f) + _, hostSearch, _, err := kl.parseResolvConf(f) if err != nil { kl.recorder.Event(kl.nodeRef, v1.EventTypeWarning, "checkLimitsForResolvConf", err.Error()) glog.Error("checkLimitsForResolvConf: " + err.Error()) @@ -200,12 +275,12 @@ func (kl *Kubelet) checkLimitsForResolvConf() { } // parseResolveConf reads a resolv.conf file from the given reader, and parses -// it into nameservers and searches, possibly returning an error. +// it into nameservers, searches and options, possibly returning an error. // TODO: move to utility package -func (kl *Kubelet) parseResolvConf(reader io.Reader) (nameservers []string, searches []string, err error) { +func (kl *Kubelet) parseResolvConf(reader io.Reader) (nameservers []string, searches []string, options []string, err error) { file, err := ioutil.ReadAll(reader) if err != nil { - return nil, nil, err + return nil, nil, nil, err } // Lines of the form "nameserver 1.2.3.4" accumulate. @@ -214,6 +289,10 @@ func (kl *Kubelet) parseResolvConf(reader io.Reader) (nameservers []string, sear // Lines of the form "search example.com" overrule - last one wins. searches = []string{} + // Lines of the form "option ndots:5 attempts:2" overrule - last one wins. + // Each option is recorded as an element in the array. + options = []string{} + lines := strings.Split(string(file), "\n") for l := range lines { trimmed := strings.TrimSpace(lines[l]) @@ -230,13 +309,109 @@ func (kl *Kubelet) parseResolvConf(reader io.Reader) (nameservers []string, sear if fields[0] == "search" { searches = fields[1:] } + if fields[0] == "options" { + options = fields[1:] + } } // There used to be code here to scrub DNS for each cloud, but doesn't // make sense anymore since cloudproviders are being factored out. // contact @thockin or @wlan0 for more information - return nameservers, searches, nil + return nameservers, searches, options, nil +} + +// GetClusterDNS returns a list of the DNS servers, a list of the DNS search +// domains of the cluster, and a list of resolv.conf options. +func (kl *Kubelet) GetClusterDNS(pod *v1.Pod) ([]string, []string, []string, bool, error) { + var hostDNS, hostSearch, hostOptions []string + // Get host DNS settings + if kl.resolverConfig != "" { + f, err := os.Open(kl.resolverConfig) + if err != nil { + return nil, nil, nil, false, err + } + defer f.Close() + + hostDNS, hostSearch, hostOptions, err = kl.parseResolvConf(f) + if err != nil { + return nil, nil, nil, false, err + } + } + useClusterFirstPolicy := ((pod.Spec.DNSPolicy == v1.DNSClusterFirst && !kubecontainer.IsHostNetworkPod(pod)) || pod.Spec.DNSPolicy == v1.DNSClusterFirstWithHostNet) + if useClusterFirstPolicy && len(kl.clusterDNS) == 0 { + // clusterDNS is not known. + // pod with ClusterDNSFirst Policy cannot be created + kl.recorder.Eventf(pod, v1.EventTypeWarning, "MissingClusterDNS", "kubelet does not have ClusterDNS IP configured and cannot create Pod using %q policy. Falling back to DNSDefault policy.", pod.Spec.DNSPolicy) + log := fmt.Sprintf("kubelet does not have ClusterDNS IP configured and cannot create Pod using %q policy. pod: %q. Falling back to DNSDefault policy.", pod.Spec.DNSPolicy, format.Pod(pod)) + kl.recorder.Eventf(kl.nodeRef, v1.EventTypeWarning, "MissingClusterDNS", log) + + // fallback to DNSDefault + useClusterFirstPolicy = false + } + + if !useClusterFirstPolicy { + // When the kubelet --resolv-conf flag is set to the empty string, use + // DNS settings that override the docker default (which is to use + // /etc/resolv.conf) and effectively disable DNS lookups. According to + // the bind documentation, the behavior of the DNS client library when + // "nameservers" are not specified is to "use the nameserver on the + // local machine". A nameserver setting of localhost is equivalent to + // this documented behavior. + if kl.resolverConfig == "" { + hostSearch = []string{"."} + switch { + case kl.nodeIP == nil || kl.nodeIP.To4() != nil: + hostDNS = []string{"127.0.0.1"} + case kl.nodeIP.To16() != nil: + hostDNS = []string{"::1"} + } + } else { + hostSearch = kl.formDNSSearchForDNSDefault(hostSearch, pod) + } + return hostDNS, hostSearch, hostOptions, useClusterFirstPolicy, nil + } + + // for a pod with DNSClusterFirst policy, the cluster DNS server is the only nameserver configured for + // the pod. The cluster DNS server itself will forward queries to other nameservers that is configured to use, + // in case the cluster DNS server cannot resolve the DNS query itself + dns := make([]string, len(kl.clusterDNS)) + for i, ip := range kl.clusterDNS { + dns[i] = ip.String() + } + dnsSearch := kl.formDNSSearch(hostSearch, pod) + + return dns, dnsSearch, hostOptions, useClusterFirstPolicy, nil +} + +// Replace the nameserver in containerized-mounter's rootfs/etc/resolve.conf with kubelet.ClusterDNS +func (kl *Kubelet) setupDNSinContainerizedMounter(mounterPath string) { + resolvePath := filepath.Join(strings.TrimSuffix(mounterPath, "/mounter"), "rootfs", "etc", "resolv.conf") + dnsString := "" + for _, dns := range kl.clusterDNS { + dnsString = dnsString + fmt.Sprintf("nameserver %s\n", dns) + } + if kl.resolverConfig != "" { + f, err := os.Open(kl.resolverConfig) + defer f.Close() + if err != nil { + glog.Error("Could not open resolverConf file") + } else { + _, hostSearch, _, err := kl.parseResolvConf(f) + if err != nil { + glog.Errorf("Error for parsing the reslov.conf file: %v", err) + } else { + dnsString = dnsString + "search" + for _, search := range hostSearch { + dnsString = dnsString + fmt.Sprintf(" %s", search) + } + dnsString = dnsString + "\n" + } + } + } + if err := ioutil.WriteFile(resolvePath, []byte(dnsString), 0600); err != nil { + glog.Errorf("Could not write dns nameserver in file %s, with error %v", resolvePath, err) + } } // syncNetworkStatus updates the network state diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_network_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_network_test.go index 227a139e8..c0b4ea028 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_network_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_network_test.go @@ -28,29 +28,127 @@ import ( "k8s.io/client-go/tools/record" ) -func TestNodeIPParam(t *testing.T) { - testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) +func TestNetworkHostGetsPodNotFound(t *testing.T) { + testKubelet := newTestKubelet(t, true) defer testKubelet.Cleanup() - kubelet := testKubelet.kubelet - tests := []struct { + nh := networkHost{testKubelet.kubelet} + + actualPod, _ := nh.GetPodByName("", "") + if actualPod != nil { + t.Fatalf("Was expected nil, received %v instead", actualPod) + } +} + +func TestNetworkHostGetsKubeClient(t *testing.T) { + testKubelet := newTestKubelet(t, true) + defer testKubelet.Cleanup() + nh := networkHost{testKubelet.kubelet} + + if nh.GetKubeClient() != testKubelet.fakeKubeClient { + t.Fatalf("NetworkHost client does not match testKubelet's client") + } +} + +func TestNetworkHostGetsRuntime(t *testing.T) { + testKubelet := newTestKubelet(t, true) + defer testKubelet.Cleanup() + nh := networkHost{testKubelet.kubelet} + + if nh.GetRuntime() != testKubelet.fakeRuntime { + t.Fatalf("NetworkHost runtime does not match testKubelet's runtime") + } +} + +func TestNetworkHostSupportsLegacyFeatures(t *testing.T) { + testKubelet := newTestKubelet(t, true) + defer testKubelet.Cleanup() + nh := networkHost{testKubelet.kubelet} + + if nh.SupportsLegacyFeatures() == false { + t.Fatalf("SupportsLegacyFeatures should not be false") + } +} + +func TestNoOpHostGetsName(t *testing.T) { + nh := NoOpLegacyHost{} + pod, err := nh.GetPodByName("", "") + if pod != nil && err != true { + t.Fatalf("noOpLegacyHost getpodbyname expected to be nil and true") + } +} + +func TestNoOpHostGetsKubeClient(t *testing.T) { + nh := NoOpLegacyHost{} + if nh.GetKubeClient() != nil { + t.Fatalf("noOpLegacyHost client expected to be nil") + } +} + +func TestNoOpHostGetsRuntime(t *testing.T) { + nh := NoOpLegacyHost{} + if nh.GetRuntime() != nil { + t.Fatalf("noOpLegacyHost runtime expected to be nil") + } +} + +func TestNoOpHostSupportsLegacyFeatures(t *testing.T) { + nh := NoOpLegacyHost{} + if nh.SupportsLegacyFeatures() != false { + t.Fatalf("noOpLegacyHost legacy features expected to be false") + } +} + +func TestNodeIPParam(t *testing.T) { + type test struct { nodeIP string success bool testName string - }{ + } + tests := []test{ { nodeIP: "", - success: true, + success: false, testName: "IP not set", }, { nodeIP: "127.0.0.1", success: false, - testName: "loopback address", + testName: "IPv4 loopback address", + }, + { + nodeIP: "::1", + success: false, + testName: "IPv6 loopback address", + }, + { + nodeIP: "224.0.0.1", + success: false, + testName: "multicast IPv4 address", + }, + { + nodeIP: "ff00::1", + success: false, + testName: "multicast IPv6 address", + }, + { + nodeIP: "169.254.0.1", + success: false, + testName: "IPv4 link-local unicast address", + }, + { + nodeIP: "fe80::0202:b3ff:fe1e:8329", + success: false, + testName: "IPv6 link-local unicast address", }, { - nodeIP: "FE80::0202:B3FF:FE1E:8329", + nodeIP: "0.0.0.0", success: false, - testName: "IPv6 address", + testName: "Unspecified IPv4 address", + }, + { + nodeIP: "::", + success: false, + testName: "Unspecified IPv6 address", }, { nodeIP: "1.2.3.4", @@ -58,9 +156,31 @@ func TestNodeIPParam(t *testing.T) { testName: "IPv4 address that doesn't belong to host", }, } + addrs, err := net.InterfaceAddrs() + if err != nil { + assert.Error(t, err, fmt.Sprintf( + "Unable to obtain a list of the node's unicast interface addresses.")) + } + for _, addr := range addrs { + var ip net.IP + switch v := addr.(type) { + case *net.IPNet: + ip = v.IP + case *net.IPAddr: + ip = v.IP + } + if ip.IsLoopback() || ip.IsLinkLocalUnicast() { + break + } + successTest := test{ + nodeIP: ip.String(), + success: true, + testName: fmt.Sprintf("Success test case for address %s", ip.String()), + } + tests = append(tests, successTest) + } for _, test := range tests { - kubelet.nodeIP = net.ParseIP(test.nodeIP) - err := kubelet.validateNodeIP() + err := validateNodeIP(net.ParseIP(test.nodeIP)) if test.success { assert.NoError(t, err, "test %s", test.testName) } else { @@ -74,39 +194,44 @@ func TestParseResolvConf(t *testing.T) { data string nameservers []string searches []string + options []string }{ - {"", []string{}, []string{}}, - {" ", []string{}, []string{}}, - {"\n", []string{}, []string{}}, - {"\t\n\t", []string{}, []string{}}, - {"#comment\n", []string{}, []string{}}, - {" #comment\n", []string{}, []string{}}, - {"#comment\n#comment", []string{}, []string{}}, - {"#comment\nnameserver", []string{}, []string{}}, - {"#comment\nnameserver\nsearch", []string{}, []string{}}, - {"nameserver 1.2.3.4", []string{"1.2.3.4"}, []string{}}, - {" nameserver 1.2.3.4", []string{"1.2.3.4"}, []string{}}, - {"\tnameserver 1.2.3.4", []string{"1.2.3.4"}, []string{}}, - {"nameserver\t1.2.3.4", []string{"1.2.3.4"}, []string{}}, - {"nameserver \t 1.2.3.4", []string{"1.2.3.4"}, []string{}}, - {"nameserver 1.2.3.4\nnameserver 5.6.7.8", []string{"1.2.3.4", "5.6.7.8"}, []string{}}, - {"nameserver 1.2.3.4 #comment", []string{"1.2.3.4"}, []string{}}, - {"search foo", []string{}, []string{"foo"}}, - {"search foo bar", []string{}, []string{"foo", "bar"}}, - {"search foo bar bat\n", []string{}, []string{"foo", "bar", "bat"}}, - {"search foo\nsearch bar", []string{}, []string{"bar"}}, - {"nameserver 1.2.3.4\nsearch foo bar", []string{"1.2.3.4"}, []string{"foo", "bar"}}, - {"nameserver 1.2.3.4\nsearch foo\nnameserver 5.6.7.8\nsearch bar", []string{"1.2.3.4", "5.6.7.8"}, []string{"bar"}}, - {"#comment\nnameserver 1.2.3.4\n#comment\nsearch foo\ncomment", []string{"1.2.3.4"}, []string{"foo"}}, + {"", []string{}, []string{}, []string{}}, + {" ", []string{}, []string{}, []string{}}, + {"\n", []string{}, []string{}, []string{}}, + {"\t\n\t", []string{}, []string{}, []string{}}, + {"#comment\n", []string{}, []string{}, []string{}}, + {" #comment\n", []string{}, []string{}, []string{}}, + {"#comment\n#comment", []string{}, []string{}, []string{}}, + {"#comment\nnameserver", []string{}, []string{}, []string{}}, + {"#comment\nnameserver\nsearch", []string{}, []string{}, []string{}}, + {"nameserver 1.2.3.4", []string{"1.2.3.4"}, []string{}, []string{}}, + {" nameserver 1.2.3.4", []string{"1.2.3.4"}, []string{}, []string{}}, + {"\tnameserver 1.2.3.4", []string{"1.2.3.4"}, []string{}, []string{}}, + {"nameserver\t1.2.3.4", []string{"1.2.3.4"}, []string{}, []string{}}, + {"nameserver \t 1.2.3.4", []string{"1.2.3.4"}, []string{}, []string{}}, + {"nameserver 1.2.3.4\nnameserver 5.6.7.8", []string{"1.2.3.4", "5.6.7.8"}, []string{}, []string{}}, + {"nameserver 1.2.3.4 #comment", []string{"1.2.3.4"}, []string{}, []string{}}, + {"search foo", []string{}, []string{"foo"}, []string{}}, + {"search foo bar", []string{}, []string{"foo", "bar"}, []string{}}, + {"search foo bar bat\n", []string{}, []string{"foo", "bar", "bat"}, []string{}}, + {"search foo\nsearch bar", []string{}, []string{"bar"}, []string{}}, + {"nameserver 1.2.3.4\nsearch foo bar", []string{"1.2.3.4"}, []string{"foo", "bar"}, []string{}}, + {"nameserver 1.2.3.4\nsearch foo\nnameserver 5.6.7.8\nsearch bar", []string{"1.2.3.4", "5.6.7.8"}, []string{"bar"}, []string{}}, + {"#comment\nnameserver 1.2.3.4\n#comment\nsearch foo\ncomment", []string{"1.2.3.4"}, []string{"foo"}, []string{}}, + {"options ndots:5 attempts:2", []string{}, []string{}, []string{"ndots:5", "attempts:2"}}, + {"options ndots:1\noptions ndots:5 attempts:3", []string{}, []string{}, []string{"ndots:5", "attempts:3"}}, + {"nameserver 1.2.3.4\nsearch foo\nnameserver 5.6.7.8\nsearch bar\noptions ndots:5 attempts:4", []string{"1.2.3.4", "5.6.7.8"}, []string{"bar"}, []string{"ndots:5", "attempts:4"}}, } testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) defer testKubelet.Cleanup() kubelet := testKubelet.kubelet for i, tc := range testCases { - ns, srch, err := kubelet.parseResolvConf(strings.NewReader(tc.data)) + ns, srch, opts, err := kubelet.parseResolvConf(strings.NewReader(tc.data)) require.NoError(t, err) assert.EqualValues(t, tc.nameservers, ns, "test case [%d]: name servers", i) assert.EqualValues(t, tc.searches, srch, "test case [%d] searches", i) + assert.EqualValues(t, tc.options, opts, "test case [%d] options", i) } } @@ -178,6 +303,93 @@ func TestComposeDNSSearch(t *testing.T) { } } +func TestGetClusterDNS(t *testing.T) { + testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() + kubelet := testKubelet.kubelet + + clusterNS := "203.0.113.1" + kubelet.clusterDomain = "kubernetes.io" + kubelet.clusterDNS = []net.IP{net.ParseIP(clusterNS)} + + pods := newTestPods(4) + pods[0].Spec.DNSPolicy = v1.DNSClusterFirstWithHostNet + pods[1].Spec.DNSPolicy = v1.DNSClusterFirst + pods[2].Spec.DNSPolicy = v1.DNSClusterFirst + pods[2].Spec.HostNetwork = false + pods[3].Spec.DNSPolicy = v1.DNSDefault + + options := make([]struct { + DNS []string + DNSSearch []string + }, 4) + for i, pod := range pods { + var err error + options[i].DNS, options[i].DNSSearch, _, _, err = kubelet.GetClusterDNS(pod) + if err != nil { + t.Fatalf("failed to generate container options: %v", err) + } + } + if len(options[0].DNS) != 1 || options[0].DNS[0] != clusterNS { + t.Errorf("expected nameserver %s, got %+v", clusterNS, options[0].DNS) + } + if len(options[0].DNSSearch) == 0 || options[0].DNSSearch[0] != ".svc."+kubelet.clusterDomain { + t.Errorf("expected search %s, got %+v", ".svc."+kubelet.clusterDomain, options[0].DNSSearch) + } + if len(options[1].DNS) != 1 || options[1].DNS[0] != "127.0.0.1" { + t.Errorf("expected nameserver 127.0.0.1, got %+v", options[1].DNS) + } + if len(options[1].DNSSearch) != 1 || options[1].DNSSearch[0] != "." { + t.Errorf("expected search \".\", got %+v", options[1].DNSSearch) + } + if len(options[2].DNS) != 1 || options[2].DNS[0] != clusterNS { + t.Errorf("expected nameserver %s, got %+v", clusterNS, options[2].DNS) + } + if len(options[2].DNSSearch) == 0 || options[2].DNSSearch[0] != ".svc."+kubelet.clusterDomain { + t.Errorf("expected search %s, got %+v", ".svc."+kubelet.clusterDomain, options[2].DNSSearch) + } + if len(options[3].DNS) != 1 || options[3].DNS[0] != "127.0.0.1" { + t.Errorf("expected nameserver 127.0.0.1, got %+v", options[3].DNS) + } + if len(options[3].DNSSearch) != 1 || options[3].DNSSearch[0] != "." { + t.Errorf("expected search \".\", got %+v", options[3].DNSSearch) + } + + kubelet.resolverConfig = "/etc/resolv.conf" + for i, pod := range pods { + var err error + options[i].DNS, options[i].DNSSearch, _, _, err = kubelet.GetClusterDNS(pod) + if err != nil { + t.Fatalf("failed to generate container options: %v", err) + } + } + t.Logf("nameservers %+v", options[1].DNS) + if len(options[0].DNS) != 1 { + t.Errorf("expected cluster nameserver only, got %+v", options[0].DNS) + } else if options[0].DNS[0] != clusterNS { + t.Errorf("expected nameserver %s, got %v", clusterNS, options[0].DNS[0]) + } + expLength := len(options[1].DNSSearch) + 3 + if expLength > 6 { + expLength = 6 + } + if len(options[0].DNSSearch) != expLength { + t.Errorf("expected prepend of cluster domain, got %+v", options[0].DNSSearch) + } else if options[0].DNSSearch[0] != ".svc."+kubelet.clusterDomain { + t.Errorf("expected domain %s, got %s", ".svc."+kubelet.clusterDomain, options[0].DNSSearch) + } + if len(options[2].DNS) != 1 { + t.Errorf("expected cluster nameserver only, got %+v", options[2].DNS) + } else if options[2].DNS[0] != clusterNS { + t.Errorf("expected nameserver %s, got %v", clusterNS, options[2].DNS[0]) + } + if len(options[2].DNSSearch) != expLength { + t.Errorf("expected prepend of cluster domain, got %+v", options[2].DNSSearch) + } else if options[2].DNSSearch[0] != ".svc."+kubelet.clusterDomain { + t.Errorf("expected domain %s, got %s", ".svc."+kubelet.clusterDomain, options[0].DNSSearch) + } +} + func TestGetIPTablesMark(t *testing.T) { tests := []struct { bit int diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status.go index 08a91a17f..5c15d888c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status.go @@ -33,8 +33,8 @@ import ( "k8s.io/apimachinery/pkg/types" utilnet "k8s.io/apimachinery/pkg/util/net" utilfeature "k8s.io/apiserver/pkg/util/feature" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/features" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" @@ -97,7 +97,7 @@ func (kl *Kubelet) registerWithAPIServer() { // a different externalID value, it attempts to delete that node so that a // later attempt can recreate it. func (kl *Kubelet) tryRegisterWithAPIServer(node *v1.Node) bool { - _, err := kl.kubeClient.Core().Nodes().Create(node) + _, err := kl.kubeClient.CoreV1().Nodes().Create(node) if err == nil { return true } @@ -107,7 +107,7 @@ func (kl *Kubelet) tryRegisterWithAPIServer(node *v1.Node) bool { return false } - existingNode, err := kl.kubeClient.Core().Nodes().Get(string(kl.nodeName), metav1.GetOptions{}) + existingNode, err := kl.kubeClient.CoreV1().Nodes().Get(string(kl.nodeName), metav1.GetOptions{}) if err != nil { glog.Errorf("Unable to register node %q with API server: error getting existing node: %v", kl.nodeName, err) return false @@ -146,7 +146,7 @@ func (kl *Kubelet) tryRegisterWithAPIServer(node *v1.Node) bool { "Previously node %q had externalID %q; now it is %q; will delete and recreate.", kl.nodeName, node.Spec.ExternalID, existingNode.Spec.ExternalID, ) - if err := kl.kubeClient.Core().Nodes().Delete(node.Name, nil); err != nil { + if err := kl.kubeClient.CoreV1().Nodes().Delete(node.Name, nil); err != nil { glog.Errorf("Unable to register node %q with API server: error deleting old node: %v", kl.nodeName, err) } else { glog.Infof("Deleted old node object %q", kl.nodeName) @@ -169,6 +169,10 @@ func (kl *Kubelet) updateDefaultLabels(initialNode, existingNode *v1.Node) bool var needsUpdate bool = false //Set default labels but make sure to not set labels with empty values for _, label := range defaultLabels { + if _, hasInitialValue := initialNode.Labels[label]; !hasInitialValue { + continue + } + if existingNode.Labels[label] != initialNode.Labels[label] { existingNode.Labels[label] = initialNode.Labels[label] needsUpdate = true @@ -232,7 +236,7 @@ func (kl *Kubelet) initialNode() (*v1.Node, error) { if len(kl.kubeletConfiguration.RegisterWithTaints) > 0 { taints := make([]v1.Taint, len(kl.kubeletConfiguration.RegisterWithTaints)) for i := range kl.kubeletConfiguration.RegisterWithTaints { - if err := k8s_api_v1.Convert_api_Taint_To_v1_Taint(&kl.kubeletConfiguration.RegisterWithTaints[i], &taints[i], nil); err != nil { + if err := k8s_api_v1.Convert_core_Taint_To_v1_Taint(&kl.kubeletConfiguration.RegisterWithTaints[i], &taints[i], nil); err != nil { return nil, err } } @@ -433,7 +437,7 @@ func (kl *Kubelet) recordNodeStatusEvent(eventType, event string) { // Set IP and hostname addresses for the node. func (kl *Kubelet) setNodeAddress(node *v1.Node) error { if kl.nodeIP != nil { - if err := kl.validateNodeIP(); err != nil { + if err := validateNodeIP(kl.nodeIP); err != nil { return fmt.Errorf("failed to validate nodeIP: %v", err) } glog.V(2).Infof("Using node IP: %q", kl.nodeIP.String()) @@ -441,6 +445,9 @@ func (kl *Kubelet) setNodeAddress(node *v1.Node) error { if kl.externalCloudProvider { if kl.nodeIP != nil { + if node.ObjectMeta.Annotations == nil { + node.ObjectMeta.Annotations = make(map[string]string) + } node.ObjectMeta.Annotations[kubeletapis.AnnotationProvidedIPAddr] = kl.nodeIP.String() } // We rely on the external cloud provider to supply the addresses. @@ -496,7 +503,8 @@ func (kl *Kubelet) setNodeAddress(node *v1.Node) error { // 1) Use nodeIP if set // 2) If the user has specified an IP to HostnameOverride, use it - // 3) Lookup the IP from node name by DNS and use the first non-loopback ipv4 address + // 3) Lookup the IP from node name by DNS and use the first valid IPv4 address. + // If the node does not have a valid IPv4 address, use the first valid IPv6 address. // 4) Try to get the IP from the network interface used as default gateway if kl.nodeIP != nil { ipAddr = kl.nodeIP @@ -504,11 +512,16 @@ func (kl *Kubelet) setNodeAddress(node *v1.Node) error { ipAddr = addr } else { var addrs []net.IP - addrs, err = net.LookupIP(node.Name) + addrs, _ = net.LookupIP(node.Name) for _, addr := range addrs { - if !addr.IsLoopback() && addr.To4() != nil { - ipAddr = addr - break + if err = validateNodeIP(addr); err == nil { + if addr.To4() != nil { + ipAddr = addr + break + } + if addr.To16() != nil && ipAddr == nil { + ipAddr = addr + } } } @@ -984,17 +997,22 @@ func (kl *Kubelet) defaultNodeStatusFuncs() []func(*v1.Node) error { } // Validate given node IP belongs to the current host -func (kl *Kubelet) validateNodeIP() error { - if kl.nodeIP == nil { - return nil - } - +func validateNodeIP(nodeIP net.IP) error { // Honor IP limitations set in setNodeStatus() - if kl.nodeIP.IsLoopback() { + if nodeIP.To4() == nil && nodeIP.To16() == nil { + return fmt.Errorf("nodeIP must be a valid IP address") + } + if nodeIP.IsLoopback() { return fmt.Errorf("nodeIP can't be loopback address") } - if kl.nodeIP.To4() == nil { - return fmt.Errorf("nodeIP must be IPv4 address") + if nodeIP.IsMulticast() { + return fmt.Errorf("nodeIP can't be a multicast address") + } + if nodeIP.IsLinkLocalUnicast() { + return fmt.Errorf("nodeIP can't be a link-local unicast address") + } + if nodeIP.IsUnspecified() { + return fmt.Errorf("nodeIP can't be an all zeros address") } addrs, err := net.InterfaceAddrs() @@ -1009,9 +1027,9 @@ func (kl *Kubelet) validateNodeIP() error { case *net.IPAddr: ip = v.IP } - if ip != nil && ip.Equal(kl.nodeIP) { + if ip != nil && ip.Equal(nodeIP) { return nil } } - return fmt.Errorf("Node IP: %q not found in the host's network interfaces", kl.nodeIP.String()) + return fmt.Errorf("Node IP: %q not found in the host's network interfaces", nodeIP.String()) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status_test.go index 9721f3bef..38636f70e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_node_status_test.go @@ -144,7 +144,7 @@ func TestNodeStatusWithCloudProviderNodeIP(t *testing.T) { Spec: v1.NodeSpec{}, } - // TODO : is it possible to mock kubelet.validateNodeIP() to avoid relying on the host interface addresses ? + // TODO : is it possible to mock validateNodeIP() to avoid relying on the host interface addresses ? addrs, err := net.InterfaceAddrs() assert.NoError(t, err) for _, addr := range addrs { @@ -1233,6 +1233,37 @@ func TestUpdateDefaultLabels(t *testing.T) { "please-persist": "foo", }, }, + { + name: "make sure existing labels do not get deleted when initial node has no opinion", + initialNode: &v1.Node{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{}, + }, + }, + existingNode: &v1.Node{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + kubeletapis.LabelHostname: "new-hostname", + kubeletapis.LabelZoneFailureDomain: "new-zone-failure-domain", + kubeletapis.LabelZoneRegion: "new-zone-region", + kubeletapis.LabelInstanceType: "new-instance-type", + kubeletapis.LabelOS: "new-os", + kubeletapis.LabelArch: "new-arch", + "please-persist": "foo", + }, + }, + }, + needsUpdate: false, + finalLabels: map[string]string{ + kubeletapis.LabelHostname: "new-hostname", + kubeletapis.LabelZoneFailureDomain: "new-zone-failure-domain", + kubeletapis.LabelZoneRegion: "new-zone-region", + kubeletapis.LabelInstanceType: "new-instance-type", + kubeletapis.LabelOS: "new-os", + kubeletapis.LabelArch: "new-arch", + "please-persist": "foo", + }, + }, { name: "no update needed", initialNode: &v1.Node{ diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go index c213af0b5..7a5063e44 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods.go @@ -43,12 +43,12 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/remotecommand" - "k8s.io/kubernetes/pkg/api" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" - v1qos "k8s.io/kubernetes/pkg/api/v1/helper/qos" + "k8s.io/kubernetes/pkg/api/legacyscheme" podutil "k8s.io/kubernetes/pkg/api/v1/pod" "k8s.io/kubernetes/pkg/api/v1/resource" - "k8s.io/kubernetes/pkg/api/v1/validation" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" + "k8s.io/kubernetes/pkg/apis/core/v1/validation" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/fieldpath" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" @@ -381,18 +381,17 @@ func (kl *Kubelet) GetPodCgroupParent(pod *v1.Pod) string { // GenerateRunContainerOptions generates the RunContainerOptions, which can be used by // the container runtime to set parameters for launching a container. -func (kl *Kubelet) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (*kubecontainer.RunContainerOptions, bool, error) { - useClusterFirstPolicy := false - opts, err := kl.containerManager.GetResources(pod, container, kl.GetActivePods()) +func (kl *Kubelet) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (*kubecontainer.RunContainerOptions, error) { + opts, err := kl.containerManager.GetResources(pod, container) if err != nil { - return nil, false, err + return nil, err } cgroupParent := kl.GetPodCgroupParent(pod) opts.CgroupParent = cgroupParent hostname, hostDomainName, err := kl.GeneratePodHostNameAndDomain(pod) if err != nil { - return nil, false, err + return nil, err } opts.Hostname = hostname podName := volumehelper.GetUniquePodName(pod) @@ -402,19 +401,19 @@ func (kl *Kubelet) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Contai // TODO(random-liu): Move following convert functions into pkg/kubelet/container devices, err := kl.makeDevices(pod, container) if err != nil { - return nil, false, err + return nil, err } opts.Devices = append(opts.Devices, devices...) mounts, err := makeMounts(pod, kl.getPodDir(pod.UID), container, hostname, hostDomainName, podIP, volumes) if err != nil { - return nil, false, err + return nil, err } opts.Mounts = append(opts.Mounts, mounts...) envs, err := kl.makeEnvironmentVariables(pod, container, podIP) if err != nil { - return nil, false, err + return nil, err } opts.Envs = append(opts.Envs, envs...) @@ -429,17 +428,12 @@ func (kl *Kubelet) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Contai } } - opts.DNS, opts.DNSSearch, useClusterFirstPolicy, err = kl.GetClusterDNS(pod) - if err != nil { - return nil, false, err - } - // only do this check if the experimental behavior is enabled, otherwise allow it to default to false if kl.experimentalHostUserNamespaceDefaulting { opts.EnableHostUserNamespace = kl.enableHostUserNamespace(pod) } - return opts, useClusterFirstPolicy, nil + return opts, nil } var masterServices = sets.NewString("kubernetes") @@ -722,7 +716,7 @@ func (kl *Kubelet) makeEnvironmentVariables(pod *v1.Pod, container *v1.Container // podFieldSelectorRuntimeValue returns the runtime value of the given // selector for a pod. func (kl *Kubelet) podFieldSelectorRuntimeValue(fs *v1.ObjectFieldSelector, pod *v1.Pod, podIP string) (string, error) { - internalFieldPath, _, err := api.Scheme.ConvertFieldLabel(fs.APIVersion, "Pod", fs.FieldPath, "") + internalFieldPath, _, err := legacyscheme.Scheme.ConvertFieldLabel(fs.APIVersion, "Pod", fs.FieldPath, "") if err != nil { return "", err } @@ -1348,16 +1342,21 @@ func (kl *Kubelet) convertStatusToAPIStatus(pod *v1.Pod, podStatus *kubecontaine // set status for Pods created on versions of kube older than 1.6 apiPodStatus.QOSClass = v1qos.GetPodQOS(pod) + oldPodStatus, found := kl.statusManager.GetPodStatus(pod.UID) + if !found { + oldPodStatus = pod.Status + } + apiPodStatus.ContainerStatuses = kl.convertToAPIContainerStatuses( pod, podStatus, - pod.Status.ContainerStatuses, + oldPodStatus.ContainerStatuses, pod.Spec.Containers, len(pod.Spec.InitContainers) > 0, false, ) apiPodStatus.InitContainerStatuses = kl.convertToAPIContainerStatuses( pod, podStatus, - pod.Status.InitContainerStatuses, + oldPodStatus.InitContainerStatuses, pod.Spec.InitContainers, len(pod.Spec.InitContainers) > 0, true, @@ -1424,7 +1423,7 @@ func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecon } oldStatus, found := oldStatuses[container.Name] if found { - if isInitContainer && oldStatus.State.Terminated != nil { + if oldStatus.State.Terminated != nil { // Do not update status on terminated init containers as // they be removed at any time. status = &oldStatus @@ -1772,13 +1771,13 @@ func hasHostNamespace(pod *v1.Pod) bool { func (kl *Kubelet) hasHostMountPVC(pod *v1.Pod) bool { for _, volume := range pod.Spec.Volumes { if volume.PersistentVolumeClaim != nil { - pvc, err := kl.kubeClient.Core().PersistentVolumeClaims(pod.Namespace).Get(volume.PersistentVolumeClaim.ClaimName, metav1.GetOptions{}) + pvc, err := kl.kubeClient.CoreV1().PersistentVolumeClaims(pod.Namespace).Get(volume.PersistentVolumeClaim.ClaimName, metav1.GetOptions{}) if err != nil { glog.Warningf("unable to retrieve pvc %s:%s - %v", pod.Namespace, volume.PersistentVolumeClaim.ClaimName, err) continue } if pvc != nil { - referencedVolume, err := kl.kubeClient.Core().PersistentVolumes().Get(pvc.Spec.VolumeName, metav1.GetOptions{}) + referencedVolume, err := kl.kubeClient.CoreV1().PersistentVolumes().Get(pvc.Spec.VolumeName, metav1.GetOptions{}) if err != nil { glog.Warningf("unable to retrieve pv %s - %v", pvc.Spec.VolumeName, err) continue diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods_test.go index a2c47fee4..5b759d5d1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_pods_test.go @@ -21,7 +21,6 @@ import ( "errors" "fmt" "io/ioutil" - "net" "os" "path/filepath" "sort" @@ -38,11 +37,11 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" core "k8s.io/client-go/testing" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" // TODO: remove this import if // api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String() is changed // to "v1"? - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/core/install" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" containertest "k8s.io/kubernetes/pkg/kubelet/container/testing" @@ -591,90 +590,6 @@ func TestRunInContainer(t *testing.T) { } } -func TestGenerateRunContainerOptions_DNSConfigurationParams(t *testing.T) { - testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) - defer testKubelet.Cleanup() - kubelet := testKubelet.kubelet - - clusterNS := "203.0.113.1" - kubelet.clusterDomain = "kubernetes.io" - kubelet.clusterDNS = []net.IP{net.ParseIP(clusterNS)} - - pods := newTestPods(4) - pods[0].Spec.DNSPolicy = v1.DNSClusterFirstWithHostNet - pods[1].Spec.DNSPolicy = v1.DNSClusterFirst - pods[2].Spec.DNSPolicy = v1.DNSClusterFirst - pods[2].Spec.HostNetwork = false - pods[3].Spec.DNSPolicy = v1.DNSDefault - - options := make([]*kubecontainer.RunContainerOptions, 4) - for i, pod := range pods { - var err error - options[i], _, err = kubelet.GenerateRunContainerOptions(pod, &v1.Container{}, "") - if err != nil { - t.Fatalf("failed to generate container options: %v", err) - } - } - if len(options[0].DNS) != 1 || options[0].DNS[0] != clusterNS { - t.Errorf("expected nameserver %s, got %+v", clusterNS, options[0].DNS) - } - if len(options[0].DNSSearch) == 0 || options[0].DNSSearch[0] != ".svc."+kubelet.clusterDomain { - t.Errorf("expected search %s, got %+v", ".svc."+kubelet.clusterDomain, options[0].DNSSearch) - } - if len(options[1].DNS) != 1 || options[1].DNS[0] != "127.0.0.1" { - t.Errorf("expected nameserver 127.0.0.1, got %+v", options[1].DNS) - } - if len(options[1].DNSSearch) != 1 || options[1].DNSSearch[0] != "." { - t.Errorf("expected search \".\", got %+v", options[1].DNSSearch) - } - if len(options[2].DNS) != 1 || options[2].DNS[0] != clusterNS { - t.Errorf("expected nameserver %s, got %+v", clusterNS, options[2].DNS) - } - if len(options[2].DNSSearch) == 0 || options[2].DNSSearch[0] != ".svc."+kubelet.clusterDomain { - t.Errorf("expected search %s, got %+v", ".svc."+kubelet.clusterDomain, options[2].DNSSearch) - } - if len(options[3].DNS) != 1 || options[3].DNS[0] != "127.0.0.1" { - t.Errorf("expected nameserver 127.0.0.1, got %+v", options[3].DNS) - } - if len(options[3].DNSSearch) != 1 || options[3].DNSSearch[0] != "." { - t.Errorf("expected search \".\", got %+v", options[3].DNSSearch) - } - - kubelet.resolverConfig = "/etc/resolv.conf" - for i, pod := range pods { - var err error - options[i], _, err = kubelet.GenerateRunContainerOptions(pod, &v1.Container{}, "") - if err != nil { - t.Fatalf("failed to generate container options: %v", err) - } - } - t.Logf("nameservers %+v", options[1].DNS) - if len(options[0].DNS) != 1 { - t.Errorf("expected cluster nameserver only, got %+v", options[0].DNS) - } else if options[0].DNS[0] != clusterNS { - t.Errorf("expected nameserver %s, got %v", clusterNS, options[0].DNS[0]) - } - expLength := len(options[1].DNSSearch) + 3 - if expLength > 6 { - expLength = 6 - } - if len(options[0].DNSSearch) != expLength { - t.Errorf("expected prepend of cluster domain, got %+v", options[0].DNSSearch) - } else if options[0].DNSSearch[0] != ".svc."+kubelet.clusterDomain { - t.Errorf("expected domain %s, got %s", ".svc."+kubelet.clusterDomain, options[0].DNSSearch) - } - if len(options[2].DNS) != 1 { - t.Errorf("expected cluster nameserver only, got %+v", options[2].DNS) - } else if options[2].DNS[0] != clusterNS { - t.Errorf("expected nameserver %s, got %v", clusterNS, options[2].DNS[0]) - } - if len(options[2].DNSSearch) != expLength { - t.Errorf("expected prepend of cluster domain, got %+v", options[2].DNSSearch) - } else if options[2].DNSSearch[0] != ".svc."+kubelet.clusterDomain { - t.Errorf("expected domain %s, got %s", ".svc."+kubelet.clusterDomain, options[0].DNSSearch) - } -} - type testServiceLister struct { services []*v1.Service } @@ -884,7 +799,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_NAME", ValueFrom: &v1.EnvVarSource{ FieldRef: &v1.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), FieldPath: "metadata.name", }, }, @@ -893,7 +808,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_NAMESPACE", ValueFrom: &v1.EnvVarSource{ FieldRef: &v1.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), FieldPath: "metadata.namespace", }, }, @@ -902,7 +817,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_NODE_NAME", ValueFrom: &v1.EnvVarSource{ FieldRef: &v1.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), FieldPath: "spec.nodeName", }, }, @@ -911,7 +826,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_SERVICE_ACCOUNT_NAME", ValueFrom: &v1.EnvVarSource{ FieldRef: &v1.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), FieldPath: "spec.serviceAccountName", }, }, @@ -920,7 +835,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_IP", ValueFrom: &v1.EnvVarSource{ FieldRef: &v1.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), FieldPath: "status.podIP", }, }, @@ -929,7 +844,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "HOST_IP", ValueFrom: &v1.EnvVarSource{ FieldRef: &v1.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), FieldPath: "status.hostIP", }, }, @@ -960,7 +875,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_NAME", ValueFrom: &v1.EnvVarSource{ FieldRef: &v1.ObjectFieldSelector{ - APIVersion: api.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion.String(), FieldPath: "metadata.name", }, }, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_test.go index 70e2dd6eb..5019121d4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_test.go @@ -72,6 +72,7 @@ import ( _ "k8s.io/kubernetes/pkg/volume/host_path" volumetest "k8s.io/kubernetes/pkg/volume/testing" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" ) func init() { @@ -284,7 +285,7 @@ func newTestKubeletWithImageList( kubelet.evictionManager = evictionManager kubelet.admitHandlers.AddPodAdmitHandler(evictionAdmitHandler) // Add this as cleanup predicate pod admitter - kubelet.admitHandlers.AddPodAdmitHandler(lifecycle.NewPredicateAdmitHandler(kubelet.getNodeAnyWay, lifecycle.NewAdmissionFailureHandlerStub())) + kubelet.admitHandlers.AddPodAdmitHandler(lifecycle.NewPredicateAdmitHandler(kubelet.getNodeAnyWay, lifecycle.NewAdmissionFailureHandlerStub(), kubelet.containerManager.UpdatePluginResources)) plug := &volumetest.FakeVolumePlugin{PluginName: "fake", Host: nil} var prober volume.DynamicPluginProber = nil // TODO (#51147) inject mock @@ -573,6 +574,116 @@ func TestHandleMemExceeded(t *testing.T) { checkPodStatus(t, kl, fittingPod, v1.PodPending) } +// Tests that we handle result of interface UpdatePluginResources correctly +// by setting corresponding status in status map. +func TestHandlePluginResources(t *testing.T) { + testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() + testKubelet.chainMock() + kl := testKubelet.kubelet + + adjustedResource := v1.ResourceName("domain1.com/adjustedResource") + unadjustedResouce := v1.ResourceName("domain2.com/unadjustedResouce") + failedResource := v1.ResourceName("domain2.com/failedResource") + resourceQuantity1 := *resource.NewQuantity(int64(1), resource.DecimalSI) + resourceQuantity2 := *resource.NewQuantity(int64(2), resource.DecimalSI) + resourceQuantityInvalid := *resource.NewQuantity(int64(-1), resource.DecimalSI) + allowedPodQuantity := *resource.NewQuantity(int64(10), resource.DecimalSI) + nodes := []*v1.Node{ + {ObjectMeta: metav1.ObjectMeta{Name: testKubeletHostname}, + Status: v1.NodeStatus{Capacity: v1.ResourceList{}, Allocatable: v1.ResourceList{ + adjustedResource: resourceQuantity1, + unadjustedResouce: resourceQuantity1, + v1.ResourcePods: allowedPodQuantity, + }}}, + } + kl.nodeInfo = testNodeInfo{nodes: nodes} + + updatePluginResourcesFunc := func(node *schedulercache.NodeInfo, attrs *lifecycle.PodAdmitAttributes) error { + // Maps from resourceName to the value we use to set node.allocatableResource[resourceName]. + // A resource with invalid value (< 0) causes the function to return an error + // to emulate resource Allocation failure. + // Resources not contained in this map will have their node.allocatableResource + // quantity unchanged. + updateResourceMap := map[v1.ResourceName]resource.Quantity{ + adjustedResource: resourceQuantity2, + failedResource: resourceQuantityInvalid, + } + pod := attrs.Pod + allocatableResource := node.AllocatableResource() + newAllocatableResource := allocatableResource.Clone() + for _, container := range pod.Spec.Containers { + for resource := range container.Resources.Requests { + newQuantity, exist := updateResourceMap[resource] + if !exist { + continue + } + if newQuantity.Value() < 0 { + return fmt.Errorf("Allocation failed") + } + newAllocatableResource.ScalarResources[resource] = newQuantity.Value() + } + } + node.SetAllocatableResource(newAllocatableResource) + return nil + } + + // add updatePluginResourcesFunc to admission handler, to test it's behavior. + kl.admitHandlers = lifecycle.PodAdmitHandlers{} + kl.admitHandlers.AddPodAdmitHandler(lifecycle.NewPredicateAdmitHandler(kl.getNodeAnyWay, lifecycle.NewAdmissionFailureHandlerStub(), updatePluginResourcesFunc)) + + // pod requiring adjustedResource can be successfully allocated because updatePluginResourcesFunc + // adjusts node.allocatableResource for this resource to a sufficient value. + fittingPodspec := v1.PodSpec{NodeName: string(kl.nodeName), + Containers: []v1.Container{{Resources: v1.ResourceRequirements{ + Limits: v1.ResourceList{ + adjustedResource: resourceQuantity2, + }, + Requests: v1.ResourceList{ + adjustedResource: resourceQuantity2, + }, + }}}, + } + // pod requiring unadjustedResouce with insufficient quantity will still fail PredicateAdmit. + exceededPodSpec := v1.PodSpec{NodeName: string(kl.nodeName), + Containers: []v1.Container{{Resources: v1.ResourceRequirements{ + Limits: v1.ResourceList{ + unadjustedResouce: resourceQuantity2, + }, + Requests: v1.ResourceList{ + unadjustedResouce: resourceQuantity2, + }, + }}}, + } + // pod requiring failedResource will fail with the resource failed to be allocated. + failedPodSpec := v1.PodSpec{NodeName: string(kl.nodeName), + Containers: []v1.Container{{Resources: v1.ResourceRequirements{ + Limits: v1.ResourceList{ + failedResource: resourceQuantity1, + }, + Requests: v1.ResourceList{ + failedResource: resourceQuantity1, + }, + }}}, + } + pods := []*v1.Pod{ + podWithUIDNameNsSpec("123", "fittingpod", "foo", fittingPodspec), + podWithUIDNameNsSpec("456", "exceededpod", "foo", exceededPodSpec), + podWithUIDNameNsSpec("789", "failedpod", "foo", failedPodSpec), + } + // The latter two pod should be rejected. + fittingPod := pods[0] + exceededPod := pods[1] + failedPod := pods[2] + + kl.HandlePodAdditions(pods) + + // Check pod status stored in the status map. + checkPodStatus(t, kl, fittingPod, v1.PodPending) + checkPodStatus(t, kl, exceededPod, v1.PodFailed) + checkPodStatus(t, kl, failedPod, v1.PodFailed) +} + // TODO(filipg): This test should be removed once StatusSyncer can do garbage collection without external signal. func TestPurgingObsoleteStatusMapEntries(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/BUILD index d34a5b9a4..4a2f55aa6 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/BUILD @@ -40,7 +40,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/kubeletconfig/scheme:go_default_library", "//pkg/kubelet/kubeletconfig/status:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/checkpoint.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/checkpoint.go index 852ea7148..be44aaaa3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/checkpoint.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/checkpoint.go @@ -22,7 +22,7 @@ import ( apiv1 "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" ) @@ -43,7 +43,7 @@ type Checkpoint interface { // DecodeCheckpoint is a helper for using the apimachinery to decode serialized checkpoints func DecodeCheckpoint(data []byte) (Checkpoint, error) { // decode the checkpoint - obj, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { return nil, fmt.Errorf("failed to decode, error: %v", err) } @@ -52,7 +52,7 @@ func DecodeCheckpoint(data []byte) (Checkpoint, error) { // convert it to the external ConfigMap type, so we're consistently working with the external type outside of the on-disk representation cm := &apiv1.ConfigMap{} - err = api.Scheme.Convert(obj, cm, nil) + err = legacyscheme.Scheme.Convert(obj, cm, nil) if err != nil { return nil, fmt.Errorf("failed to convert decoded object into a v1 ConfigMap, error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/download.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/download.go index 841d94345..297d974a1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/download.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/download.go @@ -24,7 +24,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status" utilcodec "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec" utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" @@ -71,7 +71,7 @@ func NewRemoteConfigSource(source *apiv1.NodeConfigSource) (RemoteConfigSource, // e.g. the objects stored in the .cur and .lkg files by checkpoint/store/fsstore.go func DecodeRemoteConfigSource(data []byte) (RemoteConfigSource, error) { // decode the remote config source - obj, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + obj, err := runtime.Decode(legacyscheme.Codecs.UniversalDecoder(), data) if err != nil { return nil, fmt.Errorf("failed to decode, error: %v", err) } @@ -81,7 +81,7 @@ func DecodeRemoteConfigSource(data []byte) (RemoteConfigSource, error) { // convert it to the external NodeConfigSource type, so we're consistently working with the external type outside of the on-disk representation cs := &apiv1.NodeConfigSource{} - err = api.Scheme.Convert(obj, cs, nil) + err = legacyscheme.Scheme.Convert(obj, cs, nil) if err != nil { return nil, fmt.Errorf("failed to convert decoded object into a v1 NodeConfigSource, error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore.go index a56c4ec16..1026b97a8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore.go @@ -56,10 +56,7 @@ func (s *fsStore) Initialize() error { if err := utilfiles.EnsureFile(s.fs, filepath.Join(s.checkpointsDir, curFile)); err != nil { return err } - if err := utilfiles.EnsureFile(s.fs, filepath.Join(s.checkpointsDir, lkgFile)); err != nil { - return err - } - return nil + return utilfiles.EnsureFile(s.fs, filepath.Join(s.checkpointsDir, lkgFile)) } func (s *fsStore) Exists(uid string) (bool, error) { @@ -77,10 +74,7 @@ func (s *fsStore) Save(c checkpoint.Checkpoint) error { return err } // save the file - if err := utilfiles.ReplaceFile(s.fs, filepath.Join(s.checkpointsDir, c.UID()), data); err != nil { - return err - } - return nil + return utilfiles.ReplaceFile(s.fs, filepath.Join(s.checkpointsDir, c.UID()), data) } func (s *fsStore) Load(uid string) (checkpoint.Checkpoint, error) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/BUILD index 2c6e70a50..939e728f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/BUILD @@ -44,7 +44,6 @@ go_test( "//pkg/kubelet/kubeletconfig/util/files:go_default_library", "//pkg/kubelet/kubeletconfig/util/test:go_default_library", "//pkg/util/filesystem:go_default_library", - "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/configfiles.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/configfiles.go index b3c763c16..fe55e0b93 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/configfiles.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/configfiles.go @@ -72,5 +72,23 @@ func (loader *fsLoader) Load() (*kubeletconfig.KubeletConfiguration, error) { return nil, fmt.Errorf("init config file %q was empty, but some parameters are required", path) } - return utilcodec.DecodeKubeletConfiguration(loader.kubeletCodecs, data) + kc, err := utilcodec.DecodeKubeletConfiguration(loader.kubeletCodecs, data) + if err != nil { + return nil, err + } + + // make all paths absolute + resolveRelativePaths(kubeletconfig.KubeletConfigurationPathRefs(kc), loader.configDir) + return kc, nil +} + +// resolveRelativePaths makes relative paths absolute by resolving them against `root` +func resolveRelativePaths(paths []*string, root string) { + for _, path := range paths { + // leave empty paths alone, "no path" is a valid input + // do not attempt to resolve paths that are already absolute + if len(*path) > 0 && !filepath.IsAbs(*path) { + *path = filepath.Join(root, *path) + } + } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/configfiles_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/configfiles_test.go index af354907f..6c92e8bc9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/configfiles_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles/configfiles_test.go @@ -19,11 +19,8 @@ package configfiles import ( "fmt" "path/filepath" - "strings" "testing" - "github.com/davecgh/go-spew/spew" - apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubeletscheme "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig/scheme" @@ -33,83 +30,184 @@ import ( utilfs "k8s.io/kubernetes/pkg/util/filesystem" ) -func addFile(fs utilfs.Filesystem, path string, file string) error { - if err := utilfiles.EnsureDir(fs, filepath.Dir(path)); err != nil { - return err - } - if err := utilfiles.ReplaceFile(fs, path, []byte(file)); err != nil { - return err - } - return nil -} +const configDir = "/test-config-dir" +const relativePath = "relative/path/test" func TestLoad(t *testing.T) { - kubeletScheme, _, err := kubeletscheme.NewSchemeAndCodecs() - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - - // get the built-in default configuration - external := &kubeletconfigv1alpha1.KubeletConfiguration{} - kubeletScheme.Default(external) - defaultConfig := &kubeletconfig.KubeletConfiguration{} - err = kubeletScheme.Convert(external, defaultConfig, nil) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - cases := []struct { desc string - file string + file *string expect *kubeletconfig.KubeletConfiguration err string }{ - {"empty data", ``, nil, "was empty"}, + // missing file + { + "missing file", + nil, + nil, + "failed to read", + }, + // empty file + { + "empty file", + newString(``), + nil, + "was empty", + }, // invalid format - {"invalid yaml", `*`, nil, "failed to decode"}, - {"invalid json", `{*`, nil, "failed to decode"}, + { + "invalid yaml", + newString(`*`), + nil, + "failed to decode", + }, + { + "invalid json", + newString(`{*`), + nil, + "failed to decode", + }, // invalid object - {"missing kind", `{"apiVersion":"kubeletconfig/v1alpha1"}`, nil, "failed to decode"}, - {"missing version", `{"kind":"KubeletConfiguration"}`, nil, "failed to decode"}, - {"unregistered kind", `{"kind":"BogusKind","apiVersion":"kubeletconfig/v1alpha1"}`, nil, "failed to decode"}, - {"unregistered version", `{"kind":"KubeletConfiguration","apiVersion":"bogusversion"}`, nil, "failed to decode"}, + { + "missing kind", + newString(`{"apiVersion":"kubeletconfig/v1alpha1"}`), + nil, + "failed to decode", + }, + { + "missing version", + newString(`{"kind":"KubeletConfiguration"}`), + nil, + "failed to decode", + }, + { + "unregistered kind", + newString(`{"kind":"BogusKind","apiVersion":"kubeletconfig/v1alpha1"}`), + nil, + "failed to decode", + }, + { + "unregistered version", + newString(`{"kind":"KubeletConfiguration","apiVersion":"bogusversion"}`), + nil, + "failed to decode", + }, + // empty object with correct kind and version should result in the defaults for that kind and version - {"default from yaml", `kind: KubeletConfiguration -apiVersion: kubeletconfig/v1alpha1`, defaultConfig, ""}, - {"default from json", `{"kind":"KubeletConfiguration","apiVersion":"kubeletconfig/v1alpha1"}`, defaultConfig, ""}, + { + "default from yaml", + newString(`kind: KubeletConfiguration +apiVersion: kubeletconfig/v1alpha1`), + newConfig(t), + "", + }, + { + "default from json", + newString(`{"kind":"KubeletConfiguration","apiVersion":"kubeletconfig/v1alpha1"}`), + newConfig(t), + "", + }, + + // relative path + { + "yaml, relative path is resolved", + newString(fmt.Sprintf(`kind: KubeletConfiguration +apiVersion: kubeletconfig/v1alpha1 +podManifestPath: %s`, relativePath)), + func() *kubeletconfig.KubeletConfiguration { + kc := newConfig(t) + kc.PodManifestPath = filepath.Join(configDir, relativePath) + return kc + }(), + "", + }, + { + "json, relative path is resolved", + newString(fmt.Sprintf(`{"kind":"KubeletConfiguration","apiVersion":"kubeletconfig/v1alpha1","podManifestPath":"%s"}`, relativePath)), + func() *kubeletconfig.KubeletConfiguration { + kc := newConfig(t) + kc.PodManifestPath = filepath.Join(configDir, relativePath) + return kc + }(), + "", + }, } - fs := utilfs.NewFakeFs() - for i := range cases { - dir := fmt.Sprintf("/%d", i) - if err := addFile(fs, filepath.Join(dir, kubeletFile), cases[i].file); err != nil { - t.Fatalf("unexpected error: %v", err) - } - loader, err := NewFsLoader(fs, dir) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - kc, err := loader.Load() - if utiltest.SkipRest(t, cases[i].desc, err, cases[i].err) { - continue - } - // we expect the parsed configuration to match what we described in the ConfigMap - if !apiequality.Semantic.DeepEqual(cases[i].expect, kc) { - t.Errorf("case %q, expect config %s but got %s", cases[i].desc, spew.Sdump(cases[i].expect), spew.Sdump(kc)) - } + for _, c := range cases { + t.Run(c.desc, func(t *testing.T) { + fs := utilfs.NewFakeFs() + if c.file != nil { + if err := addFile(fs, filepath.Join(configDir, kubeletFile), *c.file); err != nil { + t.Fatalf("unexpected error: %v", err) + } + } + loader, err := NewFsLoader(fs, configDir) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + kc, err := loader.Load() + if utiltest.SkipRest(t, c.desc, err, c.err) { + return + } + if !apiequality.Semantic.DeepEqual(c.expect, kc) { + t.Fatalf("expect %#v but got %#v", *c.expect, *kc) + } + }) + } +} - // finally test for a missing file - desc := "missing kubelet file" - contains := "failed to read" - loader, err := NewFsLoader(fs, "/fake") +func TestResolveRelativePaths(t *testing.T) { + absolutePath := filepath.Join(configDir, "absolute") + cases := []struct { + desc string + path string + expect string + }{ + {"empty path", "", ""}, + {"absolute path", absolutePath, absolutePath}, + {"relative path", relativePath, filepath.Join(configDir, relativePath)}, + } + + paths := kubeletconfig.KubeletConfigurationPathRefs(newConfig(t)) + if len(paths) == 0 { + t.Fatalf("requires at least one path field to exist in the KubeletConfiguration type") + } + for _, c := range cases { + t.Run(c.desc, func(t *testing.T) { + // set the path, resolve it, and check if it resolved as we would expect + *(paths[0]) = c.path + resolveRelativePaths(paths, configDir) + if *(paths[0]) != c.expect { + t.Fatalf("expect %s but got %s", c.expect, *(paths[0])) + } + }) + } +} + +func newString(s string) *string { + return &s +} + +func addFile(fs utilfs.Filesystem, path string, file string) error { + if err := utilfiles.EnsureDir(fs, filepath.Dir(path)); err != nil { + return err + } + return utilfiles.ReplaceFile(fs, path, []byte(file)) +} + +func newConfig(t *testing.T) *kubeletconfig.KubeletConfiguration { + kubeletScheme, _, err := kubeletscheme.NewSchemeAndCodecs() if err != nil { t.Fatalf("unexpected error: %v", err) } - _, err = loader.Load() - if err == nil { - t.Errorf("case %q, expect error to contain %q but got nil error", desc, contains) - } else if !strings.Contains(err.Error(), contains) { - t.Errorf("case %q, expect error to contain %q but got %q", desc, contains, err.Error()) + // get the built-in default configuration + external := &kubeletconfigv1alpha1.KubeletConfiguration{} + kubeletScheme.Default(external) + kc := &kubeletconfig.KubeletConfiguration{} + err = kubeletScheme.Convert(external, kc, nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) } + return kc } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/controller.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/controller.go index edfb62a03..6ff4cd6b2 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/controller.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/controller.go @@ -248,10 +248,7 @@ func (cc *Controller) StartSync(client clientset.Interface, nodeName string) { func (cc *Controller) initialize() error { utillog.Infof("ensuring filesystem is set up correctly") // initialize local checkpoint storage location - if err := cc.checkpointStore.Initialize(); err != nil { - return err - } - return nil + return cc.checkpointStore.Initialize() } // localConfig returns the initConfig if it is loaded, otherwise returns the defaultConfig. diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status/BUILD index d5ba25c15..6de1a105e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status/BUILD @@ -10,7 +10,8 @@ go_library( srcs = ["status.go"], importpath = "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/kubeletconfig/util/equal:go_default_library", "//pkg/kubelet/kubeletconfig/util/log:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status/status.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status/status.go index 22d0d1865..b83e6891d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status/status.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status/status.go @@ -26,7 +26,8 @@ import ( kuberuntime "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/strategicpatch" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" utilequal "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/equal" utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" ) @@ -257,18 +258,18 @@ func (c *configOKCondition) Sync(client clientset.Interface, nodeName string) { // generate the patch mediaType := "application/json" - info, ok := kuberuntime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), mediaType) + info, ok := kuberuntime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), mediaType) if !ok { err = fmt.Errorf("unsupported media type %q", mediaType) return } - versions := api.Registry.EnabledVersionsForGroup(api.GroupName) + versions := legacyscheme.Registry.EnabledVersionsForGroup(api.GroupName) if len(versions) == 0 { err = fmt.Errorf("no enabled versions for group %q", api.GroupName) return } // the "best" version supposedly comes first in the list returned from apiv1.Registry.EnabledVersionsForGroup - encoder := api.Codecs.EncoderForVersion(info.Serializer, versions[0]) + encoder := legacyscheme.Codecs.EncoderForVersion(info.Serializer, versions[0]) before, err := kuberuntime.Encode(encoder, node) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec/BUILD index cc704d9b5..50b123e7a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec/BUILD @@ -10,8 +10,8 @@ go_library( srcs = ["codec.go"], importpath = "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec/codec.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec/codec.go index 148967cab..3316f955a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec/codec.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec/codec.go @@ -20,11 +20,11 @@ import ( "fmt" // ensure the core apis are installed - _ "k8s.io/kubernetes/pkg/api/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" ) @@ -34,18 +34,18 @@ import ( func NewJSONEncoder(groupName string) (runtime.Encoder, error) { // encode to json mediaType := "application/json" - info, ok := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), mediaType) + info, ok := runtime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), mediaType) if !ok { return nil, fmt.Errorf("unsupported media type %q", mediaType) } - versions := api.Registry.EnabledVersionsForGroup(groupName) + versions := legacyscheme.Registry.EnabledVersionsForGroup(groupName) if len(versions) == 0 { return nil, fmt.Errorf("no enabled versions for group %q", groupName) } - // the "best" version supposedly comes first in the list returned from api.Registry.EnabledVersionsForGroup - return api.Codecs.EncoderForVersion(info.Serializer, versions[0]), nil + // the "best" version supposedly comes first in the list returned from legacyscheme.Registry.EnabledVersionsForGroup + return legacyscheme.Codecs.EncoderForVersion(info.Serializer, versions[0]), nil } // DecodeKubeletConfiguration decodes a serialized KubeletConfiguration to the internal type diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files/files.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files/files.go index a732bbcce..aa76e151d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files/files.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files/files.go @@ -109,10 +109,7 @@ func ReplaceFile(fs utilfs.Filesystem, path string, data []byte) error { return err } // rename over existing file - if err := fs.Rename(tmpPath, path); err != nil { - return err - } - return nil + return fs.Rename(tmpPath, path) } // DirExists returns true if a directory exists at `path`, false if `path` does not exist, otherwise an error @@ -138,8 +135,5 @@ func EnsureDir(fs utilfs.Filesystem, path string) error { } // Assert: dir does not exist // create the dir - if err := fs.MkdirAll(path, defaultPerm); err != nil { - return err - } - return nil + return fs.MkdirAll(path, defaultPerm) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/watch.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/watch.go index 2c0363c7c..ecc255b96 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/watch.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/watch.go @@ -47,12 +47,12 @@ func newSharedNodeInformer(client clientset.Interface, nodeName string, lw := &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (kuberuntime.Object, error) { - return client.Core().Nodes().List(metav1.ListOptions{ + return client.CoreV1().Nodes().List(metav1.ListOptions{ FieldSelector: fieldselector.String(), }) }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return client.Core().Nodes().Watch(metav1.ListOptions{ + return client.CoreV1().Nodes().Watch(metav1.ListOptions{ FieldSelector: fieldselector.String(), ResourceVersion: options.ResourceVersion, }) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/BUILD index 7bc557b67..e46a4dcc4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/BUILD @@ -25,8 +25,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/kuberuntime", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1/helper:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/credentialprovider:go_default_library", "//pkg/kubelet/apis/cri:go_default_library", "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", @@ -34,6 +34,7 @@ go_library( "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/events:go_default_library", "//pkg/kubelet/images:go_default_library", + "//pkg/kubelet/kuberuntime/logs:go_default_library", "//pkg/kubelet/lifecycle:go_default_library", "//pkg/kubelet/metrics:go_default_library", "//pkg/kubelet/prober/results:go_default_library", @@ -48,8 +49,6 @@ go_library( "//pkg/util/tail:go_default_library", "//pkg/util/version:go_default_library", "//vendor/github.com/armon/circbuf:go_default_library", - "//vendor/github.com/docker/docker/pkg/jsonlog:go_default_library", - "//vendor/github.com/fsnotify/fsnotify:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/google.golang.org/grpc:go_default_library", @@ -73,7 +72,6 @@ go_test( "kuberuntime_container_test.go", "kuberuntime_gc_test.go", "kuberuntime_image_test.go", - "kuberuntime_logs_test.go", "kuberuntime_manager_test.go", "kuberuntime_sandbox_test.go", "labels_test.go", @@ -113,6 +111,9 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//pkg/kubelet/kuberuntime/logs:all-srcs", + ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/helpers.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/helpers.go index 2ecc2e81e..0aa1e47d1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/helpers.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/helpers.go @@ -25,7 +25,7 @@ import ( "github.com/golang/glog" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/instrumented_services_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/instrumented_services_test.go index fab147007..933fc2995 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/instrumented_services_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/instrumented_services_test.go @@ -17,13 +17,15 @@ limitations under the License. package kuberuntime import ( - "github.com/prometheus/client_golang/prometheus" - "github.com/stretchr/testify/assert" - "k8s.io/kubernetes/pkg/kubelet/metrics" "net" "net/http" "testing" "time" + + "github.com/prometheus/client_golang/prometheus" + "github.com/stretchr/testify/assert" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" + "k8s.io/kubernetes/pkg/kubelet/metrics" ) func TestRecordOperation(t *testing.T) { @@ -59,3 +61,31 @@ func TestRecordOperation(t *testing.T) { mux.ServeHTTP(w, r) }), "GET", prometheusUrl, nil, runtimeOperationsLatencyExpected) } + +func TestInstrumentedVersion(t *testing.T) { + fakeRuntime, _, _, _ := createTestRuntimeManager() + irs := newInstrumentedRuntimeService(fakeRuntime) + vr, err := irs.Version("1") + assert.NoError(t, err) + assert.Equal(t, kubeRuntimeAPIVersion, vr.Version) +} + +func TestStatus(t *testing.T) { + fakeRuntime, _, _, _ := createTestRuntimeManager() + fakeRuntime.FakeStatus = &runtimeapi.RuntimeStatus{ + Conditions: []*runtimeapi.RuntimeCondition{ + {Type: runtimeapi.RuntimeReady, Status: false}, + {Type: runtimeapi.NetworkReady, Status: true}, + }, + } + irs := newInstrumentedRuntimeService(fakeRuntime) + actural, err := irs.Status() + assert.NoError(t, err) + expected := &runtimeapi.RuntimeStatus{ + Conditions: []*runtimeapi.RuntimeCondition{ + {Type: runtimeapi.RuntimeReady, Status: false}, + {Type: runtimeapi.NetworkReady, Status: true}, + }, + } + assert.Equal(t, expected, actural) +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container.go index 316fe1020..1b622b2ca 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container.go @@ -174,7 +174,7 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb // generateContainerConfig generates container config for kubelet runtime v1. func (m *kubeGenericRuntimeManager) generateContainerConfig(container *v1.Container, pod *v1.Pod, restartCount int, podIP, imageRef string) (*runtimeapi.ContainerConfig, error) { - opts, _, err := m.runtimeHelper.GenerateRunContainerOptions(pod, container, podIP) + opts, err := m.runtimeHelper.GenerateRunContainerOptions(pod, container, podIP) if err != nil { return nil, err } @@ -427,8 +427,16 @@ func (m *kubeGenericRuntimeManager) getPodContainerStatuses(uid kubetypes.UID, n fallbackToLogs := annotatedInfo.TerminationMessagePolicy == v1.TerminationMessageFallbackToLogsOnError && cStatus.ExitCode != 0 tMessage, checkLogs := getTerminationMessage(status, annotatedInfo.TerminationMessagePath, fallbackToLogs) if checkLogs { - path := buildFullContainerLogsPath(uid, labeledInfo.ContainerName, annotatedInfo.RestartCount) - tMessage = m.readLastStringFromContainerLogs(path) + // if dockerLegacyService is populated, we're supposed to use it to fetch logs + if m.legacyLogProvider != nil { + tMessage, err = m.legacyLogProvider.GetContainerLogTail(uid, name, namespace, kubecontainer.ContainerID{Type: m.runtimeName, ID: c.Id}) + if err != nil { + tMessage = fmt.Sprintf("Error reading termination message from logs: %v", err) + } + } else { + path := buildFullContainerLogsPath(uid, labeledInfo.ContainerName, annotatedInfo.RestartCount) + tMessage = m.readLastStringFromContainerLogs(path) + } } // Use the termination message written by the application is not empty if len(tMessage) != 0 { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container_test.go index 525b48ead..86f153ca4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container_test.go @@ -207,7 +207,7 @@ func makeExpectedConfig(m *kubeGenericRuntimeManager, pod *v1.Pod, containerInde container := &pod.Spec.Containers[containerIndex] podIP := "" restartCount := 0 - opts, _, _ := m.runtimeHelper.GenerateRunContainerOptions(pod, container, podIP) + opts, _ := m.runtimeHelper.GenerateRunContainerOptions(pod, container, podIP) containerLogsPath := buildContainerLogsPath(container.Name, restartCount) restartCountUint32 := uint32(restartCount) envs := make([]*runtimeapi.KeyValue, len(opts.Envs)) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_logs.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_logs.go index 752e41b76..ee8dc4c81 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_logs.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_logs.go @@ -17,361 +17,19 @@ limitations under the License. package kuberuntime import ( - "bufio" - "bytes" - "encoding/json" - "errors" - "fmt" "io" - "math" - "os" "time" - "github.com/docker/docker/pkg/jsonlog" - "github.com/fsnotify/fsnotify" - "github.com/golang/glog" - "k8s.io/api/core/v1" - runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" - "k8s.io/kubernetes/pkg/util/tail" + "k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs" ) -// Notice that the current kuberuntime logs implementation doesn't handle -// log rotation. -// * It will not retrieve logs in rotated log file. -// * If log rotation happens when following the log: -// * If the rotation is using create mode, we'll still follow the old file. -// * If the rotation is using copytruncate, we'll be reading at the original position and get nothing. -// TODO(random-liu): Support log rotation. - -// streamType is the type of the stream. -type streamType string - -const ( - stderrType streamType = "stderr" - stdoutType streamType = "stdout" - - // timeFormat is the time format used in the log. - timeFormat = time.RFC3339Nano - // blockSize is the block size used in tail. - blockSize = 1024 - - // stateCheckPeriod is the period to check container state while following - // the container log. Kubelet should not keep following the log when the - // container is not running. - stateCheckPeriod = 5 * time.Second -) - -var ( - // eol is the end-of-line sign in the log. - eol = []byte{'\n'} - // delimiter is the delimiter for timestamp and streamtype in log line. - delimiter = []byte{' '} -) - -// logMessage is the internal log type. -type logMessage struct { - timestamp time.Time - stream streamType - log []byte -} - -// reset resets the log to nil. -func (l *logMessage) reset() { - l.timestamp = time.Time{} - l.stream = "" - l.log = nil -} - -// logOptions is the internal type of all log options. -type logOptions struct { - tail int64 - bytes int64 - since time.Time - follow bool - timestamp bool -} - -// newLogOptions convert the v1.PodLogOptions to internal logOptions. -func newLogOptions(apiOpts *v1.PodLogOptions, now time.Time) *logOptions { - opts := &logOptions{ - tail: -1, // -1 by default which means read all logs. - bytes: -1, // -1 by default which means read all logs. - follow: apiOpts.Follow, - timestamp: apiOpts.Timestamps, - } - if apiOpts.TailLines != nil { - opts.tail = *apiOpts.TailLines - } - if apiOpts.LimitBytes != nil { - opts.bytes = *apiOpts.LimitBytes - } - if apiOpts.SinceSeconds != nil { - opts.since = now.Add(-time.Duration(*apiOpts.SinceSeconds) * time.Second) - } - if apiOpts.SinceTime != nil && apiOpts.SinceTime.After(opts.since) { - opts.since = apiOpts.SinceTime.Time - } - return opts -} - // ReadLogs read the container log and redirect into stdout and stderr. // Note that containerID is only needed when following the log, or else // just pass in empty string "". func (m *kubeGenericRuntimeManager) ReadLogs(path, containerID string, apiOpts *v1.PodLogOptions, stdout, stderr io.Writer) error { - f, err := os.Open(path) - if err != nil { - return fmt.Errorf("failed to open log file %q: %v", path, err) - } - defer f.Close() - // Convert v1.PodLogOptions into internal log options. - opts := newLogOptions(apiOpts, time.Now()) - - // Search start point based on tail line. - start, err := tail.FindTailLineStartIndex(f, opts.tail) - if err != nil { - return fmt.Errorf("failed to tail %d lines of log file %q: %v", opts.tail, path, err) - } - if _, err := f.Seek(start, os.SEEK_SET); err != nil { - return fmt.Errorf("failed to seek %d in log file %q: %v", start, path, err) - } - - // Start parsing the logs. - r := bufio.NewReader(f) - // Do not create watcher here because it is not needed if `Follow` is false. - var watcher *fsnotify.Watcher - var parse parseFunc - writer := newLogWriter(stdout, stderr, opts) - msg := &logMessage{} - for { - l, err := r.ReadBytes(eol[0]) - if err != nil { - if err != io.EOF { // This is an real error - return fmt.Errorf("failed to read log file %q: %v", path, err) - } - if !opts.follow { - // Return directly when reading to the end if not follow. - if len(l) > 0 { - glog.Warningf("Incomplete line in log file %q: %q", path, l) - } - glog.V(2).Infof("Finish parsing log file %q", path) - return nil - } - // Reset seek so that if this is an incomplete line, - // it will be read again. - if _, err := f.Seek(-int64(len(l)), os.SEEK_CUR); err != nil { - return fmt.Errorf("failed to reset seek in log file %q: %v", path, err) - } - if watcher == nil { - // Intialize the watcher if it has not been initialized yet. - if watcher, err = fsnotify.NewWatcher(); err != nil { - return fmt.Errorf("failed to create fsnotify watcher: %v", err) - } - defer watcher.Close() - if err := watcher.Add(f.Name()); err != nil { - return fmt.Errorf("failed to watch file %q: %v", f.Name(), err) - } - } - // Wait until the next log change. - if found, err := m.waitLogs(containerID, watcher); !found { - return err - } - continue - } - if parse == nil { - // Intialize the log parsing function. - parse, err = getParseFunc(l) - if err != nil { - return fmt.Errorf("failed to get parse function: %v", err) - } - } - // Parse the log line. - msg.reset() - if err := parse(l, msg); err != nil { - glog.Errorf("Failed with err %v when parsing log for log file %q: %q", err, path, l) - continue - } - // Write the log line into the stream. - if err := writer.write(msg); err != nil { - if err == errMaximumWrite { - glog.V(2).Infof("Finish parsing log file %q, hit bytes limit %d(bytes)", path, opts.bytes) - return nil - } - glog.Errorf("Failed with err %v when writing log for log file %q: %+v", err, path, msg) - return err - } - } -} - -// waitLogs wait for the next log write. It returns a boolean and an error. The boolean -// indicates whether a new log is found; the error is error happens during waiting new logs. -func (m *kubeGenericRuntimeManager) waitLogs(id string, w *fsnotify.Watcher) (bool, error) { - errRetry := 5 - for { - select { - case e := <-w.Events: - switch e.Op { - case fsnotify.Write: - return true, nil - default: - glog.Errorf("Unexpected fsnotify event: %v, retrying...", e) - } - case err := <-w.Errors: - glog.Errorf("Fsnotify watch error: %v, %d error retries remaining", err, errRetry) - if errRetry == 0 { - return false, err - } - errRetry-- - case <-time.After(stateCheckPeriod): - s, err := m.runtimeService.ContainerStatus(id) - if err != nil { - return false, err - } - // Only keep following container log when it is running. - if s.State != runtimeapi.ContainerState_CONTAINER_RUNNING { - glog.Errorf("Container %q is not running (state=%q)", id, s.State) - // Do not return error because it's normal that the container stops - // during waiting. - return false, nil - } - } - } -} - -// parseFunc is a function parsing one log line to the internal log type. -// Notice that the caller must make sure logMessage is not nil. -type parseFunc func([]byte, *logMessage) error - -var parseFuncs []parseFunc = []parseFunc{ - parseCRILog, // CRI log format parse function - parseDockerJSONLog, // Docker JSON log format parse function -} - -// parseCRILog parses logs in CRI log format. CRI Log format example: -// 2016-10-06T00:17:09.669794202Z stdout log content 1 -// 2016-10-06T00:17:09.669794203Z stderr log content 2 -func parseCRILog(log []byte, msg *logMessage) error { - var err error - // Parse timestamp - idx := bytes.Index(log, delimiter) - if idx < 0 { - return fmt.Errorf("timestamp is not found") - } - msg.timestamp, err = time.Parse(timeFormat, string(log[:idx])) - if err != nil { - return fmt.Errorf("unexpected timestamp format %q: %v", timeFormat, err) - } - - // Parse stream type - log = log[idx+1:] - idx = bytes.Index(log, delimiter) - if idx < 0 { - return fmt.Errorf("stream type is not found") - } - msg.stream = streamType(log[:idx]) - if msg.stream != stdoutType && msg.stream != stderrType { - return fmt.Errorf("unexpected stream type %q", msg.stream) - } - - // Get log content - msg.log = log[idx+1:] - - return nil -} - -// parseDockerJSONLog parses logs in Docker JSON log format. Docker JSON log format -// example: -// {"log":"content 1","stream":"stdout","time":"2016-10-20T18:39:20.57606443Z"} -// {"log":"content 2","stream":"stderr","time":"2016-10-20T18:39:20.57606444Z"} -func parseDockerJSONLog(log []byte, msg *logMessage) error { - var l = &jsonlog.JSONLog{} - l.Reset() - - // TODO: JSON decoding is fairly expensive, we should evaluate this. - if err := json.Unmarshal(log, l); err != nil { - return fmt.Errorf("failed with %v to unmarshal log %q", err, l) - } - msg.timestamp = l.Created - msg.stream = streamType(l.Stream) - msg.log = []byte(l.Log) - return nil -} - -// getParseFunc returns proper parse function based on the sample log line passed in. -func getParseFunc(log []byte) (parseFunc, error) { - for _, p := range parseFuncs { - if err := p(log, &logMessage{}); err == nil { - return p, nil - } - } - return nil, fmt.Errorf("unsupported log format: %q", log) -} - -// logWriter controls the writing into the stream based on the log options. -type logWriter struct { - stdout io.Writer - stderr io.Writer - opts *logOptions - remain int64 -} - -// errMaximumWrite is returned when all bytes have been written. -var errMaximumWrite = errors.New("maximum write") - -// errShortWrite is returned when the message is not fully written. -var errShortWrite = errors.New("short write") - -func newLogWriter(stdout io.Writer, stderr io.Writer, opts *logOptions) *logWriter { - w := &logWriter{ - stdout: stdout, - stderr: stderr, - opts: opts, - remain: math.MaxInt64, // initialize it as infinity - } - if opts.bytes >= 0 { - w.remain = opts.bytes - } - return w -} + opts := logs.NewLogOptions(apiOpts, time.Now()) -// writeLogs writes logs into stdout, stderr. -func (w *logWriter) write(msg *logMessage) error { - if msg.timestamp.Before(w.opts.since) { - // Skip the line because it's older than since - return nil - } - line := msg.log - if w.opts.timestamp { - prefix := append([]byte(msg.timestamp.Format(timeFormat)), delimiter[0]) - line = append(prefix, line...) - } - // If the line is longer than the remaining bytes, cut it. - if int64(len(line)) > w.remain { - line = line[:w.remain] - } - // Get the proper stream to write to. - var stream io.Writer - switch msg.stream { - case stdoutType: - stream = w.stdout - case stderrType: - stream = w.stderr - default: - return fmt.Errorf("unexpected stream type %q", msg.stream) - } - n, err := stream.Write(line) - w.remain -= int64(n) - if err != nil { - return err - } - // If the line has not been fully written, return errShortWrite - if n < len(line) { - return errShortWrite - } - // If there are no more bytes left, return errMaximumWrite - if w.remain <= 0 { - return errMaximumWrite - } - return nil + return logs.ReadLogs(path, containerID, opts, m.runtimeService, stdout, stderr) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_manager.go index 7f936d387..06d91b754 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_manager.go @@ -32,7 +32,7 @@ import ( "k8s.io/client-go/tools/record" ref "k8s.io/client-go/tools/reference" "k8s.io/client-go/util/flowcontrol" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/credentialprovider" internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" @@ -113,6 +113,9 @@ type kubeGenericRuntimeManager struct { // Internal lifecycle event handlers for container resource management. internalLifecycle cm.InternalContainerLifecycle + + // A shim to legacy functions for backward compatibility. + legacyLogProvider LegacyLogProvider } type KubeGenericRuntime interface { @@ -121,6 +124,12 @@ type KubeGenericRuntime interface { kubecontainer.ContainerCommandRunner } +// LegacyLogProvider gives the ability to use unsupported docker log drivers (e.g. journald) +type LegacyLogProvider interface { + // Get the last few lines of the logs for a specific container. + GetContainerLogTail(uid kubetypes.UID, name, namespace string, containerID kubecontainer.ContainerID) (string, error) +} + // NewKubeGenericRuntimeManager creates a new kubeGenericRuntimeManager func NewKubeGenericRuntimeManager( recorder record.EventRecorder, @@ -140,6 +149,7 @@ func NewKubeGenericRuntimeManager( runtimeService internalapi.RuntimeService, imageService internalapi.ImageManagerService, internalLifecycle cm.InternalContainerLifecycle, + legacyLogProvider LegacyLogProvider, ) (KubeGenericRuntime, error) { kubeRuntimeManager := &kubeGenericRuntimeManager{ recorder: recorder, @@ -154,6 +164,7 @@ func NewKubeGenericRuntimeManager( imageService: newInstrumentedImageManagerService(imageService), keyring: credentialprovider.NewDockerKeyring(), internalLifecycle: internalLifecycle, + legacyLogProvider: legacyLogProvider, } typedVersion, err := kubeRuntimeManager.runtimeService.Version(kubeRuntimeAPIVersion) @@ -212,7 +223,10 @@ func (m *kubeGenericRuntimeManager) Type() string { } func newRuntimeVersion(version string) (*utilversion.Version, error) { - return utilversion.ParseSemantic(version) + if ver, err := utilversion.ParseSemantic(version); err == nil { + return ver, err + } + return utilversion.ParseGeneric(version) } func (m *kubeGenericRuntimeManager) getTypedVersion() (*runtimeapi.VersionResponse, error) { @@ -556,7 +570,7 @@ func (m *kubeGenericRuntimeManager) SyncPod(pod *v1.Pod, _ v1.PodStatus, podStat podContainerChanges := m.computePodActions(pod, podStatus) glog.V(3).Infof("computePodActions got %+v for pod %q", podContainerChanges, format.Pod(pod)) if podContainerChanges.CreateSandbox { - ref, err := ref.GetReference(api.Scheme, pod) + ref, err := ref.GetReference(legacyscheme.Scheme, pod) if err != nil { glog.Errorf("Couldn't make a ref to pod %q: '%v'", format.Pod(pod), err) } @@ -631,7 +645,7 @@ func (m *kubeGenericRuntimeManager) SyncPod(pod *v1.Pod, _ v1.PodStatus, podStat if err != nil { createSandboxResult.Fail(kubecontainer.ErrCreatePodSandbox, msg) glog.Errorf("createPodSandbox for pod %q failed: %v", format.Pod(pod), err) - ref, err := ref.GetReference(api.Scheme, pod) + ref, err := ref.GetReference(legacyscheme.Scheme, pod) if err != nil { glog.Errorf("Couldn't make a ref to pod %q: '%v'", format.Pod(pod), err) } @@ -642,7 +656,7 @@ func (m *kubeGenericRuntimeManager) SyncPod(pod *v1.Pod, _ v1.PodStatus, podStat podSandboxStatus, err := m.runtimeService.PodSandboxStatus(podSandboxID) if err != nil { - ref, err := ref.GetReference(api.Scheme, pod) + ref, err := ref.GetReference(legacyscheme.Scheme, pod) if err != nil { glog.Errorf("Couldn't make a ref to pod %q: '%v'", format.Pod(pod), err) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go index 670181b31..a66cd2a2e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go @@ -74,14 +74,16 @@ func (m *kubeGenericRuntimeManager) generatePodSandboxConfig(pod *v1.Pod, attemp Annotations: newPodAnnotations(pod), } - dnsServers, dnsSearches, useClusterFirstPolicy, err := m.runtimeHelper.GetClusterDNS(pod) + dnsServers, dnsSearches, dnsOptions, useClusterFirstPolicy, err := m.runtimeHelper.GetClusterDNS(pod) if err != nil { return nil, err } podSandboxConfig.DnsConfig = &runtimeapi.DNSConfig{ Servers: dnsServers, Searches: dnsSearches, + Options: dnsOptions, } + if useClusterFirstPolicy { podSandboxConfig.DnsConfig.Options = defaultDNSOptions } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/BUILD new file mode 100644 index 000000000..a7f945995 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/BUILD @@ -0,0 +1,43 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = ["logs.go"], + importpath = "k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs", + visibility = ["//visibility:public"], + deps = [ + "//pkg/kubelet/apis/cri:go_default_library", + "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", + "//pkg/util/tail:go_default_library", + "//vendor/github.com/docker/docker/pkg/jsonlog:go_default_library", + "//vendor/github.com/fsnotify/fsnotify:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["logs_test.go"], + importpath = "k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs", + library = ":go_default_library", + deps = [ + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1: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/kubernetes/pkg/kubelet/kuberuntime/logs/logs.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/logs.go new file mode 100644 index 000000000..45f1d4347 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/logs.go @@ -0,0 +1,375 @@ +/* +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 logs + +import ( + "bufio" + "bytes" + "encoding/json" + "errors" + "fmt" + "io" + "math" + "os" + "time" + + "github.com/docker/docker/pkg/jsonlog" + "github.com/fsnotify/fsnotify" + "github.com/golang/glog" + + "k8s.io/api/core/v1" + internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" + "k8s.io/kubernetes/pkg/util/tail" +) + +// Notice that the current CRI logs implementation doesn't handle +// log rotation. +// * It will not retrieve logs in rotated log file. +// * If log rotation happens when following the log: +// * If the rotation is using create mode, we'll still follow the old file. +// * If the rotation is using copytruncate, we'll be reading at the original position and get nothing. +// TODO(random-liu): Support log rotation. + +// streamType is the type of the stream. +type streamType string + +const ( + stderrType streamType = "stderr" + stdoutType streamType = "stdout" + + // timeFormat is the time format used in the log. + timeFormat = time.RFC3339Nano + // blockSize is the block size used in tail. + blockSize = 1024 + + // stateCheckPeriod is the period to check container state while following + // the container log. Kubelet should not keep following the log when the + // container is not running. + stateCheckPeriod = 5 * time.Second +) + +var ( + // eol is the end-of-line sign in the log. + eol = []byte{'\n'} + // delimiter is the delimiter for timestamp and streamtype in log line. + delimiter = []byte{' '} +) + +// logMessage is the CRI internal log type. +type logMessage struct { + timestamp time.Time + stream streamType + log []byte +} + +// reset resets the log to nil. +func (l *logMessage) reset() { + l.timestamp = time.Time{} + l.stream = "" + l.log = nil +} + +// LogOptions is the CRI internal type of all log options. +type LogOptions struct { + tail int64 + bytes int64 + since time.Time + follow bool + timestamp bool +} + +// NewLogOptions convert the v1.PodLogOptions to CRI internal LogOptions. +func NewLogOptions(apiOpts *v1.PodLogOptions, now time.Time) *LogOptions { + opts := &LogOptions{ + tail: -1, // -1 by default which means read all logs. + bytes: -1, // -1 by default which means read all logs. + follow: apiOpts.Follow, + timestamp: apiOpts.Timestamps, + } + if apiOpts.TailLines != nil { + opts.tail = *apiOpts.TailLines + } + if apiOpts.LimitBytes != nil { + opts.bytes = *apiOpts.LimitBytes + } + if apiOpts.SinceSeconds != nil { + opts.since = now.Add(-time.Duration(*apiOpts.SinceSeconds) * time.Second) + } + if apiOpts.SinceTime != nil && apiOpts.SinceTime.After(opts.since) { + opts.since = apiOpts.SinceTime.Time + } + return opts +} + +// parseFunc is a function parsing one log line to the internal log type. +// Notice that the caller must make sure logMessage is not nil. +type parseFunc func([]byte, *logMessage) error + +var parseFuncs = []parseFunc{ + parseCRILog, // CRI log format parse function + parseDockerJSONLog, // Docker JSON log format parse function +} + +// parseCRILog parses logs in CRI log format. CRI Log format example: +// 2016-10-06T00:17:09.669794202Z stdout log content 1 +// 2016-10-06T00:17:09.669794203Z stderr log content 2 +func parseCRILog(log []byte, msg *logMessage) error { + var err error + // Parse timestamp + idx := bytes.Index(log, delimiter) + if idx < 0 { + return fmt.Errorf("timestamp is not found") + } + msg.timestamp, err = time.Parse(timeFormat, string(log[:idx])) + if err != nil { + return fmt.Errorf("unexpected timestamp format %q: %v", timeFormat, err) + } + + // Parse stream type + log = log[idx+1:] + idx = bytes.Index(log, delimiter) + if idx < 0 { + return fmt.Errorf("stream type is not found") + } + msg.stream = streamType(log[:idx]) + if msg.stream != stdoutType && msg.stream != stderrType { + return fmt.Errorf("unexpected stream type %q", msg.stream) + } + + // Get log content + msg.log = log[idx+1:] + + return nil +} + +// parseDockerJSONLog parses logs in Docker JSON log format. Docker JSON log format +// example: +// {"log":"content 1","stream":"stdout","time":"2016-10-20T18:39:20.57606443Z"} +// {"log":"content 2","stream":"stderr","time":"2016-10-20T18:39:20.57606444Z"} +func parseDockerJSONLog(log []byte, msg *logMessage) error { + var l = &jsonlog.JSONLog{} + l.Reset() + + // TODO: JSON decoding is fairly expensive, we should evaluate this. + if err := json.Unmarshal(log, l); err != nil { + return fmt.Errorf("failed with %v to unmarshal log %q", err, l) + } + msg.timestamp = l.Created + msg.stream = streamType(l.Stream) + msg.log = []byte(l.Log) + return nil +} + +// getParseFunc returns proper parse function based on the sample log line passed in. +func getParseFunc(log []byte) (parseFunc, error) { + for _, p := range parseFuncs { + if err := p(log, &logMessage{}); err == nil { + return p, nil + } + } + return nil, fmt.Errorf("unsupported log format: %q", log) +} + +// logWriter controls the writing into the stream based on the log options. +type logWriter struct { + stdout io.Writer + stderr io.Writer + opts *LogOptions + remain int64 +} + +// errMaximumWrite is returned when all bytes have been written. +var errMaximumWrite = errors.New("maximum write") + +// errShortWrite is returned when the message is not fully written. +var errShortWrite = errors.New("short write") + +func newLogWriter(stdout io.Writer, stderr io.Writer, opts *LogOptions) *logWriter { + w := &logWriter{ + stdout: stdout, + stderr: stderr, + opts: opts, + remain: math.MaxInt64, // initialize it as infinity + } + if opts.bytes >= 0 { + w.remain = opts.bytes + } + return w +} + +// writeLogs writes logs into stdout, stderr. +func (w *logWriter) write(msg *logMessage) error { + if msg.timestamp.Before(w.opts.since) { + // Skip the line because it's older than since + return nil + } + line := msg.log + if w.opts.timestamp { + prefix := append([]byte(msg.timestamp.Format(timeFormat)), delimiter[0]) + line = append(prefix, line...) + } + // If the line is longer than the remaining bytes, cut it. + if int64(len(line)) > w.remain { + line = line[:w.remain] + } + // Get the proper stream to write to. + var stream io.Writer + switch msg.stream { + case stdoutType: + stream = w.stdout + case stderrType: + stream = w.stderr + default: + return fmt.Errorf("unexpected stream type %q", msg.stream) + } + n, err := stream.Write(line) + w.remain -= int64(n) + if err != nil { + return err + } + // If the line has not been fully written, return errShortWrite + if n < len(line) { + return errShortWrite + } + // If there are no more bytes left, return errMaximumWrite + if w.remain <= 0 { + return errMaximumWrite + } + return nil +} + +// ReadLogs read the container log and redirect into stdout and stderr. +// Note that containerID is only needed when following the log, or else +// just pass in empty string "". +func ReadLogs(path, containerID string, opts *LogOptions, runtimeService internalapi.RuntimeService, stdout, stderr io.Writer) error { + f, err := os.Open(path) + if err != nil { + return fmt.Errorf("failed to open log file %q: %v", path, err) + } + defer f.Close() + + // Search start point based on tail line. + start, err := tail.FindTailLineStartIndex(f, opts.tail) + if err != nil { + return fmt.Errorf("failed to tail %d lines of log file %q: %v", opts.tail, path, err) + } + if _, err := f.Seek(start, os.SEEK_SET); err != nil { + return fmt.Errorf("failed to seek %d in log file %q: %v", start, path, err) + } + + // Start parsing the logs. + r := bufio.NewReader(f) + // Do not create watcher here because it is not needed if `Follow` is false. + var watcher *fsnotify.Watcher + var parse parseFunc + writer := newLogWriter(stdout, stderr, opts) + msg := &logMessage{} + for { + l, err := r.ReadBytes(eol[0]) + if err != nil { + if err != io.EOF { // This is an real error + return fmt.Errorf("failed to read log file %q: %v", path, err) + } + if !opts.follow { + // Return directly when reading to the end if not follow. + if len(l) > 0 { + glog.Warningf("Incomplete line in log file %q: %q", path, l) + } + glog.V(2).Infof("Finish parsing log file %q", path) + return nil + } + // Reset seek so that if this is an incomplete line, + // it will be read again. + if _, err := f.Seek(-int64(len(l)), os.SEEK_CUR); err != nil { + return fmt.Errorf("failed to reset seek in log file %q: %v", path, err) + } + if watcher == nil { + // Intialize the watcher if it has not been initialized yet. + if watcher, err = fsnotify.NewWatcher(); err != nil { + return fmt.Errorf("failed to create fsnotify watcher: %v", err) + } + defer watcher.Close() + if err := watcher.Add(f.Name()); err != nil { + return fmt.Errorf("failed to watch file %q: %v", f.Name(), err) + } + } + // Wait until the next log change. + if found, err := waitLogs(containerID, watcher, runtimeService); !found { + return err + } + continue + } + if parse == nil { + // Intialize the log parsing function. + parse, err = getParseFunc(l) + if err != nil { + return fmt.Errorf("failed to get parse function: %v", err) + } + } + // Parse the log line. + msg.reset() + if err := parse(l, msg); err != nil { + glog.Errorf("Failed with err %v when parsing log for log file %q: %q", err, path, l) + continue + } + // Write the log line into the stream. + if err := writer.write(msg); err != nil { + if err == errMaximumWrite { + glog.V(2).Infof("Finish parsing log file %q, hit bytes limit %d(bytes)", path, opts.bytes) + return nil + } + glog.Errorf("Failed with err %v when writing log for log file %q: %+v", err, path, msg) + return err + } + } +} + +// waitLogs wait for the next log write. It returns a boolean and an error. The boolean +// indicates whether a new log is found; the error is error happens during waiting new logs. +func waitLogs(id string, w *fsnotify.Watcher, runtimeService internalapi.RuntimeService) (bool, error) { + errRetry := 5 + for { + select { + case e := <-w.Events: + switch e.Op { + case fsnotify.Write: + return true, nil + default: + glog.Errorf("Unexpected fsnotify event: %v, retrying...", e) + } + case err := <-w.Errors: + glog.Errorf("Fsnotify watch error: %v, %d error retries remaining", err, errRetry) + if errRetry == 0 { + return false, err + } + errRetry-- + case <-time.After(stateCheckPeriod): + s, err := runtimeService.ContainerStatus(id) + if err != nil { + return false, err + } + // Only keep following container log when it is running. + if s.State != runtimeapi.ContainerState_CONTAINER_RUNNING { + glog.Errorf("Container %q is not running (state=%q)", id, s.State) + // Do not return error because it's normal that the container stops + // during waiting. + return false, nil + } + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_logs_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/logs_test.go similarity index 91% rename from vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_logs_test.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/logs_test.go index 19e2cdb2f..5c4eaae9b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_logs_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs/logs_test.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +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. @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package kuberuntime +package logs import ( "bytes" @@ -36,31 +36,31 @@ func TestLogOptions(t *testing.T) { ) for c, test := range []struct { apiOpts *v1.PodLogOptions - expect *logOptions + expect *LogOptions }{ { // empty options apiOpts: &v1.PodLogOptions{}, - expect: &logOptions{tail: -1, bytes: -1}, + expect: &LogOptions{tail: -1, bytes: -1}, }, { // test tail lines apiOpts: &v1.PodLogOptions{TailLines: &line}, - expect: &logOptions{tail: line, bytes: -1}, + expect: &LogOptions{tail: line, bytes: -1}, }, { // test limit bytes apiOpts: &v1.PodLogOptions{LimitBytes: &bytes}, - expect: &logOptions{tail: -1, bytes: bytes}, + expect: &LogOptions{tail: -1, bytes: bytes}, }, { // test since timestamp apiOpts: &v1.PodLogOptions{SinceTime: ×tamp}, - expect: &logOptions{tail: -1, bytes: -1, since: timestamp.Time}, + expect: &LogOptions{tail: -1, bytes: -1, since: timestamp.Time}, }, { // test since seconds apiOpts: &v1.PodLogOptions{SinceSeconds: &sinceseconds}, - expect: &logOptions{tail: -1, bytes: -1, since: timestamp.Add(-10 * time.Second)}, + expect: &LogOptions{tail: -1, bytes: -1, since: timestamp.Add(-10 * time.Second)}, }, } { t.Logf("TestCase #%d: %+v", c, test) - opts := newLogOptions(test.apiOpts, timestamp.Time) + opts := NewLogOptions(test.apiOpts, timestamp.Time) assert.Equal(t, test.expect, opts) } } @@ -162,7 +162,7 @@ func TestWriteLogs(t *testing.T) { } stdoutBuf := bytes.NewBuffer(nil) stderrBuf := bytes.NewBuffer(nil) - w := newLogWriter(stdoutBuf, stderrBuf, &logOptions{since: test.since, timestamp: test.timestamp, bytes: -1}) + w := newLogWriter(stdoutBuf, stderrBuf, &LogOptions{since: test.since, timestamp: test.timestamp, bytes: -1}) err := w.write(msg) assert.NoError(t, err) assert.Equal(t, test.expectStdout, stdoutBuf.String()) @@ -224,7 +224,7 @@ func TestWriteLogsWithBytesLimit(t *testing.T) { } stdoutBuf := bytes.NewBuffer(nil) stderrBuf := bytes.NewBuffer(nil) - w := newLogWriter(stdoutBuf, stderrBuf, &logOptions{timestamp: test.timestamp, bytes: int64(test.bytes)}) + w := newLogWriter(stdoutBuf, stderrBuf, &LogOptions{timestamp: test.timestamp, bytes: int64(test.bytes)}) for i := 0; i < test.stdoutLines; i++ { msg.stream = stdoutType if err := w.write(msg); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/lifecycle/predicate.go b/vendor/k8s.io/kubernetes/pkg/kubelet/lifecycle/predicate.go index 75c7663dc..9b8ad4d3c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/lifecycle/predicate.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/lifecycle/predicate.go @@ -29,6 +29,8 @@ import ( type getNodeAnyWayFuncType func() (*v1.Node, error) +type pluginResourceUpdateFuncType func(*schedulercache.NodeInfo, *PodAdmitAttributes) error + // AdmissionFailureHandler is an interface which defines how to deal with a failure to admit a pod. // This allows for the graceful handling of pod admission failure. type AdmissionFailureHandler interface { @@ -36,15 +38,17 @@ type AdmissionFailureHandler interface { } type predicateAdmitHandler struct { - getNodeAnyWayFunc getNodeAnyWayFuncType - admissionFailureHandler AdmissionFailureHandler + getNodeAnyWayFunc getNodeAnyWayFuncType + pluginResourceUpdateFunc pluginResourceUpdateFuncType + admissionFailureHandler AdmissionFailureHandler } var _ PodAdmitHandler = &predicateAdmitHandler{} -func NewPredicateAdmitHandler(getNodeAnyWayFunc getNodeAnyWayFuncType, admissionFailureHandler AdmissionFailureHandler) *predicateAdmitHandler { +func NewPredicateAdmitHandler(getNodeAnyWayFunc getNodeAnyWayFuncType, admissionFailureHandler AdmissionFailureHandler, pluginResourceUpdateFunc pluginResourceUpdateFuncType) *predicateAdmitHandler { return &predicateAdmitHandler{ getNodeAnyWayFunc, + pluginResourceUpdateFunc, admissionFailureHandler, } } @@ -63,6 +67,16 @@ func (w *predicateAdmitHandler) Admit(attrs *PodAdmitAttributes) PodAdmitResult pods := attrs.OtherPods nodeInfo := schedulercache.NewNodeInfo(pods...) nodeInfo.SetNode(node) + // ensure the node has enough plugin resources for that required in pods + if err = w.pluginResourceUpdateFunc(nodeInfo, attrs); err != nil { + message := fmt.Sprintf("Update plugin resources failed due to %v, which is unexpected.", err) + glog.Warningf("Failed to admit pod %v - %s", format.Pod(pod), message) + return PodAdmitResult{ + Admit: false, + Reason: "UnexpectedAdmissionError", + Message: message, + } + } fit, reasons, err := predicates.GeneralPredicates(pod, nil, nodeInfo) if err != nil { message := fmt.Sprintf("GeneralPredicates failed due to %v, which is unexpected.", err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/BUILD new file mode 100644 index 000000000..d21981739 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/BUILD @@ -0,0 +1,45 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = ["mount_pod.go"], + importpath = "k8s.io/kubernetes/pkg/kubelet/mountpod", + visibility = ["//visibility:public"], + deps = [ + "//pkg/kubelet/config:go_default_library", + "//pkg/kubelet/pod:go_default_library", + "//pkg/util/strings:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["mount_pod_test.go"], + importpath = "k8s.io/kubernetes/pkg/kubelet/mountpod", + library = ":go_default_library", + deps = [ + "//pkg/kubelet/configmap:go_default_library", + "//pkg/kubelet/pod:go_default_library", + "//pkg/kubelet/pod/testing:go_default_library", + "//pkg/kubelet/secret:go_default_library", + "//vendor/github.com/golang/glog: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/client-go/util/testing: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/kubernetes/pkg/kubelet/mountpod/mount_pod.go b/vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/mount_pod.go new file mode 100644 index 000000000..6c7afda48 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/mount_pod.go @@ -0,0 +1,120 @@ +/* +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 mountpod + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "os" + "path" + + "k8s.io/api/core/v1" + "k8s.io/kubernetes/pkg/kubelet/config" + kubepod "k8s.io/kubernetes/pkg/kubelet/pod" + "k8s.io/kubernetes/pkg/util/strings" +) + +// Manager is an interface that tracks pods with mount utilities for individual +// volume plugins. +type Manager interface { + GetMountPod(pluginName string) (pod *v1.Pod, container string, err error) +} + +// basicManager is simple implementation of Manager. Pods with mount utilities +// are registered by placing a JSON file into +// /var/lib/kubelet/plugin-containers/.json and this manager just +// finds them there. +type basicManager struct { + registrationDirectory string + podManager kubepod.Manager +} + +// volumePluginRegistration specified format of the json files placed in +// /var/lib/kubelet/plugin-containers/ +type volumePluginRegistration struct { + PodName string `json:"podName"` + PodNamespace string `json:"podNamespace"` + PodUID string `json:"podUID"` + ContainerName string `json:"containerName"` +} + +// NewManager returns a new mount pod manager. +func NewManager(rootDirectory string, podManager kubepod.Manager) (Manager, error) { + regPath := path.Join(rootDirectory, config.DefaultKubeletPluginContainersDirName) + + // Create the directory on startup + os.MkdirAll(regPath, 0700) + + return &basicManager{ + registrationDirectory: regPath, + podManager: podManager, + }, nil +} + +func (m *basicManager) getVolumePluginRegistrationPath(pluginName string) string { + // sanitize plugin name so it does not escape directory + safePluginName := strings.EscapePluginName(pluginName) + ".json" + return path.Join(m.registrationDirectory, safePluginName) +} + +func (m *basicManager) GetMountPod(pluginName string) (pod *v1.Pod, containerName string, err error) { + // Read /var/lib/kubelet/plugin-containers/.json + regPath := m.getVolumePluginRegistrationPath(pluginName) + regBytes, err := ioutil.ReadFile(regPath) + if err != nil { + if os.IsNotExist(err) { + // No pod is registered for this plugin + return nil, "", nil + } + return nil, "", fmt.Errorf("cannot read %s: %v", regPath, err) + } + + // Parse json + var reg volumePluginRegistration + if err := json.Unmarshal(regBytes, ®); err != nil { + return nil, "", fmt.Errorf("unable to parse %s: %s", regPath, err) + } + if len(reg.ContainerName) == 0 { + return nil, "", fmt.Errorf("unable to parse %s: \"containerName\" is not set", regPath) + } + if len(reg.PodUID) == 0 { + return nil, "", fmt.Errorf("unable to parse %s: \"podUID\" is not set", regPath) + } + if len(reg.PodNamespace) == 0 { + return nil, "", fmt.Errorf("unable to parse %s: \"podNamespace\" is not set", regPath) + } + if len(reg.PodName) == 0 { + return nil, "", fmt.Errorf("unable to parse %s: \"podName\" is not set", regPath) + } + + pod, ok := m.podManager.GetPodByName(reg.PodNamespace, reg.PodName) + if !ok { + return nil, "", fmt.Errorf("unable to process %s: pod %s/%s not found", regPath, reg.PodNamespace, reg.PodName) + } + if string(pod.UID) != reg.PodUID { + return nil, "", fmt.Errorf("unable to process %s: pod %s/%s has unexpected UID", regPath, reg.PodNamespace, reg.PodName) + } + // make sure that reg.ContainerName exists in the pod + for i := range pod.Spec.Containers { + if pod.Spec.Containers[i].Name == reg.ContainerName { + return pod, reg.ContainerName, nil + } + } + return nil, "", fmt.Errorf("unable to process %s: pod %s/%s has no container named %q", regPath, reg.PodNamespace, reg.PodName, reg.ContainerName) + +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/mount_pod_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/mount_pod_test.go new file mode 100644 index 000000000..3f84739ff --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/mountpod/mount_pod_test.go @@ -0,0 +1,160 @@ +/* +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 mountpod + +import ( + "io/ioutil" + "os" + "path" + "testing" + + "github.com/golang/glog" + + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utiltesting "k8s.io/client-go/util/testing" + "k8s.io/kubernetes/pkg/kubelet/configmap" + kubepod "k8s.io/kubernetes/pkg/kubelet/pod" + podtest "k8s.io/kubernetes/pkg/kubelet/pod/testing" + "k8s.io/kubernetes/pkg/kubelet/secret" +) + +func TestGetVolumeExec(t *testing.T) { + // prepare PodManager + pods := []*v1.Pod{ + { + ObjectMeta: metav1.ObjectMeta{ + UID: "12345678", + Name: "foo", + Namespace: "bar", + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + {Name: "baz"}, + }, + }, + }, + } + fakeSecretManager := secret.NewFakeManager() + fakeConfigMapManager := configmap.NewFakeManager() + podManager := kubepod.NewBasicPodManager( + podtest.NewFakeMirrorClient(), fakeSecretManager, fakeConfigMapManager) + podManager.SetPods(pods) + + // Prepare fake /var/lib/kubelet + basePath, err := utiltesting.MkTmpdir("kubelet") + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(basePath) + regPath := path.Join(basePath, "plugin-containers") + + mgr, err := NewManager(basePath, podManager) + if err != nil { + t.Fatal(err) + } + + tests := []struct { + name string + json string + expectError bool + }{ + { + "invalid json", + "{{{}", + true, + }, + { + "missing json", + "", // this means no json file should be created + false, + }, + { + "missing podNamespace", + `{"podName": "foo", "podUID": "87654321", "containerName": "baz"}`, + true, + }, + { + "missing podName", + `{"podNamespace": "bar", "podUID": "87654321", "containerName": "baz"}`, + true, + }, + { + "missing containerName", + `{"podNamespace": "bar", "podName": "foo", "podUID": "87654321"}`, + true, + }, + { + "missing podUID", + `{"podNamespace": "bar", "podName": "foo", "containerName": "baz"}`, + true, + }, + { + "missing pod", + `{"podNamespace": "bar", "podName": "non-existing-pod", "podUID": "12345678", "containerName": "baz"}`, + true, + }, + { + "invalid uid", + `{"podNamespace": "bar", "podName": "foo", "podUID": "87654321", "containerName": "baz"}`, + true, + }, + { + "invalid container", + `{"podNamespace": "bar", "podName": "foo", "podUID": "12345678", "containerName": "invalid"}`, + true, + }, + { + "valid pod", + `{"podNamespace": "bar", "podName": "foo", "podUID": "12345678", "containerName": "baz"}`, + false, + }, + } + for _, test := range tests { + p := path.Join(regPath, "kubernetes.io~glusterfs.json") + if len(test.json) > 0 { + if err := ioutil.WriteFile(p, []byte(test.json), 0600); err != nil { + t.Errorf("test %q: error writing %s: %v", test.name, p, err) + continue + } + } else { + // "" means no JSON file + os.Remove(p) + } + pod, container, err := mgr.GetMountPod("kubernetes.io/glusterfs") + if err != nil { + glog.V(5).Infof("test %q returned error %s", test.name, err) + } + if err == nil && test.expectError { + t.Errorf("test %q: expected error, got none", test.name) + } + if err != nil && !test.expectError { + t.Errorf("test %q: unexpected error: %v", test.name, err) + } + + if err == nil { + // Pod must be returned when the json file was not empty + if pod == nil && len(test.json) != 0 { + t.Errorf("test %q: expected exec, got nil", test.name) + } + // Both pod and container must be returned + if pod != nil && len(container) == 0 { + t.Errorf("test %q: expected container name, got %q", test.name, container) + } + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/BUILD index 0ccb25e75..b91992366 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/BUILD @@ -8,7 +8,15 @@ load( go_library( name = "go_default_library", - srcs = ["cni.go"], + srcs = [ + "cni.go", + "cni_others.go", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "cni_windows.go", + ], + "//conditions:default": [], + }), importpath = "k8s.io/kubernetes/pkg/kubelet/network/cni", deps = [ "//pkg/kubelet/apis/kubeletconfig:go_default_library", @@ -18,7 +26,12 @@ go_library( "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/containernetworking/cni/pkg/types/020:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni.go index 0ae1edc80..540be4b70 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni.go @@ -153,37 +153,12 @@ func vendorCNIDir(prefix, pluginType string) string { return fmt.Sprintf(VendorCNIDirTemplate, prefix, pluginType) } -func getLoNetwork(binDir, vendorDirPrefix string) *cniNetwork { - loConfig, err := libcni.ConfListFromBytes([]byte(`{ - "cniVersion": "0.2.0", - "name": "cni-loopback", - "plugins":[{ - "type": "loopback" - }] -}`)) - if err != nil { - // The hardcoded config above should always be valid and unit tests will - // catch this - panic(err) - } - cninet := &libcni.CNIConfig{ - Path: []string{vendorCNIDir(vendorDirPrefix, "loopback"), binDir}, - } - loNetwork := &cniNetwork{ - name: "lo", - NetworkConfig: loConfig, - CNIConfig: cninet, - } - - return loNetwork -} - func (plugin *cniNetworkPlugin) Init(host network.Host, hairpinMode kubeletconfig.HairpinMode, nonMasqueradeCIDR string, mtu int) error { - var err error - plugin.nsenterPath, err = plugin.execer.LookPath("nsenter") + err := plugin.platformInit() if err != nil { return err } + plugin.host = host plugin.syncNetworkConfig() @@ -239,10 +214,12 @@ func (plugin *cniNetworkPlugin) SetUpPod(namespace string, name string, id kubec return fmt.Errorf("CNI failed to retrieve network namespace path: %v", err) } - _, err = plugin.addToNetwork(plugin.loNetwork, name, namespace, id, netnsPath) - if err != nil { - glog.Errorf("Error while adding to cni lo network: %s", err) - return err + // Windows doesn't have loNetwork. It comes only with Linux + if plugin.loNetwork != nil { + if _, err = plugin.addToNetwork(plugin.loNetwork, name, namespace, id, netnsPath); err != nil { + glog.Errorf("Error while adding to cni lo network: %s", err) + return err + } } _, err = plugin.addToNetwork(plugin.getDefaultNetwork(), name, namespace, id, netnsPath) @@ -268,25 +245,6 @@ func (plugin *cniNetworkPlugin) TearDownPod(namespace string, name string, id ku return plugin.deleteFromNetwork(plugin.getDefaultNetwork(), name, namespace, id, netnsPath) } -// TODO: Use the addToNetwork function to obtain the IP of the Pod. That will assume idempotent ADD call to the plugin. -// Also fix the runtime's call to Status function to be done only in the case that the IP is lost, no need to do periodic calls -func (plugin *cniNetworkPlugin) GetPodNetworkStatus(namespace string, name string, id kubecontainer.ContainerID) (*network.PodNetworkStatus, error) { - netnsPath, err := plugin.host.GetNetNS(id.ID) - if err != nil { - return nil, fmt.Errorf("CNI failed to retrieve network namespace path: %v", err) - } - if netnsPath == "" { - return nil, fmt.Errorf("Cannot find the network namespace, skipping pod network status for container %q", id) - } - - ip, err := network.GetPodIP(plugin.execer, plugin.nsenterPath, netnsPath, network.DefaultInterfaceName) - if err != nil { - return nil, err - } - - return &network.PodNetworkStatus{IP: ip}, nil -} - func (plugin *cniNetworkPlugin) addToNetwork(network *cniNetwork, podName string, podNamespace string, podSandboxID kubecontainer.ContainerID, podNetnsPath string) (cnitypes.Result, error) { rt, err := plugin.buildCNIRuntimeConf(podName, podNamespace, podSandboxID, podNetnsPath) if err != nil { @@ -324,7 +282,7 @@ func (plugin *cniNetworkPlugin) deleteFromNetwork(network *cniNetwork, podName s func (plugin *cniNetworkPlugin) buildCNIRuntimeConf(podName string, podNs string, podSandboxID kubecontainer.ContainerID, podNetnsPath string) (*libcni.RuntimeConf, error) { glog.V(4).Infof("Got netns path %v", podNetnsPath) - glog.V(4).Infof("Using netns path %v", podNs) + glog.V(4).Infof("Using podns path %v", podNs) rt := &libcni.RuntimeConf{ ContainerID: podSandboxID.ID, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni_others.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni_others.go new file mode 100644 index 000000000..735db9cc6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni_others.go @@ -0,0 +1,80 @@ +// +build !windows + +/* +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 cni + +import ( + "fmt" + + "github.com/containernetworking/cni/libcni" + kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" + "k8s.io/kubernetes/pkg/kubelet/network" +) + +func getLoNetwork(binDir, vendorDirPrefix string) *cniNetwork { + loConfig, err := libcni.ConfListFromBytes([]byte(`{ + "cniVersion": "0.2.0", + "name": "cni-loopback", + "plugins":[{ + "type": "loopback" + }] +}`)) + if err != nil { + // The hardcoded config above should always be valid and unit tests will + // catch this + panic(err) + } + cninet := &libcni.CNIConfig{ + Path: []string{vendorCNIDir(vendorDirPrefix, "loopback"), binDir}, + } + loNetwork := &cniNetwork{ + name: "lo", + NetworkConfig: loConfig, + CNIConfig: cninet, + } + + return loNetwork +} + +func (plugin *cniNetworkPlugin) platformInit() error { + var err error + plugin.nsenterPath, err = plugin.execer.LookPath("nsenter") + if err != nil { + return err + } + return nil +} + +// TODO: Use the addToNetwork function to obtain the IP of the Pod. That will assume idempotent ADD call to the plugin. +// Also fix the runtime's call to Status function to be done only in the case that the IP is lost, no need to do periodic calls +func (plugin *cniNetworkPlugin) GetPodNetworkStatus(namespace string, name string, id kubecontainer.ContainerID) (*network.PodNetworkStatus, error) { + netnsPath, err := plugin.host.GetNetNS(id.ID) + if err != nil { + return nil, fmt.Errorf("CNI failed to retrieve network namespace path: %v", err) + } + if netnsPath == "" { + return nil, fmt.Errorf("Cannot find the network namespace, skipping pod network status for container %q", id) + } + + ip, err := network.GetPodIP(plugin.execer, plugin.nsenterPath, netnsPath, network.DefaultInterfaceName) + if err != nil { + return nil, err + } + + return &network.PodNetworkStatus{IP: ip}, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni_windows.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni_windows.go new file mode 100644 index 000000000..9a0b17c8f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/cni/cni_windows.go @@ -0,0 +1,61 @@ +// +build windows + +/* +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 cni + +import ( + "fmt" + + cniTypes020 "github.com/containernetworking/cni/pkg/types/020" + "github.com/golang/glog" + kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" + "k8s.io/kubernetes/pkg/kubelet/network" +) + +func getLoNetwork(binDir, vendorDirPrefix string) *cniNetwork { + return nil +} + +func (plugin *cniNetworkPlugin) platformInit() error { + return nil +} + +// GetPodNetworkStatus : Assuming addToNetwork is idempotent, we can call this API as many times as required to get the IPAddress +func (plugin *cniNetworkPlugin) GetPodNetworkStatus(namespace string, name string, id kubecontainer.ContainerID) (*network.PodNetworkStatus, error) { + netnsPath, err := plugin.host.GetNetNS(id.ID) + if err != nil { + return nil, fmt.Errorf("CNI failed to retrieve network namespace path: %v", err) + } + + result, err := plugin.addToNetwork(plugin.getDefaultNetwork(), name, namespace, id, netnsPath) + + glog.V(5).Infof("GetPodNetworkStatus result %+v", result) + if err != nil { + glog.Errorf("error while adding to cni network: %s", err) + return nil, err + } + + // Parse the result and get the IPAddress + var result020 *cniTypes020.Result + result020, err = cniTypes020.GetResult(result) + if err != nil { + glog.Errorf("error while cni parsing result: %s", err) + return nil, err + } + return &network.PodNetworkStatus{IP: result020.IP4.IP.IP}, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/BUILD index ed448dc8b..a6bb4d0e1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/BUILD @@ -21,12 +21,14 @@ go_library( "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", ], ) go_test( name = "go_default_test", srcs = [ + "fake_iptables_test.go", "hostport_manager_test.go", "hostport_syncer_test.go", "hostport_test.go", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/fake_iptables.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/fake_iptables.go index 42f7c6811..ab28a1d87 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/fake_iptables.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/fake_iptables.go @@ -22,6 +22,7 @@ import ( "net" "strings" + "k8s.io/apimachinery/pkg/util/sets" utiliptables "k8s.io/kubernetes/pkg/util/iptables" ) @@ -36,12 +37,18 @@ type fakeTable struct { } type fakeIPTables struct { - tables map[string]*fakeTable + tables map[string]*fakeTable + builtinChains map[string]sets.String } func NewFakeIPTables() *fakeIPTables { return &fakeIPTables{ tables: make(map[string]*fakeTable, 0), + builtinChains: map[string]sets.String{ + string(utiliptables.TableFilter): sets.NewString("INPUT", "FORWARD", "OUTPUT"), + string(utiliptables.TableNAT): sets.NewString("PREROUTING", "INPUT", "OUTPUT", "POSTROUTING"), + string(utiliptables.TableMangle): sets.NewString("PREROUTING", "INPUT", "FORWARD", "OUTPUT", "POSTROUTING"), + }, } } @@ -246,6 +253,7 @@ func (f *fakeIPTables) SaveInto(tableName utiliptables.Table, buffer *bytes.Buff } func (f *fakeIPTables) restore(restoreTableName utiliptables.Table, data []byte, flush utiliptables.FlushFlag) error { + allLines := string(data) buf := bytes.NewBuffer(data) var tableName utiliptables.Table for { @@ -274,6 +282,13 @@ func (f *fakeIPTables) restore(restoreTableName utiliptables.Table, data []byte, } } _, _ = f.ensureChain(tableName, chainName) + // The --noflush option for iptables-restore doesn't work for user-defined chains, only builtin chains. + // We should flush user-defined chains if the chain is not to be deleted + if !f.isBuiltinChain(tableName, chainName) && !strings.Contains(allLines, "-X "+string(chainName)) { + if err := f.FlushChain(tableName, chainName); err != nil { + return err + } + } } else if strings.HasPrefix(line, "-A") { parts := strings.Split(line, " ") if len(parts) < 3 { @@ -329,3 +344,10 @@ func (f *fakeIPTables) AddReloadFunc(reloadFunc func()) { func (f *fakeIPTables) Destroy() { } + +func (f *fakeIPTables) isBuiltinChain(tableName utiliptables.Table, chainName utiliptables.Chain) bool { + if builtinChains, ok := f.builtinChains[string(tableName)]; ok && builtinChains.Has(string(chainName)) { + return true + } + return false +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/fake_iptables_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/fake_iptables_test.go new file mode 100644 index 000000000..bda4c0247 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/fake_iptables_test.go @@ -0,0 +1,56 @@ +/* +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 hostport + +import ( + "bytes" + "testing" + + "github.com/stretchr/testify/assert" + utiliptables "k8s.io/kubernetes/pkg/util/iptables" +) + +func TestRestoreFlushRules(t *testing.T) { + iptables := NewFakeIPTables() + rules := [][]string{ + {"-A", "KUBE-HOSTPORTS", "-m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp --dport 8443 -j KUBE-HP-5N7UH5JAXCVP5UJR"}, + {"-A", "POSTROUTING", "-m comment --comment \"SNAT for localhost access to hostports\" -o cbr0 -s 127.0.0.0/8 -j MASQUERADE"}, + } + natRules := bytes.NewBuffer(nil) + writeLine(natRules, "*nat") + for _, rule := range rules { + _, err := iptables.EnsureChain(utiliptables.TableNAT, utiliptables.Chain(rule[1])) + assert.NoError(t, err) + _, err = iptables.ensureRule(utiliptables.RulePosition(rule[0]), utiliptables.TableNAT, utiliptables.Chain(rule[1]), rule[2]) + assert.NoError(t, err) + + writeLine(natRules, utiliptables.MakeChainLine(utiliptables.Chain(rule[1]))) + } + writeLine(natRules, "COMMIT") + assert.NoError(t, iptables.Restore(utiliptables.TableNAT, natRules.Bytes(), utiliptables.NoFlushTables, utiliptables.RestoreCounters)) + natTable, ok := iptables.tables[string(utiliptables.TableNAT)] + assert.True(t, ok) + // check KUBE-HOSTPORTS chain, should have been cleaned up + hostportChain, ok := natTable.chains["KUBE-HOSTPORTS"] + assert.True(t, ok) + assert.Equal(t, 0, len(hostportChain.rules)) + + // check builtin chains, should not been cleaned up + postroutingChain, ok := natTable.chains["POSTROUTING"] + assert.True(t, ok, string(postroutingChain.name)) + assert.Equal(t, 1, len(postroutingChain.rules)) +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_manager.go index ea53c9c84..a31b4da08 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_manager.go @@ -21,6 +21,7 @@ import ( "crypto/sha256" "encoding/base32" "fmt" + "strconv" "strings" "sync" @@ -177,6 +178,8 @@ func (hm *hostportManager) Remove(id string, podPortMapping *PodPortMapping) (er chainsToRemove := []utiliptables.Chain{} for _, pm := range hostportMappings { chainsToRemove = append(chainsToRemove, getHostportChain(id, pm)) + // TODO remove this after release 1.9, please refer https://github.com/kubernetes/kubernetes/pull/55153 + chainsToRemove = append(chainsToRemove, getBuggyHostportChain(id, pm)) } // remove rules that consists of target chains @@ -247,6 +250,16 @@ func (hm *hostportManager) closeHostports(hostportMappings []*PortMapping) error // WARNING: Please do not change this function. Otherwise, HostportManager may not be able to // identify existing iptables chains. func getHostportChain(id string, pm *PortMapping) utiliptables.Chain { + hash := sha256.Sum256([]byte(id + strconv.Itoa(int(pm.HostPort)) + string(pm.Protocol))) + encoded := base32.StdEncoding.EncodeToString(hash[:]) + return utiliptables.Chain(kubeHostportChainPrefix + encoded[:16]) +} + +// This bugy func does bad conversion on HostPort from int32 to string. +// It may generates same chain names for different ports of the same pod, e.g. port 57119/55429/56833. +// `getHostportChain` fixed this bug. In order to cleanup the legacy chains/rules, it is temporarily left. +// TODO remove this after release 1.9, please refer https://github.com/kubernetes/kubernetes/pull/55153 +func getBuggyHostportChain(id string, pm *PortMapping) utiliptables.Chain { hash := sha256.Sum256([]byte(id + string(pm.HostPort) + string(pm.Protocol))) encoded := base32.StdEncoding.EncodeToString(hash[:]) return utiliptables.Chain(kubeHostportChainPrefix + encoded[:16]) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_manager_test.go index 61a2c65db..1537d2749 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_manager_test.go @@ -19,12 +19,12 @@ package hostport import ( "bytes" "net" + "strings" "testing" "github.com/stretchr/testify/assert" "k8s.io/api/core/v1" utiliptables "k8s.io/kubernetes/pkg/util/iptables" - "strings" ) func NewFakeHostportManager() HostPortManager { @@ -144,21 +144,21 @@ func TestHostportManager(t *testing.T) { `:OUTPUT - [0:0]`: true, `:PREROUTING - [0:0]`: true, `:POSTROUTING - [0:0]`: true, - `:KUBE-HP-4YVONL46AKYWSKS3 - [0:0]`: true, - `:KUBE-HP-7THKRFSEH4GIIXK7 - [0:0]`: true, - `:KUBE-HP-5N7UH5JAXCVP5UJR - [0:0]`: true, - "-A KUBE-HOSTPORTS -m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp --dport 8443 -j KUBE-HP-5N7UH5JAXCVP5UJR": true, - "-A KUBE-HOSTPORTS -m comment --comment \"pod1_ns1 hostport 8081\" -m udp -p udp --dport 8081 -j KUBE-HP-7THKRFSEH4GIIXK7": true, - "-A KUBE-HOSTPORTS -m comment --comment \"pod1_ns1 hostport 8080\" -m tcp -p tcp --dport 8080 -j KUBE-HP-4YVONL46AKYWSKS3": true, + `:KUBE-HP-IJHALPHTORMHHPPK - [0:0]`: true, + `:KUBE-HP-63UPIDJXVRSZGSUZ - [0:0]`: true, + `:KUBE-HP-WFBOALXEP42XEMJK - [0:0]`: true, + "-A KUBE-HOSTPORTS -m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp --dport 8443 -j KUBE-HP-WFBOALXEP42XEMJK": true, + "-A KUBE-HOSTPORTS -m comment --comment \"pod1_ns1 hostport 8081\" -m udp -p udp --dport 8081 -j KUBE-HP-63UPIDJXVRSZGSUZ": true, + "-A KUBE-HOSTPORTS -m comment --comment \"pod1_ns1 hostport 8080\" -m tcp -p tcp --dport 8080 -j KUBE-HP-IJHALPHTORMHHPPK": true, "-A OUTPUT -m comment --comment \"kube hostport portals\" -m addrtype --dst-type LOCAL -j KUBE-HOSTPORTS": true, "-A PREROUTING -m comment --comment \"kube hostport portals\" -m addrtype --dst-type LOCAL -j KUBE-HOSTPORTS": true, "-A POSTROUTING -m comment --comment \"SNAT for localhost access to hostports\" -o cbr0 -s 127.0.0.0/8 -j MASQUERADE": true, - "-A KUBE-HP-4YVONL46AKYWSKS3 -m comment --comment \"pod1_ns1 hostport 8080\" -s 10.1.1.2/32 -j KUBE-MARK-MASQ": true, - "-A KUBE-HP-4YVONL46AKYWSKS3 -m comment --comment \"pod1_ns1 hostport 8080\" -m tcp -p tcp -j DNAT --to-destination 10.1.1.2:80": true, - "-A KUBE-HP-7THKRFSEH4GIIXK7 -m comment --comment \"pod1_ns1 hostport 8081\" -s 10.1.1.2/32 -j KUBE-MARK-MASQ": true, - "-A KUBE-HP-7THKRFSEH4GIIXK7 -m comment --comment \"pod1_ns1 hostport 8081\" -m udp -p udp -j DNAT --to-destination 10.1.1.2:81": true, - "-A KUBE-HP-5N7UH5JAXCVP5UJR -m comment --comment \"pod3_ns1 hostport 8443\" -s 10.1.1.4/32 -j KUBE-MARK-MASQ": true, - "-A KUBE-HP-5N7UH5JAXCVP5UJR -m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp -j DNAT --to-destination 10.1.1.4:443": true, + "-A KUBE-HP-IJHALPHTORMHHPPK -m comment --comment \"pod1_ns1 hostport 8080\" -s 10.1.1.2/32 -j KUBE-MARK-MASQ": true, + "-A KUBE-HP-IJHALPHTORMHHPPK -m comment --comment \"pod1_ns1 hostport 8080\" -m tcp -p tcp -j DNAT --to-destination 10.1.1.2:80": true, + "-A KUBE-HP-63UPIDJXVRSZGSUZ -m comment --comment \"pod1_ns1 hostport 8081\" -s 10.1.1.2/32 -j KUBE-MARK-MASQ": true, + "-A KUBE-HP-63UPIDJXVRSZGSUZ -m comment --comment \"pod1_ns1 hostport 8081\" -m udp -p udp -j DNAT --to-destination 10.1.1.2:81": true, + "-A KUBE-HP-WFBOALXEP42XEMJK -m comment --comment \"pod3_ns1 hostport 8443\" -s 10.1.1.4/32 -j KUBE-MARK-MASQ": true, + "-A KUBE-HP-WFBOALXEP42XEMJK -m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp -j DNAT --to-destination 10.1.1.4:443": true, `COMMIT`: true, } for _, line := range lines { @@ -198,3 +198,92 @@ func TestHostportManager(t *testing.T) { assert.EqualValues(t, true, port.closed) } } + +func TestGetHostportChain(t *testing.T) { + m := make(map[string]int) + chain := getHostportChain("testrdma-2", &PortMapping{HostPort: 57119, Protocol: "TCP", ContainerPort: 57119}) + m[string(chain)] = 1 + chain = getHostportChain("testrdma-2", &PortMapping{HostPort: 55429, Protocol: "TCP", ContainerPort: 55429}) + m[string(chain)] = 1 + chain = getHostportChain("testrdma-2", &PortMapping{HostPort: 56833, Protocol: "TCP", ContainerPort: 56833}) + m[string(chain)] = 1 + if len(m) != 3 { + t.Fatal(m) + } +} + +func TestHostPortManagerRemoveLegacyRules(t *testing.T) { + iptables := NewFakeIPTables() + legacyRules := [][]string{ + {"-A", "KUBE-HOSTPORTS", "-m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp --dport 8443 -j KUBE-HP-5N7UH5JAXCVP5UJR"}, + {"-A", "KUBE-HOSTPORTS", "-m comment --comment \"pod1_ns1 hostport 8081\" -m udp -p udp --dport 8081 -j KUBE-HP-7THKRFSEH4GIIXK7"}, + {"-A", "KUBE-HOSTPORTS", "-m comment --comment \"pod1_ns1 hostport 8080\" -m tcp -p tcp --dport 8080 -j KUBE-HP-4YVONL46AKYWSKS3"}, + {"-A", "OUTPUT", "-m comment --comment \"kube hostport portals\" -m addrtype --dst-type LOCAL -j KUBE-HOSTPORTS"}, + {"-A", "PREROUTING", "-m comment --comment \"kube hostport portals\" -m addrtype --dst-type LOCAL -j KUBE-HOSTPORTS"}, + {"-A", "POSTROUTING", "-m comment --comment \"SNAT for localhost access to hostports\" -o cbr0 -s 127.0.0.0/8 -j MASQUERADE"}, + {"-A", "KUBE-HP-4YVONL46AKYWSKS3", "-m comment --comment \"pod1_ns1 hostport 8080\" -s 10.1.1.2/32 -j KUBE-MARK-MASQ"}, + {"-A", "KUBE-HP-4YVONL46AKYWSKS3", "-m comment --comment \"pod1_ns1 hostport 8080\" -m tcp -p tcp -j DNAT --to-destination 10.1.1.2:80"}, + {"-A", "KUBE-HP-7THKRFSEH4GIIXK7", "-m comment --comment \"pod1_ns1 hostport 8081\" -s 10.1.1.2/32 -j KUBE-MARK-MASQ"}, + {"-A", "KUBE-HP-7THKRFSEH4GIIXK7", "-m comment --comment \"pod1_ns1 hostport 8081\" -m udp -p udp -j DNAT --to-destination 10.1.1.2:81"}, + {"-A", "KUBE-HP-5N7UH5JAXCVP5UJR", "-m comment --comment \"pod3_ns1 hostport 8443\" -s 10.1.1.4/32 -j KUBE-MARK-MASQ"}, + {"-A", "KUBE-HP-5N7UH5JAXCVP5UJR", "-m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp -j DNAT --to-destination 10.1.1.4:443"}, + } + for _, rule := range legacyRules { + _, err := iptables.EnsureChain(utiliptables.TableNAT, utiliptables.Chain(rule[1])) + assert.NoError(t, err) + _, err = iptables.ensureRule(utiliptables.RulePosition(rule[0]), utiliptables.TableNAT, utiliptables.Chain(rule[1]), rule[2]) + assert.NoError(t, err) + } + portOpener := NewFakeSocketManager() + manager := &hostportManager{ + hostPortMap: make(map[hostport]closeable), + iptables: iptables, + portOpener: portOpener.openFakeSocket, + } + err := manager.Remove("id", &PodPortMapping{ + Name: "pod1", + Namespace: "ns1", + IP: net.ParseIP("10.1.1.2"), + HostNetwork: false, + PortMappings: []*PortMapping{ + { + HostPort: 8080, + ContainerPort: 80, + Protocol: v1.ProtocolTCP, + }, + { + HostPort: 8081, + ContainerPort: 81, + Protocol: v1.ProtocolUDP, + }, + }, + }) + assert.NoError(t, err) + + err = manager.Remove("id", &PodPortMapping{ + Name: "pod3", + Namespace: "ns1", + IP: net.ParseIP("10.1.1.4"), + HostNetwork: false, + PortMappings: []*PortMapping{ + { + HostPort: 8443, + ContainerPort: 443, + Protocol: v1.ProtocolTCP, + }, + }, + }) + assert.NoError(t, err) + + natTable, ok := iptables.tables[string(utiliptables.TableNAT)] + assert.True(t, ok) + // check KUBE-HOSTPORTS chain should be cleaned up + hostportChain, ok := natTable.chains["KUBE-HOSTPORTS"] + assert.True(t, ok, string(hostportChain.name)) + assert.Equal(t, 0, len(hostportChain.rules), "%v", hostportChain.rules) + // check KUBE-HP-* chains should be deleted + for _, name := range []string{"KUBE-HP-4YVONL46AKYWSKS3", "KUBE-HP-7THKRFSEH4GIIXK7", "KUBE-HP-5N7UH5JAXCVP5UJR"} { + _, ok := natTable.chains[name] + assert.False(t, ok) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_syncer.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_syncer.go index 0086b7456..3d7bfd6e4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_syncer.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_syncer.go @@ -21,6 +21,7 @@ import ( "crypto/sha256" "encoding/base32" "fmt" + "strconv" "strings" "time" @@ -142,7 +143,7 @@ func writeLine(buf *bytes.Buffer, words ...string) { // this because IPTables Chain Names must be <= 28 chars long, and the longer // they are the harder they are to read. func hostportChainName(pm *PortMapping, podFullName string) utiliptables.Chain { - hash := sha256.Sum256([]byte(string(pm.HostPort) + string(pm.Protocol) + podFullName)) + hash := sha256.Sum256([]byte(strconv.Itoa(int(pm.HostPort)) + string(pm.Protocol) + podFullName)) encoded := base32.StdEncoding.EncodeToString(hash[:]) return utiliptables.Chain(kubeHostportChainPrefix + encoded[:16]) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_syncer_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_syncer_test.go index b5ffed474..5cd3349ca 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_syncer_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/hostport/hostport_syncer_test.go @@ -22,6 +22,7 @@ import ( "strings" "testing" + "github.com/stretchr/testify/assert" "k8s.io/api/core/v1" utiliptables "k8s.io/kubernetes/pkg/util/iptables" ) @@ -223,3 +224,89 @@ func matchRule(chain *fakeChain, match string) bool { } return false } + +func TestHostportChainName(t *testing.T) { + m := make(map[string]int) + chain := hostportChainName(&PortMapping{HostPort: 57119, Protocol: "TCP", ContainerPort: 57119}, "testrdma-2") + m[string(chain)] = 1 + chain = hostportChainName(&PortMapping{HostPort: 55429, Protocol: "TCP", ContainerPort: 55429}, "testrdma-2") + m[string(chain)] = 1 + chain = hostportChainName(&PortMapping{HostPort: 56833, Protocol: "TCP", ContainerPort: 56833}, "testrdma-2") + m[string(chain)] = 1 + if len(m) != 3 { + t.Fatal(m) + } +} + +func TestHostPortSyncerRemoveLegacyRules(t *testing.T) { + iptables := NewFakeIPTables() + legacyRules := [][]string{ + {"-A", "KUBE-HOSTPORTS", "-m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp --dport 8443 -j KUBE-HP-5N7UH5JAXCVP5UJR"}, + {"-A", "KUBE-HOSTPORTS", "-m comment --comment \"pod1_ns1 hostport 8081\" -m udp -p udp --dport 8081 -j KUBE-HP-7THKRFSEH4GIIXK7"}, + {"-A", "KUBE-HOSTPORTS", "-m comment --comment \"pod1_ns1 hostport 8080\" -m tcp -p tcp --dport 8080 -j KUBE-HP-4YVONL46AKYWSKS3"}, + {"-A", "OUTPUT", "-m comment --comment \"kube hostport portals\" -m addrtype --dst-type LOCAL -j KUBE-HOSTPORTS"}, + {"-A", "PREROUTING", "-m comment --comment \"kube hostport portals\" -m addrtype --dst-type LOCAL -j KUBE-HOSTPORTS"}, + {"-A", "POSTROUTING", "-m comment --comment \"SNAT for localhost access to hostports\" -o cbr0 -s 127.0.0.0/8 -j MASQUERADE"}, + {"-A", "KUBE-HP-4YVONL46AKYWSKS3", "-m comment --comment \"pod1_ns1 hostport 8080\" -s 10.1.1.2/32 -j KUBE-MARK-MASQ"}, + {"-A", "KUBE-HP-4YVONL46AKYWSKS3", "-m comment --comment \"pod1_ns1 hostport 8080\" -m tcp -p tcp -j DNAT --to-destination 10.1.1.2:80"}, + {"-A", "KUBE-HP-7THKRFSEH4GIIXK7", "-m comment --comment \"pod1_ns1 hostport 8081\" -s 10.1.1.2/32 -j KUBE-MARK-MASQ"}, + {"-A", "KUBE-HP-7THKRFSEH4GIIXK7", "-m comment --comment \"pod1_ns1 hostport 8081\" -m udp -p udp -j DNAT --to-destination 10.1.1.2:81"}, + {"-A", "KUBE-HP-5N7UH5JAXCVP5UJR", "-m comment --comment \"pod3_ns1 hostport 8443\" -s 10.1.1.4/32 -j KUBE-MARK-MASQ"}, + {"-A", "KUBE-HP-5N7UH5JAXCVP5UJR", "-m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp -j DNAT --to-destination 10.1.1.4:443"}, + } + for _, rule := range legacyRules { + _, err := iptables.EnsureChain(utiliptables.TableNAT, utiliptables.Chain(rule[1])) + assert.NoError(t, err) + _, err = iptables.ensureRule(utiliptables.RulePosition(rule[0]), utiliptables.TableNAT, utiliptables.Chain(rule[1]), rule[2]) + assert.NoError(t, err) + } + portOpener := NewFakeSocketManager() + h := &hostportSyncer{ + hostPortMap: make(map[hostport]closeable), + iptables: iptables, + portOpener: portOpener.openFakeSocket, + } + // check preserve pod3's rules and remove pod1's rules + pod3PortMapping := &PodPortMapping{ + Name: "pod3", + Namespace: "ns1", + IP: net.ParseIP("10.1.1.4"), + HostNetwork: false, + PortMappings: []*PortMapping{ + { + HostPort: 8443, + ContainerPort: 443, + Protocol: v1.ProtocolTCP, + }, + }, + } + h.SyncHostports("cbr0", []*PodPortMapping{pod3PortMapping}) + + newChainName := string(hostportChainName(pod3PortMapping.PortMappings[0], getPodFullName(pod3PortMapping))) + expectRules := [][]string{ + {"KUBE-HOSTPORTS", "-m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp --dport 8443 -j " + newChainName}, + {newChainName, "-m comment --comment \"pod3_ns1 hostport 8443\" -s 10.1.1.4/32 -j KUBE-MARK-MASQ"}, + {newChainName, "-m comment --comment \"pod3_ns1 hostport 8443\" -m tcp -p tcp -j DNAT --to-destination 10.1.1.4:443"}, + } + + natTable, ok := iptables.tables[string(utiliptables.TableNAT)] + assert.True(t, ok) + // check pod1's rules in KUBE-HOSTPORTS chain should be cleaned up + hostportChain, ok := natTable.chains["KUBE-HOSTPORTS"] + assert.True(t, ok, string(hostportChain.name)) + assert.Equal(t, 1, len(hostportChain.rules), "%v", hostportChain.rules) + + // check pod3's rules left + assert.Equal(t, expectRules[0][1], hostportChain.rules[0]) + chain, ok := natTable.chains[newChainName] + assert.True(t, ok) + assert.Equal(t, 2, len(chain.rules)) + assert.Equal(t, expectRules[1][1], chain.rules[0]) + assert.Equal(t, expectRules[2][1], chain.rules[1]) + + // check legacy KUBE-HP-* chains should be deleted + for _, name := range []string{"KUBE-HP-4YVONL46AKYWSKS3", "KUBE-HP-7THKRFSEH4GIIXK7", "KUBE-HP-5N7UH5JAXCVP5UJR"} { + _, ok := natTable.chains[name] + assert.False(t, ok) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/kubenet/kubenet_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/kubenet/kubenet_linux.go index 8f0a9f19e..8551946d4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/kubenet/kubenet_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/kubenet/kubenet_linux.go @@ -23,7 +23,6 @@ import ( "io/ioutil" "net" "path/filepath" - "strconv" "strings" "sync" "time" @@ -59,12 +58,6 @@ const ( // fallbackMTU is used if an MTU is not specified, and we cannot determine the MTU fallbackMTU = 1460 - // private mac prefix safe to use - // Universally administered and locally administered addresses are distinguished by setting the second-least-significant - // bit of the first octet of the address. If it is 1, the address is locally administered. For example, for address 0a:00:00:00:00:00, - // the first cotet is 0a(hex), the binary form of which is 00001010, where the second-least-significant bit is 1. - privateMACPrefix = "0a:58" - // ebtables Chain to store dedup rules dedupChain = utilebtables.Chain("KUBE-DEDUP") @@ -98,7 +91,7 @@ type kubenetNetworkPlugin struct { iptables utiliptables.Interface sysctl utilsysctl.Interface ebtables utilebtables.Interface - // vendorDir is passed by kubelet network-plugin-dir parameter. + // vendorDir is passed by kubelet cni-bin-dir parameter. // kubenet will search for cni binaries in DefaultCNIDir first, then continue to vendorDir. vendorDir string nonMasqueradeCIDR string @@ -311,6 +304,11 @@ func (plugin *kubenetNetworkPlugin) Capabilities() utilsets.Int { // TODO: Don't pass the pod to this method, it only needs it for bandwidth // shaping and hostport management. func (plugin *kubenetNetworkPlugin) setup(namespace string, name string, id kubecontainer.ContainerID, pod *v1.Pod, annotations map[string]string) error { + // Disable DAD so we skip the kernel delay on bringing up new interfaces. + if err := plugin.disableContainerDAD(id); err != nil { + glog.V(3).Infof("Failed to disable DAD in container: %v", err) + } + // Bring up container loopback interface if _, err := plugin.addContainerToNetwork(plugin.loConfig, "lo", namespace, name, id); err != nil { return err @@ -334,22 +332,6 @@ func (plugin *kubenetNetworkPlugin) setup(namespace string, name string, id kube return fmt.Errorf("CNI plugin reported an invalid IPv4 address for container %v: %+v.", id, res.IP4) } - // Explicitly assign mac address to cbr0. If bridge mac address is not explicitly set will adopt the lowest MAC address of the attached veths. - // TODO: Remove this once upstream cni bridge plugin handles this - link, err := netlink.LinkByName(BridgeName) - if err != nil { - return fmt.Errorf("failed to lookup %q: %v", BridgeName, err) - } - macAddr, err := generateHardwareAddr(plugin.gateway) - if err != nil { - return err - } - glog.V(3).Infof("Configure %q mac address to %v", BridgeName, macAddr) - err = netlink.LinkSetHardwareAddr(link, macAddr) - if err != nil { - return fmt.Errorf("Failed to configure %q mac address to %q: %v", BridgeName, macAddr, err) - } - // Put the container bridge into promiscuous mode to force it to accept hairpin packets. // TODO: Remove this once the kernel bug (#20096) is fixed. // TODO: check and set promiscuous mode with netlink once vishvananda/netlink supports it @@ -361,8 +343,14 @@ func (plugin *kubenetNetworkPlugin) setup(namespace string, name string, id kube return fmt.Errorf("Error setting promiscuous mode on %s: %v", BridgeName, err) } } + + link, err := netlink.LinkByName(BridgeName) + if err != nil { + return fmt.Errorf("failed to lookup %q: %v", BridgeName, err) + } + // configure the ebtables rules to eliminate duplicate packets by best effort - plugin.syncEbtablesDedupRules(macAddr) + plugin.syncEbtablesDedupRules(link.Attrs().HardwareAddr) } plugin.podIPs[id] = ip4.String() @@ -761,7 +749,11 @@ func (plugin *kubenetNetworkPlugin) addContainerToNetwork(config *libcni.Network } glog.V(3).Infof("Adding %s/%s to '%s' with CNI '%s' plugin and runtime: %+v", namespace, name, config.Network.Name, config.Network.Type, rt) + // The network plugin can take up to 3 seconds to execute, + // so yield the lock while it runs. + plugin.mu.Unlock() res, err := plugin.cniConfig.AddNetwork(config, rt) + plugin.mu.Lock() if err != nil { return nil, fmt.Errorf("Error adding container to network: %v", err) } @@ -834,20 +826,42 @@ func (plugin *kubenetNetworkPlugin) syncEbtablesDedupRules(macAddr net.HardwareA } } -// generateHardwareAddr generates 48 bit virtual mac addresses based on the IP input. -func generateHardwareAddr(ip net.IP) (net.HardwareAddr, error) { - if ip.To4() == nil { - return nil, fmt.Errorf("generateHardwareAddr only support valid ipv4 address as input") +// disableContainerDAD disables duplicate address detection in the container. +// DAD has a negative affect on pod creation latency, since we have to wait +// a second or more for the addresses to leave the "tentative" state. Since +// we're sure there won't be an address conflict (since we manage them manually), +// this is safe. See issue 54651. +// +// This sets net.ipv6.conf.default.dad_transmits to 0. It must be run *before* +// the CNI plugins are run. +func (plugin *kubenetNetworkPlugin) disableContainerDAD(id kubecontainer.ContainerID) error { + key := "net/ipv6/conf/default/dad_transmits" + + sysctlBin, err := plugin.execer.LookPath("sysctl") + if err != nil { + return fmt.Errorf("Could not find sysctl binary: %s", err) } - mac := privateMACPrefix - sections := strings.Split(ip.String(), ".") - for _, s := range sections { - i, _ := strconv.Atoi(s) - mac = mac + ":" + fmt.Sprintf("%02x", i) + + netnsPath, err := plugin.host.GetNetNS(id.ID) + if err != nil { + return fmt.Errorf("Failed to get netns: %v", err) } - hwAddr, err := net.ParseMAC(mac) + if netnsPath == "" { + return fmt.Errorf("Pod has no network namespace") + } + + // If the sysctl doesn't exist, it means ipv6 is disabled; log and move on + if _, err := plugin.sysctl.GetSysctl(key); err != nil { + return fmt.Errorf("Ipv6 not enabled: %v", err) + } + + output, err := plugin.execer.Command(plugin.nsenterPath, + fmt.Sprintf("--net=%s", netnsPath), "-F", "--", + sysctlBin, "-w", fmt.Sprintf("%s=%s", key, "0"), + ).CombinedOutput() if err != nil { - return nil, fmt.Errorf("Failed to parse mac address %s generated based on ip %s due to: %v", mac, ip, err) + return fmt.Errorf("Failed to write sysctl: output: %s error: %s", + output, err) } - return hwAddr, nil + return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/kubenet/kubenet_linux_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/kubenet/kubenet_linux_test.go index 600372866..01f6a04b3 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/kubenet/kubenet_linux_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/kubenet/kubenet_linux_test.go @@ -18,7 +18,6 @@ package kubenet import ( "fmt" - "net" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -200,36 +199,6 @@ func TestInit_MTU(t *testing.T) { assert.Equal(t, 1, sysctl.Settings["net/bridge/bridge-nf-call-iptables"], "net/bridge/bridge-nf-call-iptables sysctl should have been set") } -func TestGenerateMacAddress(t *testing.T) { - testCases := []struct { - ip net.IP - expectedMAC string - }{ - { - ip: net.ParseIP("10.0.0.2"), - expectedMAC: privateMACPrefix + ":0a:00:00:02", - }, - { - ip: net.ParseIP("10.250.0.244"), - expectedMAC: privateMACPrefix + ":0a:fa:00:f4", - }, - { - ip: net.ParseIP("172.17.0.2"), - expectedMAC: privateMACPrefix + ":ac:11:00:02", - }, - } - - for _, tc := range testCases { - mac, err := generateHardwareAddr(tc.ip) - if err != nil { - t.Errorf("Did not expect error: %v", err) - } - if mac.String() != tc.expectedMAC { - t.Errorf("generated mac: %q, expecting: %q", mac.String(), tc.expectedMAC) - } - } -} - // TestInvocationWithoutRuntime invokes the plugin without a runtime. // This is how kubenet is invoked from the cri. func TestTearDownWithoutRuntime(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/plugins.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/plugins.go index 1714af800..24e358943 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/plugins.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/plugins.go @@ -157,6 +157,7 @@ func InitNetworkPlugin(plugins []NetworkPlugin, networkPluginName string, host H if networkPluginName == "" { // default to the no_op plugin plug := &NoopNetworkPlugin{} + plug.Sysctl = utilsysctl.New() if err := plug.Init(host, hairpinMode, nonMasqueradeCIDR, mtu); err != nil { return nil, err } @@ -200,9 +201,11 @@ func UnescapePluginName(in string) string { } type NoopNetworkPlugin struct { + Sysctl utilsysctl.Interface } const sysctlBridgeCallIPTables = "net/bridge/bridge-nf-call-iptables" +const sysctlBridgeCallIP6Tables = "net/bridge/bridge-nf-call-ip6tables" func (plugin *NoopNetworkPlugin) Init(host Host, hairpinMode kubeletconfig.HairpinMode, nonMasqueradeCIDR string, mtu int) error { // Set bridge-nf-call-iptables=1 to maintain compatibility with older @@ -214,9 +217,16 @@ func (plugin *NoopNetworkPlugin) Init(host Host, hairpinMode kubeletconfig.Hairp // Ensure the netfilter module is loaded on kernel >= 3.18; previously // it was built-in. utilexec.New().Command("modprobe", "br-netfilter").CombinedOutput() - if err := utilsysctl.New().SetSysctl(sysctlBridgeCallIPTables, 1); err != nil { + if err := plugin.Sysctl.SetSysctl(sysctlBridgeCallIPTables, 1); err != nil { glog.Warningf("can't set sysctl %s: %v", sysctlBridgeCallIPTables, err) } + if val, err := plugin.Sysctl.GetSysctl(sysctlBridgeCallIP6Tables); err == nil { + if val != 1 { + if err = plugin.Sysctl.SetSysctl(sysctlBridgeCallIP6Tables, 1); err != nil { + glog.Warningf("can't set sysctl %s: %v", sysctlBridgeCallIP6Tables, err) + } + } + } return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/testing/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/network/testing/BUILD index f0aa26200..9107cd229 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/testing/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/testing/BUILD @@ -35,7 +35,9 @@ go_test( "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/network:go_default_library", + "//pkg/util/sysctl/testing:go_default_library", "//vendor/github.com/golang/mock/gomock:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/testing/plugins_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/network/testing/plugins_test.go index 07ba256a2..6398948fa 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/network/testing/plugins_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/testing/plugins_test.go @@ -26,8 +26,10 @@ import ( "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/network" + sysctltest "k8s.io/kubernetes/pkg/util/sysctl/testing" "github.com/golang/mock/gomock" + "github.com/stretchr/testify/assert" ) func TestSelectDefaultPlugin(t *testing.T) { @@ -44,6 +46,35 @@ func TestSelectDefaultPlugin(t *testing.T) { } } +func TestInit(t *testing.T) { + tests := []struct { + setting string + expectedLen int + }{ + { + setting: "net/bridge/bridge-nf-call-iptables", + expectedLen: 1, + }, + { + setting: "net/bridge/bridge-nf-call-ip6tables", + expectedLen: 2, + }, + } + for _, tt := range tests { + sysctl := sysctltest.NewFake() + sysctl.Settings[tt.setting] = 0 + plug := &network.NoopNetworkPlugin{} + plug.Sysctl = sysctl + plug.Init(NewFakeHost(nil), kubeletconfig.HairpinNone, "10.0.0.0/8", network.UseDefaultMTU) + // Verify the sysctl specified is set + assert.Equal(t, 1, sysctl.Settings[tt.setting], tt.setting+" sysctl should have been set") + // Verify iptables is always set + assert.Equal(t, 1, sysctl.Settings["net/bridge/bridge-nf-call-iptables"], "net/bridge/bridge-nf-call-iptables sysctl should have been set") + // Verify ip6tables is only set if it existed + assert.Len(t, sysctl.Settings, tt.expectedLen, "length wrong for "+tt.setting) + } +} + func TestPluginManager(t *testing.T) { ctrl := gomock.NewController(t) fnp := NewMockNetworkPlugin(ctrl) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/networks.go b/vendor/k8s.io/kubernetes/pkg/kubelet/networks.go deleted file mode 100644 index 84bcdb8fa..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/networks.go +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright 2014 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 kubelet - -import ( - "k8s.io/api/core/v1" - clientset "k8s.io/client-go/kubernetes" - kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - "k8s.io/kubernetes/pkg/kubelet/network" -) - -// This just exports required functions from kubelet proper, for use by network -// plugins. -// TODO(#35457): get rid of this backchannel to the kubelet. The scope of -// the back channel is restricted to host-ports/testing, and restricted -// to kubenet. No other network plugin wrapper needs it. Other plugins -// only require a way to access namespace information, which they can do -// directly through the methods implemented by criNetworkHost. -type networkHost struct { - kubelet *Kubelet -} - -func (nh *networkHost) GetPodByName(name, namespace string) (*v1.Pod, bool) { - return nh.kubelet.GetPodByName(name, namespace) -} - -func (nh *networkHost) GetKubeClient() clientset.Interface { - return nh.kubelet.kubeClient -} - -func (nh *networkHost) GetRuntime() kubecontainer.Runtime { - return nh.kubelet.GetRuntime() -} - -func (nh *networkHost) SupportsLegacyFeatures() bool { - return true -} - -// criNetworkHost implements the part of network.Host required by the -// cri (NamespaceGetter). It leechs off networkHost for all other -// methods, because networkHost is slated for deletion. -type criNetworkHost struct { - *networkHost - // criNetworkHost currently support legacy features. Hence no need to support PortMappingGetter - *network.NoopPortMappingGetter -} - -// GetNetNS returns the network namespace of the given containerID. -// This method satisfies the network.NamespaceGetter interface for -// networkHost. It's only meant to be used from network plugins -// that are directly invoked by the kubelet (aka: legacy, pre-cri). -// Any network plugin invoked by a cri must implement NamespaceGetter -// to talk directly to the runtime instead. -func (c *criNetworkHost) GetNetNS(containerID string) (string, error) { - return c.kubelet.GetRuntime().GetNetNS(kubecontainer.ContainerID{Type: "", ID: containerID}) -} - -// NoOpLegacyHost implements the network.LegacyHost interface for the remote -// runtime shim by just returning empties. It doesn't support legacy features -// like host port and bandwidth shaping. -type NoOpLegacyHost struct{} - -// GetPodByName always returns "nil, true" for 'NoOpLegacyHost' -func (n *NoOpLegacyHost) GetPodByName(namespace, name string) (*v1.Pod, bool) { - return nil, true -} - -// GetKubeClient always returns "nil" for 'NoOpLegacyHost' -func (n *NoOpLegacyHost) GetKubeClient() clientset.Interface { - return nil -} - -// GetRuntime always returns "nil" for 'NoOpLegacyHost' -func (n *NoOpLegacyHost) GetRuntime() kubecontainer.Runtime { - return nil -} - -// SupportsLegacyFeatures always returns "false" for 'NoOpLegacyHost' -func (n *NoOpLegacyHost) SupportsLegacyFeatures() bool { - return false -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/networks_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/networks_test.go deleted file mode 100644 index 6c7c68f8a..000000000 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/networks_test.go +++ /dev/null @@ -1,91 +0,0 @@ -/* -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 kubelet - -import ( - "testing" -) - -func TestNetworkHostGetsPodNotFound(t *testing.T) { - testKubelet := newTestKubelet(t, true) - defer testKubelet.Cleanup() - nh := networkHost{testKubelet.kubelet} - - actualPod, _ := nh.GetPodByName("", "") - if actualPod != nil { - t.Fatalf("Was expected nil, received %v instead", actualPod) - } -} - -func TestNetworkHostGetsKubeClient(t *testing.T) { - testKubelet := newTestKubelet(t, true) - defer testKubelet.Cleanup() - nh := networkHost{testKubelet.kubelet} - - if nh.GetKubeClient() != testKubelet.fakeKubeClient { - t.Fatalf("NetworkHost client does not match testKubelet's client") - } -} - -func TestNetworkHostGetsRuntime(t *testing.T) { - testKubelet := newTestKubelet(t, true) - defer testKubelet.Cleanup() - nh := networkHost{testKubelet.kubelet} - - if nh.GetRuntime() != testKubelet.fakeRuntime { - t.Fatalf("NetworkHost runtime does not match testKubelet's runtime") - } -} - -func TestNetworkHostSupportsLegacyFeatures(t *testing.T) { - testKubelet := newTestKubelet(t, true) - defer testKubelet.Cleanup() - nh := networkHost{testKubelet.kubelet} - - if nh.SupportsLegacyFeatures() == false { - t.Fatalf("SupportsLegacyFeatures should not be false") - } -} - -func TestNoOpHostGetsName(t *testing.T) { - nh := NoOpLegacyHost{} - pod, err := nh.GetPodByName("", "") - if pod != nil && err != true { - t.Fatalf("noOpLegacyHost getpodbyname expected to be nil and true") - } -} - -func TestNoOpHostGetsKubeClient(t *testing.T) { - nh := NoOpLegacyHost{} - if nh.GetKubeClient() != nil { - t.Fatalf("noOpLegacyHost client expected to be nil") - } -} - -func TestNoOpHostGetsRuntime(t *testing.T) { - nh := NoOpLegacyHost{} - if nh.GetRuntime() != nil { - t.Fatalf("noOpLegacyHost runtime expected to be nil") - } -} - -func TestNoOpHostSupportsLegacyFeatures(t *testing.T) { - nh := NoOpLegacyHost{} - if nh.SupportsLegacyFeatures() != false { - t.Fatalf("noOpLegacyHost legacy features expected to be false") - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/pleg/generic.go b/vendor/k8s.io/kubernetes/pkg/kubelet/pleg/generic.go index 2d8a9a0c1..b873efb00 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/pleg/generic.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/pleg/generic.go @@ -173,7 +173,7 @@ func (g *GenericPLEG) getRelistTime() time.Time { return val.(time.Time) } -func (g *GenericPLEG) updateRelisTime(timestamp time.Time) { +func (g *GenericPLEG) updateRelistTime(timestamp time.Time) { g.relistTime.Store(timestamp) } @@ -198,8 +198,7 @@ func (g *GenericPLEG) relist() { return } - // Update the relist time. - g.updateRelisTime(timestamp) + g.updateRelistTime(timestamp) pods := kubecontainer.Pods(podList) g.podRecords.setCurrent(pods) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/pod/mirror_client.go b/vendor/k8s.io/kubernetes/pkg/kubelet/pod/mirror_client.go index fc81acec2..9b8add5bc 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/pod/mirror_client.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/pod/mirror_client.go @@ -63,7 +63,7 @@ func (mc *basicMirrorClient) CreateMirrorPod(pod *v1.Pod) error { } hash := getPodHash(pod) copyPod.Annotations[kubetypes.ConfigMirrorAnnotationKey] = hash - apiPod, err := mc.apiserverClient.Core().Pods(copyPod.Namespace).Create(©Pod) + apiPod, err := mc.apiserverClient.CoreV1().Pods(copyPod.Namespace).Create(©Pod) if err != nil && errors.IsAlreadyExists(err) { // Check if the existing pod is the same as the pod we want to create. if h, ok := apiPod.Annotations[kubetypes.ConfigMirrorAnnotationKey]; ok && h == hash { @@ -84,7 +84,7 @@ func (mc *basicMirrorClient) DeleteMirrorPod(podFullName string) error { } glog.V(2).Infof("Deleting a mirror pod %q", podFullName) // TODO(random-liu): Delete the mirror pod with uid precondition in mirror pod manager - if err := mc.apiserverClient.Core().Pods(namespace).Delete(name, metav1.NewDeleteOptions(0)); err != nil && !errors.IsNotFound(err) { + if err := mc.apiserverClient.CoreV1().Pods(namespace).Delete(name, metav1.NewDeleteOptions(0)); err != nil && !errors.IsNotFound(err) { glog.Errorf("Failed deleting a mirror pod %q: %v", podFullName, err) } return nil diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/BUILD index 681297781..736a457de 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/BUILD @@ -11,8 +11,8 @@ go_library( srcs = ["preemption.go"], importpath = "k8s.io/kubernetes/pkg/kubelet/preemption", deps = [ - "//pkg/api/v1/helper/qos:go_default_library", "//pkg/api/v1/resource:go_default_library", + "//pkg/apis/core/v1/helper/qos:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet/events:go_default_library", "//pkg/kubelet/eviction:go_default_library", @@ -47,7 +47,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/preemption", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/types:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/preemption.go b/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/preemption.go index fd144632f..1f9214b83 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/preemption.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/preemption.go @@ -24,8 +24,8 @@ import ( "k8s.io/api/core/v1" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/record" - v1qos "k8s.io/kubernetes/pkg/api/v1/helper/qos" "k8s.io/kubernetes/pkg/api/v1/resource" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/events" "k8s.io/kubernetes/pkg/kubelet/eviction" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/preemption_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/preemption_test.go index 331b4f72a..d142240c2 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/preemption_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/preemption/preemption_test.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/tools/record" - kubeapi "k8s.io/kubernetes/pkg/api" + kubeapi "k8s.io/kubernetes/pkg/apis/core" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/qos/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/qos/BUILD index 7807bc798..6160d7b41 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/qos/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/qos/BUILD @@ -25,7 +25,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/qos", deps = [ - "//pkg/api/v1/helper/qos:go_default_library", + "//pkg/apis/core/v1/helper/qos:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/qos/policy.go b/vendor/k8s.io/kubernetes/pkg/kubelet/qos/policy.go index 01125dd77..b7177d2a4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/qos/policy.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/qos/policy.go @@ -18,7 +18,7 @@ package qos import ( "k8s.io/api/core/v1" - v1qos "k8s.io/kubernetes/pkg/api/v1/helper/qos" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" ) const ( diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/remote/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/BUILD index bd7dd565d..cee27f873 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/remote/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/BUILD @@ -3,6 +3,7 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( @@ -34,6 +35,23 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//pkg/kubelet/remote/fake:all-srcs", + ], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = ["remote_runtime_test.go"], + importpath = "k8s.io/kubernetes/pkg/kubelet/remote", + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//pkg/kubelet/apis/cri:go_default_library", + "//pkg/kubelet/apis/cri/testing:go_default_library", + "//pkg/kubelet/remote/fake:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/BUILD new file mode 100644 index 000000000..265aced9d --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/BUILD @@ -0,0 +1,46 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "endpoint.go", + "fake_image_service.go", + "fake_runtime.go", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "endpoint_windows.go", + ], + "//conditions:default": [], + }), + importpath = "k8s.io/kubernetes/pkg/kubelet/remote/fake", + tags = ["automanaged"], + deps = [ + "//pkg/kubelet/apis/cri/testing:go_default_library", + "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", + "//pkg/kubelet/util:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_scale.go b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/doc.go similarity index 82% rename from vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_scale.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/doc.go index 2d2eb4f6e..fc92f3c76 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/fake_scale.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/doc.go @@ -14,10 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package fake containers a fake gRPC implementation of internalapi.RuntimeService +// and internalapi.ImageManagerService. package fake - -// FakeScales implements ScaleInterface -type FakeScales struct { - Fake *FakeExtensions - ns string -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/endpoint.go b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/endpoint.go new file mode 100644 index 000000000..12e4bda25 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/endpoint.go @@ -0,0 +1,28 @@ +// +build !windows + +/* +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 fake + +const ( + defaultUnixEndpoint = "unix:///tmp/kubelet_remote.sock" +) + +// GenerateEndpoint generates a new unix socket server of grpc server. +func GenerateEndpoint() (string, error) { + return defaultUnixEndpoint, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/endpoint_windows.go b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/endpoint_windows.go new file mode 100644 index 000000000..cb43296bc --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/endpoint_windows.go @@ -0,0 +1,40 @@ +// +build windows + +/* +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 fake + +import ( + "fmt" + "net" +) + +// GenerateEndpoint generates a new tcp endpoint of grpc server. +func GenerateEndpoint() (string, error) { + addr, err := net.ResolveTCPAddr("tcp", "localhost:0") + if err != nil { + return "", nil + } + + l, err := net.ListenTCP("tcp", addr) + if err != nil { + return "", err + } + + defer l.Close() + return fmt.Sprintf("tcp://127.0.0.1:%d", l.Addr().(*net.TCPAddr).Port), nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/fake_image_service.go b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/fake_image_service.go new file mode 100644 index 000000000..09e0df35d --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/fake_image_service.go @@ -0,0 +1,80 @@ +/* +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 fake + +import ( + "golang.org/x/net/context" + kubeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" +) + +// ListImages lists existing images. +func (f *RemoteRuntime) ListImages(ctx context.Context, req *kubeapi.ListImagesRequest) (*kubeapi.ListImagesResponse, error) { + images, err := f.ImageService.ListImages(req.Filter) + if err != nil { + return nil, err + } + + return &kubeapi.ListImagesResponse{ + Images: images, + }, nil +} + +// ImageStatus returns the status of the image. If the image is not +// present, returns a response with ImageStatusResponse.Image set to +// nil. +func (f *RemoteRuntime) ImageStatus(ctx context.Context, req *kubeapi.ImageStatusRequest) (*kubeapi.ImageStatusResponse, error) { + status, err := f.ImageService.ImageStatus(req.Image) + if err != nil { + return nil, err + } + + return &kubeapi.ImageStatusResponse{Image: status}, nil +} + +// PullImage pulls an image with authentication config. +func (f *RemoteRuntime) PullImage(ctx context.Context, req *kubeapi.PullImageRequest) (*kubeapi.PullImageResponse, error) { + image, err := f.ImageService.PullImage(req.Image, req.Auth) + if err != nil { + return nil, err + } + + return &kubeapi.PullImageResponse{ + ImageRef: image, + }, nil +} + +// RemoveImage removes the image. +// This call is idempotent, and must not return an error if the image has +// already been removed. +func (f *RemoteRuntime) RemoveImage(ctx context.Context, req *kubeapi.RemoveImageRequest) (*kubeapi.RemoveImageResponse, error) { + err := f.ImageService.RemoveImage(req.Image) + if err != nil { + return nil, err + } + + return &kubeapi.RemoveImageResponse{}, nil +} + +// ImageFsInfo returns information of the filesystem that is used to store images. +func (f *RemoteRuntime) ImageFsInfo(ctx context.Context, req *kubeapi.ImageFsInfoRequest) (*kubeapi.ImageFsInfoResponse, error) { + fsUsage, err := f.ImageService.ImageFsInfo() + if err != nil { + return nil, err + } + + return &kubeapi.ImageFsInfoResponse{ImageFilesystems: fsUsage}, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/fake_runtime.go b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/fake_runtime.go new file mode 100644 index 000000000..36d8dbfd8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/fake/fake_runtime.go @@ -0,0 +1,285 @@ +/* +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 fake + +import ( + "fmt" + "time" + + "golang.org/x/net/context" + "google.golang.org/grpc" + apitest "k8s.io/kubernetes/pkg/kubelet/apis/cri/testing" + kubeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" + "k8s.io/kubernetes/pkg/kubelet/util" + utilexec "k8s.io/utils/exec" +) + +// RemoteRuntime represents a fake remote container runtime. +type RemoteRuntime struct { + server *grpc.Server + // Fake runtime service. + RuntimeService *apitest.FakeRuntimeService + // Fake image service. + ImageService *apitest.FakeImageService +} + +// NewFakeRemoteRuntime creates a new RemoteRuntime. +func NewFakeRemoteRuntime() *RemoteRuntime { + fakeRuntimeService := apitest.NewFakeRuntimeService() + fakeImageService := apitest.NewFakeImageService() + + f := &RemoteRuntime{ + server: grpc.NewServer(), + RuntimeService: fakeRuntimeService, + ImageService: fakeImageService, + } + kubeapi.RegisterRuntimeServiceServer(f.server, f) + kubeapi.RegisterImageServiceServer(f.server, f) + + return f +} + +// Start starts the fake remote runtime. +func (f *RemoteRuntime) Start(endpoint string) error { + l, err := util.CreateListener(endpoint) + if err != nil { + return fmt.Errorf("failed to listen on %q: %v", endpoint, err) + } + + return f.server.Serve(l) +} + +// Stop stops the fake remote runtime. +func (f *RemoteRuntime) Stop() { + f.server.Stop() +} + +// Version returns the runtime name, runtime version, and runtime API version. +func (f *RemoteRuntime) Version(ctx context.Context, req *kubeapi.VersionRequest) (*kubeapi.VersionResponse, error) { + return f.RuntimeService.Version(req.Version) +} + +// RunPodSandbox creates and starts a pod-level sandbox. Runtimes must ensure +// the sandbox is in the ready state on success. +func (f *RemoteRuntime) RunPodSandbox(ctx context.Context, req *kubeapi.RunPodSandboxRequest) (*kubeapi.RunPodSandboxResponse, error) { + sandboxID, err := f.RuntimeService.RunPodSandbox(req.Config) + if err != nil { + return nil, err + } + + return &kubeapi.RunPodSandboxResponse{PodSandboxId: sandboxID}, nil +} + +// StopPodSandbox stops any running process that is part of the sandbox and +// reclaims network resources (e.g., IP addresses) allocated to the sandbox. +// If there are any running containers in the sandbox, they must be forcibly +// terminated. +func (f *RemoteRuntime) StopPodSandbox(ctx context.Context, req *kubeapi.StopPodSandboxRequest) (*kubeapi.StopPodSandboxResponse, error) { + err := f.RuntimeService.StopPodSandbox(req.PodSandboxId) + if err != nil { + return nil, err + } + + return &kubeapi.StopPodSandboxResponse{}, nil +} + +// RemovePodSandbox removes the sandbox. If there are any running containers +// in the sandbox, they must be forcibly terminated and removed. +// This call is idempotent, and must not return an error if the sandbox has +// already been removed. +func (f *RemoteRuntime) RemovePodSandbox(ctx context.Context, req *kubeapi.RemovePodSandboxRequest) (*kubeapi.RemovePodSandboxResponse, error) { + err := f.RuntimeService.StopPodSandbox(req.PodSandboxId) + if err != nil { + return nil, err + } + + return &kubeapi.RemovePodSandboxResponse{}, nil +} + +// PodSandboxStatus returns the status of the PodSandbox. If the PodSandbox is not +// present, returns an error. +func (f *RemoteRuntime) PodSandboxStatus(ctx context.Context, req *kubeapi.PodSandboxStatusRequest) (*kubeapi.PodSandboxStatusResponse, error) { + podStatus, err := f.RuntimeService.PodSandboxStatus(req.PodSandboxId) + if err != nil { + return nil, err + } + + return &kubeapi.PodSandboxStatusResponse{Status: podStatus}, nil +} + +// ListPodSandbox returns a list of PodSandboxes. +func (f *RemoteRuntime) ListPodSandbox(ctx context.Context, req *kubeapi.ListPodSandboxRequest) (*kubeapi.ListPodSandboxResponse, error) { + items, err := f.RuntimeService.ListPodSandbox(req.Filter) + if err != nil { + return nil, err + } + + return &kubeapi.ListPodSandboxResponse{Items: items}, nil +} + +// CreateContainer creates a new container in specified PodSandbox +func (f *RemoteRuntime) CreateContainer(ctx context.Context, req *kubeapi.CreateContainerRequest) (*kubeapi.CreateContainerResponse, error) { + containerID, err := f.RuntimeService.CreateContainer(req.PodSandboxId, req.Config, req.SandboxConfig) + if err != nil { + return nil, err + } + + return &kubeapi.CreateContainerResponse{ContainerId: containerID}, nil +} + +// StartContainer starts the container. +func (f *RemoteRuntime) StartContainer(ctx context.Context, req *kubeapi.StartContainerRequest) (*kubeapi.StartContainerResponse, error) { + err := f.RuntimeService.StartContainer(req.ContainerId) + if err != nil { + return nil, err + } + + return &kubeapi.StartContainerResponse{}, nil +} + +// StopContainer stops a running container with a grace period (i.e., timeout). +// This call is idempotent, and must not return an error if the container has +// already been stopped. +func (f *RemoteRuntime) StopContainer(ctx context.Context, req *kubeapi.StopContainerRequest) (*kubeapi.StopContainerResponse, error) { + err := f.RuntimeService.StopContainer(req.ContainerId, req.Timeout) + if err != nil { + return nil, err + } + + return &kubeapi.StopContainerResponse{}, nil +} + +// RemoveContainer removes the container. If the container is running, the +// container must be forcibly removed. +// This call is idempotent, and must not return an error if the container has +// already been removed. +func (f *RemoteRuntime) RemoveContainer(ctx context.Context, req *kubeapi.RemoveContainerRequest) (*kubeapi.RemoveContainerResponse, error) { + err := f.RuntimeService.RemoveContainer(req.ContainerId) + if err != nil { + return nil, err + } + + return &kubeapi.RemoveContainerResponse{}, nil +} + +// ListContainers lists all containers by filters. +func (f *RemoteRuntime) ListContainers(ctx context.Context, req *kubeapi.ListContainersRequest) (*kubeapi.ListContainersResponse, error) { + items, err := f.RuntimeService.ListContainers(req.Filter) + if err != nil { + return nil, err + } + + return &kubeapi.ListContainersResponse{Containers: items}, nil +} + +// ContainerStatus returns status of the container. If the container is not +// present, returns an error. +func (f *RemoteRuntime) ContainerStatus(ctx context.Context, req *kubeapi.ContainerStatusRequest) (*kubeapi.ContainerStatusResponse, error) { + status, err := f.RuntimeService.ContainerStatus(req.ContainerId) + if err != nil { + return nil, err + } + + return &kubeapi.ContainerStatusResponse{Status: status}, nil +} + +// ExecSync runs a command in a container synchronously. +func (f *RemoteRuntime) ExecSync(ctx context.Context, req *kubeapi.ExecSyncRequest) (*kubeapi.ExecSyncResponse, error) { + var exitCode int32 + stdout, stderr, err := f.RuntimeService.ExecSync(req.ContainerId, req.Cmd, time.Duration(req.Timeout)*time.Second) + if err != nil { + exitError, ok := err.(utilexec.ExitError) + if !ok { + return nil, err + } + exitCode = int32(exitError.ExitStatus()) + + return nil, err + } + + return &kubeapi.ExecSyncResponse{ + Stdout: stdout, + Stderr: stderr, + ExitCode: exitCode, + }, nil +} + +// Exec prepares a streaming endpoint to execute a command in the container. +func (f *RemoteRuntime) Exec(ctx context.Context, req *kubeapi.ExecRequest) (*kubeapi.ExecResponse, error) { + return f.RuntimeService.Exec(req) +} + +// Attach prepares a streaming endpoint to attach to a running container. +func (f *RemoteRuntime) Attach(ctx context.Context, req *kubeapi.AttachRequest) (*kubeapi.AttachResponse, error) { + return f.RuntimeService.Attach(req) +} + +// PortForward prepares a streaming endpoint to forward ports from a PodSandbox. +func (f *RemoteRuntime) PortForward(ctx context.Context, req *kubeapi.PortForwardRequest) (*kubeapi.PortForwardResponse, error) { + return f.RuntimeService.PortForward(req) +} + +// ContainerStats returns stats of the container. If the container does not +// exist, the call returns an error. +func (f *RemoteRuntime) ContainerStats(ctx context.Context, req *kubeapi.ContainerStatsRequest) (*kubeapi.ContainerStatsResponse, error) { + stats, err := f.RuntimeService.ContainerStats(req.ContainerId) + if err != nil { + return nil, err + } + + return &kubeapi.ContainerStatsResponse{Stats: stats}, nil +} + +// ListContainerStats returns stats of all running containers. +func (f *RemoteRuntime) ListContainerStats(ctx context.Context, req *kubeapi.ListContainerStatsRequest) (*kubeapi.ListContainerStatsResponse, error) { + stats, err := f.RuntimeService.ListContainerStats(req.Filter) + if err != nil { + return nil, err + } + + return &kubeapi.ListContainerStatsResponse{Stats: stats}, nil +} + +// UpdateRuntimeConfig updates the runtime configuration based on the given request. +func (f *RemoteRuntime) UpdateRuntimeConfig(ctx context.Context, req *kubeapi.UpdateRuntimeConfigRequest) (*kubeapi.UpdateRuntimeConfigResponse, error) { + err := f.RuntimeService.UpdateRuntimeConfig(req.RuntimeConfig) + if err != nil { + return nil, err + } + + return &kubeapi.UpdateRuntimeConfigResponse{}, nil +} + +// Status returns the status of the runtime. +func (f *RemoteRuntime) Status(ctx context.Context, req *kubeapi.StatusRequest) (*kubeapi.StatusResponse, error) { + status, err := f.RuntimeService.Status() + if err != nil { + return nil, err + } + + return &kubeapi.StatusResponse{Status: status}, nil +} + +// UpdateContainerResources updates ContainerConfig of the container. +func (f *RemoteRuntime) UpdateContainerResources(ctx context.Context, req *kubeapi.UpdateContainerResourcesRequest) (*kubeapi.UpdateContainerResourcesResponse, error) { + err := f.RuntimeService.UpdateContainerResources(req.ContainerId, req.Linux) + if err != nil { + return nil, err + } + + return &kubeapi.UpdateContainerResourcesResponse{}, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/remote/remote_runtime_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/remote_runtime_test.go new file mode 100644 index 000000000..db5b31b6b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/remote/remote_runtime_test.go @@ -0,0 +1,69 @@ +/* +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 remote + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" + apitest "k8s.io/kubernetes/pkg/kubelet/apis/cri/testing" + fakeremote "k8s.io/kubernetes/pkg/kubelet/remote/fake" +) + +const ( + defaultConnectionTimeout = 15 * time.Second +) + +// createAndStartFakeRemoteRuntime creates and starts fakeremote.RemoteRuntime. +// It returns the RemoteRuntime, endpoint on success. +// Users should call fakeRuntime.Stop() to cleanup the server. +func createAndStartFakeRemoteRuntime(t *testing.T) (*fakeremote.RemoteRuntime, string) { + endpoint, err := fakeremote.GenerateEndpoint() + assert.NoError(t, err) + + fakeRuntime := fakeremote.NewFakeRemoteRuntime() + go fakeRuntime.Start(endpoint) + + return fakeRuntime, endpoint +} + +func createRemoteRuntimeService(endpoint string, t *testing.T) internalapi.RuntimeService { + runtimeService, err := NewRemoteRuntimeService(endpoint, defaultConnectionTimeout) + assert.NoError(t, err) + + return runtimeService +} + +func createRemoteImageService(endpoint string, t *testing.T) internalapi.ImageManagerService { + imageService, err := NewRemoteImageService(endpoint, defaultConnectionTimeout) + assert.NoError(t, err) + + return imageService +} + +func TestVersion(t *testing.T) { + fakeRuntime, endpoint := createAndStartFakeRemoteRuntime(t) + defer fakeRuntime.Stop() + + r := createRemoteRuntimeService(endpoint, t) + version, err := r.Version(apitest.FakeVersion) + assert.NoError(t, err) + assert.Equal(t, apitest.FakeVersion, version.Version) + assert.Equal(t, apitest.FakeRuntimeName, version.RuntimeName) +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/rkt/rkt.go b/vendor/k8s.io/kubernetes/pkg/kubelet/rkt/rkt.go index 70838fa4c..ddd997114 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/rkt/rkt.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/rkt/rkt.go @@ -842,7 +842,7 @@ func (r *Runtime) newAppcRuntimeApp(pod *v1.Pod, podIP string, c v1.Container, r } // TODO: determine how this should be handled for rkt - opts, _, err := r.runtimeHelper.GenerateRunContainerOptions(pod, &c, podIP) + opts, err := r.runtimeHelper.GenerateRunContainerOptions(pod, &c, podIP) if err != nil { return err } @@ -1041,7 +1041,7 @@ func (r *Runtime) generateRunCommand(pod *v1.Pod, uuid, networkNamespaceID strin } } else { // Setup DNS. - dnsServers, dnsSearches, _, err := r.runtimeHelper.GetClusterDNS(pod) + dnsServers, dnsSearches, _, _, err := r.runtimeHelper.GetClusterDNS(pod) if err != nil { return "", err } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/rkt/rkt_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/rkt/rkt_test.go index de48c30ad..d235fe289 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/rkt/rkt_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/rkt/rkt_test.go @@ -41,7 +41,6 @@ import ( utiltesting "k8s.io/client-go/util/testing" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" containertesting "k8s.io/kubernetes/pkg/kubelet/container/testing" - kubetesting "k8s.io/kubernetes/pkg/kubelet/container/testing" "k8s.io/kubernetes/pkg/kubelet/lifecycle" "k8s.io/kubernetes/pkg/kubelet/network" "k8s.io/kubernetes/pkg/kubelet/network/kubenet" @@ -1398,7 +1397,7 @@ func TestGenerateRunCommand(t *testing.T) { rkt := &Runtime{ nsenterPath: "/usr/bin/nsenter", - os: &kubetesting.FakeOS{HostName: hostName}, + os: &containertesting.FakeOS{HostName: hostName}, config: &Config{ Path: "/bin/rkt/rkt", Stage1Image: "/bin/rkt/stage1-coreos.aci", @@ -1635,7 +1634,7 @@ func TestGarbageCollect(t *testing.T) { fr := newFakeRktInterface() fs := newFakeSystemd() cli := newFakeRktCli() - fakeOS := kubetesting.NewFakeOS() + fakeOS := containertesting.NewFakeOS() deletionProvider := newFakePodDeletionProvider() fug := newfakeUnitGetter() frh := &containertesting.FakeRuntimeHelper{} @@ -2030,7 +2029,7 @@ func TestConstructSyslogIdentifier(t *testing.T) { } func TestGetPodSystemdServiceFiles(t *testing.T) { - fs := kubetesting.NewFakeOS() + fs := containertesting.NewFakeOS() r := &Runtime{os: fs} testCases := []struct { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/secret/secret_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/secret/secret_manager.go index 3b7356f8a..3de230a90 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/secret/secret_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/secret/secret_manager.go @@ -64,7 +64,7 @@ func NewSimpleSecretManager(kubeClient clientset.Interface) Manager { } func (s *simpleSecretManager) GetSecret(namespace, name string) (*v1.Secret, error) { - return s.kubeClient.Core().Secrets(namespace).Get(name, metav1.GetOptions{}) + return s.kubeClient.CoreV1().Secrets(namespace).Get(name, metav1.GetOptions{}) } func (s *simpleSecretManager) RegisterPod(pod *v1.Pod) { @@ -216,7 +216,7 @@ func (s *secretStore) Get(namespace, name string) (*v1.Secret, error) { // etcd and apiserver (the cache is eventually consistent). util.FromApiserverCache(&opts) } - secret, err := s.kubeClient.Core().Secrets(namespace).Get(name, opts) + secret, err := s.kubeClient.CoreV1().Secrets(namespace).Get(name, opts) if err != nil && !apierrors.IsNotFound(err) && data.secret == nil && data.err == nil { // Couldn't fetch the latest secret, but there is no cached data to return. // Return the fetch result instead. @@ -282,6 +282,11 @@ func (c *cachingSecretManager) RegisterPod(pod *v1.Pod) { c.registeredPods[key] = pod if prev != nil { for name := range getSecretNames(prev) { + // On an update, the .Add() call above will have re-incremented the + // ref count of any existing secrets, so any secrets that are in both + // names and prev need to have their ref counts decremented. Any that + // are only in prev need to be completely removed. This unconditional + // call takes care of both cases. c.secretStore.Delete(prev.Namespace, name) } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/secret/secret_manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/secret/secret_manager_test.go index 701a1c4b4..36380e514 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/secret/secret_manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/secret/secret_manager_test.go @@ -299,11 +299,11 @@ type secretsToAttach struct { containerEnvSecrets []envSecrets } -func podWithSecrets(ns, name string, toAttach secretsToAttach) *v1.Pod { +func podWithSecrets(ns, podName string, toAttach secretsToAttach) *v1.Pod { pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Namespace: ns, - Name: name, + Name: podName, }, Spec: v1.PodSpec{}, } @@ -453,27 +453,38 @@ func TestCacheRefcounts(t *testing.T) { manager.RegisterPod(podWithSecrets("ns1", "other-name", s2)) manager.UnregisterPod(podWithSecrets("ns1", "other-name", s2)) + s5 := secretsToAttach{ + containerEnvSecrets: []envSecrets{ + {envVarNames: []string{"s7"}}, + {envFromNames: []string{"s70"}}, + }, + } + // Check the no-op update scenario + manager.RegisterPod(podWithSecrets("ns1", "noop-pod", s5)) + manager.RegisterPod(podWithSecrets("ns1", "noop-pod", s5)) + // Now we have: 3 pods with s1, 2 pods with s2 and 2 pods with s3, 0 pods with s4. - verify := func(ns, name string, count int) bool { + refs := func(ns, name string) int { store.lock.Lock() defer store.lock.Unlock() item, ok := store.items[objectKey{ns, name}] if !ok { - return count == 0 + return 0 } - return item.refCount == count - } - assert.True(t, verify("ns1", "s1", 3)) - assert.True(t, verify("ns1", "s10", 1)) - assert.True(t, verify("ns1", "s2", 3)) - assert.True(t, verify("ns1", "s3", 3)) - assert.True(t, verify("ns1", "s30", 2)) - assert.True(t, verify("ns1", "s4", 2)) - assert.True(t, verify("ns1", "s5", 4)) - assert.True(t, verify("ns1", "s50", 2)) - assert.True(t, verify("ns1", "s6", 0)) - assert.True(t, verify("ns1", "s60", 0)) - assert.True(t, verify("ns1", "s7", 0)) + return item.refCount + } + assert.Equal(t, 3, refs("ns1", "s1")) + assert.Equal(t, 1, refs("ns1", "s10")) + assert.Equal(t, 3, refs("ns1", "s2")) + assert.Equal(t, 3, refs("ns1", "s3")) + assert.Equal(t, 2, refs("ns1", "s30")) + assert.Equal(t, 2, refs("ns1", "s4")) + assert.Equal(t, 4, refs("ns1", "s5")) + assert.Equal(t, 2, refs("ns1", "s50")) + assert.Equal(t, 0, refs("ns1", "s6")) + assert.Equal(t, 0, refs("ns1", "s60")) + assert.Equal(t, 1, refs("ns1", "s7")) + assert.Equal(t, 1, refs("ns1", "s70")) } func TestCachingSecretManager(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/server/BUILD index b1c32b7c9..7584f70d5 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/BUILD @@ -15,8 +15,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/server", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1/validation:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/server/portforward:go_default_library", "//pkg/kubelet/server/remotecommand:go_default_library", @@ -58,8 +59,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/server", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/container:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/BUILD index 062f972a0..190ff7219 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/server/portforward", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", @@ -36,7 +36,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/server/portforward", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/httpstream.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/httpstream.go index 5f872c820..919ed5a78 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/httpstream.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/httpstream.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/util/httpstream" "k8s.io/apimachinery/pkg/util/httpstream/spdy" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "github.com/golang/glog" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/httpstream_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/httpstream_test.go index ee5696d5a..7f815036b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/httpstream_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/httpstream_test.go @@ -22,7 +22,7 @@ import ( "time" "k8s.io/apimachinery/pkg/util/httpstream" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestHTTPStreamReceived(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/websocket.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/websocket.go index cb4bca045..b445c922f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/websocket.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/portforward/websocket.go @@ -32,7 +32,7 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apiserver/pkg/server/httplog" "k8s.io/apiserver/pkg/util/wsstream" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) const ( diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/remotecommand/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/server/remotecommand/BUILD index 8e340aeb5..97da39d61 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/remotecommand/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/remotecommand/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/server/remotecommand", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/remotecommand/httpstream.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/remotecommand/httpstream.go index 9d4883212..74f0595cf 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/remotecommand/httpstream.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/remotecommand/httpstream.go @@ -32,7 +32,7 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apiserver/pkg/util/wsstream" "k8s.io/client-go/tools/remotecommand" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "github.com/golang/glog" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/server.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/server.go index 285a0d376..d22096e48 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/server.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/server.go @@ -50,8 +50,9 @@ import ( "k8s.io/apiserver/pkg/server/httplog" "k8s.io/apiserver/pkg/util/flushwriter" "k8s.io/client-go/tools/remotecommand" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/v1/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/v1/validation" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/server/portforward" remotecommandserver "k8s.io/kubernetes/pkg/kubelet/server/remotecommand" @@ -210,6 +211,8 @@ func NewServer( if enableContentionProfiling { goruntime.SetBlockProfileRate(1) } + } else { + server.InstallDebuggingDisabledHandlers() } return server } @@ -233,14 +236,14 @@ func (s *Server) InstallAuthFilter() { attrs := s.auth.GetRequestAttributes(u, req.Request) // Authorize - authorized, _, err := s.auth.Authorize(attrs) + decision, _, err := s.auth.Authorize(attrs) if err != nil { msg := fmt.Sprintf("Authorization error (user=%s, verb=%s, resource=%s, subresource=%s)", u.GetName(), attrs.GetVerb(), attrs.GetResource(), attrs.GetSubresource()) glog.Errorf(msg, err) resp.WriteErrorString(http.StatusInternalServerError, msg) return } - if !authorized { + if decision != authorizer.DecisionAllow { msg := fmt.Sprintf("Forbidden (user=%s, verb=%s, resource=%s, subresource=%s)", u.GetName(), attrs.GetVerb(), attrs.GetResource(), attrs.GetSubresource()) glog.V(2).Info(msg) resp.WriteErrorString(http.StatusForbidden, msg) @@ -417,6 +420,20 @@ func (s *Server) InstallDebuggingHandlers(criHandler http.Handler) { } } +// InstallDebuggingDisabledHandlers registers the HTTP request patterns that provide better error message +func (s *Server) InstallDebuggingDisabledHandlers() { + h := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + http.Error(w, "Debug endpoints are disabled.", http.StatusMethodNotAllowed) + }) + + paths := []string{ + "/run/", "/exec/", "/attach/", "/portForward/", "/containerLogs/", + "/runningpods/", pprofBasePath, logsPath} + for _, p := range paths { + s.restfulCont.Handle(p, h) + } +} + // Checks if kubelet's sync loop that updates containers is working. func (s *Server) syncLoopHealthCheck(req *http.Request) error { duration := s.host.ResyncInterval() * 2 @@ -465,7 +482,7 @@ func (s *Server) getContainerLogs(request *restful.Request, response *restful.Re } // container logs on the kubelet are locked to the v1 API version of PodLogOptions logOptions := &v1.PodLogOptions{} - if err := api.ParameterCodec.DecodeParameters(query, v1.SchemeGroupVersion, logOptions); err != nil { + if err := legacyscheme.ParameterCodec.DecodeParameters(query, v1.SchemeGroupVersion, logOptions); err != nil { response.WriteError(http.StatusBadRequest, fmt.Errorf(`{"message": "Unable to decode query."}`)) return } @@ -531,7 +548,7 @@ func encodePods(pods []*v1.Pod) (data []byte, err error) { // TODO: this needs to be parameterized to the kubelet, not hardcoded. Depends on Kubelet // as API server refactor. // TODO: Locked to v1, needs to be made generic - codec := api.Codecs.LegacyCodec(schema.GroupVersion{Group: v1.GroupName, Version: "v1"}) + codec := legacyscheme.Codecs.LegacyCodec(schema.GroupVersion{Group: v1.GroupName, Version: "v1"}) return runtime.Encode(codec, podList) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/server_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/server_test.go index 85e62b2aa..c1b068f23 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/server_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/server_test.go @@ -47,10 +47,10 @@ import ( "k8s.io/apiserver/pkg/authorization/authorizer" "k8s.io/client-go/tools/remotecommand" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" // Do some initialization to decode the query parameters correctly. - _ "k8s.io/kubernetes/pkg/api/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" "k8s.io/kubernetes/pkg/kubelet/cm" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" kubecontainertesting "k8s.io/kubernetes/pkg/kubelet/container/testing" @@ -183,7 +183,7 @@ func (_ *fakeKubelet) GetCgroupStats(cgroupName string) (*statsapi.ContainerStat type fakeAuth struct { authenticateFunc func(*http.Request) (user.Info, bool, error) attributesFunc func(user.Info, *http.Request) authorizer.Attributes - authorizeFunc func(authorizer.Attributes) (authorized bool, reason string, err error) + authorizeFunc func(authorizer.Attributes) (authorized authorizer.Decision, reason string, err error) } func (f *fakeAuth) AuthenticateRequest(req *http.Request) (user.Info, bool, error) { @@ -192,7 +192,7 @@ func (f *fakeAuth) AuthenticateRequest(req *http.Request) (user.Info, bool, erro func (f *fakeAuth) GetRequestAttributes(u user.Info, req *http.Request) authorizer.Attributes { return f.attributesFunc(u, req) } -func (f *fakeAuth) Authorize(a authorizer.Attributes) (authorized bool, reason string, err error) { +func (f *fakeAuth) Authorize(a authorizer.Attributes) (authorized authorizer.Decision, reason string, err error) { return f.authorizeFunc(a) } @@ -205,6 +205,10 @@ type serverTestFramework struct { } func newServerTest() *serverTestFramework { + return newServerTestWithDebug(true) +} + +func newServerTestWithDebug(enableDebugging bool) *serverTestFramework { fw := &serverTestFramework{} fw.fakeKubelet = &fakeKubelet{ hostnameFunc: func() string { @@ -228,8 +232,8 @@ func newServerTest() *serverTestFramework { attributesFunc: func(u user.Info, req *http.Request) authorizer.Attributes { return &authorizer.AttributesRecord{User: u} }, - authorizeFunc: func(a authorizer.Attributes) (authorized bool, reason string, err error) { - return true, "", nil + authorizeFunc: func(a authorizer.Attributes) (decision authorizer.Decision, reason string, err error) { + return authorizer.DecisionAllow, "", nil }, } fw.criHandler = &utiltesting.FakeHandler{ @@ -239,7 +243,7 @@ func newServerTest() *serverTestFramework { fw.fakeKubelet, stats.NewResourceAnalyzer(fw.fakeKubelet, time.Minute), fw.fakeAuth, - true, + enableDebugging, false, &kubecontainertesting.Mock{}, fw.criHandler) @@ -684,12 +688,12 @@ Otherwise, add it to the expected list of paths that map to the "proxy" subresou } return attributesGetter.GetRequestAttributes(u, req) } - fw.fakeAuth.authorizeFunc = func(a authorizer.Attributes) (authorized bool, reason string, err error) { + fw.fakeAuth.authorizeFunc = func(a authorizer.Attributes) (decision authorizer.Decision, reason string, err error) { calledAuthorize = true if a != expectedAttributes { t.Fatalf("%s: expected attributes\n\t%#v\ngot\n\t%#v", tc.Path, expectedAttributes, a) } - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } req, err := http.NewRequest(tc.Method, fw.testHTTPServer.URL+tc.Path, nil) @@ -743,9 +747,9 @@ func TestAuthenticationError(t *testing.T) { calledAttributes = true return expectedAttributes } - fw.fakeAuth.authorizeFunc = func(a authorizer.Attributes) (authorized bool, reason string, err error) { + fw.fakeAuth.authorizeFunc = func(a authorizer.Attributes) (decision authorizer.Decision, reason string, err error) { calledAuthorize = true - return false, "", errors.New("Failed") + return authorizer.DecisionNoOpinion, "", errors.New("Failed") } assertHealthFails(t, fw.testHTTPServer.URL+"/healthz", http.StatusInternalServerError) @@ -781,9 +785,9 @@ func TestAuthenticationFailure(t *testing.T) { calledAttributes = true return expectedAttributes } - fw.fakeAuth.authorizeFunc = func(a authorizer.Attributes) (authorized bool, reason string, err error) { + fw.fakeAuth.authorizeFunc = func(a authorizer.Attributes) (decision authorizer.Decision, reason string, err error) { calledAuthorize = true - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } assertHealthFails(t, fw.testHTTPServer.URL+"/healthz", http.StatusUnauthorized) @@ -819,9 +823,9 @@ func TestAuthorizationSuccess(t *testing.T) { calledAttributes = true return expectedAttributes } - fw.fakeAuth.authorizeFunc = func(a authorizer.Attributes) (authorized bool, reason string, err error) { + fw.fakeAuth.authorizeFunc = func(a authorizer.Attributes) (decision authorizer.Decision, reason string, err error) { calledAuthorize = true - return true, "", nil + return authorizer.DecisionAllow, "", nil } assertHealthIsOk(t, fw.testHTTPServer.URL+"/healthz") @@ -1635,3 +1639,59 @@ func TestCRIHandler(t *testing.T) { assert.Equal(t, path, fw.criHandler.RequestReceived.URL.Path) assert.Equal(t, query, fw.criHandler.RequestReceived.URL.RawQuery) } + +func TestDebuggingDisabledHandlers(t *testing.T) { + fw := newServerTestWithDebug(false) + defer fw.testHTTPServer.Close() + + paths := []string{ + "/run", "/exec", "/attach", "/portForward", "/containerLogs", "/runningpods", + "/run/", "/exec/", "/attach/", "/portForward/", "/containerLogs/", "/runningpods/", + "/run/xxx", "/exec/xxx", "/attach/xxx", "/debug/pprof/profile", "/logs/kubelet.log", + } + + for _, p := range paths { + resp, err := http.Get(fw.testHTTPServer.URL + p) + require.NoError(t, err) + assert.Equal(t, http.StatusMethodNotAllowed, resp.StatusCode) + body, err := ioutil.ReadAll(resp.Body) + require.NoError(t, err) + assert.Equal(t, "Debug endpoints are disabled.\n", string(body)) + + resp, err = http.Post(fw.testHTTPServer.URL+p, "", nil) + require.NoError(t, err) + assert.Equal(t, http.StatusMethodNotAllowed, resp.StatusCode) + body, err = ioutil.ReadAll(resp.Body) + require.NoError(t, err) + assert.Equal(t, "Debug endpoints are disabled.\n", string(body)) + } + + // test some other paths, make sure they're working + containerInfo := &cadvisorapi.ContainerInfo{ + ContainerReference: cadvisorapi.ContainerReference{ + Name: "/", + }, + } + fw.fakeKubelet.rawInfoFunc = func(req *cadvisorapi.ContainerInfoRequest) (map[string]*cadvisorapi.ContainerInfo, error) { + return map[string]*cadvisorapi.ContainerInfo{ + containerInfo.Name: containerInfo, + }, nil + } + + resp, err := http.Get(fw.testHTTPServer.URL + "/stats") + require.NoError(t, err) + assert.Equal(t, http.StatusOK, resp.StatusCode) + + machineInfo := &cadvisorapi.MachineInfo{ + NumCores: 4, + MemoryCapacity: 1024, + } + fw.fakeKubelet.machineInfoFunc = func() (*cadvisorapi.MachineInfo, error) { + return machineInfo, nil + } + + resp, err = http.Get(fw.testHTTPServer.URL + "/spec") + require.NoError(t, err) + assert.Equal(t, http.StatusOK, resp.StatusCode) + +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/BUILD index f8d34f185..70fe31d09 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/BUILD @@ -37,7 +37,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/server/streaming", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", "//pkg/kubelet/server/portforward:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/server.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/server.go index dd1028774..ba9f12ff1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/server.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/server.go @@ -362,11 +362,11 @@ var _ remotecommandserver.Attacher = &criAdapter{} var _ portforward.PortForwarder = &criAdapter{} func (a *criAdapter) ExecInContainer(podName string, podUID types.UID, container string, cmd []string, in io.Reader, out, err io.WriteCloser, tty bool, resize <-chan remotecommand.TerminalSize, timeout time.Duration) error { - return a.Exec(container, cmd, in, out, err, tty, resize) + return a.Runtime.Exec(container, cmd, in, out, err, tty, resize) } func (a *criAdapter) AttachContainer(podName string, podUID types.UID, container string, in io.Reader, out, err io.WriteCloser, tty bool, resize <-chan remotecommand.TerminalSize) error { - return a.Attach(container, in, out, err, tty, resize) + return a.Runtime.Attach(container, in, out, err, tty, resize) } func (a *criAdapter) PortForward(podName string, podUID types.UID, port int32, stream io.ReadWriteCloser) error { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/server_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/server_test.go index 835125151..77ccc721c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/server_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/streaming/server_test.go @@ -33,7 +33,7 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/remotecommand" "k8s.io/client-go/transport/spdy" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" kubeletportforward "k8s.io/kubernetes/pkg/kubelet/server/portforward" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/BUILD index dd180f3d9..5f3af9771 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/BUILD @@ -22,6 +22,7 @@ go_library( "//pkg/kubelet/server/stats:go_default_library", "//pkg/kubelet/types:go_default_library", "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/github.com/google/cadvisor/fs:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/info/v2:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go index f855e0db4..bdbf54974 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider.go @@ -21,6 +21,7 @@ import ( "time" "github.com/golang/glog" + "github.com/golang/protobuf/proto" cadvisorfs "github.com/google/cadvisor/fs" cadvisorapiv2 "github.com/google/cadvisor/info/v2" @@ -221,9 +222,15 @@ func (p *criStatsProvider) makeContainerStats( Name: stats.Attributes.Metadata.Name, // The StartTime in the summary API is the container creation time. StartTime: metav1.NewTime(time.Unix(0, container.CreatedAt)), - CPU: &statsapi.CPUStats{}, - Memory: &statsapi.MemoryStats{}, - Rootfs: &statsapi.FsStats{}, + // Work around heapster bug. https://github.com/kubernetes/kubernetes/issues/54962 + // TODO(random-liu): Remove this after heapster is updated to newer than 1.5.0-beta.0. + CPU: &statsapi.CPUStats{ + UsageNanoCores: proto.Uint64(0), + }, + Memory: &statsapi.MemoryStats{ + RSSBytes: proto.Uint64(0), + }, + Rootfs: &statsapi.FsStats{}, Logs: &statsapi.FsStats{ Time: metav1.NewTime(rootFsInfo.Timestamp), AvailableBytes: &rootFsInfo.Available, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider_test.go index 8e4fdd881..fe79b4c6b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/cri_stats_provider_test.go @@ -235,13 +235,13 @@ func makeFakeImageFsUsage(fsUUID string) *runtimeapi.FilesystemUsage { func checkCRICPUAndMemoryStats(assert *assert.Assertions, actual statsapi.ContainerStats, cs *runtimeapi.ContainerStats) { assert.Equal(cs.Cpu.Timestamp, actual.CPU.Time.UnixNano()) assert.Equal(cs.Cpu.UsageCoreNanoSeconds.Value, *actual.CPU.UsageCoreNanoSeconds) - assert.Nil(actual.CPU.UsageNanoCores) + assert.Zero(*actual.CPU.UsageNanoCores) assert.Equal(cs.Memory.Timestamp, actual.Memory.Time.UnixNano()) assert.Nil(actual.Memory.AvailableBytes) assert.Nil(actual.Memory.UsageBytes) assert.Equal(cs.Memory.WorkingSetBytes.Value, *actual.Memory.WorkingSetBytes) - assert.Nil(actual.Memory.RSSBytes) + assert.Zero(*actual.Memory.RSSBytes) assert.Nil(actual.Memory.PageFaults) assert.Nil(actual.Memory.MajorPageFaults) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/status/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/status/BUILD index 52cc538bc..0483a6a3b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/status/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/status/BUILD @@ -40,8 +40,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/kubelet/status", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/configmap:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/pod:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/status/status_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/status/status_manager.go index dafd0a091..d9a027d54 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/status/status_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/status/status_manager.go @@ -17,6 +17,7 @@ limitations under the License. package status import ( + "fmt" "sort" "sync" "time" @@ -264,6 +265,32 @@ func (m *manager) TerminatePod(pod *v1.Pod) { m.updateStatusInternal(pod, status, true) } +// checkContainerStateTransition ensures that no container is trying to transition +// from a terminated to non-terminated state, which is illegal and indicates a +// logical error in the kubelet. +func checkContainerStateTransition(oldStatuses, newStatuses []v1.ContainerStatus, restartPolicy v1.RestartPolicy) error { + // If we should always restart, containers are allowed to leave the terminated state + if restartPolicy == v1.RestartPolicyAlways { + return nil + } + for _, oldStatus := range oldStatuses { + // Skip any container that wasn't terminated + if oldStatus.State.Terminated == nil { + continue + } + // Skip any container that failed but is allowed to restart + if oldStatus.State.Terminated.ExitCode != 0 && restartPolicy == v1.RestartPolicyOnFailure { + continue + } + for _, newStatus := range newStatuses { + if oldStatus.Name == newStatus.Name && newStatus.State.Terminated == nil { + return fmt.Errorf("terminated container %v attempted illegal transition to non-terminated state", newStatus.Name) + } + } + } + return nil +} + // updateStatusInternal updates the internal status cache, and queues an update to the api server if // necessary. Returns whether an update was triggered. // This method IS NOT THREAD SAFE and must be called from a locked function. @@ -278,6 +305,16 @@ func (m *manager) updateStatusInternal(pod *v1.Pod, status v1.PodStatus, forceUp oldStatus = pod.Status } + // Check for illegal state transition in containers + if err := checkContainerStateTransition(oldStatus.ContainerStatuses, status.ContainerStatuses, pod.Spec.RestartPolicy); err != nil { + glog.Errorf("Status update on pod %v/%v aborted: %v", pod.Namespace, pod.Name, err) + return false + } + if err := checkContainerStateTransition(oldStatus.InitContainerStatuses, status.InitContainerStatuses, pod.Spec.RestartPolicy); err != nil { + glog.Errorf("Status update on pod %v/%v aborted: %v", pod.Namespace, pod.Name, err) + return false + } + // Set ReadyCondition.LastTransitionTime. if _, readyCondition := podutil.GetPodCondition(&status, v1.PodReady); readyCondition != nil { // Need to set LastTransitionTime. @@ -411,7 +448,7 @@ func (m *manager) syncPod(uid types.UID, status versionedPodStatus) { } // TODO: make me easier to express from client code - pod, err := m.kubeClient.Core().Pods(status.podNamespace).Get(status.podName, metav1.GetOptions{}) + pod, err := m.kubeClient.CoreV1().Pods(status.podNamespace).Get(status.podName, metav1.GetOptions{}) if errors.IsNotFound(err) { glog.V(3).Infof("Pod %q (%s) does not exist on the server", status.podName, uid) // If the Pod is deleted the status will be cleared in @@ -432,7 +469,7 @@ func (m *manager) syncPod(uid types.UID, status versionedPodStatus) { } pod.Status = status.status // TODO: handle conflict as a retry, make that easier too. - newPod, err := m.kubeClient.Core().Pods(pod.Namespace).UpdateStatus(pod) + newPod, err := m.kubeClient.CoreV1().Pods(pod.Namespace).UpdateStatus(pod) if err != nil { glog.Warningf("Failed to update status for pod %q: %v", format.Pod(pod), err) return @@ -447,7 +484,7 @@ func (m *manager) syncPod(uid types.UID, status versionedPodStatus) { deleteOptions := metav1.NewDeleteOptions(0) // Use the pod UID as the precondition for deletion to prevent deleting a newly created pod with the same name and namespace. deleteOptions.Preconditions = metav1.NewUIDPreconditions(string(pod.UID)) - err = m.kubeClient.Core().Pods(pod.Namespace).Delete(pod.Name, deleteOptions) + err = m.kubeClient.CoreV1().Pods(pod.Namespace).Delete(pod.Name, deleteOptions) if err != nil { glog.Warningf("Failed to delete status for pod %q: %v", format.Pod(pod), err) return diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/status/status_manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/status/status_manager_test.go index dff67680e..1d332b221 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/status/status_manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/status/status_manager_test.go @@ -34,8 +34,8 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + api "k8s.io/kubernetes/pkg/apis/core" kubeconfigmap "k8s.io/kubernetes/pkg/kubelet/configmap" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" kubepod "k8s.io/kubernetes/pkg/kubelet/pod" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/BUILD index b5d2a4e84..7d7cc778d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/BUILD @@ -15,8 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/sysctl", deps = [ - "//pkg/api/v1/helper:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/lifecycle:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/runtime.go b/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/runtime.go index 36d8e1db3..cd8e34f7c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/runtime.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/runtime.go @@ -19,7 +19,7 @@ package sysctl import ( "fmt" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/lifecycle" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/whitelist.go b/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/whitelist.go index d78c7b7d1..9bb1086a5 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/whitelist.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/sysctl/whitelist.go @@ -21,8 +21,8 @@ import ( "strings" "k8s.io/api/core/v1" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" - "k8s.io/kubernetes/pkg/api/validation" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" + "k8s.io/kubernetes/pkg/apis/core/validation" extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/kubelet/lifecycle" ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/types/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/types/BUILD index 42d594fe0..515d1e8a0 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/types/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/types/BUILD @@ -17,7 +17,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/kubelet/types", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core: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/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/types/pod_update.go b/vendor/k8s.io/kubernetes/pkg/kubelet/types/pod_update.go index 2b95b3b18..7d1f481dc 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/types/pod_update.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/types/pod_update.go @@ -21,7 +21,7 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - kubeapi "k8s.io/kubernetes/pkg/api" + kubeapi "k8s.io/kubernetes/pkg/apis/core" ) const ( diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/util/BUILD index a51fc6dae..ad092614a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/BUILD @@ -21,6 +21,9 @@ go_library( "util.go", "util_unsupported.go", ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "util_unix.go", + ], "@io_bazel_rules_go//go/platform:linux_amd64": [ "util_unix.go", ], @@ -33,6 +36,10 @@ go_library( deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/sys/unix:go_default_library", @@ -53,11 +60,11 @@ filegroup( srcs = [ ":package-srcs", "//pkg/kubelet/util/cache:all-srcs", - "//pkg/kubelet/util/csr:all-srcs", "//pkg/kubelet/util/format:all-srcs", "//pkg/kubelet/util/ioutils:all-srcs", "//pkg/kubelet/util/queue:all-srcs", "//pkg/kubelet/util/sliceutils:all-srcs", + "//pkg/kubelet/util/store:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/BUILD new file mode 100644 index 000000000..66640ca19 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "filestore.go", + "store.go", + ], + importpath = "k8s.io/kubernetes/pkg/kubelet/util/store", + visibility = ["//visibility:public"], + deps = ["//pkg/util/filesystem:go_default_library"], +) + +go_test( + name = "go_default_test", + srcs = [ + "filestore_test.go", + "store_test.go", + ], + importpath = "k8s.io/kubernetes/pkg/kubelet/util/store", + library = ":go_default_library", + deps = [ + "//pkg/util/filesystem:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/github.com/stretchr/testify/require: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/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/doc.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/doc.go similarity index 79% rename from vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/doc.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/util/store/doc.go index dcbd2a048..b4d8523a0 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/doc.go @@ -14,4 +14,5 @@ See the License for the specific language governing permissions and limitations under the License. */ -package externaladmissionhookconfiguration // import "k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration" +// Package store hosts a Store interface and its implementations. +package store // import "k8s.io/kubernetes/pkg/kubelet/util/store" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/filestore.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/filestore.go new file mode 100644 index 000000000..d22226637 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/filestore.go @@ -0,0 +1,167 @@ +/* +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 store + +import ( + "fmt" + "os" + "path/filepath" + "strings" + + utilfs "k8s.io/kubernetes/pkg/util/filesystem" +) + +const ( + // Name prefix for the temporary files. + tmpPrefix = "." +) + +// FileStore is an implementation of the Store interface which stores data in files. +type FileStore struct { + // Absolute path to the base directory for storing data files. + directoryPath string + + // filesystem to use. + filesystem utilfs.Filesystem +} + +// NewFileStore returns an instance of FileStore. +func NewFileStore(path string, fs utilfs.Filesystem) (Store, error) { + if err := ensureDirectory(fs, path); err != nil { + return nil, err + } + return &FileStore{directoryPath: path, filesystem: fs}, nil +} + +// Write writes the given data to a file named key. +func (f *FileStore) Write(key string, data []byte) error { + if err := ValidateKey(key); err != nil { + return err + } + if err := ensureDirectory(f.filesystem, f.directoryPath); err != nil { + return err + } + + return writeFile(f.filesystem, f.getPathByKey(key), data) +} + +// Read reads the data from the file named key. +func (f *FileStore) Read(key string) ([]byte, error) { + if err := ValidateKey(key); err != nil { + return nil, err + } + bytes, err := f.filesystem.ReadFile(f.getPathByKey(key)) + if os.IsNotExist(err) { + return bytes, ErrKeyNotFound + } + return bytes, err +} + +// Delete deletes the key file. +func (f *FileStore) Delete(key string) error { + if err := ValidateKey(key); err != nil { + return err + } + return removePath(f.filesystem, f.getPathByKey(key)) +} + +// List returns all keys in the store. +func (f *FileStore) List() ([]string, error) { + keys := make([]string, 0) + files, err := f.filesystem.ReadDir(f.directoryPath) + if err != nil { + return keys, err + } + for _, f := range files { + if !strings.HasPrefix(f.Name(), tmpPrefix) { + keys = append(keys, f.Name()) + } + } + return keys, nil +} + +// getPathByKey returns the full path of the file for the key. +func (f *FileStore) getPathByKey(key string) string { + return filepath.Join(f.directoryPath, key) +} + +// ensureDirectory creates the directory if it does not exist. +func ensureDirectory(fs utilfs.Filesystem, path string) error { + if _, err := fs.Stat(path); err != nil { + // MkdirAll returns nil if directory already exists. + return fs.MkdirAll(path, 0755) + } + return nil +} + +// writeFile writes data to path in a single transaction. +func writeFile(fs utilfs.Filesystem, path string, data []byte) (retErr error) { + // Create a temporary file in the base directory of `path` with a prefix. + tmpFile, err := fs.TempFile(filepath.Dir(path), tmpPrefix) + if err != nil { + return err + } + + tmpPath := tmpFile.Name() + shouldClose := true + + defer func() { + // Close the file. + if shouldClose { + if err := tmpFile.Close(); err != nil { + if retErr == nil { + retErr = fmt.Errorf("close error: %v", err) + } else { + retErr = fmt.Errorf("failed to close temp file after error %v; close error: %v", retErr, err) + } + } + } + + // Clean up the temp file on error. + if retErr != nil && tmpPath != "" { + if err := removePath(fs, tmpPath); err != nil { + retErr = fmt.Errorf("failed to remove the temporary file (%q) after error %v; remove error: %v", tmpPath, retErr, err) + } + } + }() + + // Write data. + if _, err := tmpFile.Write(data); err != nil { + return err + } + + // Sync file. + if err := tmpFile.Sync(); err != nil { + return err + } + + // Closing the file before renaming. + err = tmpFile.Close() + shouldClose = false + if err != nil { + return err + } + + return fs.Rename(tmpPath, path) +} + +func removePath(fs utilfs.Filesystem, path string) error { + if err := fs.Remove(path); err != nil && !os.IsNotExist(err) { + return err + } + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/checkpoint_store_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/filestore_test.go similarity index 57% rename from vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/checkpoint_store_test.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/util/store/filestore_test.go index 97d7a5a23..8d2352222 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/checkpoint_store_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/filestore_test.go @@ -14,26 +14,34 @@ See the License for the specific language governing permissions and limitations under the License. */ -package dockershim +package store import ( "io/ioutil" - "os" "sort" "testing" "github.com/stretchr/testify/assert" - "k8s.io/kubernetes/pkg/kubelet/dockershim/errors" + "github.com/stretchr/testify/require" + "k8s.io/kubernetes/pkg/util/filesystem" ) func TestFileStore(t *testing.T) { path, err := ioutil.TempDir("", "FileStore") assert.NoError(t, err) - defer cleanUpTestPath(t, path) - store, err := NewFileStore(path) + store, err := NewFileStore(path, filesystem.DefaultFs{}) assert.NoError(t, err) + testStore(t, store) +} + +func TestFakeFileStore(t *testing.T) { + store, err := NewFileStore("/tmp/test-fake-file-store", filesystem.NewFakeFs()) + assert.NoError(t, err) + testStore(t, store) +} - Checkpoints := []struct { +func testStore(t *testing.T, store Store) { + testCases := []struct { key string data string expectErr bool @@ -70,89 +78,49 @@ func TestFileStore(t *testing.T) { }, } - // Test Add Checkpoint - for _, c := range Checkpoints { - _, err = store.Read(c.key) + // Test add data. + for _, c := range testCases { + t.Log("test case: ", c) + _, err := store.Read(c.key) assert.Error(t, err) err = store.Write(c.key, []byte(c.data)) if c.expectErr { assert.Error(t, err) continue - } else { - assert.NoError(t, err) } - // Test Read Checkpoint + require.NoError(t, err) + // Test read data by key. data, err := store.Read(c.key) - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, string(data), c.data) } - // Test list checkpoints. + // Test list keys. keys, err := store.List() assert.NoError(t, err) sort.Strings(keys) assert.Equal(t, keys, []string{"id1", "id2"}) - // Test Delete Checkpoint - for _, c := range Checkpoints { + // Test Delete data + for _, c := range testCases { if c.expectErr { continue } err = store.Delete(c.key) - assert.NoError(t, err) + require.NoError(t, err) _, err = store.Read(c.key) - assert.EqualValues(t, errors.CheckpointNotFoundError, err) + assert.EqualValues(t, ErrKeyNotFound, err) } - // Test delete non existed checkpoint + // Test delete non-existent key. err = store.Delete("id1") assert.NoError(t, err) - // Test list checkpoints. + // Test list keys. keys, err = store.List() - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, len(keys), 0) } - -func TestIsValidKey(t *testing.T) { - testcases := []struct { - key string - valid bool - }{ - { - " ", - false, - }, - { - "/foo/bar", - false, - }, - { - ".foo", - false, - }, - { - "a78768279290d33d0b82eaea43cb8346f500057cb5bd250e88c97a5585385d66", - true, - }, - } - - for _, tc := range testcases { - if tc.valid { - assert.NoError(t, validateKey(tc.key)) - } else { - assert.Error(t, validateKey(tc.key)) - } - } -} - -func cleanUpTestPath(t *testing.T, path string) { - if _, err := os.Stat(path); !os.IsNotExist(err) { - if err := os.RemoveAll(path); err != nil { - assert.NoError(t, err, "Failed to delete test directory: %v", err) - } - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/store.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/store.go new file mode 100644 index 000000000..e797fd812 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/store.go @@ -0,0 +1,64 @@ +/* +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 store + +import ( + "fmt" + "regexp" +) + +const ( + keyMaxLength = 250 + + keyCharFmt string = "[A-Za-z0-9]" + keyExtCharFmt string = "[-A-Za-z0-9_.]" + qualifiedKeyFmt string = "(" + keyCharFmt + keyExtCharFmt + "*)?" + keyCharFmt +) + +var ( + // Key must consist of alphanumeric characters, '-', '_' or '.', and must start + // and end with an alphanumeric character. + keyRegex = regexp.MustCompile("^" + qualifiedKeyFmt + "$") + + // ErrKeyNotFound is the error returned if key is not found in Store. + ErrKeyNotFound = fmt.Errorf("key is not found") +) + +// Store provides the interface for storing keyed data. +// Store must be thread-safe +type Store interface { + // key must contain one or more characters in [A-Za-z0-9] + // Write writes data with key. + Write(key string, data []byte) error + // Read retrieves data with key + // Read must return ErrKeyNotFound if key is not found. + Read(key string) ([]byte, error) + // Delete deletes data by key + // Delete must not return error if key does not exist + Delete(key string) error + // List lists all existing keys. + List() ([]string, error) +} + +// ValidateKey returns an error if the given key does not meet the requirement +// of the key format and length. +func ValidateKey(key string) error { + if len(key) <= keyMaxLength && keyRegex.MatchString(key) { + return nil + } + return fmt.Errorf("invalid key: %q", key) +} diff --git a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/merge.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/store_test.go similarity index 51% rename from vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/merge.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/util/store/store_test.go index 69c06e80b..a9c6e9c14 100644 --- a/vendor/k8s.io/kubernetes/federation/plugin/pkg/admission/schedulingpolicy/merge.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/store/store_test.go @@ -14,32 +14,50 @@ See the License for the specific language governing permissions and limitations under the License. */ -package schedulingpolicy +package store import ( - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" -) + "testing" -// mergeAnnotations updates obj so that the provided annotations supersede the -// existing annotations. -func mergeAnnotations(obj runtime.Object, annotations map[string]string) error { - if len(annotations) == 0 { - return nil - } + "github.com/stretchr/testify/assert" +) - accessor, err := meta.Accessor(obj) - if err != nil { - return err +func TestIsValidKey(t *testing.T) { + testcases := []struct { + key string + valid bool + }{ + { + " ", + false, + }, + { + "/foo/bar", + false, + }, + { + ".foo", + false, + }, + { + "a78768279290d33d0b82eaea43cb8346f500057cb5bd250e88c97a5585385d66", + true, + }, + { + "a7.87-6_8", + true, + }, + { + "a7.87-677-", + false, + }, } - orig := accessor.GetAnnotations() - for k := range orig { - if _, ok := annotations[k]; !ok { - annotations[k] = orig[k] + for _, tc := range testcases { + if tc.valid { + assert.NoError(t, ValidateKey(tc.key)) + } else { + assert.Error(t, ValidateKey(tc.key)) } } - - accessor.SetAnnotations(annotations) - return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unix.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unix.go index c0c707599..0b8fea9c8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unix.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unix.go @@ -1,4 +1,4 @@ -// +build freebsd linux +// +build freebsd linux darwin /* Copyright 2017 The Kubernetes Authors. diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unsupported.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unsupported.go index ffc4d642d..5fd2e9c68 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unsupported.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unsupported.go @@ -1,4 +1,4 @@ -// +build !freebsd,!linux,!windows +// +build !freebsd,!linux,!windows,!darwin /* Copyright 2017 The Kubernetes Authors. diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volume_host.go b/vendor/k8s.io/kubernetes/pkg/kubelet/volume_host.go index 26323b7d8..251945126 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/volume_host.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volume_host.go @@ -20,11 +20,17 @@ import ( "fmt" "net" + "github.com/golang/glog" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" + utilfeature "k8s.io/apiserver/pkg/util/feature" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/cloudprovider" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/configmap" + "k8s.io/kubernetes/pkg/kubelet/container" + "k8s.io/kubernetes/pkg/kubelet/mountpod" "k8s.io/kubernetes/pkg/kubelet/secret" "k8s.io/kubernetes/pkg/util/io" "k8s.io/kubernetes/pkg/util/mount" @@ -43,11 +49,17 @@ func NewInitializedVolumePluginMgr( configMapManager configmap.Manager, plugins []volume.VolumePlugin, prober volume.DynamicPluginProber) (*volume.VolumePluginMgr, error) { + + mountPodManager, err := mountpod.NewManager(kubelet.getRootDir(), kubelet.podManager) + if err != nil { + return nil, err + } kvh := &kubeletVolumeHost{ kubelet: kubelet, volumePluginMgr: volume.VolumePluginMgr{}, secretManager: secretManager, configMapManager: configMapManager, + mountPodManager: mountPodManager, } if err := kvh.volumePluginMgr.InitPlugins(plugins, prober, kvh); err != nil { @@ -71,6 +83,7 @@ type kubeletVolumeHost struct { volumePluginMgr volume.VolumePluginMgr secretManager secret.Manager configMapManager configmap.Manager + mountPodManager mountpod.Manager } func (kvh *kubeletVolumeHost) GetPodVolumeDir(podUID types.UID, pluginName string, volumeName string) string { @@ -119,7 +132,16 @@ func (kvh *kubeletVolumeHost) GetCloudProvider() cloudprovider.Interface { } func (kvh *kubeletVolumeHost) GetMounter(pluginName string) mount.Interface { - return kvh.kubelet.mounter + exec, err := kvh.getMountExec(pluginName) + if err != nil { + glog.V(2).Info("Error finding mount pod for plugin %s: %s", pluginName, err.Error()) + // Use the default mounter + exec = nil + } + if exec == nil { + return kvh.kubelet.mounter + } + return mount.NewExecMounter(exec, kvh.kubelet.mounter) } func (kvh *kubeletVolumeHost) GetWriter() io.Writer { @@ -159,5 +181,56 @@ func (kvh *kubeletVolumeHost) GetNodeLabels() (map[string]string, error) { } func (kvh *kubeletVolumeHost) GetExec(pluginName string) mount.Exec { - return mount.NewOsExec() + exec, err := kvh.getMountExec(pluginName) + if err != nil { + glog.V(2).Info("Error finding mount pod for plugin %s: %s", pluginName, err.Error()) + // Use the default exec + exec = nil + } + if exec == nil { + return mount.NewOsExec() + } + return exec +} + +// getMountExec returns mount.Exec implementation that leads to pod with mount +// utilities. It returns nil,nil when there is no such pod and default mounter / +// os.Exec should be used. +func (kvh *kubeletVolumeHost) getMountExec(pluginName string) (mount.Exec, error) { + if !utilfeature.DefaultFeatureGate.Enabled(features.MountContainers) { + glog.V(5).Infof("using default mounter/exec for %s", pluginName) + return nil, nil + } + + pod, container, err := kvh.mountPodManager.GetMountPod(pluginName) + if err != nil { + return nil, err + } + if pod == nil { + // Use default mounter/exec for this plugin + glog.V(5).Infof("using default mounter/exec for %s", pluginName) + return nil, nil + } + glog.V(5).Infof("using container %s/%s/%s to execute mount utilites for %s", pod.Namespace, pod.Name, container, pluginName) + return &containerExec{ + pod: pod, + containerName: container, + kl: kvh.kubelet, + }, nil +} + +// containerExec is implementation of mount.Exec that executes commands in given +// container in given pod. +type containerExec struct { + pod *v1.Pod + containerName string + kl *Kubelet +} + +var _ mount.Exec = &containerExec{} + +func (e *containerExec) Run(cmd string, args ...string) ([]byte, error) { + cmdline := append([]string{cmd}, args...) + glog.V(5).Infof("Exec mounter running in pod %s/%s/%s: %v", e.pod.Namespace, e.pod.Name, e.containerName, cmdline) + return e.kl.RunInContainer(container.GetPodFullName(e.pod), e.pod.UID, e.containerName, cmdline) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/OWNERS index 72077ea4c..0f0dc72d7 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/OWNERS @@ -6,3 +6,5 @@ reviewers: - rootfs - jingxu97 - msau42 +- verult +- davidz627 diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go index d4a13c58a..4c457217c 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go @@ -396,7 +396,7 @@ func (dswp *desiredStateOfWorldPopulator) createVolumeSpec( func (dswp *desiredStateOfWorldPopulator) getPVCExtractPV( namespace string, claimName string) (string, types.UID, error) { pvc, err := - dswp.kubeClient.Core().PersistentVolumeClaims(namespace).Get(claimName, metav1.GetOptions{}) + dswp.kubeClient.CoreV1().PersistentVolumeClaims(namespace).Get(claimName, metav1.GetOptions{}) if err != nil || pvc == nil { return "", "", fmt.Errorf( "failed to fetch PVC %s/%s from API server. err=%v", @@ -425,7 +425,7 @@ func (dswp *desiredStateOfWorldPopulator) getPVSpec( name string, pvcReadOnly bool, expectedClaimUID types.UID) (*volume.Spec, string, error) { - pv, err := dswp.kubeClient.Core().PersistentVolumes().Get(name, metav1.GetOptions{}) + pv, err := dswp.kubeClient.CoreV1().PersistentVolumes().Get(name, metav1.GetOptions{}) if err != nil || pv == nil { return nil, "", fmt.Errorf( "failed to fetch PV %q from API server. err=%v", name, err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go index 81642fb6a..00e5f046f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go @@ -495,7 +495,7 @@ func (rc *reconciler) reconstructVolume(volume podVolume) (*reconstructedVolume, func (rc *reconciler) updateStates(volumesNeedUpdate map[v1.UniqueVolumeName]*reconstructedVolume) error { // Get the node status to retrieve volume device path information. - node, fetchErr := rc.kubeClient.Core().Nodes().Get(string(rc.nodeName), metav1.GetOptions{}) + node, fetchErr := rc.kubeClient.CoreV1().Nodes().Get(string(rc.nodeName), metav1.GetOptions{}) if fetchErr != nil { glog.Errorf("updateStates in reconciler: could not get node status with error %v", fetchErr) } else { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/volume_manager_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/volume_manager_test.go index 6eb81cb7f..7632a5f94 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/volume_manager_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/volume_manager_test.go @@ -324,11 +324,11 @@ func delayClaimBecomesBound( ) { time.Sleep(500 * time.Millisecond) volumeClaim, _ := - kubeClient.Core().PersistentVolumeClaims(namespace).Get(claimName, metav1.GetOptions{}) + kubeClient.CoreV1().PersistentVolumeClaims(namespace).Get(claimName, metav1.GetOptions{}) volumeClaim.Status = v1.PersistentVolumeClaimStatus{ Phase: v1.ClaimBound, } - kubeClient.Core().PersistentVolumeClaims(namespace).Update(volumeClaim) + kubeClient.CoreV1().PersistentVolumeClaims(namespace).Update(volumeClaim) return } diff --git a/vendor/k8s.io/kubernetes/pkg/kubemark/BUILD b/vendor/k8s.io/kubernetes/pkg/kubemark/BUILD index 4cb0026ab..a11620af8 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubemark/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubemark/BUILD @@ -17,7 +17,7 @@ go_library( "//cmd/kube-proxy/app:go_default_library", "//cmd/kubelet/app:go_default_library", "//cmd/kubelet/app/options:go_default_library", - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/controller:go_default_library", "//pkg/kubelet:go_default_library", @@ -25,7 +25,7 @@ go_library( "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/container/testing:go_default_library", - "//pkg/kubelet/dockershim/libdocker:go_default_library", + "//pkg/kubelet/dockershim:go_default_library", "//pkg/kubelet/types:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/config:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubemark/hollow_kubelet.go b/vendor/k8s.io/kubernetes/pkg/kubemark/hollow_kubelet.go index 671d19912..da805d535 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubemark/hollow_kubelet.go +++ b/vendor/k8s.io/kubernetes/pkg/kubemark/hollow_kubelet.go @@ -28,7 +28,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/cadvisor" "k8s.io/kubernetes/pkg/kubelet/cm" containertest "k8s.io/kubernetes/pkg/kubelet/container/testing" - "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" + "k8s.io/kubernetes/pkg/kubelet/dockershim" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" kubeio "k8s.io/kubernetes/pkg/util/io" "k8s.io/kubernetes/pkg/util/mount" @@ -50,7 +50,7 @@ func NewHollowKubelet( nodeName string, client *clientset.Clientset, cadvisorInterface cadvisor.Interface, - dockerClient libdocker.Interface, + dockerClientConfig *dockershim.ClientConfig, kubeletPort, kubeletReadOnlyPort int, containerManager cm.ContainerManager, maxPods int, podsPerCore int, @@ -66,18 +66,18 @@ func NewHollowKubelet( volumePlugins := empty_dir.ProbeVolumePlugins() volumePlugins = append(volumePlugins, secret.ProbeVolumePlugins()...) d := &kubelet.Dependencies{ - KubeClient: client, - HeartbeatClient: client.CoreV1(), - DockerClient: dockerClient, - CAdvisorInterface: cadvisorInterface, - Cloud: nil, - OSInterface: &containertest.FakeOS{}, - ContainerManager: containerManager, - VolumePlugins: volumePlugins, - TLSOptions: nil, - OOMAdjuster: oom.NewFakeOOMAdjuster(), - Writer: &kubeio.StdWriter{}, - Mounter: mount.New("" /* default mount path */), + KubeClient: client, + HeartbeatClient: client.CoreV1(), + DockerClientConfig: dockerClientConfig, + CAdvisorInterface: cadvisorInterface, + Cloud: nil, + OSInterface: &containertest.FakeOS{}, + ContainerManager: containerManager, + VolumePlugins: volumePlugins, + TLSOptions: nil, + OOMAdjuster: oom.NewFakeOOMAdjuster(), + Writer: &kubeio.StdWriter{}, + Mounter: mount.New("" /* default mount path */), } return &HollowKubelet{ @@ -140,11 +140,8 @@ func GetHollowKubeletConfig( c.ImageGCLowThresholdPercent = 80 c.VolumeStatsAggPeriod.Duration = time.Minute c.CgroupRoot = "" - c.ContainerRuntime = kubetypes.DockerContainerRuntime c.CPUCFSQuota = true - c.RuntimeCgroups = "" c.EnableControllerAttachDetach = false - c.EnableCustomMetrics = false c.EnableDebuggingHandlers = true c.EnableServer = true c.CgroupsPerQOS = false diff --git a/vendor/k8s.io/kubernetes/pkg/kubemark/hollow_proxy.go b/vendor/k8s.io/kubernetes/pkg/kubemark/hollow_proxy.go index 861509cc1..27ca11289 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubemark/hollow_proxy.go +++ b/vendor/k8s.io/kubernetes/pkg/kubemark/hollow_proxy.go @@ -27,7 +27,7 @@ import ( v1core "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/client-go/tools/record" proxyapp "k8s.io/kubernetes/cmd/kube-proxy/app" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/proxy" proxyconfig "k8s.io/kubernetes/pkg/proxy/config" diff --git a/vendor/k8s.io/kubernetes/pkg/master/BUILD b/vendor/k8s.io/kubernetes/pkg/master/BUILD index 5101fd121..639949d4d 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/master/BUILD @@ -18,8 +18,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/master", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/admission/install:go_default_library", "//pkg/apis/admissionregistration/install:go_default_library", "//pkg/apis/apps/install:go_default_library", @@ -29,6 +28,8 @@ go_library( "//pkg/apis/batch/install:go_default_library", "//pkg/apis/certificates/install:go_default_library", "//pkg/apis/componentconfig/install:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/extensions/install:go_default_library", "//pkg/apis/imagepolicy/install:go_default_library", "//pkg/apis/networking/install:go_default_library", @@ -118,12 +119,13 @@ go_test( importpath = "k8s.io/kubernetes/pkg/master", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/certificates:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/master/client_ca_hook.go b/vendor/k8s.io/kubernetes/pkg/master/client_ca_hook.go index 3a2780c92..fedfdca35 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/client_ca_hook.go +++ b/vendor/k8s.io/kubernetes/pkg/master/client_ca_hook.go @@ -26,7 +26,7 @@ import ( utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" ) diff --git a/vendor/k8s.io/kubernetes/pkg/master/client_ca_hook_test.go b/vendor/k8s.io/kubernetes/pkg/master/client_ca_hook_test.go index 02dff52c1..64aa61712 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/client_ca_hook_test.go +++ b/vendor/k8s.io/kubernetes/pkg/master/client_ca_hook_test.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" clienttesting "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" ) diff --git a/vendor/k8s.io/kubernetes/pkg/master/controller.go b/vendor/k8s.io/kubernetes/pkg/master/controller.go index 158b5d1f6..ef919b296 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/controller.go +++ b/vendor/k8s.io/kubernetes/pkg/master/controller.go @@ -29,7 +29,7 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/master/reconcilers" "k8s.io/kubernetes/pkg/registry/core/rangeallocation" @@ -112,6 +112,11 @@ func (c *Controller) PostStartHook(hookContext genericapiserver.PostStartHookCon return nil } +func (c *Controller) PreShutdownHook() error { + c.Stop() + return nil +} + // Start begins the core controller loops that must exist for bootstrapping // a cluster. func (c *Controller) Start() { @@ -140,6 +145,14 @@ func (c *Controller) Start() { c.runner.Start() } +func (c *Controller) Stop() { + if c.runner != nil { + c.runner.Stop() + } + endpointPorts := createEndpointPortSpec(c.PublicServicePort, "https", c.ExtraEndpointPorts) + c.EndpointReconciler.StopReconciling("kubernetes", c.PublicIP, endpointPorts) +} + // RunKubernetesNamespaces periodically makes sure that all internal namespaces exist func (c *Controller) RunKubernetesNamespaces(ch chan struct{}) { wait.Until(func() { diff --git a/vendor/k8s.io/kubernetes/pkg/master/controller_test.go b/vendor/k8s.io/kubernetes/pkg/master/controller_test.go index 439f6f698..ec7d63158 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/controller_test.go +++ b/vendor/k8s.io/kubernetes/pkg/master/controller_test.go @@ -24,7 +24,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" "k8s.io/kubernetes/pkg/master/reconcilers" ) diff --git a/vendor/k8s.io/kubernetes/pkg/master/import_known_versions.go b/vendor/k8s.io/kubernetes/pkg/master/import_known_versions.go index 93388ad9b..30a6b6b24 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/import_known_versions.go +++ b/vendor/k8s.io/kubernetes/pkg/master/import_known_versions.go @@ -20,8 +20,8 @@ package master import ( "fmt" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/admission/install" _ "k8s.io/kubernetes/pkg/apis/admissionregistration/install" _ "k8s.io/kubernetes/pkg/apis/apps/install" @@ -31,6 +31,7 @@ import ( _ "k8s.io/kubernetes/pkg/apis/batch/install" _ "k8s.io/kubernetes/pkg/apis/certificates/install" _ "k8s.io/kubernetes/pkg/apis/componentconfig/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" _ "k8s.io/kubernetes/pkg/apis/extensions/install" _ "k8s.io/kubernetes/pkg/apis/imagepolicy/install" _ "k8s.io/kubernetes/pkg/apis/networking/install" @@ -42,7 +43,7 @@ import ( ) func init() { - if missingVersions := api.Registry.ValidateEnvRequestedVersions(); len(missingVersions) != 0 { + if missingVersions := legacyscheme.Registry.ValidateEnvRequestedVersions(); len(missingVersions) != 0 { panic(fmt.Sprintf("KUBE_API_VERSIONS contains versions that are not installed: %q.", missingVersions)) } } diff --git a/vendor/k8s.io/kubernetes/pkg/master/import_known_versions_test.go b/vendor/k8s.io/kubernetes/pkg/master/import_known_versions_test.go index 1ee024a33..e6a69e7d6 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/import_known_versions_test.go +++ b/vendor/k8s.io/kubernetes/pkg/master/import_known_versions_test.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" ) func TestGroupVersions(t *testing.T) { @@ -41,16 +41,15 @@ func TestGroupVersions(t *testing.T) { "batch", "componentconfig", "extensions", - "federation", "policy", ) // No new groups should be added to the legacyUnsuffixedGroups exclusion list - if len(legacyUnsuffixedGroups) != 8 { + if len(legacyUnsuffixedGroups) != 7 { t.Errorf("No additional unnamespaced groups should be created") } - for _, gv := range api.Registry.RegisteredGroupVersions() { + for _, gv := range legacyscheme.Registry.RegisteredGroupVersions() { if !strings.HasSuffix(gv.Group, ".k8s.io") && !legacyUnsuffixedGroups.Has(gv.Group) { t.Errorf("Group %s does not have the standard kubernetes API group suffix of .k8s.io", gv.Group) } @@ -58,7 +57,7 @@ func TestGroupVersions(t *testing.T) { } func TestTypeTags(t *testing.T) { - for gvk, knownType := range api.Scheme.AllKnownTypes() { + for gvk, knownType := range legacyscheme.Scheme.AllKnownTypes() { if gvk.Version == runtime.APIVersionInternal { ensureNoTags(t, gvk, knownType, nil) } else { @@ -100,7 +99,7 @@ func ensureNoTags(t *testing.T, gvk schema.GroupVersionKind, tp reflect.Type, pa case reflect.Map, reflect.Slice, reflect.Ptr: ensureNoTags(t, gvk, tp.Elem(), parents) - case reflect.String, reflect.Bool, reflect.Float32, reflect.Int, reflect.Int32, reflect.Int64, reflect.Uint8, reflect.Uintptr, reflect.Uint32, reflect.Uint64, reflect.Interface: + case reflect.String, reflect.Bool, reflect.Float32, reflect.Int32, reflect.Int64, reflect.Uint8, reflect.Uintptr, reflect.Uint32, reflect.Uint64, reflect.Interface: // no-op case reflect.Struct: diff --git a/vendor/k8s.io/kubernetes/pkg/master/master.go b/vendor/k8s.io/kubernetes/pkg/master/master.go index b5a559dfd..dce550707 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/master.go +++ b/vendor/k8s.io/kubernetes/pkg/master/master.go @@ -53,8 +53,7 @@ import ( serverstorage "k8s.io/apiserver/pkg/server/storage" storagefactory "k8s.io/apiserver/pkg/storage/storagebackend/factory" corev1client "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/kubernetes/pkg/api" - kapi "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" @@ -93,8 +92,6 @@ const ( DefaultEndpointReconcilerInterval = 10 * time.Second // DefaultEndpointReconcilerTTL is the default TTL timeout for the storage layer DefaultEndpointReconcilerTTL = 15 * time.Second - // DefaultStorageEndpoint is the default storage endpoint for the lease controller - DefaultStorageEndpoint = "kube-apiserver-endpoint" ) type ExtraConfig struct { @@ -198,7 +195,7 @@ func (c *Config) createNoneReconciler() reconcilers.EndpointReconciler { func (c *Config) createLeaseReconciler() reconcilers.EndpointReconciler { ttl := c.ExtraConfig.MasterEndpointReconcileTTL - config, err := c.ExtraConfig.StorageFactory.NewConfig(kapi.Resource("apiServerIPInfo")) + config, err := c.ExtraConfig.StorageFactory.NewConfig(api.Resource("apiServerIPInfo")) if err != nil { glog.Fatalf("Error determining service IP ranges: %v", err) } @@ -206,7 +203,7 @@ func (c *Config) createLeaseReconciler() reconcilers.EndpointReconciler { if err != nil { glog.Fatalf("Error creating storage factory: %v", err) } - endpointConfig, err := c.ExtraConfig.StorageFactory.NewConfig(kapi.Resource(DefaultStorageEndpoint)) + endpointConfig, err := c.ExtraConfig.StorageFactory.NewConfig(api.Resource("endpoints")) if err != nil { glog.Fatalf("Error getting storage config: %v", err) } @@ -214,7 +211,7 @@ func (c *Config) createLeaseReconciler() reconcilers.EndpointReconciler { StorageConfig: endpointConfig, Decorator: generic.UndecoratedStorage, DeleteCollectionWorkers: 0, - ResourcePrefix: c.ExtraConfig.StorageFactory.ResourcePrefix(kapi.Resource(DefaultStorageEndpoint)), + ResourcePrefix: c.ExtraConfig.StorageFactory.ResourcePrefix(api.Resource("endpoints")), }) endpointRegistry := endpoint.NewRegistry(endpointsStorage) masterLeases := reconcilers.NewLeases(leaseStorage, "/masterleases/", ttl) @@ -372,9 +369,11 @@ func (m *Master) InstallLegacyAPI(c *completedConfig, restOptionsGetter generic. } if c.ExtraConfig.EnableCoreControllers { + controllerName := "bootstrap-controller" coreClient := coreclient.NewForConfigOrDie(c.GenericConfig.LoopbackClientConfig) bootstrapController := c.NewBootstrapController(legacyRESTStorage, coreClient, coreClient) - m.GenericAPIServer.AddPostStartHookOrDie("bootstrap-controller", bootstrapController.PostStartHook) + m.GenericAPIServer.AddPostStartHookOrDie(controllerName, bootstrapController.PostStartHook) + m.GenericAPIServer.AddPreShutdownHookOrDie(controllerName, bootstrapController.PreShutdownHook) } if err := m.GenericAPIServer.InstallLegacyAPIGroup(genericapiserver.DefaultLegacyAPIPrefix, &apiGroupInfo); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/master/master_openapi_test.go b/vendor/k8s.io/kubernetes/pkg/master/master_openapi_test.go index 92501ca40..d640582a3 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/master_openapi_test.go +++ b/vendor/k8s.io/kubernetes/pkg/master/master_openapi_test.go @@ -29,7 +29,7 @@ import ( apirequest "k8s.io/apiserver/pkg/endpoints/request" genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" openapigen "k8s.io/kubernetes/pkg/generated/openapi" "github.com/go-openapi/loads" @@ -45,7 +45,7 @@ func TestValidOpenAPISpec(t *testing.T) { defer etcdserver.Terminate(t) config.GenericConfig.EnableIndex = true - config.GenericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapigen.GetOpenAPIDefinitions, api.Scheme) + config.GenericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapigen.GetOpenAPIDefinitions, legacyscheme.Scheme) config.GenericConfig.OpenAPIConfig.Info = &spec.Info{ InfoProps: spec.InfoProps{ Title: "Kubernetes", diff --git a/vendor/k8s.io/kubernetes/pkg/master/master_test.go b/vendor/k8s.io/kubernetes/pkg/master/master_test.go index 2e971c392..506b81f9f 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/master_test.go +++ b/vendor/k8s.io/kubernetes/pkg/master/master_test.go @@ -49,12 +49,13 @@ import ( "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/fake" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/certificates" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/rbac" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" @@ -69,10 +70,10 @@ import ( // setUp is a convience function for setting up for (most) tests. func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, informers.SharedInformerFactory, *assert.Assertions) { - server, storageConfig := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, api.Scheme) + server, storageConfig := etcdtesting.NewUnsecuredEtcd3TestClientServer(t) config := &Config{ - GenericConfig: genericapiserver.NewConfig(api.Codecs), + GenericConfig: genericapiserver.NewConfig(legacyscheme.Codecs), ExtraConfig: ExtraConfig{ APIResourceConfigSource: DefaultAPIResourceConfigSource(), APIServerServicePort: 443, @@ -81,8 +82,8 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, informers.SharedI }, } - resourceEncoding := serverstorage.NewDefaultResourceEncodingConfig(api.Registry) - resourceEncoding.SetVersionEncoding(api.GroupName, api.Registry.GroupOrDie(api.GroupName).GroupVersion, schema.GroupVersion{Group: api.GroupName, Version: runtime.APIVersionInternal}) + resourceEncoding := serverstorage.NewDefaultResourceEncodingConfig(legacyscheme.Registry) + resourceEncoding.SetVersionEncoding(api.GroupName, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, schema.GroupVersion{Group: api.GroupName, Version: runtime.APIVersionInternal}) resourceEncoding.SetVersionEncoding(autoscaling.GroupName, *testapi.Autoscaling.GroupVersion(), schema.GroupVersion{Group: autoscaling.GroupName, Version: runtime.APIVersionInternal}) resourceEncoding.SetVersionEncoding(batch.GroupName, *testapi.Batch.GroupVersion(), schema.GroupVersion{Group: batch.GroupName, Version: runtime.APIVersionInternal}) // FIXME (soltysh): this GroupVersionResource override should be configurable @@ -91,7 +92,7 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, informers.SharedI resourceEncoding.SetVersionEncoding(extensions.GroupName, *testapi.Extensions.GroupVersion(), schema.GroupVersion{Group: extensions.GroupName, Version: runtime.APIVersionInternal}) resourceEncoding.SetVersionEncoding(rbac.GroupName, *testapi.Rbac.GroupVersion(), schema.GroupVersion{Group: rbac.GroupName, Version: runtime.APIVersionInternal}) resourceEncoding.SetVersionEncoding(certificates.GroupName, *testapi.Certificates.GroupVersion(), schema.GroupVersion{Group: certificates.GroupName, Version: runtime.APIVersionInternal}) - storageFactory := serverstorage.NewDefaultStorageFactory(*storageConfig, testapi.StorageMediaType(), api.Codecs, resourceEncoding, DefaultAPIResourceConfigSource(), nil) + storageFactory := serverstorage.NewDefaultStorageFactory(*storageConfig, testapi.StorageMediaType(), legacyscheme.Codecs, resourceEncoding, DefaultAPIResourceConfigSource(), nil) err := options.NewEtcdOptions(storageConfig).ApplyWithStorageFactoryTo(storageFactory, config.GenericConfig) if err != nil { @@ -101,11 +102,11 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, informers.SharedI kubeVersion := kubeversion.Get() config.GenericConfig.Version = &kubeVersion config.ExtraConfig.StorageFactory = storageFactory - config.GenericConfig.LoopbackClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs}} + config.GenericConfig.LoopbackClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs}} config.GenericConfig.PublicAddress = net.ParseIP("192.168.10.4") config.GenericConfig.LegacyAPIGroupPrefixes = sets.NewString("/api") config.GenericConfig.RequestContextMapper = genericapirequest.NewRequestContextMapper() - config.GenericConfig.LoopbackClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs}} + config.GenericConfig.LoopbackClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs}} config.GenericConfig.EnableMetrics = true config.ExtraConfig.EnableCoreControllers = false config.ExtraConfig.KubeletClientConfig = kubeletclient.KubeletClientConfig{Port: 10250} diff --git a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/BUILD b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/BUILD index f24446b97..3fbb514b0 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/BUILD @@ -12,8 +12,8 @@ go_library( importpath = "k8s.io/kubernetes/pkg/master/reconcilers", visibility = ["//visibility:public"], deps = [ - "//pkg/api:go_default_library", "//pkg/api/endpoints:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//pkg/registry/core/endpoint:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -21,7 +21,9 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", + "//vendor/k8s.io/client-go/util/retry:go_default_library", ], ) @@ -31,7 +33,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/master/reconcilers", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/lease.go b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/lease.go index 75e8d64c4..934ece290 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/lease.go +++ b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/lease.go @@ -24,6 +24,8 @@ https://github.com/openshift/origin/blob/bb340c5dd5ff72718be86fb194dedc0faed7f4c import ( "fmt" "net" + "path" + "sync" "time" "github.com/golang/glog" @@ -31,9 +33,10 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kruntime "k8s.io/apimachinery/pkg/runtime" apirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/endpoints" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/endpoint" ) @@ -44,6 +47,9 @@ type Leases interface { // UpdateLease adds or refreshes a master's lease UpdateLease(ip string) error + + // RemoveLease removes a master's lease + RemoveLease(ip string) error } type storageLeases struct { @@ -73,7 +79,8 @@ func (s *storageLeases) ListLeases() ([]string, error) { // UpdateLease resets the TTL on a master IP in storage func (s *storageLeases) UpdateLease(ip string) error { - return s.storage.GuaranteedUpdate(apirequest.NewDefaultContext(), s.baseKey+"/"+ip, &api.Endpoints{}, true, nil, func(input kruntime.Object, respMeta storage.ResponseMeta) (kruntime.Object, *uint64, error) { + key := path.Join(s.baseKey, ip) + return s.storage.GuaranteedUpdate(apirequest.NewDefaultContext(), key, &api.Endpoints{}, true, nil, func(input kruntime.Object, respMeta storage.ResponseMeta) (kruntime.Object, *uint64, error) { // just make sure we've got the right IP set, and then refresh the TTL existing := input.(*api.Endpoints) existing.Subsets = []api.EndpointSubset{ @@ -82,7 +89,8 @@ func (s *storageLeases) UpdateLease(ip string) error { }, } - leaseTime := uint64(s.leaseTime) + // leaseTime needs to be in seconds + leaseTime := uint64(s.leaseTime / time.Second) // NB: GuaranteedUpdate does not perform the store operation unless // something changed between load and store (not including resource @@ -96,6 +104,11 @@ func (s *storageLeases) UpdateLease(ip string) error { }) } +// RemoveLease removes the lease on a master IP in storage +func (s *storageLeases) RemoveLease(ip string) error { + return s.storage.Delete(apirequest.NewDefaultContext(), s.baseKey+"/"+ip, &api.Endpoints{}, nil) +} + // NewLeases creates a new etcd-based Leases implementation. func NewLeases(storage storage.Interface, baseKey string, leaseTime time.Duration) Leases { return &storageLeases{ @@ -106,15 +119,18 @@ func NewLeases(storage storage.Interface, baseKey string, leaseTime time.Duratio } type leaseEndpointReconciler struct { - endpointRegistry endpoint.Registry - masterLeases Leases + endpointRegistry endpoint.Registry + masterLeases Leases + stopReconcilingCalled bool + reconcilingLock sync.Mutex } // NewLeaseEndpointReconciler creates a new LeaseEndpoint reconciler func NewLeaseEndpointReconciler(endpointRegistry endpoint.Registry, masterLeases Leases) EndpointReconciler { return &leaseEndpointReconciler{ - endpointRegistry: endpointRegistry, - masterLeases: masterLeases, + endpointRegistry: endpointRegistry, + masterLeases: masterLeases, + stopReconcilingCalled: false, } } @@ -126,7 +142,12 @@ func NewLeaseEndpointReconciler(endpointRegistry endpoint.Registry, masterLeases // different from the directory listing, and update the endpoints object // accordingly. func (r *leaseEndpointReconciler) ReconcileEndpoints(serviceName string, ip net.IP, endpointPorts []api.EndpointPort, reconcilePorts bool) error { - ctx := apirequest.NewDefaultContext() + r.reconcilingLock.Lock() + defer r.reconcilingLock.Unlock() + + if r.stopReconcilingCalled { + return nil + } // Refresh the TTL on our key, independently of whether any error or // update conflict happens below. This makes sure that at least some of @@ -135,6 +156,12 @@ func (r *leaseEndpointReconciler) ReconcileEndpoints(serviceName string, ip net. return err } + return r.doReconcile(serviceName, endpointPorts, reconcilePorts) +} + +func (r *leaseEndpointReconciler) doReconcile(serviceName string, endpointPorts []api.EndpointPort, reconcilePorts bool) error { + ctx := apirequest.NewDefaultContext() + // Retrieve the current list of endpoints... e, err := r.endpointRegistry.GetEndpoints(ctx, serviceName, &metav1.GetOptions{}) if err != nil { @@ -194,7 +221,7 @@ func (r *leaseEndpointReconciler) ReconcileEndpoints(serviceName string, ip net. } glog.Warningf("Resetting endpoints for master service %q to %v", serviceName, masterIPs) - return r.endpointRegistry.UpdateEndpoints(ctx, e) + return r.endpointRegistry.UpdateEndpoints(ctx, e, rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) } // checkEndpointSubsetFormatWithLease determines if the endpoint is in the @@ -249,3 +276,15 @@ func checkEndpointSubsetFormatWithLease(e *api.Endpoints, expectedIPs []string, return true, ipsCorrect, portsCorrect } + +func (r *leaseEndpointReconciler) StopReconciling(serviceName string, ip net.IP, endpointPorts []api.EndpointPort) error { + r.reconcilingLock.Lock() + defer r.reconcilingLock.Unlock() + r.stopReconcilingCalled = true + + if err := r.masterLeases.RemoveLease(ip.String()); err != nil { + return err + } + + return r.doReconcile(serviceName, endpointPorts, true) +} diff --git a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/lease_test.go b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/lease_test.go index 5f2c66ee1..e16612e25 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/lease_test.go +++ b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/lease_test.go @@ -27,7 +27,7 @@ import ( "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -54,6 +54,11 @@ func (f *fakeLeases) UpdateLease(ip string) error { return nil } +func (f *fakeLeases) RemoveLease(ip string) error { + delete(f.keys, ip) + return nil +} + func (f *fakeLeases) SetKeys(keys []string) { for _, ip := range keys { f.keys[ip] = false @@ -529,3 +534,100 @@ func TestLeaseEndpointReconciler(t *testing.T) { } } } + +func TestLeaseStopReconciling(t *testing.T) { + ns := api.NamespaceDefault + om := func(name string) metav1.ObjectMeta { + return metav1.ObjectMeta{Namespace: ns, Name: name} + } + stopTests := []struct { + testName string + serviceName string + ip string + endpointPorts []api.EndpointPort + endpointKeys []string + endpoints *api.EndpointsList + expectUpdate *api.Endpoints // nil means none expected + }{ + { + testName: "successful stop reconciling", + serviceName: "foo", + ip: "1.2.3.4", + endpointPorts: []api.EndpointPort{{Name: "foo", Port: 8080, Protocol: "TCP"}}, + endpointKeys: []string{"1.2.3.4", "4.3.2.2", "4.3.2.3", "4.3.2.4"}, + endpoints: &api.EndpointsList{ + Items: []api.Endpoints{{ + ObjectMeta: om("foo"), + Subsets: []api.EndpointSubset{{ + Addresses: []api.EndpointAddress{ + {IP: "1.2.3.4"}, + {IP: "4.3.2.2"}, + {IP: "4.3.2.3"}, + {IP: "4.3.2.4"}, + }, + Ports: []api.EndpointPort{{Name: "foo", Port: 8080, Protocol: "TCP"}}, + }}, + }}, + }, + expectUpdate: &api.Endpoints{ + ObjectMeta: om("foo"), + Subsets: []api.EndpointSubset{{ + Addresses: []api.EndpointAddress{ + {IP: "4.3.2.2"}, + {IP: "4.3.2.3"}, + {IP: "4.3.2.4"}, + }, + Ports: []api.EndpointPort{{Name: "foo", Port: 8080, Protocol: "TCP"}}, + }}, + }, + }, + { + testName: "stop reconciling with ip not in endpoint ip list", + serviceName: "foo", + ip: "5.6.7.8", + endpointPorts: []api.EndpointPort{{Name: "foo", Port: 8080, Protocol: "TCP"}}, + endpointKeys: []string{"1.2.3.4", "4.3.2.2", "4.3.2.3", "4.3.2.4"}, + endpoints: &api.EndpointsList{ + Items: []api.Endpoints{{ + ObjectMeta: om("foo"), + Subsets: []api.EndpointSubset{{ + Addresses: []api.EndpointAddress{ + {IP: "1.2.3.4"}, + {IP: "4.3.2.2"}, + {IP: "4.3.2.3"}, + {IP: "4.3.2.4"}, + }, + Ports: []api.EndpointPort{{Name: "foo", Port: 8080, Protocol: "TCP"}}, + }}, + }}, + }, + }, + } + for _, test := range stopTests { + fakeLeases := newFakeLeases() + fakeLeases.SetKeys(test.endpointKeys) + registry := ®istrytest.EndpointRegistry{ + Endpoints: test.endpoints, + } + r := NewLeaseEndpointReconciler(registry, fakeLeases) + err := r.StopReconciling(test.serviceName, net.ParseIP(test.ip), test.endpointPorts) + if err != nil { + t.Errorf("case %q: unexpected error: %v", test.testName, err) + } + if test.expectUpdate != nil { + if len(registry.Updates) != 1 { + t.Errorf("case %q: unexpected updates: %v", test.testName, registry.Updates) + } else if e, a := test.expectUpdate, ®istry.Updates[0]; !reflect.DeepEqual(e, a) { + t.Errorf("case %q: expected update:\n%#v\ngot:\n%#v\n", test.testName, e, a) + } + } + if test.expectUpdate == nil && len(registry.Updates) > 0 { + t.Errorf("case %q: no update expected, yet saw: %v", test.testName, registry.Updates) + } + for _, key := range fakeLeases.GetUpdatedKeys() { + if key == test.ip { + t.Errorf("case %q: Found ip %s in leases but shouldn't be there", test.testName, key) + } + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/mastercount.go b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/mastercount.go index 5984fec2d..d7aa4c771 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/mastercount.go +++ b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/mastercount.go @@ -19,20 +19,24 @@ package reconcilers import ( "net" + "sync" "github.com/golang/glog" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + "k8s.io/client-go/util/retry" "k8s.io/kubernetes/pkg/api/endpoints" + api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" ) // masterCountEndpointReconciler reconciles endpoints based on a specified expected number of // masters. masterCountEndpointReconciler implements EndpointReconciler. type masterCountEndpointReconciler struct { - masterCount int - endpointClient coreclient.EndpointsGetter + masterCount int + endpointClient coreclient.EndpointsGetter + stopReconcilingCalled bool + reconcilingLock sync.Mutex } // NewMasterCountEndpointReconciler creates a new EndpointReconciler that reconciles based on a @@ -57,6 +61,13 @@ func NewMasterCountEndpointReconciler(masterCount int, endpointClient coreclient // to be running (c.masterCount). // * ReconcileEndpoints is called periodically from all apiservers. func (r *masterCountEndpointReconciler) ReconcileEndpoints(serviceName string, ip net.IP, endpointPorts []api.EndpointPort, reconcilePorts bool) error { + r.reconcilingLock.Lock() + defer r.reconcilingLock.Unlock() + + if r.stopReconcilingCalled { + return nil + } + e, err := r.endpointClient.Endpoints(metav1.NamespaceDefault).Get(serviceName, metav1.GetOptions{}) if err != nil { e = &api.Endpoints{ @@ -126,6 +137,36 @@ func (r *masterCountEndpointReconciler) ReconcileEndpoints(serviceName string, i return err } +func (r *masterCountEndpointReconciler) StopReconciling(serviceName string, ip net.IP, endpointPorts []api.EndpointPort) error { + r.reconcilingLock.Lock() + defer r.reconcilingLock.Unlock() + r.stopReconcilingCalled = true + + e, err := r.endpointClient.Endpoints(metav1.NamespaceDefault).Get(serviceName, metav1.GetOptions{}) + if err != nil { + if errors.IsNotFound(err) { + // Endpoint doesn't exist + return nil + } + return err + } + + // Remove our IP from the list of addresses + new := []api.EndpointAddress{} + for _, addr := range e.Subsets[0].Addresses { + if addr.IP != ip.String() { + new = append(new, addr) + } + } + e.Subsets[0].Addresses = new + e.Subsets = endpoints.RepackSubsets(e.Subsets) + err = retry.RetryOnConflict(retry.DefaultBackoff, func() error { + _, err := r.endpointClient.Endpoints(metav1.NamespaceDefault).Update(e) + return err + }) + return err +} + // Determine if the endpoint is in the format ReconcileEndpoints expects. // // Return values: diff --git a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/none.go b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/none.go index 33e65ab7d..dce38c2a6 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/none.go +++ b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/none.go @@ -18,9 +18,8 @@ limitations under the License. package reconcilers import ( + api "k8s.io/kubernetes/pkg/apis/core" "net" - - "k8s.io/kubernetes/pkg/api" ) // NoneEndpointReconciler allows for the endpoint reconciler to be disabled @@ -36,3 +35,8 @@ func NewNoneEndpointReconciler() EndpointReconciler { func (r *noneEndpointReconciler) ReconcileEndpoints(serviceName string, ip net.IP, endpointPorts []api.EndpointPort, reconcilePorts bool) error { return nil } + +// StopReconciling noop reconcile +func (r *noneEndpointReconciler) StopReconciling(serviceName string, ip net.IP, endpointPorts []api.EndpointPort) error { + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/reconcilers.go b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/reconcilers.go index 346fa8fb5..8bbabc659 100644 --- a/vendor/k8s.io/kubernetes/pkg/master/reconcilers/reconcilers.go +++ b/vendor/k8s.io/kubernetes/pkg/master/reconcilers/reconcilers.go @@ -18,9 +18,8 @@ limitations under the License. package reconcilers import ( + api "k8s.io/kubernetes/pkg/apis/core" "net" - - "k8s.io/kubernetes/pkg/api" ) // EndpointReconciler knows how to reconcile the endpoints for the apiserver service. @@ -36,6 +35,7 @@ type EndpointReconciler interface { // endpoints for their {rw, ro} services. // * ReconcileEndpoints is called periodically from all apiservers. ReconcileEndpoints(serviceName string, ip net.IP, endpointPorts []api.EndpointPort, reconcilePorts bool) error + StopReconciling(serviceName string, ip net.IP, endpointPorts []api.EndpointPort) error } // Type the reconciler type diff --git a/vendor/k8s.io/kubernetes/pkg/printers/BUILD b/vendor/k8s.io/kubernetes/pkg/printers/BUILD index 928ef3f8b..c59f547fc 100644 --- a/vendor/k8s.io/kubernetes/pkg/printers/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/printers/BUILD @@ -42,7 +42,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/printers_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core: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", @@ -65,3 +66,16 @@ filegroup( ], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = ["humanreadable_test.go"], + importpath = "k8s.io/kubernetes/pkg/printers", + library = ":go_default_library", + deps = [ + "//pkg/apis/core:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1alpha1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/printers/customcolumn_test.go b/vendor/k8s.io/kubernetes/pkg/printers/customcolumn_test.go index 509aab3ba..cb67a4ef7 100644 --- a/vendor/k8s.io/kubernetes/pkg/printers/customcolumn_test.go +++ b/vendor/k8s.io/kubernetes/pkg/printers/customcolumn_test.go @@ -25,7 +25,8 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/printers" ) @@ -112,7 +113,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) { }, } for _, test := range tests { - printer, err := printers.NewCustomColumnsPrinterFromSpec(test.spec, api.Codecs.UniversalDecoder(), test.noHeaders) + printer, err := printers.NewCustomColumnsPrinterFromSpec(test.spec, legacyscheme.Codecs.UniversalDecoder(), test.noHeaders) if test.expectErr { if err == nil { t.Errorf("[%s] unexpected non-error", test.name) @@ -215,7 +216,7 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) { } for _, test := range tests { reader := bytes.NewBufferString(test.spec) - printer, err := printers.NewCustomColumnsPrinterFromTemplate(reader, api.Codecs.UniversalDecoder()) + printer, err := printers.NewCustomColumnsPrinterFromTemplate(reader, legacyscheme.Codecs.UniversalDecoder()) if test.expectErr { if err == nil { t.Errorf("[%s] unexpected non-error", test.name) @@ -311,7 +312,7 @@ foo baz for _, test := range tests { printer := &printers.CustomColumnsPrinter{ Columns: test.columns, - Decoder: api.Codecs.UniversalDecoder(), + Decoder: legacyscheme.Codecs.UniversalDecoder(), } buffer := &bytes.Buffer{} if err := printer.PrintObj(test.obj, buffer); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/printers/humanreadable.go b/vendor/k8s.io/kubernetes/pkg/printers/humanreadable.go index e75bdce9f..1d091786e 100644 --- a/vendor/k8s.io/kubernetes/pkg/printers/humanreadable.go +++ b/vendor/k8s.io/kubernetes/pkg/printers/humanreadable.go @@ -535,6 +535,15 @@ func (h *HumanReadablePrinter) PrintTable(obj runtime.Object, options PrintOptio // different from lastType) including all the rows in the object. It returns the current type // or an error, if any. func printRowsForHandlerEntry(output io.Writer, handler *handlerEntry, obj runtime.Object, options PrintOptions, includeHeaders bool) error { + var results []reflect.Value + if handler.printRows { + args := []reflect.Value{reflect.ValueOf(obj), reflect.ValueOf(options)} + results = handler.printFunc.Call(args) + if !results[1].IsNil() { + return results[1].Interface().(error) + } + } + if includeHeaders { var headers []string for _, column := range handler.columnDefinitions { @@ -562,15 +571,12 @@ func printRowsForHandlerEntry(output io.Writer, handler *handlerEntry, obj runti return resultValue.Interface().(error) } - args := []reflect.Value{reflect.ValueOf(obj), reflect.ValueOf(options)} - results := handler.printFunc.Call(args) if results[1].IsNil() { rows := results[0].Interface().([]metav1alpha1.TableRow) printRows(output, rows, options) return nil } return results[1].Interface().(error) - } // printRows writes the provided rows to output. diff --git a/vendor/k8s.io/kubernetes/pkg/printers/humanreadable_test.go b/vendor/k8s.io/kubernetes/pkg/printers/humanreadable_test.go new file mode 100644 index 000000000..7c45b868e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/printers/humanreadable_test.go @@ -0,0 +1,138 @@ +/* +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 printers + +import ( + "bytes" + "fmt" + "reflect" + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1alpha1 "k8s.io/apimachinery/pkg/apis/meta/v1alpha1" + "k8s.io/apimachinery/pkg/runtime" + api "k8s.io/kubernetes/pkg/apis/core" +) + +var testNamespaceColumnDefinitions = []metav1alpha1.TableColumnDefinition{ + {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, + {Name: "Status", Type: "string", Description: "The status of the namespace"}, + {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, +} + +func testPrintNamespace(obj *api.Namespace, options PrintOptions) ([]metav1alpha1.TableRow, error) { + if options.WithNamespace { + return nil, fmt.Errorf("namespace is not namespaced") + } + row := metav1alpha1.TableRow{ + Object: runtime.RawExtension{Object: obj}, + } + row.Cells = append(row.Cells, obj.Name, obj.Status.Phase, "") + return []metav1alpha1.TableRow{row}, nil +} + +func testPrintNamespaceList(list *api.NamespaceList, options PrintOptions) ([]metav1alpha1.TableRow, error) { + rows := make([]metav1alpha1.TableRow, 0, len(list.Items)) + for i := range list.Items { + r, err := testPrintNamespace(&list.Items[i], options) + if err != nil { + return nil, err + } + rows = append(rows, r...) + } + return rows, nil +} +func TestPrintRowsForHandlerEntry(t *testing.T) { + printFunc := reflect.ValueOf(testPrintNamespace) + + testCase := map[string]struct { + h *handlerEntry + opt PrintOptions + obj runtime.Object + includeHeader bool + expectOut string + expectErr string + }{ + "no tablecolumndefinition and includeheader flase": { + h: &handlerEntry{ + columnDefinitions: []metav1alpha1.TableColumnDefinition{}, + printRows: true, + printFunc: printFunc, + }, + opt: PrintOptions{}, + obj: &api.Namespace{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, + }, + includeHeader: false, + expectOut: "test\t\t\n", + }, + "no tablecolumndefinition and includeheader true": { + h: &handlerEntry{ + columnDefinitions: []metav1alpha1.TableColumnDefinition{}, + printRows: true, + printFunc: printFunc, + }, + opt: PrintOptions{}, + obj: &api.Namespace{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, + }, + includeHeader: true, + expectOut: "\ntest\t\t\n", + }, + "have tablecolumndefinition and includeheader true": { + h: &handlerEntry{ + columnDefinitions: testNamespaceColumnDefinitions, + printRows: true, + printFunc: printFunc, + }, + opt: PrintOptions{}, + obj: &api.Namespace{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, + }, + includeHeader: true, + expectOut: "NAME\tSTATUS\tAGE\ntest\t\t\n", + }, + "print namespace and withnamespace true, should not print header": { + h: &handlerEntry{ + columnDefinitions: testNamespaceColumnDefinitions, + printRows: true, + printFunc: printFunc, + }, + opt: PrintOptions{ + WithNamespace: true, + }, + obj: &api.Namespace{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, + }, + includeHeader: true, + expectOut: "", + expectErr: "namespace is not namespaced", + }, + } + for name, test := range testCase { + buffer := &bytes.Buffer{} + err := printRowsForHandlerEntry(buffer, test.h, test.obj, test.opt, test.includeHeader) + if err != nil { + if err.Error() != test.expectErr { + t.Errorf("[%s]expect:\n %v\n but got:\n %v\n", name, test.expectErr, err) + } + } + if test.expectOut != buffer.String() { + t.Errorf("[%s]expect:\n %v\n but got:\n %v\n", name, test.expectOut, buffer.String()) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/BUILD b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/BUILD index 1422aa139..522478a73 100644 --- a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/BUILD @@ -16,15 +16,14 @@ go_test( importpath = "k8s.io/kubernetes/pkg/printers/internalversion", library = ":go_default_library", deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", + "//pkg/apis/networking:go_default_library", "//pkg/apis/policy:go_default_library", "//pkg/apis/storage:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -58,19 +57,17 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/printers/internalversion", deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset:go_default_library", - "//pkg/api:go_default_library", "//pkg/api/events:go_default_library", - "//pkg/api/helper:go_default_library", - "//pkg/api/helper/qos:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/ref:go_default_library", "//pkg/api/resource:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/certificates:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", + "//pkg/apis/core/helper/qos:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/networking:go_default_library", "//pkg/apis/policy:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/describe.go b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/describe.go index 59c240723..4392e8e7d 100644 --- a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/describe.go +++ b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/describe.go @@ -19,7 +19,6 @@ package internalversion import ( "bytes" "crypto/x509" - "encoding/json" "fmt" "io" "net" @@ -47,18 +46,17 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/dynamic" clientextensionsv1beta1 "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" - federation "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/events" - "k8s.io/kubernetes/pkg/api/helper" - "k8s.io/kubernetes/pkg/api/helper/qos" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/ref" resourcehelper "k8s.io/kubernetes/pkg/api/resource" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/certificates" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" + "k8s.io/kubernetes/pkg/apis/core/helper/qos" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/networking" "k8s.io/kubernetes/pkg/apis/policy" @@ -211,7 +209,7 @@ func (g *genericDescriber) Describe(namespace, name string, describerSettings pr var events *api.EventList if describerSettings.ShowEvents { - events, _ = g.events.Events(namespace).Search(api.Scheme, obj) + events, _ = g.events.Events(namespace).Search(legacyscheme.Scheme, obj) } return tabbedString(func(out io.Writer) error { @@ -607,11 +605,11 @@ func (d *PodDescriber) Describe(namespace, name string, describerSettings printe var events *api.EventList if describerSettings.ShowEvents { - if ref, err := ref.GetReference(api.Scheme, pod); err != nil { + if ref, err := ref.GetReference(legacyscheme.Scheme, pod); err != nil { glog.Errorf("Unable to construct reference to '%#v': %v", pod, err) } else { ref.Kind = "" - events, _ = d.Core().Events(namespace).Search(api.Scheme, ref) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, ref) } } @@ -623,6 +621,10 @@ func describePod(pod *api.Pod, events *api.EventList) (string, error) { w := NewPrefixWriter(out) w.Write(LEVEL_0, "Name:\t%s\n", pod.Name) w.Write(LEVEL_0, "Namespace:\t%s\n", pod.Namespace) + if pod.Spec.Priority != nil { + w.Write(LEVEL_0, "Priority:\t%d\n", *pod.Spec.Priority) + w.Write(LEVEL_0, "PriorityClassName:\t%s\n", stringOrNone(pod.Spec.PriorityClassName)) + } if pod.Spec.NodeName == "" { w.Write(LEVEL_0, "Node:\t\n") } else { @@ -646,9 +648,6 @@ func describePod(pod *api.Pod, events *api.EventList) (string, error) { w.Write(LEVEL_0, "Message:\t%s\n", pod.Status.Message) } w.Write(LEVEL_0, "IP:\t%s\n", pod.Status.PodIP) - if createdBy := printCreator(pod.Annotations); len(createdBy) > 0 { - w.Write(LEVEL_0, "Created By:\t%s\n", createdBy) - } if controlledBy := printController(pod); len(controlledBy) > 0 { w.Write(LEVEL_0, "Controlled By:\t%s\n", controlledBy) } @@ -687,18 +686,6 @@ func printController(controllee metav1.Object) string { return "" } -func printCreator(annotation map[string]string) string { - value, ok := annotation[api.CreatedByAnnotation] - if ok { - var r api.SerializedReference - err := json.Unmarshal([]byte(value), &r) - if err == nil { - return fmt.Sprintf("%s/%s", r.Reference.Kind, r.Reference.Name) - } - } - return "" -} - func describeVolumes(volumes []api.Volume, w PrefixWriter, space string) { if volumes == nil || len(volumes) == 0 { w.Write(LEVEL_0, "%sVolumes:\t\n", space) @@ -897,6 +884,19 @@ func printRBDVolumeSource(rbd *api.RBDVolumeSource, w PrefixWriter) { rbd.CephMonitors, rbd.RBDImage, rbd.FSType, rbd.RBDPool, rbd.RadosUser, rbd.Keyring, rbd.SecretRef, rbd.ReadOnly) } +func printRBDPersistentVolumeSource(rbd *api.RBDPersistentVolumeSource, w PrefixWriter) { + w.Write(LEVEL_2, "Type:\tRBD (a Rados Block Device mount on the host that shares a pod's lifetime)\n"+ + " CephMonitors:\t%v\n"+ + " RBDImage:\t%v\n"+ + " FSType:\t%v\n"+ + " RBDPool:\t%v\n"+ + " RadosUser:\t%v\n"+ + " Keyring:\t%v\n"+ + " SecretRef:\t%v\n"+ + " ReadOnly:\t%v\n", + rbd.CephMonitors, rbd.RBDImage, rbd.FSType, rbd.RBDPool, rbd.RadosUser, rbd.Keyring, rbd.SecretRef, rbd.ReadOnly) +} + func printDownwardAPIVolumeSource(d *api.DownwardAPIVolumeSource, w PrefixWriter) { w.Write(LEVEL_2, "Type:\tDownwardAPI (a volume populated by information about the pod)\n Items:\n") for _, mapping := range d.Items { @@ -956,6 +956,26 @@ func printScaleIOVolumeSource(sio *api.ScaleIOVolumeSource, w PrefixWriter) { sio.Gateway, sio.System, sio.ProtectionDomain, sio.StoragePool, sio.StorageMode, sio.VolumeName, sio.FSType, sio.ReadOnly) } +func printScaleIOPersistentVolumeSource(sio *api.ScaleIOPersistentVolumeSource, w PrefixWriter) { + var secretNS, secretName string + if sio.SecretRef != nil { + secretName = sio.SecretRef.Name + secretNS = sio.SecretRef.Namespace + } + w.Write(LEVEL_2, "Type:\tScaleIO (a persistent volume backed by a block device in ScaleIO)\n"+ + " Gateway:\t%v\n"+ + " System:\t%v\n"+ + " Protection Domain:\t%v\n"+ + " Storage Pool:\t%v\n"+ + " Storage Mode:\t%v\n"+ + " VolumeName:\t%v\n"+ + " SecretName:\t%v\n"+ + " SecretNamespace:\t%v\n"+ + " FSType:\t%v\n"+ + " ReadOnly:\t%v\n", + sio.Gateway, sio.System, sio.ProtectionDomain, sio.StoragePool, sio.StorageMode, sio.VolumeName, secretName, secretNS, sio.FSType, sio.ReadOnly) +} + func printLocalVolumeSource(ls *api.LocalVolumeSource, w PrefixWriter) { w.Write(LEVEL_2, "Type:\tLocalVolume (a persistent volume backed by local storage on a node)\n"+ " Path:\t%v\n", @@ -1067,7 +1087,7 @@ func (d *PersistentVolumeDescriber) Describe(namespace, name string, describerSe var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.Core().Events(namespace).Search(api.Scheme, pv) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, pv) } return describePersistentVolume(pv, events) @@ -1107,7 +1127,7 @@ func describePersistentVolume(pv *api.PersistentVolume, events *api.EventList) ( case pv.Spec.Glusterfs != nil: printGlusterfsVolumeSource(pv.Spec.Glusterfs, w) case pv.Spec.RBD != nil: - printRBDVolumeSource(pv.Spec.RBD, w) + printRBDPersistentVolumeSource(pv.Spec.RBD, w) case pv.Spec.Quobyte != nil: printQuobyteVolumeSource(pv.Spec.Quobyte, w) case pv.Spec.VsphereVolume != nil: @@ -1121,7 +1141,7 @@ func describePersistentVolume(pv *api.PersistentVolume, events *api.EventList) ( case pv.Spec.PortworxVolume != nil: printPortworxVolumeSource(pv.Spec.PortworxVolume, w) case pv.Spec.ScaleIO != nil: - printScaleIOVolumeSource(pv.Spec.ScaleIO, w) + printScaleIOPersistentVolumeSource(pv.Spec.ScaleIO, w) case pv.Spec.Local != nil: printLocalVolumeSource(pv.Spec.Local, w) case pv.Spec.CephFS != nil: @@ -1160,7 +1180,7 @@ func (d *PersistentVolumeClaimDescriber) Describe(namespace, name string, descri return "", err } - events, _ := d.Core().Events(namespace).Search(api.Scheme, pvc) + events, _ := d.Core().Events(namespace).Search(legacyscheme.Scheme, pvc) return describePersistentVolumeClaim(pvc, events) } @@ -1430,7 +1450,7 @@ type EnvVarResolverFunc func(e api.EnvVar) string // EnvValueFrom is exported for use by describers in other packages func EnvValueRetriever(pod *api.Pod) EnvVarResolverFunc { return func(e api.EnvVar) string { - internalFieldPath, _, err := api.Scheme.ConvertFieldLabel(e.ValueFrom.FieldRef.APIVersion, "Pod", e.ValueFrom.FieldRef.FieldPath, "") + internalFieldPath, _, err := legacyscheme.Scheme.ConvertFieldLabel(e.ValueFrom.FieldRef.APIVersion, "Pod", e.ValueFrom.FieldRef.FieldPath, "") if err != nil { return "" // pod validation should catch this on create } @@ -1531,7 +1551,7 @@ func (d *ReplicationControllerDescriber) Describe(namespace, name string, descri var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.Core().Events(namespace).Search(api.Scheme, controller) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, controller) } return describeReplicationController(controller, events, running, waiting, succeeded, failed) @@ -1605,7 +1625,7 @@ func (d *ReplicaSetDescriber) Describe(namespace, name string, describerSettings var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.Core().Events(namespace).Search(api.Scheme, rs) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, rs) } return describeReplicaSet(rs, events, running, waiting, succeeded, failed, getPodErr) @@ -1657,7 +1677,7 @@ func (d *JobDescriber) Describe(namespace, name string, describerSettings printe var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.Core().Events(namespace).Search(api.Scheme, job) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, job) } return describeJob(job, events) @@ -1672,8 +1692,8 @@ func describeJob(job *batch.Job, events *api.EventList) (string, error) { w.Write(LEVEL_0, "Selector:\t%s\n", selector) printLabelsMultiline(w, "Labels", job.Labels) printAnnotationsMultiline(w, "Annotations", job.Annotations) - if createdBy := printCreator(job.Annotations); len(createdBy) > 0 { - w.Write(LEVEL_0, "Created By:\t%s\n", createdBy) + if controlledBy := printController(job); len(controlledBy) > 0 { + w.Write(LEVEL_0, "Controlled By:\t%s\n", controlledBy) } w.Write(LEVEL_0, "Parallelism:\t%d\n", *job.Spec.Parallelism) if job.Spec.Completions != nil { @@ -1709,7 +1729,7 @@ func (d *CronJobDescriber) Describe(namespace, name string, describerSettings pr var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.Core().Events(namespace).Search(api.Scheme, cronJob) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, cronJob) } return describeCronJob(cronJob, events) @@ -1808,7 +1828,7 @@ func (d *DaemonSetDescriber) Describe(namespace, name string, describerSettings var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.Core().Events(namespace).Search(api.Scheme, daemon) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, daemon) } return describeDaemonSet(daemon, events, running, waiting, succeeded, failed) @@ -1959,7 +1979,7 @@ func (i *IngressDescriber) describeIngress(ing *extensions.Ingress, describerSet describeIngressAnnotations(w, ing.Annotations) if describerSettings.ShowEvents { - events, _ := i.Core().Events(ing.Namespace).Search(api.Scheme, ing) + events, _ := i.Core().Events(ing.Namespace).Search(legacyscheme.Scheme, ing) if events != nil { DescribeEvents(events, w) } @@ -2010,7 +2030,7 @@ func (d *ServiceDescriber) Describe(namespace, name string, describerSettings pr endpoints, _ := d.Core().Endpoints(namespace).Get(name, metav1.GetOptions{}) var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.Core().Events(namespace).Search(api.Scheme, service) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, service) } return describeService(service, endpoints, events) } @@ -2068,7 +2088,7 @@ func describeService(service *api.Service, endpoints *api.Endpoints, events *api if sp.TargetPort.Type == intstr.Type(intstr.Int) { w.Write(LEVEL_0, "TargetPort:\t%d/%s\n", sp.TargetPort.IntVal, sp.Protocol) } else { - w.Write(LEVEL_0, "TargetPort:\t%d/%s\n", sp.TargetPort.StrVal, sp.Protocol) + w.Write(LEVEL_0, "TargetPort:\t%s/%s\n", sp.TargetPort.StrVal, sp.Protocol) } if sp.NodePort != 0 { w.Write(LEVEL_0, "NodePort:\t%s\t%d/%s\n", name, sp.NodePort, sp.Protocol) @@ -2107,7 +2127,7 @@ func (d *EndpointsDescriber) Describe(namespace, name string, describerSettings var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.Core().Events(namespace).Search(api.Scheme, ep) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, ep) } return describeEndpoints(ep, events) @@ -2219,7 +2239,7 @@ func (d *ServiceAccountDescriber) Describe(namespace, name string, describerSett var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.Core().Events(namespace).Search(api.Scheme, serviceAccount) + events, _ = d.Core().Events(namespace).Search(legacyscheme.Scheme, serviceAccount) } return describeServiceAccount(serviceAccount, tokens, missingSecrets, events) @@ -2232,7 +2252,6 @@ func describeServiceAccount(serviceAccount *api.ServiceAccount, tokens []api.Sec w.Write(LEVEL_0, "Namespace:\t%s\n", serviceAccount.Namespace) printLabelsMultiline(w, "Labels", serviceAccount.Labels) printAnnotationsMultiline(w, "Annotations", serviceAccount.Annotations) - w.WriteLine() var ( emptyHeader = " " @@ -2260,7 +2279,8 @@ func describeServiceAccount(serviceAccount *api.ServiceAccount, tokens []api.Sec mountHeader: mountSecretNames, tokenHeader: tokenSecretNames, } - for header, names := range types { + for _, header := range sets.StringKeySet(types).List() { + names := types[header] if len(names) == 0 { w.Write(LEVEL_0, "%s\t\n", header) } else { @@ -2274,7 +2294,6 @@ func describeServiceAccount(serviceAccount *api.ServiceAccount, tokens []api.Sec prefix = emptyHeader } } - w.WriteLine() } if events != nil { @@ -2473,12 +2492,12 @@ func (d *NodeDescriber) Describe(namespace, name string, describerSettings print var events *api.EventList if describerSettings.ShowEvents { - if ref, err := ref.GetReference(api.Scheme, node); err != nil { + if ref, err := ref.GetReference(legacyscheme.Scheme, node); err != nil { glog.Errorf("Unable to construct reference to '%#v': %v", node, err) } else { // TODO: We haven't decided the namespace for Node object yet. ref.UID = types.UID(ref.Name) - events, _ = d.Core().Events("").Search(api.Scheme, ref) + events, _ = d.Core().Events("").Search(legacyscheme.Scheme, ref) } } @@ -2593,7 +2612,7 @@ func (p *StatefulSetDescriber) Describe(namespace, name string, describerSetting var events *api.EventList if describerSettings.ShowEvents { - events, _ = p.client.Core().Events(namespace).Search(api.Scheme, ps) + events, _ = p.client.Core().Events(namespace).Search(legacyscheme.Scheme, ps) } return describeStatefulSet(ps, selector, events, running, waiting, succeeded, failed) @@ -2641,7 +2660,7 @@ func (p *CertificateSigningRequestDescriber) Describe(namespace, name string, de var events *api.EventList if describerSettings.ShowEvents { - events, _ = p.client.Core().Events(namespace).Search(api.Scheme, csr) + events, _ = p.client.Core().Events(namespace).Search(legacyscheme.Scheme, csr) } return describeCertificateSigningRequest(csr, cr, status, events) @@ -2709,7 +2728,7 @@ func (d *HorizontalPodAutoscalerDescriber) Describe(namespace, name string, desc var events *api.EventList if describerSettings.ShowEvents { - events, _ = d.client.Core().Events(namespace).Search(api.Scheme, hpa) + events, _ = d.client.Core().Events(namespace).Search(legacyscheme.Scheme, hpa) } return describeHorizontalPodAutoscaler(hpa, events, d) @@ -2909,13 +2928,13 @@ func (dd *DeploymentDescriber) Describe(namespace, name string, describerSetting return "", err } internalDeployment := &extensions.Deployment{} - if err := api.Scheme.Convert(d, internalDeployment, extensions.SchemeGroupVersion); err != nil { + if err := legacyscheme.Scheme.Convert(d, internalDeployment, extensions.SchemeGroupVersion); err != nil { return "", err } var events *api.EventList if describerSettings.ShowEvents { - events, _ = dd.Core().Events(namespace).Search(api.Scheme, d) + events, _ = dd.Core().Events(namespace).Search(legacyscheme.Scheme, d) } return describeDeployment(d, selector, internalDeployment, events, dd) @@ -3028,7 +3047,7 @@ func (d *ConfigMapDescriber) Describe(namespace, name string, describerSettings w.Write(LEVEL_0, "%s\n", string(v)) } if describerSettings.ShowEvents { - events, err := d.Core().Events(namespace).Search(api.Scheme, configMap) + events, err := d.Core().Events(namespace).Search(legacyscheme.Scheme, configMap) if err != nil { return err } @@ -3040,47 +3059,6 @@ func (d *ConfigMapDescriber) Describe(namespace, name string, describerSettings }) } -type ClusterDescriber struct { - fedclientset.Interface -} - -func (d *ClusterDescriber) Describe(namespace, name string, describerSettings printers.DescriberSettings) (string, error) { - cluster, err := d.Federation().Clusters().Get(name, metav1.GetOptions{}) - if err != nil { - return "", err - } - return describeCluster(cluster) -} - -func describeCluster(cluster *federation.Cluster) (string, error) { - return tabbedString(func(out io.Writer) error { - w := NewPrefixWriter(out) - w.Write(LEVEL_0, "Name:\t%s\n", cluster.Name) - w.Write(LEVEL_0, "Labels:\t%s\n", labels.FormatLabels(cluster.Labels)) - - w.Write(LEVEL_0, "ServerAddressByClientCIDRs:\n ClientCIDR\tServerAddress\n") - w.Write(LEVEL_1, "----\t----\n") - for _, cidrAddr := range cluster.Spec.ServerAddressByClientCIDRs { - w.Write(LEVEL_1, "%v \t%v\n\n", cidrAddr.ClientCIDR, cidrAddr.ServerAddress) - } - - if len(cluster.Status.Conditions) > 0 { - w.Write(LEVEL_0, "Conditions:\n Type\tStatus\tLastUpdateTime\tLastTransitionTime\tReason\tMessage\n") - w.Write(LEVEL_1, "----\t------\t-----------------\t------------------\t------\t-------\n") - for _, c := range cluster.Status.Conditions { - w.Write(LEVEL_1, "%v \t%v \t%s \t%s \t%v \t%v\n", - c.Type, - c.Status, - c.LastProbeTime.Time.Format(time.RFC1123Z), - c.LastTransitionTime.Time.Format(time.RFC1123Z), - c.Reason, - c.Message) - } - } - return nil - }) -} - // NetworkPolicyDescriber generates information about a networking.NetworkPolicy type NetworkPolicyDescriber struct { clientset.Interface @@ -3102,13 +3080,111 @@ func describeNetworkPolicy(networkPolicy *networking.NetworkPolicy) (string, err w := NewPrefixWriter(out) w.Write(LEVEL_0, "Name:\t%s\n", networkPolicy.Name) w.Write(LEVEL_0, "Namespace:\t%s\n", networkPolicy.Namespace) + w.Write(LEVEL_0, "Created on:\t%s\n", networkPolicy.CreationTimestamp) printLabelsMultiline(w, "Labels", networkPolicy.Labels) printAnnotationsMultiline(w, "Annotations", networkPolicy.Annotations) - + describeNetworkPolicySpec(networkPolicy.Spec, w) return nil }) } +func describeNetworkPolicySpec(nps networking.NetworkPolicySpec, w PrefixWriter) { + w.Write(LEVEL_0, "Spec:\n") + w.Write(LEVEL_1, "PodSelector: ") + if len(nps.PodSelector.MatchLabels) == 0 && len(nps.PodSelector.MatchExpressions) == 0 { + w.Write(LEVEL_2, " (Allowing the specific traffic to all pods in this namespace)\n") + } else { + w.Write(LEVEL_2, "%s\n", metav1.FormatLabelSelector(&nps.PodSelector)) + } + w.Write(LEVEL_1, "Allowing ingress traffic:\n") + printNetworkPolicySpecIngressFrom(nps.Ingress, " ", w) + w.Write(LEVEL_1, "Allowing egress traffic:\n") + printNetworkPolicySpecEgressTo(nps.Egress, " ", w) + w.Write(LEVEL_1, "Policy Types: %v\n", policyTypesToString(nps.PolicyTypes)) +} + +func printNetworkPolicySpecIngressFrom(npirs []networking.NetworkPolicyIngressRule, initialIndent string, w PrefixWriter) { + if len(npirs) == 0 { + w.Write(LEVEL_0, "%s%s\n", initialIndent, " (Selected pods are isolated for ingress connectivity)") + return + } + for i, npir := range npirs { + if len(npir.Ports) == 0 { + w.Write(LEVEL_0, "%s%s\n", initialIndent, "To Port: (traffic allowed to all ports)") + } else { + for _, port := range npir.Ports { + var proto api.Protocol + if port.Protocol != nil { + proto = *port.Protocol + } else { + proto = api.ProtocolTCP + } + w.Write(LEVEL_0, "%s%s: %s/%s\n", initialIndent, "To Port", port.Port, proto) + } + } + if len(npir.From) == 0 { + w.Write(LEVEL_0, "%s%s\n", initialIndent, "From: (traffic not restricted by source)") + } else { + for _, from := range npir.From { + w.Write(LEVEL_0, "%s", initialIndent) + if from.PodSelector != nil { + w.Write(LEVEL_0, "%s: %s\n", "From PodSelector", metav1.FormatLabelSelector(from.PodSelector)) + } else if from.NamespaceSelector != nil { + w.Write(LEVEL_0, "%s: %s\n", "From NamespaceSelector", metav1.FormatLabelSelector(from.NamespaceSelector)) + } else if from.IPBlock != nil { + w.Write(LEVEL_0, "From IPBlock:\n") + w.Write(LEVEL_0, "%s%sCIDR: %s\n", initialIndent, initialIndent, from.IPBlock.CIDR) + w.Write(LEVEL_0, "%s%sExcept: %v\n", initialIndent, initialIndent, strings.Join(from.IPBlock.Except, ", ")) + } + } + } + if i != len(npirs)-1 { + w.Write(LEVEL_0, "%s%s\n", initialIndent, "----------") + } + } +} + +func printNetworkPolicySpecEgressTo(npers []networking.NetworkPolicyEgressRule, initialIndent string, w PrefixWriter) { + if len(npers) == 0 { + w.Write(LEVEL_0, "%s%s\n", initialIndent, " (Selected pods are isolated for egress connectivity)") + return + } + for i, nper := range npers { + if len(nper.Ports) == 0 { + w.Write(LEVEL_0, "%s%s\n", initialIndent, "To Port: (traffic allowed to all ports)") + } else { + for _, port := range nper.Ports { + var proto api.Protocol + if port.Protocol != nil { + proto = *port.Protocol + } else { + proto = api.ProtocolTCP + } + w.Write(LEVEL_0, "%s%s: %s/%s\n", initialIndent, "To Port", port.Port, proto) + } + } + if len(nper.To) == 0 { + w.Write(LEVEL_0, "%s%s\n", initialIndent, "To: (traffic not restricted by source)") + } else { + for _, to := range nper.To { + w.Write(LEVEL_0, "%s", initialIndent) + if to.PodSelector != nil { + w.Write(LEVEL_0, "%s: %s\n", "To PodSelector", metav1.FormatLabelSelector(to.PodSelector)) + } else if to.NamespaceSelector != nil { + w.Write(LEVEL_0, "%s: %s\n", "To NamespaceSelector", metav1.FormatLabelSelector(to.NamespaceSelector)) + } else if to.IPBlock != nil { + w.Write(LEVEL_0, "To IPBlock:\n") + w.Write(LEVEL_0, "%s%sCIDR: %s\n", initialIndent, initialIndent, to.IPBlock.CIDR) + w.Write(LEVEL_0, "%s%sExcept: %v\n", initialIndent, initialIndent, strings.Join(to.IPBlock.Except, ", ")) + } + } + } + if i != len(npers)-1 { + w.Write(LEVEL_0, "%s%s\n", initialIndent, "----------") + } + } +} + type StorageClassDescriber struct { clientset.Interface } @@ -3121,7 +3197,7 @@ func (s *StorageClassDescriber) Describe(namespace, name string, describerSettin var events *api.EventList if describerSettings.ShowEvents { - events, _ = s.Core().Events(namespace).Search(api.Scheme, sc) + events, _ = s.Core().Events(namespace).Search(legacyscheme.Scheme, sc) } return describeStorageClass(sc, events) @@ -3138,6 +3214,9 @@ func describeStorageClass(sc *storage.StorageClass, events *api.EventList) (stri if sc.ReclaimPolicy != nil { w.Write(LEVEL_0, "ReclaimPolicy:\t%s\n", *sc.ReclaimPolicy) } + if sc.VolumeBindingMode != nil { + w.Write(LEVEL_0, "VolumeBindingMode:\t%s\n", *sc.VolumeBindingMode) + } if events != nil { DescribeEvents(events, w) } @@ -3158,7 +3237,7 @@ func (p *PodDisruptionBudgetDescriber) Describe(namespace, name string, describe var events *api.EventList if describerSettings.ShowEvents { - events, _ = p.Core().Events(namespace).Search(api.Scheme, pdb) + events, _ = p.Core().Events(namespace).Search(legacyscheme.Scheme, pdb) } return describePodDisruptionBudget(pdb, events) @@ -3207,7 +3286,7 @@ func (s *PriorityClassDescriber) Describe(namespace, name string, describerSetti var events *api.EventList if describerSettings.ShowEvents { - events, _ = s.Core().Events(namespace).Search(api.Scheme, pc) + events, _ = s.Core().Events(namespace).Search(legacyscheme.Scheme, pc) } return describePriorityClass(pc, events) @@ -3289,13 +3368,6 @@ func describePodSecurityPolicy(psp *extensions.PodSecurityPolicy) (string, error }) } -func stringOrAll(s string) string { - if len(s) > 0 { - return s - } - return "*" -} - func stringOrNone(s string) string { if len(s) > 0 { return s @@ -3359,6 +3431,18 @@ func capsToString(caps []api.Capability) string { return stringOrNone(formattedString) } +func policyTypesToString(pts []networking.PolicyType) string { + formattedString := "" + if pts != nil { + strPts := []string{} + for _, p := range pts { + strPts = append(strPts, string(p)) + } + formattedString = strings.Join(strPts, ", ") + } + return stringOrNone(formattedString) +} + // newErrNoDescriber creates a new ErrNoDescriber with the names of the provided types. func newErrNoDescriber(types ...reflect.Type) error { names := make([]string, 0, len(types)) diff --git a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/describe_test.go b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/describe_test.go index 5fb879528..75030fea5 100644 --- a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/describe_test.go +++ b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/describe_test.go @@ -33,11 +33,10 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/util/intstr" versionedfake "k8s.io/client-go/kubernetes/fake" - federation "k8s.io/kubernetes/federation/apis/federation/v1beta1" - fedfake "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/apis/networking" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/apis/storage" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -127,6 +126,31 @@ func TestDescribePodTolerations(t *testing.T) { } } +func TestDescribeSecret(t *testing.T) { + fake := fake.NewSimpleClientset(&api.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "bar", + Namespace: "foo", + }, + Data: map[string][]byte{ + "username": []byte("YWRtaW4="), + "password": []byte("MWYyZDFlMmU2N2Rm"), + }, + }) + c := &describeClient{T: t, Namespace: "foo", Interface: fake} + d := SecretDescriber{c} + out, err := d.Describe("foo", "bar", printers.DescriberSettings{}) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + if !strings.Contains(out, "bar") || !strings.Contains(out, "foo") || !strings.Contains(out, "username") || !strings.Contains(out, "8 bytes") || !strings.Contains(out, "password") || !strings.Contains(out, "16 bytes") { + t.Errorf("unexpected out: %s", out) + } + if strings.Contains(out, "YWRtaW4=") || strings.Contains(out, "MWYyZDFlMmU2N2Rm") { + t.Errorf("sensitive data should not be shown, unexpected out: %s", out) + } +} + func TestDescribeNamespace(t *testing.T) { fake := fake.NewSimpleClientset(&api.Namespace{ ObjectMeta: metav1.ObjectMeta{ @@ -144,6 +168,28 @@ func TestDescribeNamespace(t *testing.T) { } } +func TestDescribePodPriority(t *testing.T) { + priority := int32(1000) + fake := fake.NewSimpleClientset(&api.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "bar", + }, + Spec: api.PodSpec{ + PriorityClassName: "high-priority", + Priority: &priority, + }, + }) + c := &describeClient{T: t, Namespace: "", Interface: fake} + d := PodDescriber{c} + out, err := d.Describe("", "bar", printers.DescriberSettings{ShowEvents: true}) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + if !strings.Contains(out, "high-priority") || !strings.Contains(out, "1000") { + t.Errorf("unexpected out: %s", out) + } +} + func TestDescribeConfigMap(t *testing.T) { fake := fake.NewSimpleClientset(&api.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ @@ -231,50 +277,97 @@ func getResourceList(cpu, memory string) api.ResourceList { } func TestDescribeService(t *testing.T) { - fake := fake.NewSimpleClientset(&api.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: "bar", - Namespace: "foo", + testCases := []struct { + service *api.Service + expect []string + }{ + { + service: &api.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "bar", + Namespace: "foo", + }, + Spec: api.ServiceSpec{ + Type: api.ServiceTypeLoadBalancer, + Ports: []api.ServicePort{{ + Name: "port-tcp", + Port: 8080, + Protocol: api.ProtocolTCP, + TargetPort: intstr.FromInt(9527), + NodePort: 31111, + }}, + Selector: map[string]string{"blah": "heh"}, + ClusterIP: "1.2.3.4", + LoadBalancerIP: "5.6.7.8", + SessionAffinity: "None", + ExternalTrafficPolicy: "Local", + HealthCheckNodePort: 32222, + }, + }, + expect: []string{ + "Name", "bar", + "Namespace", "foo", + "Selector", "blah=heh", + "Type", "LoadBalancer", + "IP", "1.2.3.4", + "Port", "port-tcp", "8080/TCP", + "TargetPort", "9527/TCP", + "NodePort", "port-tcp", "31111/TCP", + "Session Affinity", "None", + "External Traffic Policy", "Local", + "HealthCheck NodePort", "32222", + }, }, - Spec: api.ServiceSpec{ - Type: api.ServiceTypeLoadBalancer, - Ports: []api.ServicePort{{ - Name: "port-tcp", - Port: 8080, - Protocol: api.ProtocolTCP, - TargetPort: intstr.FromInt(9527), - NodePort: 31111, - }}, - Selector: map[string]string{"blah": "heh"}, - ClusterIP: "1.2.3.4", - LoadBalancerIP: "5.6.7.8", - SessionAffinity: "None", - ExternalTrafficPolicy: "Local", - HealthCheckNodePort: 32222, + { + service: &api.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "bar", + Namespace: "foo", + }, + Spec: api.ServiceSpec{ + Type: api.ServiceTypeLoadBalancer, + Ports: []api.ServicePort{{ + Name: "port-tcp", + Port: 8080, + Protocol: api.ProtocolTCP, + TargetPort: intstr.FromString("targetPort"), + NodePort: 31111, + }}, + Selector: map[string]string{"blah": "heh"}, + ClusterIP: "1.2.3.4", + LoadBalancerIP: "5.6.7.8", + SessionAffinity: "None", + ExternalTrafficPolicy: "Local", + HealthCheckNodePort: 32222, + }, + }, + expect: []string{ + "Name", "bar", + "Namespace", "foo", + "Selector", "blah=heh", + "Type", "LoadBalancer", + "IP", "1.2.3.4", + "Port", "port-tcp", "8080/TCP", + "TargetPort", "targetPort/TCP", + "NodePort", "port-tcp", "31111/TCP", + "Session Affinity", "None", + "External Traffic Policy", "Local", + "HealthCheck NodePort", "32222", + }, }, - }) - expectedElements := []string{ - "Name", "bar", - "Namespace", "foo", - "Selector", "blah=heh", - "Type", "LoadBalancer", - "IP", "1.2.3.4", - "Port", "port-tcp", "8080/TCP", - "TargetPort", "9527/TCP", - "NodePort", "port-tcp", "31111/TCP", - "Session Affinity", "None", - "External Traffic Policy", "Local", - "HealthCheck NodePort", "32222", - } - c := &describeClient{T: t, Namespace: "foo", Interface: fake} - d := ServiceDescriber{c} - out, err := d.Describe("foo", "bar", printers.DescriberSettings{ShowEvents: true}) - if err != nil { - t.Errorf("unexpected error: %v", err) } - for _, expected := range expectedElements { - if !strings.Contains(out, expected) { - t.Errorf("expected to find %q in output: %q", expected, out) + for _, testCase := range testCases { + fake := fake.NewSimpleClientset(testCase.service) + c := &describeClient{T: t, Namespace: "foo", Interface: fake} + d := ServiceDescriber{c} + out, err := d.Describe("foo", "bar", printers.DescriberSettings{ShowEvents: true}) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + for _, expected := range testCase.expect { + if !strings.Contains(out, expected) { + t.Errorf("expected to find %q in output: %q", expected, out) + } } } } @@ -589,7 +682,7 @@ func TestDescribers(t *testing.T) { t.Errorf("unexpected result: %s %v", out, err) } else { if noDescriber, ok := err.(printers.ErrNoDescriber); ok { - if !reflect.DeepEqual(noDescriber.Types, []string{"*api.Event", "*api.Pod", "*api.Pod"}) { + if !reflect.DeepEqual(noDescriber.Types, []string{"*core.Event", "*core.Pod", "*core.Pod"}) { t.Errorf("unexpected describer: %v", err) } } else { @@ -776,7 +869,7 @@ func TestPersistentVolumeDescriber(t *testing.T) { ObjectMeta: metav1.ObjectMeta{Name: "bar"}, Spec: api.PersistentVolumeSpec{ PersistentVolumeSource: api.PersistentVolumeSource{ - RBD: &api.RBDVolumeSource{}, + RBD: &api.RBDPersistentVolumeSource{}, }, }, }, @@ -848,42 +941,9 @@ func TestDescribeDeployment(t *testing.T) { } } -func TestDescribeCluster(t *testing.T) { - cluster := federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - ResourceVersion: "4", - Labels: map[string]string{ - "name": "foo", - }, - }, - Spec: federation.ClusterSpec{ - ServerAddressByClientCIDRs: []federation.ServerAddressByClientCIDR{ - { - ClientCIDR: "0.0.0.0/0", - ServerAddress: "localhost:8888", - }, - }, - }, - Status: federation.ClusterStatus{ - Conditions: []federation.ClusterCondition{ - {Type: federation.ClusterReady, Status: v1.ConditionTrue}, - }, - }, - } - fake := fedfake.NewSimpleClientset(&cluster) - d := ClusterDescriber{Interface: fake} - out, err := d.Describe("any", "foo", printers.DescriberSettings{ShowEvents: true}) - if err != nil { - t.Errorf("unexpected error: %v", err) - } - if !strings.Contains(out, "foo") { - t.Errorf("unexpected out: %s", out) - } -} - func TestDescribeStorageClass(t *testing.T) { reclaimPolicy := api.PersistentVolumeReclaimRetain + bindingMode := storage.VolumeBindingMode("bindingmode") f := fake.NewSimpleClientset(&storage.StorageClass{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", @@ -897,14 +957,22 @@ func TestDescribeStorageClass(t *testing.T) { "param1": "value1", "param2": "value2", }, - ReclaimPolicy: &reclaimPolicy, + ReclaimPolicy: &reclaimPolicy, + VolumeBindingMode: &bindingMode, }) s := StorageClassDescriber{f} out, err := s.Describe("", "foo", printers.DescriberSettings{ShowEvents: true}) if err != nil { t.Errorf("unexpected error: %v", err) } - if !strings.Contains(out, "foo") { + if !strings.Contains(out, "foo") || + !strings.Contains(out, "my-provisioner") || + !strings.Contains(out, "param1") || + !strings.Contains(out, "param2") || + !strings.Contains(out, "value1") || + !strings.Contains(out, "value2") || + !strings.Contains(out, "Retain") || + !strings.Contains(out, "bindingmode") { t.Errorf("unexpected out: %s", out) } } @@ -1659,6 +1727,204 @@ func TestDescribeResourceQuota(t *testing.T) { } } +func TestDescribeNetworkPolicies(t *testing.T) { + expectedTime, err := time.Parse("2006-01-02 15:04:05 Z0700 MST", "2017-06-04 21:45:56 -0700 PDT") + if err != nil { + t.Errorf("unable to parse time %q error: %s", "2017-06-04 21:45:56 -0700 PDT", err) + } + expectedOut := `Name: network-policy-1 +Namespace: default +Created on: 2017-06-04 21:45:56 -0700 PDT +Labels: +Annotations: +Spec: + PodSelector: foo in (bar1,bar2),foo2 notin (bar1,bar2),id1=app1,id2=app2 + Allowing ingress traffic: + To Port: 80/TCP + To Port: 82/TCP + From PodSelector: id=app2,id2=app3 + From NamespaceSelector: id=app2,id2=app3 + From NamespaceSelector: foo in (bar1,bar2),id=app2,id2=app3 + From IPBlock: + CIDR: 192.168.0.0/16 + Except: 192.168.3.0/24, 192.168.4.0/24 + ---------- + To Port: (traffic allowed to all ports) + From: (traffic not restricted by source) + Allowing egress traffic: + To Port: 80/TCP + To Port: 82/TCP + To PodSelector: id=app2,id2=app3 + To NamespaceSelector: id=app2,id2=app3 + To NamespaceSelector: foo in (bar1,bar2),id=app2,id2=app3 + To IPBlock: + CIDR: 192.168.0.0/16 + Except: 192.168.3.0/24, 192.168.4.0/24 + ---------- + To Port: (traffic allowed to all ports) + To: (traffic not restricted by source) + Policy Types: Ingress, Egress +` + + port80 := intstr.FromInt(80) + port82 := intstr.FromInt(82) + protoTCP := api.ProtocolTCP + + versionedFake := fake.NewSimpleClientset(&networking.NetworkPolicy{ + ObjectMeta: metav1.ObjectMeta{ + Name: "network-policy-1", + Namespace: "default", + CreationTimestamp: metav1.NewTime(expectedTime), + }, + Spec: networking.NetworkPolicySpec{ + PodSelector: metav1.LabelSelector{ + MatchLabels: map[string]string{ + "id1": "app1", + "id2": "app2", + }, + MatchExpressions: []metav1.LabelSelectorRequirement{ + {Key: "foo", Operator: "In", Values: []string{"bar1", "bar2"}}, + {Key: "foo2", Operator: "NotIn", Values: []string{"bar1", "bar2"}}, + }, + }, + Ingress: []networking.NetworkPolicyIngressRule{ + { + Ports: []networking.NetworkPolicyPort{ + {Port: &port80}, + {Port: &port82, Protocol: &protoTCP}, + }, + From: []networking.NetworkPolicyPeer{ + { + PodSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "id": "app2", + "id2": "app3", + }, + }, + }, + { + NamespaceSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "id": "app2", + "id2": "app3", + }, + }, + }, + { + NamespaceSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "id": "app2", + "id2": "app3", + }, + MatchExpressions: []metav1.LabelSelectorRequirement{ + {Key: "foo", Operator: "In", Values: []string{"bar1", "bar2"}}, + }, + }, + }, + { + IPBlock: &networking.IPBlock{ + CIDR: "192.168.0.0/16", + Except: []string{"192.168.3.0/24", "192.168.4.0/24"}, + }, + }, + }, + }, + {}, + }, + Egress: []networking.NetworkPolicyEgressRule{ + { + Ports: []networking.NetworkPolicyPort{ + {Port: &port80}, + {Port: &port82, Protocol: &protoTCP}, + }, + To: []networking.NetworkPolicyPeer{ + { + PodSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "id": "app2", + "id2": "app3", + }, + }, + }, + { + NamespaceSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "id": "app2", + "id2": "app3", + }, + }, + }, + { + NamespaceSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "id": "app2", + "id2": "app3", + }, + MatchExpressions: []metav1.LabelSelectorRequirement{ + {Key: "foo", Operator: "In", Values: []string{"bar1", "bar2"}}, + }, + }, + }, + { + IPBlock: &networking.IPBlock{ + CIDR: "192.168.0.0/16", + Except: []string{"192.168.3.0/24", "192.168.4.0/24"}, + }, + }, + }, + }, + {}, + }, + PolicyTypes: []networking.PolicyType{networking.PolicyTypeIngress, networking.PolicyTypeEgress}, + }, + }) + d := NetworkPolicyDescriber{versionedFake} + out, err := d.Describe("", "network-policy-1", printers.DescriberSettings{}) + if err != nil { + t.Errorf("unexpected error: %s", err) + } + if out != expectedOut { + t.Errorf("want:\n%s\ngot:\n%s", expectedOut, out) + } +} + +func TestDescribeServiceAccount(t *testing.T) { + fake := fake.NewSimpleClientset(&api.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Name: "bar", + Namespace: "foo", + }, + Secrets: []api.ObjectReference{ + { + Name: "test-objectref", + }, + }, + ImagePullSecrets: []api.LocalObjectReference{ + { + Name: "test-local-ref", + }, + }, + }) + c := &describeClient{T: t, Namespace: "foo", Interface: fake} + d := ServiceAccountDescriber{c} + out, err := d.Describe("foo", "bar", printers.DescriberSettings{ShowEvents: true}) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + expectedOut := `Name: bar +Namespace: foo +Labels: +Annotations: +Image pull secrets: test-local-ref (not found) +Mountable secrets: test-objectref (not found) +Tokens: +Events: ` + "\n" + if out != expectedOut { + t.Errorf("expected : %q\n but got output:\n %q", expectedOut, out) + } + +} + // boolPtr returns a pointer to a bool func boolPtr(b bool) *bool { o := b diff --git a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/printers.go b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/printers.go index c9ba06c8d..2c52c5e22 100644 --- a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/printers.go +++ b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/printers.go @@ -41,14 +41,13 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/events" - "k8s.io/kubernetes/pkg/api/helper" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/certificates" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/networking" "k8s.io/kubernetes/pkg/apis/policy" @@ -304,15 +303,6 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(componentStatusColumnDefinitions, printComponentStatus) h.TableHandler(componentStatusColumnDefinitions, printComponentStatusList) - thirdPartyResourceColumnDefinitions := []metav1alpha1.TableColumnDefinition{ - {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, - {Name: "Description", Type: "string", Description: extensionsv1beta1.ThirdPartyResource{}.SwaggerDoc()["description"]}, - {Name: "Version(s)", Type: "string", Description: extensionsv1beta1.ThirdPartyResource{}.SwaggerDoc()["versions"]}, - } - - h.TableHandler(thirdPartyResourceColumnDefinitions, printThirdPartyResource) - h.TableHandler(thirdPartyResourceColumnDefinitions, printThirdPartyResourceList) - deploymentColumnDefinitions := []metav1alpha1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Desired", Type: "string", Description: extensionsv1beta1.DeploymentSpec{}.SwaggerDoc()["replicas"]}, @@ -361,15 +351,6 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(podSecurityPolicyColumnDefinitions, printPodSecurityPolicy) h.TableHandler(podSecurityPolicyColumnDefinitions, printPodSecurityPolicyList) - clusterColumnDefinitions := []metav1alpha1.TableColumnDefinition{ - {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, - {Name: "Status", Type: "string", Description: "Status of the cluster"}, - {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, - {Name: "Labels", Type: "string", Description: "The labels of the cluster"}, - } - h.TableHandler(clusterColumnDefinitions, printCluster) - h.TableHandler(clusterColumnDefinitions, printClusterList) - networkPolicyColumnDefinitioins := []metav1alpha1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Pod-Selector", Type: "string", Description: extensionsv1beta1.NetworkPolicySpec{}.SwaggerDoc()["podSelector"]}, @@ -748,41 +729,6 @@ func printReplicaSetList(list *extensions.ReplicaSetList, options printers.Print return rows, nil } -func printCluster(obj *federation.Cluster, options printers.PrintOptions) ([]metav1alpha1.TableRow, error) { - row := metav1alpha1.TableRow{ - Object: runtime.RawExtension{Object: obj}, - } - - var statuses []string - for _, condition := range obj.Status.Conditions { - if condition.Status == api.ConditionTrue { - statuses = append(statuses, string(condition.Type)) - } else { - statuses = append(statuses, "Not"+string(condition.Type)) - } - } - if len(statuses) == 0 { - statuses = append(statuses, "Unknown") - } - row.Cells = append(row.Cells, obj.Name, strings.Join(statuses, ","), translateTimestamp(obj.CreationTimestamp)) - if options.ShowLabels { - row.Cells = append(row.Cells, labels.FormatLabels(obj.Labels)) - } - return []metav1alpha1.TableRow{row}, nil -} - -func printClusterList(list *federation.ClusterList, options printers.PrintOptions) ([]metav1alpha1.TableRow, error) { - rows := make([]metav1alpha1.TableRow, 0, len(list.Items)) - for i := range list.Items { - r, err := printCluster(&list.Items[i], options) - if err != nil { - return nil, err - } - rows = append(rows, r...) - } - return rows, nil -} - func printJob(obj *batch.Job, options printers.PrintOptions) ([]metav1alpha1.TableRow, error) { row := metav1alpha1.TableRow{ Object: runtime.RawExtension{Object: obj}, @@ -1480,33 +1426,6 @@ func printComponentStatusList(list *api.ComponentStatusList, options printers.Pr return rows, nil } -func printThirdPartyResource(obj *extensions.ThirdPartyResource, options printers.PrintOptions) ([]metav1alpha1.TableRow, error) { - row := metav1alpha1.TableRow{ - Object: runtime.RawExtension{Object: obj}, - } - - versions := make([]string, len(obj.Versions)) - for ix := range obj.Versions { - version := &obj.Versions[ix] - versions[ix] = fmt.Sprintf("%s", version.Name) - } - versionsString := strings.Join(versions, ",") - row.Cells = append(row.Cells, obj.Name, obj.Description, versionsString) - return []metav1alpha1.TableRow{row}, nil -} - -func printThirdPartyResourceList(list *extensions.ThirdPartyResourceList, options printers.PrintOptions) ([]metav1alpha1.TableRow, error) { - rows := make([]metav1alpha1.TableRow, 0, len(list.Items)) - for i := range list.Items { - r, err := printThirdPartyResource(&list.Items[i], options) - if err != nil { - return nil, err - } - rows = append(rows, r...) - } - return rows, nil -} - func truncate(str string, maxLen int) string { if len(str) > maxLen { return str[0:maxLen] + "..." @@ -1753,10 +1672,7 @@ func layoutContainers(containers []api.Container, w io.Writer) error { } } _, err := fmt.Fprintf(w, "\t%s\t%s", namesBuffer.String(), imagesBuffer.String()) - if err != nil { - return err - } - return nil + return err } // Lay out all the containers on one line if use wide output. diff --git a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/printers_test.go b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/printers_test.go index d74822cd4..6c1cf7ece 100644 --- a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/printers_test.go +++ b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/printers_test.go @@ -41,12 +41,12 @@ import ( "k8s.io/apimachinery/pkg/util/diff" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/apis/storage" @@ -55,8 +55,8 @@ import ( ) func init() { - api.Scheme.AddKnownTypes(testapi.Default.InternalGroupVersion(), &kubectltesting.TestStruct{}) - api.Scheme.AddKnownTypes(api.Registry.GroupOrDie(api.GroupName).GroupVersion, &kubectltesting.TestStruct{}) + legacyscheme.Scheme.AddKnownTypes(testapi.Default.InternalGroupVersion(), &kubectltesting.TestStruct{}) + legacyscheme.Scheme.AddKnownTypes(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, &kubectltesting.TestStruct{}) } var testData = kubectltesting.TestStruct{ @@ -78,8 +78,8 @@ func TestVersionedPrinter(t *testing.T) { } return nil }), - api.Scheme, - api.Registry.GroupOrDie(api.GroupName).GroupVersion, + legacyscheme.Scheme, + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion, ) if err := p.PrintObj(original, nil); err != nil { t.Errorf("unexpected error: %v", err) @@ -96,7 +96,7 @@ func TestPrintDefault(t *testing.T) { } for _, test := range printerTests { - printer, err := printers.GetStandardPrinter(&printers.OutputOptions{AllowMissingKeys: false}, false, nil, nil, api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), []runtime.Decoder{api.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) + printer, err := printers.GetStandardPrinter(&printers.OutputOptions{AllowMissingKeys: false}, false, nil, nil, legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...), []runtime.Decoder{legacyscheme.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) if err != nil { t.Errorf("in %s, unexpected error: %#v", test.Name, err) } @@ -247,7 +247,7 @@ func TestPrinter(t *testing.T) { }, } emptyListTest := &api.PodList{} - testapi, err := api.Scheme.ConvertToVersion(podTest, api.Registry.GroupOrDie(api.GroupName).GroupVersion) + testapi, err := legacyscheme.Scheme.ConvertToVersion(podTest, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -271,12 +271,12 @@ func TestPrinter(t *testing.T) { } for _, test := range printerTests { buf := bytes.NewBuffer([]byte{}) - printer, err := printers.GetStandardPrinter(test.OutputOpts, false, api.Registry.RESTMapper(api.Registry.EnabledVersions()...), api.Scheme, api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), []runtime.Decoder{api.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) + printer, err := printers.GetStandardPrinter(test.OutputOpts, false, legacyscheme.Registry.RESTMapper(legacyscheme.Registry.EnabledVersions()...), legacyscheme.Scheme, legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...), []runtime.Decoder{legacyscheme.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) if err != nil { t.Errorf("in %s, unexpected error: %#v", test.Name, err) } if printer.IsGeneric() && len(test.OutputVersions) > 0 { - printer = printers.NewVersionedPrinter(printer, api.Scheme, test.OutputVersions...) + printer = printers.NewVersionedPrinter(printer, legacyscheme.Scheme, test.OutputVersions...) } if err := printer.PrintObj(test.Input, buf); err != nil { t.Errorf("in %s, unexpected error: %#v", test.Name, err) @@ -301,7 +301,7 @@ func TestBadPrinter(t *testing.T) { {"unknown format", &printers.OutputOptions{FmtType: "anUnknownFormat", FmtArg: "", AllowMissingKeys: false}, fmt.Errorf("output format \"anUnknownFormat\" not recognized")}, } for _, test := range badPrinterTests { - _, err := printers.GetStandardPrinter(test.OutputOpts, false, api.Registry.RESTMapper(api.Registry.EnabledVersions()...), api.Scheme, api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), []runtime.Decoder{api.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) + _, err := printers.GetStandardPrinter(test.OutputOpts, false, legacyscheme.Registry.RESTMapper(legacyscheme.Registry.EnabledVersions()...), legacyscheme.Scheme, legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...), []runtime.Decoder{legacyscheme.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) if err == nil || err.Error() != test.Error.Error() { t.Errorf("in %s, expect %s, got %s", test.Name, test.Error, err) } @@ -495,7 +495,7 @@ func TestNamePrinter(t *testing.T) { "pods/foo\npods/bar\n"}, } outputOpts := &printers.OutputOptions{FmtType: "name", AllowMissingKeys: false} - printer, _ := printers.GetStandardPrinter(outputOpts, false, api.Registry.RESTMapper(api.Registry.EnabledVersions()...), api.Scheme, api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), []runtime.Decoder{api.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) + printer, _ := printers.GetStandardPrinter(outputOpts, false, legacyscheme.Registry.RESTMapper(legacyscheme.Registry.EnabledVersions()...), legacyscheme.Scheme, legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...), []runtime.Decoder{legacyscheme.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) for name, item := range tests { buff := &bytes.Buffer{} err := printer.PrintObj(item.obj, buff) @@ -610,7 +610,7 @@ func TestTemplateStrings(t *testing.T) { t.Fatalf("tmpl fail: %v", err) } - printer := printers.NewVersionedPrinter(p, api.Scheme, api.Registry.GroupOrDie(api.GroupName).GroupVersion) + printer := printers.NewVersionedPrinter(p, legacyscheme.Scheme, legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion) for name, item := range table { buffer := &bytes.Buffer{} @@ -643,19 +643,19 @@ func TestPrinters(t *testing.T) { if err != nil { t.Fatal(err) } - templatePrinter = printers.NewVersionedPrinter(templatePrinter, api.Scheme, v1.SchemeGroupVersion) + templatePrinter = printers.NewVersionedPrinter(templatePrinter, legacyscheme.Scheme, v1.SchemeGroupVersion) templatePrinter2, err = printers.NewTemplatePrinter([]byte("{{len .items}}")) if err != nil { t.Fatal(err) } - templatePrinter2 = printers.NewVersionedPrinter(templatePrinter2, api.Scheme, v1.SchemeGroupVersion) + templatePrinter2 = printers.NewVersionedPrinter(templatePrinter2, legacyscheme.Scheme, v1.SchemeGroupVersion) jsonpathPrinter, err = printers.NewJSONPathPrinter("{.metadata.name}") if err != nil { t.Fatal(err) } - jsonpathPrinter = printers.NewVersionedPrinter(jsonpathPrinter, api.Scheme, v1.SchemeGroupVersion) + jsonpathPrinter = printers.NewVersionedPrinter(jsonpathPrinter, legacyscheme.Scheme, v1.SchemeGroupVersion) allPrinters := map[string]printers.ResourcePrinter{ "humanReadable": printers.NewHumanReadablePrinter(nil, nil, printers.PrintOptions{ @@ -668,9 +668,9 @@ func TestPrinters(t *testing.T) { "template2": templatePrinter2, "jsonpath": jsonpathPrinter, "name": &printers.NamePrinter{ - Typer: api.Scheme, - Decoders: []runtime.Decoder{api.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, - Mapper: api.Registry.RESTMapper(api.Registry.EnabledVersions()...), + Typer: legacyscheme.Scheme, + Decoders: []runtime.Decoder{legacyscheme.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, + Mapper: legacyscheme.Registry.RESTMapper(legacyscheme.Registry.EnabledVersions()...), }, } AddHandlers((allPrinters["humanReadable"]).(*printers.HumanReadablePrinter)) @@ -1672,6 +1672,65 @@ func TestPrintPod(t *testing.T) { } } +func TestPrintPodwide(t *testing.T) { + tests := []struct { + pod api.Pod + expect []metav1alpha1.TableRow + }{ + { + // Test when the NodeName and PodIP are not none + api.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "test1"}, + Spec: api.PodSpec{ + Containers: make([]api.Container, 2), + NodeName: "test1", + }, + Status: api.PodStatus{ + Phase: "podPhase", + PodIP: "1.1.1.1", + ContainerStatuses: []api.ContainerStatus{ + {Ready: true, RestartCount: 3, State: api.ContainerState{Running: &api.ContainerStateRunning{}}}, + {RestartCount: 3}, + }, + }, + }, + []metav1alpha1.TableRow{{Cells: []interface{}{"test1", "1/2", "podPhase", 6, "", "1.1.1.1", "test1"}}}, + }, + { + // Test when the NodeName and PodIP are none + api.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "test2"}, + Spec: api.PodSpec{ + Containers: make([]api.Container, 2), + NodeName: "", + }, + Status: api.PodStatus{ + Phase: "podPhase", + PodIP: "", + ContainerStatuses: []api.ContainerStatus{ + {Ready: true, RestartCount: 3, State: api.ContainerState{Running: &api.ContainerStateRunning{}}}, + {State: api.ContainerState{Waiting: &api.ContainerStateWaiting{Reason: "ContainerWaitingReason"}}, RestartCount: 3}, + }, + }, + }, + []metav1alpha1.TableRow{{Cells: []interface{}{"test2", "1/2", "ContainerWaitingReason", 6, "", "", ""}}}, + }, + } + + for i, test := range tests { + rows, err := printPod(&test.pod, printers.PrintOptions{Wide: true}) + if err != nil { + t.Fatal(err) + } + for i := range rows { + rows[i].Object.Object = nil + } + if !reflect.DeepEqual(test.expect, rows) { + t.Errorf("%d mismatch: %s", i, diff.ObjectReflectDiff(test.expect, rows)) + } + } +} + func TestPrintPodList(t *testing.T) { tests := []struct { pods api.PodList @@ -2747,7 +2806,7 @@ func TestAllowMissingKeys(t *testing.T) { } for _, test := range tests { buf := bytes.NewBuffer([]byte{}) - printer, err := printers.GetStandardPrinter(test.OutputOpts, false, api.Registry.RESTMapper(api.Registry.EnabledVersions()...), api.Scheme, api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), []runtime.Decoder{api.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) + printer, err := printers.GetStandardPrinter(test.OutputOpts, false, legacyscheme.Registry.RESTMapper(legacyscheme.Registry.EnabledVersions()...), legacyscheme.Scheme, legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...), []runtime.Decoder{legacyscheme.Codecs.UniversalDecoder(), unstructured.UnstructuredJSONScheme}, printers.PrintOptions{}) if err != nil { t.Errorf("in %s, unexpected error: %#v", test.Name, err) } @@ -3133,124 +3192,3 @@ func TestPrintStorageClass(t *testing.T) { buf.Reset() } } - -func TestPrintCluster(t *testing.T) { - tests := []struct { - cluster federation.Cluster - expect []metav1alpha1.TableRow - showLabels bool - }{ - { - federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "cluster1", - CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)}, - }, - }, - []metav1alpha1.TableRow{{Cells: []interface{}{"cluster1", "Unknown", "0s"}}}, - false, - }, - { - federation.Cluster{ - ObjectMeta: metav1.ObjectMeta{ - Name: "cluster2", - CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)}, - Labels: map[string]string{"label1": "", "label2": "cluster"}, - }, - Status: federation.ClusterStatus{ - Conditions: []federation.ClusterCondition{ - { - Status: api.ConditionTrue, - Type: federation.ClusterReady, - }, - { - Status: api.ConditionFalse, - Type: federation.ClusterOffline, - }, - }, - }, - }, - []metav1alpha1.TableRow{{Cells: []interface{}{"cluster2", "Ready,NotOffline", "0s", "label1=,label2=cluster"}}}, - true, - }, - } - - for i, test := range tests { - rows, err := printCluster(&test.cluster, printers.PrintOptions{ShowLabels: test.showLabels}) - if err != nil { - t.Fatal(err) - } - for i := range rows { - rows[i].Object.Object = nil - } - if !reflect.DeepEqual(test.expect, rows) { - t.Errorf("%d mismatch: %s", i, diff.ObjectReflectDiff(test.expect, rows)) - } - } -} - -func TestPrintClusterList(t *testing.T) { - tests := []struct { - clusters federation.ClusterList - expect []metav1alpha1.TableRow - showLabels bool - }{ - // Test podList's pod: name, num of containers, restarts, container ready status - { - federation.ClusterList{ - Items: []federation.Cluster{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "cluster1", - CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)}, - }, - Status: federation.ClusterStatus{ - Conditions: []federation.ClusterCondition{ - { - Status: api.ConditionTrue, - Type: federation.ClusterReady, - }, - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "cluster2", - CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)}, - Labels: map[string]string{"label1": "", "label2": "cluster2"}, - }, - Status: federation.ClusterStatus{ - Conditions: []federation.ClusterCondition{ - { - Status: api.ConditionTrue, - Type: federation.ClusterReady, - }, - { - Status: api.ConditionFalse, - Type: federation.ClusterOffline, - }, - }, - }, - }, - }, - }, - []metav1alpha1.TableRow{{Cells: []interface{}{"cluster1", "Ready", "0s", ""}}, - {Cells: []interface{}{"cluster2", "Ready,NotOffline", "0s", "label1=,label2=cluster2"}}}, - true, - }, - } - - for _, test := range tests { - rows, err := printClusterList(&test.clusters, printers.PrintOptions{ShowLabels: test.showLabels}) - - if err != nil { - t.Fatal(err) - } - for i := range rows { - rows[i].Object.Object = nil - } - if !reflect.DeepEqual(test.expect, rows) { - t.Errorf("mismatch: %s", diff.ObjectReflectDiff(test.expect, rows)) - } - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/sorted_resource_name_list_test.go b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/sorted_resource_name_list_test.go index 8989691e7..175c0cec7 100644 --- a/vendor/k8s.io/kubernetes/pkg/printers/internalversion/sorted_resource_name_list_test.go +++ b/vendor/k8s.io/kubernetes/pkg/printers/internalversion/sorted_resource_name_list_test.go @@ -17,11 +17,10 @@ limitations under the License. package internalversion import ( + api "k8s.io/kubernetes/pkg/apis/core" "reflect" "sort" "testing" - - "k8s.io/kubernetes/pkg/api" ) func TestSortableResourceNamesSorting(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/BUILD index a0b80defb..597c49c46 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/BUILD @@ -26,10 +26,12 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/proxy/apis/kubeproxyconfig:all-srcs", "//pkg/proxy/config:all-srcs", "//pkg/proxy/healthcheck:all-srcs", "//pkg/proxy/iptables:all-srcs", "//pkg/proxy/ipvs:all-srcs", + "//pkg/proxy/metrics:all-srcs", "//pkg/proxy/userspace:all-srcs", "//pkg/proxy/util:all-srcs", "//pkg/proxy/winkernel:all-srcs", diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/OWNERS index f1f0145ed..311f44131 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/proxy/OWNERS @@ -10,3 +10,4 @@ reviewers: - justinsb - freehan - dcbw +- m1093782566 diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/BUILD similarity index 57% rename from vendor/k8s.io/kubernetes/federation/apis/core/BUILD rename to vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/BUILD index b5d58afb5..d9887d9f9 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/core/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/BUILD @@ -7,16 +7,17 @@ load( go_library( name = "go_default_library", - srcs = ["register.go"], - importpath = "k8s.io/kubernetes/federation/apis/core", + srcs = [ + "doc.go", + "register.go", + "types.go", + "zz_generated.deepcopy.go", + ], + importpath = "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig", deps = [ - "//pkg/api:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered: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", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", ], ) @@ -31,8 +32,9 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//federation/apis/core/install:all-srcs", - "//federation/apis/core/v1:all-srcs", + "//pkg/proxy/apis/kubeproxyconfig/scheme:all-srcs", + "//pkg/proxy/apis/kubeproxyconfig/v1alpha1:all-srcs", + "//pkg/proxy/apis/kubeproxyconfig/validation:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/OWNERS new file mode 100644 index 000000000..34823356d --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/OWNERS @@ -0,0 +1,4 @@ +approvers: +- thockin +reviewers: +- sig-network-reviewers diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/doc.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/doc.go new file mode 100644 index 000000000..4a6a6ef96 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/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. +*/ + +// +k8s:deepcopy-gen=package + +package kubeproxyconfig // import "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig" diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/register.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/register.go new file mode 100644 index 000000000..d543b07a4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/register.go @@ -0,0 +1,51 @@ +/* +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 kubeproxyconfig + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// GroupName is the group name use in this package +const GroupName = "kubeproxy.config.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +func addKnownTypes(scheme *runtime.Scheme) error { + // TODO this will get cleaned up with the scheme types are fixed + scheme.AddKnownTypes(SchemeGroupVersion, + &KubeProxyConfiguration{}, + ) + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme/BUILD new file mode 100644 index 000000000..ef1fe7fce --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["scheme.go"], + importpath = "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme", + visibility = ["//visibility:public"], + deps = [ + "//pkg/proxy/apis/kubeproxyconfig:go_default_library", + "//pkg/proxy/apis/kubeproxyconfig/v1alpha1: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", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer: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/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme/scheme.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme/scheme.go new file mode 100644 index 000000000..a9273b8c8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/scheme/scheme.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. +*/ + +package scheme + +import ( + "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig" + "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" +) + +var ( + // Scheme defines methods for serializing and deserializing API objects. + Scheme = runtime.NewScheme() + // Codecs provides methods for retrieving codecs and serializers for specific + // versions and content types. + Codecs = serializer.NewCodecFactory(Scheme) +) + +func init() { + v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) + AddToScheme(Scheme) +} + +// AddToScheme adds the types of this group into the given scheme. +func AddToScheme(scheme *runtime.Scheme) { + v1alpha1.AddToScheme(scheme) + kubeproxyconfig.AddToScheme(scheme) +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/types.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/types.go new file mode 100644 index 000000000..d8bf19fe5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/types.go @@ -0,0 +1,254 @@ +/* +Copyright 2015 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 kubeproxyconfig + +import ( + "fmt" + "sort" + "strings" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ClientConnectionConfiguration contains details for constructing a client. +type ClientConnectionConfiguration struct { + // kubeConfigFile is the path to a kubeconfig file. + KubeConfigFile string + // acceptContentTypes defines the Accept header sent by clients when connecting to a server, overriding the + // default value of 'application/json'. This field will control all connections to the server used by a particular + // client. + AcceptContentTypes string + // contentType is the content type used when sending data to the server from this client. + ContentType string + // qps controls the number of queries per second allowed for this connection. + QPS float32 + // burst allows extra queries to accumulate when a client is exceeding its rate. + Burst int32 +} + +// KubeProxyIPTablesConfiguration contains iptables-related configuration +// details for the Kubernetes proxy server. +type KubeProxyIPTablesConfiguration struct { + // masqueradeBit is the bit of the iptables fwmark space to use for SNAT if using + // the pure iptables proxy mode. Values must be within the range [0, 31]. + MasqueradeBit *int32 + // masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode. + MasqueradeAll bool + // syncPeriod is the period that iptables rules are refreshed (e.g. '5s', '1m', + // '2h22m'). Must be greater than 0. + SyncPeriod metav1.Duration + // minSyncPeriod is the minimum period that iptables rules are refreshed (e.g. '5s', '1m', + // '2h22m'). + MinSyncPeriod metav1.Duration +} + +// KubeProxyIPVSConfiguration contains ipvs-related configuration +// details for the Kubernetes proxy server. +type KubeProxyIPVSConfiguration struct { + // syncPeriod is the period that ipvs rules are refreshed (e.g. '5s', '1m', + // '2h22m'). Must be greater than 0. + SyncPeriod metav1.Duration + // minSyncPeriod is the minimum period that ipvs rules are refreshed (e.g. '5s', '1m', + // '2h22m'). + MinSyncPeriod metav1.Duration + // ipvs scheduler + Scheduler string +} + +// KubeProxyConntrackConfiguration contains conntrack settings for +// the Kubernetes proxy server. +type KubeProxyConntrackConfiguration struct { + // max is the maximum number of NAT connections to track (0 to + // leave as-is). This takes precedence over maxPerCore and min. + Max *int32 + // maxPerCore is the maximum number of NAT connections to track + // per CPU core (0 to leave the limit as-is and ignore min). + MaxPerCore *int32 + // min is the minimum value of connect-tracking records to allocate, + // regardless of maxPerCore (set maxPerCore=0 to leave the limit as-is). + Min *int32 + // tcpEstablishedTimeout is how long an idle TCP connection will be kept open + // (e.g. '2s'). Must be greater than 0 to set. + TCPEstablishedTimeout *metav1.Duration + // tcpCloseWaitTimeout is how long an idle conntrack entry + // in CLOSE_WAIT state will remain in the conntrack + // table. (e.g. '60s'). Must be greater than 0 to set. + TCPCloseWaitTimeout *metav1.Duration +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// KubeProxyConfiguration contains everything necessary to configure the +// Kubernetes proxy server. +type KubeProxyConfiguration struct { + metav1.TypeMeta + + // featureGates is a comma-separated list of key=value pairs that control + // which alpha/beta features are enabled. + // + // TODO this really should be a map but that requires refactoring all + // components to use config files because local-up-cluster.sh only supports + // the --feature-gates flag right now, which is comma-separated key=value + // pairs. + FeatureGates string + + // bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0 + // for all interfaces) + BindAddress string + // healthzBindAddress is the IP address and port for the health check server to serve on, + // defaulting to 0.0.0.0:10256 + HealthzBindAddress string + // metricsBindAddress is the IP address and port for the metrics server to serve on, + // defaulting to 127.0.0.1:10249 (set to 0.0.0.0 for all interfaces) + MetricsBindAddress string + // enableProfiling enables profiling via web interface on /debug/pprof handler. + // Profiling handlers will be handled by metrics server. + EnableProfiling bool + // clusterCIDR is the CIDR range of the pods in the cluster. It is used to + // bridge traffic coming from outside of the cluster. If not provided, + // no off-cluster bridging will be performed. + ClusterCIDR string + // hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname. + HostnameOverride string + // clientConnection specifies the kubeconfig file and client connection settings for the proxy + // server to use when communicating with the apiserver. + ClientConnection ClientConnectionConfiguration + // iptables contains iptables-related configuration options. + IPTables KubeProxyIPTablesConfiguration + // ipvs contains ipvs-related configuration options. + IPVS KubeProxyIPVSConfiguration + // oomScoreAdj is the oom-score-adj value for kube-proxy process. Values must be within + // the range [-1000, 1000] + OOMScoreAdj *int32 + // mode specifies which proxy mode to use. + Mode ProxyMode + // portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed + // in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen. + PortRange string + // resourceContainer is the absolute name of the resource-only container to create and run + // the Kube-proxy in (Default: /kube-proxy). + ResourceContainer string + // udpIdleTimeout is how long an idle UDP connection will be kept open (e.g. '250ms', '2s'). + // Must be greater than 0. Only applicable for proxyMode=userspace. + UDPIdleTimeout metav1.Duration + // conntrack contains conntrack-related configuration options. + Conntrack KubeProxyConntrackConfiguration + // configSyncPeriod is how often configuration from the apiserver is refreshed. Must be greater + // than 0. + ConfigSyncPeriod metav1.Duration +} + +// Currently two modes of proxying are available: 'userspace' (older, stable) or 'iptables' +// (newer, faster). If blank, use the best-available proxy (currently iptables, but may +// change in future versions). If the iptables proxy is selected, regardless of how, but +// the system's kernel or iptables versions are insufficient, this always falls back to the +// userspace proxy. +type ProxyMode string + +const ( + ProxyModeUserspace ProxyMode = "userspace" + ProxyModeIPTables ProxyMode = "iptables" + ProxyModeIPVS ProxyMode = "ipvs" +) + +// IPVSSchedulerMethod is the algorithm for allocating TCP connections and +// UDP datagrams to real servers. Scheduling algorithms are imple- +//wanted as kernel modules. Ten are shipped with the Linux Virtual Server. +type IPVSSchedulerMethod string + +const ( + // RoundRobin distributes jobs equally amongst the available real servers. + RoundRobin IPVSSchedulerMethod = "rr" + // WeightedRoundRobin assigns jobs to real servers proportionally to there real servers' weight. + // Servers with higher weights receive new jobs first and get more jobs than servers with lower weights. + // Servers with equal weights get an equal distribution of new jobs. + WeightedRoundRobin IPVSSchedulerMethod = "wrr" + // LeastConnection assigns more jobs to real servers with fewer active jobs. + LeastConnection IPVSSchedulerMethod = "lc" + // WeightedLeastConnection assigns more jobs to servers with fewer jobs and + // relative to the real servers' weight(Ci/Wi). + WeightedLeastConnection IPVSSchedulerMethod = "wlc" + // LocalityBasedLeastConnection assigns jobs destined for the same IP address to the same server if + // the server is not overloaded and available; otherwise assigns jobs to servers with fewer jobs, + // and keep it for future assignment. + LocalityBasedLeastConnection IPVSSchedulerMethod = "lblc" + // LocalityBasedLeastConnectionWithReplication with Replication assigns jobs destined for the same IP address to the + // least-connection node in the server set for the IP address. If all the node in the server set are overloaded, + // it picks up a node with fewer jobs in the cluster and adds it to the sever set for the target. + // If the server set has not been modified for the specified time, the most loaded node is removed from the server set, + // in order to avoid high degree of replication. + LocalityBasedLeastConnectionWithReplication IPVSSchedulerMethod = "lblcr" + // SourceHashing assigns jobs to servers through looking up a statically assigned hash table + // by their source IP addresses. + SourceHashing IPVSSchedulerMethod = "sh" + // DestinationHashing assigns jobs to servers through looking up a statically assigned hash table + // by their destination IP addresses. + DestinationHashing IPVSSchedulerMethod = "dh" + // ShortestExpectedDelay assigns an incoming job to the server with the shortest expected delay. + // The expected delay that the job will experience is (Ci + 1) / Ui if sent to the ith server, in which + // Ci is the number of jobs on the the ith server and Ui is the fixed service rate (weight) of the ith server. + ShortestExpectedDelay IPVSSchedulerMethod = "sed" + // NeverQueue assigns an incoming job to an idle server if there is, instead of waiting for a fast one; + // if all the servers are busy, it adopts the ShortestExpectedDelay policy to assign the job. + NeverQueue IPVSSchedulerMethod = "nq" +) + +func (m *ProxyMode) Set(s string) error { + *m = ProxyMode(s) + return nil +} + +func (m *ProxyMode) String() string { + if m != nil { + return string(*m) + } + return "" +} + +func (m *ProxyMode) Type() string { + return "ProxyMode" +} + +type ConfigurationMap map[string]string + +func (m *ConfigurationMap) String() string { + pairs := []string{} + for k, v := range *m { + pairs = append(pairs, fmt.Sprintf("%s=%s", k, v)) + } + sort.Strings(pairs) + return strings.Join(pairs, ",") +} + +func (m *ConfigurationMap) Set(value string) error { + for _, s := range strings.Split(value, ",") { + if len(s) == 0 { + continue + } + arr := strings.SplitN(s, "=", 2) + if len(arr) == 2 { + (*m)[strings.TrimSpace(arr[0])] = strings.TrimSpace(arr[1]) + } else { + (*m)[strings.TrimSpace(arr[0])] = "" + } + } + return nil +} + +func (*ConfigurationMap) Type() string { + return "mapStringString" +} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/BUILD similarity index 66% rename from vendor/k8s.io/kubernetes/federation/apis/federation/BUILD rename to vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/BUILD index 811850813..5ddeb9014 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/BUILD @@ -8,16 +8,20 @@ load( go_library( name = "go_default_library", srcs = [ - "annotations.go", + "defaults.go", "doc.go", "register.go", "types.go", + "zz_generated.conversion.go", "zz_generated.deepcopy.go", + "zz_generated.defaults.go", ], - importpath = "k8s.io/kubernetes/federation/apis/federation", + importpath = "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1", deps = [ - "//pkg/api:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", + "//pkg/kubelet/qos:go_default_library", + "//pkg/master/ports:go_default_library", + "//pkg/proxy/apis/kubeproxyconfig:go_default_library", + "//pkg/util/pointer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -34,11 +38,6 @@ filegroup( filegroup( name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/apis/federation/install:all-srcs", - "//federation/apis/federation/v1beta1:all-srcs", - "//federation/apis/federation/validation:all-srcs", - ], + srcs = [":package-srcs"], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/defaults.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/defaults.go new file mode 100644 index 000000000..af74a1424 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/defaults.go @@ -0,0 +1,119 @@ +/* +Copyright 2015 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 v1alpha1 + +import ( + "fmt" + "strings" + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kruntime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/kubernetes/pkg/kubelet/qos" + "k8s.io/kubernetes/pkg/master/ports" + "k8s.io/kubernetes/pkg/util/pointer" +) + +func addDefaultingFuncs(scheme *kruntime.Scheme) error { + return RegisterDefaults(scheme) +} + +func SetDefaults_KubeProxyConfiguration(obj *KubeProxyConfiguration) { + if len(obj.BindAddress) == 0 { + obj.BindAddress = "0.0.0.0" + } + if obj.HealthzBindAddress == "" { + obj.HealthzBindAddress = fmt.Sprintf("0.0.0.0:%v", ports.ProxyHealthzPort) + } else if !strings.Contains(obj.HealthzBindAddress, ":") { + obj.HealthzBindAddress += fmt.Sprintf(":%v", ports.ProxyHealthzPort) + } + if obj.MetricsBindAddress == "" { + obj.MetricsBindAddress = fmt.Sprintf("127.0.0.1:%v", ports.ProxyStatusPort) + } else if !strings.Contains(obj.MetricsBindAddress, ":") { + obj.MetricsBindAddress += fmt.Sprintf(":%v", ports.ProxyStatusPort) + } + if obj.OOMScoreAdj == nil { + temp := int32(qos.KubeProxyOOMScoreAdj) + obj.OOMScoreAdj = &temp + } + if obj.ResourceContainer == "" { + obj.ResourceContainer = "/kube-proxy" + } + if obj.IPTables.SyncPeriod.Duration == 0 { + obj.IPTables.SyncPeriod = metav1.Duration{Duration: 30 * time.Second} + } + if obj.IPVS.SyncPeriod.Duration == 0 { + obj.IPVS.SyncPeriod = metav1.Duration{Duration: 30 * time.Second} + } + zero := metav1.Duration{} + if obj.UDPIdleTimeout == zero { + obj.UDPIdleTimeout = metav1.Duration{Duration: 250 * time.Millisecond} + } + // If ConntrackMax is set, respect it. + if obj.Conntrack.Max == nil { + // If ConntrackMax is *not* set, use per-core scaling. + if obj.Conntrack.MaxPerCore == nil { + obj.Conntrack.MaxPerCore = pointer.Int32Ptr(32 * 1024) + } + if obj.Conntrack.Min == nil { + obj.Conntrack.Min = pointer.Int32Ptr(128 * 1024) + } + } + if obj.IPTables.MasqueradeBit == nil { + temp := int32(14) + obj.IPTables.MasqueradeBit = &temp + } + if obj.Conntrack.TCPEstablishedTimeout == nil { + obj.Conntrack.TCPEstablishedTimeout = &metav1.Duration{Duration: 24 * time.Hour} // 1 day (1/5 default) + } + if obj.Conntrack.TCPCloseWaitTimeout == nil { + // See https://github.com/kubernetes/kubernetes/issues/32551. + // + // CLOSE_WAIT conntrack state occurs when the Linux kernel + // sees a FIN from the remote server. Note: this is a half-close + // condition that persists as long as the local side keeps the + // socket open. The condition is rare as it is typical in most + // protocols for both sides to issue a close; this typically + // occurs when the local socket is lazily garbage collected. + // + // If the CLOSE_WAIT conntrack entry expires, then FINs from the + // local socket will not be properly SNAT'd and will not reach the + // remote server (if the connection was subject to SNAT). If the + // remote timeouts for FIN_WAIT* states exceed the CLOSE_WAIT + // timeout, then there will be an inconsistency in the state of + // the connection and a new connection reusing the SNAT (src, + // port) pair may be rejected by the remote side with RST. This + // can cause new calls to connect(2) to return with ECONNREFUSED. + // + // We set CLOSE_WAIT to one hour by default to better match + // typical server timeouts. + obj.Conntrack.TCPCloseWaitTimeout = &metav1.Duration{Duration: 1 * time.Hour} + } + if obj.ConfigSyncPeriod.Duration == 0 { + obj.ConfigSyncPeriod.Duration = 15 * time.Minute + } + + if len(obj.ClientConnection.ContentType) == 0 { + obj.ClientConnection.ContentType = "application/vnd.kubernetes.protobuf" + } + if obj.ClientConnection.QPS == 0.0 { + obj.ClientConnection.QPS = 5.0 + } + if obj.ClientConnection.Burst == 0 { + obj.ClientConnection.Burst = 10 + } +} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/doc.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/doc.go similarity index 72% rename from vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/doc.go rename to vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/doc.go index 7382fb5b8..0aea39988 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +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. @@ -14,8 +14,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=k8s.io/kubernetes/federation/apis/federation +// +k8s:deepcopy-gen=package +// +k8s:conversion-gen=k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta -package v1beta1 // import "k8s.io/kubernetes/federation/apis/federation/v1beta1" + +package v1alpha1 // import "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1" diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/register.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/register.go similarity index 86% rename from vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/register.go rename to vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/register.go index b14f5b1b0..0c387fbc2 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/register.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright 2015 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. @@ -14,19 +14,18 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1beta1 +package v1alpha1 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 = "federation" +const GroupName = "kubeproxy.config.k8s.io" // SchemeGroupVersion is group version used to register these objects -var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"} +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} var ( // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. @@ -45,9 +44,7 @@ func init() { func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, - &Cluster{}, - &ClusterList{}, + &KubeProxyConfiguration{}, ) - metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go new file mode 100644 index 000000000..add86cdcb --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/types.go @@ -0,0 +1,161 @@ +/* +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 v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ClientConnectionConfiguration contains details for constructing a client. +type ClientConnectionConfiguration struct { + // kubeConfigFile is the path to a kubeconfig file. + KubeConfigFile string `json:"kubeconfig"` + // acceptContentTypes defines the Accept header sent by clients when connecting to a server, overriding the + // default value of 'application/json'. This field will control all connections to the server used by a particular + // client. + AcceptContentTypes string `json:"acceptContentTypes"` + // contentType is the content type used when sending data to the server from this client. + ContentType string `json:"contentType"` + // cps controls the number of queries per second allowed for this connection. + QPS float32 `json:"qps"` + // burst allows extra queries to accumulate when a client is exceeding its rate. + Burst int `json:"burst"` +} + +// KubeProxyIPTablesConfiguration contains iptables-related configuration +// details for the Kubernetes proxy server. +type KubeProxyIPTablesConfiguration struct { + // masqueradeBit is the bit of the iptables fwmark space to use for SNAT if using + // the pure iptables proxy mode. Values must be within the range [0, 31]. + MasqueradeBit *int32 `json:"masqueradeBit"` + // masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode. + MasqueradeAll bool `json:"masqueradeAll"` + // syncPeriod is the period that iptables rules are refreshed (e.g. '5s', '1m', + // '2h22m'). Must be greater than 0. + SyncPeriod metav1.Duration `json:"syncPeriod"` + // minSyncPeriod is the minimum period that iptables rules are refreshed (e.g. '5s', '1m', + // '2h22m'). + MinSyncPeriod metav1.Duration `json:"minSyncPeriod"` +} + +// KubeProxyIPVSConfiguration contains ipvs-related configuration +// details for the Kubernetes proxy server. +type KubeProxyIPVSConfiguration struct { + // syncPeriod is the period that ipvs rules are refreshed (e.g. '5s', '1m', + // '2h22m'). Must be greater than 0. + SyncPeriod metav1.Duration `json:"syncPeriod"` + // minSyncPeriod is the minimum period that ipvs rules are refreshed (e.g. '5s', '1m', + // '2h22m'). + MinSyncPeriod metav1.Duration `json:"minSyncPeriod"` + // ipvs scheduler + Scheduler string `json:"scheduler"` +} + +// KubeProxyConntrackConfiguration contains conntrack settings for +// the Kubernetes proxy server. +type KubeProxyConntrackConfiguration struct { + // max is the maximum number of NAT connections to track (0 to + // leave as-is). This takes precedence over maxPerCore and min. + Max *int32 `json:"max"` + // maxPerCore is the maximum number of NAT connections to track + // per CPU core (0 to leave the limit as-is and ignore min). + MaxPerCore *int32 `json:"maxPerCore"` + // min is the minimum value of connect-tracking records to allocate, + // regardless of conntrackMaxPerCore (set maxPerCore=0 to leave the limit as-is). + Min *int32 `json:"min"` + // tcpEstablishedTimeout is how long an idle TCP connection will be kept open + // (e.g. '2s'). Must be greater than 0 to set. + TCPEstablishedTimeout *metav1.Duration `json:"tcpEstablishedTimeout"` + // tcpCloseWaitTimeout is how long an idle conntrack entry + // in CLOSE_WAIT state will remain in the conntrack + // table. (e.g. '60s'). Must be greater than 0 to set. + TCPCloseWaitTimeout *metav1.Duration `json:"tcpCloseWaitTimeout"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// KubeProxyConfiguration contains everything necessary to configure the +// Kubernetes proxy server. +type KubeProxyConfiguration struct { + metav1.TypeMeta `json:",inline"` + + // featureGates is a comma-separated list of key=value pairs that control + // which alpha/beta features are enabled. + // + // TODO this really should be a map but that requires refactoring all + // components to use config files because local-up-cluster.sh only supports + // the --feature-gates flag right now, which is comma-separated key=value + // pairs. + FeatureGates string `json:"featureGates"` + + // bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0 + // for all interfaces) + BindAddress string `json:"bindAddress"` + // healthzBindAddress is the IP address and port for the health check server to serve on, + // defaulting to 0.0.0.0:10256 + HealthzBindAddress string `json:"healthzBindAddress"` + // metricsBindAddress is the IP address and port for the metrics server to serve on, + // defaulting to 127.0.0.1:10249 (set to 0.0.0.0 for all interfaces) + MetricsBindAddress string `json:"metricsBindAddress"` + // enableProfiling enables profiling via web interface on /debug/pprof handler. + // Profiling handlers will be handled by metrics server. + EnableProfiling bool `json:"enableProfiling"` + // clusterCIDR is the CIDR range of the pods in the cluster. It is used to + // bridge traffic coming from outside of the cluster. If not provided, + // no off-cluster bridging will be performed. + ClusterCIDR string `json:"clusterCIDR"` + // hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname. + HostnameOverride string `json:"hostnameOverride"` + // clientConnection specifies the kubeconfig file and client connection settings for the proxy + // server to use when communicating with the apiserver. + ClientConnection ClientConnectionConfiguration `json:"clientConnection"` + // iptables contains iptables-related configuration options. + IPTables KubeProxyIPTablesConfiguration `json:"iptables"` + // ipvs contains ipvs-related configuration options. + IPVS KubeProxyIPVSConfiguration `json:"ipvs"` + // oomScoreAdj is the oom-score-adj value for kube-proxy process. Values must be within + // the range [-1000, 1000] + OOMScoreAdj *int32 `json:"oomScoreAdj"` + // mode specifies which proxy mode to use. + Mode ProxyMode `json:"mode"` + // portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed + // in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen. + PortRange string `json:"portRange"` + // resourceContainer is the bsolute name of the resource-only container to create and run + // the Kube-proxy in (Default: /kube-proxy). + ResourceContainer string `json:"resourceContainer"` + // udpIdleTimeout is how long an idle UDP connection will be kept open (e.g. '250ms', '2s'). + // Must be greater than 0. Only applicable for proxyMode=userspace. + UDPIdleTimeout metav1.Duration `json:"udpTimeoutMilliseconds"` + // conntrack contains conntrack-related configuration options. + Conntrack KubeProxyConntrackConfiguration `json:"conntrack"` + // configSyncPeriod is how often configuration from the apiserver is refreshed. Must be greater + // than 0. + ConfigSyncPeriod metav1.Duration `json:"configSyncPeriod"` +} + +// Currently two modes of proxying are available: 'userspace' (older, stable) or 'iptables' +// (newer, faster). If blank, use the best-available proxy (currently iptables, but may +// change in future versions). If the iptables proxy is selected, regardless of how, but +// the system's kernel or iptables versions are insufficient, this always falls back to the +// userspace proxy. +type ProxyMode string + +const ( + ProxyModeUserspace ProxyMode = "userspace" + ProxyModeIPTables ProxyMode = "iptables" +) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.conversion.go new file mode 100644 index 000000000..1b3a91c5a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.conversion.go @@ -0,0 +1,224 @@ +// +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 conversion-gen. Do not edit it manually! + +package v1alpha1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + kubeproxyconfig "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig" + unsafe "unsafe" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1alpha1_ClientConnectionConfiguration_To_kubeproxyconfig_ClientConnectionConfiguration, + Convert_kubeproxyconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration, + Convert_v1alpha1_KubeProxyConfiguration_To_kubeproxyconfig_KubeProxyConfiguration, + Convert_kubeproxyconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration, + Convert_v1alpha1_KubeProxyConntrackConfiguration_To_kubeproxyconfig_KubeProxyConntrackConfiguration, + Convert_kubeproxyconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration, + Convert_v1alpha1_KubeProxyIPTablesConfiguration_To_kubeproxyconfig_KubeProxyIPTablesConfiguration, + Convert_kubeproxyconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration, + Convert_v1alpha1_KubeProxyIPVSConfiguration_To_kubeproxyconfig_KubeProxyIPVSConfiguration, + Convert_kubeproxyconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration, + ) +} + +func autoConvert_v1alpha1_ClientConnectionConfiguration_To_kubeproxyconfig_ClientConnectionConfiguration(in *ClientConnectionConfiguration, out *kubeproxyconfig.ClientConnectionConfiguration, s conversion.Scope) error { + out.KubeConfigFile = in.KubeConfigFile + out.AcceptContentTypes = in.AcceptContentTypes + out.ContentType = in.ContentType + out.QPS = in.QPS + out.Burst = int32(in.Burst) + return nil +} + +// Convert_v1alpha1_ClientConnectionConfiguration_To_kubeproxyconfig_ClientConnectionConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_ClientConnectionConfiguration_To_kubeproxyconfig_ClientConnectionConfiguration(in *ClientConnectionConfiguration, out *kubeproxyconfig.ClientConnectionConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_ClientConnectionConfiguration_To_kubeproxyconfig_ClientConnectionConfiguration(in, out, s) +} + +func autoConvert_kubeproxyconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(in *kubeproxyconfig.ClientConnectionConfiguration, out *ClientConnectionConfiguration, s conversion.Scope) error { + out.KubeConfigFile = in.KubeConfigFile + out.AcceptContentTypes = in.AcceptContentTypes + out.ContentType = in.ContentType + out.QPS = in.QPS + out.Burst = int(in.Burst) + return nil +} + +// Convert_kubeproxyconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration is an autogenerated conversion function. +func Convert_kubeproxyconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(in *kubeproxyconfig.ClientConnectionConfiguration, out *ClientConnectionConfiguration, s conversion.Scope) error { + return autoConvert_kubeproxyconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_KubeProxyConfiguration_To_kubeproxyconfig_KubeProxyConfiguration(in *KubeProxyConfiguration, out *kubeproxyconfig.KubeProxyConfiguration, s conversion.Scope) error { + out.FeatureGates = in.FeatureGates + out.BindAddress = in.BindAddress + out.HealthzBindAddress = in.HealthzBindAddress + out.MetricsBindAddress = in.MetricsBindAddress + out.EnableProfiling = in.EnableProfiling + out.ClusterCIDR = in.ClusterCIDR + out.HostnameOverride = in.HostnameOverride + if err := Convert_v1alpha1_ClientConnectionConfiguration_To_kubeproxyconfig_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { + return err + } + if err := Convert_v1alpha1_KubeProxyIPTablesConfiguration_To_kubeproxyconfig_KubeProxyIPTablesConfiguration(&in.IPTables, &out.IPTables, s); err != nil { + return err + } + if err := Convert_v1alpha1_KubeProxyIPVSConfiguration_To_kubeproxyconfig_KubeProxyIPVSConfiguration(&in.IPVS, &out.IPVS, s); err != nil { + return err + } + out.OOMScoreAdj = (*int32)(unsafe.Pointer(in.OOMScoreAdj)) + out.Mode = kubeproxyconfig.ProxyMode(in.Mode) + out.PortRange = in.PortRange + out.ResourceContainer = in.ResourceContainer + out.UDPIdleTimeout = in.UDPIdleTimeout + if err := Convert_v1alpha1_KubeProxyConntrackConfiguration_To_kubeproxyconfig_KubeProxyConntrackConfiguration(&in.Conntrack, &out.Conntrack, s); err != nil { + return err + } + out.ConfigSyncPeriod = in.ConfigSyncPeriod + return nil +} + +// Convert_v1alpha1_KubeProxyConfiguration_To_kubeproxyconfig_KubeProxyConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_KubeProxyConfiguration_To_kubeproxyconfig_KubeProxyConfiguration(in *KubeProxyConfiguration, out *kubeproxyconfig.KubeProxyConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeProxyConfiguration_To_kubeproxyconfig_KubeProxyConfiguration(in, out, s) +} + +func autoConvert_kubeproxyconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration(in *kubeproxyconfig.KubeProxyConfiguration, out *KubeProxyConfiguration, s conversion.Scope) error { + out.FeatureGates = in.FeatureGates + out.BindAddress = in.BindAddress + out.HealthzBindAddress = in.HealthzBindAddress + out.MetricsBindAddress = in.MetricsBindAddress + out.EnableProfiling = in.EnableProfiling + out.ClusterCIDR = in.ClusterCIDR + out.HostnameOverride = in.HostnameOverride + if err := Convert_kubeproxyconfig_ClientConnectionConfiguration_To_v1alpha1_ClientConnectionConfiguration(&in.ClientConnection, &out.ClientConnection, s); err != nil { + return err + } + if err := Convert_kubeproxyconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration(&in.IPTables, &out.IPTables, s); err != nil { + return err + } + if err := Convert_kubeproxyconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration(&in.IPVS, &out.IPVS, s); err != nil { + return err + } + out.OOMScoreAdj = (*int32)(unsafe.Pointer(in.OOMScoreAdj)) + out.Mode = ProxyMode(in.Mode) + out.PortRange = in.PortRange + out.ResourceContainer = in.ResourceContainer + out.UDPIdleTimeout = in.UDPIdleTimeout + if err := Convert_kubeproxyconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration(&in.Conntrack, &out.Conntrack, s); err != nil { + return err + } + out.ConfigSyncPeriod = in.ConfigSyncPeriod + return nil +} + +// Convert_kubeproxyconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration is an autogenerated conversion function. +func Convert_kubeproxyconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration(in *kubeproxyconfig.KubeProxyConfiguration, out *KubeProxyConfiguration, s conversion.Scope) error { + return autoConvert_kubeproxyconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_KubeProxyConntrackConfiguration_To_kubeproxyconfig_KubeProxyConntrackConfiguration(in *KubeProxyConntrackConfiguration, out *kubeproxyconfig.KubeProxyConntrackConfiguration, s conversion.Scope) error { + out.Max = (*int32)(unsafe.Pointer(in.Max)) + out.MaxPerCore = (*int32)(unsafe.Pointer(in.MaxPerCore)) + out.Min = (*int32)(unsafe.Pointer(in.Min)) + out.TCPEstablishedTimeout = (*v1.Duration)(unsafe.Pointer(in.TCPEstablishedTimeout)) + out.TCPCloseWaitTimeout = (*v1.Duration)(unsafe.Pointer(in.TCPCloseWaitTimeout)) + return nil +} + +// Convert_v1alpha1_KubeProxyConntrackConfiguration_To_kubeproxyconfig_KubeProxyConntrackConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_KubeProxyConntrackConfiguration_To_kubeproxyconfig_KubeProxyConntrackConfiguration(in *KubeProxyConntrackConfiguration, out *kubeproxyconfig.KubeProxyConntrackConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeProxyConntrackConfiguration_To_kubeproxyconfig_KubeProxyConntrackConfiguration(in, out, s) +} + +func autoConvert_kubeproxyconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration(in *kubeproxyconfig.KubeProxyConntrackConfiguration, out *KubeProxyConntrackConfiguration, s conversion.Scope) error { + out.Max = (*int32)(unsafe.Pointer(in.Max)) + out.MaxPerCore = (*int32)(unsafe.Pointer(in.MaxPerCore)) + out.Min = (*int32)(unsafe.Pointer(in.Min)) + out.TCPEstablishedTimeout = (*v1.Duration)(unsafe.Pointer(in.TCPEstablishedTimeout)) + out.TCPCloseWaitTimeout = (*v1.Duration)(unsafe.Pointer(in.TCPCloseWaitTimeout)) + return nil +} + +// Convert_kubeproxyconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration is an autogenerated conversion function. +func Convert_kubeproxyconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration(in *kubeproxyconfig.KubeProxyConntrackConfiguration, out *KubeProxyConntrackConfiguration, s conversion.Scope) error { + return autoConvert_kubeproxyconfig_KubeProxyConntrackConfiguration_To_v1alpha1_KubeProxyConntrackConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_KubeProxyIPTablesConfiguration_To_kubeproxyconfig_KubeProxyIPTablesConfiguration(in *KubeProxyIPTablesConfiguration, out *kubeproxyconfig.KubeProxyIPTablesConfiguration, s conversion.Scope) error { + out.MasqueradeBit = (*int32)(unsafe.Pointer(in.MasqueradeBit)) + out.MasqueradeAll = in.MasqueradeAll + out.SyncPeriod = in.SyncPeriod + out.MinSyncPeriod = in.MinSyncPeriod + return nil +} + +// Convert_v1alpha1_KubeProxyIPTablesConfiguration_To_kubeproxyconfig_KubeProxyIPTablesConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_KubeProxyIPTablesConfiguration_To_kubeproxyconfig_KubeProxyIPTablesConfiguration(in *KubeProxyIPTablesConfiguration, out *kubeproxyconfig.KubeProxyIPTablesConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeProxyIPTablesConfiguration_To_kubeproxyconfig_KubeProxyIPTablesConfiguration(in, out, s) +} + +func autoConvert_kubeproxyconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration(in *kubeproxyconfig.KubeProxyIPTablesConfiguration, out *KubeProxyIPTablesConfiguration, s conversion.Scope) error { + out.MasqueradeBit = (*int32)(unsafe.Pointer(in.MasqueradeBit)) + out.MasqueradeAll = in.MasqueradeAll + out.SyncPeriod = in.SyncPeriod + out.MinSyncPeriod = in.MinSyncPeriod + return nil +} + +// Convert_kubeproxyconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration is an autogenerated conversion function. +func Convert_kubeproxyconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration(in *kubeproxyconfig.KubeProxyIPTablesConfiguration, out *KubeProxyIPTablesConfiguration, s conversion.Scope) error { + return autoConvert_kubeproxyconfig_KubeProxyIPTablesConfiguration_To_v1alpha1_KubeProxyIPTablesConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_KubeProxyIPVSConfiguration_To_kubeproxyconfig_KubeProxyIPVSConfiguration(in *KubeProxyIPVSConfiguration, out *kubeproxyconfig.KubeProxyIPVSConfiguration, s conversion.Scope) error { + out.SyncPeriod = in.SyncPeriod + out.MinSyncPeriod = in.MinSyncPeriod + out.Scheduler = in.Scheduler + return nil +} + +// Convert_v1alpha1_KubeProxyIPVSConfiguration_To_kubeproxyconfig_KubeProxyIPVSConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_KubeProxyIPVSConfiguration_To_kubeproxyconfig_KubeProxyIPVSConfiguration(in *KubeProxyIPVSConfiguration, out *kubeproxyconfig.KubeProxyIPVSConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeProxyIPVSConfiguration_To_kubeproxyconfig_KubeProxyIPVSConfiguration(in, out, s) +} + +func autoConvert_kubeproxyconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration(in *kubeproxyconfig.KubeProxyIPVSConfiguration, out *KubeProxyIPVSConfiguration, s conversion.Scope) error { + out.SyncPeriod = in.SyncPeriod + out.MinSyncPeriod = in.MinSyncPeriod + out.Scheduler = in.Scheduler + return nil +} + +// Convert_kubeproxyconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration is an autogenerated conversion function. +func Convert_kubeproxyconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration(in *kubeproxyconfig.KubeProxyIPVSConfiguration, out *KubeProxyIPVSConfiguration, s conversion.Scope) error { + return autoConvert_kubeproxyconfig_KubeProxyIPVSConfiguration_To_v1alpha1_KubeProxyIPVSConfiguration(in, out, s) +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 000000000..44b2a6990 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,189 @@ +// +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 v1alpha1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/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 *ClientConnectionConfiguration) DeepCopyInto(out *ClientConnectionConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConnectionConfiguration. +func (in *ClientConnectionConfiguration) DeepCopy() *ClientConnectionConfiguration { + if in == nil { + return nil + } + out := new(ClientConnectionConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeProxyConfiguration) DeepCopyInto(out *KubeProxyConfiguration) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ClientConnection = in.ClientConnection + in.IPTables.DeepCopyInto(&out.IPTables) + out.IPVS = in.IPVS + if in.OOMScoreAdj != nil { + in, out := &in.OOMScoreAdj, &out.OOMScoreAdj + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + out.UDPIdleTimeout = in.UDPIdleTimeout + in.Conntrack.DeepCopyInto(&out.Conntrack) + out.ConfigSyncPeriod = in.ConfigSyncPeriod + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConfiguration. +func (in *KubeProxyConfiguration) DeepCopy() *KubeProxyConfiguration { + if in == nil { + return nil + } + out := new(KubeProxyConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *KubeProxyConfiguration) 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 *KubeProxyConntrackConfiguration) DeepCopyInto(out *KubeProxyConntrackConfiguration) { + *out = *in + if in.Max != nil { + in, out := &in.Max, &out.Max + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.MaxPerCore != nil { + in, out := &in.MaxPerCore, &out.MaxPerCore + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.Min != nil { + in, out := &in.Min, &out.Min + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.TCPEstablishedTimeout != nil { + in, out := &in.TCPEstablishedTimeout, &out.TCPEstablishedTimeout + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } + if in.TCPCloseWaitTimeout != nil { + in, out := &in.TCPCloseWaitTimeout, &out.TCPCloseWaitTimeout + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConntrackConfiguration. +func (in *KubeProxyConntrackConfiguration) DeepCopy() *KubeProxyConntrackConfiguration { + if in == nil { + return nil + } + out := new(KubeProxyConntrackConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeProxyIPTablesConfiguration) DeepCopyInto(out *KubeProxyIPTablesConfiguration) { + *out = *in + if in.MasqueradeBit != nil { + in, out := &in.MasqueradeBit, &out.MasqueradeBit + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + out.SyncPeriod = in.SyncPeriod + out.MinSyncPeriod = in.MinSyncPeriod + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyIPTablesConfiguration. +func (in *KubeProxyIPTablesConfiguration) DeepCopy() *KubeProxyIPTablesConfiguration { + if in == nil { + return nil + } + out := new(KubeProxyIPTablesConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeProxyIPVSConfiguration) DeepCopyInto(out *KubeProxyIPVSConfiguration) { + *out = *in + out.SyncPeriod = in.SyncPeriod + out.MinSyncPeriod = in.MinSyncPeriod + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyIPVSConfiguration. +func (in *KubeProxyIPVSConfiguration) DeepCopy() *KubeProxyIPVSConfiguration { + if in == nil { + return nil + } + out := new(KubeProxyIPVSConfiguration) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.defaults.go new file mode 100644 index 000000000..843337ed8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/v1alpha1/zz_generated.defaults.go @@ -0,0 +1,37 @@ +// +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 defaulter-gen. Do not edit it manually! + +package v1alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + scheme.AddTypeDefaultingFunc(&KubeProxyConfiguration{}, func(obj interface{}) { SetObjectDefaults_KubeProxyConfiguration(obj.(*KubeProxyConfiguration)) }) + return nil +} + +func SetObjectDefaults_KubeProxyConfiguration(in *KubeProxyConfiguration) { + SetDefaults_KubeProxyConfiguration(in) +} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/BUILD similarity index 64% rename from vendor/k8s.io/kubernetes/federation/apis/federation/validation/BUILD rename to vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/BUILD index 9c7c0caac..2c8abb0dc 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/BUILD @@ -9,23 +9,11 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - importpath = "k8s.io/kubernetes/federation/apis/federation/validation", + importpath = "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation", deps = [ - "//federation/apis/federation:go_default_library", - "//pkg/api/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["validation_test.go"], - importpath = "k8s.io/kubernetes/federation/apis/federation/validation", - library = ":go_default_library", - deps = [ - "//federation/apis/federation:go_default_library", - "//pkg/api:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//pkg/apis/core/validation:go_default_library", + "//pkg/proxy/apis/kubeproxyconfig:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) @@ -42,3 +30,16 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = ["validation_test.go"], + importpath = "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation", + library = ":go_default_library", + deps = [ + "//pkg/proxy/apis/kubeproxyconfig:go_default_library", + "//pkg/util/pointer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/validation.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/validation.go similarity index 62% rename from vendor/k8s.io/kubernetes/cmd/kube-proxy/app/validation.go rename to vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/validation.go index f899bd35c..55bbe7930 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-proxy/app/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/validation.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package app +package validation import ( "fmt" @@ -24,17 +24,18 @@ import ( utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/validation/field" - apivalidation "k8s.io/kubernetes/pkg/api/validation" - "k8s.io/kubernetes/pkg/apis/componentconfig" + apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" + "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig" ) // Validate validates the configuration of kube-proxy -func Validate(config *componentconfig.KubeProxyConfiguration) field.ErrorList { +func Validate(config *kubeproxyconfig.KubeProxyConfiguration) field.ErrorList { allErrs := field.ErrorList{} newPath := field.NewPath("KubeProxyConfiguration") allErrs = append(allErrs, validateKubeProxyIPTablesConfiguration(config.IPTables, newPath.Child("KubeProxyIPTablesConfiguration"))...) + allErrs = append(allErrs, validateKubeProxyIPVSConfiguration(config.IPVS, newPath.Child("KubeProxyIPVSConfiguration"))...) allErrs = append(allErrs, validateKubeProxyConntrackConfiguration(config.Conntrack, newPath.Child("KubeProxyConntrackConfiguration"))...) allErrs = append(allErrs, validateProxyMode(config.Mode, newPath.Child("Mode"))...) allErrs = append(allErrs, validateClientConnectionConfiguration(config.ClientConnection, newPath.Child("ClientConnection"))...) @@ -71,7 +72,7 @@ func Validate(config *componentconfig.KubeProxyConfiguration) field.ErrorList { return allErrs } -func validateKubeProxyIPTablesConfiguration(config componentconfig.KubeProxyIPTablesConfiguration, fldPath *field.Path) field.ErrorList { +func validateKubeProxyIPTablesConfiguration(config kubeproxyconfig.KubeProxyIPTablesConfiguration, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} if config.MasqueradeBit != nil && (*config.MasqueradeBit < 0 || *config.MasqueradeBit > 31) { @@ -86,50 +87,75 @@ func validateKubeProxyIPTablesConfiguration(config componentconfig.KubeProxyIPTa allErrs = append(allErrs, field.Invalid(fldPath.Child("MinSyncPeriod"), config.MinSyncPeriod, "must be greater than or equal to 0")) } + if config.MinSyncPeriod.Duration > config.SyncPeriod.Duration { + allErrs = append(allErrs, field.Invalid(fldPath.Child("SyncPeriod"), config.MinSyncPeriod, fmt.Sprintf("must be greater than or equal to %s", fldPath.Child("MinSyncPeriod").String()))) + } + + return allErrs +} + +func validateKubeProxyIPVSConfiguration(config kubeproxyconfig.KubeProxyIPVSConfiguration, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + + if config.SyncPeriod.Duration <= 0 { + allErrs = append(allErrs, field.Invalid(fldPath.Child("SyncPeriod"), config.SyncPeriod, "must be greater than 0")) + } + + if config.MinSyncPeriod.Duration < 0 { + allErrs = append(allErrs, field.Invalid(fldPath.Child("MinSyncPeriod"), config.MinSyncPeriod, "must be greater than or equal to 0")) + } + + if config.MinSyncPeriod.Duration > config.SyncPeriod.Duration { + allErrs = append(allErrs, field.Invalid(fldPath.Child("SyncPeriod"), config.MinSyncPeriod, fmt.Sprintf("must be greater than or equal to %s", fldPath.Child("MinSyncPeriod").String()))) + } + + allErrs = append(allErrs, validateIPVSSchedulerMethod(kubeproxyconfig.IPVSSchedulerMethod(config.Scheduler), fldPath.Child("Scheduler"))...) + return allErrs } -func validateKubeProxyConntrackConfiguration(config componentconfig.KubeProxyConntrackConfiguration, fldPath *field.Path) field.ErrorList { +func validateKubeProxyConntrackConfiguration(config kubeproxyconfig.KubeProxyConntrackConfiguration, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - if config.Max < 0 { + if config.Max != nil && *config.Max < 0 { allErrs = append(allErrs, field.Invalid(fldPath.Child("Max"), config.Max, "must be greater than or equal to 0")) } - if config.MaxPerCore < 0 { + if config.MaxPerCore != nil && *config.MaxPerCore < 0 { allErrs = append(allErrs, field.Invalid(fldPath.Child("MaxPerCore"), config.MaxPerCore, "must be greater than or equal to 0")) } - if config.Min < 0 { + if config.Min != nil && *config.Min < 0 { allErrs = append(allErrs, field.Invalid(fldPath.Child("Min"), config.Min, "must be greater than or equal to 0")) } - if config.TCPEstablishedTimeout.Duration <= 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Child("TCPEstablishedTimeout"), config.TCPEstablishedTimeout, "must be greater than 0")) + if config.TCPEstablishedTimeout.Duration < 0 { + allErrs = append(allErrs, field.Invalid(fldPath.Child("TCPEstablishedTimeout"), config.TCPEstablishedTimeout, "must be greater than or equal to 0")) } - if config.TCPCloseWaitTimeout.Duration <= 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Child("TCPCloseWaitTimeout"), config.TCPCloseWaitTimeout, "must be greater than 0")) + if config.TCPCloseWaitTimeout.Duration < 0 { + allErrs = append(allErrs, field.Invalid(fldPath.Child("TCPCloseWaitTimeout"), config.TCPCloseWaitTimeout, "must be greater than or equal to 0")) } return allErrs } -func validateProxyMode(mode componentconfig.ProxyMode, fldPath *field.Path) field.ErrorList { +func validateProxyMode(mode kubeproxyconfig.ProxyMode, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} switch mode { - case componentconfig.ProxyModeUserspace: - case componentconfig.ProxyModeIPTables: + case kubeproxyconfig.ProxyModeUserspace: + case kubeproxyconfig.ProxyModeIPTables: + case kubeproxyconfig.ProxyModeIPVS: case "": default: - modes := []string{string(componentconfig.ProxyModeUserspace), string(componentconfig.ProxyModeIPTables)} + modes := []string{string(kubeproxyconfig.ProxyModeUserspace), string(kubeproxyconfig.ProxyModeIPTables), string(kubeproxyconfig.ProxyModeIPVS)} errMsg := fmt.Sprintf("must be %s or blank (blank means the best-available proxy (currently iptables)", strings.Join(modes, ",")) allErrs = append(allErrs, field.Invalid(fldPath.Child("ProxyMode"), string(mode), errMsg)) } return allErrs } -func validateClientConnectionConfiguration(config componentconfig.ClientConnectionConfiguration, fldPath *field.Path) field.ErrorList { +func validateClientConnectionConfiguration(config kubeproxyconfig.ClientConnectionConfiguration, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(config.Burst), fldPath.Child("Burst"))...) return allErrs @@ -156,3 +182,33 @@ func validateHostPort(input string, fldPath *field.Path) field.ErrorList { return allErrs } + +func validateIPVSSchedulerMethod(scheduler kubeproxyconfig.IPVSSchedulerMethod, fldPath *field.Path) field.ErrorList { + supportedMethod := []kubeproxyconfig.IPVSSchedulerMethod{ + kubeproxyconfig.RoundRobin, + kubeproxyconfig.WeightedRoundRobin, + kubeproxyconfig.LeastConnection, + kubeproxyconfig.WeightedLeastConnection, + kubeproxyconfig.LocalityBasedLeastConnection, + kubeproxyconfig.LocalityBasedLeastConnectionWithReplication, + kubeproxyconfig.SourceHashing, + kubeproxyconfig.DestinationHashing, + kubeproxyconfig.ShortestExpectedDelay, + kubeproxyconfig.NeverQueue, + "", + } + allErrs := field.ErrorList{} + var found bool + for i := range supportedMethod { + if scheduler == supportedMethod[i] { + found = true + break + } + } + // Not found + if !found { + errMsg := fmt.Sprintf("must be in %v, blank means the default algorithm method (currently rr)", supportedMethod) + allErrs = append(allErrs, field.Invalid(fldPath.Child("Scheduler"), string(scheduler), errMsg)) + } + return allErrs +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/validation_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/validation_test.go new file mode 100644 index 000000000..f316a3044 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/validation/validation_test.go @@ -0,0 +1,648 @@ +/* +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 validation + +import ( + "fmt" + "strings" + "testing" + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig" + "k8s.io/kubernetes/pkg/util/pointer" +) + +func TestValidateKubeProxyConfiguration(t *testing.T) { + successCases := []kubeproxyconfig.KubeProxyConfiguration{ + { + BindAddress: "192.168.59.103", + HealthzBindAddress: "0.0.0.0:10256", + MetricsBindAddress: "127.0.0.1:10249", + ClusterCIDR: "192.168.59.0/24", + UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, + ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, + IPTables: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + IPVS: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + Conntrack: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + }, + } + + for _, successCase := range successCases { + if errs := Validate(&successCase); len(errs) != 0 { + t.Errorf("expected success: %v", errs) + } + } + + errorCases := []struct { + config kubeproxyconfig.KubeProxyConfiguration + msg string + }{ + { + config: kubeproxyconfig.KubeProxyConfiguration{ + // only BindAddress is invalid + BindAddress: "10.10.12.11:2000", + HealthzBindAddress: "0.0.0.0:10256", + MetricsBindAddress: "127.0.0.1:10249", + ClusterCIDR: "192.168.59.0/24", + UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, + ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, + IPTables: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + IPVS: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + Conntrack: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + }, + msg: "not a valid textual representation of an IP address", + }, + { + config: kubeproxyconfig.KubeProxyConfiguration{ + BindAddress: "10.10.12.11", + // only HealthzBindAddress is invalid + HealthzBindAddress: "0.0.0.0", + MetricsBindAddress: "127.0.0.1:10249", + ClusterCIDR: "192.168.59.0/24", + UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, + ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, + IPTables: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + IPVS: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + Conntrack: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + }, + msg: "must be IP:port", + }, + { + config: kubeproxyconfig.KubeProxyConfiguration{ + BindAddress: "10.10.12.11", + HealthzBindAddress: "0.0.0.0:12345", + // only MetricsBindAddress is invalid + MetricsBindAddress: "127.0.0.1", + ClusterCIDR: "192.168.59.0/24", + UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, + ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, + IPTables: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + IPVS: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + Conntrack: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + }, + msg: "must be IP:port", + }, + { + config: kubeproxyconfig.KubeProxyConfiguration{ + BindAddress: "10.10.12.11", + HealthzBindAddress: "0.0.0.0:12345", + MetricsBindAddress: "127.0.0.1:10249", + // only ClusterCIDR is invalid + ClusterCIDR: "192.168.59.0", + UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, + ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, + IPTables: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + IPVS: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + Conntrack: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + }, + msg: "must be a valid CIDR block (e.g. 10.100.0.0/16)", + }, + { + config: kubeproxyconfig.KubeProxyConfiguration{ + BindAddress: "10.10.12.11", + HealthzBindAddress: "0.0.0.0:12345", + MetricsBindAddress: "127.0.0.1:10249", + ClusterCIDR: "192.168.59.0/24", + // only UDPIdleTimeout is invalid + UDPIdleTimeout: metav1.Duration{Duration: -1 * time.Second}, + ConfigSyncPeriod: metav1.Duration{Duration: 1 * time.Second}, + IPTables: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + IPVS: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + Conntrack: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + }, + msg: "must be greater than 0", + }, + { + config: kubeproxyconfig.KubeProxyConfiguration{ + BindAddress: "10.10.12.11", + HealthzBindAddress: "0.0.0.0:12345", + MetricsBindAddress: "127.0.0.1:10249", + ClusterCIDR: "192.168.59.0/24", + UDPIdleTimeout: metav1.Duration{Duration: 1 * time.Second}, + // only ConfigSyncPeriod is invalid + ConfigSyncPeriod: metav1.Duration{Duration: -1 * time.Second}, + IPTables: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + IPVS: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + Conntrack: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + }, + msg: "must be greater than 0", + }, + } + + for _, errorCase := range errorCases { + if errs := Validate(&errorCase.config); len(errs) == 0 { + t.Errorf("expected failure for %s", errorCase.msg) + } else if !strings.Contains(errs[0].Error(), errorCase.msg) { + t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) + } + } +} + +func TestValidateKubeProxyIPTablesConfiguration(t *testing.T) { + valid := int32(5) + successCases := []kubeproxyconfig.KubeProxyIPTablesConfiguration{ + { + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + { + MasqueradeBit: &valid, + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + } + newPath := field.NewPath("KubeProxyConfiguration") + for _, successCase := range successCases { + if errs := validateKubeProxyIPTablesConfiguration(successCase, newPath.Child("KubeProxyIPTablesConfiguration")); len(errs) != 0 { + t.Errorf("expected success: %v", errs) + } + } + + invalid := int32(-10) + errorCases := []struct { + config kubeproxyconfig.KubeProxyIPTablesConfiguration + msg string + }{ + { + config: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: -5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + msg: "must be greater than 0", + }, + { + config: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeBit: &valid, + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: -1 * time.Second}, + }, + msg: "must be greater than or equal to 0", + }, + { + config: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeBit: &invalid, + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + msg: "must be within the range [0, 31]", + }, + // SyncPeriod must be >= MinSyncPeriod + { + config: kubeproxyconfig.KubeProxyIPTablesConfiguration{ + MasqueradeBit: &valid, + MasqueradeAll: true, + SyncPeriod: metav1.Duration{Duration: 1 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + msg: fmt.Sprintf("must be greater than or equal to %s", newPath.Child("KubeProxyIPTablesConfiguration").Child("MinSyncPeriod").String()), + }, + } + + for _, errorCase := range errorCases { + if errs := validateKubeProxyIPTablesConfiguration(errorCase.config, newPath.Child("KubeProxyIPTablesConfiguration")); len(errs) == 0 { + t.Errorf("expected failure for %s", errorCase.msg) + } else if !strings.Contains(errs[0].Error(), errorCase.msg) { + t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) + } + } +} + +func TestValidateKubeProxyIPVSConfiguration(t *testing.T) { + newPath := field.NewPath("KubeProxyConfiguration") + testCases := []struct { + config kubeproxyconfig.KubeProxyIPVSConfiguration + expectErr bool + reason string + }{ + { + config: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: -5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + expectErr: true, + reason: "SyncPeriod must be greater than 0", + }, + { + config: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 0 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + }, + expectErr: true, + reason: "SyncPeriod must be greater than 0", + }, + { + config: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: -1 * time.Second}, + }, + expectErr: true, + reason: "MinSyncPeriod must be greater than or equal to 0", + }, + { + config: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 1 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + expectErr: true, + reason: "SyncPeriod must be greater than or equal to MinSyncPeriod", + }, + // SyncPeriod == MinSyncPeriod + { + config: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + }, + expectErr: false, + }, + // SyncPeriod > MinSyncPeriod + { + config: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 10 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + expectErr: false, + }, + // SyncPeriod can be 0 + { + config: kubeproxyconfig.KubeProxyIPVSConfiguration{ + SyncPeriod: metav1.Duration{Duration: 5 * time.Second}, + MinSyncPeriod: metav1.Duration{Duration: 0 * time.Second}, + }, + expectErr: false, + }, + } + + for _, test := range testCases { + errs := validateKubeProxyIPVSConfiguration(test.config, newPath.Child("KubeProxyIPVSConfiguration")) + if len(errs) == 0 && test.expectErr { + t.Errorf("Expect error, got nil, reason: %s", test.reason) + } + if len(errs) > 0 && !test.expectErr { + t.Errorf("Unexpected error: %v", errs) + } + } +} + +func TestValidateKubeProxyConntrackConfiguration(t *testing.T) { + successCases := []kubeproxyconfig.KubeProxyConntrackConfiguration{ + { + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + { + Max: pointer.Int32Ptr(0), + MaxPerCore: pointer.Int32Ptr(0), + Min: pointer.Int32Ptr(0), + TCPEstablishedTimeout: &metav1.Duration{Duration: 0 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 0 * time.Second}, + }, + } + newPath := field.NewPath("KubeProxyConfiguration") + for _, successCase := range successCases { + if errs := validateKubeProxyConntrackConfiguration(successCase, newPath.Child("KubeProxyConntrackConfiguration")); len(errs) != 0 { + t.Errorf("expected success: %v", errs) + } + } + + errorCases := []struct { + config kubeproxyconfig.KubeProxyConntrackConfiguration + msg string + }{ + { + config: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(-1), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + msg: "must be greater than or equal to 0", + }, + { + config: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(-1), + Min: pointer.Int32Ptr(1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + msg: "must be greater than or equal to 0", + }, + { + config: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(2), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(-1), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + msg: "must be greater than or equal to 0", + }, + { + config: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(4), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(3), + TCPEstablishedTimeout: &metav1.Duration{Duration: -5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: 5 * time.Second}, + }, + msg: "must be greater than or equal to 0", + }, + { + config: kubeproxyconfig.KubeProxyConntrackConfiguration{ + Max: pointer.Int32Ptr(4), + MaxPerCore: pointer.Int32Ptr(1), + Min: pointer.Int32Ptr(3), + TCPEstablishedTimeout: &metav1.Duration{Duration: 5 * time.Second}, + TCPCloseWaitTimeout: &metav1.Duration{Duration: -5 * time.Second}, + }, + msg: "must be greater than or equal to 0", + }, + } + + for _, errorCase := range errorCases { + if errs := validateKubeProxyConntrackConfiguration(errorCase.config, newPath.Child("KubeProxyConntrackConfiguration")); len(errs) == 0 { + t.Errorf("expected failure for %s", errorCase.msg) + } else if !strings.Contains(errs[0].Error(), errorCase.msg) { + t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) + } + } +} + +func TestValidateProxyMode(t *testing.T) { + newPath := field.NewPath("KubeProxyConfiguration") + successCases := []kubeproxyconfig.ProxyMode{ + kubeproxyconfig.ProxyModeUserspace, + kubeproxyconfig.ProxyModeIPTables, + kubeproxyconfig.ProxyModeIPVS, + kubeproxyconfig.ProxyMode(""), + } + + for _, successCase := range successCases { + if errs := validateProxyMode(successCase, newPath.Child("ProxyMode")); len(errs) != 0 { + t.Errorf("expected success: %v", errs) + } + } + + errorCases := []struct { + mode kubeproxyconfig.ProxyMode + msg string + }{ + { + mode: kubeproxyconfig.ProxyMode("non-existing"), + msg: "or blank (blank means the best-available proxy (currently iptables)", + }, + } + + for _, errorCase := range errorCases { + if errs := validateProxyMode(errorCase.mode, newPath.Child("ProxyMode")); len(errs) == 0 { + t.Errorf("expected failure for %s", errorCase.msg) + } else if !strings.Contains(errs[0].Error(), errorCase.msg) { + t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) + } + } +} + +func TestValidateClientConnectionConfiguration(t *testing.T) { + newPath := field.NewPath("KubeProxyConfiguration") + + successCases := []kubeproxyconfig.ClientConnectionConfiguration{ + { + Burst: 0, + }, + { + Burst: 5, + }, + } + + for _, successCase := range successCases { + if errs := validateClientConnectionConfiguration(successCase, newPath.Child("Burst")); len(errs) != 0 { + t.Errorf("expected success: %v", errs) + } + } + + errorCases := []struct { + ccc kubeproxyconfig.ClientConnectionConfiguration + msg string + }{ + { + ccc: kubeproxyconfig.ClientConnectionConfiguration{Burst: -5}, + msg: "must be greater than or equal to 0", + }, + } + + for _, errorCase := range errorCases { + if errs := validateClientConnectionConfiguration(errorCase.ccc, newPath.Child("Burst")); len(errs) == 0 { + t.Errorf("expected failure for %s", errorCase.msg) + } else if !strings.Contains(errs[0].Error(), errorCase.msg) { + t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) + } + } +} + +func TestValidateHostPort(t *testing.T) { + newPath := field.NewPath("KubeProxyConfiguration") + + successCases := []string{ + "0.0.0.0:10256", + "127.0.0.1:10256", + "10.10.10.10:10256", + } + + for _, successCase := range successCases { + if errs := validateHostPort(successCase, newPath.Child("HealthzBindAddress")); len(errs) != 0 { + t.Errorf("expected success: %v", errs) + } + } + + errorCases := []struct { + ccc string + msg string + }{ + { + ccc: "10.10.10.10", + msg: "must be IP:port", + }, + { + ccc: "123.456.789.10:12345", + msg: "must be a valid IP", + }, + { + ccc: "10.10.10.10:foo", + msg: "must be a valid port", + }, + { + ccc: "10.10.10.10:0", + msg: "must be a valid port", + }, + { + ccc: "10.10.10.10:65536", + msg: "must be a valid port", + }, + } + + for _, errorCase := range errorCases { + if errs := validateHostPort(errorCase.ccc, newPath.Child("HealthzBindAddress")); len(errs) == 0 { + t.Errorf("expected failure for %s", errorCase.msg) + } else if !strings.Contains(errs[0].Error(), errorCase.msg) { + t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) + } + } +} + +func TestValidateIPVSSchedulerMethod(t *testing.T) { + newPath := field.NewPath("KubeProxyConfiguration") + + successCases := []kubeproxyconfig.IPVSSchedulerMethod{ + kubeproxyconfig.RoundRobin, + kubeproxyconfig.WeightedRoundRobin, + kubeproxyconfig.LeastConnection, + kubeproxyconfig.WeightedLeastConnection, + kubeproxyconfig.LocalityBasedLeastConnection, + kubeproxyconfig.LocalityBasedLeastConnectionWithReplication, + kubeproxyconfig.SourceHashing, + kubeproxyconfig.DestinationHashing, + kubeproxyconfig.ShortestExpectedDelay, + kubeproxyconfig.NeverQueue, + "", + } + + for _, successCase := range successCases { + if errs := validateIPVSSchedulerMethod(successCase, newPath.Child("Scheduler")); len(errs) != 0 { + t.Errorf("expected success: %v", errs) + } + } + + errorCases := []struct { + mode kubeproxyconfig.IPVSSchedulerMethod + msg string + }{ + { + mode: kubeproxyconfig.IPVSSchedulerMethod("non-existing"), + msg: "blank means the default algorithm method (currently rr)", + }, + } + + for _, errorCase := range errorCases { + if errs := validateIPVSSchedulerMethod(errorCase.mode, newPath.Child("ProxyMode")); len(errs) == 0 { + t.Errorf("expected failure for %s", errorCase.msg) + } else if !strings.Contains(errs[0].Error(), errorCase.msg) { + t.Errorf("unexpected error: %v, expected: %s", errs[0], errorCase.msg) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/zz_generated.deepcopy.go new file mode 100644 index 000000000..752711637 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig/zz_generated.deepcopy.go @@ -0,0 +1,189 @@ +// +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 kubeproxyconfig + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/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 *ClientConnectionConfiguration) DeepCopyInto(out *ClientConnectionConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConnectionConfiguration. +func (in *ClientConnectionConfiguration) DeepCopy() *ClientConnectionConfiguration { + if in == nil { + return nil + } + out := new(ClientConnectionConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeProxyConfiguration) DeepCopyInto(out *KubeProxyConfiguration) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ClientConnection = in.ClientConnection + in.IPTables.DeepCopyInto(&out.IPTables) + out.IPVS = in.IPVS + if in.OOMScoreAdj != nil { + in, out := &in.OOMScoreAdj, &out.OOMScoreAdj + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + out.UDPIdleTimeout = in.UDPIdleTimeout + in.Conntrack.DeepCopyInto(&out.Conntrack) + out.ConfigSyncPeriod = in.ConfigSyncPeriod + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConfiguration. +func (in *KubeProxyConfiguration) DeepCopy() *KubeProxyConfiguration { + if in == nil { + return nil + } + out := new(KubeProxyConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *KubeProxyConfiguration) 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 *KubeProxyConntrackConfiguration) DeepCopyInto(out *KubeProxyConntrackConfiguration) { + *out = *in + if in.Max != nil { + in, out := &in.Max, &out.Max + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.MaxPerCore != nil { + in, out := &in.MaxPerCore, &out.MaxPerCore + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.Min != nil { + in, out := &in.Min, &out.Min + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.TCPEstablishedTimeout != nil { + in, out := &in.TCPEstablishedTimeout, &out.TCPEstablishedTimeout + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } + if in.TCPCloseWaitTimeout != nil { + in, out := &in.TCPCloseWaitTimeout, &out.TCPCloseWaitTimeout + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConntrackConfiguration. +func (in *KubeProxyConntrackConfiguration) DeepCopy() *KubeProxyConntrackConfiguration { + if in == nil { + return nil + } + out := new(KubeProxyConntrackConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeProxyIPTablesConfiguration) DeepCopyInto(out *KubeProxyIPTablesConfiguration) { + *out = *in + if in.MasqueradeBit != nil { + in, out := &in.MasqueradeBit, &out.MasqueradeBit + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + out.SyncPeriod = in.SyncPeriod + out.MinSyncPeriod = in.MinSyncPeriod + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyIPTablesConfiguration. +func (in *KubeProxyIPTablesConfiguration) DeepCopy() *KubeProxyIPTablesConfiguration { + if in == nil { + return nil + } + out := new(KubeProxyIPTablesConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeProxyIPVSConfiguration) DeepCopyInto(out *KubeProxyIPVSConfiguration) { + *out = *in + out.SyncPeriod = in.SyncPeriod + out.MinSyncPeriod = in.MinSyncPeriod + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyIPVSConfiguration. +func (in *KubeProxyIPVSConfiguration) DeepCopy() *KubeProxyIPVSConfiguration { + if in == nil { + return nil + } + out := new(KubeProxyIPVSConfiguration) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/config/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/config/BUILD index 48ab0cb49..a3f59aa45 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/config/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/config/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/proxy/config", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/informers/informers_generated/internalversion/core/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", "//pkg/controller:go_default_library", @@ -33,7 +33,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/proxy/config", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/config/api_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/config/api_test.go index afc42817d..234129b18 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/config/api_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/config/api_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" ktesting "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/config/config.go b/vendor/k8s.io/kubernetes/pkg/proxy/config/config.go index 1c79fdf6f..33e0bd169 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/config/config.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/config/config.go @@ -23,7 +23,7 @@ import ( "github.com/golang/glog" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" coreinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion" listers "k8s.io/kubernetes/pkg/client/listers/core/internalversion" "k8s.io/kubernetes/pkg/controller" diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/config/config_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/config/config_test.go index c64072d23..e6a3a6cb5 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/config/config_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/config/config_test.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" ktesting "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/healthcheck/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/healthcheck/BUILD index d195692a0..a909cef8b 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/healthcheck/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/healthcheck/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/proxy/healthcheck", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/renstrom/dedent:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/healthcheck/healthcheck.go b/vendor/k8s.io/kubernetes/pkg/proxy/healthcheck/healthcheck.go index 7ea31d0a4..7ee1da6ff 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/healthcheck/healthcheck.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/healthcheck/healthcheck.go @@ -33,7 +33,7 @@ import ( "k8s.io/apimachinery/pkg/util/clock" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) var nodeHealthzRetryInterval = 60 * time.Second diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/BUILD index ed39d5e5c..a308c9c4a 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/BUILD @@ -9,24 +9,23 @@ load( go_library( name = "go_default_library", srcs = [ - "metrics.go", "proxier.go", ], importpath = "k8s.io/kubernetes/pkg/proxy/iptables", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", "//pkg/api/service:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/features:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/healthcheck:go_default_library", + "//pkg/proxy/metrics:go_default_library", "//pkg/proxy/util:go_default_library", "//pkg/util/async:go_default_library", "//pkg/util/iptables:go_default_library", "//pkg/util/sysctl:go_default_library", "//pkg/util/version:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", @@ -43,7 +42,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/proxy/iptables", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/util:go_default_library", "//pkg/util/async:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go index 23920a55c..1710d989f 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier.go @@ -41,12 +41,13 @@ import ( "k8s.io/apimachinery/pkg/util/wait" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" apiservice "k8s.io/kubernetes/pkg/api/service" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/healthcheck" + "k8s.io/kubernetes/pkg/proxy/metrics" utilproxy "k8s.io/kubernetes/pkg/proxy/util" "k8s.io/kubernetes/pkg/util/async" utiliptables "k8s.io/kubernetes/pkg/util/iptables" @@ -79,6 +80,9 @@ const ( // the mark-for-drop chain KubeMarkDropChain utiliptables.Chain = "KUBE-MARK-DROP" + + // the kubernetes forward chain + kubeForwardChain utiliptables.Chain = "KUBE-FORWARD" ) // IPTablesVersioner can query the current iptables version. @@ -439,11 +443,6 @@ func NewProxier(ipt utiliptables.Interface, recorder record.EventRecorder, healthzServer healthcheck.HealthzUpdater, ) (*Proxier, error) { - // check valid user input - if minSyncPeriod > syncPeriod { - return nil, fmt.Errorf("minSyncPeriod (%v) must be <= syncPeriod (%v)", minSyncPeriod, syncPeriod) - } - // Set the route_localnet sysctl we need for if err := sysctl.SetSysctl(sysctlRouteLocalnet, 1); err != nil { return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlRouteLocalnet, err) @@ -457,9 +456,6 @@ func NewProxier(ipt utiliptables.Interface, } // Generate the masquerade mark to use for SNAT rules. - if masqueradeBit < 0 || masqueradeBit > 31 { - return nil, fmt.Errorf("invalid iptables-masquerade-bit %v not in [0, 31]", masqueradeBit) - } masqueradeValue := 1 << uint(masqueradeBit) masqueradeMark := fmt.Sprintf("%#08x/%#08x", masqueradeValue, masqueradeValue) @@ -542,6 +538,18 @@ func CleanupLeftovers(ipt utiliptables.Interface) (encounteredError bool) { } } + // Unlink the forwarding chain. + args = []string{ + "-m", "comment", "--comment", "kubernetes forwarding rules", + "-j", string(kubeForwardChain), + } + if err := ipt.DeleteRule(utiliptables.TableFilter, utiliptables.ChainForward, args...); err != nil { + if !utiliptables.IsNotFoundError(err) { + glog.Errorf("Error removing pure-iptables proxy rule: %v", err) + encounteredError = true + } + } + // Flush and remove all of our chains. iptablesData := bytes.NewBuffer(nil) if err := ipt.SaveInto(utiliptables.TableNAT, iptablesData); err != nil { @@ -577,14 +585,28 @@ func CleanupLeftovers(ipt utiliptables.Interface) (encounteredError bool) { encounteredError = true } } - { - filterBuf := bytes.NewBuffer(nil) - writeLine(filterBuf, "*filter") - writeLine(filterBuf, fmt.Sprintf(":%s - [0:0]", kubeServicesChain)) - writeLine(filterBuf, fmt.Sprintf("-X %s", kubeServicesChain)) - writeLine(filterBuf, "COMMIT") + + // Flush and remove all of our chains. + iptablesData = bytes.NewBuffer(nil) + if err := ipt.SaveInto(utiliptables.TableFilter, iptablesData); err != nil { + glog.Errorf("Failed to execute iptables-save for %s: %v", utiliptables.TableFilter, err) + encounteredError = true + } else { + existingFilterChains := utiliptables.GetChainLines(utiliptables.TableFilter, iptablesData.Bytes()) + filterChains := bytes.NewBuffer(nil) + filterRules := bytes.NewBuffer(nil) + writeLine(filterChains, "*filter") + for _, chain := range []utiliptables.Chain{kubeServicesChain, kubeForwardChain} { + if _, found := existingFilterChains[chain]; found { + chainString := string(chain) + writeLine(filterChains, existingFilterChains[chain]) + writeLine(filterRules, "-X", chainString) + } + } + writeLine(filterRules, "COMMIT") + filterLines := append(filterChains.Bytes(), filterRules.Bytes()...) // Write it. - if err := ipt.Restore(utiliptables.TableFilter, filterBuf.Bytes(), utiliptables.NoFlushTables, utiliptables.RestoreCounters); err != nil { + if err := ipt.Restore(utiliptables.TableFilter, filterLines, utiliptables.NoFlushTables, utiliptables.RestoreCounters); err != nil { glog.Errorf("Failed to execute iptables-restore for %s: %v", utiliptables.TableFilter, err) encounteredError = true } @@ -797,7 +819,7 @@ func getLocalIPs(endpointsMap proxyEndpointsMap) map[types.NamespacedName]sets.S for svcPortName := range endpointsMap { for _, ep := range endpointsMap[svcPortName] { if ep.isLocal { - // If the endpoint has a bad format, ipPart() will log an + // If the endpoint has a bad format, utilproxy.IPPart() will log an // error and ep.IPPart() will return a null string. if ip := ep.IPPart(); ip != "" { nsn := svcPortName.NamespacedName @@ -954,7 +976,7 @@ func (proxier *Proxier) syncProxyRules() { start := time.Now() defer func() { - SyncProxyRulesLatency.Observe(sinceInMicroseconds(start)) + metrics.SyncProxyRulesLatency.Observe(metrics.SinceInMicroseconds(start)) glog.V(4).Infof("syncProxyRules took %v", time.Since(start)) }() // don't sync rules till we've received services and endpoints @@ -1026,6 +1048,21 @@ func (proxier *Proxier) syncProxyRules() { } } + // Create and link the kube forward chain. + { + if _, err := proxier.iptables.EnsureChain(utiliptables.TableFilter, kubeForwardChain); err != nil { + glog.Errorf("Failed to ensure that %s chain %s exists: %v", utiliptables.TableFilter, kubeForwardChain, err) + return + } + + comment := "kubernetes forward rules" + args := []string{"-m", "comment", "--comment", comment, "-j", string(kubeForwardChain)} + if _, err := proxier.iptables.EnsureRule(utiliptables.Prepend, utiliptables.TableFilter, utiliptables.ChainForward, args...); err != nil { + glog.Errorf("Failed to ensure that %s chain %s jumps to %s: %v", utiliptables.TableFilter, utiliptables.ChainForward, kubeForwardChain, err) + return + } + } + // // Below this point we will not return until we try to write the iptables rules. // @@ -1068,6 +1105,11 @@ func (proxier *Proxier) syncProxyRules() { } else { writeLine(proxier.filterChains, utiliptables.MakeChainLine(kubeServicesChain)) } + if chain, ok := existingFilterChains[kubeForwardChain]; ok { + writeLine(proxier.filterChains, chain) + } else { + writeLine(proxier.filterChains, utiliptables.MakeChainLine(kubeForwardChain)) + } if chain, ok := existingNATChains[kubeServicesChain]; ok { writeLine(proxier.natChains, chain) } else { @@ -1342,7 +1384,7 @@ func (proxier *Proxier) syncProxyRules() { // This is very low impact. The NodePort range is intentionally obscure, and unlikely to actually collide with real Services. // This only affects UDP connections, which are not common. // See issue: https://github.com/kubernetes/kubernetes/issues/49881 - isIPv6 := svcInfo.clusterIP.To4() != nil + isIPv6 := utilproxy.IsIPv6(svcInfo.clusterIP) err := utilproxy.ClearUDPConntrackForPort(proxier.exec, lp.Port, isIPv6) if err != nil { glog.Errorf("Failed to clear udp conntrack for port %d, error: %v", lp.Port, err) @@ -1515,6 +1557,18 @@ func (proxier *Proxier) syncProxyRules() { ) writeLine(proxier.natRules, args...) } else { + // First write session affinity rules only over local endpoints, if applicable. + if svcInfo.sessionAffinityType == api.ServiceAffinityClientIP { + for _, endpointChain := range localEndpointChains { + writeLine(proxier.natRules, + "-A", string(svcXlbChain), + "-m", "comment", "--comment", svcNameString, + "-m", "recent", "--name", string(endpointChain), + "--rcheck", "--seconds", strconv.Itoa(svcInfo.stickyMaxAgeSeconds), "--reap", + "-j", string(endpointChain)) + } + } + // Setup probability filter rules only over local endpoints for i, endpointChain := range localEndpointChains { // Balancing rules in the per-service chain. @@ -1561,6 +1615,40 @@ func (proxier *Proxier) syncProxyRules() { "-m", "addrtype", "--dst-type", "LOCAL", "-j", string(kubeNodePortsChain)) + // If the masqueradeMark has been added then we want to forward that same + // traffic, this allows NodePort traffic to be forwarded even if the default + // FORWARD policy is not accept. + writeLine(proxier.filterRules, + "-A", string(kubeForwardChain), + "-m", "comment", "--comment", `"kubernetes forwarding rules"`, + "-m", "mark", "--mark", proxier.masqueradeMark, + "-j", "ACCEPT", + ) + + // The following rules can only be set if clusterCIDR has been defined. + if len(proxier.clusterCIDR) != 0 { + // The following two rules ensure the traffic after the initial packet + // accepted by the "kubernetes forwarding rules" rule above will be + // accepted, to be as specific as possible the traffic must be sourced + // or destined to the clusterCIDR (to/from a pod). + writeLine(proxier.filterRules, + "-A", string(kubeForwardChain), + "-s", proxier.clusterCIDR, + "-m", "comment", "--comment", `"kubernetes forwarding conntrack pod source rule"`, + "-m", "conntrack", + "--ctstate", "RELATED,ESTABLISHED", + "-j", "ACCEPT", + ) + writeLine(proxier.filterRules, + "-A", string(kubeForwardChain), + "-m", "comment", "--comment", `"kubernetes forwarding conntrack pod destination rule"`, + "-d", proxier.clusterCIDR, + "-m", "conntrack", + "--ctstate", "RELATED,ESTABLISHED", + "-j", "ACCEPT", + ) + } + // Write the end-of-table markers. writeLine(proxier.filterRules, "COMMIT") writeLine(proxier.natRules, "COMMIT") @@ -1577,20 +1665,6 @@ func (proxier *Proxier) syncProxyRules() { err = proxier.iptables.RestoreAll(proxier.iptablesData.Bytes(), utiliptables.NoFlushTables, utiliptables.RestoreCounters) if err != nil { glog.Errorf("Failed to execute iptables-restore: %v", err) - // ~rough approximation, assume ~100 chars per line - // we log first 1000 bytes, but full list at higher levels - rules := proxier.iptablesData.Bytes() - if len(rules) > 1000 { - abridgedRules := rules[:1000] - if glog.V(4) { - glog.V(4).Infof("Rules:\n%s", rules) - } else { - glog.V(2).Infof("Rules (abridged):\n%s", abridgedRules) - } - } else { - glog.V(2).Infof("Rules:\n%s", rules) - } - // Revert new local ports. glog.V(2).Infof("Closing local ports after iptables-restore failure") utilproxy.RevertPorts(replacementPortsMap, proxier.portsMap) @@ -1622,7 +1696,7 @@ func (proxier *Proxier) syncProxyRules() { // Finish housekeeping. // TODO: these could be made more consistent. - for _, svcIP := range staleServices.List() { + for _, svcIP := range staleServices.UnsortedList() { if err := utilproxy.ClearUDPConntrackForIP(proxier.exec, svcIP); err != nil { glog.Errorf("Failed to delete stale service IP %s connections, error: %v", svcIP, err) } diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier_test.go index aba1b5d58..873b47ba6 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/proxier_test.go @@ -33,7 +33,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" utilproxy "k8s.io/kubernetes/pkg/proxy/util" "k8s.io/kubernetes/pkg/util/async" @@ -325,6 +325,15 @@ func NewFakeProxier(ipt utiliptables.Interface) *Proxier { return p } +func hasSessionAffinityRule(rules []iptablestest.Rule) bool { + for _, r := range rules { + if _, ok := r[iptablestest.Recent]; ok { + return true + } + } + return false +} + func hasJump(rules []iptablestest.Rule, destChain, destIP string, destPort int) bool { destPortStr := strconv.Itoa(destPort) match := false @@ -769,6 +778,7 @@ func TestOnlyLocalLoadBalancing(t *testing.T) { NamespacedName: makeNSN("ns1", "svc1"), Port: "p80", } + svcSessionAffinityTimeout := int32(10800) makeServiceMap(fp, makeTestService(svcPortName.Namespace, svcPortName.Name, func(svc *api.Service) { @@ -784,6 +794,10 @@ func TestOnlyLocalLoadBalancing(t *testing.T) { IP: svcLBIP, }} svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.SessionAffinity = api.ServiceAffinityClientIP + svc.Spec.SessionAffinityConfig = &api.SessionAffinityConfig{ + ClientIP: &api.ClientIPConfig{TimeoutSeconds: &svcSessionAffinityTimeout}, + } }), ) @@ -838,6 +852,9 @@ func TestOnlyLocalLoadBalancing(t *testing.T) { if !hasJump(lbRules, localEpChain, "", 0) { errorf(fmt.Sprintf("Didn't find jump from lb chain %v to local ep %v", lbChain, epStrNonLocal), lbRules, t) } + if !hasSessionAffinityRule(lbRules) { + errorf(fmt.Sprintf("Didn't find session affinity rule from lb chain %v", lbChain), lbRules, t) + } } func TestOnlyLocalNodePortsNoClusterCIDR(t *testing.T) { @@ -1050,7 +1067,7 @@ func TestBuildServiceMapAddRemove(t *testing.T) { // the not-deleted service, because one of it's ServicePorts was deleted. expectedStaleUDPServices := []string{"172.16.55.10", "172.16.55.4", "172.16.55.11", "172.16.55.12"} if len(result.staleServices) != len(expectedStaleUDPServices) { - t.Errorf("expected stale UDP services length %d, got %v", len(expectedStaleUDPServices), result.staleServices.List()) + t.Errorf("expected stale UDP services length %d, got %v", len(expectedStaleUDPServices), result.staleServices.UnsortedList()) } for _, ip := range expectedStaleUDPServices { if !result.staleServices.Has(ip) { @@ -1166,7 +1183,7 @@ func TestBuildServiceMapServiceUpdate(t *testing.T) { t.Errorf("expected healthcheck ports length 1, got %v", result.hcServices) } if len(result.staleServices) != 0 { - t.Errorf("expected stale UDP services length 0, got %v", result.staleServices.List()) + t.Errorf("expected stale UDP services length 0, got %v", result.staleServices.UnsortedList()) } // No change; make sure the service map stays the same and there are @@ -1180,7 +1197,7 @@ func TestBuildServiceMapServiceUpdate(t *testing.T) { t.Errorf("expected healthcheck ports length 1, got %v", result.hcServices) } if len(result.staleServices) != 0 { - t.Errorf("expected stale UDP services length 0, got %v", result.staleServices.List()) + t.Errorf("expected stale UDP services length 0, got %v", result.staleServices.UnsortedList()) } // And back to ClusterIP @@ -1264,6 +1281,14 @@ func Test_getLocalIPs(t *testing.T) { {Namespace: "ns2", Name: "ep2"}: sets.NewString("2.2.2.2", "2.2.2.22", "2.2.2.3"), {Namespace: "ns4", Name: "ep4"}: sets.NewString("4.4.4.4", "4.4.4.6"), }, + }, { + // Case[5]: named port local and bad endpoints IP + endpointsMap: map[proxy.ServicePortName][]*endpointsInfo{ + makeServicePortName("ns1", "ep1", "p11"): { + {endpoint: "bad ip:11", isLocal: true}, + }, + }, + expected: map[types.NamespacedName]sets.String{}, }} for tci, tc := range testCases { diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/BUILD index 18c63568d..232c71ee3 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/BUILD @@ -8,11 +8,13 @@ load( go_test( name = "go_default_test", - srcs = ["proxier_test.go"], + srcs = [ + "proxier_test.go", + ], importpath = "k8s.io/kubernetes/pkg/proxy/ipvs", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/ipvs/testing:go_default_library", "//pkg/proxy/util:go_default_library", @@ -44,12 +46,13 @@ go_library( }), importpath = "k8s.io/kubernetes/pkg/proxy/ipvs", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", "//pkg/api/service:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/features:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/healthcheck:go_default_library", + "//pkg/proxy/metrics:go_default_library", "//pkg/proxy/util:go_default_library", "//pkg/util/async:go_default_library", "//pkg/util/iptables:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/README.md b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/README.md index b6f769d25..c0f616c92 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/README.md +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/README.md @@ -2,7 +2,7 @@ This document shows how to use kube-proxy ipvs mode. -### What is IPVS +## What is IPVS **IPVS (IP Virtual Server)** implements transport-layer load balancing, usually called Layer 4 LAN switching, as part of Linux kernel. @@ -10,9 +10,9 @@ Linux kernel. IPVS runs on a host and acts as a load balancer in front of a cluster of real servers. IPVS can direct requests for TCP and UDP-based services to the real servers, and make services of real servers appear as irtual services on a single IP address. -### How to use +## How to use -##### Load IPVS kernel modules +#### Load IPVS kernel modules Currently the IPVS kernel module can't be loaded automatically, so first we should use the following command to load IPVS kernel modules manually. @@ -27,27 +27,39 @@ modprobe nf_conntrack_ipv4 After that, use `lsmod | grep ip_vs` to make sure kernel modules are loaded. -##### Run kube-proxy in ipvs mode +#### Run kube-proxy in ipvs mode -First, [run cluster locally](https://github.com/kubernetes/community/blob/master/contributors/devel/running-locally.md). +#### Local UP Cluster -By default kube-proxy will run in iptables mode, with configuration file `/tmp/kube-proxy.yaml`. so we need to change the -configuration file and restart it. Here is a yaml file for reference. +Kube-proxy will run in iptables mode by default in a [local-up cluster](https://github.com/kubernetes/community/blob/master/contributors/devel/running-locally.md). -```yaml -apiVersion: componentconfig/v1alpha1 -kind: KubeProxyConfiguration -clientConnection: - kubeconfig: /var/run/kubernetes/kube-proxy.kubeconfig -hostnameOverride: 127.0.0.1 -mode: ipvs -featureGates: AllAlpha=true -ipvs: - minSyncPeriod: 10s - syncPeriod: 60s +Users should export the env `KUBEPROXY_MODE=ipvs` to specify the ipvs mode before deploying the cluster if want to run kube-proxy in ipvs mode. + +#### Cluster Created by Kubeadm + +Kube-proxy will run in iptables mode by default in a cluster deployed by [kubeadm](https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/). + +Since IPVS mode is still feature-gated, users should add the flag `--feature-gates=SupportIPVSProxyMode=true` in `kubeadm init` command + +``` +kubeadm init --feature-gates=SupportIPVSProxyMode=true ``` -##### Test +to specify the ipvs mode before deploying the cluster if want to run kube-proxy in ipvs mode. + +If you are using kubeadm with a configuration file, you can specify the ipvs mode adding `SupportIPVSProxyMode: true` below the `featureGates` field. +Then the configuration file is similar to: + +```json +kind: MasterConfiguration +apiVersion: kubeadm.k8s.io/v1alpha1 +... +featureGates: + SupportIPVSProxyMode: true +... +``` + +#### Test Use `ipvsadm` tool to test whether the kube-proxy start succeed. By default we may get result like: @@ -61,4 +73,3 @@ TCP 10.0.0.1:443 rr persistent 10800 TCP 10.0.0.10:53 rr UDP 10.0.0.10:53 rr ``` - diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink.go index a4e859f2b..4f66f706e 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink.go @@ -22,4 +22,8 @@ type NetLinkHandle interface { EnsureAddressBind(address, devName string) (exist bool, err error) // UnbindAddress unbind address from the interface UnbindAddress(address, devName string) error + // EnsureDummyDevice checks if dummy device is exist and, if not, create one. If the dummy device is already exist, return true. + EnsureDummyDevice(devName string) (exist bool, err error) + // DeleteDummyDevice deletes the given dummy device by name. + DeleteDummyDevice(devName string) error } diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink_linux.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink_linux.go index df5b2f779..e709afafa 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink_linux.go @@ -70,3 +70,29 @@ func (h *netlinkHandle) UnbindAddress(address, devName string) error { } return nil } + +// EnsureDummyDevice is part of interface +func (h *netlinkHandle) EnsureDummyDevice(devName string) (bool, error) { + _, err := h.LinkByName(devName) + if err == nil { + // found dummy device + return true, nil + } + dummy := &netlink.Dummy{ + LinkAttrs: netlink.LinkAttrs{Name: devName}, + } + return false, h.LinkAdd(dummy) +} + +// DeleteDummyDevice is part of interface. +func (h *netlinkHandle) DeleteDummyDevice(devName string) error { + link, err := h.LinkByName(devName) + if err != nil { + return fmt.Errorf("error deleting a non-exist dummy device: %s", devName) + } + dummy, ok := link.(*netlink.Dummy) + if !ok { + return fmt.Errorf("expect dummy device, got device type: %s", link.Type()) + } + return h.LinkDel(dummy) +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink_unsupported.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink_unsupported.go index 6fec7de4a..1e22685b2 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink_unsupported.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/netlink_unsupported.go @@ -39,3 +39,13 @@ func (h *emptyHandle) EnsureAddressBind(address, devName string) (exist bool, er func (h *emptyHandle) UnbindAddress(address, devName string) error { return fmt.Errorf("netlink not supported for this platform") } + +// EnsureDummyDevice is part of interface +func (h *emptyHandle) EnsureDummyDevice(devName string) (bool, error) { + return false, fmt.Errorf("netlink is not supported in this platform") +} + +// DeleteDummyDevice is part of interface. +func (h *emptyHandle) DeleteDummyDevice(devName string) error { + return fmt.Errorf("netlink is not supported in this platform") +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go index 60a04eb13..2bd956b01 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go @@ -40,12 +40,13 @@ import ( "k8s.io/apimachinery/pkg/util/wait" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" apiservice "k8s.io/kubernetes/pkg/api/service" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/healthcheck" + "k8s.io/kubernetes/pkg/proxy/metrics" utilproxy "k8s.io/kubernetes/pkg/proxy/util" "k8s.io/kubernetes/pkg/util/async" utiliptables "k8s.io/kubernetes/pkg/util/iptables" @@ -197,11 +198,6 @@ func NewProxier(ipt utiliptables.Interface, ipvs utilipvs.Interface, healthzServer healthcheck.HealthzUpdater, scheduler string, ) (*Proxier, error) { - // check valid user input - if minSyncPeriod > syncPeriod { - return nil, fmt.Errorf("min-sync (%v) must be < sync(%v)", minSyncPeriod, syncPeriod) - } - // Set the route_localnet sysctl we need for if err := sysctl.SetSysctl(sysctlRouteLocalnet, 1); err != nil { return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlRouteLocalnet, err) @@ -225,9 +221,6 @@ func NewProxier(ipt utiliptables.Interface, ipvs utilipvs.Interface, } // Generate the masquerade mark to use for SNAT rules. - if masqueradeBit < 0 || masqueradeBit > 31 { - return nil, fmt.Errorf("invalid iptables-masquerade-bit %v not in [0, 31]", masqueradeBit) - } masqueradeValue := 1 << uint(masqueradeBit) masqueradeMark := fmt.Sprintf("%#08x/%#08x", masqueradeValue, masqueradeValue) @@ -648,10 +641,19 @@ func (em proxyEndpointsMap) unmerge(other proxyEndpointsMap) { } // CanUseIPVSProxier returns true if we can use the ipvs Proxier. -// This is determined by checking if all the required kernel modules are loaded. It may +// This is determined by checking if all the required kernel modules can be loaded. It may // return an error if it fails to get the kernel modules information without error, in which // case it will also return false. func CanUseIPVSProxier() (bool, error) { + // Try to load IPVS required kernel modules using modprobe + for _, kmod := range ipvsModules { + err := utilexec.New().Command("modprobe", "--", kmod).Run() + if err != nil { + glog.Warningf("Failed to load kernel module %v with modprobe. "+ + "You can ignore this message when kube-proxy is running inside container without mounting /lib/modules", kmod) + } + } + // Find out loaded kernel modules out, err := utilexec.New().Command("cut", "-f1", "-d", " ", "/proc/modules").CombinedOutput() if err != nil { @@ -663,9 +665,9 @@ func CanUseIPVSProxier() (bool, error) { loadModules := sets.NewString() wantModules.Insert(ipvsModules...) loadModules.Insert(mods...) - modules := wantModules.Difference(loadModules).List() + modules := wantModules.Difference(loadModules).UnsortedList() if len(modules) != 0 { - return false, fmt.Errorf("Failed to load kernel modules: %v", modules) + return false, fmt.Errorf("IPVS proxier will not be used because the following required kernel modules are not loaded: %v", modules) } return true, nil } @@ -738,7 +740,7 @@ func cleanupIptablesLeftovers(ipt utiliptables.Interface) (encounteredError bool } // CleanupLeftovers clean up all ipvs and iptables rules created by ipvs Proxier. -func CleanupLeftovers(execer utilexec.Interface, ipvs utilipvs.Interface, ipt utiliptables.Interface) (encounteredError bool) { +func CleanupLeftovers(ipvs utilipvs.Interface, ipt utiliptables.Interface) (encounteredError bool) { // Return immediately when ipvs interface is nil - Probably initialization failed in somewhere. if ipvs == nil { return true @@ -751,7 +753,8 @@ func CleanupLeftovers(execer utilexec.Interface, ipvs utilipvs.Interface, ipt ut encounteredError = true } // Delete dummy interface created by ipvs Proxier. - err = deleteDummyDevice(execer, DefaultDummyDevice) + nl := NewNetLinkHandle() + err = nl.DeleteDummyDevice(DefaultDummyDevice) if err != nil { encounteredError = true } @@ -854,12 +857,6 @@ func (proxier *Proxier) OnEndpointsSynced() { proxier.syncProxyRules() } -type syncReason string - -const syncReasonServices syncReason = "ServicesUpdate" -const syncReasonEndpoints syncReason = "EndpointsUpdate" -const syncReasonForce syncReason = "Force" - // This is where all of the ipvs calls happen. // assumes proxier.mu is held func (proxier *Proxier) syncProxyRules() { @@ -868,6 +865,7 @@ func (proxier *Proxier) syncProxyRules() { start := time.Now() defer func() { + metrics.SyncProxyRulesLatency.Observe(metrics.SinceInMicroseconds(start)) glog.V(4).Infof("syncProxyRules took %v", time.Since(start)) }() // don't sync rules till we've received services and endpoints @@ -945,7 +943,7 @@ func (proxier *Proxier) syncProxyRules() { // End install iptables // make sure dummy interface exists in the system where ipvs Proxier will bind service address on it - _, err = ensureDummyDevice(proxier.exec, DefaultDummyDevice) + _, err = proxier.netlinkHandle.EnsureDummyDevice(DefaultDummyDevice) if err != nil { glog.Errorf("Failed to create dummy interface: %s, error: %v", DefaultDummyDevice, err) return @@ -1003,7 +1001,7 @@ func (proxier *Proxier) syncProxyRules() { "-A", string(kubeServicesChain), "-m", "comment", "--comment", fmt.Sprintf(`"%s cluster IP"`, svcNameString), "-m", protocol, "-p", protocol, - "-d", fmt.Sprintf("%s/32", svcInfo.clusterIP.String()), + "-d", utilproxy.ToCIDR(svcInfo.clusterIP), "--dport", strconv.Itoa(svcInfo.port), ) if proxier.masqueradeAll { @@ -1094,7 +1092,7 @@ func (proxier *Proxier) syncProxyRules() { "-A", string(kubeServicesChain), "-m", "comment", "--comment", fmt.Sprintf(`"%s loadbalancer IP"`, svcNameString), "-m", string(svcInfo.protocol), "-p", string(svcInfo.protocol), - "-d", fmt.Sprintf("%s/32", ingress.IP), + "-d", utilproxy.ToCIDR(net.ParseIP(ingress.IP)), "--dport", fmt.Sprintf("%d", svcInfo.port), ) @@ -1111,7 +1109,7 @@ func (proxier *Proxier) syncProxyRules() { // loadbalancer's backend hosts. In this case, request will not hit the loadbalancer but loop back directly. // Need to add the following rule to allow request on host. if allowFromNode { - writeLine(proxier.natRules, append(args, "-s", fmt.Sprintf("%s/32", ingress.IP), "-j", "ACCEPT")...) + writeLine(proxier.natRules, append(args, "-s", utilproxy.ToCIDR(net.ParseIP(ingress.IP)), "-j", "ACCEPT")...) } // If the packet was able to reach the end of firewall chain, then it did not get DNATed. @@ -1158,7 +1156,7 @@ func (proxier *Proxier) syncProxyRules() { continue } if lp.Protocol == "udp" { - isIPv6 := svcInfo.clusterIP.To4() != nil + isIPv6 := utilproxy.IsIPv6(svcInfo.clusterIP) utilproxy.ClearUDPConntrackForPort(proxier.exec, lp.Port, isIPv6) } replacementPortsMap[lp] = socket @@ -1248,7 +1246,7 @@ func (proxier *Proxier) syncProxyRules() { // Finish housekeeping. // TODO: these could be made more consistent. - for _, svcIP := range staleServices.List() { + for _, svcIP := range staleServices.UnsortedList() { if err := utilproxy.ClearUDPConntrackForIP(proxier.exec, svcIP); err != nil { glog.Errorf("Failed to delete stale service IP %s connections, error: %v", svcIP, err) } @@ -1333,7 +1331,7 @@ func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNode if !curEndpoints.Equal(newEndpoints) { // Create new endpoints - for _, ep := range newEndpoints.Difference(curEndpoints).List() { + for _, ep := range newEndpoints.Difference(curEndpoints).UnsortedList() { ip, port, err := net.SplitHostPort(ep) if err != nil { glog.Errorf("Failed to parse endpoint: %v, error: %v", ep, err) @@ -1357,7 +1355,7 @@ func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNode } } // Delete old endpoints - for _, ep := range curEndpoints.Difference(newEndpoints).List() { + for _, ep := range curEndpoints.Difference(newEndpoints).UnsortedList() { ip, port, err := net.SplitHostPort(ep) if err != nil { glog.Errorf("Failed to parse endpoint: %v, error: %v", ep, err) @@ -1460,14 +1458,18 @@ func writeLine(buf *bytes.Buffer, words ...string) { func getLocalIPs(endpointsMap proxyEndpointsMap) map[types.NamespacedName]sets.String { localIPs := make(map[types.NamespacedName]sets.String) - for svcPort := range endpointsMap { - for _, ep := range endpointsMap[svcPort] { + for svcPortName := range endpointsMap { + for _, ep := range endpointsMap[svcPortName] { if ep.isLocal { - nsn := svcPort.NamespacedName - if localIPs[nsn] == nil { - localIPs[nsn] = sets.NewString() + // If the endpoint has a bad format, utilproxy.IPPart() will log an + // error and ep.IPPart() will return a null string. + if ip := ep.IPPart(); ip != "" { + nsn := svcPortName.NamespacedName + if localIPs[nsn] == nil { + localIPs[nsn] = sets.NewString() + } + localIPs[nsn].Insert(ip) } - localIPs[nsn].Insert(ep.IPPart()) // just the IP part } } } @@ -1520,32 +1522,6 @@ func openLocalPort(lp *utilproxy.LocalPort) (utilproxy.Closeable, error) { return socket, nil } -const cmdIP = "ip" - -func ensureDummyDevice(execer utilexec.Interface, dummyDev string) (exist bool, err error) { - args := []string{"link", "add", dummyDev, "type", "dummy"} - out, err := execer.Command(cmdIP, args...).CombinedOutput() - if err != nil { - // "exit status code 2" will be returned if the device already exists - if ee, ok := err.(utilexec.ExitError); ok { - if ee.Exited() && ee.ExitStatus() == 2 { - return true, nil - } - } - return false, fmt.Errorf("error creating dummy interface %q: %v: %s", dummyDev, err, out) - } - return false, nil -} - -func deleteDummyDevice(execer utilexec.Interface, dummyDev string) error { - args := []string{"link", "del", dummyDev} - out, err := execer.Command(cmdIP, args...).CombinedOutput() - if err != nil { - return fmt.Errorf("error deleting dummy interface %q: %v: %s", dummyDev, err, out) - } - return nil -} - // ipvs Proxier fall back on iptables when it needs to do SNAT for engress packets // It will only operate iptables *nat table. // Create and link the kube postrouting chain for SNAT packets. diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go index 8119f6d5a..182d9cae4 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" "k8s.io/utils/exec" fakeexec "k8s.io/utils/exec/testing" @@ -2017,6 +2017,14 @@ func Test_getLocalIPs(t *testing.T) { {Namespace: "ns2", Name: "ep2"}: sets.NewString("2.2.2.2", "2.2.2.22", "2.2.2.3"), {Namespace: "ns4", Name: "ep4"}: sets.NewString("4.4.4.4", "4.4.4.6"), }, + }, { + // Case[5]: named port local and bad endpoints IP + endpointsMap: map[proxy.ServicePortName][]*endpointsInfo{ + makeServicePortName("ns1", "ep1", "p11"): { + {endpoint: "bad ip:11", isLocal: true}, + }, + }, + expected: map[types.NamespacedName]sets.String{}, }} for tci, tc := range testCases { @@ -2213,75 +2221,3 @@ func Test_endpointsToEndpointsMap(t *testing.T) { } } } - -func Test_ensureDummyDevice(t *testing.T) { - fcmd := fakeexec.FakeCmd{ - CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ - // Success. - func() ([]byte, error) { return []byte{}, nil }, - // Exists. - func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 2} }, - }, - } - fexec := fakeexec.FakeExec{ - CommandScript: []fakeexec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, - }, - } - // Success. - exists, err := ensureDummyDevice(&fexec, DefaultDummyDevice) - if err != nil { - t.Errorf("expected success, got %v", err) - } - if exists { - t.Errorf("expected exists = false") - } - if fcmd.CombinedOutputCalls != 1 { - t.Errorf("expected 1 CombinedOutput() calls, got %d", fcmd.CombinedOutputCalls) - } - if !sets.NewString(fcmd.CombinedOutputLog[0]...).HasAll("ip", "link", "add", "kube-ipvs0", "type", "dummy") { - t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[0]) - } - // Exists. - exists, err = ensureDummyDevice(&fexec, DefaultDummyDevice) - if err != nil { - t.Errorf("expected success, got %v", err) - } - if !exists { - t.Errorf("expected exists = true") - } -} - -func Test_deleteDummyDevice(t *testing.T) { - fcmd := fakeexec.FakeCmd{ - CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ - // Success. - func() ([]byte, error) { return []byte{}, nil }, - // Failure. - func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, - }, - } - fexec := fakeexec.FakeExec{ - CommandScript: []fakeexec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, - }, - } - // Success. - err := deleteDummyDevice(&fexec, DefaultDummyDevice) - if err != nil { - t.Errorf("expected success, got %v", err) - } - if fcmd.CombinedOutputCalls != 1 { - t.Errorf("expected 1 CombinedOutput() calls, got %d", fcmd.CombinedOutputCalls) - } - if !sets.NewString(fcmd.CombinedOutputLog[0]...).HasAll("ip", "link", "del", "kube-ipvs0") { - t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[0]) - } - // Failure. - err = deleteDummyDevice(&fexec, DefaultDummyDevice) - if err == nil { - t.Errorf("expected failure") - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/testing/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/testing/BUILD index 80856e908..0fbd41c25 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/testing/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/testing/BUILD @@ -9,12 +9,7 @@ load( go_library( name = "go_default_library", - srcs = select({ - "@io_bazel_rules_go//go/platform:linux_amd64": [ - "fake.go", - ], - "//conditions:default": [], - }), + srcs = ["fake.go"], importpath = "k8s.io/kubernetes/pkg/proxy/ipvs/testing", tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/testing/fake.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/testing/fake.go index e1dc62929..6b3f0ddc1 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/testing/fake.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/testing/fake.go @@ -1,5 +1,3 @@ -// +build linux - /* Copyright 2017 The Kubernetes Authors. @@ -36,3 +34,13 @@ func (h *FakeNetlinkHandle) EnsureAddressBind(address, devName string) (exist bo func (h *FakeNetlinkHandle) UnbindAddress(address, devName string) error { return nil } + +// EnsureDummyDevice is a mock implementation +func (h *FakeNetlinkHandle) EnsureDummyDevice(devName string) (bool, error) { + return false, nil +} + +// DeleteDummyDevice is a mock implementation +func (h *FakeNetlinkHandle) DeleteDummyDevice(devName string) error { + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/metrics/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/metrics/BUILD new file mode 100644 index 000000000..f31669151 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/metrics/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["metrics.go"], + importpath = "k8s.io/kubernetes/pkg/proxy/metrics", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/prometheus/client_golang/prometheus: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/kubernetes/pkg/proxy/iptables/metrics.go b/vendor/k8s.io/kubernetes/pkg/proxy/metrics/metrics.go similarity index 80% rename from vendor/k8s.io/kubernetes/pkg/proxy/iptables/metrics.go rename to vendor/k8s.io/kubernetes/pkg/proxy/metrics/metrics.go index fabe6a595..d442f2da3 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/metrics.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/metrics/metrics.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package iptables +package metrics import ( "sync" @@ -26,6 +26,7 @@ import ( const kubeProxySubsystem = "kubeproxy" var ( + // SyncProxyRulesLatency is the latency of one round of kube-proxy syncing proxy rules. SyncProxyRulesLatency = prometheus.NewHistogram( prometheus.HistogramOpts{ Subsystem: kubeProxySubsystem, @@ -38,13 +39,14 @@ var ( var registerMetricsOnce sync.Once +// RegisterMetrics registers sync proxy rules latency metrics func RegisterMetrics() { registerMetricsOnce.Do(func() { prometheus.MustRegister(SyncProxyRulesLatency) }) } -// Gets the time since the specified start in microseconds. -func sinceInMicroseconds(start time.Time) float64 { +// SinceInMicroseconds gets the time since the specified start in microseconds. +func SinceInMicroseconds(start time.Time) float64 { return float64(time.Since(start).Nanoseconds() / time.Microsecond.Nanoseconds()) } diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/BUILD index 7e204340f..f533d0daa 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/BUILD @@ -24,8 +24,8 @@ go_library( }), importpath = "k8s.io/kubernetes/pkg/proxy/userspace", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/util:go_default_library", "//pkg/util/iptables:go_default_library", @@ -52,7 +52,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/proxy/userspace", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/proxy:go_default_library", "//pkg/util/iptables/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/loadbalancer.go b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/loadbalancer.go index 369094e32..ebaeb9f4d 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/loadbalancer.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/loadbalancer.go @@ -17,10 +17,9 @@ limitations under the License. package userspace import ( - "net" - - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" + "net" ) // LoadBalancer is an interface for distributing incoming requests to service endpoints. diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier.go b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier.go index 8e319c8ba..8c4f622e1 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier.go @@ -28,8 +28,8 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" utilnet "k8s.io/apimachinery/pkg/util/net" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/proxy" utilerrors "k8s.io/apimachinery/pkg/util/errors" @@ -48,7 +48,7 @@ type portal struct { // ServiceInfo contains information and state for a particular proxied service type ServiceInfo struct { - // Timeout is the the read/write timeout (used for UDP connections) + // Timeout is the read/write timeout (used for UDP connections) Timeout time.Duration // ActiveClients is the cache of active UDP clients being proxied by this proxy for this service ActiveClients *ClientCache @@ -503,7 +503,7 @@ func (proxier *Proxier) unmergeService(service *api.Service, existingPorts sets. } proxier.loadBalancer.DeleteService(serviceName) } - for _, svcIP := range staleUDPServices.List() { + for _, svcIP := range staleUDPServices.UnsortedList() { if err := utilproxy.ClearUDPConntrackForIP(proxier.exec, svcIP); err != nil { glog.Errorf("Failed to delete stale service IP %s connections, error: %v", svcIP, err) } diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier_test.go index d3699a0a7..ef55b1ba0 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxier_test.go @@ -32,7 +32,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" ipttest "k8s.io/kubernetes/pkg/util/iptables/testing" "k8s.io/utils/exec" diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxysocket.go b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxysocket.go index a28b6011b..d65ac02a0 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxysocket.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/proxysocket.go @@ -27,7 +27,7 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/roundrobin.go b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/roundrobin.go index b32d69d87..e2aca2991 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/roundrobin.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/roundrobin.go @@ -27,7 +27,7 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/util/slice" ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/roundrobin_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/roundrobin_test.go index 05ccbd37a..8da691a6e 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/roundrobin_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/roundrobin_test.go @@ -22,7 +22,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/util/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/util/BUILD index 1da2c3ad0..2956b5212 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/util/BUILD @@ -11,8 +11,8 @@ go_library( importpath = "k8s.io/kubernetes/pkg/proxy/util", visibility = ["//visibility:public"], deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", @@ -30,7 +30,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/proxy/util", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/util/conntrack.go b/vendor/k8s.io/kubernetes/pkg/proxy/util/conntrack.go index 504085a5a..7806c3a1e 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/util/conntrack.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/util/conntrack.go @@ -29,11 +29,15 @@ import ( const noConnectionToDelete = "0 flow entries have been deleted" -func isIPv6(ip string) bool { - netIP := net.ParseIP(ip) +func IsIPv6(netIP net.IP) bool { return netIP != nil && netIP.To4() == nil } +func IsIPv6String(ip string) bool { + netIP := net.ParseIP(ip) + return IsIPv6(netIP) +} + func parametersWithFamily(isIPv6 bool, parameters ...string) []string { if isIPv6 { parameters = append(parameters, "-f", "ipv6") @@ -44,7 +48,7 @@ func parametersWithFamily(isIPv6 bool, parameters ...string) []string { // ClearUDPConntrackForIP uses the conntrack tool to delete the conntrack entries // for the UDP connections specified by the given service IP func ClearUDPConntrackForIP(execer exec.Interface, ip string) error { - parameters := parametersWithFamily(isIPv6(ip), "-D", "--orig-dst", ip, "-p", "udp") + parameters := parametersWithFamily(IsIPv6String(ip), "-D", "--orig-dst", ip, "-p", "udp") err := ExecConntrackTool(execer, parameters...) if err != nil && !strings.Contains(err.Error(), noConnectionToDelete) { // TODO: Better handling for deletion failure. When failure occur, stale udp connection may not get flushed. @@ -89,7 +93,7 @@ func ClearUDPConntrackForPort(execer exec.Interface, port int, isIPv6 bool) erro // ClearUDPConntrackForPeers uses the conntrack tool to delete the conntrack entries // for the UDP connections specified by the {origin, dest} IP pair. func ClearUDPConntrackForPeers(execer exec.Interface, origin, dest string) error { - parameters := parametersWithFamily(isIPv6(origin), "-D", "--orig-dst", origin, "--dst-nat", dest, "-p", "udp") + parameters := parametersWithFamily(IsIPv6String(origin), "-D", "--orig-dst", origin, "--dst-nat", dest, "-p", "udp") err := ExecConntrackTool(execer, parameters...) if err != nil && !strings.Contains(err.Error(), noConnectionToDelete) { // TODO: Better handling for deletion failure. When failure occur, stale udp connection may not get flushed. diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/util/conntrack_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/util/conntrack_test.go index 6c0db3000..f3d8a1452 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/util/conntrack_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/util/conntrack_test.go @@ -18,6 +18,7 @@ package util import ( "fmt" + "net" "strings" "testing" @@ -117,7 +118,7 @@ func TestClearUDPConntrackForIP(t *testing.T) { if err := ClearUDPConntrackForIP(&fexec, tc.ip); err != nil { t.Errorf("%s test case:, Unexpected error: %v", tc.name, err) } - expectCommand := fmt.Sprintf("conntrack -D --orig-dst %s -p udp", tc.ip) + familyParamStr(isIPv6(tc.ip)) + expectCommand := fmt.Sprintf("conntrack -D --orig-dst %s -p udp", tc.ip) + familyParamStr(IsIPv6String(tc.ip)) execCommand := strings.Join(fcmd.CombinedOutputLog[svcCount], " ") if expectCommand != execCommand { t.Errorf("%s test case: Expect command: %s, but executed %s", tc.name, expectCommand, execCommand) @@ -221,7 +222,7 @@ func TestDeleteUDPConnections(t *testing.T) { if err != nil { t.Errorf("%s test case: unexpected error: %v", tc.name, err) } - expectCommand := fmt.Sprintf("conntrack -D --orig-dst %s --dst-nat %s -p udp", tc.origin, tc.dest) + familyParamStr(isIPv6(tc.origin)) + expectCommand := fmt.Sprintf("conntrack -D --orig-dst %s --dst-nat %s -p udp", tc.origin, tc.dest) + familyParamStr(IsIPv6String(tc.origin)) execCommand := strings.Join(fcmd.CombinedOutputLog[i], " ") if expectCommand != execCommand { t.Errorf("%s test case: Expect command: %s, but executed %s", tc.name, expectCommand, execCommand) @@ -232,3 +233,99 @@ func TestDeleteUDPConnections(t *testing.T) { t.Errorf("Expect command executed %d times, but got %d", svcCount, fexec.CommandCalls) } } + +func TestIsIPv6String(t *testing.T) { + testCases := []struct { + ip string + expectIPv6 bool + }{ + { + ip: "127.0.0.1", + expectIPv6: false, + }, + { + ip: "192.168.0.0", + expectIPv6: false, + }, + { + ip: "1.2.3.4", + expectIPv6: false, + }, + { + ip: "bad ip", + expectIPv6: false, + }, + { + ip: "::1", + expectIPv6: true, + }, + { + ip: "fd00::600d:f00d", + expectIPv6: true, + }, + { + ip: "2001:db8::5", + expectIPv6: true, + }, + } + for i := range testCases { + isIPv6 := IsIPv6String(testCases[i].ip) + if isIPv6 != testCases[i].expectIPv6 { + t.Errorf("[%d] Expect ipv6 %v, got %v", i+1, testCases[i].expectIPv6, isIPv6) + } + } +} + +func TestIsIPv6(t *testing.T) { + testCases := []struct { + ip net.IP + expectIPv6 bool + }{ + { + ip: net.IPv4zero, + expectIPv6: false, + }, + { + ip: net.IPv4bcast, + expectIPv6: false, + }, + { + ip: net.ParseIP("127.0.0.1"), + expectIPv6: false, + }, + { + ip: net.ParseIP("10.20.40.40"), + expectIPv6: false, + }, + { + ip: net.ParseIP("172.17.3.0"), + expectIPv6: false, + }, + { + ip: nil, + expectIPv6: false, + }, + { + ip: net.IPv6loopback, + expectIPv6: true, + }, + { + ip: net.IPv6zero, + expectIPv6: true, + }, + { + ip: net.ParseIP("fd00::600d:f00d"), + expectIPv6: true, + }, + { + ip: net.ParseIP("2001:db8::5"), + expectIPv6: true, + }, + } + for i := range testCases { + isIPv6 := IsIPv6(testCases[i].ip) + if isIPv6 != testCases[i].expectIPv6 { + t.Errorf("[%d] Expect ipv6 %v, got %v", i+1, testCases[i].expectIPv6, isIPv6) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/util/endpoints.go b/vendor/k8s.io/kubernetes/pkg/proxy/util/endpoints.go index 32e770d4f..0e8bdffc3 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/util/endpoints.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/util/endpoints.go @@ -32,12 +32,17 @@ func IPPart(s string) string { return s } // Must be IP:port - ip, _, err := net.SplitHostPort(s) + host, _, err := net.SplitHostPort(s) if err != nil { glog.Errorf("Error parsing '%s': %v", s, err) return "" } - return ip + // Check if host string is a valid IP address + if ip := net.ParseIP(host); ip != nil { + glog.Errorf("invalid IP part '%s'", host) + return host + } + return "" } // ToCIDR returns a host address of the form /32 for diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/util/endpoints_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/util/endpoints_test.go index 618f59e96..bb28cbd71 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/util/endpoints_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/util/endpoints_test.go @@ -35,6 +35,7 @@ func TestIPPart(t *testing.T) { {"[2001:db8::2:2]:9999", "2001:db8::2:2", noError}, {"1.2.3.4::9999", "", "too many colons"}, {"1.2.3.4:[0]", "", "unexpected '[' in address"}, + {"1.2.3:8080", "", "invalid ip part"}, } for _, tc := range testCases { diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/util/utils.go b/vendor/k8s.io/kubernetes/pkg/proxy/util/utils.go index 81734f548..cac0140c3 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/util/utils.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/util/utils.go @@ -20,8 +20,8 @@ import ( "net" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "github.com/golang/glog" ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/util/utils_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/util/utils_test.go index b57850ae5..581078871 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/util/utils_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/util/utils_test.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestShouldSkipService(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/BUILD index d1ee25730..424943916 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/BUILD @@ -16,9 +16,9 @@ go_library( "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", ] + select({ "@io_bazel_rules_go//go/platform:windows_amd64": [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", "//pkg/api/service:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/features:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/healthcheck:go_default_library", @@ -48,7 +48,7 @@ go_test( library = ":go_default_library", deps = select({ "@io_bazel_rules_go//go/platform:windows_amd64": [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/proxy:go_default_library", "//pkg/util/async:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/OWNERS new file mode 100644 index 000000000..605001e0a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/OWNERS @@ -0,0 +1,3 @@ +reviewers: +- dineshgovindasamy +- madhanrm diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/proxier.go b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/proxier.go index d1f3b5518..5d56561c4 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/proxier.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/proxier.go @@ -1,7 +1,7 @@ // +build windows /* -Copyright 2015 The Kubernetes Authors. +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. @@ -37,9 +37,9 @@ import ( "k8s.io/apimachinery/pkg/util/wait" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" apiservice "k8s.io/kubernetes/pkg/api/service" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/healthcheck" @@ -93,7 +93,7 @@ type serviceInfo struct { targetPort int loadBalancerStatus api.LoadBalancerStatus sessionAffinityType api.ServiceAffinity - stickyMaxAgeMinutes int + stickyMaxAgeSeconds int externalIPs []*externalIPInfo loadBalancerIngressIPs []*loadBalancerIngressInfo loadBalancerSourceRanges []string @@ -165,6 +165,12 @@ func newServiceInfo(svcPortName proxy.ServicePortName, port *api.ServicePort, se onlyNodeLocalEndpoints = true } + // set default session sticky max age 180min=10800s + stickyMaxAgeSeconds := 10800 + if service.Spec.SessionAffinity == api.ServiceAffinityClientIP { + // Kube-apiserver side guarantees SessionAffinityConfig won't be nil when session affinity type is ClientIP + stickyMaxAgeSeconds = int(*service.Spec.SessionAffinityConfig.ClientIP.TimeoutSeconds) + } info := &serviceInfo{ clusterIP: net.ParseIP(service.Spec.ClusterIP), port: int(port.Port), @@ -174,7 +180,7 @@ func newServiceInfo(svcPortName proxy.ServicePortName, port *api.ServicePort, se // Deep-copy in case the service instance changes loadBalancerStatus: *helper.LoadBalancerStatusDeepCopy(&service.Status.LoadBalancer), sessionAffinityType: service.Spec.SessionAffinity, - stickyMaxAgeMinutes: 180, // TODO: paramaterize this in the API. + stickyMaxAgeSeconds: stickyMaxAgeSeconds, loadBalancerSourceRanges: make([]string, len(service.Spec.LoadBalancerSourceRanges)), onlyNodeLocalEndpoints: onlyNodeLocalEndpoints, } @@ -447,15 +453,6 @@ func NewProxier( recorder record.EventRecorder, healthzServer healthcheck.HealthzUpdater, ) (*Proxier, error) { - // check valid user input - if minSyncPeriod > syncPeriod { - return nil, fmt.Errorf("min-sync (%v) must be < sync(%v)", minSyncPeriod, syncPeriod) - } - - // Generate the masquerade mark to use for SNAT rules. - if masqueradeBit < 0 || masqueradeBit > 31 { - return nil, fmt.Errorf("invalid iptables-masquerade-bit %v not in [0, 31]", masqueradeBit) - } masqueradeValue := 1 << uint(masqueradeBit) masqueradeMark := fmt.Sprintf("%#08x/%#08x", masqueradeValue, masqueradeValue) @@ -925,8 +922,7 @@ func serviceToServiceMap(service *api.Service) proxyServiceMap { return serviceMap } -// This is where all of the hns -save/restore calls happen. -// The only other hns rules are those that are setup in iptablesInit() +// This is where all of the hns save/restore calls happen. // assumes proxier.mu is held func (proxier *Proxier) syncProxyRules() { proxier.mu.Lock() @@ -970,53 +966,52 @@ func (proxier *Proxier) syncProxyRules() { var hnsEndpoints []hcsshim.HNSEndpoint glog.V(4).Infof("====Applying Policy for %s====", svcName) // Create Remote endpoints for every endpoint, corresponding to the service - if len(proxier.endpointsMap[svcName]) > 0 { - for _, ep := range proxier.endpointsMap[svcName] { - var newHnsEndpoint *hcsshim.HNSEndpoint - hnsNetworkName := proxier.network.name - var err error - if len(ep.hnsID) > 0 { - newHnsEndpoint, err = hcsshim.GetHNSEndpointByID(ep.hnsID) - } - if newHnsEndpoint == nil { - // First check if an endpoint resource exists for this IP, on the current host - // A Local endpoint could exist here already - // A remote endpoint was already created and proxy was restarted - newHnsEndpoint, err = getHnsEndpointByIpAddress(net.ParseIP(ep.ip), hnsNetworkName) + for _, ep := range proxier.endpointsMap[svcName] { + var newHnsEndpoint *hcsshim.HNSEndpoint + hnsNetworkName := proxier.network.name + var err error + if len(ep.hnsID) > 0 { + newHnsEndpoint, err = hcsshim.GetHNSEndpointByID(ep.hnsID) + } + + if newHnsEndpoint == nil { + // First check if an endpoint resource exists for this IP, on the current host + // A Local endpoint could exist here already + // A remote endpoint was already created and proxy was restarted + newHnsEndpoint, err = getHnsEndpointByIpAddress(net.ParseIP(ep.ip), hnsNetworkName) + } + + if newHnsEndpoint == nil { + if ep.isLocal { + glog.Errorf("Local endpoint not found for %v: err: %v on network %s", ep.ip, err, hnsNetworkName) + continue + } + // hns Endpoint resource was not found, create one + hnsnetwork, err := hcsshim.GetHNSNetworkByName(hnsNetworkName) + if err != nil { + glog.Errorf("%v", err) + continue } - if newHnsEndpoint == nil { - if ep.isLocal { - glog.Errorf("Local endpoint not found for %v: err : %v on network %s", ep.ip, err, hnsNetworkName) - continue - } - // hns Endpoint resource was not found, create one - hnsnetwork, err := hcsshim.GetHNSNetworkByName(hnsNetworkName) - if err != nil { - glog.Errorf("%v", err) - continue - } - - hnsEndpoint := &hcsshim.HNSEndpoint{ - MacAddress: ep.macAddress, - IPAddress: net.ParseIP(ep.ip), - } - - newHnsEndpoint, err = hnsnetwork.CreateRemoteEndpoint(hnsEndpoint) - if err != nil { - glog.Errorf("Remote endpoint creation failed: %v", err) - continue - } + hnsEndpoint := &hcsshim.HNSEndpoint{ + MacAddress: ep.macAddress, + IPAddress: net.ParseIP(ep.ip), } - // Save the hnsId for reference - LogJson(newHnsEndpoint, "Hns Endpoint resource", 1) - hnsEndpoints = append(hnsEndpoints, *newHnsEndpoint) - ep.hnsID = newHnsEndpoint.Id - ep.refCount++ - Log(ep, "Endpoint resource found", 3) + newHnsEndpoint, err = hnsnetwork.CreateRemoteEndpoint(hnsEndpoint) + if err != nil { + glog.Errorf("Remote endpoint creation failed: %v", err) + continue + } } + + // Save the hnsId for reference + LogJson(newHnsEndpoint, "Hns Endpoint resource", 1) + hnsEndpoints = append(hnsEndpoints, *newHnsEndpoint) + ep.hnsID = newHnsEndpoint.Id + ep.refCount++ + Log(ep, "Endpoint resource found", 3) } glog.V(3).Infof("Associated endpoints [%s] for service [%s]", spew.Sdump(hnsEndpoints), svcName) @@ -1039,8 +1034,8 @@ func (proxier *Proxier) syncProxyRules() { false, svcInfo.clusterIP.String(), Enum(svcInfo.protocol), - uint16(svcInfo.port), uint16(svcInfo.targetPort), + uint16(svcInfo.port), ) if err != nil { glog.Errorf("Policy creation failed: %v", err) @@ -1050,7 +1045,7 @@ func (proxier *Proxier) syncProxyRules() { svcInfo.hnsID = hnsLoadBalancer.ID glog.V(3).Infof("Hns LoadBalancer resource created for cluster ip resources %v, Id [%s]", svcInfo.clusterIP, hnsLoadBalancer.ID) - // If nodePort is speficied, user should be able to use nodeIP:nodePort to reach the backend endpoints + // If nodePort is specified, user should be able to use nodeIP:nodePort to reach the backend endpoints if svcInfo.nodePort > 0 { hnsLoadBalancer, err := getHnsLoadBalancer( hnsEndpoints, @@ -1077,8 +1072,8 @@ func (proxier *Proxier) syncProxyRules() { false, externalIp.ip, Enum(svcInfo.protocol), - uint16(svcInfo.port), uint16(svcInfo.targetPort), + uint16(svcInfo.port), ) if err != nil { glog.Errorf("Policy creation failed: %v", err) @@ -1095,8 +1090,8 @@ func (proxier *Proxier) syncProxyRules() { false, lbIngressIp.ip, Enum(svcInfo.protocol), - uint16(svcInfo.port), uint16(svcInfo.targetPort), + uint16(svcInfo.port), ) if err != nil { glog.Errorf("Policy creation failed: %v", err) @@ -1126,7 +1121,7 @@ func (proxier *Proxier) syncProxyRules() { // Finish housekeeping. // TODO: these could be made more consistent. - for _, svcIP := range staleServices.List() { + for _, svcIP := range staleServices.UnsortedList() { // TODO : Check if this is required to cleanup stale services here glog.V(5).Infof("Pending delete stale service IP %s connections", svcIP) } diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/proxier_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/proxier_test.go index 24987bc7b..3bb2f641f 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/proxier_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/proxier_test.go @@ -33,7 +33,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/util/async" "k8s.io/utils/exec" @@ -42,8 +42,8 @@ import ( func newFakeServiceInfo(service proxy.ServicePortName, ip net.IP, port int, protocol api.Protocol, onlyNodeLocalEndpoints bool) *serviceInfo { return &serviceInfo{ - sessionAffinityType: api.ServiceAffinityNone, // default - stickyMaxAgeMinutes: 180, + sessionAffinityType: api.ServiceAffinityNone, // default + stickyMaxAgeSeconds: int(api.DefaultClientIPServiceAffinitySeconds), // default clusterIP: ip, port: port, protocol: protocol, diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/BUILD b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/BUILD index 163523d84..cd583ef26 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/BUILD @@ -18,8 +18,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/proxy/winuserspace", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/proxy:go_default_library", "//pkg/util/ipconfig:go_default_library", "//pkg/util/netsh:go_default_library", @@ -42,7 +42,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/proxy/winuserspace", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/proxy:go_default_library", "//pkg/util/netsh/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/loadbalancer.go b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/loadbalancer.go index b4a5bc2c2..eb0dc2dbf 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/loadbalancer.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/loadbalancer.go @@ -17,10 +17,9 @@ limitations under the License. package winuserspace import ( - "net" - - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" + "net" ) // LoadBalancer is an interface for distributing incoming requests to service endpoints. diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxier.go b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxier.go index 4e6382918..5b3181642 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxier.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxier.go @@ -29,8 +29,8 @@ import ( "k8s.io/apimachinery/pkg/types" utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/util/netsh" ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxier_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxier_test.go index fadc5e38b..f69e64c63 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxier_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxier_test.go @@ -32,7 +32,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" netshtest "k8s.io/kubernetes/pkg/util/netsh/testing" ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxysocket.go b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxysocket.go index ced3a8b0c..ed87f1975 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxysocket.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/proxysocket.go @@ -30,7 +30,7 @@ import ( "github.com/miekg/dns" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/util/ipconfig" "k8s.io/utils/exec" diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/roundrobin.go b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/roundrobin.go index 86d7614c8..27b835559 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/roundrobin.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/roundrobin.go @@ -27,7 +27,7 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/util/slice" ) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/roundrobin_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/roundrobin_test.go index 1f4973ee1..c0dce2b51 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/roundrobin_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winuserspace/roundrobin_test.go @@ -22,7 +22,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/proxy" ) diff --git a/vendor/k8s.io/kubernetes/pkg/quota/BUILD b/vendor/k8s.io/kubernetes/pkg/quota/BUILD index 5ee2463ee..7d5cd0960 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/quota/BUILD @@ -14,13 +14,14 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/quota", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", ], ) @@ -30,7 +31,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/quota", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/BUILD b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/BUILD index 769d61a38..85d50d085 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/BUILD @@ -9,30 +9,25 @@ load( go_library( name = "go_default_library", srcs = [ - "configmap.go", "doc.go", "persistent_volume_claims.go", "pods.go", "registry.go", - "replication_controllers.go", - "resource_quotas.go", - "secrets.go", "services.go", ], importpath = "k8s.io/kubernetes/pkg/quota/evaluator/core", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", - "//pkg/api/helper/qos:go_default_library", - "//pkg/api/v1:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", + "//pkg/apis/core/helper/qos:go_default_library", + "//pkg/apis/core/v1:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/features:go_default_library", "//pkg/kubeapiserver/admission/util:go_default_library", "//pkg/quota:go_default_library", "//pkg/quota/generic:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource: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", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", @@ -43,8 +38,6 @@ go_library( "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/features:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//vendor/k8s.io/client-go/informers:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", ], ) @@ -58,13 +51,14 @@ go_test( importpath = "k8s.io/kubernetes/pkg/quota/evaluator/core", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/quota:go_default_library", + "//pkg/quota/generic:go_default_library", "//pkg/util/node:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/configmap.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/configmap.go deleted file mode 100644 index bde20fc72..000000000 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/configmap.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -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 core - -import ( - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/quota/generic" -) - -// listConfigMapsByNamespaceFuncUsingClient returns a configMap listing function based on the provided client. -func listConfigMapsByNamespaceFuncUsingClient(kubeClient clientset.Interface) generic.ListFuncByNamespace { - // TODO: ideally, we could pass dynamic client pool down into this code, and have one way of doing this. - // unfortunately, dynamic client works with Unstructured objects, and when we calculate Usage, we require - // structured objects. - return func(namespace string, options metav1.ListOptions) ([]runtime.Object, error) { - itemList, err := kubeClient.Core().ConfigMaps(namespace).List(options) - if err != nil { - return nil, err - } - results := make([]runtime.Object, 0, len(itemList.Items)) - for i := range itemList.Items { - results = append(results, &itemList.Items[i]) - } - return results, nil - } -} - -// NewConfigMapEvaluator returns an evaluator that can evaluate configMaps -// if the specified shared informer factory is not nil, evaluator may use it to support listing functions. -func NewConfigMapEvaluator(kubeClient clientset.Interface, f informers.SharedInformerFactory) quota.Evaluator { - listFuncByNamespace := listConfigMapsByNamespaceFuncUsingClient(kubeClient) - if f != nil { - listFuncByNamespace = generic.ListResourceUsingInformerFunc(f, v1.SchemeGroupVersion.WithResource("configmaps")) - } - return &generic.ObjectCountEvaluator{ - AllowCreateOnUpdate: false, - InternalGroupKind: api.Kind("ConfigMap"), - ResourceName: api.ResourceConfigMaps, - ListFuncByNamespace: listFuncByNamespace, - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/persistent_volume_claims.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/persistent_volume_claims.go index 9759c492e..9032dcaf7 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/persistent_volume_claims.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/persistent_volume_claims.go @@ -22,26 +22,25 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/initialization" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/features" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/client-go/informers" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" k8sfeatures "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubeapiserver/admission/util" "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/generic" ) +// the name used for object count quota +var pvcObjectCountName = generic.ObjectCountQuotaResourceNameFor(v1.SchemeGroupVersion.WithResource("persistentvolumeclaims").GroupResource()) + // pvcResources are the set of static resources managed by quota associated with pvcs. // for each resouce in this list, it may be refined dynamically based on storage class. var pvcResources = []api.ResourceName{ @@ -67,34 +66,11 @@ func V1ResourceByStorageClass(storageClass string, resourceName v1.ResourceName) return v1.ResourceName(string(storageClass + storageClassSuffix + string(resourceName))) } -// listPersistentVolumeClaimsByNamespaceFuncUsingClient returns a pvc listing function based on the provided client. -func listPersistentVolumeClaimsByNamespaceFuncUsingClient(kubeClient clientset.Interface) generic.ListFuncByNamespace { - // TODO: ideally, we could pass dynamic client pool down into this code, and have one way of doing this. - // unfortunately, dynamic client works with Unstructured objects, and when we calculate Usage, we require - // structured objects. - return func(namespace string, options metav1.ListOptions) ([]runtime.Object, error) { - itemList, err := kubeClient.Core().PersistentVolumeClaims(namespace).List(options) - if err != nil { - return nil, err - } - results := make([]runtime.Object, 0, len(itemList.Items)) - for i := range itemList.Items { - results = append(results, &itemList.Items[i]) - } - return results, nil - } -} - // NewPersistentVolumeClaimEvaluator returns an evaluator that can evaluate persistent volume claims -// if the specified shared informer factory is not nil, evaluator may use it to support listing functions. -func NewPersistentVolumeClaimEvaluator(kubeClient clientset.Interface, f informers.SharedInformerFactory) quota.Evaluator { - listFuncByNamespace := listPersistentVolumeClaimsByNamespaceFuncUsingClient(kubeClient) - if f != nil { - listFuncByNamespace = generic.ListResourceUsingInformerFunc(f, v1.SchemeGroupVersion.WithResource("persistentvolumeclaims")) - } - return &pvcEvaluator{ - listFuncByNamespace: listFuncByNamespace, - } +func NewPersistentVolumeClaimEvaluator(f quota.ListerForResourceFunc) quota.Evaluator { + listFuncByNamespace := generic.ListResourceUsingListerFunc(f, v1.SchemeGroupVersion.WithResource("persistentvolumeclaims")) + pvcEvaluator := &pvcEvaluator{listFuncByNamespace: listFuncByNamespace} + return pvcEvaluator } // pvcEvaluator knows how to evaluate quota usage for persistent volume claims @@ -105,45 +81,13 @@ type pvcEvaluator struct { // Constraints verifies that all required resources are present on the item. func (p *pvcEvaluator) Constraints(required []api.ResourceName, item runtime.Object) error { - pvc, ok := item.(*api.PersistentVolumeClaim) - if !ok { - return fmt.Errorf("unexpected input object %v", item) - } - - // these are the items that we will be handling based on the objects actual storage-class - pvcRequiredSet := append([]api.ResourceName{}, pvcResources...) - if storageClassRef := helper.GetPersistentVolumeClaimClass(pvc); len(storageClassRef) > 0 { - pvcRequiredSet = append(pvcRequiredSet, ResourceByStorageClass(storageClassRef, api.ResourcePersistentVolumeClaims)) - pvcRequiredSet = append(pvcRequiredSet, ResourceByStorageClass(storageClassRef, api.ResourceRequestsStorage)) - } - - // in effect, this will remove things from the required set that are not tied to this pvcs storage class - // for example, if a quota has bronze and gold storage class items defined, we should not error a bronze pvc for not being gold. - // but we should error a bronze pvc if it doesn't make a storage request size... - requiredResources := quota.Intersection(required, pvcRequiredSet) - requiredSet := quota.ToSet(requiredResources) - - // usage for this pvc will only include global pvc items + this storage class specific items - pvcUsage, err := p.Usage(item) - if err != nil { - return err - } - - // determine what required resources were not tracked by usage. - missingSet := sets.NewString() - pvcSet := quota.ToSet(quota.ResourceNames(pvcUsage)) - if diff := requiredSet.Difference(pvcSet); len(diff) > 0 { - missingSet.Insert(diff.List()...) - } - if len(missingSet) == 0 { - return nil - } - return fmt.Errorf("must specify %s", strings.Join(missingSet.List(), ",")) + // no-op for persistent volume claims + return nil } -// GroupKind that this evaluator tracks -func (p *pvcEvaluator) GroupKind() schema.GroupKind { - return api.Kind("PersistentVolumeClaim") +// GroupResource that this evaluator tracks +func (p *pvcEvaluator) GroupResource() schema.GroupResource { + return v1.SchemeGroupVersion.WithResource("persistentvolumeclaims").GroupResource() } // Handles returns true if the evaluator should handle the specified operation. @@ -183,6 +127,12 @@ func (p *pvcEvaluator) Matches(resourceQuota *api.ResourceQuota, item runtime.Ob func (p *pvcEvaluator) MatchingResources(items []api.ResourceName) []api.ResourceName { result := []api.ResourceName{} for _, item := range items { + // match object count quota fields + if quota.Contains([]api.ResourceName{pvcObjectCountName}, item) { + result = append(result, item) + continue + } + // match pvc resources if quota.Contains(pvcResources, item) { result = append(result, item) continue @@ -208,7 +158,8 @@ func (p *pvcEvaluator) Usage(item runtime.Object) (api.ResourceList, error) { } // charge for claim - result[api.ResourcePersistentVolumeClaims] = resource.MustParse("1") + result[api.ResourcePersistentVolumeClaims] = *(resource.NewQuantity(1, resource.DecimalSI)) + result[pvcObjectCountName] = *(resource.NewQuantity(1, resource.DecimalSI)) if utilfeature.DefaultFeatureGate.Enabled(features.Initializers) { if !initialization.IsInitialized(pvc.Initializers) { // Only charge pvc count for uninitialized pvc. @@ -218,7 +169,7 @@ func (p *pvcEvaluator) Usage(item runtime.Object) (api.ResourceList, error) { storageClassRef := helper.GetPersistentVolumeClaimClass(pvc) if len(storageClassRef) > 0 { storageClassClaim := api.ResourceName(storageClassRef + storageClassSuffix + string(api.ResourcePersistentVolumeClaims)) - result[storageClassClaim] = resource.MustParse("1") + result[storageClassClaim] = *(resource.NewQuantity(1, resource.DecimalSI)) } // charge for storage @@ -245,7 +196,7 @@ func toInternalPersistentVolumeClaimOrError(obj runtime.Object) (*api.Persistent pvc := &api.PersistentVolumeClaim{} switch t := obj.(type) { case *v1.PersistentVolumeClaim: - if err := k8s_api_v1.Convert_v1_PersistentVolumeClaim_To_api_PersistentVolumeClaim(t, pvc, nil); err != nil { + if err := k8s_api_v1.Convert_v1_PersistentVolumeClaim_To_core_PersistentVolumeClaim(t, pvc, nil); err != nil { return nil, err } case *api.PersistentVolumeClaim: diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/persistent_volume_claims_test.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/persistent_volume_claims_test.go index a7d50f4b3..e2b1c69d9 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/persistent_volume_claims_test.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/persistent_volume_claims_test.go @@ -21,9 +21,10 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/kubernetes/pkg/api" + "k8s.io/apimachinery/pkg/runtime/schema" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/quota" + "k8s.io/kubernetes/pkg/quota/generic" ) func testVolumeClaim(name string, namespace string, spec api.PersistentVolumeClaimSpec) *api.PersistentVolumeClaim { @@ -33,168 +34,6 @@ func testVolumeClaim(name string, namespace string, spec api.PersistentVolumeCla } } -func TestPersistentVolumeClaimsConstraintsFunc(t *testing.T) { - classGold := "gold" - classBronze := "bronze" - - validClaim := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - Selector: &metav1.LabelSelector{ - MatchExpressions: []metav1.LabelSelectorRequirement{ - { - Key: "key2", - Operator: "Exists", - }, - }, - }, - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, - }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10G"), - }, - }, - }) - validClaimGoldStorageClass := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - Selector: &metav1.LabelSelector{ - MatchExpressions: []metav1.LabelSelectorRequirement{ - { - Key: "key2", - Operator: "Exists", - }, - }, - }, - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, - }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10Gi"), - }, - }, - StorageClassName: &classGold, - }) - - validClaimBronzeStorageClass := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - Selector: &metav1.LabelSelector{ - MatchExpressions: []metav1.LabelSelectorRequirement{ - { - Key: "key2", - Operator: "Exists", - }, - }, - }, - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, - }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{ - api.ResourceName(api.ResourceStorage): resource.MustParse("10Gi"), - }, - }, - StorageClassName: &classBronze, - }) - - missingStorage := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - Selector: &metav1.LabelSelector{ - MatchExpressions: []metav1.LabelSelectorRequirement{ - { - Key: "key2", - Operator: "Exists", - }, - }, - }, - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, - }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{}, - }, - }) - - missingGoldStorage := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ - Selector: &metav1.LabelSelector{ - MatchExpressions: []metav1.LabelSelectorRequirement{ - { - Key: "key2", - Operator: "Exists", - }, - }, - }, - AccessModes: []api.PersistentVolumeAccessMode{ - api.ReadWriteOnce, - api.ReadOnlyMany, - }, - Resources: api.ResourceRequirements{ - Requests: api.ResourceList{}, - }, - StorageClassName: &classGold, - }) - - testCases := map[string]struct { - pvc *api.PersistentVolumeClaim - required []api.ResourceName - err string - }{ - "missing storage": { - pvc: missingStorage, - required: []api.ResourceName{api.ResourceRequestsStorage}, - err: `must specify requests.storage`, - }, - "missing gold storage": { - pvc: missingGoldStorage, - required: []api.ResourceName{ResourceByStorageClass(classGold, api.ResourceRequestsStorage)}, - err: `must specify gold.storageclass.storage.k8s.io/requests.storage`, - }, - "valid-claim-quota-storage": { - pvc: validClaim, - required: []api.ResourceName{api.ResourceRequestsStorage}, - }, - "valid-claim-quota-pvc": { - pvc: validClaim, - required: []api.ResourceName{api.ResourcePersistentVolumeClaims}, - }, - "valid-claim-quota-storage-and-pvc": { - pvc: validClaim, - required: []api.ResourceName{api.ResourceRequestsStorage, api.ResourcePersistentVolumeClaims}, - }, - "valid-claim-gold-quota-gold": { - pvc: validClaimGoldStorageClass, - required: []api.ResourceName{ - api.ResourceRequestsStorage, - api.ResourcePersistentVolumeClaims, - ResourceByStorageClass(classGold, api.ResourceRequestsStorage), - ResourceByStorageClass(classGold, api.ResourcePersistentVolumeClaims), - }, - }, - "valid-claim-bronze-with-quota-gold": { - pvc: validClaimBronzeStorageClass, - required: []api.ResourceName{ - api.ResourceRequestsStorage, - api.ResourcePersistentVolumeClaims, - ResourceByStorageClass(classGold, api.ResourceRequestsStorage), - ResourceByStorageClass(classGold, api.ResourcePersistentVolumeClaims), - }, - }, - } - - kubeClient := fake.NewSimpleClientset() - evaluator := NewPersistentVolumeClaimEvaluator(kubeClient, nil) - for testName, test := range testCases { - err := evaluator.Constraints(test.required, test.pvc) - switch { - case err != nil && len(test.err) == 0, - err == nil && len(test.err) != 0, - err != nil && test.err != err.Error(): - t.Errorf("%s unexpected error: %v", testName, err) - } - } -} - func TestPersistentVolumeClaimEvaluatorUsage(t *testing.T) { classGold := "gold" validClaim := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{ @@ -237,8 +76,7 @@ func TestPersistentVolumeClaimEvaluatorUsage(t *testing.T) { StorageClassName: &classGold, }) - kubeClient := fake.NewSimpleClientset() - evaluator := NewPersistentVolumeClaimEvaluator(kubeClient, nil) + evaluator := NewPersistentVolumeClaimEvaluator(nil) testCases := map[string]struct { pvc *api.PersistentVolumeClaim usage api.ResourceList @@ -246,17 +84,19 @@ func TestPersistentVolumeClaimEvaluatorUsage(t *testing.T) { "pvc-usage": { pvc: validClaim, usage: api.ResourceList{ - api.ResourceRequestsStorage: resource.MustParse("10Gi"), - api.ResourcePersistentVolumeClaims: resource.MustParse("1"), + api.ResourceRequestsStorage: resource.MustParse("10Gi"), + api.ResourcePersistentVolumeClaims: resource.MustParse("1"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "persistentvolumeclaims"}): resource.MustParse("1"), }, }, "pvc-usage-by-class": { pvc: validClaimByStorageClass, usage: api.ResourceList{ - api.ResourceRequestsStorage: resource.MustParse("10Gi"), - api.ResourcePersistentVolumeClaims: resource.MustParse("1"), - ResourceByStorageClass(classGold, api.ResourceRequestsStorage): resource.MustParse("10Gi"), - ResourceByStorageClass(classGold, api.ResourcePersistentVolumeClaims): resource.MustParse("1"), + api.ResourceRequestsStorage: resource.MustParse("10Gi"), + api.ResourcePersistentVolumeClaims: resource.MustParse("1"), + ResourceByStorageClass(classGold, api.ResourceRequestsStorage): resource.MustParse("10Gi"), + ResourceByStorageClass(classGold, api.ResourcePersistentVolumeClaims): resource.MustParse("1"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "persistentvolumeclaims"}): resource.MustParse("1"), }, }, } diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/pods.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/pods.go index 7354c3d8b..c55fb7f72 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/pods.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/pods.go @@ -23,31 +23,29 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/clock" - "k8s.io/apimachinery/pkg/util/initialization" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/features" - utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/client-go/informers" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper/qos" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper/qos" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" + "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/kubeapiserver/admission/util" "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/generic" ) +// the name used for object count quota +var podObjectCountName = generic.ObjectCountQuotaResourceNameFor(v1.SchemeGroupVersion.WithResource("pods").GroupResource()) + // podResources are the set of resources managed by quota associated with pods. var podResources = []api.ResourceName{ + podObjectCountName, api.ResourceCPU, api.ResourceMemory, api.ResourceEphemeralStorage, @@ -60,35 +58,24 @@ var podResources = []api.ResourceName{ api.ResourcePods, } -// listPodsByNamespaceFuncUsingClient returns a pod listing function based on the provided client. -func listPodsByNamespaceFuncUsingClient(kubeClient clientset.Interface) generic.ListFuncByNamespace { - // TODO: ideally, we could pass dynamic client pool down into this code, and have one way of doing this. - // unfortunately, dynamic client works with Unstructured objects, and when we calculate Usage, we require - // structured objects. - return func(namespace string, options metav1.ListOptions) ([]runtime.Object, error) { - itemList, err := kubeClient.Core().Pods(namespace).List(options) - if err != nil { - return nil, err - } - results := make([]runtime.Object, 0, len(itemList.Items)) - for i := range itemList.Items { - results = append(results, &itemList.Items[i]) - } - return results, nil - } -} +// NOTE: it was a mistake, but if a quota tracks cpu or memory related resources, +// the incoming pod is required to have those values set. we should not repeat +// this mistake for other future resources (gpus, ephemeral-storage,etc). +// do not add more resources to this list! +var validationSet = sets.NewString( + string(api.ResourceCPU), + string(api.ResourceMemory), + string(api.ResourceRequestsCPU), + string(api.ResourceRequestsMemory), + string(api.ResourceLimitsCPU), + string(api.ResourceLimitsMemory), +) // NewPodEvaluator returns an evaluator that can evaluate pods -// if the specified shared informer factory is not nil, evaluator may use it to support listing functions. -func NewPodEvaluator(kubeClient clientset.Interface, f informers.SharedInformerFactory, clock clock.Clock) quota.Evaluator { - listFuncByNamespace := listPodsByNamespaceFuncUsingClient(kubeClient) - if f != nil { - listFuncByNamespace = generic.ListResourceUsingInformerFunc(f, v1.SchemeGroupVersion.WithResource("pods")) - } - return &podEvaluator{ - listFuncByNamespace: listFuncByNamespace, - clock: clock, - } +func NewPodEvaluator(f quota.ListerForResourceFunc, clock clock.Clock) quota.Evaluator { + listFuncByNamespace := generic.ListResourceUsingListerFunc(f, v1.SchemeGroupVersion.WithResource("pods")) + podEvaluator := &podEvaluator{listFuncByNamespace: listFuncByNamespace, clock: clock} + return podEvaluator } // podEvaluator knows how to measure usage of pods. @@ -110,6 +97,7 @@ func (p *podEvaluator) Constraints(required []api.ResourceName, item runtime.Obj // Pod level resources are often set during admission control // As a consequence, we want to verify that resources are valid prior // to ever charging quota prematurely in case they are not. + // TODO remove this entire section when we have a validation step in admission. allErrs := field.ErrorList{} fldPath := field.NewPath("spec").Child("containers") for i, ctr := range pod.Spec.Containers { @@ -123,10 +111,11 @@ func (p *podEvaluator) Constraints(required []api.ResourceName, item runtime.Obj return allErrs.ToAggregate() } - // TODO: fix this when we have pod level resource requirements - // since we do not yet pod level requests/limits, we need to ensure each - // container makes an explict request or limit for a quota tracked resource - requiredSet := quota.ToSet(required) + // BACKWARD COMPATIBILITY REQUIREMENT: if we quota cpu or memory, then each container + // must make an explicit request for the resource. this was a mistake. it coupled + // validation with resource counting, but we did this before QoS was even defined. + // let's not make that mistake again with other resources now that QoS is defined. + requiredSet := quota.ToSet(required).Intersection(validationSet) missingSet := sets.NewString() for i := range pod.Spec.Containers { enforcePodContainerConstraints(&pod.Spec.Containers[i], requiredSet, missingSet) @@ -140,9 +129,9 @@ func (p *podEvaluator) Constraints(required []api.ResourceName, item runtime.Obj return fmt.Errorf("must specify %s", strings.Join(missingSet.List(), ",")) } -// GroupKind that this evaluator tracks -func (p *podEvaluator) GroupKind() schema.GroupKind { - return api.Kind("Pod") +// GroupResource that this evaluator tracks +func (p *podEvaluator) GroupResource() schema.GroupResource { + return v1.SchemeGroupVersion.WithResource("pods").GroupResource() } // Handles returns true if the evaluator should handle the specified attributes. @@ -190,7 +179,7 @@ var _ quota.Evaluator = &podEvaluator{} func enforcePodContainerConstraints(container *api.Container, requiredSet, missingSet sets.String) { requests := container.Resources.Requests limits := container.Resources.Limits - containerUsage := podUsageHelper(requests, limits) + containerUsage := podComputeUsageHelper(requests, limits) containerSet := quota.ToSet(quota.ResourceNames(containerUsage)) if !containerSet.Equal(requiredSet) { difference := requiredSet.Difference(containerSet) @@ -198,8 +187,8 @@ func enforcePodContainerConstraints(container *api.Container, requiredSet, missi } } -// podUsageHelper can summarize the pod quota usage based on requests and limits -func podUsageHelper(requests api.ResourceList, limits api.ResourceList) api.ResourceList { +// podComputeUsageHelper can summarize the pod compute quota usage based on requests and limits +func podComputeUsageHelper(requests api.ResourceList, limits api.ResourceList) api.ResourceList { result := api.ResourceList{} result[api.ResourcePods] = resource.MustParse("1") if request, found := requests[api.ResourceCPU]; found { @@ -230,7 +219,7 @@ func toInternalPodOrError(obj runtime.Object) (*api.Pod, error) { pod := &api.Pod{} switch t := obj.(type) { case *v1.Pod: - if err := k8s_api_v1.Convert_v1_Pod_To_api_Pod(t, pod, nil); err != nil { + if err := k8s_api_v1.Convert_v1_Pod_To_core_Pod(t, pod, nil); err != nil { return nil, err } case *api.Pod: @@ -269,18 +258,21 @@ func PodUsageFunc(obj runtime.Object, clock clock.Clock) (api.ResourceList, erro if err != nil { return api.ResourceList{}, err } - // by convention, we do not quota pods that have reached end-of life - if !QuotaPod(pod, clock) { - return api.ResourceList{}, nil + + // always quota the object count (even if the pod is end of life) + // object count quotas track all objects that are in storage. + // where "pods" tracks all pods that have not reached a terminal state, + // count/pods tracks all pods independent of state. + result := api.ResourceList{ + podObjectCountName: *(resource.NewQuantity(1, resource.DecimalSI)), } - // Only charge pod count for uninitialized pod. - if utilfeature.DefaultFeatureGate.Enabled(features.Initializers) { - if !initialization.IsInitialized(pod.Initializers) { - result := api.ResourceList{} - result[api.ResourcePods] = resource.MustParse("1") - return result, nil - } + + // by convention, we do not quota compute resources that have reached end-of life + // note: the "pods" resource is considered a compute resource since it is tied to life-cycle. + if !QuotaPod(pod, clock) { + return result, nil } + requests := api.ResourceList{} limits := api.ResourceList{} // TODO: ideally, we have pod level requests and limits in the future. @@ -296,7 +288,8 @@ func PodUsageFunc(obj runtime.Object, clock clock.Clock) (api.ResourceList, erro limits = quota.Max(limits, pod.Spec.InitContainers[i].Resources.Limits) } - return podUsageHelper(requests, limits), nil + result = quota.Add(result, podComputeUsageHelper(requests, limits)) + return result, nil } func isBestEffort(pod *api.Pod) bool { diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/pods_test.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/pods_test.go index bb3714f8a..f74e4603f 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/pods_test.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/pods_test.go @@ -22,10 +22,11 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/clock" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/quota" + "k8s.io/kubernetes/pkg/quota/generic" "k8s.io/kubernetes/pkg/util/node" ) @@ -90,8 +91,7 @@ func TestPodConstraintsFunc(t *testing.T) { err: `must specify memory`, }, } - kubeClient := fake.NewSimpleClientset() - evaluator := NewPodEvaluator(kubeClient, nil, clock.RealClock{}) + evaluator := NewPodEvaluator(nil, clock.RealClock{}) for testName, test := range testCases { err := evaluator.Constraints(test.required, test.pod) switch { @@ -104,9 +104,8 @@ func TestPodConstraintsFunc(t *testing.T) { } func TestPodEvaluatorUsage(t *testing.T) { - kubeClient := fake.NewSimpleClientset() fakeClock := clock.NewFakeClock(time.Now()) - evaluator := NewPodEvaluator(kubeClient, nil, fakeClock) + evaluator := NewPodEvaluator(nil, fakeClock) // fields use to simulate a pod undergoing termination // note: we set the deletion time in the past @@ -135,6 +134,7 @@ func TestPodEvaluatorUsage(t *testing.T) { api.ResourceLimitsCPU: resource.MustParse("2m"), api.ResourcePods: resource.MustParse("1"), api.ResourceCPU: resource.MustParse("1m"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), }, }, "init container MEM": { @@ -153,6 +153,7 @@ func TestPodEvaluatorUsage(t *testing.T) { api.ResourceLimitsMemory: resource.MustParse("2m"), api.ResourcePods: resource.MustParse("1"), api.ResourceMemory: resource.MustParse("1m"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), }, }, "init container local ephemeral storage": { @@ -171,6 +172,7 @@ func TestPodEvaluatorUsage(t *testing.T) { api.ResourceRequestsEphemeralStorage: resource.MustParse("32Mi"), api.ResourceLimitsEphemeralStorage: resource.MustParse("64Mi"), api.ResourcePods: resource.MustParse("1"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), }, }, "container CPU": { @@ -189,6 +191,7 @@ func TestPodEvaluatorUsage(t *testing.T) { api.ResourceLimitsCPU: resource.MustParse("2m"), api.ResourcePods: resource.MustParse("1"), api.ResourceCPU: resource.MustParse("1m"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), }, }, "container MEM": { @@ -207,6 +210,7 @@ func TestPodEvaluatorUsage(t *testing.T) { api.ResourceLimitsMemory: resource.MustParse("2m"), api.ResourcePods: resource.MustParse("1"), api.ResourceMemory: resource.MustParse("1m"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), }, }, "container local ephemeral storage": { @@ -225,6 +229,7 @@ func TestPodEvaluatorUsage(t *testing.T) { api.ResourceRequestsEphemeralStorage: resource.MustParse("32Mi"), api.ResourceLimitsEphemeralStorage: resource.MustParse("64Mi"), api.ResourcePods: resource.MustParse("1"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), }, }, "init container maximums override sum of containers": { @@ -292,6 +297,7 @@ func TestPodEvaluatorUsage(t *testing.T) { api.ResourcePods: resource.MustParse("1"), api.ResourceCPU: resource.MustParse("4"), api.ResourceMemory: resource.MustParse("100M"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), }, }, "pod deletion timestamp exceeded": { @@ -321,7 +327,9 @@ func TestPodEvaluatorUsage(t *testing.T) { }, }, }, - usage: api.ResourceList{}, + usage: api.ResourceList{ + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), + }, }, "pod deletion timestamp not exceeded": { pod: &api.Pod{ @@ -352,6 +360,7 @@ func TestPodEvaluatorUsage(t *testing.T) { api.ResourceLimitsCPU: resource.MustParse("2"), api.ResourcePods: resource.MustParse("1"), api.ResourceCPU: resource.MustParse("1"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), }, }, } diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/registry.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/registry.go index e6278c731..5a642b386 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/registry.go @@ -17,33 +17,34 @@ limitations under the License. package core import ( + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/clock" - "k8s.io/client-go/informers" - clientset "k8s.io/client-go/kubernetes" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/generic" ) -// NewRegistry returns a registry that knows how to deal with core kubernetes resources -// If an informer factory is provided, evaluators will use them. -func NewRegistry(kubeClient clientset.Interface, f informers.SharedInformerFactory) quota.Registry { - pod := NewPodEvaluator(kubeClient, f, clock.RealClock{}) - service := NewServiceEvaluator(kubeClient, f) - replicationController := NewReplicationControllerEvaluator(kubeClient, f) - resourceQuota := NewResourceQuotaEvaluator(kubeClient, f) - secret := NewSecretEvaluator(kubeClient, f) - configMap := NewConfigMapEvaluator(kubeClient, f) - persistentVolumeClaim := NewPersistentVolumeClaimEvaluator(kubeClient, f) - return &generic.GenericRegistry{ - InternalEvaluators: map[schema.GroupKind]quota.Evaluator{ - pod.GroupKind(): pod, - service.GroupKind(): service, - replicationController.GroupKind(): replicationController, - secret.GroupKind(): secret, - configMap.GroupKind(): configMap, - resourceQuota.GroupKind(): resourceQuota, - persistentVolumeClaim.GroupKind(): persistentVolumeClaim, - }, +// legacyObjectCountAliases are what we used to do simple object counting quota with mapped to alias +var legacyObjectCountAliases = map[schema.GroupVersionResource]api.ResourceName{ + v1.SchemeGroupVersion.WithResource("configmaps"): api.ResourceConfigMaps, + v1.SchemeGroupVersion.WithResource("resourcequotas"): api.ResourceQuotas, + v1.SchemeGroupVersion.WithResource("replicationcontrollers"): api.ResourceReplicationControllers, + v1.SchemeGroupVersion.WithResource("secrets"): api.ResourceSecrets, +} + +// NewEvaluators returns the list of static evaluators that manage more than counts +func NewEvaluators(f quota.ListerForResourceFunc) []quota.Evaluator { + // these evaluators have special logic + result := []quota.Evaluator{ + NewPodEvaluator(f, clock.RealClock{}), + NewServiceEvaluator(f), + NewPersistentVolumeClaimEvaluator(f), + } + // these evaluators require an alias for backwards compatibility + for gvr, alias := range legacyObjectCountAliases { + result = append(result, + generic.NewObjectCountEvaluator(false, gvr.GroupResource(), generic.ListResourceUsingListerFunc(f, gvr), alias)) } + return result } diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/replication_controllers.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/replication_controllers.go deleted file mode 100644 index 062614608..000000000 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/replication_controllers.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -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 core - -import ( - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/quota/generic" -) - -// listReplicationControllersByNamespaceFuncUsingClient returns a replicationController listing function based on the provided client. -func listReplicationControllersByNamespaceFuncUsingClient(kubeClient clientset.Interface) generic.ListFuncByNamespace { - // TODO: ideally, we could pass dynamic client pool down into this code, and have one way of doing this. - // unfortunately, dynamic client works with Unstructured objects, and when we calculate Usage, we require - // structured objects. - return func(namespace string, options metav1.ListOptions) ([]runtime.Object, error) { - itemList, err := kubeClient.Core().ReplicationControllers(namespace).List(options) - if err != nil { - return nil, err - } - results := make([]runtime.Object, 0, len(itemList.Items)) - for i := range itemList.Items { - results = append(results, &itemList.Items[i]) - } - return results, nil - } -} - -// NewReplicationControllerEvaluator returns an evaluator that can evaluate replicationControllers -// if the specified shared informer factory is not nil, evaluator may use it to support listing functions. -func NewReplicationControllerEvaluator(kubeClient clientset.Interface, f informers.SharedInformerFactory) quota.Evaluator { - listFuncByNamespace := listReplicationControllersByNamespaceFuncUsingClient(kubeClient) - if f != nil { - listFuncByNamespace = generic.ListResourceUsingInformerFunc(f, v1.SchemeGroupVersion.WithResource("replicationcontrollers")) - } - return &generic.ObjectCountEvaluator{ - AllowCreateOnUpdate: false, - InternalGroupKind: api.Kind("ReplicationController"), - ResourceName: api.ResourceReplicationControllers, - ListFuncByNamespace: listFuncByNamespace, - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/resource_quotas.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/resource_quotas.go deleted file mode 100644 index 50033e068..000000000 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/resource_quotas.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -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 core - -import ( - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/quota/generic" -) - -// listResourceQuotasByNamespaceFuncUsingClient returns a resourceQuota listing function based on the provided client. -func listResourceQuotasByNamespaceFuncUsingClient(kubeClient clientset.Interface) generic.ListFuncByNamespace { - // TODO: ideally, we could pass dynamic client pool down into this code, and have one way of doing this. - // unfortunately, dynamic client works with Unstructured objects, and when we calculate Usage, we require - // structured objects. - return func(namespace string, options metav1.ListOptions) ([]runtime.Object, error) { - itemList, err := kubeClient.Core().ResourceQuotas(namespace).List(options) - if err != nil { - return nil, err - } - results := make([]runtime.Object, 0, len(itemList.Items)) - for i := range itemList.Items { - results = append(results, &itemList.Items[i]) - } - return results, nil - } -} - -// NewResourceQuotaEvaluator returns an evaluator that can evaluate resourceQuotas -// if the specified shared informer factory is not nil, evaluator may use it to support listing functions. -func NewResourceQuotaEvaluator(kubeClient clientset.Interface, f informers.SharedInformerFactory) quota.Evaluator { - listFuncByNamespace := listResourceQuotasByNamespaceFuncUsingClient(kubeClient) - if f != nil { - listFuncByNamespace = generic.ListResourceUsingInformerFunc(f, v1.SchemeGroupVersion.WithResource("resourcequotas")) - } - return &generic.ObjectCountEvaluator{ - AllowCreateOnUpdate: false, - InternalGroupKind: api.Kind("ResourceQuota"), - ResourceName: api.ResourceQuotas, - ListFuncByNamespace: listFuncByNamespace, - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/secrets.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/secrets.go deleted file mode 100644 index bfd678c95..000000000 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/secrets.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -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 core - -import ( - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/informers" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/quota/generic" -) - -// listSecretsByNamespaceFuncUsingClient returns a secret listing function based on the provided client. -func listSecretsByNamespaceFuncUsingClient(kubeClient clientset.Interface) generic.ListFuncByNamespace { - // TODO: ideally, we could pass dynamic client pool down into this code, and have one way of doing this. - // unfortunately, dynamic client works with Unstructured objects, and when we calculate Usage, we require - // structured objects. - return func(namespace string, options metav1.ListOptions) ([]runtime.Object, error) { - itemList, err := kubeClient.Core().Secrets(namespace).List(options) - if err != nil { - return nil, err - } - results := make([]runtime.Object, 0, len(itemList.Items)) - for i := range itemList.Items { - results = append(results, &itemList.Items[i]) - } - return results, nil - } -} - -// NewSecretEvaluator returns an evaluator that can evaluate secrets -// if the specified shared informer factory is not nil, evaluator may use it to support listing functions. -func NewSecretEvaluator(kubeClient clientset.Interface, f informers.SharedInformerFactory) quota.Evaluator { - listFuncByNamespace := listSecretsByNamespaceFuncUsingClient(kubeClient) - if f != nil { - listFuncByNamespace = generic.ListResourceUsingInformerFunc(f, v1.SchemeGroupVersion.WithResource("secrets")) - } - return &generic.ObjectCountEvaluator{ - AllowCreateOnUpdate: false, - InternalGroupKind: api.Kind("Secret"), - ResourceName: api.ResourceSecrets, - ListFuncByNamespace: listFuncByNamespace, - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/services.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/services.go index 91a5ef0a0..f4dec5973 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/services.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/services.go @@ -18,58 +18,34 @@ package core import ( "fmt" - "strings" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/admission" - "k8s.io/client-go/informers" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/generic" ) +// the name used for object count quota +var serviceObjectCountName = generic.ObjectCountQuotaResourceNameFor(v1.SchemeGroupVersion.WithResource("services").GroupResource()) + // serviceResources are the set of resources managed by quota associated with services. var serviceResources = []api.ResourceName{ + serviceObjectCountName, api.ResourceServices, api.ResourceServicesNodePorts, api.ResourceServicesLoadBalancers, } -// listServicesByNamespaceFuncUsingClient returns a service listing function based on the provided client. -func listServicesByNamespaceFuncUsingClient(kubeClient clientset.Interface) generic.ListFuncByNamespace { - // TODO: ideally, we could pass dynamic client pool down into this code, and have one way of doing this. - // unfortunately, dynamic client works with Unstructured objects, and when we calculate Usage, we require - // structured objects. - return func(namespace string, options metav1.ListOptions) ([]runtime.Object, error) { - itemList, err := kubeClient.Core().Services(namespace).List(options) - if err != nil { - return nil, err - } - results := make([]runtime.Object, 0, len(itemList.Items)) - for i := range itemList.Items { - results = append(results, &itemList.Items[i]) - } - return results, nil - } -} - -// NewServiceEvaluator returns an evaluator that can evaluate services -// if the specified shared informer factory is not nil, evaluator may use it to support listing functions. -func NewServiceEvaluator(kubeClient clientset.Interface, f informers.SharedInformerFactory) quota.Evaluator { - listFuncByNamespace := listServicesByNamespaceFuncUsingClient(kubeClient) - if f != nil { - listFuncByNamespace = generic.ListResourceUsingInformerFunc(f, v1.SchemeGroupVersion.WithResource("services")) - } - return &serviceEvaluator{ - listFuncByNamespace: listFuncByNamespace, - } +// NewServiceEvaluator returns an evaluator that can evaluate services. +func NewServiceEvaluator(f quota.ListerForResourceFunc) quota.Evaluator { + listFuncByNamespace := generic.ListResourceUsingListerFunc(f, v1.SchemeGroupVersion.WithResource("services")) + serviceEvaluator := &serviceEvaluator{listFuncByNamespace: listFuncByNamespace} + return serviceEvaluator } // serviceEvaluator knows how to measure usage for services. @@ -80,31 +56,13 @@ type serviceEvaluator struct { // Constraints verifies that all required resources are present on the item func (p *serviceEvaluator) Constraints(required []api.ResourceName, item runtime.Object) error { - service, ok := item.(*api.Service) - if !ok { - return fmt.Errorf("unexpected input object %v", item) - } - - requiredSet := quota.ToSet(required) - missingSet := sets.NewString() - serviceUsage, err := p.Usage(service) - if err != nil { - return err - } - serviceSet := quota.ToSet(quota.ResourceNames(serviceUsage)) - if diff := requiredSet.Difference(serviceSet); len(diff) > 0 { - missingSet.Insert(diff.List()...) - } - - if len(missingSet) == 0 { - return nil - } - return fmt.Errorf("must specify %s", strings.Join(missingSet.List(), ",")) + // this is a no-op for services + return nil } -// GroupKind that this evaluator tracks -func (p *serviceEvaluator) GroupKind() schema.GroupKind { - return api.Kind("Service") +// GroupResource that this evaluator tracks +func (p *serviceEvaluator) GroupResource() schema.GroupResource { + return v1.SchemeGroupVersion.WithResource("services").GroupResource() } // Handles returns true of the evaluator should handle the specified operation. @@ -129,7 +87,7 @@ func toInternalServiceOrError(obj runtime.Object) (*api.Service, error) { svc := &api.Service{} switch t := obj.(type) { case *v1.Service: - if err := k8s_api_v1.Convert_v1_Service_To_api_Service(t, svc, nil); err != nil { + if err := k8s_api_v1.Convert_v1_Service_To_core_Service(t, svc, nil); err != nil { return nil, err } case *api.Service: @@ -149,6 +107,7 @@ func (p *serviceEvaluator) Usage(item runtime.Object) (api.ResourceList, error) } ports := len(svc.Spec.Ports) // default service usage + result[serviceObjectCountName] = *(resource.NewQuantity(1, resource.DecimalSI)) result[api.ResourceServices] = *(resource.NewQuantity(1, resource.DecimalSI)) result[api.ResourceServicesLoadBalancers] = resource.Quantity{Format: resource.DecimalSI} result[api.ResourceServicesNodePorts] = resource.Quantity{Format: resource.DecimalSI} diff --git a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/services_test.go b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/services_test.go index 3f4229082..601397ce1 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/services_test.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/evaluator/core/services_test.go @@ -20,14 +20,14 @@ import ( "testing" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/kubernetes/pkg/api" + "k8s.io/apimachinery/pkg/runtime/schema" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/quota" + "k8s.io/kubernetes/pkg/quota/generic" ) func TestServiceEvaluatorMatchesResources(t *testing.T) { - kubeClient := fake.NewSimpleClientset() - evaluator := NewServiceEvaluator(kubeClient, nil) + evaluator := NewServiceEvaluator(nil) // we give a lot of resources input := []api.ResourceName{ api.ResourceConfigMaps, @@ -49,8 +49,7 @@ func TestServiceEvaluatorMatchesResources(t *testing.T) { } func TestServiceEvaluatorUsage(t *testing.T) { - kubeClient := fake.NewSimpleClientset() - evaluator := NewServiceEvaluator(kubeClient, nil) + evaluator := NewServiceEvaluator(nil) testCases := map[string]struct { service *api.Service usage api.ResourceList @@ -65,6 +64,7 @@ func TestServiceEvaluatorUsage(t *testing.T) { api.ResourceServicesNodePorts: resource.MustParse("0"), api.ResourceServicesLoadBalancers: resource.MustParse("1"), api.ResourceServices: resource.MustParse("1"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "services"}): resource.MustParse("1"), }, }, "loadbalancer_ports": { @@ -82,6 +82,7 @@ func TestServiceEvaluatorUsage(t *testing.T) { api.ResourceServicesNodePorts: resource.MustParse("1"), api.ResourceServicesLoadBalancers: resource.MustParse("1"), api.ResourceServices: resource.MustParse("1"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "services"}): resource.MustParse("1"), }, }, "clusterip": { @@ -91,9 +92,10 @@ func TestServiceEvaluatorUsage(t *testing.T) { }, }, usage: api.ResourceList{ - api.ResourceServices: resource.MustParse("1"), - api.ResourceServicesNodePorts: resource.MustParse("0"), - api.ResourceServicesLoadBalancers: resource.MustParse("0"), + api.ResourceServices: resource.MustParse("1"), + api.ResourceServicesNodePorts: resource.MustParse("0"), + api.ResourceServicesLoadBalancers: resource.MustParse("0"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "services"}): resource.MustParse("1"), }, }, "nodeports": { @@ -108,9 +110,10 @@ func TestServiceEvaluatorUsage(t *testing.T) { }, }, usage: api.ResourceList{ - api.ResourceServices: resource.MustParse("1"), - api.ResourceServicesNodePorts: resource.MustParse("1"), - api.ResourceServicesLoadBalancers: resource.MustParse("0"), + api.ResourceServices: resource.MustParse("1"), + api.ResourceServicesNodePorts: resource.MustParse("1"), + api.ResourceServicesLoadBalancers: resource.MustParse("0"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "services"}): resource.MustParse("1"), }, }, "multi-nodeports": { @@ -128,9 +131,10 @@ func TestServiceEvaluatorUsage(t *testing.T) { }, }, usage: api.ResourceList{ - api.ResourceServices: resource.MustParse("1"), - api.ResourceServicesNodePorts: resource.MustParse("2"), - api.ResourceServicesLoadBalancers: resource.MustParse("0"), + api.ResourceServices: resource.MustParse("1"), + api.ResourceServicesNodePorts: resource.MustParse("2"), + api.ResourceServicesLoadBalancers: resource.MustParse("0"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "services"}): resource.MustParse("1"), }, }, } @@ -198,8 +202,7 @@ func TestServiceConstraintsFunc(t *testing.T) { }, } - kubeClient := fake.NewSimpleClientset() - evaluator := NewServiceEvaluator(kubeClient, nil) + evaluator := NewServiceEvaluator(nil) for testName, test := range testCases { err := evaluator.Constraints(test.required, test.service) switch { diff --git a/vendor/k8s.io/kubernetes/pkg/quota/generic/BUILD b/vendor/k8s.io/kubernetes/pkg/quota/generic/BUILD index 1eeaf7161..db871e85f 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/generic/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/quota/generic/BUILD @@ -8,20 +8,21 @@ load( go_library( name = "go_default_library", srcs = [ + "configuration.go", "evaluator.go", "registry.go", ], importpath = "k8s.io/kubernetes/pkg/quota/generic", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/quota:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource: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/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/quota/generic/configuration.go b/vendor/k8s.io/kubernetes/pkg/quota/generic/configuration.go new file mode 100644 index 000000000..59c009e13 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/quota/generic/configuration.go @@ -0,0 +1,44 @@ +/* +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 generic + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/kubernetes/pkg/quota" +) + +// implements a basic configuration +type simpleConfiguration struct { + evaluators []quota.Evaluator + ignoredResources map[schema.GroupResource]struct{} +} + +// NewConfiguration creates a quota configuration +func NewConfiguration(evaluators []quota.Evaluator, ignoredResources map[schema.GroupResource]struct{}) quota.Configuration { + return &simpleConfiguration{ + evaluators: evaluators, + ignoredResources: ignoredResources, + } +} + +func (c *simpleConfiguration) IgnoredResources() map[schema.GroupResource]struct{} { + return c.ignoredResources +} + +func (c *simpleConfiguration) Evaluators() []quota.Evaluator { + return c.evaluators +} diff --git a/vendor/k8s.io/kubernetes/pkg/quota/generic/evaluator.go b/vendor/k8s.io/kubernetes/pkg/quota/generic/evaluator.go index 1b574bb6b..5bcb1cb20 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/generic/evaluator.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/generic/evaluator.go @@ -20,33 +20,51 @@ import ( "fmt" "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/admission" "k8s.io/client-go/informers" - "k8s.io/kubernetes/pkg/api" + "k8s.io/client-go/tools/cache" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/quota" ) -// ListResourceUsingInformerFunc returns a listing function based on the shared informer factory for the specified resource. -func ListResourceUsingInformerFunc(f informers.SharedInformerFactory, resource schema.GroupVersionResource) ListFuncByNamespace { - return func(namespace string, options metav1.ListOptions) ([]runtime.Object, error) { - labelSelector, err := labels.Parse(options.LabelSelector) +// InformerForResourceFunc knows how to provision an informer +type InformerForResourceFunc func(schema.GroupVersionResource) (informers.GenericInformer, error) + +// ListerFuncForResourceFunc knows how to provision a lister from an informer func +func ListerFuncForResourceFunc(f InformerForResourceFunc) quota.ListerForResourceFunc { + return func(gvr schema.GroupVersionResource) (cache.GenericLister, error) { + informer, err := f(gvr) if err != nil { return nil, err } - informer, err := f.ForResource(resource) + return informer.Lister(), nil + } +} + +// ListResourceUsingListerFunc returns a listing function based on the shared informer factory for the specified resource. +func ListResourceUsingListerFunc(l quota.ListerForResourceFunc, resource schema.GroupVersionResource) ListFuncByNamespace { + return func(namespace string) ([]runtime.Object, error) { + lister, err := l(resource) if err != nil { return nil, err } - return informer.Lister().ByNamespace(namespace).List(labelSelector) + return lister.ByNamespace(namespace).List(labels.Everything()) } } +// ObjectCountQuotaResourceNameFor returns the object count quota name for specified groupResource +func ObjectCountQuotaResourceNameFor(groupResource schema.GroupResource) api.ResourceName { + if len(groupResource.Group) == 0 { + return api.ResourceName("count/" + groupResource.Resource) + } + return api.ResourceName("count/" + groupResource.Resource + "." + groupResource.Group) +} + // ListFuncByNamespace knows how to list resources in a namespace -type ListFuncByNamespace func(namespace string, options metav1.ListOptions) ([]runtime.Object, error) +type ListFuncByNamespace func(namespace string) ([]runtime.Object, error) // MatchesScopeFunc knows how to evaluate if an object matches a scope type MatchesScopeFunc func(scope api.ResourceQuotaScope, object runtime.Object) (bool, error) @@ -91,9 +109,7 @@ func CalculateUsageStats(options quota.UsageStatsOptions, for _, resourceName := range options.Resources { result.Used[resourceName] = resource.Quantity{Format: resource.DecimalSI} } - items, err := listFunc(options.Namespace, metav1.ListOptions{ - LabelSelector: labels.Everything().String(), - }) + items, err := listFunc(options.Namespace) if err != nil { return result, fmt.Errorf("failed to list content: %v", err) } @@ -121,63 +137,86 @@ func CalculateUsageStats(options quota.UsageStatsOptions, return result, nil } -// ObjectCountEvaluator provides an implementation for quota.Evaluator +// objectCountEvaluator provides an implementation for quota.Evaluator // that associates usage of the specified resource based on the number of items // returned by the specified listing function. -type ObjectCountEvaluator struct { - // AllowCreateOnUpdate if true will ensure the evaluator tracks create +type objectCountEvaluator struct { + // allowCreateOnUpdate if true will ensure the evaluator tracks create // and update operations. - AllowCreateOnUpdate bool - // GroupKind that this evaluator tracks. - InternalGroupKind schema.GroupKind + allowCreateOnUpdate bool + // GroupResource that this evaluator tracks. + // It is used to construct a generic object count quota name + groupResource schema.GroupResource // A function that knows how to list resources by namespace. // TODO move to dynamic client in future - ListFuncByNamespace ListFuncByNamespace - // Name associated with this resource in the quota. - ResourceName api.ResourceName + listFuncByNamespace ListFuncByNamespace + // Names associated with this resource in the quota for generic counting. + resourceNames []api.ResourceName } // Constraints returns an error if the configured resource name is not in the required set. -func (o *ObjectCountEvaluator) Constraints(required []api.ResourceName, item runtime.Object) error { - if !quota.Contains(required, o.ResourceName) { - return fmt.Errorf("missing %s", o.ResourceName) - } +func (o *objectCountEvaluator) Constraints(required []api.ResourceName, item runtime.Object) error { + // no-op for object counting return nil } -// GroupKind that this evaluator tracks -func (o *ObjectCountEvaluator) GroupKind() schema.GroupKind { - return o.InternalGroupKind -} - // Handles returns true if the object count evaluator needs to track this attributes. -func (o *ObjectCountEvaluator) Handles(a admission.Attributes) bool { +func (o *objectCountEvaluator) Handles(a admission.Attributes) bool { operation := a.GetOperation() - return operation == admission.Create || (o.AllowCreateOnUpdate && operation == admission.Update) + return operation == admission.Create || (o.allowCreateOnUpdate && operation == admission.Update) } // Matches returns true if the evaluator matches the specified quota with the provided input item -func (o *ObjectCountEvaluator) Matches(resourceQuota *api.ResourceQuota, item runtime.Object) (bool, error) { +func (o *objectCountEvaluator) Matches(resourceQuota *api.ResourceQuota, item runtime.Object) (bool, error) { return Matches(resourceQuota, item, o.MatchingResources, MatchesNoScopeFunc) } // MatchingResources takes the input specified list of resources and returns the set of resources it matches. -func (o *ObjectCountEvaluator) MatchingResources(input []api.ResourceName) []api.ResourceName { - return quota.Intersection(input, []api.ResourceName{o.ResourceName}) +func (o *objectCountEvaluator) MatchingResources(input []api.ResourceName) []api.ResourceName { + return quota.Intersection(input, o.resourceNames) } // Usage returns the resource usage for the specified object -func (o *ObjectCountEvaluator) Usage(object runtime.Object) (api.ResourceList, error) { +func (o *objectCountEvaluator) Usage(object runtime.Object) (api.ResourceList, error) { quantity := resource.NewQuantity(1, resource.DecimalSI) - return api.ResourceList{ - o.ResourceName: *quantity, - }, nil + resourceList := api.ResourceList{} + for _, resourceName := range o.resourceNames { + resourceList[resourceName] = *quantity + } + return resourceList, nil +} + +// GroupResource tracked by this evaluator +func (o *objectCountEvaluator) GroupResource() schema.GroupResource { + return o.groupResource } // UsageStats calculates aggregate usage for the object. -func (o *ObjectCountEvaluator) UsageStats(options quota.UsageStatsOptions) (quota.UsageStats, error) { - return CalculateUsageStats(options, o.ListFuncByNamespace, MatchesNoScopeFunc, o.Usage) +func (o *objectCountEvaluator) UsageStats(options quota.UsageStatsOptions) (quota.UsageStats, error) { + return CalculateUsageStats(options, o.listFuncByNamespace, MatchesNoScopeFunc, o.Usage) } // Verify implementation of interface at compile time. -var _ quota.Evaluator = &ObjectCountEvaluator{} +var _ quota.Evaluator = &objectCountEvaluator{} + +// NewObjectCountEvaluator returns an evaluator that can perform generic +// object quota counting. It allows an optional alias for backwards compatibilty +// purposes for the legacy object counting names in quota. Unless its supporting +// backward compatibility, alias should not be used. +func NewObjectCountEvaluator( + allowCreateOnUpdate bool, + groupResource schema.GroupResource, listFuncByNamespace ListFuncByNamespace, + alias api.ResourceName) quota.Evaluator { + + resourceNames := []api.ResourceName{ObjectCountQuotaResourceNameFor(groupResource)} + if len(alias) > 0 { + resourceNames = append(resourceNames, alias) + } + + return &objectCountEvaluator{ + allowCreateOnUpdate: allowCreateOnUpdate, + groupResource: groupResource, + listFuncByNamespace: listFuncByNamespace, + resourceNames: resourceNames, + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/quota/generic/registry.go b/vendor/k8s.io/kubernetes/pkg/quota/generic/registry.go index 5b1241dfe..fdc38e02b 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/generic/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/generic/registry.go @@ -17,20 +17,65 @@ limitations under the License. package generic import ( + "sync" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/quota" ) -// Ensure it implements the required interface -var _ quota.Registry = &GenericRegistry{} +// implements a basic registry +type simpleRegistry struct { + lock sync.RWMutex + // evaluators tracked by the registry + evaluators map[schema.GroupResource]quota.Evaluator +} + +// NewRegistry creates a simple registry with initial list of evaluators +func NewRegistry(evaluators []quota.Evaluator) quota.Registry { + return &simpleRegistry{ + evaluators: evaluatorsByGroupResource(evaluators), + } +} + +func (r *simpleRegistry) Add(e quota.Evaluator) { + r.lock.Lock() + defer r.lock.Unlock() + r.evaluators[e.GroupResource()] = e +} + +func (r *simpleRegistry) Remove(e quota.Evaluator) { + r.lock.Lock() + defer r.lock.Unlock() + delete(r.evaluators, e.GroupResource()) +} + +func (r *simpleRegistry) Get(gr schema.GroupResource) quota.Evaluator { + r.lock.RLock() + defer r.lock.RUnlock() + return r.evaluators[gr] +} + +func (r *simpleRegistry) List() []quota.Evaluator { + r.lock.RLock() + defer r.lock.RUnlock() + + return evaluatorsList(r.evaluators) +} -// GenericRegistry implements Registry -type GenericRegistry struct { - // internal evaluators by group kind - InternalEvaluators map[schema.GroupKind]quota.Evaluator +// evaluatorsByGroupResource converts a list of evaluators to a map by group resource. +func evaluatorsByGroupResource(items []quota.Evaluator) map[schema.GroupResource]quota.Evaluator { + result := map[schema.GroupResource]quota.Evaluator{} + for _, item := range items { + result[item.GroupResource()] = item + } + return result } -// Evaluators returns the map of evaluators by groupKind -func (r *GenericRegistry) Evaluators() map[schema.GroupKind]quota.Evaluator { - return r.InternalEvaluators +// evaluatorsList converts a map of evaluators to list +func evaluatorsList(input map[schema.GroupResource]quota.Evaluator) []quota.Evaluator { + var result []quota.Evaluator + for _, item := range input { + result = append(result, item) + } + return result } diff --git a/vendor/k8s.io/kubernetes/pkg/quota/install/BUILD b/vendor/k8s.io/kubernetes/pkg/quota/install/BUILD index c315583b4..027c5835c 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/install/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/quota/install/BUILD @@ -12,8 +12,8 @@ go_library( deps = [ "//pkg/quota:go_default_library", "//pkg/quota/evaluator/core:go_default_library", - "//vendor/k8s.io/client-go/informers:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//pkg/quota/generic:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/quota/install/registry.go b/vendor/k8s.io/kubernetes/pkg/quota/install/registry.go index a10dd9645..367a6a401 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/install/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/install/registry.go @@ -17,15 +17,42 @@ limitations under the License. package install import ( - "k8s.io/client-go/informers" - clientset "k8s.io/client-go/kubernetes" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/quota" "k8s.io/kubernetes/pkg/quota/evaluator/core" + "k8s.io/kubernetes/pkg/quota/generic" ) -// NewRegistry returns a registry of quota evaluators. -// If a shared informer factory is provided, it is used by evaluators rather than performing direct queries. -func NewRegistry(kubeClient clientset.Interface, f informers.SharedInformerFactory) quota.Registry { - // TODO: when quota supports resources in other api groups, we will need to merge - return core.NewRegistry(kubeClient, f) +// NewQuotaConfigurationForAdmission returns a quota configuration for admission control. +func NewQuotaConfigurationForAdmission() quota.Configuration { + evaluators := core.NewEvaluators(nil) + return generic.NewConfiguration(evaluators, DefaultIgnoredResources()) +} + +// NewQuotaConfigurationForControllers returns a quota configuration for controllers. +func NewQuotaConfigurationForControllers(f quota.ListerForResourceFunc) quota.Configuration { + evaluators := core.NewEvaluators(f) + return generic.NewConfiguration(evaluators, DefaultIgnoredResources()) +} + +// ignoredResources are ignored by quota by default +var ignoredResources = map[schema.GroupResource]struct{}{ + {Group: "extensions", Resource: "replicationcontrollers"}: {}, + {Group: "extensions", Resource: "networkpolicies"}: {}, + {Group: "", Resource: "bindings"}: {}, + {Group: "", Resource: "componentstatuses"}: {}, + {Group: "", Resource: "events"}: {}, + {Group: "authentication.k8s.io", Resource: "tokenreviews"}: {}, + {Group: "authorization.k8s.io", Resource: "subjectaccessreviews"}: {}, + {Group: "authorization.k8s.io", Resource: "selfsubjectaccessreviews"}: {}, + {Group: "authorization.k8s.io", Resource: "localsubjectaccessreviews"}: {}, + {Group: "authorization.k8s.io", Resource: "selfsubjectrulesreviews"}: {}, + {Group: "apiregistration.k8s.io", Resource: "apiservices"}: {}, + {Group: "apiextensions.k8s.io", Resource: "customresourcedefinitions"}: {}, +} + +// DefaultIgnoredResources returns the default set of resources that quota system +// should ignore. This is exposed so downstream integrators can have access to them. +func DefaultIgnoredResources() map[schema.GroupResource]struct{} { + return ignoredResources } diff --git a/vendor/k8s.io/kubernetes/pkg/quota/interfaces.go b/vendor/k8s.io/kubernetes/pkg/quota/interfaces.go index 56eacfe2d..8d7295ef0 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/interfaces.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/interfaces.go @@ -20,7 +20,8 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + "k8s.io/client-go/tools/cache" + api "k8s.io/kubernetes/pkg/apis/core" ) // UsageStatsOptions is an options structs that describes how stats should be calculated @@ -39,12 +40,12 @@ type UsageStats struct { Used api.ResourceList } -// Evaluator knows how to evaluate quota usage for a particular group kind +// Evaluator knows how to evaluate quota usage for a particular group resource type Evaluator interface { // Constraints ensures that each required resource is present on item Constraints(required []api.ResourceName, item runtime.Object) error - // GroupKind returns the groupKind that this object knows how to evaluate - GroupKind() schema.GroupKind + // GroupResource returns the groupResource that this object knows how to evaluate + GroupResource() schema.GroupResource // Handles determines if quota could be impacted by the specified attribute. // If true, admission control must perform quota processing for the operation, otherwise it is safe to ignore quota. Handles(operation admission.Attributes) bool @@ -58,25 +59,25 @@ type Evaluator interface { UsageStats(options UsageStatsOptions) (UsageStats, error) } -// Registry holds the list of evaluators associated to a particular group kind -type Registry interface { - // Evaluators returns the set Evaluator objects registered to a groupKind - Evaluators() map[schema.GroupKind]Evaluator +// Configuration defines how the quota system is configured. +type Configuration interface { + // IgnoredResources are ignored by quota. + IgnoredResources() map[schema.GroupResource]struct{} + // Evaluators for quota evaluation. + Evaluators() []Evaluator } -// UnionRegistry combines multiple registries. Order matters because first registry to claim a GroupKind -// is the "winner" -type UnionRegistry []Registry - -// Evaluators returns a mapping of evaluators by group kind. -func (r UnionRegistry) Evaluators() map[schema.GroupKind]Evaluator { - ret := map[schema.GroupKind]Evaluator{} - - for i := len(r) - 1; i >= 0; i-- { - for k, v := range r[i].Evaluators() { - ret[k] = v - } - } - - return ret +// Registry maintains a list of evaluators +type Registry interface { + // Add to registry + Add(e Evaluator) + // Remove from registry + Remove(e Evaluator) + // Get by group resource + Get(gr schema.GroupResource) Evaluator + // List from registry + List() []Evaluator } + +// ListerForResourceFunc knows how to get a lister for a specific resource +type ListerForResourceFunc func(schema.GroupVersionResource) (cache.GenericLister, error) diff --git a/vendor/k8s.io/kubernetes/pkg/quota/resources.go b/vendor/k8s.io/kubernetes/pkg/quota/resources.go index b9bd39bc8..4d0ccd5fa 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/resources.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/resources.go @@ -20,7 +20,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Equals returns true if the two lists are equivalent @@ -247,7 +247,7 @@ func CalculateUsage(namespaceName string, scopes []api.ResourceQuotaScope, hardL // look to measure updated usage stats for hardResources := ResourceNames(hardLimits) potentialResources := []api.ResourceName{} - evaluators := registry.Evaluators() + evaluators := registry.List() for _, evaluator := range evaluators { potentialResources = append(potentialResources, evaluator.MatchingResources(hardResources)...) } diff --git a/vendor/k8s.io/kubernetes/pkg/quota/resources_test.go b/vendor/k8s.io/kubernetes/pkg/quota/resources_test.go index 5e4c11a9c..d76abbad4 100644 --- a/vendor/k8s.io/kubernetes/pkg/quota/resources_test.go +++ b/vendor/k8s.io/kubernetes/pkg/quota/resources_test.go @@ -20,7 +20,7 @@ import ( "testing" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestEquals(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/BUILD index 317340e01..6f8ffe8ab 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/BUILD @@ -22,9 +22,10 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//pkg/registry/admissionregistration/externaladmissionhookconfiguration:all-srcs", "//pkg/registry/admissionregistration/initializerconfiguration:all-srcs", + "//pkg/registry/admissionregistration/mutatingwebhookconfiguration:all-srcs", "//pkg/registry/admissionregistration/rest:all-srcs", + "//pkg/registry/admissionregistration/validatingwebhookconfiguration:all-srcs", "//pkg/registry/apps/controllerrevision:all-srcs", "//pkg/registry/apps/rest:all-srcs", "//pkg/registry/apps/statefulset:all-srcs", @@ -81,6 +82,7 @@ filegroup( "//pkg/registry/settings/rest:all-srcs", "//pkg/registry/storage/rest:all-srcs", "//pkg/registry/storage/storageclass:all-srcs", + "//pkg/registry/storage/volumeattachment:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/strategy.go deleted file mode 100644 index d6d263795..000000000 --- a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/strategy.go +++ /dev/null @@ -1,90 +0,0 @@ -/* -Copyright 2014 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 externaladmissionhookconfiguration - -import ( - "reflect" - - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/validation/field" - genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/admissionregistration" - "k8s.io/kubernetes/pkg/apis/admissionregistration/validation" -) - -// externaladmissionhookConfigurationStrategy implements verification logic for ExternalAdmissionHookConfiguration. -type externaladmissionhookConfigurationStrategy struct { - runtime.ObjectTyper - names.NameGenerator -} - -// Strategy is the default logic that applies when creating and updating ExternalAdmissionHookConfiguration objects. -var Strategy = externaladmissionhookConfigurationStrategy{api.Scheme, names.SimpleNameGenerator} - -// NamespaceScoped returns true because all ExternalAdmissionHookConfiguration' need to be within a namespace. -func (externaladmissionhookConfigurationStrategy) NamespaceScoped() bool { - return false -} - -// PrepareForCreate clears the status of an ExternalAdmissionHookConfiguration before creation. -func (externaladmissionhookConfigurationStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { - ic := obj.(*admissionregistration.ExternalAdmissionHookConfiguration) - ic.Generation = 1 -} - -// PrepareForUpdate clears fields that are not allowed to be set by end users on update. -func (externaladmissionhookConfigurationStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { - newIC := obj.(*admissionregistration.ExternalAdmissionHookConfiguration) - oldIC := old.(*admissionregistration.ExternalAdmissionHookConfiguration) - - // Any changes to the spec increment the generation number, any changes to the - // status should reflect the generation number of the corresponding object. - // See metav1.ObjectMeta description for more information on Generation. - if !reflect.DeepEqual(oldIC.ExternalAdmissionHooks, newIC.ExternalAdmissionHooks) { - newIC.Generation = oldIC.Generation + 1 - } -} - -// Validate validates a new ExternalAdmissionHookConfiguration. -func (externaladmissionhookConfigurationStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { - ic := obj.(*admissionregistration.ExternalAdmissionHookConfiguration) - return validation.ValidateExternalAdmissionHookConfiguration(ic) -} - -// Canonicalize normalizes the object after validation. -func (externaladmissionhookConfigurationStrategy) Canonicalize(obj runtime.Object) { -} - -// AllowCreateOnUpdate is true for ExternalAdmissionHookConfiguration; this means you may create one with a PUT request. -func (externaladmissionhookConfigurationStrategy) AllowCreateOnUpdate() bool { - return false -} - -// ValidateUpdate is the default update validation for an end user. -func (externaladmissionhookConfigurationStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { - validationErrorList := validation.ValidateExternalAdmissionHookConfiguration(obj.(*admissionregistration.ExternalAdmissionHookConfiguration)) - updateErrorList := validation.ValidateExternalAdmissionHookConfigurationUpdate(obj.(*admissionregistration.ExternalAdmissionHookConfiguration), old.(*admissionregistration.ExternalAdmissionHookConfiguration)) - return append(validationErrorList, updateErrorList...) -} - -// AllowUnconditionalUpdate is the default update policy for ExternalAdmissionHookConfiguration objects. Status update should -// only be allowed if version match. -func (externaladmissionhookConfigurationStrategy) AllowUnconditionalUpdate() bool { - return false -} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration/BUILD index 03374be09..29c56e75b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration/BUILD @@ -13,7 +13,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/admissionregistration:go_default_library", "//pkg/apis/admissionregistration/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration/strategy.go index 3f0e73925..f32e4ea9d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration/strategy.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/admissionregistration" "k8s.io/kubernetes/pkg/apis/admissionregistration/validation" ) @@ -35,7 +35,7 @@ type initializerConfigurationStrategy struct { } // Strategy is the default logic that applies when creating and updating InitializerConfiguration objects. -var Strategy = initializerConfigurationStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = initializerConfigurationStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped returns true because all InitializerConfiguration' need to be within a namespace. func (initializerConfigurationStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/BUILD similarity index 84% rename from vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD rename to vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/BUILD index a8290cc69..92ae7b566 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/BUILD @@ -11,9 +11,9 @@ go_library( "doc.go", "strategy.go", ], - importpath = "k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration", + importpath = "k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/admissionregistration:go_default_library", "//pkg/apis/admissionregistration/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -34,7 +34,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage:all-srcs", + "//pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/doc.go b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/doc.go new file mode 100644 index 000000000..1c56651af --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/doc.go @@ -0,0 +1,17 @@ +/* +Copyright 2015 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 mutatingwebhookconfiguration // import "k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage/BUILD similarity index 83% rename from vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD rename to vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage/BUILD index 14c2bdc1b..7cb1a472f 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage/BUILD @@ -8,10 +8,10 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - importpath = "k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage", + importpath = "k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage", deps = [ "//pkg/apis/admissionregistration:go_default_library", - "//pkg/registry/admissionregistration/externaladmissionhookconfiguration:go_default_library", + "//pkg/registry/admissionregistration/mutatingwebhookconfiguration:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage/storage.go similarity index 72% rename from vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go rename to vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage/storage.go index 08db5d845..7f3be3492 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage/storage.go @@ -21,7 +21,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/kubernetes/pkg/apis/admissionregistration" - "k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration" + "k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration" ) // rest implements a RESTStorage for pod disruption budgets against etcd @@ -32,16 +32,16 @@ type REST struct { // NewREST returns a RESTStorage object that will work against pod disruption budgets. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - NewFunc: func() runtime.Object { return &admissionregistration.ExternalAdmissionHookConfiguration{} }, - NewListFunc: func() runtime.Object { return &admissionregistration.ExternalAdmissionHookConfigurationList{} }, + NewFunc: func() runtime.Object { return &admissionregistration.MutatingWebhookConfiguration{} }, + NewListFunc: func() runtime.Object { return &admissionregistration.MutatingWebhookConfigurationList{} }, ObjectNameFunc: func(obj runtime.Object) (string, error) { - return obj.(*admissionregistration.ExternalAdmissionHookConfiguration).Name, nil + return obj.(*admissionregistration.MutatingWebhookConfiguration).Name, nil }, - DefaultQualifiedResource: admissionregistration.Resource("externaladmissionhookconfigurations"), + DefaultQualifiedResource: admissionregistration.Resource("mutatingwebhookconfigurations"), - CreateStrategy: externaladmissionhookconfiguration.Strategy, - UpdateStrategy: externaladmissionhookconfiguration.Strategy, - DeleteStrategy: externaladmissionhookconfiguration.Strategy, + CreateStrategy: mutatingwebhookconfiguration.Strategy, + UpdateStrategy: mutatingwebhookconfiguration.Strategy, + DeleteStrategy: mutatingwebhookconfiguration.Strategy, } options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/strategy.go new file mode 100644 index 000000000..735980ac4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/strategy.go @@ -0,0 +1,90 @@ +/* +Copyright 2014 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 mutatingwebhookconfiguration + +import ( + "reflect" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage/names" + "k8s.io/kubernetes/pkg/api/legacyscheme" + "k8s.io/kubernetes/pkg/apis/admissionregistration" + "k8s.io/kubernetes/pkg/apis/admissionregistration/validation" +) + +// mutatingWebhookConfigurationStrategy implements verification logic for mutatingWebhookConfiguration. +type mutatingWebhookConfigurationStrategy struct { + runtime.ObjectTyper + names.NameGenerator +} + +// Strategy is the default logic that applies when creating and updating mutatingWebhookConfiguration objects. +var Strategy = mutatingWebhookConfigurationStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} + +// NamespaceScoped returns true because all mutatingWebhookConfiguration' need to be within a namespace. +func (mutatingWebhookConfigurationStrategy) NamespaceScoped() bool { + return false +} + +// PrepareForCreate clears the status of an mutatingWebhookConfiguration before creation. +func (mutatingWebhookConfigurationStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { + ic := obj.(*admissionregistration.MutatingWebhookConfiguration) + ic.Generation = 1 +} + +// PrepareForUpdate clears fields that are not allowed to be set by end users on update. +func (mutatingWebhookConfigurationStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { + newIC := obj.(*admissionregistration.MutatingWebhookConfiguration) + oldIC := old.(*admissionregistration.MutatingWebhookConfiguration) + + // Any changes to the spec increment the generation number, any changes to the + // status should reflect the generation number of the corresponding object. + // See metav1.ObjectMeta description for more information on Generation. + if !reflect.DeepEqual(oldIC.Webhooks, newIC.Webhooks) { + newIC.Generation = oldIC.Generation + 1 + } +} + +// Validate validates a new mutatingWebhookConfiguration. +func (mutatingWebhookConfigurationStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { + ic := obj.(*admissionregistration.MutatingWebhookConfiguration) + return validation.ValidateMutatingWebhookConfiguration(ic) +} + +// Canonicalize normalizes the object after validation. +func (mutatingWebhookConfigurationStrategy) Canonicalize(obj runtime.Object) { +} + +// AllowCreateOnUpdate is true for mutatingWebhookConfiguration; this means you may create one with a PUT request. +func (mutatingWebhookConfigurationStrategy) AllowCreateOnUpdate() bool { + return false +} + +// ValidateUpdate is the default update validation for an end user. +func (mutatingWebhookConfigurationStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { + validationErrorList := validation.ValidateMutatingWebhookConfiguration(obj.(*admissionregistration.MutatingWebhookConfiguration)) + updateErrorList := validation.ValidateMutatingWebhookConfigurationUpdate(obj.(*admissionregistration.MutatingWebhookConfiguration), old.(*admissionregistration.MutatingWebhookConfiguration)) + return append(validationErrorList, updateErrorList...) +} + +// AllowUnconditionalUpdate is the default update policy for mutatingWebhookConfiguration objects. Status update should +// only be allowed if version match. +func (mutatingWebhookConfigurationStrategy) AllowUnconditionalUpdate() bool { + return false +} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/rest/BUILD index 8539548d4..3d0df0706 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/rest/BUILD @@ -10,10 +10,11 @@ go_library( srcs = ["storage_apiserver.go"], importpath = "k8s.io/kubernetes/pkg/registry/admissionregistration/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/admissionregistration:go_default_library", - "//pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage:go_default_library", "//pkg/registry/admissionregistration/initializerconfiguration/storage:go_default_library", + "//pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage:go_default_library", + "//pkg/registry/admissionregistration/validatingwebhookconfiguration/storage:go_default_library", "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/rest/storage_apiserver.go b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/rest/storage_apiserver.go index 26d381a68..9604e22d6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/rest/storage_apiserver.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/rest/storage_apiserver.go @@ -22,16 +22,17 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/admissionregistration" - externaladmissionhookconfigurationstorage "k8s.io/kubernetes/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage" initializerconfigurationstorage "k8s.io/kubernetes/pkg/registry/admissionregistration/initializerconfiguration/storage" + mutatingwebhookconfigurationstorage "k8s.io/kubernetes/pkg/registry/admissionregistration/mutatingwebhookconfiguration/storage" + validatingwebhookconfigurationstorage "k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/storage" ) type RESTStorageProvider struct{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(admissionregistration.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(admissionregistration.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo @@ -49,9 +50,13 @@ func (p RESTStorageProvider) v1alpha1Storage(apiResourceConfigSource serverstora s := initializerconfigurationstorage.NewREST(restOptionsGetter) storage["initializerconfigurations"] = s } - if apiResourceConfigSource.ResourceEnabled(version.WithResource("externaladmissionhookconfigurations")) { - s := externaladmissionhookconfigurationstorage.NewREST(restOptionsGetter) - storage["externaladmissionhookconfigurations"] = s + if apiResourceConfigSource.ResourceEnabled(version.WithResource("validatingwebhookconfigurations")) { + s := validatingwebhookconfigurationstorage.NewREST(restOptionsGetter) + storage["validatingwebhookconfigurations"] = s + } + if apiResourceConfigSource.ResourceEnabled(version.WithResource("mutatingwebhookconfigurations")) { + s := mutatingwebhookconfigurationstorage.NewREST(restOptionsGetter) + storage["mutatingwebhookconfigurations"] = s } return storage } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/BUILD new file mode 100644 index 000000000..0b07d3028 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/BUILD @@ -0,0 +1,40 @@ +package(default_visibility = ["//visibility:public"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "strategy.go", + ], + importpath = "k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration", + deps = [ + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/admissionregistration:go_default_library", + "//pkg/apis/admissionregistration/validation:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", + "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//pkg/registry/admissionregistration/validatingwebhookconfiguration/storage:all-srcs", + ], + tags = ["automanaged"], +) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/doc.go b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/doc.go new file mode 100644 index 000000000..d23152a4b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/doc.go @@ -0,0 +1,17 @@ +/* +Copyright 2015 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 validatingwebhookconfiguration // import "k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration" diff --git a/vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/storage/BUILD similarity index 51% rename from vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/BUILD rename to vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/storage/BUILD index 0907ed858..30da94ee1 100644 --- a/vendor/k8s.io/kubernetes/federation/test/e2e/upgrades/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/storage/BUILD @@ -7,17 +7,14 @@ load( go_library( name = "go_default_library", - srcs = [ - "simple.go", - "upgrade.go", - ], - importpath = "k8s.io/kubernetes/federation/test/e2e/upgrades", + srcs = ["storage.go"], + importpath = "k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/storage", deps = [ - "//federation/pkg/federatedtypes:go_default_library", - "//federation/pkg/federatedtypes/crudtester:go_default_library", - "//federation/test/e2e/framework:go_default_library", - "//vendor/github.com/onsi/ginkgo:go_default_library", + "//pkg/apis/admissionregistration:go_default_library", + "//pkg/registry/admissionregistration/validatingwebhookconfiguration:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/storage/storage.go new file mode 100644 index 000000000..6a0bee2f0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/storage/storage.go @@ -0,0 +1,51 @@ +/* +Copyright 2015 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 storage + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic" + genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/kubernetes/pkg/apis/admissionregistration" + "k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration" +) + +// rest implements a RESTStorage for pod disruption budgets against etcd +type REST struct { + *genericregistry.Store +} + +// NewREST returns a RESTStorage object that will work against pod disruption budgets. +func NewREST(optsGetter generic.RESTOptionsGetter) *REST { + store := &genericregistry.Store{ + NewFunc: func() runtime.Object { return &admissionregistration.ValidatingWebhookConfiguration{} }, + NewListFunc: func() runtime.Object { return &admissionregistration.ValidatingWebhookConfigurationList{} }, + ObjectNameFunc: func(obj runtime.Object) (string, error) { + return obj.(*admissionregistration.ValidatingWebhookConfiguration).Name, nil + }, + DefaultQualifiedResource: admissionregistration.Resource("validatingwebhookconfigurations"), + + CreateStrategy: validatingwebhookconfiguration.Strategy, + UpdateStrategy: validatingwebhookconfiguration.Strategy, + DeleteStrategy: validatingwebhookconfiguration.Strategy, + } + options := &generic.StoreOptions{RESTOptions: optsGetter} + if err := store.CompleteWithOptions(options); err != nil { + panic(err) // TODO: Propagate error up + } + return &REST{store} +} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/strategy.go new file mode 100644 index 000000000..e59ecc989 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/admissionregistration/validatingwebhookconfiguration/strategy.go @@ -0,0 +1,90 @@ +/* +Copyright 2014 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 validatingwebhookconfiguration + +import ( + "reflect" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage/names" + "k8s.io/kubernetes/pkg/api/legacyscheme" + "k8s.io/kubernetes/pkg/apis/admissionregistration" + "k8s.io/kubernetes/pkg/apis/admissionregistration/validation" +) + +// validatingWebhookConfigurationStrategy implements verification logic for validatingWebhookConfiguration. +type validatingWebhookConfigurationStrategy struct { + runtime.ObjectTyper + names.NameGenerator +} + +// Strategy is the default logic that applies when creating and updating validatingWebhookConfiguration objects. +var Strategy = validatingWebhookConfigurationStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} + +// NamespaceScoped returns true because all validatingWebhookConfiguration' need to be within a namespace. +func (validatingWebhookConfigurationStrategy) NamespaceScoped() bool { + return false +} + +// PrepareForCreate clears the status of an validatingWebhookConfiguration before creation. +func (validatingWebhookConfigurationStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { + ic := obj.(*admissionregistration.ValidatingWebhookConfiguration) + ic.Generation = 1 +} + +// PrepareForUpdate clears fields that are not allowed to be set by end users on update. +func (validatingWebhookConfigurationStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { + newIC := obj.(*admissionregistration.ValidatingWebhookConfiguration) + oldIC := old.(*admissionregistration.ValidatingWebhookConfiguration) + + // Any changes to the spec increment the generation number, any changes to the + // status should reflect the generation number of the corresponding object. + // See metav1.ObjectMeta description for more information on Generation. + if !reflect.DeepEqual(oldIC.Webhooks, newIC.Webhooks) { + newIC.Generation = oldIC.Generation + 1 + } +} + +// Validate validates a new validatingWebhookConfiguration. +func (validatingWebhookConfigurationStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { + ic := obj.(*admissionregistration.ValidatingWebhookConfiguration) + return validation.ValidateValidatingWebhookConfiguration(ic) +} + +// Canonicalize normalizes the object after validation. +func (validatingWebhookConfigurationStrategy) Canonicalize(obj runtime.Object) { +} + +// AllowCreateOnUpdate is true for validatingWebhookConfiguration; this means you may create one with a PUT request. +func (validatingWebhookConfigurationStrategy) AllowCreateOnUpdate() bool { + return false +} + +// ValidateUpdate is the default update validation for an end user. +func (validatingWebhookConfigurationStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { + validationErrorList := validation.ValidateValidatingWebhookConfiguration(obj.(*admissionregistration.ValidatingWebhookConfiguration)) + updateErrorList := validation.ValidateValidatingWebhookConfigurationUpdate(obj.(*admissionregistration.ValidatingWebhookConfiguration), old.(*admissionregistration.ValidatingWebhookConfiguration)) + return append(validationErrorList, updateErrorList...) +} + +// AllowUnconditionalUpdate is the default update policy for validatingWebhookConfiguration objects. Status update should +// only be allowed if version match. +func (validatingWebhookConfigurationStrategy) AllowUnconditionalUpdate() bool { + return false +} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/BUILD index ee8dda9d4..24e6e13da 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/BUILD @@ -12,8 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/apps/controllerrevision", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/core: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/apiserver/pkg/endpoints/request:go_default_library", @@ -28,7 +28,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/apps/controllerrevision", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/apps/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage/BUILD index 53544f5dc..52e8c8d43 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage/BUILD @@ -12,8 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage/storage_test.go index 05abb7a60..99d42c18d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage/storage_test.go @@ -25,8 +25,8 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/strategy.go index f6f207b90..08161d718 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/strategy.go @@ -22,7 +22,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/apps/validation" ) @@ -35,7 +35,7 @@ type strategy struct { // Strategy is the default logic that applies when creating and updating ControllerRevision // objects via the REST API. -var Strategy = strategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = strategy{legacyscheme.Scheme, names.SimpleNameGenerator} // Strategy should implement rest.RESTCreateStrategy var _ rest.RESTCreateStrategy = Strategy diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/strategy_test.go index 594e33277..ed9f886e8 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/controllerrevision/strategy_test.go @@ -22,8 +22,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestStrategy_NamespaceScoped(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/apps/rest/BUILD index f7799721e..70032abad 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_apps.go"], importpath = "k8s.io/kubernetes/pkg/registry/apps/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/registry/apps/controllerrevision/storage:go_default_library", "//pkg/registry/apps/statefulset/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/rest/storage_apps.go b/vendor/k8s.io/kubernetes/pkg/registry/apps/rest/storage_apps.go index ac2e3cb3d..f77900e88 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/rest/storage_apps.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/rest/storage_apps.go @@ -24,7 +24,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/apps" controllerrevisionsstore "k8s.io/kubernetes/pkg/registry/apps/controllerrevision/storage" statefulsetstore "k8s.io/kubernetes/pkg/registry/apps/statefulset/storage" @@ -36,7 +36,7 @@ import ( type RESTStorageProvider struct{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(apps.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(apps.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo @@ -118,11 +118,33 @@ func (p RESTStorageProvider) v1Storage(apiResourceConfigSource serverstorage.API version := appsapiv1.SchemeGroupVersion storage := map[string]rest.Storage{} + if apiResourceConfigSource.ResourceEnabled(version.WithResource("deployments")) { + deploymentStorage := deploymentstore.NewStorage(restOptionsGetter) + storage["deployments"] = deploymentStorage.Deployment + storage["deployments/status"] = deploymentStorage.Status + storage["deployments/scale"] = deploymentStorage.Scale + } + if apiResourceConfigSource.ResourceEnabled(version.WithResource("statefulsets")) { + statefulSetStorage := statefulsetstore.NewStorage(restOptionsGetter) + storage["statefulsets"] = statefulSetStorage.StatefulSet + storage["statefulsets/status"] = statefulSetStorage.Status + storage["statefulsets/scale"] = statefulSetStorage.Scale + } if apiResourceConfigSource.ResourceEnabled(version.WithResource("daemonsets")) { daemonSetStorage, daemonSetStatusStorage := daemonsetstore.NewREST(restOptionsGetter) storage["daemonsets"] = daemonSetStorage storage["daemonsets/status"] = daemonSetStatusStorage } + if apiResourceConfigSource.ResourceEnabled(version.WithResource("replicasets")) { + replicaSetStorage := replicasetstore.NewStorage(restOptionsGetter) + storage["replicasets"] = replicaSetStorage.ReplicaSet + storage["replicasets/status"] = replicaSetStorage.Status + storage["replicasets/scale"] = replicaSetStorage.Scale + } + if apiResourceConfigSource.ResourceEnabled(version.WithResource("controllerrevisions")) { + historyStorage := controllerrevisionsstore.NewREST(restOptionsGetter) + storage["controllerrevisions"] = historyStorage + } return storage } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/BUILD index d67edd356..0a227ada4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/BUILD @@ -15,7 +15,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/apps/statefulset", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/apps/validation:go_default_library", @@ -38,8 +38,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/apps/statefulset", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/registry.go index beef2d753..eb33b6e1c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/registry.go @@ -33,8 +33,8 @@ type Registry interface { ListStatefulSets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*apps.StatefulSetList, error) WatchStatefulSets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) GetStatefulSet(ctx genericapirequest.Context, statefulSetID string, options *metav1.GetOptions) (*apps.StatefulSet, error) - CreateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet) (*apps.StatefulSet, error) - UpdateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet) (*apps.StatefulSet, error) + CreateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet, createValidation rest.ValidateObjectFunc) (*apps.StatefulSet, error) + UpdateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*apps.StatefulSet, error) DeleteStatefulSet(ctx genericapirequest.Context, statefulSetID string) error } @@ -72,16 +72,16 @@ func (s *storage) GetStatefulSet(ctx genericapirequest.Context, statefulSetID st return obj.(*apps.StatefulSet), nil } -func (s *storage) CreateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet) (*apps.StatefulSet, error) { - obj, err := s.Create(ctx, statefulSet, false) +func (s *storage) CreateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet, createValidation rest.ValidateObjectFunc) (*apps.StatefulSet, error) { + obj, err := s.Create(ctx, statefulSet, rest.ValidateAllObjectFunc, false) if err != nil { return nil, err } return obj.(*apps.StatefulSet), nil } -func (s *storage) UpdateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet) (*apps.StatefulSet, error) { - obj, _, err := s.Update(ctx, statefulSet.Name, rest.DefaultUpdatedObjectInfo(statefulSet)) +func (s *storage) UpdateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*apps.StatefulSet, error) { + obj, _, err := s.Update(ctx, statefulSet.Name, rest.DefaultUpdatedObjectInfo(statefulSet), createValidation, updateValidation) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/BUILD index ccb4be21a..e9699e911 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/BUILD @@ -12,9 +12,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/apps/statefulset/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", - "//pkg/apis/extensions:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -35,8 +35,12 @@ go_library( importpath = "k8s.io/kubernetes/pkg/registry/apps/statefulset/storage", deps = [ "//pkg/apis/apps:go_default_library", + "//pkg/apis/apps/v1beta1:go_default_library", + "//pkg/apis/apps/v1beta2:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/autoscaling/v1:go_default_library", + "//pkg/apis/autoscaling/validation:go_default_library", "//pkg/apis/extensions:go_default_library", - "//pkg/apis/extensions/validation:go_default_library", "//pkg/printers:go_default_library", "//pkg/printers/internalversion:go_default_library", "//pkg/printers/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/storage.go index 94360f4c0..d97f17270 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/storage.go @@ -28,8 +28,12 @@ import ( genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/kubernetes/pkg/apis/apps" + appsv1beta1 "k8s.io/kubernetes/pkg/apis/apps/v1beta1" + appsv1beta2 "k8s.io/kubernetes/pkg/apis/apps/v1beta2" + "k8s.io/kubernetes/pkg/apis/autoscaling" + autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1" + autoscalingvalidation "k8s.io/kubernetes/pkg/apis/autoscaling/validation" "k8s.io/kubernetes/pkg/apis/extensions" - extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/printers" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" printerstorage "k8s.io/kubernetes/pkg/printers/storage" @@ -105,8 +109,8 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } // Implement ShortNamesProvider @@ -125,13 +129,20 @@ type ScaleREST struct { var _ = rest.Patcher(&ScaleREST{}) var _ = rest.GroupVersionKindProvider(&ScaleREST{}) -func (r *ScaleREST) GroupVersionKind() schema.GroupVersionKind { - return schema.GroupVersionKind{Group: "extensions", Version: "v1beta1", Kind: "Scale"} +func (r *ScaleREST) GroupVersionKind(containingGV schema.GroupVersion) schema.GroupVersionKind { + switch containingGV { + case appsv1beta1.SchemeGroupVersion: + return appsv1beta1.SchemeGroupVersion.WithKind("Scale") + case appsv1beta2.SchemeGroupVersion: + return appsv1beta2.SchemeGroupVersion.WithKind("Scale") + default: + return autoscalingv1.SchemeGroupVersion.WithKind("Scale") + } } // New creates a new Scale object func (r *ScaleREST) New() runtime.Object { - return &extensions.Scale{} + return &autoscaling.Scale{} } func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { @@ -146,7 +157,7 @@ func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *met return scale, err } -func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { ss, err := r.registry.GetStatefulSet(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, false, err @@ -164,18 +175,18 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r if obj == nil { return nil, false, errors.NewBadRequest(fmt.Sprintf("nil update passed to Scale")) } - scale, ok := obj.(*extensions.Scale) + scale, ok := obj.(*autoscaling.Scale) if !ok { return nil, false, errors.NewBadRequest(fmt.Sprintf("wrong object passed to Scale update: %v", obj)) } - if errs := extvalidation.ValidateScale(scale); len(errs) > 0 { + if errs := autoscalingvalidation.ValidateScale(scale); len(errs) > 0 { return nil, false, errors.NewInvalid(extensions.Kind("Scale"), scale.Name, errs) } ss.Spec.Replicas = scale.Spec.Replicas ss.ResourceVersion = scale.ResourceVersion - ss, err = r.registry.UpdateStatefulSet(ctx, ss) + ss, err = r.registry.UpdateStatefulSet(ctx, ss, createValidation, updateValidation) if err != nil { return nil, false, err } @@ -187,8 +198,12 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r } // scaleFromStatefulSet returns a scale subresource for a statefulset. -func scaleFromStatefulSet(ss *apps.StatefulSet) (*extensions.Scale, error) { - return &extensions.Scale{ +func scaleFromStatefulSet(ss *apps.StatefulSet) (*autoscaling.Scale, error) { + selector, err := metav1.LabelSelectorAsSelector(ss.Spec.Selector) + if err != nil { + return nil, err + } + return &autoscaling.Scale{ // TODO: Create a variant of ObjectMeta type that only contains the fields below. ObjectMeta: metav1.ObjectMeta{ Name: ss.Name, @@ -197,12 +212,12 @@ func scaleFromStatefulSet(ss *apps.StatefulSet) (*extensions.Scale, error) { ResourceVersion: ss.ResourceVersion, CreationTimestamp: ss.CreationTimestamp, }, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: ss.Spec.Replicas, }, - Status: extensions.ScaleStatus{ + Status: autoscaling.ScaleStatus{ Replicas: ss.Status.Replicas, - Selector: ss.Spec.Selector, + Selector: selector.String(), }, }, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/storage_test.go index 82961bbd1..1adaa4448 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/storage/storage_test.go @@ -29,9 +29,9 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" - "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -46,7 +46,7 @@ func newStorage(t *testing.T) (StatefulSetStorage, *etcdtesting.EtcdTestServer) // createStatefulSet is a helper function that returns a StatefulSet with the updated resource version. func createStatefulSet(storage *REST, ps apps.StatefulSet, t *testing.T) (apps.StatefulSet, error) { ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), ps.Namespace) - obj, err := storage.Create(ctx, &ps, false) + obj, err := storage.Create(ctx, &ps, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Failed to create StatefulSet, %v", err) } @@ -125,7 +125,7 @@ func TestStatusUpdate(t *testing.T) { }, } - if _, _, err := storage.Status.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil { + if _, _, err := storage.Status.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("unexpected error: %v", err) } obj, err := storage.StatefulSet.Get(ctx, "foo", &metav1.GetOptions{}) @@ -224,7 +224,11 @@ func TestScaleGet(t *testing.T) { t.Fatalf("error setting new statefulset (key: %s) %v: %v", key, validStatefulSet, err) } - want := &extensions.Scale{ + selector, err := metav1.LabelSelectorAsSelector(validStatefulSet.Spec.Selector) + if err != nil { + t.Fatal(err) + } + want := &autoscaling.Scale{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: metav1.NamespaceDefault, @@ -232,16 +236,16 @@ func TestScaleGet(t *testing.T) { ResourceVersion: sts.ResourceVersion, CreationTimestamp: sts.CreationTimestamp, }, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: validStatefulSet.Spec.Replicas, }, - Status: extensions.ScaleStatus{ + Status: autoscaling.ScaleStatus{ Replicas: validStatefulSet.Status.Replicas, - Selector: validStatefulSet.Spec.Selector, + Selector: selector.String(), }, } obj, err := storage.Scale.Get(ctx, name, &metav1.GetOptions{}) - got := obj.(*extensions.Scale) + got := obj.(*autoscaling.Scale) if err != nil { t.Fatalf("error fetching scale for %s: %v", name, err) } @@ -264,17 +268,17 @@ func TestScaleUpdate(t *testing.T) { t.Fatalf("error setting new statefulset (key: %s) %v: %v", key, validStatefulSet, err) } replicas := 12 - update := extensions.Scale{ + update := autoscaling.Scale{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: metav1.NamespaceDefault, }, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: int32(replicas), }, } - if _, _, err := storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil { + if _, _, err := storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("error updating scale %v: %v", update, err) } @@ -282,7 +286,7 @@ func TestScaleUpdate(t *testing.T) { if err != nil { t.Fatalf("error fetching scale for %s: %v", name, err) } - scale := obj.(*extensions.Scale) + scale := obj.(*autoscaling.Scale) if scale.Spec.Replicas != int32(replicas) { t.Errorf("wrong replicas count expected: %d got: %d", replicas, scale.Spec.Replicas) } @@ -290,7 +294,7 @@ func TestScaleUpdate(t *testing.T) { update.ResourceVersion = sts.ResourceVersion update.Spec.Replicas = 15 - if _, _, err = storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil && !errors.IsConflict(err) { + if _, _, err = storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil && !errors.IsConflict(err) { t.Fatalf("unexpected error, expecting an update conflict but got %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/strategy.go index c070619c4..9ec843a1c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/strategy.go @@ -23,7 +23,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/pod" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/apps/validation" @@ -36,7 +36,7 @@ type statefulSetStrategy struct { } // Strategy is the default logic that applies when creating and updating Replication StatefulSet objects. -var Strategy = statefulSetStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = statefulSetStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // DefaultGarbageCollectionPolicy returns Orphan because that was the default // behavior before the server-side garbage collection was implemented. diff --git a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/strategy_test.go index 6c65b687e..9e99e7e7e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/apps/statefulset/strategy_test.go @@ -22,8 +22,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestStatefulSetStrategy(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authentication/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/authentication/rest/BUILD index 8cfa241f5..bd8731b24 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authentication/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/authentication/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_authentication.go"], importpath = "k8s.io/kubernetes/pkg/registry/authentication/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/authentication:go_default_library", "//pkg/registry/authentication/tokenreview:go_default_library", "//vendor/k8s.io/api/authentication/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authentication/rest/storage_authentication.go b/vendor/k8s.io/kubernetes/pkg/registry/authentication/rest/storage_authentication.go index f71f0d836..e3f1aa6da 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authentication/rest/storage_authentication.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/authentication/rest/storage_authentication.go @@ -24,7 +24,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/authentication" "k8s.io/kubernetes/pkg/registry/authentication/tokenreview" ) @@ -39,7 +39,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorag // return genericapiserver.APIGroupInfo{}, false // } - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(authentication.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(authentication.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authentication/tokenreview/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/authentication/tokenreview/BUILD index 4644d7950..26eba385a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authentication/tokenreview/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/authentication/tokenreview/BUILD @@ -15,6 +15,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authentication/tokenreview/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/authentication/tokenreview/storage.go index f512907e6..28c1da7c8 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authentication/tokenreview/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/authentication/tokenreview/storage.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/authentication/authenticator" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" "k8s.io/kubernetes/pkg/apis/authentication" ) @@ -39,7 +40,7 @@ func (r *REST) New() runtime.Object { return &authentication.TokenReview{} } -func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { tokenReview, ok := obj.(*authentication.TokenReview) if !ok { return nil, apierrors.NewBadRequest(fmt.Sprintf("not a TokenReview: %#v", obj)) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview/BUILD index b2ba4af18..6ed963cd2 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview/BUILD @@ -17,6 +17,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview/rest.go b/vendor/k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview/rest.go index d36f17582..af49b6bd4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview/rest.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview/rest.go @@ -23,6 +23,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/authorization/authorizer" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" authorizationapi "k8s.io/kubernetes/pkg/apis/authorization" authorizationvalidation "k8s.io/kubernetes/pkg/apis/authorization/validation" authorizationutil "k8s.io/kubernetes/pkg/registry/authorization/util" @@ -40,7 +41,7 @@ func (r *REST) New() runtime.Object { return &authorizationapi.LocalSubjectAccessReview{} } -func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { localSubjectAccessReview, ok := obj.(*authorizationapi.LocalSubjectAccessReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a LocaLocalSubjectAccessReview: %#v", obj)) @@ -57,10 +58,11 @@ func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, include } authorizationAttributes := authorizationutil.AuthorizationAttributesFrom(localSubjectAccessReview.Spec) - allowed, reason, evaluationErr := r.authorizer.Authorize(authorizationAttributes) + decision, reason, evaluationErr := r.authorizer.Authorize(authorizationAttributes) localSubjectAccessReview.Status = authorizationapi.SubjectAccessReviewStatus{ - Allowed: allowed, + Allowed: (decision == authorizer.DecisionAllow), + Denied: (decision == authorizer.DecisionDeny), Reason: reason, } if evaluationErr != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/authorization/rest/BUILD index 394584947..029c7848d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_authorization.go"], importpath = "k8s.io/kubernetes/pkg/registry/authorization/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/authorization:go_default_library", "//pkg/registry/authorization/localsubjectaccessreview:go_default_library", "//pkg/registry/authorization/selfsubjectaccessreview:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/rest/storage_authorization.go b/vendor/k8s.io/kubernetes/pkg/registry/authorization/rest/storage_authorization.go index 19eeb2fd2..10f3293c6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/rest/storage_authorization.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/rest/storage_authorization.go @@ -24,7 +24,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/authorization" "k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview" "k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview" @@ -42,7 +42,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorag return genericapiserver.APIGroupInfo{}, false } - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(authorization.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(authorization.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview/BUILD index fa7f91448..06b8845db 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview/BUILD @@ -17,6 +17,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview/rest.go b/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview/rest.go index 4498b5f5a..38900a877 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview/rest.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview/rest.go @@ -23,6 +23,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/authorization/authorizer" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" authorizationapi "k8s.io/kubernetes/pkg/apis/authorization" authorizationvalidation "k8s.io/kubernetes/pkg/apis/authorization/validation" authorizationutil "k8s.io/kubernetes/pkg/registry/authorization/util" @@ -40,7 +41,7 @@ func (r *REST) New() runtime.Object { return &authorizationapi.SelfSubjectAccessReview{} } -func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { selfSAR, ok := obj.(*authorizationapi.SelfSubjectAccessReview) if !ok { return nil, apierrors.NewBadRequest(fmt.Sprintf("not a SelfSubjectAccessReview: %#v", obj)) @@ -60,10 +61,11 @@ func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, include authorizationAttributes = authorizationutil.NonResourceAttributesFrom(userToCheck, *selfSAR.Spec.NonResourceAttributes) } - allowed, reason, evaluationErr := r.authorizer.Authorize(authorizationAttributes) + decision, reason, evaluationErr := r.authorizer.Authorize(authorizationAttributes) selfSAR.Status = authorizationapi.SubjectAccessReviewStatus{ - Allowed: allowed, + Allowed: (decision == authorizer.DecisionAllow), + Denied: (decision == authorizer.DecisionDeny), Reason: reason, } if evaluationErr != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectrulesreview/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectrulesreview/BUILD index 6bc1c631b..2afdc2381 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectrulesreview/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectrulesreview/BUILD @@ -11,6 +11,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectrulesreview/rest.go b/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectrulesreview/rest.go index 062829fab..2093f324e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectrulesreview/rest.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/selfsubjectrulesreview/rest.go @@ -23,6 +23,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/authorization/authorizer" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" authorizationapi "k8s.io/kubernetes/pkg/apis/authorization" ) @@ -42,7 +43,7 @@ func (r *REST) New() runtime.Object { } // Create attempts to get self subject rules in specific namespace. -func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { selfSRR, ok := obj.(*authorizationapi.SelfSubjectRulesReview) if !ok { return nil, apierrors.NewBadRequest(fmt.Sprintf("not a SelfSubjectRulesReview: %#v", obj)) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/BUILD index ebc677168..fb4474b43 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/BUILD @@ -18,6 +18,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", ], ) @@ -44,5 +45,6 @@ go_test( "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/rest.go b/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/rest.go index 1583a32ac..92da3d342 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/rest.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/rest.go @@ -23,6 +23,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/authorization/authorizer" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" authorizationapi "k8s.io/kubernetes/pkg/apis/authorization" authorizationvalidation "k8s.io/kubernetes/pkg/apis/authorization/validation" authorizationutil "k8s.io/kubernetes/pkg/registry/authorization/util" @@ -40,7 +41,7 @@ func (r *REST) New() runtime.Object { return &authorizationapi.SubjectAccessReview{} } -func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { subjectAccessReview, ok := obj.(*authorizationapi.SubjectAccessReview) if !ok { return nil, kapierrors.NewBadRequest(fmt.Sprintf("not a SubjectAccessReview: %#v", obj)) @@ -50,10 +51,11 @@ func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, include } authorizationAttributes := authorizationutil.AuthorizationAttributesFrom(subjectAccessReview.Spec) - allowed, reason, evaluationErr := r.authorizer.Authorize(authorizationAttributes) + decision, reason, evaluationErr := r.authorizer.Authorize(authorizationAttributes) subjectAccessReview.Status = authorizationapi.SubjectAccessReviewStatus{ - Allowed: allowed, + Allowed: (decision == authorizer.DecisionAllow), + Denied: (decision == authorizer.DecisionDeny), Reason: reason, } if evaluationErr != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/rest_test.go b/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/rest_test.go index b27853824..ce882a8b4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/rest_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview/rest_test.go @@ -26,28 +26,29 @@ import ( "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" authorizationapi "k8s.io/kubernetes/pkg/apis/authorization" ) type fakeAuthorizer struct { attrs authorizer.Attributes - ok bool - reason string - err error + decision authorizer.Decision + reason string + err error } -func (f *fakeAuthorizer) Authorize(attrs authorizer.Attributes) (bool, string, error) { +func (f *fakeAuthorizer) Authorize(attrs authorizer.Attributes) (authorizer.Decision, string, error) { f.attrs = attrs - return f.ok, f.reason, f.err + return f.decision, f.reason, f.err } func TestCreate(t *testing.T) { testcases := map[string]struct { - spec authorizationapi.SubjectAccessReviewSpec - ok bool - reason string - err error + spec authorizationapi.SubjectAccessReviewSpec + decision authorizer.Decision + reason string + err error expectedErr string expectedAttrs authorizer.Attributes @@ -62,9 +63,9 @@ func TestCreate(t *testing.T) { User: "bob", NonResourceAttributes: &authorizationapi.NonResourceAttributes{Verb: "get", Path: "/mypath"}, }, - ok: false, - reason: "myreason", - err: errors.New("myerror"), + decision: authorizer.DecisionNoOpinion, + reason: "myreason", + err: errors.New("myerror"), expectedAttrs: authorizer.AttributesRecord{ User: &user.DefaultInfo{Name: "bob"}, Verb: "get", @@ -83,9 +84,9 @@ func TestCreate(t *testing.T) { User: "bob", NonResourceAttributes: &authorizationapi.NonResourceAttributes{Verb: "get", Path: "/mypath"}, }, - ok: true, - reason: "allowed", - err: nil, + decision: authorizer.DecisionAllow, + reason: "allowed", + err: nil, expectedAttrs: authorizer.AttributesRecord{ User: &user.DefaultInfo{Name: "bob"}, Verb: "get", @@ -112,9 +113,9 @@ func TestCreate(t *testing.T) { Name: "mydeployment", }, }, - ok: false, - reason: "myreason", - err: errors.New("myerror"), + decision: authorizer.DecisionNoOpinion, + reason: "myreason", + err: errors.New("myerror"), expectedAttrs: authorizer.AttributesRecord{ User: &user.DefaultInfo{Name: "bob"}, Namespace: "myns", @@ -128,6 +129,7 @@ func TestCreate(t *testing.T) { }, expectedStatus: authorizationapi.SubjectAccessReviewStatus{ Allowed: false, + Denied: false, Reason: "myreason", EvaluationError: "myerror", }, @@ -146,9 +148,9 @@ func TestCreate(t *testing.T) { Name: "mydeployment", }, }, - ok: true, - reason: "allowed", - err: nil, + decision: authorizer.DecisionAllow, + reason: "allowed", + err: nil, expectedAttrs: authorizer.AttributesRecord{ User: &user.DefaultInfo{Name: "bob"}, Namespace: "myns", @@ -162,21 +164,38 @@ func TestCreate(t *testing.T) { }, expectedStatus: authorizationapi.SubjectAccessReviewStatus{ Allowed: true, + Denied: false, Reason: "allowed", EvaluationError: "", }, }, + + "resource denied": { + spec: authorizationapi.SubjectAccessReviewSpec{ + User: "bob", + ResourceAttributes: &authorizationapi.ResourceAttributes{}, + }, + decision: authorizer.DecisionDeny, + expectedAttrs: authorizer.AttributesRecord{ + User: &user.DefaultInfo{Name: "bob"}, + ResourceRequest: true, + }, + expectedStatus: authorizationapi.SubjectAccessReviewStatus{ + Allowed: false, + Denied: true, + }, + }, } for k, tc := range testcases { auth := &fakeAuthorizer{ - ok: tc.ok, - reason: tc.reason, - err: tc.err, + decision: tc.decision, + reason: tc.reason, + err: tc.err, } - rest := NewREST(auth) + storage := NewREST(auth) - result, err := rest.Create(genericapirequest.NewContext(), &authorizationapi.SubjectAccessReview{Spec: tc.spec}, false) + result, err := storage.Create(genericapirequest.NewContext(), &authorizationapi.SubjectAccessReview{Spec: tc.spec}, rest.ValidateAllObjectFunc, false) if err != nil { if tc.expectedErr != "" { if !strings.Contains(err.Error(), tc.expectedErr) { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD index 33fd9fa0d..e5fef0856 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD @@ -13,7 +13,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/autoscaling/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD index 3ec7da1e0..5b063c3c6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD @@ -12,8 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go index 2988ebb4e..5d6602f5d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go @@ -83,6 +83,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage_test.go index 6e4ed8b84..3c97343d4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage_test.go @@ -20,8 +20,8 @@ import ( "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" // Ensure that autoscaling/v1 package is initialized. _ "k8s.io/api/autoscaling/v1" "k8s.io/apimachinery/pkg/fields" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/strategy.go index d9c81ab07..3100a9698 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/strategy.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/autoscaling/validation" ) @@ -34,7 +34,7 @@ type autoscalerStrategy struct { // Strategy is the default logic that applies when creating and updating HorizontalPodAutoscaler // objects via the REST API. -var Strategy = autoscalerStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = autoscalerStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped is true for autoscaler. func (autoscalerStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/rest/BUILD index 0014cd382..f0f62a9a8 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_autoscaling.go"], importpath = "k8s.io/kubernetes/pkg/registry/autoscaling/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/registry/autoscaling/horizontalpodautoscaler/storage:go_default_library", "//vendor/k8s.io/api/autoscaling/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/rest/storage_autoscaling.go b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/rest/storage_autoscaling.go index 0b24cd122..e6ce55b48 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/rest/storage_autoscaling.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/autoscaling/rest/storage_autoscaling.go @@ -23,7 +23,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/autoscaling" horizontalpodautoscalerstore "k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/storage" ) @@ -31,7 +31,7 @@ import ( type RESTStorageProvider struct{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(autoscaling.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(autoscaling.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/BUILD index 64455050c..4b037adf2 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/batch/cronjob", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/batch/validation:go_default_library", @@ -32,8 +32,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/batch/cronjob", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/BUILD index 0cb9584c3..e9a9934ed 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/BUILD @@ -12,9 +12,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/batch/cronjob/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/storage.go index 407a3ef40..d8ae47f38 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/storage.go @@ -81,6 +81,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/storage_test.go index 780d0baaf..55269046b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/storage/storage_test.go @@ -26,9 +26,9 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy.go index ac91c59c7..556ec7a8d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy.go @@ -22,7 +22,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/pod" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/batch/validation" @@ -35,7 +35,7 @@ type cronJobStrategy struct { } // Strategy is the default logic that applies when creating and updating CronJob objects. -var Strategy = cronJobStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = cronJobStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // DefaultGarbageCollectionPolicy returns Orphan because that was the default // behavior before the server-side garbage collection was implemented. diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy_test.go index 4dd34ee4a..0df11e384 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/cronjob/strategy_test.go @@ -22,8 +22,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" ) func newBool(a bool) *bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/BUILD index 4ebab0261..d5d3f23ff 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/batch/job", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/batch/validation:go_default_library", @@ -37,10 +37,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/batch/job", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/BUILD index 75abed92d..35773420d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/BUILD @@ -12,8 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/batch/job/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/storage.go index 4a0ed9874..580cc5a75 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/storage.go @@ -98,6 +98,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/storage_test.go index 963977eb2..ec78633be 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/storage/storage_test.go @@ -25,8 +25,8 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/strategy.go index b3f6ae330..dad7af68c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/strategy.go @@ -30,7 +30,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/pod" "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/batch/validation" @@ -43,7 +43,7 @@ type jobStrategy struct { } // Strategy is the default logic that applies when creating and updating Replication Controller objects. -var Strategy = jobStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = jobStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // DefaultGarbageCollectionPolicy returns Orphan because that was the default // behavior before the server-side garbage collection was implemented. diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/strategy_test.go index 1586c4994..f55ded155 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/job/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/job/strategy_test.go @@ -24,10 +24,10 @@ import ( "k8s.io/apimachinery/pkg/types" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" apitesting "k8s.io/kubernetes/pkg/api/testing" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" ) func newBool(a bool) *bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/batch/rest/BUILD index 1d9d3268b..16011acb0 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_batch.go"], importpath = "k8s.io/kubernetes/pkg/registry/batch/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/registry/batch/cronjob/storage:go_default_library", "//pkg/registry/batch/job/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/batch/rest/storage_batch.go b/vendor/k8s.io/kubernetes/pkg/registry/batch/rest/storage_batch.go index 6cfd8f4a6..93c453de3 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/batch/rest/storage_batch.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/batch/rest/storage_batch.go @@ -24,7 +24,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/batch" cronjobstore "k8s.io/kubernetes/pkg/registry/batch/cronjob/storage" jobstore "k8s.io/kubernetes/pkg/registry/batch/job/storage" @@ -33,7 +33,7 @@ import ( type RESTStorageProvider struct{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(batch.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(batch.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo diff --git a/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/BUILD index 0f5491502..91af9ed73 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/BUILD @@ -15,7 +15,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/certificates/certificates", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/certificates:go_default_library", "//pkg/apis/certificates/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/registry.go index 4dfd96114..d3eea018b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/registry.go @@ -28,8 +28,8 @@ import ( // Registry is an interface for things that know how to store CSRs. type Registry interface { ListCSRs(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*certificates.CertificateSigningRequestList, error) - CreateCSR(ctx genericapirequest.Context, csr *certificates.CertificateSigningRequest) error - UpdateCSR(ctx genericapirequest.Context, csr *certificates.CertificateSigningRequest) error + CreateCSR(ctx genericapirequest.Context, csr *certificates.CertificateSigningRequest, createValidation rest.ValidateObjectFunc) error + UpdateCSR(ctx genericapirequest.Context, csr *certificates.CertificateSigningRequest, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error GetCSR(ctx genericapirequest.Context, csrID string, options *metav1.GetOptions) (*certificates.CertificateSigningRequest, error) DeleteCSR(ctx genericapirequest.Context, csrID string) error WatchCSRs(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) @@ -55,13 +55,13 @@ func (s *storage) ListCSRs(ctx genericapirequest.Context, options *metainternalv return obj.(*certificates.CertificateSigningRequestList), nil } -func (s *storage) CreateCSR(ctx genericapirequest.Context, csr *certificates.CertificateSigningRequest) error { - _, err := s.Create(ctx, csr, false) +func (s *storage) CreateCSR(ctx genericapirequest.Context, csr *certificates.CertificateSigningRequest, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, csr, createValidation, false) return err } -func (s *storage) UpdateCSR(ctx genericapirequest.Context, csr *certificates.CertificateSigningRequest) error { - _, _, err := s.Update(ctx, csr.Name, rest.DefaultUpdatedObjectInfo(csr)) +func (s *storage) UpdateCSR(ctx genericapirequest.Context, csr *certificates.CertificateSigningRequest, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, csr.Name, rest.DefaultUpdatedObjectInfo(csr), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/storage/storage.go index 52bf2dbb7..4f69ac911 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/storage/storage.go @@ -78,8 +78,8 @@ func (r *StatusREST) New() runtime.Object { } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } // ApprovalREST implements the REST endpoint for changing the approval state of a CSR. @@ -92,6 +92,6 @@ func (r *ApprovalREST) New() runtime.Object { } // Update alters the approval subset of an object. -func (r *ApprovalREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *ApprovalREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/strategy.go index 742869195..eff6a8965 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/certificates/certificates/strategy.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/certificates" "k8s.io/kubernetes/pkg/apis/certificates/validation" ) @@ -37,7 +37,7 @@ type csrStrategy struct { // csrStrategy is the default logic that applies when creating and updating // CSR objects. -var Strategy = csrStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = csrStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped is true for CSRs. func (csrStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/certificates/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/certificates/rest/BUILD index 40644aa28..6ab6c64cf 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/certificates/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/certificates/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_certificates.go"], importpath = "k8s.io/kubernetes/pkg/registry/certificates/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/certificates:go_default_library", "//pkg/registry/certificates/certificates/storage:go_default_library", "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/certificates/rest/storage_certificates.go b/vendor/k8s.io/kubernetes/pkg/registry/certificates/rest/storage_certificates.go index aeef7cf70..3fe8915b5 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/certificates/rest/storage_certificates.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/certificates/rest/storage_certificates.go @@ -22,7 +22,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/certificates" certificatestore "k8s.io/kubernetes/pkg/registry/certificates/certificates/storage" ) @@ -30,7 +30,7 @@ import ( type RESTStorageProvider struct{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(certificates.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(certificates.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/BUILD index 5dbb6bf34..48e5f6c73 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/BUILD @@ -15,7 +15,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/componentstatus", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/probe:go_default_library", "//pkg/probe/http:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", @@ -36,7 +36,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/componentstatus", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/probe:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/rest.go b/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/rest.go index e0f0e18e4..c67b42ead 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/rest.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/rest.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/probe" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/rest_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/rest_test.go index cf643d369..3b2194f56 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/rest_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/componentstatus/rest_test.go @@ -29,7 +29,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/diff" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/probe" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/BUILD index 4a7984b93..7af8141a1 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/BUILD @@ -15,8 +15,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/configmap", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -34,7 +35,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/configmap", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/registry.go index b26e6141e..440300f2d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/registry.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Registry is an interface for things that know how to store ConfigMaps. @@ -30,8 +30,8 @@ type Registry interface { ListConfigMaps(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*api.ConfigMapList, error) WatchConfigMaps(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) GetConfigMap(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*api.ConfigMap, error) - CreateConfigMap(ctx genericapirequest.Context, cfg *api.ConfigMap) (*api.ConfigMap, error) - UpdateConfigMap(ctx genericapirequest.Context, cfg *api.ConfigMap) (*api.ConfigMap, error) + CreateConfigMap(ctx genericapirequest.Context, cfg *api.ConfigMap, createValidation rest.ValidateObjectFunc) (*api.ConfigMap, error) + UpdateConfigMap(ctx genericapirequest.Context, cfg *api.ConfigMap, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*api.ConfigMap, error) DeleteConfigMap(ctx genericapirequest.Context, name string) error } @@ -68,8 +68,8 @@ func (s *storage) GetConfigMap(ctx genericapirequest.Context, name string, optio return obj.(*api.ConfigMap), nil } -func (s *storage) CreateConfigMap(ctx genericapirequest.Context, cfg *api.ConfigMap) (*api.ConfigMap, error) { - obj, err := s.Create(ctx, cfg, false) +func (s *storage) CreateConfigMap(ctx genericapirequest.Context, cfg *api.ConfigMap, createValidation rest.ValidateObjectFunc) (*api.ConfigMap, error) { + obj, err := s.Create(ctx, cfg, createValidation, false) if err != nil { return nil, err } @@ -77,8 +77,8 @@ func (s *storage) CreateConfigMap(ctx genericapirequest.Context, cfg *api.Config return obj.(*api.ConfigMap), nil } -func (s *storage) UpdateConfigMap(ctx genericapirequest.Context, cfg *api.ConfigMap) (*api.ConfigMap, error) { - obj, _, err := s.Update(ctx, cfg.Name, rest.DefaultUpdatedObjectInfo(cfg)) +func (s *storage) UpdateConfigMap(ctx genericapirequest.Context, cfg *api.ConfigMap, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*api.ConfigMap, error) { + obj, _, err := s.Update(ctx, cfg.Name, rest.DefaultUpdatedObjectInfo(cfg), createValidation, updateValidation) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/BUILD index a39c39413..b3d46baad 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/configmap/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", @@ -28,7 +28,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/configmap/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/configmap:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/storage.go index 14e3f815a..50855e364 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/storage.go @@ -21,7 +21,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/configmap" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/storage_test.go index 9daebb7b1..f2f3fe0da 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/storage/storage_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/strategy.go index b44da0074..58f57f4f9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/strategy.go @@ -22,8 +22,9 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // strategy implements behavior for ConfigMap objects @@ -34,7 +35,7 @@ type strategy struct { // Strategy is the default logic that applies when creating and updating ConfigMap // objects via the REST API. -var Strategy = strategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = strategy{legacyscheme.Scheme, names.SimpleNameGenerator} // Strategy should implement rest.RESTCreateStrategy var _ rest.RESTCreateStrategy = Strategy diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/strategy_test.go index a6ec3254e..26e931ccb 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/configmap/strategy_test.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestConfigMapStrategy(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/BUILD index 082dc168d..775b19583 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/BUILD @@ -14,9 +14,10 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/endpoint", deps = [ - "//pkg/api:go_default_library", "//pkg/api/endpoints:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/registry.go index 1202cec9c..3cb03c4f9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/registry.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Registry is an interface for things that know how to store endpoints. @@ -30,7 +30,7 @@ type Registry interface { ListEndpoints(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*api.EndpointsList, error) GetEndpoints(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*api.Endpoints, error) WatchEndpoints(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) - UpdateEndpoints(ctx genericapirequest.Context, e *api.Endpoints) error + UpdateEndpoints(ctx genericapirequest.Context, e *api.Endpoints, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error DeleteEndpoints(ctx genericapirequest.Context, name string) error } @@ -65,8 +65,8 @@ func (s *storage) GetEndpoints(ctx genericapirequest.Context, name string, optio return obj.(*api.Endpoints), nil } -func (s *storage) UpdateEndpoints(ctx genericapirequest.Context, endpoints *api.Endpoints) error { - _, _, err := s.Update(ctx, endpoints.Name, rest.DefaultUpdatedObjectInfo(endpoints)) +func (s *storage) UpdateEndpoints(ctx genericapirequest.Context, endpoints *api.Endpoints, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, endpoints.Name, rest.DefaultUpdatedObjectInfo(endpoints), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/BUILD index 468d93368..b71d8d689 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/endpoint/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", @@ -28,7 +28,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/endpoint/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/printers:go_default_library", "//pkg/printers/internalversion:go_default_library", "//pkg/printers/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/storage.go index c12e3499f..902b7df0b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/storage.go @@ -21,7 +21,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/printers" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" printerstorage "k8s.io/kubernetes/pkg/printers/storage" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/storage_test.go index fe5674b0c..4590d7e9b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/storage/storage_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/strategy.go index b3a6d4ee7..93204e6ca 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/endpoint/strategy.go @@ -21,9 +21,10 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" endptspkg "k8s.io/kubernetes/pkg/api/endpoints" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // endpointsStrategy implements behavior for Endpoints @@ -34,7 +35,7 @@ type endpointsStrategy struct { // Strategy is the default logic that applies when creating and updating Endpoint // objects via the REST API. -var Strategy = endpointsStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = endpointsStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped is true for endpoints. func (endpointsStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/event/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/event/BUILD index aa10a2230..8bdfa1d2d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/event/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/event/BUILD @@ -14,8 +14,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/event", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -34,9 +35,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/event", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/BUILD index 6f4dfec1e..075af16a0 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/event/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -26,7 +26,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/event/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/event:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/storage.go index 8c3639aca..21fa08b3b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/storage.go @@ -21,7 +21,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/event" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/storage_test.go index 3410c9d2d..b0d88372f 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/event/storage/storage_test.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/event/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/event/strategy.go index e70518af0..0777e387f 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/event/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/event/strategy.go @@ -28,8 +28,9 @@ import ( "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) type eventStrategy struct { @@ -39,7 +40,7 @@ type eventStrategy struct { // Strategy is the default logic that pplies when creating and updating // Event objects via the REST API. -var Strategy = eventStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = eventStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} func (eventStrategy) DefaultGarbageCollectionPolicy() rest.GarbageCollectionPolicy { return rest.Unsupported diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/event/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/event/strategy_test.go index be78b5aa0..e95df8a0f 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/event/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/event/strategy_test.go @@ -23,8 +23,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" // install all api groups for testing _ "k8s.io/kubernetes/pkg/api/testapi" @@ -54,7 +55,7 @@ func TestGetAttrs(t *testing.T) { Name: "foo", Namespace: "baz", UID: "long uid string", - APIVersion: api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + APIVersion: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), ResourceVersion: "0", FieldPath: "", }, @@ -70,7 +71,7 @@ func TestGetAttrs(t *testing.T) { "involvedObject.name": "foo", "involvedObject.namespace": "baz", "involvedObject.uid": "long uid string", - "involvedObject.apiVersion": api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + "involvedObject.apiVersion": legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "involvedObject.resourceVersion": "0", "involvedObject.fieldPath": "", "reason": "ForTesting", @@ -85,7 +86,7 @@ func TestGetAttrs(t *testing.T) { func TestSelectableFieldLabelConversions(t *testing.T) { fset := EventToSelectableFields(&api.Event{}) apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "Event", fset, nil, diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/BUILD index cad4a09c1..303471f79 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/BUILD @@ -13,8 +13,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/limitrange", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/BUILD index 361531cca..e00e18c4c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/limitrange/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -29,7 +29,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/limitrange/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/limitrange:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/storage.go index b0462387e..adb60f252 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/storage.go @@ -21,7 +21,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/limitrange" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/storage_test.go index 403a3dfec..868835784 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/storage/storage_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/strategy.go index 25b9f1413..b4a55075b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/limitrange/strategy.go @@ -22,8 +22,9 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) type limitrangeStrategy struct { @@ -33,7 +34,7 @@ type limitrangeStrategy struct { // Strategy is the default logic that applies when creating and updating // LimitRange objects via the REST API. -var Strategy = limitrangeStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = limitrangeStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} func (limitrangeStrategy) NamespaceScoped() bool { return true diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/BUILD index 7799607f7..d9c439220 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/BUILD @@ -15,8 +15,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/namespace", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", @@ -38,9 +39,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/namespace", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/registry.go index 78bb72321..cbd470d15 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/registry.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Registry is an interface implemented by things that know how to store Namespace objects. @@ -30,8 +30,8 @@ type Registry interface { ListNamespaces(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*api.NamespaceList, error) WatchNamespaces(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) GetNamespace(ctx genericapirequest.Context, namespaceID string, options *metav1.GetOptions) (*api.Namespace, error) - CreateNamespace(ctx genericapirequest.Context, namespace *api.Namespace) error - UpdateNamespace(ctx genericapirequest.Context, namespace *api.Namespace) error + CreateNamespace(ctx genericapirequest.Context, namespace *api.Namespace, createValidation rest.ValidateObjectFunc) error + UpdateNamespace(ctx genericapirequest.Context, namespace *api.Namespace, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error DeleteNamespace(ctx genericapirequest.Context, namespaceID string) error } @@ -66,13 +66,13 @@ func (s *storage) GetNamespace(ctx genericapirequest.Context, namespaceName stri return obj.(*api.Namespace), nil } -func (s *storage) CreateNamespace(ctx genericapirequest.Context, namespace *api.Namespace) error { - _, err := s.Create(ctx, namespace, false) +func (s *storage) CreateNamespace(ctx genericapirequest.Context, namespace *api.Namespace, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, namespace, createValidation, false) return err } -func (s *storage) UpdateNamespace(ctx genericapirequest.Context, namespace *api.Namespace) error { - _, _, err := s.Update(ctx, namespace.Name, rest.DefaultUpdatedObjectInfo(namespace)) +func (s *storage) UpdateNamespace(ctx genericapirequest.Context, namespace *api.Namespace, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, namespace.Name, rest.DefaultUpdatedObjectInfo(namespace), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/BUILD index b21c6fa53..4699138d7 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/BUILD @@ -12,13 +12,14 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/namespace/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/etcd/testing:go_default_library", ], ) @@ -28,7 +29,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/namespace/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/namespace:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/storage.go index 05c6e1801..faa099a95 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/storage.go @@ -30,7 +30,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage" storageerr "k8s.io/apiserver/pkg/storage/errors" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/namespace" ) @@ -89,12 +89,12 @@ func (r *REST) List(ctx genericapirequest.Context, options *metainternalversion. return r.store.List(ctx, options) } -func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { - return r.store.Create(ctx, obj, includeUninitialized) +func (r *REST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { + return r.store.Create(ctx, obj, createValidation, includeUninitialized) } -func (r *REST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *REST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } func (r *REST) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { @@ -219,8 +219,8 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } func (r *FinalizeREST) New() runtime.Object { @@ -228,6 +228,6 @@ func (r *FinalizeREST) New() runtime.Object { } // Update alters the status finalizers subset of an object. -func (r *FinalizeREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *FinalizeREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/storage_test.go index fdc57efe2..8a5fdba4e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/storage/storage_test.go @@ -24,8 +24,9 @@ import ( "k8s.io/apimachinery/pkg/labels" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/generic" + "k8s.io/apiserver/pkg/registry/rest" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -67,7 +68,7 @@ func TestCreateSetsFields(t *testing.T) { defer storage.store.DestroyFunc() namespace := validNewNamespace() ctx := genericapirequest.NewContext() - _, err := storage.Create(ctx, namespace, false) + _, err := storage.Create(ctx, namespace, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/strategy.go index e0d05b18f..53a139e52 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/strategy.go @@ -27,8 +27,9 @@ import ( "k8s.io/apiserver/pkg/registry/generic" apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // namespaceStrategy implements behavior for Namespaces @@ -39,7 +40,7 @@ type namespaceStrategy struct { // Strategy is the default logic that applies when creating and updating Namespace // objects via the REST API. -var Strategy = namespaceStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = namespaceStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped is false for namespaces. func (namespaceStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/strategy_test.go index 8e3dbc3e8..9ebac3133 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/namespace/strategy_test.go @@ -21,8 +21,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" // install all api groups for testing _ "k8s.io/kubernetes/pkg/api/testapi" @@ -138,7 +139,7 @@ func TestNamespaceFinalizeStrategy(t *testing.T) { func TestSelectableFieldLabelConversions(t *testing.T) { apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "Namespace", NamespaceToSelectableFields(&api.Namespace{}), map[string]string{"name": "metadata.name"}, diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/node/BUILD index 5c932442d..ad3fb4995 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/BUILD @@ -15,8 +15,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/node", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet/client:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -44,9 +45,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/node", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/core/node/registry.go index 165cb6476..e4476ded4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/registry.go @@ -22,14 +22,14 @@ import ( "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Registry is an interface for things that know how to store node. type Registry interface { ListNodes(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*api.NodeList, error) - CreateNode(ctx genericapirequest.Context, node *api.Node) error - UpdateNode(ctx genericapirequest.Context, node *api.Node) error + CreateNode(ctx genericapirequest.Context, node *api.Node, createValidation rest.ValidateObjectFunc) error + UpdateNode(ctx genericapirequest.Context, node *api.Node, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error GetNode(ctx genericapirequest.Context, nodeID string, options *metav1.GetOptions) (*api.Node, error) DeleteNode(ctx genericapirequest.Context, nodeID string) error WatchNodes(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) @@ -55,13 +55,13 @@ func (s *storage) ListNodes(ctx genericapirequest.Context, options *metainternal return obj.(*api.NodeList), nil } -func (s *storage) CreateNode(ctx genericapirequest.Context, node *api.Node) error { - _, err := s.Create(ctx, node, false) +func (s *storage) CreateNode(ctx genericapirequest.Context, node *api.Node, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, node, createValidation, false) return err } -func (s *storage) UpdateNode(ctx genericapirequest.Context, node *api.Node) error { - _, _, err := s.Update(ctx, node.Name, rest.DefaultUpdatedObjectInfo(node)) +func (s *storage) UpdateNode(ctx genericapirequest.Context, node *api.Node, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, node.Name, rest.DefaultUpdatedObjectInfo(node), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/node/rest/BUILD index 94d3f9199..1425ee920 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["proxy.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/node/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/capabilities:go_default_library", "//pkg/kubelet/client:go_default_library", "//pkg/registry/core/node:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/rest/proxy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/node/rest/proxy.go index 61356d97b..b314617f4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/rest/proxy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/rest/proxy.go @@ -27,7 +27,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/registry/core/node" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/BUILD index 8c521581f..41d3f227e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/node/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/client:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -30,8 +30,8 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/node/storage", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/kubelet/client:go_default_library", "//pkg/printers:go_default_library", "//pkg/printers/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/storage.go index fcf5d237a..a61e57588 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/storage.go @@ -28,8 +28,8 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/printers" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" @@ -68,8 +68,8 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } // NewStorage returns a NodeStorage object that will work against nodes. @@ -112,7 +112,7 @@ func NewStorage(optsGetter generic.RESTOptionsGetter, kubeletClientConfig client } // TODO: Remove the conversion. Consider only return the NodeAddresses externalNode := &v1.Node{} - err = k8s_api_v1.Convert_api_Node_To_v1_Node(node, externalNode, nil) + err = k8s_api_v1.Convert_core_Node_To_v1_Node(node, externalNode, nil) if err != nil { return nil, fmt.Errorf("failed to convert to v1.Node: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/storage_test.go index e9ee3da6d..50ba810e6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/storage/storage_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy.go index 9b959bb7b..4653b3f44 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy.go @@ -35,8 +35,9 @@ import ( pkgstorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/client" ) @@ -49,7 +50,7 @@ type nodeStrategy struct { // Nodes is the default logic that applies when creating and updating Node // objects. -var Strategy = nodeStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = nodeStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped is false for nodes. func (nodeStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy_test.go index ec740efdc..c32da10bb 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy_test.go @@ -21,8 +21,9 @@ import ( "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" // install all api groups for testing _ "k8s.io/kubernetes/pkg/api/testapi" @@ -51,7 +52,7 @@ func TestMatchNode(t *testing.T) { func TestSelectableFieldLabelConversions(t *testing.T) { apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "Node", NodeToSelectableFields(&api.Node{}), nil, diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/BUILD index 9d518e0c0..eefda27f7 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/BUILD @@ -14,8 +14,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/persistentvolume", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/volume/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", @@ -34,9 +35,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/persistentvolume", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", + "//pkg/apis/core:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/BUILD index d7e70a3b3..76edbdfb6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -33,7 +33,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/persistentvolume:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/storage.go index 84fd25779..b8f7948f9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/storage.go @@ -23,7 +23,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/persistentvolume" ) @@ -78,6 +78,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/storage_test.go index bc98bbe09..a40926653 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/storage/storage_test.go @@ -30,7 +30,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -187,7 +187,7 @@ func TestUpdateStatus(t *testing.T) { }, } - _, _, err = statusStorage.Update(ctx, pvIn.Name, rest.DefaultUpdatedObjectInfo(pvIn)) + _, _, err = statusStorage.Update(ctx, pvIn.Name, rest.DefaultUpdatedObjectInfo(pvIn), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatalf("Unexpected error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/strategy.go index 33dfd905f..924baabe1 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/strategy.go @@ -27,8 +27,9 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" volumevalidation "k8s.io/kubernetes/pkg/volume/validation" ) @@ -40,7 +41,7 @@ type persistentvolumeStrategy struct { // Strategy is the default logic that applies when creating and updating PersistentVolume // objects via the REST API. -var Strategy = persistentvolumeStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = persistentvolumeStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} func (persistentvolumeStrategy) NamespaceScoped() bool { return false diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/strategy_test.go index 1bec01dac..3c5fbb7d9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolume/strategy_test.go @@ -19,8 +19,9 @@ package persistentvolume import ( "testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" // install all api groups for testing _ "k8s.io/kubernetes/pkg/api/testapi" @@ -28,7 +29,7 @@ import ( func TestSelectableFieldLabelConversions(t *testing.T) { apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "PersistentVolume", PersistentVolumeToSelectableFields(&api.PersistentVolume{}), map[string]string{"name": "metadata.name"}, diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/BUILD index a8d8e1e38..cd9b8110b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/BUILD @@ -14,8 +14,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -33,9 +34,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", + "//pkg/apis/core:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/BUILD index 45a0f4745..078c72d0e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -33,7 +33,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/persistentvolumeclaim:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/storage.go index 544ac1cf6..c361d59a4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/storage.go @@ -23,7 +23,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim" ) @@ -78,6 +78,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/storage_test.go index 916042829..4962f5f41 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/storage/storage_test.go @@ -30,7 +30,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -178,7 +178,7 @@ func TestUpdateStatus(t *testing.T) { }, } - _, _, err = statusStorage.Update(ctx, pvc.Name, rest.DefaultUpdatedObjectInfo(pvc)) + _, _, err = statusStorage.Update(ctx, pvc.Name, rest.DefaultUpdatedObjectInfo(pvc), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatalf("Unexpected error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/strategy.go index c653d505c..1d9f3be68 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/strategy.go @@ -27,8 +27,9 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // persistentvolumeclaimStrategy implements behavior for PersistentVolumeClaim objects @@ -39,7 +40,7 @@ type persistentvolumeclaimStrategy struct { // Strategy is the default logic that applies when creating and updating PersistentVolumeClaim // objects via the REST API. -var Strategy = persistentvolumeclaimStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = persistentvolumeclaimStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} func (persistentvolumeclaimStrategy) NamespaceScoped() bool { return true diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/strategy_test.go index 90824c4db..ae0ef9970 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim/strategy_test.go @@ -19,8 +19,9 @@ package persistentvolumeclaim import ( "testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" // install all api groups for testing _ "k8s.io/kubernetes/pkg/api/testapi" @@ -28,7 +29,7 @@ import ( func TestSelectableFieldLabelConversions(t *testing.T) { apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "PersistentVolumeClaim", PersistentVolumeClaimToSelectableFields(&api.PersistentVolumeClaim{}), map[string]string{"name": "metadata.name"}, diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/BUILD index 5104ecf4a..cf35e0ba5 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/BUILD @@ -14,10 +14,11 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/pod", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper/qos:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper/qos:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/kubelet/client:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", @@ -44,9 +45,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/pod", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/client:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/BUILD index 71a13dc19..122911086 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/BUILD @@ -14,8 +14,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/pod/rest", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/capabilities:go_default_library", "//pkg/kubelet/client:go_default_library", "//pkg/registry/core/pod:go_default_library", @@ -38,7 +38,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/pod/rest", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/log.go b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/log.go index cb637257a..e33f2a7fe 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/log.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/log.go @@ -25,8 +25,8 @@ import ( genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" genericrest "k8s.io/apiserver/pkg/registry/generic/rest" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/registry/core/pod" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/log_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/log_test.go index e81197216..2b58ee258 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/log_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/log_test.go @@ -23,7 +23,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/subresources.go b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/subresources.go index b152688a1..2df827976 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/subresources.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/rest/subresources.go @@ -29,7 +29,7 @@ import ( genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/registry/core/pod" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/BUILD index 79246a4d2..3284982eb 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/pod/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//pkg/securitycontext:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", @@ -45,9 +45,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/pod/storage", deps = [ - "//pkg/api:go_default_library", "//pkg/api/pod:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/apis/policy:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/policy/internalversion:go_default_library", "//pkg/kubelet/client:go_default_library", @@ -60,6 +60,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/eviction.go b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/eviction.go index 36b97350f..ff03d96dd 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/eviction.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/eviction.go @@ -24,12 +24,13 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/wait" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/client-go/util/retry" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/policy" policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion" ) @@ -64,6 +65,12 @@ type EvictionREST struct { } var _ = rest.Creater(&EvictionREST{}) +var _ = rest.GroupVersionKindProvider(&EvictionREST{}) + +// GroupVersionKind specifies a particular GroupVersionKind to discovery +func (r *EvictionREST) GroupVersionKind(containingGV schema.GroupVersion) schema.GroupVersionKind { + return schema.GroupVersionKind{Group: "policy", Version: "v1beta1", Kind: "Eviction"} +} // New creates a new eviction resource func (r *EvictionREST) New() runtime.Object { @@ -71,7 +78,7 @@ func (r *EvictionREST) New() runtime.Object { } // Create attempts to create a new eviction. That is, it tries to evict a pod. -func (r *EvictionREST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (r *EvictionREST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { eviction := obj.(*policy.Eviction) obj, err := r.store.Get(ctx, eviction.Name, &metav1.GetOptions{}) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/storage.go index 1416e50b3..129fd1a43 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/storage.go @@ -30,9 +30,9 @@ import ( "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage" storeerr "k8s.io/apiserver/pkg/storage/errors" - "k8s.io/kubernetes/pkg/api" podutil "k8s.io/kubernetes/pkg/api/pod" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion" "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/printers" @@ -135,7 +135,7 @@ func (r *BindingREST) New() runtime.Object { var _ = rest.Creater(&BindingREST{}) // Create ensures a pod is bound to a specific host. -func (r *BindingREST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (out runtime.Object, err error) { +func (r *BindingREST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (out runtime.Object, err error) { binding := obj.(*api.Binding) // TODO: move me to a binding strategy @@ -212,6 +212,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/storage_test.go index e76275c31..574a29996 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/storage/storage_test.go @@ -40,7 +40,7 @@ import ( etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" utilfeature "k8s.io/apiserver/pkg/util/feature" utilfeaturetesting "k8s.io/apiserver/pkg/util/feature/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" "k8s.io/kubernetes/pkg/securitycontext" ) @@ -188,7 +188,7 @@ func TestIgnoreDeleteNotFound(t *testing.T) { } // create pod - _, err = registry.Create(testContext, pod, false) + _, err = registry.Create(testContext, pod, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -225,7 +225,7 @@ func TestCreateSetsFields(t *testing.T) { defer server.Terminate(t) defer storage.Store.DestroyFunc() pod := validNewPod() - _, err := storage.Create(genericapirequest.NewDefaultContext(), pod, false) + _, err := storage.Create(genericapirequest.NewDefaultContext(), pod, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -489,7 +489,7 @@ func TestEtcdCreate(t *testing.T) { defer server.Terminate(t) defer storage.Store.DestroyFunc() ctx := genericapirequest.NewDefaultContext() - _, err := storage.Create(ctx, validNewPod(), false) + _, err := storage.Create(ctx, validNewPod(), rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -498,7 +498,7 @@ func TestEtcdCreate(t *testing.T) { _, err = bindingStorage.Create(ctx, &api.Binding{ ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo"}, Target: api.ObjectReference{Name: "machine"}, - }, false) + }, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -524,7 +524,7 @@ func TestEtcdCreateBindingNoPod(t *testing.T) { _, err := bindingStorage.Create(ctx, &api.Binding{ ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo"}, Target: api.ObjectReference{Name: "machine"}, - }, false) + }, rest.ValidateAllObjectFunc, false) if err == nil { t.Fatalf("Expected not-found-error but got nothing") } @@ -547,7 +547,7 @@ func TestEtcdCreateFailsWithoutNamespace(t *testing.T) { defer storage.Store.DestroyFunc() pod := validNewPod() pod.Namespace = "" - _, err := storage.Create(genericapirequest.NewContext(), pod, false) + _, err := storage.Create(genericapirequest.NewContext(), pod, rest.ValidateAllObjectFunc, false) // Accept "namespace" or "Namespace". if err == nil || !strings.Contains(err.Error(), "amespace") { t.Fatalf("expected error that namespace was missing from context, got: %v", err) @@ -559,7 +559,7 @@ func TestEtcdCreateWithContainersNotFound(t *testing.T) { defer server.Terminate(t) defer storage.Store.DestroyFunc() ctx := genericapirequest.NewDefaultContext() - _, err := storage.Create(ctx, validNewPod(), false) + _, err := storage.Create(ctx, validNewPod(), rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -572,7 +572,7 @@ func TestEtcdCreateWithContainersNotFound(t *testing.T) { Annotations: map[string]string{"label1": "value1"}, }, Target: api.ObjectReference{Name: "machine"}, - }, false) + }, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -594,7 +594,7 @@ func TestEtcdCreateWithConflict(t *testing.T) { defer storage.Store.DestroyFunc() ctx := genericapirequest.NewDefaultContext() - _, err := storage.Create(ctx, validNewPod(), false) + _, err := storage.Create(ctx, validNewPod(), rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -608,12 +608,12 @@ func TestEtcdCreateWithConflict(t *testing.T) { }, Target: api.ObjectReference{Name: "machine"}, } - _, err = bindingStorage.Create(ctx, &binding, false) + _, err = bindingStorage.Create(ctx, &binding, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } - _, err = bindingStorage.Create(ctx, &binding, false) + _, err = bindingStorage.Create(ctx, &binding, rest.ValidateAllObjectFunc, false) if err == nil || !errors.IsConflict(err) { t.Fatalf("expected resource conflict error, not: %v", err) } @@ -624,7 +624,7 @@ func TestEtcdCreateWithExistingContainers(t *testing.T) { defer server.Terminate(t) defer storage.Store.DestroyFunc() ctx := genericapirequest.NewDefaultContext() - _, err := storage.Create(ctx, validNewPod(), false) + _, err := storage.Create(ctx, validNewPod(), rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -633,7 +633,7 @@ func TestEtcdCreateWithExistingContainers(t *testing.T) { _, err = bindingStorage.Create(ctx, &api.Binding{ ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceDefault, Name: "foo"}, Target: api.ObjectReference{Name: "machine"}, - }, false) + }, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -683,10 +683,10 @@ func TestEtcdCreateBinding(t *testing.T) { for k, test := range testCases { storage, bindingStorage, _, server := newStorage(t) - if _, err := storage.Create(ctx, validNewPod(), false); err != nil { + if _, err := storage.Create(ctx, validNewPod(), rest.ValidateAllObjectFunc, false); err != nil { t.Fatalf("%s: unexpected error: %v", k, err) } - if _, err := bindingStorage.Create(ctx, &test.binding, false); !test.errOK(err) { + if _, err := bindingStorage.Create(ctx, &test.binding, rest.ValidateAllObjectFunc, false); !test.errOK(err) { t.Errorf("%s: unexpected error: %v", k, err) } else if err == nil { // If bind succeeded, verify Host field in pod's Spec. @@ -712,7 +712,7 @@ func TestEtcdUpdateUninitialized(t *testing.T) { pod := validNewPod() // add pending initializers to the pod pod.ObjectMeta.Initializers = &metav1.Initializers{Pending: []metav1.Initializer{{Name: "init.k8s.io"}}} - if _, err := storage.Create(ctx, pod, true); err != nil { + if _, err := storage.Create(ctx, pod, rest.ValidateAllObjectFunc, true); err != nil { t.Fatalf("unexpected error: %v", err) } podIn := *pod @@ -727,7 +727,7 @@ func TestEtcdUpdateUninitialized(t *testing.T) { }) podIn.ObjectMeta.Initializers = nil - _, _, err := storage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(&podIn)) + _, _, err := storage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(&podIn), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -754,7 +754,7 @@ func TestEtcdStatusUpdateUninitialized(t *testing.T) { pod := validNewPod() // add pending initializers to the pod pod.ObjectMeta.Initializers = &metav1.Initializers{Pending: []metav1.Initializer{{Name: "init.k8s.io"}}} - if _, err := storage.Create(ctx, pod, true); err != nil { + if _, err := storage.Create(ctx, pod, rest.ValidateAllObjectFunc, true); err != nil { t.Fatalf("unexpected error: %v", err) } podIn := *pod @@ -762,7 +762,7 @@ func TestEtcdStatusUpdateUninitialized(t *testing.T) { podIn.Status.Phase = api.PodRunning podIn.ObjectMeta.Initializers = nil - _, _, err := statusStorage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(&podIn)) + _, _, err := statusStorage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(&podIn), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) expected := "Forbidden: must not update status when the object is uninitialized" if err == nil { t.Fatalf("Unexpected no err, expected %q", expected) @@ -778,12 +778,12 @@ func TestEtcdUpdateNotScheduled(t *testing.T) { defer storage.Store.DestroyFunc() ctx := genericapirequest.NewDefaultContext() - if _, err := storage.Create(ctx, validNewPod(), false); err != nil { + if _, err := storage.Create(ctx, validNewPod(), rest.ValidateAllObjectFunc, false); err != nil { t.Fatalf("unexpected error: %v", err) } podIn := validChangedPod() - _, _, err := storage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(podIn)) + _, _, err := storage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(podIn), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -853,7 +853,7 @@ func TestEtcdUpdateScheduled(t *testing.T) { SchedulerName: api.DefaultSchedulerName, }, } - _, _, err = storage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(&podIn)) + _, _, err = storage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(&podIn), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -937,7 +937,7 @@ func TestEtcdUpdateStatus(t *testing.T) { expected.Labels = podIn.Labels expected.Status = podIn.Status - _, _, err = statusStorage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(&podIn)) + _, _, err = statusStorage.Update(ctx, podIn.Name, rest.DefaultUpdatedObjectInfo(&podIn), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatalf("Unexpected error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy.go index bb6e0afb1..5cd0eb03c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy.go @@ -41,10 +41,11 @@ import ( "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper/qos" + "k8s.io/kubernetes/pkg/api/legacyscheme" podutil "k8s.io/kubernetes/pkg/api/pod" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper/qos" + "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/kubelet/client" ) @@ -56,7 +57,7 @@ type podStrategy struct { // Strategy is the default logic that applies when creating and updating Pod // objects via the REST API. -var Strategy = podStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = podStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped is true for pods. func (podStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy_test.go index 4d602cb06..8d10e6a6e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy_test.go @@ -29,8 +29,9 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubelet/client" // install all api groups for testing @@ -361,7 +362,7 @@ func TestCheckLogLocation(t *testing.T) { func TestSelectableFieldLabelConversions(t *testing.T) { apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "Pod", PodToSelectableFields(&api.Pod{}), nil, diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/BUILD index adbf6de90..5841503ea 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/BUILD @@ -13,9 +13,10 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/podtemplate", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/BUILD index 5a3e812ec..8c4553aee 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/podtemplate/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", @@ -28,7 +28,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/podtemplate/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/printers:go_default_library", "//pkg/printers/internalversion:go_default_library", "//pkg/printers/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/storage.go index 5c35ac1bd..1767186b9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/storage.go @@ -20,7 +20,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/printers" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" printerstorage "k8s.io/kubernetes/pkg/printers/storage" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/storage_test.go index 432d88e08..f70ce48d4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/storage/storage_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/strategy.go index 30ff59955..0f19250d9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/podtemplate/strategy.go @@ -21,9 +21,10 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/pod" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // podTemplateStrategy implements behavior for PodTemplates @@ -34,7 +35,7 @@ type podTemplateStrategy struct { // Strategy is the default logic that applies when creating and updating PodTemplate // objects via the REST API. -var Strategy = podTemplateStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = podTemplateStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped is true for pod templates. func (podTemplateStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/rangeallocation/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/rangeallocation/BUILD index 6f2289d4f..8b55dd09d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/rangeallocation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/rangeallocation/BUILD @@ -12,7 +12,7 @@ go_library( "registry.go", ], importpath = "k8s.io/kubernetes/pkg/registry/core/rangeallocation", - deps = ["//pkg/api:go_default_library"], + deps = ["//pkg/apis/core:go_default_library"], ) filegroup( diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/rangeallocation/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/core/rangeallocation/registry.go index 5fd3aa3af..d67b52f86 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/rangeallocation/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/rangeallocation/registry.go @@ -17,7 +17,7 @@ limitations under the License. package rangeallocation import ( - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // RangeRegistry is a registry that can retrieve or persist a RangeAllocation object. diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/BUILD index 086572087..931c1bb28 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/BUILD @@ -15,10 +15,11 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/replicationcontroller", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -41,9 +42,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/replicationcontroller", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/registry.go index 41a438c4e..199981db0 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/registry.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Registry is an interface for things that know how to store ReplicationControllers. @@ -34,8 +34,8 @@ type Registry interface { ListControllers(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*api.ReplicationControllerList, error) WatchControllers(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) GetController(ctx genericapirequest.Context, controllerID string, options *metav1.GetOptions) (*api.ReplicationController, error) - CreateController(ctx genericapirequest.Context, controller *api.ReplicationController) (*api.ReplicationController, error) - UpdateController(ctx genericapirequest.Context, controller *api.ReplicationController) (*api.ReplicationController, error) + CreateController(ctx genericapirequest.Context, controller *api.ReplicationController, createValidation rest.ValidateObjectFunc) (*api.ReplicationController, error) + UpdateController(ctx genericapirequest.Context, controller *api.ReplicationController, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*api.ReplicationController, error) DeleteController(ctx genericapirequest.Context, controllerID string) error } @@ -73,16 +73,16 @@ func (s *storage) GetController(ctx genericapirequest.Context, controllerID stri return obj.(*api.ReplicationController), nil } -func (s *storage) CreateController(ctx genericapirequest.Context, controller *api.ReplicationController) (*api.ReplicationController, error) { - obj, err := s.Create(ctx, controller, false) +func (s *storage) CreateController(ctx genericapirequest.Context, controller *api.ReplicationController, createValidation rest.ValidateObjectFunc) (*api.ReplicationController, error) { + obj, err := s.Create(ctx, controller, createValidation, false) if err != nil { return nil, err } return obj.(*api.ReplicationController), nil } -func (s *storage) UpdateController(ctx genericapirequest.Context, controller *api.ReplicationController) (*api.ReplicationController, error) { - obj, _, err := s.Update(ctx, controller.Name, rest.DefaultUpdatedObjectInfo(controller)) +func (s *storage) UpdateController(ctx genericapirequest.Context, controller *api.ReplicationController, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*api.ReplicationController, error) { + obj, _, err := s.Update(ctx, controller.Name, rest.DefaultUpdatedObjectInfo(controller), createValidation, updateValidation) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/BUILD index 7dde8812a..513924edf 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/BUILD @@ -12,8 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -34,9 +34,11 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/autoscaling/v1:go_default_library", "//pkg/apis/autoscaling/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/extensions/v1beta1:go_default_library", "//pkg/printers:go_default_library", "//pkg/printers/internalversion:go_default_library", "//pkg/printers/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/storage.go index 65f121469..ead95842d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/storage.go @@ -30,9 +30,11 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/autoscaling" + autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1" "k8s.io/kubernetes/pkg/apis/autoscaling/validation" + api "k8s.io/kubernetes/pkg/apis/core" + extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" "k8s.io/kubernetes/pkg/printers" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" printerstorage "k8s.io/kubernetes/pkg/printers/storage" @@ -117,8 +119,8 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } type ScaleREST struct { @@ -129,8 +131,13 @@ type ScaleREST struct { var _ = rest.Patcher(&ScaleREST{}) var _ = rest.GroupVersionKindProvider(&ScaleREST{}) -func (r *ScaleREST) GroupVersionKind() schema.GroupVersionKind { - return schema.GroupVersionKind{Group: "autoscaling", Version: "v1", Kind: "Scale"} +func (r *ScaleREST) GroupVersionKind(containingGV schema.GroupVersion) schema.GroupVersionKind { + switch containingGV { + case extensionsv1beta1.SchemeGroupVersion: + return extensionsv1beta1.SchemeGroupVersion.WithKind("Scale") + default: + return autoscalingv1.SchemeGroupVersion.WithKind("Scale") + } } // New creates a new Scale object @@ -146,13 +153,14 @@ func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *met return scaleFromRC(rc), nil } -func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { rc, err := r.registry.GetController(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, false, errors.NewNotFound(autoscaling.Resource("replicationcontrollers/scale"), name) } oldScale := scaleFromRC(rc) + // TODO: should this pass validation? obj, err := objInfo.UpdatedObject(ctx, oldScale) if err != nil { return nil, false, err @@ -172,7 +180,7 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r rc.Spec.Replicas = scale.Spec.Replicas rc.ResourceVersion = scale.ResourceVersion - rc, err = r.registry.UpdateController(ctx, rc) + rc, err = r.registry.UpdateController(ctx, rc, createValidation, updateValidation) if err != nil { return nil, false, err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/storage_test.go index c09e47055..102c24d6e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage/storage_test.go @@ -30,8 +30,8 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -55,7 +55,7 @@ func newStorage(t *testing.T) (ControllerStorage, *etcdtesting.EtcdTestServer) { // createController is a helper function that returns a controller with the updated resource version. func createController(storage *REST, rc api.ReplicationController, t *testing.T) (api.ReplicationController, error) { ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), rc.Namespace) - obj, err := storage.Create(ctx, &rc, false) + obj, err := storage.Create(ctx, &rc, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Failed to create controller, %v", err) } @@ -173,7 +173,7 @@ func TestGenerationNumber(t *testing.T) { // Updates to spec should increment the generation number controller.Spec.Replicas += 1 - storage.Controller.Update(ctx, controller.Name, rest.DefaultUpdatedObjectInfo(controller)) + storage.Controller.Update(ctx, controller.Name, rest.DefaultUpdatedObjectInfo(controller), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -188,7 +188,7 @@ func TestGenerationNumber(t *testing.T) { // Updates to status should not increment either spec or status generation numbers controller.Status.Replicas += 1 - storage.Controller.Update(ctx, controller.Name, rest.DefaultUpdatedObjectInfo(controller)) + storage.Controller.Update(ctx, controller.Name, rest.DefaultUpdatedObjectInfo(controller), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -308,7 +308,7 @@ func TestScaleUpdate(t *testing.T) { }, } - if _, _, err := storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil { + if _, _, err := storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("error updating scale %v: %v", update, err) } obj, err := storage.Scale.Get(ctx, name, &metav1.GetOptions{}) @@ -323,7 +323,7 @@ func TestScaleUpdate(t *testing.T) { update.ResourceVersion = rc.ResourceVersion update.Spec.Replicas = 15 - if _, _, err = storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil && !errors.IsConflict(err) { + if _, _, err = storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil && !errors.IsConflict(err) { t.Fatalf("unexpected error, expecting an update conflict but got %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/strategy.go index 2047afb6d..8d2cb79d5 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/strategy.go @@ -33,10 +33,11 @@ import ( "k8s.io/apiserver/pkg/registry/rest" apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/pod" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // rcStrategy implements verification logic for Replication Controllers. @@ -46,7 +47,7 @@ type rcStrategy struct { } // Strategy is the default logic that applies when creating and updating Replication Controller objects. -var Strategy = rcStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = rcStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // DefaultGarbageCollectionPolicy returns Orphan because that was the default // behavior before the server-side garbage collection was implemented. diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/strategy_test.go index 926a4cb13..1a89135ab 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/replicationcontroller/strategy_test.go @@ -22,8 +22,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" // install all api groups for testing _ "k8s.io/kubernetes/pkg/api/testapi" @@ -148,7 +149,7 @@ func TestControllerStatusStrategy(t *testing.T) { func TestSelectableFieldLabelConversions(t *testing.T) { apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "ReplicationController", ControllerToSelectableFields(&api.ReplicationController{}), nil, diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/BUILD index 1b3f58bdf..77150f2f2 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/BUILD @@ -14,8 +14,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/resourcequota", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", @@ -29,7 +30,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/resourcequota", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/BUILD index acc8d4103..0ca8b417b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/resourcequota/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -32,7 +32,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/resourcequota/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/resourcequota:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/storage.go index 76f8a8f6a..391cb17f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/storage.go @@ -23,7 +23,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/resourcequota" ) @@ -77,6 +77,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/storage_test.go index 13e5d44cb..f1da4b006 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/storage/storage_test.go @@ -29,7 +29,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -87,7 +87,7 @@ func TestCreateSetsFields(t *testing.T) { defer storage.Store.DestroyFunc() ctx := genericapirequest.NewDefaultContext() resourcequota := validNewResourceQuota() - _, err := storage.Create(genericapirequest.NewDefaultContext(), resourcequota, false) + _, err := storage.Create(genericapirequest.NewDefaultContext(), resourcequota, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -191,7 +191,7 @@ func TestUpdateStatus(t *testing.T) { }, } - _, _, err = status.Update(ctx, resourcequotaIn.Name, rest.DefaultUpdatedObjectInfo(resourcequotaIn)) + _, _, err = status.Update(ctx, resourcequotaIn.Name, rest.DefaultUpdatedObjectInfo(resourcequotaIn), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatalf("Unexpected error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/strategy.go index e9c26c009..eecfc59d9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/strategy.go @@ -21,8 +21,9 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // resourcequotaStrategy implements behavior for ResourceQuota objects @@ -33,7 +34,7 @@ type resourcequotaStrategy struct { // Strategy is the default logic that applies when creating and updating ResourceQuota // objects via the REST API. -var Strategy = resourcequotaStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = resourcequotaStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped is true for resourcequotas. func (resourcequotaStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/strategy_test.go index 6ec3816fc..c571c2a33 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/resourcequota/strategy_test.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestResourceQuotaStrategy(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/rest/BUILD index 9a8c92ed2..9e81ccda7 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/rest/BUILD @@ -23,7 +23,8 @@ go_library( srcs = ["storage_core.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/policy/internalversion:go_default_library", "//pkg/kubelet/client:go_default_library", "//pkg/master/ports:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/rest/storage_core.go b/vendor/k8s.io/kubernetes/pkg/registry/core/rest/storage_core.go index e46a7cf33..ad7a9a91a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/rest/storage_core.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/rest/storage_core.go @@ -35,7 +35,8 @@ import ( serverstorage "k8s.io/apiserver/pkg/server/storage" etcdutil "k8s.io/apiserver/pkg/storage/etcd/util" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/master/ports" @@ -90,21 +91,15 @@ type LegacyRESTStorage struct { func (c LegacyRESTStorageProvider) NewLegacyRESTStorage(restOptionsGetter generic.RESTOptionsGetter) (LegacyRESTStorage, genericapiserver.APIGroupInfo, error) { apiGroupInfo := genericapiserver.APIGroupInfo{ - GroupMeta: *api.Registry.GroupOrDie(api.GroupName), + GroupMeta: *legacyscheme.Registry.GroupOrDie(api.GroupName), VersionedResourcesStorageMap: map[string]map[string]rest.Storage{}, - Scheme: api.Scheme, - ParameterCodec: api.ParameterCodec, - NegotiatedSerializer: api.Codecs, - SubresourceGroupVersionKind: map[string]schema.GroupVersionKind{}, - } - if autoscalingGroupVersion := (schema.GroupVersion{Group: "autoscaling", Version: "v1"}); api.Registry.IsEnabledVersion(autoscalingGroupVersion) { - apiGroupInfo.SubresourceGroupVersionKind["replicationcontrollers/scale"] = autoscalingGroupVersion.WithKind("Scale") + Scheme: legacyscheme.Scheme, + ParameterCodec: legacyscheme.ParameterCodec, + NegotiatedSerializer: legacyscheme.Codecs, } var podDisruptionClient policyclient.PodDisruptionBudgetsGetter - if policyGroupVersion := (schema.GroupVersion{Group: "policy", Version: "v1beta1"}); api.Registry.IsEnabledVersion(policyGroupVersion) { - apiGroupInfo.SubresourceGroupVersionKind["pods/eviction"] = policyGroupVersion.WithKind("Eviction") - + if policyGroupVersion := (schema.GroupVersion{Group: "policy", Version: "v1beta1"}); legacyscheme.Registry.IsEnabledVersion(policyGroupVersion) { var err error podDisruptionClient, err = policyclient.NewForConfig(c.LoopbackClientConfig) if err != nil { @@ -223,10 +218,10 @@ func (c LegacyRESTStorageProvider) NewLegacyRESTStorage(restOptionsGetter generi "componentStatuses": componentstatus.NewStorage(componentStatusStorage{c.StorageFactory}.serversToValidate), } - if api.Registry.IsEnabledVersion(schema.GroupVersion{Group: "autoscaling", Version: "v1"}) { + if legacyscheme.Registry.IsEnabledVersion(schema.GroupVersion{Group: "autoscaling", Version: "v1"}) { restStorageMap["replicationControllers/scale"] = controllerStorage.Scale } - if api.Registry.IsEnabledVersion(schema.GroupVersion{Group: "policy", Version: "v1beta1"}) { + if legacyscheme.Registry.IsEnabledVersion(schema.GroupVersion{Group: "policy", Version: "v1beta1"}) { restStorageMap["pods/eviction"] = podStorage.Eviction } apiGroupInfo.VersionedResourcesStorageMap["v1"] = restStorageMap diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/BUILD index ad40dd5df..48332003e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/BUILD @@ -15,8 +15,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/secret", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -39,9 +40,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/secret", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", + "//pkg/apis/core: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/apiserver/pkg/endpoints/request:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/registry.go index a6d99683e..8d214d4f1 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/registry.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Registry is an interface implemented by things that know how to store Secret objects. @@ -30,8 +30,8 @@ type Registry interface { ListSecrets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*api.SecretList, error) WatchSecrets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) GetSecret(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*api.Secret, error) - CreateSecret(ctx genericapirequest.Context, Secret *api.Secret) (*api.Secret, error) - UpdateSecret(ctx genericapirequest.Context, Secret *api.Secret) (*api.Secret, error) + CreateSecret(ctx genericapirequest.Context, Secret *api.Secret, createValidation rest.ValidateObjectFunc) (*api.Secret, error) + UpdateSecret(ctx genericapirequest.Context, Secret *api.Secret, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*api.Secret, error) DeleteSecret(ctx genericapirequest.Context, name string) error } @@ -66,13 +66,13 @@ func (s *storage) GetSecret(ctx genericapirequest.Context, name string, options return obj.(*api.Secret), nil } -func (s *storage) CreateSecret(ctx genericapirequest.Context, secret *api.Secret) (*api.Secret, error) { - obj, err := s.Create(ctx, secret, false) +func (s *storage) CreateSecret(ctx genericapirequest.Context, secret *api.Secret, createValidation rest.ValidateObjectFunc) (*api.Secret, error) { + obj, err := s.Create(ctx, secret, createValidation, false) return obj.(*api.Secret), err } -func (s *storage) UpdateSecret(ctx genericapirequest.Context, secret *api.Secret) (*api.Secret, error) { - obj, _, err := s.Update(ctx, secret.Name, rest.DefaultUpdatedObjectInfo(secret)) +func (s *storage) UpdateSecret(ctx genericapirequest.Context, secret *api.Secret, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*api.Secret, error) { + obj, _, err := s.Update(ctx, secret.Name, rest.DefaultUpdatedObjectInfo(secret), createValidation, updateValidation) return obj.(*api.Secret), err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/BUILD index ee2c08ecc..ec91be84d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/secret/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", @@ -28,7 +28,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/secret/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/secret:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/storage.go index 9f70cad2f..13600daf0 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/storage.go @@ -20,7 +20,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/secret" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/storage_test.go index 1071ee414..847a4e702 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/storage/storage_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/strategy.go index 59150c640..fbdb05572 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/strategy.go @@ -29,8 +29,9 @@ import ( "k8s.io/apiserver/pkg/registry/rest" apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // strategy implements behavior for Secret objects @@ -41,7 +42,7 @@ type strategy struct { // Strategy is the default logic that applies when creating and updating Secret // objects via the REST API. -var Strategy = strategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = strategy{legacyscheme.Scheme, names.SimpleNameGenerator} var _ = rest.RESTCreateStrategy(Strategy) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/strategy_test.go index 1e284efa5..dda59ab1e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/secret/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/secret/strategy_test.go @@ -23,8 +23,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" apitesting "k8s.io/kubernetes/pkg/api/testing" + api "k8s.io/kubernetes/pkg/apis/core" // install all api groups for testing _ "k8s.io/kubernetes/pkg/api/testapi" @@ -106,7 +107,7 @@ func TestExportSecret(t *testing.T) { func TestSelectableFieldLabelConversions(t *testing.T) { apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), + legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), "Secret", SelectableFields(&api.Secret{}), nil, diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/service/BUILD index bb54bd7b8..ca6517abf 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/BUILD @@ -17,10 +17,11 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/service", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/service:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/capabilities:go_default_library", "//pkg/features:go_default_library", "//pkg/registry/core/endpoint:go_default_library", @@ -52,9 +53,9 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/service", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", "//pkg/api/service:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/features:go_default_library", "//pkg/registry/core/service/ipallocator:go_default_library", "//pkg/registry/core/service/portallocator:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/BUILD index 18a644791..18a175e63 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/service/allocator/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/service/allocator:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", @@ -26,7 +26,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/service/allocator/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/rangeallocation:go_default_library", "//pkg/registry/core/service/allocator:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", @@ -34,6 +34,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", + "//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/errors:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/storage.go index 7c4d53971..03f28431a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/storage.go @@ -25,10 +25,11 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/registry/generic" + "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/storage" storeerr "k8s.io/apiserver/pkg/storage/errors" "k8s.io/apiserver/pkg/storage/storagebackend" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/rangeallocation" "k8s.io/kubernetes/pkg/registry/core/service/allocator" @@ -61,7 +62,13 @@ var _ rangeallocation.RangeRegistry = &Etcd{} // NewEtcd returns an allocator that is backed by Etcd and can manage // persisting the snapshot state of allocation after each allocation is made. func NewEtcd(alloc allocator.Snapshottable, baseKey string, resource schema.GroupResource, config *storagebackend.Config) *Etcd { - storage, _ := generic.NewRawStorage(config) + storage, d := generic.NewRawStorage(config) + + // TODO : Remove RegisterStorageCleanup below when PR + // https://github.com/kubernetes/kubernetes/pull/50690 + // merges as that shuts down storage properly + registry.RegisterStorageCleanup(d) + return &Etcd{ alloc: alloc, storage: storage, diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/storage_test.go index 4936b35f4..a0f2cceb6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/allocator/storage/storage_test.go @@ -22,7 +22,7 @@ import ( etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/apiserver/pkg/storage/storagebackend" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/service/allocator" "k8s.io/kubernetes/pkg/registry/registrytest" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/BUILD index 36e61632b..17b5d4925 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["allocator.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/service/ipallocator", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/service/allocator:go_default_library", ], ) @@ -22,7 +22,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/service/ipallocator", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/allocator.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/allocator.go index e8c28bf37..b480418c2 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/allocator.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/allocator.go @@ -19,11 +19,10 @@ package ipallocator import ( "errors" "fmt" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/registry/core/service/allocator" "math/big" "net" - - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/registry/core/service/allocator" ) // Interface manages the allocation of IP addresses out of a range. Interface diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/allocator_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/allocator_test.go index 481a4d41b..fa29e4e17 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/allocator_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/allocator_test.go @@ -21,7 +21,7 @@ import ( "testing" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestAllocate(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/BUILD index a0723fa8a..b6a8f0a64 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/BUILD @@ -11,8 +11,8 @@ go_library( srcs = ["repair.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//pkg/registry/core/rangeallocation:go_default_library", "//pkg/registry/core/service/ipallocator:go_default_library", @@ -30,7 +30,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/registry/core/service/ipallocator:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/repair.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/repair.go index 7e13115f1..fa2cae7f3 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/repair.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/repair.go @@ -26,8 +26,8 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/util/retry" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/registry/core/rangeallocation" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/repair_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/repair_test.go index c784f04ce..51392b843 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/repair_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/controller/repair_test.go @@ -23,7 +23,7 @@ import ( "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/storage/BUILD index 303f8402c..e836d56a9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/service/ipallocator/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/service/allocator:go_default_library", "//pkg/registry/core/service/allocator/storage:go_default_library", "//pkg/registry/core/service/ipallocator:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/storage/storage_test.go index cd4e34c32..f70197d72 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/ipallocator/storage/storage_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apiserver/pkg/storage" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/apiserver/pkg/storage/storagebackend/factory" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/service/allocator" allocatorstore "k8s.io/kubernetes/pkg/registry/core/service/allocator/storage" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/BUILD index fe22e770b..4d038b33a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/service/portallocator", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/service/allocator:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", @@ -27,7 +27,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/service/portallocator", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/allocator.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/allocator.go index c73253f2d..c31f4b045 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/allocator.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/allocator.go @@ -21,7 +21,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/util/net" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/service/allocator" "github.com/golang/glog" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/allocator_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/allocator_test.go index fb3ea1f43..da393bc29 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/allocator_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/allocator_test.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestAllocate(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/BUILD index 6054b2de9..01408f6fb 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["repair.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//pkg/registry/core/rangeallocation:go_default_library", "//pkg/registry/core/service:go_default_library", @@ -31,7 +31,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/registry/core/service/portallocator:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/repair.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/repair.go index 25de25703..e02ca3ef1 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/repair.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/repair.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/util/retry" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/registry/core/rangeallocation" "k8s.io/kubernetes/pkg/registry/core/service" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/repair_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/repair_test.go index beb5a4cfd..a01160625 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/repair_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/portallocator/controller/repair_test.go @@ -23,7 +23,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/net" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" "k8s.io/kubernetes/pkg/registry/core/service/portallocator" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/proxy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/proxy.go index 03074de98..1956f276f 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/proxy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/proxy.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/proxy" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/capabilities" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/registry.go index d63922f1e..332d651e7 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/registry.go @@ -24,16 +24,16 @@ import ( "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Registry is an interface for things that know how to store services. type Registry interface { ListServices(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*api.ServiceList, error) - CreateService(ctx genericapirequest.Context, svc *api.Service) (*api.Service, error) + CreateService(ctx genericapirequest.Context, svc *api.Service, createValidation rest.ValidateObjectFunc) (*api.Service, error) GetService(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*api.Service, error) DeleteService(ctx genericapirequest.Context, name string) error - UpdateService(ctx genericapirequest.Context, svc *api.Service) (*api.Service, error) + UpdateService(ctx genericapirequest.Context, svc *api.Service, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*api.Service, error) WatchServices(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) ExportService(ctx genericapirequest.Context, name string, options metav1.ExportOptions) (*api.Service, error) } @@ -57,8 +57,8 @@ func (s *storage) ListServices(ctx genericapirequest.Context, options *metainter return obj.(*api.ServiceList), nil } -func (s *storage) CreateService(ctx genericapirequest.Context, svc *api.Service) (*api.Service, error) { - obj, err := s.Create(ctx, svc, false) +func (s *storage) CreateService(ctx genericapirequest.Context, svc *api.Service, createValidation rest.ValidateObjectFunc) (*api.Service, error) { + obj, err := s.Create(ctx, svc, createValidation, false) if err != nil { return nil, err } @@ -78,8 +78,8 @@ func (s *storage) DeleteService(ctx genericapirequest.Context, name string) erro return err } -func (s *storage) UpdateService(ctx genericapirequest.Context, svc *api.Service) (*api.Service, error) { - obj, _, err := s.Update(ctx, svc.Name, rest.DefaultUpdatedObjectInfo(svc)) +func (s *storage) UpdateService(ctx genericapirequest.Context, svc *api.Service, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*api.Service, error) { + obj, _, err := s.Update(ctx, svc.Name, rest.DefaultUpdatedObjectInfo(svc), createValidation, updateValidation) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/rest.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/rest.go index 3a353c344..689850c1b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/rest.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/rest.go @@ -36,10 +36,10 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" apiservice "k8s.io/kubernetes/pkg/api/service" - "k8s.io/kubernetes/pkg/api/validation" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" + "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/registry/core/endpoint" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" @@ -61,6 +61,16 @@ type REST struct { proxyTransport http.RoundTripper } +// ServiceNodePort includes protocol and port number of a service NodePort. +type ServiceNodePort struct { + // The IP protocol for this port. Supports "TCP" and "UDP". + Protocol api.Protocol + + // The port on each node on which this service is exposed. + // Default is to auto-allocate a port if the ServiceType of this Service requires one. + NodePort int32 +} + // NewStorage returns a new REST. func NewStorage(registry Registry, endpoints endpoint.Registry, serviceIPs ipallocator.Interface, serviceNodePorts portallocator.Interface, proxyTransport http.RoundTripper) *ServiceRest { @@ -88,7 +98,7 @@ func (rs *REST) Categories() []string { } // TODO: implement includeUninitialized by refactoring this to move to store -func (rs *REST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (rs *REST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { service := obj.(*api.Service) if err := rest.BeforeCreate(Strategy, ctx, obj); err != nil { @@ -133,7 +143,7 @@ func (rs *REST) Create(ctx genericapirequest.Context, obj runtime.Object, includ } } - out, err := rs.registry.CreateService(ctx, service) + out, err := rs.registry.CreateService(ctx, service, createValidation) if err != nil { err = rest.CheckGeneratedNameError(Strategy, err, service) } @@ -284,7 +294,7 @@ func (rs *REST) healthCheckNodePortUpdate(oldService, service *api.Service, node return true, nil } -func (rs *REST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (rs *REST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { oldService, err := rs.registry.GetService(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, false, err @@ -360,7 +370,7 @@ func (rs *REST) Update(ctx genericapirequest.Context, name string, objInfo rest. } } - out, err := rs.registry.UpdateService(ctx, service) + out, err := rs.registry.UpdateService(ctx, service, createValidation, updateValidation) if err == nil { el := nodePortOp.Commit() if el != nil { @@ -437,7 +447,7 @@ func (rs *REST) ResourceLocation(ctx genericapirequest.Context, id string) (*url // This is O(N), but we expect haystack to be small; // so small that we expect a linear search to be faster -func contains(haystack []int, needle int) bool { +func containsNumber(haystack []int, needle int) bool { for _, v := range haystack { if v == needle { return true @@ -446,6 +456,17 @@ func contains(haystack []int, needle int) bool { return false } +// This is O(N), but we expect serviceNodePorts to be small; +// so small that we expect a linear search to be faster +func containsNodePort(serviceNodePorts []ServiceNodePort, serviceNodePort ServiceNodePort) bool { + for _, snp := range serviceNodePorts { + if snp == serviceNodePort { + return true + } + } + return false +} + func CollectServiceNodePorts(service *api.Service) []int { servicePorts := []int{} for i := range service.Spec.Ports { @@ -569,44 +590,48 @@ func (rs *REST) initNodePorts(service *api.Service, nodePortOp *portallocator.Po } func (rs *REST) updateNodePorts(oldService, newService *api.Service, nodePortOp *portallocator.PortAllocationOperation) error { - oldNodePorts := CollectServiceNodePorts(oldService) + oldNodePortsNumbers := CollectServiceNodePorts(oldService) + newNodePorts := []ServiceNodePort{} + portAllocated := map[int]bool{} - newNodePorts := []int{} for i := range newService.Spec.Ports { servicePort := &newService.Spec.Ports[i] - nodePort := int(servicePort.NodePort) - if nodePort != 0 { - if !contains(oldNodePorts, nodePort) { - err := nodePortOp.Allocate(nodePort) + nodePort := ServiceNodePort{Protocol: servicePort.Protocol, NodePort: servicePort.NodePort} + if nodePort.NodePort != 0 { + if !containsNumber(oldNodePortsNumbers, int(nodePort.NodePort)) && !portAllocated[int(nodePort.NodePort)] { + err := nodePortOp.Allocate(int(nodePort.NodePort)) if err != nil { - el := field.ErrorList{field.Invalid(field.NewPath("spec", "ports").Index(i).Child("nodePort"), nodePort, err.Error())} + el := field.ErrorList{field.Invalid(field.NewPath("spec", "ports").Index(i).Child("nodePort"), nodePort.NodePort, err.Error())} return errors.NewInvalid(api.Kind("Service"), newService.Name, el) } + portAllocated[int(nodePort.NodePort)] = true } } else { - nodePort, err := nodePortOp.AllocateNext() + nodePortNumber, err := nodePortOp.AllocateNext() if err != nil { // TODO: what error should be returned here? It's not a // field-level validation failure (the field is valid), and it's // not really an internal error. return errors.NewInternalError(fmt.Errorf("failed to allocate a nodePort: %v", err)) } - servicePort.NodePort = int32(nodePort) + servicePort.NodePort = int32(nodePortNumber) + nodePort.NodePort = servicePort.NodePort } - // Detect duplicate node ports; this should have been caught by validation, so we panic - if contains(newNodePorts, nodePort) { - panic("duplicate node port") + if containsNodePort(newNodePorts, nodePort) { + return fmt.Errorf("duplicate nodePort: %v", nodePort) } newNodePorts = append(newNodePorts, nodePort) } + newNodePortsNumbers := CollectServiceNodePorts(newService) + // The comparison loops are O(N^2), but we don't expect N to be huge // (there's a hard-limit at 2^16, because they're ports; and even 4 ports would be a lot) - for _, oldNodePort := range oldNodePorts { - if contains(newNodePorts, oldNodePort) { + for _, oldNodePortNumber := range oldNodePortsNumbers { + if containsNumber(newNodePortsNumbers, oldNodePortNumber) { continue } - nodePortOp.ReleaseDeferred(oldNodePort) + nodePortOp.ReleaseDeferred(int(oldNodePortNumber)) } return nil diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/rest_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/rest_test.go index 810c026b3..edc1a334d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/rest_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/rest_test.go @@ -32,9 +32,9 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" "k8s.io/kubernetes/pkg/api/service" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/registry/core/service/portallocator" @@ -111,7 +111,7 @@ func TestServiceRegistryCreate(t *testing.T) { }, } ctx := genericapirequest.NewDefaultContext() - created_svc, err := storage.Create(ctx, svc, false) + created_svc, err := storage.Create(ctx, svc, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -235,7 +235,7 @@ func TestServiceRegistryCreateMultiNodePortsService(t *testing.T) { ctx := genericapirequest.NewDefaultContext() for _, test := range testCases { - created_svc, err := storage.Create(ctx, test.svc, false) + created_svc, err := storage.Create(ctx, test.svc, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -311,7 +311,7 @@ func TestServiceStorageValidatesCreate(t *testing.T) { } ctx := genericapirequest.NewDefaultContext() for _, failureCase := range failureCases { - c, err := storage.Create(ctx, &failureCase, false) + c, err := storage.Create(ctx, &failureCase, rest.ValidateAllObjectFunc, false) if c != nil { t.Errorf("Expected nil object") } @@ -334,7 +334,7 @@ func TestServiceRegistryUpdate(t *testing.T) { TargetPort: intstr.FromInt(6502), }}, }, - }) + }, rest.ValidateAllObjectFunc) if err != nil { t.Fatalf("Expected no error: %v", err) @@ -353,7 +353,7 @@ func TestServiceRegistryUpdate(t *testing.T) { TargetPort: intstr.FromInt(6502), }}, }, - })) + }), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatalf("Expected no error: %v", err) } @@ -384,7 +384,7 @@ func TestServiceStorageValidatesUpdate(t *testing.T) { Protocol: api.ProtocolTCP, }}, }, - }) + }, rest.ValidateAllObjectFunc) failureCases := map[string]api.Service{ "empty ID": { ObjectMeta: metav1.ObjectMeta{Name: ""}, @@ -414,7 +414,7 @@ func TestServiceStorageValidatesUpdate(t *testing.T) { }, } for _, failureCase := range failureCases { - c, created, err := storage.Update(ctx, failureCase.Name, rest.DefaultUpdatedObjectInfo(&failureCase)) + c, created, err := storage.Update(ctx, failureCase.Name, rest.DefaultUpdatedObjectInfo(&failureCase), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if c != nil || created { t.Errorf("Expected nil object or created false") } @@ -440,7 +440,7 @@ func TestServiceRegistryExternalService(t *testing.T) { }}, }, } - _, err := storage.Create(ctx, svc, false) + _, err := storage.Create(ctx, svc, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Failed to create service: %#v", err) } @@ -477,7 +477,7 @@ func TestServiceRegistryDelete(t *testing.T) { }}, }, } - registry.CreateService(ctx, svc) + registry.CreateService(ctx, svc, rest.ValidateAllObjectFunc) storage.Delete(ctx, svc.Name) if e, a := "foo", registry.DeletedID; e != a { t.Errorf("Expected %v, but got %v", e, a) @@ -499,7 +499,7 @@ func TestServiceRegistryDeleteExternal(t *testing.T) { }}, }, } - registry.CreateService(ctx, svc) + registry.CreateService(ctx, svc, rest.ValidateAllObjectFunc) storage.Delete(ctx, svc.Name) if e, a := "foo", registry.DeletedID; e != a { t.Errorf("Expected %v, but got %v", e, a) @@ -524,14 +524,14 @@ func TestServiceRegistryUpdateExternalService(t *testing.T) { }}, }, } - if _, err := storage.Create(ctx, svc1, false); err != nil { + if _, err := storage.Create(ctx, svc1, rest.ValidateAllObjectFunc, false); err != nil { t.Fatalf("Unexpected error: %v", err) } // Modify load balancer to be external. svc2 := svc1.DeepCopy() svc2.Spec.Type = api.ServiceTypeLoadBalancer - if _, _, err := storage.Update(ctx, svc2.Name, rest.DefaultUpdatedObjectInfo(svc2)); err != nil { + if _, _, err := storage.Update(ctx, svc2.Name, rest.DefaultUpdatedObjectInfo(svc2), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("Unexpected error: %v", err) } defer releaseServiceNodePorts(t, ctx, svc2.Name, storage, registry) @@ -539,7 +539,7 @@ func TestServiceRegistryUpdateExternalService(t *testing.T) { // Change port. svc3 := svc2.DeepCopy() svc3.Spec.Ports[0].Port = 6504 - if _, _, err := storage.Update(ctx, svc3.Name, rest.DefaultUpdatedObjectInfo(svc3)); err != nil { + if _, _, err := storage.Update(ctx, svc3.Name, rest.DefaultUpdatedObjectInfo(svc3), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("Unexpected error: %v", err) } } @@ -568,7 +568,7 @@ func TestServiceRegistryUpdateMultiPortExternalService(t *testing.T) { }}, }, } - if _, err := storage.Create(ctx, svc1, false); err != nil { + if _, err := storage.Create(ctx, svc1, rest.ValidateAllObjectFunc, false); err != nil { t.Fatalf("Unexpected error: %v", err) } defer releaseServiceNodePorts(t, ctx, svc1.Name, storage, registry) @@ -576,7 +576,7 @@ func TestServiceRegistryUpdateMultiPortExternalService(t *testing.T) { // Modify ports svc2 := svc1.DeepCopy() svc2.Spec.Ports[1].Port = 8088 - if _, _, err := storage.Update(ctx, svc2.Name, rest.DefaultUpdatedObjectInfo(svc2)); err != nil { + if _, _, err := storage.Update(ctx, svc2.Name, rest.DefaultUpdatedObjectInfo(svc2), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("Unexpected error: %v", err) } } @@ -589,7 +589,7 @@ func TestServiceRegistryGet(t *testing.T) { Spec: api.ServiceSpec{ Selector: map[string]string{"bar": "baz"}, }, - }) + }, rest.ValidateAllObjectFunc) storage.Get(ctx, "foo", &metav1.GetOptions{}) if e, a := "foo", registry.GottenID; e != a { t.Errorf("Expected %v, but got %v", e, a) @@ -642,7 +642,7 @@ func TestServiceRegistryResourceLocation(t *testing.T) { {Name: "", Port: 93, TargetPort: intstr.FromInt(80)}, }, }, - }) + }, rest.ValidateAllObjectFunc) redirector := rest.Redirector(storage) // Test a simple id. @@ -725,13 +725,13 @@ func TestServiceRegistryList(t *testing.T) { Spec: api.ServiceSpec{ Selector: map[string]string{"bar": "baz"}, }, - }) + }, rest.ValidateAllObjectFunc) registry.CreateService(ctx, &api.Service{ ObjectMeta: metav1.ObjectMeta{Name: "foo2", Namespace: metav1.NamespaceDefault}, Spec: api.ServiceSpec{ Selector: map[string]string{"bar2": "baz2"}, }, - }) + }, rest.ValidateAllObjectFunc) registry.List.ResourceVersion = "1" s, _ := storage.List(ctx, nil) sl := s.(*api.ServiceList) @@ -766,7 +766,7 @@ func TestServiceRegistryIPAllocation(t *testing.T) { }, } ctx := genericapirequest.NewDefaultContext() - created_svc1, _ := storage.Create(ctx, svc1, false) + created_svc1, _ := storage.Create(ctx, svc1, rest.ValidateAllObjectFunc, false) created_service_1 := created_svc1.(*api.Service) if created_service_1.Name != "foo" { t.Errorf("Expected foo, but got %v", created_service_1.Name) @@ -788,7 +788,7 @@ func TestServiceRegistryIPAllocation(t *testing.T) { }}, }} ctx = genericapirequest.NewDefaultContext() - created_svc2, _ := storage.Create(ctx, svc2, false) + created_svc2, _ := storage.Create(ctx, svc2, rest.ValidateAllObjectFunc, false) created_service_2 := created_svc2.(*api.Service) if created_service_2.Name != "bar" { t.Errorf("Expected bar, but got %v", created_service_2.Name) @@ -821,7 +821,7 @@ func TestServiceRegistryIPAllocation(t *testing.T) { }, } ctx = genericapirequest.NewDefaultContext() - created_svc3, err := storage.Create(ctx, svc3, false) + created_svc3, err := storage.Create(ctx, svc3, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatal(err) } @@ -848,7 +848,7 @@ func TestServiceRegistryIPReallocation(t *testing.T) { }, } ctx := genericapirequest.NewDefaultContext() - created_svc1, _ := storage.Create(ctx, svc1, false) + created_svc1, _ := storage.Create(ctx, svc1, rest.ValidateAllObjectFunc, false) created_service_1 := created_svc1.(*api.Service) if created_service_1.Name != "foo" { t.Errorf("Expected foo, but got %v", created_service_1.Name) @@ -876,7 +876,7 @@ func TestServiceRegistryIPReallocation(t *testing.T) { }, } ctx = genericapirequest.NewDefaultContext() - created_svc2, _ := storage.Create(ctx, svc2, false) + created_svc2, _ := storage.Create(ctx, svc2, rest.ValidateAllObjectFunc, false) created_service_2 := created_svc2.(*api.Service) if created_service_2.Name != "bar" { t.Errorf("Expected bar, but got %v", created_service_2.Name) @@ -903,7 +903,7 @@ func TestServiceRegistryIPUpdate(t *testing.T) { }, } ctx := genericapirequest.NewDefaultContext() - created_svc, _ := storage.Create(ctx, svc, false) + created_svc, _ := storage.Create(ctx, svc, rest.ValidateAllObjectFunc, false) created_service := created_svc.(*api.Service) if created_service.Spec.Ports[0].Port != 6502 { t.Errorf("Expected port 6502, but got %v", created_service.Spec.Ports[0].Port) @@ -915,7 +915,7 @@ func TestServiceRegistryIPUpdate(t *testing.T) { update := created_service.DeepCopy() update.Spec.Ports[0].Port = 6503 - updated_svc, _, _ := storage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(update)) + updated_svc, _, _ := storage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) updated_service := updated_svc.(*api.Service) if updated_service.Spec.Ports[0].Port != 6503 { t.Errorf("Expected port 6503, but got %v", updated_service.Spec.Ports[0].Port) @@ -934,7 +934,7 @@ func TestServiceRegistryIPUpdate(t *testing.T) { update.Spec.Ports[0].Port = 6503 update.Spec.ClusterIP = testIP // Error: Cluster IP is immutable - _, _, err := storage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(update)) + _, _, err := storage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err == nil || !errors.IsInvalid(err) { t.Errorf("Unexpected error type: %v", err) } @@ -957,7 +957,7 @@ func TestServiceRegistryIPLoadBalancer(t *testing.T) { }, } ctx := genericapirequest.NewDefaultContext() - created_svc, err := storage.Create(ctx, svc, false) + created_svc, err := storage.Create(ctx, svc, rest.ValidateAllObjectFunc, false) if created_svc == nil || err != nil { t.Errorf("Unexpected failure creating service %v", err) } @@ -973,7 +973,7 @@ func TestServiceRegistryIPLoadBalancer(t *testing.T) { update := created_service.DeepCopy() - _, _, err = storage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(update)) + _, _, err = storage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("Unexpected error %v", err) } @@ -986,7 +986,7 @@ func TestUpdateServiceWithConflictingNamespace(t *testing.T) { } ctx := genericapirequest.NewDefaultContext() - obj, created, err := storage.Update(ctx, service.Name, rest.DefaultUpdatedObjectInfo(service)) + obj, created, err := storage.Update(ctx, service.Name, rest.DefaultUpdatedObjectInfo(service), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if obj != nil || created { t.Error("Expected a nil object, but we got a value or created was true") } @@ -1016,7 +1016,7 @@ func TestServiceRegistryExternalTrafficHealthCheckNodePortAllocation(t *testing. ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeLocal, }, } - created_svc, err := storage.Create(ctx, svc, false) + created_svc, err := storage.Create(ctx, svc, rest.ValidateAllObjectFunc, false) if created_svc == nil || err != nil { t.Errorf("Unexpected failure creating service %v", err) } @@ -1056,7 +1056,7 @@ func TestServiceRegistryExternalTrafficHealthCheckNodePortUserAllocation(t *test HealthCheckNodePort: randomNodePort, }, } - created_svc, err := storage.Create(ctx, svc, false) + created_svc, err := storage.Create(ctx, svc, rest.ValidateAllObjectFunc, false) if created_svc == nil || err != nil { t.Fatalf("Unexpected failure creating service :%v", err) } @@ -1098,7 +1098,7 @@ func TestServiceRegistryExternalTrafficHealthCheckNodePortNegative(t *testing.T) HealthCheckNodePort: int32(-1), }, } - created_svc, err := storage.Create(ctx, svc, false) + created_svc, err := storage.Create(ctx, svc, rest.ValidateAllObjectFunc, false) if created_svc == nil || err != nil { return } @@ -1123,7 +1123,7 @@ func TestServiceRegistryExternalTrafficGlobal(t *testing.T) { ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, }, } - created_svc, err := storage.Create(ctx, svc, false) + created_svc, err := storage.Create(ctx, svc, rest.ValidateAllObjectFunc, false) if created_svc == nil || err != nil { t.Errorf("Unexpected failure creating service %v", err) } @@ -1570,6 +1570,92 @@ func TestUpdateNodePorts(t *testing.T) { }, expectSpecifiedNodePorts: []int{}, }, + { + name: "Add new ServicePort with a different protocol without changing port numbers", + oldService: &api.Service{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: api.ServiceSpec{ + Selector: map[string]string{"bar": "baz"}, + SessionAffinity: api.ServiceAffinityNone, + Type: api.ServiceTypeNodePort, + Ports: []api.ServicePort{ + { + Name: "port-tcp", + Port: 53, + TargetPort: intstr.FromInt(6502), + Protocol: api.ProtocolTCP, + NodePort: 30053, + }, + }, + }, + }, + newService: &api.Service{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: api.ServiceSpec{ + Selector: map[string]string{"bar": "baz"}, + SessionAffinity: api.ServiceAffinityNone, + Type: api.ServiceTypeNodePort, + Ports: []api.ServicePort{ + { + Name: "port-tcp", + Port: 53, + TargetPort: intstr.FromInt(6502), + Protocol: api.ProtocolTCP, + NodePort: 30053, + }, + { + Name: "port-udp", + Port: 53, + TargetPort: intstr.FromInt(6502), + Protocol: api.ProtocolUDP, + NodePort: 30053, + }, + }, + }, + }, + expectSpecifiedNodePorts: []int{30053, 30053}, + }, + { + name: "Change service type from ClusterIP to NodePort with same NodePort number but different protocols", + oldService: &api.Service{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: api.ServiceSpec{ + Selector: map[string]string{"bar": "baz"}, + SessionAffinity: api.ServiceAffinityNone, + Type: api.ServiceTypeClusterIP, + Ports: []api.ServicePort{{ + Port: 53, + Protocol: api.ProtocolTCP, + TargetPort: intstr.FromInt(6502), + }}, + }, + }, + newService: &api.Service{ + ObjectMeta: metav1.ObjectMeta{Name: "foo"}, + Spec: api.ServiceSpec{ + Selector: map[string]string{"bar": "baz"}, + SessionAffinity: api.ServiceAffinityNone, + Type: api.ServiceTypeNodePort, + Ports: []api.ServicePort{ + { + Name: "port-tcp", + Port: 53, + TargetPort: intstr.FromInt(6502), + Protocol: api.ProtocolTCP, + NodePort: 30053, + }, + { + Name: "port-udp", + Port: 53, + TargetPort: intstr.FromInt(6502), + Protocol: api.ProtocolUDP, + NodePort: 30053, + }, + }, + }, + }, + expectSpecifiedNodePorts: []int{30053, 30053}, + }, } for _, test := range testCases { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/BUILD index 4afd2f4b0..46a72fcd6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/service/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", @@ -29,7 +29,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/service/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/printers:go_default_library", "//pkg/printers/internalversion:go_default_library", "//pkg/printers/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/storage.go index aaa0b52f6..0d492b7e8 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/storage.go @@ -23,7 +23,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/printers" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" printerstorage "k8s.io/kubernetes/pkg/printers/storage" @@ -89,6 +89,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/storage_test.go index 9e2fab55e..b51c3a947 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/storage/storage_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/strategy.go index e2bf47a54..278da88ed 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/strategy.go @@ -23,8 +23,9 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // svcStrategy implements behavior for Services @@ -35,7 +36,7 @@ type svcStrategy struct { // Services is the default logic that applies when creating and updating Service // objects. -var Strategy = svcStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = svcStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped is true for services. func (svcStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/service/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/service/strategy_test.go index 903af1ec0..e5b4b4cc5 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/service/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/service/strategy_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestExportService(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/BUILD index 3476ca583..956de50f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/BUILD @@ -14,8 +14,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/core/serviceaccount", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/registry.go index 7979b29ac..8d1360057 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/registry.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Registry is an interface implemented by things that know how to store ServiceAccount objects. @@ -30,8 +30,8 @@ type Registry interface { ListServiceAccounts(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*api.ServiceAccountList, error) WatchServiceAccounts(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) GetServiceAccount(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*api.ServiceAccount, error) - CreateServiceAccount(ctx genericapirequest.Context, ServiceAccount *api.ServiceAccount) error - UpdateServiceAccount(ctx genericapirequest.Context, ServiceAccount *api.ServiceAccount) error + CreateServiceAccount(ctx genericapirequest.Context, ServiceAccount *api.ServiceAccount, createValidation rest.ValidateObjectFunc) error + UpdateServiceAccount(ctx genericapirequest.Context, ServiceAccount *api.ServiceAccount, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error DeleteServiceAccount(ctx genericapirequest.Context, name string) error } @@ -66,13 +66,13 @@ func (s *storage) GetServiceAccount(ctx genericapirequest.Context, name string, return obj.(*api.ServiceAccount), nil } -func (s *storage) CreateServiceAccount(ctx genericapirequest.Context, serviceAccount *api.ServiceAccount) error { - _, err := s.Create(ctx, serviceAccount, false) +func (s *storage) CreateServiceAccount(ctx genericapirequest.Context, serviceAccount *api.ServiceAccount, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, serviceAccount, createValidation, false) return err } -func (s *storage) UpdateServiceAccount(ctx genericapirequest.Context, serviceAccount *api.ServiceAccount) error { - _, _, err := s.Update(ctx, serviceAccount.Name, rest.DefaultUpdatedObjectInfo(serviceAccount)) +func (s *storage) UpdateServiceAccount(ctx genericapirequest.Context, serviceAccount *api.ServiceAccount, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, serviceAccount.Name, rest.DefaultUpdatedObjectInfo(serviceAccount), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/BUILD index bd122cffa..039b3efb6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", @@ -28,7 +28,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/core/serviceaccount:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/storage.go index 47d764133..1b889374a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/storage.go @@ -21,7 +21,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/serviceaccount" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/storage_test.go index 2d96c74f7..d10acb9ff 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/storage/storage_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/strategy.go index 501e04361..8a6a37207 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/strategy.go @@ -21,8 +21,9 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/validation" ) // strategy implements behavior for ServiceAccount objects @@ -33,7 +34,7 @@ type strategy struct { // Strategy is the default logic that applies when creating and updating ServiceAccount // objects via the REST API. -var Strategy = strategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = strategy{legacyscheme.Scheme, names.SimpleNameGenerator} func (strategy) NamespaceScoped() bool { return true diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/BUILD index 6ddb41393..8f4cf02ee 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/BUILD @@ -12,8 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/extensions/controller/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/apis/extensions:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", @@ -30,13 +30,15 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/extensions/controller/storage", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/autoscaling/validation:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", - "//pkg/apis/extensions/validation:go_default_library", "//pkg/registry/core/replicationcontroller:go_default_library", "//pkg/registry/core/replicationcontroller/storage: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/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/storage.go index a3fa80c46..774a78911 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/storage.go @@ -21,13 +21,15 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/autoscaling" + autoscalingvalidation "k8s.io/kubernetes/pkg/apis/autoscaling/validation" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" - extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/registry/core/replicationcontroller" controllerstore "k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage" ) @@ -58,7 +60,7 @@ var _ = rest.Patcher(&ScaleREST{}) // New creates a new Scale object func (r *ScaleREST) New() runtime.Object { - return &extensions.Scale{} + return &autoscaling.Scale{} } func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { @@ -69,7 +71,7 @@ func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *met return scaleFromRC(rc), nil } -func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { rc, err := (*r.registry).GetController(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, false, errors.NewNotFound(extensions.Resource("replicationcontrollers/scale"), name) @@ -81,18 +83,18 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r if obj == nil { return nil, false, errors.NewBadRequest(fmt.Sprintf("nil update passed to Scale")) } - scale, ok := obj.(*extensions.Scale) + scale, ok := obj.(*autoscaling.Scale) if !ok { return nil, false, errors.NewBadRequest(fmt.Sprintf("wrong object passed to Scale update: %v", obj)) } - if errs := extvalidation.ValidateScale(scale); len(errs) > 0 { + if errs := autoscalingvalidation.ValidateScale(scale); len(errs) > 0 { return nil, false, errors.NewInvalid(extensions.Kind("Scale"), scale.Name, errs) } rc.Spec.Replicas = scale.Spec.Replicas rc.ResourceVersion = scale.ResourceVersion - rc, err = (*r.registry).UpdateController(ctx, rc) + rc, err = (*r.registry).UpdateController(ctx, rc, createValidation, updateValidation) if err != nil { return nil, false, errors.NewConflict(extensions.Resource("replicationcontrollers/scale"), scale.Name, err) } @@ -100,8 +102,8 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r } // scaleFromRC returns a scale subresource for a replication controller. -func scaleFromRC(rc *api.ReplicationController) *extensions.Scale { - return &extensions.Scale{ +func scaleFromRC(rc *api.ReplicationController) *autoscaling.Scale { + return &autoscaling.Scale{ ObjectMeta: metav1.ObjectMeta{ Name: rc.Name, Namespace: rc.Namespace, @@ -109,14 +111,12 @@ func scaleFromRC(rc *api.ReplicationController) *extensions.Scale { ResourceVersion: rc.ResourceVersion, CreationTimestamp: rc.CreationTimestamp, }, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: rc.Spec.Replicas, }, - Status: extensions.ScaleStatus{ + Status: autoscaling.ScaleStatus{ Replicas: rc.Status.Replicas, - Selector: &metav1.LabelSelector{ - MatchLabels: rc.Spec.Selector, - }, + Selector: labels.SelectorFromSet(labels.Set(rc.Spec.Selector)).String(), }, } } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/storage_test.go index 0d08f0d40..62689035f 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/controller/storage/storage_test.go @@ -26,8 +26,8 @@ import ( "k8s.io/apiserver/pkg/storage" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/apiserver/pkg/storage/storagebackend/factory" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -74,16 +74,14 @@ var validController = api.ReplicationController{ Spec: validControllerSpec, } -var validScale = extensions.Scale{ +var validScale = autoscaling.Scale{ ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test"}, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: validReplicas, }, - Status: extensions.ScaleStatus{ + Status: autoscaling.ScaleStatus{ Replicas: 0, - Selector: &metav1.LabelSelector{ - MatchLabels: validPodTemplate.Template.Labels, - }, + Selector: "a=b", }, } @@ -100,7 +98,7 @@ func TestGet(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - scale := obj.(*extensions.Scale) + scale := obj.(*autoscaling.Scale) if scale.Spec.Replicas != validReplicas { t.Errorf("wrong replicas count expected: %d got: %d", validReplicas, scale.Spec.Replicas) } @@ -116,14 +114,14 @@ func TestUpdate(t *testing.T) { t.Fatalf("unexpected error: %v", err) } replicas := int32(12) - update := extensions.Scale{ + update := autoscaling.Scale{ ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test"}, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: replicas, }, } - if _, _, err := storage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil { + if _, _, err := storage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("unexpected error: %v", err) } obj, err := storage.Get(ctx, "foo", &metav1.GetOptions{}) @@ -131,7 +129,7 @@ func TestUpdate(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - updated := obj.(*extensions.Scale) + updated := obj.(*autoscaling.Scale) if updated.Spec.Replicas != replicas { t.Errorf("wrong replicas count expected: %d got: %d", replicas, updated.Spec.Replicas) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/BUILD index d9c86a4d8..d2afe48f1 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/BUILD @@ -14,11 +14,10 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/extensions/daemonset", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", @@ -37,7 +36,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/extensions/daemonset", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/BUILD index 9c4ae8677..2d53cd28d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/storage.go index c5318901d..461e5a97f 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/storage.go @@ -89,6 +89,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/storage_test.go index 4f2009010..1d029f747 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage/storage_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/strategy.go index 0b42f3a96..759324fff 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/strategy.go @@ -17,9 +17,6 @@ limitations under the License. package daemonset import ( - "fmt" - - appsv1beta2 "k8s.io/api/apps/v1beta2" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" apiequality "k8s.io/apimachinery/pkg/api/equality" apivalidation "k8s.io/apimachinery/pkg/api/validation" @@ -29,7 +26,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/pod" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions/validation" @@ -42,7 +39,7 @@ type daemonSetStrategy struct { } // Strategy is the default logic that applies when creating and updating DaemonSet objects. -var Strategy = daemonSetStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = daemonSetStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // DefaultGarbageCollectionPolicy returns Orphan because that was the default // behavior before the server-side garbage collection was implemented. @@ -126,7 +123,7 @@ func (daemonSetStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old allErrs := validation.ValidateDaemonSet(obj.(*extensions.DaemonSet)) allErrs = append(allErrs, validation.ValidateDaemonSetUpdate(newDaemonSet, oldDaemonSet)...) - // Update is not allowed to set Spec.Selector for all groups/versions except extensions/v1beta1. + // Update is not allowed to set Spec.Selector for apps/v1 and apps/v1beta2 (allowed for extensions/v1beta1). // If RequestInfo is nil, it is better to revert to old behavior (i.e. allow update to set Spec.Selector) // to prevent unintentionally breaking users who may rely on the old behavior. // TODO(#50791): after extensions/v1beta1 is removed, move selector immutability check inside ValidateDaemonSetUpdate(). @@ -135,11 +132,9 @@ func (daemonSetStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old switch groupVersion { case extensionsv1beta1.SchemeGroupVersion: // no-op for compatibility - case appsv1beta2.SchemeGroupVersion: + default: // disallow mutation of selector allErrs = append(allErrs, apivalidation.ValidateImmutableField(newDaemonSet.Spec.Selector, oldDaemonSet.Spec.Selector, field.NewPath("spec").Child("selector"))...) - default: - panic(fmt.Sprintf("unexpected group/version: %v", groupVersion)) } } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/strategy_test.go index 3dca4a72c..466b0f17b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/daemonset/strategy_test.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -51,6 +51,26 @@ func TestSelectorImmutability(t *testing.T) { newSelectorLabels map[string]string expectedErrorList field.ErrorList }{ + { + genericapirequest.RequestInfo{ + APIGroup: "apps", + APIVersion: "v1", + Resource: "daemonsets", + }, + map[string]string{"a": "b"}, + map[string]string{"c": "d"}, + field.ErrorList{ + &field.Error{ + Type: field.ErrorTypeInvalid, + Field: field.NewPath("spec").Child("selector").String(), + BadValue: &metav1.LabelSelector{ + MatchLabels: map[string]string{"c": "d"}, + MatchExpressions: []metav1.LabelSelectorRequirement{}, + }, + Detail: "field is immutable", + }, + }, + }, { genericapirequest.RequestInfo{ APIGroup: "apps", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/BUILD index b1a8ba953..daeb85369 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/BUILD @@ -15,12 +15,11 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/extensions/deployment", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", @@ -41,7 +40,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/extensions/deployment", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/registry.go index e5b03be6e..951e86863 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/registry.go @@ -30,8 +30,8 @@ import ( type Registry interface { ListDeployments(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*extensions.DeploymentList, error) GetDeployment(ctx genericapirequest.Context, deploymentID string, options *metav1.GetOptions) (*extensions.Deployment, error) - CreateDeployment(ctx genericapirequest.Context, deployment *extensions.Deployment) (*extensions.Deployment, error) - UpdateDeployment(ctx genericapirequest.Context, deployment *extensions.Deployment) (*extensions.Deployment, error) + CreateDeployment(ctx genericapirequest.Context, deployment *extensions.Deployment, createValidation rest.ValidateObjectFunc) (*extensions.Deployment, error) + UpdateDeployment(ctx genericapirequest.Context, deployment *extensions.Deployment, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*extensions.Deployment, error) DeleteDeployment(ctx genericapirequest.Context, deploymentID string) error } @@ -64,16 +64,16 @@ func (s *storage) GetDeployment(ctx genericapirequest.Context, deploymentID stri return obj.(*extensions.Deployment), nil } -func (s *storage) CreateDeployment(ctx genericapirequest.Context, deployment *extensions.Deployment) (*extensions.Deployment, error) { - obj, err := s.Create(ctx, deployment, false) +func (s *storage) CreateDeployment(ctx genericapirequest.Context, deployment *extensions.Deployment, createValidation rest.ValidateObjectFunc) (*extensions.Deployment, error) { + obj, err := s.Create(ctx, deployment, createValidation, false) if err != nil { return nil, err } return obj.(*extensions.Deployment), nil } -func (s *storage) UpdateDeployment(ctx genericapirequest.Context, deployment *extensions.Deployment) (*extensions.Deployment, error) { - obj, _, err := s.Update(ctx, deployment.Name, rest.DefaultUpdatedObjectInfo(deployment)) +func (s *storage) UpdateDeployment(ctx genericapirequest.Context, deployment *extensions.Deployment, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*extensions.Deployment, error) { + obj, _, err := s.Update(ctx, deployment.Name, rest.DefaultUpdatedObjectInfo(deployment), createValidation, updateValidation) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/BUILD index 1d8064b0d..3276c7105 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/BUILD @@ -12,7 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/extensions/deployment/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -36,7 +37,13 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/extensions/deployment/storage", deps = [ + "//pkg/apis/apps/v1beta1:go_default_library", + "//pkg/apis/apps/v1beta2:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/autoscaling/v1:go_default_library", + "//pkg/apis/autoscaling/validation:go_default_library", "//pkg/apis/extensions:go_default_library", + "//pkg/apis/extensions/v1beta1:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//pkg/registry/extensions/deployment:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/storage.go index ec2f08744..6cf80f8dc 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/storage.go @@ -30,7 +30,13 @@ import ( "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage" storeerr "k8s.io/apiserver/pkg/storage/errors" + appsv1beta1 "k8s.io/kubernetes/pkg/apis/apps/v1beta1" + appsv1beta2 "k8s.io/kubernetes/pkg/apis/apps/v1beta2" + "k8s.io/kubernetes/pkg/apis/autoscaling" + autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1" + autoscalingvalidation "k8s.io/kubernetes/pkg/apis/autoscaling/validation" "k8s.io/kubernetes/pkg/apis/extensions" + extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/registry/extensions/deployment" ) @@ -111,8 +117,8 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } // RollbackREST implements the REST endpoint for initiating the rollback of a deployment @@ -127,7 +133,7 @@ func (r *RollbackREST) New() runtime.Object { var _ = rest.Creater(&RollbackREST{}) -func (r *RollbackREST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (r *RollbackREST) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { rollback, ok := obj.(*extensions.DeploymentRollback) if !ok { return nil, errors.NewBadRequest(fmt.Sprintf("not a DeploymentRollback: %#v", obj)) @@ -193,13 +199,22 @@ type ScaleREST struct { var _ = rest.Patcher(&ScaleREST{}) var _ = rest.GroupVersionKindProvider(&ScaleREST{}) -func (r *ScaleREST) GroupVersionKind() schema.GroupVersionKind { - return schema.GroupVersionKind{Group: "extensions", Version: "v1beta1", Kind: "Scale"} +func (r *ScaleREST) GroupVersionKind(containingGV schema.GroupVersion) schema.GroupVersionKind { + switch containingGV { + case extensionsv1beta1.SchemeGroupVersion: + return extensionsv1beta1.SchemeGroupVersion.WithKind("Scale") + case appsv1beta1.SchemeGroupVersion: + return appsv1beta1.SchemeGroupVersion.WithKind("Scale") + case appsv1beta2.SchemeGroupVersion: + return appsv1beta2.SchemeGroupVersion.WithKind("Scale") + default: + return autoscalingv1.SchemeGroupVersion.WithKind("Scale") + } } // New creates a new Scale object func (r *ScaleREST) New() runtime.Object { - return &extensions.Scale{} + return &autoscaling.Scale{} } func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { @@ -214,7 +229,7 @@ func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *met return scale, nil } -func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { deployment, err := r.registry.GetDeployment(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, false, errors.NewNotFound(extensions.Resource("deployments/scale"), name) @@ -232,18 +247,18 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r if obj == nil { return nil, false, errors.NewBadRequest(fmt.Sprintf("nil update passed to Scale")) } - scale, ok := obj.(*extensions.Scale) + scale, ok := obj.(*autoscaling.Scale) if !ok { return nil, false, errors.NewBadRequest(fmt.Sprintf("expected input object type to be Scale, but %T", obj)) } - if errs := extvalidation.ValidateScale(scale); len(errs) > 0 { + if errs := autoscalingvalidation.ValidateScale(scale); len(errs) > 0 { return nil, false, errors.NewInvalid(extensions.Kind("Scale"), name, errs) } deployment.Spec.Replicas = scale.Spec.Replicas deployment.ResourceVersion = scale.ResourceVersion - deployment, err = r.registry.UpdateDeployment(ctx, deployment) + deployment, err = r.registry.UpdateDeployment(ctx, deployment, createValidation, updateValidation) if err != nil { return nil, false, err } @@ -255,8 +270,12 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r } // scaleFromDeployment returns a scale subresource for a deployment. -func scaleFromDeployment(deployment *extensions.Deployment) (*extensions.Scale, error) { - return &extensions.Scale{ +func scaleFromDeployment(deployment *extensions.Deployment) (*autoscaling.Scale, error) { + selector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector) + if err != nil { + return nil, err + } + return &autoscaling.Scale{ // TODO: Create a variant of ObjectMeta type that only contains the fields below. ObjectMeta: metav1.ObjectMeta{ Name: deployment.Name, @@ -265,12 +284,12 @@ func scaleFromDeployment(deployment *extensions.Deployment) (*extensions.Scale, ResourceVersion: deployment.ResourceVersion, CreationTimestamp: deployment.CreationTimestamp, }, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: deployment.Spec.Replicas, }, - Status: extensions.ScaleStatus{ + Status: autoscaling.ScaleStatus{ Replicas: deployment.Status.Replicas, - Selector: deployment.Spec.Selector, + Selector: selector.String(), }, }, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/storage_test.go index 09823f40c..aa7764b16 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/storage/storage_test.go @@ -34,7 +34,8 @@ import ( "k8s.io/apiserver/pkg/registry/rest" storeerr "k8s.io/apiserver/pkg/storage/errors" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -207,7 +208,11 @@ func TestScaleGet(t *testing.T) { t.Fatalf("error setting new deployment (key: %s) %v: %v", key, validDeployment, err) } - want := &extensions.Scale{ + selector, err := metav1.LabelSelectorAsSelector(validDeployment.Spec.Selector) + if err != nil { + t.Fatal(err) + } + want := &autoscaling.Scale{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: namespace, @@ -215,19 +220,19 @@ func TestScaleGet(t *testing.T) { ResourceVersion: deployment.ResourceVersion, CreationTimestamp: deployment.CreationTimestamp, }, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: validDeployment.Spec.Replicas, }, - Status: extensions.ScaleStatus{ + Status: autoscaling.ScaleStatus{ Replicas: validDeployment.Status.Replicas, - Selector: validDeployment.Spec.Selector, + Selector: selector.String(), }, } obj, err := storage.Scale.Get(ctx, name, &metav1.GetOptions{}) if err != nil { t.Fatalf("error fetching scale for %s: %v", name, err) } - got := obj.(*extensions.Scale) + got := obj.(*autoscaling.Scale) if !apiequality.Semantic.DeepEqual(want, got) { t.Errorf("unexpected scale: %s", diff.ObjectDiff(want, got)) } @@ -244,21 +249,21 @@ func TestScaleUpdate(t *testing.T) { t.Fatalf("error setting new deployment (key: %s) %v: %v", key, validDeployment, err) } replicas := int32(12) - update := extensions.Scale{ + update := autoscaling.Scale{ ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace}, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: replicas, }, } - if _, _, err := storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil { + if _, _, err := storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("error updating scale %v: %v", update, err) } obj, err := storage.Scale.Get(ctx, name, &metav1.GetOptions{}) if err != nil { t.Fatalf("error fetching scale for %s: %v", name, err) } - scale := obj.(*extensions.Scale) + scale := obj.(*autoscaling.Scale) if scale.Spec.Replicas != replicas { t.Errorf("wrong replicas count expected: %d got: %d", replicas, deployment.Spec.Replicas) } @@ -266,7 +271,7 @@ func TestScaleUpdate(t *testing.T) { update.ResourceVersion = deployment.ResourceVersion update.Spec.Replicas = 15 - if _, _, err = storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil && !errors.IsConflict(err) { + if _, _, err = storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil && !errors.IsConflict(err) { t.Fatalf("unexpected error, expecting an update conflict but got %v", err) } } @@ -290,7 +295,7 @@ func TestStatusUpdate(t *testing.T) { }, } - if _, _, err := storage.Status.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil { + if _, _, err := storage.Status.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("unexpected error: %v", err) } obj, err := storage.Deployment.Get(ctx, name, &metav1.GetOptions{}) @@ -341,10 +346,10 @@ func TestEtcdCreateDeploymentRollback(t *testing.T) { storage, server := newStorage(t) rollbackStorage := storage.Rollback - if _, err := storage.Deployment.Create(ctx, validNewDeployment(), false); err != nil { + if _, err := storage.Deployment.Create(ctx, validNewDeployment(), rest.ValidateAllObjectFunc, false); err != nil { t.Fatalf("%s: unexpected error: %v", k, err) } - rollbackRespStatus, err := rollbackStorage.Create(ctx, &test.rollback, false) + rollbackRespStatus, err := rollbackStorage.Create(ctx, &test.rollback, rest.ValidateAllObjectFunc, false) if !test.errOK(err) { t.Errorf("%s: unexpected error: %v", k, err) } else if err == nil { @@ -381,7 +386,7 @@ func TestEtcdCreateDeploymentRollbackNoDeployment(t *testing.T) { Name: name, UpdatedAnnotations: map[string]string{}, RollbackTo: extensions.RollbackConfig{Revision: 1}, - }, false) + }, rest.ValidateAllObjectFunc, false) if err == nil { t.Fatalf("Expected not-found-error but got nothing") } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/strategy.go index 0b898fcc0..6a2a437d3 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/strategy.go @@ -17,10 +17,7 @@ limitations under the License. package deployment import ( - "fmt" - appsv1beta1 "k8s.io/api/apps/v1beta1" - appsv1beta2 "k8s.io/api/apps/v1beta2" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" apiequality "k8s.io/apimachinery/pkg/api/equality" apivalidation "k8s.io/apimachinery/pkg/api/validation" @@ -30,7 +27,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/pod" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions/validation" @@ -44,7 +41,7 @@ type deploymentStrategy struct { // Strategy is the default logic that applies when creating and updating Deployment // objects via the REST API. -var Strategy = deploymentStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = deploymentStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // DefaultGarbageCollectionPolicy returns Orphan because that's the default // behavior before the server-side garbage collection is implemented. @@ -113,15 +110,11 @@ func (deploymentStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old if requestInfo, found := genericapirequest.RequestInfoFrom(ctx); found { groupVersion := schema.GroupVersion{Group: requestInfo.APIGroup, Version: requestInfo.APIVersion} switch groupVersion { - case appsv1beta1.SchemeGroupVersion: - // no-op for compatibility - case extensionsv1beta1.SchemeGroupVersion: + case appsv1beta1.SchemeGroupVersion, extensionsv1beta1.SchemeGroupVersion: // no-op for compatibility - case appsv1beta2.SchemeGroupVersion: + default: // disallow mutation of selector allErrs = append(allErrs, apivalidation.ValidateImmutableField(newDeployment.Spec.Selector, oldDeployment.Spec.Selector, field.NewPath("spec").Child("selector"))...) - default: - panic(fmt.Sprintf("unexpected group/version: %v", groupVersion)) } } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/strategy_test.go index 2a53b347f..77e65f8ce 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/deployment/strategy_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/BUILD index f63685258..277a12e4a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/extensions/ingress", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -31,7 +31,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/extensions/ingress", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/BUILD index d1dc772f9..76c385515 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/extensions/ingress/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/storage.go index 9a8d6e253..0c7273d85 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/storage.go @@ -81,6 +81,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/storage_test.go index 10f911952..aacdf556a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/storage/storage_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/strategy.go index 41edf5bc7..e970d105c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/strategy.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions/validation" ) @@ -34,7 +34,7 @@ type ingressStrategy struct { } // Strategy is the default logic that applies when creating and updating Replication Ingress objects. -var Strategy = ingressStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = ingressStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped returns true because all Ingress' need to be within a namespace. func (ingressStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/strategy_test.go index 15db6711f..e12b79ff9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/ingress/strategy_test.go @@ -22,7 +22,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy/BUILD index b745113fc..eadcc39d2 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy/BUILD @@ -13,7 +13,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy/strategy.go index 130b90d33..118b69146 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy/strategy.go @@ -22,7 +22,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions/validation" ) @@ -35,7 +35,7 @@ type strategy struct { // Strategy is the default logic that applies when creating and updating PodSecurityPolicy // objects via the REST API. -var Strategy = strategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = strategy{legacyscheme.Scheme, names.SimpleNameGenerator} var _ = rest.RESTCreateStrategy(Strategy) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/BUILD index b35fd84a1..430ba736c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/BUILD @@ -15,11 +15,10 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/extensions/replicaset", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", @@ -45,7 +44,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/extensions/replicaset", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/registry.go index 155083e1f..029631eb6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/registry.go @@ -34,8 +34,8 @@ type Registry interface { ListReplicaSets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*extensions.ReplicaSetList, error) WatchReplicaSets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) GetReplicaSet(ctx genericapirequest.Context, replicaSetID string, options *metav1.GetOptions) (*extensions.ReplicaSet, error) - CreateReplicaSet(ctx genericapirequest.Context, replicaSet *extensions.ReplicaSet) (*extensions.ReplicaSet, error) - UpdateReplicaSet(ctx genericapirequest.Context, replicaSet *extensions.ReplicaSet) (*extensions.ReplicaSet, error) + CreateReplicaSet(ctx genericapirequest.Context, replicaSet *extensions.ReplicaSet, createValidation rest.ValidateObjectFunc) (*extensions.ReplicaSet, error) + UpdateReplicaSet(ctx genericapirequest.Context, replicaSet *extensions.ReplicaSet, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*extensions.ReplicaSet, error) DeleteReplicaSet(ctx genericapirequest.Context, replicaSetID string) error } @@ -73,16 +73,16 @@ func (s *storage) GetReplicaSet(ctx genericapirequest.Context, replicaSetID stri return obj.(*extensions.ReplicaSet), nil } -func (s *storage) CreateReplicaSet(ctx genericapirequest.Context, replicaSet *extensions.ReplicaSet) (*extensions.ReplicaSet, error) { - obj, err := s.Create(ctx, replicaSet, false) +func (s *storage) CreateReplicaSet(ctx genericapirequest.Context, replicaSet *extensions.ReplicaSet, createValidation rest.ValidateObjectFunc) (*extensions.ReplicaSet, error) { + obj, err := s.Create(ctx, replicaSet, createValidation, false) if err != nil { return nil, err } return obj.(*extensions.ReplicaSet), nil } -func (s *storage) UpdateReplicaSet(ctx genericapirequest.Context, replicaSet *extensions.ReplicaSet) (*extensions.ReplicaSet, error) { - obj, _, err := s.Update(ctx, replicaSet.Name, rest.DefaultUpdatedObjectInfo(replicaSet)) +func (s *storage) UpdateReplicaSet(ctx genericapirequest.Context, replicaSet *extensions.ReplicaSet, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*extensions.ReplicaSet, error) { + obj, _, err := s.Update(ctx, replicaSet.Name, rest.DefaultUpdatedObjectInfo(replicaSet), createValidation, updateValidation) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/BUILD index 842735674..cb4772277 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/BUILD @@ -12,7 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -34,8 +35,13 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage", deps = [ + "//pkg/apis/apps/v1beta1:go_default_library", + "//pkg/apis/apps/v1beta2:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/autoscaling/v1:go_default_library", + "//pkg/apis/autoscaling/validation:go_default_library", "//pkg/apis/extensions:go_default_library", - "//pkg/apis/extensions/validation:go_default_library", + "//pkg/apis/extensions/v1beta1:go_default_library", "//pkg/printers:go_default_library", "//pkg/printers/internalversion:go_default_library", "//pkg/printers/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/storage.go index c443a89e0..893e66390 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/storage.go @@ -29,8 +29,13 @@ import ( "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" + appsv1beta1 "k8s.io/kubernetes/pkg/apis/apps/v1beta1" + appsv1beta2 "k8s.io/kubernetes/pkg/apis/apps/v1beta2" + "k8s.io/kubernetes/pkg/apis/autoscaling" + autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1" + autoscalingvalidation "k8s.io/kubernetes/pkg/apis/autoscaling/validation" "k8s.io/kubernetes/pkg/apis/extensions" - extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" + extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" "k8s.io/kubernetes/pkg/printers" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" printerstorage "k8s.io/kubernetes/pkg/printers/storage" @@ -115,8 +120,8 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } type ScaleREST struct { @@ -127,13 +132,22 @@ type ScaleREST struct { var _ = rest.Patcher(&ScaleREST{}) var _ = rest.GroupVersionKindProvider(&ScaleREST{}) -func (r *ScaleREST) GroupVersionKind() schema.GroupVersionKind { - return schema.GroupVersionKind{Group: "extensions", Version: "v1beta1", Kind: "Scale"} +func (r *ScaleREST) GroupVersionKind(containingGV schema.GroupVersion) schema.GroupVersionKind { + switch containingGV { + case extensionsv1beta1.SchemeGroupVersion: + return extensionsv1beta1.SchemeGroupVersion.WithKind("Scale") + case appsv1beta1.SchemeGroupVersion: + return appsv1beta1.SchemeGroupVersion.WithKind("Scale") + case appsv1beta2.SchemeGroupVersion: + return appsv1beta2.SchemeGroupVersion.WithKind("Scale") + default: + return autoscalingv1.SchemeGroupVersion.WithKind("Scale") + } } // New creates a new Scale object func (r *ScaleREST) New() runtime.Object { - return &extensions.Scale{} + return &autoscaling.Scale{} } func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { @@ -148,7 +162,7 @@ func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *met return scale, err } -func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { rs, err := r.registry.GetReplicaSet(ctx, name, &metav1.GetOptions{}) if err != nil { return nil, false, errors.NewNotFound(extensions.Resource("replicasets/scale"), name) @@ -159,6 +173,7 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r return nil, false, err } + // TODO: should this pass admission? obj, err := objInfo.UpdatedObject(ctx, oldScale) if err != nil { return nil, false, err @@ -166,18 +181,18 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r if obj == nil { return nil, false, errors.NewBadRequest(fmt.Sprintf("nil update passed to Scale")) } - scale, ok := obj.(*extensions.Scale) + scale, ok := obj.(*autoscaling.Scale) if !ok { return nil, false, errors.NewBadRequest(fmt.Sprintf("wrong object passed to Scale update: %v", obj)) } - if errs := extvalidation.ValidateScale(scale); len(errs) > 0 { + if errs := autoscalingvalidation.ValidateScale(scale); len(errs) > 0 { return nil, false, errors.NewInvalid(extensions.Kind("Scale"), scale.Name, errs) } rs.Spec.Replicas = scale.Spec.Replicas rs.ResourceVersion = scale.ResourceVersion - rs, err = r.registry.UpdateReplicaSet(ctx, rs) + rs, err = r.registry.UpdateReplicaSet(ctx, rs, createValidation, updateValidation) if err != nil { return nil, false, err } @@ -189,8 +204,12 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r } // scaleFromReplicaSet returns a scale subresource for a replica set. -func scaleFromReplicaSet(rs *extensions.ReplicaSet) (*extensions.Scale, error) { - return &extensions.Scale{ +func scaleFromReplicaSet(rs *extensions.ReplicaSet) (*autoscaling.Scale, error) { + selector, err := metav1.LabelSelectorAsSelector(rs.Spec.Selector) + if err != nil { + return nil, err + } + return &autoscaling.Scale{ // TODO: Create a variant of ObjectMeta type that only contains the fields below. ObjectMeta: metav1.ObjectMeta{ Name: rs.Name, @@ -199,12 +218,12 @@ func scaleFromReplicaSet(rs *extensions.ReplicaSet) (*extensions.Scale, error) { ResourceVersion: rs.ResourceVersion, CreationTimestamp: rs.CreationTimestamp, }, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: rs.Spec.Replicas, }, - Status: extensions.ScaleStatus{ + Status: autoscaling.ScaleStatus{ Replicas: rs.Status.Replicas, - Selector: rs.Spec.Selector, + Selector: selector.String(), }, }, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/storage_test.go index ba8d49912..a501099c5 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage/storage_test.go @@ -30,7 +30,8 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -47,7 +48,7 @@ func newStorage(t *testing.T) (*ReplicaSetStorage, *etcdtesting.EtcdTestServer) // createReplicaSet is a helper function that returns a ReplicaSet with the updated resource version. func createReplicaSet(storage *REST, rs extensions.ReplicaSet, t *testing.T) (extensions.ReplicaSet, error) { ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), rs.Namespace) - obj, err := storage.Create(ctx, &rs, false) + obj, err := storage.Create(ctx, &rs, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Failed to create ReplicaSet, %v", err) } @@ -169,7 +170,7 @@ func TestGenerationNumber(t *testing.T) { // Updates to spec should increment the generation number storedRS.Spec.Replicas += 1 - storage.ReplicaSet.Update(ctx, storedRS.Name, rest.DefaultUpdatedObjectInfo(storedRS)) + storage.ReplicaSet.Update(ctx, storedRS.Name, rest.DefaultUpdatedObjectInfo(storedRS), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -184,7 +185,7 @@ func TestGenerationNumber(t *testing.T) { // Updates to status should not increment either spec or status generation numbers storedRS.Status.Replicas += 1 - storage.ReplicaSet.Update(ctx, storedRS.Name, rest.DefaultUpdatedObjectInfo(storedRS)) + storage.ReplicaSet.Update(ctx, storedRS.Name, rest.DefaultUpdatedObjectInfo(storedRS), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -261,7 +262,12 @@ func TestScaleGet(t *testing.T) { t.Fatalf("error setting new replica set (key: %s) %v: %v", key, validReplicaSet, err) } - want := &extensions.Scale{ + selector, err := metav1.LabelSelectorAsSelector(validReplicaSet.Spec.Selector) + if err != nil { + t.Fatal(err) + } + + want := &autoscaling.Scale{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: metav1.NamespaceDefault, @@ -269,16 +275,16 @@ func TestScaleGet(t *testing.T) { ResourceVersion: rs.ResourceVersion, CreationTimestamp: rs.CreationTimestamp, }, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: validReplicaSet.Spec.Replicas, }, - Status: extensions.ScaleStatus{ + Status: autoscaling.ScaleStatus{ Replicas: validReplicaSet.Status.Replicas, - Selector: validReplicaSet.Spec.Selector, + Selector: selector.String(), }, } obj, err := storage.Scale.Get(ctx, name, &metav1.GetOptions{}) - got := obj.(*extensions.Scale) + got := obj.(*autoscaling.Scale) if err != nil { t.Fatalf("error fetching scale for %s: %v", name, err) } @@ -301,17 +307,17 @@ func TestScaleUpdate(t *testing.T) { t.Fatalf("error setting new replica set (key: %s) %v: %v", key, validReplicaSet, err) } replicas := 12 - update := extensions.Scale{ + update := autoscaling.Scale{ ObjectMeta: metav1.ObjectMeta{ Name: name, Namespace: metav1.NamespaceDefault, }, - Spec: extensions.ScaleSpec{ + Spec: autoscaling.ScaleSpec{ Replicas: int32(replicas), }, } - if _, _, err := storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil { + if _, _, err := storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("error updating scale %v: %v", update, err) } @@ -319,7 +325,7 @@ func TestScaleUpdate(t *testing.T) { if err != nil { t.Fatalf("error fetching scale for %s: %v", name, err) } - scale := obj.(*extensions.Scale) + scale := obj.(*autoscaling.Scale) if scale.Spec.Replicas != int32(replicas) { t.Errorf("wrong replicas count expected: %d got: %d", replicas, scale.Spec.Replicas) } @@ -327,7 +333,7 @@ func TestScaleUpdate(t *testing.T) { update.ResourceVersion = rs.ResourceVersion update.Spec.Replicas = 15 - if _, _, err = storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil && !errors.IsConflict(err) { + if _, _, err = storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil && !errors.IsConflict(err) { t.Fatalf("unexpected error, expecting an update conflict but got %v", err) } } @@ -352,7 +358,7 @@ func TestStatusUpdate(t *testing.T) { }, } - if _, _, err := storage.Status.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil { + if _, _, err := storage.Status.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("unexpected error: %v", err) } obj, err := storage.ReplicaSet.Get(ctx, "foo", &metav1.GetOptions{}) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/strategy.go index 1bd5bf518..03ac32663 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/strategy.go @@ -22,7 +22,6 @@ import ( "fmt" "strconv" - appsv1beta2 "k8s.io/api/apps/v1beta2" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" apiequality "k8s.io/apimachinery/pkg/api/equality" apivalidation "k8s.io/apimachinery/pkg/api/validation" @@ -36,7 +35,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/pod" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions/validation" @@ -49,7 +48,7 @@ type rsStrategy struct { } // Strategy is the default logic that applies when creating and updating ReplicaSet objects. -var Strategy = rsStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = rsStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // DefaultGarbageCollectionPolicy returns Orphan because that's the default // behavior before the server-side garbage collection is implemented. @@ -127,11 +126,9 @@ func (rsStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime switch groupVersion { case extensionsv1beta1.SchemeGroupVersion: // no-op for compatibility - case appsv1beta2.SchemeGroupVersion: + default: // disallow mutation of selector allErrs = append(allErrs, apivalidation.ValidateImmutableField(newReplicaSet.Spec.Selector, oldReplicaSet.Spec.Selector, field.NewPath("spec").Child("selector"))...) - default: - panic(fmt.Sprintf("unexpected group/version: %v", groupVersion)) } } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/strategy_test.go index 27f7b9020..2e87de59c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/replicaset/strategy_test.go @@ -23,7 +23,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/extensions/rest/BUILD index 9348b41cf..c4e43a547 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_extensions.go"], importpath = "k8s.io/kubernetes/pkg/registry/extensions/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/registry/extensions/controller/storage:go_default_library", "//pkg/registry/extensions/daemonset/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/extensions/rest/storage_extensions.go b/vendor/k8s.io/kubernetes/pkg/registry/extensions/rest/storage_extensions.go index 57e85b3a6..6de5b9623 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/extensions/rest/storage_extensions.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/extensions/rest/storage_extensions.go @@ -22,7 +22,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/extensions" expcontrollerstore "k8s.io/kubernetes/pkg/registry/extensions/controller/storage" daemonstore "k8s.io/kubernetes/pkg/registry/extensions/daemonset/storage" @@ -37,7 +37,7 @@ type RESTStorageProvider struct { } func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(extensions.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(extensions.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo diff --git a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/BUILD index 91d65f40f..f5e836166 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/networking/networkpolicy", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/networking:go_default_library", "//pkg/apis/networking/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/registry.go index 42956e112..1ddcd2139 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/registry.go @@ -28,8 +28,8 @@ import ( // Registry is an interface for things that know how to store NetworkPolicies. type Registry interface { ListNetworkPolicies(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*networking.NetworkPolicyList, error) - CreateNetworkPolicy(ctx genericapirequest.Context, np *networking.NetworkPolicy) error - UpdateNetworkPolicy(ctx genericapirequest.Context, np *networking.NetworkPolicy) error + CreateNetworkPolicy(ctx genericapirequest.Context, np *networking.NetworkPolicy, createValidation rest.ValidateObjectFunc) error + UpdateNetworkPolicy(ctx genericapirequest.Context, np *networking.NetworkPolicy, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error GetNetworkPolicy(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*networking.NetworkPolicy, error) DeleteNetworkPolicy(ctx genericapirequest.Context, name string) error WatchNetworkPolicies(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) @@ -55,13 +55,13 @@ func (s *storage) ListNetworkPolicies(ctx genericapirequest.Context, options *me return obj.(*networking.NetworkPolicyList), nil } -func (s *storage) CreateNetworkPolicy(ctx genericapirequest.Context, np *networking.NetworkPolicy) error { - _, err := s.Create(ctx, np, false) +func (s *storage) CreateNetworkPolicy(ctx genericapirequest.Context, np *networking.NetworkPolicy, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, np, createValidation, false) return err } -func (s *storage) UpdateNetworkPolicy(ctx genericapirequest.Context, np *networking.NetworkPolicy) error { - _, _, err := s.Update(ctx, np.Name, rest.DefaultUpdatedObjectInfo(np)) +func (s *storage) UpdateNetworkPolicy(ctx genericapirequest.Context, np *networking.NetworkPolicy, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, np.Name, rest.DefaultUpdatedObjectInfo(np), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage/BUILD index ceacb4ebe..bcb2cdead 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage/BUILD @@ -39,7 +39,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/networking:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage/storage_test.go index 89fff4c9e..d93e27036 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage/storage_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/networking" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/strategy.go index fe66f6f62..16e0b54a6 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/networking/networkpolicy/strategy.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/networking" "k8s.io/kubernetes/pkg/apis/networking/validation" ) @@ -35,7 +35,7 @@ type networkPolicyStrategy struct { } // Strategy is the default logic that applies when creating and updating NetworkPolicy objects. -var Strategy = networkPolicyStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = networkPolicyStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped returns true because all NetworkPolicies need to be within a namespace. func (networkPolicyStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/networking/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/networking/rest/BUILD index 39308c04d..699702bb1 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/networking/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/networking/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_settings.go"], importpath = "k8s.io/kubernetes/pkg/registry/networking/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/networking:go_default_library", "//pkg/registry/networking/networkpolicy/storage:go_default_library", "//vendor/k8s.io/api/networking/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/networking/rest/storage_settings.go b/vendor/k8s.io/kubernetes/pkg/registry/networking/rest/storage_settings.go index 4f6c42170..e0489bcff 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/networking/rest/storage_settings.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/networking/rest/storage_settings.go @@ -22,7 +22,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/networking" networkpolicystore "k8s.io/kubernetes/pkg/registry/networking/networkpolicy/storage" ) @@ -30,7 +30,7 @@ import ( type RESTStorageProvider struct{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(networking.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(networking.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo diff --git a/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/BUILD index 29a3d2e66..e0be96921 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/policy:go_default_library", "//pkg/apis/policy/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage/storage.go index 9b3da8b82..40aff589d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage/storage.go @@ -78,6 +78,6 @@ func (r *StatusREST) Get(ctx genericapirequest.Context, name string, options *me } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage/storage_test.go index eb3acbdb9..9846cf86f 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage/storage_test.go @@ -41,7 +41,7 @@ func newStorage(t *testing.T) (*REST, *StatusREST, *etcdtesting.EtcdTestServer) // createPodDisruptionBudget is a helper function that returns a PodDisruptionBudget with the updated resource version. func createPodDisruptionBudget(storage *REST, pdb policy.PodDisruptionBudget, t *testing.T) (policy.PodDisruptionBudget, error) { ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), pdb.Namespace) - obj, err := storage.Create(ctx, &pdb, false) + obj, err := storage.Create(ctx, &pdb, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Failed to create PodDisruptionBudget, %v", err) } @@ -109,7 +109,7 @@ func TestStatusUpdate(t *testing.T) { }, } - if _, _, err := statusStorage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update)); err != nil { + if _, _, err := statusStorage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("unexpected error: %v", err) } obj, err = storage.Get(ctx, "foo", &metav1.GetOptions{}) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/strategy.go index 43ef18c0a..382dc92ab 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/strategy.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/apis/policy/validation" ) @@ -34,7 +34,7 @@ type podDisruptionBudgetStrategy struct { } // Strategy is the default logic that applies when creating and updating PodDisruptionBudget objects. -var Strategy = podDisruptionBudgetStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = podDisruptionBudgetStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped returns true because all PodDisruptionBudget' need to be within a namespace. func (podDisruptionBudgetStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/policy/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/policy/rest/BUILD index bc1789888..95f5a4801 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/policy/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/policy/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_policy.go"], importpath = "k8s.io/kubernetes/pkg/registry/policy/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/policy:go_default_library", "//pkg/registry/policy/poddisruptionbudget/storage:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/policy/rest/storage_policy.go b/vendor/k8s.io/kubernetes/pkg/registry/policy/rest/storage_policy.go index a845f53e9..2cb65949d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/policy/rest/storage_policy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/policy/rest/storage_policy.go @@ -22,7 +22,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/policy" poddisruptionbudgetstore "k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage" ) @@ -30,7 +30,7 @@ import ( type RESTStorageProvider struct{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(policy.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(policy.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/BUILD index 432335889..10bb68208 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/BUILD @@ -53,8 +53,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/rbac", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/BUILD index d3fe5fb6f..57fac87d9 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/rbac/clusterrole", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/apis/rbac/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased/BUILD index 28a5d9a6a..e58b32eac 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased", deps = [ - "//pkg/api/helper:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/registry/rbac:go_default_library", "//pkg/registry/rbac/validation:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased/storage.go index 36650cbb7..0b32fdebf 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased/storage.go @@ -18,11 +18,13 @@ limitations under the License. package policybased import ( - "k8s.io/apimachinery/pkg/api/errors" + "errors" + + apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - kapihelper "k8s.io/kubernetes/pkg/api/helper" + kapihelper "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/apis/rbac" rbacregistry "k8s.io/kubernetes/pkg/registry/rbac" rbacregistryvalidation "k8s.io/kubernetes/pkg/registry/rbac/validation" @@ -40,26 +42,39 @@ func NewStorage(s rest.StandardStorage, ruleResolver rbacregistryvalidation.Auth return &Storage{s, ruleResolver} } -func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +var fullAuthority = []rbac.PolicyRule{ + rbac.NewRule("*").Groups("*").Resources("*").RuleOrDie(), + rbac.NewRule("*").URLs("*").RuleOrDie(), +} + +func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, createValidatingAdmission rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { if rbacregistry.EscalationAllowed(ctx) { - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + return s.StandardStorage.Create(ctx, obj, createValidatingAdmission, includeUninitialized) } clusterRole := obj.(*rbac.ClusterRole) rules := clusterRole.Rules if err := rbacregistryvalidation.ConfirmNoEscalation(ctx, s.ruleResolver, rules); err != nil { - return nil, errors.NewForbidden(groupResource, clusterRole.Name, err) + return nil, apierrors.NewForbidden(groupResource, clusterRole.Name, err) + } + // to set the aggregation rule, since it can gather anything, requires * on *.* + if hasAggregationRule(clusterRole) { + if err := rbacregistryvalidation.ConfirmNoEscalation(ctx, s.ruleResolver, fullAuthority); err != nil { + return nil, apierrors.NewForbidden(groupResource, clusterRole.Name, errors.New("must have cluster-admin privileges to use the aggregationRule")) + } } - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + + return s.StandardStorage.Create(ctx, obj, createValidatingAdmission, includeUninitialized) } -func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { if rbacregistry.EscalationAllowed(ctx) { - return s.StandardStorage.Update(ctx, name, obj) + return s.StandardStorage.Update(ctx, name, obj, createValidation, updateValidation) } nonEscalatingInfo := rest.WrapUpdatedObjectInfo(obj, func(ctx genericapirequest.Context, obj runtime.Object, oldObj runtime.Object) (runtime.Object, error) { clusterRole := obj.(*rbac.ClusterRole) + oldClusterRole := oldObj.(*rbac.ClusterRole) // if we're only mutating fields needed for the GC to eventually delete this obj, return if rbacregistry.IsOnlyMutatingGCFields(obj, oldObj, kapihelper.Semantic) { @@ -68,10 +83,21 @@ func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.Up rules := clusterRole.Rules if err := rbacregistryvalidation.ConfirmNoEscalation(ctx, s.ruleResolver, rules); err != nil { - return nil, errors.NewForbidden(groupResource, clusterRole.Name, err) + return nil, apierrors.NewForbidden(groupResource, clusterRole.Name, err) + } + // to change the aggregation rule, since it can gather anything and prevent tightening, requires * on *.* + if hasAggregationRule(clusterRole) || hasAggregationRule(oldClusterRole) { + if err := rbacregistryvalidation.ConfirmNoEscalation(ctx, s.ruleResolver, fullAuthority); err != nil { + return nil, apierrors.NewForbidden(groupResource, clusterRole.Name, errors.New("must have cluster-admin privileges to use the aggregationRule")) + } } + return obj, nil }) - return s.StandardStorage.Update(ctx, name, nonEscalatingInfo) + return s.StandardStorage.Update(ctx, name, nonEscalatingInfo, createValidation, updateValidation) +} + +func hasAggregationRule(clusterRole *rbac.ClusterRole) bool { + return clusterRole.AggregationRule != nil && len(clusterRole.AggregationRule.ClusterRoleSelectors) > 0 } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/registry.go index 639c04cf0..b8b1a21b5 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/registry.go @@ -28,8 +28,8 @@ import ( // Registry is an interface for things that know how to store ClusterRoles. type Registry interface { ListClusterRoles(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*rbac.ClusterRoleList, error) - CreateClusterRole(ctx genericapirequest.Context, clusterRole *rbac.ClusterRole) error - UpdateClusterRole(ctx genericapirequest.Context, clusterRole *rbac.ClusterRole) error + CreateClusterRole(ctx genericapirequest.Context, clusterRole *rbac.ClusterRole, createValidation rest.ValidateObjectFunc) error + UpdateClusterRole(ctx genericapirequest.Context, clusterRole *rbac.ClusterRole, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error GetClusterRole(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*rbac.ClusterRole, error) DeleteClusterRole(ctx genericapirequest.Context, name string) error WatchClusterRoles(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) @@ -55,13 +55,13 @@ func (s *storage) ListClusterRoles(ctx genericapirequest.Context, options *metai return obj.(*rbac.ClusterRoleList), nil } -func (s *storage) CreateClusterRole(ctx genericapirequest.Context, clusterRole *rbac.ClusterRole) error { - _, err := s.Create(ctx, clusterRole, false) +func (s *storage) CreateClusterRole(ctx genericapirequest.Context, clusterRole *rbac.ClusterRole, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, clusterRole, createValidation, false) return err } -func (s *storage) UpdateClusterRole(ctx genericapirequest.Context, clusterRole *rbac.ClusterRole) error { - _, _, err := s.Update(ctx, clusterRole.Name, rest.DefaultUpdatedObjectInfo(clusterRole)) +func (s *storage) UpdateClusterRole(ctx genericapirequest.Context, clusterRole *rbac.ClusterRole, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, clusterRole.Name, rest.DefaultUpdatedObjectInfo(clusterRole), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/strategy.go index 301418a14..e1be1f06c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrole/strategy.go @@ -22,7 +22,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac/validation" ) @@ -35,7 +35,7 @@ type strategy struct { // strategy is the default logic that applies when creating and updating // ClusterRole objects. -var Strategy = strategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = strategy{legacyscheme.Scheme, names.SimpleNameGenerator} // Strategy should implement rest.RESTCreateStrategy var _ rest.RESTCreateStrategy = Strategy diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/BUILD index f6f2f8eff..3f7f3015b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/apis/rbac/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/policybased/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/policybased/BUILD index 5d18bdb26..2141978ee 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/policybased/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/policybased/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/policybased", deps = [ - "//pkg/api/helper:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/registry/rbac:go_default_library", "//pkg/registry/rbac/validation:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/policybased/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/policybased/storage.go index 95130b8c9..12264dba4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/policybased/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/policybased/storage.go @@ -24,7 +24,7 @@ import ( "k8s.io/apiserver/pkg/authorization/authorizer" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - kapihelper "k8s.io/kubernetes/pkg/api/helper" + kapihelper "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/apis/rbac" rbacregistry "k8s.io/kubernetes/pkg/registry/rbac" rbacregistryvalidation "k8s.io/kubernetes/pkg/registry/rbac/validation" @@ -44,14 +44,14 @@ func NewStorage(s rest.StandardStorage, authorizer authorizer.Authorizer, ruleRe return &Storage{s, authorizer, ruleResolver} } -func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { if rbacregistry.EscalationAllowed(ctx) { - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + return s.StandardStorage.Create(ctx, obj, createValidation, includeUninitialized) } clusterRoleBinding := obj.(*rbac.ClusterRoleBinding) if rbacregistry.BindingAuthorized(ctx, clusterRoleBinding.RoleRef, metav1.NamespaceNone, s.authorizer) { - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + return s.StandardStorage.Create(ctx, obj, createValidation, includeUninitialized) } rules, err := s.ruleResolver.GetRoleReferenceRules(clusterRoleBinding.RoleRef, metav1.NamespaceNone) @@ -61,12 +61,12 @@ func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, incl if err := rbacregistryvalidation.ConfirmNoEscalation(ctx, s.ruleResolver, rules); err != nil { return nil, errors.NewForbidden(groupResource, clusterRoleBinding.Name, err) } - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + return s.StandardStorage.Create(ctx, obj, createValidation, includeUninitialized) } -func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { if rbacregistry.EscalationAllowed(ctx) { - return s.StandardStorage.Update(ctx, name, obj) + return s.StandardStorage.Update(ctx, name, obj, createValidation, updateValidation) } nonEscalatingInfo := rest.WrapUpdatedObjectInfo(obj, func(ctx genericapirequest.Context, obj runtime.Object, oldObj runtime.Object) (runtime.Object, error) { @@ -93,5 +93,5 @@ func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.Up return obj, nil }) - return s.StandardStorage.Update(ctx, name, nonEscalatingInfo) + return s.StandardStorage.Update(ctx, name, nonEscalatingInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/registry.go index 0a6b04895..2a3524e6e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/registry.go @@ -28,8 +28,8 @@ import ( // Registry is an interface for things that know how to store ClusterRoleBindings. type Registry interface { ListClusterRoleBindings(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*rbac.ClusterRoleBindingList, error) - CreateClusterRoleBinding(ctx genericapirequest.Context, clusterRoleBinding *rbac.ClusterRoleBinding) error - UpdateClusterRoleBinding(ctx genericapirequest.Context, clusterRoleBinding *rbac.ClusterRoleBinding) error + CreateClusterRoleBinding(ctx genericapirequest.Context, clusterRoleBinding *rbac.ClusterRoleBinding, createValidation rest.ValidateObjectFunc) error + UpdateClusterRoleBinding(ctx genericapirequest.Context, clusterRoleBinding *rbac.ClusterRoleBinding, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error GetClusterRoleBinding(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*rbac.ClusterRoleBinding, error) DeleteClusterRoleBinding(ctx genericapirequest.Context, name string) error WatchClusterRoleBindings(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) @@ -55,13 +55,13 @@ func (s *storage) ListClusterRoleBindings(ctx genericapirequest.Context, options return obj.(*rbac.ClusterRoleBindingList), nil } -func (s *storage) CreateClusterRoleBinding(ctx genericapirequest.Context, clusterRoleBinding *rbac.ClusterRoleBinding) error { - _, err := s.Create(ctx, clusterRoleBinding, false) +func (s *storage) CreateClusterRoleBinding(ctx genericapirequest.Context, clusterRoleBinding *rbac.ClusterRoleBinding, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, clusterRoleBinding, createValidation, false) return err } -func (s *storage) UpdateClusterRoleBinding(ctx genericapirequest.Context, clusterRoleBinding *rbac.ClusterRoleBinding) error { - _, _, err := s.Update(ctx, clusterRoleBinding.Name, rest.DefaultUpdatedObjectInfo(clusterRoleBinding)) +func (s *storage) UpdateClusterRoleBinding(ctx genericapirequest.Context, clusterRoleBinding *rbac.ClusterRoleBinding, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, clusterRoleBinding.Name, rest.DefaultUpdatedObjectInfo(clusterRoleBinding), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/strategy.go index e1d83ecf4..1b2e33772 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/strategy.go @@ -22,7 +22,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac/validation" ) @@ -35,7 +35,7 @@ type strategy struct { // strategy is the default logic that applies when creating and updating // ClusterRoleBinding objects. -var Strategy = strategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = strategy{legacyscheme.Scheme, names.SimpleNameGenerator} // Strategy should implement rest.RESTCreateStrategy var _ rest.RESTCreateStrategy = Strategy diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/escalation_check.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/escalation_check.go index 4fa0d59ce..4ac1392fb 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/escalation_check.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/escalation_check.go @@ -79,12 +79,12 @@ func BindingAuthorized(ctx genericapirequest.Context, roleRef rbac.RoleRef, bind return false } - ok, _, err := a.Authorize(attrs) + decision, _, err := a.Authorize(attrs) if err != nil { utilruntime.HandleError(fmt.Errorf( "error authorizing user %#v to bind %#v in namespace %s: %v", user, roleRef, bindingNamespace, err, )) } - return ok + return decision == authorizer.DecisionAllow } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/helpers_test.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/helpers_test.go index a371c7964..755b82a02 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/helpers_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/helpers_test.go @@ -21,8 +21,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - kapi "k8s.io/kubernetes/pkg/api" - kapihelper "k8s.io/kubernetes/pkg/api/helper" + kapi "k8s.io/kubernetes/pkg/apis/core" + kapihelper "k8s.io/kubernetes/pkg/apis/core/helper" ) func newPod() *kapi.Pod { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/BUILD index a9d398dd8..72d6ae1d5 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/BUILD @@ -15,9 +15,10 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/rbac/reconciliation", library = ":go_default_library", deps = [ - "//pkg/api/helper:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/apis/rbac:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", ], ) @@ -34,14 +35,14 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/rbac/reconciliation", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion:go_default_library", "//pkg/registry/rbac/validation:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality: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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/clusterrole_interfaces.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/clusterrole_interfaces.go index cd4f221f3..419cc1df2 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/clusterrole_interfaces.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/clusterrole_interfaces.go @@ -66,6 +66,14 @@ func (o ClusterRoleRuleOwner) SetRules(in []rbac.PolicyRule) { o.ClusterRole.Rules = in } +func (o ClusterRoleRuleOwner) GetAggregationRule() *rbac.AggregationRule { + return o.ClusterRole.AggregationRule +} + +func (o ClusterRoleRuleOwner) SetAggregationRule(in *rbac.AggregationRule) { + o.ClusterRole.AggregationRule = in +} + type ClusterRoleModifier struct { Client internalversion.ClusterRoleInterface } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_role.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_role.go index 873b329b0..b46059910 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_role.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_role.go @@ -20,7 +20,9 @@ import ( "fmt" "reflect" + "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/registry/rbac/validation" @@ -51,6 +53,8 @@ type RuleOwner interface { SetAnnotations(map[string]string) GetRules() []rbac.PolicyRule SetRules([]rbac.PolicyRule) + GetAggregationRule() *rbac.AggregationRule + SetAggregationRule(*rbac.AggregationRule) DeepCopyRuleOwner() RuleOwner } @@ -75,6 +79,11 @@ type ReconcileClusterRoleResult struct { // ExtraRules contains extra permissions the currently persisted role had ExtraRules []rbac.PolicyRule + // MissingAggregationRuleSelectors contains expected selectors that were missing from the currently persisted role + MissingAggregationRuleSelectors []metav1.LabelSelector + // ExtraAggregationRuleSelectors contains extra selectors the currently persisted role had + ExtraAggregationRuleSelectors []metav1.LabelSelector + // Operation is the API operation required to reconcile. // If no reconciliation was needed, it is set to ReconcileNone. // If options.Confirm == false, the reconcile was in dry-run mode, so the operation was not performed. @@ -101,10 +110,15 @@ func (o *ReconcileRoleOptions) run(attempts int) (*ReconcileClusterRoleResult, e existing, err := o.Client.Get(o.Role.GetNamespace(), o.Role.GetName()) switch { case errors.IsNotFound(err): + aggregationRule := o.Role.GetAggregationRule() + if aggregationRule == nil { + aggregationRule = &rbac.AggregationRule{} + } result = &ReconcileClusterRoleResult{ - Role: o.Role, - MissingRules: o.Role.GetRules(), - Operation: ReconcileCreate, + Role: o.Role, + MissingRules: o.Role.GetRules(), + MissingAggregationRuleSelectors: aggregationRule.ClusterRoleSelectors, + Operation: ReconcileCreate, } case err != nil: @@ -195,6 +209,26 @@ func computeReconciledRole(existing, expected RuleOwner, removeExtraPermissions result.Operation = ReconcileUpdate } + // Compute extra and missing rules + _, result.ExtraAggregationRuleSelectors = aggregationRuleCovers(expected.GetAggregationRule(), existing.GetAggregationRule()) + _, result.MissingAggregationRuleSelectors = aggregationRuleCovers(existing.GetAggregationRule(), expected.GetAggregationRule()) + + switch { + case !removeExtraPermissions && len(result.MissingAggregationRuleSelectors) > 0: + // add missing rules in the union case + aggregationRule := result.Role.GetAggregationRule() + if aggregationRule == nil { + aggregationRule = &rbac.AggregationRule{} + } + aggregationRule.ClusterRoleSelectors = append(aggregationRule.ClusterRoleSelectors, result.MissingAggregationRuleSelectors...) + result.Role.SetAggregationRule(aggregationRule) + result.Operation = ReconcileUpdate + + case removeExtraPermissions && (len(result.MissingAggregationRuleSelectors) > 0 || len(result.ExtraAggregationRuleSelectors) > 0): + result.Role.SetAggregationRule(expected.GetAggregationRule()) + result.Operation = ReconcileUpdate + } + return result, nil } @@ -211,3 +245,37 @@ func merge(maps ...map[string]string) map[string]string { } return output } + +// aggregationRuleCovers determines whether or not the ownerSelectors cover the servantSelectors in terms of semantically +// equal label selectors. +// It returns whether or not the ownerSelectors cover and a list of the rules that the ownerSelectors do not cover. +func aggregationRuleCovers(ownerRule, servantRule *rbac.AggregationRule) (bool, []metav1.LabelSelector) { + switch { + case ownerRule == nil && servantRule == nil: + return true, []metav1.LabelSelector{} + case ownerRule == nil && servantRule != nil: + return false, servantRule.ClusterRoleSelectors + case ownerRule != nil && servantRule == nil: + return true, []metav1.LabelSelector{} + + } + + ownerSelectors := ownerRule.ClusterRoleSelectors + servantSelectors := servantRule.ClusterRoleSelectors + uncoveredSelectors := []metav1.LabelSelector{} + + for _, servantSelector := range servantSelectors { + covered := false + for _, ownerSelector := range ownerSelectors { + if equality.Semantic.DeepEqual(ownerSelector, servantSelector) { + covered = true + break + } + } + if !covered { + uncoveredSelectors = append(uncoveredSelectors, servantSelector) + } + } + + return (len(uncoveredSelectors) == 0), uncoveredSelectors +} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_role_test.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_role_test.go index 9cd146648..1d30c9cad 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_role_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_role_test.go @@ -20,12 +20,16 @@ import ( "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api/helper" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/apis/rbac" ) func role(rules []rbac.PolicyRule, labels map[string]string, annotations map[string]string) *rbac.ClusterRole { - return &rbac.ClusterRole{Rules: rules, ObjectMeta: metav1.ObjectMeta{Labels: labels, Annotations: annotations}} + return &rbac.ClusterRole{ + Rules: rules, + ObjectMeta: metav1.ObjectMeta{Labels: labels, Annotations: annotations}, + } } func rules(resources ...string) []rbac.PolicyRule { @@ -38,7 +42,7 @@ func rules(resources ...string) []rbac.PolicyRule { type ss map[string]string -func TestComputeReconciledRole(t *testing.T) { +func TestComputeReconciledRoleRules(t *testing.T) { tests := map[string]struct { expectedRole *rbac.ClusterRole actualRole *rbac.ClusterRole @@ -273,3 +277,96 @@ func TestComputeReconciledRole(t *testing.T) { } } } + +func aggregatedRole(aggregationRule *rbac.AggregationRule) *rbac.ClusterRole { + return &rbac.ClusterRole{ + AggregationRule: aggregationRule, + } +} + +func aggregationrule(selectors []map[string]string) *rbac.AggregationRule { + ret := &rbac.AggregationRule{} + for _, selector := range selectors { + ret.ClusterRoleSelectors = append(ret.ClusterRoleSelectors, + metav1.LabelSelector{MatchLabels: selector}) + } + return ret +} + +func TestComputeReconciledRoleAggregationRules(t *testing.T) { + tests := map[string]struct { + expectedRole *rbac.ClusterRole + actualRole *rbac.ClusterRole + removeExtraPermissions bool + + expectedReconciledRole *rbac.ClusterRole + expectedReconciliationNeeded bool + }{ + "empty": { + expectedRole: aggregatedRole(&rbac.AggregationRule{}), + actualRole: aggregatedRole(nil), + removeExtraPermissions: true, + + expectedReconciledRole: nil, + expectedReconciliationNeeded: false, + }, + "empty-2": { + expectedRole: aggregatedRole(&rbac.AggregationRule{}), + actualRole: aggregatedRole(&rbac.AggregationRule{}), + removeExtraPermissions: true, + + expectedReconciledRole: nil, + expectedReconciliationNeeded: false, + }, + "match without union": { + expectedRole: aggregatedRole(aggregationrule([]map[string]string{{"foo": "bar"}})), + actualRole: aggregatedRole(aggregationrule([]map[string]string{{"foo": "bar"}})), + removeExtraPermissions: true, + + expectedReconciledRole: nil, + expectedReconciliationNeeded: false, + }, + "match with union": { + expectedRole: aggregatedRole(aggregationrule([]map[string]string{{"foo": "bar"}})), + actualRole: aggregatedRole(aggregationrule([]map[string]string{{"foo": "bar"}})), + removeExtraPermissions: false, + + expectedReconciledRole: nil, + expectedReconciliationNeeded: false, + }, + "different rules without union": { + expectedRole: aggregatedRole(aggregationrule([]map[string]string{{"foo": "bar"}})), + actualRole: aggregatedRole(aggregationrule([]map[string]string{{"alpha": "bravo"}})), + removeExtraPermissions: true, + + expectedReconciledRole: aggregatedRole(aggregationrule([]map[string]string{{"foo": "bar"}})), + expectedReconciliationNeeded: true, + }, + "different rules with union": { + expectedRole: aggregatedRole(aggregationrule([]map[string]string{{"foo": "bar"}})), + actualRole: aggregatedRole(aggregationrule([]map[string]string{{"alpha": "bravo"}})), + removeExtraPermissions: false, + + expectedReconciledRole: aggregatedRole(aggregationrule([]map[string]string{{"alpha": "bravo"}, {"foo": "bar"}})), + expectedReconciliationNeeded: true, + }, + } + + for k, tc := range tests { + actualRole := ClusterRoleRuleOwner{ClusterRole: tc.actualRole} + expectedRole := ClusterRoleRuleOwner{ClusterRole: tc.expectedRole} + result, err := computeReconciledRole(actualRole, expectedRole, tc.removeExtraPermissions) + if err != nil { + t.Errorf("%s: %v", k, err) + continue + } + reconciliationNeeded := result.Operation != ReconcileNone + if reconciliationNeeded != tc.expectedReconciliationNeeded { + t.Errorf("%s: Expected\n\t%v\ngot\n\t%v", k, tc.expectedReconciliationNeeded, reconciliationNeeded) + continue + } + if reconciliationNeeded && !helper.Semantic.DeepEqual(result.Role.(ClusterRoleRuleOwner).ClusterRole, tc.expectedReconciledRole) { + t.Errorf("%s: %v", k, diff.ObjectDiff(tc.expectedReconciledRole, result.Role.(ClusterRoleRuleOwner).ClusterRole)) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_rolebindings_test.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_rolebindings_test.go index b61b2540e..0cdd3cf46 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_rolebindings_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/reconcile_rolebindings_test.go @@ -19,7 +19,7 @@ package reconciliation import ( "testing" - "k8s.io/kubernetes/pkg/api/helper" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/apis/rbac" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/role_interfaces.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/role_interfaces.go index f671c8c43..b46e9e872 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/role_interfaces.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/role_interfaces.go @@ -20,7 +20,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/rbac" core "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion" @@ -69,6 +69,13 @@ func (o RoleRuleOwner) SetRules(in []rbac.PolicyRule) { o.Role.Rules = in } +func (o RoleRuleOwner) GetAggregationRule() *rbac.AggregationRule { + return nil +} + +func (o RoleRuleOwner) SetAggregationRule(in *rbac.AggregationRule) { +} + type RoleModifier struct { Client internalversion.RolesGetter NamespaceClient core.NamespaceInterface diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/rolebinding_interfaces.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/rolebinding_interfaces.go index 2f26fc954..126f479cb 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/rolebinding_interfaces.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/rolebinding_interfaces.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/rbac" core "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion" diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/zz_generated.deepcopy.go index b99814e33..f6a288fdd 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/reconciliation/zz_generated.deepcopy.go @@ -21,35 +21,9 @@ limitations under the License. package reconciliation import ( - conversion "k8s.io/apimachinery/pkg/conversion" rbac "k8s.io/kubernetes/pkg/apis/rbac" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleBindingAdapter).DeepCopyInto(out.(*ClusterRoleBindingAdapter)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleBindingAdapter{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleRuleOwner).DeepCopyInto(out.(*ClusterRoleRuleOwner)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleRuleOwner{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleBindingAdapter).DeepCopyInto(out.(*RoleBindingAdapter)) - return nil - }, InType: reflect.TypeOf(&RoleBindingAdapter{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleRuleOwner).DeepCopyInto(out.(*RoleRuleOwner)) - return nil - }, InType: reflect.TypeOf(&RoleRuleOwner{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ClusterRoleBindingAdapter) DeepCopyInto(out *ClusterRoleBindingAdapter) { *out = *in diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rest/BUILD index deed8ead2..685a8334b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_rbac.go"], importpath = "k8s.io/kubernetes/pkg/registry/rbac/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion:go_default_library", @@ -33,6 +33,7 @@ go_library( "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1: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/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rest/storage_rbac.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rest/storage_rbac.go index 9061b4c39..88fdf73d5 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rest/storage_rbac.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rest/storage_rbac.go @@ -26,6 +26,7 @@ import ( rbacapiv1 "k8s.io/api/rbac/v1" rbacapiv1alpha1 "k8s.io/api/rbac/v1alpha1" rbacapiv1beta1 "k8s.io/api/rbac/v1beta1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" utilruntime "k8s.io/apimachinery/pkg/util/runtime" @@ -36,7 +37,7 @@ import ( genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" "k8s.io/client-go/util/retry" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/rbac" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" rbacclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion" @@ -66,7 +67,7 @@ type RESTStorageProvider struct { var _ genericapiserver.PostStartHookProvider = RESTStorageProvider{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(rbac.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(rbac.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo @@ -134,10 +135,11 @@ func (p RESTStorageProvider) storage(version schema.GroupVersion, apiResourceCon func (p RESTStorageProvider) PostStartHook() (string, genericapiserver.PostStartHookFunc, error) { policy := &PolicyData{ - ClusterRoles: append(bootstrappolicy.ClusterRoles(), bootstrappolicy.ControllerRoles()...), - ClusterRoleBindings: append(bootstrappolicy.ClusterRoleBindings(), bootstrappolicy.ControllerRoleBindings()...), - Roles: bootstrappolicy.NamespaceRoles(), - RoleBindings: bootstrappolicy.NamespaceRoleBindings(), + ClusterRoles: append(bootstrappolicy.ClusterRoles(), bootstrappolicy.ControllerRoles()...), + ClusterRoleBindings: append(bootstrappolicy.ClusterRoleBindings(), bootstrappolicy.ControllerRoleBindings()...), + Roles: bootstrappolicy.NamespaceRoles(), + RoleBindings: bootstrappolicy.NamespaceRoleBindings(), + ClusterRolesToAggregate: bootstrappolicy.ClusterRolesToAggregate(), } return PostStartHookName, policy.EnsureRBACPolicy(), nil } @@ -147,6 +149,8 @@ type PolicyData struct { ClusterRoleBindings []rbac.ClusterRoleBinding Roles map[string][]rbac.Role RoleBindings map[string][]rbac.RoleBinding + // ClusterRolesToAggregate maps from previous clusterrole name to the new clusterrole name + ClusterRolesToAggregate map[string]string } func (p *PolicyData) EnsureRBACPolicy() genericapiserver.PostStartHookFunc { @@ -176,6 +180,13 @@ func (p *PolicyData) EnsureRBACPolicy() genericapiserver.PostStartHookFunc { return false, nil } + // if the new cluster roles to aggregate do not yet exist, then we need to copy the old roles if they don't exist + // in new locations + if err := primeAggregatedClusterRoles(p.ClusterRolesToAggregate, clientset); err != nil { + utilruntime.HandleError(fmt.Errorf("unable to prime aggregated clusterroles: %v", err)) + return false, nil + } + // ensure bootstrap roles are created or reconciled for _, clusterRole := range p.ClusterRoles { opts := reconciliation.ReconcileRoleOptions{ @@ -310,3 +321,32 @@ func (p *PolicyData) EnsureRBACPolicy() genericapiserver.PostStartHookFunc { func (p RESTStorageProvider) GroupName() string { return rbac.GroupName } + +// primeAggregatedClusterRoles copies roles that have transitioned to aggregated roles and may need to pick up changes +// that were done to the legacy roles. +func primeAggregatedClusterRoles(clusterRolesToAggregate map[string]string, clusterRoleClient rbacclient.ClusterRolesGetter) error { + for oldName, newName := range clusterRolesToAggregate { + _, err := clusterRoleClient.ClusterRoles().Get(newName, metav1.GetOptions{}) + if err == nil { + continue + } + if !apierrors.IsNotFound(err) { + return err + } + + existingRole, err := clusterRoleClient.ClusterRoles().Get(oldName, metav1.GetOptions{}) + if apierrors.IsNotFound(err) { + continue + } + if err != nil { + return err + } + glog.V(1).Infof("migrating %v to %v", existingRole.Name, newName) + existingRole.Name = newName + if _, err := clusterRoleClient.ClusterRoles().Create(existingRole); err != nil && !apierrors.IsAlreadyExists(err) { + return err + } + } + + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/BUILD index 3f3d6c3bb..a4fde9839 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/rbac/role", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/apis/rbac/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/policybased/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/policybased/BUILD index 88098c0eb..65fa12025 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/policybased/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/policybased/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/rbac/role/policybased", deps = [ - "//pkg/api/helper:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/registry/rbac:go_default_library", "//pkg/registry/rbac/validation:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/policybased/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/policybased/storage.go index 1f2443d2b..d67e3777f 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/policybased/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/policybased/storage.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - kapihelper "k8s.io/kubernetes/pkg/api/helper" + kapihelper "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/apis/rbac" rbacregistry "k8s.io/kubernetes/pkg/registry/rbac" rbacregistryvalidation "k8s.io/kubernetes/pkg/registry/rbac/validation" @@ -40,9 +40,9 @@ func NewStorage(s rest.StandardStorage, ruleResolver rbacregistryvalidation.Auth return &Storage{s, ruleResolver} } -func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { if rbacregistry.EscalationAllowed(ctx) { - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + return s.StandardStorage.Create(ctx, obj, createValidation, includeUninitialized) } role := obj.(*rbac.Role) @@ -50,12 +50,12 @@ func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, incl if err := rbacregistryvalidation.ConfirmNoEscalation(ctx, s.ruleResolver, rules); err != nil { return nil, errors.NewForbidden(groupResource, role.Name, err) } - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + return s.StandardStorage.Create(ctx, obj, createValidation, includeUninitialized) } -func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { if rbacregistry.EscalationAllowed(ctx) { - return s.StandardStorage.Update(ctx, name, obj) + return s.StandardStorage.Update(ctx, name, obj, createValidation, updateValidation) } nonEscalatingInfo := rest.WrapUpdatedObjectInfo(obj, func(ctx genericapirequest.Context, obj runtime.Object, oldObj runtime.Object) (runtime.Object, error) { @@ -73,5 +73,5 @@ func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.Up return obj, nil }) - return s.StandardStorage.Update(ctx, name, nonEscalatingInfo) + return s.StandardStorage.Update(ctx, name, nonEscalatingInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/registry.go index 7d7a47f84..bbf26b5e2 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/registry.go @@ -28,8 +28,8 @@ import ( // Registry is an interface for things that know how to store Roles. type Registry interface { ListRoles(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*rbac.RoleList, error) - CreateRole(ctx genericapirequest.Context, role *rbac.Role) error - UpdateRole(ctx genericapirequest.Context, role *rbac.Role) error + CreateRole(ctx genericapirequest.Context, role *rbac.Role, createValidation rest.ValidateObjectFunc) error + UpdateRole(ctx genericapirequest.Context, role *rbac.Role, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error GetRole(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*rbac.Role, error) DeleteRole(ctx genericapirequest.Context, name string) error WatchRoles(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) @@ -55,13 +55,14 @@ func (s *storage) ListRoles(ctx genericapirequest.Context, options *metainternal return obj.(*rbac.RoleList), nil } -func (s *storage) CreateRole(ctx genericapirequest.Context, role *rbac.Role) error { - _, err := s.Create(ctx, role, false) +func (s *storage) CreateRole(ctx genericapirequest.Context, role *rbac.Role, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, role, createValidation, false) return err } -func (s *storage) UpdateRole(ctx genericapirequest.Context, role *rbac.Role) error { - _, _, err := s.Update(ctx, role.Name, rest.DefaultUpdatedObjectInfo(role)) +func (s *storage) UpdateRole(ctx genericapirequest.Context, role *rbac.Role, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + // TODO: any admission? + _, _, err := s.Update(ctx, role.Name, rest.DefaultUpdatedObjectInfo(role), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/strategy.go index 619cfeed1..b815f98db 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/role/strategy.go @@ -22,7 +22,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac/validation" ) @@ -35,7 +35,7 @@ type strategy struct { // strategy is the default logic that applies when creating and updating // Role objects. -var Strategy = strategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = strategy{legacyscheme.Scheme, names.SimpleNameGenerator} // Strategy should implement rest.RESTCreateStrategy var _ rest.RESTCreateStrategy = Strategy diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/BUILD index 25e1e543a..e30725311 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/rbac/rolebinding", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/apis/rbac/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/policybased/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/policybased/BUILD index 05e10263f..fd05f21b4 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/policybased/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/policybased/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/rbac/rolebinding/policybased", deps = [ - "//pkg/api/helper:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/registry/rbac:go_default_library", "//pkg/registry/rbac/validation:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/policybased/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/policybased/storage.go index 5f775d5c4..9e539a77a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/policybased/storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/policybased/storage.go @@ -23,7 +23,7 @@ import ( "k8s.io/apiserver/pkg/authorization/authorizer" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - kapihelper "k8s.io/kubernetes/pkg/api/helper" + kapihelper "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/apis/rbac" rbacregistry "k8s.io/kubernetes/pkg/registry/rbac" rbacregistryvalidation "k8s.io/kubernetes/pkg/registry/rbac/validation" @@ -43,9 +43,9 @@ func NewStorage(s rest.StandardStorage, authorizer authorizer.Authorizer, ruleRe return &Storage{s, authorizer, ruleResolver} } -func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { if rbacregistry.EscalationAllowed(ctx) { - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + return s.StandardStorage.Create(ctx, obj, createValidation, includeUninitialized) } // Get the namespace from the context (populated from the URL). @@ -57,7 +57,7 @@ func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, incl roleBinding := obj.(*rbac.RoleBinding) if rbacregistry.BindingAuthorized(ctx, roleBinding.RoleRef, namespace, s.authorizer) { - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + return s.StandardStorage.Create(ctx, obj, createValidation, includeUninitialized) } rules, err := s.ruleResolver.GetRoleReferenceRules(roleBinding.RoleRef, namespace) @@ -67,12 +67,12 @@ func (s *Storage) Create(ctx genericapirequest.Context, obj runtime.Object, incl if err := rbacregistryvalidation.ConfirmNoEscalation(ctx, s.ruleResolver, rules); err != nil { return nil, errors.NewForbidden(groupResource, roleBinding.Name, err) } - return s.StandardStorage.Create(ctx, obj, includeUninitialized) + return s.StandardStorage.Create(ctx, obj, createValidation, includeUninitialized) } -func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { if rbacregistry.EscalationAllowed(ctx) { - return s.StandardStorage.Update(ctx, name, obj) + return s.StandardStorage.Update(ctx, name, obj, createValidation, updateValidation) } nonEscalatingInfo := rest.WrapUpdatedObjectInfo(obj, func(ctx genericapirequest.Context, obj runtime.Object, oldObj runtime.Object) (runtime.Object, error) { @@ -106,5 +106,5 @@ func (s *Storage) Update(ctx genericapirequest.Context, name string, obj rest.Up return obj, nil }) - return s.StandardStorage.Update(ctx, name, nonEscalatingInfo) + return s.StandardStorage.Update(ctx, name, nonEscalatingInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/registry.go index 5c4a02704..c708d088b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/registry.go @@ -28,8 +28,8 @@ import ( // Registry is an interface for things that know how to store RoleBindings. type Registry interface { ListRoleBindings(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*rbac.RoleBindingList, error) - CreateRoleBinding(ctx genericapirequest.Context, roleBinding *rbac.RoleBinding) error - UpdateRoleBinding(ctx genericapirequest.Context, roleBinding *rbac.RoleBinding) error + CreateRoleBinding(ctx genericapirequest.Context, roleBinding *rbac.RoleBinding, createValidation rest.ValidateObjectFunc) error + UpdateRoleBinding(ctx genericapirequest.Context, roleBinding *rbac.RoleBinding, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error GetRoleBinding(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*rbac.RoleBinding, error) DeleteRoleBinding(ctx genericapirequest.Context, name string) error WatchRoleBindings(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) @@ -55,14 +55,14 @@ func (s *storage) ListRoleBindings(ctx genericapirequest.Context, options *metai return obj.(*rbac.RoleBindingList), nil } -func (s *storage) CreateRoleBinding(ctx genericapirequest.Context, roleBinding *rbac.RoleBinding) error { +func (s *storage) CreateRoleBinding(ctx genericapirequest.Context, roleBinding *rbac.RoleBinding, createValidation rest.ValidateObjectFunc) error { // TODO(ericchiang): add additional validation - _, err := s.Create(ctx, roleBinding, false) + _, err := s.Create(ctx, roleBinding, createValidation, false) return err } -func (s *storage) UpdateRoleBinding(ctx genericapirequest.Context, roleBinding *rbac.RoleBinding) error { - _, _, err := s.Update(ctx, roleBinding.Name, rest.DefaultUpdatedObjectInfo(roleBinding)) +func (s *storage) UpdateRoleBinding(ctx genericapirequest.Context, roleBinding *rbac.RoleBinding, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, roleBinding.Name, rest.DefaultUpdatedObjectInfo(roleBinding), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/strategy.go index 9d4781a50..136cffd34 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/rolebinding/strategy.go @@ -22,7 +22,7 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/rbac/validation" ) @@ -35,7 +35,7 @@ type strategy struct { // strategy is the default logic that applies when creating and updating // RoleBinding objects. -var Strategy = strategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = strategy{legacyscheme.Scheme, names.SimpleNameGenerator} // Strategy should implement rest.RESTCreateStrategy var _ rest.RESTCreateStrategy = Strategy diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/validation/policy_comparator.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/validation/policy_comparator.go index 6c69c24fb..4b2ba5158 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/validation/policy_comparator.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/validation/policy_comparator.go @@ -105,6 +105,31 @@ func hasAll(set, contains []string) bool { return true } +func resourceCoversAll(setResources, coversResources []string) bool { + // if we have a star or an exact match on all resources, then we match + if has(setResources, rbac.ResourceAll) || hasAll(setResources, coversResources) { + return true + } + + for _, path := range coversResources { + // if we have an exact match, then we match. + if has(setResources, path) { + continue + } + // if we're not a subresource, then we definitely don't match. fail. + if !strings.Contains(path, "/") { + return false + } + tokens := strings.SplitN(path, "/", 2) + resourceToCheck := "*/" + tokens[1] + if !has(setResources, resourceToCheck) { + return false + } + } + + return true +} + func nonResourceURLsCoversAll(set, covers []string) bool { for _, path := range covers { covered := false @@ -133,7 +158,7 @@ func nonResourceURLCovers(ownerPath, subPath string) bool { func ruleCovers(ownerRule, subRule rbac.PolicyRule) bool { verbMatches := has(ownerRule.Verbs, rbac.VerbAll) || hasAll(ownerRule.Verbs, subRule.Verbs) groupMatches := has(ownerRule.APIGroups, rbac.APIGroupAll) || hasAll(ownerRule.APIGroups, subRule.APIGroups) - resourceMatches := has(ownerRule.Resources, rbac.ResourceAll) || hasAll(ownerRule.Resources, subRule.Resources) + resourceMatches := resourceCoversAll(ownerRule.Resources, subRule.Resources) nonResourceURLMatches := nonResourceURLsCoversAll(ownerRule.NonResourceURLs, subRule.NonResourceURLs) resourceNameMatches := false diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/validation/policy_comparator_test.go b/vendor/k8s.io/kubernetes/pkg/registry/rbac/validation/policy_comparator_test.go index fd892bf37..b8b947f72 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/rbac/validation/policy_comparator_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/validation/policy_comparator_test.go @@ -45,6 +45,20 @@ func TestCoversExactMatch(t *testing.T) { }.test(t) } +func TestCoversSubresourceWildcard(t *testing.T) { + escalationTest{ + ownerRules: []rbac.PolicyRule{ + {APIGroups: []string{"v1"}, Verbs: []string{"get"}, Resources: []string{"*/scale"}}, + }, + servantRules: []rbac.PolicyRule{ + {APIGroups: []string{"v1"}, Verbs: []string{"get"}, Resources: []string{"foo/scale"}}, + }, + + expectedCovered: true, + expectedUncoveredRules: []rbac.PolicyRule{}, + }.test(t) +} + func TestCoversMultipleRulesCoveringSingleRule(t *testing.T) { escalationTest{ ownerRules: []rbac.PolicyRule{ diff --git a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/BUILD index d1eab9003..5a01ba270 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/BUILD @@ -19,8 +19,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/registrytest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/util/slice:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/endpoint.go b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/endpoint.go index cf0fc4877..170b95955 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/endpoint.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/endpoint.go @@ -25,7 +25,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + "k8s.io/apiserver/pkg/registry/rest" + api "k8s.io/kubernetes/pkg/apis/core" ) // Registry is an interface for things that know how to store endpoints. @@ -66,7 +67,7 @@ func (e *EndpointRegistry) WatchEndpoints(ctx genericapirequest.Context, options return nil, fmt.Errorf("unimplemented!") } -func (e *EndpointRegistry) UpdateEndpoints(ctx genericapirequest.Context, endpoints *api.Endpoints) error { +func (e *EndpointRegistry) UpdateEndpoints(ctx genericapirequest.Context, endpoints *api.Endpoints, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { // TODO: support namespaces in this mock e.lock.Lock() defer e.lock.Unlock() diff --git a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/etcd.go b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/etcd.go index 4d8dcac17..4d57b375b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/etcd.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/etcd.go @@ -33,12 +33,13 @@ import ( etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/apiserver/pkg/storage/storagebackend" storagetesting "k8s.io/apiserver/pkg/storage/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" ) func NewEtcdStorage(t *testing.T, group string) (*storagebackend.Config, *etcdtesting.EtcdTestServer) { - server, config := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, api.Scheme) + server, config := etcdtesting.NewUnsecuredEtcd3TestClientServer(t) config.Codec = testapi.Groups[group].StorageCodec() return config, server } @@ -51,7 +52,7 @@ type UpdateFunc func(runtime.Object) runtime.Object func New(t *testing.T, storage *genericregistry.Store) *Tester { return &Tester{ - tester: resttest.New(t, storage, api.Scheme), + tester: resttest.New(t, storage, legacyscheme.Scheme), storage: storage, } } @@ -153,7 +154,7 @@ func (t *Tester) TestWatch(valid runtime.Object, labelsPass, labelsFail []labels // ============================================================================= // get codec based on runtime.Object func getCodec(obj runtime.Object) (runtime.Codec, error) { - fqKinds, _, err := api.Scheme.ObjectKinds(obj) + fqKinds, _, err := legacyscheme.Scheme.ObjectKinds(obj) if err != nil { return nil, fmt.Errorf("unexpected encoding error: %v", err) } @@ -163,9 +164,9 @@ func getCodec(obj runtime.Object) (runtime.Codec, error) { // split the schemes for internal objects. // TODO: caesarxuchao: we should add a map from kind to group in Scheme. var codec runtime.Codec - if api.Scheme.Recognizes(api.Registry.GroupOrDie(api.GroupName).GroupVersion.WithKind(fqKind.Kind)) { + if legacyscheme.Scheme.Recognizes(legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.WithKind(fqKind.Kind)) { codec = testapi.Default.Codec() - } else if api.Scheme.Recognizes(testapi.Extensions.GroupVersion().WithKind(fqKind.Kind)) { + } else if legacyscheme.Scheme.Recognizes(testapi.Extensions.GroupVersion().WithKind(fqKind.Kind)) { codec = testapi.Extensions.Codec() } else { return nil, fmt.Errorf("unexpected kind: %v", fqKind) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/node.go b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/node.go index e853d47a3..e4d813dfe 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/node.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/node.go @@ -24,7 +24,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // NodeRegistry implements node.Registry interface. diff --git a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/service.go b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/service.go index 8b5313a03..136d34153 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/service.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/service.go @@ -23,7 +23,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/watch" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + "k8s.io/apiserver/pkg/registry/rest" + api "k8s.io/kubernetes/pkg/apis/core" ) func NewServiceRegistry() *ServiceRegistry { @@ -72,7 +73,7 @@ func (r *ServiceRegistry) ListServices(ctx genericapirequest.Context, options *m return res, r.Err } -func (r *ServiceRegistry) CreateService(ctx genericapirequest.Context, svc *api.Service) (*api.Service, error) { +func (r *ServiceRegistry) CreateService(ctx genericapirequest.Context, svc *api.Service, createValidation rest.ValidateObjectFunc) (*api.Service, error) { r.mu.Lock() defer r.mu.Unlock() @@ -99,7 +100,7 @@ func (r *ServiceRegistry) DeleteService(ctx genericapirequest.Context, id string return r.Err } -func (r *ServiceRegistry) UpdateService(ctx genericapirequest.Context, svc *api.Service) (*api.Service, error) { +func (r *ServiceRegistry) UpdateService(ctx genericapirequest.Context, svc *api.Service, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (*api.Service, error) { r.mu.Lock() defer r.mu.Unlock() diff --git a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/BUILD index e149d7c3f..0ed675fcd 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/BUILD @@ -27,7 +27,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/scheduling/priorityclass", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/scheduling:go_default_library", "//pkg/apis/scheduling/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/registry.go index 9c98af930..5e4c44dc1 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/registry.go @@ -28,8 +28,8 @@ import ( // Registry is an interface for things that know how to store PriorityClass. type Registry interface { ListPriorityClasses(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*scheduling.PriorityClassList, error) - CreatePriorityClass(ctx genericapirequest.Context, pc *scheduling.PriorityClass) error - UpdatePriorityClass(ctx genericapirequest.Context, pc *scheduling.PriorityClass) error + CreatePriorityClass(ctx genericapirequest.Context, pc *scheduling.PriorityClass, createValidation rest.ValidateObjectFunc) error + UpdatePriorityClass(ctx genericapirequest.Context, pc *scheduling.PriorityClass, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error GetPriorityClass(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*scheduling.PriorityClass, error) DeletePriorityClass(ctx genericapirequest.Context, name string) error WatchPriorityClasses(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) @@ -55,13 +55,13 @@ func (s *storage) ListPriorityClasses(ctx genericapirequest.Context, options *me return obj.(*scheduling.PriorityClassList), nil } -func (s *storage) CreatePriorityClass(ctx genericapirequest.Context, pc *scheduling.PriorityClass) error { - _, err := s.Create(ctx, pc, false) +func (s *storage) CreatePriorityClass(ctx genericapirequest.Context, pc *scheduling.PriorityClass, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, pc, createValidation, false) return err } -func (s *storage) UpdatePriorityClass(ctx genericapirequest.Context, pc *scheduling.PriorityClass) error { - _, _, err := s.Update(ctx, pc.Name, rest.DefaultUpdatedObjectInfo(pc)) +func (s *storage) UpdatePriorityClass(ctx genericapirequest.Context, pc *scheduling.PriorityClass, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, pc.Name, rest.DefaultUpdatedObjectInfo(pc), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/strategy.go index 6a6e060ee..f39dce1df 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/strategy.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/scheduling" "k8s.io/kubernetes/pkg/apis/scheduling/validation" ) @@ -33,7 +33,7 @@ type priorityClassStrategy struct { } // Strategy is the default logic that applies when creating and updating PriorityClass objects. -var Strategy = priorityClassStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = priorityClassStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped returns true because all PriorityClasses are global. func (priorityClassStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/BUILD index 94c5f2ded..54e6dd25c 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_scheduling.go"], importpath = "k8s.io/kubernetes/pkg/registry/scheduling/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/scheduling:go_default_library", "//pkg/apis/scheduling/v1alpha1:go_default_library", "//pkg/registry/scheduling/priorityclass/storage:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/storage_scheduling.go b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/storage_scheduling.go index 49418a645..f56a58653 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/storage_scheduling.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/storage_scheduling.go @@ -21,7 +21,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/scheduling" schedulingapiv1alpha1 "k8s.io/kubernetes/pkg/apis/scheduling/v1alpha1" priorityclassstore "k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/storage" @@ -30,7 +30,7 @@ import ( type RESTStorageProvider struct{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(scheduling.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(scheduling.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) if apiResourceConfigSource.AnyResourcesForVersionEnabled(schedulingapiv1alpha1.SchemeGroupVersion) { apiGroupInfo.VersionedResourcesStorageMap[schedulingapiv1alpha1.SchemeGroupVersion.Version] = p.v1alpha1Storage(apiResourceConfigSource, restOptionsGetter) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/BUILD index ce9b71434..5d58bda6a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/settings/podpreset", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/pod:go_default_library", "//pkg/apis/settings:go_default_library", "//pkg/apis/settings/validation:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/registry.go b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/registry.go index 5af80a3aa..74b056d0e 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/registry.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/registry.go @@ -28,8 +28,8 @@ import ( // Registry is an interface for things that know how to store PodPresets. type Registry interface { ListPodPresets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*settings.PodPresetList, error) - CreatePodPreset(ctx genericapirequest.Context, pp *settings.PodPreset) error - UpdatePodPreset(ctx genericapirequest.Context, pp *settings.PodPreset) error + CreatePodPreset(ctx genericapirequest.Context, pp *settings.PodPreset, createValidation rest.ValidateObjectFunc) error + UpdatePodPreset(ctx genericapirequest.Context, pp *settings.PodPreset, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error GetPodPreset(ctx genericapirequest.Context, ppID string, options *metav1.GetOptions) (*settings.PodPreset, error) DeletePodPreset(ctx genericapirequest.Context, ppID string) error WatchPodPresets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) @@ -55,13 +55,13 @@ func (s *storage) ListPodPresets(ctx genericapirequest.Context, options *metaint return obj.(*settings.PodPresetList), nil } -func (s *storage) CreatePodPreset(ctx genericapirequest.Context, pp *settings.PodPreset) error { - _, err := s.Create(ctx, pp, false) +func (s *storage) CreatePodPreset(ctx genericapirequest.Context, pp *settings.PodPreset, createValidation rest.ValidateObjectFunc) error { + _, err := s.Create(ctx, pp, createValidation, false) return err } -func (s *storage) UpdatePodPreset(ctx genericapirequest.Context, pp *settings.PodPreset) error { - _, _, err := s.Update(ctx, pp.Name, rest.DefaultUpdatedObjectInfo(pp)) +func (s *storage) UpdatePodPreset(ctx genericapirequest.Context, pp *settings.PodPreset, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) error { + _, _, err := s.Update(ctx, pp.Name, rest.DefaultUpdatedObjectInfo(pp), createValidation, updateValidation) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/storage/BUILD index 584b94f53..692dfc7ba 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/storage/BUILD @@ -38,7 +38,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/settings/podpreset/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/settings:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/storage/storage_test.go index e1b81eff8..2c4181fea 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/storage/storage_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/settings" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/strategy.go index 65db5988a..eaeb92792 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/settings/podpreset/strategy.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/pod" "k8s.io/kubernetes/pkg/apis/settings" "k8s.io/kubernetes/pkg/apis/settings/validation" @@ -34,7 +34,7 @@ type podPresetStrategy struct { } // Strategy is the default logic that applies when creating and updating Pod Preset objects. -var Strategy = podPresetStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = podPresetStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} // NamespaceScoped returns true because all Pod Presets need to be within a namespace. func (podPresetStrategy) NamespaceScoped() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/settings/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/settings/rest/BUILD index 338ccbc9b..29fac2542 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/settings/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/settings/rest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["storage_settings.go"], importpath = "k8s.io/kubernetes/pkg/registry/settings/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/settings:go_default_library", "//pkg/registry/settings/podpreset/storage:go_default_library", "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/settings/rest/storage_settings.go b/vendor/k8s.io/kubernetes/pkg/registry/settings/rest/storage_settings.go index 812b8be8d..f976b3726 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/settings/rest/storage_settings.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/settings/rest/storage_settings.go @@ -22,7 +22,7 @@ import ( "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/settings" podpresetstore "k8s.io/kubernetes/pkg/registry/settings/podpreset/storage" ) @@ -30,7 +30,7 @@ import ( type RESTStorageProvider struct{} func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(settings.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(settings.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/rest/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/storage/rest/BUILD index c4794e0c6..7fabe3b70 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/storage/rest/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/rest/BUILD @@ -10,10 +10,12 @@ go_library( srcs = ["storage_storage.go"], importpath = "k8s.io/kubernetes/pkg/registry/storage/rest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/storage:go_default_library", "//pkg/registry/storage/storageclass/storage:go_default_library", + "//pkg/registry/storage/volumeattachment/storage:go_default_library", "//vendor/k8s.io/api/storage/v1:go_default_library", + "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", "//vendor/k8s.io/api/storage/v1beta1:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/rest/storage_storage.go b/vendor/k8s.io/kubernetes/pkg/registry/storage/rest/storage_storage.go index c4d03af4d..c8ab31e4a 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/storage/rest/storage_storage.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/rest/storage_storage.go @@ -18,24 +18,30 @@ package rest import ( storageapiv1 "k8s.io/api/storage/v1" + storageapiv1alpha1 "k8s.io/api/storage/v1alpha1" storageapiv1beta1 "k8s.io/api/storage/v1beta1" "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" serverstorage "k8s.io/apiserver/pkg/server/storage" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" storageapi "k8s.io/kubernetes/pkg/apis/storage" storageclassstore "k8s.io/kubernetes/pkg/registry/storage/storageclass/storage" + volumeattachmentstore "k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage" ) type RESTStorageProvider struct { } func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { - apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(storageapi.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs) + apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(storageapi.GroupName, legacyscheme.Registry, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo + if apiResourceConfigSource.AnyResourcesForVersionEnabled(storageapiv1alpha1.SchemeGroupVersion) { + apiGroupInfo.VersionedResourcesStorageMap[storageapiv1alpha1.SchemeGroupVersion.Version] = p.v1alpha1Storage(apiResourceConfigSource, restOptionsGetter) + apiGroupInfo.GroupMeta.GroupVersion = storageapiv1alpha1.SchemeGroupVersion + } if apiResourceConfigSource.AnyResourcesForVersionEnabled(storageapiv1beta1.SchemeGroupVersion) { apiGroupInfo.VersionedResourcesStorageMap[storageapiv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter) apiGroupInfo.GroupMeta.GroupVersion = storageapiv1beta1.SchemeGroupVersion @@ -48,6 +54,19 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorag return apiGroupInfo, true } +func (p RESTStorageProvider) v1alpha1Storage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) map[string]rest.Storage { + version := storageapiv1alpha1.SchemeGroupVersion + + storage := map[string]rest.Storage{} + + if apiResourceConfigSource.ResourceEnabled(version.WithResource("volumeattachments")) { + volumeAttachmentStorage := volumeattachmentstore.NewREST(restOptionsGetter) + storage["volumeattachments"] = volumeAttachmentStorage + } + + return storage +} + func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) map[string]rest.Storage { version := storageapiv1beta1.SchemeGroupVersion diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/BUILD index 8ddd796b7..d8d1d0a37 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/BUILD @@ -14,8 +14,9 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/registry/storage/storageclass", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/apis/storage:go_default_library", + "//pkg/apis/storage/util:go_default_library", "//pkg/apis/storage/validation:go_default_library", "//pkg/features:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -32,7 +33,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/storage/storageclass", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/storage:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/storage/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/storage/BUILD index 67d33541d..8fe662983 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/storage/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/storage/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/registry/storage/storageclass/storage", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/storage:go_default_library", "//pkg/registry/registrytest:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/storage/storage_test.go index f9858b9a2..60d714042 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/storage/storage_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/storage/storage_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" storageapi "k8s.io/kubernetes/pkg/apis/storage" "k8s.io/kubernetes/pkg/registry/registrytest" ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/strategy.go index 0da812134..b1cbf49eb 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/strategy.go @@ -22,8 +22,9 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/storage/names" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/storage" + storageutil "k8s.io/kubernetes/pkg/apis/storage/util" "k8s.io/kubernetes/pkg/apis/storage/validation" "k8s.io/kubernetes/pkg/features" ) @@ -36,7 +37,7 @@ type storageClassStrategy struct { // Strategy is the default logic that applies when creating and updating // StorageClass objects via the REST API. -var Strategy = storageClassStrategy{api.Scheme, names.SimpleNameGenerator} +var Strategy = storageClassStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} func (storageClassStrategy) NamespaceScoped() bool { return false @@ -49,6 +50,8 @@ func (storageClassStrategy) PrepareForCreate(ctx genericapirequest.Context, obj if !utilfeature.DefaultFeatureGate.Enabled(features.ExpandPersistentVolumes) { class.AllowVolumeExpansion = nil } + + storageutil.DropDisabledAlphaFields(class) } func (storageClassStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { @@ -73,6 +76,8 @@ func (storageClassStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, newClass.AllowVolumeExpansion = nil oldClass.AllowVolumeExpansion = nil } + storageutil.DropDisabledAlphaFields(oldClass) + storageutil.DropDisabledAlphaFields(newClass) } func (storageClassStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/strategy_test.go index da57f0460..33842efa7 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/storageclass/strategy_test.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/storage" ) @@ -35,6 +35,7 @@ func TestStorageClassStrategy(t *testing.T) { } deleteReclaimPolicy := api.PersistentVolumeReclaimDelete + bindingMode := storage.VolumeBindingWaitForFirstConsumer storageClass := &storage.StorageClass{ ObjectMeta: metav1.ObjectMeta{ Name: "valid-class", @@ -43,7 +44,8 @@ func TestStorageClassStrategy(t *testing.T) { Parameters: map[string]string{ "foo": "bar", }, - ReclaimPolicy: &deleteReclaimPolicy, + ReclaimPolicy: &deleteReclaimPolicy, + VolumeBindingMode: &bindingMode, } Strategy.PrepareForCreate(ctx, storageClass) @@ -62,7 +64,8 @@ func TestStorageClassStrategy(t *testing.T) { Parameters: map[string]string{ "foo": "bar", }, - ReclaimPolicy: &deleteReclaimPolicy, + ReclaimPolicy: &deleteReclaimPolicy, + VolumeBindingMode: &bindingMode, } Strategy.PrepareForUpdate(ctx, newStorageClass, storageClass) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/BUILD new file mode 100644 index 000000000..7c0140686 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/BUILD @@ -0,0 +1,49 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "strategy.go", + ], + importpath = "k8s.io/kubernetes/pkg/registry/storage/volumeattachment", + visibility = ["//visibility:public"], + deps = [ + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/storage:go_default_library", + "//pkg/apis/storage/validation:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", + "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["strategy_test.go"], + importpath = "k8s.io/kubernetes/pkg/registry/storage/volumeattachment", + library = ":go_default_library", + deps = [ + "//pkg/apis/storage:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//pkg/registry/storage/volumeattachment/storage:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/doc.go b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/doc.go new file mode 100644 index 000000000..91bb45235 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/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 volumeattachment provides Registry interface and its REST +// implementation for storing volumeattachment api objects. +package volumeattachment diff --git a/vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/BUILD similarity index 61% rename from vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/BUILD rename to vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/BUILD index 36c78f95e..c05912d09 100644 --- a/vendor/k8s.io/kubernetes/federation/registry/cluster/etcd/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/BUILD @@ -1,35 +1,29 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", - srcs = ["etcd.go"], - importpath = "k8s.io/kubernetes/federation/registry/cluster/etcd", + srcs = ["storage.go"], + importpath = "k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage", + visibility = ["//visibility:public"], deps = [ - "//federation/apis/federation:go_default_library", - "//federation/registry/cluster:go_default_library", + "//pkg/apis/storage:go_default_library", + "//pkg/registry/storage/volumeattachment:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", ], ) go_test( name = "go_default_test", - srcs = ["etcd_test.go"], - importpath = "k8s.io/kubernetes/federation/registry/cluster/etcd", + srcs = ["storage_test.go"], + importpath = "k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage", library = ":go_default_library", deps = [ - "//federation/apis/federation:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", + "//pkg/apis/storage:go_default_library", "//pkg/registry/registrytest:go_default_library", + "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", @@ -50,4 +44,5 @@ filegroup( name = "all-srcs", srcs = [":package-srcs"], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/storage.go b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/storage.go new file mode 100644 index 000000000..28a3208e4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/storage.go @@ -0,0 +1,50 @@ +/* +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 storage + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic" + genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" + storageapi "k8s.io/kubernetes/pkg/apis/storage" + "k8s.io/kubernetes/pkg/registry/storage/volumeattachment" +) + +// REST object that will work against persistent volumes. +type REST struct { + *genericregistry.Store +} + +// NewREST returns a RESTStorage object that will work against persistent volumes. +func NewREST(optsGetter generic.RESTOptionsGetter) *REST { + store := &genericregistry.Store{ + NewFunc: func() runtime.Object { return &storageapi.VolumeAttachment{} }, + NewListFunc: func() runtime.Object { return &storageapi.VolumeAttachmentList{} }, + DefaultQualifiedResource: storageapi.Resource("volumeattachments"), + + CreateStrategy: volumeattachment.Strategy, + UpdateStrategy: volumeattachment.Strategy, + DeleteStrategy: volumeattachment.Strategy, + ReturnDeletedObject: true, + } + options := &generic.StoreOptions{RESTOptions: optsGetter} + if err := store.CompleteWithOptions(options); err != nil { + panic(err) // TODO: Propagate error up + } + + return &REST{store} +} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/storage_test.go b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/storage_test.go new file mode 100644 index 000000000..e6de8b54b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/storage/storage_test.go @@ -0,0 +1,190 @@ +/* +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 storage + +import ( + "testing" + + storageapiv1alpha1 "k8s.io/api/storage/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic" + etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" + "k8s.io/kubernetes/pkg/api/testapi" + storageapi "k8s.io/kubernetes/pkg/apis/storage" + "k8s.io/kubernetes/pkg/registry/registrytest" +) + +func newStorage(t *testing.T) (*REST, *etcdtesting.EtcdTestServer) { + etcdStorage, server := registrytest.NewEtcdStorage(t, storageapi.GroupName) + restOptions := generic.RESTOptions{ + StorageConfig: etcdStorage, + Decorator: generic.UndecoratedStorage, + DeleteCollectionWorkers: 1, + ResourcePrefix: "volumeattachments", + } + volumeAttachmentStorage := NewREST(restOptions) + return volumeAttachmentStorage, server +} + +func validNewVolumeAttachment(name string) *storageapi.VolumeAttachment { + pvName := "foo" + return &storageapi.VolumeAttachment{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + Spec: storageapi.VolumeAttachmentSpec{ + Attacher: "valid-attacher", + Source: storageapi.VolumeAttachmentSource{ + PersistentVolumeName: &pvName, + }, + NodeName: "valid-node", + }, + } +} + +func validChangedVolumeAttachment() *storageapi.VolumeAttachment { + return validNewVolumeAttachment("foo") +} + +func TestCreate(t *testing.T) { + if *testapi.Storage.GroupVersion() != storageapiv1alpha1.SchemeGroupVersion { + // skip the test for all versions exception v1alpha1 + return + } + + storage, server := newStorage(t) + defer server.Terminate(t) + defer storage.Store.DestroyFunc() + test := registrytest.New(t, storage.Store).ClusterScope() + volumeAttachment := validNewVolumeAttachment("foo") + volumeAttachment.ObjectMeta = metav1.ObjectMeta{GenerateName: "foo"} + pvName := "foo" + test.TestCreate( + // valid + volumeAttachment, + // invalid + &storageapi.VolumeAttachment{ + ObjectMeta: metav1.ObjectMeta{Name: "*BadName!"}, + Spec: storageapi.VolumeAttachmentSpec{ + Attacher: "invalid-attacher-!@#$%^&*()", + Source: storageapi.VolumeAttachmentSource{ + PersistentVolumeName: &pvName, + }, + NodeName: "invalid-node-!@#$%^&*()", + }, + }, + ) +} + +func TestUpdate(t *testing.T) { + if *testapi.Storage.GroupVersion() != storageapiv1alpha1.SchemeGroupVersion { + // skip the test for all versions except v1alpha1 + return + } + + storage, server := newStorage(t) + defer server.Terminate(t) + defer storage.Store.DestroyFunc() + test := registrytest.New(t, storage.Store).ClusterScope() + test.TestUpdate( + // valid + validNewVolumeAttachment("foo"), + // updateFunc + func(obj runtime.Object) runtime.Object { + object := obj.(*storageapi.VolumeAttachment) + object.Status.Attached = true + return object + }, + //invalid update + func(obj runtime.Object) runtime.Object { + object := obj.(*storageapi.VolumeAttachment) + object.Spec.Attacher = "invalid-attacher-!@#$%^&*()" + return object + }, + ) +} + +func TestDelete(t *testing.T) { + if *testapi.Storage.GroupVersion() != storageapiv1alpha1.SchemeGroupVersion { + // skip the test for all versions except v1alpha1 + return + } + + storage, server := newStorage(t) + defer server.Terminate(t) + defer storage.Store.DestroyFunc() + test := registrytest.New(t, storage.Store).ClusterScope().ReturnDeletedObject() + test.TestDelete(validNewVolumeAttachment("foo")) +} + +func TestGet(t *testing.T) { + if *testapi.Storage.GroupVersion() != storageapiv1alpha1.SchemeGroupVersion { + // skip the test for all versions except v1alpha1 + return + } + + storage, server := newStorage(t) + defer server.Terminate(t) + defer storage.Store.DestroyFunc() + test := registrytest.New(t, storage.Store).ClusterScope() + test.TestGet(validNewVolumeAttachment("foo")) +} + +func TestList(t *testing.T) { + if *testapi.Storage.GroupVersion() != storageapiv1alpha1.SchemeGroupVersion { + // skip the test for all versions except v1alpha1 + return + } + + storage, server := newStorage(t) + defer server.Terminate(t) + defer storage.Store.DestroyFunc() + test := registrytest.New(t, storage.Store).ClusterScope() + test.TestList(validNewVolumeAttachment("foo")) +} + +func TestWatch(t *testing.T) { + if *testapi.Storage.GroupVersion() != storageapiv1alpha1.SchemeGroupVersion { + // skip the test for all versions except v1alpha1 + return + } + + storage, server := newStorage(t) + defer server.Terminate(t) + defer storage.Store.DestroyFunc() + test := registrytest.New(t, storage.Store).ClusterScope() + test.TestWatch( + validNewVolumeAttachment("foo"), + // matching labels + []labels.Set{}, + // not matching labels + []labels.Set{ + {"foo": "bar"}, + }, + // matching fields + []fields.Set{ + {"metadata.name": "foo"}, + }, + // not matching fields + []fields.Set{ + {"metadata.name": "bar"}, + }, + ) +} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/strategy.go new file mode 100644 index 000000000..e319a0d87 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/strategy.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 volumeattachment + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/storage/names" + "k8s.io/kubernetes/pkg/api/legacyscheme" + "k8s.io/kubernetes/pkg/apis/storage" + "k8s.io/kubernetes/pkg/apis/storage/validation" +) + +// volumeAttachmentStrategy implements behavior for VolumeAttachment objects +type volumeAttachmentStrategy struct { + runtime.ObjectTyper + names.NameGenerator +} + +// Strategy is the default logic that applies when creating and updating +// VolumeAttachment objects via the REST API. +var Strategy = volumeAttachmentStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} + +func (volumeAttachmentStrategy) NamespaceScoped() bool { + return false +} + +// ResetBeforeCreate clears the Status field which is not allowed to be set by end users on creation. +func (volumeAttachmentStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { +} + +func (volumeAttachmentStrategy) Validate(ctx genericapirequest.Context, obj runtime.Object) field.ErrorList { + volumeAttachment := obj.(*storage.VolumeAttachment) + return validation.ValidateVolumeAttachment(volumeAttachment) +} + +// Canonicalize normalizes the object after validation. +func (volumeAttachmentStrategy) Canonicalize(obj runtime.Object) { +} + +func (volumeAttachmentStrategy) AllowCreateOnUpdate() bool { + return false +} + +// PrepareForUpdate sets the Status fields which is not allowed to be set by an end user updating a PV +func (volumeAttachmentStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, old runtime.Object) { +} + +func (volumeAttachmentStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { + newVolumeAttachmentObj := obj.(*storage.VolumeAttachment) + oldVolumeAttachmentObj := old.(*storage.VolumeAttachment) + errorList := validation.ValidateVolumeAttachment(newVolumeAttachmentObj) + return append(errorList, validation.ValidateVolumeAttachmentUpdate(newVolumeAttachmentObj, oldVolumeAttachmentObj)...) +} + +func (volumeAttachmentStrategy) AllowUnconditionalUpdate() bool { + return false +} diff --git a/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/strategy_test.go new file mode 100644 index 000000000..33e8985e7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/storage/volumeattachment/strategy_test.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 volumeattachment + +import ( + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/kubernetes/pkg/apis/storage" +) + +func TestVolumeAttachmentStrategy(t *testing.T) { + ctx := genericapirequest.NewDefaultContext() + if Strategy.NamespaceScoped() { + t.Errorf("VolumeAttachment must not be namespace scoped") + } + if Strategy.AllowCreateOnUpdate() { + t.Errorf("VolumeAttachment should not allow create on update") + } + + pvName := "name" + volumeAttachment := &storage.VolumeAttachment{ + ObjectMeta: metav1.ObjectMeta{ + Name: "valid-attachment", + }, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "valid-attacher", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &pvName, + }, + NodeName: "valid-node", + }, + } + + Strategy.PrepareForCreate(ctx, volumeAttachment) + + errs := Strategy.Validate(ctx, volumeAttachment) + if len(errs) != 0 { + t.Errorf("unexpected error validating %v", errs) + } + + newVolumeAttachment := &storage.VolumeAttachment{ + ObjectMeta: metav1.ObjectMeta{ + Name: "valid-attachment-2", + }, + Spec: storage.VolumeAttachmentSpec{ + Attacher: "valid-attacher-2", + Source: storage.VolumeAttachmentSource{ + PersistentVolumeName: &pvName, + }, + NodeName: "valid-node-2", + }, + } + + Strategy.PrepareForUpdate(ctx, newVolumeAttachment, volumeAttachment) + + errs = Strategy.ValidateUpdate(ctx, newVolumeAttachment, volumeAttachment) + if len(errs) == 0 { + t.Errorf("Expected a validation error") + } + +} diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/BUILD b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/BUILD index 55a68dec3..282d256aa 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/security/podsecuritypolicy/apparmor:go_default_library", "//pkg/security/podsecuritypolicy/capabilities:go_default_library", @@ -39,8 +39,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/security/apparmor:go_default_library", "//pkg/security/podsecuritypolicy/seccomp:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/BUILD b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/BUILD index 4ec208951..d1cf962c8 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["strategy.go"], importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/security/apparmor:go_default_library", "//pkg/util/maps:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", @@ -24,7 +24,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/security/apparmor:go_default_library", "//pkg/util/maps:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/strategy.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/strategy.go index 47755c80c..9f6affdd2 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/strategy.go @@ -21,7 +21,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/security/apparmor" "k8s.io/kubernetes/pkg/util/maps" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/strategy_test.go index 927bdf9ae..ac4edc448 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor/strategy_test.go @@ -23,7 +23,7 @@ import ( "github.com/stretchr/testify/assert" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/security/apparmor" "k8s.io/kubernetes/pkg/util/maps" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/BUILD b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/BUILD index 939756ecb..87681f9e7 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/BUILD @@ -15,7 +15,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", @@ -28,7 +28,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/mustrunas.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/mustrunas.go index 6ab75c214..bb713c7be 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/mustrunas.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/mustrunas.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/mustrunas_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/mustrunas_test.go index 21044e924..56cf5db5a 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/mustrunas_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/mustrunas_test.go @@ -20,7 +20,7 @@ import ( "reflect" "testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -373,14 +373,14 @@ func TestValidateDrops(t *testing.T) { containerCaps: &api.Capabilities{ Drop: []api.Capability{"bar"}, }, - expectedError: `capabilities.drop: Invalid value: []api.Capability{"bar"}: foo is required to be dropped but was not found`, + expectedError: `capabilities.drop: Invalid value: []core.Capability{"bar"}: foo is required to be dropped but was not found`, }, "validation is case sensitive": { requiredDropCaps: []api.Capability{"foo"}, containerCaps: &api.Capabilities{ Drop: []api.Capability{"FOO"}, }, - expectedError: `capabilities.drop: Invalid value: []api.Capability{"FOO"}: foo is required to be dropped but was not found`, + expectedError: `capabilities.drop: Invalid value: []core.Capability{"FOO"}: foo is required to be dropped but was not found`, }, } diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/types.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/types.go index c936d9386..47226faba 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/types.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities/types.go @@ -18,7 +18,7 @@ package capabilities import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Strategy defines the interface for all cap constraint strategies. diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/factory.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/factory.go index 0fbd8a714..69cf3945d 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/factory.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/factory.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor" "k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities" diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/BUILD b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/BUILD index edb5d0eb9..2a7bbe66e 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/group", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/security/podsecuritypolicy/util:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", @@ -32,7 +32,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/group", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/mustrunas.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/mustrunas.go index b2182afaa..8fc48ac29 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/mustrunas.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/mustrunas.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" psputil "k8s.io/kubernetes/pkg/security/podsecuritypolicy/util" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/mustrunas_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/mustrunas_test.go index d3075a886..395ffd80e 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/mustrunas_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/mustrunas_test.go @@ -17,10 +17,9 @@ limitations under the License. package group import ( - "testing" - - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" + "testing" ) func TestMustRunAsOptions(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/runasany.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/runasany.go index 071f2e08e..3890f8499 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/runasany.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/runasany.go @@ -18,7 +18,7 @@ package group import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // runAsAny implements the GroupStrategy interface. diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/types.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/types.go index fa3a11d97..dbf152042 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/types.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/group/types.go @@ -18,7 +18,7 @@ package group import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // GroupStrategy defines the interface for all group constraint strategies. diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/provider.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/provider.go index fadacec1d..139a453a9 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/provider.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/provider.go @@ -21,7 +21,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" psputil "k8s.io/kubernetes/pkg/security/podsecuritypolicy/util" "k8s.io/kubernetes/pkg/securitycontext" @@ -307,7 +307,7 @@ func (s *simpleProvider) ValidateContainerSecurityContext(pod *api.Pod, containe func (s *simpleProvider) hasInvalidHostPort(container *api.Container, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for _, cp := range container.Ports { - if cp.HostPort > 0 && !s.isValidHostPort(int(cp.HostPort)) { + if cp.HostPort > 0 && !s.isValidHostPort(cp.HostPort) { detail := fmt.Sprintf("Host port %d is not allowed to be used. Allowed ports: [%s]", cp.HostPort, hostPortRangesToString(s.psp.Spec.HostPorts)) allErrs = append(allErrs, field.Invalid(fldPath.Child("hostPort"), cp.HostPort, detail)) } @@ -316,7 +316,7 @@ func (s *simpleProvider) hasInvalidHostPort(container *api.Container, fldPath *f } // isValidHostPort returns true if the port falls in any range allowed by the PSP. -func (s *simpleProvider) isValidHostPort(port int) bool { +func (s *simpleProvider) isValidHostPort(port int32) bool { for _, hostPortRange := range s.psp.Spec.HostPorts { if port >= hostPortRange.Min && port <= hostPortRange.Max { return true diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/provider_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/provider_test.go index cfba7786c..b0389e33a 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/provider_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/provider_test.go @@ -28,8 +28,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/diff" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + api "k8s.io/kubernetes/pkg/apis/core" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/security/apparmor" "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp" @@ -387,7 +387,7 @@ func TestValidateContainerSecurityContextFailures(t *testing.T) { v1FailInvalidAppArmorPod := defaultV1Pod() apparmor.SetProfileName(v1FailInvalidAppArmorPod, defaultContainerName, apparmor.ProfileNamePrefix+"foo") failInvalidAppArmorPod := &api.Pod{} - k8s_api_v1.Convert_v1_Pod_To_api_Pod(v1FailInvalidAppArmorPod, failInvalidAppArmorPod, nil) + k8s_api_v1.Convert_v1_Pod_To_core_Pod(v1FailInvalidAppArmorPod, failInvalidAppArmorPod, nil) failAppArmorPSP := defaultPSP() failAppArmorPSP.Annotations = map[string]string{ @@ -699,7 +699,7 @@ func TestValidateContainerSecurityContextSuccess(t *testing.T) { v1AppArmorPod := defaultV1Pod() apparmor.SetProfileName(v1AppArmorPod, defaultContainerName, apparmor.ProfileRuntimeDefault) appArmorPod := &api.Pod{} - k8s_api_v1.Convert_v1_Pod_To_api_Pod(v1AppArmorPod, appArmorPod, nil) + k8s_api_v1.Convert_v1_Pod_To_core_Pod(v1AppArmorPod, appArmorPod, nil) privPSP := defaultPSP() privPSP.Spec.Privileged = true diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/BUILD b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/BUILD index fa673f075..c49f6fc69 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["strategy.go"], importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) @@ -22,7 +22,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/strategy.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/strategy.go index aaeb0c1f3..715156e8a 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/strategy.go @@ -21,7 +21,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) const ( diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/strategy_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/strategy_test.go index 663900ecf..c79602c22 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/strategy_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp/strategy_test.go @@ -22,7 +22,7 @@ import ( "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) var ( diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/BUILD b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/BUILD index 9319a36cc..97f5e5292 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], @@ -31,7 +31,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/mustrunas.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/mustrunas.go index 4f13272bd..b2605cd33 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/mustrunas.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/mustrunas.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/mustrunas_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/mustrunas_test.go index bd57b8a98..986fa8adb 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/mustrunas_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/mustrunas_test.go @@ -17,12 +17,11 @@ limitations under the License. package selinux import ( + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/extensions" "reflect" "strings" "testing" - - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/extensions" ) func TestMustRunAsOptions(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/runasany.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/runasany.go index 62fd9083b..008ad0a41 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/runasany.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/runasany.go @@ -18,7 +18,7 @@ package selinux import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/runasany_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/runasany_test.go index d31550034..8e1a7f1b0 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/runasany_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/runasany_test.go @@ -17,10 +17,9 @@ limitations under the License. package selinux import ( - "testing" - - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" + "testing" ) func TestRunAsAnyOptions(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/types.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/types.go index 8f312e64c..cdaae8093 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/types.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/selinux/types.go @@ -18,7 +18,7 @@ package selinux import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // SELinuxStrategy defines the interface for all SELinux constraint strategies. diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/BUILD b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/BUILD index 20aed789a..dbd473ec8 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/BUILD @@ -14,8 +14,8 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) @@ -26,8 +26,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/mustmatchpatterns.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/mustmatchpatterns.go index 969993450..b59dd9d3f 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/mustmatchpatterns.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/mustmatchpatterns.go @@ -21,8 +21,8 @@ import ( "strings" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" ) // mustMatchPatterns implements the SysctlsStrategy interface diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/mustmatchpatterns_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/mustmatchpatterns_test.go index f8aef3df1..7622c8266 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/mustmatchpatterns_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/mustmatchpatterns_test.go @@ -17,10 +17,9 @@ limitations under the License. package sysctl import ( + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "testing" - - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" ) func TestValidate(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/types.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/types.go index ee9291bfb..a6c2034a8 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/types.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl/types.go @@ -18,7 +18,7 @@ package sysctl import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // SysctlsStrategy defines the interface for all sysctl strategies. diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/types.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/types.go index d067a0325..31fcc5484 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/types.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/types.go @@ -18,7 +18,7 @@ package podsecuritypolicy import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/security/podsecuritypolicy/apparmor" "k8s.io/kubernetes/pkg/security/podsecuritypolicy/capabilities" diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/BUILD b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/BUILD index 41b0223ab..f4e57284a 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/BUILD @@ -17,7 +17,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/user", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/security/podsecuritypolicy/util:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", @@ -34,7 +34,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/user", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/mustrunas.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/mustrunas.go index df8916335..6b0ed1397 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/mustrunas.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/mustrunas.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" psputil "k8s.io/kubernetes/pkg/security/podsecuritypolicy/util" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/mustrunas_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/mustrunas_test.go index 912188206..5a0a77037 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/mustrunas_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/mustrunas_test.go @@ -17,11 +17,10 @@ limitations under the License. package user import ( + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/extensions" "strings" "testing" - - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/extensions" ) func TestNewMustRunAs(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/nonroot.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/nonroot.go index 2a9624fc0..68e644a7e 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/nonroot.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/nonroot.go @@ -18,7 +18,7 @@ package user import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/nonroot_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/nonroot_test.go index 7822ccf12..1597af008 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/nonroot_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/nonroot_test.go @@ -17,10 +17,9 @@ limitations under the License. package user import ( - "testing" - - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" + "testing" ) func TestNonRootOptions(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/runasany.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/runasany.go index 729201bf6..e1384f2da 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/runasany.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/runasany.go @@ -18,7 +18,7 @@ package user import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/types.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/types.go index 8df0c766d..fbcc34c79 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/types.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/user/types.go @@ -18,7 +18,7 @@ package user import ( "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // RunAsUserStrategy defines the interface for all uid constraint strategies. diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/BUILD b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/BUILD index 03652e680..118784e9f 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/util", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", ], @@ -26,7 +26,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/security/podsecuritypolicy/util", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/util.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/util.go index 3ff6d89bc..1e5b673dc 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/util.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/util.go @@ -21,7 +21,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" ) diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/util_test.go b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/util_test.go index 048e793fa..f4910a497 100644 --- a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/util_test.go @@ -17,11 +17,10 @@ limitations under the License. package util import ( + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/extensions" "reflect" "testing" - - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/extensions" ) // TestVolumeSourceFSTypeDrift ensures that for every known type of volume source (by the fields on diff --git a/vendor/k8s.io/kubernetes/pkg/securitycontext/BUILD b/vendor/k8s.io/kubernetes/pkg/securitycontext/BUILD index 106114028..fa4eb424a 100644 --- a/vendor/k8s.io/kubernetes/pkg/securitycontext/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/securitycontext/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/securitycontext", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", ], ) @@ -30,7 +30,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/securitycontext", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/securitycontext/accessors.go b/vendor/k8s.io/kubernetes/pkg/securitycontext/accessors.go index f7abb22a2..98ac6e0b9 100644 --- a/vendor/k8s.io/kubernetes/pkg/securitycontext/accessors.go +++ b/vendor/k8s.io/kubernetes/pkg/securitycontext/accessors.go @@ -19,7 +19,7 @@ package securitycontext import ( "reflect" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // PodSecurityContextAccessor allows reading the values of a PodSecurityContext object diff --git a/vendor/k8s.io/kubernetes/pkg/securitycontext/accessors_test.go b/vendor/k8s.io/kubernetes/pkg/securitycontext/accessors_test.go index 7f6e73cd0..68b129836 100644 --- a/vendor/k8s.io/kubernetes/pkg/securitycontext/accessors_test.go +++ b/vendor/k8s.io/kubernetes/pkg/securitycontext/accessors_test.go @@ -21,7 +21,7 @@ import ( "testing" "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestPodSecurityContextAccessor(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/securitycontext/fake.go b/vendor/k8s.io/kubernetes/pkg/securitycontext/fake.go index 2c2d0d22d..975445bab 100644 --- a/vendor/k8s.io/kubernetes/pkg/securitycontext/fake.go +++ b/vendor/k8s.io/kubernetes/pkg/securitycontext/fake.go @@ -18,7 +18,7 @@ package securitycontext import ( "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // ValidSecurityContextWithContainerDefaults creates a valid security context provider based on diff --git a/vendor/k8s.io/kubernetes/pkg/securitycontext/util.go b/vendor/k8s.io/kubernetes/pkg/securitycontext/util.go index dee1564d0..73d23a431 100644 --- a/vendor/k8s.io/kubernetes/pkg/securitycontext/util.go +++ b/vendor/k8s.io/kubernetes/pkg/securitycontext/util.go @@ -21,7 +21,7 @@ import ( "strings" "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // HasPrivilegedRequest returns the value of SecurityContext.Privileged, taking into account diff --git a/vendor/k8s.io/kubernetes/pkg/serviceaccount/BUILD b/vendor/k8s.io/kubernetes/pkg/serviceaccount/BUILD index 7300dc6ce..afafa2849 100644 --- a/vendor/k8s.io/kubernetes/pkg/serviceaccount/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/serviceaccount/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/serviceaccount", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/github.com/dgrijalva/jwt-go:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/serviceaccount/util.go b/vendor/k8s.io/kubernetes/pkg/serviceaccount/util.go index df4dc3a91..0503c1513 100644 --- a/vendor/k8s.io/kubernetes/pkg/serviceaccount/util.go +++ b/vendor/k8s.io/kubernetes/pkg/serviceaccount/util.go @@ -20,7 +20,7 @@ import ( "k8s.io/api/core/v1" apiserverserviceaccount "k8s.io/apiserver/pkg/authentication/serviceaccount" "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // UserInfo returns a user.Info interface for the given namespace, service account name and UID diff --git a/vendor/k8s.io/kubernetes/pkg/util/bandwidth/BUILD b/vendor/k8s.io/kubernetes/pkg/util/bandwidth/BUILD index 166acf29b..f440a61ce 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/bandwidth/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/bandwidth/BUILD @@ -46,7 +46,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/util/bandwidth", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ] + select({ diff --git a/vendor/k8s.io/kubernetes/pkg/util/bandwidth/utils_test.go b/vendor/k8s.io/kubernetes/pkg/util/bandwidth/utils_test.go index 56687975a..5ce2287ac 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/bandwidth/utils_test.go +++ b/vendor/k8s.io/kubernetes/pkg/util/bandwidth/utils_test.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestExtractPodBandwidthResources(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/util/dbus/fake_dbus.go b/vendor/k8s.io/kubernetes/pkg/util/dbus/fake_dbus.go index 44131272e..28cde82fb 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/dbus/fake_dbus.go +++ b/vendor/k8s.io/kubernetes/pkg/util/dbus/fake_dbus.go @@ -18,6 +18,7 @@ package dbus import ( "fmt" + "sync" godbus "github.com/godbus/dbus" ) @@ -30,6 +31,7 @@ type DBusFake struct { // DBusFakeConnection represents a fake D-Bus connection type DBusFakeConnection struct { + lock sync.Mutex busObject *fakeObject objects map[string]*fakeObject signalHandlers []chan<- *godbus.Signal @@ -88,6 +90,8 @@ func (conn *DBusFakeConnection) Object(name, path string) Object { // Signal is part of the Connection interface func (conn *DBusFakeConnection) Signal(ch chan<- *godbus.Signal) { + conn.lock.Lock() + defer conn.lock.Unlock() for i := range conn.signalHandlers { if conn.signalHandlers[i] == ch { conn.signalHandlers = append(conn.signalHandlers[:i], conn.signalHandlers[i+1:]...) @@ -109,6 +113,8 @@ func (conn *DBusFakeConnection) AddObject(name, path string, handler DBusFakeHan // EmitSignal emits a signal on conn func (conn *DBusFakeConnection) EmitSignal(name, path, iface, signal string, args ...interface{}) { + conn.lock.Lock() + defer conn.lock.Unlock() sig := &godbus.Signal{ Sender: name, Path: godbus.ObjectPath(path), diff --git a/vendor/k8s.io/kubernetes/pkg/util/file/BUILD b/vendor/k8s.io/kubernetes/pkg/util/file/BUILD index 3a3142a78..325d1da14 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/file/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/file/BUILD @@ -3,6 +3,7 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( @@ -23,3 +24,14 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = ["file_test.go"], + importpath = "k8s.io/kubernetes/pkg/util/file", + library = ":go_default_library", + deps = [ + "//vendor/github.com/spf13/afero:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/util/file/file_test.go b/vendor/k8s.io/kubernetes/pkg/util/file/file_test.go new file mode 100644 index 000000000..21bf49521 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/file/file_test.go @@ -0,0 +1,149 @@ +/* +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 file + +import ( + "os" + "path/filepath" + "sort" + "testing" + + "github.com/spf13/afero" + "github.com/stretchr/testify/assert" +) + +func RecoverEnv(wd, tmpDir string) { + os.Chdir(wd) + os.RemoveAll(tmpDir) +} + +func TestFileUtils(t *testing.T) { + fs := &afero.Afero{Fs: afero.NewOsFs()} + // Create tmp dir + tmpDir, err := fs.TempDir(os.TempDir(), "util_file_test_") + if err != nil { + t.Fatal("Failed to test: failed to create temp dir.") + } + + // create tmp file + tmpFile, err := fs.TempFile(tmpDir, "test_file_exists_") + if err != nil { + t.Fatal("Failed to test: failed to create temp file.") + } + + // create tmp sym link + tmpSymlinkName := filepath.Join(tmpDir, "test_file_exists_sym_link") + err = os.Symlink(tmpFile.Name(), tmpSymlinkName) + if err != nil { + t.Fatal("Failed to test: failed to create sym link.") + } + + // create tmp sub dir + tmpSubDir, err := fs.TempDir(tmpDir, "sub_") + if err != nil { + t.Fatal("Failed to test: failed to create temp sub dir.") + } + + // record the current dir + currentDir, err := os.Getwd() + if err != nil { + t.Fatal("Failed to test: failed to get current dir.") + } + + // change the work dir to temp dir + err = os.Chdir(tmpDir) + if err != nil { + t.Fatal("Failed to test: failed to change work dir.") + } + + // recover test enviroment + defer RecoverEnv(currentDir, tmpDir) + + t.Run("TestFileExists", func(t *testing.T) { + tests := []struct { + name string + fileName string + expectedError bool + expectedValue bool + }{ + {"file_not_exists", filepath.Join(tmpDir, "file_not_exist_case"), false, false}, + {"file_exists", tmpFile.Name(), false, true}, + } + + for _, test := range tests { + realValued, realError := FileExists(test.fileName) + if test.expectedError { + assert.Errorf(t, realError, "Failed to test with '%s': %s", test.fileName, test.name) + } else { + assert.EqualValuesf(t, test.expectedValue, realValued, "Failed to test with '%s': %s", test.fileName, test.name) + } + } + }) + + t.Run("TestFileOrSymlinkExists", func(t *testing.T) { + tests := []struct { + name string + fileName string + expectedError bool + expectedValue bool + }{ + {"file_not_exists", filepath.Join(tmpDir, "file_not_exist_case"), false, false}, + {"file_exists", tmpFile.Name(), false, true}, + {"symlink_exists", tmpSymlinkName, false, true}, + } + + for _, test := range tests { + realValued, realError := FileOrSymlinkExists(test.fileName) + if test.expectedError { + assert.Errorf(t, realError, "Failed to test with '%s': %s", test.fileName, test.name) + } else { + assert.EqualValuesf(t, test.expectedValue, realValued, "Failed to test with '%s': %s", test.fileName, test.name) + } + } + }) + + t.Run("TestReadDirNoStat", func(t *testing.T) { + _, tmpFileSimpleName := filepath.Split(tmpFile.Name()) + _, tmpSymlinkSimpleName := filepath.Split(tmpSymlinkName) + _, tmpSubDirSimpleName := filepath.Split(tmpSubDir) + + tests := []struct { + name string + dirName string + expectedError bool + expectedValue []string + }{ + {"dir_not_exists", filepath.Join(tmpDir, "file_not_exist_case"), true, []string{}}, + {"dir_is_empty", "", false, []string{tmpFileSimpleName, tmpSymlinkSimpleName, tmpSubDirSimpleName}}, + {"dir_exists", tmpDir, false, []string{tmpFileSimpleName, tmpSymlinkSimpleName, tmpSubDirSimpleName}}, + } + + for _, test := range tests { + realValued, realError := ReadDirNoStat(test.dirName) + + // execute sort action before compare + sort.Strings(realValued) + sort.Strings(test.expectedValue) + + if test.expectedError { + assert.Errorf(t, realError, "Failed to test with '%s': %s", test.dirName, test.name) + } else { + assert.EqualValuesf(t, test.expectedValue, realValued, "Failed to test with '%s': %s", test.dirName, test.name) + } + } + }) +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/initsystem/initsystem.go b/vendor/k8s.io/kubernetes/pkg/util/initsystem/initsystem.go index 435cf57ad..e4f8870a3 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/initsystem/initsystem.go +++ b/vendor/k8s.io/kubernetes/pkg/util/initsystem/initsystem.go @@ -43,13 +43,13 @@ type SystemdInitSystem struct{} func (sysd SystemdInitSystem) ServiceStart(service string) error { args := []string{"start", service} - _, err := exec.Command("systemctl", args...).Output() + err := exec.Command("systemctl", args...).Run() return err } func (sysd SystemdInitSystem) ServiceStop(service string) error { args := []string{"stop", service} - _, err := exec.Command("systemctl", args...).Output() + err := exec.Command("systemctl", args...).Run() return err } @@ -65,7 +65,7 @@ func (sysd SystemdInitSystem) ServiceExists(service string) bool { func (sysd SystemdInitSystem) ServiceIsEnabled(service string) bool { args := []string{"is-enabled", service} - _, err := exec.Command("systemctl", args...).Output() + err := exec.Command("systemctl", args...).Run() if err != nil { return false } @@ -86,7 +86,52 @@ func (sysd SystemdInitSystem) ServiceIsActive(service string) bool { return false } -// getInitSystem returns an InitSystem for the current system, or nil +// WindowsInitSystem is the windows implementation of InitSystem +type WindowsInitSystem struct{} + +func (sysd WindowsInitSystem) ServiceStart(service string) error { + args := []string{"Start-Service", service} + err := exec.Command("powershell", args...).Run() + return err +} + +func (sysd WindowsInitSystem) ServiceStop(service string) error { + args := []string{"Stop-Service", service} + err := exec.Command("powershell", args...).Run() + return err +} + +func (sysd WindowsInitSystem) ServiceExists(service string) bool { + args := []string{"Get-Service", service} + err := exec.Command("powershell", args...).Run() + if err != nil { + return false + } + return true + +} + +func (sysd WindowsInitSystem) ServiceIsEnabled(service string) bool { + args := []string{"Get-Service", service + "| select -property starttype"} + outBytes, _ := exec.Command("powershell", args...).Output() + output := strings.TrimSpace(string(outBytes)) + if strings.Contains(output, "Automatic") { + return true + } + return false +} + +func (sysd WindowsInitSystem) ServiceIsActive(service string) bool { + args := []string{"Get-Service", service + "| select -property status"} + outBytes, _ := exec.Command("powershell", args...).Output() + output := strings.TrimSpace(string(outBytes)) + if strings.Contains(output, "Running") { + return true + } + return false +} + +// GetInitSystem returns an InitSystem for the current system, or nil // if we cannot detect a supported init system for pre-flight checks. // This indicates we will skip init system checks, not an error. func GetInitSystem() (InitSystem, error) { @@ -95,5 +140,9 @@ func GetInitSystem() (InitSystem, error) { if err == nil { return &SystemdInitSystem{}, nil } + _, err = exec.LookPath("wininit.exe") + if err == nil { + return &WindowsInitSystem{}, nil + } return nil, fmt.Errorf("no supported init system detected, skipping checking for services") } diff --git a/vendor/k8s.io/kubernetes/pkg/util/iptables/iptables.go b/vendor/k8s.io/kubernetes/pkg/util/iptables/iptables.go index 065a36c8a..292288d21 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/iptables/iptables.go +++ b/vendor/k8s.io/kubernetes/pkg/util/iptables/iptables.go @@ -82,6 +82,7 @@ type Table string const ( TableNAT Table = "nat" TableFilter Table = "filter" + TableMangle Table = "mangle" ) type Chain string @@ -91,6 +92,7 @@ const ( ChainPrerouting Chain = "PREROUTING" ChainOutput Chain = "OUTPUT" ChainInput Chain = "INPUT" + ChainForward Chain = "FORWARD" ) const ( @@ -118,9 +120,11 @@ const NoFlushTables FlushFlag = false // (test whether a rule exists). const MinCheckVersion = "1.4.11" -// Minimum iptables versions supporting the -w and -w2 flags -const MinWaitVersion = "1.4.20" -const MinWait2Version = "1.4.22" +// Minimum iptables versions supporting the -w and -w flags +const WaitMinVersion = "1.4.20" +const WaitSecondsMinVersion = "1.4.22" +const WaitString = "-w" +const WaitSecondsString = "-w5" const LockfilePath16x = "/run/xtables.lock" @@ -537,24 +541,24 @@ func getIPTablesWaitFlag(vstring string) []string { return nil } - minVersion, err := utilversion.ParseGeneric(MinWaitVersion) + minVersion, err := utilversion.ParseGeneric(WaitMinVersion) if err != nil { - glog.Errorf("MinWaitVersion (%s) is not a valid version string: %v", MinWaitVersion, err) + glog.Errorf("WaitMinVersion (%s) is not a valid version string: %v", WaitMinVersion, err) return nil } if version.LessThan(minVersion) { return nil } - minVersion, err = utilversion.ParseGeneric(MinWait2Version) + minVersion, err = utilversion.ParseGeneric(WaitSecondsMinVersion) if err != nil { - glog.Errorf("MinWait2Version (%s) is not a valid version string: %v", MinWait2Version, err) + glog.Errorf("WaitSecondsMinVersion (%s) is not a valid version string: %v", WaitSecondsMinVersion, err) return nil } if version.LessThan(minVersion) { - return []string{"-w"} + return []string{WaitString} } else { - return []string{"-w2"} + return []string{WaitSecondsString} } } @@ -590,7 +594,7 @@ func getIPTablesRestoreWaitFlag(exec utilexec.Interface, protocol Protocol) []st return nil } - return []string{"--wait=2"} + return []string{WaitSecondsString} } // getIPTablesRestoreVersionString runs "iptables-restore --version" to get the version string diff --git a/vendor/k8s.io/kubernetes/pkg/util/iptables/iptables_test.go b/vendor/k8s.io/kubernetes/pkg/util/iptables/iptables_test.go index b59380d18..d7a735805 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/iptables/iptables_test.go +++ b/vendor/k8s.io/kubernetes/pkg/util/iptables/iptables_test.go @@ -686,11 +686,11 @@ func TestIPTablesWaitFlag(t *testing.T) { {"0.55.55", ""}, {"1.0.55", ""}, {"1.4.19", ""}, - {"1.4.20", "-w"}, - {"1.4.21", "-w"}, - {"1.4.22", "-w2"}, - {"1.5.0", "-w2"}, - {"2.0.0", "-w2"}, + {"1.4.20", WaitString}, + {"1.4.21", WaitString}, + {"1.4.22", WaitSecondsString}, + {"1.5.0", WaitSecondsString}, + {"2.0.0", WaitSecondsString}, } for _, testCase := range testCases { @@ -730,7 +730,7 @@ func TestWaitFlagUnavailable(t *testing.T) { if fcmd.CombinedOutputCalls != 3 { t.Errorf("expected 3 CombinedOutput() calls, got %d", fcmd.CombinedOutputCalls) } - if sets.NewString(fcmd.CombinedOutputLog[2]...).HasAny("-w", "-w2") { + if sets.NewString(fcmd.CombinedOutputLog[2]...).HasAny(WaitString, WaitSecondsString) { t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2]) } } @@ -762,10 +762,10 @@ func TestWaitFlagOld(t *testing.T) { if fcmd.CombinedOutputCalls != 3 { t.Errorf("expected 3 CombinedOutput() calls, got %d", fcmd.CombinedOutputCalls) } - if !sets.NewString(fcmd.CombinedOutputLog[2]...).HasAll("iptables", "-w") { + if !sets.NewString(fcmd.CombinedOutputLog[2]...).HasAll("iptables", WaitString) { t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2]) } - if sets.NewString(fcmd.CombinedOutputLog[2]...).HasAny("-w2") { + if sets.NewString(fcmd.CombinedOutputLog[2]...).HasAny(WaitSecondsString) { t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2]) } } @@ -797,10 +797,10 @@ func TestWaitFlagNew(t *testing.T) { if fcmd.CombinedOutputCalls != 3 { t.Errorf("expected 3 CombinedOutput() calls, got %d", fcmd.CombinedOutputCalls) } - if !sets.NewString(fcmd.CombinedOutputLog[2]...).HasAll("iptables", "-w2") { + if !sets.NewString(fcmd.CombinedOutputLog[2]...).HasAll("iptables", WaitSecondsString) { t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2]) } - if sets.NewString(fcmd.CombinedOutputLog[2]...).HasAny("-w") { + if sets.NewString(fcmd.CombinedOutputLog[2]...).HasAny(WaitString) { t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2]) } } @@ -1165,7 +1165,7 @@ func TestRestoreAllWait(t *testing.T) { } commandSet := sets.NewString(fcmd.CombinedOutputLog[2]...) - if !commandSet.HasAll("iptables-restore", "--wait=2", "--counters", "--noflush") { + if !commandSet.HasAll("iptables-restore", WaitSecondsString, "--counters", "--noflush") { t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2]) } @@ -1214,8 +1214,8 @@ func TestRestoreAllWaitOldIptablesRestore(t *testing.T) { if !commandSet.HasAll("iptables-restore", "--counters", "--noflush") { t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2]) } - if commandSet.HasAny("--wait=2") { - t.Errorf("wrong CombinedOutput() log (unexpected --wait=2 option), got %s", fcmd.CombinedOutputLog[2]) + if commandSet.HasAny(WaitSecondsString) { + t.Errorf("wrong CombinedOutput() log (unexpected %s option), got %s", WaitSecondsString, fcmd.CombinedOutputLog[2]) } if fcmd.CombinedOutputCalls != 3 { diff --git a/vendor/k8s.io/kubernetes/pkg/util/iptables/testing/fake.go b/vendor/k8s.io/kubernetes/pkg/util/iptables/testing/fake.go index 8d9ac7c07..6f398597f 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/iptables/testing/fake.go +++ b/vendor/k8s.io/kubernetes/pkg/util/iptables/testing/fake.go @@ -32,6 +32,7 @@ const ( Jump = "-j " Reject = "REJECT" ToDest = "--to-destination " + Recent = "recent " ) type Rule map[string]string @@ -111,7 +112,7 @@ func (f *FakeIPTables) GetRules(chainName string) (rules []Rule) { for _, l := range strings.Split(string(f.Lines), "\n") { if strings.Contains(l, fmt.Sprintf("-A %v", chainName)) { newRule := Rule(map[string]string{}) - for _, arg := range []string{Destination, Source, DPort, Protocol, Jump, ToDest} { + for _, arg := range []string{Destination, Source, DPort, Protocol, Jump, ToDest, Recent} { tok := getToken(l, arg) if tok != "" { newRule[arg] = tok diff --git a/vendor/k8s.io/kubernetes/pkg/util/keymutex/keymutex_test.go b/vendor/k8s.io/kubernetes/pkg/util/keymutex/keymutex_test.go index 2f9bd3e26..c155a18af 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/keymutex/keymutex_test.go +++ b/vendor/k8s.io/kubernetes/pkg/util/keymutex/keymutex_test.go @@ -91,21 +91,3 @@ func verifyCallbackDoesntHappens(t *testing.T, callbackCh <-chan interface{}) bo return true } } - -func verifyNoError(t *testing.T, err error, name string) { - if err != nil { - t.Fatalf("Unexpected response on %q. Expected: Actual: <%v>", name, err) - } -} - -func verifyError(t *testing.T, err error, name string) { - if err == nil { - t.Fatalf("Unexpected response on %q. Expected: Actual: ", name) - } -} - -func verifyMsg(t *testing.T, expected, actual string) { - if actual != expected { - t.Fatalf("Unexpected testMsg value. Expected: <%v> Actual: <%v>", expected, actual) - } -} diff --git a/vendor/k8s.io/kubernetes/pkg/util/metrics/util.go b/vendor/k8s.io/kubernetes/pkg/util/metrics/util.go index c1d924756..3980ae818 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/metrics/util.go +++ b/vendor/k8s.io/kubernetes/pkg/util/metrics/util.go @@ -34,40 +34,66 @@ const ( var ( metricsLock sync.Mutex - rateLimiterMetrics = make(map[string]prometheus.Gauge) + rateLimiterMetrics = make(map[string]rateLimiterMetric) ) +type rateLimiterMetric struct { + metric prometheus.Gauge + stopCh chan struct{} +} + func registerRateLimiterMetric(ownerName string) error { metricsLock.Lock() defer metricsLock.Unlock() if _, ok := rateLimiterMetrics[ownerName]; ok { - glog.Errorf("Metric for %v already registered", ownerName) - return fmt.Errorf("Metric for %v already registered", ownerName) + return fmt.Errorf("Rate Limiter Metric for %v already registered", ownerName) } metric := prometheus.NewGauge(prometheus.GaugeOpts{ Name: "rate_limiter_use", Subsystem: ownerName, Help: fmt.Sprintf("A metric measuring the saturation of the rate limiter for %v", ownerName), }) - rateLimiterMetrics[ownerName] = metric if err := prometheus.Register(metric); err != nil { return fmt.Errorf("error registering rate limiter usage metric: %v", err) } + stopCh := make(chan struct{}) + rateLimiterMetrics[ownerName] = rateLimiterMetric{ + metric: metric, + stopCh: stopCh, + } return nil } // RegisterMetricAndTrackRateLimiterUsage registers a metric ownerName_rate_limiter_use in prometheus to track // how much used rateLimiter is and starts a goroutine that updates this metric every updatePeriod func RegisterMetricAndTrackRateLimiterUsage(ownerName string, rateLimiter flowcontrol.RateLimiter) error { - err := registerRateLimiterMetric(ownerName) - if err != nil { + if err := registerRateLimiterMetric(ownerName); err != nil { return err } - go wait.Forever(func() { + go wait.Until(func() { metricsLock.Lock() defer metricsLock.Unlock() - rateLimiterMetrics[ownerName].Set(rateLimiter.Saturation()) - }, updatePeriod) + rateLimiterMetrics[ownerName].metric.Set(rateLimiter.Saturation()) + }, updatePeriod, rateLimiterMetrics[ownerName].stopCh) return nil } + +// UnregisterMetricAndUntrackRateLimiterUsage unregisters a metric ownerName_rate_limiter_use from prometheus and +// stops the goroutine that updates this metric +func UnregisterMetricAndUntrackRateLimiterUsage(ownerName string) bool { + metricsLock.Lock() + defer metricsLock.Unlock() + + rlm, ok := rateLimiterMetrics[ownerName] + if !ok { + glog.Warningf("Rate Limiter Metric for %v not registered", ownerName) + return false + } + + close(rlm.stopCh) + prometheus.Unregister(rlm.metric) + delete(rateLimiterMetrics, ownerName) + + return true +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/metrics/util_test.go b/vendor/k8s.io/kubernetes/pkg/util/metrics/util_test.go index 38e14b577..ee83aa1b7 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/metrics/util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/util/metrics/util_test.go @@ -34,6 +34,11 @@ func TestRegisterMetricAndTrackRateLimiterUsage(t *testing.T) { rateLimiter: flowcontrol.NewTokenBucketRateLimiter(1, 1), err: "", }, + { + ownerName: "owner_name", + rateLimiter: flowcontrol.NewTokenBucketRateLimiter(1, 1), + err: "already registered", + }, { ownerName: "invalid-owner-name", rateLimiter: flowcontrol.NewTokenBucketRateLimiter(1, 1), @@ -52,3 +57,27 @@ func TestRegisterMetricAndTrackRateLimiterUsage(t *testing.T) { } } } + +func TestUnregisterMetricAndUntrackRateLimiterUsage(t *testing.T) { + RegisterMetricAndTrackRateLimiterUsage("owner_name", flowcontrol.NewTokenBucketRateLimiter(1, 1)) + testCases := []struct { + ownerName string + ok bool + }{ + { + ownerName: "owner_name", + ok: true, + }, + { + ownerName: "owner_name", + ok: false, + }, + } + + for i, tc := range testCases { + ok := UnregisterMetricAndUntrackRateLimiterUsage(tc.ownerName) + if tc.ok != ok { + t.Errorf("Case[%d] Expected %v, got %v", i, tc.ok, ok) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/BUILD b/vendor/k8s.io/kubernetes/pkg/util/mount/BUILD index 023fad7ba..af94fd038 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/BUILD @@ -11,12 +11,14 @@ go_library( srcs = [ "doc.go", "exec.go", + "exec_mount_unsupported.go", "fake.go", "mount.go", "mount_unsupported.go", "nsenter_mount_unsupported.go", ] + select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ + "exec_mount.go", "mount_linux.go", "nsenter_mount.go", ], @@ -46,6 +48,7 @@ go_test( "safe_format_and_mount_test.go", ] + select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ + "exec_mount_test.go", "mount_linux_test.go", "nsenter_mount_test.go", ], diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount.go b/vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount.go new file mode 100644 index 000000000..1dedc5b7a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount.go @@ -0,0 +1,140 @@ +// +build linux + +/* +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 mount + +import ( + "fmt" + + "github.com/golang/glog" +) + +// ExecMounter is a mounter that uses provided Exec interface to mount and +// unmount a filesystem. For all other calls it uses a wrapped mounter. +type execMounter struct { + wrappedMounter Interface + exec Exec +} + +func NewExecMounter(exec Exec, wrapped Interface) Interface { + return &execMounter{ + wrappedMounter: wrapped, + exec: exec, + } +} + +// execMounter implements mount.Interface +var _ Interface = &execMounter{} + +// Mount runs mount(8) using given exec interface. +func (m *execMounter) Mount(source string, target string, fstype string, options []string) error { + bind, bindRemountOpts := isBind(options) + + if bind { + err := m.doExecMount(source, target, fstype, []string{"bind"}) + if err != nil { + return err + } + return m.doExecMount(source, target, fstype, bindRemountOpts) + } + + return m.doExecMount(source, target, fstype, options) +} + +// doExecMount calls exec(mount ) using given exec interface. +func (m *execMounter) doExecMount(source, target, fstype string, options []string) error { + glog.V(5).Infof("Exec Mounting %s %s %s %v", source, target, fstype, options) + mountArgs := makeMountArgs(source, target, fstype, options) + output, err := m.exec.Run("mount", mountArgs...) + glog.V(5).Infof("Exec mounted %v: %v: %s", mountArgs, err, string(output)) + if err != nil { + return fmt.Errorf("mount failed: %v\nMounting command: %s\nMounting arguments: %s %s %s %v\nOutput: %s\n", + err, "mount", source, target, fstype, options, string(output)) + } + + return err +} + +// Unmount runs umount(8) using given exec interface. +func (m *execMounter) Unmount(target string) error { + outputBytes, err := m.exec.Run("umount", target) + if err == nil { + glog.V(5).Infof("Exec unmounted %s: %s", target, string(outputBytes)) + } else { + glog.V(5).Infof("Failed to exec unmount %s: err: %q, umount output: %s", target, err, string(outputBytes)) + } + + return err +} + +// List returns a list of all mounted filesystems. +func (m *execMounter) List() ([]MountPoint, error) { + return m.wrappedMounter.List() +} + +// IsLikelyNotMountPoint determines whether a path is a mountpoint. +func (m *execMounter) IsLikelyNotMountPoint(file string) (bool, error) { + return m.wrappedMounter.IsLikelyNotMountPoint(file) +} + +// DeviceOpened checks if block device in use by calling Open with O_EXCL flag. +// Returns true if open returns errno EBUSY, and false if errno is nil. +// Returns an error if errno is any error other than EBUSY. +// Returns with error if pathname is not a device. +func (m *execMounter) DeviceOpened(pathname string) (bool, error) { + return m.wrappedMounter.DeviceOpened(pathname) +} + +// PathIsDevice uses FileInfo returned from os.Stat to check if path refers +// to a device. +func (m *execMounter) PathIsDevice(pathname string) (bool, error) { + return m.wrappedMounter.PathIsDevice(pathname) +} + +//GetDeviceNameFromMount given a mount point, find the volume id from checking /proc/mounts +func (m *execMounter) GetDeviceNameFromMount(mountPath, pluginDir string) (string, error) { + return m.wrappedMounter.GetDeviceNameFromMount(mountPath, pluginDir) +} + +func (m *execMounter) IsMountPointMatch(mp MountPoint, dir string) bool { + return m.wrappedMounter.IsMountPointMatch(mp, dir) +} + +func (m *execMounter) IsNotMountPoint(dir string) (bool, error) { + return m.wrappedMounter.IsNotMountPoint(dir) +} + +func (m *execMounter) MakeRShared(path string) error { + return m.wrappedMounter.MakeRShared(path) +} + +func (m *execMounter) GetFileType(pathname string) (FileType, error) { + return m.wrappedMounter.GetFileType(pathname) +} + +func (m *execMounter) MakeFile(pathname string) error { + return m.wrappedMounter.MakeFile(pathname) +} + +func (m *execMounter) MakeDir(pathname string) error { + return m.wrappedMounter.MakeDir(pathname) +} + +func (m *execMounter) ExistsPath(pathname string) bool { + return m.wrappedMounter.ExistsPath(pathname) +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount_test.go b/vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount_test.go new file mode 100644 index 000000000..5882477f7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount_test.go @@ -0,0 +1,153 @@ +// +build linux + +/* +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 mount + +import ( + "fmt" + "reflect" + "strings" + "testing" +) + +var ( + sourcePath = "/mnt/srv" + destinationPath = "/mnt/dst" + fsType = "xfs" + mountOptions = []string{"vers=1", "foo=bar"} +) + +func TestMount(t *testing.T) { + exec := NewFakeExec(func(cmd string, args ...string) ([]byte, error) { + if cmd != "mount" { + t.Errorf("expected mount command, got %q", cmd) + } + // mount -t fstype -o options source target + expectedArgs := []string{"-t", fsType, "-o", strings.Join(mountOptions, ","), sourcePath, destinationPath} + if !reflect.DeepEqual(expectedArgs, args) { + t.Errorf("expected arguments %q, got %q", strings.Join(expectedArgs, " "), strings.Join(args, " ")) + } + return nil, nil + }) + + wrappedMounter := &fakeMounter{t} + mounter := NewExecMounter(exec, wrappedMounter) + + mounter.Mount(sourcePath, destinationPath, fsType, mountOptions) +} + +func TestBindMount(t *testing.T) { + cmdCount := 0 + exec := NewFakeExec(func(cmd string, args ...string) ([]byte, error) { + cmdCount++ + if cmd != "mount" { + t.Errorf("expected mount command, got %q", cmd) + } + var expectedArgs []string + switch cmdCount { + case 1: + // mount -t fstype -o "bind" source target + expectedArgs = []string{"-t", fsType, "-o", "bind", sourcePath, destinationPath} + case 2: + // mount -t fstype -o "remount,opts" source target + expectedArgs = []string{"-t", fsType, "-o", "remount," + strings.Join(mountOptions, ","), sourcePath, destinationPath} + } + if !reflect.DeepEqual(expectedArgs, args) { + t.Errorf("expected arguments %q, got %q", strings.Join(expectedArgs, " "), strings.Join(args, " ")) + } + return nil, nil + }) + + wrappedMounter := &fakeMounter{t} + mounter := NewExecMounter(exec, wrappedMounter) + bindOptions := append(mountOptions, "bind") + mounter.Mount(sourcePath, destinationPath, fsType, bindOptions) +} + +func TestUnmount(t *testing.T) { + exec := NewFakeExec(func(cmd string, args ...string) ([]byte, error) { + if cmd != "umount" { + t.Errorf("expected unmount command, got %q", cmd) + } + // unmount $target + expectedArgs := []string{destinationPath} + if !reflect.DeepEqual(expectedArgs, args) { + t.Errorf("expected arguments %q, got %q", strings.Join(expectedArgs, " "), strings.Join(args, " ")) + } + return nil, nil + }) + + wrappedMounter := &fakeMounter{t} + mounter := NewExecMounter(exec, wrappedMounter) + + mounter.Unmount(destinationPath) +} + +/* Fake wrapped mounter */ +type fakeMounter struct { + t *testing.T +} + +func (fm *fakeMounter) Mount(source string, target string, fstype string, options []string) error { + // Mount() of wrapped mounter should never be called. We call exec instead. + fm.t.Errorf("Unexpected wrapped mount call") + return fmt.Errorf("Unexpected wrapped mount call") +} + +func (fm *fakeMounter) Unmount(target string) error { + // umount() of wrapped mounter should never be called. We call exec instead. + fm.t.Errorf("Unexpected wrapped mount call") + return fmt.Errorf("Unexpected wrapped mount call") +} + +func (fm *fakeMounter) List() ([]MountPoint, error) { + return nil, nil +} +func (fm *fakeMounter) IsMountPointMatch(mp MountPoint, dir string) bool { + return false +} +func (fm *fakeMounter) IsNotMountPoint(file string) (bool, error) { + return false, nil +} +func (fm *fakeMounter) IsLikelyNotMountPoint(file string) (bool, error) { + return false, nil +} +func (fm *fakeMounter) DeviceOpened(pathname string) (bool, error) { + return false, nil +} +func (fm *fakeMounter) PathIsDevice(pathname string) (bool, error) { + return false, nil +} +func (fm *fakeMounter) GetDeviceNameFromMount(mountPath, pluginDir string) (string, error) { + return "", nil +} +func (fm *fakeMounter) MakeRShared(path string) error { + return nil +} +func (fm *fakeMounter) MakeFile(pathname string) error { + return nil +} +func (fm *fakeMounter) MakeDir(pathname string) error { + return nil +} +func (fm *fakeMounter) ExistsPath(pathname string) bool { + return false +} +func (fm *fakeMounter) GetFileType(pathname string) (FileType, error) { + return FileTypeFile, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount_unsupported.go b/vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount_unsupported.go new file mode 100644 index 000000000..136704b23 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/exec_mount_unsupported.go @@ -0,0 +1,87 @@ +// +build !linux + +/* +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 mount + +import ( + "errors" +) + +type execMounter struct{} + +// ExecMounter is a mounter that uses provided Exec interface to mount and +// unmount a filesystem. For all other calls it uses a wrapped mounter. +func NewExecMounter(exec Exec, wrapped Interface) Interface { + return &execMounter{} +} + +func (mounter *execMounter) Mount(source string, target string, fstype string, options []string) error { + return nil +} + +func (mounter *execMounter) Unmount(target string) error { + return nil +} + +func (mounter *execMounter) List() ([]MountPoint, error) { + return []MountPoint{}, nil +} + +func (mounter *execMounter) IsMountPointMatch(mp MountPoint, dir string) bool { + return (mp.Path == dir) +} + +func (mounter *execMounter) IsNotMountPoint(dir string) (bool, error) { + return IsNotMountPoint(mounter, dir) +} + +func (mounter *execMounter) IsLikelyNotMountPoint(file string) (bool, error) { + return true, nil +} + +func (mounter *execMounter) GetDeviceNameFromMount(mountPath, pluginDir string) (string, error) { + return "", nil +} + +func (mounter *execMounter) DeviceOpened(pathname string) (bool, error) { + return false, nil +} + +func (mounter *execMounter) PathIsDevice(pathname string) (bool, error) { + return true, nil +} + +func (mounter *execMounter) MakeRShared(path string) error { + return nil +} + +func (mounter *execMounter) GetFileType(pathname string) (FileType, error) { + return FileType("fake"), errors.New("not implemented") +} + +func (mounter *execMounter) MakeDir(pathname string) error { + return nil +} + +func (mounter *execMounter) MakeFile(pathname string) error { + return nil +} + +func (mounter *execMounter) ExistsPath(pathname string) bool { + return true +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/fake.go b/vendor/k8s.io/kubernetes/pkg/util/mount/fake.go index d34510ae2..f4e2e411d 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/fake.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/fake.go @@ -17,6 +17,7 @@ limitations under the License. package mount import ( + "os" "path/filepath" "sync" @@ -136,6 +137,11 @@ func (f *FakeMounter) IsLikelyNotMountPoint(file string) (bool, error) { f.mutex.Lock() defer f.mutex.Unlock() + _, err := os.Stat(file) + if err != nil { + return true, err + } + // If file is a symlink, get its absolute path absFile, err := filepath.EvalSymlinks(file) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount.go index 1c09e157f..953b57190 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount.go @@ -19,12 +19,7 @@ limitations under the License. package mount import ( - "fmt" - "path" "path/filepath" - "strings" - - "github.com/golang/glog" ) type FileType string @@ -138,41 +133,6 @@ func (mounter *SafeFormatAndMount) FormatAndMount(source string, target string, return mounter.formatAndMount(source, target, fstype, options) } -// GetMountRefs finds all other references to the device referenced -// by mountPath; returns a list of paths. -func GetMountRefs(mounter Interface, mountPath string) ([]string, error) { - mps, err := mounter.List() - if err != nil { - return nil, err - } - // Find the device name. - deviceName := "" - // If mountPath is symlink, need get its target path. - slTarget, err := filepath.EvalSymlinks(mountPath) - if err != nil { - slTarget = mountPath - } - for i := range mps { - if mps[i].Path == slTarget { - deviceName = mps[i].Device - break - } - } - - // Find all references to the device. - var refs []string - if deviceName == "" { - glog.Warningf("could not determine device for path: %q", mountPath) - } else { - for i := range mps { - if mps[i].Device == deviceName && mps[i].Path != slTarget { - refs = append(refs, mps[i].Path) - } - } - } - return refs, nil -} - // GetMountRefsByDev finds all references to the device provided // by mountPath; returns a list of paths. func GetMountRefsByDev(mounter Interface, mountPath string) ([]string, error) { @@ -239,34 +199,6 @@ func GetDeviceNameFromMount(mounter Interface, mountPath string) (string, int, e return device, refCount, nil } -// getDeviceNameFromMount find the device name from /proc/mounts in which -// the mount path reference should match the given plugin directory. In case no mount path reference -// matches, returns the volume name taken from its given mountPath -func getDeviceNameFromMount(mounter Interface, mountPath, pluginDir string) (string, error) { - refs, err := GetMountRefs(mounter, mountPath) - if err != nil { - glog.V(4).Infof("GetMountRefs failed for mount path %q: %v", mountPath, err) - return "", err - } - if len(refs) == 0 { - glog.V(4).Infof("Directory %s is not mounted", mountPath) - return "", fmt.Errorf("directory %s is not mounted", mountPath) - } - basemountPath := path.Join(pluginDir, MountsInGlobalPDPath) - for _, ref := range refs { - if strings.HasPrefix(ref, basemountPath) { - volumeID, err := filepath.Rel(basemountPath, ref) - if err != nil { - glog.Errorf("Failed to get volume id from mount %s - %v", mountPath, err) - return "", err - } - return volumeID, nil - } - } - - return path.Base(mountPath), nil -} - // IsNotMountPoint determines if a directory is a mountpoint. // It should return ErrNotExist when the directory does not exist. // This method uses the List() of all mountpoints diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go index 8976bd255..9caec6707 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go @@ -22,6 +22,8 @@ import ( "fmt" "os" "os/exec" + "path" + "path/filepath" "strconv" "strings" "syscall" @@ -141,6 +143,41 @@ func (m *Mounter) doMount(mounterPath string, mountCmd string, source string, ta return err } +// GetMountRefs finds all other references to the device referenced +// by mountPath; returns a list of paths. +func GetMountRefs(mounter Interface, mountPath string) ([]string, error) { + mps, err := mounter.List() + if err != nil { + return nil, err + } + // Find the device name. + deviceName := "" + // If mountPath is symlink, need get its target path. + slTarget, err := filepath.EvalSymlinks(mountPath) + if err != nil { + slTarget = mountPath + } + for i := range mps { + if mps[i].Path == slTarget { + deviceName = mps[i].Device + break + } + } + + // Find all references to the device. + var refs []string + if deviceName == "" { + glog.Warningf("could not determine device for path: %q", mountPath) + } else { + for i := range mps { + if mps[i].Device == deviceName && mps[i].Path != slTarget { + refs = append(refs, mps[i].Path) + } + } + } + return refs, nil +} + // detectSystemd returns true if OS runs with systemd as init. When not sure // (permission errors, ...), it returns false. // There may be different ways how to detect systemd, this one makes sure that @@ -299,6 +336,34 @@ func (mounter *Mounter) GetDeviceNameFromMount(mountPath, pluginDir string) (str return getDeviceNameFromMount(mounter, mountPath, pluginDir) } +// getDeviceNameFromMount find the device name from /proc/mounts in which +// the mount path reference should match the given plugin directory. In case no mount path reference +// matches, returns the volume name taken from its given mountPath +func getDeviceNameFromMount(mounter Interface, mountPath, pluginDir string) (string, error) { + refs, err := GetMountRefs(mounter, mountPath) + if err != nil { + glog.V(4).Infof("GetMountRefs failed for mount path %q: %v", mountPath, err) + return "", err + } + if len(refs) == 0 { + glog.V(4).Infof("Directory %s is not mounted", mountPath) + return "", fmt.Errorf("directory %s is not mounted", mountPath) + } + basemountPath := path.Join(pluginDir, MountsInGlobalPDPath) + for _, ref := range refs { + if strings.HasPrefix(ref, basemountPath) { + volumeID, err := filepath.Rel(basemountPath, ref) + if err != nil { + glog.Errorf("Failed to get volume id from mount %s - %v", mountPath, err) + return "", err + } + return volumeID, nil + } + } + + return path.Base(mountPath), nil +} + func listProcMounts(mountFilePath string) ([]MountPoint, error) { content, err := utilio.ConsistentRead(mountFilePath, maxListTries) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_unsupported.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_unsupported.go index 865d53d09..87d1e3748 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_unsupported.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_unsupported.go @@ -43,6 +43,12 @@ func (mounter *Mounter) Unmount(target string) error { return nil } +// GetMountRefs finds all other references to the device referenced +// by mountPath; returns a list of paths. +func GetMountRefs(mounter Interface, mountPath string) ([]string, error) { + return []string{}, nil +} + func (mounter *Mounter) List() ([]MountPoint, error) { return []MountPoint{}, nil } @@ -63,6 +69,10 @@ func (mounter *Mounter) GetDeviceNameFromMount(mountPath, pluginDir string) (str return "", nil } +func getDeviceNameFromMount(mounter Interface, mountPath, pluginDir string) (string, error) { + return "", nil +} + func (mounter *Mounter) DeviceOpened(pathname string) (bool, error) { return false, nil } @@ -76,7 +86,7 @@ func (mounter *Mounter) MakeRShared(path string) error { } func (mounter *SafeFormatAndMount) formatAndMount(source string, target string, fstype string, options []string) error { - return nil + return mounter.Interface.Mount(source, target, fstype, options) } func (mounter *SafeFormatAndMount) diskLooksUnformatted(disk string) (bool, error) { diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows.go index 50c95caa5..b39951add 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows.go @@ -22,6 +22,7 @@ import ( "fmt" "os" "os/exec" + "path" "path/filepath" "strconv" "strings" @@ -84,12 +85,8 @@ func (mounter *Mounter) Mount(source string, target string, fstype string, optio `$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord`, options[0], options[1]) - driverLetter, err := getAvailableDriveLetter() - if err != nil { - return err - } - bindSource = driverLetter + ":" - cmdLine += fmt.Sprintf(";New-SmbGlobalMapping -LocalPath %s -RemotePath %s -Credential $Credential", bindSource, source) + bindSource = source + cmdLine += fmt.Sprintf(";New-SmbGlobalMapping -RemotePath %s -Credential $Credential", source) if output, err := exec.Command("powershell", "/c", cmdLine).CombinedOutput(); err != nil { // we don't return error here, even though New-SmbGlobalMapping failed, we still make it successful, @@ -118,6 +115,16 @@ func (mounter *Mounter) Unmount(target string) error { return nil } +// GetMountRefs finds all other references to the device(drive) referenced +// by mountPath; returns a list of paths. +func GetMountRefs(mounter Interface, mountPath string) ([]string, error) { + refs, err := getAllParentLinks(normalizeWindowsPath(mountPath)) + if err != nil { + return nil, err + } + return refs, nil +} + // List returns a list of all mounted filesystems. todo func (mounter *Mounter) List() ([]MountPoint, error) { return []MountPoint{}, nil @@ -152,6 +159,33 @@ func (mounter *Mounter) GetDeviceNameFromMount(mountPath, pluginDir string) (str return getDeviceNameFromMount(mounter, mountPath, pluginDir) } +// getDeviceNameFromMount find the device(drive) name in which +// the mount path reference should match the given plugin directory. In case no mount path reference +// matches, returns the volume name taken from its given mountPath +func getDeviceNameFromMount(mounter Interface, mountPath, pluginDir string) (string, error) { + refs, err := GetMountRefs(mounter, mountPath) + if err != nil { + glog.V(4).Infof("GetMountRefs failed for mount path %q: %v", mountPath, err) + return "", err + } + if len(refs) == 0 { + return "", fmt.Errorf("directory %s is not mounted", mountPath) + } + basemountPath := normalizeWindowsPath(path.Join(pluginDir, MountsInGlobalPDPath)) + for _, ref := range refs { + if strings.Contains(ref, basemountPath) { + volumeID, err := filepath.Rel(normalizeWindowsPath(basemountPath), ref) + if err != nil { + glog.Errorf("Failed to get volume id from mount %s - %v", mountPath, err) + return "", err + } + return volumeID, nil + } + } + + return path.Base(mountPath), nil +} + // DeviceOpened determines if the device is in use elsewhere func (mounter *Mounter) DeviceOpened(pathname string) (bool, error) { return false, nil @@ -260,20 +294,6 @@ func normalizeWindowsPath(path string) string { return normalizedPath } -func getAvailableDriveLetter() (string, error) { - cmd := "$used = Get-PSDrive | Select-Object -Expand Name | Where-Object { $_.Length -eq 1 }" - cmd += ";$drive = 67..90 | ForEach-Object { [string][char]$_ } | Where-Object { $used -notcontains $_ } | Select-Object -First 1;$drive" - output, err := exec.Command("powershell", "/c", cmd).CombinedOutput() - if err != nil { - return "", fmt.Errorf("getAvailableDriveLetter failed: %v, output: %q", err, string(output)) - } - - if len(output) == 0 { - return "", fmt.Errorf("azureMount: there is no available drive letter now") - } - return string(output)[:1], nil -} - // ValidateDiskNumber : disk number should be a number in [0, 99] func ValidateDiskNumber(disk string) error { diskNum, err := strconv.Atoi(disk) @@ -300,3 +320,30 @@ func getDriveLetterByDiskNumber(diskNum string, exec Exec) (string, error) { } return string(output)[:1], nil } + +// getAllParentLinks walks all symbolic links and return all the parent targets recursively +func getAllParentLinks(path string) ([]string, error) { + const maxIter = 255 + links := []string{} + for { + links = append(links, path) + if len(links) > maxIter { + return links, fmt.Errorf("unexpected length of parent links: %v", links) + } + + fi, err := os.Lstat(path) + if err != nil { + return links, fmt.Errorf("Lstat: %v", err) + } + if fi.Mode()&os.ModeSymlink == 0 { + break + } + + path, err = os.Readlink(path) + if err != nil { + return links, fmt.Errorf("Readlink error: %v", err) + } + } + + return links, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows_test.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows_test.go index 6be0fc43e..5855ede9a 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows_test.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_windows_test.go @@ -19,15 +19,11 @@ limitations under the License. package mount import ( + "fmt" + "os/exec" "testing" ) -func TestGetAvailableDriveLetter(t *testing.T) { - if _, err := getAvailableDriveLetter(); err != nil { - t.Errorf("getAvailableDriveLetter test failed : %v", err) - } -} - func TestNormalizeWindowsPath(t *testing.T) { path := `/var/lib/kubelet/pods/146f8428-83e7-11e7-8dd4-000d3a31dac4/volumes/kubernetes.io~azure-disk` normalizedPath := normalizeWindowsPath(path) @@ -69,3 +65,70 @@ func TestValidateDiskNumber(t *testing.T) { t.Errorf("TestValidateDiskNumber test failed, disk number : %s", diskNum) } } + +func makeLink(link, target string) error { + if output, err := exec.Command("cmd", "/c", "mklink", "/D", link, target).CombinedOutput(); err != nil { + return fmt.Errorf("mklink failed: %v, link(%q) target(%q) output: %q", err, link, target, string(output)) + } + return nil +} + +func removeLink(link string) error { + if output, err := exec.Command("cmd", "/c", "rmdir", link).CombinedOutput(); err != nil { + return fmt.Errorf("rmdir failed: %v, output: %q", err, string(output)) + } + return nil +} + +func setEquivalent(set1, set2 []string) bool { + map1 := make(map[string]bool) + map2 := make(map[string]bool) + for _, s := range set1 { + map1[s] = true + } + for _, s := range set2 { + map2[s] = true + } + + for s := range map1 { + if !map2[s] { + return false + } + } + for s := range map2 { + if !map1[s] { + return false + } + } + return true +} + +// this func must run in admin mode, otherwise it will fail +func TestGetMountRefs(t *testing.T) { + fm := &FakeMounter{MountPoints: []MountPoint{}} + mountPath := `c:\secondmountpath` + expectedRefs := []string{`c:\`, `c:\firstmountpath`, mountPath} + + // remove symbolic links first + for i := 1; i < len(expectedRefs); i++ { + removeLink(expectedRefs[i]) + } + + // create symbolic links + for i := 1; i < len(expectedRefs); i++ { + if err := makeLink(expectedRefs[i], expectedRefs[i-1]); err != nil { + t.Errorf("makeLink failed: %v", err) + } + } + + if refs, err := GetMountRefs(fm, mountPath); err != nil || !setEquivalent(expectedRefs, refs) { + t.Errorf("getMountRefs(%q) = %v, error: %v; expected %v", mountPath, refs, err, expectedRefs) + } + + // remove symbolic links + for i := 1; i < len(expectedRefs); i++ { + if err := removeLink(expectedRefs[i]); err != nil { + t.Errorf("removeLink failed: %v", err) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/safe_format_and_mount_test.go b/vendor/k8s.io/kubernetes/pkg/util/mount/safe_format_and_mount_test.go index 72b768f3b..a7e7cc29a 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/safe_format_and_mount_test.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/safe_format_and_mount_test.go @@ -18,6 +18,8 @@ package mount import ( "fmt" + "io/ioutil" + "os" "runtime" "testing" @@ -50,6 +52,11 @@ func TestSafeFormatAndMount(t *testing.T) { if runtime.GOOS == "darwin" || runtime.GOOS == "windows" { t.Skipf("not supported on GOOS=%s", runtime.GOOS) } + mntDir, err := ioutil.TempDir(os.TempDir(), "mount") + if err != nil { + t.Fatalf("failed to create tmp dir: %v", err) + } + defer os.RemoveAll(mntDir) tests := []struct { description string fstype string @@ -207,7 +214,7 @@ func TestSafeFormatAndMount(t *testing.T) { } device := "/dev/foo" - dest := "/mnt/bar" + dest := mntDir err := mounter.FormatAndMount(device, dest, test.fstype, test.mountOptions) if test.expectedError == nil { if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/util/netsh/BUILD b/vendor/k8s.io/kubernetes/pkg/util/netsh/BUILD index bd305a729..88c4ef7de 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/netsh/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/netsh/BUILD @@ -3,6 +3,7 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( @@ -33,3 +34,16 @@ filegroup( ], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = ["netsh_test.go"], + importpath = "k8s.io/kubernetes/pkg/util/netsh", + library = ":go_default_library", + deps = [ + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", + "//vendor/k8s.io/utils/exec/testing:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/pkg/util/netsh/netsh.go b/vendor/k8s.io/kubernetes/pkg/util/netsh/netsh.go index c3b963c41..30b66536b 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/netsh/netsh.go +++ b/vendor/k8s.io/kubernetes/pkg/util/netsh/netsh.go @@ -190,9 +190,8 @@ func checkIPExists(ipToCheck string, args []string, runner *runner) (bool, error glog.V(3).Infof("Searching for IP: %v in IP dump: %v", ipToCheck, ipAddressString) showAddressArray := strings.Split(ipAddressString, "\n") for _, showAddress := range showAddressArray { - if strings.Contains(showAddress, "IP Address:") { - ipFromNetsh := strings.TrimLeft(showAddress, "IP Address:") - ipFromNetsh = strings.TrimSpace(ipFromNetsh) + if strings.Contains(showAddress, "IP") { + ipFromNetsh := getIP(showAddress) if ipFromNetsh == ipToCheck { return true, nil } @@ -201,3 +200,12 @@ func checkIPExists(ipToCheck string, args []string, runner *runner) (bool, error return false, nil } + +// getIP gets ip from showAddress (e.g. "IP Address: 10.96.0.4"). +func getIP(showAddress string) string { + list := strings.SplitN(showAddress, ":", 2) + if len(list) != 2 { + return "" + } + return strings.TrimSpace(list[1]) +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/netsh/netsh_test.go b/vendor/k8s.io/kubernetes/pkg/util/netsh/netsh_test.go new file mode 100644 index 000000000..2194c8318 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/netsh/netsh_test.go @@ -0,0 +1,467 @@ +/* +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 netsh + +import ( + "net" + "os" + "testing" + + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" + + "github.com/pkg/errors" + "github.com/stretchr/testify/assert" +) + +func fakeCommonRunner() *runner { + fakeCmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // Success + func() ([]byte, error) { + return []byte{}, nil + }, + // utilexec.ExitError exists, and status is not 0 + func() ([]byte, error) { + return nil, &fakeexec.FakeExitError{Status: 1} + }, + // utilexec.ExitError exists, and status is 0 + func() ([]byte, error) { + return nil, &fakeexec.FakeExitError{Status: 0} + }, + // other error exists + func() ([]byte, error) { + return nil, errors.New("not ExitError") + }, + }, + } + + return &runner{ + exec: &fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeCmd, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeCmd, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeCmd, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeCmd, cmd, args...) + }, + }, + }, + } +} + +func TestEnsurePortProxyRule(t *testing.T) { + runner := fakeCommonRunner() + + tests := []struct { + name string + arguments []string + expectedResult bool + expectedError bool + }{ + {"Success", []string{"ensure-port-proxy-rule"}, true, false}, + {"utilexec.ExitError exists, and status is not 0", []string{"ensure-port-proxy-rule"}, false, false}, + {"utilexec.ExitError exists, and status is 0", []string{"ensure-port-proxy-rule"}, false, true}, + {"other error exists", []string{"ensure-port-proxy-rule"}, false, true}, + } + + for _, test := range tests { + result, err := runner.EnsurePortProxyRule(test.arguments) + if test.expectedError { + assert.Errorf(t, err, "Failed to test: %s", test.name) + } else { + if err != nil { + assert.NoErrorf(t, err, "Failed to test: %s", test.name) + } else { + assert.EqualValuesf(t, test.expectedResult, result, "Failed to test: %s", test.name) + } + } + } + +} + +func TestDeletePortProxyRule(t *testing.T) { + runner := fakeCommonRunner() + + tests := []struct { + name string + arguments []string + expectedError bool + }{ + {"Success", []string{"delete-port-proxy-rule"}, false}, + {"utilexec.ExitError exists, and status is not 0", []string{"delete-port-proxy-rule"}, true}, + {"utilexec.ExitError exists, and status is 0", []string{"delete-port-proxy-rule"}, false}, + {"other error exists", []string{"delete-port-proxy-rule"}, true}, + } + + for _, test := range tests { + err := runner.DeletePortProxyRule(test.arguments) + if test.expectedError { + assert.Errorf(t, err, "Failed to test: %s", test.name) + } else { + assert.NoErrorf(t, err, "Failed to test: %s", test.name) + } + } +} + +func TestEnsureIPAddress(t *testing.T) { + tests := []struct { + name string + arguments []string + ip net.IP + fakeCmdAction []fakeexec.FakeCommandAction + expectedError bool + expectedResult bool + }{ + { + "IP address exists", + []string{"delete-port-proxy-rule"}, + net.IPv4(10, 10, 10, 20), + []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // IP address exists + func() ([]byte, error) { + return []byte("IP Address:10.10.10.10\nIP Address:10.10.10.20"), nil + }, + }, + }, cmd, args...) + }, + }, + false, + true, + }, + + { + "IP address not exists, but set successful(find it in the second time)", + []string{"ensure-ip-address"}, + net.IPv4(10, 10, 10, 20), + []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // IP address not exists + func() ([]byte, error) { + return []byte("IP Address:10.10.10.10"), nil + }, + }, + }, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // Success to set ip + func() ([]byte, error) { + return []byte(""), nil + }, + }, + }, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // IP address still not exists + func() ([]byte, error) { + return []byte("IP Address:10.10.10.10"), nil + }, + }, + }, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // IP address exists + func() ([]byte, error) { + return []byte("IP Address:10.10.10.10\nIP Address:10.10.10.20"), nil + }, + }, + }, cmd, args...) + }, + }, + false, + true, + }, + { + "IP address not exists, utilexec.ExitError exists, but status is not 0)", + []string{"ensure-ip-address"}, + net.IPv4(10, 10, 10, 20), + []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // IP address not exists + func() ([]byte, error) { + return []byte("IP Address:10.10.10.10"), nil + }, + }, + }, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // Failed to set ip, utilexec.ExitError exists, and status is not 0 + func() ([]byte, error) { + return nil, &fakeexec.FakeExitError{Status: 1} + }, + }, + }, cmd, args...) + }, + }, + false, + false, + }, + { + "IP address not exists, utilexec.ExitError exists, and status is 0)", + []string{"ensure-ip-address"}, + net.IPv4(10, 10, 10, 20), + []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // IP address not exists + func() ([]byte, error) { + return []byte("IP Address:10.10.10.10"), nil + }, + }, + }, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // Failed to set ip, utilexec.ExitError exists, and status is 0 + func() ([]byte, error) { + return nil, &fakeexec.FakeExitError{Status: 0} + }, + }, + }, cmd, args...) + }, + }, + true, + false, + }, + { + "IP address not exists, and error is not utilexec.ExitError)", + []string{"ensure-ip-address"}, + net.IPv4(10, 10, 10, 20), + []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // IP address not exists + func() ([]byte, error) { + return []byte("IP Address:10.10.10.10"), nil + }, + }, + }, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // Failed to set ip, other error exists + func() ([]byte, error) { + return nil, errors.New("not ExitError") + }, + }, + }, cmd, args...) + }, + }, + true, + false, + }, + } + + for _, test := range tests { + runner := New(&fakeexec.FakeExec{CommandScript: test.fakeCmdAction}) + result, err := runner.EnsureIPAddress(test.arguments, test.ip) + if test.expectedError { + assert.Errorf(t, err, "Failed to test: %s", test.name) + } else { + if err != nil { + assert.NoErrorf(t, err, "Failed to test: %s", test.name) + } else { + assert.EqualValuesf(t, test.expectedResult, result, "Failed to test: %s", test.name) + } + } + } +} + +func TestDeleteIPAddress(t *testing.T) { + runner := fakeCommonRunner() + + tests := []struct { + name string + arguments []string + expectedError bool + }{ + {"Success", []string{"delete-ip-address"}, false}, + {"utilexec.ExitError exists, and status is not 0", []string{"delete-ip-address"}, true}, + {"utilexec.ExitError exists, and status is 0", []string{"delete-ip-address"}, false}, + {"other error exists", []string{"delete-ip-address"}, true}, + } + + for _, test := range tests { + err := runner.DeleteIPAddress(test.arguments) + if test.expectedError { + assert.Errorf(t, err, "Failed to test: %s", test.name) + } else { + assert.NoErrorf(t, err, "Failed to test: %s", test.name) + } + } +} + +func TestGetInterfaceToAddIP(t *testing.T) { + // backup env 'INTERFACE_TO_ADD_SERVICE_IP' + backupValue := os.Getenv("INTERFACE_TO_ADD_SERVICE_IP") + // recover env + defer os.Setenv("INTERFACE_TO_ADD_SERVICE_IP", backupValue) + + tests := []struct { + name string + envToBeSet string + expectedResult string + }{ + {"env_value_is_empty", "", "vEthernet (HNS Internal NIC)"}, + {"env_value_is_not_empty", "eth0", "eth0"}, + } + + fakeExec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{}, + } + netsh := New(&fakeExec) + + for _, test := range tests { + os.Setenv("INTERFACE_TO_ADD_SERVICE_IP", test.envToBeSet) + result := netsh.GetInterfaceToAddIP() + + assert.EqualValuesf(t, test.expectedResult, result, "Failed to test: %s", test.name) + } +} + +func TestRestore(t *testing.T) { + runner := New(&fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{}, + }) + + result := runner.Restore([]string{}) + assert.NoErrorf(t, result, "The return value must be nil") +} + +func TestCheckIPExists(t *testing.T) { + fakeCmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ + // Error exists + func() ([]byte, error) { + return nil, &fakeexec.FakeExitError{Status: 1} + }, + // IP address string is empty + func() ([]byte, error) { + return []byte(""), nil + }, + // "IP Address:" field not exists + func() ([]byte, error) { + return []byte("10.10.10.10"), nil + }, + // IP not exists + func() ([]byte, error) { + return []byte("IP Address:10.10.10.10"), nil + }, + // IP exists + func() ([]byte, error) { + return []byte("IP Address:10.10.10.10\nIP Address:10.10.10.20"), nil + }, + }, + } + fakeExec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeCmd, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeCmd, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeCmd, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeCmd, cmd, args...) + }, + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeCmd, cmd, args...) + }, + }, + } + fakeRunner := &runner{ + exec: &fakeExec, + } + + tests := []struct { + name string + ipToCheck string + arguments []string + expectedError bool + expectedResult bool + }{ + {"Error exists", "10.10.10.20", []string{"check-IP-exists"}, true, false}, + {"IP address string is empty", "10.10.10.20", []string{"check-IP-exists"}, false, false}, + {"'IP Address:' field not exists", "10.10.10.20", []string{"check-IP-exists"}, false, false}, + {"IP not exists", "10.10.10.20", []string{"check-IP-exists"}, false, false}, + {"IP exists", "10.10.10.20", []string{"check-IP-exists"}, false, true}, + } + + for _, test := range tests { + result, err := checkIPExists(test.ipToCheck, test.arguments, fakeRunner) + if test.expectedError { + assert.Errorf(t, err, "Failed to test: %s", test.name) + } else { + assert.EqualValuesf(t, test.expectedResult, result, "Failed to test: %s", test.name) + } + } +} + +func TestGetIP(t *testing.T) { + testcases := []struct { + showAddress string + expectAddress string + }{ + { + showAddress: "IP 地址: 10.96.0.2", + expectAddress: "10.96.0.2", + }, + { + showAddress: "IP Address: 10.96.0.3", + expectAddress: "10.96.0.3", + }, + { + showAddress: "IP Address:10.96.0.4", + expectAddress: "10.96.0.4", + }, + } + + for _, tc := range testcases { + address := getIP(tc.showAddress) + if address != tc.expectAddress { + t.Errorf("expected address=%q, got %q", tc.expectAddress, address) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/node/BUILD b/vendor/k8s.io/kubernetes/pkg/util/node/BUILD index a6b14d3ae..6ce01d7e6 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/node/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/node/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["node.go"], importpath = "k8s.io/kubernetes/pkg/util/node", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/apis:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/util/node/node.go b/vendor/k8s.io/kubernetes/pkg/util/node/node.go index 0138a56b5..a985c9f03 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/node/node.go +++ b/vendor/k8s.io/kubernetes/pkg/util/node/node.go @@ -31,7 +31,7 @@ import ( "k8s.io/apimachinery/pkg/util/strategicpatch" clientset "k8s.io/client-go/kubernetes" v1core "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" ) @@ -146,7 +146,7 @@ func SetNodeCondition(c clientset.Interface, node types.NodeName, condition v1.N if err != nil { return nil } - _, err = c.Core().Nodes().PatchStatus(string(node), patch) + _, err = c.CoreV1().Nodes().PatchStatus(string(node), patch) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/util/reflector/prometheus/prometheus.go b/vendor/k8s.io/kubernetes/pkg/util/reflector/prometheus/prometheus.go index ab16edf49..958a0007c 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/reflector/prometheus/prometheus.go +++ b/vendor/k8s.io/kubernetes/pkg/util/reflector/prometheus/prometheus.go @@ -68,6 +68,12 @@ var ( Name: "items_per_watch", Help: "How many items an API watch returns to the reflectors", }, []string{"name"}) + + lastResourceVersion = prometheus.NewGaugeVec(prometheus.GaugeOpts{ + Subsystem: reflectorSubsystem, + Name: "last_resource_version", + Help: "Last resource version seen for the reflectors", + }, []string{"name"}) ) func init() { @@ -78,6 +84,7 @@ func init() { prometheus.MustRegister(shortWatchesTotal) prometheus.MustRegister(watchDuration) prometheus.MustRegister(itemsPerWatch) + prometheus.MustRegister(lastResourceVersion) cache.SetReflectorMetricsProvider(prometheusMetricsProvider{}) } @@ -117,11 +124,5 @@ func (prometheusMetricsProvider) NewItemsInWatchMetric(name string) cache.Summar } func (prometheusMetricsProvider) NewLastResourceVersionMetric(name string) cache.GaugeMetric { - rv := prometheus.NewGauge(prometheus.GaugeOpts{ - Subsystem: name, - Name: "last_resource_version", - Help: "last resource version seen for the reflectors", - }) - prometheus.MustRegister(rv) - return rv + return lastResourceVersion.WithLabelValues(name) } diff --git a/vendor/k8s.io/kubernetes/pkg/util/taints/BUILD b/vendor/k8s.io/kubernetes/pkg/util/taints/BUILD index 1df1e7ba3..957af3c05 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/taints/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/taints/BUILD @@ -11,8 +11,8 @@ go_library( srcs = ["taints.go"], importpath = "k8s.io/kubernetes/pkg/util/taints", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", @@ -26,7 +26,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/util/taints", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/util/taints/taints.go b/vendor/k8s.io/kubernetes/pkg/util/taints/taints.go index d748686d2..76e4bb866 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/taints/taints.go +++ b/vendor/k8s.io/kubernetes/pkg/util/taints/taints.go @@ -25,8 +25,8 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" ) const ( @@ -45,15 +45,14 @@ func parseTaint(st string) (v1.Taint, error) { parts2 := strings.Split(parts[1], ":") - effect := v1.TaintEffect(parts2[1]) - errs := validation.IsValidLabelValue(parts2[0]) if len(parts2) != 2 || len(errs) != 0 { return taint, fmt.Errorf("invalid taint spec: %v, %s", st, strings.Join(errs, "; ")) } - if effect != v1.TaintEffectNoSchedule && effect != v1.TaintEffectPreferNoSchedule && effect != v1.TaintEffectNoExecute { - return taint, fmt.Errorf("invalid taint spec: %v, unsupported taint effect", st) + effect := v1.TaintEffect(parts2[1]) + if err := validateTaintEffect(effect); err != nil { + return taint, err } taint.Key = parts[0] @@ -63,6 +62,14 @@ func parseTaint(st string) (v1.Taint, error) { return taint, nil } +func validateTaintEffect(effect v1.TaintEffect) error { + if effect != v1.TaintEffectNoSchedule && effect != v1.TaintEffectPreferNoSchedule && effect != v1.TaintEffectNoExecute { + return fmt.Errorf("invalid taint effect: %v, unsupported taint effect", effect) + } + + return nil +} + // NewTaintsVar wraps []api.Taint in a struct that implements flag.Value to allow taints to be // bound to command line flags. func NewTaintsVar(ptr *[]api.Taint) taintsVar { @@ -138,6 +145,14 @@ func ParseTaints(spec []string) ([]v1.Taint, []v1.Taint, error) { taintKey = parts[0] effect = v1.TaintEffect(parts[1]) } + + // If effect is specified, need to validate it. + if len(effect) > 0 { + err := validateTaintEffect(effect) + if err != nil { + return nil, nil, err + } + } taintsToRemove = append(taintsToRemove, v1.Taint{Key: taintKey, Effect: effect}) } else { return nil, nil, fmt.Errorf("unknown taint spec: %v", taintSpec) diff --git a/vendor/k8s.io/kubernetes/pkg/util/taints/taints_test.go b/vendor/k8s.io/kubernetes/pkg/util/taints/taints_test.go index e27e6ad37..110d78f78 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/taints/taints_test.go +++ b/vendor/k8s.io/kubernetes/pkg/util/taints/taints_test.go @@ -22,7 +22,7 @@ import ( "testing" "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "github.com/spf13/pflag" ) @@ -111,3 +111,577 @@ func TestAddOrUpdateTaint(t *testing.T) { newNode, result, err = AddOrUpdateTaint(node, taint) checkResult("Add Duplicate Taint", newNode, taint, result, false, err) } + +func TestTaintExists(t *testing.T) { + testingTaints := []v1.Taint{ + { + Key: "foo_1", + Value: "bar_1", + Effect: v1.TaintEffectNoExecute, + }, + { + Key: "foo_2", + Value: "bar_2", + Effect: v1.TaintEffectNoSchedule, + }, + } + + cases := []struct { + name string + taintToFind *v1.Taint + expectedResult bool + }{ + { + name: "taint exists", + taintToFind: &v1.Taint{Key: "foo_1", Value: "bar_1", Effect: v1.TaintEffectNoExecute}, + expectedResult: true, + }, + { + name: "different key", + taintToFind: &v1.Taint{Key: "no_such_key", Value: "bar_1", Effect: v1.TaintEffectNoExecute}, + expectedResult: false, + }, + { + name: "different effect", + taintToFind: &v1.Taint{Key: "foo_1", Value: "bar_1", Effect: v1.TaintEffectNoSchedule}, + expectedResult: false, + }, + } + + for _, c := range cases { + result := TaintExists(testingTaints, c.taintToFind) + + if result != c.expectedResult { + t.Errorf("[%s] unexpected results: %v", c.name, result) + continue + } + } +} + +func TestRemoveTaint(t *testing.T) { + cases := []struct { + name string + node *v1.Node + taintToRemove *v1.Taint + expectedTaints []v1.Taint + expectedResult bool + }{ + { + name: "remove taint unsuccessfully", + node: &v1.Node{ + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + }, + }, + taintToRemove: &v1.Taint{ + Key: "foo_1", + Effect: v1.TaintEffectNoSchedule, + }, + expectedTaints: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedResult: false, + }, + { + name: "remove taint successfully", + node: &v1.Node{ + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + }, + }, + taintToRemove: &v1.Taint{ + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + expectedTaints: []v1.Taint{}, + expectedResult: true, + }, + { + name: "remove taint from node with no taint", + node: &v1.Node{ + Spec: v1.NodeSpec{ + Taints: []v1.Taint{}, + }, + }, + taintToRemove: &v1.Taint{ + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + expectedTaints: []v1.Taint{}, + expectedResult: false, + }, + } + + for _, c := range cases { + newNode, result, err := RemoveTaint(c.node, c.taintToRemove) + if err != nil { + t.Errorf("[%s] should not raise error but got: %v", c.name, err) + } + if result != c.expectedResult { + t.Errorf("[%s] should return %t, but got: %t", c.name, c.expectedResult, result) + } + if !reflect.DeepEqual(newNode.Spec.Taints, c.expectedTaints) { + t.Errorf("[%s] the new node object should have taints %v, but got: %v", c.name, c.expectedTaints, newNode.Spec.Taints) + } + } +} + +func TestDeleteTaint(t *testing.T) { + cases := []struct { + name string + taints []v1.Taint + taintToDelete *v1.Taint + expectedTaints []v1.Taint + expectedResult bool + }{ + { + name: "delete taint with different name", + taints: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + taintToDelete: &v1.Taint{Key: "foo_1", Effect: v1.TaintEffectNoSchedule}, + expectedTaints: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedResult: false, + }, + { + name: "delete taint with different effect", + taints: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + taintToDelete: &v1.Taint{Key: "foo", Effect: v1.TaintEffectNoExecute}, + expectedTaints: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedResult: false, + }, + { + name: "delete taint successfully", + taints: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + taintToDelete: &v1.Taint{Key: "foo", Effect: v1.TaintEffectNoSchedule}, + expectedTaints: []v1.Taint{}, + expectedResult: true, + }, + { + name: "delete taint from empty taint array", + taints: []v1.Taint{}, + taintToDelete: &v1.Taint{Key: "foo", Effect: v1.TaintEffectNoSchedule}, + expectedTaints: []v1.Taint{}, + expectedResult: false, + }, + } + + for _, c := range cases { + taints, result := DeleteTaint(c.taints, c.taintToDelete) + if result != c.expectedResult { + t.Errorf("[%s] should return %t, but got: %t", c.name, c.expectedResult, result) + } + if !reflect.DeepEqual(taints, c.expectedTaints) { + t.Errorf("[%s] the result taints should be %v, but got: %v", c.name, c.expectedTaints, taints) + } + } +} + +func TestDeleteTaintByKey(t *testing.T) { + cases := []struct { + name string + taints []v1.Taint + taintKey string + expectedTaints []v1.Taint + expectedResult bool + }{ + { + name: "delete taint unsuccessfully", + taints: []v1.Taint{ + { + Key: "foo", + Value: "bar", + Effect: v1.TaintEffectNoSchedule, + }, + }, + taintKey: "foo_1", + expectedTaints: []v1.Taint{ + { + Key: "foo", + Value: "bar", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedResult: false, + }, + { + name: "delete taint successfully", + taints: []v1.Taint{ + { + Key: "foo", + Value: "bar", + Effect: v1.TaintEffectNoSchedule, + }, + }, + taintKey: "foo", + expectedTaints: []v1.Taint{}, + expectedResult: true, + }, + { + name: "delete taint from empty taint array", + taints: []v1.Taint{}, + taintKey: "foo", + expectedTaints: []v1.Taint{}, + expectedResult: false, + }, + } + + for _, c := range cases { + taints, result := DeleteTaintsByKey(c.taints, c.taintKey) + if result != c.expectedResult { + t.Errorf("[%s] should return %t, but got: %t", c.name, c.expectedResult, result) + } + if !reflect.DeepEqual(c.expectedTaints, taints) { + t.Errorf("[%s] the result taints should be %v, but got: %v", c.name, c.expectedTaints, taints) + } + } +} + +func TestCheckIfTaintsAlreadyExists(t *testing.T) { + oldTaints := []v1.Taint{ + { + Key: "foo_1", + Value: "bar", + Effect: v1.TaintEffectNoSchedule, + }, + { + Key: "foo_2", + Value: "bar", + Effect: v1.TaintEffectNoSchedule, + }, + { + Key: "foo_3", + Value: "bar", + Effect: v1.TaintEffectNoSchedule, + }, + } + + cases := []struct { + name string + taintsToCheck []v1.Taint + expectedResult string + }{ + { + name: "empty array", + taintsToCheck: []v1.Taint{}, + expectedResult: "", + }, + { + name: "no match", + taintsToCheck: []v1.Taint{ + { + Key: "foo_1", + Effect: v1.TaintEffectNoExecute, + }, + }, + expectedResult: "", + }, + { + name: "match one taint", + taintsToCheck: []v1.Taint{ + { + Key: "foo_2", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedResult: "foo_2", + }, + { + name: "match two taints", + taintsToCheck: []v1.Taint{ + { + Key: "foo_2", + Effect: v1.TaintEffectNoSchedule, + }, + { + Key: "foo_3", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedResult: "foo_2,foo_3", + }, + } + + for _, c := range cases { + result := CheckIfTaintsAlreadyExists(oldTaints, c.taintsToCheck) + if result != c.expectedResult { + t.Errorf("[%s] should return '%s', but got: '%s'", c.name, c.expectedResult, result) + } + } +} + +func TestReorganizeTaints(t *testing.T) { + node := &v1.Node{ + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + { + Key: "foo", + Value: "bar", + Effect: v1.TaintEffectNoSchedule, + }, + }, + }, + } + + cases := []struct { + name string + overwrite bool + taintsToAdd []v1.Taint + taintsToDelete []v1.Taint + expectedTaints []v1.Taint + expectedOperation string + expectedErr bool + }{ + { + name: "no changes with overwrite is true", + overwrite: true, + taintsToAdd: []v1.Taint{}, + taintsToDelete: []v1.Taint{}, + expectedTaints: node.Spec.Taints, + expectedOperation: MODIFIED, + expectedErr: false, + }, + { + name: "no changes with overwrite is false", + overwrite: false, + taintsToAdd: []v1.Taint{}, + taintsToDelete: []v1.Taint{}, + expectedTaints: node.Spec.Taints, + expectedOperation: UNTAINTED, + expectedErr: false, + }, + { + name: "add new taint", + overwrite: false, + taintsToAdd: []v1.Taint{ + { + Key: "foo_1", + Effect: v1.TaintEffectNoExecute, + }, + }, + taintsToDelete: []v1.Taint{}, + expectedTaints: append([]v1.Taint{{Key: "foo_1", Effect: v1.TaintEffectNoExecute}}, node.Spec.Taints...), + expectedOperation: TAINTED, + expectedErr: false, + }, + { + name: "delete taint with effect", + overwrite: false, + taintsToAdd: []v1.Taint{}, + taintsToDelete: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedTaints: []v1.Taint{}, + expectedOperation: UNTAINTED, + expectedErr: false, + }, + { + name: "delete taint with no effect", + overwrite: false, + taintsToAdd: []v1.Taint{}, + taintsToDelete: []v1.Taint{ + { + Key: "foo", + }, + }, + expectedTaints: []v1.Taint{}, + expectedOperation: UNTAINTED, + expectedErr: false, + }, + { + name: "delete non-exist taint", + overwrite: false, + taintsToAdd: []v1.Taint{}, + taintsToDelete: []v1.Taint{ + { + Key: "foo_1", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedTaints: node.Spec.Taints, + expectedOperation: UNTAINTED, + expectedErr: true, + }, + { + name: "add new taint and delete old one", + overwrite: false, + taintsToAdd: []v1.Taint{ + { + Key: "foo_1", + Effect: v1.TaintEffectNoSchedule, + }, + }, + taintsToDelete: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedTaints: []v1.Taint{ + { + Key: "foo_1", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedOperation: MODIFIED, + expectedErr: false, + }, + } + + for _, c := range cases { + operation, taints, err := ReorganizeTaints(node, c.overwrite, c.taintsToAdd, c.taintsToDelete) + if c.expectedErr && err == nil { + t.Errorf("[%s] expect to see an error, but did not get one", c.name) + } else if !c.expectedErr && err != nil { + t.Errorf("[%s] expect not to see an error, but got one: %v", c.name, err) + } + + if !reflect.DeepEqual(c.expectedTaints, taints) { + t.Errorf("[%s] expect to see taint list %#v, but got: %#v", c.name, c.expectedTaints, taints) + } + + if c.expectedOperation != operation { + t.Errorf("[%s] expect to see operation %s, but got: %s", c.name, c.expectedOperation, operation) + } + } +} + +func TestParseTaints(t *testing.T) { + cases := []struct { + name string + spec []string + expectedTaints []v1.Taint + expectedTaintsToRemove []v1.Taint + expectedErr bool + }{ + { + name: "invalid spec format", + spec: []string{"foo=abc"}, + expectedErr: true, + }, + { + name: "invalid spec effect for adding taint", + spec: []string{"foo=abc:invalid_effect"}, + expectedErr: true, + }, + { + name: "invalid spec effect for deleting taint", + spec: []string{"foo:invalid_effect-"}, + expectedErr: true, + }, + { + name: "add new taints", + spec: []string{"foo=abc:NoSchedule", "bar=abc:NoSchedule"}, + expectedTaints: []v1.Taint{ + { + Key: "foo", + Value: "abc", + Effect: v1.TaintEffectNoSchedule, + }, + { + Key: "bar", + Value: "abc", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedErr: false, + }, + { + name: "delete taints", + spec: []string{"foo:NoSchedule-", "bar:NoSchedule-"}, + expectedTaintsToRemove: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + { + Key: "bar", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedErr: false, + }, + { + name: "add taints and delete taints", + spec: []string{"foo=abc:NoSchedule", "bar=abc:NoSchedule", "foo:NoSchedule-", "bar:NoSchedule-"}, + expectedTaints: []v1.Taint{ + { + Key: "foo", + Value: "abc", + Effect: v1.TaintEffectNoSchedule, + }, + { + Key: "bar", + Value: "abc", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedTaintsToRemove: []v1.Taint{ + { + Key: "foo", + Effect: v1.TaintEffectNoSchedule, + }, + { + Key: "bar", + Effect: v1.TaintEffectNoSchedule, + }, + }, + expectedErr: false, + }, + } + + for _, c := range cases { + taints, taintsToRemove, err := ParseTaints(c.spec) + if c.expectedErr && err == nil { + t.Errorf("[%s] expected error, but got nothing", c.name) + } + if !c.expectedErr && err != nil { + t.Errorf("[%s] expected no error, but got: %v", c.name, err) + } + if !reflect.DeepEqual(c.expectedTaints, taints) { + t.Errorf("[%s] expected returen taints as %v, but got: %v", c.name, c.expectedTaints, taints) + } + if !reflect.DeepEqual(c.expectedTaintsToRemove, taintsToRemove) { + t.Errorf("[%s] expected return taints to be removed as %v, but got: %v", c.name, c.expectedTaintsToRemove, taintsToRemove) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/tolerations/BUILD b/vendor/k8s.io/kubernetes/pkg/util/tolerations/BUILD index 768f41e50..1e3b1189b 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/tolerations/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/tolerations/BUILD @@ -13,7 +13,7 @@ go_library( "tolerations.go", ], importpath = "k8s.io/kubernetes/pkg/util/tolerations", - deps = ["//pkg/api:go_default_library"], + deps = ["//pkg/apis/core:go_default_library"], ) filegroup( @@ -34,5 +34,5 @@ go_test( srcs = ["tolerations_test.go"], importpath = "k8s.io/kubernetes/pkg/util/tolerations", library = ":go_default_library", - deps = ["//pkg/api:go_default_library"], + deps = ["//pkg/apis/core:go_default_library"], ) diff --git a/vendor/k8s.io/kubernetes/pkg/util/tolerations/tolerations.go b/vendor/k8s.io/kubernetes/pkg/util/tolerations/tolerations.go index 9936d2d43..5b5cec8b7 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/tolerations/tolerations.go +++ b/vendor/k8s.io/kubernetes/pkg/util/tolerations/tolerations.go @@ -17,7 +17,7 @@ limitations under the License. package tolerations import ( - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) type key struct { diff --git a/vendor/k8s.io/kubernetes/pkg/util/tolerations/tolerations_test.go b/vendor/k8s.io/kubernetes/pkg/util/tolerations/tolerations_test.go index e652baf35..3f88e30d3 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/tolerations/tolerations_test.go +++ b/vendor/k8s.io/kubernetes/pkg/util/tolerations/tolerations_test.go @@ -17,9 +17,8 @@ limitations under the License. package tolerations import ( + api "k8s.io/kubernetes/pkg/apis/core" "testing" - - "k8s.io/kubernetes/pkg/api" ) func TestVerifyAgainstWhitelist(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/version/base.go b/vendor/k8s.io/kubernetes/pkg/version/base.go index 6239d53ff..730e79f03 100644 --- a/vendor/k8s.io/kubernetes/pkg/version/base.go +++ b/vendor/k8s.io/kubernetes/pkg/version/base.go @@ -51,9 +51,13 @@ var ( // semantic version is a git hash, but the version itself is no // longer the direct output of "git describe", but a slight // translation to be semver compliant. + + // NOTE: The $Format strings are replaced during 'git archive' thanks to the + // companion .gitattributes file containing 'export-subst' in this same + // directory. See also https://git-scm.com/docs/gitattributes gitVersion = "v0.0.0-master+$Format:%h$" - gitCommit = "$Format:%H$" // sha1 from git, output of $(git rev-parse HEAD) - gitTreeState = "not a git tree" // state of git tree, either "clean" or "dirty" + gitCommit = "$Format:%H$" // sha1 from git, output of $(git rev-parse HEAD) + gitTreeState = "" // state of git tree, either "clean" or "dirty" buildDate = "1970-01-01T00:00:00Z" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ') ) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/BUILD index 6796dcb4e..020a644d0 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/BUILD @@ -56,7 +56,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/volume", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/util/slice:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/volume/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/OWNERS index 03856d7fa..9ee3a37d7 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/OWNERS @@ -7,15 +7,11 @@ approvers: - gnufied - childsb reviewers: -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 - msau42 - gnufied +- verult +- davidz627 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/aws_ebs/attacher.go b/vendor/k8s.io/kubernetes/pkg/volume/aws_ebs/attacher.go index bf1414246..ac8ea48fe 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/aws_ebs/attacher.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/aws_ebs/attacher.go @@ -253,8 +253,8 @@ func (plugin *awsElasticBlockStorePlugin) NewDetacher() (volume.Detacher, error) }, nil } -func (detacher *awsElasticBlockStoreDetacher) Detach(deviceMountPath string, nodeName types.NodeName) error { - volumeID := aws.KubernetesVolumeID(path.Base(deviceMountPath)) +func (detacher *awsElasticBlockStoreDetacher) Detach(volumeName string, nodeName types.NodeName) error { + volumeID := aws.KubernetesVolumeID(path.Base(volumeName)) attached, err := detacher.awsVolumes.DiskIsAttached(volumeID, nodeName) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/aws_ebs/aws_ebs_test.go b/vendor/k8s.io/kubernetes/pkg/volume/aws_ebs/aws_ebs_test.go index 7c149bf06..9611cec38 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/aws_ebs/aws_ebs_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/aws_ebs/aws_ebs_test.go @@ -71,23 +71,14 @@ func TestGetAccessModes(t *testing.T) { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) { t.Errorf("Expected to support AccessModeTypes: %s", v1.ReadWriteOnce) } - if contains(plug.GetAccessModes(), v1.ReadOnlyMany) { + if volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) { t.Errorf("Expected not to support AccessModeTypes: %s", v1.ReadOnlyMany) } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - type fakePDManager struct { } @@ -177,7 +168,7 @@ func TestPlugin(t *testing.T) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } // Test Provisioner diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/BUILD index 95e925f6f..7a71a2c4b 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/BUILD @@ -26,7 +26,7 @@ go_library( }), importpath = "k8s.io/kubernetes/pkg/volume/azure_dd", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/azure:go_default_library", "//pkg/util/keymutex:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/OWNERS index 1d61e4196..d0a8a5db5 100755 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/OWNERS @@ -2,13 +2,8 @@ approvers: - brendandburns - rootfs reviewers: -- justinsb - rootfs - brendandburns -- thockin -- smarterclayton -- derekwaynecarr -- pmorie - saad-ali - jsafrane - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common.go b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common.go index 157be0d42..b4fa3b2c9 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common.go @@ -27,7 +27,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/cloudprovider/providers/azure" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/strings" @@ -37,6 +37,7 @@ import ( const ( defaultFSType = "ext4" defaultStorageAccountType = storage.StandardLRS + defaultAzureDiskKind = v1.AzureSharedBlobDisk ) type dataDisk struct { @@ -116,7 +117,7 @@ func normalizeFsType(fsType string) string { func normalizeKind(kind string) (v1.AzureDataDiskKind, error) { if kind == "" { - return v1.AzureDedicatedBlobDisk, nil + return defaultAzureDiskKind, nil } if !supportedDiskKinds.Has(kind) { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common_linux.go b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common_linux.go index d5d0caa1e..304a2bc28 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common_linux.go @@ -77,6 +77,19 @@ func findDiskByLunWithConstraint(lun int, io ioHandler, azureDisks []string) (st if len(arr) < 4 { continue } + if len(azureDisks) == 0 { + glog.V(4).Infof("/dev/disk/azure is not populated, now try to parse %v directly", name) + target, err := strconv.Atoi(arr[0]) + if err != nil { + glog.Errorf("failed to parse target from %v (%v), err %v", arr[0], name, err) + continue + } + // as observed, targets 0-3 are used by OS disks. Skip them + if target <= 3 { + continue + } + } + // extract LUN from the path. // LUN is the last index of the array, i.e. 1 in /sys/bus/scsi/devices/3:0:0:1 l, err := strconv.Atoi(arr[3]) @@ -150,9 +163,10 @@ func formatIfNotFormatted(disk string, fstype string, exec mount.Exec) { _, err := exec.Run("mkfs."+fstype, args...) if err == nil { // the disk has been formatted successfully try to mount it again. - glog.Infof("azureDisk - Disk successfully formatted (mkfs): %s - %s %s", fstype, disk, "tt") + glog.Infof("azureDisk - Disk successfully formatted with 'mkfs.%s %v'", fstype, args) + } else { + glog.Warningf("azureDisk - Error formatting volume with 'mkfs.%s %v': %v", fstype, args, err) } - glog.Warningf("azureDisk - format of disk %q failed: type:(%q) target:(%q) options:(%q)error:(%v)", disk, fstype, "tt", "o", err) } else { if err != nil { glog.Warningf("azureDisk - Failed to check if the disk %s formatted with error %s, will attach anyway", disk, err) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_mounter.go b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_mounter.go index 74f3d39f0..ccec2d25f 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_mounter.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_mounter.go @@ -43,10 +43,16 @@ var _ volume.Unmounter = &azureDiskUnmounter{} var _ volume.Mounter = &azureDiskMounter{} func (m *azureDiskMounter) GetAttributes() volume.Attributes { - volumeSource, _ := getVolumeSource(m.spec) + readOnly := false + volumeSource, err := getVolumeSource(m.spec) + if err != nil { + glog.Infof("azureDisk - mounter failed to get volume source for spec %s %v", m.spec.Name(), err) + } else if volumeSource.ReadOnly != nil { + readOnly = *volumeSource.ReadOnly + } return volume.Attributes{ - ReadOnly: *volumeSource.ReadOnly, - Managed: !*volumeSource.ReadOnly, + ReadOnly: readOnly, + Managed: !readOnly, SupportsSELinux: true, } } @@ -94,7 +100,7 @@ func (m *azureDiskMounter) SetUpAt(dir string, fsGroup *int64) error { options := []string{"bind"} - if *volumeSource.ReadOnly { + if volumeSource.ReadOnly != nil && *volumeSource.ReadOnly { options = append(options, "ro") } @@ -138,7 +144,7 @@ func (m *azureDiskMounter) SetUpAt(dir string, fsGroup *int64) error { return mountErr } - if !*volumeSource.ReadOnly { + if volumeSource.ReadOnly == nil || !*volumeSource.ReadOnly { volume.SetVolumeOwnership(m, fsGroup) } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/OWNERS index 1d61e4196..d0a8a5db5 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/OWNERS @@ -2,13 +2,8 @@ approvers: - brendandburns - rootfs reviewers: -- justinsb - rootfs - brendandburns -- thockin -- smarterclayton -- derekwaynecarr -- pmorie - saad-ali - jsafrane - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file_test.go b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file_test.go index d6fc12596..c9e177883 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file_test.go @@ -71,20 +71,11 @@ func TestGetAccessModes(t *testing.T) { if err != nil { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) || !contains(plug.GetAccessModes(), v1.ReadOnlyMany) || !contains(plug.GetAccessModes(), v1.ReadWriteMany) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteMany) { t.Errorf("Expected three AccessModeTypes: %s, %s, and %s", v1.ReadWriteOnce, v1.ReadOnlyMany, v1.ReadWriteMany) } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - func getAzureTestCloud(t *testing.T) *azure.Cloud { config := `{ "aadClientId": "--aad-client-id--", @@ -193,7 +184,7 @@ func testPlugin(t *testing.T, tmpDir string, volumeHost volume.VolumeHost) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/cephfs/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/cephfs/OWNERS index a8a2447c2..35dc489f9 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/cephfs/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/cephfs/OWNERS @@ -2,13 +2,7 @@ approvers: - rootfs - saad-ali reviewers: -- justinsb - rootfs -- brendandburns -- thockin -- smarterclayton -- derekwaynecarr -- pmorie - saad-ali - jsafrane - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/cephfs/cephfs_test.go b/vendor/k8s.io/kubernetes/pkg/volume/cephfs/cephfs_test.go index 5cf26effb..b09011df2 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/cephfs/cephfs_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/cephfs/cephfs_test.go @@ -111,7 +111,7 @@ func TestPlugin(t *testing.T) { if _, err := os.Stat(volumePath); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", volumePath) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/cinder/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/cinder/OWNERS index 3184a355e..d63338e28 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/cinder/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/cinder/OWNERS @@ -5,13 +5,7 @@ approvers: - FengyunPan reviewers: - anguslees -- justinsb - rootfs -- brendandburns -- thockin -- smarterclayton -- derekwaynecarr -- pmorie - saad-ali - jsafrane - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/cinder/attacher.go b/vendor/k8s.io/kubernetes/pkg/volume/cinder/attacher.go index f6d1e4be6..048fcabe9 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/cinder/attacher.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/cinder/attacher.go @@ -374,8 +374,8 @@ func (detacher *cinderDiskDetacher) waitDiskDetached(instanceID, volumeID string return err } -func (detacher *cinderDiskDetacher) Detach(deviceMountPath string, nodeName types.NodeName) error { - volumeID := path.Base(deviceMountPath) +func (detacher *cinderDiskDetacher) Detach(volumeName string, nodeName types.NodeName) error { + volumeID := path.Base(volumeName) instances, res := detacher.cinderProvider.Instances() if !res { return fmt.Errorf("failed to list openstack instances") diff --git a/vendor/k8s.io/kubernetes/pkg/volume/cinder/cinder_test.go b/vendor/k8s.io/kubernetes/pkg/volume/cinder/cinder_test.go index a5fc22881..7a81e4c78 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/cinder/cinder_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/cinder/cinder_test.go @@ -194,7 +194,7 @@ func TestPlugin(t *testing.T) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } // Test Provisioner diff --git a/vendor/k8s.io/kubernetes/pkg/volume/cinder/cinder_util.go b/vendor/k8s.io/kubernetes/pkg/volume/cinder/cinder_util.go index 1e0d51d6c..661ad3f05 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/cinder/cinder_util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/cinder/cinder_util.go @@ -144,7 +144,7 @@ func getZonesFromNodes(kubeClient clientset.Interface) (sets.String, error) { // TODO: caching, currently it is overkill because it calls this function // only when it creates dynamic PV zones := make(sets.String) - nodes, err := kubeClient.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := kubeClient.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { glog.V(2).Infof("Error listing nodes") return zones, err diff --git a/vendor/k8s.io/kubernetes/pkg/volume/configmap/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/configmap/OWNERS index 72968b277..baaff6ff4 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/configmap/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/configmap/OWNERS @@ -7,13 +7,7 @@ reviewers: - ivan4th - rata - sjenning -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/configmap/configmap_test.go b/vendor/k8s.io/kubernetes/pkg/volume/configmap/configmap_test.go index 9b2388517..c7be06f00 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/configmap/configmap_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/configmap/configmap_test.go @@ -606,6 +606,6 @@ func doTestCleanAndTeardown(plugin volume.VolumePlugin, podUID types.UID, testVo if _, err := os.Stat(volumePath); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", volumePath) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/OWNERS index 72968b277..baaff6ff4 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/OWNERS @@ -7,13 +7,7 @@ reviewers: - ivan4th - rata - sjenning -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/downwardapi_test.go b/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/downwardapi_test.go index 4f68da845..67a312012 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/downwardapi_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/downwardapi_test.go @@ -287,7 +287,7 @@ func (test *downwardAPITest) tearDown() { if _, err := os.Stat(test.volumePath); err == nil { test.t.Errorf("TearDown() failed, volume path still exists: %s", test.volumePath) } else if !os.IsNotExist(err) { - test.t.Errorf("SetUp() failed: %v", err) + test.t.Errorf("TearDown() failed: %v", err) } os.RemoveAll(test.rootDir) } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/BUILD index 4f5a52c89..c20dd4f39 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/BUILD @@ -20,7 +20,7 @@ go_library( }), importpath = "k8s.io/kubernetes/pkg/volume/empty_dir", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", "//pkg/volume:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/OWNERS index 72968b277..baaff6ff4 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/OWNERS @@ -7,13 +7,7 @@ reviewers: - ivan4th - rata - sjenning -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/empty_dir.go b/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/empty_dir.go index 68cd56727..ef7807601 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/empty_dir.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/empty_dir.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/util/mount" stringsutil "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" @@ -227,7 +227,7 @@ func (ed *emptyDir) SetUpAt(dir string, fsGroup *int64) error { err = ed.setupDir(dir) case v1.StorageMediumMemory: err = ed.setupTmpfs(dir) - case v1.StorageMediumHugepages: + case v1.StorageMediumHugePages: err = ed.setupHugepages(dir) default: err = fmt.Errorf("unknown storage medium %q", ed.medium) @@ -392,7 +392,7 @@ func (ed *emptyDir) TearDownAt(dir string) error { ed.medium = v1.StorageMediumMemory return ed.teardownTmpfsOrHugetlbfs(dir) } else if medium == mediumHugepages { - ed.medium = v1.StorageMediumHugepages + ed.medium = v1.StorageMediumHugePages return ed.teardownTmpfsOrHugetlbfs(dir) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/empty_dir_test.go b/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/empty_dir_test.go index 003aea084..cd4e9b618 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/empty_dir_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/empty_dir/empty_dir_test.go @@ -83,7 +83,7 @@ func TestPluginEmptyRootContext(t *testing.T) { func TestPluginHugetlbfs(t *testing.T) { doTestPlugin(t, pluginTestConfig{ - medium: v1.StorageMediumHugepages, + medium: v1.StorageMediumHugePages, expectedSetupMounts: 1, expectedTeardownMounts: 0, shouldBeMountedBeforeTeardown: true, @@ -216,7 +216,7 @@ func doTestPlugin(t *testing.T, config pluginTestConfig) { if _, err := os.Stat(volPath); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", volPath) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } // Check the number of physicalMounter calls during tardown diff --git a/vendor/k8s.io/kubernetes/pkg/volume/fc/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/fc/OWNERS index 0f6062cc1..5c95f6dfc 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/fc/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/fc/OWNERS @@ -2,13 +2,7 @@ approvers: - rootfs - saad-ali reviewers: -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/fc/attacher.go b/vendor/k8s.io/kubernetes/pkg/volume/fc/attacher.go index 4a8121fae..2ffb3793e 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/fc/attacher.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/fc/attacher.go @@ -135,7 +135,7 @@ func (plugin *fcPlugin) NewDetacher() (volume.Detacher, error) { }, nil } -func (detacher *fcDetacher) Detach(deviceMountPath string, nodeName types.NodeName) error { +func (detacher *fcDetacher) Detach(volumeName string, nodeName types.NodeName) error { return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/fc/fc_test.go b/vendor/k8s.io/kubernetes/pkg/volume/fc/fc_test.go index b80069428..ff8f66dbe 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/fc/fc_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/fc/fc_test.go @@ -67,20 +67,11 @@ func TestGetAccessModes(t *testing.T) { if err != nil { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) || !contains(plug.GetAccessModes(), v1.ReadOnlyMany) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) { t.Errorf("Expected two AccessModeTypes: %s and %s", v1.ReadWriteOnce, v1.ReadOnlyMany) } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - type fakeDiskManager struct { tmpDir string attachCalled bool @@ -190,7 +181,7 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/OWNERS index 975407b41..3342c22c4 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/OWNERS @@ -6,13 +6,7 @@ reviewers: - ivan4th - rata - sjenning -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/detacher-defaults.go b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/detacher-defaults.go index 17c85a365..181f87bde 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/detacher-defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/detacher-defaults.go @@ -27,8 +27,8 @@ import ( type detacherDefaults flexVolumeDetacher // Detach is part of the volume.Detacher interface. -func (d *detacherDefaults) Detach(deviceName string, hostName types.NodeName) error { - glog.Warning(logPrefix(d.plugin.flexVolumePlugin), "using default Detach for device ", deviceName, ", host ", hostName) +func (d *detacherDefaults) Detach(volumeName string, hostName types.NodeName) error { + glog.Warning(logPrefix(d.plugin.flexVolumePlugin), "using default Detach for volume ", volumeName, ", host ", hostName) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/detacher.go b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/detacher.go index 4acbd03ea..d2aba85b9 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/detacher.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/detacher.go @@ -34,15 +34,15 @@ type flexVolumeDetacher struct { var _ volume.Detacher = &flexVolumeDetacher{} // Detach is part of the volume.Detacher interface. -func (d *flexVolumeDetacher) Detach(pvOrVolumeName string, hostName types.NodeName) error { +func (d *flexVolumeDetacher) Detach(volumeName string, hostName types.NodeName) error { call := d.plugin.NewDriverCall(detachCmd) - call.Append(pvOrVolumeName) + call.Append(volumeName) call.Append(string(hostName)) _, err := call.Run() if isCmdNotSupportedErr(err) { - return (*detacherDefaults)(d).Detach(pvOrVolumeName, hostName) + return (*detacherDefaults)(d).Detach(volumeName, hostName) } return err } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/flexvolume_test.go b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/flexvolume_test.go index 292beb545..4b0b8b95a 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/flexvolume_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/flexvolume_test.go @@ -208,16 +208,7 @@ func TestGetAccessModes(t *testing.T) { if err != nil { t.Fatalf("Can't find the plugin by name") } - if !contains(plugin.GetAccessModes(), v1.ReadWriteOnce) || !contains(plugin.GetAccessModes(), v1.ReadOnlyMany) { + if !volumetest.ContainsAccessMode(plugin.GetAccessModes(), v1.ReadWriteOnce) || !volumetest.ContainsAccessMode(plugin.GetAccessModes(), v1.ReadOnlyMany) { t.Errorf("Expected two AccessModeTypes: %s and %s", v1.ReadWriteOnce, v1.ReadOnlyMany) } } - -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} diff --git a/vendor/k8s.io/kubernetes/pkg/volume/flocker/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/flocker/OWNERS index 35cbcb214..f9f7cef50 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/flocker/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/flocker/OWNERS @@ -4,13 +4,7 @@ approvers: reviewers: - agonzalezro - simonswine -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/OWNERS index 1f138a152..5fa7bd72c 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/OWNERS @@ -2,13 +2,11 @@ approvers: - saad-ali - thockin reviewers: -- thockin -- smarterclayton -- pmorie - saad-ali -- justinsb - jsafrane -- markturansky - jingxu97 - matchstick - gnufied +- msau42 +- verult +- davidz627 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/attacher.go b/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/attacher.go index 588d9aabe..6ee1fd6d2 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/attacher.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/attacher.go @@ -247,8 +247,8 @@ func (plugin *gcePersistentDiskPlugin) NewDetacher() (volume.Detacher, error) { // Callers are responsible for retrying on failure. // Callers are responsible for thread safety between concurrent attach and detach // operations. -func (detacher *gcePersistentDiskDetacher) Detach(deviceMountPath string, nodeName types.NodeName) error { - pdName := path.Base(deviceMountPath) +func (detacher *gcePersistentDiskDetacher) Detach(volumeName string, nodeName types.NodeName) error { + pdName := path.Base(volumeName) attached, err := detacher.gceDisks.DiskIsAttached(pdName, nodeName) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/gce_pd_test.go b/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/gce_pd_test.go index cb8397da2..e9124dee4 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/gce_pd_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/gce_pd/gce_pd_test.go @@ -69,20 +69,11 @@ func TestGetAccessModes(t *testing.T) { if err != nil { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) || !contains(plug.GetAccessModes(), v1.ReadOnlyMany) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) { t.Errorf("Expected two AccessModeTypes: %s and %s", v1.ReadWriteOnce, v1.ReadOnlyMany) } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - type fakePDManager struct { } @@ -170,7 +161,7 @@ func TestPlugin(t *testing.T) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } // Test Provisioner diff --git a/vendor/k8s.io/kubernetes/pkg/volume/git_repo/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/git_repo/OWNERS index 801d55bc1..27d4e9216 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/git_repo/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/git_repo/OWNERS @@ -2,13 +2,7 @@ approvers: - thockin - saad-ali reviewers: -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/git_repo/git_repo_test.go b/vendor/k8s.io/kubernetes/pkg/volume/git_repo/git_repo_test.go index 1bee3ad21..8c6a41a1c 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/git_repo/git_repo_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/git_repo/git_repo_test.go @@ -306,7 +306,7 @@ func doTestPlugin(scenario struct { fmt.Errorf("TearDown() failed, volume path still exists: %s", path)) } else if !os.IsNotExist(err) { allErrs = append(allErrs, - fmt.Errorf("SetUp() failed: %v", err)) + fmt.Errorf("TearDown() failed: %v", err)) } return allErrs } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/BUILD index 5eeb65b40..b8371b5e8 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/BUILD @@ -16,7 +16,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/volume/glusterfs", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", "//pkg/volume:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/OWNERS index 75150d589..080b69b30 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/OWNERS @@ -4,13 +4,7 @@ approvers: - jingxu97 - humblec reviewers: -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - humblec diff --git a/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/glusterfs.go b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/glusterfs.go index b3fae1aad..300d19cde 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/glusterfs.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/glusterfs.go @@ -37,7 +37,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" clientset "k8s.io/client-go/kubernetes" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" @@ -149,7 +149,7 @@ func (plugin *glusterfsPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, _ volu if kubeClient == nil { return nil, fmt.Errorf("failed to get kube client to initialize mounter") } - ep, err := kubeClient.Core().Endpoints(podNs).Get(epName, metav1.GetOptions{}) + ep, err := kubeClient.CoreV1().Endpoints(podNs).Get(epName, metav1.GetOptions{}) if err != nil { glog.Errorf("failed to get endpoints %s[%v]", epName, err) return nil, err @@ -493,7 +493,7 @@ func (plugin *glusterfsPlugin) collectGids(className string, gidTable *MinMaxAll if kubeClient == nil { return fmt.Errorf("failed to get kube client when collecting gids") } - pvList, err := kubeClient.Core().PersistentVolumes().List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) + pvList, err := kubeClient.CoreV1().PersistentVolumes().List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) if err != nil { glog.Errorf("failed to get existing persistent volumes") return err @@ -768,7 +768,7 @@ func (p *glusterfsVolumeProvisioner) CreateVolume(gid int) (r *v1.GlusterfsVolum return nil, 0, fmt.Errorf("error [%v] when getting cluster nodes for volume %s", err, volume) } - // The 'endpointname' is created in form of 'gluster-dynamic-'. + // The 'endpointname' is created in form of 'glusterfs-dynamic-'. // createEndpointService() checks for this 'endpoint' existence in PVC's namespace and // If not found, it create an endpoint and svc using the IPs we dynamically picked at time // of volume creation. @@ -814,7 +814,7 @@ func (p *glusterfsVolumeProvisioner) createEndpointService(namespace string, epS if kubeClient == nil { return nil, nil, fmt.Errorf("failed to get kube client when creating endpoint service") } - _, err = kubeClient.Core().Endpoints(namespace).Create(endpoint) + _, err = kubeClient.CoreV1().Endpoints(namespace).Create(endpoint) if err != nil && errors.IsAlreadyExists(err) { glog.V(1).Infof("endpoint [%s] already exist in namespace [%s]", endpoint, namespace) err = nil @@ -834,7 +834,7 @@ func (p *glusterfsVolumeProvisioner) createEndpointService(namespace string, epS Spec: v1.ServiceSpec{ Ports: []v1.ServicePort{ {Protocol: "TCP", Port: 1}}}} - _, err = kubeClient.Core().Services(namespace).Create(service) + _, err = kubeClient.CoreV1().Services(namespace).Create(service) if err != nil && errors.IsAlreadyExists(err) { glog.V(1).Infof("service [%s] already exist in namespace [%s]", service, namespace) err = nil @@ -851,7 +851,7 @@ func (d *glusterfsVolumeDeleter) deleteEndpointService(namespace string, epServi if kubeClient == nil { return fmt.Errorf("failed to get kube client when deleting endpoint service") } - err = kubeClient.Core().Services(namespace).Delete(epServiceName, nil) + err = kubeClient.CoreV1().Services(namespace).Delete(epServiceName, nil) if err != nil { glog.Errorf("error deleting service %s/%s: %v", namespace, epServiceName, err) return fmt.Errorf("error deleting service %s/%s: %v", namespace, epServiceName, err) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/glusterfs_test.go b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/glusterfs_test.go index ba8a2fb37..716986acd 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/glusterfs_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/glusterfs_test.go @@ -73,20 +73,11 @@ func TestGetAccessModes(t *testing.T) { if err != nil { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) || !contains(plug.GetAccessModes(), v1.ReadOnlyMany) || !contains(plug.GetAccessModes(), v1.ReadWriteMany) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteMany) { t.Errorf("Expected three AccessModeTypes: %s, %s, and %s", v1.ReadWriteOnce, v1.ReadOnlyMany, v1.ReadWriteMany) } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - func doTestPlugin(t *testing.T, spec *volume.Spec) { tmpDir, err := utiltesting.MkTmpdir("glusterfs_test") if err != nil { @@ -138,7 +129,7 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { if _, err := os.Stat(volumePath); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", volumePath) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/host_path/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/host_path/OWNERS index 77e285d35..2a4ad74ae 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/host_path/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/host_path/OWNERS @@ -3,13 +3,7 @@ approvers: - saad-ali - thockin reviewers: -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/iscsi/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/iscsi/OWNERS index 99e2d8b36..a7992dec6 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/iscsi/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/iscsi/OWNERS @@ -3,13 +3,7 @@ approvers: - saad-ali - rootfs reviewers: -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - humblec diff --git a/vendor/k8s.io/kubernetes/pkg/volume/iscsi/attacher.go b/vendor/k8s.io/kubernetes/pkg/volume/iscsi/attacher.go index 4cea774ea..8158a0ab0 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/iscsi/attacher.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/iscsi/attacher.go @@ -137,7 +137,7 @@ func (plugin *iscsiPlugin) NewDetacher() (volume.Detacher, error) { }, nil } -func (detacher *iscsiDetacher) Detach(deviceMountPath string, nodeName types.NodeName) error { +func (detacher *iscsiDetacher) Detach(volumeName string, nodeName types.NodeName) error { return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/iscsi/iscsi_test.go b/vendor/k8s.io/kubernetes/pkg/volume/iscsi/iscsi_test.go index dd0346579..d91564740 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/iscsi/iscsi_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/iscsi/iscsi_test.go @@ -67,20 +67,11 @@ func TestGetAccessModes(t *testing.T) { if err != nil { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) || !contains(plug.GetAccessModes(), v1.ReadOnlyMany) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) { t.Errorf("Expected two AccessModeTypes: %s and %s", v1.ReadWriteOnce, v1.ReadOnlyMany) } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - type fakeDiskManager struct { tmpDir string attachCalled bool @@ -188,7 +179,7 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/local/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/local/OWNERS index 558224cf9..c995ab66a 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/local/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/local/OWNERS @@ -6,13 +6,7 @@ approvers: - jingxu97 - jsafrane reviewers: -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/local/local_test.go b/vendor/k8s.io/kubernetes/pkg/volume/local/local_test.go index 87fb829c4..5ad6c933f 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/local/local_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/local/local_test.go @@ -93,15 +93,6 @@ func getTestVolume(readOnly bool, path string) *volume.Spec { return volume.NewSpecFromPersistentVolume(pv, readOnly) } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - func TestCanSupport(t *testing.T) { tmpDir, plug := getPlugin(t) defer os.RemoveAll(tmpDir) @@ -116,14 +107,14 @@ func TestGetAccessModes(t *testing.T) { defer os.RemoveAll(tmpDir) modes := plug.GetAccessModes() - if !contains(modes, v1.ReadWriteOnce) { + if !volumetest.ContainsAccessMode(modes, v1.ReadWriteOnce) { t.Errorf("Expected AccessModeType %q", v1.ReadWriteOnce) } - if contains(modes, v1.ReadWriteMany) { + if volumetest.ContainsAccessMode(modes, v1.ReadWriteMany) { t.Errorf("Found AccessModeType %q, expected not", v1.ReadWriteMany) } - if contains(modes, v1.ReadOnlyMany) { + if volumetest.ContainsAccessMode(modes, v1.ReadOnlyMany) { t.Errorf("Found AccessModeType %q, expected not", v1.ReadOnlyMany) } } @@ -202,7 +193,7 @@ func TestMountUnmount(t *testing.T) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/nfs/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/nfs/OWNERS index bd1a85144..025423a9f 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/nfs/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/nfs/OWNERS @@ -4,13 +4,7 @@ approvers: - jingxu97 reviewers: - sjenning -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/nfs/nfs_test.go b/vendor/k8s.io/kubernetes/pkg/volume/nfs/nfs_test.go index 2cb83235b..924978454 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/nfs/nfs_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/nfs/nfs_test.go @@ -73,7 +73,7 @@ func TestGetAccessModes(t *testing.T) { if err != nil { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) || !contains(plug.GetAccessModes(), v1.ReadOnlyMany) || !contains(plug.GetAccessModes(), v1.ReadWriteMany) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteMany) { t.Errorf("Expected three AccessModeTypes: %s, %s, and %s", v1.ReadWriteOnce, v1.ReadOnlyMany, v1.ReadWriteMany) } } @@ -95,15 +95,6 @@ func TestRecycler(t *testing.T) { } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - func doTestPlugin(t *testing.T, spec *volume.Spec) { tmpDir, err := utiltesting.MkTmpdir("nfs_test") if err != nil { @@ -120,17 +111,16 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { fake := &mount.FakeMounter{} pod := &v1.Pod{ObjectMeta: metav1.ObjectMeta{UID: types.UID("poduid")}} mounter, err := plug.(*nfsPlugin).newMounterInternal(spec, pod, fake) - volumePath := mounter.GetPath() if err != nil { t.Errorf("Failed to make a new Mounter: %v", err) } if mounter == nil { t.Errorf("Got a nil Mounter") } - path := mounter.GetPath() + volumePath := mounter.GetPath() expectedPath := fmt.Sprintf("%s/pods/poduid/volumes/kubernetes.io~nfs/vol1", tmpDir) - if path != expectedPath { - t.Errorf("Unexpected path, expected %q, got: %q", expectedPath, path) + if volumePath != expectedPath { + t.Errorf("Unexpected path, expected %q, got: %q", expectedPath, volumePath) } if err := mounter.SetUp(nil); err != nil { t.Errorf("Expected success, got: %v", err) @@ -167,13 +157,13 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { if _, err := os.Stat(volumePath); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", volumePath) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } if len(fake.Log) != 1 { t.Errorf("Unmount was not called exactly one time. It was called %d times.", len(fake.Log)) } else { if fake.Log[0].Action != mount.FakeActionUnmount { - t.Errorf("Unexpected mounter action: %#v", fake.Log[0]) + t.Errorf("Unexpected unmounter action: %#v", fake.Log[0]) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/photon_pd/attacher.go b/vendor/k8s.io/kubernetes/pkg/volume/photon_pd/attacher.go index 4af726716..c3938269c 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/photon_pd/attacher.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/photon_pd/attacher.go @@ -243,10 +243,10 @@ func (plugin *photonPersistentDiskPlugin) NewDetacher() (volume.Detacher, error) } // Detach the given device from the given host. -func (detacher *photonPersistentDiskDetacher) Detach(deviceMountPath string, nodeName types.NodeName) error { +func (detacher *photonPersistentDiskDetacher) Detach(volumeName string, nodeName types.NodeName) error { hostName := string(nodeName) - pdID := deviceMountPath + pdID := volumeName attached, err := detacher.photonDisks.DiskIsAttached(pdID, nodeName) if err != nil { // Log error and continue with detach diff --git a/vendor/k8s.io/kubernetes/pkg/volume/photon_pd/photon_pd_test.go b/vendor/k8s.io/kubernetes/pkg/volume/photon_pd/photon_pd_test.go index 719727307..290fd3eef 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/photon_pd/photon_pd_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/photon_pd/photon_pd_test.go @@ -68,23 +68,14 @@ func TestGetAccessModes(t *testing.T) { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) { t.Errorf("Expected to support AccessModeTypes: %s", v1.ReadWriteOnce) } - if contains(plug.GetAccessModes(), v1.ReadOnlyMany) { + if volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) { t.Errorf("Expected not to support AccessModeTypes: %s", v1.ReadOnlyMany) } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - type fakePDManager struct { } @@ -170,7 +161,7 @@ func TestPlugin(t *testing.T) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } // Test Provisioner diff --git a/vendor/k8s.io/kubernetes/pkg/volume/plugins.go b/vendor/k8s.io/kubernetes/pkg/volume/plugins.go index 334578b4d..1ec55d239 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/plugins.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/plugins.go @@ -711,7 +711,7 @@ func NewPersistentVolumeRecyclerPodTemplate() *v1.Pod { Containers: []v1.Container{ { Name: "pv-recycler", - Image: "gcr.io/google_containers/busybox", + Image: "busybox:1.27", Command: []string{"/bin/sh"}, Args: []string{"-c", "test -e /scrub && rm -rf /scrub/..?* /scrub/.[!.]* /scrub/* && test -z \"$(ls -A /scrub)\" || exit 1"}, VolumeMounts: []v1.VolumeMount{ diff --git a/vendor/k8s.io/kubernetes/pkg/volume/portworx/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/portworx/BUILD index d2f7dd633..36714e963 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/portworx/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/portworx/BUILD @@ -30,7 +30,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/volume/portworx", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", "//pkg/volume:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_test.go b/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_test.go index 5401b6384..074f25c47 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_test.go @@ -72,26 +72,17 @@ func TestGetAccessModes(t *testing.T) { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) { t.Errorf("Expected to support AccessModeTypes: %s", v1.ReadWriteOnce) } - if !contains(plug.GetAccessModes(), v1.ReadWriteMany) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteMany) { t.Errorf("Expected to support AccessModeTypes: %s", v1.ReadWriteMany) } - if contains(plug.GetAccessModes(), v1.ReadOnlyMany) { + if volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) { t.Errorf("Expected not to support AccessModeTypes: %s", v1.ReadOnlyMany) } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - type fakePortworxManager struct { attachCalled bool mountCalled bool diff --git a/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_util.go b/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_util.go index cf7ddf8ed..60677df2c 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_util.go @@ -25,7 +25,7 @@ import ( volumeapi "github.com/libopenstorage/openstorage/volume" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/volume" ) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/projected/projected_test.go b/vendor/k8s.io/kubernetes/pkg/volume/projected/projected_test.go index 6b8258652..4979cf97e 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/projected/projected_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/projected/projected_test.go @@ -1042,6 +1042,6 @@ func doTestCleanAndTeardown(plugin volume.VolumePlugin, podUID types.UID, testVo if _, err := os.Stat(volumePath); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", volumePath) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/quobyte/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/quobyte/OWNERS index 7e7858907..331e3c38d 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/quobyte/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/quobyte/OWNERS @@ -3,13 +3,7 @@ approvers: - saad-ali reviewers: - johscheuer -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/quobyte/quobyte_test.go b/vendor/k8s.io/kubernetes/pkg/volume/quobyte/quobyte_test.go index 1ae60e407..61c061ad0 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/quobyte/quobyte_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/quobyte/quobyte_test.go @@ -69,20 +69,11 @@ func TestGetAccessModes(t *testing.T) { if err != nil { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) || !contains(plug.GetAccessModes(), v1.ReadOnlyMany) || !contains(plug.GetAccessModes(), v1.ReadWriteMany) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteMany) { t.Errorf("Expected three AccessModeTypes: %s, %s, and %s", v1.ReadWriteOnce, v1.ReadOnlyMany, v1.ReadWriteMany) } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - func doTestPlugin(t *testing.T, spec *volume.Spec) { tmpDir, err := utiltesting.MkTmpdir("quobyte_test") if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/rbd/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/rbd/BUILD index 2ead168a5..aef8b366b 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/rbd/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/rbd/BUILD @@ -9,6 +9,7 @@ load( go_library( name = "go_default_library", srcs = [ + "attacher.go", "disk_manager.go", "doc.go", "rbd.go", @@ -16,6 +17,7 @@ go_library( ], importpath = "k8s.io/kubernetes/pkg/volume/rbd", deps = [ + "//pkg/util/file:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/node:go_default_library", "//pkg/util/strings:go_default_library", @@ -42,10 +44,10 @@ go_test( "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", "//pkg/volume/testing:go_default_library", - "//vendor/github.com/stretchr/testify/assert: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/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", "//vendor/k8s.io/client-go/util/testing:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/pkg/volume/rbd/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/rbd/OWNERS index d04766747..a700b703c 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/rbd/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/rbd/OWNERS @@ -2,13 +2,7 @@ approvers: - rootfs reviewers: - sjenning -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/rbd/attacher.go b/vendor/k8s.io/kubernetes/pkg/volume/rbd/attacher.go new file mode 100644 index 000000000..1454c231f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/rbd/attacher.go @@ -0,0 +1,225 @@ +/* +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 rbd + +import ( + "fmt" + "os" + "time" + + "github.com/golang/glog" + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/volume" + volutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/kubernetes/pkg/volume/util/volumehelper" +) + +// NewAttacher implements AttachableVolumePlugin.NewAttacher. +func (plugin *rbdPlugin) NewAttacher() (volume.Attacher, error) { + return plugin.newAttacherInternal(&RBDUtil{}) +} + +func (plugin *rbdPlugin) newAttacherInternal(manager diskManager) (volume.Attacher, error) { + return &rbdAttacher{ + plugin: plugin, + manager: manager, + mounter: volumehelper.NewSafeFormatAndMountFromHost(plugin.GetPluginName(), plugin.host), + }, nil +} + +// NewDetacher implements AttachableVolumePlugin.NewDetacher. +func (plugin *rbdPlugin) NewDetacher() (volume.Detacher, error) { + return plugin.newDetacherInternal(&RBDUtil{}) +} + +func (plugin *rbdPlugin) newDetacherInternal(manager diskManager) (volume.Detacher, error) { + return &rbdDetacher{ + plugin: plugin, + manager: manager, + mounter: volumehelper.NewSafeFormatAndMountFromHost(plugin.GetPluginName(), plugin.host), + }, nil +} + +// GetDeviceMountRefs implements AttachableVolumePlugin.GetDeviceMountRefs. +func (plugin *rbdPlugin) GetDeviceMountRefs(deviceMountPath string) ([]string, error) { + mounter := plugin.host.GetMounter(plugin.GetPluginName()) + return mount.GetMountRefs(mounter, deviceMountPath) +} + +// rbdAttacher implements volume.Attacher interface. +type rbdAttacher struct { + plugin *rbdPlugin + mounter *mount.SafeFormatAndMount + manager diskManager +} + +var _ volume.Attacher = &rbdAttacher{} + +// Attach implements Attacher.Attach. +// We do not lock image here, because it requires kube-controller-manager to +// access external `rbd` utility. And there is no need since AttachDetach +// controller will not try to attach RWO volumes which are already attached to +// other nodes. +func (attacher *rbdAttacher) Attach(spec *volume.Spec, nodeName types.NodeName) (string, error) { + return "", nil +} + +// VolumesAreAttached implements Attacher.VolumesAreAttached. +// There is no way to confirm whether the volume is attached or not from +// outside of the kubelet node. This method needs to return true always, like +// iSCSI, FC plugin. +func (attacher *rbdAttacher) VolumesAreAttached(specs []*volume.Spec, nodeName types.NodeName) (map[*volume.Spec]bool, error) { + volumesAttachedCheck := make(map[*volume.Spec]bool) + for _, spec := range specs { + volumesAttachedCheck[spec] = true + } + return volumesAttachedCheck, nil +} + +// WaitForAttach implements Attacher.WaitForAttach. It's called by kublet to +// attach volume onto the node. +// This method is idempotent, callers are responsible for retrying on failure. +func (attacher *rbdAttacher) WaitForAttach(spec *volume.Spec, devicePath string, pod *v1.Pod, timeout time.Duration) (string, error) { + glog.V(4).Infof("rbd: waiting for attach volume (name: %s) for pod (name: %s, uid: %s)", spec.Name(), pod.Name, pod.UID) + mounter, err := attacher.plugin.createMounterFromVolumeSpecAndPod(spec, pod) + if err != nil { + glog.Warningf("failed to create mounter: %v", spec) + return "", err + } + realDevicePath, err := attacher.manager.AttachDisk(*mounter) + if err != nil { + return "", err + } + glog.V(3).Infof("rbd: successfully wait for attach volume (spec: %s, pool: %s, image: %s) at %s", spec.Name(), mounter.Pool, mounter.Image, realDevicePath) + return realDevicePath, nil +} + +// GetDeviceMountPath implements Attacher.GetDeviceMountPath. +func (attacher *rbdAttacher) GetDeviceMountPath(spec *volume.Spec) (string, error) { + img, err := getVolumeSourceImage(spec) + if err != nil { + return "", err + } + pool, err := getVolumeSourcePool(spec) + if err != nil { + return "", err + } + return makePDNameInternal(attacher.plugin.host, pool, img), nil +} + +// MountDevice implements Attacher.MountDevice. It is called by the kubelet to +// mount device at the given mount path. +// This method is idempotent, callers are responsible for retrying on failure. +func (attacher *rbdAttacher) MountDevice(spec *volume.Spec, devicePath string, deviceMountPath string) error { + glog.V(4).Infof("rbd: mouting device %s to %s", devicePath, deviceMountPath) + notMnt, err := attacher.mounter.IsLikelyNotMountPoint(deviceMountPath) + if err != nil { + if os.IsNotExist(err) { + if err := os.MkdirAll(deviceMountPath, 0750); err != nil { + return err + } + notMnt = true + } else { + return err + } + } + if !notMnt { + return nil + } + fstype, err := getVolumeSourceFSType(spec) + if err != nil { + return err + } + ro, err := getVolumeSourceReadOnly(spec) + if err != nil { + return err + } + options := []string{} + if ro { + options = append(options, "ro") + } + mountOptions := volume.MountOptionFromSpec(spec, options...) + err = attacher.mounter.FormatAndMount(devicePath, deviceMountPath, fstype, mountOptions) + if err != nil { + os.Remove(deviceMountPath) + return fmt.Errorf("rbd: failed to mount device %s at %s (fstype: %s), error %v", devicePath, deviceMountPath, fstype, err) + } + glog.V(3).Infof("rbd: successfully mount device %s at %s (fstype: %s)", devicePath, deviceMountPath, fstype) + return nil +} + +// rbdDetacher implements volume.Detacher interface. +type rbdDetacher struct { + plugin *rbdPlugin + manager diskManager + mounter *mount.SafeFormatAndMount +} + +var _ volume.Detacher = &rbdDetacher{} + +// UnmountDevice implements Detacher.UnmountDevice. It unmounts the global +// mount of the RBD image. This is called once all bind mounts have been +// unmounted. +// Internally, it does four things: +// - Unmount device from deviceMountPath. +// - Detach device from the node. +// - Remove lock if found. (No need to check volume readonly or not, because +// device is not on the node anymore, it's safe to remove lock.) +// - Remove the deviceMountPath at last. +// This method is idempotent, callers are responsible for retrying on failure. +func (detacher *rbdDetacher) UnmountDevice(deviceMountPath string) error { + if pathExists, pathErr := volutil.PathExists(deviceMountPath); pathErr != nil { + return fmt.Errorf("Error checking if path exists: %v", pathErr) + } else if !pathExists { + glog.Warningf("Warning: Unmount skipped because path does not exist: %v", deviceMountPath) + return nil + } + devicePath, cnt, err := mount.GetDeviceNameFromMount(detacher.mounter, deviceMountPath) + if err != nil { + return err + } + if cnt > 1 { + return fmt.Errorf("rbd: more than 1 reference counts at %s", deviceMountPath) + } + if cnt == 1 { + // Unmount the device from the device mount point. + glog.V(4).Infof("rbd: unmouting device mountpoint %s", deviceMountPath) + if err = detacher.mounter.Unmount(deviceMountPath); err != nil { + return err + } + glog.V(3).Infof("rbd: successfully umount device mountpath %s", deviceMountPath) + } + glog.V(4).Infof("rbd: detaching device %s", devicePath) + err = detacher.manager.DetachDisk(detacher.plugin, deviceMountPath, devicePath) + if err != nil { + return err + } + glog.V(3).Infof("rbd: successfully detach device %s", devicePath) + err = os.Remove(deviceMountPath) + if err != nil { + return err + } + glog.V(3).Infof("rbd: successfully remove device mount point %s", deviceMountPath) + return nil +} + +// Detach implements Detacher.Detach. +func (detacher *rbdDetacher) Detach(volumeName string, nodeName types.NodeName) error { + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/volume/rbd/disk_manager.go b/vendor/k8s.io/kubernetes/pkg/volume/rbd/disk_manager.go index d219d62ab..3ba83fe36 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/rbd/disk_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/rbd/disk_manager.go @@ -23,6 +23,7 @@ limitations under the License. package rbd import ( + "fmt" "os" "github.com/golang/glog" @@ -33,23 +34,33 @@ import ( // Abstract interface to disk operations. type diskManager interface { + // MakeGlobalPDName creates global persistent disk path. MakeGlobalPDName(disk rbd) string // Attaches the disk to the kubelet's host machine. - AttachDisk(disk rbdMounter) error + // If it successfully attaches, the path to the device + // is returned. Otherwise, an error will be returned. + AttachDisk(disk rbdMounter) (string, error) // Detaches the disk from the kubelet's host machine. - DetachDisk(disk rbdUnmounter, mntPath string) error - // Creates a rbd image - CreateImage(provisioner *rbdVolumeProvisioner) (r *v1.RBDVolumeSource, volumeSizeGB int, err error) - // Deletes a rbd image + DetachDisk(plugin *rbdPlugin, deviceMountPath string, device string) error + // Creates a rbd image. + CreateImage(provisioner *rbdVolumeProvisioner) (r *v1.RBDPersistentVolumeSource, volumeSizeGB int, err error) + // Deletes a rbd image. DeleteImage(deleter *rbdVolumeDeleter) error } // utility to mount a disk based filesystem func diskSetUp(manager diskManager, b rbdMounter, volPath string, mounter mount.Interface, fsGroup *int64) error { globalPDPath := manager.MakeGlobalPDName(*b.rbd) - // TODO: handle failed mounts here. - notMnt, err := mounter.IsLikelyNotMountPoint(volPath) + notMnt, err := mounter.IsLikelyNotMountPoint(globalPDPath) + if err != nil && !os.IsNotExist(err) { + glog.Errorf("cannot validate mountpoint: %s", globalPDPath) + return err + } + if notMnt { + return fmt.Errorf("no device is mounted at %s", globalPDPath) + } + notMnt, err = mounter.IsLikelyNotMountPoint(volPath) if err != nil && !os.IsNotExist(err) { glog.Errorf("cannot validate mountpoint: %s", volPath) return err @@ -57,10 +68,6 @@ func diskSetUp(manager diskManager, b rbdMounter, volPath string, mounter mount. if !notMnt { return nil } - if err := manager.AttachDisk(b); err != nil { - glog.Errorf("failed to attach disk") - return err - } if err := os.MkdirAll(volPath, 0750); err != nil { glog.Errorf("failed to mkdir:%s", volPath) @@ -89,43 +96,31 @@ func diskSetUp(manager diskManager, b rbdMounter, volPath string, mounter mount. // utility to tear down a disk based filesystem func diskTearDown(manager diskManager, c rbdUnmounter, volPath string, mounter mount.Interface) error { notMnt, err := mounter.IsLikelyNotMountPoint(volPath) - if err != nil { - glog.Errorf("cannot validate mountpoint %s", volPath) + if err != nil && !os.IsNotExist(err) { + glog.Errorf("cannot validate mountpoint: %s", volPath) return err } if notMnt { + glog.V(3).Infof("volume path %s is not a mountpoint, deleting", volPath) return os.Remove(volPath) } - refs, err := mount.GetMountRefs(mounter, volPath) - if err != nil { - glog.Errorf("failed to get reference count %s", volPath) - return err - } + // Unmount the bind-mount inside this pod. if err := mounter.Unmount(volPath); err != nil { glog.Errorf("failed to umount %s", volPath) return err } - // If len(refs) is 1, then all bind mounts have been removed, and the - // remaining reference is the global mount. It is safe to detach. - if len(refs) == 1 { - mntPath := refs[0] - if err := manager.DetachDisk(c, mntPath); err != nil { - glog.Errorf("failed to detach disk from %s", mntPath) - return err - } - } notMnt, mntErr := mounter.IsLikelyNotMountPoint(volPath) - if mntErr != nil { + if err != nil && !os.IsNotExist(err) { glog.Errorf("IsLikelyNotMountPoint check failed: %v", mntErr) return err } if notMnt { if err := os.Remove(volPath); err != nil { + glog.V(2).Info("Error removing mountpoint ", volPath, ": ", err) return err } } return nil - } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd.go b/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd.go index cc345b22d..596a19dca 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd.go @@ -41,9 +41,10 @@ var ( // This is the primary entrypoint for volume plugins. func ProbeVolumePlugins() []volume.VolumePlugin { - return []volume.VolumePlugin{&rbdPlugin{nil}} + return []volume.VolumePlugin{&rbdPlugin{}} } +// rbdPlugin implements Volume.VolumePlugin. type rbdPlugin struct { host volume.VolumeHost } @@ -52,6 +53,7 @@ var _ volume.VolumePlugin = &rbdPlugin{} var _ volume.PersistentVolumePlugin = &rbdPlugin{} var _ volume.DeletableVolumePlugin = &rbdPlugin{} var _ volume.ProvisionableVolumePlugin = &rbdPlugin{} +var _ volume.AttachableVolumePlugin = &rbdPlugin{} const ( rbdPluginName = "kubernetes.io/rbd" @@ -78,15 +80,19 @@ func (plugin *rbdPlugin) GetPluginName() string { } func (plugin *rbdPlugin) GetVolumeName(spec *volume.Spec) (string, error) { - volumeSource, _, err := getVolumeSource(spec) + mon, err := getVolumeSourceMonitors(spec) + if err != nil { + return "", err + } + img, err := getVolumeSourceImage(spec) if err != nil { return "", err } return fmt.Sprintf( "%v:%v", - volumeSource.CephMonitors, - volumeSource.RBDImage), nil + mon, + img), nil } func (plugin *rbdPlugin) CanSupport(spec *volume.Spec) bool { @@ -116,77 +122,144 @@ func (plugin *rbdPlugin) GetAccessModes() []v1.PersistentVolumeAccessMode { } } -func (plugin *rbdPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, _ volume.VolumeOptions) (volume.Mounter, error) { - var secret string +func (plugin *rbdPlugin) createMounterFromVolumeSpecAndPod(spec *volume.Spec, pod *v1.Pod) (*rbdMounter, error) { var err error - source, _ := plugin.getRBDVolumeSource(spec) + mon, err := getVolumeSourceMonitors(spec) + if err != nil { + return nil, err + } + img, err := getVolumeSourceImage(spec) + if err != nil { + return nil, err + } + fstype, err := getVolumeSourceFSType(spec) + if err != nil { + return nil, err + } + pool, err := getVolumeSourcePool(spec) + if err != nil { + return nil, err + } + id, err := getVolumeSourceUser(spec) + if err != nil { + return nil, err + } + keyring, err := getVolumeSourceKeyRing(spec) + if err != nil { + return nil, err + } + ro, err := getVolumeSourceReadOnly(spec) + if err != nil { + return nil, err + } - if source.SecretRef != nil { - if secret, err = parsePodSecret(pod, source.SecretRef.Name, plugin.host.GetKubeClient()); err != nil { - glog.Errorf("Couldn't get secret from %v/%v", pod.Namespace, source.SecretRef) + secretName, secretNs, err := getSecretNameAndNamespace(spec, pod.Namespace) + if err != nil { + return nil, err + } + secret := "" + if len(secretName) > 0 && len(secretNs) > 0 { + // if secret is provideded, retrieve it + kubeClient := plugin.host.GetKubeClient() + if kubeClient == nil { + return nil, fmt.Errorf("Cannot get kube client") + } + secrets, err := kubeClient.Core().Secrets(secretNs).Get(secretName, metav1.GetOptions{}) + if err != nil { + err = fmt.Errorf("Couldn't get secret %v/%v err: %v", secretNs, secretName, err) return nil, err } + for _, data := range secrets.Data { + secret = string(data) + } } - // Inject real implementations here, test through the internal function. - return plugin.newMounterInternal(spec, pod.UID, &RBDUtil{}, plugin.host.GetMounter(plugin.GetPluginName()), plugin.host.GetExec(plugin.GetPluginName()), secret) + return &rbdMounter{ + rbd: newRBD("", spec.Name(), img, pool, ro, plugin, &RBDUtil{}), + Mon: mon, + Id: id, + Keyring: keyring, + Secret: secret, + fsType: fstype, + }, nil } -func (plugin *rbdPlugin) getRBDVolumeSource(spec *volume.Spec) (*v1.RBDVolumeSource, bool) { - // rbd volumes used directly in a pod have a ReadOnly flag set by the pod author. - // rbd volumes used as a PersistentVolume gets the ReadOnly flag indirectly through the persistent-claim volume used to mount the PV - if spec.Volume != nil && spec.Volume.RBD != nil { - return spec.Volume.RBD, spec.Volume.RBD.ReadOnly - } else { - return spec.PersistentVolume.Spec.RBD, spec.ReadOnly +func (plugin *rbdPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, _ volume.VolumeOptions) (volume.Mounter, error) { + secretName, secretNs, err := getSecretNameAndNamespace(spec, pod.Namespace) + if err != nil { + return nil, err } + secret := "" + if len(secretName) > 0 && len(secretNs) > 0 { + // if secret is provideded, retrieve it + kubeClient := plugin.host.GetKubeClient() + if kubeClient == nil { + return nil, fmt.Errorf("Cannot get kube client") + } + secrets, err := kubeClient.CoreV1().Secrets(secretNs).Get(secretName, metav1.GetOptions{}) + if err != nil { + err = fmt.Errorf("Couldn't get secret %v/%v err: %v", secretNs, secretName, err) + return nil, err + } + for _, data := range secrets.Data { + secret = string(data) + } + } + + // Inject real implementations here, test through the internal function. + return plugin.newMounterInternal(spec, pod.UID, &RBDUtil{}, secret) } -func (plugin *rbdPlugin) newMounterInternal(spec *volume.Spec, podUID types.UID, manager diskManager, mounter mount.Interface, exec mount.Exec, secret string) (volume.Mounter, error) { - source, readOnly := plugin.getRBDVolumeSource(spec) - pool := source.RBDPool - id := source.RadosUser - keyring := source.Keyring +func (plugin *rbdPlugin) newMounterInternal(spec *volume.Spec, podUID types.UID, manager diskManager, secret string) (volume.Mounter, error) { + mon, err := getVolumeSourceMonitors(spec) + if err != nil { + return nil, err + } + img, err := getVolumeSourceImage(spec) + if err != nil { + return nil, err + } + fstype, err := getVolumeSourceFSType(spec) + if err != nil { + return nil, err + } + pool, err := getVolumeSourcePool(spec) + if err != nil { + return nil, err + } + id, err := getVolumeSourceUser(spec) + if err != nil { + return nil, err + } + keyring, err := getVolumeSourceKeyRing(spec) + if err != nil { + return nil, err + } + ro, err := getVolumeSourceReadOnly(spec) + if err != nil { + return nil, err + } return &rbdMounter{ - rbd: &rbd{ - podUID: podUID, - volName: spec.Name(), - Image: source.RBDImage, - Pool: pool, - ReadOnly: readOnly, - manager: manager, - mounter: &mount.SafeFormatAndMount{Interface: mounter, Exec: exec}, - exec: exec, - plugin: plugin, - MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, spec.Name(), plugin.host)), - }, - Mon: source.CephMonitors, + rbd: newRBD(podUID, spec.Name(), img, pool, ro, plugin, manager), + Mon: mon, Id: id, Keyring: keyring, Secret: secret, - fsType: source.FSType, + fsType: fstype, mountOptions: volume.MountOptionFromSpec(spec), }, nil } func (plugin *rbdPlugin) NewUnmounter(volName string, podUID types.UID) (volume.Unmounter, error) { // Inject real implementations here, test through the internal function. - return plugin.newUnmounterInternal(volName, podUID, &RBDUtil{}, plugin.host.GetMounter(plugin.GetPluginName()), plugin.host.GetExec(plugin.GetPluginName())) + return plugin.newUnmounterInternal(volName, podUID, &RBDUtil{}) } -func (plugin *rbdPlugin) newUnmounterInternal(volName string, podUID types.UID, manager diskManager, mounter mount.Interface, exec mount.Exec) (volume.Unmounter, error) { +func (plugin *rbdPlugin) newUnmounterInternal(volName string, podUID types.UID, manager diskManager) (volume.Unmounter, error) { return &rbdUnmounter{ rbdMounter: &rbdMounter{ - rbd: &rbd{ - podUID: podUID, - volName: volName, - manager: manager, - mounter: &mount.SafeFormatAndMount{Interface: mounter, Exec: exec}, - exec: exec, - plugin: plugin, - MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host)), - }, + rbd: newRBD(podUID, volName, "", "", false, plugin, manager), Mon: make([]string, 0), }, }, nil @@ -240,15 +313,7 @@ func (plugin *rbdPlugin) NewDeleter(spec *volume.Spec) (volume.Deleter, error) { func (plugin *rbdPlugin) newDeleterInternal(spec *volume.Spec, admin, secret string, manager diskManager) (volume.Deleter, error) { return &rbdVolumeDeleter{ rbdMounter: &rbdMounter{ - rbd: &rbd{ - volName: spec.Name(), - Image: spec.PersistentVolume.Spec.RBD.RBDImage, - Pool: spec.PersistentVolume.Spec.RBD.RBDPool, - manager: manager, - plugin: plugin, - mounter: &mount.SafeFormatAndMount{Interface: plugin.host.GetMounter(plugin.GetPluginName())}, - exec: plugin.host.GetExec(plugin.GetPluginName()), - }, + rbd: newRBD("", spec.Name(), spec.PersistentVolume.Spec.RBD.RBDImage, spec.PersistentVolume.Spec.RBD.RBDPool, false, plugin, manager), Mon: spec.PersistentVolume.Spec.RBD.CephMonitors, adminId: admin, adminSecret: secret, @@ -262,22 +327,20 @@ func (plugin *rbdPlugin) NewProvisioner(options volume.VolumeOptions) (volume.Pr func (plugin *rbdPlugin) newProvisionerInternal(options volume.VolumeOptions, manager diskManager) (volume.Provisioner, error) { return &rbdVolumeProvisioner{ rbdMounter: &rbdMounter{ - rbd: &rbd{ - manager: manager, - plugin: plugin, - mounter: &mount.SafeFormatAndMount{Interface: plugin.host.GetMounter(plugin.GetPluginName())}, - exec: plugin.host.GetExec(plugin.GetPluginName()), - }, + rbd: newRBD("", "", "", "", false, plugin, manager), }, options: options, }, nil } +// rbdVolumeProvisioner implements volume.Provisioner interface. type rbdVolumeProvisioner struct { *rbdMounter options volume.VolumeOptions } +var _ volume.Provisioner = &rbdVolumeProvisioner{} + func (r *rbdVolumeProvisioner) Provision() (*v1.PersistentVolume, error) { if !volume.AccessModesContainedInAll(r.plugin.GetAccessModes(), r.options.PVC.Spec.AccessModes) { return nil, fmt.Errorf("invalid AccessModes %v: only AccessModes %v are supported", r.options.PVC.Spec.AccessModes, r.plugin.GetAccessModes()) @@ -289,8 +352,9 @@ func (r *rbdVolumeProvisioner) Provision() (*v1.PersistentVolume, error) { var err error adminSecretName := "" adminSecretNamespace := rbdDefaultAdminSecretNamespace - secretName := "" secret := "" + secretName := "" + secretNamespace := "" imageFormat := rbdImageFormat2 fstype := "" @@ -313,6 +377,8 @@ func (r *rbdVolumeProvisioner) Provision() (*v1.PersistentVolume, error) { r.Pool = v case "usersecretname": secretName = v + case "usersecretnamespace": + secretNamespace = v case "imageformat": imageFormat = v case "imagefeatures": @@ -370,8 +436,9 @@ func (r *rbdVolumeProvisioner) Provision() (*v1.PersistentVolume, error) { glog.Infof("successfully created rbd image %q", image) pv := new(v1.PersistentVolume) metav1.SetMetaDataAnnotation(&pv.ObjectMeta, volumehelper.VolumeDynamicallyCreatedByKey, "rbd-dynamic-provisioner") - rbd.SecretRef = new(v1.LocalObjectReference) + rbd.SecretRef = new(v1.SecretReference) rbd.SecretRef.Name = secretName + rbd.SecretRef.Namespace = secretNamespace rbd.RadosUser = r.Id rbd.FSType = fstype pv.Spec.PersistentVolumeSource.RBD = rbd @@ -387,10 +454,13 @@ func (r *rbdVolumeProvisioner) Provision() (*v1.PersistentVolume, error) { return pv, nil } +// rbdVolumeDeleter implements volume.Deleter interface. type rbdVolumeDeleter struct { *rbdMounter } +var _ volume.Deleter = &rbdVolumeDeleter{} + func (r *rbdVolumeDeleter) GetPath() string { return getPath(r.podUID, r.volName, r.plugin.host) } @@ -399,6 +469,8 @@ func (r *rbdVolumeDeleter) Delete() error { return r.manager.DeleteImage(r) } +// rbd implmenets volume.Volume interface. +// It's embedded in Mounter/Unmounter/Deleter. type rbd struct { volName string podUID types.UID @@ -413,11 +485,35 @@ type rbd struct { volume.MetricsProvider `json:"-"` } +var _ volume.Volume = &rbd{} + func (rbd *rbd) GetPath() string { // safe to use PodVolumeDir now: volume teardown occurs before pod is cleaned up return getPath(rbd.podUID, rbd.volName, rbd.plugin.host) } +// newRBD creates a new rbd. +func newRBD(podUID types.UID, volName string, image string, pool string, readOnly bool, plugin *rbdPlugin, manager diskManager) *rbd { + return &rbd{ + podUID: podUID, + volName: volName, + Image: image, + Pool: pool, + ReadOnly: readOnly, + plugin: plugin, + mounter: volumehelper.NewSafeFormatAndMountFromHost(plugin.GetPluginName(), plugin.host), + exec: plugin.host.GetExec(plugin.GetPluginName()), + manager: manager, + MetricsProvider: volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host)), + } +} + +// rbdMounter implements volume.Mounter interface. +// It contains information which need to be persisted in whole life cycle of PV +// on the node. It is persisted at the very beginning in the pod mount point +// directory. +// Note: Capitalized field names of this struct determines the information +// persisted on the disk, DO NOT change them. (TODO: refactoring to use a dedicated struct?) type rbdMounter struct { *rbd // capitalized so they can be exported in persistRBD() @@ -456,14 +552,16 @@ func (b *rbdMounter) SetUp(fsGroup *int64) error { func (b *rbdMounter) SetUpAt(dir string, fsGroup *int64) error { // diskSetUp checks mountpoints and prevent repeated calls - glog.V(4).Infof("rbd: attempting to SetUp and mount %s", dir) + glog.V(4).Infof("rbd: attempting to setup at %s", dir) err := diskSetUp(b.manager, *b, dir, b.mounter, fsGroup) if err != nil { - glog.Errorf("rbd: failed to setup mount %s %v", dir, err) + glog.Errorf("rbd: failed to setup at %s %v", dir, err) } + glog.V(3).Infof("rbd: successfully setup at %s", dir) return err } +// rbdUnmounter implements volume.Unmounter interface. type rbdUnmounter struct { *rbdMounter } @@ -477,25 +575,98 @@ func (c *rbdUnmounter) TearDown() error { } func (c *rbdUnmounter) TearDownAt(dir string) error { + glog.V(4).Infof("rbd: attempting to teardown at %s", dir) if pathExists, pathErr := volutil.PathExists(dir); pathErr != nil { return fmt.Errorf("Error checking if path exists: %v", pathErr) } else if !pathExists { glog.Warningf("Warning: Unmount skipped because path does not exist: %v", dir) return nil } - return diskTearDown(c.manager, *c, dir, c.mounter) + err := diskTearDown(c.manager, *c, dir, c.mounter) + if err != nil { + return err + } + glog.V(3).Infof("rbd: successfully teardown at %s", dir) + return nil } -func getVolumeSource( - spec *volume.Spec) (*v1.RBDVolumeSource, bool, error) { +func getVolumeSourceMonitors(spec *volume.Spec) ([]string, error) { if spec.Volume != nil && spec.Volume.RBD != nil { - return spec.Volume.RBD, spec.Volume.RBD.ReadOnly, nil + return spec.Volume.RBD.CephMonitors, nil } else if spec.PersistentVolume != nil && spec.PersistentVolume.Spec.RBD != nil { - return spec.PersistentVolume.Spec.RBD, spec.ReadOnly, nil + return spec.PersistentVolume.Spec.RBD.CephMonitors, nil } - return nil, false, fmt.Errorf("Spec does not reference a RBD volume type") + return nil, fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceImage(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.RBDImage, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.RBDImage, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceFSType(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.FSType, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.FSType, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourcePool(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.RBDPool, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.RBDPool, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceUser(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.RadosUser, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.RadosUser, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceKeyRing(spec *volume.Spec) (string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.Keyring, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + return spec.PersistentVolume.Spec.RBD.Keyring, nil + } + + return "", fmt.Errorf("Spec does not reference a RBD volume type") +} + +func getVolumeSourceReadOnly(spec *volume.Spec) (bool, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + return spec.Volume.RBD.ReadOnly, nil + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + // rbd volumes used as a PersistentVolume gets the ReadOnly flag indirectly through + // the persistent-claim volume used to mount the PV + return spec.ReadOnly, nil + } + + return false, fmt.Errorf("Spec does not reference a RBD volume type") } func parsePodSecret(pod *v1.Pod, secretName string, kubeClient clientset.Interface) (string, error) { @@ -531,3 +702,26 @@ func parseSecretMap(secretMap map[string]string) (string, error) { // If not found, the last secret in the map wins as done before return secret, nil } + +func getSecretNameAndNamespace(spec *volume.Spec, defaultNamespace string) (string, string, error) { + if spec.Volume != nil && spec.Volume.RBD != nil { + localSecretRef := spec.Volume.RBD.SecretRef + if localSecretRef != nil { + return localSecretRef.Name, defaultNamespace, nil + } + return "", "", nil + + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.RBD != nil { + secretRef := spec.PersistentVolume.Spec.RBD.SecretRef + secretNs := defaultNamespace + if secretRef != nil { + if len(secretRef.Namespace) != 0 { + secretNs = secretRef.Namespace + } + return secretRef.Name, secretNs, nil + } + return "", "", nil + } + return "", "", fmt.Errorf("Spec does not reference an RBD volume type") +} diff --git a/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd_test.go b/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd_test.go index 02f5d324c..a35a1a4e7 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd_test.go @@ -18,16 +18,18 @@ package rbd import ( "fmt" - "io/ioutil" "os" "path/filepath" "reflect" + "strings" + "sync" "testing" + "time" - "github.com/stretchr/testify/assert" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/client-go/kubernetes/fake" utiltesting "k8s.io/client-go/util/testing" "k8s.io/kubernetes/pkg/util/mount" @@ -58,41 +60,47 @@ func TestCanSupport(t *testing.T) { } type fakeDiskManager struct { - tmpDir string + // Make sure we can run tests in parallel. + mutex sync.RWMutex + // Key format: "/" + rbdImageLocks map[string]bool + rbdMapIndex int + rbdDevices map[string]bool } func NewFakeDiskManager() *fakeDiskManager { return &fakeDiskManager{ - tmpDir: utiltesting.MkTmpdirOrDie("rbd_test"), + rbdImageLocks: make(map[string]bool), + rbdMapIndex: 0, + rbdDevices: make(map[string]bool), } } -func (fake *fakeDiskManager) Cleanup() { - os.RemoveAll(fake.tmpDir) +func (fake *fakeDiskManager) MakeGlobalPDName(rbd rbd) string { + return makePDNameInternal(rbd.plugin.host, rbd.Pool, rbd.Image) } -func (fake *fakeDiskManager) MakeGlobalPDName(disk rbd) string { - return fake.tmpDir -} -func (fake *fakeDiskManager) AttachDisk(b rbdMounter) error { - globalPath := b.manager.MakeGlobalPDName(*b.rbd) - err := os.MkdirAll(globalPath, 0750) - if err != nil { - return err - } - return nil +func (fake *fakeDiskManager) AttachDisk(b rbdMounter) (string, error) { + fake.mutex.Lock() + defer fake.mutex.Unlock() + fake.rbdMapIndex += 1 + devicePath := fmt.Sprintf("/dev/rbd%d", fake.rbdMapIndex) + fake.rbdDevices[devicePath] = true + return devicePath, nil } -func (fake *fakeDiskManager) DetachDisk(c rbdUnmounter, mntPath string) error { - globalPath := c.manager.MakeGlobalPDName(*c.rbd) - err := os.RemoveAll(globalPath) - if err != nil { - return err +func (fake *fakeDiskManager) DetachDisk(r *rbdPlugin, deviceMountPath string, device string) error { + fake.mutex.Lock() + defer fake.mutex.Unlock() + ok := fake.rbdDevices[device] + if !ok { + return fmt.Errorf("rbd: failed to detach device %s, it does not exist", device) } + delete(fake.rbdDevices, device) return nil } -func (fake *fakeDiskManager) CreateImage(provisioner *rbdVolumeProvisioner) (r *v1.RBDVolumeSource, volumeSizeGB int, err error) { +func (fake *fakeDiskManager) CreateImage(provisioner *rbdVolumeProvisioner) (r *v1.RBDPersistentVolumeSource, volumeSizeGB int, err error) { return nil, 0, fmt.Errorf("not implemented") } @@ -100,35 +108,111 @@ func (fake *fakeDiskManager) DeleteImage(deleter *rbdVolumeDeleter) error { return fmt.Errorf("not implemented") } -func doTestPlugin(t *testing.T, spec *volume.Spec) { - tmpDir, err := utiltesting.MkTmpdir("rbd_test") - if err != nil { - t.Fatalf("error creating temp dir: %v", err) +func (fake *fakeDiskManager) Fencing(r rbdMounter, nodeName string) error { + fake.mutex.Lock() + defer fake.mutex.Unlock() + key := fmt.Sprintf("%s/%s", r.Pool, r.Image) + isLocked, ok := fake.rbdImageLocks[key] + if ok && isLocked { + // not expected in testing + return fmt.Errorf("%s is already locked", key) } - defer os.RemoveAll(tmpDir) + fake.rbdImageLocks[key] = true + return nil +} - plugMgr := volume.VolumePluginMgr{} - plugMgr.InitPlugins(ProbeVolumePlugins(), nil /* prober */, volumetest.NewFakeVolumeHost(tmpDir, nil, nil)) +func (fake *fakeDiskManager) Defencing(r rbdMounter, nodeName string) error { + fake.mutex.Lock() + defer fake.mutex.Unlock() + key := fmt.Sprintf("%s/%s", r.Pool, r.Image) + isLocked, ok := fake.rbdImageLocks[key] + if !ok || !isLocked { + // not expected in testing + return fmt.Errorf("%s is not locked", key) + } + delete(fake.rbdImageLocks, key) + return nil +} + +func (fake *fakeDiskManager) IsLocked(r rbdMounter, nodeName string) (bool, error) { + fake.mutex.RLock() + defer fake.mutex.RUnlock() + key := fmt.Sprintf("%s/%s", r.Pool, r.Image) + isLocked, ok := fake.rbdImageLocks[key] + return ok && isLocked, nil +} +// checkMounterLog checks fakeMounter must have expected logs, and the last action msut equal to expectedAction. +func checkMounterLog(t *testing.T, fakeMounter *mount.FakeMounter, expected int, expectedAction mount.FakeAction) { + if len(fakeMounter.Log) != expected { + t.Fatalf("fakeMounter should have %d logs, actual: %d", expected, len(fakeMounter.Log)) + } + lastIndex := len(fakeMounter.Log) - 1 + lastAction := fakeMounter.Log[lastIndex] + if !reflect.DeepEqual(expectedAction, lastAction) { + t.Fatalf("fakeMounter.Log[%d] should be %#v, not: %#v", lastIndex, expectedAction, lastAction) + } +} + +func doTestPlugin(t *testing.T, c *testcase) { + fakeVolumeHost := volumetest.NewFakeVolumeHost(c.root, nil, nil) + plugMgr := volume.VolumePluginMgr{} + plugMgr.InitPlugins(ProbeVolumePlugins(), nil /* prober */, fakeVolumeHost) plug, err := plugMgr.FindPluginByName("kubernetes.io/rbd") if err != nil { t.Errorf("Can't find the plugin by name") } + fakeMounter := fakeVolumeHost.GetMounter(plug.GetPluginName()).(*mount.FakeMounter) + fakeNodeName := types.NodeName("localhost") fdm := NewFakeDiskManager() - defer fdm.Cleanup() - exec := mount.NewFakeExec(nil) - mounter, err := plug.(*rbdPlugin).newMounterInternal(spec, types.UID("poduid"), fdm, &mount.FakeMounter{}, exec, "secrets") + + // attacher + attacher, err := plug.(*rbdPlugin).newAttacherInternal(fdm) + if err != nil { + t.Errorf("Failed to make a new Attacher: %v", err) + } + deviceAttachPath, err := attacher.Attach(c.spec, fakeNodeName) + if err != nil { + t.Fatal(err) + } + devicePath, err := attacher.WaitForAttach(c.spec, deviceAttachPath, c.pod, time.Second*10) + if err != nil { + t.Fatal(err) + } + if devicePath != c.expectedDevicePath { + t.Errorf("Unexpected path, expected %q, not: %q", c.expectedDevicePath, devicePath) + } + deviceMountPath, err := attacher.GetDeviceMountPath(c.spec) + if err != nil { + t.Fatal(err) + } + if deviceMountPath != c.expectedDeviceMountPath { + t.Errorf("Unexpected mount path, expected %q, not: %q", c.expectedDeviceMountPath, deviceMountPath) + } + err = attacher.MountDevice(c.spec, devicePath, deviceMountPath) + if err != nil { + t.Fatal(err) + } + if _, err := os.Stat(deviceMountPath); err != nil { + if os.IsNotExist(err) { + t.Errorf("Attacher.MountDevice() failed, device mount path not created: %s", deviceMountPath) + } else { + t.Errorf("Attacher.MountDevice() failed: %v", err) + } + } + checkMounterLog(t, fakeMounter, 1, mount.FakeAction{Action: "mount", Target: c.expectedDeviceMountPath, Source: devicePath, FSType: "ext4"}) + + // mounter + mounter, err := plug.(*rbdPlugin).newMounterInternal(c.spec, c.pod.UID, fdm, "secrets") if err != nil { t.Errorf("Failed to make a new Mounter: %v", err) } if mounter == nil { t.Error("Got a nil Mounter") } - path := mounter.GetPath() - expectedPath := fmt.Sprintf("%s/pods/poduid/volumes/kubernetes.io~rbd/vol1", tmpDir) - if path != expectedPath { - t.Errorf("Unexpected path, expected %q, got: %q", expectedPath, path) + if path != c.expectedPodMountPath { + t.Errorf("Unexpected path, expected %q, got: %q", c.expectedPodMountPath, path) } if err := mounter.SetUp(nil); err != nil { @@ -141,8 +225,10 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { t.Errorf("SetUp() failed: %v", err) } } + checkMounterLog(t, fakeMounter, 2, mount.FakeAction{Action: "mount", Target: c.expectedPodMountPath, Source: devicePath, FSType: ""}) - unmounter, err := plug.(*rbdPlugin).newUnmounterInternal("vol1", types.UID("poduid"), fdm, &mount.FakeMounter{}, exec) + // unmounter + unmounter, err := plug.(*rbdPlugin).newUnmounterInternal(c.spec.Name(), c.pod.UID, fdm) if err != nil { t.Errorf("Failed to make a new Unmounter: %v", err) } @@ -156,40 +242,104 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } -} + checkMounterLog(t, fakeMounter, 3, mount.FakeAction{Action: "unmount", Target: c.expectedPodMountPath, Source: "", FSType: ""}) -func TestPluginVolume(t *testing.T) { - vol := &v1.Volume{ - Name: "vol1", - VolumeSource: v1.VolumeSource{ - RBD: &v1.RBDVolumeSource{ - CephMonitors: []string{"a", "b"}, - RBDImage: "bar", - FSType: "ext4", - }, - }, + // detacher + detacher, err := plug.(*rbdPlugin).newDetacherInternal(fdm) + if err != nil { + t.Errorf("Failed to make a new Attacher: %v", err) + } + err = detacher.UnmountDevice(deviceMountPath) + if err != nil { + t.Fatalf("Detacher.UnmountDevice failed to unmount %s", deviceMountPath) + } + checkMounterLog(t, fakeMounter, 4, mount.FakeAction{Action: "unmount", Target: c.expectedDeviceMountPath, Source: "", FSType: ""}) + err = detacher.Detach(deviceMountPath, fakeNodeName) + if err != nil { + t.Fatalf("Detacher.Detach failed to detach %s from %s", deviceMountPath, fakeNodeName) } - doTestPlugin(t, volume.NewSpecFromVolume(vol)) } -func TestPluginPersistentVolume(t *testing.T) { - vol := &v1.PersistentVolume{ - ObjectMeta: metav1.ObjectMeta{ + +type testcase struct { + spec *volume.Spec + root string + pod *v1.Pod + expectedDevicePath string + expectedDeviceMountPath string + expectedPodMountPath string +} + +func TestPlugin(t *testing.T) { + tmpDir, err := utiltesting.MkTmpdir("rbd_test") + if err != nil { + t.Fatalf("error creating temp dir: %v", err) + } + defer os.RemoveAll(tmpDir) + tmpDir, err = filepath.EvalSymlinks(tmpDir) + if err != nil { + t.Fatal(err) + } + + podUID := uuid.NewUUID() + var cases []*testcase + cases = append(cases, &testcase{ + spec: volume.NewSpecFromVolume(&v1.Volume{ Name: "vol1", - }, - Spec: v1.PersistentVolumeSpec{ - PersistentVolumeSource: v1.PersistentVolumeSource{ + VolumeSource: v1.VolumeSource{ RBD: &v1.RBDVolumeSource{ CephMonitors: []string{"a", "b"}, - RBDImage: "bar", + RBDPool: "pool1", + RBDImage: "image1", FSType: "ext4", }, }, + }), + root: tmpDir, + pod: &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "testpod", + Namespace: "testns", + UID: podUID, + }, }, - } + expectedDevicePath: "/dev/rbd1", + expectedDeviceMountPath: fmt.Sprintf("%s/plugins/kubernetes.io/rbd/rbd/pool1-image-image1", tmpDir), + expectedPodMountPath: fmt.Sprintf("%s/pods/%s/volumes/kubernetes.io~rbd/vol1", tmpDir, podUID), + }) + cases = append(cases, &testcase{ + spec: volume.NewSpecFromPersistentVolume(&v1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "vol2", + }, + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + RBD: &v1.RBDPersistentVolumeSource{ + CephMonitors: []string{"a", "b"}, + RBDPool: "pool2", + RBDImage: "image2", + FSType: "ext4", + }, + }, + }, + }, false), + root: tmpDir, + pod: &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "testpod", + Namespace: "testns", + UID: podUID, + }, + }, + expectedDevicePath: "/dev/rbd1", + expectedDeviceMountPath: fmt.Sprintf("%s/plugins/kubernetes.io/rbd/rbd/pool2-image-image2", tmpDir), + expectedPodMountPath: fmt.Sprintf("%s/pods/%s/volumes/kubernetes.io~rbd/vol2", tmpDir, podUID), + }) - doTestPlugin(t, volume.NewSpecFromPersistentVolume(vol, false)) + for i := 0; i < len(cases); i++ { + doTestPlugin(t, cases[i]) + } } func TestPersistentClaimReadOnlyFlag(t *testing.T) { @@ -205,7 +355,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { }, Spec: v1.PersistentVolumeSpec{ PersistentVolumeSource: v1.PersistentVolumeSource{ - RBD: &v1.RBDVolumeSource{ + RBD: &v1.RBDPersistentVolumeSource{ CephMonitors: []string{"a", "b"}, RBDImage: "bar", FSType: "ext4", @@ -249,83 +399,34 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { } } -func TestPersistAndLoadRBD(t *testing.T) { - tmpDir, err := utiltesting.MkTmpdir("rbd_test") - if err != nil { - t.Fatalf("error creating temp dir: %v", err) - } - defer os.RemoveAll(tmpDir) - - testcases := []struct { - rbdMounter rbdMounter - expectedJSONStr string - expectedLoadedRBDMounter rbdMounter - }{ - { - rbdMounter{}, - `{"Mon":null,"Id":"","Keyring":"","Secret":""}`, - rbdMounter{}, - }, - { - rbdMounter{ - rbd: &rbd{ - podUID: "poduid", - Pool: "kube", - Image: "some-test-image", - ReadOnly: false, - MetricsProvider: volume.NewMetricsStatFS("/tmp"), +func TestGetSecretNameAndNamespace(t *testing.T) { + secretName := "test-secret-name" + secretNamespace := "test-secret-namespace" + + volSpec := &volume.Spec{ + PersistentVolume: &v1.PersistentVolume{ + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + RBD: &v1.RBDPersistentVolumeSource{ + CephMonitors: []string{"a", "b"}, + RBDImage: "bar", + FSType: "ext4", + }, }, - Mon: []string{"127.0.0.1"}, - Id: "kube", - Keyring: "", - Secret: "QVFEcTdKdFp4SmhtTFJBQUNwNDI3UnhGRzBvQ1Y0SUJwLy9pRUE9PQ==", - }, - ` -{ - "Pool": "kube", - "Image": "some-test-image", - "ReadOnly": false, - "Mon": ["127.0.0.1"], - "Id": "kube", - "Keyring": "", - "Secret": "QVFEcTdKdFp4SmhtTFJBQUNwNDI3UnhGRzBvQ1Y0SUJwLy9pRUE9PQ==" -} - `, - rbdMounter{ - rbd: &rbd{ - Pool: "kube", - Image: "some-test-image", - ReadOnly: false, - }, - Mon: []string{"127.0.0.1"}, - Id: "kube", - Keyring: "", - Secret: "QVFEcTdKdFp4SmhtTFJBQUNwNDI3UnhGRzBvQ1Y0SUJwLy9pRUE9PQ==", }, }, } - util := &RBDUtil{} - for _, c := range testcases { - err = util.persistRBD(c.rbdMounter, tmpDir) - if err != nil { - t.Errorf("failed to persist rbd: %v, err: %v", c.rbdMounter, err) - } - jsonFile := filepath.Join(tmpDir, "rbd.json") - jsonData, err := ioutil.ReadFile(jsonFile) - if err != nil { - t.Errorf("failed to read json file %s: %v", jsonFile, err) - } - if !assert.JSONEq(t, c.expectedJSONStr, string(jsonData)) { - t.Errorf("json file does not match expected one: %s, should be %s", string(jsonData), c.expectedJSONStr) - } - tmpRBDMounter := rbdMounter{} - err = util.loadRBD(&tmpRBDMounter, tmpDir) - if err != nil { - t.Errorf("faild to load rbd: %v", err) - } - if !reflect.DeepEqual(tmpRBDMounter, c.expectedLoadedRBDMounter) { - t.Errorf("loaded rbd does not equal to expected one: %v, should be %v", tmpRBDMounter, c.rbdMounter) - } + secretRef := new(v1.SecretReference) + secretRef.Name = secretName + secretRef.Namespace = secretNamespace + volSpec.PersistentVolume.Spec.PersistentVolumeSource.RBD.SecretRef = secretRef + + foundSecretName, foundSecretNamespace, err := getSecretNameAndNamespace(volSpec, "default") + if err != nil { + t.Errorf("getSecretNameAndNamespace failed to get Secret's name and namespace: %v", err) + } + if strings.Compare(secretName, foundSecretName) != 0 || strings.Compare(secretNamespace, foundSecretNamespace) != 0 { + t.Errorf("getSecretNameAndNamespace returned incorrect values, expected %s and %s but got %s and %s", secretName, secretNamespace, foundSecretName, foundSecretNamespace) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd_util.go b/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd_util.go index 1f06f16a4..25964ded4 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd_util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/rbd/rbd_util.go @@ -35,9 +35,10 @@ import ( "github.com/golang/glog" "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/util/mount" + fileutil "k8s.io/kubernetes/pkg/util/file" "k8s.io/kubernetes/pkg/util/node" "k8s.io/kubernetes/pkg/volume" + volutil "k8s.io/kubernetes/pkg/volume/util" ) const ( @@ -107,11 +108,15 @@ func makePDNameInternal(host volume.VolumeHost, pool string, image string) strin return path.Join(host.GetPluginDir(rbdPluginName), "rbd", pool+"-image-"+image) } +// RBDUtil implements diskManager interface. type RBDUtil struct{} +var _ diskManager = &RBDUtil{} + func (util *RBDUtil) MakeGlobalPDName(rbd rbd) string { return makePDNameInternal(rbd.plugin.host, rbd.Pool, rbd.Image) } + func rbdErrors(runErr, resultErr error) error { if runErr.Error() == rbdCmdErr { return fmt.Errorf("rbd: rbd cmd not found") @@ -119,6 +124,8 @@ func rbdErrors(runErr, resultErr error) error { return resultErr } +// rbdLock acquires a lock on image if lock is true, otherwise releases if a +// lock is found on image. func (util *RBDUtil) rbdLock(b rbdMounter, lock bool) error { var err error var output, locker string @@ -188,6 +195,9 @@ func (util *RBDUtil) rbdLock(b rbdMounter, lock bool) error { args := []string{"lock", "add", b.Image, lock_id, "--pool", b.Pool, "--id", b.Id, "-m", mon} args = append(args, secret_opt...) cmd, err = b.exec.Run("rbd", args...) + if err == nil { + glog.V(4).Infof("rbd: successfully add lock (locker_id: %s) on image: %s/%s with id %s mon %s", lock_id, b.Pool, b.Image, b.Id, mon) + } } else { // defencing, find locker name ind := strings.LastIndex(output, lock_id) - 1 @@ -197,85 +207,38 @@ func (util *RBDUtil) rbdLock(b rbdMounter, lock bool) error { break } } - // remove a lock: rbd lock remove - args := []string{"lock", "remove", b.Image, lock_id, locker, "--pool", b.Pool, "--id", b.Id, "-m", mon} - args = append(args, secret_opt...) - cmd, err = b.exec.Run("rbd", args...) + // remove a lock if found: rbd lock remove + if len(locker) > 0 { + args := []string{"lock", "remove", b.Image, lock_id, locker, "--pool", b.Pool, "--id", b.Id, "-m", mon} + args = append(args, secret_opt...) + cmd, err = b.exec.Run("rbd", args...) + if err == nil { + glog.V(4).Infof("rbd: successfully remove lock (locker_id: %s) on image: %s/%s with id %s mon %s", lock_id, b.Pool, b.Image, b.Id, mon) + } + } } if err == nil { - //lock is acquired + // break if operation succeeds break } } return err } -func (util *RBDUtil) persistRBD(rbd rbdMounter, mnt string) error { - file := path.Join(mnt, "rbd.json") - fp, err := os.Create(file) - if err != nil { - return fmt.Errorf("rbd: create err %s/%s", file, err) - } - defer fp.Close() - - encoder := json.NewEncoder(fp) - if err = encoder.Encode(rbd); err != nil { - return fmt.Errorf("rbd: encode err: %v.", err) - } - - return nil -} - -func (util *RBDUtil) loadRBD(mounter *rbdMounter, mnt string) error { - file := path.Join(mnt, "rbd.json") - fp, err := os.Open(file) - if err != nil { - return fmt.Errorf("rbd: open err %s/%s", file, err) - } - defer fp.Close() - - decoder := json.NewDecoder(fp) - if err = decoder.Decode(mounter); err != nil { - return fmt.Errorf("rbd: decode err: %v.", err) - } - - return nil -} - -func (util *RBDUtil) fencing(b rbdMounter) error { - // no need to fence readOnly - if (&b).GetAttributes().ReadOnly { - return nil - } - return util.rbdLock(b, true) -} - -func (util *RBDUtil) defencing(c rbdUnmounter) error { - // no need to fence readOnly - if c.ReadOnly { - return nil - } - - return util.rbdLock(*c.rbdMounter, false) -} - -func (util *RBDUtil) AttachDisk(b rbdMounter) error { +// AttachDisk attaches the disk on the node. +// If Volume is not read-only, acquire a lock on image first. +func (util *RBDUtil) AttachDisk(b rbdMounter) (string, error) { var err error var output []byte - // create mount point - globalPDPath := b.manager.MakeGlobalPDName(*b.rbd) - notMnt, err := b.mounter.IsLikelyNotMountPoint(globalPDPath) - // in the first time, the path shouldn't exist and IsLikelyNotMountPoint is expected to get NotExist - if err != nil && !os.IsNotExist(err) { - return fmt.Errorf("rbd: %s failed to check mountpoint", globalPDPath) - } - if !notMnt { - return nil - } - if err = os.MkdirAll(globalPDPath, 0750); err != nil { - return fmt.Errorf("rbd: failed to mkdir %s, error", globalPDPath) + globalPDPath := util.MakeGlobalPDName(*b.rbd) + if pathExists, pathErr := volutil.PathExists(globalPDPath); pathErr != nil { + return "", fmt.Errorf("Error checking if path exists: %v", pathErr) + } else if !pathExists { + if err := os.MkdirAll(globalPDPath, 0750); err != nil { + return "", err + } } devicePath, found := waitForPath(b.Pool, b.Image, 1) @@ -285,16 +248,16 @@ func (util *RBDUtil) AttachDisk(b rbdMounter) error { glog.Warningf("rbd: failed to load rbd kernel module:%v", err) } - // fence off other mappers - if err = util.fencing(b); err != nil { - return rbdErrors(err, fmt.Errorf("rbd: failed to lock image %s (maybe locked by other nodes), error %v", b.Image, err)) + // Currently, we don't acquire advisory lock on image, but for backward + // compatibility, we need to check if the image is being used by nodes running old kubelet. + found, err := util.rbdStatus(&b) + if err != nil { + return "", err + } + if found { + glog.Info("rbd is still being used ", b.Image) + return "", fmt.Errorf("rbd %s is still being used", b.Image) } - // rbd lock remove needs ceph and image config - // but kubelet doesn't get them from apiserver during teardown - // so persit rbd config so upon disk detach, rbd lock can be removed - // since rbd json is persisted in the same local directory that is used as rbd mountpoint later, - // the json file remains invisible during rbd mount and thus won't be removed accidentally. - util.persistRBD(b, globalPDPath) // rbd map l := len(b.Mon) @@ -317,52 +280,82 @@ func (util *RBDUtil) AttachDisk(b rbdMounter) error { glog.V(1).Infof("rbd: map error %v %s", err, string(output)) } if err != nil { - return fmt.Errorf("rbd: map failed %v %s", err, string(output)) + return "", fmt.Errorf("rbd: map failed %v %s", err, string(output)) } devicePath, found = waitForPath(b.Pool, b.Image, 10) if !found { - return errors.New("Could not map image: Timeout after 10s") + return "", errors.New("Could not map image: Timeout after 10s") } - glog.V(3).Infof("rbd: successfully map image %s/%s to %s", b.Pool, b.Image, devicePath) } - - // mount it - if err = b.mounter.FormatAndMount(devicePath, globalPDPath, b.fsType, nil); err != nil { - err = fmt.Errorf("rbd: failed to mount rbd volume %s [%s] to %s, error %v", devicePath, b.fsType, globalPDPath, err) - } - glog.V(3).Infof("rbd: successfully mount image %s/%s at %s", b.Pool, b.Image, globalPDPath) - return err + return devicePath, err } -func (util *RBDUtil) DetachDisk(c rbdUnmounter, mntPath string) error { - device, cnt, err := mount.GetDeviceNameFromMount(c.mounter, mntPath) - if err != nil { - return fmt.Errorf("rbd detach disk: failed to get device from mnt: %s\nError: %v", mntPath, err) - } - if err = c.mounter.Unmount(mntPath); err != nil { - return fmt.Errorf("rbd detach disk: failed to umount: %s\nError: %v", mntPath, err) - } - glog.V(3).Infof("rbd: successfully umount mountpoint %s", mntPath) - // if device is no longer used, see if can unmap - if cnt <= 1 { +// DetachDisk detaches the disk from the node. +// It detaches device from the node if device is provided, and removes the lock +// if there is persisted RBD info under deviceMountPath. +func (util *RBDUtil) DetachDisk(plugin *rbdPlugin, deviceMountPath string, device string) error { + var err error + if len(device) > 0 { // rbd unmap - _, err = c.exec.Run("rbd", "unmap", device) + exec := plugin.host.GetExec(plugin.GetPluginName()) + _, err = exec.Run("rbd", "unmap", device) if err != nil { return rbdErrors(err, fmt.Errorf("rbd: failed to unmap device %s:Error: %v", device, err)) } - - // load ceph and image/pool info to remove fencing - if err := util.loadRBD(c.rbdMounter, mntPath); err == nil { - // remove rbd lock - util.defencing(c) - } - glog.V(3).Infof("rbd: successfully unmap device %s", device) } + // Currently, we don't persist rbd info on the disk, but for backward + // compatbility, we need to clean it if found. + rbdFile := path.Join(deviceMountPath, "rbd.json") + exists, err := fileutil.FileExists(rbdFile) + if err != nil { + return err + } + if exists { + glog.V(3).Infof("rbd: old rbd.json is found under %s, cleaning it", deviceMountPath) + err = util.cleanOldRBDFile(plugin, rbdFile) + if err != nil { + glog.Errorf("rbd: failed to clean %s", rbdFile) + return err + } + glog.V(3).Infof("rbd: successfully remove %s", rbdFile) + } return nil } -func (util *RBDUtil) CreateImage(p *rbdVolumeProvisioner) (r *v1.RBDVolumeSource, size int, err error) { +// cleanOldRBDFile read rbd info from rbd.json file and removes lock if found. +// At last, it removes rbd.json file. +func (util *RBDUtil) cleanOldRBDFile(plugin *rbdPlugin, rbdFile string) error { + mounter := &rbdMounter{ + // util.rbdLock needs it to run command. + rbd: newRBD("", "", "", "", false, plugin, util), + } + fp, err := os.Open(rbdFile) + if err != nil { + return fmt.Errorf("rbd: open err %s/%s", rbdFile, err) + } + defer fp.Close() + + decoder := json.NewDecoder(fp) + if err = decoder.Decode(mounter); err != nil { + return fmt.Errorf("rbd: decode err: %v.", err) + } + + if err != nil { + glog.Errorf("failed to load rbd info from %s: %v", rbdFile, err) + return err + } + // remove rbd lock if found + // the disk is not attached to this node anymore, so the lock on image + // for this node can be removed safely + err = util.rbdLock(*mounter, false) + if err == nil { + os.Remove(rbdFile) + } + return err +} + +func (util *RBDUtil) CreateImage(p *rbdVolumeProvisioner) (r *v1.RBDPersistentVolumeSource, size int, err error) { var output []byte capacity := p.options.PVC.Spec.Resources.Requests[v1.ResourceName(v1.ResourceStorage)] volSizeBytes := capacity.Value() @@ -400,7 +393,7 @@ func (util *RBDUtil) CreateImage(p *rbdVolumeProvisioner) (r *v1.RBDVolumeSource return nil, 0, fmt.Errorf("failed to create rbd image: %v, command output: %s", err, string(output)) } - return &v1.RBDVolumeSource{ + return &v1.RBDPersistentVolumeSource{ CephMonitors: p.rbdMounter.Mon, RBDImage: p.rbdMounter.Image, RBDPool: p.rbdMounter.Pool, @@ -436,41 +429,66 @@ func (util *RBDUtil) DeleteImage(p *rbdVolumeDeleter) error { return err } -// run rbd status command to check if there is watcher on the image +// rbdStatus runs `rbd status` command to check if there is watcher on the image. func (util *RBDUtil) rbdStatus(b *rbdMounter) (bool, error) { var err error var output string var cmd []byte + // If we don't have admin id/secret (e.g. attaching), fallback to user id/secret. + id := b.adminId + secret := b.adminSecret + if id == "" { + id = b.Id + secret = b.Secret + } + l := len(b.Mon) start := rand.Int() % l - // iterate all hosts until mount succeeds. + // iterate all hosts until rbd command succeeds. for i := start; i < start+l; i++ { mon := b.Mon[i%l] // cmd "rbd status" list the rbd client watch with the following output: + // + // # there is a watcher (exit=0) // Watchers: // watcher=10.16.153.105:0/710245699 client.14163 cookie=1 - glog.V(4).Infof("rbd: status %s using mon %s, pool %s id %s key %s", b.Image, mon, b.Pool, b.adminId, b.adminSecret) + // + // # there is no watcher (exit=0) + // Watchers: none + // + // Otherwise, exit is non-zero, for example: + // + // # image does not exist (exit=2) + // rbd: error opening image kubernetes-dynamic-pvc-: (2) No such file or directory + // + glog.V(4).Infof("rbd: status %s using mon %s, pool %s id %s key %s", b.Image, mon, b.Pool, id, secret) cmd, err = b.exec.Run("rbd", - "status", b.Image, "--pool", b.Pool, "-m", mon, "--id", b.adminId, "--key="+b.adminSecret) + "status", b.Image, "--pool", b.Pool, "-m", mon, "--id", id, "--key="+secret) output = string(cmd) - if err != nil { - if err.Error() == rbdCmdErr { - glog.Errorf("rbd cmd not found") - } else { - // ignore error code, just checkout output for watcher string - glog.Warningf("failed to execute rbd status on mon %s", mon) - } + // break if command succeeds + if err == nil { + break } - if strings.Contains(output, imageWatcherStr) { - glog.V(4).Infof("rbd: watchers on %s: %s", b.Image, output) - return true, nil - } else { - glog.Warningf("rbd: no watchers on %s", b.Image) - return false, nil + if err.Error() == rbdCmdErr { + glog.Errorf("rbd cmd not found") + // fail fast if command not found + return false, err } } - return false, nil + + // If command never succeed, returns its last error. + if err != nil { + return false, err + } + + if strings.Contains(output, imageWatcherStr) { + glog.V(4).Infof("rbd: watchers on %s: %s", b.Image, output) + return true, nil + } else { + glog.Warningf("rbd: no watchers on %s", b.Image) + return false, nil + } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/BUILD index 9077321da..5c103e6e2 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/BUILD @@ -23,6 +23,7 @@ go_test( "//vendor/github.com/golang/glog: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/types:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", "//vendor/k8s.io/client-go/util/testing:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_client.go b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_client.go index 2506fe1dd..18b8ffb5b 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_client.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_client.go @@ -373,49 +373,25 @@ func (c *sioClient) GetVolumeRefs(volId sioVolumeID) (refs int, err error) { func (c *sioClient) Devs() (map[string]string, error) { volumeMap := make(map[string]string) - // grab the sdc tool output - out, err := c.exec.Run(c.getSdcCmd(), "--query_vols") - if err != nil { - glog.Error(log("sdc --query_vols failed: %v", err)) - return nil, err - } - - // --query_vols output is a heading followed by list of attached vols as follows: - // Retrieve ? volume(s) - // VOL-ID a2b8419300000000 MDM-ID 788d9efb0a8f20cb - // ... - // parse output and store it in a map as map[]volID - // that map is used later to retrieve device path (next section) - result := string(out) - mdmMap := make(map[string]string) - lines := strings.Split(result, "\n") - for _, line := range lines { - //line e.g.: "VOL-ID a2b8419300000000 MDM-ID 788d9efb0a8f20cb" - if strings.HasPrefix(line, "VOL-ID") { - //split[1] = volID; split[3] = mdmID - split := strings.Split(line, " ") - key := fmt.Sprintf("%s-%s", split[3], split[1]) - mdmMap[key] = split[1] - } - } - files, err := c.getSioDiskPaths() if err != nil { return nil, err } for _, f := range files { - // remove emec-vol- prefix to be left with concated mdmID-volID - mdmVolumeID := strings.Replace(f.Name(), "emc-vol-", "", 1) + // split emc-vol-- to pull out volumeID + parts := strings.Split(f.Name(), "-") + if len(parts) != 4 { + return nil, errors.New("unexpected ScaleIO device name format") + } + volumeID := parts[3] devPath, err := filepath.EvalSymlinks(fmt.Sprintf("%s/%s", sioDiskIDPath, f.Name())) if err != nil { glog.Error(log("devicepath-to-volID mapping error: %v", err)) return nil, err } - // map volID to devicePath - if volumeID, ok := mdmMap[mdmVolumeID]; ok { - volumeMap[volumeID] = devPath - } + // map volumeID to devicePath + volumeMap[volumeID] = devPath } return volumeMap, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_mgr_test.go b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_mgr_test.go index e2fe5c200..49ff5d05a 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_mgr_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_mgr_test.go @@ -37,7 +37,7 @@ var ( confKey.sslEnabled: "false", confKey.system: "scaleio", confKey.volumeName: "sio-0001", - confKey.secretRef: "sio-secret", + confKey.secretName: "sio-secret", confKey.username: "c2lvdXNlcgo=", // siouser confKey.password: "c2lvcGFzc3dvcmQK", // siopassword } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_plugin.go b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_plugin.go index d77587562..babd840c6 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_plugin.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_plugin.go @@ -60,12 +60,11 @@ func (p *sioPlugin) GetPluginName() string { } func (p *sioPlugin) GetVolumeName(spec *volume.Spec) (string, error) { - source, err := getVolumeSourceFromSpec(spec) + attribs, err := getVolumeSourceAttribs(spec) if err != nil { return "", err } - - return source.VolumeName, nil + return attribs.volName, nil } func (p *sioPlugin) CanSupport(spec *volume.Spec) bool { @@ -81,29 +80,33 @@ func (p *sioPlugin) NewMounter( spec *volume.Spec, pod *api.Pod, _ volume.VolumeOptions) (volume.Mounter, error) { - sioSource, err := getVolumeSourceFromSpec(spec) + + // extract source info from either ScaleIOVolumeSource or ScaleIOPersistentVolumeSource type + attribs, err := getVolumeSourceAttribs(spec) if err != nil { - glog.Error(log("failed to extract ScaleIOVolumeSource from spec: %v", err)) - return nil, err + return nil, errors.New(log("mounter failed to extract volume attributes from spec: %v", err)) + } + + secretName, secretNS, err := getSecretAndNamespaceFromSpec(spec, pod) + if err != nil { + return nil, errors.New(log("failed to get secret name or secretNamespace: %v", err)) } return &sioVolume{ - pod: pod, - spec: spec, - source: sioSource, - namespace: pod.Namespace, - volSpecName: spec.Name(), - volName: sioSource.VolumeName, - podUID: pod.UID, - readOnly: sioSource.ReadOnly, - fsType: sioSource.FSType, - plugin: p, + pod: pod, + spec: spec, + secretName: secretName, + secretNamespace: secretNS, + volSpecName: spec.Name(), + volName: attribs.volName, + podUID: pod.UID, + readOnly: attribs.readOnly, + fsType: attribs.fsType, + plugin: p, }, nil } // NewUnmounter creates a representation of the volume to unmount -// The specName param can be used to carry the namespace value (if needed) using format: -// specName = [nsSep] where the specname is pre-pended with the namespace func (p *sioPlugin) NewUnmounter(specName string, podUID types.UID) (volume.Unmounter, error) { glog.V(4).Info(log("Unmounter for %s", specName)) @@ -156,22 +159,25 @@ func (p *sioPlugin) GetAccessModes() []api.PersistentVolumeAccessMode { var _ volume.DeletableVolumePlugin = &sioPlugin{} func (p *sioPlugin) NewDeleter(spec *volume.Spec) (volume.Deleter, error) { - sioSource, err := getVolumeSourceFromSpec(spec) + attribs, err := getVolumeSourceAttribs(spec) if err != nil { - glog.Error(log("deleter failed to extract source from spec: %v", err)) + glog.Error(log("deleter failed to extract volume attributes from spec: %v", err)) return nil, err } - namespace := spec.PersistentVolume.Spec.ClaimRef.Namespace + secretName, secretNS, err := getSecretAndNamespaceFromSpec(spec, nil) + if err != nil { + return nil, errors.New(log("failed to get secret name or secretNamespace: %v", err)) + } return &sioVolume{ - spec: spec, - source: sioSource, - namespace: namespace, - volSpecName: spec.Name(), - volName: sioSource.VolumeName, - plugin: p, - readOnly: sioSource.ReadOnly, + spec: spec, + secretName: secretName, + secretNamespace: secretNS, + volSpecName: spec.Name(), + volName: attribs.volName, + plugin: p, + readOnly: attribs.readOnly, }, nil } @@ -189,13 +195,26 @@ func (p *sioPlugin) NewProvisioner(options volume.VolumeOptions) (volume.Provisi return nil, errors.New("option parameters missing") } - namespace := options.PVC.Namespace + // Supports ref of name of secret a couple of ways: + // options.Parameters["secretRef"] for backward compat, or + // options.Parameters["secretName"] + secretName := configData[confKey.secretName] + if secretName == "" { + secretName = configData["secretName"] + configData[confKey.secretName] = secretName + } + + secretNS := configData[confKey.secretNamespace] + if secretNS == "" { + secretNS = options.PVC.Namespace + } return &sioVolume{ - configData: configData, - plugin: p, - options: options, - namespace: namespace, - volSpecName: options.PVName, + configData: configData, + plugin: p, + options: options, + secretName: secretName, + secretNamespace: secretNS, + volSpecName: options.PVName, }, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_util.go b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_util.go index 3c2f13a34..de0c58116 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_util.go @@ -31,11 +31,17 @@ import ( volutil "k8s.io/kubernetes/pkg/volume/util" ) +type volSourceAttribs struct { + volName, + fsType string + readOnly bool +} + var ( confKey = struct { gateway, sslEnabled, - secretRef, + secretName, system, protectionDomain, storagePool, @@ -47,12 +53,13 @@ var ( readOnly, username, password, - namespace, + secretNamespace, sdcGuid string }{ gateway: "gateway", sslEnabled: "sslEnabled", - secretRef: "secretRef", + secretName: "secretRef", + secretNamespace: "secretNamespace", system: "system", protectionDomain: "protectionDomain", storagePool: "storagePool", @@ -64,7 +71,6 @@ var ( readOnly: "readOnly", username: "username", password: "password", - namespace: "namespace", sdcGuid: "sdcGuid", } sdcGuidLabelName = "scaleio.sdcGuid" @@ -79,23 +85,32 @@ var ( protectionDomainNotProvidedErr = errors.New("ScaleIO protection domain not provided") ) -// mapScaleIOVolumeSource maps attributes from a ScaleIOVolumeSource to config -func mapVolumeSource(config map[string]string, source *api.ScaleIOVolumeSource) { - config[confKey.gateway] = source.Gateway - config[confKey.secretRef] = func() string { - if source.SecretRef != nil { - return string(source.SecretRef.Name) - } - return "" - }() - config[confKey.system] = source.System - config[confKey.volumeName] = source.VolumeName - config[confKey.sslEnabled] = strconv.FormatBool(source.SSLEnabled) - config[confKey.protectionDomain] = source.ProtectionDomain - config[confKey.storagePool] = source.StoragePool - config[confKey.storageMode] = source.StorageMode - config[confKey.fsType] = source.FSType - config[confKey.readOnly] = strconv.FormatBool(source.ReadOnly) +// mapVolumeSpec maps attributes from either ScaleIOVolumeSource or ScaleIOPersistentVolumeSource to config +func mapVolumeSpec(config map[string]string, spec *volume.Spec) { + + if source, err := getScaleIOPersistentVolumeSourceFromSpec(spec); err == nil { + config[confKey.gateway] = source.Gateway + config[confKey.system] = source.System + config[confKey.volumeName] = source.VolumeName + config[confKey.sslEnabled] = strconv.FormatBool(source.SSLEnabled) + config[confKey.protectionDomain] = source.ProtectionDomain + config[confKey.storagePool] = source.StoragePool + config[confKey.storageMode] = source.StorageMode + config[confKey.fsType] = source.FSType + config[confKey.readOnly] = strconv.FormatBool(source.ReadOnly) + } + + if source, err := getScaleIOVolumeSourceFromSpec(spec); err == nil { + config[confKey.gateway] = source.Gateway + config[confKey.system] = source.System + config[confKey.volumeName] = source.VolumeName + config[confKey.sslEnabled] = strconv.FormatBool(source.SSLEnabled) + config[confKey.protectionDomain] = source.ProtectionDomain + config[confKey.storagePool] = source.StoragePool + config[confKey.storageMode] = source.StorageMode + config[confKey.fsType] = source.FSType + config[confKey.readOnly] = strconv.FormatBool(source.ReadOnly) + } //optionals applyConfigDefaults(config) @@ -105,7 +120,7 @@ func validateConfigs(config map[string]string) error { if config[confKey.gateway] == "" { return gatewayNotProvidedErr } - if config[confKey.secretRef] == "" { + if config[confKey.secretName] == "" { return secretRefNotProvidedErr } if config[confKey.system] == "" { @@ -202,7 +217,7 @@ func saveConfig(configName string, data map[string]string) error { // attachSecret loads secret object and attaches to configData func attachSecret(plug *sioPlugin, namespace string, configData map[string]string) error { // load secret - secretRefName := configData[confKey.secretRef] + secretRefName := configData[confKey.secretName] kubeClient := plug.host.GetKubeClient() secretMap, err := volutil.GetSecretForPV(namespace, secretRefName, sioPluginName, kubeClient) if err != nil { @@ -244,8 +259,8 @@ func getSdcGuidLabel(plug *sioPlugin) (string, error) { return label, nil } -// getVolumeSourceFromSpec safely extracts ScaleIOVolumeSource from spec -func getVolumeSourceFromSpec(spec *volume.Spec) (*api.ScaleIOVolumeSource, error) { +// getVolumeSourceFromSpec safely extracts ScaleIOVolumeSource or ScaleIOPersistentVolumeSource from spec +func getVolumeSourceFromSpec(spec *volume.Spec) (interface{}, error) { if spec.Volume != nil && spec.Volume.ScaleIO != nil { return spec.Volume.ScaleIO, nil } @@ -257,6 +272,66 @@ func getVolumeSourceFromSpec(spec *volume.Spec) (*api.ScaleIOVolumeSource, error return nil, fmt.Errorf("ScaleIO not defined in spec") } +func getVolumeSourceAttribs(spec *volume.Spec) (*volSourceAttribs, error) { + attribs := new(volSourceAttribs) + if pvSource, err := getScaleIOPersistentVolumeSourceFromSpec(spec); err == nil { + attribs.volName = pvSource.VolumeName + attribs.fsType = pvSource.FSType + attribs.readOnly = pvSource.ReadOnly + } else if pSource, err := getScaleIOVolumeSourceFromSpec(spec); err == nil { + attribs.volName = pSource.VolumeName + attribs.fsType = pSource.FSType + attribs.readOnly = pSource.ReadOnly + } else { + msg := log("failed to get ScaleIOVolumeSource or ScaleIOPersistentVolumeSource from spec") + glog.Error(msg) + return nil, errors.New(msg) + } + return attribs, nil +} + +func getScaleIOPersistentVolumeSourceFromSpec(spec *volume.Spec) (*api.ScaleIOPersistentVolumeSource, error) { + source, err := getVolumeSourceFromSpec(spec) + if err != nil { + return nil, err + } + if val, ok := source.(*api.ScaleIOPersistentVolumeSource); ok { + return val, nil + } + return nil, fmt.Errorf("spec is not a valid ScaleIOPersistentVolume type") +} + +func getScaleIOVolumeSourceFromSpec(spec *volume.Spec) (*api.ScaleIOVolumeSource, error) { + source, err := getVolumeSourceFromSpec(spec) + if err != nil { + return nil, err + } + if val, ok := source.(*api.ScaleIOVolumeSource); ok { + return val, nil + } + return nil, fmt.Errorf("spec is not a valid ScaleIOVolume type") +} + +func getSecretAndNamespaceFromSpec(spec *volume.Spec, pod *api.Pod) (secretName string, secretNS string, err error) { + if source, err := getScaleIOVolumeSourceFromSpec(spec); err == nil { + secretName = source.SecretRef.Name + if pod != nil { + secretNS = pod.Namespace + } + } else if source, err := getScaleIOPersistentVolumeSourceFromSpec(spec); err == nil { + if source.SecretRef != nil { + secretName = source.SecretRef.Name + secretNS = source.SecretRef.Namespace + if secretNS == "" && pod != nil { + secretNS = pod.Namespace + } + } + } else { + return "", "", errors.New("failed to get ScaleIOVolumeSource or ScaleIOPersistentVolumeSource") + } + return secretName, secretNS, nil +} + func log(msg string, parts ...interface{}) string { return fmt.Sprintf(fmt.Sprintf("scaleio: %s", msg), parts...) } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_util_test.go b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_util_test.go index 360b67e3f..4be4bd75f 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_util_test.go @@ -25,6 +25,7 @@ import ( api "k8s.io/api/core/v1" utiltesting "k8s.io/client-go/util/testing" + "k8s.io/kubernetes/pkg/volume" ) var ( @@ -48,7 +49,7 @@ var ( confKey.gateway: "http://sio/", confKey.volSpecName: testSioVolName, confKey.volumeName: "sio-vol", - confKey.secretRef: "sio-secret", + confKey.secretName: "sio-secret", confKey.protectionDomain: "defaultPD", confKey.storagePool: "deraultSP", confKey.fsType: "xfs", @@ -60,7 +61,7 @@ var ( func TestUtilMapVolumeSource(t *testing.T) { data := make(map[string]string) - mapVolumeSource(data, vol.VolumeSource.ScaleIO) + mapVolumeSpec(data, volume.NewSpecFromVolume(vol)) if data[confKey.gateway] != "http://test.scaleio:1111" { t.Error("Unexpected gateway value") } @@ -79,9 +80,6 @@ func TestUtilMapVolumeSource(t *testing.T) { if data[confKey.fsType] != "ext4" { t.Error("Unexpected fstype value") } - if data[confKey.secretRef] != "test-secret" { - t.Error("Unexpected secret ref value") - } if data[confKey.sslEnabled] != "false" { t.Error("Unexpected sslEnabled value") } @@ -92,8 +90,8 @@ func TestUtilMapVolumeSource(t *testing.T) { func TestUtilValidateConfigs(t *testing.T) { data := map[string]string{ - confKey.secretRef: "sio-secret", - confKey.system: "sio", + confKey.secretName: "sio-secret", + confKey.system: "sio", } if err := validateConfigs(data); err != gatewayNotProvidedErr { t.Error("Expecting error for missing gateway, but did not get it") @@ -105,7 +103,7 @@ func TestUtilApplyConfigDefaults(t *testing.T) { confKey.system: "sio", confKey.gateway: "http://sio/", confKey.volumeName: "sio-vol", - confKey.secretRef: "test-secret", + confKey.secretName: "test-secret", } applyConfigDefaults(data) @@ -130,7 +128,7 @@ func TestUtilApplyConfigDefaults(t *testing.T) { if data[confKey.storageMode] != "ThinProvisioned" { t.Error("Unexpected storage mode value") } - if data[confKey.secretRef] != "test-secret" { + if data[confKey.secretName] != "test-secret" { t.Error("Unexpected secret ref value") } if data[confKey.sslEnabled] != "false" { @@ -157,7 +155,7 @@ func TestUtilSaveConfig(t *testing.T) { config := path.Join(tmpDir, testConfigFile) data := map[string]string{ confKey.gateway: "https://test-gateway/", - confKey.secretRef: "sio-secret", + confKey.secretName: "sio-secret", confKey.sslEnabled: "false", } if err := saveConfig(config, data); err != nil { @@ -178,7 +176,7 @@ func TestUtilSaveConfig(t *testing.T) { } func TestUtilAttachSecret(t *testing.T) { - plugMgr, tmpDir := newPluginMgr(t) + plugMgr, tmpDir := newPluginMgr(t, makeScaleIOSecret(testSecret, testns)) defer os.RemoveAll(tmpDir) plug, err := plugMgr.FindPluginByName(sioPluginName) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_volume.go b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_volume.go index 85e7fb0b4..0d0d35608 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_volume.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_volume.go @@ -37,19 +37,19 @@ import ( ) type sioVolume struct { - sioMgr *sioMgr - plugin *sioPlugin - pod *api.Pod - podUID types.UID - spec *volume.Spec - source *api.ScaleIOVolumeSource - namespace string - volSpecName string - volName string - readOnly bool - fsType string - options volume.VolumeOptions - configData map[string]string + sioMgr *sioMgr + plugin *sioPlugin + pod *api.Pod + podUID types.UID + spec *volume.Spec + secretName string + secretNamespace string + volSpecName string + volName string + readOnly bool + fsType string + options volume.VolumeOptions + configData map[string]string volume.MetricsNil } @@ -59,7 +59,6 @@ type sioVolume struct { var _ volume.Volume = &sioVolume{} // GetPath returns the path where the volume will be mounted. -// The volumeName is prefixed with the pod's namespace a - func (v *sioVolume) GetPath() string { return v.plugin.host.GetPodVolumeDir( v.podUID, @@ -128,11 +127,11 @@ func (v *sioVolume) SetUpAt(dir string, fsGroup *int64) error { switch { default: options = append(options, "rw") - case isROM && !v.source.ReadOnly: + case isROM && !v.readOnly: options = append(options, "rw") case isROM: options = append(options, "ro") - case v.source.ReadOnly: + case v.readOnly: options = append(options, "ro") } @@ -327,10 +326,10 @@ func (v *sioVolume) Provision() (*api.PersistentVolume, error) { ), }, PersistentVolumeSource: api.PersistentVolumeSource{ - ScaleIO: &api.ScaleIOVolumeSource{ + ScaleIO: &api.ScaleIOPersistentVolumeSource{ Gateway: v.configData[confKey.gateway], SSLEnabled: sslEnabled, - SecretRef: &api.LocalObjectReference{Name: v.configData[confKey.secretRef]}, + SecretRef: &api.SecretReference{Name: v.secretName, Namespace: v.secretNamespace}, System: v.configData[confKey.system], ProtectionDomain: v.configData[confKey.protectionDomain], StoragePool: v.configData[confKey.storagePool], @@ -366,13 +365,17 @@ func (v *sioVolume) setSioMgr() error { glog.V(4).Info(log("previous config file not found, creating new one")) // prepare config data configData = make(map[string]string) - mapVolumeSource(configData, v.source) + mapVolumeSpec(configData, v.spec) + + // additional config data + configData[confKey.secretNamespace] = v.secretNamespace + configData[confKey.secretName] = v.secretName + configData[confKey.volSpecName] = v.volSpecName + if err := validateConfigs(configData); err != nil { glog.Error(log("config setup failed: %s", err)) return err } - configData[confKey.namespace] = v.namespace - configData[confKey.volSpecName] = v.volSpecName // persist config if err := saveConfig(configName, configData); err != nil { @@ -381,7 +384,7 @@ func (v *sioVolume) setSioMgr() error { } } // merge in secret - if err := attachSecret(v.plugin, v.namespace, configData); err != nil { + if err := attachSecret(v.plugin, v.secretNamespace, configData); err != nil { glog.Error(log("failed to load secret: %v", err)) return err } @@ -414,12 +417,13 @@ func (v *sioVolume) resetSioMgr() error { glog.Error(log("failed to load config data: %v", err)) return err } - v.namespace = configData[confKey.namespace] + v.secretName = configData[confKey.secretName] + v.secretNamespace = configData[confKey.secretNamespace] v.volName = configData[confKey.volumeName] v.volSpecName = configData[confKey.volSpecName] // attach secret - if err := attachSecret(v.plugin, v.namespace, configData); err != nil { + if err := attachSecret(v.plugin, v.secretNamespace, configData); err != nil { glog.Error(log("failed to load secret: %v", err)) return err } @@ -446,21 +450,22 @@ func (v *sioVolume) resetSioMgr() error { func (v *sioVolume) setSioMgrFromConfig() error { glog.V(4).Info(log("setting scaleio mgr from available config")) if v.sioMgr == nil { - configData := v.configData - applyConfigDefaults(configData) - if err := validateConfigs(configData); err != nil { + applyConfigDefaults(v.configData) + + v.configData[confKey.volSpecName] = v.volSpecName + + if err := validateConfigs(v.configData); err != nil { glog.Error(log("config data setup failed: %s", err)) return err } - configData[confKey.namespace] = v.namespace - configData[confKey.volSpecName] = v.volSpecName // copy config and attach secret data := map[string]string{} - for k, v := range configData { + for k, v := range v.configData { data[k] = v } - if err := attachSecret(v.plugin, v.namespace, data); err != nil { + + if err := attachSecret(v.plugin, v.secretNamespace, data); err != nil { glog.Error(log("failed to load secret: %v", err)) return err } @@ -483,16 +488,20 @@ func (v *sioVolume) setSioMgrFromSpec() error { if v.sioMgr == nil { // get config data form spec volume source configData := map[string]string{} - mapVolumeSource(configData, v.source) + mapVolumeSpec(configData, v.spec) + + // additional config + configData[confKey.secretNamespace] = v.secretNamespace + configData[confKey.secretName] = v.secretName + configData[confKey.volSpecName] = v.volSpecName + if err := validateConfigs(configData); err != nil { glog.Error(log("config setup failed: %s", err)) return err } - configData[confKey.namespace] = v.namespace - configData[confKey.volSpecName] = v.volSpecName // attach secret object to config data - if err := attachSecret(v.plugin, v.namespace, configData); err != nil { + if err := attachSecret(v.plugin, v.secretNamespace, configData); err != nil { glog.Error(log("failed to load secret: %v", err)) return err } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_volume_test.go b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_volume_test.go index ad2f75475..a72d74e51 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_volume_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/scaleio/sio_volume_test.go @@ -27,6 +27,7 @@ import ( api "k8s.io/api/core/v1" meta "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" fakeclient "k8s.io/client-go/kubernetes/fake" utiltesting "k8s.io/client-go/util/testing" @@ -39,29 +40,18 @@ var ( testSioPD = "default" testSioVol = "vol-0001" testns = "default" + testSecret = "sio-secret" testSioVolName = fmt.Sprintf("%s%s%s", testns, "-", testSioVol) podUID = types.UID("sio-pod") ) -func newPluginMgr(t *testing.T) (*volume.VolumePluginMgr, string) { +func newPluginMgr(t *testing.T, apiObject runtime.Object) (*volume.VolumePluginMgr, string) { tmpDir, err := utiltesting.MkTmpdir("scaleio-test") if err != nil { t.Fatalf("can't make a temp dir: %v", err) } - config := &api.Secret{ - ObjectMeta: meta.ObjectMeta{ - Name: "sio-secret", - Namespace: testns, - UID: "1234567890", - }, - Type: api.SecretType("kubernetes.io/scaleio"), - Data: map[string][]byte{ - "username": []byte("username"), - "password": []byte("password"), - }, - } - fakeClient := fakeclient.NewSimpleClientset(config) + fakeClient := fakeclient.NewSimpleClientset(apiObject) host := volumetest.NewFakeVolumeHostWithNodeLabels( tmpDir, fakeClient, @@ -74,8 +64,23 @@ func newPluginMgr(t *testing.T) (*volume.VolumePluginMgr, string) { return plugMgr, tmpDir } +func makeScaleIOSecret(name, namespace string) *api.Secret { + return &api.Secret{ + ObjectMeta: meta.ObjectMeta{ + Name: name, + Namespace: namespace, + UID: "1234567890", + }, + Type: api.SecretType("kubernetes.io/scaleio"), + Data: map[string][]byte{ + "username": []byte("username"), + "password": []byte("password"), + }, + } +} + func TestVolumeCanSupport(t *testing.T) { - plugMgr, tmpDir := newPluginMgr(t) + plugMgr, tmpDir := newPluginMgr(t, makeScaleIOSecret(testSecret, testns)) defer os.RemoveAll(tmpDir) plug, err := plugMgr.FindPluginByName(sioPluginName) if err != nil { @@ -100,7 +105,7 @@ func TestVolumeCanSupport(t *testing.T) { PersistentVolume: &api.PersistentVolume{ Spec: api.PersistentVolumeSpec{ PersistentVolumeSource: api.PersistentVolumeSource{ - ScaleIO: &api.ScaleIOVolumeSource{}, + ScaleIO: &api.ScaleIOPersistentVolumeSource{}, }, }, }, @@ -111,7 +116,7 @@ func TestVolumeCanSupport(t *testing.T) { } func TestVolumeGetAccessModes(t *testing.T) { - plugMgr, tmpDir := newPluginMgr(t) + plugMgr, tmpDir := newPluginMgr(t, makeScaleIOSecret(testSecret, testns)) defer os.RemoveAll(tmpDir) plug, err := plugMgr.FindPersistentPluginByName(sioPluginName) if err != nil { @@ -131,7 +136,7 @@ func containsMode(modes []api.PersistentVolumeAccessMode, mode api.PersistentVol } func TestVolumeMounterUnmounter(t *testing.T) { - plugMgr, tmpDir := newPluginMgr(t) + plugMgr, tmpDir := newPluginMgr(t, makeScaleIOSecret(testSecret, testns)) defer os.RemoveAll(tmpDir) plug, err := plugMgr.FindPluginByName(sioPluginName) @@ -153,7 +158,7 @@ func TestVolumeMounterUnmounter(t *testing.T) { StoragePool: "default", VolumeName: testSioVol, FSType: "ext4", - SecretRef: &api.LocalObjectReference{Name: "sio-secret"}, + SecretRef: &api.LocalObjectReference{Name: testSecret}, ReadOnly: false, }, }, @@ -236,7 +241,7 @@ func TestVolumeMounterUnmounter(t *testing.T) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } // are we still mapped if sio.volume.MappedSdcInfo != nil { @@ -245,7 +250,7 @@ func TestVolumeMounterUnmounter(t *testing.T) { } func TestVolumeProvisioner(t *testing.T) { - plugMgr, tmpDir := newPluginMgr(t) + plugMgr, tmpDir := newPluginMgr(t, makeScaleIOSecret(testSecret, testns)) defer os.RemoveAll(tmpDir) plug, err := plugMgr.FindPluginByName(sioPluginName) @@ -274,7 +279,7 @@ func TestVolumeProvisioner(t *testing.T) { confKey.system: "sio", confKey.protectionDomain: testSioPD, confKey.storagePool: "default", - confKey.secretRef: "sio-secret", + confKey.secretName: testSecret, } provisioner, err := sioPlug.NewProvisioner(options) @@ -296,6 +301,17 @@ func TestVolumeProvisioner(t *testing.T) { t.Fatalf("call to Provision() failed: %v", err) } + if spec.Namespace != testns { + t.Fatalf("unexpected namespace %v", spec.Namespace) + } + if spec.Spec.ScaleIO.SecretRef == nil { + t.Fatalf("unexpected nil value for spec.SecretRef") + } + if spec.Spec.ScaleIO.SecretRef.Name != testSecret || + spec.Spec.ScaleIO.SecretRef.Namespace != testns { + t.Fatalf("spec.SecretRef is not being set properly") + } + spec.Spec.ClaimRef = &api.ObjectReference{Namespace: testns} // validate provision @@ -379,7 +395,7 @@ func TestVolumeProvisioner(t *testing.T) { } func TestVolumeProvisionerWithIncompleteConfig(t *testing.T) { - plugMgr, tmpDir := newPluginMgr(t) + plugMgr, tmpDir := newPluginMgr(t, makeScaleIOSecret(testSecret, testns)) defer os.RemoveAll(tmpDir) plug, err := plugMgr.FindPluginByName(sioPluginName) @@ -411,7 +427,7 @@ func TestVolumeProvisionerWithIncompleteConfig(t *testing.T) { } func TestVolumeProvisionerWithZeroCapacity(t *testing.T) { - plugMgr, tmpDir := newPluginMgr(t) + plugMgr, tmpDir := newPluginMgr(t, makeScaleIOSecret(testSecret, testns)) defer os.RemoveAll(tmpDir) plug, err := plugMgr.FindPluginByName(sioPluginName) @@ -440,7 +456,7 @@ func TestVolumeProvisionerWithZeroCapacity(t *testing.T) { confKey.system: "sio", confKey.protectionDomain: testSioPD, confKey.storagePool: "default", - confKey.secretRef: "sio-secret", + confKey.secretName: "sio-secret", } provisioner, _ := sioPlug.NewProvisioner(options) @@ -457,3 +473,63 @@ func TestVolumeProvisionerWithZeroCapacity(t *testing.T) { } } + +func TestVolumeProvisionerWithSecretNamespace(t *testing.T) { + plugMgr, tmpDir := newPluginMgr(t, makeScaleIOSecret("sio-sec", "sio-ns")) + defer os.RemoveAll(tmpDir) + + plug, err := plugMgr.FindPluginByName(sioPluginName) + if err != nil { + t.Fatalf("Can't find the plugin %v", sioPluginName) + } + sioPlug, ok := plug.(*sioPlugin) + if !ok { + t.Fatal("Cannot assert plugin to be type sioPlugin") + } + + options := volume.VolumeOptions{ + ClusterName: "testcluster", + PVName: "pvc-sio-dynamic-vol", + PVC: volumetest.CreateTestPVC("100Mi", []api.PersistentVolumeAccessMode{api.ReadWriteOnce}), + PersistentVolumeReclaimPolicy: api.PersistentVolumeReclaimDelete, + } + + options.PVC.Spec.AccessModes = []api.PersistentVolumeAccessMode{ + api.ReadWriteOnce, + } + + options.PVC.Namespace = "pvc-ns" + options.Parameters = map[string]string{ + confKey.gateway: "http://test.scaleio:11111", + confKey.system: "sio", + confKey.protectionDomain: testSioPD, + confKey.storagePool: "default", + confKey.secretName: "sio-sec", + confKey.secretNamespace: "sio-ns", + } + + provisioner, _ := sioPlug.NewProvisioner(options) + sio := newFakeSio() + sioVol := provisioner.(*sioVolume) + if err := sioVol.setSioMgrFromConfig(); err != nil { + t.Fatalf("failed to create scaleio mgr from config: %v", err) + } + sioVol.sioMgr.client = sio + + spec, err := sioVol.Provision() + if err != nil { + t.Fatalf("call to Provision() failed: %v", err) + } + + if spec.GetObjectMeta().GetNamespace() != "pvc-ns" { + t.Fatalf("unexpected spec.namespace %s", spec.GetObjectMeta().GetNamespace()) + } + + if spec.Spec.ScaleIO.SecretRef.Name != "sio-sec" { + t.Fatalf("unexpected spec.ScaleIOPersistentVolume.SecretRef.Name %v", spec.Spec.ScaleIO.SecretRef.Name) + } + + if spec.Spec.ScaleIO.SecretRef.Namespace != "sio-ns" { + t.Fatalf("unexpected spec.ScaleIOPersistentVolume.SecretRef.Namespace %v", spec.Spec.ScaleIO.SecretRef.Namespace) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/volume/secret/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/secret/OWNERS index 72968b277..baaff6ff4 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/secret/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/secret/OWNERS @@ -7,13 +7,7 @@ reviewers: - ivan4th - rata - sjenning -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/secret/secret_test.go b/vendor/k8s.io/kubernetes/pkg/volume/secret/secret_test.go index 6ba6a10d4..a644d5bf8 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/secret/secret_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/secret/secret_test.go @@ -626,6 +626,6 @@ func doTestCleanAndTeardown(plugin volume.VolumePlugin, podUID types.UID, testVo if _, err := os.Stat(volumePath); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", volumePath) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/storageos/storageos_test.go b/vendor/k8s.io/kubernetes/pkg/volume/storageos/storageos_test.go index 645dd8c6c..a77f2c727 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/storageos/storageos_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/storageos/storageos_test.go @@ -69,7 +69,7 @@ func TestGetAccessModes(t *testing.T) { if err != nil { t.Errorf("Can't find the plugin by name") } - if !contains(plug.GetAccessModes(), v1.ReadWriteOnce) || !contains(plug.GetAccessModes(), v1.ReadOnlyMany) { + if !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadWriteOnce) || !volumetest.ContainsAccessMode(plug.GetAccessModes(), v1.ReadOnlyMany) { t.Errorf("Expected two AccessModeTypes: %s and %s", v1.ReadWriteOnce, v1.ReadOnlyMany) } } @@ -237,7 +237,7 @@ func TestPlugin(t *testing.T) { if _, err := os.Stat(volPath); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", volPath) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } if !fakeManager.unmountCalled { @@ -308,15 +308,6 @@ func TestPlugin(t *testing.T) { } } -func contains(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { - for _, m := range modes { - if m == mode { - return true - } - } - return false -} - func TestPersistentClaimReadOnlyFlag(t *testing.T) { tmpDir, err := utiltesting.MkTmpdir("storageos_test") if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/testing/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/testing/OWNERS index 2343a0b8a..fcb4625ad 100755 --- a/vendor/k8s.io/kubernetes/pkg/volume/testing/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/testing/OWNERS @@ -5,13 +5,7 @@ approvers: - jsafrane reviewers: - jeffvance -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali -- justinsb - jsafrane - rootfs - jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/testing/testing.go b/vendor/k8s.io/kubernetes/pkg/volume/testing/testing.go index d2903f5f1..035896b66 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/testing/testing.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/testing/testing.go @@ -147,7 +147,7 @@ func (f *fakeVolumeHost) GetNodeAllocatable() (v1.ResourceList, error) { func (f *fakeVolumeHost) GetSecretFunc() func(namespace, name string) (*v1.Secret, error) { return func(namespace, name string) (*v1.Secret, error) { - return f.kubeClient.Core().Secrets(namespace).Get(name, metav1.GetOptions{}) + return f.kubeClient.CoreV1().Secrets(namespace).Get(name, metav1.GetOptions{}) } } @@ -157,7 +157,7 @@ func (f *fakeVolumeHost) GetExec(pluginName string) mount.Exec { func (f *fakeVolumeHost) GetConfigMapFunc() func(namespace, name string) (*v1.ConfigMap, error) { return func(namespace, name string) (*v1.ConfigMap, error) { - return f.kubeClient.Core().ConfigMaps(namespace).Get(name, metav1.GetOptions{}) + return f.kubeClient.CoreV1().ConfigMaps(namespace).Get(name, metav1.GetOptions{}) } } @@ -468,7 +468,7 @@ func (fv *FakeVolume) GetMountDeviceCallCount() int { return fv.MountDeviceCallCount } -func (fv *FakeVolume) Detach(deviceMountPath string, nodeName types.NodeName) error { +func (fv *FakeVolume) Detach(volumeName string, nodeName types.NodeName) error { fv.Lock() defer fv.Unlock() fv.DetachCallCount++ @@ -803,3 +803,12 @@ func MetricsEqualIgnoreTimestamp(a *Metrics, b *Metrics) bool { inodesUsed := a.InodesUsed == b.InodesUsed return available && capacity && used && inodes && inodesFree && inodesUsed } + +func ContainsAccessMode(modes []v1.PersistentVolumeAccessMode, mode v1.PersistentVolumeAccessMode) bool { + for _, m := range modes { + if m == mode { + return true + } + } + return false +} diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util.go b/vendor/k8s.io/kubernetes/pkg/volume/util.go index b976ce947..e28905169 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util.go @@ -36,7 +36,6 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" - volutil "k8s.io/kubernetes/pkg/volume/util" ) type RecycleEventRecorder func(eventtype, message string) @@ -48,8 +47,8 @@ type RecycleEventRecorder func(eventtype, message string) // attempted before returning. // // In case there is a pod with the same namespace+name already running, this -// function assumes it's an older instance of the recycler pod and watches -// this old pod instead of starting a new one. +// function deletes it as it is not able to judge if it is an old recycler +// or user has forged a fake recycler to block Kubernetes from recycling.// // // pod - the pod designed by a volume plugin to recycle the volume. pod.Name // will be overwritten with unique name based on PV.Name. @@ -81,20 +80,44 @@ func internalRecycleVolumeByWatchingPodUntilCompletion(pvName string, pod *v1.Po _, err = recyclerClient.CreatePod(pod) if err != nil { if errors.IsAlreadyExists(err) { - glog.V(5).Infof("old recycler pod %q found for volume", pod.Name) + deleteErr := recyclerClient.DeletePod(pod.Name, pod.Namespace) + if deleteErr != nil { + return fmt.Errorf("failed to delete old recycler pod %s/%s: %s", pod.Namespace, pod.Name, deleteErr) + } + // Recycler will try again and the old pod will be hopefuly deleted + // at that time. + return fmt.Errorf("old recycler pod found, will retry later") } else { return fmt.Errorf("unexpected error creating recycler pod: %+v\n", err) } } - defer func(pod *v1.Pod) { - glog.V(2).Infof("deleting recycler pod %s/%s", pod.Namespace, pod.Name) - if err := recyclerClient.DeletePod(pod.Name, pod.Namespace); err != nil { - glog.Errorf("failed to delete recycler pod %s/%s: %v", pod.Namespace, pod.Name, err) - } - }(pod) + err = waitForPod(pod, recyclerClient, podCh) + + // In all cases delete the recycler pod and log its result. + glog.V(2).Infof("deleting recycler pod %s/%s", pod.Namespace, pod.Name) + deleteErr := recyclerClient.DeletePod(pod.Name, pod.Namespace) + if deleteErr != nil { + glog.Errorf("failed to delete recycler pod %s/%s: %v", pod.Namespace, pod.Name, err) + } + + // Returning recycler error is preferred, the pod will be deleted again on + // the next retry. + if err != nil { + return fmt.Errorf("failed to recycle volume: %s", err) + } - // Now only the old pod or the new pod run. Watch it until it finishes - // and send all events on the pod to the PV + // Recycle succeeded but we failed to delete the recycler pod. Report it, + // the controller will re-try recycling the PV again shortly. + if deleteErr != nil { + return fmt.Errorf("failed to delete recycler pod: %s", deleteErr) + } + + return nil +} + +// waitForPod watches the pod it until it finishes and send all events on the +// pod to the PV. +func waitForPod(pod *v1.Pod, recyclerClient recyclerClient, podCh <-chan watch.Event) error { for { event, ok := <-podCh if !ok { @@ -164,15 +187,15 @@ type realRecyclerClient struct { } func (c *realRecyclerClient) CreatePod(pod *v1.Pod) (*v1.Pod, error) { - return c.client.Core().Pods(pod.Namespace).Create(pod) + return c.client.CoreV1().Pods(pod.Namespace).Create(pod) } func (c *realRecyclerClient) GetPod(name, namespace string) (*v1.Pod, error) { - return c.client.Core().Pods(namespace).Get(name, metav1.GetOptions{}) + return c.client.CoreV1().Pods(namespace).Get(name, metav1.GetOptions{}) } func (c *realRecyclerClient) DeletePod(name, namespace string) error { - return c.client.Core().Pods(namespace).Delete(name, nil) + return c.client.CoreV1().Pods(namespace).Delete(name, nil) } func (c *realRecyclerClient) Event(eventtype, message string) { @@ -189,13 +212,13 @@ func (c *realRecyclerClient) WatchPod(name, namespace string, stopChannel chan s Watch: true, } - podWatch, err := c.client.Core().Pods(namespace).Watch(options) + podWatch, err := c.client.CoreV1().Pods(namespace).Watch(options) if err != nil { return nil, err } eventSelector, _ := fields.ParseSelector("involvedObject.name=" + name) - eventWatch, err := c.client.Core().Events(namespace).Watch(metav1.ListOptions{ + eventWatch, err := c.client.CoreV1().Events(namespace).Watch(metav1.ListOptions{ FieldSelector: eventSelector.String(), Watch: true, }) @@ -400,13 +423,6 @@ func getPVCNameHashAndIndexOffset(pvcName string) (hash uint32, index uint32) { func UnmountViaEmptyDir(dir string, host VolumeHost, volName string, volSpec Spec, podUID types.UID) error { glog.V(3).Infof("Tearing down volume %v for pod %v at %v", volName, podUID, dir) - if pathExists, pathErr := volutil.PathExists(dir); pathErr != nil { - return fmt.Errorf("Error checking if path exists: %v", pathErr) - } else if !pathExists { - glog.Warningf("Warning: Unmount skipped because path does not exist: %v", dir) - return nil - } - // Wrap EmptyDir, let it do the teardown. wrapped, err := host.NewWrapperUnmounter(volName, volSpec, podUID) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/util/BUILD index 53c2f8b37..5cff2bf55 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/BUILD @@ -29,8 +29,8 @@ go_library( }), importpath = "k8s.io/kubernetes/pkg/volume/util", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1/helper:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/kubelet/apis:go_default_library", "//pkg/util/mount:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -68,8 +68,8 @@ go_test( importpath = "k8s.io/kubernetes/pkg/volume/util", library = ":go_default_library", deps = [ - "//pkg/api/install:go_default_library", - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/install:go_default_library", + "//pkg/apis/core/v1/helper: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/util/sets:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/util/OWNERS index abea2824a..7a41ec511 100755 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/OWNERS @@ -1,11 +1,7 @@ approvers: - saad-ali reviewers: -- thockin -- smarterclayton -- pmorie - saad-ali -- justinsb - rootfs - jingxu97 - screeley44 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/metrics.go b/vendor/k8s.io/kubernetes/pkg/volume/util/metrics.go index 087bbfff4..ab2d76286 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/metrics.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/metrics.go @@ -24,8 +24,9 @@ import ( var storageOperationMetric = prometheus.NewHistogramVec( prometheus.HistogramOpts{ - Name: "storage_operation_duration_seconds", - Help: "Storage operation duration", + Name: "storage_operation_duration_seconds", + Help: "Storage operation duration", + Buckets: []float64{.1, .25, .5, 1, 2.5, 5, 10, 15, 25, 50}, }, []string{"volume_plugin", "operation_name"}, ) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go index e7e289b93..b09e09ed2 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go @@ -664,7 +664,7 @@ func (og *operationGenerator) GenerateVerifyControllerAttachedVolumeFunc( } // Fetch current node object - node, fetchErr := og.kubeClient.Core().Nodes().Get(string(nodeName), metav1.GetOptions{}) + node, fetchErr := og.kubeClient.CoreV1().Nodes().Get(string(nodeName), metav1.GetOptions{}) if fetchErr != nil { // On failure, return error. Caller will log and retry. return volumeToMount.GenerateErrorDetailed("VerifyControllerAttachedVolume failed fetching node from API server", fetchErr) @@ -698,7 +698,7 @@ func (og *operationGenerator) GenerateVerifyControllerAttachedVolumeFunc( func (og *operationGenerator) verifyVolumeIsSafeToDetach( volumeToDetach AttachedVolume) error { // Fetch current node object - node, fetchErr := og.kubeClient.Core().Nodes().Get(string(volumeToDetach.NodeName), metav1.GetOptions{}) + node, fetchErr := og.kubeClient.CoreV1().Nodes().Get(string(volumeToDetach.NodeName), metav1.GetOptions{}) if fetchErr != nil { if errors.IsNotFound(fetchErr) { glog.Warningf(volumeToDetach.GenerateMsgDetailed("Node not found on API server. DetachVolume will skip safe to detach check", "")) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/util.go b/vendor/k8s.io/kubernetes/pkg/volume/util/util.go index 976ad9689..2bd4fc89c 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/util.go @@ -32,8 +32,8 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + "k8s.io/kubernetes/pkg/api/legacyscheme" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/pkg/util/mount" ) @@ -147,7 +147,7 @@ func GetSecretForPod(pod *v1.Pod, secretName string, kubeClient clientset.Interf if kubeClient == nil { return secret, fmt.Errorf("Cannot get kube client") } - secrets, err := kubeClient.Core().Secrets(pod.Namespace).Get(secretName, metav1.GetOptions{}) + secrets, err := kubeClient.CoreV1().Secrets(pod.Namespace).Get(secretName, metav1.GetOptions{}) if err != nil { return secret, err } @@ -163,7 +163,7 @@ func GetSecretForPV(secretNamespace, secretName, volumePluginName string, kubeCl if kubeClient == nil { return secret, fmt.Errorf("Cannot get kube client") } - secrets, err := kubeClient.Core().Secrets(secretNamespace).Get(secretName, metav1.GetOptions{}) + secrets, err := kubeClient.CoreV1().Secrets(secretNamespace).Get(secretName, metav1.GetOptions{}) if err != nil { return secret, err } @@ -233,7 +233,7 @@ func LoadPodFromFile(filePath string) (*v1.Pod, error) { } pod := &v1.Pod{} - codec := api.Codecs.LegacyCodec(api.Registry.GroupOrDie(v1.GroupName).GroupVersion) + codec := legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion) if err := runtime.DecodeInto(codec, podDef, pod); err != nil { return nil, fmt.Errorf("failed decoding file: %v", err) } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/util_test.go b/vendor/k8s.io/kubernetes/pkg/volume/util/util_test.go index 480e57627..b11be33ee 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/util_test.go @@ -26,8 +26,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" // util.go uses api.Codecs.LegacyCodec so import this package to do some // resource initialization. - _ "k8s.io/kubernetes/pkg/api/install" - "k8s.io/kubernetes/pkg/api/v1/helper" + _ "k8s.io/kubernetes/pkg/apis/core/install" + "k8s.io/kubernetes/pkg/apis/core/v1/helper" ) var nodeLabels map[string]string = map[string]string{ diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util_test.go b/vendor/k8s.io/kubernetes/pkg/volume/util_test.go index 6eeb00a75..c902fde2a 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util_test.go @@ -29,7 +29,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/watch" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/util/slice" ) @@ -128,7 +128,7 @@ func TestRecyclerPod(t *testing.T) { {v1.EventTypeWarning, "Unable to mount volumes for pod \"recycler-for-podRecyclerFailure_default(3c9809e5-347c-11e6-a79b-3c970e965218)\": timeout expired waiting for volumes to attach/mount"}, {v1.EventTypeWarning, "Error syncing pod, skipping: timeout expired waiting for volumes to attach/mount for pod \"default\"/\"recycler-for-podRecyclerFailure\". list of unattached/unmounted"}, }, - expectedError: "Pod was active on the node longer than specified deadline", + expectedError: "failed to recycle volume: Pod was active on the node longer than specified deadline", }, { // Recycler pod gets deleted @@ -143,32 +143,15 @@ func TestRecyclerPod(t *testing.T) { expectedEvents: []mockEvent{ {v1.EventTypeNormal, "Successfully assigned recycler-for-podRecyclerDeleted to 127.0.0.1"}, }, - expectedError: "recycler pod was deleted", + expectedError: "failed to recycle volume: recycler pod was deleted", }, { // Another recycler pod is already running - name: "RecyclerRunning", - existingPod: newPod("podOldRecycler", v1.PodRunning, ""), - createPod: newPod("podNewRecycler", v1.PodFailed, "mock message"), - eventSequence: []watch.Event{ - // Old pod succeeds - newPodEvent(watch.Modified, "podOldRecycler", v1.PodSucceeded, ""), - }, - // No error = old pod succeeded. If the new pod was used, there - // would be error with "mock message". - expectedError: "", - }, - { - // Another recycler pod is already running and fails - name: "FailedRecyclerRunning", - existingPod: newPod("podOldRecycler", v1.PodRunning, ""), - createPod: newPod("podNewRecycler", v1.PodFailed, "mock message"), - eventSequence: []watch.Event{ - // Old pod failure - newPodEvent(watch.Modified, "podOldRecycler", v1.PodFailed, "Pod was active on the node longer than specified deadline"), - }, - // If the new pod was used, there would be error with "mock message". - expectedError: "Pod was active on the node longer than specified deadline", + name: "RecyclerRunning", + existingPod: newPod("podOldRecycler", v1.PodRunning, ""), + createPod: newPod("podNewRecycler", v1.PodFailed, "mock message"), + eventSequence: []watch.Event{}, + expectedError: "old recycler pod found, will retry later", }, } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/validation/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/validation/BUILD index fcda122d2..a3cc585f7 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/validation/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/validation/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/pkg/volume/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], @@ -23,7 +23,7 @@ go_library( srcs = ["pv_validation.go"], importpath = "k8s.io/kubernetes/pkg/volume/validation", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/validation/pv_validation.go b/vendor/k8s.io/kubernetes/pkg/volume/validation/pv_validation.go index 45db2f5e5..23fa51fda 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/validation/pv_validation.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/validation/pv_validation.go @@ -22,7 +22,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // ValidatePersistentVolume validates PV object for plugin specific validation diff --git a/vendor/k8s.io/kubernetes/pkg/volume/validation/pv_validation_test.go b/vendor/k8s.io/kubernetes/pkg/volume/validation/pv_validation_test.go index d0a8f1c3e..d7601185b 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/validation/pv_validation_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/validation/pv_validation_test.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestValidatePersistentVolumes(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/volume.go b/vendor/k8s.io/kubernetes/pkg/volume/volume.go index 78cb21a32..23e395299 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/volume.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/volume.go @@ -195,8 +195,10 @@ type BulkVolumeVerifier interface { // Detacher can detach a volume from a node. type Detacher interface { - // Detach the given device from the node with the given Name. - Detach(deviceName string, nodeName types.NodeName) error + // Detach the given volume from the node with the given Name. + // volumeName is name of the volume as returned from plugin's + // GetVolumeName(). + Detach(volumeName string, nodeName types.NodeName) error // UnmountDevice unmounts the global mount of the disk. This // should only be called once all bind mounts have been diff --git a/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/OWNERS index b960f96b6..5f7fd3d2e 100755 --- a/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/OWNERS @@ -7,11 +7,6 @@ approvers: reviewers: - abithap - abrarshivani -- thockin -- smarterclayton -- brendandburns -- derekwaynecarr -- pmorie - saad-ali - justinsb - jsafrane diff --git a/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/attacher.go b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/attacher.go index aeffd9610..5b1879def 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/attacher.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/attacher.go @@ -251,9 +251,9 @@ func (plugin *vsphereVolumePlugin) NewDetacher() (volume.Detacher, error) { } // Detach the given device from the given node. -func (detacher *vsphereVMDKDetacher) Detach(deviceMountPath string, nodeName types.NodeName) error { +func (detacher *vsphereVMDKDetacher) Detach(volumeName string, nodeName types.NodeName) error { - volPath := getVolPathfromDeviceMountPath(deviceMountPath) + volPath := getVolPathfromVolumeName(volumeName) attached, err := detacher.vsphereVolumes.DiskIsAttached(volPath, nodeName) if err != nil { // Log error and continue with detach diff --git a/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/vsphere_volume_test.go b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/vsphere_volume_test.go index 282cb23d6..34fec92d6 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/vsphere_volume_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/vsphere_volume_test.go @@ -144,7 +144,7 @@ func TestPlugin(t *testing.T) { if _, err := os.Stat(path); err == nil { t.Errorf("TearDown() failed, volume path still exists: %s", path) } else if !os.IsNotExist(err) { - t.Errorf("SetUp() failed: %v", err) + t.Errorf("TearDown() failed: %v", err) } // Test Provisioner diff --git a/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/vsphere_volume_util.go b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/vsphere_volume_util.go index 62ce1f762..0f5d335ec 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/vsphere_volume_util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/vsphere_volume_util.go @@ -170,7 +170,7 @@ func (util *VsphereDiskUtil) DeleteVolume(vd *vsphereVolumeDeleter) error { return nil } -func getVolPathfromDeviceMountPath(deviceMountPath string) string { +func getVolPathfromVolumeName(deviceMountPath string) string { // Assumption: No file or folder is named starting with '[' in datastore volPath := deviceMountPath[strings.LastIndex(deviceMountPath, "["):] // space between datastore and vmdk name in volumePath is encoded as '\040' when returned by GetMountRefs(). diff --git a/vendor/k8s.io/kubernetes/plugin/BUILD b/vendor/k8s.io/kubernetes/plugin/BUILD index 106463906..843efb9c3 100644 --- a/vendor/k8s.io/kubernetes/plugin/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/BUILD @@ -37,7 +37,6 @@ filegroup( "//plugin/pkg/admission/securitycontext/scdeny:all-srcs", "//plugin/pkg/admission/serviceaccount:all-srcs", "//plugin/pkg/admission/storageclass/setdefault:all-srcs", - "//plugin/pkg/admission/webhook:all-srcs", "//plugin/pkg/auth:all-srcs", "//plugin/pkg/scheduler:all-srcs", ], diff --git a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/BUILD b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/BUILD index cbe26076a..1e51fd6a9 100644 --- a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/BUILD @@ -25,10 +25,9 @@ go_library( srcs = ["scheduler.go"], importpath = "k8s.io/kubernetes/plugin/cmd/kube-scheduler", deps = [ - "//pkg/version/verflag:go_default_library", + "//pkg/client/metrics/prometheus:go_default_library", + "//pkg/version/prometheus:go_default_library", "//plugin/cmd/kube-scheduler/app:go_default_library", - "//plugin/cmd/kube-scheduler/app/options:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/logs:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/BUILD b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/BUILD index d0d3a7477..5edfadd02 100644 --- a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/BUILD @@ -3,23 +3,24 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", - "go_test", ) go_library( name = "go_default_library", - srcs = [ - "configurator.go", - "server.go", - ], + srcs = ["server.go"], importpath = "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/componentconfig:go_default_library", + "//pkg/apis/componentconfig/v1alpha1:go_default_library", + "//pkg/client/leaderelectionconfig:go_default_library", "//pkg/controller:go_default_library", "//pkg/features:go_default_library", + "//pkg/kubectl/cmd/util:go_default_library", + "//pkg/master/ports:go_default_library", "//pkg/util/configz:go_default_library", "//pkg/version:go_default_library", - "//plugin/cmd/kube-scheduler/app/options:go_default_library", + "//pkg/version/verflag:go_default_library", "//plugin/pkg/scheduler:go_default_library", "//plugin/pkg/scheduler/algorithmprovider:go_default_library", "//plugin/pkg/scheduler/api:go_default_library", @@ -32,17 +33,18 @@ go_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/serializer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", - "//vendor/k8s.io/client-go/informers/apps/v1beta1:go_default_library", "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", - "//vendor/k8s.io/client-go/informers/extensions/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", "//vendor/k8s.io/client-go/tools/leaderelection:go_default_library", "//vendor/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", @@ -58,16 +60,6 @@ filegroup( filegroup( name = "all-srcs", - srcs = [ - ":package-srcs", - "//plugin/cmd/kube-scheduler/app/options:all-srcs", - ], + srcs = [":package-srcs"], tags = ["automanaged"], ) - -go_test( - name = "go_default_test", - srcs = ["configurator_test.go"], - importpath = "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app", - library = ":go_default_library", -) diff --git a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/configurator.go b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/configurator.go deleted file mode 100644 index 9bb87d43e..000000000 --- a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/configurator.go +++ /dev/null @@ -1,193 +0,0 @@ -/* -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 app - -import ( - "fmt" - "io/ioutil" - "os" - - appsinformers "k8s.io/client-go/informers/apps/v1beta1" - coreinformers "k8s.io/client-go/informers/core/v1" - extensionsinformers "k8s.io/client-go/informers/extensions/v1beta1" - "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - utilfeature "k8s.io/apiserver/pkg/util/feature" - v1core "k8s.io/client-go/kubernetes/typed/core/v1" - - clientset "k8s.io/client-go/kubernetes" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" - - "k8s.io/api/core/v1" - - "k8s.io/kubernetes/pkg/features" - "k8s.io/kubernetes/plugin/pkg/scheduler" - _ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider" - schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" - latestschedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api/latest" - "k8s.io/kubernetes/plugin/pkg/scheduler/factory" - - "github.com/golang/glog" -) - -func createRecorder(kubecli *clientset.Clientset, s *options.SchedulerServer) record.EventRecorder { - eventBroadcaster := record.NewBroadcaster() - eventBroadcaster.StartLogging(glog.Infof) - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(kubecli.CoreV1().RESTClient()).Events("")}) - return eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: s.SchedulerName}) -} - -func createClients(s *options.SchedulerServer) (*clientset.Clientset, *clientset.Clientset, error) { - kubeconfig, err := clientcmd.BuildConfigFromFlags(s.Master, s.Kubeconfig) - if err != nil { - return nil, nil, fmt.Errorf("unable to build config from flags: %v", err) - } - - kubeconfig.ContentType = s.ContentType - // Override kubeconfig qps/burst settings from flags - kubeconfig.QPS = s.KubeAPIQPS - kubeconfig.Burst = int(s.KubeAPIBurst) - kubeClient, err := clientset.NewForConfig(restclient.AddUserAgent(kubeconfig, "scheduler")) - if err != nil { - glog.Fatalf("Invalid API configuration: %v", err) - } - leaderElectionClient := clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "leader-election")) - return kubeClient, leaderElectionClient, nil -} - -// CreateScheduler encapsulates the entire creation of a runnable scheduler. -func CreateScheduler( - s *options.SchedulerServer, - kubecli clientset.Interface, - nodeInformer coreinformers.NodeInformer, - podInformer coreinformers.PodInformer, - pvInformer coreinformers.PersistentVolumeInformer, - pvcInformer coreinformers.PersistentVolumeClaimInformer, - replicationControllerInformer coreinformers.ReplicationControllerInformer, - replicaSetInformer extensionsinformers.ReplicaSetInformer, - statefulSetInformer appsinformers.StatefulSetInformer, - serviceInformer coreinformers.ServiceInformer, - recorder record.EventRecorder, -) (*scheduler.Scheduler, error) { - configurator := factory.NewConfigFactory( - s.SchedulerName, - kubecli, - nodeInformer, - podInformer, - pvInformer, - pvcInformer, - replicationControllerInformer, - replicaSetInformer, - statefulSetInformer, - serviceInformer, - s.HardPodAffinitySymmetricWeight, - utilfeature.DefaultFeatureGate.Enabled(features.EnableEquivalenceClassCache), - ) - - // Rebuild the configurator with a default Create(...) method. - configurator = &schedulerConfigurator{ - configurator, - s.PolicyConfigFile, - s.AlgorithmProvider, - s.PolicyConfigMapName, - s.PolicyConfigMapNamespace, - s.UseLegacyPolicyConfig, - } - - return scheduler.NewFromConfigurator(configurator, func(cfg *scheduler.Config) { - cfg.Recorder = recorder - }) -} - -// schedulerConfigurator is an interface wrapper that provides a way to create -// a scheduler from a user provided config file or ConfigMap object. -type schedulerConfigurator struct { - scheduler.Configurator - policyFile string - algorithmProvider string - policyConfigMap string - policyConfigMapNamespace string - useLegacyPolicyConfig bool -} - -// getSchedulerPolicyConfig finds and decodes scheduler's policy config. If no -// such policy is found, it returns nil, nil. -func (sc schedulerConfigurator) getSchedulerPolicyConfig() (*schedulerapi.Policy, error) { - var configData []byte - var policyConfigMapFound bool - var policy schedulerapi.Policy - - // If not in legacy mode, try to find policy ConfigMap. - if !sc.useLegacyPolicyConfig && len(sc.policyConfigMap) != 0 { - namespace := sc.policyConfigMapNamespace - policyConfigMap, err := sc.GetClient().CoreV1().ConfigMaps(namespace).Get(sc.policyConfigMap, metav1.GetOptions{}) - if err != nil { - return nil, fmt.Errorf("Error getting scheduler policy ConfigMap: %v.", err) - } - if policyConfigMap != nil { - var configString string - configString, policyConfigMapFound = policyConfigMap.Data[options.SchedulerPolicyConfigMapKey] - if !policyConfigMapFound { - return nil, fmt.Errorf("No element with key = '%v' is found in the ConfigMap 'Data'.", options.SchedulerPolicyConfigMapKey) - } - glog.V(5).Infof("Scheduler policy ConfigMap: %v", configString) - configData = []byte(configString) - } - } - - // If we are in legacy mode or ConfigMap name is empty, try to use policy - // config file. - if !policyConfigMapFound { - if _, err := os.Stat(sc.policyFile); err != nil { - // No config file is found. - return nil, nil - } - var err error - configData, err = ioutil.ReadFile(sc.policyFile) - if err != nil { - return nil, fmt.Errorf("unable to read policy config: %v", err) - } - } - - if err := runtime.DecodeInto(latestschedulerapi.Codec, configData, &policy); err != nil { - return nil, fmt.Errorf("invalid configuration: %v", err) - } - return &policy, nil -} - -// Create implements the interface for the Configurator, hence it is exported -// even though the struct is not. -func (sc schedulerConfigurator) Create() (*scheduler.Config, error) { - policy, err := sc.getSchedulerPolicyConfig() - if err != nil { - return nil, err - } - // If no policy is found, create scheduler from algorithm provider. - if policy == nil { - if sc.Configurator != nil { - return sc.Configurator.CreateFromProvider(sc.algorithmProvider) - } - return nil, fmt.Errorf("Configurator was nil") - } - - return sc.CreateFromConfig(*policy) -} diff --git a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/BUILD b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/BUILD deleted file mode 100644 index bef3f769b..000000000 --- a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/BUILD +++ /dev/null @@ -1,51 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["options.go"], - importpath = "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options", - deps = [ - "//pkg/api:go_default_library", - "//pkg/apis/componentconfig:go_default_library", - "//pkg/apis/componentconfig/install:go_default_library", - "//pkg/apis/componentconfig/v1alpha1:go_default_library", - "//pkg/client/leaderelectionconfig:go_default_library", - "//pkg/features:go_default_library", - "//pkg/kubelet/apis:go_default_library", - "//plugin/pkg/scheduler/factory:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -go_test( - name = "go_default_test", - srcs = ["options_test.go"], - importpath = "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options", - library = ":go_default_library", - deps = [ - "//pkg/apis/componentconfig:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - ], -) diff --git a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/options.go b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/options.go deleted file mode 100644 index 4cacad8f5..000000000 --- a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/options.go +++ /dev/null @@ -1,96 +0,0 @@ -/* -Copyright 2014 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 options provides the scheduler flags -package options - -import ( - "fmt" - - utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/apis/componentconfig" - "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" - "k8s.io/kubernetes/pkg/client/leaderelectionconfig" - kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" - "k8s.io/kubernetes/plugin/pkg/scheduler/factory" - - // add the kubernetes feature gates - _ "k8s.io/kubernetes/pkg/features" - // install the componentconfig api so we get its defaulting and conversion functions - _ "k8s.io/kubernetes/pkg/apis/componentconfig/install" - - "github.com/spf13/pflag" -) - -// SchedulerPolicyConfigMapKey defines the key of the element in the -// scheduler's policy ConfigMap that contains scheduler's policy config. -const SchedulerPolicyConfigMapKey string = "policy.cfg" - -// SchedulerServer has all the context and params needed to run a Scheduler -type SchedulerServer struct { - componentconfig.KubeSchedulerConfiguration - // Master is the address of the Kubernetes API server (overrides any - // value in kubeconfig). - Master string - // Kubeconfig is Path to kubeconfig file with authorization and master - // location information. - Kubeconfig string - // Dynamic configuration for scheduler features. -} - -// NewSchedulerServer creates a new SchedulerServer with default parameters -func NewSchedulerServer() *SchedulerServer { - versioned := &v1alpha1.KubeSchedulerConfiguration{} - api.Scheme.Default(versioned) - cfg := componentconfig.KubeSchedulerConfiguration{} - api.Scheme.Convert(versioned, &cfg, nil) - cfg.LeaderElection.LeaderElect = true - s := SchedulerServer{ - KubeSchedulerConfiguration: cfg, - } - return &s -} - -// AddFlags adds flags for a specific SchedulerServer to the specified FlagSet -func (s *SchedulerServer) AddFlags(fs *pflag.FlagSet) { - fs.Int32Var(&s.Port, "port", s.Port, "The port that the scheduler's http service runs on") - fs.StringVar(&s.Address, "address", s.Address, "The IP address to serve on (set to 0.0.0.0 for all interfaces)") - fs.StringVar(&s.AlgorithmProvider, "algorithm-provider", s.AlgorithmProvider, "The scheduling algorithm provider to use, one of: "+factory.ListAlgorithmProviders()) - fs.StringVar(&s.PolicyConfigFile, "policy-config-file", s.PolicyConfigFile, "File with scheduler policy configuration. This file is used if policy ConfigMap is not provided or --use-legacy-policy-config==true") - usage := fmt.Sprintf("Name of the ConfigMap object that contains scheduler's policy configuration. It must exist in the system namespace before scheduler initialization if --use-legacy-policy-config==false. The config must be provided as the value of an element in 'Data' map with the key='%v'", SchedulerPolicyConfigMapKey) - fs.StringVar(&s.PolicyConfigMapName, "policy-configmap", s.PolicyConfigMapName, usage) - fs.StringVar(&s.PolicyConfigMapNamespace, "policy-configmap-namespace", s.PolicyConfigMapNamespace, "The namespace where policy ConfigMap is located. The system namespace will be used if this is not provided or is empty.") - fs.BoolVar(&s.UseLegacyPolicyConfig, "use-legacy-policy-config", false, "When set to true, scheduler will ignore policy ConfigMap and uses policy config file") - fs.BoolVar(&s.EnableProfiling, "profiling", true, "Enable profiling via web interface host:port/debug/pprof/") - fs.BoolVar(&s.EnableContentionProfiling, "contention-profiling", false, "Enable lock contention profiling, if profiling is enabled") - fs.StringVar(&s.Master, "master", s.Master, "The address of the Kubernetes API server (overrides any value in kubeconfig)") - fs.StringVar(&s.Kubeconfig, "kubeconfig", s.Kubeconfig, "Path to kubeconfig file with authorization and master location information.") - fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "Content type of requests sent to apiserver.") - fs.Float32Var(&s.KubeAPIQPS, "kube-api-qps", s.KubeAPIQPS, "QPS to use while talking with kubernetes apiserver") - fs.Int32Var(&s.KubeAPIBurst, "kube-api-burst", s.KubeAPIBurst, "Burst to use while talking with kubernetes apiserver") - fs.StringVar(&s.SchedulerName, "scheduler-name", s.SchedulerName, "Name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's \"spec.SchedulerName\".") - fs.StringVar(&s.LockObjectNamespace, "lock-object-namespace", s.LockObjectNamespace, "Define the namespace of the lock object.") - fs.StringVar(&s.LockObjectName, "lock-object-name", s.LockObjectName, "Define the name of the lock object.") - fs.IntVar(&s.HardPodAffinitySymmetricWeight, "hard-pod-affinity-symmetric-weight", api.DefaultHardPodAffinitySymmetricWeight, - "RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule corresponding "+ - "to every RequiredDuringScheduling affinity rule. --hard-pod-affinity-symmetric-weight represents the weight of implicit PreferredDuringScheduling affinity rule.") - fs.MarkDeprecated("hard-pod-affinity-symmetric-weight", "This option was moved to the policy configuration file") - fs.StringVar(&s.FailureDomains, "failure-domains", kubeletapis.DefaultFailureDomains, "Indicate the \"all topologies\" set for an empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity.") - fs.MarkDeprecated("failure-domains", "Doesn't have any effect. Will be removed in future version.") - leaderelectionconfig.BindFlags(&s.LeaderElection, fs) - utilfeature.DefaultFeatureGate.AddFlag(fs) -} diff --git a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/options_test.go b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/options_test.go deleted file mode 100644 index bd6172ccb..000000000 --- a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options/options_test.go +++ /dev/null @@ -1,103 +0,0 @@ -/* -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 options - -import ( - "reflect" - "testing" - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/kubernetes/pkg/apis/componentconfig" - - "github.com/spf13/pflag" -) - -func TestAddFlags(t *testing.T) { - f := pflag.NewFlagSet("addflagstest", pflag.ContinueOnError) - s := NewSchedulerServer() - s.AddFlags(f) - - args := []string{ - "--address=192.168.4.20", - "--algorithm-provider=FooProvider", - "--contention-profiling=true", - "--failure-domains=kubernetes.io/hostname", - "--hard-pod-affinity-symmetric-weight=0", - "--kube-api-burst=80", - "--kube-api-content-type=application/vnd.kubernetes.protobuf", - "--kube-api-qps=40.0", - "--kubeconfig=/foo/bar/kubeconfig", - "--leader-elect=true", - "--leader-elect-lease-duration=20s", - "--leader-elect-renew-deadline=15s", - "--leader-elect-resource-lock=endpoints", - "--leader-elect-retry-period=3s", - "--lock-object-name=test-lock-object-name", - "--lock-object-namespace=test-lock-object-ns", - "--master=192.168.4.20", - "--policy-config-file=/foo/bar/policyconfig", - "--policy-configmap=test-policy-configmap", - "--policy-configmap-namespace=test-policy-configmap-ns", - "--port=10000", - "--profiling=false", - "--scheduler-name=test-scheduler-name", - "--use-legacy-policy-config=true", - } - - f.Parse(args) - - expected := &SchedulerServer{ - KubeSchedulerConfiguration: componentconfig.KubeSchedulerConfiguration{ - Port: 10000, - Address: "192.168.4.20", - AlgorithmProvider: "FooProvider", - PolicyConfigFile: "/foo/bar/policyconfig", - EnableContentionProfiling: true, - EnableProfiling: false, - - ContentType: "application/vnd.kubernetes.protobuf", - KubeAPIQPS: 40.0, - KubeAPIBurst: 80, - SchedulerName: "test-scheduler-name", - LeaderElection: componentconfig.LeaderElectionConfiguration{ - ResourceLock: "endpoints", - LeaderElect: true, - LeaseDuration: metav1.Duration{Duration: 20 * time.Second}, - RenewDeadline: metav1.Duration{Duration: 15 * time.Second}, - RetryPeriod: metav1.Duration{Duration: 3 * time.Second}, - }, - - LockObjectNamespace: "test-lock-object-ns", - LockObjectName: "test-lock-object-name", - - PolicyConfigMapName: "test-policy-configmap", - PolicyConfigMapNamespace: "test-policy-configmap-ns", - UseLegacyPolicyConfig: true, - - HardPodAffinitySymmetricWeight: 0, - FailureDomains: "kubernetes.io/hostname", - }, - Kubeconfig: "/foo/bar/kubeconfig", - Master: "192.168.4.20", - } - - if !reflect.DeepEqual(expected, s) { - t.Errorf("Got different run options than expected.\nDifference detected on:\n%s", diff.ObjectReflectDiff(expected, s)) - } -} diff --git a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/server.go b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/server.go index 8c4ad1834..d7f7abe2c 100644 --- a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/server.go +++ b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/server.go @@ -18,37 +18,307 @@ limitations under the License. package app import ( + "errors" "fmt" + "io/ioutil" "net" "net/http" "net/http/pprof" "os" + "reflect" goruntime "runtime" "strconv" + "time" - "k8s.io/apiserver/pkg/server/healthz" - + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/server/healthz" + utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/informers" + coreinformers "k8s.io/client-go/informers/core/v1" + clientset "k8s.io/client-go/kubernetes" + v1core "k8s.io/client-go/kubernetes/typed/core/v1" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/tools/leaderelection" "k8s.io/client-go/tools/leaderelection/resourcelock" + "k8s.io/client-go/tools/record" + "k8s.io/kubernetes/pkg/api/legacyscheme" + "k8s.io/kubernetes/pkg/apis/componentconfig" + componentconfigv1alpha1 "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" + "k8s.io/kubernetes/pkg/client/leaderelectionconfig" "k8s.io/kubernetes/pkg/controller" + "k8s.io/kubernetes/pkg/features" + cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + "k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/util/configz" "k8s.io/kubernetes/pkg/version" - "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options" + "k8s.io/kubernetes/pkg/version/verflag" + "k8s.io/kubernetes/plugin/pkg/scheduler" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider" + schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" + latestschedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api/latest" + "k8s.io/kubernetes/plugin/pkg/scheduler/factory" "github.com/golang/glog" - "github.com/prometheus/client_golang/prometheus" "github.com/spf13/cobra" "github.com/spf13/pflag" + + "github.com/prometheus/client_golang/prometheus" ) +// SchedulerServer has all the context and params needed to run a Scheduler +type Options struct { + // ConfigFile is the location of the scheduler server's configuration file. + ConfigFile string + + // config is the scheduler server's configuration object. + config *componentconfig.KubeSchedulerConfiguration + + scheme *runtime.Scheme + codecs serializer.CodecFactory + + // The fields below here are placeholders for flags that can't be directly + // mapped into componentconfig.KubeSchedulerConfiguration. + // + // TODO remove these fields once the deprecated flags are removed. + + // master is the address of the Kubernetes API server (overrides any + // value in kubeconfig). + master string + healthzAddress string + healthzPort int32 + policyConfigFile string + policyConfigMapName string + policyConfigMapNamespace string + useLegacyPolicyConfig bool + algorithmProvider string +} + +// AddFlags adds flags for a specific SchedulerServer to the specified FlagSet +func AddFlags(options *Options, fs *pflag.FlagSet) { + fs.StringVar(&options.ConfigFile, "config", options.ConfigFile, "The path to the configuration file.") + + // All flags below here are deprecated and will eventually be removed. + + fs.Int32Var(&options.healthzPort, "port", ports.SchedulerPort, "The port that the scheduler's http service runs on") + fs.StringVar(&options.healthzAddress, "address", options.healthzAddress, "The IP address to serve on (set to 0.0.0.0 for all interfaces)") + fs.StringVar(&options.algorithmProvider, "algorithm-provider", options.algorithmProvider, "The scheduling algorithm provider to use, one of: "+factory.ListAlgorithmProviders()) + fs.StringVar(&options.policyConfigFile, "policy-config-file", options.policyConfigFile, "File with scheduler policy configuration. This file is used if policy ConfigMap is not provided or --use-legacy-policy-config==true") + usage := fmt.Sprintf("Name of the ConfigMap object that contains scheduler's policy configuration. It must exist in the system namespace before scheduler initialization if --use-legacy-policy-config==false. The config must be provided as the value of an element in 'Data' map with the key='%v'", componentconfig.SchedulerPolicyConfigMapKey) + fs.StringVar(&options.policyConfigMapName, "policy-configmap", options.policyConfigMapName, usage) + fs.StringVar(&options.policyConfigMapNamespace, "policy-configmap-namespace", options.policyConfigMapNamespace, "The namespace where policy ConfigMap is located. The system namespace will be used if this is not provided or is empty.") + fs.BoolVar(&options.useLegacyPolicyConfig, "use-legacy-policy-config", false, "When set to true, scheduler will ignore policy ConfigMap and uses policy config file") + fs.BoolVar(&options.config.EnableProfiling, "profiling", options.config.EnableProfiling, "Enable profiling via web interface host:port/debug/pprof/") + fs.BoolVar(&options.config.EnableContentionProfiling, "contention-profiling", options.config.EnableContentionProfiling, "Enable lock contention profiling, if profiling is enabled") + fs.StringVar(&options.master, "master", options.master, "The address of the Kubernetes API server (overrides any value in kubeconfig)") + fs.StringVar(&options.config.ClientConnection.KubeConfigFile, "kubeconfig", options.config.ClientConnection.KubeConfigFile, "Path to kubeconfig file with authorization and master location information.") + fs.StringVar(&options.config.ClientConnection.ContentType, "kube-api-content-type", options.config.ClientConnection.ContentType, "Content type of requests sent to apiserver.") + fs.Float32Var(&options.config.ClientConnection.QPS, "kube-api-qps", options.config.ClientConnection.QPS, "QPS to use while talking with kubernetes apiserver") + fs.Int32Var(&options.config.ClientConnection.Burst, "kube-api-burst", options.config.ClientConnection.Burst, "Burst to use while talking with kubernetes apiserver") + fs.StringVar(&options.config.SchedulerName, "scheduler-name", options.config.SchedulerName, "Name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's \"spec.SchedulerName\".") + fs.StringVar(&options.config.LeaderElection.LockObjectNamespace, "lock-object-namespace", options.config.LeaderElection.LockObjectNamespace, "Define the namespace of the lock object.") + fs.StringVar(&options.config.LeaderElection.LockObjectName, "lock-object-name", options.config.LeaderElection.LockObjectName, "Define the name of the lock object.") + fs.Int32Var(&options.config.HardPodAffinitySymmetricWeight, "hard-pod-affinity-symmetric-weight", options.config.HardPodAffinitySymmetricWeight, + "RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule corresponding "+ + "to every RequiredDuringScheduling affinity rule. --hard-pod-affinity-symmetric-weight represents the weight of implicit PreferredDuringScheduling affinity rule.") + fs.MarkDeprecated("hard-pod-affinity-symmetric-weight", "This option was moved to the policy configuration file") + fs.StringVar(&options.config.FailureDomains, "failure-domains", options.config.FailureDomains, "Indicate the \"all topologies\" set for an empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity.") + fs.MarkDeprecated("failure-domains", "Doesn't have any effect. Will be removed in future version.") + leaderelectionconfig.BindFlags(&options.config.LeaderElection.LeaderElectionConfiguration, fs) + utilfeature.DefaultFeatureGate.AddFlag(fs) +} + +func NewOptions() (*Options, error) { + o := &Options{ + config: new(componentconfig.KubeSchedulerConfiguration), + } + + o.scheme = runtime.NewScheme() + o.codecs = serializer.NewCodecFactory(o.scheme) + + if err := componentconfig.AddToScheme(o.scheme); err != nil { + return nil, err + } + if err := componentconfigv1alpha1.AddToScheme(o.scheme); err != nil { + return nil, err + } + + return o, nil +} + +func (o *Options) Complete() error { + if len(o.ConfigFile) == 0 { + glog.Warning("WARNING: all flags than --config are deprecated. Please begin using a config file ASAP.") + o.applyDeprecatedHealthzAddressToConfig() + o.applyDeprecatedHealthzPortToConfig() + o.applyDeprecatedAlgorithmSourceOptionsToConfig() + } + + return nil +} + +// applyDeprecatedHealthzAddressToConfig sets o.config.HealthzBindAddress and +// o.config.MetricsBindAddress from flags passed on the command line based on +// the following rules: +// +// 1. If --address is empty, leave the config as-is. +// 2. Otherwise, use the value of --address for the address portion of +// o.config.HealthzBindAddress +func (o *Options) applyDeprecatedHealthzAddressToConfig() { + if len(o.healthzAddress) == 0 { + return + } + + _, port, err := net.SplitHostPort(o.config.HealthzBindAddress) + if err != nil { + glog.Fatalf("invalid healthz bind address %q: %v", o.config.HealthzBindAddress, err) + } + o.config.HealthzBindAddress = net.JoinHostPort(o.healthzAddress, port) + o.config.MetricsBindAddress = net.JoinHostPort(o.healthzAddress, port) +} + +// applyDeprecatedHealthzPortToConfig sets o.config.HealthzBindAddress and +// o.config.MetricsBindAddress from flags passed on the command line based on +// the following rules: +// +// 1. If --port is -1, disable the healthz server. +// 2. Otherwise, use the value of --port for the port portion of +// o.config.HealthzBindAddress +func (o *Options) applyDeprecatedHealthzPortToConfig() { + if o.healthzPort == -1 { + o.config.HealthzBindAddress = "" + return + } + + host, _, err := net.SplitHostPort(o.config.HealthzBindAddress) + if err != nil { + glog.Fatalf("invalid healthz bind address %q: %v", o.config.HealthzBindAddress, err) + } + o.config.HealthzBindAddress = net.JoinHostPort(host, strconv.Itoa(int(o.healthzPort))) + o.config.MetricsBindAddress = net.JoinHostPort(host, strconv.Itoa(int(o.healthzPort))) +} + +// applyDeprecatedAlgorithmSourceOptionsToConfig sets o.config.AlgorithmSource from +// flags passed on the command line in the following precedence order: +// +// 1. --use-legacy-policy-config to use a policy file. +// 2. --policy-configmap to use a policy config map value. +// 3. --algorithm-provider to use a named algorithm provider. +func (o *Options) applyDeprecatedAlgorithmSourceOptionsToConfig() { + switch { + case o.useLegacyPolicyConfig: + o.config.AlgorithmSource = componentconfig.SchedulerAlgorithmSource{ + Policy: &componentconfig.SchedulerPolicySource{ + File: &componentconfig.SchedulerPolicyFileSource{ + Path: o.policyConfigFile, + }, + }, + } + case len(o.policyConfigMapName) > 0: + o.config.AlgorithmSource = componentconfig.SchedulerAlgorithmSource{ + Policy: &componentconfig.SchedulerPolicySource{ + ConfigMap: &componentconfig.SchedulerPolicyConfigMapSource{ + Name: o.policyConfigMapName, + Namespace: o.policyConfigMapNamespace, + }, + }, + } + case len(o.algorithmProvider) > 0: + o.config.AlgorithmSource = componentconfig.SchedulerAlgorithmSource{ + Provider: &o.algorithmProvider, + } + } +} + +// Validate validates all the required options. +func (o *Options) Validate(args []string) error { + if len(args) != 0 { + return errors.New("no arguments are supported") + } + + return nil +} + +// loadConfigFromFile loads the contents of file and decodes it as a +// KubeSchedulerConfiguration object. +func (o *Options) loadConfigFromFile(file string) (*componentconfig.KubeSchedulerConfiguration, error) { + data, err := ioutil.ReadFile(file) + if err != nil { + return nil, err + } + + return o.loadConfig(data) +} + +// loadConfig decodes data as a KubeSchedulerConfiguration object. +func (o *Options) loadConfig(data []byte) (*componentconfig.KubeSchedulerConfiguration, error) { + configObj, gvk, err := o.codecs.UniversalDecoder().Decode(data, nil, nil) + if err != nil { + return nil, err + } + config, ok := configObj.(*componentconfig.KubeSchedulerConfiguration) + if !ok { + return nil, fmt.Errorf("got unexpected config type: %v", gvk) + } + return config, nil +} + +func (o *Options) ApplyDefaults(in *componentconfig.KubeSchedulerConfiguration) (*componentconfig.KubeSchedulerConfiguration, error) { + external, err := o.scheme.ConvertToVersion(in, componentconfigv1alpha1.SchemeGroupVersion) + if err != nil { + return nil, err + } + + o.scheme.Default(external) + + internal, err := o.scheme.ConvertToVersion(external, componentconfig.SchemeGroupVersion) + if err != nil { + return nil, err + } + + out := internal.(*componentconfig.KubeSchedulerConfiguration) + + return out, nil +} + +func (o *Options) Run() error { + config := o.config + + if len(o.ConfigFile) > 0 { + if c, err := o.loadConfigFromFile(o.ConfigFile); err != nil { + return err + } else { + config = c + } + } + + // Apply algorithms based on feature gates. + // TODO: make configurable? + algorithmprovider.ApplyFeatureGates() + + server, err := NewSchedulerServer(config, o.master) + if err != nil { + return err + } + + stop := make(chan struct{}) + return server.Run(stop) +} + // NewSchedulerCommand creates a *cobra.Command object with default parameters func NewSchedulerCommand() *cobra.Command { - s := options.NewSchedulerServer() - s.AddFlags(pflag.CommandLine) + opts, err := NewOptions() + if err != nil { + glog.Fatalf("unable to initialize command options: %v", err) + } + cmd := &cobra.Command{ Use: "kube-scheduler", Long: `The Kubernetes scheduler is a policy-rich, topology-aware, @@ -59,132 +329,373 @@ constraints, affinity and anti-affinity specifications, data locality, inter-wor interference, deadlines, and so on. Workload-specific requirements will be exposed through the API as necessary.`, Run: func(cmd *cobra.Command, args []string) { + verflag.PrintAndExitIfRequested() + cmdutil.CheckErr(opts.Complete()) + cmdutil.CheckErr(opts.Validate(args)) + cmdutil.CheckErr(opts.Run()) }, } + opts.config, err = opts.ApplyDefaults(opts.config) + if err != nil { + glog.Fatalf("unable to apply config defaults: %v", err) + } + + flags := cmd.Flags() + AddFlags(opts, flags) + + cmd.MarkFlagFilename("config", "yaml", "yml", "json") + return cmd } -// Run runs the specified SchedulerServer. This should never exit. -func Run(s *options.SchedulerServer) error { - // To help debugging, immediately log version - glog.Infof("Version: %+v", version.Get()) +// SchedulerServer represents all the parameters required to start the +// Kubernetes scheduler server. +type SchedulerServer struct { + SchedulerName string + Client clientset.Interface + InformerFactory informers.SharedInformerFactory + PodInformer coreinformers.PodInformer + AlgorithmSource componentconfig.SchedulerAlgorithmSource + HardPodAffinitySymmetricWeight int32 + EventClient v1core.EventsGetter + Recorder record.EventRecorder + Broadcaster record.EventBroadcaster + // LeaderElection is optional. + LeaderElection *leaderelection.LeaderElectionConfig + // HealthzServer is optional. + HealthzServer *http.Server + // MetricsServer is optional. + MetricsServer *http.Server +} - kubeClient, leaderElectionClient, err := createClients(s) - if err != nil { - return fmt.Errorf("unable to create kube client: %v", err) +// NewSchedulerServer creates a runnable SchedulerServer from configuration. +func NewSchedulerServer(config *componentconfig.KubeSchedulerConfiguration, master string) (*SchedulerServer, error) { + if config == nil { + return nil, errors.New("config is required") } - recorder := createRecorder(kubeClient, s) - - informerFactory := informers.NewSharedInformerFactory(kubeClient, 0) - // cache only non-terminal pods - podInformer := factory.NewPodInformer(kubeClient, 0) - - // Apply algorithms based on feature gates. - algorithmprovider.ApplyFeatureGates() + // Configz registration. + if c, err := configz.New("componentconfig"); err == nil { + c.Set(config) + } else { + return nil, fmt.Errorf("unable to register configz: %s", err) + } - sched, err := CreateScheduler( - s, - kubeClient, - informerFactory.Core().V1().Nodes(), - podInformer, - informerFactory.Core().V1().PersistentVolumes(), - informerFactory.Core().V1().PersistentVolumeClaims(), - informerFactory.Core().V1().ReplicationControllers(), - informerFactory.Extensions().V1beta1().ReplicaSets(), - informerFactory.Apps().V1beta1().StatefulSets(), - informerFactory.Core().V1().Services(), - recorder, - ) + // Prepare some Kube clients. + client, leaderElectionClient, eventClient, err := createClients(config.ClientConnection, master) if err != nil { - return fmt.Errorf("error creating scheduler: %v", err) + return nil, err } - if s.Port != -1 { - go startHTTP(s) - } + // Prepare event clients. + eventBroadcaster := record.NewBroadcaster() + recorder := eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: config.SchedulerName}) - stop := make(chan struct{}) - defer close(stop) - go podInformer.Informer().Run(stop) - informerFactory.Start(stop) - // Waiting for all cache to sync before scheduling. - informerFactory.WaitForCacheSync(stop) - controller.WaitForCacheSync("scheduler", stop, podInformer.Informer().HasSynced) + // Set up leader election if enabled. + var leaderElectionConfig *leaderelection.LeaderElectionConfig + if config.LeaderElection.LeaderElect { + leaderElectionConfig, err = makeLeaderElectionConfig(config.LeaderElection, leaderElectionClient, recorder) + if err != nil { + return nil, err + } + } - run := func(stopCh <-chan struct{}) { - sched.Run() - <-stopCh + // Prepare a healthz server. If the metrics bind address is the same as the + // healthz bind address, consolidate the servers into one. + var healthzServer *http.Server + if len(config.HealthzBindAddress) != 0 { + healthzServer = makeHealthzServer(config) } - if !s.LeaderElection.LeaderElect { - run(stop) - return fmt.Errorf("finished without leader elect") + // Prepare a separate metrics server only if the bind address differs from the + // healthz bind address. + var metricsServer *http.Server + if len(config.MetricsBindAddress) > 0 && config.HealthzBindAddress != config.MetricsBindAddress { + metricsServer = makeMetricsServer(config) } - id, err := os.Hostname() + return &SchedulerServer{ + SchedulerName: config.SchedulerName, + Client: client, + InformerFactory: informers.NewSharedInformerFactory(client, 0), + PodInformer: factory.NewPodInformer(client, 0, config.SchedulerName), + AlgorithmSource: config.AlgorithmSource, + HardPodAffinitySymmetricWeight: config.HardPodAffinitySymmetricWeight, + EventClient: eventClient, + Recorder: recorder, + Broadcaster: eventBroadcaster, + LeaderElection: leaderElectionConfig, + HealthzServer: healthzServer, + MetricsServer: metricsServer, + }, nil +} + +// makeLeaderElectionConfig builds a leader election configuration. It will +// create a new resource lock associated with the configuration. +func makeLeaderElectionConfig(config componentconfig.KubeSchedulerLeaderElectionConfiguration, client clientset.Interface, recorder record.EventRecorder) (*leaderelection.LeaderElectionConfig, error) { + hostname, err := os.Hostname() if err != nil { - return fmt.Errorf("unable to get hostname: %v", err) + return nil, fmt.Errorf("unable to get hostname: %v", err) } - rl, err := resourcelock.New(s.LeaderElection.ResourceLock, - s.LockObjectNamespace, - s.LockObjectName, - leaderElectionClient.CoreV1(), + rl, err := resourcelock.New(config.ResourceLock, + config.LockObjectNamespace, + config.LockObjectName, + client.CoreV1(), resourcelock.ResourceLockConfig{ - Identity: id, + Identity: hostname, EventRecorder: recorder, }) if err != nil { - return fmt.Errorf("error creating lock: %v", err) + return nil, fmt.Errorf("couldn't create resource lock: %v", err) } - leaderElector, err := leaderelection.NewLeaderElector( - leaderelection.LeaderElectionConfig{ - Lock: rl, - LeaseDuration: s.LeaderElection.LeaseDuration.Duration, - RenewDeadline: s.LeaderElection.RenewDeadline.Duration, - RetryPeriod: s.LeaderElection.RetryPeriod.Duration, - Callbacks: leaderelection.LeaderCallbacks{ - OnStartedLeading: run, - OnStoppedLeading: func() { - utilruntime.HandleError(fmt.Errorf("lost master")) - }, - }, - }) - if err != nil { - return err - } - - leaderElector.Run() - - return fmt.Errorf("lost lease") + return &leaderelection.LeaderElectionConfig{ + Lock: rl, + LeaseDuration: config.LeaseDuration.Duration, + RenewDeadline: config.RenewDeadline.Duration, + RetryPeriod: config.RetryPeriod.Duration, + }, nil } -func startHTTP(s *options.SchedulerServer) { +// makeHealthzServer creates a healthz server from the config, and will also +// embed the metrics handler if the healthz and metrics address configurations +// are the same. +func makeHealthzServer(config *componentconfig.KubeSchedulerConfiguration) *http.Server { mux := http.NewServeMux() healthz.InstallHandler(mux) - if s.EnableProfiling { + if config.HealthzBindAddress == config.MetricsBindAddress { + configz.InstallHandler(mux) + mux.Handle("/metrics", prometheus.Handler()) + } + if config.EnableProfiling { mux.HandleFunc("/debug/pprof/", pprof.Index) mux.HandleFunc("/debug/pprof/profile", pprof.Profile) mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol) mux.HandleFunc("/debug/pprof/trace", pprof.Trace) - if s.EnableContentionProfiling { + if config.EnableContentionProfiling { goruntime.SetBlockProfileRate(1) } } - if c, err := configz.New("componentconfig"); err == nil { - c.Set(s.KubeSchedulerConfiguration) - } else { - glog.Errorf("unable to register configz: %s", err) + return &http.Server{ + Addr: config.HealthzBindAddress, + Handler: mux, } +} + +// makeMetricsServer builds a metrics server from the config. +func makeMetricsServer(config *componentconfig.KubeSchedulerConfiguration) *http.Server { + mux := http.NewServeMux() configz.InstallHandler(mux) mux.Handle("/metrics", prometheus.Handler()) - - server := &http.Server{ - Addr: net.JoinHostPort(s.Address, strconv.Itoa(int(s.Port))), + if config.EnableProfiling { + mux.HandleFunc("/debug/pprof/", pprof.Index) + mux.HandleFunc("/debug/pprof/profile", pprof.Profile) + mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol) + mux.HandleFunc("/debug/pprof/trace", pprof.Trace) + if config.EnableContentionProfiling { + goruntime.SetBlockProfileRate(1) + } + } + return &http.Server{ + Addr: config.MetricsBindAddress, Handler: mux, } - glog.Fatal(server.ListenAndServe()) +} + +// createClients creates a kube client and an event client from the given config and masterOverride. +// TODO remove masterOverride when CLI flags are removed. +func createClients(config componentconfig.ClientConnectionConfiguration, masterOverride string) (clientset.Interface, clientset.Interface, v1core.EventsGetter, error) { + if len(config.KubeConfigFile) == 0 && len(masterOverride) == 0 { + glog.Warningf("Neither --kubeconfig nor --master was specified. Using default API client. This might not work.") + } + + // This creates a client, first loading any specified kubeconfig + // file, and then overriding the Master flag, if non-empty. + kubeConfig, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig( + &clientcmd.ClientConfigLoadingRules{ExplicitPath: config.KubeConfigFile}, + &clientcmd.ConfigOverrides{ClusterInfo: clientcmdapi.Cluster{Server: masterOverride}}).ClientConfig() + if err != nil { + return nil, nil, nil, err + } + + kubeConfig.AcceptContentTypes = config.AcceptContentTypes + kubeConfig.ContentType = config.ContentType + kubeConfig.QPS = config.QPS + //TODO make config struct use int instead of int32? + kubeConfig.Burst = int(config.Burst) + + client, err := clientset.NewForConfig(restclient.AddUserAgent(kubeConfig, "scheduler")) + if err != nil { + return nil, nil, nil, err + } + + leaderElectionClient, err := clientset.NewForConfig(restclient.AddUserAgent(kubeConfig, "leader-election")) + if err != nil { + return nil, nil, nil, err + } + + eventClient, err := clientset.NewForConfig(kubeConfig) + if err != nil { + return nil, nil, nil, err + } + + return client, leaderElectionClient, eventClient.CoreV1(), nil +} + +// Run runs the SchedulerServer. This should never exit. +func (s *SchedulerServer) Run(stop chan struct{}) error { + // To help debugging, immediately log version + glog.Infof("Version: %+v", version.Get()) + + // Build a scheduler config from the provided algorithm source. + schedulerConfig, err := s.SchedulerConfig() + if err != nil { + return err + } + + // Create the scheduler. + sched := scheduler.NewFromConfig(schedulerConfig) + + // Prepare the event broadcaster. + if !reflect.ValueOf(s.Broadcaster).IsNil() && !reflect.ValueOf(s.EventClient).IsNil() { + s.Broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: s.EventClient.Events("")}) + } + + // Start up the healthz server. + if s.HealthzServer != nil { + go wait.Until(func() { + glog.Infof("starting healthz server on %v", s.HealthzServer.Addr) + err := s.HealthzServer.ListenAndServe() + if err != nil { + utilruntime.HandleError(fmt.Errorf("failed to start healthz server: %v", err)) + } + }, 5*time.Second, stop) + } + + // Start up the metrics server. + if s.MetricsServer != nil { + go wait.Until(func() { + glog.Infof("starting metrics server on %v", s.MetricsServer.Addr) + err := s.MetricsServer.ListenAndServe() + if err != nil { + utilruntime.HandleError(fmt.Errorf("failed to start metrics server: %v", err)) + } + }, 5*time.Second, stop) + } + + // Start all informers. + go s.PodInformer.Informer().Run(stop) + s.InformerFactory.Start(stop) + + // Wait for all caches to sync before scheduling. + s.InformerFactory.WaitForCacheSync(stop) + controller.WaitForCacheSync("scheduler", stop, s.PodInformer.Informer().HasSynced) + + // Prepare a reusable run function. + run := func(stopCh <-chan struct{}) { + sched.Run() + <-stopCh + } + + // If leader election is enabled, run via LeaderElector until done and exit. + if s.LeaderElection != nil { + s.LeaderElection.Callbacks = leaderelection.LeaderCallbacks{ + OnStartedLeading: run, + OnStoppedLeading: func() { + utilruntime.HandleError(fmt.Errorf("lost master")) + }, + } + leaderElector, err := leaderelection.NewLeaderElector(*s.LeaderElection) + if err != nil { + return fmt.Errorf("couldn't create leader elector: %v", err) + } + + leaderElector.Run() + + return fmt.Errorf("lost lease") + } + + // Leader election is disabled, so run inline until done. + run(stop) + return fmt.Errorf("finished without leader elect") +} + +// SchedulerConfig creates the scheduler configuration. This is exposed for use +// by tests. +func (s *SchedulerServer) SchedulerConfig() (*scheduler.Config, error) { + // Set up the configurator which can create schedulers from configs. + configurator := factory.NewConfigFactory( + s.SchedulerName, + s.Client, + s.InformerFactory.Core().V1().Nodes(), + s.PodInformer, + s.InformerFactory.Core().V1().PersistentVolumes(), + s.InformerFactory.Core().V1().PersistentVolumeClaims(), + s.InformerFactory.Core().V1().ReplicationControllers(), + s.InformerFactory.Extensions().V1beta1().ReplicaSets(), + s.InformerFactory.Apps().V1beta1().StatefulSets(), + s.InformerFactory.Core().V1().Services(), + s.InformerFactory.Policy().V1beta1().PodDisruptionBudgets(), + s.HardPodAffinitySymmetricWeight, + utilfeature.DefaultFeatureGate.Enabled(features.EnableEquivalenceClassCache), + ) + + source := s.AlgorithmSource + var config *scheduler.Config + switch { + case source.Provider != nil: + // Create the config from a named algorithm provider. + sc, err := configurator.CreateFromProvider(*source.Provider) + if err != nil { + return nil, fmt.Errorf("couldn't create scheduler using provider %q: %v", *source.Provider, err) + } + config = sc + case source.Policy != nil: + // Create the config from a user specified policy source. + policy := &schedulerapi.Policy{} + switch { + case source.Policy.File != nil: + // Use a policy serialized in a file. + policyFile := source.Policy.File.Path + _, err := os.Stat(policyFile) + if err != nil { + return nil, fmt.Errorf("missing policy config file %s", policyFile) + } + data, err := ioutil.ReadFile(policyFile) + if err != nil { + return nil, fmt.Errorf("couldn't read policy config: %v", err) + } + err = runtime.DecodeInto(latestschedulerapi.Codec, []byte(data), policy) + if err != nil { + return nil, fmt.Errorf("invalid policy: %v", err) + } + case source.Policy.ConfigMap != nil: + // Use a policy serialized in a config map value. + policyRef := source.Policy.ConfigMap + policyConfigMap, err := s.Client.CoreV1().ConfigMaps(policyRef.Namespace).Get(policyRef.Name, metav1.GetOptions{}) + if err != nil { + return nil, fmt.Errorf("couldn't get policy config map %s/%s: %v", policyRef.Namespace, policyRef.Name, err) + } + data, found := policyConfigMap.Data[componentconfig.SchedulerPolicyConfigMapKey] + if !found { + return nil, fmt.Errorf("missing policy config map value at key %q", componentconfig.SchedulerPolicyConfigMapKey) + } + err = runtime.DecodeInto(latestschedulerapi.Codec, []byte(data), policy) + if err != nil { + return nil, fmt.Errorf("invalid policy: %v", err) + } + } + sc, err := configurator.CreateFromConfig(*policy) + if err != nil { + return nil, fmt.Errorf("couldn't create scheduler from policy: %v", err) + } + config = sc + default: + return nil, fmt.Errorf("unsupported algorithm source: %v", source) + } + // Additional tweaks to the config produced by the configurator. + config.Recorder = s.Recorder + return config, nil } diff --git a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/scheduler.go b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/scheduler.go index e2ea5b4b2..07ab2ca11 100644 --- a/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/scheduler.go +++ b/vendor/k8s.io/kubernetes/plugin/cmd/kube-scheduler/scheduler.go @@ -17,27 +17,31 @@ limitations under the License. package main import ( - "k8s.io/apiserver/pkg/util/flag" - "k8s.io/apiserver/pkg/util/logs" - "k8s.io/kubernetes/pkg/version/verflag" - "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app" - "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options" + goflag "flag" + "os" - "github.com/golang/glog" "github.com/spf13/pflag" + + utilflag "k8s.io/apiserver/pkg/util/flag" + "k8s.io/apiserver/pkg/util/logs" + _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration + "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app" ) func main() { - s := options.NewSchedulerServer() - s.AddFlags(pflag.CommandLine) - - flag.InitFlags() + command := app.NewSchedulerCommand() + + // TODO: once we switch everything over to Cobra commands, we can go back to calling + // utilflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the + // normalize func and add the go flag set by hand. + pflag.CommandLine.SetNormalizeFunc(utilflag.WordSepNormalizeFunc) + pflag.CommandLine.AddGoFlagSet(goflag.CommandLine) + // utilflag.InitFlags() logs.InitLogs() defer logs.FlushLogs() - verflag.PrintAndExitIfRequested() - - if err := app.Run(s); err != nil { - glog.Fatalf("scheduler app failed to run: %v", err) + if err := command.Execute(); err != nil { + os.Exit(1) } } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/admission/OWNERS index 5c88b018c..5afda4f8a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/OWNERS +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/OWNERS @@ -1,4 +1,6 @@ approvers: - derekwaynecarr +- deads2k reviewers: - derekwaynecarr +- deads2k diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/BUILD index e406017ce..d660932d2 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/BUILD @@ -19,7 +19,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/admit", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/admission.go index 6ba8e59dd..3c428d913 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/admission.go @@ -29,19 +29,30 @@ func Register(plugins *admission.Plugins) { }) } -// alwaysAdmit is an implementation of admission.Interface which always says yes to an admit request. +// AlwaysAdmit is an implementation of admission.Interface which always says yes to an admit request. // It is useful in tests and when using kubernetes in an open manner. -type alwaysAdmit struct{} +type AlwaysAdmit struct{} -func (alwaysAdmit) Admit(a admission.Attributes) (err error) { +var _ admission.MutationInterface = AlwaysAdmit{} +var _ admission.ValidationInterface = AlwaysAdmit{} + +// Admit makes an admission decision based on the request attributes +func (AlwaysAdmit) Admit(a admission.Attributes) (err error) { + return nil +} + +// Validate makes an admission decision based on the request attributes. It is NOT allowed to mutate. +func (AlwaysAdmit) Validate(a admission.Attributes) (err error) { return nil } -func (alwaysAdmit) Handles(operation admission.Operation) bool { +// Handles returns true if this admission controller can handle the given operation +// where operation can be one of CREATE, UPDATE, DELETE, or CONNECT +func (AlwaysAdmit) Handles(operation admission.Operation) bool { return true } // NewAlwaysAdmit creates a new always admit admission handler -func NewAlwaysAdmit() admission.Interface { - return new(alwaysAdmit) +func NewAlwaysAdmit() *AlwaysAdmit { + return new(AlwaysAdmit) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/admission_test.go index 9281aec96..d7d3737e7 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/admit/admission_test.go @@ -20,7 +20,7 @@ import ( "testing" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestAdmissionNonNilAttribute(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/BUILD index 5005a88ab..ab8a3fd14 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/BUILD @@ -11,8 +11,9 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", ], ) @@ -23,7 +24,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core: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/apiserver/pkg/admission:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/admission.go index 0d71f127a..c9a90f648 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/admission.go @@ -28,8 +28,9 @@ import ( "io" apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Register registers a plugin @@ -39,15 +40,19 @@ func Register(plugins *admission.Plugins) { }) } -// alwaysPullImages is an implementation of admission.Interface. +// AlwaysPullImages is an implementation of admission.Interface. // It looks at all new pods and overrides each container's image pull policy to Always. -type alwaysPullImages struct { +type AlwaysPullImages struct { *admission.Handler } -func (a *alwaysPullImages) Admit(attributes admission.Attributes) (err error) { +var _ admission.MutationInterface = &AlwaysPullImages{} +var _ admission.ValidationInterface = &AlwaysPullImages{} + +// Admit makes an admission decision based on the request attributes +func (a *AlwaysPullImages) Admit(attributes admission.Attributes) (err error) { // Ignore all calls to subresources or resources other than pods. - if len(attributes.GetSubresource()) != 0 || attributes.GetResource().GroupResource() != api.Resource("pods") { + if shouldIgnore(attributes) { return nil } pod, ok := attributes.GetObject().(*api.Pod) @@ -66,9 +71,51 @@ func (a *alwaysPullImages) Admit(attributes admission.Attributes) (err error) { return nil } +// Validate makes sure that all containers are set to always pull images +func (*AlwaysPullImages) Validate(attributes admission.Attributes) (err error) { + if shouldIgnore(attributes) { + return nil + } + + pod, ok := attributes.GetObject().(*api.Pod) + if !ok { + return apierrors.NewBadRequest("Resource was marked with kind Pod but was unable to be converted") + } + + for i := range pod.Spec.InitContainers { + if pod.Spec.InitContainers[i].ImagePullPolicy != api.PullAlways { + return admission.NewForbidden(attributes, + field.NotSupported(field.NewPath("spec", "initContainers").Index(i).Child("imagePullPolicy"), + pod.Spec.InitContainers[i].ImagePullPolicy, []string{string(api.PullAlways)}, + ), + ) + } + } + for i := range pod.Spec.Containers { + if pod.Spec.Containers[i].ImagePullPolicy != api.PullAlways { + return admission.NewForbidden(attributes, + field.NotSupported(field.NewPath("spec", "containers").Index(i).Child("imagePullPolicy"), + pod.Spec.Containers[i].ImagePullPolicy, []string{string(api.PullAlways)}, + ), + ) + } + } + + return nil +} + +func shouldIgnore(attributes admission.Attributes) bool { + // Ignore all calls to subresources or resources other than pods. + if len(attributes.GetSubresource()) != 0 || attributes.GetResource().GroupResource() != api.Resource("pods") { + return true + } + + return false +} + // NewAlwaysPullImages creates a new always pull images admission control handler -func NewAlwaysPullImages() admission.Interface { - return &alwaysPullImages{ +func NewAlwaysPullImages() *AlwaysPullImages { + return &AlwaysPullImages{ Handler: admission.NewHandler(admission.Create, admission.Update), } } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/admission_test.go index e291e6e66..de6fd5df9 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages/admission_test.go @@ -22,14 +22,14 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // TestAdmission verifies all create requests for pods result in every container's image pull policy // set to Always func TestAdmission(t *testing.T) { namespace := "test" - handler := &alwaysPullImages{} + handler := &AlwaysPullImages{} pod := api.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: namespace}, Spec: api.PodSpec{ @@ -63,6 +63,36 @@ func TestAdmission(t *testing.T) { } } +func TestValidate(t *testing.T) { + namespace := "test" + handler := &AlwaysPullImages{} + pod := api.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "123", Namespace: namespace}, + Spec: api.PodSpec{ + InitContainers: []api.Container{ + {Name: "init1", Image: "image"}, + {Name: "init2", Image: "image", ImagePullPolicy: api.PullNever}, + {Name: "init3", Image: "image", ImagePullPolicy: api.PullIfNotPresent}, + {Name: "init4", Image: "image", ImagePullPolicy: api.PullAlways}, + }, + Containers: []api.Container{ + {Name: "ctr1", Image: "image"}, + {Name: "ctr2", Image: "image", ImagePullPolicy: api.PullNever}, + {Name: "ctr3", Image: "image", ImagePullPolicy: api.PullIfNotPresent}, + {Name: "ctr4", Image: "image", ImagePullPolicy: api.PullAlways}, + }, + }, + } + expectedError := `pods "123" is forbidden: spec.initContainers[0].imagePullPolicy: Unsupported value: "": supported values: "Always"` + err := handler.Validate(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), pod.Namespace, pod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + if err == nil { + t.Fatal("missing expected error") + } + if err.Error() != expectedError { + t.Fatal(err) + } +} + // TestOtherResources ensures that this admission controller is a no-op for other resources, // subresources, and non-pods. func TestOtherResources(t *testing.T) { @@ -107,7 +137,7 @@ func TestOtherResources(t *testing.T) { } for _, tc := range tests { - handler := &alwaysPullImages{} + handler := &AlwaysPullImages{} err := handler.Admit(admission.NewAttributesRecord(tc.object, nil, api.Kind(tc.kind).WithVersion("version"), namespace, name, api.Resource(tc.resource).WithVersion("version"), tc.subresource, admission.Create, nil)) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/BUILD index 930e815a4..c0e381995 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/antiaffinity", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/apis:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", @@ -27,7 +27,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/antiaffinity", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/apis:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/admission.go index c42a1b211..bec95b8d8 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/admission.go @@ -22,7 +22,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" ) @@ -33,21 +33,23 @@ func Register(plugins *admission.Plugins) { }) } -// plugin contains the client used by the admission controller -type plugin struct { +// Plugin contains the client used by the admission controller +type Plugin struct { *admission.Handler } +var _ admission.ValidationInterface = &Plugin{} + // NewInterPodAntiAffinity creates a new instance of the LimitPodHardAntiAffinityTopology admission controller -func NewInterPodAntiAffinity() admission.Interface { - return &plugin{ +func NewInterPodAntiAffinity() *Plugin { + return &Plugin{ Handler: admission.NewHandler(admission.Create, admission.Update), } } -// Admit will deny any pod that defines AntiAffinity topology key other than kubeletapis.LabelHostname i.e. "kubernetes.io/hostname" +// Validate will deny any pod that defines AntiAffinity topology key other than kubeletapis.LabelHostname i.e. "kubernetes.io/hostname" // in requiredDuringSchedulingRequiredDuringExecution and requiredDuringSchedulingIgnoredDuringExecution. -func (p *plugin) Admit(attributes admission.Attributes) (err error) { +func (p *Plugin) Validate(attributes admission.Attributes) (err error) { // Ignore all calls to subresources or resources other than pods. if len(attributes.GetSubresource()) != 0 || attributes.GetResource().GroupResource() != api.Resource("pods") { return nil diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/admission_test.go index f38be9a1f..dc79c9112 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/antiaffinity/admission_test.go @@ -22,7 +22,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" ) @@ -199,7 +199,7 @@ func TestInterPodAffinityAdmission(t *testing.T) { } for _, test := range tests { pod.Spec.Affinity = test.affinity - err := handler.Admit(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), "foo", "name", api.Resource("pods").WithVersion("version"), "", "ignored", nil)) + err := handler.Validate(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), "foo", "name", api.Resource("pods").WithVersion("version"), "", "ignored", nil)) if test.errorExpected && err == nil { t.Errorf("Expected error for Anti Affinity %+v but did not get an error", test.affinity) @@ -265,9 +265,9 @@ func TestOtherResources(t *testing.T) { } for _, tc := range tests { - handler := &plugin{} + handler := &Plugin{} - err := handler.Admit(admission.NewAttributesRecord(tc.object, nil, api.Kind(tc.kind).WithVersion("version"), namespace, name, api.Resource(tc.resource).WithVersion("version"), tc.subresource, admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(tc.object, nil, api.Kind(tc.kind).WithVersion("version"), namespace, name, api.Resource(tc.resource).WithVersion("version"), tc.subresource, admission.Create, nil)) if tc.expectError { if err == nil { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/BUILD index 571320d80..00bfbc9d5 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/BUILD @@ -12,8 +12,8 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", ], @@ -24,8 +24,8 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission.go index 430ed22f5..05e170a96 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission.go @@ -23,8 +23,8 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" ) @@ -45,24 +45,27 @@ func Register(plugins *admission.Plugins) { }) } -// plugin contains the client used by the admission controller +// Plugin contains the client used by the admission controller // It will add default tolerations for every pod // that tolerate taints `notReady:NoExecute` and `unreachable:NoExecute`, // with tolerationSeconds of 300s. // If the pod already specifies a toleration for taint `notReady:NoExecute` // or `unreachable:NoExecute`, the plugin won't touch it. -type plugin struct { +type Plugin struct { *admission.Handler } +var _ admission.MutationInterface = &Plugin{} + // NewDefaultTolerationSeconds creates a new instance of the DefaultTolerationSeconds admission controller -func NewDefaultTolerationSeconds() admission.Interface { - return &plugin{ +func NewDefaultTolerationSeconds() *Plugin { + return &Plugin{ Handler: admission.NewHandler(admission.Create, admission.Update), } } -func (p *plugin) Admit(attributes admission.Attributes) (err error) { +// Admit makes an admission decision based on the request attributes +func (p *Plugin) Admit(attributes admission.Attributes) (err error) { if attributes.GetResource().GroupResource() != api.Resource("pods") { return nil } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission_test.go index f480d1f0c..c249442dd 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission_test.go @@ -20,8 +20,8 @@ import ( "testing" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/BUILD index 7809eebe1..c5eb8bf5a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/BUILD @@ -19,7 +19,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/deny", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/admission.go index bef3429c2..f6f4951be 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/admission.go @@ -30,19 +30,30 @@ func Register(plugins *admission.Plugins) { }) } -// alwaysDeny is an implementation of admission.Interface which always says no to an admission request. +// AlwaysDeny is an implementation of admission.Interface which always says no to an admission request. // It is useful in unit tests to force an operation to be forbidden. -type alwaysDeny struct{} +type AlwaysDeny struct{} -func (alwaysDeny) Admit(a admission.Attributes) (err error) { +var _ admission.MutationInterface = AlwaysDeny{} +var _ admission.ValidationInterface = AlwaysDeny{} + +// Admit makes an admission decision based on the request attributes. +func (AlwaysDeny) Admit(a admission.Attributes) (err error) { + return admission.NewForbidden(a, errors.New("Admission control is denying all modifications")) +} + +// Validate makes an admission decision based on the request attributes. It is NOT allowed to mutate. +func (AlwaysDeny) Validate(a admission.Attributes) (err error) { return admission.NewForbidden(a, errors.New("Admission control is denying all modifications")) } -func (alwaysDeny) Handles(operation admission.Operation) bool { +// Handles returns true if this admission controller can handle the given operation +// where operation can be one of CREATE, UPDATE, DELETE, or CONNECT +func (AlwaysDeny) Handles(operation admission.Operation) bool { return true } // NewAlwaysDeny creates an always deny admission handler -func NewAlwaysDeny() admission.Interface { - return new(alwaysDeny) +func NewAlwaysDeny() *AlwaysDeny { + return new(AlwaysDeny) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/admission_test.go index a2a6f32d9..fcc15ce0b 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/deny/admission_test.go @@ -20,7 +20,7 @@ import ( "testing" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestAdmission(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/BUILD index 67df0c8cb..7dbb98cfc 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/BUILD @@ -15,7 +15,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//plugin/pkg/admission/eventratelimit/apis/eventratelimit:go_default_library", "//vendor/github.com/hashicorp/golang-lru:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -39,7 +39,7 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//plugin/pkg/admission/eventratelimit/apis/eventratelimit:go_default_library", "//plugin/pkg/admission/eventratelimit/apis/eventratelimit/install:go_default_library", "//plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/admission.go index 4318d66c6..7e0253196 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/admission.go @@ -21,7 +21,7 @@ import ( "k8s.io/apiserver/pkg/admission" "k8s.io/client-go/util/flowcontrol" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" eventratelimitapi "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit" "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/validation" ) @@ -45,8 +45,8 @@ func Register(plugins *admission.Plugins) { }) } -// eventRateLimitAdmission implements an admission controller that can enforce event rate limits -type eventRateLimitAdmission struct { +// Plugin implements an admission controller that can enforce event rate limits +type Plugin struct { *admission.Handler // limitEnforcers is the collection of limit enforcers. There is one limit enforcer for each // active limit type. As there are 4 limit types, the length of the array will be at most 4. @@ -54,8 +54,10 @@ type eventRateLimitAdmission struct { limitEnforcers []*limitEnforcer } +var _ admission.ValidationInterface = &Plugin{} + // newEventRateLimit configures an admission controller that can enforce event rate limits -func newEventRateLimit(config *eventratelimitapi.Configuration, clock flowcontrol.Clock) (admission.Interface, error) { +func newEventRateLimit(config *eventratelimitapi.Configuration, clock flowcontrol.Clock) (*Plugin, error) { limitEnforcers := make([]*limitEnforcer, 0, len(config.Limits)) for _, limitConfig := range config.Limits { enforcer, err := newLimitEnforcer(limitConfig, clock) @@ -65,7 +67,7 @@ func newEventRateLimit(config *eventratelimitapi.Configuration, clock flowcontro limitEnforcers = append(limitEnforcers, enforcer) } - eventRateLimitAdmission := &eventRateLimitAdmission{ + eventRateLimitAdmission := &Plugin{ Handler: admission.NewHandler(admission.Create, admission.Update), limitEnforcers: limitEnforcers, } @@ -73,8 +75,8 @@ func newEventRateLimit(config *eventratelimitapi.Configuration, clock flowcontro return eventRateLimitAdmission, nil } -// Admit makes admission decisions while enforcing event rate limits -func (a *eventRateLimitAdmission) Admit(attr admission.Attributes) (err error) { +// Validate makes admission decisions while enforcing event rate limits +func (a *Plugin) Validate(attr admission.Attributes) (err error) { // ignore all operations that do not correspond to an Event kind if attr.GetKind().GroupKind() != api.Kind("Event") { return nil diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/admission_test.go index 579ab36fb..e0e96176c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/admission_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/util/clock" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" eventratelimitapi "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit" ) @@ -482,7 +482,7 @@ func TestEventRateLimiting(t *testing.T) { clock.Step(rq.delay) } attributes := attributesForRequest(rq) - err = eventratelimit.Admit(attributes) + err = eventratelimit.Validate(attributes) if rq.accepted != (err == nil) { expectedAction := "admitted" if !rq.accepted { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/BUILD index b519a400b..7f723eade 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/doc.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/doc.go index c70a60a56..56d99bee2 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/doc.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package eventratelimit // import "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/doc.go index 483c858de..cf325fa9f 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.deepcopy.go index 49fc87791..3ed408c1a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Configuration).DeepCopyInto(out.(*Configuration)) - return nil - }, InType: reflect.TypeOf(&Configuration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Limit).DeepCopyInto(out.(*Limit)) - return nil - }, InType: reflect.TypeOf(&Limit{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Configuration) DeepCopyInto(out *Configuration) { *out = *in diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/zz_generated.deepcopy.go index a1bd74754..006fcbc04 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package eventratelimit import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Configuration).DeepCopyInto(out.(*Configuration)) - return nil - }, InType: reflect.TypeOf(&Configuration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Limit).DeepCopyInto(out.(*Limit)) - return nil - }, InType: reflect.TypeOf(&Limit{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Configuration) DeepCopyInto(out *Configuration) { *out = *in diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/limitenforcer.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/limitenforcer.go index 4fa5ee90f..3faff618f 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/limitenforcer.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/limitenforcer.go @@ -25,7 +25,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apiserver/pkg/admission" "k8s.io/client-go/util/flowcontrol" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" eventratelimitapi "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit" ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/BUILD index 55700fcbd..61fe91099 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/exec", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/kubeapiserver/admission:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -27,7 +27,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/exec", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/admission.go index f8f94b78f..456d47e07 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/admission.go @@ -24,7 +24,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" kubeapiserveradmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" ) @@ -42,9 +42,9 @@ func Register(plugins *admission.Plugins) { }) } -// denyExec is an implementation of admission.Interface which says no to a pod/exec on +// DenyExec is an implementation of admission.Interface which says no to a pod/exec on // a pod using host based configurations. -type denyExec struct { +type DenyExec struct { *admission.Handler client internalclientset.Interface @@ -54,12 +54,14 @@ type denyExec struct { privileged bool } -var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&denyExec{}) +var _ admission.ValidationInterface = &DenyExec{} + +var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&DenyExec{}) // NewDenyEscalatingExec creates a new admission controller that denies an exec operation on a pod // using host based configurations. -func NewDenyEscalatingExec() admission.Interface { - return &denyExec{ +func NewDenyEscalatingExec() *DenyExec { + return &DenyExec{ Handler: admission.NewHandler(admission.Connect), hostIPC: true, hostPID: true, @@ -70,8 +72,8 @@ func NewDenyEscalatingExec() admission.Interface { // NewDenyExecOnPrivileged creates a new admission controller that is only checking the privileged // option. This is for legacy support of the DenyExecOnPrivileged admission controller. Most // of the time NewDenyEscalatingExec should be preferred. -func NewDenyExecOnPrivileged() admission.Interface { - return &denyExec{ +func NewDenyExecOnPrivileged() *DenyExec { + return &DenyExec{ Handler: admission.NewHandler(admission.Connect), hostIPC: false, hostPID: false, @@ -79,7 +81,8 @@ func NewDenyExecOnPrivileged() admission.Interface { } } -func (d *denyExec) Admit(a admission.Attributes) (err error) { +// Validate makes an admission decision based on the request attributes +func (d *DenyExec) Validate(a admission.Attributes) (err error) { connectRequest, ok := a.GetObject().(*rest.ConnectRequest) if !ok { return errors.NewBadRequest("a connect request was received, but could not convert the request object.") @@ -129,11 +132,13 @@ func isPrivileged(pod *api.Pod) bool { return false } -func (d *denyExec) SetInternalKubeClientSet(client internalclientset.Interface) { +// SetInternalKubeClientSet implements the WantsInternalKubeClientSet interface. +func (d *DenyExec) SetInternalKubeClientSet(client internalclientset.Interface) { d.client = client } -func (d *denyExec) Validate() error { +// ValidateInitialization implements the InitializationValidator interface. +func (d *DenyExec) ValidateInitialization() error { if d.client == nil { return fmt.Errorf("missing client") } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/admission_test.go index 0508331e5..649089ced 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/exec/admission_test.go @@ -24,14 +24,14 @@ import ( "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/registry/rest" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" ) // newAllowEscalatingExec returns `admission.Interface` that allows execution on // "hostIPC", "hostPID" and "privileged". -func newAllowEscalatingExec() admission.Interface { - return &denyExec{ +func newAllowEscalatingExec() *DenyExec { + return &DenyExec{ Handler: admission.NewHandler(admission.Connect), hostIPC: false, hostPID: false, @@ -77,21 +77,21 @@ func TestAdmission(t *testing.T) { } // Get the direct object though to allow testAdmission to inject the client - handler := NewDenyEscalatingExec().(*denyExec) + handler := NewDenyEscalatingExec() for _, tc := range testCases { testAdmission(t, tc.pod, handler, tc.shouldAccept) } // run with a permissive config and all cases should pass - handler = newAllowEscalatingExec().(*denyExec) + handler = newAllowEscalatingExec() for _, tc := range testCases { testAdmission(t, tc.pod, handler, true) } // run against an init container - handler = NewDenyEscalatingExec().(*denyExec) + handler = NewDenyEscalatingExec() for _, tc := range testCases { tc.pod.Spec.InitContainers = tc.pod.Spec.Containers @@ -100,14 +100,14 @@ func TestAdmission(t *testing.T) { } // run with a permissive config and all cases should pass - handler = newAllowEscalatingExec().(*denyExec) + handler = newAllowEscalatingExec() for _, tc := range testCases { testAdmission(t, tc.pod, handler, true) } } -func testAdmission(t *testing.T, pod *api.Pod, handler *denyExec, shouldAccept bool) { +func testAdmission(t *testing.T, pod *api.Pod, handler *DenyExec, shouldAccept bool) { mockClient := &fake.Clientset{} mockClient.AddReactor("get", "pods", func(action core.Action) (bool, runtime.Object, error) { if action.(core.GetAction).GetName() == pod.Name { @@ -118,12 +118,12 @@ func testAdmission(t *testing.T, pod *api.Pod, handler *denyExec, shouldAccept b }) handler.SetInternalKubeClientSet(mockClient) - admission.Validate(handler) + admission.ValidateInitialization(handler) // pods/exec { req := &rest.ConnectRequest{Name: pod.Name, ResourcePath: "pods/exec"} - err := handler.Admit(admission.NewAttributesRecord(req, nil, api.Kind("Pod").WithVersion("version"), "test", "name", api.Resource("pods").WithVersion("version"), "exec", admission.Connect, nil)) + err := handler.Validate(admission.NewAttributesRecord(req, nil, api.Kind("Pod").WithVersion("version"), "test", "name", api.Resource("pods").WithVersion("version"), "exec", admission.Connect, nil)) if shouldAccept && err != nil { t.Errorf("Unexpected error returned from admission handler: %v", err) } @@ -135,7 +135,7 @@ func testAdmission(t *testing.T, pod *api.Pod, handler *denyExec, shouldAccept b // pods/attach { req := &rest.ConnectRequest{Name: pod.Name, ResourcePath: "pods/attach"} - err := handler.Admit(admission.NewAttributesRecord(req, nil, api.Kind("Pod").WithVersion("version"), "test", "name", api.Resource("pods").WithVersion("version"), "attach", admission.Connect, nil)) + err := handler.Validate(admission.NewAttributesRecord(req, nil, api.Kind("Pod").WithVersion("version"), "test", "name", api.Resource("pods").WithVersion("version"), "attach", admission.Connect, nil)) if shouldAccept && err != nil { t.Errorf("Unexpected error returned from admission handler: %v", err) } @@ -184,7 +184,7 @@ func TestDenyExecOnPrivileged(t *testing.T) { } // Get the direct object though to allow testAdmission to inject the client - handler := NewDenyExecOnPrivileged().(*denyExec) + handler := NewDenyExecOnPrivileged() for _, tc := range testCases { testAdmission(t, tc.pod, handler, tc.shouldAccept) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/BUILD index cb7f2d8ae..e4d316030 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/BUILD @@ -28,7 +28,8 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/gc", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubeapiserver/admission:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/gc_admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/gc_admission.go index 5c4287925..7acd5cf48 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/gc_admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/gc_admission.go @@ -63,6 +63,8 @@ type gcPermissionsEnforcement struct { whiteList []whiteListItem } +var _ admission.ValidationInterface = &gcPermissionsEnforcement{} + // whiteListItem describes an entry in a whitelist ignored by gc permission enforcement. type whiteListItem struct { groupResource schema.GroupResource @@ -79,7 +81,7 @@ func (a *gcPermissionsEnforcement) isWhiteListed(groupResource schema.GroupResou return false } -func (a *gcPermissionsEnforcement) Admit(attributes admission.Attributes) (err error) { +func (a *gcPermissionsEnforcement) Validate(attributes admission.Attributes) (err error) { // // if the request is in the whitelist, we skip mutation checks for this resource. if a.isWhiteListed(attributes.GetResource().GroupResource(), attributes.GetSubresource()) { return nil @@ -102,8 +104,8 @@ func (a *gcPermissionsEnforcement) Admit(attributes admission.Attributes) (err e ResourceRequest: true, Path: "", } - allowed, reason, err := a.authorizer.Authorize(deleteAttributes) - if !allowed { + decision, reason, err := a.authorizer.Authorize(deleteAttributes) + if decision != authorizer.DecisionAllow { return admission.NewForbidden(attributes, fmt.Errorf("cannot set an ownerRef on a resource you can't delete: %v, %v", reason, err)) } @@ -120,8 +122,8 @@ func (a *gcPermissionsEnforcement) Admit(attributes admission.Attributes) (err e // resources. User needs to have delete permission on all the // matched Resources. for _, record := range records { - allowed, reason, err := a.authorizer.Authorize(record) - if !allowed { + decision, reason, err := a.authorizer.Authorize(record) + if decision != authorizer.DecisionAllow { return admission.NewForbidden(attributes, fmt.Errorf("cannot set blockOwnerDeletion if an ownerReference refers to a resource you can't set finalizers on: %v, %v", reason, err)) } } @@ -260,7 +262,7 @@ func (a *gcPermissionsEnforcement) SetRESTMapper(restMapper meta.RESTMapper) { a.restMapper = restMapper } -func (a *gcPermissionsEnforcement) Validate() error { +func (a *gcPermissionsEnforcement) ValidateInitialization() error { if a.authorizer == nil { return fmt.Errorf("missing authorizer") } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/gc_admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/gc_admission_test.go index 80233326a..818220f3d 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/gc_admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/gc/gc_admission_test.go @@ -27,46 +27,47 @@ import ( "k8s.io/apiserver/pkg/admission/initializer" "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" kubeadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" ) type fakeAuthorizer struct{} -func (fakeAuthorizer) Authorize(a authorizer.Attributes) (bool, string, error) { +func (fakeAuthorizer) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) { username := a.GetUser().GetName() if username == "non-deleter" { if a.GetVerb() == "delete" { - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } if a.GetVerb() == "update" && a.GetSubresource() == "finalizers" { - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } - return true, "", nil + return authorizer.DecisionAllow, "", nil } if username == "non-pod-deleter" { if a.GetVerb() == "delete" && a.GetResource() == "pods" { - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } if a.GetVerb() == "update" && a.GetResource() == "pods" && a.GetSubresource() == "finalizers" { - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } - return true, "", nil + return authorizer.DecisionAllow, "", nil } if username == "non-rc-deleter" { if a.GetVerb() == "delete" && a.GetResource() == "replicationcontrollers" { - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } if a.GetVerb() == "update" && a.GetResource() == "replicationcontrollers" && a.GetSubresource() == "finalizers" { - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } - return true, "", nil + return authorizer.DecisionAllow, "", nil } - return true, "", nil + return authorizer.DecisionAllow, "", nil } // newGCPermissionsEnforcement returns the admission controller configured for testing. @@ -85,11 +86,8 @@ func newGCPermissionsEnforcement() (*gcPermissionsEnforcement, error) { whiteList: whiteList, } - genericPluginInitializer, err := initializer.New(nil, nil, fakeAuthorizer{}, nil, nil, nil) - if err != nil { - return nil, err - } - pluginInitializer := kubeadmission.NewPluginInitializer(nil, nil, nil, api.Registry.RESTMapper(), nil) + genericPluginInitializer := initializer.New(nil, nil, fakeAuthorizer{}, nil) + pluginInitializer := kubeadmission.NewPluginInitializer(nil, nil, nil, legacyscheme.Registry.RESTMapper(), nil, nil, nil) initializersChain := admission.PluginInitializers{} initializersChain = append(initializersChain, genericPluginInitializer) initializersChain = append(initializersChain, pluginInitializer) @@ -268,7 +266,7 @@ func TestGCAdmission(t *testing.T) { user := &user.DefaultInfo{Name: tc.username} attributes := admission.NewAttributesRecord(tc.newObj, tc.oldObj, schema.GroupVersionKind{}, metav1.NamespaceDefault, "foo", tc.resource, tc.subresource, operation, user) - err := gcAdmit.Admit(attributes) + err := gcAdmit.Validate(attributes) if !tc.checkError(err) { t.Errorf("%v: unexpected err: %v", tc.name, err) } @@ -516,7 +514,7 @@ func TestBlockOwnerDeletionAdmission(t *testing.T) { user := &user.DefaultInfo{Name: tc.username} attributes := admission.NewAttributesRecord(tc.newObj, tc.oldObj, schema.GroupVersionKind{}, metav1.NamespaceDefault, "foo", tc.resource, tc.subresource, operation, user) - err := gcAdmit.Admit(attributes) + err := gcAdmit.Validate(attributes) if !tc.checkError(err) { t.Errorf("%v: unexpected err: %v", tc.name, err) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/BUILD index 3d1256e82..9ea88c749 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/BUILD @@ -15,7 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/imagepolicy", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/imagepolicy/install:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/imagepolicy/v1alpha1:go_default_library", @@ -39,7 +40,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/imagepolicy", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/imagepolicy/install:go_default_library", "//vendor/k8s.io/api/imagepolicy/v1alpha1:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/admission.go index c123a116d..e63430bdd 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/admission.go @@ -28,17 +28,16 @@ import ( "github.com/golang/glog" + "k8s.io/api/imagepolicy/v1alpha1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime/schema" - kubeschema "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/cache" "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/util/webhook" "k8s.io/client-go/rest" - - "k8s.io/api/imagepolicy/v1alpha1" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" // install the clientgo image policy API for use with api registry _ "k8s.io/kubernetes/pkg/apis/imagepolicy/install" @@ -59,8 +58,8 @@ func Register(plugins *admission.Plugins) { }) } -// imagePolicyWebhook is an implementation of admission.Interface. -type imagePolicyWebhook struct { +// Plugin is an implementation of admission.Interface. +type Plugin struct { *admission.Handler webhook *webhook.GenericWebhook responseCache *cache.LRUExpireCache @@ -70,7 +69,9 @@ type imagePolicyWebhook struct { defaultAllow bool } -func (a *imagePolicyWebhook) statusTTL(status v1alpha1.ImageReviewStatus) time.Duration { +var _ admission.ValidationInterface = &Plugin{} + +func (a *Plugin) statusTTL(status v1alpha1.ImageReviewStatus) time.Duration { if status.Allowed { return a.allowTTL } @@ -78,7 +79,7 @@ func (a *imagePolicyWebhook) statusTTL(status v1alpha1.ImageReviewStatus) time.D } // Filter out annotations that don't match *.image-policy.k8s.io/* -func (a *imagePolicyWebhook) filterAnnotations(allAnnotations map[string]string) map[string]string { +func (a *Plugin) filterAnnotations(allAnnotations map[string]string) map[string]string { annotations := make(map[string]string) for k, v := range allAnnotations { if strings.Contains(k, ".image-policy.k8s.io/") { @@ -89,7 +90,7 @@ func (a *imagePolicyWebhook) filterAnnotations(allAnnotations map[string]string) } // Function to call on webhook failure; behavior determined by defaultAllow flag -func (a *imagePolicyWebhook) webhookError(pod *api.Pod, attributes admission.Attributes, err error) error { +func (a *Plugin) webhookError(pod *api.Pod, attributes admission.Attributes, err error) error { if err != nil { glog.V(2).Infof("error contacting webhook backend: %s", err) if a.defaultAllow { @@ -108,13 +109,10 @@ func (a *imagePolicyWebhook) webhookError(pod *api.Pod, attributes admission.Att return nil } -func (a *imagePolicyWebhook) Admit(attributes admission.Attributes) (err error) { +// Validate makes an admission decision based on the request attributes +func (a *Plugin) Validate(attributes admission.Attributes) (err error) { // Ignore all calls to subresources or resources other than pods. - allowedResources := map[kubeschema.GroupResource]bool{ - api.Resource("pods"): true, - } - - if len(attributes.GetSubresource()) != 0 || !allowedResources[attributes.GetResource().GroupResource()] { + if attributes.GetSubresource() != "" || attributes.GetResource().GroupResource() != api.Resource("pods") { return nil } @@ -146,7 +144,7 @@ func (a *imagePolicyWebhook) Admit(attributes admission.Attributes) (err error) return nil } -func (a *imagePolicyWebhook) admitPod(pod *api.Pod, attributes admission.Attributes, review *v1alpha1.ImageReview) error { +func (a *Plugin) admitPod(pod *api.Pod, attributes admission.Attributes, review *v1alpha1.ImageReview) error { cacheKey, err := json.Marshal(review.Spec) if err != nil { return err @@ -183,7 +181,7 @@ func (a *imagePolicyWebhook) admitPod(pod *api.Pod, attributes admission.Attribu return nil } -// NewImagePolicyWebhook a new imagePolicyWebhook from the provided config file. +// NewImagePolicyWebhook a new ImagePolicyWebhook plugin from the provided config file. // The config file is specified by --admission-control-config-file and has the // following format for a webhook: // @@ -220,7 +218,7 @@ func (a *imagePolicyWebhook) admitPod(pod *api.Pod, attributes admission.Attribu // // For additional HTTP configuration, refer to the kubeconfig documentation // http://kubernetes.io/v1.1/docs/user-guide/kubeconfig-file.html. -func NewImagePolicyWebhook(configFile io.Reader) (admission.Interface, error) { +func NewImagePolicyWebhook(configFile io.Reader) (*Plugin, error) { // TODO: move this to a versioned configuration file format var config AdmissionConfig d := yaml.NewYAMLOrJSONDecoder(configFile, 4096) @@ -234,11 +232,11 @@ func NewImagePolicyWebhook(configFile io.Reader) (admission.Interface, error) { return nil, err } - gw, err := webhook.NewGenericWebhook(api.Registry, api.Codecs, whConfig.KubeConfigFile, groupVersions, whConfig.RetryBackoff) + gw, err := webhook.NewGenericWebhook(legacyscheme.Registry, legacyscheme.Codecs, whConfig.KubeConfigFile, groupVersions, whConfig.RetryBackoff) if err != nil { return nil, err } - return &imagePolicyWebhook{ + return &Plugin{ Handler: admission.NewHandler(admission.Create, admission.Update), webhook: gw, responseCache: cache.NewLRUExpireCache(1024), diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/admission_test.go index 1ee2d7650..04cd78225 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/admission_test.go @@ -32,7 +32,7 @@ import ( "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/authentication/user" "k8s.io/client-go/tools/clientcmd/api/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "fmt" "io/ioutil" @@ -346,7 +346,7 @@ func (m *mockService) HTTPStatusCode() int { return m.statusCode } // newImagePolicyWebhook creates a temporary kubeconfig file from the provided arguments and attempts to load // a new newImagePolicyWebhook from it. -func newImagePolicyWebhook(callbackURL string, clientCert, clientKey, ca []byte, cacheTime time.Duration, defaultAllow bool) (*imagePolicyWebhook, error) { +func newImagePolicyWebhook(callbackURL string, clientCert, clientKey, ca []byte, cacheTime time.Duration, defaultAllow bool) (*Plugin, error) { tempfile, err := ioutil.TempFile("", "") if err != nil { return nil, err @@ -404,7 +404,10 @@ func newImagePolicyWebhook(callbackURL string, clientCert, clientKey, ca []byte, } defer configFile.Close() wh, err := NewImagePolicyWebhook(configFile) - return wh.(*imagePolicyWebhook), err + if err != nil { + return nil, err + } + return wh, err } func TestTLSConfig(t *testing.T) { @@ -474,7 +477,7 @@ func TestTLSConfig(t *testing.T) { // Allow all and see if we get an error. service.Allow() - err = wh.Admit(attr) + err = wh.Validate(attr) if tt.wantAllowed { if err != nil { t.Errorf("expected successful admission") @@ -496,7 +499,7 @@ func TestTLSConfig(t *testing.T) { } service.Deny() - if err := wh.Admit(attr); err == nil { + if err := wh.Validate(attr); err == nil { t.Errorf("%s: incorrectly admitted with DenyAll policy", tt.test) } }() @@ -510,10 +513,10 @@ type webhookCacheTestCase struct { expectedCached bool } -func testWebhookCacheCases(t *testing.T, serv *mockService, wh *imagePolicyWebhook, attr admission.Attributes, tests []webhookCacheTestCase) { +func testWebhookCacheCases(t *testing.T, serv *mockService, wh *Plugin, attr admission.Attributes, tests []webhookCacheTestCase) { for _, test := range tests { serv.statusCode = test.statusCode - err := wh.Admit(attr) + err := wh.Validate(attr) authorized := err == nil if test.expectedErr && err == nil { @@ -746,7 +749,7 @@ func TestContainerCombinations(t *testing.T) { attr := admission.NewAttributesRecord(tt.pod, nil, api.Kind("Pod").WithVersion("version"), "namespace", "", api.Resource("pods").WithVersion("version"), "", admission.Create, &user.DefaultInfo{}) - err = wh.Admit(attr) + err = wh.Validate(attr) if tt.wantAllowed { if err != nil { t.Errorf("expected successful admission: %s", tt.test) @@ -824,7 +827,7 @@ func TestDefaultAllow(t *testing.T) { attr := admission.NewAttributesRecord(tt.pod, nil, api.Kind("Pod").WithVersion("version"), "namespace", "", api.Resource("pods").WithVersion("version"), "", admission.Create, &user.DefaultInfo{}) - err = wh.Admit(attr) + err = wh.Validate(attr) if tt.wantAllowed { if err != nil { t.Errorf("expected successful admission") @@ -916,7 +919,7 @@ func TestAnnotationFiltering(t *testing.T) { attr := admission.NewAttributesRecord(pod, nil, api.Kind("Pod").WithVersion("version"), "namespace", "", api.Resource("pods").WithVersion("version"), "", admission.Create, &user.DefaultInfo{}) - err = wh.Admit(attr) + err = wh.Validate(attr) if err != nil { t.Errorf("expected successful admission") } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/config.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/config.go index 558b290e8..df34a4906 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/config.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/config.go @@ -86,7 +86,7 @@ func normalizeConfigDuration(name string, scale, value, min, max, defaultValue t value *= scale // check value is within range - if value <= min || value > max { + if value < min || value > max { return value, fmt.Errorf("valid value is between %v and %v, got %v", min, max, value) } return value, nil diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/config_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/config_test.go index 9f09d1814..8567011ce 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/config_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/imagepolicy/config_test.go @@ -89,6 +89,34 @@ func TestConfigNormalization(t *testing.T) { }, wantErr: false, }, + { + test: "config within normal ranges for min values", + config: imagePolicyWebhookConfig{ + AllowTTL: minAllowTTL / time.Second, + DenyTTL: minDenyTTL / time.Second, + RetryBackoff: minRetryBackoff, + }, + normalizedConfig: imagePolicyWebhookConfig{ + AllowTTL: minAllowTTL, + DenyTTL: minDenyTTL, + RetryBackoff: minRetryBackoff * time.Millisecond, + }, + wantErr: false, + }, + { + test: "config within normal ranges for max values", + config: imagePolicyWebhookConfig{ + AllowTTL: maxAllowTTL / time.Second, + DenyTTL: maxDenyTTL / time.Second, + RetryBackoff: maxRetryBackoff / time.Millisecond, + }, + normalizedConfig: imagePolicyWebhookConfig{ + AllowTTL: maxAllowTTL, + DenyTTL: maxDenyTTL, + RetryBackoff: maxRetryBackoff, + }, + wantErr: false, + }, } for _, tt := range tests { err := normalizeWebhookConfig(&tt.config) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/BUILD index e40439051..a10961168 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/BUILD @@ -17,7 +17,7 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/initialresources", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/cloud.google.com/go/compute/metadata:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/hawkular/hawkular-client-go/metrics:go_default_library", @@ -46,7 +46,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/initialresources", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", "//vendor/golang.org/x/oauth2:go_default_library", "//vendor/golang.org/x/oauth2/google:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/admission.go index 99af24fad..360885091 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/admission.go @@ -28,7 +28,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) var ( @@ -57,15 +57,17 @@ func Register(plugins *admission.Plugins) { }) } -type initialResources struct { +type InitialResources struct { *admission.Handler source dataSource percentile int64 nsOnly bool } -func newInitialResources(source dataSource, percentile int64, nsOnly bool) admission.Interface { - return &initialResources{ +var _ admission.MutationInterface = &InitialResources{} + +func newInitialResources(source dataSource, percentile int64, nsOnly bool) *InitialResources { + return &InitialResources{ Handler: admission.NewHandler(admission.Create), source: source, percentile: percentile, @@ -73,7 +75,8 @@ func newInitialResources(source dataSource, percentile int64, nsOnly bool) admis } } -func (ir initialResources) Admit(a admission.Attributes) (err error) { +// Admit makes an admission decision based on the request attributes +func (ir InitialResources) Admit(a admission.Attributes) (err error) { // Ignore all calls to subresources or resources other than pods. if a.GetSubresource() != "" || a.GetResource().GroupResource() != api.Resource("pods") { return nil @@ -89,7 +92,7 @@ func (ir initialResources) Admit(a admission.Attributes) (err error) { // The method veryfies whether resources should be set for the given pod and // if there is estimation available the method fills Request field. -func (ir initialResources) estimateAndFillResourcesIfNotSet(pod *api.Pod) { +func (ir InitialResources) estimateAndFillResourcesIfNotSet(pod *api.Pod) { var annotations []string for i := range pod.Spec.InitContainers { annotations = append(annotations, ir.estimateContainer(pod, &pod.Spec.InitContainers[i], "init container")...) @@ -106,7 +109,7 @@ func (ir initialResources) estimateAndFillResourcesIfNotSet(pod *api.Pod) { } } -func (ir initialResources) estimateContainer(pod *api.Pod, c *api.Container, message string) []string { +func (ir InitialResources) estimateContainer(pod *api.Pod, c *api.Container, message string) []string { var annotations []string req := c.Resources.Requests cpu := ir.getEstimationIfNeeded(api.ResourceCPU, c, pod.ObjectMeta.Namespace) @@ -137,7 +140,7 @@ func (ir initialResources) estimateContainer(pod *api.Pod, c *api.Container, mes // getEstimationIfNeeded estimates compute resource for container if its corresponding // Request(min amount) and Limit(max amount) both are not specified. -func (ir initialResources) getEstimationIfNeeded(kind api.ResourceName, c *api.Container, ns string) *resource.Quantity { +func (ir InitialResources) getEstimationIfNeeded(kind api.ResourceName, c *api.Container, ns string) *resource.Quantity { requests := c.Resources.Requests limits := c.Resources.Limits var quantity *resource.Quantity @@ -152,7 +155,7 @@ func (ir initialResources) getEstimationIfNeeded(kind api.ResourceName, c *api.C } return quantity } -func (ir initialResources) getEstimation(kind api.ResourceName, c *api.Container, ns string) (*resource.Quantity, error) { +func (ir InitialResources) getEstimation(kind api.ResourceName, c *api.Container, ns string) (*resource.Quantity, error) { end := time.Now() start := end.Add(-week) var usage, samples int64 diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/admission_test.go index 0b7102101..a265fd93a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/admission_test.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) type fakeSource struct { @@ -110,7 +110,7 @@ func expectNoAnnotation(t *testing.T, pod *api.Pod) { } } -func admit(t *testing.T, ir admission.Interface, pods []*api.Pod) { +func admit(t *testing.T, ir admission.MutationInterface, pods []*api.Pod) { for i := range pods { p := pods[i] @@ -123,7 +123,7 @@ func admit(t *testing.T, ir admission.Interface, pods []*api.Pod) { } } -func testAdminScenarios(t *testing.T, ir admission.Interface, p *api.Pod) { +func testAdminScenarios(t *testing.T, ir admission.MutationInterface, p *api.Pod) { podKind := api.Kind("Pod").WithVersion("version") podRes := api.Resource("pods").WithVersion("version") @@ -151,7 +151,7 @@ func testAdminScenarios(t *testing.T, ir admission.Interface, p *api.Pod) { } } -func performTest(t *testing.T, ir admission.Interface) { +func performTest(t *testing.T, ir admission.MutationInterface) { pods := getPods() admit(t, ir, pods) testAdminScenarios(t, ir, pods[0]) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/data_source.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/data_source.go index 0d366c18c..a25f5ee80 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/data_source.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/data_source.go @@ -19,9 +19,8 @@ package initialresources import ( "flag" "fmt" + api "k8s.io/kubernetes/pkg/apis/core" "time" - - "k8s.io/kubernetes/pkg/api" ) var ( diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/gcm.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/gcm.go index ce981e3e8..fbe64b5db 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/gcm.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/gcm.go @@ -17,12 +17,11 @@ limitations under the License. package initialresources import ( + api "k8s.io/kubernetes/pkg/apis/core" "math" "sort" "time" - "k8s.io/kubernetes/pkg/api" - gce "cloud.google.com/go/compute/metadata" "golang.org/x/oauth2" "golang.org/x/oauth2/google" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/gcm_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/gcm_test.go index 426306cf2..b03960bb3 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/gcm_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/gcm_test.go @@ -23,7 +23,7 @@ import ( "golang.org/x/oauth2" "golang.org/x/oauth2/google" gcm "google.golang.org/api/cloudmonitoring/v2beta2" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestGCMReturnsErrorIfClientCannotConnect(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/hawkular.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/hawkular.go index fea6da882..1f5aaea42 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/hawkular.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/hawkular.go @@ -30,7 +30,7 @@ import ( "github.com/golang/glog" "github.com/hawkular/hawkular-client-go/metrics" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/hawkular_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/hawkular_test.go index 6bf86371a..306728f0b 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/hawkular_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/hawkular_test.go @@ -18,6 +18,7 @@ package initialresources import ( "fmt" + api "k8s.io/kubernetes/pkg/apis/core" "net/http" "net/http/httptest" "net/url" @@ -25,8 +26,6 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/api" - assert "github.com/stretchr/testify/require" ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/influxdb.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/influxdb.go index ad526ba37..2986367a7 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/influxdb.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/influxdb.go @@ -22,7 +22,7 @@ import ( "time" influxdb "github.com/influxdata/influxdb/client" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) const ( diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/influxdb_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/influxdb_test.go index bada3acf8..34106ee72 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/influxdb_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/initialresources/influxdb_test.go @@ -20,7 +20,7 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) func TestInfluxDBGetUsagePercentileCPU(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/BUILD index 774d2da69..f858867d3 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/limitranger", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", @@ -36,7 +36,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/limitranger", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/admission.go index 46486c37d..73336b7f5 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/admission.go @@ -32,7 +32,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" corelisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -50,8 +50,8 @@ func Register(plugins *admission.Plugins) { }) } -// limitRanger enforces usage limits on a per resource basis in the namespace -type limitRanger struct { +// LimitRanger enforces usage limits on a per resource basis in the namespace +type LimitRanger struct { *admission.Handler client internalclientset.Interface actions LimitRangerActions @@ -64,18 +64,22 @@ type limitRanger struct { liveTTL time.Duration } +var _ admission.MutationInterface = &LimitRanger{} +var _ admission.ValidationInterface = &LimitRanger{} +var _ kubeapiserveradmission.WantsInternalKubeInformerFactory = &LimitRanger{} + type liveLookupEntry struct { expiry time.Time items []*api.LimitRange } -func (l *limitRanger) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { +func (l *LimitRanger) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { limitRangeInformer := f.Core().InternalVersion().LimitRanges() l.SetReadyFunc(limitRangeInformer.Informer().HasSynced) l.lister = limitRangeInformer.Lister() } -func (l *limitRanger) Validate() error { +func (l *LimitRanger) ValidateInitialization() error { if l.lister == nil { return fmt.Errorf("missing limitRange lister") } @@ -86,7 +90,16 @@ func (l *limitRanger) Validate() error { } // Admit admits resources into cluster that do not violate any defined LimitRange in the namespace -func (l *limitRanger) Admit(a admission.Attributes) (err error) { +func (l *LimitRanger) Admit(a admission.Attributes) (err error) { + return l.runLimitFunc(a, l.actions.MutateLimit) +} + +// Validate admits resources into cluster that do not violate any defined LimitRange in the namespace +func (l *LimitRanger) Validate(a admission.Attributes) (err error) { + return l.runLimitFunc(a, l.actions.ValidateLimit) +} + +func (l *LimitRanger) runLimitFunc(a admission.Attributes, limitFn func(limitRange *api.LimitRange, kind string, obj runtime.Object) error) (err error) { if !l.actions.SupportsAttributes(a) { return nil } @@ -100,9 +113,31 @@ func (l *limitRanger) Admit(a admission.Attributes) (err error) { } } + items, err := l.GetLimitRanges(a) + if err != nil { + return err + } + + // ensure it meets each prescribed min/max + for i := range items { + limitRange := items[i] + + if !l.actions.SupportsLimit(limitRange) { + continue + } + + err = limitFn(limitRange, a.GetResource().Resource, a.GetObject()) + if err != nil { + return admission.NewForbidden(a, err) + } + } + return nil +} + +func (l *LimitRanger) GetLimitRanges(a admission.Attributes) ([]*api.LimitRange, error) { items, err := l.lister.LimitRanges(a.GetNamespace()).List(labels.Everything()) if err != nil { - return admission.NewForbidden(a, fmt.Errorf("unable to %s %v at this time because there was an error enforcing limit ranges", a.GetOperation(), a.GetResource())) + return nil, admission.NewForbidden(a, fmt.Errorf("unable to %s %v at this time because there was an error enforcing limit ranges", a.GetOperation(), a.GetResource())) } // if there are no items held in our indexer, check our live-lookup LRU, if that misses, do the live lookup to prime it. @@ -116,7 +151,7 @@ func (l *limitRanger) Admit(a admission.Attributes) (err error) { // throttling - see #22422 for details. liveList, err := l.client.Core().LimitRanges(a.GetNamespace()).List(metav1.ListOptions{}) if err != nil { - return admission.NewForbidden(a, err) + return nil, admission.NewForbidden(a, err) } newEntry := liveLookupEntry{expiry: time.Now().Add(l.liveTTL)} for i := range liveList.Items { @@ -133,24 +168,11 @@ func (l *limitRanger) Admit(a admission.Attributes) (err error) { } - // ensure it meets each prescribed min/max - for i := range items { - limitRange := items[i] - - if !l.actions.SupportsLimit(limitRange) { - continue - } - - err = l.actions.Limit(limitRange, a.GetResource().Resource, a.GetObject()) - if err != nil { - return admission.NewForbidden(a, err) - } - } - return nil + return items, nil } // NewLimitRanger returns an object that enforces limits based on the supplied limit function -func NewLimitRanger(actions LimitRangerActions) (admission.Interface, error) { +func NewLimitRanger(actions LimitRangerActions) (*LimitRanger, error) { liveLookupCache, err := lru.New(10000) if err != nil { return nil, err @@ -160,7 +182,7 @@ func NewLimitRanger(actions LimitRangerActions) (admission.Interface, error) { actions = &DefaultLimitRangerActions{} } - return &limitRanger{ + return &LimitRanger{ Handler: admission.NewHandler(admission.Create, admission.Update), actions: actions, liveLookupCache: liveLookupCache, @@ -168,10 +190,10 @@ func NewLimitRanger(actions LimitRangerActions) (admission.Interface, error) { }, nil } -var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&limitRanger{}) -var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&limitRanger{}) +var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&LimitRanger{}) +var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&LimitRanger{}) -func (a *limitRanger) SetInternalKubeClientSet(client internalclientset.Interface) { +func (a *LimitRanger) SetInternalKubeClientSet(client internalclientset.Interface) { a.client = client } @@ -399,12 +421,23 @@ var _ LimitRangerActions = &DefaultLimitRangerActions{} // Limit enforces resource requirements of incoming resources against enumerated constraints // on the LimitRange. It may modify the incoming object to apply default resource requirements // if not specified, and enumerated on the LimitRange -func (d *DefaultLimitRangerActions) Limit(limitRange *api.LimitRange, resourceName string, obj runtime.Object) error { +func (d *DefaultLimitRangerActions) MutateLimit(limitRange *api.LimitRange, resourceName string, obj runtime.Object) error { switch resourceName { case "pods": - return PodLimitFunc(limitRange, obj.(*api.Pod)) + return PodMutateLimitFunc(limitRange, obj.(*api.Pod)) + } + return nil +} + +// Limit enforces resource requirements of incoming resources against enumerated constraints +// on the LimitRange. It may modify the incoming object to apply default resource requirements +// if not specified, and enumerated on the LimitRange +func (d *DefaultLimitRangerActions) ValidateLimit(limitRange *api.LimitRange, resourceName string, obj runtime.Object) error { + switch resourceName { + case "pods": + return PodValidateLimitFunc(limitRange, obj.(*api.Pod)) case "persistentvolumeclaims": - return PersistentVolumeClaimLimitFunc(limitRange, obj.(*api.PersistentVolumeClaim)) + return PersistentVolumeClaimValidateLimitFunc(limitRange, obj.(*api.PersistentVolumeClaim)) } return nil } @@ -424,11 +457,11 @@ func (d *DefaultLimitRangerActions) SupportsLimit(limitRange *api.LimitRange) bo return true } -// PersistentVolumeClaimLimitFunc enforces storage limits for PVCs. +// PersistentVolumeClaimValidateLimitFunc enforces storage limits for PVCs. // Users request storage via pvc.Spec.Resources.Requests. Min/Max is enforced by an admin with LimitRange. // Claims will not be modified with default values because storage is a required part of pvc.Spec. // All storage enforced values *only* apply to pvc.Spec.Resources.Requests. -func PersistentVolumeClaimLimitFunc(limitRange *api.LimitRange, pvc *api.PersistentVolumeClaim) error { +func PersistentVolumeClaimValidateLimitFunc(limitRange *api.LimitRange, pvc *api.PersistentVolumeClaim) error { var errs []error for i := range limitRange.Spec.Limits { limit := limitRange.Spec.Limits[i] @@ -452,14 +485,19 @@ func PersistentVolumeClaimLimitFunc(limitRange *api.LimitRange, pvc *api.Persist return utilerrors.NewAggregate(errs) } -// PodLimitFunc enforces resource requirements enumerated by the pod against +// PodMutateLimitFunc sets resource requirements enumerated by the pod against // the specified LimitRange. The pod may be modified to apply default resource // requirements if not specified, and enumerated on the LimitRange -func PodLimitFunc(limitRange *api.LimitRange, pod *api.Pod) error { - var errs []error - +func PodMutateLimitFunc(limitRange *api.LimitRange, pod *api.Pod) error { defaultResources := defaultContainerResourceRequirements(limitRange) mergePodResourceRequirements(pod, &defaultResources) + return nil +} + +// PodValidateLimitFunc enforces resource requirements enumerated by the pod against +// the specified LimitRange. +func PodValidateLimitFunc(limitRange *api.LimitRange, pod *api.Pod) error { + var errs []error for i := range limitRange.Spec.Limits { limit := limitRange.Spec.Limits[i] diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/admission_test.go index f6fd2c925..2e864ba36 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/admission_test.go @@ -29,7 +29,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/admission" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -430,7 +430,11 @@ func TestPodLimitFunc(t *testing.T) { } for i := range successCases { test := successCases[i] - err := PodLimitFunc(&test.limitRange, &test.pod) + err := PodMutateLimitFunc(&test.limitRange, &test.pod) + if err != nil { + t.Errorf("Unexpected error for pod: %s, %v", test.pod.Name, err) + } + err = PodValidateLimitFunc(&test.limitRange, &test.pod) if err != nil { t.Errorf("Unexpected error for pod: %s, %v", test.pod.Name, err) } @@ -610,7 +614,11 @@ func TestPodLimitFunc(t *testing.T) { } for i := range errorCases { test := errorCases[i] - err := PodLimitFunc(&test.limitRange, &test.pod) + err := PodMutateLimitFunc(&test.limitRange, &test.pod) + if err != nil { + t.Errorf("Unexpected error for pod: %s, %v", test.pod.Name, err) + } + err = PodValidateLimitFunc(&test.limitRange, &test.pod) if err == nil { t.Errorf("Expected error for pod: %s", test.pod.Name) } @@ -628,7 +636,7 @@ func getLocalStorageResourceList(ephemeralStorage string) api.ResourceList { func TestPodLimitFuncApplyDefault(t *testing.T) { limitRange := validLimitRange() testPod := validPodInit(validPod("foo", 1, getResourceRequirements(api.ResourceList{}, api.ResourceList{})), getResourceRequirements(api.ResourceList{}, api.ResourceList{})) - err := PodLimitFunc(&limitRange, &testPod) + err := PodMutateLimitFunc(&limitRange, &testPod) if err != nil { t.Errorf("Unexpected error for valid pod: %s, %v", testPod.Name, err) } @@ -641,16 +649,16 @@ func TestPodLimitFuncApplyDefault(t *testing.T) { requestCpu := container.Resources.Requests.Cpu().String() if limitMemory != "10Mi" { - t.Errorf("Unexpected memory value %s", limitMemory) + t.Errorf("Unexpected limit memory value %s", limitMemory) } if limitCpu != "75m" { - t.Errorf("Unexpected cpu value %s", limitCpu) + t.Errorf("Unexpected limit cpu value %s", limitCpu) } if requestMemory != "5Mi" { - t.Errorf("Unexpected memory value %s", requestMemory) + t.Errorf("Unexpected request memory value %s", requestMemory) } if requestCpu != "50m" { - t.Errorf("Unexpected cpu value %s", requestCpu) + t.Errorf("Unexpected request cpu value %s", requestCpu) } } @@ -662,16 +670,16 @@ func TestPodLimitFuncApplyDefault(t *testing.T) { requestCpu := container.Resources.Requests.Cpu().String() if limitMemory != "10Mi" { - t.Errorf("Unexpected memory value %s", limitMemory) + t.Errorf("Unexpected limit memory value %s", limitMemory) } if limitCpu != "75m" { - t.Errorf("Unexpected cpu value %s", limitCpu) + t.Errorf("Unexpected limit cpu value %s", limitCpu) } if requestMemory != "5Mi" { - t.Errorf("Unexpected memory value %s", requestMemory) + t.Errorf("Unexpected request memory value %s", requestMemory) } if requestCpu != "50m" { - t.Errorf("Unexpected cpu value %s", requestCpu) + t.Errorf("Unexpected request cpu value %s", requestCpu) } } } @@ -687,11 +695,15 @@ func TestLimitRangerIgnoresSubresource(t *testing.T) { testPod := validPod("testPod", 1, api.ResourceRequirements{}) err = handler.Admit(admission.NewAttributesRecord(&testPod, nil, api.Kind("Pod").WithVersion("version"), limitRange.Namespace, "testPod", api.Resource("pods").WithVersion("version"), "", admission.Update, nil)) + if err != nil { + t.Fatal(err) + } + err = handler.Validate(admission.NewAttributesRecord(&testPod, nil, api.Kind("Pod").WithVersion("version"), limitRange.Namespace, "testPod", api.Resource("pods").WithVersion("version"), "", admission.Update, nil)) if err == nil { t.Errorf("Expected an error since the pod did not specify resource limits in its update call") } - err = handler.Admit(admission.NewAttributesRecord(&testPod, nil, api.Kind("Pod").WithVersion("version"), limitRange.Namespace, "testPod", api.Resource("pods").WithVersion("version"), "status", admission.Update, nil)) + err = handler.Validate(admission.NewAttributesRecord(&testPod, nil, api.Kind("Pod").WithVersion("version"), limitRange.Namespace, "testPod", api.Resource("pods").WithVersion("version"), "status", admission.Update, nil)) if err != nil { t.Errorf("Should have ignored calls to any subresource of pod %v", err) } @@ -709,11 +721,15 @@ func TestLimitRangerAdmitPod(t *testing.T) { testPod := validPod("testPod", 1, api.ResourceRequirements{}) err = handler.Admit(admission.NewAttributesRecord(&testPod, nil, api.Kind("Pod").WithVersion("version"), limitRange.Namespace, "testPod", api.Resource("pods").WithVersion("version"), "", admission.Update, nil)) + if err != nil { + t.Fatal(err) + } + err = handler.Validate(admission.NewAttributesRecord(&testPod, nil, api.Kind("Pod").WithVersion("version"), limitRange.Namespace, "testPod", api.Resource("pods").WithVersion("version"), "", admission.Update, nil)) if err == nil { t.Errorf("Expected an error since the pod did not specify resource limits in its update call") } - err = handler.Admit(admission.NewAttributesRecord(&testPod, nil, api.Kind("Pod").WithVersion("version"), limitRange.Namespace, "testPod", api.Resource("pods").WithVersion("version"), "status", admission.Update, nil)) + err = handler.Validate(admission.NewAttributesRecord(&testPod, nil, api.Kind("Pod").WithVersion("version"), limitRange.Namespace, "testPod", api.Resource("pods").WithVersion("version"), "status", admission.Update, nil)) if err != nil { t.Errorf("Should have ignored calls to any subresource of pod %v", err) } @@ -738,15 +754,15 @@ func newMockClientForTest(limitRanges []api.LimitRange) *fake.Clientset { } // newHandlerForTest returns a handler configured for testing. -func newHandlerForTest(c clientset.Interface) (admission.Interface, informers.SharedInformerFactory, error) { +func newHandlerForTest(c clientset.Interface) (*LimitRanger, informers.SharedInformerFactory, error) { f := informers.NewSharedInformerFactory(c, 5*time.Minute) handler, err := NewLimitRanger(&DefaultLimitRangerActions{}) if err != nil { return nil, f, err } - pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil) + pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil, nil, nil) pluginInitializer.Initialize(handler) - err = admission.Validate(handler) + err = admission.ValidateInitialization(handler) return handler, f, err } @@ -786,7 +802,7 @@ func TestPersistentVolumeClaimLimitFunc(t *testing.T) { } for i := range successCases { test := successCases[i] - err := PersistentVolumeClaimLimitFunc(&test.limitRange, &test.pvc) + err := PersistentVolumeClaimValidateLimitFunc(&test.limitRange, &test.pvc) if err != nil { t.Errorf("Unexpected error for pvc: %s, %v", test.pvc.Name, err) } @@ -804,7 +820,7 @@ func TestPersistentVolumeClaimLimitFunc(t *testing.T) { } for i := range errorCases { test := errorCases[i] - err := PersistentVolumeClaimLimitFunc(&test.limitRange, &test.pvc) + err := PersistentVolumeClaimValidateLimitFunc(&test.limitRange, &test.pvc) if err == nil { t.Errorf("Expected error for pvc: %s", test.pvc.Name) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/interfaces.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/interfaces.go index f42b3269b..4c520c684 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/interfaces.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/limitranger/interfaces.go @@ -19,12 +19,14 @@ package limitranger import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) type LimitRangerActions interface { - // Limit is a pluggable function to enforce limits on the object. - Limit(limitRange *api.LimitRange, kind string, obj runtime.Object) error + // MutateLimit is a pluggable function to set limits on the object. + MutateLimit(limitRange *api.LimitRange, kind string, obj runtime.Object) error + // ValidateLimits is a pluggable function to enforce limits on the object. + ValidateLimit(limitRange *api.LimitRange, kind string, obj runtime.Object) error // SupportsAttributes is a pluggable function to allow overridding what resources the limitranger // supports. SupportsAttributes(attr admission.Attributes) bool diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/BUILD index c735795a8..649aa5678 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", @@ -28,7 +28,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/admission.go index f7f2b343a..51e113af0 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/admission.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" corelisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -37,19 +37,21 @@ func Register(plugins *admission.Plugins) { }) } -// provision is an implementation of admission.Interface. +// Provision is an implementation of admission.Interface. // It looks at all incoming requests in a namespace context, and if the namespace does not exist, it creates one. // It is useful in deployments that do not want to restrict creation of a namespace prior to its usage. -type provision struct { +type Provision struct { *admission.Handler client internalclientset.Interface namespaceLister corelisters.NamespaceLister } -var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&provision{}) -var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&provision{}) +var _ admission.MutationInterface = &Provision{} +var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&Provision{}) +var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&Provision{}) -func (p *provision) Admit(a admission.Attributes) error { +// Admit makes an admission decision based on the request attributes +func (p *Provision) Admit(a admission.Attributes) error { // if we're here, then we've already passed authentication, so we're allowed to do what we're trying to do // if we're here, then the API server has found a route, which means that if we have a non-empty namespace // its a namespaced resource. @@ -87,23 +89,26 @@ func (p *provision) Admit(a admission.Attributes) error { } // NewProvision creates a new namespace provision admission control handler -func NewProvision() admission.Interface { - return &provision{ +func NewProvision() *Provision { + return &Provision{ Handler: admission.NewHandler(admission.Create), } } -func (p *provision) SetInternalKubeClientSet(client internalclientset.Interface) { +// SetInternalKubeClientSet implements the WantsInternalKubeClientSet interface. +func (p *Provision) SetInternalKubeClientSet(client internalclientset.Interface) { p.client = client } -func (p *provision) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { +// SetInternalKubeInformerFactory implements the WantsInternalKubeInformerFactory interface. +func (p *Provision) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { namespaceInformer := f.Core().InternalVersion().Namespaces() p.namespaceLister = namespaceInformer.Lister() p.SetReadyFunc(namespaceInformer.Informer().HasSynced) } -func (p *provision) Validate() error { +// ValidateInitialization implements the InitializationValidator interface. +func (p *Provision) ValidateInitialization() error { if p.namespaceLister == nil { return fmt.Errorf("missing namespaceLister") } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/admission_test.go index f7429d025..57e444b69 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision/admission_test.go @@ -27,7 +27,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/admission" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -35,12 +35,12 @@ import ( ) // newHandlerForTest returns the admission controller configured for testing. -func newHandlerForTest(c clientset.Interface) (admission.Interface, informers.SharedInformerFactory, error) { +func newHandlerForTest(c clientset.Interface) (admission.MutationInterface, informers.SharedInformerFactory, error) { f := informers.NewSharedInformerFactory(c, 5*time.Minute) handler := NewProvision() - pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil) + pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil, nil, nil) pluginInitializer.Initialize(handler) - err := admission.Validate(handler) + err := admission.ValidateInitialization(handler) return handler, f, err } @@ -129,19 +129,15 @@ func TestAdmissionNamespaceExists(t *testing.T) { // TestIgnoreAdmission validates that a request is ignored if its not a create func TestIgnoreAdmission(t *testing.T) { - namespace := "test" mockClient := newMockClientForTest([]string{}) handler, informerFactory, err := newHandlerForTest(mockClient) if err != nil { t.Errorf("unexpected error initializing handler: %v", err) } informerFactory.Start(wait.NeverStop) - chainHandler := admission.NewChainHandler(handler) - pod := newPod(namespace) - err = chainHandler.Admit(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), pod.Namespace, pod.Name, api.Resource("pods").WithVersion("version"), "", admission.Update, nil)) - if err != nil { - t.Errorf("unexpected error returned from admission handler") + if handler.Handles(admission.Update) { + t.Errorf("expected not to handle Update") } if hasCreateNamespaceAction(mockClient) { t.Errorf("unexpected create namespace action") diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/BUILD index c5ee77024..8da3f51b7 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/namespace/exists", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", @@ -28,7 +28,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/namespace/exists", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/admission.go index 8bf1e6ecc..513074822 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/admission.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" corelisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -37,19 +37,21 @@ func Register(plugins *admission.Plugins) { }) } -// exists is an implementation of admission.Interface. +// Exists is an implementation of admission.Interface. // It rejects all incoming requests in a namespace context if the namespace does not exist. // It is useful in deployments that want to enforce pre-declaration of a Namespace resource. -type exists struct { +type Exists struct { *admission.Handler client internalclientset.Interface namespaceLister corelisters.NamespaceLister } -var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&exists{}) -var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&exists{}) +var _ admission.ValidationInterface = &Exists{} +var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&Exists{}) +var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&Exists{}) -func (e *exists) Admit(a admission.Attributes) error { +// Validate makes an admission decision based on the request attributes +func (e *Exists) Validate(a admission.Attributes) error { // if we're here, then we've already passed authentication, so we're allowed to do what we're trying to do // if we're here, then the API server has found a route, which means that if we have a non-empty namespace // its a namespaced resource. @@ -82,23 +84,26 @@ func (e *exists) Admit(a admission.Attributes) error { } // NewExists creates a new namespace exists admission control handler -func NewExists() admission.Interface { - return &exists{ +func NewExists() *Exists { + return &Exists{ Handler: admission.NewHandler(admission.Create, admission.Update, admission.Delete), } } -func (e *exists) SetInternalKubeClientSet(client internalclientset.Interface) { +// SetInternalKubeClientSet implements the WantsInternalKubeClientSet interface. +func (e *Exists) SetInternalKubeClientSet(client internalclientset.Interface) { e.client = client } -func (e *exists) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { +// SetInternalKubeInformerFactory implements the WantsInternalKubeInformerFactory interface. +func (e *Exists) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { namespaceInformer := f.Core().InternalVersion().Namespaces() e.namespaceLister = namespaceInformer.Lister() e.SetReadyFunc(namespaceInformer.Informer().HasSynced) } -func (e *exists) Validate() error { +// ValidateInitialization implements the InitializationValidator interface. +func (e *Exists) ValidateInitialization() error { if e.namespaceLister == nil { return fmt.Errorf("missing namespaceLister") } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/admission_test.go index 79f23bb3d..d040b7e21 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/namespace/exists/admission_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/admission" core "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -34,12 +34,12 @@ import ( ) // newHandlerForTest returns the admission controller configured for testing. -func newHandlerForTest(c clientset.Interface) (admission.Interface, informers.SharedInformerFactory, error) { +func newHandlerForTest(c clientset.Interface) (admission.ValidationInterface, informers.SharedInformerFactory, error) { f := informers.NewSharedInformerFactory(c, 5*time.Minute) handler := NewExists() - pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil) + pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil, nil, nil) pluginInitializer.Initialize(handler) - err := admission.Validate(handler) + err := admission.ValidateInitialization(handler) return handler, f, err } @@ -87,7 +87,7 @@ func TestAdmissionNamespaceExists(t *testing.T) { informerFactory.Start(wait.NeverStop) pod := newPod(namespace) - err = handler.Admit(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), pod.Namespace, pod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err = handler.Validate(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), pod.Namespace, pod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("unexpected error returned from admission handler") } @@ -107,7 +107,7 @@ func TestAdmissionNamespaceDoesNotExist(t *testing.T) { informerFactory.Start(wait.NeverStop) pod := newPod(namespace) - err = handler.Admit(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), pod.Namespace, pod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err = handler.Validate(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), pod.Namespace, pod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err == nil { actions := "" for _, action := range mockClient.Actions() { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/BUILD index d35a2507f..f90988542 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/BUILD @@ -11,8 +11,8 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/noderestriction", deps = [ - "//pkg/api:go_default_library", "//pkg/api/pod:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/policy:go_default_library", "//pkg/auth/nodeidentifier:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -31,7 +31,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/noderestriction", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/policy:go_default_library", "//pkg/auth/nodeidentifier:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/admission.go index f1f77a955..71feec8c3 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/admission.go @@ -24,8 +24,8 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" podutil "k8s.io/kubernetes/pkg/api/pod" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/auth/nodeidentifier" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -69,7 +69,7 @@ func (p *nodePlugin) SetInternalKubeClientSet(f internalclientset.Interface) { p.podsGetter = f.Core() } -func (p *nodePlugin) Validate() error { +func (p *nodePlugin) ValidateInitialization() error { if p.nodeIdentifier == nil { return fmt.Errorf("%s requires a node identifier", PluginName) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/admission_test.go index 7c109b2d3..e7737d43e 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/admission_test.go @@ -23,7 +23,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/policy" policyapi "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/auth/nodeidentifier" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/BUILD index 36299294a..0c04cbc99 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/aws:go_default_library", "//pkg/cloudprovider/providers/gce:go_default_library", @@ -32,7 +32,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/cloudprovider/providers/aws:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/admission.go index 92dd76f99..86e1921fc 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/admission.go @@ -24,7 +24,7 @@ import ( "github.com/golang/glog" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/cloudprovider/providers/aws" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" @@ -52,6 +52,7 @@ type persistentVolumeLabel struct { gceCloudProvider *gce.GCECloud } +var _ admission.MutationInterface = &persistentVolumeLabel{} var _ kubeapiserveradmission.WantsCloudConfig = &persistentVolumeLabel{} // NewPersistentVolumeLabel returns an admission.Interface implementation which adds labels to PersistentVolume CREATE requests, diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/admission_test.go index 2094edd00..ddf02e69e 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/admission_test.go @@ -24,7 +24,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/cloudprovider/providers/aws" ) @@ -78,7 +78,7 @@ func mockVolumeLabels(labels map[string]string) *mockVolumes { // TestAdmission func TestAdmission(t *testing.T) { pvHandler := NewPersistentVolumeLabel() - handler := admission.NewChainHandler(pvHandler) + handler := admission.NewChainHandler(admission.NewNamedHandler("pv", pvHandler)) ignoredPV := api.PersistentVolume{ ObjectMeta: metav1.ObjectMeta{Name: "noncloud", Namespace: "myns"}, Spec: api.PersistentVolumeSpec{ diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/BUILD index 078121a3f..90a12f133 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/storage:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/controller:go_default_library", @@ -29,8 +29,8 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", "//pkg/client/listers/storage/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/admission.go index eb7b11cda..97f33fbe9 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/admission.go @@ -21,8 +21,8 @@ import ( "io" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" - apihelper "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + apihelper "k8s.io/kubernetes/pkg/apis/core/helper" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" pvlister "k8s.io/kubernetes/pkg/client/listers/core/internalversion" storagelisters "k8s.io/kubernetes/pkg/client/listers/storage/internalversion" @@ -43,6 +43,7 @@ func Register(plugins *admission.Plugins) { } var _ admission.Interface = &persistentVolumeClaimResize{} +var _ admission.ValidationInterface = &persistentVolumeClaimResize{} var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&persistentVolumeClaimResize{}) type persistentVolumeClaimResize struct { @@ -68,8 +69,8 @@ func (pvcr *persistentVolumeClaimResize) SetInternalKubeInformerFactory(f inform }) } -// Validate ensures lister is set. -func (pvcr *persistentVolumeClaimResize) Validate() error { +// ValidateInitialization ensures lister is set. +func (pvcr *persistentVolumeClaimResize) ValidateInitialization() error { if pvcr.pvLister == nil { return fmt.Errorf("missing persistent volume lister") } @@ -79,7 +80,7 @@ func (pvcr *persistentVolumeClaimResize) Validate() error { return nil } -func (pvcr *persistentVolumeClaimResize) Admit(a admission.Attributes) error { +func (pvcr *persistentVolumeClaimResize) Validate(a admission.Attributes) error { if a.GetResource().GroupResource() != api.Resource("persistentvolumeclaims") { return nil } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/admission_test.go index 237b05382..ab5e7817b 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/resize/admission_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/storage" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" "k8s.io/kubernetes/pkg/controller" @@ -272,7 +272,7 @@ func TestPVCResizeAdmission(t *testing.T) { ctrl := newPlugin() informerFactory := informers.NewSharedInformerFactory(nil, controller.NoResyncPeriodFunc()) ctrl.SetInternalKubeInformerFactory(informerFactory) - err := ctrl.Validate() + err := ctrl.ValidateInitialization() if err != nil { t.Fatalf("neither pv lister nor storageclass lister can be nil") } @@ -323,7 +323,7 @@ func TestPVCResizeAdmission(t *testing.T) { operation := admission.Update attributes := admission.NewAttributesRecord(tc.newObj, tc.oldObj, schema.GroupVersionKind{}, metav1.NamespaceDefault, "foo", tc.resource, tc.subresource, operation, nil) - err := ctrl.Admit(attributes) + err := ctrl.Validate(attributes) fmt.Println(tc.name) fmt.Println(err) if !tc.checkError(err) { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/BUILD index efd601712..f0c03fb8c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/podnodeselector", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", @@ -32,7 +32,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/podnodeselector", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/admission.go index 469286f1e..84bb1d6ef 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/admission.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" corelisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -59,6 +59,8 @@ type podNodeSelector struct { clusterNodeSelectors map[string]string } +var _ admission.MutationInterface = &podNodeSelector{} +var _ admission.ValidationInterface = &podNodeSelector{} var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&podNodeSelector{}) var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&podNodeSelector{}) @@ -93,77 +95,105 @@ func readConfig(config io.Reader) *pluginConfig { // Admit enforces that pod and its namespace node label selectors matches at least a node in the cluster. func (p *podNodeSelector) Admit(a admission.Attributes) error { - resource := a.GetResource().GroupResource() - if resource != api.Resource("pods") { + if shouldIgnore(a) { return nil } - if a.GetSubresource() != "" { - // only run the checks below on pods proper and not subresources + updateInitialized, err := util.IsUpdatingInitializedObject(a) + if err != nil { + return err + } + if updateInitialized { + // node selector of an initialized pod is immutable return nil } + if !p.WaitForReady() { + return admission.NewForbidden(a, fmt.Errorf("not yet ready to handle request")) + } - obj := a.GetObject() - pod, ok := obj.(*api.Pod) - if !ok { - glog.Errorf("expected pod but got %s", a.GetKind().Kind) - return nil + resource := a.GetResource().GroupResource() + pod := a.GetObject().(*api.Pod) + namespaceNodeSelector, err := p.getNamespaceNodeSelectorMap(a.GetNamespace()) + if err != nil { + return err + } + + if labels.Conflicts(namespaceNodeSelector, labels.Set(pod.Spec.NodeSelector)) { + return errors.NewForbidden(resource, pod.Name, fmt.Errorf("pod node label selector conflicts with its namespace node label selector")) } + // Merge pod node selector = namespace node selector + current pod node selector + // second selector wins + podNodeSelectorLabels := labels.Merge(namespaceNodeSelector, pod.Spec.NodeSelector) + pod.Spec.NodeSelector = map[string]string(podNodeSelectorLabels) + return p.Validate(a) +} + +// Validate ensures that the pod node selector is allowed +func (p *podNodeSelector) Validate(a admission.Attributes) error { + if shouldIgnore(a) { + return nil + } if !p.WaitForReady() { return admission.NewForbidden(a, fmt.Errorf("not yet ready to handle request")) } - updateInitialized, err := util.IsUpdatingInitializedObject(a) + resource := a.GetResource().GroupResource() + pod := a.GetObject().(*api.Pod) + + namespaceNodeSelector, err := p.getNamespaceNodeSelectorMap(a.GetNamespace()) if err != nil { return err } - if updateInitialized { - // node selector of an initialized pod is immutable - return nil + if labels.Conflicts(namespaceNodeSelector, labels.Set(pod.Spec.NodeSelector)) { + return errors.NewForbidden(resource, pod.Name, fmt.Errorf("pod node label selector conflicts with its namespace node label selector")) + } + + // whitelist verification + whitelist, err := labels.ConvertSelectorToLabelsMap(p.clusterNodeSelectors[a.GetNamespace()]) + if err != nil { + return err + } + if !labels.AreLabelsInWhiteList(pod.Spec.NodeSelector, whitelist) { + return errors.NewForbidden(resource, pod.Name, fmt.Errorf("pod node label selector labels conflict with its namespace whitelist")) } - name := pod.Name - nsName := a.GetNamespace() - var namespace *api.Namespace + return nil +} - namespace, err = p.namespaceLister.Get(nsName) +func (p *podNodeSelector) getNamespaceNodeSelectorMap(namespaceName string) (labels.Set, error) { + namespace, err := p.namespaceLister.Get(namespaceName) if errors.IsNotFound(err) { - namespace, err = p.defaultGetNamespace(nsName) + namespace, err = p.defaultGetNamespace(namespaceName) if err != nil { if errors.IsNotFound(err) { - return err + return nil, err } - return errors.NewInternalError(err) + return nil, errors.NewInternalError(err) } } else if err != nil { - return errors.NewInternalError(err) + return nil, errors.NewInternalError(err) } - namespaceNodeSelector, err := p.getNodeSelectorMap(namespace) - if err != nil { - return err - } + return p.getNodeSelectorMap(namespace) +} - if labels.Conflicts(namespaceNodeSelector, labels.Set(pod.Spec.NodeSelector)) { - return errors.NewForbidden(resource, name, fmt.Errorf("pod node label selector conflicts with its namespace node label selector")) +func shouldIgnore(a admission.Attributes) bool { + resource := a.GetResource().GroupResource() + if resource != api.Resource("pods") { + return true } - - whitelist, err := labels.ConvertSelectorToLabelsMap(p.clusterNodeSelectors[namespace.Name]) - if err != nil { - return err + if a.GetSubresource() != "" { + // only run the checks below on pods proper and not subresources + return true } - // Merge pod node selector = namespace node selector + current pod node selector - podNodeSelectorLabels := labels.Merge(namespaceNodeSelector, pod.Spec.NodeSelector) - - // whitelist verification - if !labels.AreLabelsInWhiteList(podNodeSelectorLabels, whitelist) { - return errors.NewForbidden(resource, name, fmt.Errorf("pod node label selector labels conflict with its namespace whitelist")) + _, ok := a.GetObject().(*api.Pod) + if !ok { + glog.Errorf("expected pod but got %s", a.GetKind().Kind) + return true } - // Updated pod node selector = namespace node selector + current pod node selector - pod.Spec.NodeSelector = map[string]string(podNodeSelectorLabels) - return nil + return false } func NewPodNodeSelector(clusterNodeSelectors map[string]string) *podNodeSelector { @@ -183,7 +213,7 @@ func (p *podNodeSelector) SetInternalKubeInformerFactory(f informers.SharedInfor p.SetReadyFunc(namespaceInformer.Informer().HasSynced) } -func (p *podNodeSelector) Validate() error { +func (p *podNodeSelector) ValidateInitialization() error { if p.namespaceLister == nil { return fmt.Errorf("missing namespaceLister") } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/admission_test.go index 09c6779b9..cc2c730e0 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podnodeselector/admission_test.go @@ -23,7 +23,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -175,6 +175,12 @@ func TestPodAdmission(t *testing.T) { if test.admit && !labels.Equals(test.mergedNodeSelector, labels.Set(pod.Spec.NodeSelector)) { t.Errorf("Test: %s, expected: %s but got: %s", test.testName, test.mergedNodeSelector, pod.Spec.NodeSelector) } + err = handler.Validate(admission.NewAttributesRecord(pod, nil, api.Kind("Pod").WithVersion("version"), "testNamespace", namespace.ObjectMeta.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + if test.admit && err != nil { + t.Errorf("Test: %s, expected no error but got: %s", test.testName, err) + } else if !test.admit && err == nil { + t.Errorf("Test: %s, expected an error", test.testName) + } // handles update of uninitialized pod like it's newly created. err = handler.Admit(admission.NewAttributesRecord(pod, &oldPod, api.Kind("Pod").WithVersion("version"), "testNamespace", namespace.ObjectMeta.Name, api.Resource("pods").WithVersion("version"), "", admission.Update, nil)) @@ -186,6 +192,12 @@ func TestPodAdmission(t *testing.T) { if test.admit && !labels.Equals(test.mergedNodeSelector, labels.Set(pod.Spec.NodeSelector)) { t.Errorf("Test: %s, expected: %s but got: %s", test.testName, test.mergedNodeSelector, pod.Spec.NodeSelector) } + err = handler.Validate(admission.NewAttributesRecord(pod, &oldPod, api.Kind("Pod").WithVersion("version"), "testNamespace", namespace.ObjectMeta.Name, api.Resource("pods").WithVersion("version"), "", admission.Update, nil)) + if test.admit && err != nil { + t.Errorf("Test: %s, expected no error but got: %s", test.testName, err) + } else if !test.admit && err == nil { + t.Errorf("Test: %s, expected an error", test.testName) + } } } @@ -241,8 +253,8 @@ func TestIgnoreUpdatingInitializedPod(t *testing.T) { func newHandlerForTest(c clientset.Interface) (*podNodeSelector, informers.SharedInformerFactory, error) { f := informers.NewSharedInformerFactory(c, 5*time.Minute) handler := NewPodNodeSelector(nil) - pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil) + pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil, nil, nil) pluginInitializer.Initialize(handler) - err := admission.Validate(handler) + err := admission.ValidateInitialization(handler) return handler, f, err } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/BUILD index 396807dcd..ca7376afd 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/podpreset", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/settings:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", @@ -30,8 +30,9 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/podpreset", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/ref:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/settings:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/admission.go index 86bf707c8..30752a266 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/admission.go @@ -29,8 +29,9 @@ import ( "k8s.io/apimachinery/pkg/labels" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/ref" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/settings" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -58,6 +59,7 @@ type podPresetPlugin struct { lister settingslisters.PodPresetLister } +var _ admission.MutationInterface = &podPresetPlugin{} var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&podPresetPlugin{}) var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&podPresetPlugin{}) @@ -68,7 +70,7 @@ func NewPlugin() *podPresetPlugin { } } -func (plugin *podPresetPlugin) Validate() error { +func (plugin *podPresetPlugin) ValidateInitialization() error { if plugin.client == nil { return fmt.Errorf("%s requires a client", pluginName) } @@ -346,7 +348,7 @@ func mergeVolumes(volumes []api.Volume, podPresets []*settings.PodPreset) ([]api } func (c *podPresetPlugin) addEvent(pod *api.Pod, pip *settings.PodPreset, message string) { - ref, err := ref.GetReference(api.Scheme, pod) + ref, err := ref.GetReference(legacyscheme.Scheme, pod) if err != nil { glog.Errorf("pip %s: get reference for pod %s failed: %v", pip.GetName(), pod.GetName(), err) return diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/admission_test.go index bede2f6ca..af301ac51 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podpreset/admission_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" kadmission "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/settings" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -393,7 +393,7 @@ func TestMergeVolumes(t *testing.T) { // NewTestAdmission provides an admission plugin with test implementations of internal structs. It uses // an authorizer that always returns true. -func NewTestAdmission(lister settingslisters.PodPresetLister, objects ...runtime.Object) kadmission.Interface { +func NewTestAdmission(lister settingslisters.PodPresetLister, objects ...runtime.Object) kadmission.MutationInterface { // Build a test client that the admission plugin can use to look up the service account missing from its cache client := fake.NewSimpleClientset(objects...) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/BUILD index 6d16eb4df..d3af4b936 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", @@ -35,9 +35,9 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper/qos:go_default_library", - "//pkg/api/v1:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper/qos:go_default_library", + "//pkg/apis/core/v1:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/admission.go index 655a2e365..14ff93f22 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/admission.go @@ -27,9 +27,9 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" - qoshelper "k8s.io/kubernetes/pkg/api/helper/qos" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + api "k8s.io/kubernetes/pkg/apis/core" + qoshelper "k8s.io/kubernetes/pkg/apis/core/helper/qos" + k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" corelisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -57,6 +57,8 @@ const ( NSWLTolerations string = "scheduler.alpha.kubernetes.io/tolerationsWhitelist" ) +var _ admission.MutationInterface = &podTolerationsPlugin{} +var _ admission.ValidationInterface = &podTolerationsPlugin{} var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&podTolerationsPlugin{}) type podTolerationsPlugin struct { @@ -77,19 +79,7 @@ type podTolerationsPlugin struct { // scheduler.alpha.kubernetes.io/defaultTolerations and scheduler.alpha.kubernetes.io/tolerationsWhitelist // annotations keys. func (p *podTolerationsPlugin) Admit(a admission.Attributes) error { - resource := a.GetResource().GroupResource() - if resource != api.Resource("pods") { - return nil - } - if a.GetSubresource() != "" { - // only run the checks below on pods proper and not subresources - return nil - } - - obj := a.GetObject() - pod, ok := obj.(*api.Pod) - if !ok { - glog.Errorf("expected pod but got %s", a.GetKind().Kind) + if shouldIgnore(a) { return nil } @@ -97,35 +87,21 @@ func (p *podTolerationsPlugin) Admit(a admission.Attributes) error { return admission.NewForbidden(a, fmt.Errorf("not yet ready to handle request")) } - nsName := a.GetNamespace() - namespace, err := p.namespaceLister.Get(nsName) - if errors.IsNotFound(err) { - // in case of latency in our caches, make a call direct to storage to verify that it truly exists or not - namespace, err = p.client.Core().Namespaces().Get(nsName, metav1.GetOptions{}) - if err != nil { - if errors.IsNotFound(err) { - return err - } - return errors.NewInternalError(err) - } - } else if err != nil { - return errors.NewInternalError(err) - } - + pod := a.GetObject().(*api.Pod) var finalTolerations []api.Toleration updateUninitialized, err := util.IsUpdatingUninitializedObject(a) if err != nil { return err } if a.GetOperation() == admission.Create || updateUninitialized { - ts, err := p.getNamespaceDefaultTolerations(namespace) + ts, err := p.getNamespaceDefaultTolerations(a.GetNamespace()) if err != nil { return err } // If the namespace has not specified its default tolerations, // fall back to cluster's default tolerations. - if len(ts) == 0 { + if ts == nil { ts = p.pluginConfig.Default } @@ -148,40 +124,71 @@ func (p *podTolerationsPlugin) Admit(a admission.Attributes) error { finalTolerations = pod.Spec.Tolerations } + if qoshelper.GetPodQOS(pod) != api.PodQOSBestEffort { + finalTolerations = tolerations.MergeTolerations(finalTolerations, []api.Toleration{ + { + Key: algorithm.TaintNodeMemoryPressure, + Operator: api.TolerationOpExists, + Effect: api.TaintEffectNoSchedule, + }, + }) + } + pod.Spec.Tolerations = finalTolerations + + return p.Validate(a) +} +func (p *podTolerationsPlugin) Validate(a admission.Attributes) error { + if shouldIgnore(a) { + return nil + } + + if !p.WaitForReady() { + return admission.NewForbidden(a, fmt.Errorf("not yet ready to handle request")) + } + // whitelist verification. - if len(finalTolerations) > 0 { - whitelist, err := p.getNamespaceTolerationsWhitelist(namespace) + pod := a.GetObject().(*api.Pod) + if len(pod.Spec.Tolerations) > 0 { + whitelist, err := p.getNamespaceTolerationsWhitelist(a.GetNamespace()) if err != nil { return err } // If the namespace has not specified its tolerations whitelist, // fall back to cluster's whitelist of tolerations. - if len(whitelist) == 0 { + if whitelist == nil { whitelist = p.pluginConfig.Whitelist } if len(whitelist) > 0 { // check if the merged pod tolerations satisfy its namespace whitelist - if !tolerations.VerifyAgainstWhitelist(finalTolerations, whitelist) { + if !tolerations.VerifyAgainstWhitelist(pod.Spec.Tolerations, whitelist) { return fmt.Errorf("pod tolerations (possibly merged with namespace default tolerations) conflict with its namespace whitelist") } } } - if qoshelper.GetPodQOS(pod) != api.PodQOSBestEffort { - finalTolerations = tolerations.MergeTolerations(finalTolerations, []api.Toleration{ - { - Key: algorithm.TaintNodeMemoryPressure, - Operator: api.TolerationOpExists, - Effect: api.TaintEffectNoSchedule, - }, - }) + return nil +} + +func shouldIgnore(a admission.Attributes) bool { + resource := a.GetResource().GroupResource() + if resource != api.Resource("pods") { + return true + } + if a.GetSubresource() != "" { + // only run the checks below on pods proper and not subresources + return true } - pod.Spec.Tolerations = finalTolerations - return nil + obj := a.GetObject() + _, ok := obj.(*api.Pod) + if !ok { + glog.Errorf("expected pod but got %s", a.GetKind().Kind) + return true + } + return false } func NewPodTolerationsPlugin(pluginConfig *pluginapi.Configuration) *podTolerationsPlugin { @@ -202,7 +209,7 @@ func (p *podTolerationsPlugin) SetInternalKubeInformerFactory(f informers.Shared } -func (p *podTolerationsPlugin) Validate() error { +func (p *podTolerationsPlugin) ValidateInitialization() error { if p.namespaceLister == nil { return fmt.Errorf("missing namespaceLister") } @@ -212,26 +219,72 @@ func (p *podTolerationsPlugin) Validate() error { return nil } -func (p *podTolerationsPlugin) getNamespaceDefaultTolerations(ns *api.Namespace) ([]api.Toleration, error) { +// in exceptional cases, this can result in two live calls, but once the cache catches up, that will stop. +func (p *podTolerationsPlugin) getNamespace(nsName string) (*api.Namespace, error) { + namespace, err := p.namespaceLister.Get(nsName) + if errors.IsNotFound(err) { + // in case of latency in our caches, make a call direct to storage to verify that it truly exists or not + namespace, err = p.client.Core().Namespaces().Get(nsName, metav1.GetOptions{}) + if err != nil { + if errors.IsNotFound(err) { + return nil, err + } + return nil, errors.NewInternalError(err) + } + } else if err != nil { + return nil, errors.NewInternalError(err) + } + + return namespace, nil +} + +func (p *podTolerationsPlugin) getNamespaceDefaultTolerations(nsName string) ([]api.Toleration, error) { + ns, err := p.getNamespace(nsName) + if err != nil { + return nil, err + } return extractNSTolerations(ns, NSDefaultTolerations) } -func (p *podTolerationsPlugin) getNamespaceTolerationsWhitelist(ns *api.Namespace) ([]api.Toleration, error) { +func (p *podTolerationsPlugin) getNamespaceTolerationsWhitelist(nsName string) ([]api.Toleration, error) { + ns, err := p.getNamespace(nsName) + if err != nil { + return nil, err + } return extractNSTolerations(ns, NSWLTolerations) } +// extractNSTolerations extracts default or whitelist of tolerations from +// following namespace annotations keys: "scheduler.alpha.kubernetes.io/defaultTolerations" +// and "scheduler.alpha.kubernetes.io/tolerationsWhitelist". If these keys are +// unset (nil), extractNSTolerations returns nil. If the value to these +// keys are set to empty, an empty toleration is returned, otherwise +// configured tolerations are returned. func extractNSTolerations(ns *api.Namespace, key string) ([]api.Toleration, error) { + // if a namespace does not have any annotations + if len(ns.Annotations) == 0 { + return nil, nil + } + + // if NSWLTolerations or NSDefaultTolerations does not exist + if _, ok := ns.Annotations[key]; !ok { + return nil, nil + } + + // if value is set to empty + if len(ns.Annotations[key]) == 0 { + return []api.Toleration{}, nil + } + var v1Tolerations []v1.Toleration - if len(ns.Annotations) > 0 && ns.Annotations[key] != "" { - err := json.Unmarshal([]byte(ns.Annotations[key]), &v1Tolerations) - if err != nil { - return nil, err - } + err := json.Unmarshal([]byte(ns.Annotations[key]), &v1Tolerations) + if err != nil { + return nil, err } ts := make([]api.Toleration, len(v1Tolerations)) for i := range v1Tolerations { - if err := k8s_api_v1.Convert_v1_Toleration_To_api_Toleration(&v1Tolerations[i], &ts[i], nil); err != nil { + if err := k8s_api_v1.Convert_v1_Toleration_To_core_Toleration(&v1Tolerations[i], &ts[i], nil); err != nil { return nil, err } } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/admission_test.go index d95dd5d37..4a669c62c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/admission_test.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -115,11 +115,11 @@ func TestPodAdmission(t *testing.T) { { pod: bestEffortPod, defaultClusterTolerations: []api.Toleration{{Key: "testKey", Operator: "Equal", Value: "testValue", Effect: "NoSchedule", TolerationSeconds: nil}}, - namespaceTolerations: []api.Toleration{}, + namespaceTolerations: nil, podTolerations: []api.Toleration{}, mergedTolerations: []api.Toleration{{Key: "testKey", Operator: "Equal", Value: "testValue", Effect: "NoSchedule", TolerationSeconds: nil}}, admit: true, - testName: "default cluster tolerations with empty pod tolerations", + testName: "default cluster tolerations with empty pod tolerations and nil namespace tolerations", }, { pod: bestEffortPod, @@ -161,8 +161,9 @@ func TestPodAdmission(t *testing.T) { defaultClusterTolerations: []api.Toleration{{Key: "testKey", Operator: "Equal", Value: "testValue2", Effect: "NoSchedule", TolerationSeconds: nil}}, namespaceTolerations: []api.Toleration{}, podTolerations: []api.Toleration{{Key: "testKey", Operator: "Equal", Value: "testValue1", Effect: "NoSchedule", TolerationSeconds: nil}}, - admit: false, - testName: "conflicting pod and default cluster tolerations", + mergedTolerations: []api.Toleration{{Key: "testKey", Operator: "Equal", Value: "testValue1", Effect: "NoSchedule", TolerationSeconds: nil}}, + admit: true, + testName: "conflicting pod and default cluster tolerations but overridden by empty namespace tolerations", }, { pod: bestEffortPod, @@ -174,6 +175,24 @@ func TestPodAdmission(t *testing.T) { admit: true, testName: "merged pod tolerations satisfy whitelist", }, + { + pod: bestEffortPod, + defaultClusterTolerations: []api.Toleration{{Key: "testKey", Operator: "Equal", Value: "testValue", Effect: "NoSchedule", TolerationSeconds: nil}}, + namespaceTolerations: []api.Toleration{}, + podTolerations: []api.Toleration{}, + mergedTolerations: []api.Toleration{}, + admit: true, + testName: "Override default cluster toleration by empty namespace level toleration", + }, + { + pod: bestEffortPod, + whitelist: []api.Toleration{}, + clusterWhitelist: []api.Toleration{{Key: "testKey", Operator: "Equal", Value: "testValue1", Effect: "NoSchedule", TolerationSeconds: nil}}, + podTolerations: []api.Toleration{{Key: "testKey", Operator: "Equal", Value: "testValue", Effect: "NoSchedule", TolerationSeconds: nil}}, + mergedTolerations: []api.Toleration{{Key: "testKey", Operator: "Equal", Value: "testValue", Effect: "NoSchedule", TolerationSeconds: nil}}, + admit: true, + testName: "pod toleration conflicts with default cluster white list which is overridden by empty namespace whitelist", + }, { pod: bestEffortPod, defaultClusterTolerations: []api.Toleration{}, @@ -211,7 +230,7 @@ func TestPodAdmission(t *testing.T) { }, } for _, test := range tests { - if len(test.namespaceTolerations) > 0 { + if test.namespaceTolerations != nil { tolerationStr, err := json.Marshal(test.namespaceTolerations) if err != nil { t.Errorf("error in marshalling namespace tolerations %v", test.namespaceTolerations) @@ -219,7 +238,7 @@ func TestPodAdmission(t *testing.T) { namespace.Annotations = map[string]string{NSDefaultTolerations: string(tolerationStr)} } - if len(test.whitelist) > 0 { + if test.whitelist != nil { tolerationStr, err := json.Marshal(test.whitelist) if err != nil { t.Errorf("error in marshalling namespace whitelist %v", test.whitelist) @@ -342,8 +361,8 @@ func newHandlerForTest(c clientset.Interface) (*podTolerationsPlugin, informers. return nil, nil, err } handler := NewPodTolerationsPlugin(pluginConfig) - pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil) + pluginInitializer := kubeadmission.NewPluginInitializer(c, f, nil, nil, nil, nil, nil) pluginInitializer.Initialize(handler) - err = admission.Validate(handler) + err = admission.ValidateInitialization(handler) return handler, f, err } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD index 526c88cba..ef58e5e1f 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD @@ -15,9 +15,8 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/doc.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/doc.go index 093d630a7..1ea05752d 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/doc.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package podtolerationrestriction // import "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/types.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/types.go index 28ae2eae6..d38c6e061 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/types.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/types.go @@ -18,7 +18,7 @@ package podtolerationrestriction import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD index 5b81f25db..9a48ebb8c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD @@ -18,7 +18,7 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/doc.go index 3640b251c..c21764bae 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.conversion.go index 8a44886b8..d72f98f2f 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.conversion.go @@ -24,7 +24,7 @@ import ( v1 "k8s.io/api/core/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" + core "k8s.io/kubernetes/pkg/apis/core" podtolerationrestriction "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction" unsafe "unsafe" ) @@ -43,8 +43,8 @@ func RegisterConversions(scheme *runtime.Scheme) error { } func autoConvert_v1alpha1_Configuration_To_podtolerationrestriction_Configuration(in *Configuration, out *podtolerationrestriction.Configuration, s conversion.Scope) error { - out.Default = *(*[]api.Toleration)(unsafe.Pointer(&in.Default)) - out.Whitelist = *(*[]api.Toleration)(unsafe.Pointer(&in.Whitelist)) + out.Default = *(*[]core.Toleration)(unsafe.Pointer(&in.Default)) + out.Whitelist = *(*[]core.Toleration)(unsafe.Pointer(&in.Whitelist)) return nil } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.deepcopy.go index 3f9e04a1d..98ab99072 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.deepcopy.go @@ -22,28 +22,9 @@ package v1alpha1 import ( v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Configuration).DeepCopyInto(out.(*Configuration)) - return nil - }, InType: reflect.TypeOf(&Configuration{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Configuration) DeepCopyInto(out *Configuration) { *out = *in diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD index 7ef5f8b76..42a0a1328 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["validation.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation", deps = [ - "//pkg/api/validation:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], @@ -36,7 +36,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/validation.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/validation.go index 6312ed12e..99a36ed3a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/validation.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/validation.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/api/validation" + "k8s.io/kubernetes/pkg/apis/core/validation" internalapi "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction" ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/validation_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/validation_test.go index da41e21dc..d444921a5 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/validation_test.go @@ -17,10 +17,9 @@ limitations under the License. package validation import ( - "testing" - - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" internalapi "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction" + "testing" ) func TestValidateConfiguration(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/zz_generated.deepcopy.go index 8760a045b..afe5bccec 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/zz_generated.deepcopy.go @@ -21,43 +21,24 @@ limitations under the License. package podtolerationrestriction import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - api "k8s.io/kubernetes/pkg/api" - reflect "reflect" + core "k8s.io/kubernetes/pkg/apis/core" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Configuration).DeepCopyInto(out.(*Configuration)) - return nil - }, InType: reflect.TypeOf(&Configuration{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Configuration) DeepCopyInto(out *Configuration) { *out = *in out.TypeMeta = in.TypeMeta if in.Default != nil { in, out := &in.Default, &out.Default - *out = make([]api.Toleration, len(*in)) + *out = make([]core.Toleration, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } if in.Whitelist != nil { in, out := &in.Whitelist, &out.Whitelist - *out = make([]api.Toleration, len(*in)) + *out = make([]core.Toleration, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/BUILD index 56360c9a7..db47cedb0 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/priority", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/scheduling:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/controller:go_default_library", @@ -29,7 +29,7 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/priority", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/scheduling:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/admission.go index 517058e24..646ff1763 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/admission.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apiserver/pkg/admission" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/scheduling" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -55,8 +55,8 @@ func Register(plugins *admission.Plugins) { }) } -// priorityPlugin is an implementation of admission.Interface. -type priorityPlugin struct { +// PriorityPlugin is an implementation of admission.Interface. +type PriorityPlugin struct { *admission.Handler client internalclientset.Interface lister schedulinglisters.PriorityClassLister @@ -64,17 +64,20 @@ type priorityPlugin struct { globalDefaultPriority *int32 } -var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&priorityPlugin{}) -var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&priorityPlugin{}) +var _ admission.MutationInterface = &PriorityPlugin{} +var _ admission.ValidationInterface = &PriorityPlugin{} +var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&PriorityPlugin{}) +var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&PriorityPlugin{}) // NewPlugin creates a new priority admission plugin. -func NewPlugin() admission.Interface { - return &priorityPlugin{ +func NewPlugin() *PriorityPlugin { + return &PriorityPlugin{ Handler: admission.NewHandler(admission.Create, admission.Update, admission.Delete), } } -func (p *priorityPlugin) Validate() error { +// ValidateInitialization implements the InitializationValidator interface. +func (p *PriorityPlugin) ValidateInitialization() error { if p.client == nil { return fmt.Errorf("%s requires a client", pluginName) } @@ -84,11 +87,13 @@ func (p *priorityPlugin) Validate() error { return nil } -func (p *priorityPlugin) SetInternalKubeClientSet(client internalclientset.Interface) { +// SetInternalKubeClientSet implements the WantsInternalKubeClientSet interface. +func (p *PriorityPlugin) SetInternalKubeClientSet(client internalclientset.Interface) { p.client = client } -func (p *priorityPlugin) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { +// SetInternalKubeInformerFactory implements the WantsInternalKubeInformerFactory interface. +func (p *PriorityPlugin) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { priorityInformer := f.Scheduling().InternalVersion().PriorityClasses() p.lister = priorityInformer.Lister() p.SetReadyFunc(priorityInformer.Informer().HasSynced) @@ -96,28 +101,42 @@ func (p *priorityPlugin) SetInternalKubeInformerFactory(f informers.SharedInform var ( podResource = api.Resource("pods") - priorityClassResource = api.Resource("priorityclasses") + priorityClassResource = scheduling.Resource("priorityclasses") ) -// Admit checks Pods and PriorityClasses and admits or rejects them. It also resolves the priority of pods based on their PriorityClass. -func (p *priorityPlugin) Admit(a admission.Attributes) error { +// Admit checks Pods and admits or rejects them. It also resolves the priority of pods based on their PriorityClass. +// Note that pod validation mechanism prevents update of a pod priority. +func (p *PriorityPlugin) Admit(a admission.Attributes) error { operation := a.GetOperation() - // Ignore all calls to subresources or resources other than pods. - // Ignore all operations other than Create and Update. + // Ignore all calls to subresources if len(a.GetSubresource()) != 0 { return nil } switch a.GetResource().GroupResource() { case podResource: - if operation == admission.Create || operation == admission.Update { + if operation == admission.Create { return p.admitPod(a) } return nil + default: + return nil + } +} + +// Validate checks PriorityClasses and admits or rejects them. +func (p *PriorityPlugin) Validate(a admission.Attributes) error { + operation := a.GetOperation() + // Ignore all calls to subresources + if len(a.GetSubresource()) != 0 { + return nil + } + + switch a.GetResource().GroupResource() { case priorityClassResource: if operation == admission.Create || operation == admission.Update { - return p.admitPriorityClass(a) + return p.validatePriorityClass(a) } if operation == admission.Delete { p.invalidateCachedDefaultPriority() @@ -131,8 +150,7 @@ func (p *priorityPlugin) Admit(a admission.Attributes) error { } // admitPod makes sure a new pod does not set spec.Priority field. It also makes sure that the PriorityClassName exists if it is provided and resolves the pod priority from the PriorityClassName. -// Note that pod validation mechanism prevents update of a pod priority. -func (p *priorityPlugin) admitPod(a admission.Attributes) error { +func (p *PriorityPlugin) admitPod(a admission.Attributes) error { operation := a.GetOperation() pod, ok := a.GetObject().(*api.Pod) if !ok { @@ -173,8 +191,8 @@ func (p *priorityPlugin) admitPod(a admission.Attributes) error { return nil } -// admitPriorityClass ensures that the value field is not larger than the highest user definable priority. If the GlobalDefault is set, it ensures that there is no other PriorityClass whose GlobalDefault is set. -func (p *priorityPlugin) admitPriorityClass(a admission.Attributes) error { +// validatePriorityClass ensures that the value field is not larger than the highest user definable priority. If the GlobalDefault is set, it ensures that there is no other PriorityClass whose GlobalDefault is set. +func (p *PriorityPlugin) validatePriorityClass(a admission.Attributes) error { operation := a.GetOperation() pc, ok := a.GetObject().(*scheduling.PriorityClass) if !ok { @@ -204,7 +222,7 @@ func (p *priorityPlugin) admitPriorityClass(a admission.Attributes) error { return nil } -func (p *priorityPlugin) getDefaultPriorityClass() (*scheduling.PriorityClass, error) { +func (p *PriorityPlugin) getDefaultPriorityClass() (*scheduling.PriorityClass, error) { list, err := p.lister.List(labels.Everything()) if err != nil { return nil, err @@ -217,7 +235,7 @@ func (p *priorityPlugin) getDefaultPriorityClass() (*scheduling.PriorityClass, e return nil, nil } -func (p *priorityPlugin) getDefaultPriority() (int32, error) { +func (p *PriorityPlugin) getDefaultPriority() (int32, error) { // If global default priority is cached, return it. if p.globalDefaultPriority != nil { return *p.globalDefaultPriority, nil @@ -236,6 +254,6 @@ func (p *priorityPlugin) getDefaultPriority() (int32, error) { } // invalidateCachedDefaultPriority sets global default priority to nil to indicate that it should be looked up again. -func (p *priorityPlugin) invalidateCachedDefaultPriority() { +func (p *PriorityPlugin) invalidateCachedDefaultPriority() { p.globalDefaultPriority = nil } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/admission_test.go index b1f48ca54..cf159efff 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/priority/admission_test.go @@ -25,14 +25,14 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/scheduling" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/features" ) -func addPriorityClasses(ctrl *priorityPlugin, priorityClasses []*scheduling.PriorityClass) { +func addPriorityClasses(ctrl *PriorityPlugin, priorityClasses []*scheduling.PriorityClass) { informerFactory := informers.NewSharedInformerFactory(nil, controller.NoResyncPeriodFunc()) ctrl.SetInternalKubeInformerFactory(informerFactory) // First add the existing classes to the cache. @@ -132,22 +132,22 @@ func TestPriorityClassAdmission(t *testing.T) { for _, test := range tests { glog.V(4).Infof("starting test %q", test.name) - ctrl := NewPlugin().(*priorityPlugin) + ctrl := NewPlugin() // Add existing priority classes. addPriorityClasses(ctrl, test.existingClasses) // Now add the new class. attrs := admission.NewAttributesRecord( test.newClass, nil, - api.Kind("PriorityClass").WithVersion("version"), + scheduling.Kind("PriorityClass").WithVersion("version"), "", "", - api.Resource("priorityclasses").WithVersion("version"), + scheduling.Resource("priorityclasses").WithVersion("version"), "", admission.Create, nil, ) - err := ctrl.Admit(attrs) + err := ctrl.Validate(attrs) glog.Infof("Got %v", err) if err != nil && !test.expectError { t.Errorf("Test %q: unexpected error received: %v", test.name, err) @@ -160,8 +160,8 @@ func TestPriorityClassAdmission(t *testing.T) { // TestDefaultPriority tests that default priority is resolved correctly. func TestDefaultPriority(t *testing.T) { - pcResource := api.Resource("priorityclasses").WithVersion("version") - pcKind := api.Kind("PriorityClass").WithVersion("version") + pcResource := scheduling.Resource("priorityclasses").WithVersion("version") + pcKind := scheduling.Kind("PriorityClass").WithVersion("version") updatedDefaultClass1 := *defaultClass1 updatedDefaultClass1.GlobalDefault = false @@ -209,7 +209,7 @@ func TestDefaultPriority(t *testing.T) { for _, test := range tests { glog.V(4).Infof("starting test %q", test.name) - ctrl := NewPlugin().(*priorityPlugin) + ctrl := NewPlugin() addPriorityClasses(ctrl, test.classesBefore) defaultPriority, err := ctrl.getDefaultPriority() if err != nil { @@ -219,7 +219,7 @@ func TestDefaultPriority(t *testing.T) { t.Errorf("Test %q: expected default priority %d, but got %d", test.name, test.expectedDefaultBefore, defaultPriority) } if test.attributes != nil { - err := ctrl.Admit(test.attributes) + err := ctrl.Validate(test.attributes) if err != nil { t.Errorf("Test %q: unexpected error received: %v", test.name, err) } @@ -383,7 +383,7 @@ func TestPodAdmission(t *testing.T) { for _, test := range tests { glog.V(4).Infof("starting test %q", test.name) - ctrl := NewPlugin().(*priorityPlugin) + ctrl := NewPlugin() // Add existing priority classes. addPriorityClasses(ctrl, test.existingClasses) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/BUILD index c2c0e0f47..d2518c15c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/BUILD @@ -17,12 +17,13 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/resourcequota", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", "//pkg/kubeapiserver/admission:go_default_library", "//pkg/quota:go_default_library", + "//pkg/quota/generic:go_default_library", "//pkg/util/reflector/prometheus:go_default_library", "//pkg/util/workqueue/prometheus:go_default_library", "//plugin/pkg/admission/resourcequota/apis/resourcequota:go_default_library", @@ -54,18 +55,15 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/resourcequota", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/controller:go_default_library", - "//pkg/quota:go_default_library", - "//pkg/quota/generic:go_default_library", "//pkg/quota/install:go_default_library", "//plugin/pkg/admission/resourcequota/apis/resourcequota:go_default_library", "//vendor/github.com/hashicorp/golang-lru:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/admission.go index cfb97af50..c6e89aad8 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/admission.go @@ -22,7 +22,7 @@ import ( "time" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" kubeapiserveradmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" @@ -50,19 +50,20 @@ func Register(plugins *admission.Plugins) { }) } -// quotaAdmission implements an admission controller that can enforce quota constraints -type quotaAdmission struct { +// QuotaAdmission implements an admission controller that can enforce quota constraints +type QuotaAdmission struct { *admission.Handler - config *resourcequotaapi.Configuration - stopCh <-chan struct{} - registry quota.Registry - numEvaluators int - quotaAccessor *quotaAccessor - evaluator Evaluator + config *resourcequotaapi.Configuration + stopCh <-chan struct{} + quotaConfiguration quota.Configuration + numEvaluators int + quotaAccessor *quotaAccessor + evaluator Evaluator } -var _ = kubeapiserveradmission.WantsInternalKubeClientSet("aAdmission{}) -var _ = kubeapiserveradmission.WantsQuotaRegistry("aAdmission{}) +var _ admission.ValidationInterface = &QuotaAdmission{} +var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&QuotaAdmission{}) +var _ = kubeapiserveradmission.WantsQuotaConfiguration(&QuotaAdmission{}) type liveLookupEntry struct { expiry time.Time @@ -72,13 +73,13 @@ type liveLookupEntry struct { // NewResourceQuota configures an admission controller that can enforce quota constraints // using the provided registry. The registry must have the capability to handle group/kinds that // are persisted by the server this admission controller is intercepting -func NewResourceQuota(config *resourcequotaapi.Configuration, numEvaluators int, stopCh <-chan struct{}) (admission.Interface, error) { +func NewResourceQuota(config *resourcequotaapi.Configuration, numEvaluators int, stopCh <-chan struct{}) (*QuotaAdmission, error) { quotaAccessor, err := newQuotaAccessor() if err != nil { return nil, err } - return "aAdmission{ + return &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), stopCh: stopCh, numEvaluators: numEvaluators, @@ -87,21 +88,21 @@ func NewResourceQuota(config *resourcequotaapi.Configuration, numEvaluators int, }, nil } -func (a *quotaAdmission) SetInternalKubeClientSet(client internalclientset.Interface) { +func (a *QuotaAdmission) SetInternalKubeClientSet(client internalclientset.Interface) { a.quotaAccessor.client = client } -func (a *quotaAdmission) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { +func (a *QuotaAdmission) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { a.quotaAccessor.lister = f.Core().InternalVersion().ResourceQuotas().Lister() } -func (a *quotaAdmission) SetQuotaRegistry(r quota.Registry) { - a.registry = r - a.evaluator = NewQuotaEvaluator(a.quotaAccessor, a.registry, nil, a.config, a.numEvaluators, a.stopCh) +func (a *QuotaAdmission) SetQuotaConfiguration(c quota.Configuration) { + a.quotaConfiguration = c + a.evaluator = NewQuotaEvaluator(a.quotaAccessor, a.quotaConfiguration, nil, a.config, a.numEvaluators, a.stopCh) } -// Validate ensures an authorizer is set. -func (a *quotaAdmission) Validate() error { +// ValidateInitialization ensures an authorizer is set. +func (a *QuotaAdmission) ValidateInitialization() error { if a.quotaAccessor == nil { return fmt.Errorf("missing quotaAccessor") } @@ -111,8 +112,8 @@ func (a *quotaAdmission) Validate() error { if a.quotaAccessor.lister == nil { return fmt.Errorf("missing quotaAccessor.lister") } - if a.registry == nil { - return fmt.Errorf("missing registry") + if a.quotaConfiguration == nil { + return fmt.Errorf("missing quotaConfiguration") } if a.evaluator == nil { return fmt.Errorf("missing evaluator") @@ -120,11 +121,15 @@ func (a *quotaAdmission) Validate() error { return nil } -// Admit makes admission decisions while enforcing quota -func (a *quotaAdmission) Admit(attr admission.Attributes) (err error) { +// Validate makes admission decisions while enforcing quota +func (a *QuotaAdmission) Validate(attr admission.Attributes) (err error) { // ignore all operations that correspond to sub-resource actions if attr.GetSubresource() != "" { return nil } + // ignore all operations that are not namespaced + if attr.GetNamespace() == "" { + return nil + } return a.evaluator.Evaluate(attr) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/admission_test.go index 0d197c123..755d0f5d0 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/admission_test.go @@ -26,18 +26,15 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/admission" utilfeature "k8s.io/apiserver/pkg/util/feature" testcore "k8s.io/client-go/testing" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/quota" - "k8s.io/kubernetes/pkg/quota/generic" "k8s.io/kubernetes/pkg/quota/install" resourcequotaapi "k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota" ) @@ -135,14 +132,15 @@ func TestAdmissionIgnoresDelete(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } namespace := "default" - err := handler.Admit(admission.NewAttributesRecord(nil, nil, api.Kind("Pod").WithVersion("version"), namespace, "name", api.Resource("pods").WithVersion("version"), "", admission.Delete, nil)) + err := handler.Validate(admission.NewAttributesRecord(nil, nil, api.Kind("Pod").WithVersion("version"), namespace, "name", api.Resource("pods").WithVersion("version"), "", admission.Delete, nil)) if err != nil { t.Errorf("ResourceQuota should admit all deletes: %v", err) } @@ -170,19 +168,20 @@ func TestAdmissionIgnoresSubresources(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } informerFactory.Core().InternalVersion().ResourceQuotas().Informer().GetIndexer().Add(resourceQuota) newPod := validPod("123", 1, getResourceRequirements(getResourceList("100m", "2Gi"), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err == nil { t.Errorf("Expected an error because the pod exceeded allowed quota") } - err = handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "subresource", admission.Create, nil)) + err = handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "subresource", admission.Create, nil)) if err != nil { t.Errorf("Did not expect an error because the action went to a subresource: %v", err) } @@ -214,15 +213,16 @@ func TestAdmitBelowQuotaLimit(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } informerFactory.Core().InternalVersion().ResourceQuotas().Informer().GetIndexer().Add(resourceQuota) newPod := validPod("allowed-pod", 1, getResourceRequirements(getResourceList("100m", "2Gi"), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -297,9 +297,10 @@ func TestAdmitHandlesOldObjects(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } @@ -317,7 +318,7 @@ func TestAdmitHandlesOldObjects(t *testing.T) { Ports: []api.ServicePort{{Port: 1234}}, }, } - err := handler.Admit(admission.NewAttributesRecord(newService, existingService, api.Kind("Service").WithVersion("version"), newService.Namespace, newService.Name, api.Resource("services").WithVersion("version"), "", admission.Update, nil)) + err := handler.Validate(admission.NewAttributesRecord(newService, existingService, api.Kind("Service").WithVersion("version"), newService.Namespace, newService.Name, api.Resource("services").WithVersion("version"), "", admission.Update, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -403,9 +404,10 @@ func TestAdmitHandlesNegativePVCUpdates(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } @@ -425,7 +427,7 @@ func TestAdmitHandlesNegativePVCUpdates(t *testing.T) { }, } - err = handler.Admit(admission.NewAttributesRecord(newPVC, oldPVC, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPVC.Namespace, newPVC.Name, api.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Update, nil)) + err = handler.Validate(admission.NewAttributesRecord(newPVC, oldPVC, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPVC.Namespace, newPVC.Name, api.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Update, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -469,9 +471,10 @@ func TestAdmitHandlesPVCUpdates(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } @@ -491,7 +494,7 @@ func TestAdmitHandlesPVCUpdates(t *testing.T) { }, } - err = handler.Admit(admission.NewAttributesRecord(newPVC, oldPVC, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPVC.Namespace, newPVC.Name, api.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Update, nil)) + err = handler.Validate(admission.NewAttributesRecord(newPVC, oldPVC, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPVC.Namespace, newPVC.Name, api.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Update, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -567,9 +570,10 @@ func TestAdmitHandlesCreatingUpdates(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } @@ -587,7 +591,7 @@ func TestAdmitHandlesCreatingUpdates(t *testing.T) { Ports: []api.ServicePort{{Port: 1234}}, }, } - err := handler.Admit(admission.NewAttributesRecord(newService, oldService, api.Kind("Service").WithVersion("version"), newService.Namespace, newService.Name, api.Resource("services").WithVersion("version"), "", admission.Update, nil)) + err := handler.Validate(admission.NewAttributesRecord(newService, oldService, api.Kind("Service").WithVersion("version"), newService.Namespace, newService.Name, api.Resource("services").WithVersion("version"), "", admission.Update, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -661,15 +665,16 @@ func TestAdmitExceedQuotaLimit(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } informerFactory.Core().InternalVersion().ResourceQuotas().Informer().GetIndexer().Add(resourceQuota) newPod := validPod("not-allowed-pod", 1, getResourceRequirements(getResourceList("3", "2Gi"), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err == nil { t.Errorf("Expected an error exceeding quota") } @@ -705,22 +710,23 @@ func TestAdmitEnforceQuotaConstraints(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } informerFactory.Core().InternalVersion().ResourceQuotas().Informer().GetIndexer().Add(resourceQuota) // verify all values are specified as required on the quota newPod := validPod("not-allowed-pod", 1, getResourceRequirements(getResourceList("100m", "2Gi"), getResourceList("200m", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err == nil { t.Errorf("Expected an error because the pod does not specify a memory limit") } // verify the requests and limits are actually valid (in this case, we fail because the limits < requests) newPod = validPod("not-allowed-pod", 1, getResourceRequirements(getResourceList("200m", "2Gi"), getResourceList("100m", "1Gi"))) - err = handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err = handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err == nil { t.Errorf("Expected an error because the pod does not specify a memory limit") } @@ -759,9 +765,10 @@ func TestAdmitPodInNamespaceWithoutQuota(t *testing.T) { quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() quotaAccessor.liveLookupCache = liveLookupCache config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } @@ -770,7 +777,7 @@ func TestAdmitPodInNamespaceWithoutQuota(t *testing.T) { newPod := validPod("not-allowed-pod", 1, getResourceRequirements(getResourceList("100m", "2Gi"), getResourceList("200m", ""))) // Add to the lru cache so we do not do a live client lookup liveLookupCache.Add(newPod.Namespace, liveLookupEntry{expiry: time.Now().Add(time.Duration(30 * time.Second)), items: []*api.ResourceQuota{}}) - err = handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err = handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("Did not expect an error because the pod is in a different namespace than the quota") } @@ -825,9 +832,10 @@ func TestAdmitBelowTerminatingQuotaLimit(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } @@ -838,7 +846,7 @@ func TestAdmitBelowTerminatingQuotaLimit(t *testing.T) { newPod := validPod("allowed-pod", 1, getResourceRequirements(getResourceList("100m", "2Gi"), getResourceList("", ""))) activeDeadlineSeconds := int64(30) newPod.Spec.ActiveDeadlineSeconds = &activeDeadlineSeconds - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -930,9 +938,10 @@ func TestAdmitBelowBestEffortQuotaLimit(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } @@ -941,7 +950,7 @@ func TestAdmitBelowBestEffortQuotaLimit(t *testing.T) { // create a pod that is best effort because it does not make a request for anything newPod := validPod("allowed-pod", 1, getResourceRequirements(getResourceList("", ""), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1022,15 +1031,16 @@ func TestAdmitBestEffortQuotaLimitIgnoresBurstable(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } informerFactory.Core().InternalVersion().ResourceQuotas().Informer().GetIndexer().Add(resourceQuota) newPod := validPod("allowed-pod", 1, getResourceRequirements(getResourceList("100m", "1Gi"), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1098,17 +1108,6 @@ func TestAdmissionSetsMissingNamespace(t *testing.T) { }, } - // create a dummy evaluator so we can trigger quota - podEvaluator := &generic.ObjectCountEvaluator{ - AllowCreateOnUpdate: false, - InternalGroupKind: api.Kind("Pod"), - ResourceName: api.ResourcePods, - } - registry := &generic.GenericRegistry{ - InternalEvaluators: map[schema.GroupKind]quota.Evaluator{ - podEvaluator.GroupKind(): podEvaluator, - }, - } stopCh := make(chan struct{}) defer close(stopCh) @@ -1118,10 +1117,10 @@ func TestAdmissionSetsMissingNamespace(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) - evaluator.(*quotaEvaluator).registry = registry + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } @@ -1131,7 +1130,7 @@ func TestAdmissionSetsMissingNamespace(t *testing.T) { // unset the namespace newPod.ObjectMeta.Namespace = "" - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("Got unexpected error: %v", err) } @@ -1164,23 +1163,24 @@ func TestAdmitRejectsNegativeUsage(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } informerFactory.Core().InternalVersion().ResourceQuotas().Informer().GetIndexer().Add(resourceQuota) // verify quota rejects negative pvc storage requests newPvc := validPersistentVolumeClaim("not-allowed-pvc", getResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("-1Gi")}, api.ResourceList{})) - err := handler.Admit(admission.NewAttributesRecord(newPvc, nil, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPvc.Namespace, newPvc.Name, api.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPvc, nil, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPvc.Namespace, newPvc.Name, api.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Create, nil)) if err == nil { t.Errorf("Expected an error because the pvc has negative storage usage") } // verify quota accepts non-negative pvc storage requests newPvc = validPersistentVolumeClaim("not-allowed-pvc", getResourceRequirements(api.ResourceList{api.ResourceStorage: resource.MustParse("1Gi")}, api.ResourceList{})) - err = handler.Admit(admission.NewAttributesRecord(newPvc, nil, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPvc.Namespace, newPvc.Name, api.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Create, nil)) + err = handler.Validate(admission.NewAttributesRecord(newPvc, nil, api.Kind("PersistentVolumeClaim").WithVersion("version"), newPvc.Namespace, newPvc.Name, api.Resource("persistentvolumeclaims").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1210,9 +1210,10 @@ func TestAdmitWhenUnrelatedResourceExceedsQuota(t *testing.T) { quotaAccessor.client = kubeClient quotaAccessor.lister = informerFactory.Core().InternalVersion().ResourceQuotas().Lister() config := &resourcequotaapi.Configuration{} - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } @@ -1220,7 +1221,7 @@ func TestAdmitWhenUnrelatedResourceExceedsQuota(t *testing.T) { // create a pod that should pass existing quota newPod := validPod("allowed-pod", 1, getResourceRequirements(getResourceList("", ""), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1246,14 +1247,15 @@ func TestAdmitLimitedResourceNoQuota(t *testing.T) { }, }, } - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } newPod := validPod("not-allowed-pod", 1, getResourceRequirements(getResourceList("3", "2Gi"), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err == nil { t.Errorf("Expected an error for consuming a limited resource without quota.") } @@ -1279,14 +1281,15 @@ func TestAdmitLimitedResourceNoQuotaIgnoresNonMatchingResources(t *testing.T) { }, }, } - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } newPod := validPod("allowed-pod", 1, getResourceRequirements(getResourceList("3", "2Gi"), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -1325,15 +1328,16 @@ func TestAdmitLimitedResourceWithQuota(t *testing.T) { }, }, } - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } indexer.Add(resourceQuota) newPod := validPod("allowed-pod", 1, getResourceRequirements(getResourceList("3", "2Gi"), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -1383,16 +1387,17 @@ func TestAdmitLimitedResourceWithMultipleQuota(t *testing.T) { }, }, } - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } indexer.Add(resourceQuota1) indexer.Add(resourceQuota2) newPod := validPod("allowed-pod", 1, getResourceRequirements(getResourceList("3", "2Gi"), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -1431,15 +1436,16 @@ func TestAdmitLimitedResourceWithQuotaThatDoesNotCover(t *testing.T) { }, }, } - evaluator := NewQuotaEvaluator(quotaAccessor, install.NewRegistry(nil, nil), nil, config, 5, stopCh) + quotaConfiguration := install.NewQuotaConfigurationForAdmission() + evaluator := NewQuotaEvaluator(quotaAccessor, quotaConfiguration, nil, config, 5, stopCh) - handler := "aAdmission{ + handler := &QuotaAdmission{ Handler: admission.NewHandler(admission.Create, admission.Update), evaluator: evaluator, } indexer.Add(resourceQuota) newPod := validPod("not-allowed-pod", 1, getResourceRequirements(getResourceList("3", "2Gi"), getResourceList("", ""))) - err := handler.Admit(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) + err := handler.Validate(admission.NewAttributesRecord(newPod, nil, api.Kind("Pod").WithVersion("version"), newPod.Namespace, newPod.Name, api.Resource("pods").WithVersion("version"), "", admission.Create, nil)) if err == nil { t.Fatalf("Expected an error since the quota did not cover cpu") } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD index 6da852026..7c43ea4a1 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/doc.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/doc.go index fd56cc64a..5a514f605 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/doc.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package resourcequota // import "k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/doc.go index 582d9a35f..53508c2f2 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/zz_generated.deepcopy.go index 7146088ff..130bdd702 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Configuration).DeepCopyInto(out.(*Configuration)) - return nil - }, InType: reflect.TypeOf(&Configuration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitedResource).DeepCopyInto(out.(*LimitedResource)) - return nil - }, InType: reflect.TypeOf(&LimitedResource{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Configuration) DeepCopyInto(out *Configuration) { *out = *in diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/zz_generated.deepcopy.go index 697a99623..5dc53616c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package resourcequota import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Configuration).DeepCopyInto(out.(*Configuration)) - return nil - }, InType: reflect.TypeOf(&Configuration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitedResource).DeepCopyInto(out.(*LimitedResource)) - return nil - }, InType: reflect.TypeOf(&LimitedResource{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Configuration) DeepCopyInto(out *Configuration) { *out = *in diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/controller.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/controller.go index 3650f2d39..832943d64 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/controller.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/controller.go @@ -32,8 +32,9 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/admission" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/quota" + "k8s.io/kubernetes/pkg/quota/generic" _ "k8s.io/kubernetes/pkg/util/reflector/prometheus" // for reflector metric registration _ "k8s.io/kubernetes/pkg/util/workqueue/prometheus" // for workqueue metric registration resourcequotaapi "k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota" @@ -51,6 +52,9 @@ type quotaEvaluator struct { // lockAcquisitionFunc acquires any required locks and returns a cleanup method to defer lockAcquisitionFunc func([]api.ResourceQuota) func() + // how quota was configured + quotaConfiguration quota.Configuration + // registry that knows how to measure usage for objects registry quota.Registry @@ -106,16 +110,18 @@ func newAdmissionWaiter(a admission.Attributes) *admissionWaiter { // NewQuotaEvaluator configures an admission controller that can enforce quota constraints // using the provided registry. The registry must have the capability to handle group/kinds that // are persisted by the server this admission controller is intercepting -func NewQuotaEvaluator(quotaAccessor QuotaAccessor, registry quota.Registry, lockAcquisitionFunc func([]api.ResourceQuota) func(), config *resourcequotaapi.Configuration, workers int, stopCh <-chan struct{}) Evaluator { +func NewQuotaEvaluator(quotaAccessor QuotaAccessor, quotaConfiguration quota.Configuration, lockAcquisitionFunc func([]api.ResourceQuota) func(), config *resourcequotaapi.Configuration, workers int, stopCh <-chan struct{}) Evaluator { // if we get a nil config, just create an empty default. if config == nil { config = &resourcequotaapi.Configuration{} } + return "aEvaluator{ quotaAccessor: quotaAccessor, lockAcquisitionFunc: lockAcquisitionFunc, - registry: registry, + quotaConfiguration: quotaConfiguration, + registry: generic.NewRegistry(quotaConfiguration.Evaluators()), queue: workqueue.NewNamed("admission_quota_controller"), work: map[string][]*admissionWaiter{}, @@ -365,9 +371,8 @@ func limitedByDefault(usage api.ResourceList, limitedResources []resourcequotaap // that capture what the usage would be if the request succeeded. It return an error if there is insufficient quota to satisfy the request func (e *quotaEvaluator) checkRequest(quotas []api.ResourceQuota, a admission.Attributes) ([]api.ResourceQuota, error) { namespace := a.GetNamespace() - evaluators := e.registry.Evaluators() - evaluator, found := evaluators[a.GetKind().GroupKind()] - if !found { + evaluator := e.registry.Get(a.GetResource().GroupResource()) + if evaluator == nil { return quotas, nil } @@ -516,18 +521,27 @@ func (e *quotaEvaluator) Evaluate(a admission.Attributes) error { go e.run() }) - // if we do not know how to evaluate use for this kind, just ignore - evaluators := e.registry.Evaluators() - evaluator, found := evaluators[a.GetKind().GroupKind()] - if !found { + // is this resource ignored? + gvr := a.GetResource() + gr := gvr.GroupResource() + if _, ok := e.quotaConfiguration.IgnoredResources()[gr]; ok { return nil } + + // if we do not know how to evaluate use for this resource, create an evaluator + evaluator := e.registry.Get(gr) + if evaluator == nil { + // create an object count evaluator if no evaluator previously registered + // note, we do not need aggregate usage here, so we pass a nil infomer func + evaluator = generic.NewObjectCountEvaluator(false, gr, nil, "") + e.registry.Add(evaluator) + glog.Infof("quota admission added evaluator for: %s", gr) + } // for this kind, check if the operation could mutate any quota resources // if no resources tracked by quota are impacted, then just return if !evaluator.Handles(a) { return nil } - waiter := newAdmissionWaiter(a) e.addWork(waiter) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/resource_access.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/resource_access.go index edbaff904..9384770f5 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/resource_access.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/resourcequota/resource_access.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apiserver/pkg/storage/etcd" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" corelisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/BUILD index 782b75eb7..ceceed20e 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/extensions/internalversion:go_default_library", @@ -37,8 +37,9 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/extensions/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/admission.go index 19de55b93..fa6f62e36 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/admission.go @@ -31,7 +31,7 @@ import ( genericadmissioninit "k8s.io/apiserver/pkg/admission/initializer" "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" extensionslisters "k8s.io/kubernetes/pkg/client/listers/extensions/internalversion" @@ -57,8 +57,8 @@ func Register(plugins *admission.Plugins) { // PSPMatchFn allows plugging in how PSPs are matched against user information. type PSPMatchFn func(lister extensionslisters.PodSecurityPolicyLister, user user.Info, sa user.Info, authz authorizer.Authorizer, namespace string) ([]*extensions.PodSecurityPolicy, error) -// podSecurityPolicyPlugin holds state for and implements the admission plugin. -type podSecurityPolicyPlugin struct { +// PodSecurityPolicyPlugin holds state for and implements the admission plugin. +type PodSecurityPolicyPlugin struct { *admission.Handler strategyFactory psp.StrategyFactory pspMatcher PSPMatchFn @@ -68,12 +68,12 @@ type podSecurityPolicyPlugin struct { } // SetAuthorizer sets the authorizer. -func (plugin *podSecurityPolicyPlugin) SetAuthorizer(authz authorizer.Authorizer) { +func (plugin *PodSecurityPolicyPlugin) SetAuthorizer(authz authorizer.Authorizer) { plugin.authz = authz } -// Validate ensures an authorizer is set. -func (plugin *podSecurityPolicyPlugin) Validate() error { +// ValidateInitialization ensures an authorizer is set. +func (plugin *PodSecurityPolicyPlugin) ValidateInitialization() error { if plugin.authz == nil { return fmt.Errorf("%s requires an authorizer", PluginName) } @@ -83,13 +83,14 @@ func (plugin *podSecurityPolicyPlugin) Validate() error { return nil } -var _ admission.Interface = &podSecurityPolicyPlugin{} -var _ genericadmissioninit.WantsAuthorizer = &podSecurityPolicyPlugin{} -var _ kubeapiserveradmission.WantsInternalKubeInformerFactory = &podSecurityPolicyPlugin{} +var _ admission.MutationInterface = &PodSecurityPolicyPlugin{} +var _ admission.ValidationInterface = &PodSecurityPolicyPlugin{} +var _ genericadmissioninit.WantsAuthorizer = &PodSecurityPolicyPlugin{} +var _ kubeapiserveradmission.WantsInternalKubeInformerFactory = &PodSecurityPolicyPlugin{} // NewPlugin creates a new PSP admission plugin. -func NewPlugin(strategyFactory psp.StrategyFactory, pspMatcher PSPMatchFn, failOnNoPolicies bool) *podSecurityPolicyPlugin { - return &podSecurityPolicyPlugin{ +func NewPlugin(strategyFactory psp.StrategyFactory, pspMatcher PSPMatchFn, failOnNoPolicies bool) *PodSecurityPolicyPlugin { + return &PodSecurityPolicyPlugin{ Handler: admission.NewHandler(admission.Create, admission.Update), strategyFactory: strategyFactory, pspMatcher: pspMatcher, @@ -97,7 +98,7 @@ func NewPlugin(strategyFactory psp.StrategyFactory, pspMatcher PSPMatchFn, failO } } -func (a *podSecurityPolicyPlugin) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { +func (a *PodSecurityPolicyPlugin) SetInternalKubeInformerFactory(f informers.SharedInformerFactory) { podSecurityPolicyInformer := f.Extensions().InternalVersion().PodSecurityPolicies() a.lister = podSecurityPolicyInformer.Lister() a.SetReadyFunc(podSecurityPolicyInformer.Informer().HasSynced) @@ -111,30 +112,94 @@ func (a *podSecurityPolicyPlugin) SetInternalKubeInformerFactory(f informers.Sha // 3. Try to generate and validate a PSP with providers. If we find one then admit the pod // with the validated PSP. If we don't find any reject the pod and give all errors from the // failed attempts. -func (c *podSecurityPolicyPlugin) Admit(a admission.Attributes) error { - if a.GetResource().GroupResource() != api.Resource("pods") { +func (c *PodSecurityPolicyPlugin) Admit(a admission.Attributes) error { + if ignore, err := shouldIgnore(a); err != nil { + return err + } else if ignore { return nil } - if len(a.GetSubresource()) != 0 { + // only mutate if this is a CREATE request. On updates we only validate. + // TODO(liggitt): allow spec mutation during initializing updates? + if a.GetOperation() != admission.Create { + return nil + } + + pod := a.GetObject().(*api.Pod) + + // compute the context + allowedPod, pspName, validationErrs, err := c.computeSecurityContext(a, pod, true) + if err != nil { + return admission.NewForbidden(a, err) + } + if allowedPod != nil { + *pod = *allowedPod + // annotate and accept the pod + glog.V(4).Infof("pod %s (generate: %s) in namespace %s validated against provider %s", pod.Name, pod.GenerateName, a.GetNamespace(), pspName) + if pod.ObjectMeta.Annotations == nil { + pod.ObjectMeta.Annotations = map[string]string{} + } + pod.ObjectMeta.Annotations[psputil.ValidatedPSPAnnotation] = pspName return nil } - pod, ok := a.GetObject().(*api.Pod) + // we didn't validate against any provider, reject the pod and give the errors for each attempt + glog.V(4).Infof("unable to validate pod %s (generate: %s) in namespace %s against any pod security policy: %v", pod.Name, pod.GenerateName, a.GetNamespace(), validationErrs) + return admission.NewForbidden(a, fmt.Errorf("unable to validate against any pod security policy: %v", validationErrs)) +} + +func (c *PodSecurityPolicyPlugin) Validate(a admission.Attributes) error { + if ignore, err := shouldIgnore(a); err != nil { + return err + } else if ignore { + return nil + } + + pod := a.GetObject().(*api.Pod) + + // compute the context. Mutation is not allowed. + allowedPod, _, validationErrs, err := c.computeSecurityContext(a, pod, false) + if err != nil { + return admission.NewForbidden(a, err) + } + if apiequality.Semantic.DeepEqual(pod, allowedPod) { + return nil + } + + // we didn't validate against any provider, reject the pod and give the errors for each attempt + glog.V(4).Infof("unable to validate pod %s (generate: %s) in namespace %s against any pod security policy: %v", pod.Name, pod.GenerateName, a.GetNamespace(), validationErrs) + return admission.NewForbidden(a, fmt.Errorf("unable to validate against any pod security policy: %v", validationErrs)) +} + +func shouldIgnore(a admission.Attributes) (bool, error) { + if a.GetResource().GroupResource() != api.Resource("pods") { + return true, nil + } + if len(a.GetSubresource()) != 0 { + return true, nil + } + // if we can't convert then fail closed since we've already checked that this is supposed to be a pod object. // this shouldn't normally happen during admission but could happen if an integrator passes a versioned // pod object rather than an internal object. - if !ok { - return admission.NewForbidden(a, fmt.Errorf("unexpected type %T", a.GetObject())) + if _, ok := a.GetObject().(*api.Pod); !ok { + return false, admission.NewForbidden(a, fmt.Errorf("unexpected type %T", a.GetObject())) } // if this is an update, see if we are only updating the ownerRef/finalizers. Garbage collection does this // and we should allow it in general, since you had the power to update and the power to delete. // The worst that happens is that you delete something, but you aren't controlling the privileged object itself if a.GetOperation() == admission.Update && rbacregistry.IsOnlyMutatingGCFields(a.GetObject(), a.GetOldObject(), apiequality.Semantic) { - return nil + return true, nil } + return false, nil +} + +// computeSecurityContext derives a valid security context while trying to avoid any changes to the given pod. I.e. +// if there is a matching policy with the same security context as given, it will be reused. If there is no +// matching policy the returned pod will be nil and the pspName empty. +func (c *PodSecurityPolicyPlugin) computeSecurityContext(a admission.Attributes, pod *api.Pod, specMutationAllowed bool) (*api.Pod, string, field.ErrorList, error) { // get all constraints that are usable by the user glog.V(4).Infof("getting pod security policies for pod %s (generate: %s)", pod.Name, pod.GenerateName) var saInfo user.Info @@ -144,13 +209,13 @@ func (c *podSecurityPolicyPlugin) Admit(a admission.Attributes) error { matchedPolicies, err := c.pspMatcher(c.lister, a.GetUserInfo(), saInfo, c.authz, a.GetNamespace()) if err != nil { - return admission.NewForbidden(a, err) + return nil, "", nil, err } // if we have no policies and want to succeed then return. Otherwise we'll end up with no // providers and fail with "unable to validate against any pod security policy" below. if len(matchedPolicies) == 0 && !c.failOnNoPolicies { - return nil + return pod, "", nil, nil } // sort by name to make order deterministic @@ -163,20 +228,16 @@ func (c *podSecurityPolicyPlugin) Admit(a admission.Attributes) error { logProviders(a, pod, providers, errs) if len(providers) == 0 { - return admission.NewForbidden(a, fmt.Errorf("no providers available to validate pod request")) + return nil, "", nil, fmt.Errorf("no providers available to validate pod request") } - // TODO(liggitt): allow spec mutation during initializing updates? - specMutationAllowed := a.GetOperation() == admission.Create - // all containers in a single pod must validate under a single provider or we will reject the request validationErrs := field.ErrorList{} var ( - allowedPod *api.Pod - allowingProvider psp.Provider + allowedMutatedPod *api.Pod + allowingMutatingPSP string ) -loop: for _, provider := range providers { podCopy := pod.DeepCopy() @@ -190,34 +251,21 @@ loop: switch { case apiequality.Semantic.DeepEqual(pod, podCopy): // if it validated without mutating anything, use this result - allowedPod = podCopy - allowingProvider = provider - break loop - case specMutationAllowed && allowedPod == nil: + return podCopy, provider.GetPSPName(), nil, nil + + case specMutationAllowed && allowedMutatedPod == nil: // if mutation is allowed and this is the first PSP to allow the pod, remember it, // but continue to see if another PSP allows without mutating - allowedPod = podCopy - allowingProvider = provider - glog.V(6).Infof("pod %s (generate: %s) in namespace %s validated against provider %s with mutation", pod.Name, pod.GenerateName, a.GetNamespace(), provider.GetPSPName()) - case !specMutationAllowed: - glog.V(6).Infof("pod %s (generate: %s) in namespace %s validated against provider %s, but required mutation, skipping", pod.Name, pod.GenerateName, a.GetNamespace(), provider.GetPSPName()) + allowedMutatedPod = podCopy + allowingMutatingPSP = provider.GetPSPName() } } - if allowedPod != nil { - *pod = *allowedPod - // annotate and accept the pod - glog.V(4).Infof("pod %s (generate: %s) in namespace %s validated against provider %s", pod.Name, pod.GenerateName, a.GetNamespace(), allowingProvider.GetPSPName()) - if pod.ObjectMeta.Annotations == nil { - pod.ObjectMeta.Annotations = map[string]string{} - } - pod.ObjectMeta.Annotations[psputil.ValidatedPSPAnnotation] = allowingProvider.GetPSPName() - return nil + if allowedMutatedPod == nil { + return nil, "", validationErrs, nil } - // we didn't validate against any provider, reject the pod and give the errors for each attempt - glog.V(4).Infof("unable to validate pod %s (generate: %s) in namespace %s against any pod security policy: %v", pod.Name, pod.GenerateName, a.GetNamespace(), validationErrs) - return admission.NewForbidden(a, fmt.Errorf("unable to validate against any pod security policy: %v", validationErrs)) + return allowedMutatedPod, allowingMutatingPSP, nil, nil } // assignSecurityContext creates a security context for each container in the pod @@ -265,7 +313,7 @@ func assignSecurityContext(provider psp.Provider, pod *api.Pod, fldPath *field.P } // createProvidersFromPolicies creates providers from the constraints supplied. -func (c *podSecurityPolicyPlugin) createProvidersFromPolicies(psps []*extensions.PodSecurityPolicy, namespace string) ([]psp.Provider, []error) { +func (c *PodSecurityPolicyPlugin) createProvidersFromPolicies(psps []*extensions.PodSecurityPolicy, namespace string) ([]psp.Provider, []error) { var ( // collected providers providers []psp.Provider @@ -313,11 +361,11 @@ func authorizedForPolicy(info user.Info, namespace string, policy *extensions.Po return false } attr := buildAttributes(info, namespace, policy) - allowed, reason, err := authz.Authorize(attr) + decision, reason, err := authz.Authorize(attr) if err != nil { glog.V(5).Infof("cannot authorize for policy: %v,%v", reason, err) } - return allowed + return (decision == authorizer.DecisionAllow) } // buildAttributes builds an attributes record for a SAR based on the user info and policy. diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/admission_test.go index c43c7fb29..bf043b752 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/admission_test.go @@ -32,8 +32,9 @@ import ( kadmission "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" - kapi "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + "k8s.io/kubernetes/pkg/api/legacyscheme" + kapi "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/apis/extensions" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" extensionslisters "k8s.io/kubernetes/pkg/client/listers/extensions/internalversion" @@ -48,8 +49,8 @@ const defaultContainerName = "test-c" // NewTestAdmission provides an admission plugin with test implementations of internal structs. It uses // an authorizer that always returns true. -func NewTestAdmission(lister extensionslisters.PodSecurityPolicyLister) kadmission.Interface { - return &podSecurityPolicyPlugin{ +func NewTestAdmission(lister extensionslisters.PodSecurityPolicyLister) *PodSecurityPolicyPlugin { + return &PodSecurityPolicyPlugin{ Handler: kadmission.NewHandler(kadmission.Create, kadmission.Update), strategyFactory: kpsp.NewSimpleStrategyFactory(), pspMatcher: getMatchingPolicies, @@ -65,13 +66,16 @@ type TestAuthorizer struct { usernameToNamespaceToAllowedPSPs map[string]map[string]map[string]bool } -func (t *TestAuthorizer) Authorize(a authorizer.Attributes) (authorized bool, reason string, err error) { +func (t *TestAuthorizer) Authorize(a authorizer.Attributes) (authorized authorizer.Decision, reason string, err error) { if t.usernameToNamespaceToAllowedPSPs == nil { - return true, "", nil + return authorizer.DecisionAllow, "", nil } allowedInNamespace := t.usernameToNamespaceToAllowedPSPs[a.GetUser().GetName()][a.GetNamespace()][a.GetName()] allowedClusterWide := t.usernameToNamespaceToAllowedPSPs[a.GetUser().GetName()][""][a.GetName()] - return (allowedInNamespace || allowedClusterWide), "", nil + if allowedInNamespace || allowedClusterWide { + return authorizer.DecisionAllow, "", nil + } + return authorizer.DecisionNoOpinion, "", nil } var _ authorizer.Authorizer = &TestAuthorizer{} @@ -85,35 +89,40 @@ func useInitContainers(pod *kapi.Pod) *kapi.Pod { func TestAdmitSeccomp(t *testing.T) { containerName := "container" tests := map[string]struct { - pspAnnotations map[string]string - podAnnotations map[string]string - shouldAdmit bool + pspAnnotations map[string]string + podAnnotations map[string]string + shouldPassAdmit bool + shouldPassValidate bool }{ "no seccomp, no pod annotations": { - pspAnnotations: nil, - podAnnotations: nil, - shouldAdmit: true, + pspAnnotations: nil, + podAnnotations: nil, + shouldPassAdmit: true, + shouldPassValidate: true, }, "no seccomp, pod annotations": { pspAnnotations: nil, podAnnotations: map[string]string{ kapi.SeccompPodAnnotationKey: "foo", }, - shouldAdmit: false, + shouldPassAdmit: false, + shouldPassValidate: false, }, "no seccomp, container annotations": { pspAnnotations: nil, podAnnotations: map[string]string{ kapi.SeccompContainerAnnotationKeyPrefix + containerName: "foo", }, - shouldAdmit: false, + shouldPassAdmit: false, + shouldPassValidate: false, }, "seccomp, allow any no pod annotation": { pspAnnotations: map[string]string{ seccomp.AllowedProfilesAnnotationKey: seccomp.AllowAny, }, - podAnnotations: nil, - shouldAdmit: true, + podAnnotations: nil, + shouldPassAdmit: true, + shouldPassValidate: true, }, "seccomp, allow any pod annotation": { pspAnnotations: map[string]string{ @@ -122,7 +131,8 @@ func TestAdmitSeccomp(t *testing.T) { podAnnotations: map[string]string{ kapi.SeccompPodAnnotationKey: "foo", }, - shouldAdmit: true, + shouldPassAdmit: true, + shouldPassValidate: true, }, "seccomp, allow any container annotation": { pspAnnotations: map[string]string{ @@ -131,7 +141,8 @@ func TestAdmitSeccomp(t *testing.T) { podAnnotations: map[string]string{ kapi.SeccompContainerAnnotationKeyPrefix + containerName: "foo", }, - shouldAdmit: true, + shouldPassAdmit: true, + shouldPassValidate: true, }, "seccomp, allow specific pod annotation failure": { pspAnnotations: map[string]string{ @@ -140,7 +151,8 @@ func TestAdmitSeccomp(t *testing.T) { podAnnotations: map[string]string{ kapi.SeccompPodAnnotationKey: "bar", }, - shouldAdmit: false, + shouldPassAdmit: false, + shouldPassValidate: false, }, "seccomp, allow specific container annotation failure": { pspAnnotations: map[string]string{ @@ -151,7 +163,8 @@ func TestAdmitSeccomp(t *testing.T) { podAnnotations: map[string]string{ kapi.SeccompContainerAnnotationKeyPrefix + containerName: "bar", }, - shouldAdmit: false, + shouldPassAdmit: false, + shouldPassValidate: false, }, "seccomp, allow specific pod annotation pass": { pspAnnotations: map[string]string{ @@ -160,7 +173,8 @@ func TestAdmitSeccomp(t *testing.T) { podAnnotations: map[string]string{ kapi.SeccompPodAnnotationKey: "foo", }, - shouldAdmit: true, + shouldPassAdmit: true, + shouldPassValidate: true, }, "seccomp, allow specific container annotation pass": { pspAnnotations: map[string]string{ @@ -171,7 +185,8 @@ func TestAdmitSeccomp(t *testing.T) { podAnnotations: map[string]string{ kapi.SeccompContainerAnnotationKeyPrefix + containerName: "bar", }, - shouldAdmit: true, + shouldPassAdmit: true, + shouldPassValidate: true, }, } for k, v := range tests { @@ -187,7 +202,7 @@ func TestAdmitSeccomp(t *testing.T) { }, }, } - testPSPAdmit(k, []*extensions.PodSecurityPolicy{psp}, pod, v.shouldAdmit, psp.Name, t) + testPSPAdmit(k, []*extensions.PodSecurityPolicy{psp}, pod, v.shouldPassAdmit, v.shouldPassValidate, psp.Name, t) } } @@ -210,58 +225,65 @@ func TestAdmitPrivileged(t *testing.T) { falseValue := false tests := map[string]struct { - pod *kapi.Pod - psps []*extensions.PodSecurityPolicy - shouldPass bool - expectedPriv *bool - expectedPSP string + pod *kapi.Pod + psps []*extensions.PodSecurityPolicy + shouldPassAdmit bool + shouldPassValidate bool + expectedPriv *bool + expectedPSP string }{ "pod with priv=nil allowed under non priv PSP": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{nonPrivilegedPSP}, - shouldPass: true, - expectedPriv: nil, - expectedPSP: nonPrivilegedPSP.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{nonPrivilegedPSP}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPriv: nil, + expectedPSP: nonPrivilegedPSP.Name, }, "pod with priv=nil allowed under priv PSP": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{privilegedPSP}, - shouldPass: true, - expectedPriv: nil, - expectedPSP: privilegedPSP.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{privilegedPSP}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPriv: nil, + expectedPSP: privilegedPSP.Name, }, "pod with priv=false allowed under non priv PSP": { - pod: createPodWithPriv(false), - psps: []*extensions.PodSecurityPolicy{nonPrivilegedPSP}, - shouldPass: true, - expectedPriv: &falseValue, - expectedPSP: nonPrivilegedPSP.Name, + pod: createPodWithPriv(false), + psps: []*extensions.PodSecurityPolicy{nonPrivilegedPSP}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPriv: &falseValue, + expectedPSP: nonPrivilegedPSP.Name, }, "pod with priv=false allowed under priv PSP": { - pod: createPodWithPriv(false), - psps: []*extensions.PodSecurityPolicy{privilegedPSP}, - shouldPass: true, - expectedPriv: &falseValue, - expectedPSP: privilegedPSP.Name, + pod: createPodWithPriv(false), + psps: []*extensions.PodSecurityPolicy{privilegedPSP}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPriv: &falseValue, + expectedPSP: privilegedPSP.Name, }, "pod with priv=true denied by non priv PSP": { - pod: createPodWithPriv(true), - psps: []*extensions.PodSecurityPolicy{nonPrivilegedPSP}, - shouldPass: false, + pod: createPodWithPriv(true), + psps: []*extensions.PodSecurityPolicy{nonPrivilegedPSP}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with priv=true allowed by priv PSP": { - pod: createPodWithPriv(true), - psps: []*extensions.PodSecurityPolicy{nonPrivilegedPSP, privilegedPSP}, - shouldPass: true, - expectedPriv: &trueValue, - expectedPSP: privilegedPSP.Name, + pod: createPodWithPriv(true), + psps: []*extensions.PodSecurityPolicy{nonPrivilegedPSP, privilegedPSP}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPriv: &trueValue, + expectedPSP: privilegedPSP.Name, }, } for k, v := range tests { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { priv := v.pod.Spec.Containers[0].SecurityContext.Privileged if (priv == nil) != (v.expectedPriv == nil) { t.Errorf("%s expected privileged to be %v, got %v", k, v.expectedPriv, priv) @@ -274,12 +296,12 @@ func TestAdmitPrivileged(t *testing.T) { func defaultPod(t *testing.T, pod *kapi.Pod) *kapi.Pod { v1Pod := &v1.Pod{} - if err := kapi.Scheme.Convert(pod, v1Pod, nil); err != nil { + if err := legacyscheme.Scheme.Convert(pod, v1Pod, nil); err != nil { t.Fatal(err) } - kapi.Scheme.Default(v1Pod) + legacyscheme.Scheme.Default(v1Pod) apiPod := &kapi.Pod{} - if err := kapi.Scheme.Convert(v1Pod, apiPod, nil); err != nil { + if err := legacyscheme.Scheme.Convert(v1Pod, apiPod, nil); err != nil { t.Fatal(err) } return apiPod @@ -307,6 +329,11 @@ func TestAdmitPreferNonmutating(t *testing.T) { changedPod := unprivilegedRunAsAnyPod.DeepCopy() changedPod.Spec.Containers[0].Image = "myimage2" + podWithSC := unprivilegedRunAsAnyPod.DeepCopy() + podWithSC.Annotations = map[string]string{psputil.ValidatedPSPAnnotation: privilegedPSP.Name} + changedPodWithSC := changedPod.DeepCopy() + changedPodWithSC.Annotations = map[string]string{psputil.ValidatedPSPAnnotation: privilegedPSP.Name} + gcChangedPod := unprivilegedRunAsAnyPod.DeepCopy() gcChangedPod.OwnerReferences = []metav1.OwnerReference{{Kind: "Foo", Name: "bar"}} gcChangedPod.Finalizers = []string{"foo"} @@ -314,9 +341,10 @@ func TestAdmitPreferNonmutating(t *testing.T) { tests := map[string]struct { operation kadmission.Operation pod *kapi.Pod - oldPod *kapi.Pod + podBeforeUpdate *kapi.Pod psps []*extensions.PodSecurityPolicy - shouldPass bool + shouldPassAdmit bool + shouldPassValidate bool expectMutation bool expectedPodUser *int64 expectedContainerUser *int64 @@ -326,7 +354,8 @@ func TestAdmitPreferNonmutating(t *testing.T) { operation: kadmission.Create, pod: unprivilegedRunAsAnyPod.DeepCopy(), psps: []*extensions.PodSecurityPolicy{privilegedPSP}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectMutation: false, expectedPodUser: nil, expectedContainerUser: nil, @@ -336,7 +365,8 @@ func TestAdmitPreferNonmutating(t *testing.T) { operation: kadmission.Create, pod: unprivilegedRunAsAnyPod.DeepCopy(), psps: []*extensions.PodSecurityPolicy{mutating2, mutating1, privilegedPSP}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectMutation: false, expectedPodUser: nil, expectedContainerUser: nil, @@ -346,7 +376,8 @@ func TestAdmitPreferNonmutating(t *testing.T) { operation: kadmission.Create, pod: unprivilegedRunAsAnyPod.DeepCopy(), psps: []*extensions.PodSecurityPolicy{mutating2, mutating1}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectMutation: true, expectedPodUser: nil, expectedContainerUser: &mutating1.Spec.RunAsUser.Ranges[0].Min, @@ -354,21 +385,23 @@ func TestAdmitPreferNonmutating(t *testing.T) { }, "pod should prefer non-mutating PSP on update": { operation: kadmission.Update, - pod: unprivilegedRunAsAnyPod.DeepCopy(), - oldPod: changedPod.DeepCopy(), + pod: changedPodWithSC.DeepCopy(), + podBeforeUpdate: podWithSC.DeepCopy(), psps: []*extensions.PodSecurityPolicy{mutating2, mutating1, privilegedPSP}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectMutation: false, expectedPodUser: nil, expectedContainerUser: nil, expectedPSP: privilegedPSP.Name, }, - "pod should not allow mutation on update": { + "pod should not mutate on update, but fail validation": { operation: kadmission.Update, - pod: unprivilegedRunAsAnyPod.DeepCopy(), - oldPod: changedPod.DeepCopy(), + pod: changedPod.DeepCopy(), + podBeforeUpdate: unprivilegedRunAsAnyPod.DeepCopy(), psps: []*extensions.PodSecurityPolicy{mutating2, mutating1}, - shouldPass: false, + shouldPassAdmit: true, + shouldPassValidate: false, expectMutation: false, expectedPodUser: nil, expectedContainerUser: nil, @@ -377,9 +410,10 @@ func TestAdmitPreferNonmutating(t *testing.T) { "pod should be allowed if completely unchanged on update": { operation: kadmission.Update, pod: unprivilegedRunAsAnyPod.DeepCopy(), - oldPod: unprivilegedRunAsAnyPod.DeepCopy(), + podBeforeUpdate: unprivilegedRunAsAnyPod.DeepCopy(), psps: []*extensions.PodSecurityPolicy{mutating2, mutating1}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectMutation: false, expectedPodUser: nil, expectedContainerUser: nil, @@ -387,10 +421,11 @@ func TestAdmitPreferNonmutating(t *testing.T) { }, "pod should be allowed if unchanged on update except finalizers,ownerrefs": { operation: kadmission.Update, - pod: unprivilegedRunAsAnyPod.DeepCopy(), - oldPod: gcChangedPod.DeepCopy(), + pod: gcChangedPod.DeepCopy(), + podBeforeUpdate: unprivilegedRunAsAnyPod.DeepCopy(), psps: []*extensions.PodSecurityPolicy{mutating2, mutating1}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectMutation: false, expectedPodUser: nil, expectedContainerUser: nil, @@ -399,9 +434,9 @@ func TestAdmitPreferNonmutating(t *testing.T) { } for k, v := range tests { - testPSPAdmitAdvanced(k, v.operation, v.psps, v.pod, v.oldPod, v.shouldPass, v.expectMutation, v.expectedPSP, t) + testPSPAdmitAdvanced(k, v.operation, v.psps, v.pod, v.podBeforeUpdate, v.shouldPassAdmit, v.shouldPassValidate, v.expectMutation, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { actualPodUser := (*int64)(nil) if v.pod.Spec.SecurityContext != nil { actualPodUser = v.pod.Spec.SecurityContext.RunAsUser @@ -429,13 +464,21 @@ func TestFailClosedOnInvalidPod(t *testing.T) { plugin := NewTestAdmission(nil) pod := &v1.Pod{} attrs := kadmission.NewAttributesRecord(pod, nil, kapi.Kind("Pod").WithVersion("version"), pod.Namespace, pod.Name, kapi.Resource("pods").WithVersion("version"), "", kadmission.Create, &user.DefaultInfo{}) + err := plugin.Admit(attrs) + if err == nil { + t.Fatalf("expected versioned pod object to fail mutating admission") + } + if !strings.Contains(err.Error(), "unexpected type") { + t.Errorf("expected type error on Admit but got: %v", err) + } + err = plugin.Validate(attrs) if err == nil { - t.Fatalf("expected versioned pod object to fail admission") + t.Fatalf("expected versioned pod object to fail validating admission") } if !strings.Contains(err.Error(), "unexpected type") { - t.Errorf("expected type error but got: %v", err) + t.Errorf("expected type error on Validate but got: %v", err) } } @@ -467,53 +510,60 @@ func TestAdmitCaps(t *testing.T) { tc := map[string]struct { pod *kapi.Pod psps []*extensions.PodSecurityPolicy - shouldPass bool + shouldPassAdmit bool + shouldPassValidate bool expectedCapabilities *kapi.Capabilities expectedPSP string }{ // UC 1: if a PSP does not define allowed or required caps then a pod requesting a cap // should be rejected. "should reject cap add when not allowed or required": { - pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), - psps: []*extensions.PodSecurityPolicy{restricted}, - shouldPass: false, + pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), + psps: []*extensions.PodSecurityPolicy{restricted}, + shouldPassAdmit: false, + shouldPassValidate: false, }, // UC 2: if a PSP allows a cap in the allowed field it should accept the pod request // to add the cap. "should accept cap add when in allowed": { - pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), - psps: []*extensions.PodSecurityPolicy{restricted, allowsFooInAllowed}, - shouldPass: true, - expectedPSP: allowsFooInAllowed.Name, + pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), + psps: []*extensions.PodSecurityPolicy{restricted, allowsFooInAllowed}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: allowsFooInAllowed.Name, }, // UC 3: if a PSP requires a cap then it should accept the pod request // to add the cap. "should accept cap add when in required": { - pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), - psps: []*extensions.PodSecurityPolicy{restricted, allowsFooInRequired}, - shouldPass: true, - expectedPSP: allowsFooInRequired.Name, + pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), + psps: []*extensions.PodSecurityPolicy{restricted, allowsFooInRequired}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: allowsFooInRequired.Name, }, // UC 4: if a PSP requires a cap to be dropped then it should fail both // in the verification of adds and verification of drops "should reject cap add when requested cap is required to be dropped": { - pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), - psps: []*extensions.PodSecurityPolicy{restricted, requiresFooToBeDropped}, - shouldPass: false, + pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), + psps: []*extensions.PodSecurityPolicy{restricted, requiresFooToBeDropped}, + shouldPassAdmit: false, + shouldPassValidate: false, }, // UC 5: if a PSP requires a cap to be dropped it should accept // a manual request to drop the cap. "should accept cap drop when cap is required to be dropped": { - pod: createPodWithCaps(&kapi.Capabilities{Drop: []kapi.Capability{"foo"}}), - psps: []*extensions.PodSecurityPolicy{requiresFooToBeDropped}, - shouldPass: true, - expectedPSP: requiresFooToBeDropped.Name, + pod: createPodWithCaps(&kapi.Capabilities{Drop: []kapi.Capability{"foo"}}), + psps: []*extensions.PodSecurityPolicy{requiresFooToBeDropped}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: requiresFooToBeDropped.Name, }, // UC 6: required add is defaulted "required add is defaulted": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{allowsFooInRequired}, - shouldPass: true, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{allowsFooInRequired}, + shouldPassAdmit: true, + shouldPassValidate: true, expectedCapabilities: &kapi.Capabilities{ Add: []kapi.Capability{"foo"}, }, @@ -521,9 +571,10 @@ func TestAdmitCaps(t *testing.T) { }, // UC 7: required drop is defaulted "required drop is defaulted": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{requiresFooToBeDropped}, - shouldPass: true, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{requiresFooToBeDropped}, + shouldPassAdmit: true, + shouldPassValidate: true, expectedCapabilities: &kapi.Capabilities{ Drop: []kapi.Capability{"foo"}, }, @@ -531,15 +582,16 @@ func TestAdmitCaps(t *testing.T) { }, // UC 8: using '*' in allowed caps "should accept cap add when all caps are allowed": { - pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), - psps: []*extensions.PodSecurityPolicy{restricted, allowAllInAllowed}, - shouldPass: true, - expectedPSP: allowAllInAllowed.Name, + pod: createPodWithCaps(&kapi.Capabilities{Add: []kapi.Capability{"foo"}}), + psps: []*extensions.PodSecurityPolicy{restricted, allowAllInAllowed}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: allowAllInAllowed.Name, }, } for k, v := range tc { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) if v.expectedCapabilities != nil { if !reflect.DeepEqual(v.expectedCapabilities, v.pod.Spec.Containers[0].SecurityContext.Capabilities) { @@ -550,7 +602,7 @@ func TestAdmitCaps(t *testing.T) { for k, v := range tc { useInitContainers(v.pod) - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) if v.expectedCapabilities != nil { if !reflect.DeepEqual(v.expectedCapabilities, v.pod.Spec.InitContainers[0].SecurityContext.Capabilities) { @@ -589,19 +641,19 @@ func TestAdmitVolumes(t *testing.T) { psp := restrictivePSP() // expect a denial for this PSP - testPSPAdmit(fmt.Sprintf("%s denial", string(fsType)), []*extensions.PodSecurityPolicy{psp}, pod, false, "", t) + testPSPAdmit(fmt.Sprintf("%s denial", string(fsType)), []*extensions.PodSecurityPolicy{psp}, pod, false, false, "", t) // also expect a denial for this PSP if it's an init container useInitContainers(pod) - testPSPAdmit(fmt.Sprintf("%s denial", string(fsType)), []*extensions.PodSecurityPolicy{psp}, pod, false, "", t) + testPSPAdmit(fmt.Sprintf("%s denial", string(fsType)), []*extensions.PodSecurityPolicy{psp}, pod, false, false, "", t) // now add the fstype directly to the psp and it should validate psp.Spec.Volumes = []extensions.FSType{fsType} - testPSPAdmit(fmt.Sprintf("%s direct accept", string(fsType)), []*extensions.PodSecurityPolicy{psp}, pod, true, psp.Name, t) + testPSPAdmit(fmt.Sprintf("%s direct accept", string(fsType)), []*extensions.PodSecurityPolicy{psp}, pod, true, true, psp.Name, t) // now change the psp to allow any volumes and the pod should still validate psp.Spec.Volumes = []extensions.FSType{extensions.All} - testPSPAdmit(fmt.Sprintf("%s wildcard accept", string(fsType)), []*extensions.PodSecurityPolicy{psp}, pod, true, psp.Name, t) + testPSPAdmit(fmt.Sprintf("%s wildcard accept", string(fsType)), []*extensions.PodSecurityPolicy{psp}, pod, true, true, psp.Name, t) } } @@ -623,42 +675,47 @@ func TestAdmitHostNetwork(t *testing.T) { tests := map[string]struct { pod *kapi.Pod psps []*extensions.PodSecurityPolicy - shouldPass bool + shouldPassAdmit bool + shouldPassValidate bool expectedHostNetwork bool expectedPSP string }{ "pod without hostnetwork request allowed under noHostNetwork PSP": { pod: goodPod(), psps: []*extensions.PodSecurityPolicy{noHostNetwork}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedHostNetwork: false, expectedPSP: noHostNetwork.Name, }, "pod without hostnetwork request allowed under hostNetwork PSP": { pod: goodPod(), psps: []*extensions.PodSecurityPolicy{hostNetwork}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedHostNetwork: false, expectedPSP: hostNetwork.Name, }, "pod with hostnetwork request denied by noHostNetwork PSP": { - pod: createPodWithHostNetwork(true), - psps: []*extensions.PodSecurityPolicy{noHostNetwork}, - shouldPass: false, + pod: createPodWithHostNetwork(true), + psps: []*extensions.PodSecurityPolicy{noHostNetwork}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with hostnetwork request allowed by hostNetwork PSP": { pod: createPodWithHostNetwork(true), psps: []*extensions.PodSecurityPolicy{noHostNetwork, hostNetwork}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedHostNetwork: true, expectedPSP: hostNetwork.Name, }, } for k, v := range tests { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { if v.pod.Spec.SecurityContext.HostNetwork != v.expectedHostNetwork { t.Errorf("%s expected hostNetwork to be %t", k, v.expectedHostNetwork) } @@ -668,9 +725,9 @@ func TestAdmitHostNetwork(t *testing.T) { // test again with init containers for k, v := range tests { useInitContainers(v.pod) - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { if v.pod.Spec.SecurityContext.HostNetwork != v.expectedHostNetwork { t.Errorf("%s expected hostNetwork to be %t", k, v.expectedHostNetwork) } @@ -697,45 +754,51 @@ func TestAdmitHostPorts(t *testing.T) { } tests := map[string]struct { - pod *kapi.Pod - psps []*extensions.PodSecurityPolicy - shouldPass bool - expectedPSP string + pod *kapi.Pod + psps []*extensions.PodSecurityPolicy + shouldPassAdmit bool + shouldPassValidate bool + expectedPSP string }{ "host port out of range": { - pod: createPodWithHostPorts(11), - psps: []*extensions.PodSecurityPolicy{hostPorts}, - shouldPass: false, + pod: createPodWithHostPorts(11), + psps: []*extensions.PodSecurityPolicy{hostPorts}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "host port in range": { - pod: createPodWithHostPorts(5), - psps: []*extensions.PodSecurityPolicy{hostPorts}, - shouldPass: true, - expectedPSP: hostPorts.Name, + pod: createPodWithHostPorts(5), + psps: []*extensions.PodSecurityPolicy{hostPorts}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: hostPorts.Name, }, "no host ports with range": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{hostPorts}, - shouldPass: true, - expectedPSP: hostPorts.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{hostPorts}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: hostPorts.Name, }, "no host ports without range": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{noHostPorts}, - shouldPass: true, - expectedPSP: noHostPorts.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{noHostPorts}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: noHostPorts.Name, }, "host ports without range": { - pod: createPodWithHostPorts(5), - psps: []*extensions.PodSecurityPolicy{noHostPorts}, - shouldPass: false, + pod: createPodWithHostPorts(5), + psps: []*extensions.PodSecurityPolicy{noHostPorts}, + shouldPassAdmit: false, + shouldPassValidate: false, }, } for i := 0; i < 2; i++ { for k, v := range tests { v.pod.Spec.Containers, v.pod.Spec.InitContainers = v.pod.Spec.InitContainers, v.pod.Spec.Containers - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) } } } @@ -756,44 +819,48 @@ func TestAdmitHostPID(t *testing.T) { hostPID.Spec.HostPID = true tests := map[string]struct { - pod *kapi.Pod - psps []*extensions.PodSecurityPolicy - shouldPass bool - expectedHostPID bool - expectedPSP string + pod *kapi.Pod + psps []*extensions.PodSecurityPolicy + shouldPassAdmit bool + shouldPassValidate bool + expectedHostPID bool + expectedPSP string }{ "pod without hostpid request allowed under noHostPID PSP": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{noHostPID}, - shouldPass: true, - expectedHostPID: false, - expectedPSP: noHostPID.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{noHostPID}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedHostPID: false, + expectedPSP: noHostPID.Name, }, "pod without hostpid request allowed under hostPID PSP": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{hostPID}, - shouldPass: true, - expectedHostPID: false, - expectedPSP: hostPID.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{hostPID}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedHostPID: false, + expectedPSP: hostPID.Name, }, "pod with hostpid request denied by noHostPID PSP": { - pod: createPodWithHostPID(true), - psps: []*extensions.PodSecurityPolicy{noHostPID}, - shouldPass: false, + pod: createPodWithHostPID(true), + psps: []*extensions.PodSecurityPolicy{noHostPID}, + shouldPassAdmit: false, }, "pod with hostpid request allowed by hostPID PSP": { - pod: createPodWithHostPID(true), - psps: []*extensions.PodSecurityPolicy{noHostPID, hostPID}, - shouldPass: true, - expectedHostPID: true, - expectedPSP: hostPID.Name, + pod: createPodWithHostPID(true), + psps: []*extensions.PodSecurityPolicy{noHostPID, hostPID}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedHostPID: true, + expectedPSP: hostPID.Name, }, } for k, v := range tests { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { if v.pod.Spec.SecurityContext.HostPID != v.expectedHostPID { t.Errorf("%s expected hostPID to be %t", k, v.expectedHostPID) } @@ -817,44 +884,49 @@ func TestAdmitHostIPC(t *testing.T) { hostIPC.Spec.HostIPC = true tests := map[string]struct { - pod *kapi.Pod - psps []*extensions.PodSecurityPolicy - shouldPass bool - expectedHostIPC bool - expectedPSP string + pod *kapi.Pod + psps []*extensions.PodSecurityPolicy + shouldPassAdmit bool + shouldPassValidate bool + expectedHostIPC bool + expectedPSP string }{ "pod without hostIPC request allowed under noHostIPC PSP": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{noHostIPC}, - shouldPass: true, - expectedHostIPC: false, - expectedPSP: noHostIPC.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{noHostIPC}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedHostIPC: false, + expectedPSP: noHostIPC.Name, }, "pod without hostIPC request allowed under hostIPC PSP": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{hostIPC}, - shouldPass: true, - expectedHostIPC: false, - expectedPSP: hostIPC.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{hostIPC}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedHostIPC: false, + expectedPSP: hostIPC.Name, }, "pod with hostIPC request denied by noHostIPC PSP": { - pod: createPodWithHostIPC(true), - psps: []*extensions.PodSecurityPolicy{noHostIPC}, - shouldPass: false, + pod: createPodWithHostIPC(true), + psps: []*extensions.PodSecurityPolicy{noHostIPC}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with hostIPC request allowed by hostIPC PSP": { - pod: createPodWithHostIPC(true), - psps: []*extensions.PodSecurityPolicy{noHostIPC, hostIPC}, - shouldPass: true, - expectedHostIPC: true, - expectedPSP: hostIPC.Name, + pod: createPodWithHostIPC(true), + psps: []*extensions.PodSecurityPolicy{noHostIPC, hostIPC}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedHostIPC: true, + expectedPSP: hostIPC.Name, }, } for k, v := range tests { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { if v.pod.Spec.SecurityContext.HostIPC != v.expectedHostIPC { t.Errorf("%s expected hostIPC to be %t", k, v.expectedHostIPC) } @@ -887,7 +959,8 @@ func TestAdmitSELinux(t *testing.T) { tests := map[string]struct { pod *kapi.Pod psps []*extensions.PodSecurityPolicy - shouldPass bool + shouldPassAdmit bool + shouldPassValidate bool expectedPodSC *kapi.PodSecurityContext expectedContainerSC *kapi.SecurityContext expectedPSP string @@ -895,7 +968,8 @@ func TestAdmitSELinux(t *testing.T) { "runAsAny with no request": { pod: createPodWithSecurityContexts(nil, nil), psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: nil, expectedContainerSC: nil, expectedPSP: runAsAny.Name, @@ -903,7 +977,8 @@ func TestAdmitSELinux(t *testing.T) { "runAsAny with empty pod request": { pod: createPodWithSecurityContexts(&kapi.PodSecurityContext{}, nil), psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: &kapi.PodSecurityContext{}, expectedContainerSC: nil, expectedPSP: runAsAny.Name, @@ -911,7 +986,8 @@ func TestAdmitSELinux(t *testing.T) { "runAsAny with empty container request": { pod: createPodWithSecurityContexts(nil, &kapi.SecurityContext{}), psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: nil, expectedContainerSC: &kapi.SecurityContext{}, expectedPSP: runAsAny.Name, @@ -920,7 +996,8 @@ func TestAdmitSELinux(t *testing.T) { "runAsAny with pod request": { pod: createPodWithSecurityContexts(&kapi.PodSecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}, nil), psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: &kapi.PodSecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}, expectedContainerSC: nil, expectedPSP: runAsAny.Name, @@ -928,7 +1005,8 @@ func TestAdmitSELinux(t *testing.T) { "runAsAny with container request": { pod: createPodWithSecurityContexts(nil, &kapi.SecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}), psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: nil, expectedContainerSC: &kapi.SecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}, expectedPSP: runAsAny.Name, @@ -936,26 +1014,30 @@ func TestAdmitSELinux(t *testing.T) { "runAsAny with pod and container request": { pod: createPodWithSecurityContexts(&kapi.PodSecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "bar"}}, &kapi.SecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}), psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: &kapi.PodSecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "bar"}}, expectedContainerSC: &kapi.SecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}, expectedPSP: runAsAny.Name, }, "mustRunAs with bad pod request": { - pod: createPodWithSecurityContexts(&kapi.PodSecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}, nil), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: false, + pod: createPodWithSecurityContexts(&kapi.PodSecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}, nil), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "mustRunAs with bad container request": { - pod: createPodWithSecurityContexts(nil, &kapi.SecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: false, + pod: createPodWithSecurityContexts(nil, &kapi.SecurityContext{SELinuxOptions: &kapi.SELinuxOptions{User: "foo"}}), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "mustRunAs with no request": { pod: createPodWithSecurityContexts(nil, nil), psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: &kapi.PodSecurityContext{SELinuxOptions: mustRunAs.Spec.SELinux.SELinuxOptions}, expectedContainerSC: nil, expectedPSP: mustRunAs.Name, @@ -966,7 +1048,8 @@ func TestAdmitSELinux(t *testing.T) { nil, ), psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: &kapi.PodSecurityContext{SELinuxOptions: mustRunAs.Spec.SELinux.SELinuxOptions}, expectedContainerSC: nil, expectedPSP: mustRunAs.Name, @@ -977,7 +1060,8 @@ func TestAdmitSELinux(t *testing.T) { nil, ), psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: &kapi.PodSecurityContext{SELinuxOptions: mustRunAs.Spec.SELinux.SELinuxOptions}, expectedContainerSC: nil, expectedPSP: mustRunAs.Name, @@ -985,9 +1069,9 @@ func TestAdmitSELinux(t *testing.T) { } for k, v := range tests { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { if !reflect.DeepEqual(v.expectedPodSC, v.pod.Spec.SecurityContext) { t.Errorf("%s unexpected diff:\n%s", k, diff.ObjectGoPrintSideBySide(v.expectedPodSC, v.pod.Spec.SecurityContext)) } @@ -1021,57 +1105,65 @@ func TestAdmitAppArmor(t *testing.T) { } tests := map[string]struct { - pod *kapi.Pod - psp *extensions.PodSecurityPolicy - shouldPass bool - expectedProfile string + pod *kapi.Pod + psp *extensions.PodSecurityPolicy + shouldPassAdmit bool + shouldPassValidate bool + expectedProfile string }{ "unconstrained with no profile": { - pod: goodPod(), - psp: unconstrainedPSP, - shouldPass: true, - expectedProfile: "", + pod: goodPod(), + psp: unconstrainedPSP, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedProfile: "", }, "unconstrained with profile": { - pod: createPodWithAppArmor(apparmor.ProfileRuntimeDefault), - psp: unconstrainedPSP, - shouldPass: true, - expectedProfile: apparmor.ProfileRuntimeDefault, + pod: createPodWithAppArmor(apparmor.ProfileRuntimeDefault), + psp: unconstrainedPSP, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedProfile: apparmor.ProfileRuntimeDefault, }, "unconstrained with default profile": { - pod: goodPod(), - psp: defaultedPSP, - shouldPass: true, - expectedProfile: apparmor.ProfileRuntimeDefault, + pod: goodPod(), + psp: defaultedPSP, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedProfile: apparmor.ProfileRuntimeDefault, }, "AppArmor enforced with no profile": { - pod: goodPod(), - psp: appArmorPSP, - shouldPass: false, + pod: goodPod(), + psp: appArmorPSP, + shouldPassAdmit: false, + shouldPassValidate: false, }, "AppArmor enforced with default profile": { - pod: goodPod(), - psp: appArmorDefaultPSP, - shouldPass: true, - expectedProfile: apparmor.ProfileRuntimeDefault, + pod: goodPod(), + psp: appArmorDefaultPSP, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedProfile: apparmor.ProfileRuntimeDefault, }, "AppArmor enforced with good profile": { - pod: createPodWithAppArmor(apparmor.ProfileNamePrefix + "foo"), - psp: appArmorDefaultPSP, - shouldPass: true, - expectedProfile: apparmor.ProfileNamePrefix + "foo", + pod: createPodWithAppArmor(apparmor.ProfileNamePrefix + "foo"), + psp: appArmorDefaultPSP, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedProfile: apparmor.ProfileNamePrefix + "foo", }, "AppArmor enforced with local profile": { - pod: createPodWithAppArmor(apparmor.ProfileNamePrefix + "bar"), - psp: appArmorPSP, - shouldPass: false, + pod: createPodWithAppArmor(apparmor.ProfileNamePrefix + "bar"), + psp: appArmorPSP, + shouldPassAdmit: false, + shouldPassValidate: false, }, } for k, v := range tests { - testPSPAdmit(k, []*extensions.PodSecurityPolicy{v.psp}, v.pod, v.shouldPass, v.psp.Name, t) + testPSPAdmit(k, []*extensions.PodSecurityPolicy{v.psp}, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.psp.Name, t) - if v.shouldPass { + if v.shouldPassAdmit { assert.Equal(t, v.expectedProfile, apparmor.GetProfileNameFromPodAnnotations(v.pod.Annotations, defaultContainerName), k) } } @@ -1105,7 +1197,8 @@ func TestAdmitRunAsUser(t *testing.T) { tests := map[string]struct { pod *kapi.Pod psps []*extensions.PodSecurityPolicy - shouldPass bool + shouldPassAdmit bool + shouldPassValidate bool expectedPodSC *kapi.PodSecurityContext expectedContainerSC *kapi.SecurityContext expectedPSP string @@ -1113,7 +1206,8 @@ func TestAdmitRunAsUser(t *testing.T) { "runAsAny no pod request": { pod: createPodWithSecurityContexts(nil, nil), psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: nil, expectedContainerSC: nil, expectedPSP: runAsAny.Name, @@ -1121,7 +1215,8 @@ func TestAdmitRunAsUser(t *testing.T) { "runAsAny pod request": { pod: createPodWithSecurityContexts(podSC(userIDPtr(1)), nil), psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: podSC(userIDPtr(1)), expectedContainerSC: nil, expectedPSP: runAsAny.Name, @@ -1129,27 +1224,31 @@ func TestAdmitRunAsUser(t *testing.T) { "runAsAny container request": { pod: createPodWithSecurityContexts(nil, containerSC(userIDPtr(1))), psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: nil, expectedContainerSC: containerSC(userIDPtr(1)), expectedPSP: runAsAny.Name, }, "mustRunAs pod request out of range": { - pod: createPodWithSecurityContexts(podSC(userIDPtr(1)), nil), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: false, + pod: createPodWithSecurityContexts(podSC(userIDPtr(1)), nil), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "mustRunAs container request out of range": { - pod: createPodWithSecurityContexts(podSC(userIDPtr(999)), containerSC(userIDPtr(1))), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: false, + pod: createPodWithSecurityContexts(podSC(userIDPtr(999)), containerSC(userIDPtr(1))), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "mustRunAs pod request in range": { pod: createPodWithSecurityContexts(podSC(userIDPtr(999)), nil), psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: podSC(&mustRunAs.Spec.RunAsUser.Ranges[0].Min), expectedContainerSC: nil, expectedPSP: mustRunAs.Name, @@ -1157,7 +1256,8 @@ func TestAdmitRunAsUser(t *testing.T) { "mustRunAs container request in range": { pod: createPodWithSecurityContexts(nil, containerSC(userIDPtr(999))), psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: nil, expectedContainerSC: containerSC(&mustRunAs.Spec.RunAsUser.Ranges[0].Min), expectedPSP: mustRunAs.Name, @@ -1165,7 +1265,8 @@ func TestAdmitRunAsUser(t *testing.T) { "mustRunAs pod and container request in range": { pod: createPodWithSecurityContexts(podSC(userIDPtr(999)), containerSC(userIDPtr(1000))), psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: podSC(userIDPtr(999)), expectedContainerSC: containerSC(userIDPtr(1000)), expectedPSP: mustRunAs.Name, @@ -1173,7 +1274,8 @@ func TestAdmitRunAsUser(t *testing.T) { "mustRunAs no request": { pod: createPodWithSecurityContexts(nil, nil), psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: nil, expectedContainerSC: containerSC(&mustRunAs.Spec.RunAsUser.Ranges[0].Min), expectedPSP: mustRunAs.Name, @@ -1182,32 +1284,37 @@ func TestAdmitRunAsUser(t *testing.T) { "runAsNonRoot no request": { pod: createPodWithSecurityContexts(nil, nil), psps: []*extensions.PodSecurityPolicy{runAsNonRoot}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: nil, expectedContainerSC: &kapi.SecurityContext{RunAsNonRoot: &trueValue}, expectedPSP: runAsNonRoot.Name, }, "runAsNonRoot pod request root": { - pod: createPodWithSecurityContexts(podSC(userIDPtr(0)), nil), - psps: []*extensions.PodSecurityPolicy{runAsNonRoot}, - shouldPass: false, + pod: createPodWithSecurityContexts(podSC(userIDPtr(0)), nil), + psps: []*extensions.PodSecurityPolicy{runAsNonRoot}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "runAsNonRoot pod request non-root": { - pod: createPodWithSecurityContexts(podSC(userIDPtr(1)), nil), - psps: []*extensions.PodSecurityPolicy{runAsNonRoot}, - shouldPass: true, - expectedPodSC: podSC(userIDPtr(1)), - expectedPSP: runAsNonRoot.Name, + pod: createPodWithSecurityContexts(podSC(userIDPtr(1)), nil), + psps: []*extensions.PodSecurityPolicy{runAsNonRoot}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPodSC: podSC(userIDPtr(1)), + expectedPSP: runAsNonRoot.Name, }, "runAsNonRoot container request root": { - pod: createPodWithSecurityContexts(podSC(userIDPtr(1)), containerSC(userIDPtr(0))), - psps: []*extensions.PodSecurityPolicy{runAsNonRoot}, - shouldPass: false, + pod: createPodWithSecurityContexts(podSC(userIDPtr(1)), containerSC(userIDPtr(0))), + psps: []*extensions.PodSecurityPolicy{runAsNonRoot}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "runAsNonRoot container request non-root": { pod: createPodWithSecurityContexts(podSC(userIDPtr(1)), containerSC(userIDPtr(2))), psps: []*extensions.PodSecurityPolicy{runAsNonRoot}, - shouldPass: true, + shouldPassAdmit: true, + shouldPassValidate: true, expectedPodSC: podSC(userIDPtr(1)), expectedContainerSC: containerSC(userIDPtr(2)), expectedPSP: runAsNonRoot.Name, @@ -1215,9 +1322,9 @@ func TestAdmitRunAsUser(t *testing.T) { } for k, v := range tests { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { if !reflect.DeepEqual(v.expectedPodSC, v.pod.Spec.SecurityContext) { t.Errorf("%s unexpected pod sc diff:\n%s", k, diff.ObjectGoPrintSideBySide(v.expectedPodSC, v.pod.Spec.SecurityContext)) } @@ -1243,65 +1350,73 @@ func TestAdmitSupplementalGroups(t *testing.T) { mustRunAs.Spec.SupplementalGroups.Ranges = []extensions.GroupIDRange{{Min: int64(999), Max: int64(1000)}} tests := map[string]struct { - pod *kapi.Pod - psps []*extensions.PodSecurityPolicy - shouldPass bool - expectedPodSC *kapi.PodSecurityContext - expectedPSP string + pod *kapi.Pod + psps []*extensions.PodSecurityPolicy + shouldPassAdmit bool + shouldPassValidate bool + expectedPodSC *kapi.PodSecurityContext + expectedPSP string }{ "runAsAny no pod request": { - pod: createPodWithSecurityContexts(nil, nil), - psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, - expectedPodSC: nil, - expectedPSP: runAsAny.Name, + pod: createPodWithSecurityContexts(nil, nil), + psps: []*extensions.PodSecurityPolicy{runAsAny}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPodSC: nil, + expectedPSP: runAsAny.Name, }, "runAsAny empty pod request": { - pod: createPodWithSecurityContexts(&kapi.PodSecurityContext{}, nil), - psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, - expectedPodSC: &kapi.PodSecurityContext{}, - expectedPSP: runAsAny.Name, + pod: createPodWithSecurityContexts(&kapi.PodSecurityContext{}, nil), + psps: []*extensions.PodSecurityPolicy{runAsAny}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPodSC: &kapi.PodSecurityContext{}, + expectedPSP: runAsAny.Name, }, "runAsAny empty pod request empty supplemental groups": { - pod: createPodWithSecurityContexts(&kapi.PodSecurityContext{SupplementalGroups: []int64{}}, nil), - psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, - expectedPodSC: &kapi.PodSecurityContext{SupplementalGroups: []int64{}}, - expectedPSP: runAsAny.Name, + pod: createPodWithSecurityContexts(&kapi.PodSecurityContext{SupplementalGroups: []int64{}}, nil), + psps: []*extensions.PodSecurityPolicy{runAsAny}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPodSC: &kapi.PodSecurityContext{SupplementalGroups: []int64{}}, + expectedPSP: runAsAny.Name, }, "runAsAny pod request": { - pod: createPodWithSecurityContexts(podSC(1), nil), - psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, - expectedPodSC: &kapi.PodSecurityContext{SupplementalGroups: []int64{1}}, - expectedPSP: runAsAny.Name, + pod: createPodWithSecurityContexts(podSC(1), nil), + psps: []*extensions.PodSecurityPolicy{runAsAny}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPodSC: &kapi.PodSecurityContext{SupplementalGroups: []int64{1}}, + expectedPSP: runAsAny.Name, }, "mustRunAs no pod request": { - pod: createPodWithSecurityContexts(nil, nil), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, - expectedPodSC: podSC(mustRunAs.Spec.SupplementalGroups.Ranges[0].Min), - expectedPSP: mustRunAs.Name, + pod: createPodWithSecurityContexts(nil, nil), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPodSC: podSC(mustRunAs.Spec.SupplementalGroups.Ranges[0].Min), + expectedPSP: mustRunAs.Name, }, "mustRunAs bad pod request": { - pod: createPodWithSecurityContexts(podSC(1), nil), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: false, + pod: createPodWithSecurityContexts(podSC(1), nil), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "mustRunAs good pod request": { - pod: createPodWithSecurityContexts(podSC(999), nil), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, - expectedPodSC: podSC(999), - expectedPSP: mustRunAs.Name, + pod: createPodWithSecurityContexts(podSC(999), nil), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPodSC: podSC(999), + expectedPSP: mustRunAs.Name, }, } for k, v := range tests { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { if !reflect.DeepEqual(v.expectedPodSC, v.pod.Spec.SecurityContext) { t.Errorf("%s unexpected pod sc diff:\n%s", k, diff.ObjectGoPrintSideBySide(v.expectedPodSC, v.pod.Spec.SecurityContext)) } @@ -1327,51 +1442,57 @@ func TestAdmitFSGroup(t *testing.T) { mustRunAs.Name = "mustRunAs" tests := map[string]struct { - pod *kapi.Pod - psps []*extensions.PodSecurityPolicy - shouldPass bool - expectedFSGroup *int64 - expectedPSP string + pod *kapi.Pod + psps []*extensions.PodSecurityPolicy + shouldPassAdmit bool + shouldPassValidate bool + expectedFSGroup *int64 + expectedPSP string }{ "runAsAny no pod request": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, - expectedFSGroup: nil, - expectedPSP: runAsAny.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{runAsAny}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedFSGroup: nil, + expectedPSP: runAsAny.Name, }, "runAsAny pod request": { - pod: createPodWithFSGroup(1), - psps: []*extensions.PodSecurityPolicy{runAsAny}, - shouldPass: true, - expectedFSGroup: groupIDPtr(1), - expectedPSP: runAsAny.Name, + pod: createPodWithFSGroup(1), + psps: []*extensions.PodSecurityPolicy{runAsAny}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedFSGroup: groupIDPtr(1), + expectedPSP: runAsAny.Name, }, "mustRunAs no pod request": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, - expectedFSGroup: &mustRunAs.Spec.SupplementalGroups.Ranges[0].Min, - expectedPSP: mustRunAs.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedFSGroup: &mustRunAs.Spec.SupplementalGroups.Ranges[0].Min, + expectedPSP: mustRunAs.Name, }, "mustRunAs bad pod request": { - pod: createPodWithFSGroup(1), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: false, + pod: createPodWithFSGroup(1), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "mustRunAs good pod request": { - pod: createPodWithFSGroup(999), - psps: []*extensions.PodSecurityPolicy{mustRunAs}, - shouldPass: true, - expectedFSGroup: groupIDPtr(999), - expectedPSP: mustRunAs.Name, + pod: createPodWithFSGroup(999), + psps: []*extensions.PodSecurityPolicy{mustRunAs}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedFSGroup: groupIDPtr(999), + expectedPSP: mustRunAs.Name, }, } for k, v := range tests { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { if v.pod.Spec.SecurityContext.FSGroup == nil && v.expectedFSGroup == nil { // ok, don't need to worry about identifying specific diffs continue @@ -1407,51 +1528,57 @@ func TestAdmitReadOnlyRootFilesystem(t *testing.T) { rorfs.Spec.ReadOnlyRootFilesystem = true tests := map[string]struct { - pod *kapi.Pod - psps []*extensions.PodSecurityPolicy - shouldPass bool - expectedRORFS bool - expectedPSP string + pod *kapi.Pod + psps []*extensions.PodSecurityPolicy + shouldPassAdmit bool + shouldPassValidate bool + expectedRORFS bool + expectedPSP string }{ "no-rorfs allows pod request with rorfs": { - pod: createPodWithRORFS(true), - psps: []*extensions.PodSecurityPolicy{noRORFS}, - shouldPass: true, - expectedRORFS: true, - expectedPSP: noRORFS.Name, + pod: createPodWithRORFS(true), + psps: []*extensions.PodSecurityPolicy{noRORFS}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedRORFS: true, + expectedPSP: noRORFS.Name, }, "no-rorfs allows pod request without rorfs": { - pod: createPodWithRORFS(false), - psps: []*extensions.PodSecurityPolicy{noRORFS}, - shouldPass: true, - expectedRORFS: false, - expectedPSP: noRORFS.Name, + pod: createPodWithRORFS(false), + psps: []*extensions.PodSecurityPolicy{noRORFS}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedRORFS: false, + expectedPSP: noRORFS.Name, }, "rorfs rejects pod request without rorfs": { - pod: createPodWithRORFS(false), - psps: []*extensions.PodSecurityPolicy{rorfs}, - shouldPass: false, + pod: createPodWithRORFS(false), + psps: []*extensions.PodSecurityPolicy{rorfs}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "rorfs defaults nil pod request": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{rorfs}, - shouldPass: true, - expectedRORFS: true, - expectedPSP: rorfs.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{rorfs}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedRORFS: true, + expectedPSP: rorfs.Name, }, "rorfs accepts pod request with rorfs": { - pod: createPodWithRORFS(true), - psps: []*extensions.PodSecurityPolicy{rorfs}, - shouldPass: true, - expectedRORFS: true, - expectedPSP: rorfs.Name, + pod: createPodWithRORFS(true), + psps: []*extensions.PodSecurityPolicy{rorfs}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedRORFS: true, + expectedPSP: rorfs.Name, }, } for k, v := range tests { - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { if v.pod.Spec.Containers[0].SecurityContext.ReadOnlyRootFilesystem == nil || *v.pod.Spec.Containers[0].SecurityContext.ReadOnlyRootFilesystem != v.expectedRORFS { t.Errorf("%s expected ReadOnlyRootFilesystem to be %t but found %#v", k, v.expectedRORFS, v.pod.Spec.Containers[0].SecurityContext.ReadOnlyRootFilesystem) @@ -1504,116 +1631,136 @@ func TestAdmitSysctls(t *testing.T) { catchallSysctls.Annotations[extensions.SysctlsPodSecurityPolicyAnnotationKey] = "*" tests := map[string]struct { - pod *kapi.Pod - psps []*extensions.PodSecurityPolicy - shouldPass bool - expectedPSP string + pod *kapi.Pod + psps []*extensions.PodSecurityPolicy + shouldPassAdmit bool + shouldPassValidate bool + expectedPSP string }{ "pod without unsafe sysctls request allowed under noSysctls PSP": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{noSysctls}, - shouldPass: true, - expectedPSP: noSysctls.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{noSysctls}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: noSysctls.Name, }, "pod without any sysctls request allowed under emptySysctls PSP": { - pod: goodPod(), - psps: []*extensions.PodSecurityPolicy{emptySysctls}, - shouldPass: true, - expectedPSP: emptySysctls.Name, + pod: goodPod(), + psps: []*extensions.PodSecurityPolicy{emptySysctls}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: emptySysctls.Name, }, "pod with safe sysctls request allowed under noSysctls PSP": { - pod: podWithSysctls([]string{"a", "b"}, []string{}), - psps: []*extensions.PodSecurityPolicy{noSysctls}, - shouldPass: true, - expectedPSP: noSysctls.Name, + pod: podWithSysctls([]string{"a", "b"}, []string{}), + psps: []*extensions.PodSecurityPolicy{noSysctls}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: noSysctls.Name, }, "pod with unsafe sysctls request allowed under noSysctls PSP": { - pod: podWithSysctls([]string{}, []string{"a", "b"}), - psps: []*extensions.PodSecurityPolicy{noSysctls}, - shouldPass: true, - expectedPSP: noSysctls.Name, + pod: podWithSysctls([]string{}, []string{"a", "b"}), + psps: []*extensions.PodSecurityPolicy{noSysctls}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: noSysctls.Name, }, "pod with safe sysctls request disallowed under emptySysctls PSP": { - pod: podWithSysctls([]string{"a", "b"}, []string{}), - psps: []*extensions.PodSecurityPolicy{emptySysctls}, - shouldPass: false, + pod: podWithSysctls([]string{"a", "b"}, []string{}), + psps: []*extensions.PodSecurityPolicy{emptySysctls}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with unsafe sysctls a, b request disallowed under aSysctls SCC": { - pod: podWithSysctls([]string{}, []string{"a", "b"}), - psps: []*extensions.PodSecurityPolicy{aSysctl}, - shouldPass: false, + pod: podWithSysctls([]string{}, []string{"a", "b"}), + psps: []*extensions.PodSecurityPolicy{aSysctl}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with unsafe sysctls b request disallowed under aSysctls SCC": { - pod: podWithSysctls([]string{}, []string{"b"}), - psps: []*extensions.PodSecurityPolicy{aSysctl}, - shouldPass: false, + pod: podWithSysctls([]string{}, []string{"b"}), + psps: []*extensions.PodSecurityPolicy{aSysctl}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with unsafe sysctls a request allowed under aSysctls SCC": { - pod: podWithSysctls([]string{}, []string{"a"}), - psps: []*extensions.PodSecurityPolicy{aSysctl}, - shouldPass: true, - expectedPSP: aSysctl.Name, + pod: podWithSysctls([]string{}, []string{"a"}), + psps: []*extensions.PodSecurityPolicy{aSysctl}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: aSysctl.Name, }, "pod with safe sysctls a, b request disallowed under aSysctls SCC": { - pod: podWithSysctls([]string{"a", "b"}, []string{}), - psps: []*extensions.PodSecurityPolicy{aSysctl}, - shouldPass: false, + pod: podWithSysctls([]string{"a", "b"}, []string{}), + psps: []*extensions.PodSecurityPolicy{aSysctl}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with safe sysctls b request disallowed under aSysctls SCC": { - pod: podWithSysctls([]string{"b"}, []string{}), - psps: []*extensions.PodSecurityPolicy{aSysctl}, - shouldPass: false, + pod: podWithSysctls([]string{"b"}, []string{}), + psps: []*extensions.PodSecurityPolicy{aSysctl}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with safe sysctls a request allowed under aSysctls SCC": { - pod: podWithSysctls([]string{"a"}, []string{}), - psps: []*extensions.PodSecurityPolicy{aSysctl}, - shouldPass: true, - expectedPSP: aSysctl.Name, + pod: podWithSysctls([]string{"a"}, []string{}), + psps: []*extensions.PodSecurityPolicy{aSysctl}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: aSysctl.Name, }, "pod with unsafe sysctls request disallowed under emptySysctls PSP": { - pod: podWithSysctls([]string{}, []string{"a", "b"}), - psps: []*extensions.PodSecurityPolicy{emptySysctls}, - shouldPass: false, + pod: podWithSysctls([]string{}, []string{"a", "b"}), + psps: []*extensions.PodSecurityPolicy{emptySysctls}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with matching sysctls request allowed under mixedSysctls PSP": { - pod: podWithSysctls([]string{"a.b", "b.c"}, []string{"c", "d.e.f"}), - psps: []*extensions.PodSecurityPolicy{mixedSysctls}, - shouldPass: true, - expectedPSP: mixedSysctls.Name, + pod: podWithSysctls([]string{"a.b", "b.c"}, []string{"c", "d.e.f"}), + psps: []*extensions.PodSecurityPolicy{mixedSysctls}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: mixedSysctls.Name, }, "pod with not-matching unsafe sysctls request disallowed under mixedSysctls PSP": { - pod: podWithSysctls([]string{"a.b", "b.c", "c", "d.e.f"}, []string{"e"}), - psps: []*extensions.PodSecurityPolicy{mixedSysctls}, - shouldPass: false, + pod: podWithSysctls([]string{"a.b", "b.c", "c", "d.e.f"}, []string{"e"}), + psps: []*extensions.PodSecurityPolicy{mixedSysctls}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with not-matching safe sysctls request disallowed under mixedSysctls PSP": { - pod: podWithSysctls([]string{"a.b", "b.c", "c", "d.e.f", "e"}, []string{}), - psps: []*extensions.PodSecurityPolicy{mixedSysctls}, - shouldPass: false, + pod: podWithSysctls([]string{"a.b", "b.c", "c", "d.e.f", "e"}, []string{}), + psps: []*extensions.PodSecurityPolicy{mixedSysctls}, + shouldPassAdmit: false, + shouldPassValidate: false, }, "pod with sysctls request allowed under catchallSysctls PSP": { - pod: podWithSysctls([]string{"e"}, []string{"f"}), - psps: []*extensions.PodSecurityPolicy{catchallSysctls}, - shouldPass: true, - expectedPSP: catchallSysctls.Name, + pod: podWithSysctls([]string{"e"}, []string{"f"}), + psps: []*extensions.PodSecurityPolicy{catchallSysctls}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: catchallSysctls.Name, }, "pod with sysctls request allowed under catchallSysctls PSP, not under mixedSysctls or emptySysctls PSP": { - pod: podWithSysctls([]string{"e"}, []string{"f"}), - psps: []*extensions.PodSecurityPolicy{mixedSysctls, catchallSysctls, emptySysctls}, - shouldPass: true, - expectedPSP: catchallSysctls.Name, + pod: podWithSysctls([]string{"e"}, []string{"f"}), + psps: []*extensions.PodSecurityPolicy{mixedSysctls, catchallSysctls, emptySysctls}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: catchallSysctls.Name, }, "pod with safe c sysctl request allowed under cSysctl PSP, not under aSysctl or bSysctl PSP": { - pod: podWithSysctls([]string{}, []string{"c"}), - psps: []*extensions.PodSecurityPolicy{aSysctl, bSysctl, cSysctl}, - shouldPass: true, - expectedPSP: cSysctl.Name, + pod: podWithSysctls([]string{}, []string{"c"}), + psps: []*extensions.PodSecurityPolicy{aSysctl, bSysctl, cSysctl}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: cSysctl.Name, }, "pod with unsafe c sysctl request allowed under cSysctl PSP, not under aSysctl or bSysctl PSP": { - pod: podWithSysctls([]string{"c"}, []string{}), - psps: []*extensions.PodSecurityPolicy{aSysctl, bSysctl, cSysctl}, - shouldPass: true, - expectedPSP: cSysctl.Name, + pod: podWithSysctls([]string{"c"}, []string{}), + psps: []*extensions.PodSecurityPolicy{aSysctl, bSysctl, cSysctl}, + shouldPassAdmit: true, + shouldPassValidate: true, + expectedPSP: cSysctl.Name, }, } @@ -1623,9 +1770,9 @@ func TestAdmitSysctls(t *testing.T) { t.Fatalf("invalid sysctl annotation: %v", err) } - testPSPAdmit(k, v.psps, v.pod, v.shouldPass, v.expectedPSP, t) + testPSPAdmit(k, v.psps, v.pod, v.shouldPassAdmit, v.shouldPassValidate, v.expectedPSP, t) - if v.shouldPass { + if v.shouldPassAdmit { safeSysctls, unsafeSysctls, _ := helper.SysctlsFromPodAnnotations(v.pod.Annotations) if !reflect.DeepEqual(safeSysctls, origSafeSysctls) { t.Errorf("%s: wrong safe sysctls: expected=%v, got=%v", k, origSafeSysctls, safeSysctls) @@ -1637,11 +1784,11 @@ func TestAdmitSysctls(t *testing.T) { } } -func testPSPAdmit(testCaseName string, psps []*extensions.PodSecurityPolicy, pod *kapi.Pod, shouldPass bool, expectedPSP string, t *testing.T) { - testPSPAdmitAdvanced(testCaseName, kadmission.Create, psps, pod, nil, shouldPass, true, expectedPSP, t) +func testPSPAdmit(testCaseName string, psps []*extensions.PodSecurityPolicy, pod *kapi.Pod, shouldPassAdmit, shouldPassValidate bool, expectedPSP string, t *testing.T) { + testPSPAdmitAdvanced(testCaseName, kadmission.Create, psps, pod, nil, shouldPassAdmit, shouldPassValidate, true, expectedPSP, t) } -func testPSPAdmitAdvanced(testCaseName string, op kadmission.Operation, psps []*extensions.PodSecurityPolicy, pod, oldPod *kapi.Pod, shouldPass bool, canMutate bool, expectedPSP string, t *testing.T) { +func testPSPAdmitAdvanced(testCaseName string, op kadmission.Operation, psps []*extensions.PodSecurityPolicy, pod, oldPod *kapi.Pod, shouldPassAdmit, shouldPassValidate bool, canMutate bool, expectedPSP string, t *testing.T) { informerFactory := informers.NewSharedInformerFactory(nil, controller.NoResyncPeriodFunc()) store := informerFactory.Extensions().InternalVersion().PodSecurityPolicies().Informer().GetStore() @@ -1656,13 +1803,13 @@ func testPSPAdmitAdvanced(testCaseName string, op kadmission.Operation, psps []* attrs := kadmission.NewAttributesRecord(pod, oldPod, kapi.Kind("Pod").WithVersion("version"), "namespace", "", kapi.Resource("pods").WithVersion("version"), "", op, &user.DefaultInfo{}) err := plugin.Admit(attrs) - if shouldPass && err != nil { - t.Errorf("%s: expected no errors but received %v", testCaseName, err) + if shouldPassAdmit && err != nil { + t.Errorf("%s: expected no errors on Admit but received %v", testCaseName, err) } - if shouldPass && err == nil { + if shouldPassAdmit && err == nil { if pod.Annotations[psputil.ValidatedPSPAnnotation] != expectedPSP { - t.Errorf("%s: expected to validate under %q PSP but found %q", testCaseName, expectedPSP, pod.Annotations[psputil.ValidatedPSPAnnotation]) + t.Errorf("%s: expected to be admitted under %q PSP but found %q", testCaseName, expectedPSP, pod.Annotations[psputil.ValidatedPSPAnnotation]) } if !canMutate { @@ -1673,13 +1820,20 @@ func testPSPAdmitAdvanced(testCaseName string, op kadmission.Operation, psps []* delete(originalPodWithoutPSPAnnotation.Annotations, psputil.ValidatedPSPAnnotation) if !apiequality.Semantic.DeepEqual(originalPodWithoutPSPAnnotation.Spec, podWithoutPSPAnnotation.Spec) { - t.Errorf("%s: expected no mutation, got %s", testCaseName, diff.ObjectGoPrintSideBySide(originalPodWithoutPSPAnnotation.Spec, podWithoutPSPAnnotation.Spec)) + t.Errorf("%s: expected no mutation on Admit, got %s", testCaseName, diff.ObjectGoPrintSideBySide(originalPodWithoutPSPAnnotation.Spec, podWithoutPSPAnnotation.Spec)) } } } - if !shouldPass && err == nil { - t.Errorf("%s: expected errors but received none", testCaseName) + if !shouldPassAdmit && err == nil { + t.Errorf("%s: expected errors on Admit but received none", testCaseName) + } + + err = plugin.Validate(attrs) + if shouldPassValidate && err != nil { + t.Errorf("%s: expected no errors on Validate but received %v", testCaseName, err) + } else if !shouldPassValidate && err == nil { + t.Errorf("%s: expected errors on Validate but received none", testCaseName) } } @@ -1803,7 +1957,7 @@ func TestCreateProvidersFromConstraints(t *testing.T) { } for k, v := range testCases { - admit := &podSecurityPolicyPlugin{ + admit := &PodSecurityPolicyPlugin{ Handler: kadmission.NewHandler(kadmission.Create, kadmission.Update), strategyFactory: kpsp.NewSimpleStrategyFactory(), } @@ -2057,23 +2211,6 @@ func permissivePSP() *extensions.PodSecurityPolicy { } } -func createNamespaceForTest() *kapi.Namespace { - return &kapi.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "default", - }, - } -} - -func createSAForTest() *kapi.ServiceAccount { - return &kapi.ServiceAccount{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "default", - Name: "default", - }, - } -} - // goodPod is empty and should not be used directly for testing since we're providing // two different PSPs. Since no values are specified it would be allowed to match any // psp when defaults are filled in. diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/BUILD index 7935b1af4..a90da5e8f 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", ], @@ -23,7 +23,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/admission.go index 24e2ede3a..cace3843d 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/admission.go @@ -22,7 +22,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // Register registers a plugin @@ -32,19 +32,22 @@ func Register(plugins *admission.Plugins) { }) } -type plugin struct { +// Plugin implements admission.Interface. +type Plugin struct { *admission.Handler } +var _ admission.ValidationInterface = &Plugin{} + // NewSecurityContextDeny creates a new instance of the SecurityContextDeny admission controller -func NewSecurityContextDeny() admission.Interface { - return &plugin{ +func NewSecurityContextDeny() *Plugin { + return &Plugin{ Handler: admission.NewHandler(admission.Create, admission.Update), } } -// Admit will deny any pod that defines SELinuxOptions or RunAsUser. -func (p *plugin) Admit(a admission.Attributes) (err error) { +// Validate will deny any pod that defines SELinuxOptions or RunAsUser. +func (p *Plugin) Validate(a admission.Attributes) (err error) { if a.GetSubresource() != "" || a.GetResource().GroupResource() != api.Resource("pods") { return nil } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/admission_test.go index f3c498a1b..9fb041c51 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny/admission_test.go @@ -20,7 +20,7 @@ import ( "testing" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" ) // ensures the SecurityContext is denied if it defines anything more than Caps or Privileged @@ -82,7 +82,7 @@ func TestAdmission(t *testing.T) { p.Spec.SecurityContext = tc.podSc p.Spec.Containers[0].SecurityContext = tc.sc - err := handler.Admit(admission.NewAttributesRecord(p, nil, api.Kind("Pod").WithVersion("version"), "foo", "name", api.Resource("pods").WithVersion("version"), "", "ignored", nil)) + err := handler.Validate(admission.NewAttributesRecord(p, nil, api.Kind("Pod").WithVersion("version"), "foo", "name", api.Resource("pods").WithVersion("version"), "", "ignored", nil)) if err != nil && !tc.expectError { t.Errorf("%v: unexpected error: %v", tc.name, err) } else if err == nil && tc.expectError { @@ -96,7 +96,7 @@ func TestAdmission(t *testing.T) { p.Spec.InitContainers = p.Spec.Containers p.Spec.Containers = nil - err = handler.Admit(admission.NewAttributesRecord(p, nil, api.Kind("Pod").WithVersion("version"), "foo", "name", api.Resource("pods").WithVersion("version"), "", "ignored", nil)) + err = handler.Validate(admission.NewAttributesRecord(p, nil, api.Kind("Pod").WithVersion("version"), "foo", "name", api.Resource("pods").WithVersion("version"), "", "ignored", nil)) if err != nil && !tc.expectError { t.Errorf("%v: unexpected error: %v", tc.name, err) } else if err == nil && tc.expectError { @@ -140,7 +140,7 @@ func TestPodSecurityContextAdmission(t *testing.T) { } for _, test := range tests { pod.Spec.SecurityContext = &test.securityContext - err := handler.Admit(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), "foo", "name", api.Resource("pods").WithVersion("version"), "", "ignored", nil)) + err := handler.Validate(admission.NewAttributesRecord(&pod, nil, api.Kind("Pod").WithVersion("version"), "foo", "name", api.Resource("pods").WithVersion("version"), "", "ignored", nil)) if test.errorExpected && err == nil { t.Errorf("Expected error for security context %+v but did not get an error", test.securityContext) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/BUILD index 4f916fe23..aaeedacdd 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/BUILD @@ -14,8 +14,8 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount", deps = [ - "//pkg/api:go_default_library", "//pkg/api/pod:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", @@ -38,7 +38,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go index 9e319d26d..6e245ecf8 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go @@ -30,8 +30,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/storage/names" - "k8s.io/kubernetes/pkg/api" podutil "k8s.io/kubernetes/pkg/api/pod" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" corelisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -80,6 +80,8 @@ type serviceAccount struct { secretLister corelisters.SecretLister } +var _ admission.MutationInterface = &serviceAccount{} +var _ admission.ValidationInterface = &serviceAccount{} var _ = kubeapiserveradmission.WantsInternalKubeClientSet(&serviceAccount{}) var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&serviceAccount{}) @@ -117,8 +119,8 @@ func (a *serviceAccount) SetInternalKubeInformerFactory(f informers.SharedInform }) } -// Validate ensures an authorizer is set. -func (a *serviceAccount) Validate() error { +// ValidateInitialization ensures an authorizer is set. +func (a *serviceAccount) ValidateInitialization() error { if a.client == nil { return fmt.Errorf("missing client") } @@ -132,18 +134,56 @@ func (a *serviceAccount) Validate() error { } func (s *serviceAccount) Admit(a admission.Attributes) (err error) { - if a.GetResource().GroupResource() != api.Resource("pods") { + if shouldIgnore(a) { return nil } - obj := a.GetObject() - if obj == nil { - return nil + updateInitialized, err := util.IsUpdatingInitializedObject(a) + if err != nil { + return err } - pod, ok := obj.(*api.Pod) - if !ok { + if updateInitialized { + // related pod spec fields are immutable after the pod is initialized return nil } + pod := a.GetObject().(*api.Pod) + + // Don't modify the spec of mirror pods. + // That makes the kubelet very angry and confused, and it immediately deletes the pod (because the spec doesn't match) + // That said, don't allow mirror pods to reference ServiceAccounts or SecretVolumeSources either + if _, isMirrorPod := pod.Annotations[api.MirrorPodAnnotationKey]; isMirrorPod { + return s.Validate(a) + } + + // Set the default service account if needed + if len(pod.Spec.ServiceAccountName) == 0 { + pod.Spec.ServiceAccountName = DefaultServiceAccountName + } + + serviceAccount, err := s.getServiceAccount(a.GetNamespace(), pod.Spec.ServiceAccountName) + if err != nil { + return admission.NewForbidden(a, fmt.Errorf("error looking up service account %s/%s: %v", a.GetNamespace(), pod.Spec.ServiceAccountName, err)) + } + if s.MountServiceAccountToken && shouldAutomount(serviceAccount, pod) { + if err := s.mountServiceAccountToken(serviceAccount, pod); err != nil { + if _, ok := err.(errors.APIStatus); ok { + return err + } + return admission.NewForbidden(a, err) + } + } + if len(pod.Spec.ImagePullSecrets) == 0 { + pod.Spec.ImagePullSecrets = make([]api.LocalObjectReference, len(serviceAccount.ImagePullSecrets)) + copy(pod.Spec.ImagePullSecrets, serviceAccount.ImagePullSecrets) + } + + return s.Validate(a) +} + +func (s *serviceAccount) Validate(a admission.Attributes) (err error) { + if shouldIgnore(a) { + return nil + } updateInitialized, err := util.IsUpdatingInitializedObject(a) if err != nil { return err @@ -153,9 +193,9 @@ func (s *serviceAccount) Admit(a admission.Attributes) (err error) { return nil } - // Don't modify the spec of mirror pods. - // That makes the kubelet very angry and confused, and it immediately deletes the pod (because the spec doesn't match) - // That said, don't allow mirror pods to reference ServiceAccounts or SecretVolumeSources either + pod := a.GetObject().(*api.Pod) + + // Mirror pods have restrictions on what they can reference if _, isMirrorPod := pod.Annotations[api.MirrorPodAnnotationKey]; isMirrorPod { if len(pod.Spec.ServiceAccountName) != 0 { return admission.NewForbidden(a, fmt.Errorf("a mirror pod may not reference service accounts")) @@ -171,20 +211,11 @@ func (s *serviceAccount) Admit(a admission.Attributes) (err error) { return nil } - // Set the default service account if needed - if len(pod.Spec.ServiceAccountName) == 0 { - pod.Spec.ServiceAccountName = DefaultServiceAccountName - } - // Ensure the referenced service account exists serviceAccount, err := s.getServiceAccount(a.GetNamespace(), pod.Spec.ServiceAccountName) if err != nil { return admission.NewForbidden(a, fmt.Errorf("error looking up service account %s/%s: %v", a.GetNamespace(), pod.Spec.ServiceAccountName, err)) } - if serviceAccount == nil { - // TODO: convert to a ServerTimeout error (or other error that sends a Retry-After header) - return admission.NewForbidden(a, fmt.Errorf("service account %s/%s was not found, retry after the service account is created", a.GetNamespace(), pod.Spec.ServiceAccountName)) - } if s.enforceMountableSecrets(serviceAccount) { if err := s.limitSecretReferences(serviceAccount, pod); err != nil { @@ -192,21 +223,23 @@ func (s *serviceAccount) Admit(a admission.Attributes) (err error) { } } - if s.MountServiceAccountToken && shouldAutomount(serviceAccount, pod) { - if err := s.mountServiceAccountToken(serviceAccount, pod); err != nil { - if _, ok := err.(errors.APIStatus); ok { - return err - } - return admission.NewForbidden(a, err) - } - } + return nil +} - if len(pod.Spec.ImagePullSecrets) == 0 { - pod.Spec.ImagePullSecrets = make([]api.LocalObjectReference, len(serviceAccount.ImagePullSecrets)) - copy(pod.Spec.ImagePullSecrets, serviceAccount.ImagePullSecrets) +func shouldIgnore(a admission.Attributes) bool { + if a.GetResource().GroupResource() != api.Resource("pods") { + return true + } + obj := a.GetObject() + if obj == nil { + return true + } + _, ok := obj.(*api.Pod) + if !ok { + return true } - return nil + return false } func shouldAutomount(sa *api.ServiceAccount, pod *api.Pod) bool { @@ -267,7 +300,7 @@ func (s *serviceAccount) getServiceAccount(namespace string, name string) (*api. } } - return nil, nil + return nil, errors.NewNotFound(api.Resource("serviceaccount"), name) } // getReferencedServiceAccountToken returns the name of the first referenced secret which is a ServiceAccountToken for the service account diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission_test.go index 803374810..d51677186 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apiserver/pkg/admission" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" corelisters "k8s.io/kubernetes/pkg/client/listers/core/internalversion" @@ -35,13 +35,10 @@ import ( ) func TestIgnoresNonCreate(t *testing.T) { - pod := &api.Pod{} for _, op := range []admission.Operation{admission.Delete, admission.Connect} { - attrs := admission.NewAttributesRecord(pod, nil, api.Kind("Pod").WithVersion("version"), "myns", "myname", api.Resource("pods").WithVersion("version"), "", op, nil) - handler := admission.NewChainHandler(NewServiceAccount()) - err := handler.Admit(attrs) - if err != nil { - t.Errorf("Expected %s operation allowed, got err: %v", op, err) + handler := NewServiceAccount() + if handler.Handles(op) { + t.Errorf("Expected not to handle operation %s", op) } } } @@ -50,7 +47,7 @@ func TestIgnoresUpdateOfInitializedPod(t *testing.T) { pod := &api.Pod{} oldPod := &api.Pod{} attrs := admission.NewAttributesRecord(pod, oldPod, api.Kind("Pod").WithVersion("version"), "myns", "myname", api.Resource("pods").WithVersion("version"), "", admission.Update, nil) - handler := admission.NewChainHandler(NewServiceAccount()) + handler := NewServiceAccount() err := handler.Admit(attrs) if err != nil { t.Errorf("Expected update of initialized pod allowed, got err: %v", err) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/BUILD index 3e971c490..27b114d06 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/BUILD @@ -11,8 +11,8 @@ go_library( srcs = ["admission.go"], importpath = "k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/apis/storage:go_default_library", "//pkg/apis/storage/util:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", @@ -31,7 +31,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/storage:go_default_library", "//pkg/apis/storage/util:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/admission.go index 2e218bb0e..6a9fe197a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/admission.go @@ -25,8 +25,8 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" admission "k8s.io/apiserver/pkg/admission" - api "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/helper" + api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/pkg/apis/storage" storageutil "k8s.io/kubernetes/pkg/apis/storage/util" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" @@ -54,6 +54,7 @@ type claimDefaulterPlugin struct { } var _ admission.Interface = &claimDefaulterPlugin{} +var _ admission.MutationInterface = &claimDefaulterPlugin{} var _ = kubeapiserveradmission.WantsInternalKubeInformerFactory(&claimDefaulterPlugin{}) // newPlugin creates a new admission plugin. @@ -69,8 +70,8 @@ func (a *claimDefaulterPlugin) SetInternalKubeInformerFactory(f informers.Shared a.SetReadyFunc(informer.Informer().HasSynced) } -// Validate ensures lister is set. -func (a *claimDefaulterPlugin) Validate() error { +// ValidateInitialization ensures lister is set. +func (a *claimDefaulterPlugin) ValidateInitialization() error { if a.lister == nil { return fmt.Errorf("missing lister") } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/admission_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/admission_test.go index e0516eaf1..6be376543 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/admission_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/storageclass/setdefault/admission_test.go @@ -23,7 +23,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/storage" storageutil "k8s.io/kubernetes/pkg/apis/storage/util" informers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/certs_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/certs_test.go deleted file mode 100644 index 815d8214c..000000000 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/webhook/certs_test.go +++ /dev/null @@ -1,215 +0,0 @@ -/* -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 generated using openssl by the gencerts.sh script -// and holds raw certificates for the webhook tests. - -package webhook - -var caKey = []byte(`-----BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEArHdRY9333U04xKotqnwKwJ52ihSGwr5hf4XkoZ46+ZYiaPS1 -sEeKkFPRZEZIK22cd/2glyy+AsEURi8yeFut7exu41Y6M5Cfgf64keY2EgRu9DlB -ZyQBTD67TfA64xRbztHmgJpBZHpd00R9o1I05OYso7ALFiqEtHDPvUj3PU17h7c3 -xEfq1k7kQq8Tr0EbEQ+GWdE/X0IHW4J4pIjK010KHZSJz4W0wuVgsjDDvV4RGPIR -cXT/nH36gmM+rcxNgtHgNHCSQ7i6ioUMjvg3utp08Vtw0icK9V5MV2MAGjNh5zCi -Uvl+9rTsW5v7tR9Y5puWqBPEWaBpwJwjJlEaAQIDAQABAoIBAC7xMxgJnKOBl0gA -Qfm7VXnkJ8OhnqR3CTaajQZoeQjiEm+a27ElZ9Os3Lt8XbxkU0hdok5DgVxijVAl -HImh+o9d4TjDiYfrf170o+wiSulQh5q10tVt+WR1Vqn6Dy0rp2l9vE2Yrt/YZp1Q -cRn5ECiVdeT/z6Sy4ffzFLgimhj3AUyipDpBUdvqNnC6+OP2T5ZXDGC2LJGU6v4z -zLwjFV1pMRgxLJFoCD9Zy200OkbMYYAhYgaiXMyu5ZU3AjWynPdswANshccAtFt8 -wqVICN20HEoOW1PEM+Z1wOUxpQYUOfL3ieJp9WKklHe7vbY3Iuaotg0Gmg74TNbR -8dcJsjkCgYEA4i1TcnUenv7Tdj9ectN6vXNeGrBUvBO4XFHKauBcGnhZQLuS9GRt -cUJ+Y3rRLpf7rKE18Zl0YDgJRycfsNjbI6U74pcXZ/XBySPLGcfVrEqaTZ9o5apV -UOwbKkP1vtEuGLipFVuvZdinVLAs5QFrO2HoqmXqcYQhjVqHtT0NmGcCgYEAwzT2 -UI/r14yRH7oaRU/cPmDG0pCfMjaXlKmU/oaqyYypn750NiyZqSWdZf7rhBxOCbPE -tEtTGAPgGkEbb5GmpEDuJRtuj25kT0kIGqU6KjnYR0OO3iIr6mQN12Cv16JiFN5B -VNpNSXkR8Hi2kQimz1W/KzUXoInbzaEji9WF2VcCgYEA0FWt6t0k8pGJmP8v8ZcJ -FR8CjJTlyERl6mvQhvfY/uziUbU13PXwtYXpQ5rquf927IGmXb/bKZIUQb0w/MYT -vNbDvaks/y6pbKwStdGT6VrinSN8DSkD40FImHr3DuhBjLXz0V+dxbN2FpUdFWhk -LNO369VqyVtLSJgeLvxo3HsCgYA12kaZsxq9PGpM9mqI9J8uFkTDkmJY1/a5bI9O -KJi1QbkJ+ODWkTdTEq15lfojWCuvQYjitGUYGvmYRJ3tCaGPbtpEIm095JaHyP4T -W8HQJGUmQ90GKycyYqfu4x2fv4yPdUFQx2jK/DuWu7aiDGD4kg9LPDpob5/T+sBz -s1RZwQKBgDhwksMQXoEbQLdpllqOL45hmXu06/eOnG4tCY3OXlTf8UQXn31aPXdr -75W8VyyyB7vlNj414jI8N5xriGuRt36ihC3vmz+RotcHhCjH4sXnylP7hwg1ZuGh -QE9Df6To9LjpRfZZZ9KdAnyx7P/OZPgXPcK7vd9U3+JQ4E8YW4qG ------END RSA PRIVATE KEY-----`) - -var caCert = []byte(`-----BEGIN CERTIFICATE----- -MIIDPTCCAiWgAwIBAgIJAKa7yqtdLQh0MA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV -BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX -DTE3MDkxMzAwMTAwNFoYDzIyOTEwNjI5MDAxMDA0WjA0MTIwMAYDVQQDDClnZW5l -cmljX3dlYmhvb2tfYWRtaXNzaW9uX3BsdWdpbl90ZXN0c19jYTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKx3UWPd991NOMSqLap8CsCedooUhsK+YX+F -5KGeOvmWImj0tbBHipBT0WRGSCttnHf9oJcsvgLBFEYvMnhbre3sbuNWOjOQn4H+ -uJHmNhIEbvQ5QWckAUw+u03wOuMUW87R5oCaQWR6XdNEfaNSNOTmLKOwCxYqhLRw -z71I9z1Ne4e3N8RH6tZO5EKvE69BGxEPhlnRP19CB1uCeKSIytNdCh2Uic+FtMLl -YLIww71eERjyEXF0/5x9+oJjPq3MTYLR4DRwkkO4uoqFDI74N7radPFbcNInCvVe -TFdjABozYecwolL5fva07Fub+7UfWOablqgTxFmgacCcIyZRGgECAwEAAaNQME4w -HQYDVR0OBBYEFPa03YxFI220gcsALquzjQkfHztBMB8GA1UdIwQYMBaAFPa03YxF -I220gcsALquzjQkfHztBMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB -AJkgjVhVNAoVdNA55qPPYxouOpOUNyy6GV8ZKCSepz4O5uSRl1FHxTIoodnYzBvO -RkYBJCMupB4Ee+wuMlZGPd3Tfnl6SaP1V4vGYD1iS4otMM6J2tTJBxoLqQwNaDkc -S2E2zfbQ0OxaRNbMBn9AZvZE4lN2TMVuWuTGl1amMLF7Fsxs2ndt+OCpf8d2sWpW -Enh475ch0PJfqZU0papeSV0XRdn60lTGwIbRldUowTBLYcbKo4tTMsCE3oOK7yul -0QhQ9eJktvMbZNMYwGWz+p4pjs/eqBnlBP0KuXguKFHFXILxPlyRMhsvHKURUnC8 -ugGtqN9AEw6SF2Hf1rzmNno= ------END CERTIFICATE-----`) - -var badCAKey = []byte(`-----BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEA5T0xQ7mapkcE+h3owavy8NDxc2eKRe9q/5/yFp27F8QpnY13 -SQS0GXvDiFW1eXdXTg39loy5fG3SZLd/f0eniF2FWKsRvIJbRGyyVBzySbNvbEit -ekVeKQJTTH3Xlnb2JdRrr4vxWQC7crVPksS+AsB+MzdB39XIYxvK6hqwF7On8gro -tzJ+k9e9+/rk0u8FsOBvnE8Z9MX5qX+00UnHSVZuzQt//rTG4Dqsm1yswwTlUfe9 -XpjSh7D6fpjp5YNH9p3vLZMjoY/7ZqO0svHlcWjyv/zoN35p0gMwOGrByATYi2lo -wYBckI8oC+CzyRO8ThKUDW19fa9jKYcqsIDhwQIDAQABAoIBADFvadFWFFCpXhxm -GMyzPRfLp1YgzQPZ5rQrlPRlnXQ5nFParw+zEPex5e/fs9v27X/qqnYt8M4xjL6l -h7w2Ap34tQnzEkcZwX7XBfn3qBRWur+aSLbmgLDNTJNhS/2pt9lenr5jqm9sJgBN -s1ROUz+arVx0HSOdIbKlyrODf9gMQL6hg/ZYNym2KaaYjnNfyrGtb3GQgYDn5FNQ -TSeseXOm82Ev34pSbtQ/oFtU5W4DW72VFA68ciaLM2XslVl/zcncyDk+0LpvSq+W -PYSQbwU/xZukMXXxbBoQUaorNK1fDOdYXBzSzs+Yzo+71D3azFaqPv6CMlHCYeA8 -EUkDRAECgYEA8rmOnzjoHStjkOr7Yb5zqX4UyC0VvB6S9EJxy2a133K0eXJ82KPR -L7fkkvZk04PwDUpClTqcTw3gblhIaBYsFqTnCn6+8hS1Lqa6OqUYo5/UD1O4mXVh -ebLvss5CNqA2+ii80XkRZSW4w/27CG+u/iBAiS5JeYi0zm89G5PYbCECgYEA8cbR -VoUB6rFNC0VOd/D+LPMWaCU7FguAJQ+8Opoh/JgmxFqWwWYeteuX0tbGrKb8LXSA -XLEL1vrZjQ2W9tKP4hP9rgiZbvNujPABS1ey5mMFDPMy6q2OYgLY85jpeYU9PpRt -dOZiw7a0TFENRU19/WMeSfdDvEzafX6tqA/gwaECgYEA0337V6EuHrx/tPYKs9BO -15CUaxddqNy7DzoWDTUho+E+f9PSFLIow3toHuWyVNrRf8ME4SKAsCFXPM6PyKIJ -KHHnHq3xkt2YQV3lRtQz895/2BsK7ivpEzFmylYOO6q+PJria2MiVQ/ZPm0HWwJ1 -Z9iSYvWB7/O+F2G1zSG1ogECgYEAtoV0VY+VsdplokORCGULTV26JactoufNtqzZ -WZgwXiNy6LrGonv4ZTfU5tszIvXw3FPd75vMp1+6Soze0biF3JNg6DgftK3bYFRz -dbBgIyLPlkYmwxmAqqchp0xhvVaDtLGSrDScjMlp9U8e6JmmqlpgbFBZd1bBfwna -CUzrTOECgYEAx98UtYAFWVwoCZwtqSfzTKHerFN/qMFY34cXhdns2ZWn6kEb6alk -dXqNDkXV/7EBGWAcvKn/zbrwlhVDwPHUETgjCUpxqST0ly6E/JnwiNbrSOWG4Yg0 -RoKj46nUcolMbgRub+yeQqcQ48Y2/1OvnRUQ9aQ5MqVSyTyylgMKlB8= ------END RSA PRIVATE KEY-----`) - -var badCACert = []byte(`-----BEGIN CERTIFICATE----- -MIIDPTCCAiWgAwIBAgIJAOQ6iHm4OCSMMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV -BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX -DTE3MDkxMzAwMTAwNFoYDzIyOTEwNjI5MDAxMDA0WjA0MTIwMAYDVQQDDClnZW5l -cmljX3dlYmhvb2tfYWRtaXNzaW9uX3BsdWdpbl90ZXN0c19jYTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAOU9MUO5mqZHBPod6MGr8vDQ8XNnikXvav+f -8haduxfEKZ2Nd0kEtBl7w4hVtXl3V04N/ZaMuXxt0mS3f39Hp4hdhVirEbyCW0Rs -slQc8kmzb2xIrXpFXikCU0x915Z29iXUa6+L8VkAu3K1T5LEvgLAfjM3Qd/VyGMb -yuoasBezp/IK6LcyfpPXvfv65NLvBbDgb5xPGfTF+al/tNFJx0lWbs0Lf/60xuA6 -rJtcrMME5VH3vV6Y0oew+n6Y6eWDR/ad7y2TI6GP+2ajtLLx5XFo8r/86Dd+adID -MDhqwcgE2ItpaMGAXJCPKAvgs8kTvE4SlA1tfX2vYymHKrCA4cECAwEAAaNQME4w -HQYDVR0OBBYEFEe2nQ5ONNJFv/+6pWnzvfqRNTR9MB8GA1UdIwQYMBaAFEe2nQ5O -NNJFv/+6pWnzvfqRNTR9MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB -AEORwyo3MJZVuYbqft728t9MWw0wFORzxPnFVLXMIrX223flNEmqvkA8UBSulxmq -yDYOOkOWByd2eemCZtc/MlmiSeYNFSi/PS+METkAef2cZfSQNdIUwwl5BZ4vW973 -J+fDNm0LQh3ZPDngylQ3XprQkF7l+UefRVfbDDTALVDzmJCV/FCm05ijg+HssgwX -+rYI9ZdJbp2z9xftN0RRIwrBQ3S9vA1mq6OoZFco+9Oq5Li5DHv0BpQgOS64dY1z -dtOy4RvQNF8NsITkOlp7f39716448dvq8TJlCdE27ptL44hU82cZib3cwQx8cynu -45owbCivEhgee3RUY7gVuc8= ------END CERTIFICATE-----`) - -var serverKey = []byte(`-----BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAxjTbuWppAQB140aAxVVo0jdcGw5id4IAa8ji3T/X1+mDIkU8 -dA8kfpwgaeurh3Nai0R6LT9ZZ5aJD8a2udhVivY0Q11snw/4G40avL2yPr1VJSKk -lv5/b1knSh53Cvj+7ma6yjn5yBxw8V7v++37yVe6LHP3B0QBvR07n9k507gKHkw/ -R924I6JUdBtlqoIPwRJlWRVyJ5RawfDZ+KX2d9rY0WAxW60Xge8gWPMv8XKViyw+ -p5+5ct6aHiu6/vtRP5N70lL8HXQjr+x0qaFd6m3/SajjX8AKvdIQzDocTzmjdlRL -Rj8kvLYf8fPazSybqWv0JeXkVxCZPv25SN26BwIDAQABAoIBAGYsqXgTmr2hdyQK -HCedt8NmNlzcNXZV1dG6ZPiZCLOM9MSd3GQXykBaS3tOucXBeVOBoVnh5jy4JT+0 -uE1lb/OKp7ZyWqREnynUu4vAXjppb5MNILuVxiuoUdCrk8JcSU6sNm45JMI7px1G -S4AbVkicqKRxw05DiIHsp+fnGyBAPRK5+NxHzvERGH9Fxu6jKngSEfz345hZet07 -C93tREsRYAPymjMO3Z/vLzO8MjwvLrL+ko6RR1/+VQjWG/tSgnSEhOpGibgWl4ni -4MvgipRzxkPfRE0qhAjbiQc/epRKDWWTkVfCDruKPSu5SIqD5NmT+MJTws25ZO4c -C3yh08ECgYEA//nPrMwOFft47maJR+y5TS+ym7pemMAztnB+9sLQB1iAF4RP29sK -s6WsQmxAiqb0X8lP6N0uRXBD/Cc30hXFfkfx4iWZl5/GYSswEVNXVx7GlFjh1DdB -dbAK/04+/pJGHWaWJFyoWy8+HRDezJ33dF/y6BVX85eA1b8jdvrBB/UCgYEAxjmm -fo2B1UDVfPb48SbiVV2w8VVo8p6/AOUxUYg10ZkJj5zSB76FC2yfYVPZGCnt2dcZ -N3EPQ4ETVbYgL9N1fgukzWSez38SFuYDajJUxJ7tt4G9W881pZPfi3B1by7xcyaW -4M9gDvsvM2QYPGiz6mH1DwxG2rtY0ktolWkbyIsCgYEAo8xmYSueY+CsbNl+RWEs -3kCEaXRj7hknvjnUdPEKj3jJVsMbGxPakESWq1Z8In1daSH4GYnXfyWsy2EJLk0y -OHGvTchDtavPFQS+2IddH2mZJvqNX/AP2lBRaTfXxa0yYsPvlcsZDGh5tb3C5Gq9 -G2H+nRZzVnP/REfwWMVy2jUCgYEApgsKlT2RwQGTEx+J/e71bk6R9kX2KC2jj2ts -+X/gnRbVdHAHWydTKPOvOgbTdjNBItXUMKXLBF+tw4FQyt8VrySvwsEDaoplq7q2 -p5FLgnwiYjISXUJgDLembJYiOKUY6b0sa1oqe8IakrDIwGlwM+gkL5u4CmceiuFR -1L374OsCgYAA5KmaCPoDefbvjpQ0EEZ+EFUyT9zVPHvqJa0aYo9KeWGfD/c9gYcQ -WYWmap9Ed7RfMSxSE3oS2JCFIW19Y0HlBiyu+mi3oJ1ErJRmzgNQHmMkzDr1plQ6 -Zs423AVUJak0hiqLhF2o/I+pbbtGXB1TBaR6d6cGNP3wTCHtCjNc6w== ------END RSA PRIVATE KEY-----`) - -var serverCert = []byte(`-----BEGIN CERTIFICATE----- -MIIDJjCCAg6gAwIBAgIJAPJEHs7Aav1jMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV -BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX -DTE3MDkxMzAwMTAwNFoYDzIyOTEwNjI5MDAxMDA0WjAjMSEwHwYDVQQDExh3ZWJo -b29rLXRlc3QuZGVmYXVsdC5zdmMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQDGNNu5amkBAHXjRoDFVWjSN1wbDmJ3ggBryOLdP9fX6YMiRTx0DyR+nCBp -66uHc1qLRHotP1lnlokPxra52FWK9jRDXWyfD/gbjRq8vbI+vVUlIqSW/n9vWSdK -HncK+P7uZrrKOfnIHHDxXu/77fvJV7osc/cHRAG9HTuf2TnTuAoeTD9H3bgjolR0 -G2Wqgg/BEmVZFXInlFrB8Nn4pfZ32tjRYDFbrReB7yBY8y/xcpWLLD6nn7ly3poe -K7r++1E/k3vSUvwddCOv7HSpoV3qbf9JqONfwAq90hDMOhxPOaN2VEtGPyS8th/x -89rNLJupa/Ql5eRXEJk+/blI3boHAgMBAAGjSjBIMAkGA1UdEwQCMAAwCwYDVR0P -BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHREECDAG -hwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQAp99rbIZlUhvNmxhiQCMcltLqtIpGs -ZorxbInV4QCdV+Kybot+L7kUDxu/OqERNLqr1qRsjqJRHUhiZZVv8gjZgwz4bO1/ -ycjUyAoS92OMKEWlvXe1nMnHH3Jw+lXnwiaOumoExhB1gpMjGqsU3mBQrHXGenNS -JyJtRsBFnkgk1hGycJPgNc/juaHuGBexLDdPqOy3Zmv1AtzFhvPzOTEFpaIGa5dz -vewjDBFBCpFFTqpISD93JX6AbkucPVKnfF97DkBLyj3mr+X9Cy0pLGjwN8Gcp1Ez -5MvTqbOmqLypcRJu285K0Yxmv7a38GND7xeoijfnPFjVjYGlacCnI7ps ------END CERTIFICATE-----`) - -var clientKey = []byte(`-----BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEA1jCNOxaX7C6bH8YffvoneePNQVAnMejecJqQz+KJHdrwTlOD -dqzpBVf21tzUo2AU7xoKzpHnEZ5PvBlgzveBhBy3E48ILWRs4ZCnCXYRG62LD6fI -ub0uEt2IwHiT0A6q1fGrAYlrzLkYRz3LQyOQhL0Ca7nB2IeCzY/Vfz0TR2+4bMtY -54Go5G+lZRP1N88E2cplS8YEZLPlQqqVS6J15bkpnAMmQWL5x67cUbnXdST4qvns -3cSqjjC0LKhOd1aInxdCgwL7dT4lwF64Jz1/25OSUVFN5J5Y8xmPqQWHNtauVTjw -/StV1DYfe3LnVhVriQ+aNu/cssfe1Se7x6w7HQIDAQABAoIBACRaOy4jKIfCZTug -UaooZNjQK/8AzpYu8snjwd42kZUKmqyAihhzQl1Qz6kp88ECxqrKHblvk+sullPT -btXRth6pDP150iZ6G+yws1jsu/yZmLeAf5XeoNo81T/tdxDh3GbRTHfHTg+B/rfg -qgXsHFQbDDUiYt8QKMgguFiPEh2WbedyAe1N9LhtEazMhrnLXCUxTXIFddmcKvnk -fTcnV6mG4FftXFwh+Qn4HukphENHD+xazxIp/WFGDbbStQ8sbjkUSydU0w5x/eQ/ -V6z7ibgDmlHoSyKCxc0B0wuNE/BBQzQGvy2T9UhA4V2+vwuQpcXxM77tXMNnmxaX -fEXHQBUCgYEA+sYZKOTL7JCJNnGexVVxn6OWZUuSf94LAyVBCveHnItlFgowzwU1 -NYUFD894SR7orvbnSHvEOvim10C7YoyDcsH5+zt4K7dMnVJ6I6I4mNv0r/1WylHe -JyNkYP7jn6znMqVgvo4YHCMrk2OoPIE8jeH1aN+I/YOTi47BIb+MbfcCgYEA2qdG -AbgwVoWeQT7Z+3iJxTgaZGjO66Id2164HMK0NGeYjNeWikt58Y5Vitblk6h8JqQy -yOipyyIbQFnQbmTo6vlvNTKw2NOrPHkYktridIfFrinYqEmKfhbhQWnZAOTjOnpJ -9RFC5LbErmrf5G6HIWV8bfX/kBvi0QbF6VYuKosCgYB2Ztf0PeqmnCuc4BKFu2z1 -YcidtQvLgawTZSCLrAmEeTBWMqOO6zePOGoGZ/+0DnrwOTVEPOOOsF4d3btbsVpS -8ZE09IQtp9LtqMZwUqSET7385hF3XyYTtpsrTM1uU7WpbPn7np11k4l8gp4pSx+r -Ide8F2bXw6sDRniblZQZSwKBgQCjN4RZmj1zCLEWcS1UuyjUcEm7NEVpvY1eCLmU -tn7AM6i7Ud8NAsRXXXFbf4jGDVoHmkBSmuLMQHxpL+IX1fnMFUA/TMSYRoEnVhnS -3dN3OzaECLazAJqB/uBM7Q9QzIsWRtzYM/dkNU5iCGNy6FK0ykX061HHKBnLAKxR -vsQdewKBgGCZiy/QYdGR3jdfD7Qytfuptgf6zFLB0BqHJTG/YmnonCDTI8ZxmDOF -DspoiVbrjYdHED0IfcnXYNK8+Bv/2vVxAGqqCdA/aJbFXx86zKJvu8ZHcFrWl6Fy -vdk6OsJjqpA0RM/lD2kVvHeaBO44qGmMFfZHv52ONu+wE4mVX6Y8 ------END RSA PRIVATE KEY-----`) - -var clientCert = []byte(`-----BEGIN CERTIFICATE----- -MIIDOzCCAiOgAwIBAgIJAPJEHs7Aav1kMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV -BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX -DTE3MDkxMzAwMTAwNFoYDzIyOTEwNjI5MDAxMDA0WjA4MTYwNAYDVQQDFC1nZW5l -cmljX3dlYmhvb2tfYWRtaXNzaW9uX3BsdWdpbl90ZXN0c19jbGllbnQwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWMI07FpfsLpsfxh9++id5481BUCcx -6N5wmpDP4okd2vBOU4N2rOkFV/bW3NSjYBTvGgrOkecRnk+8GWDO94GEHLcTjwgt -ZGzhkKcJdhEbrYsPp8i5vS4S3YjAeJPQDqrV8asBiWvMuRhHPctDI5CEvQJrucHY -h4LNj9V/PRNHb7hsy1jngajkb6VlE/U3zwTZymVLxgRks+VCqpVLonXluSmcAyZB -YvnHrtxRudd1JPiq+ezdxKqOMLQsqE53VoifF0KDAvt1PiXAXrgnPX/bk5JRUU3k -nljzGY+pBYc21q5VOPD9K1XUNh97cudWFWuJD5o279yyx97VJ7vHrDsdAgMBAAGj -SjBIMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMC -BggrBgEFBQcDATAPBgNVHREECDAGhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQBh -cqu6S6MkUUtNhlWR33ZfV6Ewoz06IGtUIUDDuRmVuizCDOdCcGOTDvdoXtbZMwUf -ZRVVaSyIjqdz5k+C06mHM7uEEgo+Xo7YolK1AiW9VflG8K47l/+XlLoHFv0eB9k/ -KdlFkzh3pszM4uEiynkLlSpQxyyBOhyaVdQlXdamqmSfIO0HlLza1OAP2rMILeMb -GJ0y+DCxxAspwVvmCUzc5nL6t35+oEDihRk9bjGDLhfh+b0AYSO4RUjzhNlayUBG -/Kbxh6GiimYmWwpIUTcTAbO7gB7Ya5eXmEB80McS0Z6MY/AEBHnu2Cy8BVEDY30f -uOhGOj+iPQxidcxc+wuy ------END CERTIFICATE-----`) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/BUILD index c852e7058..b6f0426ab 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/bootstrap/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -27,7 +27,7 @@ go_library( srcs = ["bootstrap.go"], importpath = "k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/bootstrap/api:go_default_library", "//pkg/client/listers/core/internalversion:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/bootstrap.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/bootstrap.go index fecea0f68..90a013748 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/bootstrap.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/bootstrap.go @@ -31,7 +31,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" "k8s.io/kubernetes/pkg/client/listers/core/internalversion" ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/bootstrap_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/bootstrap_test.go index 7e76faaf6..f319cc866 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/bootstrap_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap/bootstrap_test.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/BUILD index fb4aa7008..1dbbdb245 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/auth/authorizer/node", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/auth/nodeidentifier:go_default_library", "//plugin/pkg/auth/authorizer/rbac/bootstrappolicy:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -30,9 +30,9 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/auth/authorizer/node", deps = [ - "//pkg/api:go_default_library", "//pkg/api/persistentvolume:go_default_library", "//pkg/api/pod:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/auth/nodeidentifier:go_default_library", "//pkg/client/informers/informers_generated/internalversion/core/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/graph.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/graph.go index cdcd0201f..729cad2ea 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/graph.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/graph.go @@ -19,9 +19,9 @@ package node import ( "sync" - "k8s.io/kubernetes/pkg/api" pvutil "k8s.io/kubernetes/pkg/api/persistentvolume" podutil "k8s.io/kubernetes/pkg/api/pod" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/third_party/forked/gonum/graph" "k8s.io/kubernetes/third_party/forked/gonum/graph/simple" ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/graph_populator.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/graph_populator.go index ecea060d6..64ea64822 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/graph_populator.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/graph_populator.go @@ -20,7 +20,7 @@ import ( "github.com/golang/glog" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" coreinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/core/internalversion" ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/node_authorizer.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/node_authorizer.go index 46a24eba1..62ab4a5b0 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/node_authorizer.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/node_authorizer.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" rbacapi "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/auth/nodeidentifier" "k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac" @@ -32,8 +32,8 @@ import ( ) // NodeAuthorizer authorizes requests from kubelets, with the following logic: -// 1. If a request is not from a node (IdentifyNode() returns isNode=false), reject -// 2. If a specific node cannot be identified (IdentifyNode() returns nodeName=""), reject +// 1. If a request is not from a node (NodeIdentity() returns isNode=false), reject +// 2. If a specific node cannot be identified (NodeIdentity() returns nodeName=""), reject // 3. If a request is for a secret, configmap, persistent volume or persistent volume claim, reject unless the verb is get, and the requested object is related to the requesting node: // node <- pod // node <- pod <- secret @@ -64,16 +64,16 @@ var ( pvResource = api.Resource("persistentvolumes") ) -func (r *NodeAuthorizer) Authorize(attrs authorizer.Attributes) (bool, string, error) { +func (r *NodeAuthorizer) Authorize(attrs authorizer.Attributes) (authorizer.Decision, string, error) { nodeName, isNode := r.identifier.NodeIdentity(attrs.GetUser()) if !isNode { // reject requests from non-nodes - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } if len(nodeName) == 0 { // reject requests from unidentifiable nodes glog.V(2).Infof("NODE DENY: unknown node for user %q", attrs.GetUser().GetName()) - return false, fmt.Sprintf("unknown node for user %q", attrs.GetUser().GetName()), nil + return authorizer.DecisionNoOpinion, fmt.Sprintf("unknown node for user %q", attrs.GetUser().GetName()), nil } // subdivide access to specific resources @@ -92,31 +92,34 @@ func (r *NodeAuthorizer) Authorize(attrs authorizer.Attributes) (bool, string, e } // Access to other resources is not subdivided, so just evaluate against the statically defined node rules - return rbac.RulesAllow(attrs, r.nodeRules...), "", nil + if rbac.RulesAllow(attrs, r.nodeRules...) { + return authorizer.DecisionAllow, "", nil + } + return authorizer.DecisionNoOpinion, "", nil } // authorizeGet authorizes "get" requests to objects of the specified type if they are related to the specified node -func (r *NodeAuthorizer) authorizeGet(nodeName string, startingType vertexType, attrs authorizer.Attributes) (bool, string, error) { +func (r *NodeAuthorizer) authorizeGet(nodeName string, startingType vertexType, attrs authorizer.Attributes) (authorizer.Decision, string, error) { if attrs.GetVerb() != "get" || len(attrs.GetName()) == 0 { glog.V(2).Infof("NODE DENY: %s %#v", nodeName, attrs) - return false, "can only get individual resources of this type", nil + return authorizer.DecisionNoOpinion, "can only get individual resources of this type", nil } if len(attrs.GetSubresource()) > 0 { glog.V(2).Infof("NODE DENY: %s %#v", nodeName, attrs) - return false, "cannot get subresource", nil + return authorizer.DecisionNoOpinion, "cannot get subresource", nil } ok, err := r.hasPathFrom(nodeName, startingType, attrs.GetNamespace(), attrs.GetName()) if err != nil { glog.V(2).Infof("NODE DENY: %v", err) - return false, "no path found to object", nil + return authorizer.DecisionNoOpinion, "no path found to object", nil } if !ok { glog.V(2).Infof("NODE DENY: %q %#v", nodeName, attrs) - return false, "no path found to object", nil + return authorizer.DecisionNoOpinion, "no path found to object", nil } - return ok, "", nil + return authorizer.DecisionAllow, "", nil } // hasPathFrom returns true if there is a directed path from the specified type/namespace/name to the specified Node diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/node_authorizer_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/node_authorizer_test.go index 39f10b62e..b6410dce9 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/node_authorizer_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/node_authorizer_test.go @@ -27,7 +27,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/auth/nodeidentifier" "k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy" ) @@ -57,71 +57,71 @@ func TestAuthorizer(t *testing.T) { tests := []struct { name string attrs authorizer.AttributesRecord - expect bool + expect authorizer.Decision }{ { name: "allowed configmap", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "configmaps", Name: "configmap0-pod0-node0", Namespace: "ns0"}, - expect: true, + expect: authorizer.DecisionAllow, }, { name: "allowed secret via pod", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "secrets", Name: "secret0-pod0-node0", Namespace: "ns0"}, - expect: true, + expect: authorizer.DecisionAllow, }, { name: "allowed shared secret via pod", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "secrets", Name: "secret0-shared", Namespace: "ns0"}, - expect: true, + expect: authorizer.DecisionAllow, }, { name: "allowed shared secret via pvc", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "secrets", Name: "secret-pv0-pod0-node0-ns0", Namespace: "ns0"}, - expect: true, + expect: authorizer.DecisionAllow, }, { name: "allowed pvc", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "persistentvolumeclaims", Name: "pvc0-pod0-node0", Namespace: "ns0"}, - expect: true, + expect: authorizer.DecisionAllow, }, { name: "allowed pv", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "persistentvolumes", Name: "pv0-pod0-node0-ns0", Namespace: ""}, - expect: true, + expect: authorizer.DecisionAllow, }, { name: "disallowed configmap", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "configmaps", Name: "configmap0-pod0-node1", Namespace: "ns0"}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, { name: "disallowed secret via pod", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "secrets", Name: "secret0-pod0-node1", Namespace: "ns0"}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, { name: "disallowed shared secret via pvc", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "secrets", Name: "secret-pv0-pod0-node1-ns0", Namespace: "ns0"}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, { name: "disallowed pvc", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "persistentvolumeclaims", Name: "pvc0-pod0-node1", Namespace: "ns0"}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, { name: "disallowed pv", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "persistentvolumes", Name: "pv0-pod0-node1-ns0", Namespace: ""}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, } for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { - ok, _, _ := authz.Authorize(tc.attrs) - if ok != tc.expect { - t.Errorf("expected %v, got %v", tc.expect, ok) + decision, _, _ := authz.Authorize(tc.attrs) + if decision != tc.expect { + t.Errorf("expected %v, got %v", tc.expect, decision) } }) } @@ -186,13 +186,13 @@ func TestAuthorizerSharedResources(t *testing.T) { } for i, tc := range testcases { - ok, _, err := authz.Authorize(authorizer.AttributesRecord{User: tc.User, ResourceRequest: true, Verb: "get", Resource: "secrets", Namespace: "ns1", Name: tc.Secret}) + decision, _, err := authz.Authorize(authorizer.AttributesRecord{User: tc.User, ResourceRequest: true, Verb: "get", Resource: "secrets", Namespace: "ns1", Name: tc.Secret}) if err != nil { t.Errorf("%d: unexpected error: %v", i, err) continue } - if ok != tc.ExpectAllowed { - t.Errorf("%d: expected %v, got %v", i, tc.ExpectAllowed, ok) + if (decision == authorizer.DecisionAllow) != tc.ExpectAllowed { + t.Errorf("%d: expected %v, got %v", i, tc.ExpectAllowed, decision) } } } @@ -301,47 +301,47 @@ func BenchmarkAuthorization(b *testing.B) { tests := []struct { name string attrs authorizer.AttributesRecord - expect bool + expect authorizer.Decision }{ { name: "allowed configmap", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "configmaps", Name: "configmap0-pod0-node0", Namespace: "ns0"}, - expect: true, + expect: authorizer.DecisionAllow, }, { name: "allowed secret via pod", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "secrets", Name: "secret0-pod0-node0", Namespace: "ns0"}, - expect: true, + expect: authorizer.DecisionAllow, }, { name: "allowed shared secret via pod", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "secrets", Name: "secret0-shared", Namespace: "ns0"}, - expect: true, + expect: authorizer.DecisionAllow, }, { name: "disallowed configmap", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "configmaps", Name: "configmap0-pod0-node1", Namespace: "ns0"}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, { name: "disallowed secret via pod", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "secrets", Name: "secret0-pod0-node1", Namespace: "ns0"}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, { name: "disallowed shared secret via pvc", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "secrets", Name: "secret-pv0-pod0-node1-ns0", Namespace: "ns0"}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, { name: "disallowed pvc", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "persistentvolumeclaims", Name: "pvc0-pod0-node1", Namespace: "ns0"}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, { name: "disallowed pv", attrs: authorizer.AttributesRecord{User: node0, ResourceRequest: true, Verb: "get", Resource: "persistentvolumes", Name: "pv0-pod0-node1-ns0", Namespace: ""}, - expect: false, + expect: authorizer.DecisionNoOpinion, }, } @@ -349,9 +349,9 @@ func BenchmarkAuthorization(b *testing.B) { for _, tc := range tests { b.Run(tc.name, func(b *testing.B) { for i := 0; i < b.N; i++ { - ok, _, _ := authz.Authorize(tc.attrs) - if ok != tc.expect { - b.Errorf("expected %v, got %v", tc.expect, ok) + decision, _, _ := authz.Authorize(tc.attrs) + if decision != tc.expect { + b.Errorf("expected %v, got %v", tc.expect, decision) } } }) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD index bc346781c..e503bb50c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD @@ -35,8 +35,9 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy_test", deps = [ ":go_default_library", - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/apis/rbac/install:go_default_library", "//pkg/registry/rbac/validation:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/controller_policy.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/controller_policy.go index f81abc720..f1270f611 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/controller_policy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/controller_policy.go @@ -68,6 +68,14 @@ func buildControllerRoles() ([]rbac.ClusterRole, []rbac.ClusterRoleBinding) { eventsRule(), }, }) + addControllerRole(&controllerRoles, &controllerRoleBindings, rbac.ClusterRole{ + ObjectMeta: metav1.ObjectMeta{Name: saRolePrefix + "clusterrole-aggregation-controller"}, + Rules: []rbac.PolicyRule{ + // this controller must have full permissions to allow it to mutate any role in any way + rbac.NewRule("*").Groups("*").Resources("*").RuleOrDie(), + rbac.NewRule("*").URLs("*").RuleOrDie(), + }, + }) addControllerRole(&controllerRoles, &controllerRoleBindings, rbac.ClusterRole{ ObjectMeta: metav1.ObjectMeta{Name: saRolePrefix + "cronjob-controller"}, Rules: []rbac.PolicyRule{ @@ -98,7 +106,7 @@ func buildControllerRoles() ([]rbac.ClusterRole, []rbac.ClusterRoleBinding) { rbac.NewRule("get", "list", "watch", "update").Groups(extensionsGroup, appsGroup).Resources("deployments").RuleOrDie(), rbac.NewRule("update").Groups(extensionsGroup, appsGroup).Resources("deployments/status").RuleOrDie(), rbac.NewRule("update").Groups(extensionsGroup, appsGroup).Resources("deployments/finalizers").RuleOrDie(), - rbac.NewRule("get", "list", "watch", "create", "update", "patch", "delete").Groups(extensionsGroup).Resources("replicasets").RuleOrDie(), + rbac.NewRule("get", "list", "watch", "create", "update", "patch", "delete").Groups(appsGroup, extensionsGroup).Resources("replicasets").RuleOrDie(), // TODO: remove "update" once // https://github.com/kubernetes/kubernetes/issues/36897 is resolved. rbac.NewRule("get", "list", "watch", "update").Groups(legacyGroup).Resources("pods").RuleOrDie(), @@ -109,7 +117,7 @@ func buildControllerRoles() ([]rbac.ClusterRole, []rbac.ClusterRoleBinding) { ObjectMeta: metav1.ObjectMeta{Name: saRolePrefix + "disruption-controller"}, Rules: []rbac.PolicyRule{ rbac.NewRule("get", "list", "watch").Groups(extensionsGroup, appsGroup).Resources("deployments").RuleOrDie(), - rbac.NewRule("get", "list", "watch").Groups(extensionsGroup).Resources("replicasets").RuleOrDie(), + rbac.NewRule("get", "list", "watch").Groups(appsGroup, extensionsGroup).Resources("replicasets").RuleOrDie(), rbac.NewRule("get", "list", "watch").Groups(legacyGroup).Resources("replicationcontrollers").RuleOrDie(), rbac.NewRule("get", "list", "watch").Groups(policyGroup).Resources("poddisruptionbudgets").RuleOrDie(), rbac.NewRule("get", "list", "watch").Groups(appsGroup).Resources("statefulsets").RuleOrDie(), @@ -156,16 +164,13 @@ func buildControllerRoles() ([]rbac.ClusterRole, []rbac.ClusterRoleBinding) { Rules: []rbac.PolicyRule{ rbac.NewRule("get", "list", "watch").Groups(autoscalingGroup).Resources("horizontalpodautoscalers").RuleOrDie(), rbac.NewRule("update").Groups(autoscalingGroup).Resources("horizontalpodautoscalers/status").RuleOrDie(), - rbac.NewRule("get", "update").Groups(legacyGroup).Resources("replicationcontrollers/scale").RuleOrDie(), - // TODO this should be removable when the HPA contoller is fixed - rbac.NewRule("get", "update").Groups(extensionsGroup).Resources("replicationcontrollers/scale").RuleOrDie(), - rbac.NewRule("get", "update").Groups(extensionsGroup, appsGroup).Resources("deployments/scale", "replicasets/scale").RuleOrDie(), + rbac.NewRule("get", "update").Groups("*").Resources("*/scale").RuleOrDie(), rbac.NewRule("list").Groups(legacyGroup).Resources("pods").RuleOrDie(), // TODO: restrict this to the appropriate namespace rbac.NewRule("get").Groups(legacyGroup).Resources("services/proxy").Names("https:heapster:", "http:heapster:").RuleOrDie(), // allow listing resource metrics and custom metrics rbac.NewRule("list").Groups(resMetricsGroup).Resources("pods").RuleOrDie(), - rbac.NewRule("list").Groups(customMetricsGroup).Resources("*").RuleOrDie(), + rbac.NewRule("get", "list").Groups(customMetricsGroup).Resources("*").RuleOrDie(), eventsRule(), }, }) @@ -230,9 +235,9 @@ func buildControllerRoles() ([]rbac.ClusterRole, []rbac.ClusterRoleBinding) { addControllerRole(&controllerRoles, &controllerRoleBindings, rbac.ClusterRole{ ObjectMeta: metav1.ObjectMeta{Name: saRolePrefix + "replicaset-controller"}, Rules: []rbac.PolicyRule{ - rbac.NewRule("get", "list", "watch", "update").Groups(extensionsGroup).Resources("replicasets").RuleOrDie(), - rbac.NewRule("update").Groups(extensionsGroup).Resources("replicasets/status").RuleOrDie(), - rbac.NewRule("update").Groups(extensionsGroup).Resources("replicasets/finalizers").RuleOrDie(), + rbac.NewRule("get", "list", "watch", "update").Groups(appsGroup, extensionsGroup).Resources("replicasets").RuleOrDie(), + rbac.NewRule("update").Groups(appsGroup, extensionsGroup).Resources("replicasets/status").RuleOrDie(), + rbac.NewRule("update").Groups(appsGroup, extensionsGroup).Resources("replicasets/finalizers").RuleOrDie(), rbac.NewRule("list", "watch", "patch", "create", "delete").Groups(legacyGroup).Resources("pods").RuleOrDie(), eventsRule(), }, diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/controller_policy_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/controller_policy_test.go index e1c98019b..f1064f270 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/controller_policy_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/controller_policy_test.go @@ -32,6 +32,7 @@ var rolesWithAllowStar = sets.NewString( saRolePrefix+"generic-garbage-collector", saRolePrefix+"resourcequota-controller", saRolePrefix+"horizontal-pod-autoscaler", + saRolePrefix+"clusterrole-aggregation-controller", ) // TestNoStarsForControllers confirms that no controller role has star verbs, groups, diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go index bea311c7c..16a5d9a44 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go @@ -176,6 +176,30 @@ func ClusterRoles() []rbac.ClusterRole { { // a role for a namespace level admin. It is `edit` plus the power to grant permissions to other users. ObjectMeta: metav1.ObjectMeta{Name: "admin"}, + AggregationRule: &rbac.AggregationRule{ + ClusterRoleSelectors: []metav1.LabelSelector{{MatchLabels: map[string]string{"rbac.authorization.k8s.io/aggregate-to-admin": "true"}}}, + }, + }, + { + // a role for a namespace level editor. It grants access to all user level actions in a namespace. + // It does not grant powers for "privileged" resources which are domain of the system: `/status` + // subresources or `quota`/`limits` which are used to control namespaces + ObjectMeta: metav1.ObjectMeta{Name: "edit"}, + AggregationRule: &rbac.AggregationRule{ + ClusterRoleSelectors: []metav1.LabelSelector{{MatchLabels: map[string]string{"rbac.authorization.k8s.io/aggregate-to-edit": "true"}}}, + }, + }, + { + // a role for namespace level viewing. It grants Read-only access to non-escalating resources in + // a namespace. + ObjectMeta: metav1.ObjectMeta{Name: "view"}, + AggregationRule: &rbac.AggregationRule{ + ClusterRoleSelectors: []metav1.LabelSelector{{MatchLabels: map[string]string{"rbac.authorization.k8s.io/aggregate-to-view": "true"}}}, + }, + }, + { + // a role for a namespace level admin. It is `edit` plus the power to grant permissions to other users. + ObjectMeta: metav1.ObjectMeta{Name: "system:aggregate-to-admin", Labels: map[string]string{"rbac.authorization.k8s.io/aggregate-to-admin": "true"}}, Rules: []rbac.PolicyRule{ rbac.NewRule(ReadWrite...).Groups(legacyGroup).Resources("pods", "pods/attach", "pods/proxy", "pods/exec", "pods/portforward").RuleOrDie(), rbac.NewRule(ReadWrite...).Groups(legacyGroup).Resources("replicationcontrollers", "replicationcontrollers/scale", "serviceaccounts", @@ -188,7 +212,9 @@ func ClusterRoles() []rbac.ClusterRole { rbac.NewRule("impersonate").Groups(legacyGroup).Resources("serviceaccounts").RuleOrDie(), rbac.NewRule(ReadWrite...).Groups(appsGroup).Resources("statefulsets", - "deployments", "deployments/scale", "deployments/rollback").RuleOrDie(), + "daemonsets", + "deployments", "deployments/scale", "deployments/rollback", + "replicasets", "replicasets/scale").RuleOrDie(), rbac.NewRule(ReadWrite...).Groups(autoscalingGroup).Resources("horizontalpodautoscalers").RuleOrDie(), @@ -209,7 +235,7 @@ func ClusterRoles() []rbac.ClusterRole { // a role for a namespace level editor. It grants access to all user level actions in a namespace. // It does not grant powers for "privileged" resources which are domain of the system: `/status` // subresources or `quota`/`limits` which are used to control namespaces - ObjectMeta: metav1.ObjectMeta{Name: "edit"}, + ObjectMeta: metav1.ObjectMeta{Name: "system:aggregate-to-edit", Labels: map[string]string{"rbac.authorization.k8s.io/aggregate-to-edit": "true"}}, Rules: []rbac.PolicyRule{ rbac.NewRule(ReadWrite...).Groups(legacyGroup).Resources("pods", "pods/attach", "pods/proxy", "pods/exec", "pods/portforward").RuleOrDie(), rbac.NewRule(ReadWrite...).Groups(legacyGroup).Resources("replicationcontrollers", "replicationcontrollers/scale", "serviceaccounts", @@ -222,7 +248,9 @@ func ClusterRoles() []rbac.ClusterRole { rbac.NewRule("impersonate").Groups(legacyGroup).Resources("serviceaccounts").RuleOrDie(), rbac.NewRule(ReadWrite...).Groups(appsGroup).Resources("statefulsets", - "deployments", "deployments/scale", "deployments/rollback").RuleOrDie(), + "daemonsets", + "deployments", "deployments/scale", "deployments/rollback", + "replicasets", "replicasets/scale").RuleOrDie(), rbac.NewRule(ReadWrite...).Groups(autoscalingGroup).Resources("horizontalpodautoscalers").RuleOrDie(), @@ -238,7 +266,7 @@ func ClusterRoles() []rbac.ClusterRole { { // a role for namespace level viewing. It grants Read-only access to non-escalating resources in // a namespace. - ObjectMeta: metav1.ObjectMeta{Name: "view"}, + ObjectMeta: metav1.ObjectMeta{Name: "system:aggregate-to-view", Labels: map[string]string{"rbac.authorization.k8s.io/aggregate-to-view": "true"}}, Rules: []rbac.PolicyRule{ rbac.NewRule(Read...).Groups(legacyGroup).Resources("pods", "replicationcontrollers", "replicationcontrollers/scale", "serviceaccounts", "services", "endpoints", "persistentvolumeclaims", "configmaps").RuleOrDie(), @@ -248,7 +276,10 @@ func ClusterRoles() []rbac.ClusterRole { // indicator of which namespaces you have access to. rbac.NewRule(Read...).Groups(legacyGroup).Resources("namespaces").RuleOrDie(), - rbac.NewRule(Read...).Groups(appsGroup).Resources("statefulsets", "deployments", "deployments/scale").RuleOrDie(), + rbac.NewRule(Read...).Groups(appsGroup).Resources("statefulsets", + "daemonsets", + "deployments", "deployments/scale", + "replicasets", "replicasets/scale").RuleOrDie(), rbac.NewRule(Read...).Groups(autoscalingGroup).Resources("horizontalpodautoscalers").RuleOrDie(), @@ -350,12 +381,13 @@ func ClusterRoles() []rbac.ClusterRole { rbac.NewRule(Read...).Groups(legacyGroup).Resources("nodes").RuleOrDie(), rbac.NewRule("get", "list", "watch", "delete").Groups(legacyGroup).Resources("pods").RuleOrDie(), rbac.NewRule("create").Groups(legacyGroup).Resources("pods/binding", "bindings").RuleOrDie(), - rbac.NewRule("update").Groups(legacyGroup).Resources("pods/status").RuleOrDie(), + rbac.NewRule("patch", "update").Groups(legacyGroup).Resources("pods/status").RuleOrDie(), // things that select pods rbac.NewRule(Read...).Groups(legacyGroup).Resources("services", "replicationcontrollers").RuleOrDie(), - rbac.NewRule(Read...).Groups(extensionsGroup).Resources("replicasets").RuleOrDie(), + rbac.NewRule(Read...).Groups(appsGroup, extensionsGroup).Resources("replicasets").RuleOrDie(), rbac.NewRule(Read...).Groups(appsGroup).Resources("statefulsets").RuleOrDie(), - // things that pods use + // things that pods use or applies to them + rbac.NewRule(Read...).Groups(policyGroup).Resources("poddisruptionbudgets").RuleOrDie(), rbac.NewRule(Read...).Groups(legacyGroup).Resources("persistentvolumeclaims", "persistentvolumes").RuleOrDie(), }, }, @@ -436,3 +468,11 @@ func ClusterRoleBindings() []rbac.ClusterRoleBinding { return rolebindings } + +func ClusterRolesToAggregate() map[string]string { + return map[string]string{ + "admin": "system:aggregate-to-admin", + "edit": "system:aggregate-to-edit", + "view": "system:aggregate-to-view", + } +} diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy_test.go index 0435a23ab..830d92576 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy_test.go @@ -31,8 +31,9 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" + _ "k8s.io/kubernetes/pkg/apis/core/install" "k8s.io/kubernetes/pkg/apis/rbac" _ "k8s.io/kubernetes/pkg/apis/rbac/install" rbacregistryvalidation "k8s.io/kubernetes/pkg/registry/rbac/validation" @@ -52,11 +53,11 @@ func getSemanticRoles(roles []rbac.ClusterRole) semanticRoles { for i := range roles { role := roles[i] switch role.Name { - case "admin": + case "system:aggregate-to-admin": ret.admin = &role - case "edit": + case "system:aggregate-to-edit": ret.edit = &role - case "view": + case "system:aggregate-to-view": ret.view = &role } } @@ -280,11 +281,11 @@ func testObjects(t *testing.T, list *api.List, fixtureFilename string) { t.Fatal(err) } - if err := runtime.EncodeList(api.Codecs.LegacyCodec(v1.SchemeGroupVersion, rbacv1.SchemeGroupVersion), list.Items); err != nil { + if err := runtime.EncodeList(legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion, rbacv1.SchemeGroupVersion), list.Items); err != nil { t.Fatal(err) } - jsonData, err := runtime.Encode(api.Codecs.LegacyCodec(v1.SchemeGroupVersion, rbacv1.SchemeGroupVersion), list) + jsonData, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion, rbacv1.SchemeGroupVersion), list) if err != nil { t.Fatal(err) } @@ -318,8 +319,9 @@ func TestClusterRoleLabel(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - if got, want := accessor.GetLabels(), map[string]string{"kubernetes.io/bootstrapping": "rbac-defaults"}; !reflect.DeepEqual(got, want) { - t.Errorf("ClusterRole: %s GetLabels() = %s, want %s", accessor.GetName(), got, want) + + if accessor.GetLabels()["kubernetes.io/bootstrapping"] != "rbac-defaults" { + t.Errorf("ClusterRole: %s GetLabels() = %s, want %s", accessor.GetName(), accessor.GetLabels(), map[string]string{"kubernetes.io/bootstrapping": "rbac-defaults"}) } } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml index 4c6bf1e71..7fe801931 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml @@ -1,6 +1,10 @@ apiVersion: v1 items: -- apiVersion: rbac.authorization.k8s.io/v1 +- aggregationRule: + clusterRoleSelectors: + - matchLabels: + rbac.authorization.k8s.io/aggregate-to-admin: "true" + apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: @@ -9,6 +13,51 @@ items: labels: kubernetes.io/bootstrapping: rbac-defaults name: admin + rules: null +- apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + creationTimestamp: null + labels: + kubernetes.io/bootstrapping: rbac-defaults + name: cluster-admin + rules: + - apiGroups: + - '*' + resources: + - '*' + verbs: + - '*' + - nonResourceURLs: + - '*' + verbs: + - '*' +- aggregationRule: + clusterRoleSelectors: + - matchLabels: + rbac.authorization.k8s.io/aggregate-to-edit: "true" + apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + creationTimestamp: null + labels: + kubernetes.io/bootstrapping: rbac-defaults + name: edit + rules: null +- apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + creationTimestamp: null + labels: + kubernetes.io/bootstrapping: rbac-defaults + rbac.authorization.k8s.io/aggregate-to-admin: "true" + name: system:aggregate-to-admin rules: - apiGroups: - "" @@ -81,9 +130,12 @@ items: - apiGroups: - apps resources: + - daemonsets - deployments - deployments/rollback - deployments/scale + - replicasets + - replicasets/scale - statefulsets verbs: - create @@ -182,27 +234,8 @@ items: creationTimestamp: null labels: kubernetes.io/bootstrapping: rbac-defaults - name: cluster-admin - rules: - - apiGroups: - - '*' - resources: - - '*' - verbs: - - '*' - - nonResourceURLs: - - '*' - verbs: - - '*' -- apiVersion: rbac.authorization.k8s.io/v1 - kind: ClusterRole - metadata: - annotations: - rbac.authorization.kubernetes.io/autoupdate: "true" - creationTimestamp: null - labels: - kubernetes.io/bootstrapping: rbac-defaults - name: edit + rbac.authorization.k8s.io/aggregate-to-edit: "true" + name: system:aggregate-to-edit rules: - apiGroups: - "" @@ -275,9 +308,12 @@ items: - apiGroups: - apps resources: + - daemonsets - deployments - deployments/rollback - deployments/scale + - replicasets + - replicasets/scale - statefulsets verbs: - create @@ -348,6 +384,108 @@ items: - patch - update - watch +- apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + creationTimestamp: null + labels: + kubernetes.io/bootstrapping: rbac-defaults + rbac.authorization.k8s.io/aggregate-to-view: "true" + name: system:aggregate-to-view + rules: + - apiGroups: + - "" + resources: + - configmaps + - endpoints + - persistentvolumeclaims + - pods + - replicationcontrollers + - replicationcontrollers/scale + - serviceaccounts + - services + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - bindings + - events + - limitranges + - namespaces/status + - pods/log + - pods/status + - replicationcontrollers/status + - resourcequotas + - resourcequotas/status + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - apps + resources: + - daemonsets + - deployments + - deployments/scale + - replicasets + - replicasets/scale + - statefulsets + verbs: + - get + - list + - watch + - apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - get + - list + - watch + - apiGroups: + - batch + resources: + - cronjobs + - jobs + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - daemonsets + - deployments + - deployments/scale + - ingresses + - replicasets + - replicasets/scale + - replicationcontrollers/scale + verbs: + - get + - list + - watch + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - get + - list + - watch - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: @@ -633,6 +771,7 @@ items: resources: - pods/status verbs: + - patch - update - apiGroups: - "" @@ -644,6 +783,7 @@ items: - list - watch - apiGroups: + - apps - extensions resources: - replicasets @@ -659,6 +799,14 @@ items: - get - list - watch + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - get + - list + - watch - apiGroups: - "" resources: @@ -919,7 +1067,11 @@ items: - create - patch - update -- apiVersion: rbac.authorization.k8s.io/v1 +- aggregationRule: + clusterRoleSelectors: + - matchLabels: + rbac.authorization.k8s.io/aggregate-to-view: "true" + apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: @@ -928,94 +1080,6 @@ items: labels: kubernetes.io/bootstrapping: rbac-defaults name: view - rules: - - apiGroups: - - "" - resources: - - configmaps - - endpoints - - persistentvolumeclaims - - pods - - replicationcontrollers - - replicationcontrollers/scale - - serviceaccounts - - services - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - bindings - - events - - limitranges - - namespaces/status - - pods/log - - pods/status - - replicationcontrollers/status - - resourcequotas - - resourcequotas/status - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - namespaces - verbs: - - get - - list - - watch - - apiGroups: - - apps - resources: - - deployments - - deployments/scale - - statefulsets - verbs: - - get - - list - - watch - - apiGroups: - - autoscaling - resources: - - horizontalpodautoscalers - verbs: - - get - - list - - watch - - apiGroups: - - batch - resources: - - cronjobs - - jobs - verbs: - - get - - list - - watch - - apiGroups: - - extensions - resources: - - daemonsets - - deployments - - deployments/scale - - ingresses - - replicasets - - replicasets/scale - - replicationcontrollers/scale - verbs: - - get - - list - - watch - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - get - - list - - watch + rules: null kind: List metadata: {} diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-role-bindings.yaml b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-role-bindings.yaml index ddb59dbce..ff5d47867 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-role-bindings.yaml +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-role-bindings.yaml @@ -34,6 +34,23 @@ items: - kind: ServiceAccount name: certificate-controller namespace: kube-system +- apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRoleBinding + metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + creationTimestamp: null + labels: + kubernetes.io/bootstrapping: rbac-defaults + name: system:controller:clusterrole-aggregation-controller + roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:controller:clusterrole-aggregation-controller + subjects: + - kind: ServiceAccount + name: clusterrole-aggregation-controller + namespace: kube-system - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-roles.yaml b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-roles.yaml index bc24fa3cf..0af7efbfa 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-roles.yaml +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/controller-roles.yaml @@ -87,6 +87,26 @@ items: - create - patch - update +- apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + creationTimestamp: null + labels: + kubernetes.io/bootstrapping: rbac-defaults + name: system:controller:clusterrole-aggregation-controller + rules: + - apiGroups: + - '*' + resources: + - '*' + verbs: + - '*' + - nonResourceURLs: + - '*' + verbs: + - '*' - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: @@ -255,6 +275,7 @@ items: verbs: - update - apiGroups: + - apps - extensions resources: - replicasets @@ -303,6 +324,7 @@ items: - list - watch - apiGroups: + - apps - extensions resources: - replicasets @@ -445,25 +467,9 @@ items: verbs: - update - apiGroups: - - "" - resources: - - replicationcontrollers/scale - verbs: - - get - - update - - apiGroups: - - extensions - resources: - - replicationcontrollers/scale - verbs: - - get - - update - - apiGroups: - - apps - - extensions + - '*' resources: - - deployments/scale - - replicasets/scale + - '*/scale' verbs: - get - update @@ -493,6 +499,7 @@ items: resources: - '*' verbs: + - get - list - apiGroups: - "" @@ -765,6 +772,7 @@ items: name: system:controller:replicaset-controller rules: - apiGroups: + - apps - extensions resources: - replicasets @@ -774,12 +782,14 @@ items: - update - watch - apiGroups: + - apps - extensions resources: - replicasets/status verbs: - update - apiGroups: + - apps - extensions resources: - replicasets/finalizers diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/rbac.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/rbac.go index 68ef7b256..920948076 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/rbac.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/rbac.go @@ -69,12 +69,12 @@ func (v *authorizingVisitor) visit(rule *rbac.PolicyRule, err error) bool { return true } -func (r *RBACAuthorizer) Authorize(requestAttributes authorizer.Attributes) (bool, string, error) { +func (r *RBACAuthorizer) Authorize(requestAttributes authorizer.Attributes) (authorizer.Decision, string, error) { ruleCheckingVisitor := &authorizingVisitor{requestAttributes: requestAttributes} r.authorizationRuleResolver.VisitRulesFor(requestAttributes.GetUser(), requestAttributes.GetNamespace(), ruleCheckingVisitor.visit) if ruleCheckingVisitor.allowed { - return true, "", nil + return authorizer.DecisionAllow, "", nil } // Build a detailed log of the denial. @@ -120,7 +120,7 @@ func (r *RBACAuthorizer) Authorize(requestAttributes authorizer.Attributes) (boo if len(ruleCheckingVisitor.errors) > 0 { reason = fmt.Sprintf("%v", utilerrors.NewAggregate(ruleCheckingVisitor.errors)) } - return false, reason, nil + return authorizer.DecisionNoOpinion, reason, nil } func (r *RBACAuthorizer) RulesFor(user user.Info, namespace string) ([]authorizer.ResourceRuleInfo, []authorizer.NonResourceRuleInfo, bool, error) { @@ -174,14 +174,14 @@ func RulesAllow(requestAttributes authorizer.Attributes, rules ...rbac.PolicyRul func RuleAllows(requestAttributes authorizer.Attributes, rule *rbac.PolicyRule) bool { if requestAttributes.IsResourceRequest() { - resource := requestAttributes.GetResource() + combinedResource := requestAttributes.GetResource() if len(requestAttributes.GetSubresource()) > 0 { - resource = requestAttributes.GetResource() + "/" + requestAttributes.GetSubresource() + combinedResource = requestAttributes.GetResource() + "/" + requestAttributes.GetSubresource() } return rbac.VerbMatches(rule, requestAttributes.GetVerb()) && rbac.APIGroupMatches(rule, requestAttributes.GetAPIGroup()) && - rbac.ResourceMatches(rule, resource) && + rbac.ResourceMatches(rule, combinedResource, requestAttributes.GetSubresource()) && rbac.ResourceNameMatches(rule, requestAttributes.GetName()) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/rbac_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/rbac_test.go index 16a21241c..d4425a604 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/rbac_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/rbac_test.go @@ -224,13 +224,19 @@ func TestAuthorizer(t *testing.T) { { // test subresource resolution clusterRoles: []*rbac.ClusterRole{ - newClusterRole("admin", newRule("*", "*", "pods/status", "*")), + newClusterRole("admin", + newRule("*", "*", "pods/status", "*"), + newRule("*", "*", "*/scale", "*"), + ), }, roleBindings: []*rbac.RoleBinding{ newRoleBinding("ns1", "admin", bindToClusterRole, "User:admin", "Group:admins"), }, shouldPass: []authorizer.Attributes{ &defaultAttributes{"admin", "", "get", "pods", "status", "ns1", ""}, + &defaultAttributes{"admin", "", "get", "pods", "scale", "ns1", ""}, + &defaultAttributes{"admin", "", "get", "deployments", "scale", "ns1", ""}, + &defaultAttributes{"admin", "", "get", "anything", "scale", "ns1", ""}, }, shouldFail: []authorizer.Attributes{ &defaultAttributes{"admin", "", "get", "pods", "", "ns1", ""}, @@ -241,13 +247,13 @@ func TestAuthorizer(t *testing.T) { ruleResolver, _ := rbacregistryvalidation.NewTestRuleResolver(tt.roles, tt.roleBindings, tt.clusterRoles, tt.clusterRoleBindings) a := RBACAuthorizer{ruleResolver} for _, attr := range tt.shouldPass { - if authorized, _, _ := a.Authorize(attr); !authorized { + if decision, _, _ := a.Authorize(attr); decision != authorizer.DecisionAllow { t.Errorf("case %d: incorrectly restricted %s", i, attr) } } for _, attr := range tt.shouldFail { - if authorized, _, _ := a.Authorize(attr); authorized { + if decision, _, _ := a.Authorize(attr); decision == authorizer.DecisionAllow { t.Errorf("case %d: incorrectly passed %s", i, attr) } } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/BUILD index 0270aeec5..0166a4c6f 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/BUILD @@ -12,7 +12,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/scheduler", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", "//plugin/pkg/scheduler/core:go_default_library", @@ -53,7 +53,6 @@ go_library( "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/listers/core/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/BUILD index 182896f4c..8b5dbfbb3 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/BUILD @@ -16,8 +16,9 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates", deps = [ - "//pkg/api/v1/helper:go_default_library", - "//pkg/api/v1/helper/qos:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper/qos:go_default_library", + "//pkg/cloudprovider/providers/aws:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet/apis:go_default_library", "//pkg/volume/util:go_default_library", @@ -48,7 +49,7 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates", library = ":go_default_library", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/kubelet/apis:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//plugin/pkg/scheduler/schedulercache:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/metadata.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/metadata.go index bb15272db..c0eda6a24 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/metadata.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/metadata.go @@ -46,7 +46,7 @@ type predicateMetadata struct { pod *v1.Pod podBestEffort bool podRequest *schedulercache.Resource - podPorts map[int]bool + podPorts map[string]bool //key is a pod full name with the anti-affinity rules. matchingAntiAffinityTerms map[string][]matchingPodAntiAffinityTerm serviceAffinityInUse bool @@ -172,7 +172,7 @@ func (meta *predicateMetadata) ShallowCopy() algorithm.PredicateMetadata { podRequest: meta.podRequest, serviceAffinityInUse: meta.serviceAffinityInUse, } - newPredMeta.podPorts = map[int]bool{} + newPredMeta.podPorts = map[string]bool{} for k, v := range meta.podPorts { newPredMeta.podPorts[k] = v } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/metadata_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/metadata_test.go index 640da1fca..0a96f5a0c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/metadata_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/metadata_test.go @@ -373,7 +373,7 @@ func TestPredicateMetadata_ShallowCopy(t *testing.T) { Memory: 300, AllowedPodNumber: 4, }, - podPorts: map[int]bool{1234: true, 456: false}, + podPorts: map[string]bool{"1234": true, "456": false}, matchingAntiAffinityTerms: map[string][]matchingPodAntiAffinityTerm{ "term1": { { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/predicates.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/predicates.go index bfd9984c7..2291ae448 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/predicates.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/predicates.go @@ -19,6 +19,8 @@ package predicates import ( "errors" "fmt" + "os" + "strconv" "sync" "k8s.io/api/core/v1" @@ -29,8 +31,9 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" corelisters "k8s.io/client-go/listers/core/v1" "k8s.io/client-go/util/workqueue" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" - v1qos "k8s.io/kubernetes/pkg/api/v1/helper/qos" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" + "k8s.io/kubernetes/pkg/cloudprovider/providers/aws" "k8s.io/kubernetes/pkg/features" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" volumeutil "k8s.io/kubernetes/pkg/volume/util" @@ -45,11 +48,29 @@ import ( const ( MatchInterPodAffinity = "MatchInterPodAffinity" + + // DefaultMaxGCEPDVolumes defines the maximum number of PD Volumes for GCE + // GCE instances can have up to 16 PD volumes attached. + DefaultMaxGCEPDVolumes = 16 + // DefaultMaxAzureDiskVolumes defines the maximum number of PD Volumes for Azure + // Larger Azure VMs can actually have much more disks attached. + // TODO We should determine the max based on VM size + DefaultMaxAzureDiskVolumes = 16 + + // KubeMaxPDVols defines the maximum number of PD Volumes per kubelet + KubeMaxPDVols = "KUBE_MAX_PD_VOLS" + + // for EBSVolumeFilter + EBSVolumeFilterType = "EBS" + // for GCEPDVolumeFilter + GCEPDVolumeFilterType = "GCE" + // for AzureDiskVolumeFilter + AzureDiskVolumeFilterType = "AzureDisk" ) // IMPORTANT NOTE for predicate developers: // We are using cached predicate result for pods belonging to the same equivalence class. -// So when updating a existing predicate, you should consider whether your change will introduce new +// So when updating an existing predicate, you should consider whether your change will introduce new // dependency to attributes of any API object like Pod, Node, Service etc. // If yes, you are expected to invalidate the cached predicate result for related API object change. // For example: @@ -144,7 +165,7 @@ func isVolumeConflict(volume v1.Volume, pod *v1.Pod) bool { // two RBDs images are the same if they share the same Ceph monitor, are in the same RADOS Pool, and have the same image name // only one read-write mount is permitted for the same RBD image. // same RBD image mounted by multiple Pods conflicts unless all Pods mount the image read-only - if haveSame(mon, emon) && pool == epool && image == eimage && !(volume.RBD.ReadOnly && existingVolume.RBD.ReadOnly) { + if haveOverlap(mon, emon) && pool == epool && image == eimage && !(volume.RBD.ReadOnly && existingVolume.RBD.ReadOnly) { return true } } @@ -178,6 +199,11 @@ type MaxPDVolumeCountChecker struct { maxVolumes int pvInfo PersistentVolumeInfo pvcInfo PersistentVolumeClaimInfo + + // The string below is generated randomly during the struct's initialization. + // It is used to prefix volumeID generated inside the predicate() method to + // avoid conflicts with any real volume. + randomVolumeIDPrefix string } // VolumeFilter contains information on how to filter PD Volumes when checking PD Volume caps @@ -188,24 +214,61 @@ type VolumeFilter struct { } // NewMaxPDVolumeCountPredicate creates a predicate which evaluates whether a pod can fit based on the -// number of volumes which match a filter that it requests, and those that are already present. The -// maximum number is configurable to accommodate different systems. +// number of volumes which match a filter that it requests, and those that are already present. // // The predicate looks for both volumes used directly, as well as PVC volumes that are backed by relevant volume // types, counts the number of unique volumes, and rejects the new pod if it would place the total count over // the maximum. -func NewMaxPDVolumeCountPredicate(filter VolumeFilter, maxVolumes int, pvInfo PersistentVolumeInfo, pvcInfo PersistentVolumeClaimInfo) algorithm.FitPredicate { +func NewMaxPDVolumeCountPredicate(filterName string, pvInfo PersistentVolumeInfo, pvcInfo PersistentVolumeClaimInfo) algorithm.FitPredicate { + + var filter VolumeFilter + var maxVolumes int + + switch filterName { + + case EBSVolumeFilterType: + filter = EBSVolumeFilter + maxVolumes = getMaxVols(aws.DefaultMaxEBSVolumes) + case GCEPDVolumeFilterType: + filter = GCEPDVolumeFilter + maxVolumes = getMaxVols(DefaultMaxGCEPDVolumes) + case AzureDiskVolumeFilterType: + filter = AzureDiskVolumeFilter + maxVolumes = getMaxVols(DefaultMaxAzureDiskVolumes) + default: + glog.Fatalf("Wrong filterName, Only Support %v %v %v ", EBSVolumeFilterType, + GCEPDVolumeFilterType, AzureDiskVolumeFilterType) + return nil + + } c := &MaxPDVolumeCountChecker{ - filter: filter, - maxVolumes: maxVolumes, - pvInfo: pvInfo, - pvcInfo: pvcInfo, + filter: filter, + maxVolumes: maxVolumes, + pvInfo: pvInfo, + pvcInfo: pvcInfo, + randomVolumeIDPrefix: rand.String(32), } return c.predicate } -func (c *MaxPDVolumeCountChecker) filterVolumes(volumes []v1.Volume, namespace string, randomPrefix string, filteredVolumes map[string]bool) error { +// getMaxVols checks the max PD volumes environment variable, otherwise returning a default value +func getMaxVols(defaultVal int) int { + if rawMaxVols := os.Getenv(KubeMaxPDVols); rawMaxVols != "" { + if parsedMaxVols, err := strconv.Atoi(rawMaxVols); err != nil { + glog.Errorf("Unable to parse maximum PD volumes value, using default of %v: %v", defaultVal, err) + } else if parsedMaxVols <= 0 { + glog.Errorf("Maximum PD volumes must be a positive value, using default of %v", defaultVal) + } else { + return parsedMaxVols + } + } + + return defaultVal +} + +func (c *MaxPDVolumeCountChecker) filterVolumes(volumes []v1.Volume, namespace string, filteredVolumes map[string]bool) error { + for i := range volumes { vol := &volumes[i] if id, ok := c.filter.FilterVolume(vol); ok { @@ -217,8 +280,9 @@ func (c *MaxPDVolumeCountChecker) filterVolumes(volumes []v1.Volume, namespace s } // Until we know real ID of the volume use namespace/pvcName as substitute - // With a random prefix so it can't conflict with existing volume ID. - pvId := fmt.Sprintf("%s-%s/%s", randomPrefix, namespace, pvcName) + // with a random prefix (calculated and stored inside 'c' during initialization) + // to avoid conflicts with existing volume IDs. + pvId := fmt.Sprintf("%s-%s/%s", c.randomVolumeIDPrefix, namespace, pvcName) pvc, err := c.pvcInfo.GetPersistentVolumeClaimInfo(namespace, pvcName) if err != nil || pvc == nil { @@ -264,15 +328,8 @@ func (c *MaxPDVolumeCountChecker) predicate(pod *v1.Pod, meta algorithm.Predicat return true, nil, nil } - // randomPrefix is a prefix of auxiliary volume IDs when we don't know the - // real volume ID, e.g. because the corresponding PV or PVC was deleted. It - // is random to avoid conflicts with real volume IDs and it needs to be - // stable in whole predicate() call so a deleted PVC used by two pods is - // counted as one volume and not as two. - randomPrefix := rand.String(32) - newVolumes := make(map[string]bool) - if err := c.filterVolumes(pod.Spec.Volumes, pod.Namespace, randomPrefix, newVolumes); err != nil { + if err := c.filterVolumes(pod.Spec.Volumes, pod.Namespace, newVolumes); err != nil { return false, nil, err } @@ -284,7 +341,7 @@ func (c *MaxPDVolumeCountChecker) predicate(pod *v1.Pod, meta algorithm.Predicat // count unique volumes existingVolumes := make(map[string]bool) for _, existingPod := range nodeInfo.Pods() { - if err := c.filterVolumes(existingPod.Spec.Volumes, existingPod.Namespace, randomPrefix, existingVolumes); err != nil { + if err := c.filterVolumes(existingPod.Spec.Volumes, existingPod.Namespace, existingVolumes); err != nil { return false, nil, err } } @@ -833,7 +890,7 @@ func (s *ServiceAffinity) checkServiceAffinity(pod *v1.Pod, meta algorithm.Predi // PodFitsHostPorts checks if a node has free ports for the requested pod ports. func PodFitsHostPorts(pod *v1.Pod, meta algorithm.PredicateMetadata, nodeInfo *schedulercache.NodeInfo) (bool, []algorithm.PredicateFailureReason, error) { - var wantPorts map[int]bool + var wantPorts map[string]bool if predicateMeta, ok := meta.(*predicateMetadata); ok { wantPorts = predicateMeta.podPorts } else { @@ -845,29 +902,28 @@ func PodFitsHostPorts(pod *v1.Pod, meta algorithm.PredicateMetadata, nodeInfo *s } existingPorts := nodeInfo.UsedPorts() - for wport := range wantPorts { - if wport != 0 && existingPorts[wport] { - return false, []algorithm.PredicateFailureReason{ErrPodNotFitsHostPorts}, nil - } + + // try to see whether existingPorts and wantPorts will conflict or not + if portsConflict(existingPorts, wantPorts) { + return false, []algorithm.PredicateFailureReason{ErrPodNotFitsHostPorts}, nil } + return true, nil, nil } // search two arrays and return true if they have at least one common element; return false otherwise -func haveSame(a1, a2 []string) bool { - m := map[string]int{} +func haveOverlap(a1, a2 []string) bool { + m := map[string]bool{} for _, val := range a1 { - m[val] = 1 + m[val] = true } for _, val := range a2 { - m[val] = m[val] + 1 - } - for _, val := range m { - if val > 1 { + if _, ok := m[val]; ok { return true } } + return false } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go index e19a4a23a..ac50597b0 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/predicates_test.go @@ -18,13 +18,15 @@ package predicates import ( "fmt" + "os" "reflect" + "strconv" "testing" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" @@ -552,10 +554,17 @@ func TestPodFitsHost(t *testing.T) { } } -func newPod(host string, hostPorts ...int) *v1.Pod { +func newPod(host string, hostPortInfos ...string) *v1.Pod { networkPorts := []v1.ContainerPort{} - for _, port := range hostPorts { - networkPorts = append(networkPorts, v1.ContainerPort{HostPort: int32(port)}) + for _, portInfo := range hostPortInfos { + hostPortInfo := decode(portInfo) + hostPort, _ := strconv.Atoi(hostPortInfo.hostPort) + + networkPorts = append(networkPorts, v1.ContainerPort{ + HostIP: hostPortInfo.hostIP, + HostPort: int32(hostPort), + Protocol: v1.Protocol(hostPortInfo.protocol), + }) } return &v1.Pod{ Spec: v1.PodSpec{ @@ -583,32 +592,88 @@ func TestPodFitsHostPorts(t *testing.T) { test: "nothing running", }, { - pod: newPod("m1", 8080), + pod: newPod("m1", "UDP/127.0.0.1/8080"), nodeInfo: schedulercache.NewNodeInfo( - newPod("m1", 9090)), + newPod("m1", "UDP/127.0.0.1/9090")), fits: true, test: "other port", }, { - pod: newPod("m1", 8080), + pod: newPod("m1", "UDP/127.0.0.1/8080"), + nodeInfo: schedulercache.NewNodeInfo( + newPod("m1", "UDP/127.0.0.1/8080")), + fits: false, + test: "same udp port", + }, + { + pod: newPod("m1", "TCP/127.0.0.1/8080"), + nodeInfo: schedulercache.NewNodeInfo( + newPod("m1", "TCP/127.0.0.1/8080")), + fits: false, + test: "same tcp port", + }, + { + pod: newPod("m1", "TCP/127.0.0.1/8080"), + nodeInfo: schedulercache.NewNodeInfo( + newPod("m1", "TCP/127.0.0.2/8080")), + fits: true, + test: "different host ip", + }, + { + pod: newPod("m1", "UDP/127.0.0.1/8080"), nodeInfo: schedulercache.NewNodeInfo( - newPod("m1", 8080)), + newPod("m1", "TCP/127.0.0.1/8080")), + fits: true, + test: "different protocol", + }, + { + pod: newPod("m1", "UDP/127.0.0.1/8000", "UDP/127.0.0.1/8080"), + nodeInfo: schedulercache.NewNodeInfo( + newPod("m1", "UDP/127.0.0.1/8080")), + fits: false, + test: "second udp port conflict", + }, + { + pod: newPod("m1", "TCP/127.0.0.1/8001", "UDP/127.0.0.1/8080"), + nodeInfo: schedulercache.NewNodeInfo( + newPod("m1", "TCP/127.0.0.1/8001", "UDP/127.0.0.1/8081")), fits: false, - test: "same port", + test: "first tcp port conflict", }, { - pod: newPod("m1", 8000, 8080), + pod: newPod("m1", "TCP/0.0.0.0/8001"), nodeInfo: schedulercache.NewNodeInfo( - newPod("m1", 8080)), + newPod("m1", "TCP/127.0.0.1/8001")), fits: false, - test: "second port", + test: "first tcp port conflict due to 0.0.0.0 hostIP", }, { - pod: newPod("m1", 8000, 8080), + pod: newPod("m1", "TCP/10.0.10.10/8001", "TCP/0.0.0.0/8001"), nodeInfo: schedulercache.NewNodeInfo( - newPod("m1", 8001, 8080)), + newPod("m1", "TCP/127.0.0.1/8001")), fits: false, - test: "second port", + test: "TCP hostPort conflict due to 0.0.0.0 hostIP", + }, + { + pod: newPod("m1", "TCP/127.0.0.1/8001"), + nodeInfo: schedulercache.NewNodeInfo( + newPod("m1", "TCP/0.0.0.0/8001")), + fits: false, + test: "second tcp port conflict to 0.0.0.0 hostIP", + }, + { + pod: newPod("m1", "UDP/127.0.0.1/8001"), + nodeInfo: schedulercache.NewNodeInfo( + newPod("m1", "TCP/0.0.0.0/8001")), + fits: true, + test: "second different protocol", + }, + { + pod: newPod("m1", "UDP/127.0.0.1/8001"), + nodeInfo: schedulercache.NewNodeInfo( + newPod("m1", "TCP/0.0.0.0/8001", "UDP/0.0.0.0/8001")), + fits: false, + test: "UDP hostPort conflict due to 0.0.0.0 hostIP", }, } expectedFailureReasons := []algorithm.PredicateFailureReason{ErrPodNotFitsHostPorts} @@ -629,29 +694,28 @@ func TestPodFitsHostPorts(t *testing.T) { func TestGetUsedPorts(t *testing.T) { tests := []struct { - pods []*v1.Pod - - ports map[int]bool + pods []*v1.Pod + ports map[string]bool }{ { []*v1.Pod{ - newPod("m1", 9090), + newPod("m1", "UDP/127.0.0.1/9090"), }, - map[int]bool{9090: true}, + map[string]bool{"UDP/127.0.0.1/9090": true}, }, { []*v1.Pod{ - newPod("m1", 9090), - newPod("m1", 9091), + newPod("m1", "UDP/127.0.0.1/9090"), + newPod("m1", "UDP/127.0.0.1/9091"), }, - map[int]bool{9090: true, 9091: true}, + map[string]bool{"UDP/127.0.0.1/9090": true, "UDP/127.0.0.1/9091": true}, }, { []*v1.Pod{ - newPod("m1", 9090), - newPod("m2", 9091), + newPod("m1", "TCP/0.0.0.0/9090"), + newPod("m2", "UDP/127.0.0.1/9091"), }, - map[int]bool{9090: true, 9091: true}, + map[string]bool{"TCP/0.0.0.0/9090": true, "UDP/127.0.0.1/9091": true}, }, } @@ -663,7 +727,7 @@ func TestGetUsedPorts(t *testing.T) { } } -func TestDiskConflicts(t *testing.T) { +func TestGCEDiskConflicts(t *testing.T) { volState := v1.PodSpec{ Volumes: []v1.Volume{ { @@ -1989,24 +2053,11 @@ func TestEBSVolumeCountConflicts(t *testing.T) { }, } - filter := VolumeFilter{ - FilterVolume: func(vol *v1.Volume) (string, bool) { - if vol.AWSElasticBlockStore != nil { - return vol.AWSElasticBlockStore.VolumeID, true - } - return "", false - }, - FilterPersistentVolume: func(pv *v1.PersistentVolume) (string, bool) { - if pv.Spec.AWSElasticBlockStore != nil { - return pv.Spec.AWSElasticBlockStore.VolumeID, true - } - return "", false - }, - } expectedFailureReasons := []algorithm.PredicateFailureReason{ErrMaxVolumeCountExceeded} for _, test := range tests { - pred := NewMaxPDVolumeCountPredicate(filter, test.maxVols, pvInfo, pvcInfo) + os.Setenv(KubeMaxPDVols, strconv.Itoa(test.maxVols)) + pred := NewMaxPDVolumeCountPredicate(EBSVolumeFilterType, pvInfo, pvcInfo) fits, reasons, err := pred(test.newPod, PredicateMetadata(test.newPod, nil), schedulercache.NewNodeInfo(test.existingPods...)) if err != nil { t.Errorf("%s: unexpected error: %v", test.test, err) @@ -3893,3 +3944,43 @@ func TestVolumeZonePredicateMultiZone(t *testing.T) { } } + +func TestGetMaxVols(t *testing.T) { + previousValue := os.Getenv(KubeMaxPDVols) + defaultValue := 39 + + tests := []struct { + rawMaxVols string + expected int + test string + }{ + { + rawMaxVols: "invalid", + expected: defaultValue, + test: "Unable to parse maximum PD volumes value, using default value", + }, + { + rawMaxVols: "-2", + expected: defaultValue, + test: "Maximum PD volumes must be a positive value, using default value", + }, + { + rawMaxVols: "40", + expected: 40, + test: "Parse maximum PD volumes value from env", + }, + } + + for _, test := range tests { + os.Setenv(KubeMaxPDVols, test.rawMaxVols) + result := getMaxVols(defaultValue) + if result != test.expected { + t.Errorf("%s: expected %v got %v", test.test, test.expected, result) + } + } + + os.Unsetenv(KubeMaxPDVols) + if previousValue != "" { + os.Setenv(KubeMaxPDVols, previousValue) + } +} diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/utils.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/utils.go index 84d096d23..d51f6cd63 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/utils.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/utils.go @@ -17,9 +17,12 @@ limitations under the License. package predicates import ( + "strings" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" + schedutil "k8s.io/kubernetes/plugin/pkg/scheduler/util" ) // FindLabelsInSet gets as many key/value pairs as possible out of a label set. @@ -89,3 +92,69 @@ func GetEquivalencePod(pod *v1.Pod) interface{} { type EquivalencePod struct { ControllerRef metav1.OwnerReference } + +type hostPortInfo struct { + protocol string + hostIP string + hostPort string +} + +// decode decodes string ("protocol/hostIP/hostPort") to *hostPortInfo object. +func decode(info string) *hostPortInfo { + hostPortInfoSlice := strings.Split(info, "/") + + protocol := hostPortInfoSlice[0] + hostIP := hostPortInfoSlice[1] + hostPort := hostPortInfoSlice[2] + + return &hostPortInfo{ + protocol: protocol, + hostIP: hostIP, + hostPort: hostPort, + } +} + +// specialPortConflictCheck detects whether specailHostPort(whose hostIP is 0.0.0.0) is conflict with otherHostPorts. +// return true if we have a conflict. +func specialPortConflictCheck(specialHostPort string, otherHostPorts map[string]bool) bool { + specialHostPortInfo := decode(specialHostPort) + + if specialHostPortInfo.hostIP == schedutil.DefaultBindAllHostIP { + // loop through all the otherHostPorts to see if there exists a conflict + for hostPortItem := range otherHostPorts { + hostPortInfo := decode(hostPortItem) + + // if there exists one hostPortItem which has the same hostPort and protocol with the specialHostPort, that will cause a conflict + if specialHostPortInfo.hostPort == hostPortInfo.hostPort && specialHostPortInfo.protocol == hostPortInfo.protocol { + return true + } + } + + } + + return false +} + +// portsConflict check whether existingPorts and wantPorts conflict with each other +// return true if we have a conflict +func portsConflict(existingPorts, wantPorts map[string]bool) bool { + + for existingPort := range existingPorts { + if specialPortConflictCheck(existingPort, wantPorts) { + return true + } + } + + for wantPort := range wantPorts { + if specialPortConflictCheck(wantPort, existingPorts) { + return true + } + + // general check hostPort conflict procedure for hostIP is not 0.0.0.0 + if existingPorts[wantPort] { + return true + } + } + + return false +} diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/utils_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/utils_test.go index 305a27d13..308bd8da5 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/utils_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates/utils_test.go @@ -18,6 +18,8 @@ package predicates import ( "fmt" + "reflect" + "testing" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -68,3 +70,194 @@ func ExampleFindLabelsInSet() { // label1=value1,label2=value2,label3=will_see_this // pod1,pod2, } + +func Test_decode(t *testing.T) { + tests := []struct { + name string + args string + want *hostPortInfo + }{ + { + name: "test1", + args: "UDP/127.0.0.1/80", + want: &hostPortInfo{ + protocol: "UDP", + hostIP: "127.0.0.1", + hostPort: "80", + }, + }, + { + name: "test2", + args: "TCP/127.0.0.1/80", + want: &hostPortInfo{ + protocol: "TCP", + hostIP: "127.0.0.1", + hostPort: "80", + }, + }, + { + name: "test3", + args: "TCP/0.0.0.0/80", + want: &hostPortInfo{ + protocol: "TCP", + hostIP: "0.0.0.0", + hostPort: "80", + }, + }, + } + + for _, tt := range tests { + if got := decode(tt.args); !reflect.DeepEqual(got, tt.want) { + t.Errorf("test name = %v, decode() = %v, want %v", tt.name, got, tt.want) + } + + } +} + +func Test_specialPortConflictCheck(t *testing.T) { + type args struct { + specialHostPort string + otherHostPorts map[string]bool + } + tests := []struct { + name string + args args + want bool + }{ + { + name: "test-1", + args: args{ + specialHostPort: "TCP/0.0.0.0/80", + otherHostPorts: map[string]bool{ + "TCP/127.0.0.2/8080": true, + "TCP/127.0.0.1/80": true, + "UDP/127.0.0.2/8080": true, + }, + }, + want: true, + }, + { + name: "test-2", + args: args{ + specialHostPort: "TCP/0.0.0.0/80", + otherHostPorts: map[string]bool{ + "TCP/127.0.0.2/8080": true, + "UDP/127.0.0.1/80": true, + "UDP/127.0.0.2/8080": true, + }, + }, + want: false, + }, + { + name: "test-3", + args: args{ + specialHostPort: "TCP/0.0.0.0/80", + otherHostPorts: map[string]bool{ + "TCP/127.0.0.2/8080": true, + "TCP/127.0.0.1/8090": true, + "UDP/127.0.0.2/8080": true, + }, + }, + want: false, + }, + { + name: "test-4", + args: args{ + specialHostPort: "TCP/0.0.0.0/80", + otherHostPorts: map[string]bool{ + "UDP/127.0.0.2/8080": true, + "UDP/127.0.0.1/8090": true, + "TCP/127.0.0.2/8080": true, + }, + }, + want: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := specialPortConflictCheck(tt.args.specialHostPort, tt.args.otherHostPorts); got != tt.want { + t.Errorf("specialPortConflictCheck() = %v, want %v", got, tt.want) + } + }) + } +} + +func Test_portsConflict(t *testing.T) { + type args struct { + existingPorts map[string]bool + wantPorts map[string]bool + } + tests := []struct { + name string + args args + want bool + }{ + { + name: "test1", + args: args{ + existingPorts: map[string]bool{ + "UDP/127.0.0.1/8080": true, + }, + wantPorts: map[string]bool{ + "UDP/127.0.0.1/8080": true, + }, + }, + want: true, + }, + { + name: "test2", + args: args{ + existingPorts: map[string]bool{ + "UDP/127.0.0.2/8080": true, + }, + wantPorts: map[string]bool{ + "UDP/127.0.0.1/8080": true, + }, + }, + want: false, + }, + { + name: "test3", + args: args{ + existingPorts: map[string]bool{ + "TCP/127.0.0.1/8080": true, + }, + wantPorts: map[string]bool{ + "UDP/127.0.0.1/8080": true, + }, + }, + want: false, + }, + { + name: "test4", + args: args{ + existingPorts: map[string]bool{ + "TCP/0.0.0.0/8080": true, + }, + wantPorts: map[string]bool{ + "TCP/127.0.0.1/8080": true, + }, + }, + want: true, + }, + { + name: "test5", + args: args{ + existingPorts: map[string]bool{ + "TCP/127.0.0.1/8080": true, + }, + wantPorts: map[string]bool{ + "TCP/0.0.0.0/8080": true, + }, + }, + want: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := portsConflict(tt.args.existingPorts, tt.args.wantPorts); got != tt.want { + t.Errorf("portsConflict() = %v, want %v", got, tt.want) + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/BUILD index 9e78e1dca..157405956 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/BUILD @@ -24,7 +24,7 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/kubelet/apis:go_default_library", "//pkg/util/node:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/image_locality.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/image_locality.go index 67dba1b1a..1629dee4f 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/image_locality.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/image_locality.go @@ -35,10 +35,8 @@ func ImageLocalityPriorityMap(pod *v1.Pod, meta interface{}, nodeInfo *scheduler return schedulerapi.HostPriority{}, fmt.Errorf("node not found") } - var sumSize int64 - for i := range pod.Spec.Containers { - sumSize += checkContainerImageOnNode(node, &pod.Spec.Containers[i]) - } + sumSize := totalImageSize(node, pod.Spec.Containers) + return schedulerapi.HostPriority{ Host: node.Name, Score: calculateScoreFromSize(sumSize), @@ -49,31 +47,35 @@ func ImageLocalityPriorityMap(pod *v1.Pod, meta interface{}, nodeInfo *scheduler // 1. Split image size range into 10 buckets. // 2. Decide the priority of a given sumSize based on which bucket it belongs to. func calculateScoreFromSize(sumSize int64) int { - var score int switch { case sumSize == 0 || sumSize < minImgSize: - // score == 0 means none of the images required by this pod are present on this + // 0 means none of the images required by this pod are present on this // node or the total size of the images present is too small to be taken into further consideration. - score = 0 - // If existing images' total size is larger than max, just make it highest priority. + return 0 + case sumSize >= maxImgSize: - score = schedulerapi.MaxPriority - default: - score = int((int64(schedulerapi.MaxPriority) * (sumSize - minImgSize) / (maxImgSize - minImgSize)) + 1) + // If existing images' total size is larger than max, just make it highest priority. + return schedulerapi.MaxPriority } - // Return which bucket the given size belongs to - return score + + return int((int64(schedulerapi.MaxPriority) * (sumSize - minImgSize) / (maxImgSize - minImgSize)) + 1) } -// checkContainerImageOnNode checks if a container image is present on a node and returns its size. -func checkContainerImageOnNode(node *v1.Node, container *v1.Container) int64 { +// totalImageSize returns the total image size of all the containers that are already on the node. +func totalImageSize(node *v1.Node, containers []v1.Container) int64 { + imageSizes := make(map[string]int64) for _, image := range node.Status.Images { for _, name := range image.Names { - if container.Image == name { - // Should return immediately. - return image.SizeBytes - } + imageSizes[name] = image.SizeBytes } } - return 0 + + var total int64 + for _, container := range containers { + if size, ok := imageSizes[container.Image]; ok { + total += size + } + } + + return total } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/interpod_affinity.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/interpod_affinity.go index 7abe732d4..ae168d9c7 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/interpod_affinity.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/interpod_affinity.go @@ -37,14 +37,14 @@ type InterPodAffinity struct { info predicates.NodeInfo nodeLister algorithm.NodeLister podLister algorithm.PodLister - hardPodAffinityWeight int + hardPodAffinityWeight int32 } func NewInterPodAffinityPriority( info predicates.NodeInfo, nodeLister algorithm.NodeLister, podLister algorithm.PodLister, - hardPodAffinityWeight int) algorithm.PriorityFunction { + hardPodAffinityWeight int32) algorithm.PriorityFunction { interPodAffinity := &InterPodAffinity{ info: info, nodeLister: nodeLister, diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/interpod_affinity_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/interpod_affinity_test.go index 7ccd963bc..6dd342992 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/interpod_affinity_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/interpod_affinity_test.go @@ -561,7 +561,7 @@ func TestHardPodAffinitySymmetricWeight(t *testing.T) { pod *v1.Pod pods []*v1.Pod nodes []*v1.Node - hardPodAffinityWeight int + hardPodAffinityWeight int32 expectedList schedulerapi.HostPriorityList test string }{ diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/metadata_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/metadata_test.go index b8fd653ba..5cea6b6ce 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/metadata_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/metadata_test.go @@ -94,6 +94,24 @@ func TestPriorityMetadata(t *testing.T) { Tolerations: tolerations, }, } + podWithAffinityAndRequests := &v1.Pod{ + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "container", + Image: "image", + ImagePullPolicy: "Always", + Resources: v1.ResourceRequirements{ + Requests: v1.ResourceList{ + v1.ResourceCPU: resource.MustParse("200m"), + v1.ResourceMemory: resource.MustParse("2000"), + }, + }, + }, + }, + Affinity: podAffinity, + }, + } tests := []struct { pod *v1.Pod test string @@ -122,6 +140,15 @@ func TestPriorityMetadata(t *testing.T) { }, test: "Produce a priorityMetadata with specified requests", }, + { + pod: podWithAffinityAndRequests, + expected: &priorityMetadata{ + nonZeroRequest: specifiedReqs, + podTolerations: nil, + affinity: podAffinity, + }, + test: "Produce a priorityMetadata with specified requests", + }, } for _, test := range tests { ptData := PriorityMetadata(test.pod, nil) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go index 1f6209104..614495520 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/node_affinity.go @@ -21,7 +21,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/labels" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/node_prefer_avoid_pods.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/node_prefer_avoid_pods.go index 985e323f4..c4311fb3a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/node_prefer_avoid_pods.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/node_prefer_avoid_pods.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/api/core/v1" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" priorityutil "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/util" schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/selector_spreading.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/selector_spreading.go index 8e5eb308b..721531f7e 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/selector_spreading.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/selector_spreading.go @@ -171,7 +171,10 @@ func (s *SelectorSpread) CalculateSpreadPriority(pod *v1.Pod, nodeNameToInfo map if haveZones { zoneId := utilnode.GetZoneKey(node) if zoneId != "" { - zoneScore := float64(schedulerapi.MaxPriority) * ((maxCountByZone - countsByZone[zoneId]) / maxCountByZone) + zoneScore := float64(schedulerapi.MaxPriority) + if maxCountByZone > 0 { + zoneScore = float64(schedulerapi.MaxPriority) * ((maxCountByZone - countsByZone[zoneId]) / maxCountByZone) + } fScore = (fScore * (1.0 - zoneWeighting)) + (zoneWeighting * zoneScore) } } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/selector_spreading_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/selector_spreading_test.go index 9cef5403a..bec4afe78 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/selector_spreading_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/selector_spreading_test.go @@ -445,6 +445,23 @@ func TestZoneSelectorSpreadPriority(t *testing.T) { }, test: "different services", }, + { + pod: buildPod("", labels1, nil), + pods: []*v1.Pod{ + buildPod(nodeMachine1Zone1, labels2, nil), + buildPod(nodeMachine1Zone2, labels2, nil), + }, + services: []*v1.Service{{Spec: v1.ServiceSpec{Selector: labels1}}}, + expectedList: []schedulerapi.HostPriority{ + {Host: nodeMachine1Zone1, Score: schedulerapi.MaxPriority}, + {Host: nodeMachine1Zone2, Score: schedulerapi.MaxPriority}, + {Host: nodeMachine2Zone2, Score: schedulerapi.MaxPriority}, + {Host: nodeMachine1Zone3, Score: schedulerapi.MaxPriority}, + {Host: nodeMachine2Zone3, Score: schedulerapi.MaxPriority}, + {Host: nodeMachine3Zone3, Score: schedulerapi.MaxPriority}, + }, + test: "two pods, 0 matching", + }, { pod: buildPod("", labels1, nil), pods: []*v1.Pod{ diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go index a017531f2..8e30b0258 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/taint_toleration.go @@ -20,7 +20,7 @@ import ( "fmt" "k8s.io/api/core/v1" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD index 872c5f72e..11bd8b928 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD @@ -11,7 +11,6 @@ go_library( srcs = ["defaults.go"], importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults", deps = [ - "//pkg/cloudprovider/providers/aws:go_default_library", "//pkg/features:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", @@ -33,8 +32,8 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core/install:go_default_library", "//plugin/pkg/scheduler/api:go_default_library", "//plugin/pkg/scheduler/api/latest:go_default_library", "//plugin/pkg/scheduler/factory:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/compatibility_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/compatibility_test.go index 1aa45ef8b..71283193a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/compatibility_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/compatibility_test.go @@ -29,8 +29,8 @@ import ( clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" - _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/api/legacyscheme" + _ "k8s.io/kubernetes/pkg/apis/core/install" schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" latestschedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api/latest" "k8s.io/kubernetes/plugin/pkg/scheduler/factory" @@ -491,7 +491,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) informerFactory := informers.NewSharedInformerFactory(client, 0) if _, err := factory.NewConfigFactory( @@ -505,6 +505,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, enableEquivalenceCache, ).CreateFromConfig(policy); err != nil { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go index 0de465248..f6aca517e 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go @@ -17,12 +17,9 @@ limitations under the License. package defaults import ( - "os" - "strconv" - "k8s.io/apimachinery/pkg/util/sets" utilfeature "k8s.io/apiserver/pkg/util/feature" - "k8s.io/kubernetes/pkg/cloudprovider/providers/aws" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" @@ -34,19 +31,11 @@ import ( ) const ( - // DefaultMaxGCEPDVolumes defines the maximum number of PD Volumes for GCE - // GCE instances can have up to 16 PD volumes attached. - DefaultMaxGCEPDVolumes = 16 - // DefaultMaxAzureDiskVolumes defines the maximum number of PD Volumes for Azure - // Larger Azure VMs can actually have much more disks attached. - // TODO We should determine the max based on VM size - DefaultMaxAzureDiskVolumes = 16 + // ClusterAutoscalerProvider defines the default autoscaler provider ClusterAutoscalerProvider = "ClusterAutoscalerProvider" // StatefulSetKind defines the name of 'StatefulSet' kind StatefulSetKind = "StatefulSet" - // KubeMaxPDVols defines the maximum number of PD Volumes per kubelet - KubeMaxPDVols = "KUBE_MAX_PD_VOLS" ) func init() { @@ -133,27 +122,21 @@ func defaultPredicates() sets.String { factory.RegisterFitPredicateFactory( "MaxEBSVolumeCount", func(args factory.PluginFactoryArgs) algorithm.FitPredicate { - // TODO: allow for generically parameterized scheduler predicates, because this is a bit ugly - maxVols := getMaxVols(aws.DefaultMaxEBSVolumes) - return predicates.NewMaxPDVolumeCountPredicate(predicates.EBSVolumeFilter, maxVols, args.PVInfo, args.PVCInfo) + return predicates.NewMaxPDVolumeCountPredicate(predicates.EBSVolumeFilterType, args.PVInfo, args.PVCInfo) }, ), // Fit is determined by whether or not there would be too many GCE PD volumes attached to the node factory.RegisterFitPredicateFactory( "MaxGCEPDVolumeCount", func(args factory.PluginFactoryArgs) algorithm.FitPredicate { - // TODO: allow for generically parameterized scheduler predicates, because this is a bit ugly - maxVols := getMaxVols(DefaultMaxGCEPDVolumes) - return predicates.NewMaxPDVolumeCountPredicate(predicates.GCEPDVolumeFilter, maxVols, args.PVInfo, args.PVCInfo) + return predicates.NewMaxPDVolumeCountPredicate(predicates.GCEPDVolumeFilterType, args.PVInfo, args.PVCInfo) }, ), // Fit is determined by whether or not there would be too many Azure Disk volumes attached to the node factory.RegisterFitPredicateFactory( "MaxAzureDiskVolumeCount", func(args factory.PluginFactoryArgs) algorithm.FitPredicate { - // TODO: allow for generically parameterized scheduler predicates, because this is a bit ugly - maxVols := getMaxVols(DefaultMaxAzureDiskVolumes) - return predicates.NewMaxPDVolumeCountPredicate(predicates.AzureDiskVolumeFilter, maxVols, args.PVInfo, args.PVCInfo) + return predicates.NewMaxPDVolumeCountPredicate(predicates.AzureDiskVolumeFilterType, args.PVInfo, args.PVCInfo) }, ), // Fit is determined by inter-pod affinity. @@ -195,20 +178,24 @@ func defaultPredicates() sets.String { // ApplyFeatureGates applies algorithm by feature gates. func ApplyFeatureGates() { - predSet := defaultPredicates() if utilfeature.DefaultFeatureGate.Enabled(features.TaintNodesByCondition) { // Remove "CheckNodeCondition" predicate factory.RemoveFitPredicate("CheckNodeCondition") - predSet.Delete("CheckNodeCondition") + // Remove Key "CheckNodeCondition" From All Algorithm Provider + // The key will be removed from all providers which in algorithmProviderMap[] + // if you just want remove specific provider, call func RemovePredicateKeyFromAlgoProvider() + factory.RemovePredicateKeyFromAlgorithmProviderMap("CheckNodeCondition") // Fit is determined based on whether a pod can tolerate all of the node's taints - predSet.Insert(factory.RegisterMandatoryFitPredicate("PodToleratesNodeTaints", predicates.PodToleratesNodeTaints)) + factory.RegisterMandatoryFitPredicate("PodToleratesNodeTaints", predicates.PodToleratesNodeTaints) + // Insert Key "PodToleratesNodeTaints" To All Algorithm Provider + // The key will insert to all providers which in algorithmProviderMap[] + // if you just want insert to specific provider, call func InsertPredicateKeyToAlgoProvider() + factory.InsertPredicateKeyToAlgorithmProviderMap("PodToleratesNodeTaints") glog.Warningf("TaintNodesByCondition is enabled, PodToleratesNodeTaints predicate is mandatory") } - - registerAlgorithmProvider(predSet, defaultPriorities()) } func registerAlgorithmProvider(predSet, priSet sets.String) { @@ -262,21 +249,6 @@ func defaultPriorities() sets.String { ) } -// getMaxVols checks the max PD volumes environment variable, otherwise returning a default value -func getMaxVols(defaultVal int) int { - if rawMaxVols := os.Getenv(KubeMaxPDVols); rawMaxVols != "" { - if parsedMaxVols, err := strconv.Atoi(rawMaxVols); err != nil { - glog.Errorf("Unable to parse maximum PD volumes value, using default of %v: %v", defaultVal, err) - } else if parsedMaxVols <= 0 { - glog.Errorf("Maximum PD volumes must be a positive value, using default of %v", defaultVal) - } else { - return parsedMaxVols - } - } - - return defaultVal -} - func copyAndReplace(set sets.String, replaceWhat, replaceWith string) sets.String { result := sets.NewString(set.List()...) if result.Has(replaceWhat) { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/defaults_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/defaults_test.go index b1e889979..fe13e1b39 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/defaults_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider/defaults/defaults_test.go @@ -17,52 +17,11 @@ limitations under the License. package defaults import ( - "os" "testing" "k8s.io/apimachinery/pkg/util/sets" ) -func TestGetMaxVols(t *testing.T) { - previousValue := os.Getenv(KubeMaxPDVols) - defaultValue := 39 - - tests := []struct { - rawMaxVols string - expected int - test string - }{ - { - rawMaxVols: "invalid", - expected: defaultValue, - test: "Unable to parse maximum PD volumes value, using default value", - }, - { - rawMaxVols: "-2", - expected: defaultValue, - test: "Maximum PD volumes must be a positive value, using default value", - }, - { - rawMaxVols: "40", - expected: 40, - test: "Parse maximum PD volumes value from env", - }, - } - - for _, test := range tests { - os.Setenv(KubeMaxPDVols, test.rawMaxVols) - result := getMaxVols(defaultValue) - if result != test.expected { - t.Errorf("%s: expected %v got %v", test.test, test.expected, result) - } - } - - os.Unsetenv(KubeMaxPDVols) - if previousValue != "" { - os.Setenv(KubeMaxPDVols, previousValue) - } -} - func TestCopyAndReplace(t *testing.T) { testCases := []struct { set sets.String diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/BUILD index c1284a9e6..593cff929 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/BUILD @@ -17,7 +17,6 @@ go_library( deps = [ "//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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/doc.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/doc.go index 184de2edf..28c507545 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/doc.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package api contains scheduler plugin API objects. package api // import "k8s.io/kubernetes/plugin/pkg/scheduler/api" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/latest/latest.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/latest/latest.go index cef40b6ac..f22584773 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/latest/latest.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/latest/latest.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer/json" "k8s.io/apimachinery/pkg/runtime/serializer/versioning" - "k8s.io/kubernetes/plugin/pkg/scheduler/api" + schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" _ "k8s.io/kubernetes/plugin/pkg/scheduler/api/v1" ) @@ -42,9 +42,9 @@ var Versions = []string{"v1"} var Codec runtime.Codec func init() { - jsonSerializer := json.NewSerializer(json.DefaultMetaFactory, api.Scheme, api.Scheme, true) + jsonSerializer := json.NewSerializer(json.DefaultMetaFactory, schedulerapi.Scheme, schedulerapi.Scheme, true) Codec = versioning.NewDefaultingCodecForScheme( - api.Scheme, + schedulerapi.Scheme, jsonSerializer, jsonSerializer, schema.GroupVersion{Version: Version}, diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/types.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/types.go index 0a8baf878..080fc386d 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/types.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/types.go @@ -46,7 +46,7 @@ type Policy struct { // RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule // corresponding to every RequiredDuringScheduling affinity rule. // HardPodAffinitySymmetricWeight represents the weight of implicit PreferredDuringScheduling affinity rule, in the range 1-100. - HardPodAffinitySymmetricWeight int + HardPodAffinitySymmetricWeight int32 } type PredicatePolicy struct { @@ -70,7 +70,7 @@ type PriorityPolicy struct { Argument *PriorityArgument } -// Represents the arguments that the different types of predicates take +// PredicateArgument represents the arguments to configure predicate functions in scheduler policy configuration. // Only one of its members may be specified type PredicateArgument struct { // The predicate that provides affinity for pods belonging to a service @@ -81,7 +81,7 @@ type PredicateArgument struct { LabelsPresence *LabelsPresence } -// Represents the arguments that the different types of priorities take. +// PriorityArgument represents the arguments to configure priority functions in scheduler policy configuration. // Only one of its members may be specified type PriorityArgument struct { // The priority function that ensures a good spread (anti-affinity) for pods belonging to a service @@ -92,14 +92,14 @@ type PriorityArgument struct { LabelPreference *LabelPreference } -// Holds the parameters that are used to configure the corresponding predicate +// ServiceAffinity holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration. type ServiceAffinity struct { // The list of labels that identify node "groups" // All of the labels should match for the node to be considered a fit for hosting the pod Labels []string } -// Holds the parameters that are used to configure the corresponding predicate +// LabelsPresence holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration. type LabelsPresence struct { // The list of labels that identify node "groups" // All of the labels should be either present (or absent) for the node to be considered a fit for hosting the pod @@ -108,13 +108,13 @@ type LabelsPresence struct { Presence bool } -// Holds the parameters that are used to configure the corresponding priority function +// ServiceAntiAffinity holds the parameters that are used to configure the corresponding priority function type ServiceAntiAffinity struct { // Used to identify node "groups" Label string } -// Holds the parameters that are used to configure the corresponding priority function +// LabelPreference holds the parameters that are used to configure the corresponding priority function type LabelPreference struct { // Used to identify node "groups" Label string @@ -124,7 +124,7 @@ type LabelPreference struct { Presence bool } -// Holds the parameters used to communicate with the extender. If a verb is unspecified/empty, +// ExtenderConfig holds the parameters used to communicate with the extender. If a verb is unspecified/empty, // it is assumed that the extender chose not to provide that extension. type ExtenderConfig struct { // URLPrefix at which the extender is available diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/BUILD index 66b8c2fc7..2516dc06b 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/BUILD @@ -18,7 +18,6 @@ go_library( "//plugin/pkg/scheduler/api: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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/doc.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/doc.go index 49d3063b4..38679d991 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/doc.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package v1 contains scheduler plugin API objects. package v1 // import "k8s.io/kubernetes/plugin/pkg/scheduler/api/v1" diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/register.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/register.go index 406c2e03f..292245a0a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/register.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/register.go @@ -19,7 +19,7 @@ package v1 import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/plugin/pkg/scheduler/api" + schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" ) // SchemeGroupVersion is group version used to register these objects @@ -27,7 +27,7 @@ import ( var SchemeGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} func init() { - if err := addKnownTypes(api.Scheme); err != nil { + if err := addKnownTypes(schedulerapi.Scheme); err != nil { // Programmer error. panic(err) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/types.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/types.go index 4f1b2369d..3f6684a5f 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/types.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/types.go @@ -62,7 +62,7 @@ type PriorityPolicy struct { Argument *PriorityArgument `json:"argument"` } -// Represents the arguments that the different types of predicates take +// PredicateArgument represents the arguments to configure predicate functions in scheduler policy configuration. // Only one of its members may be specified type PredicateArgument struct { // The predicate that provides affinity for pods belonging to a service @@ -73,7 +73,7 @@ type PredicateArgument struct { LabelsPresence *LabelsPresence `json:"labelsPresence"` } -// Represents the arguments that the different types of priorities take. +// PriorityArgument represents the arguments to configure priority functions in scheduler policy configuration. // Only one of its members may be specified type PriorityArgument struct { // The priority function that ensures a good spread (anti-affinity) for pods belonging to a service @@ -84,14 +84,14 @@ type PriorityArgument struct { LabelPreference *LabelPreference `json:"labelPreference"` } -// Holds the parameters that are used to configure the corresponding predicate +// ServiceAffinity holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration. type ServiceAffinity struct { // The list of labels that identify node "groups" // All of the labels should match for the node to be considered a fit for hosting the pod Labels []string `json:"labels"` } -// Holds the parameters that are used to configure the corresponding predicate +// LabelsPresence holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration. type LabelsPresence struct { // The list of labels that identify node "groups" // All of the labels should be either present (or absent) for the node to be considered a fit for hosting the pod @@ -100,13 +100,13 @@ type LabelsPresence struct { Presence bool `json:"presence"` } -// Holds the parameters that are used to configure the corresponding priority function +// ServiceAntiAffinity holds the parameters that are used to configure the corresponding priority function type ServiceAntiAffinity struct { // Used to identify node "groups" Label string `json:"label"` } -// Holds the parameters that are used to configure the corresponding priority function +// LabelPreference holds the parameters that are used to configure the corresponding priority function type LabelPreference struct { // Used to identify node "groups" Label string `json:"label"` @@ -116,7 +116,7 @@ type LabelPreference struct { Presence bool `json:"presence"` } -// Holds the parameters used to communicate with the extender. If a verb is unspecified/empty, +// ExtenderConfig holds the parameters used to communicate with the extender. If a verb is unspecified/empty, // it is assumed that the extender chose not to provide that extension. type ExtenderConfig struct { // URLPrefix at which the extender is available diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/zz_generated.deepcopy.go index 577a3c7f3..0e23a656d 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/v1/zz_generated.deepcopy.go @@ -22,85 +22,10 @@ package v1 import ( core_v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" rest "k8s.io/client-go/rest" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderArgs).DeepCopyInto(out.(*ExtenderArgs)) - return nil - }, InType: reflect.TypeOf(&ExtenderArgs{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderBindingArgs).DeepCopyInto(out.(*ExtenderBindingArgs)) - return nil - }, InType: reflect.TypeOf(&ExtenderBindingArgs{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderBindingResult).DeepCopyInto(out.(*ExtenderBindingResult)) - return nil - }, InType: reflect.TypeOf(&ExtenderBindingResult{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderConfig).DeepCopyInto(out.(*ExtenderConfig)) - return nil - }, InType: reflect.TypeOf(&ExtenderConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderFilterResult).DeepCopyInto(out.(*ExtenderFilterResult)) - return nil - }, InType: reflect.TypeOf(&ExtenderFilterResult{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HostPriority).DeepCopyInto(out.(*HostPriority)) - return nil - }, InType: reflect.TypeOf(&HostPriority{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LabelPreference).DeepCopyInto(out.(*LabelPreference)) - return nil - }, InType: reflect.TypeOf(&LabelPreference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LabelsPresence).DeepCopyInto(out.(*LabelsPresence)) - return nil - }, InType: reflect.TypeOf(&LabelsPresence{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Policy).DeepCopyInto(out.(*Policy)) - return nil - }, InType: reflect.TypeOf(&Policy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PredicateArgument).DeepCopyInto(out.(*PredicateArgument)) - return nil - }, InType: reflect.TypeOf(&PredicateArgument{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PredicatePolicy).DeepCopyInto(out.(*PredicatePolicy)) - return nil - }, InType: reflect.TypeOf(&PredicatePolicy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PriorityArgument).DeepCopyInto(out.(*PriorityArgument)) - return nil - }, InType: reflect.TypeOf(&PriorityArgument{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PriorityPolicy).DeepCopyInto(out.(*PriorityPolicy)) - return nil - }, InType: reflect.TypeOf(&PriorityPolicy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceAffinity).DeepCopyInto(out.(*ServiceAffinity)) - return nil - }, InType: reflect.TypeOf(&ServiceAffinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceAntiAffinity).DeepCopyInto(out.(*ServiceAntiAffinity)) - return nil - }, InType: reflect.TypeOf(&ServiceAntiAffinity{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ExtenderArgs) DeepCopyInto(out *ExtenderArgs) { *out = *in diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/validation/validation.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/validation/validation.go index 620a0343e..cec33b195 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/validation/validation.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/validation/validation.go @@ -36,7 +36,7 @@ func ValidatePolicy(policy schedulerapi.Policy) error { binders := 0 for _, extender := range policy.ExtenderConfigs { - if extender.Weight <= 0 { + if len(extender.PrioritizeVerb) > 0 && extender.Weight <= 0 { validationErrors = append(validationErrors, fmt.Errorf("Priority for extender %s should have a positive weight applied to it", extender.URLPrefix)) } if extender.BindVerb != "" { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/validation/validation_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/validation/validation_test.go index b7a6cd2ca..b0b01a857 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/validation/validation_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/validation/validation_test.go @@ -50,18 +50,22 @@ func TestValidatePolicy(t *testing.T) { expected: errors.New("Priority WeightPriority should have a positive weight applied to it or it has overflown"), }, { - policy: api.Policy{ExtenderConfigs: []api.ExtenderConfig{{URLPrefix: "http://127.0.0.1:8081/extender", FilterVerb: "filter", Weight: 2}}}, + policy: api.Policy{ExtenderConfigs: []api.ExtenderConfig{{URLPrefix: "http://127.0.0.1:8081/extender", PrioritizeVerb: "prioritize", Weight: 2}}}, expected: nil, }, { - policy: api.Policy{ExtenderConfigs: []api.ExtenderConfig{{URLPrefix: "http://127.0.0.1:8081/extender", FilterVerb: "filter", Weight: -2}}}, + policy: api.Policy{ExtenderConfigs: []api.ExtenderConfig{{URLPrefix: "http://127.0.0.1:8081/extender", PrioritizeVerb: "prioritize", Weight: -2}}}, expected: errors.New("Priority for extender http://127.0.0.1:8081/extender should have a positive weight applied to it"), }, + { + policy: api.Policy{ExtenderConfigs: []api.ExtenderConfig{{URLPrefix: "http://127.0.0.1:8081/extender", FilterVerb: "filter"}}}, + expected: nil, + }, { policy: api.Policy{ ExtenderConfigs: []api.ExtenderConfig{ - {URLPrefix: "http://127.0.0.1:8081/extender", BindVerb: "bind", Weight: 2}, - {URLPrefix: "http://127.0.0.1:8082/extender", BindVerb: "bind", Weight: 2}, + {URLPrefix: "http://127.0.0.1:8081/extender", BindVerb: "bind"}, + {URLPrefix: "http://127.0.0.1:8082/extender", BindVerb: "bind"}, }}, expected: errors.New("Only one extender can implement bind, found 2"), }, diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/zz_generated.deepcopy.go index b5288e26e..df5e3e972 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/api/zz_generated.deepcopy.go @@ -22,85 +22,10 @@ package api import ( v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" rest "k8s.io/client-go/rest" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderArgs).DeepCopyInto(out.(*ExtenderArgs)) - return nil - }, InType: reflect.TypeOf(&ExtenderArgs{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderBindingArgs).DeepCopyInto(out.(*ExtenderBindingArgs)) - return nil - }, InType: reflect.TypeOf(&ExtenderBindingArgs{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderBindingResult).DeepCopyInto(out.(*ExtenderBindingResult)) - return nil - }, InType: reflect.TypeOf(&ExtenderBindingResult{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderConfig).DeepCopyInto(out.(*ExtenderConfig)) - return nil - }, InType: reflect.TypeOf(&ExtenderConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtenderFilterResult).DeepCopyInto(out.(*ExtenderFilterResult)) - return nil - }, InType: reflect.TypeOf(&ExtenderFilterResult{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HostPriority).DeepCopyInto(out.(*HostPriority)) - return nil - }, InType: reflect.TypeOf(&HostPriority{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LabelPreference).DeepCopyInto(out.(*LabelPreference)) - return nil - }, InType: reflect.TypeOf(&LabelPreference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LabelsPresence).DeepCopyInto(out.(*LabelsPresence)) - return nil - }, InType: reflect.TypeOf(&LabelsPresence{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Policy).DeepCopyInto(out.(*Policy)) - return nil - }, InType: reflect.TypeOf(&Policy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PredicateArgument).DeepCopyInto(out.(*PredicateArgument)) - return nil - }, InType: reflect.TypeOf(&PredicateArgument{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PredicatePolicy).DeepCopyInto(out.(*PredicatePolicy)) - return nil - }, InType: reflect.TypeOf(&PredicatePolicy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PriorityArgument).DeepCopyInto(out.(*PriorityArgument)) - return nil - }, InType: reflect.TypeOf(&PriorityArgument{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PriorityPolicy).DeepCopyInto(out.(*PriorityPolicy)) - return nil - }, InType: reflect.TypeOf(&PriorityPolicy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceAffinity).DeepCopyInto(out.(*ServiceAffinity)) - return nil - }, InType: reflect.TypeOf(&ServiceAffinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceAntiAffinity).DeepCopyInto(out.(*ServiceAntiAffinity)) - return nil - }, InType: reflect.TypeOf(&ServiceAntiAffinity{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ExtenderArgs) DeepCopyInto(out *ExtenderArgs) { *out = *in diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/BUILD index a6c32d9f8..305ce8658 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/BUILD @@ -39,6 +39,7 @@ go_library( "equivalence_cache.go", "extender.go", "generic_scheduler.go", + "scheduling_queue.go", ], importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/core", deps = [ @@ -56,6 +57,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/trace:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/util/workqueue:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/generic_scheduler.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/generic_scheduler.go index fde8f929b..ee39aea1a 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/generic_scheduler.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/generic_scheduler.go @@ -86,7 +86,6 @@ type genericScheduler struct { predicateMetaProducer algorithm.PredicateMetadataProducer prioritizers []algorithm.PriorityConfig extenders []algorithm.SchedulerExtender - pods algorithm.PodLister lastNodeIndexLock sync.Mutex lastNodeIndex uint64 diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/scheduling_queue.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/scheduling_queue.go new file mode 100644 index 000000000..969a43600 --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/core/scheduling_queue.go @@ -0,0 +1,61 @@ +/* +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 contains structures that implement scheduling queue types. +// Scheduling queues hold pending pods waiting to be scheduled. + +package core + +import ( + "k8s.io/client-go/tools/cache" +) + +// SchedulingQueue is an interface for a queue to store pods waiting to be scheduled. +// The interface follows a pattern similar to cache.FIFO and cache.Heap and +// makes it easy to use those data structures as a SchedulingQueue. +type SchedulingQueue interface { + Add(obj interface{}) error + AddIfNotPresent(obj interface{}) error + Pop() (interface{}, error) + Update(obj interface{}) error + Delete(obj interface{}) error + List() []interface{} + ListKeys() []string + Get(obj interface{}) (item interface{}, exists bool, err error) + GetByKey(key string) (item interface{}, exists bool, err error) +} + +// FIFO is only used to add a Pop() method to cache.FIFO so that it can be +// used as a SchedulingQueue interface. +type FIFO struct { + *cache.FIFO +} + +// Pop removes the head of FIFO and returns it. +// This is just a copy/paste of cache.Pop(queue Queue) from fifo.go that scheduler +// has always been using. There is a comment in that file saying that this method +// shouldn't be used in production code, but scheduler has always been using it. +// This function does minimal error checking. +func (f *FIFO) Pop() (interface{}, error) { + var result interface{} + f.FIFO.Pop(func(obj interface{}) error { + result = obj + return nil + }) + return result, nil +} + +var _ = SchedulingQueue(&FIFO{}) // Making sure that FIFO implements SchedulingQueue. diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/BUILD index 6da88f97a..62cdd123c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/BUILD @@ -14,8 +14,8 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/factory", deps = [ - "//pkg/api/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//pkg/kubelet/apis:go_default_library", "//plugin/pkg/scheduler:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", @@ -28,6 +28,7 @@ go_library( "//plugin/pkg/scheduler/util:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1: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/apis/meta/v1/unstructured:go_default_library", @@ -40,10 +41,12 @@ go_library( "//vendor/k8s.io/client-go/informers/apps/v1beta1:go_default_library", "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", "//vendor/k8s.io/client-go/informers/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/informers/policy/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/listers/apps/v1beta1:go_default_library", "//vendor/k8s.io/client-go/listers/core/v1:go_default_library", "//vendor/k8s.io/client-go/listers/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/listers/policy/v1beta1:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", ], ) @@ -57,12 +60,14 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/factory", library = ":go_default_library", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testing:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//plugin/pkg/scheduler/api:go_default_library", "//plugin/pkg/scheduler/api/latest:go_default_library", + "//plugin/pkg/scheduler/core:go_default_library", "//plugin/pkg/scheduler/schedulercache:go_default_library", + "//plugin/pkg/scheduler/testing:go_default_library", "//plugin/pkg/scheduler/util:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/factory.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/factory.go index 56f52b4f0..3bd07c648 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/factory.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/factory.go @@ -19,11 +19,15 @@ limitations under the License. package factory import ( + "encoding/json" "fmt" "reflect" "time" + "github.com/golang/glog" + "k8s.io/api/core/v1" + "k8s.io/api/policy/v1beta1" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -36,13 +40,15 @@ import ( appsinformers "k8s.io/client-go/informers/apps/v1beta1" coreinformers "k8s.io/client-go/informers/core/v1" extensionsinformers "k8s.io/client-go/informers/extensions/v1beta1" + policyinformers "k8s.io/client-go/informers/policy/v1beta1" clientset "k8s.io/client-go/kubernetes" appslisters "k8s.io/client-go/listers/apps/v1beta1" corelisters "k8s.io/client-go/listers/core/v1" extensionslisters "k8s.io/client-go/listers/extensions/v1beta1" + policylisters "k8s.io/client-go/listers/policy/v1beta1" "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/api/helper" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + "k8s.io/kubernetes/pkg/apis/core/helper" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/plugin/pkg/scheduler" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" @@ -52,9 +58,6 @@ import ( "k8s.io/kubernetes/plugin/pkg/scheduler/core" "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" "k8s.io/kubernetes/plugin/pkg/scheduler/util" - - "encoding/json" - "github.com/golang/glog" ) const ( @@ -74,7 +77,7 @@ var ( type configFactory struct { client clientset.Interface // queue for pods that need scheduling - podQueue *cache.FIFO + podQueue core.SchedulingQueue // a means to list all known scheduled pods. scheduledPodLister corelisters.PodLister // a means to list all known scheduled pods and pods assumed to have been scheduled. @@ -93,6 +96,8 @@ type configFactory struct { replicaSetLister extensionslisters.ReplicaSetLister // a means to list all statefulsets statefulSetLister appslisters.StatefulSetLister + // a means to list all PodDisruptionBudgets + pdbLister policylisters.PodDisruptionBudgetLister // Close this to stop all reflectors StopEverything chan struct{} @@ -108,7 +113,7 @@ type configFactory struct { // RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule // corresponding to every RequiredDuringScheduling affinity rule. // HardPodAffinitySymmetricWeight represents the weight of implicit PreferredDuringScheduling affinity rule, in the range 0-100. - hardPodAffinitySymmetricWeight int + hardPodAffinitySymmetricWeight int32 // Equivalence class cache equivalencePodCache *core.EquivalenceCache @@ -130,22 +135,25 @@ func NewConfigFactory( replicaSetInformer extensionsinformers.ReplicaSetInformer, statefulSetInformer appsinformers.StatefulSetInformer, serviceInformer coreinformers.ServiceInformer, - hardPodAffinitySymmetricWeight int, + pdbInformer policyinformers.PodDisruptionBudgetInformer, + hardPodAffinitySymmetricWeight int32, enableEquivalenceClassCache bool, ) scheduler.Configurator { stopEverything := make(chan struct{}) schedulerCache := schedulercache.New(30*time.Second, stopEverything) + schedulingQueue := &core.FIFO{FIFO: cache.NewFIFO(cache.MetaNamespaceKeyFunc)} c := &configFactory{ client: client, podLister: schedulerCache, - podQueue: cache.NewFIFO(cache.MetaNamespaceKeyFunc), + podQueue: schedulingQueue, pVLister: pvInformer.Lister(), pVCLister: pvcInformer.Lister(), serviceLister: serviceInformer.Lister(), controllerLister: replicationControllerInformer.Lister(), replicaSetLister: replicaSetInformer.Lister(), statefulSetLister: statefulSetInformer.Lister(), + pdbLister: pdbInformer.Lister(), schedulerCache: schedulerCache, StopEverything: stopEverything, schedulerName: schedulerName, @@ -192,6 +200,9 @@ func NewConfigFactory( } }, UpdateFunc: func(oldObj, newObj interface{}) { + if c.skipPodUpdate(newObj.(*v1.Pod)) { + return + } if err := c.podQueue.Update(newObj); err != nil { runtime.HandleError(fmt.Errorf("unable to update %T: %v", newObj, err)) } @@ -217,6 +228,15 @@ func NewConfigFactory( ) c.nodeLister = nodeInformer.Lister() + pdbInformer.Informer().AddEventHandler( + cache.ResourceEventHandlerFuncs{ + AddFunc: c.addPDBToCache, + UpdateFunc: c.updatePDBInCache, + DeleteFunc: c.deletePDBFromCache, + }, + ) + c.pdbLister = pdbInformer.Lister() + // On add and delete of PVs, it will affect equivalence cache items // related to persistent volume pvInformer.Informer().AddEventHandler( @@ -255,6 +275,53 @@ func NewConfigFactory( return c } +// skipPodUpdate checks whether the specified pod update should be ignored. +// This function will return true if +// - The pod has already been assumed, AND +// - The pod has only its ResourceVersion, Spec.NodeName and/or Annotations +// updated. +func (c *configFactory) skipPodUpdate(pod *v1.Pod) bool { + // Non-assumed pods should never be skipped. + isAssumed, err := c.schedulerCache.IsAssumedPod(pod) + if err != nil { + runtime.HandleError(fmt.Errorf("failed to check whether pod %s/%s is assumed: %v", pod.Namespace, pod.Name, err)) + return false + } + if !isAssumed { + return false + } + + // Gets the assumed pod from the cache. + assumedPod, err := c.schedulerCache.GetPod(pod) + if err != nil { + runtime.HandleError(fmt.Errorf("failed to get assumed pod %s/%s from cache: %v", pod.Namespace, pod.Name, err)) + return false + } + + // Compares the assumed pod in the cache with the pod update. If they are + // equal (with certain fields excluded), this pod update will be skipped. + f := func(pod *v1.Pod) *v1.Pod { + p := pod.DeepCopy() + // ResourceVersion must be excluded because each object update will + // have a new resource version. + p.ResourceVersion = "" + // Spec.NodeName must be excluded because the pod assumed in the cache + // is expected to have a node assigned while the pod update may nor may + // not have this field set. + p.Spec.NodeName = "" + // Annotations must be excluded for the reasons described in + // https://github.com/kubernetes/kubernetes/issues/52914. + p.Annotations = nil + return p + } + assumedPodCopy, podCopy := f(assumedPod), f(pod) + if !reflect.DeepEqual(assumedPodCopy, podCopy) { + return false + } + glog.V(3).Infof("Skipping pod %s/%s update", pod.Namespace, pod.Name) + return true +} + func (c *configFactory) onPvAdd(obj interface{}) { if c.enableEquivalenceClassCache { pv, ok := obj.(*v1.PersistentVolume) @@ -367,7 +434,7 @@ func (c *configFactory) GetNodeLister() corelisters.NodeLister { return c.nodeLister } -func (c *configFactory) GetHardPodAffinitySymmetricWeight() int { +func (c *configFactory) GetHardPodAffinitySymmetricWeight() int32 { return c.hardPodAffinitySymmetricWeight } @@ -604,6 +671,56 @@ func (c *configFactory) deleteNodeFromCache(obj interface{}) { } } +func (c *configFactory) addPDBToCache(obj interface{}) { + pdb, ok := obj.(*v1beta1.PodDisruptionBudget) + if !ok { + glog.Errorf("cannot convert to *v1beta1.PodDisruptionBudget: %v", obj) + return + } + + if err := c.schedulerCache.AddPDB(pdb); err != nil { + glog.Errorf("scheduler cache AddPDB failed: %v", err) + } +} + +func (c *configFactory) updatePDBInCache(oldObj, newObj interface{}) { + oldPDB, ok := oldObj.(*v1beta1.PodDisruptionBudget) + if !ok { + glog.Errorf("cannot convert oldObj to *v1beta1.PodDisruptionBudget: %v", oldObj) + return + } + newPDB, ok := newObj.(*v1beta1.PodDisruptionBudget) + if !ok { + glog.Errorf("cannot convert newObj to *v1beta1.PodDisruptionBudget: %v", newObj) + return + } + + if err := c.schedulerCache.UpdatePDB(oldPDB, newPDB); err != nil { + glog.Errorf("scheduler cache UpdatePDB failed: %v", err) + } +} + +func (c *configFactory) deletePDBFromCache(obj interface{}) { + var pdb *v1beta1.PodDisruptionBudget + switch t := obj.(type) { + case *v1beta1.PodDisruptionBudget: + pdb = t + case cache.DeletedFinalStateUnknown: + var ok bool + pdb, ok = t.Obj.(*v1beta1.PodDisruptionBudget) + if !ok { + glog.Errorf("cannot convert to *v1beta1.PodDisruptionBudget: %v", t.Obj) + return + } + default: + glog.Errorf("cannot convert to *v1beta1.PodDisruptionBudget: %v", t) + return + } + if err := c.schedulerCache.RemovePDB(pdb); err != nil { + glog.Errorf("scheduler cache RemovePDB failed: %v", err) + } +} + // Create creates a scheduler with the default algorithm provider. func (f *configFactory) Create() (*scheduler.Config, error) { return f.CreateFromProvider(DefaultProvider) @@ -785,19 +902,16 @@ func (f *configFactory) getPluginArgs() (*PluginFactoryArgs, error) { } func (f *configFactory) getNextPod() *v1.Pod { - for { - pod := cache.Pop(f.podQueue).(*v1.Pod) - if f.ResponsibleForPod(pod) { - glog.V(4).Infof("About to try and schedule pod %v", pod.Name) - return pod - } + if obj, err := f.podQueue.Pop(); err == nil { + pod := obj.(*v1.Pod) + glog.V(4).Infof("About to try and schedule pod %v", pod.Name) + return pod + } else { + glog.Errorf("Error while retrieving next pod from scheduling queue: %v", err) + return nil } } -func (f *configFactory) ResponsibleForPod(pod *v1.Pod) bool { - return f.schedulerName == pod.Spec.SchedulerName -} - // unassignedNonTerminatedPod selects pods that are unassigned and non-terminal. func unassignedNonTerminatedPod(pod *v1.Pod) bool { if len(pod.Spec.NodeName) != 0 { @@ -892,15 +1006,18 @@ func (i *podInformer) Lister() corelisters.PodLister { } // NewPodInformer creates a shared index informer that returns only non-terminal pods. -func NewPodInformer(client clientset.Interface, resyncPeriod time.Duration) coreinformers.PodInformer { - selector := fields.ParseSelectorOrDie("status.phase!=" + string(v1.PodSucceeded) + ",status.phase!=" + string(v1.PodFailed)) +func NewPodInformer(client clientset.Interface, resyncPeriod time.Duration, schedulerName string) coreinformers.PodInformer { + selector := fields.ParseSelectorOrDie( + "spec.schedulerName=" + schedulerName + + ",status.phase!=" + string(v1.PodSucceeded) + + ",status.phase!=" + string(v1.PodFailed)) lw := cache.NewListWatchFromClient(client.CoreV1().RESTClient(), string(v1.ResourcePods), metav1.NamespaceAll, selector) return &podInformer{ informer: cache.NewSharedIndexInformer(lw, &v1.Pod{}, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}), } } -func (factory *configFactory) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue *cache.FIFO) func(pod *v1.Pod, err error) { +func (factory *configFactory) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue core.SchedulingQueue) func(pod *v1.Pod, err error) { return func(pod *v1.Pod, err error) { if err == core.ErrNoNodesAvailable { glog.V(4).Infof("Unable to schedule %v %v: no nodes are registered to the cluster; waiting", pod.Namespace, pod.Name) @@ -1017,6 +1134,6 @@ func (p *podPreemptor) UpdatePodAnnotations(pod *v1.Pod, annotations map[string] if err != nil { return err } - _, error := p.Client.CoreV1().Pods(podCopy.Namespace).Patch(podCopy.Name, types.MergePatchType, patchData) + _, error := p.Client.CoreV1().Pods(podCopy.Namespace).Patch(podCopy.Name, types.MergePatchType, patchData, "status") return error } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/factory_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/factory_test.go index f75f782e2..db73370ac 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/factory_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/factory_test.go @@ -31,12 +31,14 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" apitesting "k8s.io/kubernetes/pkg/api/testing" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" latestschedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api/latest" + "k8s.io/kubernetes/plugin/pkg/scheduler/core" "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" + schedulertesting "k8s.io/kubernetes/plugin/pkg/scheduler/testing" "k8s.io/kubernetes/plugin/pkg/scheduler/util" ) @@ -50,7 +52,7 @@ func TestCreate(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) informerFactory := informers.NewSharedInformerFactory(client, 0) factory := NewConfigFactory( v1.DefaultSchedulerName, @@ -63,6 +65,7 @@ func TestCreate(t *testing.T) { informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, enableEquivalenceCache, ) @@ -82,7 +85,7 @@ func TestCreateFromConfig(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) informerFactory := informers.NewSharedInformerFactory(client, 0) factory := NewConfigFactory( v1.DefaultSchedulerName, @@ -95,6 +98,7 @@ func TestCreateFromConfig(t *testing.T) { informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, enableEquivalenceCache, ) @@ -141,7 +145,7 @@ func TestCreateFromConfigWithHardPodAffinitySymmetricWeight(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) informerFactory := informers.NewSharedInformerFactory(client, 0) factory := NewConfigFactory( v1.DefaultSchedulerName, @@ -154,6 +158,7 @@ func TestCreateFromConfigWithHardPodAffinitySymmetricWeight(t *testing.T) { informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, enableEquivalenceCache, ) @@ -201,7 +206,7 @@ func TestCreateFromEmptyConfig(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) informerFactory := informers.NewSharedInformerFactory(client, 0) factory := NewConfigFactory( v1.DefaultSchedulerName, @@ -214,6 +219,7 @@ func TestCreateFromEmptyConfig(t *testing.T) { informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, enableEquivalenceCache, ) @@ -258,7 +264,7 @@ func TestDefaultErrorFunc(t *testing.T) { mux.Handle(util.Test.ResourcePath(string(v1.ResourcePods), "bar", "foo"), &handler) server := httptest.NewServer(mux) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) informerFactory := informers.NewSharedInformerFactory(client, 0) factory := NewConfigFactory( v1.DefaultSchedulerName, @@ -271,10 +277,11 @@ func TestDefaultErrorFunc(t *testing.T) { informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, enableEquivalenceCache, ) - queue := cache.NewFIFO(cache.MetaNamespaceKeyFunc) + queue := &core.FIFO{FIFO: cache.NewFIFO(cache.MetaNamespaceKeyFunc)} podBackoff := util.CreatePodBackoff(1*time.Millisecond, 1*time.Second) errFunc := factory.MakeDefaultErrorFunc(podBackoff, queue) @@ -343,7 +350,7 @@ func TestBind(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) b := binder{client} if err := b.Bind(item.binding); err != nil { @@ -357,95 +364,6 @@ func TestBind(t *testing.T) { } } -// TestResponsibleForPod tests if a pod with an annotation that should cause it to -// be picked up by the default scheduler, is in fact picked by the default scheduler -// Two schedulers are made in the test: one is default scheduler and other scheduler -// is of name "foo-scheduler". A pod must be picked up by at most one of the two -// schedulers. -func TestResponsibleForPod(t *testing.T) { - handler := utiltesting.FakeHandler{ - StatusCode: 500, - ResponseBody: "", - T: t, - } - server := httptest.NewServer(&handler) - defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) - // factory of "default-scheduler" - informerFactory := informers.NewSharedInformerFactory(client, 0) - factoryDefaultScheduler := NewConfigFactory( - v1.DefaultSchedulerName, - client, - informerFactory.Core().V1().Nodes(), - informerFactory.Core().V1().Pods(), - informerFactory.Core().V1().PersistentVolumes(), - informerFactory.Core().V1().PersistentVolumeClaims(), - informerFactory.Core().V1().ReplicationControllers(), - informerFactory.Extensions().V1beta1().ReplicaSets(), - informerFactory.Apps().V1beta1().StatefulSets(), - informerFactory.Core().V1().Services(), - v1.DefaultHardPodAffinitySymmetricWeight, - enableEquivalenceCache, - ) - // factory of "foo-scheduler" - factoryFooScheduler := NewConfigFactory( - "foo-scheduler", - client, - informerFactory.Core().V1().Nodes(), - informerFactory.Core().V1().Pods(), - informerFactory.Core().V1().PersistentVolumes(), - informerFactory.Core().V1().PersistentVolumeClaims(), - informerFactory.Core().V1().ReplicationControllers(), - informerFactory.Extensions().V1beta1().ReplicaSets(), - informerFactory.Apps().V1beta1().StatefulSets(), - informerFactory.Core().V1().Services(), - v1.DefaultHardPodAffinitySymmetricWeight, - enableEquivalenceCache, - ) - // scheduler annotations to be tested - schedulerFitsDefault := "default-scheduler" - schedulerFitsFoo := "foo-scheduler" - schedulerFitsNone := "bar-scheduler" - - tests := []struct { - pod *v1.Pod - pickedByDefault bool - pickedByFoo bool - }{ - { - // pod with "spec.Schedulername=default-scheduler" should be picked - // by the scheduler of name "default-scheduler", NOT by the one of name "foo-scheduler" - pod: &v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: v1.PodSpec{SchedulerName: schedulerFitsDefault}}, - pickedByDefault: true, - pickedByFoo: false, - }, - { - // pod with "spec.SchedulerName=foo-scheduler" should be NOT - // be picked by the scheduler of name "default-scheduler", but by the one of name "foo-scheduler" - pod: &v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: v1.PodSpec{SchedulerName: schedulerFitsFoo}}, - pickedByDefault: false, - pickedByFoo: true, - }, - { - // pod with "spec.SchedulerName=foo-scheduler" should be NOT - // be picked by niether the scheduler of name "default-scheduler" nor the one of name "foo-scheduler" - pod: &v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "bar"}, Spec: v1.PodSpec{SchedulerName: schedulerFitsNone}}, - pickedByDefault: false, - pickedByFoo: false, - }, - } - - for _, test := range tests { - podOfDefault := factoryDefaultScheduler.ResponsibleForPod(test.pod) - podOfFoo := factoryFooScheduler.ResponsibleForPod(test.pod) - results := []bool{podOfDefault, podOfFoo} - expected := []bool{test.pickedByDefault, test.pickedByFoo} - if !reflect.DeepEqual(results, expected) { - t.Errorf("expected: {%v, %v}, got {%v, %v}", test.pickedByDefault, test.pickedByFoo, podOfDefault, podOfFoo) - } - } -} - func TestInvalidHardPodAffinitySymmetricWeight(t *testing.T) { handler := utiltesting.FakeHandler{ StatusCode: 500, @@ -455,7 +373,7 @@ func TestInvalidHardPodAffinitySymmetricWeight(t *testing.T) { server := httptest.NewServer(&handler) // TODO: Uncomment when fix #19254 // defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) // factory of "default-scheduler" informerFactory := informers.NewSharedInformerFactory(client, 0) factory := NewConfigFactory( @@ -469,6 +387,7 @@ func TestInvalidHardPodAffinitySymmetricWeight(t *testing.T) { informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), -1, enableEquivalenceCache, ) @@ -486,10 +405,10 @@ func TestInvalidFactoryArgs(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &api.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) + client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &legacyscheme.Registry.GroupOrDie(v1.GroupName).GroupVersion}}) testCases := []struct { - hardPodAffinitySymmetricWeight int + hardPodAffinitySymmetricWeight int32 expectErr string }{ { @@ -515,6 +434,7 @@ func TestInvalidFactoryArgs(t *testing.T) { informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), test.hardPodAffinitySymmetricWeight, enableEquivalenceCache, ) @@ -525,3 +445,93 @@ func TestInvalidFactoryArgs(t *testing.T) { } } + +func TestSkipPodUpdate(t *testing.T) { + for _, test := range []struct { + pod *v1.Pod + isAssumedPodFunc func(*v1.Pod) bool + getPodFunc func(*v1.Pod) *v1.Pod + expected bool + }{ + // Non-assumed pod should not be skipped. + { + pod: &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-0", + }, + }, + isAssumedPodFunc: func(*v1.Pod) bool { return false }, + getPodFunc: func(*v1.Pod) *v1.Pod { + return &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-0", + }, + } + }, + expected: false, + }, + // Pod update (with changes on ResourceVersion, Spec.NodeName and/or + // Annotations) for an already assumed pod should be skipped. + { + pod: &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-0", + Annotations: map[string]string{"a": "b"}, + ResourceVersion: "0", + }, + Spec: v1.PodSpec{ + NodeName: "node-0", + }, + }, + isAssumedPodFunc: func(*v1.Pod) bool { + return true + }, + getPodFunc: func(*v1.Pod) *v1.Pod { + return &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-0", + Annotations: map[string]string{"c": "d"}, + ResourceVersion: "1", + }, + Spec: v1.PodSpec{ + NodeName: "node-1", + }, + } + }, + expected: true, + }, + // Pod update (with changes on Labels) for an already assumed pod + // should not be skipped. + { + pod: &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-0", + Labels: map[string]string{"a": "b"}, + }, + }, + isAssumedPodFunc: func(*v1.Pod) bool { + return true + }, + getPodFunc: func(*v1.Pod) *v1.Pod { + return &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-0", + Labels: map[string]string{"c": "d"}, + }, + } + }, + expected: false, + }, + } { + c := &configFactory{ + schedulerCache: &schedulertesting.FakeCache{ + IsAssumedPodFunc: test.isAssumedPodFunc, + GetPodFunc: test.getPodFunc, + }, + } + got := c.skipPodUpdate(test.pod) + if got != test.expected { + t.Errorf("skipPodUpdate() = %t, expected = %t", got, test.expected) + } + } +} diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/plugins.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/plugins.go index 74840d013..7bd15adf6 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/plugins.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/factory/plugins.go @@ -43,7 +43,7 @@ type PluginFactoryArgs struct { NodeInfo predicates.NodeInfo PVInfo predicates.PersistentVolumeInfo PVCInfo predicates.PersistentVolumeClaimInfo - HardPodAffinitySymmetricWeight int + HardPodAffinitySymmetricWeight int32 } // MetadataProducerFactory produces MetadataProducer from the given args. @@ -115,6 +115,56 @@ func RemoveFitPredicate(name string) { mandatoryFitPredicates.Delete(name) } +// RemovePredicateKeyFromAlgoProvider removes a fit predicate key from algorithmProvider. +func RemovePredicateKeyFromAlgoProvider(providerName, key string) error { + schedulerFactoryMutex.Lock() + defer schedulerFactoryMutex.Unlock() + + validateAlgorithmNameOrDie(providerName) + provider, ok := algorithmProviderMap[providerName] + if !ok { + return fmt.Errorf("plugin %v has not been registered", providerName) + } + provider.FitPredicateKeys.Delete(key) + return nil +} + +// RemovePredicateKeyFromAlgoProvider removes a fit predicate key from all algorithmProviders which in algorithmProviderMap. +func RemovePredicateKeyFromAlgorithmProviderMap(key string) { + schedulerFactoryMutex.Lock() + defer schedulerFactoryMutex.Unlock() + + for _, provider := range algorithmProviderMap { + provider.FitPredicateKeys.Delete(key) + } + return +} + +// InsertPredicateKeyToAlgoProvider insert a fit predicate key to algorithmProvider. +func InsertPredicateKeyToAlgoProvider(providerName, key string) error { + schedulerFactoryMutex.Lock() + defer schedulerFactoryMutex.Unlock() + + validateAlgorithmNameOrDie(providerName) + provider, ok := algorithmProviderMap[providerName] + if !ok { + return fmt.Errorf("plugin %v has not been registered", providerName) + } + provider.FitPredicateKeys.Insert(key) + return nil +} + +// InsertPredicateKeyToAlgorithmProviderMap insert a fit predicate key to all algorithmProviders which in algorithmProviderMap. +func InsertPredicateKeyToAlgorithmProviderMap(key string) { + schedulerFactoryMutex.Lock() + defer schedulerFactoryMutex.Unlock() + + for _, provider := range algorithmProviderMap { + provider.FitPredicateKeys.Insert(key) + } + return +} + // RegisterMandatoryFitPredicate registers a fit predicate with the algorithm registry, the predicate is used by // kubelet, DaemonSet; it is always included in configuration. Returns the name with which the predicate was // registered. diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/scheduler.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/scheduler.go index 729ac23a6..73b8bb120 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/scheduler.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/scheduler.go @@ -26,7 +26,6 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" clientset "k8s.io/client-go/kubernetes" corelisters "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" @@ -78,12 +77,9 @@ type Configurator interface { GetPriorityMetadataProducer() (algorithm.MetadataProducer, error) GetPredicateMetadataProducer() (algorithm.PredicateMetadataProducer, error) GetPredicates(predicateKeys sets.String) (map[string]algorithm.FitPredicate, error) - GetHardPodAffinitySymmetricWeight() int + GetHardPodAffinitySymmetricWeight() int32 GetSchedulerName() string - MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue *cache.FIFO) func(pod *v1.Pod, err error) - - // Probably doesn't need to be public. But exposed for now in case. - ResponsibleForPod(pod *v1.Pod) bool + MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue core.SchedulingQueue) func(pod *v1.Pod, err error) // Needs to be exposed for things like integration tests where we want to make fake nodes. GetNodeLister() corelisters.NodeLister @@ -155,6 +151,14 @@ func NewFromConfigurator(c Configurator, modifiers ...func(c *Config)) (*Schedul return s, nil } +// NewFromConfig returns a new scheduler using the provided Config. +func NewFromConfig(config *Config) *Scheduler { + metrics.Register() + return &Scheduler{ + config: config, + } +} + // Run begins watching and scheduling. It waits for cache to be synced, then starts a goroutine and returns immediately. func (sched *Scheduler) Run() { if !sched.config.WaitForCacheSync() { @@ -188,6 +192,9 @@ func (sched *Scheduler) schedule(pod *v1.Pod) (string, error) { return host, err } +// preempt tries to create room for a pod that has failed to schedule, by preempting lower priority pods if possible. +// If it succeeds, it adds the name of the node where preemption has happened to the pod annotations. +// It returns the node name and an error if any. func (sched *Scheduler) preempt(preemptor *v1.Pod, scheduleErr error) (string, error) { if !utilfeature.DefaultFeatureGate.Enabled(features.PodPriority) { glog.V(3).Infof("Pod priority feature is not enabled. No preemption is performed.") @@ -323,7 +330,6 @@ func (sched *Scheduler) scheduleOne() { if err != nil { return } - // bind the pod to its host asynchronously (we can do this b/c of the assumption step above). go func() { err := sched.bind(&assumedPod, &v1.Binding{ diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/scheduler_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/scheduler_test.go index 3772fbe85..07f769f9c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/scheduler_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/scheduler_test.go @@ -31,7 +31,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" clientcache "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" "k8s.io/kubernetes/plugin/pkg/scheduler/core" @@ -186,7 +186,7 @@ func TestScheduler(t *testing.T) { NextPod: func() *v1.Pod { return item.sendPod }, - Recorder: eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: "scheduler"}), + Recorder: eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: "scheduler"}), }, } @@ -256,7 +256,7 @@ func TestSchedulerNoPhantomPodAfterExpire(t *testing.T) { case <-waitPodExpireChan: case <-time.After(wait.ForeverTestTimeout): close(timeout) - t.Fatalf("timeout after %v", wait.ForeverTestTimeout) + t.Fatalf("timeout timeout in waiting pod expire after %v", wait.ForeverTestTimeout) } // We use conflicted pod ports to incur fit predicate failure if first pod not removed. @@ -273,7 +273,7 @@ func TestSchedulerNoPhantomPodAfterExpire(t *testing.T) { t.Errorf("binding want=%v, get=%v", expectBinding, b) } case <-time.After(wait.ForeverTestTimeout): - t.Fatalf("timeout after %v", wait.ForeverTestTimeout) + t.Fatalf("timeout in binding after %v", wait.ForeverTestTimeout) } } @@ -307,7 +307,7 @@ func TestSchedulerNoPhantomPodAfterDelete(t *testing.T) { t.Errorf("err want=%v, get=%v", expectErr, err) } case <-time.After(wait.ForeverTestTimeout): - t.Fatalf("timeout after %v", wait.ForeverTestTimeout) + t.Fatalf("timeout in fitting after %v", wait.ForeverTestTimeout) } // We mimic the workflow of cache behavior when a pod is removed by user. @@ -334,7 +334,7 @@ func TestSchedulerNoPhantomPodAfterDelete(t *testing.T) { t.Errorf("binding want=%v, get=%v", expectBinding, b) } case <-time.After(wait.ForeverTestTimeout): - t.Fatalf("timeout after %v", wait.ForeverTestTimeout) + t.Fatalf("timeout in binding after %v", wait.ForeverTestTimeout) } } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/BUILD index 824e11cd2..176424948 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/BUILD @@ -16,11 +16,12 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library", "//plugin/pkg/scheduler/util:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", @@ -34,13 +35,15 @@ go_test( importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache", library = ":go_default_library", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library", "//plugin/pkg/scheduler/util:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource: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/apimachinery/pkg/util/intstr:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/cache.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/cache.go index 0f562e259..df7ac6601 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/cache.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/cache.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "github.com/golang/glog" + policy "k8s.io/api/policy/v1beta1" ) var ( @@ -55,6 +56,7 @@ type schedulerCache struct { // a map from pod key to podState. podStates map[string]*podState nodes map[string]*NodeInfo + pdbs map[string]*policy.PodDisruptionBudget } type podState struct { @@ -74,6 +76,7 @@ func newSchedulerCache(ttl, period time.Duration, stop <-chan struct{}) *schedul nodes: make(map[string]*NodeInfo), assumedPods: make(map[string]bool), podStates: make(map[string]*podState), + pdbs: make(map[string]*policy.PodDisruptionBudget), } } @@ -238,6 +241,7 @@ func (cache *schedulerCache) AddPod(pod *v1.Pod) error { } delete(cache.assumedPods, key) cache.podStates[key].deadline = nil + cache.podStates[key].pod = pod case !ok: // Pod was expired. We should add it back. cache.addPod(pod) @@ -307,6 +311,39 @@ func (cache *schedulerCache) RemovePod(pod *v1.Pod) error { return nil } +func (cache *schedulerCache) IsAssumedPod(pod *v1.Pod) (bool, error) { + key, err := getPodKey(pod) + if err != nil { + return false, err + } + + cache.mu.Lock() + defer cache.mu.Unlock() + + b, found := cache.assumedPods[key] + if !found { + return false, nil + } + return b, nil +} + +func (cache *schedulerCache) GetPod(pod *v1.Pod) (*v1.Pod, error) { + key, err := getPodKey(pod) + if err != nil { + return nil, err + } + + cache.mu.Lock() + defer cache.mu.Unlock() + + podState, ok := cache.podStates[key] + if !ok { + return nil, fmt.Errorf("pod %v does not exist", key) + } + + return podState.pod, nil +} + func (cache *schedulerCache) AddNode(node *v1.Node) error { cache.mu.Lock() defer cache.mu.Unlock() @@ -349,6 +386,39 @@ func (cache *schedulerCache) RemoveNode(node *v1.Node) error { return nil } +func (cache *schedulerCache) AddPDB(pdb *policy.PodDisruptionBudget) error { + cache.mu.Lock() + defer cache.mu.Unlock() + + // Unconditionally update cache. + cache.pdbs[pdb.Name] = pdb + return nil +} + +func (cache *schedulerCache) UpdatePDB(oldPDB, newPDB *policy.PodDisruptionBudget) error { + return cache.AddPDB(newPDB) +} + +func (cache *schedulerCache) RemovePDB(pdb *policy.PodDisruptionBudget) error { + cache.mu.Lock() + defer cache.mu.Unlock() + + delete(cache.pdbs, pdb.Name) + return nil +} + +func (cache *schedulerCache) ListPDBs(selector labels.Selector) ([]*policy.PodDisruptionBudget, error) { + cache.mu.Lock() + defer cache.mu.Unlock() + var pdbs []*policy.PodDisruptionBudget + for _, pdb := range cache.pdbs { + if selector.Matches(labels.Set(pdb.Labels)) { + pdbs = append(pdbs, pdb) + } + } + return pdbs, nil +} + func (cache *schedulerCache) run() { go wait.Until(cache.cleanupExpiredAssumedPods, cache.period, cache.stop) } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/cache_test.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/cache_test.go index e289365d9..e3f8a75d7 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/cache_test.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/cache_test.go @@ -24,10 +24,12 @@ import ( "time" "k8s.io/api/core/v1" + "k8s.io/api/policy/v1beta1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + "k8s.io/apimachinery/pkg/util/intstr" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" priorityutil "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/util" schedutil "k8s.io/kubernetes/plugin/pkg/scheduler/util" ) @@ -47,12 +49,12 @@ func deepEqualWithoutGeneration(t *testing.T, testcase int, actual, expected *No func TestAssumePodScheduled(t *testing.T) { nodeName := "node" testPods := []*v1.Pod{ - makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}), - makeBasePod(t, nodeName, "test-1", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}), - makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "", []v1.ContainerPort{{HostPort: 8080}}), - makeBasePod(t, nodeName, "test-nonzero", "", "", "", []v1.ContainerPort{{HostPort: 80}}), - makeBasePod(t, nodeName, "test", "100m", "500", "oir-foo:3", []v1.ContainerPort{{HostPort: 80}}), - makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "oir-foo:5", []v1.ContainerPort{{HostPort: 8080}}), + makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}), + makeBasePod(t, nodeName, "test-1", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}), + makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 8080, Protocol: "TCP"}}), + makeBasePod(t, nodeName, "test-nonzero", "", "", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}), + makeBasePod(t, nodeName, "test", "100m", "500", "oir-foo:3", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}), + makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "oir-foo:5", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 8080, Protocol: "TCP"}}), makeBasePod(t, nodeName, "test", "100m", "500", "random-invalid-oir-key:100", []v1.ContainerPort{{}}), } @@ -73,7 +75,7 @@ func TestAssumePodScheduled(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[0]}, - usedPorts: map[int]bool{80: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true}, }, }, { pods: []*v1.Pod{testPods[1], testPods[2]}, @@ -88,7 +90,7 @@ func TestAssumePodScheduled(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[1], testPods[2]}, - usedPorts: map[int]bool{80: true, 8080: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true, "TCP/127.0.0.1/8080": true}, }, }, { // test non-zero request pods: []*v1.Pod{testPods[3]}, @@ -103,7 +105,7 @@ func TestAssumePodScheduled(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[3]}, - usedPorts: map[int]bool{80: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true}, }, }, { pods: []*v1.Pod{testPods[4]}, @@ -119,7 +121,7 @@ func TestAssumePodScheduled(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[4]}, - usedPorts: map[int]bool{80: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true}, }, }, { pods: []*v1.Pod{testPods[4], testPods[5]}, @@ -135,7 +137,7 @@ func TestAssumePodScheduled(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[4], testPods[5]}, - usedPorts: map[int]bool{80: true, 8080: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true, "TCP/127.0.0.1/8080": true}, }, }, { pods: []*v1.Pod{testPods[6]}, @@ -150,7 +152,7 @@ func TestAssumePodScheduled(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[6]}, - usedPorts: map[int]bool{}, + usedPorts: map[string]bool{}, }, }, } @@ -193,8 +195,8 @@ func assumeAndFinishBinding(cache *schedulerCache, pod *v1.Pod, assumedTime time func TestExpirePod(t *testing.T) { nodeName := "node" testPods := []*v1.Pod{ - makeBasePod(t, nodeName, "test-1", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}), - makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "", []v1.ContainerPort{{HostPort: 8080}}), + makeBasePod(t, nodeName, "test-1", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}), + makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 8080, Protocol: "TCP"}}), } now := time.Now() ttl := 10 * time.Second @@ -226,7 +228,7 @@ func TestExpirePod(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[1]}, - usedPorts: map[int]bool{80: false, 8080: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/8080": true}, }, }} @@ -253,8 +255,8 @@ func TestAddPodWillConfirm(t *testing.T) { ttl := 10 * time.Second testPods := []*v1.Pod{ - makeBasePod(t, nodeName, "test-1", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}), - makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "", []v1.ContainerPort{{HostPort: 8080}}), + makeBasePod(t, nodeName, "test-1", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}), + makeBasePod(t, nodeName, "test-2", "200m", "1Ki", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 8080, Protocol: "TCP"}}), } tests := []struct { podsToAssume []*v1.Pod @@ -275,7 +277,7 @@ func TestAddPodWillConfirm(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[0]}, - usedPorts: map[int]bool{80: true, 8080: false}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true}, }, }} @@ -298,11 +300,73 @@ func TestAddPodWillConfirm(t *testing.T) { } } +// TestAddPodWillReplaceAssumed tests that a pod being Add()ed will replace any assumed pod. +func TestAddPodWillReplaceAssumed(t *testing.T) { + now := time.Now() + ttl := 10 * time.Second + + assumedPod := makeBasePod(t, "assumed-node-1", "test-1", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}) + addedPod := makeBasePod(t, "actual-node", "test-1", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}) + updatedPod := makeBasePod(t, "actual-node", "test-1", "200m", "500", "", []v1.ContainerPort{{HostPort: 90}}) + + tests := []struct { + podsToAssume []*v1.Pod + podsToAdd []*v1.Pod + podsToUpdate [][]*v1.Pod + + wNodeInfo map[string]*NodeInfo + }{{ + podsToAssume: []*v1.Pod{assumedPod.DeepCopy()}, + podsToAdd: []*v1.Pod{addedPod.DeepCopy()}, + podsToUpdate: [][]*v1.Pod{{addedPod.DeepCopy(), updatedPod.DeepCopy()}}, + wNodeInfo: map[string]*NodeInfo{ + "assumed-node": nil, + "actual-node": { + requestedResource: &Resource{ + MilliCPU: 200, + Memory: 500, + }, + nonzeroRequest: &Resource{ + MilliCPU: 200, + Memory: 500, + }, + allocatableResource: &Resource{}, + pods: []*v1.Pod{updatedPod.DeepCopy()}, + usedPorts: map[string]bool{"TCP/0.0.0.0/90": true}, + }, + }, + }} + + for i, tt := range tests { + cache := newSchedulerCache(ttl, time.Second, nil) + for _, podToAssume := range tt.podsToAssume { + if err := assumeAndFinishBinding(cache, podToAssume, now); err != nil { + t.Fatalf("assumePod failed: %v", err) + } + } + for _, podToAdd := range tt.podsToAdd { + if err := cache.AddPod(podToAdd); err != nil { + t.Fatalf("AddPod failed: %v", err) + } + } + for _, podToUpdate := range tt.podsToUpdate { + if err := cache.UpdatePod(podToUpdate[0], podToUpdate[1]); err != nil { + t.Fatalf("UpdatePod failed: %v", err) + } + } + for nodeName, expected := range tt.wNodeInfo { + t.Log(nodeName) + n := cache.nodes[nodeName] + deepEqualWithoutGeneration(t, i, n, expected) + } + } +} + // TestAddPodAfterExpiration tests that a pod being Add()ed will be added back if expired. func TestAddPodAfterExpiration(t *testing.T) { nodeName := "node" ttl := 10 * time.Second - basePod := makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}) + basePod := makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}) tests := []struct { pod *v1.Pod @@ -320,7 +384,7 @@ func TestAddPodAfterExpiration(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{basePod}, - usedPorts: map[int]bool{80: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true}, }, }} @@ -350,8 +414,8 @@ func TestUpdatePod(t *testing.T) { nodeName := "node" ttl := 10 * time.Second testPods := []*v1.Pod{ - makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}), - makeBasePod(t, nodeName, "test", "200m", "1Ki", "", []v1.ContainerPort{{HostPort: 8080}}), + makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}), + makeBasePod(t, nodeName, "test", "200m", "1Ki", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 8080, Protocol: "TCP"}}), } tests := []struct { podsToAssume []*v1.Pod @@ -373,7 +437,7 @@ func TestUpdatePod(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[1]}, - usedPorts: map[int]bool{8080: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/8080": true}, }, { requestedResource: &Resource{ MilliCPU: 100, @@ -385,7 +449,7 @@ func TestUpdatePod(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[0]}, - usedPorts: map[int]bool{80: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true}, }}, }} @@ -416,8 +480,8 @@ func TestExpireAddUpdatePod(t *testing.T) { nodeName := "node" ttl := 10 * time.Second testPods := []*v1.Pod{ - makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}), - makeBasePod(t, nodeName, "test", "200m", "1Ki", "", []v1.ContainerPort{{HostPort: 8080}}), + makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}), + makeBasePod(t, nodeName, "test", "200m", "1Ki", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 8080, Protocol: "TCP"}}), } tests := []struct { podsToAssume []*v1.Pod @@ -440,7 +504,7 @@ func TestExpireAddUpdatePod(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[1]}, - usedPorts: map[int]bool{8080: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/8080": true}, }, { requestedResource: &Resource{ MilliCPU: 100, @@ -452,7 +516,7 @@ func TestExpireAddUpdatePod(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{testPods[0]}, - usedPorts: map[int]bool{80: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true}, }}, }} @@ -489,7 +553,7 @@ func TestExpireAddUpdatePod(t *testing.T) { // TestRemovePod tests after added pod is removed, its information should also be subtracted. func TestRemovePod(t *testing.T) { nodeName := "node" - basePod := makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}) + basePod := makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}) tests := []struct { pod *v1.Pod wNodeInfo *NodeInfo @@ -506,7 +570,7 @@ func TestRemovePod(t *testing.T) { }, allocatableResource: &Resource{}, pods: []*v1.Pod{basePod}, - usedPorts: map[int]bool{80: true}, + usedPorts: map[string]bool{"TCP/127.0.0.1/80": true}, }, }} @@ -531,7 +595,7 @@ func TestRemovePod(t *testing.T) { func TestForgetPod(t *testing.T) { nodeName := "node" - basePod := makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostPort: 80}}) + basePod := makeBasePod(t, nodeName, "test", "100m", "500", "", []v1.ContainerPort{{HostIP: "127.0.0.1", HostPort: 80, Protocol: "TCP"}}) tests := []struct { pods []*v1.Pod }{{ @@ -546,11 +610,35 @@ func TestForgetPod(t *testing.T) { if err := assumeAndFinishBinding(cache, pod, now); err != nil { t.Fatalf("assumePod failed: %v", err) } + isAssumed, err := cache.IsAssumedPod(pod) + if err != nil { + t.Fatalf("IsAssumedPod failed: %v.", err) + } + if !isAssumed { + t.Fatalf("Pod is expected to be assumed.") + } + assumedPod, err := cache.GetPod(pod) + if err != nil { + t.Fatalf("GetPod failed: %v.", err) + } + if assumedPod.Namespace != pod.Namespace { + t.Errorf("assumedPod.Namespace != pod.Namespace (%s != %s)", assumedPod.Namespace, pod.Namespace) + } + if assumedPod.Name != pod.Name { + t.Errorf("assumedPod.Name != pod.Name (%s != %s)", assumedPod.Name, pod.Name) + } } for _, pod := range tt.pods { if err := cache.ForgetPod(pod); err != nil { t.Fatalf("ForgetPod failed: %v", err) } + isAssumed, err := cache.IsAssumedPod(pod) + if err != nil { + t.Fatalf("IsAssumedPod failed: %v.", err) + } + if isAssumed { + t.Fatalf("Pod is expected to be unassumed.") + } } cache.cleanupAssumedPods(now.Add(2 * ttl)) if n := cache.nodes[nodeName]; n != nil { @@ -876,3 +964,107 @@ func setupCacheWithAssumedPods(b *testing.B, podNum int, assumedTime time.Time) } return cache } + +func makePDB(name, namespace string, labels map[string]string, minAvailable int) *v1beta1.PodDisruptionBudget { + intstrMin := intstr.FromInt(minAvailable) + pdb := &v1beta1.PodDisruptionBudget{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: namespace, + Name: name, + Labels: labels, + }, + Spec: v1beta1.PodDisruptionBudgetSpec{ + MinAvailable: &intstrMin, + Selector: &metav1.LabelSelector{MatchLabels: labels}, + }, + } + + return pdb +} + +// TestPDBOperations tests that a PDB will be add/updated/deleted correctly. +func TestPDBOperations(t *testing.T) { + ttl := 10 * time.Second + testPDBs := []*v1beta1.PodDisruptionBudget{ + makePDB("pdb0", "ns1", map[string]string{"tkey1": "tval1"}, 3), + makePDB("pdb1", "ns1", map[string]string{"tkey1": "tval1", "tkey2": "tval2"}, 1), + makePDB("pdb2", "ns3", map[string]string{"tkey3": "tval3", "tkey2": "tval2"}, 10), + } + updatedPDBs := []*v1beta1.PodDisruptionBudget{ + makePDB("pdb0", "ns1", map[string]string{"tkey4": "tval4"}, 8), + makePDB("pdb1", "ns1", map[string]string{"tkey1": "tval1"}, 1), + makePDB("pdb2", "ns3", map[string]string{"tkey3": "tval3", "tkey1": "tval1", "tkey2": "tval2"}, 10), + } + tests := []struct { + pdbsToAdd []*v1beta1.PodDisruptionBudget + pdbsToUpdate []*v1beta1.PodDisruptionBudget + pdbsToDelete []*v1beta1.PodDisruptionBudget + expectedPDBs []*v1beta1.PodDisruptionBudget // Expected PDBs after all operations + }{ + { + pdbsToAdd: []*v1beta1.PodDisruptionBudget{testPDBs[0]}, + pdbsToUpdate: []*v1beta1.PodDisruptionBudget{testPDBs[0], testPDBs[1], testPDBs[0]}, + expectedPDBs: []*v1beta1.PodDisruptionBudget{testPDBs[0], testPDBs[1]}, // both will be in the cache as they have different names + }, + { + pdbsToAdd: []*v1beta1.PodDisruptionBudget{testPDBs[0]}, + pdbsToUpdate: []*v1beta1.PodDisruptionBudget{testPDBs[0], updatedPDBs[0]}, + expectedPDBs: []*v1beta1.PodDisruptionBudget{updatedPDBs[0]}, + }, + { + pdbsToAdd: []*v1beta1.PodDisruptionBudget{testPDBs[0], testPDBs[2]}, + pdbsToUpdate: []*v1beta1.PodDisruptionBudget{testPDBs[0], updatedPDBs[0]}, + pdbsToDelete: []*v1beta1.PodDisruptionBudget{testPDBs[0]}, + expectedPDBs: []*v1beta1.PodDisruptionBudget{testPDBs[2]}, + }, + } + + for _, test := range tests { + cache := newSchedulerCache(ttl, time.Second, nil) + for _, pdbToAdd := range test.pdbsToAdd { + if err := cache.AddPDB(pdbToAdd); err != nil { + t.Fatalf("AddPDB failed: %v", err) + } + } + + for i := range test.pdbsToUpdate { + if i == 0 { + continue + } + if err := cache.UpdatePDB(test.pdbsToUpdate[i-1], test.pdbsToUpdate[i]); err != nil { + t.Fatalf("UpdatePDB failed: %v", err) + } + } + + for _, pdb := range test.pdbsToDelete { + if err := cache.RemovePDB(pdb); err != nil { + t.Fatalf("RemovePDB failed: %v", err) + } + } + + cachedPDBs, err := cache.ListPDBs(labels.Everything()) + if err != nil { + t.Fatalf("ListPDBs failed: %v", err) + } + if len(cachedPDBs) != len(test.expectedPDBs) { + t.Errorf("Expected %d PDBs, got %d", len(test.expectedPDBs), len(cachedPDBs)) + } + for _, pdb := range test.expectedPDBs { + found := false + // find it among the cached ones + for _, cpdb := range cachedPDBs { + if pdb.Name == cpdb.Name { + found = true + if !reflect.DeepEqual(pdb, cpdb) { + t.Errorf("%v is not equal to %v", pdb, cpdb) + } + break + } + } + if !found { + t.Errorf("PDB with name '%v' was not found in the cache.", pdb.Name) + } + + } + } +} diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/interface.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/interface.go index 6acb92cd5..d8c09fb7e 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/interface.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/interface.go @@ -18,6 +18,7 @@ package schedulercache import ( "k8s.io/api/core/v1" + policy "k8s.io/api/policy/v1beta1" "k8s.io/apimachinery/pkg/labels" ) @@ -79,6 +80,13 @@ type Cache interface { // RemovePod removes a pod. The pod's information would be subtracted from assigned node. RemovePod(pod *v1.Pod) error + // GetPod returns the pod from the cache with the same namespace and the + // same name of the specified pod. + GetPod(pod *v1.Pod) (*v1.Pod, error) + + // IsAssumedPod returns true if the pod is assumed and not expired. + IsAssumedPod(pod *v1.Pod) (bool, error) + // AddNode adds overall information about node. AddNode(node *v1.Node) error @@ -88,6 +96,18 @@ type Cache interface { // RemoveNode removes overall information about node. RemoveNode(node *v1.Node) error + // AddPDB adds a PodDisruptionBudget object to the cache. + AddPDB(pdb *policy.PodDisruptionBudget) error + + // UpdatePDB updates a PodDisruptionBudget object in the cache. + UpdatePDB(oldPDB, newPDB *policy.PodDisruptionBudget) error + + // RemovePDB removes a PodDisruptionBudget object from the cache. + RemovePDB(pdb *policy.PodDisruptionBudget) error + + // List lists all cached PDBs matching the selector. + ListPDBs(selector labels.Selector) ([]*policy.PodDisruptionBudget, error) + // UpdateNodeNameToInfoMap updates the passed infoMap to the current contents of Cache. // The node info contains aggregated information of pods scheduled (including assumed to be) // on this node. diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/node_info.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/node_info.go index 7cbc45680..13f71d525 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/node_info.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache/node_info.go @@ -24,7 +24,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" clientcache "k8s.io/client-go/tools/cache" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" priorityutil "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities/util" "k8s.io/kubernetes/plugin/pkg/scheduler/util" ) @@ -38,7 +38,7 @@ type NodeInfo struct { pods []*v1.Pod podsWithAffinity []*v1.Pod - usedPorts map[int]bool + usedPorts map[string]bool // Total requested resource of all pods on this node. // It includes assumed pods which scheduler sends binding to apiserver but @@ -164,7 +164,7 @@ func NewNodeInfo(pods ...*v1.Pod) *NodeInfo { nonzeroRequest: &Resource{}, allocatableResource: &Resource{}, generation: 0, - usedPorts: make(map[int]bool), + usedPorts: make(map[string]bool), } for _, pod := range pods { ni.AddPod(pod) @@ -188,7 +188,7 @@ func (n *NodeInfo) Pods() []*v1.Pod { return n.pods } -func (n *NodeInfo) UsedPorts() map[int]bool { +func (n *NodeInfo) UsedPorts() map[string]bool { if n == nil { return nil } @@ -255,6 +255,11 @@ func (n *NodeInfo) AllocatableResource() Resource { return *n.allocatableResource } +// SetAllocatableResource sets the allocatableResource information of given node. +func (n *NodeInfo) SetAllocatableResource(allocatableResource *Resource) { + n.allocatableResource = allocatableResource +} + func (n *NodeInfo) Clone() *NodeInfo { clone := &NodeInfo{ node: n.node, @@ -264,7 +269,7 @@ func (n *NodeInfo) Clone() *NodeInfo { taintsErr: n.taintsErr, memoryPressureCondition: n.memoryPressureCondition, diskPressureCondition: n.diskPressureCondition, - usedPorts: make(map[int]bool), + usedPorts: make(map[string]bool), generation: n.generation, } if len(n.pods) > 0 { @@ -403,7 +408,26 @@ func (n *NodeInfo) updateUsedPorts(pod *v1.Pod, used bool) { // "0" is explicitly ignored in PodFitsHostPorts, // which is the only function that uses this value. if podPort.HostPort != 0 { - n.usedPorts[int(podPort.HostPort)] = used + // user does not explicitly set protocol, default is tcp + portProtocol := podPort.Protocol + if podPort.Protocol == "" { + portProtocol = v1.ProtocolTCP + } + + // user does not explicitly set hostIP, default is 0.0.0.0 + portHostIP := podPort.HostIP + if podPort.HostIP == "" { + portHostIP = util.DefaultBindAllHostIP + } + + str := fmt.Sprintf("%s/%s/%d", portProtocol, portHostIP, podPort.HostPort) + + if used { + n.usedPorts[str] = used + } else { + delete(n.usedPorts, str) + } + } } } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testing/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testing/BUILD index 804d32d33..03ab8639c 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testing/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testing/BUILD @@ -19,6 +19,7 @@ go_library( "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testing/fake_cache.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testing/fake_cache.go index b85b165aa..feeb048e5 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testing/fake_cache.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testing/fake_cache.go @@ -18,14 +18,17 @@ package testing import ( "k8s.io/api/core/v1" + policy "k8s.io/api/policy/v1beta1" "k8s.io/apimachinery/pkg/labels" "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" ) // FakeCache is used for testing type FakeCache struct { - AssumeFunc func(*v1.Pod) - ForgetFunc func(*v1.Pod) + AssumeFunc func(*v1.Pod) + ForgetFunc func(*v1.Pod) + IsAssumedPodFunc func(*v1.Pod) bool + GetPodFunc func(*v1.Pod) *v1.Pod } func (f *FakeCache) AssumePod(pod *v1.Pod) error { @@ -46,6 +49,14 @@ func (f *FakeCache) UpdatePod(oldPod, newPod *v1.Pod) error { return nil } func (f *FakeCache) RemovePod(pod *v1.Pod) error { return nil } +func (f *FakeCache) IsAssumedPod(pod *v1.Pod) (bool, error) { + return f.IsAssumedPodFunc(pod), nil +} + +func (f *FakeCache) GetPod(pod *v1.Pod) (*v1.Pod, error) { + return f.GetPodFunc(pod), nil +} + func (f *FakeCache) AddNode(node *v1.Node) error { return nil } func (f *FakeCache) UpdateNode(oldNode, newNode *v1.Node) error { return nil } @@ -56,6 +67,16 @@ func (f *FakeCache) UpdateNodeNameToInfoMap(infoMap map[string]*schedulercache.N return nil } +func (f *FakeCache) AddPDB(pdb *policy.PodDisruptionBudget) error { return nil } + +func (f *FakeCache) UpdatePDB(oldPDB, newPDB *policy.PodDisruptionBudget) error { return nil } + +func (f *FakeCache) RemovePDB(pdb *policy.PodDisruptionBudget) error { return nil } + +func (f *FakeCache) ListPDBs(selector labels.Selector) ([]*policy.PodDisruptionBudget, error) { + return nil, nil +} + func (f *FakeCache) List(s labels.Selector) ([]*v1.Pod, error) { return nil, nil } func (f *FakeCache) FilteredList(filter schedulercache.PodFilter, selector labels.Selector) ([]*v1.Pod, error) { diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testutil.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testutil.go index d4bd356af..7976353ed 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testutil.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/testutil.go @@ -23,9 +23,9 @@ import ( "k8s.io/apimachinery/pkg/util/sets" clientset "k8s.io/client-go/kubernetes" corelisters "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/tools/cache" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" + "k8s.io/kubernetes/plugin/pkg/scheduler/core" "k8s.io/kubernetes/plugin/pkg/scheduler/util" ) @@ -55,7 +55,7 @@ func (fc *FakeConfigurator) GetPredicates(predicateKeys sets.String) (map[string } // GetHardPodAffinitySymmetricWeight is not implemented yet. -func (fc *FakeConfigurator) GetHardPodAffinitySymmetricWeight() int { +func (fc *FakeConfigurator) GetHardPodAffinitySymmetricWeight() int32 { panic("not implemented") } @@ -65,7 +65,7 @@ func (fc *FakeConfigurator) GetSchedulerName() string { } // MakeDefaultErrorFunc is not implemented yet. -func (fc *FakeConfigurator) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue *cache.FIFO) func(pod *v1.Pod, err error) { +func (fc *FakeConfigurator) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue core.SchedulingQueue) func(pod *v1.Pod, err error) { return nil } diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/BUILD b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/BUILD index c829273d3..9b6603cab 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/BUILD +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/BUILD @@ -33,8 +33,9 @@ go_library( ], importpath = "k8s.io/kubernetes/plugin/pkg/scheduler/util", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/install:go_default_library", "//pkg/apis/scheduling:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/testutil.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/testutil.go index 8b5ef89e8..45ce2df11 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/testutil.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/testutil.go @@ -25,9 +25,10 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" - _ "k8s.io/kubernetes/pkg/api/install" + _ "k8s.io/kubernetes/pkg/apis/core/install" ) type TestGroup struct { @@ -51,7 +52,7 @@ func init() { if err != nil { panic(err) } - serializer, ok = runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), mediaType) + serializer, ok = runtime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), mediaType) if !ok { panic(fmt.Sprintf("no serializer for %s", apiMediaType)) } @@ -72,19 +73,19 @@ func init() { Groups[groupVersion.Group] = TestGroup{ externalGroupVersion: groupVersion, internalGroupVersion: internalGroupVersion, - internalTypes: api.Scheme.KnownTypes(internalGroupVersion), - externalTypes: api.Scheme.KnownTypes(groupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(internalGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(groupVersion), } } } if _, ok := Groups[api.GroupName]; !ok { - externalGroupVersion := schema.GroupVersion{Group: api.GroupName, Version: api.Registry.GroupOrDie(api.GroupName).GroupVersion.Version} + externalGroupVersion := schema.GroupVersion{Group: api.GroupName, Version: legacyscheme.Registry.GroupOrDie(api.GroupName).GroupVersion.Version} Groups[api.GroupName] = TestGroup{ externalGroupVersion: externalGroupVersion, internalGroupVersion: api.SchemeGroupVersion, - internalTypes: api.Scheme.KnownTypes(api.SchemeGroupVersion), - externalTypes: api.Scheme.KnownTypes(externalGroupVersion), + internalTypes: legacyscheme.Scheme.KnownTypes(api.SchemeGroupVersion), + externalTypes: legacyscheme.Scheme.KnownTypes(externalGroupVersion), } } @@ -95,9 +96,9 @@ func init() { // KUBE_TEST_API_TYPE env var. func (g TestGroup) Codec() runtime.Codec { if serializer.Serializer == nil { - return api.Codecs.LegacyCodec(g.externalGroupVersion) + return legacyscheme.Codecs.LegacyCodec(g.externalGroupVersion) } - return api.Codecs.CodecForVersions(serializer.Serializer, api.Codecs.UniversalDeserializer(), schema.GroupVersions{g.externalGroupVersion}, nil) + return legacyscheme.Codecs.CodecForVersions(serializer.Serializer, legacyscheme.Codecs.UniversalDeserializer(), schema.GroupVersions{g.externalGroupVersion}, nil) } // SelfLink returns a self link that will appear to be for the version Version(). diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/utils.go b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/utils.go index 2cbe26f2e..ce1d1ad99 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/utils.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/scheduler/util/utils.go @@ -17,16 +17,19 @@ limitations under the License. package util import ( + "fmt" "sort" "k8s.io/api/core/v1" "k8s.io/kubernetes/pkg/apis/scheduling" ) +const DefaultBindAllHostIP = "0.0.0.0" + // GetUsedPorts returns the used host ports of Pods: if 'port' was used, a 'port:true' pair // will be in the result; but it does not resolve port conflict. -func GetUsedPorts(pods ...*v1.Pod) map[int]bool { - ports := make(map[int]bool) +func GetUsedPorts(pods ...*v1.Pod) map[string]bool { + ports := make(map[string]bool) for _, pod := range pods { for j := range pod.Spec.Containers { container := &pod.Spec.Containers[j] @@ -35,7 +38,20 @@ func GetUsedPorts(pods ...*v1.Pod) map[int]bool { // "0" is explicitly ignored in PodFitsHostPorts, // which is the only function that uses this value. if podPort.HostPort != 0 { - ports[int(podPort.HostPort)] = true + // user does not explicitly set protocol, default is tcp + portProtocol := podPort.Protocol + if podPort.Protocol == "" { + portProtocol = v1.ProtocolTCP + } + + // user does not explicitly set hostIP, default is 0.0.0.0 + portHostIP := podPort.HostIP + if podPort.HostIP == "" { + portHostIP = "0.0.0.0" + } + + str := fmt.Sprintf("%s/%s/%d", portProtocol, portHostIP, podPort.HostPort) + ports[str] = true } } } diff --git a/vendor/k8s.io/kubernetes/staging/BUILD b/vendor/k8s.io/kubernetes/staging/BUILD index 7b541e908..527d64bae 100644 --- a/vendor/k8s.io/kubernetes/staging/BUILD +++ b/vendor/k8s.io/kubernetes/staging/BUILD @@ -43,6 +43,7 @@ filegroup( "//staging/src/k8s.io/api/scheduling/v1alpha1:all-srcs", "//staging/src/k8s.io/api/settings/v1alpha1:all-srcs", "//staging/src/k8s.io/api/storage/v1:all-srcs", + "//staging/src/k8s.io/api/storage/v1alpha1:all-srcs", "//staging/src/k8s.io/api/storage/v1beta1:all-srcs", "//staging/src/k8s.io/apiextensions-apiserver:all-srcs", "//staging/src/k8s.io/apimachinery/pkg/api/equality:all-srcs", @@ -85,6 +86,7 @@ filegroup( "//staging/src/k8s.io/apimachinery/pkg/util/uuid:all-srcs", "//staging/src/k8s.io/apimachinery/pkg/util/validation:all-srcs", "//staging/src/k8s.io/apimachinery/pkg/util/wait:all-srcs", + "//staging/src/k8s.io/apimachinery/pkg/util/waitgroup:all-srcs", "//staging/src/k8s.io/apimachinery/pkg/util/yaml:all-srcs", "//staging/src/k8s.io/apimachinery/pkg/version:all-srcs", "//staging/src/k8s.io/apimachinery/pkg/watch:all-srcs", @@ -95,6 +97,7 @@ filegroup( "//staging/src/k8s.io/apiserver/pkg/apis/apiserver:all-srcs", "//staging/src/k8s.io/apiserver/pkg/apis/audit:all-srcs", "//staging/src/k8s.io/apiserver/pkg/apis/example:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/apis/example2:all-srcs", "//staging/src/k8s.io/apiserver/pkg/audit:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authentication/authenticator:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory:all-srcs", @@ -162,11 +165,13 @@ filegroup( "//staging/src/k8s.io/client-go/listers/scheduling/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/listers/settings/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/listers/storage/v1:all-srcs", + "//staging/src/k8s.io/client-go/listers/storage/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/listers/storage/v1beta1:all-srcs", "//staging/src/k8s.io/client-go/pkg/version:all-srcs", "//staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing:all-srcs", "//staging/src/k8s.io/client-go/plugin/pkg/client/auth:all-srcs", "//staging/src/k8s.io/client-go/rest:all-srcs", + "//staging/src/k8s.io/client-go/scale:all-srcs", "//staging/src/k8s.io/client-go/testing:all-srcs", "//staging/src/k8s.io/client-go/third_party/forked/golang/template:all-srcs", "//staging/src/k8s.io/client-go/tools/auth:all-srcs", @@ -208,6 +213,7 @@ filegroup( "//staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset:all-srcs", "//staging/src/k8s.io/metrics/pkg/client/custom_metrics:all-srcs", "//staging/src/k8s.io/sample-apiserver:all-srcs", + "//staging/src/k8s.io/sample-controller:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/staging/README.md b/vendor/k8s.io/kubernetes/staging/README.md index f750d3147..98d47d18b 100644 --- a/vendor/k8s.io/kubernetes/staging/README.md +++ b/vendor/k8s.io/kubernetes/staging/README.md @@ -12,9 +12,10 @@ Repositories currently staged here: - [`k8s.io/apiserver`](https://github.com/kubernetes/apiserver) - [`k8s.io/client-go`](https://github.com/kubernetes/client-go) - [`k8s.io/kube-aggregator`](https://github.com/kubernetes/kube-aggregator) -- [`k8s.io/code-generator`](https://github.com/kubernetes/code-generator) (about to be published) +- [`k8s.io/code-generator`](https://github.com/kubernetes/code-generator) - [`k8s.io/metrics`](https://github.com/kubernetes/metrics) - [`k8s.io/sample-apiserver`](https://github.com/kubernetes/sample-apiserver) +- [`k8s.io/sample-controller`](https://github.com/kubernetes/sample-controller) The code in the staging/ directory is authoritative, i.e. the only copy of the code. You can directly modify such code. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/Godeps/Godeps.json index 5310765a3..83b361aca 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/api", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "./..." @@ -216,7 +216,7 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/LICENSE b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/README.md new file mode 100644 index 000000000..967543a45 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/README.md @@ -0,0 +1 @@ +This repo is still in the experimental stage. Shortly it will contain the schema of the API that are served by the Kubernetes apiserver. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/BUILD index 96125aa14..50cdb04e2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/api/authentication/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/doc.go index 22c61d99d..63e579c19 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=false // +groupName=admission.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/register.go index ea6d5609a..e1f8255a3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &AdmissionReview{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/zz_generated.deepcopy.go index 667792aeb..756655046 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admission/v1alpha1/zz_generated.deepcopy.go @@ -22,36 +22,9 @@ package v1alpha1 import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionReview).DeepCopyInto(out.(*AdmissionReview)) - return nil - }, InType: reflect.TypeOf(&AdmissionReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionReviewSpec).DeepCopyInto(out.(*AdmissionReviewSpec)) - return nil - }, InType: reflect.TypeOf(&AdmissionReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionReviewStatus).DeepCopyInto(out.(*AdmissionReviewStatus)) - return nil - }, InType: reflect.TypeOf(&AdmissionReviewStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AdmissionReview) DeepCopyInto(out *AdmissionReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD index b1601cf3d..417eab39f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD @@ -19,7 +19,6 @@ go_library( deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/doc.go index 49e0e0989..8a5d1fbbb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/doc.go @@ -14,12 +14,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // Package v1alpha1 is the v1alpha1 version of the API. // AdmissionConfiguration and AdmissionPluginConfiguration are legacy static admission plugin configuration -// InitializerConfiguration and ExternalAdmissionHookConfiguration is for the +// InitializerConfiguration and validatingWebhookConfiguration is for the // new dynamic admission controller configuration. // +groupName=admissionregistration.k8s.io package v1alpha1 // import "k8s.io/api/admissionregistration/v1alpha1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go index 6a1977f83..9daf70870 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go @@ -25,16 +25,18 @@ limitations under the License. k8s.io/kubernetes/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto It has these top-level messages: - AdmissionHookClientConfig - ExternalAdmissionHook - ExternalAdmissionHookConfiguration - ExternalAdmissionHookConfigurationList Initializer InitializerConfiguration InitializerConfigurationList + MutatingWebhookConfiguration + MutatingWebhookConfigurationList Rule RuleWithOperations ServiceReference + ValidatingWebhookConfiguration + ValidatingWebhookConfigurationList + Webhook + WebhookClientConfig */ package v1alpha1 @@ -42,6 +44,8 @@ import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + import strings "strings" import reflect "reflect" @@ -58,103 +62,81 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package -func (m *AdmissionHookClientConfig) Reset() { *m = AdmissionHookClientConfig{} } -func (*AdmissionHookClientConfig) ProtoMessage() {} -func (*AdmissionHookClientConfig) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{0} -} - -func (m *ExternalAdmissionHook) Reset() { *m = ExternalAdmissionHook{} } -func (*ExternalAdmissionHook) ProtoMessage() {} -func (*ExternalAdmissionHook) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } - -func (m *ExternalAdmissionHookConfiguration) Reset() { *m = ExternalAdmissionHookConfiguration{} } -func (*ExternalAdmissionHookConfiguration) ProtoMessage() {} -func (*ExternalAdmissionHookConfiguration) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{2} -} - -func (m *ExternalAdmissionHookConfigurationList) Reset() { - *m = ExternalAdmissionHookConfigurationList{} -} -func (*ExternalAdmissionHookConfigurationList) ProtoMessage() {} -func (*ExternalAdmissionHookConfigurationList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{3} -} - func (m *Initializer) Reset() { *m = Initializer{} } func (*Initializer) ProtoMessage() {} -func (*Initializer) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (*Initializer) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } func (m *InitializerConfiguration) Reset() { *m = InitializerConfiguration{} } func (*InitializerConfiguration) ProtoMessage() {} func (*InitializerConfiguration) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{5} + return fileDescriptorGenerated, []int{1} } func (m *InitializerConfigurationList) Reset() { *m = InitializerConfigurationList{} } func (*InitializerConfigurationList) ProtoMessage() {} func (*InitializerConfigurationList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{6} + return fileDescriptorGenerated, []int{2} +} + +func (m *MutatingWebhookConfiguration) Reset() { *m = MutatingWebhookConfiguration{} } +func (*MutatingWebhookConfiguration) ProtoMessage() {} +func (*MutatingWebhookConfiguration) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{3} +} + +func (m *MutatingWebhookConfigurationList) Reset() { *m = MutatingWebhookConfigurationList{} } +func (*MutatingWebhookConfigurationList) ProtoMessage() {} +func (*MutatingWebhookConfigurationList) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{4} } func (m *Rule) Reset() { *m = Rule{} } func (*Rule) ProtoMessage() {} -func (*Rule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*Rule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func (m *RuleWithOperations) Reset() { *m = RuleWithOperations{} } func (*RuleWithOperations) ProtoMessage() {} -func (*RuleWithOperations) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*RuleWithOperations) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *ServiceReference) Reset() { *m = ServiceReference{} } func (*ServiceReference) ProtoMessage() {} -func (*ServiceReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*ServiceReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } + +func (m *ValidatingWebhookConfiguration) Reset() { *m = ValidatingWebhookConfiguration{} } +func (*ValidatingWebhookConfiguration) ProtoMessage() {} +func (*ValidatingWebhookConfiguration) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{8} +} + +func (m *ValidatingWebhookConfigurationList) Reset() { *m = ValidatingWebhookConfigurationList{} } +func (*ValidatingWebhookConfigurationList) ProtoMessage() {} +func (*ValidatingWebhookConfigurationList) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{9} +} + +func (m *Webhook) Reset() { *m = Webhook{} } +func (*Webhook) ProtoMessage() {} +func (*Webhook) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } + +func (m *WebhookClientConfig) Reset() { *m = WebhookClientConfig{} } +func (*WebhookClientConfig) ProtoMessage() {} +func (*WebhookClientConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func init() { - proto.RegisterType((*AdmissionHookClientConfig)(nil), "k8s.io.api.admissionregistration.v1alpha1.AdmissionHookClientConfig") - proto.RegisterType((*ExternalAdmissionHook)(nil), "k8s.io.api.admissionregistration.v1alpha1.ExternalAdmissionHook") - proto.RegisterType((*ExternalAdmissionHookConfiguration)(nil), "k8s.io.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfiguration") - proto.RegisterType((*ExternalAdmissionHookConfigurationList)(nil), "k8s.io.api.admissionregistration.v1alpha1.ExternalAdmissionHookConfigurationList") proto.RegisterType((*Initializer)(nil), "k8s.io.api.admissionregistration.v1alpha1.Initializer") proto.RegisterType((*InitializerConfiguration)(nil), "k8s.io.api.admissionregistration.v1alpha1.InitializerConfiguration") proto.RegisterType((*InitializerConfigurationList)(nil), "k8s.io.api.admissionregistration.v1alpha1.InitializerConfigurationList") + proto.RegisterType((*MutatingWebhookConfiguration)(nil), "k8s.io.api.admissionregistration.v1alpha1.MutatingWebhookConfiguration") + proto.RegisterType((*MutatingWebhookConfigurationList)(nil), "k8s.io.api.admissionregistration.v1alpha1.MutatingWebhookConfigurationList") proto.RegisterType((*Rule)(nil), "k8s.io.api.admissionregistration.v1alpha1.Rule") proto.RegisterType((*RuleWithOperations)(nil), "k8s.io.api.admissionregistration.v1alpha1.RuleWithOperations") proto.RegisterType((*ServiceReference)(nil), "k8s.io.api.admissionregistration.v1alpha1.ServiceReference") + proto.RegisterType((*ValidatingWebhookConfiguration)(nil), "k8s.io.api.admissionregistration.v1alpha1.ValidatingWebhookConfiguration") + proto.RegisterType((*ValidatingWebhookConfigurationList)(nil), "k8s.io.api.admissionregistration.v1alpha1.ValidatingWebhookConfigurationList") + proto.RegisterType((*Webhook)(nil), "k8s.io.api.admissionregistration.v1alpha1.Webhook") + proto.RegisterType((*WebhookClientConfig)(nil), "k8s.io.api.admissionregistration.v1alpha1.WebhookClientConfig") } -func (m *AdmissionHookClientConfig) 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 *AdmissionHookClientConfig) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Service.Size())) - n1, err := m.Service.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - if m.CABundle != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CABundle))) - i += copy(dAtA[i:], m.CABundle) - } - return i, nil -} - -func (m *ExternalAdmissionHook) Marshal() (dAtA []byte, err error) { +func (m *Initializer) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -164,7 +146,7 @@ func (m *ExternalAdmissionHook) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExternalAdmissionHook) MarshalTo(dAtA []byte) (int, error) { +func (m *Initializer) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -173,17 +155,9 @@ func (m *ExternalAdmissionHook) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) i += copy(dAtA[i:], m.Name) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ClientConfig.Size())) - n2, err := m.ClientConfig.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 if len(m.Rules) > 0 { for _, msg := range m.Rules { - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) n, err := msg.MarshalTo(dAtA[i:]) @@ -193,16 +167,10 @@ func (m *ExternalAdmissionHook) MarshalTo(dAtA []byte) (int, error) { i += n } } - if m.FailurePolicy != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy))) - i += copy(dAtA[i:], *m.FailurePolicy) - } return i, nil } -func (m *ExternalAdmissionHookConfiguration) Marshal() (dAtA []byte, err error) { +func (m *InitializerConfiguration) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -212,7 +180,7 @@ func (m *ExternalAdmissionHookConfiguration) Marshal() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *ExternalAdmissionHookConfiguration) MarshalTo(dAtA []byte) (int, error) { +func (m *InitializerConfiguration) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -220,13 +188,13 @@ func (m *ExternalAdmissionHookConfiguration) MarshalTo(dAtA []byte) (int, error) dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n3, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 - if len(m.ExternalAdmissionHooks) > 0 { - for _, msg := range m.ExternalAdmissionHooks { + i += n1 + if len(m.Initializers) > 0 { + for _, msg := range m.Initializers { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) @@ -240,7 +208,7 @@ func (m *ExternalAdmissionHookConfiguration) MarshalTo(dAtA []byte) (int, error) return i, nil } -func (m *ExternalAdmissionHookConfigurationList) Marshal() (dAtA []byte, err error) { +func (m *InitializerConfigurationList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -250,7 +218,7 @@ func (m *ExternalAdmissionHookConfigurationList) Marshal() (dAtA []byte, err err return dAtA[:n], nil } -func (m *ExternalAdmissionHookConfigurationList) MarshalTo(dAtA []byte) (int, error) { +func (m *InitializerConfigurationList) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -258,11 +226,11 @@ func (m *ExternalAdmissionHookConfigurationList) MarshalTo(dAtA []byte) (int, er dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n4, err := m.ListMeta.MarshalTo(dAtA[i:]) + n2, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n2 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -278,41 +246,7 @@ func (m *ExternalAdmissionHookConfigurationList) MarshalTo(dAtA []byte) (int, er return i, nil } -func (m *Initializer) 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 *Initializer) 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 len(m.Rules) > 0 { - for _, msg := range m.Rules { - 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 *InitializerConfiguration) Marshal() (dAtA []byte, err error) { +func (m *MutatingWebhookConfiguration) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -322,7 +256,7 @@ func (m *InitializerConfiguration) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *InitializerConfiguration) MarshalTo(dAtA []byte) (int, error) { +func (m *MutatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -330,13 +264,13 @@ func (m *InitializerConfiguration) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n5, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n3, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 - if len(m.Initializers) > 0 { - for _, msg := range m.Initializers { + i += n3 + if len(m.Webhooks) > 0 { + for _, msg := range m.Webhooks { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) @@ -350,7 +284,7 @@ func (m *InitializerConfiguration) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *InitializerConfigurationList) Marshal() (dAtA []byte, err error) { +func (m *MutatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -360,7 +294,7 @@ func (m *InitializerConfigurationList) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *InitializerConfigurationList) MarshalTo(dAtA []byte) (int, error) { +func (m *MutatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -368,11 +302,11 @@ func (m *InitializerConfigurationList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n6, err := m.ListMeta.MarshalTo(dAtA[i:]) + n4, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n4 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -484,11 +418,11 @@ func (m *RuleWithOperations) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Rule.Size())) - n7, err := m.Rule.MarshalTo(dAtA[i:]) + n5, err := m.Rule.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n5 return i, nil } @@ -515,103 +449,223 @@ func (m *ServiceReference) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) i += copy(dAtA[i:], m.Name) + if m.Path != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Path))) + i += copy(dAtA[i:], *m.Path) + } 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 *AdmissionHookClientConfig) Size() (n int) { - var l int - _ = l - l = m.Service.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.CABundle != nil { - l = len(m.CABundle) - n += 1 + l + sovGenerated(uint64(l)) +func (m *ValidatingWebhookConfiguration) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *ExternalAdmissionHook) Size() (n int) { +func (m *ValidatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i var l int _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.ClientConfig.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Rules) > 0 { - for _, e := range m.Rules { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n6, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err } - if m.FailurePolicy != nil { - l = len(*m.FailurePolicy) - n += 1 + l + sovGenerated(uint64(l)) + i += n6 + if len(m.Webhooks) > 0 { + for _, msg := range m.Webhooks { + 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 n + return i, nil } -func (m *ExternalAdmissionHookConfiguration) Size() (n int) { - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.ExternalAdmissionHooks) > 0 { - for _, e := range m.ExternalAdmissionHooks { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } +func (m *ValidatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *ExternalAdmissionHookConfigurationList) Size() (n int) { +func (m *ValidatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i var l int _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n7, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) + 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 n + return i, nil } -func (m *Initializer) Size() (n int) { +func (m *Webhook) 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 *Webhook) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i var l int _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Rules) > 0 { - for _, e := range m.Rules { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ClientConfig.Size())) + n8, err := m.ClientConfig.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + if len(m.Rules) > 0 { + for _, msg := range m.Rules { + 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 + } + } + if m.FailurePolicy != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy))) + i += copy(dAtA[i:], *m.FailurePolicy) + } + if m.NamespaceSelector != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.NamespaceSelector.Size())) + n9, err := m.NamespaceSelector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + } + return i, nil +} + +func (m *WebhookClientConfig) 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 *WebhookClientConfig) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Service != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Service.Size())) + n10, err := m.Service.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } + if m.CABundle != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CABundle))) + i += copy(dAtA[i:], m.CABundle) + } + if m.URL != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.URL))) + i += copy(dAtA[i:], *m.URL) + } + 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 *Initializer) Size() (n int) { + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Rules) > 0 { + for _, e := range m.Rules { l = e.Size() n += 1 + l + sovGenerated(uint64(l)) } @@ -647,6 +701,34 @@ func (m *InitializerConfigurationList) Size() (n int) { return n } +func (m *MutatingWebhookConfiguration) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Webhooks) > 0 { + for _, e := range m.Webhooks { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *MutatingWebhookConfigurationList) 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 *Rule) Size() (n int) { var l int _ = l @@ -692,6 +774,80 @@ func (m *ServiceReference) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.Name) n += 1 + l + sovGenerated(uint64(l)) + if m.Path != nil { + l = len(*m.Path) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ValidatingWebhookConfiguration) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Webhooks) > 0 { + for _, e := range m.Webhooks { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ValidatingWebhookConfigurationList) 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 *Webhook) Size() (n int) { + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = m.ClientConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Rules) > 0 { + for _, e := range m.Rules { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.FailurePolicy != nil { + l = len(*m.FailurePolicy) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NamespaceSelector != nil { + l = m.NamespaceSelector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *WebhookClientConfig) Size() (n int) { + var l int + _ = l + if m.Service != nil { + l = m.Service.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.CABundle != nil { + l = len(m.CABundle) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.URL != nil { + l = len(*m.URL) + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -708,81 +864,57 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (this *AdmissionHookClientConfig) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AdmissionHookClientConfig{`, - `Service:` + strings.Replace(strings.Replace(this.Service.String(), "ServiceReference", "ServiceReference", 1), `&`, ``, 1) + `,`, - `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, - `}`, - }, "") - return s -} -func (this *ExternalAdmissionHook) String() string { +func (this *Initializer) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&ExternalAdmissionHook{`, + s := strings.Join([]string{`&Initializer{`, `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), "AdmissionHookClientConfig", "AdmissionHookClientConfig", 1), `&`, ``, 1) + `,`, - `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "RuleWithOperations", "RuleWithOperations", 1), `&`, ``, 1) + `,`, - `FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`, + `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "Rule", "Rule", 1), `&`, ``, 1) + `,`, `}`, }, "") return s } -func (this *ExternalAdmissionHookConfiguration) String() string { +func (this *InitializerConfiguration) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&ExternalAdmissionHookConfiguration{`, + s := strings.Join([]string{`&InitializerConfiguration{`, `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `ExternalAdmissionHooks:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ExternalAdmissionHooks), "ExternalAdmissionHook", "ExternalAdmissionHook", 1), `&`, ``, 1) + `,`, + `Initializers:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Initializers), "Initializer", "Initializer", 1), `&`, ``, 1) + `,`, `}`, }, "") return s } -func (this *ExternalAdmissionHookConfigurationList) String() string { +func (this *InitializerConfigurationList) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&ExternalAdmissionHookConfigurationList{`, + s := strings.Join([]string{`&InitializerConfigurationList{`, `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), "ExternalAdmissionHookConfiguration", "ExternalAdmissionHookConfiguration", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *Initializer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Initializer{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "Rule", "Rule", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "InitializerConfiguration", "InitializerConfiguration", 1), `&`, ``, 1) + `,`, `}`, }, "") return s } -func (this *InitializerConfiguration) String() string { +func (this *MutatingWebhookConfiguration) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&InitializerConfiguration{`, + s := strings.Join([]string{`&MutatingWebhookConfiguration{`, `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Initializers:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Initializers), "Initializer", "Initializer", 1), `&`, ``, 1) + `,`, + `Webhooks:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Webhooks), "Webhook", "Webhook", 1), `&`, ``, 1) + `,`, `}`, }, "") return s } -func (this *InitializerConfigurationList) String() string { +func (this *MutatingWebhookConfigurationList) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&InitializerConfigurationList{`, + s := strings.Join([]string{`&MutatingWebhookConfigurationList{`, `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), "InitializerConfiguration", "InitializerConfiguration", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "MutatingWebhookConfiguration", "MutatingWebhookConfiguration", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -817,6 +949,55 @@ func (this *ServiceReference) String() string { s := strings.Join([]string{`&ServiceReference{`, `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Path:` + valueToStringGenerated(this.Path) + `,`, + `}`, + }, "") + return s +} +func (this *ValidatingWebhookConfiguration) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ValidatingWebhookConfiguration{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Webhooks:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Webhooks), "Webhook", "Webhook", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ValidatingWebhookConfigurationList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ValidatingWebhookConfigurationList{`, + `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), "ValidatingWebhookConfiguration", "ValidatingWebhookConfiguration", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Webhook) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Webhook{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), "WebhookClientConfig", "WebhookClientConfig", 1), `&`, ``, 1) + `,`, + `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "RuleWithOperations", "RuleWithOperations", 1), `&`, ``, 1) + `,`, + `FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`, + `NamespaceSelector:` + strings.Replace(fmt.Sprintf("%v", this.NamespaceSelector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `}`, + }, "") + return s +} +func (this *WebhookClientConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&WebhookClientConfig{`, + `Service:` + strings.Replace(fmt.Sprintf("%v", this.Service), "ServiceReference", "ServiceReference", 1) + `,`, + `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, + `URL:` + valueToStringGenerated(this.URL) + `,`, `}`, }, "") return s @@ -829,7 +1010,117 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *AdmissionHookClientConfig) Unmarshal(dAtA []byte) error { +func (m *Initializer) 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: Initializer: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Initializer: 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 Rules", 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.Rules = append(m.Rules, Rule{}) + if err := m.Rules[len(m.Rules)-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 *InitializerConfiguration) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -852,15 +1143,15 @@ func (m *AdmissionHookClientConfig) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AdmissionHookClientConfig: wiretype end group for non-group") + return fmt.Errorf("proto: InitializerConfiguration: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AdmissionHookClientConfig: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: InitializerConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -884,15 +1175,15 @@ func (m *AdmissionHookClientConfig) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + 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 CABundle", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Initializers", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -902,21 +1193,21 @@ func (m *AdmissionHookClientConfig) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= (int(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.CABundle = append(m.CABundle[:0], dAtA[iNdEx:postIndex]...) - if m.CABundle == nil { - m.CABundle = []byte{} + m.Initializers = append(m.Initializers, Initializer{}) + if err := m.Initializers[len(m.Initializers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -940,7 +1231,7 @@ func (m *AdmissionHookClientConfig) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExternalAdmissionHook) Unmarshal(dAtA []byte) error { +func (m *InitializerConfigurationList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -963,17 +1254,17 @@ func (m *ExternalAdmissionHook) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExternalAdmissionHook: wiretype end group for non-group") + return fmt.Errorf("proto: InitializerConfigurationList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExternalAdmissionHook: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: InitializerConfigurationList: 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) + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -983,24 +1274,25 @@ func (m *ExternalAdmissionHook) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + 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 ClientConfig", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1024,13 +1316,64 @@ func (m *ExternalAdmissionHook) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Items = append(m.Items, InitializerConfiguration{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: + 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 *MutatingWebhookConfiguration) 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: MutatingWebhookConfiguration: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MutatingWebhookConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1054,16 +1397,15 @@ func (m *ExternalAdmissionHook) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, RuleWithOperations{}) - if err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 4: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FailurePolicy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Webhooks", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1073,21 +1415,22 @@ func (m *ExternalAdmissionHook) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - s := FailurePolicyType(dAtA[iNdEx:postIndex]) - m.FailurePolicy = &s + m.Webhooks = append(m.Webhooks, Webhook{}) + if err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -1110,7 +1453,7 @@ func (m *ExternalAdmissionHook) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExternalAdmissionHookConfiguration) Unmarshal(dAtA []byte) error { +func (m *MutatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1133,15 +1476,45 @@ func (m *ExternalAdmissionHookConfiguration) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExternalAdmissionHookConfiguration: wiretype end group for non-group") + return fmt.Errorf("proto: MutatingWebhookConfigurationList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExternalAdmissionHookConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MutatingWebhookConfigurationList: 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) + 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 { @@ -1161,19 +1534,128 @@ func (m *ExternalAdmissionHookConfiguration) Unmarshal(dAtA []byte) error { if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, MutatingWebhookConfiguration{}) + 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 *Rule) 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: Rule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIGroups", 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.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIVersions", 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 } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.APIVersions = append(m.APIVersions, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExternalAdmissionHooks", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1183,22 +1665,20 @@ func (m *ExternalAdmissionHookConfiguration) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - m.ExternalAdmissionHooks = append(m.ExternalAdmissionHooks, ExternalAdmissionHook{}) - if err := m.ExternalAdmissionHooks[len(m.ExternalAdmissionHooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -1221,7 +1701,7 @@ func (m *ExternalAdmissionHookConfiguration) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExternalAdmissionHookConfigurationList) Unmarshal(dAtA []byte) error { +func (m *RuleWithOperations) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1244,17 +1724,17 @@ func (m *ExternalAdmissionHookConfigurationList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExternalAdmissionHookConfigurationList: wiretype end group for non-group") + return fmt.Errorf("proto: RuleWithOperations: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExternalAdmissionHookConfigurationList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RuleWithOperations: 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) + return fmt.Errorf("proto: wrong wireType = %d for field Operations", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1264,25 +1744,24 @@ func (m *ExternalAdmissionHookConfigurationList) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Operations = append(m.Operations, OperationType(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1306,8 +1785,7 @@ func (m *ExternalAdmissionHookConfigurationList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, ExternalAdmissionHookConfiguration{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Rule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1332,7 +1810,7 @@ func (m *ExternalAdmissionHookConfigurationList) Unmarshal(dAtA []byte) error { } return nil } -func (m *Initializer) Unmarshal(dAtA []byte) error { +func (m *ServiceReference) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1355,15 +1833,15 @@ func (m *Initializer) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Initializer: wiretype end group for non-group") + return fmt.Errorf("proto: ServiceReference: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Initializer: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ServiceReference: 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) + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1388,13 +1866,13 @@ func (m *Initializer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.Namespace = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1404,22 +1882,50 @@ func (m *Initializer) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - m.Rules = append(m.Rules, Rule{}) - if err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Path", 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.Path = &s iNdEx = postIndex default: iNdEx = preIndex @@ -1442,7 +1948,7 @@ func (m *Initializer) Unmarshal(dAtA []byte) error { } return nil } -func (m *InitializerConfiguration) Unmarshal(dAtA []byte) error { +func (m *ValidatingWebhookConfiguration) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1465,10 +1971,10 @@ func (m *InitializerConfiguration) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: InitializerConfiguration: wiretype end group for non-group") + return fmt.Errorf("proto: ValidatingWebhookConfiguration: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: InitializerConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ValidatingWebhookConfiguration: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -1503,7 +2009,7 @@ func (m *InitializerConfiguration) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Initializers", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Webhooks", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1527,8 +2033,8 @@ func (m *InitializerConfiguration) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Initializers = append(m.Initializers, Initializer{}) - if err := m.Initializers[len(m.Initializers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Webhooks = append(m.Webhooks, Webhook{}) + if err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1553,7 +2059,7 @@ func (m *InitializerConfiguration) Unmarshal(dAtA []byte) error { } return nil } -func (m *InitializerConfigurationList) Unmarshal(dAtA []byte) error { +func (m *ValidatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1576,10 +2082,10 @@ func (m *InitializerConfigurationList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: InitializerConfigurationList: wiretype end group for non-group") + return fmt.Errorf("proto: ValidatingWebhookConfigurationList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: InitializerConfigurationList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ValidatingWebhookConfigurationList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -1638,7 +2144,7 @@ func (m *InitializerConfigurationList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, InitializerConfiguration{}) + m.Items = append(m.Items, ValidatingWebhookConfiguration{}) if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -1664,7 +2170,7 @@ func (m *InitializerConfigurationList) Unmarshal(dAtA []byte) error { } return nil } -func (m *Rule) Unmarshal(dAtA []byte) error { +func (m *Webhook) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1687,15 +2193,15 @@ func (m *Rule) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Rule: wiretype end group for non-group") + return fmt.Errorf("proto: Webhook: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Webhook: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field APIGroups", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1720,13 +2226,13 @@ func (m *Rule) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex])) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field APIVersions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClientConfig", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1736,26 +2242,27 @@ func (m *Rule) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.APIVersions = append(m.APIVersions, string(dAtA[iNdEx:postIndex])) + if err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1765,74 +2272,26 @@ func (m *Rule) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { + m.Rules = append(m.Rules, RuleWithOperations{}) + if err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); 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 *RuleWithOperations) 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: RuleWithOperations: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RuleWithOperations: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Operations", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FailurePolicy", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1857,11 +2316,12 @@ func (m *RuleWithOperations) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Operations = append(m.Operations, OperationType(dAtA[iNdEx:postIndex])) + s := FailurePolicyType(dAtA[iNdEx:postIndex]) + m.FailurePolicy = &s iNdEx = postIndex - case 2: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NamespaceSelector", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1885,7 +2345,10 @@ func (m *RuleWithOperations) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Rule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.NamespaceSelector == nil { + m.NamespaceSelector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1910,7 +2373,7 @@ func (m *RuleWithOperations) Unmarshal(dAtA []byte) error { } return nil } -func (m *ServiceReference) Unmarshal(dAtA []byte) error { +func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1933,17 +2396,17 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ServiceReference: wiretype end group for non-group") + return fmt.Errorf("proto: WebhookClientConfig: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ServiceReference: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: WebhookClientConfig: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1953,24 +2416,59 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Namespace = string(dAtA[iNdEx:postIndex]) + if m.Service == nil { + m.Service = &ServiceReference{} + } + if err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CABundle", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CABundle = append(m.CABundle[:0], dAtA[iNdEx:postIndex]...) + if m.CABundle == nil { + m.CABundle = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field URL", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1995,7 +2493,8 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.URL = &s iNdEx = postIndex default: iNdEx = preIndex @@ -2128,60 +2627,68 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 871 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcd, 0x8b, 0x23, 0x45, - 0x14, 0x4f, 0x65, 0x32, 0x6c, 0x52, 0x49, 0xd8, 0xdd, 0x42, 0x97, 0x38, 0x48, 0x77, 0xe8, 0xc3, - 0x12, 0x11, 0xbb, 0x9d, 0x51, 0x16, 0x41, 0x44, 0xa7, 0xc7, 0xaf, 0x81, 0xfd, 0x18, 0xcb, 0x45, - 0x41, 0x3c, 0x58, 0xe9, 0xbc, 0x24, 0x65, 0xfa, 0x8b, 0xaa, 0xea, 0xe0, 0x78, 0x10, 0x2f, 0xde, - 0x05, 0x2f, 0x5e, 0xbd, 0x79, 0xf1, 0xff, 0x98, 0xe3, 0x1e, 0xf7, 0x14, 0x9c, 0x16, 0xbc, 0x08, - 0xfe, 0x01, 0x73, 0x92, 0xfe, 0x4a, 0x3a, 0x9b, 0x84, 0x4d, 0x5c, 0x98, 0x5b, 0xea, 0xf7, 0xea, - 0xf7, 0xde, 0xef, 0xfd, 0xf2, 0x5e, 0x35, 0xa6, 0x93, 0x77, 0xa4, 0xc9, 0x03, 0x6b, 0x12, 0xf5, - 0x41, 0xf8, 0xa0, 0x40, 0x5a, 0x53, 0xf0, 0x07, 0x81, 0xb0, 0xf2, 0x00, 0x0b, 0xb9, 0xc5, 0x06, - 0x1e, 0x97, 0x92, 0x07, 0xbe, 0x80, 0x11, 0x97, 0x4a, 0x30, 0xc5, 0x03, 0xdf, 0x9a, 0x1e, 0x32, - 0x37, 0x1c, 0xb3, 0x43, 0x6b, 0x04, 0x3e, 0x08, 0xa6, 0x60, 0x60, 0x86, 0x22, 0x50, 0x01, 0x79, - 0x2d, 0xa3, 0x9a, 0x2c, 0xe4, 0xe6, 0x5a, 0xaa, 0x59, 0x50, 0x0f, 0xde, 0x18, 0x71, 0x35, 0x8e, - 0xfa, 0xa6, 0x13, 0x78, 0xd6, 0x28, 0x18, 0x05, 0x56, 0x9a, 0xa1, 0x1f, 0x0d, 0xd3, 0x53, 0x7a, - 0x48, 0x7f, 0x65, 0x99, 0x0f, 0xde, 0x5e, 0x88, 0xf2, 0x98, 0x33, 0xe6, 0x3e, 0x88, 0x73, 0x2b, - 0x9c, 0x8c, 0x12, 0x40, 0x5a, 0x1e, 0x28, 0x66, 0x4d, 0x57, 0xf4, 0x1c, 0x58, 0x9b, 0x58, 0x22, - 0xf2, 0x15, 0xf7, 0x60, 0x85, 0x70, 0xef, 0x79, 0x04, 0xe9, 0x8c, 0xc1, 0x63, 0x2b, 0xbc, 0xb7, - 0x36, 0xf1, 0x22, 0xc5, 0x5d, 0x8b, 0xfb, 0x4a, 0x2a, 0xf1, 0x2c, 0xc9, 0xf8, 0x03, 0xe1, 0x57, - 0x8e, 0x0b, 0x97, 0x3e, 0x0d, 0x82, 0xc9, 0x89, 0xcb, 0xc1, 0x57, 0x27, 0x81, 0x3f, 0xe4, 0x23, - 0x32, 0xc4, 0x37, 0x24, 0x88, 0x29, 0x77, 0xa0, 0x83, 0xba, 0xa8, 0xd7, 0x3c, 0x7a, 0xd7, 0xdc, - 0xda, 0x5d, 0xf3, 0xf3, 0x8c, 0x49, 0x61, 0x08, 0x02, 0x7c, 0x07, 0xec, 0x9b, 0x17, 0x33, 0xbd, - 0x12, 0xcf, 0xf4, 0x1b, 0x45, 0xa4, 0x48, 0x4e, 0x7a, 0xb8, 0xee, 0x30, 0x3b, 0xf2, 0x07, 0x2e, - 0x74, 0xaa, 0x5d, 0xd4, 0x6b, 0xd9, 0xad, 0x78, 0xa6, 0xd7, 0x4f, 0x8e, 0x33, 0x8c, 0xce, 0xa3, - 0xc6, 0x3f, 0x55, 0xfc, 0xf2, 0x47, 0xdf, 0x29, 0x10, 0x3e, 0x73, 0x97, 0x74, 0x93, 0x2e, 0xae, - 0xf9, 0xcc, 0xcb, 0x84, 0x36, 0xec, 0x56, 0x5e, 0xab, 0xf6, 0x90, 0x79, 0x40, 0xd3, 0x08, 0xf9, - 0x01, 0xb7, 0x9c, 0x52, 0x77, 0x69, 0xa5, 0xe6, 0xd1, 0x87, 0x3b, 0xb4, 0xb4, 0xd1, 0x29, 0xfb, - 0xa5, 0xbc, 0x5e, 0xab, 0x8c, 0xd2, 0xa5, 0x7a, 0xa4, 0x8f, 0xf7, 0x45, 0xe4, 0x82, 0xec, 0xec, - 0x75, 0xf7, 0x7a, 0xcd, 0xa3, 0xf7, 0x76, 0x28, 0x4c, 0x23, 0x17, 0xbe, 0xe4, 0x6a, 0xfc, 0x28, - 0x84, 0x2c, 0x24, 0xed, 0x76, 0x5e, 0x71, 0x3f, 0x89, 0x49, 0x9a, 0xa5, 0x26, 0xf7, 0x71, 0x7b, - 0xc8, 0xb8, 0x1b, 0x09, 0x38, 0x0b, 0x5c, 0xee, 0x9c, 0x77, 0x6a, 0xa9, 0x1d, 0x77, 0xe3, 0x99, - 0xde, 0xfe, 0xb8, 0x1c, 0xb8, 0x9a, 0xe9, 0xb7, 0x97, 0x80, 0xc7, 0xe7, 0x21, 0xd0, 0x65, 0xb2, - 0xf1, 0x5b, 0x15, 0x1b, 0x6b, 0xdd, 0xce, 0x3a, 0x8a, 0x32, 0x2d, 0xe4, 0x1b, 0x5c, 0x4f, 0xa6, - 0x7f, 0xc0, 0x14, 0xcb, 0xe7, 0xe4, 0xcd, 0x52, 0x6f, 0xf3, 0x61, 0x34, 0xc3, 0xc9, 0x28, 0x01, - 0xa4, 0x99, 0xdc, 0x36, 0xa7, 0x87, 0xe6, 0xa3, 0xfe, 0xb7, 0xe0, 0xa8, 0x07, 0xa0, 0x98, 0x4d, - 0xf2, 0x76, 0xf0, 0x02, 0xa3, 0xf3, 0xac, 0xe4, 0x57, 0x84, 0xef, 0xc0, 0x3a, 0x21, 0xb2, 0x53, - 0x4d, 0xcd, 0xfc, 0x60, 0x07, 0x33, 0xd7, 0x76, 0x64, 0x6b, 0xb9, 0x80, 0x3b, 0x6b, 0xc3, 0x92, - 0x6e, 0xa8, 0x6f, 0x5c, 0x21, 0x7c, 0xf7, 0xf9, 0x1e, 0xdd, 0xe7, 0x52, 0x91, 0xaf, 0x57, 0x7c, - 0x32, 0xb7, 0xf3, 0x29, 0x61, 0xa7, 0x2e, 0xdd, 0xca, 0x45, 0xd6, 0x0b, 0xa4, 0xe4, 0x91, 0xc0, - 0xfb, 0x5c, 0x81, 0x57, 0x38, 0xf2, 0xe0, 0x45, 0x1d, 0x59, 0xd2, 0xbf, 0x18, 0xb7, 0xd3, 0xa4, - 0x06, 0xcd, 0x4a, 0x19, 0x3f, 0x21, 0xdc, 0x3c, 0xf5, 0xb9, 0xe2, 0xcc, 0xe5, 0xdf, 0x83, 0xd8, - 0x62, 0x09, 0x1f, 0x17, 0x4b, 0x90, 0xa9, 0xb4, 0x76, 0x5c, 0x82, 0xf5, 0x63, 0x6f, 0xfc, 0x8b, - 0x70, 0xa7, 0xa4, 0xe3, 0xba, 0xc7, 0x33, 0xc4, 0x2d, 0xbe, 0xa8, 0x5e, 0xf4, 0x76, 0x6f, 0x87, - 0xde, 0x4a, 0xe2, 0x17, 0x6f, 0x49, 0x09, 0x94, 0x74, 0xa9, 0x82, 0xf1, 0x37, 0xc2, 0xaf, 0x6e, - 0x6a, 0xf8, 0x1a, 0x66, 0x6d, 0xbc, 0x3c, 0x6b, 0x27, 0xff, 0xaf, 0xd3, 0x6d, 0x26, 0xec, 0x17, - 0x84, 0x6b, 0xc9, 0x5f, 0x4d, 0x5e, 0xc7, 0x0d, 0x16, 0xf2, 0x4f, 0x44, 0x10, 0x85, 0xb2, 0x83, - 0xba, 0x7b, 0xbd, 0x86, 0xdd, 0x8e, 0x67, 0x7a, 0xe3, 0xf8, 0xec, 0x34, 0x03, 0xe9, 0x22, 0x4e, - 0x0e, 0x71, 0x93, 0x85, 0xfc, 0x0b, 0x10, 0x89, 0x8e, 0x4c, 0x65, 0xc3, 0xbe, 0x19, 0xcf, 0xf4, - 0xe6, 0xf1, 0xd9, 0x69, 0x01, 0xd3, 0xf2, 0x9d, 0x24, 0xbf, 0x00, 0x19, 0x44, 0xc2, 0xc9, 0x5f, - 0xe8, 0x3c, 0x3f, 0x2d, 0x40, 0xba, 0x88, 0x1b, 0xbf, 0x23, 0x4c, 0x56, 0xdf, 0x64, 0xf2, 0x3e, - 0xc6, 0xc1, 0xfc, 0x94, 0x8b, 0xd4, 0xd3, 0xa9, 0x99, 0xa3, 0x57, 0x33, 0xbd, 0x3d, 0x3f, 0xa5, - 0x6f, 0x6e, 0x89, 0x42, 0x3e, 0xc3, 0xb5, 0x64, 0xa0, 0xf3, 0x4f, 0xd3, 0xce, 0xcb, 0x31, 0x5f, - 0xb8, 0xe4, 0x44, 0xd3, 0x54, 0x06, 0xe0, 0x5b, 0xcf, 0x7e, 0x89, 0x89, 0x85, 0x1b, 0xc9, 0x32, - 0xca, 0x90, 0x39, 0xc5, 0xae, 0xde, 0xce, 0xa9, 0x8d, 0x87, 0x45, 0x80, 0x2e, 0xee, 0xcc, 0xf7, - 0xba, 0xba, 0x69, 0xaf, 0x6d, 0xf3, 0xe2, 0x52, 0xab, 0x3c, 0xb9, 0xd4, 0x2a, 0x4f, 0x2f, 0xb5, - 0xca, 0x8f, 0xb1, 0x86, 0x2e, 0x62, 0x0d, 0x3d, 0x89, 0x35, 0xf4, 0x34, 0xd6, 0xd0, 0x9f, 0xb1, - 0x86, 0x7e, 0xfe, 0x4b, 0xab, 0x7c, 0x55, 0x2f, 0xf4, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0xe7, - 0xb5, 0x5f, 0xd5, 0xfb, 0x09, 0x00, 0x00, + // 1001 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x56, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0xae, 0x9b, 0x54, 0x4d, 0x26, 0xa9, 0xd8, 0x1a, 0x90, 0x42, 0x55, 0xd9, 0x91, 0x0f, 0xa8, + 0x08, 0xad, 0x4d, 0xba, 0x68, 0x85, 0x84, 0x00, 0xd5, 0x95, 0x58, 0x45, 0x6a, 0xbb, 0x65, 0xb6, + 0xec, 0x4a, 0x88, 0x03, 0x13, 0xe7, 0x35, 0x19, 0xe2, 0xd8, 0xd6, 0xcc, 0x38, 0xb4, 0x9c, 0x90, + 0x10, 0x77, 0x24, 0xfe, 0x09, 0xfe, 0x0a, 0xce, 0x3d, 0x2e, 0x17, 0xd4, 0x93, 0x45, 0x8d, 0xc4, + 0x91, 0x03, 0xc7, 0x3d, 0xa1, 0xf1, 0x8f, 0xd8, 0x69, 0x9a, 0xd2, 0x70, 0xe8, 0x81, 0x5b, 0xe6, + 0x7b, 0xf3, 0x7d, 0xef, 0x7d, 0x33, 0xf3, 0x5e, 0x8c, 0xf0, 0xe8, 0x03, 0x6e, 0x52, 0xdf, 0x1a, + 0x85, 0x3d, 0x60, 0x1e, 0x08, 0xe0, 0xd6, 0x04, 0xbc, 0xbe, 0xcf, 0xac, 0x2c, 0x40, 0x02, 0x6a, + 0x91, 0xfe, 0x98, 0x72, 0x4e, 0x7d, 0x8f, 0xc1, 0x80, 0x72, 0xc1, 0x88, 0xa0, 0xbe, 0x67, 0x4d, + 0x3a, 0xc4, 0x0d, 0x86, 0xa4, 0x63, 0x0d, 0xc0, 0x03, 0x46, 0x04, 0xf4, 0xcd, 0x80, 0xf9, 0xc2, + 0x57, 0xdf, 0x49, 0xa9, 0x26, 0x09, 0xa8, 0x79, 0x23, 0xd5, 0xcc, 0xa9, 0x5b, 0x0f, 0x07, 0x54, + 0x0c, 0xc3, 0x9e, 0xe9, 0xf8, 0x63, 0x6b, 0xe0, 0x0f, 0x7c, 0x2b, 0x51, 0xe8, 0x85, 0xa7, 0xc9, + 0x2a, 0x59, 0x24, 0xbf, 0x52, 0xe5, 0x2d, 0xa3, 0x54, 0x94, 0xe3, 0x33, 0xb0, 0x26, 0x73, 0xd9, + 0xb7, 0x0e, 0x8b, 0x3d, 0x70, 0x26, 0xc0, 0x93, 0xc9, 0xf9, 0x43, 0x12, 0x50, 0x0e, 0x6c, 0x02, + 0xcc, 0x0a, 0x46, 0x03, 0x19, 0xe3, 0xb3, 0x1b, 0xac, 0x49, 0xa7, 0x07, 0x62, 0xde, 0xcc, 0xd6, + 0xfb, 0x85, 0xdc, 0x98, 0x38, 0x43, 0xea, 0x01, 0x3b, 0x2f, 0x34, 0xc6, 0x20, 0xc8, 0x4d, 0x45, + 0x58, 0x8b, 0x58, 0x2c, 0xf4, 0x04, 0x1d, 0xc3, 0x1c, 0xe1, 0xf1, 0xbf, 0x11, 0xb8, 0x33, 0x84, + 0x31, 0x99, 0xe3, 0x3d, 0x5a, 0xc4, 0x0b, 0x05, 0x75, 0x2d, 0xea, 0x09, 0x2e, 0xd8, 0x75, 0x92, + 0xf1, 0x83, 0x82, 0x1a, 0x5d, 0x8f, 0x0a, 0x4a, 0x5c, 0xfa, 0x2d, 0x30, 0xb5, 0x8d, 0xaa, 0x1e, + 0x19, 0x43, 0x4b, 0x69, 0x2b, 0x3b, 0x75, 0xbb, 0x79, 0x11, 0xe9, 0x2b, 0x71, 0xa4, 0x57, 0x8f, + 0xc8, 0x18, 0x70, 0x12, 0x51, 0x4f, 0xd0, 0x1a, 0x0b, 0x5d, 0xe0, 0xad, 0xd5, 0x76, 0x65, 0xa7, + 0xb1, 0x6b, 0x99, 0x77, 0xbe, 0x62, 0x13, 0x87, 0x2e, 0xd8, 0x1b, 0x99, 0xe6, 0x9a, 0x5c, 0x71, + 0x9c, 0x8a, 0x19, 0x7f, 0x29, 0xa8, 0x55, 0xaa, 0x63, 0xdf, 0xf7, 0x4e, 0xe9, 0x20, 0x4c, 0x05, + 0xd4, 0xaf, 0x50, 0x4d, 0x9e, 0x6e, 0x9f, 0x08, 0x92, 0x14, 0xd6, 0xd8, 0x7d, 0xaf, 0x94, 0x75, + 0x6a, 0xd6, 0x0c, 0x46, 0x03, 0x09, 0x70, 0x53, 0xee, 0x36, 0x27, 0x1d, 0xf3, 0x69, 0xef, 0x6b, + 0x70, 0xc4, 0x21, 0x08, 0x62, 0xab, 0x59, 0x5a, 0x54, 0x60, 0x78, 0xaa, 0xaa, 0x06, 0xa8, 0x49, + 0x8b, 0xec, 0xb9, 0xb7, 0xc7, 0x4b, 0x78, 0x2b, 0x15, 0x6f, 0xbf, 0x91, 0xe5, 0x6a, 0x96, 0x40, + 0x8e, 0x67, 0x32, 0x18, 0x7f, 0x2a, 0x68, 0x7b, 0x91, 0xe1, 0x03, 0xca, 0x85, 0xfa, 0xe5, 0x9c, + 0x69, 0xf3, 0x6e, 0xa6, 0x25, 0x3b, 0xb1, 0xfc, 0x20, 0x2b, 0xa3, 0x96, 0x23, 0x25, 0xc3, 0x43, + 0xb4, 0x46, 0x05, 0x8c, 0x73, 0xa7, 0xfb, 0xff, 0xcd, 0xe9, 0x4c, 0xd5, 0xc5, 0xcd, 0x76, 0xa5, + 0x32, 0x4e, 0x13, 0x18, 0xbf, 0x29, 0x68, 0xfb, 0x30, 0x14, 0x44, 0x50, 0x6f, 0xf0, 0x02, 0x7a, + 0x43, 0xdf, 0x1f, 0xdd, 0xf7, 0xed, 0x9e, 0xa0, 0x5a, 0x96, 0x39, 0xf7, 0xbb, 0xbb, 0x84, 0xdf, + 0x8c, 0x6a, 0x57, 0x65, 0x0e, 0x5c, 0xfb, 0x26, 0x53, 0x92, 0x4f, 0xb6, 0x7d, 0x9b, 0xb1, 0x7b, + 0xb8, 0x45, 0x77, 0xf6, 0x16, 0x9f, 0x2c, 0xe1, 0xea, 0xb6, 0xca, 0x17, 0xdc, 0xe4, 0x4f, 0x0a, + 0xaa, 0xca, 0xa6, 0x55, 0xdf, 0x45, 0x75, 0x12, 0xd0, 0x27, 0xcc, 0x0f, 0x03, 0xde, 0x52, 0xda, + 0x95, 0x9d, 0xba, 0xbd, 0x11, 0x47, 0x7a, 0x7d, 0xef, 0xb8, 0x9b, 0x82, 0xb8, 0x88, 0xab, 0x1d, + 0xd4, 0x20, 0x01, 0x7d, 0x0e, 0x2c, 0x19, 0xae, 0x49, 0xa5, 0x75, 0xfb, 0xb5, 0x38, 0xd2, 0x1b, + 0x7b, 0xc7, 0xdd, 0x1c, 0xc6, 0xe5, 0x3d, 0x52, 0x9f, 0x01, 0xf7, 0x43, 0xe6, 0x00, 0x6f, 0x55, + 0x0a, 0x7d, 0x9c, 0x83, 0xb8, 0x88, 0x1b, 0x3f, 0x2b, 0x48, 0x95, 0x55, 0xbd, 0xa0, 0x62, 0xf8, + 0x34, 0x80, 0xd4, 0x01, 0x57, 0x3f, 0x41, 0xc8, 0x9f, 0xae, 0xb2, 0x22, 0xf5, 0xe4, 0x85, 0x4c, + 0xd1, 0x57, 0x91, 0xbe, 0x31, 0x5d, 0x9d, 0x9c, 0x07, 0x80, 0x4b, 0x14, 0xf5, 0x33, 0x54, 0x95, + 0xa3, 0xa9, 0xb5, 0x9a, 0xdc, 0xda, 0xd2, 0x63, 0x6e, 0x3a, 0x3a, 0xe5, 0x0a, 0x27, 0x52, 0xc6, + 0xf7, 0x0a, 0x7a, 0xf0, 0x0c, 0xd8, 0x84, 0x3a, 0x80, 0xe1, 0x14, 0x18, 0x78, 0x0e, 0xa8, 0x16, + 0xaa, 0xcb, 0xb9, 0xca, 0x03, 0xe2, 0xe4, 0x63, 0x77, 0x33, 0xe3, 0xd6, 0x8f, 0xf2, 0x00, 0x2e, + 0xf6, 0x4c, 0x47, 0xf4, 0xea, 0xc2, 0x11, 0xbd, 0x8d, 0xaa, 0x01, 0x11, 0xc3, 0x56, 0x25, 0xd9, + 0x51, 0x93, 0xd1, 0x63, 0x22, 0x86, 0x38, 0x41, 0x8d, 0x4b, 0x05, 0x69, 0xcf, 0x89, 0x4b, 0xfb, + 0xff, 0xbf, 0x96, 0xfc, 0x5b, 0x41, 0xc6, 0xed, 0xd6, 0xee, 0xa1, 0x29, 0xbd, 0xd9, 0xa6, 0xec, + 0x2e, 0xe1, 0xeb, 0xf6, 0xda, 0x17, 0xb4, 0xe5, 0xaf, 0x15, 0xb4, 0x9e, 0x6d, 0xbf, 0xc3, 0xdf, + 0xf7, 0x19, 0x6a, 0x3a, 0x2e, 0x05, 0x4f, 0xa4, 0xd2, 0xd9, 0xf3, 0xfe, 0x78, 0xf9, 0xc3, 0xdf, + 0x2f, 0xa9, 0x14, 0xff, 0x78, 0x65, 0x14, 0xcf, 0x64, 0x52, 0x7b, 0xf9, 0x87, 0x43, 0x25, 0x39, + 0x97, 0x8f, 0x96, 0xec, 0xa8, 0xd9, 0xfe, 0xbe, 0xf9, 0x33, 0x42, 0x3d, 0x40, 0x1b, 0xa7, 0x84, + 0xba, 0x21, 0x83, 0x63, 0xdf, 0xa5, 0xce, 0x79, 0xab, 0x9a, 0x1c, 0xc4, 0xdb, 0x71, 0xa4, 0x6f, + 0x7c, 0x5a, 0x0e, 0xbc, 0x8a, 0xf4, 0xcd, 0x19, 0x20, 0xe9, 0xff, 0x59, 0xb2, 0x7a, 0x86, 0x36, + 0xa7, 0x6d, 0xf7, 0x0c, 0x5c, 0x70, 0x84, 0xcf, 0x5a, 0x6b, 0xc9, 0x81, 0x3d, 0xba, 0xe3, 0x83, + 0x21, 0x3d, 0x70, 0x73, 0xaa, 0xfd, 0x66, 0x1c, 0xe9, 0x9b, 0x47, 0xd7, 0x15, 0xf1, 0x7c, 0x12, + 0xe3, 0x17, 0x05, 0xbd, 0x7e, 0xc3, 0x39, 0xab, 0x3d, 0xb4, 0xce, 0xd3, 0x01, 0x92, 0x3d, 0xdc, + 0x0f, 0x97, 0x38, 0xc5, 0xeb, 0xa3, 0xc7, 0x6e, 0xc4, 0x91, 0xbe, 0x9e, 0xa3, 0xb9, 0xb0, 0xba, + 0x83, 0x6a, 0x0e, 0xb1, 0x43, 0xaf, 0x9f, 0x0d, 0xbf, 0xa6, 0xdd, 0x94, 0x2f, 0x7d, 0x7f, 0x2f, + 0xc5, 0xf0, 0x34, 0xaa, 0xbe, 0x85, 0x2a, 0x21, 0x73, 0xb3, 0x31, 0xb3, 0x1e, 0x47, 0x7a, 0xe5, + 0x73, 0x7c, 0x80, 0x25, 0x66, 0x9b, 0x17, 0x57, 0xda, 0xca, 0xcb, 0x2b, 0x6d, 0xe5, 0xf2, 0x4a, + 0x5b, 0xf9, 0x2e, 0xd6, 0x94, 0x8b, 0x58, 0x53, 0x5e, 0xc6, 0x9a, 0x72, 0x19, 0x6b, 0xca, 0xef, + 0xb1, 0xa6, 0xfc, 0xf8, 0x87, 0xb6, 0xf2, 0x45, 0x2d, 0xaf, 0xed, 0x9f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xca, 0x86, 0x75, 0x7d, 0x7d, 0x0c, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/generated.proto index 5b0d4f006..d4b7aa9ae 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/generated.proto @@ -21,6 +21,8 @@ syntax = 'proto2'; package k8s.io.api.admissionregistration.v1alpha1; +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/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"; @@ -29,69 +31,6 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; -// AdmissionHookClientConfig contains the information to make a TLS -// connection with the webhook -message AdmissionHookClientConfig { - // Service is a reference to the service for this webhook. If there is only - // one port open for the service, that port will be used. If there are multiple - // ports open, port 443 will be used if it is open, otherwise it is an error. - // Required - optional ServiceReference service = 1; - - // CABundle is a PEM encoded CA bundle which will be used to validate webhook's server certificate. - // Required - optional bytes caBundle = 2; -} - -// ExternalAdmissionHook describes an external admission webhook and the -// resources and operations it applies to. -message ExternalAdmissionHook { - // The name of the external admission webhook. - // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where - // "imagepolicy" is the name of the webhook, and kubernetes.io is the name - // of the organization. - // Required. - optional string name = 1; - - // ClientConfig defines how to communicate with the hook. - // Required - optional AdmissionHookClientConfig clientConfig = 2; - - // Rules describes what operations on what resources/subresources the webhook cares about. - // The webhook cares about an operation if it matches _any_ Rule. - repeated RuleWithOperations rules = 3; - - // FailurePolicy defines how unrecognized errors from the admission endpoint are handled - - // allowed values are Ignore or Fail. Defaults to Ignore. - // +optional - optional string failurePolicy = 4; -} - -// ExternalAdmissionHookConfiguration describes the configuration of initializers. -message ExternalAdmissionHookConfiguration { - // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // ExternalAdmissionHooks is a list of external admission webhooks and the - // affected resources and operations. - // +optional - // +patchMergeKey=name - // +patchStrategy=merge - repeated ExternalAdmissionHook externalAdmissionHooks = 2; -} - -// ExternalAdmissionHookConfigurationList is a list of ExternalAdmissionHookConfiguration. -message ExternalAdmissionHookConfigurationList { - // Standard list metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // List of ExternalAdmissionHookConfiguration. - repeated ExternalAdmissionHookConfiguration items = 2; -} - // Initializer describes the name and the failure policy of an initializer, and // what resources it applies to. message Initializer { @@ -138,6 +77,30 @@ message InitializerConfigurationList { repeated InitializerConfiguration items = 2; } +// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. +message MutatingWebhookConfiguration { + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Webhooks is a list of webhooks and the affected resources and operations. + // +optional + // +patchMergeKey=name + // +patchStrategy=merge + repeated Webhook Webhooks = 2; +} + +// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration. +message MutatingWebhookConfigurationList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // List of MutatingWebhookConfiguration. + repeated MutatingWebhookConfiguration items = 2; +} + // Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended // to make sure that all the tuple expansions are valid. message Rule { @@ -185,12 +148,160 @@ message RuleWithOperations { // ServiceReference holds a reference to Service.legacy.k8s.io message ServiceReference { - // Namespace is the namespace of the service + // `namespace` is the namespace of the service. // Required optional string namespace = 1; - // Name is the name of the service + // `name` is the name of the service. // Required optional string name = 2; + + // `path` is an optional URL path which will be sent in any request to + // this service. + // +optional + optional string path = 3; +} + +// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. +message ValidatingWebhookConfiguration { + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Webhooks is a list of webhooks and the affected resources and operations. + // +optional + // +patchMergeKey=name + // +patchStrategy=merge + repeated Webhook Webhooks = 2; +} + +// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration. +message ValidatingWebhookConfigurationList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // List of ValidatingWebhookConfiguration. + repeated ValidatingWebhookConfiguration items = 2; +} + +// Webhook describes an admission webhook and the resources and operations it applies to. +message Webhook { + // The name of the admission webhook. + // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where + // "imagepolicy" is the name of the webhook, and kubernetes.io is the name + // of the organization. + // Required. + optional string name = 1; + + // ClientConfig defines how to communicate with the hook. + // Required + optional WebhookClientConfig clientConfig = 2; + + // Rules describes what operations on what resources/subresources the webhook cares about. + // The webhook cares about an operation if it matches _any_ Rule. + repeated RuleWithOperations rules = 3; + + // FailurePolicy defines how unrecognized errors from the admission endpoint are handled - + // allowed values are Ignore or Fail. Defaults to Ignore. + // +optional + optional string failurePolicy = 4; + + // NamespaceSelector decides whether to run the webhook on an object based + // on whether the namespace for that object matches the selector. If the + // object itself is a namespace, the matching is performed on + // object.metadata.labels. If the object is other cluster scoped resource, + // it is not subjected to the webhook. + // + // For example, to run the webhook on any objects whose namespace is not + // associated with "runlevel" of "0" or "1"; you will set the selector as + // follows: + // "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the webhook on any objects whose + // namespace is associated with the "environment" of "prod" or "staging"; + // you will set the selector as follows: + // "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See + // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + // for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5; +} + +// WebhookClientConfig contains the information to make a TLS +// connection with the webhook +message WebhookClientConfig { + // `url` gives the location of the webhook, in standard URL form + // (`[scheme://]host:port/path`). Exactly one of `url` or `service` + // must be specified. + // + // The `host` should not refer to a service running in the cluster; use + // the `service` field instead. The host might be resolved via external + // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve + // in-cluster DNS as that would be a layering violation). `host` may + // also be an IP address. + // + // Please note that using `localhost` or `127.0.0.1` as a `host` is + // risky unless you take great care to run this webhook on all hosts + // which run an apiserver which might need to make calls to this + // webhook. Such installs are likely to be non-portable, i.e., not easy + // to turn up in a new cluster. + // + // The scheme must be "https"; the URL must begin with "https://". + // + // A path is optional, and if present may be any string permissible in + // a URL. You may use the path to pass an arbitrary string to the + // webhook, for example, a cluster identifier. + // + // Attempting to use a user or basic auth e.g. "user:password@" is not + // allowed. Fragments ("#...") and query parameters ("?...") are not + // allowed, either. + // + // +optional + optional string url = 3; + + // `service` is a reference to the service for this webhook. Either + // `service` or `url` must be specified. + // + // If the webhook is running within the cluster, then you should use `service`. + // + // If there is only one port open for the service, that port will be + // used. If there are multiple ports open, port 443 will be used if it + // is open, otherwise it is an error. + // + // +optional + optional ServiceReference service = 1; + + // `caBundle` is a PEM encoded CA bundle which will be used to validate + // the webhook's server certificate. + // Required. + optional bytes caBundle = 2; } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/register.go index e178cf743..1dd422483 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/register.go @@ -45,8 +45,10 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &InitializerConfiguration{}, &InitializerConfigurationList{}, - &ExternalAdmissionHookConfiguration{}, - &ExternalAdmissionHookConfigurationList{}, + &ValidatingWebhookConfiguration{}, + &ValidatingWebhookConfigurationList{}, + &MutatingWebhookConfiguration{}, + &MutatingWebhookConfigurationList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/types.go index d4827e59d..43770b302 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/types.go @@ -108,7 +108,7 @@ type Rule struct { type FailurePolicyType string const ( - // Ignore means the initilizer is removed from the initializers list of an + // Ignore means the initializer is removed from the initializers list of an // object if the initializer is timed out. Ignore FailurePolicyType = "Ignore" // For 1.7, only "Ignore" is allowed. "Fail" will be allowed when the @@ -120,37 +120,65 @@ const ( // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// ExternalAdmissionHookConfiguration describes the configuration of initializers. -type ExternalAdmissionHookConfiguration struct { +// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. +type ValidatingWebhookConfiguration struct { metav1.TypeMeta `json:",inline"` // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. // +optional metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // ExternalAdmissionHooks is a list of external admission webhooks and the - // affected resources and operations. + // Webhooks is a list of webhooks and the affected resources and operations. // +optional // +patchMergeKey=name // +patchStrategy=merge - ExternalAdmissionHooks []ExternalAdmissionHook `json:"externalAdmissionHooks,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=externalAdmissionHooks"` + Webhooks []Webhook `json:"webhooks,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=Webhooks"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// ExternalAdmissionHookConfigurationList is a list of ExternalAdmissionHookConfiguration. -type ExternalAdmissionHookConfigurationList struct { +// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration. +type ValidatingWebhookConfigurationList struct { metav1.TypeMeta `json:",inline"` // Standard list metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds // +optional metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // List of ExternalAdmissionHookConfiguration. - Items []ExternalAdmissionHookConfiguration `json:"items" protobuf:"bytes,2,rep,name=items"` + // List of ValidatingWebhookConfiguration. + Items []ValidatingWebhookConfiguration `json:"items" protobuf:"bytes,2,rep,name=items"` } -// ExternalAdmissionHook describes an external admission webhook and the -// resources and operations it applies to. -type ExternalAdmissionHook struct { - // The name of the external admission webhook. +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. +type MutatingWebhookConfiguration struct { + metav1.TypeMeta `json:",inline"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + // Webhooks is a list of webhooks and the affected resources and operations. + // +optional + // +patchMergeKey=name + // +patchStrategy=merge + Webhooks []Webhook `json:"webhooks,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=Webhooks"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration. +type MutatingWebhookConfigurationList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + // List of MutatingWebhookConfiguration. + Items []MutatingWebhookConfiguration `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// Webhook describes an admission webhook and the resources and operations it applies to. +type Webhook struct { + // The name of the admission webhook. // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where // "imagepolicy" is the name of the webhook, and kubernetes.io is the name // of the organization. @@ -159,7 +187,7 @@ type ExternalAdmissionHook struct { // ClientConfig defines how to communicate with the hook. // Required - ClientConfig AdmissionHookClientConfig `json:"clientConfig" protobuf:"bytes,2,opt,name=clientConfig"` + ClientConfig WebhookClientConfig `json:"clientConfig" protobuf:"bytes,2,opt,name=clientConfig"` // Rules describes what operations on what resources/subresources the webhook cares about. // The webhook cares about an operation if it matches _any_ Rule. @@ -169,6 +197,52 @@ type ExternalAdmissionHook struct { // allowed values are Ignore or Fail. Defaults to Ignore. // +optional FailurePolicy *FailurePolicyType `json:"failurePolicy,omitempty" protobuf:"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType"` + + // NamespaceSelector decides whether to run the webhook on an object based + // on whether the namespace for that object matches the selector. If the + // object itself is a namespace, the matching is performed on + // object.metadata.labels. If the object is other cluster scoped resource, + // it is not subjected to the webhook. + // + // For example, to run the webhook on any objects whose namespace is not + // associated with "runlevel" of "0" or "1"; you will set the selector as + // follows: + // "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the webhook on any objects whose + // namespace is associated with the "environment" of "prod" or "staging"; + // you will set the selector as follows: + // "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See + // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + // for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + // +optional + NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty" protobuf:"bytes,5,opt,name=namespaceSelector"` } // RuleWithOperations is a tuple of Operations and Resources. It is recommended to make @@ -195,25 +269,67 @@ const ( Connect OperationType = "CONNECT" ) -// AdmissionHookClientConfig contains the information to make a TLS +// WebhookClientConfig contains the information to make a TLS // connection with the webhook -type AdmissionHookClientConfig struct { - // Service is a reference to the service for this webhook. If there is only - // one port open for the service, that port will be used. If there are multiple - // ports open, port 443 will be used if it is open, otherwise it is an error. - // Required - Service ServiceReference `json:"service" protobuf:"bytes,1,opt,name=service"` - // CABundle is a PEM encoded CA bundle which will be used to validate webhook's server certificate. - // Required +type WebhookClientConfig struct { + // `url` gives the location of the webhook, in standard URL form + // (`[scheme://]host:port/path`). Exactly one of `url` or `service` + // must be specified. + // + // The `host` should not refer to a service running in the cluster; use + // the `service` field instead. The host might be resolved via external + // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve + // in-cluster DNS as that would be a layering violation). `host` may + // also be an IP address. + // + // Please note that using `localhost` or `127.0.0.1` as a `host` is + // risky unless you take great care to run this webhook on all hosts + // which run an apiserver which might need to make calls to this + // webhook. Such installs are likely to be non-portable, i.e., not easy + // to turn up in a new cluster. + // + // The scheme must be "https"; the URL must begin with "https://". + // + // A path is optional, and if present may be any string permissible in + // a URL. You may use the path to pass an arbitrary string to the + // webhook, for example, a cluster identifier. + // + // Attempting to use a user or basic auth e.g. "user:password@" is not + // allowed. Fragments ("#...") and query parameters ("?...") are not + // allowed, either. + // + // +optional + URL *string `json:"url,omitempty" protobuf:"bytes,3,opt,name=url"` + + // `service` is a reference to the service for this webhook. Either + // `service` or `url` must be specified. + // + // If the webhook is running within the cluster, then you should use `service`. + // + // If there is only one port open for the service, that port will be + // used. If there are multiple ports open, port 443 will be used if it + // is open, otherwise it is an error. + // + // +optional + Service *ServiceReference `json:"service" protobuf:"bytes,1,opt,name=service"` + + // `caBundle` is a PEM encoded CA bundle which will be used to validate + // the webhook's server certificate. + // Required. CABundle []byte `json:"caBundle" protobuf:"bytes,2,opt,name=caBundle"` } // ServiceReference holds a reference to Service.legacy.k8s.io type ServiceReference struct { - // Namespace is the namespace of the service + // `namespace` is the namespace of the service. // Required Namespace string `json:"namespace" protobuf:"bytes,1,opt,name=namespace"` - // Name is the name of the service + // `name` is the name of the service. // Required Name string `json:"name" protobuf:"bytes,2,opt,name=name"` + + // `path` is an optional URL path which will be sent in any request to + // this service. + // +optional + Path *string `json:"path,omitempty" protobuf:"bytes,3,opt,name=path"` } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go index 0b30ecc80..6f8defa99 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go @@ -27,48 +27,6 @@ package v1alpha1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE -var map_AdmissionHookClientConfig = map[string]string{ - "": "AdmissionHookClientConfig contains the information to make a TLS connection with the webhook", - "service": "Service is a reference to the service for this webhook. If there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error. Required", - "caBundle": "CABundle is a PEM encoded CA bundle which will be used to validate webhook's server certificate. Required", -} - -func (AdmissionHookClientConfig) SwaggerDoc() map[string]string { - return map_AdmissionHookClientConfig -} - -var map_ExternalAdmissionHook = map[string]string{ - "": "ExternalAdmissionHook describes an external admission webhook and the resources and operations it applies to.", - "name": "The name of the external admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "clientConfig": "ClientConfig defines how to communicate with the hook. Required", - "rules": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule.", - "failurePolicy": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", -} - -func (ExternalAdmissionHook) SwaggerDoc() map[string]string { - return map_ExternalAdmissionHook -} - -var map_ExternalAdmissionHookConfiguration = map[string]string{ - "": "ExternalAdmissionHookConfiguration describes the configuration of initializers.", - "metadata": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "externalAdmissionHooks": "ExternalAdmissionHooks is a list of external admission webhooks and the affected resources and operations.", -} - -func (ExternalAdmissionHookConfiguration) SwaggerDoc() map[string]string { - return map_ExternalAdmissionHookConfiguration -} - -var map_ExternalAdmissionHookConfigurationList = map[string]string{ - "": "ExternalAdmissionHookConfigurationList is a list of ExternalAdmissionHookConfiguration.", - "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "items": "List of ExternalAdmissionHookConfiguration.", -} - -func (ExternalAdmissionHookConfigurationList) SwaggerDoc() map[string]string { - return map_ExternalAdmissionHookConfigurationList -} - var map_Initializer = map[string]string{ "": "Initializer describes the name and the failure policy of an initializer, and what resources it applies to.", "name": "Name is the identifier of the initializer. It will be added to the object that needs to be initialized. Name should be fully qualified, e.g., alwayspullimages.kubernetes.io, where \"alwayspullimages\" is the name of the webhook, and kubernetes.io is the name of the organization. Required", @@ -99,6 +57,26 @@ func (InitializerConfigurationList) SwaggerDoc() map[string]string { return map_InitializerConfigurationList } +var map_MutatingWebhookConfiguration = map[string]string{ + "": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", + "metadata": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", + "webhooks": "Webhooks is a list of webhooks and the affected resources and operations.", +} + +func (MutatingWebhookConfiguration) SwaggerDoc() map[string]string { + return map_MutatingWebhookConfiguration +} + +var map_MutatingWebhookConfigurationList = map[string]string{ + "": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", + "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "items": "List of MutatingWebhookConfiguration.", +} + +func (MutatingWebhookConfigurationList) SwaggerDoc() map[string]string { + return map_MutatingWebhookConfigurationList +} + var map_Rule = map[string]string{ "": "Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.", "apiGroups": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", @@ -121,12 +99,57 @@ func (RuleWithOperations) SwaggerDoc() map[string]string { var map_ServiceReference = map[string]string{ "": "ServiceReference holds a reference to Service.legacy.k8s.io", - "namespace": "Namespace is the namespace of the service Required", - "name": "Name is the name of the service Required", + "namespace": "`namespace` is the namespace of the service. Required", + "name": "`name` is the name of the service. Required", + "path": "`path` is an optional URL path which will be sent in any request to this service.", } func (ServiceReference) SwaggerDoc() map[string]string { return map_ServiceReference } +var map_ValidatingWebhookConfiguration = map[string]string{ + "": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", + "metadata": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", + "webhooks": "Webhooks is a list of webhooks and the affected resources and operations.", +} + +func (ValidatingWebhookConfiguration) SwaggerDoc() map[string]string { + return map_ValidatingWebhookConfiguration +} + +var map_ValidatingWebhookConfigurationList = map[string]string{ + "": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", + "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "items": "List of ValidatingWebhookConfiguration.", +} + +func (ValidatingWebhookConfigurationList) SwaggerDoc() map[string]string { + return map_ValidatingWebhookConfigurationList +} + +var map_Webhook = map[string]string{ + "": "Webhook describes an admission webhook and the resources and operations it applies to.", + "name": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", + "clientConfig": "ClientConfig defines how to communicate with the hook. Required", + "rules": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule.", + "failurePolicy": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", + "namespaceSelector": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is other cluster scoped resource, it is not subjected to the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", +} + +func (Webhook) SwaggerDoc() map[string]string { + return map_Webhook +} + +var map_WebhookClientConfig = map[string]string{ + "": "WebhookClientConfig contains the information to make a TLS connection with the webhook", + "url": "`url` gives the location of the webhook, in standard URL form (`[scheme://]host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", + "service": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.\n\nIf there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error.", + "caBundle": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. Required.", +} + +func (WebhookClientConfig) SwaggerDoc() map[string]string { + return map_WebhookClientConfig +} + // AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go index 118fed750..d603a4204 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go @@ -21,127 +21,41 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionHookClientConfig).DeepCopyInto(out.(*AdmissionHookClientConfig)) - return nil - }, InType: reflect.TypeOf(&AdmissionHookClientConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalAdmissionHook).DeepCopyInto(out.(*ExternalAdmissionHook)) - return nil - }, InType: reflect.TypeOf(&ExternalAdmissionHook{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalAdmissionHookConfiguration).DeepCopyInto(out.(*ExternalAdmissionHookConfiguration)) - return nil - }, InType: reflect.TypeOf(&ExternalAdmissionHookConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalAdmissionHookConfigurationList).DeepCopyInto(out.(*ExternalAdmissionHookConfigurationList)) - return nil - }, InType: reflect.TypeOf(&ExternalAdmissionHookConfigurationList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Initializer).DeepCopyInto(out.(*Initializer)) - return nil - }, InType: reflect.TypeOf(&Initializer{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InitializerConfiguration).DeepCopyInto(out.(*InitializerConfiguration)) - return nil - }, InType: reflect.TypeOf(&InitializerConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InitializerConfigurationList).DeepCopyInto(out.(*InitializerConfigurationList)) - return nil - }, InType: reflect.TypeOf(&InitializerConfigurationList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Rule).DeepCopyInto(out.(*Rule)) - return nil - }, InType: reflect.TypeOf(&Rule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RuleWithOperations).DeepCopyInto(out.(*RuleWithOperations)) - return nil - }, InType: reflect.TypeOf(&RuleWithOperations{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceReference).DeepCopyInto(out.(*ServiceReference)) - return nil - }, InType: reflect.TypeOf(&ServiceReference{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AdmissionHookClientConfig) DeepCopyInto(out *AdmissionHookClientConfig) { - *out = *in - out.Service = in.Service - if in.CABundle != nil { - in, out := &in.CABundle, &out.CABundle - *out = make([]byte, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionHookClientConfig. -func (in *AdmissionHookClientConfig) DeepCopy() *AdmissionHookClientConfig { - if in == nil { - return nil - } - out := new(AdmissionHookClientConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalAdmissionHook) DeepCopyInto(out *ExternalAdmissionHook) { +func (in *Initializer) DeepCopyInto(out *Initializer) { *out = *in - in.ClientConfig.DeepCopyInto(&out.ClientConfig) if in.Rules != nil { in, out := &in.Rules, &out.Rules - *out = make([]RuleWithOperations, len(*in)) + *out = make([]Rule, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.FailurePolicy != nil { - in, out := &in.FailurePolicy, &out.FailurePolicy - if *in == nil { - *out = nil - } else { - *out = new(FailurePolicyType) - **out = **in - } - } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalAdmissionHook. -func (in *ExternalAdmissionHook) DeepCopy() *ExternalAdmissionHook { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Initializer. +func (in *Initializer) DeepCopy() *Initializer { if in == nil { return nil } - out := new(ExternalAdmissionHook) + out := new(Initializer) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalAdmissionHookConfiguration) DeepCopyInto(out *ExternalAdmissionHookConfiguration) { +func (in *InitializerConfiguration) DeepCopyInto(out *InitializerConfiguration) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.ExternalAdmissionHooks != nil { - in, out := &in.ExternalAdmissionHooks, &out.ExternalAdmissionHooks - *out = make([]ExternalAdmissionHook, len(*in)) + if in.Initializers != nil { + in, out := &in.Initializers, &out.Initializers + *out = make([]Initializer, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -149,18 +63,18 @@ func (in *ExternalAdmissionHookConfiguration) DeepCopyInto(out *ExternalAdmissio return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalAdmissionHookConfiguration. -func (in *ExternalAdmissionHookConfiguration) DeepCopy() *ExternalAdmissionHookConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitializerConfiguration. +func (in *InitializerConfiguration) DeepCopy() *InitializerConfiguration { if in == nil { return nil } - out := new(ExternalAdmissionHookConfiguration) + out := new(InitializerConfiguration) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ExternalAdmissionHookConfiguration) DeepCopyObject() runtime.Object { +func (in *InitializerConfiguration) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -169,13 +83,13 @@ func (in *ExternalAdmissionHookConfiguration) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalAdmissionHookConfigurationList) DeepCopyInto(out *ExternalAdmissionHookConfigurationList) { +func (in *InitializerConfigurationList) DeepCopyInto(out *InitializerConfigurationList) { *out = *in out.TypeMeta = in.TypeMeta out.ListMeta = in.ListMeta if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]ExternalAdmissionHookConfiguration, len(*in)) + *out = make([]InitializerConfiguration, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -183,18 +97,18 @@ func (in *ExternalAdmissionHookConfigurationList) DeepCopyInto(out *ExternalAdmi return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalAdmissionHookConfigurationList. -func (in *ExternalAdmissionHookConfigurationList) DeepCopy() *ExternalAdmissionHookConfigurationList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitializerConfigurationList. +func (in *InitializerConfigurationList) DeepCopy() *InitializerConfigurationList { if in == nil { return nil } - out := new(ExternalAdmissionHookConfigurationList) + out := new(InitializerConfigurationList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ExternalAdmissionHookConfigurationList) DeepCopyObject() runtime.Object { +func (in *InitializerConfigurationList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -203,36 +117,13 @@ func (in *ExternalAdmissionHookConfigurationList) DeepCopyObject() runtime.Objec } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Initializer) DeepCopyInto(out *Initializer) { - *out = *in - if in.Rules != nil { - in, out := &in.Rules, &out.Rules - *out = make([]Rule, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Initializer. -func (in *Initializer) DeepCopy() *Initializer { - if in == nil { - return nil - } - out := new(Initializer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InitializerConfiguration) DeepCopyInto(out *InitializerConfiguration) { +func (in *MutatingWebhookConfiguration) DeepCopyInto(out *MutatingWebhookConfiguration) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Initializers != nil { - in, out := &in.Initializers, &out.Initializers - *out = make([]Initializer, len(*in)) + if in.Webhooks != nil { + in, out := &in.Webhooks, &out.Webhooks + *out = make([]Webhook, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -240,18 +131,18 @@ func (in *InitializerConfiguration) DeepCopyInto(out *InitializerConfiguration) return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitializerConfiguration. -func (in *InitializerConfiguration) DeepCopy() *InitializerConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfiguration. +func (in *MutatingWebhookConfiguration) DeepCopy() *MutatingWebhookConfiguration { if in == nil { return nil } - out := new(InitializerConfiguration) + out := new(MutatingWebhookConfiguration) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *InitializerConfiguration) DeepCopyObject() runtime.Object { +func (in *MutatingWebhookConfiguration) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -260,13 +151,13 @@ func (in *InitializerConfiguration) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InitializerConfigurationList) DeepCopyInto(out *InitializerConfigurationList) { +func (in *MutatingWebhookConfigurationList) DeepCopyInto(out *MutatingWebhookConfigurationList) { *out = *in out.TypeMeta = in.TypeMeta out.ListMeta = in.ListMeta if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]InitializerConfiguration, len(*in)) + *out = make([]MutatingWebhookConfiguration, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -274,18 +165,18 @@ func (in *InitializerConfigurationList) DeepCopyInto(out *InitializerConfigurati return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitializerConfigurationList. -func (in *InitializerConfigurationList) DeepCopy() *InitializerConfigurationList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfigurationList. +func (in *MutatingWebhookConfigurationList) DeepCopy() *MutatingWebhookConfigurationList { if in == nil { return nil } - out := new(InitializerConfigurationList) + out := new(MutatingWebhookConfigurationList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *InitializerConfigurationList) DeepCopyObject() runtime.Object { +func (in *MutatingWebhookConfigurationList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } else { @@ -349,6 +240,15 @@ func (in *RuleWithOperations) DeepCopy() *RuleWithOperations { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceReference) DeepCopyInto(out *ServiceReference) { *out = *in + if in.Path != nil { + in, out := &in.Path, &out.Path + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } @@ -361,3 +261,152 @@ func (in *ServiceReference) DeepCopy() *ServiceReference { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ValidatingWebhookConfiguration) DeepCopyInto(out *ValidatingWebhookConfiguration) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.Webhooks != nil { + in, out := &in.Webhooks, &out.Webhooks + *out = make([]Webhook, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfiguration. +func (in *ValidatingWebhookConfiguration) DeepCopy() *ValidatingWebhookConfiguration { + if in == nil { + return nil + } + out := new(ValidatingWebhookConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ValidatingWebhookConfiguration) 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 *ValidatingWebhookConfigurationList) DeepCopyInto(out *ValidatingWebhookConfigurationList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ValidatingWebhookConfiguration, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfigurationList. +func (in *ValidatingWebhookConfigurationList) DeepCopy() *ValidatingWebhookConfigurationList { + if in == nil { + return nil + } + out := new(ValidatingWebhookConfigurationList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ValidatingWebhookConfigurationList) 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 *Webhook) DeepCopyInto(out *Webhook) { + *out = *in + in.ClientConfig.DeepCopyInto(&out.ClientConfig) + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]RuleWithOperations, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FailurePolicy != nil { + in, out := &in.FailurePolicy, &out.FailurePolicy + if *in == nil { + *out = nil + } else { + *out = new(FailurePolicyType) + **out = **in + } + } + if in.NamespaceSelector != nil { + in, out := &in.NamespaceSelector, &out.NamespaceSelector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Webhook. +func (in *Webhook) DeepCopy() *Webhook { + if in == nil { + return nil + } + out := new(Webhook) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebhookClientConfig) DeepCopyInto(out *WebhookClientConfig) { + *out = *in + if in.URL != nil { + in, out := &in.URL, &out.URL + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + if *in == nil { + *out = nil + } else { + *out = new(ServiceReference) + (*in).DeepCopyInto(*out) + } + } + if in.CABundle != nil { + in, out := &in.CABundle, &out.CABundle + *out = make([]byte, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookClientConfig. +func (in *WebhookClientConfig) DeepCopy() *WebhookClientConfig { + if in == nil { + return nil + } + out := new(WebhookClientConfig) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/BUILD index c51aabf5f..7902387f5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/BUILD @@ -16,7 +16,6 @@ go_library( "//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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/doc.go index 62eb80cee..1d66c2223 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true package v1 // import "k8s.io/api/apps/v1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/generated.pb.go index f32e878f8..38e7415b7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/generated.pb.go @@ -25,12 +25,34 @@ limitations under the License. k8s.io/kubernetes/vendor/k8s.io/api/apps/v1/generated.proto It has these top-level messages: + ControllerRevision + ControllerRevisionList DaemonSet + DaemonSetCondition DaemonSetList DaemonSetSpec DaemonSetStatus DaemonSetUpdateStrategy + Deployment + DeploymentCondition + DeploymentList + DeploymentSpec + DeploymentStatus + DeploymentStrategy + ReplicaSet + ReplicaSetCondition + ReplicaSetList + ReplicaSetSpec + ReplicaSetStatus RollingUpdateDaemonSet + RollingUpdateDeployment + RollingUpdateStatefulSetStrategy + StatefulSet + StatefulSetCondition + StatefulSetList + StatefulSetSpec + StatefulSetStatus + StatefulSetUpdateStrategy */ package v1 @@ -38,6 +60,8 @@ 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 k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -58,39 +82,155 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package +func (m *ControllerRevision) Reset() { *m = ControllerRevision{} } +func (*ControllerRevision) ProtoMessage() {} +func (*ControllerRevision) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *ControllerRevisionList) Reset() { *m = ControllerRevisionList{} } +func (*ControllerRevisionList) ProtoMessage() {} +func (*ControllerRevisionList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + func (m *DaemonSet) Reset() { *m = DaemonSet{} } func (*DaemonSet) ProtoMessage() {} -func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } +func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func (m *DaemonSetCondition) Reset() { *m = DaemonSetCondition{} } +func (*DaemonSetCondition) ProtoMessage() {} +func (*DaemonSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } func (m *DaemonSetList) Reset() { *m = DaemonSetList{} } func (*DaemonSetList) ProtoMessage() {} -func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } func (m *DaemonSetSpec) Reset() { *m = DaemonSetSpec{} } func (*DaemonSetSpec) ProtoMessage() {} -func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } +func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func (m *DaemonSetStatus) Reset() { *m = DaemonSetStatus{} } func (*DaemonSetStatus) ProtoMessage() {} -func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } +func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *DaemonSetUpdateStrategy) Reset() { *m = DaemonSetUpdateStrategy{} } func (*DaemonSetUpdateStrategy) ProtoMessage() {} -func (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } + +func (m *Deployment) Reset() { *m = Deployment{} } +func (*Deployment) ProtoMessage() {} +func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } + +func (m *DeploymentCondition) Reset() { *m = DeploymentCondition{} } +func (*DeploymentCondition) ProtoMessage() {} +func (*DeploymentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } + +func (m *DeploymentList) Reset() { *m = DeploymentList{} } +func (*DeploymentList) ProtoMessage() {} +func (*DeploymentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } + +func (m *DeploymentSpec) Reset() { *m = DeploymentSpec{} } +func (*DeploymentSpec) ProtoMessage() {} +func (*DeploymentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } + +func (m *DeploymentStatus) Reset() { *m = DeploymentStatus{} } +func (*DeploymentStatus) ProtoMessage() {} +func (*DeploymentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } + +func (m *DeploymentStrategy) Reset() { *m = DeploymentStrategy{} } +func (*DeploymentStrategy) ProtoMessage() {} +func (*DeploymentStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } + +func (m *ReplicaSet) Reset() { *m = ReplicaSet{} } +func (*ReplicaSet) ProtoMessage() {} +func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } + +func (m *ReplicaSetCondition) Reset() { *m = ReplicaSetCondition{} } +func (*ReplicaSetCondition) ProtoMessage() {} +func (*ReplicaSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } + +func (m *ReplicaSetList) Reset() { *m = ReplicaSetList{} } +func (*ReplicaSetList) ProtoMessage() {} +func (*ReplicaSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } + +func (m *ReplicaSetSpec) Reset() { *m = ReplicaSetSpec{} } +func (*ReplicaSetSpec) ProtoMessage() {} +func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } + +func (m *ReplicaSetStatus) Reset() { *m = ReplicaSetStatus{} } +func (*ReplicaSetStatus) ProtoMessage() {} +func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } func (m *RollingUpdateDaemonSet) Reset() { *m = RollingUpdateDaemonSet{} } func (*RollingUpdateDaemonSet) ProtoMessage() {} -func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } + +func (m *RollingUpdateDeployment) Reset() { *m = RollingUpdateDeployment{} } +func (*RollingUpdateDeployment) ProtoMessage() {} +func (*RollingUpdateDeployment) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{20} +} + +func (m *RollingUpdateStatefulSetStrategy) Reset() { *m = RollingUpdateStatefulSetStrategy{} } +func (*RollingUpdateStatefulSetStrategy) ProtoMessage() {} +func (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{21} +} + +func (m *StatefulSet) Reset() { *m = StatefulSet{} } +func (*StatefulSet) ProtoMessage() {} +func (*StatefulSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } + +func (m *StatefulSetCondition) Reset() { *m = StatefulSetCondition{} } +func (*StatefulSetCondition) ProtoMessage() {} +func (*StatefulSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } + +func (m *StatefulSetList) Reset() { *m = StatefulSetList{} } +func (*StatefulSetList) ProtoMessage() {} +func (*StatefulSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } + +func (m *StatefulSetSpec) Reset() { *m = StatefulSetSpec{} } +func (*StatefulSetSpec) ProtoMessage() {} +func (*StatefulSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } + +func (m *StatefulSetStatus) Reset() { *m = StatefulSetStatus{} } +func (*StatefulSetStatus) ProtoMessage() {} +func (*StatefulSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } + +func (m *StatefulSetUpdateStrategy) Reset() { *m = StatefulSetUpdateStrategy{} } +func (*StatefulSetUpdateStrategy) ProtoMessage() {} +func (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{27} +} func init() { + proto.RegisterType((*ControllerRevision)(nil), "k8s.io.api.apps.v1.ControllerRevision") + proto.RegisterType((*ControllerRevisionList)(nil), "k8s.io.api.apps.v1.ControllerRevisionList") proto.RegisterType((*DaemonSet)(nil), "k8s.io.api.apps.v1.DaemonSet") + proto.RegisterType((*DaemonSetCondition)(nil), "k8s.io.api.apps.v1.DaemonSetCondition") proto.RegisterType((*DaemonSetList)(nil), "k8s.io.api.apps.v1.DaemonSetList") proto.RegisterType((*DaemonSetSpec)(nil), "k8s.io.api.apps.v1.DaemonSetSpec") proto.RegisterType((*DaemonSetStatus)(nil), "k8s.io.api.apps.v1.DaemonSetStatus") proto.RegisterType((*DaemonSetUpdateStrategy)(nil), "k8s.io.api.apps.v1.DaemonSetUpdateStrategy") + proto.RegisterType((*Deployment)(nil), "k8s.io.api.apps.v1.Deployment") + proto.RegisterType((*DeploymentCondition)(nil), "k8s.io.api.apps.v1.DeploymentCondition") + proto.RegisterType((*DeploymentList)(nil), "k8s.io.api.apps.v1.DeploymentList") + proto.RegisterType((*DeploymentSpec)(nil), "k8s.io.api.apps.v1.DeploymentSpec") + proto.RegisterType((*DeploymentStatus)(nil), "k8s.io.api.apps.v1.DeploymentStatus") + proto.RegisterType((*DeploymentStrategy)(nil), "k8s.io.api.apps.v1.DeploymentStrategy") + proto.RegisterType((*ReplicaSet)(nil), "k8s.io.api.apps.v1.ReplicaSet") + proto.RegisterType((*ReplicaSetCondition)(nil), "k8s.io.api.apps.v1.ReplicaSetCondition") + proto.RegisterType((*ReplicaSetList)(nil), "k8s.io.api.apps.v1.ReplicaSetList") + proto.RegisterType((*ReplicaSetSpec)(nil), "k8s.io.api.apps.v1.ReplicaSetSpec") + proto.RegisterType((*ReplicaSetStatus)(nil), "k8s.io.api.apps.v1.ReplicaSetStatus") proto.RegisterType((*RollingUpdateDaemonSet)(nil), "k8s.io.api.apps.v1.RollingUpdateDaemonSet") + proto.RegisterType((*RollingUpdateDeployment)(nil), "k8s.io.api.apps.v1.RollingUpdateDeployment") + proto.RegisterType((*RollingUpdateStatefulSetStrategy)(nil), "k8s.io.api.apps.v1.RollingUpdateStatefulSetStrategy") + proto.RegisterType((*StatefulSet)(nil), "k8s.io.api.apps.v1.StatefulSet") + proto.RegisterType((*StatefulSetCondition)(nil), "k8s.io.api.apps.v1.StatefulSetCondition") + proto.RegisterType((*StatefulSetList)(nil), "k8s.io.api.apps.v1.StatefulSetList") + proto.RegisterType((*StatefulSetSpec)(nil), "k8s.io.api.apps.v1.StatefulSetSpec") + proto.RegisterType((*StatefulSetStatus)(nil), "k8s.io.api.apps.v1.StatefulSetStatus") + proto.RegisterType((*StatefulSetUpdateStrategy)(nil), "k8s.io.api.apps.v1.StatefulSetUpdateStrategy") } -func (m *DaemonSet) Marshal() (dAtA []byte, err error) { +func (m *ControllerRevision) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -100,7 +240,7 @@ func (m *DaemonSet) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) { +func (m *ControllerRevision) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -115,20 +255,137 @@ func (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) { i += n1 dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n2, err := m.Spec.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Data.Size())) + n2, err := m.Data.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n2 + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Revision)) + return i, nil +} + +func (m *ControllerRevisionList) 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 *ControllerRevisionList) 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())) + n3, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + 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 *DaemonSet) 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 *DaemonSet) 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())) + n4, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n5, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n3, err := m.Status.MarshalTo(dAtA[i:]) + n6, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n6 + return i, nil +} + +func (m *DaemonSetCondition) 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 *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n7, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) return i, nil } @@ -150,11 +407,11 @@ func (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n4, err := m.ListMeta.MarshalTo(dAtA[i:]) + n8, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n8 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -189,28 +446,28 @@ func (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n5, err := m.Selector.MarshalTo(dAtA[i:]) + n9, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 + i += n9 } dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n6, err := m.Template.MarshalTo(dAtA[i:]) + n10, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n10 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) - n7, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) + n11, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n11 dAtA[i] = 0x20 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -266,6 +523,18 @@ func (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) } + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x52 + 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 } @@ -292,16 +561,16 @@ func (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n8, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + n12, err := m.RollingUpdate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n12 } return i, nil } -func (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) { +func (m *Deployment) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -311,232 +580,5044 @@ func (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) { +func (m *Deployment) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if m.MaxUnavailable != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) - n9, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n9 + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n13, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n14, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n15, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err } + i += n15 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++ +func (m *DeploymentCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return offset + 1 + return dAtA[:n], nil } -func (m *DaemonSet) Size() (n int) { + +func (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i var l int _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastUpdateTime.Size())) + n16, err := m.LastUpdateTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n16 + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n17, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + return i, nil } -func (m *DaemonSetList) 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)) - } +func (m *DeploymentList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *DaemonSetSpec) Size() (n int) { +func (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i var l int _ = l - if m.Selector != nil { - l = m.Selector.Size() - n += 1 + l + sovGenerated(uint64(l)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n18, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.UpdateStrategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.MinReadySeconds)) + i += n18 + 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 *DeploymentSpec) 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 *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Replicas != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + } + if m.Selector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n19, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n19 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) + n20, err := m.Template.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n20 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Strategy.Size())) + n21, err := m.Strategy.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) if m.RevisionHistoryLimit != nil { - n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) + dAtA[i] = 0x30 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) } - return n + dAtA[i] = 0x38 + i++ + if m.Paused { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if m.ProgressDeadlineSeconds != nil { + dAtA[i] = 0x48 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds)) + } + return i, nil } -func (m *DaemonSetStatus) Size() (n int) { +func (m *DeploymentStatus) 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 *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i var l int _ = l - n += 1 + sovGenerated(uint64(m.CurrentNumberScheduled)) - n += 1 + sovGenerated(uint64(m.NumberMisscheduled)) - n += 1 + sovGenerated(uint64(m.DesiredNumberScheduled)) - n += 1 + sovGenerated(uint64(m.NumberReady)) - n += 1 + sovGenerated(uint64(m.ObservedGeneration)) - n += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled)) - n += 1 + sovGenerated(uint64(m.NumberAvailable)) - n += 1 + sovGenerated(uint64(m.NumberUnavailable)) + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas)) + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas)) + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas)) + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + dAtA[i] = 0x38 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) if m.CollisionCount != nil { - n += 1 + sovGenerated(uint64(*m.CollisionCount)) + dAtA[i] = 0x40 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) } - return n + return i, nil } -func (m *DaemonSetUpdateStrategy) Size() (n int) { +func (m *DeploymentStrategy) 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 *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i var l int _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) if m.RollingUpdate != nil { - l = m.RollingUpdate.Size() - n += 1 + l + sovGenerated(uint64(l)) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) + n22, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n22 } - return n + return i, nil } -func (m *RollingUpdateDaemonSet) Size() (n int) { +func (m *ReplicaSet) 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 *ReplicaSet) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i var l int _ = l - if m.MaxUnavailable != nil { - l = m.MaxUnavailable.Size() - n += 1 + l + sovGenerated(uint64(l)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n23, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err } - return n + i += n23 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n24, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n25, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + return i, nil } -func sovGenerated(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } +func (m *ReplicaSetCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err } - return n -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return dAtA[:n], nil } -func (this *DaemonSet) String() string { - if this == nil { - return "nil" + +func (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n26, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err } - s := strings.Join([]string{`&DaemonSet{`, - `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "DaemonSetSpec", "DaemonSetSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "DaemonSetStatus", "DaemonSetStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s + i += n26 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil } -func (this *DaemonSetList) String() string { - if this == nil { - return "nil" + +func (m *ReplicaSetList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err } - s := strings.Join([]string{`&DaemonSetList{`, - `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), "DaemonSet", "DaemonSet", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s + return dAtA[:n], nil } -func (this *DaemonSetSpec) String() string { - if this == nil { - return "nil" + +func (m *ReplicaSetList) 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())) + n27, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err } - s := strings.Join([]string{`&DaemonSetSpec{`, - `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), "DaemonSetUpdateStrategy", "DaemonSetUpdateStrategy", 1), `&`, ``, 1) + `,`, + i += n27 + 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 *ReplicaSetSpec) 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 *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Replicas != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + } + if m.Selector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n28, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n28 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) + n29, err := m.Template.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) + return i, nil +} + +func (m *ReplicaSetStatus) 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 *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas)) + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas)) + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x32 + 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 *RollingUpdateDaemonSet) 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 *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.MaxUnavailable != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) + n30, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n30 + } + return i, nil +} + +func (m *RollingUpdateDeployment) 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 *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.MaxUnavailable != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) + n31, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n31 + } + if m.MaxSurge != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MaxSurge.Size())) + n32, err := m.MaxSurge.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n32 + } + return i, nil +} + +func (m *RollingUpdateStatefulSetStrategy) 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 *RollingUpdateStatefulSetStrategy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Partition != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Partition)) + } + return i, nil +} + +func (m *StatefulSet) 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 *StatefulSet) 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())) + n33, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n33 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n34, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n34 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n35, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n35 + return i, nil +} + +func (m *StatefulSetCondition) 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 *StatefulSetCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n36, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n36 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil +} + +func (m *StatefulSetList) 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 *StatefulSetList) 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())) + n37, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n37 + 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 *StatefulSetSpec) 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 *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Replicas != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + } + if m.Selector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n38, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n38 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) + n39, err := m.Template.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n39 + if len(m.VolumeClaimTemplates) > 0 { + for _, msg := range m.VolumeClaimTemplates { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName))) + i += copy(dAtA[i:], m.ServiceName) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.PodManagementPolicy))) + i += copy(dAtA[i:], m.PodManagementPolicy) + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) + n40, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n40 + if m.RevisionHistoryLimit != nil { + dAtA[i] = 0x40 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) + } + return i, nil +} + +func (m *StatefulSetStatus) 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 *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas)) + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas)) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentRevision))) + i += copy(dAtA[i:], m.CurrentRevision) + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision))) + i += copy(dAtA[i:], m.UpdateRevision) + if m.CollisionCount != nil { + dAtA[i] = 0x48 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) + } + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x52 + 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 *StatefulSetUpdateStrategy) 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 *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + if m.RollingUpdate != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) + n41, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n41 + } + 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 *ControllerRevision) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Data.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Revision)) + return n +} + +func (m *ControllerRevisionList) 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 *DaemonSet) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *DaemonSetCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *DaemonSetList) 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 *DaemonSetSpec) Size() (n int) { + var l int + _ = l + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.UpdateStrategy.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.MinReadySeconds)) + if m.RevisionHistoryLimit != nil { + n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) + } + return n +} + +func (m *DaemonSetStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.CurrentNumberScheduled)) + n += 1 + sovGenerated(uint64(m.NumberMisscheduled)) + n += 1 + sovGenerated(uint64(m.DesiredNumberScheduled)) + n += 1 + sovGenerated(uint64(m.NumberReady)) + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + n += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled)) + n += 1 + sovGenerated(uint64(m.NumberAvailable)) + n += 1 + sovGenerated(uint64(m.NumberUnavailable)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *DaemonSetUpdateStrategy) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.RollingUpdate != nil { + l = m.RollingUpdate.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Deployment) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *DeploymentCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *DeploymentList) 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 *DeploymentSpec) Size() (n int) { + var l int + _ = l + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Strategy.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.MinReadySeconds)) + if m.RevisionHistoryLimit != nil { + n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) + } + n += 2 + if m.ProgressDeadlineSeconds != nil { + n += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds)) + } + return n +} + +func (m *DeploymentStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + n += 1 + sovGenerated(uint64(m.Replicas)) + n += 1 + sovGenerated(uint64(m.UpdatedReplicas)) + n += 1 + sovGenerated(uint64(m.AvailableReplicas)) + n += 1 + sovGenerated(uint64(m.UnavailableReplicas)) + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 1 + sovGenerated(uint64(m.ReadyReplicas)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } + return n +} + +func (m *DeploymentStrategy) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.RollingUpdate != nil { + l = m.RollingUpdate.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ReplicaSet) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ReplicaSetCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ReplicaSetList) 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 *ReplicaSetSpec) Size() (n int) { + var l int + _ = l + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.MinReadySeconds)) + return n +} + +func (m *ReplicaSetStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Replicas)) + n += 1 + sovGenerated(uint64(m.FullyLabeledReplicas)) + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + n += 1 + sovGenerated(uint64(m.ReadyReplicas)) + n += 1 + sovGenerated(uint64(m.AvailableReplicas)) + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RollingUpdateDaemonSet) Size() (n int) { + var l int + _ = l + if m.MaxUnavailable != nil { + l = m.MaxUnavailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *RollingUpdateDeployment) Size() (n int) { + var l int + _ = l + if m.MaxUnavailable != nil { + l = m.MaxUnavailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaxSurge != nil { + l = m.MaxSurge.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *RollingUpdateStatefulSetStrategy) Size() (n int) { + var l int + _ = l + if m.Partition != nil { + n += 1 + sovGenerated(uint64(*m.Partition)) + } + return n +} + +func (m *StatefulSet) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *StatefulSetCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *StatefulSetList) 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 *StatefulSetSpec) Size() (n int) { + var l int + _ = l + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.VolumeClaimTemplates) > 0 { + for _, e := range m.VolumeClaimTemplates { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = len(m.ServiceName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.PodManagementPolicy) + n += 1 + l + sovGenerated(uint64(l)) + l = m.UpdateStrategy.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.RevisionHistoryLimit != nil { + n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) + } + return n +} + +func (m *StatefulSetStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + n += 1 + sovGenerated(uint64(m.Replicas)) + n += 1 + sovGenerated(uint64(m.ReadyReplicas)) + n += 1 + sovGenerated(uint64(m.CurrentReplicas)) + n += 1 + sovGenerated(uint64(m.UpdatedReplicas)) + l = len(m.CurrentRevision) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.UpdateRevision) + n += 1 + l + sovGenerated(uint64(l)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *StatefulSetUpdateStrategy) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.RollingUpdate != nil { + l = m.RollingUpdate.Size() + 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 *ControllerRevision) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerRevision{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Data:` + strings.Replace(strings.Replace(this.Data.String(), "RawExtension", "k8s_io_apimachinery_pkg_runtime.RawExtension", 1), `&`, ``, 1) + `,`, + `Revision:` + fmt.Sprintf("%v", this.Revision) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerRevisionList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerRevisionList{`, + `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), "ControllerRevision", "ControllerRevision", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSet) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSet{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "DaemonSetSpec", "DaemonSetSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "DaemonSetStatus", "DaemonSetStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSetCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSetList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetList{`, + `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), "DaemonSet", "DaemonSet", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSetSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetSpec{`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), "DaemonSetUpdateStrategy", "DaemonSetUpdateStrategy", 1), `&`, ``, 1) + `,`, + `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, + `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSetStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetStatus{`, + `CurrentNumberScheduled:` + fmt.Sprintf("%v", this.CurrentNumberScheduled) + `,`, + `NumberMisscheduled:` + fmt.Sprintf("%v", this.NumberMisscheduled) + `,`, + `DesiredNumberScheduled:` + fmt.Sprintf("%v", this.DesiredNumberScheduled) + `,`, + `NumberReady:` + fmt.Sprintf("%v", this.NumberReady) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `UpdatedNumberScheduled:` + fmt.Sprintf("%v", this.UpdatedNumberScheduled) + `,`, + `NumberAvailable:` + fmt.Sprintf("%v", this.NumberAvailable) + `,`, + `NumberUnavailable:` + fmt.Sprintf("%v", this.NumberUnavailable) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "DaemonSetCondition", "DaemonSetCondition", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSetUpdateStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetUpdateStrategy{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateDaemonSet", "RollingUpdateDaemonSet", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Deployment) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Deployment{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "DeploymentSpec", "DeploymentSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "DeploymentStatus", "DeploymentStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `LastUpdateTime:` + strings.Replace(strings.Replace(this.LastUpdateTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentList{`, + `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), "Deployment", "Deployment", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentSpec{`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), "DeploymentStrategy", "DeploymentStrategy", 1), `&`, ``, 1) + `,`, + `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, + `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, + `Paused:` + fmt.Sprintf("%v", this.Paused) + `,`, + `ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentStatus{`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, + `AvailableReplicas:` + fmt.Sprintf("%v", this.AvailableReplicas) + `,`, + `UnavailableReplicas:` + fmt.Sprintf("%v", this.UnavailableReplicas) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "DeploymentCondition", "DeploymentCondition", 1), `&`, ``, 1) + `,`, + `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentStrategy{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateDeployment", "RollingUpdateDeployment", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSet) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSet{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ReplicaSetSpec", "ReplicaSetSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ReplicaSetStatus", "ReplicaSetStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetList{`, + `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), "ReplicaSet", "ReplicaSet", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetSpec{`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetStatus{`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `FullyLabeledReplicas:` + fmt.Sprintf("%v", this.FullyLabeledReplicas) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, + `AvailableReplicas:` + fmt.Sprintf("%v", this.AvailableReplicas) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "ReplicaSetCondition", "ReplicaSetCondition", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *RollingUpdateDaemonSet) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RollingUpdateDaemonSet{`, + `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RollingUpdateDeployment) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RollingUpdateDeployment{`, + `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, + `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RollingUpdateStatefulSetStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RollingUpdateStatefulSetStrategy{`, + `Partition:` + valueToStringGenerated(this.Partition) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSet) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSet{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "StatefulSetSpec", "StatefulSetSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "StatefulSetStatus", "StatefulSetStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSetCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSetList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetList{`, + `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), "StatefulSet", "StatefulSet", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSetSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetSpec{`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `VolumeClaimTemplates:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.VolumeClaimTemplates), "PersistentVolumeClaim", "k8s_io_api_core_v1.PersistentVolumeClaim", 1), `&`, ``, 1) + `,`, + `ServiceName:` + fmt.Sprintf("%v", this.ServiceName) + `,`, + `PodManagementPolicy:` + fmt.Sprintf("%v", this.PodManagementPolicy) + `,`, + `UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), "StatefulSetUpdateStrategy", "StatefulSetUpdateStrategy", 1), `&`, ``, 1) + `,`, `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, `}`, }, "") return s } -func (this *DaemonSetStatus) String() string { - if this == nil { - return "nil" +func (this *StatefulSetStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetStatus{`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, + `CurrentReplicas:` + fmt.Sprintf("%v", this.CurrentReplicas) + `,`, + `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, + `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, + `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "StatefulSetCondition", "StatefulSetCondition", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSetUpdateStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetUpdateStrategy{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateStatefulSetStrategy", "RollingUpdateStatefulSetStrategy", 1) + `,`, + `}`, + }, "") + 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 *ControllerRevision) 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: ControllerRevision: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerRevision: 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 Data", 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.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) + } + m.Revision = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Revision |= (int64(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 *ControllerRevisionList) 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: ControllerRevisionList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerRevisionList: 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, ControllerRevision{}) + 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 *DaemonSet) 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: DaemonSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSet: 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 Spec", 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.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status.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 *DaemonSetCondition) 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: DaemonSetCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 = DaemonSetConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", 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.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + 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 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", 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.Message = 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 *DaemonSetList) 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: DaemonSetList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetList: 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, DaemonSet{}) + 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 *DaemonSetSpec) 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: DaemonSetSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", 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.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", 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.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", 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.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) + } + m.MinReadySeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinReadySeconds |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.RevisionHistoryLimit = &v + 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 *DaemonSetStatus) 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: DaemonSetStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentNumberScheduled", wireType) + } + m.CurrentNumberScheduled = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CurrentNumberScheduled |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberMisscheduled", wireType) + } + m.NumberMisscheduled = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumberMisscheduled |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DesiredNumberScheduled", wireType) + } + m.DesiredNumberScheduled = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DesiredNumberScheduled |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberReady", wireType) + } + m.NumberReady = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumberReady |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdatedNumberScheduled", wireType) + } + m.UpdatedNumberScheduled = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UpdatedNumberScheduled |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberAvailable", wireType) + } + m.NumberAvailable = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumberAvailable |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberUnavailable", wireType) + } + m.NumberUnavailable = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumberUnavailable |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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.Conditions = append(m.Conditions, DaemonSetCondition{}) + if err := m.Conditions[len(m.Conditions)-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 *DaemonSetUpdateStrategy) 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: DaemonSetUpdateStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RollingUpdate", 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.RollingUpdate == nil { + m.RollingUpdate = &RollingUpdateDaemonSet{} + } + if err := m.RollingUpdate.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 *Deployment) 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: Deployment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Deployment: 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 Spec", 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.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status.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 *DeploymentCondition) 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: DeploymentCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 = DeploymentConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + 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 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", 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.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", 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.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", 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.LastTransitionTime.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 *DeploymentList) 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: DeploymentList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentList: 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, Deployment{}) + 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 *DeploymentSpec) 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: DeploymentSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", 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.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", 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.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Strategy", 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.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) + } + m.MinReadySeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinReadySeconds |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.RevisionHistoryLimit = &v + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Paused", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Paused = bool(v != 0) + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProgressDeadlineSeconds", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ProgressDeadlineSeconds = &v + 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 *DeploymentStatus) 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: DeploymentStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdatedReplicas", wireType) + } + m.UpdatedReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UpdatedReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableReplicas", wireType) + } + m.AvailableReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AvailableReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UnavailableReplicas", wireType) + } + m.UnavailableReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UnavailableReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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.Conditions = append(m.Conditions, DeploymentCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) + } + m.ReadyReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ReadyReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v + 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 *DeploymentStrategy) 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: DeploymentStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 = DeploymentStrategyType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RollingUpdate", 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.RollingUpdate == nil { + m.RollingUpdate = &RollingUpdateDeployment{} + } + if err := m.RollingUpdate.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 *ReplicaSet) 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: ReplicaSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSet: 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 Spec", 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.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status.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 *ReplicaSetCondition) 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: ReplicaSetCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 = ReplicaSetConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", 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.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + 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 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", 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.Message = 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 *ReplicaSetList) 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: ReplicaSetList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetList: 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, ReplicaSet{}) + 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 *ReplicaSetSpec) 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: ReplicaSetSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", 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.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", 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.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) + } + m.MinReadySeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinReadySeconds |= (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 *ReplicaSetStatus) 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: ReplicaSetStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FullyLabeledReplicas", wireType) + } + m.FullyLabeledReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.FullyLabeledReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) + } + m.ReadyReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ReadyReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableReplicas", wireType) + } + m.AvailableReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AvailableReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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.Conditions = append(m.Conditions, ReplicaSetCondition{}) + if err := m.Conditions[len(m.Conditions)-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 *RollingUpdateDaemonSet) 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: RollingUpdateDaemonSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", 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.MaxUnavailable == nil { + m.MaxUnavailable = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} + } + if err := m.MaxUnavailable.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 + } } - s := strings.Join([]string{`&DaemonSetStatus{`, - `CurrentNumberScheduled:` + fmt.Sprintf("%v", this.CurrentNumberScheduled) + `,`, - `NumberMisscheduled:` + fmt.Sprintf("%v", this.NumberMisscheduled) + `,`, - `DesiredNumberScheduled:` + fmt.Sprintf("%v", this.DesiredNumberScheduled) + `,`, - `NumberReady:` + fmt.Sprintf("%v", this.NumberReady) + `,`, - `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, - `UpdatedNumberScheduled:` + fmt.Sprintf("%v", this.UpdatedNumberScheduled) + `,`, - `NumberAvailable:` + fmt.Sprintf("%v", this.NumberAvailable) + `,`, - `NumberUnavailable:` + fmt.Sprintf("%v", this.NumberUnavailable) + `,`, - `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, - `}`, - }, "") - return s + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil } -func (this *DaemonSetUpdateStrategy) String() string { - if this == nil { - return "nil" +func (m *RollingUpdateDeployment) 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: RollingUpdateDeployment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RollingUpdateDeployment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", 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.MaxUnavailable == nil { + m.MaxUnavailable = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", 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.MaxSurge == nil { + m.MaxSurge = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} + } + if err := m.MaxSurge.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 + } } - s := strings.Join([]string{`&DaemonSetUpdateStrategy{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateDaemonSet", "RollingUpdateDaemonSet", 1) + `,`, - `}`, - }, "") - return s + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil } -func (this *RollingUpdateDaemonSet) String() string { - if this == nil { - return "nil" +func (m *RollingUpdateStatefulSetStrategy) 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: RollingUpdateStatefulSetStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RollingUpdateStatefulSetStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Partition", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Partition = &v + 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 + } } - s := strings.Join([]string{`&RollingUpdateDaemonSet{`, - `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" + + if iNdEx > l { + return io.ErrUnexpectedEOF } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) + return nil } -func (m *DaemonSet) Unmarshal(dAtA []byte) error { +func (m *StatefulSet) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -559,10 +5640,10 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DaemonSet: wiretype end group for non-group") + return fmt.Errorf("proto: StatefulSet: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSet: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: StatefulSet: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -676,7 +5757,7 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { } return nil } -func (m *DaemonSetList) Unmarshal(dAtA []byte) error { +func (m *StatefulSetCondition) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -699,10 +5780,206 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DaemonSetList: wiretype end group for non-group") + return fmt.Errorf("proto: StatefulSetCondition: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: StatefulSetCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 = StatefulSetConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", 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.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + 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 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", 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.Message = 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 *StatefulSetList) 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: StatefulSetList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatefulSetList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -761,7 +6038,7 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, DaemonSet{}) + m.Items = append(m.Items, StatefulSet{}) if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -787,7 +6064,7 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { } return nil } -func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { +func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -810,13 +6087,33 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DaemonSetSpec: wiretype end group for non-group") + return fmt.Errorf("proto: StatefulSetSpec: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: StatefulSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) } @@ -849,7 +6146,7 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) } @@ -879,9 +6176,9 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 3: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field VolumeClaimTemplates", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -905,15 +6202,16 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.VolumeClaimTemplates = append(m.VolumeClaimTemplates, k8s_io_api_core_v1.PersistentVolumeClaim{}) + if err := m.VolumeClaimTemplates[len(m.VolumeClaimTemplates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceName", wireType) } - m.MinReadySeconds = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -923,12 +6221,81 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.MinReadySeconds |= (int32(b) & 0x7F) << shift + 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.ServiceName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PodManagementPolicy", 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.PodManagementPolicy = PodManagementPolicyType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", 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.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) } @@ -969,7 +6336,7 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { } return nil } -func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { +func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -992,17 +6359,17 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DaemonSetStatus: wiretype end group for non-group") + return fmt.Errorf("proto: StatefulSetStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: StatefulSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentNumberScheduled", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) } - m.CurrentNumberScheduled = 0 + m.ObservedGeneration = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1012,16 +6379,16 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.CurrentNumberScheduled |= (int32(b) & 0x7F) << shift + m.ObservedGeneration |= (int64(b) & 0x7F) << shift if b < 0x80 { break } } case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumberMisscheduled", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) } - m.NumberMisscheduled = 0 + m.Replicas = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1031,16 +6398,16 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumberMisscheduled |= (int32(b) & 0x7F) << shift + m.Replicas |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DesiredNumberScheduled", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) } - m.DesiredNumberScheduled = 0 + m.ReadyReplicas = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1050,16 +6417,16 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.DesiredNumberScheduled |= (int32(b) & 0x7F) << shift + m.ReadyReplicas |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } case 4: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumberReady", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CurrentReplicas", wireType) } - m.NumberReady = 0 + m.CurrentReplicas = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1069,16 +6436,16 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumberReady |= (int32(b) & 0x7F) << shift + m.CurrentReplicas |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } case 5: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field UpdatedReplicas", wireType) } - m.ObservedGeneration = 0 + m.UpdatedReplicas = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1088,16 +6455,16 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ObservedGeneration |= (int64(b) & 0x7F) << shift + m.UpdatedReplicas |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdatedNumberScheduled", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentRevision", wireType) } - m.UpdatedNumberScheduled = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1107,16 +6474,26 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.UpdatedNumberScheduled |= (int32(b) & 0x7F) << shift + 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.CurrentRevision = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumberAvailable", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateRevision", wireType) } - m.NumberAvailable = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1126,16 +6503,26 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumberAvailable |= (int32(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - case 8: + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UpdateRevision = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumberUnavailable", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) } - m.NumberUnavailable = 0 + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1145,16 +6532,17 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.NumberUnavailable |= (int32(b) & 0x7F) << shift + v |= (int32(b) & 0x7F) << shift if b < 0x80 { break } } - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + m.CollisionCount = &v + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) } - var v int32 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1164,12 +6552,23 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= (int32(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - m.CollisionCount = &v + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, StatefulSetCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -1191,7 +6590,7 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { +func (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1214,10 +6613,10 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DaemonSetUpdateStrategy: wiretype end group for non-group") + return fmt.Errorf("proto: StatefulSetUpdateStrategy: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: StatefulSetUpdateStrategy: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -1247,7 +6646,7 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Type = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex]) + m.Type = StatefulSetUpdateStrategyType(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -1276,7 +6675,7 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.RollingUpdate == nil { - m.RollingUpdate = &RollingUpdateDaemonSet{} + m.RollingUpdate = &RollingUpdateStatefulSetStrategy{} } if err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -1303,89 +6702,6 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { } return nil } -func (m *RollingUpdateDaemonSet) 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: RollingUpdateDaemonSet: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", 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.MaxUnavailable == nil { - m.MaxUnavailable = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} - } - if err := m.MaxUnavailable.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 skipGenerated(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 @@ -1496,63 +6812,134 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 928 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0xcf, 0x73, 0xdb, 0x44, - 0x14, 0xc7, 0xad, 0x38, 0x0e, 0xce, 0xa6, 0x71, 0xc8, 0xd2, 0x49, 0x45, 0x18, 0xe4, 0x60, 0x2e, - 0x86, 0x0e, 0x12, 0x6e, 0x81, 0x61, 0xe0, 0xc0, 0x54, 0xe9, 0x4c, 0x29, 0x24, 0x0e, 0xac, 0x1b, - 0x0e, 0x0c, 0xcc, 0xb0, 0x96, 0x1e, 0xce, 0x62, 0xfd, 0x1a, 0xed, 0xca, 0x83, 0x6f, 0x9c, 0x38, - 0xf3, 0xa7, 0xc0, 0x5f, 0xd0, 0x6b, 0x8e, 0x3d, 0xf6, 0xe4, 0x21, 0xe6, 0xbf, 0xe0, 0x02, 0xb3, - 0xab, 0x8d, 0x6d, 0xd9, 0x72, 0x9a, 0x9b, 0xf7, 0xbd, 0xef, 0xf7, 0xb3, 0x6f, 0xdf, 0x3e, 0xaf, - 0xd0, 0xe7, 0xc3, 0x4f, 0xb9, 0xcd, 0x62, 0x67, 0x98, 0xf5, 0x21, 0x8d, 0x40, 0x00, 0x77, 0x46, - 0x10, 0xf9, 0x71, 0xea, 0xe8, 0x04, 0x4d, 0x98, 0x43, 0x93, 0x84, 0x3b, 0xa3, 0x8e, 0x33, 0x80, - 0x08, 0x52, 0x2a, 0xc0, 0xb7, 0x93, 0x34, 0x16, 0x31, 0xc6, 0xb9, 0xc6, 0xa6, 0x09, 0xb3, 0xa5, - 0xc6, 0x1e, 0x75, 0x0e, 0x3f, 0x18, 0x30, 0x71, 0x91, 0xf5, 0x6d, 0x2f, 0x0e, 0x9d, 0x41, 0x3c, - 0x88, 0x1d, 0x25, 0xed, 0x67, 0x3f, 0xab, 0x95, 0x5a, 0xa8, 0x5f, 0x39, 0xe2, 0xb0, 0xb5, 0xb0, - 0x8d, 0x17, 0xa7, 0x50, 0xb2, 0xcd, 0xe1, 0x7b, 0x0b, 0x9a, 0x24, 0x0e, 0x98, 0x37, 0x76, 0x46, - 0x9d, 0x3e, 0x08, 0xba, 0x2a, 0xfd, 0x68, 0x2e, 0x0d, 0xa9, 0x77, 0xc1, 0x22, 0x48, 0xc7, 0x4e, - 0x32, 0x1c, 0xc8, 0x00, 0x77, 0x42, 0x10, 0xb4, 0x6c, 0x03, 0x67, 0x9d, 0x2b, 0xcd, 0x22, 0xc1, - 0x42, 0x58, 0x31, 0x7c, 0xf2, 0x2a, 0x03, 0xf7, 0x2e, 0x20, 0xa4, 0x2b, 0xbe, 0x87, 0xeb, 0x7c, - 0x99, 0x60, 0x81, 0xc3, 0x22, 0xc1, 0x45, 0xba, 0x6c, 0x6a, 0xfd, 0x67, 0xa0, 0xed, 0xc7, 0x14, - 0xc2, 0x38, 0xea, 0x81, 0xc0, 0x3f, 0xa1, 0xba, 0x3c, 0x86, 0x4f, 0x05, 0x35, 0x8d, 0x23, 0xa3, - 0xbd, 0xf3, 0xe0, 0x43, 0x7b, 0x7e, 0x0d, 0x33, 0xaa, 0x9d, 0x0c, 0x07, 0x32, 0xc0, 0x6d, 0xa9, - 0xb6, 0x47, 0x1d, 0xfb, 0xac, 0xff, 0x0b, 0x78, 0xe2, 0x14, 0x04, 0x75, 0xf1, 0xe5, 0xa4, 0x59, - 0x99, 0x4e, 0x9a, 0x68, 0x1e, 0x23, 0x33, 0x2a, 0x3e, 0x46, 0x9b, 0x3c, 0x01, 0xcf, 0xdc, 0x50, - 0xf4, 0x77, 0xec, 0xd5, 0x4b, 0xb6, 0x67, 0xe5, 0xf4, 0x12, 0xf0, 0xdc, 0x3b, 0x1a, 0xb7, 0x29, - 0x57, 0x44, 0x99, 0xf1, 0xd7, 0x68, 0x8b, 0x0b, 0x2a, 0x32, 0x6e, 0x56, 0x15, 0xe6, 0xdd, 0x9b, - 0x31, 0x4a, 0xea, 0x36, 0x34, 0x68, 0x2b, 0x5f, 0x13, 0x8d, 0x68, 0xfd, 0x65, 0xa0, 0xdd, 0x99, - 0xf6, 0x84, 0x71, 0x81, 0x7f, 0x58, 0xe9, 0x82, 0x7d, 0xbb, 0x2e, 0x48, 0xb7, 0xea, 0xc1, 0xeb, - 0x7a, 0xaf, 0xfa, 0x75, 0x64, 0xa1, 0x03, 0x2e, 0xaa, 0x31, 0x01, 0x21, 0x37, 0x37, 0x8e, 0xaa, - 0xed, 0x9d, 0x07, 0x6f, 0xdf, 0x58, 0xbb, 0xbb, 0xab, 0x49, 0xb5, 0xa7, 0xd2, 0x43, 0x72, 0x6b, - 0xeb, 0x79, 0x75, 0xa1, 0x66, 0xd9, 0x18, 0xfc, 0x23, 0xaa, 0x73, 0x08, 0xc0, 0x13, 0x71, 0xaa, - 0x6b, 0x7e, 0x78, 0xcb, 0x9a, 0x69, 0x1f, 0x82, 0x9e, 0xb6, 0xba, 0x77, 0x64, 0xd1, 0xd7, 0x2b, - 0x32, 0x43, 0xe2, 0x6f, 0x51, 0x5d, 0x40, 0x98, 0x04, 0x54, 0x80, 0xbe, 0xba, 0x42, 0xcf, 0xe5, - 0x9f, 0x4b, 0xc2, 0xbe, 0x89, 0xfd, 0x67, 0x5a, 0xa6, 0x2e, 0x6f, 0xd6, 0x87, 0xeb, 0x28, 0x99, - 0x61, 0xf0, 0x10, 0x35, 0xb2, 0xc4, 0x97, 0x4a, 0x21, 0x07, 0x72, 0x30, 0xd6, 0x97, 0x79, 0xff, - 0xc6, 0x86, 0x9c, 0x17, 0x2c, 0xee, 0x81, 0xde, 0xa0, 0x51, 0x8c, 0x93, 0x25, 0x34, 0x7e, 0x84, - 0xf6, 0x42, 0x16, 0x11, 0xa0, 0xfe, 0xb8, 0x07, 0x5e, 0x1c, 0xf9, 0xdc, 0xdc, 0x3c, 0x32, 0xda, - 0x35, 0xf7, 0x9e, 0x06, 0xec, 0x9d, 0x16, 0xd3, 0x64, 0x59, 0x8f, 0x4f, 0xd0, 0xdd, 0x14, 0x46, - 0x8c, 0xb3, 0x38, 0xfa, 0x92, 0x71, 0x11, 0xa7, 0xe3, 0x13, 0x16, 0x32, 0x61, 0x6e, 0x29, 0x8e, - 0x39, 0x9d, 0x34, 0xef, 0x92, 0x92, 0x3c, 0x29, 0x75, 0xb5, 0xfe, 0xac, 0xa1, 0xbd, 0xa5, 0x09, - 0xc5, 0xdf, 0xa1, 0x03, 0x2f, 0x4b, 0x53, 0x88, 0x44, 0x37, 0x0b, 0xfb, 0x90, 0xf6, 0xbc, 0x0b, - 0xf0, 0xb3, 0x00, 0x7c, 0x75, 0xa3, 0x35, 0xd7, 0xd2, 0xb5, 0x1e, 0x1c, 0x97, 0xaa, 0xc8, 0x1a, - 0x37, 0xfe, 0x0a, 0xe1, 0x48, 0x85, 0x4e, 0x19, 0xe7, 0x33, 0xe6, 0x86, 0x62, 0x1e, 0x6a, 0x26, - 0xee, 0xae, 0x28, 0x48, 0x89, 0x4b, 0xd6, 0xe8, 0x03, 0x67, 0x29, 0xf8, 0xcb, 0x35, 0x56, 0x8b, - 0x35, 0x3e, 0x2e, 0x55, 0x91, 0x35, 0x6e, 0xfc, 0x31, 0xda, 0xc9, 0x77, 0x53, 0x3d, 0xd7, 0x97, - 0xf3, 0x86, 0x86, 0xed, 0x74, 0xe7, 0x29, 0xb2, 0xa8, 0x93, 0x47, 0x8b, 0xfb, 0x1c, 0xd2, 0x11, - 0xf8, 0x4f, 0xf2, 0x97, 0x8d, 0xc5, 0x91, 0x59, 0x3b, 0x32, 0xda, 0xd5, 0xf9, 0xd1, 0xce, 0x56, - 0x14, 0xa4, 0xc4, 0x25, 0x8f, 0x96, 0x4f, 0xcd, 0xca, 0xd1, 0xb6, 0x8a, 0x47, 0x3b, 0x2f, 0x55, - 0x91, 0x35, 0x6e, 0x39, 0x7b, 0x79, 0xc9, 0x8f, 0x46, 0x94, 0x05, 0xb4, 0x1f, 0x80, 0xf9, 0x5a, - 0x71, 0xf6, 0xba, 0xc5, 0x34, 0x59, 0xd6, 0xe3, 0x27, 0x68, 0x3f, 0x0f, 0x9d, 0x47, 0x74, 0x06, - 0xa9, 0x2b, 0xc8, 0x9b, 0x1a, 0xb2, 0xdf, 0x5d, 0x16, 0x90, 0x55, 0x0f, 0xfe, 0x0c, 0x35, 0xbc, - 0x38, 0x08, 0xd4, 0x3c, 0x1e, 0xc7, 0x59, 0x24, 0xcc, 0x6d, 0x45, 0xc1, 0xf2, 0x3f, 0x74, 0x5c, - 0xc8, 0x90, 0x25, 0x65, 0xeb, 0xb9, 0x81, 0xee, 0xad, 0xf9, 0x1f, 0xe2, 0x2f, 0xd0, 0xa6, 0x18, - 0x27, 0xa0, 0x06, 0x75, 0xdb, 0xbd, 0x7f, 0xfd, 0x66, 0x3f, 0x1b, 0x27, 0xf0, 0xef, 0xa4, 0xf9, - 0xd6, 0x1a, 0x9b, 0x4c, 0x13, 0x65, 0xc4, 0x1e, 0xda, 0x4d, 0xe5, 0x76, 0xd1, 0x20, 0x97, 0xe8, - 0x57, 0xe6, 0xfd, 0xb2, 0xc7, 0x80, 0x2c, 0x0a, 0xe7, 0x4f, 0xe5, 0xfe, 0x74, 0xd2, 0xdc, 0x2d, - 0xe4, 0x48, 0x91, 0xd9, 0xfa, 0xdd, 0x40, 0x07, 0xe5, 0x66, 0x1c, 0xa0, 0x46, 0x48, 0x7f, 0x5d, - 0x6c, 0xef, 0xab, 0xbe, 0x7f, 0xf2, 0xab, 0x6a, 0xe7, 0x5f, 0x55, 0xfb, 0x69, 0x24, 0xce, 0xd2, - 0x9e, 0x48, 0x59, 0x34, 0xc8, 0x5b, 0x79, 0x5a, 0x60, 0x91, 0x25, 0xb6, 0xdb, 0xbe, 0xbc, 0xb2, - 0x2a, 0x2f, 0xae, 0xac, 0xca, 0xcb, 0x2b, 0xab, 0xf2, 0xdb, 0xd4, 0x32, 0x2e, 0xa7, 0x96, 0xf1, - 0x62, 0x6a, 0x19, 0x2f, 0xa7, 0x96, 0xf1, 0xf7, 0xd4, 0x32, 0xfe, 0xf8, 0xc7, 0xaa, 0x7c, 0xbf, - 0x31, 0xea, 0xfc, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x89, 0x78, 0x09, 0x33, 0x43, 0x09, 0x00, 0x00, + // 2051 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x24, 0x47, + 0x1d, 0x75, 0xcf, 0x87, 0x3d, 0x2e, 0xaf, 0xed, 0xdd, 0xb2, 0xb1, 0x27, 0xbb, 0x64, 0x66, 0x19, + 0x60, 0xe3, 0xcd, 0x66, 0x7b, 0xf0, 0x66, 0x13, 0xa1, 0x2c, 0x02, 0x79, 0xc6, 0x21, 0x84, 0x78, + 0x6c, 0x53, 0x5e, 0xef, 0x61, 0x09, 0x12, 0x35, 0x33, 0xb5, 0xe3, 0x8e, 0xfb, 0x4b, 0xdd, 0xd5, + 0xc3, 0x8e, 0xb8, 0x20, 0x24, 0x38, 0x71, 0xe0, 0x3f, 0x41, 0x08, 0xc1, 0x0d, 0x45, 0x88, 0xcb, + 0x5e, 0x90, 0x22, 0x2e, 0xe4, 0x64, 0xb1, 0x93, 0x13, 0x42, 0x39, 0x72, 0xc9, 0x05, 0x54, 0xd5, + 0xd5, 0xdf, 0xd5, 0x9e, 0xb1, 0x37, 0xeb, 0xa0, 0x68, 0x6f, 0x9e, 0xaa, 0xf7, 0x7b, 0xfd, 0xab, + 0xaa, 0x5f, 0xd5, 0x7b, 0x5d, 0x6d, 0x70, 0xef, 0xf8, 0xdb, 0xae, 0xaa, 0x59, 0xcd, 0x63, 0xaf, + 0x4b, 0x1c, 0x93, 0x50, 0xe2, 0x36, 0x87, 0xc4, 0xec, 0x5b, 0x4e, 0x53, 0x74, 0x60, 0x5b, 0x6b, + 0x62, 0xdb, 0x76, 0x9b, 0xc3, 0xcd, 0xe6, 0x80, 0x98, 0xc4, 0xc1, 0x94, 0xf4, 0x55, 0xdb, 0xb1, + 0xa8, 0x05, 0xa1, 0x8f, 0x51, 0xb1, 0xad, 0xa9, 0x0c, 0xa3, 0x0e, 0x37, 0xaf, 0xde, 0x1e, 0x68, + 0xf4, 0xc8, 0xeb, 0xaa, 0x3d, 0xcb, 0x68, 0x0e, 0xac, 0x81, 0xd5, 0xe4, 0xd0, 0xae, 0xf7, 0x88, + 0xff, 0xe2, 0x3f, 0xf8, 0x5f, 0x3e, 0xc5, 0xd5, 0x46, 0xec, 0x31, 0x3d, 0xcb, 0x21, 0x92, 0xc7, + 0x5c, 0xbd, 0x19, 0xc3, 0xd8, 0x96, 0xae, 0xf5, 0x46, 0xcd, 0xe1, 0x66, 0x97, 0x50, 0x9c, 0x85, + 0xde, 0x8d, 0xa0, 0x06, 0xee, 0x1d, 0x69, 0x26, 0x71, 0x46, 0x4d, 0xfb, 0x78, 0xc0, 0x1a, 0xdc, + 0xa6, 0x41, 0x28, 0x96, 0x3d, 0xa0, 0x99, 0x17, 0xe5, 0x78, 0x26, 0xd5, 0x0c, 0x92, 0x09, 0x78, + 0x73, 0x52, 0x80, 0xdb, 0x3b, 0x22, 0x06, 0xce, 0xc4, 0xbd, 0x9e, 0x17, 0xe7, 0x51, 0x4d, 0x6f, + 0x6a, 0x26, 0x75, 0xa9, 0x93, 0x0e, 0x6a, 0xfc, 0x47, 0x01, 0xb0, 0x6d, 0x99, 0xd4, 0xb1, 0x74, + 0x9d, 0x38, 0x88, 0x0c, 0x35, 0x57, 0xb3, 0x4c, 0xf8, 0x53, 0x50, 0x61, 0xe3, 0xe9, 0x63, 0x8a, + 0xab, 0xca, 0x75, 0x65, 0x63, 0xe1, 0xce, 0xb7, 0xd4, 0x68, 0x3d, 0x42, 0x7a, 0xd5, 0x3e, 0x1e, + 0xb0, 0x06, 0x57, 0x65, 0x68, 0x75, 0xb8, 0xa9, 0xee, 0x75, 0x3f, 0x20, 0x3d, 0xda, 0x21, 0x14, + 0xb7, 0xe0, 0x93, 0x93, 0xfa, 0xcc, 0xf8, 0xa4, 0x0e, 0xa2, 0x36, 0x14, 0xb2, 0xc2, 0x3d, 0x50, + 0xe2, 0xec, 0x05, 0xce, 0x7e, 0x3b, 0x97, 0x5d, 0x0c, 0x5a, 0x45, 0xf8, 0x67, 0x6f, 0x3f, 0xa6, + 0xc4, 0x64, 0xe9, 0xb5, 0x2e, 0x09, 0xea, 0xd2, 0x36, 0xa6, 0x18, 0x71, 0x22, 0xf8, 0x1a, 0xa8, + 0x38, 0x22, 0xfd, 0x6a, 0xf1, 0xba, 0xb2, 0x51, 0x6c, 0x5d, 0x16, 0xa8, 0x4a, 0x30, 0x2c, 0x14, + 0x22, 0x1a, 0x7f, 0x55, 0xc0, 0x5a, 0x76, 0xdc, 0x3b, 0x9a, 0x4b, 0xe1, 0xfb, 0x99, 0xb1, 0xab, + 0xd3, 0x8d, 0x9d, 0x45, 0xf3, 0x91, 0x87, 0x0f, 0x0e, 0x5a, 0x62, 0xe3, 0x7e, 0x0f, 0x94, 0x35, + 0x4a, 0x0c, 0xb7, 0x5a, 0xb8, 0x5e, 0xdc, 0x58, 0xb8, 0x73, 0x43, 0xcd, 0x96, 0xb9, 0x9a, 0x4d, + 0xac, 0xb5, 0x28, 0x28, 0xcb, 0xef, 0xb2, 0x60, 0xe4, 0x73, 0x34, 0xfe, 0xab, 0x80, 0xf9, 0x6d, + 0x4c, 0x0c, 0xcb, 0x3c, 0x20, 0xf4, 0x02, 0x16, 0xad, 0x0d, 0x4a, 0xae, 0x4d, 0x7a, 0x62, 0xd1, + 0xbe, 0x26, 0xcb, 0x3d, 0x4c, 0xe7, 0xc0, 0x26, 0xbd, 0x68, 0xa1, 0xd8, 0x2f, 0xc4, 0x83, 0xe1, + 0x7b, 0x60, 0xd6, 0xa5, 0x98, 0x7a, 0x2e, 0x5f, 0xa6, 0x85, 0x3b, 0x5f, 0x3f, 0x9d, 0x86, 0x43, + 0x5b, 0x4b, 0x82, 0x68, 0xd6, 0xff, 0x8d, 0x04, 0x45, 0xe3, 0x5f, 0x05, 0x00, 0x43, 0x6c, 0xdb, + 0x32, 0xfb, 0x1a, 0x65, 0xf5, 0xfb, 0x16, 0x28, 0xd1, 0x91, 0x4d, 0xf8, 0x34, 0xcc, 0xb7, 0x6e, + 0x04, 0x59, 0xdc, 0x1f, 0xd9, 0xe4, 0xb3, 0x93, 0xfa, 0x5a, 0x36, 0x82, 0xf5, 0x20, 0x1e, 0x03, + 0x77, 0xc2, 0xfc, 0x0a, 0x3c, 0xfa, 0x6e, 0xf2, 0xd1, 0x9f, 0x9d, 0xd4, 0x25, 0xe7, 0x8a, 0x1a, + 0x32, 0x25, 0x13, 0x84, 0x43, 0x00, 0x75, 0xec, 0xd2, 0xfb, 0x0e, 0x36, 0x5d, 0xff, 0x49, 0x9a, + 0x41, 0xc4, 0xc8, 0x5f, 0x9d, 0x6e, 0x79, 0x58, 0x44, 0xeb, 0xaa, 0xc8, 0x02, 0xee, 0x64, 0xd8, + 0x90, 0xe4, 0x09, 0xf0, 0x06, 0x98, 0x75, 0x08, 0x76, 0x2d, 0xb3, 0x5a, 0xe2, 0xa3, 0x08, 0x27, + 0x10, 0xf1, 0x56, 0x24, 0x7a, 0xe1, 0x4d, 0x30, 0x67, 0x10, 0xd7, 0xc5, 0x03, 0x52, 0x2d, 0x73, + 0xe0, 0xb2, 0x00, 0xce, 0x75, 0xfc, 0x66, 0x14, 0xf4, 0x37, 0x7e, 0xaf, 0x80, 0xc5, 0x70, 0xe6, + 0x2e, 0x60, 0xab, 0xb4, 0x92, 0x5b, 0xe5, 0xe5, 0x53, 0xeb, 0x24, 0x67, 0x87, 0x7c, 0x58, 0x8c, + 0xe5, 0xcc, 0x8a, 0x10, 0xfe, 0x04, 0x54, 0x5c, 0xa2, 0x93, 0x1e, 0xb5, 0x1c, 0x91, 0xf3, 0xeb, + 0x53, 0xe6, 0x8c, 0xbb, 0x44, 0x3f, 0x10, 0xa1, 0xad, 0x4b, 0x2c, 0xe9, 0xe0, 0x17, 0x0a, 0x29, + 0xe1, 0x8f, 0x40, 0x85, 0x12, 0xc3, 0xd6, 0x31, 0x25, 0x62, 0x9b, 0x24, 0xea, 0x9b, 0x95, 0x0b, + 0x23, 0xdb, 0xb7, 0xfa, 0xf7, 0x05, 0x8c, 0x6f, 0x94, 0x70, 0x1e, 0x82, 0x56, 0x14, 0xd2, 0xc0, + 0x63, 0xb0, 0xe4, 0xd9, 0x7d, 0x86, 0xa4, 0xec, 0xe8, 0x1e, 0x8c, 0x44, 0xf9, 0xdc, 0x3a, 0x75, + 0x42, 0x0e, 0x13, 0x21, 0xad, 0x35, 0xf1, 0x80, 0xa5, 0x64, 0x3b, 0x4a, 0x51, 0xc3, 0x2d, 0xb0, + 0x6c, 0x68, 0x26, 0x22, 0xb8, 0x3f, 0x3a, 0x20, 0x3d, 0xcb, 0xec, 0xbb, 0xbc, 0x80, 0xca, 0xad, + 0x75, 0x41, 0xb0, 0xdc, 0x49, 0x76, 0xa3, 0x34, 0x1e, 0xee, 0x80, 0xd5, 0xe0, 0x9c, 0xfd, 0x81, + 0xe6, 0x52, 0xcb, 0x19, 0xed, 0x68, 0x86, 0x46, 0xab, 0xb3, 0x9c, 0xa7, 0x3a, 0x3e, 0xa9, 0xaf, + 0x22, 0x49, 0x3f, 0x92, 0x46, 0x35, 0x7e, 0x33, 0x0b, 0x96, 0x53, 0xa7, 0x01, 0x7c, 0x00, 0xd6, + 0x7a, 0x9e, 0xe3, 0x10, 0x93, 0xee, 0x7a, 0x46, 0x97, 0x38, 0x07, 0xbd, 0x23, 0xd2, 0xf7, 0x74, + 0xd2, 0xe7, 0x2b, 0x5a, 0x6e, 0xd5, 0x44, 0xae, 0x6b, 0x6d, 0x29, 0x0a, 0xe5, 0x44, 0xc3, 0x1f, + 0x02, 0x68, 0xf2, 0xa6, 0x8e, 0xe6, 0xba, 0x21, 0x67, 0x81, 0x73, 0x86, 0x1b, 0x70, 0x37, 0x83, + 0x40, 0x92, 0x28, 0x96, 0x63, 0x9f, 0xb8, 0x9a, 0x43, 0xfa, 0xe9, 0x1c, 0x8b, 0xc9, 0x1c, 0xb7, + 0xa5, 0x28, 0x94, 0x13, 0x0d, 0xdf, 0x00, 0x0b, 0xfe, 0xd3, 0xf8, 0x9c, 0x8b, 0xc5, 0x59, 0x11, + 0x64, 0x0b, 0xbb, 0x51, 0x17, 0x8a, 0xe3, 0xd8, 0xd0, 0xac, 0xae, 0x4b, 0x9c, 0x21, 0xe9, 0xbf, + 0xe3, 0x7b, 0x00, 0x26, 0x94, 0x65, 0x2e, 0x94, 0xe1, 0xd0, 0xf6, 0x32, 0x08, 0x24, 0x89, 0x62, + 0x43, 0xf3, 0xab, 0x26, 0x33, 0xb4, 0xd9, 0xe4, 0xd0, 0x0e, 0xa5, 0x28, 0x94, 0x13, 0xcd, 0x6a, + 0xcf, 0x4f, 0x79, 0x6b, 0x88, 0x35, 0x1d, 0x77, 0x75, 0x52, 0x9d, 0x4b, 0xd6, 0xde, 0x6e, 0xb2, + 0x1b, 0xa5, 0xf1, 0xf0, 0x1d, 0x70, 0xc5, 0x6f, 0x3a, 0x34, 0x71, 0x48, 0x52, 0xe1, 0x24, 0x2f, + 0x09, 0x92, 0x2b, 0xbb, 0x69, 0x00, 0xca, 0xc6, 0xc0, 0xb7, 0xc0, 0x52, 0xcf, 0xd2, 0x75, 0x5e, + 0x8f, 0x6d, 0xcb, 0x33, 0x69, 0x75, 0x9e, 0xb3, 0x40, 0xb6, 0x87, 0xda, 0x89, 0x1e, 0x94, 0x42, + 0xc2, 0x87, 0x00, 0xf4, 0x02, 0x39, 0x70, 0xab, 0x20, 0x5f, 0xe8, 0xb3, 0x3a, 0x14, 0x09, 0x70, + 0xd8, 0xe4, 0xa2, 0x18, 0x5b, 0xe3, 0x43, 0x05, 0xac, 0xe7, 0xec, 0x71, 0xf8, 0xbd, 0x84, 0xea, + 0xdd, 0x4a, 0xa9, 0xde, 0xb5, 0x9c, 0xb0, 0x98, 0xf4, 0xf5, 0xc0, 0x22, 0xf3, 0x1d, 0x9a, 0x39, + 0xf0, 0x21, 0xe2, 0x04, 0x7b, 0x55, 0x96, 0x3b, 0x8a, 0x03, 0xa3, 0x63, 0xf8, 0xca, 0xf8, 0xa4, + 0xbe, 0x98, 0xe8, 0x43, 0x49, 0xce, 0xc6, 0x2f, 0x0b, 0x00, 0x6c, 0x13, 0x5b, 0xb7, 0x46, 0x06, + 0x31, 0x2f, 0xc2, 0xb5, 0x6c, 0x27, 0x5c, 0x4b, 0x43, 0xba, 0x10, 0x61, 0x3e, 0xb9, 0xb6, 0x65, + 0x27, 0x65, 0x5b, 0xbe, 0x31, 0x81, 0xe7, 0x74, 0xdf, 0xf2, 0x8f, 0x22, 0x58, 0x89, 0xc0, 0x91, + 0x71, 0xb9, 0x97, 0x58, 0xc2, 0x57, 0x52, 0x4b, 0xb8, 0x2e, 0x09, 0x79, 0x6e, 0xce, 0xe5, 0xf3, + 0x77, 0x10, 0xf0, 0x03, 0xb0, 0xc4, 0xac, 0x8a, 0x5f, 0x08, 0xdc, 0x08, 0xcd, 0x9e, 0xd9, 0x08, + 0x85, 0x42, 0xb6, 0x93, 0x60, 0x42, 0x29, 0xe6, 0x1c, 0xe3, 0x35, 0xf7, 0xbc, 0x8d, 0x57, 0xe3, + 0x0f, 0x0a, 0x58, 0x8a, 0x96, 0xe9, 0x02, 0x6c, 0x52, 0x3b, 0x69, 0x93, 0x6a, 0xa7, 0xd7, 0x65, + 0x8e, 0x4f, 0xfa, 0x7b, 0x29, 0x9e, 0x35, 0x37, 0x4a, 0x1b, 0xec, 0x85, 0xca, 0xd6, 0xb5, 0x1e, + 0x76, 0x85, 0xac, 0x5e, 0xf2, 0x5f, 0xa6, 0xfc, 0x36, 0x14, 0xf6, 0x26, 0x2c, 0x55, 0xe1, 0xf9, + 0x5a, 0xaa, 0xe2, 0xe7, 0x63, 0xa9, 0xee, 0x83, 0x8a, 0x1b, 0x98, 0xa9, 0x12, 0xa7, 0xbc, 0x31, + 0x69, 0x3b, 0x0b, 0x1f, 0x15, 0xb2, 0x86, 0x0e, 0x2a, 0x64, 0x92, 0x79, 0xa7, 0xf2, 0x17, 0xe9, + 0x9d, 0xd8, 0x16, 0xb6, 0xb1, 0xe7, 0x92, 0x3e, 0xaf, 0xfb, 0x4a, 0xb4, 0x85, 0xf7, 0x79, 0x2b, + 0x12, 0xbd, 0xf0, 0x10, 0xac, 0xdb, 0x8e, 0x35, 0x70, 0x88, 0xeb, 0x6e, 0x13, 0xdc, 0xd7, 0x35, + 0x93, 0x04, 0x03, 0xf0, 0x55, 0xef, 0xda, 0xf8, 0xa4, 0xbe, 0xbe, 0x2f, 0x87, 0xa0, 0xbc, 0xd8, + 0xc6, 0x9f, 0x4b, 0xe0, 0x72, 0xfa, 0x44, 0xcc, 0x31, 0x22, 0xca, 0xb9, 0x8c, 0xc8, 0x6b, 0xb1, + 0x12, 0xf5, 0x5d, 0x5a, 0xec, 0x9d, 0x3f, 0x53, 0xa6, 0x5b, 0x60, 0x59, 0x18, 0x8f, 0xa0, 0x53, + 0x58, 0xb1, 0x70, 0x79, 0x0e, 0x93, 0xdd, 0x28, 0x8d, 0x67, 0xf6, 0x22, 0x72, 0x0d, 0x01, 0x49, + 0x29, 0x69, 0x2f, 0xb6, 0xd2, 0x00, 0x94, 0x8d, 0x81, 0x1d, 0xb0, 0xe2, 0x99, 0x59, 0x2a, 0xbf, + 0x5c, 0xae, 0x09, 0xaa, 0x95, 0xc3, 0x2c, 0x04, 0xc9, 0xe2, 0xe0, 0x8f, 0x13, 0x8e, 0x63, 0x96, + 0x1f, 0x04, 0xaf, 0x9c, 0x5e, 0xd1, 0x53, 0x5b, 0x0e, 0x78, 0x0f, 0x2c, 0x3a, 0xdc, 0x50, 0x06, + 0x59, 0xfa, 0xa6, 0xec, 0x2b, 0x22, 0x6c, 0x11, 0xc5, 0x3b, 0x51, 0x12, 0x2b, 0xf1, 0x51, 0x95, + 0x69, 0x7d, 0x54, 0xe3, 0x4f, 0x0a, 0x80, 0xd9, 0x2d, 0x38, 0xf1, 0xe5, 0x3e, 0x13, 0x11, 0x93, + 0xc8, 0xbe, 0xdc, 0xe1, 0xdc, 0x9a, 0xec, 0x70, 0xa2, 0x13, 0x74, 0x3a, 0x8b, 0x23, 0x66, 0xe0, + 0x62, 0x2e, 0x66, 0xa6, 0xb0, 0x38, 0x51, 0x3e, 0xcf, 0x66, 0x71, 0x62, 0x3c, 0xa7, 0x5b, 0x9c, + 0x7f, 0x17, 0xc0, 0x4a, 0x04, 0x9e, 0xda, 0xe2, 0x48, 0x42, 0x5e, 0x5c, 0xce, 0x4c, 0xbe, 0x9c, + 0x61, 0xb6, 0x23, 0x9a, 0xba, 0xff, 0x13, 0xdb, 0x11, 0x25, 0x94, 0x63, 0x3b, 0x7e, 0x57, 0x88, + 0x67, 0xfd, 0xa5, 0xb7, 0x1d, 0xcf, 0x7e, 0xb9, 0xd2, 0xf8, 0x4b, 0x11, 0x5c, 0x4e, 0x6f, 0xc1, + 0x84, 0x0e, 0x2a, 0x13, 0x75, 0x70, 0x1f, 0xac, 0x3e, 0xf2, 0x74, 0x7d, 0xc4, 0xa7, 0x21, 0x26, + 0x86, 0xbe, 0x82, 0x7e, 0x55, 0x44, 0xae, 0x7e, 0x5f, 0x82, 0x41, 0xd2, 0xc8, 0x1c, 0x4d, 0x2f, + 0x9e, 0x4b, 0xd3, 0x33, 0x6a, 0x53, 0x3a, 0x83, 0xda, 0x48, 0xf5, 0xb9, 0x7c, 0x0e, 0x7d, 0x9e, + 0x5a, 0x50, 0x25, 0xc7, 0xd5, 0xc4, 0x77, 0xf8, 0x5f, 0x2b, 0x60, 0x4d, 0xfe, 0xfa, 0x0c, 0x75, + 0xb0, 0x64, 0xe0, 0xc7, 0xf1, 0xcb, 0x8b, 0x49, 0x82, 0xe1, 0x51, 0x4d, 0x57, 0xfd, 0xaf, 0x3b, + 0xea, 0xbb, 0x26, 0xdd, 0x73, 0x0e, 0xa8, 0xa3, 0x99, 0x03, 0x5f, 0x60, 0x3b, 0x09, 0x2e, 0x94, + 0xe2, 0x6e, 0x7c, 0xa2, 0x80, 0xf5, 0x1c, 0x95, 0xbb, 0xd8, 0x4c, 0xe0, 0x43, 0x50, 0x31, 0xf0, + 0xe3, 0x03, 0xcf, 0x19, 0x04, 0x92, 0x7c, 0xf6, 0xe7, 0xf0, 0x8d, 0xdc, 0x11, 0x2c, 0x28, 0xe4, + 0x6b, 0xec, 0x81, 0xeb, 0x89, 0x41, 0xb2, 0x4d, 0x43, 0x1e, 0x79, 0x3a, 0xdf, 0x3f, 0xc2, 0x53, + 0xdc, 0x02, 0xf3, 0x36, 0x76, 0xa8, 0x16, 0x9a, 0xd1, 0x72, 0x6b, 0x71, 0x7c, 0x52, 0x9f, 0xdf, + 0x0f, 0x1a, 0x51, 0xd4, 0xdf, 0xf8, 0x55, 0x01, 0x2c, 0xc4, 0x48, 0x2e, 0x40, 0xdf, 0xdf, 0x4e, + 0xe8, 0xbb, 0xf4, 0x8b, 0x49, 0x7c, 0x54, 0x79, 0x02, 0xdf, 0x49, 0x09, 0xfc, 0x37, 0x27, 0x11, + 0x9d, 0xae, 0xf0, 0x9f, 0x16, 0xc0, 0x6a, 0x0c, 0x1d, 0x49, 0xfc, 0x77, 0x12, 0x12, 0xbf, 0x91, + 0x92, 0xf8, 0xaa, 0x2c, 0xe6, 0x85, 0xc6, 0x4f, 0xd6, 0xf8, 0x3f, 0x2a, 0x60, 0x39, 0x36, 0x77, + 0x17, 0x20, 0xf2, 0xdb, 0x49, 0x91, 0xaf, 0x4f, 0xa8, 0x97, 0x1c, 0x95, 0x7f, 0x52, 0x4e, 0xe4, + 0xfd, 0xa5, 0x97, 0xf9, 0x9f, 0x83, 0xd5, 0xa1, 0xa5, 0x7b, 0x06, 0x69, 0xeb, 0x58, 0x33, 0x02, + 0x00, 0x53, 0x32, 0x36, 0x89, 0x37, 0xa5, 0xf4, 0xc4, 0x71, 0x35, 0x97, 0x12, 0x93, 0x3e, 0x88, + 0x22, 0x23, 0x2d, 0x7e, 0x20, 0xa1, 0x43, 0xd2, 0x87, 0xc0, 0x37, 0xc0, 0x02, 0xd3, 0x54, 0xad, + 0x47, 0x76, 0xb1, 0x11, 0xd4, 0x54, 0xf8, 0x7d, 0xe0, 0x20, 0xea, 0x42, 0x71, 0x1c, 0x3c, 0x02, + 0x2b, 0xb6, 0xd5, 0xef, 0x60, 0x13, 0x0f, 0x08, 0x3b, 0xff, 0xf7, 0xf9, 0xff, 0x42, 0xf0, 0x7b, + 0x87, 0xf9, 0xd6, 0x9b, 0xc1, 0x0b, 0xe9, 0x7e, 0x16, 0xc2, 0x3c, 0xbb, 0xa4, 0x99, 0xef, 0x67, + 0x19, 0x25, 0x34, 0x32, 0x9f, 0xb3, 0xe6, 0x32, 0xff, 0x03, 0x20, 0x2b, 0xae, 0x73, 0x7e, 0xd0, + 0xca, 0xbb, 0x51, 0xa9, 0x9c, 0xeb, 0x6b, 0xd4, 0xa7, 0x25, 0x70, 0x25, 0x73, 0x40, 0x7e, 0x81, + 0x77, 0x1a, 0x19, 0xb7, 0x54, 0x3c, 0x83, 0x5b, 0xda, 0x02, 0xcb, 0xe2, 0x43, 0x58, 0xca, 0x6c, + 0x85, 0x76, 0xb4, 0x9d, 0xec, 0x46, 0x69, 0xbc, 0xec, 0x4e, 0xa5, 0x7c, 0xc6, 0x3b, 0x95, 0x78, + 0x16, 0xe2, 0xff, 0x37, 0xfc, 0xaa, 0xcb, 0x66, 0x21, 0xfe, 0x8d, 0x23, 0x8d, 0x87, 0xdf, 0x0d, + 0x4a, 0x2a, 0x64, 0x98, 0xe3, 0x0c, 0xa9, 0x1a, 0x09, 0x09, 0x52, 0xe8, 0x67, 0xfa, 0xd8, 0xf3, + 0xbe, 0xe4, 0x63, 0xcf, 0xc6, 0x84, 0x52, 0x9e, 0xde, 0x2a, 0xfe, 0x4d, 0x01, 0x2f, 0xe5, 0xee, + 0x01, 0xb8, 0x95, 0xd0, 0xd9, 0xdb, 0x29, 0x9d, 0x7d, 0x39, 0x37, 0x30, 0x26, 0xb6, 0x86, 0xfc, + 0x42, 0xe4, 0xee, 0xc4, 0x0b, 0x11, 0x89, 0x8b, 0x9a, 0x7c, 0x33, 0xd2, 0xda, 0x78, 0xf2, 0xb4, + 0x36, 0xf3, 0xd1, 0xd3, 0xda, 0xcc, 0xc7, 0x4f, 0x6b, 0x33, 0xbf, 0x18, 0xd7, 0x94, 0x27, 0xe3, + 0x9a, 0xf2, 0xd1, 0xb8, 0xa6, 0x7c, 0x3c, 0xae, 0x29, 0xff, 0x1c, 0xd7, 0x94, 0xdf, 0x7e, 0x52, + 0x9b, 0x79, 0x58, 0x18, 0x6e, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x70, 0x5f, 0xbf, 0x58, 0x3d, + 0x26, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/generated.proto index 9c872a8bc..c0499d325 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/generated.proto @@ -31,6 +31,38 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1"; +// ControllerRevision implements an immutable snapshot of state data. Clients +// are responsible for serializing and deserializing the objects that contain +// their internal state. +// Once a ControllerRevision has been successfully created, it can not be updated. +// The API Server will fail validation of all requests that attempt to mutate +// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both +// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, +// it may be subject to name and representation changes in future releases, and clients should not +// depend on its stability. It is primarily for internal use by controllers. +message ControllerRevision { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Data is the serialized representation of the state. + optional k8s.io.apimachinery.pkg.runtime.RawExtension data = 2; + + // Revision indicates the revision of the state represented by Data. + optional int64 revision = 3; +} + +// ControllerRevisionList is a resource containing a list of ControllerRevision objects. +message ControllerRevisionList { + // 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 the list of ControllerRevisions + repeated ControllerRevision items = 2; +} + // DaemonSet represents the configuration of a daemon set. message DaemonSet { // Standard object's metadata. @@ -52,6 +84,27 @@ message DaemonSet { optional DaemonSetStatus status = 3; } +// DaemonSetCondition describes the state of a DaemonSet at a certain point. +message DaemonSetCondition { + // Type of DaemonSet condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // Last time the condition transitioned from one status to another. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // The reason for the condition's last transition. + // +optional + optional string reason = 4; + + // A human readable message indicating details about the transition. + // +optional + optional string message = 5; +} + // DaemonSetList is a collection of daemon sets. message DaemonSetList { // Standard list metadata. @@ -67,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. @@ -143,6 +195,12 @@ message DaemonSetStatus { // create the name for the newest ControllerRevision. // +optional optional int32 collisionCount = 9; + + // Represents the latest available observations of a DaemonSet's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated DaemonSetCondition conditions = 10; } // DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet. @@ -160,6 +218,262 @@ message DaemonSetUpdateStrategy { optional RollingUpdateDaemonSet rollingUpdate = 2; } +// Deployment enables declarative updates for Pods and ReplicaSets. +message Deployment { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the desired behavior of the Deployment. + // +optional + optional DeploymentSpec spec = 2; + + // Most recently observed status of the Deployment. + // +optional + optional DeploymentStatus status = 3; +} + +// DeploymentCondition describes the state of a deployment at a certain point. +message DeploymentCondition { + // Type of deployment condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // The last time this condition was updated. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6; + + // Last time the condition transitioned from one status to another. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7; + + // The reason for the condition's last transition. + optional string reason = 4; + + // A human readable message indicating details about the transition. + optional string message = 5; +} + +// DeploymentList is a list of Deployments. +message DeploymentList { + // Standard list metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Deployments. + repeated Deployment items = 2; +} + +// DeploymentSpec is the specification of the desired behavior of the Deployment. +message DeploymentSpec { + // Number of desired pods. This is a pointer to distinguish between explicit + // zero and not specified. Defaults to 1. + // +optional + optional int32 replicas = 1; + + // 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. + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; + + // Template describes the pods that will be created. + optional k8s.io.api.core.v1.PodTemplateSpec template = 3; + + // The deployment strategy to use to replace existing pods with new ones. + // +optional + optional DeploymentStrategy strategy = 4; + + // 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) + // +optional + optional int32 minReadySeconds = 5; + + // The number of old ReplicaSets to retain to allow rollback. + // This is a pointer to distinguish between explicit zero and not specified. + // Defaults to 10. + // +optional + optional int32 revisionHistoryLimit = 6; + + // Indicates that the deployment is paused. + // +optional + optional bool paused = 7; + + // The maximum time in seconds for a deployment to make progress before it + // is considered to be failed. The deployment controller will continue to + // process failed deployments and a condition with a ProgressDeadlineExceeded + // reason will be surfaced in the deployment status. Note that progress will + // not be estimated during the time a deployment is paused. Defaults to 600s. + optional int32 progressDeadlineSeconds = 9; +} + +// DeploymentStatus is the most recently observed status of the Deployment. +message DeploymentStatus { + // The generation observed by the deployment controller. + // +optional + optional int64 observedGeneration = 1; + + // Total number of non-terminated pods targeted by this deployment (their labels match the selector). + // +optional + optional int32 replicas = 2; + + // Total number of non-terminated pods targeted by this deployment that have the desired template spec. + // +optional + optional int32 updatedReplicas = 3; + + // Total number of ready pods targeted by this deployment. + // +optional + optional int32 readyReplicas = 7; + + // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. + // +optional + optional int32 availableReplicas = 4; + + // Total number of unavailable pods targeted by this deployment. This is the total number of + // pods that are still required for the deployment to have 100% available capacity. They may + // either be pods that are running but not yet available or pods that still have not been created. + // +optional + optional int32 unavailableReplicas = 5; + + // Represents the latest available observations of a deployment's current state. + // +patchMergeKey=type + // +patchStrategy=merge + repeated DeploymentCondition conditions = 6; + + // Count of hash collisions for the Deployment. The Deployment controller uses this + // field as a collision avoidance mechanism when it needs to create the name for the + // newest ReplicaSet. + // +optional + optional int32 collisionCount = 8; +} + +// DeploymentStrategy describes how to replace existing pods with new ones. +message DeploymentStrategy { + // Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. + // +optional + optional string type = 1; + + // Rolling update config params. Present only if DeploymentStrategyType = + // RollingUpdate. + // --- + // TODO: Update this to follow our convention for oneOf, whatever we decide it + // to be. + // +optional + optional RollingUpdateDeployment rollingUpdate = 2; +} + +// ReplicaSet ensures that a specified number of pod replicas are running at any given time. +message ReplicaSet { + // If the Labels of a ReplicaSet are empty, they are defaulted to + // be the same as the Pod(s) that the ReplicaSet manages. + // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the specification of the desired behavior of the ReplicaSet. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + optional ReplicaSetSpec spec = 2; + + // Status is the most recently observed status of the ReplicaSet. + // This data may be out of date by some window of time. + // Populated by the system. + // Read-only. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + optional ReplicaSetStatus status = 3; +} + +// ReplicaSetCondition describes the state of a replica set at a certain point. +message ReplicaSetCondition { + // Type of replica set condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // The last time the condition transitioned from one status to another. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // The reason for the condition's last transition. + // +optional + optional string reason = 4; + + // A human readable message indicating details about the transition. + // +optional + optional string message = 5; +} + +// ReplicaSetList is a collection of ReplicaSets. +message ReplicaSetList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // List of ReplicaSets. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller + repeated ReplicaSet items = 2; +} + +// ReplicaSetSpec is the specification of a ReplicaSet. +message ReplicaSetSpec { + // 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 + // +optional + optional int32 replicas = 1; + + // 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) + // +optional + optional int32 minReadySeconds = 4; + + // 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 + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; + + // 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 + // +optional + optional k8s.io.api.core.v1.PodTemplateSpec template = 3; +} + +// ReplicaSetStatus represents the current status of a ReplicaSet. +message ReplicaSetStatus { + // Replicas is the most recently oberved number of replicas. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller + optional int32 replicas = 1; + + // The number of pods that have labels matching the labels of the pod template of the replicaset. + // +optional + optional int32 fullyLabeledReplicas = 2; + + // The number of ready replicas for this replica set. + // +optional + optional int32 readyReplicas = 4; + + // The number of available replicas (ready for at least minReadySeconds) for this replica set. + // +optional + optional int32 availableReplicas = 5; + + // ObservedGeneration reflects the generation of the most recently observed ReplicaSet. + // +optional + optional int64 observedGeneration = 3; + + // Represents the latest available observations of a replica set's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated ReplicaSetCondition conditions = 6; +} + // Spec to control the desired behavior of daemon set rolling update. message RollingUpdateDaemonSet { // The maximum number of DaemonSet pods that can be unavailable during the @@ -180,3 +494,208 @@ message RollingUpdateDaemonSet { optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1; } +// Spec to control the desired behavior of rolling update. +message RollingUpdateDeployment { + // The maximum number of pods that can be unavailable during the update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // Absolute number is calculated from percentage by rounding down. + // This can not be 0 if MaxSurge is 0. + // Defaults to 25%. + // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods + // immediately when the rolling update starts. Once new pods are ready, old RC + // can be scaled down further, followed by scaling up the new RC, ensuring + // that the total number of pods available at all times during the update is at + // least 70% of desired pods. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1; + + // The maximum number of pods that can be scheduled above the desired number of + // pods. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up. + // Defaults to 25%. + // Example: when this is set to 30%, the new RC can be scaled up immediately when + // the rolling update starts, such that the total number of old and new pods do not exceed + // 130% of desired pods. Once old pods have been killed, + // new RC can be scaled up further, ensuring that total number of pods running + // at any time during the update is atmost 130% of desired pods. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; +} + +// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. +message RollingUpdateStatefulSetStrategy { + // Partition indicates the ordinal at which the StatefulSet should be + // partitioned. + // Default value is 0. + // +optional + optional int32 partition = 1; +} + +// StatefulSet represents a set of pods with consistent identities. +// Identities are defined as: +// - Network: A single stable DNS and hostname. +// - Storage: As many VolumeClaims as requested. +// The StatefulSet guarantees that a given network identity will always +// map to the same storage identity. +message StatefulSet { + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the desired identities of pods in this set. + // +optional + optional StatefulSetSpec spec = 2; + + // Status is the current status of Pods in this StatefulSet. This data + // may be out of date by some window of time. + // +optional + optional StatefulSetStatus status = 3; +} + +// StatefulSetCondition describes the state of a statefulset at a certain point. +message StatefulSetCondition { + // Type of statefulset condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // Last time the condition transitioned from one status to another. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // The reason for the condition's last transition. + // +optional + optional string reason = 4; + + // A human readable message indicating details about the transition. + // +optional + optional string message = 5; +} + +// StatefulSetList is a collection of StatefulSets. +message StatefulSetList { + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + repeated StatefulSet items = 2; +} + +// A StatefulSetSpec is the specification of a StatefulSet. +message StatefulSetSpec { + // 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. + // TODO: Consider a rename of this field. + // +optional + optional int32 replicas = 1; + + // 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 + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; + + // 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. + optional k8s.io.api.core.v1.PodTemplateSpec template = 3; + + // 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. + // TODO: Define the behavior if a claim already exists with the same name. + // +optional + repeated k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 4; + + // 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. + optional string serviceName = 5; + + // podManagementPolicy controls how pods are created during initial scale up, + // when replacing pods on nodes, or when scaling down. The default policy is + // `OrderedReady`, where pods are created in increasing order (pod-0, then + // pod-1, etc) and the controller will wait until each pod is ready before + // continuing. When scaling down, the pods are removed in the opposite order. + // The alternative policy is `Parallel` which will create pods in parallel + // to match the desired scale without waiting, and on scale down will delete + // all pods at once. + // +optional + optional string podManagementPolicy = 6; + + // updateStrategy indicates the StatefulSetUpdateStrategy that will be + // employed to update Pods in the StatefulSet when a revision is made to + // Template. + optional StatefulSetUpdateStrategy updateStrategy = 7; + + // revisionHistoryLimit is the maximum number of revisions that will + // be maintained in the StatefulSet's revision history. The revision history + // consists of all revisions not represented by a currently applied + // StatefulSetSpec version. The default value is 10. + optional int32 revisionHistoryLimit = 8; +} + +// StatefulSetStatus represents the current state of a StatefulSet. +message StatefulSetStatus { + // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the + // StatefulSet's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 1; + + // replicas is the number of Pods created by the StatefulSet controller. + optional int32 replicas = 2; + + // readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. + optional int32 readyReplicas = 3; + + // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version + // indicated by currentRevision. + optional int32 currentReplicas = 4; + + // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version + // indicated by updateRevision. + optional int32 updatedReplicas = 5; + + // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the + // sequence [0,currentReplicas). + optional string currentRevision = 6; + + // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence + // [replicas-updatedReplicas,replicas) + optional string updateRevision = 7; + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + optional int32 collisionCount = 9; + + // Represents the latest available observations of a statefulset's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated StatefulSetCondition conditions = 10; +} + +// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet +// controller will use to perform updates. It includes any additional parameters +// necessary to perform the update for the indicated strategy. +message StatefulSetUpdateStrategy { + // Type indicates the type of the StatefulSetUpdateStrategy. + // Default is RollingUpdate. + // +optional + optional string type = 1; + + // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. + // +optional + optional RollingUpdateStatefulSetStrategy rollingUpdate = 2; +} + diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/register.go index 586b53ef0..027101046 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/register.go @@ -41,11 +41,19 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, + &Deployment{}, + &DeploymentList{}, + &StatefulSet{}, + &StatefulSetList{}, &DaemonSet{}, &DaemonSetList{}, + &ReplicaSet{}, + &ReplicaSetList{}, + &ControllerRevision{}, + &ControllerRevisionList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/types.go index dc589e658..913c3b478 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/types.go @@ -19,14 +19,439 @@ package v1 import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" ) const ( ControllerRevisionHashLabelKey = "controller-revision-hash" + StatefulSetRevisionLabel = ControllerRevisionHashLabelKey + DeprecatedRollbackTo = "deprecated.deployment.rollback.to" DeprecatedTemplateGeneration = "deprecated.daemonset.template.generation" ) +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// StatefulSet represents a set of pods with consistent identities. +// Identities are defined as: +// - Network: A single stable DNS and hostname. +// - Storage: As many VolumeClaims as requested. +// The StatefulSet guarantees that a given network identity will always +// map to the same storage identity. +type StatefulSet struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Spec defines the desired identities of pods in this set. + // +optional + Spec StatefulSetSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` + + // Status is the current status of Pods in this StatefulSet. This data + // may be out of date by some window of time. + // +optional + Status StatefulSetStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// PodManagementPolicyType defines the policy for creating pods under a stateful set. +type PodManagementPolicyType string + +const ( + // OrderedReadyPodManagement will create pods in strictly increasing order on + // scale up and strictly decreasing order on scale down, progressing only when + // the previous pod is ready or terminated. At most one pod will be changed + // at any time. + OrderedReadyPodManagement PodManagementPolicyType = "OrderedReady" + // ParallelPodManagement will create and delete pods as soon as the stateful set + // replica count is changed, and will not wait for pods to be ready or complete + // termination. + ParallelPodManagement = "Parallel" +) + +// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet +// controller will use to perform updates. It includes any additional parameters +// necessary to perform the update for the indicated strategy. +type StatefulSetUpdateStrategy struct { + // Type indicates the type of the StatefulSetUpdateStrategy. + // Default is RollingUpdate. + // +optional + Type StatefulSetUpdateStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=StatefulSetStrategyType"` + // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. + // +optional + RollingUpdate *RollingUpdateStatefulSetStrategy `json:"rollingUpdate,omitempty" protobuf:"bytes,2,opt,name=rollingUpdate"` +} + +// StatefulSetUpdateStrategyType is a string enumeration type that enumerates +// all possible update strategies for the StatefulSet controller. +type StatefulSetUpdateStrategyType string + +const ( + // RollingUpdateStatefulSetStrategyType indicates that update will be + // applied to all Pods in the StatefulSet with respect to the StatefulSet + // ordering constraints. When a scale operation is performed with this + // strategy, new Pods will be created from the specification version indicated + // by the StatefulSet's updateRevision. + RollingUpdateStatefulSetStrategyType = "RollingUpdate" + // OnDeleteStatefulSetStrategyType triggers the legacy behavior. Version + // tracking and ordered rolling restarts are disabled. Pods are recreated + // from the StatefulSetSpec when they are manually deleted. When a scale + // operation is performed with this strategy,specification version indicated + // by the StatefulSet's currentRevision. + OnDeleteStatefulSetStrategyType = "OnDelete" +) + +// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. +type RollingUpdateStatefulSetStrategy struct { + // Partition indicates the ordinal at which the StatefulSet should be + // partitioned. + // Default value is 0. + // +optional + Partition *int32 `json:"partition,omitempty" protobuf:"varint,1,opt,name=partition"` +} + +// A StatefulSetSpec is the specification of a StatefulSet. +type StatefulSetSpec struct { + // 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. + // TODO: Consider a rename of this field. + // +optional + Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"` + + // 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 + 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 + // will fulfill this Template, but have a unique identity from the rest + // of the StatefulSet. + Template v1.PodTemplateSpec `json:"template" protobuf:"bytes,3,opt,name=template"` + + // 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. + // TODO: Define the behavior if a claim already exists with the same name. + // +optional + VolumeClaimTemplates []v1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" protobuf:"bytes,4,rep,name=volumeClaimTemplates"` + + // 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. + ServiceName string `json:"serviceName" protobuf:"bytes,5,opt,name=serviceName"` + + // podManagementPolicy controls how pods are created during initial scale up, + // when replacing pods on nodes, or when scaling down. The default policy is + // `OrderedReady`, where pods are created in increasing order (pod-0, then + // pod-1, etc) and the controller will wait until each pod is ready before + // continuing. When scaling down, the pods are removed in the opposite order. + // The alternative policy is `Parallel` which will create pods in parallel + // to match the desired scale without waiting, and on scale down will delete + // all pods at once. + // +optional + PodManagementPolicy PodManagementPolicyType `json:"podManagementPolicy,omitempty" protobuf:"bytes,6,opt,name=podManagementPolicy,casttype=PodManagementPolicyType"` + + // updateStrategy indicates the StatefulSetUpdateStrategy that will be + // employed to update Pods in the StatefulSet when a revision is made to + // Template. + UpdateStrategy StatefulSetUpdateStrategy `json:"updateStrategy,omitempty" protobuf:"bytes,7,opt,name=updateStrategy"` + + // revisionHistoryLimit is the maximum number of revisions that will + // be maintained in the StatefulSet's revision history. The revision history + // consists of all revisions not represented by a currently applied + // StatefulSetSpec version. The default value is 10. + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty" protobuf:"varint,8,opt,name=revisionHistoryLimit"` +} + +// StatefulSetStatus represents the current state of a StatefulSet. +type StatefulSetStatus struct { + // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the + // StatefulSet's generation, which is updated on mutation by the API Server. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` + + // replicas is the number of Pods created by the StatefulSet controller. + Replicas int32 `json:"replicas" protobuf:"varint,2,opt,name=replicas"` + + // readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. + ReadyReplicas int32 `json:"readyReplicas,omitempty" protobuf:"varint,3,opt,name=readyReplicas"` + + // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version + // indicated by currentRevision. + CurrentReplicas int32 `json:"currentReplicas,omitempty" protobuf:"varint,4,opt,name=currentReplicas"` + + // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version + // indicated by updateRevision. + UpdatedReplicas int32 `json:"updatedReplicas,omitempty" protobuf:"varint,5,opt,name=updatedReplicas"` + + // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the + // sequence [0,currentReplicas). + CurrentRevision string `json:"currentRevision,omitempty" protobuf:"bytes,6,opt,name=currentRevision"` + + // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence + // [replicas-updatedReplicas,replicas) + UpdateRevision string `json:"updateRevision,omitempty" protobuf:"bytes,7,opt,name=updateRevision"` + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` + + // Represents the latest available observations of a statefulset's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + Conditions []StatefulSetCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,10,rep,name=conditions"` +} + +type StatefulSetConditionType string + +// StatefulSetCondition describes the state of a statefulset at a certain point. +type StatefulSetCondition struct { + // Type of statefulset condition. + Type StatefulSetConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=StatefulSetConditionType"` + // Status of the condition, one of True, False, Unknown. + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + // Last time the condition transitioned from one status to another. + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // The reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // A human readable message indicating details about the transition. + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// StatefulSetList is a collection of StatefulSets. +type StatefulSetList struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Items []StatefulSet `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Deployment enables declarative updates for Pods and ReplicaSets. +type Deployment struct { + metav1.TypeMeta `json:",inline"` + // Standard object metadata. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Specification of the desired behavior of the Deployment. + // +optional + Spec DeploymentSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` + + // Most recently observed status of the Deployment. + // +optional + Status DeploymentStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// DeploymentSpec is the specification of the desired behavior of the Deployment. +type DeploymentSpec struct { + // Number of desired pods. This is a pointer to distinguish between explicit + // zero and not specified. Defaults to 1. + // +optional + Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"` + + // 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. + 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"` + + // The deployment strategy to use to replace existing pods with new ones. + // +optional + Strategy DeploymentStrategy `json:"strategy,omitempty" protobuf:"bytes,4,opt,name=strategy"` + + // 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) + // +optional + MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,5,opt,name=minReadySeconds"` + + // The number of old ReplicaSets to retain to allow rollback. + // This is a pointer to distinguish between explicit zero and not specified. + // Defaults to 10. + // +optional + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty" protobuf:"varint,6,opt,name=revisionHistoryLimit"` + + // Indicates that the deployment is paused. + // +optional + Paused bool `json:"paused,omitempty" protobuf:"varint,7,opt,name=paused"` + + // The maximum time in seconds for a deployment to make progress before it + // is considered to be failed. The deployment controller will continue to + // process failed deployments and a condition with a ProgressDeadlineExceeded + // reason will be surfaced in the deployment status. Note that progress will + // not be estimated during the time a deployment is paused. Defaults to 600s. + ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" protobuf:"varint,9,opt,name=progressDeadlineSeconds"` +} + +const ( + // DefaultDeploymentUniqueLabelKey is the default key of the selector that is added + // to existing RCs (and label key that is added to its pods) to prevent the existing RCs + // to select new pods (and old pods being select by new RC). + DefaultDeploymentUniqueLabelKey string = "pod-template-hash" +) + +// DeploymentStrategy describes how to replace existing pods with new ones. +type DeploymentStrategy struct { + // Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. + // +optional + Type DeploymentStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=DeploymentStrategyType"` + + // Rolling update config params. Present only if DeploymentStrategyType = + // RollingUpdate. + //--- + // TODO: Update this to follow our convention for oneOf, whatever we decide it + // to be. + // +optional + RollingUpdate *RollingUpdateDeployment `json:"rollingUpdate,omitempty" protobuf:"bytes,2,opt,name=rollingUpdate"` +} + +type DeploymentStrategyType string + +const ( + // Kill all existing pods before creating new ones. + RecreateDeploymentStrategyType DeploymentStrategyType = "Recreate" + + // Replace the old RCs by new one using rolling update i.e gradually scale down the old RCs and scale up the new one. + RollingUpdateDeploymentStrategyType DeploymentStrategyType = "RollingUpdate" +) + +// Spec to control the desired behavior of rolling update. +type RollingUpdateDeployment struct { + // The maximum number of pods that can be unavailable during the update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // Absolute number is calculated from percentage by rounding down. + // This can not be 0 if MaxSurge is 0. + // Defaults to 25%. + // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods + // immediately when the rolling update starts. Once new pods are ready, old RC + // can be scaled down further, followed by scaling up the new RC, ensuring + // that the total number of pods available at all times during the update is at + // least 70% of desired pods. + // +optional + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,1,opt,name=maxUnavailable"` + + // The maximum number of pods that can be scheduled above the desired number of + // pods. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up. + // Defaults to 25%. + // Example: when this is set to 30%, the new RC can be scaled up immediately when + // the rolling update starts, such that the total number of old and new pods do not exceed + // 130% of desired pods. Once old pods have been killed, + // new RC can be scaled up further, ensuring that total number of pods running + // at any time during the update is atmost 130% of desired pods. + // +optional + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,2,opt,name=maxSurge"` +} + +// DeploymentStatus is the most recently observed status of the Deployment. +type DeploymentStatus struct { + // The generation observed by the deployment controller. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` + + // Total number of non-terminated pods targeted by this deployment (their labels match the selector). + // +optional + Replicas int32 `json:"replicas,omitempty" protobuf:"varint,2,opt,name=replicas"` + + // Total number of non-terminated pods targeted by this deployment that have the desired template spec. + // +optional + UpdatedReplicas int32 `json:"updatedReplicas,omitempty" protobuf:"varint,3,opt,name=updatedReplicas"` + + // Total number of ready pods targeted by this deployment. + // +optional + ReadyReplicas int32 `json:"readyReplicas,omitempty" protobuf:"varint,7,opt,name=readyReplicas"` + + // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. + // +optional + AvailableReplicas int32 `json:"availableReplicas,omitempty" protobuf:"varint,4,opt,name=availableReplicas"` + + // Total number of unavailable pods targeted by this deployment. This is the total number of + // pods that are still required for the deployment to have 100% available capacity. They may + // either be pods that are running but not yet available or pods that still have not been created. + // +optional + UnavailableReplicas int32 `json:"unavailableReplicas,omitempty" protobuf:"varint,5,opt,name=unavailableReplicas"` + + // Represents the latest available observations of a deployment's current state. + // +patchMergeKey=type + // +patchStrategy=merge + Conditions []DeploymentCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,6,rep,name=conditions"` + + // Count of hash collisions for the Deployment. The Deployment controller uses this + // field as a collision avoidance mechanism when it needs to create the name for the + // newest ReplicaSet. + // +optional + CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"` +} + +type DeploymentConditionType string + +// These are valid conditions of a deployment. +const ( + // Available means the deployment is available, ie. at least the minimum available + // replicas required are up and running for at least minReadySeconds. + DeploymentAvailable DeploymentConditionType = "Available" + // Progressing means the deployment is progressing. Progress for a deployment is + // considered when a new replica set is created or adopted, and when new pods scale + // up or old pods scale down. Progress is not estimated for paused deployments or + // when progressDeadlineSeconds is not specified. + DeploymentProgressing DeploymentConditionType = "Progressing" + // ReplicaFailure is added in a deployment when one of its pods fails to be created + // or deleted. + DeploymentReplicaFailure DeploymentConditionType = "ReplicaFailure" +) + +// DeploymentCondition describes the state of a deployment at a certain point. +type DeploymentCondition struct { + // Type of deployment condition. + Type DeploymentConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=DeploymentConditionType"` + // Status of the condition, one of True, False, Unknown. + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + // The last time this condition was updated. + LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,6,opt,name=lastUpdateTime"` + // Last time the condition transitioned from one status to another. + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,7,opt,name=lastTransitionTime"` + // The reason for the condition's last transition. + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // A human readable message indicating details about the transition. + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// DeploymentList is a list of Deployments. +type DeploymentList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata. + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is the list of Deployments. + Items []Deployment `json:"items" protobuf:"bytes,2,rep,name=items"` +} + // DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet. type DaemonSetUpdateStrategy struct { // Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate. @@ -76,10 +501,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 @@ -152,6 +576,33 @@ type DaemonSetStatus struct { // create the name for the newest ControllerRevision. // +optional CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` + + // Represents the latest available observations of a DaemonSet's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + Conditions []DaemonSetCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,10,rep,name=conditions"` +} + +type DaemonSetConditionType string + +// TODO: Add valid condition types of a DaemonSet. + +// DaemonSetCondition describes the state of a DaemonSet at a certain point. +type DaemonSetCondition struct { + // Type of DaemonSet condition. + Type DaemonSetConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=DaemonSetConditionType"` + // Status of the condition, one of True, False, Unknown. + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + // Last time the condition transitioned from one status to another. + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // The reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // A human readable message indicating details about the transition. + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` } // +genclient @@ -199,3 +650,169 @@ type DaemonSetList struct { // A list of daemon sets. Items []DaemonSet `json:"items" protobuf:"bytes,2,rep,name=items"` } + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ReplicaSet ensures that a specified number of pod replicas are running at any given time. +type ReplicaSet struct { + metav1.TypeMeta `json:",inline"` + + // If the Labels of a ReplicaSet are empty, they are defaulted to + // be the same as the Pod(s) that the ReplicaSet manages. + // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Spec defines the specification of the desired behavior of the ReplicaSet. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + Spec ReplicaSetSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` + + // Status is the most recently observed status of the ReplicaSet. + // This data may be out of date by some window of time. + // Populated by the system. + // Read-only. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + Status ReplicaSetStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ReplicaSetList is a collection of ReplicaSets. +type ReplicaSetList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // List of ReplicaSets. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller + Items []ReplicaSet `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// ReplicaSetSpec is the specification of a ReplicaSet. +type ReplicaSetSpec struct { + // 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 + // +optional + Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"` + + // 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) + // +optional + MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,4,opt,name=minReadySeconds"` + + // 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 + 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. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template + // +optional + Template v1.PodTemplateSpec `json:"template,omitempty" protobuf:"bytes,3,opt,name=template"` +} + +// ReplicaSetStatus represents the current status of a ReplicaSet. +type ReplicaSetStatus struct { + // Replicas is the most recently oberved number of replicas. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller + Replicas int32 `json:"replicas" protobuf:"varint,1,opt,name=replicas"` + + // The number of pods that have labels matching the labels of the pod template of the replicaset. + // +optional + FullyLabeledReplicas int32 `json:"fullyLabeledReplicas,omitempty" protobuf:"varint,2,opt,name=fullyLabeledReplicas"` + + // The number of ready replicas for this replica set. + // +optional + ReadyReplicas int32 `json:"readyReplicas,omitempty" protobuf:"varint,4,opt,name=readyReplicas"` + + // The number of available replicas (ready for at least minReadySeconds) for this replica set. + // +optional + AvailableReplicas int32 `json:"availableReplicas,omitempty" protobuf:"varint,5,opt,name=availableReplicas"` + + // ObservedGeneration reflects the generation of the most recently observed ReplicaSet. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"` + + // Represents the latest available observations of a replica set's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + Conditions []ReplicaSetCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,6,rep,name=conditions"` +} + +type ReplicaSetConditionType string + +// These are valid conditions of a replica set. +const ( + // ReplicaSetReplicaFailure is added in a replica set when one of its pods fails to be created + // due to insufficient quota, limit ranges, pod security policy, node selectors, etc. or deleted + // due to kubelet being down or finalizers are failing. + ReplicaSetReplicaFailure ReplicaSetConditionType = "ReplicaFailure" +) + +// ReplicaSetCondition describes the state of a replica set at a certain point. +type ReplicaSetCondition struct { + // Type of replica set condition. + Type ReplicaSetConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=ReplicaSetConditionType"` + // Status of the condition, one of True, False, Unknown. + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + // The last time the condition transitioned from one status to another. + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // The reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // A human readable message indicating details about the transition. + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ControllerRevision implements an immutable snapshot of state data. Clients +// are responsible for serializing and deserializing the objects that contain +// their internal state. +// Once a ControllerRevision has been successfully created, it can not be updated. +// The API Server will fail validation of all requests that attempt to mutate +// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both +// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, +// it may be subject to name and representation changes in future releases, and clients should not +// depend on its stability. It is primarily for internal use by controllers. +type ControllerRevision struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Data is the serialized representation of the state. + Data runtime.RawExtension `json:"data,omitempty" protobuf:"bytes,2,opt,name=data"` + + // Revision indicates the revision of the state represented by Data. + Revision int64 `json:"revision" protobuf:"varint,3,opt,name=revision"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ControllerRevisionList is a resource containing a list of ControllerRevision objects. +type ControllerRevisionList struct { + metav1.TypeMeta `json:",inline"` + + // 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 the list of ControllerRevisions + Items []ControllerRevision `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/types_swagger_doc_generated.go index 4cc96dc44..76305393e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/types_swagger_doc_generated.go @@ -27,6 +27,27 @@ package v1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE +var map_ControllerRevision = map[string]string{ + "": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "data": "Data is the serialized representation of the state.", + "revision": "Revision indicates the revision of the state represented by Data.", +} + +func (ControllerRevision) SwaggerDoc() map[string]string { + return map_ControllerRevision +} + +var map_ControllerRevisionList = map[string]string{ + "": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", + "metadata": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "items": "Items is the list of ControllerRevisions", +} + +func (ControllerRevisionList) SwaggerDoc() map[string]string { + return map_ControllerRevisionList +} + var map_DaemonSet = map[string]string{ "": "DaemonSet represents the configuration of a daemon set.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -38,6 +59,19 @@ func (DaemonSet) SwaggerDoc() map[string]string { return map_DaemonSet } +var map_DaemonSetCondition = map[string]string{ + "": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "type": "Type of DaemonSet condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "Last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (DaemonSetCondition) SwaggerDoc() map[string]string { + return map_DaemonSetCondition +} + var map_DaemonSetList = map[string]string{ "": "DaemonSetList is a collection of daemon sets.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -50,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).", @@ -72,6 +106,7 @@ var map_DaemonSetStatus = map[string]string{ "numberAvailable": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", "numberUnavailable": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", "collisionCount": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "conditions": "Represents the latest available observations of a DaemonSet's current state.", } func (DaemonSetStatus) SwaggerDoc() map[string]string { @@ -88,6 +123,143 @@ func (DaemonSetUpdateStrategy) SwaggerDoc() map[string]string { return map_DaemonSetUpdateStrategy } +var map_Deployment = map[string]string{ + "": "Deployment enables declarative updates for Pods and ReplicaSets.", + "metadata": "Standard object metadata.", + "spec": "Specification of the desired behavior of the Deployment.", + "status": "Most recently observed status of the Deployment.", +} + +func (Deployment) SwaggerDoc() map[string]string { + return map_Deployment +} + +var map_DeploymentCondition = map[string]string{ + "": "DeploymentCondition describes the state of a deployment at a certain point.", + "type": "Type of deployment condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastUpdateTime": "The last time this condition was updated.", + "lastTransitionTime": "Last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (DeploymentCondition) SwaggerDoc() map[string]string { + return map_DeploymentCondition +} + +var map_DeploymentList = map[string]string{ + "": "DeploymentList is a list of Deployments.", + "metadata": "Standard list metadata.", + "items": "Items is the list of Deployments.", +} + +func (DeploymentList) SwaggerDoc() map[string]string { + return map_DeploymentList +} + +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. 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)", + "revisionHistoryLimit": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", + "paused": "Indicates that the deployment is paused.", + "progressDeadlineSeconds": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", +} + +func (DeploymentSpec) SwaggerDoc() map[string]string { + return map_DeploymentSpec +} + +var map_DeploymentStatus = map[string]string{ + "": "DeploymentStatus is the most recently observed status of the Deployment.", + "observedGeneration": "The generation observed by the deployment controller.", + "replicas": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", + "updatedReplicas": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", + "readyReplicas": "Total number of ready pods targeted by this deployment.", + "availableReplicas": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", + "unavailableReplicas": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", + "conditions": "Represents the latest available observations of a deployment's current state.", + "collisionCount": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", +} + +func (DeploymentStatus) SwaggerDoc() map[string]string { + return map_DeploymentStatus +} + +var map_DeploymentStrategy = map[string]string{ + "": "DeploymentStrategy describes how to replace existing pods with new ones.", + "type": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", + "rollingUpdate": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", +} + +func (DeploymentStrategy) SwaggerDoc() map[string]string { + return map_DeploymentStrategy +} + +var map_ReplicaSet = map[string]string{ + "": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", + "metadata": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "spec": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "status": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", +} + +func (ReplicaSet) SwaggerDoc() map[string]string { + return map_ReplicaSet +} + +var map_ReplicaSetCondition = map[string]string{ + "": "ReplicaSetCondition describes the state of a replica set at a certain point.", + "type": "Type of replica set condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "The last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (ReplicaSetCondition) SwaggerDoc() map[string]string { + return map_ReplicaSetCondition +} + +var map_ReplicaSetList = map[string]string{ + "": "ReplicaSetList is a collection of ReplicaSets.", + "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "items": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", +} + +func (ReplicaSetList) SwaggerDoc() map[string]string { + return map_ReplicaSetList +} + +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. 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", +} + +func (ReplicaSetSpec) SwaggerDoc() map[string]string { + return map_ReplicaSetSpec +} + +var map_ReplicaSetStatus = map[string]string{ + "": "ReplicaSetStatus represents the current status of a ReplicaSet.", + "replicas": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", + "fullyLabeledReplicas": "The number of pods that have labels matching the labels of the pod template of the replicaset.", + "readyReplicas": "The number of ready replicas for this replica set.", + "availableReplicas": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", + "observedGeneration": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", + "conditions": "Represents the latest available observations of a replica set's current state.", +} + +func (ReplicaSetStatus) SwaggerDoc() map[string]string { + return map_ReplicaSetStatus +} + var map_RollingUpdateDaemonSet = map[string]string{ "": "Spec to control the desired behavior of daemon set rolling update.", "maxUnavailable": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", @@ -97,4 +269,97 @@ func (RollingUpdateDaemonSet) SwaggerDoc() map[string]string { return map_RollingUpdateDaemonSet } +var map_RollingUpdateDeployment = map[string]string{ + "": "Spec to control the desired behavior of rolling update.", + "maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", + "maxSurge": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", +} + +func (RollingUpdateDeployment) SwaggerDoc() map[string]string { + return map_RollingUpdateDeployment +} + +var map_RollingUpdateStatefulSetStrategy = map[string]string{ + "": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", + "partition": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", +} + +func (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string { + return map_RollingUpdateStatefulSetStrategy +} + +var map_StatefulSet = map[string]string{ + "": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", + "spec": "Spec defines the desired identities of pods in this set.", + "status": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", +} + +func (StatefulSet) SwaggerDoc() map[string]string { + return map_StatefulSet +} + +var map_StatefulSetCondition = map[string]string{ + "": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "type": "Type of statefulset condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "Last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (StatefulSetCondition) SwaggerDoc() map[string]string { + return map_StatefulSetCondition +} + +var map_StatefulSetList = map[string]string{ + "": "StatefulSetList is a collection of StatefulSets.", +} + +func (StatefulSetList) SwaggerDoc() map[string]string { + return map_StatefulSetList +} + +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. 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.", + "podManagementPolicy": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", + "updateStrategy": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", + "revisionHistoryLimit": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", +} + +func (StatefulSetSpec) SwaggerDoc() map[string]string { + return map_StatefulSetSpec +} + +var map_StatefulSetStatus = map[string]string{ + "": "StatefulSetStatus represents the current state of a StatefulSet.", + "observedGeneration": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", + "replicas": "replicas is the number of Pods created by the StatefulSet controller.", + "readyReplicas": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", + "currentReplicas": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", + "updatedReplicas": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", + "currentRevision": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", + "updateRevision": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", + "collisionCount": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "conditions": "Represents the latest available observations of a statefulset's current state.", +} + +func (StatefulSetStatus) SwaggerDoc() map[string]string { + return map_StatefulSetStatus +} + +var map_StatefulSetUpdateStrategy = map[string]string{ + "": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", + "type": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", + "rollingUpdate": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", +} + +func (StatefulSetUpdateStrategy) SwaggerDoc() map[string]string { + return map_StatefulSetUpdateStrategy +} + // AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/zz_generated.deepcopy.go index 72d654a53..c41db2981 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1/zz_generated.deepcopy.go @@ -21,48 +21,72 @@ limitations under the License. package v1 import ( + core_v1 "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSet).DeepCopyInto(out.(*DaemonSet)) - return nil - }, InType: reflect.TypeOf(&DaemonSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetList).DeepCopyInto(out.(*DaemonSetList)) - return nil - }, InType: reflect.TypeOf(&DaemonSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetSpec).DeepCopyInto(out.(*DaemonSetSpec)) - return nil - }, InType: reflect.TypeOf(&DaemonSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetStatus).DeepCopyInto(out.(*DaemonSetStatus)) - return nil - }, InType: reflect.TypeOf(&DaemonSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetUpdateStrategy).DeepCopyInto(out.(*DaemonSetUpdateStrategy)) - return nil - }, InType: reflect.TypeOf(&DaemonSetUpdateStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDaemonSet).DeepCopyInto(out.(*RollingUpdateDaemonSet)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDaemonSet{})}, - ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Data.DeepCopyInto(&out.Data) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevision. +func (in *ControllerRevision) DeepCopy() *ControllerRevision { + if in == nil { + return nil + } + out := new(ControllerRevision) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ControllerRevision) 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 *ControllerRevisionList) DeepCopyInto(out *ControllerRevisionList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ControllerRevision, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevisionList. +func (in *ControllerRevisionList) DeepCopy() *ControllerRevisionList { + if in == nil { + return nil + } + out := new(ControllerRevisionList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ControllerRevisionList) 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. @@ -94,6 +118,23 @@ func (in *DaemonSet) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition. +func (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition { + if in == nil { + return nil + } + out := new(DaemonSetCondition) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) { *out = *in @@ -176,6 +217,13 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { **out = **in } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DaemonSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } @@ -215,26 +263,604 @@ func (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { +func (in *Deployment) DeepCopyInto(out *Deployment) { *out = *in - if in.MaxUnavailable != nil { - in, out := &in.MaxUnavailable, &out.MaxUnavailable + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment. +func (in *Deployment) DeepCopy() *Deployment { + if in == nil { + return nil + } + out := new(Deployment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Deployment) 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 *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) { + *out = *in + in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime) + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition. +func (in *DeploymentCondition) DeepCopy() *DeploymentCondition { + if in == nil { + return nil + } + out := new(DeploymentCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentList) DeepCopyInto(out *DeploymentList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Deployment, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList. +func (in *DeploymentList) DeepCopy() *DeploymentList { + if in == nil { + return nil + } + out := new(DeploymentList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DeploymentList) 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 *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas if *in == nil { *out = nil } else { - *out = new(intstr.IntOrString) + *out = new(int32) + **out = **in + } + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + if *in == nil { + *out = nil + } else { + *out = new(meta_v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + in.Template.DeepCopyInto(&out.Template) + in.Strategy.DeepCopyInto(&out.Strategy) + if in.RevisionHistoryLimit != nil { + in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.ProgressDeadlineSeconds != nil { + in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds + if *in == nil { + *out = nil + } else { + *out = new(int32) **out = **in } } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet. -func (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec. +func (in *DeploymentSpec) DeepCopy() *DeploymentSpec { if in == nil { return nil } - out := new(RollingUpdateDaemonSet) + out := new(DeploymentSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DeploymentCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus. +func (in *DeploymentStatus) DeepCopy() *DeploymentStatus { + if in == nil { + return nil + } + out := new(DeploymentStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) { + *out = *in + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + if *in == nil { + *out = nil + } else { + *out = new(RollingUpdateDeployment) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy. +func (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy { + if in == nil { + return nil + } + out := new(DeploymentStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet. +func (in *ReplicaSet) DeepCopy() *ReplicaSet { + if in == nil { + return nil + } + out := new(ReplicaSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ReplicaSet) 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 *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition. +func (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition { + if in == nil { + return nil + } + out := new(ReplicaSetCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ReplicaSet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList. +func (in *ReplicaSetList) DeepCopy() *ReplicaSetList { + if in == nil { + return nil + } + out := new(ReplicaSetList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ReplicaSetList) 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 *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + if *in == nil { + *out = nil + } else { + *out = new(meta_v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + in.Template.DeepCopyInto(&out.Template) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec. +func (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec { + if in == nil { + return nil + } + out := new(ReplicaSetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ReplicaSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus. +func (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus { + if in == nil { + return nil + } + out := new(ReplicaSetStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { + *out = *in + if in.MaxUnavailable != nil { + in, out := &in.MaxUnavailable, &out.MaxUnavailable + if *in == nil { + *out = nil + } else { + *out = new(intstr.IntOrString) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet. +func (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet { + if in == nil { + return nil + } + out := new(RollingUpdateDaemonSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) { + *out = *in + if in.MaxUnavailable != nil { + in, out := &in.MaxUnavailable, &out.MaxUnavailable + if *in == nil { + *out = nil + } else { + *out = new(intstr.IntOrString) + **out = **in + } + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + if *in == nil { + *out = nil + } else { + *out = new(intstr.IntOrString) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment. +func (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment { + if in == nil { + return nil + } + out := new(RollingUpdateDeployment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy) { + *out = *in + if in.Partition != nil { + in, out := &in.Partition, &out.Partition + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy. +func (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy { + if in == nil { + return nil + } + out := new(RollingUpdateStatefulSetStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSet) DeepCopyInto(out *StatefulSet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet. +func (in *StatefulSet) DeepCopy() *StatefulSet { + if in == nil { + return nil + } + out := new(StatefulSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *StatefulSet) 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 *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition. +func (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition { + if in == nil { + return nil + } + out := new(StatefulSetCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]StatefulSet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList. +func (in *StatefulSetList) DeepCopy() *StatefulSetList { + if in == nil { + return nil + } + out := new(StatefulSetList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *StatefulSetList) 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 *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + if *in == nil { + *out = nil + } else { + *out = new(meta_v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + in.Template.DeepCopyInto(&out.Template) + if in.VolumeClaimTemplates != nil { + in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates + *out = make([]core_v1.PersistentVolumeClaim, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) + if in.RevisionHistoryLimit != nil { + in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec. +func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec { + if in == nil { + return nil + } + out := new(StatefulSetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { + *out = *in + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]StatefulSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus. +func (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus { + if in == nil { + return nil + } + out := new(StatefulSetStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy) { + *out = *in + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + if *in == nil { + *out = nil + } else { + *out = new(RollingUpdateStatefulSetStrategy) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy. +func (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy { + if in == nil { + return nil + } + out := new(StatefulSetUpdateStrategy) in.DeepCopyInto(out) return out } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/BUILD index 212c7d3ce..f40a41e3e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/BUILD @@ -21,7 +21,6 @@ go_library( "//vendor/github.com/gogo/protobuf/sortkeys: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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/doc.go index 158f0000c..6047ed501 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true package v1beta1 // import "k8s.io/api/apps/v1beta1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go index 6d5e1f7a1..baee7a975 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go @@ -41,6 +41,7 @@ limitations under the License. ScaleSpec ScaleStatus StatefulSet + StatefulSetCondition StatefulSetList StatefulSetSpec StatefulSetStatus @@ -144,22 +145,26 @@ func (m *StatefulSet) Reset() { *m = StatefulSet{} } func (*StatefulSet) ProtoMessage() {} func (*StatefulSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } +func (m *StatefulSetCondition) Reset() { *m = StatefulSetCondition{} } +func (*StatefulSetCondition) ProtoMessage() {} +func (*StatefulSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } + func (m *StatefulSetList) Reset() { *m = StatefulSetList{} } func (*StatefulSetList) ProtoMessage() {} -func (*StatefulSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } +func (*StatefulSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } func (m *StatefulSetSpec) Reset() { *m = StatefulSetSpec{} } func (*StatefulSetSpec) ProtoMessage() {} -func (*StatefulSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } +func (*StatefulSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } func (m *StatefulSetStatus) Reset() { *m = StatefulSetStatus{} } func (*StatefulSetStatus) ProtoMessage() {} -func (*StatefulSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } +func (*StatefulSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } func (m *StatefulSetUpdateStrategy) Reset() { *m = StatefulSetUpdateStrategy{} } func (*StatefulSetUpdateStrategy) ProtoMessage() {} func (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{19} + return fileDescriptorGenerated, []int{20} } func init() { @@ -179,6 +184,7 @@ func init() { proto.RegisterType((*ScaleSpec)(nil), "k8s.io.api.apps.v1beta1.ScaleSpec") proto.RegisterType((*ScaleStatus)(nil), "k8s.io.api.apps.v1beta1.ScaleStatus") proto.RegisterType((*StatefulSet)(nil), "k8s.io.api.apps.v1beta1.StatefulSet") + proto.RegisterType((*StatefulSetCondition)(nil), "k8s.io.api.apps.v1beta1.StatefulSetCondition") proto.RegisterType((*StatefulSetList)(nil), "k8s.io.api.apps.v1beta1.StatefulSetList") proto.RegisterType((*StatefulSetSpec)(nil), "k8s.io.api.apps.v1beta1.StatefulSetSpec") proto.RegisterType((*StatefulSetStatus)(nil), "k8s.io.api.apps.v1beta1.StatefulSetStatus") @@ -840,6 +846,48 @@ func (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *StatefulSetCondition) 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 *StatefulSetCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n24, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil +} + func (m *StatefulSetList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -858,11 +906,11 @@ func (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n24, err := m.ListMeta.MarshalTo(dAtA[i:]) + n25, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n25 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -902,20 +950,20 @@ func (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n25, err := m.Selector.MarshalTo(dAtA[i:]) + n26, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n26 } dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n26, err := m.Template.MarshalTo(dAtA[i:]) + n27, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n27 if len(m.VolumeClaimTemplates) > 0 { for _, msg := range m.VolumeClaimTemplates { dAtA[i] = 0x22 @@ -939,11 +987,11 @@ func (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) - n27, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) + n28, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n28 if m.RevisionHistoryLimit != nil { dAtA[i] = 0x40 i++ @@ -997,6 +1045,18 @@ func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) } + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x52 + 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 } @@ -1023,11 +1083,11 @@ func (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n28, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + n29, err := m.RollingUpdate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n29 } return i, nil } @@ -1286,6 +1346,22 @@ func (m *StatefulSet) Size() (n int) { return n } +func (m *StatefulSetCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *StatefulSetList) Size() (n int) { var l int _ = l @@ -1347,6 +1423,12 @@ func (m *StatefulSetStatus) Size() (n int) { if m.CollisionCount != nil { n += 1 + sovGenerated(uint64(*m.CollisionCount)) } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -1591,6 +1673,20 @@ func (this *StatefulSet) String() string { }, "") return s } +func (this *StatefulSetCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} func (this *StatefulSetList) String() string { if this == nil { return "nil" @@ -1632,6 +1728,7 @@ func (this *StatefulSetStatus) String() string { `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "StatefulSetCondition", "StatefulSetCondition", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -4017,6 +4114,202 @@ func (m *StatefulSet) Unmarshal(dAtA []byte) error { } return nil } +func (m *StatefulSetCondition) 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: StatefulSetCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatefulSetCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 = StatefulSetConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", 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.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + 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 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", 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.Message = 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 *StatefulSetList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -4603,6 +4896,37 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { } } m.CollisionCount = &v + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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.Conditions = append(m.Conditions, StatefulSetCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -4846,119 +5170,122 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1820 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4b, 0x6f, 0x1b, 0xc9, - 0x11, 0xd6, 0x50, 0xa4, 0x44, 0xb6, 0x56, 0x94, 0xd5, 0x52, 0x24, 0xae, 0x36, 0xa1, 0x04, 0x66, - 0xb1, 0x2b, 0xef, 0xae, 0x86, 0x6b, 0xd9, 0x31, 0xfc, 0x00, 0x8c, 0x88, 0x94, 0x63, 0xcb, 0x90, - 0x22, 0xb9, 0x29, 0x39, 0x88, 0x93, 0x00, 0x6e, 0x0e, 0xdb, 0xd4, 0x58, 0xf3, 0xc2, 0x4c, 0x0f, - 0x63, 0x22, 0x97, 0xdc, 0x13, 0xc0, 0x39, 0xe7, 0x57, 0xe4, 0x18, 0x24, 0xb7, 0x9c, 0x74, 0x09, - 0x60, 0xe4, 0x12, 0x9f, 0x84, 0x98, 0xbe, 0xe6, 0x9a, 0x8b, 0x81, 0x00, 0x41, 0xf7, 0xf4, 0xbc, - 0x67, 0x24, 0x2a, 0x40, 0x74, 0xc8, 0x8d, 0xd3, 0x55, 0xf5, 0x55, 0x75, 0x77, 0x75, 0xd5, 0x57, - 0x04, 0x3f, 0x3c, 0xb9, 0xe3, 0xc8, 0xaa, 0xd9, 0x3c, 0x71, 0xbb, 0xc4, 0x36, 0x08, 0x25, 0x4e, - 0x73, 0x40, 0x8c, 0x9e, 0x69, 0x37, 0x85, 0x00, 0x5b, 0x6a, 0x13, 0x5b, 0x96, 0xd3, 0x1c, 0xdc, - 0xe8, 0x12, 0x8a, 0x6f, 0x34, 0xfb, 0xc4, 0x20, 0x36, 0xa6, 0xa4, 0x27, 0x5b, 0xb6, 0x49, 0x4d, - 0xb8, 0xec, 0x29, 0xca, 0xd8, 0x52, 0x65, 0xa6, 0x28, 0x0b, 0xc5, 0x95, 0x8d, 0xbe, 0x4a, 0x8f, - 0xdd, 0xae, 0xac, 0x98, 0x7a, 0xb3, 0x6f, 0xf6, 0xcd, 0x26, 0xd7, 0xef, 0xba, 0x2f, 0xf9, 0x17, - 0xff, 0xe0, 0xbf, 0x3c, 0x9c, 0x95, 0x46, 0xc4, 0xa1, 0x62, 0xda, 0xa4, 0x39, 0x48, 0xf9, 0x5a, - 0xb9, 0x1e, 0xd1, 0xb1, 0x4c, 0x4d, 0x55, 0x86, 0x79, 0x61, 0xad, 0xdc, 0x0a, 0x55, 0x75, 0xac, - 0x1c, 0xab, 0x06, 0xb1, 0x87, 0x4d, 0xeb, 0xa4, 0xcf, 0x16, 0x9c, 0xa6, 0x4e, 0x28, 0xce, 0x72, - 0xd0, 0xcc, 0xb3, 0xb2, 0x5d, 0x83, 0xaa, 0x3a, 0x49, 0x19, 0xdc, 0xbe, 0xc8, 0xc0, 0x51, 0x8e, - 0x89, 0x8e, 0x53, 0x76, 0x37, 0xf3, 0xec, 0x5c, 0xaa, 0x6a, 0x4d, 0xd5, 0xa0, 0x0e, 0xb5, 0x93, - 0x46, 0x8d, 0x7f, 0x49, 0x00, 0xb6, 0x4d, 0x83, 0xda, 0xa6, 0xa6, 0x11, 0x1b, 0x91, 0x81, 0xea, - 0xa8, 0xa6, 0x01, 0x5f, 0x80, 0x32, 0xdb, 0x4f, 0x0f, 0x53, 0x5c, 0x93, 0xd6, 0xa4, 0xf5, 0x99, - 0xcd, 0x6f, 0xe5, 0xf0, 0x52, 0x02, 0x78, 0xd9, 0x3a, 0xe9, 0xb3, 0x05, 0x47, 0x66, 0xda, 0xf2, - 0xe0, 0x86, 0xbc, 0xdf, 0x7d, 0x45, 0x14, 0xba, 0x47, 0x28, 0x6e, 0xc1, 0xd3, 0xb3, 0xd5, 0x89, - 0xd1, 0xd9, 0x2a, 0x08, 0xd7, 0x50, 0x80, 0x0a, 0xf7, 0x41, 0x91, 0xa3, 0x17, 0x38, 0xfa, 0x46, - 0x2e, 0xba, 0xd8, 0xb4, 0x8c, 0xf0, 0x2f, 0x1f, 0xbe, 0xa6, 0xc4, 0x60, 0xe1, 0xb5, 0x3e, 0x11, - 0xd0, 0xc5, 0x6d, 0x4c, 0x31, 0xe2, 0x40, 0xf0, 0x1b, 0x50, 0xb6, 0x45, 0xf8, 0xb5, 0xc9, 0x35, - 0x69, 0x7d, 0xb2, 0x75, 0x4d, 0x68, 0x95, 0xfd, 0x6d, 0xa1, 0x40, 0xa3, 0x71, 0x2a, 0x81, 0xa5, - 0xf4, 0xbe, 0x77, 0x55, 0x87, 0xc2, 0x9f, 0xa7, 0xf6, 0x2e, 0x8f, 0xb7, 0x77, 0x66, 0xcd, 0x77, - 0x1e, 0x38, 0xf6, 0x57, 0x22, 0xfb, 0x3e, 0x00, 0x25, 0x95, 0x12, 0xdd, 0xa9, 0x15, 0xd6, 0x26, - 0xd7, 0x67, 0x36, 0xbf, 0x96, 0x73, 0x72, 0x5d, 0x4e, 0x47, 0xd7, 0x9a, 0x15, 0xb8, 0xa5, 0x1d, - 0x86, 0x80, 0x3c, 0xa0, 0xc6, 0x6f, 0x0b, 0x00, 0x6c, 0x13, 0x4b, 0x33, 0x87, 0x3a, 0x31, 0xe8, - 0x15, 0x5c, 0xdd, 0x0e, 0x28, 0x3a, 0x16, 0x51, 0xc4, 0xd5, 0x7d, 0x99, 0xbb, 0x83, 0x30, 0xa8, - 0x8e, 0x45, 0x94, 0xf0, 0xd2, 0xd8, 0x17, 0xe2, 0x10, 0xf0, 0x29, 0x98, 0x72, 0x28, 0xa6, 0xae, - 0xc3, 0xaf, 0x6c, 0x66, 0xf3, 0xfa, 0x38, 0x60, 0xdc, 0xa0, 0x55, 0x15, 0x70, 0x53, 0xde, 0x37, - 0x12, 0x40, 0x8d, 0xbf, 0x4f, 0x82, 0x85, 0x50, 0xb9, 0x6d, 0x1a, 0x3d, 0x95, 0xb2, 0x94, 0xbe, - 0x0f, 0x8a, 0x74, 0x68, 0x11, 0x7e, 0x26, 0x95, 0xd6, 0x97, 0x7e, 0x30, 0x87, 0x43, 0x8b, 0x7c, - 0x3c, 0x5b, 0x5d, 0xce, 0x30, 0x61, 0x22, 0xc4, 0x8d, 0xe0, 0x6e, 0x10, 0x67, 0x81, 0x9b, 0xdf, - 0x8a, 0x3b, 0xff, 0x78, 0xb6, 0x9a, 0x51, 0x6b, 0xe4, 0x00, 0x29, 0x1e, 0x22, 0xfc, 0x02, 0x4c, - 0xd9, 0x04, 0x3b, 0xa6, 0x51, 0x2b, 0x72, 0xb4, 0x60, 0x2b, 0x88, 0xaf, 0x22, 0x21, 0x85, 0xd7, - 0xc1, 0xb4, 0x4e, 0x1c, 0x07, 0xf7, 0x49, 0xad, 0xc4, 0x15, 0xe7, 0x84, 0xe2, 0xf4, 0x9e, 0xb7, - 0x8c, 0x7c, 0x39, 0x7c, 0x05, 0xaa, 0x1a, 0x76, 0xe8, 0x91, 0xd5, 0xc3, 0x94, 0x1c, 0xaa, 0x3a, - 0xa9, 0x4d, 0xf1, 0x03, 0xfd, 0x6a, 0xbc, 0xbb, 0x67, 0x16, 0xad, 0x25, 0x81, 0x5e, 0xdd, 0x8d, - 0x21, 0xa1, 0x04, 0x32, 0x1c, 0x00, 0xc8, 0x56, 0x0e, 0x6d, 0x6c, 0x38, 0xde, 0x41, 0x31, 0x7f, - 0xd3, 0x97, 0xf6, 0xb7, 0x22, 0xfc, 0xc1, 0xdd, 0x14, 0x1a, 0xca, 0xf0, 0xd0, 0xf8, 0xa3, 0x04, - 0xaa, 0xe1, 0x35, 0x5d, 0xc1, 0x5b, 0x7d, 0x1c, 0x7f, 0xab, 0xdf, 0x1f, 0x23, 0x39, 0x73, 0xde, - 0xe8, 0x3f, 0x0b, 0x00, 0x86, 0x4a, 0xc8, 0xd4, 0xb4, 0x2e, 0x56, 0x4e, 0xe0, 0x1a, 0x28, 0x1a, - 0x58, 0xf7, 0x73, 0x32, 0x78, 0x20, 0x3f, 0xc6, 0x3a, 0x41, 0x5c, 0x02, 0xdf, 0x48, 0x00, 0xba, - 0xfc, 0xe8, 0x7b, 0x5b, 0x86, 0x61, 0x52, 0xcc, 0x4e, 0xc3, 0x0f, 0xa8, 0x3d, 0x46, 0x40, 0xbe, - 0x2f, 0xf9, 0x28, 0x85, 0xf2, 0xd0, 0xa0, 0xf6, 0x30, 0xbc, 0x85, 0xb4, 0x02, 0xca, 0x70, 0x0d, - 0x7f, 0x06, 0x80, 0x2d, 0x30, 0x0f, 0x4d, 0xf1, 0x6c, 0xf3, 0x6b, 0x80, 0xef, 0xbe, 0x6d, 0x1a, - 0x2f, 0xd5, 0x7e, 0x58, 0x58, 0x50, 0x00, 0x81, 0x22, 0x70, 0x2b, 0x0f, 0xc1, 0x72, 0x4e, 0x9c, - 0xf0, 0x1a, 0x98, 0x3c, 0x21, 0x43, 0xef, 0xa8, 0x10, 0xfb, 0x09, 0x17, 0x41, 0x69, 0x80, 0x35, - 0x97, 0x78, 0x6f, 0x12, 0x79, 0x1f, 0xf7, 0x0a, 0x77, 0xa4, 0xc6, 0x1f, 0x4a, 0xd1, 0x4c, 0x61, - 0xf5, 0x06, 0xae, 0xb3, 0xf6, 0x60, 0x69, 0xaa, 0x82, 0x1d, 0x8e, 0x51, 0x6a, 0x7d, 0xe2, 0xb5, - 0x06, 0x6f, 0x0d, 0x05, 0x52, 0xf8, 0x0b, 0x50, 0x76, 0x88, 0x46, 0x14, 0x6a, 0xda, 0xa2, 0xc4, - 0xdd, 0x1c, 0x33, 0xa7, 0x70, 0x97, 0x68, 0x1d, 0x61, 0xea, 0xc1, 0xfb, 0x5f, 0x28, 0x80, 0x84, - 0x4f, 0x41, 0x99, 0x12, 0xdd, 0xd2, 0x30, 0x25, 0xe2, 0xf4, 0x62, 0x79, 0xc5, 0x6a, 0x07, 0x03, - 0x3b, 0x30, 0x7b, 0x87, 0x42, 0x8d, 0x57, 0xcf, 0x20, 0x4f, 0xfd, 0x55, 0x14, 0xc0, 0xc0, 0x9f, - 0x82, 0xb2, 0x43, 0x59, 0x57, 0xef, 0x0f, 0x79, 0x45, 0x39, 0xaf, 0xad, 0x44, 0xeb, 0xa8, 0x67, - 0x12, 0x42, 0xfb, 0x2b, 0x28, 0x80, 0x83, 0x5b, 0x60, 0x4e, 0x57, 0x0d, 0x44, 0x70, 0x6f, 0xd8, - 0x21, 0x8a, 0x69, 0xf4, 0x1c, 0x5e, 0x8a, 0x4a, 0xad, 0x65, 0x61, 0x34, 0xb7, 0x17, 0x17, 0xa3, - 0xa4, 0x3e, 0xdc, 0x05, 0x8b, 0x7e, 0xdb, 0x7d, 0xac, 0x3a, 0xd4, 0xb4, 0x87, 0xbb, 0xaa, 0xae, - 0x52, 0x5e, 0xa0, 0x4a, 0xad, 0xda, 0xe8, 0x6c, 0x75, 0x11, 0x65, 0xc8, 0x51, 0xa6, 0x15, 0xab, - 0x9d, 0x16, 0x76, 0x1d, 0xd2, 0xe3, 0x05, 0xa7, 0x1c, 0xd6, 0xce, 0x03, 0xbe, 0x8a, 0x84, 0x14, - 0xfe, 0x24, 0x96, 0xa6, 0xe5, 0xcb, 0xa5, 0x69, 0x35, 0x3f, 0x45, 0xe1, 0x11, 0x58, 0xb6, 0x6c, - 0xb3, 0x6f, 0x13, 0xc7, 0xd9, 0x26, 0xb8, 0xa7, 0xa9, 0x06, 0xf1, 0x4f, 0xa6, 0xc2, 0x77, 0xf4, - 0xd9, 0xe8, 0x6c, 0x75, 0xf9, 0x20, 0x5b, 0x05, 0xe5, 0xd9, 0x36, 0xfe, 0x52, 0x04, 0xd7, 0x92, - 0x3d, 0x0e, 0x3e, 0x01, 0xd0, 0xec, 0x3a, 0xc4, 0x1e, 0x90, 0xde, 0x23, 0x8f, 0xb8, 0x31, 0x76, - 0x23, 0x71, 0x76, 0x13, 0xbc, 0xdb, 0xfd, 0x94, 0x06, 0xca, 0xb0, 0xf2, 0xf8, 0x91, 0x78, 0x00, - 0x05, 0x1e, 0x68, 0x84, 0x1f, 0xa5, 0x1e, 0xc1, 0x16, 0x98, 0x13, 0x6f, 0xdf, 0x17, 0xf2, 0x64, - 0x8d, 0xdc, 0xfb, 0x51, 0x5c, 0x8c, 0x92, 0xfa, 0xf0, 0x11, 0x98, 0xc7, 0x03, 0xac, 0x6a, 0xb8, - 0xab, 0x91, 0x00, 0xa4, 0xc8, 0x41, 0x3e, 0x15, 0x20, 0xf3, 0x5b, 0x49, 0x05, 0x94, 0xb6, 0x81, - 0x7b, 0x60, 0xc1, 0x35, 0xd2, 0x50, 0x5e, 0x1e, 0x7e, 0x26, 0xa0, 0x16, 0x8e, 0xd2, 0x2a, 0x28, - 0xcb, 0x0e, 0xbe, 0x00, 0x40, 0xf1, 0x1b, 0xb3, 0x53, 0x9b, 0xe2, 0x95, 0xf4, 0x9b, 0x31, 0xde, - 0x4b, 0xd0, 0xcd, 0xc3, 0x2a, 0x16, 0x2c, 0x39, 0x28, 0x82, 0x09, 0xef, 0x83, 0x59, 0x9b, 0xbd, - 0x80, 0x20, 0xd4, 0x69, 0x1e, 0xea, 0x77, 0x84, 0xd9, 0x2c, 0x8a, 0x0a, 0x51, 0x5c, 0x17, 0xde, - 0x03, 0x55, 0xc5, 0xd4, 0x34, 0x9e, 0xf9, 0x6d, 0xd3, 0x35, 0x28, 0x4f, 0xde, 0x52, 0x0b, 0xb2, - 0xce, 0xdc, 0x8e, 0x49, 0x50, 0x42, 0xb3, 0xf1, 0x67, 0x29, 0xda, 0x66, 0xfc, 0xe7, 0x0c, 0xef, - 0xc5, 0xa8, 0xcf, 0x17, 0x09, 0xea, 0xb3, 0x94, 0xb6, 0x88, 0x30, 0x1f, 0x15, 0xcc, 0xb2, 0xe4, - 0x57, 0x8d, 0xbe, 0x77, 0xe1, 0xa2, 0x24, 0x7e, 0x7b, 0xee, 0x53, 0x0a, 0xb4, 0x23, 0x8d, 0x71, - 0x9e, 0xef, 0x3c, 0x2a, 0x44, 0x71, 0xe4, 0xc6, 0x03, 0x50, 0x8d, 0xbf, 0xc3, 0x18, 0xa7, 0x97, - 0x2e, 0xe4, 0xf4, 0x1f, 0x24, 0xb0, 0x9c, 0xe3, 0x1d, 0x6a, 0xa0, 0xaa, 0xe3, 0xd7, 0x91, 0x1c, - 0xb9, 0x90, 0x1b, 0xb3, 0xa9, 0x49, 0xf6, 0xa6, 0x26, 0x79, 0xc7, 0xa0, 0xfb, 0x76, 0x87, 0xda, - 0xaa, 0xd1, 0xf7, 0xee, 0x61, 0x2f, 0x86, 0x85, 0x12, 0xd8, 0xf0, 0x39, 0x28, 0xeb, 0xf8, 0x75, - 0xc7, 0xb5, 0xfb, 0x59, 0xe7, 0x35, 0x9e, 0x1f, 0xde, 0x3f, 0xf6, 0x04, 0x0a, 0x0a, 0xf0, 0x1a, - 0xfb, 0x60, 0x2d, 0xb6, 0x49, 0x56, 0x2a, 0xc8, 0x4b, 0x57, 0xeb, 0x90, 0xf0, 0xc2, 0xbf, 0x06, - 0x15, 0x0b, 0xdb, 0x54, 0x0d, 0xca, 0x45, 0xa9, 0x35, 0x3b, 0x3a, 0x5b, 0xad, 0x1c, 0xf8, 0x8b, - 0x28, 0x94, 0x37, 0xfe, 0x2d, 0x81, 0x52, 0x47, 0xc1, 0x1a, 0xb9, 0x82, 0xd1, 0x61, 0x3b, 0x36, - 0x3a, 0x34, 0x72, 0x93, 0x88, 0xc7, 0x93, 0x3b, 0x35, 0xec, 0x26, 0xa6, 0x86, 0xcf, 0x2f, 0xc0, - 0x39, 0x7f, 0x60, 0xb8, 0x0b, 0x2a, 0x81, 0xbb, 0x58, 0x95, 0x94, 0x2e, 0xaa, 0x92, 0x8d, 0xdf, - 0x17, 0xc0, 0x4c, 0xc4, 0xc5, 0xe5, 0xac, 0xd9, 0x71, 0x47, 0x88, 0x06, 0x2b, 0x43, 0x9b, 0xe3, - 0x6c, 0x44, 0xf6, 0x49, 0x85, 0xc7, 0xdf, 0xc2, 0xee, 0x9d, 0xe6, 0x1a, 0x0f, 0x40, 0x95, 0x62, - 0xbb, 0x4f, 0xa8, 0x2f, 0xe3, 0x07, 0x56, 0x09, 0x99, 0xfe, 0x61, 0x4c, 0x8a, 0x12, 0xda, 0x2b, - 0xf7, 0xc1, 0x6c, 0xcc, 0xd9, 0xa5, 0x48, 0xd8, 0x1b, 0x76, 0x38, 0x61, 0x72, 0x5e, 0x41, 0x76, - 0x3d, 0x89, 0x65, 0xd7, 0x7a, 0xfe, 0x61, 0x46, 0x9e, 0x4c, 0x5e, 0x8e, 0xa1, 0x44, 0x8e, 0x7d, - 0x35, 0x16, 0xda, 0xf9, 0x99, 0xf6, 0x27, 0x09, 0xcc, 0x45, 0xb4, 0xaf, 0x60, 0x82, 0xd9, 0x89, - 0x4f, 0x30, 0x9f, 0x8f, 0xb3, 0x89, 0x9c, 0x11, 0xe6, 0xaf, 0xa5, 0x58, 0xf0, 0xff, 0xf7, 0xa4, - 0xfa, 0x57, 0x60, 0x71, 0x60, 0x6a, 0xae, 0x4e, 0xda, 0x1a, 0x56, 0x75, 0x5f, 0x81, 0x31, 0x98, - 0xc9, 0xe4, 0x1f, 0x15, 0x01, 0x3c, 0xb1, 0x1d, 0xd5, 0xa1, 0xc4, 0xa0, 0xcf, 0x42, 0xcb, 0xd6, - 0x77, 0x85, 0x93, 0xc5, 0x67, 0x19, 0x70, 0x28, 0xd3, 0x09, 0xfc, 0x01, 0x98, 0x61, 0x04, 0x4e, - 0x55, 0x08, 0x9b, 0x05, 0xc5, 0xf4, 0xbf, 0x20, 0x80, 0x66, 0x3a, 0xa1, 0x08, 0x45, 0xf5, 0xe0, - 0x31, 0x58, 0xb0, 0xcc, 0xde, 0x1e, 0x36, 0x70, 0x9f, 0xb0, 0xb6, 0x77, 0xc0, 0xff, 0xd0, 0xe4, - 0x4c, 0xbb, 0xd2, 0xba, 0xed, 0x33, 0xa5, 0x83, 0xb4, 0xca, 0x47, 0x46, 0x59, 0xd3, 0xcb, 0x9c, - 0x07, 0x64, 0x41, 0x42, 0x1b, 0x54, 0x5d, 0xd1, 0x7e, 0xc4, 0xe0, 0xe1, 0xcd, 0xff, 0x9b, 0xe3, - 0x64, 0xd8, 0x51, 0xcc, 0x32, 0xac, 0x46, 0xf1, 0x75, 0x94, 0xf0, 0x90, 0x3b, 0x48, 0x94, 0xff, - 0x9b, 0x41, 0xa2, 0xf1, 0x9b, 0x22, 0x98, 0x4f, 0x3d, 0x5d, 0xf8, 0xa3, 0x73, 0x18, 0xf7, 0xd2, - 0xff, 0x8c, 0x6d, 0xa7, 0x08, 0xe3, 0xe4, 0x25, 0x08, 0xe3, 0x16, 0x98, 0x53, 0x5c, 0xdb, 0x66, - 0xb3, 0x7e, 0x9c, 0x65, 0x07, 0x54, 0xbd, 0x1d, 0x17, 0xa3, 0xa4, 0x7e, 0x16, 0xdb, 0x2f, 0x5d, - 0x92, 0xed, 0x47, 0xa3, 0x10, 0x8c, 0xcd, 0x4b, 0xbb, 0x74, 0x14, 0x82, 0xb8, 0x25, 0xf5, 0x59, - 0xb7, 0xf2, 0x50, 0x03, 0x84, 0xe9, 0x78, 0xb7, 0x3a, 0x8a, 0x49, 0x51, 0x42, 0x3b, 0x83, 0x39, - 0x57, 0xc6, 0x66, 0xce, 0x7f, 0x93, 0xc0, 0xa7, 0xb9, 0x19, 0x0a, 0xb7, 0x62, 0x04, 0x7a, 0x23, - 0x41, 0xa0, 0xbf, 0x97, 0x6b, 0x18, 0xe1, 0xd1, 0x76, 0x36, 0x8f, 0xbe, 0x3b, 0x1e, 0x8f, 0xce, - 0x20, 0x79, 0x17, 0x13, 0xea, 0xd6, 0xc6, 0xe9, 0xfb, 0xfa, 0xc4, 0xdb, 0xf7, 0xf5, 0x89, 0x77, - 0xef, 0xeb, 0x13, 0xbf, 0x1e, 0xd5, 0xa5, 0xd3, 0x51, 0x5d, 0x7a, 0x3b, 0xaa, 0x4b, 0xef, 0x46, - 0x75, 0xe9, 0x1f, 0xa3, 0xba, 0xf4, 0xbb, 0x0f, 0xf5, 0x89, 0xe7, 0xd3, 0xc2, 0xe3, 0x7f, 0x02, - 0x00, 0x00, 0xff, 0xff, 0x3a, 0x2e, 0x29, 0xcd, 0xb9, 0x19, 0x00, 0x00, + // 1871 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4f, 0x6f, 0x1b, 0xc7, + 0x15, 0xd7, 0x52, 0xa4, 0x44, 0x3d, 0x45, 0x94, 0x3d, 0x52, 0x2d, 0x46, 0x69, 0x29, 0x61, 0x1b, + 0x24, 0x72, 0x12, 0x2d, 0x63, 0x25, 0x0d, 0x12, 0xbb, 0x08, 0x2a, 0xca, 0x6e, 0xe2, 0x40, 0xaa, + 0x94, 0xa1, 0x94, 0xa2, 0x69, 0x0b, 0x64, 0xb8, 0x1c, 0xd3, 0x1b, 0xed, 0x3f, 0xec, 0x0e, 0x59, + 0x13, 0xbd, 0xf4, 0x03, 0x14, 0x48, 0xcf, 0xfd, 0x14, 0x3d, 0x16, 0xed, 0xad, 0x27, 0x5f, 0x0a, + 0x04, 0xbd, 0x34, 0x27, 0xa1, 0xa6, 0xaf, 0x6d, 0x6f, 0xbd, 0x18, 0x28, 0x50, 0xcc, 0xec, 0xec, + 0xff, 0x5d, 0x89, 0x2a, 0x20, 0x1d, 0x72, 0xe3, 0xce, 0x7b, 0xef, 0xf7, 0xde, 0xcc, 0xbc, 0xf7, + 0xe6, 0xfd, 0x08, 0x3f, 0x3a, 0x7d, 0xdf, 0xd7, 0x0c, 0xa7, 0x7d, 0x3a, 0xec, 0x51, 0xcf, 0xa6, + 0x8c, 0xfa, 0xed, 0x11, 0xb5, 0xfb, 0x8e, 0xd7, 0x96, 0x02, 0xe2, 0x1a, 0x6d, 0xe2, 0xba, 0x7e, + 0x7b, 0x74, 0xa7, 0x47, 0x19, 0xb9, 0xd3, 0x1e, 0x50, 0x9b, 0x7a, 0x84, 0xd1, 0xbe, 0xe6, 0x7a, + 0x0e, 0x73, 0xd0, 0x5a, 0xa0, 0xa8, 0x11, 0xd7, 0xd0, 0xb8, 0xa2, 0x26, 0x15, 0xd7, 0xb7, 0x07, + 0x06, 0x7b, 0x3c, 0xec, 0x69, 0xba, 0x63, 0xb5, 0x07, 0xce, 0xc0, 0x69, 0x0b, 0xfd, 0xde, 0xf0, + 0x91, 0xf8, 0x12, 0x1f, 0xe2, 0x57, 0x80, 0xb3, 0xae, 0x26, 0x1c, 0xea, 0x8e, 0x47, 0xdb, 0xa3, + 0x9c, 0xaf, 0xf5, 0xdb, 0x09, 0x1d, 0xd7, 0x31, 0x0d, 0x7d, 0x5c, 0x16, 0xd6, 0xfa, 0xbb, 0xb1, + 0xaa, 0x45, 0xf4, 0xc7, 0x86, 0x4d, 0xbd, 0x71, 0xdb, 0x3d, 0x1d, 0xf0, 0x05, 0xbf, 0x6d, 0x51, + 0x46, 0x8a, 0x1c, 0xb4, 0xcb, 0xac, 0xbc, 0xa1, 0xcd, 0x0c, 0x8b, 0xe6, 0x0c, 0xde, 0xbb, 0xc8, + 0xc0, 0xd7, 0x1f, 0x53, 0x8b, 0xe4, 0xec, 0xde, 0x29, 0xb3, 0x1b, 0x32, 0xc3, 0x6c, 0x1b, 0x36, + 0xf3, 0x99, 0x97, 0x35, 0x52, 0xff, 0xa3, 0x00, 0xda, 0x73, 0x6c, 0xe6, 0x39, 0xa6, 0x49, 0x3d, + 0x4c, 0x47, 0x86, 0x6f, 0x38, 0x36, 0xfa, 0x02, 0xea, 0x7c, 0x3f, 0x7d, 0xc2, 0x48, 0x53, 0xd9, + 0x54, 0xb6, 0x16, 0x77, 0xde, 0xd6, 0xe2, 0x4b, 0x89, 0xe0, 0x35, 0xf7, 0x74, 0xc0, 0x17, 0x7c, + 0x8d, 0x6b, 0x6b, 0xa3, 0x3b, 0xda, 0x61, 0xef, 0x4b, 0xaa, 0xb3, 0x03, 0xca, 0x48, 0x07, 0x3d, + 0x3d, 0xdb, 0x98, 0x99, 0x9c, 0x6d, 0x40, 0xbc, 0x86, 0x23, 0x54, 0x74, 0x08, 0x55, 0x81, 0x5e, + 0x11, 0xe8, 0xdb, 0xa5, 0xe8, 0x72, 0xd3, 0x1a, 0x26, 0xbf, 0x7a, 0xf0, 0x84, 0x51, 0x9b, 0x87, + 0xd7, 0x79, 0x49, 0x42, 0x57, 0xef, 0x13, 0x46, 0xb0, 0x00, 0x42, 0x6f, 0x41, 0xdd, 0x93, 0xe1, + 0x37, 0x67, 0x37, 0x95, 0xad, 0xd9, 0xce, 0x0d, 0xa9, 0x55, 0x0f, 0xb7, 0x85, 0x23, 0x0d, 0xf5, + 0xa9, 0x02, 0xb7, 0xf2, 0xfb, 0xde, 0x37, 0x7c, 0x86, 0x7e, 0x91, 0xdb, 0xbb, 0x36, 0xdd, 0xde, + 0xb9, 0xb5, 0xd8, 0x79, 0xe4, 0x38, 0x5c, 0x49, 0xec, 0xfb, 0x08, 0x6a, 0x06, 0xa3, 0x96, 0xdf, + 0xac, 0x6c, 0xce, 0x6e, 0x2d, 0xee, 0xbc, 0xa9, 0x95, 0xe4, 0xba, 0x96, 0x8f, 0xae, 0xb3, 0x24, + 0x71, 0x6b, 0x0f, 0x39, 0x02, 0x0e, 0x80, 0xd4, 0xdf, 0x56, 0x00, 0xee, 0x53, 0xd7, 0x74, 0xc6, + 0x16, 0xb5, 0xd9, 0x35, 0x5c, 0xdd, 0x43, 0xa8, 0xfa, 0x2e, 0xd5, 0xe5, 0xd5, 0xbd, 0x5e, 0xba, + 0x83, 0x38, 0xa8, 0xae, 0x4b, 0xf5, 0xf8, 0xd2, 0xf8, 0x17, 0x16, 0x10, 0xe8, 0x53, 0x98, 0xf3, + 0x19, 0x61, 0x43, 0x5f, 0x5c, 0xd9, 0xe2, 0xce, 0xed, 0x69, 0xc0, 0x84, 0x41, 0xa7, 0x21, 0xe1, + 0xe6, 0x82, 0x6f, 0x2c, 0x81, 0xd4, 0xbf, 0xcf, 0xc2, 0x4a, 0xac, 0xbc, 0xe7, 0xd8, 0x7d, 0x83, + 0xf1, 0x94, 0xbe, 0x07, 0x55, 0x36, 0x76, 0xa9, 0x38, 0x93, 0x85, 0xce, 0xeb, 0x61, 0x30, 0xc7, + 0x63, 0x97, 0xbe, 0x38, 0xdb, 0x58, 0x2b, 0x30, 0xe1, 0x22, 0x2c, 0x8c, 0xd0, 0x7e, 0x14, 0x67, + 0x45, 0x98, 0xbf, 0x9b, 0x76, 0xfe, 0xe2, 0x6c, 0xa3, 0xa0, 0xd7, 0x68, 0x11, 0x52, 0x3a, 0x44, + 0xf4, 0x1a, 0xcc, 0x79, 0x94, 0xf8, 0x8e, 0xdd, 0xac, 0x0a, 0xb4, 0x68, 0x2b, 0x58, 0xac, 0x62, + 0x29, 0x45, 0xb7, 0x61, 0xde, 0xa2, 0xbe, 0x4f, 0x06, 0xb4, 0x59, 0x13, 0x8a, 0xcb, 0x52, 0x71, + 0xfe, 0x20, 0x58, 0xc6, 0xa1, 0x1c, 0x7d, 0x09, 0x0d, 0x93, 0xf8, 0xec, 0xc4, 0xed, 0x13, 0x46, + 0x8f, 0x0d, 0x8b, 0x36, 0xe7, 0xc4, 0x81, 0xbe, 0x31, 0xdd, 0xdd, 0x73, 0x8b, 0xce, 0x2d, 0x89, + 0xde, 0xd8, 0x4f, 0x21, 0xe1, 0x0c, 0x32, 0x1a, 0x01, 0xe2, 0x2b, 0xc7, 0x1e, 0xb1, 0xfd, 0xe0, + 0xa0, 0xb8, 0xbf, 0xf9, 0x4b, 0xfb, 0x5b, 0x97, 0xfe, 0xd0, 0x7e, 0x0e, 0x0d, 0x17, 0x78, 0x50, + 0xff, 0xa8, 0x40, 0x23, 0xbe, 0xa6, 0x6b, 0xa8, 0xd5, 0x8f, 0xd3, 0xb5, 0xfa, 0xfd, 0x29, 0x92, + 0xb3, 0xa4, 0x46, 0xff, 0x59, 0x01, 0x14, 0x2b, 0x61, 0xc7, 0x34, 0x7b, 0x44, 0x3f, 0x45, 0x9b, + 0x50, 0xb5, 0x89, 0x15, 0xe6, 0x64, 0x54, 0x20, 0x3f, 0x21, 0x16, 0xc5, 0x42, 0x82, 0xbe, 0x52, + 0x00, 0x0d, 0xc5, 0xd1, 0xf7, 0x77, 0x6d, 0xdb, 0x61, 0x84, 0x9f, 0x46, 0x18, 0xd0, 0xde, 0x14, + 0x01, 0x85, 0xbe, 0xb4, 0x93, 0x1c, 0xca, 0x03, 0x9b, 0x79, 0xe3, 0xf8, 0x16, 0xf2, 0x0a, 0xb8, + 0xc0, 0x35, 0xfa, 0x39, 0x80, 0x27, 0x31, 0x8f, 0x1d, 0x59, 0xb6, 0xe5, 0x3d, 0x20, 0x74, 0xbf, + 0xe7, 0xd8, 0x8f, 0x8c, 0x41, 0xdc, 0x58, 0x70, 0x04, 0x81, 0x13, 0x70, 0xeb, 0x0f, 0x60, 0xad, + 0x24, 0x4e, 0x74, 0x03, 0x66, 0x4f, 0xe9, 0x38, 0x38, 0x2a, 0xcc, 0x7f, 0xa2, 0x55, 0xa8, 0x8d, + 0x88, 0x39, 0xa4, 0x41, 0x4d, 0xe2, 0xe0, 0xe3, 0x6e, 0xe5, 0x7d, 0x45, 0xfd, 0x43, 0x2d, 0x99, + 0x29, 0xbc, 0xdf, 0xa0, 0x2d, 0xfe, 0x3c, 0xb8, 0xa6, 0xa1, 0x13, 0x5f, 0x60, 0xd4, 0x3a, 0x2f, + 0x05, 0x4f, 0x43, 0xb0, 0x86, 0x23, 0x29, 0xfa, 0x25, 0xd4, 0x7d, 0x6a, 0x52, 0x9d, 0x39, 0x9e, + 0x6c, 0x71, 0xef, 0x4c, 0x99, 0x53, 0xa4, 0x47, 0xcd, 0xae, 0x34, 0x0d, 0xe0, 0xc3, 0x2f, 0x1c, + 0x41, 0xa2, 0x4f, 0xa1, 0xce, 0xa8, 0xe5, 0x9a, 0x84, 0x51, 0x79, 0x7a, 0xa9, 0xbc, 0xe2, 0xbd, + 0x83, 0x83, 0x1d, 0x39, 0xfd, 0x63, 0xa9, 0x26, 0xba, 0x67, 0x94, 0xa7, 0xe1, 0x2a, 0x8e, 0x60, + 0xd0, 0xcf, 0xa0, 0xee, 0x33, 0xfe, 0xaa, 0x0f, 0xc6, 0xa2, 0xa3, 0x9c, 0xf7, 0xac, 0x24, 0xfb, + 0x68, 0x60, 0x12, 0x43, 0x87, 0x2b, 0x38, 0x82, 0x43, 0xbb, 0xb0, 0x6c, 0x19, 0x36, 0xa6, 0xa4, + 0x3f, 0xee, 0x52, 0xdd, 0xb1, 0xfb, 0xbe, 0x68, 0x45, 0xb5, 0xce, 0x9a, 0x34, 0x5a, 0x3e, 0x48, + 0x8b, 0x71, 0x56, 0x1f, 0xed, 0xc3, 0x6a, 0xf8, 0xec, 0x7e, 0x6c, 0xf8, 0xcc, 0xf1, 0xc6, 0xfb, + 0x86, 0x65, 0x30, 0xd1, 0xa0, 0x6a, 0x9d, 0xe6, 0xe4, 0x6c, 0x63, 0x15, 0x17, 0xc8, 0x71, 0xa1, + 0x15, 0xef, 0x9d, 0x2e, 0x19, 0xfa, 0xb4, 0x2f, 0x1a, 0x4e, 0x3d, 0xee, 0x9d, 0x47, 0x62, 0x15, + 0x4b, 0x29, 0xfa, 0x69, 0x2a, 0x4d, 0xeb, 0x97, 0x4b, 0xd3, 0x46, 0x79, 0x8a, 0xa2, 0x13, 0x58, + 0x73, 0x3d, 0x67, 0xe0, 0x51, 0xdf, 0xbf, 0x4f, 0x49, 0xdf, 0x34, 0x6c, 0x1a, 0x9e, 0xcc, 0x82, + 0xd8, 0xd1, 0x2b, 0x93, 0xb3, 0x8d, 0xb5, 0xa3, 0x62, 0x15, 0x5c, 0x66, 0xab, 0xfe, 0xa5, 0x0a, + 0x37, 0xb2, 0x6f, 0x1c, 0xfa, 0x04, 0x90, 0xd3, 0xf3, 0xa9, 0x37, 0xa2, 0xfd, 0x8f, 0x82, 0xc1, + 0x8d, 0x4f, 0x37, 0x8a, 0x98, 0x6e, 0xa2, 0xba, 0x3d, 0xcc, 0x69, 0xe0, 0x02, 0xab, 0x60, 0x3e, + 0x92, 0x05, 0x50, 0x11, 0x81, 0x26, 0xe6, 0xa3, 0x5c, 0x11, 0xec, 0xc2, 0xb2, 0xac, 0xfd, 0x50, + 0x28, 0x92, 0x35, 0x71, 0xef, 0x27, 0x69, 0x31, 0xce, 0xea, 0xa3, 0x8f, 0xe0, 0x26, 0x19, 0x11, + 0xc3, 0x24, 0x3d, 0x93, 0x46, 0x20, 0x55, 0x01, 0xf2, 0xb2, 0x04, 0xb9, 0xb9, 0x9b, 0x55, 0xc0, + 0x79, 0x1b, 0x74, 0x00, 0x2b, 0x43, 0x3b, 0x0f, 0x15, 0xe4, 0xe1, 0x2b, 0x12, 0x6a, 0xe5, 0x24, + 0xaf, 0x82, 0x8b, 0xec, 0xd0, 0x17, 0x00, 0x7a, 0xf8, 0x30, 0xfb, 0xcd, 0x39, 0xd1, 0x49, 0xdf, + 0x9a, 0xa2, 0x5e, 0xa2, 0xd7, 0x3c, 0xee, 0x62, 0xd1, 0x92, 0x8f, 0x13, 0x98, 0xe8, 0x1e, 0x2c, + 0x79, 0xbc, 0x02, 0xa2, 0x50, 0xe7, 0x45, 0xa8, 0xdf, 0x91, 0x66, 0x4b, 0x38, 0x29, 0xc4, 0x69, + 0x5d, 0x74, 0x17, 0x1a, 0xba, 0x63, 0x9a, 0x22, 0xf3, 0xf7, 0x9c, 0xa1, 0xcd, 0x44, 0xf2, 0xd6, + 0x3a, 0x88, 0xbf, 0xcc, 0x7b, 0x29, 0x09, 0xce, 0x68, 0xaa, 0x7f, 0x56, 0x92, 0xcf, 0x4c, 0x58, + 0xce, 0xe8, 0x6e, 0x6a, 0xf4, 0x79, 0x2d, 0x33, 0xfa, 0xdc, 0xca, 0x5b, 0x24, 0x26, 0x1f, 0x03, + 0x96, 0x78, 0xf2, 0x1b, 0xf6, 0x20, 0xb8, 0x70, 0xd9, 0x12, 0xdf, 0x3e, 0xb7, 0x94, 0x22, 0xed, + 0xc4, 0xc3, 0x78, 0x53, 0xec, 0x3c, 0x29, 0xc4, 0x69, 0x64, 0xf5, 0x43, 0x68, 0xa4, 0xeb, 0x30, + 0x35, 0xd3, 0x2b, 0x17, 0xce, 0xf4, 0xcf, 0x15, 0x58, 0x2b, 0xf1, 0x8e, 0x4c, 0x68, 0x58, 0xe4, + 0x49, 0x22, 0x47, 0x2e, 0x9c, 0x8d, 0x39, 0x6b, 0xd2, 0x02, 0xd6, 0xa4, 0x3d, 0xb4, 0xd9, 0xa1, + 0xd7, 0x65, 0x9e, 0x61, 0x0f, 0x82, 0x7b, 0x38, 0x48, 0x61, 0xe1, 0x0c, 0x36, 0xfa, 0x1c, 0xea, + 0x16, 0x79, 0xd2, 0x1d, 0x7a, 0x83, 0xa2, 0xf3, 0x9a, 0xce, 0x8f, 0x78, 0x3f, 0x0e, 0x24, 0x0a, + 0x8e, 0xf0, 0xd4, 0x43, 0xd8, 0x4c, 0x6d, 0x92, 0xb7, 0x0a, 0xfa, 0x68, 0x68, 0x76, 0x69, 0x7c, + 0xe1, 0x6f, 0xc2, 0x82, 0x4b, 0x3c, 0x66, 0x44, 0xed, 0xa2, 0xd6, 0x59, 0x9a, 0x9c, 0x6d, 0x2c, + 0x1c, 0x85, 0x8b, 0x38, 0x96, 0xab, 0xff, 0x55, 0xa0, 0xd6, 0xd5, 0x89, 0x49, 0xaf, 0x81, 0x3a, + 0xdc, 0x4f, 0x51, 0x07, 0xb5, 0x34, 0x89, 0x44, 0x3c, 0xa5, 0xac, 0x61, 0x3f, 0xc3, 0x1a, 0x5e, + 0xbd, 0x00, 0xe7, 0x7c, 0xc2, 0xf0, 0x01, 0x2c, 0x44, 0xee, 0x52, 0x5d, 0x52, 0xb9, 0xa8, 0x4b, + 0xaa, 0xbf, 0xaf, 0xc0, 0x62, 0xc2, 0xc5, 0xe5, 0xac, 0xf9, 0x71, 0x27, 0x06, 0x0d, 0xde, 0x86, + 0x76, 0xa6, 0xd9, 0x88, 0x16, 0x0e, 0x15, 0xc1, 0xfc, 0x16, 0xbf, 0xde, 0xf9, 0x59, 0xe3, 0x43, + 0x68, 0x30, 0xe2, 0x0d, 0x28, 0x0b, 0x65, 0xe2, 0xc0, 0x16, 0xe2, 0x49, 0xff, 0x38, 0x25, 0xc5, + 0x19, 0xed, 0xf5, 0x7b, 0xb0, 0x94, 0x72, 0x76, 0xa9, 0x21, 0xec, 0x2b, 0x7e, 0x38, 0x71, 0x72, + 0x5e, 0x43, 0x76, 0x7d, 0x92, 0xca, 0xae, 0xad, 0xf2, 0xc3, 0x4c, 0x94, 0x4c, 0x59, 0x8e, 0xe1, + 0x4c, 0x8e, 0xbd, 0x31, 0x15, 0xda, 0xf9, 0x99, 0xf6, 0xaf, 0x0a, 0xac, 0x26, 0xb4, 0x63, 0x6e, + 0xfa, 0xc3, 0x54, 0x83, 0xde, 0xca, 0x34, 0xe8, 0x66, 0x91, 0xcd, 0x95, 0x91, 0xd3, 0x62, 0x76, + 0x37, 0x7b, 0xd5, 0xec, 0xee, 0x0a, 0x48, 0xb1, 0xfa, 0x27, 0x05, 0x96, 0x13, 0x67, 0x77, 0x0d, + 0x8c, 0xf1, 0x61, 0x9a, 0x31, 0xbe, 0x3a, 0x4d, 0xd2, 0x94, 0x50, 0xc6, 0xbf, 0xd6, 0x52, 0xc1, + 0x7f, 0xeb, 0x49, 0xcc, 0xaf, 0x61, 0x75, 0xe4, 0x98, 0x43, 0x8b, 0xee, 0x99, 0xc4, 0xb0, 0x42, + 0x05, 0x3e, 0x31, 0xce, 0x66, 0xff, 0x18, 0x8a, 0xe0, 0xa9, 0xe7, 0x1b, 0x3e, 0xa3, 0x36, 0xfb, + 0x2c, 0xb6, 0xec, 0x7c, 0x57, 0x3a, 0x59, 0xfd, 0xac, 0x00, 0x0e, 0x17, 0x3a, 0x41, 0x3f, 0x80, + 0x45, 0x3e, 0x30, 0x1b, 0x3a, 0xe5, 0xdc, 0x5b, 0x26, 0xd6, 0x8a, 0x04, 0x5a, 0xec, 0xc6, 0x22, + 0x9c, 0xd4, 0x43, 0x8f, 0x61, 0xc5, 0x75, 0xfa, 0x07, 0xc4, 0x26, 0x03, 0xca, 0xc7, 0x8c, 0x23, + 0xf1, 0x07, 0xb2, 0x60, 0x36, 0x0b, 0x9d, 0xf7, 0xc2, 0xc9, 0xf4, 0x28, 0xaf, 0xf2, 0x82, 0x53, + 0x84, 0xfc, 0xb2, 0x28, 0xea, 0x22, 0x48, 0xe4, 0x41, 0x63, 0x28, 0x9f, 0x7b, 0x49, 0xf4, 0x82, + 0xff, 0x5b, 0x76, 0xa6, 0xc9, 0xb0, 0x93, 0x94, 0x65, 0xdc, 0xfd, 0xd3, 0xeb, 0x38, 0xe3, 0xa1, + 0x94, 0xb8, 0xd5, 0xff, 0x1f, 0xe2, 0xa6, 0xfe, 0xbb, 0x0a, 0x37, 0x73, 0xad, 0x12, 0xfd, 0xf8, + 0x1c, 0x86, 0x73, 0xeb, 0xca, 0xd8, 0x4d, 0x6e, 0x40, 0x9f, 0xbd, 0xc4, 0x80, 0xbe, 0x0b, 0xcb, + 0xfa, 0xd0, 0xf3, 0xa8, 0xcd, 0x32, 0xac, 0x26, 0xa2, 0x46, 0x7b, 0x69, 0x31, 0xce, 0xea, 0x17, + 0xb1, 0xab, 0xda, 0x25, 0xd9, 0x55, 0x32, 0x0a, 0x39, 0x21, 0x07, 0x69, 0x97, 0x8f, 0x42, 0x0e, + 0xca, 0x59, 0x7d, 0x3e, 0x1d, 0x04, 0xa8, 0x11, 0xc2, 0x7c, 0x7a, 0x3a, 0x38, 0x49, 0x49, 0x71, + 0x46, 0xbb, 0x80, 0xa9, 0x2c, 0x4c, 0xcb, 0x54, 0x10, 0x49, 0x91, 0x30, 0x10, 0x35, 0xbe, 0x3d, + 0x4d, 0x2e, 0x4f, 0xcd, 0xc2, 0xd4, 0xbf, 0x29, 0xf0, 0x72, 0x69, 0x11, 0xa0, 0xdd, 0xd4, 0x93, + 0xbb, 0x9d, 0x79, 0x72, 0xbf, 0x57, 0x6a, 0x98, 0x78, 0x77, 0xbd, 0x62, 0x6a, 0xf4, 0xc1, 0x74, + 0xd4, 0xa8, 0x60, 0x6e, 0xbf, 0x98, 0x23, 0x75, 0xb6, 0x9f, 0x3e, 0x6b, 0xcd, 0x7c, 0xfd, 0xac, + 0x35, 0xf3, 0xcd, 0xb3, 0xd6, 0xcc, 0x6f, 0x26, 0x2d, 0xe5, 0xe9, 0xa4, 0xa5, 0x7c, 0x3d, 0x69, + 0x29, 0xdf, 0x4c, 0x5a, 0xca, 0x3f, 0x26, 0x2d, 0xe5, 0x77, 0xcf, 0x5b, 0x33, 0x9f, 0xcf, 0x4b, + 0x8f, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x5d, 0x9e, 0x04, 0x8c, 0x1b, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/generated.proto index dcb034dfb..68397a026 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/generated.proto @@ -338,6 +338,27 @@ message StatefulSet { optional StatefulSetStatus status = 3; } +// StatefulSetCondition describes the state of a statefulset at a certain point. +message StatefulSetCondition { + // Type of statefulset condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // Last time the condition transitioned from one status to another. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // The reason for the condition's last transition. + // +optional + optional string reason = 4; + + // A human readable message indicating details about the transition. + // +optional + optional string message = 5; +} + // StatefulSetList is a collection of StatefulSets. message StatefulSetList { // +optional @@ -442,6 +463,12 @@ message StatefulSetStatus { // newest ControllerRevision. // +optional optional int32 collisionCount = 9; + + // Represents the latest available observations of a statefulset's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated StatefulSetCondition conditions = 10; } // StatefulSetUpdateStrategy indicates the strategy that the StatefulSet diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/register.go index 84789be61..5b16819f2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Deployment{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/types.go index 63d1c725d..ca30191d4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/types.go @@ -247,6 +247,31 @@ type StatefulSetStatus struct { // newest ControllerRevision. // +optional CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` + + // Represents the latest available observations of a statefulset's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + Conditions []StatefulSetCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,10,rep,name=conditions"` +} + +type StatefulSetConditionType string + +// StatefulSetCondition describes the state of a statefulset at a certain point. +type StatefulSetCondition struct { + // Type of statefulset condition. + Type StatefulSetConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=StatefulSetConditionType"` + // Status of the condition, one of True, False, Unknown. + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + // Last time the condition transitioned from one status to another. + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // The reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // A human readable message indicating details about the transition. + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go index 72d5e69ce..d12baf39f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go @@ -206,6 +206,19 @@ func (StatefulSet) SwaggerDoc() map[string]string { return map_StatefulSet } +var map_StatefulSetCondition = map[string]string{ + "": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "type": "Type of statefulset condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "Last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (StatefulSetCondition) SwaggerDoc() map[string]string { + return map_StatefulSetCondition +} + var map_StatefulSetList = map[string]string{ "": "StatefulSetList is a collection of StatefulSets.", } @@ -240,6 +253,7 @@ var map_StatefulSetStatus = map[string]string{ "currentRevision": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", "updateRevision": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", "collisionCount": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "conditions": "Represents the latest available observations of a statefulset's current state.", } func (StatefulSetStatus) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go index 2f046b020..cad744ce0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go @@ -23,105 +23,10 @@ package v1beta1 import ( core_v1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ControllerRevision).DeepCopyInto(out.(*ControllerRevision)) - return nil - }, InType: reflect.TypeOf(&ControllerRevision{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ControllerRevisionList).DeepCopyInto(out.(*ControllerRevisionList)) - return nil - }, InType: reflect.TypeOf(&ControllerRevisionList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Deployment).DeepCopyInto(out.(*Deployment)) - return nil - }, InType: reflect.TypeOf(&Deployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentCondition).DeepCopyInto(out.(*DeploymentCondition)) - return nil - }, InType: reflect.TypeOf(&DeploymentCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentList).DeepCopyInto(out.(*DeploymentList)) - return nil - }, InType: reflect.TypeOf(&DeploymentList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentRollback).DeepCopyInto(out.(*DeploymentRollback)) - return nil - }, InType: reflect.TypeOf(&DeploymentRollback{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentSpec).DeepCopyInto(out.(*DeploymentSpec)) - return nil - }, InType: reflect.TypeOf(&DeploymentSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStatus).DeepCopyInto(out.(*DeploymentStatus)) - return nil - }, InType: reflect.TypeOf(&DeploymentStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStrategy).DeepCopyInto(out.(*DeploymentStrategy)) - return nil - }, InType: reflect.TypeOf(&DeploymentStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollbackConfig).DeepCopyInto(out.(*RollbackConfig)) - return nil - }, InType: reflect.TypeOf(&RollbackConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDeployment).DeepCopyInto(out.(*RollingUpdateDeployment)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDeployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateStatefulSetStrategy).DeepCopyInto(out.(*RollingUpdateStatefulSetStrategy)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateStatefulSetStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Scale).DeepCopyInto(out.(*Scale)) - return nil - }, InType: reflect.TypeOf(&Scale{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleSpec).DeepCopyInto(out.(*ScaleSpec)) - return nil - }, InType: reflect.TypeOf(&ScaleSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleStatus).DeepCopyInto(out.(*ScaleStatus)) - return nil - }, InType: reflect.TypeOf(&ScaleStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSet).DeepCopyInto(out.(*StatefulSet)) - return nil - }, InType: reflect.TypeOf(&StatefulSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetList).DeepCopyInto(out.(*StatefulSetList)) - return nil - }, InType: reflect.TypeOf(&StatefulSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetSpec).DeepCopyInto(out.(*StatefulSetSpec)) - return nil - }, InType: reflect.TypeOf(&StatefulSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetStatus).DeepCopyInto(out.(*StatefulSetStatus)) - return nil - }, InType: reflect.TypeOf(&StatefulSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetUpdateStrategy).DeepCopyInto(out.(*StatefulSetUpdateStrategy)) - return nil - }, InType: reflect.TypeOf(&StatefulSetUpdateStrategy{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) { *out = *in @@ -591,6 +496,23 @@ func (in *StatefulSet) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition. +func (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition { + if in == nil { + return nil + } + out := new(StatefulSetCondition) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) { *out = *in @@ -698,6 +620,13 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { **out = **in } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]StatefulSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/BUILD index bd5dbadf8..c13a6ff57 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/BUILD @@ -21,7 +21,6 @@ go_library( "//vendor/github.com/gogo/protobuf/sortkeys: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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/doc.go index dafca1201..e93e164e1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true package v1beta2 // import "k8s.io/api/apps/v1beta2" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go index 07d95d8ac..2572ab081 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go @@ -28,6 +28,7 @@ limitations under the License. ControllerRevision ControllerRevisionList DaemonSet + DaemonSetCondition DaemonSetList DaemonSetSpec DaemonSetStatus @@ -50,6 +51,7 @@ limitations under the License. ScaleSpec ScaleStatus StatefulSet + StatefulSetCondition StatefulSetList StatefulSetSpec StatefulSetStatus @@ -97,120 +99,129 @@ func (m *DaemonSet) Reset() { *m = DaemonSet{} } func (*DaemonSet) ProtoMessage() {} func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } +func (m *DaemonSetCondition) Reset() { *m = DaemonSetCondition{} } +func (*DaemonSetCondition) ProtoMessage() {} +func (*DaemonSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } + func (m *DaemonSetList) Reset() { *m = DaemonSetList{} } func (*DaemonSetList) ProtoMessage() {} -func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } +func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } func (m *DaemonSetSpec) Reset() { *m = DaemonSetSpec{} } func (*DaemonSetSpec) ProtoMessage() {} -func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func (m *DaemonSetStatus) Reset() { *m = DaemonSetStatus{} } func (*DaemonSetStatus) ProtoMessage() {} -func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *DaemonSetUpdateStrategy) Reset() { *m = DaemonSetUpdateStrategy{} } func (*DaemonSetUpdateStrategy) ProtoMessage() {} -func (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *Deployment) Reset() { *m = Deployment{} } func (*Deployment) ProtoMessage() {} -func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *DeploymentCondition) Reset() { *m = DeploymentCondition{} } func (*DeploymentCondition) ProtoMessage() {} -func (*DeploymentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*DeploymentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *DeploymentList) Reset() { *m = DeploymentList{} } func (*DeploymentList) ProtoMessage() {} -func (*DeploymentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*DeploymentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *DeploymentSpec) Reset() { *m = DeploymentSpec{} } func (*DeploymentSpec) ProtoMessage() {} -func (*DeploymentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*DeploymentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func (m *DeploymentStatus) Reset() { *m = DeploymentStatus{} } func (*DeploymentStatus) ProtoMessage() {} -func (*DeploymentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } +func (*DeploymentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } func (m *DeploymentStrategy) Reset() { *m = DeploymentStrategy{} } func (*DeploymentStrategy) ProtoMessage() {} -func (*DeploymentStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (*DeploymentStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func (m *ReplicaSet) Reset() { *m = ReplicaSet{} } func (*ReplicaSet) ProtoMessage() {} -func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } +func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } func (m *ReplicaSetCondition) Reset() { *m = ReplicaSetCondition{} } func (*ReplicaSetCondition) ProtoMessage() {} -func (*ReplicaSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } +func (*ReplicaSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func (m *ReplicaSetList) Reset() { *m = ReplicaSetList{} } func (*ReplicaSetList) ProtoMessage() {} -func (*ReplicaSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } +func (*ReplicaSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } func (m *ReplicaSetSpec) Reset() { *m = ReplicaSetSpec{} } func (*ReplicaSetSpec) ProtoMessage() {} -func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } +func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } func (m *ReplicaSetStatus) Reset() { *m = ReplicaSetStatus{} } func (*ReplicaSetStatus) ProtoMessage() {} -func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } +func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } func (m *RollingUpdateDaemonSet) Reset() { *m = RollingUpdateDaemonSet{} } func (*RollingUpdateDaemonSet) ProtoMessage() {} -func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } +func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } func (m *RollingUpdateDeployment) Reset() { *m = RollingUpdateDeployment{} } func (*RollingUpdateDeployment) ProtoMessage() {} func (*RollingUpdateDeployment) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{19} + return fileDescriptorGenerated, []int{20} } func (m *RollingUpdateStatefulSetStrategy) Reset() { *m = RollingUpdateStatefulSetStrategy{} } func (*RollingUpdateStatefulSetStrategy) ProtoMessage() {} func (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{20} + return fileDescriptorGenerated, []int{21} } func (m *Scale) Reset() { *m = Scale{} } func (*Scale) ProtoMessage() {} -func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } +func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } func (m *ScaleSpec) Reset() { *m = ScaleSpec{} } func (*ScaleSpec) ProtoMessage() {} -func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } +func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } func (m *ScaleStatus) Reset() { *m = ScaleStatus{} } func (*ScaleStatus) ProtoMessage() {} -func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } +func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } func (m *StatefulSet) Reset() { *m = StatefulSet{} } func (*StatefulSet) ProtoMessage() {} -func (*StatefulSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } +func (*StatefulSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } + +func (m *StatefulSetCondition) Reset() { *m = StatefulSetCondition{} } +func (*StatefulSetCondition) ProtoMessage() {} +func (*StatefulSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } func (m *StatefulSetList) Reset() { *m = StatefulSetList{} } func (*StatefulSetList) ProtoMessage() {} -func (*StatefulSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } +func (*StatefulSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } func (m *StatefulSetSpec) Reset() { *m = StatefulSetSpec{} } func (*StatefulSetSpec) ProtoMessage() {} -func (*StatefulSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } +func (*StatefulSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{28} } func (m *StatefulSetStatus) Reset() { *m = StatefulSetStatus{} } func (*StatefulSetStatus) ProtoMessage() {} -func (*StatefulSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } +func (*StatefulSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{29} } func (m *StatefulSetUpdateStrategy) Reset() { *m = StatefulSetUpdateStrategy{} } func (*StatefulSetUpdateStrategy) ProtoMessage() {} func (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{28} + return fileDescriptorGenerated, []int{30} } func init() { proto.RegisterType((*ControllerRevision)(nil), "k8s.io.api.apps.v1beta2.ControllerRevision") proto.RegisterType((*ControllerRevisionList)(nil), "k8s.io.api.apps.v1beta2.ControllerRevisionList") proto.RegisterType((*DaemonSet)(nil), "k8s.io.api.apps.v1beta2.DaemonSet") + proto.RegisterType((*DaemonSetCondition)(nil), "k8s.io.api.apps.v1beta2.DaemonSetCondition") proto.RegisterType((*DaemonSetList)(nil), "k8s.io.api.apps.v1beta2.DaemonSetList") proto.RegisterType((*DaemonSetSpec)(nil), "k8s.io.api.apps.v1beta2.DaemonSetSpec") proto.RegisterType((*DaemonSetStatus)(nil), "k8s.io.api.apps.v1beta2.DaemonSetStatus") @@ -233,6 +244,7 @@ func init() { proto.RegisterType((*ScaleSpec)(nil), "k8s.io.api.apps.v1beta2.ScaleSpec") proto.RegisterType((*ScaleStatus)(nil), "k8s.io.api.apps.v1beta2.ScaleStatus") proto.RegisterType((*StatefulSet)(nil), "k8s.io.api.apps.v1beta2.StatefulSet") + proto.RegisterType((*StatefulSetCondition)(nil), "k8s.io.api.apps.v1beta2.StatefulSetCondition") proto.RegisterType((*StatefulSetList)(nil), "k8s.io.api.apps.v1beta2.StatefulSetList") proto.RegisterType((*StatefulSetSpec)(nil), "k8s.io.api.apps.v1beta2.StatefulSetSpec") proto.RegisterType((*StatefulSetStatus)(nil), "k8s.io.api.apps.v1beta2.StatefulSetStatus") @@ -355,6 +367,48 @@ func (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *DaemonSetCondition) 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 *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n7, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil +} + func (m *DaemonSetList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -373,11 +427,11 @@ func (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n7, err := m.ListMeta.MarshalTo(dAtA[i:]) + n8, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n8 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -412,28 +466,28 @@ func (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n8, err := m.Selector.MarshalTo(dAtA[i:]) + n9, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n9 } dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n9, err := m.Template.MarshalTo(dAtA[i:]) + n10, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n10 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) - n10, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) + n11, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n11 dAtA[i] = 0x20 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -489,6 +543,18 @@ func (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) } + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x52 + 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 } @@ -515,11 +581,11 @@ func (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n11, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + n12, err := m.RollingUpdate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n11 + i += n12 } return i, nil } @@ -542,27 +608,27 @@ func (m *Deployment) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n12, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n13, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n12 + i += n13 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n13, err := m.Spec.MarshalTo(dAtA[i:]) + n14, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n14 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n14, err := m.Status.MarshalTo(dAtA[i:]) + n15, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n15 return i, nil } @@ -600,19 +666,19 @@ func (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastUpdateTime.Size())) - n15, err := m.LastUpdateTime.MarshalTo(dAtA[i:]) + n16, err := m.LastUpdateTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n16 dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n16, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n17, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n17 return i, nil } @@ -634,11 +700,11 @@ func (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n17, err := m.ListMeta.MarshalTo(dAtA[i:]) + n18, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n18 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -678,28 +744,28 @@ func (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n18, err := m.Selector.MarshalTo(dAtA[i:]) + n19, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n19 } dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n19, err := m.Template.MarshalTo(dAtA[i:]) + n20, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n20 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Strategy.Size())) - n20, err := m.Strategy.MarshalTo(dAtA[i:]) + n21, err := m.Strategy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n21 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -800,11 +866,11 @@ func (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n21, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + n22, err := m.RollingUpdate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n21 + i += n22 } return i, nil } @@ -827,27 +893,27 @@ func (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n22, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n23, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n22 + i += n23 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n23, err := m.Spec.MarshalTo(dAtA[i:]) + n24, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n24 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n24, err := m.Status.MarshalTo(dAtA[i:]) + n25, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n25 return i, nil } @@ -877,11 +943,11 @@ func (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n25, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n26, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n26 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -911,11 +977,11 @@ func (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n26, err := m.ListMeta.MarshalTo(dAtA[i:]) + n27, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n27 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -955,20 +1021,20 @@ func (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n27, err := m.Selector.MarshalTo(dAtA[i:]) + n28, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n28 } dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n28, err := m.Template.MarshalTo(dAtA[i:]) + n29, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n29 dAtA[i] = 0x20 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -1039,11 +1105,11 @@ func (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) - n29, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + n30, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n30 } return i, nil } @@ -1067,21 +1133,21 @@ func (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) - n30, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + n31, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n30 + i += n31 } if m.MaxSurge != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MaxSurge.Size())) - n31, err := m.MaxSurge.MarshalTo(dAtA[i:]) + n32, err := m.MaxSurge.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n31 + i += n32 } return i, nil } @@ -1127,27 +1193,27 @@ func (m *Scale) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n32, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n33, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n32 + i += n33 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n33, err := m.Spec.MarshalTo(dAtA[i:]) + n34, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n33 + i += n34 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n34, err := m.Status.MarshalTo(dAtA[i:]) + n35, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n34 + i += n35 return i, nil } @@ -1237,27 +1303,69 @@ func (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n35, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n36, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n35 + i += n36 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n36, err := m.Spec.MarshalTo(dAtA[i:]) + n37, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n36 + i += n37 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n37, err := m.Status.MarshalTo(dAtA[i:]) + n38, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n37 + i += n38 + return i, nil +} + +func (m *StatefulSetCondition) 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 *StatefulSetCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n39, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n39 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) return i, nil } @@ -1279,11 +1387,11 @@ func (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n38, err := m.ListMeta.MarshalTo(dAtA[i:]) + n40, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n38 + i += n40 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -1323,20 +1431,20 @@ func (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n39, err := m.Selector.MarshalTo(dAtA[i:]) + n41, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n39 + i += n41 } dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n40, err := m.Template.MarshalTo(dAtA[i:]) + n42, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n40 + i += n42 if len(m.VolumeClaimTemplates) > 0 { for _, msg := range m.VolumeClaimTemplates { dAtA[i] = 0x22 @@ -1360,11 +1468,11 @@ func (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) - n41, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) + n43, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n41 + i += n43 if m.RevisionHistoryLimit != nil { dAtA[i] = 0x40 i++ @@ -1416,6 +1524,18 @@ func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) } + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x52 + 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 } @@ -1442,11 +1562,11 @@ func (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n42, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + n44, err := m.RollingUpdate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n42 + i += n44 } return i, nil } @@ -1515,6 +1635,22 @@ func (m *DaemonSet) Size() (n int) { return n } +func (m *DaemonSetCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *DaemonSetList) Size() (n int) { var l int _ = l @@ -1561,6 +1697,12 @@ func (m *DaemonSetStatus) Size() (n int) { if m.CollisionCount != nil { n += 1 + sovGenerated(uint64(*m.CollisionCount)) } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -1834,6 +1976,22 @@ func (m *StatefulSet) Size() (n int) { return n } +func (m *StatefulSetCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *StatefulSetList) Size() (n int) { var l int _ = l @@ -1893,6 +2051,12 @@ func (m *StatefulSetStatus) Size() (n int) { if m.CollisionCount != nil { n += 1 + sovGenerated(uint64(*m.CollisionCount)) } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -1956,6 +2120,20 @@ func (this *DaemonSet) String() string { }, "") return s } +func (this *DaemonSetCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} func (this *DaemonSetList) String() string { if this == nil { return "nil" @@ -1995,6 +2173,7 @@ func (this *DaemonSetStatus) String() string { `NumberAvailable:` + fmt.Sprintf("%v", this.NumberAvailable) + `,`, `NumberUnavailable:` + fmt.Sprintf("%v", this.NumberUnavailable) + `,`, `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "DaemonSetCondition", "DaemonSetCondition", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -2245,6 +2424,20 @@ func (this *StatefulSet) String() string { }, "") return s } +func (this *StatefulSetCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} func (this *StatefulSetList) String() string { if this == nil { return "nil" @@ -2286,6 +2479,7 @@ func (this *StatefulSetStatus) String() string { `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "StatefulSetCondition", "StatefulSetCondition", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -2660,13 +2854,209 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.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 *DaemonSetCondition) 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: DaemonSetCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 = DaemonSetConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", 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.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + 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 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", 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 } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3183,6 +3573,37 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } } m.CollisionCount = &v + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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.Conditions = append(m.Conditions, DaemonSetCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -5969,6 +6390,202 @@ func (m *StatefulSet) Unmarshal(dAtA []byte) error { } return nil } +func (m *StatefulSetCondition) 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: StatefulSetCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatefulSetCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 = StatefulSetConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", 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.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + 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 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", 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.Message = 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 *StatefulSetList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -6554,6 +7171,37 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { } } m.CollisionCount = &v + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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.Conditions = append(m.Conditions, StatefulSetCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -6797,138 +7445,142 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 2119 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0xcb, 0x6f, 0x1c, 0xb7, - 0x19, 0xd7, 0xec, 0x43, 0xda, 0xa5, 0x2c, 0xc9, 0xa6, 0x54, 0x49, 0x91, 0xdb, 0x95, 0xb0, 0x09, - 0x1c, 0x39, 0xb6, 0x67, 0x6d, 0xe5, 0x81, 0xc4, 0x06, 0xda, 0x6a, 0xa5, 0xd4, 0x76, 0xa0, 0x57, - 0x28, 0xc9, 0x40, 0x83, 0x16, 0x30, 0xb5, 0x4b, 0xaf, 0x26, 0x9a, 0x17, 0x66, 0x38, 0x5b, 0x2f, - 0x7a, 0xe9, 0xa9, 0x40, 0x81, 0x02, 0xe9, 0xb9, 0xff, 0x44, 0x7b, 0x2a, 0x8a, 0xf6, 0x56, 0x04, - 0x85, 0x2f, 0x05, 0x82, 0x5e, 0x92, 0x93, 0x50, 0x6f, 0x8e, 0x3d, 0xf7, 0x12, 0xa0, 0x40, 0x41, - 0x0e, 0xe7, 0xc1, 0x79, 0x58, 0x23, 0x25, 0xde, 0x14, 0xb9, 0x69, 0xf9, 0xfd, 0xbe, 0x1f, 0x3f, - 0x0e, 0x3f, 0x7e, 0xdf, 0x6f, 0x38, 0x02, 0x3f, 0x3e, 0x79, 0xd7, 0x55, 0x35, 0xab, 0x75, 0xe2, - 0x1d, 0x11, 0xc7, 0x24, 0x94, 0xb8, 0xad, 0x3e, 0x31, 0xbb, 0x96, 0xd3, 0x12, 0x06, 0x6c, 0x6b, - 0x2d, 0x6c, 0xdb, 0x6e, 0xab, 0x7f, 0xe7, 0x88, 0x50, 0xbc, 0xd6, 0xea, 0x11, 0x93, 0x38, 0x98, - 0x92, 0xae, 0x6a, 0x3b, 0x16, 0xb5, 0xe0, 0x82, 0x0f, 0x54, 0xb1, 0xad, 0xa9, 0x0c, 0xa8, 0x0a, - 0xe0, 0xd2, 0xad, 0x9e, 0x46, 0x8f, 0xbd, 0x23, 0xb5, 0x63, 0x19, 0xad, 0x9e, 0xd5, 0xb3, 0x5a, - 0x1c, 0x7f, 0xe4, 0x3d, 0xe1, 0xbf, 0xf8, 0x0f, 0xfe, 0x97, 0xcf, 0xb3, 0xd4, 0x8c, 0x4d, 0xd8, - 0xb1, 0x1c, 0xd2, 0xea, 0xdf, 0x49, 0xce, 0xb5, 0x74, 0x3d, 0x86, 0xb1, 0x2d, 0x5d, 0xeb, 0x0c, - 0x44, 0x58, 0x69, 0xe8, 0x5b, 0x11, 0xd4, 0xc0, 0x9d, 0x63, 0xcd, 0x24, 0xce, 0xa0, 0x65, 0x9f, - 0xf4, 0xd8, 0x80, 0xdb, 0x32, 0x08, 0xc5, 0x59, 0x13, 0xb4, 0xf2, 0xbc, 0x1c, 0xcf, 0xa4, 0x9a, - 0x41, 0x52, 0x0e, 0xef, 0x9c, 0xe5, 0xe0, 0x76, 0x8e, 0x89, 0x81, 0x53, 0x7e, 0x6f, 0xe6, 0xf9, - 0x79, 0x54, 0xd3, 0x5b, 0x9a, 0x49, 0x5d, 0xea, 0x24, 0x9d, 0x9a, 0xff, 0x51, 0x00, 0xdc, 0xb0, - 0x4c, 0xea, 0x58, 0xba, 0x4e, 0x1c, 0x44, 0xfa, 0x9a, 0xab, 0x59, 0x26, 0x7c, 0x0c, 0x6a, 0x6c, - 0x3d, 0x5d, 0x4c, 0xf1, 0xa2, 0xb2, 0xa2, 0xac, 0x4e, 0xae, 0xdd, 0x56, 0xa3, 0x4d, 0x09, 0xe9, - 0x55, 0xfb, 0xa4, 0xc7, 0x06, 0x5c, 0x95, 0xa1, 0xd5, 0xfe, 0x1d, 0x75, 0xf7, 0xe8, 0x63, 0xd2, - 0xa1, 0xdb, 0x84, 0xe2, 0x36, 0x7c, 0x76, 0xba, 0x3c, 0x36, 0x3c, 0x5d, 0x06, 0xd1, 0x18, 0x0a, - 0x59, 0xe1, 0x2e, 0xa8, 0x70, 0xf6, 0x12, 0x67, 0xbf, 0x95, 0xcb, 0x2e, 0x16, 0xad, 0x22, 0xfc, - 0x8b, 0xf7, 0x9f, 0x52, 0x62, 0xb2, 0xf0, 0xda, 0x97, 0x04, 0x75, 0x65, 0x13, 0x53, 0x8c, 0x38, - 0x11, 0xbc, 0x09, 0x6a, 0x8e, 0x08, 0x7f, 0xb1, 0xbc, 0xa2, 0xac, 0x96, 0xdb, 0x97, 0x05, 0xaa, - 0x16, 0x2c, 0x0b, 0x85, 0x88, 0xe6, 0x33, 0x05, 0xcc, 0xa7, 0xd7, 0xbd, 0xa5, 0xb9, 0x14, 0xfe, - 0x2c, 0xb5, 0x76, 0xb5, 0xd8, 0xda, 0x99, 0x37, 0x5f, 0x79, 0x38, 0x71, 0x30, 0x12, 0x5b, 0xf7, - 0x1e, 0xa8, 0x6a, 0x94, 0x18, 0xee, 0x62, 0x69, 0xa5, 0xbc, 0x3a, 0xb9, 0x76, 0x43, 0xcd, 0xc9, - 0x75, 0x35, 0x1d, 0x5d, 0x7b, 0x4a, 0xf0, 0x56, 0x1f, 0x32, 0x06, 0xe4, 0x13, 0x35, 0x7f, 0x53, - 0x02, 0xf5, 0x4d, 0x4c, 0x0c, 0xcb, 0xdc, 0x27, 0x74, 0x04, 0x3b, 0xf7, 0x00, 0x54, 0x5c, 0x9b, - 0x74, 0xc4, 0xce, 0x5d, 0xcb, 0x5d, 0x40, 0x18, 0xd3, 0xbe, 0x4d, 0x3a, 0xd1, 0x96, 0xb1, 0x5f, - 0x88, 0x33, 0xc0, 0x3d, 0x30, 0xee, 0x52, 0x4c, 0x3d, 0x97, 0x6f, 0xd8, 0xe4, 0xda, 0x6a, 0x01, - 0x2e, 0x8e, 0x6f, 0x4f, 0x0b, 0xb6, 0x71, 0xff, 0x37, 0x12, 0x3c, 0xcd, 0x3f, 0x29, 0x60, 0x2a, - 0xc4, 0x8e, 0x60, 0x37, 0xef, 0xcb, 0xbb, 0xd9, 0x3c, 0x7b, 0x01, 0x39, 0x9b, 0xf8, 0x69, 0x39, - 0x16, 0x38, 0x7b, 0x44, 0xf0, 0xe7, 0xa0, 0xe6, 0x12, 0x9d, 0x74, 0xa8, 0xe5, 0x88, 0xc0, 0xdf, - 0x2c, 0x18, 0x38, 0x3e, 0x22, 0xfa, 0xbe, 0x70, 0x6d, 0x5f, 0x62, 0x91, 0x07, 0xbf, 0x50, 0x48, - 0x09, 0x3f, 0x04, 0x35, 0x4a, 0x0c, 0x5b, 0xc7, 0x94, 0x88, 0x9d, 0x7c, 0x35, 0x1e, 0x3c, 0x2b, - 0x97, 0x8c, 0x6c, 0xcf, 0xea, 0x1e, 0x08, 0x18, 0xdf, 0xc6, 0xf0, 0x61, 0x04, 0xa3, 0x28, 0xa4, - 0x81, 0x36, 0x98, 0xf6, 0xec, 0x2e, 0x43, 0x52, 0x56, 0x62, 0x7a, 0x03, 0xb1, 0xad, 0xb7, 0xcf, - 0x7e, 0x2a, 0x87, 0x92, 0x5f, 0x7b, 0x5e, 0xcc, 0x32, 0x2d, 0x8f, 0xa3, 0x04, 0x3f, 0x5c, 0x07, - 0x33, 0x86, 0x66, 0x22, 0x82, 0xbb, 0x83, 0x7d, 0xd2, 0xb1, 0xcc, 0xae, 0xbb, 0x58, 0x59, 0x51, - 0x56, 0xab, 0xed, 0x05, 0x41, 0x30, 0xb3, 0x2d, 0x9b, 0x51, 0x12, 0x0f, 0xb7, 0xc0, 0x5c, 0x50, - 0x14, 0x1e, 0x68, 0x2e, 0xb5, 0x9c, 0xc1, 0x96, 0x66, 0x68, 0x74, 0x71, 0x9c, 0xf3, 0x2c, 0x0e, - 0x4f, 0x97, 0xe7, 0x50, 0x86, 0x1d, 0x65, 0x7a, 0x35, 0xff, 0x58, 0x05, 0x33, 0x89, 0x5c, 0x85, - 0x8f, 0xc0, 0x7c, 0xc7, 0x73, 0x1c, 0x62, 0xd2, 0x1d, 0xcf, 0x38, 0x22, 0xce, 0x7e, 0xe7, 0x98, - 0x74, 0x3d, 0x9d, 0x74, 0xf9, 0xb6, 0x56, 0xdb, 0x0d, 0x11, 0xeb, 0xfc, 0x46, 0x26, 0x0a, 0xe5, - 0x78, 0xc3, 0x0f, 0x00, 0x34, 0xf9, 0xd0, 0xb6, 0xe6, 0xba, 0x21, 0x67, 0x89, 0x73, 0x2e, 0x09, - 0x4e, 0xb8, 0x93, 0x42, 0xa0, 0x0c, 0x2f, 0x16, 0x63, 0x97, 0xb8, 0x9a, 0x43, 0xba, 0xc9, 0x18, - 0xcb, 0x72, 0x8c, 0x9b, 0x99, 0x28, 0x94, 0xe3, 0x0d, 0xdf, 0x06, 0x93, 0xfe, 0x6c, 0xfc, 0x99, - 0x8b, 0xcd, 0x99, 0x15, 0x64, 0x93, 0x3b, 0x91, 0x09, 0xc5, 0x71, 0x6c, 0x69, 0xd6, 0x91, 0x4b, - 0x9c, 0x3e, 0xe9, 0xde, 0xf7, 0x1b, 0x16, 0xab, 0xea, 0x55, 0x5e, 0xd5, 0xc3, 0xa5, 0xed, 0xa6, - 0x10, 0x28, 0xc3, 0x8b, 0x2d, 0xcd, 0xcf, 0x9a, 0xd4, 0xd2, 0xc6, 0xe5, 0xa5, 0x1d, 0x66, 0xa2, - 0x50, 0x8e, 0x37, 0xcb, 0x3d, 0x3f, 0xe4, 0xf5, 0x3e, 0xd6, 0x74, 0x7c, 0xa4, 0x93, 0xc5, 0x09, - 0x39, 0xf7, 0x76, 0x64, 0x33, 0x4a, 0xe2, 0xe1, 0x7d, 0x70, 0xc5, 0x1f, 0x3a, 0x34, 0x71, 0x48, - 0x52, 0xe3, 0x24, 0xaf, 0x08, 0x92, 0x2b, 0x3b, 0x49, 0x00, 0x4a, 0xfb, 0xc0, 0xbb, 0x60, 0xba, - 0x63, 0xe9, 0x3a, 0xcf, 0xc7, 0x0d, 0xcb, 0x33, 0xe9, 0x62, 0x9d, 0xb3, 0x40, 0x76, 0x86, 0x36, - 0x24, 0x0b, 0x4a, 0x20, 0x9b, 0x9f, 0x2a, 0x60, 0x21, 0xe7, 0x1c, 0xc2, 0x1f, 0x81, 0x0a, 0x1d, - 0xd8, 0x84, 0x27, 0x6a, 0xbd, 0x7d, 0x23, 0x28, 0xe1, 0x07, 0x03, 0x9b, 0x7c, 0x75, 0xba, 0x7c, - 0x35, 0xc7, 0x8d, 0x99, 0x11, 0x77, 0x84, 0xc7, 0x60, 0x8a, 0xf5, 0x30, 0xcd, 0xec, 0xf9, 0x10, - 0x51, 0x6a, 0x5a, 0xb9, 0x15, 0x01, 0xc5, 0xd1, 0x51, 0xd1, 0xbc, 0x32, 0x3c, 0x5d, 0x9e, 0x92, - 0x6c, 0x48, 0x26, 0x6e, 0xfe, 0xb6, 0x04, 0xc0, 0x26, 0xb1, 0x75, 0x6b, 0x60, 0x10, 0x73, 0x14, - 0x6d, 0xf0, 0xa1, 0xd4, 0x06, 0x5f, 0xcf, 0xaf, 0x71, 0x61, 0x50, 0xb9, 0x7d, 0xf0, 0xc3, 0x44, - 0x1f, 0xbc, 0x5e, 0x84, 0xec, 0xc5, 0x8d, 0xf0, 0xf3, 0x32, 0x98, 0x8d, 0xc0, 0x1b, 0x96, 0xd9, - 0xd5, 0xf8, 0x69, 0xb8, 0x27, 0xed, 0xe8, 0xeb, 0x89, 0x1d, 0x5d, 0xc8, 0x70, 0x89, 0xed, 0xe6, - 0x56, 0x18, 0x67, 0x89, 0xbb, 0xbf, 0x25, 0x4f, 0xfe, 0xd5, 0xe9, 0x72, 0x86, 0xe2, 0x56, 0x43, - 0x26, 0x39, 0x44, 0x78, 0x0d, 0x8c, 0x3b, 0x04, 0xbb, 0x96, 0xc9, 0xcb, 0x42, 0x3d, 0x5a, 0x0a, - 0xe2, 0xa3, 0x48, 0x58, 0xe1, 0x75, 0x30, 0x61, 0x10, 0xd7, 0xc5, 0x3d, 0xc2, 0x2b, 0x40, 0xbd, - 0x3d, 0x23, 0x80, 0x13, 0xdb, 0xfe, 0x30, 0x0a, 0xec, 0xf0, 0x63, 0x30, 0xad, 0x63, 0x57, 0xa4, - 0xe3, 0x81, 0x66, 0x10, 0x7e, 0xc6, 0x27, 0xd7, 0xde, 0x28, 0xb6, 0xf7, 0xcc, 0x23, 0xea, 0x3d, - 0x5b, 0x12, 0x13, 0x4a, 0x30, 0xc3, 0x3e, 0x80, 0x6c, 0xe4, 0xc0, 0xc1, 0xa6, 0xeb, 0x3f, 0x28, - 0x36, 0xdf, 0xc4, 0xb9, 0xe7, 0x0b, 0xeb, 0xd9, 0x56, 0x8a, 0x0d, 0x65, 0xcc, 0xd0, 0xfc, 0xb3, - 0x02, 0xa6, 0xa3, 0x6d, 0x1a, 0x81, 0xc6, 0x79, 0x20, 0x6b, 0x9c, 0x57, 0x0b, 0x24, 0x67, 0x8e, - 0xc8, 0xf9, 0xbc, 0x12, 0x0f, 0x9d, 0xab, 0x9c, 0x55, 0xa6, 0xda, 0x6d, 0x5d, 0xeb, 0x60, 0x57, - 0xb4, 0xc3, 0x4b, 0xbe, 0x62, 0xf7, 0xc7, 0x50, 0x68, 0x95, 0xf4, 0x50, 0xe9, 0xe5, 0xea, 0xa1, - 0xf2, 0x37, 0xa3, 0x87, 0x7e, 0x0a, 0x6a, 0x6e, 0xa0, 0x84, 0x2a, 0x9c, 0xf2, 0x46, 0xa1, 0x83, - 0x2d, 0x44, 0x50, 0x48, 0x1d, 0xca, 0x9f, 0x90, 0x2e, 0x4b, 0xf8, 0x54, 0xbf, 0x4d, 0xe1, 0xc3, - 0x0e, 0xb3, 0x8d, 0x3d, 0x97, 0x74, 0xf9, 0x09, 0xa8, 0x45, 0x87, 0x79, 0x8f, 0x8f, 0x22, 0x61, - 0x85, 0x87, 0x60, 0xc1, 0x76, 0xac, 0x9e, 0x43, 0x5c, 0x77, 0x93, 0xe0, 0xae, 0xae, 0x99, 0x24, - 0x58, 0x80, 0xdf, 0xb2, 0xae, 0x0e, 0x4f, 0x97, 0x17, 0xf6, 0xb2, 0x21, 0x28, 0xcf, 0xb7, 0xf9, - 0xb7, 0x0a, 0xb8, 0x9c, 0xac, 0x8d, 0x39, 0x2a, 0x42, 0xb9, 0x90, 0x8a, 0xb8, 0x19, 0xcb, 0x53, - 0x5f, 0x62, 0xc5, 0xde, 0x2e, 0x53, 0xb9, 0xba, 0x0e, 0x66, 0x84, 0x6a, 0x08, 0x8c, 0x42, 0x47, - 0x85, 0xdb, 0x73, 0x28, 0x9b, 0x51, 0x12, 0xcf, 0xb4, 0x41, 0xd4, 0xf2, 0x03, 0x92, 0x8a, 0xac, - 0x0d, 0xd6, 0x93, 0x00, 0x94, 0xf6, 0x81, 0xdb, 0x60, 0xd6, 0x33, 0xd3, 0x54, 0x7e, 0xba, 0x5c, - 0x15, 0x54, 0xb3, 0x87, 0x69, 0x08, 0xca, 0xf2, 0x83, 0x8f, 0x01, 0xe8, 0x04, 0x05, 0xdd, 0x5d, - 0x1c, 0xe7, 0x25, 0xe1, 0x66, 0x81, 0xb4, 0x0e, 0xbb, 0x40, 0xd4, 0x56, 0xc3, 0x21, 0x17, 0xc5, - 0x38, 0xe1, 0x3d, 0x30, 0xe5, 0x70, 0x49, 0x18, 0x84, 0xea, 0xcb, 0xaa, 0xef, 0x09, 0xb7, 0x29, - 0x14, 0x37, 0x22, 0x19, 0x9b, 0xa1, 0x84, 0x6a, 0x85, 0x95, 0xd0, 0x5f, 0x15, 0x00, 0xd3, 0xe7, - 0x10, 0xde, 0x95, 0x5a, 0xe6, 0xb5, 0x44, 0xcb, 0x9c, 0x4f, 0x7b, 0xc4, 0x3a, 0xa6, 0x96, 0xad, - 0x7f, 0x6e, 0x17, 0xd4, 0x3f, 0x51, 0x41, 0x2d, 0x26, 0x80, 0xc4, 0x63, 0x18, 0xcd, 0x3d, 0x40, - 0x51, 0x01, 0x14, 0x05, 0xf5, 0x0d, 0x08, 0xa0, 0x18, 0xd9, 0x8b, 0x05, 0xd0, 0xbf, 0x4b, 0x60, - 0x36, 0x02, 0x17, 0x16, 0x40, 0x19, 0x2e, 0x2f, 0x4d, 0x00, 0x65, 0x2b, 0x88, 0xf2, 0xcb, 0x56, - 0x10, 0x2f, 0x41, 0x78, 0x71, 0x51, 0x12, 0x3d, 0xba, 0xff, 0x27, 0x51, 0x12, 0x45, 0x95, 0x23, - 0x4a, 0xfe, 0x50, 0x8a, 0x87, 0xfe, 0x9d, 0x17, 0x25, 0x5f, 0xff, 0xca, 0xa4, 0xf9, 0xf7, 0x32, - 0xb8, 0x9c, 0x3c, 0x87, 0x52, 0x83, 0x54, 0xce, 0x6c, 0x90, 0x7b, 0x60, 0xee, 0x89, 0xa7, 0xeb, - 0x03, 0xfe, 0x18, 0x62, 0x5d, 0xd2, 0x6f, 0xad, 0xdf, 0x17, 0x9e, 0x73, 0x3f, 0xc9, 0xc0, 0xa0, - 0x4c, 0xcf, 0x9c, 0x66, 0x5f, 0xbe, 0x50, 0xb3, 0x4f, 0x75, 0xa0, 0xca, 0x39, 0x3a, 0x50, 0x66, - 0xe3, 0xae, 0x5e, 0xa0, 0x71, 0x9f, 0xaf, 0xd3, 0x66, 0x14, 0xae, 0xb3, 0x3a, 0x6d, 0xf3, 0xd7, - 0x0a, 0x98, 0xcf, 0x7e, 0xe1, 0x86, 0x3a, 0x98, 0x36, 0xf0, 0xd3, 0xf8, 0xbd, 0xc4, 0x59, 0x4d, - 0xc4, 0xa3, 0x9a, 0xae, 0xfa, 0x5f, 0x19, 0xd4, 0x87, 0x26, 0xdd, 0x75, 0xf6, 0xa9, 0xa3, 0x99, - 0x3d, 0xbf, 0xf3, 0x6e, 0x4b, 0x5c, 0x28, 0xc1, 0xdd, 0xfc, 0x52, 0x01, 0x0b, 0x39, 0x9d, 0x6f, - 0xb4, 0x91, 0xc0, 0x8f, 0x40, 0xcd, 0xc0, 0x4f, 0xf7, 0x3d, 0xa7, 0x97, 0xd5, 0xab, 0x8b, 0xcd, - 0xc3, 0x4f, 0xf3, 0xb6, 0x60, 0x41, 0x21, 0x5f, 0x73, 0x17, 0xac, 0x48, 0x8b, 0x64, 0x27, 0x87, - 0x3c, 0xf1, 0x74, 0x7e, 0x88, 0x84, 0xd8, 0xb8, 0x01, 0xea, 0x36, 0x76, 0xa8, 0x16, 0x4a, 0xd5, - 0x6a, 0x7b, 0x6a, 0x78, 0xba, 0x5c, 0xdf, 0x0b, 0x06, 0x51, 0x64, 0x6f, 0xfe, 0x57, 0x01, 0xd5, - 0xfd, 0x0e, 0xd6, 0xc9, 0x08, 0xba, 0xfd, 0xa6, 0xd4, 0xed, 0xf3, 0x2f, 0xba, 0x79, 0x3c, 0xb9, - 0x8d, 0x7e, 0x2b, 0xd1, 0xe8, 0x5f, 0x3b, 0x83, 0xe7, 0xc5, 0x3d, 0xfe, 0x3d, 0x50, 0x0f, 0xa7, - 0x3b, 0x5f, 0x01, 0x6a, 0xfe, 0xbe, 0x04, 0x26, 0x63, 0x53, 0x9c, 0xb3, 0x7c, 0x3d, 0x96, 0xca, - 0x3e, 0x3b, 0x98, 0x6b, 0x45, 0x16, 0xa2, 0x06, 0x25, 0xfe, 0x7d, 0x93, 0x3a, 0xf1, 0x17, 0xbc, - 0x74, 0xe5, 0xff, 0x21, 0x98, 0xa6, 0xd8, 0xe9, 0x11, 0x1a, 0xd8, 0xf8, 0x03, 0xab, 0x47, 0xb7, - 0x13, 0x07, 0x92, 0x15, 0x25, 0xd0, 0x4b, 0xf7, 0xc0, 0x94, 0x34, 0x19, 0xbc, 0x0c, 0xca, 0x27, - 0x64, 0xe0, 0xcb, 0x1e, 0xc4, 0xfe, 0x84, 0x73, 0xa0, 0xda, 0xc7, 0xba, 0xe7, 0xe7, 0x79, 0x1d, - 0xf9, 0x3f, 0xee, 0x96, 0xde, 0x55, 0x9a, 0x9f, 0xb0, 0x87, 0x13, 0x25, 0xe7, 0x08, 0xb2, 0xeb, - 0x03, 0x29, 0xbb, 0xf2, 0xbf, 0x03, 0xc5, 0x8f, 0x4c, 0x5e, 0x8e, 0xa1, 0x44, 0x8e, 0xbd, 0x51, - 0x88, 0xed, 0xc5, 0x99, 0xf6, 0x17, 0x05, 0xcc, 0xc4, 0xd0, 0x23, 0x10, 0x38, 0x0f, 0x65, 0x81, - 0xf3, 0x5a, 0x91, 0x45, 0xe4, 0x28, 0x9c, 0x7f, 0x54, 0xa5, 0xe0, 0xbf, 0xf3, 0x12, 0xe7, 0x97, - 0x60, 0xae, 0x6f, 0xe9, 0x9e, 0x41, 0x36, 0x74, 0xac, 0x19, 0x01, 0x80, 0x75, 0xf1, 0x72, 0xf2, - 0xdd, 0x22, 0xa4, 0x27, 0x8e, 0xab, 0xb9, 0x94, 0x98, 0xf4, 0x51, 0xe4, 0x19, 0xe9, 0x90, 0x47, - 0x19, 0x74, 0x28, 0x73, 0x12, 0xf8, 0x36, 0x98, 0x64, 0x7a, 0x42, 0xeb, 0x90, 0x1d, 0x6c, 0x04, - 0xc2, 0x39, 0xfc, 0xe2, 0xb1, 0x1f, 0x99, 0x50, 0x1c, 0x07, 0x8f, 0xc1, 0xac, 0x6d, 0x75, 0xb7, - 0xb1, 0x89, 0x7b, 0x84, 0xb5, 0xbd, 0x3d, 0xfe, 0xaf, 0x08, 0xfc, 0x32, 0xa6, 0xde, 0x7e, 0x27, - 0x78, 0x4b, 0xdf, 0x4b, 0x43, 0xd8, 0x4b, 0x4b, 0xc6, 0x30, 0x7f, 0x69, 0xc9, 0xa2, 0x84, 0x4e, - 0xea, 0x2b, 0x9d, 0x7f, 0x67, 0xb9, 0x56, 0x24, 0xc3, 0x2e, 0xf8, 0x9d, 0x2e, 0xef, 0xae, 0xa9, - 0x76, 0xa1, 0x8f, 0x6c, 0x9f, 0x54, 0xc0, 0x95, 0xd4, 0xd1, 0xfd, 0x16, 0x6f, 0x7b, 0x52, 0x72, - 0xb1, 0x7c, 0x0e, 0xb9, 0xb8, 0x0e, 0x66, 0xc4, 0xf7, 0xbd, 0x84, 0xda, 0x0c, 0xf5, 0xf8, 0x86, - 0x6c, 0x46, 0x49, 0x7c, 0xd6, 0x6d, 0x53, 0xf5, 0x9c, 0xb7, 0x4d, 0xf1, 0x28, 0xc4, 0xff, 0x50, - 0xf8, 0xa9, 0x97, 0x8e, 0x42, 0xfc, 0x2b, 0x45, 0x12, 0xcf, 0x3a, 0x96, 0xcf, 0x1a, 0x32, 0x4c, - 0xc8, 0x1d, 0xeb, 0x50, 0xb2, 0xa2, 0x04, 0xfa, 0x6b, 0x7d, 0xc3, 0xfa, 0xa7, 0x02, 0x5e, 0xc9, - 0xcd, 0x52, 0xb8, 0x2e, 0xbd, 0xf2, 0xdf, 0x4a, 0xbc, 0xf2, 0xff, 0x20, 0xd7, 0x31, 0xf6, 0xe2, - 0xef, 0x64, 0xdf, 0xe3, 0xbc, 0x57, 0xec, 0x1e, 0x27, 0x43, 0xe8, 0x9d, 0x7d, 0xa1, 0xd3, 0xbe, - 0xf5, 0xec, 0x79, 0x63, 0xec, 0xb3, 0xe7, 0x8d, 0xb1, 0x2f, 0x9e, 0x37, 0xc6, 0x7e, 0x35, 0x6c, - 0x28, 0xcf, 0x86, 0x0d, 0xe5, 0xb3, 0x61, 0x43, 0xf9, 0x62, 0xd8, 0x50, 0xfe, 0x35, 0x6c, 0x28, - 0xbf, 0xfb, 0xb2, 0x31, 0xf6, 0xd1, 0x84, 0x98, 0xf1, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe8, - 0x1d, 0x40, 0xdd, 0x77, 0x25, 0x00, 0x00, + // 2186 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcb, 0x6f, 0x1c, 0xb7, + 0x19, 0xf7, 0xec, 0x43, 0x5a, 0x51, 0x96, 0x64, 0x53, 0xaa, 0xb4, 0x91, 0xdb, 0x95, 0xb1, 0x09, + 0x1c, 0x39, 0xb6, 0x66, 0x6d, 0xe5, 0x81, 0xc4, 0x2e, 0xda, 0x6a, 0xa5, 0xd4, 0x76, 0xa0, 0x57, + 0x28, 0xcb, 0x40, 0x83, 0x16, 0x35, 0xb5, 0x4b, 0xaf, 0x26, 0x9a, 0x17, 0x66, 0x38, 0x5b, 0x2f, + 0x7a, 0xe9, 0xa9, 0x40, 0x81, 0x02, 0x6d, 0xaf, 0xfd, 0x27, 0x7a, 0x2b, 0x8a, 0xf6, 0x56, 0x04, + 0x85, 0x2f, 0x05, 0x82, 0x5e, 0x92, 0x93, 0x50, 0x6f, 0x4e, 0x45, 0xd1, 0x4b, 0x81, 0x5e, 0x02, + 0x14, 0x28, 0xc8, 0xe1, 0x3c, 0x38, 0x0f, 0xef, 0x48, 0xb1, 0x95, 0x22, 0xc8, 0x6d, 0x87, 0xfc, + 0x7d, 0x3f, 0x7e, 0x24, 0xbf, 0x8f, 0xdf, 0x6f, 0x38, 0x0b, 0xbe, 0x77, 0xf4, 0xb6, 0xab, 0x6a, + 0x56, 0xeb, 0xc8, 0x3b, 0x20, 0x8e, 0x49, 0x28, 0x71, 0x5b, 0x7d, 0x62, 0x76, 0x2d, 0xa7, 0x25, + 0x3a, 0xb0, 0xad, 0xb5, 0xb0, 0x6d, 0xbb, 0xad, 0xfe, 0xcd, 0x03, 0x42, 0xf1, 0x6a, 0xab, 0x47, + 0x4c, 0xe2, 0x60, 0x4a, 0xba, 0xaa, 0xed, 0x58, 0xd4, 0x82, 0x0b, 0x3e, 0x50, 0xc5, 0xb6, 0xa6, + 0x32, 0xa0, 0x2a, 0x80, 0x8b, 0x2b, 0x3d, 0x8d, 0x1e, 0x7a, 0x07, 0x6a, 0xc7, 0x32, 0x5a, 0x3d, + 0xab, 0x67, 0xb5, 0x38, 0xfe, 0xc0, 0x7b, 0xc4, 0x9f, 0xf8, 0x03, 0xff, 0xe5, 0xf3, 0x2c, 0x36, + 0x63, 0x03, 0x76, 0x2c, 0x87, 0xb4, 0xfa, 0x37, 0x93, 0x63, 0x2d, 0x5e, 0x8d, 0x61, 0x6c, 0x4b, + 0xd7, 0x3a, 0x03, 0xe1, 0x56, 0x1a, 0xfa, 0x46, 0x04, 0x35, 0x70, 0xe7, 0x50, 0x33, 0x89, 0x33, + 0x68, 0xd9, 0x47, 0x3d, 0xd6, 0xe0, 0xb6, 0x0c, 0x42, 0x71, 0xd6, 0x00, 0xad, 0x3c, 0x2b, 0xc7, + 0x33, 0xa9, 0x66, 0x90, 0x94, 0xc1, 0x5b, 0xa3, 0x0c, 0xdc, 0xce, 0x21, 0x31, 0x70, 0xca, 0xee, + 0xf5, 0x3c, 0x3b, 0x8f, 0x6a, 0x7a, 0x4b, 0x33, 0xa9, 0x4b, 0x9d, 0xa4, 0x51, 0xf3, 0x3f, 0x0a, + 0x80, 0xeb, 0x96, 0x49, 0x1d, 0x4b, 0xd7, 0x89, 0x83, 0x48, 0x5f, 0x73, 0x35, 0xcb, 0x84, 0x0f, + 0x41, 0x8d, 0xcd, 0xa7, 0x8b, 0x29, 0xae, 0x2b, 0x97, 0x95, 0xe5, 0xc9, 0xd5, 0x1b, 0x6a, 0xb4, + 0x29, 0x21, 0xbd, 0x6a, 0x1f, 0xf5, 0x58, 0x83, 0xab, 0x32, 0xb4, 0xda, 0xbf, 0xa9, 0xee, 0x1c, + 0x7c, 0x48, 0x3a, 0x74, 0x8b, 0x50, 0xdc, 0x86, 0x4f, 0x8e, 0x97, 0xce, 0x0d, 0x8f, 0x97, 0x40, + 0xd4, 0x86, 0x42, 0x56, 0xb8, 0x03, 0x2a, 0x9c, 0xbd, 0xc4, 0xd9, 0x57, 0x72, 0xd9, 0xc5, 0xa4, + 0x55, 0x84, 0x7f, 0xf2, 0xee, 0x63, 0x4a, 0x4c, 0xe6, 0x5e, 0xfb, 0xbc, 0xa0, 0xae, 0x6c, 0x60, + 0x8a, 0x11, 0x27, 0x82, 0xd7, 0x41, 0xcd, 0x11, 0xee, 0xd7, 0xcb, 0x97, 0x95, 0xe5, 0x72, 0xfb, + 0x82, 0x40, 0xd5, 0x82, 0x69, 0xa1, 0x10, 0xd1, 0x7c, 0xa2, 0x80, 0xf9, 0xf4, 0xbc, 0x37, 0x35, + 0x97, 0xc2, 0x1f, 0xa6, 0xe6, 0xae, 0x16, 0x9b, 0x3b, 0xb3, 0xe6, 0x33, 0x0f, 0x07, 0x0e, 0x5a, + 0x62, 0xf3, 0xde, 0x05, 0x55, 0x8d, 0x12, 0xc3, 0xad, 0x97, 0x2e, 0x97, 0x97, 0x27, 0x57, 0xaf, + 0xa9, 0x39, 0xb1, 0xae, 0xa6, 0xbd, 0x6b, 0x4f, 0x09, 0xde, 0xea, 0x3d, 0xc6, 0x80, 0x7c, 0xa2, + 0xe6, 0x2f, 0x4a, 0x60, 0x62, 0x03, 0x13, 0xc3, 0x32, 0xf7, 0x08, 0x3d, 0x83, 0x9d, 0xbb, 0x0b, + 0x2a, 0xae, 0x4d, 0x3a, 0x62, 0xe7, 0xae, 0xe4, 0x4e, 0x20, 0xf4, 0x69, 0xcf, 0x26, 0x9d, 0x68, + 0xcb, 0xd8, 0x13, 0xe2, 0x0c, 0x70, 0x17, 0x8c, 0xb9, 0x14, 0x53, 0xcf, 0xe5, 0x1b, 0x36, 0xb9, + 0xba, 0x5c, 0x80, 0x8b, 0xe3, 0xdb, 0xd3, 0x82, 0x6d, 0xcc, 0x7f, 0x46, 0x82, 0xa7, 0xf9, 0x8f, + 0x12, 0x80, 0x21, 0x76, 0xdd, 0x32, 0xbb, 0x1a, 0x65, 0xe1, 0x7c, 0x0b, 0x54, 0xe8, 0xc0, 0x26, + 0x7c, 0x41, 0x26, 0xda, 0x57, 0x02, 0x57, 0xee, 0x0f, 0x6c, 0xf2, 0xf9, 0xf1, 0xd2, 0x7c, 0xda, + 0x82, 0xf5, 0x20, 0x6e, 0x03, 0x37, 0x43, 0x27, 0x4b, 0xdc, 0xfa, 0x0d, 0x79, 0xe8, 0xcf, 0x8f, + 0x97, 0x32, 0x8e, 0x19, 0x35, 0x64, 0x92, 0x1d, 0x84, 0x7d, 0x00, 0x75, 0xec, 0xd2, 0xfb, 0x0e, + 0x36, 0x5d, 0x7f, 0x24, 0xcd, 0x20, 0x62, 0xfa, 0xaf, 0x15, 0xdb, 0x28, 0x66, 0xd1, 0x5e, 0x14, + 0x5e, 0xc0, 0xcd, 0x14, 0x1b, 0xca, 0x18, 0x01, 0x5e, 0x01, 0x63, 0x0e, 0xc1, 0xae, 0x65, 0xd6, + 0x2b, 0x7c, 0x16, 0xe1, 0x02, 0x22, 0xde, 0x8a, 0x44, 0x2f, 0xbc, 0x0a, 0xc6, 0x0d, 0xe2, 0xba, + 0xb8, 0x47, 0xea, 0x55, 0x0e, 0x9c, 0x11, 0xc0, 0xf1, 0x2d, 0xbf, 0x19, 0x05, 0xfd, 0xcd, 0xdf, + 0x2b, 0x60, 0x2a, 0x5c, 0xb9, 0x33, 0xc8, 0x9c, 0x3b, 0x72, 0xe6, 0x34, 0x47, 0x07, 0x4b, 0x4e, + 0xc2, 0x7c, 0x54, 0x8e, 0x39, 0xce, 0xc2, 0x11, 0xfe, 0x08, 0xd4, 0x5c, 0xa2, 0x93, 0x0e, 0xb5, + 0x1c, 0xe1, 0xf8, 0xeb, 0x05, 0x1d, 0xc7, 0x07, 0x44, 0xdf, 0x13, 0xa6, 0xed, 0xf3, 0xcc, 0xf3, + 0xe0, 0x09, 0x85, 0x94, 0xf0, 0x7d, 0x50, 0xa3, 0xc4, 0xb0, 0x75, 0x4c, 0x89, 0xc8, 0x9a, 0x97, + 0xe3, 0xce, 0xb3, 0x98, 0x61, 0x64, 0xbb, 0x56, 0xf7, 0xbe, 0x80, 0xf1, 0x94, 0x09, 0x17, 0x23, + 0x68, 0x45, 0x21, 0x0d, 0xb4, 0xc1, 0xb4, 0x67, 0x77, 0x19, 0x92, 0xb2, 0xe3, 0xbc, 0x37, 0x10, + 0x31, 0x74, 0x63, 0xf4, 0xaa, 0xec, 0x4b, 0x76, 0xed, 0x79, 0x31, 0xca, 0xb4, 0xdc, 0x8e, 0x12, + 0xfc, 0x70, 0x0d, 0xcc, 0x18, 0x9a, 0x89, 0x08, 0xee, 0x0e, 0xf6, 0x48, 0xc7, 0x32, 0xbb, 0x2e, + 0x0f, 0xa5, 0x6a, 0x7b, 0x41, 0x10, 0xcc, 0x6c, 0xc9, 0xdd, 0x28, 0x89, 0x87, 0x9b, 0x60, 0x2e, + 0x38, 0x80, 0xef, 0x6a, 0x2e, 0xb5, 0x9c, 0xc1, 0xa6, 0x66, 0x68, 0xb4, 0x3e, 0xc6, 0x79, 0xea, + 0xc3, 0xe3, 0xa5, 0x39, 0x94, 0xd1, 0x8f, 0x32, 0xad, 0x9a, 0xbf, 0x19, 0x03, 0x33, 0x89, 0x73, + 0x01, 0x3e, 0x00, 0xf3, 0x1d, 0xcf, 0x71, 0x88, 0x49, 0xb7, 0x3d, 0xe3, 0x80, 0x38, 0x7b, 0x9d, + 0x43, 0xd2, 0xf5, 0x74, 0xd2, 0xe5, 0xdb, 0x5a, 0x6d, 0x37, 0x84, 0xaf, 0xf3, 0xeb, 0x99, 0x28, + 0x94, 0x63, 0x0d, 0xdf, 0x03, 0xd0, 0xe4, 0x4d, 0x5b, 0x9a, 0xeb, 0x86, 0x9c, 0x25, 0xce, 0x19, + 0xa6, 0xe2, 0x76, 0x0a, 0x81, 0x32, 0xac, 0x98, 0x8f, 0x5d, 0xe2, 0x6a, 0x0e, 0xe9, 0x26, 0x7d, + 0x2c, 0xcb, 0x3e, 0x6e, 0x64, 0xa2, 0x50, 0x8e, 0x35, 0x7c, 0x13, 0x4c, 0xfa, 0xa3, 0xf1, 0x35, + 0x17, 0x9b, 0x33, 0x2b, 0xc8, 0x26, 0xb7, 0xa3, 0x2e, 0x14, 0xc7, 0xb1, 0xa9, 0x59, 0x07, 0x2e, + 0x71, 0xfa, 0xa4, 0x7b, 0xc7, 0x17, 0x07, 0xac, 0x82, 0x56, 0x79, 0x05, 0x0d, 0xa7, 0xb6, 0x93, + 0x42, 0xa0, 0x0c, 0x2b, 0x36, 0x35, 0x3f, 0x6a, 0x52, 0x53, 0x1b, 0x93, 0xa7, 0xb6, 0x9f, 0x89, + 0x42, 0x39, 0xd6, 0x2c, 0xf6, 0x7c, 0x97, 0xd7, 0xfa, 0x58, 0xd3, 0xf1, 0x81, 0x4e, 0xea, 0xe3, + 0x72, 0xec, 0x6d, 0xcb, 0xdd, 0x28, 0x89, 0x87, 0x77, 0xc0, 0x45, 0xbf, 0x69, 0xdf, 0xc4, 0x21, + 0x49, 0x8d, 0x93, 0xbc, 0x24, 0x48, 0x2e, 0x6e, 0x27, 0x01, 0x28, 0x6d, 0x03, 0x6f, 0x81, 0xe9, + 0x8e, 0xa5, 0xeb, 0x3c, 0x1e, 0xd7, 0x2d, 0xcf, 0xa4, 0xf5, 0x09, 0xce, 0x02, 0x59, 0x0e, 0xad, + 0x4b, 0x3d, 0x28, 0x81, 0x84, 0x3f, 0x06, 0xa0, 0x13, 0x14, 0x06, 0xb7, 0x0e, 0x46, 0x28, 0x80, + 0x74, 0x59, 0x8a, 0x2a, 0x73, 0xd8, 0xe4, 0xa2, 0x18, 0x65, 0xf3, 0x23, 0x05, 0x2c, 0xe4, 0x24, + 0x3a, 0xfc, 0xae, 0x54, 0x04, 0xaf, 0x25, 0x8a, 0xe0, 0xa5, 0x1c, 0xb3, 0x58, 0x25, 0x3c, 0x04, + 0x53, 0x4c, 0x90, 0x68, 0x66, 0xcf, 0x87, 0x88, 0xb3, 0xac, 0x95, 0x3b, 0x01, 0x14, 0x47, 0x47, + 0xa7, 0xf2, 0xc5, 0xe1, 0xf1, 0xd2, 0x94, 0xd4, 0x87, 0x64, 0xe2, 0xe6, 0x2f, 0x4b, 0x00, 0x6c, + 0x10, 0x5b, 0xb7, 0x06, 0x06, 0x31, 0xcf, 0x42, 0xd3, 0xdc, 0x93, 0x34, 0xcd, 0xab, 0xf9, 0x5b, + 0x12, 0x3a, 0x95, 0x2b, 0x6a, 0xde, 0x4f, 0x88, 0x9a, 0xab, 0x45, 0xc8, 0x9e, 0xad, 0x6a, 0x3e, + 0x29, 0x83, 0xd9, 0x08, 0x1c, 0xc9, 0x9a, 0xdb, 0xd2, 0x8e, 0xbe, 0x9a, 0xd8, 0xd1, 0x85, 0x0c, + 0x93, 0x17, 0xa6, 0x6b, 0x9e, 0xbf, 0xbe, 0x80, 0x1f, 0x82, 0x69, 0x26, 0x64, 0xfc, 0x90, 0xe0, + 0x32, 0x69, 0xec, 0xc4, 0x32, 0x29, 0x2c, 0x6e, 0x9b, 0x12, 0x13, 0x4a, 0x30, 0xe7, 0xc8, 0xb2, + 0xf1, 0x17, 0x2d, 0xcb, 0x9a, 0x7f, 0x50, 0xc0, 0x74, 0xb4, 0x4d, 0x67, 0x20, 0xa2, 0xee, 0xca, + 0x22, 0xea, 0xe5, 0x02, 0xc1, 0x99, 0xa3, 0xa2, 0x3e, 0xa9, 0xc4, 0x5d, 0xe7, 0x32, 0x6a, 0x99, + 0xbd, 0x82, 0xd9, 0xba, 0xd6, 0xc1, 0xae, 0xa8, 0xb7, 0xe7, 0xfd, 0xd7, 0x2f, 0xbf, 0x0d, 0x85, + 0xbd, 0x92, 0xe0, 0x2a, 0xbd, 0x58, 0xc1, 0x55, 0x7e, 0x3e, 0x82, 0xeb, 0x07, 0xa0, 0xe6, 0x06, + 0x52, 0xab, 0xc2, 0x29, 0xaf, 0x15, 0x4a, 0x6c, 0xa1, 0xb2, 0x42, 0xea, 0x50, 0x5f, 0x85, 0x74, + 0x59, 0xca, 0xaa, 0xfa, 0x65, 0x2a, 0x2b, 0x96, 0xcc, 0x36, 0xf6, 0x5c, 0xd2, 0xe5, 0x19, 0x50, + 0x8b, 0x92, 0x79, 0x97, 0xb7, 0x22, 0xd1, 0x0b, 0xf7, 0xc1, 0x82, 0xed, 0x58, 0x3d, 0x87, 0xb8, + 0xee, 0x06, 0xc1, 0x5d, 0x5d, 0x33, 0x49, 0x30, 0x01, 0xbf, 0x26, 0x5e, 0x1a, 0x1e, 0x2f, 0x2d, + 0xec, 0x66, 0x43, 0x50, 0x9e, 0x6d, 0xf3, 0xcf, 0x15, 0x70, 0x21, 0x79, 0x36, 0xe6, 0xc8, 0x14, + 0xe5, 0x54, 0x32, 0xe5, 0x7a, 0x2c, 0x4e, 0x7d, 0x0d, 0x17, 0xbb, 0x2a, 0x48, 0xc5, 0xea, 0x1a, + 0x98, 0x11, 0xb2, 0x24, 0xe8, 0x14, 0x42, 0x2d, 0xdc, 0x9e, 0x7d, 0xb9, 0x1b, 0x25, 0xf1, 0x4c, + 0x7c, 0x44, 0x9a, 0x22, 0x20, 0xa9, 0xc8, 0xe2, 0x63, 0x2d, 0x09, 0x40, 0x69, 0x1b, 0xb8, 0x05, + 0x66, 0x3d, 0x33, 0x4d, 0xe5, 0x87, 0xcb, 0x25, 0x41, 0x35, 0xbb, 0x9f, 0x86, 0xa0, 0x2c, 0x3b, + 0xf8, 0x50, 0xd2, 0x23, 0x63, 0xfc, 0x48, 0xb8, 0x5e, 0x20, 0xac, 0x0b, 0x0b, 0x12, 0x78, 0x1b, + 0x4c, 0x39, 0x5c, 0x73, 0x06, 0xae, 0xfa, 0xba, 0xed, 0x1b, 0xc2, 0x6c, 0x0a, 0xc5, 0x3b, 0x91, + 0x8c, 0xcd, 0x90, 0x5a, 0xb5, 0xa2, 0x52, 0xab, 0xf9, 0x27, 0x05, 0xc0, 0x74, 0x1e, 0x8e, 0xbc, + 0x09, 0x48, 0x59, 0xc4, 0x2a, 0xa6, 0x96, 0xad, 0x7f, 0x6e, 0x14, 0xd4, 0x3f, 0xd1, 0x81, 0x5a, + 0x4c, 0x00, 0x89, 0x65, 0x38, 0x9b, 0x4b, 0x9d, 0xa2, 0x02, 0x28, 0x72, 0xea, 0x39, 0x08, 0xa0, + 0x18, 0xd9, 0xb3, 0x05, 0xd0, 0x3f, 0x4b, 0x60, 0x36, 0x02, 0x17, 0x16, 0x40, 0x19, 0x26, 0x5f, + 0x5f, 0xec, 0x8c, 0xbe, 0xd8, 0x61, 0xa2, 0x24, 0x5a, 0xba, 0xff, 0x27, 0x51, 0x12, 0x79, 0x95, + 0x23, 0x4a, 0x7e, 0x57, 0x8a, 0xbb, 0xfe, 0x95, 0x17, 0x25, 0x5f, 0xfc, 0x4e, 0xa6, 0xf9, 0x97, + 0x32, 0xb8, 0x90, 0xcc, 0x43, 0xa9, 0x40, 0x2a, 0x23, 0x0b, 0xe4, 0x2e, 0x98, 0x7b, 0xe4, 0xe9, + 0xfa, 0x80, 0x2f, 0x43, 0xac, 0x4a, 0xfa, 0xa5, 0xf5, 0x9b, 0xc2, 0x72, 0xee, 0xfb, 0x19, 0x18, + 0x94, 0x69, 0x99, 0x53, 0xec, 0xcb, 0xa7, 0x2a, 0xf6, 0xa9, 0x0a, 0x54, 0x39, 0x41, 0x05, 0xca, + 0x2c, 0xdc, 0xd5, 0x53, 0x14, 0xee, 0x93, 0x55, 0xda, 0x8c, 0x83, 0x6b, 0xe4, 0xab, 0xff, 0xcf, + 0x15, 0x30, 0x9f, 0xfd, 0xc2, 0x0d, 0x75, 0x30, 0x6d, 0xe0, 0xc7, 0xf1, 0x8b, 0x8f, 0x51, 0x45, + 0xc4, 0xa3, 0x9a, 0xae, 0xfa, 0x9f, 0x8c, 0xd4, 0x7b, 0x26, 0xdd, 0x71, 0xf6, 0xa8, 0xa3, 0x99, + 0x3d, 0xbf, 0xf2, 0x6e, 0x49, 0x5c, 0x28, 0xc1, 0xdd, 0xfc, 0x4c, 0x01, 0x0b, 0x39, 0x95, 0xef, + 0x6c, 0x3d, 0x81, 0x1f, 0x80, 0x9a, 0x81, 0x1f, 0xef, 0x79, 0x4e, 0x2f, 0xab, 0x56, 0x17, 0x1b, + 0x87, 0x67, 0xf3, 0x96, 0x60, 0x41, 0x21, 0x5f, 0x73, 0x07, 0x5c, 0x96, 0x26, 0xc9, 0x32, 0x87, + 0x3c, 0xf2, 0x74, 0x9e, 0x44, 0x42, 0x6c, 0x5c, 0x03, 0x13, 0x36, 0x76, 0xa8, 0x16, 0x4a, 0xd5, + 0x6a, 0x7b, 0x6a, 0x78, 0xbc, 0x34, 0xb1, 0x1b, 0x34, 0xa2, 0xa8, 0xbf, 0xf9, 0x5f, 0x05, 0x54, + 0xf7, 0x3a, 0x58, 0x27, 0x67, 0x50, 0xed, 0x37, 0xa4, 0x6a, 0x9f, 0x7f, 0x93, 0xce, 0xfd, 0xc9, + 0x2d, 0xf4, 0x9b, 0x89, 0x42, 0xff, 0xca, 0x08, 0x9e, 0x67, 0xd7, 0xf8, 0x77, 0xc0, 0x44, 0x38, + 0xdc, 0xc9, 0x0e, 0xa0, 0xe6, 0x6f, 0x4b, 0x60, 0x32, 0x36, 0xc4, 0x09, 0x8f, 0xaf, 0x87, 0xd2, + 0xb1, 0xcf, 0x12, 0x73, 0xb5, 0xc8, 0x44, 0xd4, 0xe0, 0x88, 0x7f, 0xd7, 0xa4, 0x4e, 0xfc, 0x05, + 0x2f, 0x7d, 0xf2, 0x7f, 0x07, 0x4c, 0x53, 0xec, 0xf4, 0x08, 0x0d, 0xfa, 0xf8, 0x82, 0x4d, 0x44, + 0xb7, 0x13, 0xf7, 0xa5, 0x5e, 0x94, 0x40, 0x2f, 0xde, 0x06, 0x53, 0xd2, 0x60, 0xf0, 0x02, 0x28, + 0x1f, 0x91, 0x81, 0x2f, 0x7b, 0x10, 0xfb, 0x09, 0xe7, 0x40, 0xb5, 0x8f, 0x75, 0xcf, 0x8f, 0xf3, + 0x09, 0xe4, 0x3f, 0xdc, 0x2a, 0xbd, 0xad, 0x34, 0x7f, 0xc5, 0x16, 0x27, 0x0a, 0xce, 0x33, 0x88, + 0xae, 0xf7, 0xa4, 0xe8, 0xca, 0xff, 0xa8, 0x17, 0x4f, 0x99, 0xbc, 0x18, 0x43, 0x89, 0x18, 0x7b, + 0xad, 0x10, 0xdb, 0xb3, 0x23, 0xed, 0x5f, 0x25, 0x30, 0x17, 0x43, 0x47, 0x72, 0xf2, 0xdb, 0x92, + 0x9c, 0x5c, 0x4e, 0xc8, 0xc9, 0x7a, 0x96, 0xcd, 0xd7, 0x7a, 0x72, 0xb4, 0x9e, 0xfc, 0xa3, 0x02, + 0x66, 0x62, 0x6b, 0x77, 0x06, 0x82, 0xf2, 0x9e, 0x2c, 0x28, 0x5f, 0x29, 0x12, 0x34, 0x39, 0x8a, + 0xf2, 0xaf, 0x55, 0xc9, 0xf9, 0xaf, 0xbc, 0xa4, 0xfc, 0x29, 0x98, 0xeb, 0x5b, 0xba, 0x67, 0x90, + 0x75, 0x1d, 0x6b, 0x46, 0x00, 0x60, 0xaa, 0xa9, 0x9c, 0x7c, 0x97, 0x0b, 0xe9, 0x89, 0xe3, 0x6a, + 0x2e, 0x25, 0x26, 0x7d, 0x10, 0x59, 0x46, 0xba, 0xef, 0x41, 0x06, 0x1d, 0xca, 0x1c, 0x04, 0xbe, + 0x09, 0x26, 0x99, 0x7e, 0xd3, 0x3a, 0x64, 0x1b, 0x1b, 0x41, 0x60, 0x85, 0x9f, 0xb0, 0xf6, 0xa2, + 0x2e, 0x14, 0xc7, 0xc1, 0x43, 0x30, 0x6b, 0x5b, 0xdd, 0x2d, 0x6c, 0xe2, 0x1e, 0x61, 0x32, 0x63, + 0x97, 0xff, 0x8f, 0x87, 0x5f, 0x7e, 0x4d, 0xb4, 0xdf, 0x0a, 0x6e, 0x45, 0x76, 0xd3, 0x10, 0xf6, + 0x92, 0x98, 0xd1, 0xcc, 0x93, 0x3a, 0x8b, 0x12, 0x3a, 0xa9, 0xcf, 0xae, 0xfe, 0x1d, 0xf1, 0x6a, + 0x91, 0x08, 0x3b, 0xe5, 0x87, 0xd7, 0xbc, 0xbb, 0xbd, 0xda, 0xa9, 0xbe, 0x9a, 0xfe, 0xbb, 0x02, + 0x2e, 0xa6, 0x8e, 0xca, 0x2f, 0xf1, 0x76, 0x2d, 0x25, 0xcf, 0xcb, 0x27, 0x90, 0xe7, 0x6b, 0x60, + 0x46, 0x7c, 0xb0, 0x4d, 0xa8, 0xfb, 0xf0, 0xfd, 0x67, 0x5d, 0xee, 0x46, 0x49, 0x7c, 0xd6, 0xed, + 0x5e, 0xf5, 0x84, 0xb7, 0x7b, 0x71, 0x2f, 0xc4, 0x1f, 0x90, 0xfc, 0xd0, 0x4b, 0x7b, 0x21, 0xfe, + 0x87, 0x94, 0xc4, 0x33, 0x85, 0xe0, 0xb3, 0x86, 0x0c, 0xe3, 0xb2, 0x42, 0xd8, 0x97, 0x7a, 0x51, + 0x02, 0xfd, 0x85, 0x3e, 0x4a, 0xe2, 0x8c, 0x8f, 0x92, 0x2b, 0x45, 0xe2, 0xb9, 0xf8, 0xbb, 0xc9, + 0xdf, 0x14, 0xf0, 0x52, 0x6e, 0x22, 0xc0, 0x35, 0xa9, 0xec, 0xae, 0x24, 0xca, 0xee, 0xb7, 0x72, + 0x0d, 0x63, 0xb5, 0xd7, 0xc9, 0xbe, 0x9a, 0x7b, 0xa7, 0xd8, 0xd5, 0x5c, 0x86, 0x76, 0x1f, 0x7d, + 0x47, 0xd7, 0x5e, 0x79, 0xf2, 0xb4, 0x71, 0xee, 0xe3, 0xa7, 0x8d, 0x73, 0x9f, 0x3e, 0x6d, 0x9c, + 0xfb, 0xd9, 0xb0, 0xa1, 0x3c, 0x19, 0x36, 0x94, 0x8f, 0x87, 0x0d, 0xe5, 0xd3, 0x61, 0x43, 0xf9, + 0xfb, 0xb0, 0xa1, 0xfc, 0xfa, 0xb3, 0xc6, 0xb9, 0x0f, 0xc6, 0xc5, 0x88, 0xff, 0x0b, 0x00, 0x00, + 0xff, 0xff, 0xe4, 0x8f, 0x6a, 0x57, 0x17, 0x29, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/generated.proto index 69411bb9d..6e4d1d85e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/generated.proto @@ -84,6 +84,27 @@ message DaemonSet { optional DaemonSetStatus status = 3; } +// DaemonSetCondition describes the state of a DaemonSet at a certain point. +message DaemonSetCondition { + // Type of DaemonSet condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // Last time the condition transitioned from one status to another. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // The reason for the condition's last transition. + // +optional + optional string reason = 4; + + // A human readable message indicating details about the transition. + // +optional + optional string message = 5; +} + // DaemonSetList is a collection of daemon sets. message DaemonSetList { // Standard list metadata. @@ -175,6 +196,12 @@ message DaemonSetStatus { // create the name for the newest ControllerRevision. // +optional optional int32 collisionCount = 9; + + // Represents the latest available observations of a DaemonSet's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated DaemonSetCondition conditions = 10; } // DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet. @@ -569,6 +596,27 @@ message StatefulSet { optional StatefulSetStatus status = 3; } +// StatefulSetCondition describes the state of a statefulset at a certain point. +message StatefulSetCondition { + // Type of statefulset condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // Last time the condition transitioned from one status to another. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // The reason for the condition's last transition. + // +optional + optional string reason = 4; + + // A human readable message indicating details about the transition. + // +optional + optional string message = 5; +} + // StatefulSetList is a collection of StatefulSets. message StatefulSetList { // +optional @@ -673,6 +721,12 @@ message StatefulSetStatus { // newest ControllerRevision. // +optional optional int32 collisionCount = 9; + + // Represents the latest available observations of a statefulset's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated StatefulSetCondition conditions = 10; } // StatefulSetUpdateStrategy indicates the strategy that the StatefulSet diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/register.go index e207c7dc5..2784ee377 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Deployment{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/types.go index fa5676e1a..aaeed4e4d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/types.go @@ -254,6 +254,31 @@ type StatefulSetStatus struct { // newest ControllerRevision. // +optional CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` + + // Represents the latest available observations of a statefulset's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + Conditions []StatefulSetCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,10,rep,name=conditions"` +} + +type StatefulSetConditionType string + +// StatefulSetCondition describes the state of a statefulset at a certain point. +type StatefulSetCondition struct { + // Type of statefulset condition. + Type StatefulSetConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=StatefulSetConditionType"` + // Status of the condition, one of True, False, Unknown. + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + // Last time the condition transitioned from one status to another. + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // The reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // A human readable message indicating details about the transition. + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -601,6 +626,33 @@ type DaemonSetStatus struct { // create the name for the newest ControllerRevision. // +optional CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` + + // Represents the latest available observations of a DaemonSet's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + Conditions []DaemonSetCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,10,rep,name=conditions"` +} + +type DaemonSetConditionType string + +// TODO: Add valid condition types of a DaemonSet. + +// DaemonSetCondition describes the state of a DaemonSet at a certain point. +type DaemonSetCondition struct { + // Type of DaemonSet condition. + Type DaemonSetConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=DaemonSetConditionType"` + // Status of the condition, one of True, False, Unknown. + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + // Last time the condition transitioned from one status to another. + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // The reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // A human readable message indicating details about the transition. + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` } // +genclient diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go index 35ae28ca2..ae4942268 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go @@ -59,6 +59,19 @@ func (DaemonSet) SwaggerDoc() map[string]string { return map_DaemonSet } +var map_DaemonSetCondition = map[string]string{ + "": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "type": "Type of DaemonSet condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "Last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (DaemonSetCondition) SwaggerDoc() map[string]string { + return map_DaemonSetCondition +} + var map_DaemonSetList = map[string]string{ "": "DaemonSetList is a collection of daemon sets.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -93,6 +106,7 @@ var map_DaemonSetStatus = map[string]string{ "numberAvailable": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", "numberUnavailable": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", "collisionCount": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "conditions": "Represents the latest available observations of a DaemonSet's current state.", } func (DaemonSetStatus) SwaggerDoc() map[string]string { @@ -315,6 +329,19 @@ func (StatefulSet) SwaggerDoc() map[string]string { return map_StatefulSet } +var map_StatefulSetCondition = map[string]string{ + "": "StatefulSetCondition describes the state of a statefulset at a certain point.", + "type": "Type of statefulset condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "Last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (StatefulSetCondition) SwaggerDoc() map[string]string { + return map_StatefulSetCondition +} + var map_StatefulSetList = map[string]string{ "": "StatefulSetList is a collection of StatefulSets.", } @@ -349,6 +376,7 @@ var map_StatefulSetStatus = map[string]string{ "currentRevision": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", "updateRevision": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", "collisionCount": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "conditions": "Represents the latest available observations of a statefulset's current state.", } func (StatefulSetStatus) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go index 124f84a9d..d25c869bb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go @@ -23,141 +23,10 @@ package v1beta2 import ( core_v1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ControllerRevision).DeepCopyInto(out.(*ControllerRevision)) - return nil - }, InType: reflect.TypeOf(&ControllerRevision{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ControllerRevisionList).DeepCopyInto(out.(*ControllerRevisionList)) - return nil - }, InType: reflect.TypeOf(&ControllerRevisionList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSet).DeepCopyInto(out.(*DaemonSet)) - return nil - }, InType: reflect.TypeOf(&DaemonSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetList).DeepCopyInto(out.(*DaemonSetList)) - return nil - }, InType: reflect.TypeOf(&DaemonSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetSpec).DeepCopyInto(out.(*DaemonSetSpec)) - return nil - }, InType: reflect.TypeOf(&DaemonSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetStatus).DeepCopyInto(out.(*DaemonSetStatus)) - return nil - }, InType: reflect.TypeOf(&DaemonSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetUpdateStrategy).DeepCopyInto(out.(*DaemonSetUpdateStrategy)) - return nil - }, InType: reflect.TypeOf(&DaemonSetUpdateStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Deployment).DeepCopyInto(out.(*Deployment)) - return nil - }, InType: reflect.TypeOf(&Deployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentCondition).DeepCopyInto(out.(*DeploymentCondition)) - return nil - }, InType: reflect.TypeOf(&DeploymentCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentList).DeepCopyInto(out.(*DeploymentList)) - return nil - }, InType: reflect.TypeOf(&DeploymentList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentSpec).DeepCopyInto(out.(*DeploymentSpec)) - return nil - }, InType: reflect.TypeOf(&DeploymentSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStatus).DeepCopyInto(out.(*DeploymentStatus)) - return nil - }, InType: reflect.TypeOf(&DeploymentStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStrategy).DeepCopyInto(out.(*DeploymentStrategy)) - return nil - }, InType: reflect.TypeOf(&DeploymentStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSet).DeepCopyInto(out.(*ReplicaSet)) - return nil - }, InType: reflect.TypeOf(&ReplicaSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetCondition).DeepCopyInto(out.(*ReplicaSetCondition)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetList).DeepCopyInto(out.(*ReplicaSetList)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetSpec).DeepCopyInto(out.(*ReplicaSetSpec)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetStatus).DeepCopyInto(out.(*ReplicaSetStatus)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDaemonSet).DeepCopyInto(out.(*RollingUpdateDaemonSet)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDaemonSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDeployment).DeepCopyInto(out.(*RollingUpdateDeployment)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDeployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateStatefulSetStrategy).DeepCopyInto(out.(*RollingUpdateStatefulSetStrategy)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateStatefulSetStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Scale).DeepCopyInto(out.(*Scale)) - return nil - }, InType: reflect.TypeOf(&Scale{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleSpec).DeepCopyInto(out.(*ScaleSpec)) - return nil - }, InType: reflect.TypeOf(&ScaleSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleStatus).DeepCopyInto(out.(*ScaleStatus)) - return nil - }, InType: reflect.TypeOf(&ScaleStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSet).DeepCopyInto(out.(*StatefulSet)) - return nil - }, InType: reflect.TypeOf(&StatefulSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetList).DeepCopyInto(out.(*StatefulSetList)) - return nil - }, InType: reflect.TypeOf(&StatefulSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetSpec).DeepCopyInto(out.(*StatefulSetSpec)) - return nil - }, InType: reflect.TypeOf(&StatefulSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetStatus).DeepCopyInto(out.(*StatefulSetStatus)) - return nil - }, InType: reflect.TypeOf(&StatefulSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetUpdateStrategy).DeepCopyInto(out.(*StatefulSetUpdateStrategy)) - return nil - }, InType: reflect.TypeOf(&StatefulSetUpdateStrategy{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) { *out = *in @@ -249,6 +118,23 @@ func (in *DaemonSet) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition. +func (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition { + if in == nil { + return nil + } + out := new(DaemonSetCondition) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) { *out = *in @@ -331,6 +217,13 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { **out = **in } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DaemonSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } @@ -880,6 +773,23 @@ func (in *StatefulSet) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition. +func (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition { + if in == nil { + return nil + } + out := new(StatefulSetCondition) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) { *out = *in @@ -978,6 +888,13 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { **out = **in } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]StatefulSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/BUILD index 3a378d34e..f2e2b1a98 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/BUILD @@ -20,7 +20,6 @@ go_library( "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/doc.go index 15b117a4c..2d2ed2ee8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=authentication.k8s.io // +k8s:openapi-gen=true package v1 // import "k8s.io/api/authentication/v1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/register.go index 936237c2b..2ca79a620 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &TokenReview{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/zz_generated.deepcopy.go index c1717c1cd..243de7590 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1/zz_generated.deepcopy.go @@ -21,40 +21,9 @@ limitations under the License. package v1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenReview).DeepCopyInto(out.(*TokenReview)) - return nil - }, InType: reflect.TypeOf(&TokenReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenReviewSpec).DeepCopyInto(out.(*TokenReviewSpec)) - return nil - }, InType: reflect.TypeOf(&TokenReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenReviewStatus).DeepCopyInto(out.(*TokenReviewStatus)) - return nil - }, InType: reflect.TypeOf(&TokenReviewStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*UserInfo).DeepCopyInto(out.(*UserInfo)) - return nil - }, InType: reflect.TypeOf(&UserInfo{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenReview) DeepCopyInto(out *TokenReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/BUILD index b02c3602a..998d793fe 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/BUILD @@ -20,7 +20,6 @@ go_library( "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/doc.go index 065cfbd99..e0de315d4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=authentication.k8s.io // +k8s:openapi-gen=true package v1beta1 // import "k8s.io/api/authentication/v1beta1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/register.go index 7d89e5ef7..ed23e50f7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &TokenReview{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go index 1b94ececa..aa8d2ef3a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go @@ -21,40 +21,9 @@ limitations under the License. package v1beta1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenReview).DeepCopyInto(out.(*TokenReview)) - return nil - }, InType: reflect.TypeOf(&TokenReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenReviewSpec).DeepCopyInto(out.(*TokenReviewSpec)) - return nil - }, InType: reflect.TypeOf(&TokenReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TokenReviewStatus).DeepCopyInto(out.(*TokenReviewStatus)) - return nil - }, InType: reflect.TypeOf(&TokenReviewStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*UserInfo).DeepCopyInto(out.(*UserInfo)) - return nil - }, InType: reflect.TypeOf(&UserInfo{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenReview) DeepCopyInto(out *TokenReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/BUILD index 6bb16adcb..af9e74a63 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/BUILD @@ -20,7 +20,6 @@ go_library( "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/doc.go index b02e09cae..c06b798df 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=authorization.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/generated.pb.go index 0795a6454..d34d105f4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/generated.pb.go @@ -730,6 +730,14 @@ func (m *SubjectAccessReviewStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError))) i += copy(dAtA[i:], m.EvaluationError) + dAtA[i] = 0x20 + i++ + if m.Denied { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ return i, nil } @@ -1015,6 +1023,7 @@ func (m *SubjectAccessReviewStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.EvaluationError) n += 1 + l + sovGenerated(uint64(l)) + n += 2 return n } @@ -1205,6 +1214,7 @@ func (this *SubjectAccessReviewStatus) String() string { `Allowed:` + fmt.Sprintf("%v", this.Allowed) + `,`, `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, `EvaluationError:` + fmt.Sprintf("%v", this.EvaluationError) + `,`, + `Denied:` + fmt.Sprintf("%v", this.Denied) + `,`, `}`, }, "") return s @@ -3130,6 +3140,26 @@ func (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error { } m.EvaluationError = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Denied", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Denied = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3422,77 +3452,77 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1137 bytes of a gzipped FileDescriptorProto + // 1152 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xf7, 0xae, 0xed, 0xc4, 0x1e, 0x37, 0x24, 0x9d, 0x28, 0xcd, 0x36, 0x15, 0x76, 0xb4, 0x48, - 0x90, 0x8a, 0xb2, 0x4b, 0x4c, 0xdb, 0x44, 0x95, 0x2a, 0x14, 0xab, 0x11, 0x8a, 0xd4, 0x96, 0x6a, + 0x14, 0xf7, 0xae, 0xed, 0xd4, 0x1e, 0x37, 0x24, 0x9d, 0x28, 0xcd, 0x36, 0x15, 0x76, 0xb4, 0x48, + 0x90, 0x8a, 0xb2, 0x4b, 0x4c, 0xdb, 0x44, 0x95, 0x2a, 0x14, 0x2b, 0x11, 0x8a, 0xd4, 0x96, 0x6a, 0xa2, 0x44, 0xa2, 0x08, 0xc4, 0x78, 0x3d, 0xb1, 0x97, 0xd8, 0xbb, 0xcb, 0xcc, 0xac, 0x43, 0x38, - 0x55, 0xe2, 0x0b, 0x70, 0xe4, 0xc0, 0x81, 0x6f, 0x80, 0x90, 0x90, 0xb8, 0x71, 0xe0, 0x80, 0x72, - 0xec, 0xb1, 0x07, 0x64, 0x91, 0xe5, 0xcc, 0x77, 0x40, 0x33, 0x3b, 0xf6, 0xae, 0x93, 0xb5, 0x9b, - 0x70, 0xa0, 0x97, 0xde, 0x76, 0xdf, 0xef, 0xf7, 0xfe, 0xcc, 0x7b, 0x6f, 0xde, 0x3c, 0xf0, 0xe0, - 0x70, 0x93, 0x59, 0xae, 0x6f, 0x1f, 0x86, 0x4d, 0x42, 0x3d, 0xc2, 0x09, 0xb3, 0xfb, 0xc4, 0x6b, - 0xf9, 0xd4, 0x56, 0x00, 0x0e, 0x5c, 0x1b, 0x87, 0xbc, 0xe3, 0x53, 0xf7, 0x1b, 0xcc, 0x5d, 0xdf, - 0xb3, 0xfb, 0xeb, 0x76, 0x9b, 0x78, 0x84, 0x62, 0x4e, 0x5a, 0x56, 0x40, 0x7d, 0xee, 0xc3, 0x1b, - 0x31, 0xd9, 0xc2, 0x81, 0x6b, 0x8d, 0x91, 0xad, 0xfe, 0xfa, 0xca, 0x7b, 0x6d, 0x97, 0x77, 0xc2, - 0xa6, 0xe5, 0xf8, 0x3d, 0xbb, 0xed, 0xb7, 0x7d, 0x5b, 0xea, 0x34, 0xc3, 0x03, 0xf9, 0x27, 0x7f, - 0xe4, 0x57, 0x6c, 0x6b, 0xe5, 0x76, 0xe2, 0xb8, 0x87, 0x9d, 0x8e, 0xeb, 0x11, 0x7a, 0x6c, 0x07, - 0x87, 0x6d, 0x21, 0x60, 0x76, 0x8f, 0x70, 0x9c, 0x11, 0xc1, 0x8a, 0x3d, 0x49, 0x8b, 0x86, 0x1e, - 0x77, 0x7b, 0xe4, 0x9c, 0xc2, 0xdd, 0x97, 0x29, 0x30, 0xa7, 0x43, 0x7a, 0xf8, 0x9c, 0xde, 0x07, - 0x93, 0xf4, 0x42, 0xee, 0x76, 0x6d, 0xd7, 0xe3, 0x8c, 0xd3, 0xb3, 0x4a, 0xe6, 0x06, 0x00, 0xdb, - 0x5f, 0x73, 0x8a, 0xf7, 0x71, 0x37, 0x24, 0xb0, 0x06, 0x8a, 0x2e, 0x27, 0x3d, 0x66, 0x68, 0xab, - 0xf9, 0xb5, 0x72, 0xa3, 0x1c, 0x0d, 0x6a, 0xc5, 0x1d, 0x21, 0x40, 0xb1, 0xfc, 0x5e, 0xe9, 0xfb, - 0x1f, 0x6b, 0xb9, 0x67, 0x7f, 0xae, 0xe6, 0xcc, 0x5f, 0x74, 0x60, 0x3c, 0xf4, 0x1d, 0xdc, 0xdd, - 0x0d, 0x9b, 0x5f, 0x12, 0x87, 0x6f, 0x39, 0x0e, 0x61, 0x0c, 0x91, 0xbe, 0x4b, 0x8e, 0xe0, 0x17, - 0xa0, 0x24, 0xd2, 0xd1, 0xc2, 0x1c, 0x1b, 0xda, 0xaa, 0xb6, 0x56, 0xa9, 0xbf, 0x6f, 0x25, 0x85, - 0x18, 0x45, 0x67, 0x05, 0x87, 0x6d, 0x21, 0x60, 0x96, 0x60, 0x5b, 0xfd, 0x75, 0xeb, 0x63, 0x69, - 0xeb, 0x11, 0xe1, 0xb8, 0x01, 0x4f, 0x06, 0xb5, 0x5c, 0x34, 0xa8, 0x81, 0x44, 0x86, 0x46, 0x56, - 0xe1, 0x3e, 0x28, 0xb0, 0x80, 0x38, 0x86, 0x2e, 0xad, 0xdf, 0xb6, 0xa6, 0x94, 0xd9, 0xca, 0x88, - 0x70, 0x37, 0x20, 0x4e, 0xe3, 0x8a, 0xf2, 0x50, 0x10, 0x7f, 0x48, 0xda, 0x83, 0x9f, 0x83, 0x19, - 0xc6, 0x31, 0x0f, 0x99, 0x91, 0x97, 0x96, 0xef, 0x5e, 0xda, 0xb2, 0xd4, 0x6e, 0xbc, 0xa1, 0x6c, - 0xcf, 0xc4, 0xff, 0x48, 0x59, 0x35, 0x3f, 0x05, 0x4b, 0x8f, 0x7d, 0x0f, 0x11, 0xe6, 0x87, 0xd4, - 0x21, 0x5b, 0x9c, 0x53, 0xb7, 0x19, 0x72, 0xc2, 0xe0, 0x2a, 0x28, 0x04, 0x98, 0x77, 0x64, 0xba, - 0xca, 0x49, 0x68, 0x4f, 0x30, 0xef, 0x20, 0x89, 0x08, 0x46, 0x9f, 0xd0, 0xa6, 0x3c, 0x72, 0x8a, - 0xb1, 0x4f, 0x68, 0x13, 0x49, 0xc4, 0xfc, 0x0a, 0xcc, 0xa7, 0x8c, 0xa3, 0xb0, 0x2b, 0x2b, 0x2a, - 0xa0, 0xb1, 0x8a, 0x0a, 0x0d, 0x86, 0x62, 0x39, 0xbc, 0x0f, 0xe6, 0xbd, 0x44, 0x67, 0x0f, 0x3d, - 0x64, 0x86, 0x2e, 0xa9, 0x8b, 0xd1, 0xa0, 0x96, 0x36, 0x27, 0x20, 0x74, 0x96, 0x6b, 0xfe, 0xa6, - 0x03, 0x98, 0x71, 0x1a, 0x1b, 0x94, 0x3d, 0xdc, 0x23, 0x2c, 0xc0, 0x0e, 0x51, 0x47, 0xba, 0xaa, - 0x02, 0x2e, 0x3f, 0x1e, 0x02, 0x28, 0xe1, 0xbc, 0xfc, 0x70, 0xf0, 0x2d, 0x50, 0x6c, 0x53, 0x3f, - 0x0c, 0x64, 0x61, 0xca, 0x8d, 0x39, 0x45, 0x29, 0x7e, 0x24, 0x84, 0x28, 0xc6, 0xe0, 0x4d, 0x30, - 0xdb, 0x27, 0x94, 0xb9, 0xbe, 0x67, 0x14, 0x24, 0x6d, 0x5e, 0xd1, 0x66, 0xf7, 0x63, 0x31, 0x1a, - 0xe2, 0xf0, 0x16, 0x28, 0x51, 0x15, 0xb8, 0x51, 0x94, 0xdc, 0x05, 0xc5, 0x2d, 0x8d, 0x32, 0x38, - 0x62, 0xc0, 0x3b, 0xa0, 0xc2, 0xc2, 0xe6, 0x48, 0x61, 0x46, 0x2a, 0x2c, 0x2a, 0x85, 0xca, 0x6e, - 0x02, 0xa1, 0x34, 0x4f, 0x1c, 0x4b, 0x9c, 0xd1, 0x98, 0x1d, 0x3f, 0x96, 0x48, 0x01, 0x92, 0x88, - 0xf9, 0xbb, 0x06, 0xae, 0x5c, 0xae, 0x62, 0xef, 0x82, 0x32, 0x0e, 0x5c, 0x79, 0xec, 0x61, 0xad, - 0xe6, 0x44, 0x5e, 0xb7, 0x9e, 0xec, 0xc4, 0x42, 0x94, 0xe0, 0x82, 0x3c, 0x0c, 0x46, 0xb4, 0xf4, - 0x88, 0x3c, 0x74, 0xc9, 0x50, 0x82, 0xc3, 0x0d, 0x30, 0x37, 0xfc, 0x91, 0x45, 0x32, 0x0a, 0x52, - 0xe1, 0x6a, 0x34, 0xa8, 0xcd, 0xa1, 0x34, 0x80, 0xc6, 0x79, 0xe6, 0xaf, 0x3a, 0x58, 0xde, 0x25, - 0xdd, 0x83, 0x57, 0x33, 0x0b, 0x9e, 0x8e, 0xcd, 0x82, 0xcd, 0xe9, 0x37, 0x36, 0x3b, 0xca, 0x57, - 0x36, 0x0f, 0x7e, 0xd0, 0xc1, 0x8d, 0x29, 0x31, 0xc1, 0x23, 0x00, 0xe9, 0xb9, 0xeb, 0xa5, 0xf2, - 0x68, 0x4f, 0x8d, 0xe5, 0xfc, 0xad, 0x6c, 0x5c, 0x8b, 0x06, 0xb5, 0x8c, 0xdb, 0x8a, 0x32, 0x5c, - 0xc0, 0x6f, 0x35, 0xb0, 0xe4, 0x65, 0x4d, 0x2a, 0x95, 0xe6, 0xfa, 0x54, 0xe7, 0x99, 0x33, 0xae, - 0x71, 0x3d, 0x1a, 0xd4, 0xb2, 0xc7, 0x1f, 0xca, 0xf6, 0x25, 0x5e, 0x99, 0x6b, 0xa9, 0xf4, 0x88, - 0x0b, 0xf2, 0xff, 0xf5, 0xd5, 0x27, 0x63, 0x7d, 0xb5, 0x71, 0xd1, 0xbe, 0x4a, 0x05, 0x39, 0xb1, - 0xad, 0x3e, 0x3b, 0xd3, 0x56, 0x77, 0x2e, 0xd2, 0x56, 0x69, 0xc3, 0xd3, 0xbb, 0xea, 0x11, 0x58, - 0x99, 0x1c, 0xd0, 0xa5, 0x87, 0xb3, 0xf9, 0x93, 0x0e, 0x16, 0x5f, 0x3f, 0xf3, 0x97, 0xb9, 0xd6, - 0x7f, 0x14, 0xc0, 0xf2, 0xeb, 0x2b, 0x3d, 0x69, 0xd1, 0x09, 0x19, 0xa1, 0xea, 0x19, 0x1f, 0x15, - 0x67, 0x8f, 0x11, 0x8a, 0x24, 0x02, 0x4d, 0x30, 0xd3, 0x8e, 0x5f, 0xb7, 0xf8, 0xfd, 0x01, 0x22, - 0xc1, 0xea, 0x69, 0x53, 0x08, 0x6c, 0x81, 0x22, 0x11, 0x7b, 0xab, 0x51, 0x5c, 0xcd, 0xaf, 0x55, - 0xea, 0x1f, 0xfe, 0x97, 0xce, 0xb0, 0xe4, 0xe6, 0xbb, 0xed, 0x71, 0x7a, 0x9c, 0xac, 0x13, 0x52, - 0x86, 0x62, 0xe3, 0xf0, 0x4d, 0x90, 0x0f, 0xdd, 0x96, 0x7a, 0xed, 0x2b, 0x8a, 0x92, 0xdf, 0xdb, - 0x79, 0x80, 0x84, 0x7c, 0x05, 0xab, 0xe5, 0x59, 0x9a, 0x80, 0x0b, 0x20, 0x7f, 0x48, 0x8e, 0xe3, - 0x0b, 0x85, 0xc4, 0x27, 0xbc, 0x0f, 0x8a, 0x7d, 0xb1, 0x57, 0xab, 0xfc, 0xbe, 0x33, 0x35, 0xc8, - 0x64, 0x0d, 0x47, 0xb1, 0xd6, 0x3d, 0x7d, 0x53, 0x33, 0x7f, 0xd6, 0xc0, 0xf5, 0x89, 0xed, 0x27, - 0xd6, 0x1d, 0xdc, 0xed, 0xfa, 0x47, 0xa4, 0x25, 0xdd, 0x96, 0x92, 0x75, 0x67, 0x2b, 0x16, 0xa3, - 0x21, 0x0e, 0xdf, 0x06, 0x33, 0x94, 0x60, 0xe6, 0x7b, 0x6a, 0xc5, 0x1a, 0x75, 0x2e, 0x92, 0x52, - 0xa4, 0x50, 0xb8, 0x05, 0xe6, 0x89, 0x70, 0x2f, 0xe3, 0xda, 0xa6, 0xd4, 0x1f, 0x56, 0x6a, 0x59, - 0x29, 0xcc, 0x6f, 0x8f, 0xc3, 0xe8, 0x2c, 0xdf, 0xfc, 0x47, 0x07, 0xc6, 0xa4, 0x91, 0x05, 0x0f, - 0x92, 0x1d, 0x43, 0x82, 0x72, 0xcd, 0xa9, 0xd4, 0x6f, 0x5e, 0xa8, 0xf1, 0x85, 0x46, 0x63, 0x49, - 0x05, 0x32, 0x97, 0x96, 0xa6, 0x56, 0x12, 0xf9, 0x0b, 0x29, 0x58, 0xf0, 0xc6, 0x77, 0xe1, 0x78, - 0x59, 0xaa, 0xd4, 0x6f, 0x5d, 0xb4, 0xcd, 0xa5, 0x37, 0x43, 0x79, 0x5b, 0x38, 0x03, 0x30, 0x74, - 0xce, 0x3e, 0xac, 0x03, 0xe0, 0x7a, 0x8e, 0xdf, 0x0b, 0xba, 0x84, 0x13, 0x99, 0xb6, 0x52, 0x32, - 0xdf, 0x76, 0x46, 0x08, 0x4a, 0xb1, 0xb2, 0xf2, 0x5d, 0xb8, 0x5c, 0xbe, 0x1b, 0x6b, 0x27, 0xa7, - 0xd5, 0xdc, 0xf3, 0xd3, 0x6a, 0xee, 0xc5, 0x69, 0x35, 0xf7, 0x2c, 0xaa, 0x6a, 0x27, 0x51, 0x55, - 0x7b, 0x1e, 0x55, 0xb5, 0x17, 0x51, 0x55, 0xfb, 0x2b, 0xaa, 0x6a, 0xdf, 0xfd, 0x5d, 0xcd, 0x3d, - 0xd5, 0xfb, 0xeb, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xd9, 0x3f, 0xd9, 0x21, 0x54, 0x0f, 0x00, - 0x00, + 0x55, 0xe2, 0x0b, 0x70, 0xe4, 0xc0, 0x81, 0x6f, 0xc0, 0x05, 0x89, 0x1b, 0x07, 0x0e, 0x28, 0xc7, + 0x1e, 0x8b, 0x84, 0x2c, 0xb2, 0x9c, 0xf9, 0x0e, 0x68, 0x66, 0xc7, 0xde, 0x75, 0xb2, 0x76, 0x13, + 0x0e, 0xf4, 0xd2, 0xdb, 0xee, 0xfb, 0xfd, 0xde, 0x9f, 0x79, 0x7f, 0x66, 0x1e, 0xd8, 0x3a, 0xdc, + 0x60, 0x96, 0xeb, 0xdb, 0x87, 0x61, 0x93, 0x50, 0x8f, 0x70, 0xc2, 0xec, 0x3e, 0xf1, 0x5a, 0x3e, + 0xb5, 0x15, 0x80, 0x03, 0xd7, 0xc6, 0x21, 0xef, 0xf8, 0xd4, 0xfd, 0x06, 0x73, 0xd7, 0xf7, 0xec, + 0xfe, 0x9a, 0xdd, 0x26, 0x1e, 0xa1, 0x98, 0x93, 0x96, 0x15, 0x50, 0x9f, 0xfb, 0xf0, 0x66, 0x4c, + 0xb6, 0x70, 0xe0, 0x5a, 0x63, 0x64, 0xab, 0xbf, 0xb6, 0xfc, 0x5e, 0xdb, 0xe5, 0x9d, 0xb0, 0x69, + 0x39, 0x7e, 0xcf, 0x6e, 0xfb, 0x6d, 0xdf, 0x96, 0x3a, 0xcd, 0xf0, 0x40, 0xfe, 0xc9, 0x1f, 0xf9, + 0x15, 0xdb, 0x5a, 0xbe, 0x93, 0x38, 0xee, 0x61, 0xa7, 0xe3, 0x7a, 0x84, 0x1e, 0xdb, 0xc1, 0x61, + 0x5b, 0x08, 0x98, 0xdd, 0x23, 0x1c, 0x67, 0x44, 0xb0, 0x6c, 0x4f, 0xd2, 0xa2, 0xa1, 0xc7, 0xdd, + 0x1e, 0x39, 0xa7, 0x70, 0xef, 0x65, 0x0a, 0xcc, 0xe9, 0x90, 0x1e, 0x3e, 0xa7, 0xf7, 0xc1, 0x24, + 0xbd, 0x90, 0xbb, 0x5d, 0xdb, 0xf5, 0x38, 0xe3, 0xf4, 0xac, 0x92, 0xb9, 0x0e, 0xc0, 0xf6, 0xd7, + 0x9c, 0xe2, 0x7d, 0xdc, 0x0d, 0x09, 0xac, 0x81, 0xa2, 0xcb, 0x49, 0x8f, 0x19, 0xda, 0x4a, 0x7e, + 0xb5, 0xdc, 0x28, 0x47, 0x83, 0x5a, 0x71, 0x47, 0x08, 0x50, 0x2c, 0xbf, 0x5f, 0xfa, 0xfe, 0xc7, + 0x5a, 0xee, 0xd9, 0x9f, 0x2b, 0x39, 0xf3, 0x67, 0x1d, 0x18, 0x0f, 0x7d, 0x07, 0x77, 0x77, 0xc3, + 0xe6, 0x97, 0xc4, 0xe1, 0x9b, 0x8e, 0x43, 0x18, 0x43, 0xa4, 0xef, 0x92, 0x23, 0xf8, 0x05, 0x28, + 0x89, 0x74, 0xb4, 0x30, 0xc7, 0x86, 0xb6, 0xa2, 0xad, 0x56, 0xea, 0xef, 0x5b, 0x49, 0x21, 0x46, + 0xd1, 0x59, 0xc1, 0x61, 0x5b, 0x08, 0x98, 0x25, 0xd8, 0x56, 0x7f, 0xcd, 0xfa, 0x58, 0xda, 0x7a, + 0x44, 0x38, 0x6e, 0xc0, 0x93, 0x41, 0x2d, 0x17, 0x0d, 0x6a, 0x20, 0x91, 0xa1, 0x91, 0x55, 0xb8, + 0x0f, 0x0a, 0x2c, 0x20, 0x8e, 0xa1, 0x4b, 0xeb, 0x77, 0xac, 0x29, 0x65, 0xb6, 0x32, 0x22, 0xdc, + 0x0d, 0x88, 0xd3, 0xb8, 0xaa, 0x3c, 0x14, 0xc4, 0x1f, 0x92, 0xf6, 0xe0, 0xe7, 0x60, 0x86, 0x71, + 0xcc, 0x43, 0x66, 0xe4, 0xa5, 0xe5, 0x7b, 0x97, 0xb6, 0x2c, 0xb5, 0x1b, 0x6f, 0x28, 0xdb, 0x33, + 0xf1, 0x3f, 0x52, 0x56, 0xcd, 0x4f, 0xc1, 0xe2, 0x63, 0xdf, 0x43, 0x84, 0xf9, 0x21, 0x75, 0xc8, + 0x26, 0xe7, 0xd4, 0x6d, 0x86, 0x9c, 0x30, 0xb8, 0x02, 0x0a, 0x01, 0xe6, 0x1d, 0x99, 0xae, 0x72, + 0x12, 0xda, 0x13, 0xcc, 0x3b, 0x48, 0x22, 0x82, 0xd1, 0x27, 0xb4, 0x29, 0x8f, 0x9c, 0x62, 0xec, + 0x13, 0xda, 0x44, 0x12, 0x31, 0xbf, 0x02, 0x73, 0x29, 0xe3, 0x28, 0xec, 0xca, 0x8a, 0x0a, 0x68, + 0xac, 0xa2, 0x42, 0x83, 0xa1, 0x58, 0x0e, 0x1f, 0x80, 0x39, 0x2f, 0xd1, 0xd9, 0x43, 0x0f, 0x99, + 0xa1, 0x4b, 0xea, 0x42, 0x34, 0xa8, 0xa5, 0xcd, 0x09, 0x08, 0x9d, 0xe5, 0x9a, 0xbf, 0xea, 0x00, + 0x66, 0x9c, 0xc6, 0x06, 0x65, 0x0f, 0xf7, 0x08, 0x0b, 0xb0, 0x43, 0xd4, 0x91, 0xae, 0xa9, 0x80, + 0xcb, 0x8f, 0x87, 0x00, 0x4a, 0x38, 0x2f, 0x3f, 0x1c, 0x7c, 0x0b, 0x14, 0xdb, 0xd4, 0x0f, 0x03, + 0x59, 0x98, 0x72, 0x63, 0x56, 0x51, 0x8a, 0x1f, 0x09, 0x21, 0x8a, 0x31, 0x78, 0x0b, 0x5c, 0xe9, + 0x13, 0xca, 0x5c, 0xdf, 0x33, 0x0a, 0x92, 0x36, 0xa7, 0x68, 0x57, 0xf6, 0x63, 0x31, 0x1a, 0xe2, + 0xf0, 0x36, 0x28, 0x51, 0x15, 0xb8, 0x51, 0x94, 0xdc, 0x79, 0xc5, 0x2d, 0x8d, 0x32, 0x38, 0x62, + 0xc0, 0xbb, 0xa0, 0xc2, 0xc2, 0xe6, 0x48, 0x61, 0x46, 0x2a, 0x2c, 0x28, 0x85, 0xca, 0x6e, 0x02, + 0xa1, 0x34, 0x4f, 0x1c, 0x4b, 0x9c, 0xd1, 0xb8, 0x32, 0x7e, 0x2c, 0x91, 0x02, 0x24, 0x11, 0xf3, + 0x37, 0x0d, 0x5c, 0xbd, 0x5c, 0xc5, 0xde, 0x05, 0x65, 0x1c, 0xb8, 0xf2, 0xd8, 0xc3, 0x5a, 0xcd, + 0x8a, 0xbc, 0x6e, 0x3e, 0xd9, 0x89, 0x85, 0x28, 0xc1, 0x05, 0x79, 0x18, 0x8c, 0x68, 0xe9, 0x11, + 0x79, 0xe8, 0x92, 0xa1, 0x04, 0x87, 0xeb, 0x60, 0x76, 0xf8, 0x23, 0x8b, 0x64, 0x14, 0xa4, 0xc2, + 0xb5, 0x68, 0x50, 0x9b, 0x45, 0x69, 0x00, 0x8d, 0xf3, 0xcc, 0x5f, 0x74, 0xb0, 0xb4, 0x4b, 0xba, + 0x07, 0xaf, 0xe6, 0x2e, 0x78, 0x3a, 0x76, 0x17, 0x6c, 0x4c, 0x9f, 0xd8, 0xec, 0x28, 0x5f, 0xd9, + 0x7d, 0xf0, 0x83, 0x0e, 0x6e, 0x4e, 0x89, 0x09, 0x1e, 0x01, 0x48, 0xcf, 0x8d, 0x97, 0xca, 0xa3, + 0x3d, 0x35, 0x96, 0xf3, 0x53, 0xd9, 0xb8, 0x1e, 0x0d, 0x6a, 0x19, 0xd3, 0x8a, 0x32, 0x5c, 0xc0, + 0x6f, 0x35, 0xb0, 0xe8, 0x65, 0xdd, 0x54, 0x2a, 0xcd, 0xf5, 0xa9, 0xce, 0x33, 0xef, 0xb8, 0xc6, + 0x8d, 0x68, 0x50, 0xcb, 0xbe, 0xfe, 0x50, 0xb6, 0x2f, 0xf1, 0xca, 0x5c, 0x4f, 0xa5, 0x47, 0x0c, + 0xc8, 0xff, 0xd7, 0x57, 0x9f, 0x8c, 0xf5, 0xd5, 0xfa, 0x45, 0xfb, 0x2a, 0x15, 0xe4, 0xc4, 0xb6, + 0xfa, 0xec, 0x4c, 0x5b, 0xdd, 0xbd, 0x48, 0x5b, 0xa5, 0x0d, 0x4f, 0xef, 0xaa, 0x47, 0x60, 0x79, + 0x72, 0x40, 0x97, 0xbe, 0x9c, 0xcd, 0x9f, 0x74, 0xb0, 0xf0, 0xfa, 0x99, 0xbf, 0xcc, 0x58, 0xff, + 0x5e, 0x00, 0x4b, 0xaf, 0x47, 0x7a, 0xd2, 0xa2, 0x13, 0x32, 0x42, 0xd5, 0x33, 0x3e, 0x2a, 0xce, + 0x1e, 0x23, 0x14, 0x49, 0x04, 0x9a, 0x60, 0xa6, 0x1d, 0xbf, 0x6e, 0xf1, 0xfb, 0x03, 0x44, 0x82, + 0xd5, 0xd3, 0xa6, 0x10, 0xd8, 0x02, 0x45, 0x22, 0xf6, 0x56, 0xa3, 0xb8, 0x92, 0x5f, 0xad, 0xd4, + 0x3f, 0xfc, 0x2f, 0x9d, 0x61, 0xc9, 0xcd, 0x77, 0xdb, 0xe3, 0xf4, 0x38, 0x59, 0x27, 0xa4, 0x0c, + 0xc5, 0xc6, 0xe1, 0x9b, 0x20, 0x1f, 0xba, 0x2d, 0xf5, 0xda, 0x57, 0x14, 0x25, 0xbf, 0xb7, 0xb3, + 0x85, 0x84, 0x7c, 0x19, 0xab, 0xe5, 0x59, 0x9a, 0x80, 0xf3, 0x20, 0x7f, 0x48, 0x8e, 0xe3, 0x81, + 0x42, 0xe2, 0x13, 0x3e, 0x00, 0xc5, 0xbe, 0xd8, 0xab, 0x55, 0x7e, 0xdf, 0x99, 0x1a, 0x64, 0xb2, + 0x86, 0xa3, 0x58, 0xeb, 0xbe, 0xbe, 0xa1, 0x99, 0x7f, 0x68, 0xe0, 0xc6, 0xc4, 0xf6, 0x13, 0xeb, + 0x0e, 0xee, 0x76, 0xfd, 0x23, 0xd2, 0x92, 0x6e, 0x4b, 0xc9, 0xba, 0xb3, 0x19, 0x8b, 0xd1, 0x10, + 0x87, 0x6f, 0x83, 0x19, 0x4a, 0x30, 0xf3, 0x3d, 0xb5, 0x62, 0x8d, 0x3a, 0x17, 0x49, 0x29, 0x52, + 0x28, 0xdc, 0x04, 0x73, 0x44, 0xb8, 0x97, 0x71, 0x6d, 0x53, 0xea, 0x0f, 0x2b, 0xb5, 0xa4, 0x14, + 0xe6, 0xb6, 0xc7, 0x61, 0x74, 0x96, 0x2f, 0x5c, 0xb5, 0x88, 0xe7, 0x92, 0x96, 0xdc, 0xc1, 0x4a, + 0x89, 0xab, 0x2d, 0x29, 0x45, 0x0a, 0x35, 0xff, 0xd1, 0x81, 0x31, 0xe9, 0x6a, 0x83, 0x07, 0xc9, + 0x2e, 0x22, 0x41, 0xb9, 0x0e, 0x55, 0xea, 0xb7, 0x2e, 0x34, 0x20, 0x42, 0xa3, 0xb1, 0xa8, 0xdc, + 0xce, 0xa6, 0xa5, 0xa9, 0xd5, 0x45, 0xfe, 0x42, 0x0a, 0xe6, 0xbd, 0xf1, 0x9d, 0x39, 0x5e, 0xaa, + 0x2a, 0xf5, 0xdb, 0x17, 0x1d, 0x07, 0xe9, 0xcd, 0x50, 0xde, 0xe6, 0xcf, 0x00, 0x0c, 0x9d, 0xb3, + 0x0f, 0xeb, 0x00, 0xb8, 0x9e, 0xe3, 0xf7, 0x82, 0x2e, 0xe1, 0x44, 0xa6, 0xb7, 0x94, 0xdc, 0x83, + 0x3b, 0x23, 0x04, 0xa5, 0x58, 0x59, 0x75, 0x29, 0x5c, 0xae, 0x2e, 0x8d, 0xd5, 0x93, 0xd3, 0x6a, + 0xee, 0xf9, 0x69, 0x35, 0xf7, 0xe2, 0xb4, 0x9a, 0x7b, 0x16, 0x55, 0xb5, 0x93, 0xa8, 0xaa, 0x3d, + 0x8f, 0xaa, 0xda, 0x8b, 0xa8, 0xaa, 0xfd, 0x15, 0x55, 0xb5, 0xef, 0xfe, 0xae, 0xe6, 0x9e, 0xea, + 0xfd, 0xb5, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x0e, 0xab, 0x82, 0x7c, 0x0f, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/generated.proto index 7f31d599a..28c8d6603 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/generated.proto @@ -121,7 +121,8 @@ message ResourceRule { // +optional repeated string apiGroups = 2; - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all. + // Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. + // "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. // +optional repeated string resources = 3; @@ -225,9 +226,16 @@ message SubjectAccessReviewSpec { // SubjectAccessReviewStatus message SubjectAccessReviewStatus { - // Allowed is required. True if the action would be allowed, false otherwise. + // Allowed is required. True if the action would be allowed, false otherwise. optional bool allowed = 1; + // Denied is optional. True if the action would be denied, otherwise + // false. If both allowed is false and denied is false, then the + // authorizer has no opinion on whether to authorize the action. Denied + // may not be true if Allowed is true. + // +optional + optional bool denied = 4; + // Reason is optional. It indicates why a request was allowed or denied. // +optional optional string reason = 2; diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/register.go index d716eaa98..59311981e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &SelfSubjectRulesReview{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/types.go index 99ec3bcbf..86b05c54e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/types.go @@ -169,8 +169,14 @@ type SelfSubjectAccessReviewSpec struct { // SubjectAccessReviewStatus type SubjectAccessReviewStatus struct { - // Allowed is required. True if the action would be allowed, false otherwise. + // Allowed is required. True if the action would be allowed, false otherwise. Allowed bool `json:"allowed" protobuf:"varint,1,opt,name=allowed"` + // Denied is optional. True if the action would be denied, otherwise + // false. If both allowed is false and denied is false, then the + // authorizer has no opinion on whether to authorize the action. Denied + // may not be true if Allowed is true. + // +optional + Denied bool `json:"denied,omitempty" protobuf:"varint,4,opt,name=denied"` // Reason is optional. It indicates why a request was allowed or denied. // +optional Reason string `json:"reason,omitempty" protobuf:"bytes,2,opt,name=reason"` @@ -241,7 +247,8 @@ type ResourceRule struct { // the enumerated resources in any API group will be allowed. "*" means all. // +optional APIGroups []string `json:"apiGroups,omitempty" protobuf:"bytes,2,rep,name=apiGroups"` - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all. + // Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. + // "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. // +optional Resources []string `json:"resources,omitempty" protobuf:"bytes,3,rep,name=resources"` // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. "*" means all. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/types_swagger_doc_generated.go index 8a0fb8a85..85503660c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/types_swagger_doc_generated.go @@ -76,7 +76,7 @@ var map_ResourceRule = map[string]string{ "": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", "verbs": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", "apiGroups": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", - "resources": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all.", + "resources": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", "resourceNames": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", } @@ -148,7 +148,8 @@ func (SubjectAccessReviewSpec) SwaggerDoc() map[string]string { var map_SubjectAccessReviewStatus = map[string]string{ "": "SubjectAccessReviewStatus", - "allowed": "Allowed is required. True if the action would be allowed, false otherwise.", + "allowed": "Allowed is required. True if the action would be allowed, false otherwise.", + "denied": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", "reason": "Reason is optional. It indicates why a request was allowed or denied.", "evaluationError": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/zz_generated.deepcopy.go index 916974ffc..a415b2b1d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1/zz_generated.deepcopy.go @@ -21,76 +21,9 @@ limitations under the License. package v1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LocalSubjectAccessReview).DeepCopyInto(out.(*LocalSubjectAccessReview)) - return nil - }, InType: reflect.TypeOf(&LocalSubjectAccessReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NonResourceAttributes).DeepCopyInto(out.(*NonResourceAttributes)) - return nil - }, InType: reflect.TypeOf(&NonResourceAttributes{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NonResourceRule).DeepCopyInto(out.(*NonResourceRule)) - return nil - }, InType: reflect.TypeOf(&NonResourceRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceAttributes).DeepCopyInto(out.(*ResourceAttributes)) - return nil - }, InType: reflect.TypeOf(&ResourceAttributes{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceRule).DeepCopyInto(out.(*ResourceRule)) - return nil - }, InType: reflect.TypeOf(&ResourceRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectAccessReview).DeepCopyInto(out.(*SelfSubjectAccessReview)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectAccessReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectAccessReviewSpec).DeepCopyInto(out.(*SelfSubjectAccessReviewSpec)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectAccessReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectRulesReview).DeepCopyInto(out.(*SelfSubjectRulesReview)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectRulesReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectRulesReviewSpec).DeepCopyInto(out.(*SelfSubjectRulesReviewSpec)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectRulesReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectAccessReview).DeepCopyInto(out.(*SubjectAccessReview)) - return nil - }, InType: reflect.TypeOf(&SubjectAccessReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectAccessReviewSpec).DeepCopyInto(out.(*SubjectAccessReviewSpec)) - return nil - }, InType: reflect.TypeOf(&SubjectAccessReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectAccessReviewStatus).DeepCopyInto(out.(*SubjectAccessReviewStatus)) - return nil - }, InType: reflect.TypeOf(&SubjectAccessReviewStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectRulesReviewStatus).DeepCopyInto(out.(*SubjectRulesReviewStatus)) - return nil - }, InType: reflect.TypeOf(&SubjectRulesReviewStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LocalSubjectAccessReview) DeepCopyInto(out *LocalSubjectAccessReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/BUILD index 9391dcc58..06c953f2a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/BUILD @@ -20,7 +20,6 @@ go_library( "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/doc.go index 6809b811e..ea4f802e2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=authorization.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/generated.pb.go index e1f49d464..9b1ad299e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/generated.pb.go @@ -730,6 +730,14 @@ func (m *SubjectAccessReviewStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError))) i += copy(dAtA[i:], m.EvaluationError) + dAtA[i] = 0x20 + i++ + if m.Denied { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ return i, nil } @@ -1015,6 +1023,7 @@ func (m *SubjectAccessReviewStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.EvaluationError) n += 1 + l + sovGenerated(uint64(l)) + n += 2 return n } @@ -1205,6 +1214,7 @@ func (this *SubjectAccessReviewStatus) String() string { `Allowed:` + fmt.Sprintf("%v", this.Allowed) + `,`, `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, `EvaluationError:` + fmt.Sprintf("%v", this.EvaluationError) + `,`, + `Denied:` + fmt.Sprintf("%v", this.Denied) + `,`, `}`, }, "") return s @@ -3130,6 +3140,26 @@ func (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error { } m.EvaluationError = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Denied", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Denied = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3422,77 +3452,78 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1139 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xfa, 0x47, 0x62, 0x8f, 0x1b, 0x92, 0x4e, 0x94, 0x66, 0x1b, 0x84, 0x6d, 0x19, 0x09, - 0x05, 0xd1, 0xee, 0x92, 0x50, 0x48, 0x09, 0xf4, 0x10, 0xab, 0x11, 0x8a, 0xd4, 0x96, 0x6a, 0xa2, - 0xe4, 0x40, 0x25, 0x60, 0x76, 0x33, 0xb1, 0x17, 0xdb, 0xbb, 0xcb, 0xcc, 0xac, 0x43, 0x10, 0x87, - 0x1e, 0x39, 0x72, 0xe4, 0xc8, 0x89, 0x3b, 0x47, 0x2e, 0x48, 0x70, 0xca, 0xb1, 0xc7, 0x1c, 0x90, - 0x45, 0x96, 0x3f, 0x82, 0x2b, 0x9a, 0xd9, 0xb1, 0x77, 0x1d, 0xaf, 0xe3, 0x24, 0x87, 0xf6, 0xd2, - 0xdb, 0xce, 0xfb, 0xde, 0xf7, 0xde, 0x9b, 0x37, 0xef, 0xbd, 0x7d, 0x60, 0xa7, 0x7d, 0x9f, 0x19, - 0x8e, 0x67, 0xb6, 0x03, 0x8b, 0x50, 0x97, 0x70, 0xc2, 0xcc, 0x1e, 0x71, 0x0f, 0x3c, 0x6a, 0x2a, - 0x00, 0xfb, 0x8e, 0x89, 0x03, 0xde, 0xf2, 0xa8, 0xf3, 0x3d, 0xe6, 0x8e, 0xe7, 0x9a, 0xbd, 0x35, - 0x8b, 0x70, 0xbc, 0x66, 0x36, 0x89, 0x4b, 0x28, 0xe6, 0xe4, 0xc0, 0xf0, 0xa9, 0xc7, 0x3d, 0x58, - 0x8b, 0x18, 0x06, 0xf6, 0x1d, 0x63, 0x84, 0x61, 0x28, 0xc6, 0xca, 0xdd, 0xa6, 0xc3, 0x5b, 0x81, - 0x65, 0xd8, 0x5e, 0xd7, 0x6c, 0x7a, 0x4d, 0xcf, 0x94, 0x44, 0x2b, 0x38, 0x94, 0x27, 0x79, 0x90, - 0x5f, 0x91, 0xc1, 0x95, 0x7b, 0x71, 0x08, 0x5d, 0x6c, 0xb7, 0x1c, 0x97, 0xd0, 0x63, 0xd3, 0x6f, - 0x37, 0x85, 0x80, 0x99, 0x5d, 0xc2, 0xb1, 0xd9, 0x1b, 0x0b, 0x63, 0xc5, 0x9c, 0xc4, 0xa2, 0x81, - 0xcb, 0x9d, 0x2e, 0x19, 0x23, 0x7c, 0x34, 0x8d, 0xc0, 0xec, 0x16, 0xe9, 0xe2, 0x31, 0xde, 0x07, - 0x93, 0x78, 0x01, 0x77, 0x3a, 0xa6, 0xe3, 0x72, 0xc6, 0xe9, 0x79, 0x52, 0x7d, 0x03, 0x80, 0xed, - 0xef, 0x38, 0xc5, 0xfb, 0xb8, 0x13, 0x10, 0x58, 0x05, 0x05, 0x87, 0x93, 0x2e, 0xd3, 0xb5, 0x5a, - 0x6e, 0xb5, 0xd4, 0x28, 0x85, 0xfd, 0x6a, 0x61, 0x47, 0x08, 0x50, 0x24, 0xdf, 0x2c, 0xfe, 0xfc, - 0x4b, 0x35, 0xf3, 0xfc, 0xef, 0x5a, 0xa6, 0xfe, 0x47, 0x16, 0xe8, 0x8f, 0x3c, 0x1b, 0x77, 0x76, - 0x03, 0xeb, 0x1b, 0x62, 0xf3, 0x2d, 0xdb, 0x26, 0x8c, 0x21, 0xd2, 0x73, 0xc8, 0x11, 0xfc, 0x1a, - 0x14, 0x45, 0x3a, 0x0e, 0x30, 0xc7, 0xba, 0x56, 0xd3, 0x56, 0xcb, 0xeb, 0xef, 0x1b, 0xf1, 0x6b, - 0x0c, 0xa3, 0x33, 0xfc, 0x76, 0x53, 0x08, 0x98, 0x21, 0xb4, 0x8d, 0xde, 0x9a, 0xf1, 0xb9, 0xb4, - 0xf5, 0x98, 0x70, 0xdc, 0x80, 0x27, 0xfd, 0x6a, 0x26, 0xec, 0x57, 0x41, 0x2c, 0x43, 0x43, 0xab, - 0xf0, 0x19, 0xc8, 0x33, 0x9f, 0xd8, 0x7a, 0x56, 0x5a, 0xff, 0xd8, 0x98, 0xf6, 0xd6, 0x46, 0x4a, - 0x98, 0xbb, 0x3e, 0xb1, 0x1b, 0x37, 0x94, 0x9b, 0xbc, 0x38, 0x21, 0x69, 0x14, 0xda, 0x60, 0x86, - 0x71, 0xcc, 0x03, 0xa6, 0xe7, 0xa4, 0xf9, 0x4f, 0xae, 0x67, 0x5e, 0x9a, 0x68, 0xbc, 0xa1, 0x1c, - 0xcc, 0x44, 0x67, 0xa4, 0x4c, 0xd7, 0x9f, 0x81, 0xa5, 0x27, 0x9e, 0x8b, 0x08, 0xf3, 0x02, 0x6a, - 0x93, 0x2d, 0xce, 0xa9, 0x63, 0x05, 0x9c, 0x30, 0x58, 0x03, 0x79, 0x1f, 0xf3, 0x96, 0x4c, 0x5c, - 0x29, 0x8e, 0xef, 0x29, 0xe6, 0x2d, 0x24, 0x11, 0xa1, 0xd1, 0x23, 0xd4, 0x92, 0x97, 0x4f, 0x68, - 0xec, 0x13, 0x6a, 0x21, 0x89, 0xd4, 0xbf, 0x05, 0xf3, 0x09, 0xe3, 0x28, 0xe8, 0xc8, 0xb7, 0x15, - 0xd0, 0xc8, 0xdb, 0x0a, 0x06, 0x43, 0x91, 0x1c, 0x3e, 0x00, 0xf3, 0x6e, 0xcc, 0xd9, 0x43, 0x8f, - 0x98, 0x9e, 0x95, 0xaa, 0x8b, 0x61, 0xbf, 0x9a, 0x34, 0x27, 0x20, 0x74, 0x5e, 0x57, 0x14, 0x04, - 0x4c, 0xb9, 0x8d, 0x09, 0x4a, 0x2e, 0xee, 0x12, 0xe6, 0x63, 0x9b, 0xa8, 0x2b, 0xdd, 0x54, 0x01, - 0x97, 0x9e, 0x0c, 0x00, 0x14, 0xeb, 0x4c, 0xbf, 0x1c, 0x7c, 0x1b, 0x14, 0x9a, 0xd4, 0x0b, 0x7c, - 0xf9, 0x3a, 0xa5, 0xc6, 0x9c, 0x52, 0x29, 0x7c, 0x26, 0x84, 0x28, 0xc2, 0xe0, 0xbb, 0x60, 0xb6, - 0x47, 0x28, 0x73, 0x3c, 0x57, 0xcf, 0x4b, 0xb5, 0x79, 0xa5, 0x36, 0xbb, 0x1f, 0x89, 0xd1, 0x00, - 0x87, 0x77, 0x40, 0x91, 0xaa, 0xc0, 0xf5, 0x82, 0xd4, 0x5d, 0x50, 0xba, 0xc5, 0x61, 0x06, 0x87, - 0x1a, 0xf0, 0x43, 0x50, 0x66, 0x81, 0x35, 0x24, 0xcc, 0x48, 0xc2, 0xa2, 0x22, 0x94, 0x77, 0x63, - 0x08, 0x25, 0xf5, 0xc4, 0xb5, 0xc4, 0x1d, 0xf5, 0xd9, 0xd1, 0x6b, 0x89, 0x14, 0x20, 0x89, 0xd4, - 0xff, 0xd2, 0xc0, 0x8d, 0xab, 0xbd, 0xd8, 0x7b, 0xa0, 0x84, 0x7d, 0x47, 0x5e, 0x7b, 0xf0, 0x56, - 0x73, 0x22, 0xaf, 0x5b, 0x4f, 0x77, 0x22, 0x21, 0x8a, 0x71, 0xa1, 0x3c, 0x08, 0x46, 0xd4, 0xf5, - 0x50, 0x79, 0xe0, 0x92, 0xa1, 0x18, 0x87, 0x1b, 0x60, 0x6e, 0x70, 0x90, 0x8f, 0xa4, 0xe7, 0x25, - 0xe1, 0x66, 0xd8, 0xaf, 0xce, 0xa1, 0x24, 0x80, 0x46, 0xf5, 0xea, 0x7f, 0x66, 0xc1, 0xf2, 0x2e, - 0xe9, 0x1c, 0xbe, 0x9a, 0xa9, 0xf0, 0xd5, 0xc8, 0x54, 0x78, 0x70, 0x89, 0xb6, 0x4d, 0x0f, 0xf5, - 0xd5, 0x4e, 0x86, 0x5f, 0xb3, 0xe0, 0xcd, 0x0b, 0x02, 0x83, 0x3f, 0x00, 0x48, 0xc7, 0x1a, 0x4d, - 0x65, 0xf4, 0xde, 0xf4, 0x80, 0xc6, 0x9b, 0xb4, 0x71, 0x2b, 0xec, 0x57, 0x53, 0x9a, 0x17, 0xa5, - 0xf8, 0x81, 0x3f, 0x6a, 0x60, 0xc9, 0x4d, 0x1b, 0x5c, 0x2a, 0xeb, 0x1b, 0xd3, 0x23, 0x48, 0x9d, - 0x7b, 0x8d, 0xdb, 0x61, 0xbf, 0x9a, 0x3e, 0x12, 0x51, 0xba, 0x43, 0x31, 0x72, 0x6e, 0x25, 0x12, - 0x25, 0x9a, 0xe6, 0xe5, 0xd5, 0xda, 0x97, 0x23, 0xb5, 0xf6, 0xe9, 0x95, 0x6a, 0x2d, 0x11, 0xe9, - 0xc4, 0x52, 0xb3, 0xce, 0x95, 0xda, 0xe6, 0xa5, 0x4b, 0x2d, 0x69, 0xfd, 0xe2, 0x4a, 0x7b, 0x0c, - 0x56, 0x26, 0x47, 0x75, 0xe5, 0xd1, 0x5d, 0xff, 0x3d, 0x0b, 0x16, 0x5f, 0xaf, 0x03, 0xd7, 0x6b, - 0xfa, 0xd3, 0x3c, 0x58, 0x7e, 0xdd, 0xf0, 0x17, 0x37, 0xbc, 0xf8, 0x89, 0x06, 0x8c, 0x50, 0xf5, - 0xe3, 0x1f, 0xbe, 0xd5, 0x1e, 0x23, 0x14, 0x49, 0x04, 0xd6, 0x06, 0xbb, 0x41, 0xf4, 0xc3, 0x02, - 0x22, 0xd3, 0xea, 0x5f, 0xa8, 0x16, 0x03, 0x07, 0x14, 0x88, 0xd8, 0x78, 0xf5, 0x42, 0x2d, 0xb7, - 0x5a, 0x5e, 0x7f, 0x78, 0xed, 0x5a, 0x31, 0xe4, 0xe2, 0xbc, 0xed, 0x72, 0x7a, 0x1c, 0xef, 0x20, - 0x52, 0x86, 0x22, 0x0f, 0xf0, 0x2d, 0x90, 0x0b, 0x9c, 0x03, 0xb5, 0x22, 0x94, 0x95, 0x4a, 0x6e, - 0x6f, 0xe7, 0x21, 0x12, 0xf2, 0x95, 0x43, 0xb5, 0x7b, 0x4b, 0x13, 0x70, 0x01, 0xe4, 0xda, 0xe4, - 0x38, 0xea, 0x33, 0x24, 0x3e, 0x61, 0x03, 0x14, 0x7a, 0x62, 0x2d, 0x57, 0x79, 0xbe, 0x33, 0x3d, - 0xd2, 0x78, 0x95, 0x47, 0x11, 0x75, 0x33, 0x7b, 0x5f, 0xab, 0xff, 0xa6, 0x81, 0xdb, 0x13, 0x0b, - 0x52, 0x2c, 0x4a, 0xb8, 0xd3, 0xf1, 0x8e, 0xc8, 0x81, 0xf4, 0x5d, 0x8c, 0x17, 0xa5, 0xad, 0x48, - 0x8c, 0x06, 0x38, 0x7c, 0x07, 0xcc, 0x50, 0x82, 0x99, 0xe7, 0xaa, 0xe5, 0x6c, 0x58, 0xcb, 0x48, - 0x4a, 0x91, 0x42, 0xe1, 0x16, 0x98, 0x27, 0xc2, 0xbd, 0x0c, 0x6e, 0x9b, 0x52, 0x6f, 0xf0, 0x62, - 0xcb, 0x8a, 0x30, 0xbf, 0x3d, 0x0a, 0xa3, 0xf3, 0xfa, 0xf5, 0xff, 0xb2, 0x40, 0x9f, 0x34, 0xce, - 0x60, 0x3b, 0xde, 0x4e, 0x24, 0x28, 0x17, 0xa4, 0xf2, 0xba, 0x71, 0xf9, 0x56, 0x10, 0xb4, 0xc6, - 0x92, 0x8a, 0x66, 0x2e, 0x29, 0x4d, 0x6c, 0x34, 0xf2, 0x08, 0x8f, 0xc0, 0x82, 0x3b, 0xba, 0x4a, - 0x47, 0xbb, 0x56, 0x79, 0x7d, 0xed, 0x4a, 0x85, 0x2f, 0x5d, 0xea, 0xca, 0xe5, 0xc2, 0x39, 0x80, - 0xa1, 0x31, 0x27, 0x70, 0x1d, 0x00, 0xc7, 0xb5, 0xbd, 0xae, 0xdf, 0x21, 0x9c, 0xc8, 0x04, 0x16, - 0xe3, 0x29, 0xb8, 0x33, 0x44, 0x50, 0x42, 0x2b, 0x2d, 0xf3, 0xf9, 0xab, 0x65, 0xbe, 0x71, 0xf7, - 0xe4, 0xac, 0x92, 0x79, 0x71, 0x56, 0xc9, 0x9c, 0x9e, 0x55, 0x32, 0xcf, 0xc3, 0x8a, 0x76, 0x12, - 0x56, 0xb4, 0x17, 0x61, 0x45, 0x3b, 0x0d, 0x2b, 0xda, 0x3f, 0x61, 0x45, 0xfb, 0xe9, 0xdf, 0x4a, - 0xe6, 0x8b, 0x59, 0x75, 0xc3, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x29, 0xa9, 0x9d, 0x7c, 0xb1, - 0x0f, 0x00, 0x00, + // 1154 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4d, 0x6f, 0x1b, 0xc5, + 0x1b, 0xf7, 0xfa, 0x25, 0xb1, 0xc7, 0xcd, 0x3f, 0xe9, 0x44, 0x69, 0xb6, 0xf9, 0x0b, 0xdb, 0x32, + 0x12, 0x0a, 0xa2, 0xdd, 0x25, 0xa1, 0x90, 0x12, 0xe8, 0x21, 0x56, 0x22, 0x14, 0xa9, 0x2d, 0xd5, + 0x44, 0xc9, 0x81, 0x4a, 0xc0, 0x78, 0x3d, 0xb1, 0x17, 0xdb, 0xbb, 0xcb, 0xcc, 0xac, 0x43, 0x10, + 0x87, 0x1e, 0x39, 0x72, 0xe4, 0xc8, 0x89, 0xef, 0xc0, 0x05, 0x09, 0x4e, 0x39, 0xf6, 0x18, 0x24, + 0x64, 0x91, 0xe5, 0x43, 0x70, 0x45, 0x33, 0x3b, 0xf6, 0xae, 0xe3, 0x75, 0x1c, 0xe7, 0x40, 0x2f, + 0xbd, 0xed, 0x3c, 0xbf, 0xe7, 0x6d, 0x9e, 0x97, 0xd9, 0x1f, 0xd8, 0x6f, 0x3f, 0x64, 0x86, 0xed, + 0x9a, 0x6d, 0xbf, 0x4e, 0xa8, 0x43, 0x38, 0x61, 0x66, 0x8f, 0x38, 0x0d, 0x97, 0x9a, 0x0a, 0xc0, + 0x9e, 0x6d, 0x62, 0x9f, 0xb7, 0x5c, 0x6a, 0x7f, 0x8b, 0xb9, 0xed, 0x3a, 0x66, 0x6f, 0xa3, 0x4e, + 0x38, 0xde, 0x30, 0x9b, 0xc4, 0x21, 0x14, 0x73, 0xd2, 0x30, 0x3c, 0xea, 0x72, 0x17, 0x56, 0x42, + 0x0b, 0x03, 0x7b, 0xb6, 0x31, 0x62, 0x61, 0x28, 0x8b, 0xb5, 0xfb, 0x4d, 0x9b, 0xb7, 0xfc, 0xba, + 0x61, 0xb9, 0x5d, 0xb3, 0xe9, 0x36, 0x5d, 0x53, 0x1a, 0xd6, 0xfd, 0x63, 0x79, 0x92, 0x07, 0xf9, + 0x15, 0x3a, 0x5c, 0x7b, 0x10, 0xa5, 0xd0, 0xc5, 0x56, 0xcb, 0x76, 0x08, 0x3d, 0x35, 0xbd, 0x76, + 0x53, 0x08, 0x98, 0xd9, 0x25, 0x1c, 0x9b, 0xbd, 0xb1, 0x34, 0xd6, 0xcc, 0x49, 0x56, 0xd4, 0x77, + 0xb8, 0xdd, 0x25, 0x63, 0x06, 0x1f, 0x4c, 0x33, 0x60, 0x56, 0x8b, 0x74, 0xf1, 0x98, 0xdd, 0x7b, + 0x93, 0xec, 0x7c, 0x6e, 0x77, 0x4c, 0xdb, 0xe1, 0x8c, 0xd3, 0xcb, 0x46, 0xd5, 0x2d, 0x00, 0xf6, + 0xbe, 0xe1, 0x14, 0x1f, 0xe1, 0x8e, 0x4f, 0x60, 0x19, 0xe4, 0x6c, 0x4e, 0xba, 0x4c, 0xd7, 0x2a, + 0x99, 0xf5, 0x42, 0xad, 0x10, 0xf4, 0xcb, 0xb9, 0x7d, 0x21, 0x40, 0xa1, 0x7c, 0x3b, 0xff, 0xe3, + 0x4f, 0xe5, 0xd4, 0x8b, 0x3f, 0x2b, 0xa9, 0xea, 0xaf, 0x69, 0xa0, 0x3f, 0x76, 0x2d, 0xdc, 0x39, + 0xf0, 0xeb, 0x5f, 0x11, 0x8b, 0xef, 0x58, 0x16, 0x61, 0x0c, 0x91, 0x9e, 0x4d, 0x4e, 0xe0, 0x97, + 0x20, 0x2f, 0xca, 0xd1, 0xc0, 0x1c, 0xeb, 0x5a, 0x45, 0x5b, 0x2f, 0x6e, 0xbe, 0x6b, 0x44, 0xdd, + 0x18, 0x66, 0x67, 0x78, 0xed, 0xa6, 0x10, 0x30, 0x43, 0x68, 0x1b, 0xbd, 0x0d, 0xe3, 0x53, 0xe9, + 0xeb, 0x09, 0xe1, 0xb8, 0x06, 0xcf, 0xfa, 0xe5, 0x54, 0xd0, 0x2f, 0x83, 0x48, 0x86, 0x86, 0x5e, + 0xe1, 0x73, 0x90, 0x65, 0x1e, 0xb1, 0xf4, 0xb4, 0xf4, 0xfe, 0xa1, 0x31, 0xad, 0xd7, 0x46, 0x42, + 0x9a, 0x07, 0x1e, 0xb1, 0x6a, 0xb7, 0x54, 0x98, 0xac, 0x38, 0x21, 0xe9, 0x14, 0x5a, 0x60, 0x8e, + 0x71, 0xcc, 0x7d, 0xa6, 0x67, 0xa4, 0xfb, 0x8f, 0x6e, 0xe6, 0x5e, 0xba, 0xa8, 0xfd, 0x4f, 0x05, + 0x98, 0x0b, 0xcf, 0x48, 0xb9, 0xae, 0x3e, 0x07, 0x2b, 0x4f, 0x5d, 0x07, 0x11, 0xe6, 0xfa, 0xd4, + 0x22, 0x3b, 0x9c, 0x53, 0xbb, 0xee, 0x73, 0xc2, 0x60, 0x05, 0x64, 0x3d, 0xcc, 0x5b, 0xb2, 0x70, + 0x85, 0x28, 0xbf, 0x67, 0x98, 0xb7, 0x90, 0x44, 0x84, 0x46, 0x8f, 0xd0, 0xba, 0xbc, 0x7c, 0x4c, + 0xe3, 0x88, 0xd0, 0x3a, 0x92, 0x48, 0xf5, 0x6b, 0xb0, 0x18, 0x73, 0x8e, 0xfc, 0x8e, 0xec, 0xad, + 0x80, 0x46, 0x7a, 0x2b, 0x2c, 0x18, 0x0a, 0xe5, 0xf0, 0x11, 0x58, 0x74, 0x22, 0x9b, 0x43, 0xf4, + 0x98, 0xe9, 0x69, 0xa9, 0xba, 0x1c, 0xf4, 0xcb, 0x71, 0x77, 0x02, 0x42, 0x97, 0x75, 0xc5, 0x40, + 0xc0, 0x84, 0xdb, 0x98, 0xa0, 0xe0, 0xe0, 0x2e, 0x61, 0x1e, 0xb6, 0x88, 0xba, 0xd2, 0x6d, 0x95, + 0x70, 0xe1, 0xe9, 0x00, 0x40, 0x91, 0xce, 0xf4, 0xcb, 0xc1, 0x37, 0x41, 0xae, 0x49, 0x5d, 0xdf, + 0x93, 0xdd, 0x29, 0xd4, 0x16, 0x94, 0x4a, 0xee, 0x13, 0x21, 0x44, 0x21, 0x06, 0xdf, 0x06, 0xf3, + 0x3d, 0x42, 0x99, 0xed, 0x3a, 0x7a, 0x56, 0xaa, 0x2d, 0x2a, 0xb5, 0xf9, 0xa3, 0x50, 0x8c, 0x06, + 0x38, 0xbc, 0x07, 0xf2, 0x54, 0x25, 0xae, 0xe7, 0xa4, 0xee, 0x92, 0xd2, 0xcd, 0x0f, 0x2b, 0x38, + 0xd4, 0x80, 0xef, 0x83, 0x22, 0xf3, 0xeb, 0x43, 0x83, 0x39, 0x69, 0xb0, 0xac, 0x0c, 0x8a, 0x07, + 0x11, 0x84, 0xe2, 0x7a, 0xe2, 0x5a, 0xe2, 0x8e, 0xfa, 0xfc, 0xe8, 0xb5, 0x44, 0x09, 0x90, 0x44, + 0xaa, 0xbf, 0x6b, 0xe0, 0xd6, 0x6c, 0x1d, 0x7b, 0x07, 0x14, 0xb0, 0x67, 0xcb, 0x6b, 0x0f, 0x7a, + 0xb5, 0x20, 0xea, 0xba, 0xf3, 0x6c, 0x3f, 0x14, 0xa2, 0x08, 0x17, 0xca, 0x83, 0x64, 0xc4, 0x5c, + 0x0f, 0x95, 0x07, 0x21, 0x19, 0x8a, 0x70, 0xb8, 0x05, 0x16, 0x06, 0x07, 0xd9, 0x24, 0x3d, 0x2b, + 0x0d, 0x6e, 0x07, 0xfd, 0xf2, 0x02, 0x8a, 0x03, 0x68, 0x54, 0xaf, 0xfa, 0x5b, 0x1a, 0xac, 0x1e, + 0x90, 0xce, 0xf1, 0xab, 0x79, 0x15, 0xbe, 0x18, 0x79, 0x15, 0x1e, 0x5d, 0x63, 0x6d, 0x93, 0x53, + 0x7d, 0xb5, 0x2f, 0xc3, 0xcf, 0x69, 0xf0, 0xff, 0x2b, 0x12, 0x83, 0xdf, 0x01, 0x48, 0xc7, 0x16, + 0x4d, 0x55, 0xf4, 0xc1, 0xf4, 0x84, 0xc6, 0x97, 0xb4, 0x76, 0x27, 0xe8, 0x97, 0x13, 0x96, 0x17, + 0x25, 0xc4, 0x81, 0xdf, 0x6b, 0x60, 0xc5, 0x49, 0x7a, 0xb8, 0x54, 0xd5, 0xb7, 0xa6, 0x67, 0x90, + 0xf8, 0xee, 0xd5, 0xee, 0x06, 0xfd, 0x72, 0xf2, 0x93, 0x88, 0x92, 0x03, 0x8a, 0x27, 0xe7, 0x4e, + 0xac, 0x50, 0x62, 0x69, 0xfe, 0xbb, 0x59, 0xfb, 0x7c, 0x64, 0xd6, 0x3e, 0x9e, 0x69, 0xd6, 0x62, + 0x99, 0x4e, 0x1c, 0xb5, 0xfa, 0xa5, 0x51, 0xdb, 0xbe, 0xf6, 0xa8, 0xc5, 0xbd, 0x5f, 0x3d, 0x69, + 0x4f, 0xc0, 0xda, 0xe4, 0xac, 0x66, 0x7e, 0xba, 0xab, 0xbf, 0xa4, 0xc1, 0xf2, 0x6b, 0x3a, 0x70, + 0xb3, 0xa5, 0x3f, 0xcf, 0x82, 0xd5, 0xd7, 0x0b, 0x7f, 0xf5, 0xc2, 0x8b, 0x9f, 0xa8, 0xcf, 0x08, + 0x55, 0x3f, 0xfe, 0x61, 0xaf, 0x0e, 0x19, 0xa1, 0x48, 0x22, 0xb0, 0x32, 0xe0, 0x06, 0xe1, 0x0f, + 0x0b, 0x88, 0x4a, 0xab, 0x7f, 0xa1, 0x22, 0x06, 0x36, 0xc8, 0x11, 0xc1, 0x78, 0xf5, 0x5c, 0x25, + 0xb3, 0x5e, 0xdc, 0xdc, 0xbd, 0xf1, 0xac, 0x18, 0x92, 0x38, 0xef, 0x39, 0x9c, 0x9e, 0x46, 0x1c, + 0x44, 0xca, 0x50, 0x18, 0x01, 0xbe, 0x01, 0x32, 0xbe, 0xdd, 0x50, 0x14, 0xa1, 0xa8, 0x54, 0x32, + 0x87, 0xfb, 0xbb, 0x48, 0xc8, 0xd7, 0x8e, 0x15, 0xf7, 0x96, 0x2e, 0xe0, 0x12, 0xc8, 0xb4, 0xc9, + 0x69, 0xb8, 0x67, 0x48, 0x7c, 0xc2, 0x1a, 0xc8, 0xf5, 0x04, 0x2d, 0x57, 0x75, 0xbe, 0x37, 0x3d, + 0xd3, 0x88, 0xca, 0xa3, 0xd0, 0x74, 0x3b, 0xfd, 0x50, 0xab, 0xfe, 0xa1, 0x81, 0xbb, 0x13, 0x07, + 0x52, 0x10, 0x25, 0xdc, 0xe9, 0xb8, 0x27, 0xa4, 0x21, 0x63, 0xe7, 0x23, 0xa2, 0xb4, 0x13, 0x8a, + 0xd1, 0x00, 0x87, 0x6f, 0x81, 0x39, 0x4a, 0x30, 0x73, 0x1d, 0x45, 0xce, 0x86, 0xb3, 0x8c, 0xa4, + 0x14, 0x29, 0x14, 0xee, 0x80, 0x45, 0x22, 0xc2, 0xcb, 0xe4, 0xf6, 0x28, 0x75, 0x07, 0x1d, 0x5b, + 0x55, 0x06, 0x8b, 0x7b, 0xa3, 0x30, 0xba, 0xac, 0x2f, 0x42, 0x35, 0x88, 0x63, 0x93, 0x86, 0x64, + 0x6f, 0xf9, 0x28, 0xd4, 0xae, 0x94, 0x22, 0x85, 0x56, 0xff, 0x49, 0x03, 0x7d, 0xd2, 0xb3, 0x07, + 0xdb, 0x11, 0x8b, 0x91, 0xa0, 0x24, 0x52, 0xc5, 0x4d, 0xe3, 0xfa, 0x2b, 0x23, 0xcc, 0x6a, 0x2b, + 0x2a, 0xf6, 0x42, 0x5c, 0x1a, 0x63, 0x3e, 0xf2, 0x08, 0x4f, 0xc0, 0x92, 0x33, 0x4a, 0xb9, 0x43, + 0x4e, 0x56, 0xdc, 0xdc, 0x98, 0x69, 0x41, 0x64, 0x48, 0x5d, 0x85, 0x5c, 0xba, 0x04, 0x30, 0x34, + 0x16, 0x04, 0x6e, 0x02, 0x60, 0x3b, 0x96, 0xdb, 0xf5, 0x3a, 0x84, 0x13, 0x59, 0xe8, 0x7c, 0xf4, + 0x5a, 0xee, 0x0f, 0x11, 0x14, 0xd3, 0x4a, 0xea, 0x50, 0x76, 0xb6, 0x0e, 0xd5, 0xee, 0x9f, 0x5d, + 0x94, 0x52, 0x2f, 0x2f, 0x4a, 0xa9, 0xf3, 0x8b, 0x52, 0xea, 0x45, 0x50, 0xd2, 0xce, 0x82, 0x92, + 0xf6, 0x32, 0x28, 0x69, 0xe7, 0x41, 0x49, 0xfb, 0x2b, 0x28, 0x69, 0x3f, 0xfc, 0x5d, 0x4a, 0x7d, + 0x36, 0xaf, 0x6e, 0xf8, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcc, 0xb3, 0x5e, 0x05, 0xd9, 0x0f, + 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/generated.proto index 9e9942f36..59df0b6d4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/generated.proto @@ -121,7 +121,8 @@ message ResourceRule { // +optional repeated string apiGroups = 2; - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all. + // Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. + // "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. // +optional repeated string resources = 3; @@ -225,9 +226,16 @@ message SubjectAccessReviewSpec { // SubjectAccessReviewStatus message SubjectAccessReviewStatus { - // Allowed is required. True if the action would be allowed, false otherwise. + // Allowed is required. True if the action would be allowed, false otherwise. optional bool allowed = 1; + // Denied is optional. True if the action would be denied, otherwise + // false. If both allowed is false and denied is false, then the + // authorizer has no opinion on whether to authorize the action. Denied + // may not be true if Allowed is true. + // +optional + optional bool denied = 4; + // Reason is optional. It indicates why a request was allowed or denied. // +optional optional string reason = 2; diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/register.go index d8116d5a4..84255dd6c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &SelfSubjectRulesReview{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/types.go index a0659d519..618ff8c0f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/types.go @@ -169,8 +169,14 @@ type SelfSubjectAccessReviewSpec struct { // SubjectAccessReviewStatus type SubjectAccessReviewStatus struct { - // Allowed is required. True if the action would be allowed, false otherwise. + // Allowed is required. True if the action would be allowed, false otherwise. Allowed bool `json:"allowed" protobuf:"varint,1,opt,name=allowed"` + // Denied is optional. True if the action would be denied, otherwise + // false. If both allowed is false and denied is false, then the + // authorizer has no opinion on whether to authorize the action. Denied + // may not be true if Allowed is true. + // +optional + Denied bool `json:"denied,omitempty" protobuf:"varint,4,opt,name=denied"` // Reason is optional. It indicates why a request was allowed or denied. // +optional Reason string `json:"reason,omitempty" protobuf:"bytes,2,opt,name=reason"` @@ -241,7 +247,8 @@ type ResourceRule struct { // the enumerated resources in any API group will be allowed. "*" means all. // +optional APIGroups []string `json:"apiGroups,omitempty" protobuf:"bytes,2,rep,name=apiGroups"` - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. "*" means all. + // Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. + // "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. // +optional Resources []string `json:"resources,omitempty" protobuf:"bytes,3,rep,name=resources"` // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. "*" means all. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go index 1d8bb9849..2371b21c6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go @@ -76,7 +76,7 @@ var map_ResourceRule = map[string]string{ "": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", "verbs": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", "apiGroups": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", - "resources": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all.", + "resources": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", "resourceNames": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", } @@ -148,7 +148,8 @@ func (SubjectAccessReviewSpec) SwaggerDoc() map[string]string { var map_SubjectAccessReviewStatus = map[string]string{ "": "SubjectAccessReviewStatus", - "allowed": "Allowed is required. True if the action would be allowed, false otherwise.", + "allowed": "Allowed is required. True if the action would be allowed, false otherwise.", + "denied": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", "reason": "Reason is optional. It indicates why a request was allowed or denied.", "evaluationError": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go index aeb77ddbc..fcb0067a3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go @@ -21,76 +21,9 @@ limitations under the License. package v1beta1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LocalSubjectAccessReview).DeepCopyInto(out.(*LocalSubjectAccessReview)) - return nil - }, InType: reflect.TypeOf(&LocalSubjectAccessReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NonResourceAttributes).DeepCopyInto(out.(*NonResourceAttributes)) - return nil - }, InType: reflect.TypeOf(&NonResourceAttributes{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NonResourceRule).DeepCopyInto(out.(*NonResourceRule)) - return nil - }, InType: reflect.TypeOf(&NonResourceRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceAttributes).DeepCopyInto(out.(*ResourceAttributes)) - return nil - }, InType: reflect.TypeOf(&ResourceAttributes{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceRule).DeepCopyInto(out.(*ResourceRule)) - return nil - }, InType: reflect.TypeOf(&ResourceRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectAccessReview).DeepCopyInto(out.(*SelfSubjectAccessReview)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectAccessReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectAccessReviewSpec).DeepCopyInto(out.(*SelfSubjectAccessReviewSpec)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectAccessReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectRulesReview).DeepCopyInto(out.(*SelfSubjectRulesReview)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectRulesReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SelfSubjectRulesReviewSpec).DeepCopyInto(out.(*SelfSubjectRulesReviewSpec)) - return nil - }, InType: reflect.TypeOf(&SelfSubjectRulesReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectAccessReview).DeepCopyInto(out.(*SubjectAccessReview)) - return nil - }, InType: reflect.TypeOf(&SubjectAccessReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectAccessReviewSpec).DeepCopyInto(out.(*SubjectAccessReviewSpec)) - return nil - }, InType: reflect.TypeOf(&SubjectAccessReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectAccessReviewStatus).DeepCopyInto(out.(*SubjectAccessReviewStatus)) - return nil - }, InType: reflect.TypeOf(&SubjectAccessReviewStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SubjectRulesReviewStatus).DeepCopyInto(out.(*SubjectRulesReviewStatus)) - return nil - }, InType: reflect.TypeOf(&SubjectRulesReviewStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LocalSubjectAccessReview) DeepCopyInto(out *LocalSubjectAccessReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/BUILD index 22c95c806..ccf587be0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/BUILD @@ -21,7 +21,6 @@ go_library( "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/doc.go index 1689adb5c..9c3be845f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true package v1 // import "k8s.io/api/autoscaling/v1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/register.go index 521c0e4a3..8dfe361ed 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &HorizontalPodAutoscaler{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go index 20848f20c..de4e6daa3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go @@ -23,92 +23,9 @@ package v1 import ( resource "k8s.io/apimachinery/pkg/api/resource" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CrossVersionObjectReference).DeepCopyInto(out.(*CrossVersionObjectReference)) - return nil - }, InType: reflect.TypeOf(&CrossVersionObjectReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscaler).DeepCopyInto(out.(*HorizontalPodAutoscaler)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscaler{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerCondition).DeepCopyInto(out.(*HorizontalPodAutoscalerCondition)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerList).DeepCopyInto(out.(*HorizontalPodAutoscalerList)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerSpec).DeepCopyInto(out.(*HorizontalPodAutoscalerSpec)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerStatus).DeepCopyInto(out.(*HorizontalPodAutoscalerStatus)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricSpec).DeepCopyInto(out.(*MetricSpec)) - return nil - }, InType: reflect.TypeOf(&MetricSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricStatus).DeepCopyInto(out.(*MetricStatus)) - return nil - }, InType: reflect.TypeOf(&MetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectMetricSource).DeepCopyInto(out.(*ObjectMetricSource)) - return nil - }, InType: reflect.TypeOf(&ObjectMetricSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectMetricStatus).DeepCopyInto(out.(*ObjectMetricStatus)) - return nil - }, InType: reflect.TypeOf(&ObjectMetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodsMetricSource).DeepCopyInto(out.(*PodsMetricSource)) - return nil - }, InType: reflect.TypeOf(&PodsMetricSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodsMetricStatus).DeepCopyInto(out.(*PodsMetricStatus)) - return nil - }, InType: reflect.TypeOf(&PodsMetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceMetricSource).DeepCopyInto(out.(*ResourceMetricSource)) - return nil - }, InType: reflect.TypeOf(&ResourceMetricSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceMetricStatus).DeepCopyInto(out.(*ResourceMetricStatus)) - return nil - }, InType: reflect.TypeOf(&ResourceMetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Scale).DeepCopyInto(out.(*Scale)) - return nil - }, InType: reflect.TypeOf(&Scale{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleSpec).DeepCopyInto(out.(*ScaleSpec)) - return nil - }, InType: reflect.TypeOf(&ScaleSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleStatus).DeepCopyInto(out.(*ScaleStatus)) - return nil - }, InType: reflect.TypeOf(&ScaleStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/BUILD index ea811df6a..32fc333eb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/BUILD @@ -21,7 +21,6 @@ go_library( "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/doc.go index 689f369bf..da9789e5c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true package v2beta1 // import "k8s.io/api/autoscaling/v2beta1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/register.go index 9025b421c..12d697f01 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &HorizontalPodAutoscaler{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go index b538e5b40..0bb3dd30c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go @@ -23,80 +23,9 @@ package v2beta1 import ( resource "k8s.io/apimachinery/pkg/api/resource" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CrossVersionObjectReference).DeepCopyInto(out.(*CrossVersionObjectReference)) - return nil - }, InType: reflect.TypeOf(&CrossVersionObjectReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscaler).DeepCopyInto(out.(*HorizontalPodAutoscaler)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscaler{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerCondition).DeepCopyInto(out.(*HorizontalPodAutoscalerCondition)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerList).DeepCopyInto(out.(*HorizontalPodAutoscalerList)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerSpec).DeepCopyInto(out.(*HorizontalPodAutoscalerSpec)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HorizontalPodAutoscalerStatus).DeepCopyInto(out.(*HorizontalPodAutoscalerStatus)) - return nil - }, InType: reflect.TypeOf(&HorizontalPodAutoscalerStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricSpec).DeepCopyInto(out.(*MetricSpec)) - return nil - }, InType: reflect.TypeOf(&MetricSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricStatus).DeepCopyInto(out.(*MetricStatus)) - return nil - }, InType: reflect.TypeOf(&MetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectMetricSource).DeepCopyInto(out.(*ObjectMetricSource)) - return nil - }, InType: reflect.TypeOf(&ObjectMetricSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectMetricStatus).DeepCopyInto(out.(*ObjectMetricStatus)) - return nil - }, InType: reflect.TypeOf(&ObjectMetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodsMetricSource).DeepCopyInto(out.(*PodsMetricSource)) - return nil - }, InType: reflect.TypeOf(&PodsMetricSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodsMetricStatus).DeepCopyInto(out.(*PodsMetricStatus)) - return nil - }, InType: reflect.TypeOf(&PodsMetricStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceMetricSource).DeepCopyInto(out.(*ResourceMetricSource)) - return nil - }, InType: reflect.TypeOf(&ResourceMetricSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceMetricStatus).DeepCopyInto(out.(*ResourceMetricStatus)) - return nil - }, InType: reflect.TypeOf(&ResourceMetricStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/BUILD index 246a99cfa..a7ca7a232 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/BUILD @@ -20,7 +20,6 @@ go_library( "//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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/doc.go index 52a1d9039..04491807f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true package v1 // import "k8s.io/api/batch/v1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/generated.proto index 08635ad2b..0f43d2fd5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/generated.proto @@ -128,7 +128,7 @@ message JobSpec { // and other jobs to not function correctly. However, You may see // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` // API. - // More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector // +optional optional bool manualSelector = 5; diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/register.go index 2cdfc98ca..32fa51f0e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Job{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/types.go index 4f3b83e8a..84abb1a90 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/types.go @@ -107,7 +107,7 @@ type JobSpec struct { // and other jobs to not function correctly. However, You may see // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` // API. - // More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector // +optional ManualSelector *bool `json:"manualSelector,omitempty" protobuf:"varint,5,opt,name=manualSelector"` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/types_swagger_doc_generated.go index 53b2d634f..0ddf4b116 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/types_swagger_doc_generated.go @@ -69,7 +69,7 @@ var map_JobSpec = map[string]string{ "activeDeadlineSeconds": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", "backoffLimit": "Specifies the number of retries before marking this job failed. Defaults to 6", "selector": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "manualSelector": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://git.k8s.io/community/contributors/design-proposals/selector-generation.md", + "manualSelector": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", "template": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/zz_generated.deepcopy.go index 8738bd5d2..fa9ff4f96 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1/zz_generated.deepcopy.go @@ -22,44 +22,9 @@ package v1 import ( meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Job).DeepCopyInto(out.(*Job)) - return nil - }, InType: reflect.TypeOf(&Job{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobCondition).DeepCopyInto(out.(*JobCondition)) - return nil - }, InType: reflect.TypeOf(&JobCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobList).DeepCopyInto(out.(*JobList)) - return nil - }, InType: reflect.TypeOf(&JobList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobSpec).DeepCopyInto(out.(*JobSpec)) - return nil - }, InType: reflect.TypeOf(&JobSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobStatus).DeepCopyInto(out.(*JobStatus)) - return nil - }, InType: reflect.TypeOf(&JobStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Job) DeepCopyInto(out *Job) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/BUILD index 998363888..3f0197b9c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/BUILD @@ -21,7 +21,6 @@ go_library( "//vendor/k8s.io/api/batch/v1: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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/doc.go index 653ebe040..43020ed05 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true package v1beta1 // import "k8s.io/api/batch/v1beta1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/generated.proto index f7b871632..11fa4e2ae 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/generated.proto @@ -71,7 +71,10 @@ message CronJobSpec { optional int64 startingDeadlineSeconds = 2; // Specifies how to treat concurrent executions of a Job. - // Defaults to Allow. + // Valid values are: + // - "Allow" (default): allows CronJobs to run concurrently; + // - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; + // - "Replace": cancels currently running job and replaces it with a new one // +optional optional string concurrencyPolicy = 3; diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/register.go index 569817d3e..226de49f4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &JobTemplate{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/types.go index ad13bba2f..cb5c9bad2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/types.go @@ -100,7 +100,10 @@ type CronJobSpec struct { StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty" protobuf:"varint,2,opt,name=startingDeadlineSeconds"` // Specifies how to treat concurrent executions of a Job. - // Defaults to Allow. + // Valid values are: + // - "Allow" (default): allows CronJobs to run concurrently; + // - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; + // - "Replace": cancels currently running job and replaces it with a new one // +optional ConcurrencyPolicy ConcurrencyPolicy `json:"concurrencyPolicy,omitempty" protobuf:"bytes,3,opt,name=concurrencyPolicy,casttype=ConcurrencyPolicy"` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go index f4c74e432..3b53ac08a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go @@ -52,7 +52,7 @@ var map_CronJobSpec = map[string]string{ "": "CronJobSpec describes how the job execution will look like and when it will actually run.", "schedule": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", "startingDeadlineSeconds": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "concurrencyPolicy": "Specifies how to treat concurrent executions of a Job. Defaults to Allow.", + "concurrencyPolicy": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", "suspend": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", "jobTemplate": "Specifies the job that will be created when executing a CronJob.", "successfulJobsHistoryLimit": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go index c730ca982..0f8562f8f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go @@ -23,48 +23,9 @@ package v1beta1 import ( v1 "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJob).DeepCopyInto(out.(*CronJob)) - return nil - }, InType: reflect.TypeOf(&CronJob{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJobList).DeepCopyInto(out.(*CronJobList)) - return nil - }, InType: reflect.TypeOf(&CronJobList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJobSpec).DeepCopyInto(out.(*CronJobSpec)) - return nil - }, InType: reflect.TypeOf(&CronJobSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJobStatus).DeepCopyInto(out.(*CronJobStatus)) - return nil - }, InType: reflect.TypeOf(&CronJobStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobTemplate).DeepCopyInto(out.(*JobTemplate)) - return nil - }, InType: reflect.TypeOf(&JobTemplate{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobTemplateSpec).DeepCopyInto(out.(*JobTemplateSpec)) - return nil - }, InType: reflect.TypeOf(&JobTemplateSpec{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CronJob) DeepCopyInto(out *CronJob) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/BUILD index 6c468eaa4..0fc0ab57a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/BUILD @@ -21,7 +21,6 @@ go_library( "//vendor/k8s.io/api/batch/v1: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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/doc.go index 288275d6e..f4ed01ad8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true package v2alpha1 // import "k8s.io/api/batch/v2alpha1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/generated.proto index 0bdb247e3..cc90d4190 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/generated.proto @@ -71,7 +71,10 @@ message CronJobSpec { optional int64 startingDeadlineSeconds = 2; // Specifies how to treat concurrent executions of a Job. - // Defaults to Allow. + // Valid values are: + // - "Allow" (default): allows CronJobs to run concurrently; + // - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; + // - "Replace": cancels currently running job and replaces it with a new one // +optional optional string concurrencyPolicy = 3; diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/register.go index 4b02c0f48..ac7fa5087 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &JobTemplate{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/types.go index 451df40e6..cccff94ff 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/types.go @@ -100,7 +100,10 @@ type CronJobSpec struct { StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty" protobuf:"varint,2,opt,name=startingDeadlineSeconds"` // Specifies how to treat concurrent executions of a Job. - // Defaults to Allow. + // Valid values are: + // - "Allow" (default): allows CronJobs to run concurrently; + // - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; + // - "Replace": cancels currently running job and replaces it with a new one // +optional ConcurrencyPolicy ConcurrencyPolicy `json:"concurrencyPolicy,omitempty" protobuf:"bytes,3,opt,name=concurrencyPolicy,casttype=ConcurrencyPolicy"` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go index 2b3ed4c56..d166b807f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go @@ -52,7 +52,7 @@ var map_CronJobSpec = map[string]string{ "": "CronJobSpec describes how the job execution will look like and when it will actually run.", "schedule": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", "startingDeadlineSeconds": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "concurrencyPolicy": "Specifies how to treat concurrent executions of a Job. Defaults to Allow.", + "concurrencyPolicy": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", "suspend": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", "jobTemplate": "Specifies the job that will be created when executing a CronJob.", "successfulJobsHistoryLimit": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go index b572f9ca3..5474235d1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go @@ -23,48 +23,9 @@ package v2alpha1 import ( v1 "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJob).DeepCopyInto(out.(*CronJob)) - return nil - }, InType: reflect.TypeOf(&CronJob{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJobList).DeepCopyInto(out.(*CronJobList)) - return nil - }, InType: reflect.TypeOf(&CronJobList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJobSpec).DeepCopyInto(out.(*CronJobSpec)) - return nil - }, InType: reflect.TypeOf(&CronJobSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CronJobStatus).DeepCopyInto(out.(*CronJobStatus)) - return nil - }, InType: reflect.TypeOf(&CronJobStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobTemplate).DeepCopyInto(out.(*JobTemplate)) - return nil - }, InType: reflect.TypeOf(&JobTemplate{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JobTemplateSpec).DeepCopyInto(out.(*JobTemplateSpec)) - return nil - }, InType: reflect.TypeOf(&JobTemplateSpec{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CronJob) DeepCopyInto(out *CronJob) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/BUILD index 95378e3ff..4c94dd064 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/BUILD @@ -20,7 +20,6 @@ go_library( "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/doc.go index d98ee7c3d..fb23aadb0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=certificates.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/register.go index b5ba3d7ec..b4f3af9b9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/register.go @@ -46,7 +46,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &CertificateSigningRequest{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go index 6ecc13118..de0715db6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go @@ -21,44 +21,9 @@ limitations under the License. package v1beta1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequest).DeepCopyInto(out.(*CertificateSigningRequest)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequest{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequestCondition).DeepCopyInto(out.(*CertificateSigningRequestCondition)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequestCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequestList).DeepCopyInto(out.(*CertificateSigningRequestList)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequestList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequestSpec).DeepCopyInto(out.(*CertificateSigningRequestSpec)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequestSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CertificateSigningRequestStatus).DeepCopyInto(out.(*CertificateSigningRequestStatus)) - return nil - }, InType: reflect.TypeOf(&CertificateSigningRequestStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CertificateSigningRequest) DeepCopyInto(out *CertificateSigningRequest) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/BUILD index da0d5bf6a..2ffdd3453 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/BUILD @@ -38,7 +38,6 @@ go_library( "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/annotation_key_constants.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/annotation_key_constants.go index e623913fd..de4e3cee4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/annotation_key_constants.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/annotation_key_constants.go @@ -45,12 +45,6 @@ const ( // to one container of a pod. SeccompContainerAnnotationKeyPrefix string = "container.seccomp.security.alpha.kubernetes.io/" - // CreatedByAnnotation represents the key used to store the spec(json) - // used to create the resource. - // This field is deprecated in favor of ControllerRef (see #44407). - // TODO(#50720): Remove this field in v1.9. - CreatedByAnnotation = "kubernetes.io/created-by" - // PreferAvoidPodsAnnotationKey represents the key of preferAvoidPods data (json serialized) // in the Annotations of a Node. PreferAvoidPodsAnnotationKey string = "scheduler.alpha.kubernetes.io/preferAvoidPods" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/doc.go index a31af9ea4..96994c624 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:openapi-gen=true -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package v1 is the v1 version of the core API. package v1 // import "k8s.io/api/core/v1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/generated.pb.go index 14075df3c..1cd0bdc71 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/generated.pb.go @@ -158,6 +158,7 @@ limitations under the License. Probe ProjectedVolumeSource QuobyteVolumeSource + RBDPersistentVolumeSource RBDVolumeSource RangeAllocation ReplicationController @@ -172,6 +173,7 @@ limitations under the License. ResourceQuotaStatus ResourceRequirements SELinuxOptions + ScaleIOPersistentVolumeSource ScaleIOVolumeSource Secret SecretEnvSource @@ -798,198 +800,210 @@ func (m *QuobyteVolumeSource) Reset() { *m = QuobyteVolumeSou func (*QuobyteVolumeSource) ProtoMessage() {} func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{132} } +func (m *RBDPersistentVolumeSource) Reset() { *m = RBDPersistentVolumeSource{} } +func (*RBDPersistentVolumeSource) ProtoMessage() {} +func (*RBDPersistentVolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{133} +} + func (m *RBDVolumeSource) Reset() { *m = RBDVolumeSource{} } func (*RBDVolumeSource) ProtoMessage() {} -func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{133} } +func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{134} } func (m *RangeAllocation) Reset() { *m = RangeAllocation{} } func (*RangeAllocation) ProtoMessage() {} -func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{134} } +func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{135} } func (m *ReplicationController) Reset() { *m = ReplicationController{} } func (*ReplicationController) ProtoMessage() {} -func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{135} } +func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } func (m *ReplicationControllerCondition) Reset() { *m = ReplicationControllerCondition{} } func (*ReplicationControllerCondition) ProtoMessage() {} func (*ReplicationControllerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{136} + return fileDescriptorGenerated, []int{137} } func (m *ReplicationControllerList) Reset() { *m = ReplicationControllerList{} } func (*ReplicationControllerList) ProtoMessage() {} func (*ReplicationControllerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{137} + return fileDescriptorGenerated, []int{138} } func (m *ReplicationControllerSpec) Reset() { *m = ReplicationControllerSpec{} } func (*ReplicationControllerSpec) ProtoMessage() {} func (*ReplicationControllerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{138} + return fileDescriptorGenerated, []int{139} } func (m *ReplicationControllerStatus) Reset() { *m = ReplicationControllerStatus{} } func (*ReplicationControllerStatus) ProtoMessage() {} func (*ReplicationControllerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{139} + return fileDescriptorGenerated, []int{140} } func (m *ResourceFieldSelector) Reset() { *m = ResourceFieldSelector{} } func (*ResourceFieldSelector) ProtoMessage() {} -func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } +func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } func (m *ResourceQuota) Reset() { *m = ResourceQuota{} } func (*ResourceQuota) ProtoMessage() {} -func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } +func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } func (m *ResourceQuotaList) Reset() { *m = ResourceQuotaList{} } func (*ResourceQuotaList) ProtoMessage() {} -func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } +func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } func (m *ResourceQuotaSpec) Reset() { *m = ResourceQuotaSpec{} } func (*ResourceQuotaSpec) ProtoMessage() {} -func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } +func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } func (m *ResourceQuotaStatus) Reset() { *m = ResourceQuotaStatus{} } func (*ResourceQuotaStatus) ProtoMessage() {} -func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } +func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} } func (*ResourceRequirements) ProtoMessage() {} -func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } +func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } func (m *SELinuxOptions) Reset() { *m = SELinuxOptions{} } func (*SELinuxOptions) ProtoMessage() {} -func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } +func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } + +func (m *ScaleIOPersistentVolumeSource) Reset() { *m = ScaleIOPersistentVolumeSource{} } +func (*ScaleIOPersistentVolumeSource) ProtoMessage() {} +func (*ScaleIOPersistentVolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{148} +} func (m *ScaleIOVolumeSource) Reset() { *m = ScaleIOVolumeSource{} } func (*ScaleIOVolumeSource) ProtoMessage() {} -func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } +func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } func (m *Secret) Reset() { *m = Secret{} } func (*Secret) ProtoMessage() {} -func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } +func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } func (m *SecretEnvSource) Reset() { *m = SecretEnvSource{} } func (*SecretEnvSource) ProtoMessage() {} -func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } +func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } func (m *SecretKeySelector) Reset() { *m = SecretKeySelector{} } func (*SecretKeySelector) ProtoMessage() {} -func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } +func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } func (m *SecretList) Reset() { *m = SecretList{} } func (*SecretList) ProtoMessage() {} -func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } +func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } func (m *SecretProjection) Reset() { *m = SecretProjection{} } func (*SecretProjection) ProtoMessage() {} -func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } +func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } func (m *SecretReference) Reset() { *m = SecretReference{} } func (*SecretReference) ProtoMessage() {} -func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } +func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } func (m *SecretVolumeSource) Reset() { *m = SecretVolumeSource{} } func (*SecretVolumeSource) ProtoMessage() {} -func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } +func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } func (m *SecurityContext) Reset() { *m = SecurityContext{} } func (*SecurityContext) ProtoMessage() {} -func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } +func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } func (m *SerializedReference) Reset() { *m = SerializedReference{} } func (*SerializedReference) ProtoMessage() {} -func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } +func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } func (m *Service) Reset() { *m = Service{} } func (*Service) ProtoMessage() {} -func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } +func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } func (m *ServiceAccount) Reset() { *m = ServiceAccount{} } func (*ServiceAccount) ProtoMessage() {} -func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } +func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } func (m *ServiceAccountList) Reset() { *m = ServiceAccountList{} } func (*ServiceAccountList) ProtoMessage() {} -func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } +func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } func (m *ServiceList) Reset() { *m = ServiceList{} } func (*ServiceList) ProtoMessage() {} -func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } +func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } func (m *ServicePort) Reset() { *m = ServicePort{} } func (*ServicePort) ProtoMessage() {} -func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } +func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } func (m *ServiceProxyOptions) Reset() { *m = ServiceProxyOptions{} } func (*ServiceProxyOptions) ProtoMessage() {} -func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } +func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } func (m *ServiceSpec) Reset() { *m = ServiceSpec{} } func (*ServiceSpec) ProtoMessage() {} -func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } +func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } func (m *ServiceStatus) Reset() { *m = ServiceStatus{} } func (*ServiceStatus) ProtoMessage() {} -func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } +func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } func (m *SessionAffinityConfig) Reset() { *m = SessionAffinityConfig{} } func (*SessionAffinityConfig) ProtoMessage() {} -func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } +func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } func (m *StorageOSPersistentVolumeSource) Reset() { *m = StorageOSPersistentVolumeSource{} } func (*StorageOSPersistentVolumeSource) ProtoMessage() {} func (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{166} + return fileDescriptorGenerated, []int{168} } func (m *StorageOSVolumeSource) Reset() { *m = StorageOSVolumeSource{} } func (*StorageOSVolumeSource) ProtoMessage() {} -func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } +func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } func (m *Sysctl) Reset() { *m = Sysctl{} } func (*Sysctl) ProtoMessage() {} -func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } +func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } func (m *TCPSocketAction) Reset() { *m = TCPSocketAction{} } func (*TCPSocketAction) ProtoMessage() {} -func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } +func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } func (m *Taint) Reset() { *m = Taint{} } func (*Taint) ProtoMessage() {} -func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } +func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{172} } func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} -func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } +func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{173} } func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} -func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{172} } +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{174} } func (m *VolumeMount) Reset() { *m = VolumeMount{} } func (*VolumeMount) ProtoMessage() {} -func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{173} } +func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } func (m *VolumeProjection) Reset() { *m = VolumeProjection{} } func (*VolumeProjection) ProtoMessage() {} -func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{174} } +func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{176} } func (m *VolumeSource) Reset() { *m = VolumeSource{} } func (*VolumeSource) ProtoMessage() {} -func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } +func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{177} } func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} } func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {} func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{176} + return fileDescriptorGenerated, []int{178} } func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} } func (*WeightedPodAffinityTerm) ProtoMessage() {} func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{177} + return fileDescriptorGenerated, []int{179} } func init() { @@ -1126,6 +1140,7 @@ func init() { proto.RegisterType((*Probe)(nil), "k8s.io.api.core.v1.Probe") proto.RegisterType((*ProjectedVolumeSource)(nil), "k8s.io.api.core.v1.ProjectedVolumeSource") proto.RegisterType((*QuobyteVolumeSource)(nil), "k8s.io.api.core.v1.QuobyteVolumeSource") + proto.RegisterType((*RBDPersistentVolumeSource)(nil), "k8s.io.api.core.v1.RBDPersistentVolumeSource") proto.RegisterType((*RBDVolumeSource)(nil), "k8s.io.api.core.v1.RBDVolumeSource") proto.RegisterType((*RangeAllocation)(nil), "k8s.io.api.core.v1.RangeAllocation") proto.RegisterType((*ReplicationController)(nil), "k8s.io.api.core.v1.ReplicationController") @@ -1140,6 +1155,7 @@ func init() { proto.RegisterType((*ResourceQuotaStatus)(nil), "k8s.io.api.core.v1.ResourceQuotaStatus") proto.RegisterType((*ResourceRequirements)(nil), "k8s.io.api.core.v1.ResourceRequirements") proto.RegisterType((*SELinuxOptions)(nil), "k8s.io.api.core.v1.SELinuxOptions") + proto.RegisterType((*ScaleIOPersistentVolumeSource)(nil), "k8s.io.api.core.v1.ScaleIOPersistentVolumeSource") proto.RegisterType((*ScaleIOVolumeSource)(nil), "k8s.io.api.core.v1.ScaleIOVolumeSource") proto.RegisterType((*Secret)(nil), "k8s.io.api.core.v1.Secret") proto.RegisterType((*SecretEnvSource)(nil), "k8s.io.api.core.v1.SecretEnvSource") @@ -7541,7 +7557,7 @@ func (m *QuobyteVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *RBDVolumeSource) Marshal() (dAtA []byte, err error) { +func (m *RBDPersistentVolumeSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -7551,7 +7567,7 @@ func (m *RBDVolumeSource) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { +func (m *RBDPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -7612,6 +7628,77 @@ func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *RBDVolumeSource) 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 *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.CephMonitors) > 0 { + for _, s := range m.CephMonitors { + 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) + } + } + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDImage))) + i += copy(dAtA[i:], m.RBDImage) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType))) + i += copy(dAtA[i:], m.FSType) + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDPool))) + i += copy(dAtA[i:], m.RBDPool) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RadosUser))) + i += copy(dAtA[i:], m.RadosUser) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Keyring))) + i += copy(dAtA[i:], m.Keyring) + if m.SecretRef != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) + n150, err := m.SecretRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n150 + } + dAtA[i] = 0x40 + i++ + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + return i, nil +} + func (m *RangeAllocation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7630,11 +7717,11 @@ func (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n150, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n151, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n150 + i += n151 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Range))) @@ -7666,27 +7753,27 @@ func (m *ReplicationController) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n151, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n152, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n151 + i += n152 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n152, err := m.Spec.MarshalTo(dAtA[i:]) + n153, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n152 + i += n153 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n153, err := m.Status.MarshalTo(dAtA[i:]) + n154, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n153 + i += n154 return i, nil } @@ -7716,11 +7803,11 @@ func (m *ReplicationControllerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n154, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n155, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n154 + i += n155 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7750,11 +7837,11 @@ func (m *ReplicationControllerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n155, err := m.ListMeta.MarshalTo(dAtA[i:]) + n156, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n155 + i += n156 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7816,11 +7903,11 @@ func (m *ReplicationControllerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n156, err := m.Template.MarshalTo(dAtA[i:]) + n157, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n156 + i += n157 } dAtA[i] = 0x20 i++ @@ -7899,11 +7986,11 @@ func (m *ResourceFieldSelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Divisor.Size())) - n157, err := m.Divisor.MarshalTo(dAtA[i:]) + n158, err := m.Divisor.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n157 + i += n158 return i, nil } @@ -7925,27 +8012,27 @@ func (m *ResourceQuota) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n158, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n159, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n158 + i += n159 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n159, err := m.Spec.MarshalTo(dAtA[i:]) + n160, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n159 + i += n160 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n160, err := m.Status.MarshalTo(dAtA[i:]) + n161, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n160 + i += n161 return i, nil } @@ -7967,11 +8054,11 @@ func (m *ResourceQuotaList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n161, err := m.ListMeta.MarshalTo(dAtA[i:]) + n162, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n161 + i += n162 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8026,11 +8113,11 @@ func (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n162, err := (&v).MarshalTo(dAtA[i:]) + n163, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n162 + i += n163 } } if len(m.Scopes) > 0 { @@ -8090,11 +8177,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n163, err := (&v).MarshalTo(dAtA[i:]) + n164, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n163 + i += n164 } } if len(m.Used) > 0 { @@ -8121,11 +8208,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n164, err := (&v).MarshalTo(dAtA[i:]) + n165, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n164 + i += n165 } } return i, nil @@ -8170,11 +8257,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n165, err := (&v).MarshalTo(dAtA[i:]) + n166, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n165 + i += n166 } } if len(m.Requests) > 0 { @@ -8201,11 +8288,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n166, err := (&v).MarshalTo(dAtA[i:]) + n167, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n166 + i += n167 } } return i, nil @@ -8245,6 +8332,78 @@ func (m *SELinuxOptions) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *ScaleIOPersistentVolumeSource) 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 *ScaleIOPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Gateway))) + i += copy(dAtA[i:], m.Gateway) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.System))) + i += copy(dAtA[i:], m.System) + if m.SecretRef != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) + n168, err := m.SecretRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n168 + } + dAtA[i] = 0x20 + i++ + if m.SSLEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ProtectionDomain))) + i += copy(dAtA[i:], m.ProtectionDomain) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePool))) + i += copy(dAtA[i:], m.StoragePool) + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageMode))) + i += copy(dAtA[i:], m.StorageMode) + dAtA[i] = 0x42 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName))) + i += copy(dAtA[i:], m.VolumeName) + dAtA[i] = 0x4a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType))) + i += copy(dAtA[i:], m.FSType) + dAtA[i] = 0x50 + i++ + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + return i, nil +} + func (m *ScaleIOVolumeSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -8272,11 +8431,11 @@ func (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n167, err := m.SecretRef.MarshalTo(dAtA[i:]) + n169, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n167 + i += n169 } dAtA[i] = 0x20 i++ @@ -8335,11 +8494,11 @@ func (m *Secret) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n168, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n170, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n168 + i += n170 if len(m.Data) > 0 { keysForData := make([]string, 0, len(m.Data)) for k := range m.Data { @@ -8415,11 +8574,11 @@ func (m *SecretEnvSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n169, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n171, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n169 + i += n171 if m.Optional != nil { dAtA[i] = 0x10 i++ @@ -8451,11 +8610,11 @@ func (m *SecretKeySelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n170, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n172, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n170 + i += n172 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) @@ -8491,11 +8650,11 @@ func (m *SecretList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n171, err := m.ListMeta.MarshalTo(dAtA[i:]) + n173, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n171 + i += n173 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8529,11 +8688,11 @@ func (m *SecretProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n172, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n174, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n172 + i += n174 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8653,11 +8812,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Capabilities.Size())) - n173, err := m.Capabilities.MarshalTo(dAtA[i:]) + n175, err := m.Capabilities.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n173 + i += n175 } if m.Privileged != nil { dAtA[i] = 0x10 @@ -8673,11 +8832,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n174, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n176, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n174 + i += n176 } if m.RunAsUser != nil { dAtA[i] = 0x20 @@ -8735,11 +8894,11 @@ func (m *SerializedReference) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Reference.Size())) - n175, err := m.Reference.MarshalTo(dAtA[i:]) + n177, err := m.Reference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n175 + i += n177 return i, nil } @@ -8761,27 +8920,27 @@ func (m *Service) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n176, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n178, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n176 + i += n178 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n177, err := m.Spec.MarshalTo(dAtA[i:]) + n179, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n177 + i += n179 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n178, err := m.Status.MarshalTo(dAtA[i:]) + n180, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n178 + i += n180 return i, nil } @@ -8803,11 +8962,11 @@ func (m *ServiceAccount) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n179, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n181, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n179 + i += n181 if len(m.Secrets) > 0 { for _, msg := range m.Secrets { dAtA[i] = 0x12 @@ -8863,11 +9022,11 @@ func (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n180, err := m.ListMeta.MarshalTo(dAtA[i:]) + n182, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n180 + i += n182 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8901,11 +9060,11 @@ func (m *ServiceList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n181, err := m.ListMeta.MarshalTo(dAtA[i:]) + n183, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n181 + i += n183 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8950,11 +9109,11 @@ func (m *ServicePort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetPort.Size())) - n182, err := m.TargetPort.MarshalTo(dAtA[i:]) + n184, err := m.TargetPort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n182 + i += n184 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodePort)) @@ -9101,11 +9260,11 @@ func (m *ServiceSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SessionAffinityConfig.Size())) - n183, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) + n185, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n183 + i += n185 } return i, nil } @@ -9128,11 +9287,11 @@ func (m *ServiceStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LoadBalancer.Size())) - n184, err := m.LoadBalancer.MarshalTo(dAtA[i:]) + n186, err := m.LoadBalancer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n184 + i += n186 return i, nil } @@ -9155,11 +9314,11 @@ func (m *SessionAffinityConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ClientIP.Size())) - n185, err := m.ClientIP.MarshalTo(dAtA[i:]) + n187, err := m.ClientIP.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n185 + i += n187 } return i, nil } @@ -9203,11 +9362,11 @@ func (m *StorageOSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n186, err := m.SecretRef.MarshalTo(dAtA[i:]) + n188, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n186 + i += n188 } return i, nil } @@ -9251,11 +9410,11 @@ func (m *StorageOSVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n187, err := m.SecretRef.MarshalTo(dAtA[i:]) + n189, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n187 + i += n189 } return i, nil } @@ -9304,11 +9463,11 @@ func (m *TCPSocketAction) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n188, err := m.Port.MarshalTo(dAtA[i:]) + n190, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n188 + i += n190 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) @@ -9347,11 +9506,11 @@ func (m *Taint) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TimeAdded.Size())) - n189, err := m.TimeAdded.MarshalTo(dAtA[i:]) + n191, err := m.TimeAdded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n189 + i += n191 } return i, nil } @@ -9417,11 +9576,11 @@ func (m *Volume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VolumeSource.Size())) - n190, err := m.VolumeSource.MarshalTo(dAtA[i:]) + n192, err := m.VolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n190 + i += n192 return i, nil } @@ -9488,31 +9647,31 @@ func (m *VolumeProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n191, err := m.Secret.MarshalTo(dAtA[i:]) + n193, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n191 + i += n193 } if m.DownwardAPI != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n192, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n194, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n192 + i += n194 } if m.ConfigMap != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n193, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n195, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n193 + i += n195 } return i, nil } @@ -9536,151 +9695,151 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n194, err := m.HostPath.MarshalTo(dAtA[i:]) + n196, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n194 + i += n196 } if m.EmptyDir != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) - n195, err := m.EmptyDir.MarshalTo(dAtA[i:]) + n197, err := m.EmptyDir.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n195 + i += n197 } if m.GCEPersistentDisk != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n196, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) + n198, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n196 + i += n198 } if m.AWSElasticBlockStore != nil { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n197, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) + n199, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n197 + i += n199 } if m.GitRepo != nil { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) - n198, err := m.GitRepo.MarshalTo(dAtA[i:]) + n200, err := m.GitRepo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n198 + i += n200 } if m.Secret != nil { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n199, err := m.Secret.MarshalTo(dAtA[i:]) + n201, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n199 + i += n201 } if m.NFS != nil { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n200, err := m.NFS.MarshalTo(dAtA[i:]) + n202, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n200 + i += n202 } if m.ISCSI != nil { dAtA[i] = 0x42 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n201, err := m.ISCSI.MarshalTo(dAtA[i:]) + n203, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n201 + i += n203 } if m.Glusterfs != nil { dAtA[i] = 0x4a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n202, err := m.Glusterfs.MarshalTo(dAtA[i:]) + n204, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n202 + i += n204 } if m.PersistentVolumeClaim != nil { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) - n203, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) + n205, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n203 + i += n205 } if m.RBD != nil { dAtA[i] = 0x5a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n204, err := m.RBD.MarshalTo(dAtA[i:]) + n206, err := m.RBD.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n204 + i += n206 } if m.FlexVolume != nil { dAtA[i] = 0x62 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n205, err := m.FlexVolume.MarshalTo(dAtA[i:]) + n207, err := m.FlexVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n205 + i += n207 } if m.Cinder != nil { dAtA[i] = 0x6a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n206, err := m.Cinder.MarshalTo(dAtA[i:]) + n208, err := m.Cinder.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n206 + i += n208 } if m.CephFS != nil { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n207, err := m.CephFS.MarshalTo(dAtA[i:]) + n209, err := m.CephFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n207 + i += n209 } if m.Flocker != nil { dAtA[i] = 0x7a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n208, err := m.Flocker.MarshalTo(dAtA[i:]) + n210, err := m.Flocker.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n208 + i += n210 } if m.DownwardAPI != nil { dAtA[i] = 0x82 @@ -9688,11 +9847,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n209, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n211, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n209 + i += n211 } if m.FC != nil { dAtA[i] = 0x8a @@ -9700,11 +9859,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n210, err := m.FC.MarshalTo(dAtA[i:]) + n212, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n210 + i += n212 } if m.AzureFile != nil { dAtA[i] = 0x92 @@ -9712,11 +9871,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n211, err := m.AzureFile.MarshalTo(dAtA[i:]) + n213, err := m.AzureFile.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n211 + i += n213 } if m.ConfigMap != nil { dAtA[i] = 0x9a @@ -9724,11 +9883,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n212, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n214, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n212 + i += n214 } if m.VsphereVolume != nil { dAtA[i] = 0xa2 @@ -9736,11 +9895,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n213, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + n215, err := m.VsphereVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n213 + i += n215 } if m.Quobyte != nil { dAtA[i] = 0xaa @@ -9748,11 +9907,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n214, err := m.Quobyte.MarshalTo(dAtA[i:]) + n216, err := m.Quobyte.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n214 + i += n216 } if m.AzureDisk != nil { dAtA[i] = 0xb2 @@ -9760,11 +9919,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n215, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n217, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n215 + i += n217 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0xba @@ -9772,11 +9931,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n216, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n218, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n216 + i += n218 } if m.PortworxVolume != nil { dAtA[i] = 0xc2 @@ -9784,11 +9943,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n217, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n219, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n217 + i += n219 } if m.ScaleIO != nil { dAtA[i] = 0xca @@ -9796,11 +9955,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n218, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n220, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n218 + i += n220 } if m.Projected != nil { dAtA[i] = 0xd2 @@ -9808,11 +9967,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Projected.Size())) - n219, err := m.Projected.MarshalTo(dAtA[i:]) + n221, err := m.Projected.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n219 + i += n221 } if m.StorageOS != nil { dAtA[i] = 0xda @@ -9820,11 +9979,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n220, err := m.StorageOS.MarshalTo(dAtA[i:]) + n222, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n220 + i += n222 } return i, nil } @@ -9884,11 +10043,11 @@ func (m *WeightedPodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodAffinityTerm.Size())) - n221, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) + n223, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n221 + i += n223 return i, nil } @@ -12242,6 +12401,33 @@ func (m *QuobyteVolumeSource) Size() (n int) { return n } +func (m *RBDPersistentVolumeSource) Size() (n int) { + var l int + _ = l + if len(m.CephMonitors) > 0 { + for _, s := range m.CephMonitors { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = len(m.RBDImage) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.FSType) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.RBDPool) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.RadosUser) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Keyring) + n += 1 + l + sovGenerated(uint64(l)) + if m.SecretRef != nil { + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 2 + return n +} + func (m *RBDVolumeSource) Size() (n int) { var l int _ = l @@ -12485,6 +12671,32 @@ func (m *SELinuxOptions) Size() (n int) { return n } +func (m *ScaleIOPersistentVolumeSource) Size() (n int) { + var l int + _ = l + l = len(m.Gateway) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.System) + n += 1 + l + sovGenerated(uint64(l)) + if m.SecretRef != nil { + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 2 + l = len(m.ProtectionDomain) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.StoragePool) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.StorageMode) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.VolumeName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.FSType) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + return n +} + func (m *ScaleIOVolumeSource) Size() (n int) { var l int _ = l @@ -14520,7 +14732,7 @@ func (this *PersistentVolumeSource) String() string { `HostPath:` + strings.Replace(fmt.Sprintf("%v", this.HostPath), "HostPathVolumeSource", "HostPathVolumeSource", 1) + `,`, `Glusterfs:` + strings.Replace(fmt.Sprintf("%v", this.Glusterfs), "GlusterfsVolumeSource", "GlusterfsVolumeSource", 1) + `,`, `NFS:` + strings.Replace(fmt.Sprintf("%v", this.NFS), "NFSVolumeSource", "NFSVolumeSource", 1) + `,`, - `RBD:` + strings.Replace(fmt.Sprintf("%v", this.RBD), "RBDVolumeSource", "RBDVolumeSource", 1) + `,`, + `RBD:` + strings.Replace(fmt.Sprintf("%v", this.RBD), "RBDPersistentVolumeSource", "RBDPersistentVolumeSource", 1) + `,`, `ISCSI:` + strings.Replace(fmt.Sprintf("%v", this.ISCSI), "ISCSIVolumeSource", "ISCSIVolumeSource", 1) + `,`, `Cinder:` + strings.Replace(fmt.Sprintf("%v", this.Cinder), "CinderVolumeSource", "CinderVolumeSource", 1) + `,`, `CephFS:` + strings.Replace(fmt.Sprintf("%v", this.CephFS), "CephFSPersistentVolumeSource", "CephFSPersistentVolumeSource", 1) + `,`, @@ -14533,7 +14745,7 @@ func (this *PersistentVolumeSource) String() string { `AzureDisk:` + strings.Replace(fmt.Sprintf("%v", this.AzureDisk), "AzureDiskVolumeSource", "AzureDiskVolumeSource", 1) + `,`, `PhotonPersistentDisk:` + strings.Replace(fmt.Sprintf("%v", this.PhotonPersistentDisk), "PhotonPersistentDiskVolumeSource", "PhotonPersistentDiskVolumeSource", 1) + `,`, `PortworxVolume:` + strings.Replace(fmt.Sprintf("%v", this.PortworxVolume), "PortworxVolumeSource", "PortworxVolumeSource", 1) + `,`, - `ScaleIO:` + strings.Replace(fmt.Sprintf("%v", this.ScaleIO), "ScaleIOVolumeSource", "ScaleIOVolumeSource", 1) + `,`, + `ScaleIO:` + strings.Replace(fmt.Sprintf("%v", this.ScaleIO), "ScaleIOPersistentVolumeSource", "ScaleIOPersistentVolumeSource", 1) + `,`, `Local:` + strings.Replace(fmt.Sprintf("%v", this.Local), "LocalVolumeSource", "LocalVolumeSource", 1) + `,`, `StorageOS:` + strings.Replace(fmt.Sprintf("%v", this.StorageOS), "StorageOSPersistentVolumeSource", "StorageOSPersistentVolumeSource", 1) + `,`, `}`, @@ -14944,6 +15156,23 @@ func (this *QuobyteVolumeSource) String() string { }, "") return s } +func (this *RBDPersistentVolumeSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RBDPersistentVolumeSource{`, + `CephMonitors:` + fmt.Sprintf("%v", this.CephMonitors) + `,`, + `RBDImage:` + fmt.Sprintf("%v", this.RBDImage) + `,`, + `FSType:` + fmt.Sprintf("%v", this.FSType) + `,`, + `RBDPool:` + fmt.Sprintf("%v", this.RBDPool) + `,`, + `RadosUser:` + fmt.Sprintf("%v", this.RadosUser) + `,`, + `Keyring:` + fmt.Sprintf("%v", this.Keyring) + `,`, + `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "SecretReference", 1) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `}`, + }, "") + return s +} func (this *RBDVolumeSource) String() string { if this == nil { return "nil" @@ -15179,6 +15408,25 @@ func (this *SELinuxOptions) String() string { }, "") return s } +func (this *ScaleIOPersistentVolumeSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ScaleIOPersistentVolumeSource{`, + `Gateway:` + fmt.Sprintf("%v", this.Gateway) + `,`, + `System:` + fmt.Sprintf("%v", this.System) + `,`, + `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "SecretReference", 1) + `,`, + `SSLEnabled:` + fmt.Sprintf("%v", this.SSLEnabled) + `,`, + `ProtectionDomain:` + fmt.Sprintf("%v", this.ProtectionDomain) + `,`, + `StoragePool:` + fmt.Sprintf("%v", this.StoragePool) + `,`, + `StorageMode:` + fmt.Sprintf("%v", this.StorageMode) + `,`, + `VolumeName:` + fmt.Sprintf("%v", this.VolumeName) + `,`, + `FSType:` + fmt.Sprintf("%v", this.FSType) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `}`, + }, "") + return s +} func (this *ScaleIOVolumeSource) String() string { if this == nil { return "nil" @@ -32302,7 +32550,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.RBD == nil { - m.RBD = &RBDVolumeSource{} + m.RBD = &RBDPersistentVolumeSource{} } if err := m.RBD.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -32731,7 +32979,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.ScaleIO == nil { - m.ScaleIO = &ScaleIOVolumeSource{} + m.ScaleIO = &ScaleIOPersistentVolumeSource{} } if err := m.ScaleIO.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -37868,7 +38116,7 @@ func (m *QuobyteVolumeSource) Unmarshal(dAtA []byte) error { } return nil } -func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { +func (m *RBDPersistentVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -37891,10 +38139,10 @@ func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RBDVolumeSource: wiretype end group for non-group") + return fmt.Errorf("proto: RBDPersistentVolumeSource: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RBDVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RBDPersistentVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -38098,7 +38346,7 @@ func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.SecretRef == nil { - m.SecretRef = &LocalObjectReference{} + m.SecretRef = &SecretReference{} } if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -38145,7 +38393,7 @@ func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { } return nil } -func (m *RangeAllocation) Unmarshal(dAtA []byte) error { +func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -38168,17 +38416,17 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RangeAllocation: wiretype end group for non-group") + return fmt.Errorf("proto: RBDVolumeSource: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RangeAllocation: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RBDVolumeSource: 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) + return fmt.Errorf("proto: wrong wireType = %d for field CephMonitors", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -38188,25 +38436,24 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.CephMonitors = append(m.CephMonitors, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Range", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RBDImage", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -38231,13 +38478,13 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Range = string(dAtA[iNdEx:postIndex]) + m.RBDImage = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FSType", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -38247,78 +38494,55 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} - } + m.FSType = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RBDPool", wireType) } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + 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 + } } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReplicationController) 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 + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated } - if iNdEx >= l { + postIndex := iNdEx + intStringLen + if postIndex > 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: ReplicationController: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReplicationController: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.RBDPool = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RadosUser", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -38328,27 +38552,26 @@ func (m *ReplicationController) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.RadosUser = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Keyring", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -38358,25 +38581,24 @@ func (m *ReplicationController) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Keyring = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -38400,7 +38622,310 @@ func (m *ReplicationController) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.SecretRef == nil { + m.SecretRef = &LocalObjectReference{} + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ReadOnly = bool(v != 0) + 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 *RangeAllocation) 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: RangeAllocation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RangeAllocation: 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 Range", 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.Range = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + 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 *ReplicationController) 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: ReplicationController: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicationController: 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 Spec", 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.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -40485,6 +41010,332 @@ func (m *SELinuxOptions) Unmarshal(dAtA []byte) error { } return nil } +func (m *ScaleIOPersistentVolumeSource) 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: ScaleIOPersistentVolumeSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ScaleIOPersistentVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gateway", 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.Gateway = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field System", 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.System = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", 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.SecretRef == nil { + m.SecretRef = &SecretReference{} + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SSLEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.SSLEnabled = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProtectionDomain", 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.ProtectionDomain = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StoragePool", 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.StoragePool = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorageMode", 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.StorageMode = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeName", 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.VolumeName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FSType", 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.FSType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ReadOnly = bool(v != 0) + 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 *ScaleIOVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -46344,745 +47195,749 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 11832 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x24, 0xd7, - 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x77, 0xb1, 0xe4, 0x10, 0x24, 0x17, 0xcb, 0xa6, - 0x44, 0x2e, 0x5f, 0x80, 0xb8, 0x24, 0x45, 0x5a, 0xa4, 0x28, 0x01, 0x18, 0x60, 0x17, 0xdc, 0xc5, - 0xee, 0xf0, 0x0e, 0x76, 0x57, 0xa4, 0x68, 0x7e, 0x6a, 0x4c, 0x5f, 0x00, 0x4d, 0x34, 0xba, 0x87, - 0xdd, 0x3d, 0xd8, 0x05, 0xcb, 0xaa, 0xfa, 0xa2, 0xc8, 0xca, 0x43, 0xfe, 0xe1, 0x4a, 0x54, 0x89, - 0x63, 0xa9, 0x9c, 0xaa, 0x3c, 0xca, 0x56, 0x9c, 0xa4, 0xe2, 0xc8, 0xb1, 0x1d, 0xc9, 0xa9, 0x38, - 0xce, 0xa3, 0xe4, 0x3f, 0x8a, 0x9d, 0x3f, 0x52, 0x95, 0x2b, 0x88, 0xb5, 0x4a, 0x25, 0xe5, 0x1f, - 0x49, 0x25, 0xf1, 0x2f, 0x23, 0x4e, 0x94, 0xba, 0xcf, 0xbe, 0xb7, 0xa7, 0x7b, 0x66, 0xb0, 0xdc, - 0x05, 0x29, 0x95, 0xff, 0xcd, 0x9c, 0x73, 0xee, 0xb9, 0xb7, 0xef, 0xe3, 0xdc, 0x73, 0xcf, 0x3d, - 0xe7, 0x5c, 0x78, 0x79, 0xf7, 0xa5, 0x78, 0xde, 0x0b, 0x17, 0x76, 0xdb, 0x9b, 0x24, 0x0a, 0x48, - 0x42, 0xe2, 0x85, 0x7d, 0x12, 0xb8, 0x61, 0xb4, 0x20, 0x10, 0x4e, 0xcb, 0x5b, 0x68, 0x86, 0x11, - 0x59, 0xd8, 0x7f, 0x76, 0x61, 0x9b, 0x04, 0x24, 0x72, 0x12, 0xe2, 0xce, 0xb7, 0xa2, 0x30, 0x09, - 0x11, 0xe2, 0x34, 0xf3, 0x4e, 0xcb, 0x9b, 0xa7, 0x34, 0xf3, 0xfb, 0xcf, 0xce, 0x3e, 0xb3, 0xed, - 0x25, 0x3b, 0xed, 0xcd, 0xf9, 0x66, 0xb8, 0xb7, 0xb0, 0x1d, 0x6e, 0x87, 0x0b, 0x8c, 0x74, 0xb3, - 0xbd, 0xc5, 0xfe, 0xb1, 0x3f, 0xec, 0x17, 0x67, 0x31, 0xbb, 0x9e, 0x56, 0x43, 0x6e, 0x25, 0x24, - 0x88, 0xbd, 0x30, 0x88, 0x9f, 0x71, 0x5a, 0x5e, 0x4c, 0xa2, 0x7d, 0x12, 0x2d, 0xb4, 0x76, 0xb7, - 0x29, 0x2e, 0x36, 0x09, 0x16, 0xf6, 0x9f, 0xdd, 0x24, 0x89, 0xd3, 0xd1, 0xa2, 0xd9, 0xe7, 0x53, - 0x76, 0x7b, 0x4e, 0x73, 0xc7, 0x0b, 0x48, 0x74, 0x20, 0x79, 0x2c, 0x44, 0x24, 0x0e, 0xdb, 0x51, - 0x93, 0x1c, 0xab, 0x54, 0xbc, 0xb0, 0x47, 0x12, 0x27, 0xe7, 0xeb, 0x67, 0x17, 0x8a, 0x4a, 0x45, - 0xed, 0x20, 0xf1, 0xf6, 0x3a, 0xab, 0xf9, 0x44, 0xaf, 0x02, 0x71, 0x73, 0x87, 0xec, 0x39, 0x1d, - 0xe5, 0x9e, 0x2b, 0x2a, 0xd7, 0x4e, 0x3c, 0x7f, 0xc1, 0x0b, 0x92, 0x38, 0x89, 0xb2, 0x85, 0xec, - 0xef, 0x59, 0x70, 0x76, 0xf1, 0x46, 0x63, 0xc5, 0x77, 0xe2, 0xc4, 0x6b, 0x2e, 0xf9, 0x61, 0x73, - 0xb7, 0x91, 0x84, 0x11, 0xb9, 0x1e, 0xfa, 0xed, 0x3d, 0xd2, 0x60, 0x1d, 0x81, 0x9e, 0x86, 0x91, - 0x7d, 0xf6, 0x7f, 0xad, 0x56, 0xb5, 0xce, 0x5a, 0xe7, 0x2a, 0x4b, 0x53, 0xdf, 0x39, 0x9c, 0xfb, - 0xc8, 0xed, 0xc3, 0xb9, 0x91, 0xeb, 0x02, 0x8e, 0x15, 0x05, 0x7a, 0x0c, 0x86, 0xb6, 0xe2, 0x8d, - 0x83, 0x16, 0xa9, 0x96, 0x18, 0xed, 0x84, 0xa0, 0x1d, 0x5a, 0x6d, 0x50, 0x28, 0x16, 0x58, 0xb4, - 0x00, 0x95, 0x96, 0x13, 0x25, 0x5e, 0xe2, 0x85, 0x41, 0xb5, 0x7c, 0xd6, 0x3a, 0x37, 0xb8, 0x34, - 0x2d, 0x48, 0x2b, 0x75, 0x89, 0xc0, 0x29, 0x0d, 0x6d, 0x46, 0x44, 0x1c, 0xf7, 0x6a, 0xe0, 0x1f, - 0x54, 0x07, 0xce, 0x5a, 0xe7, 0x46, 0xd2, 0x66, 0x60, 0x01, 0xc7, 0x8a, 0xc2, 0xfe, 0xc5, 0x12, - 0x8c, 0x2c, 0x6e, 0x6d, 0x79, 0x81, 0x97, 0x1c, 0xa0, 0xeb, 0x30, 0x16, 0x84, 0x2e, 0x91, 0xff, - 0xd9, 0x57, 0x8c, 0x9e, 0x3f, 0x3b, 0xdf, 0x39, 0x33, 0xe7, 0xaf, 0x68, 0x74, 0x4b, 0x53, 0xb7, - 0x0f, 0xe7, 0xc6, 0x74, 0x08, 0x36, 0xf8, 0x20, 0x0c, 0xa3, 0xad, 0xd0, 0x55, 0x6c, 0x4b, 0x8c, - 0xed, 0x5c, 0x1e, 0xdb, 0x7a, 0x4a, 0xb6, 0x34, 0x79, 0xfb, 0x70, 0x6e, 0x54, 0x03, 0x60, 0x9d, - 0x09, 0xda, 0x84, 0x49, 0xfa, 0x37, 0x48, 0x3c, 0xc5, 0xb7, 0xcc, 0xf8, 0x3e, 0x5a, 0xc4, 0x57, - 0x23, 0x5d, 0x3a, 0x75, 0xfb, 0x70, 0x6e, 0x32, 0x03, 0xc4, 0x59, 0x86, 0xf6, 0x7b, 0x30, 0xb1, - 0x98, 0x24, 0x4e, 0x73, 0x87, 0xb8, 0x7c, 0x04, 0xd1, 0xf3, 0x30, 0x10, 0x38, 0x7b, 0x44, 0x8c, - 0xef, 0x59, 0xd1, 0xb1, 0x03, 0x57, 0x9c, 0x3d, 0x72, 0x74, 0x38, 0x37, 0x75, 0x2d, 0xf0, 0xde, - 0x6d, 0x8b, 0x59, 0x41, 0x61, 0x98, 0x51, 0xa3, 0xf3, 0x00, 0x2e, 0xd9, 0xf7, 0x9a, 0xa4, 0xee, - 0x24, 0x3b, 0x62, 0xbc, 0x91, 0x28, 0x0b, 0x35, 0x85, 0xc1, 0x1a, 0x95, 0x7d, 0x0b, 0x2a, 0x8b, - 0xfb, 0xa1, 0xe7, 0xd6, 0x43, 0x37, 0x46, 0xbb, 0x30, 0xd9, 0x8a, 0xc8, 0x16, 0x89, 0x14, 0xa8, - 0x6a, 0x9d, 0x2d, 0x9f, 0x1b, 0x3d, 0x7f, 0x2e, 0xf7, 0x63, 0x4d, 0xd2, 0x95, 0x20, 0x89, 0x0e, - 0x96, 0xee, 0x17, 0xf5, 0x4d, 0x66, 0xb0, 0x38, 0xcb, 0xd9, 0xfe, 0x37, 0x25, 0x38, 0xbd, 0xf8, - 0x5e, 0x3b, 0x22, 0x35, 0x2f, 0xde, 0xcd, 0xce, 0x70, 0xd7, 0x8b, 0x77, 0xaf, 0xa4, 0x3d, 0xa0, - 0xa6, 0x56, 0x4d, 0xc0, 0xb1, 0xa2, 0x40, 0xcf, 0xc0, 0x30, 0xfd, 0x7d, 0x0d, 0xaf, 0x89, 0x4f, - 0x3e, 0x25, 0x88, 0x47, 0x6b, 0x4e, 0xe2, 0xd4, 0x38, 0x0a, 0x4b, 0x1a, 0xb4, 0x0e, 0xa3, 0x4d, - 0xb6, 0x20, 0xb7, 0xd7, 0x43, 0x97, 0xb0, 0xc1, 0xac, 0x2c, 0x3d, 0x45, 0xc9, 0x97, 0x53, 0xf0, - 0xd1, 0xe1, 0x5c, 0x95, 0xb7, 0x4d, 0xb0, 0xd0, 0x70, 0x58, 0x2f, 0x8f, 0x6c, 0xb5, 0xbe, 0x06, - 0x18, 0x27, 0xc8, 0x59, 0x5b, 0xe7, 0xb4, 0xa5, 0x32, 0xc8, 0x96, 0xca, 0x58, 0xfe, 0x32, 0x41, - 0xcf, 0xc2, 0xc0, 0xae, 0x17, 0xb8, 0xd5, 0x21, 0xc6, 0xeb, 0x61, 0x3a, 0xe6, 0x97, 0xbc, 0xc0, - 0x3d, 0x3a, 0x9c, 0x9b, 0x36, 0x9a, 0x43, 0x81, 0x98, 0x91, 0xda, 0x7f, 0x62, 0xc1, 0x1c, 0xc3, - 0xad, 0x7a, 0x3e, 0xa9, 0x93, 0x28, 0xf6, 0xe2, 0x84, 0x04, 0x89, 0xd1, 0xa1, 0xe7, 0x01, 0x62, - 0xd2, 0x8c, 0x48, 0xa2, 0x75, 0xa9, 0x9a, 0x18, 0x0d, 0x85, 0xc1, 0x1a, 0x15, 0x15, 0x08, 0xf1, - 0x8e, 0x13, 0xb1, 0xf9, 0x25, 0x3a, 0x56, 0x09, 0x84, 0x86, 0x44, 0xe0, 0x94, 0xc6, 0x10, 0x08, - 0xe5, 0x5e, 0x02, 0x01, 0x7d, 0x0a, 0x26, 0xd3, 0xca, 0xe2, 0x96, 0xd3, 0x94, 0x1d, 0xc8, 0x96, - 0x4c, 0xc3, 0x44, 0xe1, 0x2c, 0xad, 0xfd, 0x0f, 0x2c, 0x31, 0x79, 0xe8, 0x57, 0x7f, 0xc8, 0xbf, - 0xd5, 0xfe, 0x2d, 0x0b, 0x86, 0x97, 0xbc, 0xc0, 0xf5, 0x82, 0x6d, 0xf4, 0x79, 0x18, 0xa1, 0x7b, - 0x93, 0xeb, 0x24, 0x8e, 0x90, 0x7b, 0x1f, 0xd7, 0xd6, 0x96, 0xda, 0x2a, 0xe6, 0x5b, 0xbb, 0xdb, - 0x14, 0x10, 0xcf, 0x53, 0x6a, 0xba, 0xda, 0xae, 0x6e, 0xbe, 0x43, 0x9a, 0xc9, 0x3a, 0x49, 0x9c, - 0xf4, 0x73, 0x52, 0x18, 0x56, 0x5c, 0xd1, 0x25, 0x18, 0x4a, 0x9c, 0x68, 0x9b, 0x24, 0x42, 0x00, - 0xe6, 0x0a, 0x2a, 0x5e, 0x12, 0xd3, 0x15, 0x49, 0x82, 0x26, 0x49, 0xb7, 0x85, 0x0d, 0x56, 0x14, - 0x0b, 0x16, 0x76, 0x13, 0xc6, 0x96, 0x9d, 0x96, 0xb3, 0xe9, 0xf9, 0x5e, 0xe2, 0x91, 0x18, 0x3d, - 0x0e, 0x65, 0xc7, 0x75, 0x99, 0x54, 0xa8, 0x2c, 0x9d, 0xbe, 0x7d, 0x38, 0x57, 0x5e, 0x74, 0xe9, - 0xf4, 0x04, 0x45, 0x75, 0x80, 0x29, 0x05, 0x7a, 0x12, 0x06, 0xdc, 0x28, 0x6c, 0x55, 0x4b, 0x8c, - 0xf2, 0x3e, 0x3a, 0x93, 0x6b, 0x51, 0xd8, 0xca, 0x90, 0x32, 0x1a, 0xfb, 0x77, 0x4a, 0xf0, 0xd0, - 0x32, 0x69, 0xed, 0xac, 0x36, 0x0a, 0xe6, 0xef, 0x39, 0x18, 0xd9, 0x0b, 0x03, 0x2f, 0x09, 0xa3, - 0x58, 0x54, 0xcd, 0x16, 0xd0, 0xba, 0x80, 0x61, 0x85, 0x45, 0x67, 0x61, 0xa0, 0x95, 0x0a, 0xbf, - 0x31, 0x29, 0x38, 0x99, 0xd8, 0x63, 0x18, 0x4a, 0xd1, 0x8e, 0x49, 0x24, 0x16, 0xbe, 0xa2, 0xb8, - 0x16, 0x93, 0x08, 0x33, 0x4c, 0x3a, 0x83, 0xe8, 0xdc, 0x12, 0xb3, 0x32, 0x33, 0x83, 0x28, 0x06, - 0x6b, 0x54, 0xa8, 0x0e, 0x15, 0xfe, 0x0f, 0x93, 0x2d, 0xb6, 0xc6, 0x0b, 0xfa, 0xbd, 0x21, 0x89, - 0x44, 0xbf, 0x8f, 0xb3, 0x29, 0x26, 0x81, 0x38, 0x65, 0x62, 0x4c, 0xb1, 0xa1, 0x9e, 0x53, 0xec, - 0xdb, 0x25, 0x40, 0xbc, 0x0b, 0x7f, 0xcc, 0x3a, 0xee, 0x5a, 0x67, 0xc7, 0xe5, 0x6e, 0x36, 0x97, - 0xc3, 0xa6, 0xe3, 0x67, 0x67, 0xed, 0xdd, 0xea, 0xbd, 0x5f, 0xb0, 0x00, 0x2d, 0x7b, 0x81, 0x4b, - 0xa2, 0x13, 0xd0, 0xb4, 0x8e, 0x27, 0x3b, 0x2e, 0xc3, 0xc4, 0xb2, 0xef, 0x91, 0x20, 0x59, 0xab, - 0x2f, 0x87, 0xc1, 0x96, 0xb7, 0x8d, 0x3e, 0x09, 0x13, 0x54, 0xf1, 0x0c, 0xdb, 0x49, 0x83, 0x34, - 0xc3, 0x80, 0xed, 0xd1, 0x54, 0x5d, 0x43, 0xb7, 0x0f, 0xe7, 0x26, 0x36, 0x0c, 0x0c, 0xce, 0x50, - 0xda, 0x7f, 0x48, 0x3f, 0x34, 0xdc, 0x6b, 0x85, 0x01, 0x09, 0x92, 0xe5, 0x30, 0x70, 0xb9, 0x2e, - 0xf7, 0x49, 0x18, 0x48, 0x68, 0xc3, 0xf9, 0x47, 0x3e, 0x26, 0x87, 0x96, 0x36, 0xf7, 0xe8, 0x70, - 0xee, 0xbe, 0xce, 0x12, 0xec, 0x83, 0x58, 0x19, 0xf4, 0x53, 0x30, 0x14, 0x27, 0x4e, 0xd2, 0x8e, - 0xc5, 0x67, 0x3f, 0x22, 0x3f, 0xbb, 0xc1, 0xa0, 0x47, 0x87, 0x73, 0x93, 0xaa, 0x18, 0x07, 0x61, - 0x51, 0x00, 0x3d, 0x01, 0xc3, 0x7b, 0x24, 0x8e, 0x9d, 0x6d, 0xb9, 0x0d, 0x4f, 0x8a, 0xb2, 0xc3, - 0xeb, 0x1c, 0x8c, 0x25, 0x1e, 0x3d, 0x0a, 0x83, 0x24, 0x8a, 0xc2, 0x48, 0xcc, 0xaa, 0x71, 0x41, - 0x38, 0xb8, 0x42, 0x81, 0x98, 0xe3, 0xec, 0x7f, 0x6f, 0xc1, 0xa4, 0x6a, 0x2b, 0xaf, 0xeb, 0x04, - 0xe4, 0xed, 0x9b, 0x00, 0x4d, 0xf9, 0x81, 0x31, 0x93, 0x77, 0xa3, 0xe7, 0x1f, 0xcb, 0x9b, 0xc2, - 0x9d, 0xdd, 0x98, 0x72, 0x56, 0xa0, 0x18, 0x6b, 0xdc, 0xec, 0x7f, 0x61, 0xc1, 0xa9, 0xcc, 0x17, - 0x5d, 0xf6, 0xe2, 0x04, 0xbd, 0xd5, 0xf1, 0x55, 0xf3, 0xfd, 0x7d, 0x15, 0x2d, 0xcd, 0xbe, 0x49, - 0xcd, 0x39, 0x09, 0xd1, 0xbe, 0xe8, 0x22, 0x0c, 0x7a, 0x09, 0xd9, 0x93, 0x1f, 0xf3, 0x68, 0xd7, - 0x8f, 0xe1, 0xad, 0x4a, 0x47, 0x64, 0x8d, 0x96, 0xc4, 0x9c, 0x81, 0xfd, 0x3f, 0x2d, 0xa8, 0xf0, - 0x69, 0xbb, 0xee, 0xb4, 0x4e, 0x60, 0x2c, 0xd6, 0x60, 0x80, 0x71, 0xe7, 0x0d, 0x7f, 0x3c, 0xbf, - 0xe1, 0xa2, 0x39, 0xf3, 0x54, 0x99, 0xe2, 0x4a, 0xab, 0x12, 0x66, 0x14, 0x84, 0x19, 0x8b, 0xd9, - 0x17, 0xa1, 0xa2, 0x08, 0xd0, 0x14, 0x94, 0x77, 0x09, 0x3f, 0xa8, 0x54, 0x30, 0xfd, 0x89, 0x66, - 0x60, 0x70, 0xdf, 0xf1, 0xdb, 0x62, 0xb1, 0x63, 0xfe, 0xe7, 0x93, 0xa5, 0x97, 0x2c, 0xfb, 0x5b, - 0x6c, 0x8d, 0x89, 0x4a, 0x56, 0x82, 0x7d, 0x21, 0x4c, 0xde, 0x83, 0x19, 0x3f, 0x47, 0x86, 0x89, - 0x8e, 0xe8, 0x5f, 0xe6, 0x3d, 0x24, 0xda, 0x3a, 0x93, 0x87, 0xc5, 0xb9, 0x75, 0xd0, 0x6d, 0x20, - 0x6c, 0xd1, 0x19, 0xe5, 0xf8, 0xac, 0xbd, 0x42, 0x01, 0xbd, 0x2a, 0x60, 0x58, 0x61, 0xa9, 0x80, - 0x98, 0x51, 0x8d, 0xbf, 0x44, 0x0e, 0x1a, 0xc4, 0x27, 0xcd, 0x24, 0x8c, 0x3e, 0xd0, 0xe6, 0x3f, - 0xcc, 0x7b, 0x9f, 0xcb, 0x97, 0x51, 0xc1, 0xa0, 0x7c, 0x89, 0x1c, 0xf0, 0xa1, 0xd0, 0xbf, 0xae, - 0xdc, 0xf5, 0xeb, 0x7e, 0xcd, 0x82, 0x71, 0xf5, 0x75, 0x27, 0xb0, 0x90, 0x96, 0xcc, 0x85, 0xf4, - 0x70, 0xd7, 0xf9, 0x58, 0xb0, 0x84, 0x7e, 0xc4, 0x44, 0x80, 0xa0, 0xa9, 0x47, 0x21, 0xed, 0x1a, - 0x2a, 0xb3, 0x3f, 0xc8, 0x01, 0xe9, 0xe7, 0xbb, 0x2e, 0x91, 0x83, 0x8d, 0x90, 0xaa, 0x0f, 0xf9, - 0xdf, 0x65, 0x8c, 0xda, 0x40, 0xd7, 0x51, 0xfb, 0xf5, 0x12, 0x9c, 0x56, 0x3d, 0x60, 0x6c, 0xd0, - 0x3f, 0xee, 0x7d, 0xf0, 0x2c, 0x8c, 0xba, 0x64, 0xcb, 0x69, 0xfb, 0x89, 0x3a, 0x8b, 0x0e, 0x72, - 0x7b, 0x44, 0x2d, 0x05, 0x63, 0x9d, 0xe6, 0x18, 0xdd, 0xf6, 0x6f, 0x81, 0xc9, 0xde, 0xc4, 0xa1, - 0x33, 0x98, 0x6a, 0x6f, 0x9a, 0x45, 0x61, 0x4c, 0xb7, 0x28, 0x08, 0xeb, 0xc1, 0xa3, 0x30, 0xe8, - 0xed, 0xd1, 0xbd, 0xb8, 0x64, 0x6e, 0xb1, 0x6b, 0x14, 0x88, 0x39, 0x0e, 0x7d, 0x0c, 0x86, 0x9b, - 0xe1, 0xde, 0x9e, 0x13, 0xb8, 0xd5, 0x32, 0xd3, 0x27, 0x47, 0xe9, 0x76, 0xbd, 0xcc, 0x41, 0x58, - 0xe2, 0xd0, 0x43, 0x30, 0xe0, 0x44, 0xdb, 0x71, 0x75, 0x80, 0xd1, 0x8c, 0xd0, 0x9a, 0x16, 0xa3, - 0xed, 0x18, 0x33, 0x28, 0xd5, 0x13, 0x6f, 0x86, 0xd1, 0xae, 0x17, 0x6c, 0xd7, 0xbc, 0x88, 0x29, - 0x7d, 0x9a, 0x9e, 0x78, 0x43, 0x61, 0xb0, 0x46, 0x85, 0x56, 0x61, 0xb0, 0x15, 0x46, 0x49, 0x5c, - 0x1d, 0x62, 0xdd, 0xfd, 0x48, 0xc1, 0x52, 0xe2, 0x5f, 0x5b, 0x0f, 0xa3, 0x24, 0xfd, 0x00, 0xfa, - 0x2f, 0xc6, 0xbc, 0x38, 0xfa, 0x29, 0x28, 0x93, 0x60, 0xbf, 0x3a, 0xcc, 0xb8, 0xcc, 0xe6, 0x71, - 0x59, 0x09, 0xf6, 0xaf, 0x3b, 0x51, 0x2a, 0x67, 0x56, 0x82, 0x7d, 0x4c, 0xcb, 0xa0, 0x37, 0xa0, - 0x22, 0xad, 0x91, 0x71, 0x75, 0xa4, 0x78, 0x8a, 0x61, 0x41, 0x84, 0xc9, 0xbb, 0x6d, 0x2f, 0x22, - 0x7b, 0x24, 0x48, 0xe2, 0xf4, 0x3c, 0x29, 0xb1, 0x31, 0x4e, 0xb9, 0xa1, 0x37, 0x60, 0x8c, 0xeb, - 0x91, 0xeb, 0x61, 0x3b, 0x48, 0xe2, 0x6a, 0x85, 0x35, 0x2f, 0xd7, 0x74, 0x75, 0x3d, 0xa5, 0x5b, - 0x9a, 0x11, 0x4c, 0xc7, 0x34, 0x60, 0x8c, 0x0d, 0x56, 0x08, 0xc3, 0xb8, 0xef, 0xed, 0x93, 0x80, - 0xc4, 0x71, 0x3d, 0x0a, 0x37, 0x49, 0x15, 0x58, 0xcb, 0x1f, 0xc8, 0xb7, 0xe8, 0x84, 0x9b, 0x64, - 0x69, 0xfa, 0xf6, 0xe1, 0xdc, 0xf8, 0x65, 0xbd, 0x0c, 0x36, 0x59, 0xa0, 0x6b, 0x30, 0x41, 0x15, - 0x54, 0x2f, 0x65, 0x3a, 0xda, 0x8b, 0x29, 0xd3, 0x4e, 0xb1, 0x51, 0x08, 0x67, 0x98, 0xa0, 0xd7, - 0xa0, 0xe2, 0x7b, 0x5b, 0xa4, 0x79, 0xd0, 0xf4, 0x49, 0x75, 0x8c, 0x71, 0xcc, 0x5d, 0x56, 0x97, - 0x25, 0x11, 0x3f, 0x00, 0xa8, 0xbf, 0x38, 0x2d, 0x8e, 0xae, 0xc3, 0x7d, 0x09, 0x89, 0xf6, 0xbc, - 0xc0, 0xa1, 0xcb, 0x41, 0xe8, 0x93, 0xcc, 0x2e, 0x36, 0xce, 0xe6, 0xdb, 0x19, 0xd1, 0x75, 0xf7, - 0x6d, 0xe4, 0x52, 0xe1, 0x82, 0xd2, 0xe8, 0x2a, 0x4c, 0xb2, 0x95, 0x50, 0x6f, 0xfb, 0x7e, 0x3d, - 0xf4, 0xbd, 0xe6, 0x41, 0x75, 0x82, 0x31, 0xfc, 0x98, 0x34, 0x7c, 0xad, 0x99, 0x68, 0x7a, 0xe2, - 0x4d, 0xff, 0xe1, 0x6c, 0x69, 0xb4, 0xc9, 0x0c, 0x21, 0xed, 0xc8, 0x4b, 0x0e, 0xe8, 0xfc, 0x25, - 0xb7, 0x92, 0xea, 0x64, 0xd7, 0xf3, 0xa3, 0x4e, 0xaa, 0xac, 0x25, 0x3a, 0x10, 0x67, 0x19, 0xd2, - 0xa5, 0x1d, 0x27, 0xae, 0x17, 0x54, 0xa7, 0x98, 0xc4, 0x50, 0x2b, 0xa3, 0x41, 0x81, 0x98, 0xe3, - 0x98, 0x11, 0x84, 0xfe, 0xb8, 0x4a, 0x25, 0xe8, 0x34, 0x23, 0x4c, 0x8d, 0x20, 0x12, 0x81, 0x53, - 0x1a, 0xba, 0x2d, 0x27, 0xc9, 0x41, 0x15, 0x31, 0x52, 0xb5, 0x5c, 0x36, 0x36, 0xde, 0xc0, 0x14, - 0x8e, 0x2e, 0xc3, 0x30, 0x09, 0xf6, 0x57, 0xa3, 0x70, 0xaf, 0x7a, 0xaa, 0x78, 0xcd, 0xae, 0x70, - 0x12, 0x2e, 0xd0, 0xd3, 0x03, 0x80, 0x00, 0x63, 0xc9, 0x02, 0xdd, 0x82, 0x6a, 0xce, 0x88, 0xf0, - 0x01, 0x98, 0x61, 0x03, 0xf0, 0x8a, 0x28, 0x5b, 0xdd, 0x28, 0xa0, 0x3b, 0xea, 0x82, 0xc3, 0x85, - 0xdc, 0xed, 0x4d, 0x98, 0x50, 0x82, 0x85, 0x8d, 0x2d, 0x9a, 0x83, 0x41, 0x2a, 0x31, 0xe5, 0x91, - 0xba, 0x42, 0xbb, 0x92, 0x99, 0xa6, 0x30, 0x87, 0xb3, 0xae, 0xf4, 0xde, 0x23, 0x4b, 0x07, 0x09, - 0xe1, 0xc7, 0xa2, 0xb2, 0xd6, 0x95, 0x12, 0x81, 0x53, 0x1a, 0xfb, 0xff, 0x72, 0xc5, 0x24, 0x95, - 0x5e, 0x7d, 0xc8, 0xeb, 0xa7, 0x61, 0x64, 0x27, 0x8c, 0x13, 0x4a, 0xcd, 0xea, 0x18, 0x4c, 0x55, - 0x91, 0x8b, 0x02, 0x8e, 0x15, 0x05, 0x7a, 0x19, 0xc6, 0x9b, 0x7a, 0x05, 0x62, 0xb3, 0x39, 0x2d, - 0x8a, 0x98, 0xb5, 0x63, 0x93, 0x16, 0xbd, 0x04, 0x23, 0xec, 0x82, 0xa2, 0x19, 0xfa, 0xe2, 0x00, - 0x26, 0x77, 0xcc, 0x91, 0xba, 0x80, 0x1f, 0x69, 0xbf, 0xb1, 0xa2, 0xa6, 0x87, 0x62, 0xda, 0x84, - 0xb5, 0xba, 0x10, 0xf3, 0xea, 0x50, 0x7c, 0x91, 0x41, 0xb1, 0xc0, 0xda, 0x7f, 0xad, 0xa4, 0xf5, - 0x32, 0x3d, 0x52, 0x10, 0x54, 0x87, 0xe1, 0x9b, 0x8e, 0x97, 0x78, 0xc1, 0xb6, 0xd8, 0xcf, 0x9f, - 0xe8, 0x2a, 0xf3, 0x59, 0xa1, 0x1b, 0xbc, 0x00, 0xdf, 0x95, 0xc4, 0x1f, 0x2c, 0xd9, 0x50, 0x8e, - 0x51, 0x3b, 0x08, 0x28, 0xc7, 0x52, 0xbf, 0x1c, 0x31, 0x2f, 0xc0, 0x39, 0x8a, 0x3f, 0x58, 0xb2, - 0x41, 0x6f, 0x01, 0xc8, 0x79, 0x43, 0x5c, 0x71, 0x31, 0xf0, 0x74, 0x6f, 0xa6, 0x1b, 0xaa, 0xcc, - 0xd2, 0x04, 0xdd, 0xf3, 0xd2, 0xff, 0x58, 0xe3, 0x67, 0x27, 0x4c, 0xef, 0xe9, 0x6c, 0x0c, 0xfa, - 0x1c, 0x5d, 0xaa, 0x4e, 0x94, 0x10, 0x77, 0x31, 0x11, 0x9d, 0xf3, 0x64, 0x7f, 0x6a, 0xeb, 0x86, - 0xb7, 0x47, 0xf4, 0x65, 0x2d, 0x98, 0xe0, 0x94, 0x9f, 0xfd, 0x9b, 0x65, 0xa8, 0x16, 0x35, 0x97, - 0x4e, 0x3a, 0x72, 0xcb, 0x4b, 0x96, 0xa9, 0xba, 0x62, 0x99, 0x93, 0x6e, 0x45, 0xc0, 0xb1, 0xa2, - 0xa0, 0xa3, 0x1f, 0x7b, 0xdb, 0xf2, 0xd4, 0x31, 0x98, 0x8e, 0x7e, 0x83, 0x41, 0xb1, 0xc0, 0x52, - 0xba, 0x88, 0x38, 0xb1, 0xb8, 0x79, 0xd2, 0x66, 0x09, 0x66, 0x50, 0x2c, 0xb0, 0xba, 0xc1, 0x60, - 0xa0, 0x87, 0xc1, 0xc0, 0xe8, 0xa2, 0xc1, 0xbb, 0xdb, 0x45, 0xe8, 0x6d, 0x80, 0x2d, 0x2f, 0xf0, - 0xe2, 0x1d, 0xc6, 0x7d, 0xe8, 0xd8, 0xdc, 0x95, 0xb2, 0xb3, 0xaa, 0xb8, 0x60, 0x8d, 0x23, 0x7a, - 0x01, 0x46, 0xd5, 0x02, 0x5c, 0xab, 0x55, 0x87, 0xcd, 0x6b, 0x8d, 0x54, 0x1a, 0xd5, 0xb0, 0x4e, - 0x67, 0xbf, 0x93, 0x9d, 0x2f, 0x62, 0x05, 0x68, 0xfd, 0x6b, 0xf5, 0xdb, 0xbf, 0xa5, 0xee, 0xfd, - 0x6b, 0xff, 0x6e, 0x19, 0x26, 0x8d, 0xca, 0xda, 0x71, 0x1f, 0x32, 0xeb, 0x02, 0xdd, 0x88, 0x9c, - 0x84, 0x88, 0xf5, 0x67, 0xf7, 0x5e, 0x2a, 0xfa, 0x66, 0x45, 0x57, 0x00, 0x2f, 0x8f, 0xde, 0x86, - 0x8a, 0xef, 0xc4, 0xcc, 0xf8, 0x40, 0xc4, 0xba, 0xeb, 0x87, 0x59, 0xaa, 0xe8, 0x3b, 0x71, 0xa2, - 0xed, 0x05, 0x9c, 0x77, 0xca, 0x92, 0xee, 0x98, 0x54, 0x39, 0x91, 0x57, 0x9b, 0xaa, 0x11, 0x54, - 0x83, 0x39, 0xc0, 0x1c, 0x87, 0x5e, 0x82, 0xb1, 0x88, 0xb0, 0x59, 0xb1, 0x4c, 0x75, 0x2d, 0x36, - 0xcd, 0x06, 0x53, 0xa5, 0x0c, 0x6b, 0x38, 0x6c, 0x50, 0xa6, 0xba, 0xf6, 0x50, 0x17, 0x5d, 0xfb, - 0x09, 0x18, 0x66, 0x3f, 0xd4, 0x0c, 0x50, 0xa3, 0xb1, 0xc6, 0xc1, 0x58, 0xe2, 0xb3, 0x13, 0x66, - 0xa4, 0xcf, 0x09, 0xf3, 0x24, 0x4c, 0xd4, 0x1c, 0xb2, 0x17, 0x06, 0x2b, 0x81, 0xdb, 0x0a, 0xbd, - 0x20, 0x41, 0x55, 0x18, 0x60, 0xbb, 0x03, 0x5f, 0xdb, 0x03, 0x94, 0x03, 0x1e, 0xa0, 0x9a, 0xb3, - 0xfd, 0x07, 0x25, 0x18, 0xaf, 0x11, 0x9f, 0x24, 0x84, 0x9f, 0x35, 0x62, 0xb4, 0x0a, 0x68, 0x3b, - 0x72, 0x9a, 0xa4, 0x4e, 0x22, 0x2f, 0x74, 0x75, 0x63, 0x64, 0x99, 0x19, 0xfc, 0xd1, 0x85, 0x0e, - 0x2c, 0xce, 0x29, 0x81, 0xde, 0x84, 0xf1, 0x56, 0x44, 0x0c, 0x1b, 0x9a, 0x55, 0xa4, 0x2e, 0xd4, - 0x75, 0x42, 0xae, 0xa9, 0x1a, 0x20, 0x6c, 0xb2, 0x42, 0x9f, 0x81, 0xa9, 0x30, 0x6a, 0xed, 0x38, - 0x41, 0x8d, 0xb4, 0x48, 0xe0, 0x52, 0x55, 0x5c, 0xd8, 0x08, 0x66, 0x6e, 0x1f, 0xce, 0x4d, 0x5d, - 0xcd, 0xe0, 0x70, 0x07, 0x35, 0x7a, 0x13, 0xa6, 0x5b, 0x51, 0xd8, 0x72, 0xb6, 0xd9, 0x44, 0x11, - 0x1a, 0x07, 0x97, 0x3e, 0x4f, 0xdf, 0x3e, 0x9c, 0x9b, 0xae, 0x67, 0x91, 0x47, 0x87, 0x73, 0xa7, - 0x58, 0x47, 0x51, 0x48, 0x8a, 0xc4, 0x9d, 0x6c, 0xec, 0x6d, 0x38, 0x5d, 0x0b, 0x6f, 0x06, 0x37, - 0x9d, 0xc8, 0x5d, 0xac, 0xaf, 0x69, 0x87, 0xfb, 0x2b, 0xf2, 0x70, 0xc9, 0xaf, 0x5f, 0x73, 0xf7, - 0x29, 0xad, 0x24, 0x57, 0xff, 0x57, 0x3d, 0x9f, 0x14, 0x18, 0x11, 0xfe, 0x66, 0xc9, 0xa8, 0x29, - 0xa5, 0x57, 0x76, 0x7f, 0xab, 0xd0, 0xee, 0xff, 0x3a, 0x8c, 0x6c, 0x79, 0xc4, 0x77, 0x31, 0xd9, - 0x12, 0x23, 0xf3, 0x78, 0xf1, 0x8d, 0xd2, 0x2a, 0xa5, 0x94, 0x46, 0x23, 0x7e, 0x34, 0x5d, 0x15, - 0x85, 0xb1, 0x62, 0x83, 0x76, 0x61, 0x4a, 0x9e, 0x7d, 0x24, 0x56, 0x2c, 0xe2, 0x27, 0xba, 0x1d, - 0xa8, 0x4c, 0xe6, 0x6c, 0x00, 0x71, 0x86, 0x0d, 0xee, 0x60, 0x4c, 0xcf, 0xa2, 0x7b, 0x74, 0xbb, - 0x1a, 0x60, 0x53, 0x9a, 0x9d, 0x45, 0xd9, 0xb1, 0x9a, 0x41, 0xed, 0xaf, 0x5b, 0x70, 0x7f, 0x47, - 0xcf, 0x08, 0xf3, 0xc2, 0x5d, 0x1e, 0x85, 0xec, 0x71, 0xbf, 0xd4, 0xfb, 0xb8, 0x6f, 0xff, 0x43, - 0x0b, 0x66, 0x56, 0xf6, 0x5a, 0xc9, 0x41, 0xcd, 0x33, 0xef, 0x26, 0x5e, 0x84, 0xa1, 0x3d, 0xe2, - 0x7a, 0xed, 0x3d, 0x31, 0x72, 0x73, 0x52, 0xa4, 0xaf, 0x33, 0xe8, 0xd1, 0xe1, 0xdc, 0x78, 0x23, - 0x09, 0x23, 0x67, 0x9b, 0x70, 0x00, 0x16, 0xe4, 0x6c, 0x63, 0xf4, 0xde, 0x23, 0x97, 0xbd, 0x3d, - 0x4f, 0xde, 0x10, 0x76, 0x35, 0x79, 0xcd, 0xcb, 0x0e, 0x9d, 0x7f, 0xbd, 0xed, 0x04, 0x89, 0x97, - 0x1c, 0x88, 0x6b, 0x17, 0xc9, 0x04, 0xa7, 0xfc, 0xec, 0xef, 0x59, 0x30, 0x29, 0x65, 0xc9, 0xa2, - 0xeb, 0x46, 0x24, 0x8e, 0xd1, 0x2c, 0x94, 0xbc, 0x96, 0x68, 0x25, 0x88, 0x56, 0x96, 0xd6, 0xea, - 0xb8, 0xe4, 0xb5, 0x50, 0x1d, 0x2a, 0xfc, 0xa2, 0x31, 0x9d, 0x5c, 0x7d, 0x5d, 0x57, 0xb2, 0x16, - 0x6c, 0xc8, 0x92, 0x38, 0x65, 0x22, 0xb5, 0x62, 0xb6, 0x0f, 0x95, 0xcd, 0x3b, 0x9b, 0x8b, 0x02, - 0x8e, 0x15, 0x05, 0x3a, 0x07, 0x23, 0x41, 0xe8, 0xf2, 0x7b, 0x5f, 0xbe, 0xa6, 0xd9, 0x94, 0xbd, - 0x22, 0x60, 0x58, 0x61, 0xed, 0x9f, 0xb3, 0x60, 0x4c, 0x7e, 0x59, 0x9f, 0x0a, 0x3a, 0x5d, 0x5a, - 0xa9, 0x72, 0x9e, 0x2e, 0x2d, 0xaa, 0x60, 0x33, 0x8c, 0xa1, 0x57, 0x97, 0x8f, 0xa3, 0x57, 0xdb, - 0x5f, 0x2b, 0xc1, 0x84, 0x6c, 0x4e, 0xa3, 0xbd, 0x19, 0x93, 0x04, 0x6d, 0x40, 0xc5, 0xe1, 0x5d, - 0x4e, 0xe4, 0x8c, 0x7d, 0x34, 0xff, 0xc4, 0x65, 0x8c, 0x4f, 0xaa, 0xea, 0x2c, 0xca, 0xd2, 0x38, - 0x65, 0x84, 0x7c, 0x98, 0x0e, 0xc2, 0x84, 0x6d, 0x7b, 0x0a, 0xdf, 0xed, 0x5e, 0x20, 0xcb, 0xfd, - 0x01, 0xc1, 0x7d, 0xfa, 0x4a, 0x96, 0x0b, 0xee, 0x64, 0x8c, 0x56, 0xa4, 0x95, 0xa7, 0xcc, 0x6a, - 0x38, 0xdb, 0xad, 0x86, 0x62, 0x23, 0x8f, 0xfd, 0xdb, 0x16, 0x54, 0x24, 0xd9, 0x49, 0x5c, 0x01, - 0xad, 0xc3, 0x70, 0xcc, 0x06, 0x41, 0x76, 0x8d, 0xdd, 0xad, 0xe1, 0x7c, 0xbc, 0xd2, 0xdd, 0x9c, - 0xff, 0x8f, 0xb1, 0xe4, 0xc1, 0xcc, 0xd4, 0xaa, 0xf9, 0x1f, 0x12, 0x33, 0xb5, 0x6a, 0x4f, 0xc1, - 0x0e, 0xf3, 0x5f, 0x59, 0x9b, 0xb5, 0xb3, 0x3c, 0x55, 0x3a, 0x5b, 0x11, 0xd9, 0xf2, 0x6e, 0x65, - 0x95, 0xce, 0x3a, 0x83, 0x62, 0x81, 0x45, 0x6f, 0xc1, 0x58, 0x53, 0x5a, 0x77, 0x53, 0x31, 0xf0, - 0x58, 0x57, 0x5b, 0xb9, 0xba, 0x56, 0xe1, 0x3e, 0x61, 0xcb, 0x5a, 0x79, 0x6c, 0x70, 0x33, 0x2f, - 0xe6, 0xcb, 0xbd, 0x2e, 0xe6, 0x53, 0xbe, 0x85, 0x57, 0xcb, 0xf6, 0x2f, 0x59, 0x30, 0xc4, 0x6d, - 0x84, 0xfd, 0x19, 0x55, 0xb5, 0x6b, 0xa2, 0xb4, 0xef, 0xae, 0x53, 0xa0, 0xb8, 0x35, 0x42, 0xeb, - 0x50, 0x61, 0x3f, 0x98, 0xad, 0xa4, 0x5c, 0xec, 0x0c, 0xc7, 0x6b, 0xd5, 0x1b, 0x78, 0x5d, 0x16, - 0xc3, 0x29, 0x07, 0xfb, 0xab, 0x65, 0x2a, 0xaa, 0x52, 0x52, 0x63, 0x07, 0xb7, 0xee, 0xdd, 0x0e, - 0x5e, 0xba, 0x57, 0x3b, 0xf8, 0x36, 0x4c, 0x36, 0xb5, 0x3b, 0xa9, 0x74, 0x24, 0xcf, 0x75, 0x9d, - 0x24, 0xda, 0xf5, 0x15, 0xb7, 0x93, 0x2d, 0x9b, 0x4c, 0x70, 0x96, 0x2b, 0xfa, 0x1c, 0x8c, 0xf1, - 0x71, 0x16, 0xb5, 0x0c, 0xb0, 0x5a, 0x3e, 0x56, 0x3c, 0x5f, 0xf4, 0x2a, 0xd8, 0x4c, 0x6c, 0x68, - 0xc5, 0xb1, 0xc1, 0xcc, 0xfe, 0xf2, 0x20, 0x0c, 0xae, 0xec, 0x93, 0x20, 0x39, 0x01, 0x81, 0xd4, - 0x84, 0x09, 0x2f, 0xd8, 0x0f, 0xfd, 0x7d, 0xe2, 0x72, 0xfc, 0x71, 0x36, 0xd7, 0xfb, 0x04, 0xeb, - 0x89, 0x35, 0x83, 0x05, 0xce, 0xb0, 0xbc, 0x17, 0xa7, 0xf6, 0x0b, 0x30, 0xc4, 0xc7, 0x5e, 0x1c, - 0xd9, 0x73, 0x2d, 0xe0, 0xac, 0x13, 0xc5, 0x2a, 0x48, 0x2d, 0x0a, 0xdc, 0xe4, 0x2e, 0x8a, 0xa3, - 0x77, 0x60, 0x62, 0xcb, 0x8b, 0xe2, 0x84, 0x1e, 0xb7, 0xe3, 0xc4, 0xd9, 0x6b, 0xdd, 0xc1, 0x29, - 0x5d, 0xf5, 0xc3, 0xaa, 0xc1, 0x09, 0x67, 0x38, 0xa3, 0x6d, 0x18, 0xa7, 0x07, 0xc7, 0xb4, 0xaa, - 0xe1, 0x63, 0x57, 0xa5, 0xcc, 0x70, 0x97, 0x75, 0x46, 0xd8, 0xe4, 0x4b, 0x85, 0x49, 0x93, 0x1d, - 0x34, 0x47, 0x98, 0x46, 0xa1, 0x84, 0x09, 0x3f, 0x61, 0x72, 0x1c, 0x95, 0x49, 0xcc, 0x97, 0xa3, - 0x62, 0xca, 0xa4, 0xd4, 0x63, 0xc3, 0xfe, 0x06, 0xdd, 0x1d, 0x69, 0x1f, 0x9e, 0xc0, 0xd6, 0xf2, - 0xaa, 0xb9, 0xb5, 0x3c, 0x50, 0x38, 0x9e, 0x05, 0xdb, 0xca, 0xe7, 0x61, 0x54, 0x1b, 0x6e, 0xb4, - 0x00, 0x95, 0xa6, 0x74, 0x3c, 0x10, 0x52, 0x57, 0xa9, 0x2f, 0xca, 0x23, 0x01, 0xa7, 0x34, 0xb4, - 0x37, 0xa8, 0xb2, 0x97, 0x75, 0x6b, 0xa2, 0xaa, 0x20, 0x66, 0x18, 0xfb, 0x39, 0x80, 0x95, 0x5b, - 0xa4, 0xb9, 0xc8, 0x0f, 0x5e, 0xda, 0xfd, 0x96, 0x55, 0x7c, 0xbf, 0x65, 0xff, 0x07, 0x0b, 0x26, - 0x56, 0x97, 0x0d, 0x85, 0x7c, 0x1e, 0x80, 0x6b, 0xa1, 0x37, 0x6e, 0x5c, 0x91, 0x96, 0x61, 0x6e, - 0xdc, 0x53, 0x50, 0xac, 0x51, 0xa0, 0x07, 0xa0, 0xec, 0xb7, 0x03, 0xa1, 0x1c, 0x0e, 0xdf, 0x3e, - 0x9c, 0x2b, 0x5f, 0x6e, 0x07, 0x98, 0xc2, 0x34, 0x4f, 0xa2, 0x72, 0xdf, 0x9e, 0x44, 0x3d, 0x5d, - 0xb0, 0xd1, 0x1c, 0x0c, 0xde, 0xbc, 0xe9, 0xb9, 0x71, 0x75, 0x30, 0xb5, 0x5a, 0xdf, 0xb8, 0xb1, - 0x56, 0x8b, 0x31, 0x87, 0xdb, 0x7f, 0xa1, 0x0c, 0x53, 0xab, 0x3e, 0xb9, 0x65, 0x7c, 0xd6, 0x63, - 0x30, 0xe4, 0x46, 0xde, 0x3e, 0x89, 0xb2, 0xbb, 0x78, 0x8d, 0x41, 0xb1, 0xc0, 0xf6, 0xed, 0xfd, - 0x74, 0xad, 0x73, 0x3f, 0xbe, 0xdb, 0xfe, 0x5e, 0xbd, 0xbb, 0xe2, 0x2d, 0x18, 0xe6, 0xd7, 0xa4, - 0xbc, 0x33, 0x46, 0xcf, 0x3f, 0x9b, 0xd7, 0x84, 0x6c, 0x5f, 0xcc, 0x0b, 0xc3, 0x07, 0xf7, 0x19, - 0x51, 0x42, 0x4c, 0x40, 0xb1, 0x64, 0x39, 0xfb, 0x49, 0x18, 0xd3, 0x29, 0x8f, 0xe5, 0x3c, 0xf2, - 0x17, 0x2d, 0x38, 0xb5, 0xea, 0x87, 0xcd, 0xdd, 0x8c, 0x2b, 0xda, 0x0b, 0x30, 0x4a, 0xd7, 0x53, - 0x6c, 0xb8, 0xb5, 0x1a, 0x8e, 0xce, 0x02, 0x85, 0x75, 0x3a, 0xad, 0xd8, 0xb5, 0x6b, 0x6b, 0xb5, - 0x3c, 0xff, 0x68, 0x81, 0xc2, 0x3a, 0x9d, 0xfd, 0x5d, 0x0b, 0x1e, 0xbe, 0xb0, 0xbc, 0x92, 0x7a, - 0x63, 0x76, 0xb8, 0x68, 0x53, 0xe5, 0xce, 0xd5, 0x9a, 0x92, 0x2a, 0x77, 0x35, 0xd6, 0x0a, 0x81, - 0xfd, 0xb0, 0x84, 0x1f, 0xfc, 0x8a, 0x05, 0xa7, 0x2e, 0x78, 0x09, 0x26, 0xad, 0x30, 0xeb, 0x2c, - 0x1c, 0x91, 0x56, 0x18, 0x7b, 0x49, 0x18, 0x1d, 0x64, 0x9d, 0x85, 0xb1, 0xc2, 0x60, 0x8d, 0x8a, - 0xd7, 0xbc, 0xef, 0xc5, 0xb4, 0xa5, 0x25, 0xf3, 0x84, 0x89, 0x05, 0x1c, 0x2b, 0x0a, 0xfa, 0x61, - 0xae, 0x17, 0x31, 0x0d, 0xe1, 0x40, 0x2c, 0x67, 0xf5, 0x61, 0x35, 0x89, 0xc0, 0x29, 0x8d, 0xfd, - 0x75, 0x0b, 0x4e, 0x5f, 0xf0, 0xdb, 0x71, 0x42, 0xa2, 0xad, 0xd8, 0x68, 0xec, 0x73, 0x50, 0x21, - 0x52, 0x0b, 0x17, 0x6d, 0x55, 0xfb, 0x86, 0x52, 0xcf, 0xb9, 0xa7, 0xb2, 0xa2, 0xeb, 0xc3, 0xaf, - 0xf3, 0x78, 0xfe, 0x88, 0xdf, 0x2c, 0xc1, 0xf8, 0xc5, 0x8d, 0x8d, 0xfa, 0x05, 0x92, 0x08, 0x91, - 0xd9, 0xdb, 0x82, 0x84, 0xb5, 0x83, 0x70, 0x37, 0x5d, 0xa7, 0x9d, 0x78, 0xfe, 0x3c, 0x0f, 0x8d, - 0x99, 0x5f, 0x0b, 0x92, 0xab, 0x51, 0x23, 0x89, 0xbc, 0x60, 0x3b, 0xf7, 0xe8, 0x2c, 0x05, 0x7b, - 0xb9, 0x48, 0xb0, 0xa3, 0xe7, 0x60, 0x88, 0xc5, 0xe6, 0x48, 0xad, 0xe3, 0x41, 0xa5, 0x2a, 0x30, - 0xe8, 0xd1, 0xe1, 0x5c, 0xe5, 0x1a, 0x5e, 0xe3, 0x7f, 0xb0, 0x20, 0x45, 0xd7, 0x60, 0x74, 0x27, - 0x49, 0x5a, 0x17, 0x89, 0xe3, 0x92, 0x48, 0x4a, 0x87, 0x33, 0x79, 0xd2, 0x81, 0x76, 0x02, 0x27, - 0x4b, 0x17, 0x54, 0x0a, 0x8b, 0xb1, 0xce, 0xc7, 0x6e, 0x00, 0xa4, 0xb8, 0xbb, 0x74, 0x6c, 0xb0, - 0x7f, 0x68, 0xc1, 0xf0, 0x45, 0x27, 0x70, 0x7d, 0x12, 0xa1, 0x57, 0x60, 0x80, 0xdc, 0x22, 0x4d, - 0xb1, 0x83, 0xe7, 0x36, 0x38, 0xdd, 0xe5, 0xb8, 0x11, 0x8c, 0xfe, 0xc7, 0xac, 0x14, 0xba, 0x08, - 0xc3, 0xb4, 0xb5, 0x17, 0x94, 0xcf, 0xf8, 0x23, 0x45, 0x5f, 0xac, 0x86, 0x9d, 0x6f, 0x8c, 0x02, - 0x84, 0x65, 0x71, 0x66, 0xd0, 0x69, 0xb6, 0x1a, 0x54, 0x80, 0x25, 0xdd, 0x8e, 0x5b, 0x1b, 0xcb, - 0x75, 0x4e, 0x24, 0xb8, 0x71, 0x83, 0x8e, 0x04, 0xe2, 0x94, 0x89, 0xbd, 0x01, 0x15, 0x3a, 0xa8, - 0x8b, 0xbe, 0xe7, 0x74, 0xb7, 0x25, 0x3d, 0x05, 0x15, 0x69, 0xd7, 0x89, 0x85, 0xdb, 0x39, 0xe3, - 0x2a, 0xcd, 0x3e, 0x31, 0x4e, 0xf1, 0xf6, 0x16, 0xcc, 0xb0, 0x4b, 0x52, 0x27, 0xd9, 0x31, 0xd6, - 0x58, 0xef, 0xc9, 0xfc, 0xb4, 0xd0, 0xaf, 0xf8, 0xc8, 0x54, 0x35, 0x3f, 0xd9, 0x31, 0xc9, 0x51, - 0xd3, 0xb5, 0xfe, 0xf3, 0x00, 0x4c, 0xaf, 0x35, 0x96, 0x1b, 0xa6, 0x61, 0xf1, 0x25, 0x18, 0xe3, - 0x9a, 0x00, 0x9d, 0xd0, 0x8e, 0x2f, 0x6a, 0x53, 0x17, 0x07, 0x1b, 0x1a, 0x0e, 0x1b, 0x94, 0xe8, - 0x61, 0x28, 0x7b, 0xef, 0x06, 0x59, 0x57, 0xb8, 0xb5, 0xd7, 0xaf, 0x60, 0x0a, 0xa7, 0x68, 0xaa, - 0x54, 0x70, 0x01, 0xaa, 0xd0, 0x4a, 0xb1, 0x78, 0x15, 0x26, 0xbc, 0xb8, 0x19, 0x7b, 0x6b, 0x01, - 0x95, 0x2e, 0x69, 0xcc, 0x45, 0xaa, 0xf1, 0xd3, 0xa6, 0x2a, 0x2c, 0xce, 0x50, 0x6b, 0xd2, 0x7c, - 0xb0, 0x6f, 0xc5, 0xa4, 0xa7, 0xf7, 0x35, 0xd5, 0xb9, 0x5a, 0xec, 0xeb, 0x62, 0xe6, 0x96, 0x23, - 0x74, 0x2e, 0xfe, 0xc1, 0x31, 0x96, 0x38, 0x74, 0x01, 0xa6, 0x9b, 0x3b, 0x4e, 0x6b, 0xb1, 0x9d, - 0xec, 0xd4, 0xbc, 0xb8, 0x19, 0xee, 0x93, 0xe8, 0x80, 0x69, 0xc2, 0x23, 0xa9, 0x91, 0x49, 0x21, - 0x96, 0x2f, 0x2e, 0xd6, 0x29, 0x25, 0xee, 0x2c, 0x63, 0xaa, 0x20, 0x70, 0xd7, 0x54, 0x90, 0x45, - 0x98, 0x94, 0x75, 0x35, 0x48, 0xcc, 0xb6, 0x87, 0x51, 0xd6, 0x3a, 0x15, 0x12, 0x25, 0xc0, 0xaa, - 0x6d, 0x59, 0x7a, 0xf4, 0x22, 0x8c, 0x7b, 0x81, 0x97, 0x78, 0x4e, 0x12, 0x46, 0x6c, 0x73, 0x1d, - 0xe3, 0x1b, 0x06, 0x95, 0xf0, 0x6b, 0x3a, 0x02, 0x9b, 0x74, 0xf6, 0x3b, 0x50, 0x51, 0xbe, 0x66, - 0xd2, 0x5d, 0xd2, 0x2a, 0x70, 0x97, 0xec, 0xbd, 0x23, 0x48, 0x8b, 0x79, 0x39, 0xd7, 0x62, 0xfe, - 0xb7, 0x2c, 0x48, 0x5d, 0x6e, 0xd0, 0x45, 0xa8, 0xb4, 0x42, 0x76, 0x6b, 0x16, 0xc9, 0xab, 0xe8, - 0x07, 0x73, 0x85, 0x07, 0x17, 0x54, 0xbc, 0xff, 0xea, 0xb2, 0x04, 0x4e, 0x0b, 0xa3, 0x25, 0x18, - 0x6e, 0x45, 0xa4, 0x91, 0xb0, 0xa0, 0x91, 0x9e, 0x7c, 0xf8, 0x1c, 0xe1, 0xf4, 0x58, 0x16, 0xb4, - 0x7f, 0xdd, 0x02, 0xe0, 0x46, 0x69, 0x27, 0xd8, 0x26, 0x27, 0x70, 0xd0, 0xae, 0xc1, 0x40, 0xdc, - 0x22, 0xcd, 0x6e, 0xf7, 0x99, 0x69, 0x7b, 0x1a, 0x2d, 0xd2, 0x4c, 0x3b, 0x9c, 0xfe, 0xc3, 0xac, - 0xb4, 0xfd, 0xb3, 0x00, 0x13, 0x29, 0x19, 0x3d, 0x00, 0xa1, 0x67, 0x0c, 0x97, 0xfc, 0x07, 0x32, - 0x2e, 0xf9, 0x15, 0x46, 0xad, 0x79, 0xe1, 0xbf, 0x03, 0xe5, 0x3d, 0xe7, 0x96, 0x38, 0x65, 0x3d, - 0xd5, 0xbd, 0x19, 0x94, 0xff, 0xfc, 0xba, 0x73, 0x8b, 0xeb, 0xb1, 0x4f, 0xc9, 0x09, 0xb2, 0xee, - 0xdc, 0x3a, 0xe2, 0xb7, 0x96, 0x4c, 0x48, 0xd1, 0xc3, 0xdc, 0x17, 0xff, 0x53, 0xfa, 0x9f, 0x4d, - 0x3b, 0x5a, 0x09, 0xab, 0xcb, 0x0b, 0x84, 0x89, 0xb6, 0xaf, 0xba, 0xbc, 0x20, 0x5b, 0x97, 0x17, - 0xf4, 0x51, 0x97, 0x17, 0xa0, 0xf7, 0x60, 0x58, 0x5c, 0x87, 0x30, 0x5f, 0xc2, 0xd1, 0xf3, 0x0b, - 0x7d, 0xd4, 0x27, 0x6e, 0x53, 0x78, 0x9d, 0x0b, 0x52, 0x4f, 0x17, 0xd0, 0x9e, 0xf5, 0xca, 0x0a, - 0xd1, 0xdf, 0xb0, 0x60, 0x42, 0xfc, 0xc6, 0xe4, 0xdd, 0x36, 0x89, 0x13, 0xa1, 0x0f, 0x7c, 0xa2, - 0xff, 0x36, 0x88, 0x82, 0xbc, 0x29, 0x9f, 0x90, 0x62, 0xd6, 0x44, 0xf6, 0x6c, 0x51, 0xa6, 0x15, - 0xe8, 0x1f, 0x5b, 0x30, 0xb3, 0xe7, 0xdc, 0xe2, 0x35, 0x72, 0x18, 0x76, 0x12, 0x2f, 0x14, 0xbe, - 0x91, 0xaf, 0xf4, 0x37, 0xfc, 0x1d, 0xc5, 0x79, 0x23, 0xa5, 0x1b, 0xd5, 0x4c, 0x1e, 0x49, 0xcf, - 0xa6, 0xe6, 0xb6, 0x6b, 0x76, 0x0b, 0x46, 0xe4, 0x7c, 0xcb, 0x39, 0x0d, 0xd5, 0x74, 0x65, 0xe7, - 0xd8, 0xb7, 0x51, 0xda, 0xe9, 0x89, 0xd5, 0x23, 0xe6, 0xda, 0x3d, 0xad, 0xe7, 0x1d, 0x18, 0xd3, - 0xe7, 0xd8, 0x3d, 0xad, 0xeb, 0x5d, 0x38, 0x95, 0x33, 0x97, 0xee, 0x69, 0x95, 0x37, 0xe1, 0x81, - 0xc2, 0xf9, 0x71, 0x2f, 0x2b, 0xb6, 0xbf, 0x69, 0xe9, 0x72, 0xf0, 0x04, 0xcc, 0x53, 0xcb, 0xa6, - 0x79, 0xea, 0x4c, 0xf7, 0x95, 0x53, 0x60, 0xa3, 0x7a, 0x4b, 0x6f, 0x34, 0x95, 0xea, 0xe8, 0x35, - 0x18, 0xf2, 0x29, 0x44, 0xde, 0xc3, 0xd9, 0xbd, 0x57, 0x64, 0xaa, 0x4b, 0x31, 0x78, 0x8c, 0x05, - 0x07, 0xfb, 0xb7, 0x2c, 0x18, 0x38, 0x81, 0x9e, 0xc0, 0x66, 0x4f, 0x3c, 0x53, 0xc8, 0x5a, 0xe4, - 0x3d, 0x98, 0xc7, 0xce, 0xcd, 0x15, 0x99, 0xdb, 0xa1, 0xa0, 0x63, 0xfe, 0x4f, 0x09, 0x46, 0x69, - 0x55, 0xd2, 0x61, 0xe4, 0x65, 0x18, 0xf7, 0x9d, 0x4d, 0xe2, 0x4b, 0x93, 0x79, 0xf6, 0x10, 0x7b, - 0x59, 0x47, 0x62, 0x93, 0x96, 0x16, 0xde, 0xd2, 0x6f, 0x0f, 0x84, 0xfe, 0xa2, 0x0a, 0x1b, 0x57, - 0x0b, 0xd8, 0xa4, 0xa5, 0xe7, 0xa9, 0x9b, 0x4e, 0xd2, 0xdc, 0x11, 0x07, 0x5c, 0xd5, 0xdc, 0x1b, - 0x14, 0x88, 0x39, 0x8e, 0x2a, 0x70, 0x72, 0x76, 0x5e, 0x27, 0x11, 0x53, 0xe0, 0xb8, 0x7a, 0xac, - 0x14, 0x38, 0x6c, 0xa2, 0x71, 0x96, 0x3e, 0x27, 0x36, 0x6f, 0x90, 0xb9, 0xc3, 0xf4, 0x11, 0x9b, - 0x87, 0xea, 0x30, 0xe3, 0x05, 0x4d, 0xbf, 0xed, 0x92, 0x6b, 0x01, 0xd7, 0xee, 0x7c, 0xef, 0x3d, - 0xe2, 0x0a, 0x05, 0x5a, 0x79, 0x2e, 0xad, 0xe5, 0xd0, 0xe0, 0xdc, 0x92, 0xf6, 0xff, 0x07, 0xa7, - 0x2e, 0x87, 0x8e, 0xbb, 0xe4, 0xf8, 0x4e, 0xd0, 0x24, 0xd1, 0x5a, 0xb0, 0xdd, 0xf3, 0x42, 0x5e, - 0xbf, 0x3e, 0x2f, 0xf5, 0xba, 0x3e, 0xb7, 0x77, 0x00, 0xe9, 0x15, 0x08, 0x37, 0x30, 0x0c, 0xc3, - 0x1e, 0xaf, 0x4a, 0x4c, 0xff, 0xc7, 0xf3, 0xb5, 0xeb, 0x8e, 0x96, 0x69, 0x0e, 0x4e, 0x1c, 0x80, - 0x25, 0x23, 0xfb, 0x25, 0xc8, 0x8d, 0xcd, 0xe8, 0x7d, 0x94, 0xb6, 0x5f, 0x80, 0x69, 0x56, 0xf2, - 0x78, 0xc7, 0x3c, 0xfb, 0xaf, 0x58, 0x30, 0x79, 0x25, 0x13, 0x4d, 0xfb, 0x18, 0x0c, 0xf1, 0x0c, - 0x27, 0x59, 0xa3, 0x57, 0x83, 0x41, 0xb1, 0xc0, 0xde, 0x75, 0x9b, 0xcb, 0x8f, 0x2c, 0xa8, 0xa8, - 0xd0, 0xf7, 0x13, 0x50, 0x6a, 0x97, 0x0d, 0xa5, 0x36, 0xd7, 0x16, 0xa0, 0x9a, 0x53, 0xa4, 0xd3, - 0xa2, 0x4b, 0x2a, 0x2e, 0xb4, 0x8b, 0x19, 0x20, 0x65, 0xc3, 0xa3, 0x08, 0x27, 0xcc, 0xe0, 0x51, - 0x19, 0x29, 0xca, 0x6e, 0xc4, 0x15, 0xed, 0x87, 0xe4, 0x46, 0x5c, 0xb5, 0xa7, 0x40, 0xfa, 0xd5, - 0xb5, 0x26, 0xb3, 0x5d, 0xe1, 0xd3, 0xcc, 0x6b, 0x94, 0xad, 0x4d, 0x15, 0x8e, 0x3d, 0x27, 0xbc, - 0x40, 0x05, 0xf4, 0x88, 0x09, 0x32, 0xf1, 0x8f, 0xa7, 0x29, 0x48, 0x8b, 0xd8, 0x17, 0x61, 0x32, - 0xd3, 0x61, 0xe8, 0x05, 0x18, 0x6c, 0xed, 0x38, 0x31, 0xc9, 0x78, 0x01, 0x0d, 0xd6, 0x29, 0xf0, - 0xe8, 0x70, 0x6e, 0x42, 0x15, 0x60, 0x10, 0xcc, 0xa9, 0xed, 0xff, 0x61, 0xc1, 0xc0, 0x95, 0xd0, - 0x3d, 0x89, 0xc9, 0xf4, 0xaa, 0x31, 0x99, 0x1e, 0x2a, 0x4a, 0xf2, 0x52, 0x38, 0x8f, 0x56, 0x33, - 0xf3, 0xe8, 0x4c, 0x21, 0x87, 0xee, 0x53, 0x68, 0x0f, 0x46, 0x59, 0xea, 0x18, 0xe1, 0x95, 0xf4, - 0x9c, 0x71, 0xbe, 0x9a, 0xcb, 0x9c, 0xaf, 0x26, 0x35, 0x52, 0xed, 0x94, 0xf5, 0x04, 0x0c, 0x0b, - 0xcf, 0x98, 0xac, 0x7f, 0xac, 0xa0, 0xc5, 0x12, 0x6f, 0xff, 0x52, 0x19, 0x8c, 0x54, 0x35, 0xe8, - 0xb7, 0x2d, 0x98, 0x8f, 0x78, 0x44, 0x90, 0x5b, 0x6b, 0x47, 0x5e, 0xb0, 0xdd, 0x68, 0xee, 0x10, - 0xb7, 0xed, 0x7b, 0xc1, 0xf6, 0xda, 0x76, 0x10, 0x2a, 0xf0, 0xca, 0x2d, 0xd2, 0x6c, 0x33, 0x3b, - 0x78, 0x8f, 0xbc, 0x38, 0xea, 0xe6, 0xf9, 0xfc, 0xed, 0xc3, 0xb9, 0x79, 0x7c, 0x2c, 0xde, 0xf8, - 0x98, 0x6d, 0x41, 0xdf, 0xb5, 0x60, 0x81, 0x67, 0x70, 0xe9, 0xbf, 0xfd, 0x5d, 0x4e, 0xa3, 0x75, - 0xc9, 0x2a, 0x65, 0xb2, 0x41, 0xa2, 0xbd, 0xa5, 0x17, 0x45, 0x87, 0x2e, 0xd4, 0x8f, 0x57, 0x17, - 0x3e, 0x6e, 0xe3, 0xec, 0x7f, 0x55, 0x86, 0x71, 0xda, 0x8b, 0x69, 0x14, 0xfc, 0x0b, 0xc6, 0x94, - 0x78, 0x24, 0x33, 0x25, 0xa6, 0x0d, 0xe2, 0xbb, 0x13, 0x00, 0x1f, 0xc3, 0xb4, 0xef, 0xc4, 0xc9, - 0x45, 0xe2, 0x44, 0xc9, 0x26, 0x71, 0xd8, 0x55, 0xaf, 0x98, 0xe6, 0xc7, 0xb9, 0x3d, 0x56, 0xe6, - 0xaf, 0xcb, 0x59, 0x66, 0xb8, 0x93, 0x3f, 0xda, 0x07, 0xc4, 0xae, 0x95, 0x23, 0x27, 0x88, 0xf9, - 0xb7, 0x78, 0xc2, 0x46, 0x7e, 0xbc, 0x5a, 0x67, 0x45, 0xad, 0xe8, 0x72, 0x07, 0x37, 0x9c, 0x53, - 0x83, 0xe6, 0x2e, 0x30, 0xd8, 0xaf, 0xbb, 0xc0, 0x50, 0x0f, 0x27, 0xf4, 0x3d, 0x98, 0x12, 0xa3, - 0xb2, 0xe5, 0x6d, 0x8b, 0x4d, 0xfa, 0x8d, 0x8c, 0x3b, 0x91, 0xd5, 0xbf, 0xe3, 0x43, 0x0f, 0x5f, - 0x22, 0xfb, 0x67, 0xe0, 0x14, 0xad, 0xce, 0x74, 0x99, 0x8e, 0x11, 0x81, 0xc9, 0xdd, 0xf6, 0x26, - 0xf1, 0x49, 0x22, 0x61, 0xa2, 0xd2, 0x5c, 0xb5, 0xdf, 0x2c, 0x9d, 0xea, 0x96, 0x97, 0x4c, 0x16, - 0x38, 0xcb, 0xd3, 0xfe, 0x65, 0x0b, 0x98, 0x63, 0xe2, 0x09, 0x6c, 0x7f, 0x9f, 0x32, 0xb7, 0xbf, - 0x6a, 0x91, 0x04, 0x2a, 0xd8, 0xf9, 0x9e, 0xe7, 0xc3, 0x52, 0x8f, 0xc2, 0x5b, 0x07, 0x52, 0xf7, - 0xef, 0xad, 0x71, 0xfd, 0x6f, 0x8b, 0x2f, 0x48, 0x15, 0x20, 0x89, 0xbe, 0x00, 0x23, 0x4d, 0xa7, - 0xe5, 0x34, 0x79, 0x8e, 0xb0, 0x42, 0xeb, 0x8f, 0x51, 0x68, 0x7e, 0x59, 0x94, 0xe0, 0xd6, 0x8c, - 0x8f, 0xcb, 0xaf, 0x94, 0xe0, 0x9e, 0x16, 0x0c, 0x55, 0xe5, 0xec, 0x2e, 0x8c, 0x1b, 0xcc, 0xee, - 0xe9, 0xd1, 0xf7, 0x0b, 0x7c, 0xbb, 0x50, 0x27, 0x96, 0x3d, 0x98, 0x0e, 0xb4, 0xff, 0x54, 0x38, - 0x4a, 0x75, 0xfa, 0xa3, 0xbd, 0x36, 0x04, 0x26, 0x49, 0x35, 0xc7, 0xcb, 0x0c, 0x1b, 0xdc, 0xc9, - 0xd9, 0xfe, 0x3b, 0x16, 0xdc, 0xaf, 0x13, 0x6a, 0xb1, 0xab, 0xbd, 0xec, 0xc9, 0x35, 0x18, 0x09, - 0x5b, 0x24, 0x72, 0xd2, 0x33, 0xd9, 0x39, 0xd9, 0xe9, 0x57, 0x05, 0xfc, 0xe8, 0x70, 0x6e, 0x46, - 0xe7, 0x2e, 0xe1, 0x58, 0x95, 0x44, 0x36, 0x0c, 0xb1, 0xce, 0x88, 0x45, 0x5c, 0x31, 0xcb, 0xa3, - 0xc5, 0xae, 0xbb, 0x62, 0x2c, 0x30, 0xf6, 0xcf, 0x5a, 0x7c, 0x62, 0xe9, 0x4d, 0x47, 0xef, 0xc2, - 0xd4, 0x1e, 0x3d, 0xbe, 0xad, 0xdc, 0x6a, 0x45, 0xdc, 0x8c, 0x2e, 0xfb, 0xe9, 0xa9, 0x5e, 0xfd, - 0xa4, 0x7d, 0xe4, 0x52, 0x55, 0xb4, 0x79, 0x6a, 0x3d, 0xc3, 0x0c, 0x77, 0xb0, 0xb7, 0xff, 0xb4, - 0xc4, 0x57, 0x22, 0xd3, 0xea, 0x9e, 0x80, 0xe1, 0x56, 0xe8, 0x2e, 0xaf, 0xd5, 0xb0, 0xe8, 0x21, - 0x25, 0xae, 0xea, 0x1c, 0x8c, 0x25, 0x1e, 0x9d, 0x07, 0x20, 0xb7, 0x12, 0x12, 0x05, 0x8e, 0xaf, - 0x2e, 0xe3, 0x95, 0xf2, 0xb4, 0xa2, 0x30, 0x58, 0xa3, 0xa2, 0x65, 0x5a, 0x51, 0xb8, 0xef, 0xb9, - 0x2c, 0xb0, 0xa3, 0x6c, 0x96, 0xa9, 0x2b, 0x0c, 0xd6, 0xa8, 0xe8, 0x51, 0xb9, 0x1d, 0xc4, 0x7c, - 0x03, 0x74, 0x36, 0x45, 0x2a, 0x9e, 0x91, 0xf4, 0xa8, 0x7c, 0x4d, 0x47, 0x62, 0x93, 0x16, 0x2d, - 0xc2, 0x50, 0xe2, 0xb0, 0x2b, 0xe6, 0xc1, 0x62, 0x97, 0x9d, 0x0d, 0x4a, 0xa1, 0x27, 0x8d, 0xa2, - 0x05, 0xb0, 0x28, 0x88, 0xde, 0x94, 0x22, 0x98, 0x8b, 0x64, 0xe1, 0x7a, 0x55, 0x38, 0x6d, 0x75, - 0xf1, 0xad, 0xcb, 0x60, 0xe1, 0xd2, 0x65, 0xf0, 0xb2, 0xbf, 0x54, 0x01, 0x48, 0xb5, 0x3d, 0xf4, - 0x5e, 0x87, 0x88, 0x78, 0xba, 0xbb, 0x7e, 0x78, 0xf7, 0xe4, 0x03, 0xfa, 0xb2, 0x05, 0xa3, 0x8e, - 0xef, 0x87, 0x4d, 0x27, 0x61, 0xbd, 0x5c, 0xea, 0x2e, 0xa2, 0x44, 0xfd, 0x8b, 0x69, 0x09, 0xde, - 0x84, 0xe7, 0xe4, 0xed, 0xb1, 0x86, 0xe9, 0xd9, 0x0a, 0xbd, 0x62, 0xf4, 0x71, 0x79, 0x08, 0xe0, - 0xd3, 0x63, 0x36, 0x7b, 0x08, 0xa8, 0x30, 0x69, 0xac, 0xe9, 0xff, 0xe8, 0x9a, 0x91, 0xb3, 0x66, - 0xa0, 0x38, 0x3c, 0xd7, 0x50, 0x7a, 0x7a, 0xa5, 0xab, 0x41, 0x75, 0xdd, 0x05, 0x7d, 0xb0, 0x38, - 0x86, 0x5d, 0xd3, 0xae, 0x7b, 0xb8, 0x9f, 0xbf, 0x03, 0x93, 0xae, 0xb9, 0xdd, 0x8a, 0xd9, 0xf4, - 0x78, 0x11, 0xdf, 0xcc, 0xee, 0x9c, 0x6e, 0xb0, 0x19, 0x04, 0xce, 0x32, 0x46, 0x75, 0x1e, 0x0c, - 0xb0, 0x16, 0x6c, 0x85, 0xc2, 0x85, 0xcf, 0x2e, 0x1c, 0xcb, 0x83, 0x38, 0x21, 0x7b, 0x94, 0x32, - 0xdd, 0x47, 0xaf, 0x88, 0xb2, 0x58, 0x71, 0x41, 0xaf, 0xc1, 0x10, 0x8b, 0xd0, 0x8a, 0xab, 0x23, - 0xc5, 0x76, 0x40, 0x33, 0xb8, 0x38, 0x5d, 0x54, 0xec, 0x6f, 0x8c, 0x05, 0x07, 0x74, 0x51, 0xa6, - 0x08, 0x88, 0xd7, 0x82, 0x6b, 0x31, 0x61, 0x29, 0x02, 0x2a, 0x4b, 0x1f, 0x4d, 0xa3, 0xff, 0x39, - 0x3c, 0x37, 0x3d, 0xa4, 0x51, 0x92, 0xea, 0x2b, 0xe2, 0xbf, 0xcc, 0x3a, 0x59, 0x85, 0xe2, 0xe6, - 0x99, 0x99, 0x29, 0xd3, 0xee, 0xbc, 0x6e, 0xb2, 0xc0, 0x59, 0x9e, 0x27, 0xba, 0x7d, 0xce, 0x06, - 0x30, 0x95, 0x5d, 0x58, 0xf7, 0x74, 0xbb, 0xfe, 0xe1, 0x00, 0x4c, 0x98, 0x13, 0x01, 0x2d, 0x40, - 0x45, 0x30, 0x51, 0xe9, 0xc2, 0xd4, 0xdc, 0x5e, 0x97, 0x08, 0x9c, 0xd2, 0xb0, 0x74, 0x69, 0xac, - 0xb8, 0xe6, 0x9b, 0x95, 0xa6, 0x4b, 0x53, 0x18, 0xac, 0x51, 0x51, 0x25, 0x7a, 0x33, 0x0c, 0x13, - 0xb5, 0x15, 0xa8, 0xd9, 0xb2, 0xc4, 0xa0, 0x58, 0x60, 0xe9, 0x16, 0xb0, 0x4b, 0xa2, 0x80, 0xf8, - 0xa6, 0x25, 0x53, 0x6d, 0x01, 0x97, 0x74, 0x24, 0x36, 0x69, 0xe9, 0x96, 0x16, 0xc6, 0x6c, 0xfa, - 0x09, 0x55, 0x3d, 0xf5, 0x75, 0x6b, 0xf0, 0x08, 0x45, 0x89, 0x47, 0x6f, 0xc0, 0xfd, 0x2a, 0xa0, - 0x10, 0x73, 0xcb, 0xb0, 0xac, 0x71, 0xc8, 0x38, 0x59, 0xdf, 0xbf, 0x9c, 0x4f, 0x86, 0x8b, 0xca, - 0xa3, 0x57, 0x61, 0x42, 0xa8, 0xc0, 0x92, 0xe3, 0xb0, 0xe9, 0xac, 0x70, 0xc9, 0xc0, 0xe2, 0x0c, - 0x35, 0xaa, 0xc1, 0x14, 0x85, 0x30, 0x2d, 0x54, 0x72, 0xe0, 0x81, 0x91, 0x6a, 0xaf, 0xbf, 0x94, - 0xc1, 0xe3, 0x8e, 0x12, 0x68, 0x11, 0x26, 0xb9, 0x8e, 0x42, 0xcf, 0x94, 0x6c, 0x1c, 0x84, 0x67, - 0xad, 0x5a, 0x08, 0x57, 0x4d, 0x34, 0xce, 0xd2, 0xa3, 0x97, 0x60, 0xcc, 0x89, 0x9a, 0x3b, 0x5e, - 0x42, 0x9a, 0x49, 0x3b, 0xe2, 0x09, 0x38, 0x34, 0x6f, 0x8f, 0x45, 0x0d, 0x87, 0x0d, 0x4a, 0xfb, - 0x3d, 0x38, 0x95, 0xe3, 0x94, 0x4f, 0x27, 0x8e, 0xd3, 0xf2, 0xe4, 0x37, 0x65, 0xbc, 0xd6, 0x16, - 0xeb, 0x6b, 0xf2, 0x6b, 0x34, 0x2a, 0x3a, 0x3b, 0x99, 0x49, 0x5c, 0x4b, 0x0d, 0xab, 0x66, 0xe7, - 0xaa, 0x44, 0xe0, 0x94, 0xc6, 0xfe, 0x3d, 0x00, 0xcd, 0xa0, 0xd3, 0x87, 0xcf, 0xd2, 0x4b, 0x30, - 0x26, 0xf3, 0x19, 0x6b, 0x79, 0x34, 0xd5, 0x67, 0x5e, 0xd0, 0x70, 0xd8, 0xa0, 0xa4, 0x6d, 0x0b, - 0x54, 0x16, 0xd0, 0x8c, 0x8f, 0x5c, 0x9a, 0x03, 0x34, 0xa5, 0x41, 0x4f, 0xc3, 0x48, 0x4c, 0xfc, - 0xad, 0xcb, 0x5e, 0xb0, 0x2b, 0x26, 0xb6, 0x92, 0xc2, 0x0d, 0x01, 0xc7, 0x8a, 0x02, 0x2d, 0x41, - 0xb9, 0xed, 0xb9, 0x62, 0x2a, 0xcb, 0x0d, 0xbf, 0x7c, 0x6d, 0xad, 0x76, 0x74, 0x38, 0xf7, 0x48, - 0x51, 0x9a, 0x66, 0x7a, 0xb4, 0x8f, 0xe7, 0xe9, 0xf2, 0xa3, 0x85, 0xf3, 0xee, 0x06, 0x86, 0x8e, - 0x79, 0x37, 0x70, 0x1e, 0x40, 0x7c, 0xb5, 0x9c, 0xcb, 0xe5, 0x74, 0xd4, 0x2e, 0x28, 0x0c, 0xd6, - 0xa8, 0x50, 0x0c, 0xd3, 0xcd, 0x88, 0x38, 0xf2, 0x0c, 0xcd, 0xdd, 0xcb, 0x47, 0xee, 0xdc, 0x40, - 0xb0, 0x9c, 0x65, 0x86, 0x3b, 0xf9, 0xa3, 0x10, 0xa6, 0x5d, 0x11, 0xbf, 0x9a, 0x56, 0x5a, 0x39, - 0xbe, 0x4f, 0x3b, 0x73, 0xc8, 0xc9, 0x32, 0xc2, 0x9d, 0xbc, 0xd1, 0xdb, 0x30, 0x2b, 0x81, 0x9d, - 0x21, 0xc3, 0x6c, 0xb9, 0x94, 0x97, 0xce, 0xdc, 0x3e, 0x9c, 0x9b, 0xad, 0x15, 0x52, 0xe1, 0x2e, - 0x1c, 0x10, 0x86, 0x21, 0x76, 0x97, 0x14, 0x57, 0x47, 0xd9, 0x3e, 0xf7, 0x64, 0xb1, 0x31, 0x80, - 0xce, 0xf5, 0x79, 0x76, 0x0f, 0x25, 0xdc, 0x7c, 0xd3, 0x6b, 0x39, 0x06, 0xc4, 0x82, 0x13, 0xda, - 0x82, 0x51, 0x27, 0x08, 0xc2, 0xc4, 0xe1, 0x2a, 0xd4, 0x58, 0xb1, 0xee, 0xa7, 0x31, 0x5e, 0x4c, - 0x4b, 0x70, 0xee, 0xca, 0x73, 0x50, 0xc3, 0x60, 0x9d, 0x31, 0xba, 0x09, 0x93, 0xe1, 0x4d, 0x2a, - 0x1c, 0xa5, 0x95, 0x22, 0xae, 0x8e, 0xb3, 0xba, 0x9e, 0xef, 0xd3, 0x4e, 0x6b, 0x14, 0xd6, 0xa4, - 0x96, 0xc9, 0x14, 0x67, 0x6b, 0x41, 0xf3, 0x86, 0xb5, 0x7a, 0x22, 0xf5, 0x67, 0x4f, 0xad, 0xd5, - 0xba, 0x71, 0x9a, 0x85, 0xa0, 0x73, 0xb7, 0x55, 0xb6, 0xfa, 0x27, 0x33, 0x21, 0xe8, 0x29, 0x0a, - 0xeb, 0x74, 0x68, 0x07, 0xc6, 0xd2, 0x2b, 0xab, 0x28, 0x66, 0x19, 0x6a, 0x46, 0xcf, 0x9f, 0xef, - 0xef, 0xe3, 0xd6, 0xb4, 0x92, 0xfc, 0xe4, 0xa0, 0x43, 0xb0, 0xc1, 0x79, 0xf6, 0xa7, 0x60, 0x54, - 0x1b, 0xd8, 0xe3, 0x78, 0x65, 0xcf, 0xbe, 0x0a, 0x53, 0xd9, 0xa1, 0x3b, 0x96, 0x57, 0xf7, 0xff, - 0x2a, 0xc1, 0x64, 0xce, 0xcd, 0x15, 0x4b, 0xf5, 0x9c, 0x11, 0xa8, 0x69, 0x66, 0x67, 0x53, 0x2c, - 0x96, 0xfa, 0x10, 0x8b, 0x52, 0x46, 0x97, 0x0b, 0x65, 0xb4, 0x10, 0x85, 0x03, 0xef, 0x47, 0x14, - 0x9a, 0xbb, 0xcf, 0x60, 0x5f, 0xbb, 0xcf, 0x5d, 0x10, 0x9f, 0xc6, 0x06, 0x36, 0xdc, 0xc7, 0x06, - 0xf6, 0xd5, 0x12, 0x4c, 0x65, 0xf3, 0x09, 0x9f, 0xc0, 0x7d, 0xc7, 0x6b, 0xc6, 0x7d, 0x47, 0x7e, - 0xe2, 0xf4, 0x6c, 0x96, 0xe3, 0xa2, 0xbb, 0x0f, 0x9c, 0xb9, 0xfb, 0x78, 0xb2, 0x2f, 0x6e, 0xdd, - 0xef, 0x41, 0xfe, 0x6e, 0x09, 0x4e, 0x67, 0x8b, 0x2c, 0xfb, 0x8e, 0xb7, 0x77, 0x02, 0x7d, 0x73, - 0xd5, 0xe8, 0x9b, 0x67, 0xfa, 0xf9, 0x1a, 0xd6, 0xb4, 0xc2, 0x0e, 0xba, 0x91, 0xe9, 0xa0, 0x85, - 0xfe, 0x59, 0x76, 0xef, 0xa5, 0xef, 0x95, 0xe1, 0x4c, 0x6e, 0xb9, 0xf4, 0xba, 0x60, 0xd5, 0xb8, - 0x2e, 0x38, 0x9f, 0xb9, 0x2e, 0xb0, 0xbb, 0x97, 0xbe, 0x3b, 0xf7, 0x07, 0x22, 0xf2, 0x8c, 0x65, - 0x4f, 0xbb, 0xc3, 0xbb, 0x03, 0x23, 0xf2, 0x4c, 0x31, 0xc2, 0x26, 0xdf, 0x9f, 0xa4, 0x3b, 0x83, - 0xdf, 0xb3, 0xe0, 0x81, 0xdc, 0xb1, 0x39, 0x01, 0xbb, 0xfa, 0x15, 0xd3, 0xae, 0xfe, 0x44, 0xdf, - 0xb3, 0xb5, 0xc0, 0xd0, 0xfe, 0xf5, 0x72, 0xc1, 0xb7, 0x30, 0xcb, 0xe4, 0x55, 0x18, 0x75, 0x9a, - 0x4d, 0x12, 0xc7, 0xeb, 0xa1, 0xab, 0x92, 0x95, 0x3d, 0xc3, 0xb4, 0x8d, 0x14, 0x7c, 0x74, 0x38, - 0x37, 0x9b, 0x65, 0x91, 0xa2, 0xb1, 0xce, 0xc1, 0x4c, 0x80, 0x58, 0xba, 0xab, 0x09, 0x10, 0xcf, - 0x03, 0xec, 0x2b, 0x7b, 0x45, 0xd6, 0xcc, 0xa9, 0x59, 0x32, 0x34, 0x2a, 0xf4, 0xd3, 0xec, 0x14, - 0xc0, 0x9d, 0x81, 0xf8, 0x54, 0x7c, 0xae, 0xcf, 0xb1, 0xd2, 0x1d, 0x8b, 0x78, 0x88, 0xb3, 0x32, - 0x09, 0x2b, 0x96, 0xe8, 0x33, 0x30, 0x15, 0xf3, 0x0c, 0x1a, 0xcb, 0xbe, 0x13, 0xb3, 0xc0, 0x1a, - 0x31, 0x0b, 0x59, 0xdc, 0x72, 0x23, 0x83, 0xc3, 0x1d, 0xd4, 0xf6, 0x57, 0x07, 0xe0, 0xc1, 0x2e, - 0xc2, 0x07, 0x2d, 0x9a, 0x97, 0xf7, 0x4f, 0x65, 0xed, 0x76, 0xb3, 0xb9, 0x85, 0x0d, 0x43, 0x5e, - 0x66, 0x8c, 0x4b, 0xef, 0x7b, 0x8c, 0xbf, 0x62, 0x69, 0x16, 0x55, 0xee, 0xe2, 0xfb, 0xa9, 0x63, - 0x0a, 0xd5, 0xbb, 0x68, 0x62, 0xdd, 0xca, 0xb1, 0x53, 0x9e, 0xef, 0xbb, 0x39, 0x7d, 0x1b, 0x2e, - 0x4f, 0xf6, 0xaa, 0xe7, 0x8b, 0x16, 0x3c, 0x92, 0xdb, 0x5e, 0xc3, 0xd9, 0x68, 0x01, 0x2a, 0x4d, - 0x0a, 0xd4, 0x82, 0xec, 0xd2, 0x50, 0x57, 0x89, 0xc0, 0x29, 0x8d, 0xe1, 0x53, 0x54, 0xea, 0xe9, - 0x53, 0xf4, 0x2f, 0x2d, 0x98, 0xc9, 0x36, 0xe2, 0x04, 0x24, 0xe0, 0x9a, 0x29, 0x01, 0x3f, 0xda, - 0xcf, 0x58, 0x16, 0x08, 0xbf, 0x3f, 0x9e, 0x80, 0xfb, 0x0a, 0xde, 0x8b, 0xd8, 0x87, 0xe9, 0xed, - 0x26, 0x31, 0xc3, 0x17, 0xc5, 0xc7, 0xe4, 0x46, 0x7a, 0x76, 0x8d, 0x75, 0xe4, 0x07, 0xd9, 0x0e, - 0x12, 0xdc, 0x59, 0x05, 0xfa, 0xa2, 0x05, 0x33, 0xce, 0xcd, 0xb8, 0xe3, 0xfd, 0x26, 0x31, 0x67, - 0x9e, 0xcf, 0xb5, 0xaf, 0xf6, 0x78, 0xef, 0x89, 0x85, 0x18, 0xcd, 0xe4, 0x51, 0xe1, 0xdc, 0xba, - 0x10, 0x16, 0x79, 0x21, 0xa9, 0x9e, 0xdc, 0x25, 0xc0, 0x36, 0x2f, 0xfc, 0x89, 0xcb, 0x42, 0x89, - 0xc1, 0x8a, 0x0f, 0xba, 0x0e, 0x95, 0x6d, 0x19, 0x93, 0x28, 0x64, 0x6d, 0xee, 0xe6, 0x95, 0x1b, - 0xb8, 0xc8, 0x63, 0x3e, 0x14, 0x0a, 0xa7, 0xac, 0xd0, 0xab, 0x50, 0x0e, 0xb6, 0xe2, 0x6e, 0x0f, - 0x66, 0x64, 0x7c, 0xf0, 0x78, 0xa4, 0xf4, 0x95, 0xd5, 0x06, 0xa6, 0x05, 0x69, 0xf9, 0x68, 0xd3, - 0x15, 0x57, 0x02, 0xb9, 0xe5, 0xf1, 0x52, 0xad, 0xb3, 0x3c, 0x5e, 0xaa, 0x61, 0x5a, 0x10, 0xad, - 0xc2, 0x20, 0x0b, 0x71, 0x12, 0xf6, 0xfe, 0xdc, 0x4c, 0x0f, 0x1d, 0xe1, 0x5b, 0x3c, 0x74, 0x9a, - 0x81, 0x31, 0x2f, 0x8e, 0x5e, 0x83, 0xa1, 0x26, 0x7b, 0x3f, 0x42, 0x18, 0x67, 0xf2, 0xb3, 0x97, - 0x74, 0xbc, 0x30, 0xc1, 0x6f, 0x39, 0x39, 0x1c, 0x0b, 0x0e, 0x68, 0x03, 0x86, 0x9a, 0xa4, 0xb5, - 0xb3, 0x15, 0x0b, 0x9b, 0xcb, 0xc7, 0x73, 0x79, 0x75, 0x79, 0x2e, 0x45, 0x70, 0x65, 0x14, 0x58, - 0xf0, 0x42, 0x9f, 0x84, 0xd2, 0x56, 0x53, 0x44, 0x3b, 0xe5, 0xda, 0xf9, 0xcd, 0x70, 0xf6, 0xa5, - 0xa1, 0xdb, 0x87, 0x73, 0xa5, 0xd5, 0x65, 0x5c, 0xda, 0x6a, 0xa2, 0x2b, 0x30, 0xbc, 0xc5, 0x63, - 0x92, 0x45, 0x9e, 0xdf, 0xc7, 0xf3, 0xc3, 0xa5, 0x3b, 0xc2, 0x96, 0x79, 0x94, 0x8e, 0x40, 0x60, - 0xc9, 0x04, 0x6d, 0x00, 0x6c, 0xa9, 0xd8, 0x6a, 0x91, 0xe8, 0xf7, 0xa3, 0xfd, 0x44, 0x60, 0x0b, - 0x03, 0x84, 0x82, 0x62, 0x8d, 0x0f, 0xfa, 0x3c, 0x54, 0x1c, 0xf9, 0x22, 0x10, 0x4b, 0xf2, 0x6b, - 0xea, 0x03, 0xe9, 0x82, 0xeb, 0xfe, 0x58, 0x12, 0x9f, 0xad, 0x8a, 0x08, 0xa7, 0x4c, 0xd1, 0x2e, - 0x8c, 0xef, 0xc7, 0xad, 0x1d, 0x22, 0x17, 0x28, 0xcb, 0xfc, 0x5b, 0xb0, 0x21, 0x5d, 0x17, 0x84, - 0x5e, 0x94, 0xb4, 0x1d, 0xbf, 0x43, 0xa6, 0xb0, 0x90, 0xae, 0xeb, 0x3a, 0x33, 0x6c, 0xf2, 0xa6, - 0x9d, 0xfe, 0x6e, 0x3b, 0xdc, 0x3c, 0x48, 0x88, 0xc8, 0x07, 0x9c, 0xdb, 0xe9, 0xaf, 0x73, 0x92, - 0xce, 0x4e, 0x17, 0x08, 0x2c, 0x99, 0xd0, 0x25, 0xec, 0xc8, 0xd7, 0xb6, 0x84, 0x95, 0xe5, 0x89, - 0xc2, 0xee, 0xe9, 0x68, 0x6f, 0xda, 0x29, 0x4c, 0xf6, 0xa5, 0xac, 0x98, 0xcc, 0x6b, 0xed, 0x84, - 0x49, 0x18, 0x64, 0xe4, 0xed, 0x74, 0xb1, 0xcc, 0xab, 0xe7, 0xd0, 0x77, 0xca, 0xbc, 0x3c, 0x2a, - 0x9c, 0x5b, 0x17, 0x72, 0x61, 0xa2, 0x15, 0x46, 0xc9, 0xcd, 0x30, 0x92, 0xb3, 0x0a, 0x75, 0x39, - 0x7e, 0x1b, 0x94, 0xa2, 0x46, 0xe6, 0xa1, 0x6d, 0x62, 0x70, 0x86, 0x27, 0x1d, 0x92, 0xb8, 0xe9, - 0xf8, 0x64, 0xed, 0x6a, 0xf5, 0x54, 0xf1, 0x90, 0x34, 0x38, 0x49, 0xe7, 0x90, 0x08, 0x04, 0x96, - 0x4c, 0xa8, 0xf4, 0x61, 0xa9, 0xe5, 0x59, 0x02, 0xe3, 0x02, 0xe9, 0xd3, 0xe1, 0xbb, 0xcc, 0xa5, - 0x0f, 0x03, 0x63, 0x5e, 0x9c, 0xce, 0x7c, 0xa1, 0x7b, 0x86, 0x71, 0xf5, 0x74, 0xf1, 0xcc, 0x17, - 0x2a, 0xeb, 0xd5, 0x46, 0xb7, 0x99, 0xaf, 0x88, 0x70, 0xca, 0xd4, 0xfe, 0xd6, 0x50, 0xa7, 0xb6, - 0xc0, 0xce, 0x18, 0x5f, 0xb2, 0x3a, 0x2e, 0xe0, 0x3f, 0xd1, 0xaf, 0xc9, 0xe3, 0x2e, 0xea, 0x89, - 0x5f, 0xb4, 0xe0, 0xbe, 0x56, 0xee, 0x47, 0x89, 0xad, 0xb7, 0x3f, 0xcb, 0x09, 0xef, 0x06, 0x95, - 0x1a, 0x3c, 0x1f, 0x8f, 0x0b, 0x6a, 0xca, 0xea, 0xe2, 0xe5, 0xf7, 0xad, 0x8b, 0xaf, 0xc3, 0x08, - 0x53, 0xef, 0xd2, 0x54, 0x44, 0x7d, 0xb9, 0xb1, 0xb1, 0x4d, 0x7c, 0x59, 0x14, 0xc4, 0x8a, 0x05, - 0xfa, 0x39, 0x0b, 0x1e, 0xce, 0x36, 0x1d, 0x13, 0x86, 0x16, 0x69, 0x2d, 0xf9, 0xf1, 0x66, 0x55, - 0x7c, 0xff, 0xc3, 0xf5, 0x6e, 0xc4, 0x47, 0xbd, 0x08, 0x70, 0xf7, 0xca, 0x50, 0x2d, 0xe7, 0x7c, - 0x35, 0x64, 0xde, 0xcf, 0xf5, 0x3e, 0x63, 0xa1, 0xe7, 0x61, 0x6c, 0x2f, 0x6c, 0x07, 0x32, 0xc6, - 0x44, 0x44, 0x10, 0x33, 0x5b, 0xf0, 0xba, 0x06, 0xc7, 0x06, 0xd5, 0xc9, 0xea, 0xfb, 0xdf, 0xb0, - 0x72, 0x14, 0x55, 0x7e, 0x02, 0x7c, 0xc5, 0x3c, 0x01, 0x3e, 0x96, 0x3d, 0x01, 0x76, 0x58, 0xea, - 0x8c, 0xc3, 0x5f, 0xff, 0xe9, 0x7a, 0xfb, 0xcd, 0xd5, 0x64, 0xfb, 0x70, 0xb6, 0x97, 0x70, 0x66, - 0xae, 0x7c, 0xae, 0xba, 0xe3, 0x4e, 0x5d, 0xf9, 0xdc, 0xb5, 0x1a, 0x66, 0x98, 0x7e, 0xb3, 0x7e, - 0xd8, 0xff, 0xcd, 0x82, 0x72, 0x3d, 0x74, 0x4f, 0xc0, 0xf2, 0xf8, 0x29, 0xc3, 0xf2, 0xf8, 0x60, - 0xc1, 0xdb, 0x9d, 0x85, 0x76, 0xc6, 0x95, 0x8c, 0x9d, 0xf1, 0xe1, 0x22, 0x06, 0xdd, 0xad, 0x8a, - 0x7f, 0xaf, 0x0c, 0xfa, 0x4b, 0xa3, 0xe8, 0x5f, 0xdf, 0x89, 0x4f, 0x78, 0xb9, 0xdb, 0xe3, 0xa3, - 0x82, 0x33, 0xf3, 0x00, 0x94, 0xe1, 0xa6, 0x3f, 0x66, 0xae, 0xe1, 0x37, 0x88, 0xb7, 0xbd, 0x93, - 0x10, 0x37, 0xfb, 0x39, 0x27, 0xe7, 0x1a, 0xfe, 0x5f, 0x2c, 0x98, 0xcc, 0xd4, 0x8e, 0xfc, 0xbc, - 0xd8, 0xb5, 0x3b, 0xb4, 0x38, 0x4d, 0xf7, 0x0c, 0x76, 0x9b, 0x07, 0x50, 0xd7, 0x3a, 0xd2, 0xaa, - 0xc3, 0x74, 0x5f, 0x75, 0xef, 0x13, 0x63, 0x8d, 0x02, 0xbd, 0x00, 0xa3, 0x49, 0xd8, 0x0a, 0xfd, - 0x70, 0xfb, 0xe0, 0x12, 0x91, 0x79, 0x66, 0xd4, 0xe5, 0xdb, 0x46, 0x8a, 0xc2, 0x3a, 0x9d, 0xfd, - 0x2b, 0x65, 0xc8, 0xbe, 0x4e, 0xfb, 0xe7, 0x73, 0xf2, 0xc3, 0x39, 0x27, 0xbf, 0x67, 0xc1, 0x14, - 0xad, 0x9d, 0x79, 0x57, 0x49, 0xa7, 0x6a, 0xf5, 0xae, 0x87, 0xd5, 0xe5, 0x5d, 0x8f, 0xc7, 0xa8, - 0xec, 0x72, 0xc3, 0x76, 0x22, 0xac, 0x42, 0x9a, 0x70, 0xa2, 0x50, 0x2c, 0xb0, 0x82, 0x8e, 0x44, - 0x91, 0x88, 0x48, 0xd3, 0xe9, 0x48, 0x14, 0x61, 0x81, 0x95, 0xcf, 0x7e, 0x0c, 0x14, 0x3c, 0xfb, - 0xc1, 0x52, 0xb4, 0x09, 0x8f, 0x1e, 0xa1, 0x50, 0x68, 0x29, 0xda, 0xa4, 0xab, 0x4f, 0x4a, 0x63, - 0x7f, 0xb3, 0x0c, 0x63, 0xf5, 0xd0, 0x4d, 0x2f, 0x56, 0x9e, 0x37, 0x2e, 0x56, 0xce, 0x66, 0x2e, - 0x56, 0xa6, 0x74, 0xda, 0x3f, 0xbf, 0x46, 0xf9, 0xa0, 0xae, 0x51, 0xfe, 0xcc, 0x82, 0x89, 0x7a, - 0xe8, 0xd2, 0x09, 0xfa, 0x93, 0x34, 0x1b, 0xf5, 0x04, 0x80, 0x43, 0x5d, 0x12, 0x00, 0xfe, 0x7d, - 0x0b, 0x86, 0xeb, 0xa1, 0x7b, 0x02, 0x16, 0xd3, 0x57, 0x4c, 0x8b, 0xe9, 0xfd, 0x05, 0x52, 0xb6, - 0xc0, 0x48, 0xfa, 0x1b, 0x65, 0x18, 0xa7, 0xed, 0x0c, 0xb7, 0xe5, 0x28, 0x19, 0x3d, 0x62, 0xf5, - 0xd1, 0x23, 0x54, 0x99, 0x0b, 0x7d, 0x3f, 0xbc, 0x99, 0x1d, 0xb1, 0x55, 0x06, 0xc5, 0x02, 0x8b, - 0x9e, 0x86, 0x91, 0x56, 0x44, 0xf6, 0xbd, 0xb0, 0x1d, 0x67, 0x63, 0x5a, 0xeb, 0x02, 0x8e, 0x15, - 0x05, 0xd5, 0xdb, 0x63, 0x2f, 0x68, 0x12, 0xe9, 0xe5, 0x33, 0xc0, 0xbc, 0x7c, 0x78, 0x0e, 0x55, - 0x0d, 0x8e, 0x0d, 0x2a, 0x74, 0x03, 0x2a, 0xec, 0x3f, 0x5b, 0x37, 0xc7, 0x7f, 0xd5, 0x43, 0x24, - 0x2e, 0x17, 0x0c, 0x70, 0xca, 0x0b, 0x9d, 0x07, 0x48, 0xa4, 0x3f, 0x52, 0x2c, 0x42, 0xae, 0x95, - 0x46, 0xa9, 0x3c, 0x95, 0x62, 0xac, 0x51, 0xa1, 0xa7, 0xa0, 0x92, 0x38, 0x9e, 0x7f, 0xd9, 0x0b, - 0x48, 0x2c, 0xfc, 0xb9, 0x44, 0x5e, 0x72, 0x01, 0xc4, 0x29, 0x9e, 0xee, 0xe8, 0x2c, 0xa0, 0x9f, - 0xbf, 0x09, 0x34, 0xc2, 0xa8, 0xd9, 0x8e, 0x7e, 0x59, 0x41, 0xb1, 0x46, 0x61, 0xbf, 0x04, 0xa7, - 0xeb, 0xa1, 0x5b, 0x0f, 0xa3, 0x64, 0x35, 0x8c, 0x6e, 0x3a, 0x91, 0x2b, 0xc7, 0x6f, 0x4e, 0xa6, - 0xc8, 0xa6, 0xbb, 0xee, 0x20, 0xb7, 0x06, 0x18, 0xc9, 0xaf, 0x9f, 0x63, 0x7b, 0xfa, 0x31, 0x83, - 0x6f, 0xfe, 0x5d, 0x09, 0x50, 0x9d, 0x79, 0x4c, 0x19, 0x0f, 0x47, 0xbd, 0x0d, 0x13, 0x31, 0xb9, - 0xec, 0x05, 0xed, 0x5b, 0xf2, 0x7c, 0xd5, 0x25, 0xb2, 0xa9, 0xb1, 0xa2, 0x53, 0x72, 0x8b, 0x8a, - 0x09, 0xc3, 0x19, 0x6e, 0xb4, 0x0b, 0xa3, 0x76, 0xb0, 0x18, 0x5f, 0x8b, 0x49, 0x24, 0x1e, 0x4a, - 0x62, 0x5d, 0x88, 0x25, 0x10, 0xa7, 0x78, 0x3a, 0x65, 0xd8, 0x9f, 0x2b, 0x61, 0x80, 0xc3, 0x30, - 0x91, 0x93, 0x8c, 0x3d, 0xb5, 0xa1, 0xc1, 0xb1, 0x41, 0x85, 0x56, 0x01, 0xc5, 0xed, 0x56, 0xcb, - 0x67, 0xd7, 0x90, 0x8e, 0x7f, 0x21, 0x0a, 0xdb, 0x2d, 0x7e, 0x95, 0x24, 0x5e, 0xa9, 0x68, 0x74, - 0x60, 0x71, 0x4e, 0x09, 0x2a, 0x18, 0xb6, 0x62, 0xf6, 0x5b, 0xc4, 0xf4, 0x73, 0xdb, 0x66, 0x83, - 0x81, 0xb0, 0xc4, 0xd9, 0x5f, 0x60, 0x9b, 0x19, 0x7b, 0xdf, 0x26, 0x69, 0x47, 0x04, 0xed, 0xc1, - 0x78, 0x8b, 0x6d, 0x58, 0x49, 0x14, 0xfa, 0x3e, 0x91, 0x7a, 0xe3, 0x9d, 0x79, 0x6f, 0xf1, 0xf7, - 0x2e, 0x74, 0x76, 0xd8, 0xe4, 0x6e, 0x7f, 0x69, 0x92, 0xc9, 0xa5, 0x06, 0x3f, 0xb4, 0x0c, 0x0b, - 0x9f, 0x6c, 0xa1, 0xa1, 0xcd, 0x16, 0xbf, 0x27, 0x97, 0x4a, 0x7a, 0xe1, 0xd7, 0x8d, 0x65, 0x59, - 0xf4, 0x3a, 0xbb, 0x83, 0xe3, 0xc2, 0xa0, 0xd7, 0x4b, 0x96, 0x9c, 0xca, 0xb8, 0x6e, 0x13, 0x05, - 0xb1, 0xc6, 0x04, 0x5d, 0x86, 0x71, 0xf1, 0x1c, 0x8a, 0x30, 0x3c, 0x94, 0x8d, 0xe3, 0xef, 0x38, - 0xd6, 0x91, 0x47, 0x59, 0x00, 0x36, 0x0b, 0xa3, 0x6d, 0x78, 0x58, 0x7b, 0xbc, 0x2b, 0xc7, 0x83, - 0x90, 0xcb, 0x96, 0x47, 0x6e, 0x1f, 0xce, 0x3d, 0xbc, 0xd1, 0x8d, 0x10, 0x77, 0xe7, 0x83, 0xae, - 0xc2, 0x69, 0xa7, 0x99, 0x78, 0xfb, 0xa4, 0x46, 0x1c, 0xd7, 0xf7, 0x02, 0x62, 0x26, 0x79, 0x78, - 0xe0, 0xf6, 0xe1, 0xdc, 0xe9, 0xc5, 0x3c, 0x02, 0x9c, 0x5f, 0x0e, 0xbd, 0x02, 0x15, 0x37, 0x88, - 0x45, 0x1f, 0x0c, 0x19, 0xef, 0xd2, 0x55, 0x6a, 0x57, 0x1a, 0xea, 0xfb, 0xd3, 0x3f, 0x38, 0x2d, - 0x80, 0xb6, 0x61, 0x4c, 0x0f, 0xe4, 0x12, 0x6f, 0x1a, 0x3e, 0xd3, 0xe5, 0x6c, 0x6b, 0x44, 0x3f, - 0x71, 0xab, 0x9b, 0xf2, 0xcf, 0x35, 0x02, 0xa3, 0x0c, 0xc6, 0xe8, 0x35, 0x40, 0x31, 0x89, 0xf6, - 0xbd, 0x26, 0x59, 0x6c, 0xb2, 0x24, 0xc3, 0xcc, 0x56, 0x33, 0x62, 0x04, 0x9b, 0xa0, 0x46, 0x07, - 0x05, 0xce, 0x29, 0x85, 0x2e, 0x52, 0x89, 0xa2, 0x43, 0x85, 0x3b, 0xb5, 0x54, 0xf3, 0xaa, 0x35, - 0xd2, 0x8a, 0x48, 0xd3, 0x49, 0x88, 0x6b, 0x72, 0xc4, 0x99, 0x72, 0x74, 0xbf, 0x51, 0x6f, 0x37, - 0x80, 0xe9, 0x04, 0xdc, 0xf9, 0x7e, 0x03, 0x3d, 0x21, 0xed, 0x84, 0x71, 0x72, 0x85, 0x24, 0x37, - 0xc3, 0x68, 0x57, 0x64, 0x66, 0x4b, 0x13, 0x37, 0xa6, 0x28, 0xac, 0xd3, 0x51, 0x8d, 0x88, 0x5d, - 0x82, 0xad, 0xd5, 0xd8, 0x3d, 0xc5, 0x48, 0xba, 0x4e, 0x2e, 0x72, 0x30, 0x96, 0x78, 0x49, 0xba, - 0x56, 0x5f, 0x66, 0xb7, 0x0f, 0x19, 0xd2, 0xb5, 0xfa, 0x32, 0x96, 0x78, 0x44, 0x3a, 0xdf, 0xfc, - 0x9b, 0x28, 0xbe, 0x37, 0xea, 0x94, 0xcb, 0x7d, 0x3e, 0xfb, 0x17, 0xc0, 0x94, 0x7a, 0x6d, 0x90, - 0xa7, 0xac, 0x8b, 0xab, 0x93, 0x6c, 0x92, 0xf4, 0x9f, 0xef, 0x4e, 0xd9, 0xe2, 0xd6, 0x32, 0x9c, - 0x70, 0x07, 0x6f, 0x23, 0x79, 0xc8, 0x54, 0xcf, 0xb7, 0x37, 0x16, 0xa0, 0x12, 0xb7, 0x37, 0xdd, - 0x70, 0xcf, 0xf1, 0x02, 0x76, 0x59, 0xa0, 0x29, 0x22, 0x0d, 0x89, 0xc0, 0x29, 0x0d, 0x5a, 0x85, - 0x11, 0x47, 0x1c, 0xbe, 0x84, 0x79, 0x3f, 0x37, 0x9b, 0x80, 0x3c, 0xa0, 0x71, 0x3b, 0xa8, 0xfc, - 0x87, 0x55, 0x59, 0xf4, 0x32, 0x8c, 0x8b, 0x80, 0x37, 0xe1, 0xab, 0x7a, 0xca, 0x8c, 0x8d, 0x68, - 0xe8, 0x48, 0x6c, 0xd2, 0xa2, 0x9f, 0x86, 0x09, 0xca, 0x25, 0x15, 0x6c, 0xd5, 0x99, 0x7e, 0x24, - 0xa2, 0x96, 0x53, 0x5d, 0x2f, 0x8c, 0x33, 0xcc, 0x90, 0x0b, 0x0f, 0x39, 0xed, 0x24, 0x64, 0xc6, - 0x4a, 0x73, 0xfe, 0x6f, 0x84, 0xbb, 0x24, 0x60, 0xd6, 0xfd, 0x91, 0xa5, 0xb3, 0xb7, 0x0f, 0xe7, - 0x1e, 0x5a, 0xec, 0x42, 0x87, 0xbb, 0x72, 0x41, 0xd7, 0x60, 0x34, 0x09, 0x7d, 0xe1, 0x64, 0x1e, - 0x57, 0xef, 0x2b, 0x4e, 0x7e, 0xb4, 0xa1, 0xc8, 0x74, 0x73, 0x82, 0x2a, 0x8a, 0x75, 0x3e, 0x68, - 0x83, 0xaf, 0x31, 0x96, 0xaa, 0x93, 0xc4, 0xd5, 0xfb, 0x8b, 0x3b, 0x46, 0x65, 0xf4, 0x34, 0x97, - 0xa0, 0x28, 0x89, 0x75, 0x36, 0xe8, 0x02, 0x4c, 0xb7, 0x22, 0x2f, 0x64, 0x13, 0x5b, 0x19, 0x8a, - 0xab, 0x46, 0x5a, 0xbc, 0xe9, 0x7a, 0x96, 0x00, 0x77, 0x96, 0x41, 0xe7, 0xa8, 0x82, 0xca, 0x81, - 0xd5, 0x07, 0xf8, 0x9b, 0x2c, 0x5c, 0x39, 0xe5, 0x30, 0xac, 0xb0, 0xb3, 0x9f, 0x86, 0xe9, 0x0e, - 0x49, 0x79, 0x2c, 0x87, 0xdf, 0x7f, 0x32, 0x08, 0x15, 0x65, 0x0e, 0x44, 0x0b, 0xa6, 0x95, 0xf7, - 0x81, 0xac, 0x95, 0x77, 0x84, 0xea, 0x6b, 0xba, 0x61, 0x77, 0x23, 0xe7, 0x49, 0xf9, 0xb3, 0x05, - 0xa2, 0xa1, 0xff, 0xe8, 0xbc, 0x63, 0x3c, 0xb7, 0x9f, 0x1e, 0x18, 0x07, 0xba, 0x1e, 0x18, 0xfb, - 0x7c, 0xde, 0x91, 0x1e, 0x0d, 0x5b, 0xa1, 0xbb, 0x56, 0xcf, 0xbe, 0x77, 0x56, 0xa7, 0x40, 0xcc, - 0x71, 0x4c, 0xb9, 0xa7, 0xdb, 0x3a, 0x53, 0xee, 0x87, 0xef, 0x50, 0xb9, 0x97, 0x0c, 0x70, 0xca, - 0x0b, 0xf9, 0x30, 0xdd, 0x34, 0x9f, 0xaa, 0x53, 0x11, 0x79, 0x8f, 0xf6, 0x7c, 0x34, 0xae, 0xad, - 0xbd, 0x61, 0xb3, 0x9c, 0xe5, 0x82, 0x3b, 0x19, 0xa3, 0x97, 0x61, 0xe4, 0xdd, 0x30, 0x66, 0xd3, - 0x4e, 0xec, 0x6d, 0x32, 0x06, 0x6a, 0xe4, 0xf5, 0xab, 0x0d, 0x06, 0x3f, 0x3a, 0x9c, 0x1b, 0xad, - 0x87, 0xae, 0xfc, 0x8b, 0x55, 0x01, 0x74, 0x0b, 0x4e, 0x1b, 0x12, 0x41, 0x35, 0x17, 0xfa, 0x6f, - 0xee, 0xc3, 0xa2, 0xba, 0xd3, 0x6b, 0x79, 0x9c, 0x70, 0x7e, 0x05, 0xf6, 0xb7, 0xb8, 0xd1, 0x53, - 0x98, 0x46, 0x48, 0xdc, 0xf6, 0x4f, 0xe2, 0xa1, 0x8a, 0x15, 0xc3, 0x6a, 0x73, 0xc7, 0x86, 0xf5, - 0xdf, 0xb5, 0x98, 0x61, 0x7d, 0x83, 0xec, 0xb5, 0x7c, 0x27, 0x39, 0x09, 0x37, 0xef, 0xd7, 0x61, - 0x24, 0x11, 0xb5, 0x75, 0x7b, 0x5b, 0x43, 0x6b, 0x14, 0xbb, 0x5c, 0x50, 0x1b, 0xa2, 0x84, 0x62, - 0xc5, 0xc6, 0xfe, 0x67, 0x7c, 0x04, 0x24, 0xe6, 0x04, 0x6c, 0x0b, 0x35, 0xd3, 0xb6, 0x30, 0xd7, - 0xe3, 0x0b, 0x0a, 0x6c, 0x0c, 0xff, 0xd4, 0x6c, 0x37, 0x3b, 0x7b, 0x7c, 0xd8, 0x6f, 0x74, 0xec, - 0x5f, 0xb4, 0x60, 0x26, 0xcf, 0x11, 0x80, 0x2a, 0x31, 0xfc, 0xe4, 0xa3, 0x6e, 0xb8, 0x54, 0x0f, - 0x5e, 0x17, 0x70, 0xac, 0x28, 0xfa, 0xce, 0x6f, 0x7f, 0xbc, 0x84, 0x5f, 0x57, 0xc1, 0x7c, 0xd5, - 0x10, 0xbd, 0xca, 0xe3, 0x36, 0x2c, 0xf5, 0xec, 0xe0, 0xf1, 0x62, 0x36, 0xec, 0x5f, 0x2d, 0xc1, - 0x0c, 0x37, 0x51, 0x2f, 0xee, 0x87, 0x9e, 0x5b, 0x0f, 0x5d, 0x11, 0xc5, 0xf2, 0x26, 0x8c, 0xb5, - 0xb4, 0xe3, 0x6a, 0xb7, 0x94, 0x43, 0xfa, 0xb1, 0x36, 0x3d, 0x36, 0xe8, 0x50, 0x6c, 0xf0, 0x42, - 0x2e, 0x8c, 0x91, 0x7d, 0xaf, 0xa9, 0xec, 0x9c, 0xa5, 0x63, 0x8b, 0x74, 0x55, 0xcb, 0x8a, 0xc6, - 0x07, 0x1b, 0x5c, 0xef, 0xc1, 0x2b, 0x34, 0xf6, 0xd7, 0x2c, 0xb8, 0xbf, 0x20, 0x41, 0x11, 0xad, - 0xee, 0x26, 0xbb, 0x0c, 0x10, 0x4f, 0x64, 0xaa, 0xea, 0xf8, 0x15, 0x01, 0x16, 0x58, 0xf4, 0x59, - 0x00, 0x6e, 0xe2, 0xa7, 0x5a, 0xb4, 0xf8, 0xf4, 0xfe, 0x12, 0x77, 0x68, 0xd9, 0x1d, 0x64, 0x79, - 0xac, 0xf1, 0xb2, 0x7f, 0xb9, 0x0c, 0x83, 0xfc, 0xbd, 0xf4, 0x55, 0x18, 0xde, 0xe1, 0xe9, 0x90, - 0xfb, 0xc9, 0xbc, 0x9c, 0x1e, 0x47, 0x38, 0x00, 0xcb, 0xc2, 0x68, 0x1d, 0x4e, 0x89, 0x48, 0xa9, - 0x1a, 0xf1, 0x9d, 0x03, 0x79, 0xaa, 0xe5, 0x4f, 0x93, 0xc8, 0xb4, 0xf9, 0xa7, 0xd6, 0x3a, 0x49, - 0x70, 0x5e, 0x39, 0xf4, 0x6a, 0x47, 0x12, 0x44, 0x9e, 0x48, 0x5a, 0xe9, 0xc0, 0x3d, 0x12, 0x21, - 0xbe, 0x0c, 0xe3, 0xad, 0x8e, 0xf3, 0xbb, 0xf6, 0x54, 0xb5, 0x79, 0x66, 0x37, 0x69, 0x99, 0x57, - 0x41, 0x9b, 0xf9, 0x50, 0x6c, 0xec, 0x44, 0x24, 0xde, 0x09, 0x7d, 0x57, 0xbc, 0xcb, 0x9a, 0x7a, - 0x15, 0x64, 0xf0, 0xb8, 0xa3, 0x04, 0xe5, 0xb2, 0xe5, 0x78, 0x7e, 0x3b, 0x22, 0x29, 0x97, 0x21, - 0x93, 0xcb, 0x6a, 0x06, 0x8f, 0x3b, 0x4a, 0xd0, 0x79, 0x74, 0x5a, 0x3c, 0xea, 0x29, 0xe3, 0xe7, - 0x95, 0xab, 0xc8, 0xb0, 0xf4, 0xa3, 0xef, 0x92, 0xd3, 0x45, 0x5c, 0xf9, 0xab, 0x67, 0x41, 0xb5, - 0x27, 0xe3, 0x84, 0x07, 0xbd, 0xe4, 0x72, 0x27, 0x4f, 0x4b, 0xfe, 0x91, 0x05, 0xa7, 0x72, 0xdc, - 0xc7, 0xb8, 0xa8, 0xda, 0xf6, 0xe2, 0x44, 0xbd, 0x88, 0xa1, 0x89, 0x2a, 0x0e, 0xc7, 0x8a, 0x82, - 0xae, 0x07, 0x2e, 0x0c, 0xb3, 0x02, 0x50, 0xb8, 0x7c, 0x08, 0xec, 0xf1, 0x04, 0x20, 0x3a, 0x0b, - 0x03, 0xed, 0x98, 0x44, 0xf2, 0x4d, 0x46, 0x29, 0xbf, 0x99, 0x45, 0x90, 0x61, 0xa8, 0x46, 0xb9, - 0xad, 0x8c, 0x71, 0x9a, 0x46, 0xc9, 0xcd, 0x71, 0x1c, 0x67, 0x7f, 0xa5, 0x0c, 0x93, 0x19, 0x07, - 0x50, 0xda, 0x90, 0xbd, 0x30, 0xf0, 0x92, 0x50, 0xe5, 0xe0, 0xe3, 0x29, 0x47, 0x48, 0x6b, 0x67, - 0x5d, 0xc0, 0xb1, 0xa2, 0x40, 0x8f, 0xc9, 0x87, 0x7a, 0xb3, 0x2f, 0x7d, 0x2c, 0xd5, 0x8c, 0xb7, - 0x7a, 0xfb, 0x7d, 0xb2, 0xe7, 0x51, 0x18, 0x68, 0x85, 0xea, 0x15, 0x75, 0x35, 0x9e, 0x78, 0xa9, - 0x56, 0x0f, 0x43, 0x1f, 0x33, 0x24, 0xfa, 0x98, 0xf8, 0xfa, 0xcc, 0x7d, 0x05, 0x76, 0xdc, 0x30, - 0xd6, 0xba, 0xe0, 0x09, 0x18, 0xde, 0x25, 0x07, 0x91, 0x17, 0x6c, 0x67, 0x6f, 0x6b, 0x2e, 0x71, - 0x30, 0x96, 0x78, 0x33, 0xe5, 0xfd, 0xf0, 0x3d, 0x79, 0x75, 0x67, 0xa4, 0xe7, 0xae, 0xf6, 0x1b, - 0x16, 0x4c, 0xb2, 0x7c, 0xb7, 0x22, 0x53, 0x83, 0x17, 0x06, 0x27, 0xa0, 0x27, 0x3c, 0x0a, 0x83, - 0x11, 0xad, 0x34, 0xfb, 0x94, 0x06, 0x6b, 0x09, 0xe6, 0x38, 0xf4, 0x10, 0x0c, 0xb0, 0x26, 0xd0, - 0xc1, 0x1b, 0xe3, 0x19, 0xef, 0x6b, 0x4e, 0xe2, 0x60, 0x06, 0x65, 0x21, 0x73, 0x98, 0xb4, 0x7c, - 0x8f, 0x37, 0x3a, 0x35, 0xb7, 0x7e, 0x38, 0x42, 0xe6, 0x72, 0x9b, 0xf6, 0xfe, 0x42, 0xe6, 0xf2, - 0x59, 0x76, 0xd7, 0xc1, 0xff, 0x7b, 0x09, 0xce, 0xe4, 0x96, 0xeb, 0x3b, 0x64, 0xae, 0x7b, 0xe9, - 0xbb, 0x73, 0xd7, 0x9b, 0x7f, 0x05, 0x5b, 0x3e, 0xc1, 0x2b, 0xd8, 0x81, 0x7e, 0xd5, 0x94, 0xc1, - 0x3e, 0x22, 0xd9, 0x72, 0xbb, 0xec, 0x43, 0x12, 0xc9, 0x96, 0xdb, 0xb6, 0x82, 0x33, 0xc4, 0x8f, - 0x4a, 0x05, 0xdf, 0xc2, 0x4e, 0x13, 0xe7, 0xa8, 0x9c, 0x61, 0xc8, 0x58, 0xa8, 0x5d, 0x63, 0x5c, - 0xc6, 0x70, 0x18, 0x56, 0x58, 0xe4, 0x69, 0x31, 0x61, 0xbc, 0x69, 0x2f, 0x1f, 0x6b, 0xc9, 0xcc, - 0x9b, 0xd6, 0x71, 0x3d, 0xad, 0x44, 0x36, 0x3e, 0x6c, 0x5d, 0x3b, 0x01, 0x96, 0xfb, 0x3f, 0x01, - 0x8e, 0xe5, 0x9f, 0xfe, 0xd0, 0x22, 0x4c, 0xee, 0x79, 0x01, 0x7b, 0x0f, 0xd7, 0xd4, 0x7b, 0x54, - 0x88, 0xf4, 0xba, 0x89, 0xc6, 0x59, 0xfa, 0xd9, 0x97, 0x61, 0xfc, 0xce, 0x4d, 0x56, 0xdf, 0x2b, - 0xc3, 0x83, 0x5d, 0x96, 0x3d, 0x97, 0xf5, 0xc6, 0x18, 0x68, 0xb2, 0xbe, 0x63, 0x1c, 0xea, 0x30, - 0xb3, 0xd5, 0xf6, 0xfd, 0x03, 0xe6, 0xe5, 0x44, 0x5c, 0x49, 0x21, 0x14, 0x13, 0x95, 0xcc, 0x7a, - 0x35, 0x87, 0x06, 0xe7, 0x96, 0x44, 0xaf, 0x01, 0x0a, 0x37, 0x59, 0x82, 0x65, 0x37, 0x4d, 0x96, - 0xc1, 0x3a, 0xbe, 0x9c, 0x2e, 0xc6, 0xab, 0x1d, 0x14, 0x38, 0xa7, 0x14, 0xd5, 0x30, 0xd9, 0x0b, - 0xfe, 0xaa, 0x59, 0x19, 0x0d, 0x13, 0xeb, 0x48, 0x6c, 0xd2, 0xa2, 0x0b, 0x30, 0xed, 0xec, 0x3b, - 0x1e, 0x4f, 0x9e, 0x26, 0x19, 0x70, 0x15, 0x53, 0x19, 0x8a, 0x16, 0xb3, 0x04, 0xb8, 0xb3, 0x4c, - 0x26, 0xb8, 0x6d, 0xa8, 0x38, 0xb8, 0xad, 0xbb, 0x5c, 0xec, 0x65, 0xf7, 0xb3, 0xff, 0xa3, 0x45, - 0xb7, 0xaf, 0x9c, 0x07, 0x58, 0x69, 0x3f, 0x28, 0xfb, 0x95, 0x16, 0x67, 0xa6, 0xfa, 0x61, 0x59, - 0x47, 0x62, 0x93, 0x96, 0x4f, 0x88, 0x38, 0x75, 0xb2, 0x36, 0xf4, 0x44, 0x11, 0x00, 0xaa, 0x28, - 0xd0, 0x1b, 0x30, 0xec, 0x7a, 0xfb, 0x5e, 0x1c, 0x46, 0x62, 0xb1, 0x1c, 0xf7, 0xd1, 0x71, 0x25, - 0x07, 0x6b, 0x9c, 0x0d, 0x96, 0xfc, 0xec, 0xaf, 0x94, 0x60, 0x5c, 0xd6, 0xf8, 0x7a, 0x3b, 0x4c, - 0x9c, 0x13, 0xd8, 0x96, 0x2f, 0x18, 0xdb, 0xf2, 0xc7, 0xba, 0x45, 0xc1, 0xb2, 0x26, 0x15, 0x6e, - 0xc7, 0x57, 0x33, 0xdb, 0xf1, 0xe3, 0xbd, 0x59, 0x75, 0xdf, 0x86, 0xff, 0xb9, 0x05, 0xd3, 0x06, - 0xfd, 0x09, 0xec, 0x06, 0xab, 0xe6, 0x6e, 0xf0, 0x48, 0xcf, 0x6f, 0x28, 0xd8, 0x05, 0xbe, 0x51, - 0xca, 0xb4, 0x9d, 0x49, 0xff, 0x77, 0x61, 0x60, 0xc7, 0x89, 0xdc, 0x6e, 0x29, 0x40, 0x3b, 0x0a, - 0xcd, 0x5f, 0x74, 0x22, 0x97, 0xcb, 0xf0, 0xa7, 0xd5, 0xdb, 0x70, 0x4e, 0xe4, 0xf6, 0x8c, 0x29, - 0x60, 0x55, 0xa1, 0x97, 0x60, 0x28, 0x6e, 0x86, 0x2d, 0xe5, 0x7b, 0x79, 0x96, 0xbf, 0x1b, 0x47, - 0x21, 0x47, 0x87, 0x73, 0xc8, 0xac, 0x8e, 0x82, 0xb1, 0xa0, 0x9f, 0xdd, 0x86, 0x8a, 0xaa, 0xfa, - 0x9e, 0x7a, 0x95, 0xff, 0x41, 0x19, 0x4e, 0xe5, 0xcc, 0x0b, 0x14, 0x1b, 0xbd, 0xf5, 0x6c, 0x9f, - 0xd3, 0xe9, 0x7d, 0xf6, 0x57, 0xcc, 0x4e, 0x2c, 0xae, 0x18, 0xff, 0xbe, 0x2b, 0xbd, 0x16, 0x93, - 0x6c, 0xa5, 0x14, 0xd4, 0xbb, 0x52, 0x5a, 0xd9, 0x89, 0x75, 0x35, 0xad, 0x48, 0xb5, 0xf4, 0x9e, - 0x8e, 0xe9, 0x9f, 0x94, 0x61, 0x26, 0x2f, 0x78, 0x1e, 0xfd, 0x4c, 0xe6, 0x41, 0x91, 0xe7, 0xfb, - 0x0d, 0xbb, 0xe7, 0xaf, 0x8c, 0x88, 0x6c, 0x43, 0xf3, 0xe6, 0x13, 0x23, 0x3d, 0xbb, 0x59, 0xd4, - 0xc9, 0x82, 0x7c, 0x22, 0xfe, 0x10, 0x8c, 0x5c, 0xe2, 0x9f, 0xe8, 0xbb, 0x01, 0xe2, 0x05, 0x99, - 0x38, 0x13, 0xe4, 0x23, 0xc1, 0xbd, 0x83, 0x7c, 0x64, 0xcd, 0xb3, 0x1e, 0x8c, 0x6a, 0x5f, 0x73, - 0x4f, 0x47, 0x7c, 0x97, 0xee, 0x28, 0x5a, 0xbb, 0xef, 0xe9, 0xa8, 0x7f, 0xcd, 0x82, 0x8c, 0x9f, - 0x94, 0xb2, 0x7f, 0x58, 0x85, 0xf6, 0x8f, 0xb3, 0x30, 0x10, 0x85, 0x3e, 0xc9, 0xbe, 0x31, 0x81, - 0x43, 0x9f, 0x60, 0x86, 0x51, 0x0f, 0x41, 0x97, 0x8b, 0x1e, 0x82, 0xa6, 0x47, 0x63, 0x9f, 0xec, - 0x13, 0x69, 0x8d, 0x50, 0x32, 0xf9, 0x32, 0x05, 0x62, 0x8e, 0xb3, 0x7f, 0x6d, 0x00, 0x4e, 0xe5, - 0x84, 0xb4, 0xd1, 0x83, 0xca, 0xb6, 0x93, 0x90, 0x9b, 0xce, 0x41, 0x36, 0xef, 0xed, 0x05, 0x0e, - 0xc6, 0x12, 0xcf, 0x7c, 0x39, 0x79, 0xea, 0xbc, 0x8c, 0x8d, 0x48, 0x64, 0xcc, 0x13, 0xd8, 0x7b, - 0xf5, 0x36, 0xf0, 0x79, 0x80, 0x38, 0xf6, 0x57, 0x02, 0xaa, 0x7c, 0xb9, 0xc2, 0x53, 0x34, 0xcd, - 0xb3, 0xd8, 0xb8, 0x2c, 0x30, 0x58, 0xa3, 0x42, 0x35, 0x98, 0x6a, 0x45, 0x61, 0xc2, 0xed, 0x6e, - 0x35, 0xee, 0xa3, 0x30, 0x68, 0x06, 0x27, 0xd5, 0x33, 0x78, 0xdc, 0x51, 0x02, 0xbd, 0x00, 0xa3, - 0x22, 0x60, 0xa9, 0x1e, 0x86, 0xbe, 0xb0, 0xd2, 0xa8, 0x1b, 0xef, 0x46, 0x8a, 0xc2, 0x3a, 0x9d, - 0x56, 0x8c, 0x19, 0xf3, 0x86, 0x73, 0x8b, 0x71, 0x83, 0x9e, 0x46, 0x97, 0xc9, 0xa1, 0x31, 0xd2, - 0x57, 0x0e, 0x8d, 0xd4, 0x6e, 0x55, 0xe9, 0xfb, 0xfe, 0x02, 0x7a, 0x5a, 0x7a, 0xbe, 0x55, 0x86, - 0x21, 0x3e, 0x14, 0x27, 0xa0, 0x8a, 0xad, 0x0a, 0xdb, 0x4d, 0x97, 0x8c, 0x02, 0xbc, 0x2d, 0xf3, - 0x35, 0x27, 0x71, 0xb8, 0x18, 0x52, 0xab, 0x21, 0xb5, 0xf2, 0xa0, 0x79, 0x63, 0xbd, 0xcc, 0x66, - 0x8c, 0x13, 0xc0, 0x79, 0x68, 0xab, 0xe7, 0x6d, 0x80, 0x98, 0xbd, 0x4f, 0x4b, 0x79, 0x88, 0xdc, - 0x14, 0x4f, 0x76, 0xa9, 0xbd, 0xa1, 0x88, 0x79, 0x1b, 0xd2, 0x29, 0xa8, 0x10, 0x58, 0xe3, 0x38, - 0xfb, 0x22, 0x54, 0x14, 0x71, 0xaf, 0x93, 0xdc, 0x98, 0x2e, 0xbc, 0x3e, 0x05, 0x93, 0x99, 0xba, - 0x8e, 0x75, 0x10, 0xfc, 0x4d, 0x0b, 0x26, 0x79, 0x93, 0x57, 0x82, 0x7d, 0xb1, 0xd8, 0xdf, 0x83, - 0x19, 0x3f, 0x67, 0xd1, 0x89, 0x11, 0xed, 0x7f, 0x91, 0xaa, 0x83, 0x5f, 0x1e, 0x16, 0xe7, 0xd6, - 0x41, 0x0f, 0xff, 0xfc, 0x65, 0x6d, 0xc7, 0x17, 0x1e, 0xc8, 0x63, 0x3c, 0xb7, 0x38, 0x87, 0x61, - 0x85, 0xb5, 0xbf, 0x6f, 0xc1, 0x34, 0x6f, 0xf9, 0x25, 0x72, 0xa0, 0x0e, 0x39, 0x1f, 0x64, 0xdb, - 0x45, 0xea, 0xf4, 0x52, 0x41, 0xea, 0x74, 0xfd, 0xd3, 0xca, 0x5d, 0x3f, 0xed, 0x57, 0x2d, 0x10, - 0x33, 0xf0, 0x04, 0xd4, 0xf9, 0x4f, 0x9b, 0xea, 0xfc, 0x6c, 0xf1, 0xa4, 0x2e, 0xd0, 0xe3, 0xff, - 0xcc, 0x82, 0x29, 0x4e, 0x90, 0x5e, 0x5e, 0x7c, 0xa0, 0xe3, 0xd0, 0xcf, 0x7b, 0x3e, 0xea, 0x01, - 0xd5, 0xfc, 0x8f, 0x32, 0x06, 0x6b, 0xa0, 0xeb, 0x60, 0xb9, 0x72, 0x01, 0x1d, 0xe3, 0x9d, 0xaa, - 0x63, 0x67, 0xfb, 0xb3, 0xff, 0xd8, 0x02, 0xc4, 0xab, 0xc9, 0x3e, 0x69, 0xce, 0xb7, 0x3e, 0xed, - 0x40, 0x9f, 0x8a, 0x1a, 0x85, 0xc1, 0x1a, 0xd5, 0x5d, 0xe9, 0x9e, 0xcc, 0x0d, 0x54, 0xb9, 0xf7, - 0x0d, 0xd4, 0x31, 0x7a, 0xf4, 0xaf, 0x0e, 0x40, 0xd6, 0xdd, 0x11, 0x5d, 0x87, 0xb1, 0xa6, 0xd3, - 0x72, 0x36, 0x3d, 0xdf, 0x4b, 0x3c, 0x12, 0x77, 0xbb, 0xba, 0x5e, 0xd6, 0xe8, 0xc4, 0x75, 0x8f, - 0x06, 0xc1, 0x06, 0x1f, 0x34, 0x0f, 0xd0, 0x8a, 0xbc, 0x7d, 0xcf, 0x27, 0xdb, 0xec, 0x44, 0xc3, - 0x62, 0x1e, 0xf8, 0x7d, 0xac, 0x84, 0x62, 0x8d, 0x22, 0xc7, 0x47, 0xbe, 0x7c, 0xef, 0x7c, 0xe4, - 0x07, 0x8e, 0xe9, 0x23, 0x3f, 0xd8, 0x97, 0x8f, 0x3c, 0x86, 0xfb, 0xe4, 0xde, 0x4d, 0xff, 0xaf, - 0x7a, 0x3e, 0x11, 0x0a, 0x1b, 0x8f, 0x84, 0x98, 0xbd, 0x7d, 0x38, 0x77, 0x1f, 0xce, 0xa5, 0xc0, - 0x05, 0x25, 0xd1, 0x67, 0xa1, 0xea, 0xf8, 0x7e, 0x78, 0x53, 0xf5, 0xda, 0x4a, 0xdc, 0x74, 0xfc, - 0x34, 0xf9, 0xed, 0xc8, 0xd2, 0x43, 0xb7, 0x0f, 0xe7, 0xaa, 0x8b, 0x05, 0x34, 0xb8, 0xb0, 0xb4, - 0xbd, 0x0b, 0xa7, 0x1a, 0x24, 0x92, 0x4f, 0xdf, 0xa9, 0x25, 0xb6, 0x01, 0x95, 0x28, 0x23, 0x54, - 0xfa, 0x0a, 0x97, 0xd7, 0x12, 0x93, 0x49, 0x21, 0x92, 0x32, 0xb2, 0xff, 0xd4, 0x82, 0x61, 0xe1, - 0x42, 0x79, 0x02, 0xba, 0xcc, 0xa2, 0x61, 0x56, 0x9a, 0xcb, 0x17, 0xbc, 0xac, 0x31, 0x85, 0x06, - 0xa5, 0xb5, 0x8c, 0x41, 0xe9, 0x91, 0x6e, 0x4c, 0xba, 0x9b, 0x92, 0x7e, 0xa1, 0x0c, 0x13, 0xa6, - 0xfb, 0xe8, 0x09, 0x74, 0xc1, 0x15, 0x18, 0x8e, 0x85, 0xaf, 0x72, 0xa9, 0xd8, 0xe7, 0x2d, 0x3b, - 0x88, 0xe9, 0xcd, 0xb8, 0xf0, 0x4e, 0x96, 0x4c, 0x72, 0x9d, 0xa0, 0xcb, 0xf7, 0xd0, 0x09, 0xba, - 0x97, 0x07, 0xef, 0xc0, 0xdd, 0xf0, 0xe0, 0xb5, 0xbf, 0xcd, 0x84, 0xbf, 0x0e, 0x3f, 0x01, 0xbd, - 0xe0, 0x82, 0xb9, 0x4d, 0xd8, 0x5d, 0x66, 0x96, 0x68, 0x54, 0x81, 0x7e, 0xf0, 0x8f, 0x2c, 0x18, - 0x15, 0x84, 0x27, 0xd0, 0xec, 0xcf, 0x98, 0xcd, 0x7e, 0xb0, 0x4b, 0xb3, 0x0b, 0xda, 0xfb, 0xb7, - 0x4b, 0xaa, 0xbd, 0xf5, 0x30, 0x4a, 0xfa, 0x4a, 0x86, 0x3e, 0x42, 0x4f, 0x83, 0x61, 0x33, 0xf4, - 0xc5, 0x66, 0xfe, 0x50, 0x1a, 0x0c, 0xc7, 0xe1, 0x47, 0xda, 0x6f, 0xac, 0xa8, 0x59, 0xac, 0x56, - 0x18, 0x25, 0x62, 0x03, 0x4d, 0x63, 0xb5, 0xc2, 0x28, 0xc1, 0x0c, 0x83, 0x5c, 0x80, 0xc4, 0x89, - 0xb6, 0x49, 0x42, 0x61, 0x22, 0x7a, 0xb4, 0x78, 0x15, 0xb6, 0x13, 0xcf, 0x9f, 0xf7, 0x82, 0x24, - 0x4e, 0xa2, 0xf9, 0xb5, 0x20, 0xb9, 0x1a, 0xf1, 0xb3, 0x81, 0x16, 0xdd, 0xa6, 0x78, 0x61, 0x8d, - 0xaf, 0x0c, 0xaf, 0x60, 0x75, 0x0c, 0x9a, 0xf7, 0x3d, 0x57, 0x04, 0x1c, 0x2b, 0x0a, 0xfb, 0x45, - 0x26, 0x93, 0x59, 0x07, 0x1d, 0x2f, 0xf0, 0xec, 0xbb, 0x23, 0xaa, 0x6b, 0x99, 0xb1, 0xb7, 0xa6, - 0x87, 0xb7, 0x75, 0x17, 0x81, 0xb4, 0x62, 0xdd, 0x95, 0x38, 0x8d, 0x81, 0x43, 0x9f, 0xeb, 0xb8, - 0x06, 0x7c, 0xa6, 0x87, 0x2c, 0x3d, 0xc6, 0xc5, 0x1f, 0xcb, 0xcc, 0xc7, 0x32, 0x98, 0xad, 0xd5, - 0xb3, 0xe9, 0xea, 0x97, 0x25, 0x02, 0xa7, 0x34, 0x68, 0x41, 0x9c, 0x2c, 0xb9, 0x99, 0xe5, 0xc1, - 0xcc, 0xc9, 0x52, 0x7e, 0xbe, 0x76, 0xb4, 0x7c, 0x16, 0x46, 0xd5, 0x13, 0x40, 0x75, 0xfe, 0x92, - 0x4a, 0x85, 0xeb, 0x52, 0x2b, 0x29, 0x18, 0xeb, 0x34, 0x68, 0x03, 0x26, 0x63, 0xfe, 0x3e, 0x91, - 0x8c, 0x78, 0x10, 0x76, 0x83, 0x27, 0xe5, 0xf5, 0x61, 0xc3, 0x44, 0x1f, 0x31, 0x10, 0x5f, 0xac, - 0x32, 0x46, 0x22, 0xcb, 0x02, 0xbd, 0x0a, 0x13, 0xbe, 0xfe, 0x4e, 0x6b, 0x5d, 0x98, 0x15, 0x94, - 0x2b, 0x97, 0xf1, 0x8a, 0x6b, 0x1d, 0x67, 0xa8, 0xa9, 0x12, 0xa0, 0x43, 0x44, 0x02, 0x1d, 0x27, - 0xd8, 0x26, 0xb1, 0x78, 0xc0, 0x84, 0x29, 0x01, 0x97, 0x0b, 0x68, 0x70, 0x61, 0x69, 0xf4, 0x12, - 0x8c, 0xc9, 0xcf, 0xd7, 0x22, 0x80, 0x52, 0x87, 0x41, 0x0d, 0x87, 0x0d, 0x4a, 0x74, 0x13, 0x4e, - 0xcb, 0xff, 0x1b, 0x91, 0xb3, 0xb5, 0xe5, 0x35, 0x45, 0x00, 0xd6, 0x28, 0x63, 0xb1, 0x28, 0xbd, - 0xa7, 0x57, 0xf2, 0x88, 0x8e, 0x0e, 0xe7, 0xce, 0x8a, 0x5e, 0xcb, 0xc5, 0xb3, 0x41, 0xcc, 0xe7, - 0x8f, 0xd6, 0xe1, 0xd4, 0x0e, 0x71, 0xfc, 0x64, 0x67, 0x79, 0x87, 0x34, 0x77, 0xe5, 0x22, 0x62, - 0x71, 0x45, 0x9a, 0x9b, 0xdd, 0xc5, 0x4e, 0x12, 0x9c, 0x57, 0x0e, 0xbd, 0x05, 0xd5, 0x56, 0x7b, - 0xd3, 0xf7, 0xe2, 0x9d, 0x2b, 0x61, 0xc2, 0x6e, 0x2c, 0xd5, 0x0b, 0x3a, 0x22, 0x00, 0x49, 0xc5, - 0x54, 0xd5, 0x0b, 0xe8, 0x70, 0x21, 0x07, 0xf4, 0x1e, 0x9c, 0xce, 0x4c, 0x06, 0xfe, 0x28, 0x93, - 0x08, 0x54, 0x7a, 0x22, 0x7f, 0x39, 0xe5, 0x14, 0xe0, 0x61, 0x71, 0xb9, 0x28, 0x9c, 0x5f, 0xc5, - 0xfb, 0xbb, 0xc7, 0x7e, 0x97, 0x16, 0xd6, 0xb4, 0x1b, 0xf4, 0x79, 0x18, 0xd3, 0x67, 0x91, 0xd8, - 0x60, 0x1e, 0xeb, 0xf5, 0x26, 0xb1, 0xd0, 0x8d, 0xd4, 0x8c, 0xd2, 0x71, 0xd8, 0xe0, 0x68, 0x13, - 0xc8, 0xff, 0x3e, 0x74, 0x19, 0x46, 0x9a, 0xbe, 0x47, 0x82, 0x64, 0xad, 0xde, 0x2d, 0x70, 0x76, - 0x59, 0xd0, 0x88, 0x0e, 0x13, 0xf9, 0x9b, 0x38, 0x0c, 0x2b, 0x0e, 0xf6, 0xef, 0x94, 0x60, 0xae, - 0x47, 0x0a, 0xaf, 0x8c, 0x0d, 0xd0, 0xea, 0xcb, 0x06, 0xb8, 0x28, 0xdf, 0x03, 0xba, 0x92, 0x39, - 0x7f, 0x66, 0xde, 0xfa, 0x49, 0x4f, 0xa1, 0x59, 0xfa, 0xbe, 0xdd, 0xdf, 0x74, 0x33, 0xe2, 0x40, - 0x4f, 0x2f, 0xc0, 0xba, 0x6e, 0x0f, 0x1e, 0xec, 0x5f, 0xa3, 0x2f, 0x34, 0x05, 0xdb, 0xdf, 0x2e, - 0xc1, 0x69, 0xd5, 0x85, 0x3f, 0xb9, 0x1d, 0x77, 0xad, 0xb3, 0xe3, 0xee, 0x82, 0x21, 0xdd, 0xbe, - 0x0a, 0x43, 0x8d, 0x83, 0xb8, 0x99, 0xf8, 0x7d, 0x28, 0x40, 0x8f, 0x1a, 0x0b, 0x34, 0xdd, 0xa6, - 0xd9, 0x93, 0x7e, 0x62, 0xbd, 0xda, 0x7f, 0xc9, 0x82, 0xc9, 0x8d, 0xe5, 0x7a, 0x23, 0x6c, 0xee, - 0x92, 0x64, 0x91, 0x9b, 0x89, 0xb0, 0xd0, 0x7f, 0xac, 0x3b, 0xd4, 0x6b, 0xf2, 0x34, 0xa6, 0xb3, - 0x30, 0xb0, 0x13, 0xc6, 0x49, 0xf6, 0xb2, 0xe4, 0x62, 0x18, 0x27, 0x98, 0x61, 0xec, 0x3f, 0xb4, - 0x60, 0x90, 0xbd, 0x62, 0xd7, 0xeb, 0xb5, 0xc3, 0x7e, 0xbe, 0x0b, 0xbd, 0x00, 0x43, 0x64, 0x6b, - 0x8b, 0x34, 0x13, 0x31, 0xaa, 0x32, 0x22, 0x67, 0x68, 0x85, 0x41, 0xe9, 0xa6, 0xcf, 0x2a, 0xe3, - 0x7f, 0xb1, 0x20, 0x46, 0x37, 0xa0, 0x92, 0x78, 0x7b, 0x64, 0xd1, 0x75, 0xc5, 0x3d, 0xc5, 0x1d, - 0x04, 0x40, 0x6d, 0x48, 0x06, 0x38, 0xe5, 0x65, 0xff, 0x7c, 0x09, 0x20, 0x8d, 0xda, 0xeb, 0xf5, - 0x89, 0x4b, 0x1d, 0x0f, 0x3a, 0x3e, 0x96, 0xf3, 0xa0, 0x23, 0x4a, 0x19, 0xe6, 0x3c, 0xe7, 0xa8, - 0xba, 0xa9, 0xdc, 0x57, 0x37, 0x0d, 0x1c, 0xa7, 0x9b, 0x96, 0x61, 0x3a, 0x8d, 0x3a, 0x34, 0x43, - 0xb0, 0x59, 0xaa, 0xde, 0x8d, 0x2c, 0x12, 0x77, 0xd2, 0xdb, 0x5f, 0xb6, 0x40, 0xb8, 0x28, 0xf7, - 0x31, 0x99, 0xdf, 0x94, 0x6f, 0xaf, 0x19, 0x39, 0x05, 0xcf, 0x16, 0xfb, 0x6c, 0x8b, 0x4c, 0x82, - 0x6a, 0xf3, 0x30, 0xf2, 0x07, 0x1a, 0xbc, 0xec, 0xbf, 0x5e, 0x82, 0x51, 0x8e, 0x66, 0xf9, 0xea, - 0xfa, 0x68, 0xcd, 0xb1, 0x12, 0x3d, 0xb3, 0x67, 0xc9, 0x28, 0x63, 0x95, 0x0f, 0x58, 0x7f, 0x96, - 0x4c, 0x22, 0x70, 0x4a, 0x83, 0x9e, 0x80, 0xe1, 0xb8, 0xbd, 0xc9, 0xc8, 0x33, 0x5e, 0xca, 0x0d, - 0x0e, 0xc6, 0x12, 0x8f, 0x3e, 0x0b, 0x53, 0xbc, 0x5c, 0x14, 0xb6, 0x9c, 0x6d, 0x6e, 0xdb, 0x19, - 0x54, 0x31, 0x2a, 0x53, 0xeb, 0x19, 0xdc, 0xd1, 0xe1, 0xdc, 0x4c, 0x16, 0xc6, 0xac, 0x82, 0x1d, - 0x5c, 0xe8, 0x8c, 0x9d, 0xca, 0xba, 0xbf, 0xa3, 0x8b, 0x30, 0xc4, 0x85, 0x91, 0x10, 0x0e, 0x5d, - 0xee, 0x7a, 0x34, 0xa7, 0x79, 0xe0, 0x2f, 0xf4, 0x33, 0x21, 0x26, 0xca, 0xa3, 0xb7, 0x60, 0xd4, - 0x0d, 0x6f, 0x06, 0x37, 0x9d, 0xc8, 0x5d, 0xac, 0xaf, 0x89, 0xf1, 0xcc, 0xd5, 0x69, 0x6a, 0x29, - 0x99, 0xee, 0x88, 0xcf, 0xec, 0x9a, 0x29, 0x0a, 0xeb, 0xec, 0xd0, 0x06, 0x4b, 0xb1, 0xc2, 0xdf, - 0x0d, 0xee, 0xe6, 0xd6, 0xa3, 0x9e, 0x1a, 0xd6, 0x38, 0x8f, 0x8b, 0x3c, 0x2c, 0xe2, 0xd5, 0xe1, - 0x94, 0x91, 0xfd, 0xc5, 0x53, 0x60, 0xcc, 0x23, 0x23, 0xd1, 0xb3, 0x75, 0x97, 0x12, 0x3d, 0x63, - 0x18, 0x21, 0x7b, 0xad, 0xe4, 0xa0, 0xe6, 0x45, 0xdd, 0x32, 0xfc, 0xaf, 0x08, 0x9a, 0x4e, 0x9e, - 0x12, 0x83, 0x15, 0x9f, 0xfc, 0x6c, 0xdc, 0xe5, 0x0f, 0x30, 0x1b, 0xf7, 0xc0, 0x09, 0x66, 0xe3, - 0xbe, 0x02, 0xc3, 0xdb, 0x5e, 0x82, 0x49, 0x2b, 0x14, 0x1b, 0x71, 0xee, 0x4c, 0xb8, 0xc0, 0x49, - 0x3a, 0x73, 0xc6, 0x0a, 0x04, 0x96, 0x4c, 0xd0, 0x6b, 0x6a, 0x0d, 0x0c, 0x15, 0xeb, 0xb1, 0x9d, - 0xd7, 0x02, 0xb9, 0xab, 0x40, 0x64, 0xdf, 0x1e, 0xbe, 0xd3, 0xec, 0xdb, 0x2a, 0x7b, 0xf6, 0xc8, - 0xfb, 0xcb, 0x9e, 0x6d, 0x64, 0x17, 0xaf, 0xdc, 0xbd, 0xec, 0xe2, 0x5f, 0xb6, 0xe0, 0x74, 0x2b, - 0x2f, 0xd1, 0xbe, 0xc8, 0x83, 0xfd, 0x42, 0xdf, 0x2f, 0x09, 0x18, 0x15, 0xb2, 0x03, 0x4d, 0x2e, - 0x19, 0xce, 0xaf, 0x4e, 0xa6, 0x29, 0x1f, 0xbd, 0xd3, 0x34, 0xe5, 0xf7, 0x26, 0x61, 0x76, 0x9a, - 0xb4, 0x7c, 0xfc, 0x7d, 0x27, 0x2d, 0x7f, 0x4d, 0x25, 0x2d, 0xef, 0x92, 0xc8, 0x82, 0xa7, 0x24, - 0xef, 0x99, 0xaa, 0x5c, 0x4b, 0x37, 0x3e, 0x79, 0x37, 0xd2, 0x8d, 0xbf, 0x6d, 0x0a, 0x7b, 0x9e, - 0xfb, 0xfa, 0xa9, 0x1e, 0xc2, 0xde, 0xe0, 0xdb, 0x5d, 0xdc, 0xf3, 0xd4, 0xea, 0xd3, 0x77, 0x94, - 0x5a, 0xfd, 0xba, 0x9e, 0xb4, 0x1c, 0xf5, 0xc8, 0xca, 0x4d, 0x89, 0xfa, 0x4c, 0x55, 0x7e, 0x5d, - 0xdf, 0x82, 0x4e, 0x15, 0xf3, 0x55, 0x3b, 0x4d, 0x27, 0xdf, 0xbc, 0x4d, 0xa8, 0x33, 0x05, 0xfa, - 0xcc, 0xc9, 0xa4, 0x40, 0x3f, 0x7d, 0xd7, 0x53, 0xa0, 0xdf, 0x77, 0x02, 0x29, 0xd0, 0xef, 0xff, - 0x40, 0x53, 0xa0, 0x57, 0xef, 0x6d, 0x0a, 0xf4, 0x07, 0xee, 0x46, 0x0a, 0xf4, 0xeb, 0x50, 0x69, - 0xc9, 0x08, 0xc9, 0xea, 0x6c, 0xf1, 0x90, 0xe4, 0x86, 0x51, 0xf2, 0x21, 0x51, 0x28, 0x9c, 0xb2, - 0xa2, 0x7c, 0xd3, 0x94, 0xe8, 0x0f, 0x76, 0x31, 0x59, 0xe5, 0x19, 0x03, 0xba, 0x24, 0x42, 0xff, - 0xcb, 0x25, 0x38, 0xd3, 0x7d, 0x5e, 0xa7, 0x96, 0x84, 0x7a, 0x6a, 0xf9, 0xce, 0x58, 0x12, 0x98, - 0xd2, 0xa5, 0x51, 0xf5, 0x1d, 0x46, 0x7e, 0x01, 0xa6, 0x95, 0xa3, 0x98, 0xef, 0x35, 0x0f, 0xb4, - 0xd7, 0x92, 0x54, 0xec, 0x41, 0x23, 0x4b, 0x80, 0x3b, 0xcb, 0xa0, 0x45, 0x98, 0x34, 0x80, 0x6b, - 0x35, 0xa1, 0xec, 0x2b, 0xd3, 0x45, 0xc3, 0x44, 0xe3, 0x2c, 0xbd, 0xfd, 0x0d, 0x0b, 0xee, 0x2f, - 0xc8, 0x8b, 0xda, 0x77, 0x94, 0xf4, 0x16, 0x4c, 0xb6, 0xcc, 0xa2, 0x3d, 0x92, 0x29, 0x18, 0xd9, - 0x57, 0x55, 0x5b, 0x33, 0x08, 0x9c, 0x65, 0xba, 0x74, 0xee, 0x3b, 0x3f, 0x38, 0xf3, 0x91, 0xdf, - 0xff, 0xc1, 0x99, 0x8f, 0x7c, 0xff, 0x07, 0x67, 0x3e, 0xf2, 0xff, 0xdf, 0x3e, 0x63, 0x7d, 0xe7, - 0xf6, 0x19, 0xeb, 0xf7, 0x6f, 0x9f, 0xb1, 0xbe, 0x7f, 0xfb, 0x8c, 0xf5, 0x47, 0xb7, 0xcf, 0x58, - 0x3f, 0xff, 0xc3, 0x33, 0x1f, 0x79, 0xb3, 0xb4, 0xff, 0xec, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, - 0x4f, 0x1e, 0xcd, 0x7b, 0x5c, 0xd1, 0x00, 0x00, + // 11903 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6b, 0x70, 0x24, 0xc7, + 0x79, 0x98, 0x66, 0x17, 0xaf, 0xfd, 0xf0, 0xee, 0xc3, 0x91, 0x7b, 0x20, 0xef, 0x70, 0x1c, 0x4a, + 0xe4, 0xf1, 0x05, 0x88, 0x47, 0x52, 0xa4, 0x45, 0x8a, 0x36, 0x80, 0x05, 0xee, 0xc0, 0x3b, 0xdc, + 0x2d, 0x7b, 0x71, 0x77, 0x22, 0x4d, 0x33, 0x1a, 0xec, 0x36, 0x16, 0x43, 0x0c, 0x66, 0x96, 0x33, + 0xb3, 0xb8, 0x03, 0xcb, 0xaa, 0x4a, 0x14, 0x59, 0x79, 0xc8, 0x3f, 0x54, 0x89, 0x2a, 0x71, 0x2c, + 0x95, 0x53, 0x95, 0x47, 0xd9, 0x8a, 0x93, 0x54, 0x1c, 0x39, 0xb2, 0x23, 0x39, 0x15, 0xc7, 0x79, + 0x94, 0xfc, 0x47, 0xb1, 0xf3, 0x47, 0xaa, 0x72, 0x05, 0xb1, 0x4e, 0xa9, 0xa4, 0xf2, 0x23, 0xa9, + 0x24, 0xfe, 0x65, 0xc4, 0x89, 0x52, 0xfd, 0x9c, 0xee, 0xd9, 0x99, 0xdd, 0xc5, 0x11, 0x07, 0x52, + 0x2a, 0xfd, 0xdb, 0xed, 0xef, 0xeb, 0xaf, 0x7b, 0xfa, 0xf1, 0xf5, 0xd7, 0x5f, 0x7f, 0x0f, 0x78, + 0x79, 0xe7, 0xa5, 0x68, 0xde, 0x0d, 0x16, 0x76, 0xda, 0x9b, 0x24, 0xf4, 0x49, 0x4c, 0xa2, 0x85, + 0x3d, 0xe2, 0x37, 0x82, 0x70, 0x41, 0x00, 0x9c, 0x96, 0xbb, 0x50, 0x0f, 0x42, 0xb2, 0xb0, 0xf7, + 0xec, 0x42, 0x93, 0xf8, 0x24, 0x74, 0x62, 0xd2, 0x98, 0x6f, 0x85, 0x41, 0x1c, 0x20, 0xc4, 0x71, + 0xe6, 0x9d, 0x96, 0x3b, 0x4f, 0x71, 0xe6, 0xf7, 0x9e, 0x9d, 0x7d, 0xa6, 0xe9, 0xc6, 0xdb, 0xed, + 0xcd, 0xf9, 0x7a, 0xb0, 0xbb, 0xd0, 0x0c, 0x9a, 0xc1, 0x02, 0x43, 0xdd, 0x6c, 0x6f, 0xb1, 0x7f, + 0xec, 0x0f, 0xfb, 0xc5, 0x49, 0xcc, 0xae, 0x27, 0xcd, 0x90, 0x3b, 0x31, 0xf1, 0x23, 0x37, 0xf0, + 0xa3, 0x67, 0x9c, 0x96, 0x1b, 0x91, 0x70, 0x8f, 0x84, 0x0b, 0xad, 0x9d, 0x26, 0x85, 0x45, 0x26, + 0xc2, 0xc2, 0xde, 0xb3, 0x9b, 0x24, 0x76, 0x3a, 0x7a, 0x34, 0xfb, 0x7c, 0x42, 0x6e, 0xd7, 0xa9, + 0x6f, 0xbb, 0x3e, 0x09, 0xf7, 0x25, 0x8d, 0x85, 0x90, 0x44, 0x41, 0x3b, 0xac, 0x93, 0x23, 0xd5, + 0x8a, 0x16, 0x76, 0x49, 0xec, 0x64, 0x7c, 0xfd, 0xec, 0x42, 0x5e, 0xad, 0xb0, 0xed, 0xc7, 0xee, + 0x6e, 0x67, 0x33, 0x9f, 0xe8, 0x55, 0x21, 0xaa, 0x6f, 0x93, 0x5d, 0xa7, 0xa3, 0xde, 0x73, 0x79, + 0xf5, 0xda, 0xb1, 0xeb, 0x2d, 0xb8, 0x7e, 0x1c, 0xc5, 0x61, 0xba, 0x92, 0xfd, 0x5d, 0x0b, 0xce, + 0x2f, 0xde, 0xaa, 0xad, 0x78, 0x4e, 0x14, 0xbb, 0xf5, 0x25, 0x2f, 0xa8, 0xef, 0xd4, 0xe2, 0x20, + 0x24, 0x37, 0x03, 0xaf, 0xbd, 0x4b, 0x6a, 0x6c, 0x20, 0xd0, 0xd3, 0x30, 0xb2, 0xc7, 0xfe, 0xaf, + 0x55, 0xca, 0xd6, 0x79, 0xeb, 0x42, 0x69, 0x69, 0xea, 0xdb, 0x07, 0x73, 0x1f, 0xb9, 0x7b, 0x30, + 0x37, 0x72, 0x53, 0x94, 0x63, 0x85, 0x81, 0x1e, 0x83, 0xa1, 0xad, 0x68, 0x63, 0xbf, 0x45, 0xca, + 0x05, 0x86, 0x3b, 0x21, 0x70, 0x87, 0x56, 0x6b, 0xb4, 0x14, 0x0b, 0x28, 0x5a, 0x80, 0x52, 0xcb, + 0x09, 0x63, 0x37, 0x76, 0x03, 0xbf, 0x5c, 0x3c, 0x6f, 0x5d, 0x18, 0x5c, 0x9a, 0x16, 0xa8, 0xa5, + 0xaa, 0x04, 0xe0, 0x04, 0x87, 0x76, 0x23, 0x24, 0x4e, 0xe3, 0xba, 0xef, 0xed, 0x97, 0x07, 0xce, + 0x5b, 0x17, 0x46, 0x92, 0x6e, 0x60, 0x51, 0x8e, 0x15, 0x86, 0xfd, 0xcb, 0x05, 0x18, 0x59, 0xdc, + 0xda, 0x72, 0x7d, 0x37, 0xde, 0x47, 0x37, 0x61, 0xcc, 0x0f, 0x1a, 0x44, 0xfe, 0x67, 0x5f, 0x31, + 0x7a, 0xf1, 0xfc, 0x7c, 0xe7, 0xca, 0x9c, 0xbf, 0xa6, 0xe1, 0x2d, 0x4d, 0xdd, 0x3d, 0x98, 0x1b, + 0xd3, 0x4b, 0xb0, 0x41, 0x07, 0x61, 0x18, 0x6d, 0x05, 0x0d, 0x45, 0xb6, 0xc0, 0xc8, 0xce, 0x65, + 0x91, 0xad, 0x26, 0x68, 0x4b, 0x93, 0x77, 0x0f, 0xe6, 0x46, 0xb5, 0x02, 0xac, 0x13, 0x41, 0x9b, + 0x30, 0x49, 0xff, 0xfa, 0xb1, 0xab, 0xe8, 0x16, 0x19, 0xdd, 0x47, 0xf3, 0xe8, 0x6a, 0xa8, 0x4b, + 0xa7, 0xee, 0x1e, 0xcc, 0x4d, 0xa6, 0x0a, 0x71, 0x9a, 0xa0, 0xfd, 0x1e, 0x4c, 0x2c, 0xc6, 0xb1, + 0x53, 0xdf, 0x26, 0x0d, 0x3e, 0x83, 0xe8, 0x79, 0x18, 0xf0, 0x9d, 0x5d, 0x22, 0xe6, 0xf7, 0xbc, + 0x18, 0xd8, 0x81, 0x6b, 0xce, 0x2e, 0x39, 0x3c, 0x98, 0x9b, 0xba, 0xe1, 0xbb, 0xef, 0xb6, 0xc5, + 0xaa, 0xa0, 0x65, 0x98, 0x61, 0xa3, 0x8b, 0x00, 0x0d, 0xb2, 0xe7, 0xd6, 0x49, 0xd5, 0x89, 0xb7, + 0xc5, 0x7c, 0x23, 0x51, 0x17, 0x2a, 0x0a, 0x82, 0x35, 0x2c, 0xfb, 0x0e, 0x94, 0x16, 0xf7, 0x02, + 0xb7, 0x51, 0x0d, 0x1a, 0x11, 0xda, 0x81, 0xc9, 0x56, 0x48, 0xb6, 0x48, 0xa8, 0x8a, 0xca, 0xd6, + 0xf9, 0xe2, 0x85, 0xd1, 0x8b, 0x17, 0x32, 0x3f, 0xd6, 0x44, 0x5d, 0xf1, 0xe3, 0x70, 0x7f, 0xe9, + 0x41, 0xd1, 0xde, 0x64, 0x0a, 0x8a, 0xd3, 0x94, 0xed, 0x7f, 0x53, 0x80, 0xd3, 0x8b, 0xef, 0xb5, + 0x43, 0x52, 0x71, 0xa3, 0x9d, 0xf4, 0x0a, 0x6f, 0xb8, 0xd1, 0xce, 0xb5, 0x64, 0x04, 0xd4, 0xd2, + 0xaa, 0x88, 0x72, 0xac, 0x30, 0xd0, 0x33, 0x30, 0x4c, 0x7f, 0xdf, 0xc0, 0x6b, 0xe2, 0x93, 0x4f, + 0x09, 0xe4, 0xd1, 0x8a, 0x13, 0x3b, 0x15, 0x0e, 0xc2, 0x12, 0x07, 0xad, 0xc3, 0x68, 0x9d, 0x6d, + 0xc8, 0xe6, 0x7a, 0xd0, 0x20, 0x6c, 0x32, 0x4b, 0x4b, 0x4f, 0x51, 0xf4, 0xe5, 0xa4, 0xf8, 0xf0, + 0x60, 0xae, 0xcc, 0xfb, 0x26, 0x48, 0x68, 0x30, 0xac, 0xd7, 0x47, 0xb6, 0xda, 0x5f, 0x03, 0x8c, + 0x12, 0x64, 0xec, 0xad, 0x0b, 0xda, 0x56, 0x19, 0x64, 0x5b, 0x65, 0x2c, 0x7b, 0x9b, 0xa0, 0x67, + 0x61, 0x60, 0xc7, 0xf5, 0x1b, 0xe5, 0x21, 0x46, 0xeb, 0x2c, 0x9d, 0xf3, 0x2b, 0xae, 0xdf, 0x38, + 0x3c, 0x98, 0x9b, 0x36, 0xba, 0x43, 0x0b, 0x31, 0x43, 0xb5, 0xff, 0xc4, 0x82, 0x39, 0x06, 0x5b, + 0x75, 0x3d, 0x52, 0x25, 0x61, 0xe4, 0x46, 0x31, 0xf1, 0x63, 0x63, 0x40, 0x2f, 0x02, 0x44, 0xa4, + 0x1e, 0x92, 0x58, 0x1b, 0x52, 0xb5, 0x30, 0x6a, 0x0a, 0x82, 0x35, 0x2c, 0xca, 0x10, 0xa2, 0x6d, + 0x27, 0x64, 0xeb, 0x4b, 0x0c, 0xac, 0x62, 0x08, 0x35, 0x09, 0xc0, 0x09, 0x8e, 0xc1, 0x10, 0x8a, + 0xbd, 0x18, 0x02, 0xfa, 0x14, 0x4c, 0x26, 0x8d, 0x45, 0x2d, 0xa7, 0x2e, 0x07, 0x90, 0x6d, 0x99, + 0x9a, 0x09, 0xc2, 0x69, 0x5c, 0xfb, 0x1f, 0x58, 0x62, 0xf1, 0xd0, 0xaf, 0xfe, 0x90, 0x7f, 0xab, + 0xfd, 0xdb, 0x16, 0x0c, 0x2f, 0xb9, 0x7e, 0xc3, 0xf5, 0x9b, 0xe8, 0x33, 0x30, 0x42, 0xcf, 0xa6, + 0x86, 0x13, 0x3b, 0x82, 0xef, 0x7d, 0x5c, 0xdb, 0x5b, 0xea, 0xa8, 0x98, 0x6f, 0xed, 0x34, 0x69, + 0x41, 0x34, 0x4f, 0xb1, 0xe9, 0x6e, 0xbb, 0xbe, 0xf9, 0x0e, 0xa9, 0xc7, 0xeb, 0x24, 0x76, 0x92, + 0xcf, 0x49, 0xca, 0xb0, 0xa2, 0x8a, 0xae, 0xc0, 0x50, 0xec, 0x84, 0x4d, 0x12, 0x0b, 0x06, 0x98, + 0xc9, 0xa8, 0x78, 0x4d, 0x4c, 0x77, 0x24, 0xf1, 0xeb, 0x24, 0x39, 0x16, 0x36, 0x58, 0x55, 0x2c, + 0x48, 0xd8, 0x75, 0x18, 0x5b, 0x76, 0x5a, 0xce, 0xa6, 0xeb, 0xb9, 0xb1, 0x4b, 0x22, 0xf4, 0x38, + 0x14, 0x9d, 0x46, 0x83, 0x71, 0x85, 0xd2, 0xd2, 0xe9, 0xbb, 0x07, 0x73, 0xc5, 0xc5, 0x06, 0x5d, + 0x9e, 0xa0, 0xb0, 0xf6, 0x31, 0xc5, 0x40, 0x4f, 0xc2, 0x40, 0x23, 0x0c, 0x5a, 0xe5, 0x02, 0xc3, + 0x7c, 0x80, 0xae, 0xe4, 0x4a, 0x18, 0xb4, 0x52, 0xa8, 0x0c, 0xc7, 0xfe, 0xdd, 0x02, 0x3c, 0xbc, + 0x4c, 0x5a, 0xdb, 0xab, 0xb5, 0x9c, 0xf5, 0x7b, 0x01, 0x46, 0x76, 0x03, 0xdf, 0x8d, 0x83, 0x30, + 0x12, 0x4d, 0xb3, 0x0d, 0xb4, 0x2e, 0xca, 0xb0, 0x82, 0xa2, 0xf3, 0x30, 0xd0, 0x4a, 0x98, 0xdf, + 0x98, 0x64, 0x9c, 0x8c, 0xed, 0x31, 0x08, 0xc5, 0x68, 0x47, 0x24, 0x14, 0x1b, 0x5f, 0x61, 0xdc, + 0x88, 0x48, 0x88, 0x19, 0x24, 0x59, 0x41, 0x74, 0x6d, 0x89, 0x55, 0x99, 0x5a, 0x41, 0x14, 0x82, + 0x35, 0x2c, 0x54, 0x85, 0x12, 0xff, 0x87, 0xc9, 0x16, 0xdb, 0xe3, 0x39, 0xe3, 0x5e, 0x93, 0x48, + 0x62, 0xdc, 0xc7, 0xd9, 0x12, 0x93, 0x85, 0x38, 0x21, 0x62, 0x2c, 0xb1, 0xa1, 0x9e, 0x4b, 0xec, + 0x5b, 0x05, 0x40, 0x7c, 0x08, 0x7f, 0xc4, 0x06, 0xee, 0x46, 0xe7, 0xc0, 0x65, 0x1e, 0x36, 0x57, + 0x83, 0xba, 0xe3, 0xa5, 0x57, 0xed, 0x71, 0x8d, 0xde, 0x2f, 0x59, 0x80, 0x96, 0x5d, 0xbf, 0x41, + 0xc2, 0x13, 0x90, 0xb4, 0x8e, 0xc6, 0x3b, 0xae, 0xc2, 0xc4, 0xb2, 0xe7, 0x12, 0x3f, 0x5e, 0xab, + 0x2e, 0x07, 0xfe, 0x96, 0xdb, 0x44, 0x9f, 0x84, 0x09, 0x2a, 0x78, 0x06, 0xed, 0xb8, 0x46, 0xea, + 0x81, 0xcf, 0xce, 0x68, 0x2a, 0xae, 0xa1, 0xbb, 0x07, 0x73, 0x13, 0x1b, 0x06, 0x04, 0xa7, 0x30, + 0xed, 0x3f, 0xa2, 0x1f, 0x1a, 0xec, 0xb6, 0x02, 0x9f, 0xf8, 0xf1, 0x72, 0xe0, 0x37, 0xb8, 0x2c, + 0xf7, 0x49, 0x18, 0x88, 0x69, 0xc7, 0xf9, 0x47, 0x3e, 0x26, 0xa7, 0x96, 0x76, 0xf7, 0xf0, 0x60, + 0xee, 0x81, 0xce, 0x1a, 0xec, 0x83, 0x58, 0x1d, 0xf4, 0x53, 0x30, 0x14, 0xc5, 0x4e, 0xdc, 0x8e, + 0xc4, 0x67, 0x3f, 0x22, 0x3f, 0xbb, 0xc6, 0x4a, 0x0f, 0x0f, 0xe6, 0x26, 0x55, 0x35, 0x5e, 0x84, + 0x45, 0x05, 0xf4, 0x04, 0x0c, 0xef, 0x92, 0x28, 0x72, 0x9a, 0xf2, 0x18, 0x9e, 0x14, 0x75, 0x87, + 0xd7, 0x79, 0x31, 0x96, 0x70, 0xf4, 0x28, 0x0c, 0x92, 0x30, 0x0c, 0x42, 0xb1, 0xaa, 0xc6, 0x05, + 0xe2, 0xe0, 0x0a, 0x2d, 0xc4, 0x1c, 0x66, 0xff, 0x7b, 0x0b, 0x26, 0x55, 0x5f, 0x79, 0x5b, 0x27, + 0xc0, 0x6f, 0xdf, 0x04, 0xa8, 0xcb, 0x0f, 0x8c, 0x18, 0xbf, 0x1b, 0xbd, 0xf8, 0x58, 0xd6, 0x12, + 0xee, 0x1c, 0xc6, 0x84, 0xb2, 0x2a, 0x8a, 0xb0, 0x46, 0xcd, 0xfe, 0x17, 0x16, 0x9c, 0x4a, 0x7d, + 0xd1, 0x55, 0x37, 0x8a, 0xd1, 0x5b, 0x1d, 0x5f, 0x35, 0xdf, 0xdf, 0x57, 0xd1, 0xda, 0xec, 0x9b, + 0xd4, 0x9a, 0x93, 0x25, 0xda, 0x17, 0x5d, 0x86, 0x41, 0x37, 0x26, 0xbb, 0xf2, 0x63, 0x1e, 0xed, + 0xfa, 0x31, 0xbc, 0x57, 0xc9, 0x8c, 0xac, 0xd1, 0x9a, 0x98, 0x13, 0xb0, 0xff, 0x97, 0x05, 0x25, + 0xbe, 0x6c, 0xd7, 0x9d, 0xd6, 0x09, 0xcc, 0xc5, 0x1a, 0x0c, 0x30, 0xea, 0xbc, 0xe3, 0x8f, 0x67, + 0x77, 0x5c, 0x74, 0x67, 0x9e, 0x0a, 0x53, 0x5c, 0x68, 0x55, 0xcc, 0x8c, 0x16, 0x61, 0x46, 0x62, + 0xf6, 0x45, 0x28, 0x29, 0x04, 0x34, 0x05, 0xc5, 0x1d, 0xc2, 0x2f, 0x2a, 0x25, 0x4c, 0x7f, 0xa2, + 0x19, 0x18, 0xdc, 0x73, 0xbc, 0xb6, 0xd8, 0xec, 0x98, 0xff, 0xf9, 0x64, 0xe1, 0x25, 0xcb, 0xfe, + 0x26, 0xdb, 0x63, 0xa2, 0x91, 0x15, 0x7f, 0x4f, 0x30, 0x93, 0xf7, 0x60, 0xc6, 0xcb, 0xe0, 0x61, + 0x62, 0x20, 0xfa, 0xe7, 0x79, 0x0f, 0x8b, 0xbe, 0xce, 0x64, 0x41, 0x71, 0x66, 0x1b, 0xf4, 0x18, + 0x08, 0x5a, 0x74, 0x45, 0x39, 0x1e, 0xeb, 0xaf, 0x10, 0x40, 0xaf, 0x8b, 0x32, 0xac, 0xa0, 0x94, + 0x41, 0xcc, 0xa8, 0xce, 0x5f, 0x21, 0xfb, 0x35, 0xe2, 0x91, 0x7a, 0x1c, 0x84, 0x1f, 0x68, 0xf7, + 0xcf, 0xf2, 0xd1, 0xe7, 0xfc, 0x65, 0x54, 0x10, 0x28, 0x5e, 0x21, 0xfb, 0x7c, 0x2a, 0xf4, 0xaf, + 0x2b, 0x76, 0xfd, 0xba, 0xdf, 0xb0, 0x60, 0x5c, 0x7d, 0xdd, 0x09, 0x6c, 0xa4, 0x25, 0x73, 0x23, + 0x9d, 0xed, 0xba, 0x1e, 0x73, 0xb6, 0xd0, 0x0f, 0x19, 0x0b, 0x10, 0x38, 0xd5, 0x30, 0xa0, 0x43, + 0x43, 0x79, 0xf6, 0x07, 0x39, 0x21, 0xfd, 0x7c, 0xd7, 0x15, 0xb2, 0xbf, 0x11, 0x50, 0xf1, 0x21, + 0xfb, 0xbb, 0x8c, 0x59, 0x1b, 0xe8, 0x3a, 0x6b, 0xbf, 0x59, 0x80, 0xd3, 0x6a, 0x04, 0x8c, 0x03, + 0xfa, 0x47, 0x7d, 0x0c, 0x9e, 0x85, 0xd1, 0x06, 0xd9, 0x72, 0xda, 0x5e, 0xac, 0xee, 0xa2, 0x83, + 0x5c, 0x1f, 0x51, 0x49, 0x8a, 0xb1, 0x8e, 0x73, 0x84, 0x61, 0xfb, 0xb7, 0xc0, 0x78, 0x6f, 0xec, + 0xd0, 0x15, 0x4c, 0xa5, 0x37, 0x4d, 0xa3, 0x30, 0xa6, 0x6b, 0x14, 0x84, 0xf6, 0xe0, 0x51, 0x18, + 0x74, 0x77, 0xe9, 0x59, 0x5c, 0x30, 0x8f, 0xd8, 0x35, 0x5a, 0x88, 0x39, 0x0c, 0x7d, 0x0c, 0x86, + 0xeb, 0xc1, 0xee, 0xae, 0xe3, 0x37, 0xca, 0x45, 0x26, 0x4f, 0x8e, 0xd2, 0xe3, 0x7a, 0x99, 0x17, + 0x61, 0x09, 0x43, 0x0f, 0xc3, 0x80, 0x13, 0x36, 0xa3, 0xf2, 0x00, 0xc3, 0x19, 0xa1, 0x2d, 0x2d, + 0x86, 0xcd, 0x08, 0xb3, 0x52, 0x2a, 0x27, 0xde, 0x0e, 0xc2, 0x1d, 0xd7, 0x6f, 0x56, 0xdc, 0x90, + 0x09, 0x7d, 0x9a, 0x9c, 0x78, 0x4b, 0x41, 0xb0, 0x86, 0x85, 0x56, 0x61, 0xb0, 0x15, 0x84, 0x71, + 0x54, 0x1e, 0x62, 0xc3, 0xfd, 0x48, 0xce, 0x56, 0xe2, 0x5f, 0x5b, 0x0d, 0xc2, 0x38, 0xf9, 0x00, + 0xfa, 0x2f, 0xc2, 0xbc, 0x3a, 0xfa, 0x29, 0x28, 0x12, 0x7f, 0xaf, 0x3c, 0xcc, 0xa8, 0xcc, 0x66, + 0x51, 0x59, 0xf1, 0xf7, 0x6e, 0x3a, 0x61, 0xc2, 0x67, 0x56, 0xfc, 0x3d, 0x4c, 0xeb, 0xa0, 0x37, + 0xa0, 0x24, 0xb5, 0x91, 0x51, 0x79, 0x24, 0x7f, 0x89, 0x61, 0x81, 0x84, 0xc9, 0xbb, 0x6d, 0x37, + 0x24, 0xbb, 0xc4, 0x8f, 0xa3, 0xe4, 0x3e, 0x29, 0xa1, 0x11, 0x4e, 0xa8, 0xa1, 0x37, 0x60, 0x8c, + 0xcb, 0x91, 0xeb, 0x41, 0xdb, 0x8f, 0xa3, 0x72, 0x89, 0x75, 0x2f, 0x53, 0x75, 0x75, 0x33, 0xc1, + 0x5b, 0x9a, 0x11, 0x44, 0xc7, 0xb4, 0xc2, 0x08, 0x1b, 0xa4, 0x10, 0x86, 0x71, 0xcf, 0xdd, 0x23, + 0x3e, 0x89, 0xa2, 0x6a, 0x18, 0x6c, 0x92, 0x32, 0xb0, 0x9e, 0x9f, 0xc9, 0xd6, 0xe8, 0x04, 0x9b, + 0x64, 0x69, 0xfa, 0xee, 0xc1, 0xdc, 0xf8, 0x55, 0xbd, 0x0e, 0x36, 0x49, 0xa0, 0x1b, 0x30, 0x41, + 0x05, 0x54, 0x37, 0x21, 0x3a, 0xda, 0x8b, 0x28, 0x93, 0x4e, 0xb1, 0x51, 0x09, 0xa7, 0x88, 0xa0, + 0xd7, 0xa0, 0xe4, 0xb9, 0x5b, 0xa4, 0xbe, 0x5f, 0xf7, 0x48, 0x79, 0x8c, 0x51, 0xcc, 0xdc, 0x56, + 0x57, 0x25, 0x12, 0xbf, 0x00, 0xa8, 0xbf, 0x38, 0xa9, 0x8e, 0x6e, 0xc2, 0x03, 0x31, 0x09, 0x77, + 0x5d, 0xdf, 0xa1, 0xdb, 0x41, 0xc8, 0x93, 0x4c, 0x2f, 0x36, 0xce, 0xd6, 0xdb, 0x39, 0x31, 0x74, + 0x0f, 0x6c, 0x64, 0x62, 0xe1, 0x9c, 0xda, 0xe8, 0x3a, 0x4c, 0xb2, 0x9d, 0x50, 0x6d, 0x7b, 0x5e, + 0x35, 0xf0, 0xdc, 0xfa, 0x7e, 0x79, 0x82, 0x11, 0xfc, 0x98, 0x54, 0x7c, 0xad, 0x99, 0x60, 0x7a, + 0xe3, 0x4d, 0xfe, 0xe1, 0x74, 0x6d, 0xb4, 0xc9, 0x14, 0x21, 0xed, 0xd0, 0x8d, 0xf7, 0xe9, 0xfa, + 0x25, 0x77, 0xe2, 0xf2, 0x64, 0xd7, 0xfb, 0xa3, 0x8e, 0xaa, 0xb4, 0x25, 0x7a, 0x21, 0x4e, 0x13, + 0xa4, 0x5b, 0x3b, 0x8a, 0x1b, 0xae, 0x5f, 0x9e, 0x62, 0x1c, 0x43, 0xed, 0x8c, 0x1a, 0x2d, 0xc4, + 0x1c, 0xc6, 0x94, 0x20, 0xf4, 0xc7, 0x75, 0xca, 0x41, 0xa7, 0x19, 0x62, 0xa2, 0x04, 0x91, 0x00, + 0x9c, 0xe0, 0xd0, 0x63, 0x39, 0x8e, 0xf7, 0xcb, 0x88, 0xa1, 0xaa, 0xed, 0xb2, 0xb1, 0xf1, 0x06, + 0xa6, 0xe5, 0xe8, 0x2a, 0x0c, 0x13, 0x7f, 0x6f, 0x35, 0x0c, 0x76, 0xcb, 0xa7, 0xf2, 0xf7, 0xec, + 0x0a, 0x47, 0xe1, 0x0c, 0x3d, 0xb9, 0x00, 0x88, 0x62, 0x2c, 0x49, 0xa0, 0x3b, 0x50, 0xce, 0x98, + 0x11, 0x3e, 0x01, 0x33, 0x6c, 0x02, 0x5e, 0x11, 0x75, 0xcb, 0x1b, 0x39, 0x78, 0x87, 0x5d, 0x60, + 0x38, 0x97, 0xba, 0xbd, 0x09, 0x13, 0x8a, 0xb1, 0xb0, 0xb9, 0x45, 0x73, 0x30, 0x48, 0x39, 0xa6, + 0xbc, 0x52, 0x97, 0xe8, 0x50, 0x32, 0xd5, 0x14, 0xe6, 0xe5, 0x6c, 0x28, 0xdd, 0xf7, 0xc8, 0xd2, + 0x7e, 0x4c, 0xf8, 0xb5, 0xa8, 0xa8, 0x0d, 0xa5, 0x04, 0xe0, 0x04, 0xc7, 0xfe, 0x7f, 0x5c, 0x30, + 0x49, 0xb8, 0x57, 0x1f, 0xfc, 0xfa, 0x69, 0x18, 0xd9, 0x0e, 0xa2, 0x98, 0x62, 0xb3, 0x36, 0x06, + 0x13, 0x51, 0xe4, 0xb2, 0x28, 0xc7, 0x0a, 0x03, 0xbd, 0x0c, 0xe3, 0x75, 0xbd, 0x01, 0x71, 0xd8, + 0x9c, 0x16, 0x55, 0xcc, 0xd6, 0xb1, 0x89, 0x8b, 0x5e, 0x82, 0x11, 0xf6, 0x40, 0x51, 0x0f, 0x3c, + 0x71, 0x01, 0x93, 0x27, 0xe6, 0x48, 0x55, 0x94, 0x1f, 0x6a, 0xbf, 0xb1, 0xc2, 0xa6, 0x97, 0x62, + 0xda, 0x85, 0xb5, 0xaa, 0x60, 0xf3, 0xea, 0x52, 0x7c, 0x99, 0x95, 0x62, 0x01, 0xb5, 0xff, 0x5a, + 0x41, 0x1b, 0x65, 0x7a, 0xa5, 0x20, 0xa8, 0x0a, 0xc3, 0xb7, 0x1d, 0x37, 0x76, 0xfd, 0xa6, 0x38, + 0xcf, 0x9f, 0xe8, 0xca, 0xf3, 0x59, 0xa5, 0x5b, 0xbc, 0x02, 0x3f, 0x95, 0xc4, 0x1f, 0x2c, 0xc9, + 0x50, 0x8a, 0x61, 0xdb, 0xf7, 0x29, 0xc5, 0x42, 0xbf, 0x14, 0x31, 0xaf, 0xc0, 0x29, 0x8a, 0x3f, + 0x58, 0x92, 0x41, 0x6f, 0x01, 0xc8, 0x75, 0x43, 0x1a, 0xe2, 0x61, 0xe0, 0xe9, 0xde, 0x44, 0x37, + 0x54, 0x9d, 0xa5, 0x09, 0x7a, 0xe6, 0x25, 0xff, 0xb1, 0x46, 0xcf, 0x8e, 0x99, 0xdc, 0xd3, 0xd9, + 0x19, 0xf4, 0xb3, 0x74, 0xab, 0x3a, 0x61, 0x4c, 0x1a, 0x8b, 0xb1, 0x18, 0x9c, 0x27, 0xfb, 0x13, + 0x5b, 0x37, 0xdc, 0x5d, 0xa2, 0x6f, 0x6b, 0x41, 0x04, 0x27, 0xf4, 0xec, 0xdf, 0x2a, 0x42, 0x39, + 0xaf, 0xbb, 0x74, 0xd1, 0x91, 0x3b, 0x6e, 0xbc, 0x4c, 0xc5, 0x15, 0xcb, 0x5c, 0x74, 0x2b, 0xa2, + 0x1c, 0x2b, 0x0c, 0x3a, 0xfb, 0x91, 0xdb, 0x94, 0xb7, 0x8e, 0xc1, 0x64, 0xf6, 0x6b, 0xac, 0x14, + 0x0b, 0x28, 0xc5, 0x0b, 0x89, 0x13, 0x89, 0x97, 0x27, 0x6d, 0x95, 0x60, 0x56, 0x8a, 0x05, 0x54, + 0x57, 0x18, 0x0c, 0xf4, 0x50, 0x18, 0x18, 0x43, 0x34, 0x78, 0xbc, 0x43, 0x84, 0xde, 0x06, 0xd8, + 0x72, 0x7d, 0x37, 0xda, 0x66, 0xd4, 0x87, 0x8e, 0x4c, 0x5d, 0x09, 0x3b, 0xab, 0x8a, 0x0a, 0xd6, + 0x28, 0xa2, 0x17, 0x60, 0x54, 0x6d, 0xc0, 0xb5, 0x4a, 0x79, 0xd8, 0x7c, 0xd6, 0x48, 0xb8, 0x51, + 0x05, 0xeb, 0x78, 0xf6, 0x3b, 0xe9, 0xf5, 0x22, 0x76, 0x80, 0x36, 0xbe, 0x56, 0xbf, 0xe3, 0x5b, + 0xe8, 0x3e, 0xbe, 0xf6, 0xef, 0x15, 0x61, 0xd2, 0x68, 0xac, 0x1d, 0xf5, 0xc1, 0xb3, 0x2e, 0xd1, + 0x83, 0xc8, 0x89, 0x89, 0xd8, 0x7f, 0x76, 0xef, 0xad, 0xa2, 0x1f, 0x56, 0x74, 0x07, 0xf0, 0xfa, + 0xe8, 0x6d, 0x28, 0x79, 0x4e, 0xc4, 0x94, 0x0f, 0x44, 0xec, 0xbb, 0x7e, 0x88, 0x25, 0x82, 0xbe, + 0x13, 0xc5, 0xda, 0x59, 0xc0, 0x69, 0x27, 0x24, 0xe9, 0x89, 0x49, 0x85, 0x13, 0xf9, 0xb4, 0xa9, + 0x3a, 0x41, 0x25, 0x98, 0x7d, 0xcc, 0x61, 0xe8, 0x25, 0x18, 0x0b, 0x09, 0x5b, 0x15, 0xcb, 0x54, + 0xd6, 0x62, 0xcb, 0x6c, 0x30, 0x11, 0xca, 0xb0, 0x06, 0xc3, 0x06, 0x66, 0x22, 0x6b, 0x0f, 0x75, + 0x91, 0xb5, 0x9f, 0x80, 0x61, 0xf6, 0x43, 0xad, 0x00, 0x35, 0x1b, 0x6b, 0xbc, 0x18, 0x4b, 0x78, + 0x7a, 0xc1, 0x8c, 0xf4, 0xb9, 0x60, 0x9e, 0x84, 0x89, 0x8a, 0x43, 0x76, 0x03, 0x7f, 0xc5, 0x6f, + 0xb4, 0x02, 0xd7, 0x8f, 0x51, 0x19, 0x06, 0xd8, 0xe9, 0xc0, 0xf7, 0xf6, 0x00, 0xa5, 0x80, 0x07, + 0xa8, 0xe4, 0x6c, 0xff, 0x61, 0x01, 0xc6, 0x2b, 0xc4, 0x23, 0x31, 0xe1, 0x77, 0x8d, 0x08, 0xad, + 0x02, 0x6a, 0x86, 0x4e, 0x9d, 0x54, 0x49, 0xe8, 0x06, 0x0d, 0x5d, 0x19, 0x59, 0x64, 0x0a, 0x7f, + 0x74, 0xa9, 0x03, 0x8a, 0x33, 0x6a, 0xa0, 0x37, 0x61, 0xbc, 0x15, 0x12, 0x43, 0x87, 0x66, 0xe5, + 0x89, 0x0b, 0x55, 0x1d, 0x91, 0x4b, 0xaa, 0x46, 0x11, 0x36, 0x49, 0xa1, 0x9f, 0x81, 0xa9, 0x20, + 0x6c, 0x6d, 0x3b, 0x7e, 0x85, 0xb4, 0x88, 0xdf, 0xa0, 0xa2, 0xb8, 0xd0, 0x11, 0xcc, 0xdc, 0x3d, + 0x98, 0x9b, 0xba, 0x9e, 0x82, 0xe1, 0x0e, 0x6c, 0xf4, 0x26, 0x4c, 0xb7, 0xc2, 0xa0, 0xe5, 0x34, + 0xd9, 0x42, 0x11, 0x12, 0x07, 0xe7, 0x3e, 0x4f, 0xdf, 0x3d, 0x98, 0x9b, 0xae, 0xa6, 0x81, 0x87, + 0x07, 0x73, 0xa7, 0xd8, 0x40, 0xd1, 0x92, 0x04, 0x88, 0x3b, 0xc9, 0xd8, 0x4d, 0x38, 0x5d, 0x09, + 0x6e, 0xfb, 0xb7, 0x9d, 0xb0, 0xb1, 0x58, 0x5d, 0xd3, 0x2e, 0xf7, 0xd7, 0xe4, 0xe5, 0x92, 0x3f, + 0xbf, 0x66, 0x9e, 0x53, 0x5a, 0x4d, 0x2e, 0xfe, 0xaf, 0xba, 0x1e, 0xc9, 0x51, 0x22, 0xfc, 0xcd, + 0x82, 0xd1, 0x52, 0x82, 0xaf, 0xf4, 0xfe, 0x56, 0xae, 0xde, 0xff, 0x75, 0x18, 0xd9, 0x72, 0x89, + 0xd7, 0xc0, 0x64, 0x4b, 0xcc, 0xcc, 0xe3, 0xf9, 0x2f, 0x4a, 0xab, 0x14, 0x53, 0x2a, 0x8d, 0xf8, + 0xd5, 0x74, 0x55, 0x54, 0xc6, 0x8a, 0x0c, 0xda, 0x81, 0x29, 0x79, 0xf7, 0x91, 0x50, 0xb1, 0x89, + 0x9f, 0xe8, 0x76, 0xa1, 0x32, 0x89, 0xb3, 0x09, 0xc4, 0x29, 0x32, 0xb8, 0x83, 0x30, 0xbd, 0x8b, + 0xee, 0xd2, 0xe3, 0x6a, 0x80, 0x2d, 0x69, 0x76, 0x17, 0x65, 0xd7, 0x6a, 0x56, 0x6a, 0x7f, 0xd5, + 0x82, 0x07, 0x3b, 0x46, 0x46, 0xa8, 0x17, 0x8e, 0x79, 0x16, 0xd2, 0xd7, 0xfd, 0x42, 0xef, 0xeb, + 0xbe, 0xfd, 0x0f, 0x2d, 0x98, 0x59, 0xd9, 0x6d, 0xc5, 0xfb, 0x15, 0xd7, 0x7c, 0x9b, 0x78, 0x11, + 0x86, 0x76, 0x49, 0xc3, 0x6d, 0xef, 0x8a, 0x99, 0x9b, 0x93, 0x2c, 0x7d, 0x9d, 0x95, 0x1e, 0x1e, + 0xcc, 0x8d, 0xd7, 0xe2, 0x20, 0x74, 0x9a, 0x84, 0x17, 0x60, 0x81, 0xce, 0x0e, 0x46, 0xf7, 0x3d, + 0x72, 0xd5, 0xdd, 0x75, 0xe5, 0x0b, 0x61, 0x57, 0x95, 0xd7, 0xbc, 0x1c, 0xd0, 0xf9, 0xd7, 0xdb, + 0x8e, 0x1f, 0xbb, 0xf1, 0xbe, 0x78, 0x76, 0x91, 0x44, 0x70, 0x42, 0xcf, 0xfe, 0xae, 0x05, 0x93, + 0x92, 0x97, 0x2c, 0x36, 0x1a, 0x21, 0x89, 0x22, 0x34, 0x0b, 0x05, 0xb7, 0x25, 0x7a, 0x09, 0xa2, + 0x97, 0x85, 0xb5, 0x2a, 0x2e, 0xb8, 0x2d, 0x54, 0x85, 0x12, 0x7f, 0x68, 0x4c, 0x16, 0x57, 0x5f, + 0xcf, 0x95, 0xac, 0x07, 0x1b, 0xb2, 0x26, 0x4e, 0x88, 0x48, 0xa9, 0x98, 0x9d, 0x43, 0x45, 0xf3, + 0xcd, 0xe6, 0xb2, 0x28, 0xc7, 0x0a, 0x03, 0x5d, 0x80, 0x11, 0x3f, 0x68, 0xf0, 0x77, 0x5f, 0xbe, + 0xa7, 0xd9, 0x92, 0xbd, 0x26, 0xca, 0xb0, 0x82, 0xda, 0xbf, 0x68, 0xc1, 0x98, 0xfc, 0xb2, 0x3e, + 0x05, 0x74, 0xba, 0xb5, 0x12, 0xe1, 0x3c, 0xd9, 0x5a, 0x54, 0xc0, 0x66, 0x10, 0x43, 0xae, 0x2e, + 0x1e, 0x45, 0xae, 0xb6, 0xbf, 0x52, 0x80, 0x09, 0xd9, 0x9d, 0x5a, 0x7b, 0x33, 0x22, 0x31, 0xda, + 0x80, 0x92, 0xc3, 0x87, 0x9c, 0xc8, 0x15, 0xfb, 0x68, 0xf6, 0x8d, 0xcb, 0x98, 0x9f, 0x44, 0xd4, + 0x59, 0x94, 0xb5, 0x71, 0x42, 0x08, 0x79, 0x30, 0xed, 0x07, 0x31, 0x3b, 0xf6, 0x14, 0xbc, 0xdb, + 0xbb, 0x40, 0x9a, 0xfa, 0x19, 0x41, 0x7d, 0xfa, 0x5a, 0x9a, 0x0a, 0xee, 0x24, 0x8c, 0x56, 0xa4, + 0x96, 0xa7, 0xc8, 0x5a, 0x38, 0xdf, 0xad, 0x85, 0x7c, 0x25, 0x8f, 0xfd, 0x3b, 0x16, 0x94, 0x24, + 0xda, 0x49, 0x3c, 0x01, 0xad, 0xc3, 0x70, 0xc4, 0x26, 0x41, 0x0e, 0x8d, 0xdd, 0xad, 0xe3, 0x7c, + 0xbe, 0x92, 0xd3, 0x9c, 0xff, 0x8f, 0xb0, 0xa4, 0xc1, 0xd4, 0xd4, 0xaa, 0xfb, 0x1f, 0x12, 0x35, + 0xb5, 0xea, 0x4f, 0xce, 0x09, 0xf3, 0x5f, 0x59, 0x9f, 0xb5, 0xbb, 0x3c, 0x15, 0x3a, 0x5b, 0x21, + 0xd9, 0x72, 0xef, 0xa4, 0x85, 0xce, 0x2a, 0x2b, 0xc5, 0x02, 0x8a, 0xde, 0x82, 0xb1, 0xba, 0xd4, + 0xee, 0x26, 0x6c, 0xe0, 0xb1, 0xae, 0xba, 0x72, 0xf5, 0xac, 0xc2, 0x6d, 0xc2, 0x96, 0xb5, 0xfa, + 0xd8, 0xa0, 0x66, 0x3e, 0xcc, 0x17, 0x7b, 0x3d, 0xcc, 0x27, 0x74, 0x73, 0x9f, 0x96, 0xed, 0x5f, + 0xb1, 0x60, 0x88, 0xeb, 0x08, 0xfb, 0x53, 0xaa, 0x6a, 0xcf, 0x44, 0xc9, 0xd8, 0xdd, 0xa4, 0x85, + 0xe2, 0xd5, 0x08, 0xad, 0x43, 0x89, 0xfd, 0x60, 0xba, 0x92, 0x62, 0xbe, 0x31, 0x1c, 0x6f, 0x55, + 0xef, 0xe0, 0x4d, 0x59, 0x0d, 0x27, 0x14, 0xec, 0x2f, 0x17, 0x29, 0xab, 0x4a, 0x50, 0x8d, 0x13, + 0xdc, 0xba, 0x7f, 0x27, 0x78, 0xe1, 0x7e, 0x9d, 0xe0, 0x4d, 0x98, 0xac, 0x6b, 0x6f, 0x52, 0xc9, + 0x4c, 0x5e, 0xe8, 0xba, 0x48, 0xb4, 0xe7, 0x2b, 0xae, 0x27, 0x5b, 0x36, 0x89, 0xe0, 0x34, 0x55, + 0xf4, 0xb3, 0x30, 0xc6, 0xe7, 0x59, 0xb4, 0x32, 0xc0, 0x5a, 0xf9, 0x58, 0xfe, 0x7a, 0xd1, 0x9b, + 0x60, 0x2b, 0xb1, 0xa6, 0x55, 0xc7, 0x06, 0x31, 0xfb, 0x0b, 0x83, 0x30, 0xb8, 0xb2, 0x47, 0xfc, + 0xf8, 0x04, 0x18, 0x52, 0x1d, 0x26, 0x5c, 0x7f, 0x2f, 0xf0, 0xf6, 0x48, 0x83, 0xc3, 0x8f, 0x72, + 0xb8, 0x3e, 0x20, 0x48, 0x4f, 0xac, 0x19, 0x24, 0x70, 0x8a, 0xe4, 0xfd, 0xb8, 0xb5, 0x5f, 0x82, + 0x21, 0x3e, 0xf7, 0xe2, 0xca, 0x9e, 0xa9, 0x01, 0x67, 0x83, 0x28, 0x76, 0x41, 0xa2, 0x51, 0xe0, + 0x2a, 0x77, 0x51, 0x1d, 0xbd, 0x03, 0x13, 0x5b, 0x6e, 0x18, 0xc5, 0xf4, 0xba, 0x1d, 0xc5, 0xce, + 0x6e, 0xeb, 0x1e, 0x6e, 0xe9, 0x6a, 0x1c, 0x56, 0x0d, 0x4a, 0x38, 0x45, 0x19, 0x35, 0x61, 0x9c, + 0x5e, 0x1c, 0x93, 0xa6, 0x86, 0x8f, 0xdc, 0x94, 0x52, 0xc3, 0x5d, 0xd5, 0x09, 0x61, 0x93, 0x2e, + 0x65, 0x26, 0x75, 0x76, 0xd1, 0x1c, 0x61, 0x12, 0x85, 0x62, 0x26, 0xfc, 0x86, 0xc9, 0x61, 0x94, + 0x27, 0x31, 0x5b, 0x8e, 0x92, 0xc9, 0x93, 0x12, 0x8b, 0x0d, 0xfb, 0x6b, 0xf4, 0x74, 0xa4, 0x63, + 0x78, 0x02, 0x47, 0xcb, 0xab, 0xe6, 0xd1, 0x72, 0x26, 0x77, 0x3e, 0x73, 0x8e, 0x95, 0xcf, 0xc0, + 0xa8, 0x36, 0xdd, 0x68, 0x01, 0x4a, 0x75, 0x69, 0x78, 0x20, 0xb8, 0xae, 0x12, 0x5f, 0x94, 0x45, + 0x02, 0x4e, 0x70, 0xe8, 0x68, 0x50, 0x61, 0x2f, 0x6d, 0xd6, 0x44, 0x45, 0x41, 0xcc, 0x20, 0xf6, + 0x73, 0x00, 0x2b, 0x77, 0x48, 0x7d, 0x91, 0x5f, 0xbc, 0xb4, 0xf7, 0x2d, 0x2b, 0xff, 0x7d, 0xcb, + 0xfe, 0x0f, 0x16, 0x4c, 0xac, 0x2e, 0x1b, 0x02, 0xf9, 0x3c, 0x00, 0x97, 0x42, 0x6f, 0xdd, 0xba, + 0x26, 0x35, 0xc3, 0x5c, 0xb9, 0xa7, 0x4a, 0xb1, 0x86, 0x81, 0xce, 0x40, 0xd1, 0x6b, 0xfb, 0x42, + 0x38, 0x1c, 0xbe, 0x7b, 0x30, 0x57, 0xbc, 0xda, 0xf6, 0x31, 0x2d, 0xd3, 0x2c, 0x89, 0x8a, 0x7d, + 0x5b, 0x12, 0xf5, 0x34, 0xc1, 0x46, 0x73, 0x30, 0x78, 0xfb, 0xb6, 0xdb, 0x88, 0xca, 0x83, 0x89, + 0xd6, 0xfa, 0xd6, 0xad, 0xb5, 0x4a, 0x84, 0x79, 0xb9, 0xfd, 0x17, 0x8a, 0x30, 0xb5, 0xea, 0x91, + 0x3b, 0xc6, 0x67, 0x3d, 0x06, 0x43, 0x8d, 0xd0, 0xdd, 0x23, 0x61, 0xfa, 0x14, 0xaf, 0xb0, 0x52, + 0x2c, 0xa0, 0x7d, 0x5b, 0x3f, 0xdd, 0xe8, 0x3c, 0x8f, 0x8f, 0xdb, 0xde, 0xab, 0xf7, 0x50, 0xbc, + 0x05, 0xc3, 0xfc, 0x99, 0x94, 0x0f, 0xc6, 0xe8, 0xc5, 0x67, 0xb3, 0xba, 0x90, 0x1e, 0x8b, 0x79, + 0xa1, 0xf8, 0xe0, 0x36, 0x23, 0x8a, 0x89, 0x89, 0x52, 0x2c, 0x49, 0xce, 0x7e, 0x12, 0xc6, 0x74, + 0xcc, 0x23, 0x19, 0x8f, 0xfc, 0x45, 0x0b, 0x4e, 0xad, 0x7a, 0x41, 0x7d, 0x27, 0x65, 0x8a, 0xf6, + 0x02, 0x8c, 0xd2, 0xfd, 0x14, 0x19, 0x66, 0xad, 0x86, 0xa1, 0xb3, 0x00, 0x61, 0x1d, 0x4f, 0xab, + 0x76, 0xe3, 0xc6, 0x5a, 0x25, 0xcb, 0x3e, 0x5a, 0x80, 0xb0, 0x8e, 0x67, 0x7f, 0xc7, 0x82, 0xb3, + 0x97, 0x96, 0x57, 0x12, 0x6b, 0xcc, 0x0e, 0x13, 0x6d, 0x2a, 0xdc, 0x35, 0xb4, 0xae, 0x24, 0xc2, + 0x5d, 0x85, 0xf5, 0x42, 0x40, 0x3f, 0x2c, 0xee, 0x07, 0xbf, 0x66, 0xc1, 0xa9, 0x4b, 0x6e, 0x8c, + 0x49, 0x2b, 0x48, 0x1b, 0x0b, 0x87, 0xa4, 0x15, 0x44, 0x6e, 0x1c, 0x84, 0xfb, 0x69, 0x63, 0x61, + 0xac, 0x20, 0x58, 0xc3, 0xe2, 0x2d, 0xef, 0xb9, 0x11, 0xed, 0x69, 0xc1, 0xbc, 0x61, 0x62, 0x51, + 0x8e, 0x15, 0x06, 0xfd, 0xb0, 0x86, 0x1b, 0x32, 0x09, 0x61, 0x5f, 0x6c, 0x67, 0xf5, 0x61, 0x15, + 0x09, 0xc0, 0x09, 0x8e, 0xfd, 0x55, 0x0b, 0x4e, 0x5f, 0xf2, 0xda, 0x51, 0x4c, 0xc2, 0xad, 0xc8, + 0xe8, 0xec, 0x73, 0x50, 0x22, 0x52, 0x0a, 0x17, 0x7d, 0x55, 0xe7, 0x86, 0x12, 0xcf, 0xb9, 0xa5, + 0xb2, 0xc2, 0xeb, 0xc3, 0xae, 0xf3, 0x68, 0xf6, 0x88, 0x5f, 0x2f, 0xc0, 0xf8, 0xe5, 0x8d, 0x8d, + 0xea, 0x25, 0x12, 0x0b, 0x96, 0xd9, 0x5b, 0x83, 0x84, 0xb5, 0x8b, 0x70, 0x37, 0x59, 0xa7, 0x1d, + 0xbb, 0xde, 0x3c, 0x77, 0x8d, 0x99, 0x5f, 0xf3, 0xe3, 0xeb, 0x61, 0x2d, 0x0e, 0x5d, 0xbf, 0x99, + 0x79, 0x75, 0x96, 0x8c, 0xbd, 0x98, 0xc7, 0xd8, 0xd1, 0x73, 0x30, 0xc4, 0x7c, 0x73, 0xa4, 0xd4, + 0xf1, 0x90, 0x12, 0x15, 0x58, 0xe9, 0xe1, 0xc1, 0x5c, 0xe9, 0x06, 0x5e, 0xe3, 0x7f, 0xb0, 0x40, + 0x45, 0x37, 0x60, 0x74, 0x3b, 0x8e, 0x5b, 0x97, 0x89, 0xd3, 0x20, 0xa1, 0xe4, 0x0e, 0xe7, 0xb2, + 0xb8, 0x03, 0x1d, 0x04, 0x8e, 0x96, 0x6c, 0xa8, 0xa4, 0x2c, 0xc2, 0x3a, 0x1d, 0xbb, 0x06, 0x90, + 0xc0, 0x8e, 0xe9, 0xda, 0x60, 0xff, 0xc0, 0x82, 0xe1, 0xcb, 0x8e, 0xdf, 0xf0, 0x48, 0x88, 0x5e, + 0x81, 0x01, 0x72, 0x87, 0xd4, 0xc5, 0x09, 0x9e, 0xd9, 0xe1, 0xe4, 0x94, 0xe3, 0x4a, 0x30, 0xfa, + 0x1f, 0xb3, 0x5a, 0xe8, 0x32, 0x0c, 0xd3, 0xde, 0x5e, 0x52, 0x36, 0xe3, 0x8f, 0xe4, 0x7d, 0xb1, + 0x9a, 0x76, 0x7e, 0x30, 0x8a, 0x22, 0x2c, 0xab, 0x33, 0x85, 0x4e, 0xbd, 0x55, 0xa3, 0x0c, 0x2c, + 0xee, 0x76, 0xdd, 0xda, 0x58, 0xae, 0x72, 0x24, 0x41, 0x8d, 0x2b, 0x74, 0x64, 0x21, 0x4e, 0x88, + 0xd8, 0x1b, 0x50, 0xa2, 0x93, 0xba, 0xe8, 0xb9, 0x4e, 0x77, 0x5d, 0xd2, 0x53, 0x50, 0x92, 0x7a, + 0x9d, 0x48, 0x98, 0x9d, 0x33, 0xaa, 0x52, 0xed, 0x13, 0xe1, 0x04, 0x6e, 0x6f, 0xc1, 0x0c, 0x7b, + 0x24, 0x75, 0xe2, 0x6d, 0x63, 0x8f, 0xf5, 0x5e, 0xcc, 0x4f, 0x0b, 0xf9, 0x8a, 0xcf, 0x4c, 0x59, + 0xb3, 0x93, 0x1d, 0x93, 0x14, 0x35, 0x59, 0xeb, 0x3f, 0x0f, 0xc0, 0xf4, 0x5a, 0x6d, 0xb9, 0x66, + 0x2a, 0x16, 0x5f, 0x82, 0x31, 0x2e, 0x09, 0xd0, 0x05, 0xed, 0x78, 0xa2, 0x35, 0xf5, 0x70, 0xb0, + 0xa1, 0xc1, 0xb0, 0x81, 0x89, 0xce, 0x42, 0xd1, 0x7d, 0xd7, 0x4f, 0x9b, 0xc2, 0xad, 0xbd, 0x7e, + 0x0d, 0xd3, 0x72, 0x0a, 0xa6, 0x42, 0x05, 0x67, 0xa0, 0x0a, 0xac, 0x04, 0x8b, 0x57, 0x61, 0xc2, + 0x8d, 0xea, 0x91, 0xbb, 0xe6, 0x53, 0xee, 0x92, 0xf8, 0x5c, 0x24, 0x12, 0x3f, 0xed, 0xaa, 0x82, + 0xe2, 0x14, 0xb6, 0xc6, 0xcd, 0x07, 0xfb, 0x16, 0x4c, 0x7a, 0x5a, 0x5f, 0x53, 0x99, 0xab, 0xc5, + 0xbe, 0x2e, 0x62, 0x66, 0x39, 0x42, 0xe6, 0xe2, 0x1f, 0x1c, 0x61, 0x09, 0x43, 0x97, 0x60, 0xba, + 0xbe, 0xed, 0xb4, 0x16, 0xdb, 0xf1, 0x76, 0xc5, 0x8d, 0xea, 0xc1, 0x1e, 0x09, 0xf7, 0x99, 0x24, + 0x3c, 0x92, 0x28, 0x99, 0x14, 0x60, 0xf9, 0xf2, 0x62, 0x95, 0x62, 0xe2, 0xce, 0x3a, 0xa6, 0x08, + 0x02, 0xc7, 0x26, 0x82, 0x2c, 0xc2, 0xa4, 0x6c, 0xab, 0x46, 0x22, 0x76, 0x3c, 0x8c, 0xb2, 0xde, + 0x29, 0x97, 0x28, 0x51, 0xac, 0xfa, 0x96, 0xc6, 0x47, 0x2f, 0xc2, 0xb8, 0xeb, 0xbb, 0xb1, 0xeb, + 0xc4, 0x41, 0xc8, 0x0e, 0xd7, 0x31, 0x7e, 0x60, 0x50, 0x0e, 0xbf, 0xa6, 0x03, 0xb0, 0x89, 0x67, + 0xbf, 0x03, 0x25, 0x65, 0x6b, 0x26, 0xcd, 0x25, 0xad, 0x1c, 0x73, 0xc9, 0xde, 0x27, 0x82, 0xd4, + 0x98, 0x17, 0x33, 0x35, 0xe6, 0x7f, 0xcb, 0x82, 0xc4, 0xe4, 0x06, 0x5d, 0x86, 0x52, 0x2b, 0x60, + 0xaf, 0x66, 0xa1, 0x7c, 0x8a, 0x7e, 0x28, 0x93, 0x79, 0x70, 0x46, 0xc5, 0xc7, 0xaf, 0x2a, 0x6b, + 0xe0, 0xa4, 0x32, 0x5a, 0x82, 0xe1, 0x56, 0x48, 0x6a, 0x31, 0x73, 0x1a, 0xe9, 0x49, 0x87, 0xaf, + 0x11, 0x8e, 0x8f, 0x65, 0x45, 0xfb, 0x37, 0x2d, 0x00, 0xae, 0x94, 0x76, 0xfc, 0x26, 0x39, 0x81, + 0x8b, 0x76, 0x05, 0x06, 0xa2, 0x16, 0xa9, 0x77, 0x7b, 0xcf, 0x4c, 0xfa, 0x53, 0x6b, 0x91, 0x7a, + 0x32, 0xe0, 0xf4, 0x1f, 0x66, 0xb5, 0xed, 0x5f, 0x00, 0x98, 0x48, 0xd0, 0xe8, 0x05, 0x08, 0x3d, + 0x63, 0x98, 0xe4, 0x9f, 0x49, 0x99, 0xe4, 0x97, 0x18, 0xb6, 0x66, 0x85, 0xff, 0x0e, 0x14, 0x77, + 0x9d, 0x3b, 0xe2, 0x96, 0xf5, 0x54, 0xf7, 0x6e, 0x50, 0xfa, 0xf3, 0xeb, 0xce, 0x1d, 0x2e, 0xc7, + 0x3e, 0x25, 0x17, 0xc8, 0xba, 0x73, 0xe7, 0x90, 0xbf, 0x5a, 0x32, 0x26, 0x45, 0x2f, 0x73, 0x9f, + 0xfb, 0x4f, 0xc9, 0x7f, 0xb6, 0xec, 0x68, 0x23, 0xac, 0x2d, 0xd7, 0x17, 0x2a, 0xda, 0xbe, 0xda, + 0x72, 0xfd, 0x74, 0x5b, 0xae, 0xdf, 0x47, 0x5b, 0xae, 0x8f, 0xde, 0x83, 0x61, 0xf1, 0x1c, 0xc2, + 0x6c, 0x09, 0x47, 0x2f, 0x2e, 0xf4, 0xd1, 0x9e, 0x78, 0x4d, 0xe1, 0x6d, 0x2e, 0x48, 0x39, 0x5d, + 0x94, 0xf6, 0x6c, 0x57, 0x36, 0x88, 0xfe, 0x86, 0x05, 0x13, 0xe2, 0x37, 0x26, 0xef, 0xb6, 0x49, + 0x14, 0x0b, 0x79, 0xe0, 0x13, 0xfd, 0xf7, 0x41, 0x54, 0xe4, 0x5d, 0xf9, 0x84, 0x64, 0xb3, 0x26, + 0xb0, 0x67, 0x8f, 0x52, 0xbd, 0x40, 0xff, 0xd8, 0x82, 0x99, 0x5d, 0xe7, 0x0e, 0x6f, 0x91, 0x97, + 0x61, 0x27, 0x76, 0x03, 0x61, 0x1b, 0xf9, 0x4a, 0x7f, 0xd3, 0xdf, 0x51, 0x9d, 0x77, 0x52, 0x9a, + 0x51, 0xcd, 0x64, 0xa1, 0xf4, 0xec, 0x6a, 0x66, 0xbf, 0x66, 0xb7, 0x60, 0x44, 0xae, 0xb7, 0x8c, + 0xdb, 0x50, 0x45, 0x17, 0x76, 0x8e, 0xfc, 0x1a, 0xa5, 0xdd, 0x9e, 0x58, 0x3b, 0x62, 0xad, 0xdd, + 0xd7, 0x76, 0xde, 0x81, 0x31, 0x7d, 0x8d, 0xdd, 0xd7, 0xb6, 0xde, 0x85, 0x53, 0x19, 0x6b, 0xe9, + 0xbe, 0x36, 0x79, 0x1b, 0xce, 0xe4, 0xae, 0x8f, 0xfb, 0xd9, 0xb0, 0xfd, 0x75, 0x4b, 0xe7, 0x83, + 0x27, 0xa0, 0x9e, 0x5a, 0x36, 0xd5, 0x53, 0xe7, 0xba, 0xef, 0x9c, 0x1c, 0x1d, 0xd5, 0x5b, 0x7a, + 0xa7, 0x29, 0x57, 0x47, 0xaf, 0xc1, 0x90, 0x47, 0x4b, 0xe4, 0x3b, 0x9c, 0xdd, 0x7b, 0x47, 0x26, + 0xb2, 0x14, 0x2b, 0x8f, 0xb0, 0xa0, 0x60, 0xff, 0xb6, 0x05, 0x03, 0x27, 0x30, 0x12, 0xd8, 0x1c, + 0x89, 0x67, 0x72, 0x49, 0x8b, 0xb8, 0x07, 0xf3, 0xd8, 0xb9, 0xbd, 0x22, 0x63, 0x3b, 0xe4, 0x0c, + 0xcc, 0xff, 0x2d, 0xc0, 0x28, 0x6d, 0x4a, 0x1a, 0x8c, 0xbc, 0x0c, 0xe3, 0x9e, 0xb3, 0x49, 0x3c, + 0xa9, 0x32, 0x4f, 0x5f, 0x62, 0xaf, 0xea, 0x40, 0x6c, 0xe2, 0xd2, 0xca, 0x5b, 0xfa, 0xeb, 0x81, + 0x90, 0x5f, 0x54, 0x65, 0xe3, 0x69, 0x01, 0x9b, 0xb8, 0xf4, 0x3e, 0x75, 0xdb, 0x89, 0xeb, 0xdb, + 0xe2, 0x82, 0xab, 0xba, 0x7b, 0x8b, 0x16, 0x62, 0x0e, 0xa3, 0x02, 0x9c, 0x5c, 0x9d, 0x37, 0x49, + 0xc8, 0x04, 0x38, 0x2e, 0x1e, 0x2b, 0x01, 0x0e, 0x9b, 0x60, 0x9c, 0xc6, 0xcf, 0xf0, 0xcd, 0x1b, + 0x64, 0xe6, 0x30, 0x7d, 0xf8, 0xe6, 0xa1, 0x2a, 0xcc, 0xb8, 0x7e, 0xdd, 0x6b, 0x37, 0xc8, 0x0d, + 0x9f, 0x4b, 0x77, 0x9e, 0xfb, 0x1e, 0x69, 0x08, 0x01, 0x5a, 0x59, 0x2e, 0xad, 0x65, 0xe0, 0xe0, + 0xcc, 0x9a, 0xf6, 0x9f, 0x83, 0x53, 0x57, 0x03, 0xa7, 0xb1, 0xe4, 0x78, 0x8e, 0x5f, 0x27, 0xe1, + 0x9a, 0xdf, 0xec, 0xf9, 0x20, 0xaf, 0x3f, 0x9f, 0x17, 0x7a, 0x3d, 0x9f, 0xdb, 0xdb, 0x80, 0xf4, + 0x06, 0x84, 0x19, 0x18, 0x86, 0x61, 0x97, 0x37, 0x25, 0x96, 0xff, 0xe3, 0xd9, 0xd2, 0x75, 0x47, + 0xcf, 0x34, 0x03, 0x27, 0x5e, 0x80, 0x25, 0x21, 0xfb, 0x25, 0xc8, 0xf4, 0xcd, 0xe8, 0x7d, 0x95, + 0xb6, 0x5f, 0x80, 0x69, 0x56, 0xf3, 0x68, 0xd7, 0x3c, 0xfb, 0xaf, 0x58, 0x30, 0x79, 0x2d, 0xe5, + 0x4d, 0xfb, 0x18, 0x0c, 0xf1, 0x08, 0x27, 0x69, 0xa5, 0x57, 0x8d, 0x95, 0x62, 0x01, 0x3d, 0x76, + 0x9d, 0xcb, 0x0f, 0x2d, 0x28, 0x29, 0xd7, 0xf7, 0x13, 0x10, 0x6a, 0x97, 0x0d, 0xa1, 0x36, 0x53, + 0x17, 0xa0, 0xba, 0x93, 0x27, 0xd3, 0xa2, 0x2b, 0xca, 0x2f, 0xb4, 0x8b, 0x1a, 0x20, 0x21, 0xc3, + 0xbd, 0x08, 0x27, 0x4c, 0xe7, 0x51, 0xe9, 0x29, 0xca, 0x5e, 0xc4, 0x15, 0xee, 0x87, 0xe4, 0x45, + 0x5c, 0xf5, 0x27, 0x87, 0xfb, 0x55, 0xb5, 0x2e, 0xb3, 0x53, 0xe1, 0xa7, 0x99, 0xd5, 0x28, 0xdb, + 0x9b, 0xca, 0x1d, 0x7b, 0x4e, 0x58, 0x81, 0x8a, 0xd2, 0x43, 0xc6, 0xc8, 0xc4, 0x3f, 0x1e, 0xa6, + 0x20, 0xa9, 0x62, 0x5f, 0x86, 0xc9, 0xd4, 0x80, 0xa1, 0x17, 0x60, 0xb0, 0xb5, 0xed, 0x44, 0x24, + 0x65, 0x05, 0x34, 0x58, 0xa5, 0x85, 0x87, 0x07, 0x73, 0x13, 0xaa, 0x02, 0x2b, 0xc1, 0x1c, 0xdb, + 0xfe, 0x9f, 0x16, 0x0c, 0x5c, 0x0b, 0x1a, 0x27, 0xb1, 0x98, 0x5e, 0x35, 0x16, 0xd3, 0xc3, 0x79, + 0x41, 0x5e, 0x72, 0xd7, 0xd1, 0x6a, 0x6a, 0x1d, 0x9d, 0xcb, 0xa5, 0xd0, 0x7d, 0x09, 0xed, 0xc2, + 0x28, 0x0b, 0x1d, 0x23, 0xac, 0x92, 0x9e, 0x33, 0xee, 0x57, 0x73, 0xa9, 0xfb, 0xd5, 0xa4, 0x86, + 0xaa, 0xdd, 0xb2, 0x9e, 0x80, 0x61, 0x61, 0x19, 0x93, 0xb6, 0x8f, 0x15, 0xb8, 0x58, 0xc2, 0xed, + 0x5f, 0x29, 0x82, 0x11, 0xaa, 0x06, 0xfd, 0x8e, 0x05, 0xf3, 0x21, 0xf7, 0x08, 0x6a, 0x54, 0xda, + 0xa1, 0xeb, 0x37, 0x6b, 0xf5, 0x6d, 0xd2, 0x68, 0x7b, 0xae, 0xdf, 0x5c, 0x6b, 0xfa, 0x81, 0x2a, + 0x5e, 0xb9, 0x43, 0xea, 0x6d, 0xa6, 0x07, 0xef, 0x11, 0x17, 0x47, 0xbd, 0x3c, 0x5f, 0xbc, 0x7b, + 0x30, 0x37, 0x8f, 0x8f, 0x44, 0x1b, 0x1f, 0xb1, 0x2f, 0xe8, 0x3b, 0x16, 0x2c, 0xf0, 0x08, 0x2e, + 0xfd, 0xf7, 0xbf, 0xcb, 0x6d, 0xb4, 0x2a, 0x49, 0x25, 0x44, 0x36, 0x48, 0xb8, 0xbb, 0xf4, 0xa2, + 0x18, 0xd0, 0x85, 0xea, 0xd1, 0xda, 0xc2, 0x47, 0xed, 0x9c, 0xfd, 0xaf, 0x8a, 0x30, 0x4e, 0x47, + 0x31, 0xf1, 0x82, 0x7f, 0xc1, 0x58, 0x12, 0x8f, 0xa4, 0x96, 0xc4, 0xb4, 0x81, 0x7c, 0x3c, 0x0e, + 0xf0, 0x11, 0x4c, 0x7b, 0x4e, 0x14, 0x5f, 0x26, 0x4e, 0x18, 0x6f, 0x12, 0x87, 0x3d, 0xf5, 0x8a, + 0x65, 0x7e, 0x94, 0xd7, 0x63, 0xa5, 0xfe, 0xba, 0x9a, 0x26, 0x86, 0x3b, 0xe9, 0xa3, 0x3d, 0x40, + 0xec, 0x59, 0x39, 0x74, 0xfc, 0x88, 0x7f, 0x8b, 0x2b, 0x74, 0xe4, 0x47, 0x6b, 0x75, 0x56, 0xb4, + 0x8a, 0xae, 0x76, 0x50, 0xc3, 0x19, 0x2d, 0x68, 0xe6, 0x02, 0x83, 0xfd, 0x9a, 0x0b, 0x0c, 0xf5, + 0x30, 0x42, 0xdf, 0x85, 0x29, 0x31, 0x2b, 0x5b, 0x6e, 0x53, 0x1c, 0xd2, 0x6f, 0xa4, 0xcc, 0x89, + 0xac, 0xfe, 0x0d, 0x1f, 0x7a, 0xd8, 0x12, 0xd9, 0x3f, 0x0f, 0xa7, 0x68, 0x73, 0xa6, 0xc9, 0x74, + 0x84, 0x08, 0x4c, 0xee, 0xb4, 0x37, 0x89, 0x47, 0x62, 0x59, 0x26, 0x1a, 0xcd, 0x14, 0xfb, 0xcd, + 0xda, 0x89, 0x6c, 0x79, 0xc5, 0x24, 0x81, 0xd3, 0x34, 0xed, 0x5f, 0xb5, 0x80, 0x19, 0x26, 0x9e, + 0xc0, 0xf1, 0xf7, 0x29, 0xf3, 0xf8, 0x2b, 0xe7, 0x71, 0xa0, 0x9c, 0x93, 0xef, 0x79, 0x3e, 0x2d, + 0xd5, 0x30, 0xb8, 0xb3, 0x2f, 0x65, 0xff, 0xde, 0x12, 0xd7, 0xff, 0xb1, 0xf8, 0x86, 0x54, 0x0e, + 0x92, 0xe8, 0xb3, 0x30, 0x52, 0x77, 0x5a, 0x4e, 0x9d, 0xc7, 0x08, 0xcb, 0xd5, 0xfe, 0x18, 0x95, + 0xe6, 0x97, 0x45, 0x0d, 0xae, 0xcd, 0xf8, 0xb8, 0xfc, 0x4a, 0x59, 0xdc, 0x53, 0x83, 0xa1, 0x9a, + 0x9c, 0xdd, 0x81, 0x71, 0x83, 0xd8, 0x7d, 0xbd, 0xfa, 0x7e, 0x96, 0x1f, 0x17, 0xea, 0xc6, 0xb2, + 0x0b, 0xd3, 0xbe, 0xf6, 0x9f, 0x32, 0x47, 0x29, 0x4e, 0x7f, 0xb4, 0xd7, 0x81, 0xc0, 0x38, 0xa9, + 0x66, 0x78, 0x99, 0x22, 0x83, 0x3b, 0x29, 0xdb, 0x7f, 0xc7, 0x82, 0x07, 0x75, 0x44, 0xcd, 0x77, + 0xb5, 0x97, 0x3e, 0xb9, 0x02, 0x23, 0x41, 0x8b, 0x84, 0x4e, 0x72, 0x27, 0xbb, 0x20, 0x07, 0xfd, + 0xba, 0x28, 0x3f, 0x3c, 0x98, 0x9b, 0xd1, 0xa9, 0xcb, 0x72, 0xac, 0x6a, 0x22, 0x1b, 0x86, 0xd8, + 0x60, 0x44, 0xc2, 0xaf, 0x98, 0xc5, 0xd1, 0x62, 0xcf, 0x5d, 0x11, 0x16, 0x10, 0xfb, 0x17, 0x2c, + 0xbe, 0xb0, 0xf4, 0xae, 0xa3, 0x77, 0x61, 0x6a, 0x97, 0x5e, 0xdf, 0x56, 0xee, 0xb4, 0x42, 0xae, + 0x46, 0x97, 0xe3, 0xf4, 0x54, 0xaf, 0x71, 0xd2, 0x3e, 0x72, 0xa9, 0x2c, 0xfa, 0x3c, 0xb5, 0x9e, + 0x22, 0x86, 0x3b, 0xc8, 0xdb, 0x7f, 0x5a, 0xe0, 0x3b, 0x91, 0x49, 0x75, 0x4f, 0xc0, 0x70, 0x2b, + 0x68, 0x2c, 0xaf, 0x55, 0xb0, 0x18, 0x21, 0xc5, 0xae, 0xaa, 0xbc, 0x18, 0x4b, 0x38, 0xba, 0x08, + 0x40, 0xee, 0xc4, 0x24, 0xf4, 0x1d, 0x4f, 0x3d, 0xc6, 0x2b, 0xe1, 0x69, 0x45, 0x41, 0xb0, 0x86, + 0x45, 0xeb, 0xb4, 0xc2, 0x60, 0xcf, 0x6d, 0x30, 0xc7, 0x8e, 0xa2, 0x59, 0xa7, 0xaa, 0x20, 0x58, + 0xc3, 0xa2, 0x57, 0xe5, 0xb6, 0x1f, 0xf1, 0x03, 0xd0, 0xd9, 0x14, 0xa1, 0x78, 0x46, 0x92, 0xab, + 0xf2, 0x0d, 0x1d, 0x88, 0x4d, 0x5c, 0xb4, 0x08, 0x43, 0xb1, 0xc3, 0x9e, 0x98, 0x07, 0xf3, 0x4d, + 0x76, 0x36, 0x28, 0x86, 0x1e, 0x34, 0x8a, 0x56, 0xc0, 0xa2, 0x22, 0x7a, 0x53, 0xb2, 0x60, 0xce, + 0x92, 0x85, 0xe9, 0x55, 0xee, 0xb2, 0xd5, 0xd9, 0xb7, 0xce, 0x83, 0x85, 0x49, 0x97, 0x41, 0xcb, + 0xfe, 0x7c, 0x09, 0x20, 0x91, 0xf6, 0xd0, 0x7b, 0x1d, 0x2c, 0xe2, 0xe9, 0xee, 0xf2, 0xe1, 0xf1, + 0xf1, 0x07, 0xf4, 0x05, 0x0b, 0x46, 0x1d, 0xcf, 0x0b, 0xea, 0x4e, 0xcc, 0x46, 0xb9, 0xd0, 0x9d, + 0x45, 0x89, 0xf6, 0x17, 0x93, 0x1a, 0xbc, 0x0b, 0xcf, 0xc9, 0xd7, 0x63, 0x0d, 0xd2, 0xb3, 0x17, + 0x7a, 0xc3, 0xe8, 0xe3, 0xf2, 0x12, 0xc0, 0x97, 0xc7, 0x6c, 0xfa, 0x12, 0x50, 0x62, 0xdc, 0x58, + 0x93, 0xff, 0xd1, 0x0d, 0x23, 0x66, 0xcd, 0x40, 0xbe, 0x7b, 0xae, 0x21, 0xf4, 0xf4, 0x0a, 0x57, + 0x83, 0xaa, 0xba, 0x09, 0xfa, 0x60, 0xbe, 0x0f, 0xbb, 0x26, 0x5d, 0xf7, 0x30, 0x3f, 0x7f, 0x07, + 0x26, 0x1b, 0xe6, 0x71, 0x2b, 0x56, 0xd3, 0xe3, 0x79, 0x74, 0x53, 0xa7, 0x73, 0x72, 0xc0, 0xa6, + 0x00, 0x38, 0x4d, 0x18, 0x55, 0xb9, 0x33, 0xc0, 0x9a, 0xbf, 0x15, 0x08, 0x13, 0x3e, 0x3b, 0x77, + 0x2e, 0xf7, 0xa3, 0x98, 0xec, 0x52, 0xcc, 0xe4, 0x1c, 0xbd, 0x26, 0xea, 0x62, 0x45, 0x05, 0xbd, + 0x06, 0x43, 0xcc, 0x43, 0x2b, 0x2a, 0x8f, 0xe4, 0xeb, 0x01, 0x4d, 0xe7, 0xe2, 0x64, 0x53, 0xb1, + 0xbf, 0x11, 0x16, 0x14, 0xd0, 0x65, 0x19, 0x22, 0x20, 0x5a, 0xf3, 0x6f, 0x44, 0x84, 0x85, 0x08, + 0x28, 0x2d, 0x7d, 0x34, 0xf1, 0xfe, 0xe7, 0xe5, 0x99, 0xe1, 0x21, 0x8d, 0x9a, 0x54, 0x5e, 0x11, + 0xff, 0x65, 0xd4, 0xc9, 0x32, 0xe4, 0x77, 0xcf, 0x8c, 0x4c, 0x99, 0x0c, 0xe7, 0x4d, 0x93, 0x04, + 0x4e, 0xd3, 0x3c, 0xd1, 0xe3, 0x73, 0xd6, 0x87, 0xa9, 0xf4, 0xc6, 0xba, 0xaf, 0xc7, 0xf5, 0x0f, + 0x06, 0x60, 0xc2, 0x5c, 0x08, 0x68, 0x01, 0x4a, 0x82, 0x88, 0x0a, 0x17, 0xa6, 0xd6, 0xf6, 0xba, + 0x04, 0xe0, 0x04, 0x87, 0x85, 0x4b, 0x63, 0xd5, 0x35, 0xdb, 0xac, 0x24, 0x5c, 0x9a, 0x82, 0x60, + 0x0d, 0x8b, 0x0a, 0xd1, 0x9b, 0x41, 0x10, 0xab, 0xa3, 0x40, 0xad, 0x96, 0x25, 0x56, 0x8a, 0x05, + 0x94, 0x1e, 0x01, 0x3b, 0x24, 0xf4, 0x89, 0x67, 0x6a, 0x32, 0xd5, 0x11, 0x70, 0x45, 0x07, 0x62, + 0x13, 0x97, 0x1e, 0x69, 0x41, 0xc4, 0x96, 0x9f, 0x10, 0xd5, 0x13, 0x5b, 0xb7, 0x1a, 0xf7, 0x50, + 0x94, 0x70, 0xf4, 0x06, 0x3c, 0xa8, 0x1c, 0x0a, 0x31, 0xd7, 0x0c, 0xcb, 0x16, 0x87, 0x8c, 0x9b, + 0xf5, 0x83, 0xcb, 0xd9, 0x68, 0x38, 0xaf, 0x3e, 0x7a, 0x15, 0x26, 0x84, 0x08, 0x2c, 0x29, 0x0e, + 0x9b, 0xc6, 0x0a, 0x57, 0x0c, 0x28, 0x4e, 0x61, 0xa3, 0x0a, 0x4c, 0xd1, 0x12, 0x26, 0x85, 0x4a, + 0x0a, 0xdc, 0x31, 0x52, 0x9d, 0xf5, 0x57, 0x52, 0x70, 0xdc, 0x51, 0x03, 0x2d, 0xc2, 0x24, 0x97, + 0x51, 0xe8, 0x9d, 0x92, 0xcd, 0x83, 0xb0, 0xac, 0x55, 0x1b, 0xe1, 0xba, 0x09, 0xc6, 0x69, 0x7c, + 0xf4, 0x12, 0x8c, 0x39, 0x61, 0x7d, 0xdb, 0x8d, 0x49, 0x3d, 0x6e, 0x87, 0x3c, 0x00, 0x87, 0x66, + 0xed, 0xb1, 0xa8, 0xc1, 0xb0, 0x81, 0x69, 0xbf, 0x07, 0xa7, 0x32, 0x8c, 0xf2, 0xe9, 0xc2, 0x71, + 0x5a, 0xae, 0xfc, 0xa6, 0x94, 0xd5, 0xda, 0x62, 0x75, 0x4d, 0x7e, 0x8d, 0x86, 0x45, 0x57, 0x27, + 0x53, 0x89, 0x6b, 0xa1, 0x61, 0xd5, 0xea, 0x5c, 0x95, 0x00, 0x9c, 0xe0, 0xd8, 0xbf, 0x0f, 0xa0, + 0x29, 0x74, 0xfa, 0xb0, 0x59, 0x7a, 0x09, 0xc6, 0x64, 0x3c, 0x63, 0x2d, 0x8e, 0xa6, 0xfa, 0xcc, + 0x4b, 0x1a, 0x0c, 0x1b, 0x98, 0xb4, 0x6f, 0xbe, 0x8a, 0x02, 0x9a, 0xb2, 0x91, 0x4b, 0x62, 0x80, + 0x26, 0x38, 0xe8, 0x69, 0x18, 0x89, 0x88, 0xb7, 0x75, 0xd5, 0xf5, 0x77, 0xc4, 0xc2, 0x56, 0x5c, + 0xb8, 0x26, 0xca, 0xb1, 0xc2, 0x40, 0x4b, 0x50, 0x6c, 0xbb, 0x0d, 0xb1, 0x94, 0xe5, 0x81, 0x5f, + 0xbc, 0xb1, 0x56, 0x39, 0x3c, 0x98, 0x7b, 0x24, 0x2f, 0x4c, 0x33, 0xbd, 0xda, 0x47, 0xf3, 0x74, + 0xfb, 0xd1, 0xca, 0x59, 0x6f, 0x03, 0x43, 0x47, 0x7c, 0x1b, 0xb8, 0x08, 0x20, 0xbe, 0x5a, 0xae, + 0xe5, 0x62, 0x32, 0x6b, 0x97, 0x14, 0x04, 0x6b, 0x58, 0x28, 0x82, 0xe9, 0x7a, 0x48, 0x1c, 0x79, + 0x87, 0xe6, 0xe6, 0xe5, 0x23, 0xf7, 0xae, 0x20, 0x58, 0x4e, 0x13, 0xc3, 0x9d, 0xf4, 0x51, 0x00, + 0xd3, 0x0d, 0xe1, 0xbf, 0x9a, 0x34, 0x5a, 0x3a, 0xba, 0x4d, 0x3b, 0x33, 0xc8, 0x49, 0x13, 0xc2, + 0x9d, 0xb4, 0xd1, 0xdb, 0x30, 0x2b, 0x0b, 0x3b, 0x5d, 0x86, 0xd9, 0x76, 0x29, 0x2e, 0x9d, 0xbb, + 0x7b, 0x30, 0x37, 0x5b, 0xc9, 0xc5, 0xc2, 0x5d, 0x28, 0x20, 0x0c, 0x43, 0xec, 0x2d, 0x29, 0x2a, + 0x8f, 0xb2, 0x73, 0xee, 0xc9, 0x7c, 0x65, 0x00, 0x5d, 0xeb, 0xf3, 0xec, 0x1d, 0x4a, 0x98, 0xf9, + 0x26, 0xcf, 0x72, 0xac, 0x10, 0x0b, 0x4a, 0x68, 0x0b, 0x46, 0x1d, 0xdf, 0x0f, 0x62, 0x87, 0x8b, + 0x50, 0x63, 0xf9, 0xb2, 0x9f, 0x46, 0x78, 0x31, 0xa9, 0xc1, 0xa9, 0x2b, 0xcb, 0x41, 0x0d, 0x82, + 0x75, 0xc2, 0xe8, 0x36, 0x4c, 0x06, 0xb7, 0x29, 0x73, 0x94, 0x5a, 0x8a, 0xa8, 0x3c, 0xce, 0xda, + 0x7a, 0xbe, 0x4f, 0x3d, 0xad, 0x51, 0x59, 0xe3, 0x5a, 0x26, 0x51, 0x9c, 0x6e, 0x05, 0xcd, 0x1b, + 0xda, 0xea, 0x89, 0xc4, 0x9e, 0x3d, 0xd1, 0x56, 0xeb, 0xca, 0x69, 0xe6, 0x82, 0xce, 0xcd, 0x56, + 0xd9, 0xee, 0x9f, 0x4c, 0xb9, 0xa0, 0x27, 0x20, 0xac, 0xe3, 0xa1, 0x6d, 0x18, 0x4b, 0x9e, 0xac, + 0xc2, 0x88, 0x45, 0xa8, 0x19, 0xbd, 0x78, 0xb1, 0xbf, 0x8f, 0x5b, 0xd3, 0x6a, 0xf2, 0x9b, 0x83, + 0x5e, 0x82, 0x0d, 0xca, 0xb3, 0x3f, 0x05, 0xa3, 0xda, 0xc4, 0x1e, 0xc5, 0x2a, 0x7b, 0xf6, 0x55, + 0x98, 0x4a, 0x4f, 0xdd, 0x91, 0xac, 0xba, 0xff, 0x77, 0x01, 0x26, 0x33, 0x5e, 0xae, 0x58, 0xa8, + 0xe7, 0x14, 0x43, 0x4d, 0x22, 0x3b, 0x9b, 0x6c, 0xb1, 0xd0, 0x07, 0x5b, 0x94, 0x3c, 0xba, 0x98, + 0xcb, 0xa3, 0x05, 0x2b, 0x1c, 0x78, 0x3f, 0xac, 0xd0, 0x3c, 0x7d, 0x06, 0xfb, 0x3a, 0x7d, 0x8e, + 0x81, 0x7d, 0x1a, 0x07, 0xd8, 0x70, 0x1f, 0x07, 0xd8, 0x97, 0x0b, 0x30, 0x95, 0x8e, 0x27, 0x7c, + 0x02, 0xef, 0x1d, 0xaf, 0x19, 0xef, 0x1d, 0xd9, 0x81, 0xd3, 0xd3, 0x51, 0x8e, 0xf3, 0xde, 0x3e, + 0x70, 0xea, 0xed, 0xe3, 0xc9, 0xbe, 0xa8, 0x75, 0x7f, 0x07, 0xf9, 0xbb, 0x05, 0x38, 0x9d, 0xae, + 0xb2, 0xec, 0x39, 0xee, 0xee, 0x09, 0x8c, 0xcd, 0x75, 0x63, 0x6c, 0x9e, 0xe9, 0xe7, 0x6b, 0x58, + 0xd7, 0x72, 0x07, 0xe8, 0x56, 0x6a, 0x80, 0x16, 0xfa, 0x27, 0xd9, 0x7d, 0x94, 0xbe, 0x5b, 0x84, + 0x73, 0x99, 0xf5, 0x92, 0xe7, 0x82, 0x55, 0xe3, 0xb9, 0xe0, 0x62, 0xea, 0xb9, 0xc0, 0xee, 0x5e, + 0xfb, 0x78, 0xde, 0x0f, 0x84, 0xe7, 0x19, 0x8b, 0x9e, 0x76, 0x8f, 0x6f, 0x07, 0x86, 0xe7, 0x99, + 0x22, 0x84, 0x4d, 0xba, 0x3f, 0x4e, 0x6f, 0x06, 0xbf, 0x6f, 0xc1, 0x99, 0xcc, 0xb9, 0x39, 0x01, + 0xbd, 0xfa, 0x35, 0x53, 0xaf, 0xfe, 0x44, 0xdf, 0xab, 0x35, 0x47, 0xd1, 0xfe, 0xd5, 0x62, 0xce, + 0xb7, 0x30, 0xcd, 0xe4, 0x75, 0x18, 0x75, 0xea, 0x75, 0x12, 0x45, 0xeb, 0x41, 0x43, 0x05, 0x2b, + 0x7b, 0x86, 0x49, 0x1b, 0x49, 0xf1, 0xe1, 0xc1, 0xdc, 0x6c, 0x9a, 0x44, 0x02, 0xc6, 0x3a, 0x05, + 0x33, 0x00, 0x62, 0xe1, 0x58, 0x03, 0x20, 0x5e, 0x04, 0xd8, 0x53, 0xfa, 0x8a, 0xb4, 0x9a, 0x53, + 0xd3, 0x64, 0x68, 0x58, 0xe8, 0xe7, 0xd8, 0x2d, 0x80, 0x1b, 0x03, 0xf1, 0xa5, 0xf8, 0x5c, 0x9f, + 0x73, 0xa5, 0x1b, 0x16, 0x71, 0x17, 0x67, 0xa5, 0x12, 0x56, 0x24, 0xd1, 0xcf, 0xc0, 0x54, 0xc4, + 0x23, 0x68, 0x2c, 0x7b, 0x4e, 0xc4, 0x1c, 0x6b, 0xc4, 0x2a, 0x64, 0x7e, 0xcb, 0xb5, 0x14, 0x0c, + 0x77, 0x60, 0xdb, 0x5f, 0x1e, 0x80, 0x87, 0xba, 0x30, 0x1f, 0xb4, 0x68, 0x3e, 0xde, 0x3f, 0x95, + 0xd6, 0xdb, 0xcd, 0x66, 0x56, 0x36, 0x14, 0x79, 0xa9, 0x39, 0x2e, 0xbc, 0xef, 0x39, 0xfe, 0xa2, + 0xa5, 0x69, 0x54, 0xb9, 0x89, 0xef, 0xa7, 0x8e, 0xc8, 0x54, 0x8f, 0x51, 0xc5, 0xba, 0x95, 0xa1, + 0xa7, 0xbc, 0xd8, 0x77, 0x77, 0xfa, 0x56, 0x5c, 0x9e, 0xec, 0x53, 0xcf, 0xe7, 0x2c, 0x78, 0x24, + 0xb3, 0xbf, 0x86, 0xb1, 0xd1, 0x02, 0x94, 0xea, 0xb4, 0x50, 0x73, 0xb2, 0x4b, 0x5c, 0x5d, 0x25, + 0x00, 0x27, 0x38, 0x86, 0x4d, 0x51, 0xa1, 0xa7, 0x4d, 0xd1, 0xbf, 0xb4, 0x60, 0x26, 0xdd, 0x89, + 0x13, 0xe0, 0x80, 0x6b, 0x26, 0x07, 0xfc, 0x68, 0x3f, 0x73, 0x99, 0x67, 0x5d, 0x38, 0x01, 0x0f, + 0xe4, 0xe4, 0x8b, 0xd8, 0x83, 0xe9, 0x66, 0x9d, 0x98, 0xee, 0x8b, 0xe2, 0x63, 0x32, 0x3d, 0x3d, + 0xbb, 0xfa, 0x3a, 0xf2, 0x8b, 0x6c, 0x07, 0x0a, 0xee, 0x6c, 0x02, 0x7d, 0xce, 0x82, 0x19, 0xe7, + 0x76, 0xd4, 0x91, 0xbf, 0x49, 0xac, 0x99, 0xe7, 0x33, 0xf5, 0xab, 0x3d, 0xf2, 0x3d, 0x31, 0x17, + 0xa3, 0x99, 0x2c, 0x2c, 0x9c, 0xd9, 0x16, 0xc2, 0x22, 0x2e, 0x24, 0x95, 0x93, 0xbb, 0x38, 0xd8, + 0x66, 0xb9, 0x3f, 0x71, 0x5e, 0x28, 0x21, 0x58, 0xd1, 0x41, 0x37, 0xa1, 0xd4, 0x94, 0x3e, 0x89, + 0x82, 0xd7, 0x66, 0x1e, 0x5e, 0x99, 0x8e, 0x8b, 0xdc, 0xe7, 0x43, 0x81, 0x70, 0x42, 0x0a, 0xbd, + 0x0a, 0x45, 0x7f, 0x2b, 0xea, 0x96, 0x30, 0x23, 0x65, 0x83, 0xc7, 0x3d, 0xa5, 0xaf, 0xad, 0xd6, + 0x30, 0xad, 0x88, 0x2e, 0x43, 0x31, 0xdc, 0x6c, 0x88, 0x27, 0x81, 0x4c, 0x79, 0x12, 0x2f, 0x55, + 0xb2, 0x17, 0x09, 0xa7, 0x84, 0x97, 0x2a, 0x98, 0x92, 0x40, 0xab, 0x30, 0xc8, 0x9c, 0x9d, 0x84, + 0xe6, 0x3f, 0x33, 0xe6, 0x43, 0x87, 0x23, 0x17, 0x77, 0xa2, 0x66, 0xc5, 0x98, 0x57, 0x47, 0xaf, + 0xc1, 0x50, 0x9d, 0x65, 0x92, 0x10, 0x6a, 0x9a, 0xec, 0x38, 0x26, 0x1d, 0xb9, 0x26, 0xf8, 0x7b, + 0x27, 0x2f, 0xc7, 0x82, 0x02, 0xda, 0x80, 0xa1, 0x3a, 0x69, 0x6d, 0x6f, 0x45, 0x42, 0xfb, 0xf2, + 0xf1, 0x4c, 0x5a, 0x5d, 0x12, 0xa7, 0x08, 0xaa, 0x0c, 0x03, 0x0b, 0x5a, 0xe8, 0x93, 0x50, 0xd8, + 0xaa, 0x0b, 0xbf, 0xa7, 0x4c, 0x8d, 0xbf, 0xe9, 0xd8, 0xbe, 0x34, 0x74, 0xf7, 0x60, 0xae, 0xb0, + 0xba, 0x8c, 0x0b, 0x5b, 0x75, 0x74, 0x0d, 0x86, 0xb7, 0xb8, 0x77, 0xb2, 0x88, 0xf8, 0xfb, 0x78, + 0xb6, 0xe3, 0x74, 0x87, 0x03, 0x33, 0xf7, 0xd7, 0x11, 0x00, 0x2c, 0x89, 0xa0, 0x0d, 0x80, 0x2d, + 0xe5, 0x65, 0x2d, 0x42, 0xfe, 0x7e, 0xb4, 0x1f, 0x5f, 0x6c, 0xa1, 0x8a, 0x50, 0xa5, 0x58, 0xa3, + 0x83, 0x3e, 0x03, 0x25, 0x47, 0xe6, 0x06, 0x62, 0xe1, 0x7e, 0x4d, 0xc9, 0x20, 0xd9, 0x7a, 0xdd, + 0xd3, 0x26, 0xf1, 0x75, 0xab, 0x90, 0x70, 0x42, 0x14, 0xed, 0xc0, 0xf8, 0x5e, 0xd4, 0xda, 0x26, + 0x72, 0xab, 0xb2, 0x18, 0xc0, 0x39, 0x47, 0xd3, 0x4d, 0x81, 0xe8, 0x86, 0x71, 0xdb, 0xf1, 0x3a, + 0xb8, 0x0b, 0x73, 0xee, 0xba, 0xa9, 0x13, 0xc3, 0x26, 0x6d, 0x3a, 0xe8, 0xef, 0xb6, 0x83, 0xcd, + 0xfd, 0x98, 0x88, 0xc8, 0xc0, 0x99, 0x83, 0xfe, 0x3a, 0x47, 0xe9, 0x1c, 0x74, 0x01, 0xc0, 0x92, + 0x08, 0xdd, 0xcc, 0x8e, 0xcc, 0xbb, 0x25, 0xf4, 0x2d, 0x4f, 0xe4, 0x0e, 0x4f, 0x47, 0x7f, 0x93, + 0x41, 0x61, 0x5c, 0x30, 0x21, 0xc5, 0xb8, 0x5f, 0x6b, 0x3b, 0x88, 0x03, 0x3f, 0xc5, 0x79, 0xa7, + 0xf3, 0xb9, 0x5f, 0x35, 0x03, 0xbf, 0x93, 0xfb, 0x65, 0x61, 0xe1, 0xcc, 0xb6, 0x50, 0x03, 0x26, + 0x5a, 0x41, 0x18, 0xdf, 0x0e, 0x42, 0xb9, 0xaa, 0x50, 0x97, 0x8b, 0xb8, 0x81, 0x29, 0x5a, 0x64, + 0xb6, 0xda, 0x26, 0x04, 0xa7, 0x68, 0xa2, 0x4f, 0xc3, 0x70, 0x54, 0x77, 0x3c, 0xb2, 0x76, 0xbd, + 0x7c, 0x2a, 0xff, 0x58, 0xa9, 0x71, 0x94, 0x9c, 0xd5, 0xc5, 0x26, 0x47, 0xa0, 0x60, 0x49, 0x8e, + 0xf2, 0x21, 0x16, 0x6e, 0x9e, 0x05, 0x35, 0xce, 0xe1, 0x43, 0x1d, 0xf6, 0xcc, 0x9c, 0x0f, 0xb1, + 0x62, 0xcc, 0xab, 0xd3, 0x3d, 0x20, 0xe4, 0xd1, 0x20, 0x2a, 0x9f, 0xce, 0xdf, 0x03, 0x42, 0x8c, + 0xbd, 0x5e, 0xeb, 0xb6, 0x07, 0x14, 0x12, 0x4e, 0x88, 0xda, 0xdf, 0x1c, 0xea, 0x94, 0x20, 0xd8, + 0xbd, 0xe3, 0xf3, 0x56, 0xc7, 0xa3, 0xfc, 0x27, 0xfa, 0x55, 0x83, 0x1c, 0xa3, 0xec, 0xf8, 0x39, + 0x0b, 0x1e, 0x68, 0x65, 0x7e, 0x94, 0x38, 0x8e, 0xfb, 0xd3, 0xa6, 0xf0, 0x61, 0x50, 0xe1, 0xc2, + 0xb3, 0xe1, 0x38, 0xa7, 0xa5, 0xb4, 0x7c, 0x5e, 0x7c, 0xdf, 0xf2, 0xf9, 0x3a, 0x8c, 0x30, 0x91, + 0x2f, 0x09, 0x4f, 0xd4, 0x97, 0x69, 0x1b, 0x3b, 0xd8, 0x97, 0x45, 0x45, 0xac, 0x48, 0xa0, 0x5f, + 0xb4, 0xe0, 0x6c, 0xba, 0xeb, 0x98, 0x30, 0xb0, 0x08, 0x75, 0xc9, 0xaf, 0x3c, 0xab, 0xe2, 0xfb, + 0xcf, 0x56, 0xbb, 0x21, 0x1f, 0xf6, 0x42, 0xc0, 0xdd, 0x1b, 0x43, 0x95, 0x8c, 0x3b, 0xd7, 0x90, + 0xf9, 0x66, 0xd7, 0xfb, 0xde, 0x85, 0x9e, 0x87, 0xb1, 0xdd, 0xa0, 0xed, 0x4b, 0xbf, 0x13, 0xe1, + 0x55, 0xcc, 0xf4, 0xc3, 0xeb, 0x5a, 0x39, 0x36, 0xb0, 0x4e, 0xf6, 0x0e, 0xf0, 0x35, 0x2b, 0x43, + 0x78, 0xe5, 0xb7, 0xc2, 0x57, 0xcc, 0x5b, 0xe1, 0x63, 0xe9, 0x5b, 0x61, 0x87, 0xf6, 0xce, 0xb8, + 0x10, 0xf6, 0x1f, 0xc2, 0xb7, 0xdf, 0xf8, 0x4d, 0xb6, 0x07, 0xe7, 0x7b, 0xb1, 0x69, 0x66, 0xde, + 0xd7, 0x50, 0xef, 0xde, 0x89, 0x79, 0x5f, 0x63, 0xad, 0x82, 0x19, 0xa4, 0xdf, 0x48, 0x20, 0xf6, + 0x7f, 0xb7, 0xa0, 0x58, 0x0d, 0x1a, 0x27, 0xa0, 0x8d, 0xfc, 0x94, 0xa1, 0x8d, 0x7c, 0x28, 0x27, + 0x9f, 0x67, 0xae, 0xee, 0x71, 0x25, 0xa5, 0x7b, 0x3c, 0x9b, 0x47, 0xa0, 0xbb, 0xa6, 0xf1, 0xef, + 0x15, 0x41, 0xcf, 0x3e, 0x8a, 0xfe, 0xf5, 0xbd, 0xd8, 0x89, 0x17, 0xbb, 0x25, 0x24, 0x15, 0x94, + 0x99, 0x55, 0xa0, 0x74, 0x41, 0xfd, 0x11, 0x33, 0x17, 0xbf, 0x45, 0xdc, 0xe6, 0x76, 0x4c, 0x1a, + 0xe9, 0xcf, 0x39, 0x39, 0x73, 0xf1, 0xff, 0x62, 0xc1, 0x64, 0xaa, 0x75, 0xe4, 0x65, 0xf9, 0xb3, + 0xdd, 0xa3, 0x16, 0x6a, 0xba, 0xa7, 0x03, 0xdc, 0x3c, 0x80, 0x7a, 0xea, 0x91, 0x9a, 0x1e, 0x26, + 0x05, 0xab, 0xb7, 0xa0, 0x08, 0x6b, 0x18, 0xe8, 0x05, 0x18, 0x8d, 0x83, 0x56, 0xe0, 0x05, 0xcd, + 0xfd, 0x2b, 0x44, 0xc6, 0x9e, 0x51, 0x0f, 0x72, 0x1b, 0x09, 0x08, 0xeb, 0x78, 0xf6, 0xaf, 0x15, + 0x21, 0x9d, 0xb1, 0xf6, 0x27, 0x6b, 0xf2, 0xc3, 0xb9, 0x26, 0xbf, 0x6b, 0xc1, 0x14, 0x6d, 0x9d, + 0x59, 0x5c, 0x49, 0x43, 0x6b, 0x95, 0xeb, 0xc3, 0xea, 0x92, 0xeb, 0xe3, 0x31, 0xca, 0xbb, 0x1a, + 0x41, 0x3b, 0x16, 0x9a, 0x22, 0x8d, 0x39, 0xd1, 0x52, 0x2c, 0xa0, 0x02, 0x8f, 0x84, 0xa1, 0xf0, + 0x52, 0xd3, 0xf1, 0x48, 0x18, 0x62, 0x01, 0x95, 0xa9, 0x40, 0x06, 0x72, 0x52, 0x81, 0xb0, 0xb0, + 0x6d, 0xc2, 0xca, 0x47, 0x08, 0x14, 0x5a, 0xd8, 0x36, 0x69, 0xfe, 0x93, 0xe0, 0xd8, 0x5f, 0x2f, + 0xc2, 0x58, 0x35, 0x68, 0x24, 0x8f, 0x2d, 0xcf, 0x1b, 0x8f, 0x2d, 0xe7, 0x53, 0x8f, 0x2d, 0x53, + 0x3a, 0xee, 0x4f, 0x9e, 0x56, 0x3e, 0xa8, 0xa7, 0x95, 0x3f, 0xb3, 0x60, 0xa2, 0x1a, 0x34, 0xe8, + 0x02, 0xfd, 0x71, 0x5a, 0x8d, 0x7a, 0x50, 0xc0, 0xa1, 0x2e, 0x41, 0x01, 0xff, 0xbe, 0x05, 0xc3, + 0xd5, 0xa0, 0x71, 0x02, 0x5a, 0xd4, 0x57, 0x4c, 0x2d, 0xea, 0x83, 0x39, 0x5c, 0x36, 0x47, 0x71, + 0xfa, 0x8d, 0x22, 0x8c, 0xd3, 0x7e, 0x06, 0x4d, 0x39, 0x4b, 0xc6, 0x88, 0x58, 0x7d, 0x8c, 0x08, + 0x15, 0xe6, 0x02, 0xcf, 0x0b, 0x6e, 0xa7, 0x67, 0x6c, 0x95, 0x95, 0x62, 0x01, 0x45, 0x4f, 0xc3, + 0x48, 0x2b, 0x24, 0x7b, 0x6e, 0xd0, 0x8e, 0xd2, 0x7e, 0xae, 0x55, 0x51, 0x8e, 0x15, 0x06, 0x95, + 0xdb, 0x23, 0xd7, 0xaf, 0x13, 0x69, 0xf9, 0x33, 0xc0, 0x2c, 0x7f, 0x78, 0x5c, 0x55, 0xad, 0x1c, + 0x1b, 0x58, 0xe8, 0x16, 0x94, 0xd8, 0x7f, 0xb6, 0x6f, 0x8e, 0x9e, 0xe9, 0x43, 0x04, 0x33, 0x17, + 0x04, 0x70, 0x42, 0x0b, 0x5d, 0x04, 0x88, 0xa5, 0x8d, 0x52, 0x24, 0xdc, 0xb0, 0x95, 0x44, 0xa9, + 0xac, 0x97, 0x22, 0xac, 0x61, 0xa1, 0xa7, 0xa0, 0x14, 0x3b, 0xae, 0x77, 0xd5, 0xf5, 0x49, 0x24, + 0x6c, 0xbc, 0x44, 0xac, 0x72, 0x51, 0x88, 0x13, 0x38, 0x3d, 0xd1, 0x99, 0x93, 0x3f, 0xcf, 0x13, + 0x34, 0xc2, 0xb0, 0xd9, 0x89, 0x7e, 0x55, 0x95, 0x62, 0x0d, 0xc3, 0x7e, 0x09, 0x4e, 0x57, 0x83, + 0x46, 0x35, 0x08, 0xe3, 0xd5, 0x20, 0xbc, 0xed, 0x84, 0x0d, 0x39, 0x7f, 0x73, 0x32, 0x6c, 0x36, + 0x3d, 0x75, 0x07, 0xb9, 0x36, 0xc0, 0x08, 0x88, 0xfd, 0x1c, 0x3b, 0xd3, 0x8f, 0xe8, 0x90, 0xf3, + 0xef, 0x0a, 0x80, 0xaa, 0xcc, 0x8a, 0xca, 0x48, 0x26, 0xf5, 0x36, 0x4c, 0x44, 0xe4, 0xaa, 0xeb, + 0xb7, 0xef, 0xc8, 0xfb, 0x55, 0x17, 0x6f, 0xa7, 0xda, 0x8a, 0x8e, 0xc9, 0x75, 0x2b, 0x66, 0x19, + 0x4e, 0x51, 0xa3, 0x43, 0x18, 0xb6, 0xfd, 0xc5, 0xe8, 0x46, 0x44, 0x42, 0x91, 0x3c, 0x89, 0x0d, + 0x21, 0x96, 0x85, 0x38, 0x81, 0xd3, 0x25, 0xc3, 0xfe, 0x5c, 0x0b, 0x7c, 0x1c, 0x04, 0xb1, 0x5c, + 0x64, 0x2c, 0xfd, 0x86, 0x56, 0x8e, 0x0d, 0x2c, 0xb4, 0x0a, 0x28, 0x6a, 0xb7, 0x5a, 0x1e, 0x7b, + 0x9a, 0x74, 0xbc, 0x4b, 0x61, 0xd0, 0x6e, 0xf1, 0xe7, 0x25, 0x91, 0xb9, 0xa2, 0xd6, 0x01, 0xc5, + 0x19, 0x35, 0x28, 0x63, 0xd8, 0x8a, 0xd8, 0x6f, 0xe1, 0xe7, 0xcf, 0xb5, 0x9c, 0x35, 0x56, 0x84, + 0x25, 0xcc, 0xfe, 0x2c, 0x3b, 0xcc, 0x58, 0xce, 0x9b, 0xb8, 0x1d, 0x12, 0xb4, 0x0b, 0xe3, 0x2d, + 0x76, 0x60, 0xc5, 0x61, 0xe0, 0x79, 0x44, 0xca, 0x8d, 0xf7, 0x66, 0xd1, 0xc5, 0x73, 0x60, 0xe8, + 0xe4, 0xb0, 0x49, 0xdd, 0xfe, 0xfc, 0x24, 0xe3, 0x4b, 0x35, 0x7e, 0x69, 0x19, 0x16, 0x76, 0xda, + 0x42, 0x42, 0x9b, 0xcd, 0xcf, 0x31, 0x97, 0x70, 0x7a, 0x61, 0xeb, 0x8d, 0x65, 0x5d, 0xf4, 0x3a, + 0x7b, 0x97, 0xe3, 0xcc, 0xa0, 0x57, 0x76, 0x4b, 0x8e, 0x65, 0x3c, 0xc1, 0x89, 0x8a, 0x58, 0x23, + 0x82, 0xae, 0xc2, 0xb8, 0x48, 0x91, 0x22, 0x14, 0x0f, 0x45, 0xe3, 0xfa, 0x3b, 0x8e, 0x75, 0xe0, + 0x61, 0xba, 0x00, 0x9b, 0x95, 0x51, 0x13, 0xce, 0x6a, 0x09, 0xbd, 0x32, 0xac, 0x0a, 0x39, 0x6f, + 0x79, 0xe4, 0xee, 0xc1, 0xdc, 0xd9, 0x8d, 0x6e, 0x88, 0xb8, 0x3b, 0x1d, 0x74, 0x1d, 0x4e, 0x3b, + 0xf5, 0xd8, 0xdd, 0x23, 0x15, 0xe2, 0x34, 0x3c, 0xd7, 0x27, 0x66, 0xe0, 0x87, 0x33, 0x77, 0x0f, + 0xe6, 0x4e, 0x2f, 0x66, 0x21, 0xe0, 0xec, 0x7a, 0xe8, 0x15, 0x28, 0x35, 0xfc, 0x48, 0x8c, 0xc1, + 0x90, 0x91, 0xab, 0xae, 0x54, 0xb9, 0x56, 0x53, 0xdf, 0x9f, 0xfc, 0xc1, 0x49, 0x05, 0xd4, 0x84, + 0x31, 0xdd, 0xb9, 0x4b, 0xe4, 0x39, 0x7c, 0xa6, 0xcb, 0xdd, 0xd6, 0xf0, 0x88, 0xe2, 0x5a, 0x37, + 0x65, 0xb3, 0x6b, 0x38, 0x4b, 0x19, 0x84, 0xd1, 0x6b, 0x80, 0x22, 0x12, 0xee, 0xb9, 0x75, 0xb2, + 0x58, 0x67, 0x81, 0x87, 0x99, 0xae, 0x66, 0xc4, 0x70, 0x40, 0x41, 0xb5, 0x0e, 0x0c, 0x9c, 0x51, + 0x0b, 0x5d, 0xa6, 0x1c, 0x45, 0x2f, 0x15, 0x26, 0xd6, 0x52, 0xcc, 0x2b, 0x57, 0x48, 0x2b, 0x24, + 0x75, 0x27, 0x26, 0x0d, 0x93, 0x22, 0x4e, 0xd5, 0xa3, 0xe7, 0x8d, 0xca, 0xe7, 0x00, 0xa6, 0x61, + 0x70, 0x67, 0x4e, 0x07, 0x7a, 0x43, 0xda, 0x0e, 0xa2, 0xf8, 0x1a, 0x89, 0x6f, 0x07, 0xe1, 0x8e, + 0x88, 0xd6, 0x96, 0x04, 0x73, 0x4c, 0x40, 0x58, 0xc7, 0xa3, 0x12, 0x11, 0x7b, 0x18, 0x5b, 0xab, + 0xb0, 0x17, 0x8b, 0x91, 0x64, 0x9f, 0x5c, 0xe6, 0xc5, 0x58, 0xc2, 0x25, 0xea, 0x5a, 0x75, 0x99, + 0xbd, 0x43, 0xa4, 0x50, 0xd7, 0xaa, 0xcb, 0x58, 0xc2, 0x11, 0xe9, 0xcc, 0x03, 0x38, 0x91, 0xff, + 0x82, 0xd4, 0xc9, 0x97, 0xfb, 0x4c, 0x05, 0xe8, 0xc3, 0x94, 0xca, 0x40, 0xc8, 0xc3, 0xd8, 0x45, + 0xe5, 0x49, 0xb6, 0x48, 0xfa, 0x8f, 0x81, 0xa7, 0x74, 0x71, 0x6b, 0x29, 0x4a, 0xb8, 0x83, 0xb6, + 0x11, 0x50, 0x64, 0xaa, 0x67, 0x3e, 0x8e, 0x05, 0x28, 0x45, 0xed, 0xcd, 0x46, 0xb0, 0xeb, 0xb8, + 0x3e, 0x7b, 0x36, 0xd0, 0x04, 0x91, 0x9a, 0x04, 0xe0, 0x04, 0x07, 0xad, 0xc2, 0x88, 0x23, 0x2e, + 0x5f, 0x42, 0xd1, 0x9f, 0x19, 0x61, 0x40, 0x5e, 0xd0, 0xb8, 0x1e, 0x54, 0xfe, 0xc3, 0xaa, 0x2e, + 0x7a, 0x19, 0xc6, 0x85, 0x13, 0x9c, 0xb0, 0x5f, 0x3d, 0x65, 0xfa, 0x4b, 0xd4, 0x74, 0x20, 0x36, + 0x71, 0xd1, 0xcf, 0xc1, 0x04, 0xa5, 0x92, 0x30, 0xb6, 0xf2, 0x4c, 0x3f, 0x1c, 0x51, 0x8b, 0xb3, + 0xae, 0x57, 0xc6, 0x29, 0x62, 0xa8, 0x01, 0x0f, 0x3b, 0xed, 0x38, 0x60, 0xca, 0x4a, 0x73, 0xfd, + 0x6f, 0x04, 0x3b, 0xc4, 0x67, 0xda, 0xfd, 0x91, 0xa5, 0xf3, 0x77, 0x0f, 0xe6, 0x1e, 0x5e, 0xec, + 0x82, 0x87, 0xbb, 0x52, 0x41, 0x37, 0x60, 0x34, 0x0e, 0x3c, 0x61, 0x78, 0x1e, 0x95, 0x1f, 0xc8, + 0x0f, 0x88, 0xb4, 0xa1, 0xd0, 0x74, 0x75, 0x82, 0xaa, 0x8a, 0x75, 0x3a, 0x68, 0x83, 0xef, 0x31, + 0x16, 0xbe, 0x93, 0x44, 0xe5, 0x07, 0xf3, 0x07, 0x46, 0x45, 0xf9, 0x34, 0xb7, 0xa0, 0xa8, 0x89, + 0x75, 0x32, 0xe8, 0x12, 0x4c, 0xb7, 0x42, 0x37, 0x60, 0x0b, 0x5b, 0x29, 0x8a, 0xcb, 0x46, 0xa8, + 0xbc, 0xe9, 0x6a, 0x1a, 0x01, 0x77, 0xd6, 0x41, 0x17, 0xa8, 0x80, 0xca, 0x0b, 0xcb, 0x67, 0x78, + 0x9e, 0x16, 0x2e, 0x9c, 0xf2, 0x32, 0xac, 0xa0, 0xb3, 0x3f, 0x0d, 0xd3, 0x1d, 0x9c, 0xf2, 0x48, + 0x46, 0xc0, 0xff, 0x64, 0x10, 0x4a, 0x4a, 0x1d, 0x88, 0x16, 0x4c, 0x2d, 0xef, 0x99, 0xb4, 0x96, + 0x77, 0x84, 0xca, 0x6b, 0xba, 0x62, 0x77, 0x23, 0x23, 0xcd, 0xfc, 0xf9, 0x1c, 0xd6, 0xd0, 0xbf, + 0xc7, 0xde, 0x11, 0x52, 0xf0, 0x27, 0x17, 0xc6, 0x81, 0xae, 0x17, 0xc6, 0x3e, 0x53, 0x3e, 0xd2, + 0xab, 0x61, 0x2b, 0x68, 0xac, 0x55, 0xd3, 0x39, 0xd0, 0xaa, 0xb4, 0x10, 0x73, 0x18, 0x13, 0xee, + 0xe9, 0xb1, 0xce, 0x84, 0xfb, 0xe1, 0x7b, 0x14, 0xee, 0x25, 0x01, 0x9c, 0xd0, 0x42, 0x1e, 0x4c, + 0xd7, 0xcd, 0xf4, 0x75, 0xca, 0x4b, 0xef, 0xd1, 0x9e, 0x89, 0xe4, 0xda, 0x5a, 0x5e, 0x9b, 0xe5, + 0x34, 0x15, 0xdc, 0x49, 0x18, 0xbd, 0x0c, 0x23, 0xef, 0x06, 0x11, 0x5b, 0x76, 0xe2, 0x6c, 0x93, + 0x7e, 0x51, 0x23, 0xaf, 0x5f, 0xaf, 0xb1, 0xf2, 0xc3, 0x83, 0xb9, 0xd1, 0x6a, 0xd0, 0x90, 0x7f, + 0xb1, 0xaa, 0x80, 0xee, 0xc0, 0x69, 0x83, 0x23, 0xa8, 0xee, 0x42, 0xff, 0xdd, 0x3d, 0x2b, 0x9a, + 0x3b, 0xbd, 0x96, 0x45, 0x09, 0x67, 0x37, 0x60, 0x7f, 0x93, 0x2b, 0x3d, 0x85, 0x6a, 0x84, 0x44, + 0x6d, 0xef, 0x24, 0x92, 0x57, 0xac, 0x18, 0x5a, 0x9b, 0x7b, 0x56, 0xac, 0xff, 0x9e, 0xc5, 0x14, + 0xeb, 0x1b, 0x64, 0xb7, 0xe5, 0x39, 0xf1, 0x49, 0x98, 0x7e, 0xbf, 0x0e, 0x23, 0xb1, 0x68, 0xad, + 0x5b, 0xbe, 0x0d, 0xad, 0x53, 0xec, 0x71, 0x41, 0x1d, 0x88, 0xb2, 0x14, 0x2b, 0x32, 0xf6, 0x3f, + 0xe3, 0x33, 0x20, 0x21, 0x27, 0xa0, 0x5b, 0xa8, 0x98, 0xba, 0x85, 0xb9, 0x1e, 0x5f, 0x90, 0xa3, + 0x63, 0xf8, 0xa7, 0x66, 0xbf, 0xd9, 0xdd, 0xe3, 0xc3, 0xfe, 0xa2, 0x63, 0xff, 0xb2, 0x05, 0x33, + 0x59, 0x26, 0x01, 0x54, 0x88, 0xe1, 0x37, 0x1f, 0xf5, 0xc2, 0xa5, 0x46, 0xf0, 0xa6, 0x28, 0xc7, + 0x0a, 0xa3, 0xef, 0x98, 0xf7, 0x47, 0x0b, 0x02, 0x76, 0x1d, 0xcc, 0x4c, 0x87, 0xe8, 0x55, 0xee, + 0xcb, 0x61, 0xa9, 0x54, 0x84, 0x47, 0xf3, 0xe3, 0xb0, 0x7f, 0xbd, 0x00, 0x33, 0x5c, 0x45, 0xbd, + 0xb8, 0x17, 0xb8, 0x8d, 0x6a, 0xd0, 0x10, 0x9e, 0x2d, 0x6f, 0xc2, 0x58, 0x4b, 0xbb, 0xae, 0x76, + 0x0b, 0x43, 0xa4, 0x5f, 0x6b, 0x93, 0x6b, 0x83, 0x5e, 0x8a, 0x0d, 0x5a, 0xa8, 0x01, 0x63, 0x64, + 0xcf, 0xad, 0x2b, 0x3d, 0x67, 0xe1, 0xc8, 0x2c, 0x5d, 0xb5, 0xb2, 0xa2, 0xd1, 0xc1, 0x06, 0xd5, + 0xfb, 0x90, 0x99, 0xc6, 0xfe, 0x8a, 0x05, 0x0f, 0xe6, 0x04, 0x2d, 0xa2, 0xcd, 0xdd, 0x66, 0x8f, + 0x01, 0x22, 0x6d, 0xa6, 0x6a, 0x8e, 0x3f, 0x11, 0x60, 0x01, 0x45, 0x9f, 0x06, 0xe0, 0x2a, 0x7e, + 0x2a, 0x45, 0x8b, 0x4f, 0xef, 0x2f, 0x98, 0x87, 0x16, 0xf1, 0x41, 0xd6, 0xc7, 0x1a, 0x2d, 0xfb, + 0x57, 0x8b, 0x30, 0xc8, 0x73, 0xa8, 0xaf, 0xc2, 0xf0, 0x36, 0x0f, 0x91, 0xdc, 0x4f, 0x34, 0xe6, + 0xe4, 0x3a, 0xc2, 0x0b, 0xb0, 0xac, 0x8c, 0xd6, 0xe1, 0x94, 0xf0, 0x9e, 0xaa, 0x10, 0xcf, 0xd9, + 0x97, 0xb7, 0x5a, 0x9e, 0xae, 0x44, 0x86, 0xd2, 0x3f, 0xb5, 0xd6, 0x89, 0x82, 0xb3, 0xea, 0xa1, + 0x57, 0x3b, 0x02, 0x23, 0xf2, 0xe0, 0xd2, 0x4a, 0x06, 0xee, 0x11, 0x1c, 0xf1, 0x65, 0x18, 0x6f, + 0x75, 0xdc, 0xdf, 0xb5, 0xf4, 0xd5, 0xe6, 0x9d, 0xdd, 0xc4, 0x65, 0x56, 0x05, 0x6d, 0x66, 0x43, + 0xb1, 0xb1, 0x1d, 0x92, 0x68, 0x3b, 0xf0, 0x1a, 0x22, 0x57, 0x6b, 0x62, 0x55, 0x90, 0x82, 0xe3, + 0x8e, 0x1a, 0x94, 0xca, 0x96, 0xe3, 0x7a, 0xed, 0x90, 0x24, 0x54, 0x86, 0x4c, 0x2a, 0xab, 0x29, + 0x38, 0xee, 0xa8, 0x41, 0xd7, 0xd1, 0x69, 0x91, 0xe8, 0x53, 0xfa, 0xd4, 0x2b, 0x53, 0x91, 0x61, + 0x69, 0x5b, 0xdf, 0x25, 0xce, 0x8b, 0x78, 0xf2, 0x57, 0xa9, 0x42, 0xb5, 0x34, 0x72, 0xc2, 0xaa, + 0x5e, 0x52, 0xb9, 0x97, 0x74, 0x93, 0x7f, 0x6c, 0xc1, 0xa9, 0x0c, 0x43, 0x32, 0xce, 0xaa, 0x9a, + 0x6e, 0x14, 0xab, 0x2c, 0x19, 0x1a, 0xab, 0xe2, 0xe5, 0x58, 0x61, 0xd0, 0xfd, 0xc0, 0x99, 0x61, + 0x9a, 0x01, 0x0a, 0x93, 0x0f, 0x01, 0x3d, 0x1a, 0x03, 0x44, 0xe7, 0x61, 0xa0, 0x1d, 0x91, 0x50, + 0xe6, 0x69, 0x94, 0xfc, 0x9b, 0x69, 0x04, 0x19, 0x84, 0x4a, 0x94, 0x4d, 0xa5, 0x8c, 0xd3, 0x24, + 0x4a, 0xae, 0x8e, 0xe3, 0x30, 0xfb, 0x4b, 0x45, 0x38, 0x93, 0x6b, 0x14, 0x4a, 0xbb, 0xb4, 0x1b, + 0xf8, 0x6e, 0x1c, 0xa8, 0x08, 0x7d, 0x3c, 0x20, 0x09, 0x69, 0x6d, 0xaf, 0x8b, 0x72, 0xac, 0x30, + 0xd0, 0x63, 0x32, 0x8d, 0x6f, 0x3a, 0x0f, 0xc8, 0x52, 0xc5, 0xc8, 0xe4, 0xdb, 0x6f, 0x42, 0x9f, + 0x47, 0x61, 0xa0, 0x15, 0xa8, 0x1c, 0xeb, 0x6a, 0x66, 0x69, 0x77, 0x83, 0xc0, 0xc3, 0x0c, 0x88, + 0x3e, 0x26, 0xc6, 0x21, 0xf5, 0x72, 0x81, 0x9d, 0x46, 0x10, 0x69, 0x83, 0xf1, 0x04, 0x0c, 0xef, + 0x90, 0xfd, 0xd0, 0xf5, 0x9b, 0xe9, 0x77, 0x9b, 0x2b, 0xbc, 0x18, 0x4b, 0xb8, 0x99, 0x23, 0x6f, + 0xb8, 0x57, 0x8e, 0xbc, 0xa3, 0xa6, 0xe3, 0x19, 0xe9, 0x79, 0xb4, 0x7d, 0xb1, 0x08, 0x93, 0x78, + 0xa9, 0xf2, 0x93, 0x89, 0xb8, 0xd1, 0x39, 0x11, 0xc7, 0x9d, 0x1c, 0xa9, 0xf7, 0x6c, 0x7c, 0xc3, + 0x82, 0x49, 0x16, 0x96, 0x58, 0x04, 0xd4, 0x70, 0x03, 0xff, 0x04, 0x44, 0xb7, 0x47, 0x61, 0x30, + 0xa4, 0x8d, 0xa6, 0x33, 0x9e, 0xb0, 0x9e, 0x60, 0x0e, 0x43, 0x0f, 0xc3, 0x00, 0xeb, 0x02, 0x9d, + 0xbc, 0x31, 0x9e, 0x98, 0xa0, 0xe2, 0xc4, 0x0e, 0x66, 0xa5, 0xcc, 0xb3, 0x11, 0x93, 0x96, 0xe7, + 0xf2, 0x4e, 0x27, 0x1a, 0xf0, 0x0f, 0x87, 0x67, 0x63, 0x66, 0xd7, 0xde, 0x9f, 0x67, 0x63, 0x36, + 0xc9, 0xee, 0xd7, 0xa2, 0xff, 0x51, 0x80, 0x73, 0x99, 0xf5, 0xfa, 0xf6, 0x6c, 0xec, 0x5e, 0xfb, + 0x78, 0x9e, 0xdf, 0xb3, 0x5f, 0xc5, 0x8b, 0x27, 0xf8, 0x2a, 0x3e, 0xd0, 0xaf, 0xe4, 0x38, 0xd8, + 0x87, 0xc3, 0x61, 0xe6, 0x90, 0x7d, 0x48, 0x1c, 0x0e, 0x33, 0xfb, 0x96, 0x73, 0xad, 0xfb, 0x61, + 0x21, 0xe7, 0x5b, 0xd8, 0x05, 0xef, 0x02, 0xe5, 0x33, 0x0c, 0x18, 0x09, 0x49, 0x78, 0x8c, 0xf3, + 0x18, 0x5e, 0x86, 0x15, 0x14, 0xb9, 0x9a, 0xeb, 0x1e, 0xef, 0xda, 0xcb, 0x47, 0xda, 0x32, 0xf3, + 0xe6, 0x83, 0x85, 0x1e, 0xfd, 0x23, 0xed, 0xc6, 0xb7, 0xae, 0x5d, 0xca, 0x8b, 0xfd, 0x5f, 0xca, + 0xc7, 0xb2, 0x2f, 0xe4, 0x68, 0x11, 0x26, 0x77, 0x5d, 0x9f, 0xa5, 0x2d, 0x36, 0x45, 0x51, 0xe5, + 0xc9, 0xbe, 0x6e, 0x82, 0x71, 0x1a, 0x7f, 0xf6, 0x65, 0x18, 0xbf, 0x77, 0x2d, 0xe2, 0x77, 0x8b, + 0xf0, 0x50, 0x97, 0x6d, 0xcf, 0x79, 0xbd, 0x31, 0x07, 0x1a, 0xaf, 0xef, 0x98, 0x87, 0x2a, 0xcc, + 0x6c, 0xb5, 0x3d, 0x6f, 0x9f, 0x19, 0x9e, 0x91, 0x86, 0xc4, 0x10, 0xb2, 0xa2, 0x8a, 0x39, 0xbe, + 0x9a, 0x81, 0x83, 0x33, 0x6b, 0xa2, 0xd7, 0x00, 0x05, 0x9b, 0x2c, 0x0e, 0x76, 0x23, 0x89, 0x69, + 0xc2, 0x06, 0xbe, 0x98, 0x6c, 0xc6, 0xeb, 0x1d, 0x18, 0x38, 0xa3, 0x16, 0x15, 0xfa, 0xe9, 0xa9, + 0xb4, 0xaf, 0xba, 0x95, 0x12, 0xfa, 0xb1, 0x0e, 0xc4, 0x26, 0x2e, 0xba, 0x04, 0xd3, 0xce, 0x9e, + 0xe3, 0xf2, 0x18, 0x77, 0x92, 0x00, 0x97, 0xfa, 0x95, 0xee, 0x6e, 0x31, 0x8d, 0x80, 0x3b, 0xeb, + 0xa4, 0x7c, 0x10, 0x87, 0xf2, 0x7d, 0x10, 0xbb, 0xf3, 0xc5, 0x5e, 0xaa, 0x58, 0xfb, 0x3f, 0x5a, + 0xf4, 0xf8, 0xca, 0xc8, 0x93, 0x4b, 0xc7, 0x41, 0xa9, 0x14, 0x35, 0x77, 0x40, 0x35, 0x0e, 0xcb, + 0x3a, 0x10, 0x9b, 0xb8, 0x7c, 0x41, 0x44, 0x89, 0xdd, 0xbb, 0x21, 0xba, 0x0b, 0x3f, 0x5d, 0x85, + 0x81, 0xde, 0x80, 0xe1, 0x86, 0xbb, 0xe7, 0x46, 0x41, 0x28, 0x36, 0xcb, 0x51, 0x73, 0xc3, 0x2b, + 0x3e, 0x58, 0xe1, 0x64, 0xb0, 0xa4, 0x67, 0x7f, 0xb1, 0x00, 0xe3, 0xb2, 0xc5, 0xd7, 0xdb, 0x41, + 0xec, 0x9c, 0xc0, 0xb1, 0x7c, 0xc9, 0x38, 0x96, 0x3f, 0xd6, 0xcd, 0x59, 0x99, 0x75, 0x29, 0xf7, + 0x38, 0xbe, 0x9e, 0x3a, 0x8e, 0x1f, 0xef, 0x4d, 0xaa, 0xfb, 0x31, 0xfc, 0xcf, 0x2d, 0x98, 0x36, + 0xf0, 0x4f, 0xe0, 0x34, 0x58, 0x35, 0x4f, 0x83, 0x47, 0x7a, 0x7e, 0x43, 0xce, 0x29, 0xf0, 0xb5, + 0x42, 0xaa, 0xef, 0x8c, 0xfb, 0xbf, 0x0b, 0x03, 0xdb, 0x4e, 0xd8, 0xe8, 0x16, 0xa9, 0xb5, 0xa3, + 0xd2, 0xfc, 0x65, 0x27, 0x6c, 0x70, 0x1e, 0xfe, 0xb4, 0x4a, 0xe1, 0xe7, 0x84, 0x8d, 0x9e, 0x6e, + 0x1e, 0xac, 0x29, 0xf4, 0x12, 0x0c, 0x45, 0xf5, 0xa0, 0xa5, 0xcc, 0x61, 0xcf, 0xf3, 0xf4, 0x7e, + 0xb4, 0xe4, 0xf0, 0x60, 0x0e, 0x99, 0xcd, 0xd1, 0x62, 0x2c, 0xf0, 0x67, 0x9b, 0x50, 0x52, 0x4d, + 0xdf, 0x57, 0x43, 0xff, 0x3f, 0x2c, 0xc2, 0xa9, 0x8c, 0x75, 0x81, 0x22, 0x63, 0xb4, 0x9e, 0xed, + 0x73, 0x39, 0xbd, 0xcf, 0xf1, 0x8a, 0xd8, 0x8d, 0xa5, 0x21, 0xe6, 0xbf, 0xef, 0x46, 0x6f, 0x44, + 0x24, 0xdd, 0x28, 0x2d, 0xea, 0xdd, 0x28, 0x6d, 0xec, 0xc4, 0x86, 0x9a, 0x36, 0xa4, 0x7a, 0x7a, + 0x5f, 0xe7, 0xf4, 0x4f, 0x8a, 0x30, 0x93, 0x15, 0xe3, 0x00, 0xfd, 0x7c, 0x2a, 0xef, 0xcb, 0xf3, + 0xfd, 0x46, 0x47, 0xe0, 0xc9, 0x60, 0x44, 0x50, 0xa8, 0x79, 0x33, 0x13, 0x4c, 0xcf, 0x61, 0x16, + 0x6d, 0x32, 0xbf, 0xab, 0x90, 0xe7, 0xeb, 0x91, 0x5b, 0xfc, 0x13, 0x7d, 0x77, 0x40, 0x24, 0xfa, + 0x89, 0x52, 0x7e, 0x57, 0xb2, 0xb8, 0xb7, 0xdf, 0x95, 0x6c, 0x79, 0xd6, 0x85, 0x51, 0xed, 0x6b, + 0xee, 0xeb, 0x8c, 0xef, 0xd0, 0x13, 0x45, 0xeb, 0xf7, 0x7d, 0x9d, 0xf5, 0xaf, 0x58, 0x90, 0x32, + 0x5d, 0x53, 0x2a, 0x29, 0x2b, 0x57, 0x25, 0x75, 0x1e, 0x06, 0xc2, 0xc0, 0x23, 0xe9, 0x54, 0x20, + 0x38, 0xf0, 0x08, 0x66, 0x10, 0x95, 0xaf, 0xbb, 0x98, 0x97, 0xaf, 0x9b, 0x5e, 0x8d, 0x3d, 0xb2, + 0x47, 0xa4, 0x36, 0x42, 0xf1, 0xe4, 0xab, 0xb4, 0x10, 0x73, 0x98, 0xfd, 0x8d, 0x01, 0x38, 0xdb, + 0xd5, 0xdf, 0x90, 0x5e, 0x59, 0x9a, 0x4e, 0x4c, 0x6e, 0x3b, 0xfb, 0xe9, 0x40, 0xc5, 0x97, 0x78, + 0x31, 0x96, 0x70, 0x66, 0x68, 0xcb, 0x63, 0x1d, 0xa6, 0x14, 0x78, 0x22, 0xc4, 0xa1, 0x80, 0x9a, + 0x8a, 0xa3, 0xe2, 0x71, 0x28, 0x8e, 0x2e, 0x02, 0x44, 0x91, 0xb7, 0xe2, 0x53, 0x09, 0xac, 0x21, + 0x2c, 0x78, 0x93, 0x98, 0x98, 0xb5, 0xab, 0x02, 0x82, 0x35, 0x2c, 0x54, 0x81, 0xa9, 0x56, 0x18, + 0xc4, 0x5c, 0x1f, 0x5a, 0xe1, 0xb6, 0x23, 0x83, 0xa6, 0xd3, 0x58, 0x35, 0x05, 0xc7, 0x1d, 0x35, + 0xd0, 0x0b, 0x30, 0x2a, 0x1c, 0xc9, 0xaa, 0x41, 0xe0, 0x09, 0x55, 0x8d, 0xb2, 0x44, 0xa8, 0x25, + 0x20, 0xac, 0xe3, 0x69, 0xd5, 0x98, 0x92, 0x75, 0x38, 0xb3, 0x1a, 0x57, 0xb4, 0x6a, 0x78, 0xa9, + 0x78, 0x27, 0x23, 0x7d, 0xc5, 0x3b, 0x49, 0x94, 0x57, 0xa5, 0xbe, 0xdf, 0x95, 0xa0, 0xa7, 0xba, + 0xe7, 0x37, 0x06, 0xe0, 0x94, 0x58, 0x38, 0xf7, 0x7b, 0xb9, 0xdc, 0xa7, 0xdc, 0xdf, 0x3f, 0x59, + 0x33, 0x27, 0xbd, 0x66, 0xbe, 0x59, 0x84, 0x21, 0x3e, 0x15, 0x27, 0x20, 0xc3, 0xaf, 0x0a, 0xa5, + 0x5f, 0x97, 0x88, 0x21, 0xbc, 0x2f, 0xf3, 0x15, 0x27, 0x76, 0xf8, 0xf9, 0xa5, 0xd8, 0x68, 0xa2, + 0x1e, 0x44, 0xf3, 0x06, 0xa3, 0x9d, 0x4d, 0x69, 0xb5, 0x80, 0xd3, 0xd0, 0xd8, 0xee, 0xdb, 0x00, + 0x11, 0xcb, 0x3f, 0x4d, 0x69, 0x88, 0xd8, 0x33, 0x4f, 0x76, 0x69, 0xbd, 0xa6, 0x90, 0x79, 0x1f, + 0x92, 0x25, 0xa8, 0x00, 0x58, 0xa3, 0x38, 0xfb, 0x22, 0x94, 0x14, 0x72, 0x2f, 0x15, 0xc0, 0x98, + 0x7e, 0xea, 0x7d, 0x0a, 0x26, 0x53, 0x6d, 0x1d, 0x49, 0x83, 0xf0, 0x5b, 0x16, 0x4c, 0xf2, 0x2e, + 0xaf, 0xf8, 0x7b, 0x62, 0xb3, 0xbf, 0x07, 0x33, 0x5e, 0xc6, 0xa6, 0x13, 0x33, 0xda, 0xff, 0x26, + 0x55, 0x1a, 0x83, 0x2c, 0x28, 0xce, 0x6c, 0x03, 0x5d, 0x80, 0x11, 0x9e, 0x39, 0xdf, 0xf1, 0x84, + 0x37, 0xc1, 0x18, 0xcf, 0x1d, 0xc0, 0xcb, 0xb0, 0x82, 0xda, 0xdf, 0xb3, 0x60, 0x9a, 0xf7, 0xfc, + 0x0a, 0xd9, 0x57, 0xb7, 0xe3, 0x0f, 0xb2, 0xef, 0x22, 0x35, 0x42, 0x21, 0x27, 0x35, 0x82, 0xfe, + 0x69, 0xc5, 0xae, 0x9f, 0xf6, 0xeb, 0x16, 0x88, 0x15, 0x78, 0x02, 0xf7, 0xc0, 0x9f, 0x36, 0xef, + 0x81, 0xb3, 0xf9, 0x8b, 0x3a, 0xe7, 0x02, 0xf8, 0x67, 0x16, 0x4c, 0x71, 0x84, 0xe4, 0x21, 0xf2, + 0x03, 0x9d, 0x87, 0x7e, 0xf2, 0x75, 0xa9, 0x04, 0xc9, 0xd9, 0x1f, 0x65, 0x4c, 0xd6, 0x40, 0xd7, + 0xc9, 0x6a, 0xc8, 0x0d, 0x74, 0x84, 0x3c, 0x74, 0x47, 0x8e, 0xe6, 0x69, 0xff, 0x37, 0x0b, 0x10, + 0x6f, 0xc6, 0x38, 0x97, 0xe9, 0x69, 0xc7, 0x4a, 0x35, 0x4d, 0x50, 0xc2, 0x6a, 0x14, 0x04, 0x6b, + 0x58, 0xc7, 0x32, 0x3c, 0xa9, 0xd7, 0xe4, 0x62, 0xef, 0xd7, 0xe4, 0x23, 0x8c, 0xe8, 0x5f, 0x1d, + 0x80, 0xb4, 0xe9, 0x32, 0xba, 0x09, 0x63, 0x75, 0xa7, 0xe5, 0x6c, 0xba, 0x9e, 0x1b, 0xbb, 0x24, + 0xea, 0x66, 0x86, 0xb2, 0xac, 0xe1, 0x89, 0x77, 0x42, 0xad, 0x04, 0x1b, 0x74, 0xd0, 0x3c, 0x40, + 0x2b, 0x74, 0xf7, 0x5c, 0x8f, 0x34, 0xd9, 0x55, 0x98, 0xf9, 0x2f, 0x71, 0xdb, 0x0a, 0x59, 0x8a, + 0x35, 0x8c, 0x0c, 0x7f, 0x97, 0xe2, 0xfd, 0xf3, 0x77, 0x19, 0x38, 0xa2, 0xbf, 0xcb, 0x60, 0x5f, + 0xfe, 0x2e, 0x18, 0x1e, 0x90, 0x67, 0x37, 0xfd, 0xbf, 0xea, 0x7a, 0x44, 0x08, 0x6c, 0xdc, 0xab, + 0x69, 0xf6, 0xee, 0xc1, 0xdc, 0x03, 0x38, 0x13, 0x03, 0xe7, 0xd4, 0x44, 0x9f, 0x86, 0xb2, 0xe3, + 0x79, 0xc1, 0x6d, 0x35, 0x6a, 0x2b, 0x51, 0xdd, 0xf1, 0x92, 0xe0, 0xd6, 0x23, 0x4b, 0x0f, 0xdf, + 0x3d, 0x98, 0x2b, 0x2f, 0xe6, 0xe0, 0xe0, 0xdc, 0xda, 0xf6, 0x0e, 0x9c, 0xaa, 0x91, 0x50, 0xa6, + 0xb6, 0x54, 0x5b, 0x6c, 0x03, 0x4a, 0x61, 0x8a, 0xa9, 0xf4, 0x15, 0xfa, 0x42, 0x0b, 0x3c, 0x28, + 0x99, 0x48, 0x42, 0xc8, 0xfe, 0x53, 0x0b, 0x86, 0x85, 0x39, 0xf4, 0x09, 0xc8, 0x32, 0x8b, 0x86, + 0x3e, 0x72, 0x2e, 0x9b, 0xf1, 0xb2, 0xce, 0xe4, 0x6a, 0x22, 0xd7, 0x52, 0x9a, 0xc8, 0x47, 0xba, + 0x11, 0xe9, 0xae, 0x83, 0xfc, 0xa5, 0x22, 0x4c, 0x98, 0xa6, 0xe0, 0x27, 0x30, 0x04, 0xd7, 0x60, + 0x38, 0x12, 0x7e, 0x07, 0x85, 0x7c, 0xfb, 0xd5, 0xf4, 0x24, 0x26, 0x56, 0x2e, 0xc2, 0xd3, 0x40, + 0x12, 0xc9, 0x74, 0x68, 0x28, 0xde, 0x47, 0x87, 0x86, 0x5e, 0xd6, 0xf8, 0x03, 0xc7, 0x61, 0x8d, + 0x6f, 0x7f, 0x8b, 0x31, 0x7f, 0xbd, 0xfc, 0x04, 0xe4, 0x82, 0x4b, 0xe6, 0x31, 0x61, 0x77, 0x59, + 0x59, 0xa2, 0x53, 0x39, 0xf2, 0xc1, 0x3f, 0xb2, 0x60, 0x54, 0x20, 0x9e, 0x40, 0xb7, 0x7f, 0xc6, + 0xec, 0xf6, 0x43, 0x5d, 0xba, 0x9d, 0xd3, 0xdf, 0xbf, 0x5d, 0x50, 0xfd, 0xad, 0x06, 0x61, 0xdc, + 0x57, 0xb2, 0x83, 0x11, 0x7a, 0x1b, 0x0c, 0xea, 0x81, 0x27, 0x0e, 0xf3, 0x87, 0x13, 0xc7, 0x56, + 0x5e, 0x7e, 0xa8, 0xfd, 0xc6, 0x0a, 0x9b, 0xf9, 0x5d, 0x06, 0x61, 0x2c, 0x0e, 0xd0, 0xc4, 0xef, + 0x32, 0x08, 0x63, 0xcc, 0x20, 0xa8, 0x01, 0x10, 0x3b, 0x61, 0x93, 0xc4, 0xb4, 0x4c, 0x78, 0x82, + 0xe7, 0xef, 0xc2, 0x76, 0xec, 0x7a, 0xf3, 0xae, 0x1f, 0x47, 0x71, 0x38, 0xbf, 0xe6, 0xc7, 0xd7, + 0x43, 0x7e, 0x37, 0xd0, 0x3c, 0x55, 0x15, 0x2d, 0xac, 0xd1, 0x95, 0xae, 0x52, 0xac, 0x8d, 0x41, + 0xf3, 0xa1, 0xf0, 0x9a, 0x28, 0xc7, 0x0a, 0xc3, 0x7e, 0x91, 0xf1, 0x64, 0x36, 0x40, 0x47, 0x73, + 0x22, 0xfd, 0xce, 0x88, 0x1a, 0x5a, 0xf6, 0x4a, 0x50, 0xd1, 0x5d, 0x55, 0xbb, 0xb3, 0x40, 0xda, + 0xb0, 0xee, 0x16, 0x90, 0xf8, 0xb3, 0xa2, 0x9f, 0xed, 0x78, 0x3f, 0x7e, 0xa6, 0x07, 0x2f, 0x3d, + 0xc2, 0x8b, 0x31, 0x8b, 0xbc, 0xc9, 0x22, 0x14, 0xae, 0x55, 0xd3, 0xe9, 0x28, 0x96, 0x25, 0x00, + 0x27, 0x38, 0x68, 0x41, 0xdc, 0x2c, 0xb9, 0x7e, 0xee, 0xa1, 0xd4, 0xcd, 0x52, 0x7e, 0xbe, 0x76, + 0xb5, 0x7c, 0x16, 0x46, 0x55, 0x8a, 0xaf, 0x2a, 0xcf, 0x94, 0x54, 0xe2, 0xb2, 0xd4, 0x4a, 0x52, + 0x8c, 0x75, 0x1c, 0xb4, 0x01, 0x93, 0x11, 0xcf, 0x3f, 0x26, 0xbd, 0x97, 0x84, 0xde, 0xe0, 0x49, + 0xf9, 0xee, 0x5c, 0x33, 0xc1, 0x87, 0xac, 0x88, 0x6f, 0x56, 0xe9, 0xef, 0x94, 0x26, 0x81, 0x5e, + 0x85, 0x09, 0x4f, 0xcf, 0xc3, 0x5c, 0x15, 0x6a, 0x05, 0x65, 0x96, 0x69, 0x64, 0x69, 0xae, 0xe2, + 0x14, 0x36, 0x15, 0x02, 0xf4, 0x12, 0x11, 0x0c, 0xcb, 0xf1, 0x9b, 0x24, 0x12, 0x09, 0x8a, 0x98, + 0x10, 0x70, 0x35, 0x07, 0x07, 0xe7, 0xd6, 0x46, 0x2f, 0xc1, 0x98, 0xfc, 0x7c, 0xcd, 0x9b, 0x2f, + 0x31, 0xfe, 0xd5, 0x60, 0xd8, 0xc0, 0x44, 0xb7, 0xe1, 0xb4, 0xfc, 0xbf, 0x11, 0x3a, 0x5b, 0x5b, + 0x6e, 0x5d, 0x38, 0x53, 0x8e, 0x32, 0x12, 0x8b, 0xd2, 0x13, 0x62, 0x25, 0x0b, 0xe9, 0xf0, 0x60, + 0xee, 0xbc, 0x18, 0xb5, 0x4c, 0x38, 0x9b, 0xc4, 0x6c, 0xfa, 0x68, 0x1d, 0x4e, 0x6d, 0x13, 0xc7, + 0x8b, 0xb7, 0x97, 0xb7, 0x49, 0x7d, 0x47, 0x6e, 0x22, 0xe6, 0x23, 0xa8, 0x99, 0xcc, 0x5e, 0xee, + 0x44, 0xc1, 0x59, 0xf5, 0xd0, 0x5b, 0x50, 0x6e, 0xb5, 0x37, 0x3d, 0x37, 0xda, 0xbe, 0x16, 0xc4, + 0xec, 0xa9, 0x5b, 0x65, 0xc8, 0x12, 0xce, 0x84, 0xca, 0x3f, 0xb2, 0x9a, 0x83, 0x87, 0x73, 0x29, + 0xa0, 0xf7, 0xe0, 0x74, 0x6a, 0x31, 0xf0, 0xa4, 0x6b, 0xc2, 0xe9, 0xf0, 0x89, 0xec, 0xed, 0x94, + 0x51, 0x81, 0xbb, 0xb8, 0x66, 0x82, 0x70, 0x76, 0x13, 0xef, 0xcf, 0x00, 0xe2, 0x5d, 0x5a, 0x59, + 0x93, 0x6e, 0xd0, 0x67, 0x60, 0x4c, 0x5f, 0x45, 0xe2, 0x80, 0x79, 0xac, 0x57, 0xce, 0x71, 0x21, + 0x1b, 0xa9, 0x15, 0xa5, 0xc3, 0xb0, 0x41, 0xd1, 0x26, 0x90, 0xfd, 0x7d, 0xe8, 0x2a, 0x8c, 0xd4, + 0x3d, 0x97, 0xf8, 0xf1, 0x5a, 0xb5, 0x9b, 0x13, 0xfc, 0xb2, 0xc0, 0x11, 0x03, 0x26, 0x62, 0xb1, + 0xf1, 0x32, 0xac, 0x28, 0xd8, 0xbf, 0x5b, 0x80, 0xb9, 0x1e, 0xe1, 0xf8, 0x52, 0x3a, 0x40, 0xab, + 0x2f, 0x1d, 0xe0, 0xa2, 0xcc, 0xf7, 0x75, 0x2d, 0x75, 0xff, 0x4c, 0xe5, 0xf2, 0x4a, 0x6e, 0xa1, + 0x69, 0xfc, 0xbe, 0xed, 0x26, 0x75, 0x35, 0xe2, 0x40, 0x4f, 0x8b, 0x5e, 0xe3, 0xf9, 0x60, 0xb0, + 0x7f, 0x89, 0x3e, 0x57, 0x15, 0x6c, 0x7f, 0xab, 0x00, 0xa7, 0xd5, 0x10, 0xfe, 0xf8, 0x0e, 0xdc, + 0x8d, 0xce, 0x81, 0x3b, 0x06, 0x45, 0xba, 0x7d, 0x1d, 0x86, 0x6a, 0xfb, 0x51, 0x3d, 0xf6, 0xfa, + 0x10, 0x80, 0x1e, 0x35, 0x36, 0x68, 0x72, 0x4c, 0xb3, 0x94, 0x9d, 0x62, 0xbf, 0xda, 0x7f, 0xc9, + 0x82, 0xc9, 0x8d, 0xe5, 0x6a, 0x2d, 0xa8, 0xef, 0x90, 0x78, 0x91, 0xab, 0x89, 0xb0, 0x90, 0x7f, + 0xac, 0x7b, 0x94, 0x6b, 0xb2, 0x24, 0xa6, 0xf3, 0x30, 0xb0, 0x1d, 0x44, 0x71, 0xfa, 0x95, 0xed, + 0x72, 0x10, 0xc5, 0x98, 0x41, 0xec, 0x3f, 0xb2, 0x60, 0x90, 0x65, 0xa9, 0xec, 0x95, 0xcd, 0xb4, + 0x9f, 0xef, 0x42, 0x2f, 0xc0, 0x10, 0xd9, 0xda, 0x22, 0xf5, 0x58, 0xcc, 0xaa, 0xf4, 0xae, 0x1b, + 0x5a, 0x61, 0xa5, 0xf4, 0xd0, 0x67, 0x8d, 0xf1, 0xbf, 0x58, 0x20, 0xa3, 0x5b, 0x50, 0x8a, 0xdd, + 0x5d, 0xb2, 0xd8, 0x68, 0x88, 0x77, 0x8a, 0x7b, 0x70, 0x66, 0xdc, 0x90, 0x04, 0x70, 0x42, 0xcb, + 0xfe, 0x52, 0x01, 0x20, 0xf1, 0xc0, 0xed, 0xf5, 0x89, 0x4b, 0x1d, 0x09, 0x5b, 0x1f, 0xcb, 0x48, + 0xd8, 0x8a, 0x12, 0x82, 0x19, 0xe9, 0x5a, 0xd5, 0x30, 0x15, 0xfb, 0x1a, 0xa6, 0x81, 0xa3, 0x0c, + 0xd3, 0x32, 0x4c, 0x27, 0x1e, 0xc4, 0x66, 0x38, 0x05, 0x16, 0x8a, 0x7b, 0x23, 0x0d, 0xc4, 0x9d, + 0xf8, 0xf6, 0x17, 0x2c, 0x10, 0xee, 0x06, 0x7d, 0x2c, 0xe6, 0x37, 0x65, 0x6e, 0x45, 0x23, 0x3e, + 0xe8, 0xf9, 0x7c, 0xff, 0x0b, 0x11, 0x15, 0x54, 0x1d, 0x1e, 0x46, 0x2c, 0x50, 0x83, 0x96, 0xfd, + 0xd7, 0x0b, 0x30, 0xca, 0xc1, 0x2c, 0xf6, 0x64, 0x1f, 0xbd, 0x39, 0x52, 0x20, 0x77, 0x96, 0x76, + 0x90, 0x12, 0x56, 0xf1, 0xbe, 0xf5, 0xb4, 0x83, 0x12, 0x80, 0x13, 0x1c, 0xf4, 0x04, 0x0c, 0x47, + 0xed, 0x4d, 0x86, 0x9e, 0x32, 0x6f, 0xaf, 0xf1, 0x62, 0x2c, 0xe1, 0xe8, 0xd3, 0x30, 0xc5, 0xeb, + 0x85, 0x41, 0xcb, 0x69, 0x72, 0xdd, 0xce, 0xa0, 0xf2, 0x37, 0x9b, 0x5a, 0x4f, 0xc1, 0x0e, 0x0f, + 0xe6, 0x66, 0xd2, 0x65, 0x4c, 0x2b, 0xd8, 0x41, 0x85, 0xae, 0xd8, 0xa9, 0xb4, 0x2b, 0x0b, 0xba, + 0x0c, 0x43, 0x9c, 0x19, 0x09, 0xe6, 0xd0, 0xe5, 0xad, 0x47, 0x73, 0x80, 0x61, 0x31, 0xae, 0x05, + 0x3f, 0x13, 0xf5, 0xd1, 0x5b, 0x30, 0xda, 0x08, 0x6e, 0xfb, 0xb7, 0x9d, 0xb0, 0xb1, 0x58, 0x5d, + 0x13, 0xf3, 0x99, 0x29, 0xd3, 0x54, 0x12, 0x34, 0xdd, 0xa9, 0x86, 0xe9, 0x35, 0x13, 0x10, 0xd6, + 0xc9, 0xa1, 0x0d, 0x16, 0x2e, 0x89, 0xe7, 0x05, 0xef, 0x66, 0x0f, 0xa6, 0x52, 0x89, 0x6b, 0x94, + 0xc7, 0x45, 0x4c, 0x25, 0x91, 0x55, 0x3c, 0x21, 0x64, 0x7f, 0xee, 0x14, 0x18, 0xeb, 0xc8, 0x08, + 0xe4, 0x6e, 0x1d, 0x53, 0x20, 0x77, 0x0c, 0x23, 0x64, 0xb7, 0x15, 0xef, 0x57, 0xdc, 0xb0, 0x5b, + 0x06, 0x8f, 0x15, 0x81, 0xd3, 0x49, 0x53, 0x42, 0xb0, 0xa2, 0x93, 0x1d, 0x6d, 0xbf, 0xf8, 0x01, + 0x46, 0xdb, 0x1f, 0x38, 0xc1, 0x68, 0xfb, 0xd7, 0x60, 0xb8, 0xe9, 0xc6, 0x98, 0xb4, 0x02, 0x71, + 0x10, 0x67, 0xae, 0x84, 0x4b, 0x1c, 0xa5, 0x33, 0xfe, 0xb3, 0x00, 0x60, 0x49, 0x04, 0xbd, 0xa6, + 0xf6, 0xc0, 0x50, 0xbe, 0x1c, 0xdb, 0xf9, 0x2c, 0x90, 0xb9, 0x0b, 0x44, 0x74, 0xfd, 0xe1, 0x7b, + 0x8d, 0xae, 0xaf, 0x62, 0xe2, 0x8f, 0xbc, 0xbf, 0x98, 0xf8, 0x46, 0xf6, 0x80, 0xd2, 0xf1, 0x65, + 0x0f, 0xf8, 0x82, 0x05, 0xa7, 0x5b, 0x59, 0x89, 0x34, 0x44, 0x74, 0xfb, 0x17, 0xfa, 0xce, 0x14, + 0x62, 0x34, 0xc8, 0x2e, 0x34, 0x99, 0x68, 0x38, 0xbb, 0x39, 0x3a, 0xd0, 0xe1, 0x66, 0x43, 0x84, + 0xc4, 0x7f, 0x34, 0x27, 0x0d, 0x41, 0x97, 0xe4, 0x03, 0xf7, 0x27, 0x0c, 0x7e, 0x92, 0x8a, 0x60, + 0xfc, 0x7d, 0xa7, 0x22, 0x78, 0x4d, 0xa5, 0x22, 0xe8, 0x12, 0x94, 0x86, 0x27, 0x1a, 0xe8, 0x99, + 0x80, 0x40, 0x4b, 0x22, 0x30, 0x79, 0x1c, 0x49, 0x04, 0xde, 0x36, 0x99, 0x3d, 0x8f, 0x68, 0xff, + 0x54, 0x0f, 0x66, 0x6f, 0xd0, 0xed, 0xce, 0xee, 0x79, 0xc2, 0x84, 0xe9, 0x7b, 0x4a, 0x98, 0x70, + 0x53, 0x4f, 0x45, 0x80, 0x7a, 0xc4, 0xda, 0xa7, 0x48, 0x7d, 0x26, 0x20, 0xb8, 0xa9, 0x1f, 0x41, + 0xa7, 0xf2, 0xe9, 0xaa, 0x93, 0xa6, 0x93, 0x6e, 0xd6, 0x21, 0xd4, 0x99, 0xd8, 0x60, 0xe6, 0x64, + 0x12, 0x1b, 0x9c, 0x3e, 0xf6, 0xc4, 0x06, 0x0f, 0x9c, 0x40, 0x62, 0x83, 0x07, 0x3f, 0xd0, 0xc4, + 0x06, 0xe5, 0xfb, 0x90, 0xd8, 0xe0, 0x5a, 0x92, 0xd8, 0xe0, 0x4c, 0xfe, 0x94, 0x64, 0xd8, 0x8b, + 0xe5, 0xa4, 0x33, 0xb8, 0x09, 0xa5, 0x96, 0xf4, 0x76, 0x2e, 0xcf, 0xe6, 0x4f, 0x49, 0xa6, 0x4b, + 0x34, 0x9f, 0x12, 0x05, 0xc2, 0x09, 0x29, 0x4a, 0x37, 0x49, 0x6f, 0xf0, 0x50, 0x17, 0x95, 0x55, + 0x96, 0x32, 0xa0, 0x4b, 0x52, 0x83, 0xbf, 0x5c, 0x80, 0x73, 0xdd, 0xd7, 0x75, 0xa2, 0x49, 0xa8, + 0x26, 0x9a, 0xef, 0x94, 0x26, 0x81, 0x09, 0x5d, 0x1a, 0x56, 0xdf, 0x21, 0x21, 0x2e, 0xc1, 0xb4, + 0x32, 0x14, 0xf3, 0xdc, 0xfa, 0xbe, 0x96, 0x0d, 0x4d, 0x39, 0xad, 0xd4, 0xd2, 0x08, 0xb8, 0xb3, + 0x0e, 0x5a, 0x84, 0x49, 0xa3, 0x70, 0xad, 0x22, 0x84, 0x7d, 0xa5, 0xba, 0xa8, 0x99, 0x60, 0x9c, + 0xc6, 0xb7, 0xbf, 0x66, 0xc1, 0x83, 0x39, 0x31, 0x8e, 0xfb, 0x8e, 0x78, 0xb0, 0x05, 0x93, 0x2d, + 0xb3, 0x6a, 0x8f, 0xc0, 0x28, 0x46, 0x24, 0x65, 0xd5, 0xd7, 0x14, 0x00, 0xa7, 0x89, 0x2e, 0x5d, + 0xf8, 0xf6, 0xf7, 0xcf, 0x7d, 0xe4, 0x0f, 0xbe, 0x7f, 0xee, 0x23, 0xdf, 0xfb, 0xfe, 0xb9, 0x8f, + 0xfc, 0xf9, 0xbb, 0xe7, 0xac, 0x6f, 0xdf, 0x3d, 0x67, 0xfd, 0xc1, 0xdd, 0x73, 0xd6, 0xf7, 0xee, + 0x9e, 0xb3, 0xfe, 0xf8, 0xee, 0x39, 0xeb, 0x4b, 0x3f, 0x38, 0xf7, 0x91, 0x37, 0x0b, 0x7b, 0xcf, + 0xfe, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xea, 0xa0, 0xb7, 0x43, 0x3c, 0xd5, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/generated.proto index 7bd3bc2c3..e9c513a8c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/generated.proto @@ -565,7 +565,7 @@ message Container { // Security options the pod should run with. // More info: https://kubernetes.io/docs/concepts/policy/security-context/ - // More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional optional SecurityContext securityContext = 15; @@ -765,6 +765,10 @@ message DeleteOptions { // Either this field or OrphanDependents may be set, but not both. // The default policy is decided by the existing finalizer set in the // metadata.finalizers and the resource-specific default policy. + // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - + // allow the garbage collector to delete the dependents in the background; + // 'Foreground' - a cascading policy that deletes all dependents in the + // foreground. // +optional optional string propagationPolicy = 4; } @@ -1442,7 +1446,7 @@ message LimitRangeList { optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; // Items is a list of LimitRange objects. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md + // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ repeated LimitRange items = 2; } @@ -1593,7 +1597,7 @@ message NamespaceList { // NamespaceSpec describes the attributes on a Namespace. message NamespaceSpec { // Finalizers is an opaque list of values that must be empty to permanently remove object from storage. - // More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers + // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ // +optional repeated string finalizers = 1; } @@ -1601,7 +1605,7 @@ message NamespaceSpec { // NamespaceStatus is information about the current status of a Namespace. message NamespaceStatus { // Phase is the current lifecycle phase of the namespace. - // More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases + // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ // +optional optional string phase = 1; } @@ -2287,7 +2291,7 @@ message PersistentVolumeSource { // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md // +optional - optional RBDVolumeSource rbd = 6; + optional RBDPersistentVolumeSource rbd = 6; // ISCSI represents an ISCSI Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. Provisioned by an admin. @@ -2342,7 +2346,7 @@ message PersistentVolumeSource { // ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. // +optional - optional ScaleIOVolumeSource scaleIO = 19; + optional ScaleIOPersistentVolumeSource scaleIO = 19; // Local represents directly-attached storage with node affinity // +optional @@ -2474,7 +2478,7 @@ message PodAffinity { // relative to the given namespace(s)) that this pod should be // co-located (affinity) or not co-located (anti-affinity) with, // where co-located is defined as running on a node whose value of -// the label with key tches that of any node on which +// the label with key matches that of any node on which // a pod of the set of pods is running message PodAffinityTerm { // A label query over a set of resources, in this case pods. @@ -2489,10 +2493,7 @@ message PodAffinityTerm { // the labelSelector in the specified namespaces, where co-located is defined as running on a node // whose value of the label with key topologyKey matches that of any node on which any of the // selected pods is running. - // For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" - // ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); - // for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed. - // +optional + // Empty topologyKey is not allowed. optional string topologyKey = 3; } @@ -3157,6 +3158,57 @@ message QuobyteVolumeSource { optional string group = 5; } +// Represents a Rados Block Device mount that lasts the lifetime of a pod. +// RBD volumes support ownership management and SELinux relabeling. +message RBDPersistentVolumeSource { + // A collection of Ceph monitors. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + repeated string monitors = 1; + + // The rados image name. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + optional string image = 2; + + // Filesystem type of the volume that you want to mount. + // Tip: Ensure that the filesystem type is supported by the host operating system. + // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd + // TODO: how do we prevent errors in the filesystem from compromising the machine + // +optional + optional string fsType = 3; + + // The rados pool name. + // Default is rbd. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional string pool = 4; + + // The rados user name. + // Default is admin. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional string user = 5; + + // Keyring is the path to key ring for RBDUser. + // Default is /etc/ceph/keyring. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional string keyring = 6; + + // SecretRef is name of the authentication secret for RBDUser. If provided + // overrides keyring. + // Default is nil. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional SecretReference secretRef = 7; + + // ReadOnly here will force the ReadOnly setting in VolumeMounts. + // Defaults to false. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + optional bool readOnly = 8; +} + // Represents a Rados Block Device mount that lasts the lifetime of a pod. // RBD volumes support ownership management and SELinux relabeling. message RBDVolumeSource { @@ -3377,14 +3429,14 @@ message ResourceQuotaList { optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; // Items is a list of ResourceQuota objects. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ repeated ResourceQuota items = 2; } // ResourceQuotaSpec defines the desired hard limits to enforce for Quota. message ResourceQuotaSpec { // Hard is the set of desired hard limits for each named resource. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional map hard = 1; @@ -3397,7 +3449,7 @@ message ResourceQuotaSpec { // ResourceQuotaStatus defines the enforced hard limits and observed use. message ResourceQuotaStatus { // Hard is the set of enforced hard limits for each named resource. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional map hard = 1; @@ -3440,6 +3492,50 @@ message SELinuxOptions { optional string level = 4; } +// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume +message ScaleIOPersistentVolumeSource { + // The host address of the ScaleIO API Gateway. + optional string gateway = 1; + + // The name of the storage system as configured in ScaleIO. + optional string system = 2; + + // SecretRef references to the secret for ScaleIO user and other + // sensitive information. If this is not provided, Login operation will fail. + optional SecretReference secretRef = 3; + + // Flag to enable/disable SSL communication with Gateway, default false + // +optional + optional bool sslEnabled = 4; + + // The name of the ScaleIO Protection Domain for the configured storage. + // +optional + optional string protectionDomain = 5; + + // The ScaleIO Storage Pool associated with the protection domain. + // +optional + optional string storagePool = 6; + + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. + // +optional + optional string storageMode = 7; + + // The name of a volume already created in the ScaleIO system + // that is associated with this volume source. + optional string volumeName = 8; + + // Filesystem type to mount. + // Must be a filesystem type supported by the host operating system. + // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // +optional + optional string fsType = 9; + + // Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + optional bool readOnly = 10; +} + // ScaleIOVolumeSource represents a persistent ScaleIO volume message ScaleIOVolumeSource { // The host address of the ScaleIO API Gateway. @@ -3456,15 +3552,15 @@ message ScaleIOVolumeSource { // +optional optional bool sslEnabled = 4; - // The name of the Protection Domain for the configured storage (defaults to "default"). + // The name of the ScaleIO Protection Domain for the configured storage. // +optional optional string protectionDomain = 5; - // The Storage Pool associated with the protection domain (defaults to "default"). + // The ScaleIO Storage Pool associated with the protection domain. // +optional optional string storagePool = 6; - // Indicates whether the storage for a volume should be thick or thin (defaults to "thin"). + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. // +optional optional string storageMode = 7; diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/register.go index 4916ee3c2..62bf076eb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/register.go @@ -43,7 +43,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Pod{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/types.go index b9cbf2d4b..c5ad91e67 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/types.go @@ -398,7 +398,7 @@ type PersistentVolumeSource struct { // RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md // +optional - RBD *RBDVolumeSource `json:"rbd,omitempty" protobuf:"bytes,6,opt,name=rbd"` + RBD *RBDPersistentVolumeSource `json:"rbd,omitempty" protobuf:"bytes,6,opt,name=rbd"` // ISCSI represents an ISCSI Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. Provisioned by an admin. // +optional @@ -440,7 +440,7 @@ type PersistentVolumeSource struct { PortworxVolume *PortworxVolumeSource `json:"portworxVolume,omitempty" protobuf:"bytes,18,opt,name=portworxVolume"` // ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. // +optional - ScaleIO *ScaleIOVolumeSource `json:"scaleIO,omitempty" protobuf:"bytes,19,opt,name=scaleIO"` + ScaleIO *ScaleIOPersistentVolumeSource `json:"scaleIO,omitempty" protobuf:"bytes,19,opt,name=scaleIO"` // Local represents directly-attached storage with node affinity // +optional Local *LocalVolumeSource `json:"local,omitempty" protobuf:"bytes,20,opt,name=local"` @@ -838,6 +838,50 @@ type RBDVolumeSource struct { ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,8,opt,name=readOnly"` } +// Represents a Rados Block Device mount that lasts the lifetime of a pod. +// RBD volumes support ownership management and SELinux relabeling. +type RBDPersistentVolumeSource struct { + // A collection of Ceph monitors. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + CephMonitors []string `json:"monitors" protobuf:"bytes,1,rep,name=monitors"` + // The rados image name. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + RBDImage string `json:"image" protobuf:"bytes,2,opt,name=image"` + // Filesystem type of the volume that you want to mount. + // Tip: Ensure that the filesystem type is supported by the host operating system. + // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd + // TODO: how do we prevent errors in the filesystem from compromising the machine + // +optional + FSType string `json:"fsType,omitempty" protobuf:"bytes,3,opt,name=fsType"` + // The rados pool name. + // Default is rbd. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + RBDPool string `json:"pool,omitempty" protobuf:"bytes,4,opt,name=pool"` + // The rados user name. + // Default is admin. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + RadosUser string `json:"user,omitempty" protobuf:"bytes,5,opt,name=user"` + // Keyring is the path to key ring for RBDUser. + // Default is /etc/ceph/keyring. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + Keyring string `json:"keyring,omitempty" protobuf:"bytes,6,opt,name=keyring"` + // SecretRef is name of the authentication secret for RBDUser. If provided + // overrides keyring. + // Default is nil. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + SecretRef *SecretReference `json:"secretRef,omitempty" protobuf:"bytes,7,opt,name=secretRef"` + // ReadOnly here will force the ReadOnly setting in VolumeMounts. + // Defaults to false. + // More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,8,opt,name=readOnly"` +} + // Represents a cinder volume resource in Openstack. // A Cinder volume must exist before mounting to a container. // The volume must also be in the same region as the kubelet. @@ -945,7 +989,7 @@ type StorageMedium string const ( StorageMediumDefault StorageMedium = "" // use whatever the default is for the node StorageMediumMemory StorageMedium = "Memory" // use memory (tmpfs) - StorageMediumHugepages StorageMedium = "HugePages" // use hugepages + StorageMediumHugePages StorageMedium = "HugePages" // use hugepages ) // Protocol defines network protocols supported for things like container ports. @@ -1352,13 +1396,48 @@ type ScaleIOVolumeSource struct { // Flag to enable/disable SSL communication with Gateway, default false // +optional SSLEnabled bool `json:"sslEnabled,omitempty" protobuf:"varint,4,opt,name=sslEnabled"` - // The name of the Protection Domain for the configured storage (defaults to "default"). + // The name of the ScaleIO Protection Domain for the configured storage. + // +optional + ProtectionDomain string `json:"protectionDomain,omitempty" protobuf:"bytes,5,opt,name=protectionDomain"` + // The ScaleIO Storage Pool associated with the protection domain. + // +optional + StoragePool string `json:"storagePool,omitempty" protobuf:"bytes,6,opt,name=storagePool"` + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. + // +optional + StorageMode string `json:"storageMode,omitempty" protobuf:"bytes,7,opt,name=storageMode"` + // The name of a volume already created in the ScaleIO system + // that is associated with this volume source. + VolumeName string `json:"volumeName,omitempty" protobuf:"bytes,8,opt,name=volumeName"` + // Filesystem type to mount. + // Must be a filesystem type supported by the host operating system. + // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // +optional + FSType string `json:"fsType,omitempty" protobuf:"bytes,9,opt,name=fsType"` + // Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,10,opt,name=readOnly"` +} + +// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume +type ScaleIOPersistentVolumeSource struct { + // The host address of the ScaleIO API Gateway. + Gateway string `json:"gateway" protobuf:"bytes,1,opt,name=gateway"` + // The name of the storage system as configured in ScaleIO. + System string `json:"system" protobuf:"bytes,2,opt,name=system"` + // SecretRef references to the secret for ScaleIO user and other + // sensitive information. If this is not provided, Login operation will fail. + SecretRef *SecretReference `json:"secretRef" protobuf:"bytes,3,opt,name=secretRef"` + // Flag to enable/disable SSL communication with Gateway, default false + // +optional + SSLEnabled bool `json:"sslEnabled,omitempty" protobuf:"varint,4,opt,name=sslEnabled"` + // The name of the ScaleIO Protection Domain for the configured storage. // +optional ProtectionDomain string `json:"protectionDomain,omitempty" protobuf:"bytes,5,opt,name=protectionDomain"` - // The Storage Pool associated with the protection domain (defaults to "default"). + // The ScaleIO Storage Pool associated with the protection domain. // +optional StoragePool string `json:"storagePool,omitempty" protobuf:"bytes,6,opt,name=storagePool"` - // Indicates whether the storage for a volume should be thick or thin (defaults to "thin"). + // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. // +optional StorageMode string `json:"storageMode,omitempty" protobuf:"bytes,7,opt,name=storageMode"` // The name of a volume already created in the ScaleIO system @@ -1996,7 +2075,7 @@ type Container struct { ImagePullPolicy PullPolicy `json:"imagePullPolicy,omitempty" protobuf:"bytes,14,opt,name=imagePullPolicy,casttype=PullPolicy"` // Security options the pod should run with. // More info: https://kubernetes.io/docs/concepts/policy/security-context/ - // More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional SecurityContext *SecurityContext `json:"securityContext,omitempty" protobuf:"bytes,15,opt,name=securityContext"` @@ -2394,7 +2473,7 @@ type WeightedPodAffinityTerm struct { // relative to the given namespace(s)) that this pod should be // co-located (affinity) or not co-located (anti-affinity) with, // where co-located is defined as running on a node whose value of -// the label with key tches that of any node on which +// the label with key matches that of any node on which // a pod of the set of pods is running type PodAffinityTerm struct { // A label query over a set of resources, in this case pods. @@ -2407,11 +2486,8 @@ type PodAffinityTerm struct { // the labelSelector in the specified namespaces, where co-located is defined as running on a node // whose value of the label with key topologyKey matches that of any node on which any of the // selected pods is running. - // For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" - // ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); - // for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed. - // +optional - TopologyKey string `json:"topologyKey,omitempty" protobuf:"bytes,3,opt,name=topologyKey"` + // Empty topologyKey is not allowed. + TopologyKey string `json:"topologyKey" protobuf:"bytes,3,opt,name=topologyKey"` } // Node affinity is a group of node affinity scheduling rules. @@ -3825,7 +3901,7 @@ const ( // NamespaceSpec describes the attributes on a Namespace. type NamespaceSpec struct { // Finalizers is an opaque list of values that must be empty to permanently remove object from storage. - // More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers + // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ // +optional Finalizers []FinalizerName `json:"finalizers,omitempty" protobuf:"bytes,1,rep,name=finalizers,casttype=FinalizerName"` } @@ -3833,7 +3909,7 @@ type NamespaceSpec struct { // NamespaceStatus is information about the current status of a Namespace. type NamespaceStatus struct { // Phase is the current lifecycle phase of the namespace. - // More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases + // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ // +optional Phase NamespacePhase `json:"phase,omitempty" protobuf:"bytes,1,opt,name=phase,casttype=NamespacePhase"` } @@ -3955,6 +4031,10 @@ type DeleteOptions struct { // Either this field or OrphanDependents may be set, but not both. // The default policy is decided by the existing finalizer set in the // metadata.finalizers and the resource-specific default policy. + // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - + // allow the garbage collector to delete the dependents in the background; + // 'Foreground' - a cascading policy that deletes all dependents in the + // foreground. // +optional PropagationPolicy *DeletionPropagation `protobuf:"bytes,4,opt,name=propagationPolicy,casttype=DeletionPropagation"` } @@ -4376,7 +4456,7 @@ type LimitRangeList struct { metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of LimitRange objects. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md + // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ Items []LimitRange `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -4433,7 +4513,7 @@ const ( // ResourceQuotaSpec defines the desired hard limits to enforce for Quota. type ResourceQuotaSpec struct { // Hard is the set of desired hard limits for each named resource. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional Hard ResourceList `json:"hard,omitempty" protobuf:"bytes,1,rep,name=hard,casttype=ResourceList,castkey=ResourceName"` // A collection of filters that must match each object tracked by a quota. @@ -4445,7 +4525,7 @@ type ResourceQuotaSpec struct { // ResourceQuotaStatus defines the enforced hard limits and observed use. type ResourceQuotaStatus struct { // Hard is the set of enforced hard limits for each named resource. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional Hard ResourceList `json:"hard,omitempty" protobuf:"bytes,1,rep,name=hard,casttype=ResourceList,castkey=ResourceName"` // Used is the current observed total usage of the resource in the namespace. @@ -4486,7 +4566,7 @@ type ResourceQuotaList struct { metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is a list of ResourceQuota objects. - // More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md + // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ Items []ResourceQuota `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -4844,7 +4924,7 @@ const ( // corresponding to every RequiredDuringScheduling affinity rule. // When the --hard-pod-affinity-weight scheduler flag is not specified, // DefaultHardPodAffinityWeight defines the weight of the implicit PreferredDuringScheduling affinity rule. - DefaultHardPodAffinitySymmetricWeight int = 1 + DefaultHardPodAffinitySymmetricWeight int32 = 1 ) // Sysctl defines a kernel parameter to be set diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go index d27c94ced..ef037c922 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -284,7 +284,7 @@ var map_Container = map[string]string{ "terminationMessagePath": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", "terminationMessagePolicy": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", "imagePullPolicy": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "securityContext": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md", + "securityContext": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", "stdin": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", "stdinOnce": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", "tty": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", @@ -392,7 +392,7 @@ var map_DeleteOptions = map[string]string{ "gracePeriodSeconds": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", "preconditions": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.", "orphanDependents": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "PropagationPolicy": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "PropagationPolicy": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", } func (DeleteOptions) SwaggerDoc() map[string]string { @@ -765,7 +765,7 @@ func (LimitRangeItem) SwaggerDoc() map[string]string { var map_LimitRangeList = map[string]string{ "": "LimitRangeList is a list of LimitRange items.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "items": "Items is a list of LimitRange objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md", + "items": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", } func (LimitRangeList) SwaggerDoc() map[string]string { @@ -866,7 +866,7 @@ func (NamespaceList) SwaggerDoc() map[string]string { var map_NamespaceSpec = map[string]string{ "": "NamespaceSpec describes the attributes on a Namespace.", - "finalizers": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers", + "finalizers": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", } func (NamespaceSpec) SwaggerDoc() map[string]string { @@ -875,7 +875,7 @@ func (NamespaceSpec) SwaggerDoc() map[string]string { var map_NamespaceStatus = map[string]string{ "": "NamespaceStatus is information about the current status of a Namespace.", - "phase": "Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases", + "phase": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", } func (NamespaceStatus) SwaggerDoc() map[string]string { @@ -1275,10 +1275,10 @@ func (PodAffinity) SwaggerDoc() map[string]string { } var map_PodAffinityTerm = map[string]string{ - "": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key tches that of any node on which a pod of the set of pods is running", + "": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running", "labelSelector": "A label query over a set of resources, in this case pods.", "namespaces": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - "topologyKey": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \"all topologies\" (\"all topologies\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.", + "topologyKey": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", } func (PodAffinityTerm) SwaggerDoc() map[string]string { @@ -1571,6 +1571,22 @@ func (QuobyteVolumeSource) SwaggerDoc() map[string]string { return map_QuobyteVolumeSource } +var map_RBDPersistentVolumeSource = map[string]string{ + "": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", + "monitors": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "image": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", + "pool": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "user": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "keyring": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "secretRef": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", + "readOnly": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", +} + +func (RBDPersistentVolumeSource) SwaggerDoc() map[string]string { + return map_RBDPersistentVolumeSource +} + var map_RBDVolumeSource = map[string]string{ "": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", "monitors": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", @@ -1683,7 +1699,7 @@ func (ResourceQuota) SwaggerDoc() map[string]string { var map_ResourceQuotaList = map[string]string{ "": "ResourceQuotaList is a list of ResourceQuota items.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "items": "Items is a list of ResourceQuota objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "items": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", } func (ResourceQuotaList) SwaggerDoc() map[string]string { @@ -1692,7 +1708,7 @@ func (ResourceQuotaList) SwaggerDoc() map[string]string { var map_ResourceQuotaSpec = map[string]string{ "": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "hard": "Hard is the set of desired hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "hard": "Hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "scopes": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", } @@ -1702,7 +1718,7 @@ func (ResourceQuotaSpec) SwaggerDoc() map[string]string { var map_ResourceQuotaStatus = map[string]string{ "": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "hard": "Hard is the set of enforced hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md", + "hard": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "used": "Used is the current observed total usage of the resource in the namespace.", } @@ -1732,15 +1748,33 @@ func (SELinuxOptions) SwaggerDoc() map[string]string { return map_SELinuxOptions } +var map_ScaleIOPersistentVolumeSource = map[string]string{ + "": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", + "gateway": "The host address of the ScaleIO API Gateway.", + "system": "The name of the storage system as configured in ScaleIO.", + "secretRef": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", + "sslEnabled": "Flag to enable/disable SSL communication with Gateway, default false", + "protectionDomain": "The name of the ScaleIO Protection Domain for the configured storage.", + "storagePool": "The ScaleIO Storage Pool associated with the protection domain.", + "storageMode": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", + "volumeName": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", + "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "readOnly": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", +} + +func (ScaleIOPersistentVolumeSource) SwaggerDoc() map[string]string { + return map_ScaleIOPersistentVolumeSource +} + var map_ScaleIOVolumeSource = map[string]string{ "": "ScaleIOVolumeSource represents a persistent ScaleIO volume", "gateway": "The host address of the ScaleIO API Gateway.", "system": "The name of the storage system as configured in ScaleIO.", "secretRef": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", "sslEnabled": "Flag to enable/disable SSL communication with Gateway, default false", - "protectionDomain": "The name of the Protection Domain for the configured storage (defaults to \"default\").", - "storagePool": "The Storage Pool associated with the protection domain (defaults to \"default\").", - "storageMode": "Indicates whether the storage for a volume should be thick or thin (defaults to \"thin\").", + "protectionDomain": "The name of the ScaleIO Protection Domain for the configured storage.", + "storagePool": "The ScaleIO Storage Pool associated with the protection domain.", + "storageMode": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", "volumeName": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "readOnly": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go index 18d046eb6..9c8e002f9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -23,737 +23,10 @@ package v1 import ( resource "k8s.io/apimachinery/pkg/api/resource" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" types "k8s.io/apimachinery/pkg/types" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AWSElasticBlockStoreVolumeSource).DeepCopyInto(out.(*AWSElasticBlockStoreVolumeSource)) - return nil - }, InType: reflect.TypeOf(&AWSElasticBlockStoreVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Affinity).DeepCopyInto(out.(*Affinity)) - return nil - }, InType: reflect.TypeOf(&Affinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AttachedVolume).DeepCopyInto(out.(*AttachedVolume)) - return nil - }, InType: reflect.TypeOf(&AttachedVolume{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AvoidPods).DeepCopyInto(out.(*AvoidPods)) - return nil - }, InType: reflect.TypeOf(&AvoidPods{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AzureDiskVolumeSource).DeepCopyInto(out.(*AzureDiskVolumeSource)) - return nil - }, InType: reflect.TypeOf(&AzureDiskVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AzureFilePersistentVolumeSource).DeepCopyInto(out.(*AzureFilePersistentVolumeSource)) - return nil - }, InType: reflect.TypeOf(&AzureFilePersistentVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AzureFileVolumeSource).DeepCopyInto(out.(*AzureFileVolumeSource)) - return nil - }, InType: reflect.TypeOf(&AzureFileVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Binding).DeepCopyInto(out.(*Binding)) - return nil - }, InType: reflect.TypeOf(&Binding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Capabilities).DeepCopyInto(out.(*Capabilities)) - return nil - }, InType: reflect.TypeOf(&Capabilities{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CephFSPersistentVolumeSource).DeepCopyInto(out.(*CephFSPersistentVolumeSource)) - return nil - }, InType: reflect.TypeOf(&CephFSPersistentVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CephFSVolumeSource).DeepCopyInto(out.(*CephFSVolumeSource)) - return nil - }, InType: reflect.TypeOf(&CephFSVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CinderVolumeSource).DeepCopyInto(out.(*CinderVolumeSource)) - return nil - }, InType: reflect.TypeOf(&CinderVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClientIPConfig).DeepCopyInto(out.(*ClientIPConfig)) - return nil - }, InType: reflect.TypeOf(&ClientIPConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ComponentCondition).DeepCopyInto(out.(*ComponentCondition)) - return nil - }, InType: reflect.TypeOf(&ComponentCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ComponentStatus).DeepCopyInto(out.(*ComponentStatus)) - return nil - }, InType: reflect.TypeOf(&ComponentStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ComponentStatusList).DeepCopyInto(out.(*ComponentStatusList)) - return nil - }, InType: reflect.TypeOf(&ComponentStatusList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMap).DeepCopyInto(out.(*ConfigMap)) - return nil - }, InType: reflect.TypeOf(&ConfigMap{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapEnvSource).DeepCopyInto(out.(*ConfigMapEnvSource)) - return nil - }, InType: reflect.TypeOf(&ConfigMapEnvSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapKeySelector).DeepCopyInto(out.(*ConfigMapKeySelector)) - return nil - }, InType: reflect.TypeOf(&ConfigMapKeySelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapList).DeepCopyInto(out.(*ConfigMapList)) - return nil - }, InType: reflect.TypeOf(&ConfigMapList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapProjection).DeepCopyInto(out.(*ConfigMapProjection)) - return nil - }, InType: reflect.TypeOf(&ConfigMapProjection{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConfigMapVolumeSource).DeepCopyInto(out.(*ConfigMapVolumeSource)) - return nil - }, InType: reflect.TypeOf(&ConfigMapVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Container).DeepCopyInto(out.(*Container)) - return nil - }, InType: reflect.TypeOf(&Container{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerImage).DeepCopyInto(out.(*ContainerImage)) - return nil - }, InType: reflect.TypeOf(&ContainerImage{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerPort).DeepCopyInto(out.(*ContainerPort)) - return nil - }, InType: reflect.TypeOf(&ContainerPort{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerState).DeepCopyInto(out.(*ContainerState)) - return nil - }, InType: reflect.TypeOf(&ContainerState{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerStateRunning).DeepCopyInto(out.(*ContainerStateRunning)) - return nil - }, InType: reflect.TypeOf(&ContainerStateRunning{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerStateTerminated).DeepCopyInto(out.(*ContainerStateTerminated)) - return nil - }, InType: reflect.TypeOf(&ContainerStateTerminated{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerStateWaiting).DeepCopyInto(out.(*ContainerStateWaiting)) - return nil - }, InType: reflect.TypeOf(&ContainerStateWaiting{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerStatus).DeepCopyInto(out.(*ContainerStatus)) - return nil - }, InType: reflect.TypeOf(&ContainerStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonEndpoint).DeepCopyInto(out.(*DaemonEndpoint)) - return nil - }, InType: reflect.TypeOf(&DaemonEndpoint{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeleteOptions).DeepCopyInto(out.(*DeleteOptions)) - return nil - }, InType: reflect.TypeOf(&DeleteOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DownwardAPIProjection).DeepCopyInto(out.(*DownwardAPIProjection)) - return nil - }, InType: reflect.TypeOf(&DownwardAPIProjection{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DownwardAPIVolumeFile).DeepCopyInto(out.(*DownwardAPIVolumeFile)) - return nil - }, InType: reflect.TypeOf(&DownwardAPIVolumeFile{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DownwardAPIVolumeSource).DeepCopyInto(out.(*DownwardAPIVolumeSource)) - return nil - }, InType: reflect.TypeOf(&DownwardAPIVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EmptyDirVolumeSource).DeepCopyInto(out.(*EmptyDirVolumeSource)) - return nil - }, InType: reflect.TypeOf(&EmptyDirVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EndpointAddress).DeepCopyInto(out.(*EndpointAddress)) - return nil - }, InType: reflect.TypeOf(&EndpointAddress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EndpointPort).DeepCopyInto(out.(*EndpointPort)) - return nil - }, InType: reflect.TypeOf(&EndpointPort{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EndpointSubset).DeepCopyInto(out.(*EndpointSubset)) - return nil - }, InType: reflect.TypeOf(&EndpointSubset{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Endpoints).DeepCopyInto(out.(*Endpoints)) - return nil - }, InType: reflect.TypeOf(&Endpoints{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EndpointsList).DeepCopyInto(out.(*EndpointsList)) - return nil - }, InType: reflect.TypeOf(&EndpointsList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EnvFromSource).DeepCopyInto(out.(*EnvFromSource)) - return nil - }, InType: reflect.TypeOf(&EnvFromSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EnvVar).DeepCopyInto(out.(*EnvVar)) - return nil - }, InType: reflect.TypeOf(&EnvVar{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EnvVarSource).DeepCopyInto(out.(*EnvVarSource)) - return nil - }, InType: reflect.TypeOf(&EnvVarSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Event).DeepCopyInto(out.(*Event)) - return nil - }, InType: reflect.TypeOf(&Event{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EventList).DeepCopyInto(out.(*EventList)) - return nil - }, InType: reflect.TypeOf(&EventList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EventSource).DeepCopyInto(out.(*EventSource)) - return nil - }, InType: reflect.TypeOf(&EventSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExecAction).DeepCopyInto(out.(*ExecAction)) - return nil - }, InType: reflect.TypeOf(&ExecAction{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FCVolumeSource).DeepCopyInto(out.(*FCVolumeSource)) - return nil - }, InType: reflect.TypeOf(&FCVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlexVolumeSource).DeepCopyInto(out.(*FlexVolumeSource)) - return nil - }, InType: reflect.TypeOf(&FlexVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlockerVolumeSource).DeepCopyInto(out.(*FlockerVolumeSource)) - return nil - }, InType: reflect.TypeOf(&FlockerVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GCEPersistentDiskVolumeSource).DeepCopyInto(out.(*GCEPersistentDiskVolumeSource)) - return nil - }, InType: reflect.TypeOf(&GCEPersistentDiskVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GitRepoVolumeSource).DeepCopyInto(out.(*GitRepoVolumeSource)) - return nil - }, InType: reflect.TypeOf(&GitRepoVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GlusterfsVolumeSource).DeepCopyInto(out.(*GlusterfsVolumeSource)) - return nil - }, InType: reflect.TypeOf(&GlusterfsVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HTTPGetAction).DeepCopyInto(out.(*HTTPGetAction)) - return nil - }, InType: reflect.TypeOf(&HTTPGetAction{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HTTPHeader).DeepCopyInto(out.(*HTTPHeader)) - return nil - }, InType: reflect.TypeOf(&HTTPHeader{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Handler).DeepCopyInto(out.(*Handler)) - return nil - }, InType: reflect.TypeOf(&Handler{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HostAlias).DeepCopyInto(out.(*HostAlias)) - return nil - }, InType: reflect.TypeOf(&HostAlias{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HostPathVolumeSource).DeepCopyInto(out.(*HostPathVolumeSource)) - return nil - }, InType: reflect.TypeOf(&HostPathVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ISCSIVolumeSource).DeepCopyInto(out.(*ISCSIVolumeSource)) - return nil - }, InType: reflect.TypeOf(&ISCSIVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*KeyToPath).DeepCopyInto(out.(*KeyToPath)) - return nil - }, InType: reflect.TypeOf(&KeyToPath{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Lifecycle).DeepCopyInto(out.(*Lifecycle)) - return nil - }, InType: reflect.TypeOf(&Lifecycle{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitRange).DeepCopyInto(out.(*LimitRange)) - return nil - }, InType: reflect.TypeOf(&LimitRange{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitRangeItem).DeepCopyInto(out.(*LimitRangeItem)) - return nil - }, InType: reflect.TypeOf(&LimitRangeItem{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitRangeList).DeepCopyInto(out.(*LimitRangeList)) - return nil - }, InType: reflect.TypeOf(&LimitRangeList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LimitRangeSpec).DeepCopyInto(out.(*LimitRangeSpec)) - return nil - }, InType: reflect.TypeOf(&LimitRangeSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*List).DeepCopyInto(out.(*List)) - return nil - }, InType: reflect.TypeOf(&List{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ListOptions).DeepCopyInto(out.(*ListOptions)) - return nil - }, InType: reflect.TypeOf(&ListOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LoadBalancerIngress).DeepCopyInto(out.(*LoadBalancerIngress)) - return nil - }, InType: reflect.TypeOf(&LoadBalancerIngress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LoadBalancerStatus).DeepCopyInto(out.(*LoadBalancerStatus)) - return nil - }, InType: reflect.TypeOf(&LoadBalancerStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LocalObjectReference).DeepCopyInto(out.(*LocalObjectReference)) - return nil - }, InType: reflect.TypeOf(&LocalObjectReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LocalVolumeSource).DeepCopyInto(out.(*LocalVolumeSource)) - return nil - }, InType: reflect.TypeOf(&LocalVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NFSVolumeSource).DeepCopyInto(out.(*NFSVolumeSource)) - return nil - }, InType: reflect.TypeOf(&NFSVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Namespace).DeepCopyInto(out.(*Namespace)) - return nil - }, InType: reflect.TypeOf(&Namespace{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamespaceList).DeepCopyInto(out.(*NamespaceList)) - return nil - }, InType: reflect.TypeOf(&NamespaceList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamespaceSpec).DeepCopyInto(out.(*NamespaceSpec)) - return nil - }, InType: reflect.TypeOf(&NamespaceSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamespaceStatus).DeepCopyInto(out.(*NamespaceStatus)) - return nil - }, InType: reflect.TypeOf(&NamespaceStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Node).DeepCopyInto(out.(*Node)) - return nil - }, InType: reflect.TypeOf(&Node{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeAddress).DeepCopyInto(out.(*NodeAddress)) - return nil - }, InType: reflect.TypeOf(&NodeAddress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeAffinity).DeepCopyInto(out.(*NodeAffinity)) - return nil - }, InType: reflect.TypeOf(&NodeAffinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeCondition).DeepCopyInto(out.(*NodeCondition)) - return nil - }, InType: reflect.TypeOf(&NodeCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeConfigSource).DeepCopyInto(out.(*NodeConfigSource)) - return nil - }, InType: reflect.TypeOf(&NodeConfigSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeDaemonEndpoints).DeepCopyInto(out.(*NodeDaemonEndpoints)) - return nil - }, InType: reflect.TypeOf(&NodeDaemonEndpoints{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeList).DeepCopyInto(out.(*NodeList)) - return nil - }, InType: reflect.TypeOf(&NodeList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeProxyOptions).DeepCopyInto(out.(*NodeProxyOptions)) - return nil - }, InType: reflect.TypeOf(&NodeProxyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeResources).DeepCopyInto(out.(*NodeResources)) - return nil - }, InType: reflect.TypeOf(&NodeResources{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSelector).DeepCopyInto(out.(*NodeSelector)) - return nil - }, InType: reflect.TypeOf(&NodeSelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSelectorRequirement).DeepCopyInto(out.(*NodeSelectorRequirement)) - return nil - }, InType: reflect.TypeOf(&NodeSelectorRequirement{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSelectorTerm).DeepCopyInto(out.(*NodeSelectorTerm)) - return nil - }, InType: reflect.TypeOf(&NodeSelectorTerm{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSpec).DeepCopyInto(out.(*NodeSpec)) - return nil - }, InType: reflect.TypeOf(&NodeSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeStatus).DeepCopyInto(out.(*NodeStatus)) - return nil - }, InType: reflect.TypeOf(&NodeStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeSystemInfo).DeepCopyInto(out.(*NodeSystemInfo)) - return nil - }, InType: reflect.TypeOf(&NodeSystemInfo{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectFieldSelector).DeepCopyInto(out.(*ObjectFieldSelector)) - return nil - }, InType: reflect.TypeOf(&ObjectFieldSelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectMeta).DeepCopyInto(out.(*ObjectMeta)) - return nil - }, InType: reflect.TypeOf(&ObjectMeta{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectReference).DeepCopyInto(out.(*ObjectReference)) - return nil - }, InType: reflect.TypeOf(&ObjectReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolume).DeepCopyInto(out.(*PersistentVolume)) - return nil - }, InType: reflect.TypeOf(&PersistentVolume{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaim).DeepCopyInto(out.(*PersistentVolumeClaim)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaim{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimCondition).DeepCopyInto(out.(*PersistentVolumeClaimCondition)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimList).DeepCopyInto(out.(*PersistentVolumeClaimList)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimSpec).DeepCopyInto(out.(*PersistentVolumeClaimSpec)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimStatus).DeepCopyInto(out.(*PersistentVolumeClaimStatus)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeClaimVolumeSource).DeepCopyInto(out.(*PersistentVolumeClaimVolumeSource)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeClaimVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeList).DeepCopyInto(out.(*PersistentVolumeList)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeSource).DeepCopyInto(out.(*PersistentVolumeSource)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeSpec).DeepCopyInto(out.(*PersistentVolumeSpec)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PersistentVolumeStatus).DeepCopyInto(out.(*PersistentVolumeStatus)) - return nil - }, InType: reflect.TypeOf(&PersistentVolumeStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PhotonPersistentDiskVolumeSource).DeepCopyInto(out.(*PhotonPersistentDiskVolumeSource)) - return nil - }, InType: reflect.TypeOf(&PhotonPersistentDiskVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Pod).DeepCopyInto(out.(*Pod)) - return nil - }, InType: reflect.TypeOf(&Pod{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodAffinity).DeepCopyInto(out.(*PodAffinity)) - return nil - }, InType: reflect.TypeOf(&PodAffinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodAffinityTerm).DeepCopyInto(out.(*PodAffinityTerm)) - return nil - }, InType: reflect.TypeOf(&PodAffinityTerm{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodAntiAffinity).DeepCopyInto(out.(*PodAntiAffinity)) - return nil - }, InType: reflect.TypeOf(&PodAntiAffinity{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodAttachOptions).DeepCopyInto(out.(*PodAttachOptions)) - return nil - }, InType: reflect.TypeOf(&PodAttachOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodCondition).DeepCopyInto(out.(*PodCondition)) - return nil - }, InType: reflect.TypeOf(&PodCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodExecOptions).DeepCopyInto(out.(*PodExecOptions)) - return nil - }, InType: reflect.TypeOf(&PodExecOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodList).DeepCopyInto(out.(*PodList)) - return nil - }, InType: reflect.TypeOf(&PodList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodLogOptions).DeepCopyInto(out.(*PodLogOptions)) - return nil - }, InType: reflect.TypeOf(&PodLogOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodPortForwardOptions).DeepCopyInto(out.(*PodPortForwardOptions)) - return nil - }, InType: reflect.TypeOf(&PodPortForwardOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodProxyOptions).DeepCopyInto(out.(*PodProxyOptions)) - return nil - }, InType: reflect.TypeOf(&PodProxyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSecurityContext).DeepCopyInto(out.(*PodSecurityContext)) - return nil - }, InType: reflect.TypeOf(&PodSecurityContext{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSignature).DeepCopyInto(out.(*PodSignature)) - return nil - }, InType: reflect.TypeOf(&PodSignature{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSpec).DeepCopyInto(out.(*PodSpec)) - return nil - }, InType: reflect.TypeOf(&PodSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodStatus).DeepCopyInto(out.(*PodStatus)) - return nil - }, InType: reflect.TypeOf(&PodStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodStatusResult).DeepCopyInto(out.(*PodStatusResult)) - return nil - }, InType: reflect.TypeOf(&PodStatusResult{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodTemplate).DeepCopyInto(out.(*PodTemplate)) - return nil - }, InType: reflect.TypeOf(&PodTemplate{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodTemplateList).DeepCopyInto(out.(*PodTemplateList)) - return nil - }, InType: reflect.TypeOf(&PodTemplateList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodTemplateSpec).DeepCopyInto(out.(*PodTemplateSpec)) - return nil - }, InType: reflect.TypeOf(&PodTemplateSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PortworxVolumeSource).DeepCopyInto(out.(*PortworxVolumeSource)) - return nil - }, InType: reflect.TypeOf(&PortworxVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Preconditions).DeepCopyInto(out.(*Preconditions)) - return nil - }, InType: reflect.TypeOf(&Preconditions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PreferAvoidPodsEntry).DeepCopyInto(out.(*PreferAvoidPodsEntry)) - return nil - }, InType: reflect.TypeOf(&PreferAvoidPodsEntry{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PreferredSchedulingTerm).DeepCopyInto(out.(*PreferredSchedulingTerm)) - return nil - }, InType: reflect.TypeOf(&PreferredSchedulingTerm{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Probe).DeepCopyInto(out.(*Probe)) - return nil - }, InType: reflect.TypeOf(&Probe{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ProjectedVolumeSource).DeepCopyInto(out.(*ProjectedVolumeSource)) - return nil - }, InType: reflect.TypeOf(&ProjectedVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*QuobyteVolumeSource).DeepCopyInto(out.(*QuobyteVolumeSource)) - return nil - }, InType: reflect.TypeOf(&QuobyteVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RBDVolumeSource).DeepCopyInto(out.(*RBDVolumeSource)) - return nil - }, InType: reflect.TypeOf(&RBDVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RangeAllocation).DeepCopyInto(out.(*RangeAllocation)) - return nil - }, InType: reflect.TypeOf(&RangeAllocation{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationController).DeepCopyInto(out.(*ReplicationController)) - return nil - }, InType: reflect.TypeOf(&ReplicationController{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerCondition).DeepCopyInto(out.(*ReplicationControllerCondition)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerList).DeepCopyInto(out.(*ReplicationControllerList)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerSpec).DeepCopyInto(out.(*ReplicationControllerSpec)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerStatus).DeepCopyInto(out.(*ReplicationControllerStatus)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceFieldSelector).DeepCopyInto(out.(*ResourceFieldSelector)) - return nil - }, InType: reflect.TypeOf(&ResourceFieldSelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceQuota).DeepCopyInto(out.(*ResourceQuota)) - return nil - }, InType: reflect.TypeOf(&ResourceQuota{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceQuotaList).DeepCopyInto(out.(*ResourceQuotaList)) - return nil - }, InType: reflect.TypeOf(&ResourceQuotaList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceQuotaSpec).DeepCopyInto(out.(*ResourceQuotaSpec)) - return nil - }, InType: reflect.TypeOf(&ResourceQuotaSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceQuotaStatus).DeepCopyInto(out.(*ResourceQuotaStatus)) - return nil - }, InType: reflect.TypeOf(&ResourceQuotaStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ResourceRequirements).DeepCopyInto(out.(*ResourceRequirements)) - return nil - }, InType: reflect.TypeOf(&ResourceRequirements{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SELinuxOptions).DeepCopyInto(out.(*SELinuxOptions)) - return nil - }, InType: reflect.TypeOf(&SELinuxOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleIOVolumeSource).DeepCopyInto(out.(*ScaleIOVolumeSource)) - return nil - }, InType: reflect.TypeOf(&ScaleIOVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Secret).DeepCopyInto(out.(*Secret)) - return nil - }, InType: reflect.TypeOf(&Secret{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretEnvSource).DeepCopyInto(out.(*SecretEnvSource)) - return nil - }, InType: reflect.TypeOf(&SecretEnvSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretKeySelector).DeepCopyInto(out.(*SecretKeySelector)) - return nil - }, InType: reflect.TypeOf(&SecretKeySelector{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretList).DeepCopyInto(out.(*SecretList)) - return nil - }, InType: reflect.TypeOf(&SecretList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretProjection).DeepCopyInto(out.(*SecretProjection)) - return nil - }, InType: reflect.TypeOf(&SecretProjection{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretReference).DeepCopyInto(out.(*SecretReference)) - return nil - }, InType: reflect.TypeOf(&SecretReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecretVolumeSource).DeepCopyInto(out.(*SecretVolumeSource)) - return nil - }, InType: reflect.TypeOf(&SecretVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SecurityContext).DeepCopyInto(out.(*SecurityContext)) - return nil - }, InType: reflect.TypeOf(&SecurityContext{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SerializedReference).DeepCopyInto(out.(*SerializedReference)) - return nil - }, InType: reflect.TypeOf(&SerializedReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Service).DeepCopyInto(out.(*Service)) - return nil - }, InType: reflect.TypeOf(&Service{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceAccount).DeepCopyInto(out.(*ServiceAccount)) - return nil - }, InType: reflect.TypeOf(&ServiceAccount{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceAccountList).DeepCopyInto(out.(*ServiceAccountList)) - return nil - }, InType: reflect.TypeOf(&ServiceAccountList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceList).DeepCopyInto(out.(*ServiceList)) - return nil - }, InType: reflect.TypeOf(&ServiceList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServicePort).DeepCopyInto(out.(*ServicePort)) - return nil - }, InType: reflect.TypeOf(&ServicePort{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceProxyOptions).DeepCopyInto(out.(*ServiceProxyOptions)) - return nil - }, InType: reflect.TypeOf(&ServiceProxyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceSpec).DeepCopyInto(out.(*ServiceSpec)) - return nil - }, InType: reflect.TypeOf(&ServiceSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceStatus).DeepCopyInto(out.(*ServiceStatus)) - return nil - }, InType: reflect.TypeOf(&ServiceStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SessionAffinityConfig).DeepCopyInto(out.(*SessionAffinityConfig)) - return nil - }, InType: reflect.TypeOf(&SessionAffinityConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageOSPersistentVolumeSource).DeepCopyInto(out.(*StorageOSPersistentVolumeSource)) - return nil - }, InType: reflect.TypeOf(&StorageOSPersistentVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageOSVolumeSource).DeepCopyInto(out.(*StorageOSVolumeSource)) - return nil - }, InType: reflect.TypeOf(&StorageOSVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Sysctl).DeepCopyInto(out.(*Sysctl)) - return nil - }, InType: reflect.TypeOf(&Sysctl{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TCPSocketAction).DeepCopyInto(out.(*TCPSocketAction)) - return nil - }, InType: reflect.TypeOf(&TCPSocketAction{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Taint).DeepCopyInto(out.(*Taint)) - return nil - }, InType: reflect.TypeOf(&Taint{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Toleration).DeepCopyInto(out.(*Toleration)) - return nil - }, InType: reflect.TypeOf(&Toleration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Volume).DeepCopyInto(out.(*Volume)) - return nil - }, InType: reflect.TypeOf(&Volume{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VolumeMount).DeepCopyInto(out.(*VolumeMount)) - return nil - }, InType: reflect.TypeOf(&VolumeMount{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VolumeProjection).DeepCopyInto(out.(*VolumeProjection)) - return nil - }, InType: reflect.TypeOf(&VolumeProjection{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VolumeSource).DeepCopyInto(out.(*VolumeSource)) - return nil - }, InType: reflect.TypeOf(&VolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VsphereVirtualDiskVolumeSource).DeepCopyInto(out.(*VsphereVirtualDiskVolumeSource)) - return nil - }, InType: reflect.TypeOf(&VsphereVirtualDiskVolumeSource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*WeightedPodAffinityTerm).DeepCopyInto(out.(*WeightedPodAffinityTerm)) - return nil - }, InType: reflect.TypeOf(&WeightedPodAffinityTerm{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AWSElasticBlockStoreVolumeSource) DeepCopyInto(out *AWSElasticBlockStoreVolumeSource) { *out = *in @@ -3733,7 +3006,7 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(RBDVolumeSource) + *out = new(RBDPersistentVolumeSource) (*in).DeepCopyInto(*out) } } @@ -3850,7 +3123,7 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(ScaleIOVolumeSource) + *out = new(ScaleIOPersistentVolumeSource) (*in).DeepCopyInto(*out) } } @@ -4801,6 +4074,36 @@ func (in *QuobyteVolumeSource) DeepCopy() *QuobyteVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RBDPersistentVolumeSource) DeepCopyInto(out *RBDPersistentVolumeSource) { + *out = *in + if in.CephMonitors != nil { + in, out := &in.CephMonitors, &out.CephMonitors + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + if *in == nil { + *out = nil + } else { + *out = new(SecretReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDPersistentVolumeSource. +func (in *RBDPersistentVolumeSource) DeepCopy() *RBDPersistentVolumeSource { + if in == nil { + return nil + } + out := new(RBDPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RBDVolumeSource) DeepCopyInto(out *RBDVolumeSource) { *out = *in @@ -5191,6 +4494,31 @@ func (in *SELinuxOptions) DeepCopy() *SELinuxOptions { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ScaleIOPersistentVolumeSource) DeepCopyInto(out *ScaleIOPersistentVolumeSource) { + *out = *in + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + if *in == nil { + *out = nil + } else { + *out = new(SecretReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleIOPersistentVolumeSource. +func (in *ScaleIOPersistentVolumeSource) DeepCopy() *ScaleIOPersistentVolumeSource { + if in == nil { + return nil + } + out := new(ScaleIOPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ScaleIOVolumeSource) DeepCopyInto(out *ScaleIOVolumeSource) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/BUILD index 401873269..360ad999c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/BUILD @@ -23,7 +23,6 @@ go_library( "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/doc.go index ac174dd27..8ce18304b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true package v1beta1 // import "k8s.io/api/extensions/v1beta1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/generated.pb.go index d508216ae..c61147fcf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/generated.pb.go @@ -25,13 +25,13 @@ limitations under the License. k8s.io/kubernetes/vendor/k8s.io/api/extensions/v1beta1/generated.proto It has these top-level messages: - APIVersion AllowedHostPath CustomMetricCurrentStatus CustomMetricCurrentStatusList CustomMetricTarget CustomMetricTargetList DaemonSet + DaemonSetCondition DaemonSetList DaemonSetSpec DaemonSetStatus @@ -82,10 +82,6 @@ limitations under the License. ScaleSpec ScaleStatus SupplementalGroupsStrategyOptions - ThirdPartyResource - ThirdPartyResourceData - ThirdPartyResourceDataList - ThirdPartyResourceList */ package v1beta1 @@ -117,37 +113,37 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package -func (m *APIVersion) Reset() { *m = APIVersion{} } -func (*APIVersion) ProtoMessage() {} -func (*APIVersion) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } - func (m *AllowedHostPath) Reset() { *m = AllowedHostPath{} } func (*AllowedHostPath) ProtoMessage() {} -func (*AllowedHostPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (*AllowedHostPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } func (m *CustomMetricCurrentStatus) Reset() { *m = CustomMetricCurrentStatus{} } func (*CustomMetricCurrentStatus) ProtoMessage() {} func (*CustomMetricCurrentStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{2} + return fileDescriptorGenerated, []int{1} } func (m *CustomMetricCurrentStatusList) Reset() { *m = CustomMetricCurrentStatusList{} } func (*CustomMetricCurrentStatusList) ProtoMessage() {} func (*CustomMetricCurrentStatusList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{3} + return fileDescriptorGenerated, []int{2} } func (m *CustomMetricTarget) Reset() { *m = CustomMetricTarget{} } func (*CustomMetricTarget) ProtoMessage() {} -func (*CustomMetricTarget) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (*CustomMetricTarget) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } func (m *CustomMetricTargetList) Reset() { *m = CustomMetricTargetList{} } func (*CustomMetricTargetList) ProtoMessage() {} -func (*CustomMetricTargetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*CustomMetricTargetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } func (m *DaemonSet) Reset() { *m = DaemonSet{} } func (*DaemonSet) ProtoMessage() {} -func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } + +func (m *DaemonSetCondition) Reset() { *m = DaemonSetCondition{} } +func (*DaemonSetCondition) ProtoMessage() {} +func (*DaemonSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *DaemonSetList) Reset() { *m = DaemonSetList{} } func (*DaemonSetList) ProtoMessage() {} @@ -363,32 +359,14 @@ func (*SupplementalGroupsStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{56} } -func (m *ThirdPartyResource) Reset() { *m = ThirdPartyResource{} } -func (*ThirdPartyResource) ProtoMessage() {} -func (*ThirdPartyResource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{57} } - -func (m *ThirdPartyResourceData) Reset() { *m = ThirdPartyResourceData{} } -func (*ThirdPartyResourceData) ProtoMessage() {} -func (*ThirdPartyResourceData) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{58} } - -func (m *ThirdPartyResourceDataList) Reset() { *m = ThirdPartyResourceDataList{} } -func (*ThirdPartyResourceDataList) ProtoMessage() {} -func (*ThirdPartyResourceDataList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{59} -} - -func (m *ThirdPartyResourceList) Reset() { *m = ThirdPartyResourceList{} } -func (*ThirdPartyResourceList) ProtoMessage() {} -func (*ThirdPartyResourceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{60} } - func init() { - proto.RegisterType((*APIVersion)(nil), "k8s.io.api.extensions.v1beta1.APIVersion") 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") proto.RegisterType((*CustomMetricTarget)(nil), "k8s.io.api.extensions.v1beta1.CustomMetricTarget") proto.RegisterType((*CustomMetricTargetList)(nil), "k8s.io.api.extensions.v1beta1.CustomMetricTargetList") proto.RegisterType((*DaemonSet)(nil), "k8s.io.api.extensions.v1beta1.DaemonSet") + proto.RegisterType((*DaemonSetCondition)(nil), "k8s.io.api.extensions.v1beta1.DaemonSetCondition") proto.RegisterType((*DaemonSetList)(nil), "k8s.io.api.extensions.v1beta1.DaemonSetList") proto.RegisterType((*DaemonSetSpec)(nil), "k8s.io.api.extensions.v1beta1.DaemonSetSpec") proto.RegisterType((*DaemonSetStatus)(nil), "k8s.io.api.extensions.v1beta1.DaemonSetStatus") @@ -439,33 +417,7 @@ func init() { proto.RegisterType((*ScaleSpec)(nil), "k8s.io.api.extensions.v1beta1.ScaleSpec") proto.RegisterType((*ScaleStatus)(nil), "k8s.io.api.extensions.v1beta1.ScaleStatus") proto.RegisterType((*SupplementalGroupsStrategyOptions)(nil), "k8s.io.api.extensions.v1beta1.SupplementalGroupsStrategyOptions") - proto.RegisterType((*ThirdPartyResource)(nil), "k8s.io.api.extensions.v1beta1.ThirdPartyResource") - proto.RegisterType((*ThirdPartyResourceData)(nil), "k8s.io.api.extensions.v1beta1.ThirdPartyResourceData") - proto.RegisterType((*ThirdPartyResourceDataList)(nil), "k8s.io.api.extensions.v1beta1.ThirdPartyResourceDataList") - proto.RegisterType((*ThirdPartyResourceList)(nil), "k8s.io.api.extensions.v1beta1.ThirdPartyResourceList") -} -func (m *APIVersion) 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 *APIVersion) 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) - return i, nil } - func (m *AllowedHostPath) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -650,6 +602,48 @@ func (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *DaemonSetCondition) 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 *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n6, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil +} + func (m *DaemonSetList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -668,11 +662,11 @@ func (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n6, err := m.ListMeta.MarshalTo(dAtA[i:]) + n7, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n7 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -707,28 +701,28 @@ func (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n7, err := m.Selector.MarshalTo(dAtA[i:]) + n8, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n8 } dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n8, err := m.Template.MarshalTo(dAtA[i:]) + n9, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n9 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) - n9, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) + n10, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n10 dAtA[i] = 0x20 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -787,6 +781,18 @@ func (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) } + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x52 + 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 } @@ -813,11 +819,11 @@ func (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n10, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + n11, err := m.RollingUpdate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n11 } return i, nil } @@ -840,27 +846,27 @@ func (m *Deployment) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n11, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n12, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n11 + i += n12 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n12, err := m.Spec.MarshalTo(dAtA[i:]) + n13, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n12 + i += n13 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n13, err := m.Status.MarshalTo(dAtA[i:]) + n14, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n14 return i, nil } @@ -898,19 +904,19 @@ func (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastUpdateTime.Size())) - n14, err := m.LastUpdateTime.MarshalTo(dAtA[i:]) + n15, err := m.LastUpdateTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n15 dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n15, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n16, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n16 return i, nil } @@ -932,11 +938,11 @@ func (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n16, err := m.ListMeta.MarshalTo(dAtA[i:]) + n17, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n17 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -996,11 +1002,11 @@ func (m *DeploymentRollback) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollbackTo.Size())) - n17, err := m.RollbackTo.MarshalTo(dAtA[i:]) + n18, err := m.RollbackTo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n18 return i, nil } @@ -1028,28 +1034,28 @@ func (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n18, err := m.Selector.MarshalTo(dAtA[i:]) + n19, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n19 } dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n19, err := m.Template.MarshalTo(dAtA[i:]) + n20, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n20 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Strategy.Size())) - n20, err := m.Strategy.MarshalTo(dAtA[i:]) + n21, err := m.Strategy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n21 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -1070,11 +1076,11 @@ func (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollbackTo.Size())) - n21, err := m.RollbackTo.MarshalTo(dAtA[i:]) + n22, err := m.RollbackTo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n21 + i += n22 } if m.ProgressDeadlineSeconds != nil { dAtA[i] = 0x48 @@ -1160,11 +1166,11 @@ func (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n22, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + n23, err := m.RollingUpdate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n22 + i += n23 } return i, nil } @@ -1225,11 +1231,11 @@ func (m *HTTPIngressPath) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Backend.Size())) - n23, err := m.Backend.MarshalTo(dAtA[i:]) + n24, err := m.Backend.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n24 return i, nil } @@ -1366,27 +1372,27 @@ func (m *Ingress) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n24, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n25, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n25 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n25, err := m.Spec.MarshalTo(dAtA[i:]) + n26, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n26 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n26, err := m.Status.MarshalTo(dAtA[i:]) + n27, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n27 return i, nil } @@ -1412,11 +1418,11 @@ func (m *IngressBackend) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ServicePort.Size())) - n27, err := m.ServicePort.MarshalTo(dAtA[i:]) + n28, err := m.ServicePort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n28 return i, nil } @@ -1438,11 +1444,11 @@ func (m *IngressList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n28, err := m.ListMeta.MarshalTo(dAtA[i:]) + n29, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n29 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -1480,11 +1486,11 @@ func (m *IngressRule) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.IngressRuleValue.Size())) - n29, err := m.IngressRuleValue.MarshalTo(dAtA[i:]) + n30, err := m.IngressRuleValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n30 return i, nil } @@ -1507,11 +1513,11 @@ func (m *IngressRuleValue) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HTTP.Size())) - n30, err := m.HTTP.MarshalTo(dAtA[i:]) + n31, err := m.HTTP.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n30 + i += n31 } return i, nil } @@ -1535,11 +1541,11 @@ func (m *IngressSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Backend.Size())) - n31, err := m.Backend.MarshalTo(dAtA[i:]) + n32, err := m.Backend.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n31 + i += n32 } if len(m.TLS) > 0 { for _, msg := range m.TLS { @@ -1586,11 +1592,11 @@ func (m *IngressStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LoadBalancer.Size())) - n32, err := m.LoadBalancer.MarshalTo(dAtA[i:]) + n33, err := m.LoadBalancer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n32 + i += n33 return i, nil } @@ -1649,19 +1655,19 @@ func (m *NetworkPolicy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n33, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n34, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n33 + i += n34 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n34, err := m.Spec.MarshalTo(dAtA[i:]) + n35, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n34 + i += n35 return i, nil } @@ -1767,11 +1773,11 @@ func (m *NetworkPolicyList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n35, err := m.ListMeta.MarshalTo(dAtA[i:]) + n36, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n35 + i += n36 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -1806,31 +1812,31 @@ func (m *NetworkPolicyPeer) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodSelector.Size())) - n36, err := m.PodSelector.MarshalTo(dAtA[i:]) + n37, err := m.PodSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n36 + i += n37 } if m.NamespaceSelector != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NamespaceSelector.Size())) - n37, err := m.NamespaceSelector.MarshalTo(dAtA[i:]) + n38, err := m.NamespaceSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n37 + i += n38 } if m.IPBlock != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.IPBlock.Size())) - n38, err := m.IPBlock.MarshalTo(dAtA[i:]) + n39, err := m.IPBlock.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n38 + i += n39 } return i, nil } @@ -1860,11 +1866,11 @@ func (m *NetworkPolicyPort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n39, err := m.Port.MarshalTo(dAtA[i:]) + n40, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n39 + i += n40 } return i, nil } @@ -1887,11 +1893,11 @@ func (m *NetworkPolicySpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodSelector.Size())) - n40, err := m.PodSelector.MarshalTo(dAtA[i:]) + n41, err := m.PodSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n40 + i += n41 if len(m.Ingress) > 0 { for _, msg := range m.Ingress { dAtA[i] = 0x12 @@ -1952,19 +1958,19 @@ func (m *PodSecurityPolicy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n41, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n42, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n41 + i += n42 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n42, err := m.Spec.MarshalTo(dAtA[i:]) + n43, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n42 + i += n43 return i, nil } @@ -1986,11 +1992,11 @@ func (m *PodSecurityPolicyList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n43, err := m.ListMeta.MarshalTo(dAtA[i:]) + n44, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n43 + i += n44 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -2128,35 +2134,35 @@ func (m *PodSecurityPolicySpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinux.Size())) - n44, err := m.SELinux.MarshalTo(dAtA[i:]) + n45, err := m.SELinux.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n44 + i += n45 dAtA[i] = 0x5a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RunAsUser.Size())) - n45, err := m.RunAsUser.MarshalTo(dAtA[i:]) + n46, err := m.RunAsUser.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n45 + i += n46 dAtA[i] = 0x62 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SupplementalGroups.Size())) - n46, err := m.SupplementalGroups.MarshalTo(dAtA[i:]) + n47, err := m.SupplementalGroups.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n46 + i += n47 dAtA[i] = 0x6a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FSGroup.Size())) - n47, err := m.FSGroup.MarshalTo(dAtA[i:]) + n48, err := m.FSGroup.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n47 + i += n48 dAtA[i] = 0x70 i++ if m.ReadOnlyRootFilesystem { @@ -2222,27 +2228,27 @@ func (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n48, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n49, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n48 + i += n49 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n49, err := m.Spec.MarshalTo(dAtA[i:]) + n50, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n49 + i += n50 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n50, err := m.Status.MarshalTo(dAtA[i:]) + n51, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n50 + i += n51 return i, nil } @@ -2272,11 +2278,11 @@ func (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n51, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n52, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n51 + i += n52 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -2306,11 +2312,11 @@ func (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n52, err := m.ListMeta.MarshalTo(dAtA[i:]) + n53, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n52 + i += n53 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -2350,20 +2356,20 @@ func (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n53, err := m.Selector.MarshalTo(dAtA[i:]) + n54, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n53 + i += n54 } dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n54, err := m.Template.MarshalTo(dAtA[i:]) + n55, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n54 + i += n55 dAtA[i] = 0x20 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -2473,11 +2479,11 @@ func (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) - n55, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + n56, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n55 + i += n56 } return i, nil } @@ -2501,21 +2507,21 @@ func (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) - n56, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + n57, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n56 + i += n57 } if m.MaxSurge != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MaxSurge.Size())) - n57, err := m.MaxSurge.MarshalTo(dAtA[i:]) + n58, err := m.MaxSurge.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n57 + i += n58 } return i, nil } @@ -2577,11 +2583,11 @@ func (m *SELinuxStrategyOptions) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n58, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n59, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n58 + i += n59 } return i, nil } @@ -2604,27 +2610,27 @@ func (m *Scale) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n59, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n60, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n59 + i += n60 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n60, err := m.Spec.MarshalTo(dAtA[i:]) + n61, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n60 + i += n61 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n61, err := m.Status.MarshalTo(dAtA[i:]) + n62, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n61 + i += n62 return i, nil } @@ -2730,219 +2736,61 @@ func (m *SupplementalGroupsStrategyOptions) MarshalTo(dAtA []byte) (int, error) return i, nil } -func (m *ThirdPartyResource) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err +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++ } - return dAtA[:n], nil + dAtA[offset] = uint8(v) + return offset + 1 } - -func (m *ThirdPartyResource) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i +func (m *AllowedHostPath) Size() (n int) { var l int _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n62, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n62 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Description))) - i += copy(dAtA[i:], m.Description) - if len(m.Versions) > 0 { - for _, msg := range m.Versions { - 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 + l = len(m.PathPrefix) + n += 1 + l + sovGenerated(uint64(l)) + return n } -func (m *ThirdPartyResourceData) 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 *CustomMetricCurrentStatus) Size() (n int) { + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = m.CurrentValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n } -func (m *ThirdPartyResourceData) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i +func (m *CustomMetricCurrentStatusList) Size() (n int) { var l int _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n63, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n63 - if m.Data != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Data))) - i += copy(dAtA[i:], m.Data) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } } - return i, nil -} - -func (m *ThirdPartyResourceDataList) 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 *ThirdPartyResourceDataList) 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())) - n64, err := m.ListMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n64 - 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 *ThirdPartyResourceList) 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 *ThirdPartyResourceList) 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())) - n65, err := m.ListMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n65 - 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 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 *APIVersion) Size() (n int) { - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *AllowedHostPath) Size() (n int) { - var l int - _ = l - l = len(m.PathPrefix) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *CustomMetricCurrentStatus) Size() (n int) { - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.CurrentValue.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *CustomMetricCurrentStatusList) Size() (n int) { - var l int - _ = l - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n + return n } func (m *CustomMetricTarget) Size() (n int) { @@ -2979,6 +2827,22 @@ func (m *DaemonSet) Size() (n int) { return n } +func (m *DaemonSetCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *DaemonSetList) Size() (n int) { var l int _ = l @@ -3026,6 +2890,12 @@ func (m *DaemonSetStatus) Size() (n int) { if m.CollisionCount != nil { n += 1 + sovGenerated(uint64(*m.CollisionCount)) } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -3722,62 +3592,6 @@ func (m *SupplementalGroupsStrategyOptions) Size() (n int) { return n } -func (m *ThirdPartyResource) Size() (n int) { - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Description) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Versions) > 0 { - for _, e := range m.Versions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ThirdPartyResourceData) Size() (n int) { - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Data != nil { - l = len(m.Data) - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *ThirdPartyResourceDataList) 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 *ThirdPartyResourceList) 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 sovGenerated(x uint64) (n int) { for { n++ @@ -3791,16 +3605,6 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (this *APIVersion) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&APIVersion{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `}`, - }, "") - return s -} func (this *AllowedHostPath) String() string { if this == nil { return "nil" @@ -3865,6 +3669,20 @@ func (this *DaemonSet) String() string { }, "") return s } +func (this *DaemonSetCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} func (this *DaemonSetList) String() string { if this == nil { return "nil" @@ -3905,6 +3723,7 @@ func (this *DaemonSetStatus) String() string { `NumberAvailable:` + fmt.Sprintf("%v", this.NumberAvailable) + `,`, `NumberUnavailable:` + fmt.Sprintf("%v", this.NumberUnavailable) + `,`, `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "DaemonSetCondition", "DaemonSetCondition", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -4489,51 +4308,6 @@ func (this *SupplementalGroupsStrategyOptions) String() string { }, "") return s } -func (this *ThirdPartyResource) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ThirdPartyResource{`, - `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Description:` + fmt.Sprintf("%v", this.Description) + `,`, - `Versions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Versions), "APIVersion", "APIVersion", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ThirdPartyResourceData) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ThirdPartyResourceData{`, - `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Data:` + valueToStringGenerated(this.Data) + `,`, - `}`, - }, "") - return s -} -func (this *ThirdPartyResourceDataList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ThirdPartyResourceDataList{`, - `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), "ThirdPartyResourceData", "ThirdPartyResourceData", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ThirdPartyResourceList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ThirdPartyResourceList{`, - `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), "ThirdPartyResource", "ThirdPartyResource", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} func valueToStringGenerated(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -4542,7 +4316,7 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *APIVersion) Unmarshal(dAtA []byte) error { +func (m *AllowedHostPath) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4565,15 +4339,15 @@ func (m *APIVersion) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: APIVersion: wiretype end group for non-group") + return fmt.Errorf("proto: AllowedHostPath: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: APIVersion: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AllowedHostPath: 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) + return fmt.Errorf("proto: wrong wireType = %d for field PathPrefix", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4598,86 +4372,7 @@ func (m *APIVersion) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = 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 - 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: AllowedHostPath: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllowedHostPath: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PathPrefix", 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.PathPrefix = string(dAtA[iNdEx:postIndex]) + m.PathPrefix = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -5220,7 +4915,7 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { } return nil } -func (m *DaemonSetList) Unmarshal(dAtA []byte) error { +func (m *DaemonSetCondition) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5243,17 +4938,17 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DaemonSetList: wiretype end group for non-group") + return fmt.Errorf("proto: DaemonSetCondition: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DaemonSetCondition: 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) + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -5263,25 +4958,53 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Type = DaemonSetConditionType(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5305,11 +5028,68 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, DaemonSet{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 4: + 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 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", 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.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -5331,7 +5111,7 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { } return nil } -func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { +func (m *DaemonSetList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -5354,15 +5134,15 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DaemonSetSpec: wiretype end group for non-group") + return fmt.Errorf("proto: DaemonSetList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DaemonSetList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5386,16 +5166,13 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Selector == nil { - m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} - } - if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + 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 Template", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5419,42 +5196,156 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Items = append(m.Items, DaemonSet{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", 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 - } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err } - if msglen < 0 { + if skippy < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DaemonSetSpec) 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 } - iNdEx = postIndex - case 4: - if wireType != 0 { + 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: DaemonSetSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", 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.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", 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.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", 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.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) } m.MinReadySeconds = 0 @@ -5733,6 +5624,37 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { } } m.CollisionCount = &v + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", 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.Conditions = append(m.Conditions, DaemonSetCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -12076,479 +11998,6 @@ func (m *SupplementalGroupsStrategyOptions) Unmarshal(dAtA []byte) error { } return nil } -func (m *ThirdPartyResource) 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: ThirdPartyResource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ThirdPartyResource: 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 Description", 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.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Versions", 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.Versions = append(m.Versions, APIVersion{}) - if err := m.Versions[len(m.Versions)-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 *ThirdPartyResourceData) 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: ThirdPartyResourceData: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ThirdPartyResourceData: 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 Data", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + byteLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} - } - 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 *ThirdPartyResourceDataList) 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: ThirdPartyResourceDataList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ThirdPartyResourceDataList: 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, ThirdPartyResourceData{}) - 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 *ThirdPartyResourceList) 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: ThirdPartyResourceList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ThirdPartyResourceList: 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, ThirdPartyResource{}) - 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 skipGenerated(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 @@ -12659,232 +12108,226 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 3632 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5b, 0xcd, 0x6f, 0x24, 0xc7, - 0x75, 0xdf, 0x9e, 0x0f, 0xce, 0xf0, 0x71, 0xf9, 0x55, 0x5c, 0x91, 0x63, 0x4a, 0xcb, 0x59, 0xb7, - 0x80, 0xcd, 0x4a, 0x91, 0x66, 0xb4, 0x94, 0x56, 0x56, 0x24, 0xc4, 0x0e, 0x87, 0xdc, 0x0f, 0x3a, - 0xfc, 0x18, 0xd5, 0x0c, 0x69, 0x67, 0x91, 0x75, 0xd4, 0x9c, 0x29, 0x0e, 0x7b, 0xd9, 0xd3, 0xdd, - 0xee, 0xae, 0xa6, 0x39, 0x97, 0x20, 0x87, 0xc0, 0x40, 0x80, 0x04, 0x49, 0x0e, 0x0e, 0x94, 0x5b, - 0x7c, 0xc9, 0x29, 0x41, 0x7c, 0x4b, 0x0e, 0x86, 0x81, 0x00, 0x0e, 0xb0, 0x08, 0x9c, 0xc0, 0xa7, - 0xc4, 0x27, 0x22, 0xa2, 0x8e, 0xf9, 0x07, 0x82, 0x3d, 0x04, 0x41, 0x55, 0x57, 0x7f, 0x77, 0x73, - 0x66, 0xa8, 0x25, 0x11, 0xf8, 0x36, 0x5d, 0xef, 0xbd, 0xdf, 0x7b, 0xf5, 0xaa, 0xea, 0xbd, 0x57, - 0x1f, 0x03, 0x8f, 0x8e, 0x3f, 0xb2, 0x6b, 0xaa, 0x51, 0x3f, 0x76, 0x0e, 0x88, 0xa5, 0x13, 0x4a, - 0xec, 0xfa, 0x09, 0xd1, 0xbb, 0x86, 0x55, 0x17, 0x04, 0xc5, 0x54, 0xeb, 0xe4, 0x94, 0x12, 0xdd, - 0x56, 0x0d, 0xdd, 0xae, 0x9f, 0xdc, 0x3f, 0x20, 0x54, 0xb9, 0x5f, 0xef, 0x11, 0x9d, 0x58, 0x0a, - 0x25, 0xdd, 0x9a, 0x69, 0x19, 0xd4, 0x40, 0xb7, 0x5d, 0xf6, 0x9a, 0x62, 0xaa, 0xb5, 0x80, 0xbd, - 0x26, 0xd8, 0x97, 0xdf, 0xed, 0xa9, 0xf4, 0xc8, 0x39, 0xa8, 0x75, 0x8c, 0x7e, 0xbd, 0x67, 0xf4, - 0x8c, 0x3a, 0x97, 0x3a, 0x70, 0x0e, 0xf9, 0x17, 0xff, 0xe0, 0xbf, 0x5c, 0xb4, 0x65, 0x39, 0xa4, - 0xbc, 0x63, 0x58, 0xa4, 0x7e, 0x92, 0xd0, 0xb8, 0xfc, 0x56, 0x88, 0xc7, 0x34, 0x34, 0xb5, 0x33, - 0xc8, 0x32, 0x6e, 0xf9, 0x83, 0x80, 0xb5, 0xaf, 0x74, 0x8e, 0x54, 0x9d, 0x58, 0x83, 0xba, 0x79, - 0xdc, 0xe3, 0xb2, 0x16, 0xb1, 0x0d, 0xc7, 0xea, 0x90, 0xb1, 0xa4, 0xec, 0x7a, 0x9f, 0x50, 0x25, - 0xcd, 0xac, 0x7a, 0x96, 0x94, 0xe5, 0xe8, 0x54, 0xed, 0x27, 0xd5, 0x7c, 0x38, 0x4c, 0xc0, 0xee, - 0x1c, 0x91, 0xbe, 0x92, 0x90, 0x7b, 0x3f, 0x4b, 0xce, 0xa1, 0xaa, 0x56, 0x57, 0x75, 0x6a, 0x53, - 0x2b, 0x2e, 0x24, 0xd7, 0x00, 0xd6, 0x9a, 0x9b, 0xfb, 0xc4, 0x62, 0xc3, 0x83, 0xee, 0x40, 0x41, - 0x57, 0xfa, 0xa4, 0x22, 0xdd, 0x91, 0xee, 0x4d, 0x36, 0x6e, 0xbe, 0x38, 0xab, 0xde, 0x38, 0x3f, - 0xab, 0x16, 0x76, 0x94, 0x3e, 0xc1, 0x9c, 0x22, 0x3f, 0x84, 0xd9, 0x35, 0x4d, 0x33, 0x7e, 0x40, - 0xba, 0x4f, 0x0c, 0x9b, 0x36, 0x15, 0x7a, 0x84, 0x56, 0x01, 0x4c, 0x85, 0x1e, 0x35, 0x2d, 0x72, - 0xa8, 0x9e, 0x0a, 0x51, 0x24, 0x44, 0xa1, 0xe9, 0x53, 0x70, 0x88, 0x4b, 0xfe, 0x6b, 0x09, 0xbe, - 0xb6, 0xee, 0xd8, 0xd4, 0xe8, 0x6f, 0x13, 0x6a, 0xa9, 0x9d, 0x75, 0xc7, 0xb2, 0x88, 0x4e, 0x5b, - 0x54, 0xa1, 0x8e, 0x3d, 0xdc, 0x0c, 0xf4, 0x14, 0x8a, 0x27, 0x8a, 0xe6, 0x90, 0x4a, 0xee, 0x8e, - 0x74, 0x6f, 0x6a, 0xb5, 0x56, 0x0b, 0x66, 0x9b, 0xdf, 0xf7, 0x9a, 0x79, 0xdc, 0xe3, 0xd3, 0xcf, - 0x1b, 0xd0, 0xda, 0xa7, 0x8e, 0xa2, 0x53, 0x95, 0x0e, 0x1a, 0xb7, 0x04, 0xe4, 0x4d, 0xa1, 0x77, - 0x9f, 0x61, 0x61, 0x17, 0x52, 0xfe, 0x43, 0xb8, 0x9d, 0x69, 0xda, 0x96, 0x6a, 0x53, 0xf4, 0x0c, - 0x8a, 0x2a, 0x25, 0x7d, 0xbb, 0x22, 0xdd, 0xc9, 0xdf, 0x9b, 0x5a, 0xfd, 0xa8, 0x76, 0xe1, 0x54, - 0xaf, 0x65, 0x82, 0x35, 0xa6, 0x85, 0x19, 0xc5, 0x4d, 0x06, 0x87, 0x5d, 0x54, 0xf9, 0x2f, 0x25, - 0x40, 0x61, 0x99, 0xb6, 0x62, 0xf5, 0x08, 0x1d, 0xc1, 0x29, 0xbf, 0xf7, 0xd5, 0x9c, 0xb2, 0x20, - 0x20, 0xa7, 0x5c, 0x85, 0x11, 0x9f, 0x98, 0xb0, 0x98, 0x34, 0x89, 0x3b, 0x63, 0x3f, 0xea, 0x8c, - 0xfb, 0x63, 0x38, 0xc3, 0x45, 0xc9, 0xf0, 0xc2, 0x8f, 0x72, 0x30, 0xb9, 0xa1, 0x90, 0xbe, 0xa1, - 0xb7, 0x08, 0x45, 0x9f, 0x41, 0x99, 0xad, 0xaf, 0xae, 0x42, 0x15, 0xee, 0x80, 0xa9, 0xd5, 0xf7, - 0x2e, 0xea, 0x9d, 0x5d, 0x63, 0xdc, 0xb5, 0x93, 0xfb, 0xb5, 0xdd, 0x83, 0xe7, 0xa4, 0x43, 0xb7, - 0x09, 0x55, 0x82, 0x39, 0x19, 0xb4, 0x61, 0x1f, 0x15, 0xed, 0x40, 0xc1, 0x36, 0x49, 0x47, 0xf8, - 0xee, 0x9d, 0x21, 0xdd, 0xf0, 0x2d, 0x6b, 0x99, 0xa4, 0x13, 0x0c, 0x06, 0xfb, 0xc2, 0x1c, 0x07, - 0xed, 0xc3, 0x84, 0xcd, 0x47, 0xb9, 0x92, 0x4f, 0x8c, 0xc6, 0xc5, 0x88, 0xee, 0xdc, 0x98, 0x11, - 0x98, 0x13, 0xee, 0x37, 0x16, 0x68, 0xf2, 0x4f, 0x25, 0x98, 0xf6, 0x79, 0xf9, 0x08, 0xfc, 0x7e, - 0xc2, 0x37, 0xb5, 0xd1, 0x7c, 0xc3, 0xa4, 0xb9, 0x67, 0xe6, 0x84, 0xae, 0xb2, 0xd7, 0x12, 0xf2, - 0xcb, 0xb6, 0x37, 0xbe, 0x39, 0x3e, 0xbe, 0xf7, 0x46, 0xed, 0x46, 0xc6, 0xb0, 0xfe, 0x55, 0x21, - 0x64, 0x3e, 0x73, 0x17, 0x7a, 0x06, 0x65, 0x9b, 0x68, 0xa4, 0x43, 0x0d, 0x4b, 0x98, 0xff, 0xfe, - 0x88, 0xe6, 0x2b, 0x07, 0x44, 0x6b, 0x09, 0xd1, 0xc6, 0x4d, 0x66, 0xbf, 0xf7, 0x85, 0x7d, 0x48, - 0xf4, 0x29, 0x94, 0x29, 0xe9, 0x9b, 0x9a, 0x42, 0xbd, 0x75, 0xf1, 0x66, 0xb8, 0x0b, 0x2c, 0x99, - 0x30, 0xb0, 0xa6, 0xd1, 0x6d, 0x0b, 0x36, 0x3e, 0xa4, 0xbe, 0x4b, 0xbc, 0x56, 0xec, 0xc3, 0xa0, - 0x13, 0x98, 0x71, 0xcc, 0x2e, 0xe3, 0xa4, 0x2c, 0x94, 0xf6, 0x06, 0x62, 0x88, 0x3f, 0x1c, 0xd5, - 0x37, 0x7b, 0x11, 0xe9, 0xc6, 0xa2, 0xd0, 0x35, 0x13, 0x6d, 0xc7, 0x31, 0x2d, 0x68, 0x0d, 0x66, - 0xfb, 0xaa, 0x8e, 0x89, 0xd2, 0x1d, 0xb4, 0x48, 0xc7, 0xd0, 0xbb, 0x76, 0xa5, 0x70, 0x47, 0xba, - 0x57, 0x6c, 0x2c, 0x09, 0x80, 0xd9, 0xed, 0x28, 0x19, 0xc7, 0xf9, 0xd1, 0xb7, 0x01, 0x79, 0xdd, - 0x78, 0xec, 0x66, 0x02, 0xd5, 0xd0, 0x2b, 0xc5, 0x3b, 0xd2, 0xbd, 0x7c, 0x63, 0x59, 0xa0, 0xa0, - 0x76, 0x82, 0x03, 0xa7, 0x48, 0xa1, 0x2d, 0xb8, 0x65, 0x91, 0x13, 0x95, 0xf5, 0xf1, 0x89, 0x6a, - 0x53, 0xc3, 0x1a, 0x6c, 0xa9, 0x7d, 0x95, 0x56, 0x26, 0xb8, 0x4d, 0x95, 0xf3, 0xb3, 0xea, 0x2d, - 0x9c, 0x42, 0xc7, 0xa9, 0x52, 0xf2, 0x4f, 0x8a, 0x30, 0x1b, 0x5b, 0x03, 0x68, 0x1f, 0x16, 0x3b, - 0x6e, 0xc0, 0xdc, 0x71, 0xfa, 0x07, 0xc4, 0x6a, 0x75, 0x8e, 0x48, 0xd7, 0xd1, 0x48, 0x97, 0x4f, - 0x94, 0x62, 0x63, 0x45, 0x58, 0xbc, 0xb8, 0x9e, 0xca, 0x85, 0x33, 0xa4, 0x99, 0x17, 0x74, 0xde, - 0xb4, 0xad, 0xda, 0xb6, 0x8f, 0x99, 0xe3, 0x98, 0xbe, 0x17, 0x76, 0x12, 0x1c, 0x38, 0x45, 0x8a, - 0xd9, 0xd8, 0x25, 0xb6, 0x6a, 0x91, 0x6e, 0xdc, 0xc6, 0x7c, 0xd4, 0xc6, 0x8d, 0x54, 0x2e, 0x9c, - 0x21, 0x8d, 0x1e, 0xc0, 0x94, 0xab, 0x8d, 0x8f, 0x9f, 0x18, 0x68, 0x3f, 0x44, 0xef, 0x04, 0x24, - 0x1c, 0xe6, 0x63, 0x5d, 0x33, 0x0e, 0x6c, 0x62, 0x9d, 0x90, 0x6e, 0xf6, 0x00, 0xef, 0x26, 0x38, - 0x70, 0x8a, 0x14, 0xeb, 0x9a, 0x3b, 0x03, 0x13, 0x5d, 0x9b, 0x88, 0x76, 0x6d, 0x2f, 0x95, 0x0b, - 0x67, 0x48, 0xb3, 0x79, 0xec, 0x9a, 0xbc, 0x76, 0xa2, 0xa8, 0x9a, 0x72, 0xa0, 0x91, 0x4a, 0x29, - 0x3a, 0x8f, 0x77, 0xa2, 0x64, 0x1c, 0xe7, 0x47, 0x8f, 0x61, 0xde, 0x6d, 0xda, 0xd3, 0x15, 0x1f, - 0xa4, 0xcc, 0x41, 0xbe, 0x26, 0x40, 0xe6, 0x77, 0xe2, 0x0c, 0x38, 0x29, 0x83, 0x3e, 0x86, 0x99, - 0x8e, 0xa1, 0x69, 0x7c, 0x3e, 0xae, 0x1b, 0x8e, 0x4e, 0x2b, 0x93, 0x1c, 0x05, 0xb1, 0xf5, 0xb8, - 0x1e, 0xa1, 0xe0, 0x18, 0xa7, 0xfc, 0xaf, 0x12, 0x2c, 0x65, 0xac, 0x69, 0xf4, 0x2d, 0x28, 0xd0, - 0x81, 0xe9, 0x65, 0xeb, 0xdf, 0xf4, 0x12, 0x44, 0x7b, 0x60, 0x92, 0x97, 0x67, 0xd5, 0xd7, 0x33, - 0xc4, 0x18, 0x19, 0x73, 0x41, 0xa4, 0xc3, 0xb4, 0xc5, 0xd4, 0xe9, 0x3d, 0x97, 0x45, 0x04, 0xaf, - 0x07, 0x43, 0x62, 0x0c, 0x0e, 0xcb, 0x04, 0xc1, 0x78, 0xfe, 0xfc, 0xac, 0x3a, 0x1d, 0xa1, 0xe1, - 0x28, 0xbc, 0xfc, 0x79, 0x0e, 0x60, 0x83, 0x98, 0x9a, 0x31, 0xe8, 0x13, 0xfd, 0x3a, 0x12, 0xee, - 0x6e, 0x24, 0xe1, 0xbe, 0x3b, 0x2c, 0x76, 0xfa, 0xa6, 0x65, 0x66, 0xdc, 0xef, 0xc4, 0x32, 0x6e, - 0x7d, 0x74, 0xc8, 0x8b, 0x53, 0xee, 0x7f, 0xe6, 0x61, 0x21, 0x60, 0x5e, 0x37, 0xf4, 0xae, 0xca, - 0xd7, 0xc7, 0x27, 0x91, 0x31, 0xfe, 0x8d, 0xd8, 0x18, 0x2f, 0xa5, 0x88, 0x84, 0xc6, 0x77, 0xcb, - 0xb7, 0x36, 0xc7, 0xc5, 0x3f, 0x88, 0x2a, 0x7f, 0x79, 0x56, 0x4d, 0xd9, 0xf3, 0xd4, 0x7c, 0xa4, - 0xa8, 0x89, 0xe8, 0x2e, 0x4c, 0x58, 0x44, 0xb1, 0x0d, 0x9d, 0x07, 0x8a, 0xc9, 0xa0, 0x2b, 0x98, - 0xb7, 0x62, 0x41, 0x45, 0x6f, 0x41, 0xa9, 0x4f, 0x6c, 0x5b, 0xe9, 0x11, 0x1e, 0x13, 0x26, 0x1b, - 0xb3, 0x82, 0xb1, 0xb4, 0xed, 0x36, 0x63, 0x8f, 0x8e, 0x9e, 0xc3, 0x8c, 0xa6, 0xd8, 0x62, 0x82, - 0xb6, 0xd5, 0x3e, 0xe1, 0xab, 0x7e, 0x6a, 0xf5, 0xed, 0xd1, 0xe6, 0x01, 0x93, 0x08, 0x32, 0xdb, - 0x56, 0x04, 0x09, 0xc7, 0x90, 0xd1, 0x09, 0x20, 0xd6, 0xd2, 0xb6, 0x14, 0xdd, 0x76, 0x1d, 0xc5, - 0xf4, 0x95, 0xc6, 0xd6, 0xe7, 0x47, 0xb8, 0xad, 0x04, 0x1a, 0x4e, 0xd1, 0x20, 0xff, 0x4c, 0x82, - 0x99, 0x60, 0x98, 0xae, 0xa1, 0x9a, 0xda, 0x89, 0x56, 0x53, 0x6f, 0x8d, 0x3c, 0x45, 0x33, 0xca, - 0xa9, 0xff, 0xc9, 0x01, 0x0a, 0x98, 0xd8, 0x02, 0x3f, 0x50, 0x3a, 0xc7, 0x23, 0xec, 0x15, 0x7e, - 0x24, 0x01, 0x12, 0xe1, 0x79, 0x4d, 0xd7, 0x0d, 0xca, 0x23, 0xbe, 0x67, 0xd6, 0xe6, 0xc8, 0x66, - 0x79, 0x1a, 0x6b, 0x7b, 0x09, 0xac, 0x87, 0x3a, 0xb5, 0x06, 0xc1, 0x88, 0x24, 0x19, 0x70, 0x8a, - 0x01, 0x48, 0x01, 0xb0, 0x04, 0x66, 0xdb, 0x10, 0x0b, 0xf9, 0xdd, 0x11, 0x62, 0x1e, 0x13, 0x58, - 0x37, 0xf4, 0x43, 0xb5, 0x17, 0x84, 0x1d, 0xec, 0x03, 0xe1, 0x10, 0xe8, 0xf2, 0x43, 0x58, 0xca, - 0xb0, 0x16, 0xcd, 0x41, 0xfe, 0x98, 0x0c, 0x5c, 0xb7, 0x61, 0xf6, 0x13, 0xdd, 0x0a, 0xef, 0xa9, - 0x26, 0xc5, 0x76, 0xe8, 0xe3, 0xdc, 0x47, 0x92, 0xfc, 0xd3, 0x62, 0x78, 0xee, 0xf0, 0x52, 0xf6, - 0x1e, 0x94, 0x2d, 0x62, 0x6a, 0x6a, 0x47, 0xb1, 0x45, 0x85, 0xc2, 0xab, 0x52, 0x2c, 0xda, 0xb0, - 0x4f, 0x8d, 0x14, 0xbd, 0xb9, 0xab, 0x2d, 0x7a, 0xf3, 0xaf, 0xa6, 0xe8, 0xfd, 0x03, 0x28, 0xdb, - 0x5e, 0xb9, 0x5b, 0xe0, 0x90, 0xf7, 0xc7, 0x88, 0xaf, 0xa2, 0xd2, 0xf5, 0x15, 0xf8, 0x35, 0xae, - 0x0f, 0x9a, 0x56, 0xdd, 0x16, 0xc7, 0xac, 0x6e, 0x5f, 0x69, 0x45, 0xca, 0x62, 0xaa, 0xa9, 0x38, - 0x36, 0xe9, 0xf2, 0x40, 0x54, 0x0e, 0x62, 0x6a, 0x93, 0xb7, 0x62, 0x41, 0x45, 0xcf, 0x22, 0x53, - 0xb6, 0x7c, 0x99, 0x29, 0x3b, 0x93, 0x3d, 0x5d, 0xd1, 0x1e, 0x2c, 0x99, 0x96, 0xd1, 0xb3, 0x88, - 0x6d, 0x6f, 0x10, 0xa5, 0xab, 0xa9, 0x3a, 0xf1, 0xfc, 0xe3, 0x96, 0x2a, 0xaf, 0x9f, 0x9f, 0x55, - 0x97, 0x9a, 0xe9, 0x2c, 0x38, 0x4b, 0x56, 0x7e, 0x51, 0x80, 0xb9, 0x78, 0x06, 0xcc, 0xa8, 0x1e, - 0xa5, 0x4b, 0x55, 0x8f, 0xef, 0x84, 0x16, 0x83, 0x5b, 0x5a, 0xfb, 0xa3, 0x9f, 0xb2, 0x20, 0xd6, - 0x60, 0x56, 0x44, 0x03, 0x8f, 0x28, 0xea, 0x67, 0x7f, 0xf4, 0xf7, 0xa2, 0x64, 0x1c, 0xe7, 0x67, - 0x35, 0x61, 0x50, 0xea, 0x79, 0x20, 0x85, 0x68, 0x4d, 0xb8, 0x16, 0x67, 0xc0, 0x49, 0x19, 0xb4, - 0x0d, 0x0b, 0x8e, 0x9e, 0x84, 0x72, 0x67, 0xe3, 0xeb, 0x02, 0x6a, 0x61, 0x2f, 0xc9, 0x82, 0xd3, - 0xe4, 0xd0, 0x21, 0x40, 0xc7, 0x4b, 0xdb, 0x76, 0x65, 0x82, 0x47, 0xd8, 0xd5, 0x91, 0xd7, 0x8e, - 0x9f, 0xf1, 0x83, 0xb8, 0xe6, 0x37, 0xd9, 0x38, 0x84, 0x8c, 0x3e, 0x81, 0x69, 0x8b, 0x6f, 0x08, - 0x3c, 0x83, 0xdd, 0xa2, 0xfa, 0x35, 0x21, 0x36, 0x8d, 0xc3, 0x44, 0x1c, 0xe5, 0x4d, 0xa9, 0x83, - 0xcb, 0x23, 0xd7, 0xc1, 0xff, 0x2c, 0x85, 0x93, 0x90, 0x5f, 0x02, 0x7f, 0x1c, 0x29, 0x8f, 0xee, - 0xc6, 0xca, 0xa3, 0xc5, 0xa4, 0x44, 0xa8, 0x3a, 0x32, 0xd2, 0xab, 0xdf, 0x0f, 0xc7, 0xaa, 0x7e, - 0x83, 0xe4, 0x39, 0xbc, 0xfc, 0xfd, 0xb1, 0x04, 0x8b, 0x8f, 0x5a, 0x8f, 0x2d, 0xc3, 0x31, 0x3d, - 0x73, 0x76, 0x4d, 0xd7, 0xaf, 0xdf, 0x80, 0x82, 0xe5, 0x68, 0x5e, 0x3f, 0xde, 0xf4, 0xfa, 0x81, - 0x1d, 0x8d, 0xf5, 0x63, 0x21, 0x26, 0xe5, 0x76, 0x82, 0x09, 0xa0, 0x1d, 0x98, 0xb0, 0x14, 0xbd, - 0x47, 0xbc, 0xb4, 0x7a, 0x77, 0x88, 0xf5, 0x9b, 0x1b, 0x98, 0xb1, 0x87, 0x8a, 0x37, 0x2e, 0x8d, - 0x05, 0x8a, 0xfc, 0x67, 0x12, 0xcc, 0x3e, 0x69, 0xb7, 0x9b, 0x9b, 0x3a, 0x5f, 0xd1, 0xfc, 0xf0, - 0xf5, 0x0e, 0x14, 0x4c, 0x85, 0x1e, 0xc5, 0x33, 0x3d, 0xa3, 0x61, 0x4e, 0x41, 0xdf, 0x85, 0x12, - 0x8b, 0x24, 0x44, 0xef, 0x8e, 0x58, 0x6a, 0x0b, 0xf8, 0x86, 0x2b, 0x14, 0x54, 0x88, 0xa2, 0x01, - 0x7b, 0x70, 0xf2, 0x31, 0xdc, 0x0a, 0x99, 0xc3, 0xfc, 0xc1, 0xcf, 0x0c, 0x51, 0x0b, 0x8a, 0x4c, - 0xb3, 0x77, 0x24, 0x38, 0xec, 0xe4, 0x2b, 0xd6, 0xa5, 0xa0, 0xd2, 0x61, 0x5f, 0x36, 0x76, 0xb1, - 0xe4, 0x6d, 0x98, 0xe6, 0x27, 0xce, 0x86, 0x45, 0xb9, 0x5b, 0xd0, 0x6d, 0xc8, 0xf7, 0x55, 0x5d, - 0xe4, 0xd9, 0x29, 0x21, 0x93, 0x67, 0x39, 0x82, 0xb5, 0x73, 0xb2, 0x72, 0x2a, 0x22, 0x4f, 0x40, - 0x56, 0x4e, 0x31, 0x6b, 0x97, 0x1f, 0x43, 0x49, 0xb8, 0x3b, 0x0c, 0x94, 0xbf, 0x18, 0x28, 0x9f, - 0x02, 0xb4, 0x0b, 0xa5, 0xcd, 0x66, 0x43, 0x33, 0xdc, 0xaa, 0xab, 0xa3, 0x76, 0xad, 0xf8, 0x58, - 0xac, 0x6f, 0x6e, 0x60, 0xcc, 0x29, 0x48, 0x86, 0x09, 0x72, 0xda, 0x21, 0x26, 0xe5, 0x33, 0x62, - 0xb2, 0x01, 0x6c, 0x94, 0x1f, 0xf2, 0x16, 0x2c, 0x28, 0xf2, 0x9f, 0xe7, 0xa0, 0x24, 0xdc, 0x71, - 0x0d, 0xbb, 0xb0, 0xad, 0xc8, 0x2e, 0xec, 0xed, 0xd1, 0xa6, 0x46, 0xe6, 0x16, 0xac, 0x1d, 0xdb, - 0x82, 0xbd, 0x33, 0x22, 0xde, 0xc5, 0xfb, 0xaf, 0x9f, 0x48, 0x30, 0x13, 0x9d, 0x94, 0xe8, 0x01, - 0x4c, 0xb1, 0x84, 0xa3, 0x76, 0xc8, 0x4e, 0x50, 0xe7, 0xfa, 0xa7, 0x23, 0xad, 0x80, 0x84, 0xc3, - 0x7c, 0xa8, 0xe7, 0x8b, 0xb1, 0x79, 0x24, 0x3a, 0x9d, 0xed, 0x52, 0x87, 0xaa, 0x5a, 0xcd, 0xbd, - 0x38, 0xa9, 0x6d, 0xea, 0x74, 0xd7, 0x6a, 0x51, 0x4b, 0xd5, 0x7b, 0x09, 0x45, 0x7c, 0x52, 0x86, - 0x91, 0xe5, 0x7f, 0x92, 0x60, 0x4a, 0x98, 0x7c, 0x0d, 0xbb, 0x8a, 0xdf, 0x8d, 0xee, 0x2a, 0xee, - 0x8e, 0xb8, 0xc0, 0xd3, 0xb7, 0x14, 0x7f, 0x1b, 0x98, 0xce, 0x96, 0x34, 0x9b, 0xd5, 0x47, 0x86, - 0x4d, 0xe3, 0xb3, 0x9a, 0x2d, 0x46, 0xcc, 0x29, 0xc8, 0x81, 0x39, 0x35, 0x16, 0x03, 0x84, 0x6b, - 0xeb, 0xa3, 0x59, 0xe2, 0x8b, 0x35, 0x2a, 0x02, 0x7e, 0x2e, 0x4e, 0xc1, 0x09, 0x15, 0x32, 0x81, - 0x04, 0x17, 0xfa, 0x14, 0x0a, 0x47, 0x94, 0x9a, 0x29, 0x07, 0xc9, 0x43, 0x22, 0x4f, 0x60, 0x42, - 0x99, 0xf7, 0xae, 0xdd, 0x6e, 0x62, 0x0e, 0x25, 0xff, 0x6f, 0xe0, 0x8f, 0x96, 0x3b, 0xc7, 0xfd, - 0x78, 0x2a, 0x5d, 0x26, 0x9e, 0x4e, 0xa5, 0xc5, 0x52, 0xf4, 0x04, 0xf2, 0x54, 0x1b, 0x75, 0x5b, - 0x28, 0x10, 0xdb, 0x5b, 0xad, 0x20, 0x20, 0xb5, 0xb7, 0x5a, 0x98, 0x41, 0xa0, 0x5d, 0x28, 0xb2, - 0xec, 0xc3, 0x96, 0x60, 0x7e, 0xf4, 0x25, 0xcd, 0xfa, 0x1f, 0x4c, 0x08, 0xf6, 0x65, 0x63, 0x17, - 0x47, 0xfe, 0x3e, 0x4c, 0x47, 0xd6, 0x29, 0xfa, 0x0c, 0x6e, 0x6a, 0x86, 0xd2, 0x6d, 0x28, 0x9a, - 0xa2, 0x77, 0x88, 0x77, 0x6a, 0x7f, 0x37, 0x6d, 0x87, 0xb1, 0x15, 0xe2, 0x13, 0xab, 0xdc, 0xbf, - 0x7b, 0x0b, 0xd3, 0x70, 0x04, 0x51, 0x56, 0x00, 0x82, 0x3e, 0xa2, 0x2a, 0x14, 0xd9, 0x3c, 0x73, - 0xf3, 0xc9, 0x64, 0x63, 0x92, 0x59, 0xc8, 0xa6, 0x9f, 0x8d, 0xdd, 0x76, 0xb4, 0x0a, 0x60, 0x93, - 0x8e, 0x45, 0x28, 0x0f, 0x06, 0xb9, 0xe8, 0x0d, 0x64, 0xcb, 0xa7, 0xe0, 0x10, 0x97, 0xfc, 0x2f, - 0x12, 0x4c, 0xef, 0x10, 0xfa, 0x03, 0xc3, 0x3a, 0x6e, 0xf2, 0xcb, 0xe2, 0x6b, 0x08, 0xb6, 0x38, - 0x12, 0x6c, 0xdf, 0x1b, 0x32, 0x32, 0x11, 0xeb, 0xb2, 0x42, 0xae, 0xfc, 0x33, 0x09, 0x96, 0x22, - 0x9c, 0x0f, 0x83, 0xa5, 0xbb, 0x07, 0x45, 0xd3, 0xb0, 0xa8, 0x97, 0x88, 0xc7, 0x52, 0xc8, 0xc2, - 0x58, 0x28, 0x15, 0x33, 0x18, 0xec, 0xa2, 0xa1, 0x2d, 0xc8, 0x51, 0x43, 0x4c, 0xd5, 0xf1, 0x30, - 0x09, 0xb1, 0x1a, 0x20, 0x30, 0x73, 0x6d, 0x03, 0xe7, 0xa8, 0xc1, 0x06, 0xa2, 0x12, 0xe1, 0x0a, - 0x07, 0x9f, 0x2b, 0xea, 0x01, 0x86, 0xc2, 0xa1, 0x65, 0xf4, 0x2f, 0xdd, 0x07, 0x7f, 0x20, 0x1e, - 0x59, 0x46, 0x1f, 0x73, 0x2c, 0xf9, 0xe7, 0x12, 0xcc, 0x47, 0x38, 0xaf, 0x21, 0xf0, 0x7f, 0x1a, - 0x0d, 0xfc, 0xef, 0x8c, 0xd3, 0x91, 0x8c, 0xf0, 0xff, 0xf3, 0x5c, 0xac, 0x1b, 0xac, 0xc3, 0xe8, - 0x10, 0xa6, 0x4c, 0xa3, 0xdb, 0x7a, 0x05, 0xf7, 0x74, 0xb3, 0x2c, 0x6f, 0x36, 0x03, 0x2c, 0x1c, - 0x06, 0x46, 0xa7, 0x30, 0xaf, 0x2b, 0x7d, 0x62, 0x9b, 0x4a, 0x87, 0xb4, 0x5e, 0xc1, 0x01, 0xc9, - 0x6b, 0xfc, 0x22, 0x20, 0x8e, 0x88, 0x93, 0x4a, 0xd0, 0x36, 0x94, 0x54, 0x93, 0xd7, 0x71, 0xa2, - 0x76, 0x19, 0x9a, 0x45, 0xdd, 0xaa, 0xcf, 0x8d, 0xe7, 0xe2, 0x03, 0x7b, 0x18, 0xf2, 0xdf, 0xc5, - 0x67, 0x03, 0x9b, 0x7f, 0xe8, 0x31, 0x94, 0xf9, 0xb3, 0x8b, 0x8e, 0xa1, 0x79, 0x37, 0x03, 0x6c, - 0x64, 0x9b, 0xa2, 0xed, 0xe5, 0x59, 0xf5, 0xf5, 0x94, 0x43, 0x5f, 0x8f, 0x8c, 0x7d, 0x61, 0xb4, - 0x03, 0x05, 0xf3, 0xab, 0x54, 0x30, 0x3c, 0xc9, 0xf1, 0xb2, 0x85, 0xe3, 0xc8, 0x7f, 0x9c, 0x8f, - 0x99, 0xcb, 0x53, 0xdd, 0xf3, 0x57, 0x36, 0xea, 0x7e, 0xc5, 0x94, 0x39, 0xf2, 0x07, 0x50, 0x12, - 0x19, 0x5e, 0x4c, 0xe6, 0x6f, 0x8c, 0x33, 0x99, 0xc3, 0x59, 0xcc, 0xdf, 0xb0, 0x78, 0x8d, 0x1e, - 0x30, 0xfa, 0x1e, 0x4c, 0x10, 0x57, 0x85, 0x9b, 0x1b, 0x3f, 0x1c, 0x47, 0x45, 0x10, 0x57, 0x83, - 0x42, 0x55, 0xb4, 0x09, 0x54, 0xf4, 0x2d, 0xe6, 0x2f, 0xc6, 0xcb, 0x36, 0x81, 0x76, 0xa5, 0xc0, - 0xd3, 0xd5, 0x6d, 0xb7, 0xdb, 0x7e, 0xf3, 0xcb, 0xb3, 0x2a, 0x04, 0x9f, 0x38, 0x2c, 0x21, 0xff, - 0x9b, 0x04, 0xf3, 0xdc, 0x43, 0x1d, 0xc7, 0x52, 0xe9, 0xe0, 0xda, 0x12, 0xd3, 0x7e, 0x24, 0x31, - 0x7d, 0x30, 0xc4, 0x2d, 0x09, 0x0b, 0x33, 0x93, 0xd3, 0x2f, 0x24, 0x78, 0x2d, 0xc1, 0x7d, 0x0d, - 0x71, 0x71, 0x2f, 0x1a, 0x17, 0xdf, 0x1b, 0xb7, 0x43, 0x19, 0xb1, 0xf1, 0xf3, 0x9b, 0x29, 0xdd, - 0xe1, 0x2b, 0x65, 0x15, 0xc0, 0xb4, 0xd4, 0x13, 0x55, 0x23, 0x3d, 0x71, 0x3b, 0x5d, 0x0e, 0xbd, - 0x81, 0xf2, 0x29, 0x38, 0xc4, 0x85, 0x6c, 0x58, 0xec, 0x92, 0x43, 0xc5, 0xd1, 0xe8, 0x5a, 0xb7, - 0xbb, 0xae, 0x98, 0xca, 0x81, 0xaa, 0xa9, 0x54, 0x15, 0xc7, 0x05, 0x93, 0x8d, 0x4f, 0xdc, 0x5b, - 0xe3, 0x34, 0x8e, 0x97, 0x67, 0xd5, 0xdb, 0x69, 0xb7, 0x43, 0x1e, 0xcb, 0x00, 0x67, 0x40, 0xa3, - 0x01, 0x54, 0x2c, 0xf2, 0x7d, 0x47, 0xb5, 0x48, 0x77, 0xc3, 0x32, 0xcc, 0x88, 0xda, 0x3c, 0x57, - 0xfb, 0xdb, 0xe7, 0x67, 0xd5, 0x0a, 0xce, 0xe0, 0x19, 0xae, 0x38, 0x13, 0x1e, 0x3d, 0x87, 0x05, - 0xc5, 0x7d, 0x3a, 0x16, 0xd1, 0xea, 0xae, 0x92, 0x8f, 0xce, 0xcf, 0xaa, 0x0b, 0x6b, 0x49, 0xf2, - 0x70, 0x85, 0x69, 0xa0, 0xa8, 0x0e, 0xa5, 0x13, 0x43, 0x73, 0xfa, 0xc4, 0xae, 0x14, 0x39, 0x3e, - 0x4b, 0x04, 0xa5, 0x7d, 0xb7, 0xe9, 0xe5, 0x59, 0x75, 0xe2, 0x51, 0x8b, 0xaf, 0x3e, 0x8f, 0x8b, - 0x6d, 0x28, 0x59, 0x2d, 0x29, 0x56, 0x3c, 0x3f, 0x31, 0x2e, 0x07, 0x51, 0xeb, 0x49, 0x40, 0xc2, - 0x61, 0x3e, 0xf4, 0x0c, 0x26, 0x8f, 0xc4, 0xa9, 0x84, 0x5d, 0x29, 0x8d, 0x94, 0x84, 0x23, 0xa7, - 0x18, 0x8d, 0x79, 0xa1, 0x62, 0xd2, 0x6b, 0xb6, 0x71, 0x80, 0x88, 0xde, 0x82, 0x12, 0xff, 0xd8, - 0xdc, 0xe0, 0xc7, 0x71, 0xe5, 0x20, 0xb6, 0x3d, 0x71, 0x9b, 0xb1, 0x47, 0xf7, 0x58, 0x37, 0x9b, - 0xeb, 0xfc, 0x58, 0x38, 0xc6, 0xba, 0xd9, 0x5c, 0xc7, 0x1e, 0x1d, 0x7d, 0x06, 0x25, 0x9b, 0x6c, - 0xa9, 0xba, 0x73, 0x5a, 0x81, 0x91, 0x2e, 0x95, 0x5b, 0x0f, 0x39, 0x77, 0xec, 0x60, 0x2c, 0xd0, - 0x20, 0xe8, 0xd8, 0x83, 0x45, 0x47, 0x30, 0x69, 0x39, 0xfa, 0x9a, 0xbd, 0x67, 0x13, 0xab, 0x32, - 0xc5, 0x75, 0x0c, 0x0b, 0xe7, 0xd8, 0xe3, 0x8f, 0x6b, 0xf1, 0x3d, 0xe4, 0x73, 0xe0, 0x00, 0x1c, - 0xfd, 0xa9, 0x04, 0xc8, 0x76, 0x4c, 0x53, 0x23, 0x7d, 0xa2, 0x53, 0x45, 0xe3, 0x67, 0x71, 0x76, - 0xe5, 0x26, 0xd7, 0xf9, 0x3b, 0xc3, 0xfa, 0x95, 0x10, 0x8c, 0x2b, 0xf7, 0x0f, 0xbd, 0x93, 0xac, - 0x38, 0x45, 0x2f, 0x73, 0xed, 0xa1, 0xcd, 0x7f, 0x57, 0xa6, 0x47, 0x72, 0x6d, 0xfa, 0x99, 0x63, - 0xe0, 0x5a, 0x41, 0xc7, 0x1e, 0x2c, 0xda, 0x87, 0x45, 0x8b, 0x28, 0xdd, 0x5d, 0x5d, 0x1b, 0x60, - 0xc3, 0xa0, 0x8f, 0x54, 0x8d, 0xd8, 0x03, 0x9b, 0x92, 0x7e, 0x65, 0x86, 0x0f, 0xbb, 0xff, 0x28, - 0x03, 0xa7, 0x72, 0xe1, 0x0c, 0x69, 0xd4, 0x87, 0xaa, 0x17, 0x32, 0xd8, 0x7a, 0xf2, 0x63, 0xd6, - 0x43, 0xbb, 0xa3, 0x68, 0xee, 0x3d, 0xc0, 0x2c, 0x57, 0xf0, 0xe6, 0xf9, 0x59, 0xb5, 0xba, 0x71, - 0x31, 0x2b, 0x1e, 0x86, 0x85, 0xbe, 0x0b, 0x15, 0x25, 0x4b, 0xcf, 0x1c, 0xd7, 0xf3, 0x06, 0x8b, - 0x43, 0x99, 0x0a, 0x32, 0xa5, 0x11, 0x85, 0x39, 0x25, 0xfa, 0x42, 0xd5, 0xae, 0xcc, 0x8f, 0x74, - 0x10, 0x19, 0x7b, 0xd8, 0x1a, 0x1c, 0x46, 0xc4, 0x08, 0x36, 0x4e, 0x68, 0xe0, 0xcf, 0x27, 0xc4, - 0x61, 0xfa, 0xf5, 0xbc, 0x57, 0x1c, 0xef, 0xf9, 0x44, 0x60, 0xda, 0x2b, 0x7b, 0x3e, 0x11, 0x82, - 0xbc, 0xf8, 0xf8, 0xee, 0xbf, 0x73, 0xb0, 0x10, 0x30, 0x8f, 0xfc, 0x7c, 0x22, 0x45, 0xe4, 0xca, - 0x9e, 0x4f, 0xa4, 0xbf, 0x3f, 0xc8, 0x5f, 0xf5, 0xfb, 0x83, 0x2b, 0x78, 0xb6, 0xc1, 0x9f, 0x34, - 0x04, 0xae, 0xfb, 0xff, 0xf7, 0xa4, 0x21, 0xb0, 0x2d, 0xa3, 0xc8, 0xfa, 0x87, 0x5c, 0xb8, 0x03, - 0xbf, 0xf6, 0xf7, 0xea, 0x5f, 0xfd, 0x51, 0xa7, 0xfc, 0x8b, 0x3c, 0xcc, 0xc5, 0x57, 0x63, 0xe4, - 0xfa, 0x55, 0x1a, 0x7a, 0xfd, 0xda, 0x84, 0x5b, 0x87, 0x8e, 0xa6, 0x0d, 0xb8, 0x1b, 0x42, 0x77, - 0xb0, 0xee, 0xf5, 0xc9, 0x1b, 0x42, 0xf2, 0xd6, 0xa3, 0x14, 0x1e, 0x9c, 0x2a, 0x99, 0x71, 0x95, - 0x9c, 0xbf, 0xd4, 0x55, 0x72, 0xe2, 0x66, 0xb3, 0x30, 0xc6, 0xcd, 0x66, 0xea, 0xb5, 0x70, 0xf1, - 0x12, 0xd7, 0xc2, 0x97, 0xb9, 0xc7, 0x4d, 0x09, 0x62, 0xc3, 0xee, 0x71, 0xe5, 0x37, 0x60, 0x59, - 0x88, 0x51, 0x7e, 0xc5, 0xaa, 0x53, 0xcb, 0xd0, 0x34, 0x62, 0x6d, 0x38, 0xfd, 0xfe, 0x40, 0xfe, - 0x26, 0xcc, 0x44, 0x1f, 0x0f, 0xb8, 0x23, 0xed, 0xbe, 0x5f, 0x10, 0x97, 0x58, 0xa1, 0x91, 0x76, - 0xdb, 0xb1, 0xcf, 0x21, 0xff, 0x50, 0x82, 0xc5, 0xf4, 0x47, 0x82, 0x48, 0x83, 0x99, 0xbe, 0x72, - 0x1a, 0x7e, 0x51, 0x29, 0x5d, 0xf2, 0x78, 0x81, 0xdf, 0x1a, 0x6f, 0x47, 0xb0, 0x70, 0x0c, 0x5b, - 0xfe, 0x52, 0x82, 0xa5, 0x8c, 0xfb, 0xda, 0xeb, 0xb5, 0x04, 0x3d, 0x85, 0x72, 0x5f, 0x39, 0x6d, - 0x39, 0x56, 0x8f, 0x5c, 0xfa, 0x40, 0x85, 0x47, 0x8c, 0x6d, 0x81, 0x82, 0x7d, 0x3c, 0xf9, 0xc7, - 0x12, 0x54, 0xb2, 0x4a, 0x5b, 0xf4, 0x20, 0x72, 0xb3, 0xfc, 0xf5, 0xd8, 0xcd, 0xf2, 0x7c, 0x42, - 0xee, 0x8a, 0xee, 0x95, 0xff, 0x5e, 0x82, 0xc5, 0xf4, 0x12, 0x1f, 0xbd, 0x1f, 0xb1, 0xb0, 0x1a, - 0xb3, 0x70, 0x36, 0x26, 0x25, 0xec, 0xfb, 0x1e, 0xcc, 0x88, 0x8d, 0x80, 0x80, 0x11, 0x5e, 0x95, - 0xd3, 0x62, 0xa5, 0x80, 0xf0, 0x0a, 0x5f, 0x3e, 0x5e, 0xd1, 0x36, 0x1c, 0x43, 0x93, 0xff, 0x24, - 0x07, 0xc5, 0x56, 0x47, 0xd1, 0xc8, 0x35, 0x94, 0x59, 0xdf, 0x8e, 0x94, 0x59, 0xc3, 0xfe, 0xfd, - 0xc0, 0xad, 0xca, 0xac, 0xb0, 0x70, 0xac, 0xc2, 0x7a, 0x7b, 0x24, 0xb4, 0x8b, 0x8b, 0xab, 0xdf, - 0x82, 0x49, 0x5f, 0xe9, 0x78, 0x31, 0x5f, 0xfe, 0x9b, 0x1c, 0x4c, 0x85, 0x54, 0x8c, 0x99, 0x31, - 0x0e, 0x23, 0x99, 0x76, 0x94, 0xff, 0x41, 0x85, 0x74, 0xd5, 0xbc, 0xdc, 0xea, 0x3e, 0x12, 0x0c, - 0x9e, 0x85, 0x25, 0x53, 0xee, 0x37, 0x61, 0x86, 0xf2, 0xff, 0x09, 0xf9, 0xc7, 0x90, 0x79, 0x3e, - 0x17, 0xfd, 0xa7, 0xa5, 0xed, 0x08, 0x15, 0xc7, 0xb8, 0x97, 0x3f, 0x81, 0xe9, 0x88, 0xb2, 0xb1, - 0xde, 0xf8, 0xfd, 0xa3, 0x04, 0x5f, 0x1f, 0xba, 0x49, 0x44, 0x8d, 0xc8, 0x22, 0xa9, 0xc5, 0x16, - 0xc9, 0x4a, 0x36, 0xc0, 0x15, 0xbe, 0x15, 0xf9, 0x61, 0x0e, 0x50, 0xfb, 0x48, 0xb5, 0xba, 0x4d, - 0xc5, 0xa2, 0x03, 0x2c, 0xfe, 0xec, 0x75, 0x0d, 0x0b, 0xe6, 0x01, 0x4c, 0x75, 0x89, 0xdd, 0xb1, - 0x54, 0xee, 0x1c, 0x51, 0x9d, 0xfb, 0x07, 0x29, 0x1b, 0x01, 0x09, 0x87, 0xf9, 0xd0, 0x77, 0xa0, - 0x7c, 0xe2, 0xfe, 0x09, 0xd1, 0x3b, 0x9c, 0x1d, 0x56, 0x48, 0x06, 0x7f, 0x5b, 0x0c, 0xe6, 0x8f, - 0x68, 0xb0, 0xb1, 0x0f, 0x26, 0x7f, 0x2e, 0xc1, 0x62, 0xd2, 0x11, 0x1b, 0xcc, 0xd4, 0xab, 0x77, - 0xc6, 0x1b, 0x50, 0xe0, 0xe8, 0xcc, 0x0b, 0x37, 0xdd, 0x43, 0x77, 0xa6, 0x19, 0xf3, 0x56, 0xf9, - 0x3f, 0x24, 0x58, 0x4e, 0x37, 0xed, 0x1a, 0xca, 0xf6, 0xa7, 0xd1, 0xb2, 0x7d, 0xd8, 0x39, 0x45, - 0xba, 0x9d, 0x19, 0x25, 0xfc, 0xbf, 0xa7, 0xfa, 0xfc, 0x1a, 0x3a, 0xb5, 0x1f, 0xed, 0xd4, 0xfd, - 0xb1, 0x3b, 0x95, 0xde, 0xa1, 0xc6, 0xbb, 0x2f, 0xbe, 0x58, 0xb9, 0xf1, 0xcb, 0x2f, 0x56, 0x6e, - 0xfc, 0xea, 0x8b, 0x95, 0x1b, 0x7f, 0x74, 0xbe, 0x22, 0xbd, 0x38, 0x5f, 0x91, 0x7e, 0x79, 0xbe, - 0x22, 0xfd, 0xea, 0x7c, 0x45, 0xfa, 0xaf, 0xf3, 0x15, 0xe9, 0x2f, 0xbe, 0x5c, 0xb9, 0xf1, 0xb4, - 0x24, 0x70, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x55, 0xc4, 0x0b, 0x53, 0x44, 0x3d, 0x00, 0x00, + // 3523 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, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/generated.proto index a6fe9dd72..f6898bce6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/generated.proto @@ -32,13 +32,6 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; -// An APIVersion represents a single concrete version of an object model. -message APIVersion { - // Name of this version (e.g. 'v1'). - // +optional - optional string name = 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 { @@ -100,6 +93,27 @@ message DaemonSet { optional DaemonSetStatus status = 3; } +// DaemonSetCondition describes the state of a DaemonSet at a certain point. +message DaemonSetCondition { + // Type of DaemonSet condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // Last time the condition transitioned from one status to another. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // The reason for the condition's last transition. + // +optional + optional string reason = 4; + + // A human readable message indicating details about the transition. + // +optional + optional string message = 5; +} + // DaemonSetList is a collection of daemon sets. message DaemonSetList { // Standard list metadata. @@ -197,6 +211,12 @@ message DaemonSetStatus { // create the name for the newest ControllerRevision. // +optional optional int32 collisionCount = 9; + + // Represents the latest available observations of a DaemonSet's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated DaemonSetCondition conditions = 10; } message DaemonSetUpdateStrategy { @@ -752,8 +772,9 @@ message PodSecurityPolicySpec { optional bool privileged = 1; // DefaultAddCapabilities is the default set of capabilities that will be added to the container - // unless the pod spec specifically drops the capability. You may not list a capabiility in both - // DefaultAddCapabilities and RequiredDropCapabilities. + // unless the pod spec specifically drops the capability. You may not list a capability in both + // DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly + // allowed, and need not be included in the AllowedCapabilities list. // +optional repeated string defaultAddCapabilities = 2; @@ -1016,7 +1037,7 @@ message SELinuxStrategyOptions { optional string rule = 1; // seLinuxOptions required to run as; required for MustRunAs - // More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional optional k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 2; } @@ -1074,51 +1095,3 @@ message SupplementalGroupsStrategyOptions { repeated IDRange ranges = 2; } -// A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource -// types to the API. It consists of one or more Versions of the api. -message ThirdPartyResource { - // Standard object metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Description is the description of this object. - // +optional - optional string description = 2; - - // Versions are versions for this third party object - // +optional - repeated APIVersion versions = 3; -} - -// An internal object, used for versioned storage in etcd. Not exposed to the end user. -message ThirdPartyResourceData { - // Standard object metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Data is the raw JSON data for this data. - // +optional - optional bytes data = 2; -} - -// ThirdPartyResrouceDataList is a list of ThirdPartyResourceData. -message ThirdPartyResourceDataList { - // 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 the list of ThirdpartyResourceData. - repeated ThirdPartyResourceData items = 2; -} - -// ThirdPartyResourceList is a list of ThirdPartyResources. -message ThirdPartyResourceList { - // Standard list metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of ThirdPartyResources. - repeated ThirdPartyResource items = 2; -} - diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/register.go index 626701cf0..7625f6781 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Deployment{}, @@ -49,12 +49,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { &DeploymentRollback{}, &ReplicationControllerDummy{}, &Scale{}, - &ThirdPartyResource{}, - &ThirdPartyResourceList{}, &DaemonSetList{}, &DaemonSet{}, - &ThirdPartyResourceData{}, - &ThirdPartyResourceDataList{}, &Ingress{}, &IngressList{}, &ReplicaSet{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/types.go index 4993d6398..d4ca1832c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/types.go @@ -100,63 +100,6 @@ type CustomMetricCurrentStatusList struct { Items []CustomMetricCurrentStatus `json:"items" protobuf:"bytes,1,rep,name=items"` } -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource -// types to the API. It consists of one or more Versions of the api. -type ThirdPartyResource struct { - metav1.TypeMeta `json:",inline"` - - // Standard object metadata - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Description is the description of this object. - // +optional - Description string `json:"description,omitempty" protobuf:"bytes,2,opt,name=description"` - - // Versions are versions for this third party object - // +optional - Versions []APIVersion `json:"versions,omitempty" protobuf:"bytes,3,rep,name=versions"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ThirdPartyResourceList is a list of ThirdPartyResources. -type ThirdPartyResourceList struct { - metav1.TypeMeta `json:",inline"` - - // Standard list metadata. - // +optional - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of ThirdPartyResources. - Items []ThirdPartyResource `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// An APIVersion represents a single concrete version of an object model. -type APIVersion struct { - // Name of this version (e.g. 'v1'). - // +optional - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// An internal object, used for versioned storage in etcd. Not exposed to the end user. -type ThirdPartyResourceData struct { - metav1.TypeMeta `json:",inline"` - // Standard object metadata. - // +optional - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Data is the raw JSON data for this data. - // +optional - Data []byte `json:"data,omitempty" protobuf:"bytes,2,opt,name=data"` -} - // +genclient // +genclient:method=GetScale,verb=get,subresource=scale,result=Scale // +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale @@ -532,6 +475,33 @@ type DaemonSetStatus struct { // create the name for the newest ControllerRevision. // +optional CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` + + // Represents the latest available observations of a DaemonSet's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + Conditions []DaemonSetCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,10,rep,name=conditions"` +} + +type DaemonSetConditionType string + +// TODO: Add valid condition types of a DaemonSet. + +// DaemonSetCondition describes the state of a DaemonSet at a certain point. +type DaemonSetCondition struct { + // Type of DaemonSet condition. + Type DaemonSetConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=DaemonSetConditionType"` + // Status of the condition, one of True, False, Unknown. + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` + // Last time the condition transitioned from one status to another. + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // The reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // A human readable message indicating details about the transition. + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` } // +genclient @@ -588,20 +558,6 @@ type DaemonSetList struct { Items []DaemonSet `json:"items" protobuf:"bytes,2,rep,name=items"` } -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ThirdPartyResrouceDataList is a list of ThirdPartyResourceData. -type ThirdPartyResourceDataList 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 the list of ThirdpartyResourceData. - Items []ThirdPartyResourceData `json:"items" protobuf:"bytes,2,rep,name=items"` -} - // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -926,8 +882,9 @@ type PodSecurityPolicySpec struct { // +optional Privileged bool `json:"privileged,omitempty" protobuf:"varint,1,opt,name=privileged"` // DefaultAddCapabilities is the default set of capabilities that will be added to the container - // unless the pod spec specifically drops the capability. You may not list a capabiility in both - // DefaultAddCapabilities and RequiredDropCapabilities. + // unless the pod spec specifically drops the capability. You may not list a capability in both + // DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly + // allowed, and need not be included in the AllowedCapabilities list. // +optional DefaultAddCapabilities []v1.Capability `json:"defaultAddCapabilities,omitempty" protobuf:"bytes,2,rep,name=defaultAddCapabilities,casttype=k8s.io/api/core/v1.Capability"` // RequiredDropCapabilities are the capabilities that will be dropped from the container. These @@ -1038,7 +995,7 @@ type SELinuxStrategyOptions struct { // type is the strategy that will dictate the allowable labels that may be set. Rule SELinuxStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=SELinuxStrategy"` // seLinuxOptions required to run as; required for MustRunAs - // More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md + // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // +optional SELinuxOptions *v1.SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,2,opt,name=seLinuxOptions"` } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go index e722f925d..b98d11795 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go @@ -27,15 +27,6 @@ package v1beta1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE -var map_APIVersion = map[string]string{ - "": "An APIVersion represents a single concrete version of an object model.", - "name": "Name of this version (e.g. 'v1').", -} - -func (APIVersion) SwaggerDoc() map[string]string { - return map_APIVersion -} - 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`", @@ -75,6 +66,19 @@ func (DaemonSet) SwaggerDoc() map[string]string { return map_DaemonSet } +var map_DaemonSetCondition = map[string]string{ + "": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", + "type": "Type of DaemonSet condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "Last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (DaemonSetCondition) SwaggerDoc() map[string]string { + return map_DaemonSetCondition +} + var map_DaemonSetList = map[string]string{ "": "DaemonSetList is a collection of daemon sets.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -110,6 +114,7 @@ var map_DaemonSetStatus = map[string]string{ "numberAvailable": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", "numberUnavailable": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", "collisionCount": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "conditions": "Represents the latest available observations of a DaemonSet's current state.", } func (DaemonSetStatus) SwaggerDoc() map[string]string { @@ -444,7 +449,7 @@ func (PodSecurityPolicyList) SwaggerDoc() map[string]string { var map_PodSecurityPolicySpec = map[string]string{ "": "Pod Security Policy Spec defines the policy enforced.", "privileged": "privileged determines if a pod can request to be run as privileged.", - "defaultAddCapabilities": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capabiility in both DefaultAddCapabilities and RequiredDropCapabilities.", + "defaultAddCapabilities": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the AllowedCapabilities list.", "requiredDropCapabilities": "RequiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", "allowedCapabilities": "AllowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities.", "volumes": "volumes is a white list of allowed volume plugins. Empty indicates that all plugins may be used.", @@ -575,7 +580,7 @@ func (RunAsUserStrategyOptions) SwaggerDoc() map[string]string { var map_SELinuxStrategyOptions = map[string]string{ "": "SELinux Strategy Options defines the strategy type and any options used to create the strategy.", "rule": "type is the strategy that will dictate the allowable labels that may be set.", - "seLinuxOptions": "seLinuxOptions required to run as; required for MustRunAs More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md", + "seLinuxOptions": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", } func (SELinuxStrategyOptions) SwaggerDoc() map[string]string { @@ -623,45 +628,4 @@ func (SupplementalGroupsStrategyOptions) SwaggerDoc() map[string]string { return map_SupplementalGroupsStrategyOptions } -var map_ThirdPartyResource = map[string]string{ - "": "A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource types to the API. It consists of one or more Versions of the api.", - "metadata": "Standard object metadata", - "description": "Description is the description of this object.", - "versions": "Versions are versions for this third party object", -} - -func (ThirdPartyResource) SwaggerDoc() map[string]string { - return map_ThirdPartyResource -} - -var map_ThirdPartyResourceData = map[string]string{ - "": "An internal object, used for versioned storage in etcd. Not exposed to the end user.", - "metadata": "Standard object metadata.", - "data": "Data is the raw JSON data for this data.", -} - -func (ThirdPartyResourceData) SwaggerDoc() map[string]string { - return map_ThirdPartyResourceData -} - -var map_ThirdPartyResourceDataList = map[string]string{ - "": "ThirdPartyResrouceDataList is a list of ThirdPartyResourceData.", - "metadata": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "items": "Items is the list of ThirdpartyResourceData.", -} - -func (ThirdPartyResourceDataList) SwaggerDoc() map[string]string { - return map_ThirdPartyResourceDataList -} - -var map_ThirdPartyResourceList = map[string]string{ - "": "ThirdPartyResourceList is a list of ThirdPartyResources.", - "metadata": "Standard list metadata.", - "items": "Items is the list of ThirdPartyResources.", -} - -func (ThirdPartyResourceList) SwaggerDoc() map[string]string { - return map_ThirdPartyResourceList -} - // AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go index c173b3f41..0cc661def 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go @@ -23,285 +23,10 @@ package v1beta1 import ( core_v1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIVersion).DeepCopyInto(out.(*APIVersion)) - return nil - }, InType: reflect.TypeOf(&APIVersion{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AllowedHostPath).DeepCopyInto(out.(*AllowedHostPath)) - return nil - }, InType: reflect.TypeOf(&AllowedHostPath{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomMetricCurrentStatus).DeepCopyInto(out.(*CustomMetricCurrentStatus)) - return nil - }, InType: reflect.TypeOf(&CustomMetricCurrentStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomMetricCurrentStatusList).DeepCopyInto(out.(*CustomMetricCurrentStatusList)) - return nil - }, InType: reflect.TypeOf(&CustomMetricCurrentStatusList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomMetricTarget).DeepCopyInto(out.(*CustomMetricTarget)) - return nil - }, InType: reflect.TypeOf(&CustomMetricTarget{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomMetricTargetList).DeepCopyInto(out.(*CustomMetricTargetList)) - return nil - }, InType: reflect.TypeOf(&CustomMetricTargetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSet).DeepCopyInto(out.(*DaemonSet)) - return nil - }, InType: reflect.TypeOf(&DaemonSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetList).DeepCopyInto(out.(*DaemonSetList)) - return nil - }, InType: reflect.TypeOf(&DaemonSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetSpec).DeepCopyInto(out.(*DaemonSetSpec)) - return nil - }, InType: reflect.TypeOf(&DaemonSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetStatus).DeepCopyInto(out.(*DaemonSetStatus)) - return nil - }, InType: reflect.TypeOf(&DaemonSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetUpdateStrategy).DeepCopyInto(out.(*DaemonSetUpdateStrategy)) - return nil - }, InType: reflect.TypeOf(&DaemonSetUpdateStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Deployment).DeepCopyInto(out.(*Deployment)) - return nil - }, InType: reflect.TypeOf(&Deployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentCondition).DeepCopyInto(out.(*DeploymentCondition)) - return nil - }, InType: reflect.TypeOf(&DeploymentCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentList).DeepCopyInto(out.(*DeploymentList)) - return nil - }, InType: reflect.TypeOf(&DeploymentList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentRollback).DeepCopyInto(out.(*DeploymentRollback)) - return nil - }, InType: reflect.TypeOf(&DeploymentRollback{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentSpec).DeepCopyInto(out.(*DeploymentSpec)) - return nil - }, InType: reflect.TypeOf(&DeploymentSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStatus).DeepCopyInto(out.(*DeploymentStatus)) - return nil - }, InType: reflect.TypeOf(&DeploymentStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStrategy).DeepCopyInto(out.(*DeploymentStrategy)) - return nil - }, InType: reflect.TypeOf(&DeploymentStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FSGroupStrategyOptions).DeepCopyInto(out.(*FSGroupStrategyOptions)) - return nil - }, InType: reflect.TypeOf(&FSGroupStrategyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HTTPIngressPath).DeepCopyInto(out.(*HTTPIngressPath)) - return nil - }, InType: reflect.TypeOf(&HTTPIngressPath{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HTTPIngressRuleValue).DeepCopyInto(out.(*HTTPIngressRuleValue)) - return nil - }, InType: reflect.TypeOf(&HTTPIngressRuleValue{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*HostPortRange).DeepCopyInto(out.(*HostPortRange)) - return nil - }, InType: reflect.TypeOf(&HostPortRange{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IDRange).DeepCopyInto(out.(*IDRange)) - return nil - }, InType: reflect.TypeOf(&IDRange{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IPBlock).DeepCopyInto(out.(*IPBlock)) - return nil - }, InType: reflect.TypeOf(&IPBlock{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Ingress).DeepCopyInto(out.(*Ingress)) - return nil - }, InType: reflect.TypeOf(&Ingress{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressBackend).DeepCopyInto(out.(*IngressBackend)) - return nil - }, InType: reflect.TypeOf(&IngressBackend{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressList).DeepCopyInto(out.(*IngressList)) - return nil - }, InType: reflect.TypeOf(&IngressList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressRule).DeepCopyInto(out.(*IngressRule)) - return nil - }, InType: reflect.TypeOf(&IngressRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressRuleValue).DeepCopyInto(out.(*IngressRuleValue)) - return nil - }, InType: reflect.TypeOf(&IngressRuleValue{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressSpec).DeepCopyInto(out.(*IngressSpec)) - return nil - }, InType: reflect.TypeOf(&IngressSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressStatus).DeepCopyInto(out.(*IngressStatus)) - return nil - }, InType: reflect.TypeOf(&IngressStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IngressTLS).DeepCopyInto(out.(*IngressTLS)) - return nil - }, InType: reflect.TypeOf(&IngressTLS{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicy).DeepCopyInto(out.(*NetworkPolicy)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyEgressRule).DeepCopyInto(out.(*NetworkPolicyEgressRule)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyEgressRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyIngressRule).DeepCopyInto(out.(*NetworkPolicyIngressRule)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyIngressRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyList).DeepCopyInto(out.(*NetworkPolicyList)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyPeer).DeepCopyInto(out.(*NetworkPolicyPeer)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyPeer{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyPort).DeepCopyInto(out.(*NetworkPolicyPort)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyPort{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicySpec).DeepCopyInto(out.(*NetworkPolicySpec)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicySpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSecurityPolicy).DeepCopyInto(out.(*PodSecurityPolicy)) - return nil - }, InType: reflect.TypeOf(&PodSecurityPolicy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSecurityPolicyList).DeepCopyInto(out.(*PodSecurityPolicyList)) - return nil - }, InType: reflect.TypeOf(&PodSecurityPolicyList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSecurityPolicySpec).DeepCopyInto(out.(*PodSecurityPolicySpec)) - return nil - }, InType: reflect.TypeOf(&PodSecurityPolicySpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSet).DeepCopyInto(out.(*ReplicaSet)) - return nil - }, InType: reflect.TypeOf(&ReplicaSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetCondition).DeepCopyInto(out.(*ReplicaSetCondition)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetList).DeepCopyInto(out.(*ReplicaSetList)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetSpec).DeepCopyInto(out.(*ReplicaSetSpec)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetStatus).DeepCopyInto(out.(*ReplicaSetStatus)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicationControllerDummy).DeepCopyInto(out.(*ReplicationControllerDummy)) - return nil - }, InType: reflect.TypeOf(&ReplicationControllerDummy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollbackConfig).DeepCopyInto(out.(*RollbackConfig)) - return nil - }, InType: reflect.TypeOf(&RollbackConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDaemonSet).DeepCopyInto(out.(*RollingUpdateDaemonSet)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDaemonSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDeployment).DeepCopyInto(out.(*RollingUpdateDeployment)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDeployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RunAsUserStrategyOptions).DeepCopyInto(out.(*RunAsUserStrategyOptions)) - return nil - }, InType: reflect.TypeOf(&RunAsUserStrategyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SELinuxStrategyOptions).DeepCopyInto(out.(*SELinuxStrategyOptions)) - return nil - }, InType: reflect.TypeOf(&SELinuxStrategyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Scale).DeepCopyInto(out.(*Scale)) - return nil - }, InType: reflect.TypeOf(&Scale{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleSpec).DeepCopyInto(out.(*ScaleSpec)) - return nil - }, InType: reflect.TypeOf(&ScaleSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleStatus).DeepCopyInto(out.(*ScaleStatus)) - return nil - }, InType: reflect.TypeOf(&ScaleStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SupplementalGroupsStrategyOptions).DeepCopyInto(out.(*SupplementalGroupsStrategyOptions)) - return nil - }, InType: reflect.TypeOf(&SupplementalGroupsStrategyOptions{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ThirdPartyResource).DeepCopyInto(out.(*ThirdPartyResource)) - return nil - }, InType: reflect.TypeOf(&ThirdPartyResource{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ThirdPartyResourceData).DeepCopyInto(out.(*ThirdPartyResourceData)) - return nil - }, InType: reflect.TypeOf(&ThirdPartyResourceData{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ThirdPartyResourceDataList).DeepCopyInto(out.(*ThirdPartyResourceDataList)) - return nil - }, InType: reflect.TypeOf(&ThirdPartyResourceDataList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ThirdPartyResourceList).DeepCopyInto(out.(*ThirdPartyResourceList)) - return nil - }, InType: reflect.TypeOf(&ThirdPartyResourceList{})}, - ) -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *APIVersion) DeepCopyInto(out *APIVersion) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersion. -func (in *APIVersion) DeepCopy() *APIVersion { - if in == nil { - return nil - } - out := new(APIVersion) - 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 @@ -427,6 +152,23 @@ func (in *DaemonSet) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition. +func (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition { + if in == nil { + return nil + } + out := new(DaemonSetCondition) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) { *out = *in @@ -509,6 +251,13 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { **out = **in } } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DaemonSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } @@ -1831,135 +1580,3 @@ func (in *SupplementalGroupsStrategyOptions) DeepCopy() *SupplementalGroupsStrat in.DeepCopyInto(out) return out } - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ThirdPartyResource) DeepCopyInto(out *ThirdPartyResource) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Versions != nil { - in, out := &in.Versions, &out.Versions - *out = make([]APIVersion, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThirdPartyResource. -func (in *ThirdPartyResource) DeepCopy() *ThirdPartyResource { - if in == nil { - return nil - } - out := new(ThirdPartyResource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ThirdPartyResource) 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 *ThirdPartyResourceData) DeepCopyInto(out *ThirdPartyResourceData) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Data != nil { - in, out := &in.Data, &out.Data - *out = make([]byte, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThirdPartyResourceData. -func (in *ThirdPartyResourceData) DeepCopy() *ThirdPartyResourceData { - if in == nil { - return nil - } - out := new(ThirdPartyResourceData) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ThirdPartyResourceData) 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 *ThirdPartyResourceDataList) DeepCopyInto(out *ThirdPartyResourceDataList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ThirdPartyResourceData, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThirdPartyResourceDataList. -func (in *ThirdPartyResourceDataList) DeepCopy() *ThirdPartyResourceDataList { - if in == nil { - return nil - } - out := new(ThirdPartyResourceDataList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ThirdPartyResourceDataList) 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 *ThirdPartyResourceList) DeepCopyInto(out *ThirdPartyResourceList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ThirdPartyResource, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThirdPartyResourceList. -func (in *ThirdPartyResourceList) DeepCopy() *ThirdPartyResourceList { - if in == nil { - return nil - } - out := new(ThirdPartyResourceList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ThirdPartyResourceList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD index ccdb4c7b8..455205f7a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD @@ -20,7 +20,6 @@ go_library( "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/doc.go index 3f6a01e53..3b4840ad6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=imagepolicy.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/register.go index 3e762bb4f..477571bbb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &ImageReview{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go index 95b204e0e..21fcd39e4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go @@ -21,40 +21,9 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ImageReview).DeepCopyInto(out.(*ImageReview)) - return nil - }, InType: reflect.TypeOf(&ImageReview{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ImageReviewContainerSpec).DeepCopyInto(out.(*ImageReviewContainerSpec)) - return nil - }, InType: reflect.TypeOf(&ImageReviewContainerSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ImageReviewSpec).DeepCopyInto(out.(*ImageReviewSpec)) - return nil - }, InType: reflect.TypeOf(&ImageReviewSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ImageReviewStatus).DeepCopyInto(out.(*ImageReviewStatus)) - return nil - }, InType: reflect.TypeOf(&ImageReviewStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ImageReview) DeepCopyInto(out *ImageReview) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/BUILD index ba6ce8a1f..beb3afcaf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/BUILD @@ -20,7 +20,6 @@ go_library( "//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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/doc.go index 8bcc30b07..ef9ae2ae4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=networking.k8s.io package v1 // import "k8s.io/api/networking/v1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/register.go index 2ba9951d8..f47f22e9e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &NetworkPolicy{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/zz_generated.deepcopy.go index 0e6709667..955e74344 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/networking/v1/zz_generated.deepcopy.go @@ -23,57 +23,10 @@ package v1 import ( core_v1 "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*IPBlock).DeepCopyInto(out.(*IPBlock)) - return nil - }, InType: reflect.TypeOf(&IPBlock{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicy).DeepCopyInto(out.(*NetworkPolicy)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyEgressRule).DeepCopyInto(out.(*NetworkPolicyEgressRule)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyEgressRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyIngressRule).DeepCopyInto(out.(*NetworkPolicyIngressRule)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyIngressRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyList).DeepCopyInto(out.(*NetworkPolicyList)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyPeer).DeepCopyInto(out.(*NetworkPolicyPeer)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyPeer{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicyPort).DeepCopyInto(out.(*NetworkPolicyPort)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicyPort{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NetworkPolicySpec).DeepCopyInto(out.(*NetworkPolicySpec)) - return nil - }, InType: reflect.TypeOf(&NetworkPolicySpec{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IPBlock) DeepCopyInto(out *IPBlock) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/BUILD index 1a9e7ba4e..6e4a07deb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/BUILD @@ -20,7 +20,6 @@ go_library( "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/doc.go index 1e9f4974d..9c456f923 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package policy is for any kind of policy object. Suitable examples, even if // they aren't all here, are PodDisruptionBudget, PodSecurityPolicy, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/register.go index e0c6247a7..d77f13040 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &PodDisruptionBudget{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go index 93c201e2d..70872f098 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go @@ -22,45 +22,10 @@ package v1beta1 import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Eviction).DeepCopyInto(out.(*Eviction)) - return nil - }, InType: reflect.TypeOf(&Eviction{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudget).DeepCopyInto(out.(*PodDisruptionBudget)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudget{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudgetList).DeepCopyInto(out.(*PodDisruptionBudgetList)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudgetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudgetSpec).DeepCopyInto(out.(*PodDisruptionBudgetSpec)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudgetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodDisruptionBudgetStatus).DeepCopyInto(out.(*PodDisruptionBudgetStatus)) - return nil - }, InType: reflect.TypeOf(&PodDisruptionBudgetStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Eviction) DeepCopyInto(out *Eviction) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/BUILD index 5a686d7ca..539afb7ae 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/BUILD @@ -19,7 +19,6 @@ go_library( deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/doc.go index 737261a09..28ceb269b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=rbac.authorization.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/generated.pb.go index 1285ac194..1530d379c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/generated.pb.go @@ -25,6 +25,7 @@ limitations under the License. k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1/generated.proto It has these top-level messages: + AggregationRule ClusterRole ClusterRoleBinding ClusterRoleBindingList @@ -43,6 +44,8 @@ import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + import strings "strings" import reflect "reflect" @@ -59,51 +62,56 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package +func (m *AggregationRule) Reset() { *m = AggregationRule{} } +func (*AggregationRule) ProtoMessage() {} +func (*AggregationRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + func (m *ClusterRole) Reset() { *m = ClusterRole{} } func (*ClusterRole) ProtoMessage() {} -func (*ClusterRole) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } +func (*ClusterRole) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } func (m *ClusterRoleBinding) Reset() { *m = ClusterRoleBinding{} } func (*ClusterRoleBinding) ProtoMessage() {} -func (*ClusterRoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (*ClusterRoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } func (m *ClusterRoleBindingList) Reset() { *m = ClusterRoleBindingList{} } func (*ClusterRoleBindingList) ProtoMessage() {} -func (*ClusterRoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } +func (*ClusterRoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } func (m *ClusterRoleList) Reset() { *m = ClusterRoleList{} } func (*ClusterRoleList) ProtoMessage() {} -func (*ClusterRoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } +func (*ClusterRoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } func (m *PolicyRule) Reset() { *m = PolicyRule{} } func (*PolicyRule) ProtoMessage() {} -func (*PolicyRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (*PolicyRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func (m *Role) Reset() { *m = Role{} } func (*Role) ProtoMessage() {} -func (*Role) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*Role) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *RoleBinding) Reset() { *m = RoleBinding{} } func (*RoleBinding) ProtoMessage() {} -func (*RoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*RoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *RoleBindingList) Reset() { *m = RoleBindingList{} } func (*RoleBindingList) ProtoMessage() {} -func (*RoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*RoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *RoleList) Reset() { *m = RoleList{} } func (*RoleList) ProtoMessage() {} -func (*RoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*RoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *RoleRef) Reset() { *m = RoleRef{} } func (*RoleRef) ProtoMessage() {} -func (*RoleRef) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*RoleRef) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *Subject) Reset() { *m = Subject{} } func (*Subject) ProtoMessage() {} -func (*Subject) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*Subject) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func init() { + proto.RegisterType((*AggregationRule)(nil), "k8s.io.api.rbac.v1.AggregationRule") proto.RegisterType((*ClusterRole)(nil), "k8s.io.api.rbac.v1.ClusterRole") proto.RegisterType((*ClusterRoleBinding)(nil), "k8s.io.api.rbac.v1.ClusterRoleBinding") proto.RegisterType((*ClusterRoleBindingList)(nil), "k8s.io.api.rbac.v1.ClusterRoleBindingList") @@ -116,6 +124,36 @@ func init() { proto.RegisterType((*RoleRef)(nil), "k8s.io.api.rbac.v1.RoleRef") proto.RegisterType((*Subject)(nil), "k8s.io.api.rbac.v1.Subject") } +func (m *AggregationRule) 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 *AggregationRule) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ClusterRoleSelectors) > 0 { + for _, msg := range m.ClusterRoleSelectors { + dAtA[i] = 0xa + 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 *ClusterRole) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -151,6 +189,16 @@ func (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) { i += n } } + if m.AggregationRule != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AggregationRule.Size())) + n2, err := m.AggregationRule.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } return i, nil } @@ -172,11 +220,11 @@ func (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n2, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n3, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n2 + i += n3 if len(m.Subjects) > 0 { for _, msg := range m.Subjects { dAtA[i] = 0x12 @@ -192,11 +240,11 @@ func (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RoleRef.Size())) - n3, err := m.RoleRef.MarshalTo(dAtA[i:]) + n4, err := m.RoleRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n4 return i, nil } @@ -218,11 +266,11 @@ func (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n4, err := m.ListMeta.MarshalTo(dAtA[i:]) + n5, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n5 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -256,11 +304,11 @@ func (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n5, err := m.ListMeta.MarshalTo(dAtA[i:]) + n6, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 + i += n6 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -387,11 +435,11 @@ func (m *Role) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n6, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n7 if len(m.Rules) > 0 { for _, msg := range m.Rules { dAtA[i] = 0x12 @@ -425,11 +473,11 @@ func (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n8, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n8 if len(m.Subjects) > 0 { for _, msg := range m.Subjects { dAtA[i] = 0x12 @@ -445,11 +493,11 @@ func (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RoleRef.Size())) - n8, err := m.RoleRef.MarshalTo(dAtA[i:]) + n9, err := m.RoleRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n9 return i, nil } @@ -471,11 +519,11 @@ func (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n9, err := m.ListMeta.MarshalTo(dAtA[i:]) + n10, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n10 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -509,11 +557,11 @@ func (m *RoleList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n10, err := m.ListMeta.MarshalTo(dAtA[i:]) + n11, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n11 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -620,6 +668,18 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return offset + 1 } +func (m *AggregationRule) Size() (n int) { + var l int + _ = l + if len(m.ClusterRoleSelectors) > 0 { + for _, e := range m.ClusterRoleSelectors { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func (m *ClusterRole) Size() (n int) { var l int _ = l @@ -631,6 +691,10 @@ func (m *ClusterRole) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if m.AggregationRule != nil { + l = m.AggregationRule.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -811,6 +875,16 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (this *AggregationRule) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AggregationRule{`, + `ClusterRoleSelectors:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ClusterRoleSelectors), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} func (this *ClusterRole) String() string { if this == nil { return "nil" @@ -818,6 +892,7 @@ func (this *ClusterRole) String() string { s := strings.Join([]string{`&ClusterRole{`, `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "PolicyRule", "PolicyRule", 1), `&`, ``, 1) + `,`, + `AggregationRule:` + strings.Replace(fmt.Sprintf("%v", this.AggregationRule), "AggregationRule", "AggregationRule", 1) + `,`, `}`, }, "") return s @@ -948,6 +1023,87 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } +func (m *AggregationRule) 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: AggregationRule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AggregationRule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterRoleSelectors", 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.ClusterRoleSelectors = append(m.ClusterRoleSelectors, k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{}) + if err := m.ClusterRoleSelectors[len(m.ClusterRoleSelectors)-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 *ClusterRole) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1038,6 +1194,39 @@ func (m *ClusterRole) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AggregationRule", 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.AggregationRule == nil { + m.AggregationRule = &AggregationRule{} + } + if err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2504,52 +2693,57 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 743 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x94, 0x4f, 0x6b, 0x13, 0x4f, - 0x18, 0xc7, 0x33, 0xf9, 0x43, 0xb3, 0x93, 0x5f, 0xc8, 0xaf, 0x2b, 0xc8, 0x52, 0x61, 0x13, 0x72, - 0x90, 0x80, 0xba, 0x6b, 0xaa, 0xa8, 0x20, 0x3d, 0xb8, 0x15, 0xa5, 0xb4, 0xd6, 0x32, 0xa2, 0x07, - 0xf1, 0xe0, 0x66, 0x33, 0x4d, 0xc7, 0x64, 0xff, 0x30, 0x33, 0x1b, 0x28, 0x5e, 0xc4, 0x9b, 0x37, - 0xdf, 0x85, 0x17, 0xbd, 0xe9, 0x2b, 0xf0, 0xd2, 0x63, 0x8f, 0x3d, 0x05, 0xbb, 0xbe, 0x10, 0x65, - 0x66, 0x77, 0xb3, 0x49, 0x93, 0xd8, 0x9e, 0x02, 0xe2, 0x29, 0x99, 0xe7, 0xf9, 0x7c, 0x9f, 0xf9, - 0xce, 0xb3, 0x33, 0x0f, 0xbc, 0xdf, 0xbf, 0xc7, 0x0c, 0xe2, 0x9b, 0xfd, 0xb0, 0x83, 0xa9, 0x87, - 0x39, 0x66, 0xe6, 0x10, 0x7b, 0x5d, 0x9f, 0x9a, 0x49, 0xc2, 0x0e, 0x88, 0x49, 0x3b, 0xb6, 0x63, - 0x0e, 0xdb, 0x66, 0x0f, 0x7b, 0x98, 0xda, 0x1c, 0x77, 0x8d, 0x80, 0xfa, 0xdc, 0x57, 0xd5, 0x98, - 0x31, 0xec, 0x80, 0x18, 0x82, 0x31, 0x86, 0xed, 0xb5, 0x1b, 0x3d, 0xc2, 0x0f, 0xc2, 0x8e, 0xe1, - 0xf8, 0xae, 0xd9, 0xf3, 0x7b, 0xbe, 0x29, 0xd1, 0x4e, 0xb8, 0x2f, 0x57, 0x72, 0x21, 0xff, 0xc5, - 0x25, 0xd6, 0x6e, 0x67, 0xdb, 0xb8, 0xb6, 0x73, 0x40, 0x3c, 0x4c, 0x0f, 0xcd, 0xa0, 0xdf, 0x13, - 0x01, 0x66, 0xba, 0x98, 0xdb, 0x73, 0x36, 0x5e, 0x33, 0x17, 0xa9, 0x68, 0xe8, 0x71, 0xe2, 0xe2, - 0x19, 0xc1, 0x9d, 0xf3, 0x04, 0xcc, 0x39, 0xc0, 0xae, 0x3d, 0xa3, 0xbb, 0xb5, 0x48, 0x17, 0x72, - 0x32, 0x30, 0x89, 0xc7, 0x19, 0xa7, 0x67, 0x45, 0xcd, 0xaf, 0x00, 0x56, 0x36, 0x07, 0x21, 0xe3, - 0x98, 0x22, 0x7f, 0x80, 0xd5, 0xd7, 0xb0, 0x2c, 0x0e, 0xd2, 0xb5, 0xb9, 0xad, 0x81, 0x06, 0x68, - 0x55, 0xd6, 0x6f, 0x1a, 0x59, 0xe7, 0xc6, 0x75, 0x8d, 0xa0, 0xdf, 0x13, 0x01, 0x66, 0x08, 0xda, - 0x18, 0xb6, 0x8d, 0xa7, 0x9d, 0x37, 0xd8, 0xe1, 0x4f, 0x30, 0xb7, 0x2d, 0xf5, 0x68, 0x54, 0xcf, - 0x45, 0xa3, 0x3a, 0xcc, 0x62, 0x68, 0x5c, 0x55, 0xdd, 0x84, 0x25, 0x1a, 0x0e, 0x30, 0xd3, 0xf2, - 0x8d, 0x42, 0xab, 0xb2, 0xae, 0x1b, 0xb3, 0x1f, 0xc6, 0xd8, 0xf3, 0x07, 0xc4, 0x39, 0x44, 0xe1, - 0x00, 0x5b, 0xd5, 0xa4, 0x58, 0x49, 0xac, 0x18, 0x8a, 0xb5, 0xcd, 0x0f, 0x79, 0xa8, 0x4e, 0xd8, - 0xb6, 0x88, 0xd7, 0x25, 0x5e, 0x6f, 0x09, 0xee, 0xb7, 0x60, 0x99, 0x85, 0x32, 0x91, 0x1e, 0xe0, - 0xca, 0xbc, 0x03, 0x3c, 0x8b, 0x19, 0xeb, 0xff, 0xa4, 0x58, 0x39, 0x09, 0x30, 0x34, 0x96, 0xab, - 0x8f, 0xe0, 0x0a, 0xf5, 0x07, 0x18, 0xe1, 0x7d, 0xad, 0x20, 0xbd, 0xce, 0xad, 0x84, 0x62, 0xc4, - 0xaa, 0x25, 0x95, 0x56, 0x92, 0x00, 0x4a, 0xc5, 0xcd, 0xef, 0x00, 0x5e, 0x9e, 0xed, 0xc5, 0x0e, - 0x61, 0x5c, 0x7d, 0x35, 0xd3, 0x0f, 0xe3, 0x62, 0xfd, 0x10, 0x6a, 0xd9, 0x8d, 0xf1, 0x01, 0xd2, - 0xc8, 0x44, 0x2f, 0xb6, 0x61, 0x89, 0x70, 0xec, 0xa6, 0x8d, 0xb8, 0x3a, 0xcf, 0xfe, 0xac, 0xb1, - 0xec, 0x8b, 0x6e, 0x09, 0x31, 0x8a, 0x6b, 0x34, 0xbf, 0x01, 0x58, 0x9b, 0x80, 0x97, 0x60, 0xff, - 0xe1, 0xb4, 0xfd, 0xfa, 0x79, 0xf6, 0xe7, 0xfb, 0xfe, 0x05, 0x20, 0xcc, 0xae, 0xab, 0x5a, 0x87, - 0xa5, 0x21, 0xa6, 0x1d, 0xa6, 0x81, 0x46, 0xa1, 0xa5, 0x58, 0x8a, 0xe0, 0x5f, 0x88, 0x00, 0x8a, - 0xe3, 0xea, 0x35, 0xa8, 0xd8, 0x01, 0x79, 0x4c, 0xfd, 0x30, 0x88, 0x77, 0x56, 0xac, 0x6a, 0x34, - 0xaa, 0x2b, 0x0f, 0xf6, 0xb6, 0xe2, 0x20, 0xca, 0xf2, 0x02, 0xa6, 0x98, 0xf9, 0x21, 0x75, 0x30, - 0xd3, 0x0a, 0x19, 0x8c, 0xd2, 0x20, 0xca, 0xf2, 0xea, 0x5d, 0x58, 0x4d, 0x17, 0xbb, 0xb6, 0x8b, - 0x99, 0x56, 0x94, 0x82, 0xd5, 0x68, 0x54, 0xaf, 0xa2, 0xc9, 0x04, 0x9a, 0xe6, 0xd4, 0x0d, 0x58, - 0xf3, 0x7c, 0x2f, 0x45, 0x9e, 0xa3, 0x1d, 0xa6, 0x95, 0xa4, 0xf4, 0x52, 0x34, 0xaa, 0xd7, 0x76, - 0xa7, 0x53, 0xe8, 0x2c, 0xdb, 0xfc, 0x02, 0x60, 0xf1, 0x6f, 0x9a, 0x1d, 0xef, 0xf3, 0xb0, 0xf2, - 0xcf, 0x0f, 0x0d, 0xf1, 0xdc, 0x96, 0x3b, 0x2d, 0x2e, 0xf2, 0xdc, 0xce, 0x1f, 0x13, 0x9f, 0x00, - 0x2c, 0x2f, 0x69, 0x3e, 0x6c, 0x4c, 0x1b, 0xd6, 0x16, 0x1a, 0x9e, 0xef, 0xf4, 0x2d, 0x4c, 0xbb, - 0xae, 0x5e, 0x87, 0xe5, 0xf4, 0x4d, 0x4b, 0x9f, 0x4a, 0xb6, 0x6f, 0xfa, 0xec, 0xd1, 0x98, 0x50, - 0x1b, 0xb0, 0xd8, 0x27, 0x5e, 0x57, 0xcb, 0x4b, 0xf2, 0xbf, 0x84, 0x2c, 0x6e, 0x13, 0xaf, 0x8b, - 0x64, 0x46, 0x10, 0x9e, 0xed, 0x62, 0x79, 0x03, 0x26, 0x08, 0xf1, 0x9a, 0x91, 0xcc, 0x34, 0x3f, - 0x03, 0xb8, 0x92, 0xdc, 0x9e, 0x71, 0x3d, 0xb0, 0xb0, 0xde, 0xa4, 0xbf, 0xfc, 0x45, 0xfc, 0xfd, - 0x79, 0x77, 0xd5, 0x84, 0x8a, 0xf8, 0x65, 0x81, 0xed, 0x60, 0xad, 0x28, 0xb1, 0xd5, 0x04, 0x53, - 0x76, 0xd3, 0x04, 0xca, 0x18, 0xab, 0x75, 0x74, 0xaa, 0xe7, 0x8e, 0x4f, 0xf5, 0xdc, 0xc9, 0xa9, - 0x9e, 0x7b, 0x17, 0xe9, 0xe0, 0x28, 0xd2, 0xc1, 0x71, 0xa4, 0x83, 0x93, 0x48, 0x07, 0x3f, 0x22, - 0x1d, 0x7c, 0xfc, 0xa9, 0xe7, 0x5e, 0xe6, 0x87, 0xed, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x66, - 0x92, 0x08, 0x1d, 0x04, 0x0a, 0x00, 0x00, + // 827 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x55, 0xcf, 0x8b, 0x23, 0x45, + 0x18, 0x4d, 0x65, 0x12, 0x26, 0x5d, 0x31, 0xc4, 0x2d, 0x17, 0x69, 0xa2, 0x74, 0x86, 0x16, 0x24, + 0xa0, 0x76, 0x9b, 0x5d, 0x51, 0x41, 0xf6, 0xb0, 0xbd, 0xa2, 0x0c, 0x3b, 0x8e, 0x4b, 0x2d, 0x7a, + 0x10, 0x0f, 0x56, 0x77, 0x6a, 0x3b, 0x65, 0xfa, 0x17, 0x55, 0xd5, 0x81, 0xc5, 0x8b, 0x08, 0x1e, + 0xbc, 0x79, 0xd4, 0xbf, 0xc0, 0x8b, 0x1e, 0xfd, 0x0b, 0xbc, 0xcc, 0x71, 0x8f, 0x7b, 0x0a, 0x4e, + 0xfb, 0x87, 0x28, 0xfd, 0x2b, 0x9d, 0xa4, 0x3b, 0x4e, 0x4e, 0x01, 0xf1, 0x34, 0x53, 0xdf, 0xf7, + 0xde, 0xfb, 0x5e, 0xbf, 0xa9, 0xaf, 0x06, 0x7e, 0xb0, 0x78, 0x5f, 0x18, 0x2c, 0x34, 0x17, 0xb1, + 0x4d, 0x79, 0x40, 0x25, 0x15, 0xe6, 0x92, 0x06, 0xb3, 0x90, 0x9b, 0x45, 0x83, 0x44, 0xcc, 0xe4, + 0x36, 0x71, 0xcc, 0xe5, 0xd4, 0x74, 0x69, 0x40, 0x39, 0x91, 0x74, 0x66, 0x44, 0x3c, 0x94, 0x21, + 0x42, 0x39, 0xc6, 0x20, 0x11, 0x33, 0x52, 0x8c, 0xb1, 0x9c, 0x8e, 0xde, 0x72, 0x99, 0x9c, 0xc7, + 0xb6, 0xe1, 0x84, 0xbe, 0xe9, 0x86, 0x6e, 0x68, 0x66, 0x50, 0x3b, 0x7e, 0x92, 0x9d, 0xb2, 0x43, + 0xf6, 0x5b, 0x2e, 0x31, 0x9a, 0xd4, 0xc7, 0x10, 0x2f, 0x9a, 0x93, 0xda, 0xb0, 0xd1, 0x3b, 0x15, + 0xd2, 0x27, 0xce, 0x9c, 0x05, 0x94, 0x3f, 0x35, 0xa3, 0x85, 0x9b, 0x16, 0x84, 0xe9, 0x53, 0x49, + 0x1a, 0x2c, 0x8e, 0xcc, 0x7d, 0x2c, 0x1e, 0x07, 0x92, 0xf9, 0xb4, 0x46, 0x78, 0xf7, 0x26, 0x82, + 0x70, 0xe6, 0xd4, 0x27, 0x35, 0xde, 0xdd, 0x7d, 0xbc, 0x58, 0x32, 0xcf, 0x64, 0x81, 0x14, 0x92, + 0xef, 0x92, 0xf4, 0x9f, 0x01, 0x1c, 0xde, 0x77, 0x5d, 0x4e, 0x5d, 0x22, 0x59, 0x18, 0xe0, 0xd8, + 0xa3, 0xe8, 0x7b, 0x00, 0x6f, 0x3b, 0x5e, 0x2c, 0x24, 0xe5, 0x38, 0xf4, 0xe8, 0x63, 0xea, 0x51, + 0x47, 0x86, 0x5c, 0xa8, 0xe0, 0xec, 0x64, 0xd2, 0xbf, 0x73, 0xd7, 0xa8, 0x42, 0x5f, 0x0f, 0x32, + 0xa2, 0x85, 0x9b, 0x16, 0x84, 0x91, 0xe6, 0x60, 0x2c, 0xa7, 0xc6, 0x05, 0xb1, 0xa9, 0x57, 0x72, + 0xad, 0x57, 0xaf, 0x56, 0xe3, 0x56, 0xb2, 0x1a, 0xdf, 0x7e, 0xd0, 0x20, 0x8c, 0x1b, 0xc7, 0xe9, + 0x3f, 0xb5, 0x61, 0x7f, 0x03, 0x8e, 0xbe, 0x82, 0xbd, 0x54, 0x7c, 0x46, 0x24, 0x51, 0xc1, 0x19, + 0x98, 0xf4, 0xef, 0xbc, 0x7d, 0x98, 0x95, 0x4f, 0xed, 0xaf, 0xa9, 0x23, 0x3f, 0xa1, 0x92, 0x58, + 0xa8, 0xf0, 0x01, 0xab, 0x1a, 0x5e, 0xab, 0xa2, 0x07, 0xb0, 0xcb, 0x63, 0x8f, 0x0a, 0xb5, 0x9d, + 0x7d, 0xa9, 0x66, 0xd4, 0xaf, 0x97, 0xf1, 0x28, 0xf4, 0x98, 0xf3, 0x34, 0x0d, 0xca, 0x1a, 0x14, + 0x62, 0xdd, 0xf4, 0x24, 0x70, 0xce, 0x45, 0x36, 0x1c, 0x92, 0xed, 0x44, 0xd5, 0x93, 0xcc, 0xed, + 0x6b, 0x4d, 0x72, 0x3b, 0xe1, 0x5b, 0x2f, 0x25, 0xab, 0xf1, 0xee, 0x5f, 0x04, 0xef, 0x0a, 0xea, + 0x3f, 0xb4, 0x21, 0xda, 0x88, 0xc6, 0x62, 0xc1, 0x8c, 0x05, 0xee, 0x11, 0x12, 0x3a, 0x87, 0x3d, + 0x11, 0x67, 0x8d, 0x32, 0xa4, 0x57, 0x9a, 0xbe, 0xea, 0x71, 0x8e, 0xb1, 0x5e, 0x2c, 0xc4, 0x7a, + 0x45, 0x41, 0xe0, 0x35, 0x1d, 0x7d, 0x04, 0x4f, 0x79, 0xe8, 0x51, 0x4c, 0x9f, 0x14, 0xf9, 0x34, + 0x2a, 0xe1, 0x1c, 0x62, 0x0d, 0x0b, 0xa5, 0xd3, 0xa2, 0x80, 0x4b, 0xb2, 0xfe, 0x07, 0x80, 0x2f, + 0xd7, 0xb3, 0xb8, 0x60, 0x42, 0xa2, 0x2f, 0x6b, 0x79, 0x18, 0x07, 0x5e, 0x5e, 0x26, 0xf2, 0x34, + 0xd6, 0x1f, 0x50, 0x56, 0x36, 0xb2, 0x78, 0x08, 0xbb, 0x4c, 0x52, 0xbf, 0x0c, 0xe2, 0xf5, 0x26, + 0xfb, 0x75, 0x63, 0xd5, 0xad, 0x39, 0x4f, 0xc9, 0x38, 0xd7, 0xd0, 0x7f, 0x07, 0x70, 0xb8, 0x01, + 0x3e, 0x82, 0xfd, 0x0f, 0xb7, 0xed, 0x8f, 0x6f, 0xb2, 0xdf, 0xec, 0xfb, 0x6f, 0x00, 0x61, 0xb5, + 0x12, 0x68, 0x0c, 0xbb, 0x4b, 0xca, 0xed, 0xfc, 0xad, 0x50, 0x2c, 0x25, 0xc5, 0x7f, 0x9e, 0x16, + 0x70, 0x5e, 0x47, 0x6f, 0x40, 0x85, 0x44, 0xec, 0x63, 0x1e, 0xc6, 0x51, 0x3e, 0x59, 0xb1, 0x06, + 0xc9, 0x6a, 0xac, 0xdc, 0x7f, 0x74, 0x9e, 0x17, 0x71, 0xd5, 0x4f, 0xc1, 0x9c, 0x8a, 0x30, 0xe6, + 0x0e, 0x15, 0xea, 0x49, 0x05, 0xc6, 0x65, 0x11, 0x57, 0x7d, 0xf4, 0x1e, 0x1c, 0x94, 0x87, 0x4b, + 0xe2, 0x53, 0xa1, 0x76, 0x32, 0xc2, 0xad, 0x64, 0x35, 0x1e, 0xe0, 0xcd, 0x06, 0xde, 0xc6, 0xa1, + 0x7b, 0x70, 0x18, 0x84, 0x41, 0x09, 0xf9, 0x0c, 0x5f, 0x08, 0xb5, 0x9b, 0x51, 0xb3, 0x5d, 0xbc, + 0xdc, 0x6e, 0xe1, 0x5d, 0xac, 0xfe, 0x1b, 0x80, 0x9d, 0xff, 0xd0, 0xfb, 0xa4, 0x7f, 0xd7, 0x86, + 0xfd, 0xff, 0xfd, 0xa3, 0x91, 0xae, 0xdb, 0x71, 0x5f, 0x8b, 0x43, 0xd6, 0xed, 0xe6, 0x67, 0xe2, + 0x17, 0x00, 0x7b, 0x47, 0x7a, 0x1f, 0xee, 0x6d, 0x1b, 0x56, 0xf7, 0x1a, 0x6e, 0x76, 0xfa, 0x0d, + 0x2c, 0x53, 0x47, 0x6f, 0xc2, 0x5e, 0xb9, 0xd3, 0x99, 0x4f, 0xa5, 0x9a, 0x5b, 0xae, 0x3d, 0x5e, + 0x23, 0xd0, 0x19, 0xec, 0x2c, 0x58, 0x30, 0x53, 0xdb, 0x19, 0xf2, 0x85, 0x02, 0xd9, 0x79, 0xc8, + 0x82, 0x19, 0xce, 0x3a, 0x29, 0x22, 0x20, 0x7e, 0xfe, 0x6f, 0x75, 0x03, 0x91, 0x6e, 0x33, 0xce, + 0x3a, 0xfa, 0xaf, 0x00, 0x9e, 0x16, 0xb7, 0x67, 0xad, 0x07, 0xf6, 0xea, 0x6d, 0xfa, 0x6b, 0x1f, + 0xe2, 0xef, 0xdf, 0xa7, 0x23, 0x13, 0x2a, 0xe9, 0x4f, 0x11, 0x11, 0x87, 0xaa, 0x9d, 0x0c, 0x76, + 0xab, 0x80, 0x29, 0x97, 0x65, 0x03, 0x57, 0x18, 0x6b, 0x72, 0x75, 0xad, 0xb5, 0x9e, 0x5d, 0x6b, + 0xad, 0xe7, 0xd7, 0x5a, 0xeb, 0xdb, 0x44, 0x03, 0x57, 0x89, 0x06, 0x9e, 0x25, 0x1a, 0x78, 0x9e, + 0x68, 0xe0, 0xcf, 0x44, 0x03, 0x3f, 0xfe, 0xa5, 0xb5, 0xbe, 0x68, 0x2f, 0xa7, 0xff, 0x04, 0x00, + 0x00, 0xff, 0xff, 0x32, 0xe3, 0x23, 0xf8, 0x2e, 0x0b, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/generated.proto index 29aa3d5ee..6edb2779a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/generated.proto @@ -21,6 +21,7 @@ syntax = 'proto2'; package k8s.io.api.rbac.v1; +import "k8s.io/api/rbac/v1alpha1/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"; @@ -29,6 +30,14 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1"; +// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole +message AggregationRule { + // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. + // If any of the selectors match, then the ClusterRole's permissions will be added + // +optional + repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector clusterRoleSelectors = 1; +} + // ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. message ClusterRole { // Standard object's metadata. @@ -37,6 +46,12 @@ message ClusterRole { // Rules holds all the PolicyRules for this ClusterRole repeated PolicyRule rules = 2; + + // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. + // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be + // stomped by the controller. + // +optional + optional AggregationRule aggregationRule = 3; } // ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/register.go index 7336b5455..8f1fd460a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/register.go @@ -40,7 +40,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Role{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/types.go index 8dbd1a8b8..91990548b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/types.go @@ -170,6 +170,20 @@ type ClusterRole struct { // Rules holds all the PolicyRules for this ClusterRole Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` + + // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. + // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be + // stomped by the controller. + // +optional + AggregationRule *AggregationRule `json:"aggregationRule,omitempty" protobuf:"bytes,3,opt,name=aggregationRule"` +} + +// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole +type AggregationRule struct { + // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. + // If any of the selectors match, then the ClusterRole's permissions will be added + // +optional + ClusterRoleSelectors []metav1.LabelSelector `json:"clusterRoleSelectors,omitempty" protobuf:"bytes,1,rep,name=clusterRoleSelectors"` } // +genclient diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/types_swagger_doc_generated.go index 7770d4085..280ae5a82 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/types_swagger_doc_generated.go @@ -27,10 +27,20 @@ package v1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE +var map_AggregationRule = map[string]string{ + "": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "clusterRoleSelectors": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", +} + +func (AggregationRule) SwaggerDoc() map[string]string { + return map_AggregationRule +} + var map_ClusterRole = map[string]string{ - "": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "metadata": "Standard object's metadata.", - "rules": "Rules holds all the PolicyRules for this ClusterRole", + "": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", + "metadata": "Standard object's metadata.", + "rules": "Rules holds all the PolicyRules for this ClusterRole", + "aggregationRule": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", } func (ClusterRole) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go index 7ffc81869..e1aab5814 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go @@ -21,66 +21,31 @@ limitations under the License. package v1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRole).DeepCopyInto(out.(*ClusterRole)) - return nil - }, InType: reflect.TypeOf(&ClusterRole{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleBinding).DeepCopyInto(out.(*ClusterRoleBinding)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleBinding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleBindingList).DeepCopyInto(out.(*ClusterRoleBindingList)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleBindingList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleList).DeepCopyInto(out.(*ClusterRoleList)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyRule).DeepCopyInto(out.(*PolicyRule)) - return nil - }, InType: reflect.TypeOf(&PolicyRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Role).DeepCopyInto(out.(*Role)) - return nil - }, InType: reflect.TypeOf(&Role{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleBinding).DeepCopyInto(out.(*RoleBinding)) - return nil - }, InType: reflect.TypeOf(&RoleBinding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleBindingList).DeepCopyInto(out.(*RoleBindingList)) - return nil - }, InType: reflect.TypeOf(&RoleBindingList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleList).DeepCopyInto(out.(*RoleList)) - return nil - }, InType: reflect.TypeOf(&RoleList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleRef).DeepCopyInto(out.(*RoleRef)) - return nil - }, InType: reflect.TypeOf(&RoleRef{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Subject).DeepCopyInto(out.(*Subject)) - return nil - }, InType: reflect.TypeOf(&Subject{})}, - ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AggregationRule) DeepCopyInto(out *AggregationRule) { + *out = *in + if in.ClusterRoleSelectors != nil { + in, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors + *out = make([]meta_v1.LabelSelector, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule. +func (in *AggregationRule) DeepCopy() *AggregationRule { + if in == nil { + return nil + } + out := new(AggregationRule) + in.DeepCopyInto(out) + return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. @@ -95,6 +60,15 @@ func (in *ClusterRole) DeepCopyInto(out *ClusterRole) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.AggregationRule != nil { + in, out := &in.AggregationRule, &out.AggregationRule + if *in == nil { + *out = nil + } else { + *out = new(AggregationRule) + (*in).DeepCopyInto(*out) + } + } return } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/BUILD index cd7942286..68d7cdfbb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/BUILD @@ -19,7 +19,6 @@ go_library( deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/doc.go index 619b47bf2..5236a477f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=rbac.authorization.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/generated.pb.go index 31e68aeed..c66cadd95 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/generated.pb.go @@ -25,6 +25,7 @@ limitations under the License. k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1alpha1/generated.proto It has these top-level messages: + AggregationRule ClusterRole ClusterRoleBinding ClusterRoleBindingList @@ -43,6 +44,8 @@ import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + import strings "strings" import reflect "reflect" @@ -59,51 +62,56 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package +func (m *AggregationRule) Reset() { *m = AggregationRule{} } +func (*AggregationRule) ProtoMessage() {} +func (*AggregationRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + func (m *ClusterRole) Reset() { *m = ClusterRole{} } func (*ClusterRole) ProtoMessage() {} -func (*ClusterRole) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } +func (*ClusterRole) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } func (m *ClusterRoleBinding) Reset() { *m = ClusterRoleBinding{} } func (*ClusterRoleBinding) ProtoMessage() {} -func (*ClusterRoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (*ClusterRoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } func (m *ClusterRoleBindingList) Reset() { *m = ClusterRoleBindingList{} } func (*ClusterRoleBindingList) ProtoMessage() {} -func (*ClusterRoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } +func (*ClusterRoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } func (m *ClusterRoleList) Reset() { *m = ClusterRoleList{} } func (*ClusterRoleList) ProtoMessage() {} -func (*ClusterRoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } +func (*ClusterRoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } func (m *PolicyRule) Reset() { *m = PolicyRule{} } func (*PolicyRule) ProtoMessage() {} -func (*PolicyRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (*PolicyRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func (m *Role) Reset() { *m = Role{} } func (*Role) ProtoMessage() {} -func (*Role) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*Role) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *RoleBinding) Reset() { *m = RoleBinding{} } func (*RoleBinding) ProtoMessage() {} -func (*RoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*RoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *RoleBindingList) Reset() { *m = RoleBindingList{} } func (*RoleBindingList) ProtoMessage() {} -func (*RoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*RoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *RoleList) Reset() { *m = RoleList{} } func (*RoleList) ProtoMessage() {} -func (*RoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*RoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *RoleRef) Reset() { *m = RoleRef{} } func (*RoleRef) ProtoMessage() {} -func (*RoleRef) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*RoleRef) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *Subject) Reset() { *m = Subject{} } func (*Subject) ProtoMessage() {} -func (*Subject) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*Subject) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func init() { + proto.RegisterType((*AggregationRule)(nil), "k8s.io.api.rbac.v1alpha1.AggregationRule") proto.RegisterType((*ClusterRole)(nil), "k8s.io.api.rbac.v1alpha1.ClusterRole") proto.RegisterType((*ClusterRoleBinding)(nil), "k8s.io.api.rbac.v1alpha1.ClusterRoleBinding") proto.RegisterType((*ClusterRoleBindingList)(nil), "k8s.io.api.rbac.v1alpha1.ClusterRoleBindingList") @@ -116,6 +124,36 @@ func init() { proto.RegisterType((*RoleRef)(nil), "k8s.io.api.rbac.v1alpha1.RoleRef") proto.RegisterType((*Subject)(nil), "k8s.io.api.rbac.v1alpha1.Subject") } +func (m *AggregationRule) 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 *AggregationRule) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ClusterRoleSelectors) > 0 { + for _, msg := range m.ClusterRoleSelectors { + dAtA[i] = 0xa + 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 *ClusterRole) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -151,6 +189,16 @@ func (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) { i += n } } + if m.AggregationRule != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AggregationRule.Size())) + n2, err := m.AggregationRule.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } return i, nil } @@ -172,11 +220,11 @@ func (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n2, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n3, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n2 + i += n3 if len(m.Subjects) > 0 { for _, msg := range m.Subjects { dAtA[i] = 0x12 @@ -192,11 +240,11 @@ func (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RoleRef.Size())) - n3, err := m.RoleRef.MarshalTo(dAtA[i:]) + n4, err := m.RoleRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n4 return i, nil } @@ -218,11 +266,11 @@ func (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n4, err := m.ListMeta.MarshalTo(dAtA[i:]) + n5, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n5 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -256,11 +304,11 @@ func (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n5, err := m.ListMeta.MarshalTo(dAtA[i:]) + n6, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 + i += n6 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -387,11 +435,11 @@ func (m *Role) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n6, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n7 if len(m.Rules) > 0 { for _, msg := range m.Rules { dAtA[i] = 0x12 @@ -425,11 +473,11 @@ func (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n8, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n8 if len(m.Subjects) > 0 { for _, msg := range m.Subjects { dAtA[i] = 0x12 @@ -445,11 +493,11 @@ func (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RoleRef.Size())) - n8, err := m.RoleRef.MarshalTo(dAtA[i:]) + n9, err := m.RoleRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n9 return i, nil } @@ -471,11 +519,11 @@ func (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n9, err := m.ListMeta.MarshalTo(dAtA[i:]) + n10, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n10 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -509,11 +557,11 @@ func (m *RoleList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n10, err := m.ListMeta.MarshalTo(dAtA[i:]) + n11, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n11 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -620,6 +668,18 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return offset + 1 } +func (m *AggregationRule) Size() (n int) { + var l int + _ = l + if len(m.ClusterRoleSelectors) > 0 { + for _, e := range m.ClusterRoleSelectors { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func (m *ClusterRole) Size() (n int) { var l int _ = l @@ -631,6 +691,10 @@ func (m *ClusterRole) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if m.AggregationRule != nil { + l = m.AggregationRule.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -811,6 +875,16 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (this *AggregationRule) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AggregationRule{`, + `ClusterRoleSelectors:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ClusterRoleSelectors), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} func (this *ClusterRole) String() string { if this == nil { return "nil" @@ -818,6 +892,7 @@ func (this *ClusterRole) String() string { s := strings.Join([]string{`&ClusterRole{`, `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "PolicyRule", "PolicyRule", 1), `&`, ``, 1) + `,`, + `AggregationRule:` + strings.Replace(fmt.Sprintf("%v", this.AggregationRule), "AggregationRule", "AggregationRule", 1) + `,`, `}`, }, "") return s @@ -948,6 +1023,87 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } +func (m *AggregationRule) 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: AggregationRule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AggregationRule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterRoleSelectors", 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.ClusterRoleSelectors = append(m.ClusterRoleSelectors, k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{}) + if err := m.ClusterRoleSelectors[len(m.ClusterRoleSelectors)-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 *ClusterRole) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1038,6 +1194,39 @@ func (m *ClusterRole) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AggregationRule", 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.AggregationRule == nil { + m.AggregationRule = &AggregationRule{} + } + if err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2504,53 +2693,58 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 766 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x94, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xc7, 0xb3, 0xf9, 0xa0, 0xc9, 0x86, 0x28, 0xd4, 0x48, 0xc8, 0xea, 0xc1, 0x09, 0x11, 0x48, - 0x95, 0x28, 0x36, 0x2d, 0x08, 0xb8, 0x70, 0x68, 0x7a, 0x40, 0x81, 0xd2, 0x96, 0x45, 0xf4, 0x80, - 0x38, 0xb0, 0x71, 0xb6, 0xc9, 0x12, 0x7f, 0x69, 0xd7, 0x8e, 0x54, 0x71, 0xe1, 0x09, 0x10, 0x17, - 0x1e, 0x83, 0x0b, 0xdc, 0xe0, 0x05, 0xca, 0xad, 0xc7, 0x9e, 0x22, 0x6a, 0x1e, 0x04, 0xb4, 0x6b, - 0x3b, 0x4e, 0x9a, 0x86, 0xf4, 0x14, 0x09, 0x89, 0x93, 0xbd, 0x33, 0xbf, 0xf9, 0xef, 0xcc, 0xec, - 0xee, 0xc0, 0xcd, 0xfe, 0x43, 0xae, 0x53, 0xd7, 0xe8, 0x07, 0x6d, 0xc2, 0x1c, 0xe2, 0x13, 0x6e, - 0x0c, 0x88, 0xd3, 0x71, 0x99, 0x11, 0x3b, 0xb0, 0x47, 0x0d, 0xd6, 0xc6, 0xa6, 0x31, 0x58, 0xc7, - 0x96, 0xd7, 0xc3, 0xeb, 0x46, 0x97, 0x38, 0x84, 0x61, 0x9f, 0x74, 0x74, 0x8f, 0xb9, 0xbe, 0xab, - 0xa8, 0x11, 0xa9, 0x63, 0x8f, 0xea, 0x82, 0xd4, 0x13, 0x72, 0xe5, 0x76, 0x97, 0xfa, 0xbd, 0xa0, - 0xad, 0x9b, 0xae, 0x6d, 0x74, 0xdd, 0xae, 0x6b, 0xc8, 0x80, 0x76, 0x70, 0x20, 0x57, 0x72, 0x21, - 0xff, 0x22, 0xa1, 0x95, 0x7b, 0xe9, 0x96, 0x36, 0x36, 0x7b, 0xd4, 0x21, 0xec, 0xd0, 0xf0, 0xfa, - 0x5d, 0x61, 0xe0, 0x86, 0x4d, 0x7c, 0x6c, 0x0c, 0xa6, 0xb6, 0x5f, 0x31, 0x66, 0x45, 0xb1, 0xc0, - 0xf1, 0xa9, 0x4d, 0xa6, 0x02, 0xee, 0xcf, 0x0b, 0xe0, 0x66, 0x8f, 0xd8, 0x78, 0x2a, 0xee, 0xee, - 0xac, 0xb8, 0xc0, 0xa7, 0x96, 0x41, 0x1d, 0x9f, 0xfb, 0xec, 0x6c, 0x50, 0xe3, 0x1b, 0x80, 0xe5, - 0x2d, 0x2b, 0xe0, 0x3e, 0x61, 0xc8, 0xb5, 0x88, 0xf2, 0x06, 0x16, 0x45, 0x21, 0x1d, 0xec, 0x63, - 0x15, 0xd4, 0xc1, 0x6a, 0x79, 0xe3, 0x8e, 0x9e, 0xf6, 0x6f, 0xa4, 0xab, 0x7b, 0xfd, 0xae, 0x30, - 0x70, 0x5d, 0xd0, 0xfa, 0x60, 0x5d, 0xdf, 0x6d, 0xbf, 0x25, 0xa6, 0xff, 0x8c, 0xf8, 0xb8, 0xa9, - 0x1c, 0x0d, 0x6b, 0x99, 0x70, 0x58, 0x83, 0xa9, 0x0d, 0x8d, 0x54, 0x95, 0x16, 0x2c, 0xb0, 0xc0, - 0x22, 0x5c, 0xcd, 0xd6, 0x73, 0xab, 0xe5, 0x8d, 0x1b, 0xfa, 0xac, 0xe3, 0xd1, 0xf7, 0x5c, 0x8b, - 0x9a, 0x87, 0x28, 0xb0, 0x48, 0xb3, 0x12, 0x4b, 0x16, 0xc4, 0x8a, 0xa3, 0x48, 0xa1, 0xf1, 0x29, - 0x0b, 0x95, 0xb1, 0xe4, 0x9b, 0xd4, 0xe9, 0x50, 0xa7, 0xbb, 0x80, 0x1a, 0x76, 0x61, 0x91, 0x07, - 0xd2, 0x91, 0x94, 0x71, 0x7d, 0x76, 0x19, 0x2f, 0x22, 0xb2, 0x79, 0x25, 0x96, 0x2c, 0xc6, 0x06, - 0x8e, 0x46, 0x22, 0xca, 0x36, 0x5c, 0x62, 0xae, 0x45, 0x10, 0x39, 0x50, 0x73, 0x32, 0xe3, 0xbf, - 0xe8, 0xa1, 0x08, 0x6c, 0x56, 0x63, 0xbd, 0xa5, 0xd8, 0x80, 0x12, 0x89, 0xc6, 0x0f, 0x00, 0xaf, - 0x4d, 0xf7, 0x65, 0x9b, 0x72, 0x5f, 0x79, 0x3d, 0xd5, 0x1b, 0xfd, 0x62, 0xbd, 0x11, 0xd1, 0xb2, - 0x33, 0xa3, 0x32, 0x12, 0xcb, 0x58, 0x5f, 0x9e, 0xc3, 0x02, 0xf5, 0x89, 0x9d, 0x34, 0x65, 0x6d, - 0x76, 0x11, 0xd3, 0xe9, 0xa5, 0x67, 0xdc, 0x12, 0x12, 0x28, 0x52, 0x6a, 0x7c, 0x07, 0xb0, 0x3a, - 0x06, 0x2f, 0xa0, 0x88, 0x27, 0x93, 0x45, 0xdc, 0xbc, 0x58, 0x11, 0xe7, 0x67, 0xff, 0x1b, 0x40, - 0x98, 0x5e, 0x63, 0xa5, 0x06, 0x0b, 0x03, 0xc2, 0xda, 0x5c, 0x05, 0xf5, 0xdc, 0x6a, 0xa9, 0x59, - 0x12, 0xfc, 0xbe, 0x30, 0xa0, 0xc8, 0xae, 0xdc, 0x82, 0x25, 0xec, 0xd1, 0xc7, 0xcc, 0x0d, 0x3c, - 0xae, 0xe6, 0x24, 0x54, 0x09, 0x87, 0xb5, 0xd2, 0xe6, 0x5e, 0x2b, 0x32, 0xa2, 0xd4, 0x2f, 0x60, - 0x46, 0xb8, 0x1b, 0x30, 0x93, 0x70, 0x35, 0x9f, 0xc2, 0x28, 0x31, 0xa2, 0xd4, 0xaf, 0x3c, 0x80, - 0x95, 0x64, 0xb1, 0x83, 0x6d, 0xc2, 0xd5, 0x82, 0x0c, 0x58, 0x0e, 0x87, 0xb5, 0x0a, 0x1a, 0x77, - 0xa0, 0x49, 0x4e, 0x79, 0x04, 0xab, 0x8e, 0xeb, 0x24, 0xc8, 0x4b, 0xb4, 0xcd, 0xd5, 0x4b, 0x32, - 0xf4, 0x6a, 0x38, 0xac, 0x55, 0x77, 0x26, 0x5d, 0xe8, 0x2c, 0xdb, 0xf8, 0x0a, 0x60, 0xfe, 0xdf, - 0x9b, 0x2c, 0x1f, 0xb2, 0xb0, 0xfc, 0x7f, 0xa4, 0x8c, 0x8d, 0x14, 0xf1, 0x0c, 0x17, 0x3b, 0x4b, - 0x2e, 0xfe, 0x0c, 0xe7, 0x0f, 0x91, 0xcf, 0x00, 0x16, 0x17, 0x34, 0x3d, 0xb6, 0x26, 0xd3, 0xd6, - 0xe6, 0xa4, 0x7d, 0x7e, 0xbe, 0xef, 0x60, 0x72, 0x02, 0xca, 0x1a, 0x2c, 0x26, 0x2f, 0x5e, 0x66, - 0x5b, 0x4a, 0x77, 0x4f, 0x86, 0x02, 0x1a, 0x11, 0x4a, 0x1d, 0xe6, 0xfb, 0xd4, 0xe9, 0xa8, 0x59, - 0x49, 0x5e, 0x8e, 0xc9, 0xfc, 0x53, 0xea, 0x74, 0x90, 0xf4, 0x08, 0xc2, 0xc1, 0x36, 0x91, 0x77, - 0x62, 0x8c, 0x10, 0x6f, 0x1d, 0x49, 0x4f, 0xe3, 0x0b, 0x80, 0x4b, 0xf1, 0x7d, 0x1a, 0xe9, 0x81, - 0x99, 0x7a, 0x1b, 0x10, 0x62, 0x8f, 0xee, 0x13, 0xc6, 0xa9, 0xeb, 0xc4, 0xfb, 0x8e, 0x6e, 0xfa, - 0xe6, 0x5e, 0x2b, 0xf6, 0xa0, 0x31, 0x6a, 0x7e, 0x0e, 0x8a, 0x01, 0x4b, 0xe2, 0xcb, 0x3d, 0x6c, - 0x12, 0x35, 0x2f, 0xb1, 0xe5, 0x18, 0x2b, 0xed, 0x24, 0x0e, 0x94, 0x32, 0x4d, 0xfd, 0xe8, 0x54, - 0xcb, 0x1c, 0x9f, 0x6a, 0x99, 0x93, 0x53, 0x2d, 0xf3, 0x3e, 0xd4, 0xc0, 0x51, 0xa8, 0x81, 0xe3, - 0x50, 0x03, 0x27, 0xa1, 0x06, 0x7e, 0x86, 0x1a, 0xf8, 0xf8, 0x4b, 0xcb, 0xbc, 0x2a, 0x26, 0xcd, - 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x38, 0x05, 0x46, 0x58, 0x0a, 0x00, 0x00, + // 844 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0xbf, 0x8f, 0xe3, 0x44, + 0x14, 0xce, 0x64, 0x13, 0x36, 0x99, 0x65, 0x15, 0x6e, 0x38, 0x21, 0x6b, 0x85, 0x9c, 0xc5, 0x02, + 0xe9, 0x10, 0x87, 0xcd, 0xee, 0x21, 0xa0, 0xa1, 0x58, 0x5f, 0x81, 0x16, 0x96, 0xbd, 0x65, 0x4e, + 0x5c, 0x81, 0x28, 0x98, 0x38, 0x73, 0xce, 0x10, 0xdb, 0x63, 0xcd, 0x8c, 0x23, 0x9d, 0x68, 0x68, + 0x68, 0x11, 0x0d, 0x05, 0x3d, 0x2d, 0x0d, 0x94, 0xfc, 0x03, 0x4b, 0x77, 0xe5, 0x56, 0x11, 0x6b, + 0xfe, 0x10, 0x90, 0xc7, 0x76, 0xec, 0xfc, 0x22, 0xa9, 0x22, 0x21, 0x51, 0x25, 0xf3, 0xde, 0xf7, + 0xbe, 0xf7, 0xde, 0x37, 0xf3, 0x9e, 0xe1, 0xd9, 0xf8, 0x03, 0x69, 0x33, 0xee, 0x8c, 0x93, 0x01, + 0x15, 0x11, 0x55, 0x54, 0x3a, 0x13, 0x1a, 0x0d, 0xb9, 0x70, 0x0a, 0x07, 0x89, 0x99, 0x23, 0x06, + 0xc4, 0x73, 0x26, 0x27, 0x24, 0x88, 0x47, 0xe4, 0xc4, 0xf1, 0x69, 0x44, 0x05, 0x51, 0x74, 0x68, + 0xc7, 0x82, 0x2b, 0x8e, 0x8c, 0x1c, 0x69, 0x93, 0x98, 0xd9, 0x19, 0xd2, 0x2e, 0x91, 0x47, 0x6f, + 0xfb, 0x4c, 0x8d, 0x92, 0x81, 0xed, 0xf1, 0xd0, 0xf1, 0xb9, 0xcf, 0x1d, 0x1d, 0x30, 0x48, 0x9e, + 0xea, 0x93, 0x3e, 0xe8, 0x7f, 0x39, 0xd1, 0xd1, 0xbb, 0x55, 0xca, 0x90, 0x78, 0x23, 0x16, 0x51, + 0xf1, 0xcc, 0x89, 0xc7, 0x7e, 0x66, 0x90, 0x4e, 0x48, 0x15, 0x71, 0x26, 0x4b, 0xe9, 0x8f, 0x9c, + 0x75, 0x51, 0x22, 0x89, 0x14, 0x0b, 0xe9, 0x52, 0xc0, 0x7b, 0x9b, 0x02, 0xa4, 0x37, 0xa2, 0x21, + 0x59, 0x8a, 0x7b, 0xb0, 0x2e, 0x2e, 0x51, 0x2c, 0x70, 0x58, 0xa4, 0xa4, 0x12, 0x8b, 0x41, 0xd6, + 0x4f, 0x00, 0xf6, 0xce, 0x7c, 0x5f, 0x50, 0x9f, 0x28, 0xc6, 0x23, 0x9c, 0x04, 0x14, 0x7d, 0x07, + 0xe0, 0x5d, 0x2f, 0x48, 0xa4, 0xa2, 0x02, 0xf3, 0x80, 0x3e, 0xa6, 0x01, 0xf5, 0x14, 0x17, 0xd2, + 0x00, 0xc7, 0x7b, 0xf7, 0x0e, 0x4e, 0x1f, 0xd8, 0x95, 0xa0, 0xb3, 0x44, 0x76, 0x3c, 0xf6, 0x33, + 0x83, 0xb4, 0x33, 0x1d, 0xec, 0xc9, 0x89, 0x7d, 0x41, 0x06, 0x34, 0x28, 0x63, 0xdd, 0x57, 0xaf, + 0xa7, 0xfd, 0x46, 0x3a, 0xed, 0xdf, 0x7d, 0xb8, 0x82, 0x18, 0xaf, 0x4c, 0x67, 0xfd, 0xdc, 0x84, + 0x07, 0x35, 0x38, 0xfa, 0x0a, 0x76, 0x32, 0xf2, 0x21, 0x51, 0xc4, 0x00, 0xc7, 0xe0, 0xde, 0xc1, + 0xe9, 0x3b, 0xdb, 0x95, 0xf2, 0x68, 0xf0, 0x35, 0xf5, 0xd4, 0xa7, 0x54, 0x11, 0x17, 0x15, 0x75, + 0xc0, 0xca, 0x86, 0x67, 0xac, 0xe8, 0x1c, 0xb6, 0x45, 0x12, 0x50, 0x69, 0x34, 0x75, 0xa7, 0xaf, + 0xdb, 0xeb, 0x9e, 0x8e, 0x7d, 0xc5, 0x03, 0xe6, 0x3d, 0xcb, 0xe4, 0x72, 0x0f, 0x0b, 0xca, 0x76, + 0x76, 0x92, 0x38, 0x67, 0x40, 0x23, 0xd8, 0x23, 0xf3, 0xba, 0x1a, 0x7b, 0xba, 0xe6, 0x37, 0xd7, + 0x93, 0x2e, 0x5c, 0x84, 0xfb, 0x72, 0x3a, 0xed, 0x2f, 0xde, 0x0e, 0x5e, 0xa4, 0xb5, 0x7e, 0x6c, + 0x42, 0x54, 0x93, 0xc9, 0x65, 0xd1, 0x90, 0x45, 0xfe, 0x0e, 0xd4, 0x7a, 0x04, 0x3b, 0x32, 0xd1, + 0x8e, 0x52, 0xb0, 0xd7, 0xd6, 0xf7, 0xf6, 0x38, 0x47, 0xba, 0x2f, 0x15, 0x94, 0x9d, 0xc2, 0x20, + 0xf1, 0x8c, 0x04, 0x5d, 0xc0, 0x7d, 0xc1, 0x03, 0x8a, 0xe9, 0xd3, 0x42, 0xab, 0x7f, 0xe1, 0xc3, + 0x39, 0xd0, 0xed, 0x15, 0x7c, 0xfb, 0x85, 0x01, 0x97, 0x14, 0xd6, 0x1f, 0x00, 0xbe, 0xb2, 0xac, + 0xcb, 0x05, 0x93, 0x0a, 0x7d, 0xb9, 0xa4, 0x8d, 0xbd, 0xe5, 0xa3, 0x66, 0x32, 0x57, 0x66, 0xd6, + 0x46, 0x69, 0xa9, 0xe9, 0xf2, 0x19, 0x6c, 0x33, 0x45, 0xc3, 0x52, 0x94, 0xfb, 0xeb, 0x9b, 0x58, + 0x2e, 0xaf, 0x7a, 0x4d, 0xe7, 0x19, 0x05, 0xce, 0x99, 0xac, 0xdf, 0x01, 0xec, 0xd5, 0xc0, 0x3b, + 0x68, 0xe2, 0xe3, 0xf9, 0x26, 0xde, 0xd8, 0xae, 0x89, 0xd5, 0xd5, 0xff, 0x0d, 0x20, 0xac, 0x06, + 0x06, 0xf5, 0x61, 0x7b, 0x42, 0xc5, 0x20, 0xdf, 0x27, 0x5d, 0xb7, 0x9b, 0xe1, 0x9f, 0x64, 0x06, + 0x9c, 0xdb, 0xd1, 0x5b, 0xb0, 0x4b, 0x62, 0xf6, 0x91, 0xe0, 0x49, 0x2c, 0x8d, 0x3d, 0x0d, 0x3a, + 0x4c, 0xa7, 0xfd, 0xee, 0xd9, 0xd5, 0x79, 0x6e, 0xc4, 0x95, 0x3f, 0x03, 0x0b, 0x2a, 0x79, 0x22, + 0x3c, 0x2a, 0x8d, 0x56, 0x05, 0xc6, 0xa5, 0x11, 0x57, 0x7e, 0xf4, 0x3e, 0x3c, 0x2c, 0x0f, 0x97, + 0x24, 0xa4, 0xd2, 0x68, 0xeb, 0x80, 0x3b, 0xe9, 0xb4, 0x7f, 0x88, 0xeb, 0x0e, 0x3c, 0x8f, 0x43, + 0x1f, 0xc2, 0x5e, 0xc4, 0xa3, 0x12, 0xf2, 0x39, 0xbe, 0x90, 0xc6, 0x0b, 0x3a, 0x54, 0xcf, 0xe8, + 0xe5, 0xbc, 0x0b, 0x2f, 0x62, 0xad, 0xdf, 0x00, 0x6c, 0xfd, 0xe7, 0x76, 0x98, 0xf5, 0x7d, 0x13, + 0x1e, 0xfc, 0xbf, 0x52, 0x6a, 0x2b, 0x25, 0x1b, 0xc3, 0xdd, 0xee, 0x92, 0xed, 0xc7, 0x70, 0xf3, + 0x12, 0xf9, 0x05, 0xc0, 0xce, 0x8e, 0xb6, 0xc7, 0xc3, 0xf9, 0xb2, 0xcd, 0x0d, 0x65, 0xaf, 0xae, + 0xf7, 0x1b, 0x58, 0xde, 0x00, 0xba, 0x0f, 0x3b, 0xe5, 0xc4, 0xeb, 0x6a, 0xbb, 0x55, 0xf6, 0x72, + 0x29, 0xe0, 0x19, 0x02, 0x1d, 0xc3, 0xd6, 0x98, 0x45, 0x43, 0xa3, 0xa9, 0x91, 0x2f, 0x16, 0xc8, + 0xd6, 0x27, 0x2c, 0x1a, 0x62, 0xed, 0xc9, 0x10, 0x11, 0x09, 0xf3, 0x4f, 0x72, 0x0d, 0x91, 0xcd, + 0x3a, 0xd6, 0x1e, 0xeb, 0x57, 0x00, 0xf7, 0x8b, 0xf7, 0x34, 0xe3, 0x03, 0x6b, 0xf9, 0x4e, 0x21, + 0x24, 0x31, 0x7b, 0x42, 0x85, 0x64, 0x3c, 0x2a, 0xf2, 0xce, 0x5e, 0xfa, 0xd9, 0xd5, 0x79, 0xe1, + 0xc1, 0x35, 0xd4, 0xe6, 0x1a, 0x90, 0x03, 0xbb, 0xd9, 0xaf, 0x8c, 0x89, 0x47, 0x8d, 0x96, 0x86, + 0xdd, 0x29, 0x60, 0xdd, 0xcb, 0xd2, 0x81, 0x2b, 0x8c, 0x6b, 0x5f, 0xdf, 0x9a, 0x8d, 0xe7, 0xb7, + 0x66, 0xe3, 0xe6, 0xd6, 0x6c, 0x7c, 0x9b, 0x9a, 0xe0, 0x3a, 0x35, 0xc1, 0xf3, 0xd4, 0x04, 0x37, + 0xa9, 0x09, 0xfe, 0x4c, 0x4d, 0xf0, 0xc3, 0x5f, 0x66, 0xe3, 0x8b, 0x4e, 0x29, 0xfe, 0x3f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xeb, 0xcc, 0xe2, 0x61, 0x5e, 0x0b, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/generated.proto index 89f45b28e..28a4ae3d0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/generated.proto @@ -29,6 +29,14 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; +// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole +message AggregationRule { + // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. + // If any of the selectors match, then the ClusterRole's permissions will be added + // +optional + repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector clusterRoleSelectors = 1; +} + // ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. message ClusterRole { // Standard object's metadata. @@ -37,6 +45,12 @@ message ClusterRole { // Rules holds all the PolicyRules for this ClusterRole repeated PolicyRule rules = 2; + + // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. + // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be + // stomped by the controller. + // +optional + optional AggregationRule aggregationRule = 3; } // ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/register.go index 9cfd71f45..0c6977685 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/register.go @@ -40,7 +40,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Role{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/types.go index 06fa6ce8e..843d998ec 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/types.go @@ -172,6 +172,20 @@ type ClusterRole struct { // Rules holds all the PolicyRules for this ClusterRole Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` + + // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. + // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be + // stomped by the controller. + // +optional + AggregationRule *AggregationRule `json:"aggregationRule,omitempty" protobuf:"bytes,3,opt,name=aggregationRule"` +} + +// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole +type AggregationRule struct { + // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. + // If any of the selectors match, then the ClusterRole's permissions will be added + // +optional + ClusterRoleSelectors []metav1.LabelSelector `json:"clusterRoleSelectors,omitempty" protobuf:"bytes,1,rep,name=clusterRoleSelectors"` } // +genclient diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go index d58a722af..e56cd0f10 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go @@ -27,10 +27,20 @@ package v1alpha1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE +var map_AggregationRule = map[string]string{ + "": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "clusterRoleSelectors": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", +} + +func (AggregationRule) SwaggerDoc() map[string]string { + return map_AggregationRule +} + var map_ClusterRole = map[string]string{ - "": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "metadata": "Standard object's metadata.", - "rules": "Rules holds all the PolicyRules for this ClusterRole", + "": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", + "metadata": "Standard object's metadata.", + "rules": "Rules holds all the PolicyRules for this ClusterRole", + "aggregationRule": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", } func (ClusterRole) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go index e4cab8325..abbb994fd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go @@ -21,66 +21,31 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRole).DeepCopyInto(out.(*ClusterRole)) - return nil - }, InType: reflect.TypeOf(&ClusterRole{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleBinding).DeepCopyInto(out.(*ClusterRoleBinding)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleBinding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleBindingList).DeepCopyInto(out.(*ClusterRoleBindingList)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleBindingList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleList).DeepCopyInto(out.(*ClusterRoleList)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyRule).DeepCopyInto(out.(*PolicyRule)) - return nil - }, InType: reflect.TypeOf(&PolicyRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Role).DeepCopyInto(out.(*Role)) - return nil - }, InType: reflect.TypeOf(&Role{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleBinding).DeepCopyInto(out.(*RoleBinding)) - return nil - }, InType: reflect.TypeOf(&RoleBinding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleBindingList).DeepCopyInto(out.(*RoleBindingList)) - return nil - }, InType: reflect.TypeOf(&RoleBindingList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleList).DeepCopyInto(out.(*RoleList)) - return nil - }, InType: reflect.TypeOf(&RoleList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleRef).DeepCopyInto(out.(*RoleRef)) - return nil - }, InType: reflect.TypeOf(&RoleRef{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Subject).DeepCopyInto(out.(*Subject)) - return nil - }, InType: reflect.TypeOf(&Subject{})}, - ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AggregationRule) DeepCopyInto(out *AggregationRule) { + *out = *in + if in.ClusterRoleSelectors != nil { + in, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors + *out = make([]v1.LabelSelector, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule. +func (in *AggregationRule) DeepCopy() *AggregationRule { + if in == nil { + return nil + } + out := new(AggregationRule) + in.DeepCopyInto(out) + return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. @@ -95,6 +60,15 @@ func (in *ClusterRole) DeepCopyInto(out *ClusterRole) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.AggregationRule != nil { + in, out := &in.AggregationRule, &out.AggregationRule + if *in == nil { + *out = nil + } else { + *out = new(AggregationRule) + (*in).DeepCopyInto(*out) + } + } return } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/BUILD index 3d0fcbd6a..c9aa763f4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/BUILD @@ -19,7 +19,6 @@ go_library( deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/doc.go index bb7d47df9..4b77c9c6b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=rbac.authorization.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/generated.pb.go index 9cb4935c0..8cb2c4bec 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/generated.pb.go @@ -25,6 +25,7 @@ limitations under the License. k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1beta1/generated.proto It has these top-level messages: + AggregationRule ClusterRole ClusterRoleBinding ClusterRoleBindingList @@ -43,6 +44,8 @@ import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + import strings "strings" import reflect "reflect" @@ -59,51 +62,56 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package +func (m *AggregationRule) Reset() { *m = AggregationRule{} } +func (*AggregationRule) ProtoMessage() {} +func (*AggregationRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + func (m *ClusterRole) Reset() { *m = ClusterRole{} } func (*ClusterRole) ProtoMessage() {} -func (*ClusterRole) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } +func (*ClusterRole) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } func (m *ClusterRoleBinding) Reset() { *m = ClusterRoleBinding{} } func (*ClusterRoleBinding) ProtoMessage() {} -func (*ClusterRoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (*ClusterRoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } func (m *ClusterRoleBindingList) Reset() { *m = ClusterRoleBindingList{} } func (*ClusterRoleBindingList) ProtoMessage() {} -func (*ClusterRoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } +func (*ClusterRoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } func (m *ClusterRoleList) Reset() { *m = ClusterRoleList{} } func (*ClusterRoleList) ProtoMessage() {} -func (*ClusterRoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } +func (*ClusterRoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } func (m *PolicyRule) Reset() { *m = PolicyRule{} } func (*PolicyRule) ProtoMessage() {} -func (*PolicyRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (*PolicyRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func (m *Role) Reset() { *m = Role{} } func (*Role) ProtoMessage() {} -func (*Role) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*Role) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *RoleBinding) Reset() { *m = RoleBinding{} } func (*RoleBinding) ProtoMessage() {} -func (*RoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*RoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *RoleBindingList) Reset() { *m = RoleBindingList{} } func (*RoleBindingList) ProtoMessage() {} -func (*RoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*RoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *RoleList) Reset() { *m = RoleList{} } func (*RoleList) ProtoMessage() {} -func (*RoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*RoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *RoleRef) Reset() { *m = RoleRef{} } func (*RoleRef) ProtoMessage() {} -func (*RoleRef) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*RoleRef) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *Subject) Reset() { *m = Subject{} } func (*Subject) ProtoMessage() {} -func (*Subject) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*Subject) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func init() { + proto.RegisterType((*AggregationRule)(nil), "k8s.io.api.rbac.v1beta1.AggregationRule") proto.RegisterType((*ClusterRole)(nil), "k8s.io.api.rbac.v1beta1.ClusterRole") proto.RegisterType((*ClusterRoleBinding)(nil), "k8s.io.api.rbac.v1beta1.ClusterRoleBinding") proto.RegisterType((*ClusterRoleBindingList)(nil), "k8s.io.api.rbac.v1beta1.ClusterRoleBindingList") @@ -116,6 +124,36 @@ func init() { proto.RegisterType((*RoleRef)(nil), "k8s.io.api.rbac.v1beta1.RoleRef") proto.RegisterType((*Subject)(nil), "k8s.io.api.rbac.v1beta1.Subject") } +func (m *AggregationRule) 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 *AggregationRule) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ClusterRoleSelectors) > 0 { + for _, msg := range m.ClusterRoleSelectors { + dAtA[i] = 0xa + 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 *ClusterRole) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -151,6 +189,16 @@ func (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) { i += n } } + if m.AggregationRule != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AggregationRule.Size())) + n2, err := m.AggregationRule.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + } return i, nil } @@ -172,11 +220,11 @@ func (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n2, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n3, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n2 + i += n3 if len(m.Subjects) > 0 { for _, msg := range m.Subjects { dAtA[i] = 0x12 @@ -192,11 +240,11 @@ func (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RoleRef.Size())) - n3, err := m.RoleRef.MarshalTo(dAtA[i:]) + n4, err := m.RoleRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n3 + i += n4 return i, nil } @@ -218,11 +266,11 @@ func (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n4, err := m.ListMeta.MarshalTo(dAtA[i:]) + n5, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n4 + i += n5 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -256,11 +304,11 @@ func (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n5, err := m.ListMeta.MarshalTo(dAtA[i:]) + n6, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n5 + i += n6 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -387,11 +435,11 @@ func (m *Role) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n6, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n7 if len(m.Rules) > 0 { for _, msg := range m.Rules { dAtA[i] = 0x12 @@ -425,11 +473,11 @@ func (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n8, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n8 if len(m.Subjects) > 0 { for _, msg := range m.Subjects { dAtA[i] = 0x12 @@ -445,11 +493,11 @@ func (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RoleRef.Size())) - n8, err := m.RoleRef.MarshalTo(dAtA[i:]) + n9, err := m.RoleRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n9 return i, nil } @@ -471,11 +519,11 @@ func (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n9, err := m.ListMeta.MarshalTo(dAtA[i:]) + n10, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n10 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -509,11 +557,11 @@ func (m *RoleList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n10, err := m.ListMeta.MarshalTo(dAtA[i:]) + n11, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n11 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -620,6 +668,18 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return offset + 1 } +func (m *AggregationRule) Size() (n int) { + var l int + _ = l + if len(m.ClusterRoleSelectors) > 0 { + for _, e := range m.ClusterRoleSelectors { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func (m *ClusterRole) Size() (n int) { var l int _ = l @@ -631,6 +691,10 @@ func (m *ClusterRole) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if m.AggregationRule != nil { + l = m.AggregationRule.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -811,6 +875,16 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (this *AggregationRule) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AggregationRule{`, + `ClusterRoleSelectors:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ClusterRoleSelectors), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} func (this *ClusterRole) String() string { if this == nil { return "nil" @@ -818,6 +892,7 @@ func (this *ClusterRole) String() string { s := strings.Join([]string{`&ClusterRole{`, `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "PolicyRule", "PolicyRule", 1), `&`, ``, 1) + `,`, + `AggregationRule:` + strings.Replace(fmt.Sprintf("%v", this.AggregationRule), "AggregationRule", "AggregationRule", 1) + `,`, `}`, }, "") return s @@ -948,6 +1023,87 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } +func (m *AggregationRule) 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: AggregationRule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AggregationRule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterRoleSelectors", 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.ClusterRoleSelectors = append(m.ClusterRoleSelectors, k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{}) + if err := m.ClusterRoleSelectors[len(m.ClusterRoleSelectors)-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 *ClusterRole) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1038,6 +1194,39 @@ func (m *ClusterRole) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AggregationRule", 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.AggregationRule == nil { + m.AggregationRule = &AggregationRule{} + } + if err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2504,52 +2693,58 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 751 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x94, 0xcd, 0x6e, 0xd3, 0x4a, - 0x14, 0xc7, 0xe3, 0x7c, 0x28, 0xf1, 0xe4, 0x46, 0xb9, 0xf5, 0x95, 0xee, 0xb5, 0x2a, 0x5d, 0x27, - 0x0a, 0x2c, 0x2a, 0x95, 0xda, 0xb4, 0x20, 0x60, 0x83, 0x04, 0x66, 0x01, 0x55, 0x4b, 0xa8, 0x06, - 0xc1, 0x02, 0xb1, 0x60, 0xe2, 0x4c, 0xd3, 0x21, 0xf1, 0x87, 0x66, 0xc6, 0x91, 0x2a, 0x36, 0x3c, - 0x00, 0x0b, 0x24, 0x5e, 0x83, 0x15, 0x3b, 0x78, 0x82, 0x2c, 0xbb, 0xec, 0x2a, 0xa2, 0xe6, 0x41, - 0x40, 0x33, 0xb6, 0xe3, 0xa4, 0x69, 0xda, 0xac, 0x22, 0x21, 0xb1, 0x4a, 0xe6, 0x9c, 0xdf, 0xf9, - 0x9f, 0x0f, 0xcf, 0x1c, 0xf0, 0xa0, 0x7f, 0x8f, 0x99, 0xc4, 0xb7, 0xfa, 0x61, 0x07, 0x53, 0x0f, - 0x73, 0xcc, 0xac, 0x21, 0xf6, 0xba, 0x3e, 0xb5, 0x12, 0x07, 0x0a, 0x88, 0x45, 0x3b, 0xc8, 0xb1, - 0x86, 0xdb, 0x1d, 0xcc, 0xd1, 0xb6, 0xd5, 0xc3, 0x1e, 0xa6, 0x88, 0xe3, 0xae, 0x19, 0x50, 0x9f, - 0xfb, 0xda, 0x7f, 0x31, 0x68, 0xa2, 0x80, 0x98, 0x02, 0x34, 0x13, 0x70, 0x7d, 0xab, 0x47, 0xf8, - 0x51, 0xd8, 0x31, 0x1d, 0xdf, 0xb5, 0x7a, 0x7e, 0xcf, 0xb7, 0x24, 0xdf, 0x09, 0x0f, 0xe5, 0x49, - 0x1e, 0xe4, 0xbf, 0x58, 0x67, 0xfd, 0x76, 0x96, 0xd0, 0x45, 0xce, 0x11, 0xf1, 0x30, 0x3d, 0xb6, - 0x82, 0x7e, 0x4f, 0x18, 0x98, 0xe5, 0x62, 0x8e, 0xac, 0xe1, 0x5c, 0xf6, 0x75, 0x6b, 0x51, 0x14, - 0x0d, 0x3d, 0x4e, 0x5c, 0x3c, 0x17, 0x70, 0xe7, 0xaa, 0x00, 0xe6, 0x1c, 0x61, 0x17, 0xcd, 0xc5, - 0xdd, 0x5a, 0x14, 0x17, 0x72, 0x32, 0xb0, 0x88, 0xc7, 0x19, 0xa7, 0xe7, 0x83, 0x5a, 0x5f, 0x15, - 0x50, 0x7d, 0x34, 0x08, 0x19, 0xc7, 0x14, 0xfa, 0x03, 0xac, 0xbd, 0x01, 0x15, 0xd1, 0x48, 0x17, - 0x71, 0xa4, 0x2b, 0x4d, 0x65, 0xa3, 0xba, 0x73, 0xd3, 0xcc, 0xc6, 0x37, 0xd1, 0x35, 0x83, 0x7e, - 0x4f, 0x18, 0x98, 0x29, 0x68, 0x73, 0xb8, 0x6d, 0x3e, 0xeb, 0xbc, 0xc5, 0x0e, 0x7f, 0x8a, 0x39, - 0xb2, 0xb5, 0xd1, 0xb8, 0x91, 0x8b, 0xc6, 0x0d, 0x90, 0xd9, 0xe0, 0x44, 0x55, 0x7b, 0x02, 0x4a, - 0x34, 0x1c, 0x60, 0xa6, 0xe7, 0x9b, 0x85, 0x8d, 0xea, 0xce, 0x35, 0x73, 0xc1, 0xd7, 0x31, 0x0f, - 0xfc, 0x01, 0x71, 0x8e, 0x61, 0x38, 0xc0, 0x76, 0x2d, 0x51, 0x2c, 0x89, 0x13, 0x83, 0xb1, 0x40, - 0xeb, 0x53, 0x1e, 0x68, 0x53, 0xb5, 0xdb, 0xc4, 0xeb, 0x12, 0xaf, 0xb7, 0x82, 0x16, 0xda, 0xa0, - 0xc2, 0x42, 0xe9, 0x48, 0xbb, 0x68, 0x2e, 0xec, 0xe2, 0x79, 0x0c, 0xda, 0x7f, 0x27, 0x8a, 0x95, - 0xc4, 0xc0, 0xe0, 0x44, 0x43, 0xdb, 0x03, 0x65, 0xea, 0x0f, 0x30, 0xc4, 0x87, 0x7a, 0x41, 0x16, - 0xbc, 0x58, 0x0e, 0xc6, 0x9c, 0x5d, 0x4f, 0xe4, 0xca, 0x89, 0x01, 0xa6, 0x0a, 0xad, 0x91, 0x02, - 0xfe, 0x9d, 0x9f, 0xca, 0x3e, 0x61, 0x5c, 0x7b, 0x3d, 0x37, 0x19, 0x73, 0xb9, 0xc9, 0x88, 0x68, - 0x39, 0x97, 0x49, 0x17, 0xa9, 0x65, 0x6a, 0x2a, 0x07, 0xa0, 0x44, 0x38, 0x76, 0xd3, 0x91, 0x6c, - 0x2e, 0xec, 0x61, 0xbe, 0xba, 0xec, 0x03, 0xef, 0x0a, 0x05, 0x18, 0x0b, 0xb5, 0xbe, 0x29, 0xa0, - 0x3e, 0x05, 0xaf, 0xa0, 0x87, 0xdd, 0xd9, 0x1e, 0xae, 0x2f, 0xd5, 0xc3, 0xc5, 0xc5, 0xff, 0x54, - 0x00, 0xc8, 0xae, 0xb0, 0xd6, 0x00, 0xa5, 0x21, 0xa6, 0x1d, 0xa6, 0x2b, 0xcd, 0xc2, 0x86, 0x6a, - 0xab, 0x82, 0x7f, 0x29, 0x0c, 0x30, 0xb6, 0x6b, 0x9b, 0x40, 0x45, 0x01, 0x79, 0x4c, 0xfd, 0x30, - 0x88, 0xd3, 0xab, 0x76, 0x2d, 0x1a, 0x37, 0xd4, 0x87, 0x07, 0xbb, 0xb1, 0x11, 0x66, 0x7e, 0x01, - 0x53, 0xcc, 0xfc, 0x90, 0x3a, 0x98, 0xe9, 0x85, 0x0c, 0x86, 0xa9, 0x11, 0x66, 0x7e, 0xed, 0x2e, - 0xa8, 0xa5, 0x87, 0x36, 0x72, 0x31, 0xd3, 0x8b, 0x32, 0x60, 0x2d, 0x1a, 0x37, 0x6a, 0x70, 0xda, - 0x01, 0x67, 0x39, 0xed, 0x3e, 0xa8, 0x7b, 0xbe, 0x97, 0x22, 0x2f, 0xe0, 0x3e, 0xd3, 0x4b, 0x32, - 0xf4, 0x9f, 0x68, 0xdc, 0xa8, 0xb7, 0x67, 0x5d, 0xf0, 0x3c, 0xdb, 0xfa, 0xa2, 0x80, 0xe2, 0x6f, - 0xb7, 0x54, 0x3e, 0xe4, 0x41, 0xf5, 0xcf, 0x36, 0x99, 0x6c, 0x13, 0xf1, 0x04, 0x57, 0xbb, 0x46, - 0x96, 0x7e, 0x82, 0x57, 0xef, 0x8f, 0xcf, 0x0a, 0xa8, 0xac, 0x68, 0x71, 0xd8, 0xb3, 0x55, 0xff, - 0x7f, 0x79, 0xd5, 0x17, 0x97, 0xfb, 0x0e, 0xa4, 0xf3, 0xd7, 0x6e, 0x80, 0x4a, 0xfa, 0xd8, 0x65, - 0xb1, 0x6a, 0x96, 0x3c, 0xdd, 0x07, 0x70, 0x42, 0x68, 0x4d, 0x50, 0xec, 0x13, 0xaf, 0xab, 0xe7, - 0x25, 0xf9, 0x57, 0x42, 0x16, 0xf7, 0x88, 0xd7, 0x85, 0xd2, 0x23, 0x08, 0x0f, 0xb9, 0x58, 0x5e, - 0x88, 0x29, 0x42, 0x3c, 0x73, 0x28, 0x3d, 0x62, 0x56, 0xe5, 0xe4, 0x32, 0x4d, 0xf4, 0x94, 0x85, - 0x7a, 0xd3, 0xf5, 0xe5, 0x97, 0xa9, 0xef, 0xf2, 0xec, 0x9a, 0x05, 0x54, 0xf1, 0xcb, 0x02, 0xe4, - 0x60, 0xbd, 0x28, 0xb1, 0xb5, 0x04, 0x53, 0xdb, 0xa9, 0x03, 0x66, 0x8c, 0xbd, 0x35, 0x3a, 0x33, - 0x72, 0x27, 0x67, 0x46, 0xee, 0xf4, 0xcc, 0xc8, 0xbd, 0x8f, 0x0c, 0x65, 0x14, 0x19, 0xca, 0x49, - 0x64, 0x28, 0xa7, 0x91, 0xa1, 0x7c, 0x8f, 0x0c, 0xe5, 0xe3, 0x0f, 0x23, 0xf7, 0xaa, 0x9c, 0x4c, - 0xfd, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x74, 0x24, 0x6a, 0xfa, 0x45, 0x0a, 0x00, 0x00, + // 833 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0xbf, 0x8f, 0xe3, 0x44, + 0x14, 0xce, 0x64, 0x13, 0x6d, 0x3c, 0xcb, 0x2a, 0xdc, 0x70, 0x02, 0x6b, 0x05, 0xce, 0x2a, 0x50, + 0x44, 0x3a, 0xce, 0x66, 0xef, 0x10, 0xd0, 0x20, 0x71, 0xa6, 0x80, 0xd5, 0x2d, 0x61, 0x35, 0x27, + 0x28, 0x10, 0x05, 0x63, 0x67, 0xce, 0x19, 0xe2, 0x5f, 0x9a, 0x19, 0x47, 0x3a, 0xd1, 0xd0, 0xd0, + 0x51, 0x20, 0x51, 0xd1, 0x52, 0x53, 0x51, 0xf2, 0x17, 0xa4, 0xbc, 0xf2, 0xaa, 0x88, 0x35, 0x7f, + 0x08, 0x68, 0xfc, 0x23, 0x4e, 0xe2, 0xf8, 0x2e, 0x55, 0x24, 0xa4, 0xab, 0x76, 0xe7, 0xbd, 0xef, + 0x7d, 0xef, 0x7b, 0x9f, 0x67, 0x5e, 0xe0, 0x27, 0xb3, 0x8f, 0x84, 0xc9, 0x22, 0x6b, 0x96, 0x38, + 0x94, 0x87, 0x54, 0x52, 0x61, 0xcd, 0x69, 0x38, 0x89, 0xb8, 0x55, 0x24, 0x48, 0xcc, 0x2c, 0xee, + 0x10, 0xd7, 0x9a, 0x5f, 0x38, 0x54, 0x92, 0x0b, 0xcb, 0xa3, 0x21, 0xe5, 0x44, 0xd2, 0x89, 0x19, + 0xf3, 0x48, 0x46, 0xe8, 0x8d, 0x1c, 0x68, 0x92, 0x98, 0x99, 0x0a, 0x68, 0x16, 0xc0, 0xb3, 0xbb, + 0x1e, 0x93, 0xd3, 0xc4, 0x31, 0xdd, 0x28, 0xb0, 0xbc, 0xc8, 0x8b, 0xac, 0x0c, 0xef, 0x24, 0x8f, + 0xb3, 0x53, 0x76, 0xc8, 0xfe, 0xcb, 0x79, 0xce, 0x46, 0xf5, 0x86, 0xc4, 0x8f, 0xa7, 0xf5, 0x8e, + 0x67, 0xef, 0x57, 0xc8, 0x80, 0xb8, 0x53, 0x16, 0x52, 0xfe, 0xc4, 0x8a, 0x67, 0x9e, 0x0a, 0x08, + 0x2b, 0xa0, 0x92, 0x58, 0xf3, 0x7a, 0x95, 0xd5, 0x54, 0xc5, 0x93, 0x50, 0xb2, 0x80, 0xd6, 0x0a, + 0x3e, 0x78, 0x51, 0x81, 0x70, 0xa7, 0x34, 0x20, 0xb5, 0xba, 0xfb, 0x4d, 0x75, 0x89, 0x64, 0xbe, + 0xc5, 0x42, 0x29, 0x24, 0xdf, 0x2e, 0x1a, 0xfe, 0x06, 0x60, 0xff, 0x81, 0xe7, 0x71, 0xea, 0x11, + 0xc9, 0xa2, 0x10, 0x27, 0x3e, 0x45, 0x3f, 0x01, 0x78, 0xdb, 0xf5, 0x13, 0x21, 0x29, 0xc7, 0x91, + 0x4f, 0x1f, 0x51, 0x9f, 0xba, 0x32, 0xe2, 0x42, 0x07, 0xe7, 0x47, 0xa3, 0x93, 0x7b, 0xf7, 0xcd, + 0xca, 0xf9, 0x55, 0x23, 0x33, 0x9e, 0x79, 0x2a, 0x20, 0x4c, 0xe5, 0x83, 0x39, 0xbf, 0x30, 0xaf, + 0x88, 0x43, 0xfd, 0xb2, 0xd6, 0x7e, 0x73, 0xb1, 0x1c, 0xb4, 0xd2, 0xe5, 0xe0, 0xf6, 0xa7, 0x3b, + 0x88, 0xf1, 0xce, 0x76, 0xc3, 0xdf, 0xdb, 0xf0, 0x64, 0x0d, 0x8e, 0xbe, 0x83, 0x3d, 0x45, 0x3e, + 0x21, 0x92, 0xe8, 0xe0, 0x1c, 0x8c, 0x4e, 0xee, 0xbd, 0xb7, 0x9f, 0x94, 0x2f, 0x9d, 0xef, 0xa9, + 0x2b, 0xbf, 0xa0, 0x92, 0xd8, 0xa8, 0xd0, 0x01, 0xab, 0x18, 0x5e, 0xb1, 0xa2, 0xcf, 0x61, 0x97, + 0x27, 0x3e, 0x15, 0x7a, 0x3b, 0x9b, 0xf4, 0x6d, 0xb3, 0xe1, 0x8e, 0x99, 0xd7, 0x91, 0xcf, 0xdc, + 0x27, 0xca, 0x2d, 0xfb, 0xb4, 0x60, 0xec, 0xaa, 0x93, 0xc0, 0x39, 0x01, 0xf2, 0x60, 0x9f, 0x6c, + 0xda, 0xaa, 0x1f, 0x65, 0x92, 0x47, 0x8d, 0x9c, 0x5b, 0x9f, 0xc1, 0x7e, 0x2d, 0x5d, 0x0e, 0xb6, + 0xbf, 0x0d, 0xde, 0x66, 0x1d, 0xfe, 0xda, 0x86, 0x68, 0xcd, 0x24, 0x9b, 0x85, 0x13, 0x16, 0x7a, + 0x07, 0xf0, 0x6a, 0x0c, 0x7b, 0x22, 0xc9, 0x12, 0xa5, 0x5d, 0xe7, 0x8d, 0xa3, 0x3d, 0xca, 0x81, + 0xf6, 0xab, 0x05, 0x63, 0xaf, 0x08, 0x08, 0xbc, 0xe2, 0x40, 0x0f, 0xe1, 0x31, 0x8f, 0x7c, 0x8a, + 0xe9, 0xe3, 0xc2, 0xa9, 0x66, 0x3a, 0x9c, 0xe3, 0xec, 0x7e, 0x41, 0x77, 0x5c, 0x04, 0x70, 0xc9, + 0x30, 0x5c, 0x00, 0xf8, 0x7a, 0xdd, 0x95, 0x2b, 0x26, 0x24, 0xfa, 0xb6, 0xe6, 0x8c, 0xb9, 0xe7, + 0x85, 0x66, 0x22, 0xf7, 0x65, 0x35, 0x45, 0x19, 0x59, 0x73, 0xe5, 0x1a, 0x76, 0x99, 0xa4, 0x41, + 0x69, 0xc9, 0x9d, 0xc6, 0x19, 0xea, 0xea, 0xaa, 0x9b, 0x74, 0xa9, 0x18, 0x70, 0x4e, 0x34, 0xfc, + 0x0b, 0xc0, 0xfe, 0x1a, 0xf8, 0x00, 0x33, 0x5c, 0x6e, 0xce, 0xf0, 0xce, 0x5e, 0x33, 0xec, 0x16, + 0xff, 0x2f, 0x80, 0xb0, 0x7a, 0x2b, 0x68, 0x00, 0xbb, 0x73, 0xca, 0x9d, 0x7c, 0x93, 0x68, 0xb6, + 0xa6, 0xf0, 0x5f, 0xab, 0x00, 0xce, 0xe3, 0xe8, 0x0e, 0xd4, 0x48, 0xcc, 0x3e, 0xe3, 0x51, 0x12, + 0xe7, 0xed, 0x35, 0xfb, 0x34, 0x5d, 0x0e, 0xb4, 0x07, 0xd7, 0x97, 0x79, 0x10, 0x57, 0x79, 0x05, + 0xe6, 0x54, 0x44, 0x09, 0x77, 0xa9, 0xd0, 0x8f, 0x2a, 0x30, 0x2e, 0x83, 0xb8, 0xca, 0xa3, 0x0f, + 0xe1, 0x69, 0x79, 0x18, 0x93, 0x80, 0x0a, 0xbd, 0x93, 0x15, 0xdc, 0x4a, 0x97, 0x83, 0x53, 0xbc, + 0x9e, 0xc0, 0x9b, 0x38, 0xf4, 0x31, 0xec, 0x87, 0x51, 0x58, 0x42, 0xbe, 0xc2, 0x57, 0x42, 0xef, + 0x66, 0xa5, 0xd9, 0xfb, 0x1c, 0x6f, 0xa6, 0xf0, 0x36, 0x76, 0xf8, 0x27, 0x80, 0x9d, 0xff, 0xdb, + 0xf6, 0x1a, 0xfe, 0xdc, 0x86, 0x27, 0x2f, 0xb7, 0xc9, 0x6a, 0x9b, 0xa8, 0x27, 0x78, 0xd8, 0x35, + 0xb2, 0xf7, 0x13, 0x7c, 0xf1, 0xfe, 0xf8, 0x03, 0xc0, 0xde, 0x81, 0x16, 0x87, 0xbd, 0xa9, 0xfa, + 0xad, 0xe7, 0xab, 0xde, 0x2d, 0xf7, 0x07, 0x58, 0xfa, 0x8f, 0xde, 0x85, 0xbd, 0xf2, 0xb1, 0x67, + 0x62, 0xb5, 0xaa, 0x79, 0xb9, 0x0f, 0xf0, 0x0a, 0x81, 0xce, 0x61, 0x67, 0xc6, 0xc2, 0x89, 0xde, + 0xce, 0x90, 0xaf, 0x14, 0xc8, 0xce, 0x43, 0x16, 0x4e, 0x70, 0x96, 0x51, 0x88, 0x90, 0x04, 0xf9, + 0x0f, 0xf1, 0x1a, 0x42, 0x3d, 0x73, 0x9c, 0x65, 0x94, 0x57, 0xc7, 0xc5, 0x65, 0x5a, 0xf1, 0x81, + 0x46, 0xbe, 0x75, 0x7d, 0xed, 0x7d, 0xf4, 0x3d, 0xbf, 0x3b, 0xb2, 0xa0, 0xa6, 0xfe, 0x8a, 0x98, + 0xb8, 0x54, 0xef, 0x64, 0xb0, 0x5b, 0x05, 0x4c, 0x1b, 0x97, 0x09, 0x5c, 0x61, 0xec, 0xbb, 0x8b, + 0x1b, 0xa3, 0xf5, 0xf4, 0xc6, 0x68, 0x3d, 0xbb, 0x31, 0x5a, 0x3f, 0xa6, 0x06, 0x58, 0xa4, 0x06, + 0x78, 0x9a, 0x1a, 0xe0, 0x59, 0x6a, 0x80, 0xbf, 0x53, 0x03, 0xfc, 0xf2, 0x8f, 0xd1, 0xfa, 0xe6, + 0xb8, 0x70, 0xfd, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x99, 0xaf, 0xff, 0x74, 0x0b, 0x00, + 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/generated.proto index 6469de720..975de1096 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/generated.proto @@ -21,6 +21,7 @@ syntax = 'proto2'; package k8s.io.api.rbac.v1beta1; +import "k8s.io/api/rbac/v1alpha1/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"; @@ -29,6 +30,14 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; +// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole +message AggregationRule { + // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. + // If any of the selectors match, then the ClusterRole's permissions will be added + // +optional + repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector clusterRoleSelectors = 1; +} + // ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. message ClusterRole { // Standard object's metadata. @@ -37,6 +46,12 @@ message ClusterRole { // Rules holds all the PolicyRules for this ClusterRole repeated PolicyRule rules = 2; + + // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. + // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be + // stomped by the controller. + // +optional + optional AggregationRule aggregationRule = 3; } // ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, @@ -85,7 +100,8 @@ message PolicyRule { // +optional repeated string apiGroups = 2; - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. + // Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. + // '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups. // +optional repeated string resources = 3; diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/register.go index 8f60f0195..c8526a656 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/register.go @@ -40,7 +40,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Role{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/types.go index 30f95a774..091fc1dc9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/types.go @@ -54,7 +54,8 @@ type PolicyRule struct { // the enumerated resources in any API group will be allowed. // +optional APIGroups []string `json:"apiGroups,omitempty" protobuf:"bytes,2,rep,name=apiGroups"` - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. + // Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. + // '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups. // +optional Resources []string `json:"resources,omitempty" protobuf:"bytes,3,rep,name=resources"` // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. @@ -170,6 +171,19 @@ type ClusterRole struct { // Rules holds all the PolicyRules for this ClusterRole Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` + // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. + // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be + // stomped by the controller. + // +optional + AggregationRule *AggregationRule `json:"aggregationRule,omitempty" protobuf:"bytes,3,opt,name=aggregationRule"` +} + +// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole +type AggregationRule struct { + // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. + // If any of the selectors match, then the ClusterRole's permissions will be added + // +optional + ClusterRoleSelectors []metav1.LabelSelector `json:"clusterRoleSelectors,omitempty" protobuf:"bytes,1,rep,name=clusterRoleSelectors"` } // +genclient diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go index 1463d8fea..6180d6d43 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go @@ -27,10 +27,20 @@ package v1beta1 // Those methods can be generated by using hack/update-generated-swagger-docs.sh // AUTO-GENERATED FUNCTIONS START HERE +var map_AggregationRule = map[string]string{ + "": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "clusterRoleSelectors": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", +} + +func (AggregationRule) SwaggerDoc() map[string]string { + return map_AggregationRule +} + var map_ClusterRole = map[string]string{ - "": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "metadata": "Standard object's metadata.", - "rules": "Rules holds all the PolicyRules for this ClusterRole", + "": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", + "metadata": "Standard object's metadata.", + "rules": "Rules holds all the PolicyRules for this ClusterRole", + "aggregationRule": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", } func (ClusterRole) SwaggerDoc() map[string]string { @@ -72,7 +82,7 @@ var map_PolicyRule = map[string]string{ "": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", "verbs": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", "apiGroups": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", - "resources": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", + "resources": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", "resourceNames": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", "nonResourceURLs": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go index 922727646..ac2389561 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go @@ -21,66 +21,31 @@ limitations under the License. package v1beta1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRole).DeepCopyInto(out.(*ClusterRole)) - return nil - }, InType: reflect.TypeOf(&ClusterRole{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleBinding).DeepCopyInto(out.(*ClusterRoleBinding)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleBinding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleBindingList).DeepCopyInto(out.(*ClusterRoleBindingList)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleBindingList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ClusterRoleList).DeepCopyInto(out.(*ClusterRoleList)) - return nil - }, InType: reflect.TypeOf(&ClusterRoleList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyRule).DeepCopyInto(out.(*PolicyRule)) - return nil - }, InType: reflect.TypeOf(&PolicyRule{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Role).DeepCopyInto(out.(*Role)) - return nil - }, InType: reflect.TypeOf(&Role{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleBinding).DeepCopyInto(out.(*RoleBinding)) - return nil - }, InType: reflect.TypeOf(&RoleBinding{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleBindingList).DeepCopyInto(out.(*RoleBindingList)) - return nil - }, InType: reflect.TypeOf(&RoleBindingList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleList).DeepCopyInto(out.(*RoleList)) - return nil - }, InType: reflect.TypeOf(&RoleList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RoleRef).DeepCopyInto(out.(*RoleRef)) - return nil - }, InType: reflect.TypeOf(&RoleRef{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Subject).DeepCopyInto(out.(*Subject)) - return nil - }, InType: reflect.TypeOf(&Subject{})}, - ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AggregationRule) DeepCopyInto(out *AggregationRule) { + *out = *in + if in.ClusterRoleSelectors != nil { + in, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors + *out = make([]v1.LabelSelector, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule. +func (in *AggregationRule) DeepCopy() *AggregationRule { + if in == nil { + return nil + } + out := new(AggregationRule) + in.DeepCopyInto(out) + return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. @@ -95,6 +60,15 @@ func (in *ClusterRole) DeepCopyInto(out *ClusterRole) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.AggregationRule != nil { + in, out := &in.AggregationRule, &out.AggregationRule + if *in == nil { + *out = nil + } else { + *out = new(AggregationRule) + (*in).DeepCopyInto(*out) + } + } return } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD index e7a95040f..c8c197664 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD @@ -19,7 +19,6 @@ go_library( deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/doc.go index bf9015986..e10d07ff7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=scheduling.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/register.go index 91ce6e0cc..24689f0ad 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &PriorityClass{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go index a3ae5c0ff..fad4db662 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PriorityClass).DeepCopyInto(out.(*PriorityClass)) - return nil - }, InType: reflect.TypeOf(&PriorityClass{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PriorityClassList).DeepCopyInto(out.(*PriorityClassList)) - return nil - }, InType: reflect.TypeOf(&PriorityClassList{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PriorityClass) DeepCopyInto(out *PriorityClass) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/BUILD index 1474fc9c6..d7457427d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/BUILD @@ -20,7 +20,6 @@ go_library( "//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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/doc.go index ae1bfb912..05a62c569 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=settings.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/register.go index 2f39af0f9..eee278d95 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &PodPreset{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/zz_generated.deepcopy.go index 07e6ab72d..2c925622b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/settings/v1alpha1/zz_generated.deepcopy.go @@ -22,36 +22,9 @@ package v1alpha1 import ( v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodPreset).DeepCopyInto(out.(*PodPreset)) - return nil - }, InType: reflect.TypeOf(&PodPreset{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodPresetList).DeepCopyInto(out.(*PodPresetList)) - return nil - }, InType: reflect.TypeOf(&PodPresetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodPresetSpec).DeepCopyInto(out.(*PodPresetSpec)) - return nil - }, InType: reflect.TypeOf(&PodPresetSpec{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PodPreset) DeepCopyInto(out *PodPreset) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/BUILD index 2e2a0f042..50a09f0eb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/BUILD @@ -17,7 +17,6 @@ go_library( "//vendor/github.com/gogo/protobuf/sortkeys: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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/doc.go index 0672c58e1..8f4a4045c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=storage.k8s.io // +k8s:openapi-gen=true package v1 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/generated.pb.go index 4befedff1..7157b72ff 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/generated.pb.go @@ -146,6 +146,12 @@ func (m *StorageClass) MarshalTo(dAtA []byte) (int, error) { } i++ } + if m.VolumeBindingMode != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode))) + i += copy(dAtA[i:], *m.VolumeBindingMode) + } return i, nil } @@ -242,6 +248,10 @@ func (m *StorageClass) Size() (n int) { if m.AllowVolumeExpansion != nil { n += 2 } + if m.VolumeBindingMode != nil { + l = len(*m.VolumeBindingMode) + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -293,6 +303,7 @@ func (this *StorageClass) String() string { `ReclaimPolicy:` + valueToStringGenerated(this.ReclaimPolicy) + `,`, `MountOptions:` + fmt.Sprintf("%v", this.MountOptions) + `,`, `AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`, + `VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`, `}`, }, "") return s @@ -600,6 +611,36 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { } b := bool(v != 0) m.AllowVolumeExpansion = &b + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeBindingMode", 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 := VolumeBindingMode(dAtA[iNdEx:postIndex]) + m.VolumeBindingMode = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -842,43 +883,44 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 593 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x41, 0x6f, 0xd3, 0x3e, - 0x18, 0xc6, 0x9b, 0x76, 0xfd, 0x6b, 0x73, 0x37, 0xfd, 0xab, 0x30, 0xa4, 0xa8, 0x87, 0xb4, 0x1a, - 0x97, 0x0a, 0x09, 0x7b, 0xdd, 0x06, 0x9a, 0x90, 0x40, 0xa2, 0x68, 0x12, 0x48, 0x9b, 0x56, 0x05, - 0x89, 0x03, 0xe2, 0x80, 0x9b, 0xbd, 0x64, 0x26, 0x89, 0x1d, 0xd9, 0x4e, 0xa0, 0x37, 0x3e, 0x02, - 0x9f, 0x87, 0x13, 0xc7, 0x1d, 0x77, 0xdc, 0x29, 0x62, 0xe1, 0x5b, 0x70, 0x42, 0x49, 0xca, 0x92, - 0xad, 0x9d, 0xd8, 0xcd, 0x7e, 0xdf, 0xe7, 0xf7, 0xd8, 0x7e, 0xfd, 0xa0, 0xe7, 0xfe, 0xbe, 0xc2, - 0x4c, 0x10, 0x3f, 0x9e, 0x82, 0xe4, 0xa0, 0x41, 0x91, 0x04, 0xf8, 0x89, 0x90, 0x64, 0xde, 0xa0, - 0x11, 0x23, 0x4a, 0x0b, 0x49, 0x3d, 0x20, 0xc9, 0x88, 0x78, 0xc0, 0x41, 0x52, 0x0d, 0x27, 0x38, - 0x92, 0x42, 0x0b, 0xf3, 0x7e, 0x29, 0xc3, 0x34, 0x62, 0x78, 0x2e, 0xc3, 0xc9, 0xa8, 0xf7, 0xc8, - 0x63, 0xfa, 0x34, 0x9e, 0x62, 0x57, 0x84, 0xc4, 0x13, 0x9e, 0x20, 0x85, 0x7a, 0x1a, 0x7f, 0x2c, - 0x76, 0xc5, 0xa6, 0x58, 0x95, 0x2e, 0xbd, 0x87, 0x4b, 0x0f, 0x9b, 0x82, 0xa6, 0x0b, 0x27, 0xf6, - 0xf6, 0x2a, 0x6d, 0x48, 0xdd, 0x53, 0xc6, 0x41, 0xce, 0x48, 0xe4, 0x7b, 0x79, 0x41, 0x91, 0x10, - 0x34, 0x5d, 0x72, 0xcf, 0x1e, 0xb9, 0x8d, 0x92, 0x31, 0xd7, 0x2c, 0x84, 0x05, 0xe0, 0xc9, 0xbf, - 0x00, 0xe5, 0x9e, 0x42, 0x48, 0x17, 0xb8, 0xdd, 0xdb, 0xb8, 0x58, 0xb3, 0x80, 0x30, 0xae, 0x95, - 0x96, 0x37, 0xa1, 0xad, 0x1f, 0x2b, 0x68, 0xfd, 0x4d, 0xf9, 0xee, 0x97, 0x01, 0x55, 0xca, 0xfc, - 0x80, 0x56, 0xf3, 0x97, 0x9c, 0x50, 0x4d, 0x2d, 0x63, 0x60, 0x0c, 0x3b, 0x3b, 0xdb, 0xb8, 0x9a, - 0xf4, 0x95, 0x31, 0x8e, 0x7c, 0x2f, 0x2f, 0x28, 0x9c, 0xab, 0x71, 0x32, 0xc2, 0xc7, 0xd3, 0x4f, - 0xe0, 0xea, 0x23, 0xd0, 0x74, 0x6c, 0x9e, 0xa5, 0xfd, 0x46, 0x96, 0xf6, 0x51, 0x55, 0x73, 0xae, - 0x5c, 0xcd, 0xc7, 0xa8, 0x13, 0x49, 0x91, 0x30, 0xc5, 0x04, 0x07, 0x69, 0x35, 0x07, 0xc6, 0x70, - 0x6d, 0x7c, 0x6f, 0x8e, 0x74, 0x26, 0x55, 0xcb, 0xa9, 0xeb, 0x4c, 0x0f, 0xa1, 0x88, 0x4a, 0x1a, - 0x82, 0x06, 0xa9, 0xac, 0xd6, 0xa0, 0x35, 0xec, 0xec, 0xec, 0xe2, 0xa5, 0x21, 0xc0, 0xf5, 0x17, - 0xe1, 0xc9, 0x15, 0x75, 0xc0, 0xb5, 0x9c, 0x55, 0xb7, 0xab, 0x1a, 0x4e, 0xcd, 0xda, 0xf4, 0xd1, - 0x86, 0x04, 0x37, 0xa0, 0x2c, 0x9c, 0x88, 0x80, 0xb9, 0x33, 0x6b, 0xa5, 0xb8, 0xe1, 0x41, 0x96, - 0xf6, 0x37, 0x9c, 0x7a, 0xe3, 0x77, 0xda, 0xdf, 0xae, 0xc5, 0xc7, 0x15, 0x32, 0xcf, 0x0e, 0x9e, - 0x80, 0x54, 0x4c, 0x69, 0xe0, 0xfa, 0xad, 0x08, 0xe2, 0x10, 0xae, 0x31, 0xce, 0x75, 0x6f, 0x73, - 0x0f, 0xad, 0x87, 0x22, 0xe6, 0xfa, 0x38, 0xd2, 0x4c, 0x70, 0x65, 0xb5, 0x07, 0xad, 0xe1, 0xda, - 0xb8, 0x9b, 0xa5, 0xfd, 0xf5, 0xa3, 0x5a, 0xdd, 0xb9, 0xa6, 0x32, 0x0f, 0xd1, 0x26, 0x0d, 0x02, - 0xf1, 0xb9, 0x3c, 0xe0, 0xe0, 0x4b, 0x44, 0x79, 0x3e, 0x25, 0xeb, 0xbf, 0x81, 0x31, 0x5c, 0x1d, - 0x5b, 0x59, 0xda, 0xdf, 0x7c, 0xb1, 0xa4, 0xef, 0x2c, 0xa5, 0x7a, 0xcf, 0xd0, 0xff, 0x37, 0x66, - 0x64, 0x76, 0x51, 0xcb, 0x87, 0x59, 0x11, 0x80, 0x35, 0x27, 0x5f, 0x9a, 0x9b, 0xa8, 0x9d, 0xd0, - 0x20, 0x86, 0xf2, 0xbf, 0x9c, 0x72, 0xf3, 0xb4, 0xb9, 0x6f, 0x6c, 0x7d, 0x37, 0x50, 0xb7, 0x3e, - 0xf0, 0x43, 0xa6, 0xb4, 0xf9, 0x7e, 0x21, 0x46, 0xf8, 0x6e, 0x31, 0xca, 0xe9, 0x22, 0x44, 0xdd, - 0xf9, 0x37, 0xad, 0xfe, 0xad, 0xd4, 0x22, 0xf4, 0x0a, 0xb5, 0x99, 0x86, 0x50, 0x59, 0xcd, 0x22, - 0x06, 0x0f, 0xee, 0x10, 0x83, 0xf1, 0xc6, 0xdc, 0xaf, 0xfd, 0x3a, 0x27, 0x9d, 0xd2, 0x60, 0x3c, - 0x3c, 0xbb, 0xb4, 0x1b, 0xe7, 0x97, 0x76, 0xe3, 0xe2, 0xd2, 0x6e, 0x7c, 0xcd, 0x6c, 0xe3, 0x2c, - 0xb3, 0x8d, 0xf3, 0xcc, 0x36, 0x2e, 0x32, 0xdb, 0xf8, 0x99, 0xd9, 0xc6, 0xb7, 0x5f, 0x76, 0xe3, - 0x5d, 0x33, 0x19, 0xfd, 0x09, 0x00, 0x00, 0xff, 0xff, 0xbb, 0x57, 0xe7, 0x15, 0xb0, 0x04, 0x00, - 0x00, + // 623 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x4f, 0x6f, 0xd3, 0x3c, + 0x18, 0x6f, 0xda, 0xb7, 0x2f, 0x9b, 0xbb, 0x89, 0x2e, 0x0c, 0x29, 0xea, 0x21, 0xa9, 0xc6, 0xa5, + 0x9a, 0x84, 0xb3, 0x6e, 0x03, 0x4d, 0x48, 0x20, 0x11, 0x34, 0x09, 0xa4, 0x4d, 0xab, 0x82, 0x34, + 0x21, 0xc4, 0x01, 0x37, 0x7d, 0xc8, 0x4c, 0x13, 0x3b, 0xb2, 0x9d, 0x40, 0x6f, 0x7c, 0x04, 0xce, + 0x7c, 0x14, 0x3e, 0xc1, 0x8e, 0x3b, 0xee, 0x14, 0xb1, 0xf0, 0x2d, 0x76, 0x42, 0x49, 0xca, 0x9a, + 0xad, 0x9d, 0xd8, 0x2d, 0xfe, 0xfd, 0xb3, 0x9f, 0x27, 0x3f, 0xf4, 0x62, 0xbc, 0x27, 0x31, 0xe5, + 0xf6, 0x38, 0x1e, 0x82, 0x60, 0xa0, 0x40, 0xda, 0x09, 0xb0, 0x11, 0x17, 0xf6, 0x94, 0x20, 0x11, + 0xb5, 0xa5, 0xe2, 0x82, 0xf8, 0x60, 0x27, 0x7d, 0xdb, 0x07, 0x06, 0x82, 0x28, 0x18, 0xe1, 0x48, + 0x70, 0xc5, 0xf5, 0x87, 0xa5, 0x0c, 0x93, 0x88, 0xe2, 0xa9, 0x0c, 0x27, 0xfd, 0xce, 0x63, 0x9f, + 0xaa, 0x93, 0x78, 0x88, 0x3d, 0x1e, 0xda, 0x3e, 0xf7, 0xb9, 0x5d, 0xa8, 0x87, 0xf1, 0xa7, 0xe2, + 0x54, 0x1c, 0x8a, 0xaf, 0x32, 0xa5, 0xb3, 0xb9, 0xf0, 0xb2, 0x21, 0x28, 0x32, 0x77, 0x63, 0x67, + 0x77, 0xa6, 0x0d, 0x89, 0x77, 0x42, 0x19, 0x88, 0x89, 0x1d, 0x8d, 0xfd, 0x1c, 0x90, 0x76, 0x08, + 0x8a, 0x2c, 0x78, 0x67, 0xc7, 0xbe, 0xcd, 0x25, 0x62, 0xa6, 0x68, 0x08, 0x73, 0x86, 0xa7, 0xff, + 0x32, 0x48, 0xef, 0x04, 0x42, 0x32, 0xe7, 0xdb, 0xb9, 0xcd, 0x17, 0x2b, 0x1a, 0xd8, 0x94, 0x29, + 0xa9, 0xc4, 0x4d, 0xd3, 0xc6, 0x8f, 0x26, 0x5a, 0x79, 0x5b, 0xce, 0xfd, 0x2a, 0x20, 0x52, 0xea, + 0x1f, 0xd1, 0x52, 0x3e, 0xc9, 0x88, 0x28, 0x62, 0x68, 0x5d, 0xad, 0xd7, 0xda, 0xde, 0xc2, 0xb3, + 0x4d, 0x5f, 0x05, 0xe3, 0x68, 0xec, 0xe7, 0x80, 0xc4, 0xb9, 0x1a, 0x27, 0x7d, 0x7c, 0x34, 0xfc, + 0x0c, 0x9e, 0x3a, 0x04, 0x45, 0x1c, 0xfd, 0x34, 0xb5, 0x6a, 0x59, 0x6a, 0xa1, 0x19, 0xe6, 0x5e, + 0xa5, 0xea, 0x4f, 0x50, 0x2b, 0x12, 0x3c, 0xa1, 0x92, 0x72, 0x06, 0xc2, 0xa8, 0x77, 0xb5, 0xde, + 0xb2, 0xf3, 0x60, 0x6a, 0x69, 0x0d, 0x66, 0x94, 0x5b, 0xd5, 0xe9, 0x3e, 0x42, 0x11, 0x11, 0x24, + 0x04, 0x05, 0x42, 0x1a, 0x8d, 0x6e, 0xa3, 0xd7, 0xda, 0xde, 0xc1, 0x0b, 0x4b, 0x80, 0xab, 0x13, + 0xe1, 0xc1, 0x95, 0x6b, 0x9f, 0x29, 0x31, 0x99, 0xbd, 0x6e, 0x46, 0xb8, 0x95, 0x68, 0x7d, 0x8c, + 0x56, 0x05, 0x78, 0x01, 0xa1, 0xe1, 0x80, 0x07, 0xd4, 0x9b, 0x18, 0xff, 0x15, 0x2f, 0xdc, 0xcf, + 0x52, 0x6b, 0xd5, 0xad, 0x12, 0x97, 0xa9, 0xb5, 0x55, 0xa9, 0x8f, 0xc7, 0x45, 0xde, 0x1d, 0x3c, + 0x00, 0x21, 0xa9, 0x54, 0xc0, 0xd4, 0x31, 0x0f, 0xe2, 0x10, 0xae, 0x79, 0xdc, 0xeb, 0xd9, 0xfa, + 0x2e, 0x5a, 0x09, 0x79, 0xcc, 0xd4, 0x51, 0xa4, 0x28, 0x67, 0xd2, 0x68, 0x76, 0x1b, 0xbd, 0x65, + 0xa7, 0x9d, 0xa5, 0xd6, 0xca, 0x61, 0x05, 0x77, 0xaf, 0xa9, 0xf4, 0x03, 0xb4, 0x4e, 0x82, 0x80, + 0x7f, 0x29, 0x2f, 0xd8, 0xff, 0x1a, 0x11, 0x96, 0x6f, 0xc9, 0xf8, 0xbf, 0xab, 0xf5, 0x96, 0x1c, + 0x23, 0x4b, 0xad, 0xf5, 0x97, 0x0b, 0x78, 0x77, 0xa1, 0x4b, 0x7f, 0x87, 0xd6, 0x92, 0x02, 0x72, + 0x28, 0x1b, 0x51, 0xe6, 0x1f, 0xf2, 0x11, 0x18, 0xf7, 0x8a, 0xa1, 0x37, 0xb3, 0xd4, 0x5a, 0x3b, + 0xbe, 0x49, 0x5e, 0x2e, 0x02, 0xdd, 0xf9, 0x90, 0xce, 0x73, 0x74, 0xff, 0xc6, 0xf6, 0xf5, 0x36, + 0x6a, 0x8c, 0x61, 0x52, 0x54, 0x6b, 0xd9, 0xcd, 0x3f, 0xf5, 0x75, 0xd4, 0x4c, 0x48, 0x10, 0x43, + 0xd9, 0x04, 0xb7, 0x3c, 0x3c, 0xab, 0xef, 0x69, 0x1b, 0x3f, 0x35, 0xd4, 0xae, 0xfe, 0xca, 0x03, + 0x2a, 0x95, 0xfe, 0x61, 0xae, 0xa0, 0xf8, 0x6e, 0x05, 0xcd, 0xdd, 0x45, 0x3d, 0xdb, 0xd3, 0x02, + 0x2c, 0xfd, 0x45, 0x2a, 0xe5, 0x7c, 0x8d, 0x9a, 0x54, 0x41, 0x28, 0x8d, 0x7a, 0x51, 0xb0, 0x47, + 0x77, 0x28, 0x98, 0xb3, 0x3a, 0xcd, 0x6b, 0xbe, 0xc9, 0x9d, 0x6e, 0x19, 0xe0, 0xf4, 0x4e, 0x2f, + 0xcc, 0xda, 0xd9, 0x85, 0x59, 0x3b, 0xbf, 0x30, 0x6b, 0xdf, 0x32, 0x53, 0x3b, 0xcd, 0x4c, 0xed, + 0x2c, 0x33, 0xb5, 0xf3, 0xcc, 0xd4, 0x7e, 0x65, 0xa6, 0xf6, 0xfd, 0xb7, 0x59, 0x7b, 0x5f, 0x4f, + 0xfa, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xee, 0x56, 0xcc, 0xfd, 0x0a, 0x05, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/generated.proto index 6a335e526..939ebde68 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/generated.proto @@ -63,6 +63,13 @@ message StorageClass { // AllowVolumeExpansion shows whether the storage class allow volume expand // +optional optional bool allowVolumeExpansion = 6; + + // VolumeBindingMode indicates how PersistentVolumeClaims should be + // provisioned and bound. When unset, VolumeBindingImmediate is used. + // This field is alpha-level and is only honored by servers that enable + // the VolumeScheduling feature. + // +optional + optional string volumeBindingMode = 7; } // StorageClassList is a collection of storage classes. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/register.go index 59c4e59ba..c058add84 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &StorageClass{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/types.go index 9afdafb62..288d40abb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/types.go @@ -59,6 +59,13 @@ type StorageClass struct { // AllowVolumeExpansion shows whether the storage class allow volume expand // +optional AllowVolumeExpansion *bool `json:"allowVolumeExpansion,omitempty" protobuf:"varint,6,opt,name=allowVolumeExpansion"` + + // VolumeBindingMode indicates how PersistentVolumeClaims should be + // provisioned and bound. When unset, VolumeBindingImmediate is used. + // This field is alpha-level and is only honored by servers that enable + // the VolumeScheduling feature. + // +optional + VolumeBindingMode *VolumeBindingMode `json:"volumeBindingMode,omitempty" protobuf:"bytes,7,opt,name=volumeBindingMode"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -74,3 +81,18 @@ type StorageClassList struct { // Items is the list of StorageClasses Items []StorageClass `json:"items" protobuf:"bytes,2,rep,name=items"` } + +// VolumeBindingMode indicates how PersistentVolumeClaims should be bound. +type VolumeBindingMode string + +const ( + // VolumeBindingImmediate indicates that PersistentVolumeClaims should be + // immediately provisioned and bound. This is the default mode. + VolumeBindingImmediate VolumeBindingMode = "Immediate" + + // VolumeBindingWaitForFirstConsumer indicates that PersistentVolumeClaims + // should not be provisioned and bound until the first Pod is created that + // references the PeristentVolumeClaim. The volume provisioning and + // binding will occur during Pod scheduing. + VolumeBindingWaitForFirstConsumer VolumeBindingMode = "WaitForFirstConsumer" +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/types_swagger_doc_generated.go index b4be857dd..3eb9bdab7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/types_swagger_doc_generated.go @@ -35,6 +35,7 @@ var map_StorageClass = map[string]string{ "reclaimPolicy": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", "mountOptions": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", "allowVolumeExpansion": "AllowVolumeExpansion shows whether the storage class allow volume expand", + "volumeBindingMode": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.", } func (StorageClass) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go index 50c707abb..a2b2f8e71 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go @@ -22,32 +22,9 @@ package v1 import ( core_v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageClass).DeepCopyInto(out.(*StorageClass)) - return nil - }, InType: reflect.TypeOf(&StorageClass{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageClassList).DeepCopyInto(out.(*StorageClassList)) - return nil - }, InType: reflect.TypeOf(&StorageClassList{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *StorageClass) DeepCopyInto(out *StorageClass) { *out = *in @@ -83,6 +60,15 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { **out = **in } } + if in.VolumeBindingMode != nil { + in, out := &in.VolumeBindingMode, &out.VolumeBindingMode + if *in == nil { + *out = nil + } else { + *out = new(VolumeBindingMode) + **out = **in + } + } return } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/BUILD new file mode 100644 index 000000000..98342a426 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/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/storage/v1alpha1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/sortkeys: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/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/doc.go new file mode 100644 index 000000000..aa94aff7f --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/doc.go @@ -0,0 +1,20 @@ +/* +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,register +// +groupName=storage.k8s.io +// +k8s:openapi-gen=true +package v1alpha1 // import "k8s.io/api/storage/v1alpha1" diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/generated.pb.go similarity index 50% rename from vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.pb.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/generated.pb.go index a93e24c32..3d55c6ec4 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/generated.pb.go @@ -15,31 +15,30 @@ limitations under the License. */ // Code generated by protoc-gen-gogo. -// source: k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.proto +// source: k8s.io/kubernetes/vendor/k8s.io/api/storage/v1alpha1/generated.proto // DO NOT EDIT! /* - Package v1beta1 is a generated protocol buffer package. + Package v1alpha1 is a generated protocol buffer package. It is generated from these files: - k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.proto + k8s.io/kubernetes/vendor/k8s.io/api/storage/v1alpha1/generated.proto It has these top-level messages: - Cluster - ClusterCondition - ClusterList - ClusterSelectorRequirement - ClusterSpec - ClusterStatus - ServerAddressByClientCIDR + VolumeAttachment + VolumeAttachmentList + VolumeAttachmentSource + VolumeAttachmentSpec + VolumeAttachmentStatus + VolumeError */ -package v1beta1 +package v1alpha1 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 github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" import strings "strings" import reflect "reflect" @@ -57,48 +56,39 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package -func (m *Cluster) Reset() { *m = Cluster{} } -func (*Cluster) ProtoMessage() {} -func (*Cluster) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } +func (m *VolumeAttachment) Reset() { *m = VolumeAttachment{} } +func (*VolumeAttachment) ProtoMessage() {} +func (*VolumeAttachment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } -func (m *ClusterCondition) Reset() { *m = ClusterCondition{} } -func (*ClusterCondition) ProtoMessage() {} -func (*ClusterCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (m *VolumeAttachmentList) Reset() { *m = VolumeAttachmentList{} } +func (*VolumeAttachmentList) ProtoMessage() {} +func (*VolumeAttachmentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } -func (m *ClusterList) Reset() { *m = ClusterList{} } -func (*ClusterList) ProtoMessage() {} -func (*ClusterList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } +func (m *VolumeAttachmentSource) Reset() { *m = VolumeAttachmentSource{} } +func (*VolumeAttachmentSource) ProtoMessage() {} +func (*VolumeAttachmentSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } -func (m *ClusterSelectorRequirement) Reset() { *m = ClusterSelectorRequirement{} } -func (*ClusterSelectorRequirement) ProtoMessage() {} -func (*ClusterSelectorRequirement) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{3} -} - -func (m *ClusterSpec) Reset() { *m = ClusterSpec{} } -func (*ClusterSpec) ProtoMessage() {} -func (*ClusterSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (m *VolumeAttachmentSpec) Reset() { *m = VolumeAttachmentSpec{} } +func (*VolumeAttachmentSpec) ProtoMessage() {} +func (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } -func (m *ClusterStatus) Reset() { *m = ClusterStatus{} } -func (*ClusterStatus) ProtoMessage() {} -func (*ClusterStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (m *VolumeAttachmentStatus) Reset() { *m = VolumeAttachmentStatus{} } +func (*VolumeAttachmentStatus) ProtoMessage() {} +func (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } -func (m *ServerAddressByClientCIDR) Reset() { *m = ServerAddressByClientCIDR{} } -func (*ServerAddressByClientCIDR) ProtoMessage() {} -func (*ServerAddressByClientCIDR) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{6} -} +func (m *VolumeError) Reset() { *m = VolumeError{} } +func (*VolumeError) ProtoMessage() {} +func (*VolumeError) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func init() { - proto.RegisterType((*Cluster)(nil), "k8s.io.kubernetes.federation.apis.federation.v1beta1.Cluster") - proto.RegisterType((*ClusterCondition)(nil), "k8s.io.kubernetes.federation.apis.federation.v1beta1.ClusterCondition") - proto.RegisterType((*ClusterList)(nil), "k8s.io.kubernetes.federation.apis.federation.v1beta1.ClusterList") - proto.RegisterType((*ClusterSelectorRequirement)(nil), "k8s.io.kubernetes.federation.apis.federation.v1beta1.ClusterSelectorRequirement") - proto.RegisterType((*ClusterSpec)(nil), "k8s.io.kubernetes.federation.apis.federation.v1beta1.ClusterSpec") - proto.RegisterType((*ClusterStatus)(nil), "k8s.io.kubernetes.federation.apis.federation.v1beta1.ClusterStatus") - proto.RegisterType((*ServerAddressByClientCIDR)(nil), "k8s.io.kubernetes.federation.apis.federation.v1beta1.ServerAddressByClientCIDR") + proto.RegisterType((*VolumeAttachment)(nil), "k8s.io.api.storage.v1alpha1.VolumeAttachment") + proto.RegisterType((*VolumeAttachmentList)(nil), "k8s.io.api.storage.v1alpha1.VolumeAttachmentList") + proto.RegisterType((*VolumeAttachmentSource)(nil), "k8s.io.api.storage.v1alpha1.VolumeAttachmentSource") + proto.RegisterType((*VolumeAttachmentSpec)(nil), "k8s.io.api.storage.v1alpha1.VolumeAttachmentSpec") + proto.RegisterType((*VolumeAttachmentStatus)(nil), "k8s.io.api.storage.v1alpha1.VolumeAttachmentStatus") + proto.RegisterType((*VolumeError)(nil), "k8s.io.api.storage.v1alpha1.VolumeError") } -func (m *Cluster) Marshal() (dAtA []byte, err error) { +func (m *VolumeAttachment) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -108,7 +98,7 @@ func (m *Cluster) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Cluster) MarshalTo(dAtA []byte) (int, error) { +func (m *VolumeAttachment) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -140,7 +130,7 @@ func (m *Cluster) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *ClusterCondition) Marshal() (dAtA []byte, err error) { +func (m *VolumeAttachmentList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -150,57 +140,7 @@ func (m *ClusterCondition) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ClusterCondition) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i += copy(dAtA[i:], m.Type) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i += copy(dAtA[i:], m.Status) - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.LastProbeTime.Size())) - n4, err := m.LastProbeTime.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n5, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - dAtA[i] = 0x2a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i += copy(dAtA[i:], m.Reason) - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i += copy(dAtA[i:], m.Message) - return i, nil -} - -func (m *ClusterList) 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 *ClusterList) MarshalTo(dAtA []byte) (int, error) { +func (m *VolumeAttachmentList) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -208,11 +148,11 @@ func (m *ClusterList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n6, err := m.ListMeta.MarshalTo(dAtA[i:]) + n4, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n4 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -228,7 +168,7 @@ func (m *ClusterList) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *ClusterSelectorRequirement) Marshal() (dAtA []byte, err error) { +func (m *VolumeAttachmentSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -238,38 +178,21 @@ func (m *ClusterSelectorRequirement) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ClusterSelectorRequirement) MarshalTo(dAtA []byte) (int, error) { +func (m *VolumeAttachmentSource) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) - i += copy(dAtA[i:], m.Key) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator))) - i += copy(dAtA[i:], m.Operator) - if len(m.Values) > 0 { - for _, s := range m.Values { - dAtA[i] = 0x1a - 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 m.PersistentVolumeName != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.PersistentVolumeName))) + i += copy(dAtA[i:], *m.PersistentVolumeName) } return i, nil } -func (m *ClusterSpec) Marshal() (dAtA []byte, err error) { +func (m *VolumeAttachmentSpec) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -279,37 +202,31 @@ func (m *ClusterSpec) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ClusterSpec) MarshalTo(dAtA []byte) (int, error) { +func (m *VolumeAttachmentSpec) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if len(m.ServerAddressByClientCIDRs) > 0 { - for _, msg := range m.ServerAddressByClientCIDRs { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.SecretRef != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n7, err := m.SecretRef.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Attacher))) + i += copy(dAtA[i:], m.Attacher) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Source.Size())) + n5, err := m.Source.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err } + i += n5 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName))) + i += copy(dAtA[i:], m.NodeName) return i, nil } -func (m *ClusterStatus) Marshal() (dAtA []byte, err error) { +func (m *VolumeAttachmentStatus) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -319,46 +236,65 @@ func (m *ClusterStatus) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ClusterStatus) MarshalTo(dAtA []byte) (int, error) { +func (m *VolumeAttachmentStatus) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if len(m.Conditions) > 0 { - for _, msg := range m.Conditions { + dAtA[i] = 0x8 + i++ + if m.Attached { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if len(m.AttachmentMetadata) > 0 { + keysForAttachmentMetadata := make([]string, 0, len(m.AttachmentMetadata)) + for k := range m.AttachmentMetadata { + keysForAttachmentMetadata = append(keysForAttachmentMetadata, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata) + for _, k := range keysForAttachmentMetadata { + dAtA[i] = 0x12 + i++ + v := m.AttachmentMetadata[string(k)] + mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) dAtA[i] = 0xa i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n + i = encodeVarintGenerated(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) } } - if len(m.Zones) > 0 { - for _, s := range m.Zones { - dAtA[i] = 0x2a - 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 m.AttachError != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AttachError.Size())) + n6, err := m.AttachError.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err } + i += n6 + } + if m.DetachError != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DetachError.Size())) + n7, err := m.DetachError.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 } - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) - i += copy(dAtA[i:], m.Region) return i, nil } -func (m *ServerAddressByClientCIDR) Marshal() (dAtA []byte, err error) { +func (m *VolumeError) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -368,19 +304,23 @@ func (m *ServerAddressByClientCIDR) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ServerAddressByClientCIDR) MarshalTo(dAtA []byte) (int, error) { +func (m *VolumeError) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l dAtA[i] = 0xa i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ClientCIDR))) - i += copy(dAtA[i:], m.ClientCIDR) + i = encodeVarintGenerated(dAtA, i, uint64(m.Time.Size())) + n8, err := m.Time.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServerAddress))) - i += copy(dAtA[i:], m.ServerAddress) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) return i, nil } @@ -411,7 +351,7 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return offset + 1 } -func (m *Cluster) Size() (n int) { +func (m *VolumeAttachment) Size() (n int) { var l int _ = l l = m.ObjectMeta.Size() @@ -423,25 +363,7 @@ func (m *Cluster) Size() (n int) { return n } -func (m *ClusterCondition) Size() (n int) { - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastProbeTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ClusterList) Size() (n int) { +func (m *VolumeAttachmentList) Size() (n int) { var l int _ = l l = m.ListMeta.Size() @@ -455,64 +377,57 @@ func (m *ClusterList) Size() (n int) { return n } -func (m *ClusterSelectorRequirement) Size() (n int) { +func (m *VolumeAttachmentSource) Size() (n int) { var l int _ = l - l = len(m.Key) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Operator) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Values) > 0 { - for _, s := range m.Values { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } + if m.PersistentVolumeName != nil { + l = len(*m.PersistentVolumeName) + n += 1 + l + sovGenerated(uint64(l)) } return n } -func (m *ClusterSpec) Size() (n int) { +func (m *VolumeAttachmentSpec) Size() (n int) { var l int _ = l - if len(m.ServerAddressByClientCIDRs) > 0 { - for _, e := range m.ServerAddressByClientCIDRs { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.SecretRef != nil { - l = m.SecretRef.Size() - n += 1 + l + sovGenerated(uint64(l)) - } + l = len(m.Attacher) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Source.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.NodeName) + n += 1 + l + sovGenerated(uint64(l)) return n } -func (m *ClusterStatus) Size() (n int) { +func (m *VolumeAttachmentStatus) Size() (n int) { var l int _ = l - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if len(m.AttachmentMetadata) > 0 { + for k, v := range m.AttachmentMetadata { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) } } - if len(m.Zones) > 0 { - for _, s := range m.Zones { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } + if m.AttachError != nil { + l = m.AttachError.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.DetachError != nil { + l = m.DetachError.Size() + n += 1 + l + sovGenerated(uint64(l)) } - l = len(m.Region) - n += 1 + l + sovGenerated(uint64(l)) return n } -func (m *ServerAddressByClientCIDR) Size() (n int) { +func (m *VolumeError) Size() (n int) { var l int _ = l - l = len(m.ClientCIDR) + l = m.Time.Size() n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ServerAddress) + l = len(m.Message) n += 1 + l + sovGenerated(uint64(l)) return n } @@ -530,86 +445,81 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (this *Cluster) String() string { +func (this *VolumeAttachment) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&Cluster{`, + s := strings.Join([]string{`&VolumeAttachment{`, `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ClusterSpec", "ClusterSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ClusterStatus", "ClusterStatus", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "VolumeAttachmentSpec", "VolumeAttachmentSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "VolumeAttachmentStatus", "VolumeAttachmentStatus", 1), `&`, ``, 1) + `,`, `}`, }, "") return s } -func (this *ClusterCondition) String() string { +func (this *VolumeAttachmentList) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&ClusterCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastProbeTime:` + strings.Replace(strings.Replace(this.LastProbeTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ClusterList{`, + s := strings.Join([]string{`&VolumeAttachmentList{`, `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), "Cluster", "Cluster", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "VolumeAttachment", "VolumeAttachment", 1), `&`, ``, 1) + `,`, `}`, }, "") return s } -func (this *ClusterSelectorRequirement) String() string { +func (this *VolumeAttachmentSource) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&ClusterSelectorRequirement{`, - `Key:` + fmt.Sprintf("%v", this.Key) + `,`, - `Operator:` + fmt.Sprintf("%v", this.Operator) + `,`, - `Values:` + fmt.Sprintf("%v", this.Values) + `,`, + s := strings.Join([]string{`&VolumeAttachmentSource{`, + `PersistentVolumeName:` + valueToStringGenerated(this.PersistentVolumeName) + `,`, `}`, }, "") return s } -func (this *ClusterSpec) String() string { +func (this *VolumeAttachmentSpec) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&ClusterSpec{`, - `ServerAddressByClientCIDRs:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ServerAddressByClientCIDRs), "ServerAddressByClientCIDR", "ServerAddressByClientCIDR", 1), `&`, ``, 1) + `,`, - `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "LocalObjectReference", "k8s_io_api_core_v1.LocalObjectReference", 1) + `,`, + s := strings.Join([]string{`&VolumeAttachmentSpec{`, + `Attacher:` + fmt.Sprintf("%v", this.Attacher) + `,`, + `Source:` + strings.Replace(strings.Replace(this.Source.String(), "VolumeAttachmentSource", "VolumeAttachmentSource", 1), `&`, ``, 1) + `,`, + `NodeName:` + fmt.Sprintf("%v", this.NodeName) + `,`, `}`, }, "") return s } -func (this *ClusterStatus) String() string { +func (this *VolumeAttachmentStatus) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&ClusterStatus{`, - `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "ClusterCondition", "ClusterCondition", 1), `&`, ``, 1) + `,`, - `Zones:` + fmt.Sprintf("%v", this.Zones) + `,`, - `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + keysForAttachmentMetadata := make([]string, 0, len(this.AttachmentMetadata)) + for k := range this.AttachmentMetadata { + keysForAttachmentMetadata = append(keysForAttachmentMetadata, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata) + mapStringForAttachmentMetadata := "map[string]string{" + for _, k := range keysForAttachmentMetadata { + mapStringForAttachmentMetadata += fmt.Sprintf("%v: %v,", k, this.AttachmentMetadata[k]) + } + mapStringForAttachmentMetadata += "}" + s := strings.Join([]string{`&VolumeAttachmentStatus{`, + `Attached:` + fmt.Sprintf("%v", this.Attached) + `,`, + `AttachmentMetadata:` + mapStringForAttachmentMetadata + `,`, + `AttachError:` + strings.Replace(fmt.Sprintf("%v", this.AttachError), "VolumeError", "VolumeError", 1) + `,`, + `DetachError:` + strings.Replace(fmt.Sprintf("%v", this.DetachError), "VolumeError", "VolumeError", 1) + `,`, `}`, }, "") return s } -func (this *ServerAddressByClientCIDR) String() string { +func (this *VolumeError) String() string { if this == nil { return "nil" } - s := strings.Join([]string{`&ServerAddressByClientCIDR{`, - `ClientCIDR:` + fmt.Sprintf("%v", this.ClientCIDR) + `,`, - `ServerAddress:` + fmt.Sprintf("%v", this.ServerAddress) + `,`, + s := strings.Join([]string{`&VolumeError{`, + `Time:` + strings.Replace(strings.Replace(this.Time.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, `}`, }, "") return s @@ -622,7 +532,7 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *Cluster) Unmarshal(dAtA []byte) error { +func (m *VolumeAttachment) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -645,10 +555,10 @@ func (m *Cluster) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Cluster: wiretype end group for non-group") + return fmt.Errorf("proto: VolumeAttachment: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Cluster: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: VolumeAttachment: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -762,7 +672,7 @@ func (m *Cluster) Unmarshal(dAtA []byte) error { } return nil } -func (m *ClusterCondition) Unmarshal(dAtA []byte) error { +func (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -785,73 +695,15 @@ func (m *ClusterCondition) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ClusterCondition: wiretype end group for non-group") + return fmt.Errorf("proto: VolumeAttachmentList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterCondition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: VolumeAttachmentList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: 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 = ClusterConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastProbeTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -875,13 +727,13 @@ func (m *ClusterCondition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.LastProbeTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 4: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -905,68 +757,11 @@ func (m *ClusterCondition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Items = append(m.Items, VolumeAttachment{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: - 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 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", 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.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -988,7 +783,7 @@ func (m *ClusterCondition) Unmarshal(dAtA []byte) error { } return nil } -func (m *ClusterList) Unmarshal(dAtA []byte) error { +func (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1011,47 +806,17 @@ func (m *ClusterList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ClusterList: wiretype end group for non-group") + return fmt.Errorf("proto: VolumeAttachmentSource: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: VolumeAttachmentSource: 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) + return fmt.Errorf("proto: wrong wireType = %d for field PersistentVolumeName", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1061,22 +826,21 @@ func (m *ClusterList) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, Cluster{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + s := string(dAtA[iNdEx:postIndex]) + m.PersistentVolumeName = &s iNdEx = postIndex default: iNdEx = preIndex @@ -1099,7 +863,7 @@ func (m *ClusterList) Unmarshal(dAtA []byte) error { } return nil } -func (m *ClusterSelectorRequirement) Unmarshal(dAtA []byte) error { +func (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1122,15 +886,15 @@ func (m *ClusterSelectorRequirement) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ClusterSelectorRequirement: wiretype end group for non-group") + return fmt.Errorf("proto: VolumeAttachmentSpec: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterSelectorRequirement: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: VolumeAttachmentSpec: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Attacher", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1155,13 +919,13 @@ func (m *ClusterSelectorRequirement) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Key = string(dAtA[iNdEx:postIndex]) + m.Attacher = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Operator", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1171,24 +935,25 @@ func (m *ClusterSelectorRequirement) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Operator = string(dAtA[iNdEx:postIndex]) + if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NodeName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1213,7 +978,7 @@ func (m *ClusterSelectorRequirement) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Values = append(m.Values, string(dAtA[iNdEx:postIndex])) + m.NodeName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -1236,7 +1001,7 @@ func (m *ClusterSelectorRequirement) Unmarshal(dAtA []byte) error { } return nil } -func (m *ClusterSpec) Unmarshal(dAtA []byte) error { +func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1259,17 +1024,17 @@ func (m *ClusterSpec) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ClusterSpec: wiretype end group for non-group") + return fmt.Errorf("proto: VolumeAttachmentStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterSpec: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: VolumeAttachmentStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServerAddressByClientCIDRs", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Attached", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1279,26 +1044,15 @@ func (m *ClusterSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + v |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServerAddressByClientCIDRs = append(m.ServerAddressByClientCIDRs, ServerAddressByClientCIDR{}) - if err := m.ServerAddressByClientCIDRs[len(m.ServerAddressByClientCIDRs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.Attached = bool(v != 0) case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AttachmentMetadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1322,68 +1076,22 @@ func (m *ClusterSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.SecretRef == nil { - m.SecretRef = &k8s_io_api_core_v1.LocalObjectReference{} - } - if err := m.SecretRef.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 *ClusterStatus) 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: ClusterStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - var msglen int + var stringLenmapkey uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1393,28 +1101,76 @@ func (m *ClusterStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLenmapkey |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen - if postIndex > l { + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - m.Conditions = append(m.Conditions, ClusterCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.AttachmentMetadata == nil { + m.AttachmentMetadata = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.AttachmentMetadata[mapkey] = mapvalue + } else { + var mapvalue string + m.AttachmentMetadata[mapkey] = mapvalue } iNdEx = postIndex - case 5: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Zones", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AttachError", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1424,26 +1180,30 @@ func (m *ClusterStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Zones = append(m.Zones, string(dAtA[iNdEx:postIndex])) + if m.AttachError == nil { + m.AttachError = &VolumeError{} + } + if err := m.AttachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 6: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DetachError", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1453,20 +1213,24 @@ func (m *ClusterStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.Region = string(dAtA[iNdEx:postIndex]) + if m.DetachError == nil { + m.DetachError = &VolumeError{} + } + if err := m.DetachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -1489,7 +1253,7 @@ func (m *ClusterStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *ServerAddressByClientCIDR) Unmarshal(dAtA []byte) error { +func (m *VolumeError) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1512,17 +1276,17 @@ func (m *ServerAddressByClientCIDR) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ServerAddressByClientCIDR: wiretype end group for non-group") + return fmt.Errorf("proto: VolumeError: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ServerAddressByClientCIDR: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: VolumeError: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientCIDR", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1532,24 +1296,25 @@ func (m *ServerAddressByClientCIDR) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift + msglen |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex > l { return io.ErrUnexpectedEOF } - m.ClientCIDR = string(dAtA[iNdEx:postIndex]) + if err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServerAddress", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1574,7 +1339,7 @@ func (m *ServerAddressByClientCIDR) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ServerAddress = string(dAtA[iNdEx:postIndex]) + m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -1703,64 +1468,56 @@ var ( ) func init() { - proto.RegisterFile("k8s.io/kubernetes/federation/apis/federation/v1beta1/generated.proto", fileDescriptorGenerated) + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/storage/v1alpha1/generated.proto", fileDescriptorGenerated) } var fileDescriptorGenerated = []byte{ - // 871 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xcf, 0x6f, 0xe3, 0x44, - 0x14, 0x8e, 0x9b, 0x26, 0x6d, 0xa6, 0x04, 0x56, 0x23, 0x90, 0x42, 0x24, 0x1c, 0x64, 0x21, 0x54, - 0x10, 0x6b, 0xd3, 0x52, 0xa1, 0x95, 0x10, 0x87, 0x75, 0x56, 0x48, 0x2b, 0xba, 0x2a, 0x9a, 0x16, - 0x0e, 0x2b, 0x0e, 0x4c, 0x9c, 0x57, 0x77, 0x48, 0xec, 0x31, 0x33, 0xe3, 0x48, 0xd9, 0x13, 0x7f, - 0x00, 0x48, 0x9c, 0xf9, 0x37, 0x38, 0x73, 0xef, 0x09, 0xf6, 0xc0, 0x61, 0x4f, 0x11, 0x0d, 0xff, - 0xc5, 0x9e, 0xd0, 0x8c, 0x27, 0x4e, 0xbc, 0x69, 0x60, 0xb7, 0xbd, 0x79, 0x3e, 0xbf, 0xef, 0xfb, - 0xde, 0xbc, 0x1f, 0x83, 0x1e, 0x8c, 0xee, 0x49, 0x9f, 0xf1, 0x60, 0x94, 0x0f, 0x40, 0xa4, 0xa0, - 0x40, 0x06, 0xe7, 0x30, 0x04, 0x41, 0x15, 0xe3, 0x69, 0x40, 0x33, 0x56, 0x39, 0x4f, 0x0e, 0x06, - 0xa0, 0xe8, 0x41, 0x10, 0x43, 0xaa, 0x21, 0x18, 0xfa, 0x99, 0xe0, 0x8a, 0xe3, 0xa3, 0x42, 0xc5, - 0x5f, 0xaa, 0xf8, 0x4b, 0x96, 0xaf, 0x55, 0x56, 0xcf, 0x56, 0xa5, 0x7b, 0x37, 0x66, 0xea, 0x22, - 0x1f, 0xf8, 0x11, 0x4f, 0x82, 0x98, 0xc7, 0x3c, 0x30, 0x62, 0x83, 0xfc, 0xdc, 0x9c, 0xcc, 0xc1, - 0x7c, 0x15, 0x26, 0x5d, 0xcf, 0xa6, 0x4a, 0x33, 0x16, 0x44, 0x5c, 0x40, 0x30, 0x59, 0x4b, 0xa4, - 0x7b, 0xb4, 0x8c, 0x49, 0x68, 0x74, 0xc1, 0x52, 0x10, 0xd3, 0x20, 0x1b, 0xc5, 0xc5, 0x4d, 0x12, - 0x50, 0xf4, 0x3a, 0x56, 0xb0, 0x89, 0x25, 0xf2, 0x54, 0xb1, 0x04, 0xd6, 0x08, 0x9f, 0xfe, 0x1f, - 0x41, 0x46, 0x17, 0x90, 0xd0, 0x35, 0xde, 0x27, 0x9b, 0x78, 0xb9, 0x62, 0xe3, 0x80, 0xa5, 0x4a, - 0x2a, 0xf1, 0x22, 0xc9, 0xfb, 0x7d, 0x0b, 0xed, 0xf4, 0xc7, 0xb9, 0x54, 0x20, 0xf0, 0x77, 0x68, - 0x57, 0x5f, 0x62, 0x48, 0x15, 0xed, 0x38, 0xef, 0x3a, 0xfb, 0x7b, 0x87, 0x1f, 0xfb, 0xb6, 0xf6, - 0xab, 0x9a, 0x7e, 0x36, 0x8a, 0x8b, 0xb2, 0xeb, 0x68, 0x7f, 0x72, 0xe0, 0x9f, 0x0c, 0xbe, 0x87, - 0x48, 0x3d, 0x02, 0x45, 0x43, 0x7c, 0x39, 0xeb, 0xd5, 0xe6, 0xb3, 0x1e, 0x5a, 0x62, 0xa4, 0x54, - 0xc5, 0x11, 0xda, 0x96, 0x19, 0x44, 0x9d, 0x2d, 0xa3, 0x7e, 0xdf, 0xbf, 0x49, 0x67, 0x7d, 0x9b, - 0xee, 0x69, 0x06, 0x51, 0xf8, 0x9a, 0xb5, 0xdb, 0xd6, 0x27, 0x62, 0xc4, 0xf1, 0x08, 0x35, 0xa5, - 0xa2, 0x2a, 0x97, 0x9d, 0xba, 0xb1, 0xe9, 0xdf, 0xce, 0xc6, 0x48, 0x85, 0xaf, 0x5b, 0xa3, 0x66, - 0x71, 0x26, 0xd6, 0xc2, 0xfb, 0xa3, 0x8e, 0xee, 0xd8, 0xc8, 0x3e, 0x4f, 0x87, 0x4c, 0x4b, 0xe0, - 0x7b, 0x68, 0x5b, 0x4d, 0x33, 0x30, 0x45, 0x6c, 0x85, 0xef, 0x2d, 0x72, 0x3c, 0x9b, 0x66, 0xf0, - 0x7c, 0xd6, 0x7b, 0xf3, 0xc5, 0x78, 0x8d, 0x13, 0xc3, 0xc0, 0xc7, 0x65, 0xee, 0x5b, 0x86, 0x7b, - 0x54, 0xb5, 0x7d, 0x3e, 0xeb, 0x5d, 0x33, 0xa8, 0x7e, 0xa9, 0x54, 0x4d, 0x0e, 0xc7, 0xa8, 0x3d, - 0xa6, 0x52, 0x7d, 0x25, 0xf8, 0x00, 0xce, 0x58, 0x02, 0xb6, 0x20, 0x1f, 0xbe, 0x5c, 0x57, 0x35, - 0x23, 0x7c, 0xcb, 0x26, 0xd0, 0x3e, 0x5e, 0x15, 0x22, 0x55, 0x5d, 0x3c, 0x41, 0x58, 0x03, 0x67, - 0x82, 0xa6, 0xb2, 0xb8, 0x92, 0x76, 0xdb, 0x7e, 0x65, 0xb7, 0xae, 0x75, 0xc3, 0xc7, 0x6b, 0x6a, - 0xe4, 0x1a, 0x07, 0xfc, 0x3e, 0x6a, 0x0a, 0xa0, 0x92, 0xa7, 0x9d, 0x86, 0x29, 0x57, 0xd9, 0x25, - 0x62, 0x50, 0x62, 0xff, 0xe2, 0x0f, 0xd0, 0x4e, 0x02, 0x52, 0xd2, 0x18, 0x3a, 0x4d, 0x13, 0xf8, - 0x86, 0x0d, 0xdc, 0x79, 0x54, 0xc0, 0x64, 0xf1, 0xdf, 0xfb, 0xd3, 0x41, 0x7b, 0xb6, 0x41, 0xc7, - 0x4c, 0x2a, 0xfc, 0xed, 0xda, 0x52, 0xf8, 0x2f, 0x77, 0x21, 0xcd, 0x36, 0x2b, 0x71, 0xc7, 0x7a, - 0xed, 0x2e, 0x90, 0x95, 0x85, 0x18, 0xa0, 0x06, 0x53, 0x90, 0xe8, 0x76, 0xd7, 0xf7, 0xf7, 0x0e, - 0x3f, 0xbf, 0xd5, 0xa8, 0x86, 0x6d, 0xeb, 0xd4, 0x78, 0xa8, 0x35, 0x49, 0x21, 0xed, 0xfd, 0xec, - 0xa0, 0xee, 0x62, 0x98, 0x61, 0x0c, 0x91, 0xe2, 0x82, 0xc0, 0x0f, 0x39, 0x13, 0x90, 0x40, 0xaa, - 0xf0, 0x3b, 0xa8, 0x3e, 0x82, 0xa9, 0x9d, 0xd5, 0x3d, 0xab, 0x50, 0xff, 0x12, 0xa6, 0x44, 0xe3, - 0xf8, 0x23, 0xb4, 0xcb, 0x33, 0x6d, 0xc8, 0x85, 0x9d, 0xc9, 0xf2, 0x3e, 0x27, 0x16, 0x27, 0x65, - 0x04, 0xf6, 0x50, 0x73, 0x42, 0xc7, 0x39, 0xe8, 0xdd, 0xab, 0xef, 0xb7, 0x42, 0xa4, 0x9b, 0xf1, - 0x8d, 0x41, 0x88, 0xfd, 0xe3, 0xfd, 0xba, 0x55, 0x56, 0x58, 0x6f, 0x2d, 0xfe, 0xcd, 0x41, 0x5d, - 0x09, 0x62, 0x02, 0xe2, 0xfe, 0x70, 0x28, 0x40, 0xca, 0x70, 0xda, 0x1f, 0x33, 0x48, 0x55, 0xff, - 0xe1, 0x03, 0x22, 0x3b, 0x8e, 0xa9, 0xcc, 0xc9, 0xcd, 0x2a, 0x73, 0xba, 0x49, 0x37, 0xf4, 0xec, - 0x2d, 0xba, 0x1b, 0x43, 0x24, 0xf9, 0x8f, 0xb4, 0xf0, 0xd7, 0xa8, 0x25, 0x21, 0x12, 0xa0, 0x08, - 0x9c, 0xdb, 0xf7, 0x6c, 0x7f, 0x65, 0x30, 0x7c, 0xbd, 0x9b, 0x66, 0x0c, 0x78, 0x44, 0xc7, 0xc5, - 0x63, 0x48, 0xe0, 0x1c, 0x04, 0xa4, 0x11, 0x84, 0xed, 0xf9, 0xac, 0xd7, 0x3a, 0x5d, 0xd0, 0xc9, - 0x52, 0xc9, 0xfb, 0xcb, 0x41, 0xed, 0xca, 0xcb, 0x83, 0x9f, 0x20, 0x14, 0x2d, 0xf6, 0x7b, 0x51, - 0x8d, 0x2f, 0x6e, 0x35, 0x27, 0xe5, 0x73, 0xb1, 0x7c, 0xad, 0x4b, 0x48, 0x92, 0x15, 0x37, 0xdc, - 0x43, 0x8d, 0x27, 0x3c, 0x05, 0xd9, 0x69, 0x98, 0x6e, 0xb6, 0xf4, 0x6c, 0x3d, 0xd6, 0x00, 0x29, - 0xf0, 0x62, 0x01, 0x63, 0xc6, 0x53, 0xbb, 0x57, 0x2b, 0x0b, 0xa8, 0x51, 0x62, 0xff, 0x7a, 0x3f, - 0x39, 0xe8, 0xed, 0x8d, 0x85, 0xc6, 0x87, 0x08, 0x45, 0xe5, 0xc9, 0x4e, 0xe2, 0x32, 0xb5, 0xf2, - 0x0f, 0x59, 0x89, 0xc2, 0x9f, 0xa1, 0x76, 0xa5, 0x3b, 0x76, 0x38, 0xcb, 0xf7, 0xaa, 0xe2, 0x46, - 0xaa, 0xb1, 0xe1, 0xdd, 0xcb, 0x2b, 0xb7, 0xf6, 0xf4, 0xca, 0xad, 0x3d, 0xbb, 0x72, 0x6b, 0x3f, - 0xce, 0x5d, 0xe7, 0x72, 0xee, 0x3a, 0x4f, 0xe7, 0xae, 0xf3, 0x6c, 0xee, 0x3a, 0x7f, 0xcf, 0x5d, - 0xe7, 0x97, 0x7f, 0xdc, 0xda, 0xe3, 0x1d, 0x5b, 0xb7, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xed, - 0x72, 0x6d, 0x62, 0xc8, 0x08, 0x00, 0x00, + // 745 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x3d, 0x6f, 0xdb, 0x46, + 0x18, 0xc7, 0x45, 0x49, 0xb6, 0xe5, 0x53, 0x5f, 0x8c, 0x83, 0xd0, 0x0a, 0x2a, 0x40, 0x19, 0x9a, + 0xdc, 0xa2, 0x3e, 0x56, 0x76, 0x51, 0x18, 0xdd, 0x44, 0xd8, 0x43, 0x51, 0xcb, 0x2d, 0xe8, 0xa2, + 0x43, 0xdb, 0xa1, 0x27, 0xf2, 0x31, 0x45, 0x4b, 0x7c, 0xc1, 0xdd, 0x51, 0x88, 0xb7, 0x4c, 0x99, + 0xb3, 0xe5, 0x1b, 0xe4, 0xb3, 0x68, 0x8b, 0x47, 0x4f, 0x42, 0xcc, 0x7c, 0x8b, 0x2c, 0x09, 0x78, + 0x3c, 0x89, 0xb2, 0x29, 0x25, 0xb6, 0x37, 0x3e, 0xcf, 0x3d, 0xff, 0xdf, 0xf3, 0x76, 0x47, 0x74, + 0x3c, 0x3a, 0xe2, 0xc4, 0x0b, 0x8d, 0x51, 0x3c, 0x00, 0x16, 0x80, 0x00, 0x6e, 0x4c, 0x20, 0x70, + 0x42, 0x66, 0xa8, 0x03, 0x1a, 0x79, 0x06, 0x17, 0x21, 0xa3, 0x2e, 0x18, 0x93, 0x2e, 0x1d, 0x47, + 0x43, 0xda, 0x35, 0x5c, 0x08, 0x80, 0x51, 0x01, 0x0e, 0x89, 0x58, 0x28, 0x42, 0xfc, 0x5d, 0x16, + 0x4c, 0x68, 0xe4, 0x11, 0x15, 0x4c, 0xe6, 0xc1, 0xad, 0x7d, 0xd7, 0x13, 0xc3, 0x78, 0x40, 0xec, + 0xd0, 0x37, 0xdc, 0xd0, 0x0d, 0x0d, 0xa9, 0x19, 0xc4, 0x17, 0xd2, 0x92, 0x86, 0xfc, 0xca, 0x58, + 0xad, 0x7e, 0x9e, 0x18, 0x9e, 0x09, 0x08, 0xb8, 0x17, 0x06, 0x7c, 0x9f, 0x46, 0x1e, 0x07, 0x36, + 0x01, 0x66, 0x44, 0x23, 0x37, 0x3d, 0xe3, 0x77, 0x03, 0x8c, 0x49, 0x77, 0x00, 0xa2, 0x58, 0x5a, + 0xeb, 0xe7, 0x1c, 0xe7, 0x53, 0x7b, 0xe8, 0x05, 0xc0, 0xae, 0x72, 0x86, 0x0f, 0x82, 0x1a, 0x93, + 0xa2, 0xca, 0x58, 0xa7, 0x62, 0x71, 0x20, 0x3c, 0x1f, 0x0a, 0x82, 0x5f, 0x3e, 0x27, 0xe0, 0xf6, + 0x10, 0x7c, 0x5a, 0xd0, 0x1d, 0xae, 0xd3, 0xc5, 0xc2, 0x1b, 0x1b, 0x5e, 0x20, 0xb8, 0x60, 0xf7, + 0x45, 0x9d, 0xd7, 0x65, 0xb4, 0xf3, 0x77, 0x38, 0x8e, 0x7d, 0xe8, 0x09, 0x41, 0xed, 0xa1, 0x0f, + 0x81, 0xc0, 0xff, 0xa3, 0x5a, 0xda, 0x8d, 0x43, 0x05, 0x6d, 0x6a, 0xbb, 0xda, 0x5e, 0xfd, 0xe0, + 0x27, 0x92, 0xaf, 0x65, 0x01, 0x27, 0xd1, 0xc8, 0x4d, 0x1d, 0x9c, 0xa4, 0xd1, 0x64, 0xd2, 0x25, + 0x7f, 0x0c, 0x2e, 0xc1, 0x16, 0x7d, 0x10, 0xd4, 0xc4, 0xd3, 0x59, 0xbb, 0x94, 0xcc, 0xda, 0x28, + 0xf7, 0x59, 0x0b, 0x2a, 0x3e, 0x47, 0x55, 0x1e, 0x81, 0xdd, 0x2c, 0x4b, 0x7a, 0x97, 0x7c, 0x62, + 0xe9, 0xe4, 0x7e, 0x79, 0xe7, 0x11, 0xd8, 0xe6, 0x17, 0x0a, 0x5f, 0x4d, 0x2d, 0x4b, 0xc2, 0xf0, + 0xbf, 0x68, 0x93, 0x0b, 0x2a, 0x62, 0xde, 0xac, 0x48, 0xec, 0xe1, 0xe3, 0xb0, 0x52, 0x6a, 0x7e, + 0xa5, 0xc0, 0x9b, 0x99, 0x6d, 0x29, 0x64, 0x67, 0xaa, 0xa1, 0xc6, 0x7d, 0xc9, 0xa9, 0xc7, 0x05, + 0xfe, 0xaf, 0x30, 0x2c, 0xf2, 0xb0, 0x61, 0xa5, 0x6a, 0x39, 0xaa, 0x1d, 0x95, 0xb2, 0x36, 0xf7, + 0x2c, 0x0d, 0xca, 0x42, 0x1b, 0x9e, 0x00, 0x9f, 0x37, 0xcb, 0xbb, 0x95, 0xbd, 0xfa, 0xc1, 0xfe, + 0xa3, 0x5a, 0x32, 0xbf, 0x54, 0xe4, 0x8d, 0xdf, 0x52, 0x86, 0x95, 0xa1, 0x3a, 0x17, 0xe8, 0x9b, + 0x42, 0xf3, 0x61, 0xcc, 0x6c, 0xc0, 0xa7, 0xa8, 0x11, 0x01, 0xe3, 0x1e, 0x17, 0x10, 0x88, 0x2c, + 0xe6, 0x8c, 0xfa, 0x20, 0xfb, 0xda, 0x36, 0x9b, 0xc9, 0xac, 0xdd, 0xf8, 0x73, 0xc5, 0xb9, 0xb5, + 0x52, 0xd5, 0x79, 0xb3, 0x62, 0x64, 0xe9, 0xba, 0xf0, 0x8f, 0xa8, 0x46, 0xa5, 0x07, 0x98, 0x42, + 0x2f, 0x46, 0xd0, 0x53, 0x7e, 0x6b, 0x11, 0x21, 0xd7, 0x2a, 0xcb, 0x53, 0xb7, 0xe5, 0x91, 0x6b, + 0x95, 0xd2, 0xa5, 0xb5, 0x4a, 0xdb, 0x52, 0xc8, 0xb4, 0x94, 0x20, 0x74, 0xb2, 0x2e, 0x2b, 0x77, + 0x4b, 0x39, 0x53, 0x7e, 0x6b, 0x11, 0xd1, 0xf9, 0x50, 0x59, 0x31, 0x3a, 0x79, 0x3f, 0x96, 0x7a, + 0x72, 0x64, 0x4f, 0xb5, 0x42, 0x4f, 0xce, 0xa2, 0x27, 0x07, 0xbf, 0xd2, 0x10, 0xa6, 0x0b, 0x44, + 0x7f, 0x7e, 0x7f, 0xb2, 0x25, 0xff, 0xfe, 0x84, 0x7b, 0x4b, 0x7a, 0x05, 0xda, 0x49, 0x20, 0xd8, + 0x95, 0xd9, 0x52, 0x55, 0xe0, 0x62, 0x80, 0xb5, 0xa2, 0x04, 0x7c, 0x89, 0xea, 0x99, 0xf7, 0x84, + 0xb1, 0x90, 0xa9, 0x97, 0xb4, 0xf7, 0x80, 0x8a, 0x64, 0xbc, 0xa9, 0x27, 0xb3, 0x76, 0xbd, 0x97, + 0x03, 0xde, 0xcf, 0xda, 0xf5, 0xa5, 0x73, 0x6b, 0x19, 0x9e, 0xe6, 0x72, 0x20, 0xcf, 0x55, 0x7d, + 0x4a, 0xae, 0x63, 0x58, 0x9f, 0x6b, 0x09, 0xde, 0x3a, 0x41, 0xdf, 0xae, 0x19, 0x11, 0xde, 0x41, + 0x95, 0x11, 0x5c, 0x65, 0x37, 0xd1, 0x4a, 0x3f, 0x71, 0x03, 0x6d, 0x4c, 0xe8, 0x38, 0xce, 0x6e, + 0xdc, 0xb6, 0x95, 0x19, 0xbf, 0x96, 0x8f, 0xb4, 0xce, 0x0b, 0x0d, 0x2d, 0xe7, 0xc0, 0xa7, 0xa8, + 0x9a, 0xfe, 0x93, 0xd5, 0xcb, 0xff, 0xe1, 0x61, 0x2f, 0xff, 0x2f, 0xcf, 0x87, 0xfc, 0x0f, 0x96, + 0x5a, 0x96, 0xa4, 0xe0, 0xef, 0xd1, 0x96, 0x0f, 0x9c, 0x53, 0x57, 0x65, 0x36, 0xbf, 0x56, 0x41, + 0x5b, 0xfd, 0xcc, 0x6d, 0xcd, 0xcf, 0x4d, 0x32, 0xbd, 0xd5, 0x4b, 0xd7, 0xb7, 0x7a, 0xe9, 0xe6, + 0x56, 0x2f, 0x3d, 0x4f, 0x74, 0x6d, 0x9a, 0xe8, 0xda, 0x75, 0xa2, 0x6b, 0x37, 0x89, 0xae, 0xbd, + 0x4d, 0x74, 0xed, 0xe5, 0x3b, 0xbd, 0xf4, 0x4f, 0x6d, 0x3e, 0xb8, 0x8f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x68, 0x82, 0x7b, 0x73, 0x9e, 0x07, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/generated.proto new file mode 100644 index 000000000..c9421cf06 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/generated.proto @@ -0,0 +1,128 @@ +/* +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.storage.v1alpha1; + +import "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/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 = "v1alpha1"; + +// VolumeAttachment captures the intent to attach or detach the specified volume +// to/from the specified node. +// +// VolumeAttachment objects are non-namespaced. +message VolumeAttachment { + // Standard object metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the desired attach/detach volume behavior. + // Populated by the Kubernetes system. + optional VolumeAttachmentSpec spec = 2; + + // Status of the VolumeAttachment request. + // Populated by the entity completing the attach or detach + // operation, i.e. the external-attacher. + // +optional + optional VolumeAttachmentStatus status = 3; +} + +// VolumeAttachmentList is a collection of VolumeAttachment objects. +message VolumeAttachmentList { + // 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 the list of VolumeAttachments + repeated VolumeAttachment items = 2; +} + +// VolumeAttachmentSource represents a volume that should be attached. +// Right now only PersistenVolumes can be attached via external attacher, +// in future we may allow also inline volumes in pods. +// Exactly one member can be set. +message VolumeAttachmentSource { + // Name of the persistent volume to attach. + // +optional + optional string persistentVolumeName = 1; +} + +// VolumeAttachmentSpec is the specification of a VolumeAttachment request. +message VolumeAttachmentSpec { + // Attacher indicates the name of the volume driver that MUST handle this + // request. This is the name returned by GetPluginName(). + optional string attacher = 1; + + // Source represents the volume that should be attached. + optional VolumeAttachmentSource source = 2; + + // The node that the volume should be attached to. + optional string nodeName = 3; +} + +// VolumeAttachmentStatus is the status of a VolumeAttachment request. +message VolumeAttachmentStatus { + // Indicates the volume is successfully attached. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + optional bool attached = 1; + + // Upon successful attach, this field is populated with any + // information returned by the attach operation that must be passed + // into subsequent WaitForAttach or Mount calls. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + map attachmentMetadata = 2; + + // The last error encountered during attach operation, if any. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + optional VolumeError attachError = 3; + + // The last error encountered during detach operation, if any. + // This field must only be set by the entity completing the detach + // operation, i.e. the external-attacher. + // +optional + optional VolumeError detachError = 4; +} + +// VolumeError captures an error encountered during a volume operation. +message VolumeError { + // Time the error was encountered. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1; + + // String detailing the error encountered during Attach or Detach operation. + // This string maybe logged, so it should not contain sensitive + // information. + // +optional + optional string message = 2; +} + diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/register.go similarity index 74% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/register.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/register.go index 1ee348eea..7b81ee49c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/register.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1 +package v1alpha1 import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -22,28 +22,29 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" ) -var ( - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - AddToScheme = SchemeBuilder.AddToScheme -) - -// GroupName is the group name used in this package. -const GroupName = "cr.client-go.k8s.io" +// GroupName is the group name use in this package +const GroupName = "storage.k8s.io" -// SchemeGroupVersion is the group version used to register these objects. -var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} -// Resource takes an unqualified resource and returns a Group-qualified GroupResource. +// Resource takes an unqualified resource and returns a Group qualified GroupResource func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// addKnownTypes adds the set of types defined in this package to the supplied scheme. +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, - &Example{}, - &ExampleList{}, + &VolumeAttachment{}, + &VolumeAttachmentList{}, ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/types.go new file mode 100644 index 000000000..964bb5f7b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/types.go @@ -0,0 +1,126 @@ +/* +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 v1alpha1 + +import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// VolumeAttachment captures the intent to attach or detach the specified volume +// to/from the specified node. +// +// VolumeAttachment objects are non-namespaced. +type VolumeAttachment struct { + metav1.TypeMeta `json:",inline"` + + // Standard object metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Specification of the desired attach/detach volume behavior. + // Populated by the Kubernetes system. + Spec VolumeAttachmentSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + + // Status of the VolumeAttachment request. + // Populated by the entity completing the attach or detach + // operation, i.e. the external-attacher. + // +optional + Status VolumeAttachmentStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// VolumeAttachmentList is a collection of VolumeAttachment objects. +type VolumeAttachmentList 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 the list of VolumeAttachments + Items []VolumeAttachment `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// VolumeAttachmentSpec is the specification of a VolumeAttachment request. +type VolumeAttachmentSpec struct { + // Attacher indicates the name of the volume driver that MUST handle this + // request. This is the name returned by GetPluginName(). + Attacher string `json:"attacher" protobuf:"bytes,1,opt,name=attacher"` + + // Source represents the volume that should be attached. + Source VolumeAttachmentSource `json:"source" protobuf:"bytes,2,opt,name=source"` + + // The node that the volume should be attached to. + NodeName string `json:"nodeName" protobuf:"bytes,3,opt,name=nodeName"` +} + +// VolumeAttachmentSource represents a volume that should be attached. +// Right now only PersistenVolumes can be attached via external attacher, +// in future we may allow also inline volumes in pods. +// Exactly one member can be set. +type VolumeAttachmentSource struct { + // Name of the persistent volume to attach. + // +optional + PersistentVolumeName *string `json:"persistentVolumeName,omitempty" protobuf:"bytes,1,opt,name=persistentVolumeName"` + + // Placeholder for *VolumeSource to accommodate inline volumes in pods. +} + +// VolumeAttachmentStatus is the status of a VolumeAttachment request. +type VolumeAttachmentStatus struct { + // Indicates the volume is successfully attached. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + Attached bool `json:"attached" protobuf:"varint,1,opt,name=attached"` + + // Upon successful attach, this field is populated with any + // information returned by the attach operation that must be passed + // into subsequent WaitForAttach or Mount calls. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + AttachmentMetadata map[string]string `json:"attachmentMetadata,omitempty" protobuf:"bytes,2,rep,name=attachmentMetadata"` + + // The last error encountered during attach operation, if any. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + AttachError *VolumeError `json:"attachError,omitempty" protobuf:"bytes,3,opt,name=attachError,casttype=VolumeError"` + + // The last error encountered during detach operation, if any. + // This field must only be set by the entity completing the detach + // operation, i.e. the external-attacher. + // +optional + DetachError *VolumeError `json:"detachError,omitempty" protobuf:"bytes,4,opt,name=detachError,casttype=VolumeError"` +} + +// VolumeError captures an error encountered during a volume operation. +type VolumeError struct { + // Time the error was encountered. + // +optional + Time metav1.Time `json:"time,omitempty" protobuf:"bytes,1,opt,name=time"` + + // String detailing the error encountered during Attach or Detach operation. + // This string maybe logged, so it should not contain sensitive + // information. + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"` +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go new file mode 100644 index 000000000..faca8e939 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go @@ -0,0 +1,93 @@ +/* +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 v1alpha1 + +// 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_VolumeAttachment = map[string]string{ + "": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", + "metadata": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "spec": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.", + "status": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.", +} + +func (VolumeAttachment) SwaggerDoc() map[string]string { + return map_VolumeAttachment +} + +var map_VolumeAttachmentList = map[string]string{ + "": "VolumeAttachmentList is a collection of VolumeAttachment objects.", + "metadata": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "items": "Items is the list of VolumeAttachments", +} + +func (VolumeAttachmentList) SwaggerDoc() map[string]string { + return map_VolumeAttachmentList +} + +var map_VolumeAttachmentSource = map[string]string{ + "": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", + "persistentVolumeName": "Name of the persistent volume to attach.", +} + +func (VolumeAttachmentSource) SwaggerDoc() map[string]string { + return map_VolumeAttachmentSource +} + +var map_VolumeAttachmentSpec = map[string]string{ + "": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", + "attacher": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", + "source": "Source represents the volume that should be attached.", + "nodeName": "The node that the volume should be attached to.", +} + +func (VolumeAttachmentSpec) SwaggerDoc() map[string]string { + return map_VolumeAttachmentSpec +} + +var map_VolumeAttachmentStatus = map[string]string{ + "": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", + "attached": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "attachmentMetadata": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "attachError": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "detachError": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.", +} + +func (VolumeAttachmentStatus) SwaggerDoc() map[string]string { + return map_VolumeAttachmentStatus +} + +var map_VolumeError = map[string]string{ + "": "VolumeError captures an error encountered during a volume operation.", + "time": "Time the error was encountered.", + "message": "String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.", +} + +func (VolumeError) SwaggerDoc() map[string]string { + return map_VolumeError +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 000000000..19ae94853 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,188 @@ +// +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 v1alpha1 + +import ( + 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 *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment. +func (in *VolumeAttachment) DeepCopy() *VolumeAttachment { + if in == nil { + return nil + } + out := new(VolumeAttachment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeAttachment) 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 *VolumeAttachmentList) DeepCopyInto(out *VolumeAttachmentList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VolumeAttachment, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentList. +func (in *VolumeAttachmentList) DeepCopy() *VolumeAttachmentList { + if in == nil { + return nil + } + out := new(VolumeAttachmentList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeAttachmentList) 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 *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) { + *out = *in + if in.PersistentVolumeName != nil { + in, out := &in.PersistentVolumeName, &out.PersistentVolumeName + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSource. +func (in *VolumeAttachmentSource) DeepCopy() *VolumeAttachmentSource { + if in == nil { + return nil + } + out := new(VolumeAttachmentSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachmentSpec) DeepCopyInto(out *VolumeAttachmentSpec) { + *out = *in + in.Source.DeepCopyInto(&out.Source) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSpec. +func (in *VolumeAttachmentSpec) DeepCopy() *VolumeAttachmentSpec { + if in == nil { + return nil + } + out := new(VolumeAttachmentSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) { + *out = *in + if in.AttachmentMetadata != nil { + in, out := &in.AttachmentMetadata, &out.AttachmentMetadata + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.AttachError != nil { + in, out := &in.AttachError, &out.AttachError + if *in == nil { + *out = nil + } else { + *out = new(VolumeError) + (*in).DeepCopyInto(*out) + } + } + if in.DetachError != nil { + in, out := &in.DetachError, &out.DetachError + if *in == nil { + *out = nil + } else { + *out = new(VolumeError) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus. +func (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus { + if in == nil { + return nil + } + out := new(VolumeAttachmentStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeError) DeepCopyInto(out *VolumeError) { + *out = *in + in.Time.DeepCopyInto(&out.Time) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError. +func (in *VolumeError) DeepCopy() *VolumeError { + if in == nil { + return nil + } + out := new(VolumeError) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/BUILD index 4ea13789f..e659e9de0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/BUILD @@ -17,7 +17,6 @@ go_library( "//vendor/github.com/gogo/protobuf/sortkeys: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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/doc.go index 6137d7a4c..8957a4cf2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=storage.k8s.io // +k8s:openapi-gen=true package v1beta1 // import "k8s.io/api/storage/v1beta1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go index b31d6f122..f2c8ea960 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go @@ -146,6 +146,12 @@ func (m *StorageClass) MarshalTo(dAtA []byte) (int, error) { } i++ } + if m.VolumeBindingMode != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode))) + i += copy(dAtA[i:], *m.VolumeBindingMode) + } return i, nil } @@ -242,6 +248,10 @@ func (m *StorageClass) Size() (n int) { if m.AllowVolumeExpansion != nil { n += 2 } + if m.VolumeBindingMode != nil { + l = len(*m.VolumeBindingMode) + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -293,6 +303,7 @@ func (this *StorageClass) String() string { `ReclaimPolicy:` + valueToStringGenerated(this.ReclaimPolicy) + `,`, `MountOptions:` + fmt.Sprintf("%v", this.MountOptions) + `,`, `AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`, + `VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`, `}`, }, "") return s @@ -600,6 +611,36 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { } b := bool(v != 0) m.AllowVolumeExpansion = &b + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeBindingMode", 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 := VolumeBindingMode(dAtA[iNdEx:postIndex]) + m.VolumeBindingMode = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -842,42 +883,44 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 589 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x4f, 0x4f, 0xd4, 0x40, - 0x18, 0xc6, 0xb7, 0x2c, 0xab, 0x30, 0x0b, 0x71, 0x53, 0x39, 0x34, 0x7b, 0xe8, 0x6e, 0x38, 0xf5, - 0xc2, 0x0c, 0x20, 0x1a, 0x62, 0xe2, 0xc1, 0x12, 0x0e, 0x26, 0x10, 0x36, 0x35, 0xf1, 0x60, 0x3c, - 0x38, 0x5b, 0x5e, 0xcb, 0xd8, 0x76, 0xa6, 0x99, 0x99, 0xae, 0xee, 0xcd, 0x8f, 0xe0, 0x37, 0xf2, - 0x64, 0xc2, 0x91, 0x23, 0xa7, 0x46, 0xea, 0xb7, 0xf0, 0x64, 0xfa, 0x47, 0x5a, 0x58, 0x88, 0xdc, - 0x3a, 0xef, 0xfb, 0xfc, 0x9e, 0xb7, 0xf3, 0xce, 0x83, 0x0e, 0xc2, 0x7d, 0x85, 0x99, 0x20, 0x61, - 0x3a, 0x05, 0xc9, 0x41, 0x83, 0x22, 0x33, 0xe0, 0xa7, 0x42, 0x92, 0xba, 0x41, 0x13, 0x46, 0x94, - 0x16, 0x92, 0x06, 0x40, 0x66, 0x3b, 0x53, 0xd0, 0x74, 0x87, 0x04, 0xc0, 0x41, 0x52, 0x0d, 0xa7, - 0x38, 0x91, 0x42, 0x0b, 0x73, 0x58, 0x69, 0x31, 0x4d, 0x18, 0xae, 0xb5, 0xb8, 0xd6, 0x0e, 0xb7, - 0x02, 0xa6, 0xcf, 0xd2, 0x29, 0xf6, 0x45, 0x4c, 0x02, 0x11, 0x08, 0x52, 0x22, 0xd3, 0xf4, 0x53, - 0x79, 0x2a, 0x0f, 0xe5, 0x57, 0x65, 0x35, 0xdc, 0x6c, 0x8d, 0xf5, 0x85, 0x2c, 0x66, 0xde, 0x1e, - 0x37, 0xdc, 0x6b, 0x34, 0x31, 0xf5, 0xcf, 0x18, 0x07, 0x39, 0x27, 0x49, 0x18, 0x14, 0x05, 0x45, - 0x62, 0xd0, 0xf4, 0x2e, 0x8a, 0xdc, 0x47, 0xc9, 0x94, 0x6b, 0x16, 0xc3, 0x02, 0xf0, 0xe2, 0x7f, - 0x80, 0xf2, 0xcf, 0x20, 0xa6, 0x0b, 0xdc, 0xb3, 0xfb, 0xb8, 0x54, 0xb3, 0x88, 0x30, 0xae, 0x95, - 0x96, 0xb7, 0xa1, 0xcd, 0x9f, 0xcb, 0x68, 0xed, 0x6d, 0xb5, 0xba, 0x83, 0x88, 0x2a, 0x65, 0x7e, - 0x44, 0x2b, 0xc5, 0x4d, 0x4e, 0xa9, 0xa6, 0x96, 0x31, 0x36, 0x9c, 0xfe, 0xee, 0x36, 0x6e, 0xd6, - 0x7c, 0x6d, 0x8c, 0x93, 0x30, 0x28, 0x0a, 0x0a, 0x17, 0x6a, 0x3c, 0xdb, 0xc1, 0x27, 0xd3, 0xcf, - 0xe0, 0xeb, 0x63, 0xd0, 0xd4, 0x35, 0xcf, 0xb3, 0x51, 0x27, 0xcf, 0x46, 0xa8, 0xa9, 0x79, 0xd7, - 0xae, 0xe6, 0x73, 0xd4, 0x4f, 0xa4, 0x98, 0x31, 0xc5, 0x04, 0x07, 0x69, 0x2d, 0x8d, 0x0d, 0x67, - 0xd5, 0x7d, 0x5a, 0x23, 0xfd, 0x49, 0xd3, 0xf2, 0xda, 0x3a, 0x33, 0x42, 0x28, 0xa1, 0x92, 0xc6, - 0xa0, 0x41, 0x2a, 0xab, 0x3b, 0xee, 0x3a, 0xfd, 0xdd, 0x7d, 0x7c, 0x7f, 0x02, 0x70, 0xfb, 0x5a, - 0x78, 0x72, 0x8d, 0x1e, 0x72, 0x2d, 0xe7, 0xcd, 0x2f, 0x36, 0x0d, 0xaf, 0xe5, 0x6f, 0x86, 0x68, - 0x5d, 0x82, 0x1f, 0x51, 0x16, 0x4f, 0x44, 0xc4, 0xfc, 0xb9, 0xb5, 0x5c, 0xfe, 0xe6, 0x61, 0x9e, - 0x8d, 0xd6, 0xbd, 0x76, 0xe3, 0x4f, 0x36, 0xda, 0x5e, 0xcc, 0x0e, 0x9e, 0x80, 0x54, 0x4c, 0x69, - 0xe0, 0xfa, 0x9d, 0x88, 0xd2, 0x18, 0x6e, 0x30, 0xde, 0x4d, 0x6f, 0x73, 0x0f, 0xad, 0xc5, 0x22, - 0xe5, 0xfa, 0x24, 0xd1, 0x4c, 0x70, 0x65, 0xf5, 0xc6, 0x5d, 0x67, 0xd5, 0x1d, 0xe4, 0xd9, 0x68, - 0xed, 0xb8, 0x55, 0xf7, 0x6e, 0xa8, 0xcc, 0x23, 0xb4, 0x41, 0xa3, 0x48, 0x7c, 0xa9, 0x06, 0x1c, - 0x7e, 0x4d, 0x28, 0x2f, 0x56, 0x65, 0x3d, 0x1a, 0x1b, 0xce, 0x8a, 0x6b, 0xe5, 0xd9, 0x68, 0xe3, - 0xf5, 0x1d, 0x7d, 0xef, 0x4e, 0x6a, 0xf8, 0x0a, 0x3d, 0xb9, 0xb5, 0x23, 0x73, 0x80, 0xba, 0x21, - 0xcc, 0xcb, 0x14, 0xac, 0x7a, 0xc5, 0xa7, 0xb9, 0x81, 0x7a, 0x33, 0x1a, 0xa5, 0x50, 0x3d, 0x9a, - 0x57, 0x1d, 0x5e, 0x2e, 0xed, 0x1b, 0x9b, 0x3f, 0x0c, 0x34, 0x68, 0x2f, 0xfc, 0x88, 0x29, 0x6d, - 0x7e, 0x58, 0xc8, 0x12, 0x7e, 0x58, 0x96, 0x0a, 0xba, 0x4c, 0xd2, 0xa0, 0x7e, 0xa6, 0x95, 0x7f, - 0x95, 0x56, 0x8e, 0x8e, 0x51, 0x8f, 0x69, 0x88, 0x95, 0xb5, 0x54, 0x66, 0xc1, 0x79, 0x68, 0x16, - 0xdc, 0xf5, 0xda, 0xb4, 0xf7, 0xa6, 0xc0, 0xbd, 0xca, 0xc5, 0xdd, 0x3a, 0xbf, 0xb2, 0x3b, 0x17, - 0x57, 0x76, 0xe7, 0xf2, 0xca, 0xee, 0x7c, 0xcb, 0x6d, 0xe3, 0x3c, 0xb7, 0x8d, 0x8b, 0xdc, 0x36, - 0x2e, 0x73, 0xdb, 0xf8, 0x95, 0xdb, 0xc6, 0xf7, 0xdf, 0x76, 0xe7, 0xfd, 0xe3, 0xda, 0xf1, 0x6f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x1b, 0xae, 0x44, 0x72, 0xc1, 0x04, 0x00, 0x00, + // 622 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcd, 0x6e, 0xd3, 0x40, + 0x14, 0x85, 0xe3, 0x86, 0xd0, 0x76, 0xd2, 0x8a, 0xd4, 0x74, 0x61, 0x65, 0x61, 0x47, 0x5d, 0x45, + 0x48, 0x1d, 0xb7, 0xa5, 0xa0, 0x0a, 0x89, 0x05, 0xae, 0xba, 0x40, 0x6a, 0xd4, 0xc8, 0x48, 0x15, + 0x42, 0x2c, 0x98, 0x38, 0x17, 0x77, 0x88, 0x3d, 0x63, 0xcd, 0x8c, 0x03, 0xd9, 0xf1, 0x08, 0xbc, + 0x01, 0x8f, 0xc2, 0xb6, 0xcb, 0x2e, 0xbb, 0xb2, 0xa8, 0x79, 0x8b, 0xae, 0x90, 0x7f, 0x68, 0xdc, + 0xfc, 0x88, 0xee, 0x3c, 0xf7, 0x9e, 0xef, 0xdc, 0x99, 0xeb, 0x83, 0x8e, 0x47, 0x47, 0x12, 0x53, + 0x6e, 0x8f, 0xe2, 0x01, 0x08, 0x06, 0x0a, 0xa4, 0x3d, 0x06, 0x36, 0xe4, 0xc2, 0x2e, 0x1b, 0x24, + 0xa2, 0xb6, 0x54, 0x5c, 0x10, 0x1f, 0xec, 0xf1, 0xfe, 0x00, 0x14, 0xd9, 0xb7, 0x7d, 0x60, 0x20, + 0x88, 0x82, 0x21, 0x8e, 0x04, 0x57, 0x5c, 0x6f, 0x17, 0x5a, 0x4c, 0x22, 0x8a, 0x4b, 0x2d, 0x2e, + 0xb5, 0xed, 0x5d, 0x9f, 0xaa, 0x8b, 0x78, 0x80, 0x3d, 0x1e, 0xda, 0x3e, 0xf7, 0xb9, 0x9d, 0x23, + 0x83, 0xf8, 0x73, 0x7e, 0xca, 0x0f, 0xf9, 0x57, 0x61, 0xd5, 0xde, 0xa9, 0x8c, 0xf5, 0xb8, 0xc8, + 0x66, 0xce, 0x8e, 0x6b, 0x1f, 0x4e, 0x35, 0x21, 0xf1, 0x2e, 0x28, 0x03, 0x31, 0xb1, 0xa3, 0x91, + 0x9f, 0x15, 0xa4, 0x1d, 0x82, 0x22, 0x8b, 0x28, 0x7b, 0x19, 0x25, 0x62, 0xa6, 0x68, 0x08, 0x73, + 0xc0, 0xcb, 0xff, 0x01, 0xd2, 0xbb, 0x80, 0x90, 0xcc, 0x71, 0xcf, 0x97, 0x71, 0xb1, 0xa2, 0x81, + 0x4d, 0x99, 0x92, 0x4a, 0xcc, 0x42, 0x3b, 0x3f, 0x1b, 0x68, 0xe3, 0x5d, 0xb1, 0xba, 0xe3, 0x80, + 0x48, 0xa9, 0x7f, 0x42, 0x6b, 0xd9, 0x4b, 0x86, 0x44, 0x11, 0x43, 0xeb, 0x68, 0xdd, 0xe6, 0xc1, + 0x1e, 0x9e, 0xae, 0xf9, 0xce, 0x18, 0x47, 0x23, 0x3f, 0x2b, 0x48, 0x9c, 0xa9, 0xf1, 0x78, 0x1f, + 0x9f, 0x0d, 0xbe, 0x80, 0xa7, 0x7a, 0xa0, 0x88, 0xa3, 0x5f, 0x26, 0x56, 0x2d, 0x4d, 0x2c, 0x34, + 0xad, 0xb9, 0x77, 0xae, 0xfa, 0x0b, 0xd4, 0x8c, 0x04, 0x1f, 0x53, 0x49, 0x39, 0x03, 0x61, 0xac, + 0x74, 0xb4, 0xee, 0xba, 0xf3, 0xb4, 0x44, 0x9a, 0xfd, 0x69, 0xcb, 0xad, 0xea, 0xf4, 0x00, 0xa1, + 0x88, 0x08, 0x12, 0x82, 0x02, 0x21, 0x8d, 0x7a, 0xa7, 0xde, 0x6d, 0x1e, 0x1c, 0xe1, 0xe5, 0x09, + 0xc0, 0xd5, 0x67, 0xe1, 0xfe, 0x1d, 0x7a, 0xc2, 0x94, 0x98, 0x4c, 0xaf, 0x38, 0x6d, 0xb8, 0x15, + 0x7f, 0x7d, 0x84, 0x36, 0x05, 0x78, 0x01, 0xa1, 0x61, 0x9f, 0x07, 0xd4, 0x9b, 0x18, 0x8f, 0xf2, + 0x6b, 0x9e, 0xa4, 0x89, 0xb5, 0xe9, 0x56, 0x1b, 0xb7, 0x89, 0xb5, 0x37, 0x9f, 0x1d, 0xdc, 0x07, + 0x21, 0xa9, 0x54, 0xc0, 0xd4, 0x39, 0x0f, 0xe2, 0x10, 0xee, 0x31, 0xee, 0x7d, 0x6f, 0xfd, 0x10, + 0x6d, 0x84, 0x3c, 0x66, 0xea, 0x2c, 0x52, 0x94, 0x33, 0x69, 0x34, 0x3a, 0xf5, 0xee, 0xba, 0xd3, + 0x4a, 0x13, 0x6b, 0xa3, 0x57, 0xa9, 0xbb, 0xf7, 0x54, 0xfa, 0x29, 0xda, 0x26, 0x41, 0xc0, 0xbf, + 0x16, 0x03, 0x4e, 0xbe, 0x45, 0x84, 0x65, 0xab, 0x32, 0x1e, 0x77, 0xb4, 0xee, 0x9a, 0x63, 0xa4, + 0x89, 0xb5, 0xfd, 0x66, 0x41, 0xdf, 0x5d, 0x48, 0xe9, 0xef, 0xd1, 0xd6, 0x38, 0x2f, 0x39, 0x94, + 0x0d, 0x29, 0xf3, 0x7b, 0x7c, 0x08, 0xc6, 0x6a, 0xfe, 0xe8, 0x67, 0x69, 0x62, 0x6d, 0x9d, 0xcf, + 0x36, 0x6f, 0x17, 0x15, 0xdd, 0x79, 0x93, 0xf6, 0x6b, 0xf4, 0x64, 0x66, 0xfb, 0x7a, 0x0b, 0xd5, + 0x47, 0x30, 0xc9, 0xf3, 0xb5, 0xee, 0x66, 0x9f, 0xfa, 0x36, 0x6a, 0x8c, 0x49, 0x10, 0x43, 0x11, + 0x07, 0xb7, 0x38, 0xbc, 0x5a, 0x39, 0xd2, 0x76, 0x7e, 0x69, 0xa8, 0x55, 0xfd, 0x95, 0xa7, 0x54, + 0x2a, 0xfd, 0xe3, 0x5c, 0x4a, 0xf1, 0xc3, 0x52, 0x9a, 0xd1, 0x79, 0x46, 0x5b, 0x65, 0x00, 0xd6, + 0xfe, 0x55, 0x2a, 0x09, 0xed, 0xa1, 0x06, 0x55, 0x10, 0x4a, 0x63, 0x25, 0x4f, 0x59, 0xf7, 0xa1, + 0x29, 0x73, 0x36, 0x4b, 0xd3, 0xc6, 0xdb, 0x0c, 0x77, 0x0b, 0x17, 0x67, 0xf7, 0xf2, 0xc6, 0xac, + 0x5d, 0xdd, 0x98, 0xb5, 0xeb, 0x1b, 0xb3, 0xf6, 0x3d, 0x35, 0xb5, 0xcb, 0xd4, 0xd4, 0xae, 0x52, + 0x53, 0xbb, 0x4e, 0x4d, 0xed, 0x77, 0x6a, 0x6a, 0x3f, 0xfe, 0x98, 0xb5, 0x0f, 0xab, 0xa5, 0xe3, + 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x66, 0xe2, 0x8e, 0x84, 0x1b, 0x05, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/generated.proto index f8070b67c..b0e030c01 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/generated.proto @@ -63,6 +63,13 @@ message StorageClass { // AllowVolumeExpansion shows whether the storage class allow volume expand // +optional optional bool allowVolumeExpansion = 6; + + // VolumeBindingMode indicates how PersistentVolumeClaims should be + // provisioned and bound. When unset, VolumeBindingImmediate is used. + // This field is alpha-level and is only honored by servers that enable + // the VolumeScheduling feature. + // +optional + optional string volumeBindingMode = 7; } // StorageClassList is a collection of storage classes. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/register.go index 759ba81aa..7f1f0c8e8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &StorageClass{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/types.go index e5036b55b..7fb9ad980 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/types.go @@ -59,6 +59,13 @@ type StorageClass struct { // AllowVolumeExpansion shows whether the storage class allow volume expand // +optional AllowVolumeExpansion *bool `json:"allowVolumeExpansion,omitempty" protobuf:"varint,6,opt,name=allowVolumeExpansion"` + + // VolumeBindingMode indicates how PersistentVolumeClaims should be + // provisioned and bound. When unset, VolumeBindingImmediate is used. + // This field is alpha-level and is only honored by servers that enable + // the VolumeScheduling feature. + // +optional + VolumeBindingMode *VolumeBindingMode `json:"volumeBindingMode,omitempty" protobuf:"bytes,7,opt,name=volumeBindingMode"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -74,3 +81,18 @@ type StorageClassList struct { // Items is the list of StorageClasses Items []StorageClass `json:"items" protobuf:"bytes,2,rep,name=items"` } + +// VolumeBindingMode indicates how PersistentVolumeClaims should be bound. +type VolumeBindingMode string + +const ( + // VolumeBindingImmediate indicates that PersistentVolumeClaims should be + // immediately provisioned and bound. This is the default mode. + VolumeBindingImmediate VolumeBindingMode = "Immediate" + + // VolumeBindingWaitForFirstConsumer indicates that PersistentVolumeClaims + // should not be provisioned and bound until the first Pod is created that + // references the PeristentVolumeClaim. The volume provisioning and + // binding will occur during Pod scheduing. + VolumeBindingWaitForFirstConsumer VolumeBindingMode = "WaitForFirstConsumer" +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go index e2148c231..85886f7df 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go @@ -35,6 +35,7 @@ var map_StorageClass = map[string]string{ "reclaimPolicy": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", "mountOptions": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", "allowVolumeExpansion": "AllowVolumeExpansion shows whether the storage class allow volume expand", + "volumeBindingMode": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.", } func (StorageClass) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go index bf1f91a67..9d1e79823 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go @@ -22,32 +22,9 @@ package v1beta1 import ( v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageClass).DeepCopyInto(out.(*StorageClass)) - return nil - }, InType: reflect.TypeOf(&StorageClass{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StorageClassList).DeepCopyInto(out.(*StorageClassList)) - return nil - }, InType: reflect.TypeOf(&StorageClassList{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *StorageClass) DeepCopyInto(out *StorageClass) { *out = *in @@ -83,6 +60,15 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { **out = **in } } + if in.VolumeBindingMode != nil { + in, out := &in.VolumeBindingMode, &out.VolumeBindingMode + if *in == nil { + *out = nil + } else { + *out = new(VolumeBindingMode) + **out = **in + } + } return } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json index c24c1f0d1..d2c48a7a1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/apiextensions-apiserver", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "./..." @@ -168,27 +168,31 @@ }, { "ImportPath": "github.com/golang/protobuf/jsonpb", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/any", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/duration", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/struct", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/google/btree", @@ -514,6 +518,10 @@ "ImportPath": "gopkg.in/yaml.v2", "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" }, + { + "ImportPath": "k8s.io/api/admission/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -610,6 +618,10 @@ "ImportPath": "k8s.io/api/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/api/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -818,6 +830,10 @@ "ImportPath": "k8s.io/apimachinery/pkg/util/wait", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/waitgroup", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -862,6 +878,34 @@ "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/config", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/errors", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/namespace", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/request", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/rules", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/validating", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/versioned", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1274,6 +1318,10 @@ "ImportPath": "k8s.io/client-go/informers/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1382,6 +1430,10 @@ "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1466,6 +1518,10 @@ "ImportPath": "k8s.io/client-go/listers/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1548,19 +1604,19 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", @@ -1574,10 +1630,6 @@ "ImportPath": "k8s.io/apimachinery/pkg/api/meta", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, - { - "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - }, { "ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1598,10 +1650,6 @@ "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, - { - "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", - "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1650,10 +1698,6 @@ "ImportPath": "k8s.io/apimachinery/pkg/util/errors", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1770,10 +1814,6 @@ "ImportPath": "k8s.io/client-go/tools/cache", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, - { - "ImportPath": "k8s.io/client-go/tools/clientcmd", - "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - }, { "ImportPath": "k8s.io/client-go/util/flowcontrol", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/LICENSE b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/README.md new file mode 100644 index 000000000..be75b9ba4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/README.md @@ -0,0 +1,20 @@ +# apiextensions-apiserver + +Implements: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/thirdpartyresources.md + +It provides an API for registering `CustomResourceDefinitions`. + +## Purpose + +This API server provides the implementation for `CustomResourceDefinitions` which is included as +delegate server inside of `kube-apiserver`. + + +## Compatibility + +HEAD of this repo will match HEAD of k8s.io/apiserver, k8s.io/apimachinery, and k8s.io/client-go. + +## Where does it come from? + +`apiextensions-apiserver` is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apiextensions-apiserver. +Code changes are made in that location, merged into `k8s.io/kubernetes` and later synced here. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD index 3f09a3cc3..9bf1895c2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD @@ -1,33 +1,3 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["main.go"], - importpath = "k8s.io/apiextensions-apiserver/examples/client-go", - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/client:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/controller:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset: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/client-go/tools/clientcmd:go_default_library", - ], -) - -go_binary( - name = "client-go", - importpath = "k8s.io/apiextensions-apiserver/examples/client-go", - library = ":go_default_library", -) - filegroup( name = "package-srcs", srcs = glob(["**"]), @@ -39,9 +9,11 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1:all-srcs", - "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client:all-srcs", - "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller:all-srcs", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr:all-srcs", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned:all-srcs", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions:all-srcs", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1:all-srcs", ], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/README.md index 3ac247f4a..1949e5d47 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/README.md +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/README.md @@ -2,18 +2,29 @@ **Note:** CustomResourceDefinition is the successor of the deprecated ThirdPartyResource. -This particular example demonstrates how to perform basic operations such as: +This particular example demonstrates how to generate a client for CustomResources using [`k8s.io/code-generator`](https://github.com/kubernetes/code-generator). The clientset can +be generated using the `./hack/update-codegen.sh` script. -* How to register a new custom resource (custom resource type) using a CustomResourceDefinition -* How to create/get/list instances of your new resource type (update/delete/etc work as well but are not demonstrated) -* How to setup a controller on resource handling create/update/delete events +The `update-codegen` script will automatically generate the following files and +directories: -## Running +* `pkg/apis/cr/v1/zz_generated.deepcopy.go` +* `pkg/client/` -``` -# assumes you have a working kubeconfig, not required if operating in-cluster -go run *.go -kubeconfig=$HOME/.kube/config -``` +The following code-generators are used: + +* `deepcopy-gen` - creates a method `func (t* T) DeepCopy() *T` for each type T +* `client-gen` - creates typed clientsets for CustomResource APIGroups +* `informer-gen` - creates informers for CustomResources which offer an event based +interface to react on changes of CustomResources on the server +* `lister-gen` - creates listers for CustomResources which offer a read-only caching layer for GET and LIST requests. + +Changes should not be made to these files manually, and when creating your own +controller based off of this implementation you should not copy these files and +instead run the `update-codegen` script to generate your own. + +Please see [`k8s.io/sample-controller`](https://github.com/kubernetes/sample-controller) for an example +controller for CustomResources using the generated client. ## Use Cases @@ -44,9 +55,3 @@ type User struct { Password string `json:"password"` } ``` - -## Cleanup - -Successfully running this program will clean the created artifacts. If you terminate the program without completing, you can clean up the created CustomResourceDefinition with: - - kubectl delete crd examples.cr.client-go.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD deleted file mode 100644 index f81f1a33d..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD +++ /dev/null @@ -1,53 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["roundtrip_test.go"], - importpath = "k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1", - library = ":go_default_library", - deps = [ - "//vendor/github.com/google/gofuzz:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/testing/fuzzer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/fuzzer: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/serializer:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "register.go", - "types.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion: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"], -) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/roundtrip_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/roundtrip_test.go deleted file mode 100644 index 7373c78b5..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/roundtrip_test.go +++ /dev/null @@ -1,66 +0,0 @@ -/* -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 ( - "math/rand" - "testing" - - "github.com/google/gofuzz" - - "k8s.io/apimachinery/pkg/api/testing/fuzzer" - roundtrip "k8s.io/apimachinery/pkg/api/testing/roundtrip" - metafuzzer "k8s.io/apimachinery/pkg/apis/meta/fuzzer" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/serializer" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" -) - -var _ runtime.Object = &Example{} -var _ metav1.ObjectMetaAccessor = &Example{} - -var _ runtime.Object = &ExampleList{} -var _ metav1.ListMetaAccessor = &ExampleList{} - -func exampleFuzzerFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(obj *ExampleList, c fuzz.Continue) { - c.FuzzNoCustom(obj) - obj.Items = make([]Example, c.Intn(10)) - for i := range obj.Items { - c.Fuzz(&obj.Items[i]) - } - }, - } -} - -// TestRoundTrip tests that the third-party kinds can be marshaled and unmarshaled correctly to/from JSON -// without the loss of information. Moreover, deep copy is tested. -func TestRoundTrip(t *testing.T) { - scheme := runtime.NewScheme() - codecs := serializer.NewCodecFactory(scheme) - - AddToScheme(scheme) - - seed := rand.Int63() - fuzzerFuncs := fuzzer.MergeFuzzerFuncs(metafuzzer.Funcs, exampleFuzzerFuncs) - fuzzer := fuzzer.FuzzerFor(fuzzerFuncs, rand.NewSource(seed), codecs) - - roundtrip.RoundTripSpecificKindWithoutProtobuf(t, SchemeGroupVersion.WithKind("Example"), scheme, codecs, fuzzer, nil) - roundtrip.RoundTripSpecificKindWithoutProtobuf(t, SchemeGroupVersion.WithKind("ExampleList"), scheme, codecs, fuzzer, nil) -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD deleted file mode 100644 index 024315339..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "client.go", - "cr.go", - ], - importpath = "k8s.io/apiextensions-apiserver/examples/client-go/client", - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset: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/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait: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"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/client.go deleted file mode 100644 index b5f69dc22..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/client.go +++ /dev/null @@ -1,45 +0,0 @@ -/* -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 client - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/client-go/rest" - - crv1 "k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1" -) - -func NewClient(cfg *rest.Config) (*rest.RESTClient, *runtime.Scheme, error) { - scheme := runtime.NewScheme() - if err := crv1.AddToScheme(scheme); err != nil { - return nil, nil, err - } - - config := *cfg - config.GroupVersion = &crv1.SchemeGroupVersion - config.APIPath = "/apis" - config.ContentType = runtime.ContentTypeJSON - config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: serializer.NewCodecFactory(scheme)} - - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, nil, err - } - - return client, scheme, nil -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/cr.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/cr.go deleted file mode 100644 index 66513b569..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/cr.go +++ /dev/null @@ -1,103 +0,0 @@ -/* -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 client - -import ( - "fmt" - "reflect" - "time" - - apiv1 "k8s.io/api/core/v1" - crv1 "k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1" - apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/client-go/rest" - // Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters). - // _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" -) - -const exampleCRDName = crv1.ExampleResourcePlural + "." + crv1.GroupName - -func CreateCustomResourceDefinition(clientset apiextensionsclient.Interface) (*apiextensionsv1beta1.CustomResourceDefinition, error) { - crd := &apiextensionsv1beta1.CustomResourceDefinition{ - ObjectMeta: metav1.ObjectMeta{ - Name: exampleCRDName, - }, - Spec: apiextensionsv1beta1.CustomResourceDefinitionSpec{ - Group: crv1.GroupName, - Version: crv1.SchemeGroupVersion.Version, - Scope: apiextensionsv1beta1.NamespaceScoped, - Names: apiextensionsv1beta1.CustomResourceDefinitionNames{ - Plural: crv1.ExampleResourcePlural, - Kind: reflect.TypeOf(crv1.Example{}).Name(), - }, - }, - } - _, err := clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd) - if err != nil { - return nil, err - } - - // wait for CRD being established - err = wait.Poll(500*time.Millisecond, 60*time.Second, func() (bool, error) { - crd, err = clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Get(exampleCRDName, metav1.GetOptions{}) - if err != nil { - return false, err - } - for _, cond := range crd.Status.Conditions { - switch cond.Type { - case apiextensionsv1beta1.Established: - if cond.Status == apiextensionsv1beta1.ConditionTrue { - return true, err - } - case apiextensionsv1beta1.NamesAccepted: - if cond.Status == apiextensionsv1beta1.ConditionFalse { - fmt.Printf("Name conflict: %v\n", cond.Reason) - } - } - } - return false, err - }) - if err != nil { - deleteErr := clientset.ApiextensionsV1beta1().CustomResourceDefinitions().Delete(exampleCRDName, nil) - if deleteErr != nil { - return nil, errors.NewAggregate([]error{err, deleteErr}) - } - return nil, err - } - return crd, nil -} - -func WaitForExampleInstanceProcessed(exampleClient *rest.RESTClient, name string) error { - return wait.Poll(100*time.Millisecond, 10*time.Second, func() (bool, error) { - var example crv1.Example - err := exampleClient.Get(). - Resource(crv1.ExampleResourcePlural). - Namespace(apiv1.NamespaceDefault). - Name(name). - Do().Into(&example) - - if err == nil && example.Status.State == crv1.ExampleStateProcessed { - return true, nil - } - - return false, err - }) -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/controller.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/controller.go deleted file mode 100644 index d22cefebd..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/controller.go +++ /dev/null @@ -1,120 +0,0 @@ -/* -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 controller - -import ( - "context" - "fmt" - - apiv1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/cache" - - crv1 "k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1" -) - -// Watcher is an example of watching on resource create/update/delete events -type ExampleController struct { - ExampleClient *rest.RESTClient - ExampleScheme *runtime.Scheme -} - -// Run starts an Example resource controller -func (c *ExampleController) Run(ctx context.Context) error { - fmt.Print("Watch Example objects\n") - - // Watch Example objects - _, err := c.watchExamples(ctx) - if err != nil { - fmt.Printf("Failed to register watch for Example resource: %v\n", err) - return err - } - - <-ctx.Done() - return ctx.Err() -} - -func (c *ExampleController) watchExamples(ctx context.Context) (cache.Controller, error) { - source := cache.NewListWatchFromClient( - c.ExampleClient, - crv1.ExampleResourcePlural, - apiv1.NamespaceAll, - fields.Everything()) - - _, controller := cache.NewInformer( - source, - - // The object type. - &crv1.Example{}, - - // resyncPeriod - // Every resyncPeriod, all resources in the cache will retrigger events. - // Set to 0 to disable the resync. - 0, - - // Your custom resource event handlers. - cache.ResourceEventHandlerFuncs{ - AddFunc: c.onAdd, - UpdateFunc: c.onUpdate, - DeleteFunc: c.onDelete, - }) - - go controller.Run(ctx.Done()) - return controller, nil -} - -func (c *ExampleController) onAdd(obj interface{}) { - example := obj.(*crv1.Example) - fmt.Printf("[CONTROLLER] OnAdd %s\n", example.ObjectMeta.SelfLink) - - // NEVER modify objects from the store. It's a read-only, local cache. - // You can use DeepCopy() to make a deep copy of original object and modify this copy - // Or create a copy manually for better performance - exampleCopy := example.DeepCopy() - exampleCopy.Status = crv1.ExampleStatus{ - State: crv1.ExampleStateProcessed, - Message: "Successfully processed by controller", - } - - err := c.ExampleClient.Put(). - Name(example.ObjectMeta.Name). - Namespace(example.ObjectMeta.Namespace). - Resource(crv1.ExampleResourcePlural). - Body(exampleCopy). - Do(). - Error() - - if err != nil { - fmt.Printf("ERROR updating status: %v\n", err) - } else { - fmt.Printf("UPDATED status: %#v\n", exampleCopy) - } -} - -func (c *ExampleController) onUpdate(oldObj, newObj interface{}) { - oldExample := oldObj.(*crv1.Example) - newExample := newObj.(*crv1.Example) - fmt.Printf("[CONTROLLER] OnUpdate oldObj: %s\n", oldExample.ObjectMeta.SelfLink) - fmt.Printf("[CONTROLLER] OnUpdate newObj: %s\n", newExample.ObjectMeta.SelfLink) -} - -func (c *ExampleController) onDelete(obj interface{}) { - example := obj.(*crv1.Example) - fmt.Printf("[CONTROLLER] OnDelete %s\n", example.ObjectMeta.SelfLink) -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/update-codegen.sh b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/update-codegen.sh new file mode 100755 index 000000000..3659ad330 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/update-codegen.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# 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. + +set -o errexit +set -o nounset +set -o pipefail + +SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/.. +CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)} + +# generate the code with: +# --output-base because this script should also be able to run inside the vendor dir of +# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir +# instead of the $GOPATH directly. For normal projects this can be dropped. +${CODEGEN_PKG}/generate-groups.sh all \ + k8s.io/apiextensions-apiserver/examples/client-go/pkg/client k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis \ + cr:v1 \ + --output-base "$(dirname ${BASH_SOURCE})/../../../../.." + +# To use your own boilerplate text append: +# --go-header-file ${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/verify-codegen.sh b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/verify-codegen.sh new file mode 100755 index 000000000..9cc02a5a4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/verify-codegen.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# 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. + +set -o errexit +set -o nounset +set -o pipefail + +SCRIPT_ROOT=$(dirname "${BASH_SOURCE}")/.. + +DIFFROOT="${SCRIPT_ROOT}/pkg" +TMP_DIFFROOT="${SCRIPT_ROOT}/_tmp/pkg" +_tmp="${SCRIPT_ROOT}/_tmp" + +cleanup() { + rm -rf "${_tmp}" +} +trap "cleanup" EXIT SIGINT + +cleanup + +mkdir -p "${TMP_DIFFROOT}" +cp -a "${DIFFROOT}"/* "${TMP_DIFFROOT}" + +"${SCRIPT_ROOT}/hack/update-codegen.sh" +echo "diffing ${DIFFROOT} against freshly generated codegen" +ret=0 +diff -Naupr "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$? +cp -a "${TMP_DIFFROOT}"/* "${DIFFROOT}" +if [[ $ret -eq 0 ]] +then + echo "${DIFFROOT} up to date." +else + echo "${DIFFROOT} is out of date. Please run hack/update-codegen.sh" + exit 1 +fi diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/main.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/main.go deleted file mode 100644 index 6b2efb7eb..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/main.go +++ /dev/null @@ -1,123 +0,0 @@ -/* -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. -*/ - -// Note: the example only works with the code within the same release/branch. -package main - -import ( - "context" - "flag" - "fmt" - - apiv1 "k8s.io/api/core/v1" - apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" - apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/tools/clientcmd" - - // Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters). - // _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" - - crv1 "k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1" - exampleclient "k8s.io/apiextensions-apiserver/examples/client-go/client" - examplecontroller "k8s.io/apiextensions-apiserver/examples/client-go/controller" -) - -func main() { - masterURL := flag.String("master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.") - kubeconfig := flag.String("kubeconfig", "", "Path to a kube config. Only required if out-of-cluster.") - flag.Parse() - - // Create the client config. Use masterURL and kubeconfig if given, otherwise assume in-cluster. - config, err := clientcmd.BuildConfigFromFlags(*masterURL, *kubeconfig) - if err != nil { - panic(err) - } - - apiextensionsclientset, err := apiextensionsclient.NewForConfig(config) - if err != nil { - panic(err) - } - - // initialize custom resource using a CustomResourceDefinition if it does not exist - crd, err := exampleclient.CreateCustomResourceDefinition(apiextensionsclientset) - if err != nil && !apierrors.IsAlreadyExists(err) { - panic(err) - } - - if crd != nil { - defer apiextensionsclientset.ApiextensionsV1beta1().CustomResourceDefinitions().Delete(crd.Name, nil) - } - - // make a new config for our extension's API group, using the first config as a baseline - exampleClient, exampleScheme, err := exampleclient.NewClient(config) - if err != nil { - panic(err) - } - - // start a controller on instances of our custom resource - controller := examplecontroller.ExampleController{ - ExampleClient: exampleClient, - ExampleScheme: exampleScheme, - } - - ctx, cancelFunc := context.WithCancel(context.Background()) - defer cancelFunc() - go controller.Run(ctx) - - // Create an instance of our custom resource - example := &crv1.Example{ - ObjectMeta: metav1.ObjectMeta{ - Name: "example1", - }, - Spec: crv1.ExampleSpec{ - Foo: "hello", - Bar: true, - }, - Status: crv1.ExampleStatus{ - State: crv1.ExampleStateCreated, - Message: "Created, not processed yet", - }, - } - var result crv1.Example - err = exampleClient.Post(). - Resource(crv1.ExampleResourcePlural). - Namespace(apiv1.NamespaceDefault). - Body(example). - Do().Into(&result) - if err == nil { - fmt.Printf("CREATED: %#v\n", result) - } else if apierrors.IsAlreadyExists(err) { - fmt.Printf("ALREADY EXISTS: %#v\n", result) - } else { - panic(err) - } - - // Poll until Example object is handled by controller and gets status updated to "Processed" - err = exampleclient.WaitForExampleInstanceProcessed(exampleClient, "example1") - if err != nil { - panic(err) - } - fmt.Print("PROCESSED\n") - - // Fetch a list of our CRs - exampleList := crv1.ExampleList{} - err = exampleClient.Get().Resource(crv1.ExampleResourcePlural).Do().Into(&exampleList) - if err != nil { - panic(err) - } - fmt.Printf("LIST: %#v\n", exampleList) -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/BUILD new file mode 100644 index 000000000..b600f9212 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/BUILD @@ -0,0 +1,25 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["register.go"], + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/register.go new file mode 100644 index 000000000..6eb299eca --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/register.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. +*/ + +package cr + +const ( + GroupName = "cr.example.apiextensions.k8s.io" +) diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/BUILD similarity index 73% rename from vendor/k8s.io/kubernetes/federation/apis/core/v1/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/BUILD index 1077ddd95..0379da4b1 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/core/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/BUILD @@ -8,16 +8,14 @@ load( go_library( name = "go_default_library", srcs = [ - "conversion.go", - "defaults.go", "doc.go", "register.go", - "zz_generated.conversion.go", + "types.go", + "zz_generated.deepcopy.go", ], - importpath = "k8s.io/kubernetes/federation/apis/core/v1", + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1", deps = [ - "//pkg/api/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr: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", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/doc.go new file mode 100644 index 000000000..73d79a45d --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/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 + +// Package v1 is the v1 version of the API. +// +groupName=cr.example.apiextensions.k8s.io +package v1 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/register.go new file mode 100644 index 000000000..bd3b2ba64 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/register.go @@ -0,0 +1,51 @@ +/* +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 ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + + cr "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr" +) + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: cr.GroupName, Version: "v1"} + +// Kind takes an unqualified kind and returns back a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Example{}, + &ExampleList{}, + ) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/types.go similarity index 78% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/types.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/types.go index 03ff94956..274b30f61 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/types.go @@ -20,21 +20,26 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -const ExampleResourcePlural = "examples" - +// +genclient +// +genclient:noStatus // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Example is a specification for an Example resource type Example struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata"` - Spec ExampleSpec `json:"spec"` - Status ExampleStatus `json:"status,omitempty"` + + Spec ExampleSpec `json:"spec"` + Status ExampleStatus `json:"status,omitempty"` } +// ExampleSpec is the spec for an Example resource type ExampleSpec struct { Foo string `json:"foo"` Bar bool `json:"bar"` } +// ExampleStatus is the status for an Example resource type ExampleStatus struct { State ExampleState `json:"state,omitempty"` Message string `json:"message,omitempty"` @@ -48,8 +53,11 @@ const ( ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ExampleList is a list of Example resources type ExampleList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` - Items []Example `json:"items"` + + Items []Example `json:"items"` } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/zz_generated.deepcopy.go similarity index 74% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/zz_generated.deepcopy.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/zz_generated.deepcopy.go index e9f2a4c04..fe626ef90 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/zz_generated.deepcopy.go @@ -21,35 +21,9 @@ limitations under the License. package v1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Example).DeepCopyInto(out.(*Example)) - return nil - }, InType: reflect.TypeOf(&Example{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExampleList).DeepCopyInto(out.(*ExampleList)) - return nil - }, InType: reflect.TypeOf(&ExampleList{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExampleSpec).DeepCopyInto(out.(*ExampleSpec)) - return nil - }, InType: reflect.TypeOf(&ExampleSpec{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExampleStatus).DeepCopyInto(out.(*ExampleStatus)) - return nil - }, InType: reflect.TypeOf(&ExampleStatus{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Example) DeepCopyInto(out *Example) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/BUILD new file mode 100644 index 000000000..0698e1f9a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "clientset.go", + "doc.go", + ], + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/util/flowcontrol: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/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake:all-srcs", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme:all-srcs", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/clientset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/clientset.go new file mode 100644 index 000000000..45745dd27 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/clientset.go @@ -0,0 +1,98 @@ +/* +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 versioned + +import ( + glog "github.com/golang/glog" + crv1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1" + discovery "k8s.io/client-go/discovery" + rest "k8s.io/client-go/rest" + flowcontrol "k8s.io/client-go/util/flowcontrol" +) + +type Interface interface { + Discovery() discovery.DiscoveryInterface + CrV1() crv1.CrV1Interface + // Deprecated: please explicitly pick a version if possible. + Cr() crv1.CrV1Interface +} + +// Clientset contains the clients for groups. Each group has exactly one +// version included in a Clientset. +type Clientset struct { + *discovery.DiscoveryClient + crV1 *crv1.CrV1Client +} + +// CrV1 retrieves the CrV1Client +func (c *Clientset) CrV1() crv1.CrV1Interface { + return c.crV1 +} + +// Deprecated: Cr retrieves the default version of CrClient. +// Please explicitly pick a version. +func (c *Clientset) Cr() crv1.CrV1Interface { + return c.crV1 +} + +// Discovery retrieves the DiscoveryClient +func (c *Clientset) Discovery() discovery.DiscoveryInterface { + if c == nil { + return nil + } + return c.DiscoveryClient +} + +// NewForConfig creates a new Clientset for the given config. +func NewForConfig(c *rest.Config) (*Clientset, error) { + configShallowCopy := *c + if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 { + configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst) + } + var cs Clientset + var err error + cs.crV1, err = crv1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } + + cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) + if err != nil { + glog.Errorf("failed to create the DiscoveryClient: %v", err) + return nil, err + } + return &cs, nil +} + +// NewForConfigOrDie creates a new Clientset for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *Clientset { + var cs Clientset + cs.crV1 = crv1.NewForConfigOrDie(c) + + cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) + return &cs +} + +// New creates a new Clientset for the given RESTClient. +func New(c rest.Interface) *Clientset { + var cs Clientset + cs.crV1 = crv1.New(c) + + cs.DiscoveryClient = discovery.NewDiscoveryClient(c) + return &cs +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/doc.go similarity index 95% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/doc.go index 3ef671cc0..7d2f4d80d 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/doc.go @@ -15,4 +15,4 @@ limitations under the License. */ // This package has the automatically generated clientset. -package federation_clientset +package versioned diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/BUILD new file mode 100644 index 000000000..3620b1569 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "clientset_generated.go", + "doc.go", + "register.go", + ], + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake: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", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/discovery/fake:go_default_library", + "//vendor/k8s.io/client-go/testing: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/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/clientset_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/clientset_generated.go new file mode 100644 index 000000000..2a03c770e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/clientset_generated.go @@ -0,0 +1,71 @@ +/* +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 fake + +import ( + clientset "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned" + crv1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1" + fakecrv1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" + fakediscovery "k8s.io/client-go/discovery/fake" + "k8s.io/client-go/testing" +) + +// NewSimpleClientset returns a clientset that will respond with the provided objects. +// It's backed by a very simple object tracker that processes creates, updates and deletions as-is, +// without applying any validations and/or defaults. It shouldn't be considered a replacement +// for a real clientset and is mostly useful in simple unit tests. +func NewSimpleClientset(objects ...runtime.Object) *Clientset { + o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder()) + for _, obj := range objects { + if err := o.Add(obj); err != nil { + panic(err) + } + } + + fakePtr := testing.Fake{} + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) + fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) + + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} +} + +// Clientset implements clientset.Interface. Meant to be embedded into a +// struct to get a default implementation. This makes faking out just the method +// you want to test easier. +type Clientset struct { + testing.Fake + discovery *fakediscovery.FakeDiscovery +} + +func (c *Clientset) Discovery() discovery.DiscoveryInterface { + return c.discovery +} + +var _ clientset.Interface = &Clientset{} + +// CrV1 retrieves the CrV1Client +func (c *Clientset) CrV1() crv1.CrV1Interface { + return &fakecrv1.FakeCrV1{Fake: &c.Fake} +} + +// Cr retrieves the CrV1Client +func (c *Clientset) Cr() crv1.CrV1Interface { + return &fakecrv1.FakeCrV1{Fake: &c.Fake} +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/doc.go diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/register.go similarity index 80% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/register.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/register.go index 77da043a5..f926bc58f 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/fake/register.go @@ -17,15 +17,11 @@ limitations under the License. package fake import ( - autoscalingv1 "k8s.io/api/autoscaling/v1" - batchv1 "k8s.io/api/batch/v1" - corev1 "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + crv1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" - federationv1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" ) var scheme = runtime.NewScheme() @@ -52,10 +48,6 @@ func init() { // After this, RawExtensions in Kubernetes types will serialize kube-aggregator types // correctly. func AddToScheme(scheme *runtime.Scheme) { - autoscalingv1.AddToScheme(scheme) - batchv1.AddToScheme(scheme) - corev1.AddToScheme(scheme) - extensionsv1beta1.AddToScheme(scheme) - federationv1beta1.AddToScheme(scheme) + crv1.AddToScheme(scheme) } diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme/BUILD similarity index 55% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme/BUILD index dcf65058e..8b8fa05a1 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme/BUILD @@ -1,9 +1,4 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", @@ -11,13 +6,10 @@ go_library( "doc.go", "register.go", ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme", + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme", + visibility = ["//visibility:public"], deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/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", @@ -36,4 +28,5 @@ filegroup( name = "all-srcs", srcs = [":package-srcs"], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme/doc.go diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme/register.go similarity index 80% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme/register.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme/register.go index db48b8e89..e37edaa5d 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme/register.go @@ -17,15 +17,11 @@ limitations under the License. package scheme import ( - autoscalingv1 "k8s.io/api/autoscaling/v1" - batchv1 "k8s.io/api/batch/v1" - corev1 "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + crv1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" - federationv1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" ) var Scheme = runtime.NewScheme() @@ -52,10 +48,6 @@ func init() { // After this, RawExtensions in Kubernetes types will serialize kube-aggregator types // correctly. func AddToScheme(scheme *runtime.Scheme) { - autoscalingv1.AddToScheme(scheme) - batchv1.AddToScheme(scheme) - corev1.AddToScheme(scheme) - extensionsv1beta1.AddToScheme(scheme) - federationv1beta1.AddToScheme(scheme) + crv1.AddToScheme(scheme) } diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/BUILD similarity index 53% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/BUILD index 6b2eb308a..25b9f2fc4 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/BUILD @@ -1,27 +1,18 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ - "configmap.go", - "core_client.go", + "cr_client.go", "doc.go", - "event.go", + "example.go", "generated_expansion.go", - "namespace.go", - "namespace_expansion.go", - "secret.go", - "service.go", ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1", + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1", + visibility = ["//visibility:public"], deps = [ - "//federation/client/clientset_generated/federation_clientset/scheme:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme: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", @@ -41,7 +32,8 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/core/v1/fake:all-srcs", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake:all-srcs", ], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/batch_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/cr_client.go similarity index 63% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/batch_client.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/cr_client.go index d16249a0b..8c662905c 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/batch_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/cr_client.go @@ -17,28 +17,28 @@ limitations under the License. package v1 import ( - v1 "k8s.io/api/batch/v1" + v1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1" + "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme" serializer "k8s.io/apimachinery/pkg/runtime/serializer" rest "k8s.io/client-go/rest" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" ) -type BatchV1Interface interface { +type CrV1Interface interface { RESTClient() rest.Interface - JobsGetter + ExamplesGetter } -// BatchV1Client is used to interact with features provided by the batch group. -type BatchV1Client struct { +// CrV1Client is used to interact with features provided by the cr.client-go.k8s.io group. +type CrV1Client struct { restClient rest.Interface } -func (c *BatchV1Client) Jobs(namespace string) JobInterface { - return newJobs(c, namespace) +func (c *CrV1Client) Examples(namespace string) ExampleInterface { + return newExamples(c, namespace) } -// NewForConfig creates a new BatchV1Client for the given config. -func NewForConfig(c *rest.Config) (*BatchV1Client, error) { +// NewForConfig creates a new CrV1Client for the given config. +func NewForConfig(c *rest.Config) (*CrV1Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err @@ -47,12 +47,12 @@ func NewForConfig(c *rest.Config) (*BatchV1Client, error) { if err != nil { return nil, err } - return &BatchV1Client{client}, nil + return &CrV1Client{client}, nil } -// NewForConfigOrDie creates a new BatchV1Client for the given config and +// NewForConfigOrDie creates a new CrV1Client for the given config and // panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *BatchV1Client { +func NewForConfigOrDie(c *rest.Config) *CrV1Client { client, err := NewForConfig(c) if err != nil { panic(err) @@ -60,9 +60,9 @@ func NewForConfigOrDie(c *rest.Config) *BatchV1Client { return client } -// New creates a new BatchV1Client for the given RESTClient. -func New(c rest.Interface) *BatchV1Client { - return &BatchV1Client{c} +// New creates a new CrV1Client for the given RESTClient. +func New(c rest.Interface) *CrV1Client { + return &CrV1Client{c} } func setConfigDefaults(config *rest.Config) error { @@ -80,7 +80,7 @@ func setConfigDefaults(config *rest.Config) error { // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *BatchV1Client) RESTClient() rest.Interface { +func (c *CrV1Client) RESTClient() rest.Interface { if c == nil { return nil } diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/doc.go diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/example.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/example.go new file mode 100644 index 000000000..66e0e1cff --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/example.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 v1 + +import ( + v1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1" + scheme "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/scheme" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// ExamplesGetter has a method to return a ExampleInterface. +// A group's client should implement this interface. +type ExamplesGetter interface { + Examples(namespace string) ExampleInterface +} + +// ExampleInterface has methods to work with Example resources. +type ExampleInterface interface { + Create(*v1.Example) (*v1.Example, error) + Update(*v1.Example) (*v1.Example, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.Example, error) + List(opts meta_v1.ListOptions) (*v1.ExampleList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Example, err error) + ExampleExpansion +} + +// examples implements ExampleInterface +type examples struct { + client rest.Interface + ns string +} + +// newExamples returns a Examples +func newExamples(c *CrV1Client, namespace string) *examples { + return &examples{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the example, and returns the corresponding example object, and an error if there is any. +func (c *examples) Get(name string, options meta_v1.GetOptions) (result *v1.Example, err error) { + result = &v1.Example{} + err = c.client.Get(). + Namespace(c.ns). + Resource("examples"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Examples that match those selectors. +func (c *examples) List(opts meta_v1.ListOptions) (result *v1.ExampleList, err error) { + result = &v1.ExampleList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("examples"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested examples. +func (c *examples) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("examples"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a example and creates it. Returns the server's representation of the example, and an error, if there is any. +func (c *examples) Create(example *v1.Example) (result *v1.Example, err error) { + result = &v1.Example{} + err = c.client.Post(). + Namespace(c.ns). + Resource("examples"). + Body(example). + Do(). + Into(result) + return +} + +// Update takes the representation of a example and updates it. Returns the server's representation of the example, and an error, if there is any. +func (c *examples) Update(example *v1.Example) (result *v1.Example, err error) { + result = &v1.Example{} + err = c.client.Put(). + Namespace(c.ns). + Resource("examples"). + Name(example.Name). + Body(example). + Do(). + Into(result) + return +} + +// Delete takes name of the example and deletes it. Returns an error if one occurs. +func (c *examples) Delete(name string, options *meta_v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("examples"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *examples) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("examples"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched example. +func (c *examples) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Example, err error) { + result = &v1.Example{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("examples"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/BUILD similarity index 60% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/BUILD index 1b524c010..d9c1a5e6c 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/BUILD @@ -1,21 +1,17 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ "doc.go", - "fake_autoscaling_client.go", - "fake_horizontalpodautoscaler.go", + "fake_cr_client.go", + "fake_example.go", ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake", + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake", + visibility = ["//visibility:public"], deps = [ - "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1: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/apimachinery/pkg/runtime/schema:go_default_library", @@ -37,4 +33,5 @@ filegroup( name = "all-srcs", srcs = [":package-srcs"], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/doc.go diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/fake_batch_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/fake_cr_client.go similarity index 75% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/fake_batch_client.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/fake_cr_client.go index 332d5d8f4..b3f6247c4 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/fake_batch_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/fake_cr_client.go @@ -17,22 +17,22 @@ limitations under the License. package fake import ( + v1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1" rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" - v1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1" ) -type FakeBatchV1 struct { +type FakeCrV1 struct { *testing.Fake } -func (c *FakeBatchV1) Jobs(namespace string) v1.JobInterface { - return &FakeJobs{c, namespace} +func (c *FakeCrV1) Examples(namespace string) v1.ExampleInterface { + return &FakeExamples{c, namespace} } // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *FakeBatchV1) RESTClient() rest.Interface { +func (c *FakeCrV1) RESTClient() rest.Interface { var ret *rest.RESTClient return ret } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/fake_example.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/fake_example.go new file mode 100644 index 000000000..7a8dd94b9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/fake/fake_example.go @@ -0,0 +1,126 @@ +/* +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 fake + +import ( + cr_v1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeExamples implements ExampleInterface +type FakeExamples struct { + Fake *FakeCrV1 + ns string +} + +var examplesResource = schema.GroupVersionResource{Group: "cr.client-go.k8s.io", Version: "v1", Resource: "examples"} + +var examplesKind = schema.GroupVersionKind{Group: "cr.client-go.k8s.io", Version: "v1", Kind: "Example"} + +// Get takes name of the example, and returns the corresponding example object, and an error if there is any. +func (c *FakeExamples) Get(name string, options v1.GetOptions) (result *cr_v1.Example, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(examplesResource, c.ns, name), &cr_v1.Example{}) + + if obj == nil { + return nil, err + } + return obj.(*cr_v1.Example), err +} + +// List takes label and field selectors, and returns the list of Examples that match those selectors. +func (c *FakeExamples) List(opts v1.ListOptions) (result *cr_v1.ExampleList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(examplesResource, examplesKind, c.ns, opts), &cr_v1.ExampleList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &cr_v1.ExampleList{} + for _, item := range obj.(*cr_v1.ExampleList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested examples. +func (c *FakeExamples) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(examplesResource, c.ns, opts)) + +} + +// Create takes the representation of a example and creates it. Returns the server's representation of the example, and an error, if there is any. +func (c *FakeExamples) Create(example *cr_v1.Example) (result *cr_v1.Example, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(examplesResource, c.ns, example), &cr_v1.Example{}) + + if obj == nil { + return nil, err + } + return obj.(*cr_v1.Example), err +} + +// Update takes the representation of a example and updates it. Returns the server's representation of the example, and an error, if there is any. +func (c *FakeExamples) Update(example *cr_v1.Example) (result *cr_v1.Example, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(examplesResource, c.ns, example), &cr_v1.Example{}) + + if obj == nil { + return nil, err + } + return obj.(*cr_v1.Example), err +} + +// Delete takes name of the example and deletes it. Returns an error if one occurs. +func (c *FakeExamples) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(examplesResource, c.ns, name), &cr_v1.Example{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeExamples) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(examplesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &cr_v1.ExampleList{}) + return err +} + +// Patch applies the patch and returns the patched example. +func (c *FakeExamples) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *cr_v1.Example, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(examplesResource, c.ns, name, data, subresources...), &cr_v1.Example{}) + + if obj == nil { + return nil, err + } + return obj.(*cr_v1.Example), err +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/generated_expansion.go similarity index 94% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/generated_expansion.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/generated_expansion.go index 68d7741fa..70b162feb 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned/typed/cr/v1/generated_expansion.go @@ -16,4 +16,4 @@ limitations under the License. package v1 -type JobExpansion interface{} +type ExampleExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/BUILD new file mode 100644 index 000000000..cd892cb07 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "factory.go", + "generic.go", + ], + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema: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", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr:all-srcs", + "//staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/BUILD new file mode 100644 index 000000000..5d32d09b7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/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/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/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/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/interface.go new file mode 100644 index 000000000..9366da3be --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/interface.go @@ -0,0 +1,44 @@ +/* +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 cr + +import ( + v1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1" + internalinterfaces "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // V1 provides access to shared informers for resources in V1. + V1() v1.Interface +} + +type group struct { + internalinterfaces.SharedInformerFactory +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory) Interface { + return &group{f} +} + +// V1 returns a new v1.Interface. +func (g *group) V1() v1.Interface { + return v1.New(g.SharedInformerFactory) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/BUILD new file mode 100644 index 000000000..8ac5ac14e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "example.go", + "interface.go", + ], + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/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/watch: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/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/example.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/example.go new file mode 100644 index 000000000..39918ff5a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/example.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. +*/ + +// This file was automatically generated by informer-gen + +package v1 + +import ( + cr_v1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1" + versioned "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned" + internalinterfaces "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces" + v1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// ExampleInformer provides access to a shared informer and lister for +// Examples. +type ExampleInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.ExampleLister +} + +type exampleInformer struct { + factory internalinterfaces.SharedInformerFactory +} + +// NewExampleInformer constructs a new informer for Example 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 NewExampleInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + return client.CrV1().Examples(namespace).List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + return client.CrV1().Examples(namespace).Watch(options) + }, + }, + &cr_v1.Example{}, + resyncPeriod, + indexers, + ) +} + +func defaultExampleInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewExampleInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +} + +func (f *exampleInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&cr_v1.Example{}, defaultExampleInformer) +} + +func (f *exampleInformer) Lister() v1.ExampleLister { + return v1.NewExampleLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/interface.go new file mode 100644 index 000000000..0612ce3bd --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr/v1/interface.go @@ -0,0 +1,43 @@ +/* +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 v1 + +import ( + internalinterfaces "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // Examples returns a ExampleInformer. + Examples() ExampleInformer +} + +type version struct { + internalinterfaces.SharedInformerFactory +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory) Interface { + return &version{f} +} + +// Examples returns a ExampleInformer. +func (v *version) Examples() ExampleInformer { + return &exampleInformer{factory: v.SharedInformerFactory} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/factory.go new file mode 100644 index 000000000..f9ae8be12 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/factory.go @@ -0,0 +1,118 @@ +/* +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 externalversions + +import ( + versioned "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned" + cr "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/cr" + internalinterfaces "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + cache "k8s.io/client-go/tools/cache" + reflect "reflect" + sync "sync" + time "time" +) + +type sharedInformerFactory struct { + client versioned.Interface + lock sync.Mutex + defaultResync time.Duration + + informers map[reflect.Type]cache.SharedIndexInformer + // startedInformers is used for tracking which informers have been started. + // This allows Start() to be called multiple times safely. + startedInformers map[reflect.Type]bool +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { + return &sharedInformerFactory{ + client: client, + defaultResync: defaultResync, + informers: make(map[reflect.Type]cache.SharedIndexInformer), + startedInformers: make(map[reflect.Type]bool), + } +} + +// Start initializes all requested informers. +func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) { + f.lock.Lock() + defer f.lock.Unlock() + + for informerType, informer := range f.informers { + if !f.startedInformers[informerType] { + go informer.Run(stopCh) + f.startedInformers[informerType] = true + } + } +} + +// WaitForCacheSync waits for all started informers' cache were synced. +func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool { + informers := func() map[reflect.Type]cache.SharedIndexInformer { + f.lock.Lock() + defer f.lock.Unlock() + + informers := map[reflect.Type]cache.SharedIndexInformer{} + for informerType, informer := range f.informers { + if f.startedInformers[informerType] { + informers[informerType] = informer + } + } + return informers + }() + + res := map[reflect.Type]bool{} + for informType, informer := range informers { + res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced) + } + return res +} + +// InternalInformerFor returns the SharedIndexInformer for obj using an internal +// client. +func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer { + f.lock.Lock() + defer f.lock.Unlock() + + informerType := reflect.TypeOf(obj) + informer, exists := f.informers[informerType] + if exists { + return informer + } + informer = newFunc(f.client, f.defaultResync) + f.informers[informerType] = informer + + return informer +} + +// SharedInformerFactory provides shared informers for resources in all known +// API group versions. +type SharedInformerFactory interface { + internalinterfaces.SharedInformerFactory + ForResource(resource schema.GroupVersionResource) (GenericInformer, error) + WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool + + Cr() cr.Interface +} + +func (f *sharedInformerFactory) Cr() cr.Interface { + return cr.New(f) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/generic.go new file mode 100644 index 000000000..12390b7a9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/generic.go @@ -0,0 +1,61 @@ +/* +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 externalversions + +import ( + "fmt" + v1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1" + schema "k8s.io/apimachinery/pkg/runtime/schema" + cache "k8s.io/client-go/tools/cache" +) + +// GenericInformer is type of SharedIndexInformer which will locate and delegate to other +// sharedInformers based on type +type GenericInformer interface { + Informer() cache.SharedIndexInformer + Lister() cache.GenericLister +} + +type genericInformer struct { + informer cache.SharedIndexInformer + resource schema.GroupResource +} + +// Informer returns the SharedIndexInformer. +func (f *genericInformer) Informer() cache.SharedIndexInformer { + return f.informer +} + +// Lister returns the GenericLister. +func (f *genericInformer) Lister() cache.GenericLister { + return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource) +} + +// ForResource gives generic access to a shared informer of the matching type +// TODO extend this to unknown resources with a client pool +func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { + switch resource { + // Group=Cr, Version=V1 + case v1.SchemeGroupVersion.WithResource("examples"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Cr().V1().Examples().Informer()}, nil + + } + + return nil, fmt.Errorf("no informer found for %v", resource) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/BUILD similarity index 59% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/BUILD index d823dcf7a..20b878299 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -1,20 +1,13 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", - srcs = ["controller.go"], - importpath = "k8s.io/apiextensions-apiserver/examples/client-go/controller", + srcs = ["factory_interfaces.go"], + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces", + visibility = ["//visibility:public"], deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", ], ) @@ -30,4 +23,5 @@ filegroup( name = "all-srcs", srcs = [":package-srcs"], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go new file mode 100644 index 000000000..d8f00586b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -0,0 +1,34 @@ +/* +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 internalinterfaces + +import ( + versioned "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/clientset/versioned" + runtime "k8s.io/apimachinery/pkg/runtime" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +type NewInformerFunc func(versioned.Interface, time.Duration) cache.SharedIndexInformer + +// SharedInformerFactory a small interface to allow for adding an informer without an import cycle +type SharedInformerFactory interface { + Start(stopCh <-chan struct{}) + InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/BUILD new file mode 100644 index 000000000..69e2f3c92 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "example.go", + "expansion_generated.go", + ], + importpath = "k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1: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/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/example.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/example.go new file mode 100644 index 000000000..554c9f2db --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/example.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 v1 + +import ( + v1 "k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// ExampleLister helps list Examples. +type ExampleLister interface { + // List lists all Examples in the indexer. + List(selector labels.Selector) (ret []*v1.Example, err error) + // Examples returns an object that can list and get Examples. + Examples(namespace string) ExampleNamespaceLister + ExampleListerExpansion +} + +// exampleLister implements the ExampleLister interface. +type exampleLister struct { + indexer cache.Indexer +} + +// NewExampleLister returns a new ExampleLister. +func NewExampleLister(indexer cache.Indexer) ExampleLister { + return &exampleLister{indexer: indexer} +} + +// List lists all Examples in the indexer. +func (s *exampleLister) List(selector labels.Selector) (ret []*v1.Example, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.Example)) + }) + return ret, err +} + +// Examples returns an object that can list and get Examples. +func (s *exampleLister) Examples(namespace string) ExampleNamespaceLister { + return exampleNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// ExampleNamespaceLister helps list and get Examples. +type ExampleNamespaceLister interface { + // List lists all Examples in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1.Example, err error) + // Get retrieves the Example from the indexer for a given namespace and name. + Get(name string) (*v1.Example, error) + ExampleNamespaceListerExpansion +} + +// exampleNamespaceLister implements the ExampleNamespaceLister +// interface. +type exampleNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all Examples in the indexer for a given namespace. +func (s exampleNamespaceLister) List(selector labels.Selector) (ret []*v1.Example, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.Example)) + }) + return ret, err +} + +// Get retrieves the Example from the indexer for a given namespace and name. +func (s exampleNamespaceLister) Get(name string) (*v1.Example, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("example"), name) + } + return obj.(*v1.Example), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/expansion_generated.go new file mode 100644 index 000000000..7397d6f6c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/client/listers/cr/v1/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 v1 + +// ExampleListerExpansion allows custom methods to be added to +// ExampleLister. +type ExampleListerExpansion interface{} + +// ExampleNamespaceListerExpansion allows custom methods to be added to +// ExampleNamespaceLister. +type ExampleNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD index 3dc0a063a..303d94b93 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD @@ -20,7 +20,6 @@ go_library( importpath = "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/doc.go index d3b8f8db4..0517ec6a8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package apiextensions is the internal version of the API. // +groupName=apiextensions.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/helpers.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/helpers.go index 299ddc22b..8dc7f72d6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/helpers.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/helpers.go @@ -16,11 +16,18 @@ limitations under the License. package apiextensions +import ( + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + // SetCRDCondition sets the status condition. It either overwrites the existing one or // creates a new one func SetCRDCondition(crd *CustomResourceDefinition, newCondition CustomResourceDefinitionCondition) { existingCondition := FindCRDCondition(crd, newCondition.Type) if existingCondition == nil { + newCondition.LastTransitionTime = metav1.NewTime(time.Now()) crd.Status.Conditions = append(crd.Status.Conditions, newCondition) return } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/register.go index df3bc363f..273f7f123 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &CustomResourceDefinition{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/doc.go index 67af169a1..50ab2b54c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/apiextensions-apiserver/pkg/apis/apiextensions // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/register.go index 8ced548fa..77f849975 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/register.go @@ -43,7 +43,7 @@ var ( AddToScheme = localSchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &CustomResourceDefinition{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go index 6f97eb6db..697f87417 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go @@ -21,76 +21,9 @@ limitations under the License. package v1beta1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinition).DeepCopyInto(out.(*CustomResourceDefinition)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionCondition).DeepCopyInto(out.(*CustomResourceDefinitionCondition)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionList).DeepCopyInto(out.(*CustomResourceDefinitionList)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionNames).DeepCopyInto(out.(*CustomResourceDefinitionNames)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionNames{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionSpec).DeepCopyInto(out.(*CustomResourceDefinitionSpec)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionStatus).DeepCopyInto(out.(*CustomResourceDefinitionStatus)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceValidation).DeepCopyInto(out.(*CustomResourceValidation)) - return nil - }, InType: reflect.TypeOf(&CustomResourceValidation{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalDocumentation).DeepCopyInto(out.(*ExternalDocumentation)) - return nil - }, InType: reflect.TypeOf(&ExternalDocumentation{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JSON).DeepCopyInto(out.(*JSON)) - return nil - }, InType: reflect.TypeOf(&JSON{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JSONSchemaProps).DeepCopyInto(out.(*JSONSchemaProps)) - return nil - }, InType: reflect.TypeOf(&JSONSchemaProps{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JSONSchemaPropsOrArray).DeepCopyInto(out.(*JSONSchemaPropsOrArray)) - return nil - }, InType: reflect.TypeOf(&JSONSchemaPropsOrArray{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JSONSchemaPropsOrBool).DeepCopyInto(out.(*JSONSchemaPropsOrBool)) - return nil - }, InType: reflect.TypeOf(&JSONSchemaPropsOrBool{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JSONSchemaPropsOrStringArray).DeepCopyInto(out.(*JSONSchemaPropsOrStringArray)) - return nil - }, InType: reflect.TypeOf(&JSONSchemaPropsOrStringArray{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CustomResourceDefinition) DeepCopyInto(out *CustomResourceDefinition) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go index ae6f2d79f..f7d57c22e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go @@ -21,72 +21,9 @@ limitations under the License. package apiextensions import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinition).DeepCopyInto(out.(*CustomResourceDefinition)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionCondition).DeepCopyInto(out.(*CustomResourceDefinitionCondition)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionList).DeepCopyInto(out.(*CustomResourceDefinitionList)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionNames).DeepCopyInto(out.(*CustomResourceDefinitionNames)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionNames{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionSpec).DeepCopyInto(out.(*CustomResourceDefinitionSpec)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceDefinitionStatus).DeepCopyInto(out.(*CustomResourceDefinitionStatus)) - return nil - }, InType: reflect.TypeOf(&CustomResourceDefinitionStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CustomResourceValidation).DeepCopyInto(out.(*CustomResourceValidation)) - return nil - }, InType: reflect.TypeOf(&CustomResourceValidation{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalDocumentation).DeepCopyInto(out.(*ExternalDocumentation)) - return nil - }, InType: reflect.TypeOf(&ExternalDocumentation{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JSONSchemaProps).DeepCopyInto(out.(*JSONSchemaProps)) - return nil - }, InType: reflect.TypeOf(&JSONSchemaProps{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JSONSchemaPropsOrArray).DeepCopyInto(out.(*JSONSchemaPropsOrArray)) - return nil - }, InType: reflect.TypeOf(&JSONSchemaPropsOrArray{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JSONSchemaPropsOrBool).DeepCopyInto(out.(*JSONSchemaPropsOrBool)) - return nil - }, InType: reflect.TypeOf(&JSONSchemaPropsOrBool{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*JSONSchemaPropsOrStringArray).DeepCopyInto(out.(*JSONSchemaPropsOrStringArray)) - return nil - }, InType: reflect.TypeOf(&JSONSchemaPropsOrStringArray{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CustomResourceDefinition) DeepCopyInto(out *CustomResourceDefinition) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler.go index 447068444..773a06577 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/customresource_handler.go @@ -309,7 +309,6 @@ func (r *crdHandler) getServingInfoFor(crd *apiextensions.CustomResourceDefiniti &metav1.GetOptions{}, &metav1.DeleteOptions{}, ) - parameterScheme.AddGeneratedDeepCopyFuncs(metav1.GetGeneratedDeepCopyFuncs()...) parameterCodec := runtime.NewParameterCodec(parameterScheme) kind := schema.GroupVersionKind{Group: crd.Spec.Group, Version: crd.Spec.Version, Kind: crd.Status.AcceptedNames.Kind} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD index b0625ed61..57f38ce25 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD @@ -17,6 +17,7 @@ go_library( "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces: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", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go index de7f6e34e..e1ad6afcc 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +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.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go index e28ec5db6..cc86c42e9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go @@ -38,19 +38,33 @@ type CustomResourceDefinitionInformer interface { } type customResourceDefinitionInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition 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 NewCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition 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 NewFilteredCustomResourceDefinitionInformer(client clientset.Interface, 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.ApiextensionsV1beta1().CustomResourceDefinitions().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ApiextensionsV1beta1().CustomResourceDefinitions().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewCustomResourceDefinitionInformer(client clientset.Interface, resyncPerio ) } -func defaultCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewCustomResourceDefinitionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *customResourceDefinitionInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *customResourceDefinitionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiextensions_v1beta1.CustomResourceDefinition{}, defaultCustomResourceDefinitionInformer) + return f.factory.InformerFor(&apiextensions_v1beta1.CustomResourceDefinition{}, f.defaultInformer) } func (f *customResourceDefinitionInformer) Lister() v1beta1.CustomResourceDefinitionLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go index cada14028..2a5827026 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // CustomResourceDefinitions returns a CustomResourceDefinitionInformer. func (v *version) CustomResourceDefinitions() CustomResourceDefinitionInformer { - return &customResourceDefinitionInformer{factory: v.SharedInformerFactory} + return &customResourceDefinitionInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go index 0f94a664d..fbaa2c65d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go @@ -22,6 +22,7 @@ import ( clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" apiextensions "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions" internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" @@ -31,9 +32,11 @@ import ( ) type sharedInformerFactory struct { - client clientset.Interface - lock sync.Mutex - defaultResync time.Duration + client clientset.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -43,8 +46,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client clientset.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client clientset.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -114,5 +126,5 @@ type SharedInformerFactory interface { } func (f *sharedInformerFactory) Apiextensions() apiextensions.Interface { - return apiextensions.New(f) + return apiextensions.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go index 06abdaa9d..059fd5724 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go @@ -51,7 +51,7 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Apiextensions, Version=V1beta1 + // Group=apiextensions.k8s.io, Version=v1beta1 case v1beta1.SchemeGroupVersion.WithResource("customresourcedefinitions"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().V1beta1().CustomResourceDefinitions().Informer()}, nil diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD index 4b56af2b3..56bb1f8d8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -11,6 +11,7 @@ go_library( importpath = "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces", deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset: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/client-go/tools/cache:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go index 6f7b0a810..80b53e772 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -20,6 +20,7 @@ package internalinterfaces import ( clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" time "time" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD index ed5eed5a0..ec24afd53 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD @@ -17,6 +17,7 @@ go_library( "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces: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", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/interface.go index 8137e94b7..e422eb440 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go index 4c14fd111..20c863125 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/customresourcedefinition.go @@ -38,19 +38,33 @@ type CustomResourceDefinitionInformer interface { } type customResourceDefinitionInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition 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 NewCustomResourceDefinitionInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition 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 NewFilteredCustomResourceDefinitionInformer(client internalclientset.Interface, 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.Apiextensions().CustomResourceDefinitions().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Apiextensions().CustomResourceDefinitions().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewCustomResourceDefinitionInformer(client internalclientset.Interface, res ) } -func defaultCustomResourceDefinitionInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewCustomResourceDefinitionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *customResourceDefinitionInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *customResourceDefinitionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiextensions.CustomResourceDefinition{}, defaultCustomResourceDefinitionInformer) + return f.factory.InformerFor(&apiextensions.CustomResourceDefinition{}, f.defaultInformer) } func (f *customResourceDefinitionInformer) Lister() internalversion.CustomResourceDefinitionLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go index e9ba1c90a..4183e973d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // CustomResourceDefinitions returns a CustomResourceDefinitionInformer. func (v *version) CustomResourceDefinitions() CustomResourceDefinitionInformer { - return &customResourceDefinitionInformer{factory: v.SharedInformerFactory} + return &customResourceDefinitionInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/factory.go index fc5fda9fc..ee83d6dfc 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/factory.go @@ -22,6 +22,7 @@ import ( internalclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset" apiextensions "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions" internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" @@ -31,9 +32,11 @@ import ( ) type sharedInformerFactory struct { - client internalclientset.Interface - lock sync.Mutex - defaultResync time.Duration + client internalclientset.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -43,8 +46,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client internalclientset.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client internalclientset.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -114,5 +126,5 @@ type SharedInformerFactory interface { } func (f *sharedInformerFactory) Apiextensions() apiextensions.Interface { - return apiextensions.New(f) + return apiextensions.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/generic.go index a338c57c5..4a013283a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/generic.go @@ -51,7 +51,7 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Apiextensions, Version=InternalVersion + // Group=apiextensions.k8s.io, Version=internalVersion case apiextensions.SchemeGroupVersion.WithResource("customresourcedefinitions"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().InternalVersion().CustomResourceDefinitions().Informer()}, nil diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD index 9235b4b64..398d1f2f8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD @@ -11,6 +11,7 @@ go_library( importpath = "k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces", deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset: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/client-go/tools/cache:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go index 395b69ff8..e93f43f50 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go @@ -20,6 +20,7 @@ package internalinterfaces import ( internalclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" time "time" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD index 023b4d894..54732b7f9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions: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/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go index 27bb4cad8..1bd848051 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/customresourcedefinition.go @@ -21,7 +21,6 @@ package internalversion import ( apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *customResourceDefinitionLister) List(selector labels.Selector) (ret []* // Get retrieves the CustomResourceDefinition from the index for a given name. func (s *customResourceDefinitionLister) Get(name string) (*apiextensions.CustomResourceDefinition, error) { - key := &apiextensions.CustomResourceDefinition{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD index 5970f58a1..f57e6d77f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1: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/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go index f9b2a8f1e..316721bd6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *customResourceDefinitionLister) List(selector labels.Selector) (ret []* // Get retrieves the CustomResourceDefinition from the index for a given name. func (s *customResourceDefinitionLister) Get(name string) (*v1beta1.CustomResourceDefinition, error) { - key := &v1beta1.CustomResourceDefinition{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD index 9dbd03a3b..2abd62ff1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD @@ -30,7 +30,6 @@ go_library( "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion: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/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/naming_controller.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/naming_controller.go index 271d11adf..c0a7cc86f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/naming_controller.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/naming_controller.go @@ -25,7 +25,6 @@ import ( "github.com/golang/glog" apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" utilerrors "k8s.io/apimachinery/pkg/util/errors" utilruntime "k8s.io/apimachinery/pkg/util/runtime" @@ -192,22 +191,20 @@ func (c *NamingConditionController) calculateNamesAndConditions(in *apiextension // set EstablishedCondition to true if all names are accepted. Never set it back to false. establishedCondition := apiextensions.CustomResourceDefinitionCondition{ - Type: apiextensions.Established, - Status: apiextensions.ConditionFalse, - Reason: "NotAccepted", - Message: "not all names are accepted", - LastTransitionTime: metav1.NewTime(time.Now()), + Type: apiextensions.Established, + Status: apiextensions.ConditionFalse, + Reason: "NotAccepted", + Message: "not all names are accepted", } if old := apiextensions.FindCRDCondition(in, apiextensions.Established); old != nil { establishedCondition = *old } if establishedCondition.Status != apiextensions.ConditionTrue && namesAcceptedCondition.Status == apiextensions.ConditionTrue { establishedCondition = apiextensions.CustomResourceDefinitionCondition{ - Type: apiextensions.Established, - Status: apiextensions.ConditionTrue, - Reason: "InitialNamesAccepted", - Message: "the initial names have been accepted", - LastTransitionTime: metav1.NewTime(time.Now()), + Type: apiextensions.Established, + Status: apiextensions.ConditionTrue, + Reason: "InitialNamesAccepted", + Message: "the initial names have been accepted", } } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/strategy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/strategy.go index 18c6c2b74..f001dc57a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/strategy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/strategy.go @@ -135,7 +135,7 @@ func (a customResourceValidator) Validate(ctx genericapirequest.Context, obj run return field.ErrorList{field.Invalid(field.NewPath("kind"), typeAccessor.GetKind(), fmt.Sprintf("must be %v", a.kind.Kind))} } if typeAccessor.GetAPIVersion() != a.kind.Group+"/"+a.kind.Version { - return field.ErrorList{field.Invalid(field.NewPath("apiVersion"), typeAccessor.GetKind(), fmt.Sprintf("must be %v", a.kind.Group+"/"+a.kind.Version))} + return field.ErrorList{field.Invalid(field.NewPath("apiVersion"), typeAccessor.GetAPIVersion(), fmt.Sprintf("must be %v", a.kind.Group+"/"+a.kind.Version))} } customResourceObject, ok := obj.(*unstructured.Unstructured) @@ -169,7 +169,7 @@ func (a customResourceValidator) ValidateUpdate(ctx genericapirequest.Context, o return field.ErrorList{field.Invalid(field.NewPath("kind"), typeAccessor.GetKind(), fmt.Sprintf("must be %v", a.kind.Kind))} } if typeAccessor.GetAPIVersion() != a.kind.Group+"/"+a.kind.Version { - return field.ErrorList{field.Invalid(field.NewPath("apiVersion"), typeAccessor.GetKind(), fmt.Sprintf("must be %v", a.kind.Group+"/"+a.kind.Version))} + return field.ErrorList{field.Invalid(field.NewPath("apiVersion"), typeAccessor.GetAPIVersion(), fmt.Sprintf("must be %v", a.kind.Group+"/"+a.kind.Version))} } customResourceObject, ok := obj.(*unstructured.Unstructured) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go index 92f42e190..85d981f1a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go @@ -167,6 +167,6 @@ func (r *StatusREST) New() runtime.Object { } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD index e779469bf..d61879721 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD @@ -9,7 +9,6 @@ go_test( name = "go_default_test", srcs = [ "basic_test.go", - "client-go_test.go", "finalization_test.go", "registration_test.go", "validation_test.go", @@ -19,10 +18,6 @@ go_test( deps = [ "//vendor/github.com/coreos/etcd/clientv3:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/client:go_default_library", - "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/controller:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apiserver:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/test/integration/testserver:go_default_library", @@ -31,6 +26,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go index 03bdd873b..72fdf592a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go @@ -28,6 +28,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/dynamic" @@ -546,6 +547,69 @@ func TestPreserveInt(t *testing.T) { } } +func TestPatch(t *testing.T) { + stopCh, apiExtensionClient, clientPool, err := testserver.StartDefaultServer() + if err != nil { + t.Fatal(err) + } + defer close(stopCh) + + noxuDefinition := testserver.NewNoxuCustomResourceDefinition(apiextensionsv1beta1.ClusterScoped) + noxuVersionClient, err := testserver.CreateNewCustomResourceDefinition(noxuDefinition, apiExtensionClient, clientPool) + if err != nil { + t.Fatal(err) + } + + ns := "not-the-default" + noxuNamespacedResourceClient := noxuVersionClient.Resource(&metav1.APIResource{ + Name: noxuDefinition.Spec.Names.Plural, + Namespaced: true, + }, ns) + + noxuInstanceToCreate := testserver.NewNoxuInstance(ns, "foo") + createdNoxuInstance, err := noxuNamespacedResourceClient.Create(noxuInstanceToCreate) + if err != nil { + t.Fatal(err) + } + + patch := []byte(`{"num": {"num2":999}}`) + createdNoxuInstance, err = noxuNamespacedResourceClient.Patch("foo", types.MergePatchType, patch) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // a patch with no change + createdNoxuInstance, err = noxuNamespacedResourceClient.Patch("foo", types.MergePatchType, patch) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // an empty patch + createdNoxuInstance, err = noxuNamespacedResourceClient.Patch("foo", types.MergePatchType, []byte(`{}`)) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + originalJSON, err := runtime.Encode(unstructured.UnstructuredJSONScheme, createdNoxuInstance) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + gottenNoxuInstance, err := runtime.Decode(unstructured.UnstructuredJSONScheme, originalJSON) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // Check if int is preserved. + unstructuredObj := gottenNoxuInstance.(*unstructured.Unstructured).Object + num := unstructuredObj["num"].(map[string]interface{}) + num1 := num["num1"].(int64) + num2 := num["num2"].(int64) + if num1 != 9223372036854775807 || num2 != 999 { + t.Errorf("Expected %v, got %v, %v", `9223372036854775807, 999`, num1, num2) + } +} + func TestCrossNamespaceListWatch(t *testing.T) { stopCh, apiExtensionClient, clientPool, err := testserver.StartDefaultServer() if err != nil { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/client-go_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/client-go_test.go deleted file mode 100644 index 34c04002c..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/client-go_test.go +++ /dev/null @@ -1,96 +0,0 @@ -/* -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 integration - -import ( - "context" - "testing" - - apiv1 "k8s.io/api/core/v1" - "k8s.io/apiextensions-apiserver/test/integration/testserver" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - examplecrv1 "k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1" - exampleclient "k8s.io/apiextensions-apiserver/examples/client-go/client" - examplecontroller "k8s.io/apiextensions-apiserver/examples/client-go/controller" -) - -func TestClientGoCustomResourceExample(t *testing.T) { - t.Logf("Creating apiextensions apiserver") - config, err := testserver.DefaultServerConfig() - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - stopCh, apiExtensionClient, _, err := testserver.StartServer(config) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - defer close(stopCh) - - t.Logf("Creating CustomResourceDefinition") - crd, err := exampleclient.CreateCustomResourceDefinition(apiExtensionClient) - if err != nil { - t.Fatalf("unexpected error creating the CustomResourceDefinition: %v", err) - } - defer apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Delete(crd.Name, nil) - - exampleClient, exampleScheme, err := exampleclient.NewClient(config.GenericConfig.LoopbackClientConfig) - if err != nil { - t.Fatalf("unexpected error: %v", err) - } - - t.Logf("Starting a controller on instances of custom resource %q", examplecrv1.ExampleResourcePlural) - controller := examplecontroller.ExampleController{ - ExampleClient: exampleClient, - ExampleScheme: exampleScheme, - } - - ctx, cancelFunc := context.WithCancel(context.Background()) - defer cancelFunc() - go controller.Run(ctx) - - // Create an instance of our custom resource - t.Logf("Creating custom resource instance") - example := &examplecrv1.Example{ - ObjectMeta: metav1.ObjectMeta{ - Name: "example1", - }, - Spec: examplecrv1.ExampleSpec{ - Foo: "hello", - Bar: true, - }, - Status: examplecrv1.ExampleStatus{ - State: examplecrv1.ExampleStateCreated, - Message: "Created, not processed yet", - }, - } - var result examplecrv1.Example - err = exampleClient.Post(). - Resource(examplecrv1.ExampleResourcePlural). - Namespace(apiv1.NamespaceDefault). - Body(example). - Do().Into(&result) - if err != nil { - t.Fatalf("Failed to create an instance of the custom resource: %v", err) - } - - t.Logf("Waiting instance to be processed by the controller") - if err := exampleclient.WaitForExampleInstanceProcessed(exampleClient, "example1"); err != nil { - t.Fatalf("Instance was not processed correctly: %v", err) - } - t.Logf("Instance is processed") -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go index d2d739de9..562281f4c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go @@ -146,7 +146,11 @@ func NewCurletInstance(namespace, name string) *unstructured.Unstructured { } } -func CreateNewCustomResourceDefinition(crd *apiextensionsv1beta1.CustomResourceDefinition, apiExtensionsClient clientset.Interface, clientPool dynamic.ClientPool) (dynamic.Interface, error) { +// CreateNewCustomResourceDefinitionWatchUnsafe creates the CRD and makes sure +// the apiextension apiserver has installed the CRD. But it's not safe to watch +// the created CR. Please call CreateNewCustomResourceDefinition if you need to +// watch the CR. +func CreateNewCustomResourceDefinitionWatchUnsafe(crd *apiextensionsv1beta1.CustomResourceDefinition, apiExtensionsClient clientset.Interface, clientPool dynamic.ClientPool) (dynamic.Interface, error) { _, err := apiExtensionsClient.Apiextensions().CustomResourceDefinitions().Create(crd) if err != nil { return nil, err @@ -169,7 +173,11 @@ func CreateNewCustomResourceDefinition(crd *apiextensionsv1beta1.CustomResourceD return nil, err } - dynamicClient, err := clientPool.ClientForGroupVersionResource(schema.GroupVersionResource{Group: crd.Spec.Group, Version: crd.Spec.Version, Resource: crd.Spec.Names.Plural}) + return clientPool.ClientForGroupVersionResource(schema.GroupVersionResource{Group: crd.Spec.Group, Version: crd.Spec.Version, Resource: crd.Spec.Names.Plural}) +} + +func CreateNewCustomResourceDefinition(crd *apiextensionsv1beta1.CustomResourceDefinition, apiExtensionsClient clientset.Interface, clientPool dynamic.ClientPool) (dynamic.Interface, error) { + dynamicClient, err := CreateNewCustomResourceDefinitionWatchUnsafe(crd, apiExtensionsClient, clientPool) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/Godeps/Godeps.json index 603fd650e..62ba9185d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/apimachinery", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "./..." @@ -80,7 +80,7 @@ }, { "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/google/gofuzz", @@ -216,7 +216,7 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/LICENSE b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/README.md new file mode 100644 index 000000000..98899fb58 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/README.md @@ -0,0 +1,29 @@ +# apimachinery + +Scheme, typing, encoding, decoding, and conversion packages for Kubernetes and Kubernetes-like API objects. + + +## Purpose + +This library is a shared dependency for servers and clients to work with Kubernetes API infrastructure without direct +type dependencies. It's first comsumers are `k8s.io/kubernetes`, `k8s.io/client-go`, and `k8s.io/apiserver`. + + +## Compatibility + +There are *NO compatibility guarantees* for this repository. It is in direct support of Kubernetes, so branches +will track Kubernetes and be compatible with that repo. As we more cleanly separate the layers, we will review the +compatibility guarantee. + + +## Where does it come from? + +`apimachinery` is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery. +Code changes are made in that location, merged into `k8s.io/kubernetes` and later synced here. + + +## Things you should *NOT* do + + 1. Add API types to this repo. This is for the machinery, not for the types. + 2. Directly modify any files under `pkg` in this repo. Those are driven from `k8s.io/kuberenetes/staging/src/k8s.io/apimachinery`. + 3. Expect compatibility. This repo is direct support of Kubernetes and the API isn't yet stable enough for API guarantees. \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/errors/errors.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/errors/errors.go index d5503fac5..9960600be 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/errors/errors.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/errors/errors.go @@ -405,84 +405,84 @@ func NewGenericServerResponse(code int, verb string, qualifiedResource schema.Gr // IsNotFound returns true if the specified error was created by NewNotFound. func IsNotFound(err error) bool { - return reasonForError(err) == metav1.StatusReasonNotFound + return ReasonForError(err) == metav1.StatusReasonNotFound } // IsAlreadyExists determines if the err is an error which indicates that a specified resource already exists. func IsAlreadyExists(err error) bool { - return reasonForError(err) == metav1.StatusReasonAlreadyExists + return ReasonForError(err) == metav1.StatusReasonAlreadyExists } // IsConflict determines if the err is an error which indicates the provided update conflicts. func IsConflict(err error) bool { - return reasonForError(err) == metav1.StatusReasonConflict + return ReasonForError(err) == metav1.StatusReasonConflict } // IsInvalid determines if the err is an error which indicates the provided resource is not valid. func IsInvalid(err error) bool { - return reasonForError(err) == metav1.StatusReasonInvalid + return ReasonForError(err) == metav1.StatusReasonInvalid } // IsGone is true if the error indicates the requested resource is no longer available. func IsGone(err error) bool { - return reasonForError(err) == metav1.StatusReasonGone + return ReasonForError(err) == metav1.StatusReasonGone } // IsResourceExpired is true if the error indicates the resource has expired and the current action is // no longer possible. func IsResourceExpired(err error) bool { - return reasonForError(err) == metav1.StatusReasonExpired + return ReasonForError(err) == metav1.StatusReasonExpired } // IsMethodNotSupported determines if the err is an error which indicates the provided action could not // be performed because it is not supported by the server. func IsMethodNotSupported(err error) bool { - return reasonForError(err) == metav1.StatusReasonMethodNotAllowed + return ReasonForError(err) == metav1.StatusReasonMethodNotAllowed } // IsServiceUnavailable is true if the error indicates the underlying service is no longer available. func IsServiceUnavailable(err error) bool { - return reasonForError(err) == metav1.StatusReasonServiceUnavailable + return ReasonForError(err) == metav1.StatusReasonServiceUnavailable } // IsBadRequest determines if err is an error which indicates that the request is invalid. func IsBadRequest(err error) bool { - return reasonForError(err) == metav1.StatusReasonBadRequest + return ReasonForError(err) == metav1.StatusReasonBadRequest } // IsUnauthorized determines if err is an error which indicates that the request is unauthorized and // requires authentication by the user. func IsUnauthorized(err error) bool { - return reasonForError(err) == metav1.StatusReasonUnauthorized + return ReasonForError(err) == metav1.StatusReasonUnauthorized } // IsForbidden determines if err is an error which indicates that the request is forbidden and cannot // be completed as requested. func IsForbidden(err error) bool { - return reasonForError(err) == metav1.StatusReasonForbidden + return ReasonForError(err) == metav1.StatusReasonForbidden } // IsTimeout determines if err is an error which indicates that request times out due to long // processing. func IsTimeout(err error) bool { - return reasonForError(err) == metav1.StatusReasonTimeout + return ReasonForError(err) == metav1.StatusReasonTimeout } // IsServerTimeout determines if err is an error which indicates that the request needs to be retried // by the client. func IsServerTimeout(err error) bool { - return reasonForError(err) == metav1.StatusReasonServerTimeout + return ReasonForError(err) == metav1.StatusReasonServerTimeout } // IsInternalError determines if err is an error which indicates an internal server error. func IsInternalError(err error) bool { - return reasonForError(err) == metav1.StatusReasonInternalError + return ReasonForError(err) == metav1.StatusReasonInternalError } // IsTooManyRequests determines if err is an error which indicates that there are too many requests // that the server cannot handle. func IsTooManyRequests(err error) bool { - if reasonForError(err) == metav1.StatusReasonTooManyRequests { + if ReasonForError(err) == metav1.StatusReasonTooManyRequests { return true } switch t := err.(type) { @@ -536,7 +536,8 @@ func SuggestsClientDelay(err error) (int, bool) { return 0, false } -func reasonForError(err error) metav1.StatusReason { +// ReasonForError returns the HTTP status for a particular error. +func ReasonForError(err error) metav1.StatusReason { switch t := err.(type) { case APIStatus: return t.Status().Reason diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/errors/errors_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/errors/errors_test.go index afc26fd31..303a9d3f4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/errors/errors_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/errors/errors_test.go @@ -188,8 +188,8 @@ func TestNewInvalid(t *testing.T) { } } -func Test_reasonForError(t *testing.T) { - if e, a := metav1.StatusReasonUnknown, reasonForError(nil); e != a { +func TestReasonForError(t *testing.T) { + if e, a := metav1.StatusReasonUnknown, ReasonForError(nil); e != a { t.Errorf("unexpected reason type: %#v", a) } } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/interfaces.go index bf1723693..5dc9d89e6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/interfaces.go @@ -75,6 +75,9 @@ type MetadataAccessor interface { Annotations(obj runtime.Object) (map[string]string, error) SetAnnotations(obj runtime.Object, annotations map[string]string) error + Continue(obj runtime.Object) (string, error) + SetContinue(obj runtime.Object, c string) error + runtime.ResourceVersioner } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/meta.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/meta.go index 1889b9512..cec4496e4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/meta.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/meta/meta.go @@ -367,6 +367,23 @@ func (resourceAccessor) SetResourceVersion(obj runtime.Object, version string) e return nil } +func (resourceAccessor) Continue(obj runtime.Object) (string, error) { + accessor, err := ListAccessor(obj) + if err != nil { + return "", err + } + return accessor.GetContinue(), nil +} + +func (resourceAccessor) SetContinue(obj runtime.Object, version string) error { + accessor, err := ListAccessor(obj) + if err != nil { + return err + } + accessor.SetContinue(version) + return nil +} + // extractFromOwnerReference extracts v to o. v is the OwnerReferences field of an object. func extractFromOwnerReference(v reflect.Value, o *metav1.OwnerReference) error { if err := runtime.Field(v, "APIVersion", &o.APIVersion); err != nil { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD index 5b8875463..1fb88704e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD @@ -42,7 +42,6 @@ go_library( "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/gopkg.in/inf.v0:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/kube-openapi/pkg/common:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go index 118dfca07..eb49f8199 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go @@ -20,23 +20,6 @@ limitations under the License. package resource -import ( - conversion "k8s.io/apimachinery/pkg/conversion" - reflect "reflect" -) - -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Quantity).DeepCopyInto(out.(*Quantity)) - return nil - }, InType: reflect.TypeOf(&Quantity{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Quantity) DeepCopyInto(out *Quantity) { *out = in.DeepCopy() diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/registered.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/registered.go index 5150db016..0da94f50f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/registered.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/registered.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package to keep track of API Versions that can be registered and are enabled in api.Scheme. +// Package to keep track of API Versions that can be registered and are enabled in a Scheme. package registered import ( diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/types.go index 213e34bc0..baca784fa 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apimachinery/types.go @@ -38,7 +38,7 @@ type GroupMeta struct { // to go through the InterfacesFor method below. SelfLinker runtime.SelfLinker - // RESTMapper provides the default mapping between REST paths and the objects declared in api.Scheme and all known + // RESTMapper provides the default mapping between REST paths and the objects declared in a Scheme and all known // versions. RESTMapper meta.RESTMapper diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go index e5f5bd4c7..27dfb3d9e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/fuzzer.go @@ -18,7 +18,10 @@ package fuzzer import ( "fmt" + "math/rand" + "sort" "strconv" + "strings" "github.com/google/gofuzz" @@ -96,7 +99,80 @@ func genericFuzzerFuncs(codecs runtimeserializer.CodecFactory) []interface{} { } } +// taken from gofuzz internals for RandString +type charRange struct { + first, last rune +} + +func (c *charRange) choose(r *rand.Rand) rune { + count := int64(c.last - c.first + 1) + ch := c.first + rune(r.Int63n(count)) + + return ch +} + +// randomLabelPart produces a valid random label value or name-part +// of a label key. +func randomLabelPart(c fuzz.Continue, canBeEmpty bool) string { + validStartEnd := []charRange{{'0', '9'}, {'a', 'z'}, {'A', 'Z'}} + validMiddle := []charRange{{'0', '9'}, {'a', 'z'}, {'A', 'Z'}, + {'.', '.'}, {'-', '-'}, {'_', '_'}} + + partLen := c.Rand.Intn(64) // len is [0, 63] + if !canBeEmpty { + partLen = c.Rand.Intn(63) + 1 // len is [1, 63] + } + + runes := make([]rune, partLen) + if partLen == 0 { + return string(runes) + } + + runes[0] = validStartEnd[c.Rand.Intn(len(validStartEnd))].choose(c.Rand) + for i := range runes[1:] { + runes[i+1] = validMiddle[c.Rand.Intn(len(validMiddle))].choose(c.Rand) + } + runes[len(runes)-1] = validStartEnd[c.Rand.Intn(len(validStartEnd))].choose(c.Rand) + + return string(runes) +} + +func randomDNSLabel(c fuzz.Continue) string { + validStartEnd := []charRange{{'0', '9'}, {'a', 'z'}} + validMiddle := []charRange{{'0', '9'}, {'a', 'z'}, {'-', '-'}} + + partLen := c.Rand.Intn(63) + 1 // len is [1, 63] + runes := make([]rune, partLen) + + runes[0] = validStartEnd[c.Rand.Intn(len(validStartEnd))].choose(c.Rand) + for i := range runes[1:] { + runes[i+1] = validMiddle[c.Rand.Intn(len(validMiddle))].choose(c.Rand) + } + runes[len(runes)-1] = validStartEnd[c.Rand.Intn(len(validStartEnd))].choose(c.Rand) + + return string(runes) +} + +func randomLabelKey(c fuzz.Continue) string { + namePart := randomLabelPart(c, false) + prefixPart := "" + + usePrefix := c.RandBool() + if usePrefix { + // we can fit, with dots, at most 3 labels in the 253 allotted characters + prefixPartsLen := c.Rand.Intn(2) + 1 + prefixParts := make([]string, prefixPartsLen) + for i := range prefixParts { + prefixParts[i] = randomDNSLabel(c) + } + prefixPart = strings.Join(prefixParts, ".") + "/" + } + + return prefixPart + namePart +} + func v1FuzzerFuncs(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ func(j *metav1.TypeMeta, c fuzz.Continue) { // We have to customize the randomization of TypeMetas because their @@ -120,6 +196,57 @@ func v1FuzzerFuncs(codecs runtimeserializer.CodecFactory) []interface{} { j.ResourceVersion = strconv.FormatUint(c.RandUint64(), 10) j.SelfLink = c.RandString() }, + func(j *metav1.LabelSelector, c fuzz.Continue) { + c.FuzzNoCustom(j) + // we can't have an entirely empty selector, so force + // use of MatchExpression if necessary + if len(j.MatchLabels) == 0 && len(j.MatchExpressions) == 0 { + j.MatchExpressions = make([]metav1.LabelSelectorRequirement, c.Rand.Intn(2)+1) + } + + if j.MatchLabels != nil { + fuzzedMatchLabels := make(map[string]string, len(j.MatchLabels)) + for i := 0; i < len(j.MatchLabels); i++ { + fuzzedMatchLabels[randomLabelKey(c)] = randomLabelPart(c, true) + } + j.MatchLabels = fuzzedMatchLabels + } + + validOperators := []metav1.LabelSelectorOperator{ + metav1.LabelSelectorOpIn, + metav1.LabelSelectorOpNotIn, + metav1.LabelSelectorOpExists, + metav1.LabelSelectorOpDoesNotExist, + } + + if j.MatchExpressions != nil { + // NB: the label selector parser code sorts match expressions by key, and sorts the values, + // so we need to make sure ours are sorted as well here to preserve round-trip comparision. + // In practice, not sorting doesn't hurt anything... + + for i := range j.MatchExpressions { + req := metav1.LabelSelectorRequirement{} + c.Fuzz(&req) + req.Key = randomLabelKey(c) + req.Operator = validOperators[c.Rand.Intn(len(validOperators))] + if req.Operator == metav1.LabelSelectorOpIn || req.Operator == metav1.LabelSelectorOpNotIn { + if len(req.Values) == 0 { + // we must have some values here, so randomly choose a short length + req.Values = make([]string, c.Rand.Intn(2)+1) + } + for i := range req.Values { + req.Values[i] = randomLabelPart(c, true) + } + sort.Strings(req.Values) + } else { + req.Values = nil + } + j.MatchExpressions[i] = req + } + + sort.Slice(j.MatchExpressions, func(a, b int) bool { return j.MatchExpressions[a].Key < j.MatchExpressions[b].Key }) + } + }, } } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.deepcopy.go index f13ff9fc5..deaf5309d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.deepcopy.go @@ -21,27 +21,9 @@ limitations under the License. package internalversion import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*List).DeepCopyInto(out.(*List)) - return nil - }, InType: reflect.TypeOf(&List{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ListOptions).DeepCopyInto(out.(*ListOptions)) - return nil - }, InType: reflect.TypeOf(&ListOptions{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *List) DeepCopyInto(out *List) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD index 7354f5e2f..4a96c3f94 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD @@ -93,3 +93,13 @@ filegroup( srcs = ["generated.proto"], visibility = ["//visibility:public"], ) + +go_test( + name = "go_default_xtest", + srcs = ["conversion_test.go"], + importpath = "k8s.io/apimachinery/pkg/apis/meta/v1_test", + deps = [ + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go index 7049c9a33..a96f38ee2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go @@ -252,7 +252,6 @@ func Convert_map_to_unversioned_LabelSelector(in *map[string]string, out *LabelS if in == nil { return nil } - out = new(LabelSelector) for labelKey, labelValue := range *in { AddLabelToSelector(out, labelKey, labelValue) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion_test.go new file mode 100644 index 000000000..bc591584e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion_test.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 v1_test + +import ( + "testing" + + apiequality "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func TestMapToLabelSelectorRoundTrip(t *testing.T) { + // We should be able to round-trip a map-only selector through LabelSelector. + inputs := []map[string]string{ + nil, + {}, + {"one": "foo"}, + {"one": "foo", "two": "bar"}, + } + for _, in := range inputs { + ls := &v1.LabelSelector{} + if err := v1.Convert_map_to_unversioned_LabelSelector(&in, ls, nil); err != nil { + t.Errorf("Convert_map_to_unversioned_LabelSelector(%#v): %v", in, err) + continue + } + out := map[string]string{} + if err := v1.Convert_unversioned_LabelSelector_to_map(ls, &out, nil); err != nil { + t.Errorf("Convert_unversioned_LabelSelector_to_map(%#v): %v", ls, err) + continue + } + if !apiequality.Semantic.DeepEqual(in, out) { + t.Errorf("map-selector conversion round-trip failed: got %v; want %v", out, in) + } + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto index ea48226b7..95a3ffee5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto @@ -149,6 +149,10 @@ message DeleteOptions { // Either this field or OrphanDependents may be set, but not both. // The default policy is decided by the existing finalizer set in the // metadata.finalizers and the resource-specific default policy. + // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - + // allow the garbage collector to delete the dependents in the background; + // 'Foreground' - a cascading policy that deletes all dependents in the + // foreground. // +optional optional string propagationPolicy = 4; } @@ -510,15 +514,16 @@ message ObjectMeta { // DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This // field is set by the server when a graceful deletion is requested by the user, and is not // directly settable by a client. The resource is expected to be deleted (no longer visible - // from resource lists, and not reachable by name) after the time in this field. Once set, - // this value may not be unset or be set further into the future, although it may be shortened - // or the resource may be deleted prior to this time. For example, a user may request that - // a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination - // signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard - // termination signal (SIGKILL) to the container and after cleanup, remove the pod from the - // API. In the presence of network partitions, this object may still exist after this - // timestamp, until an administrator or automated process can determine the resource is - // fully terminated. + // from resource lists, and not reachable by name) after the time in this field, once the + // finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. + // Once the deletionTimestamp is set, this value may not be unset or be set further into the + // future, although it may be shortened or the resource may be deleted prior to this time. + // For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react + // by sending a graceful termination signal to the containers in the pod. After that 30 seconds, + // the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, + // remove the pod from the API. In the presence of network partitions, this object may still + // exist after this timestamp, until an administrator or automated process can determine the + // resource is fully terminated. // If not set, graceful deletion of the object has not been requested. // // Populated by the system when a graceful deletion is requested. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/register.go index 6e449a436..b300d3701 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/register.go @@ -70,7 +70,6 @@ func AddToGroupVersion(scheme *runtime.Scheme, groupVersion schema.GroupVersion) ) // register manually. This usually goes through the SchemeBuilder, which we cannot use here. - scheme.AddGeneratedDeepCopyFuncs(GetGeneratedDeepCopyFuncs()...) AddConversionFuncs(scheme) RegisterDefaults(scheme) } @@ -90,6 +89,5 @@ func init() { ) // register manually. This usually goes through the SchemeBuilder, which we cannot use here. - scheme.AddGeneratedDeepCopyFuncs(GetGeneratedDeepCopyFuncs()...) RegisterDefaults(scheme) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time.go index 435f6a8f5..0a9f2a377 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time.go @@ -80,7 +80,13 @@ func (t *Time) Before(u *Time) bool { // Equal reports whether the time instant t is equal to u. func (t *Time) Equal(u *Time) bool { - return t.Time.Equal(u.Time) + if t == nil && u == nil { + return true + } + if t != nil && u != nil { + return t.Time.Equal(u.Time) + } + return false } // Unix returns the local time corresponding to the given Unix time diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time_test.go index c0fafab9b..9923958ee 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time_test.go @@ -171,3 +171,27 @@ func TestTimeProto(t *testing.T) { } } } + +func TestTimeEqual(t *testing.T) { + t1 := NewTime(time.Now()) + cases := []struct { + name string + x *Time + y *Time + result bool + }{ + {"nil =? nil", nil, nil, true}, + {"!nil =? !nil", &t1, &t1, true}, + {"nil =? !nil", nil, &t1, false}, + {"!nil =? nil", &t1, nil, false}, + } + + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + result := c.x.Equal(c.y) + if result != c.result { + t.Errorf("Failed equality test for '%v', '%v': expected %+v, got %+v", c.x, c.y, c.result, result) + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go index 13ae66c6f..c8ee4e5d6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go @@ -177,15 +177,16 @@ type ObjectMeta struct { // DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This // field is set by the server when a graceful deletion is requested by the user, and is not // directly settable by a client. The resource is expected to be deleted (no longer visible - // from resource lists, and not reachable by name) after the time in this field. Once set, - // this value may not be unset or be set further into the future, although it may be shortened - // or the resource may be deleted prior to this time. For example, a user may request that - // a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination - // signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard - // termination signal (SIGKILL) to the container and after cleanup, remove the pod from the - // API. In the presence of network partitions, this object may still exist after this - // timestamp, until an administrator or automated process can determine the resource is - // fully terminated. + // from resource lists, and not reachable by name) after the time in this field, once the + // finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. + // Once the deletionTimestamp is set, this value may not be unset or be set further into the + // future, although it may be shortened or the resource may be deleted prior to this time. + // For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react + // by sending a graceful termination signal to the containers in the pod. After that 30 seconds, + // the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, + // remove the pod from the API. In the presence of network partitions, this object may still + // exist after this timestamp, until an administrator or automated process can determine the + // resource is fully terminated. // If not set, graceful deletion of the object has not been requested. // // Populated by the system when a graceful deletion is requested. @@ -445,6 +446,10 @@ type DeleteOptions struct { // Either this field or OrphanDependents may be set, but not both. // The default policy is decided by the existing finalizer set in the // metadata.finalizers and the resource-specific default policy. + // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - + // allow the garbage collector to delete the dependents in the background; + // 'Foreground' - a cascading policy that deletes all dependents in the + // foreground. // +optional PropagationPolicy *DeletionPropagation `json:"propagationPolicy,omitempty" protobuf:"varint,4,opt,name=propagationPolicy"` } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go index 49d2de1ef..5dbba4b02 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go @@ -90,7 +90,7 @@ var map_DeleteOptions = map[string]string{ "gracePeriodSeconds": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", "preconditions": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.", "orphanDependents": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "propagationPolicy": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "propagationPolicy": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", } func (DeleteOptions) SwaggerDoc() map[string]string { @@ -214,7 +214,7 @@ var map_ObjectMeta = map[string]string{ "resourceVersion": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", "generation": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", "creationTimestamp": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "deletionTimestamp": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "deletionTimestamp": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", "deletionGracePeriodSeconds": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.", "labels": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "annotations": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD index ec27bfd78..870ef7b90 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD @@ -8,23 +8,30 @@ load( go_test( name = "go_default_test", - srcs = ["unstructured_test.go"], + srcs = [ + "helpers_test.go", + "unstructured_list_test.go", + ], importpath = "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", library = ":go_default_library", - deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], + deps = [ + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/github.com/stretchr/testify/require:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + ], ) go_library( name = "go_default_library", srcs = [ + "helpers.go", "unstructured.go", + "unstructured_list.go", "zz_generated.deepcopy.go", ], importpath = "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", deps = [ - "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go new file mode 100644 index 000000000..ac4355bf5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go @@ -0,0 +1,470 @@ +/* +Copyright 2015 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 unstructured + +import ( + gojson "encoding/json" + "errors" + "fmt" + "io" + "strings" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/json" +) + +// NestedFieldCopy returns a deep copy of the value of a nested field. +// false is returned if the value is missing. +// nil, true is returned for a nil field. +func NestedFieldCopy(obj map[string]interface{}, fields ...string) (interface{}, bool) { + val, ok := nestedFieldNoCopy(obj, fields...) + if !ok { + return nil, false + } + return unstructured.DeepCopyJSONValue(val), true +} + +func nestedFieldNoCopy(obj map[string]interface{}, fields ...string) (interface{}, bool) { + var val interface{} = obj + for _, field := range fields { + if m, ok := val.(map[string]interface{}); ok { + val, ok = m[field] + if !ok { + return nil, false + } + } else { + // Expected map[string]interface{}, got something else + return nil, false + } + } + return val, true +} + +// NestedString returns the string value of a nested field. +// Returns false if value is not found or is not a string. +func NestedString(obj map[string]interface{}, fields ...string) (string, bool) { + val, ok := nestedFieldNoCopy(obj, fields...) + if !ok { + return "", false + } + s, ok := val.(string) + return s, ok +} + +// NestedBool returns the bool value of a nested field. +// Returns false if value is not found or is not a bool. +func NestedBool(obj map[string]interface{}, fields ...string) (bool, bool) { + val, ok := nestedFieldNoCopy(obj, fields...) + if !ok { + return false, false + } + b, ok := val.(bool) + return b, ok +} + +// NestedFloat64 returns the bool value of a nested field. +// Returns false if value is not found or is not a float64. +func NestedFloat64(obj map[string]interface{}, fields ...string) (float64, bool) { + val, ok := nestedFieldNoCopy(obj, fields...) + if !ok { + return 0, false + } + f, ok := val.(float64) + return f, ok +} + +// NestedInt64 returns the int64 value of a nested field. +// Returns false if value is not found or is not an int64. +func NestedInt64(obj map[string]interface{}, fields ...string) (int64, bool) { + val, ok := nestedFieldNoCopy(obj, fields...) + if !ok { + return 0, false + } + i, ok := val.(int64) + return i, ok +} + +// NestedStringSlice returns a copy of []string value of a nested field. +// Returns false if value is not found, is not a []interface{} or contains non-string items in the slice. +func NestedStringSlice(obj map[string]interface{}, fields ...string) ([]string, bool) { + val, ok := nestedFieldNoCopy(obj, fields...) + if !ok { + return nil, false + } + if m, ok := val.([]interface{}); ok { + strSlice := make([]string, 0, len(m)) + for _, v := range m { + if str, ok := v.(string); ok { + strSlice = append(strSlice, str) + } else { + return nil, false + } + } + return strSlice, true + } + return nil, false +} + +// NestedSlice returns a deep copy of []interface{} value of a nested field. +// Returns false if value is not found or is not a []interface{}. +func NestedSlice(obj map[string]interface{}, fields ...string) ([]interface{}, bool) { + val, ok := nestedFieldNoCopy(obj, fields...) + if !ok { + return nil, false + } + if _, ok := val.([]interface{}); ok { + return unstructured.DeepCopyJSONValue(val).([]interface{}), true + } + return nil, false +} + +// NestedStringMap returns a copy of map[string]string value of a nested field. +// Returns false if value is not found, is not a map[string]interface{} or contains non-string values in the map. +func NestedStringMap(obj map[string]interface{}, fields ...string) (map[string]string, bool) { + val, ok := nestedFieldNoCopy(obj, fields...) + if !ok { + return nil, false + } + if m, ok := val.(map[string]interface{}); ok { + strMap := make(map[string]string, len(m)) + for k, v := range m { + if str, ok := v.(string); ok { + strMap[k] = str + } else { + return nil, false + } + } + return strMap, true + } + return nil, false +} + +// NestedMap returns a deep copy of map[string]interface{} value of a nested field. +// Returns false if value is not found or is not a map[string]interface{}. +func NestedMap(obj map[string]interface{}, fields ...string) (map[string]interface{}, bool) { + val, ok := nestedFieldNoCopy(obj, fields...) + if !ok { + return nil, false + } + if m, ok := val.(map[string]interface{}); ok { + return unstructured.DeepCopyJSON(m), true + } + return nil, false +} + +// SetNestedField sets the value of a nested field to a deep copy of the value provided. +// Returns false if value cannot be set because one of the nesting levels is not a map[string]interface{}. +func SetNestedField(obj map[string]interface{}, value interface{}, fields ...string) bool { + return setNestedFieldNoCopy(obj, unstructured.DeepCopyJSONValue(value), fields...) +} + +func setNestedFieldNoCopy(obj map[string]interface{}, value interface{}, fields ...string) bool { + m := obj + for _, field := range fields[:len(fields)-1] { + if val, ok := m[field]; ok { + if valMap, ok := val.(map[string]interface{}); ok { + m = valMap + } else { + return false + } + } else { + newVal := make(map[string]interface{}) + m[field] = newVal + m = newVal + } + } + m[fields[len(fields)-1]] = value + return true +} + +// SetNestedStringSlice sets the string slice value of a nested field. +// Returns false if value cannot be set because one of the nesting levels is not a map[string]interface{}. +func SetNestedStringSlice(obj map[string]interface{}, value []string, fields ...string) bool { + m := make([]interface{}, 0, len(value)) // convert []string into []interface{} + for _, v := range value { + m = append(m, v) + } + return setNestedFieldNoCopy(obj, m, fields...) +} + +// SetNestedSlice sets the slice value of a nested field. +// Returns false if value cannot be set because one of the nesting levels is not a map[string]interface{}. +func SetNestedSlice(obj map[string]interface{}, value []interface{}, fields ...string) bool { + return SetNestedField(obj, value, fields...) +} + +// SetNestedStringMap sets the map[string]string value of a nested field. +// Returns false if value cannot be set because one of the nesting levels is not a map[string]interface{}. +func SetNestedStringMap(obj map[string]interface{}, value map[string]string, fields ...string) bool { + m := make(map[string]interface{}, len(value)) // convert map[string]string into map[string]interface{} + for k, v := range value { + m[k] = v + } + return setNestedFieldNoCopy(obj, m, fields...) +} + +// SetNestedMap sets the map[string]interface{} value of a nested field. +// Returns false if value cannot be set because one of the nesting levels is not a map[string]interface{}. +func SetNestedMap(obj map[string]interface{}, value map[string]interface{}, fields ...string) bool { + return SetNestedField(obj, value, fields...) +} + +// RemoveNestedField removes the nested field from the obj. +func RemoveNestedField(obj map[string]interface{}, fields ...string) { + m := obj + for _, field := range fields[:len(fields)-1] { + if x, ok := m[field].(map[string]interface{}); ok { + m = x + } else { + return + } + } + delete(m, fields[len(fields)-1]) +} + +func getNestedString(obj map[string]interface{}, fields ...string) string { + val, ok := NestedString(obj, fields...) + if !ok { + return "" + } + return val +} + +func extractOwnerReference(v map[string]interface{}) metav1.OwnerReference { + // though this field is a *bool, but when decoded from JSON, it's + // unmarshalled as bool. + var controllerPtr *bool + if controller, ok := NestedBool(v, "controller"); ok { + controllerPtr = &controller + } + var blockOwnerDeletionPtr *bool + if blockOwnerDeletion, ok := NestedBool(v, "blockOwnerDeletion"); ok { + blockOwnerDeletionPtr = &blockOwnerDeletion + } + return metav1.OwnerReference{ + Kind: getNestedString(v, "kind"), + Name: getNestedString(v, "name"), + APIVersion: getNestedString(v, "apiVersion"), + UID: types.UID(getNestedString(v, "uid")), + Controller: controllerPtr, + BlockOwnerDeletion: blockOwnerDeletionPtr, + } +} + +func setOwnerReference(src metav1.OwnerReference) map[string]interface{} { + ret := map[string]interface{}{ + "kind": src.Kind, + "name": src.Name, + "apiVersion": src.APIVersion, + "uid": string(src.UID), + } + // json.Unmarshal() extracts boolean json fields as bool, not as *bool and hence extractOwnerReference() + // expects bool or a missing field, not *bool. So if pointer is nil, fields are omitted from the ret object. + // If pointer is non-nil, they are set to the referenced value. + if src.Controller != nil { + ret["controller"] = *src.Controller + } + if src.BlockOwnerDeletion != nil { + ret["blockOwnerDeletion"] = *src.BlockOwnerDeletion + } + return ret +} + +var converter = unstructured.NewConverter(false) + +// UnstructuredJSONScheme is capable of converting JSON data into the Unstructured +// type, which can be used for generic access to objects without a predefined scheme. +// TODO: move into serializer/json. +var UnstructuredJSONScheme runtime.Codec = unstructuredJSONScheme{} + +type unstructuredJSONScheme struct{} + +func (s unstructuredJSONScheme) Decode(data []byte, _ *schema.GroupVersionKind, obj runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) { + var err error + if obj != nil { + err = s.decodeInto(data, obj) + } else { + obj, err = s.decode(data) + } + + if err != nil { + return nil, nil, err + } + + gvk := obj.GetObjectKind().GroupVersionKind() + if len(gvk.Kind) == 0 { + return nil, &gvk, runtime.NewMissingKindErr(string(data)) + } + + return obj, &gvk, nil +} + +func (unstructuredJSONScheme) Encode(obj runtime.Object, w io.Writer) error { + switch t := obj.(type) { + case *Unstructured: + return json.NewEncoder(w).Encode(t.Object) + case *UnstructuredList: + items := make([]interface{}, 0, len(t.Items)) + for _, i := range t.Items { + items = append(items, i.Object) + } + listObj := make(map[string]interface{}, len(t.Object)+1) + for k, v := range t.Object { // Make a shallow copy + listObj[k] = v + } + listObj["items"] = items + return json.NewEncoder(w).Encode(listObj) + case *runtime.Unknown: + // TODO: Unstructured needs to deal with ContentType. + _, err := w.Write(t.Raw) + return err + default: + return json.NewEncoder(w).Encode(t) + } +} + +func (s unstructuredJSONScheme) decode(data []byte) (runtime.Object, error) { + type detector struct { + Items gojson.RawMessage + } + var det detector + if err := json.Unmarshal(data, &det); err != nil { + return nil, err + } + + if det.Items != nil { + list := &UnstructuredList{} + err := s.decodeToList(data, list) + return list, err + } + + // No Items field, so it wasn't a list. + unstruct := &Unstructured{} + err := s.decodeToUnstructured(data, unstruct) + return unstruct, err +} + +func (s unstructuredJSONScheme) decodeInto(data []byte, obj runtime.Object) error { + switch x := obj.(type) { + case *Unstructured: + return s.decodeToUnstructured(data, x) + case *UnstructuredList: + return s.decodeToList(data, x) + case *runtime.VersionedObjects: + o, err := s.decode(data) + if err == nil { + x.Objects = []runtime.Object{o} + } + return err + default: + return json.Unmarshal(data, x) + } +} + +func (unstructuredJSONScheme) decodeToUnstructured(data []byte, unstruct *Unstructured) error { + m := make(map[string]interface{}) + if err := json.Unmarshal(data, &m); err != nil { + return err + } + + unstruct.Object = m + + return nil +} + +func (s unstructuredJSONScheme) decodeToList(data []byte, list *UnstructuredList) error { + type decodeList struct { + Items []gojson.RawMessage + } + + var dList decodeList + if err := json.Unmarshal(data, &dList); err != nil { + return err + } + + if err := json.Unmarshal(data, &list.Object); err != nil { + return err + } + + // For typed lists, e.g., a PodList, API server doesn't set each item's + // APIVersion and Kind. We need to set it. + listAPIVersion := list.GetAPIVersion() + listKind := list.GetKind() + itemKind := strings.TrimSuffix(listKind, "List") + + delete(list.Object, "items") + list.Items = make([]Unstructured, 0, len(dList.Items)) + for _, i := range dList.Items { + unstruct := &Unstructured{} + if err := s.decodeToUnstructured([]byte(i), unstruct); err != nil { + return err + } + // This is hacky. Set the item's Kind and APIVersion to those inferred + // from the List. + if len(unstruct.GetKind()) == 0 && len(unstruct.GetAPIVersion()) == 0 { + unstruct.SetKind(itemKind) + unstruct.SetAPIVersion(listAPIVersion) + } + list.Items = append(list.Items, *unstruct) + } + return nil +} + +// UnstructuredObjectConverter is an ObjectConverter for use with +// Unstructured objects. Since it has no schema or type information, +// it will only succeed for no-op conversions. This is provided as a +// sane implementation for APIs that require an object converter. +type UnstructuredObjectConverter struct{} + +func (UnstructuredObjectConverter) Convert(in, out, context interface{}) error { + unstructIn, ok := in.(*Unstructured) + if !ok { + return fmt.Errorf("input type %T in not valid for unstructured conversion", in) + } + + unstructOut, ok := out.(*Unstructured) + if !ok { + return fmt.Errorf("output type %T in not valid for unstructured conversion", out) + } + + // maybe deep copy the map? It is documented in the + // ObjectConverter interface that this function is not + // guaranteeed to not mutate the input. Or maybe set the input + // object to nil. + unstructOut.Object = unstructIn.Object + return nil +} + +func (UnstructuredObjectConverter) ConvertToVersion(in runtime.Object, target runtime.GroupVersioner) (runtime.Object, error) { + if kind := in.GetObjectKind().GroupVersionKind(); !kind.Empty() { + gvk, ok := target.KindForGroupVersionKinds([]schema.GroupVersionKind{kind}) + if !ok { + // TODO: should this be a typed error? + return nil, fmt.Errorf("%v is unstructured and is not suitable for converting to %q", kind, target) + } + in.GetObjectKind().SetGroupVersionKind(gvk) + } + return in, nil +} + +func (UnstructuredObjectConverter) ConvertFieldLabel(version, kind, label, value string) (string, string, error) { + return "", "", errors.New("unstructured cannot convert field labels") +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers_test.go new file mode 100644 index 000000000..9e774d1c1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers_test.go @@ -0,0 +1,60 @@ +/* +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 unstructured + +import ( + "io/ioutil" + "sync" + "testing" + + "github.com/stretchr/testify/assert" +) + +// TestCodecOfUnstructuredList tests that there are no data races in Encode(). +// i.e. that it does not mutate the object being encoded. +func TestCodecOfUnstructuredList(t *testing.T) { + var wg sync.WaitGroup + concurrency := 10 + list := UnstructuredList{ + Object: map[string]interface{}{}, + } + wg.Add(concurrency) + for i := 0; i < concurrency; i++ { + go func() { + defer wg.Done() + assert.NoError(t, UnstructuredJSONScheme.Encode(&list, ioutil.Discard)) + }() + } + wg.Wait() +} + +func TestRemoveNestedField(t *testing.T) { + obj := map[string]interface{}{ + "x": map[string]interface{}{ + "y": 1, + "a": "foo", + }, + } + RemoveNestedField(obj, "x", "a") + assert.Len(t, obj["x"], 1) + RemoveNestedField(obj, "x", "y") + assert.Empty(t, obj["x"]) + RemoveNestedField(obj, "x") + assert.Empty(t, obj) + RemoveNestedField(obj, "x") // Remove of a non-existent field + assert.Empty(t, obj) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured.go index 7213b7a16..56d18a32e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured.go @@ -18,20 +18,13 @@ package unstructured import ( "bytes" - gojson "encoding/json" - "errors" "fmt" - "io" - "strings" - - "github.com/golang/glog" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/conversion/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/json" utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) @@ -54,13 +47,10 @@ type Unstructured struct { var _ metav1.Object = &Unstructured{} var _ runtime.Unstructured = &Unstructured{} -var _ runtime.Unstructured = &UnstructuredList{} -func (obj *Unstructured) GetObjectKind() schema.ObjectKind { return obj } -func (obj *UnstructuredList) GetObjectKind() schema.ObjectKind { return obj } +func (obj *Unstructured) GetObjectKind() schema.ObjectKind { return obj } -func (obj *Unstructured) IsUnstructuredObject() {} -func (obj *UnstructuredList) IsUnstructuredObject() {} +func (obj *Unstructured) IsUnstructuredObject() {} func (obj *Unstructured) IsList() bool { if obj.Object != nil { @@ -69,7 +59,6 @@ func (obj *Unstructured) IsList() bool { } return false } -func (obj *UnstructuredList) IsList() bool { return true } func (obj *Unstructured) EachListItem(fn func(runtime.Object) error) error { if obj.Object == nil { @@ -95,15 +84,6 @@ func (obj *Unstructured) EachListItem(fn func(runtime.Object) error) error { return nil } -func (obj *UnstructuredList) EachListItem(fn func(runtime.Object) error) error { - for i := range obj.Items { - if err := fn(&obj.Items[i]); err != nil { - return err - } - } - return nil -} - func (obj *Unstructured) UnstructuredContent() map[string]interface{} { if obj.Object == nil { obj.Object = make(map[string]interface{}) @@ -111,25 +91,6 @@ func (obj *Unstructured) UnstructuredContent() map[string]interface{} { return obj.Object } -// UnstructuredContent returns a map contain an overlay of the Items field onto -// the Object field. Items always overwrites overlay. Changing "items" in the -// returned object will affect items in the underlying Items field, but changing -// the "items" slice itself will have no effect. -// TODO: expose SetUnstructuredContent on runtime.Unstructured that allows -// items to be changed. -func (obj *UnstructuredList) UnstructuredContent() map[string]interface{} { - out := obj.Object - if out == nil { - out = make(map[string]interface{}) - } - items := make([]interface{}, len(obj.Items)) - for i, item := range obj.Items { - items[i] = item.Object - } - out["items"] = items - return out -} - // MarshalJSON ensures that the unstructured object produces proper // JSON when passed to Go's standard JSON library. func (u *Unstructured) MarshalJSON() ([]byte, error) { @@ -155,223 +116,52 @@ func (in *Unstructured) DeepCopy() *Unstructured { return out } -func (in *UnstructuredList) DeepCopy() *UnstructuredList { - if in == nil { - return nil - } - out := new(UnstructuredList) - *out = *in - out.Object = unstructured.DeepCopyJSON(in.Object) - out.Items = make([]Unstructured, len(in.Items)) - for i := range in.Items { - in.Items[i].DeepCopyInto(&out.Items[i]) - } - return out -} - -func getNestedField(obj map[string]interface{}, fields ...string) interface{} { - var val interface{} = obj - for _, field := range fields { - if _, ok := val.(map[string]interface{}); !ok { - return nil - } - val = val.(map[string]interface{})[field] - } - return val -} - -func getNestedString(obj map[string]interface{}, fields ...string) string { - if str, ok := getNestedField(obj, fields...).(string); ok { - return str - } - return "" -} - -func getNestedInt64(obj map[string]interface{}, fields ...string) int64 { - if str, ok := getNestedField(obj, fields...).(int64); ok { - return str - } - return 0 -} - -func getNestedInt64Pointer(obj map[string]interface{}, fields ...string) *int64 { - nested := getNestedField(obj, fields...) - switch n := nested.(type) { - case int64: - return &n - case *int64: - return n - default: - return nil - } -} - -func getNestedSlice(obj map[string]interface{}, fields ...string) []string { - if m, ok := getNestedField(obj, fields...).([]interface{}); ok { - strSlice := make([]string, 0, len(m)) - for _, v := range m { - if str, ok := v.(string); ok { - strSlice = append(strSlice, str) - } - } - return strSlice - } - return nil -} - -func getNestedMap(obj map[string]interface{}, fields ...string) map[string]string { - if m, ok := getNestedField(obj, fields...).(map[string]interface{}); ok { - strMap := make(map[string]string, len(m)) - for k, v := range m { - if str, ok := v.(string); ok { - strMap[k] = str - } - } - return strMap - } - return nil -} - -func setNestedField(obj map[string]interface{}, value interface{}, fields ...string) { - m := obj - if len(fields) > 1 { - for _, field := range fields[0 : len(fields)-1] { - if _, ok := m[field].(map[string]interface{}); !ok { - m[field] = make(map[string]interface{}) - } - m = m[field].(map[string]interface{}) - } - } - m[fields[len(fields)-1]] = value -} - -func setNestedSlice(obj map[string]interface{}, value []string, fields ...string) { - m := make([]interface{}, 0, len(value)) - for _, v := range value { - m = append(m, v) - } - setNestedField(obj, m, fields...) -} - -func setNestedMap(obj map[string]interface{}, value map[string]string, fields ...string) { - m := make(map[string]interface{}, len(value)) - for k, v := range value { - m[k] = v - } - setNestedField(obj, m, fields...) -} - func (u *Unstructured) setNestedField(value interface{}, fields ...string) { if u.Object == nil { u.Object = make(map[string]interface{}) } - setNestedField(u.Object, value, fields...) + SetNestedField(u.Object, value, fields...) } func (u *Unstructured) setNestedSlice(value []string, fields ...string) { if u.Object == nil { u.Object = make(map[string]interface{}) } - setNestedSlice(u.Object, value, fields...) + SetNestedStringSlice(u.Object, value, fields...) } func (u *Unstructured) setNestedMap(value map[string]string, fields ...string) { if u.Object == nil { u.Object = make(map[string]interface{}) } - setNestedMap(u.Object, value, fields...) + SetNestedStringMap(u.Object, value, fields...) } -func extractOwnerReference(src interface{}) metav1.OwnerReference { - v := src.(map[string]interface{}) - // though this field is a *bool, but when decoded from JSON, it's - // unmarshalled as bool. - var controllerPtr *bool - controller, ok := (getNestedField(v, "controller")).(bool) - if !ok { - controllerPtr = nil - } else { - controllerCopy := controller - controllerPtr = &controllerCopy - } - var blockOwnerDeletionPtr *bool - blockOwnerDeletion, ok := (getNestedField(v, "blockOwnerDeletion")).(bool) +func (u *Unstructured) GetOwnerReferences() []metav1.OwnerReference { + field, ok := nestedFieldNoCopy(u.Object, "metadata", "ownerReferences") if !ok { - blockOwnerDeletionPtr = nil - } else { - blockOwnerDeletionCopy := blockOwnerDeletion - blockOwnerDeletionPtr = &blockOwnerDeletionCopy - } - return metav1.OwnerReference{ - Kind: getNestedString(v, "kind"), - Name: getNestedString(v, "name"), - APIVersion: getNestedString(v, "apiVersion"), - UID: (types.UID)(getNestedString(v, "uid")), - Controller: controllerPtr, - BlockOwnerDeletion: blockOwnerDeletionPtr, - } -} - -func setOwnerReference(src metav1.OwnerReference) map[string]interface{} { - ret := make(map[string]interface{}) - setNestedField(ret, src.Kind, "kind") - setNestedField(ret, src.Name, "name") - setNestedField(ret, src.APIVersion, "apiVersion") - setNestedField(ret, string(src.UID), "uid") - // json.Unmarshal() extracts boolean json fields as bool, not as *bool and hence extractOwnerReference() - // expects bool or a missing field, not *bool. So if pointer is nil, fields are omitted from the ret object. - // If pointer is non-nil, they are set to the referenced value. - if src.Controller != nil { - setNestedField(ret, *src.Controller, "controller") - } - if src.BlockOwnerDeletion != nil { - setNestedField(ret, *src.BlockOwnerDeletion, "blockOwnerDeletion") - } - return ret -} - -func getOwnerReferences(object map[string]interface{}) ([]map[string]interface{}, error) { - field := getNestedField(object, "metadata", "ownerReferences") - if field == nil { - return nil, fmt.Errorf("cannot find field metadata.ownerReferences in %v", object) - } - ownerReferences, ok := field.([]map[string]interface{}) - if ok { - return ownerReferences, nil + return nil } - // TODO: This is hacky... - interfaces, ok := field.([]interface{}) + original, ok := field.([]interface{}) if !ok { - return nil, fmt.Errorf("expect metadata.ownerReferences to be a slice in %#v", object) - } - ownerReferences = make([]map[string]interface{}, 0, len(interfaces)) - for i := 0; i < len(interfaces); i++ { - r, ok := interfaces[i].(map[string]interface{}) - if !ok { - return nil, fmt.Errorf("expect element metadata.ownerReferences to be a map[string]interface{} in %#v", object) - } - ownerReferences = append(ownerReferences, r) - } - return ownerReferences, nil -} - -func (u *Unstructured) GetOwnerReferences() []metav1.OwnerReference { - original, err := getOwnerReferences(u.Object) - if err != nil { - glog.V(6).Info(err) return nil } ret := make([]metav1.OwnerReference, 0, len(original)) - for i := 0; i < len(original); i++ { - ret = append(ret, extractOwnerReference(original[i])) + for _, obj := range original { + o, ok := obj.(map[string]interface{}) + if !ok { + // expected map[string]interface{}, got something else + return nil + } + ret = append(ret, extractOwnerReference(o)) } return ret } func (u *Unstructured) SetOwnerReferences(references []metav1.OwnerReference) { - var newReferences = make([]map[string]interface{}, 0, len(references)) - for i := 0; i < len(references); i++ { - newReferences = append(newReferences, setOwnerReference(references[i])) + newReferences := make([]interface{}, 0, len(references)) + for _, reference := range references { + newReferences = append(newReferences, setOwnerReference(reference)) } u.setNestedField(newReferences, "metadata", "ownerReferences") } @@ -433,7 +223,11 @@ func (u *Unstructured) SetResourceVersion(version string) { } func (u *Unstructured) GetGeneration() int64 { - return getNestedInt64(u.Object, "metadata", "generation") + val, ok := NestedInt64(u.Object, "metadata", "generation") + if !ok { + return 0 + } + return val } func (u *Unstructured) SetGeneration(generation int64) { @@ -464,6 +258,10 @@ func (u *Unstructured) GetCreationTimestamp() metav1.Time { func (u *Unstructured) SetCreationTimestamp(timestamp metav1.Time) { ts, _ := timestamp.MarshalQueryParameter() + if len(ts) == 0 || timestamp.Time.IsZero() { + RemoveNestedField(u.Object, "metadata", "creationTimestamp") + return + } u.setNestedField(ts, "metadata", "creationTimestamp") } @@ -478,7 +276,7 @@ func (u *Unstructured) GetDeletionTimestamp() *metav1.Time { func (u *Unstructured) SetDeletionTimestamp(timestamp *metav1.Time) { if timestamp == nil { - u.setNestedField(nil, "metadata", "deletionTimestamp") + RemoveNestedField(u.Object, "metadata", "deletionTimestamp") return } ts, _ := timestamp.MarshalQueryParameter() @@ -486,15 +284,27 @@ func (u *Unstructured) SetDeletionTimestamp(timestamp *metav1.Time) { } func (u *Unstructured) GetDeletionGracePeriodSeconds() *int64 { - return getNestedInt64Pointer(u.Object, "metadata", "deletionGracePeriodSeconds") + val, ok := NestedInt64(u.Object, "metadata", "deletionGracePeriodSeconds") + if !ok { + return nil + } + return &val } func (u *Unstructured) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64) { - u.setNestedField(deletionGracePeriodSeconds, "metadata", "deletionGracePeriodSeconds") + if deletionGracePeriodSeconds == nil { + RemoveNestedField(u.Object, "metadata", "deletionGracePeriodSeconds") + return + } + u.setNestedField(*deletionGracePeriodSeconds, "metadata", "deletionGracePeriodSeconds") } func (u *Unstructured) GetLabels() map[string]string { - return getNestedMap(u.Object, "metadata", "labels") + m, ok := NestedStringMap(u.Object, "metadata", "labels") + if !ok { + return nil + } + return m } func (u *Unstructured) SetLabels(labels map[string]string) { @@ -502,7 +312,11 @@ func (u *Unstructured) SetLabels(labels map[string]string) { } func (u *Unstructured) GetAnnotations() map[string]string { - return getNestedMap(u.Object, "metadata", "annotations") + m, ok := NestedStringMap(u.Object, "metadata", "annotations") + if !ok { + return nil + } + return m } func (u *Unstructured) SetAnnotations(annotations map[string]string) { @@ -523,15 +337,14 @@ func (u *Unstructured) GroupVersionKind() schema.GroupVersionKind { return gvk } -var converter = unstructured.NewConverter(false) - func (u *Unstructured) GetInitializers() *metav1.Initializers { - field := getNestedField(u.Object, "metadata", "initializers") - if field == nil { + field, ok := nestedFieldNoCopy(u.Object, "metadata", "initializers") + if !ok { return nil } obj, ok := field.(map[string]interface{}) if !ok { + // expected map[string]interface{}, got something else return nil } out := &metav1.Initializers{} @@ -542,22 +355,23 @@ func (u *Unstructured) GetInitializers() *metav1.Initializers { } func (u *Unstructured) SetInitializers(initializers *metav1.Initializers) { - if u.Object == nil { - u.Object = make(map[string]interface{}) - } if initializers == nil { - setNestedField(u.Object, nil, "metadata", "initializers") + RemoveNestedField(u.Object, "metadata", "initializers") return } out, err := converter.ToUnstructured(initializers) if err != nil { utilruntime.HandleError(fmt.Errorf("unable to retrieve initializers for object: %v", err)) } - setNestedField(u.Object, out, "metadata", "initializers") + u.setNestedField(out, "metadata", "initializers") } func (u *Unstructured) GetFinalizers() []string { - return getNestedSlice(u.Object, "metadata", "finalizers") + val, ok := NestedStringSlice(u.Object, "metadata", "finalizers") + if !ok { + return nil + } + return val } func (u *Unstructured) SetFinalizers(finalizers []string) { @@ -571,272 +385,3 @@ func (u *Unstructured) GetClusterName() string { func (u *Unstructured) SetClusterName(clusterName string) { u.setNestedField(clusterName, "metadata", "clusterName") } - -// UnstructuredList allows lists that do not have Golang structs -// registered to be manipulated generically. This can be used to deal -// with the API lists from a plug-in. -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +k8s:deepcopy-gen=true -type UnstructuredList struct { - Object map[string]interface{} - - // Items is a list of unstructured objects. - Items []Unstructured `json:"items"` -} - -var _ metav1.ListInterface = &UnstructuredList{} - -// MarshalJSON ensures that the unstructured list object produces proper -// JSON when passed to Go's standard JSON library. -func (u *UnstructuredList) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := UnstructuredJSONScheme.Encode(u, &buf) - return buf.Bytes(), err -} - -// UnmarshalJSON ensures that the unstructured list object properly -// decodes JSON when passed to Go's standard JSON library. -func (u *UnstructuredList) UnmarshalJSON(b []byte) error { - _, _, err := UnstructuredJSONScheme.Decode(b, nil, u) - return err -} - -func (u *UnstructuredList) setNestedField(value interface{}, fields ...string) { - if u.Object == nil { - u.Object = make(map[string]interface{}) - } - setNestedField(u.Object, value, fields...) -} - -func (u *UnstructuredList) GetAPIVersion() string { - return getNestedString(u.Object, "apiVersion") -} - -func (u *UnstructuredList) SetAPIVersion(version string) { - u.setNestedField(version, "apiVersion") -} - -func (u *UnstructuredList) GetKind() string { - return getNestedString(u.Object, "kind") -} - -func (u *UnstructuredList) SetKind(kind string) { - u.setNestedField(kind, "kind") -} - -func (u *UnstructuredList) GetResourceVersion() string { - return getNestedString(u.Object, "metadata", "resourceVersion") -} - -func (u *UnstructuredList) SetResourceVersion(version string) { - u.setNestedField(version, "metadata", "resourceVersion") -} - -func (u *UnstructuredList) GetSelfLink() string { - return getNestedString(u.Object, "metadata", "selfLink") -} - -func (u *UnstructuredList) SetSelfLink(selfLink string) { - u.setNestedField(selfLink, "metadata", "selfLink") -} - -func (u *UnstructuredList) GetContinue() string { - return getNestedString(u.Object, "metadata", "continue") -} - -func (u *UnstructuredList) SetContinue(c string) { - u.setNestedField(c, "metadata", "continue") -} - -func (u *UnstructuredList) SetGroupVersionKind(gvk schema.GroupVersionKind) { - u.SetAPIVersion(gvk.GroupVersion().String()) - u.SetKind(gvk.Kind) -} - -func (u *UnstructuredList) GroupVersionKind() schema.GroupVersionKind { - gv, err := schema.ParseGroupVersion(u.GetAPIVersion()) - if err != nil { - return schema.GroupVersionKind{} - } - gvk := gv.WithKind(u.GetKind()) - return gvk -} - -// UnstructuredJSONScheme is capable of converting JSON data into the Unstructured -// type, which can be used for generic access to objects without a predefined scheme. -// TODO: move into serializer/json. -var UnstructuredJSONScheme runtime.Codec = unstructuredJSONScheme{} - -type unstructuredJSONScheme struct{} - -func (s unstructuredJSONScheme) Decode(data []byte, _ *schema.GroupVersionKind, obj runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) { - var err error - if obj != nil { - err = s.decodeInto(data, obj) - } else { - obj, err = s.decode(data) - } - - if err != nil { - return nil, nil, err - } - - gvk := obj.GetObjectKind().GroupVersionKind() - if len(gvk.Kind) == 0 { - return nil, &gvk, runtime.NewMissingKindErr(string(data)) - } - - return obj, &gvk, nil -} - -func (unstructuredJSONScheme) Encode(obj runtime.Object, w io.Writer) error { - switch t := obj.(type) { - case *Unstructured: - return json.NewEncoder(w).Encode(t.Object) - case *UnstructuredList: - items := make([]map[string]interface{}, 0, len(t.Items)) - for _, i := range t.Items { - items = append(items, i.Object) - } - listObj := make(map[string]interface{}, len(t.Object)+1) - for k, v := range t.Object { // Make a shallow copy - listObj[k] = v - } - listObj["items"] = items - return json.NewEncoder(w).Encode(listObj) - case *runtime.Unknown: - // TODO: Unstructured needs to deal with ContentType. - _, err := w.Write(t.Raw) - return err - default: - return json.NewEncoder(w).Encode(t) - } -} - -func (s unstructuredJSONScheme) decode(data []byte) (runtime.Object, error) { - type detector struct { - Items gojson.RawMessage - } - var det detector - if err := json.Unmarshal(data, &det); err != nil { - return nil, err - } - - if det.Items != nil { - list := &UnstructuredList{} - err := s.decodeToList(data, list) - return list, err - } - - // No Items field, so it wasn't a list. - unstruct := &Unstructured{} - err := s.decodeToUnstructured(data, unstruct) - return unstruct, err -} - -func (s unstructuredJSONScheme) decodeInto(data []byte, obj runtime.Object) error { - switch x := obj.(type) { - case *Unstructured: - return s.decodeToUnstructured(data, x) - case *UnstructuredList: - return s.decodeToList(data, x) - case *runtime.VersionedObjects: - o, err := s.decode(data) - if err == nil { - x.Objects = []runtime.Object{o} - } - return err - default: - return json.Unmarshal(data, x) - } -} - -func (unstructuredJSONScheme) decodeToUnstructured(data []byte, unstruct *Unstructured) error { - m := make(map[string]interface{}) - if err := json.Unmarshal(data, &m); err != nil { - return err - } - - unstruct.Object = m - - return nil -} - -func (s unstructuredJSONScheme) decodeToList(data []byte, list *UnstructuredList) error { - type decodeList struct { - Items []gojson.RawMessage - } - - var dList decodeList - if err := json.Unmarshal(data, &dList); err != nil { - return err - } - - if err := json.Unmarshal(data, &list.Object); err != nil { - return err - } - - // For typed lists, e.g., a PodList, API server doesn't set each item's - // APIVersion and Kind. We need to set it. - listAPIVersion := list.GetAPIVersion() - listKind := list.GetKind() - itemKind := strings.TrimSuffix(listKind, "List") - - delete(list.Object, "items") - list.Items = nil - for _, i := range dList.Items { - unstruct := &Unstructured{} - if err := s.decodeToUnstructured([]byte(i), unstruct); err != nil { - return err - } - // This is hacky. Set the item's Kind and APIVersion to those inferred - // from the List. - if len(unstruct.GetKind()) == 0 && len(unstruct.GetAPIVersion()) == 0 { - unstruct.SetKind(itemKind) - unstruct.SetAPIVersion(listAPIVersion) - } - list.Items = append(list.Items, *unstruct) - } - return nil -} - -// UnstructuredObjectConverter is an ObjectConverter for use with -// Unstructured objects. Since it has no schema or type information, -// it will only succeed for no-op conversions. This is provided as a -// sane implementation for APIs that require an object converter. -type UnstructuredObjectConverter struct{} - -func (UnstructuredObjectConverter) Convert(in, out, context interface{}) error { - unstructIn, ok := in.(*Unstructured) - if !ok { - return fmt.Errorf("input type %T in not valid for unstructured conversion", in) - } - - unstructOut, ok := out.(*Unstructured) - if !ok { - return fmt.Errorf("output type %T in not valid for unstructured conversion", out) - } - - // maybe deep copy the map? It is documented in the - // ObjectConverter interface that this function is not - // guaranteeed to not mutate the input. Or maybe set the input - // object to nil. - unstructOut.Object = unstructIn.Object - return nil -} - -func (UnstructuredObjectConverter) ConvertToVersion(in runtime.Object, target runtime.GroupVersioner) (runtime.Object, error) { - if kind := in.GetObjectKind().GroupVersionKind(); !kind.Empty() { - gvk, ok := target.KindForGroupVersionKinds([]schema.GroupVersionKind{kind}) - if !ok { - // TODO: should this be a typed error? - return nil, fmt.Errorf("%v is unstructured and is not suitable for converting to %q", kind, target) - } - in.GetObjectKind().SetGroupVersionKind(gvk) - } - return in, nil -} - -func (UnstructuredObjectConverter) ConvertFieldLabel(version, kind, label, value string) (string, string, error) { - return "", "", errors.New("unstructured cannot convert field labels") -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go new file mode 100644 index 000000000..11270a6bf --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go @@ -0,0 +1,165 @@ +/* +Copyright 2015 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 unstructured + +import ( + "bytes" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +var _ runtime.Unstructured = &UnstructuredList{} +var _ metav1.ListInterface = &UnstructuredList{} + +// UnstructuredList allows lists that do not have Golang structs +// registered to be manipulated generically. This can be used to deal +// with the API lists from a plug-in. +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +k8s:deepcopy-gen=true +type UnstructuredList struct { + Object map[string]interface{} + + // Items is a list of unstructured objects. + Items []Unstructured `json:"items"` +} + +func (u *UnstructuredList) GetObjectKind() schema.ObjectKind { return u } + +func (u *UnstructuredList) IsUnstructuredObject() {} + +func (u *UnstructuredList) IsList() bool { return true } + +func (u *UnstructuredList) EachListItem(fn func(runtime.Object) error) error { + for i := range u.Items { + if err := fn(&u.Items[i]); err != nil { + return err + } + } + return nil +} + +// UnstructuredContent returns a map contain an overlay of the Items field onto +// the Object field. Items always overwrites overlay. Changing "items" in the +// returned object will affect items in the underlying Items field, but changing +// the "items" slice itself will have no effect. +// TODO: expose SetUnstructuredContent on runtime.Unstructured that allows +// items to be changed. +func (u *UnstructuredList) UnstructuredContent() map[string]interface{} { + out := u.Object + if out == nil { + out = make(map[string]interface{}) + } + items := make([]interface{}, len(u.Items)) + for i, item := range u.Items { + items[i] = item.Object + } + out["items"] = items + return out +} + +func (u *UnstructuredList) DeepCopy() *UnstructuredList { + if u == nil { + return nil + } + out := new(UnstructuredList) + *out = *u + out.Object = unstructured.DeepCopyJSON(u.Object) + out.Items = make([]Unstructured, len(u.Items)) + for i := range u.Items { + u.Items[i].DeepCopyInto(&out.Items[i]) + } + return out +} + +// MarshalJSON ensures that the unstructured list object produces proper +// JSON when passed to Go's standard JSON library. +func (u *UnstructuredList) MarshalJSON() ([]byte, error) { + var buf bytes.Buffer + err := UnstructuredJSONScheme.Encode(u, &buf) + return buf.Bytes(), err +} + +// UnmarshalJSON ensures that the unstructured list object properly +// decodes JSON when passed to Go's standard JSON library. +func (u *UnstructuredList) UnmarshalJSON(b []byte) error { + _, _, err := UnstructuredJSONScheme.Decode(b, nil, u) + return err +} + +func (u *UnstructuredList) GetAPIVersion() string { + return getNestedString(u.Object, "apiVersion") +} + +func (u *UnstructuredList) SetAPIVersion(version string) { + u.setNestedField(version, "apiVersion") +} + +func (u *UnstructuredList) GetKind() string { + return getNestedString(u.Object, "kind") +} + +func (u *UnstructuredList) SetKind(kind string) { + u.setNestedField(kind, "kind") +} + +func (u *UnstructuredList) GetResourceVersion() string { + return getNestedString(u.Object, "metadata", "resourceVersion") +} + +func (u *UnstructuredList) SetResourceVersion(version string) { + u.setNestedField(version, "metadata", "resourceVersion") +} + +func (u *UnstructuredList) GetSelfLink() string { + return getNestedString(u.Object, "metadata", "selfLink") +} + +func (u *UnstructuredList) SetSelfLink(selfLink string) { + u.setNestedField(selfLink, "metadata", "selfLink") +} + +func (u *UnstructuredList) GetContinue() string { + return getNestedString(u.Object, "metadata", "continue") +} + +func (u *UnstructuredList) SetContinue(c string) { + u.setNestedField(c, "metadata", "continue") +} + +func (u *UnstructuredList) SetGroupVersionKind(gvk schema.GroupVersionKind) { + u.SetAPIVersion(gvk.GroupVersion().String()) + u.SetKind(gvk.Kind) +} + +func (u *UnstructuredList) GroupVersionKind() schema.GroupVersionKind { + gv, err := schema.ParseGroupVersion(u.GetAPIVersion()) + if err != nil { + return schema.GroupVersionKind{} + } + gvk := gv.WithKind(u.GetKind()) + return gvk +} + +func (u *UnstructuredList) setNestedField(value interface{}, fields ...string) { + if u.Object == nil { + u.Object = make(map[string]interface{}) + } + SetNestedField(u.Object, value, fields...) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list_test.go similarity index 55% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_test.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list_test.go index 41b8771ff..db935774a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list_test.go @@ -17,31 +17,14 @@ limitations under the License. package unstructured import ( - "io/ioutil" - "sync" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) -// TestCodecOfUnstructuredList tests that there are no data races in Encode(). -// i.e. that it does not mutate the object being encoded. -func TestCodecOfUnstructuredList(t *testing.T) { - var wg sync.WaitGroup - concurrency := 10 - list := UnstructuredList{ - Object: map[string]interface{}{}, - } - wg.Add(concurrency) - for i := 0; i < concurrency; i++ { - go func() { - defer wg.Done() - assert.NoError(t, UnstructuredJSONScheme.Encode(&list, ioutil.Discard)) - }() - } - wg.Wait() -} - func TestUnstructuredList(t *testing.T) { list := &UnstructuredList{ Object: map[string]interface{}{"kind": "List", "apiVersion": "v1"}, @@ -51,12 +34,10 @@ func TestUnstructuredList(t *testing.T) { } content := list.UnstructuredContent() items := content["items"].([]interface{}) - if len(items) != 1 { - t.Fatalf("unexpected items: %#v", items) - } - if getNestedField(items[0].(map[string]interface{}), "metadata", "name") != "test" { - t.Fatalf("unexpected fields: %#v", items[0]) - } + require.Len(t, items, 1) + val, ok := NestedFieldCopy(items[0].(map[string]interface{}), "metadata", "name") + require.True(t, ok) + assert.Equal(t, "test", val) } func TestNilDeletionTimestamp(t *testing.T) { @@ -70,9 +51,35 @@ func TestNilDeletionTimestamp(t *testing.T) { if del != nil { t.Errorf("unexpected non-nil deletion timestamp: %v", del) } + _, ok := u.Object["metadata"] + assert.False(t, ok) + + now := metav1.Now() + u.SetDeletionTimestamp(&now) + assert.Equal(t, now.Unix(), u.GetDeletionTimestamp().Unix()) + u.SetDeletionTimestamp(nil) metadata := u.Object["metadata"].(map[string]interface{}) - deletionTimestamp := metadata["deletionTimestamp"] - if deletionTimestamp != nil { - t.Errorf("unexpected deletion timestamp field: %q", deletionTimestamp) + _, ok = metadata["deletionTimestamp"] + assert.False(t, ok) +} + +func TestEmptyCreationTimestampIsOmitted(t *testing.T) { + var u Unstructured + now := metav1.Now() + + // set an initial creationTimestamp and ensure the field exists + u.SetCreationTimestamp(now) + metadata := u.Object["metadata"].(map[string]interface{}) + creationTimestamp, exists := metadata["creationTimestamp"] + if !exists { + t.Fatalf("unexpected missing creationTimestamp") + } + + // set an empty timestamp and ensure the field no longer exists + u.SetCreationTimestamp(metav1.Time{}) + metadata = u.Object["metadata"].(map[string]interface{}) + creationTimestamp, exists = metadata["creationTimestamp"] + if exists { + t.Errorf("unexpected creation timestamp field: %q", creationTimestamp) } } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go index 248acf989..8f6a17bf6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go @@ -21,27 +21,9 @@ limitations under the License. package unstructured import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Unstructured).DeepCopyInto(out.(*Unstructured)) - return nil - }, InType: reflect.TypeOf(&Unstructured{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*UnstructuredList).DeepCopyInto(out.(*UnstructuredList)) - return nil - }, InType: reflect.TypeOf(&UnstructuredList{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Unstructured) DeepCopyInto(out *Unstructured) { clone := in.DeepCopy() diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go index c73e777b5..ed4585502 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go @@ -21,164 +21,10 @@ limitations under the License. package v1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" types "k8s.io/apimachinery/pkg/types" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIGroup).DeepCopyInto(out.(*APIGroup)) - return nil - }, InType: reflect.TypeOf(&APIGroup{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIGroupList).DeepCopyInto(out.(*APIGroupList)) - return nil - }, InType: reflect.TypeOf(&APIGroupList{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIResource).DeepCopyInto(out.(*APIResource)) - return nil - }, InType: reflect.TypeOf(&APIResource{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIResourceList).DeepCopyInto(out.(*APIResourceList)) - return nil - }, InType: reflect.TypeOf(&APIResourceList{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIVersions).DeepCopyInto(out.(*APIVersions)) - return nil - }, InType: reflect.TypeOf(&APIVersions{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeleteOptions).DeepCopyInto(out.(*DeleteOptions)) - return nil - }, InType: reflect.TypeOf(&DeleteOptions{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Duration).DeepCopyInto(out.(*Duration)) - return nil - }, InType: reflect.TypeOf(&Duration{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExportOptions).DeepCopyInto(out.(*ExportOptions)) - return nil - }, InType: reflect.TypeOf(&ExportOptions{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GetOptions).DeepCopyInto(out.(*GetOptions)) - return nil - }, InType: reflect.TypeOf(&GetOptions{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupKind).DeepCopyInto(out.(*GroupKind)) - return nil - }, InType: reflect.TypeOf(&GroupKind{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupResource).DeepCopyInto(out.(*GroupResource)) - return nil - }, InType: reflect.TypeOf(&GroupResource{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupVersion).DeepCopyInto(out.(*GroupVersion)) - return nil - }, InType: reflect.TypeOf(&GroupVersion{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupVersionForDiscovery).DeepCopyInto(out.(*GroupVersionForDiscovery)) - return nil - }, InType: reflect.TypeOf(&GroupVersionForDiscovery{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupVersionKind).DeepCopyInto(out.(*GroupVersionKind)) - return nil - }, InType: reflect.TypeOf(&GroupVersionKind{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupVersionResource).DeepCopyInto(out.(*GroupVersionResource)) - return nil - }, InType: reflect.TypeOf(&GroupVersionResource{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Initializer).DeepCopyInto(out.(*Initializer)) - return nil - }, InType: reflect.TypeOf(&Initializer{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Initializers).DeepCopyInto(out.(*Initializers)) - return nil - }, InType: reflect.TypeOf(&Initializers{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InternalEvent).DeepCopyInto(out.(*InternalEvent)) - return nil - }, InType: reflect.TypeOf(&InternalEvent{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LabelSelector).DeepCopyInto(out.(*LabelSelector)) - return nil - }, InType: reflect.TypeOf(&LabelSelector{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*LabelSelectorRequirement).DeepCopyInto(out.(*LabelSelectorRequirement)) - return nil - }, InType: reflect.TypeOf(&LabelSelectorRequirement{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*List).DeepCopyInto(out.(*List)) - return nil - }, InType: reflect.TypeOf(&List{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ListMeta).DeepCopyInto(out.(*ListMeta)) - return nil - }, InType: reflect.TypeOf(&ListMeta{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ListOptions).DeepCopyInto(out.(*ListOptions)) - return nil - }, InType: reflect.TypeOf(&ListOptions{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MicroTime).DeepCopyInto(out.(*MicroTime)) - return nil - }, InType: reflect.TypeOf(&MicroTime{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectMeta).DeepCopyInto(out.(*ObjectMeta)) - return nil - }, InType: reflect.TypeOf(&ObjectMeta{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*OwnerReference).DeepCopyInto(out.(*OwnerReference)) - return nil - }, InType: reflect.TypeOf(&OwnerReference{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Patch).DeepCopyInto(out.(*Patch)) - return nil - }, InType: reflect.TypeOf(&Patch{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Preconditions).DeepCopyInto(out.(*Preconditions)) - return nil - }, InType: reflect.TypeOf(&Preconditions{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RootPaths).DeepCopyInto(out.(*RootPaths)) - return nil - }, InType: reflect.TypeOf(&RootPaths{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServerAddressByClientCIDR).DeepCopyInto(out.(*ServerAddressByClientCIDR)) - return nil - }, InType: reflect.TypeOf(&ServerAddressByClientCIDR{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Status).DeepCopyInto(out.(*Status)) - return nil - }, InType: reflect.TypeOf(&Status{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatusCause).DeepCopyInto(out.(*StatusCause)) - return nil - }, InType: reflect.TypeOf(&StatusCause{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatusDetails).DeepCopyInto(out.(*StatusDetails)) - return nil - }, InType: reflect.TypeOf(&StatusDetails{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Time).DeepCopyInto(out.(*Time)) - return nil - }, InType: reflect.TypeOf(&Time{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Timestamp).DeepCopyInto(out.(*Timestamp)) - return nil - }, InType: reflect.TypeOf(&Timestamp{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*WatchEvent).DeepCopyInto(out.(*WatchEvent)) - return nil - }, InType: reflect.TypeOf(&WatchEvent{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *APIGroup) DeepCopyInto(out *APIGroup) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/zz_generated.deepcopy.go index 043456cdb..4ae545d91 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/zz_generated.deepcopy.go @@ -21,47 +21,9 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PartialObjectMetadata).DeepCopyInto(out.(*PartialObjectMetadata)) - return nil - }, InType: reflect.TypeOf(&PartialObjectMetadata{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PartialObjectMetadataList).DeepCopyInto(out.(*PartialObjectMetadataList)) - return nil - }, InType: reflect.TypeOf(&PartialObjectMetadataList{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Table).DeepCopyInto(out.(*Table)) - return nil - }, InType: reflect.TypeOf(&Table{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TableColumnDefinition).DeepCopyInto(out.(*TableColumnDefinition)) - return nil - }, InType: reflect.TypeOf(&TableColumnDefinition{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TableOptions).DeepCopyInto(out.(*TableOptions)) - return nil - }, InType: reflect.TypeOf(&TableOptions{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TableRow).DeepCopyInto(out.(*TableRow)) - return nil - }, InType: reflect.TypeOf(&TableRow{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TableRowCondition).DeepCopyInto(out.(*TableRowCondition)) - return nil - }, InType: reflect.TypeOf(&TableRowCondition{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PartialObjectMetadata) DeepCopyInto(out *PartialObjectMetadata) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD index 1f2b043a3..817a0e6ad 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/apimachinery/pkg/apis/testapigroup", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/doc.go index f8c455eec..419d0cb46 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=testapigroup.apimachinery.k8s.io // // package testapigroup contains an testapigroup API used to demonstrate how to create api groups. Moreover, this is diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/register.go index cbf628fc7..ab2afcf72 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/register.go @@ -42,7 +42,7 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Carp{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/doc.go index 9f935b3d4..732d20381 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/apimachinery/pkg/apis/testapigroup // +k8s:openapi-gen=false // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/register.go index d04bc1b58..8658a683f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/register.go @@ -53,7 +53,7 @@ func init() { localSchemeBuilder.Register(addKnownTypes, addConversionFuncs, addDefaultingFuncs) } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Carp{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.deepcopy.go index 82e8dbfe7..42e689f63 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.deepcopy.go @@ -22,44 +22,9 @@ package v1 import ( meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Carp).DeepCopyInto(out.(*Carp)) - return nil - }, InType: reflect.TypeOf(&Carp{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CarpCondition).DeepCopyInto(out.(*CarpCondition)) - return nil - }, InType: reflect.TypeOf(&CarpCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CarpList).DeepCopyInto(out.(*CarpList)) - return nil - }, InType: reflect.TypeOf(&CarpList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CarpSpec).DeepCopyInto(out.(*CarpSpec)) - return nil - }, InType: reflect.TypeOf(&CarpSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CarpStatus).DeepCopyInto(out.(*CarpStatus)) - return nil - }, InType: reflect.TypeOf(&CarpStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Carp) DeepCopyInto(out *Carp) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/zz_generated.deepcopy.go index a2d6b83b6..43452928a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/zz_generated.deepcopy.go @@ -22,44 +22,9 @@ package testapigroup import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Carp).DeepCopyInto(out.(*Carp)) - return nil - }, InType: reflect.TypeOf(&Carp{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CarpCondition).DeepCopyInto(out.(*CarpCondition)) - return nil - }, InType: reflect.TypeOf(&CarpCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CarpList).DeepCopyInto(out.(*CarpList)) - return nil - }, InType: reflect.TypeOf(&CarpList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CarpSpec).DeepCopyInto(out.(*CarpSpec)) - return nil - }, InType: reflect.TypeOf(&CarpSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*CarpStatus).DeepCopyInto(out.(*CarpStatus)) - return nil - }, InType: reflect.TypeOf(&CarpStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Carp) DeepCopyInto(out *Carp) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD index 7e100d4fa..72add7598 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD @@ -10,7 +10,6 @@ go_test( name = "go_default_test", srcs = [ "converter_test.go", - "deep_copy_test.go", "helper_test.go", ], importpath = "k8s.io/apimachinery/pkg/conversion", @@ -25,7 +24,6 @@ go_test( go_library( name = "go_default_library", srcs = [ - "cloner.go", "converter.go", "deep_equal.go", "doc.go", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/cloner.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/cloner.go deleted file mode 100644 index c5dec1f31..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/cloner.go +++ /dev/null @@ -1,249 +0,0 @@ -/* -Copyright 2014 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 conversion - -import ( - "fmt" - "reflect" -) - -// Cloner knows how to copy one type to another. -type Cloner struct { - // Map from the type to a function which can do the deep copy. - deepCopyFuncs map[reflect.Type]reflect.Value - generatedDeepCopyFuncs map[reflect.Type]func(in interface{}, out interface{}, c *Cloner) error -} - -// NewCloner creates a new Cloner object. -func NewCloner() *Cloner { - c := &Cloner{ - deepCopyFuncs: map[reflect.Type]reflect.Value{}, - generatedDeepCopyFuncs: map[reflect.Type]func(in interface{}, out interface{}, c *Cloner) error{}, - } - if err := c.RegisterDeepCopyFunc(byteSliceDeepCopy); err != nil { - // If one of the deep-copy functions is malformed, detect it immediately. - panic(err) - } - return c -} - -// Prevent recursing into every byte... -func byteSliceDeepCopy(in *[]byte, out *[]byte, c *Cloner) error { - if *in != nil { - *out = make([]byte, len(*in)) - copy(*out, *in) - } else { - *out = nil - } - return nil -} - -// Verifies whether a deep-copy function has a correct signature. -func verifyDeepCopyFunctionSignature(ft reflect.Type) error { - if ft.Kind() != reflect.Func { - return fmt.Errorf("expected func, got: %v", ft) - } - if ft.NumIn() != 3 { - return fmt.Errorf("expected three 'in' params, got %v", ft) - } - if ft.NumOut() != 1 { - return fmt.Errorf("expected one 'out' param, got %v", ft) - } - if ft.In(0).Kind() != reflect.Ptr { - return fmt.Errorf("expected pointer arg for 'in' param 0, got: %v", ft) - } - if ft.In(1) != ft.In(0) { - return fmt.Errorf("expected 'in' param 0 the same as param 1, got: %v", ft) - } - var forClonerType Cloner - if expected := reflect.TypeOf(&forClonerType); ft.In(2) != expected { - return fmt.Errorf("expected '%v' arg for 'in' param 2, got: '%v'", expected, ft.In(2)) - } - var forErrorType error - // This convolution is necessary, otherwise TypeOf picks up on the fact - // that forErrorType is nil - errorType := reflect.TypeOf(&forErrorType).Elem() - if ft.Out(0) != errorType { - return fmt.Errorf("expected error return, got: %v", ft) - } - return nil -} - -// RegisterGeneratedDeepCopyFunc registers a copying func with the Cloner. -// deepCopyFunc must take three parameters: a type input, a pointer to a -// type output, and a pointer to Cloner. It should return an error. -// -// Example: -// c.RegisterGeneratedDeepCopyFunc( -// func(in Pod, out *Pod, c *Cloner) error { -// // deep copy logic... -// return nil -// }) -func (c *Cloner) RegisterDeepCopyFunc(deepCopyFunc interface{}) error { - fv := reflect.ValueOf(deepCopyFunc) - ft := fv.Type() - if err := verifyDeepCopyFunctionSignature(ft); err != nil { - return err - } - c.deepCopyFuncs[ft.In(0)] = fv - return nil -} - -// GeneratedDeepCopyFunc bundles an untyped generated deep-copy function of a type -// with a reflection type object used as a key to lookup the deep-copy function. -type GeneratedDeepCopyFunc struct { - Fn func(in interface{}, out interface{}, c *Cloner) error - InType reflect.Type -} - -// Similar to RegisterDeepCopyFunc, but registers deep copy function that were -// automatically generated. -func (c *Cloner) RegisterGeneratedDeepCopyFunc(fn GeneratedDeepCopyFunc) error { - c.generatedDeepCopyFuncs[fn.InType] = fn.Fn - return nil -} - -// DeepCopy will perform a deep copy of a given object. -func (c *Cloner) DeepCopy(in interface{}) (interface{}, error) { - // Can be invalid if we run DeepCopy(X) where X is a nil interface type. - // For example, we get an invalid value when someone tries to deep-copy - // a nil labels.Selector. - // This does not occur if X is nil and is a pointer to a concrete type. - if in == nil { - return nil, nil - } - inValue := reflect.ValueOf(in) - outValue, err := c.deepCopy(inValue) - if err != nil { - return nil, err - } - return outValue.Interface(), nil -} - -func (c *Cloner) deepCopy(src reflect.Value) (reflect.Value, error) { - inType := src.Type() - - switch src.Kind() { - case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice: - if src.IsNil() { - return src, nil - } - } - - if fv, ok := c.deepCopyFuncs[inType]; ok { - return c.customDeepCopy(src, fv) - } - if fv, ok := c.generatedDeepCopyFuncs[inType]; ok { - var outValue reflect.Value - outValue = reflect.New(inType.Elem()) - err := fv(src.Interface(), outValue.Interface(), c) - return outValue, err - } - return c.defaultDeepCopy(src) -} - -func (c *Cloner) customDeepCopy(src, fv reflect.Value) (reflect.Value, error) { - outValue := reflect.New(src.Type().Elem()) - args := []reflect.Value{src, outValue, reflect.ValueOf(c)} - result := fv.Call(args)[0].Interface() - // This convolution is necessary because nil interfaces won't convert - // to error. - if result == nil { - return outValue, nil - } - return outValue, result.(error) -} - -func (c *Cloner) defaultDeepCopy(src reflect.Value) (reflect.Value, error) { - switch src.Kind() { - case reflect.Chan, reflect.Func, reflect.UnsafePointer, reflect.Uintptr: - return src, fmt.Errorf("cannot deep copy kind: %s", src.Kind()) - case reflect.Array: - dst := reflect.New(src.Type()) - for i := 0; i < src.Len(); i++ { - copyVal, err := c.deepCopy(src.Index(i)) - if err != nil { - return src, err - } - dst.Elem().Index(i).Set(copyVal) - } - return dst.Elem(), nil - case reflect.Interface: - if src.IsNil() { - return src, nil - } - return c.deepCopy(src.Elem()) - case reflect.Map: - if src.IsNil() { - return src, nil - } - dst := reflect.MakeMap(src.Type()) - for _, k := range src.MapKeys() { - copyVal, err := c.deepCopy(src.MapIndex(k)) - if err != nil { - return src, err - } - dst.SetMapIndex(k, copyVal) - } - return dst, nil - case reflect.Ptr: - if src.IsNil() { - return src, nil - } - dst := reflect.New(src.Type().Elem()) - copyVal, err := c.deepCopy(src.Elem()) - if err != nil { - return src, err - } - dst.Elem().Set(copyVal) - return dst, nil - case reflect.Slice: - if src.IsNil() { - return src, nil - } - dst := reflect.MakeSlice(src.Type(), 0, src.Len()) - for i := 0; i < src.Len(); i++ { - copyVal, err := c.deepCopy(src.Index(i)) - if err != nil { - return src, err - } - dst = reflect.Append(dst, copyVal) - } - return dst, nil - case reflect.Struct: - dst := reflect.New(src.Type()) - for i := 0; i < src.NumField(); i++ { - if !dst.Elem().Field(i).CanSet() { - // Can't set private fields. At this point, the - // best we can do is a shallow copy. For - // example, time.Time is a value type with - // private members that can be shallow copied. - return src, nil - } - copyVal, err := c.deepCopy(src.Field(i)) - if err != nil { - return src, err - } - dst.Elem().Field(i).Set(copyVal) - } - return dst.Elem(), nil - - default: - // Value types like numbers, booleans, and strings. - return src, nil - } -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/deep_copy_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/deep_copy_test.go deleted file mode 100644 index fdef856f2..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/deep_copy_test.go +++ /dev/null @@ -1,161 +0,0 @@ -/* -Copyright 2015 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 conversion - -import ( - "math/rand" - "reflect" - "testing" - - "github.com/google/gofuzz" -) - -func TestDeepCopy(t *testing.T) { - semantic := EqualitiesOrDie() - f := fuzz.New().NilChance(.5).NumElements(0, 100) - table := []interface{}{ - map[string]string{}, - int(5), - "hello world", - struct { - A, B, C struct { - D map[string]int - } - X []int - Y []byte - }{}, - } - for _, obj := range table { - obj2, err := NewCloner().DeepCopy(obj) - if err != nil { - t.Errorf("Error: couldn't copy %#v", obj) - continue - } - if e, a := obj, obj2; !semantic.DeepEqual(e, a) { - t.Errorf("expected %#v\ngot %#v", e, a) - } - - obj3 := reflect.New(reflect.TypeOf(obj)).Interface() - f.Fuzz(obj3) - obj4, err := NewCloner().DeepCopy(obj3) - if err != nil { - t.Errorf("Error: couldn't copy %#v", obj) - continue - } - if e, a := obj3, obj4; !semantic.DeepEqual(e, a) { - t.Errorf("expected %#v\ngot %#v", e, a) - } - f.Fuzz(obj3) - } -} - -func copyOrDie(t *testing.T, in interface{}) interface{} { - out, err := NewCloner().DeepCopy(in) - if err != nil { - t.Fatalf("DeepCopy failed: %#q: %v", in, err) - } - return out -} - -func TestDeepCopySliceSeparate(t *testing.T) { - x := []int{5} - y := copyOrDie(t, x).([]int) - x[0] = 3 - if y[0] == 3 { - t.Errorf("deep copy wasn't deep: %#q %#q", x, y) - } -} - -func TestDeepCopyArraySeparate(t *testing.T) { - x := [1]int{5} - y := copyOrDie(t, x).([1]int) - x[0] = 3 - if y[0] == 3 { - t.Errorf("deep copy wasn't deep: %#q %#q", x, y) - } -} - -func TestDeepCopyMapSeparate(t *testing.T) { - x := map[string]int{"foo": 5} - y := copyOrDie(t, x).(map[string]int) - x["foo"] = 3 - if y["foo"] == 3 { - t.Errorf("deep copy wasn't deep: %#q %#q", x, y) - } -} - -func TestDeepCopyPointerSeparate(t *testing.T) { - z := 5 - x := &z - y := copyOrDie(t, x).(*int) - *x = 3 - if *y == 3 { - t.Errorf("deep copy wasn't deep: %#q %#q", x, y) - } -} - -func TestDeepCopyStruct(t *testing.T) { - type Foo struct { - A int - } - type Bar struct { - Foo - F *Foo - } - a := &Bar{Foo{1}, &Foo{2}} - b := copyOrDie(t, a).(*Bar) - a.A = 3 - a.F.A = 4 - - if b.A != 1 || b.F.A != 2 { - t.Errorf("deep copy wasn't deep: %#v, %#v", a, b) - } -} - -var result interface{} - -func BenchmarkDeepCopy(b *testing.B) { - table := []interface{}{ - map[string]string{}, - int(5), - "hello world", - struct { - A, B, C struct { - D map[string]int - } - X []int - Y []byte - }{}, - } - - f := fuzz.New().RandSource(rand.NewSource(1)).NilChance(.5).NumElements(0, 100) - for i := range table { - out := table[i] - obj := reflect.New(reflect.TypeOf(out)).Interface() - f.Fuzz(obj) - table[i] = obj - } - - b.ResetTimer() - var r interface{} - for i := 0; i < b.N; i++ { - for j := range table { - r, _ = NewCloner().DeepCopy(table[j]) - } - } - result = r -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter.go index d0e625d2c..077d173d8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter.go @@ -426,21 +426,23 @@ func (c *converterImpl) ToUnstructured(obj interface{}) (map[string]interface{}, // DeepCopyJSON deep copies the passed value, assuming it is a valid JSON representation i.e. only contains // types produced by json.Unmarshal(). func DeepCopyJSON(x map[string]interface{}) map[string]interface{} { - return deepCopyJSON(x).(map[string]interface{}) + return DeepCopyJSONValue(x).(map[string]interface{}) } -func deepCopyJSON(x interface{}) interface{} { +// DeepCopyJSONValue deep copies the passed value, assuming it is a valid JSON representation i.e. only contains +// types produced by json.Unmarshal(). +func DeepCopyJSONValue(x interface{}) interface{} { switch x := x.(type) { case map[string]interface{}: clone := make(map[string]interface{}, len(x)) for k, v := range x { - clone[k] = deepCopyJSON(v) + clone[k] = DeepCopyJSONValue(v) } return clone case []interface{}: clone := make([]interface{}, len(x)) for i, v := range x { - clone[i] = deepCopyJSON(v) + clone[i] = DeepCopyJSONValue(v) } return clone case string, int64, bool, float64, nil, encodingjson.Number: diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/BUILD index 3612719d3..fba6648e0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/BUILD @@ -31,7 +31,6 @@ go_library( importpath = "k8s.io/apimachinery/pkg/labels", deps = [ "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/selection:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/selector.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/selector.go index ac123033a..b301b4284 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/selector.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/selector.go @@ -550,7 +550,7 @@ func (p *Parser) lookahead(context ParserContext) (Token, string) { return tok, lit } -// consume returns current token and string. Increments the the position +// consume returns current token and string. Increments the position func (p *Parser) consume(context ParserContext) (Token, string) { p.position++ tok, lit := p.scannedItems[p.position-1].tok, p.scannedItems[p.position-1].literal diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go index 80ba3fb75..823ef32a3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go @@ -20,23 +20,6 @@ limitations under the License. package labels -import ( - conversion "k8s.io/apimachinery/pkg/conversion" - reflect "reflect" -) - -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Requirement).DeepCopyInto(out.(*Requirement)) - return nil - }, InType: reflect.TypeOf(&Requirement{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Requirement) DeepCopyInto(out *Requirement) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/error.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/error.go index 21a355707..86b24840f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/error.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/error.go @@ -94,8 +94,6 @@ type missingVersionErr struct { data string } -// IsMissingVersion returns true if the error indicates that the provided object -// is missing a 'Version' field. func NewMissingVersionErr(data string) error { return &missingVersionErr{data} } @@ -104,6 +102,8 @@ func (k *missingVersionErr) Error() string { return fmt.Sprintf("Object 'apiVersion' is missing in '%s'", k.data) } +// IsMissingVersion returns true if the error indicates that the provided object +// is missing a 'Version' field. func IsMissingVersion(err error) bool { if err == nil { return false diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go index c597fcf99..3be721ca9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/scheme.go @@ -68,10 +68,6 @@ type Scheme struct { // converter stores all registered conversion functions. It also has // default coverting behavior. converter *conversion.Converter - - // cloner stores all registered copy functions. It also has default - // deep copy behavior. - cloner *conversion.Cloner } // Function to convert a field selector to internal representation. @@ -80,11 +76,10 @@ type FieldLabelConversionFunc func(label, value string) (internalLabel, internal // NewScheme creates a new Scheme. This scheme is pluggable by default. func NewScheme() *Scheme { s := &Scheme{ - gvkToType: map[schema.GroupVersionKind]reflect.Type{}, - typeToGVK: map[reflect.Type][]schema.GroupVersionKind{}, - unversionedTypes: map[reflect.Type]schema.GroupVersionKind{}, - unversionedKinds: map[string]reflect.Type{}, - cloner: conversion.NewCloner(), + gvkToType: map[schema.GroupVersionKind]reflect.Type{}, + typeToGVK: map[reflect.Type][]schema.GroupVersionKind{}, + unversionedTypes: map[reflect.Type]schema.GroupVersionKind{}, + unversionedKinds: map[string]reflect.Type{}, fieldLabelConversionFuncs: map[string]map[string]FieldLabelConversionFunc{}, defaulterFuncs: map[reflect.Type]func(interface{}){}, } @@ -354,29 +349,6 @@ func (s *Scheme) AddGeneratedConversionFuncs(conversionFuncs ...interface{}) err return nil } -// AddDeepCopyFuncs adds a function to the list of deep-copy functions. -// For the expected format of deep-copy function, see the comment for -// Copier.RegisterDeepCopyFunction. -func (s *Scheme) AddDeepCopyFuncs(deepCopyFuncs ...interface{}) error { - for _, f := range deepCopyFuncs { - if err := s.cloner.RegisterDeepCopyFunc(f); err != nil { - return err - } - } - return nil -} - -// Similar to AddDeepCopyFuncs, but registers deep-copy functions that were -// automatically generated. -func (s *Scheme) AddGeneratedDeepCopyFuncs(deepCopyFuncs ...conversion.GeneratedDeepCopyFunc) error { - for _, fn := range deepCopyFuncs { - if err := s.cloner.RegisterGeneratedDeepCopyFunc(fn); err != nil { - return err - } - } - return nil -} - // AddFieldLabelConversionFunc adds a conversion function to convert field selectors // of the given kind from the given version to internal version representation. func (s *Scheme) AddFieldLabelConversionFunc(version, kind string, conversionFunc FieldLabelConversionFunc) error { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD index fce9bea29..fbc00c7ca 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD @@ -14,7 +14,6 @@ go_library( ], importpath = "k8s.io/apimachinery/pkg/runtime/serializer/testing", deps = [ - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/zz_generated.deepcopy.go index 2a71e4b5f..1385a8c56 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/zz_generated.deepcopy.go @@ -21,39 +21,9 @@ limitations under the License. package testing import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalInternalSame).DeepCopyInto(out.(*ExternalInternalSame)) - return nil - }, InType: reflect.TypeOf(&ExternalInternalSame{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalTestType1).DeepCopyInto(out.(*ExternalTestType1)) - return nil - }, InType: reflect.TypeOf(&ExternalTestType1{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalTestType2).DeepCopyInto(out.(*ExternalTestType2)) - return nil - }, InType: reflect.TypeOf(&ExternalTestType2{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestType1).DeepCopyInto(out.(*TestType1)) - return nil - }, InType: reflect.TypeOf(&TestType1{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestType2).DeepCopyInto(out.(*TestType2)) - return nil - }, InType: reflect.TypeOf(&TestType2{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ExternalInternalSame) DeepCopyInto(out *ExternalInternalSame) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD index f3fbe2e9a..a03585c86 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD @@ -14,7 +14,6 @@ go_library( ], importpath = "k8s.io/apimachinery/pkg/runtime/testing", deps = [ - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/testing/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/testing/zz_generated.deepcopy.go index 8cacbc8b4..569903b51 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/testing/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/testing/zz_generated.deepcopy.go @@ -21,103 +21,9 @@ limitations under the License. package testing import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EmbeddedTest).DeepCopyInto(out.(*EmbeddedTest)) - return nil - }, InType: reflect.TypeOf(&EmbeddedTest{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EmbeddedTestExternal).DeepCopyInto(out.(*EmbeddedTestExternal)) - return nil - }, InType: reflect.TypeOf(&EmbeddedTestExternal{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtensionA).DeepCopyInto(out.(*ExtensionA)) - return nil - }, InType: reflect.TypeOf(&ExtensionA{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExtensionB).DeepCopyInto(out.(*ExtensionB)) - return nil - }, InType: reflect.TypeOf(&ExtensionB{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalComplex).DeepCopyInto(out.(*ExternalComplex)) - return nil - }, InType: reflect.TypeOf(&ExternalComplex{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalExtensionType).DeepCopyInto(out.(*ExternalExtensionType)) - return nil - }, InType: reflect.TypeOf(&ExternalExtensionType{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalInternalSame).DeepCopyInto(out.(*ExternalInternalSame)) - return nil - }, InType: reflect.TypeOf(&ExternalInternalSame{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalOptionalExtensionType).DeepCopyInto(out.(*ExternalOptionalExtensionType)) - return nil - }, InType: reflect.TypeOf(&ExternalOptionalExtensionType{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalSimple).DeepCopyInto(out.(*ExternalSimple)) - return nil - }, InType: reflect.TypeOf(&ExternalSimple{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalTestType1).DeepCopyInto(out.(*ExternalTestType1)) - return nil - }, InType: reflect.TypeOf(&ExternalTestType1{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ExternalTestType2).DeepCopyInto(out.(*ExternalTestType2)) - return nil - }, InType: reflect.TypeOf(&ExternalTestType2{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InternalComplex).DeepCopyInto(out.(*InternalComplex)) - return nil - }, InType: reflect.TypeOf(&InternalComplex{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InternalExtensionType).DeepCopyInto(out.(*InternalExtensionType)) - return nil - }, InType: reflect.TypeOf(&InternalExtensionType{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InternalOptionalExtensionType).DeepCopyInto(out.(*InternalOptionalExtensionType)) - return nil - }, InType: reflect.TypeOf(&InternalOptionalExtensionType{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*InternalSimple).DeepCopyInto(out.(*InternalSimple)) - return nil - }, InType: reflect.TypeOf(&InternalSimple{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectTest).DeepCopyInto(out.(*ObjectTest)) - return nil - }, InType: reflect.TypeOf(&ObjectTest{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectTestExternal).DeepCopyInto(out.(*ObjectTestExternal)) - return nil - }, InType: reflect.TypeOf(&ObjectTestExternal{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestType1).DeepCopyInto(out.(*TestType1)) - return nil - }, InType: reflect.TypeOf(&TestType1{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestType2).DeepCopyInto(out.(*TestType2)) - return nil - }, InType: reflect.TypeOf(&TestType2{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*UnknownType).DeepCopyInto(out.(*UnknownType)) - return nil - }, InType: reflect.TypeOf(&UnknownType{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*UnversionedType).DeepCopyInto(out.(*UnversionedType)) - return nil - }, InType: reflect.TypeOf(&UnversionedType{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EmbeddedTest) DeepCopyInto(out *EmbeddedTest) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go index d347461ac..929c67a9d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go @@ -20,31 +20,6 @@ limitations under the License. package runtime -import ( - conversion "k8s.io/apimachinery/pkg/conversion" - reflect "reflect" -) - -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RawExtension).DeepCopyInto(out.(*RawExtension)) - return nil - }, InType: reflect.TypeOf(&RawExtension{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Unknown).DeepCopyInto(out.(*Unknown)) - return nil - }, InType: reflect.TypeOf(&Unknown{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*VersionedObjects).DeepCopyInto(out.(*VersionedObjects)) - return nil - }, InType: reflect.TypeOf(&VersionedObjects{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RawExtension) DeepCopyInto(out *RawExtension) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/BUILD index 314f8c9d6..4af395d3c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/BUILD @@ -46,7 +46,6 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/testapigroup:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/testapigroup/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/apis_meta_v1_unstructed_unstructure_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/apis_meta_v1_unstructed_unstructure_test.go index 338206d42..08179540e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/apis_meta_v1_unstructed_unstructure_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/apis_meta_v1_unstructed_unstructure_test.go @@ -84,6 +84,7 @@ func TestDecode(t *testing.T) { json: []byte(`{"apiVersion": "test", "kind": "test_list", "items": []}`), want: &unstructured.UnstructuredList{ Object: map[string]interface{}{"apiVersion": "test", "kind": "test_list"}, + Items: []unstructured.Unstructured{}, }, }, { @@ -147,14 +148,14 @@ func TestUnstructuredGetters(t *testing.T) { "annotations": map[string]interface{}{ "test_annotation": "test_value", }, - "ownerReferences": []map[string]interface{}{ - { + "ownerReferences": []interface{}{ + map[string]interface{}{ "kind": "Pod", "name": "poda", "apiVersion": "v1", "uid": "1", }, - { + map[string]interface{}{ "kind": "Pod", "name": "podb", "apiVersion": "v1", @@ -273,7 +274,7 @@ func TestUnstructuredSetters(t *testing.T) { "selfLink": "test_selfLink", "creationTimestamp": "2009-11-10T23:00:00Z", "deletionTimestamp": "2010-11-10T23:00:00Z", - "deletionGracePeriodSeconds": &ten, + "deletionGracePeriodSeconds": ten, "generation": ten, "labels": map[string]interface{}{ "test_label": "test_value", @@ -281,14 +282,14 @@ func TestUnstructuredSetters(t *testing.T) { "annotations": map[string]interface{}{ "test_annotation": "test_value", }, - "ownerReferences": []map[string]interface{}{ - { + "ownerReferences": []interface{}{ + map[string]interface{}{ "kind": "Pod", "name": "poda", "apiVersion": "v1", "uid": "1", }, - { + map[string]interface{}{ "kind": "Pod", "name": "podb", "apiVersion": "v1", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/zz_generated.deepcopy.go index c258ff7dd..30cf84983 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/test/zz_generated.deepcopy.go @@ -21,27 +21,9 @@ limitations under the License. package test import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*List).DeepCopyInto(out.(*List)) - return nil - }, InType: reflect.TypeOf(&List{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ListV1).DeepCopyInto(out.(*ListV1)) - return nil - }, InType: reflect.TypeOf(&ListV1{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *List) DeepCopyInto(out *List) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/roundtripper.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/roundtripper.go index 12bef075d..d2d3ad8cb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/roundtripper.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/roundtripper.go @@ -110,7 +110,7 @@ func (s *SpdyRoundTripper) Dial(req *http.Request) (net.Conn, error) { func (s *SpdyRoundTripper) dial(req *http.Request) (net.Conn, error) { proxier := s.proxier if proxier == nil { - proxier = http.ProxyFromEnvironment + proxier = utilnet.NewProxierWithNoProxyCIDR(http.ProxyFromEnvironment) } proxyURL, err := proxier(req) if err != nil { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/errors.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/errors.go index ac3c1e8cf..16501d5af 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/errors.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/errors.go @@ -29,6 +29,7 @@ var ( ErrBadPatchFormatForRetainKeys = errors.New("invalid patch format of retainKeys") ErrBadPatchFormatForSetElementOrderList = errors.New("invalid patch format of setElementOrder list") ErrPatchContentNotMatchRetainKeys = errors.New("patch content doesn't match retainKeys list") + ErrUnsupportedStrategicMergePatchFormat = errors.New("strategic merge patch format is not supported") ) func ErrNoMergeKey(m map[string]interface{}, k string) error { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/net/http.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/net/http.go index b544a60a5..bc2a531b9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/net/http.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/net/http.go @@ -276,17 +276,7 @@ func NewProxierWithNoProxyCIDR(delegate func(req *http.Request) (*url.URL, error } return func(req *http.Request) (*url.URL, error) { - host := req.URL.Host - // for some urls, the Host is already the host, not the host:port - if net.ParseIP(host) == nil { - var err error - host, _, err = net.SplitHostPort(req.URL.Host) - if err != nil { - return delegate(req) - } - } - - ip := net.ParseIP(host) + ip := net.ParseIP(req.URL.Hostname()) if ip == nil { return delegate(req) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go index 8f5dd9cdf..98bd64971 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go @@ -172,6 +172,30 @@ func TestProxierWithNoProxyCIDR(t *testing.T) { url: "https://192.168.143.1:8443/api", expectedDelegated: false, }, + { + name: "IPv6 cidr", + noProxy: "2001:db8::/48", + url: "https://[2001:db8::1]/api", + expectedDelegated: false, + }, + { + name: "IPv6+port cidr", + noProxy: "2001:db8::/48", + url: "https://[2001:db8::1]:8443/api", + expectedDelegated: false, + }, + { + name: "IPv6, not matching cidr", + noProxy: "2001:db8::/48", + url: "https://[2001:db8:1::1]/api", + expectedDelegated: true, + }, + { + name: "IPv6+port, not matching cidr", + noProxy: "2001:db8::/48", + url: "https://[2001:db8:1::1]:8443/api", + expectedDelegated: true, + }, } for _, test := range testCases { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport.go index 5bf229697..6c34ab524 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport.go @@ -109,7 +109,7 @@ func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { } if redirect := resp.Header.Get("Location"); redirect != "" { - resp.Header.Set("Location", t.rewriteURL(redirect, req.URL)) + resp.Header.Set("Location", t.rewriteURL(redirect, req.URL, req.Host)) return resp, nil } @@ -131,21 +131,39 @@ func (rt *Transport) WrappedRoundTripper() http.RoundTripper { // rewriteURL rewrites a single URL to go through the proxy, if the URL refers // to the same host as sourceURL, which is the page on which the target URL -// occurred. If any error occurs (e.g. parsing), it returns targetURL. -func (t *Transport) rewriteURL(targetURL string, sourceURL *url.URL) string { +// occurred, or if the URL matches the sourceRequestHost. If any error occurs (e.g. +// parsing), it returns targetURL. +func (t *Transport) rewriteURL(targetURL string, sourceURL *url.URL, sourceRequestHost string) string { url, err := url.Parse(targetURL) if err != nil { return targetURL } - isDifferentHost := url.Host != "" && url.Host != sourceURL.Host + // Example: + // When API server processes a proxy request to a service (e.g. /api/v1/namespace/foo/service/bar/proxy/), + // the sourceURL.Host (i.e. req.URL.Host) is the endpoint IP address of the service. The + // sourceRequestHost (i.e. req.Host) is the Host header that specifies the host on which the + // URL is sought, which can be different from sourceURL.Host. For example, if user sends the + // request through "kubectl proxy" locally (i.e. localhost:8001/api/v1/namespace/foo/service/bar/proxy/), + // sourceRequestHost is "localhost:8001". + // + // If the service's response URL contains non-empty host, and url.Host is equal to either sourceURL.Host + // or sourceRequestHost, we should not consider the returned URL to be a completely different host. + // It's the API server's responsibility to rewrite a same-host-and-absolute-path URL and append the + // necessary URL prefix (i.e. /api/v1/namespace/foo/service/bar/proxy/). + isDifferentHost := url.Host != "" && url.Host != sourceURL.Host && url.Host != sourceRequestHost isRelative := !strings.HasPrefix(url.Path, "/") if isDifferentHost || isRelative { return targetURL } - url.Scheme = t.Scheme - url.Host = t.Host + // Do not rewrite scheme and host if the Transport has empty scheme and host + // when targetURL already contains the sourceRequestHost + if !(url.Host == sourceRequestHost && t.Scheme == "" && t.Host == "") { + url.Scheme = t.Scheme + url.Host = t.Host + } + origPath := url.Path // Do not rewrite URL if the sourceURL already contains the necessary prefix. if strings.HasPrefix(url.Path, t.PathPrepend) { @@ -223,7 +241,7 @@ func (t *Transport) rewriteResponse(req *http.Request, resp *http.Response) (*ht } urlRewriter := func(targetUrl string) string { - return t.rewriteURL(targetUrl, req.URL) + return t.rewriteURL(targetUrl, req.URL, req.Host) } err := rewriteHTML(reader, writer, urlRewriter) if err != nil { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport_test.go index f32bcf69e..e54500784 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/proxy/transport_test.go @@ -53,6 +53,9 @@ func TestProxyTransport(t *testing.T) { Host: "foo.com", PathPrepend: "/proxy/node/node1:10250", } + emptyHostAndSchemeTransport := &Transport{ + PathPrepend: "/proxy/node/node1:10250", + } type Item struct { input string sourceURL string @@ -62,6 +65,7 @@ func TestProxyTransport(t *testing.T) { forwardedURI string redirect string redirectWant string + reqHost string } table := map[string]Item{ @@ -158,6 +162,14 @@ func TestProxyTransport(t *testing.T) { redirectWant: "http://example.com/redirected/target/", forwardedURI: "/proxy/node/node1:10250/redirect", }, + "redirect abs use reqHost no host no scheme": { + sourceURL: "http://mynode.com/redirect", + transport: emptyHostAndSchemeTransport, + redirect: "http://10.0.0.1:8001/redirected/target/", + redirectWant: "http://10.0.0.1:8001/proxy/node/node1:10250/redirected/target/", + forwardedURI: "/proxy/node/node1:10250/redirect", + reqHost: "10.0.0.1:8001", + }, "source contains the redirect already": { input: `
    kubelet.loggoogle.log
    `, sourceURL: "http://foo.com/logs/log.log", @@ -233,6 +245,9 @@ func TestProxyTransport(t *testing.T) { t.Errorf("%v: Unexpected error: %v", name, err) return } + if item.reqHost != "" { + req.Host = item.reqHost + } resp, err := item.transport.RoundTrip(req) if err != nil { t.Errorf("%v: Unexpected error: %v", name, err) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/runtime/runtime.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/runtime/runtime.go index 748174e19..442dde7df 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/runtime/runtime.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/runtime/runtime.go @@ -128,7 +128,9 @@ func (r *rudimentaryErrorBackoff) OnError(error) { r.lastErrorTimeLock.Lock() defer r.lastErrorTimeLock.Unlock() d := time.Since(r.lastErrorTime) - if d < r.minPeriod { + if d < r.minPeriod && d >= 0 { + // If the time moves backwards for any reason, do nothing + // TODO: remove check "d >= 0" after go 1.8 is no longer supported time.Sleep(r.minPeriod - d) } r.lastErrorTime = time.Now() diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD index 45770861e..cde41b304 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD @@ -25,6 +25,7 @@ go_library( srcs = ["patch.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", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go index 8884c738e..102a1c666 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go @@ -22,6 +22,7 @@ import ( "sort" "strings" + "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" @@ -515,6 +516,9 @@ func normalizeSliceOrder(toSort, order []interface{}, mergeKey string, kind refl return nil, err } toSort, toDelete, err = extractToDeleteItems(toSort) + if err != nil { + return nil, err + } } sort.SliceStable(toSort, func(i, j int) bool { @@ -554,7 +558,13 @@ func diffLists(original, modified []interface{}, t reflect.Type, mergeKey string switch kind { case reflect.Map: patchList, deleteList, err = diffListsOfMaps(original, modified, t, mergeKey, diffOptions) + if err != nil { + return nil, nil, nil, err + } patchList, err = normalizeSliceOrder(patchList, modified, mergeKey, kind) + if err != nil { + return nil, nil, nil, err + } orderSame, err := isOrderSame(original, modified, mergeKey) if err != nil { return nil, nil, nil, err @@ -580,6 +590,9 @@ func diffLists(original, modified []interface{}, t reflect.Type, mergeKey string return nil, nil, nil, mergepatch.ErrNoListOfLists default: patchList, deleteList, err = diffListsOfScalars(original, modified, diffOptions) + if err != nil { + return nil, nil, nil, err + } patchList, err = normalizeSliceOrder(patchList, modified, mergeKey, kind) // generate the setElementOrder list when there are content changes or order changes if diffOptions.SetElementOrder && ((!diffOptions.IgnoreDeletions && len(deleteList) > 0) || @@ -816,7 +829,7 @@ func handleUnmarshal(j []byte) (map[string]interface{}, error) { return m, nil } -// StrategicMergePatch applies a strategic merge patch. The original and patch documents +// StrategicMergeMapPatch applies a strategic merge patch. The original and patch documents // must be JSONMap. A patch can be created from an original and modified document by // calling CreateTwoWayMergeMapPatch. // Warning: the original and patch JSONMap objects are mutated by this function and should not be reused. @@ -825,6 +838,17 @@ func StrategicMergeMapPatch(original, patch JSONMap, dataStruct interface{}) (JS if err != nil { return nil, err } + + // We need the go struct tags `patchMergeKey` and `patchStrategy` for fields that support a strategic merge patch. + // For native resources, we can easily figure out these tags since we know the fields. + + // Because custom resources are decoded as Unstructured and because we're missing the metadata about how to handle + // each field in a strategic merge patch, we can't find the go struct tags. Hence, we can't easily do a strategic merge + // for custom resources. So we should fail fast and return an error. + if _, ok := dataStruct.(*unstructured.Unstructured); ok { + return nil, mergepatch.ErrUnsupportedStrategicMergePatchFormat + } + mergeOptions := MergeOptions{ MergeParallelList: true, IgnoreUnmatchedNulls: true, @@ -1054,7 +1078,7 @@ func applyRetainKeysDirective(original, patch map[string]interface{}, options Me // Then, sort them by the relative order in setElementOrder, patch list and live list. // 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/preserve-order-in-strategic-merge-patch.md +// 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 { for key, patchV := range patch { // Do nothing if there is no ordering directive @@ -1520,7 +1544,7 @@ func findMapInSliceBasedOnKeyValue(m []interface{}, key string, value interface{ for k, v := range m { typedV, ok := v.(map[string]interface{}) if !ok { - return nil, 0, false, fmt.Errorf("value for key %v is not a map.", k) + return nil, 0, false, fmt.Errorf("value for key %v is not a map", k) } valueToMatch, ok := typedV[key] @@ -1540,7 +1564,7 @@ func sortMergeListsByName(mapJSON []byte, dataStruct interface{}) ([]byte, error var m map[string]interface{} err := json.Unmarshal(mapJSON, &m) if err != nil { - return nil, err + return nil, mergepatch.ErrBadJSONDoc } newM, err := sortMergeListsByNameMap(m, reflect.TypeOf(dataStruct)) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/BUILD new file mode 100644 index 000000000..a35c52010 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "waitgroup.go", + ], + importpath = "k8s.io/apimachinery/pkg/util/waitgroup", + visibility = ["//visibility:public"], +) + +go_test( + name = "go_default_test", + srcs = ["waitgroup_test.go"], + importpath = "k8s.io/apimachinery/pkg/util/waitgroup", + library = ":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/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/doc.go new file mode 100644 index 000000000..a6f29cd7c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/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 waitgroup implements SafeWaitGroup wrap of sync.WaitGroup. +// Add with positive delta when waiting will fail, to prevent sync.WaitGroup race issue. +package waitgroup // import "k8s.io/apimachinery/pkg/util/waitgroup" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/waitgroup.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/waitgroup.go new file mode 100644 index 000000000..488f56340 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/waitgroup.go @@ -0,0 +1,57 @@ +/* +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 waitgroup + +import ( + "fmt" + "sync" +) + +// SafeWaitGroup must not be copied after first use. +type SafeWaitGroup struct { + wg sync.WaitGroup + mu sync.RWMutex + // wait indicate whether Wait is called, if true, + // then any Add with positive delta will return error. + wait bool +} + +// Add adds delta, which may be negative, similar to sync.WaitGroup. +// If Add with a positive delta happens after Wait, it will return error, +// which prevent unsafe Add. +func (wg *SafeWaitGroup) Add(delta int) error { + wg.mu.RLock() + defer wg.mu.RUnlock() + if wg.wait && delta > 0 { + return fmt.Errorf("add with postive delta after Wait is forbidden") + } + wg.wg.Add(delta) + return nil +} + +// Done decrements the WaitGroup counter. +func (wg *SafeWaitGroup) Done() { + wg.wg.Done() +} + +// Wait blocks until the WaitGroup counter is zero. +func (wg *SafeWaitGroup) Wait() { + wg.mu.Lock() + wg.wait = true + wg.mu.Unlock() + wg.wg.Wait() +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/waitgroup_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/waitgroup_test.go new file mode 100644 index 000000000..b5b7557b8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/util/waitgroup/waitgroup_test.go @@ -0,0 +1,60 @@ +/* +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 waitgroup test cases reference golang sync.WaitGroup https://golang.org/src/sync/waitgroup_test.go. +package waitgroup + +import ( + "testing" +) + +func TestWaitGroup(t *testing.T) { + wg1 := &SafeWaitGroup{} + wg2 := &SafeWaitGroup{} + n := 16 + wg1.Add(n) + wg2.Add(n) + exited := make(chan bool, n) + for i := 0; i != n; i++ { + go func(i int) { + wg1.Done() + wg2.Wait() + exited <- true + }(i) + } + wg1.Wait() + for i := 0; i != n; i++ { + select { + case <-exited: + t.Fatal("SafeWaitGroup released group too soon") + default: + } + wg2.Done() + } + for i := 0; i != n; i++ { + <-exited // Will block if barrier fails to unlock someone. + } +} + +func TestWaitGroupAddFail(t *testing.T) { + wg := &SafeWaitGroup{} + wg.Add(1) + wg.Done() + wg.Wait() + if err := wg.Add(1); err == nil { + t.Errorf("Should return error when add positive after Wait") + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/watch/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/watch/BUILD index da068f70d..3e850d2dd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/watch/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/watch/BUILD @@ -20,7 +20,6 @@ go_library( importpath = "k8s.io/apimachinery/pkg/watch", deps = [ "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go index 322923d4a..ab590e135 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go @@ -20,23 +20,6 @@ limitations under the License. package watch -import ( - conversion "k8s.io/apimachinery/pkg/conversion" - reflect "reflect" -) - -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Event).DeepCopyInto(out.(*Event)) - return nil - }, InType: reflect.TypeOf(&Event{})}, - } -} - // 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 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/Godeps/Godeps.json index 77de2ce1a..47229e602 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/apiserver", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "./..." @@ -360,27 +360,31 @@ }, { "ImportPath": "github.com/golang/protobuf/jsonpb", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/any", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/duration", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/struct", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/google/btree", @@ -404,31 +408,31 @@ }, { "ImportPath": "github.com/gophercloud/gophercloud", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/utils", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/pagination", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gregjones/httpcache", @@ -762,6 +766,10 @@ "ImportPath": "gopkg.in/yaml.v2", "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" }, + { + "ImportPath": "k8s.io/api/admission/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -858,6 +866,10 @@ "ImportPath": "k8s.io/api/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/api/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1070,6 +1082,10 @@ "ImportPath": "k8s.io/apimachinery/pkg/util/wait", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/waitgroup", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1238,6 +1254,10 @@ "ImportPath": "k8s.io/client-go/informers/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1442,6 +1462,14 @@ "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1/fake", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1530,6 +1558,10 @@ "ImportPath": "k8s.io/client-go/listers/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1608,19 +1640,19 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/client-go/discovery", @@ -1674,6 +1706,10 @@ "ImportPath": "k8s.io/client-go/tools/clientcmd", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/LICENSE b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/README.md new file mode 100644 index 000000000..96927ae70 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/README.md @@ -0,0 +1,30 @@ +# apiserver + +Generic library for building a Kubernetes aggregated API server. + + +## Purpose + +This library contains code to create Kubernetes aggregation server complete with delegated authentication and authorization, +`kubectl` compatible discovery information, optional admission chain, and versioned types. It's first consumers are +`k8s.io/kubernetes`, `k8s.io/kube-aggregator`, and `github.com/kubernetes-incubator/service-catalog`. + + +## Compatibility + +There are *NO compatibility guarantees* for this repository, yet. It is in direct support of Kubernetes, so branches +will track Kubernetes and be compatible with that repo. As we more cleanly separate the layers, we will review the +compatibility guarantee. We have a goal to make this easier to use in 2017. + + +## Where does it come from? + +`apiserver` is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apiserver. +Code changes are made in that location, merged into `k8s.io/kubernetes` and later synced here. + + +## Things you should *NOT* do + + 1. Directly modify any files under `pkg` in this repo. Those are driven from `k8s.io/kuberenetes/staging/src/k8s.io/apiserver`. + 2. Expect compatibility. This repo is changing quickly in direct support of + Kubernetes and the API isn't yet stable enough for API guarantees. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/BUILD index 2dba798d7..0567a2ac4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/BUILD @@ -12,10 +12,17 @@ go_test( "chain_test.go", "config_test.go", "errors_test.go", + "handler_test.go", + "metrics_test.go", + "testutil_test.go", ], importpath = "k8s.io/apiserver/pkg/admission", library = ":go_default_library", deps = [ + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/github.com/prometheus/client_model/go:go_default_library", + "//vendor/k8s.io/api/admissionregistration/v1alpha1: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", "//vendor/k8s.io/apiserver/pkg/apis/apiserver:go_default_library", @@ -31,12 +38,15 @@ go_library( "errors.go", "handler.go", "interfaces.go", + "metrics.go", "plugins.go", ], importpath = "k8s.io/apiserver/pkg/admission", deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", @@ -68,6 +78,13 @@ filegroup( "//staging/src/k8s.io/apiserver/pkg/admission/initializer:all-srcs", "//staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization:all-srcs", "//staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/chain.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/chain.go index 45c7f72f9..49bccc554 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/chain.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/chain.go @@ -16,23 +16,74 @@ limitations under the License. package admission -// chainAdmissionHandler is an instance of admission.Interface that performs admission control using a chain of admission handlers -type chainAdmissionHandler []Interface +import "time" + +// chainAdmissionHandler is an instance of admission.NamedHandler that performs admission control using +// a chain of admission handlers +type chainAdmissionHandler []NamedHandler // NewChainHandler creates a new chain handler from an array of handlers. Used for testing. -func NewChainHandler(handlers ...Interface) Interface { +func NewChainHandler(handlers ...NamedHandler) chainAdmissionHandler { return chainAdmissionHandler(handlers) } +func NewNamedHandler(name string, i Interface) NamedHandler { + return &pluginHandler{ + i: i, + name: name, + } +} + +const ( + stepValidate = "validate" + stepAdmit = "admit" +) + // Admit performs an admission control check using a chain of handlers, and returns immediately on first error func (admissionHandler chainAdmissionHandler) Admit(a Attributes) error { + start := time.Now() + err := admissionHandler.admit(a) + Metrics.ObserveAdmissionStep(time.Since(start), err != nil, a, stepAdmit) + return err +} + +func (admissionHandler chainAdmissionHandler) admit(a Attributes) error { + for _, handler := range admissionHandler { + if !handler.Interface().Handles(a.GetOperation()) { + continue + } + if mutator, ok := handler.Interface().(MutationInterface); ok { + t := time.Now() + err := mutator.Admit(a) + Metrics.ObserveAdmissionController(time.Since(t), err != nil, handler, a, stepAdmit) + if err != nil { + return err + } + } + } + return nil +} + +// Validate performs an admission control check using a chain of handlers, and returns immediately on first error +func (admissionHandler chainAdmissionHandler) Validate(a Attributes) error { + start := time.Now() + err := admissionHandler.validate(a) + Metrics.ObserveAdmissionStep(time.Since(start), err != nil, a, stepValidate) + return err +} + +func (admissionHandler chainAdmissionHandler) validate(a Attributes) (err error) { for _, handler := range admissionHandler { - if !handler.Handles(a.GetOperation()) { + if !handler.Interface().Handles(a.GetOperation()) { continue } - err := handler.Admit(a) - if err != nil { - return err + if validator, ok := handler.Interface().(ValidationInterface); ok { + t := time.Now() + err := validator.Validate(a) + Metrics.ObserveAdmissionController(time.Since(t), err != nil, handler, a, stepValidate) + if err != nil { + return err + } } } return nil @@ -41,7 +92,7 @@ func (admissionHandler chainAdmissionHandler) Admit(a Attributes) error { // Handles will return true if any of the handlers handles the given operation func (admissionHandler chainAdmissionHandler) Handles(operation Operation) bool { for _, handler := range admissionHandler { - if handler.Handles(operation) { + if handler.Interface().Handles(operation) { return true } } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/chain_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/chain_test.go index 3a0dc7ce1..622bd1e9e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/chain_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/chain_test.go @@ -17,38 +17,18 @@ limitations under the License. package admission import ( - "fmt" "testing" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" ) -type FakeHandler struct { - *Handler - name string - admit bool - admitCalled bool -} - -func (h *FakeHandler) Admit(a Attributes) (err error) { - h.admitCalled = true - if h.admit { - return nil - } - return fmt.Errorf("Don't admit") -} - -func makeHandler(name string, admit bool, ops ...Operation) Interface { - return &FakeHandler{ - name: name, - admit: admit, - Handler: NewHandler(ops...), - } -} - -func TestAdmit(t *testing.T) { +func TestAdmitAndValidate(t *testing.T) { + sysns := metav1.NamespaceSystem + otherns := "default" tests := []struct { name string + ns string operation Operation chain chainAdmissionHandler accept bool @@ -56,71 +36,149 @@ func TestAdmit(t *testing.T) { }{ { name: "all accept", + ns: sysns, operation: Create, - chain: []Interface{ - makeHandler("a", true, Update, Delete, Create), - makeHandler("b", true, Delete, Create), - makeHandler("c", true, Create), + chain: []NamedHandler{ + makeNamedHandler("a", true, Update, Delete, Create), + makeNamedHandler("b", true, Delete, Create), + makeNamedHandler("c", true, Create), }, calls: map[string]bool{"a": true, "b": true, "c": true}, accept: true, }, { name: "ignore handler", + ns: otherns, operation: Create, - chain: []Interface{ - makeHandler("a", true, Update, Delete, Create), - makeHandler("b", false, Delete), - makeHandler("c", true, Create), + chain: []NamedHandler{ + makeNamedHandler("a", true, Update, Delete, Create), + makeNamedHandler("b", false, Delete), + makeNamedHandler("c", true, Create), }, calls: map[string]bool{"a": true, "c": true}, accept: true, }, { name: "ignore all", + ns: sysns, operation: Connect, - chain: []Interface{ - makeHandler("a", true, Update, Delete, Create), - makeHandler("b", false, Delete), - makeHandler("c", true, Create), + chain: []NamedHandler{ + makeNamedHandler("a", true, Update, Delete, Create), + makeNamedHandler("b", false, Delete), + makeNamedHandler("c", true, Create), }, calls: map[string]bool{}, accept: true, }, { name: "reject one", + ns: otherns, operation: Delete, - chain: []Interface{ - makeHandler("a", true, Update, Delete, Create), - makeHandler("b", false, Delete), - makeHandler("c", true, Create), + chain: []NamedHandler{ + makeNamedHandler("a", true, Update, Delete, Create), + makeNamedHandler("b", false, Delete), + makeNamedHandler("c", true, Create), }, calls: map[string]bool{"a": true, "b": true}, accept: false, }, } for _, test := range tests { - err := test.chain.Admit(NewAttributesRecord(nil, nil, schema.GroupVersionKind{}, "", "", schema.GroupVersionResource{}, "", test.operation, nil)) + Metrics.reset() + t.Logf("testcase = %s", test.name) + // call admit and check that validate was not called at all + err := test.chain.Admit(NewAttributesRecord(nil, nil, schema.GroupVersionKind{}, test.ns, "", schema.GroupVersionResource{}, "", test.operation, nil)) accepted := (err == nil) if accepted != test.accept { - t.Errorf("%s: unexpected result of admit call: %v\n", test.name, accepted) + t.Errorf("unexpected result of admit call: %v", accepted) } for _, h := range test.chain { - fake := h.(*FakeHandler) - _, shouldBeCalled := test.calls[fake.name] + fake := h.Interface().(*FakeHandler) + _, shouldBeCalled := test.calls[h.Name()] if shouldBeCalled != fake.admitCalled { - t.Errorf("%s: handler %s not called as expected: %v", test.name, fake.name, fake.admitCalled) + t.Errorf("admit handler %s not called as expected: %v", h.Name(), fake.admitCalled) + continue + } + if fake.validateCalled { + t.Errorf("validate handler %s called during admit", h.Name()) + } + + // reset value for validation test + fake.admitCalled = false + } + + labelFilter := map[string]string{ + "type": "admit", + } + + checkAdmitAndValidateMetrics(t, labelFilter, test.accept, test.calls) + Metrics.reset() + // call validate and check that admit was not called at all + err = test.chain.Validate(NewAttributesRecord(nil, nil, schema.GroupVersionKind{}, test.ns, "", schema.GroupVersionResource{}, "", test.operation, nil)) + accepted = (err == nil) + if accepted != test.accept { + t.Errorf("unexpected result of validate call: %v\n", accepted) + } + for _, h := range test.chain { + fake := h.Interface().(*FakeHandler) + + _, shouldBeCalled := test.calls[h.Name()] + if shouldBeCalled != fake.validateCalled { + t.Errorf("validate handler %s not called as expected: %v", h.Name(), fake.validateCalled) continue } + + if fake.admitCalled { + t.Errorf("mutating handler unexpectedly called: %s", h.Name()) + } + } + + labelFilter = map[string]string{ + "type": "validate", + } + + checkAdmitAndValidateMetrics(t, labelFilter, test.accept, test.calls) + } +} + +func checkAdmitAndValidateMetrics(t *testing.T, labelFilter map[string]string, accept bool, calls map[string]bool) { + acceptFilter := map[string]string{"rejected": "false"} + for k, v := range labelFilter { + acceptFilter[k] = v + } + + rejectFilter := map[string]string{"rejected": "true"} + for k, v := range labelFilter { + rejectFilter[k] = v + } + + if accept { + // Ensure exactly one admission end-to-end admission accept should have been recorded. + expectHistogramCountTotal(t, "apiserver_admission_step_admission_latencies_seconds", acceptFilter, 1) + + // Ensure the expected count of admission controllers have been executed. + expectHistogramCountTotal(t, "apiserver_admission_controller_admission_latencies_seconds", acceptFilter, len(calls)) + } else { + // When not accepted, ensure exactly one end-to-end rejection has been recorded. + expectHistogramCountTotal(t, "apiserver_admission_step_admission_latencies_seconds", rejectFilter, 1) + if len(calls) > 0 { + if len(calls) > 1 { + // When not accepted, ensure that all but the last controller had been accepted, since + // the chain stops execution at the first rejection. + expectHistogramCountTotal(t, "apiserver_admission_controller_admission_latencies_seconds", acceptFilter, len(calls)-1) + } + + // When not accepted, ensure exactly one controller has been rejected. + expectHistogramCountTotal(t, "apiserver_admission_controller_admission_latencies_seconds", rejectFilter, 1) } } } func TestHandles(t *testing.T) { chain := chainAdmissionHandler{ - makeHandler("a", true, Update, Delete, Create), - makeHandler("b", true, Delete, Create), - makeHandler("c", true, Create), + makeNamedHandler("a", true, Update, Delete, Create), + makeNamedHandler("b", true, Delete, Create), + makeNamedHandler("c", true, Create), } tests := []struct { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/BUILD index d2cb75d9f..5d1242a41 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/BUILD @@ -10,8 +10,9 @@ go_test( name = "go_default_test", srcs = [ "configuration_manager_test.go", - "external_admission_hook_manager_test.go", "initializer_manager_test.go", + "mutating_webhook_manager_test.go", + "validating_webhook_manager_test.go", ], importpath = "k8s.io/apiserver/pkg/admission/configuration", library = ":go_default_library", @@ -29,8 +30,9 @@ go_library( name = "go_default_library", srcs = [ "configuration_manager.go", - "external_admission_hook_manager.go", "initializer_manager.go", + "mutating_webhook_manager.go", + "validating_webhook_manager.go", ], importpath = "k8s.io/apiserver/pkg/admission/configuration", deps = [ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/configuration_manager.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/configuration_manager.go index d31b391c0..4c4bf74c9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/configuration_manager.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/configuration_manager.go @@ -104,6 +104,7 @@ func (a *poller) bootstrapping() { // bootstrapGracePeriod is read-only, so no lock is required timer := time.NewTimer(a.bootstrapGracePeriod) go func() { + defer timer.Stop() <-timer.C a.lock.Lock() defer a.lock.Unlock() diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/configuration_manager_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/configuration_manager_test.go index 26c262e3e..7506b7bf0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/configuration_manager_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/configuration_manager_test.go @@ -50,6 +50,7 @@ func TestTolerateBootstrapFailure(t *testing.T) { go func() { // The test might have false negative, but won't be flaky timer := time.NewTimer(2 * time.Second) + defer timer.Stop() <-timer.C fakeGetSucceedLock.Lock() defer fakeGetSucceedLock.Unlock() diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/external_admission_hook_manager.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/external_admission_hook_manager.go deleted file mode 100644 index 024f5fae0..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/external_admission_hook_manager.go +++ /dev/null @@ -1,83 +0,0 @@ -/* -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 configuration - -import ( - "fmt" - "reflect" - - "github.com/golang/glog" - - "k8s.io/api/admissionregistration/v1alpha1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -type ExternalAdmissionHookConfigurationLister interface { - List(opts metav1.ListOptions) (*v1alpha1.ExternalAdmissionHookConfigurationList, error) -} - -type ExternalAdmissionHookConfigurationManager struct { - *poller -} - -func NewExternalAdmissionHookConfigurationManager(c ExternalAdmissionHookConfigurationLister) *ExternalAdmissionHookConfigurationManager { - getFn := func() (runtime.Object, error) { - list, err := c.List(metav1.ListOptions{}) - if err != nil { - if errors.IsNotFound(err) || errors.IsForbidden(err) { - glog.V(5).Infof("ExternalAdmissionHookConfiguration are disabled due to an error: %v", err) - return nil, ErrDisabled - } - return nil, err - } - return mergeExternalAdmissionHookConfigurations(list), nil - } - - return &ExternalAdmissionHookConfigurationManager{ - newPoller(getFn), - } -} - -// ExternalAdmissionHooks returns the merged ExternalAdmissionHookConfiguration. -func (im *ExternalAdmissionHookConfigurationManager) ExternalAdmissionHooks() (*v1alpha1.ExternalAdmissionHookConfiguration, error) { - configuration, err := im.poller.configuration() - if err != nil { - return nil, err - } - externalAdmissionHookConfiguration, ok := configuration.(*v1alpha1.ExternalAdmissionHookConfiguration) - if !ok { - return nil, fmt.Errorf("expected type %v, got type %v", reflect.TypeOf(externalAdmissionHookConfiguration), reflect.TypeOf(configuration)) - } - return externalAdmissionHookConfiguration, nil -} - -func (im *ExternalAdmissionHookConfigurationManager) Run(stopCh <-chan struct{}) { - im.poller.Run(stopCh) -} - -func mergeExternalAdmissionHookConfigurations( - list *v1alpha1.ExternalAdmissionHookConfigurationList, -) *v1alpha1.ExternalAdmissionHookConfiguration { - configurations := list.Items - var ret v1alpha1.ExternalAdmissionHookConfiguration - for _, c := range configurations { - ret.ExternalAdmissionHooks = append(ret.ExternalAdmissionHooks, c.ExternalAdmissionHooks...) - } - return &ret -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go new file mode 100644 index 000000000..0f5b7bd91 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go @@ -0,0 +1,101 @@ +/* +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 configuration + +import ( + "fmt" + "reflect" + "sort" + + "github.com/golang/glog" + + "k8s.io/api/admissionregistration/v1alpha1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" +) + +type MutatingWebhookConfigurationLister interface { + List(opts metav1.ListOptions) (*v1alpha1.MutatingWebhookConfigurationList, error) +} + +// MutatingWebhookConfigurationManager collects the mutating webhook objects so that they can be called. +type MutatingWebhookConfigurationManager struct { + *poller +} + +func NewMutatingWebhookConfigurationManager(c MutatingWebhookConfigurationLister) *MutatingWebhookConfigurationManager { + getFn := func() (runtime.Object, error) { + list, err := c.List(metav1.ListOptions{}) + if err != nil { + if errors.IsNotFound(err) || errors.IsForbidden(err) { + glog.V(5).Infof("MutatingWebhookConfiguration are disabled due to an error: %v", err) + return nil, ErrDisabled + } + return nil, err + } + return mergeMutatingWebhookConfigurations(list), nil + } + + return &MutatingWebhookConfigurationManager{ + newPoller(getFn), + } +} + +// Webhooks returns the merged MutatingWebhookConfiguration. +func (im *MutatingWebhookConfigurationManager) Webhooks() (*v1alpha1.MutatingWebhookConfiguration, error) { + configuration, err := im.poller.configuration() + if err != nil { + return nil, err + } + mutatingWebhookConfiguration, ok := configuration.(*v1alpha1.MutatingWebhookConfiguration) + if !ok { + return nil, fmt.Errorf("expected type %v, got type %v", reflect.TypeOf(mutatingWebhookConfiguration), reflect.TypeOf(configuration)) + } + return mutatingWebhookConfiguration, nil +} + +func (im *MutatingWebhookConfigurationManager) Run(stopCh <-chan struct{}) { + im.poller.Run(stopCh) +} + +func mergeMutatingWebhookConfigurations( + list *v1alpha1.MutatingWebhookConfigurationList, +) *v1alpha1.MutatingWebhookConfiguration { + configurations := append([]v1alpha1.MutatingWebhookConfiguration{}, list.Items...) + var ret v1alpha1.MutatingWebhookConfiguration + // The internal order of webhooks for each configuration is provided by the user + // but configurations themselves can be in any order. As we are going to run these + // webhooks in serial, they are sorted here to have a deterministic order. + sort.Sort(byName(configurations)) + for _, c := range configurations { + ret.Webhooks = append(ret.Webhooks, c.Webhooks...) + } + return &ret +} + +// byName sorts MutatingWebhookConfiguration by name. These objects are all in +// cluster namespace (aka no namespace) thus they all have unique names. +type byName []v1alpha1.MutatingWebhookConfiguration + +func (x byName) Len() int { return len(x) } + +func (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } + +func (x byName) Less(i, j int) bool { + return x[i].ObjectMeta.Name < x[j].ObjectMeta.Name +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager_test.go new file mode 100644 index 000000000..1cbf2d0d1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager_test.go @@ -0,0 +1,40 @@ +/* +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 configuration + +import ( + "testing" + + "k8s.io/api/admissionregistration/v1alpha1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +type disabledMutatingWebhookConfigLister struct{} + +func (l *disabledMutatingWebhookConfigLister) List(options metav1.ListOptions) (*v1alpha1.MutatingWebhookConfigurationList, error) { + return nil, errors.NewNotFound(schema.GroupResource{Group: "admissionregistration", Resource: "MutatingWebhookConfigurations"}, "") +} +func TestMutatingWebhookConfigDisabled(t *testing.T) { + manager := NewMutatingWebhookConfigurationManager(&disabledMutatingWebhookConfigLister{}) + manager.sync() + _, err := manager.Webhooks() + if err.Error() != ErrDisabled.Error() { + t.Errorf("expected %v, got %v", ErrDisabled, err) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go new file mode 100644 index 000000000..e3287ce4e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go @@ -0,0 +1,84 @@ +/* +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 configuration + +import ( + "fmt" + "reflect" + + "github.com/golang/glog" + + "k8s.io/api/admissionregistration/v1alpha1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" +) + +type ValidatingWebhookConfigurationLister interface { + List(opts metav1.ListOptions) (*v1alpha1.ValidatingWebhookConfigurationList, error) +} + +// ValidatingWebhookConfigurationManager collects the validating webhook objects so that they can be called. +type ValidatingWebhookConfigurationManager struct { + *poller +} + +func NewValidatingWebhookConfigurationManager(c ValidatingWebhookConfigurationLister) *ValidatingWebhookConfigurationManager { + getFn := func() (runtime.Object, error) { + list, err := c.List(metav1.ListOptions{}) + if err != nil { + if errors.IsNotFound(err) || errors.IsForbidden(err) { + glog.V(5).Infof("ValidatingWebhookConfiguration are disabled due to an error: %v", err) + return nil, ErrDisabled + } + return nil, err + } + return mergeValidatingWebhookConfigurations(list), nil + } + + return &ValidatingWebhookConfigurationManager{ + newPoller(getFn), + } +} + +// Webhooks returns the merged ValidatingWebhookConfiguration. +func (im *ValidatingWebhookConfigurationManager) Webhooks() (*v1alpha1.ValidatingWebhookConfiguration, error) { + configuration, err := im.poller.configuration() + if err != nil { + return nil, err + } + validatingWebhookConfiguration, ok := configuration.(*v1alpha1.ValidatingWebhookConfiguration) + if !ok { + return nil, fmt.Errorf("expected type %v, got type %v", reflect.TypeOf(validatingWebhookConfiguration), reflect.TypeOf(configuration)) + } + return validatingWebhookConfiguration, nil +} + +func (im *ValidatingWebhookConfigurationManager) Run(stopCh <-chan struct{}) { + im.poller.Run(stopCh) +} + +func mergeValidatingWebhookConfigurations( + list *v1alpha1.ValidatingWebhookConfigurationList, +) *v1alpha1.ValidatingWebhookConfiguration { + configurations := list.Items + var ret v1alpha1.ValidatingWebhookConfiguration + for _, c := range configurations { + ret.Webhooks = append(ret.Webhooks, c.Webhooks...) + } + return &ret +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/external_admission_hook_manager_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager_test.go similarity index 72% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/external_admission_hook_manager_test.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager_test.go index 1b849b1d2..946747150 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/external_admission_hook_manager_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager_test.go @@ -25,15 +25,15 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" ) -type disabledWebhookConfigLister struct{} +type disabledValidatingWebhookConfigLister struct{} -func (l *disabledWebhookConfigLister) List(options metav1.ListOptions) (*v1alpha1.ExternalAdmissionHookConfigurationList, error) { - return nil, errors.NewNotFound(schema.GroupResource{Group: "admissionregistration", Resource: "externalAdmissionHookConfigurations"}, "") +func (l *disabledValidatingWebhookConfigLister) List(options metav1.ListOptions) (*v1alpha1.ValidatingWebhookConfigurationList, error) { + return nil, errors.NewNotFound(schema.GroupResource{Group: "admissionregistration", Resource: "ValidatingWebhookConfigurations"}, "") } func TestWebhookConfigDisabled(t *testing.T) { - manager := NewExternalAdmissionHookConfigurationManager(&disabledWebhookConfigLister{}) + manager := NewValidatingWebhookConfigurationManager(&disabledValidatingWebhookConfigLister{}) manager.sync() - _, err := manager.ExternalAdmissionHooks() + _, err := manager.Webhooks() if err.Error() != ErrDisabled.Error() { t.Errorf("expected %v, got %v", ErrDisabled, err) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/handler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/handler.go index 5de066f05..d2a9e7d4c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/handler.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/handler.go @@ -66,14 +66,8 @@ func (h *Handler) WaitForReady() bool { if h.readyFunc == nil { return true } - return h.waitForReadyInternal(time.After(timeToWaitForReady)) -} -func (h *Handler) waitForReadyInternal(timeout <-chan time.Time) bool { - // there is no configured ready func, so return immediately - if h.readyFunc == nil { - return true - } + timeout := time.After(timeToWaitForReady) for !h.readyFunc() { select { case <-time.After(100 * time.Millisecond): diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/handler_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/handler_test.go new file mode 100644 index 000000000..79741302a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/handler_test.go @@ -0,0 +1,57 @@ +/* +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 admission + +import ( + "testing" + "time" +) + +func TestWaitForReady(t *testing.T) { + handler := newFakeHandler() + + // 1. test no readyFunc + if !handler.WaitForReady() { + t.Errorf("Expect ready for no readyFunc provided.") + } + + // 2. readyFunc return ready immediately + readyFunc := func() bool { + return true + } + handler.SetReadyFunc(readyFunc) + if !handler.WaitForReady() { + t.Errorf("Expect ready for readyFunc returns ready immediately.") + } + + // 3. readyFunc always return not ready. WaitForReady timeout + readyFunc = func() bool { + return false + } + startTime := time.Now() + handler.SetReadyFunc(readyFunc) + if handler.WaitForReady() { + t.Errorf("Expect not ready for readyFunc returns not ready immediately.") + } + if time.Since(startTime) < timeToWaitForReady { + t.Errorf("Expect WaitForReady timeout.") + } +} + +func newFakeHandler() *Handler { + return NewHandler(Create, Update) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/initializer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/initializer.go index bce5433a3..abe764bb9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/initializer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/initializer.go @@ -28,11 +28,7 @@ type pluginInitializer struct { externalClient kubernetes.Interface externalInformers informers.SharedInformerFactory authorizer authorizer.Authorizer - // serverIdentifyingClientCert used to provide identity when calling out to admission plugins - serverIdentifyingClientCert []byte - // serverIdentifyingClientKey private key for the client certificate used when calling out to admission plugins - serverIdentifyingClientKey []byte - scheme *runtime.Scheme + scheme *runtime.Scheme } // New creates an instance of admission plugins initializer. @@ -41,18 +37,14 @@ func New( extClientset kubernetes.Interface, extInformers informers.SharedInformerFactory, authz authorizer.Authorizer, - serverIdentifyingClientCert, - serverIdentifyingClientKey []byte, scheme *runtime.Scheme, -) (pluginInitializer, error) { +) pluginInitializer { return pluginInitializer{ - externalClient: extClientset, - externalInformers: extInformers, - authorizer: authz, - serverIdentifyingClientCert: serverIdentifyingClientCert, - serverIdentifyingClientKey: serverIdentifyingClientKey, - scheme: scheme, - }, nil + externalClient: extClientset, + externalInformers: extInformers, + authorizer: authz, + scheme: scheme, + } } // Initialize checks the initialization interfaces implemented by a plugin @@ -70,10 +62,6 @@ func (i pluginInitializer) Initialize(plugin admission.Interface) { wants.SetAuthorizer(i.authorizer) } - if wants, ok := plugin.(WantsClientCert); ok { - wants.SetClientCert(i.serverIdentifyingClientCert, i.serverIdentifyingClientKey) - } - if wants, ok := plugin.(WantsScheme); ok { wants.SetScheme(i.scheme) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/initializer_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/initializer_test.go index 0550bd17c..c2d6ea234 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/initializer_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/initializer_test.go @@ -33,10 +33,7 @@ import ( // the WantsScheme interface is implemented by a plugin. func TestWantsScheme(t *testing.T) { scheme := runtime.NewScheme() - target, err := initializer.New(nil, nil, nil, nil, nil, scheme) - if err != nil { - t.Fatal(err) - } + target := initializer.New(nil, nil, nil, scheme) wantSchemeAdmission := &WantSchemeAdmission{} target.Initialize(wantSchemeAdmission) if wantSchemeAdmission.scheme != scheme { @@ -47,10 +44,7 @@ func TestWantsScheme(t *testing.T) { // TestWantsAuthorizer ensures that the authorizer is injected // when the WantsAuthorizer interface is implemented by a plugin. func TestWantsAuthorizer(t *testing.T) { - target, err := initializer.New(nil, nil, &TestAuthorizer{}, nil, nil, nil) - if err != nil { - t.Fatal(err) - } + target := initializer.New(nil, nil, &TestAuthorizer{}, nil) wantAuthorizerAdmission := &WantAuthorizerAdmission{} target.Initialize(wantAuthorizerAdmission) if wantAuthorizerAdmission.auth == nil { @@ -62,10 +56,7 @@ func TestWantsAuthorizer(t *testing.T) { // when the WantsExternalKubeClientSet interface is implemented by a plugin. func TestWantsExternalKubeClientSet(t *testing.T) { cs := &fake.Clientset{} - target, err := initializer.New(cs, nil, &TestAuthorizer{}, nil, nil, nil) - if err != nil { - t.Fatal(err) - } + target := initializer.New(cs, nil, &TestAuthorizer{}, nil) wantExternalKubeClientSet := &WantExternalKubeClientSet{} target.Initialize(wantExternalKubeClientSet) if wantExternalKubeClientSet.cs != cs { @@ -78,10 +69,7 @@ func TestWantsExternalKubeClientSet(t *testing.T) { func TestWantsExternalKubeInformerFactory(t *testing.T) { cs := &fake.Clientset{} sf := informers.NewSharedInformerFactory(cs, time.Duration(1)*time.Second) - target, err := initializer.New(cs, sf, &TestAuthorizer{}, nil, nil, nil) - if err != nil { - t.Fatal(err) - } + target := initializer.New(cs, sf, &TestAuthorizer{}, nil) wantExternalKubeInformerFactory := &WantExternalKubeInformerFactory{} target.Initialize(wantExternalKubeInformerFactory) if wantExternalKubeInformerFactory.sf != sf { @@ -89,20 +77,6 @@ func TestWantsExternalKubeInformerFactory(t *testing.T) { } } -// TestWantsClientCert ensures that the client certificate and key are injected -// when the WantsClientCert interface is implemented by a plugin. -func TestWantsClientCert(t *testing.T) { - target, err := initializer.New(nil, nil, nil, []byte("cert"), []byte("key"), nil) - if err != nil { - t.Fatal(err) - } - wantClientCert := &clientCertWanter{} - target.Initialize(wantClientCert) - if string(wantClientCert.gotCert) != "cert" || string(wantClientCert.gotKey) != "key" { - t.Errorf("expected client cert to be initialized, clientCert = %v, clientKey = %v", wantClientCert.gotCert, wantClientCert.gotKey) - } -} - // WantExternalKubeInformerFactory is a test stub that fulfills the WantsExternalKubeInformerFactory interface type WantExternalKubeInformerFactory struct { sf informers.SharedInformerFactory @@ -113,7 +87,7 @@ func (self *WantExternalKubeInformerFactory) SetExternalKubeInformerFactory(sf i } func (self *WantExternalKubeInformerFactory) Admit(a admission.Attributes) error { return nil } func (self *WantExternalKubeInformerFactory) Handles(o admission.Operation) bool { return false } -func (self *WantExternalKubeInformerFactory) Validate() error { return nil } +func (self *WantExternalKubeInformerFactory) ValidateInitialization() error { return nil } var _ admission.Interface = &WantExternalKubeInformerFactory{} var _ initializer.WantsExternalKubeInformerFactory = &WantExternalKubeInformerFactory{} @@ -126,7 +100,7 @@ type WantExternalKubeClientSet struct { func (self *WantExternalKubeClientSet) SetExternalKubeClientSet(cs kubernetes.Interface) { self.cs = cs } func (self *WantExternalKubeClientSet) Admit(a admission.Attributes) error { return nil } func (self *WantExternalKubeClientSet) Handles(o admission.Operation) bool { return false } -func (self *WantExternalKubeClientSet) Validate() error { return nil } +func (self *WantExternalKubeClientSet) ValidateInitialization() error { return nil } var _ admission.Interface = &WantExternalKubeClientSet{} var _ initializer.WantsExternalKubeClientSet = &WantExternalKubeClientSet{} @@ -139,7 +113,7 @@ type WantAuthorizerAdmission struct { func (self *WantAuthorizerAdmission) SetAuthorizer(a authorizer.Authorizer) { self.auth = a } func (self *WantAuthorizerAdmission) Admit(a admission.Attributes) error { return nil } func (self *WantAuthorizerAdmission) Handles(o admission.Operation) bool { return false } -func (self *WantAuthorizerAdmission) Validate() error { return nil } +func (self *WantAuthorizerAdmission) ValidateInitialization() error { return nil } var _ admission.Interface = &WantAuthorizerAdmission{} var _ initializer.WantsAuthorizer = &WantAuthorizerAdmission{} @@ -147,8 +121,8 @@ var _ initializer.WantsAuthorizer = &WantAuthorizerAdmission{} // TestAuthorizer is a test stub that fulfills the WantsAuthorizer interface. type TestAuthorizer struct{} -func (t *TestAuthorizer) Authorize(a authorizer.Attributes) (authorized bool, reason string, err error) { - return false, "", nil +func (t *TestAuthorizer) Authorize(a authorizer.Attributes) (authorized authorizer.Decision, reason string, err error) { + return authorizer.DecisionNoOpinion, "", nil } // wantClientCert is a test stub for testing that fulfulls the WantsClientCert interface. @@ -159,7 +133,7 @@ type clientCertWanter struct { func (s *clientCertWanter) SetClientCert(cert, key []byte) { s.gotCert, s.gotKey = cert, key } func (s *clientCertWanter) Admit(a admission.Attributes) error { return nil } func (s *clientCertWanter) Handles(o admission.Operation) bool { return false } -func (s *clientCertWanter) Validate() error { return nil } +func (s *clientCertWanter) ValidateInitialization() error { return nil } // WantSchemeAdmission is a test stub that fulfills the WantsScheme interface. type WantSchemeAdmission struct { @@ -169,7 +143,7 @@ type WantSchemeAdmission struct { func (self *WantSchemeAdmission) SetScheme(s *runtime.Scheme) { self.scheme = s } func (self *WantSchemeAdmission) Admit(a admission.Attributes) error { return nil } func (self *WantSchemeAdmission) Handles(o admission.Operation) bool { return false } -func (self *WantSchemeAdmission) Validate() error { return nil } +func (self *WantSchemeAdmission) ValidateInitialization() error { return nil } var _ admission.Interface = &WantSchemeAdmission{} var _ initializer.WantsScheme = &WantSchemeAdmission{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/interfaces.go index 067b4a1da..98a075854 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/initializer/interfaces.go @@ -27,30 +27,23 @@ import ( // WantsExternalKubeClientSet defines a function which sets external ClientSet for admission plugins that need it type WantsExternalKubeClientSet interface { SetExternalKubeClientSet(kubernetes.Interface) - admission.Validator + admission.InitializationValidator } // WantsExternalKubeInformerFactory defines a function which sets InformerFactory for admission plugins that need it type WantsExternalKubeInformerFactory interface { SetExternalKubeInformerFactory(informers.SharedInformerFactory) - admission.Validator + admission.InitializationValidator } // WantsAuthorizer defines a function which sets Authorizer for admission plugins that need it. type WantsAuthorizer interface { SetAuthorizer(authorizer.Authorizer) - admission.Validator -} - -// WantsClientCert defines a fuction that accepts a cert & key for admission -// plugins that need to make calls and prove their identity. -type WantsClientCert interface { - SetClientCert(cert, key []byte) - admission.Validator + admission.InitializationValidator } // WantsScheme defines a function that accepts runtime.Scheme for admission plugins that need it. type WantsScheme interface { SetScheme(*runtime.Scheme) - admission.Validator + admission.InitializationValidator } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/interfaces.go index a8e671db5..76d3864e2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/interfaces.go @@ -53,14 +53,26 @@ type Attributes interface { // Interface is an abstract, pluggable interface for Admission Control decisions. type Interface interface { - // Admit makes an admission decision based on the request attributes - Admit(a Attributes) (err error) - // Handles returns true if this admission controller can handle the given operation // where operation can be one of CREATE, UPDATE, DELETE, or CONNECT Handles(operation Operation) bool } +type MutationInterface interface { + Interface + + // Admit makes an admission decision based on the request attributes + Admit(a Attributes) (err error) +} + +// ValidationInterface is an abstract, pluggable interface for Admission Control decisions. +type ValidationInterface interface { + Interface + + // Validate makes an admission decision based on the request attributes. It is NOT allowed to mutate + Validate(a Attributes) (err error) +} + // Operation is the type of resource operation being checked for admission control type Operation string @@ -78,10 +90,10 @@ type PluginInitializer interface { Initialize(plugin Interface) } -// Validator holds Validate functions, which are responsible for validation of initialized shared resources -// and should be implemented on admission plugins -type Validator interface { - Validate() error +// InitializationValidator holds ValidateInitialization functions, which are responsible for validation of initialized +// shared resources and should be implemented on admission plugins +type InitializationValidator interface { + ValidateInitialization() error } // ConfigProvider provides a way to get configuration for an admission plugin based on its name diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/metrics.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/metrics.go new file mode 100644 index 000000000..22c0cef13 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/metrics.go @@ -0,0 +1,151 @@ +/* +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 admission + +import ( + "fmt" + "strconv" + "time" + + "k8s.io/api/admissionregistration/v1alpha1" + + "github.com/prometheus/client_golang/prometheus" +) + +const ( + namespace = "apiserver" + subsystem = "admission" +) + +var ( + latencyBuckets = prometheus.ExponentialBuckets(25000, 2.0, 7) + latencySummaryMaxAge = 5 * time.Hour + + // Metrics provides access to all admission metrics. + Metrics = newAdmissionMetrics() +) + +// NamedHandler requires each admission.Interface be named, primarly for metrics tracking purposes. +type NamedHandler interface { + Interface() Interface + Name() string +} + +// AdmissionMetrics instruments admission with prometheus metrics. +type AdmissionMetrics struct { + step *metricSet + controller *metricSet + webhook *metricSet +} + +// newAdmissionMetrics create a new AdmissionMetrics, configured with default metric names. +func newAdmissionMetrics() *AdmissionMetrics { + // Admission metrics for a step of the admission flow. The entire admission flow is broken down into a series of steps + // Each step is identified by a distinct type label value. + step := newMetricSet("step", + []string{"type", "operation", "group", "version", "resource", "subresource", "rejected"}, + "Admission sub-step %s, broken out for each operation and API resource and step type (validate or admit).") + + // Built-in admission controller metrics. Each admission controller is identified by name. + controller := newMetricSet("controller", + []string{"name", "type", "operation", "group", "version", "resource", "subresource", "rejected"}, + "Admission controller %s, identified by name and broken out for each operation and API resource and type (validate or admit).") + + // Admission webhook metrics. Each webhook is identified by name. + webhook := newMetricSet("webhook", + []string{"name", "type", "operation", "group", "version", "resource", "subresource", "rejected"}, + "Admission webhook %s, identified by name and broken out for each operation and API resource and type (validate or admit).") + + step.mustRegister() + controller.mustRegister() + webhook.mustRegister() + return &AdmissionMetrics{step: step, controller: controller, webhook: webhook} +} + +func (m *AdmissionMetrics) reset() { + m.step.reset() + m.controller.reset() + m.webhook.reset() +} + +// ObserveAdmissionStep records admission related metrics for a admission step, identified by step type. +func (m *AdmissionMetrics) ObserveAdmissionStep(elapsed time.Duration, rejected bool, attr Attributes, stepType string) { + gvr := attr.GetResource() + m.step.observe(elapsed, stepType, string(attr.GetOperation()), gvr.Group, gvr.Version, gvr.Resource, attr.GetSubresource(), strconv.FormatBool(rejected)) +} + +// ObserveAdmissionController records admission related metrics for a built-in admission controller, identified by it's plugin handler name. +func (m *AdmissionMetrics) ObserveAdmissionController(elapsed time.Duration, rejected bool, handler NamedHandler, attr Attributes, stepType string) { + gvr := attr.GetResource() + m.controller.observe(elapsed, handler.Name(), stepType, string(attr.GetOperation()), gvr.Group, gvr.Version, gvr.Resource, attr.GetSubresource(), strconv.FormatBool(rejected)) +} + +// ObserveWebhook records admission related metrics for a admission webhook. +func (m *AdmissionMetrics) ObserveWebhook(elapsed time.Duration, rejected bool, hook *v1alpha1.Webhook, attr Attributes) { + t := "admit" // TODO: pass in type (validate|admit) once mutating webhook functionality has been implemented + gvr := attr.GetResource() + m.webhook.observe(elapsed, hook.Name, t, string(attr.GetOperation()), gvr.Group, gvr.Version, gvr.Resource, attr.GetSubresource(), strconv.FormatBool(rejected)) +} + +type metricSet struct { + latencies *prometheus.HistogramVec + latenciesSummary *prometheus.SummaryVec +} + +func newMetricSet(name string, labels []string, helpTemplate string) *metricSet { + return &metricSet{ + latencies: prometheus.NewHistogramVec( + prometheus.HistogramOpts{ + Namespace: namespace, + Subsystem: subsystem, + Name: fmt.Sprintf("%s_admission_latencies_seconds", name), + Help: fmt.Sprintf(helpTemplate, "latency histogram"), + Buckets: latencyBuckets, + }, + labels, + ), + latenciesSummary: prometheus.NewSummaryVec( + prometheus.SummaryOpts{ + Namespace: namespace, + Subsystem: subsystem, + Name: fmt.Sprintf("%s_admission_latencies_seconds_summary", name), + Help: fmt.Sprintf(helpTemplate, "latency summary"), + MaxAge: latencySummaryMaxAge, + }, + labels, + ), + } +} + +// MustRegister registers all the prometheus metrics in the metricSet. +func (m *metricSet) mustRegister() { + prometheus.MustRegister(m.latencies) + prometheus.MustRegister(m.latenciesSummary) +} + +// Reset resets all the prometheus metrics in the metricSet. +func (m *metricSet) reset() { + m.latencies.Reset() + m.latenciesSummary.Reset() +} + +// Observe records an observed admission event to all metrics in the metricSet. +func (m *metricSet) observe(elapsed time.Duration, labels ...string) { + elapsedMicroseconds := float64(elapsed / time.Microsecond) + m.latencies.WithLabelValues(labels...).Observe(elapsedMicroseconds) + m.latenciesSummary.WithLabelValues(labels...).Observe(elapsedMicroseconds) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/metrics_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/metrics_test.go new file mode 100644 index 000000000..264d3adb7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/metrics_test.go @@ -0,0 +1,84 @@ +/* +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 admission + +import ( + "testing" + "time" + + "k8s.io/api/admissionregistration/v1alpha1" + + "k8s.io/apimachinery/pkg/runtime/schema" +) + +var ( + kind = schema.GroupVersionKind{Group: "kgroup", Version: "kversion", Kind: "kind"} + resource = schema.GroupVersionResource{Group: "rgroup", Version: "rversion", Resource: "resource"} + attr = NewAttributesRecord(nil, nil, kind, "ns", "name", resource, "subresource", Create, nil) +) + +func TestObserveAdmissionStep(t *testing.T) { + Metrics.reset() + Metrics.ObserveAdmissionStep(2*time.Second, false, attr, "admit") + wantLabels := map[string]string{ + "operation": string(Create), + "group": resource.Group, + "version": resource.Version, + "resource": resource.Resource, + "subresource": "subresource", + "type": "admit", + "rejected": "false", + } + expectHistogramCountTotal(t, "apiserver_admission_step_admission_latencies_seconds", wantLabels, 1) + expectFindMetric(t, "apiserver_admission_step_admission_latencies_seconds_summary", wantLabels) +} + +func TestObserveAdmissionController(t *testing.T) { + Metrics.reset() + handler := makeValidatingNamedHandler("a", true, Create) + Metrics.ObserveAdmissionController(2*time.Second, false, handler, attr, "validate") + wantLabels := map[string]string{ + "name": "a", + "operation": string(Create), + "group": resource.Group, + "version": resource.Version, + "resource": resource.Resource, + "subresource": "subresource", + "type": "validate", + "rejected": "false", + } + expectHistogramCountTotal(t, "apiserver_admission_controller_admission_latencies_seconds", wantLabels, 1) + expectFindMetric(t, "apiserver_admission_controller_admission_latencies_seconds_summary", wantLabels) +} + +func TestObserveWebhook(t *testing.T) { + Metrics.reset() + hook := &v1alpha1.Webhook{Name: "x"} + Metrics.ObserveWebhook(2*time.Second, false, hook, attr) + wantLabels := map[string]string{ + "name": "x", + "operation": string(Create), + "group": resource.Group, + "version": resource.Version, + "resource": resource.Resource, + "subresource": "subresource", + "type": "admit", + "rejected": "false", + } + expectHistogramCountTotal(t, "apiserver_admission_webhook_admission_latencies_seconds", wantLabels, 1) + expectFindMetric(t, "apiserver_admission_webhook_admission_latencies_seconds_summary", wantLabels) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization/initialization.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization/initialization.go index e536e290d..1bb59da5d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization/initialization.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization/initialization.go @@ -74,7 +74,8 @@ func NewInitializer() admission.Interface { return &initializer{} } -func (i *initializer) Validate() error { +// ValidateInitialization implements the InitializationValidator interface. +func (i *initializer) ValidateInitialization() error { if i.config == nil { return fmt.Errorf("the Initializer admission plugin requires a Kubernetes client to be provided") } @@ -94,10 +95,12 @@ func (i *initializer) Validate() error { return nil } +// SetExternalKubeClientSet implements the WantsExternalKubeClientSet interface. func (i *initializer) SetExternalKubeClientSet(client clientset.Interface) { - i.config = configuration.NewInitializerConfigurationManager(client.Admissionregistration().InitializerConfigurations()) + i.config = configuration.NewInitializerConfigurationManager(client.AdmissionregistrationV1alpha1().InitializerConfigurations()) } +// SetAuthorizer implements the WantsAuthorizer interface. func (i *initializer) SetAuthorizer(a authorizer.Authorizer) { i.authorizer = a } @@ -257,7 +260,7 @@ func (i *initializer) Admit(a admission.Attributes) (err error) { func (i *initializer) canInitialize(a admission.Attributes, message string) error { // caller must have the ability to mutate un-initialized resources - authorized, reason, err := i.authorizer.Authorize(authorizer.AttributesRecord{ + decision, reason, err := i.authorizer.Authorize(authorizer.AttributesRecord{ Name: a.GetName(), ResourceRequest: true, User: a.GetUserInfo(), @@ -270,12 +273,14 @@ func (i *initializer) canInitialize(a admission.Attributes, message string) erro if err != nil { return err } - if !authorized { + if decision != authorizer.DecisionAllow { return errors.NewForbidden(a.GetResource().GroupResource(), a.GetName(), fmt.Errorf("%s: %s", message, reason)) } return nil } +// Handles returns true if this admission controller can handle the given operation +// where operation can be one of CREATE, UPDATE, DELETE, or CONNECT func (i *initializer) Handles(op admission.Operation) bool { return op == admission.Create || op == admission.Update } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization/initialization_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization/initialization_test.go index 0832fe8d1..a3bb0991b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization/initialization_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/initialization/initialization_test.go @@ -109,11 +109,11 @@ type fakeAuthorizer struct { accept bool } -func (f *fakeAuthorizer) Authorize(a authorizer.Attributes) (bool, string, error) { +func (f *fakeAuthorizer) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) { if f.accept { - return true, "", nil + return authorizer.DecisionAllow, "", nil } - return false, "denied", nil + return authorizer.DecisionNoOpinion, "denied", nil } func TestAdmitUpdate(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go index 20e7bd88d..158f41642 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go @@ -57,9 +57,9 @@ func Register(plugins *admission.Plugins) { }) } -// lifecycle is an implementation of admission.Interface. +// Lifecycle is an implementation of admission.Interface. // It enforces life-cycle constraints around a Namespace depending on its Phase -type lifecycle struct { +type Lifecycle struct { *admission.Handler client kubernetes.Interface immortalNamespaces sets.String @@ -73,8 +73,8 @@ type forceLiveLookupEntry struct { expiry time.Time } -var _ = initializer.WantsExternalKubeInformerFactory(&lifecycle{}) -var _ = initializer.WantsExternalKubeClientSet(&lifecycle{}) +var _ = initializer.WantsExternalKubeInformerFactory(&Lifecycle{}) +var _ = initializer.WantsExternalKubeClientSet(&Lifecycle{}) func makeNamespaceKey(namespace string) *v1.Namespace { return &v1.Namespace{ @@ -85,7 +85,7 @@ func makeNamespaceKey(namespace string) *v1.Namespace { } } -func (l *lifecycle) Admit(a admission.Attributes) error { +func (l *Lifecycle) Admit(a admission.Attributes) error { // prevent deletion of immortal namespaces if a.GetOperation() == admission.Delete && a.GetKind().GroupKind() == v1.SchemeGroupVersion.WithKind("Namespace").GroupKind() && l.immortalNamespaces.Has(a.GetName()) { return errors.NewForbidden(a.GetResource().GroupResource(), a.GetName(), fmt.Errorf("this namespace may not be deleted")) @@ -165,7 +165,7 @@ func (l *lifecycle) Admit(a admission.Attributes) error { // refuse to operate on non-existent namespaces if !exists || forceLiveLookup { // as a last resort, make a call directly to storage - namespace, err = l.client.Core().Namespaces().Get(a.GetNamespace(), metav1.GetOptions{}) + namespace, err = l.client.CoreV1().Namespaces().Get(a.GetNamespace(), metav1.GetOptions{}) switch { case errors.IsNotFound(err): return err @@ -188,31 +188,34 @@ func (l *lifecycle) Admit(a admission.Attributes) error { return nil } -// NewLifecycle creates a new namespace lifecycle admission control handler -func NewLifecycle(immortalNamespaces sets.String) (admission.Interface, error) { +// NewLifecycle creates a new namespace Lifecycle admission control handler +func NewLifecycle(immortalNamespaces sets.String) (*Lifecycle, error) { return newLifecycleWithClock(immortalNamespaces, clock.RealClock{}) } -func newLifecycleWithClock(immortalNamespaces sets.String, clock utilcache.Clock) (admission.Interface, error) { +func newLifecycleWithClock(immortalNamespaces sets.String, clock utilcache.Clock) (*Lifecycle, error) { forceLiveLookupCache := utilcache.NewLRUExpireCacheWithClock(100, clock) - return &lifecycle{ + return &Lifecycle{ Handler: admission.NewHandler(admission.Create, admission.Update, admission.Delete), immortalNamespaces: immortalNamespaces, forceLiveLookupCache: forceLiveLookupCache, }, nil } -func (l *lifecycle) SetExternalKubeInformerFactory(f informers.SharedInformerFactory) { +// SetExternalKubeInformerFactory implements the WantsExternalKubeInformerFactory interface. +func (l *Lifecycle) SetExternalKubeInformerFactory(f informers.SharedInformerFactory) { namespaceInformer := f.Core().V1().Namespaces() l.namespaceLister = namespaceInformer.Lister() l.SetReadyFunc(namespaceInformer.Informer().HasSynced) } -func (l *lifecycle) SetExternalKubeClientSet(client kubernetes.Interface) { +// SetExternalKubeClientSet implements the WantsExternalKubeClientSet interface. +func (l *Lifecycle) SetExternalKubeClientSet(client kubernetes.Interface) { l.client = client } -func (l *lifecycle) Validate() error { +// ValidateInitialization implements the InitializationValidator interface. +func (l *Lifecycle) ValidateInitialization() error { if l.namespaceLister == nil { return fmt.Errorf("missing namespaceLister") } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission_test.go index b0cad52f8..3eca3b67f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission_test.go @@ -37,23 +37,20 @@ import ( ) // newHandlerForTest returns a configured handler for testing. -func newHandlerForTest(c clientset.Interface) (admission.Interface, informers.SharedInformerFactory, error) { +func newHandlerForTest(c clientset.Interface) (*Lifecycle, informers.SharedInformerFactory, error) { return newHandlerForTestWithClock(c, clock.RealClock{}) } // newHandlerForTestWithClock returns a configured handler for testing. -func newHandlerForTestWithClock(c clientset.Interface, cacheClock clock.Clock) (admission.Interface, informers.SharedInformerFactory, error) { +func newHandlerForTestWithClock(c clientset.Interface, cacheClock clock.Clock) (*Lifecycle, informers.SharedInformerFactory, error) { f := informers.NewSharedInformerFactory(c, 5*time.Minute) handler, err := newLifecycleWithClock(sets.NewString(metav1.NamespaceDefault, metav1.NamespaceSystem), cacheClock) if err != nil { return nil, f, err } - pluginInitializer, err := kubeadmission.New(c, f, nil, nil, nil, nil) - if err != nil { - return handler, f, err - } + pluginInitializer := kubeadmission.New(c, f, nil, nil) pluginInitializer.Initialize(handler) - err = admission.Validate(handler) + err = admission.ValidateInitialization(handler) return handler, f, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/BUILD new file mode 100644 index 000000000..1d348eef2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/BUILD @@ -0,0 +1,54 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "authentication.go", + "client.go", + "kubeconfig.go", + "serviceresolver.go", + ], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/config", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/hashicorp/golang-lru:go_default_library", + "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/yaml:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/errors:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = [ + "authentication_test.go", + "serviceresolver_test.go", + ], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/config", + library = ":go_default_library", + deps = [ + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd/api: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/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/authentication.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/authentication.go new file mode 100644 index 000000000..dd956f140 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/authentication.go @@ -0,0 +1,156 @@ +/* +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 config + +import ( + "fmt" + "io/ioutil" + "strings" + "time" + + "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" +) + +// AuthenticationInfoResolverWrapper can be used to inject Dial function to the +// rest.Config generated by the resolver. +type AuthenticationInfoResolverWrapper func(AuthenticationInfoResolver) AuthenticationInfoResolver + +// AuthenticationInfoResolver builds rest.Config base on the server name. +type AuthenticationInfoResolver interface { + ClientConfigFor(server string) (*rest.Config, error) +} + +// AuthenticationInfoResolverFunc implements AuthenticationInfoResolver. +type AuthenticationInfoResolverFunc func(server string) (*rest.Config, error) + +//ClientConfigFor implements AuthenticationInfoResolver. +func (a AuthenticationInfoResolverFunc) ClientConfigFor(server string) (*rest.Config, error) { + return a(server) +} + +type defaultAuthenticationInfoResolver struct { + kubeconfig clientcmdapi.Config +} + +// NewDefaultAuthenticationInfoResolver generates an AuthenticationInfoResolver +// that builds rest.Config based on the kubeconfig file. kubeconfigFile is the +// path to the kubeconfig. +func NewDefaultAuthenticationInfoResolver(kubeconfigFile string) (AuthenticationInfoResolver, error) { + if len(kubeconfigFile) == 0 { + return &defaultAuthenticationInfoResolver{}, nil + } + + loadingRules := clientcmd.NewDefaultClientConfigLoadingRules() + loadingRules.ExplicitPath = kubeconfigFile + loader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, &clientcmd.ConfigOverrides{}) + clientConfig, err := loader.RawConfig() + if err != nil { + return nil, err + } + + return &defaultAuthenticationInfoResolver{kubeconfig: clientConfig}, nil +} + +func (c *defaultAuthenticationInfoResolver) ClientConfigFor(server string) (*rest.Config, error) { + // exact match + if authConfig, ok := c.kubeconfig.AuthInfos[server]; ok { + return restConfigFromKubeconfig(authConfig) + } + + // star prefixed match + serverSteps := strings.Split(server, ".") + for i := 1; i < len(serverSteps); i++ { + nickName := "*." + strings.Join(serverSteps[i:], ".") + if authConfig, ok := c.kubeconfig.AuthInfos[nickName]; ok { + return restConfigFromKubeconfig(authConfig) + } + } + + // if we're trying to hit the kube-apiserver and there wasn't an explicit config, use the in-cluster config + if server == "kubernetes.default.svc" { + // if we can find an in-cluster-config use that. If we can't, fall through. + inClusterConfig, err := rest.InClusterConfig() + if err == nil { + return setGlobalDefaults(inClusterConfig), nil + } + } + + // star (default) match + if authConfig, ok := c.kubeconfig.AuthInfos["*"]; ok { + return restConfigFromKubeconfig(authConfig) + } + + // use the current context from the kubeconfig if possible + if len(c.kubeconfig.CurrentContext) > 0 { + if currContext, ok := c.kubeconfig.Contexts[c.kubeconfig.CurrentContext]; ok { + if len(currContext.AuthInfo) > 0 { + if currAuth, ok := c.kubeconfig.AuthInfos[currContext.AuthInfo]; ok { + return restConfigFromKubeconfig(currAuth) + } + } + } + } + + // anonymous + return setGlobalDefaults(&rest.Config{}), nil +} + +func restConfigFromKubeconfig(configAuthInfo *clientcmdapi.AuthInfo) (*rest.Config, error) { + config := &rest.Config{} + + // blindly overwrite existing values based on precedence + if len(configAuthInfo.Token) > 0 { + config.BearerToken = configAuthInfo.Token + } else if len(configAuthInfo.TokenFile) > 0 { + tokenBytes, err := ioutil.ReadFile(configAuthInfo.TokenFile) + if err != nil { + return nil, err + } + config.BearerToken = string(tokenBytes) + } + if len(configAuthInfo.Impersonate) > 0 { + config.Impersonate = rest.ImpersonationConfig{ + UserName: configAuthInfo.Impersonate, + Groups: configAuthInfo.ImpersonateGroups, + Extra: configAuthInfo.ImpersonateUserExtra, + } + } + if len(configAuthInfo.ClientCertificate) > 0 || len(configAuthInfo.ClientCertificateData) > 0 { + config.CertFile = configAuthInfo.ClientCertificate + config.CertData = configAuthInfo.ClientCertificateData + config.KeyFile = configAuthInfo.ClientKey + config.KeyData = configAuthInfo.ClientKeyData + } + if len(configAuthInfo.Username) > 0 || len(configAuthInfo.Password) > 0 { + config.Username = configAuthInfo.Username + config.Password = configAuthInfo.Password + } + if configAuthInfo.AuthProvider != nil { + return nil, fmt.Errorf("auth provider not supported") + } + + return setGlobalDefaults(config), nil +} + +func setGlobalDefaults(config *rest.Config) *rest.Config { + config.UserAgent = "kube-apiserver-admission" + config.Timeout = 30 * time.Second + + return config +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/authentication_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/authentication_test.go new file mode 100644 index 000000000..cd63bd94b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/authentication_test.go @@ -0,0 +1,130 @@ +/* +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 config + +import ( + "testing" + + "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/client-go/rest" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" +) + +func TestAuthenticationDetection(t *testing.T) { + tests := []struct { + name string + kubeconfig clientcmdapi.Config + serverName string + expected rest.Config + }{ + { + name: "empty", + serverName: "foo.com", + }, + { + name: "fallback to current context", + serverName: "foo.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "bar.com": {Token: "bar"}, + }, + Contexts: map[string]*clientcmdapi.Context{ + "ctx": { + AuthInfo: "bar.com", + }, + }, + CurrentContext: "ctx", + }, + expected: rest.Config{BearerToken: "bar"}, + }, + { + name: "exact match", + serverName: "foo.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "foo.com": {Token: "foo"}, + "*.com": {Token: "foo-star"}, + "bar.com": {Token: "bar"}, + }, + }, + expected: rest.Config{BearerToken: "foo"}, + }, + { + name: "partial star match", + serverName: "foo.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "*.com": {Token: "foo-star"}, + "bar.com": {Token: "bar"}, + }, + }, + expected: rest.Config{BearerToken: "foo-star"}, + }, + { + name: "full star match", + serverName: "foo.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "*": {Token: "star"}, + "bar.com": {Token: "bar"}, + }, + }, + expected: rest.Config{BearerToken: "star"}, + }, + { + name: "skip bad in cluster config", + serverName: "kubernetes.default.svc", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "*": {Token: "star"}, + "bar.com": {Token: "bar"}, + }, + }, + expected: rest.Config{BearerToken: "star"}, + }, + { + name: "most selective", + serverName: "one.two.three.com", + kubeconfig: clientcmdapi.Config{ + AuthInfos: map[string]*clientcmdapi.AuthInfo{ + "*.two.three.com": {Token: "first"}, + "*.three.com": {Token: "second"}, + "*.com": {Token: "third"}, + }, + }, + expected: rest.Config{BearerToken: "first"}, + }, + } + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + resolver := defaultAuthenticationInfoResolver{kubeconfig: tc.kubeconfig} + actual, err := resolver.ClientConfigFor(tc.serverName) + if err != nil { + t.Fatal(err) + } + actual.UserAgent = "" + actual.Timeout = 0 + + if !equality.Semantic.DeepEqual(*actual, tc.expected) { + t.Errorf("%v", diff.ObjectReflectDiff(tc.expected, *actual)) + } + }) + } + +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/client.go new file mode 100644 index 000000000..3af3a2f2b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/client.go @@ -0,0 +1,175 @@ +/* +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 config + +import ( + "encoding/json" + "errors" + "fmt" + "net" + "net/url" + + lru "github.com/hashicorp/golang-lru" + "k8s.io/api/admissionregistration/v1alpha1" + "k8s.io/apimachinery/pkg/runtime" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + webhookerrors "k8s.io/apiserver/pkg/admission/plugin/webhook/errors" + "k8s.io/client-go/rest" +) + +const ( + defaultCacheSize = 200 +) + +var ( + ErrNeedServiceOrURL = errors.New("webhook configuration must have either service or URL") +) + +// ClientManager builds REST clients to talk to webhooks. It caches the clients +// to avoid duplicate creation. +type ClientManager struct { + authInfoResolver AuthenticationInfoResolver + serviceResolver ServiceResolver + negotiatedSerializer runtime.NegotiatedSerializer + cache *lru.Cache +} + +// NewClientManager creates a ClientManager. +func NewClientManager() (ClientManager, error) { + cache, err := lru.New(defaultCacheSize) + if err != nil { + return ClientManager{}, err + } + return ClientManager{ + cache: cache, + }, nil +} + +// SetAuthenticationInfoResolverWrapper sets the +// AuthenticationInfoResolverWrapper. +func (cm *ClientManager) SetAuthenticationInfoResolverWrapper(wrapper AuthenticationInfoResolverWrapper) { + if wrapper != nil { + cm.authInfoResolver = wrapper(cm.authInfoResolver) + } +} + +// SetAuthenticationInfoResolver sets the AuthenticationInfoResolver. +func (cm *ClientManager) SetAuthenticationInfoResolver(resolver AuthenticationInfoResolver) { + cm.authInfoResolver = resolver +} + +// SetServiceResolver sets the ServiceResolver. +func (cm *ClientManager) SetServiceResolver(sr ServiceResolver) { + if sr != nil { + cm.serviceResolver = sr + } +} + +// SetNegotiatedSerializer sets the NegotiatedSerializer. +func (cm *ClientManager) SetNegotiatedSerializer(n runtime.NegotiatedSerializer) { + cm.negotiatedSerializer = n +} + +// Validate checks if ClientManager is properly set up. +func (cm *ClientManager) Validate() error { + var errs []error + if cm.negotiatedSerializer == nil { + errs = append(errs, fmt.Errorf("the ClientManager requires a negotiatedSerializer")) + } + if cm.serviceResolver == nil { + errs = append(errs, fmt.Errorf("the ClientManager requires a serviceResolver")) + } + if cm.authInfoResolver == nil { + errs = append(errs, fmt.Errorf("the ClientManager requires an authInfoResolver")) + } + return utilerrors.NewAggregate(errs) +} + +// HookClient get a RESTClient from the cache, or constructs one based on the +// webhook configuration. +func (cm *ClientManager) HookClient(h *v1alpha1.Webhook) (*rest.RESTClient, error) { + cacheKey, err := json.Marshal(h.ClientConfig) + if err != nil { + return nil, err + } + if client, ok := cm.cache.Get(string(cacheKey)); ok { + return client.(*rest.RESTClient), nil + } + + complete := func(cfg *rest.Config) (*rest.RESTClient, error) { + cfg.TLSClientConfig.CAData = h.ClientConfig.CABundle + cfg.ContentConfig.NegotiatedSerializer = cm.negotiatedSerializer + cfg.ContentConfig.ContentType = runtime.ContentTypeJSON + client, err := rest.UnversionedRESTClientFor(cfg) + if err == nil { + cm.cache.Add(string(cacheKey), client) + } + return client, err + } + + if svc := h.ClientConfig.Service; svc != nil { + serverName := svc.Name + "." + svc.Namespace + ".svc" + restConfig, err := cm.authInfoResolver.ClientConfigFor(serverName) + if err != nil { + return nil, err + } + cfg := rest.CopyConfig(restConfig) + host := serverName + ":443" + cfg.Host = "https://" + host + if svc.Path != nil { + cfg.APIPath = *svc.Path + } + cfg.TLSClientConfig.ServerName = serverName + + delegateDialer := cfg.Dial + if delegateDialer == nil { + delegateDialer = net.Dial + } + cfg.Dial = func(network, addr string) (net.Conn, error) { + if addr == host { + u, err := cm.serviceResolver.ResolveEndpoint(svc.Namespace, svc.Name) + if err != nil { + return nil, err + } + addr = u.Host + } + return delegateDialer(network, addr) + } + + return complete(cfg) + } + + if h.ClientConfig.URL == nil { + return nil, &webhookerrors.ErrCallingWebhook{WebhookName: h.Name, Reason: ErrNeedServiceOrURL} + } + + u, err := url.Parse(*h.ClientConfig.URL) + if err != nil { + return nil, &webhookerrors.ErrCallingWebhook{WebhookName: h.Name, Reason: fmt.Errorf("Unparsable URL: %v", err)} + } + + restConfig, err := cm.authInfoResolver.ClientConfigFor(u.Host) + if err != nil { + return nil, err + } + + cfg := rest.CopyConfig(restConfig) + cfg.Host = u.Host + cfg.APIPath = u.Path + + return complete(cfg) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/kubeconfig.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/kubeconfig.go new file mode 100644 index 000000000..1fdb22195 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/kubeconfig.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. +*/ + +package config + +import ( + "io" + + "k8s.io/apimachinery/pkg/util/yaml" +) + +// AdmissionConfig holds config data that is unique to each API server. +type AdmissionConfig struct { + // KubeConfigFile is the path to the kubeconfig file. + KubeConfigFile string `json:"kubeConfigFile"` +} + +// LoadConfig extract the KubeConfigFile from configFile +func LoadConfig(configFile io.Reader) (string, error) { + var kubeconfigFile string + if configFile != nil { + // TODO: move this to a versioned configuration file format + var config AdmissionConfig + d := yaml.NewYAMLOrJSONDecoder(configFile, 4096) + err := d.Decode(&config) + if err != nil { + return "", err + } + kubeconfigFile = config.KubeConfigFile + } + return kubeconfigFile, nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/serviceresolver.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/serviceresolver.go new file mode 100644 index 000000000..47b96a709 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/serviceresolver.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. +*/ + +package config + +import ( + "errors" + "fmt" + "net/url" +) + +// ServiceResolver knows how to convert a service reference into an actual location. +type ServiceResolver interface { + ResolveEndpoint(namespace, name string) (*url.URL, error) +} + +type defaultServiceResolver struct{} + +func NewDefaultServiceResolver() ServiceResolver { + return &defaultServiceResolver{} +} + +// ResolveEndpoint constructs a service URL from a given namespace and name +// note that the name and namespace are required and by default all created addresses use HTTPS scheme. +// for example: +// name=ross namespace=andromeda resolves to https://ross.andromeda.svc:443 +func (sr defaultServiceResolver) ResolveEndpoint(namespace, name string) (*url.URL, error) { + if len(name) == 0 || len(namespace) == 0 { + return nil, errors.New("cannot resolve an empty service name or namespace") + } + return &url.URL{Scheme: "https", Host: fmt.Sprintf("%s.%s.svc:443", name, namespace)}, nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/serviceresolver_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/serviceresolver_test.go new file mode 100644 index 000000000..6fd24d063 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/serviceresolver_test.go @@ -0,0 +1,58 @@ +/* +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 config + +import ( + "fmt" + "testing" +) + +func TestDefaultServiceResolver(t *testing.T) { + scenarios := []struct { + serviceName string + serviceNamespace string + expectedOutput string + expectError bool + }{ + // scenario 1: a service name along with a namespace resolves + {serviceName: "ross", serviceNamespace: "andromeda", expectedOutput: "https://ross.andromeda.svc:443"}, + // scenario 2: a service name without a namespace does not resolve + {serviceName: "ross", expectError: true}, + // scenario 3: cannot resolve an empty service name + {serviceNamespace: "andromeda", expectError: true}, + } + + // act + for index, scenario := range scenarios { + t.Run(fmt.Sprintf("scenario %d", index), func(t *testing.T) { + target := defaultServiceResolver{} + serviceURL, err := target.ResolveEndpoint(scenario.serviceNamespace, scenario.serviceName) + + if err != nil && !scenario.expectError { + t.Errorf("unexpected error has occurred = %v", err) + } + if err == nil && scenario.expectError { + t.Error("expected an error but got nothing") + } + if !scenario.expectError { + if serviceURL.String() != scenario.expectedOutput { + t.Errorf("expected = %s, got = %s", scenario.expectedOutput, serviceURL.String()) + } + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/BUILD similarity index 50% rename from vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/BUILD index 1b86ba458..288007238 100644 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/BUILD @@ -2,26 +2,25 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "go_default_library", - srcs = ["hpa.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa", + srcs = [ + "doc.go", + "errors.go", + "statuserror.go", + ], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/errors", visibility = ["//visibility:public"], deps = [ - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], ) go_test( name = "go_default_test", - srcs = ["hpa_test.go"], - importpath = "k8s.io/kubernetes/federation/pkg/federation-controller/util/hpa", + srcs = ["statuserror_test.go"], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/errors", library = ":go_default_library", - deps = [ - "//vendor/github.com/stretchr/testify/require:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - ], + deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], ) filegroup( diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/doc.go new file mode 100644 index 000000000..6e86a1b5f --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/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. +*/ + +// Package errors contains utilities for admission webhook specific errors +package errors // import "k8s.io/apiserver/pkg/admission/plugin/webhook/errors" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/errors.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/errors.go new file mode 100644 index 000000000..239615228 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/errors.go @@ -0,0 +1,34 @@ +/* +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 errors + +import "fmt" + +// ErrCallingWebhook is returned for transport-layer errors calling webhooks. It +// represents a failure to talk to the webhook, not the webhook rejecting a +// request. +type ErrCallingWebhook struct { + WebhookName string + Reason error +} + +func (e *ErrCallingWebhook) Error() string { + if e.Reason != nil { + return fmt.Sprintf("failed calling admission webhook %q: %v", e.WebhookName, e.Reason) + } + return fmt.Sprintf("failed calling admission webhook %q; no further details available", e.WebhookName) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror.go new file mode 100644 index 000000000..f37dec017 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror.go @@ -0,0 +1,47 @@ +/* +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 errors + +import ( + "fmt" + + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// ToStatusErr returns a StatusError with information about the webhook plugin +func ToStatusErr(webhookName string, result *metav1.Status) *apierrors.StatusError { + deniedBy := fmt.Sprintf("admission webhook %q denied the request", webhookName) + const noExp = "without explanation" + + if result == nil { + result = &metav1.Status{Status: metav1.StatusFailure} + } + + switch { + case len(result.Message) > 0: + result.Message = fmt.Sprintf("%s: %s", deniedBy, result.Message) + case len(result.Reason) > 0: + result.Message = fmt.Sprintf("%s: %s", deniedBy, result.Reason) + default: + result.Message = fmt.Sprintf("%s %s", deniedBy, noExp) + } + + return &apierrors.StatusError{ + ErrStatus: *result, + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror_test.go new file mode 100644 index 000000000..98b780b45 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/errors/statuserror_test.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 errors + +import ( + "fmt" + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func TestToStatusErr(t *testing.T) { + hookName := "foo" + deniedBy := fmt.Sprintf("admission webhook %q denied the request", hookName) + tests := []struct { + name string + result *metav1.Status + expectedError string + }{ + { + "nil result", + nil, + deniedBy + " without explanation", + }, + { + "only message", + &metav1.Status{ + Message: "you shall not pass", + }, + deniedBy + ": you shall not pass", + }, + { + "only reason", + &metav1.Status{ + Reason: metav1.StatusReasonForbidden, + }, + deniedBy + ": Forbidden", + }, + { + "message and reason", + &metav1.Status{ + Message: "you shall not pass", + Reason: metav1.StatusReasonForbidden, + }, + deniedBy + ": you shall not pass", + }, + { + "no message, no reason", + &metav1.Status{}, + deniedBy + " without explanation", + }, + } + for _, test := range tests { + err := ToStatusErr(hookName, test.result) + if err == nil || err.Error() != test.expectedError { + t.Errorf("%s: expected an error saying %q, but got %v", test.name, test.expectedError, err) + } + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/BUILD new file mode 100644 index 000000000..fabc75c15 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/BUILD @@ -0,0 +1,52 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "matcher.go", + ], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/namespace", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta: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/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/listers/core/v1:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["matcher_test.go"], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/namespace", + library = ":go_default_library", + deps = [ + "//vendor/k8s.io/api/admissionregistration/v1alpha1: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/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission: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/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/doc.go new file mode 100644 index 000000000..d1a285338 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/doc.go @@ -0,0 +1,20 @@ +/* +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 namespace defines the utilities that are used by the webhook +// plugin to decide if a webhook should be applied to an object based on its +// namespace. +package namespace // import "k8s.io/apiserver/pkg/admission/plugin/webhook/namespace" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/matcher.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/matcher.go new file mode 100644 index 000000000..48042c5a7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/matcher.go @@ -0,0 +1,117 @@ +/* +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 namespace + +import ( + "fmt" + + "k8s.io/api/admissionregistration/v1alpha1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/admission" + clientset "k8s.io/client-go/kubernetes" + corelisters "k8s.io/client-go/listers/core/v1" +) + +// Matcher decides if a request is exempted by the NamespaceSelector of a +// webhook configuration. +type Matcher struct { + NamespaceLister corelisters.NamespaceLister + Client clientset.Interface +} + +// Validate checks if the Matcher has a NamespaceLister and Client. +func (m *Matcher) Validate() error { + var errs []error + if m.NamespaceLister == nil { + errs = append(errs, fmt.Errorf("the namespace matcher requires a namespaceLister")) + } + if m.Client == nil { + errs = append(errs, fmt.Errorf("the namespace matcher requires a namespaceLister")) + } + return utilerrors.NewAggregate(errs) +} + +// GetNamespaceLabels gets the labels of the namespace related to the attr. +func (m *Matcher) GetNamespaceLabels(attr admission.Attributes) (map[string]string, error) { + // If the request itself is creating or updating a namespace, then get the + // labels from attr.Object, because namespaceLister doesn't have the latest + // namespace yet. + // + // However, if the request is deleting a namespace, then get the label from + // the namespace in the namespaceLister, because a delete request is not + // going to change the object, and attr.Object will be a DeleteOptions + // rather than a namespace object. + if attr.GetResource().Resource == "namespaces" && + len(attr.GetSubresource()) == 0 && + (attr.GetOperation() == admission.Create || attr.GetOperation() == admission.Update) { + accessor, err := meta.Accessor(attr.GetObject()) + if err != nil { + return nil, err + } + return accessor.GetLabels(), nil + } + + namespaceName := attr.GetNamespace() + namespace, err := m.NamespaceLister.Get(namespaceName) + if err != nil && !apierrors.IsNotFound(err) { + return nil, err + } + if apierrors.IsNotFound(err) { + // in case of latency in our caches, make a call direct to storage to verify that it truly exists or not + namespace, err = m.Client.CoreV1().Namespaces().Get(namespaceName, metav1.GetOptions{}) + if err != nil { + return nil, err + } + } + return namespace.Labels, nil +} + +// MatchNamespaceSelector decideds whether the request matches the +// namespaceSelctor of the webhook. Only when they match, the webhook is called. +func (m *Matcher) MatchNamespaceSelector(h *v1alpha1.Webhook, attr admission.Attributes) (bool, *apierrors.StatusError) { + namespaceName := attr.GetNamespace() + if len(namespaceName) == 0 && attr.GetResource().Resource != "namespaces" { + // If the request is about a cluster scoped resource, and it is not a + // namespace, it is exempted from all webhooks for now. + // TODO: figure out a way selective exempt cluster scoped resources. + // Also update the comment in types.go + return false, nil + } + namespaceLabels, err := m.GetNamespaceLabels(attr) + // this means the namespace is not found, for backwards compatibility, + // return a 404 + if apierrors.IsNotFound(err) { + status, ok := err.(apierrors.APIStatus) + if !ok { + return false, apierrors.NewInternalError(err) + } + return false, &apierrors.StatusError{status.Status()} + } + if err != nil { + return false, apierrors.NewInternalError(err) + } + // TODO: adding an LRU cache to cache the translation + selector, err := metav1.LabelSelectorAsSelector(h.NamespaceSelector) + if err != nil { + return false, apierrors.NewInternalError(err) + } + return selector.Matches(labels.Set(namespaceLabels)), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/matcher_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/matcher_test.go new file mode 100644 index 000000000..8b9889e97 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace/matcher_test.go @@ -0,0 +1,129 @@ +/* +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 namespace + +import ( + "reflect" + "testing" + + registrationv1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" +) + +type fakeNamespaceLister struct { + namespaces map[string]*corev1.Namespace +} + +func (f fakeNamespaceLister) List(selector labels.Selector) (ret []*corev1.Namespace, err error) { + return nil, nil +} +func (f fakeNamespaceLister) Get(name string) (*corev1.Namespace, error) { + ns, ok := f.namespaces[name] + if ok { + return ns, nil + } + return nil, errors.NewNotFound(corev1.Resource("namespaces"), name) +} + +func TestGetNamespaceLabels(t *testing.T) { + namespace1Labels := map[string]string{ + "runlevel": "1", + } + namespace1 := corev1.Namespace{ + ObjectMeta: metav1.ObjectMeta{ + Name: "1", + Labels: namespace1Labels, + }, + } + namespace2Labels := map[string]string{ + "runlevel": "2", + } + namespace2 := corev1.Namespace{ + ObjectMeta: metav1.ObjectMeta{ + Name: "2", + Labels: namespace2Labels, + }, + } + namespaceLister := fakeNamespaceLister{map[string]*corev1.Namespace{ + "1": &namespace1, + }, + } + + tests := []struct { + name string + attr admission.Attributes + expectedLabels map[string]string + }{ + { + name: "request is for creating namespace, the labels should be from the object itself", + attr: admission.NewAttributesRecord(&namespace2, nil, schema.GroupVersionKind{}, "", namespace2.Name, schema.GroupVersionResource{Resource: "namespaces"}, "", admission.Create, nil), + expectedLabels: namespace2Labels, + }, + { + name: "request is for updating namespace, the labels should be from the new object", + attr: admission.NewAttributesRecord(&namespace2, nil, schema.GroupVersionKind{}, namespace2.Name, namespace2.Name, schema.GroupVersionResource{Resource: "namespaces"}, "", admission.Update, nil), + expectedLabels: namespace2Labels, + }, + { + name: "request is for deleting namespace, the labels should be from the cache", + attr: admission.NewAttributesRecord(&namespace2, nil, schema.GroupVersionKind{}, namespace1.Name, namespace1.Name, schema.GroupVersionResource{Resource: "namespaces"}, "", admission.Delete, nil), + expectedLabels: namespace1Labels, + }, + { + name: "request is for namespace/finalizer", + attr: admission.NewAttributesRecord(nil, nil, schema.GroupVersionKind{}, namespace1.Name, "mock-name", schema.GroupVersionResource{Resource: "namespaces"}, "finalizers", admission.Create, nil), + expectedLabels: namespace1Labels, + }, + { + name: "request is for pod", + attr: admission.NewAttributesRecord(nil, nil, schema.GroupVersionKind{}, namespace1.Name, "mock-name", schema.GroupVersionResource{Resource: "pods"}, "", admission.Create, nil), + expectedLabels: namespace1Labels, + }, + } + matcher := Matcher{ + NamespaceLister: namespaceLister, + } + for _, tt := range tests { + actualLabels, err := matcher.GetNamespaceLabels(tt.attr) + if err != nil { + t.Error(err) + } + if !reflect.DeepEqual(actualLabels, tt.expectedLabels) { + t.Errorf("expected labels to be %#v, got %#v", tt.expectedLabels, actualLabels) + } + } +} + +func TestExemptClusterScopedResource(t *testing.T) { + hook := ®istrationv1alpha1.Webhook{ + NamespaceSelector: &metav1.LabelSelector{}, + } + attr := admission.NewAttributesRecord(nil, nil, schema.GroupVersionKind{}, "", "mock-name", schema.GroupVersionResource{Version: "v1", Resource: "nodes"}, "", admission.Create, nil) + matcher := Matcher{} + matches, err := matcher.MatchNamespaceSelector(hook, attr) + if err != nil { + t.Fatal(err) + } + if matches { + t.Errorf("cluster scoped resources (but not a namespace) should be exempted from all webhooks") + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/BUILD new file mode 100644 index 000000000..f838848de --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "admissionreview.go", + "doc.go", + ], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/request", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/admission/v1alpha1:go_default_library", + "//vendor/k8s.io/api/authentication/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/apiserver/pkg/admission: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/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/admissionreview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/admissionreview.go new file mode 100644 index 000000000..e34436ff6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/admissionreview.go @@ -0,0 +1,69 @@ +/* +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 request + +import ( + admissionv1alpha1 "k8s.io/api/admission/v1alpha1" + authenticationv1 "k8s.io/api/authentication/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" +) + +// CreateAdmissionReview creates an AdmissionReview for the provided admission.Attributes +func CreateAdmissionReview(attr admission.Attributes) admissionv1alpha1.AdmissionReview { + gvk := attr.GetKind() + gvr := attr.GetResource() + aUserInfo := attr.GetUserInfo() + userInfo := authenticationv1.UserInfo{ + Extra: make(map[string]authenticationv1.ExtraValue), + Groups: aUserInfo.GetGroups(), + UID: aUserInfo.GetUID(), + Username: aUserInfo.GetName(), + } + + // Convert the extra information in the user object + for key, val := range aUserInfo.GetExtra() { + userInfo.Extra[key] = authenticationv1.ExtraValue(val) + } + + return admissionv1alpha1.AdmissionReview{ + Spec: admissionv1alpha1.AdmissionReviewSpec{ + Name: attr.GetName(), + Namespace: attr.GetNamespace(), + Resource: metav1.GroupVersionResource{ + Group: gvr.Group, + Resource: gvr.Resource, + Version: gvr.Version, + }, + SubResource: attr.GetSubresource(), + Operation: admissionv1alpha1.Operation(attr.GetOperation()), + Object: runtime.RawExtension{ + Object: attr.GetObject(), + }, + OldObject: runtime.RawExtension{ + Object: attr.GetOldObject(), + }, + Kind: metav1.GroupVersionKind{ + Group: gvk.Group, + Kind: gvk.Kind, + Version: gvk.Version, + }, + UserInfo: userInfo, + }, + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/doc.go new file mode 100644 index 000000000..fbacf3371 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/request/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. +*/ + +// Package request creates admissionReview request based on admission attributes. +package request // import "k8s.io/apiserver/pkg/admission/plugin/webhook/request" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/BUILD new file mode 100644 index 000000000..2b05eea01 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = ["rules.go"], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/rules", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["rules_test.go"], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/rules", + library = ":go_default_library", + deps = [ + "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission: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/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules.go new file mode 100644 index 000000000..d13ea5928 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules.go @@ -0,0 +1,95 @@ +/* +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 rules + +import ( + "strings" + + "k8s.io/api/admissionregistration/v1alpha1" + "k8s.io/apiserver/pkg/admission" +) + +// Matcher determines if the Attr matches the Rule. +type Matcher struct { + Rule v1alpha1.RuleWithOperations + Attr admission.Attributes +} + +// Matches returns if the Attr matches the Rule. +func (r *Matcher) Matches() bool { + return r.operation() && + r.group() && + r.version() && + r.resource() +} + +func exactOrWildcard(items []string, requested string) bool { + for _, item := range items { + if item == "*" { + return true + } + if item == requested { + return true + } + } + + return false +} + +func (r *Matcher) group() bool { + return exactOrWildcard(r.Rule.APIGroups, r.Attr.GetResource().Group) +} + +func (r *Matcher) version() bool { + return exactOrWildcard(r.Rule.APIVersions, r.Attr.GetResource().Version) +} + +func (r *Matcher) operation() bool { + attrOp := r.Attr.GetOperation() + for _, op := range r.Rule.Operations { + if op == v1alpha1.OperationAll { + return true + } + // The constants are the same such that this is a valid cast (and this + // is tested). + if op == v1alpha1.OperationType(attrOp) { + return true + } + } + return false +} + +func splitResource(resSub string) (res, sub string) { + parts := strings.SplitN(resSub, "/", 2) + if len(parts) == 2 { + return parts[0], parts[1] + } + return parts[0], "" +} + +func (r *Matcher) resource() bool { + opRes, opSub := r.Attr.GetResource().Resource, r.Attr.GetSubresource() + for _, res := range r.Rule.Resources { + res, sub := splitResource(res) + resMatch := res == "*" || res == opRes + subMatch := sub == "*" || sub == opSub + if resMatch && subMatch { + return true + } + } + return false +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules_test.go new file mode 100644 index 000000000..40c0f36d6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules_test.go @@ -0,0 +1,300 @@ +/* +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 rules + +import ( + "testing" + + adreg "k8s.io/api/admissionregistration/v1alpha1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" +) + +type ruleTest struct { + rule adreg.RuleWithOperations + match []admission.Attributes + noMatch []admission.Attributes +} +type tests map[string]ruleTest + +func a(group, version, resource, subresource, name string, operation admission.Operation) admission.Attributes { + return admission.NewAttributesRecord( + nil, nil, + schema.GroupVersionKind{Group: group, Version: version, Kind: "k" + resource}, + "ns", name, + schema.GroupVersionResource{Group: group, Version: version, Resource: resource}, subresource, + operation, + nil, + ) +} + +func attrList(a ...admission.Attributes) []admission.Attributes { + return a +} + +func TestGroup(t *testing.T) { + table := tests{ + "wildcard": { + rule: adreg.RuleWithOperations{ + Rule: adreg.Rule{ + APIGroups: []string{"*"}, + }, + }, + match: attrList( + a("g", "v", "r", "", "name", admission.Create), + ), + }, + "exact": { + rule: adreg.RuleWithOperations{ + Rule: adreg.Rule{ + APIGroups: []string{"g1", "g2"}, + }, + }, + match: attrList( + a("g1", "v", "r", "", "name", admission.Create), + a("g2", "v2", "r3", "", "name", admission.Create), + ), + noMatch: attrList( + a("g3", "v", "r", "", "name", admission.Create), + a("g4", "v", "r", "", "name", admission.Create), + ), + }, + } + + for name, tt := range table { + for _, m := range tt.match { + r := Matcher{tt.rule, m} + if !r.group() { + t.Errorf("%v: expected match %#v", name, m) + } + } + for _, m := range tt.noMatch { + r := Matcher{tt.rule, m} + if r.group() { + t.Errorf("%v: expected no match %#v", name, m) + } + } + } +} + +func TestVersion(t *testing.T) { + table := tests{ + "wildcard": { + rule: adreg.RuleWithOperations{ + Rule: adreg.Rule{ + APIVersions: []string{"*"}, + }, + }, + match: attrList( + a("g", "v", "r", "", "name", admission.Create), + ), + }, + "exact": { + rule: adreg.RuleWithOperations{ + Rule: adreg.Rule{ + APIVersions: []string{"v1", "v2"}, + }, + }, + match: attrList( + a("g1", "v1", "r", "", "name", admission.Create), + a("g2", "v2", "r", "", "name", admission.Create), + ), + noMatch: attrList( + a("g1", "v3", "r", "", "name", admission.Create), + a("g2", "v4", "r", "", "name", admission.Create), + ), + }, + } + for name, tt := range table { + for _, m := range tt.match { + r := Matcher{tt.rule, m} + if !r.version() { + t.Errorf("%v: expected match %#v", name, m) + } + } + for _, m := range tt.noMatch { + r := Matcher{tt.rule, m} + if r.version() { + t.Errorf("%v: expected no match %#v", name, m) + } + } + } +} + +func TestOperation(t *testing.T) { + table := tests{ + "wildcard": { + rule: adreg.RuleWithOperations{Operations: []adreg.OperationType{adreg.OperationAll}}, + match: attrList( + a("g", "v", "r", "", "name", admission.Create), + a("g", "v", "r", "", "name", admission.Update), + a("g", "v", "r", "", "name", admission.Delete), + a("g", "v", "r", "", "name", admission.Connect), + ), + }, + "create": { + rule: adreg.RuleWithOperations{Operations: []adreg.OperationType{adreg.Create}}, + match: attrList( + a("g", "v", "r", "", "name", admission.Create), + ), + noMatch: attrList( + a("g", "v", "r", "", "name", admission.Update), + a("g", "v", "r", "", "name", admission.Delete), + a("g", "v", "r", "", "name", admission.Connect), + ), + }, + "update": { + rule: adreg.RuleWithOperations{Operations: []adreg.OperationType{adreg.Update}}, + match: attrList( + a("g", "v", "r", "", "name", admission.Update), + ), + noMatch: attrList( + a("g", "v", "r", "", "name", admission.Create), + a("g", "v", "r", "", "name", admission.Delete), + a("g", "v", "r", "", "name", admission.Connect), + ), + }, + "delete": { + rule: adreg.RuleWithOperations{Operations: []adreg.OperationType{adreg.Delete}}, + match: attrList( + a("g", "v", "r", "", "name", admission.Delete), + ), + noMatch: attrList( + a("g", "v", "r", "", "name", admission.Create), + a("g", "v", "r", "", "name", admission.Update), + a("g", "v", "r", "", "name", admission.Connect), + ), + }, + "connect": { + rule: adreg.RuleWithOperations{Operations: []adreg.OperationType{adreg.Connect}}, + match: attrList( + a("g", "v", "r", "", "name", admission.Connect), + ), + noMatch: attrList( + a("g", "v", "r", "", "name", admission.Create), + a("g", "v", "r", "", "name", admission.Update), + a("g", "v", "r", "", "name", admission.Delete), + ), + }, + "multiple": { + rule: adreg.RuleWithOperations{Operations: []adreg.OperationType{adreg.Update, adreg.Delete}}, + match: attrList( + a("g", "v", "r", "", "name", admission.Update), + a("g", "v", "r", "", "name", admission.Delete), + ), + noMatch: attrList( + a("g", "v", "r", "", "name", admission.Create), + a("g", "v", "r", "", "name", admission.Connect), + ), + }, + } + for name, tt := range table { + for _, m := range tt.match { + r := Matcher{tt.rule, m} + if !r.operation() { + t.Errorf("%v: expected match %#v", name, m) + } + } + for _, m := range tt.noMatch { + r := Matcher{tt.rule, m} + if r.operation() { + t.Errorf("%v: expected no match %#v", name, m) + } + } + } +} + +func TestResource(t *testing.T) { + table := tests{ + "no subresources": { + rule: adreg.RuleWithOperations{ + Rule: adreg.Rule{ + Resources: []string{"*"}, + }, + }, + match: attrList( + a("g", "v", "r", "", "name", admission.Create), + a("2", "v", "r2", "", "name", admission.Create), + ), + noMatch: attrList( + a("g", "v", "r", "exec", "name", admission.Create), + a("2", "v", "r2", "proxy", "name", admission.Create), + ), + }, + "r & subresources": { + rule: adreg.RuleWithOperations{ + Rule: adreg.Rule{ + Resources: []string{"r/*"}, + }, + }, + match: attrList( + a("g", "v", "r", "", "name", admission.Create), + a("g", "v", "r", "exec", "name", admission.Create), + ), + noMatch: attrList( + a("2", "v", "r2", "", "name", admission.Create), + a("2", "v", "r2", "proxy", "name", admission.Create), + ), + }, + "r & subresources or r2": { + rule: adreg.RuleWithOperations{ + Rule: adreg.Rule{ + Resources: []string{"r/*", "r2"}, + }, + }, + match: attrList( + a("g", "v", "r", "", "name", admission.Create), + a("g", "v", "r", "exec", "name", admission.Create), + a("2", "v", "r2", "", "name", admission.Create), + ), + noMatch: attrList( + a("2", "v", "r2", "proxy", "name", admission.Create), + ), + }, + "proxy or exec": { + rule: adreg.RuleWithOperations{ + Rule: adreg.Rule{ + Resources: []string{"*/proxy", "*/exec"}, + }, + }, + match: attrList( + a("g", "v", "r", "exec", "name", admission.Create), + a("2", "v", "r2", "proxy", "name", admission.Create), + a("2", "v", "r3", "proxy", "name", admission.Create), + ), + noMatch: attrList( + a("g", "v", "r", "", "name", admission.Create), + a("2", "v", "r2", "", "name", admission.Create), + a("2", "v", "r4", "scale", "name", admission.Create), + ), + }, + } + for name, tt := range table { + for _, m := range tt.match { + r := Matcher{tt.rule, m} + if !r.resource() { + t.Errorf("%v: expected match %#v", name, m) + } + } + for _, m := range tt.noMatch { + r := Matcher{tt.rule, m} + if r.resource() { + t.Errorf("%v: expected no match %#v", name, m) + } + } + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/BUILD new file mode 100644 index 000000000..161bd30ee --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/BUILD @@ -0,0 +1,70 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "admission.go", + "doc.go", + ], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/validating", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/admission/v1alpha1:go_default_library", + "//vendor/k8s.io/api/admissionregistration/v1alpha1: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/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/configuration:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/initializer:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/config:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/errors:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/namespace:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/request:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/rules:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned:go_default_library", + "//vendor/k8s.io/client-go/informers:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = [ + "admission_test.go", + "certs_test.go", + ], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/validating", + library = ":go_default_library", + deps = [ + "//vendor/k8s.io/api/admission/v1alpha1:go_default_library", + "//vendor/k8s.io/api/admissionregistration/v1alpha1: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/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/config:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/user: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"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/admission.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/admission.go new file mode 100644 index 000000000..254781cd2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/admission.go @@ -0,0 +1,316 @@ +/* +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 validating delegates admission checks to dynamically configured +// validating webhooks. +package validating + +import ( + "context" + "fmt" + "io" + "sync" + "time" + + "github.com/golang/glog" + + admissionv1alpha1 "k8s.io/api/admission/v1alpha1" + "k8s.io/api/admissionregistration/v1alpha1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/admission/configuration" + genericadmissioninit "k8s.io/apiserver/pkg/admission/initializer" + "k8s.io/apiserver/pkg/admission/plugin/webhook/config" + webhookerrors "k8s.io/apiserver/pkg/admission/plugin/webhook/errors" + "k8s.io/apiserver/pkg/admission/plugin/webhook/namespace" + "k8s.io/apiserver/pkg/admission/plugin/webhook/request" + "k8s.io/apiserver/pkg/admission/plugin/webhook/rules" + "k8s.io/apiserver/pkg/admission/plugin/webhook/versioned" + "k8s.io/client-go/informers" + clientset "k8s.io/client-go/kubernetes" +) + +const ( + // Name of admission plug-in + PluginName = "GenericAdmissionWebhook" +) + +// Register registers a plugin +func Register(plugins *admission.Plugins) { + plugins.Register(PluginName, func(configFile io.Reader) (admission.Interface, error) { + plugin, err := NewGenericAdmissionWebhook(configFile) + if err != nil { + return nil, err + } + + return plugin, nil + }) +} + +// WebhookSource can list dynamic webhook plugins. +type WebhookSource interface { + Run(stopCh <-chan struct{}) + Webhooks() (*v1alpha1.ValidatingWebhookConfiguration, error) +} + +// NewGenericAdmissionWebhook returns a generic admission webhook plugin. +func NewGenericAdmissionWebhook(configFile io.Reader) (*GenericAdmissionWebhook, error) { + kubeconfigFile, err := config.LoadConfig(configFile) + if err != nil { + return nil, err + } + + cm, err := config.NewClientManager() + if err != nil { + return nil, err + } + authInfoResolver, err := config.NewDefaultAuthenticationInfoResolver(kubeconfigFile) + if err != nil { + return nil, err + } + // Set defaults which may be overridden later. + cm.SetAuthenticationInfoResolver(authInfoResolver) + cm.SetServiceResolver(config.NewDefaultServiceResolver()) + + return &GenericAdmissionWebhook{ + Handler: admission.NewHandler( + admission.Connect, + admission.Create, + admission.Delete, + admission.Update, + ), + clientManager: cm, + }, nil +} + +// GenericAdmissionWebhook is an implementation of admission.Interface. +type GenericAdmissionWebhook struct { + *admission.Handler + hookSource WebhookSource + namespaceMatcher namespace.Matcher + clientManager config.ClientManager + convertor versioned.Convertor +} + +var ( + _ = genericadmissioninit.WantsExternalKubeClientSet(&GenericAdmissionWebhook{}) +) + +// TODO find a better way wire this, but keep this pull small for now. +func (a *GenericAdmissionWebhook) SetAuthenticationInfoResolverWrapper(wrapper config.AuthenticationInfoResolverWrapper) { + a.clientManager.SetAuthenticationInfoResolverWrapper(wrapper) +} + +// SetServiceResolver sets a service resolver for the webhook admission plugin. +// Passing a nil resolver does not have an effect, instead a default one will be used. +func (a *GenericAdmissionWebhook) SetServiceResolver(sr config.ServiceResolver) { + a.clientManager.SetServiceResolver(sr) +} + +// SetScheme sets a serializer(NegotiatedSerializer) which is derived from the scheme +func (a *GenericAdmissionWebhook) SetScheme(scheme *runtime.Scheme) { + if scheme != nil { + a.clientManager.SetNegotiatedSerializer(serializer.NegotiatedSerializerWrapper(runtime.SerializerInfo{ + Serializer: serializer.NewCodecFactory(scheme).LegacyCodec(admissionv1alpha1.SchemeGroupVersion), + })) + a.convertor.Scheme = scheme + } +} + +// WantsExternalKubeClientSet defines a function which sets external ClientSet for admission plugins that need it +func (a *GenericAdmissionWebhook) SetExternalKubeClientSet(client clientset.Interface) { + a.namespaceMatcher.Client = client + a.hookSource = configuration.NewValidatingWebhookConfigurationManager(client.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations()) +} + +// SetExternalKubeInformerFactory implements the WantsExternalKubeInformerFactory interface. +func (a *GenericAdmissionWebhook) SetExternalKubeInformerFactory(f informers.SharedInformerFactory) { + namespaceInformer := f.Core().V1().Namespaces() + a.namespaceMatcher.NamespaceLister = namespaceInformer.Lister() + a.SetReadyFunc(namespaceInformer.Informer().HasSynced) +} + +// ValidateInitialization implements the InitializationValidator interface. +func (a *GenericAdmissionWebhook) ValidateInitialization() error { + if a.hookSource == nil { + return fmt.Errorf("the GenericAdmissionWebhook admission plugin requires a Kubernetes client to be provided") + } + if err := a.namespaceMatcher.Validate(); err != nil { + return fmt.Errorf("the GenericAdmissionWebhook.namespaceMatcher is not properly setup: %v", err) + } + if err := a.clientManager.Validate(); err != nil { + return fmt.Errorf("the GenericAdmissionWebhook.clientManager is not properly setup: %v", err) + } + if err := a.convertor.Validate(); err != nil { + return fmt.Errorf("the GenericAdmissionWebhook.convertor is not properly setup: %v", err) + } + go a.hookSource.Run(wait.NeverStop) + return nil +} + +func (a *GenericAdmissionWebhook) loadConfiguration(attr admission.Attributes) (*v1alpha1.ValidatingWebhookConfiguration, error) { + hookConfig, err := a.hookSource.Webhooks() + // if Webhook configuration is disabled, fail open + if err == configuration.ErrDisabled { + return &v1alpha1.ValidatingWebhookConfiguration{}, nil + } + if err != nil { + e := apierrors.NewServerTimeout(attr.GetResource().GroupResource(), string(attr.GetOperation()), 1) + e.ErrStatus.Message = fmt.Sprintf("Unable to refresh the Webhook configuration: %v", err) + e.ErrStatus.Reason = "LoadingConfiguration" + e.ErrStatus.Details.Causes = append(e.ErrStatus.Details.Causes, metav1.StatusCause{ + Type: "ValidatingWebhookConfigurationFailure", + Message: "An error has occurred while refreshing the ValidatingWebhook configuration, no resources can be created/updated/deleted/connected until a refresh succeeds.", + }) + return nil, e + } + return hookConfig, nil +} + +// Admit makes an admission decision based on the request attributes. +func (a *GenericAdmissionWebhook) Admit(attr admission.Attributes) error { + hookConfig, err := a.loadConfiguration(attr) + if err != nil { + return err + } + hooks := hookConfig.Webhooks + ctx := context.TODO() + + var relevantHooks []*v1alpha1.Webhook + for i := range hooks { + call, err := a.shouldCallHook(&hooks[i], attr) + if err != nil { + return err + } + if call { + relevantHooks = append(relevantHooks, &hooks[i]) + } + } + + if len(relevantHooks) == 0 { + // no matching hooks + return nil + } + + // convert the object to the external version before sending it to the webhook + versionedAttr := versioned.Attributes{ + Attributes: attr, + } + if oldObj := attr.GetOldObject(); oldObj != nil { + out, err := a.convertor.ConvertToGVK(oldObj, attr.GetKind()) + if err != nil { + return apierrors.NewInternalError(err) + } + versionedAttr.OldObject = out + } + if obj := attr.GetObject(); obj != nil { + out, err := a.convertor.ConvertToGVK(obj, attr.GetKind()) + if err != nil { + return apierrors.NewInternalError(err) + } + versionedAttr.Object = out + } + + wg := sync.WaitGroup{} + errCh := make(chan error, len(relevantHooks)) + wg.Add(len(relevantHooks)) + for i := range relevantHooks { + go func(hook *v1alpha1.Webhook) { + defer wg.Done() + + t := time.Now() + err := a.callHook(ctx, hook, versionedAttr) + admission.Metrics.ObserveWebhook(time.Since(t), err != nil, hook, attr) + if err == nil { + return + } + + ignoreClientCallFailures := hook.FailurePolicy != nil && *hook.FailurePolicy == v1alpha1.Ignore + if callErr, ok := err.(*webhookerrors.ErrCallingWebhook); ok { + if ignoreClientCallFailures { + glog.Warningf("Failed calling webhook, failing open %v: %v", hook.Name, callErr) + utilruntime.HandleError(callErr) + // Since we are failing open to begin with, we do not send an error down the channel + return + } + + glog.Warningf("Failed calling webhook, failing closed %v: %v", hook.Name, err) + errCh <- apierrors.NewInternalError(err) + return + } + + glog.Warningf("rejected by webhook %q: %#v", hook.Name, err) + errCh <- err + }(relevantHooks[i]) + } + wg.Wait() + close(errCh) + + var errs []error + for e := range errCh { + errs = append(errs, e) + } + if len(errs) == 0 { + return nil + } + if len(errs) > 1 { + for i := 1; i < len(errs); i++ { + // TODO: merge status errors; until then, just return the first one. + utilruntime.HandleError(errs[i]) + } + } + return errs[0] +} + +func (a *GenericAdmissionWebhook) shouldCallHook(h *v1alpha1.Webhook, attr admission.Attributes) (bool, *apierrors.StatusError) { + var matches bool + for _, r := range h.Rules { + m := rules.Matcher{Rule: r, Attr: attr} + if m.Matches() { + matches = true + break + } + } + if !matches { + return false, nil + } + + return a.namespaceMatcher.MatchNamespaceSelector(h, attr) +} + +func (a *GenericAdmissionWebhook) callHook(ctx context.Context, h *v1alpha1.Webhook, attr admission.Attributes) error { + // Make the webhook request + request := request.CreateAdmissionReview(attr) + client, err := a.clientManager.HookClient(h) + if err != nil { + return &webhookerrors.ErrCallingWebhook{WebhookName: h.Name, Reason: err} + } + response := &admissionv1alpha1.AdmissionReview{} + if err := client.Post().Context(ctx).Body(&request).Do().Into(response); err != nil { + return &webhookerrors.ErrCallingWebhook{WebhookName: h.Name, Reason: err} + } + + if response.Status.Allowed { + return nil + } + + return webhookerrors.ToStatusErr(h.Name, response.Status.Result) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/admission_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/admission_test.go new file mode 100644 index 000000000..4ad25f3e9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/admission_test.go @@ -0,0 +1,648 @@ +/* +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 validating + +import ( + "crypto/tls" + "crypto/x509" + "encoding/json" + "fmt" + "net/http" + "net/http/httptest" + "net/url" + "strings" + "sync/atomic" + "testing" + + "k8s.io/api/admission/v1alpha1" + registrationv1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/admission/plugin/webhook/config" + "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/client-go/rest" +) + +type fakeHookSource struct { + hooks []registrationv1alpha1.Webhook + err error +} + +func (f *fakeHookSource) Webhooks() (*registrationv1alpha1.ValidatingWebhookConfiguration, error) { + if f.err != nil { + return nil, f.err + } + for i, h := range f.hooks { + if h.NamespaceSelector == nil { + f.hooks[i].NamespaceSelector = &metav1.LabelSelector{} + } + } + return ®istrationv1alpha1.ValidatingWebhookConfiguration{Webhooks: f.hooks}, nil +} + +func (f *fakeHookSource) Run(stopCh <-chan struct{}) {} + +type fakeServiceResolver struct { + base url.URL +} + +func (f fakeServiceResolver) ResolveEndpoint(namespace, name string) (*url.URL, error) { + if namespace == "failResolve" { + return nil, fmt.Errorf("couldn't resolve service location") + } + u := f.base + return &u, nil +} + +type fakeNamespaceLister struct { + namespaces map[string]*corev1.Namespace +} + +func (f fakeNamespaceLister) List(selector labels.Selector) (ret []*corev1.Namespace, err error) { + return nil, nil +} +func (f fakeNamespaceLister) Get(name string) (*corev1.Namespace, error) { + ns, ok := f.namespaces[name] + if ok { + return ns, nil + } + return nil, errors.NewNotFound(corev1.Resource("namespaces"), name) +} + +// ccfgSVC returns a client config using the service reference mechanism. +func ccfgSVC(urlPath string) registrationv1alpha1.WebhookClientConfig { + return registrationv1alpha1.WebhookClientConfig{ + Service: ®istrationv1alpha1.ServiceReference{ + Name: "webhook-test", + Namespace: "default", + Path: &urlPath, + }, + CABundle: caCert, + } +} + +type urlConfigGenerator struct { + baseURL *url.URL +} + +// ccfgURL returns a client config using the URL mechanism. +func (c urlConfigGenerator) ccfgURL(urlPath string) registrationv1alpha1.WebhookClientConfig { + u2 := *c.baseURL + u2.Path = urlPath + urlString := u2.String() + return registrationv1alpha1.WebhookClientConfig{ + URL: &urlString, + CABundle: caCert, + } +} + +// TestAdmit tests that GenericAdmissionWebhook#Admit works as expected +func TestAdmit(t *testing.T) { + scheme := runtime.NewScheme() + v1alpha1.AddToScheme(scheme) + corev1.AddToScheme(scheme) + + testServer := newTestServer(t) + testServer.StartTLS() + defer testServer.Close() + serverURL, err := url.ParseRequestURI(testServer.URL) + if err != nil { + t.Fatalf("this should never happen? %v", err) + } + wh, err := NewGenericAdmissionWebhook(nil) + if err != nil { + t.Fatal(err) + } + cm, err := config.NewClientManager() + if err != nil { + t.Fatalf("cannot create client manager: %v", err) + } + cm.SetAuthenticationInfoResolver(newFakeAuthenticationInfoResolver(new(int32))) + cm.SetServiceResolver(fakeServiceResolver{base: *serverURL}) + wh.clientManager = cm + wh.SetScheme(scheme) + if err = wh.clientManager.Validate(); err != nil { + t.Fatal(err) + } + namespace := "webhook-test" + wh.namespaceMatcher.NamespaceLister = fakeNamespaceLister{map[string]*corev1.Namespace{ + namespace: { + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "runlevel": "0", + }, + }, + }, + }, + } + + // Set up a test object for the call + kind := corev1.SchemeGroupVersion.WithKind("Pod") + name := "my-pod" + object := corev1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "pod.name": name, + }, + Name: name, + Namespace: namespace, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Pod", + }, + } + oldObject := corev1.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace}, + } + operation := admission.Update + resource := corev1.Resource("pods").WithVersion("v1") + subResource := "" + userInfo := user.DefaultInfo{ + Name: "webhook-test", + UID: "webhook-test", + } + + ccfgURL := urlConfigGenerator{serverURL}.ccfgURL + + type test struct { + hookSource fakeHookSource + path string + expectAllow bool + errorContains string + } + + matchEverythingRules := []registrationv1alpha1.RuleWithOperations{{ + Operations: []registrationv1alpha1.OperationType{registrationv1alpha1.OperationAll}, + Rule: registrationv1alpha1.Rule{ + APIGroups: []string{"*"}, + APIVersions: []string{"*"}, + Resources: []string{"*/*"}, + }, + }} + + policyFail := registrationv1alpha1.Fail + policyIgnore := registrationv1alpha1.Ignore + + table := map[string]test{ + "no match": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "nomatch", + ClientConfig: ccfgSVC("disallow"), + Rules: []registrationv1alpha1.RuleWithOperations{{ + Operations: []registrationv1alpha1.OperationType{registrationv1alpha1.Create}, + }}, + }}, + }, + expectAllow: true, + }, + "match & allow": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "allow", + ClientConfig: ccfgSVC("allow"), + Rules: matchEverythingRules, + }}, + }, + expectAllow: true, + }, + "match & disallow": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "disallow", + ClientConfig: ccfgSVC("disallow"), + Rules: matchEverythingRules, + }}, + }, + errorContains: "without explanation", + }, + "match & disallow ii": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "disallowReason", + ClientConfig: ccfgSVC("disallowReason"), + Rules: matchEverythingRules, + }}, + }, + errorContains: "you shall not pass", + }, + "match & disallow & but allowed because namespaceSelector exempt the namespace": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "disallow", + ClientConfig: ccfgSVC("disallow"), + Rules: newMatchEverythingRules(), + NamespaceSelector: &metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{{ + Key: "runlevel", + Values: []string{"1"}, + Operator: metav1.LabelSelectorOpIn, + }}, + }, + }}, + }, + expectAllow: true, + }, + "match & disallow & but allowed because namespaceSelector exempt the namespace ii": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "disallow", + ClientConfig: ccfgSVC("disallow"), + Rules: newMatchEverythingRules(), + NamespaceSelector: &metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{{ + Key: "runlevel", + Values: []string{"0"}, + Operator: metav1.LabelSelectorOpNotIn, + }}, + }, + }}, + }, + expectAllow: true, + }, + "match & fail (but allow because fail open)": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "internalErr A", + ClientConfig: ccfgSVC("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyIgnore, + }, { + Name: "internalErr B", + ClientConfig: ccfgSVC("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyIgnore, + }, { + Name: "internalErr C", + ClientConfig: ccfgSVC("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyIgnore, + }}, + }, + expectAllow: true, + }, + "match & fail (but disallow because fail closed on nil)": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "internalErr A", + ClientConfig: ccfgSVC("internalErr"), + Rules: matchEverythingRules, + }, { + Name: "internalErr B", + ClientConfig: ccfgSVC("internalErr"), + Rules: matchEverythingRules, + }, { + Name: "internalErr C", + ClientConfig: ccfgSVC("internalErr"), + Rules: matchEverythingRules, + }}, + }, + expectAllow: false, + }, + "match & fail (but fail because fail closed)": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "internalErr A", + ClientConfig: ccfgSVC("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyFail, + }, { + Name: "internalErr B", + ClientConfig: ccfgSVC("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyFail, + }, { + Name: "internalErr C", + ClientConfig: ccfgSVC("internalErr"), + Rules: matchEverythingRules, + FailurePolicy: &policyFail, + }}, + }, + expectAllow: false, + }, + "match & allow (url)": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "allow", + ClientConfig: ccfgURL("allow"), + Rules: matchEverythingRules, + }}, + }, + expectAllow: true, + }, + "match & disallow (url)": { + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "disallow", + ClientConfig: ccfgURL("disallow"), + Rules: matchEverythingRules, + }}, + }, + errorContains: "without explanation", + }, + // No need to test everything with the url case, since only the + // connection is different. + } + + for name, tt := range table { + if !strings.Contains(name, "no match") { + continue + } + t.Run(name, func(t *testing.T) { + wh.hookSource = &tt.hookSource + err = wh.Admit(admission.NewAttributesRecord(&object, &oldObject, kind, namespace, name, resource, subResource, operation, &userInfo)) + if tt.expectAllow != (err == nil) { + t.Errorf("expected allowed=%v, but got err=%v", tt.expectAllow, err) + } + // ErrWebhookRejected is not an error for our purposes + if tt.errorContains != "" { + if err == nil || !strings.Contains(err.Error(), tt.errorContains) { + t.Errorf(" expected an error saying %q, but got %v", tt.errorContains, err) + } + } + if _, isStatusErr := err.(*apierrors.StatusError); err != nil && !isStatusErr { + t.Errorf("%s: expected a StatusError, got %T", name, err) + } + }) + } +} + +// TestAdmitCachedClient tests that GenericAdmissionWebhook#Admit should cache restClient +func TestAdmitCachedClient(t *testing.T) { + scheme := runtime.NewScheme() + v1alpha1.AddToScheme(scheme) + corev1.AddToScheme(scheme) + + testServer := newTestServer(t) + testServer.StartTLS() + defer testServer.Close() + serverURL, err := url.ParseRequestURI(testServer.URL) + if err != nil { + t.Fatalf("this should never happen? %v", err) + } + wh, err := NewGenericAdmissionWebhook(nil) + if err != nil { + t.Fatal(err) + } + cm, err := config.NewClientManager() + if err != nil { + t.Fatalf("cannot create client manager: %v", err) + } + cm.SetServiceResolver(fakeServiceResolver{base: *serverURL}) + wh.clientManager = cm + wh.SetScheme(scheme) + namespace := "webhook-test" + wh.namespaceMatcher.NamespaceLister = fakeNamespaceLister{map[string]*corev1.Namespace{ + namespace: { + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "runlevel": "0", + }, + }, + }, + }, + } + + // Set up a test object for the call + kind := corev1.SchemeGroupVersion.WithKind("Pod") + name := "my-pod" + object := corev1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "pod.name": name, + }, + Name: name, + Namespace: namespace, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Pod", + }, + } + oldObject := corev1.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace}, + } + operation := admission.Update + resource := corev1.Resource("pods").WithVersion("v1") + subResource := "" + userInfo := user.DefaultInfo{ + Name: "webhook-test", + UID: "webhook-test", + } + ccfgURL := urlConfigGenerator{serverURL}.ccfgURL + + type test struct { + name string + hookSource fakeHookSource + expectAllow bool + expectCache bool + } + + policyIgnore := registrationv1alpha1.Ignore + cases := []test{ + { + name: "cache 1", + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "cache1", + ClientConfig: ccfgSVC("allow"), + Rules: newMatchEverythingRules(), + FailurePolicy: &policyIgnore, + }}, + }, + expectAllow: true, + expectCache: true, + }, + { + name: "cache 2", + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "cache2", + ClientConfig: ccfgSVC("internalErr"), + Rules: newMatchEverythingRules(), + FailurePolicy: &policyIgnore, + }}, + }, + expectAllow: true, + expectCache: true, + }, + { + name: "cache 3", + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "cache3", + ClientConfig: ccfgSVC("allow"), + Rules: newMatchEverythingRules(), + FailurePolicy: &policyIgnore, + }}, + }, + expectAllow: true, + expectCache: false, + }, + { + name: "cache 4", + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "cache4", + ClientConfig: ccfgURL("allow"), + Rules: newMatchEverythingRules(), + FailurePolicy: &policyIgnore, + }}, + }, + expectAllow: true, + expectCache: true, + }, + { + name: "cache 5", + hookSource: fakeHookSource{ + hooks: []registrationv1alpha1.Webhook{{ + Name: "cache5", + ClientConfig: ccfgURL("allow"), + Rules: newMatchEverythingRules(), + FailurePolicy: &policyIgnore, + }}, + }, + expectAllow: true, + expectCache: false, + }, + } + + for _, testcase := range cases { + t.Run(testcase.name, func(t *testing.T) { + wh.hookSource = &testcase.hookSource + authInfoResolverCount := new(int32) + r := newFakeAuthenticationInfoResolver(authInfoResolverCount) + wh.clientManager.SetAuthenticationInfoResolver(r) + if err = wh.clientManager.Validate(); err != nil { + t.Fatal(err) + } + + err = wh.Admit(admission.NewAttributesRecord(&object, &oldObject, kind, namespace, testcase.name, resource, subResource, operation, &userInfo)) + if testcase.expectAllow != (err == nil) { + t.Errorf("expected allowed=%v, but got err=%v", testcase.expectAllow, err) + } + + if testcase.expectCache && *authInfoResolverCount != 1 { + t.Errorf("expected cacheclient, but got none") + } + + if !testcase.expectCache && *authInfoResolverCount != 0 { + t.Errorf("expected not cacheclient, but got cache") + } + }) + } + +} + +func newTestServer(t *testing.T) *httptest.Server { + // Create the test webhook server + sCert, err := tls.X509KeyPair(serverCert, serverKey) + if err != nil { + t.Fatal(err) + } + rootCAs := x509.NewCertPool() + rootCAs.AppendCertsFromPEM(caCert) + testServer := httptest.NewUnstartedServer(http.HandlerFunc(webhookHandler)) + testServer.TLS = &tls.Config{ + Certificates: []tls.Certificate{sCert}, + ClientCAs: rootCAs, + ClientAuth: tls.RequireAndVerifyClientCert, + } + return testServer +} + +func webhookHandler(w http.ResponseWriter, r *http.Request) { + fmt.Printf("got req: %v\n", r.URL.Path) + switch r.URL.Path { + case "/internalErr": + http.Error(w, "webhook internal server error", http.StatusInternalServerError) + return + case "/invalidReq": + w.WriteHeader(http.StatusSwitchingProtocols) + w.Write([]byte("webhook invalid request")) + return + case "/invalidResp": + w.Header().Set("Content-Type", "application/json") + w.Write([]byte("webhook invalid response")) + case "/disallow": + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(&v1alpha1.AdmissionReview{ + Status: v1alpha1.AdmissionReviewStatus{ + Allowed: false, + }, + }) + case "/disallowReason": + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(&v1alpha1.AdmissionReview{ + Status: v1alpha1.AdmissionReviewStatus{ + Allowed: false, + Result: &metav1.Status{ + Message: "you shall not pass", + }, + }, + }) + case "/allow": + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(&v1alpha1.AdmissionReview{ + Status: v1alpha1.AdmissionReviewStatus{ + Allowed: true, + }, + }) + default: + http.NotFound(w, r) + } +} + +func newFakeAuthenticationInfoResolver(count *int32) *fakeAuthenticationInfoResolver { + return &fakeAuthenticationInfoResolver{ + restConfig: &rest.Config{ + TLSClientConfig: rest.TLSClientConfig{ + CAData: caCert, + CertData: clientCert, + KeyData: clientKey, + }, + }, + cachedCount: count, + } +} + +type fakeAuthenticationInfoResolver struct { + restConfig *rest.Config + cachedCount *int32 +} + +func (c *fakeAuthenticationInfoResolver) ClientConfigFor(server string) (*rest.Config, error) { + atomic.AddInt32(c.cachedCount, 1) + return c.restConfig, nil +} + +func newMatchEverythingRules() []registrationv1alpha1.RuleWithOperations { + return []registrationv1alpha1.RuleWithOperations{{ + Operations: []registrationv1alpha1.OperationType{registrationv1alpha1.OperationAll}, + Rule: registrationv1alpha1.Rule{ + APIGroups: []string{"*"}, + APIVersions: []string{"*"}, + Resources: []string{"*/*"}, + }, + }} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/certs_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/certs_test.go new file mode 100644 index 000000000..57605ffc8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/certs_test.go @@ -0,0 +1,216 @@ +/* +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 generated using openssl by the gencerts.sh script +// and holds raw certificates for the webhook tests. + +package validating + +var caKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAt8E1XykA4860Tj7mypnsSU+hW0taUEvz26a5rgFSrwgKe1g+ +zOXc0XoAdnWivWKwWXTW+P1mmjMApEf8ndfPy+juKIrPKP6ccF31iPvOGfNRm/g/ +ulZAJnAjBn0zkZ9ARhpdDxKwDpwIKSrTna5GB/gX0VbHQ/M23u0RjVUZuNM9cayW +HReRx7xlOQD+uREQ/wh1zkgQime+rji5U3jxB9YD3zfTeGBJdrq9ptTdkPEIQUKf +DM8SnM8fleEPkBq3XrhfmAEfkHBGpn4Hc82tk/oEZ+LMyMaR/GmzdJXU2/d4zixC +Dgqdg1nB76uXJ4aITX2BuR+ttmAI0b6Si4UvHwIDAQABAoIBAA/Msg0blnL/++ra +Z7e14mYvTZ1u7jYHQdF6FW8LuBNKqrQOU2AEx6bPSajl1ndYO/eFH1LLXv4VMpHt +ip/7xWcwAQJFZSiOM99JhOohVIhQroytnLUl42AqtihBraRwv/MHI0c/gRnQercn +coiVSno2771VK88A44/pbF/tmEeW5Nq7bwHrtjdt3MDKjv2LQaPToDzBivSwz/F8 +3dMBpCUKT3tKC6QiDAFi4WaVOqXZrDfm/HJ1L8LWYjrcGTwwzMGpDfQEMxhq+2AR +Ya89jKF1I2+3kgXrZER7eHktUEQ0bGckSmAN9yo01rdm7E5gmmPuTK13riSFWrJn +/Dg21PECgYEA3vM0OLGevaUP4geBv1nPLpANC551Wf8wu2QG+Ts1/LFQHtFTOTst +JjFy/XT90ki1wni8P/pcIbMEXDJJezR4giWfiwMzr/E4arkJc5rJwV3kcmGrVihS +9BIJVlWq8kPmklTctfoqjDMa7tkYZoYStg+1Xljvw/HJFqZ6VoWyxFcCgYEA0v6S +Fx960kQyqPYyQMaZpce9rAsgGBJ4uMU6dXVfYxDy0CEKZ1lV1xwUg9eWNFj7E46A +RJDl9fR2KztTbgBobEOCVlO9QftY8RiIzibq8R4P5XyEV+TCkPk+eYffDZfOueGK +uCzBcAcl12SkAy/KMeS0+/+KYfetGyh23GH/bnkCgYEAnqMefVilQvu4GXSN9cHJ +kbAeGC5gAfF6k1vROnXPLEZeZA890HMy5QI6d+5OzNm/uuh9ymgyNihS6ec+MdRc +Cv8KTrewh3h0VDvlZcS12kkcy+aDK4L1w4Ux76R1RnzaCzUm9rVSoP+cImeG3Sx5 +E+KJguB1ek8Ibn12fyoS0XECgYEAvKyAHsU7o0Lwuj5NebceNiyC45GfRWdfJHrZ +Z6dpgMDrIEorb3dnV0/42Fy0KGNZQYewE6Auwt2zvbzzQe6Dcix8JI4FMzd7tTxn +OVF7zdlABcpu3dnmUpVO1IY3Y4RYi8evsDn1UCRUJmQMdf0KJcuKO72rFSfRV/O7 +Nh87tqECgYAN21eEb68fg7z7WqnUhL24SilIFNx7qmyhFZ5ZbIuNBrCOW4lxj7z4 +1A4WyB3Wj2CeTeFrFamq+bgI5gl4DNzcml8bFxij3WDbwzq6C2FTJ1U+Ax/Z9Y60 +qdc1fMRy+0Wkglk26VZ+xA4gW0eetIDXf/IocFYZ56ti36lWfXMKFA== +-----END RSA PRIVATE KEY-----`) + +var caCert = []byte(`-----BEGIN CERTIFICATE----- +MIIDPTCCAiWgAwIBAgIJALl4JUWeGrsQMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV +BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX +DTE3MTAxNzAxMDcyM1oYDzIyOTEwODAyMDEwNzIzWjA0MTIwMAYDVQQDDClnZW5l +cmljX3dlYmhvb2tfYWRtaXNzaW9uX3BsdWdpbl90ZXN0c19jYTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALfBNV8pAOPOtE4+5sqZ7ElPoVtLWlBL89um +ua4BUq8ICntYPszl3NF6AHZ1or1isFl01vj9ZpozAKRH/J3Xz8vo7iiKzyj+nHBd +9Yj7zhnzUZv4P7pWQCZwIwZ9M5GfQEYaXQ8SsA6cCCkq052uRgf4F9FWx0PzNt7t +EY1VGbjTPXGslh0Xkce8ZTkA/rkREP8Idc5IEIpnvq44uVN48QfWA98303hgSXa6 +vabU3ZDxCEFCnwzPEpzPH5XhD5Aat164X5gBH5BwRqZ+B3PNrZP6BGfizMjGkfxp +s3SV1Nv3eM4sQg4KnYNZwe+rlyeGiE19gbkfrbZgCNG+kouFLx8CAwEAAaNQME4w +HQYDVR0OBBYEFJ+UXeXeN9DfxuCA65LuhRaXI5bnMB8GA1UdIwQYMBaAFJ+UXeXe +N9DfxuCA65LuhRaXI5bnMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AJlfuK7LcFxXCjB6rnRYvjIFF3JewaPGx273YDpV2DkvCJXvez+mDC6ZfD1U7nEw +P+0A+NJctU2Vv+bbhh1vXlmBUoA9zKyIPld0pXDt8PxK8L9QRdLdzN96MtUjE0Cr +jBDxy3eIke+ElQQyU3MSx1uohZao40WOTDvR1fBswrFGhFNtELgwT3zIJ7tMO4ws +1f6LRVB4xsD6cPNUmFyJW6UqecJ3ZSeErF0r8uN4Ta0zUoJ03CflwsgujoVNpIPR +/VVElRE6Cd2C1i3qLBMOZ+aQrxGw4teNXilXbKtwJzpDYU+bypPgim+vxAwD9XnQ +J/rCqIaSYOI/3WkZmQ+E6aE= +-----END CERTIFICATE-----`) + +var badCAKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEpgIBAAKCAQEAsLjPsYMRv5T3+OoPbE+mKqUkBrn6ZQZU28UulLaS8UsaX/Dx +o/N2P6YGSlBeEnO0IV7fHqfdlgTRqqhlhX9L+suj963skZUmwoHB54lsHBYnXEBr +UlkVn5Wv+BEp5FX9iC9EV+wyWxuddGqElNUSMvuC71lRAE1edKbFZYIgqpGson6u +kcn5cpBoyFjFyxKhuKh5WTCQGYFZBtIhcggyduUw5+JzbPUlrlOcCiW8aQwL0f+s +9vA+4lDcngyOXDgAOip/Cr3lYiajhv41TyMNR9aSCH3gwI06QabQpXeHmYKjdMDO +epo9czAOJ2ZI+o2sKRZGUvyfACg6VJpU2jiWdwIDAQABAoIBAQCClDxbFNcDcaZ8 +1S4KQRwt/JIPKlJ7XV9MeHl/xxvykSTu6VETbOzeAOY6+QFZrwbVdY110GGp3Ouz +pvRE3ReeO+RvOaNIuyXFqS1G0UMBydjRkIP8d/jDT06UBNKodmV8wDhGoy9eJJyG +jcJjWsE0zKUmCCATEhgOJ8BJzgonHXwSkgjhBophYpDNGi4W1Ke8a80V0S26UOsV +b72mBqPYDAcGNR9dFpJGYRRdZ77SjcAAOFOqnU6KXUFHvitNYSkUG22wHa4+yuO6 +fTDUitdXhxCcFCWEFyX6Chm3lmf1NgSI4bni46K6/BC9mlNjZ+7QrTJTTp1/WyHj +fV2TnwRhAoGBAN2kTatss76FZwKFamPSvX45ulo0/U9LB1Eb9A7/M+enfAJGPPuk +LRdy3JjDiEKxgsBlA7zy0Gc9wUjBGmPBOiJmCTfmMykoqV1qVH5YQcuVUaKE589a +iUAUn6PNcNsnu2Z8BIDU3Fvyq2KJammSz/zqNtkH7I6SDur6Sb9SRJORAoGBAMwd +5OkOOGvZKxnJz8s5hwDicN2Fk5zxWpA74mgUt44sOiG3F8/7y/ntT/O3DGKz/yDb +2Ju6Yf3ojqYnirAPlWLxIm0Y3K9gNQffJ5cpe/kCzbhCLAnLk6YXu8ZVoMMq/0LF +f0bh+UAktqlFi5Tl+0LGAGd9wWxAe7/DHmolBfWHAoGBAJxLy/Wx3wLgQebWPFMO +flAv10jbizHKX+uDgdS9hFW8lsdnzoNJn/6kIgmcAU++q8yOr1ckB3B2bQGoIrrr +vNobCC8iJzvED8LvQ4whIqy0rG+lt25SkuzcXkL9kbMJzq4TkH1lHcu9UbxX2PF/ +9SmN5IWhf+B+AQUU4MKI+hDxAoGBAIRXrZ/d9H8Yo3VpAC2H8xyDtSIsBXVwl4OF +EFrjc8/epSJPEEVtwOcfEwO133Xvtq+bW2o9AmQacMMSSD23HOi159hMkmmzOy8L +ZSQBZbwiMTgSz3LaZ7T9FmaWBlIEgtTMMKXIxk7sfvJpgQLdyneU4ZY4VzzU4meH +HyU7NA3pAoGBAM53r4pKMsdH9c4w/aRiRZeRge+MdPqdBo4Kje50uXVUaplJr1fJ +9Bm2P1oSfr+Zh6pNyDQE2OhptOxskd/+XDC4i6+MZ1iR1JHFq4oTF5OUYc3Je23G +FjD/vUn+ha2d750IPhsDztb8XyGfQdn7oo0ikhg1Ayjix6LE0GAd+Ve2 +-----END RSA PRIVATE KEY-----`) + +var badCACert = []byte(`-----BEGIN CERTIFICATE----- +MIIDPTCCAiWgAwIBAgIJANumDUaVJHIhMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV +BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX +DTE3MTAxNzAxMDcyNFoYDzIyOTEwODAyMDEwNzI0WjA0MTIwMAYDVQQDDClnZW5l +cmljX3dlYmhvb2tfYWRtaXNzaW9uX3BsdWdpbl90ZXN0c19jYTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALC4z7GDEb+U9/jqD2xPpiqlJAa5+mUGVNvF +LpS2kvFLGl/w8aPzdj+mBkpQXhJztCFe3x6n3ZYE0aqoZYV/S/rLo/et7JGVJsKB +weeJbBwWJ1xAa1JZFZ+Vr/gRKeRV/YgvRFfsMlsbnXRqhJTVEjL7gu9ZUQBNXnSm +xWWCIKqRrKJ+rpHJ+XKQaMhYxcsSobioeVkwkBmBWQbSIXIIMnblMOfic2z1Ja5T +nAolvGkMC9H/rPbwPuJQ3J4Mjlw4ADoqfwq95WImo4b+NU8jDUfWkgh94MCNOkGm +0KV3h5mCo3TAznqaPXMwDidmSPqNrCkWRlL8nwAoOlSaVNo4lncCAwEAAaNQME4w +HQYDVR0OBBYEFAYhiaN5L1bHf3VQO9bAwLTCFOyZMB8GA1UdIwQYMBaAFAYhiaN5 +L1bHf3VQO9bAwLTCFOyZMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AAb6qDKiWDuYbFI3f/AGkHaiWnVrdU/2oQ1P03N/CD0DEGzRTmEQrl5l0pHDUJ5g +XTszW/5Bgjgzx8HLG3VeMQlZpCeGrUBsWWIlGFsdfAKQ8xkB1JYNCtb920WBCOpZ +FewLzQwbRyeYju+VP7lq+IF3htOTbeXRax61c0qu2o402NbKCNMlwAWMWl92dji5 +zJG0U0g+U+GC1QVyRlpf6hsXONgNOWTuZJgZDmN0exZOH7rF9syr3lfDwX0I/no7 +zIJHt7Tx9oanqZbj/Oe8FC4jYNJiZryQ4MaWBk7Op+aR5bUgk5SwA9pLuKLm3Zyl +KkC1zS2x3RD1WxxiJjXcJ3M= +-----END CERTIFICATE-----`) + +var serverKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA4Slves29h8gstITXD8cuHT0sZzP9x7Ip5pcSrQgjIpk9V7zB +ulRsFfTaPVMAzq5nlX5qbM6OezidzdC0oVQi7DCRd+TqQi2zNDJNeWAjDMkRa6ir +vq9XNuQJlMxi/YdFzjWl8LPMyq+WoW+0gtM86jPOEk69iw0nFqmUTt/4WXLOIDH9 +ffIiZ6h+x6IJGFqcn4heNE9SK++bMmjijmhIF3i0dKquApVm0+E/NYDDHLzeQ42r +BhgPWmuLqGBvVavTHweXRJ9qdZ5LVzMJj1KNNLA4T/vsk17jADJGPikrvZWZ0MJE +SPKpDAJ9uxDpIGNg8EBdUoStfrQMMsDEnNE1/QIDAQABAoIBAQC/ROumbk+qoKkZ +UB9BD/pkbCrkII5crURa1crPojH2miY5+ea32i9XF4Csx23QJOdpXtIZS/5NPnMO ++1P2F/rymO954cP+I8QveuvFR51+pu9dfRMoENsNjfl1pYoRxG/QFFK6foJhS3ex ++6pj1/3PFeLgOnNZQ/sIjVWnCyt1DzFUaELE1jsDWtsQ9j2ed1ceqjrEVG0BbB8O +LeXUp0lDWgRmF9LexFVd361ew6DM4Zr3l9W3Dubd/6gIPNSRCB7T1usErFKPi8Dq +ML2lnO98+gKZHp6DKUISWEwt0By3QRLV09fBTes8fr+gylZfhwX2Q2EjiZ/v0Nlb +YGLAZwMhAoGBAPigApUlA8L0AGgVoSuBRthdFVzqLKTIKYimiZirRnXljTs3HvS4 +Z/RCkXRVP6aQ8tORVUyct0drBUgddu+YPS/hfk8ipYraGonAKWfxL2+sFcxHg9iy +O6OxR7jOlI7bG8Ue78lJjqfzpXyi2/ikL2udHLzMeCh3czzix4wKXl2LAoGBAOfX +QKCudMGOHb2LCkC1jP2VLUAg09Y7q7sX5avNXhZsLNhVgu1i8FNTTXXCHwyBLvxY +AX7AnYaUP5K1YOyHVXnfqp2uuctR8tm7TUh9mw3RGnE+D9yw39RjlF4ZjZMtBC0+ +5/A2upRqY5H2pepxi/bPCAC58UgHbvjTS3LD6zuXAoGAQUj7BKDgmPurc6liVeMv +cDcZGfnf2TE6PsjETtOCwAiUCl2SAl695VTpjuunuBxNtyJtjJ2GPvmqPGKITafj +QURr/2mwoIJe/5b3CHU7qI4+dxK8W1WJ9ZTiqXONbOm6JAvYmTl4fT+sT8sQCf1K ++m4aErV6Q94B45YFIg/C8bsCgYEAx2pkAZHthasrM6UL3ZsLufb9pCJYc/aBgX1N +pRgRrPHBJRdwdaXbl6CYiQi/Ui8v7gf4yUD+fgq4IAX5Z5oE0L6tb9Ihp5xGajfs +gsTfgOPyfaNnW2mcLYC11rbeCtD2vcBVGk7I7+4O1Tc1gVHHlTSA6rcFrfIO5uJA +DGguxuMCgYB9y4JY44YLVpxbHOmQcp5XzN2uDESkBDmzXhn6Kx4wyyMI1/J2a44p +68AL0TaVWK1vvzV8X4f+92ufvUCXuuItIVDvkSdKMl6kL54djCA25tGuxNHxMk7e +/l4fshoaRwF3ybwHbREMOy8pQHrsek7m21sC/q/DIDN/IPdqo7aaVw== +-----END RSA PRIVATE KEY-----`) + +var serverCert = []byte(`-----BEGIN CERTIFICATE----- +MIIDQDCCAiigAwIBAgIJAM2Hyhl1N+5sMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV +BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX +DTE3MTAxNzAxMDcyNFoYDzIyOTEwODAyMDEwNzI0WjAjMSEwHwYDVQQDDBh3ZWJo +b29rLXRlc3QuZGVmYXVsdC5zdmMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQDhKW96zb2HyCy0hNcPxy4dPSxnM/3HsinmlxKtCCMimT1XvMG6VGwV9No9 +UwDOrmeVfmpszo57OJ3N0LShVCLsMJF35OpCLbM0Mk15YCMMyRFrqKu+r1c25AmU +zGL9h0XONaXws8zKr5ahb7SC0zzqM84STr2LDScWqZRO3/hZcs4gMf198iJnqH7H +ogkYWpyfiF40T1Ir75syaOKOaEgXeLR0qq4ClWbT4T81gMMcvN5DjasGGA9aa4uo +YG9Vq9MfB5dEn2p1nktXMwmPUo00sDhP++yTXuMAMkY+KSu9lZnQwkRI8qkMAn27 +EOkgY2DwQF1ShK1+tAwywMSc0TX9AgMBAAGjZDBiMAkGA1UdEwQCMAAwCwYDVR0P +BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATApBgNVHREEIjAg +hwR/AAABghh3ZWJob29rLXRlc3QuZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQELBQAD +ggEBAFwJ5UtHJsSx7mrJ7X51XDVg8ocNdWYLuehWfpM2Tlrv9kklONF7VehS+9kg +MjSiuXtIhtEEN7GIy08sl6rhANtwXxWhj5b+qPNSNiHGNRvmHkCJuO2PGG7TpSpH +CfOgX+HH9CnX/piC7Uqr+vmS+SmhSjIyw1bUtP9cDmFvNQB9/0qvcXZP/oX90jsa +qF6fQvKP/OtRcW/kyWmhzqeIMufru82Hbrf/WJuQXCvpgtY43cOlHVEr8X2PbF9F +t4eliujfewSu1cyXNcT5KcriCvZyXU/d8UHm+z9rnMJdC4bfvwOLeG7VmEG1Vp/X +sRiMsjRcun8Jvbl7BbH86nu1xus= +-----END CERTIFICATE-----`) + +var clientKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA05j8mb6tyOYOxfdmra9nlBu+VefZ46d+Q018EEi8LLpXFovP ++4D6mdZiG2K1Or9Kx7wpiG4gyrqn8aENTEbREtw7+GWpsrtWcOnmtCoMrcqV97S+ +TurL5DY1Rh9XOBxa/QninOnP4O1dASYmi0uZBZW/Neidwt70/sb3VGxj8Ex8rzD/ +LWsiVj+ijkK2A18+S2m01HNuNramJiJ8Ns5VxHj5TspRIBik1NEfEDFEi42ddZ0n +9q4u3eZmFC1QqMLB/371+oFrieC+gmbg2FCMUw4LIiUMWURhUP8kXNEFCDWvTLbM +40wU6lejJw+JF0SBs3AIcI4GJeSfxEuT2AFCBwIDAQABAoIBAC3Rb8ke1+SrpEFL +vAkZ9TTF+SYC6VR5XUbXjWi9RznsM5VnOub728fZ+y5w5ktNRrUPUnL/XcxoNJuG +wylkIDuUQswbv247UJFspI8Yl9w+BNE5awgNoY7OCiUf/jPhN/aY4GAX5PKQk1X/ +W9NH0F+8OEZFE3wx6R0OGlpGijFrCbEoqfMcReOVkXt9jjHAxHxI6erMlQvQ6Jop +KZ+OndRt8ilNtcjZLxAK8d3odgXN7OGezi74/VnG8b6NVmXsZMRkgS5xcP/42h2e +GDGGm4Gia8x0lcosgr+LdZ4FMEITj2p84PGNoeoh7PtTMUQs2qnfPPbpQpab6w9/ +7j7jRXECgYEA7/R8ByzNFUfcBOW0F8mmQ4bAmJcjuVEBay/XFf8gxWrefxsIEBu/ +n3GPI10bxGdEpSQGln1P9VCyZPauHPQC6DNB2OQjbmAujuigj2uM3GbXmYt20z2s +iUHhZQstznEO+BLqOMhk2SICnwsecPn0jP2MvWS7tY+szwvdLROHZj8CgYEA4b8V +iGU8/3mXGYRsT/tuuWjnalstCYzKosK92K8PS6LnAjv8t/8CMrL5gHAGXdf6fEAh +qDndlB1VkQ/ymiqR35el/ErVRt1/2pbwTLSQzAGJawY/osnClMnShO8gdQnsJnmi +zx909lWVxrKkN38szLQfK2bq4C8z6Bw5+6IxAjkCgYBnEUas9kto1qLk352Jki3+ +V0UmxdSsZuULG1NxuVJkOdE0G3JNKP4YCHkJIZcpt4m+vUivH0hXAMB/qY2EFjOh +dVLVTLkDUgDtlXJR6Epq6Sm2ZDc36QfRNSERe8nDIMDjQYylsz3OHlOt6OK8eEDY +xpfLShdulzYNAPWRxQ+llQKBgQCmWEvhqdf82PgCkZXOihPZA/giYvUY6GoY7S8/ +kB/ROETJXLKoUnyoJ0G65tGKLTAiho9Giv0/uy3mKr4149CB1hk1g18NTQJ9bGO9 +4gAgk7FS79PMfKepQ96gniRomdstrsvNm/xv2Dj5pYFkc43reX7OWJQShjXVf5cq +WSWL4QKBgGVoe8yldF7dijRgB0NYJ7LV+xTQxLpSzK+3b5LyrvSTMwGut0O6QsbK +S060B37PdwBxMD05yTy8Jcr0abl9+tiLGAdok5Ufnm2e7sNsxf8fLhsyPuReutB8 +zg1721jMeo9rwnduEi4/U1PIjqYUBIH/jjc9RHSvhk+MVUKXS95R +-----END RSA PRIVATE KEY-----`) + +var clientCert = []byte(`-----BEGIN CERTIFICATE----- +MIIDVTCCAj2gAwIBAgIJAM2Hyhl1N+5tMA0GCSqGSIb3DQEBCwUAMDQxMjAwBgNV +BAMMKWdlbmVyaWNfd2ViaG9va19hZG1pc3Npb25fcGx1Z2luX3Rlc3RzX2NhMCAX +DTE3MTAxNzAxMDcyNFoYDzIyOTEwODAyMDEwNzI0WjA4MTYwNAYDVQQDDC1nZW5l +cmljX3dlYmhvb2tfYWRtaXNzaW9uX3BsdWdpbl90ZXN0c19jbGllbnQwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTmPyZvq3I5g7F92atr2eUG75V59nj +p35DTXwQSLwsulcWi8/7gPqZ1mIbYrU6v0rHvCmIbiDKuqfxoQ1MRtES3Dv4Zamy +u1Zw6ea0KgytypX3tL5O6svkNjVGH1c4HFr9CeKc6c/g7V0BJiaLS5kFlb816J3C +3vT+xvdUbGPwTHyvMP8tayJWP6KOQrYDXz5LabTUc242tqYmInw2zlXEePlOylEg +GKTU0R8QMUSLjZ11nSf2ri7d5mYULVCowsH/fvX6gWuJ4L6CZuDYUIxTDgsiJQxZ +RGFQ/yRc0QUINa9MtszjTBTqV6MnD4kXRIGzcAhwjgYl5J/ES5PYAUIHAgMBAAGj +ZDBiMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMC +BggrBgEFBQcDATApBgNVHREEIjAghwR/AAABghh3ZWJob29rLXRlc3QuZGVmYXVs +dC5zdmMwDQYJKoZIhvcNAQELBQADggEBAAgu8K/+UA6V7+AiOPP0Hs3jGTsVjnPB +3XRCSWof5LL93iSRu1rI5LYmjS4N80lV0JkaJNvsoAKxETS3MW4rgv6t3kFOyLMw +mTfIli3iSBMz4WF55px1yhgF85wghEv2+YRF9aSUqAyz4DmlTGlFCEUx+ntkysUD +F97k/jB56EJVqMpSoY5O81vxr21Jpzlryd/UoMVwhYuO3tN0FP+PjoRiQhCGdQTz +2H+TQytZ6Xx6B8BE/joh3WBnQ4705jFhFaDSP8DSH45r48dzbxNLJVNeqLQQ0PhI +clrHwa1WiAnv+4Ydc5CiXGjLjU0sIvETjVtQGPv/gAykeVJo/4nXM8c= +-----END CERTIFICATE-----`) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/doc.go new file mode 100644 index 000000000..0241c8e53 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/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. +*/ + +// Package validating checks a non-mutating webhook for configured operation admission +package validating // import "k8s.io/apiserver/pkg/admission/plugin/webhook/validating" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/gencerts.sh b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/gencerts.sh new file mode 100755 index 000000000..f03124933 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/gencerts.sh @@ -0,0 +1,109 @@ +#!/bin/bash + +# 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. + +set -e + +# gencerts.sh generates the certificates for the generic webhook admission plugin tests. +# +# It is not expected to be run often (there is no go generate rule), and mainly +# exists for documentation purposes. + +CN_BASE="generic_webhook_admission_plugin_tests" + +cat > server.conf << EOF +[req] +req_extensions = v3_req +distinguished_name = req_distinguished_name +[req_distinguished_name] +[ v3_req ] +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment +extendedKeyUsage = clientAuth, serverAuth +subjectAltName = @alt_names +[alt_names] +IP.1 = 127.0.0.1 +DNS.1 = webhook-test.default.svc +EOF + +cat > client.conf << EOF +[req] +req_extensions = v3_req +distinguished_name = req_distinguished_name +[req_distinguished_name] +[ v3_req ] +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment +extendedKeyUsage = clientAuth, serverAuth +subjectAltName = @alt_names +[alt_names] +IP.1 = 127.0.0.1 +DNS.1 = webhook-test.default.svc +EOF + +# Create a certificate authority +openssl genrsa -out caKey.pem 2048 +openssl req -x509 -new -nodes -key caKey.pem -days 100000 -out caCert.pem -subj "/CN=${CN_BASE}_ca" + +# Create a second certificate authority +openssl genrsa -out badCAKey.pem 2048 +openssl req -x509 -new -nodes -key badCAKey.pem -days 100000 -out badCACert.pem -subj "/CN=${CN_BASE}_ca" + +# Create a server certiticate +openssl genrsa -out serverKey.pem 2048 +openssl req -new -key serverKey.pem -out server.csr -subj "/CN=webhook-test.default.svc" -config server.conf +openssl x509 -req -in server.csr -CA caCert.pem -CAkey caKey.pem -CAcreateserial -out serverCert.pem -days 100000 -extensions v3_req -extfile server.conf + +# Create a client certiticate +openssl genrsa -out clientKey.pem 2048 +openssl req -new -key clientKey.pem -out client.csr -subj "/CN=${CN_BASE}_client" -config client.conf +openssl x509 -req -in client.csr -CA caCert.pem -CAkey caKey.pem -CAcreateserial -out clientCert.pem -days 100000 -extensions v3_req -extfile client.conf + +outfile=certs_test.go + +cat > $outfile << EOF +/* +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. +*/ + +EOF + +echo "// This file was generated using openssl by the gencerts.sh script" >> $outfile +echo "// and holds raw certificates for the webhook tests." >> $outfile +echo "" >> $outfile +echo "package validating" >> $outfile +for file in caKey caCert badCAKey badCACert serverKey serverCert clientKey clientCert; do + data=$(cat ${file}.pem) + echo "" >> $outfile + echo "var $file = []byte(\`$data\`)" >> $outfile +done + +# Clean up after we're done. +rm *.pem +rm *.csr +rm *.srl +rm *.conf diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/BUILD new file mode 100644 index 000000000..4bd5efbf3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/BUILD @@ -0,0 +1,47 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "attributes.go", + "conversion.go", + "doc.go", + ], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/versioned", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["conversion_test.go"], + importpath = "k8s.io/apiserver/pkg/admission/plugin/webhook/versioned", + library = ":go_default_library", + deps = [ + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apiserver/pkg/apis/example:go_default_library", + "//vendor/k8s.io/apiserver/pkg/apis/example/v1:go_default_library", + "//vendor/k8s.io/apiserver/pkg/apis/example2/v1: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/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/attributes.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/attributes.go new file mode 100644 index 000000000..58f8ae6aa --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/attributes.go @@ -0,0 +1,42 @@ +/* +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 versioned + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" +) + +// Attributes is a wrapper around the original admission attributes. It allows +// override the internal objects with the versioned ones. +type Attributes struct { + admission.Attributes + OldObject runtime.Object + Object runtime.Object +} + +// GetObject overrides the original GetObjects() and it returns the versioned +// object. +func (v Attributes) GetObject() runtime.Object { + return v.Object +} + +// GetOldObject overrides the original GetOldObjects() and it returns the +// versioned oldObject. +func (v Attributes) GetOldObject() runtime.Object { + return v.OldObject +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/conversion.go new file mode 100644 index 000000000..8a9fa1d0f --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/conversion.go @@ -0,0 +1,55 @@ +/* +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 versioned + +import ( + "fmt" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// Convertor converts objects to the desired version. +type Convertor struct { + Scheme *runtime.Scheme +} + +// ConvertToGVK converts object to the desired gvk. +func (c Convertor) ConvertToGVK(obj runtime.Object, gvk schema.GroupVersionKind) (runtime.Object, error) { + // Unlike other resources, custom resources do not have internal version, so + // if obj is a custom resource, it should not need conversion. + if obj.GetObjectKind().GroupVersionKind() == gvk { + return obj, nil + } + out, err := c.Scheme.New(gvk) + if err != nil { + return nil, err + } + err = c.Scheme.Convert(obj, out, nil) + if err != nil { + return nil, err + } + return out, nil +} + +// Validate checks if the conversion has a scheme. +func (c *Convertor) Validate() error { + if c.Scheme == nil { + return fmt.Errorf("the Convertor requires a scheme") + } + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/conversion_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/conversion_test.go new file mode 100644 index 000000000..c80db3d0f --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/conversion_test.go @@ -0,0 +1,132 @@ +/* +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 versioned + +import ( + "reflect" + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/apis/example" + examplev1 "k8s.io/apiserver/pkg/apis/example/v1" + example2v1 "k8s.io/apiserver/pkg/apis/example2/v1" +) + +func initiateScheme() *runtime.Scheme { + s := runtime.NewScheme() + example.AddToScheme(s) + examplev1.AddToScheme(s) + example2v1.AddToScheme(s) + return s +} + +func TestConvertToGVK(t *testing.T) { + scheme := initiateScheme() + c := Convertor{Scheme: scheme} + table := map[string]struct { + obj runtime.Object + gvk schema.GroupVersionKind + expectedObj runtime.Object + }{ + "convert example#Pod to example/v1#Pod": { + obj: &example.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod1", + Labels: map[string]string{ + "key": "value", + }, + }, + Spec: example.PodSpec{ + RestartPolicy: example.RestartPolicy("never"), + }, + }, + gvk: examplev1.SchemeGroupVersion.WithKind("Pod"), + expectedObj: &examplev1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod1", + Labels: map[string]string{ + "key": "value", + }, + }, + Spec: examplev1.PodSpec{ + RestartPolicy: examplev1.RestartPolicy("never"), + }, + }, + }, + "convert example#replicaset to example2/v1#replicaset": { + obj: &example.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: "rs1", + Labels: map[string]string{ + "key": "value", + }, + }, + Spec: example.ReplicaSetSpec{ + Replicas: 1, + }, + }, + gvk: example2v1.SchemeGroupVersion.WithKind("ReplicaSet"), + expectedObj: &example2v1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: "rs1", + Labels: map[string]string{ + "key": "value", + }, + }, + Spec: example2v1.ReplicaSetSpec{ + Replicas: func() *int32 { var i int32; i = 1; return &i }(), + }, + }, + }, + "no conversion for Unstructured object whose gvk matches the desired gvk": { + obj: &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "mygroup.k8s.io/v1", + "kind": "Flunder", + "data": map[string]interface{}{ + "Key": "Value", + }, + }, + }, + gvk: schema.GroupVersionKind{Group: "mygroup.k8s.io", Version: "v1", Kind: "Flunder"}, + expectedObj: &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "mygroup.k8s.io/v1", + "kind": "Flunder", + "data": map[string]interface{}{ + "Key": "Value", + }, + }, + }, + }, + } + + for name, test := range table { + t.Run(name, func(t *testing.T) { + actual, err := c.ConvertToGVK(test.obj, test.gvk) + if err != nil { + t.Error(err) + } + if !reflect.DeepEqual(actual, test.expectedObj) { + t.Errorf("\nexpected:\n%#v\ngot:\n %#v\n", test.expectedObj, actual) + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/doc.go new file mode 100644 index 000000000..d557a9fec --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/versioned/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 versioned provides tools for making sure the objects sent to a +// webhook are in a version the webhook understands. +package versioned // import "k8s.io/apiserver/pkg/admission/plugin/webhook/versioned" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugins.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugins.go index 5ddfc7e1f..db1add66a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugins.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/plugins.go @@ -39,6 +39,20 @@ type Plugins struct { registry map[string]Factory } +// pluginHandler associates name with a admission.Interface handler. +type pluginHandler struct { + i Interface + name string +} + +func (h *pluginHandler) Interface() Interface { + return h.i +} + +func (h *pluginHandler) Name() string { + return h.name +} + // All registered admission options. var ( // PluginEnabledFn checks whether a plugin is enabled. By default, if you ask about it, it's enabled. @@ -121,7 +135,7 @@ func splitStream(config io.Reader) (io.Reader, io.Reader, error) { // NewFromPlugins returns an admission.Interface that will enforce admission control decisions of all // the given plugins. func (ps *Plugins) NewFromPlugins(pluginNames []string, configProvider ConfigProvider, pluginInitializer PluginInitializer) (Interface, error) { - plugins := []Interface{} + handlers := []NamedHandler{} for _, pluginName := range pluginNames { pluginConfig, err := configProvider.ConfigFor(pluginName) if err != nil { @@ -133,10 +147,11 @@ func (ps *Plugins) NewFromPlugins(pluginNames []string, configProvider ConfigPro return nil, err } if plugin != nil { - plugins = append(plugins, plugin) + handler := &pluginHandler{i: plugin, name: pluginName} + handlers = append(handlers, handler) } } - return chainAdmissionHandler(plugins), nil + return chainAdmissionHandler(handlers), nil } // InitPlugin creates an instance of the named interface. @@ -156,18 +171,18 @@ func (ps *Plugins) InitPlugin(name string, config io.Reader, pluginInitializer P pluginInitializer.Initialize(plugin) // ensure that plugins have been properly initialized - if err := Validate(plugin); err != nil { + if err := ValidateInitialization(plugin); err != nil { return nil, err } return plugin, nil } -// Validate will call the Validate function in each plugin if they implement -// the Validator interface. -func Validate(plugin Interface) error { - if validater, ok := plugin.(Validator); ok { - err := validater.Validate() +// ValidateInitialization will call the InitializationValidate function in each plugin if they implement +// the InitializationValidator interface. +func ValidateInitialization(plugin Interface) error { + if validater, ok := plugin.(InitializationValidator); ok { + err := validater.ValidateInitialization() if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/testutil_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/testutil_test.go new file mode 100644 index 000000000..a2f1cc980 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/admission/testutil_test.go @@ -0,0 +1,166 @@ +/* +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 admission + +import ( + "fmt" + "testing" + + "github.com/prometheus/client_golang/prometheus" + ptype "github.com/prometheus/client_model/go" +) + +// FakeHandler provide a mock implement both MutationInterface and ValidationInterface that tracks which +// methods have been called and always returns an error if admit is false. +type FakeHandler struct { + *Handler + admit bool + admitCalled bool + validateCalled bool +} + +func (h *FakeHandler) Admit(a Attributes) (err error) { + h.admitCalled = true + if h.admit { + return nil + } + return fmt.Errorf("Don't admit") +} + +func (h *FakeHandler) Validate(a Attributes) (err error) { + h.validateCalled = true + if h.admit { + return nil + } + return fmt.Errorf("Don't admit") +} + +func makeHandler(admit bool, ops ...Operation) *FakeHandler { + return &FakeHandler{ + admit: admit, + Handler: NewHandler(ops...), + } +} + +func makeNamedHandler(name string, admit bool, ops ...Operation) NamedHandler { + return &pluginHandler{ + i: &FakeHandler{ + admit: admit, + Handler: NewHandler(ops...), + }, + name: name, + } +} + +// FakeValidatingHandler provide a mock of ValidationInterface that tracks which +// methods have been called and always returns an error if validate is false. +type FakeValidatingHandler struct { + *Handler + validate, validateCalled bool +} + +func (h *FakeValidatingHandler) Validate(a Attributes) (err error) { + h.validateCalled = true + if h.validate { + return nil + } + return fmt.Errorf("Don't validate") +} + +func makeValidatingHandler(validate bool, ops ...Operation) *FakeValidatingHandler { + return &FakeValidatingHandler{ + validate: validate, + Handler: NewHandler(ops...), + } +} + +func makeValidatingNamedHandler(name string, validate bool, ops ...Operation) NamedHandler { + return &pluginHandler{ + i: &FakeValidatingHandler{ + validate: validate, + Handler: NewHandler(ops...), + }, + name: name, + } +} + +func labelsMatch(metric *ptype.Metric, labelFilter map[string]string) bool { + for _, lp := range metric.GetLabel() { + if value, ok := labelFilter[lp.GetName()]; ok && lp.GetValue() != value { + return false + } + } + return true +} + +// expectFindMetric find a metric with the given name nad labels or reports a fatal test error. +func expectFindMetric(t *testing.T, name string, expectedLabels map[string]string) *ptype.Metric { + metrics, err := prometheus.DefaultGatherer.Gather() + if err != nil { + t.Fatalf("Failed to gather metrics: %s", err) + } + + for _, mf := range metrics { + if mf.GetName() == name { + for _, metric := range mf.GetMetric() { + if labelsMatch(metric, expectedLabels) { + gotLabelCount := len(metric.GetLabel()) + wantLabelCount := len(expectedLabels) + if wantLabelCount != gotLabelCount { + t.Errorf("Got metric with %d labels, but wanted %d labels. Wanted %#+v for %s", + gotLabelCount, wantLabelCount, expectedLabels, metric.String()) + } + return metric + } + } + } + } + t.Fatalf("No metric found with name %s and labels %#+v", name, expectedLabels) + return nil +} + +// expectHistogramCountTotal ensures that the sum of counts of metrics matching the labelFilter is as +// expected. +func expectHistogramCountTotal(t *testing.T, name string, labelFilter map[string]string, wantCount int) { + metrics, err := prometheus.DefaultGatherer.Gather() + if err != nil { + t.Fatalf("Failed to gather metrics: %s", err) + } + + counterSum := 0 + for _, mf := range metrics { + if mf.GetName() != name { + continue // Ignore other metrics. + } + for _, metric := range mf.GetMetric() { + if !labelsMatch(metric, labelFilter) { + continue + } + counterSum += int(metric.GetHistogram().GetSampleCount()) + } + } + if wantCount != counterSum { + t.Errorf("Wanted count %d, got %d for metric %s with labels %#+v", wantCount, counterSum, name, labelFilter) + for _, mf := range metrics { + if mf.GetName() == name { + for _, metric := range mf.GetMetric() { + t.Logf("\tnear match: %s", metric.String()) + } + } + } + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD index aa4c3606f..d8956d72b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/apiserver/pkg/apis/apiserver", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/doc.go index 46880d5cb..a89863a35 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package apiserver is the internal version of the API. // +groupName=apiserver.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/register.go index 1410518b9..ffe9942a6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &AdmissionConfiguration{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD index 3075c3bbe..2640ff64b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD @@ -8,6 +8,7 @@ load( go_library( name = "go_default_library", srcs = [ + "conversion.go", "doc.go", "register.go", "types.go", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/conversion.go new file mode 100644 index 000000000..378cc080d --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/conversion.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 v1alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +var _ runtime.NestedObjectDecoder = &AdmissionConfiguration{} + +// DecodeNestedObjects handles encoding RawExtensions on the AdmissionConfiguration, ensuring the +// objects are decoded with the provided decoder. +func (c *AdmissionConfiguration) DecodeNestedObjects(d runtime.Decoder) error { + // decoding failures result in a runtime.Unknown object being created in Object and passed + // to conversion + for k, v := range c.Plugins { + decodeNestedRawExtensionOrUnknown(d, &v.Configuration) + c.Plugins[k] = v + } + return nil +} + +var _ runtime.NestedObjectEncoder = &AdmissionConfiguration{} + +// EncodeNestedObjects handles encoding RawExtensions on the AdmissionConfiguration, ensuring the +// objects are encoded with the provided encoder. +func (c *AdmissionConfiguration) EncodeNestedObjects(e runtime.Encoder) error { + for k, v := range c.Plugins { + if err := encodeNestedRawExtension(e, &v.Configuration); err != nil { + return err + } + c.Plugins[k] = v + } + return nil +} + +// decodeNestedRawExtensionOrUnknown decodes the raw extension into an object once. If called +// On a RawExtension that has already been decoded (has an object), it will not run again. +func decodeNestedRawExtensionOrUnknown(d runtime.Decoder, ext *runtime.RawExtension) { + if ext.Raw == nil || ext.Object != nil { + return + } + obj, gvk, err := d.Decode(ext.Raw, nil, nil) + if err != nil { + unk := &runtime.Unknown{Raw: ext.Raw} + if runtime.IsNotRegisteredError(err) { + if _, gvk, err := d.Decode(ext.Raw, nil, unk); err == nil { + unk.APIVersion = gvk.GroupVersion().String() + unk.Kind = gvk.Kind + ext.Object = unk + return + } + } + // TODO: record mime-type with the object + if gvk != nil { + unk.APIVersion = gvk.GroupVersion().String() + unk.Kind = gvk.Kind + } + obj = unk + } + ext.Object = obj +} + +func encodeNestedRawExtension(e runtime.Encoder, ext *runtime.RawExtension) error { + if ext.Raw != nil || ext.Object == nil { + return nil + } + data, err := runtime.Encode(e, ext.Object) + if err != nil { + return err + } + ext.Raw = data + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/doc.go index 10cc03cfe..7dd031a79 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/apiserver // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/register.go index 090adec32..466b19ae5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/register.go @@ -42,7 +42,7 @@ func init() { localSchemeBuilder.Register(addKnownTypes) } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &AdmissionConfiguration{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.deepcopy.go index 35164ce77..ba634e485 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionConfiguration).DeepCopyInto(out.(*AdmissionConfiguration)) - return nil - }, InType: reflect.TypeOf(&AdmissionConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionPluginConfiguration).DeepCopyInto(out.(*AdmissionPluginConfiguration)) - return nil - }, InType: reflect.TypeOf(&AdmissionPluginConfiguration{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AdmissionConfiguration) DeepCopyInto(out *AdmissionConfiguration) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/zz_generated.deepcopy.go index b455115d8..5a67e612d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/apiserver/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package apiserver import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionConfiguration).DeepCopyInto(out.(*AdmissionConfiguration)) - return nil - }, InType: reflect.TypeOf(&AdmissionConfiguration{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AdmissionPluginConfiguration).DeepCopyInto(out.(*AdmissionPluginConfiguration)) - return nil - }, InType: reflect.TypeOf(&AdmissionPluginConfiguration{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AdmissionConfiguration) DeepCopyInto(out *AdmissionConfiguration) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD index fc5d51977..2388d79f8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD @@ -17,7 +17,6 @@ go_library( importpath = "k8s.io/apiserver/pkg/apis/audit", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/register.go index e14b82c1b..9abf739ae 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/register.go @@ -49,6 +49,5 @@ func addKnownTypes(scheme *runtime.Scheme) error { &Policy{}, &PolicyList{}, ) - scheme.AddGeneratedDeepCopyFuncs(GetGeneratedDeepCopyFuncs()...) return nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/doc.go index b7020f207..27cc4c5ea 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/audit // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.deepcopy.go index 5bc4218ec..88c7b8e39 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.deepcopy.go @@ -23,52 +23,9 @@ package v1alpha1 import ( v1 "k8s.io/api/authentication/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Event).DeepCopyInto(out.(*Event)) - return nil - }, InType: reflect.TypeOf(&Event{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EventList).DeepCopyInto(out.(*EventList)) - return nil - }, InType: reflect.TypeOf(&EventList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupResources).DeepCopyInto(out.(*GroupResources)) - return nil - }, InType: reflect.TypeOf(&GroupResources{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectReference).DeepCopyInto(out.(*ObjectReference)) - return nil - }, InType: reflect.TypeOf(&ObjectReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Policy).DeepCopyInto(out.(*Policy)) - return nil - }, InType: reflect.TypeOf(&Policy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyList).DeepCopyInto(out.(*PolicyList)) - return nil - }, InType: reflect.TypeOf(&PolicyList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyRule).DeepCopyInto(out.(*PolicyRule)) - return nil - }, InType: reflect.TypeOf(&PolicyRule{})}, - ) -} - // 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 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/doc.go index 226d9263a..388147258 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/audit // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.deepcopy.go index 8b1014a7f..d00753cec 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.deepcopy.go @@ -23,52 +23,9 @@ package v1beta1 import ( v1 "k8s.io/api/authentication/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Event).DeepCopyInto(out.(*Event)) - return nil - }, InType: reflect.TypeOf(&Event{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EventList).DeepCopyInto(out.(*EventList)) - return nil - }, InType: reflect.TypeOf(&EventList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupResources).DeepCopyInto(out.(*GroupResources)) - return nil - }, InType: reflect.TypeOf(&GroupResources{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectReference).DeepCopyInto(out.(*ObjectReference)) - return nil - }, InType: reflect.TypeOf(&ObjectReference{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Policy).DeepCopyInto(out.(*Policy)) - return nil - }, InType: reflect.TypeOf(&Policy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyList).DeepCopyInto(out.(*PolicyList)) - return nil - }, InType: reflect.TypeOf(&PolicyList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyRule).DeepCopyInto(out.(*PolicyRule)) - return nil - }, InType: reflect.TypeOf(&PolicyRule{})}, - ) -} - // 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 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/zz_generated.deepcopy.go index 62b1f23d7..4a276ddb5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/audit/zz_generated.deepcopy.go @@ -22,51 +22,9 @@ package audit import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Event).DeepCopyInto(out.(*Event)) - return nil - }, InType: reflect.TypeOf(&Event{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*EventList).DeepCopyInto(out.(*EventList)) - return nil - }, InType: reflect.TypeOf(&EventList{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*GroupResources).DeepCopyInto(out.(*GroupResources)) - return nil - }, InType: reflect.TypeOf(&GroupResources{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectReference).DeepCopyInto(out.(*ObjectReference)) - return nil - }, InType: reflect.TypeOf(&ObjectReference{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Policy).DeepCopyInto(out.(*Policy)) - return nil - }, InType: reflect.TypeOf(&Policy{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyList).DeepCopyInto(out.(*PolicyList)) - return nil - }, InType: reflect.TypeOf(&PolicyList{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PolicyRule).DeepCopyInto(out.(*PolicyRule)) - return nil - }, InType: reflect.TypeOf(&PolicyRule{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*UserInfo).DeepCopyInto(out.(*UserInfo)) - return nil - }, InType: reflect.TypeOf(&UserInfo{})}, - } -} - // 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 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD index ddc12bc71..3bd547f02 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/apiserver/pkg/apis/example", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/doc.go index cb410d443..2676eee81 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=example.k8s.io // // package example contains an example API used to demonstrate how to create api groups. Moreover, this is diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go index e44a29e5a..5352108e7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/install/install.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package install installs the certificates API group, making it available as +// Package install installs the example API group, making it available as // an option to all of the API encoding/decoding machinery. package install diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/register.go index 2b699c4b4..d25456b0c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/register.go @@ -42,10 +42,11 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Pod{}, + &ReplicaSet{}, ) return nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/types.go index 6dd3e2172..243c1c033 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/types.go @@ -136,3 +136,35 @@ type PodList struct { Items []Pod } + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ReplicaSet ensures that a specified number of pod replicas are running at any given time. +type ReplicaSet struct { + metav1.TypeMeta + // +optional + metav1.ObjectMeta + + // Spec defines the desired behavior of this ReplicaSet. + // +optional + Spec ReplicaSetSpec + + // Status is the current status of this ReplicaSet. This data may be + // out of date by some window of time. + // +optional + Status ReplicaSetStatus +} + +// ReplicaSetSpec is the specification of a ReplicaSet. +// As the internal representation of a ReplicaSet, it must have +// a Template set. +type ReplicaSetSpec struct { + // Replicas is the number of desired replicas. + Replicas int32 +} + +// ReplicaSetStatus represents the current status of a ReplicaSet. +type ReplicaSetStatus struct { + // Replicas is the number of actual replicas. + Replicas int32 +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/doc.go index 819ae5ef7..4b22d37fb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/example // +k8s:openapi-gen=false // +k8s:defaulter-gen=TypeMeta diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/register.go index f7b6c7df6..cfb74eea4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/register.go @@ -53,7 +53,7 @@ func init() { localSchemeBuilder.Register(addKnownTypes, addConversionFuncs, addDefaultingFuncs) } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Pod{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.deepcopy.go index 2187f876e..e3b7b26fc 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.deepcopy.go @@ -22,44 +22,9 @@ package v1 import ( meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Pod).DeepCopyInto(out.(*Pod)) - return nil - }, InType: reflect.TypeOf(&Pod{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodCondition).DeepCopyInto(out.(*PodCondition)) - return nil - }, InType: reflect.TypeOf(&PodCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodList).DeepCopyInto(out.(*PodList)) - return nil - }, InType: reflect.TypeOf(&PodList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSpec).DeepCopyInto(out.(*PodSpec)) - return nil - }, InType: reflect.TypeOf(&PodSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodStatus).DeepCopyInto(out.(*PodStatus)) - return nil - }, InType: reflect.TypeOf(&PodStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Pod) DeepCopyInto(out *Pod) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/zz_generated.deepcopy.go index 02ba7f8c2..7d9cf5f2d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example/zz_generated.deepcopy.go @@ -22,44 +22,9 @@ package example import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Pod).DeepCopyInto(out.(*Pod)) - return nil - }, InType: reflect.TypeOf(&Pod{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodCondition).DeepCopyInto(out.(*PodCondition)) - return nil - }, InType: reflect.TypeOf(&PodCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodList).DeepCopyInto(out.(*PodList)) - return nil - }, InType: reflect.TypeOf(&PodList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodSpec).DeepCopyInto(out.(*PodSpec)) - return nil - }, InType: reflect.TypeOf(&PodSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodStatus).DeepCopyInto(out.(*PodStatus)) - return nil - }, InType: reflect.TypeOf(&PodStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Pod) DeepCopyInto(out *Pod) { *out = *in @@ -213,3 +178,64 @@ func (in *PodStatus) DeepCopy() *PodStatus { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet. +func (in *ReplicaSet) DeepCopy() *ReplicaSet { + if in == nil { + return nil + } + out := new(ReplicaSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ReplicaSet) 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 *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec. +func (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec { + if in == nil { + return nil + } + out := new(ReplicaSetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus. +func (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus { + if in == nil { + return nil + } + out := new(ReplicaSetStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/BUILD new file mode 100644 index 000000000..d0948caf7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/BUILD @@ -0,0 +1,38 @@ +package(default_visibility = ["//visibility:public"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "register.go", + "zz_generated.deepcopy.go", + ], + importpath = "k8s.io/apiserver/pkg/apis/example2", + deps = [ + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apiserver/pkg/apis/example: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/apiserver/pkg/apis/example2/install:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/apis/example2/v1:all-srcs", + ], + tags = ["automanaged"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/doc.go new file mode 100644 index 000000000..ae0ecc109 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/doc.go @@ -0,0 +1,24 @@ +/* +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 +// +groupName=example2.k8s.io +// +// package example2 contains an example API whose internal version is defined in +// another group ("example"). This happens if a type is moved to a different +// group. It's not recommended to move types across groups, though Kubernetes +// have a few cases due to historical reasons. This package is for tests. +package example2 // import "k8s.io/apiserver/pkg/apis/example2" diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/install/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/BUILD similarity index 50% rename from vendor/k8s.io/kubernetes/federation/apis/federation/install/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/BUILD index 54427a474..30d67d313 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/install/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/BUILD @@ -9,30 +9,25 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - importpath = "k8s.io/kubernetes/federation/apis/federation/install", + importpath = "k8s.io/apiserver/pkg/apis/example2/install", deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apiserver/pkg/apis/example:go_default_library", + "//vendor/k8s.io/apiserver/pkg/apis/example2:go_default_library", + "//vendor/k8s.io/apiserver/pkg/apis/example2/v1:go_default_library", ], ) go_test( name = "go_default_test", - srcs = ["install_test.go"], - importpath = "k8s.io/kubernetes/federation/apis/federation/install", + srcs = ["roundtrip_test.go"], + importpath = "k8s.io/apiserver/pkg/apis/example2/install", library = ":go_default_library", deps = [ - "//federation/apis/federation:go_default_library", - "//federation/apis/federation/v1beta1:go_default_library", - "//pkg/api:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta: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/api/testing/roundtrip:go_default_library", + "//vendor/k8s.io/apiserver/pkg/apis/example/fuzzer:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/install.go similarity index 65% rename from vendor/k8s.io/kubernetes/federation/apis/federation/install/install.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/install.go index a4ceffdb1..8980ecbef 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/install.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +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. @@ -14,36 +14,29 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package install installs the example2 API group, making it available as +// an option to all of the API encoding/decoding machinery. package install import ( "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/api" - - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/apis/federation/v1beta1" + "k8s.io/apiserver/pkg/apis/example" + "k8s.io/apiserver/pkg/apis/example2" + example2v1 "k8s.io/apiserver/pkg/apis/example2/v1" ) -func init() { - Install(api.GroupFactoryRegistry, api.Registry, api.Scheme) -} - // Install registers the API group and adds types to a scheme func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { if err := announced.NewGroupMetaFactory( &announced.GroupMetaFactoryArgs{ - GroupName: federation.GroupName, - VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: federation.AddToScheme, - RootScopedKinds: sets.NewString( - "Cluster", - ), + GroupName: example2.GroupName, + VersionPreferenceOrder: []string{example2v1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: example.AddToScheme, }, announced.VersionToSchemeFunc{ - v1beta1.SchemeGroupVersion.Version: v1beta1.AddToScheme, + example2v1.SchemeGroupVersion.Version: example2v1.AddToScheme, }, ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { panic(err) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/roundtrip_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/roundtrip_test.go new file mode 100644 index 000000000..7f8d4e82a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/install/roundtrip_test.go @@ -0,0 +1,28 @@ +/* +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 install + +import ( + "testing" + + "k8s.io/apimachinery/pkg/api/testing/roundtrip" + examplefuzzer "k8s.io/apiserver/pkg/apis/example/fuzzer" +) + +func TestRoundTrip(t *testing.T) { + roundtrip.RoundTripTestForAPIGroup(t, Install, examplefuzzer.Funcs) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/register.go new file mode 100644 index 000000000..c9b2fd79a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/register.go @@ -0,0 +1,52 @@ +/* +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 example2 + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/apis/example" +) + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// GroupName is the group name use in this package +const GroupName = "example2.apiserver.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +// Adds the list of known types to the given scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &example.ReplicaSet{}, + ) + return nil +} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/BUILD similarity index 83% rename from vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/BUILD index 2533e534f..92280a1a1 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/BUILD @@ -8,6 +8,7 @@ load( go_library( name = "go_default_library", srcs = [ + "conversion.go", "defaults.go", "doc.go", "generated.pb.go", @@ -18,16 +19,14 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - importpath = "k8s.io/kubernetes/federation/apis/federation/v1beta1", + importpath = "k8s.io/apiserver/pkg/apis/example2/v1", deps = [ - "//federation/apis/federation:go_default_library", - "//pkg/api:go_default_library", "//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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apiserver/pkg/apis/example:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/conversion.go new file mode 100644 index 000000000..21abdefd5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/conversion.go @@ -0,0 +1,51 @@ +/* +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 ( + conversion "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + example "k8s.io/apiserver/pkg/apis/example" +) + +func addConversionFuncs(scheme *runtime.Scheme) error { + // Add non-generated conversion functions to handle the *int32 -> int32 + // conversion. A pointer is useful in the versioned type so we can default + // it, but a plain int32 is more convenient in the internal type. These + // functions are the same as the autogenerated ones in every other way. + err := scheme.AddConversionFuncs( + Convert_example_ReplicaSetSpec_To_v1_ReplicaSetSpec, + Convert_v1_ReplicaSetSpec_To_example_ReplicaSetSpec, + ) + if err != nil { + return err + } + return nil +} + +func Convert_example_ReplicaSetSpec_To_v1_ReplicaSetSpec(in *example.ReplicaSetSpec, out *ReplicaSetSpec, s conversion.Scope) error { + out.Replicas = new(int32) + *out.Replicas = int32(in.Replicas) + return nil +} + +func Convert_v1_ReplicaSetSpec_To_example_ReplicaSetSpec(in *ReplicaSetSpec, out *example.ReplicaSetSpec, s conversion.Scope) error { + if in.Replicas != nil { + out.Replicas = *in.Replicas + } + return nil +} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/defaults.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/defaults.go similarity index 86% rename from vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/defaults.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/defaults.go index 37abb53bd..436ccde29 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/defaults.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/defaults.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +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. @@ -14,12 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1beta1 +package v1 import ( "k8s.io/apimachinery/pkg/runtime" ) func addDefaultingFuncs(scheme *runtime.Scheme) error { - return RegisterDefaults(scheme) + // return RegisterDefaults(scheme) + return nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/doc.go new file mode 100644 index 000000000..5784d44f3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/doc.go @@ -0,0 +1,24 @@ +/* +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:conversion-gen=k8s.io/apiserver/pkg/apis/example2 +// +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/example +// +k8s:openapi-gen=false +// +k8s:defaulter-gen=TypeMeta + +// +groupName=example2.apiserver.k8s.io +package v1 // import "k8s.io/apiserver/pkg/apis/example2/v1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/generated.pb.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/generated.pb.go new file mode 100644 index 000000000..c65d6f1da --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/generated.pb.go @@ -0,0 +1,682 @@ +/* +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/apiserver/pkg/apis/example2/v1/generated.proto +// DO NOT EDIT! + +/* + Package v1 is a generated protocol buffer package. + + It is generated from these files: + k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/apis/example2/v1/generated.proto + + It has these top-level messages: + ReplicaSet + ReplicaSetSpec + ReplicaSetStatus +*/ +package v1 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +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 *ReplicaSet) Reset() { *m = ReplicaSet{} } +func (*ReplicaSet) ProtoMessage() {} +func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *ReplicaSetSpec) Reset() { *m = ReplicaSetSpec{} } +func (*ReplicaSetSpec) ProtoMessage() {} +func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *ReplicaSetStatus) Reset() { *m = ReplicaSetStatus{} } +func (*ReplicaSetStatus) ProtoMessage() {} +func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func init() { + proto.RegisterType((*ReplicaSet)(nil), "k8s.io.apiserver.pkg.apis.example2.v1.ReplicaSet") + proto.RegisterType((*ReplicaSetSpec)(nil), "k8s.io.apiserver.pkg.apis.example2.v1.ReplicaSetSpec") + proto.RegisterType((*ReplicaSetStatus)(nil), "k8s.io.apiserver.pkg.apis.example2.v1.ReplicaSetStatus") +} +func (m *ReplicaSet) 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 *ReplicaSet) 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.Spec.Size())) + n2, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n3, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + return i, nil +} + +func (m *ReplicaSetSpec) 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 *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Replicas != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + } + return i, nil +} + +func (m *ReplicaSetStatus) 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 *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + 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 *ReplicaSet) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ReplicaSetSpec) Size() (n int) { + var l int + _ = l + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + return n +} + +func (m *ReplicaSetStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Replicas)) + 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 *ReplicaSet) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSet{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ReplicaSetSpec", "ReplicaSetSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ReplicaSetStatus", "ReplicaSetStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetSpec{`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetStatus{`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `}`, + }, "") + 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 *ReplicaSet) 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: ReplicaSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSet: 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 Spec", 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.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", 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.Status.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 *ReplicaSetSpec) 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: ReplicaSetSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + 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 *ReplicaSetStatus) 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: ReplicaSetStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= (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 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/apiserver/pkg/apis/example2/v1/generated.proto", fileDescriptorGenerated) +} + +var fileDescriptorGenerated = []byte{ + // 421 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0xcf, 0x8e, 0xd3, 0x30, + 0x10, 0x87, 0x93, 0xb2, 0xac, 0x2a, 0xb3, 0x5a, 0xad, 0x72, 0xaa, 0x7a, 0x70, 0x51, 0x24, 0xa4, + 0x1e, 0xc0, 0x26, 0xcb, 0x5f, 0x71, 0x42, 0xb9, 0x03, 0x52, 0xf6, 0x80, 0xc4, 0x05, 0x1c, 0x77, + 0x48, 0x4d, 0x9a, 0xd8, 0xb2, 0x9d, 0x08, 0x6e, 0x3c, 0x02, 0x8f, 0xc1, 0xa3, 0xf4, 0xb8, 0xc7, + 0x3d, 0x55, 0x34, 0xbc, 0x08, 0xaa, 0x13, 0x12, 0xb1, 0xed, 0x0a, 0xb8, 0xe5, 0x67, 0xcf, 0xf7, + 0xcd, 0x64, 0x8c, 0x5e, 0xe7, 0xcf, 0x0d, 0x11, 0x92, 0xe6, 0x55, 0x0a, 0xba, 0x04, 0x0b, 0x86, + 0xd6, 0x50, 0x2e, 0xa4, 0xa6, 0xdd, 0x05, 0x53, 0xc2, 0x80, 0xae, 0x41, 0x53, 0x95, 0x67, 0x2e, + 0x51, 0xf8, 0xcc, 0x0a, 0xb5, 0x82, 0x73, 0x5a, 0x47, 0x34, 0x83, 0x12, 0x34, 0xb3, 0xb0, 0x20, + 0x4a, 0x4b, 0x2b, 0x83, 0x7b, 0x2d, 0x46, 0x7a, 0x8c, 0xa8, 0x3c, 0x73, 0x89, 0xfc, 0xc6, 0x48, + 0x1d, 0x4d, 0x1f, 0x64, 0xc2, 0x2e, 0xab, 0x94, 0x70, 0x59, 0xd0, 0x4c, 0x66, 0x92, 0x3a, 0x3a, + 0xad, 0x3e, 0xba, 0xe4, 0x82, 0xfb, 0x6a, 0xad, 0xd3, 0x70, 0x18, 0x86, 0x72, 0xa9, 0xe1, 0x40, + 0xe7, 0xe9, 0xe3, 0xa1, 0xa6, 0x60, 0x7c, 0x29, 0x4a, 0xd0, 0x5f, 0x86, 0x99, 0x0b, 0xb0, 0xec, + 0x10, 0x45, 0x6f, 0xa2, 0x74, 0x55, 0x5a, 0x51, 0xc0, 0x1e, 0xf0, 0xf4, 0x6f, 0x80, 0xe1, 0x4b, + 0x28, 0xd8, 0x1e, 0xf7, 0xe8, 0x26, 0xae, 0xb2, 0x62, 0x45, 0x45, 0x69, 0x8d, 0xd5, 0xd7, 0xa1, + 0xf0, 0xfb, 0x08, 0xa1, 0x04, 0xd4, 0x4a, 0x70, 0x76, 0x01, 0x36, 0xf8, 0x80, 0xc6, 0xbb, 0xff, + 0x58, 0x30, 0xcb, 0x26, 0xfe, 0x5d, 0x7f, 0x7e, 0xe7, 0xfc, 0x21, 0x19, 0xf6, 0xdd, 0x6b, 0x87, + 0x95, 0xef, 0xaa, 0x49, 0x1d, 0x91, 0x37, 0xe9, 0x27, 0xe0, 0xf6, 0x15, 0x58, 0x16, 0x07, 0xeb, + 0xcd, 0xcc, 0x6b, 0x36, 0x33, 0x34, 0x9c, 0x25, 0xbd, 0x35, 0x78, 0x8b, 0x8e, 0x8c, 0x02, 0x3e, + 0x19, 0x39, 0xfb, 0x13, 0xf2, 0x4f, 0xaf, 0x49, 0x86, 0x11, 0x2f, 0x14, 0xf0, 0xf8, 0xa4, 0x6b, + 0x71, 0xb4, 0x4b, 0x89, 0x13, 0x06, 0xef, 0xd1, 0xb1, 0xb1, 0xcc, 0x56, 0x66, 0x72, 0xcb, 0xa9, + 0x9f, 0xfd, 0xbf, 0xda, 0xe1, 0xf1, 0x69, 0x27, 0x3f, 0x6e, 0x73, 0xd2, 0x69, 0xc3, 0x17, 0xe8, + 0xf4, 0xcf, 0x31, 0x82, 0x39, 0x1a, 0xeb, 0xf6, 0xc4, 0xb8, 0x6d, 0xdd, 0x8e, 0x4f, 0x9a, 0xcd, + 0x6c, 0xdc, 0x55, 0x99, 0xa4, 0xbf, 0x0d, 0x5f, 0xa2, 0xb3, 0xeb, 0x7d, 0x82, 0xfb, 0x7b, 0xf4, + 0x59, 0xd7, 0xf9, 0x80, 0x21, 0x9e, 0xaf, 0xb7, 0xd8, 0xbb, 0xdc, 0x62, 0xef, 0x6a, 0x8b, 0xbd, + 0xaf, 0x0d, 0xf6, 0xd7, 0x0d, 0xf6, 0x2f, 0x1b, 0xec, 0x5f, 0x35, 0xd8, 0xff, 0xd1, 0x60, 0xff, + 0xdb, 0x4f, 0xec, 0xbd, 0x1b, 0xd5, 0xd1, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x69, 0x4a, 0x84, + 0xe4, 0x71, 0x03, 0x00, 0x00, +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/generated.proto b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/generated.proto new file mode 100644 index 000000000..d36229187 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/generated.proto @@ -0,0 +1,71 @@ +/* +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.apiserver.pkg.apis.example2.v1; + +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 = "v1"; + +// ReplicaSet ensures that a specified number of pod replicas are running at any given time. +message ReplicaSet { + // If the Labels of a ReplicaSet are empty, they are defaulted to + // be the same as the Pod(s) that the ReplicaSet manages. + // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the specification of the desired behavior of the ReplicaSet. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + optional ReplicaSetSpec spec = 2; + + // Status is the most recently observed status of the ReplicaSet. + // This data may be out of date by some window of time. + // Populated by the system. + // Read-only. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + optional ReplicaSetStatus status = 3; +} + +// ReplicaSetSpec is the specification of a ReplicaSet. +message ReplicaSetSpec { + // 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 + // +optional + optional int32 replicas = 1; +} + +// ReplicaSetStatus represents the current status of a ReplicaSet. +message ReplicaSetStatus { + // Replicas is the most recently oberved number of replicas. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller + optional int32 replicas = 1; +} + diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/register.go similarity index 75% rename from vendor/k8s.io/kubernetes/federation/apis/core/v1/register.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/register.go index dc3e64301..1cb0f5eb8 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/core/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/register.go @@ -1,5 +1,5 @@ /* -Copyright 2014 The Kubernetes Authors. +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. @@ -17,18 +17,27 @@ limitations under the License. package v1 import ( - "k8s.io/api/core/v1" 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 = "" +const GroupName = "example2.apiserver.k8s.io" // SchemeGroupVersion is group version used to register these objects var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// 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. @@ -44,25 +53,11 @@ func init() { localSchemeBuilder.Register(addKnownTypes, addConversionFuncs, addDefaultingFuncs) } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, - &v1.Service{}, - &v1.Namespace{}, - &v1.NamespaceList{}, - &v1.ServiceList{}, - &v1.Secret{}, - &v1.SecretList{}, - &v1.Event{}, - &v1.EventList{}, - &v1.ConfigMap{}, - &v1.ConfigMapList{}, + &ReplicaSet{}, ) - - // Add common types - scheme.AddKnownTypes(SchemeGroupVersion, &metav1.Status{}) - - // Add the watch version that applies metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/types.go new file mode 100644 index 000000000..e6e6fb00c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/types.go @@ -0,0 +1,64 @@ +/* +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 ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ReplicaSet ensures that a specified number of pod replicas are running at any given time. +type ReplicaSet struct { + metav1.TypeMeta `json:",inline"` + + // If the Labels of a ReplicaSet are empty, they are defaulted to + // be the same as the Pod(s) that the ReplicaSet manages. + // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Spec defines the specification of the desired behavior of the ReplicaSet. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + Spec ReplicaSetSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` + + // Status is the most recently observed status of the ReplicaSet. + // This data may be out of date by some window of time. + // Populated by the system. + // Read-only. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + Status ReplicaSetStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// ReplicaSetSpec is the specification of a ReplicaSet. +type ReplicaSetSpec struct { + // 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 + // +optional + Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"` +} + +// ReplicaSetStatus represents the current status of a ReplicaSet. +type ReplicaSetStatus struct { + // Replicas is the most recently oberved number of replicas. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller + Replicas int32 `json:"replicas" protobuf:"varint,1,opt,name=replicas"` +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/types_swagger_doc_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/types_swagger_doc_generated.go new file mode 100644 index 000000000..c7be42d5a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/types_swagger_doc_generated.go @@ -0,0 +1,17 @@ +/* +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 v1 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.conversion.go new file mode 100644 index 000000000..609ebef2c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.conversion.go @@ -0,0 +1,111 @@ +// +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 conversion-gen. Do not edit it manually! + +package v1 + +import ( + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + example "k8s.io/apiserver/pkg/apis/example" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1_ReplicaSet_To_example_ReplicaSet, + Convert_example_ReplicaSet_To_v1_ReplicaSet, + Convert_v1_ReplicaSetSpec_To_example_ReplicaSetSpec, + Convert_example_ReplicaSetSpec_To_v1_ReplicaSetSpec, + Convert_v1_ReplicaSetStatus_To_example_ReplicaSetStatus, + Convert_example_ReplicaSetStatus_To_v1_ReplicaSetStatus, + ) +} + +func autoConvert_v1_ReplicaSet_To_example_ReplicaSet(in *ReplicaSet, out *example.ReplicaSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_ReplicaSetSpec_To_example_ReplicaSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_ReplicaSetStatus_To_example_ReplicaSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_ReplicaSet_To_example_ReplicaSet is an autogenerated conversion function. +func Convert_v1_ReplicaSet_To_example_ReplicaSet(in *ReplicaSet, out *example.ReplicaSet, s conversion.Scope) error { + return autoConvert_v1_ReplicaSet_To_example_ReplicaSet(in, out, s) +} + +func autoConvert_example_ReplicaSet_To_v1_ReplicaSet(in *example.ReplicaSet, out *ReplicaSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_example_ReplicaSetSpec_To_v1_ReplicaSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_example_ReplicaSetStatus_To_v1_ReplicaSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_example_ReplicaSet_To_v1_ReplicaSet is an autogenerated conversion function. +func Convert_example_ReplicaSet_To_v1_ReplicaSet(in *example.ReplicaSet, out *ReplicaSet, s conversion.Scope) error { + return autoConvert_example_ReplicaSet_To_v1_ReplicaSet(in, out, s) +} + +func autoConvert_v1_ReplicaSetSpec_To_example_ReplicaSetSpec(in *ReplicaSetSpec, out *example.ReplicaSetSpec, s conversion.Scope) error { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + return nil +} + +func autoConvert_example_ReplicaSetSpec_To_v1_ReplicaSetSpec(in *example.ReplicaSetSpec, out *ReplicaSetSpec, s conversion.Scope) error { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + return nil +} + +func autoConvert_v1_ReplicaSetStatus_To_example_ReplicaSetStatus(in *ReplicaSetStatus, out *example.ReplicaSetStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_v1_ReplicaSetStatus_To_example_ReplicaSetStatus is an autogenerated conversion function. +func Convert_v1_ReplicaSetStatus_To_example_ReplicaSetStatus(in *ReplicaSetStatus, out *example.ReplicaSetStatus, s conversion.Scope) error { + return autoConvert_v1_ReplicaSetStatus_To_example_ReplicaSetStatus(in, out, s) +} + +func autoConvert_example_ReplicaSetStatus_To_v1_ReplicaSetStatus(in *example.ReplicaSetStatus, out *ReplicaSetStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_example_ReplicaSetStatus_To_v1_ReplicaSetStatus is an autogenerated conversion function. +func Convert_example_ReplicaSetStatus_To_v1_ReplicaSetStatus(in *example.ReplicaSetStatus, out *ReplicaSetStatus, s conversion.Scope) error { + return autoConvert_example_ReplicaSetStatus_To_v1_ReplicaSetStatus(in, out, s) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.deepcopy.go new file mode 100644 index 000000000..0208e8566 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.deepcopy.go @@ -0,0 +1,95 @@ +// +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 v1 + +import ( + 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 *ReplicaSet) DeepCopyInto(out *ReplicaSet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet. +func (in *ReplicaSet) DeepCopy() *ReplicaSet { + if in == nil { + return nil + } + out := new(ReplicaSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ReplicaSet) 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 *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec. +func (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec { + if in == nil { + return nil + } + out := new(ReplicaSetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus. +func (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus { + if in == nil { + return nil + } + out := new(ReplicaSetStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.defaults.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.defaults.go similarity index 98% rename from vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.defaults.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.defaults.go index e24e70be3..6df448eb9 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/v1beta1/zz_generated.defaults.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.defaults.go @@ -18,7 +18,7 @@ limitations under the License. // This file was autogenerated by defaulter-gen. Do not edit it manually! -package v1beta1 +package v1 import ( runtime "k8s.io/apimachinery/pkg/runtime" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/zz_generated.deepcopy.go new file mode 100644 index 000000000..f10081169 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/apis/example2/zz_generated.deepcopy.go @@ -0,0 +1,21 @@ +// +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 example2 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD index 8efedfb44..17d5881b0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD @@ -34,7 +34,7 @@ go_library( importpath = "k8s.io/apiserver/pkg/audit/policy", deps = [ "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/audit:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/audit/v1alpha1:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/reader.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/reader.go index b748e8649..1d02e1a3f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/reader.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/reader.go @@ -20,7 +20,7 @@ import ( "fmt" "io/ioutil" - "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" auditinternal "k8s.io/apiserver/pkg/apis/audit" auditv1alpha1 "k8s.io/apiserver/pkg/apis/audit/v1alpha1" auditv1beta1 "k8s.io/apiserver/pkg/apis/audit/v1beta1" @@ -30,6 +30,20 @@ import ( "github.com/golang/glog" ) +var ( + apiGroupVersions = []schema.GroupVersion{ + auditv1beta1.SchemeGroupVersion, + auditv1alpha1.SchemeGroupVersion, + } + apiGroupVersionSet = map[schema.GroupVersion]bool{} +) + +func init() { + for _, gv := range apiGroupVersions { + apiGroupVersionSet[gv] = true + } +} + func LoadPolicyFromFile(filePath string) (*auditinternal.Policy, error) { if filePath == "" { return nil, fmt.Errorf("file path not specified") @@ -40,11 +54,18 @@ func LoadPolicyFromFile(filePath string) (*auditinternal.Policy, error) { } policy := &auditinternal.Policy{} - decoder := audit.Codecs.UniversalDecoder(auditv1beta1.SchemeGroupVersion, auditv1alpha1.SchemeGroupVersion) - if err := runtime.DecodeInto(decoder, policyDef, policy); err != nil { + decoder := audit.Codecs.UniversalDecoder(apiGroupVersions...) + + _, gvk, err := decoder.Decode(policyDef, nil, policy) + if err != nil { return nil, fmt.Errorf("failed decoding file %q: %v", filePath, err) } + // Ensure the policy file contained an apiVersion and kind. + if !apiGroupVersionSet[schema.GroupVersion{Group: gvk.Group, Version: gvk.Version}] { + return nil, fmt.Errorf("unknown group version field %v in policy file %s", gvk, filePath) + } + if err := validation.ValidatePolicy(policy); err != nil { return nil, err.ToAggregate() } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/reader_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/reader_test.go index f9bda2846..b05297a98 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/reader_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/audit/policy/reader_test.go @@ -71,6 +71,24 @@ rules: - level: Metadata ` +const policyWithNoVersionOrKind = ` +rules: + - level: None + nonResourceURLs: + - /healthz* + - /version + - level: RequestResponse + users: ["tim"] + userGroups: ["testers", "developers"] + verbs: ["patch", "delete", "create"] + resources: + - group: "" + - group: "rbac.authorization.k8s.io" + resources: ["clusterroles", "clusterrolebindings"] + namespaces: ["default", "kube-system"] + - level: Metadata +` + var expectedPolicy = &audit.Policy{ Rules: []audit.PolicyRule{{ Level: audit.LevelNone, @@ -104,6 +122,15 @@ func TestParserV1alpha1(t *testing.T) { } } +func TestParsePolicyWithNoVersionOrKind(t *testing.T) { + f, err := writePolicy(t, policyWithNoVersionOrKind) + require.NoError(t, err) + defer os.Remove(f) + + _, err = LoadPolicyFromFile(f) + assert.Contains(t, err.Error(), "unknown group version field") +} + func TestParserV1beta1(t *testing.T) { f, err := writePolicy(t, policyDefV1beta1) require.NoError(t, err) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/interfaces.go index e94da3e1a..594109096 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/interfaces.go @@ -67,12 +67,12 @@ type Attributes interface { // zero or more calls to methods of the Attributes interface. It returns nil when an action is // authorized, otherwise it returns an error. type Authorizer interface { - Authorize(a Attributes) (authorized bool, reason string, err error) + Authorize(a Attributes) (authorized Decision, reason string, err error) } -type AuthorizerFunc func(a Attributes) (bool, string, error) +type AuthorizerFunc func(a Attributes) (Decision, string, error) -func (f AuthorizerFunc) Authorize(a Attributes) (bool, string, error) { +func (f AuthorizerFunc) Authorize(a Attributes) (Decision, string, error) { return f(a) } @@ -144,3 +144,15 @@ func (a AttributesRecord) IsResourceRequest() bool { func (a AttributesRecord) GetPath() string { return a.Path } + +type Decision int + +const ( + // DecisionDeny means that an authorizer decided to deny the action. + DecisionDeny Decision = iota + // DecisionAllow means that an authorizer decided to allow the action. + DecisionAllow + // DecisionNoOpionion means that an authorizer has no opinion on wether + // to allow or deny an action. + DecisionNoOpinion +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD index 6a4764ced..7fff4c90a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD @@ -8,7 +8,7 @@ load( go_test( name = "go_default_test", - srcs = ["authz_test.go"], + srcs = ["builtin_test.go"], importpath = "k8s.io/apiserver/pkg/authorization/authorizerfactory", library = ":go_default_library", deps = [ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/builtin.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/builtin.go index 8381e83f4..fc36bc0bc 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/builtin.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/builtin.go @@ -28,8 +28,8 @@ import ( // It is useful in tests and when using kubernetes in an open manner. type alwaysAllowAuthorizer struct{} -func (alwaysAllowAuthorizer) Authorize(a authorizer.Attributes) (authorized bool, reason string, err error) { - return true, "", nil +func (alwaysAllowAuthorizer) Authorize(a authorizer.Attributes) (authorized authorizer.Decision, reason string, err error) { + return authorizer.DecisionAllow, "", nil } func (alwaysAllowAuthorizer) RulesFor(user user.Info, namespace string) ([]authorizer.ResourceRuleInfo, []authorizer.NonResourceRuleInfo, bool, error) { @@ -56,8 +56,8 @@ func NewAlwaysAllowAuthorizer() *alwaysAllowAuthorizer { // It is useful in unit tests to force an operation to be forbidden. type alwaysDenyAuthorizer struct{} -func (alwaysDenyAuthorizer) Authorize(a authorizer.Attributes) (authorized bool, reason string, err error) { - return false, "Everything is forbidden.", nil +func (alwaysDenyAuthorizer) Authorize(a authorizer.Attributes) (decision authorizer.Decision, reason string, err error) { + return authorizer.DecisionNoOpinion, "Everything is forbidden.", nil } func (alwaysDenyAuthorizer) RulesFor(user user.Info, namespace string) ([]authorizer.ResourceRuleInfo, []authorizer.NonResourceRuleInfo, bool, error) { @@ -68,35 +68,22 @@ func NewAlwaysDenyAuthorizer() *alwaysDenyAuthorizer { return new(alwaysDenyAuthorizer) } -// alwaysFailAuthorizer is an implementation of authorizer.Attributes -// which always says no to an authorization request. -// It is useful in unit tests to force an operation to fail with error. -type alwaysFailAuthorizer struct{} - -func (alwaysFailAuthorizer) Authorize(a authorizer.Attributes) (authorized bool, reason string, err error) { - return false, "", errors.New("Authorization failure.") -} - -func NewAlwaysFailAuthorizer() authorizer.Authorizer { - return new(alwaysFailAuthorizer) -} - type privilegedGroupAuthorizer struct { groups []string } -func (r *privilegedGroupAuthorizer) Authorize(attr authorizer.Attributes) (bool, string, error) { +func (r *privilegedGroupAuthorizer) Authorize(attr authorizer.Attributes) (authorizer.Decision, string, error) { if attr.GetUser() == nil { - return false, "Error", errors.New("no user on request.") + return authorizer.DecisionNoOpinion, "Error", errors.New("no user on request.") } for _, attr_group := range attr.GetUser().GetGroups() { for _, priv_group := range r.groups { if priv_group == attr_group { - return true, "", nil + return authorizer.DecisionAllow, "", nil } } } - return false, "", nil + return authorizer.DecisionNoOpinion, "", nil } // NewPrivilegedGroups is for use in loopback scenarios diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/authz_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/builtin_test.go similarity index 74% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/authz_test.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/builtin_test.go index 73a428348..4e22b551f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/authz_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/builtin_test.go @@ -23,20 +23,16 @@ import ( "k8s.io/apiserver/pkg/authorization/authorizer" ) -// NewAlwaysAllowAuthorizer must return a struct which implements authorizer.Authorizer -// and always return nil. func TestNewAlwaysAllowAuthorizer(t *testing.T) { aaa := NewAlwaysAllowAuthorizer() - if authorized, _, _ := aaa.Authorize(nil); !authorized { + if decision, _, _ := aaa.Authorize(nil); decision != authorizer.DecisionAllow { t.Errorf("AlwaysAllowAuthorizer.Authorize did not authorize successfully.") } } -// NewAlwaysDenyAuthorizer must return a struct which implements authorizer.Authorizer -// and always return an error as everything is forbidden. func TestNewAlwaysDenyAuthorizer(t *testing.T) { ada := NewAlwaysDenyAuthorizer() - if authorized, _, _ := ada.Authorize(nil); authorized { + if decision, _, _ := ada.Authorize(nil); decision == authorizer.DecisionAllow { t.Errorf("AlwaysDenyAuthorizer.Authorize returned nil instead of error.") } } @@ -47,10 +43,10 @@ func TestPrivilegedGroupAuthorizer(t *testing.T) { yes := authorizer.AttributesRecord{User: &user.DefaultInfo{Groups: []string{"no", "allow-01"}}} no := authorizer.AttributesRecord{User: &user.DefaultInfo{Groups: []string{"no", "deny-01"}}} - if authorized, _, _ := auth.Authorize(yes); !authorized { + if authorized, _, _ := auth.Authorize(yes); authorized != authorizer.DecisionAllow { t.Errorf("failed") } - if authorized, _, _ := auth.Authorize(no); authorized { + if authorized, _, _ := auth.Authorize(no); authorized == authorizer.DecisionAllow { t.Errorf("failed") } } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/union/union.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/union/union.go index 367da59d1..3246e4c07 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/union/union.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/union/union.go @@ -14,6 +14,14 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package union implements an authorizer that combines multiple subauthorizer. +// The union authorizer iterates over each subauthorizer and returns the first +// decision that is either an Allow decision or a Deny decision. If a +// subauthorizer returns a NoOpinion, then the union authorizer moves onto the +// next authorizer or, if the subauthorizer was the last authorizer, returns +// NoOpinion as the aggregate decision. I.e. union authorizer creates an +// aggregate decision and supports short-circut allows and denies from +// subauthorizers. package union import ( @@ -33,14 +41,14 @@ func New(authorizationHandlers ...authorizer.Authorizer) authorizer.Authorizer { } // Authorizes against a chain of authorizer.Authorizer objects and returns nil if successful and returns error if unsuccessful -func (authzHandler unionAuthzHandler) Authorize(a authorizer.Attributes) (bool, string, error) { +func (authzHandler unionAuthzHandler) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) { var ( errlist []error reasonlist []string ) for _, currAuthzHandler := range authzHandler { - authorized, reason, err := currAuthzHandler.Authorize(a) + decision, reason, err := currAuthzHandler.Authorize(a) if err != nil { errlist = append(errlist, err) @@ -48,13 +56,15 @@ func (authzHandler unionAuthzHandler) Authorize(a authorizer.Attributes) (bool, if len(reason) != 0 { reasonlist = append(reasonlist, reason) } - if !authorized { - continue + switch decision { + case authorizer.DecisionAllow, authorizer.DecisionDeny: + return decision, reason, err + case authorizer.DecisionNoOpinion: + // continue to the next authorizer } - return true, reason, nil } - return false, strings.Join(reasonlist, "\n"), utilerrors.NewAggregate(errlist) + return authorizer.DecisionNoOpinion, strings.Join(reasonlist, "\n"), utilerrors.NewAggregate(errlist) } // unionAuthzRulesHandler authorizer against a chain of authorizer.RuleResolver diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/union/union_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/union/union_test.go index 96d989fb6..a64138979 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/union/union_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/authorization/union/union_test.go @@ -17,6 +17,7 @@ limitations under the License. package union import ( + "errors" "fmt" "reflect" "testing" @@ -26,49 +27,43 @@ import ( ) type mockAuthzHandler struct { - isAuthorized bool - err error + decision authorizer.Decision + err error } -func (mock *mockAuthzHandler) Authorize(a authorizer.Attributes) (bool, string, error) { - if mock.err != nil { - return false, "", mock.err - } - if !mock.isAuthorized { - return false, "", nil - } - return true, "", nil +func (mock *mockAuthzHandler) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) { + return mock.decision, "", mock.err } func TestAuthorizationSecondPasses(t *testing.T) { - handler1 := &mockAuthzHandler{isAuthorized: false} - handler2 := &mockAuthzHandler{isAuthorized: true} + handler1 := &mockAuthzHandler{decision: authorizer.DecisionNoOpinion} + handler2 := &mockAuthzHandler{decision: authorizer.DecisionAllow} authzHandler := New(handler1, handler2) authorized, _, _ := authzHandler.Authorize(nil) - if !authorized { + if authorized != authorizer.DecisionAllow { t.Errorf("Unexpected authorization failure") } } func TestAuthorizationFirstPasses(t *testing.T) { - handler1 := &mockAuthzHandler{isAuthorized: true} - handler2 := &mockAuthzHandler{isAuthorized: false} + handler1 := &mockAuthzHandler{decision: authorizer.DecisionAllow} + handler2 := &mockAuthzHandler{decision: authorizer.DecisionNoOpinion} authzHandler := New(handler1, handler2) authorized, _, _ := authzHandler.Authorize(nil) - if !authorized { + if authorized != authorizer.DecisionAllow { t.Errorf("Unexpected authorization failure") } } func TestAuthorizationNonePasses(t *testing.T) { - handler1 := &mockAuthzHandler{isAuthorized: false} - handler2 := &mockAuthzHandler{isAuthorized: false} + handler1 := &mockAuthzHandler{decision: authorizer.DecisionNoOpinion} + handler2 := &mockAuthzHandler{decision: authorizer.DecisionNoOpinion} authzHandler := New(handler1, handler2) authorized, _, _ := authzHandler.Authorize(nil) - if authorized { + if authorized == authorizer.DecisionAllow { t.Errorf("Expected failed authorization") } } @@ -223,3 +218,49 @@ func getNonResourceRules(infos []authorizer.NonResourceRuleInfo) []authorizer.De } return rules } + +func TestAuthorizationUnequivocalDeny(t *testing.T) { + cs := []struct { + authorizers []authorizer.Authorizer + decision authorizer.Decision + }{ + { + authorizers: []authorizer.Authorizer{}, + decision: authorizer.DecisionNoOpinion, + }, + { + authorizers: []authorizer.Authorizer{ + &mockAuthzHandler{decision: authorizer.DecisionNoOpinion}, + &mockAuthzHandler{decision: authorizer.DecisionAllow}, + &mockAuthzHandler{decision: authorizer.DecisionDeny}, + }, + decision: authorizer.DecisionAllow, + }, + { + authorizers: []authorizer.Authorizer{ + &mockAuthzHandler{decision: authorizer.DecisionNoOpinion}, + &mockAuthzHandler{decision: authorizer.DecisionDeny}, + &mockAuthzHandler{decision: authorizer.DecisionAllow}, + }, + decision: authorizer.DecisionDeny, + }, + { + authorizers: []authorizer.Authorizer{ + &mockAuthzHandler{decision: authorizer.DecisionNoOpinion}, + &mockAuthzHandler{decision: authorizer.DecisionDeny, err: errors.New("webhook failed closed")}, + &mockAuthzHandler{decision: authorizer.DecisionAllow}, + }, + decision: authorizer.DecisionDeny, + }, + } + for i, c := range cs { + t.Run(fmt.Sprintf("case %v", i), func(t *testing.T) { + authzHandler := New(c.authorizers...) + + decision, _, _ := authzHandler.Authorize(nil) + if decision != c.decision { + t.Errorf("Unexpected authorization failure: %v, expected: %v", decision, c.decision) + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go index f6ac5353f..4b8ee2988 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go @@ -82,13 +82,23 @@ func (alwaysAdmit) Handles(operation admission.Operation) bool { return true } -type alwaysDeny struct{} +type alwaysMutatingDeny struct{} -func (alwaysDeny) Admit(a admission.Attributes) (err error) { - return admission.NewForbidden(a, errors.New("Admission control is denying all modifications")) +func (alwaysMutatingDeny) Admit(a admission.Attributes) (err error) { + return admission.NewForbidden(a, errors.New("Mutating admission control is denying all modifications")) } -func (alwaysDeny) Handles(operation admission.Operation) bool { +func (alwaysMutatingDeny) Handles(operation admission.Operation) bool { + return true +} + +type alwaysValidatingDeny struct{} + +func (alwaysValidatingDeny) Validate(a admission.Attributes) (err error) { + return admission.NewForbidden(a, errors.New("Validating admission control is denying all modifications")) +} + +func (alwaysValidatingDeny) Handles(operation admission.Operation) bool { return true } @@ -258,11 +268,6 @@ func handle(storage map[string]rest.Storage) http.Handler { return handleInternal(storage, admissionControl, selfLinker, nil) } -// tests with a deny admission controller -func handleDeny(storage map[string]rest.Storage) http.Handler { - return handleInternal(storage, alwaysDeny{}, selfLinker, nil) -} - // tests using the new namespace scope mechanism func handleNamespaced(storage map[string]rest.Storage) http.Handler { return handleInternal(storage, admissionControl, selfLinker, nil) @@ -519,7 +524,7 @@ func (storage *SimpleRESTStorage) NewList() runtime.Object { return &genericapitesting.SimpleList{} } -func (storage *SimpleRESTStorage) Create(ctx request.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (storage *SimpleRESTStorage) Create(ctx request.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { storage.checkContext(ctx) storage.created = obj.(*genericapitesting.Simple) if err := storage.errors["create"]; err != nil { @@ -529,10 +534,13 @@ func (storage *SimpleRESTStorage) Create(ctx request.Context, obj runtime.Object if storage.injectedFunction != nil { obj, err = storage.injectedFunction(obj) } + if err := createValidation(obj); err != nil { + return nil, err + } return obj, err } -func (storage *SimpleRESTStorage) Update(ctx request.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (storage *SimpleRESTStorage) Update(ctx request.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { storage.checkContext(ctx) obj, err := objInfo.UpdatedObject(ctx, &storage.item) if err != nil { @@ -545,6 +553,9 @@ func (storage *SimpleRESTStorage) Update(ctx request.Context, name string, objIn if storage.injectedFunction != nil { obj, err = storage.injectedFunction(obj) } + if err := updateValidation(&storage.item, obj); err != nil { + return nil, false, err + } return obj, false, err } @@ -714,7 +725,7 @@ type NamedCreaterRESTStorage struct { createdName string } -func (storage *NamedCreaterRESTStorage) Create(ctx request.Context, name string, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (storage *NamedCreaterRESTStorage) Create(ctx request.Context, name string, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { storage.checkContext(ctx) storage.created = obj.(*genericapitesting.Simple) storage.createdName = name @@ -725,6 +736,9 @@ func (storage *NamedCreaterRESTStorage) Create(ctx request.Context, name string, if storage.injectedFunction != nil { obj, err = storage.injectedFunction(obj) } + if err := createValidation(obj); err != nil { + return nil, err + } return obj, err } @@ -2813,22 +2827,27 @@ func TestLegacyDeleteIgnoresOptions(t *testing.T) { } func TestDeleteInvokesAdmissionControl(t *testing.T) { - storage := map[string]rest.Storage{} - simpleStorage := SimpleRESTStorage{} - ID := "id" - storage["simple"] = &simpleStorage - handler := handleDeny(storage) - server := httptest.NewServer(handler) - defer server.Close() + // TODO: remove mutating deny when we removed it from the endpoint implementation and ported all plugins + for _, admit := range []admission.Interface{alwaysMutatingDeny{}, alwaysValidatingDeny{}} { + t.Logf("Testing %T", admit) - client := http.Client{} - request, err := http.NewRequest("DELETE", server.URL+"/"+prefix+"/"+testGroupVersion.Group+"/"+testGroupVersion.Version+"/namespaces/default/simple/"+ID, nil) - response, err := client.Do(request) - if err != nil { - t.Errorf("unexpected error: %v", err) - } - if response.StatusCode != http.StatusForbidden { - t.Errorf("Unexpected response %#v", response) + storage := map[string]rest.Storage{} + simpleStorage := SimpleRESTStorage{} + ID := "id" + storage["simple"] = &simpleStorage + handler := handleInternal(storage, admit, selfLinker, nil) + server := httptest.NewServer(handler) + defer server.Close() + + client := http.Client{} + request, err := http.NewRequest("DELETE", server.URL+"/"+prefix+"/"+testGroupVersion.Group+"/"+testGroupVersion.Version+"/namespaces/default/simple/"+ID, nil) + response, err := client.Do(request) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + if response.StatusCode != http.StatusForbidden { + t.Errorf("Unexpected response %#v", response) + } } } @@ -2971,38 +2990,42 @@ func TestUpdate(t *testing.T) { } func TestUpdateInvokesAdmissionControl(t *testing.T) { - storage := map[string]rest.Storage{} - simpleStorage := SimpleRESTStorage{} - ID := "id" - storage["simple"] = &simpleStorage - handler := handleDeny(storage) - server := httptest.NewServer(handler) - defer server.Close() + for _, admit := range []admission.Interface{alwaysMutatingDeny{}, alwaysValidatingDeny{}} { + t.Logf("Testing %T", admit) - item := &genericapitesting.Simple{ - ObjectMeta: metav1.ObjectMeta{ - Name: ID, - Namespace: metav1.NamespaceDefault, - }, - Other: "bar", - } - body, err := runtime.Encode(testCodec, item) - if err != nil { - // The following cases will fail, so die now - t.Fatalf("unexpected error: %v", err) - } + storage := map[string]rest.Storage{} + simpleStorage := SimpleRESTStorage{} + ID := "id" + storage["simple"] = &simpleStorage + handler := handleInternal(storage, admit, selfLinker, nil) + server := httptest.NewServer(handler) + defer server.Close() - client := http.Client{} - request, err := http.NewRequest("PUT", server.URL+"/"+prefix+"/"+testGroupVersion.Group+"/"+testGroupVersion.Version+"/namespaces/default/simple/"+ID, bytes.NewReader(body)) - response, err := client.Do(request) - if err != nil { - t.Errorf("unexpected error: %v", err) - } - dump, _ := httputil.DumpResponse(response, true) - t.Log(string(dump)) + item := &genericapitesting.Simple{ + ObjectMeta: metav1.ObjectMeta{ + Name: ID, + Namespace: metav1.NamespaceDefault, + }, + Other: "bar", + } + body, err := runtime.Encode(testCodec, item) + if err != nil { + // The following cases will fail, so die now + t.Fatalf("unexpected error: %v", err) + } - if response.StatusCode != http.StatusForbidden { - t.Errorf("Unexpected response %#v", response) + client := http.Client{} + request, err := http.NewRequest("PUT", server.URL+"/"+prefix+"/"+testGroupVersion.Group+"/"+testGroupVersion.Version+"/namespaces/default/simple/"+ID, bytes.NewReader(body)) + response, err := client.Do(request) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + dump, _ := httputil.DumpResponse(response, true) + t.Log(string(dump)) + + if response.StatusCode != http.StatusForbidden { + t.Errorf("Unexpected response %#v", response) + } } } @@ -3602,49 +3625,53 @@ func TestCreateInNamespace(t *testing.T) { } } -func TestCreateInvokesAdmissionControl(t *testing.T) { - storage := SimpleRESTStorage{ - injectedFunction: func(obj runtime.Object) (runtime.Object, error) { - time.Sleep(5 * time.Millisecond) - return obj, nil - }, - } - selfLinker := &setTestSelfLinker{ - t: t, - name: "bar", - namespace: "other", - expectedSet: "/" + prefix + "/" + testGroupVersion.Group + "/" + testGroupVersion.Version + "/namespaces/other/foo/bar", - } - handler := handleInternal(map[string]rest.Storage{"foo": &storage}, alwaysDeny{}, selfLinker, nil) - server := httptest.NewServer(handler) - defer server.Close() - client := http.Client{} +func TestCreateInvokeAdmissionControl(t *testing.T) { + for _, admit := range []admission.Interface{alwaysMutatingDeny{}, alwaysValidatingDeny{}} { + t.Logf("Testing %T", admit) - simple := &genericapitesting.Simple{ - Other: "bar", - } - data, err := runtime.Encode(testCodec, simple) - if err != nil { - t.Errorf("unexpected error: %v", err) - } - request, err := http.NewRequest("POST", server.URL+"/"+prefix+"/"+testGroupVersion.Group+"/"+testGroupVersion.Version+"/namespaces/other/foo", bytes.NewBuffer(data)) - if err != nil { - t.Errorf("unexpected error: %v", err) - } + storage := SimpleRESTStorage{ + injectedFunction: func(obj runtime.Object) (runtime.Object, error) { + time.Sleep(5 * time.Millisecond) + return obj, nil + }, + } + selfLinker := &setTestSelfLinker{ + t: t, + name: "bar", + namespace: "other", + expectedSet: "/" + prefix + "/" + testGroupVersion.Group + "/" + testGroupVersion.Version + "/namespaces/other/foo/bar", + } + handler := handleInternal(map[string]rest.Storage{"foo": &storage}, admit, selfLinker, nil) + server := httptest.NewServer(handler) + defer server.Close() + client := http.Client{} - wg := sync.WaitGroup{} - wg.Add(1) - var response *http.Response - go func() { - response, err = client.Do(request) - wg.Done() - }() - wg.Wait() - if err != nil { - t.Errorf("unexpected error: %v", err) - } - if response.StatusCode != http.StatusForbidden { - t.Errorf("Unexpected status: %d, Expected: %d, %#v", response.StatusCode, http.StatusForbidden, response) + simple := &genericapitesting.Simple{ + Other: "bar", + } + data, err := runtime.Encode(testCodec, simple) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + request, err := http.NewRequest("POST", server.URL+"/"+prefix+"/"+testGroupVersion.Group+"/"+testGroupVersion.Version+"/namespaces/other/foo", bytes.NewBuffer(data)) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + + wg := sync.WaitGroup{} + wg.Add(1) + var response *http.Response + go func() { + response, err = client.Do(request) + wg.Done() + }() + wg.Wait() + if err != nil { + t.Errorf("unexpected error: %v", err) + } + if response.StatusCode != http.StatusForbidden { + t.Errorf("Unexpected status: %d, Expected: %d, %#v", response.StatusCode, http.StatusForbidden, response) + } } } @@ -3867,7 +3894,8 @@ func TestUpdateChecksAPIVersion(t *testing.T) { } type SimpleXGSubresourceRESTStorage struct { - item genericapitesting.SimpleXGSubresource + item genericapitesting.SimpleXGSubresource + itemGVK schema.GroupVersionKind } func (storage *SimpleXGSubresourceRESTStorage) New() runtime.Object { @@ -3878,6 +3906,12 @@ func (storage *SimpleXGSubresourceRESTStorage) Get(ctx request.Context, id strin return storage.item.DeepCopyObject(), nil } +var _ = rest.GroupVersionKindProvider(&SimpleXGSubresourceRESTStorage{}) + +func (storage *SimpleXGSubresourceRESTStorage) GroupVersionKind(containingGV schema.GroupVersion) schema.GroupVersionKind { + return storage.itemGVK +} + func TestXGSubresource(t *testing.T) { container := restful.NewContainer() container.Router(restful.CurlyRouter{}) @@ -3888,6 +3922,7 @@ func TestXGSubresource(t *testing.T) { item: genericapitesting.SimpleXGSubresource{ SubresourceInfo: "foo", }, + itemGVK: testGroup2Version.WithKind("SimpleXGSubresource"), } storage := map[string]rest.Storage{ "simple": &SimpleRESTStorage{}, @@ -3913,10 +3948,6 @@ func TestXGSubresource(t *testing.T) { GroupVersion: testGroupVersion, OptionsExternalVersion: &testGroupVersion, Serializer: codecs, - - SubresourceGroupVersionKind: map[string]schema.GroupVersionKind{ - "simple/subsimple": testGroup2Version.WithKind("SimpleXGSubresource"), - }, } if err := (&group).InstallREST(container); err != nil { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/authorization.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/authorization.go index d244257a0..f60756b6f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/authorization.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/authorization.go @@ -47,7 +47,7 @@ func WithAuthorization(handler http.Handler, requestContextMapper request.Reques return } authorized, reason, err := a.Authorize(attributes) - if authorized { + if authorized == authorizer.DecisionAllow { handler.ServeHTTP(w, req) return } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go index 8f67caf86..9af292e1c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go @@ -110,8 +110,8 @@ func WithImpersonation(handler http.Handler, requestContextMapper request.Reques return } - allowed, reason, err := a.Authorize(actingAsAttributes) - if err != nil || !allowed { + decision, reason, err := a.Authorize(actingAsAttributes) + if err != nil || decision != authorizer.DecisionAllow { glog.V(4).Infof("Forbidden: %#v, Reason: %s, Error: %v", req.RequestURI, reason, err) responsewriters.Forbidden(ctx, actingAsAttributes, w, req, reason, s) return diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation_test.go index d43776507..814de2a26 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation_test.go @@ -35,50 +35,50 @@ import ( type impersonateAuthorizer struct{} -func (impersonateAuthorizer) Authorize(a authorizer.Attributes) (authorized bool, reason string, err error) { +func (impersonateAuthorizer) Authorize(a authorizer.Attributes) (authorized authorizer.Decision, reason string, err error) { user := a.GetUser() switch { case user.GetName() == "system:admin": - return true, "", nil + return authorizer.DecisionAllow, "", nil case user.GetName() == "tester": - return false, "", fmt.Errorf("works on my machine") + return authorizer.DecisionNoOpinion, "", fmt.Errorf("works on my machine") case user.GetName() == "deny-me": - return false, "denied", nil + return authorizer.DecisionNoOpinion, "denied", nil } if len(user.GetGroups()) > 0 && user.GetGroups()[0] == "wheel" && a.GetVerb() == "impersonate" && a.GetResource() == "users" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } if len(user.GetGroups()) > 0 && user.GetGroups()[0] == "sa-impersonater" && a.GetVerb() == "impersonate" && a.GetResource() == "serviceaccounts" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } if len(user.GetGroups()) > 0 && user.GetGroups()[0] == "regular-impersonater" && a.GetVerb() == "impersonate" && a.GetResource() == "users" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } if len(user.GetGroups()) > 1 && user.GetGroups()[1] == "group-impersonater" && a.GetVerb() == "impersonate" && a.GetResource() == "groups" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } if len(user.GetGroups()) > 1 && user.GetGroups()[1] == "extra-setter-scopes" && a.GetVerb() == "impersonate" && a.GetResource() == "userextras" && a.GetSubresource() == "scopes" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } if len(user.GetGroups()) > 1 && user.GetGroups()[1] == "extra-setter-particular-scopes" && a.GetVerb() == "impersonate" && a.GetResource() == "userextras" && a.GetSubresource() == "scopes" && a.GetName() == "scope-a" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } if len(user.GetGroups()) > 1 && user.GetGroups()[1] == "extra-setter-project" && a.GetVerb() == "impersonate" && a.GetResource() == "userextras" && a.GetSubresource() == "project" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } - return false, "deny by default", nil + return authorizer.DecisionNoOpinion, "deny by default", nil } func TestImpersonationFilter(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/groupversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/groupversion.go index a60e45631..4b8823758 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/groupversion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/groupversion.go @@ -75,12 +75,6 @@ type APIGroupVersion struct { MinRequestTimeout time.Duration - // SubresourceGroupVersionKind contains the GroupVersionKind overrides for each subresource that is - // accessible from this API group version. The GroupVersionKind is that of the external version of - // the subresource. The key of this map should be the path of the subresource. The keys here should - // match the keys in the Storage map above for subresources. - SubresourceGroupVersionKind map[string]schema.GroupVersionKind - // EnableAPIResponseCompression indicates whether API Responses should support compression // if the client requests it via Accept-Encoding EnableAPIResponseCompression bool diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD index f90e24c35..92b7b2823 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD @@ -21,6 +21,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", @@ -37,12 +38,16 @@ go_test( go_library( name = "go_default_library", srcs = [ + "create.go", + "delete.go", "doc.go", + "get.go", "namer.go", "patch.go", "proxy.go", "response.go", "rest.go", + "update.go", "watch.go", ], importpath = "k8s.io/apiserver/pkg/endpoints/handlers", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go new file mode 100644 index 000000000..dc3560623 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go @@ -0,0 +1,168 @@ +/* +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 handlers + +import ( + "fmt" + "net/http" + "time" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + utiltrace "k8s.io/apiserver/pkg/util/trace" +) + +func createHandler(r rest.NamedCreater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface, includeName bool) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // For performance tracking purposes. + trace := utiltrace.New("Create " + req.URL.Path) + defer trace.LogIfLong(500 * time.Millisecond) + + // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + var ( + namespace, name string + err error + ) + if includeName { + namespace, name, err = scope.Namer.Name(req) + } else { + namespace, err = scope.Namer.Namespace(req) + } + if err != nil { + scope.err(err, w, req) + return + } + + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + gv := scope.Kind.GroupVersion() + s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) + if err != nil { + scope.err(err, w, req) + return + } + decoder := scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}) + + body, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + + defaultGVK := scope.Kind + original := r.New() + trace.Step("About to convert to expected version") + obj, gvk, err := decoder.Decode(body, &defaultGVK, original) + if err != nil { + err = transformDecodeError(typer, err, original, gvk, body) + scope.err(err, w, req) + return + } + if gvk.GroupVersion() != gv { + err = errors.NewBadRequest(fmt.Sprintf("the API version in the data (%s) does not match the expected API version (%v)", gvk.GroupVersion().String(), gv.String())) + scope.err(err, w, req) + return + } + trace.Step("Conversion done") + + ae := request.AuditEventFrom(ctx) + audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) + + userInfo, _ := request.UserFrom(ctx) + admissionAttributes := admission.NewAttributesRecord(obj, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, userInfo) + if mutatingAdmission, ok := admit.(admission.MutationInterface); ok && mutatingAdmission.Handles(admission.Create) { + err = mutatingAdmission.Admit(admissionAttributes) + if err != nil { + scope.err(err, w, req) + return + } + } + + // TODO: replace with content type negotiation? + includeUninitialized := req.URL.Query().Get("includeUninitialized") == "1" + + trace.Step("About to store object in database") + result, err := finishRequest(timeout, func() (runtime.Object, error) { + return r.Create( + ctx, + name, + obj, + rest.AdmissionToValidateObjectFunc(admit, admissionAttributes), + includeUninitialized, + ) + }) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Object stored in database") + + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + trace.Step("Self-link added") + + // If the object is partially initialized, always indicate it via StatusAccepted + code := http.StatusCreated + if accessor, err := meta.Accessor(result); err == nil { + if accessor.GetInitializers() != nil { + code = http.StatusAccepted + } + } + status, ok := result.(*metav1.Status) + if ok && err == nil && status.Code == 0 { + status.Code = int32(code) + } + + transformResponseObject(ctx, scope, req, w, code, result) + } +} + +// CreateNamedResource returns a function that will handle a resource creation with name. +func CreateNamedResource(r rest.NamedCreater, scope RequestScope, typer runtime.ObjectTyper, admission admission.Interface) http.HandlerFunc { + return createHandler(r, scope, typer, admission, true) +} + +// CreateResource returns a function that will handle a resource creation. +func CreateResource(r rest.Creater, scope RequestScope, typer runtime.ObjectTyper, admission admission.Interface) http.HandlerFunc { + return createHandler(&namedCreaterAdapter{r}, scope, typer, admission, false) +} + +type namedCreaterAdapter struct { + rest.Creater +} + +func (c *namedCreaterAdapter) Create(ctx request.Context, name string, obj runtime.Object, createValidatingAdmission rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { + return c.Creater.Create(ctx, obj, createValidatingAdmission, includeUninitialized) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/delete.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/delete.go new file mode 100644 index 000000000..0bc5a659b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/delete.go @@ -0,0 +1,282 @@ +/* +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 handlers + +import ( + "fmt" + "net/http" + "time" + + "k8s.io/apimachinery/pkg/api/errors" + metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + utiltrace "k8s.io/apiserver/pkg/util/trace" +) + +// DeleteResource returns a function that will handle a resource deletion +// TODO admission here becomes solely validating admission +func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope RequestScope, admit admission.Interface) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // For performance tracking purposes. + trace := utiltrace.New("Delete " + req.URL.Path) + defer trace.LogIfLong(500 * time.Millisecond) + + // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + namespace, name, err := scope.Namer.Name(req) + if err != nil { + scope.err(err, w, req) + return + } + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + options := &metav1.DeleteOptions{} + if allowsOptions { + body, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + if len(body) > 0 { + s, err := negotiation.NegotiateInputSerializer(req, metainternalversion.Codecs) + if err != nil { + scope.err(err, w, req) + return + } + // For backwards compatibility, we need to allow existing clients to submit per group DeleteOptions + // It is also allowed to pass a body with meta.k8s.io/v1.DeleteOptions + defaultGVK := scope.MetaGroupVersion.WithKind("DeleteOptions") + obj, _, err := metainternalversion.Codecs.DecoderToVersion(s.Serializer, defaultGVK.GroupVersion()).Decode(body, &defaultGVK, options) + if err != nil { + scope.err(err, w, req) + return + } + if obj != options { + scope.err(fmt.Errorf("decoded object cannot be converted to DeleteOptions"), w, req) + return + } + trace.Step("Decoded delete options") + + ae := request.AuditEventFrom(ctx) + audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) + trace.Step("Recorded the audit event") + } else { + if values := req.URL.Query(); len(values) > 0 { + if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, options); err != nil { + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + } + } + } + + trace.Step("About to check admission control") + if admit != nil && admit.Handles(admission.Delete) { + userInfo, _ := request.UserFrom(ctx) + attrs := admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Delete, userInfo) + if mutatingAdmission, ok := admit.(admission.MutationInterface); ok { + if err := mutatingAdmission.Admit(attrs); err != nil { + scope.err(err, w, req) + return + } + } + if validatingAdmission, ok := admit.(admission.ValidationInterface); ok { + if err := validatingAdmission.Validate(attrs); err != nil { + scope.err(err, w, req) + return + } + } + } + + trace.Step("About to delete object from database") + wasDeleted := true + result, err := finishRequest(timeout, func() (runtime.Object, error) { + obj, deleted, err := r.Delete(ctx, name, options) + wasDeleted = deleted + return obj, err + }) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Object deleted from database") + + status := http.StatusOK + // Return http.StatusAccepted if the resource was not deleted immediately and + // user requested cascading deletion by setting OrphanDependents=false. + // Note: We want to do this always if resource was not deleted immediately, but + // that will break existing clients. + // Other cases where resource is not instantly deleted are: namespace deletion + // and pod graceful deletion. + if !wasDeleted && options.OrphanDependents != nil && *options.OrphanDependents == false { + status = http.StatusAccepted + } + // if the rest.Deleter returns a nil object, fill out a status. Callers may return a valid + // object with the response. + if result == nil { + result = &metav1.Status{ + Status: metav1.StatusSuccess, + Code: int32(status), + Details: &metav1.StatusDetails{ + Name: name, + Kind: scope.Kind.Kind, + }, + } + } else { + // when a non-status response is returned, set the self link + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if _, ok := result.(*metav1.Status); !ok { + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + } + } + + transformResponseObject(ctx, scope, req, w, status, result) + } +} + +// DeleteCollection returns a function that will handle a collection deletion +func DeleteCollection(r rest.CollectionDeleter, checkBody bool, scope RequestScope, admit admission.Interface) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + namespace, err := scope.Namer.Namespace(req) + if err != nil { + scope.err(err, w, req) + return + } + + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + if mutatingAdmission, ok := admit.(admission.MutationInterface); ok && mutatingAdmission.Handles(admission.Delete) { + userInfo, _ := request.UserFrom(ctx) + + err = mutatingAdmission.Admit(admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, "", scope.Resource, scope.Subresource, admission.Delete, userInfo)) + if err != nil { + scope.err(err, w, req) + return + } + } + // TODO: avoid calling Handles twice + if validatingAdmission, ok := admit.(admission.ValidationInterface); ok && validatingAdmission.Handles(admission.Delete) { + userInfo, _ := request.UserFrom(ctx) + + err = validatingAdmission.Validate(admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, "", scope.Resource, scope.Subresource, admission.Delete, userInfo)) + if err != nil { + scope.err(err, w, req) + return + } + } + + listOptions := metainternalversion.ListOptions{} + if err := metainternalversion.ParameterCodec.DecodeParameters(req.URL.Query(), scope.MetaGroupVersion, &listOptions); err != nil { + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + + // transform fields + // TODO: DecodeParametersInto should do this. + if listOptions.FieldSelector != nil { + fn := func(label, value string) (newLabel, newValue string, err error) { + return scope.Convertor.ConvertFieldLabel(scope.Kind.GroupVersion().String(), scope.Kind.Kind, label, value) + } + if listOptions.FieldSelector, err = listOptions.FieldSelector.Transform(fn); err != nil { + // TODO: allow bad request to set field causes based on query parameters + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + } + + options := &metav1.DeleteOptions{} + if checkBody { + body, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + if len(body) > 0 { + s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) + if err != nil { + scope.err(err, w, req) + return + } + defaultGVK := scope.Kind.GroupVersion().WithKind("DeleteOptions") + obj, _, err := scope.Serializer.DecoderToVersion(s.Serializer, defaultGVK.GroupVersion()).Decode(body, &defaultGVK, options) + if err != nil { + scope.err(err, w, req) + return + } + if obj != options { + scope.err(fmt.Errorf("decoded object cannot be converted to DeleteOptions"), w, req) + return + } + + ae := request.AuditEventFrom(ctx) + audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) + } + } + + result, err := finishRequest(timeout, func() (runtime.Object, error) { + return r.DeleteCollection(ctx, options, &listOptions) + }) + if err != nil { + scope.err(err, w, req) + return + } + + // if the rest.Deleter returns a nil object, fill out a status. Callers may return a valid + // object with the response. + if result == nil { + result = &metav1.Status{ + Status: metav1.StatusSuccess, + Code: http.StatusOK, + Details: &metav1.StatusDetails{ + Kind: scope.Kind.Kind, + }, + } + } else { + // when a non-status response is returned, set the self link + if _, ok := result.(*metav1.Status); !ok { + if _, err := setListSelfLink(result, ctx, req, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + } + } + + transformResponseObject(ctx, scope, req, w, http.StatusOK, result) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/get.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/get.go new file mode 100644 index 000000000..7461ece64 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/get.go @@ -0,0 +1,278 @@ +/* +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 handlers + +import ( + "fmt" + "math/rand" + "net/http" + "net/url" + "strings" + "time" + + "github.com/golang/glog" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/endpoints/metrics" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + utiltrace "k8s.io/apiserver/pkg/util/trace" +) + +// getterFunc performs a get request with the given context and object name. The request +// may be used to deserialize an options object to pass to the getter. +type getterFunc func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) + +// getResourceHandler is an HTTP handler function for get requests. It delegates to the +// passed-in getterFunc to perform the actual get. +func getResourceHandler(scope RequestScope, getter getterFunc) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + trace := utiltrace.New("Get " + req.URL.Path) + defer trace.LogIfLong(500 * time.Millisecond) + + namespace, name, err := scope.Namer.Name(req) + if err != nil { + scope.err(err, w, req) + return + } + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + result, err := getter(ctx, name, req, trace) + if err != nil { + scope.err(err, w, req) + return + } + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + + trace.Step("About to write a response") + transformResponseObject(ctx, scope, req, w, http.StatusOK, result) + } +} + +// GetResource returns a function that handles retrieving a single resource from a rest.Storage object. +func GetResource(r rest.Getter, e rest.Exporter, scope RequestScope) http.HandlerFunc { + return getResourceHandler(scope, + func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) { + // check for export + options := metav1.GetOptions{} + if values := req.URL.Query(); len(values) > 0 { + exports := metav1.ExportOptions{} + if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &exports); err != nil { + err = errors.NewBadRequest(err.Error()) + return nil, err + } + if exports.Export { + if e == nil { + return nil, errors.NewBadRequest(fmt.Sprintf("export of %q is not supported", scope.Resource.Resource)) + } + return e.Export(ctx, name, exports) + } + if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &options); err != nil { + err = errors.NewBadRequest(err.Error()) + return nil, err + } + } + if trace != nil { + trace.Step("About to Get from storage") + } + return r.Get(ctx, name, &options) + }) +} + +// GetResourceWithOptions returns a function that handles retrieving a single resource from a rest.Storage object. +func GetResourceWithOptions(r rest.GetterWithOptions, scope RequestScope, isSubresource bool) http.HandlerFunc { + return getResourceHandler(scope, + func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) { + opts, subpath, subpathKey := r.NewGetOptions() + trace.Step("About to process Get options") + if err := getRequestOptions(req, scope, opts, subpath, subpathKey, isSubresource); err != nil { + err = errors.NewBadRequest(err.Error()) + return nil, err + } + if trace != nil { + trace.Step("About to Get from storage") + } + return r.Get(ctx, name, opts) + }) +} + +// getRequestOptions parses out options and can include path information. The path information shouldn't include the subresource. +func getRequestOptions(req *http.Request, scope RequestScope, into runtime.Object, subpath bool, subpathKey string, isSubresource bool) error { + if into == nil { + return nil + } + + query := req.URL.Query() + if subpath { + newQuery := make(url.Values) + for k, v := range query { + newQuery[k] = v + } + + ctx := scope.ContextFunc(req) + requestInfo, _ := request.RequestInfoFrom(ctx) + startingIndex := 2 + if isSubresource { + startingIndex = 3 + } + + p := strings.Join(requestInfo.Parts[startingIndex:], "/") + + // ensure non-empty subpaths correctly reflect a leading slash + if len(p) > 0 && !strings.HasPrefix(p, "/") { + p = "/" + p + } + + // ensure subpaths correctly reflect the presence of a trailing slash on the original request + if strings.HasSuffix(requestInfo.Path, "/") && !strings.HasSuffix(p, "/") { + p += "/" + } + + newQuery[subpathKey] = []string{p} + query = newQuery + } + return scope.ParameterCodec.DecodeParameters(query, scope.Kind.GroupVersion(), into) +} + +func ListResource(r rest.Lister, rw rest.Watcher, scope RequestScope, forceWatch bool, minRequestTimeout time.Duration) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // For performance tracking purposes. + trace := utiltrace.New("List " + req.URL.Path) + + namespace, err := scope.Namer.Namespace(req) + if err != nil { + scope.err(err, w, req) + return + } + + // Watches for single objects are routed to this function. + // Treat a name parameter the same as a field selector entry. + hasName := true + _, name, err := scope.Namer.Name(req) + if err != nil { + hasName = false + } + + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + opts := metainternalversion.ListOptions{} + if err := metainternalversion.ParameterCodec.DecodeParameters(req.URL.Query(), scope.MetaGroupVersion, &opts); err != nil { + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + + // transform fields + // TODO: DecodeParametersInto should do this. + if opts.FieldSelector != nil { + fn := func(label, value string) (newLabel, newValue string, err error) { + return scope.Convertor.ConvertFieldLabel(scope.Kind.GroupVersion().String(), scope.Kind.Kind, label, value) + } + if opts.FieldSelector, err = opts.FieldSelector.Transform(fn); err != nil { + // TODO: allow bad request to set field causes based on query parameters + err = errors.NewBadRequest(err.Error()) + scope.err(err, w, req) + return + } + } + + if hasName { + // metadata.name is the canonical internal name. + // SelectionPredicate will notice that this is + // a request for a single object and optimize the + // storage query accordingly. + nameSelector := fields.OneTermEqualSelector("metadata.name", name) + if opts.FieldSelector != nil && !opts.FieldSelector.Empty() { + // It doesn't make sense to ask for both a name + // and a field selector, since just the name is + // sufficient to narrow down the request to a + // single object. + scope.err(errors.NewBadRequest("both a name and a field selector provided; please provide one or the other."), w, req) + return + } + opts.FieldSelector = nameSelector + } + + if opts.Watch || forceWatch { + if rw == nil { + scope.err(errors.NewMethodNotSupported(scope.Resource.GroupResource(), "watch"), w, req) + return + } + // TODO: Currently we explicitly ignore ?timeout= and use only ?timeoutSeconds=. + timeout := time.Duration(0) + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + if timeout == 0 && minRequestTimeout > 0 { + timeout = time.Duration(float64(minRequestTimeout) * (rand.Float64() + 1.0)) + } + glog.V(2).Infof("Starting watch for %s, rv=%s labels=%s fields=%s timeout=%s", req.URL.Path, opts.ResourceVersion, opts.LabelSelector, opts.FieldSelector, timeout) + + watcher, err := rw.Watch(ctx, &opts) + if err != nil { + scope.err(err, w, req) + return + } + requestInfo, _ := request.RequestInfoFrom(ctx) + metrics.RecordLongRunning(req, requestInfo, func() { + serveWatch(watcher, scope, req, w, timeout) + }) + return + } + + // Log only long List requests (ignore Watch). + defer trace.LogIfLong(500 * time.Millisecond) + trace.Step("About to List from storage") + result, err := r.List(ctx, &opts) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Listing from storage done") + numberOfItems, err := setListSelfLink(result, ctx, req, scope.Namer) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Self-linking done") + // Ensure empty lists return a non-nil items slice + if numberOfItems == 0 && meta.IsListType(result) { + if err := meta.SetList(result, []runtime.Object{}); err != nil { + scope.err(err, w, req) + return + } + } + + transformResponseObject(ctx, scope, req, w, http.StatusOK, result) + trace.Step(fmt.Sprintf("Writing http response done (%d items)", numberOfItems)) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go index ca585e6dd..8db9f40c9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go @@ -18,16 +18,354 @@ package handlers import ( "fmt" + "net/http" + "strings" + "time" + "github.com/evanphx/json-patch" + "github.com/golang/glog" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/conversion/unstructured" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/json" + "k8s.io/apimachinery/pkg/util/mergepatch" "k8s.io/apimachinery/pkg/util/strategicpatch" - - "github.com/evanphx/json-patch" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" ) +// PatchResource returns a function that will handle a resource patch +// TODO: Eventually PatchResource should just use GuaranteedUpdate and this routine should be a bit cleaner +func PatchResource(r rest.Patcher, scope RequestScope, admit admission.Interface, converter runtime.ObjectConvertor) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // TODO: we either want to remove timeout or document it (if we + // document, move timeout out of this function and declare it in + // api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + namespace, name, err := scope.Namer.Name(req) + if err != nil { + scope.err(err, w, req) + return + } + + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + versionedObj, err := converter.ConvertToVersion(r.New(), scope.Kind.GroupVersion()) + if err != nil { + scope.err(err, w, req) + return + } + + // TODO: handle this in negotiation + contentType := req.Header.Get("Content-Type") + // Remove "; charset=" if included in header. + if idx := strings.Index(contentType, ";"); idx > 0 { + contentType = contentType[:idx] + } + patchType := types.PatchType(contentType) + + patchJS, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + + ae := request.AuditEventFrom(ctx) + audit.LogRequestPatch(ae, patchJS) + + s, ok := runtime.SerializerInfoForMediaType(scope.Serializer.SupportedMediaTypes(), runtime.ContentTypeJSON) + if !ok { + scope.err(fmt.Errorf("no serializer defined for JSON"), w, req) + return + } + gv := scope.Kind.GroupVersion() + codec := runtime.NewCodec( + scope.Serializer.EncoderForVersion(s.Serializer, gv), + scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}), + ) + + userInfo, _ := request.UserFrom(ctx) + staticAdmissionAttributes := admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo) + updateMutation := func(updatedObject runtime.Object, currentObject runtime.Object) error { + if mutatingAdmission, ok := admit.(admission.MutationInterface); ok && admit.Handles(admission.Update) { + return mutatingAdmission.Admit(admission.NewAttributesRecord(updatedObject, currentObject, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)) + } + return nil + } + + result, err := patchResource( + ctx, + updateMutation, + rest.AdmissionToValidateObjectFunc(admit, staticAdmissionAttributes), + rest.AdmissionToValidateObjectUpdateFunc(admit, staticAdmissionAttributes), + timeout, versionedObj, + r, + name, + patchType, + patchJS, + scope.Namer, scope.Creater, scope.Defaulter, scope.UnsafeConvertor, scope.Kind, scope.Resource, codec) + if err != nil { + scope.err(err, w, req) + return + } + + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + + transformResponseObject(ctx, scope, req, w, http.StatusOK, result) + } +} + +type mutateObjectUpdateFunc func(obj, old runtime.Object) error + +// patchResource divides PatchResource for easier unit testing +func patchResource( + ctx request.Context, + updateMutation mutateObjectUpdateFunc, + createValidation rest.ValidateObjectFunc, + updateValidation rest.ValidateObjectUpdateFunc, + timeout time.Duration, + versionedObj runtime.Object, + patcher rest.Patcher, + name string, + patchType types.PatchType, + patchJS []byte, + namer ScopeNamer, + creater runtime.ObjectCreater, + defaulter runtime.ObjectDefaulter, + unsafeConvertor runtime.ObjectConvertor, + kind schema.GroupVersionKind, + resource schema.GroupVersionResource, + codec runtime.Codec, +) (runtime.Object, error) { + + namespace := request.NamespaceValue(ctx) + + var ( + originalObjJS []byte + originalPatchedObjJS []byte + originalObjMap map[string]interface{} + getOriginalPatchMap func() (map[string]interface{}, error) + lastConflictErr error + originalResourceVersion string + ) + + // applyPatch is called every time GuaranteedUpdate asks for the updated object, + // and is given the currently persisted object as input. + applyPatch := func(_ request.Context, _, currentObject runtime.Object) (runtime.Object, error) { + // Make sure we actually have a persisted currentObject + if hasUID, err := hasUID(currentObject); err != nil { + return nil, err + } else if !hasUID { + return nil, errors.NewNotFound(resource.GroupResource(), name) + } + + currentResourceVersion := "" + if currentMetadata, err := meta.Accessor(currentObject); err == nil { + currentResourceVersion = currentMetadata.GetResourceVersion() + } + + switch { + case originalObjJS == nil && originalObjMap == nil: + // first time through, + // 1. apply the patch + // 2. save the original and patched to detect whether there were conflicting changes on retries + + originalResourceVersion = currentResourceVersion + objToUpdate := patcher.New() + + // For performance reasons, in case of strategicpatch, we avoid json + // marshaling and unmarshaling and operate just on map[string]interface{}. + // In case of other patch types, we still have to operate on JSON + // representations. + switch patchType { + case types.JSONPatchType, types.MergePatchType: + originalJS, patchedJS, err := patchObjectJSON(patchType, codec, currentObject, patchJS, objToUpdate, versionedObj) + if err != nil { + return nil, interpretPatchError(err) + } + originalObjJS, originalPatchedObjJS = originalJS, patchedJS + + // Make a getter that can return a fresh strategic patch map if needed for conflict retries + // We have to rebuild it each time we need it, because the map gets mutated when being applied + var originalPatchBytes []byte + getOriginalPatchMap = func() (map[string]interface{}, error) { + if originalPatchBytes == nil { + // Compute once + originalPatchBytes, err = strategicpatch.CreateTwoWayMergePatch(originalObjJS, originalPatchedObjJS, versionedObj) + if err != nil { + return nil, interpretPatchError(err) + } + } + // Return a fresh map every time + originalPatchMap := make(map[string]interface{}) + if err := json.Unmarshal(originalPatchBytes, &originalPatchMap); err != nil { + return nil, errors.NewBadRequest(err.Error()) + } + return originalPatchMap, nil + } + + case types.StrategicMergePatchType: + // Since the patch is applied on versioned objects, we need to convert the + // current object to versioned representation first. + currentVersionedObject, err := unsafeConvertor.ConvertToVersion(currentObject, kind.GroupVersion()) + if err != nil { + return nil, err + } + versionedObjToUpdate, err := creater.New(kind) + if err != nil { + return nil, err + } + // Capture the original object map and patch for possible retries. + originalMap, err := unstructured.DefaultConverter.ToUnstructured(currentVersionedObject) + if err != nil { + return nil, err + } + if err := strategicPatchObject(codec, defaulter, currentVersionedObject, patchJS, versionedObjToUpdate, versionedObj); err != nil { + return nil, err + } + // Convert the object back to unversioned. + gvk := kind.GroupKind().WithVersion(runtime.APIVersionInternal) + unversionedObjToUpdate, err := unsafeConvertor.ConvertToVersion(versionedObjToUpdate, gvk.GroupVersion()) + if err != nil { + return nil, err + } + objToUpdate = unversionedObjToUpdate + // Store unstructured representation for possible retries. + originalObjMap = originalMap + // Make a getter that can return a fresh strategic patch map if needed for conflict retries + // We have to rebuild it each time we need it, because the map gets mutated when being applied + getOriginalPatchMap = func() (map[string]interface{}, error) { + patchMap := make(map[string]interface{}) + if err := json.Unmarshal(patchJS, &patchMap); err != nil { + return nil, errors.NewBadRequest(err.Error()) + } + return patchMap, nil + } + } + if err := checkName(objToUpdate, name, namespace, namer); err != nil { + return nil, err + } + return objToUpdate, nil + + default: + // on a conflict, + // 1. build a strategic merge patch from originalJS and the patchedJS. Different patch types can + // be specified, but a strategic merge patch should be expressive enough handle them. Build the + // patch with this type to handle those cases. + // 2. build a strategic merge patch from originalJS and the currentJS + // 3. ensure no conflicts between the two patches + // 4. apply the #1 patch to the currentJS object + + // Since the patch is applied on versioned objects, we need to convert the + // current object to versioned representation first. + currentVersionedObject, err := unsafeConvertor.ConvertToVersion(currentObject, kind.GroupVersion()) + if err != nil { + return nil, err + } + currentObjMap, err := unstructured.DefaultConverter.ToUnstructured(currentVersionedObject) + if err != nil { + return nil, err + } + + var currentPatchMap map[string]interface{} + if originalObjMap != nil { + var err error + currentPatchMap, err = strategicpatch.CreateTwoWayMergeMapPatch(originalObjMap, currentObjMap, versionedObj) + if err != nil { + return nil, interpretPatchError(err) + } + } else { + // Compute current patch. + currentObjJS, err := runtime.Encode(codec, currentObject) + if err != nil { + return nil, err + } + currentPatch, err := strategicpatch.CreateTwoWayMergePatch(originalObjJS, currentObjJS, versionedObj) + if err != nil { + return nil, interpretPatchError(err) + } + currentPatchMap = make(map[string]interface{}) + if err := json.Unmarshal(currentPatch, ¤tPatchMap); err != nil { + return nil, errors.NewBadRequest(err.Error()) + } + } + + // Get a fresh copy of the original strategic patch each time through, since applying it mutates the map + originalPatchMap, err := getOriginalPatchMap() + if err != nil { + return nil, err + } + + hasConflicts, err := mergepatch.HasConflicts(originalPatchMap, currentPatchMap) + if err != nil { + return nil, err + } + + if hasConflicts { + diff1, _ := json.Marshal(currentPatchMap) + diff2, _ := json.Marshal(originalPatchMap) + patchDiffErr := fmt.Errorf("there is a meaningful conflict (firstResourceVersion: %q, currentResourceVersion: %q):\n diff1=%v\n, diff2=%v\n", originalResourceVersion, currentResourceVersion, string(diff1), string(diff2)) + glog.V(4).Infof("patchResource failed for resource %s, because there is a meaningful conflict(firstResourceVersion: %q, currentResourceVersion: %q):\n diff1=%v\n, diff2=%v\n", name, originalResourceVersion, currentResourceVersion, string(diff1), string(diff2)) + + // Return the last conflict error we got if we have one + if lastConflictErr != nil { + return nil, lastConflictErr + } + // Otherwise manufacture one of our own + return nil, errors.NewConflict(resource.GroupResource(), name, patchDiffErr) + } + + versionedObjToUpdate, err := creater.New(kind) + if err != nil { + return nil, err + } + if err := applyPatchToObject(codec, defaulter, currentObjMap, originalPatchMap, versionedObjToUpdate, versionedObj); err != nil { + return nil, err + } + // Convert the object back to unversioned. + gvk := kind.GroupKind().WithVersion(runtime.APIVersionInternal) + objToUpdate, err := unsafeConvertor.ConvertToVersion(versionedObjToUpdate, gvk.GroupVersion()) + if err != nil { + return nil, err + } + + return objToUpdate, nil + } + } + + // applyAdmission is called every time GuaranteedUpdate asks for the updated object, + // and is given the currently persisted object and the patched object as input. + applyAdmission := func(ctx request.Context, patchedObject runtime.Object, currentObject runtime.Object) (runtime.Object, error) { + return patchedObject, updateMutation(patchedObject, currentObject) + } + updatedObjectInfo := rest.DefaultUpdatedObjectInfo(nil, applyPatch, applyAdmission) + + return finishRequest(timeout, func() (runtime.Object, error) { + updateObject, _, updateErr := patcher.Update(ctx, name, updatedObjectInfo, createValidation, updateValidation) + for i := 0; i < MaxRetryWhenPatchConflicts && (errors.IsConflict(updateErr)); i++ { + lastConflictErr = updateErr + updateObject, _, updateErr = patcher.Update(ctx, name, updatedObjectInfo, createValidation, updateValidation) + } + return updateObject, updateErr + }) +} + // patchObjectJSON patches the with and stores // the result in . // Currently it also returns the original and patched objects serialized to @@ -94,7 +432,7 @@ func strategicPatchObject( patchMap := make(map[string]interface{}) if err := json.Unmarshal(patchJS, &patchMap); err != nil { - return err + return errors.NewBadRequest(err.Error()) } if err := applyPatchToObject(codec, defaulter, originalObjMap, patchMap, objToUpdate, versionedObj); err != nil { @@ -116,7 +454,7 @@ func applyPatchToObject( ) error { patchedObjMap, err := strategicpatch.StrategicMergeMapPatch(originalMap, patchMap, versionedObj) if err != nil { - return err + return interpretPatchError(err) } // Rather than serialize the patched map to JSON, then decode it to an object, we go directly from a map to an object @@ -128,3 +466,15 @@ func applyPatchToObject( return nil } + +// interpretPatchError interprets the error type and returns an error with appropriate HTTP code. +func interpretPatchError(err error) error { + switch err { + case mergepatch.ErrBadJSONDoc, mergepatch.ErrBadPatchFormatForPrimitiveList, mergepatch.ErrBadPatchFormatForRetainKeys, mergepatch.ErrBadPatchFormatForSetElementOrderList, mergepatch.ErrUnsupportedStrategicMergePatchFormat: + return errors.NewBadRequest(err.Error()) + case mergepatch.ErrNoListOfLists, mergepatch.ErrPatchContentNotMatchRetainKeys: + return errors.NewGenericServerResponse(http.StatusUnprocessableEntity, "", schema.GroupResource{}, "", err.Error(), 0, false) + default: + return err + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest.go index 6e6306585..768005daa 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest.go @@ -20,36 +20,23 @@ import ( "encoding/hex" "fmt" "io/ioutil" - "math/rand" "net/http" - "net/url" - "strings" "time" "github.com/golang/glog" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" - metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1alpha1 "k8s.io/apimachinery/pkg/apis/meta/v1alpha1" - "k8s.io/apimachinery/pkg/conversion/unstructured" - "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/json" - "k8s.io/apimachinery/pkg/util/mergepatch" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/audit" - "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/handlers/responsewriters" "k8s.io/apiserver/pkg/endpoints/metrics" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - utiltrace "k8s.io/apiserver/pkg/util/trace" ) // RequestScope encapsulates common fields across all RESTful handler methods. @@ -104,133 +91,9 @@ func (scope *RequestScope) AllowsStreamSchema(s string) bool { return s == "watch" } -// getterFunc performs a get request with the given context and object name. The request -// may be used to deserialize an options object to pass to the getter. -type getterFunc func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) - // MaxRetryWhenPatchConflicts is the maximum number of conflicts retry during a patch operation before returning failure const MaxRetryWhenPatchConflicts = 5 -// getResourceHandler is an HTTP handler function for get requests. It delegates to the -// passed-in getterFunc to perform the actual get. -func getResourceHandler(scope RequestScope, getter getterFunc) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - trace := utiltrace.New("Get " + req.URL.Path) - defer trace.LogIfLong(500 * time.Millisecond) - - namespace, name, err := scope.Namer.Name(req) - if err != nil { - scope.err(err, w, req) - return - } - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - result, err := getter(ctx, name, req, trace) - if err != nil { - scope.err(err, w, req) - return - } - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - - trace.Step("About to write a response") - transformResponseObject(ctx, scope, req, w, http.StatusOK, result) - } -} - -// GetResource returns a function that handles retrieving a single resource from a rest.Storage object. -func GetResource(r rest.Getter, e rest.Exporter, scope RequestScope) http.HandlerFunc { - return getResourceHandler(scope, - func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) { - // check for export - options := metav1.GetOptions{} - if values := req.URL.Query(); len(values) > 0 { - exports := metav1.ExportOptions{} - if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &exports); err != nil { - err = errors.NewBadRequest(err.Error()) - return nil, err - } - if exports.Export { - if e == nil { - return nil, errors.NewBadRequest(fmt.Sprintf("export of %q is not supported", scope.Resource.Resource)) - } - return e.Export(ctx, name, exports) - } - if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, &options); err != nil { - err = errors.NewBadRequest(err.Error()) - return nil, err - } - } - if trace != nil { - trace.Step("About to Get from storage") - } - return r.Get(ctx, name, &options) - }) -} - -// GetResourceWithOptions returns a function that handles retrieving a single resource from a rest.Storage object. -func GetResourceWithOptions(r rest.GetterWithOptions, scope RequestScope, isSubresource bool) http.HandlerFunc { - return getResourceHandler(scope, - func(ctx request.Context, name string, req *http.Request, trace *utiltrace.Trace) (runtime.Object, error) { - opts, subpath, subpathKey := r.NewGetOptions() - trace.Step("About to process Get options") - if err := getRequestOptions(req, scope, opts, subpath, subpathKey, isSubresource); err != nil { - err = errors.NewBadRequest(err.Error()) - return nil, err - } - if trace != nil { - trace.Step("About to Get from storage") - } - return r.Get(ctx, name, opts) - }) -} - -// getRequestOptions parses out options and can include path information. The path information shouldn't include the subresource. -func getRequestOptions(req *http.Request, scope RequestScope, into runtime.Object, subpath bool, subpathKey string, isSubresource bool) error { - if into == nil { - return nil - } - - query := req.URL.Query() - if subpath { - newQuery := make(url.Values) - for k, v := range query { - newQuery[k] = v - } - - ctx := scope.ContextFunc(req) - requestInfo, _ := request.RequestInfoFrom(ctx) - startingIndex := 2 - if isSubresource { - startingIndex = 3 - } - - p := strings.Join(requestInfo.Parts[startingIndex:], "/") - - // ensure non-empty subpaths correctly reflect a leading slash - if len(p) > 0 && !strings.HasPrefix(p, "/") { - p = "/" + p - } - - // ensure subpaths correctly reflect the presence of a trailing slash on the original request - if strings.HasSuffix(requestInfo.Path, "/") && !strings.HasSuffix(p, "/") { - p += "/" - } - - newQuery[subpathKey] = []string{p} - query = newQuery - } - return scope.ParameterCodec.DecodeParameters(query, scope.Kind.GroupVersion(), into) -} - // ConnectResource returns a function that handles a connect request on a rest.Storage object. func ConnectResource(connecter rest.Connecter, scope RequestScope, admit admission.Interface, restPath string, isSubresource bool) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { @@ -254,11 +117,20 @@ func ConnectResource(connecter rest.Connecter, scope RequestScope, admit admissi ResourcePath: restPath, } userInfo, _ := request.UserFrom(ctx) - - err = admit.Admit(admission.NewAttributesRecord(connectRequest, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Connect, userInfo)) - if err != nil { - scope.err(err, w, req) - return + // TODO: remove the mutating admission here as soon as we have ported all plugin that handle CONNECT + if mutatingAdmit, ok := admit.(admission.MutationInterface); ok { + err = mutatingAdmit.Admit(admission.NewAttributesRecord(connectRequest, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Connect, userInfo)) + if err != nil { + scope.err(err, w, req) + return + } + } + if mutatingAdmit, ok := admit.(admission.ValidationInterface); ok { + err = mutatingAdmit.Validate(admission.NewAttributesRecord(connectRequest, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Connect, userInfo)) + if err != nil { + scope.err(err, w, req) + return + } } } requestInfo, _ := request.RequestInfoFrom(ctx) @@ -289,889 +161,6 @@ func (r *responder) Error(err error) { r.scope.err(err, r.w, r.req) } -func ListResource(r rest.Lister, rw rest.Watcher, scope RequestScope, forceWatch bool, minRequestTimeout time.Duration) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // For performance tracking purposes. - trace := utiltrace.New("List " + req.URL.Path) - - namespace, err := scope.Namer.Namespace(req) - if err != nil { - scope.err(err, w, req) - return - } - - // Watches for single objects are routed to this function. - // Treat a name parameter the same as a field selector entry. - hasName := true - _, name, err := scope.Namer.Name(req) - if err != nil { - hasName = false - } - - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - opts := metainternalversion.ListOptions{} - if err := metainternalversion.ParameterCodec.DecodeParameters(req.URL.Query(), scope.MetaGroupVersion, &opts); err != nil { - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - - // transform fields - // TODO: DecodeParametersInto should do this. - if opts.FieldSelector != nil { - fn := func(label, value string) (newLabel, newValue string, err error) { - return scope.Convertor.ConvertFieldLabel(scope.Kind.GroupVersion().String(), scope.Kind.Kind, label, value) - } - if opts.FieldSelector, err = opts.FieldSelector.Transform(fn); err != nil { - // TODO: allow bad request to set field causes based on query parameters - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - } - - if hasName { - // metadata.name is the canonical internal name. - // SelectionPredicate will notice that this is - // a request for a single object and optimize the - // storage query accordingly. - nameSelector := fields.OneTermEqualSelector("metadata.name", name) - if opts.FieldSelector != nil && !opts.FieldSelector.Empty() { - // It doesn't make sense to ask for both a name - // and a field selector, since just the name is - // sufficient to narrow down the request to a - // single object. - scope.err(errors.NewBadRequest("both a name and a field selector provided; please provide one or the other."), w, req) - return - } - opts.FieldSelector = nameSelector - } - - if opts.Watch || forceWatch { - if rw == nil { - scope.err(errors.NewMethodNotSupported(scope.Resource.GroupResource(), "watch"), w, req) - return - } - // TODO: Currently we explicitly ignore ?timeout= and use only ?timeoutSeconds=. - timeout := time.Duration(0) - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - if timeout == 0 && minRequestTimeout > 0 { - timeout = time.Duration(float64(minRequestTimeout) * (rand.Float64() + 1.0)) - } - glog.V(2).Infof("Starting watch for %s, rv=%s labels=%s fields=%s timeout=%s", req.URL.Path, opts.ResourceVersion, opts.LabelSelector, opts.FieldSelector, timeout) - - watcher, err := rw.Watch(ctx, &opts) - if err != nil { - scope.err(err, w, req) - return - } - requestInfo, _ := request.RequestInfoFrom(ctx) - metrics.RecordLongRunning(req, requestInfo, func() { - serveWatch(watcher, scope, req, w, timeout) - }) - return - } - - // Log only long List requests (ignore Watch). - defer trace.LogIfLong(500 * time.Millisecond) - trace.Step("About to List from storage") - result, err := r.List(ctx, &opts) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Listing from storage done") - numberOfItems, err := setListSelfLink(result, ctx, req, scope.Namer) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Self-linking done") - // Ensure empty lists return a non-nil items slice - if numberOfItems == 0 && meta.IsListType(result) { - if err := meta.SetList(result, []runtime.Object{}); err != nil { - scope.err(err, w, req) - return - } - } - - transformResponseObject(ctx, scope, req, w, http.StatusOK, result) - trace.Step(fmt.Sprintf("Writing http response done (%d items)", numberOfItems)) - } -} - -func createHandler(r rest.NamedCreater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface, includeName bool) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // For performance tracking purposes. - trace := utiltrace.New("Create " + req.URL.Path) - defer trace.LogIfLong(500 * time.Millisecond) - - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - var ( - namespace, name string - err error - ) - if includeName { - namespace, name, err = scope.Namer.Name(req) - } else { - namespace, err = scope.Namer.Namespace(req) - } - if err != nil { - scope.err(err, w, req) - return - } - - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - gv := scope.Kind.GroupVersion() - s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) - if err != nil { - scope.err(err, w, req) - return - } - decoder := scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}) - - body, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - - defaultGVK := scope.Kind - original := r.New() - trace.Step("About to convert to expected version") - obj, gvk, err := decoder.Decode(body, &defaultGVK, original) - if err != nil { - err = transformDecodeError(typer, err, original, gvk, body) - scope.err(err, w, req) - return - } - if gvk.GroupVersion() != gv { - err = errors.NewBadRequest(fmt.Sprintf("the API version in the data (%s) does not match the expected API version (%v)", gvk.GroupVersion().String(), gv.String())) - scope.err(err, w, req) - return - } - trace.Step("Conversion done") - - ae := request.AuditEventFrom(ctx) - audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) - - if admit != nil && admit.Handles(admission.Create) { - userInfo, _ := request.UserFrom(ctx) - - err = admit.Admit(admission.NewAttributesRecord(obj, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Create, userInfo)) - if err != nil { - scope.err(err, w, req) - return - } - } - - // TODO: replace with content type negotiation? - includeUninitialized := req.URL.Query().Get("includeUninitialized") == "1" - - trace.Step("About to store object in database") - result, err := finishRequest(timeout, func() (runtime.Object, error) { - return r.Create(ctx, name, obj, includeUninitialized) - }) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Object stored in database") - - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - trace.Step("Self-link added") - - // If the object is partially initialized, always indicate it via StatusAccepted - code := http.StatusCreated - if accessor, err := meta.Accessor(result); err == nil { - if accessor.GetInitializers() != nil { - code = http.StatusAccepted - } - } - status, ok := result.(*metav1.Status) - if ok && err == nil && status.Code == 0 { - status.Code = int32(code) - } - - transformResponseObject(ctx, scope, req, w, code, result) - } -} - -// CreateNamedResource returns a function that will handle a resource creation with name. -func CreateNamedResource(r rest.NamedCreater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { - return createHandler(r, scope, typer, admit, true) -} - -// CreateResource returns a function that will handle a resource creation. -func CreateResource(r rest.Creater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { - return createHandler(&namedCreaterAdapter{r}, scope, typer, admit, false) -} - -type namedCreaterAdapter struct { - rest.Creater -} - -func (c *namedCreaterAdapter) Create(ctx request.Context, name string, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { - return c.Creater.Create(ctx, obj, includeUninitialized) -} - -// PatchResource returns a function that will handle a resource patch -// TODO: Eventually PatchResource should just use GuaranteedUpdate and this routine should be a bit cleaner -func PatchResource(r rest.Patcher, scope RequestScope, admit admission.Interface, converter runtime.ObjectConvertor) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // TODO: we either want to remove timeout or document it (if we - // document, move timeout out of this function and declare it in - // api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - namespace, name, err := scope.Namer.Name(req) - if err != nil { - scope.err(err, w, req) - return - } - - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - versionedObj, err := converter.ConvertToVersion(r.New(), scope.Kind.GroupVersion()) - if err != nil { - scope.err(err, w, req) - return - } - - // TODO: handle this in negotiation - contentType := req.Header.Get("Content-Type") - // Remove "; charset=" if included in header. - if idx := strings.Index(contentType, ";"); idx > 0 { - contentType = contentType[:idx] - } - patchType := types.PatchType(contentType) - - patchJS, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - - ae := request.AuditEventFrom(ctx) - audit.LogRequestPatch(ae, patchJS) - - s, ok := runtime.SerializerInfoForMediaType(scope.Serializer.SupportedMediaTypes(), runtime.ContentTypeJSON) - if !ok { - scope.err(fmt.Errorf("no serializer defined for JSON"), w, req) - return - } - gv := scope.Kind.GroupVersion() - codec := runtime.NewCodec( - scope.Serializer.EncoderForVersion(s.Serializer, gv), - scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}), - ) - - updateAdmit := func(updatedObject runtime.Object, currentObject runtime.Object) error { - if admit != nil && admit.Handles(admission.Update) { - userInfo, _ := request.UserFrom(ctx) - return admit.Admit(admission.NewAttributesRecord(updatedObject, currentObject, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)) - } - - return nil - } - - result, err := patchResource(ctx, updateAdmit, timeout, versionedObj, r, name, patchType, patchJS, - scope.Namer, scope.Creater, scope.Defaulter, scope.UnsafeConvertor, scope.Kind, scope.Resource, codec) - if err != nil { - scope.err(err, w, req) - return - } - - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - - transformResponseObject(ctx, scope, req, w, http.StatusOK, result) - } -} - -type updateAdmissionFunc func(updatedObject runtime.Object, currentObject runtime.Object) error - -// patchResource divides PatchResource for easier unit testing -func patchResource( - ctx request.Context, - admit updateAdmissionFunc, - timeout time.Duration, - versionedObj runtime.Object, - patcher rest.Patcher, - name string, - patchType types.PatchType, - patchJS []byte, - namer ScopeNamer, - creater runtime.ObjectCreater, - defaulter runtime.ObjectDefaulter, - unsafeConvertor runtime.ObjectConvertor, - kind schema.GroupVersionKind, - resource schema.GroupVersionResource, - codec runtime.Codec, -) (runtime.Object, error) { - - namespace := request.NamespaceValue(ctx) - - var ( - originalObjJS []byte - originalPatchedObjJS []byte - originalObjMap map[string]interface{} - getOriginalPatchMap func() (map[string]interface{}, error) - lastConflictErr error - originalResourceVersion string - ) - - // applyPatch is called every time GuaranteedUpdate asks for the updated object, - // and is given the currently persisted object as input. - applyPatch := func(_ request.Context, _, currentObject runtime.Object) (runtime.Object, error) { - // Make sure we actually have a persisted currentObject - if hasUID, err := hasUID(currentObject); err != nil { - return nil, err - } else if !hasUID { - return nil, errors.NewNotFound(resource.GroupResource(), name) - } - - currentResourceVersion := "" - if currentMetadata, err := meta.Accessor(currentObject); err == nil { - currentResourceVersion = currentMetadata.GetResourceVersion() - } - - switch { - case originalObjJS == nil && originalObjMap == nil: - // first time through, - // 1. apply the patch - // 2. save the original and patched to detect whether there were conflicting changes on retries - - originalResourceVersion = currentResourceVersion - objToUpdate := patcher.New() - - // For performance reasons, in case of strategicpatch, we avoid json - // marshaling and unmarshaling and operate just on map[string]interface{}. - // In case of other patch types, we still have to operate on JSON - // representations. - switch patchType { - case types.JSONPatchType, types.MergePatchType: - originalJS, patchedJS, err := patchObjectJSON(patchType, codec, currentObject, patchJS, objToUpdate, versionedObj) - if err != nil { - return nil, err - } - originalObjJS, originalPatchedObjJS = originalJS, patchedJS - - // Make a getter that can return a fresh strategic patch map if needed for conflict retries - // We have to rebuild it each time we need it, because the map gets mutated when being applied - var originalPatchBytes []byte - getOriginalPatchMap = func() (map[string]interface{}, error) { - if originalPatchBytes == nil { - // Compute once - originalPatchBytes, err = strategicpatch.CreateTwoWayMergePatch(originalObjJS, originalPatchedObjJS, versionedObj) - if err != nil { - return nil, err - } - } - // Return a fresh map every time - originalPatchMap := make(map[string]interface{}) - if err := json.Unmarshal(originalPatchBytes, &originalPatchMap); err != nil { - return nil, err - } - return originalPatchMap, nil - } - - case types.StrategicMergePatchType: - // Since the patch is applied on versioned objects, we need to convert the - // current object to versioned representation first. - currentVersionedObject, err := unsafeConvertor.ConvertToVersion(currentObject, kind.GroupVersion()) - if err != nil { - return nil, err - } - versionedObjToUpdate, err := creater.New(kind) - if err != nil { - return nil, err - } - // Capture the original object map and patch for possible retries. - originalMap, err := unstructured.DefaultConverter.ToUnstructured(currentVersionedObject) - if err != nil { - return nil, err - } - if err := strategicPatchObject(codec, defaulter, currentVersionedObject, patchJS, versionedObjToUpdate, versionedObj); err != nil { - return nil, err - } - // Convert the object back to unversioned. - gvk := kind.GroupKind().WithVersion(runtime.APIVersionInternal) - unversionedObjToUpdate, err := unsafeConvertor.ConvertToVersion(versionedObjToUpdate, gvk.GroupVersion()) - if err != nil { - return nil, err - } - objToUpdate = unversionedObjToUpdate - // Store unstructured representation for possible retries. - originalObjMap = originalMap - // Make a getter that can return a fresh strategic patch map if needed for conflict retries - // We have to rebuild it each time we need it, because the map gets mutated when being applied - getOriginalPatchMap = func() (map[string]interface{}, error) { - patchMap := make(map[string]interface{}) - if err := json.Unmarshal(patchJS, &patchMap); err != nil { - return nil, err - } - return patchMap, nil - } - } - if err := checkName(objToUpdate, name, namespace, namer); err != nil { - return nil, err - } - return objToUpdate, nil - - default: - // on a conflict, - // 1. build a strategic merge patch from originalJS and the patchedJS. Different patch types can - // be specified, but a strategic merge patch should be expressive enough handle them. Build the - // patch with this type to handle those cases. - // 2. build a strategic merge patch from originalJS and the currentJS - // 3. ensure no conflicts between the two patches - // 4. apply the #1 patch to the currentJS object - - // Since the patch is applied on versioned objects, we need to convert the - // current object to versioned representation first. - currentVersionedObject, err := unsafeConvertor.ConvertToVersion(currentObject, kind.GroupVersion()) - if err != nil { - return nil, err - } - currentObjMap, err := unstructured.DefaultConverter.ToUnstructured(currentVersionedObject) - if err != nil { - return nil, err - } - - var currentPatchMap map[string]interface{} - if originalObjMap != nil { - var err error - currentPatchMap, err = strategicpatch.CreateTwoWayMergeMapPatch(originalObjMap, currentObjMap, versionedObj) - if err != nil { - return nil, err - } - } else { - // Compute current patch. - currentObjJS, err := runtime.Encode(codec, currentObject) - if err != nil { - return nil, err - } - currentPatch, err := strategicpatch.CreateTwoWayMergePatch(originalObjJS, currentObjJS, versionedObj) - if err != nil { - return nil, err - } - currentPatchMap = make(map[string]interface{}) - if err := json.Unmarshal(currentPatch, ¤tPatchMap); err != nil { - return nil, err - } - } - - // Get a fresh copy of the original strategic patch each time through, since applying it mutates the map - originalPatchMap, err := getOriginalPatchMap() - if err != nil { - return nil, err - } - - hasConflicts, err := mergepatch.HasConflicts(originalPatchMap, currentPatchMap) - if err != nil { - return nil, err - } - - if hasConflicts { - diff1, _ := json.Marshal(currentPatchMap) - diff2, _ := json.Marshal(originalPatchMap) - patchDiffErr := fmt.Errorf("there is a meaningful conflict (firstResourceVersion: %q, currentResourceVersion: %q):\n diff1=%v\n, diff2=%v\n", originalResourceVersion, currentResourceVersion, string(diff1), string(diff2)) - glog.V(4).Infof("patchResource failed for resource %s, because there is a meaningful conflict(firstResourceVersion: %q, currentResourceVersion: %q):\n diff1=%v\n, diff2=%v\n", name, originalResourceVersion, currentResourceVersion, string(diff1), string(diff2)) - - // Return the last conflict error we got if we have one - if lastConflictErr != nil { - return nil, lastConflictErr - } - // Otherwise manufacture one of our own - return nil, errors.NewConflict(resource.GroupResource(), name, patchDiffErr) - } - - versionedObjToUpdate, err := creater.New(kind) - if err != nil { - return nil, err - } - if err := applyPatchToObject(codec, defaulter, currentObjMap, originalPatchMap, versionedObjToUpdate, versionedObj); err != nil { - return nil, err - } - // Convert the object back to unversioned. - gvk := kind.GroupKind().WithVersion(runtime.APIVersionInternal) - objToUpdate, err := unsafeConvertor.ConvertToVersion(versionedObjToUpdate, gvk.GroupVersion()) - if err != nil { - return nil, err - } - - return objToUpdate, nil - } - } - - // applyAdmission is called every time GuaranteedUpdate asks for the updated object, - // and is given the currently persisted object and the patched object as input. - applyAdmission := func(ctx request.Context, patchedObject runtime.Object, currentObject runtime.Object) (runtime.Object, error) { - return patchedObject, admit(patchedObject, currentObject) - } - - updatedObjectInfo := rest.DefaultUpdatedObjectInfo(nil, applyPatch, applyAdmission) - - return finishRequest(timeout, func() (runtime.Object, error) { - updateObject, _, updateErr := patcher.Update(ctx, name, updatedObjectInfo) - for i := 0; i < MaxRetryWhenPatchConflicts && (errors.IsConflict(updateErr)); i++ { - lastConflictErr = updateErr - updateObject, _, updateErr = patcher.Update(ctx, name, updatedObjectInfo) - } - return updateObject, updateErr - }) -} - -// UpdateResource returns a function that will handle a resource update -func UpdateResource(r rest.Updater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // For performance tracking purposes. - trace := utiltrace.New("Update " + req.URL.Path) - defer trace.LogIfLong(500 * time.Millisecond) - - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - namespace, name, err := scope.Namer.Name(req) - if err != nil { - scope.err(err, w, req) - return - } - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - body, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - - s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) - if err != nil { - scope.err(err, w, req) - return - } - defaultGVK := scope.Kind - original := r.New() - trace.Step("About to convert to expected version") - decoder := scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: defaultGVK.Group, Version: runtime.APIVersionInternal}) - obj, gvk, err := decoder.Decode(body, &defaultGVK, original) - if err != nil { - err = transformDecodeError(typer, err, original, gvk, body) - scope.err(err, w, req) - return - } - if gvk.GroupVersion() != defaultGVK.GroupVersion() { - err = errors.NewBadRequest(fmt.Sprintf("the API version in the data (%s) does not match the expected API version (%s)", gvk.GroupVersion(), defaultGVK.GroupVersion())) - scope.err(err, w, req) - return - } - trace.Step("Conversion done") - - ae := request.AuditEventFrom(ctx) - audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) - - if err := checkName(obj, name, namespace, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - - var transformers []rest.TransformFunc - if admit != nil && admit.Handles(admission.Update) { - transformers = append(transformers, func(ctx request.Context, newObj, oldObj runtime.Object) (runtime.Object, error) { - userInfo, _ := request.UserFrom(ctx) - return newObj, admit.Admit(admission.NewAttributesRecord(newObj, oldObj, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)) - }) - } - - trace.Step("About to store object in database") - wasCreated := false - result, err := finishRequest(timeout, func() (runtime.Object, error) { - obj, created, err := r.Update(ctx, name, rest.DefaultUpdatedObjectInfo(obj, transformers...)) - wasCreated = created - return obj, err - }) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Object stored in database") - - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - trace.Step("Self-link added") - - status := http.StatusOK - if wasCreated { - status = http.StatusCreated - } - - transformResponseObject(ctx, scope, req, w, status, result) - } -} - -// DeleteResource returns a function that will handle a resource deletion -func DeleteResource(r rest.GracefulDeleter, allowsOptions bool, scope RequestScope, admit admission.Interface) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // For performance tracking purposes. - trace := utiltrace.New("Delete " + req.URL.Path) - defer trace.LogIfLong(500 * time.Millisecond) - - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - namespace, name, err := scope.Namer.Name(req) - if err != nil { - scope.err(err, w, req) - return - } - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - options := &metav1.DeleteOptions{} - if allowsOptions { - body, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - if len(body) > 0 { - s, err := negotiation.NegotiateInputSerializer(req, metainternalversion.Codecs) - if err != nil { - scope.err(err, w, req) - return - } - // For backwards compatibility, we need to allow existing clients to submit per group DeleteOptions - // It is also allowed to pass a body with meta.k8s.io/v1.DeleteOptions - defaultGVK := scope.MetaGroupVersion.WithKind("DeleteOptions") - obj, _, err := metainternalversion.Codecs.DecoderToVersion(s.Serializer, defaultGVK.GroupVersion()).Decode(body, &defaultGVK, options) - if err != nil { - scope.err(err, w, req) - return - } - if obj != options { - scope.err(fmt.Errorf("decoded object cannot be converted to DeleteOptions"), w, req) - return - } - trace.Step("Decoded delete options") - - ae := request.AuditEventFrom(ctx) - audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) - trace.Step("Recorded the audit event") - } else { - if values := req.URL.Query(); len(values) > 0 { - if err := metainternalversion.ParameterCodec.DecodeParameters(values, scope.MetaGroupVersion, options); err != nil { - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - } - } - } - - trace.Step("About to check admission control") - if admit != nil && admit.Handles(admission.Delete) { - userInfo, _ := request.UserFrom(ctx) - - err = admit.Admit(admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Delete, userInfo)) - if err != nil { - scope.err(err, w, req) - return - } - } - - trace.Step("About to delete object from database") - wasDeleted := true - result, err := finishRequest(timeout, func() (runtime.Object, error) { - obj, deleted, err := r.Delete(ctx, name, options) - wasDeleted = deleted - return obj, err - }) - if err != nil { - scope.err(err, w, req) - return - } - trace.Step("Object deleted from database") - - status := http.StatusOK - // Return http.StatusAccepted if the resource was not deleted immediately and - // user requested cascading deletion by setting OrphanDependents=false. - // Note: We want to do this always if resource was not deleted immediately, but - // that will break existing clients. - // Other cases where resource is not instantly deleted are: namespace deletion - // and pod graceful deletion. - if !wasDeleted && options.OrphanDependents != nil && *options.OrphanDependents == false { - status = http.StatusAccepted - } - // if the rest.Deleter returns a nil object, fill out a status. Callers may return a valid - // object with the response. - if result == nil { - result = &metav1.Status{ - Status: metav1.StatusSuccess, - Code: int32(status), - Details: &metav1.StatusDetails{ - Name: name, - Kind: scope.Kind.Kind, - }, - } - } else { - // when a non-status response is returned, set the self link - requestInfo, ok := request.RequestInfoFrom(ctx) - if !ok { - scope.err(fmt.Errorf("missing requestInfo"), w, req) - return - } - if _, ok := result.(*metav1.Status); !ok { - if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - } - } - - transformResponseObject(ctx, scope, req, w, status, result) - } -} - -// DeleteCollection returns a function that will handle a collection deletion -func DeleteCollection(r rest.CollectionDeleter, checkBody bool, scope RequestScope, admit admission.Interface) http.HandlerFunc { - return func(w http.ResponseWriter, req *http.Request) { - // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) - timeout := parseTimeout(req.URL.Query().Get("timeout")) - - namespace, err := scope.Namer.Namespace(req) - if err != nil { - scope.err(err, w, req) - return - } - - ctx := scope.ContextFunc(req) - ctx = request.WithNamespace(ctx, namespace) - - if admit != nil && admit.Handles(admission.Delete) { - userInfo, _ := request.UserFrom(ctx) - - err = admit.Admit(admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, "", scope.Resource, scope.Subresource, admission.Delete, userInfo)) - if err != nil { - scope.err(err, w, req) - return - } - } - - listOptions := metainternalversion.ListOptions{} - if err := metainternalversion.ParameterCodec.DecodeParameters(req.URL.Query(), scope.MetaGroupVersion, &listOptions); err != nil { - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - - // transform fields - // TODO: DecodeParametersInto should do this. - if listOptions.FieldSelector != nil { - fn := func(label, value string) (newLabel, newValue string, err error) { - return scope.Convertor.ConvertFieldLabel(scope.Kind.GroupVersion().String(), scope.Kind.Kind, label, value) - } - if listOptions.FieldSelector, err = listOptions.FieldSelector.Transform(fn); err != nil { - // TODO: allow bad request to set field causes based on query parameters - err = errors.NewBadRequest(err.Error()) - scope.err(err, w, req) - return - } - } - - options := &metav1.DeleteOptions{} - if checkBody { - body, err := readBody(req) - if err != nil { - scope.err(err, w, req) - return - } - if len(body) > 0 { - s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) - if err != nil { - scope.err(err, w, req) - return - } - defaultGVK := scope.Kind.GroupVersion().WithKind("DeleteOptions") - obj, _, err := scope.Serializer.DecoderToVersion(s.Serializer, defaultGVK.GroupVersion()).Decode(body, &defaultGVK, options) - if err != nil { - scope.err(err, w, req) - return - } - if obj != options { - scope.err(fmt.Errorf("decoded object cannot be converted to DeleteOptions"), w, req) - return - } - - ae := request.AuditEventFrom(ctx) - audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) - } - } - - result, err := finishRequest(timeout, func() (runtime.Object, error) { - return r.DeleteCollection(ctx, options, &listOptions) - }) - if err != nil { - scope.err(err, w, req) - return - } - - // if the rest.Deleter returns a nil object, fill out a status. Callers may return a valid - // object with the response. - if result == nil { - result = &metav1.Status{ - Status: metav1.StatusSuccess, - Code: http.StatusOK, - Details: &metav1.StatusDetails{ - Kind: scope.Kind.Kind, - }, - } - } else { - // when a non-status response is returned, set the self link - if _, ok := result.(*metav1.Status); !ok { - if _, err := setListSelfLink(result, ctx, req, scope.Namer); err != nil { - scope.err(err, w, req) - return - } - } - } - - transformResponseObject(ctx, scope, req, w, http.StatusOK, result) - } -} - // resultFunc is a function that returns a rest result and can be run in a goroutine type resultFunc func() (runtime.Object, error) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest_test.go index a99fdaf6f..e6dc7b2cd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest_test.go @@ -29,6 +29,7 @@ import ( apiequality "k8s.io/apimachinery/pkg/api/equality" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" @@ -98,6 +99,61 @@ func TestPatchAnonymousField(t *testing.T) { } } +func TestPatchInvalid(t *testing.T) { + testGV := schema.GroupVersion{Group: "", Version: "v"} + scheme.AddKnownTypes(testGV, &testPatchType{}) + codec := codecs.LegacyCodec(testGV) + defaulter := runtime.ObjectDefaulter(scheme) + + original := &testPatchType{ + TypeMeta: metav1.TypeMeta{Kind: "testPatchType", APIVersion: "v"}, + TestPatchSubType: TestPatchSubType{StringField: "my-value"}, + } + patch := `barbaz` + expectedError := "invalid character 'b' looking for beginning of value" + + actual := &testPatchType{} + err := strategicPatchObject(codec, defaulter, original, []byte(patch), actual, &testPatchType{}) + if !apierrors.IsBadRequest(err) { + t.Errorf("expected HTTP status: BadRequest, got: %#v", apierrors.ReasonForError(err)) + } + if err.Error() != expectedError { + t.Errorf("expected %#v, got %#v", expectedError, err.Error()) + } +} + +func TestPatchCustomResource(t *testing.T) { + testGV := schema.GroupVersion{Group: "mygroup.example.com", Version: "v1beta1"} + scheme.AddKnownTypes(testGV, &unstructured.Unstructured{}) + codec := codecs.LegacyCodec(testGV) + defaulter := runtime.ObjectDefaulter(scheme) + + original := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "mygroup.example.com/v1beta1", + "kind": "Noxu", + "metadata": map[string]interface{}{ + "namespace": "Namespaced", + "name": "foo", + }, + "spec": map[string]interface{}{ + "num": "10", + }, + }, + } + patch := `{"spec":{"num":"20"}}` + expectedError := "strategic merge patch format is not supported" + + actual := &unstructured.Unstructured{} + err := strategicPatchObject(codec, defaulter, original, []byte(patch), actual, &unstructured.Unstructured{}) + if !apierrors.IsBadRequest(err) { + t.Errorf("expected HTTP status: BadRequest, got: %#v", apierrors.ReasonForError(err)) + } + if err.Error() != expectedError { + t.Errorf("expected %#v, got %#v", expectedError, err.Error()) + } +} + type testPatcher struct { t *testing.T @@ -114,7 +170,7 @@ func (p *testPatcher) New() runtime.Object { return &example.Pod{} } -func (p *testPatcher) Update(ctx request.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (p *testPatcher) Update(ctx request.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { currentPod := p.startingPod if p.numUpdates > 0 { currentPod = p.updatePod @@ -130,6 +186,16 @@ func (p *testPatcher) Update(ctx request.Context, name string, objInfo rest.Upda return nil, false, apierrors.NewConflict(example.Resource("pods"), inPod.Name, fmt.Errorf("existing %v, new %v", p.updatePod.ResourceVersion, inPod.ResourceVersion)) } + if currentPod == nil { + if err := createValidation(currentPod); err != nil { + return nil, false, err + } + } else { + if err := updateValidation(currentPod, inPod); err != nil { + return nil, false, err + } + } + return inPod, false, nil } @@ -179,7 +245,8 @@ type patchTestCase struct { name string // admission chain to use, nil is fine - admit updateAdmissionFunc + admissionMutation mutateObjectUpdateFunc + admissionValidation rest.ValidateObjectUpdateFunc // startingPod is used as the starting point for the first Update startingPod *example.Pod @@ -201,9 +268,16 @@ func (tc *patchTestCase) Run(t *testing.T) { name := tc.startingPod.Name codec := codecs.LegacyCodec(examplev1.SchemeGroupVersion) - admit := tc.admit - if admit == nil { - admit = func(updatedObject runtime.Object, currentObject runtime.Object) error { + + admissionMutation := tc.admissionMutation + if admissionMutation == nil { + admissionMutation = func(updatedObject runtime.Object, currentObject runtime.Object) error { + return nil + } + } + admissionValidation := tc.admissionValidation + if admissionValidation == nil { + admissionValidation = func(updatedObject runtime.Object, currentObject runtime.Object) error { return nil } } @@ -246,9 +320,6 @@ func (tc *patchTestCase) Run(t *testing.T) { patch := []byte{} switch patchType { - case types.JSONPatchType: - continue - case types.StrategicMergePatchType: patch, err = strategicpatch.CreateTwoWayMergePatch(originalObjJS, changedJS, versionedObj) if err != nil { @@ -265,7 +336,18 @@ func (tc *patchTestCase) Run(t *testing.T) { } - resultObj, err := patchResource(ctx, admit, 1*time.Second, versionedObj, testPatcher, name, patchType, patch, namer, creater, defaulter, convertor, kind, resource, codec) + resultObj, err := patchResource( + ctx, + admissionMutation, + rest.ValidateAllObjectFunc, + admissionValidation, + 1*time.Second, + versionedObj, + testPatcher, + name, + patchType, + patch, + namer, creater, defaulter, convertor, kind, resource, codec) if len(tc.expectedError) != 0 { if err == nil || err.Error() != tc.expectedError { t.Errorf("%s: expected error %v, but got %v", tc.name, tc.expectedError, err) @@ -485,35 +567,76 @@ func TestPatchWithAdmissionRejection(t *testing.T) { fifteen := int64(15) thirty := int64(30) - tc := &patchTestCase{ - name: "TestPatchWithAdmissionRejection", - - admit: func(updatedObject runtime.Object, currentObject runtime.Object) error { - return errors.New("admission failure") + type Test struct { + name string + admissionMutation mutateObjectUpdateFunc + admissionValidation rest.ValidateObjectUpdateFunc + expectedError string + } + for _, test := range []Test{ + { + name: "TestPatchWithMutatingAdmissionRejection", + admissionMutation: func(updatedObject runtime.Object, currentObject runtime.Object) error { + return errors.New("mutating admission failure") + }, + admissionValidation: rest.ValidateAllObjectUpdateFunc, + expectedError: "mutating admission failure", + }, + { + name: "TestPatchWithValidatingAdmissionRejection", + admissionMutation: rest.ValidateAllObjectUpdateFunc, + admissionValidation: func(updatedObject runtime.Object, currentObject runtime.Object) error { + return errors.New("validating admission failure") + }, + expectedError: "validating admission failure", + }, + { + name: "TestPatchWithBothAdmissionRejections", + admissionMutation: func(updatedObject runtime.Object, currentObject runtime.Object) error { + return errors.New("mutating admission failure") + }, + admissionValidation: func(updatedObject runtime.Object, currentObject runtime.Object) error { + return errors.New("validating admission failure") + }, + expectedError: "mutating admission failure", }, + } { + tc := &patchTestCase{ + name: test.name, - startingPod: &example.Pod{}, - changedPod: &example.Pod{}, - updatePod: &example.Pod{}, + admissionMutation: test.admissionMutation, + admissionValidation: test.admissionValidation, - expectedError: "admission failure", - } + startingPod: &example.Pod{}, + changedPod: &example.Pod{}, + updatePod: &example.Pod{}, - tc.startingPod.Name = name - tc.startingPod.Namespace = namespace - tc.startingPod.UID = uid - tc.startingPod.ResourceVersion = "1" - tc.startingPod.APIVersion = examplev1.SchemeGroupVersion.String() - tc.startingPod.Spec.ActiveDeadlineSeconds = &fifteen - - tc.changedPod.Name = name - tc.changedPod.Namespace = namespace - tc.changedPod.UID = uid - tc.changedPod.ResourceVersion = "1" - tc.changedPod.APIVersion = examplev1.SchemeGroupVersion.String() - tc.changedPod.Spec.ActiveDeadlineSeconds = &thirty + expectedError: test.expectedError, + } - tc.Run(t) + tc.startingPod.Name = name + tc.startingPod.Namespace = namespace + tc.startingPod.UID = uid + tc.startingPod.ResourceVersion = "1" + tc.startingPod.APIVersion = examplev1.SchemeGroupVersion.String() + tc.startingPod.Spec.ActiveDeadlineSeconds = &fifteen + + tc.changedPod.Name = name + tc.changedPod.Namespace = namespace + tc.changedPod.UID = uid + tc.changedPod.ResourceVersion = "1" + tc.changedPod.APIVersion = examplev1.SchemeGroupVersion.String() + tc.changedPod.Spec.ActiveDeadlineSeconds = &thirty + + tc.updatePod.Name = name + tc.updatePod.Namespace = namespace + tc.updatePod.UID = uid + tc.updatePod.ResourceVersion = "1" + tc.updatePod.APIVersion = examplev1.SchemeGroupVersion.String() + tc.updatePod.Spec.ActiveDeadlineSeconds = &fifteen + + tc.Run(t) + } } func TestPatchWithVersionConflictThenAdmissionFailure(t *testing.T) { @@ -527,7 +650,7 @@ func TestPatchWithVersionConflictThenAdmissionFailure(t *testing.T) { tc := &patchTestCase{ name: "TestPatchWithVersionConflictThenAdmissionFailure", - admit: func(updatedObject runtime.Object, currentObject runtime.Object) error { + admissionMutation: func(updatedObject runtime.Object, currentObject runtime.Object) error { if seen { return errors.New("admission failure") } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go new file mode 100644 index 000000000..319bfd51b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go @@ -0,0 +1,135 @@ +/* +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 handlers + +import ( + "fmt" + "net/http" + "time" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/audit" + "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" + "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + utiltrace "k8s.io/apiserver/pkg/util/trace" +) + +// UpdateResource returns a function that will handle a resource update +func UpdateResource(r rest.Updater, scope RequestScope, typer runtime.ObjectTyper, admit admission.Interface) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + // For performance tracking purposes. + trace := utiltrace.New("Update " + req.URL.Path) + defer trace.LogIfLong(500 * time.Millisecond) + + // TODO: we either want to remove timeout or document it (if we document, move timeout out of this function and declare it in api_installer) + timeout := parseTimeout(req.URL.Query().Get("timeout")) + + namespace, name, err := scope.Namer.Name(req) + if err != nil { + scope.err(err, w, req) + return + } + ctx := scope.ContextFunc(req) + ctx = request.WithNamespace(ctx, namespace) + + body, err := readBody(req) + if err != nil { + scope.err(err, w, req) + return + } + + s, err := negotiation.NegotiateInputSerializer(req, scope.Serializer) + if err != nil { + scope.err(err, w, req) + return + } + defaultGVK := scope.Kind + original := r.New() + trace.Step("About to convert to expected version") + decoder := scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: defaultGVK.Group, Version: runtime.APIVersionInternal}) + obj, gvk, err := decoder.Decode(body, &defaultGVK, original) + if err != nil { + err = transformDecodeError(typer, err, original, gvk, body) + scope.err(err, w, req) + return + } + if gvk.GroupVersion() != defaultGVK.GroupVersion() { + err = errors.NewBadRequest(fmt.Sprintf("the API version in the data (%s) does not match the expected API version (%s)", gvk.GroupVersion(), defaultGVK.GroupVersion())) + scope.err(err, w, req) + return + } + trace.Step("Conversion done") + + ae := request.AuditEventFrom(ctx) + audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) + + if err := checkName(obj, name, namespace, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + + userInfo, _ := request.UserFrom(ctx) + staticAdmissionAttributes := admission.NewAttributesRecord(nil, nil, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo) + var transformers []rest.TransformFunc + if mutatingAdmission, ok := admit.(admission.MutationInterface); ok && mutatingAdmission.Handles(admission.Update) { + transformers = append(transformers, func(ctx request.Context, newObj, oldObj runtime.Object) (runtime.Object, error) { + return newObj, mutatingAdmission.Admit(admission.NewAttributesRecord(newObj, oldObj, scope.Kind, namespace, name, scope.Resource, scope.Subresource, admission.Update, userInfo)) + }) + } + + trace.Step("About to store object in database") + wasCreated := false + result, err := finishRequest(timeout, func() (runtime.Object, error) { + obj, created, err := r.Update( + ctx, + name, + rest.DefaultUpdatedObjectInfo(obj, transformers...), + rest.AdmissionToValidateObjectFunc(admit, staticAdmissionAttributes), + rest.AdmissionToValidateObjectUpdateFunc(admit, staticAdmissionAttributes), + ) + wasCreated = created + return obj, err + }) + if err != nil { + scope.err(err, w, req) + return + } + trace.Step("Object stored in database") + + requestInfo, ok := request.RequestInfoFrom(ctx) + if !ok { + scope.err(fmt.Errorf("missing requestInfo"), w, req) + return + } + if err := setSelfLink(result, requestInfo, scope.Namer); err != nil { + scope.err(err, w, req) + return + } + trace.Step("Self-link added") + + status := http.StatusOK + if wasCreated { + status = http.StatusCreated + } + + transformResponseObject(ctx, scope, req, w, status, result) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/installer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/installer.go index b6c0ccad4..87bf1700d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/installer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/installer.go @@ -144,8 +144,9 @@ func (a *APIInstaller) newWebService() *restful.WebService { // object. If the storage object is a subresource and has an override supplied for it, it returns // the group version kind supplied in the override. func (a *APIInstaller) getResourceKind(path string, storage rest.Storage) (schema.GroupVersionKind, error) { - if fqKindToRegister, ok := a.group.SubresourceGroupVersionKind[path]; ok { - return fqKindToRegister, nil + // Let the storage tell us exactly what GVK it has + if gvkProvider, ok := storage.(rest.GroupVersionKindProvider); ok { + return gvkProvider.GroupVersionKind(a.group.GroupVersion), nil } object := storage.New() @@ -162,12 +163,6 @@ func (a *APIInstaller) getResourceKind(path string, storage rest.Storage) (schem fqKindToRegister = a.group.GroupVersion.WithKind(fqKind.Kind) break } - - // TODO: keep rid of extensions api group dependency here - // This keeps it doing what it was doing before, but it doesn't feel right. - if fqKind.Group == "extensions" && fqKind.Kind == "ThirdPartyResourceData" { - fqKindToRegister = a.group.GroupVersion.WithKind(fqKind.Kind) - } } if fqKindToRegister.Empty() { return schema.GroupVersionKind{}, fmt.Errorf("unable to locate fully qualified kind for %v: found %v when registering for %v", reflect.TypeOf(object), fqKinds, a.group.GroupVersion) @@ -878,7 +873,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag apiResource.Categories = categoriesProvider.Categories() } if gvkProvider, ok := storage.(rest.GroupVersionKindProvider); ok { - gvk := gvkProvider.GroupVersionKind() + gvk := gvkProvider.GroupVersionKind(a.group.GroupVersion) apiResource.Group = gvk.Group apiResource.Version = gvk.Version apiResource.Kind = gvk.Kind diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD index 37fd04b31..ec675c1c1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD @@ -13,7 +13,6 @@ go_library( ], importpath = "k8s.io/apiserver/pkg/endpoints/openapi/testing", deps = [ - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/zz_generated.deepcopy.go index 79318002e..b454e1b67 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/zz_generated.deepcopy.go @@ -21,23 +21,9 @@ limitations under the License. package testing import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestType).DeepCopyInto(out.(*TestType)) - return nil - }, InType: reflect.TypeOf(&TestType{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TestType) DeepCopyInto(out *TestType) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD index 312e5e9fd..8cf399569 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD @@ -15,7 +15,6 @@ go_library( importpath = "k8s.io/apiserver/pkg/endpoints/testing", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/testing/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/testing/zz_generated.deepcopy.go index 29aff7e2d..2bc8d7d2f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/testing/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/endpoints/testing/zz_generated.deepcopy.go @@ -21,39 +21,9 @@ limitations under the License. package testing import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Simple).DeepCopyInto(out.(*Simple)) - return nil - }, InType: reflect.TypeOf(&Simple{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SimpleGetOptions).DeepCopyInto(out.(*SimpleGetOptions)) - return nil - }, InType: reflect.TypeOf(&SimpleGetOptions{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SimpleList).DeepCopyInto(out.(*SimpleList)) - return nil - }, InType: reflect.TypeOf(&SimpleList{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SimpleRoot).DeepCopyInto(out.(*SimpleRoot)) - return nil - }, InType: reflect.TypeOf(&SimpleRoot{})}, - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*SimpleXGSubresource).DeepCopyInto(out.(*SimpleXGSubresource)) - return nil - }, InType: reflect.TypeOf(&SimpleXGSubresource{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Simple) DeepCopyInto(out *Simple) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/storage_factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/storage_factory.go index e8970c843..c1ef906f6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/storage_factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/storage_factory.go @@ -17,6 +17,8 @@ limitations under the License. package registry import ( + "sync" + "github.com/golang/glog" "k8s.io/apimachinery/pkg/runtime" @@ -65,6 +67,53 @@ func StorageWithCacher(capacity int) generic.StorageDecorator { d() } + // TODO : Remove RegisterStorageCleanup below when PR + // https://github.com/kubernetes/kubernetes/pull/50690 + // merges as that shuts down storage properly + RegisterStorageCleanup(destroyFunc) + return cacher, destroyFunc } } + +// TODO : Remove all the code below when PR +// https://github.com/kubernetes/kubernetes/pull/50690 +// merges as that shuts down storage properly +// HACK ALERT : Track the destroy methods to call them +// from the test harness. TrackStorageCleanup will be called +// only from the test harness, so Register/Cleanup will be +// no-op at runtime. + +var cleanupLock sync.Mutex +var cleanup []func() = nil + +func TrackStorageCleanup() { + cleanupLock.Lock() + defer cleanupLock.Unlock() + + if cleanup != nil { + panic("Conflicting storage tracking") + } + cleanup = make([]func(), 0) +} + +func RegisterStorageCleanup(fn func()) { + cleanupLock.Lock() + defer cleanupLock.Unlock() + + if cleanup == nil { + return + } + cleanup = append(cleanup, fn) +} + +func CleanupStorage() { + cleanupLock.Lock() + old := cleanup + cleanup = nil + cleanupLock.Unlock() + + for _, d := range old { + d() + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go index c8a9fd6c8..8536d0de7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go @@ -148,11 +148,13 @@ type Store struct { // AfterCreate implements a further operation to run after a resource is // created and before it is decorated, optional. AfterCreate ObjectFunc + // UpdateStrategy implements resource-specific behavior during updates. UpdateStrategy rest.RESTUpdateStrategy // AfterUpdate implements a further operation to run after a resource is // updated and before it is decorated, optional. AfterUpdate ObjectFunc + // DeleteStrategy implements resource-specific behavior during deletion. DeleteStrategy rest.RESTDeleteStrategy // AfterDelete implements a further operation to run after a resource is @@ -303,10 +305,18 @@ func (e *Store) ListPredicate(ctx genericapirequest.Context, p storage.Selection } // Create inserts a new item according to the unique key from the object. -func (e *Store) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) { +func (e *Store) Create(ctx genericapirequest.Context, obj runtime.Object, createValidation rest.ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) { if err := rest.BeforeCreate(e.CreateStrategy, ctx, obj); err != nil { return nil, err } + // at this point we have a fully formed object. It is time to call the validators that the apiserver + // handling chain wants to enforce. + if createValidation != nil { + if err := createValidation(obj.DeepCopyObject()); err != nil { + return nil, err + } + } + name, err := e.ObjectNameFunc(obj) if err != nil { return nil, err @@ -494,7 +504,7 @@ func (e *Store) deleteWithoutFinalizers(ctx genericapirequest.Context, name, key // Update performs an atomic update and set of the object. Returns the result of the update // or an error. If the registry allows create-on-update, the create flow will be executed. // A bool is returned along with the object and any errors, to indicate object creation. -func (e *Store) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { +func (e *Store) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { key, err := e.KeyFunc(ctx, name) if err != nil { return nil, false, err @@ -544,10 +554,18 @@ func (e *Store) Update(ctx genericapirequest.Context, name string, objInfo rest. if err := rest.BeforeCreate(e.CreateStrategy, ctx, obj); err != nil { return nil, nil, err } + // at this point we have a fully formed object. It is time to call the validators that the apiserver + // handling chain wants to enforce. + if createValidation != nil { + if err := createValidation(obj.DeepCopyObject()); err != nil { + return nil, nil, err + } + } ttl, err := e.calculateTTL(obj, 0, false) if err != nil { return nil, nil, err } + return obj, &ttl, nil } @@ -582,6 +600,13 @@ func (e *Store) Update(ctx genericapirequest.Context, name string, objInfo rest. if err := rest.BeforeUpdate(e.UpdateStrategy, ctx, obj, existing); err != nil { return nil, nil, err } + // at this point we have a fully formed object. It is time to call the validators that the apiserver + // handling chain wants to enforce. + if updateValidation != nil { + if err := updateValidation(obj.DeepCopyObject(), existing.DeepCopyObject()); err != nil { + return nil, nil, err + } + } if e.shouldDeleteDuringUpdate(ctx, key, obj, existing) { deleteObj = obj return nil, nil, errEmptiedFinalizers diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store_test.go index f9b9fcb7e..9e632113c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store_test.go @@ -245,7 +245,7 @@ func TestStoreListResourceVersion(t *testing.T) { destroyFunc, registry := newTestGenericStoreRegistry(t, scheme, true) defer destroyFunc() - obj, err := registry.Create(ctx, fooPod, false) + obj, err := registry.Create(ctx, fooPod, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatal(err) } @@ -275,7 +275,7 @@ func TestStoreListResourceVersion(t *testing.T) { t.Fatalf("expected waiting, but get %#v", l) } - if _, err := registry.Create(ctx, barPod, false); err != nil { + if _, err := registry.Create(ctx, barPod, rest.ValidateAllObjectFunc, false); err != nil { t.Fatal(err) } @@ -311,8 +311,14 @@ func TestStoreCreate(t *testing.T) { defaultDeleteStrategy := testRESTStrategy{scheme, names.SimpleNameGenerator, true, false, true} registry.DeleteStrategy = testGracefulStrategy{defaultDeleteStrategy} + // create the object with denying admission + objA, err := registry.Create(testContext, podA, denyCreateValidation, false) + if err == nil { + t.Errorf("Expected admission error: %v", err) + } + // create the object - objA, err := registry.Create(testContext, podA, false) + objA, err = registry.Create(testContext, podA, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -329,7 +335,7 @@ func TestStoreCreate(t *testing.T) { } // now try to create the second pod - _, err = registry.Create(testContext, podB, false) + _, err = registry.Create(testContext, podB, rest.ValidateAllObjectFunc, false) if !errors.IsAlreadyExists(err) { t.Errorf("Unexpected error: %v", err) } @@ -348,7 +354,7 @@ func TestStoreCreate(t *testing.T) { } // try to create before graceful deletion period is over - _, err = registry.Create(testContext, podA, false) + _, err = registry.Create(testContext, podA, rest.ValidateAllObjectFunc, false) if err == nil || !errors.IsAlreadyExists(err) { t.Fatalf("Expected 'already exists' error from storage, but got %v", err) } @@ -440,7 +446,7 @@ func TestStoreCreateInitialized(t *testing.T) { } pod.Initializers = nil - updated, _, err := registry.Update(ctx, podA.Name, rest.DefaultUpdatedObjectInfo(pod)) + updated, _, err := registry.Update(ctx, podA.Name, rest.DefaultUpdatedObjectInfo(pod), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatal(err) } @@ -476,7 +482,7 @@ func TestStoreCreateInitialized(t *testing.T) { }() // create the object - objA, err := registry.Create(ctx, podA, false) + objA, err := registry.Create(ctx, podA, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -533,7 +539,7 @@ func TestStoreCreateInitializedFailed(t *testing.T) { } pod.Initializers.Pending = nil pod.Initializers.Result = &metav1.Status{Status: metav1.StatusFailure, Code: 403, Reason: metav1.StatusReasonForbidden, Message: "induced failure"} - updated, _, err := registry.Update(ctx, podA.Name, rest.DefaultUpdatedObjectInfo(pod)) + updated, _, err := registry.Update(ctx, podA.Name, rest.DefaultUpdatedObjectInfo(pod), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatal(err) } @@ -556,7 +562,7 @@ func TestStoreCreateInitializedFailed(t *testing.T) { }() // create the object - _, err := registry.Create(ctx, podA, false) + _, err := registry.Create(ctx, podA, rest.ValidateAllObjectFunc, false) if !errors.IsForbidden(err) { t.Fatalf("unexpected error: %#v", err.(errors.APIStatus).Status()) } @@ -574,7 +580,7 @@ func TestStoreCreateInitializedFailed(t *testing.T) { } func updateAndVerify(t *testing.T, ctx genericapirequest.Context, registry *Store, pod *example.Pod) bool { - obj, _, err := registry.Update(ctx, pod.Name, rest.DefaultUpdatedObjectInfo(pod)) + obj, _, err := registry.Update(ctx, pod.Name, rest.DefaultUpdatedObjectInfo(pod), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("Unexpected error: %v", err) return false @@ -609,31 +615,53 @@ func TestStoreUpdate(t *testing.T) { destroyFunc, registry := NewTestGenericStoreRegistry(t) defer destroyFunc() - // Test1 try to update a non-existing node - _, _, err := registry.Update(testContext, podA.Name, rest.DefaultUpdatedObjectInfo(podA)) + // try to update a non-existing node with denying admission, should still return NotFound + _, _, err := registry.Update(testContext, podA.Name, rest.DefaultUpdatedObjectInfo(podA), denyCreateValidation, denyUpdateValidation) + if !errors.IsNotFound(err) { + t.Errorf("Unexpected error: %v", err) + } + + // try to update a non-existing node + _, _, err = registry.Update(testContext, podA.Name, rest.DefaultUpdatedObjectInfo(podA), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if !errors.IsNotFound(err) { t.Errorf("Unexpected error: %v", err) } - // Test2 createIfNotFound and verify + // allow creation registry.UpdateStrategy.(*testRESTStrategy).allowCreateOnUpdate = true + + // createIfNotFound with denying create admission + _, _, err = registry.Update(testContext, podA.Name, rest.DefaultUpdatedObjectInfo(podA), denyCreateValidation, rest.ValidateAllObjectUpdateFunc) + if err == nil { + t.Errorf("expected admission error on create") + } + + // createIfNotFound and verify if !updateAndVerify(t, testContext, registry, podA) { t.Errorf("Unexpected error updating podA") } + + // forbid creation again registry.UpdateStrategy.(*testRESTStrategy).allowCreateOnUpdate = false - // Test3 outofDate - _, _, err = registry.Update(testContext, podAWithResourceVersion.Name, rest.DefaultUpdatedObjectInfo(podAWithResourceVersion)) + // outofDate + _, _, err = registry.Update(testContext, podAWithResourceVersion.Name, rest.DefaultUpdatedObjectInfo(podAWithResourceVersion), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if !errors.IsConflict(err) { t.Errorf("Unexpected error updating podAWithResourceVersion: %v", err) } - // Test4 normal update and verify + // try to update with denying admission + _, _, err = registry.Update(testContext, podA.Name, rest.DefaultUpdatedObjectInfo(podA), rest.ValidateAllObjectFunc, denyUpdateValidation) + if err == nil { + t.Errorf("expected admission error on update") + } + + // normal update and verify if !updateAndVerify(t, testContext, registry, podB) { t.Errorf("Unexpected error updating podB") } - // Test5 unconditional update + // unconditional update // NOTE: The logic for unconditional updates doesn't make sense to me, and imho should be removed. // doUnconditionalUpdate := resourceVersion == 0 && e.UpdateStrategy.AllowUnconditionalUpdate() // ^^ That condition can *never be true due to the creation of root objects. @@ -660,7 +688,7 @@ func TestNoOpUpdates(t *testing.T) { var err error var createResult runtime.Object - if createResult, err = registry.Create(genericapirequest.NewDefaultContext(), newPod(), false); err != nil { + if createResult, err = registry.Create(genericapirequest.NewDefaultContext(), newPod(), rest.ValidateAllObjectFunc, false); err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -671,7 +699,7 @@ func TestNoOpUpdates(t *testing.T) { var updateResult runtime.Object p := newPod() - if updateResult, _, err = registry.Update(genericapirequest.NewDefaultContext(), p.Name, rest.DefaultUpdatedObjectInfo(p)); err != nil { + if updateResult, _, err = registry.Update(genericapirequest.NewDefaultContext(), p.Name, rest.DefaultUpdatedObjectInfo(p), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc); err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -835,7 +863,7 @@ func TestStoreDelete(t *testing.T) { } // create pod - _, err = registry.Create(testContext, podA, false) + _, err = registry.Create(testContext, podA, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -873,7 +901,7 @@ func TestStoreDeleteUninitialized(t *testing.T) { } // create pod - _, err = registry.Create(testContext, podA, true) + _, err = registry.Create(testContext, podA, rest.ValidateAllObjectFunc, true) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -950,7 +978,7 @@ func TestGracefulStoreHandleFinalizers(t *testing.T) { registry.EnableGarbageCollection = gcEnabled // create pod - _, err := registry.Create(testContext, podWithFinalizer, false) + _, err := registry.Create(testContext, podWithFinalizer, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -972,7 +1000,7 @@ func TestGracefulStoreHandleFinalizers(t *testing.T) { ObjectMeta: metav1.ObjectMeta{Name: "foo", Finalizers: []string{"foo.com/x"}, ResourceVersion: podWithFinalizer.ObjectMeta.ResourceVersion}, Spec: example.PodSpec{NodeName: "machine"}, } - _, _, err = registry.Update(testContext, updatedPodWithFinalizer.ObjectMeta.Name, rest.DefaultUpdatedObjectInfo(updatedPodWithFinalizer)) + _, _, err = registry.Update(testContext, updatedPodWithFinalizer.ObjectMeta.Name, rest.DefaultUpdatedObjectInfo(updatedPodWithFinalizer), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -987,7 +1015,7 @@ func TestGracefulStoreHandleFinalizers(t *testing.T) { ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: podWithFinalizer.ObjectMeta.ResourceVersion}, Spec: example.PodSpec{NodeName: "anothermachine"}, } - _, _, err = registry.Update(testContext, podWithFinalizer.ObjectMeta.Name, rest.DefaultUpdatedObjectInfo(podWithNoFinalizer)) + _, _, err = registry.Update(testContext, podWithFinalizer.ObjectMeta.Name, rest.DefaultUpdatedObjectInfo(podWithNoFinalizer), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -1016,7 +1044,7 @@ func TestFailedInitializationStoreUpdate(t *testing.T) { defer destroyFunc() // create pod, view initializing - obj, err := registry.Create(testContext, podInitializing, true) + obj, err := registry.Create(testContext, podInitializing, rest.ValidateAllObjectFunc, true) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1024,7 +1052,7 @@ func TestFailedInitializationStoreUpdate(t *testing.T) { // update the pod with initialization failure, the pod should be deleted pod.Initializers.Result = &metav1.Status{Status: metav1.StatusFailure} - result, _, err := registry.Update(testContext, podInitializing.Name, rest.DefaultUpdatedObjectInfo(pod)) + result, _, err := registry.Update(testContext, podInitializing.Name, rest.DefaultUpdatedObjectInfo(pod), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -1055,7 +1083,7 @@ func TestNonGracefulStoreHandleFinalizers(t *testing.T) { registry.EnableGarbageCollection = gcEnabled // create pod - _, err := registry.Create(testContext, podWithFinalizer, false) + _, err := registry.Create(testContext, podWithFinalizer, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1092,7 +1120,7 @@ func TestNonGracefulStoreHandleFinalizers(t *testing.T) { ObjectMeta: metav1.ObjectMeta{Name: "foo", Finalizers: []string{"foo.com/x"}, ResourceVersion: podWithFinalizer.ObjectMeta.ResourceVersion}, Spec: example.PodSpec{NodeName: "machine"}, } - _, _, err = registry.Update(testContext, updatedPodWithFinalizer.ObjectMeta.Name, rest.DefaultUpdatedObjectInfo(updatedPodWithFinalizer)) + _, _, err = registry.Update(testContext, updatedPodWithFinalizer.ObjectMeta.Name, rest.DefaultUpdatedObjectInfo(updatedPodWithFinalizer), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1111,7 +1139,7 @@ func TestNonGracefulStoreHandleFinalizers(t *testing.T) { ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: podWithFinalizer.ObjectMeta.ResourceVersion}, Spec: example.PodSpec{NodeName: "anothermachine"}, } - _, _, err = registry.Update(testContext, podWithFinalizer.ObjectMeta.Name, rest.DefaultUpdatedObjectInfo(podWithNoFinalizer)) + _, _, err = registry.Update(testContext, podWithFinalizer.ObjectMeta.Name, rest.DefaultUpdatedObjectInfo(podWithNoFinalizer), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1357,7 +1385,7 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) { for _, tc := range testcases { registry.DeleteStrategy = tc.strategy // create pod - _, err := registry.Create(testContext, tc.pod, false) + _, err := registry.Create(testContext, tc.pod, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -1576,7 +1604,7 @@ func TestStoreDeletionPropagation(t *testing.T) { i++ pod := createPod(i, tc.existingFinalizers) // create pod - _, err := registry.Create(testContext, pod, false) + _, err := registry.Create(testContext, pod, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -1628,13 +1656,13 @@ func TestStoreDeleteCollection(t *testing.T) { destroyFunc, registry := NewTestGenericStoreRegistry(t) defer destroyFunc() - if _, err := registry.Create(testContext, podA, false); err != nil { + if _, err := registry.Create(testContext, podA, rest.ValidateAllObjectFunc, false); err != nil { t.Errorf("Unexpected error: %v", err) } - if _, err := registry.Create(testContext, podB, false); err != nil { + if _, err := registry.Create(testContext, podB, rest.ValidateAllObjectFunc, false); err != nil { t.Errorf("Unexpected error: %v", err) } - if _, err := registry.Create(testContext, podC, true); err != nil { + if _, err := registry.Create(testContext, podC, rest.ValidateAllObjectFunc, true); err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1670,10 +1698,10 @@ func TestStoreDeleteCollectionNotFound(t *testing.T) { for i := 0; i < 10; i++ { // Setup - if _, err := registry.Create(testContext, podA, false); err != nil { + if _, err := registry.Create(testContext, podA, rest.ValidateAllObjectFunc, false); err != nil { t.Errorf("Unexpected error: %v", err) } - if _, err := registry.Create(testContext, podB, false); err != nil { + if _, err := registry.Create(testContext, podB, rest.ValidateAllObjectFunc, false); err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1709,7 +1737,7 @@ func TestStoreDeleteCollectionWithWatch(t *testing.T) { destroyFunc, registry := NewTestGenericStoreRegistry(t) defer destroyFunc() - objCreated, err := registry.Create(testContext, podA, false) + objCreated, err := registry.Create(testContext, podA, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -1778,7 +1806,7 @@ func TestStoreWatch(t *testing.T) { if err != nil { t.Errorf("%v: unexpected error: %v", name, err) } else { - obj, err := registry.Create(testContext, podA, false) + obj, err := registry.Create(testContext, podA, rest.ValidateAllObjectFunc, false) if err != nil { got, open := <-wi.ResultChan() if !open { @@ -1797,7 +1825,7 @@ func TestStoreWatch(t *testing.T) { func newTestGenericStoreRegistry(t *testing.T, scheme *runtime.Scheme, hasCacheEnabled bool) (factory.DestroyFunc, *Store) { podPrefix := "/pods" - server, sc := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, scheme) + server, sc := etcdtesting.NewUnsecuredEtcd3TestClientServer(t) strategy := &testRESTStrategy{scheme, names.SimpleNameGenerator, true, false, true} sc.Codec = apitesting.TestStorageCodec(codecs, examplev1.SchemeGroupVersion) @@ -1922,7 +1950,7 @@ func TestQualifiedResource(t *testing.T) { defer destroyFunc() // update a non-exist object - _, _, err := registry.Update(testContext, podA.Name, rest.DefaultUpdatedObjectInfo(podA)) + _, _, err := registry.Update(testContext, podA.Name, rest.DefaultUpdatedObjectInfo(podA), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if !errors.IsNotFound(err) { t.Fatalf("Unexpected error: %v", err) } @@ -1954,13 +1982,13 @@ func TestQualifiedResource(t *testing.T) { } // create a non-exist object - _, err = registry.Create(testContext, podA, false) + _, err = registry.Create(testContext, podA, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatal(err) } // create a exist object will fail - _, err = registry.Create(testContext, podA, false) + _, err = registry.Create(testContext, podA, rest.ValidateAllObjectFunc, false) if !errors.IsAlreadyExists(err) { t.Fatalf("Unexpected error: %v", err) } @@ -1969,3 +1997,11 @@ func TestQualifiedResource(t *testing.T) { t.Fatalf("Unexpected error: %#v", err) } } + +func denyCreateValidation(obj runtime.Object) error { + return fmt.Errorf("admission denied") +} + +func denyUpdateValidation(obj, old runtime.Object) error { + return fmt.Errorf("admission denied") +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD index 7b61aaeae..e662a4ee7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD @@ -43,12 +43,12 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/features:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/create.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/create.go index 55b628f03..1f998332e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/create.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/create.go @@ -25,6 +25,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/admission" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/features" "k8s.io/apiserver/pkg/storage/names" @@ -151,3 +152,28 @@ type NamespaceScopedStrategy interface { // NamespaceScoped returns if the object must be in a namespace. NamespaceScoped() bool } + +// AdmissionToValidateObjectFunc converts validating admission to a rest validate object func +func AdmissionToValidateObjectFunc(admit admission.Interface, staticAttributes admission.Attributes) ValidateObjectFunc { + validatingAdmission, ok := admit.(admission.ValidationInterface) + if !ok { + return func(obj runtime.Object) error { return nil } + } + return func(obj runtime.Object) error { + finalAttributes := admission.NewAttributesRecord( + obj, + staticAttributes.GetOldObject(), + staticAttributes.GetKind(), + staticAttributes.GetNamespace(), + staticAttributes.GetName(), + staticAttributes.GetResource(), + staticAttributes.GetSubresource(), + staticAttributes.GetOperation(), + staticAttributes.GetUserInfo(), + ) + if !validatingAdmission.Handles(finalAttributes.GetOperation()) { + return nil + } + return validatingAdmission.Validate(finalAttributes) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go index 42a3b0973..1155c8ade 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go @@ -82,7 +82,7 @@ type CategoriesProvider interface { // This trumps KindProvider since it is capable of providing the information required. // TODO KindProvider (only used by federation) should be removed and replaced with this, but that presents greater risk late in 1.8. type GroupVersionKindProvider interface { - GroupVersionKind() schema.GroupVersionKind + GroupVersionKind(containingGV schema.GroupVersion) schema.GroupVersionKind } // Lister is an object that can retrieve resources that match the provided field and label criteria. @@ -192,7 +192,7 @@ type Creater interface { // Create creates a new version of a resource. If includeUninitialized is set, the object may be returned // without completing initialization. - Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) + Create(ctx genericapirequest.Context, obj runtime.Object, createValidation ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) } // NamedCreater is an object that can create an instance of a RESTful object using a name parameter. @@ -205,7 +205,7 @@ type NamedCreater interface { // This is needed for create operations on subresources which include the name of the parent // resource in the path. If includeUninitialized is set, the object may be returned without // completing initialization. - Create(ctx genericapirequest.Context, name string, obj runtime.Object, includeUninitialized bool) (runtime.Object, error) + Create(ctx genericapirequest.Context, name string, obj runtime.Object, createValidation ValidateObjectFunc, includeUninitialized bool) (runtime.Object, error) } // UpdatedObjectInfo provides information about an updated object to an Updater. @@ -221,6 +221,26 @@ type UpdatedObjectInfo interface { UpdatedObject(ctx genericapirequest.Context, oldObj runtime.Object) (newObj runtime.Object, err error) } +// ValidateObjectFunc is a function to act on a given object. An error may be returned +// if the hook cannot be completed. An ObjectFunc may NOT transform the provided +// object. +type ValidateObjectFunc func(obj runtime.Object) error + +// ValidateAllObjectFunc is a "admit everything" instance of ValidateObjectFunc. +func ValidateAllObjectFunc(obj runtime.Object) error { + return nil +} + +// ValidateObjectUpdateFunc is a function to act on a given object and its predecessor. +// An error may be returned if the hook cannot be completed. An UpdateObjectFunc +// may NOT transform the provided object. +type ValidateObjectUpdateFunc func(obj, old runtime.Object) error + +// ValidateAllObjectUpdateFunc is a "admit everything" instance of ValidateObjectUpdateFunc. +func ValidateAllObjectUpdateFunc(obj, old runtime.Object) error { + return nil +} + // Updater is an object that can update an instance of a RESTful object. type Updater interface { // New returns an empty object that can be used with Update after request data has been put into it. @@ -230,14 +250,14 @@ type Updater interface { // Update finds a resource in the storage and updates it. Some implementations // may allow updates creates the object - they should set the created boolean // to true. - Update(ctx genericapirequest.Context, name string, objInfo UpdatedObjectInfo) (runtime.Object, bool, error) + Update(ctx genericapirequest.Context, name string, objInfo UpdatedObjectInfo, createValidation ValidateObjectFunc, updateValidation ValidateObjectUpdateFunc) (runtime.Object, bool, error) } // CreaterUpdater is a storage object that must support both create and update. // Go prevents embedded interfaces that implement the same method. type CreaterUpdater interface { Creater - Update(ctx genericapirequest.Context, name string, objInfo UpdatedObjectInfo) (runtime.Object, bool, error) + Update(ctx genericapirequest.Context, name string, objInfo UpdatedObjectInfo, createValidation ValidateObjectFunc, updateValidation ValidateObjectUpdateFunc) (runtime.Object, bool, error) } // CreaterUpdater must satisfy the Updater interface. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/resttest.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/resttest.go index 1b19b6dea..110334546 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/resttest.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/resttest.go @@ -244,7 +244,7 @@ func (t *Tester) testCreateAlreadyExisting(obj runtime.Object, createFn CreateFu } defer t.delete(ctx, foo) - _, err := t.storage.(rest.Creater).Create(ctx, foo, false) + _, err := t.storage.(rest.Creater).Create(ctx, foo, rest.ValidateAllObjectFunc, false) if !errors.IsAlreadyExists(err) { t.Errorf("expected already exists err, got %v", err) } @@ -256,7 +256,7 @@ func (t *Tester) testCreateEquals(obj runtime.Object, getFn GetFunc) { foo := obj.DeepCopyObject() t.setObjectMeta(foo, t.namer(2)) - created, err := t.storage.(rest.Creater).Create(ctx, foo, false) + created, err := t.storage.(rest.Creater).Create(ctx, foo, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -284,7 +284,7 @@ func (t *Tester) testCreateDiscardsObjectNamespace(valid runtime.Object) { objectMeta.SetNamespace("not-default") // Ideally, we'd get an error back here, but at least verify the namespace wasn't persisted - created, err := t.storage.(rest.Creater).Create(t.TestContext(), valid.DeepCopyObject(), false) + created, err := t.storage.(rest.Creater).Create(t.TestContext(), valid.DeepCopyObject(), rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -300,7 +300,7 @@ func (t *Tester) testCreateGeneratesName(valid runtime.Object) { objectMeta.SetName("") objectMeta.SetGenerateName("test-") - created, err := t.storage.(rest.Creater).Create(t.TestContext(), valid, false) + created, err := t.storage.(rest.Creater).Create(t.TestContext(), valid, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -315,7 +315,7 @@ func (t *Tester) testCreateHasMetadata(valid runtime.Object) { objectMeta.SetName(t.namer(1)) objectMeta.SetNamespace(t.TestNamespace()) - obj, err := t.storage.(rest.Creater).Create(t.TestContext(), valid, false) + obj, err := t.storage.(rest.Creater).Create(t.TestContext(), valid, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -333,7 +333,7 @@ func (t *Tester) testCreateIgnoresContextNamespace(valid runtime.Object) { ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), "not-default2") // Ideally, we'd get an error back here, but at least verify the namespace wasn't persisted - created, err := t.storage.(rest.Creater).Create(ctx, valid.DeepCopyObject(), false) + created, err := t.storage.(rest.Creater).Create(ctx, valid.DeepCopyObject(), rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -352,7 +352,7 @@ func (t *Tester) testCreateIgnoresMismatchedNamespace(valid runtime.Object) { ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), "not-default2") // Ideally, we'd get an error back here, but at least verify the namespace wasn't persisted - created, err := t.storage.(rest.Creater).Create(ctx, valid.DeepCopyObject(), false) + created, err := t.storage.(rest.Creater).Create(ctx, valid.DeepCopyObject(), rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -370,7 +370,7 @@ func (t *Tester) testCreateValidatesNames(valid runtime.Object) { objCopyMeta.SetName(invalidName) ctx := t.TestContext() - _, err := t.storage.(rest.Creater).Create(ctx, objCopy, false) + _, err := t.storage.(rest.Creater).Create(ctx, objCopy, rest.ValidateAllObjectFunc, false) if !errors.IsInvalid(err) { t.Errorf("%s: Expected to get an invalid resource error, got '%v'", invalidName, err) } @@ -382,7 +382,7 @@ func (t *Tester) testCreateValidatesNames(valid runtime.Object) { objCopyMeta.SetName(objCopyMeta.GetName() + invalidSuffix) ctx := t.TestContext() - _, err := t.storage.(rest.Creater).Create(ctx, objCopy, false) + _, err := t.storage.(rest.Creater).Create(ctx, objCopy, rest.ValidateAllObjectFunc, false) if !errors.IsInvalid(err) { t.Errorf("%s: Expected to get an invalid resource error, got '%v'", invalidSuffix, err) } @@ -392,7 +392,7 @@ func (t *Tester) testCreateValidatesNames(valid runtime.Object) { func (t *Tester) testCreateInvokesValidation(invalid ...runtime.Object) { for i, obj := range invalid { ctx := t.TestContext() - _, err := t.storage.(rest.Creater).Create(ctx, obj, false) + _, err := t.storage.(rest.Creater).Create(ctx, obj, rest.ValidateAllObjectFunc, false) if !errors.IsInvalid(err) { t.Errorf("%d: Expected to get an invalid resource error, got %v", i, err) } @@ -403,7 +403,7 @@ func (t *Tester) testCreateRejectsMismatchedNamespace(valid runtime.Object) { objectMeta := t.getObjectMetaOrFail(valid) objectMeta.SetNamespace("not-default") - _, err := t.storage.(rest.Creater).Create(t.TestContext(), valid, false) + _, err := t.storage.(rest.Creater).Create(t.TestContext(), valid, rest.ValidateAllObjectFunc, false) if err == nil { t.Errorf("Expected an error, but we didn't get one") } else if !strings.Contains(err.Error(), "does not match the namespace sent on the request") { @@ -417,7 +417,7 @@ func (t *Tester) testCreateResetsUserData(valid runtime.Object) { objectMeta.SetUID("bad-uid") objectMeta.SetCreationTimestamp(now) - obj, err := t.storage.(rest.Creater).Create(t.TestContext(), valid, false) + obj, err := t.storage.(rest.Creater).Create(t.TestContext(), valid, rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -435,7 +435,7 @@ func (t *Tester) testCreateIgnoreClusterName(valid runtime.Object) { objectMeta.SetName(t.namer(3)) objectMeta.SetClusterName("clustername-to-ignore") - obj, err := t.storage.(rest.Creater).Create(t.TestContext(), valid.DeepCopyObject(), false) + obj, err := t.storage.(rest.Creater).Create(t.TestContext(), valid.DeepCopyObject(), rest.ValidateAllObjectFunc, false) if err != nil { t.Fatalf("Unexpected error: %v", err) } @@ -464,7 +464,7 @@ func (t *Tester) testUpdateEquals(obj runtime.Object, createFn CreateFunc, getFn } toUpdate = updateFn(toUpdate) toUpdateMeta := t.getObjectMetaOrFail(toUpdate) - updated, created, err := t.storage.(rest.Updater).Update(ctx, toUpdateMeta.GetName(), rest.DefaultUpdatedObjectInfo(toUpdate)) + updated, created, err := t.storage.(rest.Updater).Update(ctx, toUpdateMeta.GetName(), rest.DefaultUpdatedObjectInfo(toUpdate), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -504,7 +504,7 @@ func (t *Tester) testUpdateFailsOnVersionTooOld(obj runtime.Object, createFn Cre olderMeta := t.getObjectMetaOrFail(older) olderMeta.SetResourceVersion("1") - _, _, err = t.storage.(rest.Updater).Update(t.TestContext(), olderMeta.GetName(), rest.DefaultUpdatedObjectInfo(older)) + _, _, err = t.storage.(rest.Updater).Update(t.TestContext(), olderMeta.GetName(), rest.DefaultUpdatedObjectInfo(older), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err == nil { t.Errorf("Expected an error, but we didn't get one") } else if !errors.IsConflict(err) { @@ -524,7 +524,7 @@ func (t *Tester) testUpdateInvokesValidation(obj runtime.Object, createFn Create for _, update := range invalidUpdateFn { toUpdate := update(foo.DeepCopyObject()) toUpdateMeta := t.getObjectMetaOrFail(toUpdate) - got, created, err := t.storage.(rest.Updater).Update(t.TestContext(), toUpdateMeta.GetName(), rest.DefaultUpdatedObjectInfo(toUpdate)) + got, created, err := t.storage.(rest.Updater).Update(t.TestContext(), toUpdateMeta.GetName(), rest.DefaultUpdatedObjectInfo(toUpdate), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if got != nil || created { t.Errorf("expected nil object and no creation for object: %v", toUpdate) } @@ -545,7 +545,7 @@ func (t *Tester) testUpdateWithWrongUID(obj runtime.Object, createFn CreateFunc, } objectMeta.SetUID(types.UID("UID1111")) - obj, created, err := t.storage.(rest.Updater).Update(ctx, objectMeta.GetName(), rest.DefaultUpdatedObjectInfo(foo)) + obj, created, err := t.storage.(rest.Updater).Update(ctx, objectMeta.GetName(), rest.DefaultUpdatedObjectInfo(foo), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if created || obj != nil { t.Errorf("expected nil object and no creation for object: %v", foo) } @@ -589,7 +589,7 @@ func (t *Tester) testUpdateRetrievesOldObject(obj runtime.Object, createFn Creat return updatedObject, nil } - updatedObj, created, err := t.storage.(rest.Updater).Update(ctx, objectMeta.GetName(), rest.DefaultUpdatedObjectInfo(storedFooWithUpdates, noopTransform)) + updatedObj, created, err := t.storage.(rest.Updater).Update(ctx, objectMeta.GetName(), rest.DefaultUpdatedObjectInfo(storedFooWithUpdates, noopTransform), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("unexpected error: %v", err) return @@ -624,7 +624,7 @@ func (t *Tester) testUpdatePropagatesUpdatedObjectError(obj runtime.Object, crea return nil, propagateErr } - _, _, err := t.storage.(rest.Updater).Update(ctx, name, rest.DefaultUpdatedObjectInfo(foo, noopTransform)) + _, _, err := t.storage.(rest.Updater).Update(ctx, name, rest.DefaultUpdatedObjectInfo(foo, noopTransform), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != propagateErr { t.Errorf("expected propagated error, got %#v", err) } @@ -650,7 +650,7 @@ func (t *Tester) testUpdateIgnoreGenerationUpdates(obj runtime.Object, createFn olderMeta := t.getObjectMetaOrFail(older) olderMeta.SetGeneration(2) - _, _, err = t.storage.(rest.Updater).Update(t.TestContext(), olderMeta.GetName(), rest.DefaultUpdatedObjectInfo(older)) + _, _, err = t.storage.(rest.Updater).Update(t.TestContext(), olderMeta.GetName(), rest.DefaultUpdatedObjectInfo(older), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -666,7 +666,7 @@ func (t *Tester) testUpdateIgnoreGenerationUpdates(obj runtime.Object, createFn func (t *Tester) testUpdateOnNotFound(obj runtime.Object) { t.setObjectMeta(obj, t.namer(0)) - _, created, err := t.storage.(rest.Updater).Update(t.TestContext(), t.namer(0), rest.DefaultUpdatedObjectInfo(obj)) + _, created, err := t.storage.(rest.Updater).Update(t.TestContext(), t.namer(0), rest.DefaultUpdatedObjectInfo(obj), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if t.createOnUpdate { if err != nil { t.Errorf("creation allowed on updated, but got an error: %v", err) @@ -701,7 +701,7 @@ func (t *Tester) testUpdateRejectsMismatchedNamespace(obj runtime.Object, create objectMeta.SetName(t.namer(1)) objectMeta.SetNamespace("not-default") - obj, updated, err := t.storage.(rest.Updater).Update(t.TestContext(), "foo1", rest.DefaultUpdatedObjectInfo(storedFoo)) + obj, updated, err := t.storage.(rest.Updater).Update(t.TestContext(), "foo1", rest.DefaultUpdatedObjectInfo(storedFoo), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if obj != nil || updated { t.Errorf("expected nil object and not updated") } @@ -732,7 +732,7 @@ func (t *Tester) testUpdateIgnoreClusterName(obj runtime.Object, createFn Create olderMeta := t.getObjectMetaOrFail(older) olderMeta.SetClusterName("clustername-to-ignore") - _, _, err = t.storage.(rest.Updater).Update(t.TestContext(), olderMeta.GetName(), rest.DefaultUpdatedObjectInfo(older)) + _, _, err = t.storage.(rest.Updater).Update(t.TestContext(), olderMeta.GetName(), rest.DefaultUpdatedObjectInfo(older), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -1064,14 +1064,14 @@ func (t *Tester) testGetDifferentNamespace(obj runtime.Object) { ctx1 := genericapirequest.WithNamespace(genericapirequest.NewContext(), "bar3") objMeta.SetNamespace(genericapirequest.NamespaceValue(ctx1)) - _, err := t.storage.(rest.Creater).Create(ctx1, obj, false) + _, err := t.storage.(rest.Creater).Create(ctx1, obj, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("unexpected error: %v", err) } ctx2 := genericapirequest.WithNamespace(genericapirequest.NewContext(), "bar4") objMeta.SetNamespace(genericapirequest.NamespaceValue(ctx2)) - _, err = t.storage.(rest.Creater).Create(ctx2, obj, false) + _, err = t.storage.(rest.Creater).Create(ctx2, obj, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -1105,7 +1105,7 @@ func (t *Tester) testGetFound(obj runtime.Object) { ctx := t.TestContext() t.setObjectMeta(obj, t.namer(1)) - existing, err := t.storage.(rest.Creater).Create(ctx, obj, false) + existing, err := t.storage.(rest.Creater).Create(ctx, obj, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -1128,7 +1128,7 @@ func (t *Tester) testGetMimatchedNamespace(obj runtime.Object) { objMeta := t.getObjectMetaOrFail(obj) objMeta.SetName(t.namer(4)) objMeta.SetNamespace(genericapirequest.NamespaceValue(ctx1)) - _, err := t.storage.(rest.Creater).Create(ctx1, obj, false) + _, err := t.storage.(rest.Creater).Create(ctx1, obj, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -1147,7 +1147,7 @@ func (t *Tester) testGetMimatchedNamespace(obj runtime.Object) { func (t *Tester) testGetNotFound(obj runtime.Object) { ctx := t.TestContext() t.setObjectMeta(obj, t.namer(2)) - _, err := t.storage.(rest.Creater).Create(ctx, obj, false) + _, err := t.storage.(rest.Creater).Create(ctx, obj, rest.ValidateAllObjectFunc, false) if err != nil { t.Errorf("unexpected error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/update.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/update.go index 02b275447..aaee5800c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/update.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/update.go @@ -26,6 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/admission" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/features" utilfeature "k8s.io/apiserver/pkg/util/feature" @@ -229,3 +230,28 @@ func (i *wrappedUpdatedObjectInfo) UpdatedObject(ctx genericapirequest.Context, return newObj, nil } + +// AdmissionToValidateObjectUpdateFunc converts validating admission to a rest validate object update func +func AdmissionToValidateObjectUpdateFunc(admit admission.Interface, staticAttributes admission.Attributes) ValidateObjectUpdateFunc { + validatingAdmission, ok := admit.(admission.ValidationInterface) + if !ok { + return func(obj, old runtime.Object) error { return nil } + } + return func(obj, old runtime.Object) error { + finalAttributes := admission.NewAttributesRecord( + obj, + old, + staticAttributes.GetKind(), + staticAttributes.GetNamespace(), + staticAttributes.GetName(), + staticAttributes.GetResource(), + staticAttributes.GetSubresource(), + staticAttributes.GetOperation(), + staticAttributes.GetUserInfo(), + ) + if !validatingAdmission.Handles(finalAttributes.GetOperation()) { + return nil + } + return validatingAdmission.Validate(finalAttributes) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/zz_generated.deepcopy.go index fbc6c0558..fd5212b3f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/registry/rest/zz_generated.deepcopy.go @@ -21,23 +21,9 @@ limitations under the License. package rest import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ConnectRequest).DeepCopyInto(out.(*ConnectRequest)) - return nil - }, InType: reflect.TypeOf(&ConnectRequest{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConnectRequest) DeepCopyInto(out *ConnectRequest) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/BUILD index f0e3ac3d4..246ce68e0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/BUILD @@ -30,8 +30,10 @@ go_test( "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/discovery:go_default_library", + "//vendor/k8s.io/apiserver/pkg/endpoints/filters:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", + "//vendor/k8s.io/apiserver/pkg/server/filters:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/etcd/testing:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", @@ -77,13 +79,16 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/waitgroup:go_default_library", "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/initialization:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/apiserver/install:go_default_library", "//vendor/k8s.io/apiserver/pkg/audit:go_default_library", "//vendor/k8s.io/apiserver/pkg/audit/policy:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/config.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/config.go index 9ededc431..ac1317889 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/config.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/config.go @@ -36,6 +36,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/util/sets" + utilwaitgroup "k8s.io/apimachinery/pkg/util/waitgroup" "k8s.io/apimachinery/pkg/version" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/audit" @@ -67,7 +68,7 @@ import ( ) const ( - // DefaultLegacyAPIPrefix is where the the legacy APIs will be located. + // DefaultLegacyAPIPrefix is where the legacy APIs will be located. DefaultLegacyAPIPrefix = "/api" // APIGroupPrefix is where non-legacy API group will be located. @@ -128,6 +129,8 @@ type Config struct { // BuildHandlerChainFunc allows you to build custom handler chains by decorating the apiHandler. BuildHandlerChainFunc func(apiHandler http.Handler, c *Config) (secure http.Handler) + // HandlerChainWaitGroup allows you to wait for all chain handlers exit after the server shutdown. + HandlerChainWaitGroup *utilwaitgroup.SafeWaitGroup // DiscoveryAddresses is used to build the IPs pass to discovery. If nil, the ExternalAddress is // always reported DiscoveryAddresses discovery.Addresses @@ -236,6 +239,7 @@ func NewConfig(codecs serializer.CodecFactory) *Config { ReadWritePort: 443, RequestContextMapper: apirequest.NewRequestContextMapper(), BuildHandlerChainFunc: DefaultBuildHandlerChain, + HandlerChainWaitGroup: new(utilwaitgroup.SafeWaitGroup), LegacyAPIGroupPrefixes: sets.NewString(DefaultLegacyAPIPrefix), DisabledPostStartHooks: sets.NewString(), HealthzChecks: []healthz.HealthzChecker{healthz.PingHealthz}, @@ -446,8 +450,10 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G Serializer: c.Serializer, AuditBackend: c.AuditBackend, delegationTarget: delegationTarget, + HandlerChainWaitGroup: c.HandlerChainWaitGroup, minRequestTimeout: time.Duration(c.MinRequestTimeout) * time.Second, + ShutdownTimeout: c.RequestTimeout, SecureServingInfo: c.SecureServingInfo, ExternalAddress: c.ExternalAddress, @@ -460,6 +466,7 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G openAPIConfig: c.OpenAPIConfig, postStartHooks: map[string]postStartHookEntry{}, + preShutdownHooks: map[string]preShutdownHookEntry{}, disabledPostStartHooks: c.DisabledPostStartHooks, healthzChecks: c.HealthzChecks, @@ -473,8 +480,12 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G s.postStartHooks[k] = v } + for k, v := range delegationTarget.PreShutdownHooks() { + s.preShutdownHooks[k] = v + } + genericApiServerHookName := "generic-apiserver-start-informers" - if c.SharedInformerFactory != nil && !s.isHookRegistered(genericApiServerHookName) { + if c.SharedInformerFactory != nil && !s.isPostStartHookRegistered(genericApiServerHookName) { err := s.AddPostStartHook(genericApiServerHookName, func(context PostStartHookContext) error { c.SharedInformerFactory.Start(context.StopCh) return nil @@ -483,6 +494,7 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G return nil, err } } + for _, delegateCheck := range delegationTarget.HealthzChecks() { skip := false for _, existingCheck := range c.HealthzChecks { @@ -530,6 +542,7 @@ func DefaultBuildHandlerChain(apiHandler http.Handler, c *Config) http.Handler { handler = genericapifilters.WithAuthentication(handler, c.RequestContextMapper, c.Authenticator, failedHandler) handler = genericfilters.WithCORS(handler, c.CorsAllowedOriginList, nil, nil, nil, "true") handler = genericfilters.WithTimeoutForNonLongRunningRequests(handler, c.RequestContextMapper, c.LongRunningFunc, c.RequestTimeout) + handler = genericfilters.WithWaitGroup(handler, c.RequestContextMapper, c.LongRunningFunc, c.HandlerChainWaitGroup) handler = genericapifilters.WithRequestInfo(handler, c.RequestInfoResolver, c.RequestContextMapper) handler = apirequest.WithRequestContext(handler, c.RequestContextMapper) handler = genericfilters.WithPanicRecovery(handler) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD index a7e94dca6..bf72edc37 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD @@ -37,6 +37,7 @@ go_library( "longrunning.go", "maxinflight.go", "timeout.go", + "waitgroup.go", "wrap.go", ], importpath = "k8s.io/apiserver/pkg/server/filters", @@ -46,6 +47,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/waitgroup:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/metrics:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go index 7ae8a743a..47ed94913 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go @@ -24,7 +24,6 @@ import ( "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/endpoints/metrics" apirequest "k8s.io/apiserver/pkg/endpoints/request" - genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "github.com/golang/glog" ) @@ -46,7 +45,7 @@ func WithMaxInFlightLimit( handler http.Handler, nonMutatingLimit int, mutatingLimit int, - requestContextMapper genericapirequest.RequestContextMapper, + requestContextMapper apirequest.RequestContextMapper, longRunningRequestCheck apirequest.LongRunningRequestCheck, ) http.Handler { if nonMutatingLimit == 0 && mutatingLimit == 0 { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/waitgroup.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/waitgroup.go new file mode 100644 index 000000000..be73a2c9d --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/filters/waitgroup.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 filters + +import ( + "net/http" + + utilwaitgroup "k8s.io/apimachinery/pkg/util/waitgroup" + apirequest "k8s.io/apiserver/pkg/endpoints/request" +) + +// WithWaitGroup adds all non long-running requests to wait group, which is used for graceful shutdown. +func WithWaitGroup(handler http.Handler, requestContextMapper apirequest.RequestContextMapper, longRunning apirequest.LongRunningRequestCheck, wg *utilwaitgroup.SafeWaitGroup) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + ctx, ok := requestContextMapper.Get(req) + if !ok { + // if this happens, the handler chain isn't setup correctly because there is no context mapper + handler.ServeHTTP(w, req) + return + } + + requestInfo, ok := apirequest.RequestInfoFrom(ctx) + if !ok { + // if this happens, the handler chain isn't setup correctly because there is no request info + handler.ServeHTTP(w, req) + return + } + + if !longRunning(req, requestInfo) { + if err := wg.Add(1); err != nil { + http.Error(w, "Apisever is shutting down.", http.StatusInternalServerError) + return + } + defer wg.Done() + } + + handler.ServeHTTP(w, req) + }) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go index ad24415bc..c824719fe 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go @@ -34,6 +34,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/util/sets" + utilwaitgroup "k8s.io/apimachinery/pkg/util/waitgroup" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/audit" genericapi "k8s.io/apiserver/pkg/endpoints" @@ -70,12 +71,6 @@ type APIGroupInfo struct { NegotiatedSerializer runtime.NegotiatedSerializer // ParameterCodec performs conversions for query parameters passed to API calls ParameterCodec runtime.ParameterCodec - - // SubresourceGroupVersionKind contains the GroupVersionKind overrides for each subresource that is - // accessible from this API group version. The GroupVersionKind is that of the external version of - // the subresource. The key of this map should be the path of the subresource. The keys here should - // match the keys in the Storage map above for subresources. - SubresourceGroupVersionKind map[string]schema.GroupVersionKind } // GenericAPIServer contains state for a Kubernetes cluster api server. @@ -89,6 +84,10 @@ type GenericAPIServer struct { // minRequestTimeout is how short the request timeout can be. This is used to build the RESTHandler minRequestTimeout time.Duration + // ShutdownTimeout is the timeout used for server shutdown. This specifies the timeout before server + // gracefully shutdown returns. + ShutdownTimeout time.Duration + // legacyAPIGroupPrefixes is used to set up URL parsing for authorization and for validating requests // to InstallLegacyAPIGroup legacyAPIGroupPrefixes sets.String @@ -134,6 +133,10 @@ type GenericAPIServer struct { postStartHooksCalled bool disabledPostStartHooks sets.String + preShutdownHookLock sync.Mutex + preShutdownHooks map[string]preShutdownHookEntry + preShutdownHooksCalled bool + // healthz checks healthzLock sync.Mutex healthzChecks []healthz.HealthzChecker @@ -148,6 +151,9 @@ type GenericAPIServer struct { // delegationTarget is the next delegate in the chain or nil delegationTarget DelegationTarget + + // HandlerChainWaitGroup allows you to wait for all chain handlers finish after the server shutdown. + HandlerChainWaitGroup *utilwaitgroup.SafeWaitGroup } // DelegationTarget is an interface which allows for composition of API servers with top level handling that works @@ -163,6 +169,9 @@ type DelegationTarget interface { // PostStartHooks returns the post-start hooks that need to be combined PostStartHooks() map[string]postStartHookEntry + // PreShutdownHooks returns the pre-stop hooks that need to be combined + PreShutdownHooks() map[string]preShutdownHookEntry + // HealthzChecks returns the healthz checks that need to be combined HealthzChecks() []healthz.HealthzChecker @@ -180,6 +189,9 @@ func (s *GenericAPIServer) UnprotectedHandler() http.Handler { func (s *GenericAPIServer) PostStartHooks() map[string]postStartHookEntry { return s.postStartHooks } +func (s *GenericAPIServer) PreShutdownHooks() map[string]preShutdownHookEntry { + return s.preShutdownHooks +} func (s *GenericAPIServer) HealthzChecks() []healthz.HealthzChecker { return s.healthzChecks } @@ -205,6 +217,9 @@ func (s emptyDelegate) UnprotectedHandler() http.Handler { func (s emptyDelegate) PostStartHooks() map[string]postStartHookEntry { return map[string]postStartHookEntry{} } +func (s emptyDelegate) PreShutdownHooks() map[string]preShutdownHookEntry { + return map[string]preShutdownHookEntry{} +} func (s emptyDelegate) HealthzChecks() []healthz.HealthzChecker { return []healthz.HealthzChecker{} } @@ -253,6 +268,14 @@ func (s *GenericAPIServer) PrepareRun() preparedGenericAPIServer { // Run spawns the secure http server. It only returns if stopCh is closed // or the secure port cannot be listened on initially. func (s preparedGenericAPIServer) Run(stopCh <-chan struct{}) error { + // Register audit backend preShutdownHook. + if s.AuditBackend != nil { + s.AddPreShutdownHook("audit-backend", func() error { + s.AuditBackend.Shutdown() + return nil + }) + } + err := s.NonBlockingRun(stopCh) if err != nil { return err @@ -260,16 +283,32 @@ func (s preparedGenericAPIServer) Run(stopCh <-chan struct{}) error { <-stopCh - if s.GenericAPIServer.AuditBackend != nil { - s.GenericAPIServer.AuditBackend.Shutdown() + err = s.RunPreShutdownHooks() + if err != nil { + return err } + // Wait for all requests to finish, which are bounded by the RequestTimeout variable. + s.HandlerChainWaitGroup.Wait() + return nil } // NonBlockingRun spawns the secure http server. An error is // returned if the secure port cannot be listened on. func (s preparedGenericAPIServer) NonBlockingRun(stopCh <-chan struct{}) error { + // Use an stop channel to allow graceful shutdown without dropping audit events + // after http server shutdown. + auditStopCh := make(chan struct{}) + + // Start the audit backend before any request comes in. This means we must call Backend.Run + // before http server start serving. Otherwise the Backend.ProcessEvents call might block. + if s.AuditBackend != nil { + if err := s.AuditBackend.Run(auditStopCh); err != nil { + return fmt.Errorf("failed to run the audit backend: %v", err) + } + } + // Use an internal stop channel to allow cleanup of the listeners on error. internalStopCh := make(chan struct{}) @@ -286,16 +325,10 @@ func (s preparedGenericAPIServer) NonBlockingRun(stopCh <-chan struct{}) error { go func() { <-stopCh close(internalStopCh) + s.HandlerChainWaitGroup.Wait() + close(auditStopCh) }() - // Start the audit backend before any request comes in. This means we cannot turn it into a - // post start hook because without calling Backend.Run the Backend.ProcessEvents call might block. - if s.AuditBackend != nil { - if err := s.AuditBackend.Run(stopCh); err != nil { - return fmt.Errorf("failed to run the audit backend: %v", err) - } - } - s.RunPostStartHooks(stopCh) if _, err := systemd.SdNotify(true, "READY=1\n"); err != nil { @@ -418,9 +451,8 @@ func (s *GenericAPIServer) newAPIGroupVersion(apiGroupInfo *APIGroupInfo, groupV UnsafeConvertor: runtime.UnsafeObjectConvertor(apiGroupInfo.Scheme), Defaulter: apiGroupInfo.Scheme, Typer: apiGroupInfo.Scheme, - SubresourceGroupVersionKind: apiGroupInfo.SubresourceGroupVersionKind, - Linker: apiGroupInfo.GroupMeta.SelfLinker, - Mapper: apiGroupInfo.GroupMeta.RESTMapper, + Linker: apiGroupInfo.GroupMeta.SelfLinker, + Mapper: apiGroupInfo.GroupMeta.RESTMapper, Admit: s.admissionControl, Context: s.RequestContextMapper(), diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go index 54a6540fd..e188ef9b4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go @@ -25,6 +25,8 @@ import ( "net/http" "net/http/httptest" goruntime "runtime" + "strconv" + "sync" "testing" "time" @@ -44,8 +46,10 @@ import ( "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" "k8s.io/apiserver/pkg/endpoints/discovery" - genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + genericapifilters "k8s.io/apiserver/pkg/endpoints/filters" + apirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" + genericfilters "k8s.io/apiserver/pkg/server/filters" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes/fake" @@ -84,11 +88,11 @@ func testGetOpenAPIDefinitions(ref openapi.ReferenceCallback) map[string]openapi // setUp is a convience function for setting up for (most) tests. func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, *assert.Assertions) { - etcdServer, _ := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, scheme) + etcdServer, _ := etcdtesting.NewUnsecuredEtcd3TestClientServer(t) config := NewConfig(codecs) config.PublicAddress = net.ParseIP("192.168.10.4") - config.RequestContextMapper = genericapirequest.NewRequestContextMapper() + config.RequestContextMapper = apirequest.NewRequestContextMapper() config.LegacyAPIGroupPrefixes = sets.NewString("/api") config.LoopbackClientConfig = &restclient.Config{} @@ -437,9 +441,9 @@ type mockAuthorizer struct { lastURI string } -func (authz *mockAuthorizer) Authorize(a authorizer.Attributes) (authorized bool, reason string, err error) { +func (authz *mockAuthorizer) Authorize(a authorizer.Attributes) (authorized authorizer.Decision, reason string, err error) { authz.lastURI = a.GetPath() - return true, "", nil + return authorizer.DecisionAllow, "", nil } type mockAuthenticator struct { @@ -479,7 +483,7 @@ func (p *testGetterStorage) New() runtime.Object { } } -func (p *testGetterStorage) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { +func (p *testGetterStorage) Get(ctx apirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { return nil, nil } @@ -509,3 +513,75 @@ func fakeVersion() version.Info { Platform: fmt.Sprintf("%s/%s", goruntime.GOOS, goruntime.GOARCH), } } + +// TestGracefulShutdown verifies server shutdown after request handler finish. +func TestGracefulShutdown(t *testing.T) { + etcdserver, config, _ := setUp(t) + defer etcdserver.Terminate(t) + + var graceShutdown bool + wg := sync.WaitGroup{} + wg.Add(1) + + config.BuildHandlerChainFunc = func(apiHandler http.Handler, c *Config) http.Handler { + handler := genericfilters.WithWaitGroup(apiHandler, c.RequestContextMapper, c.LongRunningFunc, c.HandlerChainWaitGroup) + handler = genericapifilters.WithRequestInfo(handler, c.RequestInfoResolver, c.RequestContextMapper) + handler = apirequest.WithRequestContext(handler, c.RequestContextMapper) + return handler + } + + handler := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + wg.Done() + time.Sleep(2 * time.Second) + w.WriteHeader(http.StatusOK) + graceShutdown = true + }) + + s, err := config.Complete(nil).New("test", EmptyDelegate) + if err != nil { + t.Fatalf("Error in bringing up the server: %v", err) + } + + s.Handler.NonGoRestfulMux.Handle("/test", handler) + + insecureServer := &http.Server{ + Addr: "0.0.0.0:0", + Handler: s.Handler, + } + stopCh := make(chan struct{}) + serverPort, err := RunServer(insecureServer, "tcp", 10*time.Second, stopCh) + if err != nil { + t.Errorf("RunServer err: %v", err) + } + + graceCh := make(chan struct{}) + // mock a client request + go func() { + resp, err := http.Get("http://127.0.0.1:" + strconv.Itoa(serverPort) + "/test") + if err != nil { + t.Errorf("Unexpected http error: %v", err) + } + if resp.StatusCode != http.StatusOK { + t.Errorf("Unexpected http status code: %v", resp.StatusCode) + } + close(graceCh) + }() + + // close stopCh after request sent to server to guarantee request handler is running. + wg.Wait() + close(stopCh) + // wait for wait group handler finish + s.HandlerChainWaitGroup.Wait() + + // check server all handlers finished. + if !graceShutdown { + t.Errorf("server shutdown not gracefully.") + } + // check client to make sure receive response. + select { + case <-graceCh: + t.Logf("server shutdown gracefully.") + case <-time.After(30 * time.Second): + t.Errorf("Timed out waiting for response.") + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/handler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/handler.go index 48d1408a4..5368e2e0f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/handler.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/handler.go @@ -62,7 +62,7 @@ type APIServerHandler struct { // which we don't fit into and it still muddies up swagger. Trying to switch the webservices into a route doesn't work because the // containing webservice faces all the same problems listed above. // This leads to the crazy thing done here. Our mux does what we need, so we'll place it in front of gorestful. It will introspect to - // decide if the the route is likely to be handled by goresful and route there if needed. Otherwise, it goes to PostGoRestful mux in + // decide if the route is likely to be handled by goresful and route there if needed. Otherwise, it goes to PostGoRestful mux in // order to handle "normal" paths and delegation. Hopefully no API consumers will ever have to deal with this level of detail. I think // we should consider completely removing gorestful. // Other servers should only use this opaquely to delegate to an API server. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz.go index d5dbb5ccd..bd8bfe7b5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz.go @@ -106,9 +106,10 @@ func handleRootHealthz(checks ...HealthzChecker) http.HandlerFunc { failed := false var verboseOut bytes.Buffer for _, check := range checks { - if check.Check(r) != nil { + if err := check.Check(r); err != nil { // don't include the error since this endpoint is public. If someone wants more detail // they should have explicit permission to the detailed checks. + glog.V(6).Infof("healthz check %v failed: %v", check.Name(), err) fmt.Fprintf(&verboseOut, "[-]%v failed: reason withheld\n", check.Name()) failed = true } else { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/hooks.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/hooks.go index a190f5622..ccf8ee17a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/hooks.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/hooks.go @@ -23,6 +23,7 @@ import ( "github.com/golang/glog" + utilerrors "k8s.io/apimachinery/pkg/util/errors" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apiserver/pkg/server/healthz" restclient "k8s.io/client-go/rest" @@ -39,6 +40,9 @@ import ( // until it becomes easier to use. type PostStartHookFunc func(context PostStartHookContext) error +// PreShutdownHookFunc is a function that can be added to the shutdown logic. +type PreShutdownHookFunc func() error + // PostStartHookContext provides information about this API server to a PostStartHookFunc type PostStartHookContext struct { // LoopbackClientConfig is a config for a privileged loopback connection to the API server @@ -59,6 +63,10 @@ type postStartHookEntry struct { done chan struct{} } +type preShutdownHookEntry struct { + hook PreShutdownHookFunc +} + // AddPostStartHook allows you to add a PostStartHook. func (s *GenericAPIServer) AddPostStartHook(name string, hook PostStartHookFunc) error { if len(name) == 0 { @@ -97,6 +105,37 @@ func (s *GenericAPIServer) AddPostStartHookOrDie(name string, hook PostStartHook } } +// AddPreShutdownHook allows you to add a PreShutdownHook. +func (s *GenericAPIServer) AddPreShutdownHook(name string, hook PreShutdownHookFunc) error { + if len(name) == 0 { + return fmt.Errorf("missing name") + } + if hook == nil { + return nil + } + + s.preShutdownHookLock.Lock() + defer s.preShutdownHookLock.Unlock() + + if s.preShutdownHooksCalled { + return fmt.Errorf("unable to add %q because PreShutdownHooks have already been called", name) + } + if _, exists := s.preShutdownHooks[name]; exists { + return fmt.Errorf("unable to add %q because it is already registered", name) + } + + s.preShutdownHooks[name] = preShutdownHookEntry{hook: hook} + + return nil +} + +// AddPreShutdownHookOrDie allows you to add a PostStartHook, but dies on failure +func (s *GenericAPIServer) AddPreShutdownHookOrDie(name string, hook PreShutdownHookFunc) { + if err := s.AddPreShutdownHook(name, hook); err != nil { + glog.Fatalf("Error registering PreShutdownHook %q: %v", name, err) + } +} + // RunPostStartHooks runs the PostStartHooks for the server func (s *GenericAPIServer) RunPostStartHooks(stopCh <-chan struct{}) { s.postStartHookLock.Lock() @@ -113,8 +152,24 @@ func (s *GenericAPIServer) RunPostStartHooks(stopCh <-chan struct{}) { } } -// isHookRegistered checks whether a given hook is registered -func (s *GenericAPIServer) isHookRegistered(name string) bool { +// RunPreShutdownHooks runs the PreShutdownHooks for the server +func (s *GenericAPIServer) RunPreShutdownHooks() error { + var errorList []error + + s.preShutdownHookLock.Lock() + defer s.preShutdownHookLock.Unlock() + s.preShutdownHooksCalled = true + + for hookName, hookEntry := range s.preShutdownHooks { + if err := runPreShutdownHook(hookName, hookEntry); err != nil { + errorList = append(errorList, err) + } + } + return utilerrors.NewAggregate(errorList) +} + +// isPostStartHookRegistered checks whether a given PostStartHook is registered +func (s *GenericAPIServer) isPostStartHookRegistered(name string) bool { s.postStartHookLock.Lock() defer s.postStartHookLock.Unlock() _, exists := s.postStartHooks[name] @@ -135,6 +190,19 @@ func runPostStartHook(name string, entry postStartHookEntry, context PostStartHo close(entry.done) } +func runPreShutdownHook(name string, entry preShutdownHookEntry) error { + var err error + func() { + // don't let the hook *accidentally* panic and kill the server + defer utilruntime.HandleCrash() + err = entry.hook() + }() + if err != nil { + return fmt.Errorf("PreShutdownHook %q failed: %v", name, err) + } + return nil +} + // postStartHookHealthz implements a healthz check for poststarthooks. It will return a "hookNotFinished" // error until the poststarthook is finished. type postStartHookHealthz struct { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/BUILD index 2fe0d4652..0d72e6a80 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/BUILD @@ -32,6 +32,7 @@ go_library( "//vendor/k8s.io/apiserver/pkg/admission/initializer:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/initialization:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle:go_default_library", + "//vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/validating:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1:go_default_library", "//vendor/k8s.io/apiserver/pkg/audit:go_default_library", "//vendor/k8s.io/apiserver/pkg/audit/policy:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/admission.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/admission.go index 1c23d3e2f..c5ed7f9b8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/admission.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/admission.go @@ -26,6 +26,7 @@ import ( "k8s.io/apiserver/pkg/admission/initializer" "k8s.io/apiserver/pkg/admission/plugin/initialization" "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle" + validatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/validating" "k8s.io/apiserver/pkg/server" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes" @@ -55,8 +56,8 @@ func NewAdmissionOptions() *AdmissionOptions { options := &AdmissionOptions{ Plugins: &admission.Plugins{}, PluginNames: []string{}, - RecommendedPluginOrder: []string{lifecycle.PluginName, initialization.PluginName}, - DefaultOffPlugins: []string{initialization.PluginName}, + RecommendedPluginOrder: []string{lifecycle.PluginName, initialization.PluginName, validatingwebhook.PluginName}, + DefaultOffPlugins: []string{initialization.PluginName, validatingwebhook.PluginName}, } server.RegisterAllAdmissionPlugins(options.Plugins) return options @@ -80,9 +81,7 @@ func (a *AdmissionOptions) AddFlags(fs *pflag.FlagSet) { func (a *AdmissionOptions) ApplyTo( c *server.Config, informers informers.SharedInformerFactory, - serverIdentifyingClientCert []byte, - serverIdentifyingClientKey []byte, - clientConfig *rest.Config, + kubeAPIServerClientConfig *rest.Config, scheme *runtime.Scheme, pluginInitializers ...admission.PluginInitializer, ) error { @@ -96,14 +95,11 @@ func (a *AdmissionOptions) ApplyTo( return fmt.Errorf("failed to read plugin config: %v", err) } - clientset, err := kubernetes.NewForConfig(clientConfig) - if err != nil { - return err - } - genericInitializer, err := initializer.New(clientset, informers, c.Authorizer, serverIdentifyingClientCert, serverIdentifyingClientKey, scheme) + clientset, err := kubernetes.NewForConfig(kubeAPIServerClientConfig) if err != nil { return err } + genericInitializer := initializer.New(clientset, informers, c.Authorizer, scheme) initializersChain := admission.PluginInitializers{} pluginInitializers = append(pluginInitializers, genericInitializer) initializersChain = append(initializersChain, pluginInitializers...) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/plugins.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/plugins.go index c54a4f41d..54cd53961 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/plugins.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/plugins.go @@ -21,10 +21,12 @@ import ( "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission/plugin/initialization" "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle" + validatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/validating" ) // RegisterAllAdmissionPlugins registers all admission plugins func RegisterAllAdmissionPlugins(plugins *admission.Plugins) { lifecycle.Register(plugins) initialization.Register(plugins) + validatingwebhook.Register(plugins) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/serve.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/serve.go index 90f4078c7..f7d9f9023 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/serve.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/serve.go @@ -17,6 +17,7 @@ limitations under the License. package server import ( + "context" "crypto/tls" "crypto/x509" "fmt" @@ -84,13 +85,13 @@ func (s *GenericAPIServer) serveSecurely(stopCh <-chan struct{}) error { glog.Infof("Serving securely on %s", s.SecureServingInfo.BindAddress) var err error - s.effectiveSecurePort, err = RunServer(secureServer, s.SecureServingInfo.BindNetwork, stopCh) + s.effectiveSecurePort, err = RunServer(secureServer, s.SecureServingInfo.BindNetwork, s.ShutdownTimeout, stopCh) return err } // RunServer listens on the given port, then spawns a go-routine continuously serving // until the stopCh is closed. The port is returned. This function does not block. -func RunServer(server *http.Server, network string, stopCh <-chan struct{}) (int, error) { +func RunServer(server *http.Server, network string, shutDownTimeout time.Duration, stopCh <-chan struct{}) (int, error) { if len(server.Addr) == 0 { return 0, errors.New("address cannot be empty") } @@ -111,10 +112,12 @@ func RunServer(server *http.Server, network string, stopCh <-chan struct{}) (int return 0, fmt.Errorf("invalid listen address: %q", ln.Addr().String()) } - // Stop the server by closing the listener + // Shutdown server gracefully. go func() { <-stopCh - ln.Close() + ctx, cancel := context.WithTimeout(context.Background(), shutDownTimeout) + server.Shutdown(ctx) + cancel() }() go func() { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/cacher.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/cacher.go index 66bb1912b..e3c787d08 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/cacher.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/cacher.go @@ -649,7 +649,15 @@ func (c *Cacher) isStopped() bool { } func (c *Cacher) Stop() { + // avoid stopping twice (note: cachers are shared with subresources) + if c.isStopped() { + return + } c.stopLock.Lock() + if c.stopped { + // avoid that it was locked meanwhile as isStopped only read-locks + return + } c.stopped = true c.stopLock.Unlock() close(c.stopCh) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD index aa47014bc..ac48442e5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD @@ -20,7 +20,6 @@ go_library( "//vendor/github.com/coreos/etcd/pkg/types:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/etcd/etcdtest:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/utils.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/utils.go index bdbb39781..6ab310b60 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/utils.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/utils.go @@ -27,7 +27,6 @@ import ( "testing" "time" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/storage/etcd/etcdtest" "k8s.io/apiserver/pkg/storage/etcd/testing/testingcert" @@ -311,7 +310,7 @@ func NewUnsecuredEtcdTestClientServer(t *testing.T) *EtcdTestServer { } // NewEtcd3TestClientServer creates a new client and server for testing -func NewUnsecuredEtcd3TestClientServer(t *testing.T, scheme *runtime.Scheme) (*EtcdTestServer, *storagebackend.Config) { +func NewUnsecuredEtcd3TestClientServer(t *testing.T) (*EtcdTestServer, *storagebackend.Config) { server := &EtcdTestServer{ v3Cluster: integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}), } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go index b0acc8401..2350a5526 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go @@ -332,8 +332,11 @@ func (s *store) GuaranteedUpdate( if err != nil { return err } - mustCheckData = false - continue + if !bytes.Equal(data, origState.data) { + // original data changed, restart loop + mustCheckData = false + continue + } } return decode(s.codec, s.versioner, origState.data, out, origState.rev) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD index 2c9e70638..37c0195ec 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD @@ -18,7 +18,6 @@ go_library( "//vendor/golang.org/x/net/context:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/testing/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/testing/zz_generated.deepcopy.go index fb187dfad..bbd0846f4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/testing/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/testing/zz_generated.deepcopy.go @@ -21,23 +21,9 @@ limitations under the License. package testing import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestResource).DeepCopyInto(out.(*TestResource)) - return nil - }, InType: reflect.TypeOf(&TestResource{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TestResource) DeepCopyInto(out *TestResource) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/tests/cacher_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/tests/cacher_test.go index fcd656ab6..b900babf1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/tests/cacher_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/tests/cacher_test.go @@ -92,7 +92,7 @@ func AddObjectMetaFieldsSet(source fields.Set, objectMeta *metav1.ObjectMeta, ha } func newEtcdTestStorage(t *testing.T, prefix string) (*etcdtesting.EtcdTestServer, storage.Interface) { - server, _ := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, scheme) + server, _ := etcdtesting.NewUnsecuredEtcd3TestClientServer(t) storage := etcd3.New(server.V3Client, apitesting.TestCodec(codecs, examplev1.SchemeGroupVersion), prefix, value.IdentityTransformer, true) return server, storage } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/secretbox.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/secretbox.go index f53aa2c37..0eaa62824 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/secretbox.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/secretbox.go @@ -27,7 +27,7 @@ import ( ) // secretbox implements at rest encryption of the provided values given a 32 byte secret key. -// Uses a standard 24 byte nonce (placed at the the beginning of the cipher text) generated +// Uses a standard 24 byte nonce (placed at the beginning of the cipher text) generated // from crypto/rand. Does not perform authentication of the data at rest. type secretboxTransformer struct { key [32]byte diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD index 274da4786..9bf629d1a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD @@ -9,6 +9,7 @@ load( go_test( name = "go_default_test", srcs = [ + "colon_separated_multimap_string_string_test.go", "map_string_bool_test.go", "namedcertkey_flag_test.go", ], @@ -24,6 +25,7 @@ go_test( go_library( name = "go_default_library", srcs = [ + "colon_separated_multimap_string_string.go", "configuration_map.go", "flags.go", "map_string_bool.go", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string.go new file mode 100644 index 000000000..638f4ae95 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string.go @@ -0,0 +1,80 @@ +/* +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 flag + +import ( + "fmt" + "sort" + "strings" +) + +// ColonSeparatedMultimapStringString supports setting a map[string][]string from an encoding +// that separates keys from values with ':' and separates key-value pairs with ','. +// A key can be repeated multiple times, in which case the values are appended to a +// slice of strings associated with that key. Items in the list associated with a given +// key will appear in the order provided. +// For example: `a:hello,b:again,c:world,b:beautiful` results in `{"a": ["hello"], "b": ["again", "beautiful"], "c": ["world"]}` +type ColonSeparatedMultimapStringString map[string][]string + +// Set implements github.com/spf13/pflag.Value +func (m ColonSeparatedMultimapStringString) Set(value string) error { + // clear old values + for k := range m { + delete(m, k) + } + for _, pair := range strings.Split(value, ",") { + if len(pair) == 0 { + continue + } + kv := strings.SplitN(pair, ":", 2) + if len(kv) != 2 { + return fmt.Errorf("malformed pair, expect string:string") + } + k := strings.TrimSpace(kv[0]) + v := strings.TrimSpace(kv[1]) + m[k] = append(m[k], v) + } + return nil +} + +// String implements github.com/spf13/pflag.Value +func (m ColonSeparatedMultimapStringString) String() string { + type kv struct { + k string + v string + } + kvs := make([]kv, 0, len(m)) + for k, vs := range m { + for i := range vs { + kvs = append(kvs, kv{k: k, v: vs[i]}) + } + } + // stable sort by keys, order of values should be preserved + sort.SliceStable(kvs, func(i, j int) bool { + return kvs[i].k < kvs[j].k + }) + pairs := make([]string, 0, len(kvs)) + for i := range kvs { + pairs = append(pairs, fmt.Sprintf("%s:%s", kvs[i].k, kvs[i].v)) + } + return strings.Join(pairs, ",") +} + +// Type implements github.com/spf13/pflag.Value +func (m ColonSeparatedMultimapStringString) Type() string { + return "colonSeparatedMultimapStringString" +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string_test.go new file mode 100644 index 000000000..c7b162935 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/flag/colon_separated_multimap_string_string_test.go @@ -0,0 +1,126 @@ +/* +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 flag + +import ( + "reflect" + "testing" +) + +func TestStringColonSeparatedMultimapStringString(t *testing.T) { + cases := []struct { + desc string + m ColonSeparatedMultimapStringString + expect string + }{ + {"empty", ColonSeparatedMultimapStringString{}, ""}, + {"empty key", ColonSeparatedMultimapStringString{"": []string{"foo"}}, ":foo"}, + {"one key", ColonSeparatedMultimapStringString{"one": []string{"foo"}}, "one:foo"}, + {"two keys", ColonSeparatedMultimapStringString{"one": []string{"foo"}, "two": []string{"bar"}}, "one:foo,two:bar"}, + {"two keys, multiple items in one key", ColonSeparatedMultimapStringString{"one": []string{"foo", "baz"}, "two": []string{"bar"}}, "one:foo,one:baz,two:bar"}, + {"three keys, multiple items in one key", ColonSeparatedMultimapStringString{"a": []string{"hello"}, "b": []string{"again", "beautiful"}, "c": []string{"world"}}, "a:hello,b:again,b:beautiful,c:world"}, + } + for _, c := range cases { + t.Run(c.desc, func(t *testing.T) { + str := c.m.String() + if c.expect != str { + t.Fatalf("expect %q but got %q", c.expect, str) + } + }) + } +} + +func TestSetColonSeparatedMultimapStringString(t *testing.T) { + cases := []struct { + desc string + val string + expect ColonSeparatedMultimapStringString + err string + }{ + {"empty", "", ColonSeparatedMultimapStringString{}, ""}, + {"empty key", ":foo", ColonSeparatedMultimapStringString{ + "": []string{"foo"}, + }, ""}, + {"one key", "one:foo", ColonSeparatedMultimapStringString{ + "one": []string{"foo"}}, ""}, + {"two keys", "one:foo,two:bar", ColonSeparatedMultimapStringString{ + "one": []string{"foo"}, + "two": []string{"bar"}, + }, ""}, + {"two keys with space", "one:foo, two:bar", ColonSeparatedMultimapStringString{ + "one": []string{"foo"}, + "two": []string{"bar"}, + }, ""}, + {"two keys, multiple items in one key", "one: foo, two:bar, one:baz", ColonSeparatedMultimapStringString{ + "one": []string{"foo", "baz"}, + "two": []string{"bar"}, + }, ""}, + {"three keys, multiple items in one key", "a:hello,b:again,c:world,b:beautiful", ColonSeparatedMultimapStringString{ + "a": []string{"hello"}, + "b": []string{"again", "beautiful"}, + "c": []string{"world"}, + }, ""}, + {"missing value", "one", ColonSeparatedMultimapStringString{}, "malformed pair, expect string:string"}, + } + + for _, c := range cases { + t.Run(c.desc, func(t *testing.T) { + // we initialize the map with a default key that should be cleared by Set (no test cases specify "default") + m := ColonSeparatedMultimapStringString{"default": []string{}} + err := m.Set(c.val) + if c.err != "" { + if err.Error() != c.err { + t.Fatalf("expect error %s but got %v", c.err, err) + } + return + } else if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if !reflect.DeepEqual(c.expect, m) { + t.Fatalf("expect %#v but got %#v", c.expect, m) + } + }) + } +} + +func TestRoundTripColonSeparatedMultimapStringString(t *testing.T) { + cases := []struct { + desc string + val string + expect string + }{ + {"empty", "", ""}, + {"empty key", ":foo", ":foo"}, + {"one key", "one:foo", "one:foo"}, + {"two keys", "one:foo,two:bar", "one:foo,two:bar"}, + {"two keys, multiple items in one key", "one:foo, two:bar, one:baz", "one:foo,one:baz,two:bar"}, + {"three keys, multiple items in one key", "a:hello,b:again,c:world,b:beautiful", "a:hello,b:again,b:beautiful,c:world"}, + } + + for _, c := range cases { + t.Run(c.desc, func(t *testing.T) { + m := ColonSeparatedMultimapStringString{} + if err := m.Set(c.val); err != nil { + t.Fatalf("unexpected error: %v", err) + } + str := m.String() + if c.expect != str { + t.Fatalf("expect %q but got %q", c.expect, str) + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD index 1f40526e9..e3624b96b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD @@ -16,6 +16,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook.go index 3dc241813..563a6eced 100755 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook.go @@ -27,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" @@ -104,17 +105,14 @@ func WithExponentialBackoff(initialBackoff time.Duration, webhookFn func() error var err error wait.ExponentialBackoff(backoff, func() (bool, error) { err = webhookFn() - // these errors indicate a need to retry an authentication check - if apierrors.IsServerTimeout(err) || apierrors.IsTimeout(err) || apierrors.IsTooManyRequests(err) { + // these errors indicate a transient error that should be retried. + if net.IsConnectionReset(err) || apierrors.IsInternalError(err) || apierrors.IsTimeout(err) || apierrors.IsTooManyRequests(err) { return false, nil } // if the error sends the Retry-After header, we respect it as an explicit confirmation we should retry. if _, shouldRetry := apierrors.SuggestsClientDelay(err); shouldRetry { return false, nil } - if apierrors.IsInternalError(err) { - return false, nil - } if err != nil { return false, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go index 890845cae..e9efac307 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go @@ -50,6 +50,7 @@ type WebhookAuthorizer struct { authorizedTTL time.Duration unauthorizedTTL time.Duration initialBackoff time.Duration + decisionOnError authorizer.Decision } // NewFromInterface creates a WebhookAuthorizer using the given subjectAccessReview client @@ -93,6 +94,7 @@ func newWithBackoff(subjectAccessReview authorizationclient.SubjectAccessReviewI authorizedTTL: authorizedTTL, unauthorizedTTL: unauthorizedTTL, initialBackoff: initialBackoff, + decisionOnError: authorizer.DecisionNoOpinion, }, nil } @@ -140,7 +142,10 @@ func newWithBackoff(subjectAccessReview authorizationclient.SubjectAccessReviewI // } // } // -func (w *WebhookAuthorizer) Authorize(attr authorizer.Attributes) (authorized bool, reason string, err error) { +// TODO(mikedanese): We should eventually support failing closed when we +// encounter an error. We are failing open now to preserve backwards compatible +// behavior. +func (w *WebhookAuthorizer) Authorize(attr authorizer.Attributes) (decision authorizer.Decision, reason string, err error) { r := &authorization.SubjectAccessReview{} if user := attr.GetUser(); user != nil { r.Spec = authorization.SubjectAccessReviewSpec{ @@ -169,7 +174,7 @@ func (w *WebhookAuthorizer) Authorize(attr authorizer.Attributes) (authorized bo } key, err := json.Marshal(r.Spec) if err != nil { - return false, "", err + return w.decisionOnError, "", err } if entry, ok := w.responseCache.Get(string(key)); ok { r.Status = entry.(authorization.SubjectAccessReviewStatus) @@ -185,7 +190,7 @@ func (w *WebhookAuthorizer) Authorize(attr authorizer.Attributes) (authorized bo if err != nil { // An error here indicates bad configuration or an outage. Log for debugging. glog.Errorf("Failed to make webhook authorizer request: %v", err) - return false, "", err + return w.decisionOnError, "", err } r.Status = result.Status if r.Status.Allowed { @@ -194,7 +199,17 @@ func (w *WebhookAuthorizer) Authorize(attr authorizer.Attributes) (authorized bo w.responseCache.Add(string(key), r.Status, w.unauthorizedTTL) } } - return r.Status.Allowed, r.Status.Reason, nil + switch { + case r.Status.Denied && r.Status.Allowed: + return authorizer.DecisionDeny, r.Status.Reason, fmt.Errorf("webhook subject access review returned both allow and deny response") + case r.Status.Denied: + return authorizer.DecisionDeny, r.Status.Reason, nil + case r.Status.Allowed: + return authorizer.DecisionAllow, r.Status.Reason, nil + default: + return authorizer.DecisionNoOpinion, r.Status.Reason, nil + } + } //TODO: need to finish the method to get the rules when using webhook mode diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook_test.go index 4f5bd2331..f637af6f2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook_test.go @@ -396,13 +396,13 @@ func TestTLSConfig(t *testing.T) { // Allow all and see if we get an error. service.Allow() - authorized, _, err := wh.Authorize(attr) + decision, _, err := wh.Authorize(attr) if tt.wantAuth { - if !authorized { + if decision != authorizer.DecisionAllow { t.Errorf("expected successful authorization") } } else { - if authorized { + if decision == authorizer.DecisionAllow { t.Errorf("expected failed authorization") } } @@ -418,7 +418,7 @@ func TestTLSConfig(t *testing.T) { } service.Deny() - if authorized, _, _ := wh.Authorize(attr); authorized { + if decision, _, _ := wh.Authorize(attr); decision == authorizer.DecisionAllow { t.Errorf("%s: incorrectly authorized with DenyAll policy", tt.test) } }() @@ -522,11 +522,11 @@ func TestWebhook(t *testing.T) { } for i, tt := range tests { - authorized, _, err := wh.Authorize(tt.attr) + decision, _, err := wh.Authorize(tt.attr) if err != nil { t.Fatal(err) } - if !authorized { + if decision != authorizer.DecisionAllow { t.Errorf("case %d: authorization failed", i) continue } @@ -567,7 +567,7 @@ func testWebhookCacheCases(t *testing.T, serv *mockService, wh *WebhookAuthorize continue } - if test.expectedAuthorized != authorized { + if test.expectedAuthorized != (authorized == authorizer.DecisionAllow) { t.Errorf("%d: expected authorized=%v, got %v", i, test.expectedAuthorized, authorized) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/Godeps/Godeps.json index 8216e65bd..476fdb028 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/client-go", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "./..." @@ -16,19 +16,19 @@ }, { "ImportPath": "github.com/Azure/go-autorest/autorest", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/adal", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/azure", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/date", - "Rev": "58f6f26e200fa5dfb40c9cd1c83f3e2c860d779d" + "Rev": "e14a70c556c8e0db173358d1a903dca345a8e75e" }, { "ImportPath": "github.com/PuerkitoBio/purell", @@ -132,23 +132,23 @@ }, { "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/any", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/duration", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/google/btree", @@ -172,31 +172,31 @@ }, { "ImportPath": "github.com/gophercloud/gophercloud", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/utils", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gophercloud/gophercloud/pagination", - "Rev": "b4c2377fa77951a0e08163f52dc9b3e206355194" + "Rev": "443743e88335413103dcf1997e46d401b264fbcd" }, { "ImportPath": "github.com/gregjones/httpcache", @@ -470,6 +470,10 @@ "ImportPath": "k8s.io/api/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/api/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -490,14 +494,34 @@ "ImportPath": "k8s.io/apimachinery/pkg/api/resource", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/testing", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -672,7 +696,7 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/discovery/fake/discovery.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/discovery/fake/discovery.go index 13ccebfa7..984a0ba1e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/discovery/fake/discovery.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/discovery/fake/discovery.go @@ -68,7 +68,44 @@ func (c *FakeDiscovery) ServerPreferredNamespacedResources() ([]*metav1.APIResou } func (c *FakeDiscovery) ServerGroups() (*metav1.APIGroupList, error) { - return nil, nil + action := testing.ActionImpl{ + Verb: "get", + Resource: schema.GroupVersionResource{Resource: "group"}, + } + c.Invokes(action, nil) + + groups := map[string]*metav1.APIGroup{} + + for _, res := range c.Resources { + gv, err := schema.ParseGroupVersion(res.GroupVersion) + if err != nil { + return nil, err + } + group := groups[gv.Group] + if group == nil { + group = &metav1.APIGroup{ + Name: gv.Group, + PreferredVersion: metav1.GroupVersionForDiscovery{ + GroupVersion: res.GroupVersion, + Version: gv.Version, + }, + } + groups[gv.Group] = group + } + + group.Versions = append(group.Versions, metav1.GroupVersionForDiscovery{ + GroupVersion: res.GroupVersion, + Version: gv.Version, + }) + } + + list := &metav1.APIGroupList{} + for _, apiGroup := range groups { + list.Groups = append(list.Groups, *apiGroup) + } + + return list, nil + } func (c *FakeDiscovery) ServerVersion() (*version.Info, error) { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/discovery/helper_blackbox_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/discovery/helper_blackbox_test.go index b3cf2591f..9cd85cb16 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/discovery/helper_blackbox_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/discovery/helper_blackbox_test.go @@ -28,7 +28,6 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - uapi "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/sets" @@ -87,7 +86,7 @@ func TestServerSupportsVersion(t *testing.T) { NegotiatedSerializer: scheme.Codecs, Resp: &http.Response{ StatusCode: test.statusCode, - Body: objBody(&uapi.APIVersions{Versions: test.serverVersions}), + Body: objBody(&metav1.APIVersions{Versions: test.serverVersions}), }, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { if test.sendErr != nil { @@ -95,7 +94,7 @@ func TestServerSupportsVersion(t *testing.T) { } header := http.Header{} header.Set("Content-Type", runtime.ContentTypeJSON) - return &http.Response{StatusCode: test.statusCode, Header: header, Body: objBody(&uapi.APIVersions{Versions: test.serverVersions})}, nil + return &http.Response{StatusCode: test.statusCode, Header: header, Body: objBody(&metav1.APIVersions{Versions: test.serverVersions})}, nil }), } c := discovery.NewDiscoveryClientForConfigOrDie(&restclient.Config{}) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/dynamic/client_pool.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/dynamic/client_pool.go index 728c1c2e0..a5e1b2978 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/dynamic/client_pool.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/dynamic/client_pool.go @@ -56,7 +56,7 @@ type clientPoolImpl struct { mapper meta.RESTMapper } -// NewClientPool returns a ClientPool from the specified config. It reuses clients for the the same +// NewClientPool returns a ClientPool from the specified config. It reuses clients for the same // group version. It is expected this type may be wrapped by specific logic that special cases certain // resources or groups. func NewClientPool(config *restclient.Config, mapper meta.RESTMapper, apiPathResolverFunc APIPathResolverFunc) ClientPool { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD index 106adfe44..741403b31 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD @@ -19,10 +19,11 @@ go_library( deps = [ "//vendor/k8s.io/api/apps/v1beta1: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/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", + "//vendor/k8s.io/client-go/util/homedir:go_default_library", + "//vendor/k8s.io/client-go/util/retry:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/README.md index 6b7ed4eac..e9c11a935 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/README.md +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/README.md @@ -22,6 +22,8 @@ go build -o ./app Now, run this application on your workstation with your local kubeconfig file: ``` +./app +# or specify a kubeconfig file with flag ./app -kubeconfig=$HOME/.kube/config ``` @@ -30,13 +32,19 @@ Running this command will execute the following operations on your cluster: 1. **Create Deployment:** This will create a 2 replica Deployment. Verify with `kubectl get pods`. 2. **Update Deployment:** This will update the Deployment resource created in - previous step to set the replica count to 1 and add annotations. You are - encouraged to inspect the retry loop that handles conflicts. Verify the new - replica count and `foo=bar` annotation with `kubectl describe deployment - demo`. -3. **List Deployments:** This will retrieve Deployments in the `default` + previous step by setting the replica count to 1 and changing the container + image to `nginx:1.13`. You are encouraged to inspect the retry loop that + handles conflicts. Verify the new replica count and container image with + `kubectl describe deployment demo`. +3. **Rollback Deployment:** This will rollback the Deployment to the last + revision. In this case, it's the revision that was created in Step 1. + Use `kubectl describe` to verify the container image is now `nginx:1.12`. + Also note that the Deployment's replica count is still 1; this is because a + Deployment revision is created if and only if the Deployment's pod template + (`.spec.template`) is changed. +4. **List Deployments:** This will retrieve Deployments in the `default` namespace and print their names and replica counts. -4. **Delete Deployment:** This will delete the Deployment object and its +5. **Delete Deployment:** This will delete the Deployment object and its dependent ReplicaSet resource. Verify with `kubectl get deployments`. Each step is separated by an interactive prompt. You must hit the @@ -55,6 +63,10 @@ Updating deployment... Updated deployment... -> Press Return key to continue. +Rolling back deployment... +Rolled back deployment... +-> Press Return key to continue. + Listing deployments in namespace "default": * demo-deployment (1 replicas) -> Press Return key to continue. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/main.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/main.go index 722a39458..f6d622745 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/main.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/main.go @@ -22,23 +22,28 @@ import ( "flag" "fmt" "os" + "path/filepath" appsv1beta1 "k8s.io/api/apps/v1beta1" apiv1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" + "k8s.io/client-go/util/homedir" + "k8s.io/client-go/util/retry" // Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters). // _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" ) func main() { - kubeconfig := flag.String("kubeconfig", "", "absolute path to the kubeconfig file") - flag.Parse() - if *kubeconfig == "" { - panic("-kubeconfig not specified") + var kubeconfig *string + if home := homedir.HomeDir(); home != "" { + kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file") + } else { + kubeconfig = flag.String("kubeconfig", "", "absolute path to the kubeconfig file") } + flag.Parse() + config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) if err != nil { panic(err) @@ -66,7 +71,7 @@ func main() { Containers: []apiv1.Container{ { Name: "web", - Image: "nginx:1.13", + Image: "nginx:1.12", Ports: []apiv1.ContainerPort{ { Name: "http", @@ -97,35 +102,52 @@ func main() { // 1. Modify the "deployment" variable and call: Update(deployment). // This works like the "kubectl replace" command and it overwrites/loses changes // made by other clients between you Create() and Update() the object. - // 2. Modify the "result" returned by Create()/Get() and retry Update(result) until + // 2. Modify the "result" returned by Get() and retry Update(result) until // you no longer get a conflict error. This way, you can preserve changes made - // by other clients between Create() and Update(). This is implemented below: - - for { - result.Spec.Replicas = int32Ptr(1) // reduce replica count - result.Spec.Template.Annotations = map[string]string{ // add annotations - "foo": "bar", + // by other clients between Create() and Update(). This is implemented below + // using the retry utility package included with client-go. (RECOMMENDED) + // + // More Info: + // https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#concurrency-control-and-consistency + + retryErr := retry.RetryOnConflict(retry.DefaultRetry, func() error { + // Retrieve the latest version of Deployment before attempting update + // RetryOnConflict uses exponential backoff to avoid exhausting the apiserver + result, getErr := deploymentsClient.Get("demo-deployment", metav1.GetOptions{}) + if getErr != nil { + panic(fmt.Errorf("Failed to get latest version of Deployment: %v", getErr)) } - if _, err := deploymentsClient.Update(result); errors.IsConflict(err) { - // Deployment is modified in the meanwhile, query the latest version - // and modify the retrieved object. - fmt.Println("encountered conflict, retrying") - result, err = deploymentsClient.Get("demo-deployment", metav1.GetOptions{}) - if err != nil { - panic(fmt.Errorf("Get failed: %+v", err)) - } - } else if err != nil { - panic(err) - } else { - break + result.Spec.Replicas = int32Ptr(1) // reduce replica count + result.Spec.Template.Spec.Containers[0].Image = "nginx:1.13" // change nginx version + _, updateErr := deploymentsClient.Update(result) + return updateErr + }) + if retryErr != nil { + panic(fmt.Errorf("Update failed: %v", retryErr)) + } + fmt.Println("Updated deployment...") + + // Rollback Deployment + prompt() + fmt.Println("Rolling back deployment...") + // Once again use RetryOnConflict to avoid update conflicts + retryErr = retry.RetryOnConflict(retry.DefaultRetry, func() error { + result, getErr := deploymentsClient.Get("demo-deployment", metav1.GetOptions{}) + if getErr != nil { + panic(fmt.Errorf("Failed to get latest version of Deployment: %v", getErr)) } - // TODO: You should sleep here with an exponential backoff to avoid - // exhausting the apiserver, and add a limit/timeout on the retries to - // avoid getting stuck in this loop indefintiely. + result.Spec.RollbackTo = &appsv1beta1.RollbackConfig{ + Revision: 0, // can be specific revision number, or 0 for last revision + } + _, updateErr := deploymentsClient.Update(result) + return updateErr + }) + if retryErr != nil { + panic(fmt.Errorf("Rollback failed: %v", retryErr)) } - fmt.Println("Updated deployment...") + fmt.Println("Rolled back deployment...") // List Deployments prompt() diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/BUILD index 3acb23e21..5d41691da 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/BUILD @@ -33,7 +33,9 @@ go_library( "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", "//vendor/k8s.io/api/storage/v1:go_default_library", + "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", "//vendor/k8s.io/api/storage/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/runtime/schema:go_default_library", "//vendor/k8s.io/client-go/informers/admissionregistration:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/interface.go index 19099ba02..995ed217e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1alpha1 returns a new v1alpha1.Interface. func (g *group) V1alpha1() v1alpha1.Interface { - return v1alpha1.New(g.SharedInformerFactory) + return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD index 8684c3e6e..4419a6245 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD @@ -8,9 +8,10 @@ load( go_library( name = "go_default_library", srcs = [ - "externaladmissionhookconfiguration.go", "initializerconfiguration.go", "interface.go", + "mutatingwebhookconfiguration.go", + "validatingwebhookconfiguration.go", ], importpath = "k8s.io/client-go/informers/admissionregistration/v1alpha1", deps = [ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go deleted file mode 100644 index cdc03d993..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -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 v1alpha1 - -import ( - admissionregistration_v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" - 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" - v1alpha1 "k8s.io/client-go/listers/admissionregistration/v1alpha1" - cache "k8s.io/client-go/tools/cache" - time "time" -) - -// ExternalAdmissionHookConfigurationInformer provides access to a shared informer and lister for -// ExternalAdmissionHookConfigurations. -type ExternalAdmissionHookConfigurationInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1alpha1.ExternalAdmissionHookConfigurationLister -} - -type externalAdmissionHookConfigurationInformer struct { - factory internalinterfaces.SharedInformerFactory -} - -// NewExternalAdmissionHookConfigurationInformer constructs a new informer for ExternalAdmissionHookConfiguration 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 NewExternalAdmissionHookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - return client.AdmissionregistrationV1alpha1().ExternalAdmissionHookConfigurations().List(options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - return client.AdmissionregistrationV1alpha1().ExternalAdmissionHookConfigurations().Watch(options) - }, - }, - &admissionregistration_v1alpha1.ExternalAdmissionHookConfiguration{}, - resyncPeriod, - indexers, - ) -} - -func defaultExternalAdmissionHookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewExternalAdmissionHookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) -} - -func (f *externalAdmissionHookConfigurationInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&admissionregistration_v1alpha1.ExternalAdmissionHookConfiguration{}, defaultExternalAdmissionHookConfigurationInformer) -} - -func (f *externalAdmissionHookConfigurationInformer) Lister() v1alpha1.ExternalAdmissionHookConfigurationLister { - return v1alpha1.NewExternalAdmissionHookConfigurationLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/initializerconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/initializerconfiguration.go index 90e0078fc..0f55c737f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/initializerconfiguration.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/initializerconfiguration.go @@ -38,19 +38,33 @@ type InitializerConfigurationInformer interface { } type initializerConfigurationInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewInitializerConfigurationInformer constructs a new informer for InitializerConfiguration 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 NewInitializerConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredInitializerConfigurationInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredInitializerConfigurationInformer constructs a new informer for InitializerConfiguration 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 NewFilteredInitializerConfigurationInformer(client kubernetes.Interface, 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.AdmissionregistrationV1alpha1().InitializerConfigurations().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AdmissionregistrationV1alpha1().InitializerConfigurations().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewInitializerConfigurationInformer(client kubernetes.Interface, resyncPeri ) } -func defaultInitializerConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewInitializerConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *initializerConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredInitializerConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *initializerConfigurationInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&admissionregistration_v1alpha1.InitializerConfiguration{}, defaultInitializerConfigurationInformer) + return f.factory.InformerFor(&admissionregistration_v1alpha1.InitializerConfiguration{}, f.defaultInformer) } func (f *initializerConfigurationInformer) Lister() v1alpha1.InitializerConfigurationLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/interface.go index 33ff70766..cab109f73 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/interface.go @@ -24,27 +24,36 @@ import ( // Interface provides access to all the informers in this group version. type Interface interface { - // ExternalAdmissionHookConfigurations returns a ExternalAdmissionHookConfigurationInformer. - ExternalAdmissionHookConfigurations() ExternalAdmissionHookConfigurationInformer // InitializerConfigurations returns a InitializerConfigurationInformer. InitializerConfigurations() InitializerConfigurationInformer + // MutatingWebhookConfigurations returns a MutatingWebhookConfigurationInformer. + MutatingWebhookConfigurations() MutatingWebhookConfigurationInformer + // ValidatingWebhookConfigurations returns a ValidatingWebhookConfigurationInformer. + ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInformer } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} -} - -// ExternalAdmissionHookConfigurations returns a ExternalAdmissionHookConfigurationInformer. -func (v *version) ExternalAdmissionHookConfigurations() ExternalAdmissionHookConfigurationInformer { - return &externalAdmissionHookConfigurationInformer{factory: v.SharedInformerFactory} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InitializerConfigurations returns a InitializerConfigurationInformer. func (v *version) InitializerConfigurations() InitializerConfigurationInformer { - return &initializerConfigurationInformer{factory: v.SharedInformerFactory} + return &initializerConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} + +// MutatingWebhookConfigurations returns a MutatingWebhookConfigurationInformer. +func (v *version) MutatingWebhookConfigurations() MutatingWebhookConfigurationInformer { + return &mutatingWebhookConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} + +// ValidatingWebhookConfigurations returns a ValidatingWebhookConfigurationInformer. +func (v *version) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInformer { + return &validatingWebhookConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go new file mode 100644 index 000000000..6f407779a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go @@ -0,0 +1,87 @@ +/* +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 v1alpha1 + +import ( + admissionregistration_v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + 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" + v1alpha1 "k8s.io/client-go/listers/admissionregistration/v1alpha1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// MutatingWebhookConfigurationInformer provides access to a shared informer and lister for +// MutatingWebhookConfigurations. +type MutatingWebhookConfigurationInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1alpha1.MutatingWebhookConfigurationLister +} + +type mutatingWebhookConfigurationInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewMutatingWebhookConfigurationInformer constructs a new informer for MutatingWebhookConfiguration 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 NewMutatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredMutatingWebhookConfigurationInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredMutatingWebhookConfigurationInformer constructs a new informer for MutatingWebhookConfiguration 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 NewFilteredMutatingWebhookConfigurationInformer(client kubernetes.Interface, 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.AdmissionregistrationV1alpha1().MutatingWebhookConfigurations().List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AdmissionregistrationV1alpha1().MutatingWebhookConfigurations().Watch(options) + }, + }, + &admissionregistration_v1alpha1.MutatingWebhookConfiguration{}, + resyncPeriod, + indexers, + ) +} + +func (f *mutatingWebhookConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredMutatingWebhookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *mutatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&admissionregistration_v1alpha1.MutatingWebhookConfiguration{}, f.defaultInformer) +} + +func (f *mutatingWebhookConfigurationInformer) Lister() v1alpha1.MutatingWebhookConfigurationLister { + return v1alpha1.NewMutatingWebhookConfigurationLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/validatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/validatingwebhookconfiguration.go new file mode 100644 index 000000000..2a2172eed --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/validatingwebhookconfiguration.go @@ -0,0 +1,87 @@ +/* +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 v1alpha1 + +import ( + admissionregistration_v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + 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" + v1alpha1 "k8s.io/client-go/listers/admissionregistration/v1alpha1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// ValidatingWebhookConfigurationInformer provides access to a shared informer and lister for +// ValidatingWebhookConfigurations. +type ValidatingWebhookConfigurationInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1alpha1.ValidatingWebhookConfigurationLister +} + +type validatingWebhookConfigurationInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewValidatingWebhookConfigurationInformer constructs a new informer for ValidatingWebhookConfiguration 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 NewValidatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredValidatingWebhookConfigurationInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredValidatingWebhookConfigurationInformer constructs a new informer for ValidatingWebhookConfiguration 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 NewFilteredValidatingWebhookConfigurationInformer(client kubernetes.Interface, 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.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations().List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations().Watch(options) + }, + }, + &admissionregistration_v1alpha1.ValidatingWebhookConfiguration{}, + resyncPeriod, + indexers, + ) +} + +func (f *validatingWebhookConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredValidatingWebhookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *validatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&admissionregistration_v1alpha1.ValidatingWebhookConfiguration{}, f.defaultInformer) +} + +func (f *validatingWebhookConfigurationInformer) Lister() v1alpha1.ValidatingWebhookConfigurationLister { + return v1alpha1.NewValidatingWebhookConfigurationLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/interface.go index 9344787ce..fdd32de0f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/interface.go @@ -36,25 +36,27 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1 returns a new v1.Interface. func (g *group) V1() v1.Interface { - return v1.New(g.SharedInformerFactory) + return v1.New(g.factory, g.namespace, g.tweakListOptions) } // V1beta1 returns a new v1beta1.Interface. func (g *group) V1beta1() v1beta1.Interface { - return v1beta1.New(g.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } // V1beta2 returns a new v1beta2.Interface. func (g *group) V1beta2() v1beta2.Interface { - return v1beta2.New(g.SharedInformerFactory) + return v1beta2.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/BUILD index 9101e6d97..233e26101 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/BUILD @@ -3,8 +3,12 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ + "controllerrevision.go", "daemonset.go", + "deployment.go", "interface.go", + "replicaset.go", + "statefulset.go", ], importpath = "k8s.io/client-go/informers/apps/v1", visibility = ["//visibility:public"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/controllerrevision.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/controllerrevision.go new file mode 100644 index 000000000..a69be9c70 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/controllerrevision.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 v1 + +import ( + apps_v1 "k8s.io/api/apps/v1" + meta_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" + v1 "k8s.io/client-go/listers/apps/v1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// ControllerRevisionInformer provides access to a shared informer and lister for +// ControllerRevisions. +type ControllerRevisionInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.ControllerRevisionLister +} + +type controllerRevisionInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewControllerRevisionInformer constructs a new informer for ControllerRevision 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 NewControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredControllerRevisionInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredControllerRevisionInformer constructs a new informer for ControllerRevision 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 NewFilteredControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AppsV1().ControllerRevisions(namespace).List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AppsV1().ControllerRevisions(namespace).Watch(options) + }, + }, + &apps_v1.ControllerRevision{}, + resyncPeriod, + indexers, + ) +} + +func (f *controllerRevisionInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredControllerRevisionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&apps_v1.ControllerRevision{}, f.defaultInformer) +} + +func (f *controllerRevisionInformer) Lister() v1.ControllerRevisionLister { + return v1.NewControllerRevisionLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/daemonset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/daemonset.go index 6dad76a09..1c7abf7d0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/daemonset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/daemonset.go @@ -38,19 +38,34 @@ type DaemonSetInformer interface { } type daemonSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewDaemonSetInformer constructs a new informer for DaemonSet 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 NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDaemonSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDaemonSetInformer constructs a new informer for DaemonSet 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 NewFilteredDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1().DaemonSets(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1().DaemonSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncP ) } -func defaultDaemonSetInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewDaemonSetInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *daemonSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDaemonSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *daemonSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1.DaemonSet{}, defaultDaemonSetInformer) + return f.factory.InformerFor(&apps_v1.DaemonSet{}, f.defaultInformer) } func (f *daemonSetInformer) Lister() v1.DaemonSetLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/deployment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/deployment.go new file mode 100644 index 000000000..9f6beed6e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/deployment.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 v1 + +import ( + apps_v1 "k8s.io/api/apps/v1" + meta_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" + v1 "k8s.io/client-go/listers/apps/v1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// DeploymentInformer provides access to a shared informer and lister for +// Deployments. +type DeploymentInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.DeploymentLister +} + +type deploymentInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewDeploymentInformer constructs a new informer for Deployment 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 NewDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDeploymentInformer constructs a new informer for Deployment 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 NewFilteredDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AppsV1().Deployments(namespace).List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AppsV1().Deployments(namespace).Watch(options) + }, + }, + &apps_v1.Deployment{}, + resyncPeriod, + indexers, + ) +} + +func (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *deploymentInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&apps_v1.Deployment{}, f.defaultInformer) +} + +func (f *deploymentInformer) Lister() v1.DeploymentLister { + return v1.NewDeploymentLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/interface.go index 82e557c9e..6145fd6cc 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/interface.go @@ -24,20 +24,50 @@ import ( // Interface provides access to all the informers in this group version. type Interface interface { + // ControllerRevisions returns a ControllerRevisionInformer. + ControllerRevisions() ControllerRevisionInformer // DaemonSets returns a DaemonSetInformer. DaemonSets() DaemonSetInformer + // Deployments returns a DeploymentInformer. + Deployments() DeploymentInformer + // ReplicaSets returns a ReplicaSetInformer. + ReplicaSets() ReplicaSetInformer + // StatefulSets returns a StatefulSetInformer. + StatefulSets() StatefulSetInformer } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// ControllerRevisions returns a ControllerRevisionInformer. +func (v *version) ControllerRevisions() ControllerRevisionInformer { + return &controllerRevisionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // DaemonSets returns a DaemonSetInformer. func (v *version) DaemonSets() DaemonSetInformer { - return &daemonSetInformer{factory: v.SharedInformerFactory} + return &daemonSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + +// Deployments returns a DeploymentInformer. +func (v *version) Deployments() DeploymentInformer { + return &deploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + +// ReplicaSets returns a ReplicaSetInformer. +func (v *version) ReplicaSets() ReplicaSetInformer { + return &replicaSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + +// StatefulSets returns a StatefulSetInformer. +func (v *version) StatefulSets() StatefulSetInformer { + return &statefulSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/replicaset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/replicaset.go new file mode 100644 index 000000000..1ac50607f --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/replicaset.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 v1 + +import ( + apps_v1 "k8s.io/api/apps/v1" + meta_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" + v1 "k8s.io/client-go/listers/apps/v1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// ReplicaSetInformer provides access to a shared informer and lister for +// ReplicaSets. +type ReplicaSetInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.ReplicaSetLister +} + +type replicaSetInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewReplicaSetInformer constructs a new informer for ReplicaSet 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 NewReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredReplicaSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredReplicaSetInformer constructs a new informer for ReplicaSet 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 NewFilteredReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AppsV1().ReplicaSets(namespace).List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AppsV1().ReplicaSets(namespace).Watch(options) + }, + }, + &apps_v1.ReplicaSet{}, + resyncPeriod, + indexers, + ) +} + +func (f *replicaSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredReplicaSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *replicaSetInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&apps_v1.ReplicaSet{}, f.defaultInformer) +} + +func (f *replicaSetInformer) Lister() v1.ReplicaSetLister { + return v1.NewReplicaSetLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/statefulset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/statefulset.go new file mode 100644 index 000000000..535790df9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1/statefulset.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 v1 + +import ( + apps_v1 "k8s.io/api/apps/v1" + meta_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" + v1 "k8s.io/client-go/listers/apps/v1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// StatefulSetInformer provides access to a shared informer and lister for +// StatefulSets. +type StatefulSetInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.StatefulSetLister +} + +type statefulSetInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewStatefulSetInformer constructs a new informer for StatefulSet 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 NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredStatefulSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredStatefulSetInformer constructs a new informer for StatefulSet 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 NewFilteredStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AppsV1().StatefulSets(namespace).List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AppsV1().StatefulSets(namespace).Watch(options) + }, + }, + &apps_v1.StatefulSet{}, + resyncPeriod, + indexers, + ) +} + +func (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredStatefulSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *statefulSetInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&apps_v1.StatefulSet{}, f.defaultInformer) +} + +func (f *statefulSetInformer) Lister() v1.StatefulSetLister { + return v1.NewStatefulSetLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/controllerrevision.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/controllerrevision.go index 1a433f84e..1e2de416b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/controllerrevision.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/controllerrevision.go @@ -38,19 +38,34 @@ type ControllerRevisionInformer interface { } type controllerRevisionInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewControllerRevisionInformer constructs a new informer for ControllerRevision 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 NewControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredControllerRevisionInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredControllerRevisionInformer constructs a new informer for ControllerRevision 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 NewFilteredControllerRevisionInformer(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.AppsV1beta1().ControllerRevisions(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1beta1().ControllerRevisions(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewControllerRevisionInformer(client kubernetes.Interface, namespace string ) } -func defaultControllerRevisionInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewControllerRevisionInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *controllerRevisionInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredControllerRevisionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta1.ControllerRevision{}, defaultControllerRevisionInformer) + return f.factory.InformerFor(&apps_v1beta1.ControllerRevision{}, f.defaultInformer) } func (f *controllerRevisionInformer) Lister() v1beta1.ControllerRevisionLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/deployment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/deployment.go index d77f3b3c2..4d2dea575 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/deployment.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/deployment.go @@ -38,19 +38,34 @@ type DeploymentInformer interface { } type deploymentInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewDeploymentInformer constructs a new informer for Deployment 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 NewDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDeploymentInformer constructs a new informer for Deployment 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 NewFilteredDeploymentInformer(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.AppsV1beta1().Deployments(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1beta1().Deployments(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewDeploymentInformer(client kubernetes.Interface, namespace string, resync ) } -func defaultDeploymentInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewDeploymentInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *deploymentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta1.Deployment{}, defaultDeploymentInformer) + return f.factory.InformerFor(&apps_v1beta1.Deployment{}, f.defaultInformer) } func (f *deploymentInformer) Lister() v1beta1.DeploymentLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/interface.go index 11f55faad..3a51a1f5b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/interface.go @@ -33,25 +33,27 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // ControllerRevisions returns a ControllerRevisionInformer. func (v *version) ControllerRevisions() ControllerRevisionInformer { - return &controllerRevisionInformer{factory: v.SharedInformerFactory} + return &controllerRevisionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Deployments returns a DeploymentInformer. func (v *version) Deployments() DeploymentInformer { - return &deploymentInformer{factory: v.SharedInformerFactory} + return &deploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // StatefulSets returns a StatefulSetInformer. func (v *version) StatefulSets() StatefulSetInformer { - return &statefulSetInformer{factory: v.SharedInformerFactory} + return &statefulSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/statefulset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/statefulset.go index 3bd8af7d7..779ae2c60 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/statefulset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta1/statefulset.go @@ -38,19 +38,34 @@ type StatefulSetInformer interface { } type statefulSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewStatefulSetInformer constructs a new informer for StatefulSet 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 NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredStatefulSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredStatefulSetInformer constructs a new informer for StatefulSet 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 NewFilteredStatefulSetInformer(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.AppsV1beta1().StatefulSets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1beta1().StatefulSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyn ) } -func defaultStatefulSetInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewStatefulSetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredStatefulSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *statefulSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta1.StatefulSet{}, defaultStatefulSetInformer) + return f.factory.InformerFor(&apps_v1beta1.StatefulSet{}, f.defaultInformer) } func (f *statefulSetInformer) Lister() v1beta1.StatefulSetLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/controllerrevision.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/controllerrevision.go index ba1be506b..a7d55ab4c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/controllerrevision.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/controllerrevision.go @@ -38,19 +38,34 @@ type ControllerRevisionInformer interface { } type controllerRevisionInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewControllerRevisionInformer constructs a new informer for ControllerRevision 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 NewControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredControllerRevisionInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredControllerRevisionInformer constructs a new informer for ControllerRevision 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 NewFilteredControllerRevisionInformer(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.AppsV1beta2().ControllerRevisions(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1beta2().ControllerRevisions(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewControllerRevisionInformer(client kubernetes.Interface, namespace string ) } -func defaultControllerRevisionInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewControllerRevisionInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *controllerRevisionInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredControllerRevisionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.ControllerRevision{}, defaultControllerRevisionInformer) + return f.factory.InformerFor(&apps_v1beta2.ControllerRevision{}, f.defaultInformer) } func (f *controllerRevisionInformer) Lister() v1beta2.ControllerRevisionLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/daemonset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/daemonset.go index 5c440f239..5d3288026 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/daemonset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/daemonset.go @@ -38,19 +38,34 @@ type DaemonSetInformer interface { } type daemonSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewDaemonSetInformer constructs a new informer for DaemonSet 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 NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDaemonSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDaemonSetInformer constructs a new informer for DaemonSet 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 NewFilteredDaemonSetInformer(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.AppsV1beta2().DaemonSets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1beta2().DaemonSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncP ) } -func defaultDaemonSetInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewDaemonSetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *daemonSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDaemonSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *daemonSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.DaemonSet{}, defaultDaemonSetInformer) + return f.factory.InformerFor(&apps_v1beta2.DaemonSet{}, f.defaultInformer) } func (f *daemonSetInformer) Lister() v1beta2.DaemonSetLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/deployment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/deployment.go index 031bcddd2..6b6cd6035 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/deployment.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/deployment.go @@ -38,19 +38,34 @@ type DeploymentInformer interface { } type deploymentInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewDeploymentInformer constructs a new informer for Deployment 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 NewDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDeploymentInformer constructs a new informer for Deployment 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 NewFilteredDeploymentInformer(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.AppsV1beta2().Deployments(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1beta2().Deployments(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewDeploymentInformer(client kubernetes.Interface, namespace string, resync ) } -func defaultDeploymentInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewDeploymentInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *deploymentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.Deployment{}, defaultDeploymentInformer) + return f.factory.InformerFor(&apps_v1beta2.Deployment{}, f.defaultInformer) } func (f *deploymentInformer) Lister() v1beta2.DeploymentLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/interface.go index 3f12f5032..59a6e73d4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/interface.go @@ -37,35 +37,37 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // ControllerRevisions returns a ControllerRevisionInformer. func (v *version) ControllerRevisions() ControllerRevisionInformer { - return &controllerRevisionInformer{factory: v.SharedInformerFactory} + return &controllerRevisionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // DaemonSets returns a DaemonSetInformer. func (v *version) DaemonSets() DaemonSetInformer { - return &daemonSetInformer{factory: v.SharedInformerFactory} + return &daemonSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Deployments returns a DeploymentInformer. func (v *version) Deployments() DeploymentInformer { - return &deploymentInformer{factory: v.SharedInformerFactory} + return &deploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // ReplicaSets returns a ReplicaSetInformer. func (v *version) ReplicaSets() ReplicaSetInformer { - return &replicaSetInformer{factory: v.SharedInformerFactory} + return &replicaSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // StatefulSets returns a StatefulSetInformer. func (v *version) StatefulSets() StatefulSetInformer { - return &statefulSetInformer{factory: v.SharedInformerFactory} + return &statefulSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/replicaset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/replicaset.go index 1eec8e8c9..988a3e4fb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/replicaset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/replicaset.go @@ -38,19 +38,34 @@ type ReplicaSetInformer interface { } type replicaSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewReplicaSetInformer constructs a new informer for ReplicaSet 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 NewReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredReplicaSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredReplicaSetInformer constructs a new informer for ReplicaSet 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 NewFilteredReplicaSetInformer(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.AppsV1beta2().ReplicaSets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1beta2().ReplicaSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewReplicaSetInformer(client kubernetes.Interface, namespace string, resync ) } -func defaultReplicaSetInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewReplicaSetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *replicaSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredReplicaSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *replicaSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.ReplicaSet{}, defaultReplicaSetInformer) + return f.factory.InformerFor(&apps_v1beta2.ReplicaSet{}, f.defaultInformer) } func (f *replicaSetInformer) Lister() v1beta2.ReplicaSetLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/statefulset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/statefulset.go index 004e6b8ec..dff9c2408 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/statefulset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/apps/v1beta2/statefulset.go @@ -38,19 +38,34 @@ type StatefulSetInformer interface { } type statefulSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewStatefulSetInformer constructs a new informer for StatefulSet 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 NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredStatefulSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredStatefulSetInformer constructs a new informer for StatefulSet 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 NewFilteredStatefulSetInformer(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.AppsV1beta2().StatefulSets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AppsV1beta2().StatefulSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyn ) } -func defaultStatefulSetInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewStatefulSetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredStatefulSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *statefulSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.StatefulSet{}, defaultStatefulSetInformer) + return f.factory.InformerFor(&apps_v1beta2.StatefulSet{}, f.defaultInformer) } func (f *statefulSetInformer) Lister() v1beta2.StatefulSetLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/interface.go index 520c0be3c..63a5c0ccd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/interface.go @@ -33,20 +33,22 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1 returns a new v1.Interface. func (g *group) V1() v1.Interface { - return v1.New(g.SharedInformerFactory) + return v1.New(g.factory, g.namespace, g.tweakListOptions) } // V2beta1 returns a new v2beta1.Interface. func (g *group) V2beta1() v2beta1.Interface { - return v2beta1.New(g.SharedInformerFactory) + return v2beta1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go index d1f8cae61..7d875e735 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go @@ -38,19 +38,34 @@ type HorizontalPodAutoscalerInformer interface { } type horizontalPodAutoscalerInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler 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 NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredHorizontalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler 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 NewFilteredHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AutoscalingV1().HorizontalPodAutoscalers(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AutoscalingV1().HorizontalPodAutoscalers(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace s ) } -func defaultHorizontalPodAutoscalerInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewHorizontalPodAutoscalerInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *horizontalPodAutoscalerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredHorizontalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&autoscaling_v1.HorizontalPodAutoscaler{}, defaultHorizontalPodAutoscalerInformer) + return f.factory.InformerFor(&autoscaling_v1.HorizontalPodAutoscaler{}, f.defaultInformer) } func (f *horizontalPodAutoscalerInformer) Lister() v1.HorizontalPodAutoscalerLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v1/interface.go index 45f4bb35a..5ba907012 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer. func (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer { - return &horizontalPodAutoscalerInformer{factory: v.SharedInformerFactory} + return &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go index 9291b8050..9865f8e13 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go @@ -38,19 +38,34 @@ type HorizontalPodAutoscalerInformer interface { } type horizontalPodAutoscalerInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler 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 NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredHorizontalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler 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 NewFilteredHorizontalPodAutoscalerInformer(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.AutoscalingV2beta1().HorizontalPodAutoscalers(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.AutoscalingV2beta1().HorizontalPodAutoscalers(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace s ) } -func defaultHorizontalPodAutoscalerInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewHorizontalPodAutoscalerInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *horizontalPodAutoscalerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredHorizontalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&autoscaling_v2beta1.HorizontalPodAutoscaler{}, defaultHorizontalPodAutoscalerInformer) + return f.factory.InformerFor(&autoscaling_v2beta1.HorizontalPodAutoscaler{}, f.defaultInformer) } func (f *horizontalPodAutoscalerInformer) Lister() v2beta1.HorizontalPodAutoscalerLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go index 4733291b6..4c9ea8499 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer. func (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer { - return &horizontalPodAutoscalerInformer{factory: v.SharedInformerFactory} + return &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/interface.go index 159e75665..bbaec7964 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/interface.go @@ -36,25 +36,27 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1 returns a new v1.Interface. func (g *group) V1() v1.Interface { - return v1.New(g.SharedInformerFactory) + return v1.New(g.factory, g.namespace, g.tweakListOptions) } // V1beta1 returns a new v1beta1.Interface. func (g *group) V1beta1() v1beta1.Interface { - return v1beta1.New(g.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } // V2alpha1 returns a new v2alpha1.Interface. func (g *group) V2alpha1() v2alpha1.Interface { - return v2alpha1.New(g.SharedInformerFactory) + return v2alpha1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1/interface.go index d4d7d56f6..41c08ea2d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // Jobs returns a JobInformer. func (v *version) Jobs() JobInformer { - return &jobInformer{factory: v.SharedInformerFactory} + return &jobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1/job.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1/job.go index a5a35680a..8a2e5f0d8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1/job.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1/job.go @@ -38,19 +38,34 @@ type JobInformer interface { } type jobInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewJobInformer constructs a new informer for Job 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 NewJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredJobInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredJobInformer constructs a new informer for Job 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 NewFilteredJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.BatchV1().Jobs(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.BatchV1().Jobs(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewJobInformer(client kubernetes.Interface, namespace string, resyncPeriod ) } -func defaultJobInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewJobInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *jobInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *jobInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&batch_v1.Job{}, defaultJobInformer) + return f.factory.InformerFor(&batch_v1.Job{}, f.defaultInformer) } func (f *jobInformer) Lister() v1.JobLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1beta1/cronjob.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1beta1/cronjob.go index 11bf035d3..4edfd4153 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1beta1/cronjob.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1beta1/cronjob.go @@ -38,19 +38,34 @@ type CronJobInformer interface { } type cronJobInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewCronJobInformer constructs a new informer for CronJob 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 NewCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCronJobInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredCronJobInformer constructs a new informer for CronJob 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 NewFilteredCronJobInformer(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.BatchV1beta1().CronJobs(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.BatchV1beta1().CronJobs(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewCronJobInformer(client kubernetes.Interface, namespace string, resyncPer ) } -func defaultCronJobInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewCronJobInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *cronJobInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCronJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *cronJobInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&batch_v1beta1.CronJob{}, defaultCronJobInformer) + return f.factory.InformerFor(&batch_v1beta1.CronJob{}, f.defaultInformer) } func (f *cronJobInformer) Lister() v1beta1.CronJobLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1beta1/interface.go index 10b2f9f65..0ba1935dc 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v1beta1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // CronJobs returns a CronJobInformer. func (v *version) CronJobs() CronJobInformer { - return &cronJobInformer{factory: v.SharedInformerFactory} + return &cronJobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go index 26ce57e5b..03a6e6f88 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go @@ -38,19 +38,34 @@ type CronJobInformer interface { } type cronJobInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewCronJobInformer constructs a new informer for CronJob 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 NewCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCronJobInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredCronJobInformer constructs a new informer for CronJob 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 NewFilteredCronJobInformer(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.BatchV2alpha1().CronJobs(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.BatchV2alpha1().CronJobs(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewCronJobInformer(client kubernetes.Interface, namespace string, resyncPer ) } -func defaultCronJobInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewCronJobInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *cronJobInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCronJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *cronJobInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&batch_v2alpha1.CronJob{}, defaultCronJobInformer) + return f.factory.InformerFor(&batch_v2alpha1.CronJob{}, f.defaultInformer) } func (f *cronJobInformer) Lister() v2alpha1.CronJobLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v2alpha1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v2alpha1/interface.go index 261330bf0..39b6f33f0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v2alpha1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/batch/v2alpha1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // CronJobs returns a CronJobInformer. func (v *version) CronJobs() CronJobInformer { - return &cronJobInformer{factory: v.SharedInformerFactory} + return &cronJobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/interface.go index 4d9f8ea50..1eefe4797 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +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.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/v1beta1/certificatesigningrequest.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/v1beta1/certificatesigningrequest.go index 3d949742d..44aac5c72 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/v1beta1/certificatesigningrequest.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/v1beta1/certificatesigningrequest.go @@ -38,19 +38,33 @@ type CertificateSigningRequestInformer interface { } type certificateSigningRequestInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewCertificateSigningRequestInformer constructs a new informer for CertificateSigningRequest 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 NewCertificateSigningRequestInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredCertificateSigningRequestInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredCertificateSigningRequestInformer constructs a new informer for CertificateSigningRequest 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 NewFilteredCertificateSigningRequestInformer(client kubernetes.Interface, 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.CertificatesV1beta1().CertificateSigningRequests().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CertificatesV1beta1().CertificateSigningRequests().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewCertificateSigningRequestInformer(client kubernetes.Interface, resyncPer ) } -func defaultCertificateSigningRequestInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewCertificateSigningRequestInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *certificateSigningRequestInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredCertificateSigningRequestInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *certificateSigningRequestInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&certificates_v1beta1.CertificateSigningRequest{}, defaultCertificateSigningRequestInformer) + return f.factory.InformerFor(&certificates_v1beta1.CertificateSigningRequest{}, f.defaultInformer) } func (f *certificateSigningRequestInformer) Lister() v1beta1.CertificateSigningRequestLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/v1beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/v1beta1/interface.go index 8facec127..8578023c7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/v1beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/certificates/v1beta1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // CertificateSigningRequests returns a CertificateSigningRequestInformer. func (v *version) CertificateSigningRequests() CertificateSigningRequestInformer { - return &certificateSigningRequestInformer{factory: v.SharedInformerFactory} + return &certificateSigningRequestInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/interface.go index f90c24851..7fc2a5cd5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1 returns a new v1.Interface. func (g *group) V1() v1.Interface { - return v1.New(g.SharedInformerFactory) + return v1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/componentstatus.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/componentstatus.go index f07f9120b..77b17fd3e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/componentstatus.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/componentstatus.go @@ -38,19 +38,33 @@ type ComponentStatusInformer interface { } type componentStatusInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewComponentStatusInformer constructs a new informer for ComponentStatus 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 NewComponentStatusInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredComponentStatusInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredComponentStatusInformer constructs a new informer for ComponentStatus 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 NewFilteredComponentStatusInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ComponentStatuses().List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ComponentStatuses().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewComponentStatusInformer(client kubernetes.Interface, resyncPeriod time.D ) } -func defaultComponentStatusInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewComponentStatusInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *componentStatusInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredComponentStatusInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *componentStatusInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ComponentStatus{}, defaultComponentStatusInformer) + return f.factory.InformerFor(&core_v1.ComponentStatus{}, f.defaultInformer) } func (f *componentStatusInformer) Lister() v1.ComponentStatusLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/configmap.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/configmap.go index 7a14f1db4..ed0f4c2d9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/configmap.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/configmap.go @@ -38,19 +38,34 @@ type ConfigMapInformer interface { } type configMapInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewConfigMapInformer constructs a new informer for ConfigMap 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 NewConfigMapInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredConfigMapInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredConfigMapInformer constructs a new informer for ConfigMap 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 NewFilteredConfigMapInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ConfigMaps(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ConfigMaps(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewConfigMapInformer(client kubernetes.Interface, namespace string, resyncP ) } -func defaultConfigMapInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewConfigMapInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *configMapInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredConfigMapInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *configMapInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ConfigMap{}, defaultConfigMapInformer) + return f.factory.InformerFor(&core_v1.ConfigMap{}, f.defaultInformer) } func (f *configMapInformer) Lister() v1.ConfigMapLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/endpoints.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/endpoints.go index 248aedfee..8a7228baf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/endpoints.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/endpoints.go @@ -38,19 +38,34 @@ type EndpointsInformer interface { } type endpointsInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewEndpointsInformer constructs a new informer for Endpoints 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 NewEndpointsInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredEndpointsInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredEndpointsInformer constructs a new informer for Endpoints 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 NewFilteredEndpointsInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Endpoints(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Endpoints(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewEndpointsInformer(client kubernetes.Interface, namespace string, resyncP ) } -func defaultEndpointsInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewEndpointsInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *endpointsInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredEndpointsInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *endpointsInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Endpoints{}, defaultEndpointsInformer) + return f.factory.InformerFor(&core_v1.Endpoints{}, f.defaultInformer) } func (f *endpointsInformer) Lister() v1.EndpointsLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/event.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/event.go index 0751775c3..23f5ead66 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/event.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/event.go @@ -38,19 +38,34 @@ type EventInformer interface { } type eventInformer struct { - factory internalinterfaces.SharedInformerFactory + 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 meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Events(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Events(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewEventInformer(client kubernetes.Interface, namespace string, resyncPerio ) } -func defaultEventInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewEventInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +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(&core_v1.Event{}, defaultEventInformer) + return f.factory.InformerFor(&core_v1.Event{}, f.defaultInformer) } func (f *eventInformer) Lister() v1.EventLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/interface.go index 5f2ff96b2..e560b12f8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/interface.go @@ -59,90 +59,92 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // ComponentStatuses returns a ComponentStatusInformer. func (v *version) ComponentStatuses() ComponentStatusInformer { - return &componentStatusInformer{factory: v.SharedInformerFactory} + return &componentStatusInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // ConfigMaps returns a ConfigMapInformer. func (v *version) ConfigMaps() ConfigMapInformer { - return &configMapInformer{factory: v.SharedInformerFactory} + return &configMapInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Endpoints returns a EndpointsInformer. func (v *version) Endpoints() EndpointsInformer { - return &endpointsInformer{factory: v.SharedInformerFactory} + return &endpointsInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Events returns a EventInformer. func (v *version) Events() EventInformer { - return &eventInformer{factory: v.SharedInformerFactory} + return &eventInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // LimitRanges returns a LimitRangeInformer. func (v *version) LimitRanges() LimitRangeInformer { - return &limitRangeInformer{factory: v.SharedInformerFactory} + return &limitRangeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Namespaces returns a NamespaceInformer. func (v *version) Namespaces() NamespaceInformer { - return &namespaceInformer{factory: v.SharedInformerFactory} + return &namespaceInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // Nodes returns a NodeInformer. func (v *version) Nodes() NodeInformer { - return &nodeInformer{factory: v.SharedInformerFactory} + return &nodeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // PersistentVolumes returns a PersistentVolumeInformer. func (v *version) PersistentVolumes() PersistentVolumeInformer { - return &persistentVolumeInformer{factory: v.SharedInformerFactory} + return &persistentVolumeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // PersistentVolumeClaims returns a PersistentVolumeClaimInformer. func (v *version) PersistentVolumeClaims() PersistentVolumeClaimInformer { - return &persistentVolumeClaimInformer{factory: v.SharedInformerFactory} + return &persistentVolumeClaimInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Pods returns a PodInformer. func (v *version) Pods() PodInformer { - return &podInformer{factory: v.SharedInformerFactory} + return &podInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // PodTemplates returns a PodTemplateInformer. func (v *version) PodTemplates() PodTemplateInformer { - return &podTemplateInformer{factory: v.SharedInformerFactory} + return &podTemplateInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // ReplicationControllers returns a ReplicationControllerInformer. func (v *version) ReplicationControllers() ReplicationControllerInformer { - return &replicationControllerInformer{factory: v.SharedInformerFactory} + return &replicationControllerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // ResourceQuotas returns a ResourceQuotaInformer. func (v *version) ResourceQuotas() ResourceQuotaInformer { - return &resourceQuotaInformer{factory: v.SharedInformerFactory} + return &resourceQuotaInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Secrets returns a SecretInformer. func (v *version) Secrets() SecretInformer { - return &secretInformer{factory: v.SharedInformerFactory} + return &secretInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Services returns a ServiceInformer. func (v *version) Services() ServiceInformer { - return &serviceInformer{factory: v.SharedInformerFactory} + return &serviceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // ServiceAccounts returns a ServiceAccountInformer. func (v *version) ServiceAccounts() ServiceAccountInformer { - return &serviceAccountInformer{factory: v.SharedInformerFactory} + return &serviceAccountInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/limitrange.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/limitrange.go index 77ffbb6dc..9588b9402 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/limitrange.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/limitrange.go @@ -38,19 +38,34 @@ type LimitRangeInformer interface { } type limitRangeInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewLimitRangeInformer constructs a new informer for LimitRange 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 NewLimitRangeInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredLimitRangeInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredLimitRangeInformer constructs a new informer for LimitRange 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 NewFilteredLimitRangeInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().LimitRanges(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().LimitRanges(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewLimitRangeInformer(client kubernetes.Interface, namespace string, resync ) } -func defaultLimitRangeInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewLimitRangeInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *limitRangeInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredLimitRangeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *limitRangeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.LimitRange{}, defaultLimitRangeInformer) + return f.factory.InformerFor(&core_v1.LimitRange{}, f.defaultInformer) } func (f *limitRangeInformer) Lister() v1.LimitRangeLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/namespace.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/namespace.go index e37dccfda..eb841b157 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/namespace.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/namespace.go @@ -38,19 +38,33 @@ type NamespaceInformer interface { } type namespaceInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewNamespaceInformer constructs a new informer for Namespace 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 NewNamespaceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredNamespaceInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredNamespaceInformer constructs a new informer for Namespace 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 NewFilteredNamespaceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Namespaces().List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Namespaces().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewNamespaceInformer(client kubernetes.Interface, resyncPeriod time.Duratio ) } -func defaultNamespaceInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewNamespaceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *namespaceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredNamespaceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *namespaceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Namespace{}, defaultNamespaceInformer) + return f.factory.InformerFor(&core_v1.Namespace{}, f.defaultInformer) } func (f *namespaceInformer) Lister() v1.NamespaceLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/node.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/node.go index 9cd065b22..3c70e52b0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/node.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/node.go @@ -38,19 +38,33 @@ type NodeInformer interface { } type nodeInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewNodeInformer constructs a new informer for Node 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 NewNodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredNodeInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredNodeInformer constructs a new informer for Node 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 NewFilteredNodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Nodes().List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Nodes().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewNodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, in ) } -func defaultNodeInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewNodeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *nodeInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredNodeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *nodeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Node{}, defaultNodeInformer) + return f.factory.InformerFor(&core_v1.Node{}, f.defaultInformer) } func (f *nodeInformer) Lister() v1.NodeLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/persistentvolume.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/persistentvolume.go index c41e22f37..e944560f7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/persistentvolume.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/persistentvolume.go @@ -38,19 +38,33 @@ type PersistentVolumeInformer interface { } type persistentVolumeInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewPersistentVolumeInformer constructs a new informer for PersistentVolume 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 NewPersistentVolumeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPersistentVolumeInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredPersistentVolumeInformer constructs a new informer for PersistentVolume 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 NewFilteredPersistentVolumeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().PersistentVolumes().List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().PersistentVolumes().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewPersistentVolumeInformer(client kubernetes.Interface, resyncPeriod time. ) } -func defaultPersistentVolumeInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPersistentVolumeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *persistentVolumeInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPersistentVolumeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *persistentVolumeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.PersistentVolume{}, defaultPersistentVolumeInformer) + return f.factory.InformerFor(&core_v1.PersistentVolume{}, f.defaultInformer) } func (f *persistentVolumeInformer) Lister() v1.PersistentVolumeLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/persistentvolumeclaim.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/persistentvolumeclaim.go index 2d0364caa..136884d4c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/persistentvolumeclaim.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/persistentvolumeclaim.go @@ -38,19 +38,34 @@ type PersistentVolumeClaimInformer interface { } type persistentVolumeClaimInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPersistentVolumeClaimInformer constructs a new informer for PersistentVolumeClaim 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 NewPersistentVolumeClaimInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPersistentVolumeClaimInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPersistentVolumeClaimInformer constructs a new informer for PersistentVolumeClaim 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 NewFilteredPersistentVolumeClaimInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().PersistentVolumeClaims(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().PersistentVolumeClaims(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewPersistentVolumeClaimInformer(client kubernetes.Interface, namespace str ) } -func defaultPersistentVolumeClaimInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPersistentVolumeClaimInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *persistentVolumeClaimInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPersistentVolumeClaimInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *persistentVolumeClaimInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.PersistentVolumeClaim{}, defaultPersistentVolumeClaimInformer) + return f.factory.InformerFor(&core_v1.PersistentVolumeClaim{}, f.defaultInformer) } func (f *persistentVolumeClaimInformer) Lister() v1.PersistentVolumeClaimLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/pod.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/pod.go index d926fbd0f..b97208290 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/pod.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/pod.go @@ -38,19 +38,34 @@ type PodInformer interface { } type podInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPodInformer constructs a new informer for Pod 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 NewPodInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPodInformer constructs a new informer for Pod 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 NewFilteredPodInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Pods(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Pods(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewPodInformer(client kubernetes.Interface, namespace string, resyncPeriod ) } -func defaultPodInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Pod{}, defaultPodInformer) + return f.factory.InformerFor(&core_v1.Pod{}, f.defaultInformer) } func (f *podInformer) Lister() v1.PodLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/podtemplate.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/podtemplate.go index b61f8667b..c05753850 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/podtemplate.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/podtemplate.go @@ -38,19 +38,34 @@ type PodTemplateInformer interface { } type podTemplateInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPodTemplateInformer constructs a new informer for PodTemplate 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 NewPodTemplateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodTemplateInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPodTemplateInformer constructs a new informer for PodTemplate 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 NewFilteredPodTemplateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().PodTemplates(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().PodTemplates(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewPodTemplateInformer(client kubernetes.Interface, namespace string, resyn ) } -func defaultPodTemplateInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodTemplateInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podTemplateInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodTemplateInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podTemplateInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.PodTemplate{}, defaultPodTemplateInformer) + return f.factory.InformerFor(&core_v1.PodTemplate{}, f.defaultInformer) } func (f *podTemplateInformer) Lister() v1.PodTemplateLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/replicationcontroller.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/replicationcontroller.go index f305994cc..e04cd1469 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/replicationcontroller.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/replicationcontroller.go @@ -38,19 +38,34 @@ type ReplicationControllerInformer interface { } type replicationControllerInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewReplicationControllerInformer constructs a new informer for ReplicationController 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 NewReplicationControllerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredReplicationControllerInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredReplicationControllerInformer constructs a new informer for ReplicationController 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 NewFilteredReplicationControllerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ReplicationControllers(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ReplicationControllers(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewReplicationControllerInformer(client kubernetes.Interface, namespace str ) } -func defaultReplicationControllerInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewReplicationControllerInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *replicationControllerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredReplicationControllerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *replicationControllerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ReplicationController{}, defaultReplicationControllerInformer) + return f.factory.InformerFor(&core_v1.ReplicationController{}, f.defaultInformer) } func (f *replicationControllerInformer) Lister() v1.ReplicationControllerLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/resourcequota.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/resourcequota.go index ac69106c8..3ef4f4c12 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/resourcequota.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/resourcequota.go @@ -38,19 +38,34 @@ type ResourceQuotaInformer interface { } type resourceQuotaInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewResourceQuotaInformer constructs a new informer for ResourceQuota 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 NewResourceQuotaInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredResourceQuotaInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredResourceQuotaInformer constructs a new informer for ResourceQuota 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 NewFilteredResourceQuotaInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ResourceQuotas(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ResourceQuotas(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewResourceQuotaInformer(client kubernetes.Interface, namespace string, res ) } -func defaultResourceQuotaInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewResourceQuotaInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *resourceQuotaInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredResourceQuotaInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *resourceQuotaInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ResourceQuota{}, defaultResourceQuotaInformer) + return f.factory.InformerFor(&core_v1.ResourceQuota{}, f.defaultInformer) } func (f *resourceQuotaInformer) Lister() v1.ResourceQuotaLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/secret.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/secret.go index 0c7464bc8..7bc6395a4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/secret.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/secret.go @@ -38,19 +38,34 @@ type SecretInformer interface { } type secretInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewSecretInformer constructs a new informer for Secret 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 NewSecretInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredSecretInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredSecretInformer constructs a new informer for Secret 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 NewFilteredSecretInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Secrets(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Secrets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewSecretInformer(client kubernetes.Interface, namespace string, resyncPeri ) } -func defaultSecretInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewSecretInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *secretInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredSecretInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *secretInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Secret{}, defaultSecretInformer) + return f.factory.InformerFor(&core_v1.Secret{}, f.defaultInformer) } func (f *secretInformer) Lister() v1.SecretLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/service.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/service.go index bba8ab9dc..d1b5ed02f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/service.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/service.go @@ -38,19 +38,34 @@ type ServiceInformer interface { } type serviceInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewServiceInformer constructs a new informer for Service 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 NewServiceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredServiceInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredServiceInformer constructs a new informer for Service 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 NewFilteredServiceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Services(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().Services(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewServiceInformer(client kubernetes.Interface, namespace string, resyncPer ) } -func defaultServiceInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewServiceInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *serviceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredServiceInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *serviceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Service{}, defaultServiceInformer) + return f.factory.InformerFor(&core_v1.Service{}, f.defaultInformer) } func (f *serviceInformer) Lister() v1.ServiceLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/serviceaccount.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/serviceaccount.go index d41667bb2..fb9c50aa3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/serviceaccount.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/core/v1/serviceaccount.go @@ -38,19 +38,34 @@ type ServiceAccountInformer interface { } type serviceAccountInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewServiceAccountInformer constructs a new informer for ServiceAccount 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 NewServiceAccountInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredServiceAccountInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredServiceAccountInformer constructs a new informer for ServiceAccount 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 NewFilteredServiceAccountInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ServiceAccounts(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.CoreV1().ServiceAccounts(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewServiceAccountInformer(client kubernetes.Interface, namespace string, re ) } -func defaultServiceAccountInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewServiceAccountInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *serviceAccountInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredServiceAccountInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *serviceAccountInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ServiceAccount{}, defaultServiceAccountInformer) + return f.factory.InformerFor(&core_v1.ServiceAccount{}, f.defaultInformer) } func (f *serviceAccountInformer) Lister() v1.ServiceAccountLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/interface.go index 009a89b94..a6bfc3b44 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +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.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD index 6ec6cf53f..7f11d7bdf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD @@ -14,7 +14,6 @@ go_library( "interface.go", "podsecuritypolicy.go", "replicaset.go", - "thirdpartyresource.go", ], importpath = "k8s.io/client-go/informers/extensions/v1beta1", deps = [ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/daemonset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/daemonset.go index e203ea6f2..c64b14c3d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/daemonset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/daemonset.go @@ -38,19 +38,34 @@ type DaemonSetInformer interface { } type daemonSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewDaemonSetInformer constructs a new informer for DaemonSet 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 NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDaemonSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDaemonSetInformer constructs a new informer for DaemonSet 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 NewFilteredDaemonSetInformer(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.ExtensionsV1beta1().DaemonSets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ExtensionsV1beta1().DaemonSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncP ) } -func defaultDaemonSetInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewDaemonSetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *daemonSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDaemonSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *daemonSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.DaemonSet{}, defaultDaemonSetInformer) + return f.factory.InformerFor(&extensions_v1beta1.DaemonSet{}, f.defaultInformer) } func (f *daemonSetInformer) Lister() v1beta1.DaemonSetLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/deployment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/deployment.go index 4d20f8abe..4bcfc5c25 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/deployment.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/deployment.go @@ -38,19 +38,34 @@ type DeploymentInformer interface { } type deploymentInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewDeploymentInformer constructs a new informer for Deployment 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 NewDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredDeploymentInformer constructs a new informer for Deployment 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 NewFilteredDeploymentInformer(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.ExtensionsV1beta1().Deployments(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ExtensionsV1beta1().Deployments(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewDeploymentInformer(client kubernetes.Interface, namespace string, resync ) } -func defaultDeploymentInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewDeploymentInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *deploymentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.Deployment{}, defaultDeploymentInformer) + return f.factory.InformerFor(&extensions_v1beta1.Deployment{}, f.defaultInformer) } func (f *deploymentInformer) Lister() v1beta1.DeploymentLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/ingress.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/ingress.go index 9280ffe37..22dac92b9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/ingress.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/ingress.go @@ -38,19 +38,34 @@ type IngressInformer interface { } type ingressInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewIngressInformer constructs a new informer for Ingress 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 NewIngressInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredIngressInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredIngressInformer constructs a new informer for Ingress 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 NewFilteredIngressInformer(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.ExtensionsV1beta1().Ingresses(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ExtensionsV1beta1().Ingresses(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewIngressInformer(client kubernetes.Interface, namespace string, resyncPer ) } -func defaultIngressInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewIngressInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *ingressInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredIngressInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *ingressInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.Ingress{}, defaultIngressInformer) + return f.factory.InformerFor(&extensions_v1beta1.Ingress{}, f.defaultInformer) } func (f *ingressInformer) Lister() v1beta1.IngressLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/interface.go index ef226bae0..ce060e0d9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/interface.go @@ -34,45 +34,40 @@ type Interface interface { PodSecurityPolicies() PodSecurityPolicyInformer // ReplicaSets returns a ReplicaSetInformer. ReplicaSets() ReplicaSetInformer - // ThirdPartyResources returns a ThirdPartyResourceInformer. - ThirdPartyResources() ThirdPartyResourceInformer } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // DaemonSets returns a DaemonSetInformer. func (v *version) DaemonSets() DaemonSetInformer { - return &daemonSetInformer{factory: v.SharedInformerFactory} + return &daemonSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Deployments returns a DeploymentInformer. func (v *version) Deployments() DeploymentInformer { - return &deploymentInformer{factory: v.SharedInformerFactory} + return &deploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // Ingresses returns a IngressInformer. func (v *version) Ingresses() IngressInformer { - return &ingressInformer{factory: v.SharedInformerFactory} + return &ingressInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // PodSecurityPolicies returns a PodSecurityPolicyInformer. func (v *version) PodSecurityPolicies() PodSecurityPolicyInformer { - return &podSecurityPolicyInformer{factory: v.SharedInformerFactory} + return &podSecurityPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // ReplicaSets returns a ReplicaSetInformer. func (v *version) ReplicaSets() ReplicaSetInformer { - return &replicaSetInformer{factory: v.SharedInformerFactory} -} - -// ThirdPartyResources returns a ThirdPartyResourceInformer. -func (v *version) ThirdPartyResources() ThirdPartyResourceInformer { - return &thirdPartyResourceInformer{factory: v.SharedInformerFactory} + return &replicaSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/podsecuritypolicy.go index 59336b0e4..18ef2735b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/podsecuritypolicy.go @@ -38,19 +38,33 @@ type PodSecurityPolicyInformer interface { } type podSecurityPolicyInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewPodSecurityPolicyInformer constructs a new informer for PodSecurityPolicy 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 NewPodSecurityPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodSecurityPolicyInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredPodSecurityPolicyInformer constructs a new informer for PodSecurityPolicy 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 NewFilteredPodSecurityPolicyInformer(client kubernetes.Interface, 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.ExtensionsV1beta1().PodSecurityPolicies().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ExtensionsV1beta1().PodSecurityPolicies().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewPodSecurityPolicyInformer(client kubernetes.Interface, resyncPeriod time ) } -func defaultPodSecurityPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodSecurityPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podSecurityPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodSecurityPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podSecurityPolicyInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.PodSecurityPolicy{}, defaultPodSecurityPolicyInformer) + return f.factory.InformerFor(&extensions_v1beta1.PodSecurityPolicy{}, f.defaultInformer) } func (f *podSecurityPolicyInformer) Lister() v1beta1.PodSecurityPolicyLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/replicaset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/replicaset.go index 8d1af8119..856cb30ba 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/replicaset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/replicaset.go @@ -38,19 +38,34 @@ type ReplicaSetInformer interface { } type replicaSetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewReplicaSetInformer constructs a new informer for ReplicaSet 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 NewReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredReplicaSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredReplicaSetInformer constructs a new informer for ReplicaSet 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 NewFilteredReplicaSetInformer(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.ExtensionsV1beta1().ReplicaSets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ExtensionsV1beta1().ReplicaSets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewReplicaSetInformer(client kubernetes.Interface, namespace string, resync ) } -func defaultReplicaSetInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewReplicaSetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *replicaSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredReplicaSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *replicaSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.ReplicaSet{}, defaultReplicaSetInformer) + return f.factory.InformerFor(&extensions_v1beta1.ReplicaSet{}, f.defaultInformer) } func (f *replicaSetInformer) Lister() v1beta1.ReplicaSetLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/thirdpartyresource.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/thirdpartyresource.go deleted file mode 100644 index 62d02a548..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/extensions/v1beta1/thirdpartyresource.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -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 ( - extensions_v1beta1 "k8s.io/api/extensions/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/extensions/v1beta1" - cache "k8s.io/client-go/tools/cache" - time "time" -) - -// ThirdPartyResourceInformer provides access to a shared informer and lister for -// ThirdPartyResources. -type ThirdPartyResourceInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1beta1.ThirdPartyResourceLister -} - -type thirdPartyResourceInformer struct { - factory internalinterfaces.SharedInformerFactory -} - -// NewThirdPartyResourceInformer constructs a new informer for ThirdPartyResource 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 NewThirdPartyResourceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - return client.ExtensionsV1beta1().ThirdPartyResources().List(options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - return client.ExtensionsV1beta1().ThirdPartyResources().Watch(options) - }, - }, - &extensions_v1beta1.ThirdPartyResource{}, - resyncPeriod, - indexers, - ) -} - -func defaultThirdPartyResourceInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewThirdPartyResourceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) -} - -func (f *thirdPartyResourceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.ThirdPartyResource{}, defaultThirdPartyResourceInformer) -} - -func (f *thirdPartyResourceInformer) Lister() v1beta1.ThirdPartyResourceLister { - return v1beta1.NewThirdPartyResourceLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/factory.go index c28c7bc41..89ef77bad 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/factory.go @@ -19,6 +19,7 @@ limitations under the License. package informers import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" admissionregistration "k8s.io/client-go/informers/admissionregistration" @@ -43,9 +44,11 @@ import ( ) type sharedInformerFactory struct { - client kubernetes.Interface - lock sync.Mutex - defaultResync time.Duration + client kubernetes.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -55,8 +58,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client kubernetes.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client kubernetes.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -138,53 +150,53 @@ type SharedInformerFactory interface { } func (f *sharedInformerFactory) Admissionregistration() admissionregistration.Interface { - return admissionregistration.New(f) + return admissionregistration.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Apps() apps.Interface { - return apps.New(f) + return apps.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Autoscaling() autoscaling.Interface { - return autoscaling.New(f) + return autoscaling.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Batch() batch.Interface { - return batch.New(f) + return batch.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Certificates() certificates.Interface { - return certificates.New(f) + return certificates.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Core() core.Interface { - return core.New(f) + return core.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Extensions() extensions.Interface { - return extensions.New(f) + return extensions.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Networking() networking.Interface { - return networking.New(f) + return networking.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Policy() policy.Interface { - return policy.New(f) + return policy.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Rbac() rbac.Interface { - return rbac.New(f) + return rbac.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Scheduling() scheduling.Interface { - return scheduling.New(f) + return scheduling.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Settings() settings.Interface { - return settings.New(f) + return settings.New(f, f.namespace, f.tweakListOptions) } func (f *sharedInformerFactory) Storage() storage.Interface { - return storage.New(f) + return storage.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/generic.go index 67b1d4cdb..e32ffa828 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/generic.go @@ -40,6 +40,7 @@ import ( scheduling_v1alpha1 "k8s.io/api/scheduling/v1alpha1" settings_v1alpha1 "k8s.io/api/settings/v1alpha1" storage_v1 "k8s.io/api/storage/v1" + storage_v1alpha1 "k8s.io/api/storage/v1alpha1" storage_v1beta1 "k8s.io/api/storage/v1beta1" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" @@ -71,17 +72,27 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Admissionregistration, Version=V1alpha1 - case v1alpha1.SchemeGroupVersion.WithResource("externaladmissionhookconfigurations"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1alpha1().ExternalAdmissionHookConfigurations().Informer()}, nil + // Group=admissionregistration.k8s.io, Version=v1alpha1 case v1alpha1.SchemeGroupVersion.WithResource("initializerconfigurations"): return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1alpha1().InitializerConfigurations().Informer()}, nil - - // Group=Apps, Version=V1 + case v1alpha1.SchemeGroupVersion.WithResource("mutatingwebhookconfigurations"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1alpha1().MutatingWebhookConfigurations().Informer()}, nil + case v1alpha1.SchemeGroupVersion.WithResource("validatingwebhookconfigurations"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1alpha1().ValidatingWebhookConfigurations().Informer()}, nil + + // Group=apps, Version=v1 + case v1.SchemeGroupVersion.WithResource("controllerrevisions"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().ControllerRevisions().Informer()}, nil case v1.SchemeGroupVersion.WithResource("daemonsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().DaemonSets().Informer()}, nil - - // Group=Apps, Version=V1beta1 + case v1.SchemeGroupVersion.WithResource("deployments"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().Deployments().Informer()}, nil + case v1.SchemeGroupVersion.WithResource("replicasets"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().ReplicaSets().Informer()}, nil + case v1.SchemeGroupVersion.WithResource("statefulsets"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().StatefulSets().Informer()}, nil + + // Group=apps, Version=v1beta1 case v1beta1.SchemeGroupVersion.WithResource("controllerrevisions"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().ControllerRevisions().Informer()}, nil case v1beta1.SchemeGroupVersion.WithResource("deployments"): @@ -89,7 +100,7 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case v1beta1.SchemeGroupVersion.WithResource("statefulsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().StatefulSets().Informer()}, nil - // Group=Apps, Version=V1beta2 + // Group=apps, Version=v1beta2 case v1beta2.SchemeGroupVersion.WithResource("controllerrevisions"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().ControllerRevisions().Informer()}, nil case v1beta2.SchemeGroupVersion.WithResource("daemonsets"): @@ -101,31 +112,31 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case v1beta2.SchemeGroupVersion.WithResource("statefulsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().StatefulSets().Informer()}, nil - // Group=Autoscaling, Version=V1 + // Group=autoscaling, Version=v1 case autoscaling_v1.SchemeGroupVersion.WithResource("horizontalpodautoscalers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V1().HorizontalPodAutoscalers().Informer()}, nil - // Group=Autoscaling, Version=V2beta1 + // Group=autoscaling, Version=v2beta1 case v2beta1.SchemeGroupVersion.WithResource("horizontalpodautoscalers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta1().HorizontalPodAutoscalers().Informer()}, nil - // Group=Batch, Version=V1 + // Group=batch, Version=v1 case batch_v1.SchemeGroupVersion.WithResource("jobs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1().Jobs().Informer()}, nil - // Group=Batch, Version=V1beta1 + // Group=batch, Version=v1beta1 case batch_v1beta1.SchemeGroupVersion.WithResource("cronjobs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1beta1().CronJobs().Informer()}, nil - // Group=Batch, Version=V2alpha1 + // Group=batch, Version=v2alpha1 case v2alpha1.SchemeGroupVersion.WithResource("cronjobs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V2alpha1().CronJobs().Informer()}, nil - // Group=Certificates, Version=V1beta1 + // Group=certificates.k8s.io, Version=v1beta1 case certificates_v1beta1.SchemeGroupVersion.WithResource("certificatesigningrequests"): return &genericInformer{resource: resource.GroupResource(), informer: f.Certificates().V1beta1().CertificateSigningRequests().Informer()}, nil - // Group=Core, Version=V1 + // Group=core, Version=v1 case core_v1.SchemeGroupVersion.WithResource("componentstatuses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ComponentStatuses().Informer()}, nil case core_v1.SchemeGroupVersion.WithResource("configmaps"): @@ -159,7 +170,7 @@ 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=Extensions, Version=V1beta1 + // Group=extensions, Version=v1beta1 case extensions_v1beta1.SchemeGroupVersion.WithResource("daemonsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().DaemonSets().Informer()}, nil case extensions_v1beta1.SchemeGroupVersion.WithResource("deployments"): @@ -170,18 +181,16 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().PodSecurityPolicies().Informer()}, nil case extensions_v1beta1.SchemeGroupVersion.WithResource("replicasets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().ReplicaSets().Informer()}, nil - case extensions_v1beta1.SchemeGroupVersion.WithResource("thirdpartyresources"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().ThirdPartyResources().Informer()}, nil - // Group=Networking, Version=V1 + // Group=networking.k8s.io, Version=v1 case networking_v1.SchemeGroupVersion.WithResource("networkpolicies"): return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1().NetworkPolicies().Informer()}, nil - // Group=Policy, Version=V1beta1 + // Group=policy, Version=v1beta1 case policy_v1beta1.SchemeGroupVersion.WithResource("poddisruptionbudgets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodDisruptionBudgets().Informer()}, nil - // Group=Rbac, Version=V1 + // Group=rbac.authorization.k8s.io, Version=v1 case rbac_v1.SchemeGroupVersion.WithResource("clusterroles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().ClusterRoles().Informer()}, nil case rbac_v1.SchemeGroupVersion.WithResource("clusterrolebindings"): @@ -191,7 +200,7 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case rbac_v1.SchemeGroupVersion.WithResource("rolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().RoleBindings().Informer()}, nil - // Group=Rbac, Version=V1alpha1 + // Group=rbac.authorization.k8s.io, Version=v1alpha1 case rbac_v1alpha1.SchemeGroupVersion.WithResource("clusterroles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().ClusterRoles().Informer()}, nil case rbac_v1alpha1.SchemeGroupVersion.WithResource("clusterrolebindings"): @@ -201,7 +210,7 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case rbac_v1alpha1.SchemeGroupVersion.WithResource("rolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().RoleBindings().Informer()}, nil - // Group=Rbac, Version=V1beta1 + // Group=rbac.authorization.k8s.io, Version=v1beta1 case rbac_v1beta1.SchemeGroupVersion.WithResource("clusterroles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().ClusterRoles().Informer()}, nil case rbac_v1beta1.SchemeGroupVersion.WithResource("clusterrolebindings"): @@ -211,19 +220,23 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case rbac_v1beta1.SchemeGroupVersion.WithResource("rolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().RoleBindings().Informer()}, nil - // Group=Scheduling, Version=V1alpha1 + // Group=scheduling.k8s.io, Version=v1alpha1 case scheduling_v1alpha1.SchemeGroupVersion.WithResource("priorityclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1alpha1().PriorityClasses().Informer()}, nil - // Group=Settings, Version=V1alpha1 + // Group=settings.k8s.io, Version=v1alpha1 case settings_v1alpha1.SchemeGroupVersion.WithResource("podpresets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Settings().V1alpha1().PodPresets().Informer()}, nil - // Group=Storage, Version=V1 + // Group=storage.k8s.io, Version=v1 case storage_v1.SchemeGroupVersion.WithResource("storageclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().StorageClasses().Informer()}, nil - // Group=Storage, Version=V1beta1 + // Group=storage.k8s.io, Version=v1alpha1 + case storage_v1alpha1.SchemeGroupVersion.WithResource("volumeattachments"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1alpha1().VolumeAttachments().Informer()}, nil + + // Group=storage.k8s.io, Version=v1beta1 case storage_v1beta1.SchemeGroupVersion.WithResource("storageclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().StorageClasses().Informer()}, nil diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD index 7cfc5c32c..5b20c78f7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD @@ -10,6 +10,7 @@ go_library( srcs = ["factory_interfaces.go"], importpath = "k8s.io/client-go/informers/internalinterfaces", deps = [ + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/internalinterfaces/factory_interfaces.go index bfe354a59..61155f740 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/internalinterfaces/factory_interfaces.go @@ -19,6 +19,7 @@ limitations under the License. package internalinterfaces import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" kubernetes "k8s.io/client-go/kubernetes" cache "k8s.io/client-go/tools/cache" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/interface.go index a5df58b04..79e0d0c15 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1 returns a new v1.Interface. func (g *group) V1() v1.Interface { - return v1.New(g.SharedInformerFactory) + return v1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/v1/interface.go index 2ae314a5a..980a7be99 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/v1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/v1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // NetworkPolicies returns a NetworkPolicyInformer. func (v *version) NetworkPolicies() NetworkPolicyInformer { - return &networkPolicyInformer{factory: v.SharedInformerFactory} + return &networkPolicyInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/v1/networkpolicy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/v1/networkpolicy.go index d85384596..b712ba030 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/v1/networkpolicy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/networking/v1/networkpolicy.go @@ -38,19 +38,34 @@ type NetworkPolicyInformer interface { } type networkPolicyInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewNetworkPolicyInformer constructs a new informer for NetworkPolicy 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 NewNetworkPolicyInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredNetworkPolicyInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredNetworkPolicyInformer constructs a new informer for NetworkPolicy 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 NewFilteredNetworkPolicyInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.NetworkingV1().NetworkPolicies(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.NetworkingV1().NetworkPolicies(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewNetworkPolicyInformer(client kubernetes.Interface, namespace string, res ) } -func defaultNetworkPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewNetworkPolicyInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *networkPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredNetworkPolicyInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *networkPolicyInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&networking_v1.NetworkPolicy{}, defaultNetworkPolicyInformer) + return f.factory.InformerFor(&networking_v1.NetworkPolicy{}, f.defaultInformer) } func (f *networkPolicyInformer) Lister() v1.NetworkPolicyLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/interface.go index c03b9bfd7..f893c3d5b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +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.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/v1beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/v1beta1/interface.go index 39b1abbed..f235ee1d0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/v1beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/v1beta1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // PodDisruptionBudgets returns a PodDisruptionBudgetInformer. func (v *version) PodDisruptionBudgets() PodDisruptionBudgetInformer { - return &podDisruptionBudgetInformer{factory: v.SharedInformerFactory} + return &podDisruptionBudgetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/v1beta1/poddisruptionbudget.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/v1beta1/poddisruptionbudget.go index b10ec42f3..ba0da35b1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/v1beta1/poddisruptionbudget.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/policy/v1beta1/poddisruptionbudget.go @@ -38,19 +38,34 @@ type PodDisruptionBudgetInformer interface { } type podDisruptionBudgetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget 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 NewPodDisruptionBudgetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodDisruptionBudgetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget 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 NewFilteredPodDisruptionBudgetInformer(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.PolicyV1beta1().PodDisruptionBudgets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.PolicyV1beta1().PodDisruptionBudgets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewPodDisruptionBudgetInformer(client kubernetes.Interface, namespace strin ) } -func defaultPodDisruptionBudgetInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodDisruptionBudgetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podDisruptionBudgetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodDisruptionBudgetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podDisruptionBudgetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&policy_v1beta1.PodDisruptionBudget{}, defaultPodDisruptionBudgetInformer) + return f.factory.InformerFor(&policy_v1beta1.PodDisruptionBudget{}, f.defaultInformer) } func (f *podDisruptionBudgetInformer) Lister() v1beta1.PodDisruptionBudgetLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/interface.go index dfa6fcb4c..df7adfcd3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/interface.go @@ -36,25 +36,27 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1 returns a new v1.Interface. func (g *group) V1() v1.Interface { - return v1.New(g.SharedInformerFactory) + return v1.New(g.factory, g.namespace, g.tweakListOptions) } // V1alpha1 returns a new v1alpha1.Interface. func (g *group) V1alpha1() v1alpha1.Interface { - return v1alpha1.New(g.SharedInformerFactory) + return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) } // V1beta1 returns a new v1beta1.Interface. func (g *group) V1beta1() v1beta1.Interface { - return v1beta1.New(g.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrole.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrole.go index 1d1f93404..ac75abbc8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrole.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrole.go @@ -38,19 +38,33 @@ type ClusterRoleInformer interface { } type clusterRoleInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewClusterRoleInformer constructs a new informer for ClusterRole 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 NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredClusterRoleInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredClusterRoleInformer constructs a new informer for ClusterRole 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 NewFilteredClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1().ClusterRoles().List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1().ClusterRoles().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Durat ) } -func defaultClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *clusterRoleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1.ClusterRole{}, defaultClusterRoleInformer) + return f.factory.InformerFor(&rbac_v1.ClusterRole{}, f.defaultInformer) } func (f *clusterRoleInformer) Lister() v1.ClusterRoleLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go index 1c8cdda89..a3c73e586 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go @@ -38,19 +38,33 @@ type ClusterRoleBindingInformer interface { } type clusterRoleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewFilteredClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1().ClusterRoleBindings().List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1().ClusterRoleBindings().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod tim ) } -func defaultClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *clusterRoleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1.ClusterRoleBinding{}, defaultClusterRoleBindingInformer) + return f.factory.InformerFor(&rbac_v1.ClusterRoleBinding{}, f.defaultInformer) } func (f *clusterRoleBindingInformer) Lister() v1.ClusterRoleBindingLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/interface.go index 38900ef1e..1e46b039b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/interface.go @@ -35,30 +35,32 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // ClusterRoles returns a ClusterRoleInformer. func (v *version) ClusterRoles() ClusterRoleInformer { - return &clusterRoleInformer{factory: v.SharedInformerFactory} + return &clusterRoleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // ClusterRoleBindings returns a ClusterRoleBindingInformer. func (v *version) ClusterRoleBindings() ClusterRoleBindingInformer { - return &clusterRoleBindingInformer{factory: v.SharedInformerFactory} + return &clusterRoleBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // Roles returns a RoleInformer. func (v *version) Roles() RoleInformer { - return &roleInformer{factory: v.SharedInformerFactory} + return &roleInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // RoleBindings returns a RoleBindingInformer. func (v *version) RoleBindings() RoleBindingInformer { - return &roleBindingInformer{factory: v.SharedInformerFactory} + return &roleBindingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/role.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/role.go index 79f33eabc..fb1de4614 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/role.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/role.go @@ -38,19 +38,34 @@ type RoleInformer interface { } type roleInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewRoleInformer constructs a new informer for Role 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 NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredRoleInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredRoleInformer constructs a new informer for Role 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 NewFilteredRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1().Roles(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1().Roles(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod ) } -func defaultRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewRoleInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *roleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredRoleInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *roleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1.Role{}, defaultRoleInformer) + return f.factory.InformerFor(&rbac_v1.Role{}, f.defaultInformer) } func (f *roleInformer) Lister() v1.RoleLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/rolebinding.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/rolebinding.go index 71548e1a3..78c78fa1a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/rolebinding.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1/rolebinding.go @@ -38,19 +38,34 @@ type RoleBindingInformer interface { } type roleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewRoleBindingInformer constructs a new informer for RoleBinding 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 NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredRoleBindingInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredRoleBindingInformer constructs a new informer for RoleBinding 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 NewFilteredRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1().RoleBindings(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1().RoleBindings(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyn ) } -func defaultRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewRoleBindingInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *roleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredRoleBindingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1.RoleBinding{}, defaultRoleBindingInformer) + return f.factory.InformerFor(&rbac_v1.RoleBinding{}, f.defaultInformer) } func (f *roleBindingInformer) Lister() v1.RoleBindingLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/clusterrole.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/clusterrole.go index 435bec5a2..ec257965b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/clusterrole.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/clusterrole.go @@ -38,19 +38,33 @@ type ClusterRoleInformer interface { } type clusterRoleInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewClusterRoleInformer constructs a new informer for ClusterRole 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 NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredClusterRoleInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredClusterRoleInformer constructs a new informer for ClusterRole 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 NewFilteredClusterRoleInformer(client kubernetes.Interface, 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.RbacV1alpha1().ClusterRoles().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1alpha1().ClusterRoles().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Durat ) } -func defaultClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *clusterRoleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1alpha1.ClusterRole{}, defaultClusterRoleInformer) + return f.factory.InformerFor(&rbac_v1alpha1.ClusterRole{}, f.defaultInformer) } func (f *clusterRoleInformer) Lister() v1alpha1.ClusterRoleLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/clusterrolebinding.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/clusterrolebinding.go index 167a18870..a2d0c3960 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/clusterrolebinding.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/clusterrolebinding.go @@ -38,19 +38,33 @@ type ClusterRoleBindingInformer interface { } type clusterRoleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewFilteredClusterRoleBindingInformer(client kubernetes.Interface, 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.RbacV1alpha1().ClusterRoleBindings().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1alpha1().ClusterRoleBindings().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod tim ) } -func defaultClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *clusterRoleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1alpha1.ClusterRoleBinding{}, defaultClusterRoleBindingInformer) + return f.factory.InformerFor(&rbac_v1alpha1.ClusterRoleBinding{}, f.defaultInformer) } func (f *clusterRoleBindingInformer) Lister() v1alpha1.ClusterRoleBindingLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/interface.go index 4c84b9a54..586283d4a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/interface.go @@ -35,30 +35,32 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // ClusterRoles returns a ClusterRoleInformer. func (v *version) ClusterRoles() ClusterRoleInformer { - return &clusterRoleInformer{factory: v.SharedInformerFactory} + return &clusterRoleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // ClusterRoleBindings returns a ClusterRoleBindingInformer. func (v *version) ClusterRoleBindings() ClusterRoleBindingInformer { - return &clusterRoleBindingInformer{factory: v.SharedInformerFactory} + return &clusterRoleBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // Roles returns a RoleInformer. func (v *version) Roles() RoleInformer { - return &roleInformer{factory: v.SharedInformerFactory} + return &roleInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // RoleBindings returns a RoleBindingInformer. func (v *version) RoleBindings() RoleBindingInformer { - return &roleBindingInformer{factory: v.SharedInformerFactory} + return &roleBindingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/role.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/role.go index 81ef493a2..4564b3361 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/role.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/role.go @@ -38,19 +38,34 @@ type RoleInformer interface { } type roleInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewRoleInformer constructs a new informer for Role 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 NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredRoleInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredRoleInformer constructs a new informer for Role 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 NewFilteredRoleInformer(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.RbacV1alpha1().Roles(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1alpha1().Roles(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod ) } -func defaultRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewRoleInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *roleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredRoleInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *roleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1alpha1.Role{}, defaultRoleInformer) + return f.factory.InformerFor(&rbac_v1alpha1.Role{}, f.defaultInformer) } func (f *roleInformer) Lister() v1alpha1.RoleLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/rolebinding.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/rolebinding.go index bfc896578..556f966a8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/rolebinding.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/rolebinding.go @@ -38,19 +38,34 @@ type RoleBindingInformer interface { } type roleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewRoleBindingInformer constructs a new informer for RoleBinding 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 NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredRoleBindingInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredRoleBindingInformer constructs a new informer for RoleBinding 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 NewFilteredRoleBindingInformer(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.RbacV1alpha1().RoleBindings(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1alpha1().RoleBindings(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyn ) } -func defaultRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewRoleBindingInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *roleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredRoleBindingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1alpha1.RoleBinding{}, defaultRoleBindingInformer) + return f.factory.InformerFor(&rbac_v1alpha1.RoleBinding{}, f.defaultInformer) } func (f *roleBindingInformer) Lister() v1alpha1.RoleBindingLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/clusterrole.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/clusterrole.go index 9798b9b25..821746b90 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/clusterrole.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/clusterrole.go @@ -38,19 +38,33 @@ type ClusterRoleInformer interface { } type clusterRoleInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewClusterRoleInformer constructs a new informer for ClusterRole 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 NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredClusterRoleInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredClusterRoleInformer constructs a new informer for ClusterRole 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 NewFilteredClusterRoleInformer(client kubernetes.Interface, 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.RbacV1beta1().ClusterRoles().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1beta1().ClusterRoles().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Durat ) } -func defaultClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *clusterRoleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1beta1.ClusterRole{}, defaultClusterRoleInformer) + return f.factory.InformerFor(&rbac_v1beta1.ClusterRole{}, f.defaultInformer) } func (f *clusterRoleInformer) Lister() v1beta1.ClusterRoleLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/clusterrolebinding.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/clusterrolebinding.go index 52370de1f..c517ac456 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/clusterrolebinding.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/clusterrolebinding.go @@ -38,19 +38,33 @@ type ClusterRoleBindingInformer interface { } type clusterRoleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewFilteredClusterRoleBindingInformer(client kubernetes.Interface, 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.RbacV1beta1().ClusterRoleBindings().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1beta1().ClusterRoleBindings().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod tim ) } -func defaultClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *clusterRoleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1beta1.ClusterRoleBinding{}, defaultClusterRoleBindingInformer) + return f.factory.InformerFor(&rbac_v1beta1.ClusterRoleBinding{}, f.defaultInformer) } func (f *clusterRoleBindingInformer) Lister() v1beta1.ClusterRoleBindingLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/interface.go index f8d082a3f..9d375d947 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/interface.go @@ -35,30 +35,32 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // ClusterRoles returns a ClusterRoleInformer. func (v *version) ClusterRoles() ClusterRoleInformer { - return &clusterRoleInformer{factory: v.SharedInformerFactory} + return &clusterRoleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // ClusterRoleBindings returns a ClusterRoleBindingInformer. func (v *version) ClusterRoleBindings() ClusterRoleBindingInformer { - return &clusterRoleBindingInformer{factory: v.SharedInformerFactory} + return &clusterRoleBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // Roles returns a RoleInformer. func (v *version) Roles() RoleInformer { - return &roleInformer{factory: v.SharedInformerFactory} + return &roleInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } // RoleBindings returns a RoleBindingInformer. func (v *version) RoleBindings() RoleBindingInformer { - return &roleBindingInformer{factory: v.SharedInformerFactory} + return &roleBindingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/role.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/role.go index 7fcf97f25..0f13d3aaf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/role.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/role.go @@ -38,19 +38,34 @@ type RoleInformer interface { } type roleInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewRoleInformer constructs a new informer for Role 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 NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredRoleInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredRoleInformer constructs a new informer for Role 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 NewFilteredRoleInformer(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.RbacV1beta1().Roles(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1beta1().Roles(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod ) } -func defaultRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewRoleInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *roleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredRoleInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *roleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1beta1.Role{}, defaultRoleInformer) + return f.factory.InformerFor(&rbac_v1beta1.Role{}, f.defaultInformer) } func (f *roleInformer) Lister() v1beta1.RoleLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/rolebinding.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/rolebinding.go index d6e93bec6..c951d97d5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/rolebinding.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/rbac/v1beta1/rolebinding.go @@ -38,19 +38,34 @@ type RoleBindingInformer interface { } type roleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewRoleBindingInformer constructs a new informer for RoleBinding 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 NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredRoleBindingInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredRoleBindingInformer constructs a new informer for RoleBinding 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 NewFilteredRoleBindingInformer(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.RbacV1beta1().RoleBindings(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.RbacV1beta1().RoleBindings(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyn ) } -func defaultRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewRoleBindingInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *roleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredRoleBindingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1beta1.RoleBinding{}, defaultRoleBindingInformer) + return f.factory.InformerFor(&rbac_v1beta1.RoleBinding{}, f.defaultInformer) } func (f *roleBindingInformer) Lister() v1beta1.RoleBindingLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/interface.go index df6a93eb1..60b63e8e5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1alpha1 returns a new v1alpha1.Interface. func (g *group) V1alpha1() v1alpha1.Interface { - return v1alpha1.New(g.SharedInformerFactory) + return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/interface.go index a97d5f477..1cceef7b2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // PriorityClasses returns a PriorityClassInformer. func (v *version) PriorityClasses() PriorityClassInformer { - return &priorityClassInformer{factory: v.SharedInformerFactory} + return &priorityClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/priorityclass.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/priorityclass.go index 9b1361c06..5c90f43df 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/priorityclass.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/priorityclass.go @@ -38,19 +38,33 @@ type PriorityClassInformer interface { } type priorityClassInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewPriorityClassInformer constructs a new informer for PriorityClass 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 NewPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPriorityClassInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredPriorityClassInformer constructs a new informer for PriorityClass 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 NewFilteredPriorityClassInformer(client kubernetes.Interface, 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.SchedulingV1alpha1().PriorityClasses().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.SchedulingV1alpha1().PriorityClasses().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Dur ) } -func defaultPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPriorityClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *priorityClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPriorityClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *priorityClassInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&scheduling_v1alpha1.PriorityClass{}, defaultPriorityClassInformer) + return f.factory.InformerFor(&scheduling_v1alpha1.PriorityClass{}, f.defaultInformer) } func (f *priorityClassInformer) Lister() v1alpha1.PriorityClassLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/interface.go index 00d051eac..53bc66217 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1alpha1 returns a new v1alpha1.Interface. func (g *group) V1alpha1() v1alpha1.Interface { - return v1alpha1.New(g.SharedInformerFactory) + return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/v1alpha1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/v1alpha1/interface.go index 58114f6e2..39007ebe2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/v1alpha1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/v1alpha1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // PodPresets returns a PodPresetInformer. func (v *version) PodPresets() PodPresetInformer { - return &podPresetInformer{factory: v.SharedInformerFactory} + return &podPresetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/v1alpha1/podpreset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/v1alpha1/podpreset.go index 226cec527..2e630c73d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/v1alpha1/podpreset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/settings/v1alpha1/podpreset.go @@ -38,19 +38,34 @@ type PodPresetInformer interface { } type podPresetInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewPodPresetInformer constructs a new informer for PodPreset 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 NewPodPresetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPodPresetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredPodPresetInformer constructs a new informer for PodPreset 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 NewFilteredPodPresetInformer(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.SettingsV1alpha1().PodPresets(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.SettingsV1alpha1().PodPresets(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewPodPresetInformer(client kubernetes.Interface, namespace string, resyncP ) } -func defaultPodPresetInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewPodPresetInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *podPresetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPodPresetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *podPresetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&settings_v1alpha1.PodPreset{}, defaultPodPresetInformer) + return f.factory.InformerFor(&settings_v1alpha1.PodPreset{}, f.defaultInformer) } func (f *podPresetInformer) Lister() v1alpha1.PodPresetLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/BUILD index 7df82e7f1..56e9e1850 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/BUILD @@ -12,6 +12,7 @@ go_library( deps = [ "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", "//vendor/k8s.io/client-go/informers/storage/v1:go_default_library", + "//vendor/k8s.io/client-go/informers/storage/v1alpha1:go_default_library", "//vendor/k8s.io/client-go/informers/storage/v1beta1:go_default_library", ], ) @@ -28,6 +29,7 @@ filegroup( srcs = [ ":package-srcs", "//staging/src/k8s.io/client-go/informers/storage/v1:all-srcs", + "//staging/src/k8s.io/client-go/informers/storage/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/informers/storage/v1beta1:all-srcs", ], tags = ["automanaged"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/interface.go index 7f3a69eb2..b91613a92 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/interface.go @@ -21,6 +21,7 @@ package storage import ( internalinterfaces "k8s.io/client-go/informers/internalinterfaces" v1 "k8s.io/client-go/informers/storage/v1" + v1alpha1 "k8s.io/client-go/informers/storage/v1alpha1" v1beta1 "k8s.io/client-go/informers/storage/v1beta1" ) @@ -28,25 +29,34 @@ import ( type Interface interface { // V1 provides access to shared informers for resources in V1. V1() v1.Interface + // V1alpha1 provides access to shared informers for resources in V1alpha1. + V1alpha1() v1alpha1.Interface // V1beta1 provides access to shared informers for resources in V1beta1. V1beta1() v1beta1.Interface } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1 returns a new v1.Interface. func (g *group) V1() v1.Interface { - return v1.New(g.SharedInformerFactory) + return v1.New(g.factory, g.namespace, g.tweakListOptions) +} + +// V1alpha1 returns a new v1alpha1.Interface. +func (g *group) V1alpha1() v1alpha1.Interface { + return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) } // V1beta1 returns a new v1beta1.Interface. func (g *group) V1beta1() v1beta1.Interface { - return v1beta1.New(g.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1/interface.go index 642d4c494..fadb1a073 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // StorageClasses returns a StorageClassInformer. func (v *version) StorageClasses() StorageClassInformer { - return &storageClassInformer{factory: v.SharedInformerFactory} + return &storageClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1/storageclass.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1/storageclass.go index 397474c31..341549f0f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1/storageclass.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1/storageclass.go @@ -38,19 +38,33 @@ type StorageClassInformer interface { } type storageClassInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewStorageClassInformer constructs a new informer for StorageClass 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 NewStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredStorageClassInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredStorageClassInformer constructs a new informer for StorageClass 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 NewFilteredStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.StorageV1().StorageClasses().List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.StorageV1().StorageClasses().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Dura ) } -func defaultStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewStorageClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *storageClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredStorageClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *storageClassInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&storage_v1.StorageClass{}, defaultStorageClassInformer) + return f.factory.InformerFor(&storage_v1.StorageClass{}, f.defaultInformer) } func (f *storageClassInformer) Lister() v1.StorageClassLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/BUILD new file mode 100644 index 000000000..1871ff496 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "interface.go", + "volumeattachment.go", + ], + importpath = "k8s.io/client-go/informers/storage/v1alpha1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/storage/v1alpha1: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/storage/v1alpha1: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/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/interface.go new file mode 100644 index 000000000..d84eb5fd2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/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 v1alpha1 + +import ( + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // VolumeAttachments returns a VolumeAttachmentInformer. + VolumeAttachments() VolumeAttachmentInformer +} + +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} +} + +// VolumeAttachments returns a VolumeAttachmentInformer. +func (v *version) VolumeAttachments() VolumeAttachmentInformer { + return &volumeAttachmentInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/volumeattachment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/volumeattachment.go new file mode 100644 index 000000000..cab9ffc46 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1alpha1/volumeattachment.go @@ -0,0 +1,87 @@ +/* +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 v1alpha1 + +import ( + storage_v1alpha1 "k8s.io/api/storage/v1alpha1" + 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" + v1alpha1 "k8s.io/client-go/listers/storage/v1alpha1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// VolumeAttachmentInformer provides access to a shared informer and lister for +// VolumeAttachments. +type VolumeAttachmentInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1alpha1.VolumeAttachmentLister +} + +type volumeAttachmentInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewVolumeAttachmentInformer constructs a new informer for VolumeAttachment 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 NewVolumeAttachmentInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredVolumeAttachmentInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredVolumeAttachmentInformer constructs a new informer for VolumeAttachment 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 NewFilteredVolumeAttachmentInformer(client kubernetes.Interface, 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.StorageV1alpha1().VolumeAttachments().List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.StorageV1alpha1().VolumeAttachments().Watch(options) + }, + }, + &storage_v1alpha1.VolumeAttachment{}, + resyncPeriod, + indexers, + ) +} + +func (f *volumeAttachmentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredVolumeAttachmentInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *volumeAttachmentInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&storage_v1alpha1.VolumeAttachment{}, f.defaultInformer) +} + +func (f *volumeAttachmentInformer) Lister() v1alpha1.VolumeAttachmentLister { + return v1alpha1.NewVolumeAttachmentLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1beta1/interface.go index 49e139f63..7fa1abf5f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1beta1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // StorageClasses returns a StorageClassInformer. func (v *version) StorageClasses() StorageClassInformer { - return &storageClassInformer{factory: v.SharedInformerFactory} + return &storageClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1beta1/storageclass.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1beta1/storageclass.go index 404e0a164..3e96b2820 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1beta1/storageclass.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/informers/storage/v1beta1/storageclass.go @@ -38,19 +38,33 @@ type StorageClassInformer interface { } type storageClassInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewStorageClassInformer constructs a new informer for StorageClass 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 NewStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredStorageClassInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredStorageClassInformer constructs a new informer for StorageClass 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 NewFilteredStorageClassInformer(client kubernetes.Interface, 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.StorageV1beta1().StorageClasses().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.StorageV1beta1().StorageClasses().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Dura ) } -func defaultStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewStorageClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *storageClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredStorageClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *storageClassInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&storage_v1beta1.StorageClass{}, defaultStorageClassInformer) + return f.factory.InformerFor(&storage_v1beta1.StorageClass{}, f.defaultInformer) } func (f *storageClassInformer) Lister() v1beta1.StorageClassLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/BUILD index 4f9635d40..7063ad444 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/BUILD @@ -40,6 +40,7 @@ go_library( "//vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", @@ -83,6 +84,7 @@ filegroup( "//staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1:all-srcs", + "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1:all-srcs", ], tags = ["automanaged"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/clientset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/clientset.go index 310eb61b9..c37cfd43d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/clientset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/clientset.go @@ -43,6 +43,7 @@ import ( schedulingv1alpha1 "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1" settingsv1alpha1 "k8s.io/client-go/kubernetes/typed/settings/v1alpha1" storagev1 "k8s.io/client-go/kubernetes/typed/storage/v1" + storagev1alpha1 "k8s.io/client-go/kubernetes/typed/storage/v1alpha1" storagev1beta1 "k8s.io/client-go/kubernetes/typed/storage/v1beta1" rest "k8s.io/client-go/rest" flowcontrol "k8s.io/client-go/util/flowcontrol" @@ -101,6 +102,7 @@ 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. @@ -134,6 +136,7 @@ type Clientset struct { rbacV1alpha1 *rbacv1alpha1.RbacV1alpha1Client schedulingV1alpha1 *schedulingv1alpha1.SchedulingV1alpha1Client settingsV1alpha1 *settingsv1alpha1.SettingsV1alpha1Client + storageV1alpha1 *storagev1alpha1.StorageV1alpha1Client storageV1beta1 *storagev1beta1.StorageV1beta1Client storageV1 *storagev1.StorageV1Client } @@ -337,6 +340,11 @@ 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 @@ -461,6 +469,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.storageV1beta1, err = storagev1beta1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -505,6 +517,7 @@ 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) @@ -538,6 +551,7 @@ 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) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/BUILD index d0caf4c60..aab36eaa9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/BUILD @@ -38,6 +38,7 @@ go_library( "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", "//vendor/k8s.io/api/storage/v1:go_default_library", + "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", "//vendor/k8s.io/api/storage/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -95,6 +96,8 @@ go_library( "//vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go index e5fb713d5..257d09aa9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go @@ -70,6 +70,8 @@ import ( fakesettingsv1alpha1 "k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake" storagev1 "k8s.io/client-go/kubernetes/typed/storage/v1" fakestoragev1 "k8s.io/client-go/kubernetes/typed/storage/v1/fake" + storagev1alpha1 "k8s.io/client-go/kubernetes/typed/storage/v1alpha1" + fakestoragev1alpha1 "k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake" storagev1beta1 "k8s.io/client-go/kubernetes/typed/storage/v1beta1" fakestoragev1beta1 "k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake" "k8s.io/client-go/testing" @@ -293,6 +295,11 @@ func (c *Clientset) Settings() settingsv1alpha1.SettingsV1alpha1Interface { return &fakesettingsv1alpha1.FakeSettingsV1alpha1{Fake: &c.Fake} } +// StorageV1alpha1 retrieves the StorageV1alpha1Client +func (c *Clientset) StorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface { + return &fakestoragev1alpha1.FakeStorageV1alpha1{Fake: &c.Fake} +} + // StorageV1beta1 retrieves the StorageV1beta1Client func (c *Clientset) StorageV1beta1() storagev1beta1.StorageV1beta1Interface { return &fakestoragev1beta1.FakeStorageV1beta1{Fake: &c.Fake} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/register.go index f649ff5cf..03fe60b1e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/fake/register.go @@ -41,6 +41,7 @@ import ( schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" settingsv1alpha1 "k8s.io/api/settings/v1alpha1" storagev1 "k8s.io/api/storage/v1" + storagev1alpha1 "k8s.io/api/storage/v1alpha1" storagev1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" @@ -95,6 +96,7 @@ func AddToScheme(scheme *runtime.Scheme) { rbacv1alpha1.AddToScheme(scheme) schedulingv1alpha1.AddToScheme(scheme) settingsv1alpha1.AddToScheme(scheme) + storagev1alpha1.AddToScheme(scheme) storagev1beta1.AddToScheme(scheme) storagev1.AddToScheme(scheme) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD index 1de09bd2b..abdd212c1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD @@ -37,6 +37,7 @@ go_library( "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", "//vendor/k8s.io/api/storage/v1:go_default_library", + "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", "//vendor/k8s.io/api/storage/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/scheme/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/scheme/register.go index 984b8bc60..80843a002 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/scheme/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/scheme/register.go @@ -41,6 +41,7 @@ import ( schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" settingsv1alpha1 "k8s.io/api/settings/v1alpha1" storagev1 "k8s.io/api/storage/v1" + storagev1alpha1 "k8s.io/api/storage/v1alpha1" storagev1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" @@ -95,6 +96,7 @@ func AddToScheme(scheme *runtime.Scheme) { rbacv1alpha1.AddToScheme(scheme) schedulingv1alpha1.AddToScheme(scheme) settingsv1alpha1.AddToScheme(scheme) + storagev1alpha1.AddToScheme(scheme) storagev1beta1.AddToScheme(scheme) storagev1.AddToScheme(scheme) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD index 2b2713364..2ea025f92 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD @@ -10,9 +10,10 @@ go_library( srcs = [ "admissionregistration_client.go", "doc.go", - "externaladmissionhookconfiguration.go", "generated_expansion.go", "initializerconfiguration.go", + "mutatingwebhookconfiguration.go", + "validatingwebhookconfiguration.go", ], importpath = "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", deps = [ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go index 95d533919..2abd80f89 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go @@ -25,8 +25,9 @@ import ( type AdmissionregistrationV1alpha1Interface interface { RESTClient() rest.Interface - ExternalAdmissionHookConfigurationsGetter InitializerConfigurationsGetter + MutatingWebhookConfigurationsGetter + ValidatingWebhookConfigurationsGetter } // AdmissionregistrationV1alpha1Client is used to interact with features provided by the admissionregistration.k8s.io group. @@ -34,14 +35,18 @@ type AdmissionregistrationV1alpha1Client struct { restClient rest.Interface } -func (c *AdmissionregistrationV1alpha1Client) ExternalAdmissionHookConfigurations() ExternalAdmissionHookConfigurationInterface { - return newExternalAdmissionHookConfigurations(c) -} - func (c *AdmissionregistrationV1alpha1Client) InitializerConfigurations() InitializerConfigurationInterface { return newInitializerConfigurations(c) } +func (c *AdmissionregistrationV1alpha1Client) MutatingWebhookConfigurations() MutatingWebhookConfigurationInterface { + return newMutatingWebhookConfigurations(c) +} + +func (c *AdmissionregistrationV1alpha1Client) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface { + return newValidatingWebhookConfigurations(c) +} + // NewForConfig creates a new AdmissionregistrationV1alpha1Client for the given config. func NewForConfig(c *rest.Config) (*AdmissionregistrationV1alpha1Client, error) { config := *c diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go deleted file mode 100644 index 1ddc6eb48..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go +++ /dev/null @@ -1,145 +0,0 @@ -/* -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 v1alpha1 - -import ( - v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" - 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" -) - -// ExternalAdmissionHookConfigurationsGetter has a method to return a ExternalAdmissionHookConfigurationInterface. -// A group's client should implement this interface. -type ExternalAdmissionHookConfigurationsGetter interface { - ExternalAdmissionHookConfigurations() ExternalAdmissionHookConfigurationInterface -} - -// ExternalAdmissionHookConfigurationInterface has methods to work with ExternalAdmissionHookConfiguration resources. -type ExternalAdmissionHookConfigurationInterface interface { - Create(*v1alpha1.ExternalAdmissionHookConfiguration) (*v1alpha1.ExternalAdmissionHookConfiguration, error) - Update(*v1alpha1.ExternalAdmissionHookConfiguration) (*v1alpha1.ExternalAdmissionHookConfiguration, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v1alpha1.ExternalAdmissionHookConfiguration, error) - List(opts v1.ListOptions) (*v1alpha1.ExternalAdmissionHookConfigurationList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.ExternalAdmissionHookConfiguration, err error) - ExternalAdmissionHookConfigurationExpansion -} - -// externalAdmissionHookConfigurations implements ExternalAdmissionHookConfigurationInterface -type externalAdmissionHookConfigurations struct { - client rest.Interface -} - -// newExternalAdmissionHookConfigurations returns a ExternalAdmissionHookConfigurations -func newExternalAdmissionHookConfigurations(c *AdmissionregistrationV1alpha1Client) *externalAdmissionHookConfigurations { - return &externalAdmissionHookConfigurations{ - client: c.RESTClient(), - } -} - -// Get takes name of the externalAdmissionHookConfiguration, and returns the corresponding externalAdmissionHookConfiguration object, and an error if there is any. -func (c *externalAdmissionHookConfigurations) Get(name string, options v1.GetOptions) (result *v1alpha1.ExternalAdmissionHookConfiguration, err error) { - result = &v1alpha1.ExternalAdmissionHookConfiguration{} - err = c.client.Get(). - Resource("externaladmissionhookconfigurations"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ExternalAdmissionHookConfigurations that match those selectors. -func (c *externalAdmissionHookConfigurations) List(opts v1.ListOptions) (result *v1alpha1.ExternalAdmissionHookConfigurationList, err error) { - result = &v1alpha1.ExternalAdmissionHookConfigurationList{} - err = c.client.Get(). - Resource("externaladmissionhookconfigurations"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested externalAdmissionHookConfigurations. -func (c *externalAdmissionHookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Resource("externaladmissionhookconfigurations"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a externalAdmissionHookConfiguration and creates it. Returns the server's representation of the externalAdmissionHookConfiguration, and an error, if there is any. -func (c *externalAdmissionHookConfigurations) Create(externalAdmissionHookConfiguration *v1alpha1.ExternalAdmissionHookConfiguration) (result *v1alpha1.ExternalAdmissionHookConfiguration, err error) { - result = &v1alpha1.ExternalAdmissionHookConfiguration{} - err = c.client.Post(). - Resource("externaladmissionhookconfigurations"). - Body(externalAdmissionHookConfiguration). - Do(). - Into(result) - return -} - -// Update takes the representation of a externalAdmissionHookConfiguration and updates it. Returns the server's representation of the externalAdmissionHookConfiguration, and an error, if there is any. -func (c *externalAdmissionHookConfigurations) Update(externalAdmissionHookConfiguration *v1alpha1.ExternalAdmissionHookConfiguration) (result *v1alpha1.ExternalAdmissionHookConfiguration, err error) { - result = &v1alpha1.ExternalAdmissionHookConfiguration{} - err = c.client.Put(). - Resource("externaladmissionhookconfigurations"). - Name(externalAdmissionHookConfiguration.Name). - Body(externalAdmissionHookConfiguration). - Do(). - Into(result) - return -} - -// Delete takes name of the externalAdmissionHookConfiguration and deletes it. Returns an error if one occurs. -func (c *externalAdmissionHookConfigurations) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Resource("externaladmissionhookconfigurations"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *externalAdmissionHookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Resource("externaladmissionhookconfigurations"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched externalAdmissionHookConfiguration. -func (c *externalAdmissionHookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.ExternalAdmissionHookConfiguration, err error) { - result = &v1alpha1.ExternalAdmissionHookConfiguration{} - err = c.client.Patch(pt). - Resource("externaladmissionhookconfigurations"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD index a567ec24e..c21cf77a0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD @@ -10,8 +10,9 @@ go_library( srcs = [ "doc.go", "fake_admissionregistration_client.go", - "fake_externaladmissionhookconfiguration.go", "fake_initializerconfiguration.go", + "fake_mutatingwebhookconfiguration.go", + "fake_validatingwebhookconfiguration.go", ], importpath = "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake", deps = [ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go index 8c370a9f7..9c0dd8b87 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go @@ -26,14 +26,18 @@ type FakeAdmissionregistrationV1alpha1 struct { *testing.Fake } -func (c *FakeAdmissionregistrationV1alpha1) ExternalAdmissionHookConfigurations() v1alpha1.ExternalAdmissionHookConfigurationInterface { - return &FakeExternalAdmissionHookConfigurations{c} -} - func (c *FakeAdmissionregistrationV1alpha1) InitializerConfigurations() v1alpha1.InitializerConfigurationInterface { return &FakeInitializerConfigurations{c} } +func (c *FakeAdmissionregistrationV1alpha1) MutatingWebhookConfigurations() v1alpha1.MutatingWebhookConfigurationInterface { + return &FakeMutatingWebhookConfigurations{c} +} + +func (c *FakeAdmissionregistrationV1alpha1) ValidatingWebhookConfigurations() v1alpha1.ValidatingWebhookConfigurationInterface { + return &FakeValidatingWebhookConfigurations{c} +} + // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeAdmissionregistrationV1alpha1) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_externaladmissionhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_externaladmissionhookconfiguration.go deleted file mode 100644 index a0143db3b..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_externaladmissionhookconfiguration.go +++ /dev/null @@ -1,118 +0,0 @@ -/* -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 fake - -import ( - v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeExternalAdmissionHookConfigurations implements ExternalAdmissionHookConfigurationInterface -type FakeExternalAdmissionHookConfigurations struct { - Fake *FakeAdmissionregistrationV1alpha1 -} - -var externaladmissionhookconfigurationsResource = schema.GroupVersionResource{Group: "admissionregistration.k8s.io", Version: "v1alpha1", Resource: "externaladmissionhookconfigurations"} - -var externaladmissionhookconfigurationsKind = schema.GroupVersionKind{Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "ExternalAdmissionHookConfiguration"} - -// Get takes name of the externalAdmissionHookConfiguration, and returns the corresponding externalAdmissionHookConfiguration object, and an error if there is any. -func (c *FakeExternalAdmissionHookConfigurations) Get(name string, options v1.GetOptions) (result *v1alpha1.ExternalAdmissionHookConfiguration, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(externaladmissionhookconfigurationsResource, name), &v1alpha1.ExternalAdmissionHookConfiguration{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ExternalAdmissionHookConfiguration), err -} - -// List takes label and field selectors, and returns the list of ExternalAdmissionHookConfigurations that match those selectors. -func (c *FakeExternalAdmissionHookConfigurations) List(opts v1.ListOptions) (result *v1alpha1.ExternalAdmissionHookConfigurationList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(externaladmissionhookconfigurationsResource, externaladmissionhookconfigurationsKind, opts), &v1alpha1.ExternalAdmissionHookConfigurationList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1alpha1.ExternalAdmissionHookConfigurationList{} - for _, item := range obj.(*v1alpha1.ExternalAdmissionHookConfigurationList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested externalAdmissionHookConfigurations. -func (c *FakeExternalAdmissionHookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(externaladmissionhookconfigurationsResource, opts)) -} - -// Create takes the representation of a externalAdmissionHookConfiguration and creates it. Returns the server's representation of the externalAdmissionHookConfiguration, and an error, if there is any. -func (c *FakeExternalAdmissionHookConfigurations) Create(externalAdmissionHookConfiguration *v1alpha1.ExternalAdmissionHookConfiguration) (result *v1alpha1.ExternalAdmissionHookConfiguration, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(externaladmissionhookconfigurationsResource, externalAdmissionHookConfiguration), &v1alpha1.ExternalAdmissionHookConfiguration{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ExternalAdmissionHookConfiguration), err -} - -// Update takes the representation of a externalAdmissionHookConfiguration and updates it. Returns the server's representation of the externalAdmissionHookConfiguration, and an error, if there is any. -func (c *FakeExternalAdmissionHookConfigurations) Update(externalAdmissionHookConfiguration *v1alpha1.ExternalAdmissionHookConfiguration) (result *v1alpha1.ExternalAdmissionHookConfiguration, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(externaladmissionhookconfigurationsResource, externalAdmissionHookConfiguration), &v1alpha1.ExternalAdmissionHookConfiguration{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ExternalAdmissionHookConfiguration), err -} - -// Delete takes name of the externalAdmissionHookConfiguration and deletes it. Returns an error if one occurs. -func (c *FakeExternalAdmissionHookConfigurations) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(externaladmissionhookconfigurationsResource, name), &v1alpha1.ExternalAdmissionHookConfiguration{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeExternalAdmissionHookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(externaladmissionhookconfigurationsResource, listOptions) - - _, err := c.Fake.Invokes(action, &v1alpha1.ExternalAdmissionHookConfigurationList{}) - return err -} - -// Patch applies the patch and returns the patched externalAdmissionHookConfiguration. -func (c *FakeExternalAdmissionHookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.ExternalAdmissionHookConfiguration, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(externaladmissionhookconfigurationsResource, name, data, subresources...), &v1alpha1.ExternalAdmissionHookConfiguration{}) - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.ExternalAdmissionHookConfiguration), err -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_mutatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_mutatingwebhookconfiguration.go new file mode 100644 index 000000000..94c8df138 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_mutatingwebhookconfiguration.go @@ -0,0 +1,118 @@ +/* +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 fake + +import ( + v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeMutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface +type FakeMutatingWebhookConfigurations struct { + Fake *FakeAdmissionregistrationV1alpha1 +} + +var mutatingwebhookconfigurationsResource = schema.GroupVersionResource{Group: "admissionregistration.k8s.io", Version: "v1alpha1", Resource: "mutatingwebhookconfigurations"} + +var mutatingwebhookconfigurationsKind = schema.GroupVersionKind{Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "MutatingWebhookConfiguration"} + +// Get takes name of the mutatingWebhookConfiguration, and returns the corresponding mutatingWebhookConfiguration object, and an error if there is any. +func (c *FakeMutatingWebhookConfigurations) Get(name string, options v1.GetOptions) (result *v1alpha1.MutatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(mutatingwebhookconfigurationsResource, name), &v1alpha1.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.MutatingWebhookConfiguration), err +} + +// List takes label and field selectors, and returns the list of MutatingWebhookConfigurations that match those selectors. +func (c *FakeMutatingWebhookConfigurations) List(opts v1.ListOptions) (result *v1alpha1.MutatingWebhookConfigurationList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(mutatingwebhookconfigurationsResource, mutatingwebhookconfigurationsKind, opts), &v1alpha1.MutatingWebhookConfigurationList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.MutatingWebhookConfigurationList{} + for _, item := range obj.(*v1alpha1.MutatingWebhookConfigurationList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested mutatingWebhookConfigurations. +func (c *FakeMutatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(mutatingwebhookconfigurationsResource, opts)) +} + +// Create takes the representation of a mutatingWebhookConfiguration and creates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any. +func (c *FakeMutatingWebhookConfigurations) Create(mutatingWebhookConfiguration *v1alpha1.MutatingWebhookConfiguration) (result *v1alpha1.MutatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(mutatingwebhookconfigurationsResource, mutatingWebhookConfiguration), &v1alpha1.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.MutatingWebhookConfiguration), err +} + +// Update takes the representation of a mutatingWebhookConfiguration and updates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any. +func (c *FakeMutatingWebhookConfigurations) Update(mutatingWebhookConfiguration *v1alpha1.MutatingWebhookConfiguration) (result *v1alpha1.MutatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(mutatingwebhookconfigurationsResource, mutatingWebhookConfiguration), &v1alpha1.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.MutatingWebhookConfiguration), err +} + +// Delete takes name of the mutatingWebhookConfiguration and deletes it. Returns an error if one occurs. +func (c *FakeMutatingWebhookConfigurations) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(mutatingwebhookconfigurationsResource, name), &v1alpha1.MutatingWebhookConfiguration{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeMutatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(mutatingwebhookconfigurationsResource, listOptions) + + _, err := c.Fake.Invokes(action, &v1alpha1.MutatingWebhookConfigurationList{}) + return err +} + +// Patch applies the patch and returns the patched mutatingWebhookConfiguration. +func (c *FakeMutatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.MutatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, name, data, subresources...), &v1alpha1.MutatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.MutatingWebhookConfiguration), err +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_validatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_validatingwebhookconfiguration.go new file mode 100644 index 000000000..f3067525e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_validatingwebhookconfiguration.go @@ -0,0 +1,118 @@ +/* +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 fake + +import ( + v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeValidatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface +type FakeValidatingWebhookConfigurations struct { + Fake *FakeAdmissionregistrationV1alpha1 +} + +var validatingwebhookconfigurationsResource = schema.GroupVersionResource{Group: "admissionregistration.k8s.io", Version: "v1alpha1", Resource: "validatingwebhookconfigurations"} + +var validatingwebhookconfigurationsKind = schema.GroupVersionKind{Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "ValidatingWebhookConfiguration"} + +// Get takes name of the validatingWebhookConfiguration, and returns the corresponding validatingWebhookConfiguration object, and an error if there is any. +func (c *FakeValidatingWebhookConfigurations) Get(name string, options v1.GetOptions) (result *v1alpha1.ValidatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(validatingwebhookconfigurationsResource, name), &v1alpha1.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.ValidatingWebhookConfiguration), err +} + +// List takes label and field selectors, and returns the list of ValidatingWebhookConfigurations that match those selectors. +func (c *FakeValidatingWebhookConfigurations) List(opts v1.ListOptions) (result *v1alpha1.ValidatingWebhookConfigurationList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(validatingwebhookconfigurationsResource, validatingwebhookconfigurationsKind, opts), &v1alpha1.ValidatingWebhookConfigurationList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.ValidatingWebhookConfigurationList{} + for _, item := range obj.(*v1alpha1.ValidatingWebhookConfigurationList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested validatingWebhookConfigurations. +func (c *FakeValidatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(validatingwebhookconfigurationsResource, opts)) +} + +// Create takes the representation of a validatingWebhookConfiguration and creates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any. +func (c *FakeValidatingWebhookConfigurations) Create(validatingWebhookConfiguration *v1alpha1.ValidatingWebhookConfiguration) (result *v1alpha1.ValidatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(validatingwebhookconfigurationsResource, validatingWebhookConfiguration), &v1alpha1.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.ValidatingWebhookConfiguration), err +} + +// Update takes the representation of a validatingWebhookConfiguration and updates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any. +func (c *FakeValidatingWebhookConfigurations) Update(validatingWebhookConfiguration *v1alpha1.ValidatingWebhookConfiguration) (result *v1alpha1.ValidatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(validatingwebhookconfigurationsResource, validatingWebhookConfiguration), &v1alpha1.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.ValidatingWebhookConfiguration), err +} + +// Delete takes name of the validatingWebhookConfiguration and deletes it. Returns an error if one occurs. +func (c *FakeValidatingWebhookConfigurations) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(validatingwebhookconfigurationsResource, name), &v1alpha1.ValidatingWebhookConfiguration{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeValidatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(validatingwebhookconfigurationsResource, listOptions) + + _, err := c.Fake.Invokes(action, &v1alpha1.ValidatingWebhookConfigurationList{}) + return err +} + +// Patch applies the patch and returns the patched validatingWebhookConfiguration. +func (c *FakeValidatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.ValidatingWebhookConfiguration, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, name, data, subresources...), &v1alpha1.ValidatingWebhookConfiguration{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.ValidatingWebhookConfiguration), err +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go index eef439ab4..17f7326c2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go @@ -16,6 +16,8 @@ limitations under the License. package v1alpha1 -type ExternalAdmissionHookConfigurationExpansion interface{} - type InitializerConfigurationExpansion interface{} + +type MutatingWebhookConfigurationExpansion interface{} + +type ValidatingWebhookConfigurationExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go new file mode 100644 index 000000000..3d645b903 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go @@ -0,0 +1,145 @@ +/* +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 v1alpha1 + +import ( + v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + 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" +) + +// MutatingWebhookConfigurationsGetter has a method to return a MutatingWebhookConfigurationInterface. +// A group's client should implement this interface. +type MutatingWebhookConfigurationsGetter interface { + MutatingWebhookConfigurations() MutatingWebhookConfigurationInterface +} + +// MutatingWebhookConfigurationInterface has methods to work with MutatingWebhookConfiguration resources. +type MutatingWebhookConfigurationInterface interface { + Create(*v1alpha1.MutatingWebhookConfiguration) (*v1alpha1.MutatingWebhookConfiguration, error) + Update(*v1alpha1.MutatingWebhookConfiguration) (*v1alpha1.MutatingWebhookConfiguration, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1alpha1.MutatingWebhookConfiguration, error) + List(opts v1.ListOptions) (*v1alpha1.MutatingWebhookConfigurationList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.MutatingWebhookConfiguration, err error) + MutatingWebhookConfigurationExpansion +} + +// mutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface +type mutatingWebhookConfigurations struct { + client rest.Interface +} + +// newMutatingWebhookConfigurations returns a MutatingWebhookConfigurations +func newMutatingWebhookConfigurations(c *AdmissionregistrationV1alpha1Client) *mutatingWebhookConfigurations { + return &mutatingWebhookConfigurations{ + client: c.RESTClient(), + } +} + +// Get takes name of the mutatingWebhookConfiguration, and returns the corresponding mutatingWebhookConfiguration object, and an error if there is any. +func (c *mutatingWebhookConfigurations) Get(name string, options v1.GetOptions) (result *v1alpha1.MutatingWebhookConfiguration, err error) { + result = &v1alpha1.MutatingWebhookConfiguration{} + err = c.client.Get(). + Resource("mutatingwebhookconfigurations"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of MutatingWebhookConfigurations that match those selectors. +func (c *mutatingWebhookConfigurations) List(opts v1.ListOptions) (result *v1alpha1.MutatingWebhookConfigurationList, err error) { + result = &v1alpha1.MutatingWebhookConfigurationList{} + err = c.client.Get(). + Resource("mutatingwebhookconfigurations"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested mutatingWebhookConfigurations. +func (c *mutatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("mutatingwebhookconfigurations"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a mutatingWebhookConfiguration and creates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any. +func (c *mutatingWebhookConfigurations) Create(mutatingWebhookConfiguration *v1alpha1.MutatingWebhookConfiguration) (result *v1alpha1.MutatingWebhookConfiguration, err error) { + result = &v1alpha1.MutatingWebhookConfiguration{} + err = c.client.Post(). + Resource("mutatingwebhookconfigurations"). + Body(mutatingWebhookConfiguration). + Do(). + Into(result) + return +} + +// Update takes the representation of a mutatingWebhookConfiguration and updates it. Returns the server's representation of the mutatingWebhookConfiguration, and an error, if there is any. +func (c *mutatingWebhookConfigurations) Update(mutatingWebhookConfiguration *v1alpha1.MutatingWebhookConfiguration) (result *v1alpha1.MutatingWebhookConfiguration, err error) { + result = &v1alpha1.MutatingWebhookConfiguration{} + err = c.client.Put(). + Resource("mutatingwebhookconfigurations"). + Name(mutatingWebhookConfiguration.Name). + Body(mutatingWebhookConfiguration). + Do(). + Into(result) + return +} + +// Delete takes name of the mutatingWebhookConfiguration and deletes it. Returns an error if one occurs. +func (c *mutatingWebhookConfigurations) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("mutatingwebhookconfigurations"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *mutatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Resource("mutatingwebhookconfigurations"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched mutatingWebhookConfiguration. +func (c *mutatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.MutatingWebhookConfiguration, err error) { + result = &v1alpha1.MutatingWebhookConfiguration{} + err = c.client.Patch(pt). + Resource("mutatingwebhookconfigurations"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/validatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/validatingwebhookconfiguration.go new file mode 100644 index 000000000..99096b751 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/validatingwebhookconfiguration.go @@ -0,0 +1,145 @@ +/* +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 v1alpha1 + +import ( + v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + 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" +) + +// ValidatingWebhookConfigurationsGetter has a method to return a ValidatingWebhookConfigurationInterface. +// A group's client should implement this interface. +type ValidatingWebhookConfigurationsGetter interface { + ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface +} + +// ValidatingWebhookConfigurationInterface has methods to work with ValidatingWebhookConfiguration resources. +type ValidatingWebhookConfigurationInterface interface { + Create(*v1alpha1.ValidatingWebhookConfiguration) (*v1alpha1.ValidatingWebhookConfiguration, error) + Update(*v1alpha1.ValidatingWebhookConfiguration) (*v1alpha1.ValidatingWebhookConfiguration, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1alpha1.ValidatingWebhookConfiguration, error) + List(opts v1.ListOptions) (*v1alpha1.ValidatingWebhookConfigurationList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.ValidatingWebhookConfiguration, err error) + ValidatingWebhookConfigurationExpansion +} + +// validatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface +type validatingWebhookConfigurations struct { + client rest.Interface +} + +// newValidatingWebhookConfigurations returns a ValidatingWebhookConfigurations +func newValidatingWebhookConfigurations(c *AdmissionregistrationV1alpha1Client) *validatingWebhookConfigurations { + return &validatingWebhookConfigurations{ + client: c.RESTClient(), + } +} + +// Get takes name of the validatingWebhookConfiguration, and returns the corresponding validatingWebhookConfiguration object, and an error if there is any. +func (c *validatingWebhookConfigurations) Get(name string, options v1.GetOptions) (result *v1alpha1.ValidatingWebhookConfiguration, err error) { + result = &v1alpha1.ValidatingWebhookConfiguration{} + err = c.client.Get(). + Resource("validatingwebhookconfigurations"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of ValidatingWebhookConfigurations that match those selectors. +func (c *validatingWebhookConfigurations) List(opts v1.ListOptions) (result *v1alpha1.ValidatingWebhookConfigurationList, err error) { + result = &v1alpha1.ValidatingWebhookConfigurationList{} + err = c.client.Get(). + Resource("validatingwebhookconfigurations"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested validatingWebhookConfigurations. +func (c *validatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("validatingwebhookconfigurations"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a validatingWebhookConfiguration and creates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any. +func (c *validatingWebhookConfigurations) Create(validatingWebhookConfiguration *v1alpha1.ValidatingWebhookConfiguration) (result *v1alpha1.ValidatingWebhookConfiguration, err error) { + result = &v1alpha1.ValidatingWebhookConfiguration{} + err = c.client.Post(). + Resource("validatingwebhookconfigurations"). + Body(validatingWebhookConfiguration). + Do(). + Into(result) + return +} + +// Update takes the representation of a validatingWebhookConfiguration and updates it. Returns the server's representation of the validatingWebhookConfiguration, and an error, if there is any. +func (c *validatingWebhookConfigurations) Update(validatingWebhookConfiguration *v1alpha1.ValidatingWebhookConfiguration) (result *v1alpha1.ValidatingWebhookConfiguration, err error) { + result = &v1alpha1.ValidatingWebhookConfiguration{} + err = c.client.Put(). + Resource("validatingwebhookconfigurations"). + Name(validatingWebhookConfiguration.Name). + Body(validatingWebhookConfiguration). + Do(). + Into(result) + return +} + +// Delete takes name of the validatingWebhookConfiguration and deletes it. Returns an error if one occurs. +func (c *validatingWebhookConfigurations) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("validatingwebhookconfigurations"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *validatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Resource("validatingwebhookconfigurations"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched validatingWebhookConfiguration. +func (c *validatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.ValidatingWebhookConfiguration, err error) { + result = &v1alpha1.ValidatingWebhookConfiguration{} + err = c.client.Patch(pt). + Resource("validatingwebhookconfigurations"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/BUILD index 5830ee0d9..5d77a94df 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/BUILD @@ -4,9 +4,13 @@ go_library( name = "go_default_library", srcs = [ "apps_client.go", + "controllerrevision.go", "daemonset.go", + "deployment.go", "doc.go", "generated_expansion.go", + "replicaset.go", + "statefulset.go", ], importpath = "k8s.io/client-go/kubernetes/typed/apps/v1", visibility = ["//visibility:public"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go index 20a09cd4b..07936304e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go @@ -25,7 +25,11 @@ import ( type AppsV1Interface interface { RESTClient() rest.Interface + ControllerRevisionsGetter DaemonSetsGetter + DeploymentsGetter + ReplicaSetsGetter + StatefulSetsGetter } // AppsV1Client is used to interact with features provided by the apps group. @@ -33,10 +37,26 @@ type AppsV1Client struct { restClient rest.Interface } +func (c *AppsV1Client) ControllerRevisions(namespace string) ControllerRevisionInterface { + return newControllerRevisions(c, namespace) +} + func (c *AppsV1Client) DaemonSets(namespace string) DaemonSetInterface { return newDaemonSets(c, namespace) } +func (c *AppsV1Client) Deployments(namespace string) DeploymentInterface { + return newDeployments(c, namespace) +} + +func (c *AppsV1Client) ReplicaSets(namespace string) ReplicaSetInterface { + return newReplicaSets(c, namespace) +} + +func (c *AppsV1Client) StatefulSets(namespace string) StatefulSetInterface { + return newStatefulSets(c, namespace) +} + // NewForConfig creates a new AppsV1Client for the given config. func NewForConfig(c *rest.Config) (*AppsV1Client, error) { config := *c diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go new file mode 100644 index 000000000..1d9f83134 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.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 v1 + +import ( + v1 "k8s.io/api/apps/v1" + meta_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" +) + +// ControllerRevisionsGetter has a method to return a ControllerRevisionInterface. +// A group's client should implement this interface. +type ControllerRevisionsGetter interface { + ControllerRevisions(namespace string) ControllerRevisionInterface +} + +// ControllerRevisionInterface has methods to work with ControllerRevision resources. +type ControllerRevisionInterface interface { + Create(*v1.ControllerRevision) (*v1.ControllerRevision, error) + Update(*v1.ControllerRevision) (*v1.ControllerRevision, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.ControllerRevision, error) + List(opts meta_v1.ListOptions) (*v1.ControllerRevisionList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ControllerRevision, err error) + ControllerRevisionExpansion +} + +// controllerRevisions implements ControllerRevisionInterface +type controllerRevisions struct { + client rest.Interface + ns string +} + +// newControllerRevisions returns a ControllerRevisions +func newControllerRevisions(c *AppsV1Client, namespace string) *controllerRevisions { + return &controllerRevisions{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any. +func (c *controllerRevisions) Get(name string, options meta_v1.GetOptions) (result *v1.ControllerRevision, err error) { + result = &v1.ControllerRevision{} + err = c.client.Get(). + Namespace(c.ns). + Resource("controllerrevisions"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors. +func (c *controllerRevisions) List(opts meta_v1.ListOptions) (result *v1.ControllerRevisionList, err error) { + result = &v1.ControllerRevisionList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("controllerrevisions"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested controllerRevisions. +func (c *controllerRevisions) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("controllerrevisions"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a controllerRevision and creates it. Returns the server's representation of the controllerRevision, and an error, if there is any. +func (c *controllerRevisions) Create(controllerRevision *v1.ControllerRevision) (result *v1.ControllerRevision, err error) { + result = &v1.ControllerRevision{} + err = c.client.Post(). + Namespace(c.ns). + Resource("controllerrevisions"). + Body(controllerRevision). + Do(). + Into(result) + return +} + +// Update takes the representation of a controllerRevision and updates it. Returns the server's representation of the controllerRevision, and an error, if there is any. +func (c *controllerRevisions) Update(controllerRevision *v1.ControllerRevision) (result *v1.ControllerRevision, err error) { + result = &v1.ControllerRevision{} + err = c.client.Put(). + Namespace(c.ns). + Resource("controllerrevisions"). + Name(controllerRevision.Name). + Body(controllerRevision). + Do(). + Into(result) + return +} + +// Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs. +func (c *controllerRevisions) Delete(name string, options *meta_v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("controllerrevisions"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *controllerRevisions) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("controllerrevisions"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched controllerRevision. +func (c *controllerRevisions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ControllerRevision, err error) { + result = &v1.ControllerRevision{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("controllerrevisions"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/deployment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go similarity index 56% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/deployment.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go index f26630be8..34c06c8de 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/deployment.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go @@ -14,15 +14,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1beta1 +package v1 import ( - v1beta1 "k8s.io/api/extensions/v1beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/api/apps/v1" + meta_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" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" ) // DeploymentsGetter has a method to return a DeploymentInterface. @@ -33,18 +33,15 @@ type DeploymentsGetter interface { // DeploymentInterface has methods to work with Deployment resources. type DeploymentInterface interface { - Create(*v1beta1.Deployment) (*v1beta1.Deployment, error) - Update(*v1beta1.Deployment) (*v1beta1.Deployment, error) - UpdateStatus(*v1beta1.Deployment) (*v1beta1.Deployment, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v1beta1.Deployment, error) - List(opts v1.ListOptions) (*v1beta1.DeploymentList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Deployment, err error) - GetScale(deploymentName string, options v1.GetOptions) (*v1beta1.Scale, error) - UpdateScale(deploymentName string, scale *v1beta1.Scale) (*v1beta1.Scale, error) - + Create(*v1.Deployment) (*v1.Deployment, error) + Update(*v1.Deployment) (*v1.Deployment, error) + UpdateStatus(*v1.Deployment) (*v1.Deployment, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.Deployment, error) + List(opts meta_v1.ListOptions) (*v1.DeploymentList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Deployment, err error) DeploymentExpansion } @@ -55,7 +52,7 @@ type deployments struct { } // newDeployments returns a Deployments -func newDeployments(c *ExtensionsV1beta1Client, namespace string) *deployments { +func newDeployments(c *AppsV1Client, namespace string) *deployments { return &deployments{ client: c.RESTClient(), ns: namespace, @@ -63,8 +60,8 @@ func newDeployments(c *ExtensionsV1beta1Client, namespace string) *deployments { } // Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any. -func (c *deployments) Get(name string, options v1.GetOptions) (result *v1beta1.Deployment, err error) { - result = &v1beta1.Deployment{} +func (c *deployments) Get(name string, options meta_v1.GetOptions) (result *v1.Deployment, err error) { + result = &v1.Deployment{} err = c.client.Get(). Namespace(c.ns). Resource("deployments"). @@ -76,8 +73,8 @@ func (c *deployments) Get(name string, options v1.GetOptions) (result *v1beta1.D } // List takes label and field selectors, and returns the list of Deployments that match those selectors. -func (c *deployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentList, err error) { - result = &v1beta1.DeploymentList{} +func (c *deployments) List(opts meta_v1.ListOptions) (result *v1.DeploymentList, err error) { + result = &v1.DeploymentList{} err = c.client.Get(). Namespace(c.ns). Resource("deployments"). @@ -88,7 +85,7 @@ func (c *deployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentList, } // Watch returns a watch.Interface that watches the requested deployments. -func (c *deployments) Watch(opts v1.ListOptions) (watch.Interface, error) { +func (c *deployments) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { opts.Watch = true return c.client.Get(). Namespace(c.ns). @@ -98,8 +95,8 @@ func (c *deployments) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a deployment and creates it. Returns the server's representation of the deployment, and an error, if there is any. -func (c *deployments) Create(deployment *v1beta1.Deployment) (result *v1beta1.Deployment, err error) { - result = &v1beta1.Deployment{} +func (c *deployments) Create(deployment *v1.Deployment) (result *v1.Deployment, err error) { + result = &v1.Deployment{} err = c.client.Post(). Namespace(c.ns). Resource("deployments"). @@ -110,8 +107,8 @@ func (c *deployments) Create(deployment *v1beta1.Deployment) (result *v1beta1.De } // Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any. -func (c *deployments) Update(deployment *v1beta1.Deployment) (result *v1beta1.Deployment, err error) { - result = &v1beta1.Deployment{} +func (c *deployments) Update(deployment *v1.Deployment) (result *v1.Deployment, err error) { + result = &v1.Deployment{} err = c.client.Put(). Namespace(c.ns). Resource("deployments"). @@ -125,8 +122,8 @@ func (c *deployments) Update(deployment *v1beta1.Deployment) (result *v1beta1.De // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *deployments) UpdateStatus(deployment *v1beta1.Deployment) (result *v1beta1.Deployment, err error) { - result = &v1beta1.Deployment{} +func (c *deployments) UpdateStatus(deployment *v1.Deployment) (result *v1.Deployment, err error) { + result = &v1.Deployment{} err = c.client.Put(). Namespace(c.ns). Resource("deployments"). @@ -139,7 +136,7 @@ func (c *deployments) UpdateStatus(deployment *v1beta1.Deployment) (result *v1be } // Delete takes name of the deployment and deletes it. Returns an error if one occurs. -func (c *deployments) Delete(name string, options *v1.DeleteOptions) error { +func (c *deployments) Delete(name string, options *meta_v1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("deployments"). @@ -150,7 +147,7 @@ func (c *deployments) Delete(name string, options *v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *deployments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { +func (c *deployments) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("deployments"). @@ -161,8 +158,8 @@ func (c *deployments) DeleteCollection(options *v1.DeleteOptions, listOptions v1 } // Patch applies the patch and returns the patched deployment. -func (c *deployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Deployment, err error) { - result = &v1beta1.Deployment{} +func (c *deployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Deployment, err error) { + result = &v1.Deployment{} err = c.client.Patch(pt). Namespace(c.ns). Resource("deployments"). @@ -173,31 +170,3 @@ func (c *deployments) Patch(name string, pt types.PatchType, data []byte, subres Into(result) return } - -// GetScale takes name of the deployment, and returns the corresponding v1beta1.Scale object, and an error if there is any. -func (c *deployments) GetScale(deploymentName string, options v1.GetOptions) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} - err = c.client.Get(). - Namespace(c.ns). - Resource("deployments"). - Name(deploymentName). - SubResource("scale"). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *deployments) UpdateScale(deploymentName string, scale *v1beta1.Scale) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} - err = c.client.Put(). - Namespace(c.ns). - Resource("deployments"). - Name(deploymentName). - SubResource("scale"). - Body(scale). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/BUILD index a68e864ff..912b2755d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/BUILD @@ -5,7 +5,11 @@ go_library( srcs = [ "doc.go", "fake_apps_client.go", + "fake_controllerrevision.go", "fake_daemonset.go", + "fake_deployment.go", + "fake_replicaset.go", + "fake_statefulset.go", ], importpath = "k8s.io/client-go/kubernetes/typed/apps/v1/fake", visibility = ["//visibility:public"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go index 8d9dcc9ed..d4e34411b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go @@ -26,10 +26,26 @@ type FakeAppsV1 struct { *testing.Fake } +func (c *FakeAppsV1) ControllerRevisions(namespace string) v1.ControllerRevisionInterface { + return &FakeControllerRevisions{c, namespace} +} + func (c *FakeAppsV1) DaemonSets(namespace string) v1.DaemonSetInterface { return &FakeDaemonSets{c, namespace} } +func (c *FakeAppsV1) Deployments(namespace string) v1.DeploymentInterface { + return &FakeDeployments{c, namespace} +} + +func (c *FakeAppsV1) ReplicaSets(namespace string) v1.ReplicaSetInterface { + return &FakeReplicaSets{c, namespace} +} + +func (c *FakeAppsV1) StatefulSets(namespace string) v1.StatefulSetInterface { + return &FakeStatefulSets{c, namespace} +} + // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeAppsV1) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go new file mode 100644 index 000000000..ae9d4f3ff --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go @@ -0,0 +1,126 @@ +/* +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 fake + +import ( + apps_v1 "k8s.io/api/apps/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeControllerRevisions implements ControllerRevisionInterface +type FakeControllerRevisions struct { + Fake *FakeAppsV1 + ns string +} + +var controllerrevisionsResource = schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "controllerrevisions"} + +var controllerrevisionsKind = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "ControllerRevision"} + +// Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any. +func (c *FakeControllerRevisions) Get(name string, options v1.GetOptions) (result *apps_v1.ControllerRevision, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(controllerrevisionsResource, c.ns, name), &apps_v1.ControllerRevision{}) + + if obj == nil { + return nil, err + } + return obj.(*apps_v1.ControllerRevision), err +} + +// List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors. +func (c *FakeControllerRevisions) List(opts v1.ListOptions) (result *apps_v1.ControllerRevisionList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(controllerrevisionsResource, controllerrevisionsKind, c.ns, opts), &apps_v1.ControllerRevisionList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &apps_v1.ControllerRevisionList{} + for _, item := range obj.(*apps_v1.ControllerRevisionList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested controllerRevisions. +func (c *FakeControllerRevisions) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(controllerrevisionsResource, c.ns, opts)) + +} + +// Create takes the representation of a controllerRevision and creates it. Returns the server's representation of the controllerRevision, and an error, if there is any. +func (c *FakeControllerRevisions) Create(controllerRevision *apps_v1.ControllerRevision) (result *apps_v1.ControllerRevision, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(controllerrevisionsResource, c.ns, controllerRevision), &apps_v1.ControllerRevision{}) + + if obj == nil { + return nil, err + } + return obj.(*apps_v1.ControllerRevision), err +} + +// Update takes the representation of a controllerRevision and updates it. Returns the server's representation of the controllerRevision, and an error, if there is any. +func (c *FakeControllerRevisions) Update(controllerRevision *apps_v1.ControllerRevision) (result *apps_v1.ControllerRevision, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(controllerrevisionsResource, c.ns, controllerRevision), &apps_v1.ControllerRevision{}) + + if obj == nil { + return nil, err + } + return obj.(*apps_v1.ControllerRevision), err +} + +// Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs. +func (c *FakeControllerRevisions) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(controllerrevisionsResource, c.ns, name), &apps_v1.ControllerRevision{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeControllerRevisions) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(controllerrevisionsResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &apps_v1.ControllerRevisionList{}) + return err +} + +// Patch applies the patch and returns the patched controllerRevision. +func (c *FakeControllerRevisions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps_v1.ControllerRevision, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, data, subresources...), &apps_v1.ControllerRevision{}) + + if obj == nil { + return nil, err + } + return obj.(*apps_v1.ControllerRevision), err +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_deployment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go similarity index 60% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_deployment.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go index d5abace97..b0e8f82d7 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_deployment.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go @@ -17,7 +17,7 @@ limitations under the License. package fake import ( - v1beta1 "k8s.io/api/extensions/v1beta1" + apps_v1 "k8s.io/api/apps/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -28,29 +28,29 @@ import ( // FakeDeployments implements DeploymentInterface type FakeDeployments struct { - Fake *FakeExtensionsV1beta1 + Fake *FakeAppsV1 ns string } -var deploymentsResource = schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "deployments"} +var deploymentsResource = schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "deployments"} -var deploymentsKind = schema.GroupVersionKind{Group: "extensions", Version: "v1beta1", Kind: "Deployment"} +var deploymentsKind = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "Deployment"} // Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any. -func (c *FakeDeployments) Get(name string, options v1.GetOptions) (result *v1beta1.Deployment, err error) { +func (c *FakeDeployments) Get(name string, options v1.GetOptions) (result *apps_v1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(deploymentsResource, c.ns, name), &v1beta1.Deployment{}) + Invokes(testing.NewGetAction(deploymentsResource, c.ns, name), &apps_v1.Deployment{}) if obj == nil { return nil, err } - return obj.(*v1beta1.Deployment), err + return obj.(*apps_v1.Deployment), err } // List takes label and field selectors, and returns the list of Deployments that match those selectors. -func (c *FakeDeployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentList, err error) { +func (c *FakeDeployments) List(opts v1.ListOptions) (result *apps_v1.DeploymentList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(deploymentsResource, deploymentsKind, c.ns, opts), &v1beta1.DeploymentList{}) + Invokes(testing.NewListAction(deploymentsResource, deploymentsKind, c.ns, opts), &apps_v1.DeploymentList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeDeployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentL if label == nil { label = labels.Everything() } - list := &v1beta1.DeploymentList{} - for _, item := range obj.(*v1beta1.DeploymentList).Items { + list := &apps_v1.DeploymentList{} + for _, item := range obj.(*apps_v1.DeploymentList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,43 +77,43 @@ func (c *FakeDeployments) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a deployment and creates it. Returns the server's representation of the deployment, and an error, if there is any. -func (c *FakeDeployments) Create(deployment *v1beta1.Deployment) (result *v1beta1.Deployment, err error) { +func (c *FakeDeployments) Create(deployment *apps_v1.Deployment) (result *apps_v1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(deploymentsResource, c.ns, deployment), &v1beta1.Deployment{}) + Invokes(testing.NewCreateAction(deploymentsResource, c.ns, deployment), &apps_v1.Deployment{}) if obj == nil { return nil, err } - return obj.(*v1beta1.Deployment), err + return obj.(*apps_v1.Deployment), err } // Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any. -func (c *FakeDeployments) Update(deployment *v1beta1.Deployment) (result *v1beta1.Deployment, err error) { +func (c *FakeDeployments) Update(deployment *apps_v1.Deployment) (result *apps_v1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(deploymentsResource, c.ns, deployment), &v1beta1.Deployment{}) + Invokes(testing.NewUpdateAction(deploymentsResource, c.ns, deployment), &apps_v1.Deployment{}) if obj == nil { return nil, err } - return obj.(*v1beta1.Deployment), err + return obj.(*apps_v1.Deployment), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeDeployments) UpdateStatus(deployment *v1beta1.Deployment) (*v1beta1.Deployment, error) { +func (c *FakeDeployments) UpdateStatus(deployment *apps_v1.Deployment) (*apps_v1.Deployment, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(deploymentsResource, "status", c.ns, deployment), &v1beta1.Deployment{}) + Invokes(testing.NewUpdateSubresourceAction(deploymentsResource, "status", c.ns, deployment), &apps_v1.Deployment{}) if obj == nil { return nil, err } - return obj.(*v1beta1.Deployment), err + return obj.(*apps_v1.Deployment), err } // Delete takes name of the deployment and deletes it. Returns an error if one occurs. func (c *FakeDeployments) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(deploymentsResource, c.ns, name), &v1beta1.Deployment{}) + Invokes(testing.NewDeleteAction(deploymentsResource, c.ns, name), &apps_v1.Deployment{}) return err } @@ -122,39 +122,17 @@ func (c *FakeDeployments) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeDeployments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(deploymentsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &v1beta1.DeploymentList{}) + _, err := c.Fake.Invokes(action, &apps_v1.DeploymentList{}) return err } // Patch applies the patch and returns the patched deployment. -func (c *FakeDeployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Deployment, err error) { +func (c *FakeDeployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps_v1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, data, subresources...), &v1beta1.Deployment{}) + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, data, subresources...), &apps_v1.Deployment{}) if obj == nil { return nil, err } - return obj.(*v1beta1.Deployment), err -} - -// GetScale takes name of the deployment, and returns the corresponding scale object, and an error if there is any. -func (c *FakeDeployments) GetScale(deploymentName string, options v1.GetOptions) (result *v1beta1.Scale, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetSubresourceAction(deploymentsResource, c.ns, "scale", deploymentName), &v1beta1.Scale{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Scale), err -} - -// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *FakeDeployments) UpdateScale(deploymentName string, scale *v1beta1.Scale) (result *v1beta1.Scale, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(deploymentsResource, "scale", c.ns, scale), &v1beta1.Scale{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Scale), err + return obj.(*apps_v1.Deployment), err } diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_replicaset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go similarity index 60% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_replicaset.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go index e8d22c6b4..ba8539578 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/fake_replicaset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go @@ -17,7 +17,7 @@ limitations under the License. package fake import ( - v1beta1 "k8s.io/api/extensions/v1beta1" + apps_v1 "k8s.io/api/apps/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -28,29 +28,29 @@ import ( // FakeReplicaSets implements ReplicaSetInterface type FakeReplicaSets struct { - Fake *FakeExtensionsV1beta1 + Fake *FakeAppsV1 ns string } -var replicasetsResource = schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "replicasets"} +var replicasetsResource = schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "replicasets"} -var replicasetsKind = schema.GroupVersionKind{Group: "extensions", Version: "v1beta1", Kind: "ReplicaSet"} +var replicasetsKind = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "ReplicaSet"} // Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any. -func (c *FakeReplicaSets) Get(name string, options v1.GetOptions) (result *v1beta1.ReplicaSet, err error) { +func (c *FakeReplicaSets) Get(name string, options v1.GetOptions) (result *apps_v1.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(replicasetsResource, c.ns, name), &v1beta1.ReplicaSet{}) + Invokes(testing.NewGetAction(replicasetsResource, c.ns, name), &apps_v1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*v1beta1.ReplicaSet), err + return obj.(*apps_v1.ReplicaSet), err } // List takes label and field selectors, and returns the list of ReplicaSets that match those selectors. -func (c *FakeReplicaSets) List(opts v1.ListOptions) (result *v1beta1.ReplicaSetList, err error) { +func (c *FakeReplicaSets) List(opts v1.ListOptions) (result *apps_v1.ReplicaSetList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(replicasetsResource, replicasetsKind, c.ns, opts), &v1beta1.ReplicaSetList{}) + Invokes(testing.NewListAction(replicasetsResource, replicasetsKind, c.ns, opts), &apps_v1.ReplicaSetList{}) if obj == nil { return nil, err @@ -60,8 +60,8 @@ func (c *FakeReplicaSets) List(opts v1.ListOptions) (result *v1beta1.ReplicaSetL if label == nil { label = labels.Everything() } - list := &v1beta1.ReplicaSetList{} - for _, item := range obj.(*v1beta1.ReplicaSetList).Items { + list := &apps_v1.ReplicaSetList{} + for _, item := range obj.(*apps_v1.ReplicaSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -77,43 +77,43 @@ func (c *FakeReplicaSets) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a replicaSet and creates it. Returns the server's representation of the replicaSet, and an error, if there is any. -func (c *FakeReplicaSets) Create(replicaSet *v1beta1.ReplicaSet) (result *v1beta1.ReplicaSet, err error) { +func (c *FakeReplicaSets) Create(replicaSet *apps_v1.ReplicaSet) (result *apps_v1.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(replicasetsResource, c.ns, replicaSet), &v1beta1.ReplicaSet{}) + Invokes(testing.NewCreateAction(replicasetsResource, c.ns, replicaSet), &apps_v1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*v1beta1.ReplicaSet), err + return obj.(*apps_v1.ReplicaSet), err } // Update takes the representation of a replicaSet and updates it. Returns the server's representation of the replicaSet, and an error, if there is any. -func (c *FakeReplicaSets) Update(replicaSet *v1beta1.ReplicaSet) (result *v1beta1.ReplicaSet, err error) { +func (c *FakeReplicaSets) Update(replicaSet *apps_v1.ReplicaSet) (result *apps_v1.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(replicasetsResource, c.ns, replicaSet), &v1beta1.ReplicaSet{}) + Invokes(testing.NewUpdateAction(replicasetsResource, c.ns, replicaSet), &apps_v1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*v1beta1.ReplicaSet), err + return obj.(*apps_v1.ReplicaSet), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeReplicaSets) UpdateStatus(replicaSet *v1beta1.ReplicaSet) (*v1beta1.ReplicaSet, error) { +func (c *FakeReplicaSets) UpdateStatus(replicaSet *apps_v1.ReplicaSet) (*apps_v1.ReplicaSet, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(replicasetsResource, "status", c.ns, replicaSet), &v1beta1.ReplicaSet{}) + Invokes(testing.NewUpdateSubresourceAction(replicasetsResource, "status", c.ns, replicaSet), &apps_v1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*v1beta1.ReplicaSet), err + return obj.(*apps_v1.ReplicaSet), err } // Delete takes name of the replicaSet and deletes it. Returns an error if one occurs. func (c *FakeReplicaSets) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(replicasetsResource, c.ns, name), &v1beta1.ReplicaSet{}) + Invokes(testing.NewDeleteAction(replicasetsResource, c.ns, name), &apps_v1.ReplicaSet{}) return err } @@ -122,39 +122,17 @@ func (c *FakeReplicaSets) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeReplicaSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(replicasetsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &v1beta1.ReplicaSetList{}) + _, err := c.Fake.Invokes(action, &apps_v1.ReplicaSetList{}) return err } // Patch applies the patch and returns the patched replicaSet. -func (c *FakeReplicaSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ReplicaSet, err error) { +func (c *FakeReplicaSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps_v1.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, data, subresources...), &v1beta1.ReplicaSet{}) + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, data, subresources...), &apps_v1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*v1beta1.ReplicaSet), err -} - -// GetScale takes name of the replicaSet, and returns the corresponding scale object, and an error if there is any. -func (c *FakeReplicaSets) GetScale(replicaSetName string, options v1.GetOptions) (result *v1beta1.Scale, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetSubresourceAction(replicasetsResource, c.ns, "scale", replicaSetName), &v1beta1.Scale{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Scale), err -} - -// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *FakeReplicaSets) UpdateScale(replicaSetName string, scale *v1beta1.Scale) (result *v1beta1.Scale, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(replicasetsResource, "scale", c.ns, scale), &v1beta1.Scale{}) - - if obj == nil { - return nil, err - } - return obj.(*v1beta1.Scale), err + return obj.(*apps_v1.ReplicaSet), err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go new file mode 100644 index 000000000..39d3c59fb --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go @@ -0,0 +1,138 @@ +/* +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 fake + +import ( + apps_v1 "k8s.io/api/apps/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeStatefulSets implements StatefulSetInterface +type FakeStatefulSets struct { + Fake *FakeAppsV1 + ns string +} + +var statefulsetsResource = schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "statefulsets"} + +var statefulsetsKind = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "StatefulSet"} + +// Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any. +func (c *FakeStatefulSets) Get(name string, options v1.GetOptions) (result *apps_v1.StatefulSet, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(statefulsetsResource, c.ns, name), &apps_v1.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*apps_v1.StatefulSet), err +} + +// List takes label and field selectors, and returns the list of StatefulSets that match those selectors. +func (c *FakeStatefulSets) List(opts v1.ListOptions) (result *apps_v1.StatefulSetList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(statefulsetsResource, statefulsetsKind, c.ns, opts), &apps_v1.StatefulSetList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &apps_v1.StatefulSetList{} + for _, item := range obj.(*apps_v1.StatefulSetList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested statefulSets. +func (c *FakeStatefulSets) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(statefulsetsResource, c.ns, opts)) + +} + +// Create takes the representation of a statefulSet and creates it. Returns the server's representation of the statefulSet, and an error, if there is any. +func (c *FakeStatefulSets) Create(statefulSet *apps_v1.StatefulSet) (result *apps_v1.StatefulSet, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(statefulsetsResource, c.ns, statefulSet), &apps_v1.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*apps_v1.StatefulSet), err +} + +// Update takes the representation of a statefulSet and updates it. Returns the server's representation of the statefulSet, and an error, if there is any. +func (c *FakeStatefulSets) Update(statefulSet *apps_v1.StatefulSet) (result *apps_v1.StatefulSet, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(statefulsetsResource, c.ns, statefulSet), &apps_v1.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*apps_v1.StatefulSet), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeStatefulSets) UpdateStatus(statefulSet *apps_v1.StatefulSet) (*apps_v1.StatefulSet, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(statefulsetsResource, "status", c.ns, statefulSet), &apps_v1.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*apps_v1.StatefulSet), err +} + +// Delete takes name of the statefulSet and deletes it. Returns an error if one occurs. +func (c *FakeStatefulSets) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(statefulsetsResource, c.ns, name), &apps_v1.StatefulSet{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeStatefulSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(statefulsetsResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &apps_v1.StatefulSetList{}) + return err +} + +// Patch applies the patch and returns the patched statefulSet. +func (c *FakeStatefulSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps_v1.StatefulSet, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, data, subresources...), &apps_v1.StatefulSet{}) + + if obj == nil { + return nil, err + } + return obj.(*apps_v1.StatefulSet), err +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go index face4d0be..500d67dd3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go @@ -16,4 +16,12 @@ limitations under the License. package v1 +type ControllerRevisionExpansion interface{} + type DaemonSetExpansion interface{} + +type DeploymentExpansion interface{} + +type ReplicaSetExpansion interface{} + +type StatefulSetExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/replicaset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go similarity index 56% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/replicaset.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go index 390387807..5047b0c5f 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/replicaset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go @@ -14,15 +14,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1beta1 +package v1 import ( - v1beta1 "k8s.io/api/extensions/v1beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/api/apps/v1" + meta_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" - scheme "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" ) // ReplicaSetsGetter has a method to return a ReplicaSetInterface. @@ -33,18 +33,15 @@ type ReplicaSetsGetter interface { // ReplicaSetInterface has methods to work with ReplicaSet resources. type ReplicaSetInterface interface { - Create(*v1beta1.ReplicaSet) (*v1beta1.ReplicaSet, error) - Update(*v1beta1.ReplicaSet) (*v1beta1.ReplicaSet, error) - UpdateStatus(*v1beta1.ReplicaSet) (*v1beta1.ReplicaSet, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v1beta1.ReplicaSet, error) - List(opts v1.ListOptions) (*v1beta1.ReplicaSetList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ReplicaSet, err error) - GetScale(replicaSetName string, options v1.GetOptions) (*v1beta1.Scale, error) - UpdateScale(replicaSetName string, scale *v1beta1.Scale) (*v1beta1.Scale, error) - + Create(*v1.ReplicaSet) (*v1.ReplicaSet, error) + Update(*v1.ReplicaSet) (*v1.ReplicaSet, error) + UpdateStatus(*v1.ReplicaSet) (*v1.ReplicaSet, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.ReplicaSet, error) + List(opts meta_v1.ListOptions) (*v1.ReplicaSetList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ReplicaSet, err error) ReplicaSetExpansion } @@ -55,7 +52,7 @@ type replicaSets struct { } // newReplicaSets returns a ReplicaSets -func newReplicaSets(c *ExtensionsV1beta1Client, namespace string) *replicaSets { +func newReplicaSets(c *AppsV1Client, namespace string) *replicaSets { return &replicaSets{ client: c.RESTClient(), ns: namespace, @@ -63,8 +60,8 @@ func newReplicaSets(c *ExtensionsV1beta1Client, namespace string) *replicaSets { } // Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any. -func (c *replicaSets) Get(name string, options v1.GetOptions) (result *v1beta1.ReplicaSet, err error) { - result = &v1beta1.ReplicaSet{} +func (c *replicaSets) Get(name string, options meta_v1.GetOptions) (result *v1.ReplicaSet, err error) { + result = &v1.ReplicaSet{} err = c.client.Get(). Namespace(c.ns). Resource("replicasets"). @@ -76,8 +73,8 @@ func (c *replicaSets) Get(name string, options v1.GetOptions) (result *v1beta1.R } // List takes label and field selectors, and returns the list of ReplicaSets that match those selectors. -func (c *replicaSets) List(opts v1.ListOptions) (result *v1beta1.ReplicaSetList, err error) { - result = &v1beta1.ReplicaSetList{} +func (c *replicaSets) List(opts meta_v1.ListOptions) (result *v1.ReplicaSetList, err error) { + result = &v1.ReplicaSetList{} err = c.client.Get(). Namespace(c.ns). Resource("replicasets"). @@ -88,7 +85,7 @@ func (c *replicaSets) List(opts v1.ListOptions) (result *v1beta1.ReplicaSetList, } // Watch returns a watch.Interface that watches the requested replicaSets. -func (c *replicaSets) Watch(opts v1.ListOptions) (watch.Interface, error) { +func (c *replicaSets) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { opts.Watch = true return c.client.Get(). Namespace(c.ns). @@ -98,8 +95,8 @@ func (c *replicaSets) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a replicaSet and creates it. Returns the server's representation of the replicaSet, and an error, if there is any. -func (c *replicaSets) Create(replicaSet *v1beta1.ReplicaSet) (result *v1beta1.ReplicaSet, err error) { - result = &v1beta1.ReplicaSet{} +func (c *replicaSets) Create(replicaSet *v1.ReplicaSet) (result *v1.ReplicaSet, err error) { + result = &v1.ReplicaSet{} err = c.client.Post(). Namespace(c.ns). Resource("replicasets"). @@ -110,8 +107,8 @@ func (c *replicaSets) Create(replicaSet *v1beta1.ReplicaSet) (result *v1beta1.Re } // Update takes the representation of a replicaSet and updates it. Returns the server's representation of the replicaSet, and an error, if there is any. -func (c *replicaSets) Update(replicaSet *v1beta1.ReplicaSet) (result *v1beta1.ReplicaSet, err error) { - result = &v1beta1.ReplicaSet{} +func (c *replicaSets) Update(replicaSet *v1.ReplicaSet) (result *v1.ReplicaSet, err error) { + result = &v1.ReplicaSet{} err = c.client.Put(). Namespace(c.ns). Resource("replicasets"). @@ -125,8 +122,8 @@ func (c *replicaSets) Update(replicaSet *v1beta1.ReplicaSet) (result *v1beta1.Re // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *replicaSets) UpdateStatus(replicaSet *v1beta1.ReplicaSet) (result *v1beta1.ReplicaSet, err error) { - result = &v1beta1.ReplicaSet{} +func (c *replicaSets) UpdateStatus(replicaSet *v1.ReplicaSet) (result *v1.ReplicaSet, err error) { + result = &v1.ReplicaSet{} err = c.client.Put(). Namespace(c.ns). Resource("replicasets"). @@ -139,7 +136,7 @@ func (c *replicaSets) UpdateStatus(replicaSet *v1beta1.ReplicaSet) (result *v1be } // Delete takes name of the replicaSet and deletes it. Returns an error if one occurs. -func (c *replicaSets) Delete(name string, options *v1.DeleteOptions) error { +func (c *replicaSets) Delete(name string, options *meta_v1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("replicasets"). @@ -150,7 +147,7 @@ func (c *replicaSets) Delete(name string, options *v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *replicaSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { +func (c *replicaSets) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("replicasets"). @@ -161,8 +158,8 @@ func (c *replicaSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1 } // Patch applies the patch and returns the patched replicaSet. -func (c *replicaSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ReplicaSet, err error) { - result = &v1beta1.ReplicaSet{} +func (c *replicaSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ReplicaSet, err error) { + result = &v1.ReplicaSet{} err = c.client.Patch(pt). Namespace(c.ns). Resource("replicasets"). @@ -173,31 +170,3 @@ func (c *replicaSets) Patch(name string, pt types.PatchType, data []byte, subres Into(result) return } - -// GetScale takes name of the replicaSet, and returns the corresponding v1beta1.Scale object, and an error if there is any. -func (c *replicaSets) GetScale(replicaSetName string, options v1.GetOptions) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} - err = c.client.Get(). - Namespace(c.ns). - Resource("replicasets"). - Name(replicaSetName). - SubResource("scale"). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *replicaSets) UpdateScale(replicaSetName string, scale *v1beta1.Scale) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} - err = c.client.Put(). - Namespace(c.ns). - Resource("replicasets"). - Name(replicaSetName). - SubResource("scale"). - Body(scale). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go new file mode 100644 index 000000000..2c927ac0c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go @@ -0,0 +1,172 @@ +/* +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 ( + v1 "k8s.io/api/apps/v1" + meta_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" +) + +// StatefulSetsGetter has a method to return a StatefulSetInterface. +// A group's client should implement this interface. +type StatefulSetsGetter interface { + StatefulSets(namespace string) StatefulSetInterface +} + +// StatefulSetInterface has methods to work with StatefulSet resources. +type StatefulSetInterface interface { + Create(*v1.StatefulSet) (*v1.StatefulSet, error) + Update(*v1.StatefulSet) (*v1.StatefulSet, error) + UpdateStatus(*v1.StatefulSet) (*v1.StatefulSet, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.StatefulSet, error) + List(opts meta_v1.ListOptions) (*v1.StatefulSetList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.StatefulSet, err error) + StatefulSetExpansion +} + +// statefulSets implements StatefulSetInterface +type statefulSets struct { + client rest.Interface + ns string +} + +// newStatefulSets returns a StatefulSets +func newStatefulSets(c *AppsV1Client, namespace string) *statefulSets { + return &statefulSets{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any. +func (c *statefulSets) Get(name string, options meta_v1.GetOptions) (result *v1.StatefulSet, err error) { + result = &v1.StatefulSet{} + err = c.client.Get(). + Namespace(c.ns). + Resource("statefulsets"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of StatefulSets that match those selectors. +func (c *statefulSets) List(opts meta_v1.ListOptions) (result *v1.StatefulSetList, err error) { + result = &v1.StatefulSetList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("statefulsets"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested statefulSets. +func (c *statefulSets) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("statefulsets"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a statefulSet and creates it. Returns the server's representation of the statefulSet, and an error, if there is any. +func (c *statefulSets) Create(statefulSet *v1.StatefulSet) (result *v1.StatefulSet, err error) { + result = &v1.StatefulSet{} + err = c.client.Post(). + Namespace(c.ns). + Resource("statefulsets"). + Body(statefulSet). + Do(). + Into(result) + return +} + +// Update takes the representation of a statefulSet and updates it. Returns the server's representation of the statefulSet, and an error, if there is any. +func (c *statefulSets) Update(statefulSet *v1.StatefulSet) (result *v1.StatefulSet, err error) { + result = &v1.StatefulSet{} + err = c.client.Put(). + Namespace(c.ns). + Resource("statefulsets"). + Name(statefulSet.Name). + Body(statefulSet). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *statefulSets) UpdateStatus(statefulSet *v1.StatefulSet) (result *v1.StatefulSet, err error) { + result = &v1.StatefulSet{} + err = c.client.Put(). + Namespace(c.ns). + Resource("statefulsets"). + Name(statefulSet.Name). + SubResource("status"). + Body(statefulSet). + Do(). + Into(result) + return +} + +// Delete takes name of the statefulSet and deletes it. Returns an error if one occurs. +func (c *statefulSets) Delete(name string, options *meta_v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("statefulsets"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *statefulSets) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("statefulsets"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched statefulSet. +func (c *statefulSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.StatefulSet, err error) { + result = &v1.StatefulSet{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("statefulsets"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD index 04089e57a..5ad976867 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD @@ -19,7 +19,6 @@ go_library( "replicaset.go", "scale.go", "scale_expansion.go", - "thirdpartyresource.go", ], importpath = "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", deps = [ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go index c1798f673..b4f8886ad 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go @@ -31,7 +31,6 @@ type ExtensionsV1beta1Interface interface { PodSecurityPoliciesGetter ReplicaSetsGetter ScalesGetter - ThirdPartyResourcesGetter } // ExtensionsV1beta1Client is used to interact with features provided by the extensions group. @@ -63,10 +62,6 @@ func (c *ExtensionsV1beta1Client) Scales(namespace string) ScaleInterface { return newScales(c, namespace) } -func (c *ExtensionsV1beta1Client) ThirdPartyResources() ThirdPartyResourceInterface { - return newThirdPartyResources(c) -} - // NewForConfig creates a new ExtensionsV1beta1Client for the given config. func NewForConfig(c *rest.Config) (*ExtensionsV1beta1Client, error) { config := *c diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD index 33703aa74..e62ff5bc8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD @@ -18,7 +18,6 @@ go_library( "fake_replicaset.go", "fake_scale.go", "fake_scale_expansion.go", - "fake_thirdpartyresource.go", ], importpath = "k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake", deps = [ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go index c0489371a..8ec490c50 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go @@ -50,10 +50,6 @@ func (c *FakeExtensionsV1beta1) Scales(namespace string) v1beta1.ScaleInterface return &FakeScales{c, namespace} } -func (c *FakeExtensionsV1beta1) ThirdPartyResources() v1beta1.ThirdPartyResourceInterface { - return &FakeThirdPartyResources{c} -} - // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeExtensionsV1beta1) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_thirdpartyresource.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_thirdpartyresource.go deleted file mode 100644 index 400aa5ad9..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_thirdpartyresource.go +++ /dev/null @@ -1,118 +0,0 @@ -/* -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 fake - -import ( - v1beta1 "k8s.io/api/extensions/v1beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeThirdPartyResources implements ThirdPartyResourceInterface -type FakeThirdPartyResources struct { - Fake *FakeExtensionsV1beta1 -} - -var thirdpartyresourcesResource = schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "thirdpartyresources"} - -var thirdpartyresourcesKind = schema.GroupVersionKind{Group: "extensions", Version: "v1beta1", Kind: "ThirdPartyResource"} - -// Get takes name of the thirdPartyResource, and returns the corresponding thirdPartyResource object, and an error if there is any. -func (c *FakeThirdPartyResources) Get(name string, options v1.GetOptions) (result *v1beta1.ThirdPartyResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(thirdpartyresourcesResource, name), &v1beta1.ThirdPartyResource{}) - if obj == nil { - return nil, err - } - return obj.(*v1beta1.ThirdPartyResource), err -} - -// List takes label and field selectors, and returns the list of ThirdPartyResources that match those selectors. -func (c *FakeThirdPartyResources) List(opts v1.ListOptions) (result *v1beta1.ThirdPartyResourceList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(thirdpartyresourcesResource, thirdpartyresourcesKind, opts), &v1beta1.ThirdPartyResourceList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1beta1.ThirdPartyResourceList{} - for _, item := range obj.(*v1beta1.ThirdPartyResourceList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested thirdPartyResources. -func (c *FakeThirdPartyResources) Watch(opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(thirdpartyresourcesResource, opts)) -} - -// Create takes the representation of a thirdPartyResource and creates it. Returns the server's representation of the thirdPartyResource, and an error, if there is any. -func (c *FakeThirdPartyResources) Create(thirdPartyResource *v1beta1.ThirdPartyResource) (result *v1beta1.ThirdPartyResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(thirdpartyresourcesResource, thirdPartyResource), &v1beta1.ThirdPartyResource{}) - if obj == nil { - return nil, err - } - return obj.(*v1beta1.ThirdPartyResource), err -} - -// Update takes the representation of a thirdPartyResource and updates it. Returns the server's representation of the thirdPartyResource, and an error, if there is any. -func (c *FakeThirdPartyResources) Update(thirdPartyResource *v1beta1.ThirdPartyResource) (result *v1beta1.ThirdPartyResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(thirdpartyresourcesResource, thirdPartyResource), &v1beta1.ThirdPartyResource{}) - if obj == nil { - return nil, err - } - return obj.(*v1beta1.ThirdPartyResource), err -} - -// Delete takes name of the thirdPartyResource and deletes it. Returns an error if one occurs. -func (c *FakeThirdPartyResources) Delete(name string, options *v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(thirdpartyresourcesResource, name), &v1beta1.ThirdPartyResource{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeThirdPartyResources) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(thirdpartyresourcesResource, listOptions) - - _, err := c.Fake.Invokes(action, &v1beta1.ThirdPartyResourceList{}) - return err -} - -// Patch applies the patch and returns the patched thirdPartyResource. -func (c *FakeThirdPartyResources) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ThirdPartyResource, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(thirdpartyresourcesResource, name, data, subresources...), &v1beta1.ThirdPartyResource{}) - if obj == nil { - return nil, err - } - return obj.(*v1beta1.ThirdPartyResource), err -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go index d0a3d64bc..e693fe68c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go @@ -23,5 +23,3 @@ type IngressExpansion interface{} type PodSecurityPolicyExpansion interface{} type ReplicaSetExpansion interface{} - -type ThirdPartyResourceExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/thirdpartyresource.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/thirdpartyresource.go deleted file mode 100644 index 28fb6dcb5..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/thirdpartyresource.go +++ /dev/null @@ -1,145 +0,0 @@ -/* -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/extensions/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" -) - -// ThirdPartyResourcesGetter has a method to return a ThirdPartyResourceInterface. -// A group's client should implement this interface. -type ThirdPartyResourcesGetter interface { - ThirdPartyResources() ThirdPartyResourceInterface -} - -// ThirdPartyResourceInterface has methods to work with ThirdPartyResource resources. -type ThirdPartyResourceInterface interface { - Create(*v1beta1.ThirdPartyResource) (*v1beta1.ThirdPartyResource, error) - Update(*v1beta1.ThirdPartyResource) (*v1beta1.ThirdPartyResource, error) - Delete(name string, options *v1.DeleteOptions) error - DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error - Get(name string, options v1.GetOptions) (*v1beta1.ThirdPartyResource, error) - List(opts v1.ListOptions) (*v1beta1.ThirdPartyResourceList, error) - Watch(opts v1.ListOptions) (watch.Interface, error) - Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ThirdPartyResource, err error) - ThirdPartyResourceExpansion -} - -// thirdPartyResources implements ThirdPartyResourceInterface -type thirdPartyResources struct { - client rest.Interface -} - -// newThirdPartyResources returns a ThirdPartyResources -func newThirdPartyResources(c *ExtensionsV1beta1Client) *thirdPartyResources { - return &thirdPartyResources{ - client: c.RESTClient(), - } -} - -// Get takes name of the thirdPartyResource, and returns the corresponding thirdPartyResource object, and an error if there is any. -func (c *thirdPartyResources) Get(name string, options v1.GetOptions) (result *v1beta1.ThirdPartyResource, err error) { - result = &v1beta1.ThirdPartyResource{} - err = c.client.Get(). - Resource("thirdpartyresources"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ThirdPartyResources that match those selectors. -func (c *thirdPartyResources) List(opts v1.ListOptions) (result *v1beta1.ThirdPartyResourceList, err error) { - result = &v1beta1.ThirdPartyResourceList{} - err = c.client.Get(). - Resource("thirdpartyresources"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested thirdPartyResources. -func (c *thirdPartyResources) Watch(opts v1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.client.Get(). - Resource("thirdpartyresources"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch() -} - -// Create takes the representation of a thirdPartyResource and creates it. Returns the server's representation of the thirdPartyResource, and an error, if there is any. -func (c *thirdPartyResources) Create(thirdPartyResource *v1beta1.ThirdPartyResource) (result *v1beta1.ThirdPartyResource, err error) { - result = &v1beta1.ThirdPartyResource{} - err = c.client.Post(). - Resource("thirdpartyresources"). - Body(thirdPartyResource). - Do(). - Into(result) - return -} - -// Update takes the representation of a thirdPartyResource and updates it. Returns the server's representation of the thirdPartyResource, and an error, if there is any. -func (c *thirdPartyResources) Update(thirdPartyResource *v1beta1.ThirdPartyResource) (result *v1beta1.ThirdPartyResource, err error) { - result = &v1beta1.ThirdPartyResource{} - err = c.client.Put(). - Resource("thirdpartyresources"). - Name(thirdPartyResource.Name). - Body(thirdPartyResource). - Do(). - Into(result) - return -} - -// Delete takes name of the thirdPartyResource and deletes it. Returns an error if one occurs. -func (c *thirdPartyResources) Delete(name string, options *v1.DeleteOptions) error { - return c.client.Delete(). - Resource("thirdpartyresources"). - Name(name). - Body(options). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *thirdPartyResources) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - return c.client.Delete(). - Resource("thirdpartyresources"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - -// Patch applies the patch and returns the patched thirdPartyResource. -func (c *thirdPartyResources) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ThirdPartyResource, err error) { - result = &v1beta1.ThirdPartyResource{} - err = c.client.Patch(pt). - Resource("thirdpartyresources"). - SubResource(subresources...). - Name(name). - Body(data). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/BUILD similarity index 58% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/BUILD index de8553722..155421963 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/BUILD @@ -1,26 +1,22 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ - "batch_client.go", "doc.go", "generated_expansion.go", - "job.go", + "storage_client.go", + "volumeattachment.go", ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1", + importpath = "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", + visibility = ["//visibility:public"], deps = [ - "//federation/client/clientset_generated/federation_clientset/scheme:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", + "//vendor/k8s.io/api/storage/v1alpha1: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", ], ) @@ -36,7 +32,8 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake:all-srcs", + "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake:all-srcs", ], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/doc.go similarity index 97% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/doc.go index 1b50aa199..cdaaf6207 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/doc.go @@ -15,4 +15,4 @@ limitations under the License. */ // This package has the automatically generated typed clients. -package v1beta1 +package v1alpha1 diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/BUILD similarity index 64% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/BUILD index 732d32eba..a509ba7fc 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/BUILD @@ -1,26 +1,22 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ "doc.go", - "fake_batch_client.go", - "fake_job.go", + "fake_storage_client.go", + "fake_volumeattachment.go", ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake", + importpath = "k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake", + visibility = ["//visibility:public"], deps = [ - "//federation/client/clientset_generated/federation_clientset/typed/batch/v1:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", + "//vendor/k8s.io/api/storage/v1alpha1: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/apimachinery/pkg/runtime/schema: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/typed/storage/v1alpha1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", ], @@ -37,4 +33,5 @@ filegroup( name = "all-srcs", srcs = [":package-srcs"], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/doc.go diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/fake_federation_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go similarity index 73% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/fake_federation_client.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go index 73edbff85..1d06eba6b 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/fake_federation_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go @@ -17,22 +17,22 @@ limitations under the License. package fake import ( + v1alpha1 "k8s.io/client-go/kubernetes/typed/storage/v1alpha1" rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" - v1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1" ) -type FakeFederationV1beta1 struct { +type FakeStorageV1alpha1 struct { *testing.Fake } -func (c *FakeFederationV1beta1) Clusters() v1beta1.ClusterInterface { - return &FakeClusters{c} +func (c *FakeStorageV1alpha1) VolumeAttachments() v1alpha1.VolumeAttachmentInterface { + return &FakeVolumeAttachments{c} } // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *FakeFederationV1beta1) RESTClient() rest.Interface { +func (c *FakeStorageV1alpha1) RESTClient() rest.Interface { var ret *rest.RESTClient return ret } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go new file mode 100644 index 000000000..5213d10be --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go @@ -0,0 +1,129 @@ +/* +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 fake + +import ( + v1alpha1 "k8s.io/api/storage/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeVolumeAttachments implements VolumeAttachmentInterface +type FakeVolumeAttachments struct { + Fake *FakeStorageV1alpha1 +} + +var volumeattachmentsResource = schema.GroupVersionResource{Group: "storage.k8s.io", Version: "v1alpha1", Resource: "volumeattachments"} + +var volumeattachmentsKind = schema.GroupVersionKind{Group: "storage.k8s.io", Version: "v1alpha1", Kind: "VolumeAttachment"} + +// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any. +func (c *FakeVolumeAttachments) Get(name string, options v1.GetOptions) (result *v1alpha1.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(volumeattachmentsResource, name), &v1alpha1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.VolumeAttachment), err +} + +// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors. +func (c *FakeVolumeAttachments) List(opts v1.ListOptions) (result *v1alpha1.VolumeAttachmentList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(volumeattachmentsResource, volumeattachmentsKind, opts), &v1alpha1.VolumeAttachmentList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.VolumeAttachmentList{} + for _, item := range obj.(*v1alpha1.VolumeAttachmentList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested volumeAttachments. +func (c *FakeVolumeAttachments) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(volumeattachmentsResource, opts)) +} + +// Create takes the representation of a volumeAttachment and creates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *FakeVolumeAttachments) Create(volumeAttachment *v1alpha1.VolumeAttachment) (result *v1alpha1.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(volumeattachmentsResource, volumeAttachment), &v1alpha1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.VolumeAttachment), err +} + +// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *FakeVolumeAttachments) Update(volumeAttachment *v1alpha1.VolumeAttachment) (result *v1alpha1.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(volumeattachmentsResource, volumeAttachment), &v1alpha1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.VolumeAttachment), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeVolumeAttachments) UpdateStatus(volumeAttachment *v1alpha1.VolumeAttachment) (*v1alpha1.VolumeAttachment, error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(volumeattachmentsResource, "status", volumeAttachment), &v1alpha1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.VolumeAttachment), err +} + +// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs. +func (c *FakeVolumeAttachments) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(volumeattachmentsResource, name), &v1alpha1.VolumeAttachment{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeVolumeAttachments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(volumeattachmentsResource, listOptions) + + _, err := c.Fake.Invokes(action, &v1alpha1.VolumeAttachmentList{}) + return err +} + +// Patch applies the patch and returns the patched volumeAttachment. +func (c *FakeVolumeAttachments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, data, subresources...), &v1alpha1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.VolumeAttachment), err +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/generated_expansion.go new file mode 100644 index 000000000..afa636a2f --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/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 v1alpha1 + +type VolumeAttachmentExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/federation_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go similarity index 58% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/federation_client.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go index e5c8d1d04..3e8c70bf1 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/federation_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go @@ -14,31 +14,31 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1beta1 +package v1alpha1 import ( + v1alpha1 "k8s.io/api/storage/v1alpha1" serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/kubernetes/scheme" rest "k8s.io/client-go/rest" - v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" ) -type FederationV1beta1Interface interface { +type StorageV1alpha1Interface interface { RESTClient() rest.Interface - ClustersGetter + VolumeAttachmentsGetter } -// FederationV1beta1Client is used to interact with features provided by the federation group. -type FederationV1beta1Client struct { +// StorageV1alpha1Client is used to interact with features provided by the storage.k8s.io group. +type StorageV1alpha1Client struct { restClient rest.Interface } -func (c *FederationV1beta1Client) Clusters() ClusterInterface { - return newClusters(c) +func (c *StorageV1alpha1Client) VolumeAttachments() VolumeAttachmentInterface { + return newVolumeAttachments(c) } -// NewForConfig creates a new FederationV1beta1Client for the given config. -func NewForConfig(c *rest.Config) (*FederationV1beta1Client, error) { +// NewForConfig creates a new StorageV1alpha1Client for the given config. +func NewForConfig(c *rest.Config) (*StorageV1alpha1Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err @@ -47,12 +47,12 @@ func NewForConfig(c *rest.Config) (*FederationV1beta1Client, error) { if err != nil { return nil, err } - return &FederationV1beta1Client{client}, nil + return &StorageV1alpha1Client{client}, nil } -// NewForConfigOrDie creates a new FederationV1beta1Client for the given config and +// NewForConfigOrDie creates a new StorageV1alpha1Client for the given config and // panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *FederationV1beta1Client { +func NewForConfigOrDie(c *rest.Config) *StorageV1alpha1Client { client, err := NewForConfig(c) if err != nil { panic(err) @@ -60,13 +60,13 @@ func NewForConfigOrDie(c *rest.Config) *FederationV1beta1Client { return client } -// New creates a new FederationV1beta1Client for the given RESTClient. -func New(c rest.Interface) *FederationV1beta1Client { - return &FederationV1beta1Client{c} +// New creates a new StorageV1alpha1Client for the given RESTClient. +func New(c rest.Interface) *StorageV1alpha1Client { + return &StorageV1alpha1Client{c} } func setConfigDefaults(config *rest.Config) error { - gv := v1beta1.SchemeGroupVersion + gv := v1alpha1.SchemeGroupVersion config.GroupVersion = &gv config.APIPath = "/apis" config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} @@ -80,7 +80,7 @@ func setConfigDefaults(config *rest.Config) error { // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *FederationV1beta1Client) RESTClient() rest.Interface { +func (c *StorageV1alpha1Client) RESTClient() rest.Interface { if c == nil { return nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go new file mode 100644 index 000000000..08bdfb259 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go @@ -0,0 +1,161 @@ +/* +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 v1alpha1 + +import ( + v1alpha1 "k8s.io/api/storage/v1alpha1" + 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" +) + +// VolumeAttachmentsGetter has a method to return a VolumeAttachmentInterface. +// A group's client should implement this interface. +type VolumeAttachmentsGetter interface { + VolumeAttachments() VolumeAttachmentInterface +} + +// VolumeAttachmentInterface has methods to work with VolumeAttachment resources. +type VolumeAttachmentInterface interface { + Create(*v1alpha1.VolumeAttachment) (*v1alpha1.VolumeAttachment, error) + Update(*v1alpha1.VolumeAttachment) (*v1alpha1.VolumeAttachment, error) + UpdateStatus(*v1alpha1.VolumeAttachment) (*v1alpha1.VolumeAttachment, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1alpha1.VolumeAttachment, error) + List(opts v1.ListOptions) (*v1alpha1.VolumeAttachmentList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeAttachment, err error) + VolumeAttachmentExpansion +} + +// volumeAttachments implements VolumeAttachmentInterface +type volumeAttachments struct { + client rest.Interface +} + +// newVolumeAttachments returns a VolumeAttachments +func newVolumeAttachments(c *StorageV1alpha1Client) *volumeAttachments { + return &volumeAttachments{ + client: c.RESTClient(), + } +} + +// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any. +func (c *volumeAttachments) Get(name string, options v1.GetOptions) (result *v1alpha1.VolumeAttachment, err error) { + result = &v1alpha1.VolumeAttachment{} + err = c.client.Get(). + Resource("volumeattachments"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors. +func (c *volumeAttachments) List(opts v1.ListOptions) (result *v1alpha1.VolumeAttachmentList, err error) { + result = &v1alpha1.VolumeAttachmentList{} + err = c.client.Get(). + Resource("volumeattachments"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested volumeAttachments. +func (c *volumeAttachments) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("volumeattachments"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a volumeAttachment and creates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *volumeAttachments) Create(volumeAttachment *v1alpha1.VolumeAttachment) (result *v1alpha1.VolumeAttachment, err error) { + result = &v1alpha1.VolumeAttachment{} + err = c.client.Post(). + Resource("volumeattachments"). + Body(volumeAttachment). + Do(). + Into(result) + return +} + +// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *volumeAttachments) Update(volumeAttachment *v1alpha1.VolumeAttachment) (result *v1alpha1.VolumeAttachment, err error) { + result = &v1alpha1.VolumeAttachment{} + err = c.client.Put(). + Resource("volumeattachments"). + Name(volumeAttachment.Name). + Body(volumeAttachment). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *volumeAttachments) UpdateStatus(volumeAttachment *v1alpha1.VolumeAttachment) (result *v1alpha1.VolumeAttachment, err error) { + result = &v1alpha1.VolumeAttachment{} + err = c.client.Put(). + Resource("volumeattachments"). + Name(volumeAttachment.Name). + SubResource("status"). + Body(volumeAttachment). + Do(). + Into(result) + return +} + +// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs. +func (c *volumeAttachments) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("volumeattachments"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *volumeAttachments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Resource("volumeattachments"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched volumeAttachment. +func (c *volumeAttachments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeAttachment, err error) { + result = &v1alpha1.VolumeAttachment{} + err = c.client.Patch(pt). + Resource("volumeattachments"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD index 64bbbe59b..387deca86 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD @@ -9,14 +9,14 @@ go_library( name = "go_default_library", srcs = [ "expansion_generated.go", - "externaladmissionhookconfiguration.go", "initializerconfiguration.go", + "mutatingwebhookconfiguration.go", + "validatingwebhookconfiguration.go", ], importpath = "k8s.io/client-go/listers/admissionregistration/v1alpha1", deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1: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/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/expansion_generated.go index 5d9f14708..a0d51f1cf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/expansion_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/expansion_generated.go @@ -18,10 +18,14 @@ limitations under the License. package v1alpha1 -// ExternalAdmissionHookConfigurationListerExpansion allows custom methods to be added to -// ExternalAdmissionHookConfigurationLister. -type ExternalAdmissionHookConfigurationListerExpansion interface{} - // InitializerConfigurationListerExpansion allows custom methods to be added to // InitializerConfigurationLister. type InitializerConfigurationListerExpansion interface{} + +// MutatingWebhookConfigurationListerExpansion allows custom methods to be added to +// MutatingWebhookConfigurationLister. +type MutatingWebhookConfigurationListerExpansion interface{} + +// ValidatingWebhookConfigurationListerExpansion allows custom methods to be added to +// ValidatingWebhookConfigurationLister. +type ValidatingWebhookConfigurationListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go deleted file mode 100644 index 9a536c99e..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/externaladmissionhookconfiguration.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -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 v1alpha1 - -import ( - v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" - "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ExternalAdmissionHookConfigurationLister helps list ExternalAdmissionHookConfigurations. -type ExternalAdmissionHookConfigurationLister interface { - // List lists all ExternalAdmissionHookConfigurations in the indexer. - List(selector labels.Selector) (ret []*v1alpha1.ExternalAdmissionHookConfiguration, err error) - // Get retrieves the ExternalAdmissionHookConfiguration from the index for a given name. - Get(name string) (*v1alpha1.ExternalAdmissionHookConfiguration, error) - ExternalAdmissionHookConfigurationListerExpansion -} - -// externalAdmissionHookConfigurationLister implements the ExternalAdmissionHookConfigurationLister interface. -type externalAdmissionHookConfigurationLister struct { - indexer cache.Indexer -} - -// NewExternalAdmissionHookConfigurationLister returns a new ExternalAdmissionHookConfigurationLister. -func NewExternalAdmissionHookConfigurationLister(indexer cache.Indexer) ExternalAdmissionHookConfigurationLister { - return &externalAdmissionHookConfigurationLister{indexer: indexer} -} - -// List lists all ExternalAdmissionHookConfigurations in the indexer. -func (s *externalAdmissionHookConfigurationLister) List(selector labels.Selector) (ret []*v1alpha1.ExternalAdmissionHookConfiguration, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.ExternalAdmissionHookConfiguration)) - }) - return ret, err -} - -// Get retrieves the ExternalAdmissionHookConfiguration from the index for a given name. -func (s *externalAdmissionHookConfigurationLister) Get(name string) (*v1alpha1.ExternalAdmissionHookConfiguration, error) { - key := &v1alpha1.ExternalAdmissionHookConfiguration{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1alpha1.Resource("externaladmissionhookconfiguration"), name) - } - return obj.(*v1alpha1.ExternalAdmissionHookConfiguration), nil -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go index a19d20807..60b004ef9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *initializerConfigurationLister) List(selector labels.Selector) (ret []* // Get retrieves the InitializerConfiguration from the index for a given name. func (s *initializerConfigurationLister) Get(name string) (*v1alpha1.InitializerConfiguration, error) { - key := &v1alpha1.InitializerConfiguration{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go new file mode 100644 index 000000000..99ccc3096 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/mutatingwebhookconfiguration.go @@ -0,0 +1,65 @@ +/* +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 v1alpha1 + +import ( + v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// MutatingWebhookConfigurationLister helps list MutatingWebhookConfigurations. +type MutatingWebhookConfigurationLister interface { + // List lists all MutatingWebhookConfigurations in the indexer. + List(selector labels.Selector) (ret []*v1alpha1.MutatingWebhookConfiguration, err error) + // Get retrieves the MutatingWebhookConfiguration from the index for a given name. + Get(name string) (*v1alpha1.MutatingWebhookConfiguration, error) + MutatingWebhookConfigurationListerExpansion +} + +// mutatingWebhookConfigurationLister implements the MutatingWebhookConfigurationLister interface. +type mutatingWebhookConfigurationLister struct { + indexer cache.Indexer +} + +// NewMutatingWebhookConfigurationLister returns a new MutatingWebhookConfigurationLister. +func NewMutatingWebhookConfigurationLister(indexer cache.Indexer) MutatingWebhookConfigurationLister { + return &mutatingWebhookConfigurationLister{indexer: indexer} +} + +// List lists all MutatingWebhookConfigurations in the indexer. +func (s *mutatingWebhookConfigurationLister) List(selector labels.Selector) (ret []*v1alpha1.MutatingWebhookConfiguration, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.MutatingWebhookConfiguration)) + }) + return ret, err +} + +// Get retrieves the MutatingWebhookConfiguration from the index for a given name. +func (s *mutatingWebhookConfigurationLister) Get(name string) (*v1alpha1.MutatingWebhookConfiguration, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1alpha1.Resource("mutatingwebhookconfiguration"), name) + } + return obj.(*v1alpha1.MutatingWebhookConfiguration), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/validatingwebhookconfiguration.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/validatingwebhookconfiguration.go new file mode 100644 index 000000000..5a57c2e5a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/validatingwebhookconfiguration.go @@ -0,0 +1,65 @@ +/* +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 v1alpha1 + +import ( + v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// ValidatingWebhookConfigurationLister helps list ValidatingWebhookConfigurations. +type ValidatingWebhookConfigurationLister interface { + // List lists all ValidatingWebhookConfigurations in the indexer. + List(selector labels.Selector) (ret []*v1alpha1.ValidatingWebhookConfiguration, err error) + // Get retrieves the ValidatingWebhookConfiguration from the index for a given name. + Get(name string) (*v1alpha1.ValidatingWebhookConfiguration, error) + ValidatingWebhookConfigurationListerExpansion +} + +// validatingWebhookConfigurationLister implements the ValidatingWebhookConfigurationLister interface. +type validatingWebhookConfigurationLister struct { + indexer cache.Indexer +} + +// NewValidatingWebhookConfigurationLister returns a new ValidatingWebhookConfigurationLister. +func NewValidatingWebhookConfigurationLister(indexer cache.Indexer) ValidatingWebhookConfigurationLister { + return &validatingWebhookConfigurationLister{indexer: indexer} +} + +// List lists all ValidatingWebhookConfigurations in the indexer. +func (s *validatingWebhookConfigurationLister) List(selector labels.Selector) (ret []*v1alpha1.ValidatingWebhookConfiguration, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.ValidatingWebhookConfiguration)) + }) + return ret, err +} + +// Get retrieves the ValidatingWebhookConfiguration from the index for a given name. +func (s *validatingWebhookConfigurationLister) Get(name string) (*v1alpha1.ValidatingWebhookConfiguration, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1alpha1.Resource("validatingwebhookconfiguration"), name) + } + return obj.(*v1alpha1.ValidatingWebhookConfiguration), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/BUILD index 7c4883e69..98d6dfe45 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/BUILD @@ -3,8 +3,12 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ + "controllerrevision.go", "daemonset.go", + "deployment.go", "expansion_generated.go", + "replicaset.go", + "statefulset.go", ], importpath = "k8s.io/client-go/listers/apps/v1", visibility = ["//visibility:public"], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/controllerrevision.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/controllerrevision.go new file mode 100644 index 000000000..c05d14c25 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/controllerrevision.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 v1 + +import ( + v1 "k8s.io/api/apps/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// ControllerRevisionLister helps list ControllerRevisions. +type ControllerRevisionLister interface { + // List lists all ControllerRevisions in the indexer. + List(selector labels.Selector) (ret []*v1.ControllerRevision, err error) + // ControllerRevisions returns an object that can list and get ControllerRevisions. + ControllerRevisions(namespace string) ControllerRevisionNamespaceLister + ControllerRevisionListerExpansion +} + +// controllerRevisionLister implements the ControllerRevisionLister interface. +type controllerRevisionLister struct { + indexer cache.Indexer +} + +// NewControllerRevisionLister returns a new ControllerRevisionLister. +func NewControllerRevisionLister(indexer cache.Indexer) ControllerRevisionLister { + return &controllerRevisionLister{indexer: indexer} +} + +// List lists all ControllerRevisions in the indexer. +func (s *controllerRevisionLister) List(selector labels.Selector) (ret []*v1.ControllerRevision, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.ControllerRevision)) + }) + return ret, err +} + +// ControllerRevisions returns an object that can list and get ControllerRevisions. +func (s *controllerRevisionLister) ControllerRevisions(namespace string) ControllerRevisionNamespaceLister { + return controllerRevisionNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// ControllerRevisionNamespaceLister helps list and get ControllerRevisions. +type ControllerRevisionNamespaceLister interface { + // List lists all ControllerRevisions in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1.ControllerRevision, err error) + // Get retrieves the ControllerRevision from the indexer for a given namespace and name. + Get(name string) (*v1.ControllerRevision, error) + ControllerRevisionNamespaceListerExpansion +} + +// controllerRevisionNamespaceLister implements the ControllerRevisionNamespaceLister +// interface. +type controllerRevisionNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all ControllerRevisions in the indexer for a given namespace. +func (s controllerRevisionNamespaceLister) List(selector labels.Selector) (ret []*v1.ControllerRevision, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.ControllerRevision)) + }) + return ret, err +} + +// Get retrieves the ControllerRevision from the indexer for a given namespace and name. +func (s controllerRevisionNamespaceLister) Get(name string) (*v1.ControllerRevision, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("controllerrevision"), name) + } + return obj.(*v1.ControllerRevision), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/deployment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/deployment.go new file mode 100644 index 000000000..36af90094 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/deployment.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 v1 + +import ( + v1 "k8s.io/api/apps/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// DeploymentLister helps list Deployments. +type DeploymentLister interface { + // List lists all Deployments in the indexer. + List(selector labels.Selector) (ret []*v1.Deployment, err error) + // Deployments returns an object that can list and get Deployments. + Deployments(namespace string) DeploymentNamespaceLister + DeploymentListerExpansion +} + +// deploymentLister implements the DeploymentLister interface. +type deploymentLister struct { + indexer cache.Indexer +} + +// NewDeploymentLister returns a new DeploymentLister. +func NewDeploymentLister(indexer cache.Indexer) DeploymentLister { + return &deploymentLister{indexer: indexer} +} + +// List lists all Deployments in the indexer. +func (s *deploymentLister) List(selector labels.Selector) (ret []*v1.Deployment, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.Deployment)) + }) + return ret, err +} + +// Deployments returns an object that can list and get Deployments. +func (s *deploymentLister) Deployments(namespace string) DeploymentNamespaceLister { + return deploymentNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// DeploymentNamespaceLister helps list and get Deployments. +type DeploymentNamespaceLister interface { + // List lists all Deployments in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1.Deployment, err error) + // Get retrieves the Deployment from the indexer for a given namespace and name. + Get(name string) (*v1.Deployment, error) + DeploymentNamespaceListerExpansion +} + +// deploymentNamespaceLister implements the DeploymentNamespaceLister +// interface. +type deploymentNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all Deployments in the indexer for a given namespace. +func (s deploymentNamespaceLister) List(selector labels.Selector) (ret []*v1.Deployment, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.Deployment)) + }) + return ret, err +} + +// Get retrieves the Deployment from the indexer for a given namespace and name. +func (s deploymentNamespaceLister) Get(name string) (*v1.Deployment, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("deployment"), name) + } + return obj.(*v1.Deployment), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/expansion_generated.go index 148f763de..1f17ab48b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/expansion_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/expansion_generated.go @@ -18,6 +18,14 @@ limitations under the License. package v1 +// ControllerRevisionListerExpansion allows custom methods to be added to +// ControllerRevisionLister. +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{} @@ -25,3 +33,27 @@ 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/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/replicaset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/replicaset.go new file mode 100644 index 000000000..7e316d6b4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/replicaset.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 v1 + +import ( + v1 "k8s.io/api/apps/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// ReplicaSetLister helps list ReplicaSets. +type ReplicaSetLister interface { + // List lists all ReplicaSets in the indexer. + List(selector labels.Selector) (ret []*v1.ReplicaSet, err error) + // ReplicaSets returns an object that can list and get ReplicaSets. + ReplicaSets(namespace string) ReplicaSetNamespaceLister + ReplicaSetListerExpansion +} + +// replicaSetLister implements the ReplicaSetLister interface. +type replicaSetLister struct { + indexer cache.Indexer +} + +// NewReplicaSetLister returns a new ReplicaSetLister. +func NewReplicaSetLister(indexer cache.Indexer) ReplicaSetLister { + return &replicaSetLister{indexer: indexer} +} + +// List lists all ReplicaSets in the indexer. +func (s *replicaSetLister) List(selector labels.Selector) (ret []*v1.ReplicaSet, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.ReplicaSet)) + }) + return ret, err +} + +// ReplicaSets returns an object that can list and get ReplicaSets. +func (s *replicaSetLister) ReplicaSets(namespace string) ReplicaSetNamespaceLister { + return replicaSetNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// ReplicaSetNamespaceLister helps list and get ReplicaSets. +type ReplicaSetNamespaceLister interface { + // List lists all ReplicaSets in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1.ReplicaSet, err error) + // Get retrieves the ReplicaSet from the indexer for a given namespace and name. + Get(name string) (*v1.ReplicaSet, error) + ReplicaSetNamespaceListerExpansion +} + +// replicaSetNamespaceLister implements the ReplicaSetNamespaceLister +// interface. +type replicaSetNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all ReplicaSets in the indexer for a given namespace. +func (s replicaSetNamespaceLister) List(selector labels.Selector) (ret []*v1.ReplicaSet, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.ReplicaSet)) + }) + return ret, err +} + +// Get retrieves the ReplicaSet from the indexer for a given namespace and name. +func (s replicaSetNamespaceLister) Get(name string) (*v1.ReplicaSet, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("replicaset"), name) + } + return obj.(*v1.ReplicaSet), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/statefulset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/statefulset.go new file mode 100644 index 000000000..fe584038e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/apps/v1/statefulset.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 v1 + +import ( + v1 "k8s.io/api/apps/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// StatefulSetLister helps list StatefulSets. +type StatefulSetLister interface { + // List lists all StatefulSets in the indexer. + List(selector labels.Selector) (ret []*v1.StatefulSet, err error) + // StatefulSets returns an object that can list and get StatefulSets. + StatefulSets(namespace string) StatefulSetNamespaceLister + StatefulSetListerExpansion +} + +// statefulSetLister implements the StatefulSetLister interface. +type statefulSetLister struct { + indexer cache.Indexer +} + +// NewStatefulSetLister returns a new StatefulSetLister. +func NewStatefulSetLister(indexer cache.Indexer) StatefulSetLister { + return &statefulSetLister{indexer: indexer} +} + +// List lists all StatefulSets in the indexer. +func (s *statefulSetLister) List(selector labels.Selector) (ret []*v1.StatefulSet, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.StatefulSet)) + }) + return ret, err +} + +// StatefulSets returns an object that can list and get StatefulSets. +func (s *statefulSetLister) StatefulSets(namespace string) StatefulSetNamespaceLister { + return statefulSetNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// StatefulSetNamespaceLister helps list and get StatefulSets. +type StatefulSetNamespaceLister interface { + // List lists all StatefulSets in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1.StatefulSet, err error) + // Get retrieves the StatefulSet from the indexer for a given namespace and name. + Get(name string) (*v1.StatefulSet, error) + StatefulSetNamespaceListerExpansion +} + +// statefulSetNamespaceLister implements the StatefulSetNamespaceLister +// interface. +type statefulSetNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all StatefulSets in the indexer for a given namespace. +func (s statefulSetNamespaceLister) List(selector labels.Selector) (ret []*v1.StatefulSet, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.StatefulSet)) + }) + return ret, err +} + +// Get retrieves the StatefulSet from the indexer for a given namespace and name. +func (s statefulSetNamespaceLister) Get(name string) (*v1.StatefulSet, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("statefulset"), name) + } + return obj.(*v1.StatefulSet), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD index 09e46ffea..18c90f1d3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/authentication/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/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1/tokenreview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1/tokenreview.go index deea23293..cfae0476f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1/tokenreview.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1/tokenreview.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/authentication/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *tokenReviewLister) List(selector labels.Selector) (ret []*v1.TokenRevie // Get retrieves the TokenReview from the index for a given name. func (s *tokenReviewLister) Get(name string) (*v1.TokenReview, error) { - key := &v1.TokenReview{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD index 7838effea..45a7b02eb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/authentication/v1beta1: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/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go index ec62c1f2e..035ad62da 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/authentication/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *tokenReviewLister) List(selector labels.Selector) (ret []*v1beta1.Token // Get retrieves the TokenReview from the index for a given name. func (s *tokenReviewLister) Get(name string) (*v1beta1.TokenReview, error) { - key := &v1beta1.TokenReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD index e9f892806..dbea6dcc2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/authorization/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/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go index 108a37b49..64ff1744b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/authorization/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *selfSubjectAccessReviewLister) List(selector labels.Selector) (ret []*v // Get retrieves the SelfSubjectAccessReview from the index for a given name. func (s *selfSubjectAccessReviewLister) Get(name string) (*v1.SelfSubjectAccessReview, error) { - key := &v1.SelfSubjectAccessReview{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go index b654974b4..63ad0f1ff 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/authorization/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *selfSubjectRulesReviewLister) List(selector labels.Selector) (ret []*v1 // Get retrieves the SelfSubjectRulesReview from the index for a given name. func (s *selfSubjectRulesReviewLister) Get(name string) (*v1.SelfSubjectRulesReview, error) { - key := &v1.SelfSubjectRulesReview{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go index 8a701e526..f389e07b1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/authorization/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *subjectAccessReviewLister) List(selector labels.Selector) (ret []*v1.Su // Get retrieves the SubjectAccessReview from the index for a given name. func (s *subjectAccessReviewLister) Get(name string) (*v1.SubjectAccessReview, error) { - key := &v1.SubjectAccessReview{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD index 63d0b70b9..665642706 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/authorization/v1beta1: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/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go index 1f2a42113..4936b9b6c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/authorization/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *selfSubjectAccessReviewLister) List(selector labels.Selector) (ret []*v // Get retrieves the SelfSubjectAccessReview from the index for a given name. func (s *selfSubjectAccessReviewLister) Get(name string) (*v1beta1.SelfSubjectAccessReview, error) { - key := &v1beta1.SelfSubjectAccessReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go index 8c775961a..8eb7a21b5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/authorization/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *selfSubjectRulesReviewLister) List(selector labels.Selector) (ret []*v1 // Get retrieves the SelfSubjectRulesReview from the index for a given name. func (s *selfSubjectRulesReviewLister) Get(name string) (*v1beta1.SelfSubjectRulesReview, error) { - key := &v1beta1.SelfSubjectRulesReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go index f994f3a1b..4b155de15 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/authorization/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *subjectAccessReviewLister) List(selector labels.Selector) (ret []*v1bet // Get retrieves the SubjectAccessReview from the index for a given name. func (s *subjectAccessReviewLister) Get(name string) (*v1beta1.SubjectAccessReview, error) { - key := &v1beta1.SubjectAccessReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD index 2e40008b6..b7ca4270c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/certificates/v1beta1: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/kubernetes/staging/src/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go index 62af289b2..425dc6b4d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/certificates/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *certificateSigningRequestLister) List(selector labels.Selector) (ret [] // Get retrieves the CertificateSigningRequest from the index for a given name. func (s *certificateSigningRequestLister) Get(name string) (*v1beta1.CertificateSigningRequest, error) { - key := &v1beta1.CertificateSigningRequest{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/BUILD index adc506198..313cdc299 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/BUILD @@ -33,7 +33,6 @@ go_library( deps = [ "//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/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/componentstatus.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/componentstatus.go index a612a544c..6ba67d0bd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/componentstatus.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/componentstatus.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *componentStatusLister) List(selector labels.Selector) (ret []*v1.Compon // Get retrieves the ComponentStatus from the index for a given name. func (s *componentStatusLister) Get(name string) (*v1.ComponentStatus, error) { - key := &v1.ComponentStatus{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/namespace.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/namespace.go index 9b184f71c..21be6878a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/namespace.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/namespace.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *namespaceLister) List(selector labels.Selector) (ret []*v1.Namespace, e // Get retrieves the Namespace from the index for a given name. func (s *namespaceLister) Get(name string) (*v1.Namespace, error) { - key := &v1.Namespace{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/node.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/node.go index 24a01fbdd..d43a682c9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/node.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/node.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *nodeLister) List(selector labels.Selector) (ret []*v1.Node, err error) // Get retrieves the Node from the index for a given name. func (s *nodeLister) Get(name string) (*v1.Node, error) { - key := &v1.Node{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/persistentvolume.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/persistentvolume.go index ea2f79dd7..593ba14ed 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/persistentvolume.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/core/v1/persistentvolume.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *persistentVolumeLister) List(selector labels.Selector) (ret []*v1.Persi // Get retrieves the PersistentVolume from the index for a given name. func (s *persistentVolumeLister) Get(name string) (*v1.PersistentVolume, error) { - key := &v1.PersistentVolume{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD index 8da6c6db1..9bab4a64f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD @@ -19,7 +19,6 @@ go_library( "replicaset.go", "replicaset_expansion.go", "scale.go", - "thirdpartyresource.go", ], importpath = "k8s.io/client-go/listers/extensions/v1beta1", deps = [ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/expansion_generated.go index b3c29269b..060c7a35a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/expansion_generated.go @@ -37,7 +37,3 @@ type ScaleListerExpansion interface{} // ScaleNamespaceListerExpansion allows custom methods to be added to // ScaleNamespaceLister. type ScaleNamespaceListerExpansion interface{} - -// ThirdPartyResourceListerExpansion allows custom methods to be added to -// ThirdPartyResourceLister. -type ThirdPartyResourceListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go index da47dbb52..3189ff7c9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *podSecurityPolicyLister) List(selector labels.Selector) (ret []*v1beta1 // Get retrieves the PodSecurityPolicy from the index for a given name. func (s *podSecurityPolicyLister) Get(name string) (*v1beta1.PodSecurityPolicy, error) { - key := &v1beta1.PodSecurityPolicy{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/thirdpartyresource.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/thirdpartyresource.go deleted file mode 100644 index 3cd699a86..000000000 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/extensions/v1beta1/thirdpartyresource.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -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/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ThirdPartyResourceLister helps list ThirdPartyResources. -type ThirdPartyResourceLister interface { - // List lists all ThirdPartyResources in the indexer. - List(selector labels.Selector) (ret []*v1beta1.ThirdPartyResource, err error) - // Get retrieves the ThirdPartyResource from the index for a given name. - Get(name string) (*v1beta1.ThirdPartyResource, error) - ThirdPartyResourceListerExpansion -} - -// thirdPartyResourceLister implements the ThirdPartyResourceLister interface. -type thirdPartyResourceLister struct { - indexer cache.Indexer -} - -// NewThirdPartyResourceLister returns a new ThirdPartyResourceLister. -func NewThirdPartyResourceLister(indexer cache.Indexer) ThirdPartyResourceLister { - return &thirdPartyResourceLister{indexer: indexer} -} - -// List lists all ThirdPartyResources in the indexer. -func (s *thirdPartyResourceLister) List(selector labels.Selector) (ret []*v1beta1.ThirdPartyResource, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1beta1.ThirdPartyResource)) - }) - return ret, err -} - -// Get retrieves the ThirdPartyResource from the index for a given name. -func (s *thirdPartyResourceLister) Get(name string) (*v1beta1.ThirdPartyResource, error) { - key := &v1beta1.ThirdPartyResource{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1beta1.Resource("thirdpartyresource"), name) - } - return obj.(*v1beta1.ThirdPartyResource), nil -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD index bef22aaf1..da825e6a5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/imagepolicy/v1alpha1: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/kubernetes/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go index ee8c19f12..8ffd9d05f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/imagepolicy/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *imageReviewLister) List(selector labels.Selector) (ret []*v1alpha1.Imag // Get retrieves the ImageReview from the index for a given name. func (s *imageReviewLister) Get(name string) (*v1alpha1.ImageReview, error) { - key := &v1alpha1.ImageReview{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD index a046b68ee..9facdc04d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/rbac/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/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrole.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrole.go index f95d063be..5dc9a225e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrole.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrole.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleLister) List(selector labels.Selector) (ret []*v1.ClusterRol // Get retrieves the ClusterRole from the index for a given name. func (s *clusterRoleLister) Get(name string) (*v1.ClusterRole, error) { - key := &v1.ClusterRole{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go index cce8a0f48..bb3186a06 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*v1.Clu // Get retrieves the ClusterRoleBinding from the index for a given name. func (s *clusterRoleBindingLister) Get(name string) (*v1.ClusterRoleBinding, error) { - key := &v1.ClusterRoleBinding{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD index 3501bfbb4..917c535fc 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/rbac/v1alpha1: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/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go index 21adfb351..9e20a6d16 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/rbac/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleLister) List(selector labels.Selector) (ret []*v1alpha1.Clus // Get retrieves the ClusterRole from the index for a given name. func (s *clusterRoleLister) Get(name string) (*v1alpha1.ClusterRole, error) { - key := &v1alpha1.ClusterRole{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go index 5c1b93a77..155666aba 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/rbac/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*v1alph // Get retrieves the ClusterRoleBinding from the index for a given name. func (s *clusterRoleBindingLister) Get(name string) (*v1alpha1.ClusterRoleBinding, error) { - key := &v1alpha1.ClusterRoleBinding{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD index babebd826..bde3d52e8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//vendor/k8s.io/api/rbac/v1beta1: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/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go index 4e759c494..65ec3eb97 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/rbac/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleLister) List(selector labels.Selector) (ret []*v1beta1.Clust // Get retrieves the ClusterRole from the index for a given name. func (s *clusterRoleLister) Get(name string) (*v1beta1.ClusterRole, error) { - key := &v1beta1.ClusterRole{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go index 6781ac60e..146f2d7f2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/rbac/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*v1beta // Get retrieves the ClusterRoleBinding from the index for a given name. func (s *clusterRoleBindingLister) Get(name string) (*v1beta1.ClusterRoleBinding, error) { - key := &v1beta1.ClusterRoleBinding{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD index c076382da..cf60e8132 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/scheduling/v1alpha1: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/kubernetes/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go index 67b6864e7..9ed04fd2a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go @@ -21,7 +21,6 @@ package v1alpha1 import ( v1alpha1 "k8s.io/api/scheduling/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *priorityClassLister) List(selector labels.Selector) (ret []*v1alpha1.Pr // Get retrieves the PriorityClass from the index for a given name. func (s *priorityClassLister) Get(name string) (*v1alpha1.PriorityClass, error) { - key := &v1alpha1.PriorityClass{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1/BUILD index ed6bb7981..b90f06bb7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/storage/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/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1/storageclass.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1/storageclass.go index 09e659438..7c37321fd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1/storageclass.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1/storageclass.go @@ -21,7 +21,6 @@ package v1 import ( v1 "k8s.io/api/storage/v1" "k8s.io/apimachinery/pkg/api/errors" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *storageClassLister) List(selector labels.Selector) (ret []*v1.StorageCl // Get retrieves the StorageClass from the index for a given name. func (s *storageClassLister) Get(name string) (*v1.StorageClass, error) { - key := &v1.StorageClass{ObjectMeta: meta_v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/BUILD new file mode 100644 index 000000000..50592d670 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "expansion_generated.go", + "volumeattachment.go", + ], + importpath = "k8s.io/client-go/listers/storage/v1alpha1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/storage/v1alpha1: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/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/expansion_generated.go new file mode 100644 index 000000000..63abe94ab --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/expansion_generated.go @@ -0,0 +1,23 @@ +/* +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 v1alpha1 + +// VolumeAttachmentListerExpansion allows custom methods to be added to +// VolumeAttachmentLister. +type VolumeAttachmentListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/volumeattachment.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/volumeattachment.go new file mode 100644 index 000000000..02004629a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1alpha1/volumeattachment.go @@ -0,0 +1,65 @@ +/* +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 v1alpha1 + +import ( + v1alpha1 "k8s.io/api/storage/v1alpha1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// VolumeAttachmentLister helps list VolumeAttachments. +type VolumeAttachmentLister interface { + // List lists all VolumeAttachments in the indexer. + List(selector labels.Selector) (ret []*v1alpha1.VolumeAttachment, err error) + // Get retrieves the VolumeAttachment from the index for a given name. + Get(name string) (*v1alpha1.VolumeAttachment, error) + VolumeAttachmentListerExpansion +} + +// volumeAttachmentLister implements the VolumeAttachmentLister interface. +type volumeAttachmentLister struct { + indexer cache.Indexer +} + +// NewVolumeAttachmentLister returns a new VolumeAttachmentLister. +func NewVolumeAttachmentLister(indexer cache.Indexer) VolumeAttachmentLister { + return &volumeAttachmentLister{indexer: indexer} +} + +// List lists all VolumeAttachments in the indexer. +func (s *volumeAttachmentLister) List(selector labels.Selector) (ret []*v1alpha1.VolumeAttachment, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.VolumeAttachment)) + }) + return ret, err +} + +// Get retrieves the VolumeAttachment from the index for a given name. +func (s *volumeAttachmentLister) Get(name string) (*v1alpha1.VolumeAttachment, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1alpha1.Resource("volumeattachment"), name) + } + return obj.(*v1alpha1.VolumeAttachment), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD index fbae43859..d4b82cbc8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//vendor/k8s.io/api/storage/v1beta1: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/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1beta1/storageclass.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1beta1/storageclass.go index 04efe5f8d..9253319be 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1beta1/storageclass.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/listers/storage/v1beta1/storageclass.go @@ -21,7 +21,6 @@ package v1beta1 import ( v1beta1 "k8s.io/api/storage/v1beta1" "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" ) @@ -55,8 +54,7 @@ func (s *storageClassLister) List(selector labels.Selector) (ret []*v1beta1.Stor // Get retrieves the StorageClass from the index for a given name. func (s *storageClassLister) Get(name string) (*v1beta1.StorageClass, error) { - key := &v1beta1.StorageClass{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/version/base.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/version/base.go index c377705fe..7ab0ed3a7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/version/base.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/pkg/version/base.go @@ -51,9 +51,13 @@ var ( // semantic version is a git hash, but the version itself is no // longer the direct output of "git describe", but a slight // translation to be semver compliant. + + // NOTE: The $Format strings are replaced during 'git archive' thanks to the + // companion .gitattributes file containing 'export-subst' in this same + // directory. See also https://git-scm.com/docs/gitattributes gitVersion string = "v0.0.0-master+$Format:%h$" - gitCommit string = "$Format:%H$" // sha1 from git, output of $(git rev-parse HEAD) - gitTreeState string = "not a git tree" // state of git tree, either "clean" or "dirty" + gitCommit string = "$Format:%H$" // sha1 from git, output of $(git rev-parse HEAD) + gitTreeState string = "" // state of git tree, either "clean" or "dirty" buildDate string = "1970-01-01T00:00:00Z" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ') ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/BUILD index 9b96e73be..44958631d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/BUILD @@ -19,6 +19,7 @@ go_test( importpath = "k8s.io/client-go/rest", library = ":go_default_library", deps = [ + "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -64,7 +65,6 @@ go_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/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config.go index 57848c8a7..038fee945 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config.go @@ -420,5 +420,45 @@ func AnonymousClientConfig(config *Config) *Config { QPS: config.QPS, Burst: config.Burst, Timeout: config.Timeout, + Dial: config.Dial, + } +} + +// CopyConfig returns a copy of the given config +func CopyConfig(config *Config) *Config { + return &Config{ + Host: config.Host, + APIPath: config.APIPath, + Prefix: config.Prefix, + ContentConfig: config.ContentConfig, + Username: config.Username, + Password: config.Password, + BearerToken: config.BearerToken, + CacheDir: config.CacheDir, + Impersonate: ImpersonationConfig{ + Groups: config.Impersonate.Groups, + Extra: config.Impersonate.Extra, + UserName: config.Impersonate.UserName, + }, + AuthProvider: config.AuthProvider, + AuthConfigPersister: config.AuthConfigPersister, + TLSClientConfig: TLSClientConfig{ + Insecure: config.TLSClientConfig.Insecure, + ServerName: config.TLSClientConfig.ServerName, + CertFile: config.TLSClientConfig.CertFile, + KeyFile: config.TLSClientConfig.KeyFile, + CAFile: config.TLSClientConfig.CAFile, + CertData: config.TLSClientConfig.CertData, + KeyData: config.TLSClientConfig.KeyData, + CAData: config.TLSClientConfig.CAData, + }, + UserAgent: config.UserAgent, + Transport: config.Transport, + WrapTransport: config.WrapTransport, + QPS: config.QPS, + Burst: config.Burst, + RateLimiter: config.RateLimiter, + Timeout: config.Timeout, + Dial: config.Dial, } } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config_test.go index ff851e6ad..0e86442db 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config_test.go @@ -35,6 +35,8 @@ import ( clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/util/flowcontrol" + "errors" + "github.com/stretchr/testify/assert" ) @@ -206,6 +208,19 @@ func (n *fakeNegotiatedSerializer) DecoderToVersion(serializer runtime.Decoder, return &fakeCodec{} } +var fakeDialFunc = func(network, addr string) (net.Conn, error) { + return nil, fakeDialerError +} +var fakeDialerError = errors.New("fakedialer") + +type fakeAuthProviderConfigPersister struct{} + +func (fakeAuthProviderConfigPersister) Persist(map[string]string) error { + return fakeAuthProviderConfigPersisterError +} + +var fakeAuthProviderConfigPersisterError = errors.New("fakeAuthProviderConfigPersisterError") + func TestAnonymousConfig(t *testing.T) { f := fuzz.New().NilChance(0.0).NumElements(1, 1) f.Funcs( @@ -268,9 +283,94 @@ func TestAnonymousConfig(t *testing.T) { actual.WrapTransport = nil expected.WrapTransport = nil } + if actual.Dial != nil { + _, actualError := actual.Dial("", "") + _, expectedError := actual.Dial("", "") + if !reflect.DeepEqual(expectedError, actualError) { + t.Fatalf("CopyConfig dropped the Dial field") + } + } else { + actual.Dial = nil + expected.Dial = nil + } if !reflect.DeepEqual(*actual, expected) { t.Fatalf("AnonymousClientConfig dropped unexpected fields, identify whether they are security related or not: %s", diff.ObjectGoPrintDiff(expected, actual)) } } } + +func TestCopyConfig(t *testing.T) { + f := fuzz.New().NilChance(0.0).NumElements(1, 1) + f.Funcs( + func(r *runtime.Codec, f fuzz.Continue) { + codec := &fakeCodec{} + f.Fuzz(codec) + *r = codec + }, + func(r *http.RoundTripper, f fuzz.Continue) { + roundTripper := &fakeRoundTripper{} + f.Fuzz(roundTripper) + *r = roundTripper + }, + func(fn *func(http.RoundTripper) http.RoundTripper, f fuzz.Continue) { + *fn = fakeWrapperFunc + }, + func(r *runtime.NegotiatedSerializer, f fuzz.Continue) { + serializer := &fakeNegotiatedSerializer{} + f.Fuzz(serializer) + *r = serializer + }, + func(r *flowcontrol.RateLimiter, f fuzz.Continue) { + limiter := &fakeLimiter{} + f.Fuzz(limiter) + *r = limiter + }, + func(r *AuthProviderConfigPersister, f fuzz.Continue) { + *r = fakeAuthProviderConfigPersister{} + }, + func(r *func(network, addr string) (net.Conn, error), f fuzz.Continue) { + *r = fakeDialFunc + }, + ) + for i := 0; i < 20; i++ { + original := &Config{} + f.Fuzz(original) + actual := CopyConfig(original) + expected := *original + + // this is the list of known risky fields, add to this list if a new field + // is added to Config, update CopyConfig to preserve the field otherwise. + + // The DeepEqual cannot handle the func comparison, so we just verify if the + // function return the expected object. + if actual.WrapTransport == nil || !reflect.DeepEqual(expected.WrapTransport(nil), &fakeRoundTripper{}) { + t.Fatalf("CopyConfig dropped the WrapTransport field") + } else { + actual.WrapTransport = nil + expected.WrapTransport = nil + } + if actual.Dial != nil { + _, actualError := actual.Dial("", "") + _, expectedError := actual.Dial("", "") + if !reflect.DeepEqual(expectedError, actualError) { + t.Fatalf("CopyConfig dropped the Dial field") + } + } + actual.Dial = nil + expected.Dial = nil + if actual.AuthConfigPersister != nil { + actualError := actual.AuthConfigPersister.Persist(nil) + expectedError := actual.AuthConfigPersister.Persist(nil) + if !reflect.DeepEqual(expectedError, actualError) { + t.Fatalf("CopyConfig dropped the Dial field") + } + } + actual.AuthConfigPersister = nil + expected.AuthConfigPersister = nil + + if !reflect.DeepEqual(*actual, expected) { + t.Fatalf("CopyConfig dropped unexpected fields, identify whether they are security related or not: %s", diff.ObjectReflectDiff(expected, *actual)) + } + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/fake/BUILD index 524701f1e..e511b207a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/fake/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/fake/BUILD @@ -10,7 +10,6 @@ go_library( srcs = ["fake.go"], importpath = "k8s.io/client-go/rest/fake", deps = [ - "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/fake/fake.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/fake/fake.go index 2e1bc55a9..db2c01c71 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/fake/fake.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/fake/fake.go @@ -22,7 +22,6 @@ import ( "net/http" "net/url" - "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" @@ -46,8 +45,7 @@ func (f roundTripperFunc) RoundTrip(req *http.Request) (*http.Response, error) { type RESTClient struct { Client *http.Client NegotiatedSerializer runtime.NegotiatedSerializer - GroupName string - APIRegistry *registered.APIRegistrationManager + GroupVersion schema.GroupVersion VersionedAPIPath string Req *http.Request @@ -80,7 +78,7 @@ func (c *RESTClient) Verb(verb string) *restclient.Request { } func (c *RESTClient) APIVersion() schema.GroupVersion { - return c.APIRegistry.GroupOrDie("").GroupVersion + return c.GroupVersion } func (c *RESTClient) GetRateLimiter() flowcontrol.RateLimiter { @@ -89,22 +87,20 @@ func (c *RESTClient) GetRateLimiter() flowcontrol.RateLimiter { func (c *RESTClient) request(verb string) *restclient.Request { config := restclient.ContentConfig{ - ContentType: runtime.ContentTypeJSON, - // TODO this was hardcoded before, but it doesn't look right - GroupVersion: &c.APIRegistry.GroupOrDie("").GroupVersion, + ContentType: runtime.ContentTypeJSON, + GroupVersion: &c.GroupVersion, NegotiatedSerializer: c.NegotiatedSerializer, } ns := c.NegotiatedSerializer info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON) internalVersion := schema.GroupVersion{ - Group: c.APIRegistry.GroupOrDie(c.GroupName).GroupVersion.Group, + Group: c.GroupVersion.Group, Version: runtime.APIVersionInternal, } - internalVersion.Version = runtime.APIVersionInternal serializers := restclient.Serializers{ // TODO this was hardcoded before, but it doesn't look right - Encoder: ns.EncoderForVersion(info.Serializer, c.APIRegistry.GroupOrDie("").GroupVersion), + Encoder: ns.EncoderForVersion(info.Serializer, c.GroupVersion), Decoder: ns.DecoderToVersion(info.Serializer, internalVersion), } if info.StreamSerializer != nil { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/request.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/request.go index 97ec03e0f..80fddce6d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/request.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/request.go @@ -827,6 +827,8 @@ func (r *Request) transformResponse(resp *http.Response, req *http.Request) Resu func truncateBody(body string) string { max := 0 switch { + case bool(glog.V(10)): + return body case bool(glog.V(9)): max = 10240 case bool(glog.V(8)): diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/request_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/request_test.go index 0691fc726..f575350e3 100755 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/request_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/request_test.go @@ -20,6 +20,7 @@ import ( "bytes" "context" "errors" + "flag" "fmt" "io" "io/ioutil" @@ -34,6 +35,8 @@ import ( "testing" "time" + "github.com/golang/glog" + "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -1696,6 +1699,74 @@ func TestDoContext(t *testing.T) { } } +func buildString(length int) string { + s := make([]byte, length) + for i := range s { + s[i] = 'a' + } + return string(s) +} + +func TestTruncateBody(t *testing.T) { + tests := []struct { + body string + want string + level string + }{ + // Anything below 8 is completely truncated + { + body: "Completely truncated below 8", + want: " [truncated 28 chars]", + level: "0", + }, + // Small strings are not truncated by high levels + { + body: "Small body never gets truncated", + want: "Small body never gets truncated", + level: "10", + }, + { + body: "Small body never gets truncated", + want: "Small body never gets truncated", + level: "8", + }, + // Strings are truncated to 1024 if level is less than 9. + { + body: buildString(2000), + level: "8", + want: fmt.Sprintf("%s [truncated 976 chars]", buildString(1024)), + }, + // Strings are truncated to 10240 if level is 9. + { + body: buildString(20000), + level: "9", + want: fmt.Sprintf("%s [truncated 9760 chars]", buildString(10240)), + }, + // Strings are not truncated if level is 10 or higher + { + body: buildString(20000), + level: "10", + want: buildString(20000), + }, + // Strings are not truncated if level is 10 or higher + { + body: buildString(20000), + level: "11", + want: buildString(20000), + }, + } + + l := flag.Lookup("v").Value.(flag.Getter).Get().(glog.Level) + for _, test := range tests { + flag.Set("v", test.level) + got := truncateBody(test.body) + if got != test.want { + t.Errorf("truncateBody(%v) = %v, want %v", test.body, got, test.want) + } + } + flag.Set("v", l.String()) +} + func defaultResourcePathWithPrefix(prefix, resource, namespace, name string) string { var path string path = "/api/" + v1.SchemeGroupVersion.Version diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/url_utils.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/url_utils.go index 14f94650a..a56d1838d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/url_utils.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/url_utils.go @@ -56,6 +56,14 @@ func DefaultServerURL(host, apiPath string, groupVersion schema.GroupVersion, de // hostURL.Path should be blank. // // versionedAPIPath, a path relative to baseURL.Path, points to a versioned API base + versionedAPIPath := DefaultVersionedAPIPath(apiPath, groupVersion) + + return hostURL, versionedAPIPath, nil +} + +// DefaultVersionedAPIPathFor constructs the default path for the given group version, assuming the given +// API path, following the standard conventions of the Kubernetes API. +func DefaultVersionedAPIPath(apiPath string, groupVersion schema.GroupVersion) string { versionedAPIPath := path.Join("/", apiPath) // Add the version to the end of the path @@ -64,10 +72,9 @@ func DefaultServerURL(host, apiPath string, groupVersion schema.GroupVersion, de } else { versionedAPIPath = path.Join(versionedAPIPath, groupVersion.Version) - } - return hostURL, versionedAPIPath, nil + return versionedAPIPath } // defaultServerUrlFor is shared between IsConfigTransportTLS and RESTClientFor. It diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/zz_generated.deepcopy.go index 1632e1efe..59050fc49 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/zz_generated.deepcopy.go @@ -20,23 +20,6 @@ limitations under the License. package rest -import ( - conversion "k8s.io/apimachinery/pkg/conversion" - reflect "reflect" -) - -// GetGeneratedDeepCopyFuncs returns the generated funcs, since we aren't registering them. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func GetGeneratedDeepCopyFuncs() []conversion.GeneratedDeepCopyFunc { - return []conversion.GeneratedDeepCopyFunc{ - {Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TLSClientConfig).DeepCopyInto(out.(*TLSClientConfig)) - return nil - }, InType: reflect.TypeOf(&TLSClientConfig{})}, - } -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TLSClientConfig) DeepCopyInto(out *TLSClientConfig) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/BUILD new file mode 100644 index 000000000..4fb0a949e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/BUILD @@ -0,0 +1,77 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "doc.go", + "interfaces.go", + "util.go", + ], + importpath = "k8s.io/client-go/scale", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/dynamic:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme/appsint:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme/appsv1beta1:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme/appsv1beta2:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme/autoscalingv1:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme/extensionsint:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = [ + "client_test.go", + "roundtrip_test.go", + ], + importpath = "k8s.io/client-go/scale", + library = ":go_default_library", + deps = [ + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/k8s.io/api/apps/v1beta1:go_default_library", + "//vendor/k8s.io/api/apps/v1beta2:go_default_library", + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip: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", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/discovery/fake:go_default_library", + "//vendor/k8s.io/client-go/dynamic:go_default_library", + "//vendor/k8s.io/client-go/rest/fake:go_default_library", + "//vendor/k8s.io/client-go/testing: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/scale/fake:all-srcs", + "//staging/src/k8s.io/client-go/scale/scheme:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/client.go new file mode 100644 index 000000000..3f85197a0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/client.go @@ -0,0 +1,197 @@ +/* +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 scale + +import ( + "fmt" + + autoscaling "k8s.io/api/autoscaling/v1" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/dynamic" + restclient "k8s.io/client-go/rest" +) + +var scaleConverter = NewScaleConverter() +var codecs = serializer.NewCodecFactory(scaleConverter.Scheme()) + +// restInterfaceProvider turns a restclient.Config into a restclient.Interface. +// It's overridable for the purposes of testing. +type restInterfaceProvider func(*restclient.Config) (restclient.Interface, error) + +// scaleClient is an implementation of ScalesGetter +// which makes use of a RESTMapper and a generic REST +// client to support an discoverable resource. +// It behaves somewhat similarly to the dynamic ClientPool, +// but is more specifically scoped to Scale. +type scaleClient struct { + mapper meta.RESTMapper + + apiPathResolverFunc dynamic.APIPathResolverFunc + scaleKindResolver ScaleKindResolver + clientBase restclient.Interface +} + +// NewForConfig creates a new ScalesGetter which resolves kinds +// to resources using the given RESTMapper, and API paths using +// the given dynamic.APIPathResolverFunc. +func NewForConfig(cfg *restclient.Config, mapper meta.RESTMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) (ScalesGetter, error) { + // so that the RESTClientFor doesn't complain + cfg.GroupVersion = &schema.GroupVersion{} + + cfg.NegotiatedSerializer = serializer.DirectCodecFactory{ + CodecFactory: codecs, + } + if len(cfg.UserAgent) == 0 { + cfg.UserAgent = restclient.DefaultKubernetesUserAgent() + } + + client, err := restclient.RESTClientFor(cfg) + if err != nil { + return nil, err + } + + return New(client, mapper, resolver, scaleKindResolver), nil +} + +// New creates a new ScalesGetter using the given client to make requests. +// The GroupVersion on the client is ignored. +func New(baseClient restclient.Interface, mapper meta.RESTMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) ScalesGetter { + return &scaleClient{ + mapper: mapper, + + apiPathResolverFunc: resolver, + scaleKindResolver: scaleKindResolver, + clientBase: baseClient, + } +} + +// pathAndVersionFor returns the appropriate base path and the associated full GroupVersionResource +// for the given GroupResource +func (c *scaleClient) pathAndVersionFor(resource schema.GroupResource) (string, schema.GroupVersionResource, error) { + gvr, err := c.mapper.ResourceFor(resource.WithVersion("")) + if err != nil { + return "", gvr, fmt.Errorf("unable to get full preferred group-version-resource for %s: %v", resource.String(), err) + } + + groupVer := gvr.GroupVersion() + + // we need to set the API path based on GroupVersion (defaulting to the legacy path if none is set) + // TODO: we "cheat" here since the API path really only depends on group ATM, but this should + // *probably* take GroupVersionResource and not GroupVersionKind. + apiPath := c.apiPathResolverFunc(groupVer.WithKind("")) + if apiPath == "" { + apiPath = "/api" + } + + path := restclient.DefaultVersionedAPIPath(apiPath, groupVer) + + return path, gvr, nil +} + +// namespacedScaleClient is an ScaleInterface for fetching +// Scales in a given namespace. +type namespacedScaleClient struct { + client *scaleClient + namespace string +} + +func (c *scaleClient) Scales(namespace string) ScaleInterface { + return &namespacedScaleClient{ + client: c, + namespace: namespace, + } +} + +func (c *namespacedScaleClient) Get(resource schema.GroupResource, name string) (*autoscaling.Scale, error) { + // Currently, a /scale endpoint can return different scale types. + // Until we have support for the alternative API representations proposal, + // we need to deal with accepting different API versions. + // In practice, this is autoscaling/v1.Scale and extensions/v1beta1.Scale + + path, gvr, err := c.client.pathAndVersionFor(resource) + if err != nil { + return nil, fmt.Errorf("unable to get client for %s: %v", resource.String(), err) + } + + rawObj, err := c.client.clientBase.Get(). + AbsPath(path). + Namespace(c.namespace). + Resource(gvr.Resource). + Name(name). + SubResource("scale"). + Do(). + Get() + + if err != nil { + return nil, err + } + + // convert whatever this is to autoscaling/v1.Scale + scaleObj, err := scaleConverter.ConvertToVersion(rawObj, autoscaling.SchemeGroupVersion) + if err != nil { + return nil, fmt.Errorf("received an object from a /scale endpoint which was not convertible to autoscaling Scale: %v", err) + } + + return scaleObj.(*autoscaling.Scale), nil +} + +func (c *namespacedScaleClient) Update(resource schema.GroupResource, scale *autoscaling.Scale) (*autoscaling.Scale, error) { + path, gvr, err := c.client.pathAndVersionFor(resource) + if err != nil { + return nil, fmt.Errorf("unable to get client for %s: %v", resource.String(), err) + } + + // Currently, a /scale endpoint can receive and return different scale types. + // Until we hvae support for the alternative API representations proposal, + // we need to deal with sending and accepting differnet API versions. + + // figure out what scale we actually need here + desiredGVK, err := c.client.scaleKindResolver.ScaleForResource(gvr) + if err != nil { + return nil, fmt.Errorf("could not find proper group-version for scale subresource of %s: %v", gvr.String(), err) + } + + // convert this to whatever this endpoint wants + scaleUpdate, err := scaleConverter.ConvertToVersion(scale, desiredGVK.GroupVersion()) + if err != nil { + return nil, fmt.Errorf("could not convert scale update to internal Scale: %v", err) + } + + rawObj, err := c.client.clientBase.Put(). + AbsPath(path). + Namespace(c.namespace). + Resource(gvr.Resource). + Name(scale.Name). + SubResource("scale"). + Body(scaleUpdate). + Do(). + Get() + + if err != nil { + return nil, fmt.Errorf("could not fetch the scale for %s %s: %v", resource.String(), scale.Name, err) + } + + // convert whatever this is back to autoscaling/v1.Scale + scaleObj, err := scaleConverter.ConvertToVersion(rawObj, autoscaling.SchemeGroupVersion) + if err != nil { + return nil, fmt.Errorf("received an object from a /scale endpoint which was not convertible to autoscaling Scale: %v", err) + } + + return scaleObj.(*autoscaling.Scale), err +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/client_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/client_test.go new file mode 100644 index 000000000..f4f2af3d6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/client_test.go @@ -0,0 +1,283 @@ +/* +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 scale + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net/http" + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/discovery" + fakedisco "k8s.io/client-go/discovery/fake" + "k8s.io/client-go/dynamic" + fakerest "k8s.io/client-go/rest/fake" + + "github.com/stretchr/testify/assert" + appsv1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta2 "k8s.io/api/apps/v1beta2" + autoscalingv1 "k8s.io/api/autoscaling/v1" + corev1 "k8s.io/api/core/v1" + extv1beta1 "k8s.io/api/extensions/v1beta1" + apimeta "k8s.io/apimachinery/pkg/api/meta" + coretesting "k8s.io/client-go/testing" +) + +func bytesBody(bodyBytes []byte) io.ReadCloser { + return ioutil.NopCloser(bytes.NewReader(bodyBytes)) +} + +func defaultHeaders() http.Header { + header := http.Header{} + header.Set("Content-Type", runtime.ContentTypeJSON) + return header +} + +func fakeScaleClient(t *testing.T) (ScalesGetter, []schema.GroupResource) { + fakeDiscoveryClient := &fakedisco.FakeDiscovery{Fake: &coretesting.Fake{}} + fakeDiscoveryClient.Resources = []*metav1.APIResourceList{ + { + GroupVersion: corev1.SchemeGroupVersion.String(), + APIResources: []metav1.APIResource{ + {Name: "pods", Namespaced: true, Kind: "Pod"}, + {Name: "replicationcontrollers", Namespaced: true, Kind: "ReplicationController"}, + {Name: "replicationcontrollers/scale", Namespaced: true, Kind: "Scale", Group: "autoscaling", Version: "v1"}, + }, + }, + { + GroupVersion: extv1beta1.SchemeGroupVersion.String(), + APIResources: []metav1.APIResource{ + {Name: "replicasets", Namespaced: true, Kind: "ReplicaSet"}, + {Name: "replicasets/scale", Namespaced: true, Kind: "Scale"}, + }, + }, + { + GroupVersion: appsv1beta2.SchemeGroupVersion.String(), + APIResources: []metav1.APIResource{ + {Name: "deployments", Namespaced: true, Kind: "Deployment"}, + {Name: "deployments/scale", Namespaced: true, Kind: "Scale", Group: "apps", Version: "v1beta2"}, + }, + }, + { + GroupVersion: appsv1beta1.SchemeGroupVersion.String(), + APIResources: []metav1.APIResource{ + {Name: "statefulsets", Namespaced: true, Kind: "StatefulSet"}, + {Name: "statefulsets/scale", Namespaced: true, Kind: "Scale", Group: "apps", Version: "v1beta1"}, + }, + }, + // test a resource that doesn't exist anywere to make sure we're not accidentally depending + // on a static RESTMapper anywhere. + { + GroupVersion: "cheese.testing.k8s.io/v27alpha15", + APIResources: []metav1.APIResource{ + {Name: "cheddars", Namespaced: true, Kind: "Cheddar"}, + {Name: "cheddars/scale", Namespaced: true, Kind: "Scale", Group: "extensions", Version: "v1beta1"}, + }, + }, + } + + restMapperRes, err := discovery.GetAPIGroupResources(fakeDiscoveryClient) + if err != nil { + t.Fatalf("unexpected error while constructing resource list from fake discovery client: %v") + } + restMapper := discovery.NewRESTMapper(restMapperRes, apimeta.InterfacesForUnstructured) + + autoscalingScale := &autoscalingv1.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: autoscalingv1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: autoscalingv1.ScaleSpec{Replicas: 10}, + Status: autoscalingv1.ScaleStatus{ + Replicas: 10, + Selector: "foo=bar", + }, + } + extScale := &extv1beta1.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: extv1beta1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: extv1beta1.ScaleSpec{Replicas: 10}, + Status: extv1beta1.ScaleStatus{ + Replicas: 10, + TargetSelector: "foo=bar", + }, + } + appsV1beta2Scale := &appsv1beta2.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: appsv1beta2.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: appsv1beta2.ScaleSpec{Replicas: 10}, + Status: appsv1beta2.ScaleStatus{ + Replicas: 10, + TargetSelector: "foo=bar", + }, + } + appsV1beta1Scale := &appsv1beta1.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: appsv1beta1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: appsv1beta1.ScaleSpec{Replicas: 10}, + Status: appsv1beta1.ScaleStatus{ + Replicas: 10, + TargetSelector: "foo=bar", + }, + } + + resourcePaths := map[string]runtime.Object{ + "/api/v1/namespaces/default/replicationcontrollers/foo/scale": autoscalingScale, + "/apis/extensions/v1beta1/namespaces/default/replicasets/foo/scale": extScale, + "/apis/apps/v1beta1/namespaces/default/statefulsets/foo/scale": appsV1beta1Scale, + "/apis/apps/v1beta2/namespaces/default/deployments/foo/scale": appsV1beta2Scale, + "/apis/cheese.testing.k8s.io/v27alpha15/namespaces/default/cheddars/foo/scale": extScale, + } + + fakeReqHandler := func(req *http.Request) (*http.Response, error) { + scale, isScalePath := resourcePaths[req.URL.Path] + if !isScalePath { + return nil, fmt.Errorf("unexpected request for URL %q with method %q", req.URL.String(), req.Method) + } + + switch req.Method { + case "GET": + res, err := json.Marshal(scale) + if err != nil { + return nil, err + } + return &http.Response{StatusCode: 200, Header: defaultHeaders(), Body: bytesBody(res)}, nil + case "PUT": + decoder := codecs.UniversalDeserializer() + body, err := ioutil.ReadAll(req.Body) + if err != nil { + return nil, err + } + newScale, newScaleGVK, err := decoder.Decode(body, nil, nil) + if err != nil { + return nil, fmt.Errorf("unexpected request body: %v", err) + } + if *newScaleGVK != scale.GetObjectKind().GroupVersionKind() { + return nil, fmt.Errorf("unexpected scale API version %s (expected %s)", newScaleGVK.String(), scale.GetObjectKind().GroupVersionKind().String()) + } + res, err := json.Marshal(newScale) + if err != nil { + return nil, err + } + return &http.Response{StatusCode: 200, Header: defaultHeaders(), Body: bytesBody(res)}, nil + default: + return nil, fmt.Errorf("unexpected request for URL %q with method %q", req.URL.String(), req.Method) + } + } + + fakeClient := &fakerest.RESTClient{ + Client: fakerest.CreateHTTPClient(fakeReqHandler), + NegotiatedSerializer: serializer.DirectCodecFactory{ + CodecFactory: codecs, + }, + GroupVersion: schema.GroupVersion{}, + VersionedAPIPath: "/not/a/real/path", + } + + resolver := NewDiscoveryScaleKindResolver(fakeDiscoveryClient) + client := New(fakeClient, restMapper, dynamic.LegacyAPIPathResolverFunc, resolver) + + groupResources := []schema.GroupResource{ + {Group: corev1.GroupName, Resource: "replicationcontroller"}, + {Group: extv1beta1.GroupName, Resource: "replicaset"}, + {Group: appsv1beta2.GroupName, Resource: "deployment"}, + {Group: "cheese.testing.k8s.io", Resource: "cheddar"}, + } + + return client, groupResources +} + +func TestGetScale(t *testing.T) { + scaleClient, groupResources := fakeScaleClient(t) + expectedScale := &autoscalingv1.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: autoscalingv1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: autoscalingv1.ScaleSpec{Replicas: 10}, + Status: autoscalingv1.ScaleStatus{ + Replicas: 10, + Selector: "foo=bar", + }, + } + + for _, groupResource := range groupResources { + scale, err := scaleClient.Scales("default").Get(groupResource, "foo") + if !assert.NoError(t, err, "should have been able to fetch a scale for %s", groupResource.String()) { + continue + } + assert.NotNil(t, scale, "should have returned a non-nil scale for %s", groupResource.String()) + + assert.Equal(t, expectedScale, scale, "should have returned the expected scale for %s", groupResource.String()) + } +} + +func TestUpdateScale(t *testing.T) { + scaleClient, groupResources := fakeScaleClient(t) + expectedScale := &autoscalingv1.Scale{ + TypeMeta: metav1.TypeMeta{ + Kind: "Scale", + APIVersion: autoscalingv1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: autoscalingv1.ScaleSpec{Replicas: 10}, + Status: autoscalingv1.ScaleStatus{ + Replicas: 10, + Selector: "foo=bar", + }, + } + + for _, groupResource := range groupResources { + scale, err := scaleClient.Scales("default").Update(groupResource, expectedScale) + if !assert.NoError(t, err, "should have been able to fetch a scale for %s", groupResource.String()) { + continue + } + assert.NotNil(t, scale, "should have returned a non-nil scale for %s", groupResource.String()) + + assert.Equal(t, expectedScale, scale, "should have returned the expected scale for %s", groupResource.String()) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/doc.go new file mode 100644 index 000000000..59fd39146 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/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. +*/ + +// Package scale provides a polymorphic scale client capable of fetching +// and updating Scale for any resource which implements the `scale` subresource, +// as long as that subresource operates on a version of scale convertable to +// autoscaling.Scale. +package scale diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/fake/BUILD new file mode 100644 index 000000000..8c9374305 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/fake/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["client.go"], + importpath = "k8s.io/client-go/scale/fake", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale:go_default_library", + "//vendor/k8s.io/client-go/testing: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/kubernetes/staging/src/k8s.io/client-go/scale/fake/client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/fake/client.go new file mode 100644 index 000000000..1736680f1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/fake/client.go @@ -0,0 +1,67 @@ +/* +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 fake provides a fake client interface to arbitrary Kubernetes +// APIs that exposes common high level operations and exposes common +// metadata. +package fake + +import ( + autoscalingapi "k8s.io/api/autoscaling/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/scale" + "k8s.io/client-go/testing" +) + +// FakeScaleClient provides a fake implementation of scale.ScalesGetter. +type FakeScaleClient struct { + testing.Fake +} + +func (f *FakeScaleClient) Scales(namespace string) scale.ScaleInterface { + return &fakeNamespacedScaleClient{ + namespace: namespace, + fake: &f.Fake, + } +} + +type fakeNamespacedScaleClient struct { + namespace string + fake *testing.Fake +} + +func (f *fakeNamespacedScaleClient) Get(resource schema.GroupResource, name string) (*autoscalingapi.Scale, error) { + obj, err := f.fake. + Invokes(testing.NewGetSubresourceAction(resource.WithVersion(""), f.namespace, "scale", name), &autoscalingapi.Scale{}) + + if err != nil { + return nil, err + } + + return obj.(*autoscalingapi.Scale), err +} + +func (f *fakeNamespacedScaleClient) Update(resource schema.GroupResource, scale *autoscalingapi.Scale) (*autoscalingapi.Scale, error) { + obj, err := f.fake. + Invokes(testing.NewUpdateSubresourceAction(resource.WithVersion(""), f.namespace, "scale", scale), &autoscalingapi.Scale{}) + + if err != nil { + return nil, err + } + + return obj.(*autoscalingapi.Scale), err + +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/interfaces.go new file mode 100644 index 000000000..4668c7417 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/interfaces.go @@ -0,0 +1,39 @@ +/* +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 scale + +import ( + autoscalingapi "k8s.io/api/autoscaling/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// ScalesGetter can produce a ScaleInterface +// for a particular namespace. +type ScalesGetter interface { + Scales(namespace string) ScaleInterface +} + +// ScaleInterface can fetch and update scales for +// resources in a particular namespace which implement +// the scale subresource. +type ScaleInterface interface { + // Get fetches the scale of the given scalable resource. + Get(resource schema.GroupResource, name string) (*autoscalingapi.Scale, error) + + // Update updates the scale of the the given scalable resource. + Update(resource schema.GroupResource, scale *autoscalingapi.Scale) (*autoscalingapi.Scale, error) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/roundtrip_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/roundtrip_test.go new file mode 100644 index 000000000..2ea288757 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/roundtrip_test.go @@ -0,0 +1,34 @@ +/* +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 scale + +import ( + "testing" + + "k8s.io/apimachinery/pkg/api/testing/roundtrip" +) + +// NB: this can't be in the scheme package, because importing' +// scheme/autoscalingv1 from scheme causes a depedency loop from +// conversions + +func TestRoundTrip(t *testing.T) { + scheme := NewScaleConverter().Scheme() + // we don't actually need any custom fuzzer funcs ATM -- the defaults + // will do just fine + roundtrip.RoundTripTestForScheme(t, scheme, nil) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/BUILD new file mode 100644 index 000000000..74bd976a1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "register.go", + "types.go", + "zz_generated.deepcopy.go", + ], + importpath = "k8s.io/client-go/scale/scheme", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/autoscaling/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", + "//staging/src/k8s.io/client-go/scale/scheme/appsint:all-srcs", + "//staging/src/k8s.io/client-go/scale/scheme/appsv1beta1:all-srcs", + "//staging/src/k8s.io/client-go/scale/scheme/appsv1beta2:all-srcs", + "//staging/src/k8s.io/client-go/scale/scheme/autoscalingv1:all-srcs", + "//staging/src/k8s.io/client-go/scale/scheme/extensionsint:all-srcs", + "//staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/BUILD new file mode 100644 index 000000000..2fef63f0e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "register.go", + ], + importpath = "k8s.io/client-go/scale/scheme/appsint", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/apps/v1beta2:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme: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/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/doc.go new file mode 100644 index 000000000..5b1d6841c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/doc.go @@ -0,0 +1,22 @@ +/* +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 appsint contains the necessary scaffolding of the +// internal version of extensions as required by conversion logic. +// It doesn't have any of its own types -- it's just necessary to +// get the expected behavoir out of runtime.Scheme.ConvertToVersion +// and associated methods. +package appsint diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/register.go new file mode 100644 index 000000000..bbeaedac5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsint/register.go @@ -0,0 +1,53 @@ +/* +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 appsint + +import ( + appsv1beta2 "k8s.io/api/apps/v1beta2" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + scalescheme "k8s.io/client-go/scale/scheme" +) + +// GroupName is the group name use in this package +const GroupName = appsv1beta2.GroupName + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &scalescheme.Scale{}, + ) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/BUILD new file mode 100644 index 000000000..05530e300 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "conversion.go", + "doc.go", + "register.go", + "zz_generated.conversion.go", + ], + importpath = "k8s.io/client-go/scale/scheme/appsv1beta1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/apps/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme: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/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/conversion.go new file mode 100644 index 000000000..af062b3c6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/conversion.go @@ -0,0 +1,87 @@ +/* +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 appsv1beta1 + +import ( + "fmt" + + v1beta1 "k8s.io/api/apps/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +// addConversions registers conversions between the internal version +// of Scale and supported external versions of Scale. +func addConversionFuncs(scheme *runtime.Scheme) error { + err := scheme.AddConversionFuncs( + Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus, + Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus, + ) + if err != nil { + return err + } + + return nil +} +func Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(in *scheme.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.Selector = nil + out.TargetSelector = "" + if in.Selector != nil { + if in.Selector.MatchExpressions == nil || len(in.Selector.MatchExpressions) == 0 { + out.Selector = in.Selector.MatchLabels + } + + selector, err := metav1.LabelSelectorAsSelector(in.Selector) + if err != nil { + return fmt.Errorf("invalid label selector: %v", err) + } + out.TargetSelector = selector.String() + } + + return nil +} + +func Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(in *v1beta1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + + // Normally when 2 fields map to the same internal value we favor the old field, since + // old clients can't be expected to know about new fields but clients that know about the + // new field can be expected to know about the old field (though that's not quite true, due + // to kubectl apply). However, these fields are readonly, so any non-nil value should work. + if in.TargetSelector != "" { + labelSelector, err := metav1.ParseToLabelSelector(in.TargetSelector) + if err != nil { + out.Selector = nil + return fmt.Errorf("failed to parse target selector: %v", err) + } + out.Selector = labelSelector + } else if in.Selector != nil { + out.Selector = new(metav1.LabelSelector) + selector := make(map[string]string) + for key, val := range in.Selector { + selector[key] = val + } + out.Selector.MatchLabels = selector + } else { + out.Selector = nil + } + + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/doc.go new file mode 100644 index 000000000..e229af3b8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/doc.go @@ -0,0 +1,20 @@ +/* +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:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme +// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/apps/v1beta1 + +package appsv1beta1 // import "k8s.io/client-go/scale/scheme/appsv1beta1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/register.go new file mode 100644 index 000000000..a684f2d53 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/register.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. +*/ + +package appsv1beta1 + +import ( + appsapiv1beta1 "k8s.io/api/apps/v1beta1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = appsapiv1beta1.GroupName + +// 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 ( + localSchemeBuilder = &appsapiv1beta1.SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addConversionFuncs) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go new file mode 100644 index 000000000..93e0e6164 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go @@ -0,0 +1,110 @@ +// +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 conversion-gen. Do not edit it manually! + +package appsv1beta1 + +import ( + v1beta1 "k8s.io/api/apps/v1beta1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1beta1_Scale_To_scheme_Scale, + Convert_scheme_Scale_To_v1beta1_Scale, + Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec, + Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec, + Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus, + Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus, + ) +} + +func autoConvert_v1beta1_Scale_To_scheme_Scale(in *v1beta1.Scale, out *scheme.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_Scale_To_scheme_Scale is an autogenerated conversion function. +func Convert_v1beta1_Scale_To_scheme_Scale(in *v1beta1.Scale, out *scheme.Scale, s conversion.Scope) error { + return autoConvert_v1beta1_Scale_To_scheme_Scale(in, out, s) +} + +func autoConvert_scheme_Scale_To_v1beta1_Scale(in *scheme.Scale, out *v1beta1.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_scheme_Scale_To_v1beta1_Scale is an autogenerated conversion function. +func Convert_scheme_Scale_To_v1beta1_Scale(in *scheme.Scale, out *v1beta1.Scale, s conversion.Scope) error { + return autoConvert_scheme_Scale_To_v1beta1_Scale(in, out, s) +} + +func autoConvert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(in *v1beta1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec is an autogenerated conversion function. +func Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(in *v1beta1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(in, out, s) +} + +func autoConvert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(in *scheme.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec is an autogenerated conversion function. +func Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(in *scheme.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + return autoConvert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(in, out, s) +} + +func autoConvert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(in *v1beta1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + // WARNING: in.TargetSelector requires manual conversion: does not exist in peer-type + return nil +} + +func autoConvert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(in *scheme.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs map[string]string) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/BUILD new file mode 100644 index 000000000..7e52bc060 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "conversion.go", + "doc.go", + "register.go", + "zz_generated.conversion.go", + ], + importpath = "k8s.io/client-go/scale/scheme/appsv1beta2", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/apps/v1beta2:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme: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/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/conversion.go new file mode 100644 index 000000000..f07de6bda --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/conversion.go @@ -0,0 +1,87 @@ +/* +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 appsv1beta2 + +import ( + "fmt" + + v1beta2 "k8s.io/api/apps/v1beta2" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +// addConversions registers conversions between the internal version +// of Scale and supported external versions of Scale. +func addConversionFuncs(scheme *runtime.Scheme) error { + err := scheme.AddConversionFuncs( + Convert_scheme_ScaleStatus_To_v1beta2_ScaleStatus, + Convert_v1beta2_ScaleStatus_To_scheme_ScaleStatus, + ) + if err != nil { + return err + } + + return nil +} +func Convert_scheme_ScaleStatus_To_v1beta2_ScaleStatus(in *scheme.ScaleStatus, out *v1beta2.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.Selector = nil + out.TargetSelector = "" + if in.Selector != nil { + if in.Selector.MatchExpressions == nil || len(in.Selector.MatchExpressions) == 0 { + out.Selector = in.Selector.MatchLabels + } + + selector, err := metav1.LabelSelectorAsSelector(in.Selector) + if err != nil { + return fmt.Errorf("invalid label selector: %v", err) + } + out.TargetSelector = selector.String() + } + + return nil +} + +func Convert_v1beta2_ScaleStatus_To_scheme_ScaleStatus(in *v1beta2.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + + // Normally when 2 fields map to the same internal value we favor the old field, since + // old clients can't be expected to know about new fields but clients that know about the + // new field can be expected to know about the old field (though that's not quite true, due + // to kubectl apply). However, these fields are readonly, so any non-nil value should work. + if in.TargetSelector != "" { + labelSelector, err := metav1.ParseToLabelSelector(in.TargetSelector) + if err != nil { + out.Selector = nil + return fmt.Errorf("failed to parse target selector: %v", err) + } + out.Selector = labelSelector + } else if in.Selector != nil { + out.Selector = new(metav1.LabelSelector) + selector := make(map[string]string) + for key, val := range in.Selector { + selector[key] = val + } + out.Selector.MatchLabels = selector + } else { + out.Selector = nil + } + + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/doc.go new file mode 100644 index 000000000..40b7a89b5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/doc.go @@ -0,0 +1,20 @@ +/* +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:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme +// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/apps/v1beta2 + +package appsv1beta2 // import "k8s.io/client-go/scale/scheme/appsv1beta2" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/register.go new file mode 100644 index 000000000..88de08932 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/register.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. +*/ + +package appsv1beta2 + +import ( + appsapiv1beta2 "k8s.io/api/apps/v1beta2" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = appsapiv1beta2.GroupName + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta2"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + localSchemeBuilder = &appsapiv1beta2.SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addConversionFuncs) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go new file mode 100644 index 000000000..410a0d90c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go @@ -0,0 +1,110 @@ +// +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 conversion-gen. Do not edit it manually! + +package appsv1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1beta2_Scale_To_scheme_Scale, + Convert_scheme_Scale_To_v1beta2_Scale, + Convert_v1beta2_ScaleSpec_To_scheme_ScaleSpec, + Convert_scheme_ScaleSpec_To_v1beta2_ScaleSpec, + Convert_v1beta2_ScaleStatus_To_scheme_ScaleStatus, + Convert_scheme_ScaleStatus_To_v1beta2_ScaleStatus, + ) +} + +func autoConvert_v1beta2_Scale_To_scheme_Scale(in *v1beta2.Scale, out *scheme.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta2_ScaleSpec_To_scheme_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta2_ScaleStatus_To_scheme_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta2_Scale_To_scheme_Scale is an autogenerated conversion function. +func Convert_v1beta2_Scale_To_scheme_Scale(in *v1beta2.Scale, out *scheme.Scale, s conversion.Scope) error { + return autoConvert_v1beta2_Scale_To_scheme_Scale(in, out, s) +} + +func autoConvert_scheme_Scale_To_v1beta2_Scale(in *scheme.Scale, out *v1beta2.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_scheme_ScaleSpec_To_v1beta2_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_scheme_ScaleStatus_To_v1beta2_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_scheme_Scale_To_v1beta2_Scale is an autogenerated conversion function. +func Convert_scheme_Scale_To_v1beta2_Scale(in *scheme.Scale, out *v1beta2.Scale, s conversion.Scope) error { + return autoConvert_scheme_Scale_To_v1beta2_Scale(in, out, s) +} + +func autoConvert_v1beta2_ScaleSpec_To_scheme_ScaleSpec(in *v1beta2.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_v1beta2_ScaleSpec_To_scheme_ScaleSpec is an autogenerated conversion function. +func Convert_v1beta2_ScaleSpec_To_scheme_ScaleSpec(in *v1beta2.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1beta2_ScaleSpec_To_scheme_ScaleSpec(in, out, s) +} + +func autoConvert_scheme_ScaleSpec_To_v1beta2_ScaleSpec(in *scheme.ScaleSpec, out *v1beta2.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_scheme_ScaleSpec_To_v1beta2_ScaleSpec is an autogenerated conversion function. +func Convert_scheme_ScaleSpec_To_v1beta2_ScaleSpec(in *scheme.ScaleSpec, out *v1beta2.ScaleSpec, s conversion.Scope) error { + return autoConvert_scheme_ScaleSpec_To_v1beta2_ScaleSpec(in, out, s) +} + +func autoConvert_v1beta2_ScaleStatus_To_scheme_ScaleStatus(in *v1beta2.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + // WARNING: in.TargetSelector requires manual conversion: does not exist in peer-type + return nil +} + +func autoConvert_scheme_ScaleStatus_To_v1beta2_ScaleStatus(in *scheme.ScaleStatus, out *v1beta2.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs map[string]string) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD new file mode 100644 index 000000000..646a6fdf8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "conversion.go", + "doc.go", + "register.go", + "zz_generated.conversion.go", + ], + importpath = "k8s.io/client-go/scale/scheme/autoscalingv1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme: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/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/conversion.go new file mode 100644 index 000000000..a775bcc22 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/conversion.go @@ -0,0 +1,69 @@ +/* +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 autoscalingv1 + +import ( + "fmt" + + v1 "k8s.io/api/autoscaling/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +// addConversions registers conversions between the internal version +// of Scale and supported external versions of Scale. +func addConversionFuncs(scheme *runtime.Scheme) error { + err := scheme.AddConversionFuncs( + Convert_scheme_ScaleStatus_To_v1_ScaleStatus, + Convert_v1_ScaleStatus_To_scheme_ScaleStatus, + ) + if err != nil { + return err + } + + return nil +} + +func Convert_scheme_ScaleStatus_To_v1_ScaleStatus(in *scheme.ScaleStatus, out *v1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.Selector = "" + if in.Selector != nil { + selector, err := metav1.LabelSelectorAsSelector(in.Selector) + if err != nil { + return fmt.Errorf("invalid label selector: %v", err) + } + out.Selector = selector.String() + } + + return nil +} + +func Convert_v1_ScaleStatus_To_scheme_ScaleStatus(in *v1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + if in.Selector != "" { + labelSelector, err := metav1.ParseToLabelSelector(in.Selector) + if err != nil { + out.Selector = nil + return fmt.Errorf("failed to parse target selector: %v", err) + } + out.Selector = labelSelector + } + + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go new file mode 100644 index 000000000..aff53e4c3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go @@ -0,0 +1,20 @@ +/* +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:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme +// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/autoscaling/v1 + +package autoscalingv1 // import "k8s.io/client-go/scale/scheme/autoscalingv1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/register.go new file mode 100644 index 000000000..b15701c4f --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/register.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. +*/ + +package autoscalingv1 + +import ( + autoscalingapiv1 "k8s.io/api/autoscaling/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = autoscalingapiv1.GroupName + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + localSchemeBuilder = &autoscalingapiv1.SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addConversionFuncs) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go new file mode 100644 index 000000000..1eaa0d180 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go @@ -0,0 +1,109 @@ +// +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 conversion-gen. Do not edit it manually! + +package autoscalingv1 + +import ( + v1 "k8s.io/api/autoscaling/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1_Scale_To_scheme_Scale, + Convert_scheme_Scale_To_v1_Scale, + Convert_v1_ScaleSpec_To_scheme_ScaleSpec, + Convert_scheme_ScaleSpec_To_v1_ScaleSpec, + Convert_v1_ScaleStatus_To_scheme_ScaleStatus, + Convert_scheme_ScaleStatus_To_v1_ScaleStatus, + ) +} + +func autoConvert_v1_Scale_To_scheme_Scale(in *v1.Scale, out *scheme.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_ScaleSpec_To_scheme_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1_ScaleStatus_To_scheme_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_Scale_To_scheme_Scale is an autogenerated conversion function. +func Convert_v1_Scale_To_scheme_Scale(in *v1.Scale, out *scheme.Scale, s conversion.Scope) error { + return autoConvert_v1_Scale_To_scheme_Scale(in, out, s) +} + +func autoConvert_scheme_Scale_To_v1_Scale(in *scheme.Scale, out *v1.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_scheme_ScaleSpec_To_v1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_scheme_ScaleStatus_To_v1_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_scheme_Scale_To_v1_Scale is an autogenerated conversion function. +func Convert_scheme_Scale_To_v1_Scale(in *scheme.Scale, out *v1.Scale, s conversion.Scope) error { + return autoConvert_scheme_Scale_To_v1_Scale(in, out, s) +} + +func autoConvert_v1_ScaleSpec_To_scheme_ScaleSpec(in *v1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_v1_ScaleSpec_To_scheme_ScaleSpec is an autogenerated conversion function. +func Convert_v1_ScaleSpec_To_scheme_ScaleSpec(in *v1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1_ScaleSpec_To_scheme_ScaleSpec(in, out, s) +} + +func autoConvert_scheme_ScaleSpec_To_v1_ScaleSpec(in *scheme.ScaleSpec, out *v1.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_scheme_ScaleSpec_To_v1_ScaleSpec is an autogenerated conversion function. +func Convert_scheme_ScaleSpec_To_v1_ScaleSpec(in *scheme.ScaleSpec, out *v1.ScaleSpec, s conversion.Scope) error { + return autoConvert_scheme_ScaleSpec_To_v1_ScaleSpec(in, out, s) +} + +func autoConvert_v1_ScaleStatus_To_scheme_ScaleStatus(in *v1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + return nil +} + +func autoConvert_scheme_ScaleStatus_To_v1_ScaleStatus(in *scheme.ScaleStatus, out *v1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs string) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/doc.go new file mode 100644 index 000000000..0203d6d5a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/doc.go @@ -0,0 +1,22 @@ +/* +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 + +// Package scheme contains a runtime.Scheme to be used for serializing +// and deserializing different versions of Scale, and for converting +// in between them. +package scheme diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/BUILD new file mode 100644 index 000000000..6174a88b1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "register.go", + ], + importpath = "k8s.io/client-go/scale/scheme/extensionsint", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme: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/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/doc.go new file mode 100644 index 000000000..cc92bf188 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/doc.go @@ -0,0 +1,22 @@ +/* +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 extensionsint contains the necessary scaffolding of the +// internal version of extensions as required by conversion logic. +// It doesn't have any of its own types -- it's just necessary to +// get the expected behavoir out of runtime.Scheme.ConvertToVersion +// and associated methods. +package extensionsint diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/register.go new file mode 100644 index 000000000..5a96ac561 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsint/register.go @@ -0,0 +1,53 @@ +/* +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 extensionsint + +import ( + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + scalescheme "k8s.io/client-go/scale/scheme" +) + +// GroupName is the group name use in this package +const GroupName = extensionsv1beta1.GroupName + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &scalescheme.Scale{}, + ) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD new file mode 100644 index 000000000..4c992c7d1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "conversion.go", + "doc.go", + "register.go", + "zz_generated.conversion.go", + ], + importpath = "k8s.io/client-go/scale/scheme/extensionsv1beta1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/scale/scheme: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/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/conversion.go new file mode 100644 index 000000000..1b6b9e610 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/conversion.go @@ -0,0 +1,87 @@ +/* +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 extensionsv1beta1 + +import ( + "fmt" + + v1beta1 "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/conversion" + "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +// addConversions registers conversions between the internal version +// of Scale and supported external versions of Scale. +func addConversionFuncs(scheme *runtime.Scheme) error { + err := scheme.AddConversionFuncs( + Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus, + Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus, + ) + if err != nil { + return err + } + + return nil +} +func Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(in *scheme.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.Selector = nil + out.TargetSelector = "" + if in.Selector != nil { + if in.Selector.MatchExpressions == nil || len(in.Selector.MatchExpressions) == 0 { + out.Selector = in.Selector.MatchLabels + } + + selector, err := metav1.LabelSelectorAsSelector(in.Selector) + if err != nil { + return fmt.Errorf("invalid label selector: %v", err) + } + out.TargetSelector = selector.String() + } + + return nil +} + +func Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(in *v1beta1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + + // Normally when 2 fields map to the same internal value we favor the old field, since + // old clients can't be expected to know about new fields but clients that know about the + // new field can be expected to know about the old field (though that's not quite true, due + // to kubectl apply). However, these fields are readonly, so any non-nil value should work. + if in.TargetSelector != "" { + labelSelector, err := metav1.ParseToLabelSelector(in.TargetSelector) + if err != nil { + out.Selector = nil + return fmt.Errorf("failed to parse target selector: %v", err) + } + out.Selector = labelSelector + } else if in.Selector != nil { + out.Selector = new(metav1.LabelSelector) + selector := make(map[string]string) + for key, val := range in.Selector { + selector[key] = val + } + out.Selector.MatchLabels = selector + } else { + out.Selector = nil + } + + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go new file mode 100644 index 000000000..40d0fc0e9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go @@ -0,0 +1,20 @@ +/* +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:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme +// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/extensions/v1beta1 + +package extensionsv1beta1 // import "k8s.io/client-go/scale/scheme/extensionsv1beta1" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/register.go new file mode 100644 index 000000000..aed1174e0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/register.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. +*/ + +package extensionsv1beta1 + +import ( + extensionsapiv1beta1 "k8s.io/api/extensions/v1beta1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = extensionsapiv1beta1.GroupName + +// 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 ( + localSchemeBuilder = &extensionsapiv1beta1.SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addConversionFuncs) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go new file mode 100644 index 000000000..848cb8d2a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go @@ -0,0 +1,110 @@ +// +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 conversion-gen. Do not edit it manually! + +package extensionsv1beta1 + +import ( + v1beta1 "k8s.io/api/extensions/v1beta1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + scheme "k8s.io/client-go/scale/scheme" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1beta1_Scale_To_scheme_Scale, + Convert_scheme_Scale_To_v1beta1_Scale, + Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec, + Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec, + Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus, + Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus, + ) +} + +func autoConvert_v1beta1_Scale_To_scheme_Scale(in *v1beta1.Scale, out *scheme.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_Scale_To_scheme_Scale is an autogenerated conversion function. +func Convert_v1beta1_Scale_To_scheme_Scale(in *v1beta1.Scale, out *scheme.Scale, s conversion.Scope) error { + return autoConvert_v1beta1_Scale_To_scheme_Scale(in, out, s) +} + +func autoConvert_scheme_Scale_To_v1beta1_Scale(in *scheme.Scale, out *v1beta1.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_scheme_Scale_To_v1beta1_Scale is an autogenerated conversion function. +func Convert_scheme_Scale_To_v1beta1_Scale(in *scheme.Scale, out *v1beta1.Scale, s conversion.Scope) error { + return autoConvert_scheme_Scale_To_v1beta1_Scale(in, out, s) +} + +func autoConvert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(in *v1beta1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec is an autogenerated conversion function. +func Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(in *v1beta1.ScaleSpec, out *scheme.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(in, out, s) +} + +func autoConvert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(in *scheme.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec is an autogenerated conversion function. +func Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(in *scheme.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + return autoConvert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(in, out, s) +} + +func autoConvert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(in *v1beta1.ScaleStatus, out *scheme.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + // WARNING: in.TargetSelector requires manual conversion: does not exist in peer-type + return nil +} + +func autoConvert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(in *scheme.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs map[string]string) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/register.go new file mode 100644 index 000000000..7e6decfff --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/register.go @@ -0,0 +1,52 @@ +/* +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 scheme + +import ( + autoscalingv1 "k8s.io/api/autoscaling/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = autoscalingv1.GroupName + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Scale{}, + ) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/types.go new file mode 100644 index 000000000..13aec2b3c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/types.go @@ -0,0 +1,60 @@ +/* +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 scheme + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// This file contains our own "internal" version of scale that we use for conversions, +// since we can't use the main Kubernetes internal versions. + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Scale represents a scaling request for a resource. +type Scale struct { + metav1.TypeMeta + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. + // +optional + metav1.ObjectMeta + + // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. + // +optional + Spec ScaleSpec + + // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only. + // +optional + Status ScaleStatus +} + +// ScaleSpec describes the attributes of a scale subresource. +type ScaleSpec struct { + // desired number of instances for the scaled object. + // +optional + Replicas int32 +} + +// ScaleStatus represents the current status of a scale subresource. +type ScaleStatus struct { + // actual number of observed instances of the scaled object. + Replicas int32 + + // label query over pods that should match the replicas count. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + // +optional + Selector *metav1.LabelSelector +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go new file mode 100644 index 000000000..19b679583 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go @@ -0,0 +1,96 @@ +// +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 scheme + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/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 *Scale) DeepCopyInto(out *Scale) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale. +func (in *Scale) DeepCopy() *Scale { + if in == nil { + return nil + } + out := new(Scale) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Scale) 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 *ScaleSpec) DeepCopyInto(out *ScaleSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec. +func (in *ScaleSpec) DeepCopy() *ScaleSpec { + if in == nil { + return nil + } + out := new(ScaleSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) { + *out = *in + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus. +func (in *ScaleStatus) DeepCopy() *ScaleStatus { + if in == nil { + return nil + } + out := new(ScaleStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/util.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/util.go new file mode 100644 index 000000000..9eb108536 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/scale/util.go @@ -0,0 +1,167 @@ +/* +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 scale + +import ( + "fmt" + "strings" + "sync" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" + scalescheme "k8s.io/client-go/scale/scheme" + scaleappsint "k8s.io/client-go/scale/scheme/appsint" + scaleappsv1beta1 "k8s.io/client-go/scale/scheme/appsv1beta1" + scaleappsv1beta2 "k8s.io/client-go/scale/scheme/appsv1beta2" + scaleautoscaling "k8s.io/client-go/scale/scheme/autoscalingv1" + scaleextint "k8s.io/client-go/scale/scheme/extensionsint" + scaleext "k8s.io/client-go/scale/scheme/extensionsv1beta1" +) + +// ScaleKindResolver knows about the relationship between +// resources and the GroupVersionKind of their scale subresources. +type ScaleKindResolver interface { + // ScaleForResource returns the GroupVersionKind of the + // scale subresource for the given GroupVersionResource. + ScaleForResource(resource schema.GroupVersionResource) (scaleVersion schema.GroupVersionKind, err error) +} + +// discoveryScaleResolver is a ScaleKindResolver that uses +// a DiscoveryInterface to associate resources with their +// scale-kinds +type discoveryScaleResolver struct { + discoveryClient discovery.ServerResourcesInterface +} + +func (r *discoveryScaleResolver) ScaleForResource(inputRes schema.GroupVersionResource) (scaleVersion schema.GroupVersionKind, err error) { + groupVerResources, err := r.discoveryClient.ServerResourcesForGroupVersion(inputRes.GroupVersion().String()) + if err != nil { + return schema.GroupVersionKind{}, fmt.Errorf("unable to fetch discovery information for %s: %v", inputRes.String(), err) + } + + for _, resource := range groupVerResources.APIResources { + resourceParts := strings.SplitN(resource.Name, "/", 2) + if len(resourceParts) != 2 || resourceParts[0] != inputRes.Resource || resourceParts[1] != "scale" { + // skip non-scale resources, or scales for resources that we're not looking for + continue + } + + scaleGV := inputRes.GroupVersion() + if resource.Group != "" && resource.Version != "" { + scaleGV = schema.GroupVersion{ + Group: resource.Group, + Version: resource.Version, + } + } + + return scaleGV.WithKind(resource.Kind), nil + } + + return schema.GroupVersionKind{}, fmt.Errorf("could not find scale subresource for %s in discovery information", inputRes.String()) +} + +// cachedScaleKindResolver is a ScaleKindResolver that caches results +// from another ScaleKindResolver, re-fetching on cache misses. +type cachedScaleKindResolver struct { + base ScaleKindResolver + + cache map[schema.GroupVersionResource]schema.GroupVersionKind + mu sync.RWMutex +} + +func (r *cachedScaleKindResolver) ScaleForResource(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) { + r.mu.RLock() + gvk, isCached := r.cache[resource] + r.mu.RUnlock() + if isCached { + return gvk, nil + } + + // we could have multiple fetches of the same resources, but that's probably + // better than limiting to only one reader at once (mu.Mutex), + // or blocking checks for other resources while we fetch + // (mu.Lock before fetch). + gvk, err := r.base.ScaleForResource(resource) + if err != nil { + return schema.GroupVersionKind{}, err + } + + r.mu.Lock() + defer r.mu.Unlock() + r.cache[resource] = gvk + + return gvk, nil +} + +// NewDiscoveryScaleKindResolver creates a new ScaleKindResolver which uses information from the given +// disovery client to resolve the correct Scale GroupVersionKind for different resources. +func NewDiscoveryScaleKindResolver(client discovery.ServerResourcesInterface) ScaleKindResolver { + base := &discoveryScaleResolver{ + discoveryClient: client, + } + + return &cachedScaleKindResolver{ + base: base, + cache: make(map[schema.GroupVersionResource]schema.GroupVersionKind), + } +} + +// ScaleConverter knows how to convert between external scale versions. +type ScaleConverter struct { + scheme *runtime.Scheme + internalVersioner runtime.GroupVersioner +} + +// NewScaleConverter creates a new ScaleConverter for converting between +// Scales in autoscaling/v1 and extensions/v1beta1. +func NewScaleConverter() *ScaleConverter { + scheme := runtime.NewScheme() + scaleautoscaling.AddToScheme(scheme) + scalescheme.AddToScheme(scheme) + scaleext.AddToScheme(scheme) + scaleextint.AddToScheme(scheme) + scaleappsint.AddToScheme(scheme) + scaleappsv1beta1.AddToScheme(scheme) + scaleappsv1beta2.AddToScheme(scheme) + + return &ScaleConverter{ + scheme: scheme, + internalVersioner: runtime.NewMultiGroupVersioner( + scalescheme.SchemeGroupVersion, + schema.GroupKind{Group: scaleext.GroupName, Kind: "Scale"}, + schema.GroupKind{Group: scaleautoscaling.GroupName, Kind: "Scale"}, + schema.GroupKind{Group: scaleappsv1beta1.GroupName, Kind: "Scale"}, + schema.GroupKind{Group: scaleappsv1beta2.GroupName, Kind: "Scale"}, + ), + } +} + +// Scheme returns the scheme used by this scale converter. +func (c *ScaleConverter) Scheme() *runtime.Scheme { + return c.scheme +} + +// ConvertToVersion converts the given *external* input object to the given output *external* output group-version. +func (c *ScaleConverter) ConvertToVersion(in runtime.Object, outVersion schema.GroupVersion) (runtime.Object, error) { + scaleInt, err := c.scheme.ConvertToVersion(in, c.internalVersioner) + if err != nil { + return nil, err + } + + return c.scheme.ConvertToVersion(scaleInt, outVersion) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/fifo.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/fifo.go index 3f6e2a948..ef70b7aca 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/fifo.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/fifo.go @@ -169,7 +169,7 @@ func (f *FIFO) AddIfNotPresent(obj interface{}) error { return nil } -// addIfNotPresent assumes the fifo lock is already held and adds the the provided +// addIfNotPresent assumes the fifo lock is already held and adds the provided // item to the queue under id if it does not already exist. func (f *FIFO) addIfNotPresent(id string, obj interface{}) { f.populated = true diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/listwatch.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/listwatch.go index 454d50aad..db2329c55 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/listwatch.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/listwatch.go @@ -25,6 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/pager" @@ -103,6 +104,8 @@ func (lw *ListWatch) Watch(options metav1.ListOptions) (watch.Interface, error) return lw.WatchFunc(options) } +// ListWatchUntil checks the provided conditions against the items returned by the list watcher, returning wait.ErrWaitTimeout +// if timeout is exceeded without all conditions returning true, or an error if an error occurs. // TODO: check for watch expired error and retry watch from latest point? Same issue exists for Until. func ListWatchUntil(timeout time.Duration, lw ListerWatcher, conditions ...watch.ConditionFunc) (*watch.Event, error) { if len(conditions) == 0 { @@ -166,5 +169,10 @@ func ListWatchUntil(timeout time.Duration, lw ListerWatcher, conditions ...watch return nil, err } - return watch.Until(timeout, watchInterface, remainingConditions...) + evt, err := watch.Until(timeout, watchInterface, remainingConditions...) + if err == watch.ErrWatchClosed { + // present a consistent error interface to callers + err = wait.ErrWaitTimeout + } + return evt, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/reflector.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/reflector.go index 4967f98d4..a97b5f98a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/reflector.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/cache/reflector.go @@ -109,7 +109,7 @@ func NewNamedReflector(name string, lw ListerWatcher, expectedType interface{}, r := &Reflector{ name: name, // we need this to be unique per process (some names are still the same)but obvious who it belongs to - metrics: newReflectorMetrics(makeValidPromethusMetricName(fmt.Sprintf("reflector_"+name+"_%d", reflectorSuffix))), + metrics: newReflectorMetrics(makeValidPromethusMetricLabel(fmt.Sprintf("reflector_"+name+"_%d", reflectorSuffix))), listerWatcher: lw, store: store, expectedType: reflect.TypeOf(expectedType), @@ -120,9 +120,9 @@ func NewNamedReflector(name string, lw ListerWatcher, expectedType interface{}, return r } -func makeValidPromethusMetricName(in string) string { +func makeValidPromethusMetricLabel(in string) string { // this isn't perfect, but it removes our common characters - return strings.NewReplacer("/", "_", ".", "_", "-", "_").Replace(in) + return strings.NewReplacer("/", "_", ".", "_", "-", "_", ":", "_").Replace(in) } // internalPackages are packages that ignored when creating a default reflector name. These packages are in the common @@ -295,6 +295,13 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { }() for { + // give the stopCh a chance to stop the loop, even in case of continue statements further down on errors + select { + case <-stopCh: + return nil + default: + } + timemoutseconds := int64(minWatchTimeout.Seconds() * (rand.Float64() + 1.0)) options = metav1.ListOptions{ ResourceVersion: resourceVersion, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD index ea77ceabd..d46f4e28f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD @@ -28,7 +28,6 @@ go_library( ], importpath = "k8s.io/client-go/tools/clientcmd/api", deps = [ - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/doc.go index 93a891e95..0a081871a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/doc.go @@ -14,5 +14,5 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package api diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/doc.go index c8ede58a3..9750cf73a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/doc.go @@ -14,5 +14,5 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package package v1 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go index b123a9fbe..8d634671b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go @@ -21,64 +21,9 @@ limitations under the License. package v1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AuthInfo).DeepCopyInto(out.(*AuthInfo)) - return nil - }, InType: reflect.TypeOf(&AuthInfo{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AuthProviderConfig).DeepCopyInto(out.(*AuthProviderConfig)) - return nil - }, InType: reflect.TypeOf(&AuthProviderConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Cluster).DeepCopyInto(out.(*Cluster)) - return nil - }, InType: reflect.TypeOf(&Cluster{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Config).DeepCopyInto(out.(*Config)) - return nil - }, InType: reflect.TypeOf(&Config{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Context).DeepCopyInto(out.(*Context)) - return nil - }, InType: reflect.TypeOf(&Context{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamedAuthInfo).DeepCopyInto(out.(*NamedAuthInfo)) - return nil - }, InType: reflect.TypeOf(&NamedAuthInfo{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamedCluster).DeepCopyInto(out.(*NamedCluster)) - return nil - }, InType: reflect.TypeOf(&NamedCluster{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamedContext).DeepCopyInto(out.(*NamedContext)) - return nil - }, InType: reflect.TypeOf(&NamedContext{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NamedExtension).DeepCopyInto(out.(*NamedExtension)) - return nil - }, InType: reflect.TypeOf(&NamedExtension{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Preferences).DeepCopyInto(out.(*Preferences)) - return nil - }, InType: reflect.TypeOf(&Preferences{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AuthInfo) DeepCopyInto(out *AuthInfo) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go index b787f0ddf..51668f05b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go @@ -21,48 +21,9 @@ limitations under the License. package api import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AuthInfo).DeepCopyInto(out.(*AuthInfo)) - return nil - }, InType: reflect.TypeOf(&AuthInfo{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*AuthProviderConfig).DeepCopyInto(out.(*AuthProviderConfig)) - return nil - }, InType: reflect.TypeOf(&AuthProviderConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Cluster).DeepCopyInto(out.(*Cluster)) - return nil - }, InType: reflect.TypeOf(&Cluster{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Config).DeepCopyInto(out.(*Config)) - return nil - }, InType: reflect.TypeOf(&Config{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Context).DeepCopyInto(out.(*Context)) - return nil - }, InType: reflect.TypeOf(&Context{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Preferences).DeepCopyInto(out.(*Preferences)) - return nil - }, InType: reflect.TypeOf(&Preferences{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AuthInfo) DeepCopyInto(out *AuthInfo) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/cert/io.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/cert/io.go index 487456b69..a41f8054a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/cert/io.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/cert/io.go @@ -66,10 +66,7 @@ func WriteCert(certPath string, data []byte) error { if err := os.MkdirAll(filepath.Dir(certPath), os.FileMode(0755)); err != nil { return err } - if err := ioutil.WriteFile(certPath, data, os.FileMode(0644)); err != nil { - return err - } - return nil + return ioutil.WriteFile(certPath, data, os.FileMode(0644)) } // WriteKey writes the pem-encoded key data to keyPath. @@ -80,10 +77,7 @@ func WriteKey(keyPath string, data []byte) error { if err := os.MkdirAll(filepath.Dir(keyPath), os.FileMode(0755)); err != nil { return err } - if err := ioutil.WriteFile(keyPath, data, os.FileMode(0600)); err != nil { - return err - } - return nil + return ioutil.WriteFile(keyPath, data, os.FileMode(0600)) } // LoadOrGenerateKeyFile looks for a key in the file at the given path. If it diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/BUILD index 87f88964c..f10a2d9e2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/BUILD @@ -19,7 +19,10 @@ go_test( tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1: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/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", @@ -37,12 +40,12 @@ go_library( deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", + "//vendor/k8s.io/client-go/util/certificate/csr:go_default_library", ], ) @@ -55,7 +58,10 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/client-go/util/certificate/csr:all-srcs", + ], tags = ["automanaged"], visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_manager.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_manager.go index 08363491b..7ea05ba79 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_manager.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_manager.go @@ -30,14 +30,18 @@ import ( "github.com/golang/glog" certificates "k8s.io/api/certificates/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/api/errors" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" "k8s.io/client-go/util/cert" + "k8s.io/client-go/util/certificate/csr" ) +// certificateWaitBackoff controls the amount and timing of retries when the +// watch for certificate approval is interrupted. +var certificateWaitBackoff = wait.Backoff{Duration: 30 * time.Second, Steps: 4, Factor: 1.5, Jitter: 0.1} + // Manager maintains and updates the certificates in use by this certificate // manager. In the background it communicates with the API server to get new // certificates for certificates about to expire. @@ -51,6 +55,12 @@ type Manager interface { // certificate manager, as well as the associated certificate and key data // in PEM format. Current() *tls.Certificate + // ServerHealthy returns true if the manager is able to communicate with + // the server. This allows a caller to determine whether the cert manager + // thinks it can potentially talk to the API server. The cert manager may + // be very conservative and only return true if recent communication has + // occurred with the server. + ServerHealthy() bool } // Config is the set of configuration parameters available for a new Manager. @@ -134,6 +144,7 @@ type manager struct { rotationDeadline time.Time forceRotation bool certificateExpiration Gauge + serverHealth bool } // NewManager returns a new certificate manager. A certificate manager is @@ -171,6 +182,14 @@ func (m *manager) Current() *tls.Certificate { return m.cert } +// ServerHealthy returns true if the cert manager believes the server +// is currently alive. +func (m *manager) ServerHealthy() bool { + m.certAccessLock.RLock() + defer m.certAccessLock.RUnlock() + return m.serverHealth +} + // SetCertificateSigningRequestClient sets the client interface that is used // for signing new certificates generated as part of rotation. It must be // called before Start() and can not be used to change the @@ -205,24 +224,23 @@ func (m *manager) Start() { // doesn't have a certificate at all yet. if m.shouldRotate() { glog.V(1).Infof("shouldRotate() is true, forcing immediate rotation") - _, err := m.rotateCerts() - if err != nil { - glog.Errorf("Could not rotate certificates: %v", err) + if _, err := m.rotateCerts(); err != nil { + utilruntime.HandleError(fmt.Errorf("Could not rotate certificates: %v", err)) } } backoff := wait.Backoff{ Duration: 2 * time.Second, Factor: 2, Jitter: 0.1, - Steps: 7, + Steps: 5, } go wait.Forever(func() { sleepInterval := m.rotationDeadline.Sub(time.Now()) glog.V(2).Infof("Waiting %v for next certificate rotation", sleepInterval) time.Sleep(sleepInterval) if err := wait.ExponentialBackoff(backoff, m.rotateCerts); err != nil { - glog.Errorf("Reached backoff limit, still unable to rotate certs: %v", err) - wait.PollInfinite(128*time.Second, m.rotateCerts) + utilruntime.HandleError(fmt.Errorf("Reached backoff limit, still unable to rotate certs: %v", err)) + wait.PollInfinite(32*time.Second, m.rotateCerts) } }, 0) } @@ -275,26 +293,58 @@ func (m *manager) shouldRotate() bool { return time.Now().After(m.rotationDeadline) } +// rotateCerts attempts to request a client cert from the server, wait a reasonable +// period of time for it to be signed, and then update the cert on disk. If it cannot +// retrieve a cert, it will return false. It will only return error in exceptional cases. +// This method also keeps track of "server health" by interpreting the responses it gets +// from the server on the various calls it makes. func (m *manager) rotateCerts() (bool, error) { glog.V(2).Infof("Rotating certificates") - csrPEM, keyPEM, err := m.generateCSR() + csrPEM, keyPEM, privateKey, err := m.generateCSR() if err != nil { - glog.Errorf("Unable to generate a certificate signing request: %v", err) + utilruntime.HandleError(fmt.Errorf("Unable to generate a certificate signing request: %v", err)) return false, nil } // Call the Certificate Signing Request API to get a certificate for the // new private key. - crtPEM, err := requestCertificate(m.certSigningRequestClient, csrPEM, m.usages) + req, err := csr.RequestCertificate(m.certSigningRequestClient, csrPEM, "", m.usages, privateKey) if err != nil { - glog.Errorf("Failed while requesting a signed certificate from the master: %v", err) + utilruntime.HandleError(fmt.Errorf("Failed while requesting a signed certificate from the master: %v", err)) + return false, m.updateServerError(err) + } + + // Wait for the certificate to be signed. Instead of one long watch, we retry with slighly longer + // intervals each time in order to tolerate failures from the server AND to preserve the liveliness + // of the cert manager loop. This creates slightly more traffic against the API server in return + // for bounding the amount of time we wait when a certificate expires. + var crtPEM []byte + watchDuration := time.Minute + if err := wait.ExponentialBackoff(certificateWaitBackoff, func() (bool, error) { + data, err := csr.WaitForCertificate(m.certSigningRequestClient, req, watchDuration) + switch { + case err == nil: + crtPEM = data + return true, nil + case err == wait.ErrWaitTimeout: + watchDuration += time.Minute + if watchDuration > 5*time.Minute { + watchDuration = 5 * time.Minute + } + return false, nil + default: + utilruntime.HandleError(fmt.Errorf("Unable to check certificate signing status: %v", err)) + return false, m.updateServerError(err) + } + }); err != nil { + utilruntime.HandleError(fmt.Errorf("Certificate request was not signed: %v", err)) return false, nil } cert, err := m.certStore.Update(crtPEM, keyPEM) if err != nil { - glog.Errorf("Unable to store the new cert/key pair: %v", err) + utilruntime.HandleError(fmt.Errorf("Unable to store the new cert/key pair: %v", err)) return false, nil } @@ -337,91 +387,54 @@ var jitteryDuration = func(totalDuration float64) time.Duration { return wait.Jitter(time.Duration(totalDuration), 0.2) - time.Duration(totalDuration*0.3) } +// updateCached sets the most recent retrieved cert. It also sets the server +// as assumed healthy. func (m *manager) updateCached(cert *tls.Certificate) { m.certAccessLock.Lock() defer m.certAccessLock.Unlock() + m.serverHealth = true m.cert = cert } -func (m *manager) generateCSR() (csrPEM []byte, keyPEM []byte, err error) { +// updateServerError takes an error returned by the server and infers +// the health of the server based on the error. It will return nil if +// the error does not require immediate termination of any wait loops, +// and otherwise it will return the error. +func (m *manager) updateServerError(err error) error { + m.certAccessLock.Lock() + defer m.certAccessLock.Unlock() + switch { + case errors.IsUnauthorized(err): + // SSL terminating proxies may report this error instead of the master + m.serverHealth = true + case errors.IsUnexpectedServerError(err): + // generally indicates a proxy or other load balancer problem, rather than a problem coming + // from the master + m.serverHealth = false + default: + // Identify known errors that could be expected for a cert request that + // indicate everything is working normally + m.serverHealth = errors.IsNotFound(err) || errors.IsForbidden(err) + } + return nil +} + +func (m *manager) generateCSR() (csrPEM []byte, keyPEM []byte, key interface{}, err error) { // Generate a new private key. privateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader) if err != nil { - return nil, nil, fmt.Errorf("unable to generate a new private key: %v", err) + return nil, nil, nil, fmt.Errorf("unable to generate a new private key: %v", err) } der, err := x509.MarshalECPrivateKey(privateKey) if err != nil { - return nil, nil, fmt.Errorf("unable to marshal the new key to DER: %v", err) + return nil, nil, nil, fmt.Errorf("unable to marshal the new key to DER: %v", err) } keyPEM = pem.EncodeToMemory(&pem.Block{Type: cert.ECPrivateKeyBlockType, Bytes: der}) csrPEM, err = cert.MakeCSRFromTemplate(privateKey, m.template) if err != nil { - return nil, nil, fmt.Errorf("unable to create a csr from the private key: %v", err) - } - return csrPEM, keyPEM, nil -} - -// requestCertificate will create a certificate signing request using the PEM -// encoded CSR and send it to API server, then it will watch the object's -// status, once approved by API server, it will return the API server's issued -// certificate (pem-encoded). If there is any errors, or the watch timeouts, it -// will return an error. -// -// NOTE This is a copy of a function with the same name in -// k8s.io/kubernetes/pkg/kubelet/util/csr/csr.go, changing only the package that -// CertificateSigningRequestInterface and KeyUsage are imported from. -func requestCertificate(client certificatesclient.CertificateSigningRequestInterface, csrData []byte, usages []certificates.KeyUsage) (certData []byte, err error) { - glog.Infof("Requesting new certificate.") - req, err := client.Create(&certificates.CertificateSigningRequest{ - // Username, UID, Groups will be injected by API server. - TypeMeta: metav1.TypeMeta{Kind: "CertificateSigningRequest"}, - ObjectMeta: metav1.ObjectMeta{GenerateName: "csr-"}, - - Spec: certificates.CertificateSigningRequestSpec{ - Request: csrData, - Usages: usages, - }, - }) - if err != nil { - return nil, fmt.Errorf("cannot create certificate signing request: %v", err) + return nil, nil, nil, fmt.Errorf("unable to create a csr from the private key: %v", err) } - - // Make a default timeout = 3600s. - var defaultTimeoutSeconds int64 = 3600 - certWatch, err := client.Watch(metav1.ListOptions{ - Watch: true, - TimeoutSeconds: &defaultTimeoutSeconds, - FieldSelector: fields.OneTermEqualSelector("metadata.name", req.Name).String(), - }) - if err != nil { - return nil, fmt.Errorf("cannot watch on the certificate signing request: %v", err) - } - defer certWatch.Stop() - ch := certWatch.ResultChan() - - for { - event, ok := <-ch - if !ok { - break - } - - if event.Type == watch.Modified || event.Type == watch.Added { - if event.Object.(*certificates.CertificateSigningRequest).UID != req.UID { - continue - } - status := event.Object.(*certificates.CertificateSigningRequest).Status - for _, c := range status.Conditions { - if c.Type == certificates.CertificateDenied { - return nil, fmt.Errorf("certificate signing request is not approved, reason: %v, message: %v", c.Reason, c.Message) - } - if c.Type == certificates.CertificateApproved && status.Certificate != nil { - return status.Certificate, nil - } - } - } - } - - return nil, fmt.Errorf("watch channel closed") + return csrPEM, keyPEM, privateKey, nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_manager_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_manager_test.go index 6a77f99bf..ab19e37b1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_manager_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_manager_test.go @@ -27,7 +27,10 @@ import ( "time" certificates "k8s.io/api/certificates/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/wait" watch "k8s.io/apimachinery/pkg/watch" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" ) @@ -288,6 +291,7 @@ func TestRotateCertWaitingForResultError(t *testing.T) { }, } + certificateWaitBackoff = wait.Backoff{Steps: 1} if success, err := m.rotateCerts(); success { t.Errorf("Got success from 'rotateCerts', wanted failure.") } else if err != nil { @@ -612,10 +616,14 @@ func TestInitializeOtherRESTClients(t *testing.T) { } else { m.setRotationDeadline() if m.shouldRotate() { - if success, err := certificateManager.(*manager).rotateCerts(); !success { - t.Errorf("Got failure from 'rotateCerts', expected success") - } else if err != nil { + success, err := certificateManager.(*manager).rotateCerts() + if err != nil { t.Errorf("Got error %v, expected none.", err) + return + } + if !success { + t.Errorf("Unexpected response 'rotateCerts': %t", success) + return } } } @@ -628,6 +636,161 @@ func TestInitializeOtherRESTClients(t *testing.T) { } } +func TestServerHealth(t *testing.T) { + type certs struct { + storeCert *certificateData + bootstrapCert *certificateData + apiCert *certificateData + expectedCertBeforeStart *certificateData + expectedCertAfterStart *certificateData + } + + updatedCerts := certs{ + storeCert: storeCertData, + bootstrapCert: bootstrapCertData, + apiCert: apiServerCertData, + expectedCertBeforeStart: storeCertData, + expectedCertAfterStart: apiServerCertData, + } + + currentCerts := certs{ + storeCert: storeCertData, + bootstrapCert: bootstrapCertData, + apiCert: apiServerCertData, + expectedCertBeforeStart: storeCertData, + expectedCertAfterStart: storeCertData, + } + + testCases := []struct { + description string + certs + + failureType fakeClientFailureType + clientErr error + + expectRotateFail bool + expectHealthy bool + }{ + { + description: "Current certificate, bootstrap certificate", + certs: updatedCerts, + expectHealthy: true, + }, + { + description: "Generic error on create", + certs: currentCerts, + + failureType: createError, + expectRotateFail: true, + }, + { + description: "Unauthorized error on create", + certs: currentCerts, + + failureType: createError, + clientErr: errors.NewUnauthorized("unauthorized"), + expectRotateFail: true, + expectHealthy: true, + }, + { + description: "Generic unauthorized error on create", + certs: currentCerts, + + failureType: createError, + clientErr: errors.NewGenericServerResponse(401, "POST", schema.GroupResource{}, "", "", 0, true), + expectRotateFail: true, + expectHealthy: true, + }, + { + description: "Generic not found error on create", + certs: currentCerts, + + failureType: createError, + clientErr: errors.NewGenericServerResponse(404, "POST", schema.GroupResource{}, "", "", 0, true), + expectRotateFail: true, + expectHealthy: false, + }, + { + description: "Not found error on create", + certs: currentCerts, + + failureType: createError, + clientErr: errors.NewGenericServerResponse(404, "POST", schema.GroupResource{}, "", "", 0, false), + expectRotateFail: true, + expectHealthy: true, + }, + { + description: "Conflict error on watch", + certs: currentCerts, + + failureType: watchError, + clientErr: errors.NewGenericServerResponse(409, "POST", schema.GroupResource{}, "", "", 0, false), + expectRotateFail: true, + expectHealthy: false, + }, + } + + for _, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + certificateStore := &fakeStore{ + cert: tc.storeCert.certificate, + } + + certificateManager, err := NewManager(&Config{ + Template: &x509.CertificateRequest{ + Subject: pkix.Name{ + Organization: []string{"system:nodes"}, + CommonName: "system:node:fake-node-name", + }, + }, + Usages: []certificates.KeyUsage{ + certificates.UsageDigitalSignature, + certificates.UsageKeyEncipherment, + certificates.UsageClientAuth, + }, + CertificateStore: certificateStore, + BootstrapCertificatePEM: tc.bootstrapCert.certificatePEM, + BootstrapKeyPEM: tc.bootstrapCert.keyPEM, + CertificateSigningRequestClient: &fakeClient{ + certificatePEM: tc.apiCert.certificatePEM, + failureType: tc.failureType, + err: tc.clientErr, + }, + }) + if err != nil { + t.Errorf("Got %v, wanted no error.", err) + } + + certificate := certificateManager.Current() + if !certificatesEqual(certificate, tc.expectedCertBeforeStart.certificate) { + t.Errorf("Got %v, wanted %v", certificateString(certificate), certificateString(tc.expectedCertBeforeStart.certificate)) + } + + if _, ok := certificateManager.(*manager); !ok { + t.Errorf("Expected a '*manager' from 'NewManager'") + } else { + success, err := certificateManager.(*manager).rotateCerts() + if err != nil { + t.Errorf("Got error %v, expected none.", err) + return + } + if !success != tc.expectRotateFail { + t.Errorf("Unexpected response 'rotateCerts': %t", success) + return + } + if actual := certificateManager.(*manager).ServerHealthy(); actual != tc.expectHealthy { + t.Errorf("Unexpected manager server health: %t", actual) + } + } + + certificate = certificateManager.Current() + if !certificatesEqual(certificate, tc.expectedCertAfterStart.certificate) { + t.Errorf("Got %v, wanted %v", certificateString(certificate), certificateString(tc.expectedCertAfterStart.certificate)) + } + }) + } +} + type fakeClientFailureType int const ( @@ -641,10 +804,29 @@ type fakeClient struct { certificatesclient.CertificateSigningRequestInterface failureType fakeClientFailureType certificatePEM []byte + err error +} + +func (c fakeClient) List(opts v1.ListOptions) (*certificates.CertificateSigningRequestList, error) { + if c.failureType == watchError { + if c.err != nil { + return nil, c.err + } + return nil, fmt.Errorf("Watch error") + } + csrReply := certificates.CertificateSigningRequestList{ + Items: []certificates.CertificateSigningRequest{ + {ObjectMeta: v1.ObjectMeta{UID: "fake-uid"}}, + }, + } + return &csrReply, nil } func (c fakeClient) Create(*certificates.CertificateSigningRequest) (*certificates.CertificateSigningRequest, error) { if c.failureType == createError { + if c.err != nil { + return nil, c.err + } return nil, fmt.Errorf("Create error") } csrReply := certificates.CertificateSigningRequest{} @@ -654,6 +836,9 @@ func (c fakeClient) Create(*certificates.CertificateSigningRequest) (*certificat func (c fakeClient) Watch(opts v1.ListOptions) (watch.Interface, error) { if c.failureType == watchError { + if c.err != nil { + return nil, c.err + } return nil, fmt.Errorf("Watch error") } return &fakeWatch{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_store.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_store.go index 029f9916b..42a40dcdf 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_store.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/certificate_store.go @@ -266,6 +266,13 @@ func (s *fileStore) updateSymlink(filename string) error { return fmt.Errorf("file %q does not exist so it can not be used as the currently selected cert/key", filename) } + // Ensure the source path is absolute to ensure the symlink target is + // correct when certDirectory is a relative path. + filename, err := filepath.Abs(filename) + if err != nil { + return err + } + // Create the 'updated' symlink pointing to the requested file name. if err := os.Symlink(filename, updatedPath); err != nil { return fmt.Errorf("unable to create a symlink from %q to %q: %v", updatedPath, filename, err) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/BUILD new file mode 100644 index 000000000..c6def5bbf --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/BUILD @@ -0,0 +1,54 @@ +package(default_visibility = ["//visibility:public"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_library( + name = "go_default_library", + srcs = ["csr.go"], + importpath = "k8s.io/client-go/util/certificate/csr", + deps = [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/certificates/v1beta1: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/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + "//vendor/k8s.io/client-go/util/cert:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) + +go_test( + name = "go_default_test", + srcs = ["csr_test.go"], + importpath = "k8s.io/client-go/util/certificate/csr", + library = ":go_default_library", + deps = [ + "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/util/cert:go_default_library", + ], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/csr.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/csr.go new file mode 100644 index 000000000..22112a5b5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/csr.go @@ -0,0 +1,261 @@ +/* +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 csr + +import ( + "crypto" + "crypto/sha512" + "crypto/x509" + "crypto/x509/pkix" + "encoding/base64" + "encoding/pem" + "fmt" + "github.com/golang/glog" + "reflect" + "time" + + certificates "k8s.io/api/certificates/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" + "k8s.io/client-go/tools/cache" + certutil "k8s.io/client-go/util/cert" +) + +// RequestNodeCertificate will create a certificate signing request for a node +// (Organization and CommonName for the CSR will be set as expected for node +// certificates) and send it to API server, then it will watch the object's +// status, once approved by API server, it will return the API server's issued +// certificate (pem-encoded). If there is any errors, or the watch timeouts, it +// will return an error. This is intended for use on nodes (kubelet and +// kubeadm). +func RequestNodeCertificate(client certificatesclient.CertificateSigningRequestInterface, privateKeyData []byte, nodeName types.NodeName) (certData []byte, err error) { + subject := &pkix.Name{ + Organization: []string{"system:nodes"}, + CommonName: "system:node:" + string(nodeName), + } + + privateKey, err := certutil.ParsePrivateKeyPEM(privateKeyData) + if err != nil { + return nil, fmt.Errorf("invalid private key for certificate request: %v", err) + } + csrData, err := certutil.MakeCSR(privateKey, subject, nil, nil) + if err != nil { + return nil, fmt.Errorf("unable to generate certificate request: %v", err) + } + + usages := []certificates.KeyUsage{ + certificates.UsageDigitalSignature, + certificates.UsageKeyEncipherment, + certificates.UsageClientAuth, + } + name := digestedName(privateKeyData, subject, usages) + req, err := RequestCertificate(client, csrData, name, usages, privateKey) + if err != nil { + return nil, err + } + return WaitForCertificate(client, req, 3600*time.Second) +} + +// RequestCertificate will either use an existing (if this process has run +// before but not to completion) or create a certificate signing request using the +// PEM encoded CSR and send it to API server, then it will watch the object's +// status, once approved by API server, it will return the API server's issued +// certificate (pem-encoded). If there is any errors, or the watch timeouts, it +// will return an error. +func RequestCertificate(client certificatesclient.CertificateSigningRequestInterface, csrData []byte, name string, usages []certificates.KeyUsage, privateKey interface{}) (req *certificates.CertificateSigningRequest, err error) { + csr := &certificates.CertificateSigningRequest{ + // Username, UID, Groups will be injected by API server. + TypeMeta: metav1.TypeMeta{Kind: "CertificateSigningRequest"}, + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + Spec: certificates.CertificateSigningRequestSpec{ + Request: csrData, + Usages: usages, + }, + } + if len(csr.Name) == 0 { + csr.GenerateName = "csr-" + } + + req, err = client.Create(csr) + switch { + case err == nil: + case errors.IsAlreadyExists(err) && len(name) > 0: + glog.Infof("csr for this node already exists, reusing") + req, err = client.Get(name, metav1.GetOptions{}) + if err != nil { + return nil, formatError("cannot retrieve certificate signing request: %v", err) + } + if err := ensureCompatible(req, csr, privateKey); err != nil { + return nil, fmt.Errorf("retrieved csr is not compatible: %v", err) + } + glog.Infof("csr for this node is still valid") + default: + return nil, formatError("cannot create certificate signing request: %v", err) + } + return req, nil +} + +// WaitForCertificate waits for a certificate to be issued until timeout, or returns an error. +func WaitForCertificate(client certificatesclient.CertificateSigningRequestInterface, req *certificates.CertificateSigningRequest, timeout time.Duration) (certData []byte, err error) { + fieldSelector := fields.OneTermEqualSelector("metadata.name", req.Name).String() + + event, err := cache.ListWatchUntil( + timeout, + &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + options.FieldSelector = fieldSelector + return client.List(options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + options.FieldSelector = fieldSelector + return client.Watch(options) + }, + }, + func(event watch.Event) (bool, error) { + switch event.Type { + case watch.Modified, watch.Added: + case watch.Deleted: + return false, fmt.Errorf("csr %q was deleted", req.Name) + default: + return false, nil + } + csr := event.Object.(*certificates.CertificateSigningRequest) + if csr.UID != req.UID { + return false, fmt.Errorf("csr %q changed UIDs", csr.Name) + } + for _, c := range csr.Status.Conditions { + if c.Type == certificates.CertificateDenied { + return false, fmt.Errorf("certificate signing request is not approved, reason: %v, message: %v", c.Reason, c.Message) + } + if c.Type == certificates.CertificateApproved && csr.Status.Certificate != nil { + return true, nil + } + } + return false, nil + }, + ) + if err == wait.ErrWaitTimeout { + return nil, wait.ErrWaitTimeout + } + if err != nil { + return nil, formatError("cannot watch on the certificate signing request: %v", err) + } + + return event.Object.(*certificates.CertificateSigningRequest).Status.Certificate, nil +} + +// This digest should include all the relevant pieces of the CSR we care about. +// We can't direcly hash the serialized CSR because of random padding that we +// regenerate every loop and we include usages which are not contained in the +// CSR. This needs to be kept up to date as we add new fields to the node +// certificates and with ensureCompatible. +func digestedName(privateKeyData []byte, subject *pkix.Name, usages []certificates.KeyUsage) string { + hash := sha512.New512_256() + + // Here we make sure two different inputs can't write the same stream + // to the hash. This delimiter is not in the base64.URLEncoding + // alphabet so there is no way to have spill over collisions. Without + // it 'CN:foo,ORG:bar' hashes to the same value as 'CN:foob,ORG:ar' + const delimiter = '|' + encode := base64.RawURLEncoding.EncodeToString + + write := func(data []byte) { + hash.Write([]byte(encode(data))) + hash.Write([]byte{delimiter}) + } + + write(privateKeyData) + write([]byte(subject.CommonName)) + for _, v := range subject.Organization { + write([]byte(v)) + } + for _, v := range usages { + write([]byte(v)) + } + + return "node-csr-" + encode(hash.Sum(nil)) +} + +// ensureCompatible ensures that a CSR object is compatible with an original CSR +func ensureCompatible(new, orig *certificates.CertificateSigningRequest, privateKey interface{}) error { + newCsr, err := ParseCSR(new) + if err != nil { + return fmt.Errorf("unable to parse new csr: %v", err) + } + origCsr, err := ParseCSR(orig) + if err != nil { + return fmt.Errorf("unable to parse original csr: %v", err) + } + if !reflect.DeepEqual(newCsr.Subject, origCsr.Subject) { + return fmt.Errorf("csr subjects differ: new: %#v, orig: %#v", newCsr.Subject, origCsr.Subject) + } + signer, ok := privateKey.(crypto.Signer) + if !ok { + return fmt.Errorf("privateKey is not a signer") + } + newCsr.PublicKey = signer.Public() + if err := newCsr.CheckSignature(); err != nil { + return fmt.Errorf("error validating signature new CSR against old key: %v", err) + } + if len(new.Status.Certificate) > 0 { + certs, err := certutil.ParseCertsPEM(new.Status.Certificate) + if err != nil { + return fmt.Errorf("error parsing signed certificate for CSR: %v", err) + } + now := time.Now() + for _, cert := range certs { + if now.After(cert.NotAfter) { + return fmt.Errorf("one of the certificates for the CSR has expired: %s", cert.NotAfter) + } + } + } + return nil +} + +// formatError preserves the type of an API message but alters the message. Expects +// a single argument format string, and returns the wrapped error. +func formatError(format string, err error) error { + if s, ok := err.(errors.APIStatus); ok { + se := &errors.StatusError{ErrStatus: s.Status()} + se.ErrStatus.Message = fmt.Sprintf(format, se.ErrStatus.Message) + return se + } + return fmt.Errorf(format, err) +} + +// ParseCSR extracts the CSR from the API object and decodes it. +func ParseCSR(obj *certificates.CertificateSigningRequest) (*x509.CertificateRequest, error) { + // extract PEM from request object + pemBytes := obj.Spec.Request + block, _ := pem.Decode(pemBytes) + if block == nil || block.Type != "CERTIFICATE REQUEST" { + return nil, fmt.Errorf("PEM block type must be CERTIFICATE REQUEST") + } + csr, err := x509.ParseCertificateRequest(block.Bytes) + if err != nil { + return nil, err + } + return csr, nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/csr_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/csr_test.go new file mode 100644 index 000000000..d0182abe9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/util/certificate/csr/csr_test.go @@ -0,0 +1,135 @@ +/* +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 csr + +import ( + "fmt" + "testing" + + certificates "k8s.io/api/certificates/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + watch "k8s.io/apimachinery/pkg/watch" + certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" + certutil "k8s.io/client-go/util/cert" +) + +func TestRequestNodeCertificateNoKeyData(t *testing.T) { + certData, err := RequestNodeCertificate(&fakeClient{}, []byte{}, "fake-node-name") + if err == nil { + t.Errorf("Got no error, wanted error an error because there was an empty private key passed in.") + } + if certData != nil { + t.Errorf("Got cert data, wanted nothing as there should have been an error.") + } +} + +func TestRequestNodeCertificateErrorCreatingCSR(t *testing.T) { + client := &fakeClient{ + failureType: createError, + } + privateKeyData, err := certutil.MakeEllipticPrivateKeyPEM() + if err != nil { + t.Fatalf("Unable to generate a new private key: %v", err) + } + + certData, err := RequestNodeCertificate(client, privateKeyData, "fake-node-name") + if err == nil { + t.Errorf("Got no error, wanted error an error because client.Create failed.") + } + if certData != nil { + t.Errorf("Got cert data, wanted nothing as there should have been an error.") + } +} + +func TestRequestNodeCertificate(t *testing.T) { + privateKeyData, err := certutil.MakeEllipticPrivateKeyPEM() + if err != nil { + t.Fatalf("Unable to generate a new private key: %v", err) + } + + certData, err := RequestNodeCertificate(&fakeClient{}, privateKeyData, "fake-node-name") + if err != nil { + t.Errorf("Got %v, wanted no error.", err) + } + if certData == nil { + t.Errorf("Got nothing, expected a CSR.") + } +} + +type FailureType int + +const ( + noError FailureType = iota + createError + certificateSigningRequestDenied +) + +type fakeClient struct { + certificatesclient.CertificateSigningRequestInterface + watch *watch.FakeWatcher + failureType FailureType +} + +func (c *fakeClient) Create(*certificates.CertificateSigningRequest) (*certificates.CertificateSigningRequest, error) { + if c.failureType == createError { + return nil, fmt.Errorf("fakeClient failed creating request") + } + csr := certificates.CertificateSigningRequest{ + ObjectMeta: metav1.ObjectMeta{ + UID: "fake-uid", + Name: "fake-certificate-signing-request-name", + }, + } + return &csr, nil +} + +func (c *fakeClient) List(opts metav1.ListOptions) (*certificates.CertificateSigningRequestList, error) { + return &certificates.CertificateSigningRequestList{}, nil +} + +func (c *fakeClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { + c.watch = watch.NewFakeWithChanSize(1, false) + c.watch.Add(c.generateCSR()) + c.watch.Stop() + return c.watch, nil +} + +func (c *fakeClient) generateCSR() *certificates.CertificateSigningRequest { + var condition certificates.CertificateSigningRequestCondition + if c.failureType == certificateSigningRequestDenied { + condition = certificates.CertificateSigningRequestCondition{ + Type: certificates.CertificateDenied, + } + } else { + condition = certificates.CertificateSigningRequestCondition{ + Type: certificates.CertificateApproved, + } + } + + csr := certificates.CertificateSigningRequest{ + ObjectMeta: metav1.ObjectMeta{ + UID: "fake-uid", + }, + Status: certificates.CertificateSigningRequestStatus{ + Conditions: []certificates.CertificateSigningRequestCondition{ + condition, + }, + Certificate: []byte{}, + }, + } + return &csr +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/Godeps/Godeps.json index 4826fd235..239636cbe 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/code-generator", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "./..." @@ -212,51 +212,51 @@ }, { "ImportPath": "k8s.io/gengo/args", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/import-boss/generators", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/set-gen/generators", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/examples/set-gen/sets", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/generator", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/namer", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/parser", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/gengo/types", - "Rev": "70ad626ed2d7a483d89d2c4c56364d60b48ee8fc" + "Rev": "b58fc7edb82e0c6ffc9b8aef61813c7261b785d4" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/generators", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/LICENSE b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/README.md new file mode 100644 index 000000000..504a4c3f0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/README.md @@ -0,0 +1,20 @@ +# code-generator + +Golang code-generators used to implement [Kubernetes-style API types](https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md). + +## Purpose + +These code-generators can be used +- in the context of [CustomResourceDefinition](https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions/) to build native, versioned clients, + informers and other helpers +- in the context of [User-provider API Servers](https://github.com/kubernetes/apiserver) to build conversions between internal and versioned types, defaulters, protobuf codecs, + internal and versioned clients and informers. + +## Compatibility + +HEAD of this repo will match HEAD of k8s.io/apiserver, k8s.io/apimachinery, and k8s.io/client-go. + +## Where does it come from? + +`code-generator` is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/code-generator. +Code changes are made in that location, merged into `k8s.io/kubernetes` and later synced here. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/doc.go index 4f75bbc96..b221d7eb4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=example.apiserver.code-generator.k8s.io package example // import "k8s.io/code-generator/_examples/apiserver/apis/example" diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/register.go index 05578d50f..da397b524 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/register.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" ) -var SchemeGroupVersion = schema.GroupVersion{Group: "testgroup.k8s.io", Version: runtime.APIVersionInternal} +var SchemeGroupVersion = schema.GroupVersion{Group: "example.api.code-generator.k8s.io", Version: runtime.APIVersionInternal} var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) @@ -33,7 +33,7 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &TestType{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/doc.go index a93041949..242d3904d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/code-generator/_examples/apiserver/apis/example // +groupName=example.apiserver.code-generator.k8s.io package v1 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/register.go index 99abd7d58..c99619d7a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/register.go @@ -44,7 +44,7 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &TestType{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/zz_generated.deepcopy.go index da6ba5e95..35ebeb237 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/v1/zz_generated.deepcopy.go @@ -21,36 +21,9 @@ limitations under the License. package v1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestType).DeepCopyInto(out.(*TestType)) - return nil - }, InType: reflect.TypeOf(&TestType{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestTypeList).DeepCopyInto(out.(*TestTypeList)) - return nil - }, InType: reflect.TypeOf(&TestTypeList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestTypeStatus).DeepCopyInto(out.(*TestTypeStatus)) - return nil - }, InType: reflect.TypeOf(&TestTypeStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TestType) DeepCopyInto(out *TestType) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/zz_generated.deepcopy.go index 7a43d92ba..c1a8a0279 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example/zz_generated.deepcopy.go @@ -21,36 +21,9 @@ limitations under the License. package example import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestType).DeepCopyInto(out.(*TestType)) - return nil - }, InType: reflect.TypeOf(&TestType{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestTypeList).DeepCopyInto(out.(*TestTypeList)) - return nil - }, InType: reflect.TypeOf(&TestTypeList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestTypeStatus).DeepCopyInto(out.(*TestTypeStatus)) - return nil - }, InType: reflect.TypeOf(&TestTypeStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TestType) DeepCopyInto(out *TestType) { *out = *in diff --git a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/doc.go similarity index 73% rename from vendor/k8s.io/kubernetes/federation/pkg/federation-controller/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/doc.go index 657ce63c1..386480375 100644 --- a/vendor/k8s.io/kubernetes/federation/pkg/federation-controller/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/doc.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package federation_controller contains code for controllers (like the cluster -// controller). -package federation_controller // import "k8s.io/kubernetes/federation/pkg/federation-controller" +// +k8s:deepcopy-gen=package +// +groupName=example.test.apiserver.code-generator.k8s.io +// +groupGoName=SecondExample +package example2 // import "k8s.io/code-generator/_examples/apiserver/apis/example2" diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/install/install.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/install/install.go similarity index 63% rename from vendor/k8s.io/kubernetes/federation/apis/core/install/install.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/install/install.go index ca250a4f4..ef241a33f 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/core/install/install.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/install/install.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright 2015 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. @@ -14,39 +14,28 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package install installs the experimental API group, making it available as +// an option to all of the API encoding/decoding machinery. package install import ( "k8s.io/apimachinery/pkg/apimachinery/announced" "k8s.io/apimachinery/pkg/apimachinery/registered" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/federation/apis/core" - corev1 "k8s.io/kubernetes/federation/apis/core/v1" + "k8s.io/code-generator/_examples/apiserver/apis/example2" + "k8s.io/code-generator/_examples/apiserver/apis/example2/v1" ) -func init() { - Install(core.GroupFactoryRegistry, core.Registry, core.Scheme) -} - // Install registers the API group and adds types to a scheme func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { if err := announced.NewGroupMetaFactory( &announced.GroupMetaFactoryArgs{ - GroupName: core.GroupName, - VersionPreferenceOrder: []string{corev1.SchemeGroupVersion.Version}, - AddInternalObjectsToScheme: core.AddToScheme, - RootScopedKinds: sets.NewString( - "Namespace", - ), - IgnoredKinds: sets.NewString( - "ListOptions", - "DeleteOptions", - "Status", - ), + GroupName: example2.SchemeGroupVersion.Group, + VersionPreferenceOrder: []string{v1.SchemeGroupVersion.Version}, + AddInternalObjectsToScheme: example2.AddToScheme, }, announced.VersionToSchemeFunc{ - corev1.SchemeGroupVersion.Version: corev1.AddToScheme, + v1.SchemeGroupVersion.Version: v1.AddToScheme, }, ).Announce(groupFactoryRegistry).RegisterAndEnable(registry, scheme); err != nil { panic(err) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/register.go new file mode 100644 index 000000000..508565af7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/register.go @@ -0,0 +1,45 @@ +/* +Copyright 2015 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 example2 + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +var SchemeGroupVersion = schema.GroupVersion{Group: "example.test.apiserver.code-generator.k8s.io", Version: runtime.APIVersionInternal} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +// Adds the list of known types to the given scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &TestType{}, + &TestTypeList{}, + ) + + scheme.AddKnownTypes(SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/types.go new file mode 100644 index 000000000..10219129b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/types.go @@ -0,0 +1,44 @@ +/* +Copyright 2015 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 example2 + +import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// TestType is a top-level type. A client is created for it. +type TestType struct { + metav1.TypeMeta + metav1.ObjectMeta + Status TestTypeStatus +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// TestTypeList is a top-level list type. The client methods for lists are automatically created. +// You are not supposed to create a separated client for this one. +type TestTypeList struct { + metav1.TypeMeta + metav1.ListMeta + + Items []TestType +} + +type TestTypeStatus struct { + Blah string +} diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/v1/defaults.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/doc.go similarity index 74% rename from vendor/k8s.io/kubernetes/federation/apis/core/v1/defaults.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/doc.go index 48a5b2581..41e271d22 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/core/v1/defaults.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/doc.go @@ -14,13 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +// +k8s:deepcopy-gen=package +// +groupName=example.test.apiserver.code-generator.k8s.io +// +k8s:conversion-gen=k8s.io/code-generator/_examples/apiserver/apis/example2 +// +groupGoName=SecondExample package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/kubernetes/pkg/api/v1" -) - -func addDefaultingFuncs(scheme *runtime.Scheme) error { - return v1.RegisterDefaults(scheme) -} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/register.go new file mode 100644 index 000000000..19dd0c356 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/register.go @@ -0,0 +1,59 @@ +/* +Copyright 2015 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 ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +var SchemeGroupVersion = schema.GroupVersion{Group: "example.test.apiserver.code-generator.k8s.io", Version: "v1"} + +var ( + // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. + // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + SchemeBuilder runtime.SchemeBuilder + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addKnownTypes) +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &TestType{}, + &TestTypeList{}, + ) + + scheme.AddKnownTypes(SchemeGroupVersion, + &metav1.Status{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/types.go new file mode 100644 index 000000000..5c2ebc4d6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/types.go @@ -0,0 +1,47 @@ +/* +Copyright 2015 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 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// TestType is a top-level type. A client is created for it. +type TestType struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ObjectMeta `json:"metadata,omitempty"` + // +optional + Status TestTypeStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// TestTypeList is a top-level list type. The client methods for lists are automatically created. +// You are not supposed to create a separated client for this one. +type TestTypeList struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ListMeta `json:"metadata,omitempty"` + + Items []TestType `json:"items"` +} + +type TestTypeStatus struct { + Blah string +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.conversion.go new file mode 100644 index 000000000..6a62f96dd --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.conversion.go @@ -0,0 +1,113 @@ +// +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 conversion-gen. Do not edit it manually! + +package v1 + +import ( + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + example2 "k8s.io/code-generator/_examples/apiserver/apis/example2" + unsafe "unsafe" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1_TestType_To_example2_TestType, + Convert_example2_TestType_To_v1_TestType, + Convert_v1_TestTypeList_To_example2_TestTypeList, + Convert_example2_TestTypeList_To_v1_TestTypeList, + Convert_v1_TestTypeStatus_To_example2_TestTypeStatus, + Convert_example2_TestTypeStatus_To_v1_TestTypeStatus, + ) +} + +func autoConvert_v1_TestType_To_example2_TestType(in *TestType, out *example2.TestType, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1_TestTypeStatus_To_example2_TestTypeStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1_TestType_To_example2_TestType is an autogenerated conversion function. +func Convert_v1_TestType_To_example2_TestType(in *TestType, out *example2.TestType, s conversion.Scope) error { + return autoConvert_v1_TestType_To_example2_TestType(in, out, s) +} + +func autoConvert_example2_TestType_To_v1_TestType(in *example2.TestType, out *TestType, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_example2_TestTypeStatus_To_v1_TestTypeStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_example2_TestType_To_v1_TestType is an autogenerated conversion function. +func Convert_example2_TestType_To_v1_TestType(in *example2.TestType, out *TestType, s conversion.Scope) error { + return autoConvert_example2_TestType_To_v1_TestType(in, out, s) +} + +func autoConvert_v1_TestTypeList_To_example2_TestTypeList(in *TestTypeList, out *example2.TestTypeList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]example2.TestType)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_TestTypeList_To_example2_TestTypeList is an autogenerated conversion function. +func Convert_v1_TestTypeList_To_example2_TestTypeList(in *TestTypeList, out *example2.TestTypeList, s conversion.Scope) error { + return autoConvert_v1_TestTypeList_To_example2_TestTypeList(in, out, s) +} + +func autoConvert_example2_TestTypeList_To_v1_TestTypeList(in *example2.TestTypeList, out *TestTypeList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]TestType)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_example2_TestTypeList_To_v1_TestTypeList is an autogenerated conversion function. +func Convert_example2_TestTypeList_To_v1_TestTypeList(in *example2.TestTypeList, out *TestTypeList, s conversion.Scope) error { + return autoConvert_example2_TestTypeList_To_v1_TestTypeList(in, out, s) +} + +func autoConvert_v1_TestTypeStatus_To_example2_TestTypeStatus(in *TestTypeStatus, out *example2.TestTypeStatus, s conversion.Scope) error { + out.Blah = in.Blah + return nil +} + +// Convert_v1_TestTypeStatus_To_example2_TestTypeStatus is an autogenerated conversion function. +func Convert_v1_TestTypeStatus_To_example2_TestTypeStatus(in *TestTypeStatus, out *example2.TestTypeStatus, s conversion.Scope) error { + return autoConvert_v1_TestTypeStatus_To_example2_TestTypeStatus(in, out, s) +} + +func autoConvert_example2_TestTypeStatus_To_v1_TestTypeStatus(in *example2.TestTypeStatus, out *TestTypeStatus, s conversion.Scope) error { + out.Blah = in.Blah + return nil +} + +// Convert_example2_TestTypeStatus_To_v1_TestTypeStatus is an autogenerated conversion function. +func Convert_example2_TestTypeStatus_To_v1_TestTypeStatus(in *example2.TestTypeStatus, out *TestTypeStatus, s conversion.Scope) error { + return autoConvert_example2_TestTypeStatus_To_v1_TestTypeStatus(in, out, s) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.deepcopy.go new file mode 100644 index 000000000..35ebeb237 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.deepcopy.go @@ -0,0 +1,103 @@ +// +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 v1 + +import ( + 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 *TestType) DeepCopyInto(out *TestType) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestType. +func (in *TestType) DeepCopy() *TestType { + if in == nil { + return nil + } + out := new(TestType) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TestType) 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 *TestTypeList) DeepCopyInto(out *TestTypeList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]TestType, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestTypeList. +func (in *TestTypeList) DeepCopy() *TestTypeList { + if in == nil { + return nil + } + out := new(TestTypeList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TestTypeList) 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 *TestTypeStatus) DeepCopyInto(out *TestTypeStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestTypeStatus. +func (in *TestTypeStatus) DeepCopy() *TestTypeStatus { + if in == nil { + return nil + } + out := new(TestTypeStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/federation/apis/core/v1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.defaults.go similarity index 69% rename from vendor/k8s.io/kubernetes/federation/apis/core/v1/zz_generated.conversion.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.defaults.go index 0221d60e0..6df448eb9 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/core/v1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/v1/zz_generated.defaults.go @@ -16,7 +16,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// This file was autogenerated by conversion-gen. Do not edit it manually! +// This file was autogenerated by defaulter-gen. Do not edit it manually! package v1 @@ -24,12 +24,9 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. +// RegisterDefaults adds defaulters functions to the given scheme. // Public to allow building arbitrary schemes. -func RegisterConversions(scheme *runtime.Scheme) error { - return scheme.AddGeneratedConversionFuncs() +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + return nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/zz_generated.deepcopy.go new file mode 100644 index 000000000..0039b2702 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/apis/example2/zz_generated.deepcopy.go @@ -0,0 +1,103 @@ +// +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 example2 + +import ( + 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 *TestType) DeepCopyInto(out *TestType) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestType. +func (in *TestType) DeepCopy() *TestType { + if in == nil { + return nil + } + out := new(TestType) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TestType) 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 *TestTypeList) DeepCopyInto(out *TestTypeList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]TestType, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestTypeList. +func (in *TestTypeList) DeepCopy() *TestTypeList { + if in == nil { + return nil + } + out := new(TestTypeList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TestTypeList) 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 *TestTypeStatus) DeepCopyInto(out *TestTypeStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestTypeStatus. +func (in *TestTypeStatus) DeepCopy() *TestTypeStatus { + if in == nil { + return nil + } + out := new(TestTypeStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/clientset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/clientset.go index 5b3d1ddf8..ec9559eaa 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/clientset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/clientset.go @@ -22,18 +22,21 @@ import ( rest "k8s.io/client-go/rest" flowcontrol "k8s.io/client-go/util/flowcontrol" exampleinternalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion" + secondexampleinternalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion" ) type Interface interface { Discovery() discovery.DiscoveryInterface Example() exampleinternalversion.ExampleInterface + SecondExample() secondexampleinternalversion.SecondExampleInterface } // Clientset contains the clients for groups. Each group has exactly one // version included in a Clientset. type Clientset struct { *discovery.DiscoveryClient - example *exampleinternalversion.ExampleClient + example *exampleinternalversion.ExampleClient + secondExample *secondexampleinternalversion.SecondExampleClient } // Example retrieves the ExampleClient @@ -41,6 +44,11 @@ func (c *Clientset) Example() exampleinternalversion.ExampleInterface { return c.example } +// SecondExample retrieves the SecondExampleClient +func (c *Clientset) SecondExample() secondexampleinternalversion.SecondExampleInterface { + return c.secondExample +} + // Discovery retrieves the DiscoveryClient func (c *Clientset) Discovery() discovery.DiscoveryInterface { if c == nil { @@ -61,6 +69,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.secondExample, err = secondexampleinternalversion.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) if err != nil { @@ -75,6 +87,7 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { func NewForConfigOrDie(c *rest.Config) *Clientset { var cs Clientset cs.example = exampleinternalversion.NewForConfigOrDie(c) + cs.secondExample = secondexampleinternalversion.NewForConfigOrDie(c) cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) return &cs @@ -84,6 +97,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { func New(c rest.Interface) *Clientset { var cs Clientset cs.example = exampleinternalversion.New(c) + cs.secondExample = secondexampleinternalversion.New(c) cs.DiscoveryClient = discovery.NewDiscoveryClient(c) return &cs diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/fake/clientset_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/fake/clientset_generated.go index 846946cd1..8b474ba6d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/fake/clientset_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/fake/clientset_generated.go @@ -25,6 +25,8 @@ import ( clientset "k8s.io/code-generator/_examples/apiserver/clientset/internalversion" exampleinternalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion" fakeexampleinternalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example/internalversion/fake" + secondexampleinternalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion" + fakesecondexampleinternalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. @@ -64,3 +66,8 @@ var _ clientset.Interface = &Clientset{} func (c *Clientset) Example() exampleinternalversion.ExampleInterface { return &fakeexampleinternalversion.FakeExample{Fake: &c.Fake} } + +// SecondExample retrieves the SecondExampleClient +func (c *Clientset) SecondExample() secondexampleinternalversion.SecondExampleInterface { + return &fakesecondexampleinternalversion.FakeSecondExample{Fake: &c.Fake} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/fake/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/fake/register.go index 0c5d7adda..b1dac6b54 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/fake/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/fake/register.go @@ -22,6 +22,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" exampleinternalversion "k8s.io/code-generator/_examples/apiserver/apis/example" + secondexampleinternalversion "k8s.io/code-generator/_examples/apiserver/apis/example2" ) var scheme = runtime.NewScheme() @@ -49,5 +50,6 @@ func init() { // correctly. func AddToScheme(scheme *runtime.Scheme) { exampleinternalversion.AddToScheme(scheme) + secondexampleinternalversion.AddToScheme(scheme) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/scheme/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/scheme/register.go index 6a02008bc..97269e17f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/scheme/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/scheme/register.go @@ -24,6 +24,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" example "k8s.io/code-generator/_examples/apiserver/apis/example/install" + secondexample "k8s.io/code-generator/_examples/apiserver/apis/example2/install" os "os" ) @@ -42,5 +43,6 @@ func init() { // Install registers the API group and adds types to a scheme func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { example.Install(groupFactoryRegistry, registry, scheme) + secondexample.Install(groupFactoryRegistry, registry, scheme) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/doc.go new file mode 100644 index 000000000..3adf06d89 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/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 internalversion diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/example2_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/example2_client.go new file mode 100644 index 000000000..2aba40857 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/example2_client.go @@ -0,0 +1,99 @@ +/* +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 internalversion + +import ( + rest "k8s.io/client-go/rest" + "k8s.io/code-generator/_examples/apiserver/clientset/internalversion/scheme" +) + +type SecondExampleInterface interface { + RESTClient() rest.Interface + TestTypesGetter +} + +// SecondExampleClient is used to interact with features provided by the example.test.apiserver.code-generator.k8s.io group. +type SecondExampleClient struct { + restClient rest.Interface +} + +func (c *SecondExampleClient) TestTypes(namespace string) TestTypeInterface { + return newTestTypes(c, namespace) +} + +// NewForConfig creates a new SecondExampleClient for the given config. +func NewForConfig(c *rest.Config) (*SecondExampleClient, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &SecondExampleClient{client}, nil +} + +// NewForConfigOrDie creates a new SecondExampleClient for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *SecondExampleClient { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new SecondExampleClient for the given RESTClient. +func New(c rest.Interface) *SecondExampleClient { + return &SecondExampleClient{c} +} + +func setConfigDefaults(config *rest.Config) error { + g, err := scheme.Registry.Group("example.test.apiserver.code-generator.k8s.io") + if err != nil { + return err + } + + config.APIPath = "/apis" + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + if config.GroupVersion == nil || config.GroupVersion.Group != g.GroupVersion.Group { + gv := g.GroupVersion + config.GroupVersion = &gv + } + config.NegotiatedSerializer = scheme.Codecs + + if config.QPS == 0 { + config.QPS = 5 + } + if config.Burst == 0 { + config.Burst = 10 + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *SecondExampleClient) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/doc.go diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/fake_autoscaling_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_example2_client.go similarity index 70% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/fake_autoscaling_client.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_example2_client.go index f6ec657c4..76011b4b5 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/fake_autoscaling_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_example2_client.go @@ -19,20 +19,20 @@ package fake import ( rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" - v1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1" + internalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion" ) -type FakeAutoscalingV1 struct { +type FakeSecondExample struct { *testing.Fake } -func (c *FakeAutoscalingV1) HorizontalPodAutoscalers(namespace string) v1.HorizontalPodAutoscalerInterface { - return &FakeHorizontalPodAutoscalers{c, namespace} +func (c *FakeSecondExample) TestTypes(namespace string) internalversion.TestTypeInterface { + return &FakeTestTypes{c, namespace} } // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *FakeAutoscalingV1) RESTClient() rest.Interface { +func (c *FakeSecondExample) RESTClient() rest.Interface { var ret *rest.RESTClient return ret } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_testtype.go new file mode 100644 index 000000000..24f8989b1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/fake/fake_testtype.go @@ -0,0 +1,138 @@ +/* +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 fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" + example2 "k8s.io/code-generator/_examples/apiserver/apis/example2" +) + +// FakeTestTypes implements TestTypeInterface +type FakeTestTypes struct { + Fake *FakeSecondExample + ns string +} + +var testtypesResource = schema.GroupVersionResource{Group: "example.test.apiserver.code-generator.k8s.io", Version: "", Resource: "testtypes"} + +var testtypesKind = schema.GroupVersionKind{Group: "example.test.apiserver.code-generator.k8s.io", Version: "", Kind: "TestType"} + +// Get takes name of the testType, and returns the corresponding testType object, and an error if there is any. +func (c *FakeTestTypes) Get(name string, options v1.GetOptions) (result *example2.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(testtypesResource, c.ns, name), &example2.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2.TestType), err +} + +// List takes label and field selectors, and returns the list of TestTypes that match those selectors. +func (c *FakeTestTypes) List(opts v1.ListOptions) (result *example2.TestTypeList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(testtypesResource, testtypesKind, c.ns, opts), &example2.TestTypeList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &example2.TestTypeList{} + for _, item := range obj.(*example2.TestTypeList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested testTypes. +func (c *FakeTestTypes) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(testtypesResource, c.ns, opts)) + +} + +// Create takes the representation of a testType and creates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *FakeTestTypes) Create(testType *example2.TestType) (result *example2.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(testtypesResource, c.ns, testType), &example2.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2.TestType), err +} + +// Update takes the representation of a testType and updates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *FakeTestTypes) Update(testType *example2.TestType) (result *example2.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(testtypesResource, c.ns, testType), &example2.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2.TestType), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeTestTypes) UpdateStatus(testType *example2.TestType) (*example2.TestType, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(testtypesResource, "status", c.ns, testType), &example2.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2.TestType), err +} + +// Delete takes name of the testType and deletes it. Returns an error if one occurs. +func (c *FakeTestTypes) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(testtypesResource, c.ns, name), &example2.TestType{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(testtypesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &example2.TestTypeList{}) + return err +} + +// Patch applies the patch and returns the patched testType. +func (c *FakeTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example2.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &example2.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2.TestType), err +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/generated_expansion.go new file mode 100644 index 000000000..163992082 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/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 internalversion + +type TestTypeExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/testtype.go new file mode 100644 index 000000000..abfc86aff --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/internalversion/typed/example2/internalversion/testtype.go @@ -0,0 +1,172 @@ +/* +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 internalversion + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" + example2 "k8s.io/code-generator/_examples/apiserver/apis/example2" + scheme "k8s.io/code-generator/_examples/apiserver/clientset/internalversion/scheme" +) + +// TestTypesGetter has a method to return a TestTypeInterface. +// A group's client should implement this interface. +type TestTypesGetter interface { + TestTypes(namespace string) TestTypeInterface +} + +// TestTypeInterface has methods to work with TestType resources. +type TestTypeInterface interface { + Create(*example2.TestType) (*example2.TestType, error) + Update(*example2.TestType) (*example2.TestType, error) + UpdateStatus(*example2.TestType) (*example2.TestType, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*example2.TestType, error) + List(opts v1.ListOptions) (*example2.TestTypeList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example2.TestType, err error) + TestTypeExpansion +} + +// testTypes implements TestTypeInterface +type testTypes struct { + client rest.Interface + ns string +} + +// newTestTypes returns a TestTypes +func newTestTypes(c *SecondExampleClient, namespace string) *testTypes { + return &testTypes{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the testType, and returns the corresponding testType object, and an error if there is any. +func (c *testTypes) Get(name string, options v1.GetOptions) (result *example2.TestType, err error) { + result = &example2.TestType{} + err = c.client.Get(). + Namespace(c.ns). + Resource("testtypes"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of TestTypes that match those selectors. +func (c *testTypes) List(opts v1.ListOptions) (result *example2.TestTypeList, err error) { + result = &example2.TestTypeList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("testtypes"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested testTypes. +func (c *testTypes) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("testtypes"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a testType and creates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *testTypes) Create(testType *example2.TestType) (result *example2.TestType, err error) { + result = &example2.TestType{} + err = c.client.Post(). + Namespace(c.ns). + Resource("testtypes"). + Body(testType). + Do(). + Into(result) + return +} + +// Update takes the representation of a testType and updates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *testTypes) Update(testType *example2.TestType) (result *example2.TestType, err error) { + result = &example2.TestType{} + err = c.client.Put(). + Namespace(c.ns). + Resource("testtypes"). + Name(testType.Name). + Body(testType). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *testTypes) UpdateStatus(testType *example2.TestType) (result *example2.TestType, err error) { + result = &example2.TestType{} + err = c.client.Put(). + Namespace(c.ns). + Resource("testtypes"). + Name(testType.Name). + SubResource("status"). + Body(testType). + Do(). + Into(result) + return +} + +// Delete takes name of the testType and deletes it. Returns an error if one occurs. +func (c *testTypes) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("testtypes"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *testTypes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("testtypes"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched testType. +func (c *testTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example2.TestType, err error) { + result = &example2.TestType{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("testtypes"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/clientset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/clientset.go index 8a7c7f568..2d4039681 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/clientset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/clientset.go @@ -22,6 +22,7 @@ import ( rest "k8s.io/client-go/rest" flowcontrol "k8s.io/client-go/util/flowcontrol" examplev1 "k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1" + secondexamplev1 "k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1" ) type Interface interface { @@ -29,13 +30,17 @@ type Interface interface { ExampleV1() examplev1.ExampleV1Interface // Deprecated: please explicitly pick a version if possible. Example() examplev1.ExampleV1Interface + SecondExampleV1() secondexamplev1.SecondExampleV1Interface + // Deprecated: please explicitly pick a version if possible. + SecondExample() secondexamplev1.SecondExampleV1Interface } // Clientset contains the clients for groups. Each group has exactly one // version included in a Clientset. type Clientset struct { *discovery.DiscoveryClient - exampleV1 *examplev1.ExampleV1Client + exampleV1 *examplev1.ExampleV1Client + secondExampleV1 *secondexamplev1.SecondExampleV1Client } // ExampleV1 retrieves the ExampleV1Client @@ -49,6 +54,17 @@ func (c *Clientset) Example() examplev1.ExampleV1Interface { return c.exampleV1 } +// SecondExampleV1 retrieves the SecondExampleV1Client +func (c *Clientset) SecondExampleV1() secondexamplev1.SecondExampleV1Interface { + return c.secondExampleV1 +} + +// Deprecated: SecondExample retrieves the default version of SecondExampleClient. +// Please explicitly pick a version. +func (c *Clientset) SecondExample() secondexamplev1.SecondExampleV1Interface { + return c.secondExampleV1 +} + // Discovery retrieves the DiscoveryClient func (c *Clientset) Discovery() discovery.DiscoveryInterface { if c == nil { @@ -69,6 +85,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.secondExampleV1, err = secondexamplev1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) if err != nil { @@ -83,6 +103,7 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { func NewForConfigOrDie(c *rest.Config) *Clientset { var cs Clientset cs.exampleV1 = examplev1.NewForConfigOrDie(c) + cs.secondExampleV1 = secondexamplev1.NewForConfigOrDie(c) cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) return &cs @@ -92,6 +113,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { func New(c rest.Interface) *Clientset { var cs Clientset cs.exampleV1 = examplev1.New(c) + cs.secondExampleV1 = secondexamplev1.New(c) cs.DiscoveryClient = discovery.NewDiscoveryClient(c) return &cs diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/fake/clientset_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/fake/clientset_generated.go index acdf09f57..5cadbe261 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/fake/clientset_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/fake/clientset_generated.go @@ -25,6 +25,8 @@ import ( clientset "k8s.io/code-generator/_examples/apiserver/clientset/versioned" examplev1 "k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1" fakeexamplev1 "k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example/v1/fake" + secondexamplev1 "k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1" + fakesecondexamplev1 "k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. @@ -69,3 +71,13 @@ func (c *Clientset) ExampleV1() examplev1.ExampleV1Interface { func (c *Clientset) Example() examplev1.ExampleV1Interface { return &fakeexamplev1.FakeExampleV1{Fake: &c.Fake} } + +// SecondExampleV1 retrieves the SecondExampleV1Client +func (c *Clientset) SecondExampleV1() secondexamplev1.SecondExampleV1Interface { + return &fakesecondexamplev1.FakeSecondExampleV1{Fake: &c.Fake} +} + +// SecondExample retrieves the SecondExampleV1Client +func (c *Clientset) SecondExample() secondexamplev1.SecondExampleV1Interface { + return &fakesecondexamplev1.FakeSecondExampleV1{Fake: &c.Fake} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/fake/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/fake/register.go index c183c4906..de6b67abc 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/fake/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/fake/register.go @@ -22,6 +22,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" examplev1 "k8s.io/code-generator/_examples/apiserver/apis/example/v1" + secondexamplev1 "k8s.io/code-generator/_examples/apiserver/apis/example2/v1" ) var scheme = runtime.NewScheme() @@ -49,5 +50,6 @@ func init() { // correctly. func AddToScheme(scheme *runtime.Scheme) { examplev1.AddToScheme(scheme) + secondexamplev1.AddToScheme(scheme) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/scheme/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/scheme/register.go index 8db030f4f..d56db85bd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/scheme/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/scheme/register.go @@ -22,6 +22,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" examplev1 "k8s.io/code-generator/_examples/apiserver/apis/example/v1" + secondexamplev1 "k8s.io/code-generator/_examples/apiserver/apis/example2/v1" ) var Scheme = runtime.NewScheme() @@ -49,5 +50,6 @@ func init() { // correctly. func AddToScheme(scheme *runtime.Scheme) { examplev1.AddToScheme(scheme) + secondexamplev1.AddToScheme(scheme) } diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/batch/v1/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/doc.go diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/core_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/example2_client.go similarity index 53% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/core_client.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/example2_client.go index a3a96f850..a650d87b8 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/core_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/example2_client.go @@ -17,48 +17,28 @@ limitations under the License. package v1 import ( - v1 "k8s.io/api/core/v1" serializer "k8s.io/apimachinery/pkg/runtime/serializer" rest "k8s.io/client-go/rest" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" + v1 "k8s.io/code-generator/_examples/apiserver/apis/example2/v1" + "k8s.io/code-generator/_examples/apiserver/clientset/versioned/scheme" ) -type CoreV1Interface interface { +type SecondExampleV1Interface interface { RESTClient() rest.Interface - ConfigMapsGetter - EventsGetter - NamespacesGetter - SecretsGetter - ServicesGetter + TestTypesGetter } -// CoreV1Client is used to interact with features provided by the group. -type CoreV1Client struct { +// SecondExampleV1Client is used to interact with features provided by the example.test.apiserver.code-generator.k8s.io group. +type SecondExampleV1Client struct { restClient rest.Interface } -func (c *CoreV1Client) ConfigMaps(namespace string) ConfigMapInterface { - return newConfigMaps(c, namespace) +func (c *SecondExampleV1Client) TestTypes(namespace string) TestTypeInterface { + return newTestTypes(c, namespace) } -func (c *CoreV1Client) Events(namespace string) EventInterface { - return newEvents(c, namespace) -} - -func (c *CoreV1Client) Namespaces() NamespaceInterface { - return newNamespaces(c) -} - -func (c *CoreV1Client) Secrets(namespace string) SecretInterface { - return newSecrets(c, namespace) -} - -func (c *CoreV1Client) Services(namespace string) ServiceInterface { - return newServices(c, namespace) -} - -// NewForConfig creates a new CoreV1Client for the given config. -func NewForConfig(c *rest.Config) (*CoreV1Client, error) { +// NewForConfig creates a new SecondExampleV1Client for the given config. +func NewForConfig(c *rest.Config) (*SecondExampleV1Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err @@ -67,12 +47,12 @@ func NewForConfig(c *rest.Config) (*CoreV1Client, error) { if err != nil { return nil, err } - return &CoreV1Client{client}, nil + return &SecondExampleV1Client{client}, nil } -// NewForConfigOrDie creates a new CoreV1Client for the given config and +// NewForConfigOrDie creates a new SecondExampleV1Client for the given config and // panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *CoreV1Client { +func NewForConfigOrDie(c *rest.Config) *SecondExampleV1Client { client, err := NewForConfig(c) if err != nil { panic(err) @@ -80,15 +60,15 @@ func NewForConfigOrDie(c *rest.Config) *CoreV1Client { return client } -// New creates a new CoreV1Client for the given RESTClient. -func New(c rest.Interface) *CoreV1Client { - return &CoreV1Client{c} +// New creates a new SecondExampleV1Client for the given RESTClient. +func New(c rest.Interface) *SecondExampleV1Client { + return &SecondExampleV1Client{c} } func setConfigDefaults(config *rest.Config) error { gv := v1.SchemeGroupVersion config.GroupVersion = &gv - config.APIPath = "/api" + config.APIPath = "/apis" config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} if config.UserAgent == "" { @@ -100,7 +80,7 @@ func setConfigDefaults(config *rest.Config) error { // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *CoreV1Client) RESTClient() rest.Interface { +func (c *SecondExampleV1Client) RESTClient() rest.Interface { if c == nil { return nil } diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/doc.go diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_core_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_example2_client.go similarity index 54% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_core_client.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_example2_client.go index 6e6b30cfe..8095faf82 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/fake_core_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_example2_client.go @@ -19,36 +19,20 @@ package fake import ( rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" - v1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1" + v1 "k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1" ) -type FakeCoreV1 struct { +type FakeSecondExampleV1 struct { *testing.Fake } -func (c *FakeCoreV1) ConfigMaps(namespace string) v1.ConfigMapInterface { - return &FakeConfigMaps{c, namespace} -} - -func (c *FakeCoreV1) Events(namespace string) v1.EventInterface { - return &FakeEvents{c, namespace} -} - -func (c *FakeCoreV1) Namespaces() v1.NamespaceInterface { - return &FakeNamespaces{c} -} - -func (c *FakeCoreV1) Secrets(namespace string) v1.SecretInterface { - return &FakeSecrets{c, namespace} -} - -func (c *FakeCoreV1) Services(namespace string) v1.ServiceInterface { - return &FakeServices{c, namespace} +func (c *FakeSecondExampleV1) TestTypes(namespace string) v1.TestTypeInterface { + return &FakeTestTypes{c, namespace} } // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *FakeCoreV1) RESTClient() rest.Interface { +func (c *FakeSecondExampleV1) RESTClient() rest.Interface { var ret *rest.RESTClient return ret } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_testtype.go new file mode 100644 index 000000000..31a51e738 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/fake/fake_testtype.go @@ -0,0 +1,138 @@ +/* +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 fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" + example2_v1 "k8s.io/code-generator/_examples/apiserver/apis/example2/v1" +) + +// FakeTestTypes implements TestTypeInterface +type FakeTestTypes struct { + Fake *FakeSecondExampleV1 + ns string +} + +var testtypesResource = schema.GroupVersionResource{Group: "example.test.apiserver.code-generator.k8s.io", Version: "v1", Resource: "testtypes"} + +var testtypesKind = schema.GroupVersionKind{Group: "example.test.apiserver.code-generator.k8s.io", Version: "v1", Kind: "TestType"} + +// Get takes name of the testType, and returns the corresponding testType object, and an error if there is any. +func (c *FakeTestTypes) Get(name string, options v1.GetOptions) (result *example2_v1.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(testtypesResource, c.ns, name), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} + +// List takes label and field selectors, and returns the list of TestTypes that match those selectors. +func (c *FakeTestTypes) List(opts v1.ListOptions) (result *example2_v1.TestTypeList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(testtypesResource, testtypesKind, c.ns, opts), &example2_v1.TestTypeList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &example2_v1.TestTypeList{} + for _, item := range obj.(*example2_v1.TestTypeList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested testTypes. +func (c *FakeTestTypes) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(testtypesResource, c.ns, opts)) + +} + +// Create takes the representation of a testType and creates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *FakeTestTypes) Create(testType *example2_v1.TestType) (result *example2_v1.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(testtypesResource, c.ns, testType), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} + +// Update takes the representation of a testType and updates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *FakeTestTypes) Update(testType *example2_v1.TestType) (result *example2_v1.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(testtypesResource, c.ns, testType), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeTestTypes) UpdateStatus(testType *example2_v1.TestType) (*example2_v1.TestType, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(testtypesResource, "status", c.ns, testType), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} + +// Delete takes name of the testType and deletes it. Returns an error if one occurs. +func (c *FakeTestTypes) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(testtypesResource, c.ns, name), &example2_v1.TestType{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(testtypesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &example2_v1.TestTypeList{}) + return err +} + +// Patch applies the patch and returns the patched testType. +func (c *FakeTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example2_v1.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/generated_expansion.go similarity index 92% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/generated_expansion.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/generated_expansion.go index effefbd50..426aa27c7 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/generated_expansion.go @@ -16,4 +16,4 @@ limitations under the License. package v1 -type HorizontalPodAutoscalerExpansion interface{} +type TestTypeExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/testtype.go new file mode 100644 index 000000000..00e68ae08 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/clientset/versioned/typed/example2/v1/testtype.go @@ -0,0 +1,172 @@ +/* +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 ( + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" + v1 "k8s.io/code-generator/_examples/apiserver/apis/example2/v1" + scheme "k8s.io/code-generator/_examples/apiserver/clientset/versioned/scheme" +) + +// TestTypesGetter has a method to return a TestTypeInterface. +// A group's client should implement this interface. +type TestTypesGetter interface { + TestTypes(namespace string) TestTypeInterface +} + +// TestTypeInterface has methods to work with TestType resources. +type TestTypeInterface interface { + Create(*v1.TestType) (*v1.TestType, error) + Update(*v1.TestType) (*v1.TestType, error) + UpdateStatus(*v1.TestType) (*v1.TestType, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.TestType, error) + List(opts meta_v1.ListOptions) (*v1.TestTypeList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.TestType, err error) + TestTypeExpansion +} + +// testTypes implements TestTypeInterface +type testTypes struct { + client rest.Interface + ns string +} + +// newTestTypes returns a TestTypes +func newTestTypes(c *SecondExampleV1Client, namespace string) *testTypes { + return &testTypes{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the testType, and returns the corresponding testType object, and an error if there is any. +func (c *testTypes) Get(name string, options meta_v1.GetOptions) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Get(). + Namespace(c.ns). + Resource("testtypes"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of TestTypes that match those selectors. +func (c *testTypes) List(opts meta_v1.ListOptions) (result *v1.TestTypeList, err error) { + result = &v1.TestTypeList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("testtypes"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested testTypes. +func (c *testTypes) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("testtypes"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a testType and creates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *testTypes) Create(testType *v1.TestType) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Post(). + Namespace(c.ns). + Resource("testtypes"). + Body(testType). + Do(). + Into(result) + return +} + +// Update takes the representation of a testType and updates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *testTypes) Update(testType *v1.TestType) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Put(). + Namespace(c.ns). + Resource("testtypes"). + Name(testType.Name). + Body(testType). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *testTypes) UpdateStatus(testType *v1.TestType) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Put(). + Namespace(c.ns). + Resource("testtypes"). + Name(testType.Name). + SubResource("status"). + Body(testType). + Do(). + Into(result) + return +} + +// Delete takes name of the testType and deletes it. Returns an error if one occurs. +func (c *testTypes) Delete(name string, options *meta_v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("testtypes"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *testTypes) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("testtypes"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched testType. +func (c *testTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("testtypes"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/interface.go index 2d0d7b318..74626cd1e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1 returns a new v1.Interface. func (g *group) V1() v1.Interface { - return v1.New(g.SharedInformerFactory) + return v1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/v1/interface.go index 2ebac67fc..613797aea 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/v1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/v1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // TestTypes returns a TestTypeInformer. func (v *version) TestTypes() TestTypeInformer { - return &testTypeInformer{factory: v.SharedInformerFactory} + return &testTypeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/v1/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/v1/testtype.go index 55782d81b..e6c7fca34 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/v1/testtype.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example/v1/testtype.go @@ -38,19 +38,34 @@ type TestTypeInformer interface { } type testTypeInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewTestTypeInformer constructs a new informer for TestType 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 NewTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredTestTypeInformer constructs a new informer for TestType 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 NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ExampleV1().TestTypes(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ExampleV1().TestTypes(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer ) } -func defaultTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewTestTypeInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *testTypeInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *testTypeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&example_v1.TestType{}, defaultTestTypeInformer) + return f.factory.InformerFor(&example_v1.TestType{}, f.defaultInformer) } func (f *testTypeInformer) Lister() v1.TestTypeLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/interface.go new file mode 100644 index 000000000..bb0656b32 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/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 example + +import ( + v1 "k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/v1" + internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // V1 provides access to shared informers for resources in V1. + V1() v1.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} +} + +// V1 returns a new v1.Interface. +func (g *group) V1() v1.Interface { + return v1.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/v1/interface.go new file mode 100644 index 000000000..613797aea --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/v1/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 v1 + +import ( + internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // TestTypes returns a TestTypeInformer. + TestTypes() TestTypeInformer +} + +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} +} + +// TestTypes returns a TestTypeInformer. +func (v *version) TestTypes() TestTypeInformer { + return &testTypeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/v1/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/v1/testtype.go new file mode 100644 index 000000000..4f90a6c68 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2/v1/testtype.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 v1 + +import ( + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" + example2_v1 "k8s.io/code-generator/_examples/apiserver/apis/example2/v1" + versioned "k8s.io/code-generator/_examples/apiserver/clientset/versioned" + internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces" + v1 "k8s.io/code-generator/_examples/apiserver/listers/example2/v1" + time "time" +) + +// TestTypeInformer provides access to a shared informer and lister for +// TestTypes. +type TestTypeInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.TestTypeLister +} + +type testTypeInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewTestTypeInformer constructs a new informer for TestType 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 NewTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredTestTypeInformer constructs a new informer for TestType 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 NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SecondExampleV1().TestTypes(namespace).List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SecondExampleV1().TestTypes(namespace).Watch(options) + }, + }, + &example2_v1.TestType{}, + resyncPeriod, + indexers, + ) +} + +func (f *testTypeInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *testTypeInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&example2_v1.TestType{}, f.defaultInformer) +} + +func (f *testTypeInformer) Lister() v1.TestTypeLister { + return v1.NewTestTypeLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/factory.go index cfa88f8ea..da22407d4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/factory.go @@ -19,11 +19,13 @@ limitations under the License. package externalversions import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" versioned "k8s.io/code-generator/_examples/apiserver/clientset/versioned" example "k8s.io/code-generator/_examples/apiserver/informers/externalversions/example" + example2 "k8s.io/code-generator/_examples/apiserver/informers/externalversions/example2" internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces" reflect "reflect" sync "sync" @@ -31,9 +33,11 @@ import ( ) type sharedInformerFactory struct { - client versioned.Interface - lock sync.Mutex - defaultResync time.Duration + client versioned.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -43,8 +47,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -111,8 +124,13 @@ type SharedInformerFactory interface { WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool Example() example.Interface + SecondExample() example2.Interface } func (f *sharedInformerFactory) Example() example.Interface { - return example.New(f) + return example.New(f, f.namespace, f.tweakListOptions) +} + +func (f *sharedInformerFactory) SecondExample() example2.Interface { + return example2.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/generic.go index 08c415c64..33b226db0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/generic.go @@ -23,6 +23,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" v1 "k8s.io/code-generator/_examples/apiserver/apis/example/v1" + example2_v1 "k8s.io/code-generator/_examples/apiserver/apis/example2/v1" ) // GenericInformer is type of SharedIndexInformer which will locate and delegate to other @@ -51,10 +52,14 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Example, Version=V1 + // Group=example.apiserver.code-generator.k8s.io, Version=v1 case v1.SchemeGroupVersion.WithResource("testtypes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Example().V1().TestTypes().Informer()}, nil + // Group=example.test.apiserver.code-generator.k8s.io, Version=v1 + case example2_v1.SchemeGroupVersion.WithResource("testtypes"): + return &genericInformer{resource: resource.GroupResource(), informer: f.SecondExample().V1().TestTypes().Informer()}, nil + } return nil, fmt.Errorf("no informer found for %v", resource) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces/factory_interfaces.go index 32b2fdd83..dd26ca972 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -19,6 +19,7 @@ limitations under the License. package internalinterfaces import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" versioned "k8s.io/code-generator/_examples/apiserver/clientset/versioned" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/interface.go index 5fd9bf09a..646527b5a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/internalversion/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/internalversion/interface.go index 44aefe006..5fb90301b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/internalversion/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // TestTypes returns a TestTypeInformer. func (v *version) TestTypes() TestTypeInformer { - return &testTypeInformer{factory: v.SharedInformerFactory} + return &testTypeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/internalversion/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/internalversion/testtype.go index 7480db526..c25308cf8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/internalversion/testtype.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example/internalversion/testtype.go @@ -38,19 +38,34 @@ type TestTypeInformer interface { } type testTypeInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewTestTypeInformer constructs a new informer for TestType 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 NewTestTypeInformer(client clientset_internalversion.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredTestTypeInformer constructs a new informer for TestType 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 NewFilteredTestTypeInformer(client clientset_internalversion.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.Example().TestTypes(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Example().TestTypes(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewTestTypeInformer(client clientset_internalversion.Interface, namespace s ) } -func defaultTestTypeInformer(client clientset_internalversion.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewTestTypeInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *testTypeInformer) defaultInformer(client clientset_internalversion.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *testTypeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&example.TestType{}, defaultTestTypeInformer) + return f.factory.InformerFor(&example.TestType{}, f.defaultInformer) } func (f *testTypeInformer) Lister() internalversion.TestTypeLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/interface.go new file mode 100644 index 000000000..71d3de466 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/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 example + +import ( + internalversion "k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/internalversion" + internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // InternalVersion provides access to shared informers for resources in InternalVersion. + InternalVersion() internalversion.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} +} + +// InternalVersion returns a new internalversion.Interface. +func (g *group) InternalVersion() internalversion.Interface { + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/internalversion/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/internalversion/interface.go new file mode 100644 index 000000000..5fb90301b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/internalversion/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 internalversion + +import ( + internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // TestTypes returns a TestTypeInformer. + TestTypes() TestTypeInformer +} + +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} +} + +// TestTypes returns a TestTypeInformer. +func (v *version) TestTypes() TestTypeInformer { + return &testTypeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/internalversion/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/internalversion/testtype.go new file mode 100644 index 000000000..5b10a96ed --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2/internalversion/testtype.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 internalversion + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" + example2 "k8s.io/code-generator/_examples/apiserver/apis/example2" + clientset_internalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion" + internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces" + internalversion "k8s.io/code-generator/_examples/apiserver/listers/example2/internalversion" + time "time" +) + +// TestTypeInformer provides access to a shared informer and lister for +// TestTypes. +type TestTypeInformer interface { + Informer() cache.SharedIndexInformer + Lister() internalversion.TestTypeLister +} + +type testTypeInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewTestTypeInformer constructs a new informer for TestType 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 NewTestTypeInformer(client clientset_internalversion.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredTestTypeInformer constructs a new informer for TestType 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 NewFilteredTestTypeInformer(client clientset_internalversion.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.SecondExample().TestTypes(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SecondExample().TestTypes(namespace).Watch(options) + }, + }, + &example2.TestType{}, + resyncPeriod, + indexers, + ) +} + +func (f *testTypeInformer) defaultInformer(client clientset_internalversion.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *testTypeInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&example2.TestType{}, f.defaultInformer) +} + +func (f *testTypeInformer) Lister() internalversion.TestTypeLister { + return internalversion.NewTestTypeLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/factory.go index f3dc2bc5a..cc7b7551d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/factory.go @@ -19,11 +19,13 @@ limitations under the License. package internalversion import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" internalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion" example "k8s.io/code-generator/_examples/apiserver/informers/internalversion/example" + example2 "k8s.io/code-generator/_examples/apiserver/informers/internalversion/example2" internalinterfaces "k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces" reflect "reflect" sync "sync" @@ -31,9 +33,11 @@ import ( ) type sharedInformerFactory struct { - client internalversion.Interface - lock sync.Mutex - defaultResync time.Duration + client internalversion.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -43,8 +47,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client internalversion.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client internalversion.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -111,8 +124,13 @@ type SharedInformerFactory interface { WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool Example() example.Interface + SecondExample() example2.Interface } func (f *sharedInformerFactory) Example() example.Interface { - return example.New(f) + return example.New(f, f.namespace, f.tweakListOptions) +} + +func (f *sharedInformerFactory) SecondExample() example2.Interface { + return example2.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/generic.go index 32f77b40a..f93c4d8e1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/generic.go @@ -23,6 +23,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" example "k8s.io/code-generator/_examples/apiserver/apis/example" + example2 "k8s.io/code-generator/_examples/apiserver/apis/example2" ) // GenericInformer is type of SharedIndexInformer which will locate and delegate to other @@ -51,10 +52,14 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Example, Version=InternalVersion + // Group=example.apiserver.code-generator.k8s.io, Version=internalVersion case example.SchemeGroupVersion.WithResource("testtypes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Example().InternalVersion().TestTypes().Informer()}, nil + // Group=example.test.apiserver.code-generator.k8s.io, Version=internalVersion + case example2.SchemeGroupVersion.WithResource("testtypes"): + return &genericInformer{resource: resource.GroupResource(), informer: f.SecondExample().InternalVersion().TestTypes().Informer()}, nil + } return nil, fmt.Errorf("no informer found for %v", resource) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces/factory_interfaces.go index 8548eed61..52c5ba469 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/informers/internalversion/internalinterfaces/factory_interfaces.go @@ -19,6 +19,7 @@ limitations under the License. package internalinterfaces import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" internalversion "k8s.io/code-generator/_examples/apiserver/clientset/internalversion" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/internalversion/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/internalversion/expansion_generated.go new file mode 100644 index 000000000..6fb3372a3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/internalversion/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 internalversion + +// TestTypeListerExpansion allows custom methods to be added to +// TestTypeLister. +type TestTypeListerExpansion interface{} + +// TestTypeNamespaceListerExpansion allows custom methods to be added to +// TestTypeNamespaceLister. +type TestTypeNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/internalversion/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/internalversion/testtype.go new file mode 100644 index 000000000..0a645aaf1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/internalversion/testtype.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 internalversion + +import ( + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + example2 "k8s.io/code-generator/_examples/apiserver/apis/example2" +) + +// TestTypeLister helps list TestTypes. +type TestTypeLister interface { + // List lists all TestTypes in the indexer. + List(selector labels.Selector) (ret []*example2.TestType, err error) + // TestTypes returns an object that can list and get TestTypes. + TestTypes(namespace string) TestTypeNamespaceLister + TestTypeListerExpansion +} + +// testTypeLister implements the TestTypeLister interface. +type testTypeLister struct { + indexer cache.Indexer +} + +// NewTestTypeLister returns a new TestTypeLister. +func NewTestTypeLister(indexer cache.Indexer) TestTypeLister { + return &testTypeLister{indexer: indexer} +} + +// List lists all TestTypes in the indexer. +func (s *testTypeLister) List(selector labels.Selector) (ret []*example2.TestType, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*example2.TestType)) + }) + return ret, err +} + +// TestTypes returns an object that can list and get TestTypes. +func (s *testTypeLister) TestTypes(namespace string) TestTypeNamespaceLister { + return testTypeNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// TestTypeNamespaceLister helps list and get TestTypes. +type TestTypeNamespaceLister interface { + // List lists all TestTypes in the indexer for a given namespace. + List(selector labels.Selector) (ret []*example2.TestType, err error) + // Get retrieves the TestType from the indexer for a given namespace and name. + Get(name string) (*example2.TestType, error) + TestTypeNamespaceListerExpansion +} + +// testTypeNamespaceLister implements the TestTypeNamespaceLister +// interface. +type testTypeNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all TestTypes in the indexer for a given namespace. +func (s testTypeNamespaceLister) List(selector labels.Selector) (ret []*example2.TestType, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*example2.TestType)) + }) + return ret, err +} + +// Get retrieves the TestType from the indexer for a given namespace and name. +func (s testTypeNamespaceLister) Get(name string) (*example2.TestType, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(example2.Resource("testtype"), name) + } + return obj.(*example2.TestType), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/v1/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/v1/expansion_generated.go new file mode 100644 index 000000000..f4ece18cc --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/v1/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 v1 + +// TestTypeListerExpansion allows custom methods to be added to +// TestTypeLister. +type TestTypeListerExpansion interface{} + +// TestTypeNamespaceListerExpansion allows custom methods to be added to +// TestTypeNamespaceLister. +type TestTypeNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/v1/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/v1/testtype.go new file mode 100644 index 000000000..db56b8074 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/apiserver/listers/example2/v1/testtype.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 v1 + +import ( + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + v1 "k8s.io/code-generator/_examples/apiserver/apis/example2/v1" +) + +// TestTypeLister helps list TestTypes. +type TestTypeLister interface { + // List lists all TestTypes in the indexer. + List(selector labels.Selector) (ret []*v1.TestType, err error) + // TestTypes returns an object that can list and get TestTypes. + TestTypes(namespace string) TestTypeNamespaceLister + TestTypeListerExpansion +} + +// testTypeLister implements the TestTypeLister interface. +type testTypeLister struct { + indexer cache.Indexer +} + +// NewTestTypeLister returns a new TestTypeLister. +func NewTestTypeLister(indexer cache.Indexer) TestTypeLister { + return &testTypeLister{indexer: indexer} +} + +// List lists all TestTypes in the indexer. +func (s *testTypeLister) List(selector labels.Selector) (ret []*v1.TestType, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.TestType)) + }) + return ret, err +} + +// TestTypes returns an object that can list and get TestTypes. +func (s *testTypeLister) TestTypes(namespace string) TestTypeNamespaceLister { + return testTypeNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// TestTypeNamespaceLister helps list and get TestTypes. +type TestTypeNamespaceLister interface { + // List lists all TestTypes in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1.TestType, err error) + // Get retrieves the TestType from the indexer for a given namespace and name. + Get(name string) (*v1.TestType, error) + TestTypeNamespaceListerExpansion +} + +// testTypeNamespaceLister implements the TestTypeNamespaceLister +// interface. +type testTypeNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all TestTypes in the indexer for a given namespace. +func (s testTypeNamespaceLister) List(selector labels.Selector) (ret []*v1.TestType, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.TestType)) + }) + return ret, err +} + +// Get retrieves the TestType from the indexer for a given namespace and name. +func (s testTypeNamespaceLister) Get(name string) (*v1.TestType, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("testtype"), name) + } + return obj.(*v1.TestType), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/doc.go index 53695eb99..08f1279fb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=example.crd.code-generator.k8s.io package v1 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/register.go index 97603b434..58371e0e9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/register.go @@ -44,7 +44,7 @@ func Resource(resource string) schema.GroupResource { return SchemeGroupVersion.WithResource(resource).GroupResource() } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &TestType{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/zz_generated.deepcopy.go index da6ba5e95..35ebeb237 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example/v1/zz_generated.deepcopy.go @@ -21,36 +21,9 @@ limitations under the License. package v1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestType).DeepCopyInto(out.(*TestType)) - return nil - }, InType: reflect.TypeOf(&TestType{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestTypeList).DeepCopyInto(out.(*TestTypeList)) - return nil - }, InType: reflect.TypeOf(&TestTypeList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*TestTypeStatus).DeepCopyInto(out.(*TestTypeStatus)) - return nil - }, InType: reflect.TypeOf(&TestTypeStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TestType) DeepCopyInto(out *TestType) { *out = *in diff --git a/vendor/k8s.io/kubernetes/federation/apis/federation/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/doc.go similarity index 82% rename from vendor/k8s.io/kubernetes/federation/apis/federation/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/doc.go index 4c51dfeeb..702b71634 100644 --- a/vendor/k8s.io/kubernetes/federation/apis/federation/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/doc.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register - -package federation // import "k8s.io/kubernetes/federation/apis/federation" +// +k8s:deepcopy-gen=package +// +groupName=example.test.crd.code-generator.k8s.io +// +groupGoName=SecondExample +package v1 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/register.go new file mode 100644 index 000000000..d0a852a31 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/register.go @@ -0,0 +1,59 @@ +/* +Copyright 2015 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 ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +var SchemeGroupVersion = schema.GroupVersion{Group: "example.test.crd.code-generator.k8s.io", Version: "v1"} + +var ( + // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. + // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + SchemeBuilder runtime.SchemeBuilder + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addKnownTypes) +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &TestType{}, + &TestTypeList{}, + ) + + scheme.AddKnownTypes(SchemeGroupVersion, + &metav1.Status{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/types.go new file mode 100644 index 000000000..5c2ebc4d6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/types.go @@ -0,0 +1,47 @@ +/* +Copyright 2015 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 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// TestType is a top-level type. A client is created for it. +type TestType struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ObjectMeta `json:"metadata,omitempty"` + // +optional + Status TestTypeStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// TestTypeList is a top-level list type. The client methods for lists are automatically created. +// You are not supposed to create a separated client for this one. +type TestTypeList struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ListMeta `json:"metadata,omitempty"` + + Items []TestType `json:"items"` +} + +type TestTypeStatus struct { + Blah string +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/zz_generated.deepcopy.go new file mode 100644 index 000000000..35ebeb237 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/apis/example2/v1/zz_generated.deepcopy.go @@ -0,0 +1,103 @@ +// +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 v1 + +import ( + 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 *TestType) DeepCopyInto(out *TestType) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestType. +func (in *TestType) DeepCopy() *TestType { + if in == nil { + return nil + } + out := new(TestType) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TestType) 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 *TestTypeList) DeepCopyInto(out *TestTypeList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]TestType, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestTypeList. +func (in *TestTypeList) DeepCopy() *TestTypeList { + if in == nil { + return nil + } + out := new(TestTypeList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TestTypeList) 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 *TestTypeStatus) DeepCopyInto(out *TestTypeStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestTypeStatus. +func (in *TestTypeStatus) DeepCopy() *TestTypeStatus { + if in == nil { + return nil + } + out := new(TestTypeStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/clientset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/clientset.go index be971cbd9..9d9697fe8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/clientset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/clientset.go @@ -22,6 +22,7 @@ import ( rest "k8s.io/client-go/rest" flowcontrol "k8s.io/client-go/util/flowcontrol" examplev1 "k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1" + secondexamplev1 "k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1" ) type Interface interface { @@ -29,13 +30,17 @@ type Interface interface { ExampleV1() examplev1.ExampleV1Interface // Deprecated: please explicitly pick a version if possible. Example() examplev1.ExampleV1Interface + SecondExampleV1() secondexamplev1.SecondExampleV1Interface + // Deprecated: please explicitly pick a version if possible. + SecondExample() secondexamplev1.SecondExampleV1Interface } // Clientset contains the clients for groups. Each group has exactly one // version included in a Clientset. type Clientset struct { *discovery.DiscoveryClient - exampleV1 *examplev1.ExampleV1Client + exampleV1 *examplev1.ExampleV1Client + secondExampleV1 *secondexamplev1.SecondExampleV1Client } // ExampleV1 retrieves the ExampleV1Client @@ -49,6 +54,17 @@ func (c *Clientset) Example() examplev1.ExampleV1Interface { return c.exampleV1 } +// SecondExampleV1 retrieves the SecondExampleV1Client +func (c *Clientset) SecondExampleV1() secondexamplev1.SecondExampleV1Interface { + return c.secondExampleV1 +} + +// Deprecated: SecondExample retrieves the default version of SecondExampleClient. +// Please explicitly pick a version. +func (c *Clientset) SecondExample() secondexamplev1.SecondExampleV1Interface { + return c.secondExampleV1 +} + // Discovery retrieves the DiscoveryClient func (c *Clientset) Discovery() discovery.DiscoveryInterface { if c == nil { @@ -69,6 +85,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.secondExampleV1, err = secondexamplev1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) if err != nil { @@ -83,6 +103,7 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { func NewForConfigOrDie(c *rest.Config) *Clientset { var cs Clientset cs.exampleV1 = examplev1.NewForConfigOrDie(c) + cs.secondExampleV1 = secondexamplev1.NewForConfigOrDie(c) cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) return &cs @@ -92,6 +113,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { func New(c rest.Interface) *Clientset { var cs Clientset cs.exampleV1 = examplev1.New(c) + cs.secondExampleV1 = secondexamplev1.New(c) cs.DiscoveryClient = discovery.NewDiscoveryClient(c) return &cs diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/fake/clientset_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/fake/clientset_generated.go index 712bf8cf9..04135606b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/fake/clientset_generated.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/fake/clientset_generated.go @@ -25,6 +25,8 @@ import ( clientset "k8s.io/code-generator/_examples/crd/clientset/versioned" examplev1 "k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1" fakeexamplev1 "k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example/v1/fake" + secondexamplev1 "k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1" + fakesecondexamplev1 "k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. @@ -69,3 +71,13 @@ func (c *Clientset) ExampleV1() examplev1.ExampleV1Interface { func (c *Clientset) Example() examplev1.ExampleV1Interface { return &fakeexamplev1.FakeExampleV1{Fake: &c.Fake} } + +// SecondExampleV1 retrieves the SecondExampleV1Client +func (c *Clientset) SecondExampleV1() secondexamplev1.SecondExampleV1Interface { + return &fakesecondexamplev1.FakeSecondExampleV1{Fake: &c.Fake} +} + +// SecondExample retrieves the SecondExampleV1Client +func (c *Clientset) SecondExample() secondexamplev1.SecondExampleV1Interface { + return &fakesecondexamplev1.FakeSecondExampleV1{Fake: &c.Fake} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/fake/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/fake/register.go index 777eed958..9780e030d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/fake/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/fake/register.go @@ -22,6 +22,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" examplev1 "k8s.io/code-generator/_examples/crd/apis/example/v1" + secondexamplev1 "k8s.io/code-generator/_examples/crd/apis/example2/v1" ) var scheme = runtime.NewScheme() @@ -49,5 +50,6 @@ func init() { // correctly. func AddToScheme(scheme *runtime.Scheme) { examplev1.AddToScheme(scheme) + secondexamplev1.AddToScheme(scheme) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/scheme/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/scheme/register.go index 2b6ee96f4..6edae5dc4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/scheme/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/scheme/register.go @@ -22,6 +22,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" examplev1 "k8s.io/code-generator/_examples/crd/apis/example/v1" + secondexamplev1 "k8s.io/code-generator/_examples/crd/apis/example2/v1" ) var Scheme = runtime.NewScheme() @@ -49,5 +50,6 @@ func init() { // correctly. func AddToScheme(scheme *runtime.Scheme) { examplev1.AddToScheme(scheme) + secondexamplev1.AddToScheme(scheme) } diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/doc.go diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/autoscaling_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/example2_client.go similarity index 60% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/autoscaling_client.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/example2_client.go index af02fdc6e..373fad037 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/autoscaling_client.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/example2_client.go @@ -17,28 +17,28 @@ limitations under the License. package v1 import ( - v1 "k8s.io/api/autoscaling/v1" serializer "k8s.io/apimachinery/pkg/runtime/serializer" rest "k8s.io/client-go/rest" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/scheme" + v1 "k8s.io/code-generator/_examples/crd/apis/example2/v1" + "k8s.io/code-generator/_examples/crd/clientset/versioned/scheme" ) -type AutoscalingV1Interface interface { +type SecondExampleV1Interface interface { RESTClient() rest.Interface - HorizontalPodAutoscalersGetter + TestTypesGetter } -// AutoscalingV1Client is used to interact with features provided by the autoscaling group. -type AutoscalingV1Client struct { +// SecondExampleV1Client is used to interact with features provided by the example.test.crd.code-generator.k8s.io group. +type SecondExampleV1Client struct { restClient rest.Interface } -func (c *AutoscalingV1Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface { - return newHorizontalPodAutoscalers(c, namespace) +func (c *SecondExampleV1Client) TestTypes(namespace string) TestTypeInterface { + return newTestTypes(c, namespace) } -// NewForConfig creates a new AutoscalingV1Client for the given config. -func NewForConfig(c *rest.Config) (*AutoscalingV1Client, error) { +// NewForConfig creates a new SecondExampleV1Client for the given config. +func NewForConfig(c *rest.Config) (*SecondExampleV1Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err @@ -47,12 +47,12 @@ func NewForConfig(c *rest.Config) (*AutoscalingV1Client, error) { if err != nil { return nil, err } - return &AutoscalingV1Client{client}, nil + return &SecondExampleV1Client{client}, nil } -// NewForConfigOrDie creates a new AutoscalingV1Client for the given config and +// NewForConfigOrDie creates a new SecondExampleV1Client for the given config and // panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *AutoscalingV1Client { +func NewForConfigOrDie(c *rest.Config) *SecondExampleV1Client { client, err := NewForConfig(c) if err != nil { panic(err) @@ -60,9 +60,9 @@ func NewForConfigOrDie(c *rest.Config) *AutoscalingV1Client { return client } -// New creates a new AutoscalingV1Client for the given RESTClient. -func New(c rest.Interface) *AutoscalingV1Client { - return &AutoscalingV1Client{c} +// New creates a new SecondExampleV1Client for the given RESTClient. +func New(c rest.Interface) *SecondExampleV1Client { + return &SecondExampleV1Client{c} } func setConfigDefaults(config *rest.Config) error { @@ -80,7 +80,7 @@ func setConfigDefaults(config *rest.Config) error { // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *AutoscalingV1Client) RESTClient() rest.Interface { +func (c *SecondExampleV1Client) RESTClient() rest.Interface { if c == nil { return nil } diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/doc.go similarity index 100% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/doc.go diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_example2_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_example2_client.go new file mode 100644 index 000000000..05ec52f32 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_example2_client.go @@ -0,0 +1,38 @@ +/* +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 fake + +import ( + rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" + v1 "k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1" +) + +type FakeSecondExampleV1 struct { + *testing.Fake +} + +func (c *FakeSecondExampleV1) TestTypes(namespace string) v1.TestTypeInterface { + return &FakeTestTypes{c, namespace} +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeSecondExampleV1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_testtype.go new file mode 100644 index 000000000..594c69d1e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/fake/fake_testtype.go @@ -0,0 +1,138 @@ +/* +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 fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" + example2_v1 "k8s.io/code-generator/_examples/crd/apis/example2/v1" +) + +// FakeTestTypes implements TestTypeInterface +type FakeTestTypes struct { + Fake *FakeSecondExampleV1 + ns string +} + +var testtypesResource = schema.GroupVersionResource{Group: "example.test.crd.code-generator.k8s.io", Version: "v1", Resource: "testtypes"} + +var testtypesKind = schema.GroupVersionKind{Group: "example.test.crd.code-generator.k8s.io", Version: "v1", Kind: "TestType"} + +// Get takes name of the testType, and returns the corresponding testType object, and an error if there is any. +func (c *FakeTestTypes) Get(name string, options v1.GetOptions) (result *example2_v1.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(testtypesResource, c.ns, name), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} + +// List takes label and field selectors, and returns the list of TestTypes that match those selectors. +func (c *FakeTestTypes) List(opts v1.ListOptions) (result *example2_v1.TestTypeList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(testtypesResource, testtypesKind, c.ns, opts), &example2_v1.TestTypeList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &example2_v1.TestTypeList{} + for _, item := range obj.(*example2_v1.TestTypeList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested testTypes. +func (c *FakeTestTypes) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(testtypesResource, c.ns, opts)) + +} + +// Create takes the representation of a testType and creates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *FakeTestTypes) Create(testType *example2_v1.TestType) (result *example2_v1.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(testtypesResource, c.ns, testType), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} + +// Update takes the representation of a testType and updates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *FakeTestTypes) Update(testType *example2_v1.TestType) (result *example2_v1.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(testtypesResource, c.ns, testType), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeTestTypes) UpdateStatus(testType *example2_v1.TestType) (*example2_v1.TestType, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(testtypesResource, "status", c.ns, testType), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} + +// Delete takes name of the testType and deletes it. Returns an error if one occurs. +func (c *FakeTestTypes) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(testtypesResource, c.ns, name), &example2_v1.TestType{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(testtypesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &example2_v1.TestTypeList{}) + return err +} + +// Patch applies the patch and returns the patched testType. +func (c *FakeTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example2_v1.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(testtypesResource, c.ns, name, data, subresources...), &example2_v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*example2_v1.TestType), err +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/generated_expansion.go similarity index 91% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/generated_expansion.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/generated_expansion.go index fca6b5149..426aa27c7 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/generated_expansion.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1beta1 +package v1 -type ClusterExpansion interface{} +type TestTypeExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/testtype.go new file mode 100644 index 000000000..ca9ce1c54 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/clientset/versioned/typed/example2/v1/testtype.go @@ -0,0 +1,172 @@ +/* +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 ( + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" + v1 "k8s.io/code-generator/_examples/crd/apis/example2/v1" + scheme "k8s.io/code-generator/_examples/crd/clientset/versioned/scheme" +) + +// TestTypesGetter has a method to return a TestTypeInterface. +// A group's client should implement this interface. +type TestTypesGetter interface { + TestTypes(namespace string) TestTypeInterface +} + +// TestTypeInterface has methods to work with TestType resources. +type TestTypeInterface interface { + Create(*v1.TestType) (*v1.TestType, error) + Update(*v1.TestType) (*v1.TestType, error) + UpdateStatus(*v1.TestType) (*v1.TestType, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.TestType, error) + List(opts meta_v1.ListOptions) (*v1.TestTypeList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.TestType, err error) + TestTypeExpansion +} + +// testTypes implements TestTypeInterface +type testTypes struct { + client rest.Interface + ns string +} + +// newTestTypes returns a TestTypes +func newTestTypes(c *SecondExampleV1Client, namespace string) *testTypes { + return &testTypes{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the testType, and returns the corresponding testType object, and an error if there is any. +func (c *testTypes) Get(name string, options meta_v1.GetOptions) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Get(). + Namespace(c.ns). + Resource("testtypes"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of TestTypes that match those selectors. +func (c *testTypes) List(opts meta_v1.ListOptions) (result *v1.TestTypeList, err error) { + result = &v1.TestTypeList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("testtypes"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested testTypes. +func (c *testTypes) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("testtypes"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a testType and creates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *testTypes) Create(testType *v1.TestType) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Post(). + Namespace(c.ns). + Resource("testtypes"). + Body(testType). + Do(). + Into(result) + return +} + +// Update takes the representation of a testType and updates it. Returns the server's representation of the testType, and an error, if there is any. +func (c *testTypes) Update(testType *v1.TestType) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Put(). + Namespace(c.ns). + Resource("testtypes"). + Name(testType.Name). + Body(testType). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *testTypes) UpdateStatus(testType *v1.TestType) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Put(). + Namespace(c.ns). + Resource("testtypes"). + Name(testType.Name). + SubResource("status"). + Body(testType). + Do(). + Into(result) + return +} + +// Delete takes name of the testType and deletes it. Returns an error if one occurs. +func (c *testTypes) Delete(name string, options *meta_v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("testtypes"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *testTypes) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("testtypes"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched testType. +func (c *testTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.TestType, err error) { + result = &v1.TestType{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("testtypes"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/interface.go index 71c8802cd..26d9165d2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1 returns a new v1.Interface. func (g *group) V1() v1.Interface { - return v1.New(g.SharedInformerFactory) + return v1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/v1/interface.go index 39bc0bccf..ff4e55ec9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/v1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/v1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // TestTypes returns a TestTypeInformer. func (v *version) TestTypes() TestTypeInformer { - return &testTypeInformer{factory: v.SharedInformerFactory} + return &testTypeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/v1/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/v1/testtype.go index a745adadb..e8e305df7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/v1/testtype.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example/v1/testtype.go @@ -38,19 +38,34 @@ type TestTypeInformer interface { } type testTypeInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewTestTypeInformer constructs a new informer for TestType 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 NewTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredTestTypeInformer constructs a new informer for TestType 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 NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ExampleV1().TestTypes(namespace).List(options) }, WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ExampleV1().TestTypes(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer ) } -func defaultTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewTestTypeInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *testTypeInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *testTypeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&example_v1.TestType{}, defaultTestTypeInformer) + return f.factory.InformerFor(&example_v1.TestType{}, f.defaultInformer) } func (f *testTypeInformer) Lister() v1.TestTypeLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/interface.go new file mode 100644 index 000000000..863361fa3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/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 example + +import ( + v1 "k8s.io/code-generator/_examples/crd/informers/externalversions/example2/v1" + internalinterfaces "k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // V1 provides access to shared informers for resources in V1. + V1() v1.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} +} + +// V1 returns a new v1.Interface. +func (g *group) V1() v1.Interface { + return v1.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/v1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/v1/interface.go new file mode 100644 index 000000000..ff4e55ec9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/v1/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 v1 + +import ( + internalinterfaces "k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // TestTypes returns a TestTypeInformer. + TestTypes() TestTypeInformer +} + +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} +} + +// TestTypes returns a TestTypeInformer. +func (v *version) TestTypes() TestTypeInformer { + return &testTypeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/v1/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/v1/testtype.go new file mode 100644 index 000000000..11ca2b9b2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/example2/v1/testtype.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 v1 + +import ( + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" + example2_v1 "k8s.io/code-generator/_examples/crd/apis/example2/v1" + versioned "k8s.io/code-generator/_examples/crd/clientset/versioned" + internalinterfaces "k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces" + v1 "k8s.io/code-generator/_examples/crd/listers/example2/v1" + time "time" +) + +// TestTypeInformer provides access to a shared informer and lister for +// TestTypes. +type TestTypeInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.TestTypeLister +} + +type testTypeInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewTestTypeInformer constructs a new informer for TestType 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 NewTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredTestTypeInformer constructs a new informer for TestType 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 NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SecondExampleV1().TestTypes(namespace).List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SecondExampleV1().TestTypes(namespace).Watch(options) + }, + }, + &example2_v1.TestType{}, + resyncPeriod, + indexers, + ) +} + +func (f *testTypeInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredTestTypeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *testTypeInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&example2_v1.TestType{}, f.defaultInformer) +} + +func (f *testTypeInformer) Lister() v1.TestTypeLister { + return v1.NewTestTypeLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/factory.go index c9c6f19d3..ff06d7c32 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/factory.go @@ -19,11 +19,13 @@ limitations under the License. package externalversions import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" versioned "k8s.io/code-generator/_examples/crd/clientset/versioned" example "k8s.io/code-generator/_examples/crd/informers/externalversions/example" + example2 "k8s.io/code-generator/_examples/crd/informers/externalversions/example2" internalinterfaces "k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces" reflect "reflect" sync "sync" @@ -31,9 +33,11 @@ import ( ) type sharedInformerFactory struct { - client versioned.Interface - lock sync.Mutex - defaultResync time.Duration + client versioned.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -43,8 +47,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -111,8 +124,13 @@ type SharedInformerFactory interface { WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool Example() example.Interface + SecondExample() example2.Interface } func (f *sharedInformerFactory) Example() example.Interface { - return example.New(f) + return example.New(f, f.namespace, f.tweakListOptions) +} + +func (f *sharedInformerFactory) SecondExample() example2.Interface { + return example2.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/generic.go index 237f77318..3e1141087 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/generic.go @@ -23,6 +23,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" v1 "k8s.io/code-generator/_examples/crd/apis/example/v1" + example2_v1 "k8s.io/code-generator/_examples/crd/apis/example2/v1" ) // GenericInformer is type of SharedIndexInformer which will locate and delegate to other @@ -51,10 +52,14 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Example, Version=V1 + // Group=example.crd.code-generator.k8s.io, Version=v1 case v1.SchemeGroupVersion.WithResource("testtypes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Example().V1().TestTypes().Informer()}, nil + // Group=example.test.crd.code-generator.k8s.io, Version=v1 + case example2_v1.SchemeGroupVersion.WithResource("testtypes"): + return &genericInformer{resource: resource.GroupResource(), informer: f.SecondExample().V1().TestTypes().Informer()}, nil + } return nil, fmt.Errorf("no informer found for %v", resource) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces/factory_interfaces.go index 8a94fce37..18b364af9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -19,6 +19,7 @@ limitations under the License. package internalinterfaces import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" versioned "k8s.io/code-generator/_examples/crd/clientset/versioned" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/listers/example2/v1/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/listers/example2/v1/expansion_generated.go new file mode 100644 index 000000000..f4ece18cc --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/listers/example2/v1/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 v1 + +// TestTypeListerExpansion allows custom methods to be added to +// TestTypeLister. +type TestTypeListerExpansion interface{} + +// TestTypeNamespaceListerExpansion allows custom methods to be added to +// TestTypeNamespaceLister. +type TestTypeNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/listers/example2/v1/testtype.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/listers/example2/v1/testtype.go new file mode 100644 index 000000000..1e1c0efd1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/_examples/crd/listers/example2/v1/testtype.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 v1 + +import ( + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + v1 "k8s.io/code-generator/_examples/crd/apis/example2/v1" +) + +// TestTypeLister helps list TestTypes. +type TestTypeLister interface { + // List lists all TestTypes in the indexer. + List(selector labels.Selector) (ret []*v1.TestType, err error) + // TestTypes returns an object that can list and get TestTypes. + TestTypes(namespace string) TestTypeNamespaceLister + TestTypeListerExpansion +} + +// testTypeLister implements the TestTypeLister interface. +type testTypeLister struct { + indexer cache.Indexer +} + +// NewTestTypeLister returns a new TestTypeLister. +func NewTestTypeLister(indexer cache.Indexer) TestTypeLister { + return &testTypeLister{indexer: indexer} +} + +// List lists all TestTypes in the indexer. +func (s *testTypeLister) List(selector labels.Selector) (ret []*v1.TestType, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.TestType)) + }) + return ret, err +} + +// TestTypes returns an object that can list and get TestTypes. +func (s *testTypeLister) TestTypes(namespace string) TestTypeNamespaceLister { + return testTypeNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// TestTypeNamespaceLister helps list and get TestTypes. +type TestTypeNamespaceLister interface { + // List lists all TestTypes in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1.TestType, err error) + // Get retrieves the TestType from the indexer for a given namespace and name. + Get(name string) (*v1.TestType, error) + TestTypeNamespaceListerExpansion +} + +// testTypeNamespaceLister implements the TestTypeNamespaceLister +// interface. +type testTypeNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all TestTypes in the indexer for a given namespace. +func (s testTypeNamespaceLister) List(selector labels.Selector) (ret []*v1.TestType, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.TestType)) + }) + return ret, err +} + +// Get retrieves the TestType from the indexer for a given namespace and name. +func (s testTypeNamespaceLister) Get(name string) (*v1.TestType, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("testtype"), name) + } + return obj.(*v1.TestType), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/args.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/args.go index 898a9adf3..fee31d90d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/args.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/args.go @@ -53,26 +53,8 @@ type CustomArgs struct { FakeClient bool } -var defaultInput = []string{ - "api/", - "admissionregistration/", - "authentication/", - "authorization/", - "autoscaling/", - "batch/", - "certificates/", - "extensions/", - "rbac/", - "storage/", - "apps/", - "policy/", - "scheduling/", - "settings/", - "networking/", -} - func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet) { - pflag.Var(NewGVPackagesValue(&ca.GroupVersionToInputPath, &ca.Groups, defaultInput), "input", "group/versions that client-gen will generate clients for. At most one version per group is allowed. Specified in the format \"group1/version1,group2/version2...\".") + pflag.Var(NewGVPackagesValue(&ca.GroupVersionToInputPath, &ca.Groups, nil), "input", "group/versions that client-gen will generate clients for. At most one version per group is allowed. Specified in the format \"group1/version1,group2/version2...\".") pflag.Var(NewGVTypesValue(&ca.IncludedTypesOverrides, []string{}), "included-types-overrides", "list of group/version/type for which client should be generated. By default, client is generated for all types which have genclient in types.go. This overrides that. For each groupVersion in this list, only the types mentioned here will be included. The default check of genclient will be used for other group versions.") pflag.StringVar(&ca.InputBasePath, "input-base", "k8s.io/kubernetes/pkg/apis", "base path to look for the api group.") pflag.StringVarP(&ca.ClientsetName, "clientset-name", "n", "internalclientset", "the name of the generated clientset package.") diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/gvpackages.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/gvpackages.go index b7ecb3370..4ffdd32ed 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/gvpackages.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/gvpackages.go @@ -91,8 +91,9 @@ func (s *gvPackagesValue) set(vs []string) error { seenGroups[gv.Group].Versions = append(group.Versions, gv.Version) } else { seenGroups[gv.Group] = &types.GroupVersions{ - Group: gv.Group, - Versions: []types.Version{gv.Version}, + PackageName: gv.Group.NonEmpty(), + Group: gv.Group, + Versions: []types.Version{gv.Version}, } } @@ -151,7 +152,7 @@ func parsePathGroupVersion(pgvString string) (gvPath string, gvString string) { func groupVersionPath(gvPath string, group string, version string) (path string) { // special case for the core group if group == "api" { - path = filepath.Join("../api", version) + path = filepath.Join("core", version) } else { path = filepath.Join(gvPath, group, version) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/gvpackages_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/gvpackages_test.go index c86065cd8..1a88dbf32 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/gvpackages_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/args/gvpackages_test.go @@ -49,8 +49,8 @@ func TestGVPackageFlag(t *testing.T) { {Group: "foo", Version: "v1"}: "foo/v1", }, expectedGroups: []types.GroupVersions{ - {Group: types.Group("bar"), Versions: []types.Version{types.Version("v1"), types.Version("v2"), types.Version("")}}, - {Group: types.Group("foo"), Versions: []types.Version{types.Version("v1")}}, + {PackageName: "bar", Group: types.Group("bar"), Versions: []types.Version{types.Version("v1"), types.Version("v2"), types.Version("")}}, + {PackageName: "foo", Group: types.Group("foo"), Versions: []types.Version{types.Version("v1")}}, }, }, { @@ -63,18 +63,18 @@ func TestGVPackageFlag(t *testing.T) { {Group: "foo", Version: "v1"}: "foo/v1", }, expectedGroups: []types.GroupVersions{ - {Group: types.Group("bar"), Versions: []types.Version{types.Version("v1"), types.Version("v2"), types.Version("")}}, - {Group: types.Group("foo"), Versions: []types.Version{types.Version("v1")}}, + {PackageName: "bar", Group: types.Group("bar"), Versions: []types.Version{types.Version("v1"), types.Version("v2"), types.Version("")}}, + {PackageName: "foo", Group: types.Group("foo"), Versions: []types.Version{types.Version("v1")}}, }, }, { args: []string{"api/v1", "api"}, expected: map[types.GroupVersion]string{ - {Group: "api", Version: "v1"}: "../api/v1", - {Group: "api", Version: ""}: "../api", + {Group: "api", Version: "v1"}: "core/v1", + {Group: "api", Version: ""}: "core", }, expectedGroups: []types.GroupVersions{ - {Group: types.Group("api"), Versions: []types.Version{types.Version("v1"), types.Version("")}}, + {PackageName: "core", Group: types.Group("api"), Versions: []types.Version{types.Version("v1"), types.Version("")}}, }, }, } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go index 70bbf3d39..77e08db59 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/client_generator.go @@ -103,8 +103,8 @@ func DefaultNameSystem() string { return "public" } -func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, apiPath string, srcTreePath string, inputPackage string, boilerplate []byte) generator.Package { - groupVersionClientPackage := strings.ToLower(filepath.Join(clientsetPackage, "typed", gv.Group.NonEmpty(), gv.Version.NonEmpty())) +func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, apiPath string, srcTreePath string, inputPackage string, boilerplate []byte) generator.Package { + groupVersionClientPackage := strings.ToLower(filepath.Join(clientsetPackage, "typed", groupPackageName, gv.Version.NonEmpty())) return &generator.DefaultPackage{ PackageName: strings.ToLower(gv.Version.NonEmpty()), PackagePath: groupVersionClientPackage, @@ -130,6 +130,7 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli clientsetPackage: clientsetPackage, group: gv.Group.NonEmpty(), version: gv.Version.String(), + groupGoName: groupGoName, typeToMatch: t, imports: generator.NewImportTracker(), }) @@ -137,13 +138,14 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli generators = append(generators, &genGroup{ DefaultGen: generator.DefaultGen{ - OptionalName: gv.Group.NonEmpty() + "_client", + OptionalName: groupPackageName + "_client", }, outputPackage: groupVersionClientPackage, inputPackage: inputPackage, clientsetPackage: clientsetPackage, group: gv.Group.NonEmpty(), version: gv.Version.String(), + groupGoName: groupGoName, apiPath: apiPath, types: typeList, imports: generator.NewImportTracker(), @@ -166,7 +168,7 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli } } -func packageForClientset(customArgs *clientgenargs.CustomArgs, clientsetPackage string, boilerplate []byte) generator.Package { +func packageForClientset(customArgs *clientgenargs.CustomArgs, clientsetPackage string, groupGoNames map[clientgentypes.GroupVersion]string, boilerplate []byte) generator.Package { return &generator.DefaultPackage{ PackageName: customArgs.ClientsetName, PackagePath: clientsetPackage, @@ -186,6 +188,7 @@ func packageForClientset(customArgs *clientgenargs.CustomArgs, clientsetPackage OptionalName: "clientset", }, groups: customArgs.Groups, + groupGoNames: groupGoNames, clientsetPackage: clientsetPackage, outputPackage: customArgs.ClientsetName, imports: generator.NewImportTracker(), @@ -196,7 +199,7 @@ func packageForClientset(customArgs *clientgenargs.CustomArgs, clientsetPackage } } -func packageForScheme(customArgs *clientgenargs.CustomArgs, clientsetPackage string, srcTreePath string, boilerplate []byte) generator.Package { +func packageForScheme(customArgs *clientgenargs.CustomArgs, clientsetPackage string, srcTreePath string, groupGoNames map[clientgentypes.GroupVersion]string, boilerplate []byte) generator.Package { schemePackage := filepath.Join(clientsetPackage, "scheme") // create runtime.Registry for internal client because it has to know about group versions @@ -233,6 +236,7 @@ NextGroup: OutputPackage: schemePackage, OutputPath: filepath.Join(srcTreePath, schemePackage), Groups: customArgs.Groups, + GroupGoNames: groupGoNames, ImportTracker: generator.NewImportTracker(), CreateRegistry: internalClient, }, @@ -245,14 +249,16 @@ NextGroup: // applyGroupOverrides applies group name overrides to each package, if applicable. If there is a // comment of the form "// +groupName=somegroup" or "// +groupName=somegroup.foo.bar.io", use the // first field (somegroup) as the name of the group when generating. +// +// If the first field of the groupName is not unique within the clientset, use "// +groupName=unique func applyGroupOverrides(universe types.Universe, customArgs *clientgenargs.CustomArgs) { // Create a map from "old GV" to "new GV" so we know what changes we need to make. changes := make(map[clientgentypes.GroupVersion]clientgentypes.GroupVersion) for gv, inputDir := range customArgs.GroupVersionToInputPath { p := universe.Package(inputDir) - if override := types.ExtractCommentTags("+", p.DocComments)["groupName"]; override != nil { + if override := types.ExtractCommentTags("+", p.Comments)["groupName"]; override != nil { newGV := clientgentypes.GroupVersion{ - Group: clientgentypes.Group(strings.SplitN(override[0], ".", 2)[0]), + Group: clientgentypes.Group(override[0]), Version: gv.Version, } changes[gv] = newGV @@ -269,8 +275,9 @@ func applyGroupOverrides(universe types.Universe, customArgs *clientgenargs.Cust if newGV, ok := changes[gv]; ok { // There's an override, so use it. newGVS := clientgentypes.GroupVersions{ - Group: newGV.Group, - Versions: gvs.Versions, + PackageName: gvs.PackageName, + Group: newGV.Group, + Versions: gvs.Versions, } newGroups = append(newGroups, newGVS) } else { @@ -310,9 +317,18 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat applyGroupOverrides(context.Universe, customArgs) gvToTypes := map[clientgentypes.GroupVersion][]*types.Type{} + groupGoNames := make(map[clientgentypes.GroupVersion]string) for gv, inputDir := range customArgs.GroupVersionToInputPath { - // Package are indexed with the vendor prefix stripped p := context.Universe.Package(path.Vendorless(inputDir)) + + // If there's a comment of the form "// +groupGoName=SomeUniqueShortName", use that as + // the Go group identifier in CamelCase. It defaults + groupGoNames[gv] = namer.IC(strings.Split(gv.Group.NonEmpty(), ".")[0]) + if override := types.ExtractCommentTags("+", p.Comments)["groupGoName"]; override != nil { + groupGoNames[gv] = namer.IC(override[0]) + } + + // Package are indexed with the vendor prefix stripped for n, t := range p.Types { // filter out types which are not included in user specified overrides. typesOverride, ok := includedTypesOverrides[gv] @@ -344,10 +360,10 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat var packageList []generator.Package clientsetPackage := filepath.Join(customArgs.ClientsetOutputPath, customArgs.ClientsetName) - packageList = append(packageList, packageForClientset(customArgs, clientsetPackage, boilerplate)) - packageList = append(packageList, packageForScheme(customArgs, clientsetPackage, arguments.OutputBase, boilerplate)) + packageList = append(packageList, packageForClientset(customArgs, clientsetPackage, groupGoNames, boilerplate)) + packageList = append(packageList, packageForScheme(customArgs, clientsetPackage, arguments.OutputBase, groupGoNames, boilerplate)) if customArgs.FakeClient { - packageList = append(packageList, fake.PackageForClientset(customArgs, clientsetPackage, boilerplate)) + packageList = append(packageList, fake.PackageForClientset(customArgs, clientsetPackage, groupGoNames, boilerplate)) } // If --clientset-only=true, we don't regenerate the individual typed clients. @@ -361,9 +377,9 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat gv := clientgentypes.GroupVersion{Group: group.Group, Version: version} types := gvToTypes[gv] inputPath := customArgs.GroupVersionToInputPath[gv] - packageList = append(packageList, packageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, boilerplate)) + packageList = append(packageList, packageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], customArgs.ClientsetAPIPath, arguments.OutputBase, inputPath, boilerplate)) if customArgs.FakeClient { - packageList = append(packageList, fake.PackageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, inputPath, boilerplate)) + packageList = append(packageList, fake.PackageForGroup(gv, orderer.OrderTypes(types), clientsetPackage, group.PackageName, groupGoNames[gv], inputPath, boilerplate)) } } } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go index 28935f41d..b1d34951a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/fake_client_generator.go @@ -29,10 +29,10 @@ import ( clientgentypes "k8s.io/code-generator/cmd/client-gen/types" ) -func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, inputPackage string, boilerplate []byte) generator.Package { - outputPackage := strings.ToLower(filepath.Join(clientsetPackage, "typed", gv.Group.NonEmpty(), gv.Version.NonEmpty(), "fake")) +func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clientsetPackage string, groupPackageName string, groupGoName string, inputPackage string, boilerplate []byte) generator.Package { + outputPackage := strings.ToLower(filepath.Join(clientsetPackage, "typed", groupPackageName, gv.Version.NonEmpty(), "fake")) // TODO: should make this a function, called by here and in client-generator.go - realClientPackage := filepath.Join(clientsetPackage, "typed", gv.Group.NonEmpty(), gv.Version.NonEmpty()) + realClientPackage := filepath.Join(clientsetPackage, "typed", groupPackageName, gv.Version.NonEmpty()) return &generator.DefaultPackage{ PackageName: "fake", PackagePath: outputPackage, @@ -58,6 +58,7 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli inputPackage: inputPackage, group: gv.Group.NonEmpty(), version: gv.Version.String(), + groupGoName: groupGoName, typeToMatch: t, imports: generator.NewImportTracker(), }) @@ -65,12 +66,13 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli generators = append(generators, &genFakeForGroup{ DefaultGen: generator.DefaultGen{ - OptionalName: "fake_" + gv.Group.NonEmpty() + "_client", + OptionalName: "fake_" + groupPackageName + "_client", }, outputPackage: outputPackage, realClientPackage: realClientPackage, group: gv.Group.NonEmpty(), version: gv.Version.String(), + groupGoName: groupGoName, types: typeList, imports: generator.NewImportTracker(), }) @@ -82,7 +84,7 @@ func PackageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli } } -func PackageForClientset(customArgs *clientgenargs.CustomArgs, fakeClientsetPackage string, boilerplate []byte) generator.Package { +func PackageForClientset(customArgs *clientgenargs.CustomArgs, fakeClientsetPackage string, groupGoNames map[clientgentypes.GroupVersion]string, boilerplate []byte) generator.Package { return &generator.DefaultPackage{ // TODO: we'll generate fake clientset for different release in the future. // Package name and path are hard coded for now. @@ -104,6 +106,7 @@ func PackageForClientset(customArgs *clientgenargs.CustomArgs, fakeClientsetPack OptionalName: "clientset_generated", }, groups: customArgs.Groups, + groupGoNames: groupGoNames, fakeClientsetPackage: fakeClientsetPackage, outputPackage: "fake", imports: generator.NewImportTracker(), @@ -116,6 +119,7 @@ func PackageForClientset(customArgs *clientgenargs.CustomArgs, fakeClientsetPack InputPackages: customArgs.GroupVersionToInputPath, OutputPackage: fakeClientsetPackage, Groups: customArgs.Groups, + GroupGoNames: groupGoNames, ImportTracker: generator.NewImportTracker(), PrivateScheme: true, }, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go index c28c1378c..b6a8de3f8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go @@ -32,6 +32,7 @@ import ( type genClientset struct { generator.DefaultGen groups []clientgentypes.GroupVersions + groupGoNames map[clientgentypes.GroupVersion]string fakeClientsetPackage string outputPackage string imports namer.ImportTracker @@ -59,11 +60,12 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) { imports = append(imports, g.imports.ImportLines()...) for _, group := range g.groups { for _, version := range group.Versions { - groupClientPackage := filepath.Join(g.fakeClientsetPackage, "typed", group.Group.NonEmpty(), version.NonEmpty()) + groupClientPackage := filepath.Join(g.fakeClientsetPackage, "typed", group.PackageName, version.NonEmpty()) fakeGroupClientPackage := filepath.Join(groupClientPackage, "fake") - imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", group.Group.NonEmpty(), version.NonEmpty(), groupClientPackage))) - imports = append(imports, strings.ToLower(fmt.Sprintf("fake%s%s \"%s\"", group.Group.NonEmpty(), version.NonEmpty(), fakeGroupClientPackage))) + groupAlias := strings.ToLower(g.groupGoNames[clientgentypes.GroupVersion{group.Group, version}]) + imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", groupAlias, version.NonEmpty(), groupClientPackage))) + imports = append(imports, strings.ToLower(fmt.Sprintf("fake%s%s \"%s\"", groupAlias, version.NonEmpty(), fakeGroupClientPackage))) } } // the package that has the clientset Interface @@ -85,16 +87,24 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr // perhaps we can adapt the go2ild framework to this kind of usage. sw := generator.NewSnippetWriter(w, c, "$", "$") - allGroups := clientgentypes.ToGroupVersionPackages(g.groups) + allGroups := clientgentypes.ToGroupVersionPackages(g.groups, g.groupGoNames) sw.Do(common, nil) sw.Do(checkImpl, nil) - for _, g := range allGroups { - sw.Do(clientsetInterfaceImplTemplate, g) + for _, group := range allGroups { + m := map[string]interface{}{ + "group": group.Group, + "version": group.Version, + "PackageAlias": group.PackageAlias, + "GroupGoName": group.GroupGoName, + "Version": namer.IC(group.Version.String()), + } + + sw.Do(clientsetInterfaceImplTemplate, m) // don't generated the default method if generating internalversion clientset - if g.IsDefaultVersion && g.Version != "" { - sw.Do(clientsetInterfaceDefaultVersionImpl, g) + if group.IsDefaultVersion && group.Version != "" { + sw.Do(clientsetInterfaceDefaultVersionImpl, m) } } @@ -140,15 +150,15 @@ var _ clientset.Interface = &Clientset{} ` var clientsetInterfaceImplTemplate = ` -// $.GroupVersion$ retrieves the $.GroupVersion$Client -func (c *Clientset) $.GroupVersion$() $.PackageName$.$.GroupVersion$Interface { - return &fake$.PackageName$.Fake$.GroupVersion${Fake: &c.Fake} +// $.GroupGoName$$.Version$ retrieves the $.GroupGoName$$.Version$Client +func (c *Clientset) $.GroupGoName$$.Version$() $.PackageAlias$.$.GroupGoName$$.Version$Interface { + return &fake$.PackageAlias$.Fake$.GroupGoName$$.Version${Fake: &c.Fake} } ` var clientsetInterfaceDefaultVersionImpl = ` -// $.Group$ retrieves the $.GroupVersion$Client -func (c *Clientset) $.Group$() $.PackageName$.$.GroupVersion$Interface { - return &fake$.PackageName$.Fake$.GroupVersion${Fake: &c.Fake} +// $.GroupGoName$ retrieves the $.GroupGoName$$.Version$Client +func (c *Clientset) $.GroupGoName$() $.PackageAlias$.$.GroupGoName$$.Version$Interface { + return &fake$.PackageAlias$.Fake$.GroupGoName$$.Version${Fake: &c.Fake} } ` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_group.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_group.go index 83b7fe78a..542d2bfae 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_group.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_group.go @@ -36,6 +36,7 @@ type genFakeForGroup struct { realClientPackage string group string version string + groupGoName string // types in this group types []*types.Type imports namer.ImportTracker @@ -63,8 +64,8 @@ func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io sw := generator.NewSnippetWriter(w, c, "$", "$") m := map[string]interface{}{ - "group": g.group, - "GroupVersion": namer.IC(g.group) + namer.IC(g.version), + "GroupGoName": g.groupGoName, + "Version": namer.IC(g.version), "Fake": c.Universe.Type(types.Name{Package: "k8s.io/client-go/testing", Name: "Fake"}), "RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}), "RESTClient": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "RESTClient"}), @@ -78,7 +79,8 @@ func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io } wrapper := map[string]interface{}{ "type": t, - "GroupVersion": namer.IC(g.group) + namer.IC(g.version), + "GroupGoName": g.groupGoName, + "Version": namer.IC(g.version), "realClientPackage": strings.ToLower(filepath.Base(g.realClientPackage)), } if tags.NonNamespaced { @@ -92,19 +94,19 @@ func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io } var groupClientTemplate = ` -type Fake$.GroupVersion$ struct { +type Fake$.GroupGoName$$.Version$ struct { *$.Fake|raw$ } ` var getterImplNamespaced = ` -func (c *Fake$.GroupVersion$) $.type|publicPlural$(namespace string) $.realClientPackage$.$.type|public$Interface { +func (c *Fake$.GroupGoName$$.Version$) $.type|publicPlural$(namespace string) $.realClientPackage$.$.type|public$Interface { return &Fake$.type|publicPlural${c, namespace} } ` var getterImplNonNamespaced = ` -func (c *Fake$.GroupVersion$) $.type|publicPlural$() $.realClientPackage$.$.type|public$Interface { +func (c *Fake$.GroupGoName$$.Version$) $.type|publicPlural$() $.realClientPackage$.$.type|public$Interface { return &Fake$.type|publicPlural${c} } ` @@ -112,7 +114,7 @@ func (c *Fake$.GroupVersion$) $.type|publicPlural$() $.realClientPackage$.$.type var getRESTClient = ` // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *Fake$.GroupVersion$) RESTClient() $.RESTClientInterface|raw$ { +func (c *Fake$.GroupGoName$$.Version$) RESTClient() $.RESTClientInterface|raw$ { var ret *$.RESTClient|raw$ return ret } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go index f3deb3685..64060a01f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_type.go @@ -35,6 +35,7 @@ type genFakeForType struct { outputPackage string group string version string + groupGoName string inputPackage string typeToMatch *types.Type imports namer.ImportTracker @@ -102,7 +103,7 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io. // allow user to define a group name that's different from the one parsed from the directory. p := c.Universe.Package(path.Vendorless(g.inputPackage)) - if override := types.ExtractCommentTags("+", p.DocComments)["groupName"]; override != nil { + if override := types.ExtractCommentTags("+", p.Comments)["groupName"]; override != nil { groupName = override[0] } @@ -116,7 +117,8 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io. "Package": namer.IC(pkg), "namespaced": !tags.NonNamespaced, "Group": namer.IC(g.group), - "GroupVersion": namer.IC(g.group) + namer.IC(g.version), + "GroupGoName": g.groupGoName, + "Version": namer.IC(g.version), "group": canonicalGroup, "groupName": groupName, "version": g.version, @@ -286,7 +288,7 @@ func adjustTemplate(name, verbType, template string) string { var structNamespaced = ` // Fake$.type|publicPlural$ implements $.type|public$Interface type Fake$.type|publicPlural$ struct { - Fake *Fake$.GroupVersion$ + Fake *Fake$.GroupGoName$$.Version$ ns string } ` @@ -295,7 +297,7 @@ type Fake$.type|publicPlural$ struct { var structNonNamespaced = ` // Fake$.type|publicPlural$ implements $.type|public$Interface type Fake$.type|publicPlural$ struct { - Fake *Fake$.GroupVersion$ + Fake *Fake$.GroupGoName$$.Version$ } ` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_clientset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_clientset.go index 1b8c7e4a8..a7fdf85d1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_clientset.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_clientset.go @@ -32,6 +32,7 @@ import ( type genClientset struct { generator.DefaultGen groups []clientgentypes.GroupVersions + groupGoNames map[clientgentypes.GroupVersion]string clientsetPackage string outputPackage string imports namer.ImportTracker @@ -57,8 +58,9 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) { imports = append(imports, g.imports.ImportLines()...) for _, group := range g.groups { for _, version := range group.Versions { - typedClientPath := filepath.Join(g.clientsetPackage, "typed", group.Group.NonEmpty(), version.NonEmpty()) - imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", group.Group.NonEmpty(), version.NonEmpty(), typedClientPath))) + typedClientPath := filepath.Join(g.clientsetPackage, "typed", group.PackageName, version.NonEmpty()) + groupAlias := strings.ToLower(g.groupGoNames[clientgentypes.GroupVersion{group.Group, version}]) + imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", groupAlias, version.NonEmpty(), typedClientPath))) } } return @@ -69,7 +71,7 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr // perhaps we can adapt the go2ild framework to this kind of usage. sw := generator.NewSnippetWriter(w, c, "$", "$") - allGroups := clientgentypes.ToGroupVersionPackages(g.groups) + allGroups := clientgentypes.ToGroupVersionPackages(g.groups, g.groupGoNames) m := map[string]interface{}{ "allGroups": allGroups, "Config": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Config"}), @@ -103,9 +105,9 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr var clientsetInterface = ` type Interface interface { Discovery() $.DiscoveryInterface|raw$ - $range .allGroups$$.GroupVersion$() $.PackageName$.$.GroupVersion$Interface + $range .allGroups$$.GroupGoName$$.Version$() $.PackageAlias$.$.GroupGoName$$.Version$Interface $if .IsDefaultVersion$// Deprecated: please explicitly pick a version if possible. - $.Group$() $.PackageName$.$.GroupVersion$Interface + $.GroupGoName$() $.PackageAlias$.$.GroupGoName$$.Version$Interface $end$$end$ } ` @@ -115,23 +117,23 @@ var clientsetTemplate = ` // version included in a Clientset. type Clientset struct { *$.DiscoveryClient|raw$ - $range .allGroups$$.LowerCaseGroupVersion$ *$.PackageName$.$.GroupVersion$Client + $range .allGroups$$.LowerCaseGroupGoName$$.Version$ *$.PackageAlias$.$.GroupGoName$$.Version$Client $end$ } ` var clientsetInterfaceImplTemplate = ` -// $.GroupVersion$ retrieves the $.GroupVersion$Client -func (c *Clientset) $.GroupVersion$() $.PackageName$.$.GroupVersion$Interface { - return c.$.LowerCaseGroupVersion$ +// $.GroupGoName$$.Version$ retrieves the $.GroupGoName$$.Version$Client +func (c *Clientset) $.GroupGoName$$.Version$() $.PackageAlias$.$.GroupGoName$$.Version$Interface { + return c.$.LowerCaseGroupGoName$$.Version$ } ` var clientsetInterfaceDefaultVersionImpl = ` -// Deprecated: $.Group$ retrieves the default version of $.Group$Client. +// Deprecated: $.GroupGoName$ retrieves the default version of $.GroupGoName$Client. // Please explicitly pick a version. -func (c *Clientset) $.Group$() $.PackageName$.$.GroupVersion$Interface { - return c.$.LowerCaseGroupVersion$ +func (c *Clientset) $.GroupGoName$() $.PackageAlias$.$.GroupGoName$$.Version$Interface { + return c.$.LowerCaseGroupGoName$$.Version$ } ` @@ -154,7 +156,7 @@ func NewForConfig(c *$.Config|raw$) (*Clientset, error) { } var cs Clientset var err error -$range .allGroups$ cs.$.LowerCaseGroupVersion$, err =$.PackageName$.NewForConfig(&configShallowCopy) +$range .allGroups$ cs.$.LowerCaseGroupGoName$$.Version$, err =$.PackageAlias$.NewForConfig(&configShallowCopy) if err!=nil { return nil, err } @@ -173,7 +175,7 @@ var newClientsetForConfigOrDieTemplate = ` // panics if there is an error in the config. func NewForConfigOrDie(c *$.Config|raw$) *Clientset { var cs Clientset -$range .allGroups$ cs.$.LowerCaseGroupVersion$ =$.PackageName$.NewForConfigOrDie(c) +$range .allGroups$ cs.$.LowerCaseGroupGoName$$.Version$ =$.PackageAlias$.NewForConfigOrDie(c) $end$ cs.DiscoveryClient = $.NewDiscoveryClientForConfigOrDie|raw$(c) return &cs @@ -184,7 +186,7 @@ var newClientsetForRESTClientTemplate = ` // New creates a new Clientset for the given RESTClient. func New(c $.RESTClientInterface|raw$) *Clientset { var cs Clientset -$range .allGroups$ cs.$.LowerCaseGroupVersion$ =$.PackageName$.New(c) +$range .allGroups$ cs.$.LowerCaseGroupGoName$$.Version$ =$.PackageAlias$.New(c) $end$ cs.DiscoveryClient = $.NewDiscoveryClient|raw$(c) return &cs diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_group.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_group.go index 632e17fd8..c37a5536f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_group.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_group.go @@ -34,6 +34,7 @@ type genGroup struct { outputPackage string group string version string + groupGoName string apiPath string // types in this group types []*types.Type @@ -80,15 +81,16 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer } // allow user to define a group name that's different from the one parsed from the directory. p := c.Universe.Package(path.Vendorless(g.inputPackage)) - if override := types.ExtractCommentTags("+", p.DocComments)["groupName"]; override != nil { + if override := types.ExtractCommentTags("+", p.Comments)["groupName"]; override != nil { groupName = override[0] } m := map[string]interface{}{ "group": g.group, "version": g.version, - "GroupVersion": namer.IC(g.group) + namer.IC(g.version), "groupName": groupName, + "GroupGoName": g.groupGoName, + "Version": namer.IC(g.version), "types": g.types, "apiPath": apiPath(g.group), "schemaGroupVersion": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersion"}), @@ -108,8 +110,9 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer return err } wrapper := map[string]interface{}{ - "type": t, - "GroupVersion": namer.IC(g.group) + namer.IC(g.version), + "type": t, + "GroupGoName": g.groupGoName, + "Version": namer.IC(g.version), } if tags.NonNamespaced { sw.Do(getterImplNonNamespaced, wrapper) @@ -131,7 +134,7 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer } var groupInterfaceTemplate = ` -type $.GroupVersion$Interface interface { +type $.GroupGoName$$.Version$Interface interface { RESTClient() $.restRESTClientInterface|raw$ $range .types$ $.|publicPlural$Getter $end$ @@ -139,27 +142,27 @@ type $.GroupVersion$Interface interface { ` var groupClientTemplate = ` -// $.GroupVersion$Client is used to interact with features provided by the $.groupName$ group. -type $.GroupVersion$Client struct { +// $.GroupGoName$$.Version$Client is used to interact with features provided by the $.groupName$ group. +type $.GroupGoName$$.Version$Client struct { restClient $.restRESTClientInterface|raw$ } ` var getterImplNamespaced = ` -func (c *$.GroupVersion$Client) $.type|publicPlural$(namespace string) $.type|public$Interface { +func (c *$.GroupGoName$$.Version$Client) $.type|publicPlural$(namespace string) $.type|public$Interface { return new$.type|publicPlural$(c, namespace) } ` var getterImplNonNamespaced = ` -func (c *$.GroupVersion$Client) $.type|publicPlural$() $.type|public$Interface { +func (c *$.GroupGoName$$.Version$Client) $.type|publicPlural$() $.type|public$Interface { return new$.type|publicPlural$(c) } ` var newClientForConfigTemplate = ` -// NewForConfig creates a new $.GroupVersion$Client for the given config. -func NewForConfig(c *$.restConfig|raw$) (*$.GroupVersion$Client, error) { +// NewForConfig creates a new $.GroupGoName$$.Version$Client for the given config. +func NewForConfig(c *$.restConfig|raw$) (*$.GroupGoName$$.Version$Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err @@ -168,14 +171,14 @@ func NewForConfig(c *$.restConfig|raw$) (*$.GroupVersion$Client, error) { if err != nil { return nil, err } - return &$.GroupVersion$Client{client}, nil + return &$.GroupGoName$$.Version$Client{client}, nil } ` var newClientForConfigOrDieTemplate = ` -// NewForConfigOrDie creates a new $.GroupVersion$Client for the given config and +// NewForConfigOrDie creates a new $.GroupGoName$$.Version$Client for the given config and // panics if there is an error in the config. -func NewForConfigOrDie(c *$.restConfig|raw$) *$.GroupVersion$Client { +func NewForConfigOrDie(c *$.restConfig|raw$) *$.GroupGoName$$.Version$Client { client, err := NewForConfig(c) if err != nil { panic(err) @@ -187,7 +190,7 @@ func NewForConfigOrDie(c *$.restConfig|raw$) *$.GroupVersion$Client { var getRESTClient = ` // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *$.GroupVersion$Client) RESTClient() $.restRESTClientInterface|raw$ { +func (c *$.GroupGoName$$.Version$Client) RESTClient() $.restRESTClientInterface|raw$ { if c == nil { return nil } @@ -196,9 +199,9 @@ func (c *$.GroupVersion$Client) RESTClient() $.restRESTClientInterface|raw$ { ` var newClientForRESTClientTemplate = ` -// New creates a new $.GroupVersion$Client for the given RESTClient. -func New(c $.restRESTClientInterface|raw$) *$.GroupVersion$Client { - return &$.GroupVersion$Client{c} +// New creates a new $.GroupGoName$$.Version$Client for the given RESTClient. +func New(c $.restRESTClientInterface|raw$) *$.GroupGoName$$.Version$Client { + return &$.GroupGoName$$.Version$Client{c} } ` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go index 51f39bdb0..5484717fb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/generator_for_type.go @@ -35,6 +35,7 @@ type genClientForType struct { clientsetPackage string group string version string + groupGoName string typeToMatch *types.Type imports namer.ImportTracker } @@ -132,7 +133,8 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i "Group": namer.IC(g.group), "subresource": false, "subresourcePath": "", - "GroupVersion": namer.IC(g.group) + namer.IC(g.version), + "GroupGoName": g.groupGoName, + "Version": namer.IC(g.version), "DeleteOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "DeleteOptions"}), "ListOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"}), "GetOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "GetOptions"}), @@ -366,7 +368,7 @@ type $.type|privatePlural$ struct { var newStructNamespaced = ` // new$.type|publicPlural$ returns a $.type|publicPlural$ -func new$.type|publicPlural$(c *$.GroupVersion$Client, namespace string) *$.type|privatePlural$ { +func new$.type|publicPlural$(c *$.GroupGoName$$.Version$Client, namespace string) *$.type|privatePlural$ { return &$.type|privatePlural${ client: c.RESTClient(), ns: namespace, @@ -376,7 +378,7 @@ func new$.type|publicPlural$(c *$.GroupVersion$Client, namespace string) *$.type var newStructNonNamespaced = ` // new$.type|publicPlural$ returns a $.type|publicPlural$ -func new$.type|publicPlural$(c *$.GroupVersion$Client) *$.type|privatePlural$ { +func new$.type|publicPlural$(c *$.GroupGoName$$.Version$Client) *$.type|privatePlural$ { return &$.type|privatePlural${ client: c.RESTClient(), } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/scheme/generator_for_scheme.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/scheme/generator_for_scheme.go index 9c02d15c8..416877c49 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/scheme/generator_for_scheme.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/generators/scheme/generator_for_scheme.go @@ -35,6 +35,7 @@ type GenScheme struct { generator.DefaultGen OutputPackage string Groups []clientgentypes.GroupVersions + GroupGoNames map[clientgentypes.GroupVersion]string InputPackages map[clientgentypes.GroupVersion]string OutputPath string ImportTracker namer.ImportTracker @@ -61,16 +62,17 @@ func (g *GenScheme) Imports(c *generator.Context) (imports []string) { for _, group := range g.Groups { for _, version := range group.Versions { packagePath := g.InputPackages[clientgentypes.GroupVersion{Group: group.Group, Version: version}] + groupAlias := strings.ToLower(g.GroupGoNames[clientgentypes.GroupVersion{group.Group, version}]) if g.CreateRegistry { // import the install package for internal clientsets instead of the type package with register.go if version != "" { packagePath = filepath.Dir(packagePath) } packagePath = filepath.Join(packagePath, "install") - imports = append(imports, strings.ToLower(fmt.Sprintf("%s \"%s\"", group.Group.NonEmpty(), path.Vendorless(packagePath)))) + imports = append(imports, strings.ToLower(fmt.Sprintf("%s \"%s\"", groupAlias, path.Vendorless(packagePath)))) break } else { - imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", group.Group.NonEmpty(), version.NonEmpty(), path.Vendorless(packagePath)))) + imports = append(imports, strings.ToLower(fmt.Sprintf("%s%s \"%s\"", groupAlias, version.NonEmpty(), path.Vendorless(packagePath)))) } } } @@ -80,8 +82,8 @@ func (g *GenScheme) Imports(c *generator.Context) (imports []string) { func (g *GenScheme) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error { sw := generator.NewSnippetWriter(w, c, "$", "$") - allGroupVersions := clientgentypes.ToGroupVersionPackages(g.Groups) - allInstallGroups := clientgentypes.ToGroupInstallPackages(g.Groups) + allGroupVersions := clientgentypes.ToGroupVersionPackages(g.Groups, g.GroupGoNames) + allInstallGroups := clientgentypes.ToGroupInstallPackages(g.Groups, g.GroupGoNames) m := map[string]interface{}{ "allGroupVersions": allGroupVersions, @@ -147,7 +149,7 @@ func init() { // Install registers the API group and adds types to a scheme func Install(groupFactoryRegistry $.announcedAPIGroupFactoryRegistry|raw$, registry *$.registeredAPIRegistrationManager|raw$, scheme *$.runtimeScheme|raw$) { - $range .allInstallGroups$ $.InstallPackageName$.Install(groupFactoryRegistry, registry, scheme) + $range .allInstallGroups$ $.InstallPackageAlias$.Install(groupFactoryRegistry, registry, scheme) $end$ $if .customRegister$ExtraInstall(groupFactoryRegistry, registry, scheme)$end$ } @@ -176,7 +178,7 @@ func init() { // After this, RawExtensions in Kubernetes types will serialize kube-aggregator types // correctly. func AddToScheme(scheme *$.runtimeScheme|raw$) { - $range .allGroupVersions$ $.PackageName$.AddToScheme(scheme) + $range .allGroupVersions$ $.PackageAlias$.AddToScheme(scheme) $end$ $if .customRegister$ExtraAddToScheme(scheme)$end$ } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/types/helpers.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/types/helpers.go index b9f4730e2..bc4d9dea3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/types/helpers.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/types/helpers.go @@ -85,30 +85,33 @@ func defaultVersion(versions []Version) Version { } // ToGroupVersionPackages is a helper function used by generators for groups. -func ToGroupVersionPackages(groups []GroupVersions) []GroupVersionPackage { +func ToGroupVersionPackages(groups []GroupVersions, groupGoNames map[GroupVersion]string) []GroupVersionPackage { var groupVersionPackages []GroupVersionPackage for _, group := range groups { defaultVersion := defaultVersion(group.Versions) for _, version := range group.Versions { + groupGoName := groupGoNames[GroupVersion{Group: group.Group, Version: version}] groupVersionPackages = append(groupVersionPackages, GroupVersionPackage{ - Group: Group(namer.IC(group.Group.NonEmpty())), - Version: Version(namer.IC(version.String())), - GroupVersion: namer.IC(group.Group.NonEmpty()) + namer.IC(version.String()), - LowerCaseGroupVersion: namer.IL(group.Group.NonEmpty()) + namer.IC(version.String()), - PackageName: strings.ToLower(group.Group.NonEmpty() + version.NonEmpty()), - IsDefaultVersion: version == defaultVersion && version != "", + Group: Group(namer.IC(group.Group.NonEmpty())), + Version: Version(namer.IC(version.String())), + PackageAlias: strings.ToLower(groupGoName + version.NonEmpty()), + IsDefaultVersion: version == defaultVersion && version != "", + GroupGoName: groupGoName, + LowerCaseGroupGoName: namer.IL(groupGoName), }) } } return groupVersionPackages } -func ToGroupInstallPackages(groups []GroupVersions) []GroupInstallPackage { +func ToGroupInstallPackages(groups []GroupVersions, groupGoNames map[GroupVersion]string) []GroupInstallPackage { var groupInstallPackages []GroupInstallPackage for _, group := range groups { + defaultVersion := defaultVersion(group.Versions) + groupGoName := groupGoNames[GroupVersion{Group: group.Group, Version: defaultVersion}] groupInstallPackages = append(groupInstallPackages, GroupInstallPackage{ - Group: Group(namer.IC(group.Group.NonEmpty())), - InstallPackageName: strings.ToLower(group.Group.NonEmpty()), + Group: Group(namer.IC(group.Group.NonEmpty())), + InstallPackageAlias: strings.ToLower(groupGoName), }) } return groupInstallPackages diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/types/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/types/types.go index c20b221c3..a2a87b1e1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/types/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/client-gen/types/types.go @@ -48,8 +48,10 @@ type GroupVersion struct { } type GroupVersions struct { - Group Group - Versions []Version + // The package name of the group, e.g. extensions or networking + PackageName string + Group Group + Versions []Version } // GroupVersionPackage contains group name, version name, and the package name client-gen will generate for this group version. @@ -58,13 +60,13 @@ type GroupVersionPackage struct { Version Version // If a user calls a group client without specifying the version (e.g., // c.Core(), instead of c.CoreV1()), the default version will be returned. - IsDefaultVersion bool - GroupVersion string - LowerCaseGroupVersion string - PackageName string + IsDefaultVersion bool + PackageAlias string + GroupGoName string + LowerCaseGroupGoName string } type GroupInstallPackage struct { - Group Group - InstallPackageName string + Group Group + InstallPackageAlias string } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go index 71fb73103..e4adff5d1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go @@ -32,9 +32,23 @@ import ( "github.com/golang/glog" ) +// DefaultBasePeerDirs are the peer-dirs nearly everybody will use, i.e. those coming from +// apimachinery. +var DefaultBasePeerDirs = []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1", + "k8s.io/apimachinery/pkg/conversion", + "k8s.io/apimachinery/pkg/runtime", +} + // CustomArgs is used by the gengo framework to pass args specific to this generator. type CustomArgs struct { - ExtraPeerDirs []string // Always consider these as last-ditch possibilities for conversions. + // Base peer dirs which nearly everybody will use, i.e. outside of Kubernetes core. + BasePeerDirs []string + + // Custom peer dirs which are application specific. Always consider these as + // last-ditch possibilities for conversions. + ExtraPeerDirs []string // + // Skipunsafe indicates whether to generate unsafe conversions to improve the efficiency // of these operations. The unsafe operation is a direct pointer assignment via unsafe // (within the allowed uses of unsafe) and is equivalent to a proposed Golang change to @@ -247,9 +261,8 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat } skipUnsafe := false if customArgs, ok := arguments.CustomArgs.(*CustomArgs); ok { - if len(customArgs.ExtraPeerDirs) > 0 { - peerPkgs = append(peerPkgs, customArgs.ExtraPeerDirs...) - } + peerPkgs = append(peerPkgs, customArgs.BasePeerDirs...) + peerPkgs = append(peerPkgs, customArgs.ExtraPeerDirs...) skipUnsafe = customArgs.SkipUnsafe } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/conversion-gen/main.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/conversion-gen/main.go index 510a1303d..aab38ad1a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/conversion-gen/main.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/conversion-gen/main.go @@ -48,21 +48,14 @@ func main() { arguments := args.Default() // Custom args. - // TODO: make callers pass this in. It is too opaque here, and any use of - // the flag that DOESN'T include these is broken. customArgs := &generators.CustomArgs{ - ExtraPeerDirs: []string{ - "k8s.io/kubernetes/pkg/api", - "k8s.io/kubernetes/pkg/api/v1", - "k8s.io/api/core/v1", - "k8s.io/apimachinery/pkg/apis/meta/v1", - "k8s.io/apimachinery/pkg/conversion", - "k8s.io/apimachinery/pkg/runtime", - }, - SkipUnsafe: false, + BasePeerDirs: generators.DefaultBasePeerDirs, + SkipUnsafe: false, } + pflag.CommandLine.StringSliceVar(&customArgs.BasePeerDirs, "base-peer-dirs", customArgs.BasePeerDirs, + "Comma-separated list of apimachinery import paths which are considered, after tag-specified peers, for conversions. Only change these if you have very good reasons.") pflag.CommandLine.StringSliceVar(&customArgs.ExtraPeerDirs, "extra-peer-dirs", customArgs.ExtraPeerDirs, - "Comma-separated list of import paths which are considered, after tag-specified peers, for conversions.") + "Application specific comma-separated list of import paths which are considered, after tag-specified peers and base-peer-dirs, for conversions.") pflag.CommandLine.BoolVar(&customArgs.SkipUnsafe, "skip-unsafe", customArgs.SkipUnsafe, "If true, will not generate code using unsafe pointer conversions; resulting code may be slower.") diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/main.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/main.go index b045acaf8..75cd29b2e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/main.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/deepcopy-gen/main.go @@ -30,11 +30,6 @@ limitations under the License. // one file, of the form: // // +k8s:deepcopy-gen=package // -// Packages can request that the generated DeepCopy functions be registered -// with an `init()` function call to `Scheme.AddGeneratedDeepCopyFuncs()` by -// changing the tag to: -// // +k8s:deepcopy-gen=package,register -// // DeepCopy functions can be generated for individual types, rather than the // entire package by specifying a comment on the type definion of the form: // // +k8s:deepcopy-gen=true diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/main.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/main.go index 8a7271939..ce1756c11 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/main.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/go-to-protobuf/main.go @@ -19,15 +19,17 @@ limitations under the License. package main import ( - "k8s.io/code-generator/cmd/go-to-protobuf/protobuf" + goflag "flag" flag "github.com/spf13/pflag" + "k8s.io/code-generator/cmd/go-to-protobuf/protobuf" ) var g = protobuf.New() func init() { g.BindFlags(flag.CommandLine) + flag.CommandLine.AddGoFlagSet(goflag.CommandLine) } func main() { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/factory.go index 16f733506..2a91aaa9e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/factory.go @@ -18,6 +18,7 @@ package generators import ( "io" + "path" clientgentypes "k8s.io/code-generator/cmd/client-gen/types" "k8s.io/gengo/generator" @@ -34,6 +35,7 @@ type factoryGenerator struct { outputPackage string imports namer.ImportTracker groupVersions map[string]clientgentypes.GroupVersions + gvGoNames map[string]string clientSetPackage string internalInterfacesPackage string filtered bool @@ -67,23 +69,26 @@ func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w i gvInterfaces := make(map[string]*types.Type) gvNewFuncs := make(map[string]*types.Type) - for groupName := range g.groupVersions { - gvInterfaces[groupName] = c.Universe.Type(types.Name{Package: packageForGroup(vendorless(g.outputPackage), g.groupVersions[groupName].Group), Name: "Interface"}) - gvNewFuncs[groupName] = c.Universe.Function(types.Name{Package: packageForGroup(vendorless(g.outputPackage), g.groupVersions[groupName].Group), Name: "New"}) + for groupPkgName := range g.groupVersions { + gvInterfaces[groupPkgName] = c.Universe.Type(types.Name{Package: path.Join(g.outputPackage, groupPkgName), Name: "Interface"}) + gvNewFuncs[groupPkgName] = c.Universe.Function(types.Name{Package: path.Join(g.outputPackage, groupPkgName), Name: "New"}) } m := map[string]interface{}{ - "cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer), - "groupVersions": g.groupVersions, - "gvInterfaces": gvInterfaces, - "gvNewFuncs": gvNewFuncs, - "interfacesNewInformerFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "NewInformerFunc"}), - "informerFactoryInterface": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}), - "clientSetInterface": c.Universe.Type(types.Name{Package: g.clientSetPackage, Name: "Interface"}), - "reflectType": c.Universe.Type(reflectType), - "runtimeObject": c.Universe.Type(runtimeObject), - "schemaGroupVersionResource": c.Universe.Type(schemaGroupVersionResource), - "syncMutex": c.Universe.Type(syncMutex), - "timeDuration": c.Universe.Type(timeDuration), + "cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer), + "groupVersions": g.groupVersions, + "gvInterfaces": gvInterfaces, + "gvNewFuncs": gvNewFuncs, + "gvGoNames": g.gvGoNames, + "interfacesNewInformerFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "NewInformerFunc"}), + "interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}), + "informerFactoryInterface": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}), + "clientSetInterface": c.Universe.Type(types.Name{Package: g.clientSetPackage, Name: "Interface"}), + "reflectType": c.Universe.Type(reflectType), + "runtimeObject": c.Universe.Type(runtimeObject), + "schemaGroupVersionResource": c.Universe.Type(schemaGroupVersionResource), + "syncMutex": c.Universe.Type(syncMutex), + "timeDuration": c.Universe.Type(timeDuration), + "namespaceAll": c.Universe.Type(metav1NamespaceAll), } sw.Do(sharedInformerFactoryStruct, m) @@ -95,6 +100,8 @@ func (g *factoryGenerator) GenerateType(c *generator.Context, t *types.Type, w i var sharedInformerFactoryStruct = ` type sharedInformerFactory struct { client {{.clientSetInterface|raw}} + namespace string + tweakListOptions {{.interfacesTweakListOptionsFunc|raw}} lock {{.syncMutex|raw}} defaultResync {{.timeDuration|raw}} @@ -106,8 +113,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client {{.clientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, {{.namespaceAll|raw}}, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client {{.clientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}, namespace string, tweakListOptions {{.interfacesTweakListOptionsFunc|raw}}) SharedInformerFactory { return &sharedInformerFactory{ - client: client, + client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[{{.reflectType|raw}}]{{.cacheSharedIndexInformer|raw}}), startedInformers: make(map[{{.reflectType|raw}}]bool), @@ -177,14 +193,16 @@ type SharedInformerFactory interface { WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool {{$gvInterfaces := .gvInterfaces}} - {{range $groupName, $group := .groupVersions}}{{$groupName}}() {{index $gvInterfaces $groupName|raw}} + {{$gvGoNames := .gvGoNames}} + {{range $groupName, $group := .groupVersions}}{{index $gvGoNames $groupName}}() {{index $gvInterfaces $groupName|raw}} {{end}} } {{$gvNewFuncs := .gvNewFuncs}} -{{range $groupName, $group := .groupVersions}} -func (f *sharedInformerFactory) {{$groupName}}() {{index $gvInterfaces $groupName|raw}} { - return {{index $gvNewFuncs $groupName|raw}}(f) +{{$gvGoNames := .gvGoNames}} +{{range $groupPkgName, $group := .groupVersions}} +func (f *sharedInformerFactory) {{index $gvGoNames $groupPkgName}}() {{index $gvInterfaces $groupPkgName|raw}} { + return {{index $gvNewFuncs $groupPkgName|raw}}(f, f.namespace, f.tweakListOptions) } {{end}} ` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/factoryinterface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/factoryinterface.go index 011fea20b..c78180438 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/factoryinterface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/factoryinterface.go @@ -67,6 +67,7 @@ func (g *factoryInterfaceGenerator) GenerateType(c *generator.Context, t *types. "clientSetPackage": c.Universe.Type(types.Name{Package: g.clientSetPackage, Name: "Interface"}), "runtimeObject": c.Universe.Type(runtimeObject), "timeDuration": c.Universe.Type(timeDuration), + "v1ListOptions": c.Universe.Type(v1ListOptions), } sw.Do(externalSharedInformerFactoryInterface, m) @@ -82,4 +83,6 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj {{.runtimeObject|raw}}, newFunc NewInformerFunc) {{.cacheSharedIndexInformer|raw}} } + +type TweakListOptionsFunc func(*{{.v1ListOptions|raw}}) ` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/generic.go index 4054b577d..891cac313 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/generic.go @@ -33,6 +33,7 @@ type genericGenerator struct { outputPackage string imports namer.ImportTracker groupVersions map[string]clientgentypes.GroupVersions + groupGoNames map[string]string typesForGroupVersion map[clientgentypes.GroupVersion][]*types.Type filtered bool } @@ -65,8 +66,9 @@ func (g *genericGenerator) Imports(c *generator.Context) (imports []string) { } type group struct { - Name string - Versions []*version + GroupGoName string + Name string + Versions []*version } type groupSort []group @@ -77,6 +79,7 @@ func (g groupSort) Swap(i, j int) { g[i], g[j] = g[j], g[i] } type version struct { Name string + GoName string Resources []*types.Type } @@ -95,15 +98,17 @@ func (g *genericGenerator) GenerateType(c *generator.Context, t *types.Type, w i schemeGVs := make(map[*version]*types.Type) orderer := namer.Orderer{Namer: namer.NewPrivateNamer(0)} - for _, groupVersions := range g.groupVersions { + for groupPackageName, groupVersions := range g.groupVersions { group := group{ - Name: namer.IC(groupVersions.Group.NonEmpty()), - Versions: []*version{}, + GroupGoName: g.groupGoNames[groupPackageName], + Name: groupVersions.Group.NonEmpty(), + Versions: []*version{}, } for _, v := range groupVersions.Versions { gv := clientgentypes.GroupVersion{Group: groupVersions.Group, Version: v} version := &version{ - Name: namer.IC(v.NonEmpty()), + Name: v.NonEmpty(), + GoName: namer.IC(v.NonEmpty()), Resources: orderer.OrderTypes(g.typesForGroupVersion[gv]), } schemeGVs[version] = c.Universe.Variable(types.Name{Package: g.typesForGroupVersion[gv][0].Name.Package, Name: "SchemeGroupVersion"}) @@ -159,12 +164,12 @@ var forResource = ` // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource {{.schemaGroupVersionResource|raw}}) (GenericInformer, error) { switch resource { - {{range $group := .groups -}} + {{range $group := .groups -}}{{$GroupGoName := .GroupGoName -}} {{range $version := .Versions -}} - // Group={{$group.Name}}, Version={{.Name}} + // Group={{$group.Name}}, Version={{.Name}} {{range .Resources -}} case {{index $.schemeGVs $version|raw}}.WithResource("{{.|allLowercasePlural}}"): - return &genericInformer{resource: resource.GroupResource(), informer: f.{{$group.Name}}().{{$version.Name}}().{{.|publicPlural}}().Informer()}, nil + return &genericInformer{resource: resource.GroupResource(), informer: f.{{$GroupGoName}}().{{$version.GoName}}().{{.|publicPlural}}().Informer()}, nil {{end}} {{end}} {{end -}} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/groupinterface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/groupinterface.go index bc6468ea5..253b79f37 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/groupinterface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/groupinterface.go @@ -79,6 +79,7 @@ func (g *groupInterfaceGenerator) GenerateType(c *generator.Context, t *types.Ty }) } m := map[string]interface{}{ + "interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}), "interfacesSharedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}), "versions": versions, } @@ -98,18 +99,20 @@ type Interface interface { } type group struct { - $.interfacesSharedInformerFactory|raw$ + factory $.interfacesSharedInformerFactory|raw$ + namespace string + tweakListOptions $.interfacesTweakListOptionsFunc|raw$ } // New returns a new Interface. -func New(f $.interfacesSharedInformerFactory|raw$) Interface { - return &group{f} +func New(f $.interfacesSharedInformerFactory|raw$, namespace string, tweakListOptions $.interfacesTweakListOptionsFunc|raw$) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } $range .versions$ // $.Name$ returns a new $.Interface|raw$. func (g *group) $.Name$() $.Interface|raw$ { - return $.New|raw$(g.SharedInformerFactory) + return $.New|raw$(g.factory, g.namespace, g.tweakListOptions) } $end$ ` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/informer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/informer.go index 939d271fa..22b09fd50 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/informer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/informer.go @@ -36,7 +36,9 @@ import ( type informerGenerator struct { generator.DefaultGen outputPackage string + groupPkgName string groupVersion clientgentypes.GroupVersion + groupGoName string typeToGenerate *types.Type imports namer.ImportTracker clientSetPackage string @@ -66,8 +68,7 @@ func (g *informerGenerator) GenerateType(c *generator.Context, t *types.Type, w glog.V(5).Infof("processing type %v", t) - //listerPackage := "k8s.io/kubernetes/pkg/client/listers/" + g.groupVersion.Group.NonEmpty() + "/" + strings.ToLower(g.groupVersion.Version.NonEmpty()) - listerPackage := fmt.Sprintf("%s/%s/%s", g.listersPackage, g.groupVersion.Group.NonEmpty(), strings.ToLower(g.groupVersion.Version.NonEmpty())) + listerPackage := fmt.Sprintf("%s/%s/%s", g.listersPackage, g.groupPkgName, strings.ToLower(g.groupVersion.Version.NonEmpty())) clientSetInterface := c.Universe.Type(types.Name{Package: g.clientSetPackage, Name: "Interface"}) informerFor := "InformerFor" @@ -85,8 +86,9 @@ func (g *informerGenerator) GenerateType(c *generator.Context, t *types.Type, w "cacheNewSharedIndexInformer": c.Universe.Function(cacheNewSharedIndexInformer), "cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer), "clientSetInterface": clientSetInterface, - "group": namer.IC(g.groupVersion.Group.NonEmpty()), + "group": namer.IC(g.groupGoName), "informerFor": informerFor, + "interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}), "interfacesSharedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}), "listOptions": c.Universe.Type(listOptions), "lister": c.Universe.Type(types.Name{Package: listerPackage, Name: t.Name.Name + "Lister"}), @@ -104,6 +106,7 @@ func (g *informerGenerator) GenerateType(c *generator.Context, t *types.Type, w sw.Do(typeInformerInterface, m) sw.Do(typeInformerStruct, m) sw.Do(typeInformerPublicConstructor, m) + sw.Do(typeFilteredInformerPublicConstructor, m) sw.Do(typeInformerConstructor, m) sw.Do(typeInformerInformer, m) sw.Do(typeInformerLister, m) @@ -123,6 +126,8 @@ type $.type|public$Informer interface { var typeInformerStruct = ` type $.type|private$Informer struct { factory $.interfacesSharedInformerFactory|raw$ + tweakListOptions $.interfacesTweakListOptionsFunc|raw$ + $if .namespaced$namespace string$end$ } ` @@ -131,12 +136,27 @@ var typeInformerPublicConstructor = ` // 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 New$.type|public$Informer(client $.clientSetInterface|raw$$if .namespaced$, namespace string$end$, resyncPeriod $.timeDuration|raw$, indexers $.cacheIndexers|raw$) $.cacheSharedIndexInformer|raw$ { + return NewFiltered$.type|public$Informer(client$if .namespaced$, namespace$end$, resyncPeriod, indexers, nil) +} +` + +var typeFilteredInformerPublicConstructor = ` +// NewFiltered$.type|public$Informer constructs a new informer for $.type|public$ 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 NewFiltered$.type|public$Informer(client $.clientSetInterface|raw$$if .namespaced$, namespace string$end$, resyncPeriod $.timeDuration|raw$, indexers $.cacheIndexers|raw$, tweakListOptions $.interfacesTweakListOptionsFunc|raw$) $.cacheSharedIndexInformer|raw$ { return $.cacheNewSharedIndexInformer|raw$( &$.cacheListWatch|raw${ ListFunc: func(options $.v1ListOptions|raw$) ($.runtimeObject|raw$, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.$.group$$.version$().$.type|publicPlural$($if .namespaced$namespace$end$).List(options) }, WatchFunc: func(options $.v1ListOptions|raw$) ($.watchInterface|raw$, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.$.group$$.version$().$.type|publicPlural$($if .namespaced$namespace$end$).Watch(options) }, }, @@ -148,14 +168,14 @@ func New$.type|public$Informer(client $.clientSetInterface|raw$$if .namespaced$, ` var typeInformerConstructor = ` -func default$.type|public$Informer(client $.clientSetInterface|raw$, resyncPeriod $.timeDuration|raw$) $.cacheSharedIndexInformer|raw$ { - return New$.type|public$Informer(client, $if .namespaced$$.namespaceAll|raw$, $end$resyncPeriod, $.cacheIndexers|raw${$.cacheNamespaceIndex|raw$: $.cacheMetaNamespaceIndexFunc|raw$}) +func (f *$.type|private$Informer) defaultInformer(client $.clientSetInterface|raw$, resyncPeriod $.timeDuration|raw$) $.cacheSharedIndexInformer|raw$ { + return NewFiltered$.type|public$Informer(client$if .namespaced$, f.namespace$end$, resyncPeriod, $.cacheIndexers|raw${$.cacheNamespaceIndex|raw$: $.cacheMetaNamespaceIndexFunc|raw$}, f.tweakListOptions) } ` var typeInformerInformer = ` func (f *$.type|private$Informer) Informer() $.cacheSharedIndexInformer|raw$ { - return f.factory.$.informerFor$(&$.type|raw${}, default$.type|public$Informer) + return f.factory.$.informerFor$(&$.type|raw${}, f.defaultInformer) } ` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/packages.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/packages.go index 593e56a2b..f65443af3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/packages.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/packages.go @@ -92,10 +92,6 @@ func isInternal(m types.Member) bool { return !strings.Contains(m.Tags, "json") } -func packageForGroup(base string, group clientgentypes.Group) string { - return filepath.Join(base, group.NonEmpty()) -} - func packageForInternalInterfaces(base string) string { return filepath.Join(base, "internalinterfaces") } @@ -133,6 +129,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat externalGroupVersions := make(map[string]clientgentypes.GroupVersions) internalGroupVersions := make(map[string]clientgentypes.GroupVersions) + groupGoNames := make(map[string]string) for _, inputDir := range arguments.InputDirs { p := context.Universe.Package(vendorless(inputDir)) @@ -161,12 +158,20 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat gv.Version = clientgentypes.Version(parts[len(parts)-1]) targetGroupVersions = externalGroupVersions } + groupPkgName := strings.ToLower(gv.Group.NonEmpty()) // If there's a comment of the form "// +groupName=somegroup" or // "// +groupName=somegroup.foo.bar.io", use the first field (somegroup) as the name of the // group when generating. - if override := types.ExtractCommentTags("+", p.DocComments)["groupName"]; override != nil { - gv.Group = clientgentypes.Group(strings.SplitN(override[0], ".", 2)[0]) + if override := types.ExtractCommentTags("+", p.Comments)["groupName"]; override != nil { + gv.Group = clientgentypes.Group(override[0]) + } + + // If there's a comment of the form "// +groupGoName=SomeUniqueShortName", use that as + // the Go group identifier in CamelCase. It defaults + groupGoNames[groupPkgName] = namer.IC(strings.Split(gv.Group.NonEmpty(), ".")[0]) + if override := types.ExtractCommentTags("+", p.Comments)["groupGoName"]; override != nil { + groupGoNames[groupPkgName] = namer.IC(override[0]) } var typesToGenerate []*types.Type @@ -187,50 +192,46 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat continue } - icGroupName := namer.IC(gv.Group.NonEmpty()) - groupVersionsEntry, ok := targetGroupVersions[icGroupName] + groupVersionsEntry, ok := targetGroupVersions[groupPkgName] if !ok { groupVersionsEntry = clientgentypes.GroupVersions{ - Group: gv.Group, + PackageName: groupPkgName, + Group: gv.Group, } } groupVersionsEntry.Versions = append(groupVersionsEntry.Versions, gv.Version) - targetGroupVersions[icGroupName] = groupVersionsEntry + targetGroupVersions[groupPkgName] = groupVersionsEntry orderer := namer.Orderer{Namer: namer.NewPrivateNamer(0)} typesToGenerate = orderer.OrderTypes(typesToGenerate) if internal { - packageList = append(packageList, versionPackage(internalVersionPackagePath, gv, boilerplate, typesToGenerate, customArgs.InternalClientSetPackage, customArgs.ListersPackage)) + packageList = append(packageList, versionPackage(internalVersionPackagePath, groupPkgName, gv, groupGoNames[groupPkgName], boilerplate, typesToGenerate, customArgs.InternalClientSetPackage, customArgs.ListersPackage)) } else { - packageList = append(packageList, versionPackage(externalVersionPackagePath, gv, boilerplate, typesToGenerate, customArgs.VersionedClientSetPackage, customArgs.ListersPackage)) + packageList = append(packageList, versionPackage(externalVersionPackagePath, groupPkgName, gv, groupGoNames[groupPkgName], boilerplate, typesToGenerate, customArgs.VersionedClientSetPackage, customArgs.ListersPackage)) } } if len(externalGroupVersions) != 0 { - packageList = append(packageList, factoryInterfacePackage(externalVersionPackagePath, boilerplate, customArgs.VersionedClientSetPackage, typesForGroupVersion)) - packageList = append(packageList, factoryPackage(externalVersionPackagePath, boilerplate, externalGroupVersions, customArgs.VersionedClientSetPackage, typesForGroupVersion)) - for _, groupVersionsEntry := range externalGroupVersions { - packageList = append(packageList, groupPackage(externalVersionPackagePath, groupVersionsEntry, boilerplate)) + packageList = append(packageList, factoryInterfacePackage(externalVersionPackagePath, boilerplate, customArgs.VersionedClientSetPackage)) + packageList = append(packageList, factoryPackage(externalVersionPackagePath, boilerplate, groupGoNames, externalGroupVersions, customArgs.VersionedClientSetPackage, typesForGroupVersion)) + for _, gvs := range externalGroupVersions { + packageList = append(packageList, groupPackage(externalVersionPackagePath, gvs, boilerplate)) } } if len(internalGroupVersions) != 0 { - packageList = append(packageList, factoryInterfacePackage(internalVersionPackagePath, boilerplate, customArgs.InternalClientSetPackage, typesForGroupVersion)) - packageList = append(packageList, factoryPackage(internalVersionPackagePath, boilerplate, internalGroupVersions, customArgs.InternalClientSetPackage, typesForGroupVersion)) - for _, groupVersionsEntry := range internalGroupVersions { - packageList = append(packageList, groupPackage(internalVersionPackagePath, groupVersionsEntry, boilerplate)) + packageList = append(packageList, factoryInterfacePackage(internalVersionPackagePath, boilerplate, customArgs.InternalClientSetPackage)) + packageList = append(packageList, factoryPackage(internalVersionPackagePath, boilerplate, groupGoNames, internalGroupVersions, customArgs.InternalClientSetPackage, typesForGroupVersion)) + for _, gvs := range internalGroupVersions { + packageList = append(packageList, groupPackage(internalVersionPackagePath, gvs, boilerplate)) } } return packageList } -func isInternalVersion(gv clientgentypes.GroupVersion) bool { - return len(gv.Version) == 0 -} - -func factoryPackage(basePackage string, boilerplate []byte, groupVersions map[string]clientgentypes.GroupVersions, clientSetPackage string, typesForGroupVersion map[clientgentypes.GroupVersion][]*types.Type) generator.Package { +func factoryPackage(basePackage string, boilerplate []byte, groupGoNames map[string]string, groupVersions map[string]clientgentypes.GroupVersions, clientSetPackage string, typesForGroupVersion map[clientgentypes.GroupVersion][]*types.Type) generator.Package { return &generator.DefaultPackage{ PackageName: filepath.Base(basePackage), PackagePath: basePackage, @@ -245,6 +246,7 @@ func factoryPackage(basePackage string, boilerplate []byte, groupVersions map[st groupVersions: groupVersions, clientSetPackage: clientSetPackage, internalInterfacesPackage: packageForInternalInterfaces(basePackage), + gvGoNames: groupGoNames, }) generators = append(generators, &genericGenerator{ @@ -255,6 +257,7 @@ func factoryPackage(basePackage string, boilerplate []byte, groupVersions map[st imports: generator.NewImportTracker(), groupVersions: groupVersions, typesForGroupVersion: typesForGroupVersion, + groupGoNames: groupGoNames, }) return generators @@ -262,7 +265,7 @@ func factoryPackage(basePackage string, boilerplate []byte, groupVersions map[st } } -func factoryInterfacePackage(basePackage string, boilerplate []byte, clientSetPackage string, typesForGroupVersion map[clientgentypes.GroupVersion][]*types.Type) generator.Package { +func factoryInterfacePackage(basePackage string, boilerplate []byte, clientSetPackage string) generator.Package { packagePath := packageForInternalInterfaces(basePackage) return &generator.DefaultPackage{ @@ -285,10 +288,11 @@ func factoryInterfacePackage(basePackage string, boilerplate []byte, clientSetPa } func groupPackage(basePackage string, groupVersions clientgentypes.GroupVersions, boilerplate []byte) generator.Package { - packagePath := filepath.Join(basePackage, strings.ToLower(groupVersions.Group.NonEmpty())) + packagePath := filepath.Join(basePackage, groupVersions.PackageName) + groupPkgName := strings.Split(string(groupVersions.Group), ".")[0] return &generator.DefaultPackage{ - PackageName: strings.ToLower(groupVersions.Group.NonEmpty()), + PackageName: groupPkgName, PackagePath: packagePath, HeaderText: boilerplate, GeneratorFunc: func(c *generator.Context) (generators []generator.Generator) { @@ -310,8 +314,8 @@ func groupPackage(basePackage string, groupVersions clientgentypes.GroupVersions } } -func versionPackage(basePackage string, gv clientgentypes.GroupVersion, boilerplate []byte, typesToGenerate []*types.Type, clientSetPackage, listersPackage string) generator.Package { - packagePath := filepath.Join(basePackage, strings.ToLower(gv.Group.NonEmpty()), strings.ToLower(gv.Version.NonEmpty())) +func versionPackage(basePackage string, groupPkgName string, gv clientgentypes.GroupVersion, groupGoName string, boilerplate []byte, typesToGenerate []*types.Type, clientSetPackage, listersPackage string) generator.Package { + packagePath := filepath.Join(basePackage, groupPkgName, strings.ToLower(gv.Version.NonEmpty())) return &generator.DefaultPackage{ PackageName: strings.ToLower(gv.Version.NonEmpty()), @@ -334,7 +338,9 @@ func versionPackage(basePackage string, gv clientgentypes.GroupVersion, boilerpl OptionalName: strings.ToLower(t.Name.Name), }, outputPackage: packagePath, + groupPkgName: groupPkgName, groupVersion: gv, + groupGoName: groupGoName, typeToGenerate: t, imports: generator.NewImportTracker(), clientSetPackage: clientSetPackage, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/types.go index 5a58dc513..ecefb078c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/types.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/types.go @@ -19,7 +19,7 @@ package generators import "k8s.io/gengo/types" var ( - apiScheme = types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "Scheme"} + apiScheme = types.Name{Package: "k8s.io/kubernetes/pkg/api/legacyscheme", Name: "Scheme"} cacheGenericLister = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "GenericLister"} cacheIndexers = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "Indexers"} cacheListWatch = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "ListWatch"} @@ -28,7 +28,7 @@ var ( cacheNewGenericLister = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewGenericLister"} cacheNewSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewSharedIndexInformer"} cacheSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "SharedIndexInformer"} - listOptions = types.Name{Package: "k8s.io/kubernetes/pkg/api", Name: "ListOptions"} + listOptions = types.Name{Package: "k8s.io/kubernetes/pkg/apis/core", Name: "ListOptions"} reflectType = types.Name{Package: "reflect", Name: "Type"} runtimeObject = types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "Object"} schemaGroupResource = types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupResource"} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/versioninterface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/versioninterface.go index 23f7286f0..1cd27d5cd 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/versioninterface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/informer-gen/generators/versioninterface.go @@ -22,6 +22,8 @@ import ( "k8s.io/gengo/generator" "k8s.io/gengo/namer" "k8s.io/gengo/types" + + "k8s.io/code-generator/cmd/client-gen/generators/util" ) // versionInterfaceGenerator generates the per-version interface file. @@ -59,11 +61,21 @@ func (g *versionInterfaceGenerator) GenerateType(c *generator.Context, t *types. sw := generator.NewSnippetWriter(w, c, "$", "$") m := map[string]interface{}{ + "interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}), "interfacesSharedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}), "types": g.types, } sw.Do(versionTemplate, m) + for _, typeDef := range g.types { + tags, err := util.ParseClientGenTags(typeDef.SecondClosestCommentLines) + if err != nil { + return err + } + m["namespaced"] = !tags.NonNamespaced + m["type"] = typeDef + sw.Do(versionFuncTemplate, m) + } return sw.Error() } @@ -78,18 +90,20 @@ type Interface interface { } type version struct { - $.interfacesSharedInformerFactory|raw$ + factory $.interfacesSharedInformerFactory|raw$ + namespace string + tweakListOptions $.interfacesTweakListOptionsFunc|raw$ } // New returns a new Interface. -func New(f $.interfacesSharedInformerFactory|raw$) Interface { - return &version{f} +func New(f $.interfacesSharedInformerFactory|raw$, namespace string, tweakListOptions $.interfacesTweakListOptionsFunc|raw$) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } +` -$range .types$ -// $.|publicPlural$ returns a $.|public$Informer. -func (v *version) $.|publicPlural$() $.|public$Informer { - return &$.|private$Informer{factory: v.SharedInformerFactory} +var versionFuncTemplate = ` +// $.type|publicPlural$ returns a $.type|public$Informer. +func (v *version) $.type|publicPlural$() $.type|public$Informer { + return &$.type|private$Informer{factory: v.factory$if .namespaced$, namespace: v.namespace$end$, tweakListOptions: v.tweakListOptions} } -$end$ ` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/lister-gen/generators/lister.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/lister-gen/generators/lister.go index 9466e3cb0..11e1af0ad 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/lister-gen/generators/lister.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/cmd/lister-gen/generators/lister.go @@ -107,11 +107,12 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat internalGVPkg = strings.Join(parts[0:len(parts)-1], "/") } + groupPackageName := strings.ToLower(gv.Group.NonEmpty()) // If there's a comment of the form "// +groupName=somegroup" or // "// +groupName=somegroup.foo.bar.io", use the first field (somegroup) as the name of the // group when generating. - if override := types.ExtractCommentTags("+", p.DocComments)["groupName"]; override != nil { + if override := types.ExtractCommentTags("+", p.Comments)["groupName"]; override != nil { gv.Group = clientgentypes.Group(strings.SplitN(override[0], ".", 2)[0]) } @@ -129,7 +130,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat orderer := namer.Orderer{Namer: namer.NewPrivateNamer(0)} typesToGenerate = orderer.OrderTypes(typesToGenerate) - packagePath := filepath.Join(arguments.OutputPackagePath, strings.ToLower(gv.Group.NonEmpty()), strings.ToLower(gv.Version.NonEmpty())) + packagePath := filepath.Join(arguments.OutputPackagePath, groupPackageName, strings.ToLower(gv.Version.NonEmpty())) packageList = append(packageList, &generator.DefaultPackage{ PackageName: strings.ToLower(gv.Version.NonEmpty()), PackagePath: packagePath, @@ -322,8 +323,7 @@ func (s *$.type|private$Lister) $.type|publicPlural$(namespace string) $.type|pu var typeLister_NonNamespacedGet = ` // Get retrieves the $.type|public$ from the index for a given name. func (s *$.type|private$Lister) Get(name string) (*$.type|raw$, error) { - key := &$.type|raw${ObjectMeta: $.objectMeta|raw${Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/generate-internal-groups.sh b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/generate-internal-groups.sh index 703d40864..b995dd4d5 100755 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/generate-internal-groups.sh +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/generate-internal-groups.sh @@ -87,7 +87,7 @@ fi if [ "${GENS}" = "all" ] || grep -qw "client" <<<"${GENS}"; then echo "Generating clientset for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/clientset" if [ -n "${INT_APIS_PKG}" ]; then - ${GOPATH}/bin/client-gen --clientset-name internalversion --input-base "" --input $(codegen::join "/," "${INT_FQ_APIS[@]}")/ --clientset-path ${OUTPUT_PKG}/clientset "$@" + ${GOPATH}/bin/client-gen --clientset-name internalversion --input-base "" --input $(codegen::join , $(printf '%s/ ' "${INT_FQ_APIS[@]}")) --clientset-path ${OUTPUT_PKG}/clientset "$@" fi ${GOPATH}/bin/client-gen --clientset-name versioned --input-base "" --input $(codegen::join , "${EXT_FQ_APIS[@]}") --clientset-path ${OUTPUT_PKG}/clientset "$@" fi diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/hack/update-codegen.sh b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/hack/update-codegen.sh index 3dd210eed..e38a0d92c 100755 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/hack/update-codegen.sh +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/hack/update-codegen.sh @@ -24,9 +24,9 @@ set -o pipefail # instead of the $GOPATH directly. For normal projects this can be dropped. $(dirname ${BASH_SOURCE})/../generate-internal-groups.sh all \ k8s.io/code-generator/_examples/apiserver k8s.io/code-generator/_examples/apiserver/apis k8s.io/code-generator/_examples/apiserver/apis \ - example:v1 \ + "example:v1 example2:v1" \ --output-base "$(dirname ${BASH_SOURCE})/../../.." $(dirname ${BASH_SOURCE})/../generate-groups.sh all \ k8s.io/code-generator/_examples/crd k8s.io/code-generator/_examples/crd/apis \ - example:v1 \ + "example:v1 example2:v1" \ --output-base "$(dirname ${BASH_SOURCE})/../../.." diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/hack/verify-codegen.sh b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/hack/verify-codegen.sh index e69e11074..601a76962 100755 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/hack/verify-codegen.sh +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/code-generator/hack/verify-codegen.sh @@ -47,3 +47,7 @@ else echo "${DIFFROOT} is out of date. Please run hack/update-codegen.sh" exit 1 fi + +# smoke test +echo "Smoke testing _example by compiling..." +go build ${SCRIPT_ROOT}/_example/... \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json index 65fb053ed..e5194fa29 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/kube-aggregator", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "./..." @@ -148,27 +148,31 @@ }, { "ImportPath": "github.com/golang/protobuf/jsonpb", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/any", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/duration", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/struct", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/google/btree", @@ -490,6 +494,10 @@ "ImportPath": "gopkg.in/yaml.v2", "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" }, + { + "ImportPath": "k8s.io/api/admission/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -586,6 +594,10 @@ "ImportPath": "k8s.io/api/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/api/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -786,6 +798,10 @@ "ImportPath": "k8s.io/apimachinery/pkg/util/wait", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/waitgroup", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -830,6 +846,34 @@ "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/config", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/errors", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/namespace", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/request", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/rules", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/validating", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/versioned", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1258,6 +1302,10 @@ "ImportPath": "k8s.io/client-go/informers/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1366,6 +1414,10 @@ "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1450,6 +1502,10 @@ "ImportPath": "k8s.io/client-go/listers/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1536,23 +1592,23 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/aggregator", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/LICENSE b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/README.md new file mode 100644 index 000000000..4b72031a9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/README.md @@ -0,0 +1,27 @@ +# kube-aggregator +## Coming Soon! + +Implements https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/aggregated-api-servers.md. + +It provides +* Provide an API for registering API servers. +* Summarize discovery information from all the servers. +* Proxy client requests to individual servers. + + +## Purpose + +We want to divide the single monolithic API server into multiple aggregated +servers. Anyone should be able to write their own aggregated API server to expose APIs they want. +Cluster admins should be able to expose new APIs at runtime by bringing up new +aggregated servers. + + +## Compatibility + +HEAD of this repo will match HEAD of k8s.io/apiserver, k8s.io/apimachinery, and k8s.io/client-go. + +## Where does it come from? + +`kube-aggregator` is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/kube-aggregator. +Code changes are made in that location, merged into `k8s.io/kubernetes` and later synced here. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD index 190f07b98..6fa710dab 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD @@ -17,7 +17,6 @@ go_library( importpath = "k8s.io/kube-aggregator/pkg/apis/apiregistration", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/doc.go index c090f1602..def606a7e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package api is the internal version of the API. // +groupName=apiregistration.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/register.go index 6a18624f5..2ab61e9b4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &APIService{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/doc.go index 594192ffd..d5de2002b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/kube-aggregator/pkg/apis/apiregistration // +k8s:openapi-gen=true diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/register.go index a8823629f..38babafa9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/register.go @@ -47,7 +47,7 @@ func init() { localSchemeBuilder.Register(addKnownTypes) } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &APIService{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.deepcopy.go index 653220a9a..dd64fbd21 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.deepcopy.go @@ -21,48 +21,9 @@ limitations under the License. package v1beta1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIService).DeepCopyInto(out.(*APIService)) - return nil - }, InType: reflect.TypeOf(&APIService{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIServiceCondition).DeepCopyInto(out.(*APIServiceCondition)) - return nil - }, InType: reflect.TypeOf(&APIServiceCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIServiceList).DeepCopyInto(out.(*APIServiceList)) - return nil - }, InType: reflect.TypeOf(&APIServiceList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIServiceSpec).DeepCopyInto(out.(*APIServiceSpec)) - return nil - }, InType: reflect.TypeOf(&APIServiceSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIServiceStatus).DeepCopyInto(out.(*APIServiceStatus)) - return nil - }, InType: reflect.TypeOf(&APIServiceStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceReference).DeepCopyInto(out.(*ServiceReference)) - return nil - }, InType: reflect.TypeOf(&ServiceReference{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *APIService) DeepCopyInto(out *APIService) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/zz_generated.deepcopy.go index 30958a6d6..ee9db9426 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/zz_generated.deepcopy.go @@ -21,48 +21,9 @@ limitations under the License. package apiregistration import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIService).DeepCopyInto(out.(*APIService)) - return nil - }, InType: reflect.TypeOf(&APIService{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIServiceCondition).DeepCopyInto(out.(*APIServiceCondition)) - return nil - }, InType: reflect.TypeOf(&APIServiceCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIServiceList).DeepCopyInto(out.(*APIServiceList)) - return nil - }, InType: reflect.TypeOf(&APIServiceList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIServiceSpec).DeepCopyInto(out.(*APIServiceSpec)) - return nil - }, InType: reflect.TypeOf(&APIServiceSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*APIServiceStatus).DeepCopyInto(out.(*APIServiceStatus)) - return nil - }, InType: reflect.TypeOf(&APIServiceStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ServiceReference).DeepCopyInto(out.(*ServiceReference)) - return nil - }, InType: reflect.TypeOf(&ServiceReference{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *APIService) DeepCopyInto(out *APIService) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go index 3e70b7a5e..f9188609e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go @@ -207,6 +207,8 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg c.GenericConfig.SharedInformerFactory.Core().V1().Services(), c.GenericConfig.SharedInformerFactory.Core().V1().Endpoints(), apiregistrationClient.Apiregistration(), + c.ExtraConfig.ProxyTransport, + s.serviceResolver, ) s.GenericAPIServer.AddPostStartHook("start-kube-aggregator-informers", func(context genericapiserver.PostStartHookContext) error { @@ -219,7 +221,8 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg return nil }) s.GenericAPIServer.AddPostStartHook("apiservice-status-available-controller", func(context genericapiserver.PostStartHookContext) error { - go availableController.Run(context.StopCh) + // if we end up blocking for long periods of time, we may need to increase threadiness. + go availableController.Run(5, context.StopCh) return nil }) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD index c68b6cf7c..30255265f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD @@ -13,6 +13,7 @@ go_library( ], importpath = "k8s.io/kube-aggregator/pkg/client/informers/externalversions", deps = [ + "//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", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/interface.go index 43e20281f..c0af56d35 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +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.SharedInformerFactory) + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/apiservice.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/apiservice.go index 82c63a38e..291fdc536 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/apiservice.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/apiservice.go @@ -38,19 +38,33 @@ type APIServiceInformer interface { } type aPIServiceInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewAPIServiceInformer constructs a new informer for APIService 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 NewAPIServiceInformer(client clientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredAPIServiceInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredAPIServiceInformer constructs a new informer for APIService 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 NewFilteredAPIServiceInformer(client clientset.Interface, 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.ApiregistrationV1beta1().APIServices().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.ApiregistrationV1beta1().APIServices().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewAPIServiceInformer(client clientset.Interface, resyncPeriod time.Duratio ) } -func defaultAPIServiceInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewAPIServiceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *aPIServiceInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredAPIServiceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *aPIServiceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiregistration_v1beta1.APIService{}, defaultAPIServiceInformer) + return f.factory.InformerFor(&apiregistration_v1beta1.APIService{}, f.defaultInformer) } func (f *aPIServiceInformer) Lister() v1beta1.APIServiceLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/interface.go index 361371494..b89a77964 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // APIServices returns a APIServiceInformer. func (v *version) APIServices() APIServiceInformer { - return &aPIServiceInformer{factory: v.SharedInformerFactory} + return &aPIServiceInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/factory.go index 96358d9f1..151006979 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/factory.go @@ -19,6 +19,7 @@ limitations under the License. package externalversions import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" @@ -31,9 +32,11 @@ import ( ) type sharedInformerFactory struct { - client clientset.Interface - lock sync.Mutex - defaultResync time.Duration + client clientset.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -43,8 +46,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client clientset.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client clientset.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -114,5 +126,5 @@ type SharedInformerFactory interface { } func (f *sharedInformerFactory) Apiregistration() apiregistration.Interface { - return apiregistration.New(f) + return apiregistration.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/generic.go index b2b1fe224..ffd303c7f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/generic.go @@ -51,7 +51,7 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Apiregistration, Version=V1beta1 + // Group=apiregistration.k8s.io, Version=v1beta1 case v1beta1.SchemeGroupVersion.WithResource("apiservices"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apiregistration().V1beta1().APIServices().Informer()}, nil diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD index c82030c44..be0d4d330 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -10,6 +10,7 @@ go_library( srcs = ["factory_interfaces.go"], importpath = "k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces", deps = [ + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go index 5b83ed72a..669705550 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -19,6 +19,7 @@ limitations under the License. package internalinterfaces import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" clientset "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD index e2fa5d752..6ac03efea 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD @@ -13,6 +13,7 @@ go_library( ], importpath = "k8s.io/kube-aggregator/pkg/client/informers/internalversion", deps = [ + "//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", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/interface.go index daa61f6fb..9d5c0dda9 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/apiservice.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/apiservice.go index a6afb6a0b..f0e0cfdeb 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/apiservice.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/apiservice.go @@ -38,19 +38,33 @@ type APIServiceInformer interface { } type aPIServiceInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewAPIServiceInformer constructs a new informer for APIService 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 NewAPIServiceInformer(client internalclientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredAPIServiceInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredAPIServiceInformer constructs a new informer for APIService 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 NewFilteredAPIServiceInformer(client internalclientset.Interface, 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.Apiregistration().APIServices().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Apiregistration().APIServices().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewAPIServiceInformer(client internalclientset.Interface, resyncPeriod time ) } -func defaultAPIServiceInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewAPIServiceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *aPIServiceInformer) defaultInformer(client internalclientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredAPIServiceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *aPIServiceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiregistration.APIService{}, defaultAPIServiceInformer) + return f.factory.InformerFor(&apiregistration.APIService{}, f.defaultInformer) } func (f *aPIServiceInformer) Lister() internalversion.APIServiceLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/interface.go index b5ee43457..a1d6f9da5 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/interface.go @@ -29,15 +29,17 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // APIServices returns a APIServiceInformer. func (v *version) APIServices() APIServiceInformer { - return &aPIServiceInformer{factory: v.SharedInformerFactory} + return &aPIServiceInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/factory.go index b59cb1f55..141c95f35 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/factory.go @@ -19,6 +19,7 @@ limitations under the License. package internalversion import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" @@ -31,9 +32,11 @@ import ( ) type sharedInformerFactory struct { - client internalclientset.Interface - lock sync.Mutex - defaultResync time.Duration + client internalclientset.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -43,8 +46,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client internalclientset.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client internalclientset.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -114,5 +126,5 @@ type SharedInformerFactory interface { } func (f *sharedInformerFactory) Apiregistration() apiregistration.Interface { - return apiregistration.New(f) + return apiregistration.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/generic.go index 914836185..e82fcf4b8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/generic.go @@ -51,7 +51,7 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Apiregistration, Version=InternalVersion + // Group=apiregistration.k8s.io, Version=internalVersion case apiregistration.SchemeGroupVersion.WithResource("apiservices"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apiregistration().InternalVersion().APIServices().Informer()}, nil diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD index 2badfa48e..93102c527 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD @@ -10,6 +10,7 @@ go_library( srcs = ["factory_interfaces.go"], importpath = "k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces", deps = [ + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go index b07867e1c..9cbdb8008 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go @@ -19,6 +19,7 @@ limitations under the License. package internalinterfaces import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" internalclientset "k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD index 67c54ae6d..5e8cbddf4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD @@ -14,7 +14,6 @@ go_library( importpath = "k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion", deps = [ "//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", "//vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/apiservice.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/apiservice.go index 24f2409d9..675d8228a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/apiservice.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/apiservice.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" apiregistration "k8s.io/kube-aggregator/pkg/apis/apiregistration" @@ -55,8 +54,7 @@ func (s *aPIServiceLister) List(selector labels.Selector) (ret []*apiregistratio // Get retrieves the APIService from the index for a given name. func (s *aPIServiceLister) Get(name string) (*apiregistration.APIService, error) { - key := &apiregistration.APIService{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD index f21b7e594..eb3a9a807 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD @@ -14,7 +14,6 @@ go_library( importpath = "k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1", deps = [ "//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", "//vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/apiservice.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/apiservice.go index 145f318e6..4ccaa6695 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/apiservice.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/apiservice.go @@ -20,7 +20,6 @@ package v1beta1 import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" v1beta1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1" @@ -55,8 +54,7 @@ func (s *aPIServiceLister) List(selector labels.Selector) (ret []*v1beta1.APISer // Get retrieves the APIService from the index for a given name. func (s *aPIServiceLister) Get(name string) (*v1beta1.APIService, error) { - key := &v1beta1.APIService{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/available_controller.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/available_controller.go index df6a2b0f4..a9bbe08a1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/available_controller.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/available_controller.go @@ -17,7 +17,10 @@ limitations under the License. package apiserver import ( + "crypto/tls" "fmt" + "net/http" + "net/url" "time" "github.com/golang/glog" @@ -42,6 +45,10 @@ import ( "k8s.io/kube-aggregator/pkg/controllers" ) +type ServiceResolver interface { + ResolveEndpoint(namespace, name string) (*url.URL, error) +} + type AvailableConditionController struct { apiServiceClient apiregistrationclient.APIServicesGetter @@ -55,6 +62,9 @@ type AvailableConditionController struct { endpointsLister v1listers.EndpointsLister endpointsSynced cache.InformerSynced + discoveryClient *http.Client + serviceResolver ServiceResolver + // To allow injection for testing. syncFn func(key string) error @@ -66,6 +76,8 @@ func NewAvailableConditionController( serviceInformer v1informers.ServiceInformer, endpointsInformer v1informers.EndpointsInformer, apiServiceClient apiregistrationclient.APIServicesGetter, + proxyTransport *http.Transport, + serviceResolver ServiceResolver, ) *AvailableConditionController { c := &AvailableConditionController{ apiServiceClient: apiServiceClient, @@ -75,14 +87,35 @@ func NewAvailableConditionController( servicesSynced: serviceInformer.Informer().HasSynced, endpointsLister: endpointsInformer.Lister(), endpointsSynced: endpointsInformer.Informer().HasSynced, + serviceResolver: serviceResolver, queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "AvailableConditionController"), } - apiServiceInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ - AddFunc: c.addAPIService, - UpdateFunc: c.updateAPIService, - DeleteFunc: c.deleteAPIService, - }) + // construct an http client that will ignore TLS verification (if someone owns the network and messes with your status + // that's not so bad) and sets a very short timeout. + discoveryClient := &http.Client{ + Transport: &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + }, + // the request should happen quickly. + Timeout: 5 * time.Second, + } + if proxyTransport != nil { + discoveryClient.Transport = proxyTransport + } + c.discoveryClient = discoveryClient + + // resync on this one because it is low cardinality and rechecking the actual discovery + // allows us to detect health in a more timely fashion when network connectivity to + // nodes is snipped, but the network still attempts to route there. See + // https://github.com/openshift/origin/issues/17159#issuecomment-341798063 + apiServiceInformer.Informer().AddEventHandlerWithResyncPeriod( + cache.ResourceEventHandlerFuncs{ + AddFunc: c.addAPIService, + UpdateFunc: c.updateAPIService, + DeleteFunc: c.deleteAPIService, + }, + 30*time.Second) serviceInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: c.addService, @@ -175,8 +208,45 @@ func (c *AvailableConditionController) sync(key string) error { return err } } + // actually try to hit the discovery endpoint when it isn't local and when we're routing as a service. + if apiService.Spec.Service != nil && c.serviceResolver != nil { + discoveryURL, err := c.serviceResolver.ResolveEndpoint(apiService.Spec.Service.Namespace, apiService.Spec.Service.Name) + if err != nil { + return err + } + + errCh := make(chan error) + go func() { + resp, err := c.discoveryClient.Get(discoveryURL.String()) + if resp != nil { + resp.Body.Close() + } + errCh <- err + }() - // TODO actually try to hit the discovery endpoint + select { + case err = <-errCh: + + // we had trouble with slow dial and DNS responses causing us to wait too long. + // we added this as insurance + case <-time.After(6 * time.Second): + err = fmt.Errorf("timed out waiting for %v", discoveryURL) + } + + if err != nil { + availableCondition.Status = apiregistration.ConditionFalse + availableCondition.Reason = "FailedDiscoveryCheck" + availableCondition.Message = fmt.Sprintf("no response from %v: %v", discoveryURL, err) + apiregistration.SetAPIServiceCondition(apiService, availableCondition) + _, updateErr := c.apiServiceClient.APIServices().UpdateStatus(apiService) + if updateErr != nil { + return updateErr + } + // force a requeue to make it very obvious that this will be retried at some point in the future + // along with other requeues done via service change, endpoint change, and resync + return err + } + } availableCondition.Reason = "Passed" availableCondition.Message = "all checks passed" @@ -185,7 +255,7 @@ func (c *AvailableConditionController) sync(key string) error { return err } -func (c *AvailableConditionController) Run(stopCh <-chan struct{}) { +func (c *AvailableConditionController) Run(threadiness int, stopCh <-chan struct{}) { defer utilruntime.HandleCrash() defer c.queue.ShutDown() @@ -196,9 +266,9 @@ func (c *AvailableConditionController) Run(stopCh <-chan struct{}) { return } - // only start one worker thread since its a slow moving API and the aggregation server adding bits - // aren't threadsafe - go wait.Until(c.runWorker, time.Second, stopCh) + for i := 0; i < threadiness; i++ { + go wait.Until(c.runWorker, time.Second, stopCh) + } <-stopCh } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go index 7a1ad78d0..b69f1a39d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go @@ -72,6 +72,6 @@ func (r *StatusREST) New() runtime.Object { } // Update alters the status subset of an object. -func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { - return r.store.Update(ctx, name, objInfo) +func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/Godeps/Godeps.json index 5d52a3aed..f04be3696 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/metrics", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "./..." @@ -60,23 +60,23 @@ }, { "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/any", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/duration", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/google/btree", @@ -298,6 +298,10 @@ "ImportPath": "k8s.io/api/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/api/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -520,7 +524,7 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/README.md new file mode 100644 index 000000000..f78ee266e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/README.md @@ -0,0 +1,71 @@ +# metrics + +Kubernetes metrics API type definitions and clients. + +## Purpose + +This repository contains type definitions and client code for the metrics +APIs that Kubernetes makes use of. Depending on the API, the actual +implementations live elsewhere. + +Consumers of the metrics APIs can make use of this repository to access +implementations of the APIs, while implementors should make use of this +library when implementing their API servers. + +## APIs + +This repository contains types and clients for several APIs. For more +details on implemenations of these apis, see +[IMPLEMENTATIONS.md](IMPLEMENTATIONS.md). + +### Custom Metrics API + +This API allows consumers to access arbitrary metrics which describe +Kubernetes resources. + +The API is intended to be implemented by monitoring pipeline vendors, on +top of their metrics storage solutions. + +If you want to implement this an API server for this API, please see the +[kubernetes-incubator/custom-metrics-apiserver](https://github.com/kubernetes-incubator/custom-metrics-apiserver) +library, which contains the basic infrastructure required to set up such +an API server. + +Import Path: `k8s.io/metrics/pkg/apis/custom_metrics`. + +### Resource Metrics API + +This API allows consumers to access resource metrics (CPU and memory) for +pods and nodes. + +The API is implemented by Heapster +(https://github.com/kubernetes/heapster) and metrics-server +(https://github.com/kubernetes-incubator/metrics-server). + +Import Path: `k8s.io/metrics/pkg/apis/metrics`. + +## Compatibility + +The APIs in this repository follow the standard guarantees for Kubernetes +APIs, and will follow Kubernetes releases. + +## Community, discussion, contribution, and support + +Learn how to engage with the Kubernetes community on the [community +page](http://kubernetes.io/community/). + +You can reach the maintainers of this repository at: + +- Slack: #sig-instrumention (on https://kubernetes.slack.com -- get an + invite at slack.kubernetes.io) +- Mailing List: + https://groups.google.com/forum/#!forum/kubernetes-sig-instrumentation + +### Code of Conduct + +Participation in the Kubernetes community is governed by the [Kubernetes +Code of Conduct](code-of-conduct.md). + +### Contibution Guidelines + +See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD index b15913ae6..93225be65 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD @@ -17,7 +17,6 @@ go_library( deps = [ "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/doc.go index 083943d1c..73997cac1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=custom.metrics.k8s.io package custom_metrics diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/doc.go index b20dfa797..57c08a216 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/metrics/pkg/apis/custom_metrics // +k8s:openapi-gen=true diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.deepcopy.go index 5b7800525..615905874 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.deepcopy.go @@ -21,32 +21,9 @@ limitations under the License. package v1beta1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricValue).DeepCopyInto(out.(*MetricValue)) - return nil - }, InType: reflect.TypeOf(&MetricValue{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricValueList).DeepCopyInto(out.(*MetricValueList)) - return nil - }, InType: reflect.TypeOf(&MetricValueList{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MetricValue) DeepCopyInto(out *MetricValue) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go index c61d3c4c8..546411634 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go @@ -21,36 +21,9 @@ limitations under the License. package custom_metrics import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricValue).DeepCopyInto(out.(*MetricValue)) - return nil - }, InType: reflect.TypeOf(&MetricValue{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*MetricValueList).DeepCopyInto(out.(*MetricValueList)) - return nil - }, InType: reflect.TypeOf(&MetricValueList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ObjectReference).DeepCopyInto(out.(*ObjectReference)) - return nil - }, InType: reflect.TypeOf(&ObjectReference{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MetricValue) DeepCopyInto(out *MetricValue) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD index e4c580d71..0b36e9d33 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD @@ -17,7 +17,6 @@ go_library( deps = [ "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/doc.go index 548724f38..9437a13f8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/doc.go @@ -14,6 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +groupName=metrics.k8s.io package metrics diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/doc.go index 76c2b9a7d..f870a997b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/metrics/pkg/apis/metrics // +k8s:openapi-gen=true diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.deepcopy.go index e4223daa4..d15c9ce8e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.deepcopy.go @@ -22,44 +22,9 @@ package v1alpha1 import ( v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerMetrics).DeepCopyInto(out.(*ContainerMetrics)) - return nil - }, InType: reflect.TypeOf(&ContainerMetrics{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeMetrics).DeepCopyInto(out.(*NodeMetrics)) - return nil - }, InType: reflect.TypeOf(&NodeMetrics{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeMetricsList).DeepCopyInto(out.(*NodeMetricsList)) - return nil - }, InType: reflect.TypeOf(&NodeMetricsList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodMetrics).DeepCopyInto(out.(*PodMetrics)) - return nil - }, InType: reflect.TypeOf(&PodMetrics{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodMetricsList).DeepCopyInto(out.(*PodMetricsList)) - return nil - }, InType: reflect.TypeOf(&PodMetricsList{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ContainerMetrics) DeepCopyInto(out *ContainerMetrics) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/doc.go index ec9ac583b..2f93e6aa8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/metrics/pkg/apis/metrics // +k8s:openapi-gen=true diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go index 3f67eeff2..2a0571a90 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go @@ -22,44 +22,9 @@ package v1beta1 import ( v1 "k8s.io/api/core/v1" - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerMetrics).DeepCopyInto(out.(*ContainerMetrics)) - return nil - }, InType: reflect.TypeOf(&ContainerMetrics{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeMetrics).DeepCopyInto(out.(*NodeMetrics)) - return nil - }, InType: reflect.TypeOf(&NodeMetrics{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeMetricsList).DeepCopyInto(out.(*NodeMetricsList)) - return nil - }, InType: reflect.TypeOf(&NodeMetricsList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodMetrics).DeepCopyInto(out.(*PodMetrics)) - return nil - }, InType: reflect.TypeOf(&PodMetrics{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodMetricsList).DeepCopyInto(out.(*PodMetricsList)) - return nil - }, InType: reflect.TypeOf(&PodMetricsList{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ContainerMetrics) DeepCopyInto(out *ContainerMetrics) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go index 88b5d0a88..d551298c2 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go @@ -21,44 +21,9 @@ limitations under the License. package metrics import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ContainerMetrics).DeepCopyInto(out.(*ContainerMetrics)) - return nil - }, InType: reflect.TypeOf(&ContainerMetrics{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeMetrics).DeepCopyInto(out.(*NodeMetrics)) - return nil - }, InType: reflect.TypeOf(&NodeMetrics{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*NodeMetricsList).DeepCopyInto(out.(*NodeMetricsList)) - return nil - }, InType: reflect.TypeOf(&NodeMetricsList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodMetrics).DeepCopyInto(out.(*PodMetrics)) - return nil - }, InType: reflect.TypeOf(&PodMetrics{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*PodMetricsList).DeepCopyInto(out.(*PodMetricsList)) - return nil - }, InType: reflect.TypeOf(&PodMetricsList{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ContainerMetrics) DeepCopyInto(out *ContainerMetrics) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json index e56ed79b8..602eca631 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json @@ -1,6 +1,6 @@ { "ImportPath": "k8s.io/sample-apiserver", - "GoVersion": "go1.8", + "GoVersion": "go1.9", "GodepVersion": "v79", "Packages": [ "./..." @@ -140,27 +140,31 @@ }, { "ImportPath": "github.com/golang/protobuf/jsonpb", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/any", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/duration", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/struct", + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", - "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" + "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" }, { "ImportPath": "github.com/google/btree", @@ -474,6 +478,10 @@ "ImportPath": "gopkg.in/yaml.v2", "Rev": "53feefa2559fb8dfa8d81baad31be332c97d6c77" }, + { + "ImportPath": "k8s.io/api/admission/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -570,6 +578,10 @@ "ImportPath": "k8s.io/api/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/api/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/api/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -782,6 +794,10 @@ "ImportPath": "k8s.io/apimachinery/pkg/util/wait", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/waitgroup", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -826,6 +842,34 @@ "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/config", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/errors", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/namespace", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/request", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/rules", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/validating", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/versioned", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1250,6 +1294,10 @@ "ImportPath": "k8s.io/client-go/informers/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1358,6 +1406,10 @@ "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1442,6 +1494,10 @@ "ImportPath": "k8s.io/client-go/listers/storage/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -1524,19 +1580,19 @@ }, { "ImportPath": "k8s.io/kube-openapi/pkg/builder", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/common", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/handler", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util", - "Rev": "868f2f29720b192240e18284659231b440f9cda5" + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" } ] } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/LICENSE b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/README.md new file mode 100644 index 000000000..5a9eb8603 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/README.md @@ -0,0 +1,19 @@ +# sample-apiserver + +Demonstration of how to use the k8s.io/apiserver library to build a functional API server. + + +## Purpose + +This is intended as an example of how to build a kube-like API server with a single type. + + +## Compatibility + +HEAD of this repo will match HEAD of k8s.io/apiserver, k8s.io/apimachinery, and k8s.io/client-go. + +## Where does it come from? + +`sample-apiserver` is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/sample-apiserver. +Code changes are made in that location, merged into `k8s.io/kubernetes` and later synced here. + diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/docs/minikube-walkthrough.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/docs/minikube-walkthrough.md new file mode 100644 index 000000000..c5ca1ecd1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/docs/minikube-walkthrough.md @@ -0,0 +1,106 @@ +# Minikube walkthrough + +This document will take you through setting up and trying the sample apiserver on a local minikube from a fresh clone of this repo. + +## Pre requisites + +- Go 1.7.x or later installed and setup. More infomration can be found at [go installation](https://golang.org/doc/install) +- Dockerhub account to push the image to [Dockerhub](https://hub.docker.com/) + +## Install Minikube + +Minikube is a single node Kubernetes cluster that runs on your local machine. The Minikube docs have installation instructions for your OS. +- [minikube installation](https://github.com/kubernetes/minikube#installation) + + +## Clone the repository + +In order to build the sample apiserver image we will need to build the apiserver binary. + +``` +cd $GOPATH/src +mkdir -p k8s.io +cd k8s.io +git clone https://github.com/kubernetes/sample-apiserver.git +``` + +## Build the binary + +Next we will want to create a new binary to both test we can build the server and to use for the container image. + +From the root of this repo, where ```main.go``` is located, run the following command: +``` +export GOOS=linux; go build . +``` +if everything went well, you should have a binary called ```sample-apiserver``` present in your current directory. + +## Build the container image + +Using the binary we just built, we will now create a Docker image and push it to our Dockerhub registry so that we deploy it to our cluster. +There is a sample ```Dockerfile``` located in ```artifacts/simple-image``` we will use this to build our own image. + +Again from the root of this repo run the following commands: +``` +cp ./sample-apiserver ./artifacts/simple-image/kube-sample-apiserver +docker build -t /kube-sample-apiserver:latest ./artifacts/simple-image +docker push /kube-sample-apiserver +``` + +## Modify the the replication controller + +You need to modify the [artifacts/example/rc.yaml](/artifacts/example/rc.yaml) file to change the ```imagePullPolicy``` to ```Always``` or ```IfNotPresent```. + +You also need to change the image from ```kube-sample-apiserver:latest``` to ```/kube-sample-apiserver:latest```. For example: + +```yaml +... + containers: + - name: wardle-server + image: /kube-sample-apiserver:latest + imagePullPolicy: Always +... +``` + +Save this file and we are then ready to deploy and try out the sample apiserver. + +## Deploy to Minikube + +We will need to create several objects in order to setup the sample apiserver so you will need to ensure you have the ```kubectl``` tool installed. [Install kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/). + +``` +# create the namespace to run the apiserver in +kubectl create ns wardle + +# create the service account used to run the server +kubectl create -f artifacts/example/sa.yaml -n wardle + +# create the rolebindings that allow the service account user to delegate authz back to the kubernetes master for incoming requests to the apiserver +kubectl create -f artifacts/example/auth-delegator.yaml -n kube-system +kubectl create -f artifacts/example/auth-reader.yaml -n kube-system + +# create the service and replication controller +kubectl create -f artifacts/example/rc.yaml -n wardle +kubectl create -f artifacts/example/service.yaml -n wardle + +# create the apiservice object that tells kubernetes about your api extension and where in the cluster the server is located +kubectl create -f artifacts/example/apiservice.yaml +``` + +## Test that your setup has worked + +You should now be able to create the resource type ```Flunder``` which is the resource type registered by the sample apiserver. + +``` +kubectl create -f artifacts/flunders/01-flunder.yaml +# outputs flunder "my-first-flunder" created +``` + +You can then get this resource by running: + +``` +kubectl get flunder my-first-flunder + +#outputs +# NAME KIND +# my-first-flunder Flunder.v1alpha1.wardle.k8s.io +``` diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission.go index 1b2797639..e0d1dc671 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission.go @@ -37,17 +37,17 @@ func Register(plugins *admission.Plugins) { }) } -type disallowFlunder struct { +type DisallowFlunder struct { *admission.Handler lister listers.FischerLister } -var _ = wardleinitializer.WantsInternalWardleInformerFactory(&disallowFlunder{}) +var _ = wardleinitializer.WantsInternalWardleInformerFactory(&DisallowFlunder{}) // Admit ensures that the object in-flight is of kind Flunder. // In addition checks that the Name is not on the banned list. // The list is stored in Fischers API objects. -func (d *disallowFlunder) Admit(a admission.Attributes) error { +func (d *DisallowFlunder) Admit(a admission.Attributes) error { // we are only interested in flunders if a.GetKind().GroupKind() != wardle.Kind("Flunder") { return nil @@ -80,12 +80,12 @@ func (d *disallowFlunder) Admit(a admission.Attributes) error { // SetInternalWardleInformerFactory gets Lister from SharedInformerFactory. // The lister knows how to lists Fischers. -func (d *disallowFlunder) SetInternalWardleInformerFactory(f informers.SharedInformerFactory) { +func (d *DisallowFlunder) SetInternalWardleInformerFactory(f informers.SharedInformerFactory) { d.lister = f.Wardle().InternalVersion().Fischers().Lister() } -// Validate checks whether the plugin was correctly initialized. -func (d *disallowFlunder) Validate() error { +// ValidaValidateInitializationte checks whether the plugin was correctly initialized. +func (d *DisallowFlunder) ValidateInitialization() error { if d.lister == nil { return fmt.Errorf("missing fischer lister") } @@ -93,8 +93,8 @@ func (d *disallowFlunder) Validate() error { } // New creates a new ban flunder admission plugin -func New() (admission.Interface, error) { - return &disallowFlunder{ +func New() (*DisallowFlunder, error) { + return &DisallowFlunder{ Handler: admission.NewHandler(admission.Create), }, nil } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission_test.go index 1b449abbb..5b08387b0 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission_test.go @@ -119,7 +119,7 @@ func TestBanflunderAdmissionPlugin(t *testing.T) { } targetInitializer.Initialize(target) - err = admission.Validate(target) + err = admission.ValidateInitialization(target) if err != nil { t.Fatalf("scenario %d: failed to initialize banflunder admission plugin due to =%v", index, err) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/interfaces.go index 93a095b6f..f5c6e4157 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/interfaces.go @@ -24,5 +24,5 @@ import ( // WantsInternalWardleInformerFactory defines a function which sets InformerFactory for admission plugins that need it type WantsInternalWardleInformerFactory interface { SetInternalWardleInformerFactory(informers.SharedInformerFactory) - admission.Validator + admission.InitializationValidator } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/wardleinitializer_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/wardleinitializer_test.go index 9c306e315..221876a61 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/wardleinitializer_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/wardleinitializer_test.go @@ -52,7 +52,7 @@ func (self *wantInternalWardleInformerFactory) SetInternalWardleInformerFactory( } func (self *wantInternalWardleInformerFactory) Admit(a admission.Attributes) error { return nil } func (self *wantInternalWardleInformerFactory) Handles(o admission.Operation) bool { return false } -func (self *wantInternalWardleInformerFactory) Validate() error { return nil } +func (self *wantInternalWardleInformerFactory) ValidateInitialization() error { return nil } var _ admission.Interface = &wantInternalWardleInformerFactory{} var _ wardleinitializer.WantsInternalWardleInformerFactory = &wantInternalWardleInformerFactory{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD index ce0341170..22a0a18ed 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD @@ -16,7 +16,6 @@ go_library( importpath = "k8s.io/sample-apiserver/pkg/apis/wardle", deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", ], diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/doc.go index bb99a18fb..782c51d19 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // Package api is the internal version of the API. // +groupName=wardle.k8s.io diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/register.go index 8d2102520..4e7f6407d 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/register.go @@ -41,7 +41,7 @@ var ( AddToScheme = SchemeBuilder.AddToScheme ) -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Flunder{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/doc.go index 06c174cf1..077120851 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// +k8s:deepcopy-gen=package,register +// +k8s:deepcopy-gen=package // +k8s:conversion-gen=k8s.io/sample-apiserver/pkg/apis/wardle // Package v1alpha1 is the v1alpha1 version of the API. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/register.go index 6d69fd63a..4ceaf3d39 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/register.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/register.go @@ -42,7 +42,7 @@ func init() { localSchemeBuilder.Register(addKnownTypes) } -// Adds the list of known types to api.Scheme. +// Adds the list of known types to the given scheme. func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Flunder{}, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.deepcopy.go index 049f5ef93..7be1df5b7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.deepcopy.go @@ -21,48 +21,9 @@ limitations under the License. package v1alpha1 import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Fischer).DeepCopyInto(out.(*Fischer)) - return nil - }, InType: reflect.TypeOf(&Fischer{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FischerList).DeepCopyInto(out.(*FischerList)) - return nil - }, InType: reflect.TypeOf(&FischerList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Flunder).DeepCopyInto(out.(*Flunder)) - return nil - }, InType: reflect.TypeOf(&Flunder{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlunderList).DeepCopyInto(out.(*FlunderList)) - return nil - }, InType: reflect.TypeOf(&FlunderList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlunderSpec).DeepCopyInto(out.(*FlunderSpec)) - return nil - }, InType: reflect.TypeOf(&FlunderSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlunderStatus).DeepCopyInto(out.(*FlunderStatus)) - return nil - }, InType: reflect.TypeOf(&FlunderStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Fischer) DeepCopyInto(out *Fischer) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/zz_generated.deepcopy.go index 25e9f0b4a..a9cfabd34 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/zz_generated.deepcopy.go @@ -21,48 +21,9 @@ limitations under the License. package wardle import ( - conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" - reflect "reflect" ) -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Fischer).DeepCopyInto(out.(*Fischer)) - return nil - }, InType: reflect.TypeOf(&Fischer{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FischerList).DeepCopyInto(out.(*FischerList)) - return nil - }, InType: reflect.TypeOf(&FischerList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Flunder).DeepCopyInto(out.(*Flunder)) - return nil - }, InType: reflect.TypeOf(&Flunder{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlunderList).DeepCopyInto(out.(*FlunderList)) - return nil - }, InType: reflect.TypeOf(&FlunderList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlunderSpec).DeepCopyInto(out.(*FlunderSpec)) - return nil - }, InType: reflect.TypeOf(&FlunderSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*FlunderStatus).DeepCopyInto(out.(*FlunderStatus)) - return nil - }, InType: reflect.TypeOf(&FlunderStatus{})}, - ) -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Fischer) DeepCopyInto(out *Fischer) { *out = *in diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/BUILD index 1dbd7ad85..6f5750e8a 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/BUILD @@ -9,6 +9,7 @@ go_library( importpath = "k8s.io/sample-apiserver/pkg/client/informers/externalversions", visibility = ["//visibility:public"], deps = [ + "//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", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/factory.go index 63e9ad8d2..1db54b25e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/factory.go @@ -19,6 +19,7 @@ limitations under the License. package externalversions import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" @@ -31,9 +32,11 @@ import ( ) type sharedInformerFactory struct { - client versioned.Interface - lock sync.Mutex - defaultResync time.Duration + client versioned.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -43,8 +46,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -114,5 +126,5 @@ type SharedInformerFactory interface { } func (f *sharedInformerFactory) Wardle() wardle.Interface { - return wardle.New(f) + return wardle.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/generic.go index 7ad269cbc..f27d806ff 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/generic.go @@ -51,7 +51,7 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Wardle, Version=V1alpha1 + // Group=wardle.k8s.io, Version=v1alpha1 case v1alpha1.SchemeGroupVersion.WithResource("fischers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Wardle().V1alpha1().Fischers().Informer()}, nil case v1alpha1.SchemeGroupVersion.WithResource("flunders"): diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD index 1ea2c3096..8391860be 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -6,6 +6,7 @@ go_library( importpath = "k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces", visibility = ["//visibility:public"], deps = [ + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/client/clientset/versioned:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go index 9e5ba4290..b1ccf0b18 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -19,6 +19,7 @@ limitations under the License. package internalinterfaces import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" versioned "k8s.io/sample-apiserver/pkg/client/clientset/versioned" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/interface.go index 394dc0d41..818e02ee1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // V1alpha1 returns a new v1alpha1.Interface. func (g *group) V1alpha1() v1alpha1.Interface { - return v1alpha1.New(g.SharedInformerFactory) + return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/fischer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/fischer.go index 96de78827..bea7a8417 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/fischer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/fischer.go @@ -38,19 +38,33 @@ type FischerInformer interface { } type fischerInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewFischerInformer constructs a new informer for Fischer 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 NewFischerInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredFischerInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredFischerInformer constructs a new informer for Fischer 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 NewFilteredFischerInformer(client versioned.Interface, 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.WardleV1alpha1().Fischers().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.WardleV1alpha1().Fischers().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewFischerInformer(client versioned.Interface, resyncPeriod time.Duration, ) } -func defaultFischerInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFischerInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *fischerInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredFischerInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *fischerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&wardle_v1alpha1.Fischer{}, defaultFischerInformer) + return f.factory.InformerFor(&wardle_v1alpha1.Fischer{}, f.defaultInformer) } func (f *fischerInformer) Lister() v1alpha1.FischerLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/flunder.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/flunder.go index 4a2546971..99949638f 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/flunder.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/flunder.go @@ -38,19 +38,34 @@ type FlunderInformer interface { } type flunderInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewFlunderInformer constructs a new informer for Flunder 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 NewFlunderInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredFlunderInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredFlunderInformer constructs a new informer for Flunder 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 NewFilteredFlunderInformer(client versioned.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.WardleV1alpha1().Flunders(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.WardleV1alpha1().Flunders(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewFlunderInformer(client versioned.Interface, namespace string, resyncPeri ) } -func defaultFlunderInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFlunderInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *flunderInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredFlunderInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *flunderInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&wardle_v1alpha1.Flunder{}, defaultFlunderInformer) + return f.factory.InformerFor(&wardle_v1alpha1.Flunder{}, f.defaultInformer) } func (f *flunderInformer) Lister() v1alpha1.FlunderLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/interface.go index 0feeac020..11e117b07 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/wardle/v1alpha1/interface.go @@ -31,20 +31,22 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // Fischers returns a FischerInformer. func (v *version) Fischers() FischerInformer { - return &fischerInformer{factory: v.SharedInformerFactory} + return &fischerInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // Flunders returns a FlunderInformer. func (v *version) Flunders() FlunderInformer { - return &flunderInformer{factory: v.SharedInformerFactory} + return &flunderInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/BUILD index fcdefcc1b..3c7494866 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/BUILD @@ -9,6 +9,7 @@ go_library( importpath = "k8s.io/sample-apiserver/pkg/client/informers/internalversion", visibility = ["//visibility:public"], deps = [ + "//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", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/factory.go index f791d7490..f8ded4cb7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/factory.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/factory.go @@ -19,6 +19,7 @@ limitations under the License. package internalversion import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" @@ -31,9 +32,11 @@ import ( ) type sharedInformerFactory struct { - client internalversion.Interface - lock sync.Mutex - defaultResync time.Duration + client internalversion.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -43,8 +46,17 @@ type sharedInformerFactory struct { // NewSharedInformerFactory constructs a new instance of sharedInformerFactory func NewSharedInformerFactory(client internalversion.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client internalversion.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return &sharedInformerFactory{ client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), @@ -114,5 +126,5 @@ type SharedInformerFactory interface { } func (f *sharedInformerFactory) Wardle() wardle.Interface { - return wardle.New(f) + return wardle.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/generic.go index 0c13a469a..56df2a786 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/generic.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/generic.go @@ -51,7 +51,7 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=Wardle, Version=InternalVersion + // Group=wardle.k8s.io, Version=internalVersion case wardle.SchemeGroupVersion.WithResource("fischers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Wardle().InternalVersion().Fischers().Informer()}, nil case wardle.SchemeGroupVersion.WithResource("flunders"): diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD index 8cbf12bb3..e19ca3776 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD @@ -6,6 +6,7 @@ go_library( importpath = "k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces", visibility = ["//visibility:public"], deps = [ + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/client/clientset/internalversion:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go index 2be840a72..249e618b3 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces/factory_interfaces.go @@ -19,6 +19,7 @@ limitations under the License. package internalinterfaces import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" internalversion "k8s.io/sample-apiserver/pkg/client/clientset/internalversion" @@ -32,3 +33,5 @@ type SharedInformerFactory interface { Start(stopCh <-chan struct{}) InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/interface.go index d65212aff..331860b4b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/interface.go @@ -30,15 +30,17 @@ type Interface interface { } type group struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &group{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // InternalVersion returns a new internalversion.Interface. func (g *group) InternalVersion() internalversion.Interface { - return internalversion.New(g.SharedInformerFactory) + return internalversion.New(g.factory, g.namespace, g.tweakListOptions) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/fischer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/fischer.go index 13a4af1cb..761077585 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/fischer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/fischer.go @@ -38,19 +38,33 @@ type FischerInformer interface { } type fischerInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc } // NewFischerInformer constructs a new informer for Fischer 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 NewFischerInformer(client clientset_internalversion.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredFischerInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredFischerInformer constructs a new informer for Fischer 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 NewFilteredFischerInformer(client clientset_internalversion.Interface, 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.Wardle().Fischers().List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Wardle().Fischers().Watch(options) }, }, @@ -60,12 +74,12 @@ func NewFischerInformer(client clientset_internalversion.Interface, resyncPeriod ) } -func defaultFischerInformer(client clientset_internalversion.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFischerInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *fischerInformer) defaultInformer(client clientset_internalversion.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredFischerInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *fischerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&wardle.Fischer{}, defaultFischerInformer) + return f.factory.InformerFor(&wardle.Fischer{}, f.defaultInformer) } func (f *fischerInformer) Lister() internalversion.FischerLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/flunder.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/flunder.go index bbabc3811..fe6324b77 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/flunder.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/flunder.go @@ -38,19 +38,34 @@ type FlunderInformer interface { } type flunderInformer struct { - factory internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string } // NewFlunderInformer constructs a new informer for Flunder 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 NewFlunderInformer(client clientset_internalversion.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredFlunderInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredFlunderInformer constructs a new informer for Flunder 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 NewFilteredFlunderInformer(client clientset_internalversion.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.Wardle().Flunders(namespace).List(options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } return client.Wardle().Flunders(namespace).Watch(options) }, }, @@ -60,12 +75,12 @@ func NewFlunderInformer(client clientset_internalversion.Interface, namespace st ) } -func defaultFlunderInformer(client clientset_internalversion.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFlunderInformer(client, v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +func (f *flunderInformer) defaultInformer(client clientset_internalversion.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredFlunderInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) } func (f *flunderInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&wardle.Flunder{}, defaultFlunderInformer) + return f.factory.InformerFor(&wardle.Flunder{}, f.defaultInformer) } func (f *flunderInformer) Lister() internalversion.FlunderLister { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/interface.go index 25de414f0..bb986f03e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/interface.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/wardle/internalversion/interface.go @@ -31,20 +31,22 @@ type Interface interface { } type version struct { - internalinterfaces.SharedInformerFactory + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc } // New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory) Interface { - return &version{f} +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } // Fischers returns a FischerInformer. func (v *version) Fischers() FischerInformer { - return &fischerInformer{factory: v.SharedInformerFactory} + return &fischerInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } // Flunders returns a FlunderInformer. func (v *version) Flunders() FlunderInformer { - return &flunderInformer{factory: v.SharedInformerFactory} + return &flunderInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion/BUILD index 41d04cefc..5e8948505 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion/BUILD @@ -11,7 +11,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//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", "//vendor/k8s.io/sample-apiserver/pkg/apis/wardle:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion/fischer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion/fischer.go index 43ac4bdd0..9968bade8 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion/fischer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion/fischer.go @@ -20,7 +20,6 @@ package internalversion import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" wardle "k8s.io/sample-apiserver/pkg/apis/wardle" @@ -55,8 +54,7 @@ func (s *fischerLister) List(selector labels.Selector) (ret []*wardle.Fischer, e // Get retrieves the Fischer from the index for a given name. func (s *fischerLister) Get(name string) (*wardle.Fischer, error) { - key := &wardle.Fischer{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/v1alpha1/BUILD index d6cd90cd8..ecff53d5c 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/v1alpha1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/v1alpha1/BUILD @@ -11,7 +11,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//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", "//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/v1alpha1/fischer.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/v1alpha1/fischer.go index 1be3ffbed..e5d452cf1 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/v1alpha1/fischer.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/client/listers/wardle/v1alpha1/fischer.go @@ -20,7 +20,6 @@ package v1alpha1 import ( "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" v1alpha1 "k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1" @@ -55,8 +54,7 @@ func (s *fischerLister) List(selector labels.Selector) (ret []*v1alpha1.Fischer, // Get retrieves the Fischer from the index for a given name. func (s *fischerLister) Get(name string) (*v1alpha1.Fischer, error) { - key := &v1alpha1.Fischer{ObjectMeta: v1.ObjectMeta{Name: name}} - obj, exists, err := s.indexer.Get(key) + obj, exists, err := s.indexer.GetByKey(name) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go index b45290be1..ae1e12dc7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go @@ -119,7 +119,7 @@ func (o WardleServerOptions) Config() (*apiserver.Config, error) { return nil, err } - if err := o.Admission.ApplyTo(&serverConfig.Config, serverConfig.SharedInformerFactory, nil, nil, serverConfig.ClientConfig, apiserver.Scheme, admissionInitializer); err != nil { + if err := o.Admission.ApplyTo(&serverConfig.Config, serverConfig.SharedInformerFactory, serverConfig.ClientConfig, apiserver.Scheme, admissionInitializer); err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/BUILD new file mode 100644 index 000000000..3bdd428f7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/BUILD @@ -0,0 +1,64 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "controller.go", + "main.go", + ], + importpath = "k8s.io/sample-controller", + visibility = ["//visibility:private"], + deps = [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/apps/v1beta2: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/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/client-go/informers:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//vendor/k8s.io/client-go/listers/apps/v1beta2:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", + "//vendor/k8s.io/client-go/tools/record:go_default_library", + "//vendor/k8s.io/client-go/util/workqueue:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/informers/externalversions:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/signals:go_default_library", + ], +) + +go_binary( + name = "sample-controller", + importpath = "k8s.io/sample-controller", + library = ":go_default_library", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller:all-srcs", + "//staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned:all-srcs", + "//staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions:all-srcs", + "//staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1:all-srcs", + "//staging/src/k8s.io/sample-controller/pkg/signals:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Godeps.json new file mode 100644 index 000000000..da7b0ea82 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Godeps.json @@ -0,0 +1,962 @@ +{ + "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": "7ddbeae9ae08c6a06a59597f0c9edbc5ff2444ce" + }, + { + "ImportPath": "golang.org/x/sys/windows", + "Rev": "7ddbeae9ae08c6a06a59597f0c9edbc5ff2444ce" + }, + { + "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": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/apps/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/apps/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/apps/v1beta2", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/authentication/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/authentication/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/authorization/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/authorization/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/autoscaling/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/autoscaling/v2beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/batch/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/batch/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/batch/v2alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/certificates/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/core/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/extensions/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/networking/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/policy/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/rbac/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/rbac/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/rbac/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/scheduling/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/settings/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/storage/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/api/storage/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/equality", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/errors", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/meta", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/resource", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/conversion", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/conversion/unstructured", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/fields", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/labels", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/selection", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/types", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/cache", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/clock", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/diff", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/errors", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/framer", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/json", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/net", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/sets", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/validation", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/wait", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/version", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/watch", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/discovery", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/discovery/fake", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/admissionregistration", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps/v1beta2", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/certificates", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/core", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/core/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/extensions", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/internalinterfaces", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/networking", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/networking/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/policy", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/policy/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/scheduling", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/settings", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/scheme", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/apps/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/apps/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/apps/v1beta2", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/autoscaling/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/batch/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/batch/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/core/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/networking/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/policy/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/rbac/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/pkg/version", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/rest", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/rest/watch", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/testing", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/auth", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/cache", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/metrics", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/pager", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/record", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/tools/reference", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/transport", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/util/buffer", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/util/cert", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/util/flowcontrol", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/util/homedir", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/util/integer", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/client-go/util/workqueue", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/common", + "Rev": "39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1" + } + ] +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Readme b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Readme new file mode 100644 index 000000000..4cdaa53d5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/Godeps/Readme @@ -0,0 +1,5 @@ +This directory tree is generated automatically by godep. + +Please do not edit. + +See https://github.com/tools/godep for more information. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/LICENSE b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/OWNERS b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/OWNERS new file mode 100644 index 000000000..2a55092e9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/OWNERS @@ -0,0 +1,9 @@ +approvers: +- sttts +- munnerz +reviewers: +- gregory-m +- kargakis +- sttts +- munnerz +- nikhita diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/README.md b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/README.md new file mode 100644 index 000000000..d2aaf2b34 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/README.md @@ -0,0 +1,92 @@ +# sample-controller + +This repository implements a simple controller for watching Foo resources as +defined with a CustomResourceDefinition (CRD). + +This particular example demonstrates how to perform basic operations such as: + +* How to register a new custom resource (custom resource type) of type `Foo` using a CustomResourceDefinition. +* How to create/get/list instances of your new resource type `Foo`. +* How to setup a controller on resource handling create/update/delete events. + +It makes use of the generators in [k8s.io/code-generator](https://github.com/kubernetes/code-generator) +to generate a typed client, informers, listers and deep-copy functions. You can +do this yourself using the `./hack/update-codegen.sh` script. + +The `update-codegen` script will automatically generate the following files & +directories: + +* `pkg/apis/samplecontroller/v1alpha1/zz_generated.deepcopy.go` +* `pkg/client/` + +Changes should not be made to these files manually, and when creating your own +controller based off of this implementation you should not copy these files and +instead run the `update-codegen` script to generate your own. + +## Purpose + +This is an example of how to build a kube-like controller with a single type. + +## Running + +```sh +# assumes you have a working kubeconfig, not required if operating in-cluster +$ go run *.go -kubeconfig=$HOME/.kube/config + +# create a CustomResourceDefinition +$ kubectl create -f artifacts/examples/crd.yaml + +# create a custom resource of type Foo +$ kubectl create -f artifacts/examples/example-foo.yaml + +# check deployments created through the custom resource +$ kubectl get deployments +``` + +## Use Cases + +CustomResourceDefinitions can be used to implement custom resource types for your Kubernetes cluster. +These act like most other Resources in Kubernetes, and may be `kubectl apply`'d, etc. + +Some example use cases: + +* Provisioning/Management of external datastores/databases (eg. CloudSQL/RDS instances) +* Higher level abstractions around Kubernetes primitives (eg. a single Resource to define an etcd cluster, backed by a Service and a ReplicationController) + +## Defining types + +Each instance of your custom resource has an attached Spec, which should be defined via a `struct{}` to provide data format validation. +In practice, this Spec is arbitrary key-value data that specifies the configuration/behavior of your Resource. + +For example, if you were implementing a custom resource for a Database, you might provide a DatabaseSpec like the following: + +``` go +type DatabaseSpec struct { + Databases []string `json:"databases"` + Users []User `json:"users"` + Version string `json:"version"` +} + +type User struct { + Name string `json:"name"` + Password string `json:"password"` +} +``` + +## Cleanup + +You can clean up the created CustomResourceDefinition with: + + $ kubectl delete crd foos.samplecontroller.k8s.io + +## Compatibility + +HEAD of this repository will match HEAD of k8s.io/apimachinery and +k8s.io/client-go. + +## Where does it come from? + +`sample-controller` is synced from +https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/sample-controller. +Code changes are made in that location, merged into k8s.io/kubernetes and +later synced here. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/artifacts/examples/crd.yaml b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/artifacts/examples/crd.yaml new file mode 100644 index 000000000..4a457068d --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/artifacts/examples/crd.yaml @@ -0,0 +1,11 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: foos.samplecontroller.k8s.io +spec: + group: samplecontroller.k8s.io + version: v1alpha1 + names: + kind: Foo + plural: foos + scope: Namespaced diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/artifacts/examples/example-foo.yaml b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/artifacts/examples/example-foo.yaml new file mode 100644 index 000000000..897059c3d --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/artifacts/examples/example-foo.yaml @@ -0,0 +1,7 @@ +apiVersion: samplecontroller.k8s.io/v1alpha1 +kind: Foo +metadata: + name: example-foo +spec: + deploymentName: example-foo + replicas: 1 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/controller.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/controller.go new file mode 100644 index 000000000..9ca22f6f8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/controller.go @@ -0,0 +1,431 @@ +/* +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 main + +import ( + "fmt" + "time" + + "github.com/golang/glog" + appsv1beta2 "k8s.io/api/apps/v1beta2" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/wait" + kubeinformers "k8s.io/client-go/informers" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/kubernetes/scheme" + typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1" + appslisters "k8s.io/client-go/listers/apps/v1beta2" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" + + samplev1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1" + clientset "k8s.io/sample-controller/pkg/client/clientset/versioned" + samplescheme "k8s.io/sample-controller/pkg/client/clientset/versioned/scheme" + informers "k8s.io/sample-controller/pkg/client/informers/externalversions" + listers "k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1" +) + +const controllerAgentName = "sample-controller" + +const ( + // SuccessSynced is used as part of the Event 'reason' when a Foo is synced + SuccessSynced = "Synced" + // ErrResourceExists is used as part of the Event 'reason' when a Foo fails + // to sync due to a Deployment of the same name already existing. + ErrResourceExists = "ErrResourceExists" + + // MessageResourceExists is the message used for Events when a resource + // fails to sync due to a Deployment already existing + MessageResourceExists = "Resource %q already exists and is not managed by Foo" + // MessageResourceSynced is the message used for an Event fired when a Foo + // is synced successfully + MessageResourceSynced = "Foo synced successfully" +) + +// Controller is the controller implementation for Foo resources +type Controller struct { + // kubeclientset is a standard kubernetes clientset + kubeclientset kubernetes.Interface + // sampleclientset is a clientset for our own API group + sampleclientset clientset.Interface + + deploymentsLister appslisters.DeploymentLister + deploymentsSynced cache.InformerSynced + foosLister listers.FooLister + foosSynced cache.InformerSynced + + // workqueue is a rate limited work queue. This is used to queue work to be + // processed instead of performing it as soon as a change happens. This + // means we can ensure we only process a fixed amount of resources at a + // time, and makes it easy to ensure we are never processing the same item + // simultaneously in two different workers. + workqueue workqueue.RateLimitingInterface + // recorder is an event recorder for recording Event resources to the + // Kubernetes API. + recorder record.EventRecorder +} + +// NewController returns a new sample controller +func NewController( + kubeclientset kubernetes.Interface, + sampleclientset clientset.Interface, + kubeInformerFactory kubeinformers.SharedInformerFactory, + sampleInformerFactory informers.SharedInformerFactory) *Controller { + + // obtain references to shared index informers for the Deployment and Foo + // types. + deploymentInformer := kubeInformerFactory.Apps().V1beta2().Deployments() + fooInformer := sampleInformerFactory.Samplecontroller().V1alpha1().Foos() + + // Create event broadcaster + // Add sample-controller types to the default Kubernetes Scheme so Events can be + // logged for sample-controller types. + samplescheme.AddToScheme(scheme.Scheme) + glog.V(4).Info("Creating event broadcaster") + eventBroadcaster := record.NewBroadcaster() + eventBroadcaster.StartLogging(glog.Infof) + eventBroadcaster.StartRecordingToSink(&typedcorev1.EventSinkImpl{Interface: kubeclientset.CoreV1().Events("")}) + recorder := eventBroadcaster.NewRecorder(scheme.Scheme, corev1.EventSource{Component: controllerAgentName}) + + controller := &Controller{ + kubeclientset: kubeclientset, + sampleclientset: sampleclientset, + deploymentsLister: deploymentInformer.Lister(), + deploymentsSynced: deploymentInformer.Informer().HasSynced, + foosLister: fooInformer.Lister(), + foosSynced: fooInformer.Informer().HasSynced, + workqueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "Foos"), + recorder: recorder, + } + + glog.Info("Setting up event handlers") + // Set up an event handler for when Foo resources change + fooInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: controller.enqueueFoo, + UpdateFunc: func(old, new interface{}) { + controller.enqueueFoo(new) + }, + }) + // Set up an event handler for when Deployment resources change. This + // handler will lookup the owner of the given Deployment, and if it is + // owned by a Foo resource will enqueue that Foo resource for + // processing. This way, we don't need to implement custom logic for + // handling Deployment resources. More info on this pattern: + // https://github.com/kubernetes/community/blob/8cafef897a22026d42f5e5bb3f104febe7e29830/contributors/devel/controllers.md + deploymentInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: controller.handleObject, + UpdateFunc: func(old, new interface{}) { + newDepl := new.(*appsv1beta2.Deployment) + oldDepl := old.(*appsv1beta2.Deployment) + if newDepl.ResourceVersion == oldDepl.ResourceVersion { + // Periodic resync will send update events for all known Deployments. + // Two different versions of the same Deployment will always have different RVs. + return + } + controller.handleObject(new) + }, + DeleteFunc: controller.handleObject, + }) + + return controller +} + +// Run will set up the event handlers for types we are interested in, as well +// as syncing informer caches and starting workers. It will block until stopCh +// is closed, at which point it will shutdown the workqueue and wait for +// workers to finish processing their current work items. +func (c *Controller) Run(threadiness int, stopCh <-chan struct{}) error { + defer runtime.HandleCrash() + defer c.workqueue.ShutDown() + + // Start the informer factories to begin populating the informer caches + glog.Info("Starting Foo controller") + + // Wait for the caches to be synced before starting workers + glog.Info("Waiting for informer caches to sync") + if ok := cache.WaitForCacheSync(stopCh, c.deploymentsSynced, c.foosSynced); !ok { + return fmt.Errorf("failed to wait for caches to sync") + } + + glog.Info("Starting workers") + // Launch two workers to process Foo resources + for i := 0; i < threadiness; i++ { + go wait.Until(c.runWorker, time.Second, stopCh) + } + + glog.Info("Started workers") + <-stopCh + glog.Info("Shutting down workers") + + return nil +} + +// runWorker is a long-running function that will continually call the +// processNextWorkItem function in order to read and process a message on the +// workqueue. +func (c *Controller) runWorker() { + for c.processNextWorkItem() { + } +} + +// processNextWorkItem will read a single work item off the workqueue and +// attempt to process it, by calling the syncHandler. +func (c *Controller) processNextWorkItem() bool { + obj, shutdown := c.workqueue.Get() + + if shutdown { + return false + } + + // We wrap this block in a func so we can defer c.workqueue.Done. + err := func(obj interface{}) error { + // We call Done here so the workqueue knows we have finished + // processing this item. We also must remember to call Forget if we + // do not want this work item being re-queued. For example, we do + // not call Forget if a transient error occurs, instead the item is + // put back on the workqueue and attempted again after a back-off + // period. + defer c.workqueue.Done(obj) + var key string + var ok bool + // We expect strings to come off the workqueue. These are of the + // form namespace/name. We do this as the delayed nature of the + // workqueue means the items in the informer cache may actually be + // more up to date that when the item was initially put onto the + // workqueue. + if key, ok = obj.(string); !ok { + // As the item in the workqueue is actually invalid, we call + // Forget here else we'd go into a loop of attempting to + // process a work item that is invalid. + c.workqueue.Forget(obj) + runtime.HandleError(fmt.Errorf("expected string in workqueue but got %#v", obj)) + return nil + } + // Run the syncHandler, passing it the namespace/name string of the + // Foo resource to be synced. + if err := c.syncHandler(key); err != nil { + return fmt.Errorf("error syncing '%s': %s", key, err.Error()) + } + // Finally, if no error occurs we Forget this item so it does not + // get queued again until another change happens. + c.workqueue.Forget(obj) + glog.Infof("Successfully synced '%s'", key) + return nil + }(obj) + + if err != nil { + runtime.HandleError(err) + return true + } + + return true +} + +// syncHandler compares the actual state with the desired, and attempts to +// converge the two. It then updates the Status block of the Foo resource +// with the current status of the resource. +func (c *Controller) syncHandler(key string) error { + // Convert the namespace/name string into a distinct namespace and name + namespace, name, err := cache.SplitMetaNamespaceKey(key) + if err != nil { + runtime.HandleError(fmt.Errorf("invalid resource key: %s", key)) + return nil + } + + // Get the Foo resource with this namespace/name + foo, err := c.foosLister.Foos(namespace).Get(name) + if err != nil { + // The Foo resource may no longer exist, in which case we stop + // processing. + if errors.IsNotFound(err) { + runtime.HandleError(fmt.Errorf("foo '%s' in work queue no longer exists", key)) + return nil + } + + return err + } + + deploymentName := foo.Spec.DeploymentName + if deploymentName == "" { + // We choose to absorb the error here as the worker would requeue the + // resource otherwise. Instead, the next time the resource is updated + // the resource will be queued again. + runtime.HandleError(fmt.Errorf("%s: deployment name must be specified", key)) + return nil + } + + // Get the deployment with the name specified in Foo.spec + deployment, err := c.deploymentsLister.Deployments(foo.Namespace).Get(deploymentName) + // If the resource doesn't exist, we'll create it + if errors.IsNotFound(err) { + deployment, err = c.kubeclientset.AppsV1beta2().Deployments(foo.Namespace).Create(newDeployment(foo)) + } + + // If an error occurs during Get/Create, we'll requeue the item so we can + // attempt processing again later. This could have been caused by a + // temporary network failure, or any other transient reason. + if err != nil { + return err + } + + // If the Deployment is not controlled by this Foo resource, we should log + // a warning to the event recorder and ret + if !metav1.IsControlledBy(deployment, foo) { + msg := fmt.Sprintf(MessageResourceExists, deployment.Name) + c.recorder.Event(foo, corev1.EventTypeWarning, ErrResourceExists, msg) + return fmt.Errorf(msg) + } + + // If this number of the replicas on the Foo resource is specified, and the + // number does not equal the current desired replicas on the Deployment, we + // should update the Deployment resource. + if foo.Spec.Replicas != nil && *foo.Spec.Replicas != *deployment.Spec.Replicas { + glog.V(4).Infof("Foor: %d, deplR: %d", *foo.Spec.Replicas, *deployment.Spec.Replicas) + deployment, err = c.kubeclientset.AppsV1beta2().Deployments(foo.Namespace).Update(newDeployment(foo)) + } + + // If an error occurs during Update, we'll requeue the item so we can + // attempt processing again later. THis could have been caused by a + // temporary network failure, or any other transient reason. + if err != nil { + return err + } + + // Finally, we update the status block of the Foo resource to reflect the + // current state of the world + err = c.updateFooStatus(foo, deployment) + if err != nil { + return err + } + + c.recorder.Event(foo, corev1.EventTypeNormal, SuccessSynced, MessageResourceSynced) + return nil +} + +func (c *Controller) updateFooStatus(foo *samplev1alpha1.Foo, deployment *appsv1beta2.Deployment) error { + // NEVER modify objects from the store. It's a read-only, local cache. + // You can use DeepCopy() to make a deep copy of original object and modify this copy + // Or create a copy manually for better performance + fooCopy := foo.DeepCopy() + fooCopy.Status.AvailableReplicas = deployment.Status.AvailableReplicas + // Until #38113 is merged, we must use Update instead of UpdateStatus to + // update the Status block of the Foo resource. UpdateStatus will not + // allow changes to the Spec of the resource, which is ideal for ensuring + // nothing other than resource status has been updated. + _, err := c.sampleclientset.SamplecontrollerV1alpha1().Foos(foo.Namespace).Update(fooCopy) + return err +} + +// enqueueFoo takes a Foo resource and converts it into a namespace/name +// string which is then put onto the work queue. This method should *not* be +// passed resources of any type other than Foo. +func (c *Controller) enqueueFoo(obj interface{}) { + var key string + var err error + if key, err = cache.MetaNamespaceKeyFunc(obj); err != nil { + runtime.HandleError(err) + return + } + c.workqueue.AddRateLimited(key) +} + +// handleObject will take any resource implementing metav1.Object and attempt +// to find the Foo resource that 'owns' it. It does this by looking at the +// objects metadata.ownerReferences field for an appropriate OwnerReference. +// It then enqueues that Foo resource to be processed. If the object does not +// have an appropriate OwnerReference, it will simply be skipped. +func (c *Controller) handleObject(obj interface{}) { + var object metav1.Object + var ok bool + if object, ok = obj.(metav1.Object); !ok { + tombstone, ok := obj.(cache.DeletedFinalStateUnknown) + if !ok { + runtime.HandleError(fmt.Errorf("error decoding object, invalid type")) + return + } + object, ok = tombstone.Obj.(metav1.Object) + if !ok { + runtime.HandleError(fmt.Errorf("error decoding object tombstone, invalid type")) + return + } + glog.V(4).Infof("Recovered deleted object '%s' from tombstone", object.GetName()) + } + glog.V(4).Infof("Processing object: %s", object.GetName()) + if ownerRef := metav1.GetControllerOf(object); ownerRef != nil { + // If this object is not owned by a Foo, we should not do anything more + // with it. + if ownerRef.Kind != "Foo" { + return + } + + foo, err := c.foosLister.Foos(object.GetNamespace()).Get(ownerRef.Name) + if err != nil { + glog.V(4).Infof("ignoring orphaned object '%s' of foo '%s'", object.GetSelfLink(), ownerRef.Name) + return + } + + c.enqueueFoo(foo) + return + } +} + +// newDeployment creates a new Deployment for a Foo resource. It also sets +// the appropriate OwnerReferences on the resource so handleObject can discover +// the Foo resource that 'owns' it. +func newDeployment(foo *samplev1alpha1.Foo) *appsv1beta2.Deployment { + labels := map[string]string{ + "app": "nginx", + "controller": foo.Name, + } + return &appsv1beta2.Deployment{ + ObjectMeta: metav1.ObjectMeta{ + Name: foo.Spec.DeploymentName, + Namespace: foo.Namespace, + OwnerReferences: []metav1.OwnerReference{ + *metav1.NewControllerRef(foo, schema.GroupVersionKind{ + Group: samplev1alpha1.SchemeGroupVersion.Group, + Version: samplev1alpha1.SchemeGroupVersion.Version, + Kind: "Foo", + }), + }, + }, + Spec: appsv1beta2.DeploymentSpec{ + Replicas: foo.Spec.Replicas, + Selector: &metav1.LabelSelector{ + MatchLabels: labels, + }, + Template: corev1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: labels, + }, + Spec: corev1.PodSpec{ + Containers: []corev1.Container{ + { + Name: "nginx", + Image: "nginx:latest", + }, + }, + }, + }, + }, + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/custom-boilerplate.go.txt b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/custom-boilerplate.go.txt new file mode 100644 index 000000000..e4cd20e38 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/custom-boilerplate.go.txt @@ -0,0 +1,16 @@ +/* +Copyright YEAR The Kubernetes sample-controller 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. +*/ + diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/update-codegen.sh b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/update-codegen.sh new file mode 100755 index 000000000..d0fd734f7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/update-codegen.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# 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. + +set -o errexit +set -o nounset +set -o pipefail + +SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/.. +CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)} + +# generate the code with: +# --output-base because this script should also be able to run inside the vendor dir of +# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir +# instead of the $GOPATH directly. For normal projects this can be dropped. +${CODEGEN_PKG}/generate-groups.sh "deepcopy,client,informer,lister" \ + k8s.io/sample-controller/pkg/client k8s.io/sample-controller/pkg/apis \ + samplecontroller:v1alpha1 \ + --output-base "$(dirname ${BASH_SOURCE})/../../.." + +# To use your own boilerplate text append: +# --go-header-file ${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/verify-codegen.sh b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/verify-codegen.sh new file mode 100755 index 000000000..9cc02a5a4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/hack/verify-codegen.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# 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. + +set -o errexit +set -o nounset +set -o pipefail + +SCRIPT_ROOT=$(dirname "${BASH_SOURCE}")/.. + +DIFFROOT="${SCRIPT_ROOT}/pkg" +TMP_DIFFROOT="${SCRIPT_ROOT}/_tmp/pkg" +_tmp="${SCRIPT_ROOT}/_tmp" + +cleanup() { + rm -rf "${_tmp}" +} +trap "cleanup" EXIT SIGINT + +cleanup + +mkdir -p "${TMP_DIFFROOT}" +cp -a "${DIFFROOT}"/* "${TMP_DIFFROOT}" + +"${SCRIPT_ROOT}/hack/update-codegen.sh" +echo "diffing ${DIFFROOT} against freshly generated codegen" +ret=0 +diff -Naupr "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$? +cp -a "${TMP_DIFFROOT}"/* "${DIFFROOT}" +if [[ $ret -eq 0 ]] +then + echo "${DIFFROOT} up to date." +else + echo "${DIFFROOT} is out of date. Please run hack/update-codegen.sh" + exit 1 +fi diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/main.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/main.go new file mode 100644 index 000000000..d3514fc3a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/main.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 main + +import ( + "flag" + "time" + + "github.com/golang/glog" + kubeinformers "k8s.io/client-go/informers" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/clientcmd" + // Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters). + // _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" + + clientset "k8s.io/sample-controller/pkg/client/clientset/versioned" + informers "k8s.io/sample-controller/pkg/client/informers/externalversions" + "k8s.io/sample-controller/pkg/signals" +) + +var ( + masterURL string + kubeconfig string +) + +func main() { + flag.Parse() + + // set up signals so we handle the first shutdown signal gracefully + stopCh := signals.SetupSignalHandler() + + cfg, err := clientcmd.BuildConfigFromFlags(masterURL, kubeconfig) + if err != nil { + glog.Fatalf("Error building kubeconfig: %s", err.Error()) + } + + kubeClient, err := kubernetes.NewForConfig(cfg) + if err != nil { + glog.Fatalf("Error building kubernetes clientset: %s", err.Error()) + } + + exampleClient, err := clientset.NewForConfig(cfg) + if err != nil { + glog.Fatalf("Error building example clientset: %s", err.Error()) + } + + kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kubeClient, time.Second*30) + exampleInformerFactory := informers.NewSharedInformerFactory(exampleClient, time.Second*30) + + controller := NewController(kubeClient, exampleClient, kubeInformerFactory, exampleInformerFactory) + + go kubeInformerFactory.Start(stopCh) + go exampleInformerFactory.Start(stopCh) + + if err = controller.Run(2, stopCh); err != nil { + glog.Fatalf("Error running controller: %s", err.Error()) + } +} + +func init() { + flag.StringVar(&kubeconfig, "kubeconfig", "", "Path to a kubeconfig. Only required if out-of-cluster.") + flag.StringVar(&masterURL, "master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.") +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/BUILD new file mode 100644 index 000000000..8fc8dfc80 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/BUILD @@ -0,0 +1,25 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["register.go"], + importpath = "k8s.io/sample-controller/pkg/apis/samplecontroller", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/register.go new file mode 100644 index 000000000..394f7967e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/register.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. +*/ + +package samplecontroller + +const ( + GroupName = "samplecontroller.k8s.io" +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/BUILD new file mode 100644 index 000000000..e69cb323b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "register.go", + "types.go", + "zz_generated.deepcopy.go", + ], + importpath = "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1", + visibility = ["//visibility:public"], + deps = [ + "//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", + "//vendor/k8s.io/sample-controller/pkg/apis/samplecontroller: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/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/doc.go new file mode 100644 index 000000000..b44552698 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/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 + +// Package v1alpha1 is the v1alpha1 version of the API. +// +groupName=samplecontroller.k8s.io +package v1alpha1 diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/register.go new file mode 100644 index 000000000..babd488d9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/register.go @@ -0,0 +1,51 @@ +/* +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 v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + + samplecontroller "k8s.io/sample-controller/pkg/apis/samplecontroller" +) + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: samplecontroller.GroupName, Version: "v1alpha1"} + +// Kind takes an unqualified kind and returns back a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// Adds the list of known types to Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Foo{}, + &FooList{}, + ) + return nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/types.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/types.go new file mode 100644 index 000000000..1f6eb1f9a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/types.go @@ -0,0 +1,55 @@ +/* +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 v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +genclient:noStatus +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Foo is a specification for a Foo resource +type Foo struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec FooSpec `json:"spec"` + Status FooStatus `json:"status"` +} + +// FooSpec is the spec for a Foo resource +type FooSpec struct { + DeploymentName string `json:"deploymentName"` + Replicas *int32 `json:"replicas"` +} + +// FooStatus is the status for a Foo resource +type FooStatus struct { + AvailableReplicas int32 `json:"availableReplicas"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// FooList is a list of Foo resources +type FooList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata"` + + Items []Foo `json:"items"` +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 000000000..1022261f5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,129 @@ +// +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 v1alpha1 + +import ( + 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 *Foo) DeepCopyInto(out *Foo) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Foo. +func (in *Foo) DeepCopy() *Foo { + if in == nil { + return nil + } + out := new(Foo) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Foo) 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 *FooList) DeepCopyInto(out *FooList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Foo, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FooList. +func (in *FooList) DeepCopy() *FooList { + if in == nil { + return nil + } + out := new(FooList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FooList) 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 *FooSpec) DeepCopyInto(out *FooSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FooSpec. +func (in *FooSpec) DeepCopy() *FooSpec { + if in == nil { + return nil + } + out := new(FooSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FooStatus) DeepCopyInto(out *FooStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FooStatus. +func (in *FooStatus) DeepCopy() *FooStatus { + if in == nil { + return nil + } + out := new(FooStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/BUILD new file mode 100644 index 000000000..d208e963c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "clientset.go", + "doc.go", + ], + importpath = "k8s.io/sample-controller/pkg/client/clientset/versioned", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1: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/sample-controller/pkg/client/clientset/versioned/fake:all-srcs", + "//staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme:all-srcs", + "//staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/clientset.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/clientset.go new file mode 100644 index 000000000..ee1011cb3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/clientset.go @@ -0,0 +1,98 @@ +/* +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 versioned + +import ( + glog "github.com/golang/glog" + discovery "k8s.io/client-go/discovery" + rest "k8s.io/client-go/rest" + flowcontrol "k8s.io/client-go/util/flowcontrol" + samplecontrollerv1alpha1 "k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1" +) + +type Interface interface { + Discovery() discovery.DiscoveryInterface + SamplecontrollerV1alpha1() samplecontrollerv1alpha1.SamplecontrollerV1alpha1Interface + // Deprecated: please explicitly pick a version if possible. + Samplecontroller() samplecontrollerv1alpha1.SamplecontrollerV1alpha1Interface +} + +// Clientset contains the clients for groups. Each group has exactly one +// version included in a Clientset. +type Clientset struct { + *discovery.DiscoveryClient + samplecontrollerV1alpha1 *samplecontrollerv1alpha1.SamplecontrollerV1alpha1Client +} + +// SamplecontrollerV1alpha1 retrieves the SamplecontrollerV1alpha1Client +func (c *Clientset) SamplecontrollerV1alpha1() samplecontrollerv1alpha1.SamplecontrollerV1alpha1Interface { + return c.samplecontrollerV1alpha1 +} + +// Deprecated: Samplecontroller retrieves the default version of SamplecontrollerClient. +// Please explicitly pick a version. +func (c *Clientset) Samplecontroller() samplecontrollerv1alpha1.SamplecontrollerV1alpha1Interface { + return c.samplecontrollerV1alpha1 +} + +// Discovery retrieves the DiscoveryClient +func (c *Clientset) Discovery() discovery.DiscoveryInterface { + if c == nil { + return nil + } + return c.DiscoveryClient +} + +// NewForConfig creates a new Clientset for the given config. +func NewForConfig(c *rest.Config) (*Clientset, error) { + configShallowCopy := *c + if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 { + configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst) + } + var cs Clientset + var err error + cs.samplecontrollerV1alpha1, err = samplecontrollerv1alpha1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } + + cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) + if err != nil { + glog.Errorf("failed to create the DiscoveryClient: %v", err) + return nil, err + } + return &cs, nil +} + +// NewForConfigOrDie creates a new Clientset for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *Clientset { + var cs Clientset + cs.samplecontrollerV1alpha1 = samplecontrollerv1alpha1.NewForConfigOrDie(c) + + cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) + return &cs +} + +// New creates a new Clientset for the given RESTClient. +func New(c rest.Interface) *Clientset { + var cs Clientset + cs.samplecontrollerV1alpha1 = samplecontrollerv1alpha1.New(c) + + cs.DiscoveryClient = discovery.NewDiscoveryClient(c) + return &cs +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/doc.go new file mode 100644 index 000000000..7d2f4d80d --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/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 clientset. +package versioned diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/BUILD new file mode 100644 index 000000000..55fb43e1d --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "clientset_generated.go", + "doc.go", + "register.go", + ], + importpath = "k8s.io/sample-controller/pkg/client/clientset/versioned/fake", + visibility = ["//visibility:public"], + deps = [ + "//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", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/discovery/fake:go_default_library", + "//vendor/k8s.io/client-go/testing:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake: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/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/clientset_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/clientset_generated.go new file mode 100644 index 000000000..864cfe59b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/clientset_generated.go @@ -0,0 +1,71 @@ +/* +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 fake + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" + fakediscovery "k8s.io/client-go/discovery/fake" + "k8s.io/client-go/testing" + clientset "k8s.io/sample-controller/pkg/client/clientset/versioned" + samplecontrollerv1alpha1 "k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1" + fakesamplecontrollerv1alpha1 "k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake" +) + +// NewSimpleClientset returns a clientset that will respond with the provided objects. +// It's backed by a very simple object tracker that processes creates, updates and deletions as-is, +// without applying any validations and/or defaults. It shouldn't be considered a replacement +// for a real clientset and is mostly useful in simple unit tests. +func NewSimpleClientset(objects ...runtime.Object) *Clientset { + o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder()) + for _, obj := range objects { + if err := o.Add(obj); err != nil { + panic(err) + } + } + + fakePtr := testing.Fake{} + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) + fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) + + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} +} + +// Clientset implements clientset.Interface. Meant to be embedded into a +// struct to get a default implementation. This makes faking out just the method +// you want to test easier. +type Clientset struct { + testing.Fake + discovery *fakediscovery.FakeDiscovery +} + +func (c *Clientset) Discovery() discovery.DiscoveryInterface { + return c.discovery +} + +var _ clientset.Interface = &Clientset{} + +// SamplecontrollerV1alpha1 retrieves the SamplecontrollerV1alpha1Client +func (c *Clientset) SamplecontrollerV1alpha1() samplecontrollerv1alpha1.SamplecontrollerV1alpha1Interface { + return &fakesamplecontrollerv1alpha1.FakeSamplecontrollerV1alpha1{Fake: &c.Fake} +} + +// Samplecontroller retrieves the SamplecontrollerV1alpha1Client +func (c *Clientset) Samplecontroller() samplecontrollerv1alpha1.SamplecontrollerV1alpha1Interface { + return &fakesamplecontrollerv1alpha1.FakeSamplecontrollerV1alpha1{Fake: &c.Fake} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/doc.go new file mode 100644 index 000000000..3fd8e1e2c --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/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 fake clientset. +package fake diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/register.go new file mode 100644 index 000000000..97db71e50 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/fake/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 fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + samplecontrollerv1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + AddToScheme(scheme) +} + +// AddToScheme adds all types of this clientset into the given scheme. This allows composition +// of clientsets, like in: +// +// import ( +// "k8s.io/client-go/kubernetes" +// clientsetscheme "k8s.io/client-go/kuberentes/scheme" +// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" +// ) +// +// kclientset, _ := kubernetes.NewForConfig(c) +// aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) +// +// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types +// correctly. +func AddToScheme(scheme *runtime.Scheme) { + samplecontrollerv1alpha1.AddToScheme(scheme) + +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/BUILD new file mode 100644 index 000000000..edf9cf501 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "register.go", + ], + importpath = "k8s.io/sample-controller/pkg/client/clientset/versioned/scheme", + visibility = ["//visibility:public"], + deps = [ + "//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", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1: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/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/doc.go new file mode 100644 index 000000000..3ec2200d0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/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 contains the scheme of the automatically generated clientset. +package scheme diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/register.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/register.go new file mode 100644 index 000000000..6afb05531 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme/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 scheme + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + samplecontrollerv1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1" +) + +var Scheme = runtime.NewScheme() +var Codecs = serializer.NewCodecFactory(Scheme) +var ParameterCodec = runtime.NewParameterCodec(Scheme) + +func init() { + v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) + AddToScheme(Scheme) +} + +// AddToScheme adds all types of this clientset into the given scheme. This allows composition +// of clientsets, like in: +// +// import ( +// "k8s.io/client-go/kubernetes" +// clientsetscheme "k8s.io/client-go/kuberentes/scheme" +// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" +// ) +// +// kclientset, _ := kubernetes.NewForConfig(c) +// aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) +// +// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types +// correctly. +func AddToScheme(scheme *runtime.Scheme) { + samplecontrollerv1alpha1.AddToScheme(scheme) + +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/BUILD similarity index 54% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/BUILD index f9668f205..fc739e052 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/BUILD @@ -1,27 +1,23 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ - "cluster.go", "doc.go", - "federation_client.go", + "foo.go", "generated_expansion.go", + "samplecontroller_client.go", ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1", + importpath = "k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1", + visibility = ["//visibility:public"], deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/scheme: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/rest:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned/scheme:go_default_library", ], ) @@ -36,7 +32,8 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake:all-srcs", + "//staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake:all-srcs", ], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/doc.go similarity index 97% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/doc.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/doc.go index 1b50aa199..cdaaf6207 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/doc.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/doc.go @@ -15,4 +15,4 @@ limitations under the License. */ // This package has the automatically generated typed clients. -package v1beta1 +package v1alpha1 diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/BUILD similarity index 60% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/BUILD index c8735ad58..b8b0305e2 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/BUILD @@ -1,21 +1,15 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) +load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ "doc.go", - "fake_cluster.go", - "fake_federation_client.go", + "fake_foo.go", + "fake_samplecontroller_client.go", ], - importpath = "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake", + importpath = "k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake", + visibility = ["//visibility:public"], deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1: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/apimachinery/pkg/runtime/schema:go_default_library", @@ -23,6 +17,8 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1:go_default_library", ], ) @@ -37,4 +33,5 @@ filegroup( name = "all-srcs", srcs = [":package-srcs"], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/doc.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/doc.go new file mode 100644 index 000000000..c58fac35e --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/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. +*/ + +// Package fake has the automatically generated clients. +package fake diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/fake_foo.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/fake_foo.go new file mode 100644 index 000000000..66a5dfbf7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/fake_foo.go @@ -0,0 +1,126 @@ +/* +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 fake + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" + v1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1" +) + +// FakeFoos implements FooInterface +type FakeFoos struct { + Fake *FakeSamplecontrollerV1alpha1 + ns string +} + +var foosResource = schema.GroupVersionResource{Group: "samplecontroller.k8s.io", Version: "v1alpha1", Resource: "foos"} + +var foosKind = schema.GroupVersionKind{Group: "samplecontroller.k8s.io", Version: "v1alpha1", Kind: "Foo"} + +// Get takes name of the foo, and returns the corresponding foo object, and an error if there is any. +func (c *FakeFoos) Get(name string, options v1.GetOptions) (result *v1alpha1.Foo, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(foosResource, c.ns, name), &v1alpha1.Foo{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Foo), err +} + +// List takes label and field selectors, and returns the list of Foos that match those selectors. +func (c *FakeFoos) List(opts v1.ListOptions) (result *v1alpha1.FooList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(foosResource, foosKind, c.ns, opts), &v1alpha1.FooList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.FooList{} + for _, item := range obj.(*v1alpha1.FooList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested foos. +func (c *FakeFoos) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(foosResource, c.ns, opts)) + +} + +// Create takes the representation of a foo and creates it. Returns the server's representation of the foo, and an error, if there is any. +func (c *FakeFoos) Create(foo *v1alpha1.Foo) (result *v1alpha1.Foo, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(foosResource, c.ns, foo), &v1alpha1.Foo{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Foo), err +} + +// Update takes the representation of a foo and updates it. Returns the server's representation of the foo, and an error, if there is any. +func (c *FakeFoos) Update(foo *v1alpha1.Foo) (result *v1alpha1.Foo, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(foosResource, c.ns, foo), &v1alpha1.Foo{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Foo), err +} + +// Delete takes name of the foo and deletes it. Returns an error if one occurs. +func (c *FakeFoos) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(foosResource, c.ns, name), &v1alpha1.Foo{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeFoos) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(foosResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v1alpha1.FooList{}) + return err +} + +// Patch applies the patch and returns the patched foo. +func (c *FakeFoos) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Foo, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(foosResource, c.ns, name, data, subresources...), &v1alpha1.Foo{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Foo), err +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/fake_samplecontroller_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/fake_samplecontroller_client.go new file mode 100644 index 000000000..3d04e5df3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/fake/fake_samplecontroller_client.go @@ -0,0 +1,38 @@ +/* +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 fake + +import ( + rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" + v1alpha1 "k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1" +) + +type FakeSamplecontrollerV1alpha1 struct { + *testing.Fake +} + +func (c *FakeSamplecontrollerV1alpha1) Foos(namespace string) v1alpha1.FooInterface { + return &FakeFoos{c, namespace} +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeSamplecontrollerV1alpha1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/foo.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/foo.go new file mode 100644 index 000000000..1c631da7a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/foo.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 v1alpha1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" + v1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1" + scheme "k8s.io/sample-controller/pkg/client/clientset/versioned/scheme" +) + +// FoosGetter has a method to return a FooInterface. +// A group's client should implement this interface. +type FoosGetter interface { + Foos(namespace string) FooInterface +} + +// FooInterface has methods to work with Foo resources. +type FooInterface interface { + Create(*v1alpha1.Foo) (*v1alpha1.Foo, error) + Update(*v1alpha1.Foo) (*v1alpha1.Foo, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1alpha1.Foo, error) + List(opts v1.ListOptions) (*v1alpha1.FooList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Foo, err error) + FooExpansion +} + +// foos implements FooInterface +type foos struct { + client rest.Interface + ns string +} + +// newFoos returns a Foos +func newFoos(c *SamplecontrollerV1alpha1Client, namespace string) *foos { + return &foos{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the foo, and returns the corresponding foo object, and an error if there is any. +func (c *foos) Get(name string, options v1.GetOptions) (result *v1alpha1.Foo, err error) { + result = &v1alpha1.Foo{} + err = c.client.Get(). + Namespace(c.ns). + Resource("foos"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Foos that match those selectors. +func (c *foos) List(opts v1.ListOptions) (result *v1alpha1.FooList, err error) { + result = &v1alpha1.FooList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("foos"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested foos. +func (c *foos) Watch(opts v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("foos"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a foo and creates it. Returns the server's representation of the foo, and an error, if there is any. +func (c *foos) Create(foo *v1alpha1.Foo) (result *v1alpha1.Foo, err error) { + result = &v1alpha1.Foo{} + err = c.client.Post(). + Namespace(c.ns). + Resource("foos"). + Body(foo). + Do(). + Into(result) + return +} + +// Update takes the representation of a foo and updates it. Returns the server's representation of the foo, and an error, if there is any. +func (c *foos) Update(foo *v1alpha1.Foo) (result *v1alpha1.Foo, err error) { + result = &v1alpha1.Foo{} + err = c.client.Put(). + Namespace(c.ns). + Resource("foos"). + Name(foo.Name). + Body(foo). + Do(). + Into(result) + return +} + +// Delete takes name of the foo and deletes it. Returns an error if one occurs. +func (c *foos) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("foos"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *foos) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("foos"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched foo. +func (c *foos) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Foo, err error) { + result = &v1alpha1.Foo{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("foos"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/generated_expansion.go new file mode 100644 index 000000000..5bc2b3133 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/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 v1alpha1 + +type FooExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/samplecontroller_client.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/samplecontroller_client.go new file mode 100644 index 000000000..323b9ebcf --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/clientset/versioned/typed/samplecontroller/v1alpha1/samplecontroller_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 v1alpha1 + +import ( + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + rest "k8s.io/client-go/rest" + v1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1" + "k8s.io/sample-controller/pkg/client/clientset/versioned/scheme" +) + +type SamplecontrollerV1alpha1Interface interface { + RESTClient() rest.Interface + FoosGetter +} + +// SamplecontrollerV1alpha1Client is used to interact with features provided by the samplecontroller.k8s.io group. +type SamplecontrollerV1alpha1Client struct { + restClient rest.Interface +} + +func (c *SamplecontrollerV1alpha1Client) Foos(namespace string) FooInterface { + return newFoos(c, namespace) +} + +// NewForConfig creates a new SamplecontrollerV1alpha1Client for the given config. +func NewForConfig(c *rest.Config) (*SamplecontrollerV1alpha1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &SamplecontrollerV1alpha1Client{client}, nil +} + +// NewForConfigOrDie creates a new SamplecontrollerV1alpha1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *SamplecontrollerV1alpha1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new SamplecontrollerV1alpha1Client for the given RESTClient. +func New(c rest.Interface) *SamplecontrollerV1alpha1Client { + return &SamplecontrollerV1alpha1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1alpha1.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 *SamplecontrollerV1alpha1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/BUILD new file mode 100644 index 000000000..2fd617e38 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "factory.go", + "generic.go", + ], + importpath = "k8s.io/sample-controller/pkg/client/informers/externalversions", + visibility = ["//visibility:public"], + deps = [ + "//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", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller: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/sample-controller/pkg/client/informers/externalversions/internalinterfaces:all-srcs", + "//staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/factory.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/factory.go new file mode 100644 index 000000000..64cb97935 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/factory.go @@ -0,0 +1,130 @@ +/* +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 externalversions + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + cache "k8s.io/client-go/tools/cache" + versioned "k8s.io/sample-controller/pkg/client/clientset/versioned" + internalinterfaces "k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces" + samplecontroller "k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller" + reflect "reflect" + sync "sync" + time "time" +) + +type sharedInformerFactory struct { + client versioned.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration + + informers map[reflect.Type]cache.SharedIndexInformer + // startedInformers is used for tracking which informers have been started. + // This allows Start() to be called multiple times safely. + startedInformers map[reflect.Type]bool +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { + return &sharedInformerFactory{ + client: client, + namespace: namespace, + tweakListOptions: tweakListOptions, + defaultResync: defaultResync, + informers: make(map[reflect.Type]cache.SharedIndexInformer), + startedInformers: make(map[reflect.Type]bool), + } +} + +// Start initializes all requested informers. +func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) { + f.lock.Lock() + defer f.lock.Unlock() + + for informerType, informer := range f.informers { + if !f.startedInformers[informerType] { + go informer.Run(stopCh) + f.startedInformers[informerType] = true + } + } +} + +// WaitForCacheSync waits for all started informers' cache were synced. +func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool { + informers := func() map[reflect.Type]cache.SharedIndexInformer { + f.lock.Lock() + defer f.lock.Unlock() + + informers := map[reflect.Type]cache.SharedIndexInformer{} + for informerType, informer := range f.informers { + if f.startedInformers[informerType] { + informers[informerType] = informer + } + } + return informers + }() + + res := map[reflect.Type]bool{} + for informType, informer := range informers { + res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced) + } + return res +} + +// InternalInformerFor returns the SharedIndexInformer for obj using an internal +// client. +func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer { + f.lock.Lock() + defer f.lock.Unlock() + + informerType := reflect.TypeOf(obj) + informer, exists := f.informers[informerType] + if exists { + return informer + } + informer = newFunc(f.client, f.defaultResync) + f.informers[informerType] = informer + + return informer +} + +// SharedInformerFactory provides shared informers for resources in all known +// API group versions. +type SharedInformerFactory interface { + internalinterfaces.SharedInformerFactory + ForResource(resource schema.GroupVersionResource) (GenericInformer, error) + WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool + + Samplecontroller() samplecontroller.Interface +} + +func (f *sharedInformerFactory) Samplecontroller() samplecontroller.Interface { + return samplecontroller.New(f, f.namespace, f.tweakListOptions) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/generic.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/generic.go new file mode 100644 index 000000000..355cca9da --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/generic.go @@ -0,0 +1,61 @@ +/* +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 externalversions + +import ( + "fmt" + schema "k8s.io/apimachinery/pkg/runtime/schema" + cache "k8s.io/client-go/tools/cache" + v1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1" +) + +// GenericInformer is type of SharedIndexInformer which will locate and delegate to other +// sharedInformers based on type +type GenericInformer interface { + Informer() cache.SharedIndexInformer + Lister() cache.GenericLister +} + +type genericInformer struct { + informer cache.SharedIndexInformer + resource schema.GroupResource +} + +// Informer returns the SharedIndexInformer. +func (f *genericInformer) Informer() cache.SharedIndexInformer { + return f.informer +} + +// Lister returns the GenericLister. +func (f *genericInformer) Lister() cache.GenericLister { + return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource) +} + +// ForResource gives generic access to a shared informer of the matching type +// TODO extend this to unknown resources with a client pool +func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { + switch resource { + // Group=samplecontroller.k8s.io, Version=v1alpha1 + case v1alpha1.SchemeGroupVersion.WithResource("foos"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Samplecontroller().V1alpha1().Foos().Informer()}, nil + + } + + return nil, fmt.Errorf("no informer found for %v", resource) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces/BUILD new file mode 100644 index 000000000..e923a07f9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["factory_interfaces.go"], + importpath = "k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned: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/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go new file mode 100644 index 000000000..294c902a3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -0,0 +1,37 @@ +/* +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 internalinterfaces + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + cache "k8s.io/client-go/tools/cache" + versioned "k8s.io/sample-controller/pkg/client/clientset/versioned" + time "time" +) + +type NewInformerFunc func(versioned.Interface, time.Duration) cache.SharedIndexInformer + +// SharedInformerFactory a small interface to allow for adding an informer without an import cycle +type SharedInformerFactory interface { + Start(stopCh <-chan struct{}) + InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer +} + +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/BUILD new file mode 100644 index 000000000..960cb64ce --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/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/sample-controller/pkg/client/informers/externalversions/samplecontroller", + visibility = ["//visibility:public"], + deps = [ + "//vendor/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1: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/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/interface.go new file mode 100644 index 000000000..e5e7d464a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/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 samplecontroller + +import ( + internalinterfaces "k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces" + v1alpha1 "k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // V1alpha1 provides access to shared informers for resources in V1alpha1. + V1alpha1() v1alpha1.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} +} + +// V1alpha1 returns a new v1alpha1.Interface. +func (g *group) V1alpha1() v1alpha1.Interface { + return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/BUILD new file mode 100644 index 000000000..056bdba95 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "foo.go", + "interface.go", + ], + importpath = "k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1", + visibility = ["//visibility:public"], + deps = [ + "//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/tools/cache:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/clientset/versioned:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces:go_default_library", + "//vendor/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1: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/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/foo.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/foo.go new file mode 100644 index 000000000..90bd8ff4a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/foo.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 v1alpha1 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" + samplecontroller_v1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1" + versioned "k8s.io/sample-controller/pkg/client/clientset/versioned" + internalinterfaces "k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces" + v1alpha1 "k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1" + time "time" +) + +// FooInformer provides access to a shared informer and lister for +// Foos. +type FooInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1alpha1.FooLister +} + +type fooInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewFooInformer constructs a new informer for Foo 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 NewFooInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredFooInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredFooInformer constructs a new informer for Foo 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 NewFilteredFooInformer(client versioned.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.SamplecontrollerV1alpha1().Foos(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SamplecontrollerV1alpha1().Foos(namespace).Watch(options) + }, + }, + &samplecontroller_v1alpha1.Foo{}, + resyncPeriod, + indexers, + ) +} + +func (f *fooInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredFooInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *fooInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&samplecontroller_v1alpha1.Foo{}, f.defaultInformer) +} + +func (f *fooInformer) Lister() v1alpha1.FooLister { + return v1alpha1.NewFooLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/interface.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/interface.go new file mode 100644 index 000000000..cea72010a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/informers/externalversions/samplecontroller/v1alpha1/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 v1alpha1 + +import ( + internalinterfaces "k8s.io/sample-controller/pkg/client/informers/externalversions/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // Foos returns a FooInformer. + Foos() FooInformer +} + +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} +} + +// Foos returns a FooInformer. +func (v *version) Foos() FooInformer { + return &fooInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/BUILD new file mode 100644 index 000000000..80052e00b --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "expansion_generated.go", + "foo.go", + ], + importpath = "k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1", + visibility = ["//visibility:public"], + deps = [ + "//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", + "//vendor/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1: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/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/expansion_generated.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/expansion_generated.go new file mode 100644 index 000000000..8829daba6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/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 v1alpha1 + +// FooListerExpansion allows custom methods to be added to +// FooLister. +type FooListerExpansion interface{} + +// FooNamespaceListerExpansion allows custom methods to be added to +// FooNamespaceLister. +type FooNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/foo.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/foo.go new file mode 100644 index 000000000..646a7e38a --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/client/listers/samplecontroller/v1alpha1/foo.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 v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" + v1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1" +) + +// FooLister helps list Foos. +type FooLister interface { + // List lists all Foos in the indexer. + List(selector labels.Selector) (ret []*v1alpha1.Foo, err error) + // Foos returns an object that can list and get Foos. + Foos(namespace string) FooNamespaceLister + FooListerExpansion +} + +// fooLister implements the FooLister interface. +type fooLister struct { + indexer cache.Indexer +} + +// NewFooLister returns a new FooLister. +func NewFooLister(indexer cache.Indexer) FooLister { + return &fooLister{indexer: indexer} +} + +// List lists all Foos in the indexer. +func (s *fooLister) List(selector labels.Selector) (ret []*v1alpha1.Foo, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.Foo)) + }) + return ret, err +} + +// Foos returns an object that can list and get Foos. +func (s *fooLister) Foos(namespace string) FooNamespaceLister { + return fooNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// FooNamespaceLister helps list and get Foos. +type FooNamespaceLister interface { + // List lists all Foos in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1alpha1.Foo, err error) + // Get retrieves the Foo from the indexer for a given namespace and name. + Get(name string) (*v1alpha1.Foo, error) + FooNamespaceListerExpansion +} + +// fooNamespaceLister implements the FooNamespaceLister +// interface. +type fooNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all Foos in the indexer for a given namespace. +func (s fooNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.Foo, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.Foo)) + }) + return ret, err +} + +// Get retrieves the Foo from the indexer for a given namespace and name. +func (s fooNamespaceLister) Get(name string) (*v1alpha1.Foo, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1alpha1.Resource("foo"), name) + } + return obj.(*v1alpha1.Foo), nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/BUILD new file mode 100644 index 000000000..190d14899 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "signal.go", + "signal_posix.go", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "signal_windows.go", + ], + "//conditions:default": [], + }), + importpath = "k8s.io/sample-controller/pkg/signals", + visibility = ["//visibility:public"], +) + +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/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal.go new file mode 100644 index 000000000..6bddfddb4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal.go @@ -0,0 +1,43 @@ +/* +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 signals + +import ( + "os" + "os/signal" +) + +var onlyOneSignalHandler = make(chan struct{}) + +// SetupSignalHandler registered for SIGTERM and SIGINT. A stop channel is returned +// which is closed on one of these signals. If a second signal is caught, the program +// is terminated with exit code 1. +func SetupSignalHandler() (stopCh <-chan struct{}) { + close(onlyOneSignalHandler) // panics when called twice + + stop := make(chan struct{}) + c := make(chan os.Signal, 2) + signal.Notify(c, shutdownSignals...) + go func() { + <-c + close(stop) + <-c + os.Exit(1) // second signal. Exit directly. + }() + + return stop +} diff --git a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/generated_expansion.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal_posix.go similarity index 81% rename from vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/generated_expansion.go rename to vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal_posix.go index e67c4e302..9bdb4e741 100644 --- a/vendor/k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal_posix.go @@ -1,3 +1,5 @@ +// +build !windows + /* Copyright 2017 The Kubernetes Authors. @@ -14,10 +16,11 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1beta1 - -type DaemonSetExpansion interface{} +package signals -type IngressExpansion interface{} +import ( + "os" + "syscall" +) -type ReplicaSetExpansion interface{} +var shutdownSignals = []os.Signal{os.Interrupt, syscall.SIGTERM} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal_windows.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal_windows.go new file mode 100644 index 000000000..4907d573f --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/sample-controller/pkg/signals/signal_windows.go @@ -0,0 +1,23 @@ +/* +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 signals + +import ( + "os" +) + +var shutdownSignals = []os.Signal{os.Interrupt} diff --git a/vendor/k8s.io/kubernetes/test/BUILD b/vendor/k8s.io/kubernetes/test/BUILD index 831bcb91f..aa84e4706 100644 --- a/vendor/k8s.io/kubernetes/test/BUILD +++ b/vendor/k8s.io/kubernetes/test/BUILD @@ -11,6 +11,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//test/conformance:all-srcs", "//test/e2e:all-srcs", "//test/e2e_node:all-srcs", "//test/fixtures:all-srcs", diff --git a/vendor/k8s.io/kubernetes/test/OWNERS b/vendor/k8s.io/kubernetes/test/OWNERS index 7fc52ff2c..908b4f428 100644 --- a/vendor/k8s.io/kubernetes/test/OWNERS +++ b/vendor/k8s.io/kubernetes/test/OWNERS @@ -17,10 +17,12 @@ reviewers: - ncdc - pwittrock # for test/e2e/kubectl.go - saad-ali + - shyamjvs - smarterclayton - soltysh - sig-testing-reviewers - sttts + - timothysc - zmerlynn - vishh approvers: @@ -43,9 +45,11 @@ approvers: - ncdc - pwittrock # for test/e2e/kubectl.go - saad-ali + - shyamjvs - sig-testing-approvers - smarterclayton - soltysh - sttts + - timothysc - zmerlynn - vishh diff --git a/vendor/k8s.io/kubernetes/test/conformance/BUILD b/vendor/k8s.io/kubernetes/test/conformance/BUILD new file mode 100644 index 000000000..7c11b8466 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/conformance/BUILD @@ -0,0 +1,47 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +go_library( + name = "go_default_library", + srcs = ["walk.go"], + importpath = "k8s.io/kubernetes/test/conformance", + visibility = ["//visibility:private"], +) + +go_binary( + name = "conformance", + importpath = "k8s.io/kubernetes/test/conformance", + library = ":go_default_library", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) + +genrule( + name = "list_conformance_tests", + srcs = ["//test/e2e:all-srcs"], + outs = ["conformance.txt"], + cmd = "./$(location :conformance) $(locations //test/e2e:all-srcs) > $@", + message = "Listing all conformance tests.", + tools = [":conformance"], +) + +sh_test( + name = "conformance_test", + srcs = ["conformance_test.sh"], + data = [ + "testdata/conformance.txt", + ":list_conformance_tests", + ], +) diff --git a/vendor/k8s.io/kubernetes/test/conformance/OWNERS b/vendor/k8s.io/kubernetes/test/conformance/OWNERS new file mode 100644 index 000000000..155eb146f --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/conformance/OWNERS @@ -0,0 +1,7 @@ +# This is the owner of the test code. The test data itself is owned by sig-architecture. +reviewers: + - mml + - cheftako +approvers: + - mml + - cheftako diff --git a/vendor/k8s.io/kubernetes/test/conformance/README.md b/vendor/k8s.io/kubernetes/test/conformance/README.md new file mode 100644 index 000000000..e086b8928 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/conformance/README.md @@ -0,0 +1,15 @@ +This directory contains the regression test for controlling the list of all +conformance tests. + +If you add or remove a conformance test, this test will fail and you will need +to update the golden list of tests stored in `testdata/`. Changes to that file +require review by sig-architecture. + +To update the list, run + +```console +$ bazel build //test/conformance:list_conformance_tests +$ cp bazel-genfiles/test/conformance/conformance.txt test/conformance/testdata +``` + +Add the changed file to your PR, then send for review. diff --git a/vendor/k8s.io/kubernetes/hack/federated-ginkgo-e2e.sh b/vendor/k8s.io/kubernetes/test/conformance/conformance_test.sh similarity index 50% rename from vendor/k8s.io/kubernetes/hack/federated-ginkgo-e2e.sh rename to vendor/k8s.io/kubernetes/test/conformance/conformance_test.sh index 09478a9f3..04113c09b 100755 --- a/vendor/k8s.io/kubernetes/hack/federated-ginkgo-e2e.sh +++ b/vendor/k8s.io/kubernetes/test/conformance/conformance_test.sh @@ -1,6 +1,5 @@ #!/bin/bash - -# Copyright 2014 The Kubernetes Authors. +# 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. @@ -14,21 +13,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. -source "${KUBE_ROOT}/cluster/kube-util.sh" -source "${KUBE_ROOT}/federation/cluster/common.sh" +# echo ${TEST_SRCDIR} +# pwd +# env | grep --color=always test/conformance +# find ${TEST_SRCDIR} -ls | grep --color=always test/conformance -: "${FEDERATION_HOST_CLUSTER_ZONE?Must set FEDERATION_HOST_CLUSTER_ZONE env var}" +set -o errexit -( - set-federation-zone-vars "${FEDERATION_HOST_CLUSTER_ZONE}" - # Export FEDERATION_KUBE_CONTEXT to ensure that it is available to - # ginkgo-e2e.sh and is thus passed on to the federation tests. - export FEDERATION_KUBE_CONTEXT - "${KUBE_ROOT}/hack/ginkgo-e2e.sh" $@ -) +if diff -u test/conformance/testdata/conformance.txt test/conformance/conformance.txt; then + echo PASS + exit 0 +fi +echo 'See instructions in test/conformance/README.md' +exit 1 diff --git a/vendor/k8s.io/kubernetes/test/conformance/testdata/OWNERS b/vendor/k8s.io/kubernetes/test/conformance/testdata/OWNERS new file mode 100644 index 000000000..309935c35 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/conformance/testdata/OWNERS @@ -0,0 +1,11 @@ +# To be owned by sig-architecture. +# TODO(mml): Exclude parent owners once +# https://github.com/kubernetes/test-infra/issues/5197 is implemented. +options: + - no_parent_owners: true +reviewers: + - bgrant0607 + - smarterclayton +approvers: + - bgrant0607 + - smarterclayton diff --git a/vendor/k8s.io/kubernetes/test/conformance/testdata/conformance.txt b/vendor/k8s.io/kubernetes/test/conformance/testdata/conformance.txt new file mode 100755 index 000000000..a1b79a138 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/conformance/testdata/conformance.txt @@ -0,0 +1,150 @@ +test/e2e/apimachinery/custom_resource_definition.go: "creating/deleting custom resource definition objects works " +test/e2e/apps/rc.go: "should serve a basic image on each replica with a public image " +test/e2e/apps/replica_set.go: "should serve a basic image on each replica with a public image " +test/e2e/auth/service_accounts.go: "should mount an API token into pods " +test/e2e/auth/service_accounts.go: "should allow opting out of API token automount " +test/e2e/common/configmap.go: "should be consumable via environment variable " +test/e2e/common/configmap.go: "should be consumable via the environment " +test/e2e/common/configmap_volume.go: "should be consumable from pods in volume " +test/e2e/common/configmap_volume.go: "should be consumable from pods in volume with defaultMode set " +test/e2e/common/configmap_volume.go: "should be consumable from pods in volume as non-root " +test/e2e/common/configmap_volume.go: "should be consumable from pods in volume with mappings " +test/e2e/common/configmap_volume.go: "should be consumable from pods in volume with mappings and Item mode set" +test/e2e/common/configmap_volume.go: "should be consumable from pods in volume with mappings as non-root " +test/e2e/common/configmap_volume.go: "updates should be reflected in volume " +test/e2e/common/configmap_volume.go: "optional updates should be reflected in volume " +test/e2e/common/configmap_volume.go: "should be consumable in multiple volumes in the same pod " +test/e2e/common/container_probe.go: "with readiness probe should not be ready before initial delay and never restart " +test/e2e/common/container_probe.go: "with readiness probe that fails should never be ready and never restart " +test/e2e/common/container_probe.go: "should be restarted with a exec \"cat /tmp/health\" liveness probe" +test/e2e/common/container_probe.go: "should *not* be restarted with a exec \"cat /tmp/health\" liveness probe" +test/e2e/common/container_probe.go: "should be restarted with a /healthz http liveness probe " +test/e2e/common/container_probe.go: "should have monotonically increasing restart count [Slow]" +test/e2e/common/container_probe.go: "should *not* be restarted with a /healthz http liveness probe " +test/e2e/common/container_probe.go: "should be restarted with a docker exec liveness probe with timeout " +test/e2e/common/docker_containers.go: "should use the image defaults if command and args are blank " +test/e2e/common/docker_containers.go: "should be able to override the image's default arguments (docker cmd) " +test/e2e/common/docker_containers.go: "should be able to override the image's default commmand (docker entrypoint) " +test/e2e/common/docker_containers.go: "should be able to override the image's default command and arguments " +test/e2e/common/downward_api.go: "should provide pod name and namespace as env vars " +test/e2e/common/downward_api.go: "should provide pod IP as an env var " +test/e2e/common/downward_api.go: "should provide host IP as an env var " +test/e2e/common/downward_api.go: "should provide container's limits.cpu/memory and requests.cpu/memory as env vars " +test/e2e/common/downward_api.go: "should provide default limits.cpu/memory from node allocatable " +test/e2e/common/downward_api.go: "should provide pod UID as env vars " +test/e2e/common/downwardapi_volume.go: "should provide podname only " +test/e2e/common/downwardapi_volume.go: "should set DefaultMode on files " +test/e2e/common/downwardapi_volume.go: "should set mode on item file " +test/e2e/common/downwardapi_volume.go: "should update labels on modification " +test/e2e/common/downwardapi_volume.go: "should update annotations on modification " +test/e2e/common/downwardapi_volume.go: "should provide container's cpu limit " +test/e2e/common/downwardapi_volume.go: "should provide container's memory limit " +test/e2e/common/downwardapi_volume.go: "should provide container's cpu request " +test/e2e/common/downwardapi_volume.go: "should provide container's memory request " +test/e2e/common/downwardapi_volume.go: "should provide node allocatable (cpu) as default cpu limit if the limit is not set " +test/e2e/common/downwardapi_volume.go: "should provide node allocatable (memory) as default memory limit if the limit is not set " +test/e2e/common/empty_dir.go: "volume on tmpfs should have the correct mode" +test/e2e/common/empty_dir.go: "should support (root,0644,tmpfs)" +test/e2e/common/empty_dir.go: "should support (root,0666,tmpfs)" +test/e2e/common/empty_dir.go: "should support (root,0777,tmpfs)" +test/e2e/common/empty_dir.go: "should support (non-root,0644,tmpfs)" +test/e2e/common/empty_dir.go: "should support (non-root,0666,tmpfs)" +test/e2e/common/empty_dir.go: "should support (non-root,0777,tmpfs)" +test/e2e/common/empty_dir.go: "volume on default medium should have the correct mode" +test/e2e/common/empty_dir.go: "should support (root,0644,default)" +test/e2e/common/empty_dir.go: "should support (root,0666,default)" +test/e2e/common/empty_dir.go: "should support (root,0777,default)" +test/e2e/common/empty_dir.go: "should support (non-root,0644,default)" +test/e2e/common/empty_dir.go: "should support (non-root,0666,default)" +test/e2e/common/empty_dir.go: "should support (non-root,0777,default)" +test/e2e/common/expansion.go: "should allow composing env vars into new env vars " +test/e2e/common/expansion.go: "should allow substituting values in a container's command " +test/e2e/common/expansion.go: "should allow substituting values in a container's args " +test/e2e/common/host_path.go: "should give a volume the correct mode" +test/e2e/common/kubelet_etc_hosts.go: "should test kubelet managed /etc/hosts file " +test/e2e/common/networking.go: "should function for intra-pod communication: http " +test/e2e/common/networking.go: "should function for intra-pod communication: udp " +test/e2e/common/networking.go: "should function for node-pod communication: http " +test/e2e/common/networking.go: "should function for node-pod communication: udp " +test/e2e/common/pods.go: "should get a host IP " +test/e2e/common/pods.go: "should be submitted and removed " +test/e2e/common/pods.go: "should be updated " +test/e2e/common/pods.go: "should allow activeDeadlineSeconds to be updated " +test/e2e/common/pods.go: "should contain environment variables for services " +test/e2e/common/projected.go: "should be consumable from pods in volume" +test/e2e/common/projected.go: "should be consumable from pods in volume with defaultMode set" +test/e2e/common/projected.go: "should be consumable from pods in volume as non-root with defaultMode and fsGroup set" +test/e2e/common/projected.go: "should be consumable from pods in volume with mappings" +test/e2e/common/projected.go: "should be consumable from pods in volume with mappings and Item Mode set" +test/e2e/common/projected.go: "should be consumable in multiple volumes in a pod" +test/e2e/common/projected.go: "optional updates should be reflected in volume" +test/e2e/common/projected.go: "should be consumable from pods in volume" +test/e2e/common/projected.go: "should be consumable from pods in volume with defaultMode set" +test/e2e/common/projected.go: "should be consumable from pods in volume as non-root" +test/e2e/common/projected.go: "should be consumable from pods in volume with mappings" +test/e2e/common/projected.go: "should be consumable from pods in volume with mappings and Item mode set" +test/e2e/common/projected.go: "should be consumable from pods in volume with mappings as non-root" +test/e2e/common/projected.go: "updates should be reflected in volume" +test/e2e/common/projected.go: "optional updates should be reflected in volume" +test/e2e/common/projected.go: "should be consumable in multiple volumes in the same pod" +test/e2e/common/projected.go: "should provide podname only" +test/e2e/common/projected.go: "should set DefaultMode on files" +test/e2e/common/projected.go: "should set mode on item file" +test/e2e/common/projected.go: "should update labels on modification" +test/e2e/common/projected.go: "should update annotations on modification" +test/e2e/common/projected.go: "should provide container's cpu limit" +test/e2e/common/projected.go: "should provide container's memory limit" +test/e2e/common/projected.go: "should provide container's cpu request" +test/e2e/common/projected.go: "should provide container's memory request" +test/e2e/common/projected.go: "should provide node allocatable (cpu) as default cpu limit if the limit is not set" +test/e2e/common/projected.go: "should provide node allocatable (memory) as default memory limit if the limit is not set" +test/e2e/common/projected.go: "should project all components that make up the projection API [Projection]" +test/e2e/common/secrets.go: "should be consumable from pods in env vars " +test/e2e/common/secrets.go: "should be consumable via the environment " +test/e2e/common/secrets_volume.go: "should be consumable from pods in volume " +test/e2e/common/secrets_volume.go: "should be consumable from pods in volume with defaultMode set " +test/e2e/common/secrets_volume.go: "should be consumable from pods in volume as non-root with defaultMode and fsGroup set " +test/e2e/common/secrets_volume.go: "should be consumable from pods in volume with mappings " +test/e2e/common/secrets_volume.go: "should be consumable from pods in volume with mappings and Item Mode set " +test/e2e/common/secrets_volume.go: "should be consumable in multiple volumes in a pod " +test/e2e/common/secrets_volume.go: "optional updates should be reflected in volume " +test/e2e/kubectl/kubectl.go: "should create and stop a replication controller " +test/e2e/kubectl/kubectl.go: "should scale a replication controller " +test/e2e/kubectl/kubectl.go: "should do a rolling update of a replication controller " +test/e2e/kubectl/kubectl.go: "should create and stop a working application " +test/e2e/kubectl/kubectl.go: "should check if v1 is in available api versions " +test/e2e/kubectl/kubectl.go: "should check if Kubernetes master services is included in cluster-info " +test/e2e/kubectl/kubectl.go: "should check if kubectl describe prints relevant information for rc and pods " +test/e2e/kubectl/kubectl.go: "should create services for rc " +test/e2e/kubectl/kubectl.go: "should update the label on a resource " +test/e2e/kubectl/kubectl.go: "should be able to retrieve and filter logs " +test/e2e/kubectl/kubectl.go: "should add annotations for pods in rc " +test/e2e/kubectl/kubectl.go: "should check is all data is printed " +test/e2e/kubectl/kubectl.go: "should create an rc or deployment from an image " +test/e2e/kubectl/kubectl.go: "should create an rc from an image " +test/e2e/kubectl/kubectl.go: "should support rolling-update to same image " +test/e2e/kubectl/kubectl.go: "should create a deployment from an image " +test/e2e/kubectl/kubectl.go: "should create a job from an image when restart is OnFailure " +test/e2e/kubectl/kubectl.go: "should create a pod from an image when restart is Never " +test/e2e/kubectl/kubectl.go: "should update a single-container pod's image " +test/e2e/kubectl/kubectl.go: "should create a job from an image, then delete the job " +test/e2e/kubectl/kubectl.go: "should support proxy with --port 0 " +test/e2e/kubectl/kubectl.go: "should support --unix-socket=/path " +test/e2e/network/dns.go: "should provide DNS for the cluster " +test/e2e/network/dns.go: "should provide DNS for services " +test/e2e/network/proxy.go: "should proxy logs on node with explicit kubelet port " +test/e2e/network/proxy.go: "should proxy logs on node " +test/e2e/network/proxy.go: "should proxy logs on node with explicit kubelet port using proxy subresource " +test/e2e/network/proxy.go: "should proxy logs on node using proxy subresource " +test/e2e/network/proxy.go: "should proxy through a service and a pod " +test/e2e/network/service.go: "should provide secure master service " +test/e2e/network/service.go: "should serve a basic endpoint from pods " +test/e2e/network/service.go: "should serve multiport endpoints from pods " +test/e2e/network/service_latency.go: "should not be very high " +test/e2e/node/events.go: "should be sent by kubelets and the scheduler about pods scheduling and running " +test/e2e/node/pods.go: "should be submitted and removed [Flaky]" +test/e2e/node/pods.go: "should be submitted and removed " +test/e2e/node/pre_stop.go: "should call prestop when killing a pod " +test/e2e/scheduling/predicates.go: "validates resource limits of pods that are allowed to run " +test/e2e/scheduling/predicates.go: "validates that NodeSelector is respected if not matching " +test/e2e/scheduling/predicates.go: "validates that NodeSelector is respected if matching " diff --git a/vendor/k8s.io/kubernetes/test/conformance/walk.go b/vendor/k8s.io/kubernetes/test/conformance/walk.go new file mode 100644 index 000000000..9637620f1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/conformance/walk.go @@ -0,0 +1,166 @@ +/* +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 main provides a tool that scans kubernetes e2e test source code +// looking for conformance test declarations, which it emits on stdout. It +// also looks for legacy, manually added "[Conformance]" tags and reports an +// error if it finds any. +// +// This approach is not air tight, but it will serve our purpose as a +// pre-submit check. +package main + +import ( + "fmt" + "go/ast" + "go/parser" + "go/token" + "os" + "path/filepath" + "strings" +) + +type visitor struct { + FileSet *token.FileSet +} + +func newVisitor() *visitor { + return &visitor{ + FileSet: token.NewFileSet(), + } +} + +func (v *visitor) isConformanceCall(call *ast.CallExpr) bool { + switch fun := call.Fun.(type) { + case *ast.SelectorExpr: + if fun.Sel != nil { + return fun.Sel.Name == "ConformanceIt" + } + } + return false +} + +func (v *visitor) isLegacyItCall(call *ast.CallExpr) bool { + switch fun := call.Fun.(type) { + case *ast.Ident: + if fun.Name != "It" { + return false + } + if len(call.Args) < 1 { + v.failf(call, "Not enough arguments to It()") + } + default: + return false + } + + switch arg := call.Args[0].(type) { + case *ast.BasicLit: + if arg.Kind != token.STRING { + v.failf(arg, "Unexpected non-string argument to It()") + } + if strings.Contains(arg.Value, "[Conformance]") { + return true + } + default: + // non-literal argument to It()... we just ignore these even though they could be a way to "sneak in" a conformance test + } + + return false +} + +func (v *visitor) failf(expr ast.Expr, format string, a ...interface{}) { + msg := fmt.Sprintf(format, a...) + fmt.Fprintf(os.Stderr, "ERROR at %v: %s\n", v.FileSet.Position(expr.Pos()), msg) + os.Exit(65) +} + +func (v *visitor) emit(arg ast.Expr) { + switch at := arg.(type) { + case *ast.BasicLit: + if at.Kind != token.STRING { + v.failf(at, "framework.ConformanceIt() called with non-string argument") + return + } + fmt.Printf("%s: %s\n", v.FileSet.Position(at.Pos()).Filename, at.Value) + default: + v.failf(at, "framework.ConformanceIt() called with non-literal argument") + fmt.Fprintf(os.Stderr, "ERROR: non-literal argument %v at %v\n", arg, v.FileSet.Position(arg.Pos())) + } +} + +// Visit visits each node looking for either calls to framework.ConformanceIt, +// which it will emit in its list of conformance tests, or legacy calls to +// It() with a manually embedded [Conformance] tag, which it will complain +// about. +func (v *visitor) Visit(node ast.Node) (w ast.Visitor) { + switch t := node.(type) { + case *ast.CallExpr: + if v.isConformanceCall(t) { + v.emit(t.Args[0]) + } else if v.isLegacyItCall(t) { + v.failf(t, "Using It() with manual [Conformance] tag is no longer allowed. Use framework.ConformanceIt() instead.") + return nil + } + } + return v +} + +func scandir(dir string) { + v := newVisitor() + pkg, err := parser.ParseDir(v.FileSet, dir, nil, 0) + if err != nil { + panic(err) + } + + for _, p := range pkg { + ast.Walk(v, p) + } +} + +func scanfile(path string) { + v := newVisitor() + file, err := parser.ParseFile(v.FileSet, path, nil, 0) + if err != nil { + panic(err) + } + + ast.Walk(v, file) +} + +func main() { + args := os.Args[1:] + if len(args) < 1 { + fmt.Fprintf(os.Stderr, "USAGE: %s [...]\n", os.Args[0]) + os.Exit(64) + } + + for _, arg := range args { + filepath.Walk(arg, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if info.IsDir() { + scandir(path) + } else { + // TODO(mml): Remove this once we have all-go-srcs build rules. See https://github.com/kubernetes/repo-infra/pull/45 + if strings.HasSuffix(path, ".go") { + scanfile(path) + } + } + return nil + }) + } +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/BUILD b/vendor/k8s.io/kubernetes/test/e2e/BUILD index 3c89a86d3..8210ef377 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/BUILD @@ -38,30 +38,17 @@ go_library( name = "go_default_library", srcs = [ "e2e.go", - "events.go", - "example_cluster_dns.go", "examples.go", "gke_local_ssd.go", "gke_node_pools.go", - "limit_range.go", - "network_partition.go", - "pod_gc.go", - "pods.go", - "pre_stop.go", - "resource_quota.go", - "ssh.go", ], importpath = "k8s.io/kubernetes/test/e2e", deps = [ - "//federation/test/e2e:go_default_library", - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/cloudprovider/providers/azure:go_default_library", "//pkg/cloudprovider/providers/gce:go_default_library", - "//pkg/controller/node:go_default_library", "//pkg/kubectl/util/logs:go_default_library", - "//pkg/quota/evaluator/core:go_default_library", "//pkg/version:go_default_library", "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", @@ -70,7 +57,6 @@ go_library( "//test/e2e/generated:go_default_library", "//test/e2e/manifest:go_default_library", "//test/utils:go_default_library", - "//test/utils/image:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/ginkgo/config:go_default_library", @@ -78,21 +64,14 @@ go_library( "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/serviceaccount:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/BUILD b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/BUILD index f2b4521cd..2dacec44d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/BUILD @@ -9,6 +9,7 @@ go_library( name = "go_default_library", srcs = [ "aggregator.go", + "certs.go", "chunking.go", "custom_resource_definition.go", "etcd_failure.go", @@ -18,11 +19,12 @@ go_library( "initializers.go", "namespace.go", "table_conversion.go", + "webhook.go", ], importpath = "k8s.io/kubernetes/test/e2e/apimachinery", deps = [ - "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/printers:go_default_library", "//pkg/util/version:go_default_library", @@ -33,6 +35,7 @@ go_library( "//test/utils/image:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/batch/v1beta1:go_default_library", @@ -57,6 +60,7 @@ go_library( "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/dynamic:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", "//vendor/k8s.io/client-go/util/retry:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/aggregator.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/aggregator.go index 23d602734..319ba02e3 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/aggregator.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/aggregator.go @@ -18,12 +18,9 @@ package apimachinery import ( "crypto/rand" - "crypto/x509" "encoding/json" "fmt" - "io/ioutil" "math/big" - "os" "strings" "time" @@ -38,7 +35,6 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/authentication/user" "k8s.io/client-go/discovery" - "k8s.io/client-go/util/cert" apiregistrationv1beta1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1" rbacapi "k8s.io/kubernetes/pkg/apis/rbac" utilversion "k8s.io/kubernetes/pkg/util/version" @@ -48,18 +44,12 @@ import ( . "github.com/onsi/ginkgo" ) -type aggregatorContext struct { - apiserverCert []byte - apiserverKey []byte - apiserverSigningCert []byte -} - var serverAggregatorVersion = utilversion.MustParseSemantic("v1.7.0") var _ = SIGDescribe("Aggregator", func() { f := framework.NewDefaultFramework("aggregator") framework.AddCleanupAction(func() { - cleanTest(f, false) + cleanTest(f) }) It("Should be able to support the 1.7 Sample API Server using the current Aggregator", func() { @@ -68,127 +58,45 @@ var _ = SIGDescribe("Aggregator", func() { framework.SkipUnlessProviderIs("gce", "gke") // Testing a 1.7 version of the sample-apiserver - TestSampleAPIServer(f, "gcr.io/kubernetes-e2e-test-images/k8s-aggregator-sample-apiserver-amd64:1.7v2", "sample-system") + TestSampleAPIServer(f, "gcr.io/kubernetes-e2e-test-images/k8s-aggregator-sample-apiserver-amd64:1.7v2") }) }) -func cleanTest(f *framework.Framework, block bool) { +func cleanTest(f *framework.Framework) { // delete the APIService first to avoid causing discovery errors aggrclient := f.AggregatorClient _ = aggrclient.ApiregistrationV1beta1().APIServices().Delete("v1alpha1.wardle.k8s.io", nil) - namespace := "sample-system" + namespace := f.Namespace.Name client := f.ClientSet _ = client.ExtensionsV1beta1().Deployments(namespace).Delete("sample-apiserver", nil) _ = client.CoreV1().Secrets(namespace).Delete("sample-apiserver-secret", nil) _ = client.CoreV1().Services(namespace).Delete("sample-api", nil) _ = client.CoreV1().ServiceAccounts(namespace).Delete("sample-apiserver", nil) _ = client.RbacV1beta1().RoleBindings("kube-system").Delete("wardler-auth-reader", nil) - _ = client.CoreV1().Namespaces().Delete(namespace, nil) _ = client.RbacV1beta1().ClusterRoles().Delete("wardler", nil) - _ = client.RbacV1beta1().ClusterRoleBindings().Delete("wardler:sample-system:anonymous", nil) - if block { - _ = wait.Poll(100*time.Millisecond, 5*time.Second, func() (bool, error) { - _, err := client.CoreV1().Namespaces().Get("sample-system", metav1.GetOptions{}) - if err != nil { - if apierrs.IsNotFound(err) { - return true, nil - } - return false, err - } - return false, nil - }) - } -} - -func setupSampleAPIServerCert(namespaceName, serviceName string) *aggregatorContext { - aggregatorCertDir, err := ioutil.TempDir("", "test-e2e-aggregator") - if err != nil { - framework.Failf("Failed to create a temp dir for cert generation %v", err) - } - defer os.RemoveAll(aggregatorCertDir) - apiserverSigningKey, err := cert.NewPrivateKey() - if err != nil { - framework.Failf("Failed to create CA private key for apiserver %v", err) - } - apiserverSigningCert, err := cert.NewSelfSignedCACert(cert.Config{CommonName: "e2e-sampleapiserver-ca"}, apiserverSigningKey) - if err != nil { - framework.Failf("Failed to create CA cert for apiserver %v", err) - } - apiserverCACertFile, err := ioutil.TempFile(aggregatorCertDir, "apiserver-ca.crt") - if err != nil { - framework.Failf("Failed to create a temp file for ca cert generation %v", err) - } - if err := ioutil.WriteFile(apiserverCACertFile.Name(), cert.EncodeCertPEM(apiserverSigningCert), 0644); err != nil { - framework.Failf("Failed to write CA cert for apiserver %v", err) - } - apiserverKey, err := cert.NewPrivateKey() - if err != nil { - framework.Failf("Failed to create private key for apiserver %v", err) - } - apiserverCert, err := cert.NewSignedCert( - cert.Config{ - CommonName: serviceName + "." + namespaceName + ".svc", - Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, - }, - apiserverKey, apiserverSigningCert, apiserverSigningKey, - ) - if err != nil { - framework.Failf("Failed to create cert for apiserver %v", err) - } - apiserverCertFile, err := ioutil.TempFile(aggregatorCertDir, "apiserver.crt") - if err != nil { - framework.Failf("Failed to create a temp file for cert generation %v", err) - } - apiserverKeyFile, err := ioutil.TempFile(aggregatorCertDir, "apiserver.key") - if err != nil { - framework.Failf("Failed to create a temp file for key generation %v", err) - } - if err := ioutil.WriteFile(apiserverCertFile.Name(), cert.EncodeCertPEM(apiserverCert), 0600); err != nil { - framework.Failf("Failed to write cert file for apiserver %v", err) - } - if err := ioutil.WriteFile(apiserverKeyFile.Name(), cert.EncodePrivateKeyPEM(apiserverKey), 0644); err != nil { - framework.Failf("Failed to write key file for apiserver %v", err) - } - return &aggregatorContext{ - apiserverCert: cert.EncodeCertPEM(apiserverCert), - apiserverKey: cert.EncodePrivateKeyPEM(apiserverKey), - apiserverSigningCert: cert.EncodeCertPEM(apiserverSigningCert), - } + _ = client.RbacV1beta1().ClusterRoleBindings().Delete("wardler:"+namespace+":anonymous", nil) } // A basic test if the sample-apiserver code from 1.7 and compiled against 1.7 // will work on the current Aggregator/API-Server. -func TestSampleAPIServer(f *framework.Framework, image, namespaceName string) { +func TestSampleAPIServer(f *framework.Framework, image string) { By("Registering the sample API server.") - cleanTest(f, true) client := f.ClientSet restClient := client.Discovery().RESTClient() iclient := f.InternalClientset aggrclient := f.AggregatorClient - context := setupSampleAPIServerCert(namespaceName, "sample-api") - ns := f.Namespace.Name + namespace := f.Namespace.Name + context := setupServerCert(namespace, "sample-api") if framework.ProviderIs("gke") { // kubectl create clusterrolebinding user-cluster-admin-binding --clusterrole=cluster-admin --user=user@domain.com authenticated := rbacv1beta1.Subject{Kind: rbacv1beta1.GroupKind, Name: user.AllAuthenticated} - framework.BindClusterRole(client.RbacV1beta1(), "cluster-admin", ns, authenticated) + framework.BindClusterRole(client.RbacV1beta1(), "cluster-admin", namespace, authenticated) } // kubectl create -f namespace.yaml - var namespace string - err := wait.Poll(100*time.Millisecond, 30*time.Second, func() (bool, error) { - got, err := client.CoreV1().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: namespaceName}}) - if err != nil { - if strings.HasPrefix(err.Error(), "object is being deleted:") { - return false, nil - } - return false, err - } - namespace = got.Name - return true, nil - }) - framework.ExpectNoError(err, "creating namespace %q", namespaceName) + // NOTE: aggregated apis should generally be set up in there own namespace. As the test framework is setting up a new namespace, we are just using that. // kubectl create -f secret.yaml secretName := "sample-apiserver-secret" @@ -198,11 +106,11 @@ func TestSampleAPIServer(f *framework.Framework, image, namespaceName string) { }, Type: v1.SecretTypeOpaque, Data: map[string][]byte{ - "tls.crt": context.apiserverCert, - "tls.key": context.apiserverKey, + "tls.crt": context.cert, + "tls.key": context.key, }, } - _, err = client.CoreV1().Secrets(namespace).Create(secret) + _, err := client.CoreV1().Secrets(namespace).Create(secret) framework.ExpectNoError(err, "creating secret %q in namespace %q", secretName, namespace) // kubectl create -f deploy.yaml @@ -375,7 +283,7 @@ func TestSampleAPIServer(f *framework.Framework, image, namespaceName string) { }, Group: "wardle.k8s.io", Version: "v1alpha1", - CABundle: context.apiserverSigningCert, + CABundle: context.signingCert, GroupPriorityMinimum: 2000, VersionPriority: 200, }, @@ -383,8 +291,10 @@ func TestSampleAPIServer(f *framework.Framework, image, namespaceName string) { framework.ExpectNoError(err, "creating apiservice %s with namespace %s", "v1alpha1.wardle.k8s.io", namespace) // Wait for the extension apiserver to be up and healthy - // kubectl get deployments -n sample-system && status == Running - err = framework.WaitForDeploymentStatusValid(client, deployment) + // kubectl get deployments -n && status == Running + // NOTE: aggregated apis should generally be set up in there own namespace (). As the test framework + // is setting up a new namespace, we are just using that. + err = framework.WaitForDeploymentComplete(client, deployment) // We seem to need to do additional waiting until the extension api service is actually up. err = wait.Poll(100*time.Millisecond, 30*time.Second, func() (bool, error) { @@ -505,12 +415,12 @@ func TestSampleAPIServer(f *framework.Framework, image, namespaceName string) { framework.Failf("failed to get back the correct deleted flunders list %v from the dynamic client", unstructuredList) } - cleanTest(f, true) + cleanTest(f) } func validateErrorWithDebugInfo(f *framework.Framework, err error, pods *v1.PodList, msg string, fields ...interface{}) { if err != nil { - namespace := "sample-system" + namespace := f.Namespace.Name msg := fmt.Sprintf(msg, fields...) msg += fmt.Sprintf(" but received unexpected error:\n%v", err) client := f.ClientSet @@ -520,8 +430,8 @@ func validateErrorWithDebugInfo(f *framework.Framework, err error, pods *v1.PodL } pds, err := client.CoreV1().Pods(namespace).List(metav1.ListOptions{}) if err == nil { - msg += fmt.Sprintf("\nFound pods in sample-system:\n%v", pds) - msg += fmt.Sprintf("\nOriginal pods in sample-system:\n%v", pods) + msg += fmt.Sprintf("\nFound pods in %s:\n%v", namespace, pds) + msg += fmt.Sprintf("\nOriginal pods in %s:\n%v", namespace, pods) } framework.Failf(msg) diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/certs.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/certs.go new file mode 100644 index 000000000..26c8e06e4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/certs.go @@ -0,0 +1,90 @@ +/* +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 apimachinery + +import ( + "crypto/x509" + "io/ioutil" + "os" + + "k8s.io/client-go/util/cert" + "k8s.io/kubernetes/test/e2e/framework" +) + +type certContext struct { + cert []byte + key []byte + signingCert []byte +} + +// Setup the server cert. For example, user apiservers and admission webhooks +// can use the cert to prove their identify to the kube-apiserver +func setupServerCert(namespaceName, serviceName string) *certContext { + certDir, err := ioutil.TempDir("", "test-e2e-server-cert") + if err != nil { + framework.Failf("Failed to create a temp dir for cert generation %v", err) + } + defer os.RemoveAll(certDir) + signingKey, err := cert.NewPrivateKey() + if err != nil { + framework.Failf("Failed to create CA private key %v", err) + } + signingCert, err := cert.NewSelfSignedCACert(cert.Config{CommonName: "e2e-server-cert-ca"}, signingKey) + if err != nil { + framework.Failf("Failed to create CA cert for apiserver %v", err) + } + caCertFile, err := ioutil.TempFile(certDir, "ca.crt") + if err != nil { + framework.Failf("Failed to create a temp file for ca cert generation %v", err) + } + if err := ioutil.WriteFile(caCertFile.Name(), cert.EncodeCertPEM(signingCert), 0644); err != nil { + framework.Failf("Failed to write CA cert %v", err) + } + key, err := cert.NewPrivateKey() + if err != nil { + framework.Failf("Failed to create private key for %v", err) + } + signedCert, err := cert.NewSignedCert( + cert.Config{ + CommonName: serviceName + "." + namespaceName + ".svc", + Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, + }, + key, signingCert, signingKey, + ) + if err != nil { + framework.Failf("Failed to create cert%v", err) + } + certFile, err := ioutil.TempFile(certDir, "server.crt") + if err != nil { + framework.Failf("Failed to create a temp file for cert generation %v", err) + } + keyFile, err := ioutil.TempFile(certDir, "server.key") + if err != nil { + framework.Failf("Failed to create a temp file for key generation %v", err) + } + if err = ioutil.WriteFile(certFile.Name(), cert.EncodeCertPEM(signedCert), 0600); err != nil { + framework.Failf("Failed to write cert file %v", err) + } + if err = ioutil.WriteFile(keyFile.Name(), cert.EncodePrivateKeyPEM(key), 0644); err != nil { + framework.Failf("Failed to write key file %v", err) + } + return &certContext{ + cert: cert.EncodeCertPEM(signedCert), + key: cert.EncodePrivateKeyPEM(key), + signingCert: cert.EncodeCertPEM(signingCert), + } +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/chunking.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/chunking.go index 3892ad353..063a7bd4d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/chunking.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/chunking.go @@ -37,7 +37,7 @@ var _ = SIGDescribe("Servers with support for API chunking", func() { It("should return chunks of results for list calls", func() { ns := f.Namespace.Name c := f.ClientSet - client := c.Core().PodTemplates(ns) + client := c.CoreV1().PodTemplates(ns) By("creating a large number of resources") workqueue.Parallelize(20, numberOfTotalResources, func(i int) { diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/custom_resource_definition.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/custom_resource_definition.go index aa18a77fd..a7c963a23 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/custom_resource_definition.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/custom_resource_definition.go @@ -33,7 +33,12 @@ var _ = SIGDescribe("CustomResourceDefinition resources", func() { f := framework.NewDefaultFramework("custom-resource-definition") Context("Simple CustomResourceDefinition", func() { - It("creating/deleting custom resource definition objects works [Conformance]", func() { + /* + Testname: crd-creation-test + Description: Create a random Custom Resource Definition and make sure + the API returns success. + */ + framework.ConformanceIt("creating/deleting custom resource definition objects works ", func() { framework.SkipUnlessServerVersionGTE(crdVersion, f.ClientSet.Discovery()) diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/etcd_failure.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/etcd_failure.go index aa35810f1..1d035297b 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/etcd_failure.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/etcd_failure.go @@ -103,7 +103,7 @@ func masterExec(cmd string) { func checkExistingRCRecovers(f *framework.Framework) { By("assert that the pre-existing replication controller recovers") - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) rcSelector := labels.Set{"name": "baz"}.AsSelector() By("deleting pods from existing replication controller") diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/garbage_collector.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/garbage_collector.go index c974167a9..25960cdb3 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/garbage_collector.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/garbage_collector.go @@ -35,7 +35,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/storage/names" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework/metrics" @@ -44,6 +44,34 @@ import ( imageutils "k8s.io/kubernetes/test/utils/image" ) +// estimateMaximumPods estimates how many pods the cluster can handle +// with some wiggle room, to prevent pods being unable to schedule due +// to max pod constraints. +func estimateMaximumPods(c clientset.Interface, min, max int32) int32 { + availablePods := int32(0) + for _, node := range framework.GetReadySchedulableNodesOrDie(c).Items { + if q, ok := node.Status.Allocatable["pods"]; ok { + if num, ok := q.AsInt64(); ok { + availablePods += int32(num) + continue + } + } + // best guess per node, since default maxPerCore is 10 and most nodes have at least + // one core. + availablePods += 10 + } + //avoid creating exactly max pods + availablePods *= 8 / 10 + // bound the top and bottom + if availablePods > max { + availablePods = max + } + if availablePods < min { + availablePods = min + } + return availablePods +} + func getForegroundOptions() *metav1.DeleteOptions { policy := metav1.DeletePropagationForeground return &metav1.DeleteOptions{PropagationPolicy: &policy} @@ -138,7 +166,7 @@ func verifyRemainingDeploymentsReplicaSetsPods( deploymentNum, rsNum, podNum int, ) (bool, error) { var ret = true - rs, err := clientSet.Extensions().ReplicaSets(f.Namespace.Name).List(metav1.ListOptions{}) + rs, err := clientSet.ExtensionsV1beta1().ReplicaSets(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { return false, fmt.Errorf("Failed to list rs: %v", err) } @@ -146,7 +174,7 @@ func verifyRemainingDeploymentsReplicaSetsPods( ret = false By(fmt.Sprintf("expected %d rs, got %d rs", rsNum, len(rs.Items))) } - deployments, err := clientSet.Extensions().Deployments(f.Namespace.Name).List(metav1.ListOptions{}) + deployments, err := clientSet.ExtensionsV1beta1().Deployments(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { return false, fmt.Errorf("Failed to list deployments: %v", err) } @@ -191,8 +219,8 @@ func newGCPod(name string) *v1.Pod { // controllers and pods are rcNum and podNum. It returns error if the // communication with the API server fails. func verifyRemainingReplicationControllersPods(f *framework.Framework, clientSet clientset.Interface, rcNum, podNum int) (bool, error) { - rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name) - pods, err := clientSet.Core().Pods(f.Namespace.Name).List(metav1.ListOptions{}) + rcClient := clientSet.CoreV1().ReplicationControllers(f.Namespace.Name) + pods, err := clientSet.CoreV1().Pods(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { return false, fmt.Errorf("Failed to list pods: %v", err) } @@ -236,7 +264,7 @@ func verifyRemainingCronJobsJobsPods(f *framework.Framework, clientSet clientset By(fmt.Sprintf("expected %d jobs, got %d jobs", jobNum, len(jobs.Items))) } - pods, err := f.ClientSet.Core().Pods(f.Namespace.Name).List(metav1.ListOptions{}) + pods, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { return false, fmt.Errorf("Failed to list pods: %v", err) } @@ -288,7 +316,7 @@ func newCronJob(name, schedule string) *batchv1beta1.CronJob { Containers: []v1.Container{ { Name: "c", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"sleep", "300"}, }, }, @@ -304,8 +332,8 @@ var _ = SIGDescribe("Garbage collector", func() { f := framework.NewDefaultFramework("gc") It("should delete pods created by rc when not orphaning", func() { clientSet := f.ClientSet - rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name) - podClient := clientSet.Core().Pods(f.Namespace.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(f.Namespace.Name) + podClient := clientSet.CoreV1().Pods(f.Namespace.Name) rcName := "simpletest.rc" // TODO: find better way to keep this label unique in the test uniqLabels := map[string]string{"gctest": "delete_pods"} @@ -357,12 +385,12 @@ var _ = SIGDescribe("Garbage collector", func() { It("should orphan pods created by rc if delete options say so", func() { clientSet := f.ClientSet - rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name) - podClient := clientSet.Core().Pods(f.Namespace.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(f.Namespace.Name) + podClient := clientSet.CoreV1().Pods(f.Namespace.Name) rcName := "simpletest.rc" // TODO: find better way to keep this label unique in the test uniqLabels := map[string]string{"gctest": "orphan_pods"} - rc := newOwnerRC(f, rcName, 100, uniqLabels) + rc := newOwnerRC(f, rcName, estimateMaximumPods(clientSet, 10, 100), uniqLabels) By("create the rc") rc, err := rcClient.Create(rc) if err != nil { @@ -426,8 +454,8 @@ var _ = SIGDescribe("Garbage collector", func() { It("should orphan pods created by rc if deleteOptions.OrphanDependents is nil", func() { clientSet := f.ClientSet - rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name) - podClient := clientSet.Core().Pods(f.Namespace.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(f.Namespace.Name) + podClient := clientSet.CoreV1().Pods(f.Namespace.Name) rcName := "simpletest.rc" // TODO: find better way to keep this label unique in the test uniqLabels := map[string]string{"gctest": "orphan_pods_nil_option"} @@ -475,8 +503,8 @@ var _ = SIGDescribe("Garbage collector", func() { It("should delete RS created by deployment when not orphaning", func() { clientSet := f.ClientSet - deployClient := clientSet.Extensions().Deployments(f.Namespace.Name) - rsClient := clientSet.Extensions().ReplicaSets(f.Namespace.Name) + deployClient := clientSet.ExtensionsV1beta1().Deployments(f.Namespace.Name) + rsClient := clientSet.ExtensionsV1beta1().ReplicaSets(f.Namespace.Name) deploymentName := "simpletest.deployment" // TODO: find better way to keep this label unique in the test uniqLabels := map[string]string{"gctest": "delete_rs"} @@ -526,8 +554,8 @@ var _ = SIGDescribe("Garbage collector", func() { It("should orphan RS created by deployment when deleteOptions.OrphanDependents is true", func() { clientSet := f.ClientSet - deployClient := clientSet.Extensions().Deployments(f.Namespace.Name) - rsClient := clientSet.Extensions().ReplicaSets(f.Namespace.Name) + deployClient := clientSet.ExtensionsV1beta1().Deployments(f.Namespace.Name) + rsClient := clientSet.ExtensionsV1beta1().ReplicaSets(f.Namespace.Name) deploymentName := "simpletest.deployment" // TODO: find better way to keep this label unique in the test uniqLabels := map[string]string{"gctest": "orphan_rs"} @@ -576,7 +604,7 @@ var _ = SIGDescribe("Garbage collector", func() { framework.Failf("remaining deployment's post mortem: %#v", remainingDSs) } } - rs, err := clientSet.Extensions().ReplicaSets(f.Namespace.Name).List(metav1.ListOptions{}) + rs, err := clientSet.ExtensionsV1beta1().ReplicaSets(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { framework.Failf("Failed to list ReplicaSet %v", err) } @@ -591,12 +619,12 @@ var _ = SIGDescribe("Garbage collector", func() { It("should keep the rc around until all its pods are deleted if the deleteOptions says so", func() { clientSet := f.ClientSet - rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name) - podClient := clientSet.Core().Pods(f.Namespace.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(f.Namespace.Name) + podClient := clientSet.CoreV1().Pods(f.Namespace.Name) rcName := "simpletest.rc" // TODO: find better way to keep this label unique in the test uniqLabels := map[string]string{"gctest": "delete_pods_foreground"} - rc := newOwnerRC(f, rcName, 100, uniqLabels) + rc := newOwnerRC(f, rcName, estimateMaximumPods(clientSet, 10, 100), uniqLabels) By("create the rc") rc, err := rcClient.Create(rc) if err != nil { @@ -675,10 +703,10 @@ var _ = SIGDescribe("Garbage collector", func() { // TODO: this should be an integration test It("should not delete dependents that have both valid owner and owner that's waiting for dependents to be deleted", func() { clientSet := f.ClientSet - rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name) - podClient := clientSet.Core().Pods(f.Namespace.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(f.Namespace.Name) + podClient := clientSet.CoreV1().Pods(f.Namespace.Name) rc1Name := "simpletest-rc-to-be-deleted" - replicas := int32(100) + replicas := int32(estimateMaximumPods(clientSet, 10, 100)) halfReplicas := int(replicas / 2) // TODO: find better way to keep this label unique in the test uniqLabels := map[string]string{"gctest": "valid_and_pending_owners"} @@ -786,7 +814,7 @@ var _ = SIGDescribe("Garbage collector", func() { // TODO: should be an integration test It("should not be blocked by dependency circle", func() { clientSet := f.ClientSet - podClient := clientSet.Core().Pods(f.Namespace.Name) + podClient := clientSet.CoreV1().Pods(f.Namespace.Name) pod1 := newGCPod("pod1") pod1, err := podClient.Create(pod1) Expect(err).NotTo(HaveOccurred()) diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/generated_clientset.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/generated_clientset.go index 7e3a3d006..0a919d17c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/generated_clientset.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/generated_clientset.go @@ -151,7 +151,7 @@ func observerUpdate(w watch.Interface, expectedUpdate func(runtime.Object) bool) var _ = SIGDescribe("Generated clientset", func() { f := framework.NewDefaultFramework("clientset") It("should create pods, set the deletionTimestamp and deletionGracePeriodSeconds of the pod", func() { - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) By("constructing the pod") name := "pod" + string(uuid.NewUUID()) value := strconv.Itoa(time.Now().Nanosecond()) @@ -243,7 +243,7 @@ func newTestingCronJob(name string, value string) *batchv1beta1.CronJob { Containers: []v1.Container{ { Name: "c", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", VolumeMounts: []v1.VolumeMount{ { MountPath: "/data", diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/initializers.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/initializers.go index 34847f704..1ef358ba3 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/initializers.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/initializers.go @@ -52,14 +52,14 @@ var _ = SIGDescribe("Initializers [Feature:Initializers]", func() { ch := make(chan struct{}) go func() { - _, err := c.Core().Pods(ns).Create(newUninitializedPod(podName)) + _, err := c.CoreV1().Pods(ns).Create(newUninitializedPod(podName)) Expect(err).NotTo(HaveOccurred()) close(ch) }() // wait to ensure the scheduler does not act on an uninitialized pod err := wait.PollImmediate(2*time.Second, 15*time.Second, func() (bool, error) { - p, err := c.Core().Pods(ns).Get(podName, metav1.GetOptions{}) + p, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{}) if err != nil { if errors.IsNotFound(err) { return false, nil @@ -71,23 +71,23 @@ var _ = SIGDescribe("Initializers [Feature:Initializers]", func() { Expect(err).To(Equal(wait.ErrWaitTimeout)) // verify that we can update an initializing pod - pod, err := c.Core().Pods(ns).Get(podName, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) pod.Annotations = map[string]string{"update-1": "test"} - pod, err = c.Core().Pods(ns).Update(pod) + pod, err = c.CoreV1().Pods(ns).Update(pod) Expect(err).NotTo(HaveOccurred()) // verify the list call filters out uninitialized pods - pods, err := c.Core().Pods(ns).List(metav1.ListOptions{IncludeUninitialized: true}) + pods, err := c.CoreV1().Pods(ns).List(metav1.ListOptions{IncludeUninitialized: true}) Expect(err).NotTo(HaveOccurred()) Expect(pods.Items).To(HaveLen(1)) - pods, err = c.Core().Pods(ns).List(metav1.ListOptions{}) + pods, err = c.CoreV1().Pods(ns).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) Expect(pods.Items).To(HaveLen(0)) // clear initializers pod.Initializers = nil - pod, err = c.Core().Pods(ns).Update(pod) + pod, err = c.CoreV1().Pods(ns).Update(pod) Expect(err).NotTo(HaveOccurred()) // pod should now start running @@ -98,12 +98,12 @@ var _ = SIGDescribe("Initializers [Feature:Initializers]", func() { <-ch // verify that we cannot start the pod initializing again - pod, err = c.Core().Pods(ns).Get(podName, metav1.GetOptions{}) + pod, err = c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) pod.Initializers = &metav1.Initializers{ Pending: []metav1.Initializer{{Name: "Other"}}, } - _, err = c.Core().Pods(ns).Update(pod) + _, err = c.CoreV1().Pods(ns).Update(pod) if !errors.IsInvalid(err) || !strings.Contains(err.Error(), "immutable") { Fail(fmt.Sprintf("expected invalid error: %v", err)) } @@ -145,7 +145,7 @@ var _ = SIGDescribe("Initializers [Feature:Initializers]", func() { ch := make(chan struct{}) go func() { defer close(ch) - _, err := c.Core().Pods(ns).Create(newInitPod(podName)) + _, err := c.CoreV1().Pods(ns).Create(newInitPod(podName)) Expect(err).NotTo(HaveOccurred()) }() @@ -153,7 +153,7 @@ var _ = SIGDescribe("Initializers [Feature:Initializers]", func() { By("Waiting until the pod is visible to a client") var pod *v1.Pod err = wait.PollImmediate(2*time.Second, 15*time.Second, func() (bool, error) { - pod, err = c.Core().Pods(ns).Get(podName, metav1.GetOptions{IncludeUninitialized: true}) + pod, err = c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{IncludeUninitialized: true}) if errors.IsNotFound(err) { return false, nil } @@ -170,7 +170,7 @@ var _ = SIGDescribe("Initializers [Feature:Initializers]", func() { // pretend we are an initializer By("Completing initialization") pod.Initializers = nil - pod, err = c.Core().Pods(ns).Update(pod) + pod, err = c.CoreV1().Pods(ns).Update(pod) Expect(err).NotTo(HaveOccurred()) // ensure create call returns @@ -185,7 +185,7 @@ var _ = SIGDescribe("Initializers [Feature:Initializers]", func() { podName = "preinitialized-pod" pod = newUninitializedPod(podName) pod.Initializers.Pending = nil - pod, err = c.Core().Pods(ns).Create(pod) + pod, err = c.CoreV1().Pods(ns).Create(pod) Expect(err).NotTo(HaveOccurred()) Expect(pod.Initializers).To(BeNil()) @@ -197,7 +197,7 @@ var _ = SIGDescribe("Initializers [Feature:Initializers]", func() { v1.MirrorPodAnnotationKey: "true", } pod.Spec.NodeName = "node-does-not-yet-exist" - pod, err = c.Core().Pods(ns).Create(pod) + pod, err = c.CoreV1().Pods(ns).Create(pod) Expect(err).NotTo(HaveOccurred()) Expect(pod.Initializers).To(BeNil()) Expect(pod.Annotations[v1.MirrorPodAnnotationKey]).To(Equal("true")) @@ -259,7 +259,7 @@ var _ = SIGDescribe("Initializers [Feature:Initializers]", func() { LabelSelector: selector.String(), IncludeUninitialized: true, } - pods, err := c.Core().Pods(ns).List(listOptions) + pods, err := c.CoreV1().Pods(ns).List(listOptions) Expect(err).NotTo(HaveOccurred()) Expect(len(pods.Items)).Should(Equal(1)) }) @@ -349,7 +349,7 @@ func newInitPod(podName string) *v1.Pod { // removeInitializersFromAllPods walks all pods and ensures they don't have the provided initializer, // to guarantee completing the test doesn't block the entire cluster. func removeInitializersFromAllPods(c clientset.Interface, initializerName string) { - pods, err := c.Core().Pods("").List(metav1.ListOptions{IncludeUninitialized: true}) + pods, err := c.CoreV1().Pods("").List(metav1.ListOptions{IncludeUninitialized: true}) if err != nil { return } @@ -358,7 +358,7 @@ func removeInitializersFromAllPods(c clientset.Interface, initializerName string continue } err := clientretry.RetryOnConflict(clientretry.DefaultRetry, func() error { - pod, err := c.Core().Pods(p.Namespace).Get(p.Name, metav1.GetOptions{IncludeUninitialized: true}) + pod, err := c.CoreV1().Pods(p.Namespace).Get(p.Name, metav1.GetOptions{IncludeUninitialized: true}) if err != nil { if errors.IsNotFound(err) { return nil @@ -382,7 +382,7 @@ func removeInitializersFromAllPods(c clientset.Interface, initializerName string pod.Initializers = nil } framework.Logf("Found initializer on pod %s in ns %s", pod.Name, pod.Namespace) - _, err = c.Core().Pods(p.Namespace).Update(pod) + _, err = c.CoreV1().Pods(p.Namespace).Update(pod) return err }) if err != nil { diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/namespace.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/namespace.go index 288965645..0542113b7 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/namespace.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/namespace.go @@ -62,7 +62,7 @@ func extinguish(f *framework.Framework, totalNS int, maxAllowedAfterDel int, max framework.ExpectNoError(wait.Poll(2*time.Second, time.Duration(maxSeconds)*time.Second, func() (bool, error) { var cnt = 0 - nsList, err := f.ClientSet.Core().Namespaces().List(metav1.ListOptions{}) + nsList, err := f.ClientSet.CoreV1().Namespaces().List(metav1.ListOptions{}) if err != nil { return false, err } @@ -83,7 +83,7 @@ func waitForPodInNamespace(c clientset.Interface, ns, podName string) *v1.Pod { var pod *v1.Pod var err error err = wait.PollImmediate(2*time.Second, 15*time.Second, func() (bool, error) { - pod, err = c.Core().Pods(ns).Get(podName, metav1.GetOptions{IncludeUninitialized: true}) + pod, err = c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{IncludeUninitialized: true}) if errors.IsNotFound(err) { return false, nil } @@ -119,7 +119,7 @@ func ensurePodsAreRemovedWhenNamespaceIsDeleted(f *framework.Framework) { }, }, } - pod, err = f.ClientSet.Core().Pods(namespace.Name).Create(pod) + pod, err = f.ClientSet.CoreV1().Pods(namespace.Name).Create(pod) Expect(err).NotTo(HaveOccurred()) By("Waiting for the pod to have running status") @@ -141,21 +141,21 @@ func ensurePodsAreRemovedWhenNamespaceIsDeleted(f *framework.Framework) { }, } go func() { - _, err = f.ClientSet.Core().Pods(namespace.Name).Create(podB) + _, err = f.ClientSet.CoreV1().Pods(namespace.Name).Create(podB) // This error is ok, because we will delete the pod before it completes initialization framework.Logf("error from create uninitialized namespace: %v", err) }() podB = waitForPodInNamespace(f.ClientSet, namespace.Name, podB.Name) By("Deleting the namespace") - err = f.ClientSet.Core().Namespaces().Delete(namespace.Name, nil) + err = f.ClientSet.CoreV1().Namespaces().Delete(namespace.Name, nil) Expect(err).NotTo(HaveOccurred()) By("Waiting for the namespace to be removed.") maxWaitSeconds := int64(60) + *pod.Spec.TerminationGracePeriodSeconds framework.ExpectNoError(wait.Poll(1*time.Second, time.Duration(maxWaitSeconds)*time.Second, func() (bool, error) { - _, err = f.ClientSet.Core().Namespaces().Get(namespace.Name, metav1.GetOptions{}) + _, err = f.ClientSet.CoreV1().Namespaces().Get(namespace.Name, metav1.GetOptions{}) if err != nil && errors.IsNotFound(err) { return true, nil } @@ -167,9 +167,9 @@ func ensurePodsAreRemovedWhenNamespaceIsDeleted(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) By("Verifying there are no pods in the namespace") - _, err = f.ClientSet.Core().Pods(namespace.Name).Get(pod.Name, metav1.GetOptions{}) + _, err = f.ClientSet.CoreV1().Pods(namespace.Name).Get(pod.Name, metav1.GetOptions{}) Expect(err).To(HaveOccurred()) - _, err = f.ClientSet.Core().Pods(namespace.Name).Get(podB.Name, metav1.GetOptions{IncludeUninitialized: true}) + _, err = f.ClientSet.CoreV1().Pods(namespace.Name).Get(podB.Name, metav1.GetOptions{IncludeUninitialized: true}) Expect(err).To(HaveOccurred()) } @@ -202,18 +202,18 @@ func ensureServicesAreRemovedWhenNamespaceIsDeleted(f *framework.Framework) { }}, }, } - service, err = f.ClientSet.Core().Services(namespace.Name).Create(service) + service, err = f.ClientSet.CoreV1().Services(namespace.Name).Create(service) Expect(err).NotTo(HaveOccurred()) By("Deleting the namespace") - err = f.ClientSet.Core().Namespaces().Delete(namespace.Name, nil) + err = f.ClientSet.CoreV1().Namespaces().Delete(namespace.Name, nil) Expect(err).NotTo(HaveOccurred()) By("Waiting for the namespace to be removed.") maxWaitSeconds := int64(60) framework.ExpectNoError(wait.Poll(1*time.Second, time.Duration(maxWaitSeconds)*time.Second, func() (bool, error) { - _, err = f.ClientSet.Core().Namespaces().Get(namespace.Name, metav1.GetOptions{}) + _, err = f.ClientSet.CoreV1().Namespaces().Get(namespace.Name, metav1.GetOptions{}) if err != nil && errors.IsNotFound(err) { return true, nil } @@ -225,7 +225,7 @@ func ensureServicesAreRemovedWhenNamespaceIsDeleted(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) By("Verifying there is no service in the namespace") - _, err = f.ClientSet.Core().Services(namespace.Name).Get(service.Name, metav1.GetOptions{}) + _, err = f.ClientSet.CoreV1().Services(namespace.Name).Get(service.Name, metav1.GetOptions{}) Expect(err).To(HaveOccurred()) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/table_conversion.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/table_conversion.go index a3dc3bd6e..ffa1a6b77 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/table_conversion.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/table_conversion.go @@ -43,11 +43,11 @@ var _ = SIGDescribe("Servers with support for Table transformation", func() { podName := "pod-1" framework.Logf("Creating pod %s", podName) - _, err := c.Core().Pods(ns).Create(newTablePod(podName)) + _, err := c.CoreV1().Pods(ns).Create(newTablePod(podName)) Expect(err).NotTo(HaveOccurred()) table := &metav1alpha1.Table{} - err = c.Core().RESTClient().Get().Resource("pods").Namespace(ns).Name(podName).SetHeader("Accept", "application/json;as=Table;v=v1alpha1;g=meta.k8s.io").Do().Into(table) + err = c.CoreV1().RESTClient().Get().Resource("pods").Namespace(ns).Name(podName).SetHeader("Accept", "application/json;as=Table;v=v1alpha1;g=meta.k8s.io").Do().Into(table) Expect(err).NotTo(HaveOccurred()) framework.Logf("Table: %#v", table) @@ -67,7 +67,7 @@ var _ = SIGDescribe("Servers with support for Table transformation", func() { c := f.ClientSet table := &metav1alpha1.Table{} - err := c.Core().RESTClient().Get().Resource("nodes").SetHeader("Accept", "application/json;as=Table;v=v1alpha1;g=meta.k8s.io").Do().Into(table) + err := c.CoreV1().RESTClient().Get().Resource("nodes").SetHeader("Accept", "application/json;as=Table;v=v1alpha1;g=meta.k8s.io").Do().Into(table) Expect(err).NotTo(HaveOccurred()) framework.Logf("Table: %#v", table) @@ -85,7 +85,7 @@ var _ = SIGDescribe("Servers with support for Table transformation", func() { c := f.ClientSet table := &metav1alpha1.Table{} - err := c.Core().RESTClient().Get().Resource("services").SetHeader("Accept", "application/json;as=Table;v=v1alpha1;g=meta.k8s.io").Do().Into(table) + err := c.CoreV1().RESTClient().Get().Resource("services").SetHeader("Accept", "application/json;as=Table;v=v1alpha1;g=meta.k8s.io").Do().Into(table) Expect(err).To(HaveOccurred()) Expect(err.(errors.APIStatus).Status().Code).To(Equal(int32(406))) }) diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/webhook.go b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/webhook.go new file mode 100644 index 000000000..52ec5fc8b --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/webhook.go @@ -0,0 +1,689 @@ +/* +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 apimachinery + +import ( + "fmt" + "strings" + "time" + + "k8s.io/api/admissionregistration/v1alpha1" + "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" + crdclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" + "k8s.io/apiextensions-apiserver/test/integration/testserver" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/dynamic" + clientset "k8s.io/client-go/kubernetes" + utilversion "k8s.io/kubernetes/pkg/util/version" + "k8s.io/kubernetes/test/e2e/framework" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + _ "github.com/stretchr/testify/assert" +) + +const ( + secretName = "sample-webhook-secret" + deploymentName = "sample-webhook-deployment" + serviceName = "e2e-test-webhook" + roleBindingName = "webhook-auth-reader" + webhookConfigName = "e2e-test-webhook-config" + skipNamespaceLabelKey = "skip-webhook-admission" + skipNamespaceLabelValue = "yes" + skippedNamespaceName = "exempted-namesapce" + disallowedPodName = "disallowed-pod" + disallowedConfigMapName = "disallowed-configmap" + allowedConfigMapName = "allowed-configmap" + crdName = "e2e-test-webhook-crd" + crdKind = "E2e-test-webhook-crd" + crdWebhookConfigName = "e2e-test-webhook-config-crd" + crdAPIGroup = "webhook-crd-test.k8s.io" + crdAPIVersion = "v1" + webhookFailClosedConfigName = "e2e-test-webhook-fail-closed" + failNamespaceLabelKey = "fail-closed-webhook" + failNamespaceLabelValue = "yes" + failNamespaceName = "fail-closed-namesapce" +) + +var serverWebhookVersion = utilversion.MustParseSemantic("v1.8.0") + +var _ = SIGDescribe("AdmissionWebhook", func() { + var context *certContext + f := framework.NewDefaultFramework("webhook") + framework.AddCleanupAction(func() { + cleanWebhookTest(f) + }) + + BeforeEach(func() { + // Make sure the relevant provider supports admission webhook + framework.SkipUnlessServerVersionGTE(serverWebhookVersion, f.ClientSet.Discovery()) + framework.SkipUnlessProviderIs("gce", "gke", "local") + + _, err := f.ClientSet.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations().List(metav1.ListOptions{}) + if errors.IsNotFound(err) { + framework.Skipf("dynamic configuration of webhooks requires the alpha admissionregistration.k8s.io group to be enabled") + } + + By("Setting up server cert") + namespaceName := f.Namespace.Name + context = setupServerCert(namespaceName, serviceName) + createAuthReaderRoleBinding(f, namespaceName) + + // Note that in 1.9 we will have backwards incompatible change to + // admission webhooks, so the image will be updated to 1.9 sometime in + // the development 1.9 cycle. + deployWebhookAndService(f, "gcr.io/kubernetes-e2e-test-images/k8s-sample-admission-webhook-amd64:1.8v3", context) + }) + + It("Should be able to deny pod and configmap creation", func() { + registerWebhook(f, context) + testWebhook(f) + }) + + It("Should be able to deny custom resource creation", func() { + crdCleanup, dynamicClient := createCRD(f) + defer crdCleanup() + registerWebhookForCRD(f, context) + testCRDWebhook(f, dynamicClient) + }) + + It("Should unconditionally reject operations on fail closed webhook", func() { + registerFailClosedWebhook(f, context) + testFailClosedWebhook(f) + // Clean up + err := f.ClientSet.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations().Delete(webhookFailClosedConfigName, nil) + Expect(err).NotTo(HaveOccurred(), "failed deleting fail closed webhook, this may cause subsequent e2e tests to fail") + }) +}) + +func createAuthReaderRoleBinding(f *framework.Framework, namespace string) { + By("Create role binding to let webhook read extension-apiserver-authentication") + client := f.ClientSet + // Create the role binding to allow the webhook read the extension-apiserver-authentication configmap + _, err := client.RbacV1beta1().RoleBindings("kube-system").Create(&rbacv1beta1.RoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: roleBindingName, + Annotations: map[string]string{ + rbacv1beta1.AutoUpdateAnnotationKey: "true", + }, + }, + RoleRef: rbacv1beta1.RoleRef{ + APIGroup: "", + Kind: "Role", + Name: "extension-apiserver-authentication-reader", + }, + // Webhook uses the default service account. + Subjects: []rbacv1beta1.Subject{ + { + Kind: "ServiceAccount", + Name: "default", + Namespace: namespace, + }, + }, + }) + if err != nil && errors.IsAlreadyExists(err) { + framework.Logf("role binding %s already exists", roleBindingName) + } else { + framework.ExpectNoError(err, "creating role binding %s:webhook to access configMap", namespace) + } +} + +func deployWebhookAndService(f *framework.Framework, image string, context *certContext) { + By("Deploying the webhook pod") + client := f.ClientSet + + // Creating the secret that contains the webhook's cert. + secret := &v1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: secretName, + }, + Type: v1.SecretTypeOpaque, + Data: map[string][]byte{ + "tls.crt": context.cert, + "tls.key": context.key, + }, + } + namespace := f.Namespace.Name + _, err := client.CoreV1().Secrets(namespace).Create(secret) + framework.ExpectNoError(err, "creating secret %q in namespace %q", secretName, namespace) + + // Create the deployment of the webhook + podLabels := map[string]string{"app": "sample-webhook", "webhook": "true"} + replicas := int32(1) + zero := int64(0) + mounts := []v1.VolumeMount{ + { + Name: "webhook-certs", + ReadOnly: true, + MountPath: "/webhook.local.config/certificates", + }, + } + volumes := []v1.Volume{ + { + Name: "webhook-certs", + VolumeSource: v1.VolumeSource{ + Secret: &v1.SecretVolumeSource{SecretName: secretName}, + }, + }, + } + containers := []v1.Container{ + { + Name: "sample-webhook", + VolumeMounts: mounts, + Args: []string{ + "--tls-cert-file=/webhook.local.config/certificates/tls.crt", + "--tls-private-key-file=/webhook.local.config/certificates/tls.key", + "--alsologtostderr", + "-v=4", + "2>&1", + }, + Image: image, + }, + } + d := &extensions.Deployment{ + ObjectMeta: metav1.ObjectMeta{ + Name: deploymentName, + }, + Spec: extensions.DeploymentSpec{ + Replicas: &replicas, + Strategy: extensions.DeploymentStrategy{ + Type: extensions.RollingUpdateDeploymentStrategyType, + }, + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: podLabels, + }, + Spec: v1.PodSpec{ + TerminationGracePeriodSeconds: &zero, + Containers: containers, + Volumes: volumes, + }, + }, + }, + } + deployment, err := client.ExtensionsV1beta1().Deployments(namespace).Create(d) + framework.ExpectNoError(err, "creating deployment %s in namespace %s", deploymentName, namespace) + By("Wait for the deployment to be ready") + err = framework.WaitForDeploymentRevisionAndImage(client, namespace, deploymentName, "1", image) + framework.ExpectNoError(err, "waiting for the deployment of image %s in %s in %s to complete", image, deploymentName, namespace) + err = framework.WaitForDeploymentComplete(client, deployment) + framework.ExpectNoError(err, "waiting for the deployment status valid", image, deploymentName, namespace) + + By("Deploying the webhook service") + + serviceLabels := map[string]string{"webhook": "true"} + service := &v1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: namespace, + Name: serviceName, + Labels: map[string]string{"test": "webhook"}, + }, + Spec: v1.ServiceSpec{ + Selector: serviceLabels, + Ports: []v1.ServicePort{ + { + Protocol: "TCP", + Port: 443, + TargetPort: intstr.FromInt(443), + }, + }, + }, + } + _, err = client.CoreV1().Services(namespace).Create(service) + framework.ExpectNoError(err, "creating service %s in namespace %s", serviceName, namespace) + + By("Verifying the service has paired with the endpoint") + err = framework.WaitForServiceEndpointsNum(client, namespace, serviceName, 1, 1*time.Second, 30*time.Second) + framework.ExpectNoError(err, "waiting for service %s/%s have %d endpoint", namespace, serviceName, 1) +} + +func strPtr(s string) *string { return &s } + +func registerWebhook(f *framework.Framework, context *certContext) { + client := f.ClientSet + By("Registering the webhook via the AdmissionRegistration API") + + namespace := f.Namespace.Name + // A webhook that cannot talk to server, with fail-open policy + failOpenHook := failingWebhook(namespace, "fail-open.k8s.io") + policyIgnore := v1alpha1.Ignore + failOpenHook.FailurePolicy = &policyIgnore + + _, err := client.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations().Create(&v1alpha1.ValidatingWebhookConfiguration{ + ObjectMeta: metav1.ObjectMeta{ + Name: webhookConfigName, + }, + Webhooks: []v1alpha1.Webhook{ + { + Name: "deny-unwanted-pod-container-name-and-label.k8s.io", + Rules: []v1alpha1.RuleWithOperations{{ + Operations: []v1alpha1.OperationType{v1alpha1.Create}, + Rule: v1alpha1.Rule{ + APIGroups: []string{""}, + APIVersions: []string{"v1"}, + Resources: []string{"pods"}, + }, + }}, + ClientConfig: v1alpha1.WebhookClientConfig{ + Service: &v1alpha1.ServiceReference{ + Namespace: namespace, + Name: serviceName, + Path: strPtr("/pods"), + }, + CABundle: context.signingCert, + }, + }, + { + Name: "deny-unwanted-configmap-data.k8s.io", + Rules: []v1alpha1.RuleWithOperations{{ + Operations: []v1alpha1.OperationType{v1alpha1.Create, v1alpha1.Update}, + Rule: v1alpha1.Rule{ + APIGroups: []string{""}, + APIVersions: []string{"v1"}, + Resources: []string{"configmaps"}, + }, + }}, + // The webhook skips the namespace that has label "skip-webhook-admission":"yes" + NamespaceSelector: &metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{ + { + Key: skipNamespaceLabelKey, + Operator: metav1.LabelSelectorOpNotIn, + Values: []string{skipNamespaceLabelValue}, + }, + }, + }, + ClientConfig: v1alpha1.WebhookClientConfig{ + Service: &v1alpha1.ServiceReference{ + Namespace: namespace, + Name: serviceName, + Path: strPtr("/configmaps"), + }, + CABundle: context.signingCert, + }, + }, + // Server cannot talk to this webhook, so it always fails. + // Because this webhook is configured fail-open, request should be admitted after the call fails. + failOpenHook, + }, + }) + framework.ExpectNoError(err, "registering webhook config %s with namespace %s", webhookConfigName, namespace) + + // The webhook configuration is honored in 1s. + time.Sleep(10 * time.Second) +} + +func testWebhook(f *framework.Framework) { + By("create a pod that should be denied by the webhook") + client := f.ClientSet + // Creating the pod, the request should be rejected + pod := nonCompliantPod(f) + _, err := client.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).NotTo(BeNil()) + expectedErrMsg1 := "the pod contains unwanted container name" + if !strings.Contains(err.Error(), expectedErrMsg1) { + framework.Failf("expect error contains %q, got %q", expectedErrMsg1, err.Error()) + } + expectedErrMsg2 := "the pod contains unwanted label" + if !strings.Contains(err.Error(), expectedErrMsg2) { + framework.Failf("expect error contains %q, got %q", expectedErrMsg2, err.Error()) + } + + By("create a configmap that should be denied by the webhook") + // Creating the configmap, the request should be rejected + configmap := nonCompliantConfigMap(f) + _, err = client.CoreV1().ConfigMaps(f.Namespace.Name).Create(configmap) + Expect(err).NotTo(BeNil()) + expectedErrMsg := "the configmap contains unwanted key and value" + if !strings.Contains(err.Error(), expectedErrMsg) { + framework.Failf("expect error contains %q, got %q", expectedErrMsg, err.Error()) + } + + By("create a configmap that should be admitted by the webhook") + // Creating the configmap, the request should be admitted + configmap = &v1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: allowedConfigMapName, + }, + Data: map[string]string{ + "admit": "this", + }, + } + _, err = client.CoreV1().ConfigMaps(f.Namespace.Name).Create(configmap) + Expect(err).NotTo(HaveOccurred()) + + By("update (PUT) the admitted configmap to a non-compliant one should be rejected by the webhook") + toNonCompliantFn := func(cm *v1.ConfigMap) { + if cm.Data == nil { + cm.Data = map[string]string{} + } + cm.Data["webhook-e2e-test"] = "webhook-disallow" + } + _, err = updateConfigMap(client, f.Namespace.Name, allowedConfigMapName, toNonCompliantFn) + Expect(err).NotTo(BeNil()) + if !strings.Contains(err.Error(), expectedErrMsg) { + framework.Failf("expect error contains %q, got %q", expectedErrMsg, err.Error()) + } + + By("update (PATCH) the admitted configmap to a non-compliant one should be rejected by the webhook") + patch := nonCompliantConfigMapPatch() + _, err = client.CoreV1().ConfigMaps(f.Namespace.Name).Patch(allowedConfigMapName, types.StrategicMergePatchType, []byte(patch)) + Expect(err).NotTo(BeNil()) + if !strings.Contains(err.Error(), expectedErrMsg) { + framework.Failf("expect error contains %q, got %q", expectedErrMsg, err.Error()) + } + + By("create a namespace that bypass the webhook") + err = createNamespace(f, &v1.Namespace{ObjectMeta: metav1.ObjectMeta{ + Name: skippedNamespaceName, + Labels: map[string]string{ + skipNamespaceLabelKey: skipNamespaceLabelValue, + }, + }}) + framework.ExpectNoError(err, "creating namespace %q", skippedNamespaceName) + + By("create a configmap that violates the webhook policy but is in a whitelisted namespace") + configmap = nonCompliantConfigMap(f) + _, err = client.CoreV1().ConfigMaps(skippedNamespaceName).Create(configmap) + Expect(err).To(BeNil()) +} + +// failingWebhook returns a webhook with rule of create configmaps, +// but with an invalid client config so that server cannot communicate with it +func failingWebhook(namespace, name string) v1alpha1.Webhook { + return v1alpha1.Webhook{ + Name: name, + Rules: []v1alpha1.RuleWithOperations{{ + Operations: []v1alpha1.OperationType{v1alpha1.Create}, + Rule: v1alpha1.Rule{ + APIGroups: []string{""}, + APIVersions: []string{"v1"}, + Resources: []string{"configmaps"}, + }, + }}, + ClientConfig: v1alpha1.WebhookClientConfig{ + Service: &v1alpha1.ServiceReference{ + Namespace: namespace, + Name: serviceName, + Path: strPtr("/configmaps"), + }, + // Without CA bundle, the call to webhook always fails + CABundle: nil, + }, + } +} + +func registerFailClosedWebhook(f *framework.Framework, context *certContext) { + client := f.ClientSet + By("Registering a webhook that server cannot talk to, with fail closed policy, via the AdmissionRegistration API") + + namespace := f.Namespace.Name + // A webhook that cannot talk to server, with fail-closed policy + policyFail := v1alpha1.Fail + hook := failingWebhook(namespace, "fail-closed.k8s.io") + hook.FailurePolicy = &policyFail + hook.NamespaceSelector = &metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{ + { + Key: failNamespaceLabelKey, + Operator: metav1.LabelSelectorOpIn, + Values: []string{failNamespaceLabelValue}, + }, + }, + } + + _, err := client.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations().Create(&v1alpha1.ValidatingWebhookConfiguration{ + ObjectMeta: metav1.ObjectMeta{ + Name: webhookFailClosedConfigName, + }, + Webhooks: []v1alpha1.Webhook{ + // Server cannot talk to this webhook, so it always fails. + // Because this webhook is configured fail-closed, request should be rejected after the call fails. + hook, + }, + }) + framework.ExpectNoError(err, "registering webhook config %s with namespace %s", webhookFailClosedConfigName, namespace) + + // The webhook configuration is honored in 10s. + time.Sleep(10 * time.Second) +} + +func testFailClosedWebhook(f *framework.Framework) { + client := f.ClientSet + By("create a namespace for the webhook") + err := createNamespace(f, &v1.Namespace{ObjectMeta: metav1.ObjectMeta{ + Name: failNamespaceName, + Labels: map[string]string{ + failNamespaceLabelKey: failNamespaceLabelValue, + }, + }}) + framework.ExpectNoError(err, "creating namespace %q", failNamespaceName) + + By("create a configmap should be unconditionally rejected by the webhook") + configmap := &v1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + } + _, err = client.CoreV1().ConfigMaps(failNamespaceName).Create(configmap) + Expect(err).To(HaveOccurred()) + if !errors.IsInternalError(err) { + framework.Failf("expect an internal error, got %#v", err) + } +} + +func createNamespace(f *framework.Framework, ns *v1.Namespace) error { + return wait.PollImmediate(100*time.Millisecond, 30*time.Second, func() (bool, error) { + _, err := f.ClientSet.CoreV1().Namespaces().Create(ns) + if err != nil { + if strings.HasPrefix(err.Error(), "object is being deleted:") { + return false, nil + } + return false, err + } + return true, nil + }) +} + +func nonCompliantPod(f *framework.Framework) *v1.Pod { + return &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: disallowedPodName, + Labels: map[string]string{ + "webhook-e2e-test": "webhook-disallow", + }, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "webhook-disallow", + Image: framework.GetPauseImageName(f.ClientSet), + }, + }, + }, + } +} + +func nonCompliantConfigMap(f *framework.Framework) *v1.ConfigMap { + return &v1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: disallowedConfigMapName, + }, + Data: map[string]string{ + "webhook-e2e-test": "webhook-disallow", + }, + } +} + +func nonCompliantConfigMapPatch() string { + return fmt.Sprint(`{"data":{"webhook-e2e-test":"webhook-disallow"}}`) +} + +type updateConfigMapFn func(cm *v1.ConfigMap) + +func updateConfigMap(c clientset.Interface, ns, name string, update updateConfigMapFn) (*v1.ConfigMap, error) { + var cm *v1.ConfigMap + pollErr := wait.PollImmediate(2*time.Second, 1*time.Minute, func() (bool, error) { + var err error + if cm, err = c.CoreV1().ConfigMaps(ns).Get(name, metav1.GetOptions{}); err != nil { + return false, err + } + update(cm) + if cm, err = c.CoreV1().ConfigMaps(ns).Update(cm); err == nil { + return true, nil + } + // Only retry update on conflict + if !errors.IsConflict(err) { + return false, err + } + return false, nil + }) + return cm, pollErr +} + +func cleanWebhookTest(f *framework.Framework) { + client := f.ClientSet + _ = client.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations().Delete(webhookConfigName, nil) + _ = client.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations().Delete(crdWebhookConfigName, nil) + namespaceName := f.Namespace.Name + _ = client.CoreV1().Services(namespaceName).Delete(serviceName, nil) + _ = client.ExtensionsV1beta1().Deployments(namespaceName).Delete(deploymentName, nil) + _ = client.CoreV1().Secrets(namespaceName).Delete(secretName, nil) + _ = client.RbacV1beta1().RoleBindings("kube-system").Delete(roleBindingName, nil) + _ = client.CoreV1().ConfigMaps(skippedNamespaceName).Delete(disallowedConfigMapName, nil) + _ = client.CoreV1().Namespaces().Delete(skippedNamespaceName, nil) + _ = client.CoreV1().Namespaces().Delete(failNamespaceName, nil) +} + +// newCRDForAdmissionWebhookTest generates a CRD +func newCRDForAdmissionWebhookTest() *apiextensionsv1beta1.CustomResourceDefinition { + return &apiextensionsv1beta1.CustomResourceDefinition{ + ObjectMeta: metav1.ObjectMeta{Name: crdName + "s." + crdAPIGroup}, + Spec: apiextensionsv1beta1.CustomResourceDefinitionSpec{ + Group: crdAPIGroup, + Version: crdAPIVersion, + Names: apiextensionsv1beta1.CustomResourceDefinitionNames{ + Plural: crdName + "s", + Singular: crdName, + Kind: crdKind, + ListKind: crdName + "List", + }, + Scope: apiextensionsv1beta1.NamespaceScoped, + }, + } +} + +func createCRD(f *framework.Framework) (func(), dynamic.ResourceInterface) { + config, err := framework.LoadConfig() + if err != nil { + framework.Failf("failed to load config: %v", err) + } + + apiExtensionClient, err := crdclientset.NewForConfig(config) + if err != nil { + framework.Failf("failed to initialize apiExtensionClient: %v", err) + } + + crd := newCRDForAdmissionWebhookTest() + + //create CRD and waits for the resource to be recognized and available. + dynamicClient, err := testserver.CreateNewCustomResourceDefinitionWatchUnsafe(crd, apiExtensionClient, f.ClientPool) + if err != nil { + framework.Failf("failed to create CustomResourceDefinition: %v", err) + } + + resourceClient := dynamicClient.Resource(&metav1.APIResource{ + Name: crd.Spec.Names.Plural, + Namespaced: true, + }, f.Namespace.Name) + + return func() { + err = testserver.DeleteCustomResourceDefinition(crd, apiExtensionClient) + if err != nil { + framework.Failf("failed to delete CustomResourceDefinition: %v", err) + } + }, resourceClient +} + +func registerWebhookForCRD(f *framework.Framework, context *certContext) { + client := f.ClientSet + By("Registering the crd webhook via the AdmissionRegistration API") + + namespace := f.Namespace.Name + _, err := client.AdmissionregistrationV1alpha1().ValidatingWebhookConfigurations().Create(&v1alpha1.ValidatingWebhookConfiguration{ + ObjectMeta: metav1.ObjectMeta{ + Name: crdWebhookConfigName, + }, + Webhooks: []v1alpha1.Webhook{ + { + Name: "deny-unwanted-crd-data.k8s.io", + Rules: []v1alpha1.RuleWithOperations{{ + Operations: []v1alpha1.OperationType{v1alpha1.Create}, + Rule: v1alpha1.Rule{ + APIGroups: []string{crdAPIGroup}, + APIVersions: []string{crdAPIVersion}, + Resources: []string{crdName + "s"}, + }, + }}, + ClientConfig: v1alpha1.WebhookClientConfig{ + Service: &v1alpha1.ServiceReference{ + Namespace: namespace, + Name: serviceName, + Path: strPtr("/crd"), + }, + CABundle: context.signingCert, + }, + }, + }, + }) + framework.ExpectNoError(err, "registering crd webhook config %s with namespace %s", webhookConfigName, namespace) + + // The webhook configuration is honored in 1s. + time.Sleep(10 * time.Second) +} + +func testCRDWebhook(f *framework.Framework, crdClient dynamic.ResourceInterface) { + By("Creating a custom resource that should be denied by the webhook") + crd := newCRDForAdmissionWebhookTest() + crInstance := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": crd.Spec.Names.Kind, + "apiVersion": crd.Spec.Group + "/" + crd.Spec.Version, + "metadata": map[string]interface{}{ + "name": "cr-instance-1", + "namespace": f.Namespace.Name, + }, + "data": map[string]interface{}{ + "webhook-e2e-test": "webhook-disallow", + }, + }, + } + _, err := crdClient.Create(crInstance) + Expect(err).NotTo(BeNil()) + expectedErrMsg := "the custom resource contains unwanted data" + if !strings.Contains(err.Error(), expectedErrMsg) { + framework.Failf("expect error contains %q, got %q", expectedErrMsg, err.Error()) + } +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/BUILD b/vendor/k8s.io/kubernetes/test/e2e/apps/BUILD index 4fc087872..6b0cca1d2 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apps/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/BUILD @@ -15,6 +15,7 @@ go_library( "disruption.go", "framework.go", "job.go", + "network_partition.go", "rc.go", "replica_set.go", "statefulset.go", @@ -22,21 +23,24 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/apps", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/controller:go_default_library", "//pkg/controller/daemon:go_default_library", "//pkg/controller/deployment/util:go_default_library", "//pkg/controller/job:go_default_library", + "//pkg/controller/node:go_default_library", "//pkg/controller/replicaset:go_default_library", "//pkg/controller/replication:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/master/ports:go_default_library", "//pkg/util/pointer:go_default_library", "//plugin/pkg/scheduler/schedulercache:go_default_library", + "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", "//test/utils:go_default_library", "//test/utils/image:go_default_library", @@ -54,6 +58,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/cronjob.go b/vendor/k8s.io/kubernetes/test/e2e/apps/cronjob.go index 710fb1230..db345ad96 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apps/cronjob.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/cronjob.go @@ -30,12 +30,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" batchinternal "k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/controller/job" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/test/e2e/framework" - imageutils "k8s.io/kubernetes/test/utils/image" ) const ( @@ -68,7 +67,7 @@ var _ = SIGDescribe("CronJob", func() { Expect(err).NotTo(HaveOccurred()) By("Ensuring at least two running jobs exists by listing jobs explicitly") - jobs, err := f.ClientSet.Batch().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) + jobs, err := f.ClientSet.BatchV1().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) activeJobs, _ := filterActiveJobs(jobs) Expect(len(activeJobs) >= 2).To(BeTrue()) @@ -93,7 +92,7 @@ var _ = SIGDescribe("CronJob", func() { Expect(err).To(HaveOccurred()) By("Ensuring no job exists by listing jobs explicitly") - jobs, err := f.ClientSet.Batch().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) + jobs, err := f.ClientSet.BatchV1().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) Expect(jobs.Items).To(HaveLen(0)) @@ -120,7 +119,7 @@ var _ = SIGDescribe("CronJob", func() { Expect(cronJob.Status.Active).Should(HaveLen(1)) By("Ensuring exactly one running job exists by listing jobs explicitly") - jobs, err := f.ClientSet.Batch().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) + jobs, err := f.ClientSet.BatchV1().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) activeJobs, _ := filterActiveJobs(jobs) Expect(activeJobs).To(HaveLen(1)) @@ -152,7 +151,7 @@ var _ = SIGDescribe("CronJob", func() { Expect(cronJob.Status.Active).Should(HaveLen(1)) By("Ensuring exactly one running job exists by listing jobs explicitly") - jobs, err := f.ClientSet.Batch().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) + jobs, err := f.ClientSet.BatchV1().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) activeJobs, _ := filterActiveJobs(jobs) Expect(activeJobs).To(HaveLen(1)) @@ -249,7 +248,7 @@ var _ = SIGDescribe("CronJob", func() { Expect(err).NotTo(HaveOccurred()) By("Ensuring a finished job exists by listing jobs explicitly") - jobs, err := f.ClientSet.Batch().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) + jobs, err := f.ClientSet.BatchV1().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) _, finishedJobs := filterActiveJobs(jobs) Expect(len(finishedJobs) == 1).To(BeTrue()) @@ -260,7 +259,7 @@ var _ = SIGDescribe("CronJob", func() { Expect(err).NotTo(HaveOccurred()) By("Ensuring there is 1 finished job by listing jobs explicitly") - jobs, err = f.ClientSet.Batch().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) + jobs, err = f.ClientSet.BatchV1().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) _, finishedJobs = filterActiveJobs(jobs) Expect(len(finishedJobs) == 1).To(BeTrue()) @@ -304,7 +303,7 @@ func newTestCronJob(name, schedule string, concurrencyPolicy batchv1beta1.Concur Containers: []v1.Container{ { Name: "c", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", VolumeMounts: []v1.VolumeMount{ { MountPath: "/data", @@ -371,7 +370,7 @@ func waitForNoJobs(c clientset.Interface, ns, jobName string, failIfNonEmpty boo // Wait for a job to not exist by listing jobs explicitly. func waitForJobNotExist(c clientset.Interface, ns string, targetJob *batchv1.Job) error { return wait.Poll(framework.Poll, cronJobTimeout, func() (bool, error) { - jobs, err := c.Batch().Jobs(ns).List(metav1.ListOptions{}) + jobs, err := c.BatchV1().Jobs(ns).List(metav1.ListOptions{}) if err != nil { return false, err } @@ -388,7 +387,7 @@ func waitForJobNotExist(c clientset.Interface, ns string, targetJob *batchv1.Job // Wait for a job to be replaced with a new one. func waitForJobReplaced(c clientset.Interface, ns, previousJobName string) error { return wait.Poll(framework.Poll, cronJobTimeout, func() (bool, error) { - jobs, err := c.Batch().Jobs(ns).List(metav1.ListOptions{}) + jobs, err := c.BatchV1().Jobs(ns).List(metav1.ListOptions{}) if err != nil { return false, err } @@ -407,7 +406,7 @@ func waitForJobReplaced(c clientset.Interface, ns, previousJobName string) error // waitForJobsAtLeast waits for at least a number of jobs to appear. func waitForJobsAtLeast(c clientset.Interface, ns string, atLeast int) error { return wait.Poll(framework.Poll, cronJobTimeout, func() (bool, error) { - jobs, err := c.Batch().Jobs(ns).List(metav1.ListOptions{}) + jobs, err := c.BatchV1().Jobs(ns).List(metav1.ListOptions{}) if err != nil { return false, err } @@ -418,7 +417,7 @@ func waitForJobsAtLeast(c clientset.Interface, ns string, atLeast int) error { // waitForAnyFinishedJob waits for any completed job to appear. func waitForAnyFinishedJob(c clientset.Interface, ns string) error { return wait.Poll(framework.Poll, cronJobTimeout, func() (bool, error) { - jobs, err := c.Batch().Jobs(ns).List(metav1.ListOptions{}) + jobs, err := c.BatchV1().Jobs(ns).List(metav1.ListOptions{}) if err != nil { return false, err } @@ -437,7 +436,7 @@ func checkNoEventWithReason(c clientset.Interface, ns, cronJobName string, reaso if err != nil { return fmt.Errorf("Error in getting cronjob %s/%s: %v", ns, cronJobName, err) } - events, err := c.Core().Events(ns).Search(api.Scheme, sj) + events, err := c.CoreV1().Events(ns).Search(legacyscheme.Scheme, sj) if err != nil { return fmt.Errorf("Error in listing events: %s", err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/daemon_restart.go b/vendor/k8s.io/kubernetes/test/e2e/apps/daemon_restart.go index 20b4c0c97..85266680e 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apps/daemon_restart.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/daemon_restart.go @@ -164,7 +164,7 @@ func replacePods(pods []*v1.Pod, store cache.Store) { // and a list of nodenames across which these containers restarted. func getContainerRestarts(c clientset.Interface, ns string, labelSelector labels.Selector) (int, []string) { options := metav1.ListOptions{LabelSelector: labelSelector.String()} - pods, err := c.Core().Pods(ns).List(options) + pods, err := c.CoreV1().Pods(ns).List(options) framework.ExpectNoError(err) failedContainers := 0 containerRestartNodes := sets.NewString() @@ -215,12 +215,12 @@ var _ = SIGDescribe("DaemonRestart [Disruptive]", func() { &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { options.LabelSelector = labelSelector.String() - obj, err := f.ClientSet.Core().Pods(ns).List(options) + obj, err := f.ClientSet.CoreV1().Pods(ns).List(options) return runtime.Object(obj), err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { options.LabelSelector = labelSelector.String() - return f.ClientSet.Core().Pods(ns).Watch(options) + return f.ClientSet.CoreV1().Pods(ns).Watch(options) }, }, &v1.Pod{}, diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/daemon_set.go b/vendor/k8s.io/kubernetes/test/e2e/apps/daemon_set.go index 17a00686f..cd97d8f9d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apps/daemon_set.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/daemon_set.go @@ -33,7 +33,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" podutil "k8s.io/kubernetes/pkg/api/v1/pod" extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/controller" @@ -67,7 +67,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { AfterEach(func() { // Clean up - daemonsets, err := f.ClientSet.Extensions().DaemonSets(f.Namespace.Name).List(metav1.ListOptions{}) + daemonsets, err := f.ClientSet.ExtensionsV1beta1().DaemonSets(f.Namespace.Name).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred(), "unable to dump DaemonSets") if daemonsets != nil && len(daemonsets.Items) > 0 { for _, ds := range daemonsets.Items { @@ -80,13 +80,13 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pod to be reaped") } } - if daemonsets, err := f.ClientSet.Extensions().DaemonSets(f.Namespace.Name).List(metav1.ListOptions{}); err == nil { - framework.Logf("daemonset: %s", runtime.EncodeOrDie(api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), daemonsets)) + if daemonsets, err := f.ClientSet.ExtensionsV1beta1().DaemonSets(f.Namespace.Name).List(metav1.ListOptions{}); err == nil { + framework.Logf("daemonset: %s", runtime.EncodeOrDie(legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...), daemonsets)) } else { framework.Logf("unable to dump daemonsets: %v", err) } - if pods, err := f.ClientSet.Core().Pods(f.Namespace.Name).List(metav1.ListOptions{}); err == nil { - framework.Logf("pods: %s", runtime.EncodeOrDie(api.Codecs.LegacyCodec(api.Registry.EnabledVersions()...), pods)) + if pods, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).List(metav1.ListOptions{}); err == nil { + framework.Logf("pods: %s", runtime.EncodeOrDie(legacyscheme.Codecs.LegacyCodec(legacyscheme.Registry.EnabledVersions()...), pods)) } else { framework.Logf("unable to dump pods: %v", err) } @@ -114,7 +114,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { label := map[string]string{daemonsetNameLabel: dsName} By(fmt.Sprintf("Creating simple DaemonSet %q", dsName)) - ds, err := c.Extensions().DaemonSets(ns).Create(newDaemonSet(dsName, image, label)) + ds, err := c.ExtensionsV1beta1().DaemonSets(ns).Create(newDaemonSet(dsName, image, label)) Expect(err).NotTo(HaveOccurred()) By("Check that daemon pods launch on every node of the cluster.") @@ -126,7 +126,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { By("Stop a daemon pod, check that the daemon pod is revived.") podList := listDaemonPods(c, ns, label) pod := podList.Items[0] - err = c.Core().Pods(ns).Delete(pod.Name, nil) + err = c.CoreV1().Pods(ns).Delete(pod.Name, nil) Expect(err).NotTo(HaveOccurred()) err = wait.PollImmediate(dsRetryPeriod, dsRetryTimeout, checkRunningOnAllNodes(f, ds)) Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pod to revive") @@ -138,7 +138,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { framework.Logf("Creating daemon %q with a node selector", dsName) ds := newDaemonSet(dsName, image, complexLabel) ds.Spec.Template.Spec.NodeSelector = nodeSelector - ds, err := c.Extensions().DaemonSets(ns).Create(ds) + ds, err := c.ExtensionsV1beta1().DaemonSets(ns).Create(ds) Expect(err).NotTo(HaveOccurred()) By("Initially, daemon pods should not be running on any nodes.") @@ -167,7 +167,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { By("Update DaemonSet node selector to green, and change its update strategy to RollingUpdate") patch := fmt.Sprintf(`{"spec":{"template":{"spec":{"nodeSelector":{"%s":"%s"}}},"updateStrategy":{"type":"RollingUpdate"}}}`, daemonsetColorLabel, greenNode.Labels[daemonsetColorLabel]) - ds, err = c.Extensions().DaemonSets(ns).Patch(dsName, types.StrategicMergePatchType, []byte(patch)) + ds, err = c.ExtensionsV1beta1().DaemonSets(ns).Patch(dsName, types.StrategicMergePatchType, []byte(patch)) Expect(err).NotTo(HaveOccurred(), "error patching daemon set") daemonSetLabels, _ = separateDaemonSetNodeLabels(greenNode.Labels) Expect(len(daemonSetLabels)).To(Equal(1)) @@ -199,7 +199,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { }, }, } - ds, err := c.Extensions().DaemonSets(ns).Create(ds) + ds, err := c.ExtensionsV1beta1().DaemonSets(ns).Create(ds) Expect(err).NotTo(HaveOccurred()) By("Initially, daemon pods should not be running on any nodes.") @@ -229,7 +229,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { label := map[string]string{daemonsetNameLabel: dsName} By(fmt.Sprintf("Creating a simple DaemonSet %q", dsName)) - ds, err := c.Extensions().DaemonSets(ns).Create(newDaemonSet(dsName, image, label)) + ds, err := c.ExtensionsV1beta1().DaemonSets(ns).Create(newDaemonSet(dsName, image, label)) Expect(err).NotTo(HaveOccurred()) By("Check that daemon pods launch on every node of the cluster.") @@ -243,7 +243,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { pod := podList.Items[0] pod.ResourceVersion = "" pod.Status.Phase = v1.PodFailed - _, err = c.Core().Pods(ns).UpdateStatus(&pod) + _, err = c.CoreV1().Pods(ns).UpdateStatus(&pod) Expect(err).NotTo(HaveOccurred(), "error failing a daemon pod") err = wait.PollImmediate(dsRetryPeriod, dsRetryTimeout, checkRunningOnAllNodes(f, ds)) Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pod to revive") @@ -253,7 +253,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { label := map[string]string{daemonsetNameLabel: dsName} framework.Logf("Creating simple daemon set %s", dsName) - ds, err := c.Extensions().DaemonSets(ns).Create(newDaemonSet(dsName, image, label)) + ds, err := c.ExtensionsV1beta1().DaemonSets(ns).Create(newDaemonSet(dsName, image, label)) Expect(err).NotTo(HaveOccurred()) Expect(ds.Spec.TemplateGeneration).To(Equal(int64(1))) @@ -267,8 +267,9 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { Expect(err).NotTo(HaveOccurred()) // Check history and labels - ds, err = c.Extensions().DaemonSets(ns).Get(ds.Name, metav1.GetOptions{}) + ds, err = c.ExtensionsV1beta1().DaemonSets(ns).Get(ds.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) + waitForHistoryCreated(c, ns, label, 1) first := curHistory(listDaemonHistories(c, ns, label), ds) firstHash := first.Labels[extensions.DefaultDaemonSetUniqueLabelKey] Expect(first.Revision).To(Equal(int64(1))) @@ -276,7 +277,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { By("Update daemon pods image.") patch := getDaemonSetImagePatch(ds.Spec.Template.Spec.Containers[0].Name, RedisImage) - ds, err = c.Extensions().DaemonSets(ns).Patch(dsName, types.StrategicMergePatchType, []byte(patch)) + ds, err = c.ExtensionsV1beta1().DaemonSets(ns).Patch(dsName, types.StrategicMergePatchType, []byte(patch)) Expect(err).NotTo(HaveOccurred()) Expect(ds.Spec.TemplateGeneration).To(Equal(int64(2))) @@ -293,8 +294,9 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pod to start") // Check history and labels - ds, err = c.Extensions().DaemonSets(ns).Get(ds.Name, metav1.GetOptions{}) + ds, err = c.ExtensionsV1beta1().DaemonSets(ns).Get(ds.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) + waitForHistoryCreated(c, ns, label, 2) cur := curHistory(listDaemonHistories(c, ns, label), ds) Expect(cur.Revision).To(Equal(int64(2))) Expect(cur.Labels[extensions.DefaultDaemonSetUniqueLabelKey]).NotTo(Equal(firstHash)) @@ -309,7 +311,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { ds := newDaemonSet(dsName, image, label) ds.Spec.TemplateGeneration = templateGeneration ds.Spec.UpdateStrategy = extensions.DaemonSetUpdateStrategy{Type: extensions.RollingUpdateDaemonSetStrategyType} - ds, err := c.Extensions().DaemonSets(ns).Create(ds) + ds, err := c.ExtensionsV1beta1().DaemonSets(ns).Create(ds) Expect(err).NotTo(HaveOccurred()) Expect(ds.Spec.TemplateGeneration).To(Equal(templateGeneration)) @@ -322,8 +324,9 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { Expect(err).NotTo(HaveOccurred()) // Check history and labels - ds, err = c.Extensions().DaemonSets(ns).Get(ds.Name, metav1.GetOptions{}) + ds, err = c.ExtensionsV1beta1().DaemonSets(ns).Get(ds.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) + waitForHistoryCreated(c, ns, label, 1) cur := curHistory(listDaemonHistories(c, ns, label), ds) hash := cur.Labels[extensions.DefaultDaemonSetUniqueLabelKey] Expect(cur.Revision).To(Equal(int64(1))) @@ -331,7 +334,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { By("Update daemon pods image.") patch := getDaemonSetImagePatch(ds.Spec.Template.Spec.Containers[0].Name, RedisImage) - ds, err = c.Extensions().DaemonSets(ns).Patch(dsName, types.StrategicMergePatchType, []byte(patch)) + ds, err = c.ExtensionsV1beta1().DaemonSets(ns).Patch(dsName, types.StrategicMergePatchType, []byte(patch)) Expect(err).NotTo(HaveOccurred()) templateGeneration++ Expect(ds.Spec.TemplateGeneration).To(Equal(templateGeneration)) @@ -349,8 +352,9 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pod to start") // Check history and labels - ds, err = c.Extensions().DaemonSets(ns).Get(ds.Name, metav1.GetOptions{}) + ds, err = c.ExtensionsV1beta1().DaemonSets(ns).Get(ds.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) + waitForHistoryCreated(c, ns, label, 2) cur = curHistory(listDaemonHistories(c, ns, label), ds) hash = cur.Labels[extensions.DefaultDaemonSetUniqueLabelKey] Expect(cur.Revision).To(Equal(int64(2))) @@ -366,7 +370,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { ds := newDaemonSet(dsName, image, label) ds.Spec.TemplateGeneration = templateGeneration ds.Spec.UpdateStrategy = extensions.DaemonSetUpdateStrategy{Type: extensions.RollingUpdateDaemonSetStrategyType} - ds, err := c.Extensions().DaemonSets(ns).Create(ds) + ds, err := c.ExtensionsV1beta1().DaemonSets(ns).Create(ds) Expect(err).NotTo(HaveOccurred()) Expect(ds.Spec.TemplateGeneration).To(Equal(templateGeneration)) @@ -388,7 +392,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { newDS := newDaemonSet(newDSName, image, label) newDS.Spec.TemplateGeneration = templateGeneration newDS.Spec.UpdateStrategy = extensions.DaemonSetUpdateStrategy{Type: extensions.RollingUpdateDaemonSetStrategyType} - newDS, err = c.Extensions().DaemonSets(ns).Create(newDS) + newDS, err = c.ExtensionsV1beta1().DaemonSets(ns).Create(newDS) Expect(err).NotTo(HaveOccurred()) Expect(newDS.Spec.TemplateGeneration).To(Equal(templateGeneration)) Expect(apiequality.Semantic.DeepEqual(newDS.Spec.Template, ds.Spec.Template)).To(BeTrue(), "DaemonSet template should match to adopt pods") @@ -405,7 +409,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { framework.Logf("Creating a new RollingUpdate DaemonSet %s to adopt pods", newAdoptDSName) newAdoptDS := newDaemonSet(newAdoptDSName, image, label) newAdoptDS.Spec.UpdateStrategy = extensions.DaemonSetUpdateStrategy{Type: extensions.RollingUpdateDaemonSetStrategyType} - newAdoptDS, err = c.Extensions().DaemonSets(ns).Create(newAdoptDS) + newAdoptDS, err = c.ExtensionsV1beta1().DaemonSets(ns).Create(newAdoptDS) Expect(err).NotTo(HaveOccurred()) Expect(newAdoptDS.Spec.TemplateGeneration).To(Equal(int64(1))) Expect(newAdoptDS.Spec.TemplateGeneration).NotTo(Equal(templateGeneration)) @@ -425,7 +429,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { newAdoptDS.Spec.Template.Spec.Containers[0].Name = "not-match" newAdoptDS.Spec.UpdateStrategy = extensions.DaemonSetUpdateStrategy{Type: extensions.RollingUpdateDaemonSetStrategyType} newAdoptDS.Spec.TemplateGeneration = templateGeneration - newAdoptDS, err = c.Extensions().DaemonSets(ns).Create(newAdoptDS) + newAdoptDS, err = c.ExtensionsV1beta1().DaemonSets(ns).Create(newAdoptDS) Expect(err).NotTo(HaveOccurred()) Expect(newAdoptDS.Spec.TemplateGeneration).To(Equal(templateGeneration)) Expect(apiequality.Semantic.DeepEqual(newAdoptDS.Spec.Template, newDS.Spec.Template)).NotTo(BeTrue(), "DaemonSet template should not match") @@ -442,7 +446,7 @@ var _ = SIGDescribe("Daemon set [Serial]", func() { label := map[string]string{daemonsetNameLabel: dsName} ds := newDaemonSet(dsName, image, label) ds.Spec.UpdateStrategy = extensions.DaemonSetUpdateStrategy{Type: extensions.RollingUpdateDaemonSetStrategyType} - ds, err := c.Extensions().DaemonSets(ns).Create(ds) + ds, err := c.ExtensionsV1beta1().DaemonSets(ns).Create(ds) Expect(err).NotTo(HaveOccurred()) framework.Logf("Check that daemon pods launch on every node of the cluster") @@ -511,7 +515,7 @@ func deleteDaemonSetAndOrphan(c clientset.Interface, ds *extensions.DaemonSet) { trueVar := true deleteOptions := &metav1.DeleteOptions{OrphanDependents: &trueVar} deleteOptions.Preconditions = metav1.NewUIDPreconditions(string(ds.UID)) - err := c.Extensions().DaemonSets(ds.Namespace).Delete(ds.Name, deleteOptions) + err := c.ExtensionsV1beta1().DaemonSets(ds.Namespace).Delete(ds.Name, deleteOptions) Expect(err).NotTo(HaveOccurred()) err = wait.PollImmediate(dsRetryPeriod, dsRetryTimeout, checkDaemonSetPodsOrphaned(c, ds.Namespace, ds.Spec.Template.Labels)) @@ -549,7 +553,7 @@ func newDaemonSet(dsName, image string, label map[string]string) *extensions.Dae func listDaemonPods(c clientset.Interface, ns string, label map[string]string) *v1.PodList { selector := labels.Set(label).AsSelector() options := metav1.ListOptions{LabelSelector: selector.String()} - podList, err := c.Core().Pods(ns).List(options) + podList, err := c.CoreV1().Pods(ns).List(options) Expect(err).NotTo(HaveOccurred()) Expect(len(podList.Items)).To(BeNumerically(">", 0)) return podList @@ -580,7 +584,7 @@ func clearDaemonSetNodeLabels(c clientset.Interface) error { } func setDaemonSetNodeLabels(c clientset.Interface, nodeName string, labels map[string]string) (*v1.Node, error) { - nodeClient := c.Core().Nodes() + nodeClient := c.CoreV1().Nodes() var newNode *v1.Node var newLabels map[string]string err := wait.PollImmediate(dsRetryPeriod, dsRetryTimeout, func() (bool, error) { @@ -621,7 +625,7 @@ func setDaemonSetNodeLabels(c clientset.Interface, nodeName string, labels map[s func checkDaemonPodOnNodes(f *framework.Framework, ds *extensions.DaemonSet, nodeNames []string) func() (bool, error) { return func() (bool, error) { - podList, err := f.ClientSet.Core().Pods(f.Namespace.Name).List(metav1.ListOptions{}) + podList, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { framework.Logf("could not get the pod list: %v", err) return false, nil @@ -660,20 +664,25 @@ func checkDaemonPodOnNodes(f *framework.Framework, ds *extensions.DaemonSet, nod func checkRunningOnAllNodes(f *framework.Framework, ds *extensions.DaemonSet) func() (bool, error) { return func() (bool, error) { - nodeList, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{}) - framework.ExpectNoError(err) - nodeNames := make([]string, 0) - for _, node := range nodeList.Items { - if !canScheduleOnNode(node, ds) { - framework.Logf("DaemonSet pods can't tolerate node %s with taints %+v, skip checking this node", node.Name, node.Spec.Taints) - continue - } - nodeNames = append(nodeNames, node.Name) - } + nodeNames := schedulableNodes(f.ClientSet, ds) return checkDaemonPodOnNodes(f, ds, nodeNames)() } } +func schedulableNodes(c clientset.Interface, ds *extensions.DaemonSet) []string { + nodeList, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) + framework.ExpectNoError(err) + nodeNames := make([]string, 0) + for _, node := range nodeList.Items { + if !canScheduleOnNode(node, ds) { + framework.Logf("DaemonSet pods can't tolerate node %s with taints %+v, skip checking this node", node.Name, node.Spec.Taints) + continue + } + nodeNames = append(nodeNames, node.Name) + } + return nodeNames +} + func checkAtLeastOneNewPod(c clientset.Interface, ns string, label map[string]string, newImage string) func() (bool, error) { return func() (bool, error) { pods := listDaemonPods(c, ns, label) @@ -704,7 +713,7 @@ func checkRunningOnNoNodes(f *framework.Framework, ds *extensions.DaemonSet) fun } func checkDaemonStatus(f *framework.Framework, dsName string) error { - ds, err := f.ClientSet.Extensions().DaemonSets(f.Namespace.Name).Get(dsName, metav1.GetOptions{}) + ds, err := f.ClientSet.ExtensionsV1beta1().DaemonSets(f.Namespace.Name).Get(dsName, metav1.GetOptions{}) if err != nil { return fmt.Errorf("Could not get daemon set from v1.") } @@ -717,22 +726,23 @@ func checkDaemonStatus(f *framework.Framework, dsName string) error { func checkDaemonPodsImageAndAvailability(c clientset.Interface, ds *extensions.DaemonSet, image string, maxUnavailable int) func() (bool, error) { return func() (bool, error) { - podList, err := c.Core().Pods(ds.Namespace).List(metav1.ListOptions{}) + podList, err := c.CoreV1().Pods(ds.Namespace).List(metav1.ListOptions{}) if err != nil { return false, err } pods := podList.Items unavailablePods := 0 - allImagesUpdated := true + nodesToUpdatedPodCount := make(map[string]int) for _, pod := range pods { if !metav1.IsControlledBy(&pod, ds) { continue } podImage := pod.Spec.Containers[0].Image if podImage != image { - allImagesUpdated = false framework.Logf("Wrong image for pod: %s. Expected: %s, got: %s.", pod.Name, image, podImage) + } else { + nodesToUpdatedPodCount[pod.Spec.NodeName] += 1 } if !podutil.IsPodAvailable(&pod, ds.Spec.MinReadySeconds, metav1.Now()) { framework.Logf("Pod %s is not available", pod.Name) @@ -742,8 +752,12 @@ func checkDaemonPodsImageAndAvailability(c clientset.Interface, ds *extensions.D if unavailablePods > maxUnavailable { return false, fmt.Errorf("number of unavailable pods: %d is greater than maxUnavailable: %d", unavailablePods, maxUnavailable) } - if !allImagesUpdated { - return false, nil + // Make sure every daemon pod on the node has been updated + nodeNames := schedulableNodes(c, ds) + for _, node := range nodeNames { + if nodesToUpdatedPodCount[node] == 0 { + return false, nil + } } return true, nil } @@ -766,7 +780,7 @@ func checkDaemonPodsTemplateGeneration(c clientset.Interface, ns string, label m func checkDaemonSetDeleted(c clientset.Interface, ns, name string) func() (bool, error) { return func() (bool, error) { - _, err := c.Extensions().DaemonSets(ns).Get(name, metav1.GetOptions{}) + _, err := c.ExtensionsV1beta1().DaemonSets(ns).Get(name, metav1.GetOptions{}) if !apierrs.IsNotFound(err) { return false, err } @@ -867,6 +881,24 @@ func checkDaemonSetPodsLabels(podList *v1.PodList, hash, templateGeneration stri } } +func waitForHistoryCreated(c clientset.Interface, ns string, label map[string]string, numHistory int) { + listHistoryFn := func() (bool, error) { + selector := labels.Set(label).AsSelector() + options := metav1.ListOptions{LabelSelector: selector.String()} + historyList, err := c.AppsV1beta1().ControllerRevisions(ns).List(options) + if err != nil { + return false, err + } + if len(historyList.Items) == numHistory { + return true, nil + } + framework.Logf("%d/%d controllerrevisions created.", len(historyList.Items), numHistory) + return false, nil + } + err := wait.PollImmediate(dsRetryPeriod, dsRetryTimeout, listHistoryFn) + Expect(err).NotTo(HaveOccurred(), "error waiting for controllerrevisions to be created") +} + func listDaemonHistories(c clientset.Interface, ns string, label map[string]string) *apps.ControllerRevisionList { selector := labels.Set(label).AsSelector() options := metav1.ListOptions{LabelSelector: selector.String()} diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/deployment.go b/vendor/k8s.io/kubernetes/test/e2e/apps/deployment.go index ce7130a47..77845b695 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apps/deployment.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/deployment.go @@ -87,21 +87,10 @@ var _ = SIGDescribe("Deployment", func() { It("deployment should support rollback", func() { testRollbackDeployment(f) }) - It("deployment should support rollback when there's replica set with no revision", func() { - testRollbackDeploymentRSNoRevision(f) - }) - It("deployment should label adopted RSs and pods", func() { - testDeploymentLabelAdopted(f) - }) It("scaled rollout deployment should not block on annotation check", func() { testScaledRolloutDeployment(f) }) - It("overlapping deployment should not fight with each other", func() { - testOverlappingDeployment(f) - }) - It("lack of progress should be reported in the deployment status", func() { - testFailedDeployment(f) - }) + It("iterative rollouts should eventually progress", func() { testIterativeDeployments(f) }) @@ -113,7 +102,7 @@ var _ = SIGDescribe("Deployment", func() { }) func failureTrap(c clientset.Interface, ns string) { - deployments, err := c.Extensions().Deployments(ns).List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) + deployments, err := c.ExtensionsV1beta1().Deployments(ns).List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) if err != nil { framework.Logf("Could not list Deployments in namespace %q: %v", ns, err) return @@ -151,7 +140,7 @@ func failureTrap(c clientset.Interface, ns string) { framework.Logf("failed to get selector of ReplicaSet %s: %v", rs.Name, err) } options := metav1.ListOptions{LabelSelector: selector.String()} - podList, err := c.Core().Pods(rs.Namespace).List(options) + podList, err := c.CoreV1().Pods(rs.Namespace).List(options) for _, pod := range podList.Items { framework.Logf(spew.Sprintf("pod: %q:\n%+v\n", pod.Name, pod)) } @@ -171,32 +160,8 @@ func newDeploymentRollback(name string, annotations map[string]string, revision } } -// checkDeploymentRevision checks if the input deployment's and its new replica set's revision and images are as expected. -func checkDeploymentRevision(c clientset.Interface, ns, deploymentName, revision, imageName, image string) (*extensions.Deployment, *extensions.ReplicaSet) { - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) - Expect(err).NotTo(HaveOccurred()) - // Check revision of the new replica set of this deployment - newRS, err := deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) - Expect(err).NotTo(HaveOccurred()) - Expect(newRS).NotTo(Equal(nilRs)) - Expect(newRS.Annotations).NotTo(Equal(nil)) - Expect(newRS.Annotations[deploymentutil.RevisionAnnotation]).Should(Equal(revision)) - // Check revision of This deployment - Expect(deployment.Annotations).NotTo(Equal(nil)) - Expect(deployment.Annotations[deploymentutil.RevisionAnnotation]).Should(Equal(revision)) - if len(imageName) > 0 { - // Check the image the new replica set creates - Expect(newRS.Spec.Template.Spec.Containers[0].Name).Should(Equal(imageName)) - Expect(newRS.Spec.Template.Spec.Containers[0].Image).Should(Equal(image)) - // Check the image the deployment creates - Expect(deployment.Spec.Template.Spec.Containers[0].Name).Should(Equal(imageName)) - Expect(deployment.Spec.Template.Spec.Containers[0].Image).Should(Equal(image)) - } - return deployment, newRS -} - func stopDeployment(c clientset.Interface, internalClient internalclientset.Interface, ns, deploymentName string) { - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) framework.Logf("Deleting deployment %s", deploymentName) @@ -208,20 +173,20 @@ func stopDeployment(c clientset.Interface, internalClient internalclientset.Inte Expect(err).NotTo(HaveOccurred()) framework.Logf("Ensuring deployment %s was deleted", deploymentName) - _, err = c.Extensions().Deployments(ns).Get(deployment.Name, metav1.GetOptions{}) + _, err = c.ExtensionsV1beta1().Deployments(ns).Get(deployment.Name, metav1.GetOptions{}) Expect(err).To(HaveOccurred()) Expect(errors.IsNotFound(err)).To(BeTrue()) framework.Logf("Ensuring deployment %s's RSes were deleted", deploymentName) selector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector) Expect(err).NotTo(HaveOccurred()) options := metav1.ListOptions{LabelSelector: selector.String()} - rss, err := c.Extensions().ReplicaSets(ns).List(options) + rss, err := c.ExtensionsV1beta1().ReplicaSets(ns).List(options) Expect(err).NotTo(HaveOccurred()) Expect(rss.Items).Should(HaveLen(0)) framework.Logf("Ensuring deployment %s's Pods were deleted", deploymentName) var pods *v1.PodList if err := wait.PollImmediate(time.Second, timeout, func() (bool, error) { - pods, err = c.Core().Pods(ns).List(options) + pods, err = c.CoreV1().Pods(ns).List(options) if err != nil { return false, err } @@ -246,17 +211,17 @@ func testDeleteDeployment(f *framework.Framework) { framework.Logf("Creating simple deployment %s", deploymentName) d := framework.NewDeployment(deploymentName, replicas, podLabels, NginxImageName, NginxImage, extensions.RollingUpdateDeploymentStrategyType) d.Annotations = map[string]string{"test": "should-copy-to-replica-set", v1.LastAppliedConfigAnnotation: "should-not-copy-to-replica-set"} - deploy, err := c.Extensions().Deployments(ns).Create(d) + deploy, err := c.ExtensionsV1beta1().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) // Wait for it to be updated to revision 1 err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", NginxImage) Expect(err).NotTo(HaveOccurred()) - err = framework.WaitForDeploymentStatusValid(c, deploy) + err = framework.WaitForDeploymentComplete(c, deploy) Expect(err).NotTo(HaveOccurred()) - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) newRS, err := deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) Expect(err).NotTo(HaveOccurred()) @@ -282,7 +247,7 @@ func testRollingUpdateDeployment(f *framework.Framework) { rs := newRS(rsName, replicas, rsPodLabels, NginxImageName, NginxImage) rs.Annotations = annotations framework.Logf("Creating replica set %q (going to be adopted)", rs.Name) - _, err := c.Extensions().ReplicaSets(ns).Create(rs) + _, err := c.ExtensionsV1beta1().ReplicaSets(ns).Create(rs) Expect(err).NotTo(HaveOccurred()) // Verify that the required pods have come up. err = framework.VerifyPodsRunning(c, ns, "sample-pod", false, replicas) @@ -292,7 +257,7 @@ func testRollingUpdateDeployment(f *framework.Framework) { deploymentName := "test-rolling-update-deployment" framework.Logf("Creating deployment %q", deploymentName) d := framework.NewDeployment(deploymentName, replicas, deploymentPodLabels, RedisImageName, RedisImage, extensions.RollingUpdateDeploymentStrategyType) - deploy, err := c.Extensions().Deployments(ns).Create(d) + deploy, err := c.ExtensionsV1beta1().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) // Wait for it to be updated to revision 3546343826724305833. @@ -301,12 +266,12 @@ func testRollingUpdateDeployment(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) framework.Logf("Ensuring status for deployment %q is the expected", deploy.Name) - err = framework.WaitForDeploymentStatusValid(c, deploy) + err = framework.WaitForDeploymentComplete(c, deploy) Expect(err).NotTo(HaveOccurred()) // There should be 1 old RS (nginx-controller, which is adopted) framework.Logf("Ensuring deployment %q has one old replica set (the one it adopted)", deploy.Name) - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) _, allOldRSs, err := deploymentutil.GetOldReplicaSets(deployment, c.ExtensionsV1beta1()) Expect(err).NotTo(HaveOccurred()) @@ -325,7 +290,7 @@ func testRecreateDeployment(f *framework.Framework) { deploymentName := "test-recreate-deployment" framework.Logf("Creating deployment %q", deploymentName) d := framework.NewDeployment(deploymentName, int32(1), map[string]string{"name": "sample-pod-3"}, RedisImageName, RedisImage, extensions.RecreateDeploymentStrategyType) - deployment, err := c.Extensions().Deployments(ns).Create(d) + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) // Wait for it to be updated to revision 1 @@ -334,7 +299,7 @@ func testRecreateDeployment(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) framework.Logf("Waiting deployment %q to complete", deploymentName) - Expect(framework.WaitForDeploymentStatusValid(c, deployment)).NotTo(HaveOccurred()) + Expect(framework.WaitForDeploymentComplete(c, deployment)).NotTo(HaveOccurred()) // Update deployment to delete redis pods and bring up nginx pods. framework.Logf("Triggering a new rollout for deployment %q", deploymentName) @@ -361,7 +326,7 @@ func testDeploymentCleanUpPolicy(f *framework.Framework) { rsName := "test-cleanup-controller" replicas := int32(1) revisionHistoryLimit := utilpointer.Int32Ptr(0) - _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, replicas, rsPodLabels, NginxImageName, NginxImage)) + _, err := c.ExtensionsV1beta1().ReplicaSets(ns).Create(newRS(rsName, replicas, rsPodLabels, NginxImageName, NginxImage)) Expect(err).NotTo(HaveOccurred()) // Verify that the required pods have come up. @@ -372,7 +337,7 @@ func testDeploymentCleanUpPolicy(f *framework.Framework) { deploymentName := "test-cleanup-deployment" framework.Logf("Creating deployment %s", deploymentName) - pods, err := c.Core().Pods(ns).List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) + pods, err := c.CoreV1().Pods(ns).List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) Expect(err).NotTo(HaveOccurred(), "Failed to query for pods: %v", err) options := metav1.ListOptions{ @@ -380,7 +345,7 @@ func testDeploymentCleanUpPolicy(f *framework.Framework) { } stopCh := make(chan struct{}) defer close(stopCh) - w, err := c.Core().Pods(ns).Watch(options) + w, err := c.CoreV1().Pods(ns).Watch(options) Expect(err).NotTo(HaveOccurred()) go func() { // There should be only one pod being created, which is the pod with the redis image. @@ -410,7 +375,7 @@ func testDeploymentCleanUpPolicy(f *framework.Framework) { }() d := framework.NewDeployment(deploymentName, replicas, deploymentPodLabels, RedisImageName, RedisImage, extensions.RollingUpdateDeploymentStrategyType) d.Spec.RevisionHistoryLimit = revisionHistoryLimit - _, err = c.Extensions().Deployments(ns).Create(d) + _, err = c.ExtensionsV1beta1().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Waiting for deployment %s history to be cleaned up", deploymentName)) @@ -432,7 +397,7 @@ func testRolloverDeployment(f *framework.Framework) { rsName := "test-rollover-controller" rsReplicas := int32(1) - _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, rsReplicas, rsPodLabels, NginxImageName, NginxImage)) + _, err := c.ExtensionsV1beta1().ReplicaSets(ns).Create(newRS(rsName, rsReplicas, rsPodLabels, NginxImageName, NginxImage)) Expect(err).NotTo(HaveOccurred()) // Verify that the required pods have come up. err = framework.VerifyPodsRunning(c, ns, podName, false, rsReplicas) @@ -455,24 +420,25 @@ func testRolloverDeployment(f *framework.Framework) { MaxSurge: intOrStrP(1), } newDeployment.Spec.MinReadySeconds = int32(10) - _, err = c.Extensions().Deployments(ns).Create(newDeployment) + _, err = c.ExtensionsV1beta1().Deployments(ns).Create(newDeployment) Expect(err).NotTo(HaveOccurred()) // Verify that the pods were scaled up and down as expected. - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) framework.Logf("Make sure deployment %q performs scaling operations", deploymentName) // Make sure the deployment starts to scale up and down replica sets by checking if its updated replicas >= 1 err = framework.WaitForDeploymentUpdatedReplicasLTE(c, ns, deploymentName, deploymentReplicas, deployment.Generation) // Check if it's updated to revision 1 correctly framework.Logf("Check revision of new replica set for deployment %q", deploymentName) - _, newRS := checkDeploymentRevision(c, ns, deploymentName, "1", deploymentImageName, deploymentImage) + err = framework.CheckDeploymentRevisionAndImage(c, ns, deploymentName, "1", deploymentImage) + Expect(err).NotTo(HaveOccurred()) framework.Logf("Ensure that both replica sets have 1 created replica") - oldRS, err := c.Extensions().ReplicaSets(ns).Get(rsName, metav1.GetOptions{}) + oldRS, err := c.ExtensionsV1beta1().ReplicaSets(ns).Get(rsName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) ensureReplicas(oldRS, int32(1)) - newRS, err = c.Extensions().ReplicaSets(ns).Get(newRS.Name, metav1.GetOptions{}) + newRS, err := deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) Expect(err).NotTo(HaveOccurred()) ensureReplicas(newRS, int32(1)) @@ -496,15 +462,15 @@ func testRolloverDeployment(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) framework.Logf("Make sure deployment %q is complete", deploymentName) - err = framework.WaitForDeploymentStatus(c, deployment) + err = framework.WaitForDeploymentCompleteAndCheckRolling(c, deployment) Expect(err).NotTo(HaveOccurred()) framework.Logf("Ensure that both old replica sets have no replicas") - oldRS, err = c.Extensions().ReplicaSets(ns).Get(rsName, metav1.GetOptions{}) + oldRS, err = c.ExtensionsV1beta1().ReplicaSets(ns).Get(rsName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) ensureReplicas(oldRS, int32(0)) // Not really the new replica set anymore but we GET by name so that's fine. - newRS, err = c.Extensions().ReplicaSets(ns).Get(newRS.Name, metav1.GetOptions{}) + newRS, err = c.ExtensionsV1beta1().ReplicaSets(ns).Get(newRS.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) ensureReplicas(newRS, int32(0)) } @@ -516,7 +482,9 @@ func ensureReplicas(rs *extensions.ReplicaSet, replicas int32) { // testRollbackDeployment tests that a deployment is created (revision 1) and updated (revision 2), and // then rollback to revision 1 (should update template to revision 1, and then update revision 1 to 3), -// and then rollback to last revision. +// and then rollback to last revision (which is revision 4 that comes from revision 2). +// Then rollback the deployment to revision 10 (doesn't exist in history) should fail. +// Finally, rollback current deployment (revision 4) to revision 4 should be no-op. func testRollbackDeployment(f *framework.Framework) { ns := f.Namespace.Name c := f.ClientSet @@ -532,14 +500,14 @@ func testRollbackDeployment(f *framework.Framework) { d := framework.NewDeployment(deploymentName, deploymentReplicas, deploymentPodLabels, deploymentImageName, deploymentImage, deploymentStrategyType) createAnnotation := map[string]string{"action": "create", "author": "node"} d.Annotations = createAnnotation - deploy, err := c.Extensions().Deployments(ns).Create(d) + deploy, err := c.ExtensionsV1beta1().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) // Wait for it to be updated to revision 1 err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", deploymentImage) Expect(err).NotTo(HaveOccurred()) - err = framework.WaitForDeploymentStatusValid(c, deploy) + err = framework.WaitForDeploymentComplete(c, deploy) Expect(err).NotTo(HaveOccurred()) // Current newRS annotation should be "create" @@ -565,7 +533,7 @@ func testRollbackDeployment(f *framework.Framework) { err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "2", updatedDeploymentImage) Expect(err).NotTo(HaveOccurred()) - err = framework.WaitForDeploymentStatus(c, deployment) + err = framework.WaitForDeploymentCompleteAndCheckRolling(c, deployment) Expect(err).NotTo(HaveOccurred()) // Current newRS annotation should be "update" @@ -576,7 +544,7 @@ func testRollbackDeployment(f *framework.Framework) { revision := int64(1) framework.Logf("rolling back deployment %s to revision %d", deploymentName, revision) rollback := newDeploymentRollback(deploymentName, nil, revision) - err = c.Extensions().Deployments(ns).Rollback(rollback) + err = c.ExtensionsV1beta1().Deployments(ns).Rollback(rollback) Expect(err).NotTo(HaveOccurred()) // Wait for the deployment to start rolling back @@ -588,7 +556,7 @@ func testRollbackDeployment(f *framework.Framework) { err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "3", deploymentImage) Expect(err).NotTo(HaveOccurred()) - err = framework.WaitForDeploymentStatus(c, deployment) + err = framework.WaitForDeploymentCompleteAndCheckRolling(c, deployment) Expect(err).NotTo(HaveOccurred()) // Current newRS annotation should be "create", after the rollback @@ -599,7 +567,7 @@ func testRollbackDeployment(f *framework.Framework) { revision = 0 framework.Logf("rolling back deployment %s to last revision", deploymentName) rollback = newDeploymentRollback(deploymentName, nil, revision) - err = c.Extensions().Deployments(ns).Rollback(rollback) + err = c.ExtensionsV1beta1().Deployments(ns).Rollback(rollback) Expect(err).NotTo(HaveOccurred()) err = framework.WaitForDeploymentRollbackCleared(c, ns, deploymentName) @@ -609,125 +577,19 @@ func testRollbackDeployment(f *framework.Framework) { err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "4", updatedDeploymentImage) Expect(err).NotTo(HaveOccurred()) - err = framework.WaitForDeploymentStatus(c, deployment) + err = framework.WaitForDeploymentCompleteAndCheckRolling(c, deployment) Expect(err).NotTo(HaveOccurred()) // Current newRS annotation should be "update", after the rollback err = framework.CheckNewRSAnnotations(c, ns, deploymentName, updateAnnotation) Expect(err).NotTo(HaveOccurred()) -} - -// testRollbackDeploymentRSNoRevision tests that deployment supports rollback even when there's old replica set without revision. -// An old replica set without revision is created, and then a deployment is created (v1). The deployment shouldn't add revision -// annotation to the old replica set. Then rollback the deployment to last revision, and it should fail. -// Then update the deployment to v2 and rollback it to v1 should succeed, now the deployment -// becomes v3. Then rollback the deployment to v10 (doesn't exist in history) should fail. -// Finally, rollback the deployment (v3) to v3 should be no-op. -// TODO: When we finished reporting rollback status in deployment status, check the rollback status here in each case. -func testRollbackDeploymentRSNoRevision(f *framework.Framework) { - ns := f.Namespace.Name - c := f.ClientSet - podName := "nginx" - deploymentPodLabels := map[string]string{"name": podName} - rsPodLabels := map[string]string{ - "name": podName, - "pod": NginxImageName, - } - - // Create an old RS without revision - rsName := "test-rollback-no-revision-controller" - rsReplicas := int32(0) - rs := newRS(rsName, rsReplicas, rsPodLabels, NginxImageName, NginxImage) - rs.Annotations = make(map[string]string) - rs.Annotations["make"] = "difference" - _, err := c.Extensions().ReplicaSets(ns).Create(rs) - Expect(err).NotTo(HaveOccurred()) - - // 1. Create a deployment to create nginx pods, which have different template than the replica set created above. - deploymentName, deploymentImageName := "test-rollback-no-revision-deployment", NginxImageName - deploymentReplicas := int32(1) - deploymentImage := NginxImage - deploymentStrategyType := extensions.RollingUpdateDeploymentStrategyType - framework.Logf("Creating deployment %s", deploymentName) - d := framework.NewDeployment(deploymentName, deploymentReplicas, deploymentPodLabels, deploymentImageName, deploymentImage, deploymentStrategyType) - deploy, err := c.Extensions().Deployments(ns).Create(d) - Expect(err).NotTo(HaveOccurred()) - - // Wait for it to be updated to revision 1 - err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", deploymentImage) - Expect(err).NotTo(HaveOccurred()) - - err = framework.WaitForDeploymentStatusValid(c, deploy) - Expect(err).NotTo(HaveOccurred()) - - // Check that the replica set we created still doesn't contain revision information - rs, err = c.Extensions().ReplicaSets(ns).Get(rsName, metav1.GetOptions{}) - Expect(err).NotTo(HaveOccurred()) - Expect(rs.Annotations[deploymentutil.RevisionAnnotation]).Should(Equal("")) - - // 2. Update the deploymentRollback to rollback to last revision - // Since there's only 1 revision in history, it should stay as revision 1 - revision := int64(0) - framework.Logf("rolling back deployment %s to last revision", deploymentName) - rollback := newDeploymentRollback(deploymentName, nil, revision) - err = c.Extensions().Deployments(ns).Rollback(rollback) - Expect(err).NotTo(HaveOccurred()) - - // Wait for the deployment to start rolling back - err = framework.WaitForDeploymentRollbackCleared(c, ns, deploymentName) - Expect(err).NotTo(HaveOccurred()) - // TODO: report RollbackRevisionNotFound in deployment status and check it here - - // The pod template shouldn't change since there's no last revision - // Check if the deployment is still revision 1 and still has the old pod template - checkDeploymentRevision(c, ns, deploymentName, "1", deploymentImageName, deploymentImage) - - // 3. Update the deployment to create redis pods. - updatedDeploymentImage := RedisImage - updatedDeploymentImageName := RedisImageName - deployment, err := framework.UpdateDeploymentWithRetries(c, ns, d.Name, func(update *extensions.Deployment) { - update.Spec.Template.Spec.Containers[0].Name = updatedDeploymentImageName - update.Spec.Template.Spec.Containers[0].Image = updatedDeploymentImage - }) - Expect(err).NotTo(HaveOccurred()) - - // Use observedGeneration to determine if the controller noticed the pod template update. - err = framework.WaitForObservedDeployment(c, ns, deploymentName, deployment.Generation) - Expect(err).NotTo(HaveOccurred()) - - // Wait for it to be updated to revision 2 - err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "2", updatedDeploymentImage) - Expect(err).NotTo(HaveOccurred()) - - err = framework.WaitForDeploymentStatus(c, deployment) - Expect(err).NotTo(HaveOccurred()) - - // 4. Update the deploymentRollback to rollback to revision 1 - revision = 1 - framework.Logf("rolling back deployment %s to revision %d", deploymentName, revision) - rollback = newDeploymentRollback(deploymentName, nil, revision) - err = c.Extensions().Deployments(ns).Rollback(rollback) - Expect(err).NotTo(HaveOccurred()) - - // Wait for the deployment to start rolling back - err = framework.WaitForDeploymentRollbackCleared(c, ns, deploymentName) - Expect(err).NotTo(HaveOccurred()) - // TODO: report RollbackDone in deployment status and check it here - - // The pod template should be updated to the one in revision 1 - // Wait for it to be updated to revision 3 - err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "3", deploymentImage) - Expect(err).NotTo(HaveOccurred()) - - err = framework.WaitForDeploymentStatus(c, deployment) - Expect(err).NotTo(HaveOccurred()) // 5. Update the deploymentRollback to rollback to revision 10 - // Since there's no revision 10 in history, it should stay as revision 3 + // Since there's no revision 10 in history, it should stay as revision 4 revision = 10 framework.Logf("rolling back deployment %s to revision %d", deploymentName, revision) rollback = newDeploymentRollback(deploymentName, nil, revision) - err = c.Extensions().Deployments(ns).Rollback(rollback) + err = c.ExtensionsV1beta1().Deployments(ns).Rollback(rollback) Expect(err).NotTo(HaveOccurred()) // Wait for the deployment to start rolling back @@ -736,15 +598,16 @@ func testRollbackDeploymentRSNoRevision(f *framework.Framework) { // TODO: report RollbackRevisionNotFound in deployment status and check it here // The pod template shouldn't change since there's no revision 10 - // Check if it's still revision 3 and still has the old pod template - checkDeploymentRevision(c, ns, deploymentName, "3", deploymentImageName, deploymentImage) + // Check if it's still revision 4 and still has the old pod template + err = framework.CheckDeploymentRevisionAndImage(c, ns, deploymentName, "4", updatedDeploymentImage) + Expect(err).NotTo(HaveOccurred()) - // 6. Update the deploymentRollback to rollback to revision 3 - // Since it's already revision 3, it should be no-op - revision = 3 + // 6. Update the deploymentRollback to rollback to revision 4 + // Since it's already revision 4, it should be no-op + revision = 4 framework.Logf("rolling back deployment %s to revision %d", deploymentName, revision) rollback = newDeploymentRollback(deploymentName, nil, revision) - err = c.Extensions().Deployments(ns).Rollback(rollback) + err = c.ExtensionsV1beta1().Deployments(ns).Rollback(rollback) Expect(err).NotTo(HaveOccurred()) // Wait for the deployment to start rolling back @@ -752,60 +615,10 @@ func testRollbackDeploymentRSNoRevision(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) // TODO: report RollbackTemplateUnchanged in deployment status and check it here - // The pod template shouldn't change since it's already revision 3 - // Check if it's still revision 3 and still has the old pod template - checkDeploymentRevision(c, ns, deploymentName, "3", deploymentImageName, deploymentImage) -} - -func testDeploymentLabelAdopted(f *framework.Framework) { - ns := f.Namespace.Name - c := f.ClientSet - // Create nginx pods. - podName := "nginx" - podLabels := map[string]string{"name": podName} - - rsName := "test-adopted-controller" - replicas := int32(1) - image := NginxImage - _, err := c.Extensions().ReplicaSets(ns).Create(newRS(rsName, replicas, podLabels, podName, image)) - Expect(err).NotTo(HaveOccurred()) - // Verify that the required pods have come up. - err = framework.VerifyPodsRunning(c, ns, podName, false, replicas) - Expect(err).NotTo(HaveOccurred(), "error in waiting for pods to come up: %v", err) - - // Create a nginx deployment to adopt the old rs. - deploymentName := "test-adopted-deployment" - framework.Logf("Creating deployment %s", deploymentName) - deploy, err := c.Extensions().Deployments(ns).Create(framework.NewDeployment(deploymentName, replicas, podLabels, podName, image, extensions.RollingUpdateDeploymentStrategyType)) - Expect(err).NotTo(HaveOccurred()) - - // Wait for it to be updated to revision 1 - err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", image) - Expect(err).NotTo(HaveOccurred()) - - // The RS and pods should be relabeled before the status is updated by syncRollingUpdateDeployment - err = framework.WaitForDeploymentStatusValid(c, deploy) - Expect(err).NotTo(HaveOccurred()) - - // There should be no old RSs (overlapping RS) - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) - Expect(err).NotTo(HaveOccurred()) - oldRSs, allOldRSs, newRS, err := deploymentutil.GetAllReplicaSets(deployment, c.ExtensionsV1beta1()) - Expect(err).NotTo(HaveOccurred()) - Expect(len(oldRSs)).Should(Equal(0)) - Expect(len(allOldRSs)).Should(Equal(0)) - // New RS should contain pod-template-hash in its selector, label, and template label - err = framework.CheckRSHashLabel(newRS) - Expect(err).NotTo(HaveOccurred()) - // All pods targeted by the deployment should contain pod-template-hash in their labels, and there should be only 3 pods - selector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector) - Expect(err).NotTo(HaveOccurred()) - options := metav1.ListOptions{LabelSelector: selector.String()} - pods, err := c.Core().Pods(ns).List(options) - Expect(err).NotTo(HaveOccurred()) - err = framework.CheckPodHashLabel(pods) + // The pod template shouldn't change since it's already revision 4 + // Check if it's still revision 4 and still has the old pod template + err = framework.CheckDeploymentRevisionAndImage(c, ns, deploymentName, "4", updatedDeploymentImage) Expect(err).NotTo(HaveOccurred()) - Expect(int32(len(pods.Items))).Should(Equal(replicas)) } func testScaledRolloutDeployment(f *framework.Framework) { @@ -823,7 +636,7 @@ func testScaledRolloutDeployment(f *framework.Framework) { d.Spec.Strategy.RollingUpdate.MaxUnavailable = intOrStrP(2) framework.Logf("Creating deployment %q", deploymentName) - deployment, err := c.Extensions().Deployments(ns).Create(d) + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) framework.Logf("Waiting for observed generation %d", deployment.Generation) @@ -835,7 +648,7 @@ func testScaledRolloutDeployment(f *framework.Framework) { Expect(err).NotTo(HaveOccurred(), "error in waiting for pods to come up: %v", err) framework.Logf("Waiting for deployment %q to complete", deployment.Name) - Expect(framework.WaitForDeploymentStatusValid(c, deployment)).NotTo(HaveOccurred()) + Expect(framework.WaitForDeploymentComplete(c, deployment)).NotTo(HaveOccurred()) first, err := deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) Expect(err).NotTo(HaveOccurred()) @@ -851,7 +664,7 @@ func testScaledRolloutDeployment(f *framework.Framework) { err = framework.WaitForObservedDeployment(c, ns, deploymentName, deployment.Generation) Expect(err).NotTo(HaveOccurred()) - deployment, err = c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + deployment, err = c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) if deployment.Status.AvailableReplicas < deploymentutil.MinAvailable(deployment) { @@ -862,14 +675,14 @@ func testScaledRolloutDeployment(f *framework.Framework) { second, err := deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) Expect(err).NotTo(HaveOccurred()) - first, err = c.Extensions().ReplicaSets(first.Namespace).Get(first.Name, metav1.GetOptions{}) + first, err = c.ExtensionsV1beta1().ReplicaSets(first.Namespace).Get(first.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) - firstCond := replicaSetHasDesiredReplicas(c.Extensions(), first) + firstCond := replicaSetHasDesiredReplicas(c.ExtensionsV1beta1(), first) err = wait.PollImmediate(10*time.Millisecond, 1*time.Minute, firstCond) Expect(err).NotTo(HaveOccurred()) - secondCond := replicaSetHasDesiredReplicas(c.Extensions(), second) + secondCond := replicaSetHasDesiredReplicas(c.ExtensionsV1beta1(), second) err = wait.PollImmediate(10*time.Millisecond, 1*time.Minute, secondCond) Expect(err).NotTo(HaveOccurred()) @@ -885,7 +698,7 @@ func testScaledRolloutDeployment(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) framework.Logf("Waiting for deployment status to sync (current available: %d, minimum available: %d)", deployment.Status.AvailableReplicas, deploymentutil.MinAvailable(deployment)) - Expect(framework.WaitForDeploymentStatusValid(c, deployment)).NotTo(HaveOccurred()) + Expect(framework.WaitForDeploymentComplete(c, deployment)).NotTo(HaveOccurred()) oldRSs, _, rs, err := deploymentutil.GetAllReplicaSets(deployment, c.ExtensionsV1beta1()) Expect(err).NotTo(HaveOccurred()) @@ -911,7 +724,7 @@ func testScaledRolloutDeployment(f *framework.Framework) { err = framework.WaitForObservedDeployment(c, ns, deploymentName, deployment.Generation) Expect(err).NotTo(HaveOccurred()) - deployment, err = c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + deployment, err = c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) if deployment.Status.AvailableReplicas < deploymentutil.MinAvailable(deployment) { @@ -919,17 +732,17 @@ func testScaledRolloutDeployment(f *framework.Framework) { } framework.Logf("Checking that the replica sets for %q are synced", deploymentName) - oldRs, err := c.Extensions().ReplicaSets(rs.Namespace).Get(rs.Name, metav1.GetOptions{}) + oldRs, err := c.ExtensionsV1beta1().ReplicaSets(rs.Namespace).Get(rs.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) newRs, err := deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) Expect(err).NotTo(HaveOccurred()) - oldCond := replicaSetHasDesiredReplicas(c.Extensions(), oldRs) + oldCond := replicaSetHasDesiredReplicas(c.ExtensionsV1beta1(), oldRs) err = wait.PollImmediate(10*time.Millisecond, 1*time.Minute, oldCond) Expect(err).NotTo(HaveOccurred()) - newCond := replicaSetHasDesiredReplicas(c.Extensions(), newRs) + newCond := replicaSetHasDesiredReplicas(c.ExtensionsV1beta1(), newRs) err = wait.PollImmediate(10*time.Millisecond, 1*time.Minute, newCond) Expect(err).NotTo(HaveOccurred()) @@ -945,7 +758,7 @@ func testScaledRolloutDeployment(f *framework.Framework) { Expect(err).NotTo(HaveOccurred()) framework.Logf("Waiting for deployment status to sync (current available: %d, minimum available: %d)", deployment.Status.AvailableReplicas, deploymentutil.MinAvailable(deployment)) - Expect(framework.WaitForDeploymentStatusValid(c, deployment)).NotTo(HaveOccurred()) + Expect(framework.WaitForDeploymentComplete(c, deployment)).NotTo(HaveOccurred()) oldRSs, _, rs, err = deploymentutil.GetAllReplicaSets(deployment, c.ExtensionsV1beta1()) Expect(err).NotTo(HaveOccurred()) @@ -961,83 +774,6 @@ func testScaledRolloutDeployment(f *framework.Framework) { } } -func testOverlappingDeployment(f *framework.Framework) { - ns := f.Namespace.Name - c := f.ClientSet - - // Create first deployment. - deploymentName := "first-deployment" - podLabels := map[string]string{"name": RedisImageName} - replicas := int32(1) - framework.Logf("Creating deployment %q", deploymentName) - d := framework.NewDeployment(deploymentName, replicas, podLabels, RedisImageName, RedisImage, extensions.RollingUpdateDeploymentStrategyType) - deploy, err := c.Extensions().Deployments(ns).Create(d) - Expect(err).NotTo(HaveOccurred(), "Failed creating the first deployment") - - // Wait for it to be updated to revision 1 - err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploy.Name, "1", RedisImage) - Expect(err).NotTo(HaveOccurred(), "The first deployment failed to update to revision 1") - - // Create second deployment with overlapping selector. - deploymentName = "second-deployment" - framework.Logf("Creating deployment %q with overlapping selector", deploymentName) - podLabels["other-label"] = "random-label" - d = framework.NewDeployment(deploymentName, replicas, podLabels, NginxImageName, NginxImage, extensions.RollingUpdateDeploymentStrategyType) - deployOverlapping, err := c.Extensions().Deployments(ns).Create(d) - Expect(err).NotTo(HaveOccurred(), "Failed creating the second deployment") - - // Wait for it to be updated to revision 1 - err = framework.WaitForDeploymentRevisionAndImage(c, ns, deployOverlapping.Name, "1", NginxImage) - Expect(err).NotTo(HaveOccurred(), "The second deployment failed to update to revision 1") - - // Both deployments should proceed independently. - framework.Logf("Checking each deployment creates its own replica set") - options := metav1.ListOptions{} - rsList, err := c.Extensions().ReplicaSets(ns).List(options) - Expect(err).NotTo(HaveOccurred(), "Failed listing all replica sets in namespace %s", ns) - Expect(rsList.Items).To(HaveLen(2)) -} - -func testFailedDeployment(f *framework.Framework) { - ns := f.Namespace.Name - c := f.ClientSet - - podLabels := map[string]string{"name": NginxImageName} - replicas := int32(1) - - // Create a nginx deployment. - deploymentName := "progress-check" - nonExistentImage := "nginx:not-there" - ten := int32(10) - d := framework.NewDeployment(deploymentName, replicas, podLabels, NginxImageName, nonExistentImage, extensions.RecreateDeploymentStrategyType) - d.Spec.ProgressDeadlineSeconds = &ten - - framework.Logf("Creating deployment %q with progressDeadlineSeconds set to %ds and a non-existent image", deploymentName, ten) - deployment, err := c.Extensions().Deployments(ns).Create(d) - Expect(err).NotTo(HaveOccurred()) - - framework.Logf("Waiting for deployment %q new replica set to come up", deploymentName) - Expect(framework.WaitForDeploymentUpdatedReplicasLTE(c, ns, deploymentName, replicas, deployment.Generation)) - - framework.Logf("Checking deployment %q for a timeout condition", deploymentName) - Expect(framework.WaitForDeploymentWithCondition(c, ns, deploymentName, deploymentutil.TimedOutReason, extensions.DeploymentProgressing)).NotTo(HaveOccurred()) - - framework.Logf("Updating deployment %q with a good image", deploymentName) - deployment, err = framework.UpdateDeploymentWithRetries(c, ns, deployment.Name, func(update *extensions.Deployment) { - update.Spec.Template.Spec.Containers[0].Image = NginxImage - }) - Expect(err).NotTo(HaveOccurred()) - - framework.Logf("Waiting for deployment %q new replica set to come up", deploymentName) - Expect(framework.WaitForDeploymentUpdatedReplicasLTE(c, ns, deploymentName, replicas, deployment.Generation)) - - framework.Logf("Waiting for deployment %q status", deploymentName) - Expect(framework.WaitForDeploymentStatusValid(c, deployment)).NotTo(HaveOccurred()) - - framework.Logf("Checking deployment %q for a complete condition", deploymentName) - Expect(framework.WaitForDeploymentWithCondition(c, ns, deploymentName, deploymentutil.NewRSAvailableReason, extensions.DeploymentProgressing)).NotTo(HaveOccurred()) -} - func randomScale(d *extensions.Deployment, i int) { switch r := rand.Float32(); { case r < 0.3: @@ -1068,7 +804,7 @@ func testIterativeDeployments(f *framework.Framework) { d.Spec.RevisionHistoryLimit = &two d.Spec.Template.Spec.TerminationGracePeriodSeconds = &zero framework.Logf("Creating deployment %q", deploymentName) - deployment, err := c.Extensions().Deployments(ns).Create(d) + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) iterations := 20 @@ -1129,7 +865,7 @@ func testIterativeDeployments(f *framework.Framework) { selector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector) Expect(err).NotTo(HaveOccurred()) opts := metav1.ListOptions{LabelSelector: selector.String()} - podList, err := c.Core().Pods(ns).List(opts) + podList, err := c.CoreV1().Pods(ns).List(opts) Expect(err).NotTo(HaveOccurred()) if len(podList.Items) == 0 { framework.Logf("%02d: no deployment pods to delete", i) @@ -1141,7 +877,7 @@ func testIterativeDeployments(f *framework.Framework) { } name := podList.Items[p].Name framework.Logf("%02d: deleting deployment pod %q", i, name) - err := c.Core().Pods(ns).Delete(name, nil) + err := c.CoreV1().Pods(ns).Delete(name, nil) if err != nil && !errors.IsNotFound(err) { Expect(err).NotTo(HaveOccurred()) } @@ -1150,7 +886,7 @@ func testIterativeDeployments(f *framework.Framework) { } // unpause the deployment if we end up pausing it - deployment, err = c.Extensions().Deployments(ns).Get(deployment.Name, metav1.GetOptions{}) + deployment, err = c.ExtensionsV1beta1().Deployments(ns).Get(deployment.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) if deployment.Spec.Paused { deployment, err = framework.UpdateDeploymentWithRetries(c, ns, deployment.Name, func(update *extensions.Deployment) { @@ -1162,7 +898,7 @@ func testIterativeDeployments(f *framework.Framework) { Expect(framework.WaitForObservedDeployment(c, ns, deploymentName, deployment.Generation)).NotTo(HaveOccurred()) framework.Logf("Waiting for deployment %q status", deploymentName) - Expect(framework.WaitForDeploymentStatusValid(c, deployment)).NotTo(HaveOccurred()) + Expect(framework.WaitForDeploymentComplete(c, deployment)).NotTo(HaveOccurred()) framework.Logf("Checking deployment %q for a complete condition", deploymentName) Expect(framework.WaitForDeploymentWithCondition(c, ns, deploymentName, deploymentutil.NewRSAvailableReason, extensions.DeploymentProgressing)).NotTo(HaveOccurred()) @@ -1188,9 +924,9 @@ func testDeploymentsControllerRef(f *framework.Framework) { podLabels := map[string]string{"name": NginxImageName} replicas := int32(1) d := framework.NewDeployment(deploymentName, replicas, podLabels, NginxImageName, NginxImage, extensions.RollingUpdateDeploymentStrategyType) - deploy, err := c.Extensions().Deployments(ns).Create(d) + deploy, err := c.ExtensionsV1beta1().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) - err = framework.WaitForDeploymentStatusValid(c, deploy) + err = framework.WaitForDeploymentComplete(c, deploy) Expect(err).NotTo(HaveOccurred()) framework.Logf("Checking its ReplicaSet has the right controllerRef") @@ -1208,9 +944,9 @@ func testDeploymentsControllerRef(f *framework.Framework) { deploymentName = "test-adopt-deployment" framework.Logf("Creating Deployment %q to adopt the ReplicaSet", deploymentName) d = framework.NewDeployment(deploymentName, replicas, podLabels, NginxImageName, NginxImage, extensions.RollingUpdateDeploymentStrategyType) - deploy, err = c.Extensions().Deployments(ns).Create(d) + deploy, err = c.ExtensionsV1beta1().Deployments(ns).Create(d) Expect(err).NotTo(HaveOccurred()) - err = framework.WaitForDeploymentStatusValid(c, deploy) + err = framework.WaitForDeploymentComplete(c, deploy) Expect(err).NotTo(HaveOccurred()) framework.Logf("Waiting for the ReplicaSet to have the right controllerRef") @@ -1255,7 +991,7 @@ func waitDeploymentReplicaSetsOrphaned(c clientset.Interface, ns string, label m func listDeploymentReplicaSets(c clientset.Interface, ns string, label map[string]string) *extensions.ReplicaSetList { selector := labels.Set(label).AsSelector() options := metav1.ListOptions{LabelSelector: selector.String()} - rsList, err := c.Extensions().ReplicaSets(ns).List(options) + rsList, err := c.ExtensionsV1beta1().ReplicaSets(ns).List(options) Expect(err).NotTo(HaveOccurred()) Expect(len(rsList.Items)).To(BeNumerically(">", 0)) return rsList @@ -1265,5 +1001,5 @@ func orphanDeploymentReplicaSets(c clientset.Interface, d *extensions.Deployment trueVar := true deleteOptions := &metav1.DeleteOptions{OrphanDependents: &trueVar} deleteOptions.Preconditions = metav1.NewUIDPreconditions(string(d.UID)) - return c.Extensions().Deployments(d.Namespace).Delete(d.Name, deleteOptions) + return c.ExtensionsV1beta1().Deployments(d.Namespace).Delete(d.Name, deleteOptions) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/network_partition.go b/vendor/k8s.io/kubernetes/test/e2e/apps/network_partition.go similarity index 94% rename from vendor/k8s.io/kubernetes/test/e2e/network_partition.go rename to vendor/k8s.io/kubernetes/test/e2e/apps/network_partition.go index 2b00b1498..4c1360a45 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network_partition.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/network_partition.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package apps import ( "fmt" @@ -32,7 +32,7 @@ import ( "k8s.io/api/core/v1" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" nodepkg "k8s.io/kubernetes/pkg/controller/node" "k8s.io/kubernetes/test/e2e/common" "k8s.io/kubernetes/test/e2e/framework" @@ -43,7 +43,6 @@ import ( ) const ( - timeout = 60 * time.Second podReadyTimeout = 2 * time.Minute podNotReadyTimeout = 1 * time.Minute nodeReadinessTimeout = 3 * time.Minute @@ -94,7 +93,7 @@ func podOnNode(podName, nodeName string, image string) *v1.Pod { } func newPodOnNode(c clientset.Interface, namespace, podName, nodeName string) error { - pod, err := c.Core().Pods(namespace).Create(podOnNode(podName, nodeName, framework.ServeHostnameImage)) + pod, err := c.CoreV1().Pods(namespace).Create(podOnNode(podName, nodeName, framework.ServeHostnameImage)) if err == nil { framework.Logf("Created pod %s on node %s", pod.ObjectMeta.Name, nodeName) } else { @@ -103,7 +102,7 @@ func newPodOnNode(c clientset.Interface, namespace, podName, nodeName string) er return err } -var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow]", func() { +var _ = SIGDescribe("Network Partition [Disruptive] [Slow]", func() { f := framework.NewDefaultFramework("network-partition") var systemPodsNo int32 var c clientset.Interface @@ -142,14 +141,14 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] By("choose a node - we will block all network traffic on this node") var podOpts metav1.ListOptions nodeOpts := metav1.ListOptions{} - nodes, err := c.Core().Nodes().List(nodeOpts) + nodes, err := c.CoreV1().Nodes().List(nodeOpts) Expect(err).NotTo(HaveOccurred()) framework.FilterNodes(nodes, func(node v1.Node) bool { if !framework.IsNodeConditionSetAsExpected(&node, v1.NodeReady, true) { return false } podOpts = metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector(api.PodHostField, node.Name).String()} - pods, err := c.Core().Pods(metav1.NamespaceAll).List(podOpts) + pods, err := c.CoreV1().Pods(metav1.NamespaceAll).List(podOpts) if err != nil || len(pods.Items) <= 0 { return false } @@ -173,12 +172,12 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { options.FieldSelector = nodeSelector.String() - obj, err := f.ClientSet.Core().Nodes().List(options) + obj, err := f.ClientSet.CoreV1().Nodes().List(options) return runtime.Object(obj), err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { options.FieldSelector = nodeSelector.String() - return f.ClientSet.Core().Nodes().Watch(options) + return f.ClientSet.CoreV1().Nodes().Watch(options) }, }, &v1.Node{}, @@ -245,11 +244,11 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] By("choose a node with at least one pod - we will block some network traffic on this node") label := labels.SelectorFromSet(labels.Set(map[string]string{"name": name})) options := metav1.ListOptions{LabelSelector: label.String()} - pods, err := c.Core().Pods(ns).List(options) // list pods after all have been scheduled + pods, err := c.CoreV1().Pods(ns).List(options) // list pods after all have been scheduled Expect(err).NotTo(HaveOccurred()) nodeName := pods.Items[0].Spec.NodeName - node, err := c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) // This creates a temporary network partition, verifies that 'podNameToDisappear', @@ -287,7 +286,7 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] // verify that it is really on the requested node { - pod, err := c.Core().Pods(ns).Get(additionalPod, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(ns).Get(additionalPod, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) if pod.Spec.NodeName != node.Name { framework.Logf("Pod %s found on invalid node: %s instead of %s", pod.Name, pod.Spec.NodeName, node.Name) @@ -310,11 +309,11 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] By("choose a node with at least one pod - we will block some network traffic on this node") label := labels.SelectorFromSet(labels.Set(map[string]string{"name": name})) options := metav1.ListOptions{LabelSelector: label.String()} - pods, err := c.Core().Pods(ns).List(options) // list pods after all have been scheduled + pods, err := c.CoreV1().Pods(ns).List(options) // list pods after all have been scheduled Expect(err).NotTo(HaveOccurred()) nodeName := pods.Items[0].Spec.NodeName - node, err := c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) // This creates a temporary network partition, verifies that 'podNameToDisappear', @@ -351,7 +350,7 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] framework.SkipUnlessProviderIs("gce", "gke") By("creating service " + headlessSvcName + " in namespace " + f.Namespace.Name) headlessService := framework.CreateServiceSpec(headlessSvcName, "", true, labels) - _, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(headlessService) + _, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(headlessService) framework.ExpectNoError(err) c = f.ClientSet ns = f.Namespace.Name @@ -392,7 +391,7 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] pst.WaitForRunningAndReady(*ps.Spec.Replicas, ps) pod := pst.GetPodList(ps).Items[0] - node, err := c.Core().Nodes().Get(pod.Spec.NodeName, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(pod.Spec.NodeName, metav1.GetOptions{}) framework.ExpectNoError(err) // Blocks outgoing network traffic on 'node'. Then verifies that 'podNameToDisappear', @@ -432,11 +431,11 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] By("choose a node with at least one pod - we will block some network traffic on this node") options := metav1.ListOptions{LabelSelector: label.String()} - pods, err := c.Core().Pods(ns).List(options) // list pods after all have been scheduled + pods, err := c.CoreV1().Pods(ns).List(options) // list pods after all have been scheduled Expect(err).NotTo(HaveOccurred()) nodeName := pods.Items[0].Spec.NodeName - node, err := c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) // This creates a temporary network partition, verifies that the job has 'parallelism' number of @@ -482,7 +481,7 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] return false } podOpts = metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector(api.PodHostField, node.Name).String()} - pods, err := c.Core().Pods(metav1.NamespaceAll).List(podOpts) + pods, err := c.CoreV1().Pods(metav1.NamespaceAll).List(podOpts) if err != nil || len(pods.Items) <= 0 { return false } @@ -496,7 +495,7 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] if err := framework.WaitForMatchPodsCondition(c, podOpts, "Running and Ready", podReadyTimeout, testutils.PodRunningReadyOrSucceeded); err != nil { framework.Failf("Pods on node %s are not ready and running within %v: %v", node.Name, podReadyTimeout, err) } - pods, err := c.Core().Pods(metav1.NamespaceAll).List(podOpts) + pods, err := c.CoreV1().Pods(metav1.NamespaceAll).List(podOpts) framework.ExpectNoError(err) podTolerationTimes := map[string]time.Duration{} // This test doesn't add tolerations by itself, but because they may be present in the cluster @@ -545,12 +544,12 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { options.FieldSelector = nodeSelector.String() - obj, err := f.ClientSet.Core().Nodes().List(options) + obj, err := f.ClientSet.CoreV1().Nodes().List(options) return runtime.Object(obj), err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { options.FieldSelector = nodeSelector.String() - return f.ClientSet.Core().Nodes().Watch(options) + return f.ClientSet.CoreV1().Nodes().Watch(options) }, }, &v1.Node{}, @@ -601,7 +600,7 @@ var _ = framework.KubeDescribe("[sig-apps] Network Partition [Disruptive] [Slow] sleepTime := maxTolerationTime + 20*time.Second By(fmt.Sprintf("Sleeping for %v and checking if all Pods were evicted", sleepTime)) time.Sleep(sleepTime) - pods, err = c.Core().Pods(v1.NamespaceAll).List(podOpts) + pods, err = c.CoreV1().Pods(v1.NamespaceAll).List(podOpts) framework.ExpectNoError(err) seenRunning := []string{} for _, pod := range pods.Items { diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/rc.go b/vendor/k8s.io/kubernetes/test/e2e/apps/rc.go index 8d61c3f48..3b1bffb05 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apps/rc.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/rc.go @@ -38,7 +38,7 @@ import ( var _ = SIGDescribe("ReplicationController", func() { f := framework.NewDefaultFramework("replication-controller") - It("should serve a basic image on each replica with a public image [Conformance]", func() { + framework.ConformanceIt("should serve a basic image on each replica with a public image ", func() { TestReplicationControllerServeImageOrFail(f, "basic", framework.ServeHostnameImage) }) @@ -103,7 +103,7 @@ func TestReplicationControllerServeImageOrFail(f *framework.Framework, test stri By(fmt.Sprintf("Creating replication controller %s", name)) newRC := newRC(name, replicas, map[string]string{"name": name}, name, image) newRC.Spec.Template.Spec.Containers[0].Ports = []v1.ContainerPort{{ContainerPort: 9376}} - _, err := f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Create(newRC) + _, err := f.ClientSet.CoreV1().ReplicationControllers(f.Namespace.Name).Create(newRC) Expect(err).NotTo(HaveOccurred()) // Check that pods for the new RC were created. @@ -121,7 +121,7 @@ func TestReplicationControllerServeImageOrFail(f *framework.Framework, test stri } err = f.WaitForPodRunning(pod.Name) if err != nil { - updatePod, getErr := f.ClientSet.Core().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) + updatePod, getErr := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) if getErr == nil { err = fmt.Errorf("Pod %q never run (phase: %s, conditions: %+v): %v", updatePod.Name, updatePod.Status.Phase, updatePod.Status.Conditions, err) } else { @@ -160,11 +160,11 @@ func testReplicationControllerConditionCheck(f *framework.Framework) { framework.Logf("Creating quota %q that allows only two pods to run in the current namespace", name) quota := newPodQuota(name, "2") - _, err := c.Core().ResourceQuotas(namespace).Create(quota) + _, err := c.CoreV1().ResourceQuotas(namespace).Create(quota) Expect(err).NotTo(HaveOccurred()) err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - quota, err = c.Core().ResourceQuotas(namespace).Get(name, metav1.GetOptions{}) + quota, err = c.CoreV1().ResourceQuotas(namespace).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -179,14 +179,14 @@ func testReplicationControllerConditionCheck(f *framework.Framework) { By(fmt.Sprintf("Creating rc %q that asks for more than the allowed pod quota", name)) rc := newRC(name, 3, map[string]string{"name": name}, NginxImageName, NginxImage) - rc, err = c.Core().ReplicationControllers(namespace).Create(rc) + rc, err = c.CoreV1().ReplicationControllers(namespace).Create(rc) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Checking rc %q has the desired failure condition set", name)) generation := rc.Generation conditions := rc.Status.Conditions err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - rc, err = c.Core().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) + rc, err = c.CoreV1().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -215,7 +215,7 @@ func testReplicationControllerConditionCheck(f *framework.Framework) { generation = rc.Generation conditions = rc.Status.Conditions err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - rc, err = c.Core().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) + rc, err = c.CoreV1().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -258,12 +258,12 @@ func testRCAdoptMatchingOrphans(f *framework.Framework) { replicas := int32(1) rcSt := newRC(name, replicas, map[string]string{"name": name}, name, NginxImageName) rcSt.Spec.Selector = map[string]string{"name": name} - rc, err := f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Create(rcSt) + rc, err := f.ClientSet.CoreV1().ReplicationControllers(f.Namespace.Name).Create(rcSt) Expect(err).NotTo(HaveOccurred()) By("Then the orphan pod is adopted") err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - p2, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) + p2, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) // The Pod p should either be adopted or deleted by the RC if errors.IsNotFound(err) { return true, nil @@ -287,7 +287,7 @@ func testRCReleaseControlledNotMatching(f *framework.Framework) { replicas := int32(1) rcSt := newRC(name, replicas, map[string]string{"name": name}, name, NginxImageName) rcSt.Spec.Selector = map[string]string{"name": name} - rc, err := f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Create(rcSt) + rc, err := f.ClientSet.CoreV1().ReplicationControllers(f.Namespace.Name).Create(rcSt) Expect(err).NotTo(HaveOccurred()) By("When the matched label of one of its pods change") @@ -296,11 +296,11 @@ func testRCReleaseControlledNotMatching(f *framework.Framework) { p := pods.Items[0] err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - pod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) + pod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) pod.Labels = map[string]string{"name": "not-matching-name"} - _, err = f.ClientSet.Core().Pods(f.Namespace.Name).Update(pod) + _, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Update(pod) if err != nil && errors.IsConflict(err) { return false, nil } @@ -313,7 +313,7 @@ func testRCReleaseControlledNotMatching(f *framework.Framework) { By("Then the pod is released") err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - p2, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) + p2, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) for _, owner := range p2.OwnerReferences { if *owner.Controller && owner.UID == rc.UID { diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/replica_set.go b/vendor/k8s.io/kubernetes/test/e2e/apps/replica_set.go index d4afd7bd6..8dcd4abed 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apps/replica_set.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/replica_set.go @@ -78,7 +78,7 @@ func newPodQuota(name, number string) *v1.ResourceQuota { var _ = SIGDescribe("ReplicaSet", func() { f := framework.NewDefaultFramework("replicaset") - It("should serve a basic image on each replica with a public image [Conformance]", func() { + framework.ConformanceIt("should serve a basic image on each replica with a public image ", func() { testReplicaSetServeImageOrFail(f, "basic", framework.ServeHostnameImage) }) @@ -111,7 +111,7 @@ func testReplicaSetServeImageOrFail(f *framework.Framework, test string, image s framework.Logf("Creating ReplicaSet %s", name) newRS := newRS(name, replicas, map[string]string{"name": name}, name, image) newRS.Spec.Template.Spec.Containers[0].Ports = []v1.ContainerPort{{ContainerPort: 9376}} - _, err := f.ClientSet.Extensions().ReplicaSets(f.Namespace.Name).Create(newRS) + _, err := f.ClientSet.ExtensionsV1beta1().ReplicaSets(f.Namespace.Name).Create(newRS) Expect(err).NotTo(HaveOccurred()) // Check that pods for the new RS were created. @@ -129,7 +129,7 @@ func testReplicaSetServeImageOrFail(f *framework.Framework, test string, image s } err = f.WaitForPodRunning(pod.Name) if err != nil { - updatePod, getErr := f.ClientSet.Core().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) + updatePod, getErr := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) if getErr == nil { err = fmt.Errorf("Pod %q never run (phase: %s, conditions: %+v): %v", updatePod.Name, updatePod.Status.Phase, updatePod.Status.Conditions, err) } else { @@ -168,11 +168,11 @@ func testReplicaSetConditionCheck(f *framework.Framework) { By(fmt.Sprintf("Creating quota %q that allows only two pods to run in the current namespace", name)) quota := newPodQuota(name, "2") - _, err := c.Core().ResourceQuotas(namespace).Create(quota) + _, err := c.CoreV1().ResourceQuotas(namespace).Create(quota) Expect(err).NotTo(HaveOccurred()) err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - quota, err = c.Core().ResourceQuotas(namespace).Get(name, metav1.GetOptions{}) + quota, err = c.CoreV1().ResourceQuotas(namespace).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -187,14 +187,14 @@ func testReplicaSetConditionCheck(f *framework.Framework) { By(fmt.Sprintf("Creating replica set %q that asks for more than the allowed pod quota", name)) rs := newRS(name, 3, map[string]string{"name": name}, NginxImageName, NginxImage) - rs, err = c.Extensions().ReplicaSets(namespace).Create(rs) + rs, err = c.ExtensionsV1beta1().ReplicaSets(namespace).Create(rs) Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("Checking replica set %q has the desired failure condition set", name)) generation := rs.Generation conditions := rs.Status.Conditions err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - rs, err = c.Extensions().ReplicaSets(namespace).Get(name, metav1.GetOptions{}) + rs, err = c.ExtensionsV1beta1().ReplicaSets(namespace).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -224,7 +224,7 @@ func testReplicaSetConditionCheck(f *framework.Framework) { generation = rs.Generation conditions = rs.Status.Conditions err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - rs, err = c.Extensions().ReplicaSets(namespace).Get(name, metav1.GetOptions{}) + rs, err = c.ExtensionsV1beta1().ReplicaSets(namespace).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -267,12 +267,12 @@ func testRSAdoptMatchingAndReleaseNotMatching(f *framework.Framework) { replicas := int32(1) rsSt := newRS(name, replicas, map[string]string{"name": name}, name, NginxImageName) rsSt.Spec.Selector = &metav1.LabelSelector{MatchLabels: map[string]string{"name": name}} - rs, err := f.ClientSet.Extensions().ReplicaSets(f.Namespace.Name).Create(rsSt) + rs, err := f.ClientSet.ExtensionsV1beta1().ReplicaSets(f.Namespace.Name).Create(rsSt) Expect(err).NotTo(HaveOccurred()) By("Then the orphan pod is adopted") err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - p2, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) + p2, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) // The Pod p should either be adopted or deleted by the ReplicaSet if errors.IsNotFound(err) { return true, nil @@ -295,11 +295,11 @@ func testRSAdoptMatchingAndReleaseNotMatching(f *framework.Framework) { p = &pods.Items[0] err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - pod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) + pod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) pod.Labels = map[string]string{"name": "not-matching-name"} - _, err = f.ClientSet.Core().Pods(f.Namespace.Name).Update(pod) + _, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Update(pod) if err != nil && errors.IsConflict(err) { return false, nil } @@ -312,7 +312,7 @@ func testRSAdoptMatchingAndReleaseNotMatching(f *framework.Framework) { By("Then the pod is released") err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { - p2, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) + p2, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) for _, owner := range p2.OwnerReferences { if *owner.Controller && owner.UID == rs.UID { diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/statefulset.go b/vendor/k8s.io/kubernetes/test/e2e/apps/statefulset.go index eef79cb43..da9181699 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apps/statefulset.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/statefulset.go @@ -77,7 +77,7 @@ var _ = SIGDescribe("StatefulSet", func() { By("Creating service " + headlessSvcName + " in namespace " + ns) headlessService := framework.CreateServiceSpec(headlessSvcName, "", true, labels) - _, err := c.Core().Services(ns).Create(headlessService) + _, err := c.CoreV1().Services(ns).Create(headlessService) Expect(err).NotTo(HaveOccurred()) }) @@ -650,7 +650,7 @@ var _ = SIGDescribe("StatefulSet", func() { It("Scaling should happen in predictable order and halt if any stateful pod is unhealthy", func() { psLabels := klabels.Set(labels) By("Initializing watcher for selector " + psLabels.String()) - watcher, err := f.ClientSet.Core().Pods(ns).Watch(metav1.ListOptions{ + watcher, err := f.ClientSet.CoreV1().Pods(ns).Watch(metav1.ListOptions{ LabelSelector: psLabels.AsSelector().String(), }) Expect(err).NotTo(HaveOccurred()) @@ -692,7 +692,7 @@ var _ = SIGDescribe("StatefulSet", func() { Expect(err).NotTo(HaveOccurred()) By("Scale down will halt with unhealthy stateful pod") - watcher, err = f.ClientSet.Core().Pods(ns).Watch(metav1.ListOptions{ + watcher, err = f.ClientSet.CoreV1().Pods(ns).Watch(metav1.ListOptions{ LabelSelector: psLabels.AsSelector().String(), }) Expect(err).NotTo(HaveOccurred()) @@ -785,7 +785,7 @@ var _ = SIGDescribe("StatefulSet", func() { NodeName: node.Name, }, } - pod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + pod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) framework.ExpectNoError(err) By("Creating statefulset with conflicting port in namespace " + f.Namespace.Name) @@ -803,7 +803,7 @@ var _ = SIGDescribe("StatefulSet", func() { var initialStatefulPodUID types.UID By("Waiting until stateful pod " + statefulPodName + " will be recreated and deleted at least once in namespace " + f.Namespace.Name) - w, err := f.ClientSet.Core().Pods(f.Namespace.Name).Watch(metav1.SingleObject(metav1.ObjectMeta{Name: statefulPodName})) + w, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Watch(metav1.SingleObject(metav1.ObjectMeta{Name: statefulPodName})) framework.ExpectNoError(err) // we need to get UID from pod in any state and wait until stateful set controller will remove pod atleast once _, err = watch.Until(framework.StatefulPodTimeout, w, func(event watch.Event) (bool, error) { @@ -826,13 +826,13 @@ var _ = SIGDescribe("StatefulSet", func() { } By("Removing pod with conflicting port in namespace " + f.Namespace.Name) - err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(pod.Name, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(pod.Name, metav1.NewDeleteOptions(0)) framework.ExpectNoError(err) By("Waiting when stateful pod " + statefulPodName + " will be recreated in namespace " + f.Namespace.Name + " and will be in running state") // we may catch delete event, thats why we are waiting for running phase like this, and not with watch.Until Eventually(func() error { - statefulPod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(statefulPodName, metav1.GetOptions{}) + statefulPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(statefulPodName, metav1.GetOptions{}) if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/auth/BUILD b/vendor/k8s.io/kubernetes/test/e2e/auth/BUILD index dde448bf5..708c7d9e6 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/auth/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/auth/BUILD @@ -11,30 +11,39 @@ go_library( "audit.go", "certificates.go", "framework.go", + "metadata_concealment.go", "node_authz.go", + "pod_security_policy.go", "service_accounts.go", ], importpath = "k8s.io/kubernetes/test/e2e/auth", deps = [ - "//pkg/util/version:go_default_library", + "//pkg/security/apparmor:go_default_library", + "//pkg/security/podsecuritypolicy/seccomp:go_default_library", + "//pkg/security/podsecuritypolicy/util:go_default_library", "//plugin/pkg/admission/serviceaccount:go_default_library", + "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", "//test/utils/image:go_default_library", "//vendor/github.com/evanphx/json-patch:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", + "//vendor/k8s.io/api/batch/v1: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/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/test/integration/testserver: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/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/audit/v1beta1:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/serviceaccount:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/auth/audit.go b/vendor/k8s.io/kubernetes/test/e2e/auth/audit.go index 12fa3f336..1f516c621 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/auth/audit.go +++ b/vendor/k8s.io/kubernetes/test/e2e/auth/audit.go @@ -326,27 +326,27 @@ var _ = SIGDescribe("Advanced Audit [Feature:Audit]", func() { }, } - _, err := f.ClientSet.Core().ConfigMaps(namespace).Create(configMap) + _, err := f.ClientSet.CoreV1().ConfigMaps(namespace).Create(configMap) framework.ExpectNoError(err, "failed to create audit-configmap") - _, err = f.ClientSet.Core().ConfigMaps(namespace).Get(configMap.Name, metav1.GetOptions{}) + _, err = f.ClientSet.CoreV1().ConfigMaps(namespace).Get(configMap.Name, metav1.GetOptions{}) framework.ExpectNoError(err, "failed to get audit-configmap") - configMapChan, err := f.ClientSet.Core().ConfigMaps(namespace).Watch(watchOptions) + configMapChan, err := f.ClientSet.CoreV1().ConfigMaps(namespace).Watch(watchOptions) framework.ExpectNoError(err, "failed to create watch for config maps") for range configMapChan.ResultChan() { } - _, err = f.ClientSet.Core().ConfigMaps(namespace).Update(configMap) + _, err = f.ClientSet.CoreV1().ConfigMaps(namespace).Update(configMap) framework.ExpectNoError(err, "failed to update audit-configmap") - _, err = f.ClientSet.Core().ConfigMaps(namespace).Patch(configMap.Name, types.JSONPatchType, patch) + _, err = f.ClientSet.CoreV1().ConfigMaps(namespace).Patch(configMap.Name, types.JSONPatchType, patch) framework.ExpectNoError(err, "failed to patch configmap") - _, err = f.ClientSet.Core().ConfigMaps(namespace).List(metav1.ListOptions{}) + _, err = f.ClientSet.CoreV1().ConfigMaps(namespace).List(metav1.ListOptions{}) framework.ExpectNoError(err, "failed to list config maps") - err = f.ClientSet.Core().ConfigMaps(namespace).Delete(configMap.Name, &metav1.DeleteOptions{}) + err = f.ClientSet.CoreV1().ConfigMaps(namespace).Delete(configMap.Name, &metav1.DeleteOptions{}) framework.ExpectNoError(err, "failed to delete audit-configmap") }, []auditEvent{ @@ -452,27 +452,27 @@ var _ = SIGDescribe("Advanced Audit [Feature:Audit]", func() { "top-secret": []byte("foo-bar"), }, } - _, err := f.ClientSet.Core().Secrets(namespace).Create(secret) + _, err := f.ClientSet.CoreV1().Secrets(namespace).Create(secret) framework.ExpectNoError(err, "failed to create audit-secret") - _, err = f.ClientSet.Core().Secrets(namespace).Get(secret.Name, metav1.GetOptions{}) + _, err = f.ClientSet.CoreV1().Secrets(namespace).Get(secret.Name, metav1.GetOptions{}) framework.ExpectNoError(err, "failed to get audit-secret") - secretChan, err := f.ClientSet.Core().Secrets(namespace).Watch(watchOptions) + secretChan, err := f.ClientSet.CoreV1().Secrets(namespace).Watch(watchOptions) framework.ExpectNoError(err, "failed to create watch for secrets") for range secretChan.ResultChan() { } - _, err = f.ClientSet.Core().Secrets(namespace).Update(secret) + _, err = f.ClientSet.CoreV1().Secrets(namespace).Update(secret) framework.ExpectNoError(err, "failed to update audit-secret") - _, err = f.ClientSet.Core().Secrets(namespace).Patch(secret.Name, types.JSONPatchType, patch) + _, err = f.ClientSet.CoreV1().Secrets(namespace).Patch(secret.Name, types.JSONPatchType, patch) framework.ExpectNoError(err, "failed to patch secret") - _, err = f.ClientSet.Core().Secrets(namespace).List(metav1.ListOptions{}) + _, err = f.ClientSet.CoreV1().Secrets(namespace).List(metav1.ListOptions{}) framework.ExpectNoError(err, "failed to list secrets") - err = f.ClientSet.Core().Secrets(namespace).Delete(secret.Name, &metav1.DeleteOptions{}) + err = f.ClientSet.CoreV1().Secrets(namespace).Delete(secret.Name, &metav1.DeleteOptions{}) framework.ExpectNoError(err, "failed to delete audit-secret") }, []auditEvent{ @@ -651,7 +651,7 @@ func expectAuditLines(f *framework.Framework, expected []auditEvent) { } // Fetch the log stream. - stream, err := f.ClientSet.Core().RESTClient().Get().AbsPath("/logs/kube-apiserver-audit.log").Stream() + stream, err := f.ClientSet.CoreV1().RESTClient().Get().AbsPath("/logs/kube-apiserver-audit.log").Stream() framework.ExpectNoError(err, "could not read audit log") defer stream.Close() diff --git a/vendor/k8s.io/kubernetes/test/e2e/auth/metadata_concealment.go b/vendor/k8s.io/kubernetes/test/e2e/auth/metadata_concealment.go new file mode 100644 index 000000000..4c3a97bc1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/auth/metadata_concealment.go @@ -0,0 +1,63 @@ +/* +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 auth + +import ( + batch "k8s.io/api/batch/v1" + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/kubernetes/test/e2e/framework" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +var _ = SIGDescribe("Metadata Concealment", func() { + f := framework.NewDefaultFramework("metadata-concealment") + + It("should run a check-metadata-concealment job to completion", func() { + framework.SkipUnlessProviderIs("gce") + By("Creating a job") + job := &batch.Job{ + ObjectMeta: metav1.ObjectMeta{ + Name: "check-metadata-concealment", + }, + Spec: batch.JobSpec{ + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Name: "check-metadata-concealment", + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "check-metadata-concealment", + Image: "gcr.io/google_containers/check-metadata-concealment:v0.0.2", + }, + }, + RestartPolicy: v1.RestartPolicyOnFailure, + }, + }, + }, + } + job, err := framework.CreateJob(f.ClientSet, f.Namespace.Name, job) + Expect(err).NotTo(HaveOccurred()) + + By("Ensuring job reaches completions") + err = framework.WaitForJobFinish(f.ClientSet, f.Namespace.Name, job.Name, int32(1)) + Expect(err).NotTo(HaveOccurred()) + }) +}) diff --git a/vendor/k8s.io/kubernetes/test/e2e/auth/pod_security_policy.go b/vendor/k8s.io/kubernetes/test/e2e/auth/pod_security_policy.go new file mode 100644 index 000000000..cc6b28789 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/auth/pod_security_policy.go @@ -0,0 +1,316 @@ +/* +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 auth + +import ( + "fmt" + + "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/authentication/serviceaccount" + clientset "k8s.io/client-go/kubernetes" + restclient "k8s.io/client-go/rest" + "k8s.io/kubernetes/pkg/security/apparmor" + "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp" + psputil "k8s.io/kubernetes/pkg/security/podsecuritypolicy/util" + "k8s.io/kubernetes/test/e2e/common" + "k8s.io/kubernetes/test/e2e/framework" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +var ( + restrictivePSPTemplate = &extensionsv1beta1.PodSecurityPolicy{ + ObjectMeta: metav1.ObjectMeta{ + Name: "restrictive", + Annotations: map[string]string{ + seccomp.AllowedProfilesAnnotationKey: "docker/default", + seccomp.DefaultProfileAnnotationKey: "docker/default", + apparmor.AllowedProfilesAnnotationKey: apparmor.ProfileRuntimeDefault, + apparmor.DefaultProfileAnnotationKey: apparmor.ProfileRuntimeDefault, + }, + Labels: map[string]string{ + "kubernetes.io/cluster-service": "true", + "addonmanager.kubernetes.io/mode": "Reconcile", + }, + }, + Spec: extensionsv1beta1.PodSecurityPolicySpec{ + Privileged: false, + AllowPrivilegeEscalation: boolPtr(false), + RequiredDropCapabilities: []corev1.Capability{ + "AUDIT_WRITE", + "CHOWN", + "DAC_OVERRIDE", + "FOWNER", + "FSETID", + "KILL", + "MKNOD", + "NET_RAW", + "SETGID", + "SETUID", + "SYS_CHROOT", + }, + Volumes: []extensionsv1beta1.FSType{ + extensionsv1beta1.ConfigMap, + extensionsv1beta1.EmptyDir, + extensionsv1beta1.PersistentVolumeClaim, + "projected", + extensionsv1beta1.Secret, + }, + HostNetwork: false, + HostIPC: false, + HostPID: false, + RunAsUser: extensionsv1beta1.RunAsUserStrategyOptions{ + Rule: extensionsv1beta1.RunAsUserStrategyMustRunAsNonRoot, + }, + SELinux: extensionsv1beta1.SELinuxStrategyOptions{ + Rule: extensionsv1beta1.SELinuxStrategyRunAsAny, + }, + SupplementalGroups: extensionsv1beta1.SupplementalGroupsStrategyOptions{ + Rule: extensionsv1beta1.SupplementalGroupsStrategyRunAsAny, + }, + FSGroup: extensionsv1beta1.FSGroupStrategyOptions{ + Rule: extensionsv1beta1.FSGroupStrategyRunAsAny, + }, + ReadOnlyRootFilesystem: false, + }, + } +) + +var _ = SIGDescribe("PodSecurityPolicy", func() { + f := framework.NewDefaultFramework("podsecuritypolicy") + f.SkipPrivilegedPSPBinding = true + + // Client that will impersonate the default service account, in order to run + // with reduced privileges. + var c clientset.Interface + var ns string // Test namespace, for convenience + BeforeEach(func() { + if !framework.IsPodSecurityPolicyEnabled(f) { + framework.Skipf("PodSecurityPolicy not enabled") + } + if !framework.IsRBACEnabled(f) { + framework.Skipf("RBAC not enabled") + } + ns = f.Namespace.Name + + By("Creating a kubernetes client that impersonates the default service account") + config, err := framework.LoadConfig() + framework.ExpectNoError(err) + config.Impersonate = restclient.ImpersonationConfig{ + UserName: serviceaccount.MakeUsername(ns, "default"), + Groups: serviceaccount.MakeGroupNames(ns), + } + c, err = clientset.NewForConfig(config) + framework.ExpectNoError(err) + + By("Binding the edit role to the default SA") + framework.BindClusterRole(f.ClientSet.RbacV1beta1(), "edit", ns, + rbacv1beta1.Subject{Kind: rbacv1beta1.ServiceAccountKind, Namespace: ns, Name: "default"}) + }) + + It("should forbid pod creation when no PSP is available", func() { + By("Running a restricted pod") + _, err := c.Core().Pods(ns).Create(restrictedPod(f, "restricted")) + expectForbidden(err) + }) + + It("should enforce the restricted PodSecurityPolicy", func() { + By("Creating & Binding a restricted policy for the test service account") + _, cleanup := createAndBindPSP(f, restrictivePSPTemplate) + defer cleanup() + + By("Running a restricted pod") + pod, err := c.Core().Pods(ns).Create(restrictedPod(f, "allowed")) + framework.ExpectNoError(err) + framework.ExpectNoError(framework.WaitForPodNameRunningInNamespace(c, pod.Name, pod.Namespace)) + + testPrivilegedPods(f, func(pod *v1.Pod) { + _, err := c.Core().Pods(ns).Create(pod) + expectForbidden(err) + }) + }) + + It("should allow pods under the privileged PodSecurityPolicy", func() { + By("Creating & Binding a privileged policy for the test service account") + // Ensure that the permissive policy is used even in the presence of the restricted policy. + _, cleanup := createAndBindPSP(f, restrictivePSPTemplate) + defer cleanup() + expectedPSP, cleanup := createAndBindPSP(f, framework.PrivilegedPSP("permissive")) + defer cleanup() + + testPrivilegedPods(f, func(pod *v1.Pod) { + p, err := c.Core().Pods(ns).Create(pod) + framework.ExpectNoError(err) + framework.ExpectNoError(framework.WaitForPodNameRunningInNamespace(c, p.Name, p.Namespace)) + + // Verify expected PSP was used. + p, err = c.Core().Pods(ns).Get(p.Name, metav1.GetOptions{}) + framework.ExpectNoError(err) + validated, found := p.Annotations[psputil.ValidatedPSPAnnotation] + Expect(found).To(BeTrue(), "PSP annotation not found") + Expect(validated).To(Equal(expectedPSP.Name), "Unexpected validated PSP") + }) + }) +}) + +func expectForbidden(err error) { + Expect(err).To(HaveOccurred(), "should be forbidden") + Expect(apierrs.IsForbidden(err)).To(BeTrue(), "should be forbidden error") +} + +func testPrivilegedPods(f *framework.Framework, tester func(pod *v1.Pod)) { + By("Running a privileged pod", func() { + privileged := restrictedPod(f, "privileged") + privileged.Spec.Containers[0].SecurityContext.Privileged = boolPtr(true) + privileged.Spec.Containers[0].SecurityContext.AllowPrivilegeEscalation = nil + tester(privileged) + }) + + By("Running a HostPath pod", func() { + hostpath := restrictedPod(f, "hostpath") + hostpath.Spec.Containers[0].VolumeMounts = []v1.VolumeMount{{ + Name: "hp", + MountPath: "/hp", + }} + hostpath.Spec.Volumes = []v1.Volume{{ + Name: "hp", + VolumeSource: v1.VolumeSource{ + HostPath: &v1.HostPathVolumeSource{Path: "/tmp"}, + }, + }} + tester(hostpath) + }) + + By("Running a HostNetwork pod", func() { + hostnet := restrictedPod(f, "hostnet") + hostnet.Spec.HostNetwork = true + tester(hostnet) + }) + + By("Running a HostPID pod", func() { + hostpid := restrictedPod(f, "hostpid") + hostpid.Spec.HostPID = true + tester(hostpid) + }) + + By("Running a HostIPC pod", func() { + hostipc := restrictedPod(f, "hostipc") + hostipc.Spec.HostIPC = true + tester(hostipc) + }) + + if common.IsAppArmorSupported() { + By("Running a custom AppArmor profile pod", func() { + aa := restrictedPod(f, "apparmor") + // Every node is expected to have the docker-default profile. + aa.Annotations[apparmor.ContainerAnnotationKeyPrefix+"pause"] = "localhost/docker-default" + tester(aa) + }) + } + + By("Running an unconfined Seccomp pod", func() { + unconfined := restrictedPod(f, "seccomp") + unconfined.Annotations[v1.SeccompPodAnnotationKey] = "unconfined" + tester(unconfined) + }) + + By("Running a CAP_SYS_ADMIN pod", func() { + sysadmin := restrictedPod(f, "sysadmin") + sysadmin.Spec.Containers[0].SecurityContext.Capabilities = &v1.Capabilities{ + Add: []v1.Capability{"CAP_SYS_ADMIN"}, + } + sysadmin.Spec.Containers[0].SecurityContext.AllowPrivilegeEscalation = nil + tester(sysadmin) + }) +} + +func createAndBindPSP(f *framework.Framework, pspTemplate *extensionsv1beta1.PodSecurityPolicy) (psp *extensionsv1beta1.PodSecurityPolicy, cleanup func()) { + // Create the PodSecurityPolicy object. + psp = pspTemplate.DeepCopy() + // Add the namespace to the name to ensure uniqueness and tie it to the namespace. + ns := f.Namespace.Name + name := fmt.Sprintf("%s-%s", ns, psp.Name) + psp.Name = name + psp, err := f.ClientSet.ExtensionsV1beta1().PodSecurityPolicies().Create(psp) + framework.ExpectNoError(err, "Failed to create PSP") + + // Create the Role to bind it to the namespace. + _, err = f.ClientSet.RbacV1beta1().Roles(ns).Create(&rbacv1beta1.Role{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + Rules: []rbacv1beta1.PolicyRule{{ + APIGroups: []string{"extensions"}, + Resources: []string{"podsecuritypolicies"}, + ResourceNames: []string{name}, + Verbs: []string{"use"}, + }}, + }) + framework.ExpectNoError(err, "Failed to create PSP role") + + // Bind the role to the namespace. + framework.BindRoleInNamespace(f.ClientSet.RbacV1beta1(), name, ns, rbacv1beta1.Subject{ + Kind: rbacv1beta1.ServiceAccountKind, + Namespace: ns, + Name: "default", + }) + framework.ExpectNoError(framework.WaitForNamedAuthorizationUpdate(f.ClientSet.AuthorizationV1beta1(), + serviceaccount.MakeUsername(ns, "default"), ns, "use", name, + schema.GroupResource{Group: "extensions", Resource: "podsecuritypolicies"}, true)) + + return psp, func() { + // Cleanup non-namespaced PSP object. + f.ClientSet.ExtensionsV1beta1().PodSecurityPolicies().Delete(name, &metav1.DeleteOptions{}) + } +} + +func restrictedPod(f *framework.Framework, name string) *v1.Pod { + return &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Annotations: map[string]string{ + v1.SeccompPodAnnotationKey: "docker/default", + apparmor.ContainerAnnotationKeyPrefix + "pause": apparmor.ProfileRuntimeDefault, + }, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{{ + Name: "pause", + Image: framework.GetPauseImageName(f.ClientSet), + SecurityContext: &v1.SecurityContext{ + AllowPrivilegeEscalation: boolPtr(false), + RunAsUser: intPtr(65534), + }, + }}, + }, + } +} + +func boolPtr(b bool) *bool { + return &b +} + +func intPtr(i int64) *int64 { + return &i +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/auth/service_accounts.go b/vendor/k8s.io/kubernetes/test/e2e/auth/service_accounts.go index 98776d8c4..fdc8c6db4 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/auth/service_accounts.go +++ b/vendor/k8s.io/kubernetes/test/e2e/auth/service_accounts.go @@ -25,7 +25,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/wait" - utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" "k8s.io/kubernetes/test/e2e/framework" imageutils "k8s.io/kubernetes/test/utils/image" @@ -36,10 +35,6 @@ import ( var mountImage = imageutils.GetE2EImage(imageutils.Mounttest) -var serviceAccountTokenNamespaceVersion = utilversion.MustParseSemantic("v1.2.0") - -var serviceAccountTokenAutomountVersion = utilversion.MustParseSemantic("v1.6.0-alpha.2") - var _ = SIGDescribe("ServiceAccounts", func() { f := framework.NewDefaultFramework("svcaccounts") @@ -48,7 +43,7 @@ var _ = SIGDescribe("ServiceAccounts", func() { var secrets []v1.ObjectReference framework.ExpectNoError(wait.Poll(time.Millisecond*500, time.Second*10, func() (bool, error) { By("waiting for a single token reference") - sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) + sa, err := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) if apierrors.IsNotFound(err) { framework.Logf("default service account was not found") return false, nil @@ -74,19 +69,19 @@ var _ = SIGDescribe("ServiceAccounts", func() { { By("ensuring the single token reference persists") time.Sleep(2 * time.Second) - sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) + sa, err := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) framework.ExpectNoError(err) Expect(sa.Secrets).To(Equal(secrets)) } // delete the referenced secret By("deleting the service account token") - framework.ExpectNoError(f.ClientSet.Core().Secrets(f.Namespace.Name).Delete(secrets[0].Name, nil)) + framework.ExpectNoError(f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Delete(secrets[0].Name, nil)) // wait for the referenced secret to be removed, and another one autocreated framework.ExpectNoError(wait.Poll(time.Millisecond*500, framework.ServiceAccountProvisionTimeout, func() (bool, error) { By("waiting for a new token reference") - sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) + sa, err := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) if err != nil { framework.Logf("error getting default service account: %v", err) return false, err @@ -112,7 +107,7 @@ var _ = SIGDescribe("ServiceAccounts", func() { { By("ensuring the single token reference persists") time.Sleep(2 * time.Second) - sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) + sa, err := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) framework.ExpectNoError(err) Expect(sa.Secrets).To(Equal(secrets)) } @@ -120,17 +115,17 @@ var _ = SIGDescribe("ServiceAccounts", func() { // delete the reference from the service account By("deleting the reference to the service account token") { - sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) + sa, err := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) framework.ExpectNoError(err) sa.Secrets = nil - _, updateErr := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Update(sa) + _, updateErr := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Update(sa) framework.ExpectNoError(updateErr) } // wait for another one to be autocreated framework.ExpectNoError(wait.Poll(time.Millisecond*500, framework.ServiceAccountProvisionTimeout, func() (bool, error) { By("waiting for a new token to be created and added") - sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) + sa, err := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) if err != nil { framework.Logf("error getting default service account: %v", err) return false, err @@ -152,20 +147,20 @@ var _ = SIGDescribe("ServiceAccounts", func() { { By("ensuring the single token reference persists") time.Sleep(2 * time.Second) - sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) + sa, err := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) framework.ExpectNoError(err) Expect(sa.Secrets).To(Equal(secrets)) } }) - It("should mount an API token into pods [Conformance]", func() { + framework.ConformanceIt("should mount an API token into pods ", func() { var tokenContent string var rootCAContent string // Standard get, update retry loop framework.ExpectNoError(wait.Poll(time.Millisecond*500, framework.ServiceAccountProvisionTimeout, func() (bool, error) { By("getting the auto-created API token") - sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) + sa, err := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Get("default", metav1.GetOptions{}) if apierrors.IsNotFound(err) { framework.Logf("default service account was not found") return false, nil @@ -179,7 +174,7 @@ var _ = SIGDescribe("ServiceAccounts", func() { return false, nil } for _, secretRef := range sa.Secrets { - secret, err := f.ClientSet.Core().Secrets(f.Namespace.Name).Get(secretRef.Name, metav1.GetOptions{}) + secret, err := f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Get(secretRef.Name, metav1.GetOptions{}) if err != nil { framework.Logf("Error getting secret %s: %v", secretRef.Name, err) continue @@ -220,16 +215,13 @@ var _ = SIGDescribe("ServiceAccounts", func() { }, } - supportsTokenNamespace, _ := framework.ServerVersionGTE(serviceAccountTokenNamespaceVersion, f.ClientSet.Discovery()) - if supportsTokenNamespace { - pod.Spec.Containers = append(pod.Spec.Containers, v1.Container{ - Name: "namespace-test", - Image: mountImage, - Args: []string{ - fmt.Sprintf("--file_content=%s/%s", serviceaccount.DefaultAPITokenMountPath, v1.ServiceAccountNamespaceKey), - }, - }) - } + pod.Spec.Containers = append(pod.Spec.Containers, v1.Container{ + Name: "namespace-test", + Image: mountImage, + Args: []string{ + fmt.Sprintf("--file_content=%s/%s", serviceaccount.DefaultAPITokenMountPath, v1.ServiceAccountNamespaceKey), + }, + }) f.TestContainerOutput("consume service account token", pod, 0, []string{ fmt.Sprintf(`content of file "%s/%s": %s`, serviceaccount.DefaultAPITokenMountPath, v1.ServiceAccountTokenKey, tokenContent), @@ -238,30 +230,26 @@ var _ = SIGDescribe("ServiceAccounts", func() { fmt.Sprintf(`content of file "%s/%s": %s`, serviceaccount.DefaultAPITokenMountPath, v1.ServiceAccountRootCAKey, rootCAContent), }) - if supportsTokenNamespace { - f.TestContainerOutput("consume service account namespace", pod, 2, []string{ - fmt.Sprintf(`content of file "%s/%s": %s`, serviceaccount.DefaultAPITokenMountPath, v1.ServiceAccountNamespaceKey, f.Namespace.Name), - }) - } + f.TestContainerOutput("consume service account namespace", pod, 2, []string{ + fmt.Sprintf(`content of file "%s/%s": %s`, serviceaccount.DefaultAPITokenMountPath, v1.ServiceAccountNamespaceKey, f.Namespace.Name), + }) }) - It("should allow opting out of API token automount [Conformance]", func() { - framework.SkipUnlessServerVersionGTE(serviceAccountTokenAutomountVersion, f.ClientSet.Discovery()) - + framework.ConformanceIt("should allow opting out of API token automount ", func() { var err error trueValue := true falseValue := false mountSA := &v1.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Name: "mount"}, AutomountServiceAccountToken: &trueValue} nomountSA := &v1.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Name: "nomount"}, AutomountServiceAccountToken: &falseValue} - mountSA, err = f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Create(mountSA) + mountSA, err = f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Create(mountSA) framework.ExpectNoError(err) - nomountSA, err = f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Create(nomountSA) + nomountSA, err = f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Create(nomountSA) framework.ExpectNoError(err) // Standard get, update retry loop framework.ExpectNoError(wait.Poll(time.Millisecond*500, framework.ServiceAccountProvisionTimeout, func() (bool, error) { By("getting the auto-created API token") - sa, err := f.ClientSet.Core().ServiceAccounts(f.Namespace.Name).Get(mountSA.Name, metav1.GetOptions{}) + sa, err := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name).Get(mountSA.Name, metav1.GetOptions{}) if apierrors.IsNotFound(err) { framework.Logf("mount service account was not found") return false, nil @@ -275,7 +263,7 @@ var _ = SIGDescribe("ServiceAccounts", func() { return false, nil } for _, secretRef := range sa.Secrets { - secret, err := f.ClientSet.Core().Secrets(f.Namespace.Name).Get(secretRef.Name, metav1.GetOptions{}) + secret, err := f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Get(secretRef.Name, metav1.GetOptions{}) if err != nil { framework.Logf("Error getting secret %s: %v", secretRef.Name, err) continue @@ -365,7 +353,7 @@ var _ = SIGDescribe("ServiceAccounts", func() { AutomountServiceAccountToken: tc.AutomountPodSpec, }, } - createdPod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + createdPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) framework.ExpectNoError(err) framework.Logf("created pod %s", tc.PodName) diff --git a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/BUILD b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/BUILD index 79913a1c0..ef75e7d9a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/BUILD @@ -18,7 +18,7 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/autoscaling", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e/instrumentation/monitoring:go_default_library", @@ -32,11 +32,13 @@ go_library( "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/cluster_autoscaler_scalability.go b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/cluster_autoscaler_scalability.go index e993aa88e..a6fa9ee31 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/cluster_autoscaler_scalability.go +++ b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/cluster_autoscaler_scalability.go @@ -115,7 +115,7 @@ var _ = framework.KubeDescribe("Cluster size autoscaler scalability [Slow]", fun By(fmt.Sprintf("Restoring initial size of the cluster")) setMigSizes(originalSizes) framework.ExpectNoError(framework.WaitForReadyNodes(c, nodeCount, scaleDownTimeout)) - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err) s := time.Now() makeSchedulableLoop: @@ -255,7 +255,7 @@ var _ = framework.KubeDescribe("Cluster size autoscaler scalability [Slow]", fun // annotate all nodes with no-scale-down ScaleDownDisabledKey := "cluster-autoscaler.kubernetes.io/scale-down-disabled" - nodes, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{ + nodes, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{ FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String(), @@ -475,7 +475,7 @@ func addAnnotation(f *framework.Framework, nodes []v1.Node, key, value string) e return err } - _, err = f.ClientSet.Core().Nodes().Patch(string(node.Name), types.StrategicMergePatchType, patchBytes) + _, err = f.ClientSet.CoreV1().Nodes().Patch(string(node.Name), types.StrategicMergePatchType, patchBytes) if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/cluster_size_autoscaling.go b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/cluster_size_autoscaling.go index 21b2c41f0..8efd36530 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/cluster_size_autoscaling.go +++ b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/cluster_size_autoscaling.go @@ -30,6 +30,7 @@ import ( "k8s.io/api/core/v1" policy "k8s.io/api/policy/v1beta1" + "k8s.io/api/scheduling/v1alpha1" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" @@ -40,7 +41,7 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/scheduling" testutils "k8s.io/kubernetes/test/utils" @@ -76,12 +77,16 @@ const ( caNoScaleUpStatus = "NoActivity" caOngoingScaleUpStatus = "InProgress" timestampFormat = "2006-01-02 15:04:05 -0700 MST" + + expendablePriorityClassName = "expendable-priority" + highPriorityClassName = "high-priority" ) var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { f := framework.NewDefaultFramework("autoscaling") var c clientset.Interface var nodeCount int + var coreCount int64 var memAllocatableMb int var originalSizes map[string]int @@ -103,6 +108,11 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { nodes := framework.GetReadySchedulableNodesOrDie(f.ClientSet) nodeCount = len(nodes.Items) + coreCount = 0 + for _, node := range nodes.Items { + quentity := node.Status.Capacity[v1.ResourceCPU] + coreCount += quentity.Value() + } By(fmt.Sprintf("Initial number of schedulable nodes: %v", nodeCount)) Expect(nodeCount).NotTo(BeZero()) mem := nodes.Items[0].Status.Allocatable[v1.ResourceMemory] @@ -117,10 +127,16 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { err = enableAutoscaler("default-pool", 3, 5) framework.ExpectNoError(err) } + Expect(getNAPNodePoolsNumber()).Should(Equal(0)) } }) AfterEach(func() { + if framework.ProviderIs("gke") { + By("Remove changes introduced by NAP tests") + removeNAPNodePools() + disableAutoprovisioning() + } By(fmt.Sprintf("Restoring initial size of the cluster")) setMigSizes(originalSizes) expectedNodes := 0 @@ -128,7 +144,7 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { expectedNodes += size } framework.ExpectNoError(framework.WaitForReadyNodes(c, expectedNodes, scaleDownTimeout)) - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err) s := time.Now() @@ -159,7 +175,7 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { EventsLoop: for start := time.Now(); time.Since(start) < scaleUpTimeout; time.Sleep(20 * time.Second) { By("Waiting for NotTriggerScaleUp event") - events, err := f.ClientSet.Core().Events(f.Namespace.Name).List(metav1.ListOptions{}) + events, err := f.ClientSet.CoreV1().Events(f.Namespace.Name).List(metav1.ListOptions{}) framework.ExpectNoError(err) for _, e := range events.Items { @@ -458,7 +474,7 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { By(fmt.Sprintf("New nodes: %v\n", newNodesSet)) registeredNodes := sets.NewString() for nodeName := range newNodesSet { - node, err := f.ClientSet.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := f.ClientSet.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) if err == nil && node != nil { registeredNodes.Insert(nodeName) } else { @@ -609,7 +625,7 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { } By("Make remaining nodes unschedulable") - nodes, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ + nodes, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String()}) framework.ExpectNoError(err) @@ -685,7 +701,7 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { ngNodes, err := framework.GetGroupNodes(minMig) framework.ExpectNoError(err) Expect(len(ngNodes) == 1).To(BeTrue()) - node, err := f.ClientSet.Core().Nodes().Get(ngNodes[0], metav1.GetOptions{}) + node, err := f.ClientSet.CoreV1().Nodes().Get(ngNodes[0], metav1.GetOptions{}) By(fmt.Sprintf("Target node for scale-down: %s", node.Name)) framework.ExpectNoError(err) @@ -718,7 +734,7 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { By("Block network connectivity to some nodes to simulate unhealthy cluster") nodesToBreakCount := int(math.Floor(math.Max(float64(unhealthyClusterThreshold), 0.5*float64(clusterSize)))) - nodes, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ + nodes, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String()}) framework.ExpectNoError(err) @@ -752,6 +768,159 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { framework.ExpectNoError(framework.WaitForReadyNodes(c, len(nodes.Items), nodesRecoverTimeout)) }) + It("should add new node and new node pool on too big pod, scale down to 1 and scale down to 0 [Feature:ClusterSizeAutoscalingScaleWithNAP]", func() { + framework.SkipUnlessProviderIs("gke") + framework.ExpectNoError(enableAutoprovisioning("")) + By("Create first pod") + cleanupFunc1 := ReserveMemory(f, "memory-reservation1", 1, int(1.1*float64(memAllocatableMb)), true, defaultTimeout) + defer func() { + if cleanupFunc1 != nil { + cleanupFunc1() + } + }() + By("Waiting for scale up") + // Verify that cluster size increased. + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount+1 }, defaultTimeout)) + By("Check if NAP group was created") + Expect(getNAPNodePoolsNumber()).Should(Equal(1)) + By("Create second pod") + cleanupFunc2 := ReserveMemory(f, "memory-reservation2", 1, int(1.1*float64(memAllocatableMb)), true, defaultTimeout) + defer func() { + if cleanupFunc2 != nil { + cleanupFunc2() + } + }() + By("Waiting for scale up") + // Verify that cluster size increased. + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount+2 }, defaultTimeout)) + By("Delete first pod") + cleanupFunc1() + cleanupFunc1 = nil + By("Waiting for scale down to 1") + // Verify that cluster size decreased. + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount+1 }, scaleDownTimeout)) + By("Delete second pod") + cleanupFunc2() + cleanupFunc2 = nil + By("Waiting for scale down to 0") + // Verify that cluster size decreased. + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount }, scaleDownTimeout)) + By("Waiting for NAP group remove") + framework.ExpectNoError(waitTillAllNAPNodePoolsAreRemoved()) + By("Check if NAP group was removeed") + Expect(getNAPNodePoolsNumber()).Should(Equal(0)) + }) + + It("shouldn't add new node group if not needed [Feature:ClusterSizeAutoscalingScaleWithNAP]", func() { + framework.SkipUnlessProviderIs("gke") + framework.ExpectNoError(enableAutoprovisioning("")) + By("Create pods") + // Create nodesCountAfterResize+1 pods allocating 0.7 allocatable on present nodes. One more node will have to be created. + cleanupFunc := ReserveMemory(f, "memory-reservation", nodeCount+1, int(float64(nodeCount+1)*float64(0.7)*float64(memAllocatableMb)), true, scaleUpTimeout) + defer cleanupFunc() + By("Waiting for scale up") + // Verify that cluster size increased. + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size >= nodeCount+1 }, scaleUpTimeout)) + By("Check if NAP group was created hoping id didn't happen") + Expect(getNAPNodePoolsNumber()).Should(Equal(0)) + }) + + It("shouldn't scale up if cores limit too low, should scale up after limit is changed [Feature:ClusterSizeAutoscalingScaleWithNAP]", func() { + framework.SkipUnlessProviderIs("gke") + By(fmt.Sprintf("Set core limit to %d", coreCount)) + framework.ExpectNoError(enableAutoprovisioning(fmt.Sprintf(`"resource_limits":{"name":"cpu", "minimum":2, "maximum":%d}, "resource_limits":{"name":"memory", "minimum":0, "maximum":10000000}`, coreCount))) + // Create pod allocating 1.1 allocatable for present nodes. Bigger node will have to be created. + cleanupFunc := ReserveMemory(f, "memory-reservation", 1, int(1.1*float64(memAllocatableMb)), false, time.Second) + defer cleanupFunc() + By(fmt.Sprintf("Waiting for scale up hoping it won't happen, sleep for %s", scaleUpTimeout.String())) + time.Sleep(scaleUpTimeout) + // Verify that cluster size is not changed + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount }, time.Second)) + By("Change resource limits") + framework.ExpectNoError(enableAutoprovisioning(fmt.Sprintf(`"resource_limits":{"name":"cpu", "minimum":2, "maximum":%d}, "resource_limits":{"name":"memory", "minimum":0, "maximum":10000000}`, coreCount+5))) + By("Wait for scale up") + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount+1 }, scaleUpTimeout)) + By("Check if NAP group was created") + Expect(getNAPNodePoolsNumber()).Should(Equal(1)) + }) + + It("should create new node if there is no node for node selector [Feature:ClusterSizeAutoscalingScaleWithNAP]", func() { + framework.SkipUnlessProviderIs("gke") + framework.ExpectNoError(enableAutoprovisioning("")) + // Create pod allocating 0.7 allocatable for present nodes with node selector. + cleanupFunc := ReserveMemoryWithSelector(f, "memory-reservation", 1, int(0.7*float64(memAllocatableMb)), true, scaleUpTimeout, map[string]string{"test": "test"}) + defer cleanupFunc() + By("Waiting for scale up") + // Verify that cluster size increased. + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount+1 }, defaultTimeout)) + By("Check if NAP group was created") + Expect(getNAPNodePoolsNumber()).Should(Equal(1)) + }) + + It("shouldn't scale up when expendable pod is created [Feature:ClusterSizeAutoscalingScaleUp]", func() { + defer createPriorityClasses(f)() + // Create nodesCountAfterResize+1 pods allocating 0.7 allocatable on present nodes. One more node will have to be created. + cleanupFunc := ReserveMemoryWithPriority(f, "memory-reservation", nodeCount+1, int(float64(nodeCount+1)*float64(0.7)*float64(memAllocatableMb)), false, time.Second, expendablePriorityClassName) + defer cleanupFunc() + By(fmt.Sprintf("Waiting for scale up hoping it won't happen, sleep for %s", scaleUpTimeout.String())) + time.Sleep(scaleUpTimeout) + // Verify that cluster size is not changed + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount }, time.Second)) + }) + + It("should scale up when non expendable pod is created [Feature:ClusterSizeAutoscalingScaleUp]", func() { + defer createPriorityClasses(f)() + // Create nodesCountAfterResize+1 pods allocating 0.7 allocatable on present nodes. One more node will have to be created. + cleanupFunc := ReserveMemoryWithPriority(f, "memory-reservation", nodeCount+1, int(float64(nodeCount+1)*float64(0.7)*float64(memAllocatableMb)), true, scaleUpTimeout, highPriorityClassName) + defer cleanupFunc() + // Verify that cluster size is not changed + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size > nodeCount }, time.Second)) + }) + + It("shouldn't scale up when expendable pod is preempted [Feature:ClusterSizeAutoscalingScaleUp]", func() { + defer createPriorityClasses(f)() + // Create nodesCountAfterResize pods allocating 0.7 allocatable on present nodes - one pod per node. + cleanupFunc1 := ReserveMemoryWithPriority(f, "memory-reservation1", nodeCount, int(float64(nodeCount)*float64(0.7)*float64(memAllocatableMb)), true, defaultTimeout, expendablePriorityClassName) + defer cleanupFunc1() + // Create nodesCountAfterResize pods allocating 0.7 allocatable on present nodes - one pod per node. Pods created here should preempt pods created above. + cleanupFunc2 := ReserveMemoryWithPriority(f, "memory-reservation2", nodeCount, int(float64(nodeCount)*float64(0.7)*float64(memAllocatableMb)), true, defaultTimeout, highPriorityClassName) + defer cleanupFunc2() + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount }, time.Second)) + }) + + It("should scale down when expendable pod is running [Feature:ClusterSizeAutoscalingScaleDown]", func() { + defer createPriorityClasses(f)() + increasedSize := manuallyIncreaseClusterSize(f, originalSizes) + // Create increasedSize pods allocating 0.7 allocatable on present nodes - one pod per node. + cleanupFunc := ReserveMemoryWithPriority(f, "memory-reservation", increasedSize, int(float64(increasedSize)*float64(0.7)*float64(memAllocatableMb)), true, scaleUpTimeout, expendablePriorityClassName) + defer cleanupFunc() + By("Waiting for scale down") + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == nodeCount }, scaleDownTimeout)) + }) + + It("shouldn't scale down when non expendable pod is running [Feature:ClusterSizeAutoscalingScaleDown]", func() { + defer createPriorityClasses(f)() + increasedSize := manuallyIncreaseClusterSize(f, originalSizes) + // Create increasedSize pods allocating 0.7 allocatable on present nodes - one pod per node. + cleanupFunc := ReserveMemoryWithPriority(f, "memory-reservation", increasedSize, int(float64(increasedSize)*float64(0.7)*float64(memAllocatableMb)), true, scaleUpTimeout, highPriorityClassName) + defer cleanupFunc() + By(fmt.Sprintf("Waiting for scale down hoping it won't happen, sleep for %s", scaleDownTimeout.String())) + time.Sleep(scaleDownTimeout) + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size == increasedSize }, time.Second)) + }) }) func execCmd(args ...string) *exec.Cmd { @@ -762,7 +931,7 @@ func execCmd(args ...string) *exec.Cmd { func runDrainTest(f *framework.Framework, migSizes map[string]int, namespace string, podsPerNode, pdbSize int, verifyFunction func(int)) { increasedSize := manuallyIncreaseClusterSize(f, migSizes) - nodes, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ + nodes, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String()}) framework.ExpectNoError(err) @@ -795,46 +964,102 @@ func runDrainTest(f *framework.Framework, migSizes map[string]int, namespace str verifyFunction(increasedSize) } -func getGKEClusterURL() string { +func getGKEURL(apiVersion string, suffix string) string { out, err := execCmd("gcloud", "auth", "print-access-token").Output() framework.ExpectNoError(err) token := strings.Replace(string(out), "\n", "", -1) - return fmt.Sprintf("%s/v1/projects/%s/zones/%s/clusters/%s?access_token=%s", + return fmt.Sprintf("%s/%s/%s?access_token=%s", gkeEndpoint, - framework.TestContext.CloudConfig.ProjectID, - framework.TestContext.CloudConfig.Zone, - framework.TestContext.CloudConfig.Cluster, + apiVersion, + suffix, token) } -func isAutoscalerEnabled(expectedMaxNodeCountInTargetPool int) (bool, error) { - resp, err := http.Get(getGKEClusterURL()) +func getGKEClusterURL(apiVersion string) string { + if isRegionalCluster() { + // TODO(bskiba): Use locations API for all clusters once it's graduated to v1. + return getGKEURL(apiVersion, fmt.Sprintf("projects/%s/locations/%s/clusters/%s", + framework.TestContext.CloudConfig.ProjectID, + framework.TestContext.CloudConfig.Region, + framework.TestContext.CloudConfig.Cluster)) + } else { + return getGKEURL(apiVersion, fmt.Sprintf("projects/%s/zones/%s/clusters/%s", + framework.TestContext.CloudConfig.ProjectID, + framework.TestContext.CloudConfig.Zone, + framework.TestContext.CloudConfig.Cluster)) + } +} + +func getCluster(apiVersion string) (string, error) { + resp, err := http.Get(getGKEClusterURL(apiVersion)) if err != nil { - return false, err + return "", err } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return "", err + } + if resp.StatusCode != http.StatusOK { + return "", fmt.Errorf("error: %s %s", resp.Status, body) + } + + return string(body), nil +} + +func isAutoscalerEnabled(expectedMaxNodeCountInTargetPool int) (bool, error) { + apiVersion := "v1" + if isRegionalCluster() { + apiVersion = "v1beta1" + } + strBody, err := getCluster(apiVersion) if err != nil { return false, err } - strBody := string(body) if strings.Contains(strBody, "\"maxNodeCount\": "+strconv.Itoa(expectedMaxNodeCountInTargetPool)) { return true, nil } return false, nil } +func getClusterLocation() string { + if isRegionalCluster() { + return "--region=" + framework.TestContext.CloudConfig.Region + } else { + return "--zone=" + framework.TestContext.CloudConfig.Zone + } +} + +func getGcloudCommand(commandTrack string, args []string) []string { + command := []string{"gcloud"} + if commandTrack == "beta" || commandTrack == "alpha" { + command = append(command, commandTrack) + } + command = append(command, args...) + command = append(command, getClusterLocation()) + command = append(command, "--project="+framework.TestContext.CloudConfig.ProjectID) + return command +} + +func isRegionalCluster() bool { + // TODO(bskiba): Use an appropriate indicator that the cluster is regional. + return framework.TestContext.CloudConfig.MultiZone +} + func enableAutoscaler(nodePool string, minCount, maxCount int) error { glog.Infof("Using gcloud to enable autoscaling for pool %s", nodePool) - output, err := execCmd("gcloud", "container", "clusters", "update", framework.TestContext.CloudConfig.Cluster, + args := []string{"container", "clusters", "update", framework.TestContext.CloudConfig.Cluster, "--enable-autoscaling", - "--min-nodes="+strconv.Itoa(minCount), - "--max-nodes="+strconv.Itoa(maxCount), - "--node-pool="+nodePool, - "--project="+framework.TestContext.CloudConfig.ProjectID, - "--zone="+framework.TestContext.CloudConfig.Zone).CombinedOutput() + "--min-nodes=" + strconv.Itoa(minCount), + "--max-nodes=" + strconv.Itoa(maxCount), + "--node-pool=" + nodePool} + track := "" + if isRegionalCluster() { + track = "beta" + } + output, err := execCmd(getGcloudCommand(track, args)...).CombinedOutput() if err != nil { glog.Errorf("Failed config update result: %s", output) @@ -855,12 +1080,14 @@ func enableAutoscaler(nodePool string, minCount, maxCount int) error { func disableAutoscaler(nodePool string, minCount, maxCount int) error { glog.Infof("Using gcloud to disable autoscaling for pool %s", nodePool) - - output, err := execCmd("gcloud", "container", "clusters", "update", framework.TestContext.CloudConfig.Cluster, + args := []string{"container", "clusters", "update", framework.TestContext.CloudConfig.Cluster, "--no-enable-autoscaling", - "--node-pool="+nodePool, - "--project="+framework.TestContext.CloudConfig.ProjectID, - "--zone="+framework.TestContext.CloudConfig.Zone).CombinedOutput() + "--node-pool=" + nodePool} + track := "" + if isRegionalCluster() { + track = "beta" + } + output, err := execCmd(getGcloudCommand(track, args)...).CombinedOutput() if err != nil { glog.Errorf("Failed config update result: %s", output) @@ -879,23 +1106,173 @@ func disableAutoscaler(nodePool string, minCount, maxCount int) error { return fmt.Errorf("autoscaler still enabled, last error: %v", finalErr) } +func isAutoprovisioningEnabled() (bool, error) { + strBody, err := getCluster("v1alpha1") + if err != nil { + return false, err + } + if strings.Contains(strBody, "\"enableNodeAutoprovisioning\": true") { + return true, nil + } + return false, nil +} + +func executeHTTPRequest(method string, url string, body string) (string, error) { + client := &http.Client{} + req, err := http.NewRequest(method, url, strings.NewReader(body)) + if err != nil { + By(fmt.Sprintf("Can't create request: %s", err.Error())) + return "", err + } + resp, err := client.Do(req) + respBody, err := ioutil.ReadAll(resp.Body) + if err != nil { + return "", err + } + if resp.StatusCode != http.StatusOK { + return "", fmt.Errorf("error: %s %s", resp.Status, string(respBody)) + } + + return string(respBody), nil +} + +func enableAutoprovisioning(resourceLimits string) error { + By("Using API to enable autoprovisioning.") + var body string + if resourceLimits != "" { + body = fmt.Sprintf(`{"update": {"desired_cluster_autoscaling": {"enable_node_autoprovisioning": true, %s}}}`, resourceLimits) + } else { + body = `{"update": {"desired_cluster_autoscaling": {"enable_node_autoprovisioning": true, "resource_limits":{"name":"cpu", "minimum":0, "maximum":100}, "resource_limits":{"name":"memory", "minimum":0, "maximum":10000000}}}}` + } + _, err := executeHTTPRequest(http.MethodPut, getGKEClusterURL("v1alpha1"), body) + if err != nil { + glog.Errorf("Request error: %s", err.Error()) + return err + } + glog.Infof("Wait for enabling autoprovisioning.") + for start := time.Now(); time.Since(start) < gkeUpdateTimeout; time.Sleep(30 * time.Second) { + enabled, err := isAutoprovisioningEnabled() + if err != nil { + glog.Errorf("Error: %s", err.Error()) + return err + } + if enabled { + By("Autoprovisioning enabled.") + return nil + } + glog.Infof("Waiting for enabling autoprovisioning") + } + return fmt.Errorf("autoprovisioning wasn't enabled (timeout).") +} + +func disableAutoprovisioning() error { + enabled, err := isAutoprovisioningEnabled() + if err != nil { + glog.Errorf("Error: %s", err.Error()) + return err + } + if !enabled { + By("Autoprovisioning disabled.") + return nil + } + By("Using API to disable autoprovisioning.") + _, err = executeHTTPRequest(http.MethodPut, getGKEClusterURL("v1alpha1"), "{\"update\": {\"desired_cluster_autoscaling\": {}}}") + if err != nil { + glog.Errorf("Request error: %s", err.Error()) + return err + } + By("Wait for disabling autoprovisioning.") + for start := time.Now(); time.Since(start) < gkeUpdateTimeout; time.Sleep(30 * time.Second) { + enabled, err := isAutoprovisioningEnabled() + if err != nil { + glog.Errorf("Error: %s", err.Error()) + return err + } + if !enabled { + By("Autoprovisioning disabled.") + return nil + } + By("Waiting for disabling autoprovisioning") + } + return fmt.Errorf("autoprovisioning wasn't disabled (timeout).") +} + +func getNAPNodePools() ([]string, error) { + if framework.ProviderIs("gke") { + output, err := exec.Command("gcloud", "container", "node-pools", "list", + "--project="+framework.TestContext.CloudConfig.ProjectID, + "--zone="+framework.TestContext.CloudConfig.Zone, + "--cluster="+framework.TestContext.CloudConfig.Cluster).CombinedOutput() + if err != nil { + glog.Errorf("Failed to get instance groups: %v", string(output)) + return nil, err + } + re := regexp.MustCompile("nap.* ") + lines := re.FindAllString(string(output), -1) + for i, line := range lines { + lines[i] = line[:strings.Index(line, " ")] + } + return lines, nil + } else { + return nil, fmt.Errorf("provider does not support NAP") + } +} + +func removeNAPNodePools() error { + By("Remove NAP node pools") + pools, err := getNAPNodePools() + if err != nil { + return err + } + for _, pool := range pools { + By("Remove node pool: " + pool) + suffix := fmt.Sprintf("projects/%s/zones/%s/clusters/%s/nodePools/%s", + framework.TestContext.CloudConfig.ProjectID, + framework.TestContext.CloudConfig.Zone, + framework.TestContext.CloudConfig.Cluster, + pool) + _, err := executeHTTPRequest(http.MethodDelete, getGKEURL("v1alpha1", suffix), "") + if err != nil { + glog.Errorf("Request error: %s", err.Error()) + return err + } + } + err = waitTillAllNAPNodePoolsAreRemoved() + if err != nil { + glog.Errorf(fmt.Sprintf("Couldn't remove NAP groups: %s", err.Error())) + } + return err +} + +func getNAPNodePoolsNumber() int { + groups, err := getNAPNodePools() + framework.ExpectNoError(err) + return len(groups) +} + +func waitTillAllNAPNodePoolsAreRemoved() error { + By("Wait till all NAP node pools are removed") + err := wait.PollImmediate(5*time.Second, defaultTimeout, func() (bool, error) { + return getNAPNodePoolsNumber() == 0, nil + }) + return err +} + func addNodePool(name string, machineType string, numNodes int) { - output, err := execCmd("gcloud", "alpha", "container", "node-pools", "create", name, "--quiet", - "--machine-type="+machineType, - "--num-nodes="+strconv.Itoa(numNodes), - "--project="+framework.TestContext.CloudConfig.ProjectID, - "--zone="+framework.TestContext.CloudConfig.Zone, - "--cluster="+framework.TestContext.CloudConfig.Cluster).CombinedOutput() + args := []string{"container", "node-pools", "create", name, "--quiet", + "--machine-type=" + machineType, + "--num-nodes=" + strconv.Itoa(numNodes), + "--cluster=" + framework.TestContext.CloudConfig.Cluster} + output, err := execCmd(getGcloudCommand("alpha", args)...).CombinedOutput() glog.Infof("Creating node-pool %s: %s", name, output) framework.ExpectNoError(err) } func deleteNodePool(name string) { glog.Infof("Deleting node pool %s", name) - output, err := execCmd("gcloud", "alpha", "container", "node-pools", "delete", name, "--quiet", - "--project="+framework.TestContext.CloudConfig.ProjectID, - "--zone="+framework.TestContext.CloudConfig.Zone, - "--cluster="+framework.TestContext.CloudConfig.Cluster).CombinedOutput() + args := []string{"container", "node-pools", "delete", name, "--quiet", + "--cluster=" + framework.TestContext.CloudConfig.Cluster} + output, err := execCmd(getGcloudCommand("alpha", args)...).CombinedOutput() if err != nil { glog.Infof("Error: %v", err) } @@ -944,20 +1321,20 @@ func doPut(url, content string) (string, error) { return strBody, nil } -// ReserveMemory creates a replication controller with pods that, in summation, -// request the specified amount of memory. -func ReserveMemory(f *framework.Framework, id string, replicas, megabytes int, expectRunning bool, timeout time.Duration) func() error { +func reserveMemory(f *framework.Framework, id string, replicas, megabytes int, expectRunning bool, timeout time.Duration, selector map[string]string, priorityClassName string) func() error { By(fmt.Sprintf("Running RC which reserves %v MB of memory", megabytes)) request := int64(1024 * 1024 * megabytes / replicas) config := &testutils.RCConfig{ - Client: f.ClientSet, - InternalClient: f.InternalClientset, - Name: id, - Namespace: f.Namespace.Name, - Timeout: timeout, - Image: framework.GetPauseImageName(f.ClientSet), - Replicas: replicas, - MemRequest: request, + Client: f.ClientSet, + InternalClient: f.InternalClientset, + Name: id, + Namespace: f.Namespace.Name, + Timeout: timeout, + Image: framework.GetPauseImageName(f.ClientSet), + Replicas: replicas, + MemRequest: request, + NodeSelector: selector, + PriorityClassName: priorityClassName, } for start := time.Now(); time.Since(start) < rcCreationRetryTimeout; time.Sleep(rcCreationRetryDelay) { err := framework.RunRC(*config) @@ -976,6 +1353,24 @@ func ReserveMemory(f *framework.Framework, id string, replicas, megabytes int, e return nil } +// ReserveMemoryWithPriority creates a replication controller with pods with priority that, in summation, +// request the specified amount of memory. +func ReserveMemoryWithPriority(f *framework.Framework, id string, replicas, megabytes int, expectRunning bool, timeout time.Duration, priorityClassName string) func() error { + return reserveMemory(f, id, replicas, megabytes, expectRunning, timeout, nil, priorityClassName) +} + +// ReserveMemoryWithSelector creates a replication controller with pods with node selector that, in summation, +// request the specified amount of memory. +func ReserveMemoryWithSelector(f *framework.Framework, id string, replicas, megabytes int, expectRunning bool, timeout time.Duration, selector map[string]string) func() error { + return reserveMemory(f, id, replicas, megabytes, expectRunning, timeout, selector, "") +} + +// ReserveMemory creates a replication controller with pods that, in summation, +// request the specified amount of memory. +func ReserveMemory(f *framework.Framework, id string, replicas, megabytes int, expectRunning bool, timeout time.Duration) func() error { + return reserveMemory(f, id, replicas, megabytes, expectRunning, timeout, nil, "") +} + // WaitForClusterSizeFunc waits until the cluster size matches the given function. func WaitForClusterSizeFunc(c clientset.Interface, sizeFunc func(int) bool, timeout time.Duration) error { return WaitForClusterSizeFuncWithUnready(c, sizeFunc, timeout, 0) @@ -984,7 +1379,7 @@ func WaitForClusterSizeFunc(c clientset.Interface, sizeFunc func(int) bool, time // WaitForClusterSizeFuncWithUnready waits until the cluster size matches the given function and assumes some unready nodes. func WaitForClusterSizeFuncWithUnready(c clientset.Interface, sizeFunc func(int) bool, timeout time.Duration, expectedUnready int) error { for start := time.Now(); time.Since(start) < timeout; time.Sleep(20 * time.Second) { - nodes, err := c.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String()}) if err != nil { @@ -1011,7 +1406,7 @@ func WaitForClusterSizeFuncWithUnready(c clientset.Interface, sizeFunc func(int) func waitForCaPodsReadyInNamespace(f *framework.Framework, c clientset.Interface, tolerateUnreadyCount int) error { var notready []string for start := time.Now(); time.Now().Before(start.Add(scaleUpTimeout)); time.Sleep(20 * time.Second) { - pods, err := c.Core().Pods(f.Namespace.Name).List(metav1.ListOptions{}) + pods, err := c.CoreV1().Pods(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { return fmt.Errorf("failed to get pods: %v", err) } @@ -1051,7 +1446,7 @@ func waitForAllCaPodsReadyInNamespace(f *framework.Framework, c clientset.Interf } func getAnyNode(c clientset.Interface) *v1.Node { - nodes, err := c.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String()}) if err != nil { @@ -1086,10 +1481,10 @@ func drainNode(f *framework.Framework, node *v1.Node) { By("Manually drain the single node") podOpts := metav1.ListOptions{FieldSelector: fields.OneTermEqualSelector(api.PodHostField, node.Name).String()} - pods, err := f.ClientSet.Core().Pods(metav1.NamespaceAll).List(podOpts) + pods, err := f.ClientSet.CoreV1().Pods(metav1.NamespaceAll).List(podOpts) framework.ExpectNoError(err) for _, pod := range pods.Items { - err = f.ClientSet.Core().Pods(pod.Namespace).Delete(pod.Name, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(pod.Namespace).Delete(pod.Name, metav1.NewDeleteOptions(0)) framework.ExpectNoError(err) } } @@ -1097,7 +1492,7 @@ func drainNode(f *framework.Framework, node *v1.Node) { func makeNodeUnschedulable(c clientset.Interface, node *v1.Node) error { By(fmt.Sprintf("Taint node %s", node.Name)) for j := 0; j < 3; j++ { - freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{}) + freshNode, err := c.CoreV1().Nodes().Get(node.Name, metav1.GetOptions{}) if err != nil { return err } @@ -1111,7 +1506,7 @@ func makeNodeUnschedulable(c clientset.Interface, node *v1.Node) error { Value: "DisabledForTest", Effect: v1.TaintEffectNoSchedule, }) - _, err = c.Core().Nodes().Update(freshNode) + _, err = c.CoreV1().Nodes().Update(freshNode) if err == nil { return nil } @@ -1134,7 +1529,7 @@ func (CriticalAddonsOnlyError) Error() string { func makeNodeSchedulable(c clientset.Interface, node *v1.Node, failOnCriticalAddonsOnly bool) error { By(fmt.Sprintf("Remove taint from node %s", node.Name)) for j := 0; j < 3; j++ { - freshNode, err := c.Core().Nodes().Get(node.Name, metav1.GetOptions{}) + freshNode, err := c.CoreV1().Nodes().Get(node.Name, metav1.GetOptions{}) if err != nil { return err } @@ -1152,7 +1547,7 @@ func makeNodeSchedulable(c clientset.Interface, node *v1.Node, failOnCriticalAdd return nil } freshNode.Spec.Taints = newTaints - _, err = c.Core().Nodes().Update(freshNode) + _, err = c.CoreV1().Nodes().Update(freshNode) if err == nil { return nil } @@ -1181,7 +1576,7 @@ func runAntiAffinityPods(f *framework.Framework, namespace string, pods int, id if err != nil { return err } - _, err = f.ClientSet.Core().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) + _, err = f.ClientSet.CoreV1().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) if err != nil { return err } @@ -1205,7 +1600,7 @@ func runVolumeAntiAffinityPods(f *framework.Framework, namespace string, pods in if err != nil { return err } - _, err = f.ClientSet.Core().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) + _, err = f.ClientSet.CoreV1().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) if err != nil { return err } @@ -1287,7 +1682,7 @@ func runReplicatedPodOnEachNode(f *framework.Framework, nodes []v1.Node, namespa if err != nil { return err } - rc, err := f.ClientSet.Core().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) + rc, err := f.ClientSet.CoreV1().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) if err != nil { return err } @@ -1301,7 +1696,7 @@ func runReplicatedPodOnEachNode(f *framework.Framework, nodes []v1.Node, namespa // (we retry 409 errors in case rc reference got out of sync) for j := 0; j < 3; j++ { *rc.Spec.Replicas = int32((i + 1) * podsPerNode) - rc, err = f.ClientSet.Core().ReplicationControllers(namespace).Update(rc) + rc, err = f.ClientSet.CoreV1().ReplicationControllers(namespace).Update(rc) if err == nil { break } @@ -1309,14 +1704,14 @@ func runReplicatedPodOnEachNode(f *framework.Framework, nodes []v1.Node, namespa return err } glog.Warningf("Got 409 conflict when trying to scale RC, retries left: %v", 3-j) - rc, err = f.ClientSet.Core().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) + rc, err = f.ClientSet.CoreV1().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) if err != nil { return err } } err = wait.PollImmediate(5*time.Second, podTimeout, func() (bool, error) { - rc, err = f.ClientSet.Core().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) + rc, err = f.ClientSet.CoreV1().ReplicationControllers(namespace).Get(id, metav1.GetOptions{}) if err != nil || rc.Status.ReadyReplicas < int32((i+1)*podsPerNode) { return false, nil } @@ -1546,3 +1941,20 @@ func addKubeSystemPdbs(f *framework.Framework) (func(), error) { } return cleanup, nil } + +func createPriorityClasses(f *framework.Framework) func() { + priorityClasses := map[string]int32{ + expendablePriorityClassName: -15, + highPriorityClassName: 1000, + } + for className, priority := range priorityClasses { + _, err := f.ClientSet.SchedulingV1alpha1().PriorityClasses().Create(&v1alpha1.PriorityClass{ObjectMeta: metav1.ObjectMeta{Name: className}, Value: priority}) + Expect(err == nil || errors.IsAlreadyExists(err)).To(Equal(true)) + } + + return func() { + for className := range priorityClasses { + f.ClientSet.SchedulingV1alpha1().PriorityClasses().Delete(className, nil) + } + } +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/custom_metrics_autoscaling.go b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/custom_metrics_autoscaling.go index 7a633842b..24c5a09e5 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/custom_metrics_autoscaling.go +++ b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/custom_metrics_autoscaling.go @@ -117,7 +117,7 @@ func createDeploymentsToScale(f *framework.Framework, cs clientset.Interface) er if err != nil { return err } - _, err = cs.Core().Pods(f.Namespace.ObjectMeta.Name).Create(monitoring.StackdriverExporterPod(stackdriverExporterPod, f.Namespace.Name, stackdriverExporterPod, monitoring.CustomMetricName, 100)) + _, err = cs.CoreV1().Pods(f.Namespace.ObjectMeta.Name).Create(monitoring.StackdriverExporterPod(stackdriverExporterPod, f.Namespace.Name, stackdriverExporterPod, monitoring.CustomMetricName, 100)) if err != nil { return err } @@ -127,7 +127,7 @@ func createDeploymentsToScale(f *framework.Framework, cs clientset.Interface) er func cleanupDeploymentsToScale(f *framework.Framework, cs clientset.Interface) { _ = cs.Extensions().Deployments(f.Namespace.ObjectMeta.Name).Delete(stackdriverExporterDeployment, &metav1.DeleteOptions{}) - _ = cs.Core().Pods(f.Namespace.ObjectMeta.Name).Delete(stackdriverExporterPod, &metav1.DeleteOptions{}) + _ = cs.CoreV1().Pods(f.Namespace.ObjectMeta.Name).Delete(stackdriverExporterPod, &metav1.DeleteOptions{}) _ = cs.Extensions().Deployments(f.Namespace.ObjectMeta.Name).Delete(dummyDeploymentName, &metav1.DeleteOptions{}) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/dns_autoscaling.go b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/dns_autoscaling.go index 0ef2af923..9c57a3da8 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/dns_autoscaling.go +++ b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/dns_autoscaling.go @@ -248,7 +248,7 @@ func getScheduableCores(nodes []v1.Node) int64 { } func fetchDNSScalingConfigMap(c clientset.Interface) (*v1.ConfigMap, error) { - cm, err := c.Core().ConfigMaps(metav1.NamespaceSystem).Get(DNSAutoscalerLabelName, metav1.GetOptions{}) + cm, err := c.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get(DNSAutoscalerLabelName, metav1.GetOptions{}) if err != nil { return nil, err } @@ -256,7 +256,7 @@ func fetchDNSScalingConfigMap(c clientset.Interface) (*v1.ConfigMap, error) { } func deleteDNSScalingConfigMap(c clientset.Interface) error { - if err := c.Core().ConfigMaps(metav1.NamespaceSystem).Delete(DNSAutoscalerLabelName, nil); err != nil { + if err := c.CoreV1().ConfigMaps(metav1.NamespaceSystem).Delete(DNSAutoscalerLabelName, nil); err != nil { return err } framework.Logf("DNS autoscaling ConfigMap deleted.") @@ -282,7 +282,7 @@ func packDNSScalingConfigMap(params map[string]string) *v1.ConfigMap { } func updateDNSScalingConfigMap(c clientset.Interface, configMap *v1.ConfigMap) error { - _, err := c.Core().ConfigMaps(metav1.NamespaceSystem).Update(configMap) + _, err := c.CoreV1().ConfigMaps(metav1.NamespaceSystem).Update(configMap) if err != nil { return err } @@ -293,7 +293,7 @@ func updateDNSScalingConfigMap(c clientset.Interface, configMap *v1.ConfigMap) e func getDNSReplicas(c clientset.Interface) (int, error) { label := labels.SelectorFromSet(labels.Set(map[string]string{ClusterAddonLabelKey: DNSLabelName})) listOpts := metav1.ListOptions{LabelSelector: label.String()} - deployments, err := c.Extensions().Deployments(metav1.NamespaceSystem).List(listOpts) + deployments, err := c.ExtensionsV1beta1().Deployments(metav1.NamespaceSystem).List(listOpts) if err != nil { return 0, err } @@ -308,7 +308,7 @@ func getDNSReplicas(c clientset.Interface) (int, error) { func deleteDNSAutoscalerPod(c clientset.Interface) error { label := labels.SelectorFromSet(labels.Set(map[string]string{ClusterAddonLabelKey: DNSAutoscalerLabelName})) listOpts := metav1.ListOptions{LabelSelector: label.String()} - pods, err := c.Core().Pods(metav1.NamespaceSystem).List(listOpts) + pods, err := c.CoreV1().Pods(metav1.NamespaceSystem).List(listOpts) if err != nil { return err } @@ -317,7 +317,7 @@ func deleteDNSAutoscalerPod(c clientset.Interface) error { } podName := pods.Items[0].Name - if err := c.Core().Pods(metav1.NamespaceSystem).Delete(podName, nil); err != nil { + if err := c.CoreV1().Pods(metav1.NamespaceSystem).Delete(podName, nil); err != nil { return err } framework.Logf("DNS autoscaling pod %v deleted.", podName) diff --git a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/horizontal_pod_autoscaling.go b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/horizontal_pod_autoscaling.go index 6e6aca1a8..9dd853ed6 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/horizontal_pod_autoscaling.go +++ b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/horizontal_pod_autoscaling.go @@ -19,6 +19,7 @@ package autoscaling import ( "time" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/test/e2e/common" "k8s.io/kubernetes/test/e2e/framework" @@ -113,7 +114,7 @@ type HPAScaleTest struct { // The first state change is due to the CPU being consumed initially, which HPA responds to by changing pod counts. // The second state change (optional) is due to the CPU burst parameter, which HPA again responds to. // TODO The use of 3 states is arbitrary, we could eventually make this test handle "n" states once this test stabilizes. -func (scaleTest *HPAScaleTest) run(name, kind string, rc *common.ResourceConsumer, f *framework.Framework) { +func (scaleTest *HPAScaleTest) run(name string, kind schema.GroupVersionKind, rc *common.ResourceConsumer, f *framework.Framework) { const timeToWait = 15 * time.Minute rc = common.NewDynamicResourceConsumer(name, f.Namespace.Name, kind, int(scaleTest.initPods), int(scaleTest.totalInitialCPUUsage), 0, 0, scaleTest.perPodCPURequest, 200, f.ClientSet, f.InternalClientset) defer rc.CleanUp() @@ -129,7 +130,7 @@ func (scaleTest *HPAScaleTest) run(name, kind string, rc *common.ResourceConsume } } -func scaleUp(name, kind string, checkStability bool, rc *common.ResourceConsumer, f *framework.Framework) { +func scaleUp(name string, kind schema.GroupVersionKind, checkStability bool, rc *common.ResourceConsumer, f *framework.Framework) { stasis := 0 * time.Minute if checkStability { stasis = 10 * time.Minute @@ -149,7 +150,7 @@ func scaleUp(name, kind string, checkStability bool, rc *common.ResourceConsumer scaleTest.run(name, kind, rc, f) } -func scaleDown(name, kind string, checkStability bool, rc *common.ResourceConsumer, f *framework.Framework) { +func scaleDown(name string, kind schema.GroupVersionKind, checkStability bool, rc *common.ResourceConsumer, f *framework.Framework) { stasis := 0 * time.Minute if checkStability { stasis = 10 * time.Minute diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/BUILD b/vendor/k8s.io/kubernetes/test/e2e/common/BUILD index 68ccb3a74..bf9d36259 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/common/BUILD @@ -34,11 +34,10 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/common", deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", - "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", - "//pkg/apis/extensions:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/conditions:go_default_library", "//pkg/kubelet:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/apparmor.go b/vendor/k8s.io/kubernetes/test/e2e/common/apparmor.go index 385bac4aa..178496eb5 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/apparmor.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/apparmor.go @@ -40,6 +40,10 @@ const ( // AppArmorDistros are distros with AppArmor support var AppArmorDistros = []string{"gci", "ubuntu"} +func IsAppArmorSupported() bool { + return framework.NodeOSDistroIs(AppArmorDistros...) +} + func SkipIfAppArmorNotSupported() { framework.SkipUnlessNodeOSDistroIs(AppArmorDistros...) } @@ -160,7 +164,7 @@ profile %s flags=(attach_disconnected) { profileName: profile, }, } - _, err := f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(cm) + _, err := f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(cm) framework.ExpectNoError(err, "Failed to create apparmor-profiles ConfigMap") } @@ -228,7 +232,7 @@ func createAppArmorProfileLoader(f *framework.Framework) { }, }, } - _, err := f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Create(loader) + _, err := f.ClientSet.CoreV1().ReplicationControllers(f.Namespace.Name).Create(loader) framework.ExpectNoError(err, "Failed to create apparmor-loader ReplicationController") // Wait for loader to be ready. diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/autoscaling_utils.go b/vendor/k8s.io/kubernetes/test/e2e/common/autoscaling_utils.go index 0e2cb5a7d..3efbf8d33 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/autoscaling_utils.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/autoscaling_utils.go @@ -30,8 +30,7 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" - extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/test/e2e/framework" testutils "k8s.io/kubernetes/test/utils" @@ -65,10 +64,10 @@ var ( resourceConsumerControllerImage = imageutils.GetE2EImage(imageutils.ResourceController) ) -const ( - KindRC = "ReplicationController" - KindDeployment = "Deployment" - KindReplicaSet = "ReplicaSet" +var ( + KindRC = schema.GroupVersionKind{Version: "v1", Kind: "ReplicationController"} + KindDeployment = schema.GroupVersionKind{Group: "apps", Version: "v1beta2", Kind: "Deployment"} + KindReplicaSet = schema.GroupVersionKind{Group: "apps", Version: "v1beta2", Kind: "ReplicaSet"} subresource = "scale" ) @@ -83,7 +82,7 @@ rc.ConsumeCPU(300) type ResourceConsumer struct { name string controllerName string - kind string + kind schema.GroupVersionKind nsName string clientSet clientset.Interface internalClientset *internalclientset.Clientset @@ -105,7 +104,7 @@ func GetResourceConsumerImage() string { return resourceConsumerImage } -func NewDynamicResourceConsumer(name, nsName, kind string, replicas, initCPUTotal, initMemoryTotal, initCustomMetric int, cpuLimit, memLimit int64, clientset clientset.Interface, internalClientset *internalclientset.Clientset) *ResourceConsumer { +func NewDynamicResourceConsumer(name, nsName string, kind schema.GroupVersionKind, replicas, initCPUTotal, initMemoryTotal, initCustomMetric int, cpuLimit, memLimit int64, clientset clientset.Interface, internalClientset *internalclientset.Clientset) *ResourceConsumer { return newResourceConsumer(name, nsName, kind, replicas, initCPUTotal, initMemoryTotal, initCustomMetric, dynamicConsumptionTimeInSeconds, dynamicRequestSizeInMillicores, dynamicRequestSizeInMegabytes, dynamicRequestSizeCustomMetric, cpuLimit, memLimit, clientset, internalClientset) } @@ -123,7 +122,7 @@ initMemoryTotal argument is in megabytes memLimit argument is in megabytes, memLimit is a maximum amount of memory that can be consumed by a single pod cpuLimit argument is in millicores, cpuLimit is a maximum amount of cpu that can be consumed by a single pod */ -func newResourceConsumer(name, nsName, kind string, replicas, initCPUTotal, initMemoryTotal, initCustomMetric, consumptionTimeInSeconds, requestSizeInMillicores, +func newResourceConsumer(name, nsName string, kind schema.GroupVersionKind, replicas, initCPUTotal, initMemoryTotal, initCustomMetric, consumptionTimeInSeconds, requestSizeInMillicores, requestSizeInMegabytes int, requestSizeCustomMetric int, cpuLimit, memLimit int64, clientset clientset.Interface, internalClientset *internalclientset.Clientset) *ResourceConsumer { runServiceAndWorkloadForResourceConsumer(clientset, internalClientset, nsName, name, kind, replicas, cpuLimit, memLimit) @@ -243,7 +242,7 @@ func (rc *ResourceConsumer) sendConsumeCPURequest(millicores int) { defer cancel() err := wait.PollImmediate(serviceInitializationInterval, serviceInitializationTimeout, func() (bool, error) { - proxyRequest, err := framework.GetServicesProxyRequest(rc.clientSet, rc.clientSet.Core().RESTClient().Post()) + proxyRequest, err := framework.GetServicesProxyRequest(rc.clientSet, rc.clientSet.CoreV1().RESTClient().Post()) framework.ExpectNoError(err) req := proxyRequest.Namespace(rc.nsName). Context(ctx). @@ -270,7 +269,7 @@ func (rc *ResourceConsumer) sendConsumeMemRequest(megabytes int) { defer cancel() err := wait.PollImmediate(serviceInitializationInterval, serviceInitializationTimeout, func() (bool, error) { - proxyRequest, err := framework.GetServicesProxyRequest(rc.clientSet, rc.clientSet.Core().RESTClient().Post()) + proxyRequest, err := framework.GetServicesProxyRequest(rc.clientSet, rc.clientSet.CoreV1().RESTClient().Post()) framework.ExpectNoError(err) req := proxyRequest.Namespace(rc.nsName). Context(ctx). @@ -297,7 +296,7 @@ func (rc *ResourceConsumer) sendConsumeCustomMetric(delta int) { defer cancel() err := wait.PollImmediate(serviceInitializationInterval, serviceInitializationTimeout, func() (bool, error) { - proxyRequest, err := framework.GetServicesProxyRequest(rc.clientSet, rc.clientSet.Core().RESTClient().Post()) + proxyRequest, err := framework.GetServicesProxyRequest(rc.clientSet, rc.clientSet.CoreV1().RESTClient().Post()) framework.ExpectNoError(err) req := proxyRequest.Namespace(rc.nsName). Context(ctx). @@ -321,21 +320,21 @@ func (rc *ResourceConsumer) sendConsumeCustomMetric(delta int) { func (rc *ResourceConsumer) GetReplicas() int { switch rc.kind { case KindRC: - replicationController, err := rc.clientSet.Core().ReplicationControllers(rc.nsName).Get(rc.name, metav1.GetOptions{}) + replicationController, err := rc.clientSet.CoreV1().ReplicationControllers(rc.nsName).Get(rc.name, metav1.GetOptions{}) framework.ExpectNoError(err) if replicationController == nil { framework.Failf(rcIsNil) } return int(replicationController.Status.ReadyReplicas) case KindDeployment: - deployment, err := rc.clientSet.Extensions().Deployments(rc.nsName).Get(rc.name, metav1.GetOptions{}) + deployment, err := rc.clientSet.ExtensionsV1beta1().Deployments(rc.nsName).Get(rc.name, metav1.GetOptions{}) framework.ExpectNoError(err) if deployment == nil { framework.Failf(deploymentIsNil) } return int(deployment.Status.ReadyReplicas) case KindReplicaSet: - rs, err := rc.clientSet.Extensions().ReplicaSets(rc.nsName).Get(rc.name, metav1.GetOptions{}) + rs, err := rc.clientSet.ExtensionsV1beta1().ReplicaSets(rc.nsName).Get(rc.name, metav1.GetOptions{}) framework.ExpectNoError(err) if rs == nil { framework.Failf(rsIsNil) @@ -401,30 +400,16 @@ func (rc *ResourceConsumer) CleanUp() { rc.stopWaitGroup.Wait() // Wait some time to ensure all child goroutines are finished. time.Sleep(10 * time.Second) - kind, err := kindOf(rc.kind) - framework.ExpectNoError(err) + kind := rc.kind.GroupKind() framework.ExpectNoError(framework.DeleteResourceAndPods(rc.clientSet, rc.internalClientset, kind, rc.nsName, rc.name)) - framework.ExpectNoError(rc.clientSet.Core().Services(rc.nsName).Delete(rc.name, nil)) + framework.ExpectNoError(rc.clientSet.CoreV1().Services(rc.nsName).Delete(rc.name, nil)) framework.ExpectNoError(framework.DeleteResourceAndPods(rc.clientSet, rc.internalClientset, api.Kind("ReplicationController"), rc.nsName, rc.controllerName)) - framework.ExpectNoError(rc.clientSet.Core().Services(rc.nsName).Delete(rc.controllerName, nil)) -} - -func kindOf(kind string) (schema.GroupKind, error) { - switch kind { - case KindRC: - return api.Kind(kind), nil - case KindReplicaSet: - return extensionsinternal.Kind(kind), nil - case KindDeployment: - return extensionsinternal.Kind(kind), nil - default: - return schema.GroupKind{}, fmt.Errorf("Unsupported kind: %v", kind) - } + framework.ExpectNoError(rc.clientSet.CoreV1().Services(rc.nsName).Delete(rc.controllerName, nil)) } -func runServiceAndWorkloadForResourceConsumer(c clientset.Interface, internalClient internalclientset.Interface, ns, name, kind string, replicas int, cpuLimitMillis, memLimitMb int64) { +func runServiceAndWorkloadForResourceConsumer(c clientset.Interface, internalClient internalclientset.Interface, ns, name string, kind schema.GroupVersionKind, replicas int, cpuLimitMillis, memLimitMb int64) { By(fmt.Sprintf("Running consuming RC %s via %s with %v replicas", name, kind, replicas)) - _, err := c.Core().Services(ns).Create(&v1.Service{ + _, err := c.CoreV1().Services(ns).Create(&v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: name, }, @@ -478,7 +463,7 @@ func runServiceAndWorkloadForResourceConsumer(c clientset.Interface, internalCli By(fmt.Sprintf("Running controller")) controllerName := name + "-ctrl" - _, err = c.Core().Services(ns).Create(&v1.Service{ + _, err = c.CoreV1().Services(ns).Create(&v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: controllerName, }, @@ -521,19 +506,20 @@ func CreateCPUHorizontalPodAutoscaler(rc *ResourceConsumer, cpu, minReplicas, ma }, Spec: autoscalingv1.HorizontalPodAutoscalerSpec{ ScaleTargetRef: autoscalingv1.CrossVersionObjectReference{ - Kind: rc.kind, - Name: rc.name, + APIVersion: rc.kind.GroupVersion().String(), + Kind: rc.kind.Kind, + Name: rc.name, }, MinReplicas: &minReplicas, MaxReplicas: maxRepl, TargetCPUUtilizationPercentage: &cpu, }, } - hpa, errHPA := rc.clientSet.Autoscaling().HorizontalPodAutoscalers(rc.nsName).Create(hpa) + hpa, errHPA := rc.clientSet.AutoscalingV1().HorizontalPodAutoscalers(rc.nsName).Create(hpa) framework.ExpectNoError(errHPA) return hpa } func DeleteHorizontalPodAutoscaler(rc *ResourceConsumer, autoscalerName string) { - rc.clientSet.Autoscaling().HorizontalPodAutoscalers(rc.nsName).Delete(autoscalerName, nil) + rc.clientSet.AutoscalingV1().HorizontalPodAutoscalers(rc.nsName).Delete(autoscalerName, nil) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/configmap.go b/vendor/k8s.io/kubernetes/test/e2e/common/configmap.go index ba1d67133..54bae8aaa 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/configmap.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/configmap.go @@ -29,12 +29,17 @@ import ( var _ = Describe("[sig-api-machinery] ConfigMap", func() { f := framework.NewDefaultFramework("configmap") - It("should be consumable via environment variable [Conformance]", func() { + /* + Testname: configmap-in-env-field + Description: Make sure config map value can be used as an environment + variable in the container (on container.env field) + */ + framework.ConformanceIt("should be consumable via environment variable ", func() { name := "configmap-test-" + string(uuid.NewUUID()) configMap := newConfigMap(f, name) By(fmt.Sprintf("Creating configMap %v/%v", f.Namespace.Name, configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } @@ -72,12 +77,17 @@ var _ = Describe("[sig-api-machinery] ConfigMap", func() { }) }) - It("should be consumable via the environment [Conformance]", func() { + /* + Testname: configmap-envfrom-field + Description: Make sure config map value can be used as an source for + environment variables in the container (on container.envFrom field) + */ + framework.ConformanceIt("should be consumable via the environment ", func() { name := "configmap-test-" + string(uuid.NewUUID()) configMap := newEnvFromConfigMap(f, name) By(fmt.Sprintf("Creating configMap %v/%v", f.Namespace.Name, configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/configmap_volume.go b/vendor/k8s.io/kubernetes/test/e2e/common/configmap_volume.go index 8cca5e5ba..8989819cb 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/configmap_volume.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/configmap_volume.go @@ -32,11 +32,21 @@ import ( var _ = Describe("[sig-storage] ConfigMap", func() { f := framework.NewDefaultFramework("configmap") - It("should be consumable from pods in volume [Conformance]", func() { + /* + Testname: configmap-nomap-simple + Description: Make sure config map without mappings works by mounting it + to a volume with a custom path (mapping) on the pod with no other settings. + */ + framework.ConformanceIt("should be consumable from pods in volume ", func() { doConfigMapE2EWithoutMappings(f, 0, 0, nil) }) - It("should be consumable from pods in volume with defaultMode set [Conformance]", func() { + /* + Testname: configmap-nomap-default-mode + Description: Make sure config map without mappings works by mounting it + to a volume with a custom path (mapping) on the pod with defaultMode set + */ + framework.ConformanceIt("should be consumable from pods in volume with defaultMode set ", func() { defaultMode := int32(0400) doConfigMapE2EWithoutMappings(f, 0, 0, &defaultMode) }) @@ -46,7 +56,12 @@ var _ = Describe("[sig-storage] ConfigMap", func() { doConfigMapE2EWithoutMappings(f, 1000, 1001, &defaultMode) }) - It("should be consumable from pods in volume as non-root [Conformance]", func() { + /* + Testname: configmap-nomap-user + Description: Make sure config map without mappings works by mounting it + to a volume with a custom path (mapping) on the pod as non-root. + */ + framework.ConformanceIt("should be consumable from pods in volume as non-root ", func() { doConfigMapE2EWithoutMappings(f, 1000, 0, nil) }) @@ -54,16 +69,31 @@ var _ = Describe("[sig-storage] ConfigMap", func() { doConfigMapE2EWithoutMappings(f, 1000, 1001, nil) }) - It("should be consumable from pods in volume with mappings [Conformance]", func() { + /* + Testname: configmap-simple-mapped + Description: Make sure config map works by mounting it to a volume with + a custom path (mapping) on the pod with no other settings and make sure + the pod actually consumes it. + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings ", func() { doConfigMapE2EWithMappings(f, 0, 0, nil) }) - It("should be consumable from pods in volume with mappings and Item mode set[Conformance]", func() { + /* + Testname: configmap-with-item-mode-mapped + Description: Make sure config map works with an item mode (e.g. 0400) + for the config map item. + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings and Item mode set", func() { mode := int32(0400) doConfigMapE2EWithMappings(f, 0, 0, &mode) }) - It("should be consumable from pods in volume with mappings as non-root [Conformance]", func() { + /* + Testname: configmap-simple-user-mapped + Description: Make sure config map works when it is mounted as non-root. + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings as non-root ", func() { doConfigMapE2EWithMappings(f, 1000, 0, nil) }) @@ -71,7 +101,12 @@ var _ = Describe("[sig-storage] ConfigMap", func() { doConfigMapE2EWithMappings(f, 1000, 1001, nil) }) - It("updates should be reflected in volume [Conformance]", func() { + /* + Testname: configmap-update-test + Description: Make sure update operation is working on config map and + the result is observed on volumes mounted in containers. + */ + framework.ConformanceIt("updates should be reflected in volume ", func() { podLogTimeout := framework.GetPodSecretUpdateTimeout(f.ClientSet) containerTimeoutArg := fmt.Sprintf("--retry_time=%v", int(podLogTimeout.Seconds())) @@ -92,7 +127,7 @@ var _ = Describe("[sig-storage] ConfigMap", func() { By(fmt.Sprintf("Creating configMap with name %s", configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } @@ -142,14 +177,19 @@ var _ = Describe("[sig-storage] ConfigMap", func() { By(fmt.Sprintf("Updating configmap %v", configMap.Name)) configMap.ResourceVersion = "" // to force update configMap.Data["data-1"] = "value-2" - _, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Update(configMap) + _, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Update(configMap) Expect(err).NotTo(HaveOccurred(), "Failed to update configmap %q in namespace %q", configMap.Name, f.Namespace.Name) By("waiting to observe update in volume") Eventually(pollLogs, podLogTimeout, framework.Poll).Should(ContainSubstring("value-2")) }) - It("optional updates should be reflected in volume [Conformance]", func() { + /* + Testname: configmap-CUD-test + Description: Make sure Create, Update, Delete operations are all working + on config map and the result is observed on volumes mounted in containers. + */ + framework.ConformanceIt("optional updates should be reflected in volume ", func() { podLogTimeout := framework.GetPodSecretUpdateTimeout(f.ClientSet) containerTimeoutArg := fmt.Sprintf("--retry_time=%v", int(podLogTimeout.Seconds())) trueVal := true @@ -196,12 +236,12 @@ var _ = Describe("[sig-storage] ConfigMap", func() { By(fmt.Sprintf("Creating configMap with name %s", deleteConfigMap.Name)) var err error - if deleteConfigMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(deleteConfigMap); err != nil { + if deleteConfigMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(deleteConfigMap); err != nil { framework.Failf("unable to create test configMap %s: %v", deleteConfigMap.Name, err) } By(fmt.Sprintf("Creating configMap with name %s", updateConfigMap.Name)) - if updateConfigMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(updateConfigMap); err != nil { + if updateConfigMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(updateConfigMap); err != nil { framework.Failf("unable to create test configMap %s: %v", updateConfigMap.Name, err) } @@ -305,18 +345,18 @@ var _ = Describe("[sig-storage] ConfigMap", func() { Eventually(pollDeleteLogs, podLogTimeout, framework.Poll).Should(ContainSubstring("value-1")) By(fmt.Sprintf("Deleting configmap %v", deleteConfigMap.Name)) - err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Delete(deleteConfigMap.Name, &metav1.DeleteOptions{}) + err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Delete(deleteConfigMap.Name, &metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred(), "Failed to delete configmap %q in namespace %q", deleteConfigMap.Name, f.Namespace.Name) By(fmt.Sprintf("Updating configmap %v", updateConfigMap.Name)) updateConfigMap.ResourceVersion = "" // to force update delete(updateConfigMap.Data, "data-1") updateConfigMap.Data["data-3"] = "value-3" - _, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Update(updateConfigMap) + _, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Update(updateConfigMap) Expect(err).NotTo(HaveOccurred(), "Failed to update configmap %q in namespace %q", updateConfigMap.Name, f.Namespace.Name) By(fmt.Sprintf("Creating configMap with name %s", createConfigMap.Name)) - if createConfigMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(createConfigMap); err != nil { + if createConfigMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(createConfigMap); err != nil { framework.Failf("unable to create test configMap %s: %v", createConfigMap.Name, err) } @@ -327,7 +367,12 @@ var _ = Describe("[sig-storage] ConfigMap", func() { Eventually(pollDeleteLogs, podLogTimeout, framework.Poll).Should(ContainSubstring("Error reading file /etc/configmap-volumes/delete/data-1")) }) - It("should be consumable in multiple volumes in the same pod [Conformance]", func() { + /* + Testname: configmap-multiple-volumes + Description: Make sure config map works when it mounted as two different + volumes on the same node. + */ + framework.ConformanceIt("should be consumable in multiple volumes in the same pod ", func() { var ( name = "configmap-test-volume-" + string(uuid.NewUUID()) volumeName = "configmap-volume" @@ -339,7 +384,7 @@ var _ = Describe("[sig-storage] ConfigMap", func() { By(fmt.Sprintf("Creating configMap with name %s", configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } @@ -427,7 +472,7 @@ func doConfigMapE2EWithoutMappings(f *framework.Framework, uid, fsGroup int64, d By(fmt.Sprintf("Creating configMap with name %s", configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } @@ -507,7 +552,7 @@ func doConfigMapE2EWithMappings(f *framework.Framework, uid, fsGroup int64, item By(fmt.Sprintf("Creating configMap with name %s", configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/container_probe.go b/vendor/k8s.io/kubernetes/test/e2e/common/container_probe.go index 7611b2903..459df0d0c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/container_probe.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/container_probe.go @@ -49,7 +49,12 @@ var _ = framework.KubeDescribe("Probing container", func() { podClient = f.PodClient() }) - It("with readiness probe should not be ready before initial delay and never restart [Conformance]", func() { + /* + Testname: pods-readiness-probe-initial-delay + Description: Make sure that pod with readiness probe should not be + ready before initial delay and never restart. + */ + framework.ConformanceIt("with readiness probe should not be ready before initial delay and never restart ", func() { p := podClient.Create(makePodSpec(probe.withInitialDelay().build(), nil)) f.WaitForPodReady(p.Name) @@ -76,7 +81,12 @@ var _ = framework.KubeDescribe("Probing container", func() { Expect(restartCount == 0).To(BeTrue(), "pod should have a restart count of 0 but got %v", restartCount) }) - It("with readiness probe that fails should never be ready and never restart [Conformance]", func() { + /* + Testname: pods-readiness-probe-failure + Description: Make sure that pod with readiness probe that fails should + never be ready and never restart. + */ + framework.ConformanceIt("with readiness probe that fails should never be ready and never restart ", func() { p := podClient.Create(makePodSpec(probe.withFailing().build(), nil)) Consistently(func() (bool, error) { p, err := podClient.Get(p.Name, metav1.GetOptions{}) @@ -96,7 +106,12 @@ var _ = framework.KubeDescribe("Probing container", func() { Expect(restartCount == 0).To(BeTrue(), "pod should have a restart count of 0 but got %v", restartCount) }) - It("should be restarted with a exec \"cat /tmp/health\" liveness probe [Conformance]", func() { + /* + Testname: pods-cat-liveness-probe-restarted + Description: Make sure the pod is restarted with a cat /tmp/health + liveness probe. + */ + framework.ConformanceIt("should be restarted with a exec \"cat /tmp/health\" liveness probe", func() { runLivenessTest(f, &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "liveness-exec", @@ -123,7 +138,12 @@ var _ = framework.KubeDescribe("Probing container", func() { }, 1, defaultObservationTimeout) }) - It("should *not* be restarted with a exec \"cat /tmp/health\" liveness probe [Conformance]", func() { + /* + Testname: pods-cat-liveness-probe-not-restarted + Description: Make sure the pod is not restarted with a cat /tmp/health + liveness probe. + */ + framework.ConformanceIt("should *not* be restarted with a exec \"cat /tmp/health\" liveness probe", func() { runLivenessTest(f, &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "liveness-exec", @@ -150,7 +170,12 @@ var _ = framework.KubeDescribe("Probing container", func() { }, 0, defaultObservationTimeout) }) - It("should be restarted with a /healthz http liveness probe [Conformance]", func() { + /* + Testname: pods-http-liveness-probe-restarted + Description: Make sure when http liveness probe fails, the pod should + be restarted. + */ + framework.ConformanceIt("should be restarted with a /healthz http liveness probe ", func() { runLivenessTest(f, &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "liveness-http", @@ -179,7 +204,12 @@ var _ = framework.KubeDescribe("Probing container", func() { }) // Slow by design (5 min) - It("should have monotonically increasing restart count [Conformance] [Slow]", func() { + /* + Testname: pods-restart-count + Description: Make sure when a pod gets restarted, its start count + should increase. + */ + framework.ConformanceIt("should have monotonically increasing restart count [Slow]", func() { runLivenessTest(f, &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "liveness-http", @@ -207,7 +237,12 @@ var _ = framework.KubeDescribe("Probing container", func() { }, 5, time.Minute*5) }) - It("should *not* be restarted with a /healthz http liveness probe [Conformance]", func() { + /* + Testname: pods-http-liveness-probe-not-restarted + Description: Make sure when http liveness probe succeeds, the pod + should not be restarted. + */ + framework.ConformanceIt("should *not* be restarted with a /healthz http liveness probe ", func() { runLivenessTest(f, &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "liveness-http", @@ -236,7 +271,12 @@ var _ = framework.KubeDescribe("Probing container", func() { }, 0, defaultObservationTimeout) }) - It("should be restarted with a docker exec liveness probe with timeout [Conformance]", func() { + /* + Testname: pods-docker-liveness-probe-timeout + Description: Make sure that the pod is restarted with a docker exec + liveness probe with timeout. + */ + framework.ConformanceIt("should be restarted with a docker exec liveness probe with timeout ", func() { // TODO: enable this test once the default exec handler supports timeout. framework.Skipf("The default exec handler, dockertools.NativeExecHandler, does not support timeouts due to a limitation in the Docker Remote API") runLivenessTest(f, &v1.Pod{ diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/docker_containers.go b/vendor/k8s.io/kubernetes/test/e2e/common/docker_containers.go index c527976d5..734e02fa8 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/docker_containers.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/docker_containers.go @@ -22,20 +22,30 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/kubernetes/test/e2e/framework" imageutils "k8s.io/kubernetes/test/utils/image" - - . "github.com/onsi/ginkgo" ) var _ = framework.KubeDescribe("Docker Containers", func() { f := framework.NewDefaultFramework("containers") - It("should use the image defaults if command and args are blank [Conformance]", func() { + /* + Testname: container-without-command-args + Description: When a Pod is created neither 'command' nor 'args' are + provided for a Container, ensure that the docker image's default + command and args are used. + */ + framework.ConformanceIt("should use the image defaults if command and args are blank ", func() { f.TestContainerOutput("use defaults", entrypointTestPod(), 0, []string{ "[/ep default arguments]", }) }) - It("should be able to override the image's default arguments (docker cmd) [Conformance]", func() { + /* + Testname: container-with-args + Description: When a Pod is created and 'args' are provided for a + Container, ensure that they take precedent to the docker image's + default arguments, but that the default command is used. + */ + framework.ConformanceIt("should be able to override the image's default arguments (docker cmd) ", func() { pod := entrypointTestPod() pod.Spec.Containers[0].Args = []string{"override", "arguments"} @@ -46,7 +56,13 @@ var _ = framework.KubeDescribe("Docker Containers", func() { // Note: when you override the entrypoint, the image's arguments (docker cmd) // are ignored. - It("should be able to override the image's default commmand (docker entrypoint) [Conformance]", func() { + /* + Testname: container-with-command + Description: When a Pod is created and 'command' is provided for a + Container, ensure that it takes precedent to the docker image's default + command. + */ + framework.ConformanceIt("should be able to override the image's default commmand (docker entrypoint) ", func() { pod := entrypointTestPod() pod.Spec.Containers[0].Command = []string{"/ep-2"} @@ -55,7 +71,13 @@ var _ = framework.KubeDescribe("Docker Containers", func() { }) }) - It("should be able to override the image's default command and arguments [Conformance]", func() { + /* + Testname: container-with-command-args + Description: When a Pod is created and 'command' and 'args' are + provided for a Container, ensure that they take precedent to the docker + image's default command and arguments. + */ + framework.ConformanceIt("should be able to override the image's default command and arguments ", func() { pod := entrypointTestPod() pod.Spec.Containers[0].Command = []string{"/ep-2"} pod.Spec.Containers[0].Args = []string{"override", "arguments"} diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/downward_api.go b/vendor/k8s.io/kubernetes/test/e2e/common/downward_api.go index 1f4c5f10b..4b4b76a36 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/downward_api.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/downward_api.go @@ -29,12 +29,20 @@ import ( . "github.com/onsi/ginkgo" ) -var hostIPVersion = utilversion.MustParseSemantic("v1.8.0") +var ( + hostIPVersion = utilversion.MustParseSemantic("v1.8.0") + podUIDVersion = utilversion.MustParseSemantic("v1.8.0") +) var _ = Describe("[sig-api-machinery] Downward API", func() { f := framework.NewDefaultFramework("downward-api") - It("should provide pod name and namespace as env vars [Conformance]", func() { + /* + Testname: downwardapi-env-name-namespace + Description: Ensure that downward API can provide pod's name and + namespaces as environment variables. + */ + framework.ConformanceIt("should provide pod name and namespace as env vars ", func() { podName := "downward-api-" + string(uuid.NewUUID()) env := []v1.EnvVar{ { @@ -65,7 +73,12 @@ var _ = Describe("[sig-api-machinery] Downward API", func() { testDownwardAPI(f, podName, env, expectations) }) - It("should provide pod IP as an env var [Conformance]", func() { + /* + Testname: downwardapi-env-pod-ip + Description: Ensure that downward API can provide an IP address for + pod as an environment variable. + */ + framework.ConformanceIt("should provide pod IP as an env var ", func() { podName := "downward-api-" + string(uuid.NewUUID()) env := []v1.EnvVar{ { @@ -86,7 +99,12 @@ var _ = Describe("[sig-api-machinery] Downward API", func() { testDownwardAPI(f, podName, env, expectations) }) - It("should provide host IP as an env var [Conformance]", func() { + /* + Testname: downwardapi-env-host-ip + Description: Ensure that downward API can provide an IP address for + host node as an environment variable. + */ + framework.ConformanceIt("should provide host IP as an env var ", func() { framework.SkipUnlessServerVersionGTE(hostIPVersion, f.ClientSet.Discovery()) podName := "downward-api-" + string(uuid.NewUUID()) env := []v1.EnvVar{ @@ -108,7 +126,12 @@ var _ = Describe("[sig-api-machinery] Downward API", func() { testDownwardAPI(f, podName, env, expectations) }) - It("should provide container's limits.cpu/memory and requests.cpu/memory as env vars [Conformance]", func() { + /* + Testname: downwardapi-env-limits-requests + Description: Ensure that downward API can provide CPU/memory limit + and CPU/memory request as environment variables. + */ + framework.ConformanceIt("should provide container's limits.cpu/memory and requests.cpu/memory as env vars ", func() { podName := "downward-api-" + string(uuid.NewUUID()) env := []v1.EnvVar{ { @@ -145,16 +168,22 @@ var _ = Describe("[sig-api-machinery] Downward API", func() { }, } expectations := []string{ - fmt.Sprintf("CPU_LIMIT=2"), - fmt.Sprintf("MEMORY_LIMIT=67108864"), - fmt.Sprintf("CPU_REQUEST=1"), - fmt.Sprintf("MEMORY_REQUEST=33554432"), + "CPU_LIMIT=2", + "MEMORY_LIMIT=67108864", + "CPU_REQUEST=1", + "MEMORY_REQUEST=33554432", } testDownwardAPI(f, podName, env, expectations) }) - It("should provide default limits.cpu/memory from node allocatable [Conformance]", func() { + /* + Testname: downwardapi-env-default-allocatable + Description: Ensure that downward API can provide default node + allocatable values for CPU and memory as environment variables if CPU + and memory limits are not specified for a container. + */ + framework.ConformanceIt("should provide default limits.cpu/memory from node allocatable ", func() { podName := "downward-api-" + string(uuid.NewUUID()) env := []v1.EnvVar{ { @@ -175,8 +204,8 @@ var _ = Describe("[sig-api-machinery] Downward API", func() { }, } expectations := []string{ - fmt.Sprintf("CPU_LIMIT=[1-9]"), - fmt.Sprintf("MEMORY_LIMIT=[1-9]"), + "CPU_LIMIT=[1-9]", + "MEMORY_LIMIT=[1-9]", } pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ @@ -198,6 +227,108 @@ var _ = Describe("[sig-api-machinery] Downward API", func() { testDownwardAPIUsingPod(f, pod, env, expectations) }) + + /* + Testname: downwardapi-env-pod-uid + Description: Ensure that downward API can provide pod UID as an + environment variable. + */ + framework.ConformanceIt("should provide pod UID as env vars ", func() { + framework.SkipUnlessServerVersionGTE(podUIDVersion, f.ClientSet.Discovery()) + podName := "downward-api-" + string(uuid.NewUUID()) + env := []v1.EnvVar{ + { + Name: "POD_UID", + ValueFrom: &v1.EnvVarSource{ + FieldRef: &v1.ObjectFieldSelector{ + APIVersion: "v1", + FieldPath: "metadata.uid", + }, + }, + }, + } + + expectations := []string{ + "POD_UID=[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}", + } + + testDownwardAPI(f, podName, env, expectations) + }) +}) + +var _ = framework.KubeDescribe("Downward API [Serial] [Disruptive]", func() { + f := framework.NewDefaultFramework("downward-api") + + Context("Downward API tests for local ephemeral storage", func() { + BeforeEach(func() { + framework.SkipUnlessLocalEphemeralStorageEnabled() + }) + + It("should provide container's limits.ephemeral-storage and requests.ephemeral-storage as env vars", func() { + podName := "downward-api-" + string(uuid.NewUUID()) + env := []v1.EnvVar{ + { + Name: "EPHEMERAL_STORAGE_LIMIT", + ValueFrom: &v1.EnvVarSource{ + ResourceFieldRef: &v1.ResourceFieldSelector{ + Resource: "limits.ephemeral-storage", + }, + }, + }, + { + Name: "EPHEMERAL_STORAGE_REQUEST", + ValueFrom: &v1.EnvVarSource{ + ResourceFieldRef: &v1.ResourceFieldSelector{ + Resource: "requests.ephemeral-storage", + }, + }, + }, + } + expectations := []string{ + fmt.Sprintf("EPHEMERAL_STORAGE_LIMIT=%d", 64*1024*1024), + fmt.Sprintf("EPHEMERAL_STORAGE_REQUEST=%d", 32*1024*1024), + } + + testDownwardAPIForEphemeralStorage(f, podName, env, expectations) + }) + + It("should provide default limits.ephemeral-storage from node allocatable", func() { + podName := "downward-api-" + string(uuid.NewUUID()) + env := []v1.EnvVar{ + { + Name: "EPHEMERAL_STORAGE_LIMIT", + ValueFrom: &v1.EnvVarSource{ + ResourceFieldRef: &v1.ResourceFieldSelector{ + Resource: "limits.ephemeral-storage", + }, + }, + }, + } + expectations := []string{ + "EPHEMERAL_STORAGE_LIMIT=[1-9]", + } + pod := &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: podName, + Labels: map[string]string{"name": podName}, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "dapi-container", + Image: busyboxImage, + Command: []string{"sh", "-c", "env"}, + Env: env, + }, + }, + RestartPolicy: v1.RestartPolicyNever, + }, + } + + testDownwardAPIUsingPod(f, pod, env, expectations) + }) + }) + }) func testDownwardAPI(f *framework.Framework, podName string, env []v1.EnvVar, expectations []string) { @@ -232,6 +363,36 @@ func testDownwardAPI(f *framework.Framework, podName string, env []v1.EnvVar, ex testDownwardAPIUsingPod(f, pod, env, expectations) } +func testDownwardAPIForEphemeralStorage(f *framework.Framework, podName string, env []v1.EnvVar, expectations []string) { + pod := &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: podName, + Labels: map[string]string{"name": podName}, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "dapi-container", + Image: busyboxImage, + Command: []string{"sh", "-c", "env"}, + Resources: v1.ResourceRequirements{ + Requests: v1.ResourceList{ + v1.ResourceEphemeralStorage: resource.MustParse("32Mi"), + }, + Limits: v1.ResourceList{ + v1.ResourceEphemeralStorage: resource.MustParse("64Mi"), + }, + }, + Env: env, + }, + }, + RestartPolicy: v1.RestartPolicyNever, + }, + } + + testDownwardAPIUsingPod(f, pod, env, expectations) +} + func testDownwardAPIUsingPod(f *framework.Framework, pod *v1.Pod, env []v1.EnvVar, expectations []string) { f.TestContainerOutputRegexp("downward api env vars", pod, 0, expectations) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/downwardapi_volume.go b/vendor/k8s.io/kubernetes/test/e2e/common/downwardapi_volume.go index 34bb566ee..cd0855d45 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/downwardapi_volume.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/downwardapi_volume.go @@ -39,7 +39,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() { podClient = f.PodClient() }) - It("should provide podname only [Conformance]", func() { + /* + Testname: downwardapi-volume-podname + Description: Ensure that downward API can provide pod's name through + DownwardAPIVolumeFiles. + */ + framework.ConformanceIt("should provide podname only ", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumePodForSimpleTest(podName, "/etc/podname") @@ -48,7 +53,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() { }) }) - It("should set DefaultMode on files [Conformance]", func() { + /* + Testname: downwardapi-volume-set-default-mode + Description: Ensure that downward API can set default file premission + mode for DownwardAPIVolumeFiles if no mode is specified. + */ + framework.ConformanceIt("should set DefaultMode on files ", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) defaultMode := int32(0400) pod := downwardAPIVolumePodForModeTest(podName, "/etc/podname", nil, &defaultMode) @@ -58,7 +68,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() { }) }) - It("should set mode on item file [Conformance]", func() { + /* + Testname: downwardapi-volume-set-mode + Description: Ensure that downward API can set file premission mode for + DownwardAPIVolumeFiles. + */ + framework.ConformanceIt("should set mode on item file ", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) mode := int32(0400) pod := downwardAPIVolumePodForModeTest(podName, "/etc/podname", &mode, nil) @@ -97,7 +112,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() { }) }) - It("should update labels on modification [Conformance]", func() { + /* + Testname: downwardapi-volume-update-label + Description: Ensure that downward API updates labels in + DownwardAPIVolumeFiles when pod's labels get modified. + */ + framework.ConformanceIt("should update labels on modification ", func() { labels := map[string]string{} labels["key1"] = "value1" labels["key2"] = "value2" @@ -124,7 +144,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() { podLogTimeout, framework.Poll).Should(ContainSubstring("key3=\"value3\"\n")) }) - It("should update annotations on modification [Conformance]", func() { + /* + Testname: downwardapi-volume-update-annotation + Description: Ensure that downward API updates annotations in + DownwardAPIVolumeFiles when pod's annotations get modified. + */ + framework.ConformanceIt("should update annotations on modification ", func() { annotations := map[string]string{} annotations["builder"] = "bar" podName := "annotationupdate" + string(uuid.NewUUID()) @@ -153,7 +178,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() { podLogTimeout, framework.Poll).Should(ContainSubstring("builder=\"foo\"\n")) }) - It("should provide container's cpu limit [Conformance]", func() { + /* + Testname: downwardapi-volume-cpu-limit + Description: Ensure that downward API can provide container's CPU limit + through DownwardAPIVolumeFiles. + */ + framework.ConformanceIt("should provide container's cpu limit ", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForContainerResources(podName, "/etc/cpu_limit") @@ -162,7 +192,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() { }) }) - It("should provide container's memory limit [Conformance]", func() { + /* + Testname: downwardapi-volume-memory-limit + Description: Ensure that downward API can provide container's memory + limit through DownwardAPIVolumeFiles. + */ + framework.ConformanceIt("should provide container's memory limit ", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForContainerResources(podName, "/etc/memory_limit") @@ -171,7 +206,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() { }) }) - It("should provide container's cpu request [Conformance]", func() { + /* + Testname: downwardapi-volume-cpu-request + Description: Ensure that downward API can provide container's CPU + request through DownwardAPIVolumeFiles. + */ + framework.ConformanceIt("should provide container's cpu request ", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForContainerResources(podName, "/etc/cpu_request") @@ -180,7 +220,12 @@ var _ = Describe("[sig-storage] Downward API volume", func() { }) }) - It("should provide container's memory request [Conformance]", func() { + /* + Testname: downwardapi-volume-memory-request + Description: Ensure that downward API can provide container's memory + request through DownwardAPIVolumeFiles. + */ + framework.ConformanceIt("should provide container's memory request ", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForContainerResources(podName, "/etc/memory_request") @@ -189,14 +234,26 @@ var _ = Describe("[sig-storage] Downward API volume", func() { }) }) - It("should provide node allocatable (cpu) as default cpu limit if the limit is not set [Conformance]", func() { + /* + Testname: downwardapi-volume-default-cpu + Description: Ensure that downward API can provide default node + allocatable value for CPU through DownwardAPIVolumeFiles if CPU + limit is not specified for a container. + */ + framework.ConformanceIt("should provide node allocatable (cpu) as default cpu limit if the limit is not set ", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForDefaultContainerResources(podName, "/etc/cpu_limit") f.TestContainerOutputRegexp("downward API volume plugin", pod, 0, []string{"[1-9]"}) }) - It("should provide node allocatable (memory) as default memory limit if the limit is not set [Conformance]", func() { + /* + Testname: downwardapi-volume-default-memory + Description: Ensure that downward API can provide default node + allocatable value for memory through DownwardAPIVolumeFiles if memory + limit is not specified for a container. + */ + framework.ConformanceIt("should provide node allocatable (memory) as default memory limit if the limit is not set ", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForDefaultContainerResources(podName, "/etc/memory_limit") diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/empty_dir.go b/vendor/k8s.io/kubernetes/test/e2e/common/empty_dir.go index 06b7fc271..bc6ad4b6c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/empty_dir.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/empty_dir.go @@ -38,89 +38,171 @@ var ( testImageNonRootUid = imageutils.GetE2EImage(imageutils.MounttestUser) ) -var _ = framework.KubeDescribe("EmptyDir volumes", func() { - +var _ = Describe("[sig-storage] EmptyDir volumes", func() { f := framework.NewDefaultFramework("emptydir") Context("when FSGroup is specified [Feature:FSGroup]", func() { - It("new files should be created with FSGroup ownership when container is root [sig-storage]", func() { + It("new files should be created with FSGroup ownership when container is root", func() { doTestSetgidFSGroup(f, testImageRootUid, v1.StorageMediumMemory) }) - It("new files should be created with FSGroup ownership when container is non-root [sig-storage]", func() { + It("new files should be created with FSGroup ownership when container is non-root", func() { doTestSetgidFSGroup(f, testImageNonRootUid, v1.StorageMediumMemory) }) - It("nonexistent volume subPath should have the correct mode and owner using FSGroup [sig-storage]", func() { + It("nonexistent volume subPath should have the correct mode and owner using FSGroup", func() { doTestSubPathFSGroup(f, testImageNonRootUid, v1.StorageMediumMemory) }) - It("files with FSGroup ownership should support (root,0644,tmpfs) [sig-storage]", func() { + It("files with FSGroup ownership should support (root,0644,tmpfs)", func() { doTest0644FSGroup(f, testImageRootUid, v1.StorageMediumMemory) }) - It("volume on default medium should have the correct mode using FSGroup [sig-storage]", func() { + It("volume on default medium should have the correct mode using FSGroup", func() { doTestVolumeModeFSGroup(f, testImageRootUid, v1.StorageMediumDefault) }) - It("volume on tmpfs should have the correct mode using FSGroup [sig-storage]", func() { + It("volume on tmpfs should have the correct mode using FSGroup", func() { doTestVolumeModeFSGroup(f, testImageRootUid, v1.StorageMediumMemory) }) }) - It("volume on tmpfs should have the correct mode [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-mode-tmpfs + Description: For a Pod created with an 'emptyDir' Volume with 'medium' + of 'Memory', ensure the volume has 0777 unix file permissions and tmpfs + mount type. + */ + framework.ConformanceIt("volume on tmpfs should have the correct mode", func() { doTestVolumeMode(f, testImageRootUid, v1.StorageMediumMemory) }) - It("should support (root,0644,tmpfs) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-root-0644-tmpfs + Description: For a Pod created with an 'emptyDir' Volume with 'medium' + of 'Memory', ensure a root owned file with 0644 unix file permissions + is created correctly, has tmpfs mount type, and enforces the permissions. + */ + framework.ConformanceIt("should support (root,0644,tmpfs)", func() { doTest0644(f, testImageRootUid, v1.StorageMediumMemory) }) - It("should support (root,0666,tmpfs) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-root-0666-tmpfs + Description: For a Pod created with an 'emptyDir' Volume with 'medium' + of 'Memory', ensure a root owned file with 0666 unix file permissions + is created correctly, has tmpfs mount type, and enforces the permissions. + */ + framework.ConformanceIt("should support (root,0666,tmpfs)", func() { doTest0666(f, testImageRootUid, v1.StorageMediumMemory) }) - It("should support (root,0777,tmpfs) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-root-0777-tmpfs + Description: For a Pod created with an 'emptyDir' Volume with 'medium' + of 'Memory', ensure a root owned file with 0777 unix file permissions + is created correctly, has tmpfs mount type, and enforces the permissions. + */ + framework.ConformanceIt("should support (root,0777,tmpfs)", func() { doTest0777(f, testImageRootUid, v1.StorageMediumMemory) }) - It("should support (non-root,0644,tmpfs) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-user-0644-tmpfs + Description: For a Pod created with an 'emptyDir' Volume with 'medium' + of 'Memory', ensure a user owned file with 0644 unix file permissions + is created correctly, has tmpfs mount type, and enforces the permissions. + */ + framework.ConformanceIt("should support (non-root,0644,tmpfs)", func() { doTest0644(f, testImageNonRootUid, v1.StorageMediumMemory) }) - It("should support (non-root,0666,tmpfs) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-user-0666-tmpfs + Description: For a Pod created with an 'emptyDir' Volume with 'medium' + of 'Memory', ensure a user owned file with 0666 unix file permissions + is created correctly, has tmpfs mount type, and enforces the permissions. + */ + framework.ConformanceIt("should support (non-root,0666,tmpfs)", func() { doTest0666(f, testImageNonRootUid, v1.StorageMediumMemory) }) - It("should support (non-root,0777,tmpfs) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-user-0777-tmpfs + Description: For a Pod created with an 'emptyDir' Volume with 'medium' + of 'Memory', ensure a user owned file with 0777 unix file permissions + is created correctly, has tmpfs mount type, and enforces the permissions. + */ + framework.ConformanceIt("should support (non-root,0777,tmpfs)", func() { doTest0777(f, testImageNonRootUid, v1.StorageMediumMemory) }) - It("volume on default medium should have the correct mode [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-mode + Description: For a Pod created with an 'emptyDir' Volume, ensure the + volume has 0777 unix file permissions. + */ + framework.ConformanceIt("volume on default medium should have the correct mode", func() { doTestVolumeMode(f, testImageRootUid, v1.StorageMediumDefault) }) - It("should support (root,0644,default) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-root-0644 + Description: For a Pod created with an 'emptyDir' Volume, ensure a + root owned file with 0644 unix file permissions is created and enforced + correctly. + */ + framework.ConformanceIt("should support (root,0644,default)", func() { doTest0644(f, testImageRootUid, v1.StorageMediumDefault) }) - It("should support (root,0666,default) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-root-0666 + Description: For a Pod created with an 'emptyDir' Volume, ensure a + root owned file with 0666 unix file permissions is created and enforced + correctly. + */ + framework.ConformanceIt("should support (root,0666,default)", func() { doTest0666(f, testImageRootUid, v1.StorageMediumDefault) }) - It("should support (root,0777,default) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-root-0777 + Description: For a Pod created with an 'emptyDir' Volume, ensure a + root owned file with 0777 unix file permissions is created and enforced + correctly. + */ + framework.ConformanceIt("should support (root,0777,default)", func() { doTest0777(f, testImageRootUid, v1.StorageMediumDefault) }) - It("should support (non-root,0644,default) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-user-0644 + Description: For a Pod created with an 'emptyDir' Volume, ensure a + user owned file with 0644 unix file permissions is created and enforced + correctly. + */ + framework.ConformanceIt("should support (non-root,0644,default)", func() { doTest0644(f, testImageNonRootUid, v1.StorageMediumDefault) }) - It("should support (non-root,0666,default) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-user-0666 + Description: For a Pod created with an 'emptyDir' Volume, ensure a + user owned file with 0666 unix file permissions is created and enforced + correctly. + */ + framework.ConformanceIt("should support (non-root,0666,default)", func() { doTest0666(f, testImageNonRootUid, v1.StorageMediumDefault) }) - It("should support (non-root,0777,default) [Conformance] [sig-storage]", func() { + /* + Testname: volume-emptydir-user-0777 + Description: For a Pod created with an 'emptyDir' Volume, ensure a + user owned file with 0777 unix file permissions is created and enforced + correctly. + */ + framework.ConformanceIt("should support (non-root,0777,default)", func() { doTest0777(f, testImageNonRootUid, v1.StorageMediumDefault) }) }) diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/events.go b/vendor/k8s.io/kubernetes/test/e2e/common/events.go index 174f95106..47d02df79 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/events.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/events.go @@ -48,14 +48,14 @@ func ObserveNodeUpdateAfterAction(f *framework.Framework, nodeName string, nodeP &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { options.FieldSelector = nodeSelector.String() - ls, err := f.ClientSet.Core().Nodes().List(options) + ls, err := f.ClientSet.CoreV1().Nodes().List(options) return ls, err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { // Signal parent goroutine that watching has begun. defer informerStartedGuard.Do(func() { close(informerStartedChan) }) options.FieldSelector = nodeSelector.String() - w, err := f.ClientSet.Core().Nodes().Watch(options) + w, err := f.ClientSet.CoreV1().Nodes().Watch(options) return w, err }, }, @@ -105,13 +105,13 @@ func ObserveEventAfterAction(f *framework.Framework, eventPredicate func(*v1.Eve _, controller := cache.NewInformer( &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - ls, err := f.ClientSet.Core().Events(f.Namespace.Name).List(options) + ls, err := f.ClientSet.CoreV1().Events(f.Namespace.Name).List(options) return ls, err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { // Signal parent goroutine that watching has begun. defer informerStartedGuard.Do(func() { close(informerStartedChan) }) - w, err := f.ClientSet.Core().Events(f.Namespace.Name).Watch(options) + w, err := f.ClientSet.CoreV1().Events(f.Namespace.Name).Watch(options) return w, err }, }, diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/expansion.go b/vendor/k8s.io/kubernetes/test/e2e/common/expansion.go index d8f6ecf34..303df66f9 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/expansion.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/expansion.go @@ -21,8 +21,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" ) // These tests exercise the Kubernetes expansion syntax $(VAR). @@ -31,7 +29,12 @@ import ( var _ = framework.KubeDescribe("Variable Expansion", func() { f := framework.NewDefaultFramework("var-expansion") - It("should allow composing env vars into new env vars [Conformance]", func() { + /* + Testname: var-expansion-env + Description: Make sure environment variables can be set using an + expansion of previously defined environment variables + */ + framework.ConformanceIt("should allow composing env vars into new env vars ", func() { podName := "var-expansion-" + string(uuid.NewUUID()) pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ @@ -71,7 +74,12 @@ var _ = framework.KubeDescribe("Variable Expansion", func() { }) }) - It("should allow substituting values in a container's command [Conformance]", func() { + /* + Testname: var-expansion-command + Description: Make sure a container's commands can be set using an + expansion of environment variables. + */ + framework.ConformanceIt("should allow substituting values in a container's command ", func() { podName := "var-expansion-" + string(uuid.NewUUID()) pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ @@ -101,7 +109,12 @@ var _ = framework.KubeDescribe("Variable Expansion", func() { }) }) - It("should allow substituting values in a container's args [Conformance]", func() { + /* + Testname: var-expansion-arg + Description: Make sure a container's args can be set using an + expansion of environment variables. + */ + framework.ConformanceIt("should allow substituting values in a container's args ", func() { podName := "var-expansion-" + string(uuid.NewUUID()) pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/host_path.go b/vendor/k8s.io/kubernetes/test/e2e/common/host_path.go index dbe80924f..bb144027d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/host_path.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/host_path.go @@ -31,7 +31,7 @@ import ( //TODO : Consolidate this code with the code for emptyDir. //This will require some smart. -var _ = framework.KubeDescribe("HostPath", func() { +var _ = Describe("[sig-storage] HostPath", func() { f := framework.NewDefaultFramework("hostpath") BeforeEach(func() { @@ -40,7 +40,13 @@ var _ = framework.KubeDescribe("HostPath", func() { _ = os.Remove("/tmp/test-file") }) - It("should give a volume the correct mode [Conformance] [sig-storage]", func() { + /* + Testname: volume-hostpath-mode + Description: For a Pod created with a 'HostPath' Volume, ensure the + volume is a directory with 0777 unix file permissions and that is has + the sticky bit (mode flag t) set. + */ + framework.ConformanceIt("should give a volume the correct mode", func() { source := &v1.HostPathVolumeSource{ Path: "/tmp", } @@ -51,12 +57,12 @@ var _ = framework.KubeDescribe("HostPath", func() { fmt.Sprintf("--file_mode=%v", volumePath), } f.TestContainerOutput("hostPath mode", pod, 0, []string{ - "mode of file \"/test-volume\": dtrwxrwxrwx", // we expect the sticky bit (mode flag t) to be set for the dir + "mode of file \"/test-volume\": dtrwxrwx", // we expect the sticky bit (mode flag t) to be set for the dir }) }) // This test requires mounting a folder into a container with write privileges. - It("should support r/w [sig-storage]", func() { + It("should support r/w", func() { filePath := path.Join(volumePath, "test-file") retryDuration := 180 source := &v1.HostPathVolumeSource{ @@ -80,7 +86,7 @@ var _ = framework.KubeDescribe("HostPath", func() { }) }) - It("should support subPath [sig-storage]", func() { + It("should support subPath", func() { subPath := "sub-path" fileName := "test-file" retryDuration := 180 @@ -112,7 +118,7 @@ var _ = framework.KubeDescribe("HostPath", func() { }) }) - It("should support existing directory subPath [sig-storage]", func() { + It("should support existing directory subPath", func() { framework.SkipUnlessSSHKeyPresent() subPath := "sub-path" @@ -158,7 +164,7 @@ var _ = framework.KubeDescribe("HostPath", func() { }) // TODO consolidate common code of this test and above - It("should support existing single file subPath [sig-storage]", func() { + It("should support existing single file subPath", func() { framework.SkipUnlessSSHKeyPresent() subPath := "sub-path-test-file" diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/kubelet_etc_hosts.go b/vendor/k8s.io/kubernetes/test/e2e/common/kubelet_etc_hosts.go index 72ba28c5e..944388652 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/kubelet_etc_hosts.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/kubelet_etc_hosts.go @@ -48,7 +48,12 @@ var _ = framework.KubeDescribe("KubeletManagedEtcHosts", func() { f: f, } - It("should test kubelet managed /etc/hosts file [Conformance]", func() { + /* + Testname: kubelet-managed-etc-hosts + Description: Make sure Kubelet correctly manages /etc/hosts and mounts + it into the container. + */ + framework.ConformanceIt("should test kubelet managed /etc/hosts file ", func() { By("Setting up the test") config.setup() diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/networking.go b/vendor/k8s.io/kubernetes/test/e2e/common/networking.go index bacefe9c9..1cb460719 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/networking.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/networking.go @@ -30,28 +30,48 @@ var _ = Describe("[sig-network] Networking", func() { // Try to hit all endpoints through a test container, retry 5 times, // expect exactly one unique hostname. Each of these endpoints reports // its own hostname. - It("should function for intra-pod communication: http [Conformance]", func() { + /* + Testname: networking-intra-pod-http + Description: Try to hit test endpoints from a test container and make + sure each of them can report a unique hostname. + */ + framework.ConformanceIt("should function for intra-pod communication: http ", func() { config := framework.NewCoreNetworkingTestConfig(f) for _, endpointPod := range config.EndpointPods { config.DialFromTestContainer("http", endpointPod.Status.PodIP, framework.EndpointHttpPort, config.MaxTries, 0, sets.NewString(endpointPod.Name)) } }) - It("should function for intra-pod communication: udp [Conformance]", func() { + /* + Testname: networking-intra-pod-udp + Description: Try to hit test endpoints from a test container using udp + and make sure each of them can report a unique hostname. + */ + framework.ConformanceIt("should function for intra-pod communication: udp ", func() { config := framework.NewCoreNetworkingTestConfig(f) for _, endpointPod := range config.EndpointPods { config.DialFromTestContainer("udp", endpointPod.Status.PodIP, framework.EndpointUdpPort, config.MaxTries, 0, sets.NewString(endpointPod.Name)) } }) - It("should function for node-pod communication: http [Conformance]", func() { + /* + Testname: networking-node-pod-http + Description: Try to hit test endpoints from the pod and make sure each + of them can report a unique hostname. + */ + framework.ConformanceIt("should function for node-pod communication: http ", func() { config := framework.NewCoreNetworkingTestConfig(f) for _, endpointPod := range config.EndpointPods { config.DialFromNode("http", endpointPod.Status.PodIP, framework.EndpointHttpPort, config.MaxTries, 0, sets.NewString(endpointPod.Name)) } }) - It("should function for node-pod communication: udp [Conformance]", func() { + /* + Testname: networking-node-pod-udp + Description: Try to hit test endpoints from the pod using udp and make sure + each of them can report a unique hostname. + */ + framework.ConformanceIt("should function for node-pod communication: udp ", func() { config := framework.NewCoreNetworkingTestConfig(f) for _, endpointPod := range config.EndpointPods { config.DialFromNode("udp", endpointPod.Status.PodIP, framework.EndpointUdpPort, config.MaxTries, 0, sets.NewString(endpointPod.Name)) diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/pods.go b/vendor/k8s.io/kubernetes/test/e2e/common/pods.go index a793f71e2..755011fb5 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/pods.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/pods.go @@ -128,7 +128,12 @@ var _ = framework.KubeDescribe("Pods", func() { podClient = f.PodClient() }) - It("should get a host IP [Conformance]", func() { + /* + Testname: pods-created-pod-assigned-hostip + Description: Make sure when a pod is created that it is assigned a host IP + Address. + */ + framework.ConformanceIt("should get a host IP ", func() { name := "pod-hostip-" + string(uuid.NewUUID()) testHostIP(podClient, &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ @@ -145,7 +150,12 @@ var _ = framework.KubeDescribe("Pods", func() { }) }) - It("should be submitted and removed [Conformance]", func() { + /* + Testname: pods-submitted-removed + Description: Makes sure a pod is created, a watch can be setup for the pod, + pod creation was observed, pod is deleted, and pod deletion is observed. + */ + framework.ConformanceIt("should be submitted and removed ", func() { By("creating the pod") name := "pod-submit-remove-" + string(uuid.NewUUID()) value := strconv.Itoa(time.Now().Nanosecond()) @@ -266,7 +276,11 @@ var _ = framework.KubeDescribe("Pods", func() { Expect(len(pods.Items)).To(Equal(0)) }) - It("should be updated [Conformance]", func() { + /* + Testname: pods-updated-successfully + Description: Make sure it is possible to successfully update a pod's labels. + */ + framework.ConformanceIt("should be updated ", func() { By("creating the pod") name := "pod-update-" + string(uuid.NewUUID()) value := strconv.Itoa(time.Now().Nanosecond()) @@ -315,7 +329,13 @@ var _ = framework.KubeDescribe("Pods", func() { framework.Logf("Pod update OK") }) - It("should allow activeDeadlineSeconds to be updated [Conformance]", func() { + /* + Testname: pods-update-active-deadline-seconds + Description: Make sure it is possible to create a pod, update its + activeDeadlineSecondsValue, and then waits for the deadline to pass + and verifies the pod is terminated. + */ + framework.ConformanceIt("should allow activeDeadlineSeconds to be updated ", func() { By("creating the pod") name := "pod-update-activedeadlineseconds-" + string(uuid.NewUUID()) value := strconv.Itoa(time.Now().Nanosecond()) @@ -356,7 +376,12 @@ var _ = framework.KubeDescribe("Pods", func() { framework.ExpectNoError(f.WaitForPodTerminated(pod.Name, "DeadlineExceeded")) }) - It("should contain environment variables for services [Conformance]", func() { + /* + Testname: pods-contain-services-environment-variables + Description: Make sure that when a pod is created it contains environment + variables for each active service. + */ + framework.ConformanceIt("should contain environment variables for services ", func() { // Make a pod that will be a service. // This pod serves its hostname via HTTP. serverName := "server-envvars-" + string(uuid.NewUUID()) @@ -402,7 +427,7 @@ var _ = framework.KubeDescribe("Pods", func() { }, }, } - _, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(svc) + _, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(svc) Expect(err).NotTo(HaveOccurred(), "failed to create service") // Make a client pod that verifies that it has the service environment variables. @@ -466,7 +491,7 @@ var _ = framework.KubeDescribe("Pods", func() { By("submitting the pod to kubernetes") pod = podClient.CreateSync(pod) - req := f.ClientSet.Core().RESTClient().Get(). + req := f.ClientSet.CoreV1().RESTClient().Get(). Namespace(f.Namespace.Name). Resource("pods"). Name(pod.Name). @@ -536,7 +561,7 @@ var _ = framework.KubeDescribe("Pods", func() { By("submitting the pod to kubernetes") podClient.CreateSync(pod) - req := f.ClientSet.Core().RESTClient().Get(). + req := f.ClientSet.CoreV1().RESTClient().Get(). Namespace(f.Namespace.Name). Resource("pods"). Name(pod.Name). diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/projected.go b/vendor/k8s.io/kubernetes/test/e2e/common/projected.go index 535db71f6..101934667 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/projected.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/projected.go @@ -31,36 +31,60 @@ import ( . "github.com/onsi/gomega" ) -var _ = framework.KubeDescribe("Projected", func() { +var _ = Describe("[sig-storage] Projected", func() { // Part 1/3 - Secrets f := framework.NewDefaultFramework("projected") - It("should be consumable from pods in volume [Conformance] [sig-storage]", func() { + /* + Testname: projected-secret-no-defaultMode + Description: Simple projected Secret test with no defaultMode set. + */ + framework.ConformanceIt("should be consumable from pods in volume", func() { doProjectedSecretE2EWithoutMapping(f, nil /* default mode */, "projected-secret-test-"+string(uuid.NewUUID()), nil, nil) }) - It("should be consumable from pods in volume with defaultMode set [Conformance] [sig-storage]", func() { + /* + Testname: projected-secret-with-defaultMode + Description: Simple projected Secret test with defaultMode set. + */ + framework.ConformanceIt("should be consumable from pods in volume with defaultMode set", func() { defaultMode := int32(0400) doProjectedSecretE2EWithoutMapping(f, &defaultMode, "projected-secret-test-"+string(uuid.NewUUID()), nil, nil) }) - It("should be consumable from pods in volume as non-root with defaultMode and fsGroup set [Conformance] [sig-storage]", func() { + /* + Testname: projected-secret-with-nonroot-defaultMode-fsGroup + Description: Simple projected Secret test as non-root with + defaultMode and fsGroup set. + */ + framework.ConformanceIt("should be consumable from pods in volume as non-root with defaultMode and fsGroup set", func() { defaultMode := int32(0440) /* setting fsGroup sets mode to at least 440 */ fsGroup := int64(1001) uid := int64(1000) doProjectedSecretE2EWithoutMapping(f, &defaultMode, "projected-secret-test-"+string(uuid.NewUUID()), &fsGroup, &uid) }) - It("should be consumable from pods in volume with mappings [Conformance] [sig-storage]", func() { + /* + Testname: projected-secret-simple-mapped + Description: Simple projected Secret test, by setting a secret and + mounting it to a volume with a custom path (mapping) on the pod with + no other settings and make sure the pod actually consumes it. + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings", func() { doProjectedSecretE2EWithMapping(f, nil) }) - It("should be consumable from pods in volume with mappings and Item Mode set [Conformance] [sig-storage]", func() { + /* + Testname: projected-secret-with-item-mode-mapped + Description: Repeat the projected-secret-simple-mapped but this time + with an item mode (e.g. 0400) for the secret map item. + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings and Item Mode set", func() { mode := int32(0400) doProjectedSecretE2EWithMapping(f, &mode) }) - It("should be able to mount in a volume regardless of a different secret existing with same name in different namespace [sig-storage]", func() { + It("should be able to mount in a volume regardless of a different secret existing with same name in different namespace", func() { var ( namespace2 *v1.Namespace err error @@ -75,13 +99,18 @@ var _ = framework.KubeDescribe("Projected", func() { secret2.Data = map[string][]byte{ "this_should_not_match_content_of_other_secret": []byte("similarly_this_should_not_match_content_of_other_secret\n"), } - if secret2, err = f.ClientSet.Core().Secrets(namespace2.Name).Create(secret2); err != nil { + if secret2, err = f.ClientSet.CoreV1().Secrets(namespace2.Name).Create(secret2); err != nil { framework.Failf("unable to create test secret %s: %v", secret2.Name, err) } doProjectedSecretE2EWithoutMapping(f, nil /* default mode */, secret2.Name, nil, nil) }) - It("should be consumable in multiple volumes in a pod [Conformance] [sig-storage]", func() { + /* + Testname: projected-secret-multiple-volumes + Description: Make sure secrets works when mounted as two different + volumes on the same node. + */ + framework.ConformanceIt("should be consumable in multiple volumes in a pod", func() { // This test ensures that the same secret can be mounted in multiple // volumes in the same pod. This test case exists to prevent // regressions that break this use-case. @@ -96,7 +125,7 @@ var _ = framework.KubeDescribe("Projected", func() { By(fmt.Sprintf("Creating secret with name %s", secret.Name)) var err error - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } @@ -170,7 +199,11 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("optional updates should be reflected in volume [Conformance] [sig-storage]", func() { + /* + Testname: projected-secret-simple-optional + Description: Make sure secrets works when optional updates included. + */ + framework.ConformanceIt("optional updates should be reflected in volume", func() { podLogTimeout := framework.GetPodSecretUpdateTimeout(f.ClientSet) containerTimeoutArg := fmt.Sprintf("--retry_time=%v", int(podLogTimeout.Seconds())) trueVal := true @@ -217,12 +250,12 @@ var _ = framework.KubeDescribe("Projected", func() { By(fmt.Sprintf("Creating secret with name %s", deleteSecret.Name)) var err error - if deleteSecret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(deleteSecret); err != nil { + if deleteSecret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(deleteSecret); err != nil { framework.Failf("unable to create test secret %s: %v", deleteSecret.Name, err) } By(fmt.Sprintf("Creating secret with name %s", updateSecret.Name)) - if updateSecret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(updateSecret); err != nil { + if updateSecret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(updateSecret); err != nil { framework.Failf("unable to create test secret %s: %v", updateSecret.Name, err) } @@ -344,18 +377,18 @@ var _ = framework.KubeDescribe("Projected", func() { Eventually(pollDeleteLogs, podLogTimeout, framework.Poll).Should(ContainSubstring("value-1")) By(fmt.Sprintf("Deleting secret %v", deleteSecret.Name)) - err = f.ClientSet.Core().Secrets(f.Namespace.Name).Delete(deleteSecret.Name, &metav1.DeleteOptions{}) + err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Delete(deleteSecret.Name, &metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred(), "Failed to delete secret %q in namespace %q", deleteSecret.Name, f.Namespace.Name) By(fmt.Sprintf("Updating secret %v", updateSecret.Name)) updateSecret.ResourceVersion = "" // to force update delete(updateSecret.Data, "data-1") updateSecret.Data["data-3"] = []byte("value-3") - _, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Update(updateSecret) + _, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Update(updateSecret) Expect(err).NotTo(HaveOccurred(), "Failed to update secret %q in namespace %q", updateSecret.Name, f.Namespace.Name) By(fmt.Sprintf("Creating secret with name %s", createSecret.Name)) - if createSecret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(createSecret); err != nil { + if createSecret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(createSecret); err != nil { framework.Failf("unable to create test secret %s: %v", createSecret.Name, err) } @@ -367,46 +400,83 @@ var _ = framework.KubeDescribe("Projected", func() { }) // Part 2/3 - ConfigMaps - It("should be consumable from pods in volume [Conformance] [sig-storage]", func() { + /* + Testname: projected-volume-configMap-nomappings-succeeds + Description: Make sure that a projected volume with a configMap with + no mappings succeeds properly. + */ + framework.ConformanceIt("should be consumable from pods in volume", func() { doProjectedConfigMapE2EWithoutMappings(f, 0, 0, nil) }) - It("should be consumable from pods in volume with defaultMode set [Conformance] [sig-storage]", func() { + /* + Testname: projected-volume-configMap-consumable-defaultMode + Description: Make sure that a projected volume configMap is consumable + with defaultMode set. + */ + framework.ConformanceIt("should be consumable from pods in volume with defaultMode set", func() { defaultMode := int32(0400) doProjectedConfigMapE2EWithoutMappings(f, 0, 0, &defaultMode) }) - It("should be consumable from pods in volume as non-root with defaultMode and fsGroup set [Feature:FSGroup] [sig-storage]", func() { + It("should be consumable from pods in volume as non-root with defaultMode and fsGroup set [Feature:FSGroup]", func() { defaultMode := int32(0440) /* setting fsGroup sets mode to at least 440 */ doProjectedConfigMapE2EWithoutMappings(f, 1000, 1001, &defaultMode) }) - It("should be consumable from pods in volume as non-root [Conformance] [sig-storage]", func() { + /* + Testname: projected-volume-configMap-consumable-nonroot + Description: Make sure that a projected volume configMap is consumable + by a non-root userID. + */ + framework.ConformanceIt("should be consumable from pods in volume as non-root", func() { doProjectedConfigMapE2EWithoutMappings(f, 1000, 0, nil) }) - It("should be consumable from pods in volume as non-root with FSGroup [Feature:FSGroup] [sig-storage]", func() { + It("should be consumable from pods in volume as non-root with FSGroup [Feature:FSGroup]", func() { doProjectedConfigMapE2EWithoutMappings(f, 1000, 1001, nil) }) - It("should be consumable from pods in volume with mappings [Conformance] [sig-storage]", func() { + /* + Testname: projected-configmap-simple-mapped + Description: Simplest projected ConfigMap test, by setting a config + map and mounting it to a volume with a custom path (mapping) on the + pod with no other settings and make sure the pod actually consumes it. + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings", func() { doProjectedConfigMapE2EWithMappings(f, 0, 0, nil) }) - It("should be consumable from pods in volume with mappings and Item mode set[Conformance] [sig-storage]", func() { + /* + Testname: projected-secret-with-item-mode-mapped + Description: Repeat the projected-secret-simple-mapped but this time + with an item mode (e.g. 0400) for the secret map item + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings and Item mode set", func() { mode := int32(0400) doProjectedConfigMapE2EWithMappings(f, 0, 0, &mode) }) - It("should be consumable from pods in volume with mappings as non-root [Conformance] [sig-storage]", func() { + /* + Testname: projected-configmap-simpler-user-mapped + Description: Repeat the projected-config-map-simple-mapped but this + time with a user other than root. + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings as non-root", func() { doProjectedConfigMapE2EWithMappings(f, 1000, 0, nil) }) - It("should be consumable from pods in volume with mappings as non-root with FSGroup [Feature:FSGroup] [sig-storage]", func() { + It("should be consumable from pods in volume with mappings as non-root with FSGroup [Feature:FSGroup]", func() { doProjectedConfigMapE2EWithMappings(f, 1000, 1001, nil) }) - It("updates should be reflected in volume [Conformance] [sig-storage]", func() { + /* + Testname: projected-volume-configMaps-updated-succesfully + Description: Make sure that if a projected volume has configMaps, + that the values in these configMaps can be updated, deleted, + and created. + */ + framework.ConformanceIt("updates should be reflected in volume", func() { podLogTimeout := framework.GetPodSecretUpdateTimeout(f.ClientSet) containerTimeoutArg := fmt.Sprintf("--retry_time=%v", int(podLogTimeout.Seconds())) @@ -426,7 +496,7 @@ var _ = framework.KubeDescribe("Projected", func() { By(fmt.Sprintf("Creating projection with configMap that has name %s", configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } @@ -482,14 +552,20 @@ var _ = framework.KubeDescribe("Projected", func() { By(fmt.Sprintf("Updating configmap %v", configMap.Name)) configMap.ResourceVersion = "" // to force update configMap.Data["data-1"] = "value-2" - _, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Update(configMap) + _, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Update(configMap) Expect(err).NotTo(HaveOccurred(), "Failed to update configmap %q in namespace %q", configMap.Name, f.Namespace.Name) By("waiting to observe update in volume") Eventually(pollLogs, podLogTimeout, framework.Poll).Should(ContainSubstring("value-2")) }) - It("optional updates should be reflected in volume [Conformance] [sig-storage]", func() { + /* + Testname: projected-volume-optional-configMaps-updated-succesfully + Description: Make sure that if a projected volume has optional + configMaps, that the values in these configMaps can be updated, + deleted, and created. + */ + framework.ConformanceIt("optional updates should be reflected in volume", func() { podLogTimeout := framework.GetPodSecretUpdateTimeout(f.ClientSet) containerTimeoutArg := fmt.Sprintf("--retry_time=%v", int(podLogTimeout.Seconds())) trueVal := true @@ -536,12 +612,12 @@ var _ = framework.KubeDescribe("Projected", func() { By(fmt.Sprintf("Creating configMap with name %s", deleteConfigMap.Name)) var err error - if deleteConfigMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(deleteConfigMap); err != nil { + if deleteConfigMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(deleteConfigMap); err != nil { framework.Failf("unable to create test configMap %s: %v", deleteConfigMap.Name, err) } By(fmt.Sprintf("Creating configMap with name %s", updateConfigMap.Name)) - if updateConfigMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(updateConfigMap); err != nil { + if updateConfigMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(updateConfigMap); err != nil { framework.Failf("unable to create test configMap %s: %v", updateConfigMap.Name, err) } @@ -663,18 +739,18 @@ var _ = framework.KubeDescribe("Projected", func() { Eventually(pollDeleteLogs, podLogTimeout, framework.Poll).Should(ContainSubstring("value-1")) By(fmt.Sprintf("Deleting configmap %v", deleteConfigMap.Name)) - err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Delete(deleteConfigMap.Name, &metav1.DeleteOptions{}) + err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Delete(deleteConfigMap.Name, &metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred(), "Failed to delete configmap %q in namespace %q", deleteConfigMap.Name, f.Namespace.Name) By(fmt.Sprintf("Updating configmap %v", updateConfigMap.Name)) updateConfigMap.ResourceVersion = "" // to force update delete(updateConfigMap.Data, "data-1") updateConfigMap.Data["data-3"] = "value-3" - _, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Update(updateConfigMap) + _, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Update(updateConfigMap) Expect(err).NotTo(HaveOccurred(), "Failed to update configmap %q in namespace %q", updateConfigMap.Name, f.Namespace.Name) By(fmt.Sprintf("Creating configMap with name %s", createConfigMap.Name)) - if createConfigMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(createConfigMap); err != nil { + if createConfigMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(createConfigMap); err != nil { framework.Failf("unable to create test configMap %s: %v", createConfigMap.Name, err) } @@ -685,7 +761,12 @@ var _ = framework.KubeDescribe("Projected", func() { Eventually(pollDeleteLogs, podLogTimeout, framework.Poll).Should(ContainSubstring("Error reading file /etc/projected-configmap-volumes/delete/data-1")) }) - It("should be consumable in multiple volumes in the same pod [Conformance] [sig-storage]", func() { + /* + Testname: projected-configmap-multiple-volumes + Description: Make sure config map works when it mounted as two + different volumes on the same node. + */ + framework.ConformanceIt("should be consumable in multiple volumes in the same pod", func() { var ( name = "projected-configmap-test-volume-" + string(uuid.NewUUID()) volumeName = "projected-configmap-volume" @@ -697,7 +778,7 @@ var _ = framework.KubeDescribe("Projected", func() { By(fmt.Sprintf("Creating configMap with name %s", configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } @@ -778,7 +859,12 @@ var _ = framework.KubeDescribe("Projected", func() { podClient = f.PodClient() }) - It("should provide podname only [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-podname + Description: Ensure that downward API can provide pod's name through + DownwardAPIVolumeFiles in a projected volume. + */ + framework.ConformanceIt("should provide podname only", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumePodForSimpleTest(podName, "/etc/podname") @@ -787,7 +873,13 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("should set DefaultMode on files [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-set-default-mode + Description: Ensure that downward API can set default file premission + mode for DownwardAPIVolumeFiles if no mode is specified in a projected + volume. + */ + framework.ConformanceIt("should set DefaultMode on files", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) defaultMode := int32(0400) pod := projectedDownwardAPIVolumePodForModeTest(podName, "/etc/podname", nil, &defaultMode) @@ -797,7 +889,12 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("should set mode on item file [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-set-mode + Description: Ensure that downward API can set file premission mode for + DownwardAPIVolumeFiles in a projected volume. + */ + framework.ConformanceIt("should set mode on item file", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) mode := int32(0400) pod := projectedDownwardAPIVolumePodForModeTest(podName, "/etc/podname", &mode, nil) @@ -807,7 +904,7 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("should provide podname as non-root with fsgroup [Feature:FSGroup] [sig-storage]", func() { + It("should provide podname as non-root with fsgroup [Feature:FSGroup]", func() { podName := "metadata-volume-" + string(uuid.NewUUID()) uid := int64(1001) gid := int64(1234) @@ -821,7 +918,7 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("should provide podname as non-root with fsgroup and defaultMode [Feature:FSGroup] [sig-storage]", func() { + It("should provide podname as non-root with fsgroup and defaultMode [Feature:FSGroup]", func() { podName := "metadata-volume-" + string(uuid.NewUUID()) uid := int64(1001) gid := int64(1234) @@ -836,7 +933,13 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("should update labels on modification [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-update-label + Description: Ensure that downward API updates labels in + DownwardAPIVolumeFiles when pod's labels get modified in a projected + volume. + */ + framework.ConformanceIt("should update labels on modification", func() { labels := map[string]string{} labels["key1"] = "value1" labels["key2"] = "value2" @@ -863,7 +966,13 @@ var _ = framework.KubeDescribe("Projected", func() { podLogTimeout, framework.Poll).Should(ContainSubstring("key3=\"value3\"\n")) }) - It("should update annotations on modification [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-update-annotation + Description: Ensure that downward API updates annotations in + DownwardAPIVolumeFiles when pod's annotations get modified in a + projected volume. + */ + framework.ConformanceIt("should update annotations on modification", func() { annotations := map[string]string{} annotations["builder"] = "bar" podName := "annotationupdate" + string(uuid.NewUUID()) @@ -892,7 +1001,12 @@ var _ = framework.KubeDescribe("Projected", func() { podLogTimeout, framework.Poll).Should(ContainSubstring("builder=\"foo\"\n")) }) - It("should provide container's cpu limit [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-cpu-limit + Description: Ensure that downward API can provide container's CPU + limit through DownwardAPIVolumeFiles in a projected volume. + */ + framework.ConformanceIt("should provide container's cpu limit", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForContainerResources(podName, "/etc/cpu_limit") @@ -901,7 +1015,12 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("should provide container's memory limit [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-memory-limit + Description: Ensure that downward API can provide container's memory + limit through DownwardAPIVolumeFiles in a projected volume. + */ + framework.ConformanceIt("should provide container's memory limit", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForContainerResources(podName, "/etc/memory_limit") @@ -910,7 +1029,12 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("should provide container's cpu request [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-cpu-request + Description: Ensure that downward API can provide container's CPU + request through DownwardAPIVolumeFiles in a projected volume. + */ + framework.ConformanceIt("should provide container's cpu request", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForContainerResources(podName, "/etc/cpu_request") @@ -919,7 +1043,12 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("should provide container's memory request [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-memory-request + Description: Ensure that downward API can provide container's memory + request through DownwardAPIVolumeFiles in a projected volume. + */ + framework.ConformanceIt("should provide container's memory request", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForContainerResources(podName, "/etc/memory_request") @@ -928,14 +1057,26 @@ var _ = framework.KubeDescribe("Projected", func() { }) }) - It("should provide node allocatable (cpu) as default cpu limit if the limit is not set [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-default-cpu + Description: Ensure that downward API can provide default node + allocatable value for CPU through DownwardAPIVolumeFiles if CPU limit + is not specified for a container in a projected volume. + */ + framework.ConformanceIt("should provide node allocatable (cpu) as default cpu limit if the limit is not set", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForDefaultContainerResources(podName, "/etc/cpu_limit") f.TestContainerOutputRegexp("downward API volume plugin", pod, 0, []string{"[1-9]"}) }) - It("should provide node allocatable (memory) as default memory limit if the limit is not set [Conformance] [sig-storage]", func() { + /* + Testname: projected-downwardapi-volume-default-memory + Description: Ensure that downward API can provide default node + allocatable value for memory through DownwardAPIVolumeFiles if memory + limit is not specified for a container in a projected volume. + */ + framework.ConformanceIt("should provide node allocatable (memory) as default memory limit if the limit is not set", func() { podName := "downwardapi-volume-" + string(uuid.NewUUID()) pod := downwardAPIVolumeForDefaultContainerResources(podName, "/etc/memory_limit") @@ -943,7 +1084,12 @@ var _ = framework.KubeDescribe("Projected", func() { }) // Test multiple projections - It("should project all components that make up the projection API [Conformance] [sig-storage] [Projection]", func() { + /* + Testname: projected-configmap-secret-same-dir + Description: This test projects a secret and configmap into the same + directory to ensure projection is working as intended. + */ + framework.ConformanceIt("should project all components that make up the projection API [Projection]", func() { var err error podName := "projected-volume-" + string(uuid.NewUUID()) secretName := "secret-projected-all-test-volume-" + string(uuid.NewUUID()) @@ -968,11 +1114,11 @@ var _ = framework.KubeDescribe("Projected", func() { } By(fmt.Sprintf("Creating configMap with name %s", configMap.Name)) - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } By(fmt.Sprintf("Creating secret with name %s", secret.Name)) - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } @@ -1009,7 +1155,7 @@ func doProjectedSecretE2EWithoutMapping(f *framework.Framework, defaultMode *int By(fmt.Sprintf("Creating projection with secret that has name %s", secret.Name)) var err error - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } @@ -1090,7 +1236,7 @@ func doProjectedSecretE2EWithMapping(f *framework.Framework, mode *int32) { By(fmt.Sprintf("Creating projection with secret that has name %s", secret.Name)) var err error - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } @@ -1172,7 +1318,7 @@ func doProjectedConfigMapE2EWithoutMappings(f *framework.Framework, uid, fsGroup By(fmt.Sprintf("Creating configMap with name %s", configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } @@ -1257,7 +1403,7 @@ func doProjectedConfigMapE2EWithMappings(f *framework.Framework, uid, fsGroup in By(fmt.Sprintf("Creating configMap with name %s", configMap.Name)) var err error - if configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { + if configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap); err != nil { framework.Failf("unable to create test configMap %s: %v", configMap.Name, err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/secrets.go b/vendor/k8s.io/kubernetes/test/e2e/common/secrets.go index ebf7b30ea..895e0bcdf 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/secrets.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/secrets.go @@ -30,13 +30,18 @@ import ( var _ = Describe("[sig-api-machinery] Secrets", func() { f := framework.NewDefaultFramework("secrets") - It("should be consumable from pods in env vars [Conformance]", func() { + /* + Testname: secret-env-vars + Description: Ensure that secret can be consumed via environment + variables. + */ + framework.ConformanceIt("should be consumable from pods in env vars ", func() { name := "secret-test-" + string(uuid.NewUUID()) secret := secretForTest(f.Namespace.Name, name) By(fmt.Sprintf("Creating secret with name %s", secret.Name)) var err error - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } @@ -74,12 +79,17 @@ var _ = Describe("[sig-api-machinery] Secrets", func() { }) }) - It("should be consumable via the environment [Conformance]", func() { + /* + Testname: secret-configmaps-source + Description: Ensure that secret can be consumed via source of a set + of ConfigMaps. + */ + framework.ConformanceIt("should be consumable via the environment ", func() { name := "secret-test-" + string(uuid.NewUUID()) secret := newEnvFromSecret(f.Namespace.Name, name) By(fmt.Sprintf("creating secret %v/%v", f.Namespace.Name, secret.Name)) var err error - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/secrets_volume.go b/vendor/k8s.io/kubernetes/test/e2e/common/secrets_volume.go index 494f6c31f..1a3704870 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/secrets_volume.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/secrets_volume.go @@ -33,27 +33,52 @@ import ( var _ = Describe("[sig-storage] Secrets", func() { f := framework.NewDefaultFramework("secrets") - It("should be consumable from pods in volume [Conformance]", func() { + /* + Testname: secret-volume-mount-without-mapping + Description: Ensure that secret can be mounted without mapping to a + pod volume. + */ + framework.ConformanceIt("should be consumable from pods in volume ", func() { doSecretE2EWithoutMapping(f, nil /* default mode */, "secret-test-"+string(uuid.NewUUID()), nil, nil) }) - It("should be consumable from pods in volume with defaultMode set [Conformance]", func() { + /* + Testname: secret-volume-mount-without-mapping-default-mode + Description: Ensure that secret can be mounted without mapping to a + pod volume in default mode. + */ + framework.ConformanceIt("should be consumable from pods in volume with defaultMode set ", func() { defaultMode := int32(0400) doSecretE2EWithoutMapping(f, &defaultMode, "secret-test-"+string(uuid.NewUUID()), nil, nil) }) - It("should be consumable from pods in volume as non-root with defaultMode and fsGroup set [Conformance]", func() { + /* + Testname: secret-volume-mount-without-mapping-non-root-default-mode-fsgroup + Description: Ensure that secret can be mounted without mapping to a pod + volume as non-root in default mode with fsGroup set. + */ + framework.ConformanceIt("should be consumable from pods in volume as non-root with defaultMode and fsGroup set ", func() { defaultMode := int32(0440) /* setting fsGroup sets mode to at least 440 */ fsGroup := int64(1001) uid := int64(1000) doSecretE2EWithoutMapping(f, &defaultMode, "secret-test-"+string(uuid.NewUUID()), &fsGroup, &uid) }) - It("should be consumable from pods in volume with mappings [Conformance]", func() { + /* + Testname: secret-volume-mount-with-mapping + Description: Ensure that secret can be mounted with mapping to a pod + volume. + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings ", func() { doSecretE2EWithMapping(f, nil) }) - It("should be consumable from pods in volume with mappings and Item Mode set [Conformance]", func() { + /* + Testname: secret-volume-mount-with-mapping-item-mode + Description: Ensure that secret can be mounted with mapping to a pod + volume in item mode. + */ + framework.ConformanceIt("should be consumable from pods in volume with mappings and Item Mode set ", func() { mode := int32(0400) doSecretE2EWithMapping(f, &mode) }) @@ -73,13 +98,17 @@ var _ = Describe("[sig-storage] Secrets", func() { secret2.Data = map[string][]byte{ "this_should_not_match_content_of_other_secret": []byte("similarly_this_should_not_match_content_of_other_secret\n"), } - if secret2, err = f.ClientSet.Core().Secrets(namespace2.Name).Create(secret2); err != nil { + if secret2, err = f.ClientSet.CoreV1().Secrets(namespace2.Name).Create(secret2); err != nil { framework.Failf("unable to create test secret %s: %v", secret2.Name, err) } doSecretE2EWithoutMapping(f, nil /* default mode */, secret2.Name, nil, nil) }) - It("should be consumable in multiple volumes in a pod [Conformance]", func() { + /* + Testname: secret-multiple-volume-mounts + Description: Ensure that secret can be mounted to multiple pod volumes. + */ + framework.ConformanceIt("should be consumable in multiple volumes in a pod ", func() { // This test ensures that the same secret can be mounted in multiple // volumes in the same pod. This test case exists to prevent // regressions that break this use-case. @@ -94,7 +123,7 @@ var _ = Describe("[sig-storage] Secrets", func() { By(fmt.Sprintf("Creating secret with name %s", secret.Name)) var err error - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } @@ -152,7 +181,12 @@ var _ = Describe("[sig-storage] Secrets", func() { }) }) - It("optional updates should be reflected in volume [Conformance]", func() { + /* + Testname: secret-mounted-volume-optional-update-change + Description: Ensure that optional update change to secret can be + reflected on a mounted volume. + */ + framework.ConformanceIt("optional updates should be reflected in volume ", func() { podLogTimeout := framework.GetPodSecretUpdateTimeout(f.ClientSet) containerTimeoutArg := fmt.Sprintf("--retry_time=%v", int(podLogTimeout.Seconds())) trueVal := true @@ -199,12 +233,12 @@ var _ = Describe("[sig-storage] Secrets", func() { By(fmt.Sprintf("Creating secret with name %s", deleteSecret.Name)) var err error - if deleteSecret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(deleteSecret); err != nil { + if deleteSecret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(deleteSecret); err != nil { framework.Failf("unable to create test secret %s: %v", deleteSecret.Name, err) } By(fmt.Sprintf("Creating secret with name %s", updateSecret.Name)) - if updateSecret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(updateSecret); err != nil { + if updateSecret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(updateSecret); err != nil { framework.Failf("unable to create test secret %s: %v", updateSecret.Name, err) } @@ -302,18 +336,18 @@ var _ = Describe("[sig-storage] Secrets", func() { Eventually(pollDeleteLogs, podLogTimeout, framework.Poll).Should(ContainSubstring("value-1")) By(fmt.Sprintf("Deleting secret %v", deleteSecret.Name)) - err = f.ClientSet.Core().Secrets(f.Namespace.Name).Delete(deleteSecret.Name, &metav1.DeleteOptions{}) + err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Delete(deleteSecret.Name, &metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred(), "Failed to delete secret %q in namespace %q", deleteSecret.Name, f.Namespace.Name) By(fmt.Sprintf("Updating secret %v", updateSecret.Name)) updateSecret.ResourceVersion = "" // to force update delete(updateSecret.Data, "data-1") updateSecret.Data["data-3"] = []byte("value-3") - _, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Update(updateSecret) + _, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Update(updateSecret) Expect(err).NotTo(HaveOccurred(), "Failed to update secret %q in namespace %q", updateSecret.Name, f.Namespace.Name) By(fmt.Sprintf("Creating secret with name %s", createSecret.Name)) - if createSecret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(createSecret); err != nil { + if createSecret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(createSecret); err != nil { framework.Failf("unable to create test secret %s: %v", createSecret.Name, err) } @@ -349,7 +383,7 @@ func doSecretE2EWithoutMapping(f *framework.Framework, defaultMode *int32, secre By(fmt.Sprintf("Creating secret with name %s", secret.Name)) var err error - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } @@ -421,7 +455,7 @@ func doSecretE2EWithMapping(f *framework.Framework, mode *int32) { By(fmt.Sprintf("Creating secret with name %s", secret.Name)) var err error - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/sysctl.go b/vendor/k8s.io/kubernetes/test/e2e/common/sysctl.go index 989fc3a56..aa05d109a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/sysctl.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/sysctl.go @@ -20,7 +20,7 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/kubelet/sysctl" "k8s.io/kubernetes/test/e2e/framework" @@ -171,7 +171,7 @@ var _ = framework.KubeDescribe("Sysctls", func() { }) By("Creating a pod with one valid and two invalid sysctls") - client := f.ClientSet.Core().Pods(f.Namespace.Name) + client := f.ClientSet.CoreV1().Pods(f.Namespace.Name) _, err := client.Create(pod) Expect(err).NotTo(BeNil()) diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/util.go b/vendor/k8s.io/kubernetes/test/e2e/common/util.go index aa6bfc1e9..1ef5d4866 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/util.go @@ -35,14 +35,13 @@ import ( type Suite string const ( - E2E Suite = "e2e" - NodeE2E Suite = "node e2e" - FederationE2E Suite = "federation e2e" + E2E Suite = "e2e" + NodeE2E Suite = "node e2e" ) var ( mountImage = imageutils.GetE2EImage(imageutils.Mounttest) - busyboxImage = imageutils.GetBusyBoxImage() + busyboxImage = "busybox" ) var CurrentSuite Suite @@ -52,7 +51,7 @@ var CurrentSuite Suite // only used by node e2e test. // TODO(random-liu): Change the image puller pod to use similar mechanism. var CommonImageWhiteList = sets.NewString( - imageutils.GetBusyBoxImage(), + "busybox", imageutils.GetE2EImage(imageutils.EntrypointTester), imageutils.GetE2EImage(imageutils.Liveness), imageutils.GetE2EImage(imageutils.Mounttest), @@ -87,14 +86,14 @@ func svcByName(name string, port int) *v1.Service { func NewSVCByName(c clientset.Interface, ns, name string) error { const testPort = 9376 - _, err := c.Core().Services(ns).Create(svcByName(name, testPort)) + _, err := c.CoreV1().Services(ns).Create(svcByName(name, testPort)) return err } // NewRCByName creates a replication controller with a selector by name of name. func NewRCByName(c clientset.Interface, ns, name string, replicas int32, gracePeriod *int64) (*v1.ReplicationController, error) { By(fmt.Sprintf("creating replication controller %s", name)) - return c.Core().ReplicationControllers(ns).Create(framework.RcByNamePort( + return c.CoreV1().ReplicationControllers(ns).Create(framework.RcByNamePort( name, replicas, framework.ServeHostnameImage, 9376, v1.ProtocolTCP, map[string]string{}, gracePeriod)) } @@ -102,7 +101,7 @@ func RestartNodes(c clientset.Interface, nodeNames []string) error { // List old boot IDs. oldBootIDs := make(map[string]string) for _, name := range nodeNames { - node, err := c.Core().Nodes().Get(name, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("error getting node info before reboot: %s", err) } @@ -124,7 +123,7 @@ func RestartNodes(c clientset.Interface, nodeNames []string) error { // Wait for their boot IDs to change. for _, name := range nodeNames { if err := wait.Poll(30*time.Second, 5*time.Minute, func() (bool, error) { - node, err := c.Core().Nodes().Get(name, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(name, metav1.GetOptions{}) if err != nil { return false, fmt.Errorf("error getting node info after reboot: %s", err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/volumes.go b/vendor/k8s.io/kubernetes/test/e2e/common/volumes.go index 5b7019807..24a9752b2 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/common/volumes.go +++ b/vendor/k8s.io/kubernetes/test/e2e/common/volumes.go @@ -56,9 +56,7 @@ import ( var _ = Describe("[sig-storage] GCP Volumes", func() { f := framework.NewDefaultFramework("gcp-volume") - // If 'false', the test won't clear its volumes upon completion. Useful for debugging, // note that namespace deletion is handled by delete-namespace flag - clean := true // filled in BeforeEach var namespace *v1.Namespace var c clientset.Interface @@ -76,11 +74,7 @@ var _ = Describe("[sig-storage] GCP Volumes", func() { Describe("NFSv4", func() { It("should be mountable for NFSv4", func() { config, _, serverIP := framework.NewNFSServer(c, namespace.Name, []string{}) - defer func() { - if clean { - framework.VolumeTestCleanup(f, config) - } - }() + defer framework.VolumeTestCleanup(f, config) tests := []framework.VolumeTest{ { @@ -104,11 +98,7 @@ var _ = Describe("[sig-storage] GCP Volumes", func() { Describe("NFSv3", func() { It("should be mountable for NFSv3", func() { config, _, serverIP := framework.NewNFSServer(c, namespace.Name, []string{}) - defer func() { - if clean { - framework.VolumeTestCleanup(f, config) - } - }() + defer framework.VolumeTestCleanup(f, config) tests := []framework.VolumeTest{ { @@ -137,11 +127,9 @@ var _ = Describe("[sig-storage] GCP Volumes", func() { config, _, _ := framework.NewGlusterfsServer(c, namespace.Name) name := config.Prefix + "-server" defer func() { - if clean { - framework.VolumeTestCleanup(f, config) - err := c.Core().Endpoints(namespace.Name).Delete(name, nil) - Expect(err).NotTo(HaveOccurred(), "defer: Gluster delete endpoints failed") - } + framework.VolumeTestCleanup(f, config) + err := c.CoreV1().Endpoints(namespace.Name).Delete(name, nil) + Expect(err).NotTo(HaveOccurred(), "defer: Gluster delete endpoints failed") }() tests := []framework.VolumeTest{ diff --git a/vendor/k8s.io/kubernetes/test/e2e/e2e.go b/vendor/k8s.io/kubernetes/test/e2e/e2e.go index b7d937d7b..6175073e7 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/e2e.go +++ b/vendor/k8s.io/kubernetes/test/e2e/e2e.go @@ -34,7 +34,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtimeutils "k8s.io/apimachinery/pkg/util/runtime" clientset "k8s.io/client-go/kubernetes" - federationtest "k8s.io/kubernetes/federation/test/e2e" "k8s.io/kubernetes/pkg/cloudprovider/providers/azure" gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" "k8s.io/kubernetes/pkg/kubectl/util/logs" @@ -47,11 +46,6 @@ import ( testutils "k8s.io/kubernetes/test/utils" ) -const ( - // TODO: Delete this once all the tests that depend upon it are moved out of test/e2e and into subdirs - podName = "pfpod" -) - var ( cloudConfig = &framework.TestContext.CloudConfig ) @@ -79,7 +73,7 @@ func setupProviderConfig() error { managedZones = []string{zone} } - gceAlphaFeatureGate, err := gcecloud.NewAlphaFeatureGate([]string{}) + gceAlphaFeatureGate, err := gcecloud.NewAlphaFeatureGate([]string{gcecloud.AlphaFeatureNetworkEndpointGroup}) if err != nil { glog.Errorf("Encountered error for creating alpha feature gate: %v", err) } @@ -166,7 +160,6 @@ var _ = ginkgo.SynchronizedBeforeSuite(func() []byte { metav1.NamespaceSystem, metav1.NamespaceDefault, metav1.NamespacePublic, - framework.FederationSystemNamespace(), }) if err != nil { framework.Failf("Error deleting orphaned namespaces: %v", err) @@ -229,7 +222,7 @@ var _ = ginkgo.SynchronizedBeforeSuite(func() []byte { } // Log the version of the server and this client. - framework.Logf("Client version: %s", version.Get().GitVersion) + framework.Logf("e2e test version: %s", version.Get().GitVersion) dc := c.DiscoveryClient @@ -238,15 +231,12 @@ var _ = ginkgo.SynchronizedBeforeSuite(func() []byte { framework.Logf("Unexpected server error retrieving version: %v", serverErr) } if serverVersion != nil { - framework.Logf("Server version: %s", serverVersion.GitVersion) + framework.Logf("kube-apiserver version: %s", serverVersion.GitVersion) } // Reference common test to make the import valid. commontest.CurrentSuite = commontest.E2E - // Reference federation test to make the import valid. - federationtest.FederationSuite = commontest.FederationE2E - return nil }, func(data []byte) { @@ -396,12 +386,12 @@ func runKubernetesServiceTestContainer(c clientset.Interface, ns string) { return } p.Namespace = ns - if _, err := c.Core().Pods(ns).Create(p); err != nil { + if _, err := c.CoreV1().Pods(ns).Create(p); err != nil { framework.Logf("Failed to create %v: %v", p.Name, err) return } defer func() { - if err := c.Core().Pods(ns).Delete(p.Name, nil); err != nil { + if err := c.CoreV1().Pods(ns).Delete(p.Name, nil); err != nil { framework.Logf("Failed to delete pod %v: %v", p.Name, err) } }() diff --git a/vendor/k8s.io/kubernetes/test/e2e/examples.go b/vendor/k8s.io/kubernetes/test/e2e/examples.go index ed7e99310..7e377e203 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/examples.go +++ b/vendor/k8s.io/kubernetes/test/e2e/examples.go @@ -194,7 +194,7 @@ var _ = framework.KubeDescribe("[Feature:Example]", func() { forEachPod(selectorKey, selectorValue, func(pod v1.Pod) { _, maErr := framework.LookForStringInLog(f.Namespace.Name, pod.Name, "spark-master", "Starting Spark master at", serverStartTimeout) if maErr != nil { - framework.Failf("Didn't find target string. error:", maErr) + framework.Failf("Didn't find target string. error: %v", maErr) } }) } @@ -298,7 +298,7 @@ var _ = framework.KubeDescribe("[Feature:Example]", func() { label := labels.SelectorFromSet(labels.Set(map[string]string{"app": "cassandra"})) err = wait.PollImmediate(statefulsetPoll, statefulsetTimeout, func() (bool, error) { - podList, err := c.Core().Pods(ns).List(metav1.ListOptions{LabelSelector: label.String()}) + podList, err := c.CoreV1().Pods(ns).List(metav1.ListOptions{LabelSelector: label.String()}) if err != nil { return false, fmt.Errorf("Unable to get list of pods in statefulset %s", label) } @@ -413,7 +413,7 @@ var _ = framework.KubeDescribe("[Feature:Example]", func() { err := framework.WaitForPodNameRunningInNamespace(c, podName, ns) Expect(err).NotTo(HaveOccurred()) for t := time.Now(); time.Since(t) < timeout; time.Sleep(framework.Poll) { - pod, err := c.Core().Pods(ns).Get(podName, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{}) framework.ExpectNoError(err, fmt.Sprintf("getting pod %s", podName)) stat := podutil.GetExistingContainerStatus(pod.Status.ContainerStatuses, podName) framework.Logf("Pod: %s, restart count:%d", stat.Name, stat.RestartCount) @@ -577,7 +577,7 @@ func makeHttpRequestToService(c clientset.Interface, ns, service, path string, t var result []byte var err error for t := time.Now(); time.Since(t) < timeout; time.Sleep(framework.Poll) { - proxyRequest, errProxy := framework.GetServicesProxyRequest(c, c.Core().RESTClient().Get()) + proxyRequest, errProxy := framework.GetServicesProxyRequest(c, c.CoreV1().RESTClient().Get()) if errProxy != nil { break } @@ -598,17 +598,6 @@ func makeHttpRequestToService(c clientset.Interface, ns, service, path string, t return string(result), err } -// pass enough context with the 'old' parameter so that it replaces what your really intended. -func prepareResourceWithReplacedString(inputFile, old, new string) string { - f, err := os.Open(inputFile) - Expect(err).NotTo(HaveOccurred()) - defer f.Close() - data, err := ioutil.ReadAll(f) - Expect(err).NotTo(HaveOccurred()) - podYaml := strings.Replace(string(data), old, new, 1) - return podYaml -} - func createFileForGoBinData(gobindataPath, outputFilename string) error { data := generated.ReadOrDie(gobindataPath) if len(data) == 0 { diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/BUILD b/vendor/k8s.io/kubernetes/test/e2e/framework/BUILD index 548ffe3ec..66bab803c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/BUILD @@ -12,7 +12,6 @@ go_library( "cleanup.go", "deployment_util.go", "exec_util.go", - "federation_util.go", "firewall_util.go", "framework.go", "get-kubemark-resource-usage.go", @@ -27,6 +26,7 @@ go_library( "nodes_util.go", "perf_util.go", "pods.go", + "psp_util.go", "pv_util.go", "rc_util.go", "resource_usage_gatherer.go", @@ -41,12 +41,13 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/framework", deps = [ - "//federation/apis/federation/v1beta1:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", - "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/apps:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/conditions:go_default_library", @@ -57,6 +58,7 @@ go_library( "//pkg/controller:go_default_library", "//pkg/controller/deployment/util:go_default_library", "//pkg/controller/node:go_default_library", + "//pkg/features:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", @@ -67,9 +69,9 @@ go_library( "//pkg/kubelet/util/format:go_default_library", "//pkg/kubemark:go_default_library", "//pkg/master/ports:go_default_library", + "//pkg/security/podsecuritypolicy/seccomp:go_default_library", "//pkg/ssh:go_default_library", "//pkg/util/file:go_default_library", - "//pkg/util/labels:go_default_library", "//pkg/util/system:go_default_library", "//pkg/util/taints:go_default_library", "//pkg/util/version:go_default_library", @@ -127,6 +129,8 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/yaml:go_default_library", "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/serviceaccount:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", "//vendor/k8s.io/client-go/dynamic:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", @@ -157,6 +161,7 @@ filegroup( ":package-srcs", "//test/e2e/framework/ginkgowrapper:all-srcs", "//test/e2e/framework/metrics:all-srcs", + "//test/e2e/framework/timer:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/authorizer_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/authorizer_util.go index f162d0168..16a02fd89 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/authorizer_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/authorizer_util.go @@ -18,6 +18,7 @@ package framework import ( "fmt" + "sync" "time" authorizationv1beta1 "k8s.io/api/authorization/v1beta1" @@ -38,6 +39,12 @@ const ( // WaitForAuthorizationUpdate checks if the given user can perform the named verb and action. // If policyCachePollTimeout is reached without the expected condition matching, an error is returned func WaitForAuthorizationUpdate(c v1beta1authorization.SubjectAccessReviewsGetter, user, namespace, verb string, resource schema.GroupResource, allowed bool) error { + return WaitForNamedAuthorizationUpdate(c, user, namespace, verb, "", resource, allowed) +} + +// WaitForAuthorizationUpdate checks if the given user can perform the named verb and action on the named resource. +// If policyCachePollTimeout is reached without the expected condition matching, an error is returned +func WaitForNamedAuthorizationUpdate(c v1beta1authorization.SubjectAccessReviewsGetter, user, namespace, verb, resourceName string, resource schema.GroupResource, allowed bool) error { review := &authorizationv1beta1.SubjectAccessReview{ Spec: authorizationv1beta1.SubjectAccessReviewSpec{ ResourceAttributes: &authorizationv1beta1.ResourceAttributes{ @@ -45,6 +52,7 @@ func WaitForAuthorizationUpdate(c v1beta1authorization.SubjectAccessReviewsGette Verb: verb, Resource: resource.Resource, Namespace: namespace, + Name: resourceName, }, User: user, }, @@ -92,21 +100,52 @@ func BindClusterRole(c v1beta1rbac.ClusterRoleBindingsGetter, clusterRole, ns st // BindClusterRoleInNamespace binds the cluster role at the namespace scope func BindClusterRoleInNamespace(c v1beta1rbac.RoleBindingsGetter, clusterRole, ns string, subjects ...rbacv1beta1.Subject) { + bindInNamespace(c, "ClusterRole", clusterRole, ns, subjects...) +} + +// BindRoleInNamespace binds the role at the namespace scope +func BindRoleInNamespace(c v1beta1rbac.RoleBindingsGetter, role, ns string, subjects ...rbacv1beta1.Subject) { + bindInNamespace(c, "Role", role, ns, subjects...) +} + +func bindInNamespace(c v1beta1rbac.RoleBindingsGetter, roleType, role, ns string, subjects ...rbacv1beta1.Subject) { // Since the namespace names are unique, we can leave this lying around so we don't have to race any caches _, err := c.RoleBindings(ns).Create(&rbacv1beta1.RoleBinding{ ObjectMeta: metav1.ObjectMeta{ - Name: ns + "--" + clusterRole, + Name: ns + "--" + role, }, RoleRef: rbacv1beta1.RoleRef{ APIGroup: "rbac.authorization.k8s.io", - Kind: "ClusterRole", - Name: clusterRole, + Kind: roleType, + Name: role, }, Subjects: subjects, }) // if we failed, don't fail the entire test because it may still work. RBAC may simply be disabled. if err != nil { - fmt.Printf("Error binding clusterrole/%s into %q for %v\n", clusterRole, ns, subjects) + fmt.Printf("Error binding %s/%s into %q for %v\n", roleType, role, ns, subjects) } } + +var ( + isRBACEnabledOnce sync.Once + isRBACEnabled bool +) + +func IsRBACEnabled(f *Framework) bool { + isRBACEnabledOnce.Do(func() { + crs, err := f.ClientSet.RbacV1().ClusterRoles().List(metav1.ListOptions{}) + if err != nil { + Logf("Error listing ClusterRoles; assuming RBAC is disabled: %v", err) + isRBACEnabled = false + } else if crs == nil || len(crs.Items) == 0 { + Logf("No ClusteRoles found; assuming RBAC is disabled.") + isRBACEnabled = false + } else { + Logf("Found ClusterRoles; assuming RBAC is enabled.") + isRBACEnabled = true + } + }) + return isRBACEnabled +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/deployment_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/deployment_util.go index 80c19dcbf..8a249d1e1 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/deployment_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/deployment_util.go @@ -25,13 +25,13 @@ import ( "k8s.io/api/core/v1" extensions "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" clientset "k8s.io/client-go/kubernetes" extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" - labelsutil "k8s.io/kubernetes/pkg/util/labels" testutils "k8s.io/kubernetes/test/utils" ) @@ -45,7 +45,7 @@ func WaitForDeploymentOldRSsNum(c clientset.Interface, ns, deploymentName string var d *extensions.Deployment pollErr := wait.PollImmediate(Poll, 5*time.Minute, func() (bool, error) { - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) if err != nil { return false, err } @@ -73,25 +73,7 @@ func WaitForObservedDeployment(c clientset.Interface, ns, deploymentName string, } func WaitForDeploymentWithCondition(c clientset.Interface, ns, deploymentName, reason string, condType extensions.DeploymentConditionType) error { - var deployment *extensions.Deployment - pollErr := wait.PollImmediate(time.Second, 5*time.Minute, func() (bool, error) { - d, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) - if err != nil { - return false, err - } - deployment = d - cond := deploymentutil.GetDeploymentCondition(deployment.Status, condType) - return cond != nil && cond.Reason == reason, nil - }) - if pollErr == wait.ErrWaitTimeout { - pollErr = fmt.Errorf("deployment %q never updated with the desired condition and reason: %v", deployment.Name, deployment.Status.Conditions) - _, allOldRSs, newRS, err := deploymentutil.GetAllReplicaSets(deployment, c.ExtensionsV1beta1()) - if err == nil { - logReplicaSetsOfDeployment(deployment, allOldRSs, newRS) - logPodsOfDeployment(c, deployment, append(allOldRSs, newRS)) - } - } - return pollErr + return testutils.WaitForDeploymentWithCondition(c, ns, deploymentName, reason, condType, Logf, Poll, pollLongTimeout) } // WaitForDeploymentRevisionAndImage waits for the deployment's and its new RS's revision and container image to match the given revision and image. @@ -131,107 +113,28 @@ func NewDeployment(deploymentName string, replicas int32, podLabels map[string]s } } -// Waits for the deployment status to become valid (i.e. max unavailable and max surge aren't violated anymore). -// Note that the status should stay valid at all times unless shortly after a scaling event or the deployment is just created. -// To verify that the deployment status is valid and wait for the rollout to finish, use WaitForDeploymentStatus instead. -func WaitForDeploymentStatusValid(c clientset.Interface, d *extensions.Deployment) error { - return testutils.WaitForDeploymentStatusValid(c, d, Logf, Poll, pollLongTimeout) +// Waits for the deployment to complete, and don't check if rolling update strategy is broken. +// Rolling update strategy is used only during a rolling update, and can be violated in other situations, +// such as shortly after a scaling event or the deployment is just created. +func WaitForDeploymentComplete(c clientset.Interface, d *extensions.Deployment) error { + return testutils.WaitForDeploymentComplete(c, d, Logf, Poll, pollLongTimeout) } -// Waits for the deployment to reach desired state. -// Returns an error if the deployment's rolling update strategy (max unavailable or max surge) is broken at any times. -func WaitForDeploymentStatus(c clientset.Interface, d *extensions.Deployment) error { - var ( - oldRSs, allOldRSs, allRSs []*extensions.ReplicaSet - newRS *extensions.ReplicaSet - deployment *extensions.Deployment - ) - - err := wait.Poll(Poll, 5*time.Minute, func() (bool, error) { - var err error - deployment, err = c.Extensions().Deployments(d.Namespace).Get(d.Name, metav1.GetOptions{}) - if err != nil { - return false, err - } - oldRSs, allOldRSs, newRS, err = deploymentutil.GetAllReplicaSets(deployment, c.ExtensionsV1beta1()) - if err != nil { - return false, err - } - if newRS == nil { - // New RS hasn't been created yet. - return false, nil - } - allRSs = append(oldRSs, newRS) - // The old/new ReplicaSets need to contain the pod-template-hash label - for i := range allRSs { - if !labelsutil.SelectorHasLabel(allRSs[i].Spec.Selector, extensions.DefaultDeploymentUniqueLabelKey) { - return false, nil - } - } - totalCreated := deploymentutil.GetReplicaCountForReplicaSets(allRSs) - maxCreated := *(deployment.Spec.Replicas) + deploymentutil.MaxSurge(*deployment) - if totalCreated > maxCreated { - logReplicaSetsOfDeployment(deployment, allOldRSs, newRS) - logPodsOfDeployment(c, deployment, allRSs) - return false, fmt.Errorf("total pods created: %d, more than the max allowed: %d", totalCreated, maxCreated) - } - minAvailable := deploymentutil.MinAvailable(deployment) - if deployment.Status.AvailableReplicas < minAvailable { - logReplicaSetsOfDeployment(deployment, allOldRSs, newRS) - logPodsOfDeployment(c, deployment, allRSs) - return false, fmt.Errorf("total pods available: %d, less than the min required: %d", deployment.Status.AvailableReplicas, minAvailable) - } - - // When the deployment status and its underlying resources reach the desired state, we're done - return deploymentutil.DeploymentComplete(deployment, &deployment.Status), nil - }) - - if err == wait.ErrWaitTimeout { - logReplicaSetsOfDeployment(deployment, allOldRSs, newRS) - logPodsOfDeployment(c, deployment, allRSs) - } - if err != nil { - return fmt.Errorf("error waiting for deployment %q status to match expectation: %v", d.Name, err) - } - return nil +// Waits for the deployment to complete, and check rolling update strategy isn't broken at any times. +// Rolling update strategy should not be broken during a rolling update. +func WaitForDeploymentCompleteAndCheckRolling(c clientset.Interface, d *extensions.Deployment) error { + return testutils.WaitForDeploymentCompleteAndCheckRolling(c, d, Logf, Poll, pollLongTimeout) } // WaitForDeploymentUpdatedReplicasLTE waits for given deployment to be observed by the controller and has at least a number of updatedReplicas func WaitForDeploymentUpdatedReplicasLTE(c clientset.Interface, ns, deploymentName string, minUpdatedReplicas int32, desiredGeneration int64) error { - err := wait.Poll(Poll, 5*time.Minute, func() (bool, error) { - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) - if err != nil { - return false, err - } - if deployment.Status.ObservedGeneration >= desiredGeneration && deployment.Status.UpdatedReplicas >= minUpdatedReplicas { - return true, nil - } - return false, nil - }) - if err != nil { - return fmt.Errorf("error waiting for deployment %s to have at least %d updpatedReplicas: %v", deploymentName, minUpdatedReplicas, err) - } - return nil + return testutils.WaitForDeploymentUpdatedReplicasLTE(c, ns, deploymentName, minUpdatedReplicas, desiredGeneration, Poll, pollLongTimeout) } // WaitForDeploymentRollbackCleared waits for given deployment either started rolling back or doesn't need to rollback. // Note that rollback should be cleared shortly, so we only wait for 1 minute here to fail early. func WaitForDeploymentRollbackCleared(c clientset.Interface, ns, deploymentName string) error { - err := wait.Poll(Poll, 1*time.Minute, func() (bool, error) { - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) - if err != nil { - return false, err - } - // Rollback not set or is kicked off - if deployment.Spec.RollbackTo == nil { - return true, nil - } - return false, nil - }) - if err != nil { - return fmt.Errorf("error waiting for deployment %s rollbackTo to be cleared: %v", deploymentName, err) - } - return nil + return testutils.WaitForDeploymentRollbackCleared(c, ns, deploymentName, Poll, pollShortTimeout) } // WatchRecreateDeployment watches Recreate deployments and ensures no new pods will run at the same time with @@ -241,7 +144,7 @@ func WatchRecreateDeployment(c clientset.Interface, d *extensions.Deployment) er return fmt.Errorf("deployment %q does not use a Recreate strategy: %s", d.Name, d.Spec.Strategy.Type) } - w, err := c.Extensions().Deployments(d.Namespace).Watch(metav1.SingleObject(metav1.ObjectMeta{Name: d.Name, ResourceVersion: d.ResourceVersion})) + w, err := c.ExtensionsV1beta1().Deployments(d.Namespace).Watch(metav1.SingleObject(metav1.ObjectMeta{Name: d.Name, ResourceVersion: d.ResourceVersion})) if err != nil { return err } @@ -289,3 +192,106 @@ func RunDeployment(config testutils.DeploymentConfig) error { func logPodsOfDeployment(c clientset.Interface, deployment *extensions.Deployment, rsList []*extensions.ReplicaSet) { testutils.LogPodsOfDeployment(c, deployment, rsList, Logf) } + +func WaitForDeploymentRevision(c clientset.Interface, d *extensions.Deployment, targetRevision string) error { + err := wait.PollImmediate(Poll, pollLongTimeout, func() (bool, error) { + deployment, err := c.ExtensionsV1beta1().Deployments(d.Namespace).Get(d.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } + revision := deployment.Annotations[deploymentutil.RevisionAnnotation] + return revision == targetRevision, nil + }) + if err != nil { + return fmt.Errorf("error waiting for revision to become %q for deployment %q: %v", targetRevision, d.Name, err) + } + return nil +} + +// CheckDeploymentRevisionAndImage checks if the input deployment's and its new replica set's revision and image are as expected. +func CheckDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName, revision, image string) error { + return testutils.CheckDeploymentRevisionAndImage(c, ns, deploymentName, revision, image) +} + +func CreateDeployment(client clientset.Interface, replicas int32, podLabels map[string]string, namespace string, pvclaims []*v1.PersistentVolumeClaim, command string) (*extensions.Deployment, error) { + deploymentSpec := MakeDeployment(replicas, podLabels, namespace, pvclaims, false, command) + deployment, err := client.Extensions().Deployments(namespace).Create(deploymentSpec) + if err != nil { + return nil, fmt.Errorf("deployment %q Create API error: %v", deploymentSpec.Name, err) + } + Logf("Waiting deployment %q to complete", deploymentSpec.Name) + err = WaitForDeploymentComplete(client, deployment) + if err != nil { + return nil, fmt.Errorf("deployment %q failed to complete: %v", deploymentSpec.Name, err) + } + return deployment, nil +} + +// MakeDeployment creates a deployment definition based on the namespace. The deployment references the PVC's +// name. A slice of BASH commands can be supplied as args to be run by the pod +func MakeDeployment(replicas int32, podLabels map[string]string, namespace string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string) *extensions.Deployment { + if len(command) == 0 { + command = "while true; do sleep 1; done" + } + zero := int64(0) + deploymentName := "deployment-" + string(uuid.NewUUID()) + deploymentSpec := &extensions.Deployment{ + ObjectMeta: metav1.ObjectMeta{ + Name: deploymentName, + Namespace: namespace, + }, + Spec: extensions.DeploymentSpec{ + Replicas: &replicas, + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: podLabels, + }, + Spec: v1.PodSpec{ + TerminationGracePeriodSeconds: &zero, + Containers: []v1.Container{ + { + Name: "write-pod", + Image: "busybox", + Command: []string{"/bin/sh"}, + Args: []string{"-c", command}, + SecurityContext: &v1.SecurityContext{ + Privileged: &isPrivileged, + }, + }, + }, + RestartPolicy: v1.RestartPolicyAlways, + }, + }, + }, + } + var volumeMounts = make([]v1.VolumeMount, len(pvclaims)) + var volumes = make([]v1.Volume, len(pvclaims)) + for index, pvclaim := range pvclaims { + volumename := fmt.Sprintf("volume%v", index+1) + volumeMounts[index] = v1.VolumeMount{Name: volumename, MountPath: "/mnt/" + volumename} + volumes[index] = v1.Volume{Name: volumename, VolumeSource: v1.VolumeSource{PersistentVolumeClaim: &v1.PersistentVolumeClaimVolumeSource{ClaimName: pvclaim.Name, ReadOnly: false}}} + } + deploymentSpec.Spec.Template.Spec.Containers[0].VolumeMounts = volumeMounts + deploymentSpec.Spec.Template.Spec.Volumes = volumes + return deploymentSpec +} + +// GetPodsForDeployment gets pods for the given deployment +func GetPodsForDeployment(client clientset.Interface, deployment *extensions.Deployment) (*v1.PodList, error) { + replicaSet, err := deploymentutil.GetNewReplicaSet(deployment, client.ExtensionsV1beta1()) + if err != nil { + return nil, fmt.Errorf("Failed to get new replica set for deployment %q: %v", deployment.Name, err) + } + if replicaSet == nil { + return nil, fmt.Errorf("expected a new replica set for deployment %q, found none", deployment.Name) + } + podListFunc := func(namespace string, options metav1.ListOptions) (*v1.PodList, error) { + return client.Core().Pods(namespace).List(options) + } + rsList := []*extensions.ReplicaSet{replicaSet} + podList, err := deploymentutil.ListPods(deployment, rsList, podListFunc) + if err != nil { + return nil, fmt.Errorf("Failed to list Pods of Deployment %q: %v", deployment.Name, err) + } + return podList, nil +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/exec_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/exec_util.go index 57779f4d4..229c604c4 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/exec_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/exec_util.go @@ -26,7 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/remotecommand" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" . "github.com/onsi/gomega" ) @@ -57,7 +57,7 @@ func (f *Framework) ExecWithOptions(options ExecOptions) (string, string, error) const tty = false - req := f.ClientSet.Core().RESTClient().Post(). + req := f.ClientSet.CoreV1().RESTClient().Post(). Resource("pods"). Name(options.PodName). Namespace(options.Namespace). @@ -70,7 +70,7 @@ func (f *Framework) ExecWithOptions(options ExecOptions) (string, string, error) Stdout: options.CaptureStdout, Stderr: options.CaptureStderr, TTY: tty, - }, api.ParameterCodec) + }, legacyscheme.ParameterCodec) var stdout, stderr bytes.Buffer err = execute("POST", req.URL(), config, options.Stdin, &stdout, &stderr, tty) diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/federation_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/federation_util.go deleted file mode 100644 index 552473fab..000000000 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/federation_util.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -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 framework - -import ( - "os" - - federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" -) - -// FederationSystemNamespace returns the namespace in which -// the federation system components are hosted. -func FederationSystemNamespace() string { - federationNS := os.Getenv("FEDERATION_NAMESPACE") - if federationNS != "" { - return federationNS - } - return federationapi.FederationNamespaceSystem -} diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/firewall_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/firewall_util.go index d253fd878..08bca6a26 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/firewall_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/firewall_util.go @@ -373,7 +373,7 @@ func WaitForFirewallRule(gceCloud *gcecloud.GCECloud, fwName string, exist bool, } func GetClusterID(c clientset.Interface) (string, error) { - cm, err := c.Core().ConfigMaps(metav1.NamespaceSystem).Get(gcecloud.UIDConfigMapName, metav1.GetOptions{}) + cm, err := c.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get(gcecloud.UIDConfigMapName, metav1.GetOptions{}) if err != nil || cm == nil { return "", fmt.Errorf("error getting cluster ID: %v", err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/framework.go b/vendor/k8s.io/kubernetes/test/e2e/framework/framework.go index da81ac24e..d75bfb93f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/framework.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/framework.go @@ -38,7 +38,7 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" aggregatorclient "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/kubemark" "k8s.io/kubernetes/test/e2e/framework/metrics" @@ -71,6 +71,7 @@ type Framework struct { Namespace *v1.Namespace // Every test has at least one namespace unless creation is skipped namespacesToDelete []*v1.Namespace // Some tests have more than one. NamespaceDeletionTimeout time.Duration + SkipPrivilegedPSPBinding bool // Whether to skip creating a binding to the privileged PSP in the test namespace gatherer *containerResourceGatherer // Constraints that passed to a check which is executed after data is gathered to @@ -159,7 +160,7 @@ func (f *Framework) BeforeEach() { Expect(err).NotTo(HaveOccurred()) f.AggregatorClient, err = aggregatorclient.NewForConfig(config) Expect(err).NotTo(HaveOccurred()) - f.ClientPool = dynamic.NewClientPool(config, api.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) + f.ClientPool = dynamic.NewClientPool(config, legacyscheme.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) if ProviderIs("kubemark") && TestContext.KubemarkExternalKubeConfig != "" && TestContext.CloudConfig.KubemarkController == nil { externalConfig, err := clientcmd.BuildConfigFromFlags("", TestContext.KubemarkExternalKubeConfig) externalConfig.QPS = f.Options.ClientQPS @@ -202,13 +203,15 @@ func (f *Framework) BeforeEach() { if TestContext.GatherKubeSystemResourceUsageData != "false" && TestContext.GatherKubeSystemResourceUsageData != "none" { var err error f.gatherer, err = NewResourceUsageGatherer(f.ClientSet, ResourceGathererOptions{ - inKubemark: ProviderIs("kubemark"), - masterOnly: TestContext.GatherKubeSystemResourceUsageData == "master", - }) + InKubemark: ProviderIs("kubemark"), + MasterOnly: TestContext.GatherKubeSystemResourceUsageData == "master", + ResourceDataGatheringPeriod: 60 * time.Second, + ProbeDuration: 5 * time.Second, + }, nil) if err != nil { Logf("Error while creating NewResourceUsageGatherer: %v", err) } else { - go f.gatherer.startGatheringData() + go f.gatherer.StartGatheringData() } } @@ -318,7 +321,7 @@ func (f *Framework) AfterEach() { if TestContext.GatherKubeSystemResourceUsageData != "false" && TestContext.GatherKubeSystemResourceUsageData != "none" && f.gatherer != nil { By("Collecting resource usage data") - summary, resourceViolationError := f.gatherer.stopAndSummarize([]int{90, 99, 100}, f.AddonResourceConstraints) + summary, resourceViolationError := f.gatherer.StopAndSummarize([]int{90, 99, 100}, f.AddonResourceConstraints) defer ExpectNoError(resourceViolationError) f.TestSummaries = append(f.TestSummaries, summary) } @@ -373,6 +376,11 @@ func (f *Framework) CreateNamespace(baseName string, labels map[string]string) ( if ns != nil { f.namespacesToDelete = append(f.namespacesToDelete, ns) } + + if !f.SkipPrivilegedPSPBinding { + CreatePrivilegedPSPBinding(f, ns.Name) + } + return ns, err } @@ -495,7 +503,7 @@ func (f *Framework) CreateServiceForSimpleApp(contPort, svcPort int, appName str } } Logf("Creating a service-for-%v for selecting app=%v-pod", appName, appName) - service, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(&v1.Service{ + service, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(&v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "service-for-" + appName, Labels: map[string]string{ @@ -521,7 +529,7 @@ func (f *Framework) CreatePodsPerNodeForSimpleApp(appName string, podSpec func(n // one per node, but no more than maxCount. if i <= maxCount { Logf("%v/%v : Creating container with label app=%v-pod", i, maxCount, appName) - _, err := f.ClientSet.Core().Pods(f.Namespace.Name).Create(&v1.Pod{ + _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(&v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf(appName+"-pod-%v", i), Labels: labels, @@ -634,6 +642,11 @@ func KubeDescribe(text string, body func()) bool { return Describe("[k8s.io] "+text, body) } +// Wrapper function for ginkgo It. Adds "[Conformance]" tag and makes static analysis easier. +func ConformanceIt(text string, body interface{}, timeout ...float64) bool { + return It(text+" [Conformance]", body, timeout...) +} + // PodStateVerification represents a verification of pod state. // Any time you have a set of pods that you want to operate against or query, // this struct can be used to declaratively identify those pods. @@ -707,9 +720,9 @@ func filterLabels(selectors map[string]string, cli clientset.Interface, ns strin if len(selectors) > 0 { selector = labels.SelectorFromSet(labels.Set(selectors)) options := metav1.ListOptions{LabelSelector: selector.String()} - pl, err = cli.Core().Pods(ns).List(options) + pl, err = cli.CoreV1().Pods(ns).List(options) } else { - pl, err = cli.Core().Pods(ns).List(metav1.ListOptions{}) + pl, err = cli.CoreV1().Pods(ns).List(metav1.ListOptions{}) } return pl, err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/ingress_utils.go b/vendor/k8s.io/kubernetes/test/e2e/framework/ingress_utils.go index bbb5223eb..6cec7d9dc 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/ingress_utils.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/ingress_utils.go @@ -62,7 +62,12 @@ const ( validFor = 365 * 24 * time.Hour // Ingress class annotation defined in ingress repository. - ingressClass = "kubernetes.io/ingress.class" + // TODO: All these annotations should be reused from + // ingress-gce/pkg/annotations instead of duplicating them here. + IngressClass = "kubernetes.io/ingress.class" + + // Ingress class annotation value for multi cluster ingress. + MulticlusterIngressClassValue = "gce-multi-cluster" // all cloud resources created by the ingress controller start with this // prefix. @@ -126,7 +131,7 @@ type IngressConformanceTests struct { // CreateIngressComformanceTests generates an slice of sequential test cases: // a simple http ingress, ingress with HTTPS, ingress HTTPS with a modified hostname, // ingress https with a modified URLMap -func CreateIngressComformanceTests(jig *IngressTestJig, ns string) []IngressConformanceTests { +func CreateIngressComformanceTests(jig *IngressTestJig, ns string, annotations map[string]string) []IngressConformanceTests { manifestPath := filepath.Join(IngressManifestPath, "http") // These constants match the manifests used in IngressManifestPath tlsHost := "foo.bar.com" @@ -138,7 +143,7 @@ func CreateIngressComformanceTests(jig *IngressTestJig, ns string) []IngressConf return []IngressConformanceTests{ { fmt.Sprintf("should create a basic HTTP ingress"), - func() { jig.CreateIngress(manifestPath, ns, map[string]string{}) }, + func() { jig.CreateIngress(manifestPath, ns, annotations, annotations) }, fmt.Sprintf("waiting for urls on basic HTTP ingress"), }, { @@ -312,14 +317,14 @@ func createIngressTLSSecret(kubeClient clientset.Interface, ing *extensions.Ingr }, } var s *v1.Secret - if s, err = kubeClient.Core().Secrets(ing.Namespace).Get(tls.SecretName, metav1.GetOptions{}); err == nil { + if s, err = kubeClient.CoreV1().Secrets(ing.Namespace).Get(tls.SecretName, metav1.GetOptions{}); err == nil { // TODO: Retry the update. We don't really expect anything to conflict though. Logf("Updating secret %v in ns %v with hosts %v for ingress %v", secret.Name, secret.Namespace, host, ing.Name) s.Data = secret.Data - _, err = kubeClient.Core().Secrets(ing.Namespace).Update(s) + _, err = kubeClient.CoreV1().Secrets(ing.Namespace).Update(s) } else { Logf("Creating secret %v in ns %v with hosts %v for ingress %v", secret.Name, secret.Namespace, host, ing.Name) - _, err = kubeClient.Core().Secrets(ing.Namespace).Create(secret) + _, err = kubeClient.CoreV1().Secrets(ing.Namespace).Create(secret) } return host, cert, key, err } @@ -591,6 +596,39 @@ func (cont *GCEIngressController) deleteInstanceGroup(del bool) (msg string) { return msg } +func (cont *GCEIngressController) deleteNetworkEndpointGroup(del bool) (msg string) { + gceCloud := cont.Cloud.Provider.(*gcecloud.GCECloud) + // TODO: E2E cloudprovider has only 1 zone, but the cluster can have many. + // We need to poll on all NEGs across all zones. + negList, err := gceCloud.ListNetworkEndpointGroup(cont.Cloud.Zone) + if err != nil { + if cont.isHTTPErrorCode(err, http.StatusNotFound) { + return msg + } + // Do not return error as NEG is still alpha. + Logf("Failed to list network endpoint group: %v", err) + return msg + } + if len(negList) == 0 { + return msg + } + for _, neg := range negList { + if !cont.canDeleteNEG(neg.Name, neg.CreationTimestamp, del) { + continue + } + if del { + Logf("Deleting network-endpoint-group: %s", neg.Name) + if err := gceCloud.DeleteNetworkEndpointGroup(neg.Name, cont.Cloud.Zone); err != nil && + !cont.isHTTPErrorCode(err, http.StatusNotFound) { + msg += fmt.Sprintf("Failed to delete network endpoint group %v\n", neg.Name) + } + } else { + msg += fmt.Sprintf("%v (network-endpoint-group)\n", neg.Name) + } + } + return msg +} + // canDelete returns true if either the name ends in a suffix matching this // controller's UID, or the creationTimestamp exceeds the maxAge and del is set // to true. Always returns false if the name doesn't match that we expect for @@ -617,6 +655,28 @@ func (cont *GCEIngressController) canDelete(resourceName, creationTimestamp stri if !delOldResources { return false } + return canDeleteWithTimestamp(resourceName, creationTimestamp) +} + +// canDeleteNEG returns true if either the name contains this controller's UID, +// or the creationTimestamp exceeds the maxAge and del is set to true. +func (cont *GCEIngressController) canDeleteNEG(resourceName, creationTimestamp string, delOldResources bool) bool { + if !strings.HasPrefix(resourceName, "k8s") { + return false + } + + if strings.Contains(resourceName, cont.UID) { + return true + } + + if !delOldResources { + return false + } + + return canDeleteWithTimestamp(resourceName, creationTimestamp) +} + +func canDeleteWithTimestamp(resourceName, creationTimestamp string) bool { createdTime, err := time.Parse(time.RFC3339, creationTimestamp) if err != nil { Logf("WARNING: Failed to parse creation timestamp %v for %v: %v", creationTimestamp, resourceName, err) @@ -667,6 +727,44 @@ func (cont *GCEIngressController) isHTTPErrorCode(err error, code int) bool { return ok && apiErr.Code == code } +// BackendServiceUsingNEG returns true only if all global backend service with matching nodeports pointing to NEG as backend +func (cont *GCEIngressController) BackendServiceUsingNEG(nodeports []string) (bool, error) { + return cont.backendMode(nodeports, "networkEndpointGroups") +} + +// BackendServiceUsingIG returns true only if all global backend service with matching nodeports pointing to IG as backend +func (cont *GCEIngressController) BackendServiceUsingIG(nodeports []string) (bool, error) { + return cont.backendMode(nodeports, "instanceGroups") +} + +func (cont *GCEIngressController) backendMode(nodeports []string, keyword string) (bool, error) { + gceCloud := cont.Cloud.Provider.(*gcecloud.GCECloud) + beList, err := gceCloud.ListGlobalBackendServices() + if err != nil { + return false, fmt.Errorf("failed to list backend services: %v", err) + } + + matchingBackendService := 0 + for _, bs := range beList.Items { + match := false + for _, np := range nodeports { + // Warning: This assumes backend service naming convention includes nodeport in the name + if strings.Contains(bs.Name, np) { + match = true + matchingBackendService += 1 + } + } + if match { + for _, be := range bs.Backends { + if !strings.Contains(be.Group, keyword) { + return false, nil + } + } + } + } + return matchingBackendService == len(nodeports), nil +} + // Cleanup cleans up cloud resources. // If del is false, it simply reports existing resources without deleting them. // If dle is true, it deletes resources it finds acceptable (see canDelete func). @@ -683,6 +781,7 @@ func (cont *GCEIngressController) Cleanup(del bool) error { errMsg += cont.deleteHTTPHealthCheck(del) errMsg += cont.deleteInstanceGroup(del) + errMsg += cont.deleteNetworkEndpointGroup(del) errMsg += cont.deleteFirewallRule(del) errMsg += cont.deleteSSLCertificate(del) @@ -812,7 +911,9 @@ func GcloudComputeResourceCreate(resource, name, project string, args ...string) // Required: ing.yaml, rc.yaml, svc.yaml must exist in manifestPath // Optional: secret.yaml, ingAnnotations // If ingAnnotations is specified it will overwrite any annotations in ing.yaml -func (j *IngressTestJig) CreateIngress(manifestPath, ns string, ingAnnotations map[string]string) { +// If svcAnnotations is specified it will overwrite any annotations in svc.yaml +func (j *IngressTestJig) CreateIngress(manifestPath, ns string, ingAnnotations map[string]string, svcAnnotations map[string]string) { + var err error mkpath := func(file string) string { return filepath.Join(TestContext.RepoRoot, manifestPath, file) } @@ -822,22 +923,31 @@ func (j *IngressTestJig) CreateIngress(manifestPath, ns string, ingAnnotations m Logf("creating service") RunKubectlOrDie("create", "-f", mkpath("svc.yaml"), fmt.Sprintf("--namespace=%v", ns)) + if len(svcAnnotations) > 0 { + svcList, err := j.Client.CoreV1().Services(ns).List(metav1.ListOptions{}) + ExpectNoError(err) + for _, svc := range svcList.Items { + svc.Annotations = svcAnnotations + _, err = j.Client.CoreV1().Services(ns).Update(&svc) + ExpectNoError(err) + } + } if exists, _ := utilfile.FileExists(mkpath("secret.yaml")); exists { Logf("creating secret") RunKubectlOrDie("create", "-f", mkpath("secret.yaml"), fmt.Sprintf("--namespace=%v", ns)) } Logf("Parsing ingress from %v", filepath.Join(manifestPath, "ing.yaml")) - var err error + j.Ingress, err = manifest.IngressFromManifest(filepath.Join(manifestPath, "ing.yaml")) ExpectNoError(err) j.Ingress.Namespace = ns - j.Ingress.Annotations = map[string]string{ingressClass: j.Class} + j.Ingress.Annotations = map[string]string{IngressClass: j.Class} for k, v := range ingAnnotations { j.Ingress.Annotations[k] = v } Logf(fmt.Sprintf("creating" + j.Ingress.Name + " ingress")) - j.Ingress, err = j.Client.Extensions().Ingresses(ns).Create(j.Ingress) + j.Ingress, err = j.Client.ExtensionsV1beta1().Ingresses(ns).Create(j.Ingress) ExpectNoError(err) } @@ -846,12 +956,12 @@ func (j *IngressTestJig) Update(update func(ing *extensions.Ingress)) { var err error ns, name := j.Ingress.Namespace, j.Ingress.Name for i := 0; i < 3; i++ { - j.Ingress, err = j.Client.Extensions().Ingresses(ns).Get(name, metav1.GetOptions{}) + j.Ingress, err = j.Client.ExtensionsV1beta1().Ingresses(ns).Get(name, metav1.GetOptions{}) if err != nil { Failf("failed to get ingress %q: %v", name, err) } update(j.Ingress) - j.Ingress, err = j.Client.Extensions().Ingresses(ns).Update(j.Ingress) + j.Ingress, err = j.Client.ExtensionsV1beta1().Ingresses(ns).Update(j.Ingress) if err == nil { DescribeIng(j.Ingress.Namespace) return @@ -889,7 +999,7 @@ func (j *IngressTestJig) GetRootCA(secretName string) (rootCA []byte) { // TryDeleteIngress attempts to delete the ingress resource and logs errors if they occur. func (j *IngressTestJig) TryDeleteIngress() { - err := j.Client.Extensions().Ingresses(j.Ingress.Namespace).Delete(j.Ingress.Name, nil) + err := j.Client.ExtensionsV1beta1().Ingresses(j.Ingress.Namespace).Delete(j.Ingress.Name, nil) if err != nil { Logf("Error while deleting the ingress %v/%v: %v", j.Ingress.Namespace, j.Ingress.Name, err) } @@ -954,14 +1064,16 @@ func (j *IngressTestJig) pollServiceNodePort(ns, name string, port int) { ExpectNoError(PollURL(u, "", 30*time.Second, j.PollInterval, &http.Client{Timeout: IngressReqTimeout}, false)) } -// GetIngressNodePorts returns all related backend services' nodePorts. +// GetIngressNodePorts returns related backend services' nodePorts. // Current GCE ingress controller allows traffic to the default HTTP backend -// by default, so retrieve its nodePort as well. -func (j *IngressTestJig) GetIngressNodePorts() []string { +// by default, so retrieve its nodePort if includeDefaultBackend is true. +func (j *IngressTestJig) GetIngressNodePorts(includeDefaultBackend bool) []string { nodePorts := []string{} - defaultSvc, err := j.Client.Core().Services(metav1.NamespaceSystem).Get(defaultBackendName, metav1.GetOptions{}) - Expect(err).NotTo(HaveOccurred()) - nodePorts = append(nodePorts, strconv.Itoa(int(defaultSvc.Spec.Ports[0].NodePort))) + if includeDefaultBackend { + defaultSvc, err := j.Client.CoreV1().Services(metav1.NamespaceSystem).Get(defaultBackendName, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + nodePorts = append(nodePorts, strconv.Itoa(int(defaultSvc.Spec.Ports[0].NodePort))) + } backendSvcs := []string{} if j.Ingress.Spec.Backend != nil { @@ -973,7 +1085,7 @@ func (j *IngressTestJig) GetIngressNodePorts() []string { } } for _, svcName := range backendSvcs { - svc, err := j.Client.Core().Services(j.Ingress.Namespace).Get(svcName, metav1.GetOptions{}) + svc, err := j.Client.CoreV1().Services(j.Ingress.Namespace).Get(svcName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) nodePorts = append(nodePorts, strconv.Itoa(int(svc.Spec.Ports[0].NodePort))) } @@ -982,7 +1094,7 @@ func (j *IngressTestJig) GetIngressNodePorts() []string { // ConstructFirewallForIngress returns the expected GCE firewall rule for the ingress resource func (j *IngressTestJig) ConstructFirewallForIngress(gceController *GCEIngressController, nodeTags []string) *compute.Firewall { - nodePorts := j.GetIngressNodePorts() + nodePorts := j.GetIngressNodePorts(true) fw := compute.Firewall{} fw.Name = gceController.GetFirewallRuleName() @@ -997,9 +1109,31 @@ func (j *IngressTestJig) ConstructFirewallForIngress(gceController *GCEIngressCo return &fw } +// GetDistinctResponseFromIngress tries GET call to the ingress VIP and return all distinct responses. +func (j *IngressTestJig) GetDistinctResponseFromIngress() (sets.String, error) { + // Wait for the loadbalancer IP. + address, err := WaitForIngressAddress(j.Client, j.Ingress.Namespace, j.Ingress.Name, LoadBalancerPollTimeout) + if err != nil { + Failf("Ingress failed to acquire an IP address within %v", LoadBalancerPollTimeout) + } + responses := sets.NewString() + timeoutClient := &http.Client{Timeout: IngressReqTimeout} + + for i := 0; i < 100; i++ { + url := fmt.Sprintf("http://%v", address) + res, err := SimpleGET(timeoutClient, url, "") + if err != nil { + Logf("Failed to GET %q. Got responses: %q: %v", url, res, err) + return responses, err + } + responses.Insert(res) + } + return responses, nil +} + func (cont *GCEIngressController) getL7AddonUID() (string, error) { Logf("Retrieving UID from config map: %v/%v", metav1.NamespaceSystem, uidConfigMap) - cm, err := cont.Client.Core().ConfigMaps(metav1.NamespaceSystem).Get(uidConfigMap, metav1.GetOptions{}) + cm, err := cont.Client.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get(uidConfigMap, metav1.GetOptions{}) if err != nil { return "", err } @@ -1043,14 +1177,14 @@ func (cont *NginxIngressController) Init() { Logf("initializing nginx ingress controller") RunKubectlOrDie("create", "-f", mkpath("rc.yaml"), fmt.Sprintf("--namespace=%v", cont.Ns)) - rc, err := cont.Client.Core().ReplicationControllers(cont.Ns).Get("nginx-ingress-controller", metav1.GetOptions{}) + rc, err := cont.Client.CoreV1().ReplicationControllers(cont.Ns).Get("nginx-ingress-controller", metav1.GetOptions{}) ExpectNoError(err) cont.rc = rc Logf("waiting for pods with label %v", rc.Spec.Selector) sel := labels.SelectorFromSet(labels.Set(rc.Spec.Selector)) ExpectNoError(testutils.WaitForPodsWithLabelRunning(cont.Client, cont.Ns, sel)) - pods, err := cont.Client.Core().Pods(cont.Ns).List(metav1.ListOptions{LabelSelector: sel.String()}) + pods, err := cont.Client.CoreV1().Pods(cont.Ns).List(metav1.ListOptions{LabelSelector: sel.String()}) ExpectNoError(err) if len(pods.Items) == 0 { Failf("Failed to find nginx ingress controller pods with selector %v", sel) diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/jobs_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/jobs_util.go index 87b620965..42d475df5 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/jobs_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/jobs_util.go @@ -112,19 +112,19 @@ func NewTestJob(behavior, name string, rPol v1.RestartPolicy, parallelism, compl // GetJob uses c to get the Job in namespace ns named name. If the returned error is nil, the returned Job is valid. func GetJob(c clientset.Interface, ns, name string) (*batch.Job, error) { - return c.Batch().Jobs(ns).Get(name, metav1.GetOptions{}) + return c.BatchV1().Jobs(ns).Get(name, metav1.GetOptions{}) } // CreateJob uses c to create job in namespace ns. If the returned error is nil, the returned Job is valid and has // been created. func CreateJob(c clientset.Interface, ns string, job *batch.Job) (*batch.Job, error) { - return c.Batch().Jobs(ns).Create(job) + return c.BatchV1().Jobs(ns).Create(job) } // UpdateJob uses c to updated job in namespace ns. If the returned error is nil, the returned Job is valid and has // been updated. func UpdateJob(c clientset.Interface, ns string, job *batch.Job) (*batch.Job, error) { - return c.Batch().Jobs(ns).Update(job) + return c.BatchV1().Jobs(ns).Update(job) } // UpdateJobFunc updates the job object. It retries if there is a conflict, throw out error if @@ -153,7 +153,7 @@ func UpdateJobFunc(c clientset.Interface, ns, name string, updateFn func(job *ba // DeleteJob uses c to delete the Job named name in namespace ns. If the returned error is nil, the Job has been // deleted. func DeleteJob(c clientset.Interface, ns, name string) error { - return c.Batch().Jobs(ns).Delete(name, nil) + return c.BatchV1().Jobs(ns).Delete(name, nil) } // GetJobPods returns a list of Pods belonging to a Job. @@ -184,7 +184,7 @@ func WaitForAllJobPodsRunning(c clientset.Interface, ns, jobName string, paralle // WaitForJobFinish uses c to wait for compeletions to complete for the Job jobName in namespace ns. func WaitForJobFinish(c clientset.Interface, ns, jobName string, completions int32) error { return wait.Poll(Poll, JobTimeout, func() (bool, error) { - curr, err := c.Batch().Jobs(ns).Get(jobName, metav1.GetOptions{}) + curr, err := c.BatchV1().Jobs(ns).Get(jobName, metav1.GetOptions{}) if err != nil { return false, err } @@ -195,7 +195,7 @@ func WaitForJobFinish(c clientset.Interface, ns, jobName string, completions int // WaitForJobFailure uses c to wait for up to timeout for the Job named jobName in namespace ns to fail. func WaitForJobFailure(c clientset.Interface, ns, jobName string, timeout time.Duration, reason string) error { return wait.Poll(Poll, timeout, func() (bool, error) { - curr, err := c.Batch().Jobs(ns).Get(jobName, metav1.GetOptions{}) + curr, err := c.BatchV1().Jobs(ns).Get(jobName, metav1.GetOptions{}) if err != nil { return false, err } @@ -215,7 +215,7 @@ func WaitForJobFailure(c clientset.Interface, ns, jobName string, timeout time.D func CheckForAllJobPodsRunning(c clientset.Interface, ns, jobName string, parallelism int32) (bool, error) { label := labels.SelectorFromSet(labels.Set(map[string]string{JobSelectorKey: jobName})) options := metav1.ListOptions{LabelSelector: label.String()} - pods, err := c.Core().Pods(ns).List(options) + pods, err := c.CoreV1().Pods(ns).List(options) if err != nil { return false, err } @@ -237,7 +237,7 @@ func newBool(val bool) *bool { type updateJobFunc func(*batch.Job) func UpdateJobWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateJobFunc) (job *batch.Job, err error) { - jobs := c.Batch().Jobs(namespace) + jobs := c.BatchV1().Jobs(namespace) var updateErr error pollErr := wait.PollImmediate(10*time.Millisecond, 1*time.Minute, func() (bool, error) { if job, err = jobs.Get(name, metav1.GetOptions{}); err != nil { diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/kubelet_stats.go b/vendor/k8s.io/kubernetes/test/e2e/framework/kubelet_stats.go index 3ab82cec9..7bc06edde 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/kubelet_stats.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/kubelet_stats.go @@ -161,7 +161,7 @@ func NewRuntimeOperationMonitor(c clientset.Interface) *RuntimeOperationMonitor client: c, nodesRuntimeOps: make(map[string]NodeRuntimeOperationErrorRate), } - nodes, err := m.client.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := m.client.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { Failf("RuntimeOperationMonitor: unable to get list of nodes: %v", err) } @@ -280,33 +280,17 @@ func HighLatencyKubeletOperations(c clientset.Interface, threshold time.Duration // getStatsSummary contacts kubelet for the container information. func getStatsSummary(c clientset.Interface, nodeName string) (*stats.Summary, error) { - subResourceProxyAvailable, err := ServerVersionGTE(SubResourceServiceAndNodeProxyVersion, c.Discovery()) - if err != nil { - return nil, err - } - ctx, cancel := context.WithTimeout(context.Background(), SingleCallTimeout) defer cancel() - var data []byte - if subResourceProxyAvailable { - data, err = c.Core().RESTClient().Get(). - Context(ctx). - Resource("nodes"). - SubResource("proxy"). - Name(fmt.Sprintf("%v:%v", nodeName, ports.KubeletPort)). - Suffix("stats/summary"). - Do().Raw() - - } else { - data, err = c.Core().RESTClient().Get(). - Context(ctx). - Prefix("proxy"). - Resource("nodes"). - Name(fmt.Sprintf("%v:%v", nodeName, ports.KubeletPort)). - Suffix("stats/summary"). - Do().Raw() - } + data, err := c.CoreV1().RESTClient().Get(). + Context(ctx). + Resource("nodes"). + SubResource("proxy"). + Name(fmt.Sprintf("%v:%v", nodeName, ports.KubeletPort)). + Suffix("stats/summary"). + Do().Raw() + if err != nil { return nil, err } @@ -406,30 +390,14 @@ func getOneTimeResourceUsageOnNode( } func getNodeStatsSummary(c clientset.Interface, nodeName string) (*stats.Summary, error) { - subResourceProxyAvailable, err := ServerVersionGTE(SubResourceServiceAndNodeProxyVersion, c.Discovery()) - if err != nil { - return nil, err - } + data, err := c.CoreV1().RESTClient().Get(). + Resource("nodes"). + SubResource("proxy"). + Name(fmt.Sprintf("%v:%v", nodeName, ports.KubeletPort)). + Suffix("stats/summary"). + SetHeader("Content-Type", "application/json"). + Do().Raw() - var data []byte - if subResourceProxyAvailable { - data, err = c.Core().RESTClient().Get(). - Resource("nodes"). - SubResource("proxy"). - Name(fmt.Sprintf("%v:%v", nodeName, ports.KubeletPort)). - Suffix("stats/summary"). - SetHeader("Content-Type", "application/json"). - Do().Raw() - - } else { - data, err = c.Core().RESTClient().Get(). - Prefix("proxy"). - Resource("nodes"). - Name(fmt.Sprintf("%v:%v", nodeName, ports.KubeletPort)). - Suffix("stats/summary"). - SetHeader("Content-Type", "application/json"). - Do().Raw() - } if err != nil { return nil, err } @@ -700,7 +668,7 @@ func NewResourceMonitor(c clientset.Interface, containerNames []string, pollingI func (r *ResourceMonitor) Start() { // It should be OK to monitor unschedulable Nodes - nodes, err := r.client.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := r.client.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { Failf("ResourceMonitor: unable to get list of nodes: %v", err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/BUILD b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/BUILD index a87a7c6e8..83c93700a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/BUILD @@ -18,7 +18,7 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/framework/metrics", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/master/ports:go_default_library", "//pkg/util/system:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/api_server_metrics.go b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/api_server_metrics.go index 9f897eb7f..edc1d8271 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/api_server_metrics.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/api_server_metrics.go @@ -36,7 +36,7 @@ func parseApiServerMetrics(data string) (ApiServerMetrics, error) { } func (g *MetricsGrabber) getMetricsFromApiServer() (string, error) { - rawOutput, err := g.client.Core().RESTClient().Get().RequestURI("/metrics").Do().Raw() + rawOutput, err := g.client.CoreV1().RESTClient().Get().RequestURI("/metrics").Do().Raw() if err != nil { return "", err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/kubelet_metrics.go b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/kubelet_metrics.go index 0e6267b51..cf2d666e8 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/kubelet_metrics.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/kubelet_metrics.go @@ -65,7 +65,7 @@ func (g *MetricsGrabber) getMetricsFromNode(nodeName string, kubeletPort int) (s var err error var rawOutput []byte go func() { - rawOutput, err = g.client.Core().RESTClient().Get(). + rawOutput, err = g.client.CoreV1().RESTClient().Get(). Resource("nodes"). SubResource("proxy"). Name(fmt.Sprintf("%v:%v", nodeName, kubeletPort)). diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/metrics_grabber.go b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/metrics_grabber.go index f0cbb96ec..806ceb559 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/metrics_grabber.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics/metrics_grabber.go @@ -23,7 +23,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/util/system" @@ -57,7 +57,7 @@ type MetricsGrabber struct { func NewMetricsGrabber(c clientset.Interface, ec clientset.Interface, kubelets bool, scheduler bool, controllers bool, apiServer bool, clusterAutoscaler bool) (*MetricsGrabber, error) { registeredMaster := false masterName := "" - nodeList, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { return nil, err } @@ -101,7 +101,7 @@ func (g *MetricsGrabber) HasRegisteredMaster() bool { } func (g *MetricsGrabber) GrabFromKubelet(nodeName string) (KubeletMetrics, error) { - nodes, err := g.client.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{api.ObjectNameField: nodeName}.AsSelector().String()}) + nodes, err := g.client.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{api.ObjectNameField: nodeName}.AsSelector().String()}) if err != nil { return KubeletMetrics{}, err } @@ -210,7 +210,7 @@ func (g *MetricsGrabber) Grab() (MetricsCollection, error) { } if g.grabFromKubelets { result.KubeletMetrics = make(map[string]KubeletMetrics) - nodes, err := g.client.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := g.client.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { errs = append(errs, err) } else { @@ -231,7 +231,7 @@ func (g *MetricsGrabber) Grab() (MetricsCollection, error) { } func (g *MetricsGrabber) getMetricsFromPod(client clientset.Interface, podName string, namespace string, port int) (string, error) { - rawOutput, err := client.Core().RESTClient().Get(). + rawOutput, err := client.CoreV1().RESTClient().Get(). Namespace(namespace). Resource("pods"). SubResource("proxy"). diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics_util.go index ad882ddd1..fb1ab9117 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/metrics_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/metrics_util.go @@ -416,7 +416,7 @@ func VerifyPodStartupLatency(latency *PodStartupLatency) error { // Resets latency metrics in apiserver. func ResetMetrics(c clientset.Interface) error { Logf("Resetting latency metrics in apiserver...") - body, err := c.Core().RESTClient().Delete().AbsPath("/metrics").DoRaw() + body, err := c.CoreV1().RESTClient().Delete().AbsPath("/metrics").DoRaw() if err != nil { return err } @@ -428,7 +428,7 @@ func ResetMetrics(c clientset.Interface) error { // Retrieves metrics information. func getMetrics(c clientset.Interface) (string, error) { - body, err := c.Core().RESTClient().Get().AbsPath("/metrics").DoRaw() + body, err := c.CoreV1().RESTClient().Get().AbsPath("/metrics").DoRaw() if err != nil { return "", err } @@ -440,14 +440,9 @@ func getSchedulingLatency(c clientset.Interface) (*SchedulingLatency, error) { result := SchedulingLatency{} // Check if master Node is registered - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) ExpectNoError(err) - subResourceProxyAvailable, err := ServerVersionGTE(SubResourcePodProxyVersion, c.Discovery()) - if err != nil { - return nil, err - } - var data string var masterRegistered = false for _, node := range nodes.Items { @@ -460,25 +455,14 @@ func getSchedulingLatency(c clientset.Interface) (*SchedulingLatency, error) { defer cancel() var rawData []byte - if subResourceProxyAvailable { - rawData, err = c.Core().RESTClient().Get(). - Context(ctx). - Namespace(metav1.NamespaceSystem). - Resource("pods"). - Name(fmt.Sprintf("kube-scheduler-%v:%v", TestContext.CloudConfig.MasterName, ports.SchedulerPort)). - SubResource("proxy"). - Suffix("metrics"). - Do().Raw() - } else { - rawData, err = c.Core().RESTClient().Get(). - Context(ctx). - Prefix("proxy"). - Namespace(metav1.NamespaceSystem). - SubResource("pods"). - Name(fmt.Sprintf("kube-scheduler-%v:%v", TestContext.CloudConfig.MasterName, ports.SchedulerPort)). - Suffix("metrics"). - Do().Raw() - } + rawData, err = c.CoreV1().RESTClient().Get(). + Context(ctx). + Namespace(metav1.NamespaceSystem). + Resource("pods"). + Name(fmt.Sprintf("kube-scheduler-%v:%v", TestContext.CloudConfig.MasterName, ports.SchedulerPort)). + SubResource("proxy"). + Suffix("metrics"). + Do().Raw() ExpectNoError(err) data = string(rawData) diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/networking_utils.go b/vendor/k8s.io/kubernetes/test/e2e/framework/networking_utils.go index 021f901f7..643805b4f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/networking_utils.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/networking_utils.go @@ -45,14 +45,15 @@ import ( ) const ( - EndpointHttpPort = 8080 - EndpointUdpPort = 8081 - TestContainerHttpPort = 8080 - ClusterHttpPort = 80 - ClusterUdpPort = 90 - testPodName = "test-container-pod" - hostTestPodName = "host-test-container-pod" - nodePortServiceName = "node-port-service" + EndpointHttpPort = 8080 + EndpointUdpPort = 8081 + TestContainerHttpPort = 8080 + ClusterHttpPort = 80 + ClusterUdpPort = 90 + testPodName = "test-container-pod" + hostTestPodName = "host-test-container-pod" + nodePortServiceName = "node-port-service" + sessionAffinityServiceName = "session-affinity-service" // wait time between poll attempts of a Service vip and/or nodePort. // coupled with testTries to produce a net timeout value. hitEndpointRetryDelay = 2 * time.Second @@ -110,6 +111,9 @@ type NetworkingTestConfig struct { // NodePortService is a Service with Type=NodePort spanning over all // endpointPods. NodePortService *v1.Service + // SessionAffinityService is a Service with SessionAffinity=ClientIP + // spanning over all endpointPods. + SessionAffinityService *v1.Service // ExternalAddrs is a list of external IPs of nodes in the cluster. ExternalAddrs []string // Nodes is a list of nodes in the cluster. @@ -220,11 +224,16 @@ func (config *NetworkingTestConfig) DialFromContainer(protocol, containerIP, tar Failf("Failed to find expected endpoints:\nTries %d\nCommand %v\nretrieved %v\nexpected %v\n", maxTries, cmd, eps, expectedEps) } -func (config *NetworkingTestConfig) GetEndpointsFromTestContainer(protocol, targetIP string, targetPort, maxTries, minTries int) (sets.String, error) { - return config.GetEndpointsFromContainer(protocol, config.TestContainerPod.Status.PodIP, targetIP, TestContainerHttpPort, targetPort, maxTries, minTries) +func (config *NetworkingTestConfig) GetEndpointsFromTestContainer(protocol, targetIP string, targetPort, tries int) (sets.String, error) { + return config.GetEndpointsFromContainer(protocol, config.TestContainerPod.Status.PodIP, targetIP, TestContainerHttpPort, targetPort, tries) } -func (config *NetworkingTestConfig) GetEndpointsFromContainer(protocol, containerIP, targetIP string, containerHttpPort, targetPort, maxTries, minTries int) (sets.String, error) { +// GetEndpointsFromContainer executes a curl via kubectl exec in a test container, +// which might then translate to a tcp or udp request based on the protocol argument +// in the url. It returns all different endpoints from multiple retries. +// - tries is the number of curl attempts. If this many attempts pass and +// we don't see any endpoints, the test fails. +func (config *NetworkingTestConfig) GetEndpointsFromContainer(protocol, containerIP, targetIP string, containerHttpPort, targetPort, tries int) (sets.String, error) { cmd := fmt.Sprintf("curl -q -s 'http://%s:%d/dial?request=hostName&protocol=%s&host=%s&port=%d&tries=1'", containerIP, containerHttpPort, @@ -234,7 +243,7 @@ func (config *NetworkingTestConfig) GetEndpointsFromContainer(protocol, containe eps := sets.NewString() - for i := 0; i < maxTries; i++ { + for i := 0; i < tries; i++ { stdout, stderr, err := config.f.ExecShellInPodWithFullOutput(config.HostTestContainerPod.Name, cmd) if err != nil { // A failure to kubectl exec counts as a try, not a hard fail. @@ -242,6 +251,7 @@ func (config *NetworkingTestConfig) GetEndpointsFromContainer(protocol, containe // we confirm unreachability. Logf("Failed to execute %q: %v, stdout: %q, stderr: %q", cmd, err, stdout, stderr) } else { + Logf("Tries: %d, in try: %d, stdout: %v, stderr: %v, command run in: %#v", tries, i, stdout, stderr, config.HostTestContainerPod) var output map[string][]string if err := json.Unmarshal([]byte(stdout), &output); err != nil { Logf("WARNING: Failed to unmarshal curl response. Cmd %v run in %v, output: %s, err: %v", @@ -255,10 +265,11 @@ func (config *NetworkingTestConfig) GetEndpointsFromContainer(protocol, containe eps.Insert(trimmed) } } - return eps, nil + // TODO: get rid of this delay #36281 + time.Sleep(hitEndpointRetryDelay) } } - return nil, fmt.Errorf("Failed to get endpoints:\nTries %d\nCommand %v\n", minTries, cmd) + return eps, nil } // DialFromNode executes a tcp or udp request based on protocol via kubectl exec @@ -456,10 +467,14 @@ func (config *NetworkingTestConfig) createTestPodSpec() *v1.Pod { return pod } -func (config *NetworkingTestConfig) createNodePortService(selector map[string]string) { - serviceSpec := &v1.Service{ +func (config *NetworkingTestConfig) createNodePortServiceSpec(svcName string, selector map[string]string, enableSessionAffinity bool) *v1.Service { + sessionAffinity := v1.ServiceAffinityNone + if enableSessionAffinity { + sessionAffinity = v1.ServiceAffinityClientIP + } + return &v1.Service{ ObjectMeta: metav1.ObjectMeta{ - Name: nodePortServiceName, + Name: svcName, }, Spec: v1.ServiceSpec{ Type: v1.ServiceTypeNodePort, @@ -467,10 +482,18 @@ func (config *NetworkingTestConfig) createNodePortService(selector map[string]st {Port: ClusterHttpPort, Name: "http", Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(EndpointHttpPort)}, {Port: ClusterUdpPort, Name: "udp", Protocol: v1.ProtocolUDP, TargetPort: intstr.FromInt(EndpointUdpPort)}, }, - Selector: selector, + Selector: selector, + SessionAffinity: sessionAffinity, }, } - config.NodePortService = config.createService(serviceSpec) +} + +func (config *NetworkingTestConfig) createNodePortService(selector map[string]string) { + config.NodePortService = config.createService(config.createNodePortServiceSpec(nodePortServiceName, selector, false)) +} + +func (config *NetworkingTestConfig) createSessionAffinityService(selector map[string]string) { + config.SessionAffinityService = config.createService(config.createNodePortServiceSpec(sessionAffinityServiceName, selector, true)) } func (config *NetworkingTestConfig) DeleteNodePortService() { @@ -542,6 +565,7 @@ func (config *NetworkingTestConfig) setup(selector map[string]string) { By("Creating the service on top of the pods in kubernetes") config.createNodePortService(selector) + config.createSessionAffinityService(selector) for _, p := range config.NodePortService.Spec.Ports { switch p.Protocol { @@ -554,7 +578,12 @@ func (config *NetworkingTestConfig) setup(selector map[string]string) { } } config.ClusterIP = config.NodePortService.Spec.ClusterIP - config.NodeIP = config.ExternalAddrs[0] + if len(config.ExternalAddrs) != 0 { + config.NodeIP = config.ExternalAddrs[0] + } else { + internalAddrs := NodeAddresses(nodeList, v1.NodeInternalIP) + config.NodeIP = internalAddrs[0] + } } func (config *NetworkingTestConfig) cleanup() { @@ -645,11 +674,11 @@ func (config *NetworkingTestConfig) getPodClient() *PodClient { } func (config *NetworkingTestConfig) getServiceClient() coreclientset.ServiceInterface { - return config.f.ClientSet.Core().Services(config.Namespace) + return config.f.ClientSet.CoreV1().Services(config.Namespace) } func (config *NetworkingTestConfig) getNamespacesClient() coreclientset.NamespaceInterface { - return config.f.ClientSet.Core().Namespaces() + return config.f.ClientSet.CoreV1().Namespaces() } func CheckReachabilityFromPod(expectToBeReachable bool, timeout time.Duration, namespace, pod, target string) { diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/nodes_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/nodes_util.go index 5cfd4d957..2908d9688 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/nodes_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/nodes_util.go @@ -29,7 +29,6 @@ import ( "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - imageutils "k8s.io/kubernetes/test/utils/image" ) func EtcdUpgrade(target_storage, target_version string) error { @@ -234,7 +233,7 @@ func CheckNodesReady(c clientset.Interface, nt time.Duration, expect int) ([]str // A rolling-update (GCE/GKE implementation of restart) can complete before the apiserver // knows about all of the nodes. Thus, we retry the list nodes call // until we get the expected number of nodes. - nodeList, errLast = c.Core().Nodes().List(metav1.ListOptions{ + nodeList, errLast = c.CoreV1().Nodes().List(metav1.ListOptions{ FieldSelector: fields.Set{"spec.unschedulable": "false"}.AsSelector().String()}) if errLast != nil { return false, nil @@ -327,7 +326,7 @@ func gceUpgradeScript() string { func waitForSSHTunnels() { Logf("Waiting for SSH tunnels to establish") RunKubectl("run", "ssh-tunnel-test", - "--image="+imageutils.GetBusyBoxImage(), + "--image=busybox", "--restart=Never", "--command", "--", "echo", "Hello") diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/pods.go b/vendor/k8s.io/kubernetes/test/e2e/framework/pods.go index 90ad5489f..b564cc70b 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/pods.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/pods.go @@ -29,7 +29,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" v1core "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/kubelet/events" "k8s.io/kubernetes/pkg/kubelet/sysctl" @@ -50,7 +50,7 @@ var ImageWhiteList sets.String func (f *Framework) PodClient() *PodClient { return &PodClient{ f: f, - PodInterface: f.ClientSet.Core().Pods(f.Namespace.Name), + PodInterface: f.ClientSet.CoreV1().Pods(f.Namespace.Name), } } @@ -60,7 +60,7 @@ func (f *Framework) PodClient() *PodClient { func (f *Framework) PodClientNS(namespace string) *PodClient { return &PodClient{ f: f, - PodInterface: f.ClientSet.Core().Pods(namespace), + PodInterface: f.ClientSet.CoreV1().Pods(namespace), } } @@ -223,7 +223,7 @@ func (c *PodClient) WaitForFailure(name string, timeout time.Duration) { func (c *PodClient) WaitForErrorEventOrSuccess(pod *v1.Pod) (*v1.Event, error) { var ev *v1.Event err := wait.Poll(Poll, PodStartTimeout, func() (bool, error) { - evnts, err := c.f.ClientSet.Core().Events(pod.Namespace).Search(api.Scheme, pod) + evnts, err := c.f.ClientSet.CoreV1().Events(pod.Namespace).Search(legacyscheme.Scheme, pod) if err != nil { return false, fmt.Errorf("error in listing events: %s", err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/psp_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/psp_util.go new file mode 100644 index 000000000..d3938c90e --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/psp_util.go @@ -0,0 +1,143 @@ +/* +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 framework + +import ( + "fmt" + "sync" + + corev1 "k8s.io/api/core/v1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/authentication/serviceaccount" + "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp" + + . "github.com/onsi/ginkgo" +) + +const ( + podSecurityPolicyPrivileged = "e2e-test-privileged-psp" +) + +var ( + isPSPEnabledOnce sync.Once + isPSPEnabled bool +) + +// Creates a PodSecurityPolicy that allows everything. +func PrivilegedPSP(name string) *extensionsv1beta1.PodSecurityPolicy { + allowPrivilegeEscalation := true + return &extensionsv1beta1.PodSecurityPolicy{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Annotations: map[string]string{seccomp.AllowedProfilesAnnotationKey: seccomp.AllowAny}, + }, + Spec: extensionsv1beta1.PodSecurityPolicySpec{ + Privileged: true, + AllowPrivilegeEscalation: &allowPrivilegeEscalation, + AllowedCapabilities: []corev1.Capability{"*"}, + Volumes: []extensionsv1beta1.FSType{extensionsv1beta1.All}, + HostNetwork: true, + HostPorts: []extensionsv1beta1.HostPortRange{{Min: 0, Max: 65535}}, + HostIPC: true, + HostPID: true, + RunAsUser: extensionsv1beta1.RunAsUserStrategyOptions{ + Rule: extensionsv1beta1.RunAsUserStrategyRunAsAny, + }, + SELinux: extensionsv1beta1.SELinuxStrategyOptions{ + Rule: extensionsv1beta1.SELinuxStrategyRunAsAny, + }, + SupplementalGroups: extensionsv1beta1.SupplementalGroupsStrategyOptions{ + Rule: extensionsv1beta1.SupplementalGroupsStrategyRunAsAny, + }, + FSGroup: extensionsv1beta1.FSGroupStrategyOptions{ + Rule: extensionsv1beta1.FSGroupStrategyRunAsAny, + }, + ReadOnlyRootFilesystem: false, + }, + } +} + +func IsPodSecurityPolicyEnabled(f *Framework) bool { + isPSPEnabledOnce.Do(func() { + psps, err := f.ClientSet.ExtensionsV1beta1().PodSecurityPolicies().List(metav1.ListOptions{}) + if err != nil { + Logf("Error listing PodSecurityPolicies; assuming PodSecurityPolicy is disabled: %v", err) + isPSPEnabled = false + } else if psps == nil || len(psps.Items) == 0 { + Logf("No PodSecurityPolicies found; assuming PodSecurityPolicy is disabled.") + isPSPEnabled = false + } else { + Logf("Found PodSecurityPolicies; assuming PodSecurityPolicy is enabled.") + isPSPEnabled = true + } + }) + return isPSPEnabled +} + +var ( + privilegedPSPOnce sync.Once +) + +func CreatePrivilegedPSPBinding(f *Framework, namespace string) { + if !IsPodSecurityPolicyEnabled(f) { + return + } + // Create the privileged PSP & role + privilegedPSPOnce.Do(func() { + _, err := f.ClientSet.ExtensionsV1beta1().PodSecurityPolicies().Get( + podSecurityPolicyPrivileged, metav1.GetOptions{}) + if !apierrs.IsNotFound(err) { + // Privileged PSP was already created. + ExpectNoError(err, "Failed to get PodSecurityPolicy %s", podSecurityPolicyPrivileged) + return + } + + psp := PrivilegedPSP(podSecurityPolicyPrivileged) + psp, err = f.ClientSet.ExtensionsV1beta1().PodSecurityPolicies().Create(psp) + ExpectNoError(err, "Failed to create PSP %s", podSecurityPolicyPrivileged) + + // Create the Role to bind it to the namespace. + _, err = f.ClientSet.RbacV1beta1().ClusterRoles().Create(&rbacv1beta1.ClusterRole{ + ObjectMeta: metav1.ObjectMeta{Name: podSecurityPolicyPrivileged}, + Rules: []rbacv1beta1.PolicyRule{{ + APIGroups: []string{"extensions"}, + Resources: []string{"podsecuritypolicies"}, + ResourceNames: []string{podSecurityPolicyPrivileged}, + Verbs: []string{"use"}, + }}, + }) + ExpectNoError(err, "Failed to create PSP role") + }) + + By(fmt.Sprintf("Binding the %s PodSecurityPolicy to the default service account in %s", + podSecurityPolicyPrivileged, namespace)) + BindClusterRoleInNamespace(f.ClientSet.RbacV1beta1(), + podSecurityPolicyPrivileged, + namespace, + rbacv1beta1.Subject{ + Kind: rbacv1beta1.ServiceAccountKind, + Namespace: namespace, + Name: "default", + }) + ExpectNoError(WaitForNamedAuthorizationUpdate(f.ClientSet.AuthorizationV1beta1(), + serviceaccount.MakeUsername(namespace, "default"), namespace, "use", podSecurityPolicyPrivileged, + schema.GroupResource{Group: "extensions", Resource: "podsecuritypolicies"}, true)) +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/pv_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/pv_util.go index e6397c9e2..92c91a70c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/pv_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/pv_util.go @@ -36,7 +36,7 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/api/testapi" - "k8s.io/kubernetes/pkg/api/v1/helper" + "k8s.io/kubernetes/pkg/apis/core/v1/helper" awscloud "k8s.io/kubernetes/pkg/cloudprovider/providers/aws" gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" "k8s.io/kubernetes/pkg/volume/util/volumehelper" @@ -790,12 +790,12 @@ func deletePD(pdName string) error { // Returns a pod definition based on the namespace. The pod references the PVC's // name. func MakeWritePod(ns string, pvc *v1.PersistentVolumeClaim) *v1.Pod { - return MakePod(ns, []*v1.PersistentVolumeClaim{pvc}, true, "touch /mnt/volume1/SUCCESS && (id -G | grep -E '\\b777\\b')") + return MakePod(ns, nil, []*v1.PersistentVolumeClaim{pvc}, true, "touch /mnt/volume1/SUCCESS && (id -G | grep -E '\\b777\\b')") } // Returns a pod definition based on the namespace. The pod references the PVC's // name. A slice of BASH commands can be supplied as args to be run by the pod -func MakePod(ns string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string) *v1.Pod { +func MakePod(ns string, nodeSelector map[string]string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string) *v1.Pod { if len(command) == 0 { command = "while true; do sleep 1; done" } @@ -832,6 +832,9 @@ func MakePod(ns string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, } podSpec.Spec.Containers[0].VolumeMounts = volumeMounts podSpec.Spec.Volumes = volumes + if nodeSelector != nil { + podSpec.Spec.NodeSelector = nodeSelector + } return podSpec } @@ -886,9 +889,9 @@ func MakeSecPod(ns string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bo return podSpec } -// create pod with given claims -func CreatePod(client clientset.Interface, namespace string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string) (*v1.Pod, error) { - pod := MakePod(namespace, pvclaims, isPrivileged, command) +// CreatePod with given claims based on node selector +func CreatePod(client clientset.Interface, namespace string, nodeSelector map[string]string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string) (*v1.Pod, error) { + pod := MakePod(namespace, nodeSelector, pvclaims, isPrivileged, command) pod, err := client.CoreV1().Pods(namespace).Create(pod) if err != nil { return nil, fmt.Errorf("pod Create API error: %v", err) @@ -928,7 +931,7 @@ func CreateSecPod(client clientset.Interface, namespace string, pvclaims []*v1.P // Define and create a pod with a mounted PV. Pod runs infinite loop until killed. func CreateClientPod(c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim) (*v1.Pod, error) { - return CreatePod(c, ns, []*v1.PersistentVolumeClaim{pvc}, true, "") + return CreatePod(c, ns, nil, []*v1.PersistentVolumeClaim{pvc}, true, "") } // wait until all pvcs phase set to bound diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/rc_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/rc_util.go index 0e5f9c98c..d0d1982b5 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/rc_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/rc_util.go @@ -28,8 +28,8 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" testutils "k8s.io/kubernetes/test/utils" ) @@ -86,7 +86,7 @@ func RcByNameContainer(name string, replicas int32, image string, labels map[str // none are running, otherwise it does what a synchronous scale operation would do. func ScaleRCByLabels(clientset clientset.Interface, internalClientset internalclientset.Interface, ns string, l map[string]string, replicas uint) error { listOpts := metav1.ListOptions{LabelSelector: labels.SelectorFromSet(labels.Set(l)).String()} - rcs, err := clientset.Core().ReplicationControllers(ns).List(listOpts) + rcs, err := clientset.CoreV1().ReplicationControllers(ns).List(listOpts) if err != nil { return err } @@ -99,7 +99,7 @@ func ScaleRCByLabels(clientset clientset.Interface, internalClientset internalcl if err := ScaleRC(clientset, internalClientset, ns, name, replicas, false); err != nil { return err } - rc, err := clientset.Core().ReplicationControllers(ns).Get(name, metav1.GetOptions{}) + rc, err := clientset.CoreV1().ReplicationControllers(ns).Get(name, metav1.GetOptions{}) if err != nil { return err } @@ -129,12 +129,12 @@ func UpdateReplicationControllerWithRetries(c clientset.Interface, namespace, na var updateErr error pollErr := wait.PollImmediate(10*time.Millisecond, 1*time.Minute, func() (bool, error) { var err error - if rc, err = c.Core().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}); err != nil { + if rc, err = c.CoreV1().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}); err != nil { return false, err } // Apply the update, then attempt to push it to the apiserver. applyUpdate(rc) - if rc, err = c.Core().ReplicationControllers(namespace).Update(rc); err == nil { + if rc, err = c.CoreV1().ReplicationControllers(namespace).Update(rc); err == nil { Logf("Updating replication controller %q", name) return true, nil } @@ -180,7 +180,7 @@ func WaitForRCPodToDisappear(c clientset.Interface, ns, rcName, podName string) // WaitForReplicationController waits until the RC appears (exist == true), or disappears (exist == false) func WaitForReplicationController(c clientset.Interface, namespace, name string, exist bool, interval, timeout time.Duration) error { err := wait.PollImmediate(interval, timeout, func() (bool, error) { - _, err := c.Core().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) + _, err := c.CoreV1().ReplicationControllers(namespace).Get(name, metav1.GetOptions{}) if err != nil { Logf("Get ReplicationController %s in namespace %s failed (%v).", name, namespace, err) return !exist, nil @@ -200,7 +200,7 @@ func WaitForReplicationController(c clientset.Interface, namespace, name string, func WaitForReplicationControllerwithSelector(c clientset.Interface, namespace string, selector labels.Selector, exist bool, interval, timeout time.Duration) error { err := wait.PollImmediate(interval, timeout, func() (bool, error) { - rcs, err := c.Core().ReplicationControllers(namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) + rcs, err := c.CoreV1().ReplicationControllers(namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) switch { case len(rcs.Items) != 0: Logf("ReplicationController with %s in namespace %s found.", selector.String(), namespace) diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/resource_usage_gatherer.go b/vendor/k8s.io/kubernetes/test/e2e/framework/resource_usage_gatherer.go index e318842a8..6284bd17f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/resource_usage_gatherer.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/resource_usage_gatherer.go @@ -27,17 +27,13 @@ import ( "text/tabwriter" "time" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilruntime "k8s.io/apimachinery/pkg/util/runtime" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/util/system" ) -const ( - resourceDataGatheringPeriod = 60 * time.Second - probeDuration = 15 * time.Second -) - type ResourceConstraint struct { CPUConstraint float64 MemoryConstraint uint64 @@ -131,14 +127,16 @@ func leftMergeData(left, right map[int]ResourceUsagePerContainer) map[int]Resour } type resourceGatherWorker struct { - c clientset.Interface - nodeName string - wg *sync.WaitGroup - containerIDs []string - stopCh chan struct{} - dataSeries []ResourceUsagePerContainer - finished bool - inKubemark bool + c clientset.Interface + nodeName string + wg *sync.WaitGroup + containerIDs []string + stopCh chan struct{} + dataSeries []ResourceUsagePerContainer + finished bool + inKubemark bool + resourceDataGatheringPeriod time.Duration + probeDuration time.Duration } func (w *resourceGatherWorker) singleProbe() { @@ -156,13 +154,14 @@ func (w *resourceGatherWorker) singleProbe() { } } } else { - nodeUsage, err := getOneTimeResourceUsageOnNode(w.c, w.nodeName, probeDuration, func() []string { return w.containerIDs }) + nodeUsage, err := getOneTimeResourceUsageOnNode(w.c, w.nodeName, w.probeDuration, func() []string { return w.containerIDs }) if err != nil { Logf("Error while reading data from %v: %v", w.nodeName, err) return } for k, v := range nodeUsage { data[k] = v + Logf("Get container %v usage on node %v. CPUUsageInCores: %v, MemoryUsageInBytes: %v, MemoryWorkingSetInBytes: %v", k, w.nodeName, v.CPUUsageInCores, v.MemoryUsageInBytes, v.MemoryWorkingSetInBytes) } } w.dataSeries = append(w.dataSeries, data) @@ -178,7 +177,7 @@ func (w *resourceGatherWorker) gather(initialSleep time.Duration) { w.singleProbe() for { select { - case <-time.After(resourceDataGatheringPeriod): + case <-time.After(w.resourceDataGatheringPeriod): w.singleProbe() case <-w.stopCh: return @@ -189,19 +188,6 @@ func (w *resourceGatherWorker) gather(initialSleep time.Duration) { } } -func (g *containerResourceGatherer) getKubeSystemContainersResourceUsage(c clientset.Interface) { - if len(g.workers) == 0 { - return - } - delayPeriod := resourceDataGatheringPeriod / time.Duration(len(g.workers)) - delay := time.Duration(0) - for i := range g.workers { - go g.workers[i].gather(delay) - delay += delayPeriod - } - g.workerWg.Wait() -} - type containerResourceGatherer struct { client clientset.Interface stopCh chan struct{} @@ -212,11 +198,13 @@ type containerResourceGatherer struct { } type ResourceGathererOptions struct { - inKubemark bool - masterOnly bool + InKubemark bool + MasterOnly bool + ResourceDataGatheringPeriod time.Duration + ProbeDuration time.Duration } -func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOptions) (*containerResourceGatherer, error) { +func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOptions, pods *v1.PodList) (*containerResourceGatherer, error) { g := containerResourceGatherer{ client: c, stopCh: make(chan struct{}), @@ -224,7 +212,7 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt options: options, } - if options.inKubemark { + if options.InKubemark { g.workerWg.Add(1) g.workers = append(g.workers, resourceGatherWorker{ inKubemark: true, @@ -233,35 +221,44 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt finished: false, }) } else { - pods, err := c.Core().Pods("kube-system").List(metav1.ListOptions{}) - if err != nil { - Logf("Error while listing Pods: %v", err) - return nil, err + // Tracks kube-system pods if no valid PodList is passed in. + var err error + if pods == nil { + pods, err = c.CoreV1().Pods("kube-system").List(metav1.ListOptions{}) + if err != nil { + Logf("Error while listing Pods: %v", err) + return nil, err + } } for _, pod := range pods.Items { + for _, container := range pod.Status.InitContainerStatuses { + g.containerIDs = append(g.containerIDs, container.Name) + } for _, container := range pod.Status.ContainerStatuses { g.containerIDs = append(g.containerIDs, container.Name) } } - nodeList, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { Logf("Error while listing Nodes: %v", err) return nil, err } for _, node := range nodeList.Items { - if !options.masterOnly || system.IsMasterNode(node.Name) { + if !options.MasterOnly || system.IsMasterNode(node.Name) { g.workerWg.Add(1) g.workers = append(g.workers, resourceGatherWorker{ - c: c, - nodeName: node.Name, - wg: &g.workerWg, - containerIDs: g.containerIDs, - stopCh: g.stopCh, - finished: false, - inKubemark: false, + c: c, + nodeName: node.Name, + wg: &g.workerWg, + containerIDs: g.containerIDs, + stopCh: g.stopCh, + finished: false, + inKubemark: false, + resourceDataGatheringPeriod: options.ResourceDataGatheringPeriod, + probeDuration: options.ProbeDuration, }) - if options.masterOnly { + if options.MasterOnly { break } } @@ -270,12 +267,26 @@ func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOpt return &g, nil } -// startGatheringData blocks until stopAndSummarize is called. -func (g *containerResourceGatherer) startGatheringData() { - g.getKubeSystemContainersResourceUsage(g.client) +// StartGatheringData starts a stat gathering worker blocks for each node to track, +// and blocks until StopAndSummarize is called. +func (g *containerResourceGatherer) StartGatheringData() { + if len(g.workers) == 0 { + return + } + delayPeriod := g.options.ResourceDataGatheringPeriod / time.Duration(len(g.workers)) + delay := time.Duration(0) + for i := range g.workers { + go g.workers[i].gather(delay) + delay += delayPeriod + } + g.workerWg.Wait() } -func (g *containerResourceGatherer) stopAndSummarize(percentiles []int, constraints map[string]ResourceConstraint) (*ResourceUsageSummary, error) { +// StopAndSummarize stops stat gathering workers, processes the collected stats, +// generates resource summary for the passed-in percentiles, and returns the summary. +// It returns an error if the resource usage at any percentile is beyond the +// specified resource constraints. +func (g *containerResourceGatherer) StopAndSummarize(percentiles []int, constraints map[string]ResourceConstraint) (*ResourceUsageSummary, error) { close(g.stopCh) Logf("Closed stop channel. Waiting for %v workers", len(g.workers)) finished := make(chan struct{}) diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/rs_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/rs_util.go index 21b9f751c..ce1a573f8 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/rs_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/rs_util.go @@ -38,7 +38,7 @@ func UpdateReplicaSetWithRetries(c clientset.Interface, namespace, name string, // CheckNewRSAnnotations check if the new RS's annotation is as expected func CheckNewRSAnnotations(c clientset.Interface, ns, deploymentName string, expectedAnnotations map[string]string) error { - deployment, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) if err != nil { return err } @@ -58,7 +58,7 @@ func CheckNewRSAnnotations(c clientset.Interface, ns, deploymentName string, exp // WaitForReadyReplicaSet waits until the replicaset has all of its replicas ready. func WaitForReadyReplicaSet(c clientset.Interface, ns, name string) error { err := wait.Poll(Poll, pollShortTimeout, func() (bool, error) { - rs, err := c.Extensions().ReplicaSets(ns).Get(name, metav1.GetOptions{}) + rs, err := c.ExtensionsV1beta1().ReplicaSets(ns).Get(name, metav1.GetOptions{}) if err != nil { return false, err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/service_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/service_util.go index 84b687a82..cfb3ebdf2 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/service_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/service_util.go @@ -37,7 +37,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/util/retry" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" azurecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/azure" gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" @@ -89,6 +89,10 @@ const ( // ServiceTestTimeout is used for most polling/waiting activities ServiceTestTimeout = 60 * time.Second + + // GCPMaxInstancesInInstanceGroup is the maximum number of instances supported in + // one instance group on GCP. + GCPMaxInstancesInInstanceGroup = 2000 ) // This should match whatever the default/configured range is @@ -144,7 +148,7 @@ func (j *ServiceTestJig) CreateTCPServiceWithPort(namespace string, tweak func(s if tweak != nil { tweak(svc) } - result, err := j.Client.Core().Services(namespace).Create(svc) + result, err := j.Client.CoreV1().Services(namespace).Create(svc) if err != nil { Failf("Failed to create TCP Service %q: %v", svc.Name, err) } @@ -159,7 +163,7 @@ func (j *ServiceTestJig) CreateTCPServiceOrFail(namespace string, tweak func(svc if tweak != nil { tweak(svc) } - result, err := j.Client.Core().Services(namespace).Create(svc) + result, err := j.Client.CoreV1().Services(namespace).Create(svc) if err != nil { Failf("Failed to create TCP Service %q: %v", svc.Name, err) } @@ -174,7 +178,7 @@ func (j *ServiceTestJig) CreateUDPServiceOrFail(namespace string, tweak func(svc if tweak != nil { tweak(svc) } - result, err := j.Client.Core().Services(namespace).Create(svc) + result, err := j.Client.CoreV1().Services(namespace).Create(svc) if err != nil { Failf("Failed to create UDP Service %q: %v", svc.Name, err) } @@ -199,7 +203,7 @@ func (j *ServiceTestJig) CreateExternalNameServiceOrFail(namespace string, tweak if tweak != nil { tweak(svc) } - result, err := j.Client.Core().Services(namespace).Create(svc) + result, err := j.Client.CoreV1().Services(namespace).Create(svc) if err != nil { Failf("Failed to create ExternalName Service %q: %v", svc.Name, err) } @@ -331,7 +335,7 @@ func PickNodeIP(c clientset.Interface) string { // endpoints of the given Service are running. func (j *ServiceTestJig) GetEndpointNodes(svc *v1.Service) map[string][]string { nodes := j.GetNodes(MaxNodesForEndpointsTests) - endpoints, err := j.Client.Core().Endpoints(svc.Namespace).Get(svc.Name, metav1.GetOptions{}) + endpoints, err := j.Client.CoreV1().Endpoints(svc.Namespace).Get(svc.Name, metav1.GetOptions{}) if err != nil { Failf("Get endpoints for service %s/%s failed (%s)", svc.Namespace, svc.Name, err) } @@ -377,7 +381,7 @@ func (j *ServiceTestJig) GetNodesNames(maxNodesForTest int) []string { func (j *ServiceTestJig) WaitForEndpointOnNode(namespace, serviceName, nodeName string) { err := wait.PollImmediate(Poll, LoadBalancerCreateTimeoutDefault, func() (bool, error) { - endpoints, err := j.Client.Core().Endpoints(namespace).Get(serviceName, metav1.GetOptions{}) + endpoints, err := j.Client.CoreV1().Endpoints(namespace).Get(serviceName, metav1.GetOptions{}) if err != nil { Logf("Get endpoints for service %s/%s failed (%s)", namespace, serviceName, err) return false, nil @@ -457,12 +461,12 @@ func (j *ServiceTestJig) SanityCheckService(svc *v1.Service, svcType v1.ServiceT // face of timeouts and conflicts. func (j *ServiceTestJig) UpdateService(namespace, name string, update func(*v1.Service)) (*v1.Service, error) { for i := 0; i < 3; i++ { - service, err := j.Client.Core().Services(namespace).Get(name, metav1.GetOptions{}) + service, err := j.Client.CoreV1().Services(namespace).Get(name, metav1.GetOptions{}) if err != nil { return nil, fmt.Errorf("Failed to get Service %q: %v", name, err) } update(service) - service, err = j.Client.Core().Services(namespace).Update(service) + service, err = j.Client.CoreV1().Services(namespace).Update(service) if err == nil { return service, nil } @@ -554,7 +558,7 @@ func (j *ServiceTestJig) WaitForLoadBalancerDestroyOrFail(namespace, name string func (j *ServiceTestJig) waitForConditionOrFail(namespace, name string, timeout time.Duration, message string, conditionFn func(*v1.Service) bool) *v1.Service { var service *v1.Service pollFunc := func() (bool, error) { - svc, err := j.Client.Core().Services(namespace).Get(name, metav1.GetOptions{}) + svc, err := j.Client.CoreV1().Services(namespace).Get(name, metav1.GetOptions{}) if err != nil { return false, err } @@ -635,7 +639,7 @@ func (j *ServiceTestJig) AddRCAntiAffinity(rc *v1.ReplicationController) { func (j *ServiceTestJig) CreatePDBOrFail(namespace string, rc *v1.ReplicationController) *policyv1beta1.PodDisruptionBudget { pdb := j.newPDBTemplate(namespace, rc) - newPdb, err := j.Client.Policy().PodDisruptionBudgets(namespace).Create(pdb) + newPdb, err := j.Client.PolicyV1beta1().PodDisruptionBudgets(namespace).Create(pdb) if err != nil { Failf("Failed to create PDB %q %v", pdb.Name, err) } @@ -675,7 +679,7 @@ func (j *ServiceTestJig) RunOrFail(namespace string, tweak func(rc *v1.Replicati if tweak != nil { tweak(rc) } - result, err := j.Client.Core().ReplicationControllers(namespace).Create(rc) + result, err := j.Client.CoreV1().ReplicationControllers(namespace).Create(rc) if err != nil { Failf("Failed to create RC %q: %v", rc.Name, err) } @@ -692,7 +696,7 @@ func (j *ServiceTestJig) RunOrFail(namespace string, tweak func(rc *v1.Replicati func (j *ServiceTestJig) waitForPdbReady(namespace string) error { timeout := 2 * time.Minute for start := time.Now(); time.Since(start) < timeout; time.Sleep(2 * time.Second) { - pdb, err := j.Client.Policy().PodDisruptionBudgets(namespace).Get(j.Name, metav1.GetOptions{}) + pdb, err := j.Client.PolicyV1beta1().PodDisruptionBudgets(namespace).Get(j.Name, metav1.GetOptions{}) if err != nil { return err } @@ -711,7 +715,7 @@ func (j *ServiceTestJig) waitForPodsCreated(namespace string, replicas int) ([]s Logf("Waiting up to %v for %d pods to be created", timeout, replicas) for start := time.Now(); time.Since(start) < timeout; time.Sleep(2 * time.Second) { options := metav1.ListOptions{LabelSelector: label.String()} - pods, err := j.Client.Core().Pods(namespace).List(options) + pods, err := j.Client.CoreV1().Pods(namespace).List(options) if err != nil { return nil, err } @@ -779,7 +783,7 @@ func (j *ServiceTestJig) LaunchNetexecPodOnNode(f *Framework, nodeName, podName pod := newNetexecPodSpec(podName, httpPort, udpPort, hostNetwork) pod.Spec.NodeName = nodeName pod.ObjectMeta.Labels = j.Labels - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) _, err := podClient.Create(pod) ExpectNoError(err) ExpectNoError(f.WaitForPodRunning(podName)) @@ -815,7 +819,7 @@ func (j *ServiceTestJig) LaunchEchoserverPodOnNode(f *Framework, nodeName, podNa pod := newEchoServerPodSpec(podName) pod.Spec.NodeName = nodeName pod.ObjectMeta.Labels = j.Labels - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) _, err := podClient.Create(pod) ExpectNoError(err) ExpectNoError(f.WaitForPodRunning(podName)) @@ -989,7 +993,7 @@ func (t *ServiceTestFixture) CreateWebserverRC(replicas int32) *v1.ReplicationCo // CreateRC creates a replication controller and records it for cleanup. func (t *ServiceTestFixture) CreateRC(rc *v1.ReplicationController) (*v1.ReplicationController, error) { - rc, err := t.Client.Core().ReplicationControllers(t.Namespace).Create(rc) + rc, err := t.Client.CoreV1().ReplicationControllers(t.Namespace).Create(rc) if err == nil { t.rcs[rc.Name] = true } @@ -998,7 +1002,7 @@ func (t *ServiceTestFixture) CreateRC(rc *v1.ReplicationController) (*v1.Replica // Create a service, and record it for cleanup func (t *ServiceTestFixture) CreateService(service *v1.Service) (*v1.Service, error) { - result, err := t.Client.Core().Services(t.Namespace).Create(service) + result, err := t.Client.CoreV1().Services(t.Namespace).Create(service) if err == nil { t.services[service.Name] = true } @@ -1007,7 +1011,7 @@ func (t *ServiceTestFixture) CreateService(service *v1.Service) (*v1.Service, er // Delete a service, and remove it from the cleanup list func (t *ServiceTestFixture) DeleteService(serviceName string) error { - err := t.Client.Core().Services(t.Namespace).Delete(serviceName, nil) + err := t.Client.CoreV1().Services(t.Namespace).Delete(serviceName, nil) if err == nil { delete(t.services, serviceName) } @@ -1020,7 +1024,7 @@ func (t *ServiceTestFixture) Cleanup() []error { By("stopping RC " + rcName + " in namespace " + t.Namespace) err := retry.RetryOnConflict(retry.DefaultRetry, func() error { // First, resize the RC to 0. - old, err := t.Client.Core().ReplicationControllers(t.Namespace).Get(rcName, metav1.GetOptions{}) + old, err := t.Client.CoreV1().ReplicationControllers(t.Namespace).Get(rcName, metav1.GetOptions{}) if err != nil { if errors.IsNotFound(err) { return nil @@ -1029,7 +1033,7 @@ func (t *ServiceTestFixture) Cleanup() []error { } x := int32(0) old.Spec.Replicas = &x - if _, err := t.Client.Core().ReplicationControllers(t.Namespace).Update(old); err != nil { + if _, err := t.Client.CoreV1().ReplicationControllers(t.Namespace).Update(old); err != nil { if errors.IsNotFound(err) { return nil } @@ -1042,7 +1046,7 @@ func (t *ServiceTestFixture) Cleanup() []error { } // TODO(mikedanese): Wait. // Then, delete the RC altogether. - if err := t.Client.Core().ReplicationControllers(t.Namespace).Delete(rcName, nil); err != nil { + if err := t.Client.CoreV1().ReplicationControllers(t.Namespace).Delete(rcName, nil); err != nil { if !errors.IsNotFound(err) { errs = append(errs, err) } @@ -1051,7 +1055,7 @@ func (t *ServiceTestFixture) Cleanup() []error { for serviceName := range t.services { By("deleting service " + serviceName + " in namespace " + t.Namespace) - err := t.Client.Core().Services(t.Namespace).Delete(serviceName, nil) + err := t.Client.CoreV1().Services(t.Namespace).Delete(serviceName, nil) if err != nil { if !errors.IsNotFound(err) { errs = append(errs, err) @@ -1077,14 +1081,14 @@ func UpdateService(c clientset.Interface, namespace, serviceName string, update var service *v1.Service var err error for i := 0; i < 3; i++ { - service, err = c.Core().Services(namespace).Get(serviceName, metav1.GetOptions{}) + service, err = c.CoreV1().Services(namespace).Get(serviceName, metav1.GetOptions{}) if err != nil { return service, err } update(service) - service, err = c.Core().Services(namespace).Update(service) + service, err = c.CoreV1().Services(namespace).Update(service) if !errors.IsConflict(err) && !errors.IsServerTimeout(err) { return service, err @@ -1132,7 +1136,7 @@ func translatePodNameToUIDOrFail(c clientset.Interface, ns string, expectedEndpo portsByUID := make(PortsByPodUID) for name, portList := range expectedEndpoints { - pod, err := c.Core().Pods(ns).Get(name, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(ns).Get(name, metav1.GetOptions{}) if err != nil { Failf("failed to get pod %s, that's pretty weird. validation failed: %s", name, err) } @@ -1168,7 +1172,7 @@ func ValidateEndpointsOrFail(c clientset.Interface, namespace, serviceName strin By(fmt.Sprintf("waiting up to %v for service %s in namespace %s to expose endpoints %v", ServiceStartTimeout, serviceName, namespace, expectedEndpoints)) i := 1 for start := time.Now(); time.Since(start) < ServiceStartTimeout; time.Sleep(1 * time.Second) { - endpoints, err := c.Core().Endpoints(namespace).Get(serviceName, metav1.GetOptions{}) + endpoints, err := c.CoreV1().Endpoints(namespace).Get(serviceName, metav1.GetOptions{}) if err != nil { Logf("Get endpoints failed (%v elapsed, ignoring for 5s): %v", time.Since(start), err) continue @@ -1192,7 +1196,7 @@ func ValidateEndpointsOrFail(c clientset.Interface, namespace, serviceName strin i++ } - if pods, err := c.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{}); err == nil { + if pods, err := c.CoreV1().Pods(metav1.NamespaceAll).List(metav1.ListOptions{}); err == nil { for _, pod := range pods.Items { Logf("Pod %s\t%s\t%s\t%s", pod.Namespace, pod.Name, pod.Spec.NodeName, pod.DeletionTimestamp) } @@ -1207,7 +1211,7 @@ func StartServeHostnameService(c clientset.Interface, internalClient internalcli podNames := make([]string, replicas) By("creating service " + name + " in namespace " + ns) - _, err := c.Core().Services(ns).Create(&v1.Service{ + _, err := c.CoreV1().Services(ns).Create(&v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: name, }, @@ -1254,7 +1258,7 @@ func StartServeHostnameService(c clientset.Interface, internalClient internalcli } sort.StringSlice(podNames).Sort() - service, err := c.Core().Services(ns).Get(name, metav1.GetOptions{}) + service, err := c.CoreV1().Services(ns).Get(name, metav1.GetOptions{}) if err != nil { return podNames, "", err } @@ -1269,7 +1273,7 @@ func StopServeHostnameService(clientset clientset.Interface, internalClientset i if err := DeleteRCAndPods(clientset, internalClientset, ns, name); err != nil { return err } - if err := clientset.Core().Services(ns).Delete(name, nil); err != nil { + if err := clientset.CoreV1().Services(ns).Delete(name, nil); err != nil { return err } return nil diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/size.go b/vendor/k8s.io/kubernetes/test/e2e/framework/size.go index 07395f7ac..b2eaffc14 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/size.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/size.go @@ -41,13 +41,17 @@ func ResizeGroup(group string, size int32) error { if TestContext.Provider == "gce" || TestContext.Provider == "gke" { // TODO: make this hit the compute API directly instead of shelling out to gcloud. // TODO: make gce/gke implement InstanceGroups, so we can eliminate the per-provider logic + zone, err := getGCEZoneForGroup(group) + if err != nil { + return err + } output, err := exec.Command("gcloud", "compute", "instance-groups", "managed", "resize", group, fmt.Sprintf("--size=%v", size), - "--project="+TestContext.CloudConfig.ProjectID, "--zone="+TestContext.CloudConfig.Zone).CombinedOutput() + "--project="+TestContext.CloudConfig.ProjectID, "--zone="+zone).CombinedOutput() if err != nil { - Logf("Failed to resize node instance group: %v", string(output)) + return fmt.Errorf("Failed to resize node instance group %s: %s", group, output) } - return err + return nil } else if TestContext.Provider == "aws" { client := autoscaling.New(session.New()) return awscloud.ResizeInstanceGroup(client, group, int(size)) @@ -62,12 +66,15 @@ func GetGroupNodes(group string) ([]string, error) { if TestContext.Provider == "gce" || TestContext.Provider == "gke" { // TODO: make this hit the compute API directly instead of shelling out to gcloud. // TODO: make gce/gke implement InstanceGroups, so we can eliminate the per-provider logic + zone, err := getGCEZoneForGroup(group) + if err != nil { + return nil, err + } output, err := exec.Command("gcloud", "compute", "instance-groups", "managed", "list-instances", group, "--project="+TestContext.CloudConfig.ProjectID, - "--zone="+TestContext.CloudConfig.Zone).CombinedOutput() + "--zone="+zone).CombinedOutput() if err != nil { - Logf("Failed to get nodes in instance group: %v", string(output)) - return nil, err + return nil, fmt.Errorf("Failed to get nodes in instance group %s: %s", group, output) } re := regexp.MustCompile(".*RUNNING") lines := re.FindAllString(string(output), -1) @@ -86,11 +93,15 @@ func GroupSize(group string) (int, error) { if TestContext.Provider == "gce" || TestContext.Provider == "gke" { // TODO: make this hit the compute API directly instead of shelling out to gcloud. // TODO: make gce/gke implement InstanceGroups, so we can eliminate the per-provider logic + zone, err := getGCEZoneForGroup(group) + if err != nil { + return -1, err + } output, err := exec.Command("gcloud", "compute", "instance-groups", "managed", "list-instances", group, "--project="+TestContext.CloudConfig.ProjectID, - "--zone="+TestContext.CloudConfig.Zone).CombinedOutput() + "--zone="+zone).CombinedOutput() if err != nil { - return -1, err + return -1, fmt.Errorf("Failed to get group size for group %s: %s", group, output) } re := regexp.MustCompile("RUNNING") return len(re.FindAllString(string(output), -1)), nil @@ -128,3 +139,16 @@ func WaitForGroupSize(group string, size int32) error { } return fmt.Errorf("timeout waiting %v for node instance group size to be %d", timeout, size) } + +func getGCEZoneForGroup(group string) (string, error) { + zone := TestContext.CloudConfig.Zone + if TestContext.CloudConfig.MultiZone { + output, err := exec.Command("gcloud", "compute", "instance-groups", "managed", "list", + "--project="+TestContext.CloudConfig.ProjectID, "--format=value(zone)", "--filter=name="+group).CombinedOutput() + if err != nil { + return "", fmt.Errorf("Failed to get zone for node group %s: %s", group, output) + } + zone = strings.TrimSpace(string(output)) + } + return zone, nil +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/statefulset_utils.go b/vendor/k8s.io/kubernetes/test/e2e/framework/statefulset_utils.go index 600161c00..86ca9ae7e 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/statefulset_utils.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/statefulset_utils.go @@ -175,7 +175,7 @@ func (s *StatefulSetTester) Saturate(ss *apps.StatefulSet) { func (s *StatefulSetTester) DeleteStatefulPodAtIndex(index int, ss *apps.StatefulSet) { name := getStatefulSetPodNameAtIndex(index, ss) noGrace := int64(0) - if err := s.c.Core().Pods(ss.Namespace).Delete(name, &metav1.DeleteOptions{GracePeriodSeconds: &noGrace}); err != nil { + if err := s.c.CoreV1().Pods(ss.Namespace).Delete(name, &metav1.DeleteOptions{GracePeriodSeconds: &noGrace}); err != nil { Failf("Failed to delete stateful pod %v for StatefulSet %v/%v: %v", name, ss.Namespace, ss.Name, err) } } @@ -186,7 +186,7 @@ type VerifyStatefulPodFunc func(*v1.Pod) // VerifyPodAtIndex applies a visitor patter to the Pod at index in ss. verify is is applied to the Pod to "visit" it. func (s *StatefulSetTester) VerifyPodAtIndex(index int, ss *apps.StatefulSet, verify VerifyStatefulPodFunc) { name := getStatefulSetPodNameAtIndex(index, ss) - pod, err := s.c.Core().Pods(ss.Namespace).Get(name, metav1.GetOptions{}) + pod, err := s.c.CoreV1().Pods(ss.Namespace).Get(name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("Failed to get stateful pod %s for StatefulSet %s/%s", name, ss.Namespace, ss.Name)) verify(pod) } @@ -266,7 +266,7 @@ func (s *StatefulSetTester) update(ns, name string, update func(ss *apps.Statefu func (s *StatefulSetTester) GetPodList(ss *apps.StatefulSet) *v1.PodList { selector, err := metav1.LabelSelectorAsSelector(ss.Spec.Selector) ExpectNoError(err) - podList, err := s.c.Core().Pods(ss.Namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) + podList, err := s.c.CoreV1().Pods(ss.Namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) ExpectNoError(err) return podList } @@ -701,7 +701,7 @@ func DeleteAllStatefulSets(c clientset.Interface, ns string) { pvNames := sets.NewString() // TODO: Don't assume all pvcs in the ns belong to a statefulset pvcPollErr := wait.PollImmediate(StatefulSetPoll, StatefulSetTimeout, func() (bool, error) { - pvcList, err := c.Core().PersistentVolumeClaims(ns).List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) + pvcList, err := c.CoreV1().PersistentVolumeClaims(ns).List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) if err != nil { Logf("WARNING: Failed to list pvcs, retrying %v", err) return false, nil @@ -710,7 +710,7 @@ func DeleteAllStatefulSets(c clientset.Interface, ns string) { pvNames.Insert(pvc.Spec.VolumeName) // TODO: Double check that there are no pods referencing the pvc Logf("Deleting pvc: %v with volume %v", pvc.Name, pvc.Spec.VolumeName) - if err := c.Core().PersistentVolumeClaims(ns).Delete(pvc.Name, nil); err != nil { + if err := c.CoreV1().PersistentVolumeClaims(ns).Delete(pvc.Name, nil); err != nil { return false, nil } } @@ -721,7 +721,7 @@ func DeleteAllStatefulSets(c clientset.Interface, ns string) { } pollErr := wait.PollImmediate(StatefulSetPoll, StatefulSetTimeout, func() (bool, error) { - pvList, err := c.Core().PersistentVolumes().List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) + pvList, err := c.CoreV1().PersistentVolumes().List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) if err != nil { Logf("WARNING: Failed to list pvs, retrying %v", err) return false, nil @@ -751,9 +751,6 @@ func NewStatefulSetPVC(name string) v1.PersistentVolumeClaim { return v1.PersistentVolumeClaim{ ObjectMeta: metav1.ObjectMeta{ Name: name, - Annotations: map[string]string{ - "volume.alpha.kubernetes.io/storage-class": "anything", - }, }, Spec: v1.PersistentVolumeClaimSpec{ AccessModes: []v1.PersistentVolumeAccessMode{ diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go b/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go index c84622532..54e261abf 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go @@ -19,12 +19,16 @@ package framework import ( "flag" "fmt" + "io/ioutil" "os" "time" + "github.com/golang/glog" "github.com/onsi/ginkgo/config" "github.com/spf13/viper" + restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" "k8s.io/kubernetes/pkg/kubemark" @@ -61,6 +65,9 @@ type TestContextType struct { GCEUpgradeScript string ContainerRuntime string ContainerRuntimeEndpoint string + // SystemdServices are comma separated list of systemd services the test framework + // will dump logs for. + SystemdServices string ImageServiceEndpoint string MasterOSDistro string NodeOSDistro string @@ -98,12 +105,8 @@ type TestContextType struct { FeatureGates string // Node e2e specific test context NodeTestContextType - // Federation e2e context - FederatedKubeContext string - // Federation control plane version to upgrade to while doing upgrade tests - FederationUpgradeTarget string - // Whether configuration for accessing federation member clusters should be sourced from the host cluster - FederationConfigFromCluster bool + // Monitoring solution that is used in current cluster. + ClusterMonitoringMode string // Indicates what path the kubernetes-anywhere is installed on KubernetesAnywherePath string @@ -201,6 +204,7 @@ func RegisterCommonFlags() { flag.StringVar(&TestContext.Viper, "viper-config", "e2e", "The name of the viper config i.e. 'e2e' will read values from 'e2e.json' locally. All e2e parameters are meant to be configurable by viper.") flag.StringVar(&TestContext.ContainerRuntime, "container-runtime", "docker", "The container runtime of cluster VM instances (docker/rkt/remote).") flag.StringVar(&TestContext.ContainerRuntimeEndpoint, "container-runtime-endpoint", "", "The container runtime endpoint of cluster VM instances.") + flag.StringVar(&TestContext.SystemdServices, "systemd-services", "docker", "The comma separated list of systemd services the framework will dump logs for.") flag.StringVar(&TestContext.ImageServiceEndpoint, "image-service-endpoint", "", "The image service endpoint of cluster VM instances.") flag.StringVar(&TestContext.DockershimCheckpointDir, "dockershim-checkpoint-dir", "/var/lib/dockershim/sandbox", "The directory for dockershim to store sandbox checkpoints.") flag.StringVar(&TestContext.KubernetesAnywherePath, "kubernetes-anywhere-path", "/workspace/kubernetes-anywhere", "Which directory kubernetes-anywhere is installed to.") @@ -213,8 +217,6 @@ func RegisterClusterFlags() { flag.StringVar(&TestContext.KubemarkExternalKubeConfig, fmt.Sprintf("%s-%s", "kubemark-external", clientcmd.RecommendedConfigPathFlag), "", "Path to kubeconfig containing embedded authinfo for external cluster.") flag.StringVar(&TestContext.KubeContext, clientcmd.FlagContext, "", "kubeconfig context to use/override. If unset, will use value from 'current-context'") flag.StringVar(&TestContext.KubeAPIContentType, "kube-api-content-type", "application/vnd.kubernetes.protobuf", "ContentType used to communicate with apiserver") - flag.StringVar(&TestContext.FederatedKubeContext, "federated-kube-context", "e2e-federation", "kubeconfig context for federation.") - flag.BoolVar(&TestContext.FederationConfigFromCluster, "federation-config-from-cluster", false, "whether to source configuration for member clusters from the hosting cluster.") flag.StringVar(&TestContext.KubeVolumeDir, "volume-dir", "/var/lib/kubelet", "Path to the directory containing the kubelet volumes.") flag.StringVar(&TestContext.CertDir, "cert-dir", "", "Path to the directory containing the certs. Default is empty, which doesn't use certs.") @@ -225,6 +227,7 @@ func RegisterClusterFlags() { flag.StringVar(&TestContext.Prefix, "prefix", "e2e", "A prefix to be added to cloud resources created during testing.") flag.StringVar(&TestContext.MasterOSDistro, "master-os-distro", "debian", "The OS distribution of cluster master (debian, trusty, or coreos).") flag.StringVar(&TestContext.NodeOSDistro, "node-os-distro", "debian", "The OS distribution of cluster VM instances (debian, trusty, or coreos).") + flag.StringVar(&TestContext.ClusterMonitoringMode, "cluster-monitoring-mode", "influxdb", "The monitoring solution that is used in the cluster.") // TODO: Flags per provider? Rename gce-project/gce-zone? cloudConfig := &TestContext.CloudConfig @@ -252,7 +255,6 @@ func RegisterClusterFlags() { flag.StringVar(&TestContext.EtcdUpgradeVersion, "etcd-upgrade-version", "", "The etcd binary version to upgrade to (e.g., '3.0.14', '2.3.7') if doing an etcd upgrade test.") flag.StringVar(&TestContext.UpgradeImage, "upgrade-image", "", "Image to upgrade to (e.g. 'container_vm' or 'gci') if doing an upgrade test.") flag.StringVar(&TestContext.GCEUpgradeScript, "gce-upgrade-script", "", "Script to use to upgrade a GCE cluster.") - flag.StringVar(&TestContext.FederationUpgradeTarget, "federation-upgrade-target", "ci/latest", "Version to upgrade to (e.g. 'release/stable', 'release/latest', 'ci/latest', '0.19.1', '0.19.1-669-gabac8c8') if doing an federation upgrade test.") flag.BoolVar(&TestContext.CleanStart, "clean-start", false, "If true, purge all namespaces except default and system before running tests. This serves to Cleanup test namespaces from failed/interrupted e2e runs in a long-lived cluster.") flag.BoolVar(&TestContext.GarbageCollectorEnabled, "garbage-collector-enabled", true, "Set to true if the garbage collector is enabled in the kube-apiserver and kube-controller-manager, then some tests will rely on the garbage collector to delete dependent resources.") } @@ -296,15 +298,60 @@ func ViperizeFlags() { AfterReadingAllFlags(&TestContext) } +func createKubeConfig(clientCfg *restclient.Config) *clientcmdapi.Config { + clusterNick := "cluster" + userNick := "user" + contextNick := "context" + + config := clientcmdapi.NewConfig() + + credentials := clientcmdapi.NewAuthInfo() + credentials.Token = clientCfg.BearerToken + credentials.ClientCertificate = clientCfg.TLSClientConfig.CertFile + if len(credentials.ClientCertificate) == 0 { + credentials.ClientCertificateData = clientCfg.TLSClientConfig.CertData + } + credentials.ClientKey = clientCfg.TLSClientConfig.KeyFile + if len(credentials.ClientKey) == 0 { + credentials.ClientKeyData = clientCfg.TLSClientConfig.KeyData + } + config.AuthInfos[userNick] = credentials + + cluster := clientcmdapi.NewCluster() + cluster.Server = clientCfg.Host + cluster.CertificateAuthority = clientCfg.CAFile + if len(cluster.CertificateAuthority) == 0 { + cluster.CertificateAuthorityData = clientCfg.CAData + } + cluster.InsecureSkipTLSVerify = clientCfg.Insecure + config.Clusters[clusterNick] = cluster + + context := clientcmdapi.NewContext() + context.Cluster = clusterNick + context.AuthInfo = userNick + config.Contexts[contextNick] = context + config.CurrentContext = contextNick + + return config +} + // AfterReadingAllFlags makes changes to the context after all flags // have been read. func AfterReadingAllFlags(t *TestContextType) { // Only set a default host if one won't be supplied via kubeconfig if len(t.Host) == 0 && len(t.KubeConfig) == 0 { - t.Host = defaultHost - } - // Reset the cluster IP range flag to CLUSTER_IP_RANGE env var, if defined. - if clusterIPRange := os.Getenv("CLUSTER_IP_RANGE"); clusterIPRange != "" { - t.CloudConfig.ClusterIPRange = clusterIPRange + // Check if we can use the in-cluster config + if clusterConfig, err := restclient.InClusterConfig(); err == nil { + if tempFile, err := ioutil.TempFile(os.TempDir(), "kubeconfig-"); err == nil { + kubeConfig := createKubeConfig(clusterConfig) + clientcmd.WriteToFile(*kubeConfig, tempFile.Name()) + t.KubeConfig = tempFile.Name() + glog.Infof("Using a temporary kubeconfig file from in-cluster config : %s", tempFile.Name()) + } + } + if len(t.KubeConfig) == 0 { + glog.Warningf("Unable to find in-cluster config, using default host : %s", defaultHost) + t.Host = defaultHost + } } } diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/timer/BUILD b/vendor/k8s.io/kubernetes/test/e2e/framework/timer/BUILD new file mode 100644 index 000000000..afdc516b9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/timer/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = ["timer.go"], + importpath = "k8s.io/kubernetes/test/e2e/framework/timer", + visibility = ["//visibility:public"], + deps = [ + "//test/e2e/framework:go_default_library", + "//test/e2e/perftype:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["timer_test.go"], + importpath = "k8s.io/kubernetes/test/e2e/framework/timer", + library = ":go_default_library", + deps = ["//vendor/github.com/onsi/gomega: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/kubernetes/test/e2e/framework/timer/timer.go b/vendor/k8s.io/kubernetes/test/e2e/framework/timer/timer.go new file mode 100644 index 000000000..37769cb34 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/timer/timer.go @@ -0,0 +1,126 @@ +/* +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 timer + +import ( + "time" + + "bytes" + "fmt" + + "k8s.io/kubernetes/test/e2e/framework" + "k8s.io/kubernetes/test/e2e/perftype" + "sync" +) + +var now = time.Now + +// Represents a phase of a test. Phases can overlap. +type Phase struct { + sequenceNumber int + name string + startTime time.Time + endTime time.Time +} + +func (phase *Phase) ended() bool { + return !phase.endTime.IsZero() +} + +// End marks the phase as ended, unless it had already been ended before. +func (phase *Phase) End() { + if !phase.ended() { + phase.endTime = now() + } +} + +func (phase *Phase) label() string { + return fmt.Sprintf("%03d-%s", phase.sequenceNumber, phase.name) +} + +func (phase *Phase) duration() time.Duration { + endTime := phase.endTime + if !phase.ended() { + endTime = now() + } + return endTime.Sub(phase.startTime) +} + +func (phase *Phase) humanReadable() string { + if phase.ended() { + return fmt.Sprintf("Phase %s: %v\n", phase.label(), phase.duration()) + } else { + return fmt.Sprintf("Phase %s: %v so far\n", phase.label(), phase.duration()) + } +} + +// A TestPhaseTimer groups phases and provides a way to export their measurements as JSON or human-readable text. +// It is safe to use concurrently. +type TestPhaseTimer struct { + lock sync.Mutex + phases []*Phase +} + +// NewTestPhaseTimer creates a new TestPhaseTimer. +func NewTestPhaseTimer() *TestPhaseTimer { + return &TestPhaseTimer{} +} + +// StartPhase starts a new phase. +// sequenceNumber is an integer prepended to phaseName in the output, such that lexicographic sorting +// of phases in perfdash reconstructs the order of execution. Unfortunately it needs to be +// provided manually, since a simple incrementing counter would have the effect that inserting +// a new phase would renumber subsequent phases, breaking the continuity of historical records. +func (timer *TestPhaseTimer) StartPhase(sequenceNumber int, phaseName string) *Phase { + timer.lock.Lock() + defer timer.lock.Unlock() + newPhase := &Phase{sequenceNumber: sequenceNumber, name: phaseName, startTime: now()} + timer.phases = append(timer.phases, newPhase) + return newPhase +} + +func (timer *TestPhaseTimer) SummaryKind() string { + return "TestPhaseTimer" +} + +func (timer *TestPhaseTimer) PrintHumanReadable() string { + buf := bytes.Buffer{} + timer.lock.Lock() + defer timer.lock.Unlock() + for _, phase := range timer.phases { + buf.WriteString(phase.humanReadable()) + } + return buf.String() +} + +func (timer *TestPhaseTimer) PrintJSON() string { + data := perftype.PerfData{ + Version: "v1", + DataItems: []perftype.DataItem{{ + Unit: "s", + Labels: map[string]string{"test": "phases"}, + Data: make(map[string]float64)}}} + timer.lock.Lock() + defer timer.lock.Unlock() + for _, phase := range timer.phases { + data.DataItems[0].Data[phase.label()] = phase.duration().Seconds() + if !phase.ended() { + data.DataItems[0].Labels["ended"] = "false" + } + } + return framework.PrettyPrintJSON(data) +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/timer/timer_test.go b/vendor/k8s.io/kubernetes/test/e2e/framework/timer/timer_test.go new file mode 100644 index 000000000..d3dd13c9e --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/timer/timer_test.go @@ -0,0 +1,92 @@ +/* +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 timer + +import ( + "testing" + "time" + + . "github.com/onsi/gomega" +) + +var currentTime time.Time + +func init() { + setCurrentTimeSinceEpoch(0) + now = func() time.Time { return currentTime } +} + +func setCurrentTimeSinceEpoch(duration time.Duration) { + currentTime = time.Unix(0, duration.Nanoseconds()) +} + +func testUsageWithDefer(timer *TestPhaseTimer) { + defer timer.StartPhase(33, "two").End() + setCurrentTimeSinceEpoch(6*time.Second + 500*time.Millisecond) +} + +func TestTimer(t *testing.T) { + RegisterTestingT(t) + + timer := NewTestPhaseTimer() + setCurrentTimeSinceEpoch(1 * time.Second) + phaseOne := timer.StartPhase(1, "one") + setCurrentTimeSinceEpoch(3 * time.Second) + testUsageWithDefer(timer) + + Expect(timer.PrintJSON()).To(MatchJSON(`{ + "version": "v1", + "dataItems": [ + { + "data": { + "001-one": 5.5, + "033-two": 3.5 + }, + "unit": "s", + "labels": { + "test": "phases", + "ended": "false" + } + } + ] + }`)) + Expect(timer.PrintHumanReadable()).To(Equal(`Phase 001-one: 5.5s so far +Phase 033-two: 3.5s +`)) + + setCurrentTimeSinceEpoch(7*time.Second + 500*time.Millisecond) + phaseOne.End() + + Expect(timer.PrintJSON()).To(MatchJSON(`{ + "version": "v1", + "dataItems": [ + { + "data": { + "001-one": 6.5, + "033-two": 3.5 + }, + "unit": "s", + "labels": { + "test": "phases" + } + } + ] + }`)) + Expect(timer.PrintHumanReadable()).To(Equal(`Phase 001-one: 6.5s +Phase 033-two: 3.5s +`)) +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/util.go index d7b572c15..bddeeeb36 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/util.go @@ -73,11 +73,14 @@ import ( "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + utilfeature "k8s.io/apiserver/pkg/util/feature" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + appsinternal "k8s.io/kubernetes/pkg/apis/apps" batchinternal "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/client/conditions" @@ -85,6 +88,7 @@ import ( gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" "k8s.io/kubernetes/pkg/controller" nodectlr "k8s.io/kubernetes/pkg/controller/node" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubelet/util/format" "k8s.io/kubernetes/pkg/master/ports" @@ -154,14 +158,6 @@ const ( currentPodInfraContainerImageName = "gcr.io/google_containers/pause" currentPodInfraContainerImageVersion = "3.0" - // How long each node is given during a process that restarts all nodes - // before the test is considered failed. (Note that the total time to - // restart all nodes will be this number times the number of nodes.) - RestartPerNodeTimeout = 5 * time.Minute - - // How often to Poll the statues of a restart. - RestartPoll = 20 * time.Second - // How long a node is allowed to become "Ready" after it is restarted before // the test is considered failed. RestartNodeReadyAgainTimeout = 5 * time.Minute @@ -191,7 +187,7 @@ const ( ) var ( - BusyBoxImage = imageutils.GetBusyBoxImage() + BusyBoxImage = "busybox" // Label allocated to the image puller static pod that runs on each node // before e2es. ImagePullerLabels = map[string]string{"name": "e2e-image-puller"} @@ -243,24 +239,8 @@ func GetPauseImageNameForHostArch() string { return currentPodInfraContainerImageName + "-" + goruntime.GOARCH + ":" + currentPodInfraContainerImageVersion } -// SubResource proxy should have been functional in v1.0.0, but SubResource -// proxy via tunneling is known to be broken in v1.0. See -// https://github.com/kubernetes/kubernetes/pull/15224#issuecomment-146769463 -// -// TODO(ihmccreery): remove once we don't care about v1.0 anymore, (tentatively -// in v1.3). -var SubResourcePodProxyVersion = utilversion.MustParseSemantic("v1.1.0") -var SubResourceServiceAndNodeProxyVersion = utilversion.MustParseSemantic("v1.2.0") - func GetServicesProxyRequest(c clientset.Interface, request *restclient.Request) (*restclient.Request, error) { - subResourceProxyAvailable, err := ServerVersionGTE(SubResourceServiceAndNodeProxyVersion, c.Discovery()) - if err != nil { - return nil, err - } - if subResourceProxyAvailable { - return request.Resource("services").SubResource("proxy"), nil - } - return request.Prefix("proxy").Resource("services"), nil + return request.Resource("services").SubResource("proxy"), nil } // unique identifier of the e2e run @@ -333,6 +313,12 @@ func SkipIfProviderIs(unsupportedProviders ...string) { } } +func SkipUnlessLocalEphemeralStorageEnabled() { + if !utilfeature.DefaultFeatureGate.Enabled(features.LocalStorageCapacityIsolation) { + Skipf("Only supported when %v feature is enabled", features.LocalStorageCapacityIsolation) + } +} + func SkipUnlessSSHKeyPresent() { if _, err := GetSigner(TestContext.Provider); err != nil { Skipf("No SSH Key for provider %s: '%v'", TestContext.Provider, err) @@ -345,6 +331,12 @@ func SkipUnlessProviderIs(supportedProviders ...string) { } } +func SkipUnlessClusterMonitoringModeIs(supportedMonitoring ...string) { + if !ClusterMonitoringModeIs(supportedMonitoring...) { + Skipf("Only next monitoring modes are supported %v (not %s)", supportedMonitoring, TestContext.ClusterMonitoringMode) + } +} + func SkipUnlessMasterOSDistroIs(supportedMasterOsDistros ...string) { if !MasterOSDistroIs(supportedMasterOsDistros...) { Skipf("Only supported for master OS distro %v (not %s)", supportedMasterOsDistros, TestContext.MasterOSDistro) @@ -392,6 +384,15 @@ func ProviderIs(providers ...string) bool { return false } +func ClusterMonitoringModeIs(monitoringModes ...string) bool { + for _, mode := range monitoringModes { + if strings.ToLower(mode) == strings.ToLower(TestContext.ClusterMonitoringMode) { + return true + } + } + return false +} + func MasterOSDistroIs(supportedMasterOsDistros ...string) bool { for _, distro := range supportedMasterOsDistros { if strings.ToLower(distro) == strings.ToLower(TestContext.MasterOSDistro) { @@ -538,7 +539,7 @@ func WaitForPodsSuccess(c clientset.Interface, ns string, successPodLabels map[s start, badPods, desiredPods := time.Now(), []v1.Pod{}, 0 if wait.PollImmediate(30*time.Second, timeout, func() (bool, error) { - podList, err := c.Core().Pods(ns).List(metav1.ListOptions{LabelSelector: successPodSelector.String()}) + podList, err := c.CoreV1().Pods(ns).List(metav1.ListOptions{LabelSelector: successPodSelector.String()}) if err != nil { Logf("Error getting pods in namespace %q: %v", ns, err) if IsRetryableAPIError(err) { @@ -600,7 +601,7 @@ func WaitForPodsRunningReady(c clientset.Interface, ns string, minPods, allowedN // checked. replicas, replicaOk := int32(0), int32(0) - rcList, err := c.Core().ReplicationControllers(ns).List(metav1.ListOptions{}) + rcList, err := c.CoreV1().ReplicationControllers(ns).List(metav1.ListOptions{}) if err != nil { Logf("Error getting replication controllers in namespace '%s': %v", ns, err) if IsRetryableAPIError(err) { @@ -613,7 +614,7 @@ func WaitForPodsRunningReady(c clientset.Interface, ns string, minPods, allowedN replicaOk += rc.Status.ReadyReplicas } - rsList, err := c.Extensions().ReplicaSets(ns).List(metav1.ListOptions{}) + rsList, err := c.ExtensionsV1beta1().ReplicaSets(ns).List(metav1.ListOptions{}) if err != nil { Logf("Error getting replication sets in namespace %q: %v", ns, err) if IsRetryableAPIError(err) { @@ -626,7 +627,7 @@ func WaitForPodsRunningReady(c clientset.Interface, ns string, minPods, allowedN replicaOk += rs.Status.ReadyReplicas } - podList, err := c.Core().Pods(ns).List(metav1.ListOptions{}) + podList, err := c.CoreV1().Pods(ns).List(metav1.ListOptions{}) if err != nil { Logf("Error getting pods in namespace '%s': %v", ns, err) if IsRetryableAPIError(err) { @@ -701,7 +702,7 @@ func kubectlLogPod(c clientset.Interface, pod v1.Pod, containerNameSubstr string } func LogFailedContainers(c clientset.Interface, ns string, logFunc func(ftm string, args ...interface{})) { - podList, err := c.Core().Pods(ns).List(metav1.ListOptions{}) + podList, err := c.CoreV1().Pods(ns).List(metav1.ListOptions{}) if err != nil { logFunc("Error getting pods in namespace '%s': %v", ns, err) return @@ -715,7 +716,7 @@ func LogFailedContainers(c clientset.Interface, ns string, logFunc func(ftm stri } func LogPodsWithLabels(c clientset.Interface, ns string, match map[string]string, logFunc func(ftm string, args ...interface{})) { - podList, err := c.Core().Pods(ns).List(metav1.ListOptions{LabelSelector: labels.SelectorFromSet(match).String()}) + podList, err := c.CoreV1().Pods(ns).List(metav1.ListOptions{LabelSelector: labels.SelectorFromSet(match).String()}) if err != nil { logFunc("Error getting pods in namespace %q: %v", ns, err) return @@ -727,7 +728,7 @@ func LogPodsWithLabels(c clientset.Interface, ns string, match map[string]string } func LogContainersInPodsWithLabels(c clientset.Interface, ns string, match map[string]string, containerSubstr string, logFunc func(ftm string, args ...interface{})) { - podList, err := c.Core().Pods(ns).List(metav1.ListOptions{LabelSelector: labels.SelectorFromSet(match).String()}) + podList, err := c.CoreV1().Pods(ns).List(metav1.ListOptions{LabelSelector: labels.SelectorFromSet(match).String()}) if err != nil { Logf("Error getting pods in namespace %q: %v", ns, err) return @@ -742,7 +743,7 @@ func LogContainersInPodsWithLabels(c clientset.Interface, ns string, match map[s // Returns the list of deleted namespaces or an error. func DeleteNamespaces(c clientset.Interface, deleteFilter, skipFilter []string) ([]string, error) { By("Deleting namespaces") - nsList, err := c.Core().Namespaces().List(metav1.ListOptions{}) + nsList, err := c.CoreV1().Namespaces().List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) var deleted []string var wg sync.WaitGroup @@ -772,7 +773,7 @@ OUTER: go func(nsName string) { defer wg.Done() defer GinkgoRecover() - Expect(c.Core().Namespaces().Delete(nsName, nil)).To(Succeed()) + Expect(c.CoreV1().Namespaces().Delete(nsName, nil)).To(Succeed()) Logf("namespace : %v api call to delete is complete ", nsName) }(item.Name) } @@ -789,7 +790,7 @@ func WaitForNamespacesDeleted(c clientset.Interface, namespaces []string, timeou //Now POLL until all namespaces have been eradicated. return wait.Poll(2*time.Second, timeout, func() (bool, error) { - nsList, err := c.Core().Namespaces().List(metav1.ListOptions{}) + nsList, err := c.CoreV1().Namespaces().List(metav1.ListOptions{}) if err != nil { return false, err } @@ -803,7 +804,7 @@ func WaitForNamespacesDeleted(c clientset.Interface, namespaces []string, timeou } func waitForServiceAccountInNamespace(c clientset.Interface, ns, serviceAccountName string, timeout time.Duration) error { - w, err := c.Core().ServiceAccounts(ns).Watch(metav1.SingleObject(metav1.ObjectMeta{Name: serviceAccountName})) + w, err := c.CoreV1().ServiceAccounts(ns).Watch(metav1.SingleObject(metav1.ObjectMeta{Name: serviceAccountName})) if err != nil { return err } @@ -814,7 +815,7 @@ func waitForServiceAccountInNamespace(c clientset.Interface, ns, serviceAccountN func WaitForPodCondition(c clientset.Interface, ns, podName, desc string, timeout time.Duration, condition podCondition) error { Logf("Waiting up to %v for pod %q in namespace %q to be %q", timeout, podName, ns, desc) for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) { - pod, err := c.Core().Pods(ns).Get(podName, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{}) if err != nil { if apierrs.IsNotFound(err) { Logf("Pod %q in namespace %q not found. Error: %v", podName, ns, err) @@ -841,7 +842,7 @@ func WaitForPodCondition(c clientset.Interface, ns, podName, desc string, timeou func WaitForMatchPodsCondition(c clientset.Interface, opts metav1.ListOptions, desc string, timeout time.Duration, condition podCondition) error { Logf("Waiting up to %v for matching pods' status to be %s", timeout, desc) for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) { - pods, err := c.Core().Pods(metav1.NamespaceAll).List(opts) + pods, err := c.CoreV1().Pods(metav1.NamespaceAll).List(opts) if err != nil { return err } @@ -874,7 +875,7 @@ func WaitForDefaultServiceAccountInNamespace(c clientset.Interface, namespace st func WaitForPersistentVolumePhase(phase v1.PersistentVolumePhase, c clientset.Interface, pvName string, Poll, timeout time.Duration) error { Logf("Waiting up to %v for PersistentVolume %s to have phase %s", timeout, pvName, phase) for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) { - pv, err := c.Core().PersistentVolumes().Get(pvName, metav1.GetOptions{}) + pv, err := c.CoreV1().PersistentVolumes().Get(pvName, metav1.GetOptions{}) if err != nil { Logf("Get persistent volume %s in failed, ignoring for %v: %v", pvName, Poll, err) continue @@ -894,7 +895,7 @@ func WaitForPersistentVolumePhase(phase v1.PersistentVolumePhase, c clientset.In func WaitForPersistentVolumeDeleted(c clientset.Interface, pvName string, Poll, timeout time.Duration) error { Logf("Waiting up to %v for PersistentVolume %s to get deleted", timeout, pvName) for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) { - pv, err := c.Core().PersistentVolumes().Get(pvName, metav1.GetOptions{}) + pv, err := c.CoreV1().PersistentVolumes().Get(pvName, metav1.GetOptions{}) if err == nil { Logf("PersistentVolume %s found and phase=%s (%v)", pvName, pv.Status.Phase, time.Since(start)) continue @@ -914,7 +915,7 @@ func WaitForPersistentVolumeDeleted(c clientset.Interface, pvName string, Poll, func WaitForPersistentVolumeClaimPhase(phase v1.PersistentVolumeClaimPhase, c clientset.Interface, ns string, pvcName string, Poll, timeout time.Duration) error { Logf("Waiting up to %v for PersistentVolumeClaim %s to have phase %s", timeout, pvcName, phase) for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) { - pvc, err := c.Core().PersistentVolumeClaims(ns).Get(pvcName, metav1.GetOptions{}) + pvc, err := c.CoreV1().PersistentVolumeClaims(ns).Get(pvcName, metav1.GetOptions{}) if err != nil { Logf("Failed to get claim %q, retrying in %v. Error: %v", pvcName, Poll, err) continue @@ -950,7 +951,7 @@ func CreateTestingNS(baseName string, c clientset.Interface, labels map[string]s var got *v1.Namespace if err := wait.PollImmediate(Poll, 30*time.Second, func() (bool, error) { var err error - got, err = c.Core().Namespaces().Create(namespaceObj) + got, err = c.CoreV1().Namespaces().Create(namespaceObj) if err != nil { Logf("Unexpected error while creating namespace: %v", err) return false, nil @@ -989,7 +990,7 @@ func CheckTestingNSDeletedExcept(c clientset.Interface, skip string) error { Logf("Waiting for terminating namespaces to be deleted...") for start := time.Now(); time.Since(start) < timeout; time.Sleep(15 * time.Second) { - namespaces, err := c.Core().Namespaces().List(metav1.ListOptions{}) + namespaces, err := c.CoreV1().Namespaces().List(metav1.ListOptions{}) if err != nil { Logf("Listing namespaces failed: %v", err) continue @@ -1014,13 +1015,13 @@ func CheckTestingNSDeletedExcept(c clientset.Interface, skip string) error { // whether there are any pods remaining in a non-terminating state. func deleteNS(c clientset.Interface, clientPool dynamic.ClientPool, namespace string, timeout time.Duration) error { startTime := time.Now() - if err := c.Core().Namespaces().Delete(namespace, nil); err != nil { + if err := c.CoreV1().Namespaces().Delete(namespace, nil); err != nil { return err } // wait for namespace to delete or timeout. err := wait.PollImmediate(2*time.Second, timeout, func() (bool, error) { - if _, err := c.Core().Namespaces().Get(namespace, metav1.GetOptions{}); err != nil { + if _, err := c.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}); err != nil { if apierrs.IsNotFound(err) { return true, nil } @@ -1074,7 +1075,7 @@ func deleteNS(c clientset.Interface, clientPool dynamic.ClientPool, namespace st // logNamespaces logs the number of namespaces by phase // namespace is the namespace the test was operating against that failed to delete so it can be grepped in logs func logNamespaces(c clientset.Interface, namespace string) { - namespaceList, err := c.Core().Namespaces().List(metav1.ListOptions{}) + namespaceList, err := c.CoreV1().Namespaces().List(metav1.ListOptions{}) if err != nil { Logf("namespace: %v, unable to list namespaces: %v", namespace, err) return @@ -1094,7 +1095,7 @@ func logNamespaces(c clientset.Interface, namespace string) { // logNamespace logs detail about a namespace func logNamespace(c clientset.Interface, namespace string) { - ns, err := c.Core().Namespaces().Get(namespace, metav1.GetOptions{}) + ns, err := c.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}) if err != nil { if apierrs.IsNotFound(err) { Logf("namespace: %v no longer exists", namespace) @@ -1109,7 +1110,7 @@ func logNamespace(c clientset.Interface, namespace string) { // countRemainingPods queries the server to count number of remaining pods, and number of pods that had a missing deletion timestamp. func countRemainingPods(c clientset.Interface, namespace string) (int, int, error) { // check for remaining pods - pods, err := c.Core().Pods(namespace).List(metav1.ListOptions{}) + pods, err := c.CoreV1().Pods(namespace).List(metav1.ListOptions{}) if err != nil { return 0, 0, err } @@ -1345,7 +1346,7 @@ func waitTimeoutForPodRunningInNamespace(c clientset.Interface, podName, namespa func podRunning(c clientset.Interface, podName, namespace string) wait.ConditionFunc { return func() (bool, error) { - pod, err := c.Core().Pods(namespace).Get(podName, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(namespace).Get(podName, metav1.GetOptions{}) if err != nil { return false, err } @@ -1371,7 +1372,7 @@ func WaitTimeoutForPodNoLongerRunningInNamespace(c clientset.Interface, podName, func podCompleted(c clientset.Interface, podName, namespace string) wait.ConditionFunc { return func() (bool, error) { - pod, err := c.Core().Pods(namespace).Get(podName, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(namespace).Get(podName, metav1.GetOptions{}) if err != nil { return false, err } @@ -1389,7 +1390,7 @@ func waitTimeoutForPodReadyInNamespace(c clientset.Interface, podName, namespace func podRunningAndReady(c clientset.Interface, podName, namespace string) wait.ConditionFunc { return func() (bool, error) { - pod, err := c.Core().Pods(namespace).Get(podName, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(namespace).Get(podName, metav1.GetOptions{}) if err != nil { return false, err } @@ -1412,7 +1413,7 @@ func WaitForPodNotPending(c clientset.Interface, ns, podName string) error { func podNotPending(c clientset.Interface, podName, namespace string) wait.ConditionFunc { return func() (bool, error) { - pod, err := c.Core().Pods(namespace).Get(podName, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(namespace).Get(podName, metav1.GetOptions{}) if err != nil { return false, err } @@ -1496,7 +1497,7 @@ func WaitForRCToStabilize(c clientset.Interface, ns, name string, timeout time.D "metadata.name": name, "metadata.namespace": ns, }.AsSelector().String()} - w, err := c.Core().ReplicationControllers(ns).Watch(options) + w, err := c.CoreV1().ReplicationControllers(ns).Watch(options) if err != nil { return err } @@ -1524,7 +1525,7 @@ func WaitForPodToDisappear(c clientset.Interface, ns, podName string, label labe return wait.PollImmediate(interval, timeout, func() (bool, error) { Logf("Waiting for pod %s to disappear", podName) options := metav1.ListOptions{LabelSelector: label.String()} - pods, err := c.Core().Pods(ns).List(options) + pods, err := c.CoreV1().Pods(ns).List(options) if err != nil { if IsRetryableAPIError(err) { return false, nil @@ -1550,7 +1551,7 @@ func WaitForPodToDisappear(c clientset.Interface, ns, podName string, label labe // WaitForService waits until the service appears (exist == true), or disappears (exist == false) func WaitForService(c clientset.Interface, namespace, name string, exist bool, interval, timeout time.Duration) error { err := wait.PollImmediate(interval, timeout, func() (bool, error) { - _, err := c.Core().Services(namespace).Get(name, metav1.GetOptions{}) + _, err := c.CoreV1().Services(namespace).Get(name, metav1.GetOptions{}) switch { case err == nil: Logf("Service %s in namespace %s found.", name, namespace) @@ -1577,7 +1578,7 @@ func WaitForService(c clientset.Interface, namespace, name string, exist bool, i func WaitForServiceWithSelector(c clientset.Interface, namespace string, selector labels.Selector, exist bool, interval, timeout time.Duration) error { err := wait.PollImmediate(interval, timeout, func() (bool, error) { - services, err := c.Core().Services(namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) + services, err := c.CoreV1().Services(namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) switch { case len(services.Items) != 0: Logf("Service with %s in namespace %s found.", selector.String(), namespace) @@ -1604,7 +1605,7 @@ func WaitForServiceWithSelector(c clientset.Interface, namespace string, selecto func WaitForServiceEndpointsNum(c clientset.Interface, namespace, serviceName string, expectNum int, interval, timeout time.Duration) error { return wait.Poll(interval, timeout, func() (bool, error) { Logf("Waiting for amount of service:%s endpoints to be %d", serviceName, expectNum) - list, err := c.Core().Endpoints(namespace).List(metav1.ListOptions{}) + list, err := c.CoreV1().Endpoints(namespace).List(metav1.ListOptions{}) if err != nil { return false, err } @@ -1628,7 +1629,7 @@ func countEndpointsNum(e *v1.Endpoints) int { func WaitForEndpoint(c clientset.Interface, ns, name string) error { for t := time.Now(); time.Since(t) < EndpointRegisterTimeout; time.Sleep(Poll) { - endpoint, err := c.Core().Endpoints(ns).Get(name, metav1.GetOptions{}) + endpoint, err := c.CoreV1().Endpoints(ns).Get(name, metav1.GetOptions{}) if apierrs.IsNotFound(err) { Logf("Endpoint %s/%s is not ready yet", ns, name) continue @@ -1664,41 +1665,26 @@ func PodProxyResponseChecker(c clientset.Interface, ns string, label labels.Sele func (r podProxyResponseChecker) CheckAllResponses() (done bool, err error) { successes := 0 options := metav1.ListOptions{LabelSelector: r.label.String()} - currentPods, err := r.c.Core().Pods(r.ns).List(options) + currentPods, err := r.c.CoreV1().Pods(r.ns).List(options) Expect(err).NotTo(HaveOccurred()) for i, pod := range r.pods.Items { // Check that the replica list remains unchanged, otherwise we have problems. if !isElementOf(pod.UID, currentPods) { return false, fmt.Errorf("pod with UID %s is no longer a member of the replica set. Must have been restarted for some reason. Current replica set: %v", pod.UID, currentPods) } - subResourceProxyAvailable, err := ServerVersionGTE(SubResourcePodProxyVersion, r.c.Discovery()) - if err != nil { - return false, err - } ctx, cancel := context.WithTimeout(context.Background(), SingleCallTimeout) defer cancel() - var body []byte - if subResourceProxyAvailable { - body, err = r.c.Core().RESTClient().Get(). - Context(ctx). - Namespace(r.ns). - Resource("pods"). - SubResource("proxy"). - Name(string(pod.Name)). - Do(). - Raw() - } else { - body, err = r.c.Core().RESTClient().Get(). - Context(ctx). - Prefix("proxy"). - Namespace(r.ns). - Resource("pods"). - Name(string(pod.Name)). - Do(). - Raw() - } + body, err := r.c.CoreV1().RESTClient().Get(). + Context(ctx). + Namespace(r.ns). + Resource("pods"). + SubResource("proxy"). + Name(string(pod.Name)). + Do(). + Raw() + if err != nil { if ctx.Err() != nil { // We may encounter errors here because of a race between the pod readiness and apiserver @@ -1805,7 +1791,7 @@ func PodsCreatedByLabel(c clientset.Interface, ns, name string, replicas int32, options := metav1.ListOptions{LabelSelector: label.String()} // List the pods, making sure we observe all the replicas. - pods, err := c.Core().Pods(ns).List(options) + pods, err := c.CoreV1().Pods(ns).List(options) if err != nil { return nil, err } @@ -1880,7 +1866,7 @@ func ServiceResponding(c clientset.Interface, ns, name string) error { By(fmt.Sprintf("trying to dial the service %s.%s via the proxy", ns, name)) return wait.PollImmediate(Poll, ServiceRespondingTimeout, func() (done bool, err error) { - proxyRequest, errProxy := GetServicesProxyRequest(c, c.Core().RESTClient().Get()) + proxyRequest, errProxy := GetServicesProxyRequest(c, c.CoreV1().RESTClient().Get()) if errProxy != nil { Logf("Failed to get services proxy request: %v:", errProxy) return false, nil @@ -2297,7 +2283,7 @@ func DumpEventsInNamespace(eventsLister EventsLister, namespace string) { func DumpAllNamespaceInfo(c clientset.Interface, namespace string) { DumpEventsInNamespace(func(opts metav1.ListOptions, ns string) (*v1.EventList, error) { - return c.Core().Events(ns).List(opts) + return c.CoreV1().Events(ns).List(opts) }, namespace) // If cluster is large, then the following logs are basically useless, because: @@ -2305,7 +2291,7 @@ func DumpAllNamespaceInfo(c clientset.Interface, namespace string) { // 2. there are so many of them that working with them are mostly impossible // So we dump them only if the cluster is relatively small. maxNodesForDump := 20 - if nodes, err := c.Core().Nodes().List(metav1.ListOptions{}); err == nil { + if nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}); err == nil { if len(nodes.Items) <= maxNodesForDump { dumpAllPodInfo(c) dumpAllNodeInfo(c) @@ -2331,7 +2317,7 @@ func (o byFirstTimestamp) Less(i, j int) bool { } func dumpAllPodInfo(c clientset.Interface) { - pods, err := c.Core().Pods("").List(metav1.ListOptions{}) + pods, err := c.CoreV1().Pods("").List(metav1.ListOptions{}) if err != nil { Logf("unable to fetch pod debug info: %v", err) } @@ -2340,7 +2326,7 @@ func dumpAllPodInfo(c clientset.Interface) { func dumpAllNodeInfo(c clientset.Interface) { // It should be OK to list unschedulable Nodes here. - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { Logf("unable to fetch node list: %v", err) return @@ -2355,7 +2341,7 @@ func dumpAllNodeInfo(c clientset.Interface) { func DumpNodeDebugInfo(c clientset.Interface, nodeNames []string, logFunc func(fmt string, args ...interface{})) { for _, n := range nodeNames { logFunc("\nLogging node info for node %v", n) - node, err := c.Core().Nodes().Get(n, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(n, metav1.GetOptions{}) if err != nil { logFunc("Error getting node info %v", err) } @@ -2399,7 +2385,7 @@ func getNodeEvents(c clientset.Interface, nodeName string) []v1.Event { "source": "kubelet", }.AsSelector().String() options := metav1.ListOptions{FieldSelector: selector} - events, err := c.Core().Events(metav1.NamespaceSystem).List(options) + events, err := c.CoreV1().Events(metav1.NamespaceSystem).List(options) if err != nil { Logf("Unexpected error retrieving node events %v", err) return []v1.Event{} @@ -2412,7 +2398,7 @@ func waitListSchedulableNodesOrDie(c clientset.Interface) *v1.NodeList { var nodes *v1.NodeList var err error if wait.PollImmediate(Poll, SingleCallTimeout, func() (bool, error) { - nodes, err = c.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ + nodes, err = c.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String()}) if err != nil { @@ -2495,7 +2481,7 @@ func WaitForAllNodesSchedulable(c clientset.Interface, timeout time.Duration) er ResourceVersion: "0", FieldSelector: fields.Set{"spec.unschedulable": "false"}.AsSelector().String(), } - nodes, err := c.Core().Nodes().List(opts) + nodes, err := c.CoreV1().Nodes().List(opts) if err != nil { Logf("Unexpected error listing nodes: %v", err) if IsRetryableAPIError(err) { @@ -2548,7 +2534,7 @@ func GetPodSecretUpdateTimeout(c clientset.Interface) time.Duration { } func GetNodeTTLAnnotationValue(c clientset.Interface) (time.Duration, error) { - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil || len(nodes.Items) == 0 { return time.Duration(0), fmt.Errorf("Couldn't list any nodes to get TTL annotation: %v", err) } @@ -2575,7 +2561,7 @@ func AddOrUpdateLabelOnNode(c clientset.Interface, nodeName string, labelKey, la func AddOrUpdateLabelOnNodeAndReturnOldValue(c clientset.Interface, nodeName string, labelKey, labelValue string) string { var oldValue string - node, err := c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) ExpectNoError(err) oldValue = node.Labels[labelKey] ExpectNoError(testutil.AddLabelsToNode(c, nodeName, map[string]string{labelKey: labelValue})) @@ -2584,7 +2570,7 @@ func AddOrUpdateLabelOnNodeAndReturnOldValue(c clientset.Interface, nodeName str func ExpectNodeHasLabel(c clientset.Interface, nodeName string, labelKey string, labelValue string) { By("verifying the node has the label " + labelKey + " " + labelValue) - node, err := c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) ExpectNoError(err) Expect(node.Labels[labelKey]).To(Equal(labelValue)) } @@ -2610,7 +2596,7 @@ func RemoveLabelOffNode(c clientset.Interface, nodeName string, labelKey string) func VerifyThatTaintIsGone(c clientset.Interface, nodeName string, taint *v1.Taint) { By("verifying the node doesn't have the taint " + taint.ToString()) - nodeUpdated, err := c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + nodeUpdated, err := c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) ExpectNoError(err) if taintutils.TaintExists(nodeUpdated.Spec.Taints, taint) { Failf("Failed removing taint " + taint.ToString() + " of the node " + nodeName) @@ -2626,7 +2612,7 @@ func ExpectNodeHasTaint(c clientset.Interface, nodeName string, taint *v1.Taint) } func NodeHasTaint(c clientset.Interface, nodeName string, taint *v1.Taint) (bool, error) { - node, err := c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) if err != nil { return false, err } @@ -2743,6 +2729,19 @@ func WaitForControlledPodsRunning(c clientset.Interface, ns, name string, kind s return nil } +// Wait up to PodListTimeout for getting pods of the specified controller name and return them. +func WaitForControlledPods(c clientset.Interface, ns, name string, kind schema.GroupKind) (pods *v1.PodList, err error) { + rtObject, err := getRuntimeObjectForKind(c, kind, ns, name) + if err != nil { + return nil, err + } + selector, err := getSelectorFromRuntimeObject(rtObject) + if err != nil { + return nil, err + } + return WaitForPodsWithLabel(c, ns, selector) +} + // Returns true if all the specified pods are scheduled, else returns false. func podsWithLabelScheduled(c clientset.Interface, ns string, label labels.Selector) (bool, error) { PodStore := testutil.NewPodStore(c, ns, label, fields.Everything()) @@ -2782,7 +2781,7 @@ func WaitForPodsWithLabelScheduled(c clientset.Interface, ns string, label label func WaitForPodsWithLabel(c clientset.Interface, ns string, label labels.Selector) (pods *v1.PodList, err error) { for t := time.Now(); time.Since(t) < PodListTimeout; time.Sleep(Poll) { options := metav1.ListOptions{LabelSelector: label.String()} - pods, err = c.Core().Pods(ns).List(options) + pods, err = c.CoreV1().Pods(ns).List(options) if err != nil { if IsRetryableAPIError(err) { continue @@ -2831,15 +2830,15 @@ func WaitForPodsWithLabelRunningReady(c clientset.Interface, ns string, label la func getRuntimeObjectForKind(c clientset.Interface, kind schema.GroupKind, ns, name string) (runtime.Object, error) { switch kind { case api.Kind("ReplicationController"): - return c.Core().ReplicationControllers(ns).Get(name, metav1.GetOptions{}) - case extensionsinternal.Kind("ReplicaSet"): - return c.Extensions().ReplicaSets(ns).Get(name, metav1.GetOptions{}) - case extensionsinternal.Kind("Deployment"): - return c.Extensions().Deployments(ns).Get(name, metav1.GetOptions{}) + return c.CoreV1().ReplicationControllers(ns).Get(name, metav1.GetOptions{}) + case extensionsinternal.Kind("ReplicaSet"), appsinternal.Kind("ReplicaSet"): + return c.ExtensionsV1beta1().ReplicaSets(ns).Get(name, metav1.GetOptions{}) + case extensionsinternal.Kind("Deployment"), appsinternal.Kind("Deployment"): + return c.ExtensionsV1beta1().Deployments(ns).Get(name, metav1.GetOptions{}) case extensionsinternal.Kind("DaemonSet"): - return c.Extensions().DaemonSets(ns).Get(name, metav1.GetOptions{}) + return c.ExtensionsV1beta1().DaemonSets(ns).Get(name, metav1.GetOptions{}) case batchinternal.Kind("Job"): - return c.Batch().Jobs(ns).Get(name, metav1.GetOptions{}) + return c.BatchV1().Jobs(ns).Get(name, metav1.GetOptions{}) default: return nil, fmt.Errorf("Unsupported kind when getting runtime object: %v", kind) } @@ -2848,15 +2847,15 @@ func getRuntimeObjectForKind(c clientset.Interface, kind schema.GroupKind, ns, n func deleteResource(c clientset.Interface, kind schema.GroupKind, ns, name string, deleteOption *metav1.DeleteOptions) error { switch kind { case api.Kind("ReplicationController"): - return c.Core().ReplicationControllers(ns).Delete(name, deleteOption) - case extensionsinternal.Kind("ReplicaSet"): - return c.Extensions().ReplicaSets(ns).Delete(name, deleteOption) - case extensionsinternal.Kind("Deployment"): - return c.Extensions().Deployments(ns).Delete(name, deleteOption) + return c.CoreV1().ReplicationControllers(ns).Delete(name, deleteOption) + case extensionsinternal.Kind("ReplicaSet"), appsinternal.Kind("ReplicaSet"): + return c.ExtensionsV1beta1().ReplicaSets(ns).Delete(name, deleteOption) + case extensionsinternal.Kind("Deployment"), appsinternal.Kind("Deployment"): + return c.ExtensionsV1beta1().Deployments(ns).Delete(name, deleteOption) case extensionsinternal.Kind("DaemonSet"): - return c.Extensions().DaemonSets(ns).Delete(name, deleteOption) + return c.ExtensionsV1beta1().DaemonSets(ns).Delete(name, deleteOption) case batchinternal.Kind("Job"): - return c.Batch().Jobs(ns).Delete(name, deleteOption) + return c.BatchV1().Jobs(ns).Delete(name, deleteOption) default: return fmt.Errorf("Unsupported kind when deleting: %v", kind) } @@ -3081,7 +3080,7 @@ func WaitForPodsReady(c clientset.Interface, ns, name string, minReadySeconds in label := labels.SelectorFromSet(labels.Set(map[string]string{"name": name})) options := metav1.ListOptions{LabelSelector: label.String()} return wait.Poll(Poll, 5*time.Minute, func() (bool, error) { - pods, err := c.Core().Pods(ns).List(options) + pods, err := c.CoreV1().Pods(ns).List(options) if err != nil { return false, nil } @@ -3097,7 +3096,7 @@ func WaitForPodsReady(c clientset.Interface, ns, name string, minReadySeconds in // Waits for the number of events on the given object to reach a desired count. func WaitForEvents(c clientset.Interface, ns string, objOrRef runtime.Object, desiredEventsCount int) error { return wait.Poll(Poll, 5*time.Minute, func() (bool, error) { - events, err := c.Core().Events(ns).Search(api.Scheme, objOrRef) + events, err := c.CoreV1().Events(ns).Search(legacyscheme.Scheme, objOrRef) if err != nil { return false, fmt.Errorf("error in listing events: %s", err) } @@ -3116,7 +3115,7 @@ func WaitForEvents(c clientset.Interface, ns string, objOrRef runtime.Object, de // Waits for the number of events on the given object to be at least a desired count. func WaitForPartialEvents(c clientset.Interface, ns string, objOrRef runtime.Object, atLeastEventsCount int) error { return wait.Poll(Poll, 5*time.Minute, func() (bool, error) { - events, err := c.Core().Events(ns).Search(api.Scheme, objOrRef) + events, err := c.CoreV1().Events(ns).Search(legacyscheme.Scheme, objOrRef) if err != nil { return false, fmt.Errorf("error in listing events: %s", err) } @@ -3351,7 +3350,7 @@ func RunHostCmdWithRetries(ns, name, cmd string, interval, timeout time.Duration // until it's Running func LaunchHostExecPod(client clientset.Interface, ns, name string) *v1.Pod { hostExecPod := NewHostExecPodSpec(ns, name) - pod, err := client.Core().Pods(ns).Create(hostExecPod) + pod, err := client.CoreV1().Pods(ns).Create(hostExecPod) ExpectNoError(err) err = WaitForPodRunningInNamespace(client, pod) ExpectNoError(err) @@ -3389,10 +3388,10 @@ func CreateExecPodOrFail(client clientset.Interface, ns, generateName string, tw if tweak != nil { tweak(execPod) } - created, err := client.Core().Pods(ns).Create(execPod) + created, err := client.CoreV1().Pods(ns).Create(execPod) Expect(err).NotTo(HaveOccurred()) err = wait.PollImmediate(Poll, 5*time.Minute, func() (bool, error) { - retrievedPod, err := client.Core().Pods(execPod.Namespace).Get(created.Name, metav1.GetOptions{}) + retrievedPod, err := client.CoreV1().Pods(execPod.Namespace).Get(created.Name, metav1.GetOptions{}) if err != nil { if IsRetryableAPIError(err) { return false, nil @@ -3425,13 +3424,13 @@ func CreatePodOrFail(c clientset.Interface, ns, name string, labels map[string]s }, }, } - _, err := c.Core().Pods(ns).Create(pod) + _, err := c.CoreV1().Pods(ns).Create(pod) Expect(err).NotTo(HaveOccurred()) } func DeletePodOrFail(c clientset.Interface, ns, name string) { By(fmt.Sprintf("Deleting pod %s in namespace %s", name, ns)) - err := c.Core().Pods(ns).Delete(name, nil) + err := c.CoreV1().Pods(ns).Delete(name, nil) Expect(err).NotTo(HaveOccurred()) } @@ -3627,7 +3626,7 @@ func IsNodeConditionUnset(node *v1.Node, conditionType v1.NodeConditionType) boo func WaitForNodeToBe(c clientset.Interface, name string, conditionType v1.NodeConditionType, wantTrue bool, timeout time.Duration) bool { Logf("Waiting up to %v for node %s condition %s to be %t", timeout, name, conditionType, wantTrue) for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) { - node, err := c.Core().Nodes().Get(name, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(name, metav1.GetOptions{}) if err != nil { Logf("Couldn't get node %s", name) continue @@ -3652,7 +3651,7 @@ func AllNodesReady(c clientset.Interface, timeout time.Duration) error { err := wait.PollImmediate(Poll, timeout, func() (bool, error) { notReady = nil // It should be OK to list unschedulable Nodes here. - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { if IsRetryableAPIError(err) { return false, nil @@ -3696,7 +3695,7 @@ func WaitForAllNodesHealthy(c clientset.Interface, timeout time.Duration) error err := wait.PollImmediate(Poll, timeout, func() (bool, error) { notReady = nil // It should be OK to list unschedulable Nodes here. - nodes, err := c.Core().Nodes().List(metav1.ListOptions{ResourceVersion: "0"}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{ResourceVersion: "0"}) if err != nil { if IsRetryableAPIError(err) { return false, nil @@ -3708,7 +3707,7 @@ func WaitForAllNodesHealthy(c clientset.Interface, timeout time.Duration) error notReady = append(notReady, node) } } - pods, err := c.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{ResourceVersion: "0"}) + pods, err := c.CoreV1().Pods(metav1.NamespaceAll).List(metav1.ListOptions{ResourceVersion: "0"}) if err != nil { return false, err } @@ -3825,19 +3824,39 @@ func RestartKubeProxy(host string) error { func RestartKubelet(host string) error { // TODO: Make it work for all providers and distros. - if !ProviderIs("gce", "aws") { - return fmt.Errorf("unsupported provider: %s", TestContext.Provider) + supportedProviders := []string{"gce", "aws", "vsphere"} + if !ProviderIs(supportedProviders...) { + return fmt.Errorf("unsupported provider: %s, supported providers are: %v", TestContext.Provider, supportedProviders) } if ProviderIs("gce") && !NodeOSDistroIs("debian", "gci") { return fmt.Errorf("unsupported node OS distro: %s", TestContext.NodeOSDistro) } var cmd string + if ProviderIs("gce") && NodeOSDistroIs("debian") { cmd = "sudo /etc/init.d/kubelet restart" + } else if ProviderIs("vsphere") { + var sudoPresent bool + sshResult, err := SSH("sudo --version", host, TestContext.Provider) + if err != nil { + return fmt.Errorf("Unable to ssh to host %s with error %v", host, err) + } + if !strings.Contains(sshResult.Stderr, "command not found") { + sudoPresent = true + } + sshResult, err = SSH("systemctl --version", host, TestContext.Provider) + if !strings.Contains(sshResult.Stderr, "command not found") { + cmd = "systemctl restart kubelet" + } else { + cmd = "service kubelet restart" + } + if sudoPresent { + cmd = fmt.Sprintf("sudo %s", cmd) + } } else { cmd = "sudo systemctl restart kubelet" } - Logf("Restarting kubelet via ssh, running: %v", cmd) + Logf("Restarting kubelet via ssh on host %s with command %s", host, cmd) result, err := SSH(cmd, host, TestContext.Provider) if err != nil || result.Code != 0 { LogSSHResult(result) @@ -3900,7 +3919,7 @@ func sshRestartMaster() error { func WaitForApiserverUp(c clientset.Interface) error { for start := time.Now(); time.Since(start) < time.Minute; time.Sleep(5 * time.Second) { - body, err := c.Core().RESTClient().Get().AbsPath("/healthz").Do().Raw() + body, err := c.CoreV1().RESTClient().Get().AbsPath("/healthz").Do().Raw() if err == nil && string(body) == "ok" { return nil } @@ -3969,7 +3988,7 @@ func CheckForControllerManagerHealthy(duration time.Duration) error { // Returns number of ready Nodes excluding Master Node. func NumberOfReadyNodes(c clientset.Interface) (int, error) { - nodes, err := c.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String()}) if err != nil { @@ -3988,7 +4007,7 @@ func NumberOfReadyNodes(c clientset.Interface) (int, error) { // By cluster size we mean number of Nodes excluding Master Node. func WaitForReadyNodes(c clientset.Interface, size int, timeout time.Duration) error { for start := time.Now(); time.Since(start) < timeout; time.Sleep(20 * time.Second) { - nodes, err := c.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String()}) if err != nil { @@ -4019,7 +4038,7 @@ func GenerateMasterRegexp(prefix string) string { // waitForMasters waits until the cluster has the desired number of ready masters in it. func WaitForMasters(masterPrefix string, c clientset.Interface, size int, timeout time.Duration) error { for start := time.Now(); time.Since(start) < timeout; time.Sleep(20 * time.Second) { - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { Logf("Failed to list nodes: %v", err) continue @@ -4057,7 +4076,7 @@ func WaitForMasters(masterPrefix string, c clientset.Interface, size int, timeou // address. Returns an error if the node the pod is on doesn't have an External // address. func GetHostExternalAddress(client clientset.Interface, p *v1.Pod) (externalAddress string, err error) { - node, err := client.Core().Nodes().Get(p.Spec.NodeName, metav1.GetOptions{}) + node, err := client.CoreV1().Nodes().Get(p.Spec.NodeName, metav1.GetOptions{}) if err != nil { return "", err } @@ -4133,7 +4152,7 @@ func OpenWebSocketForURL(url *url.URL, config *restclient.Config, protocols []st // getIngressAddress returns the ips/hostnames associated with the Ingress. func getIngressAddress(client clientset.Interface, ns, name string) ([]string, error) { - ing, err := client.Extensions().Ingresses(ns).Get(name, metav1.GetOptions{}) + ing, err := client.ExtensionsV1beta1().Ingresses(ns).Get(name, metav1.GetOptions{}) if err != nil { return nil, err } @@ -4207,7 +4226,7 @@ func LookForString(expectedString string, timeout time.Duration, fn func() strin // getSvcNodePort returns the node port for the given service:port. func getSvcNodePort(client clientset.Interface, ns, name string, svcPort int) (int, error) { - svc, err := client.Core().Services(ns).Get(name, metav1.GetOptions{}) + svc, err := client.CoreV1().Services(ns).Get(name, metav1.GetOptions{}) if err != nil { return 0, err } @@ -4233,7 +4252,7 @@ func GetNodePortURL(client clientset.Interface, ns, name string, svcPort int) (s // kube-proxy NodePorts won't work. var nodes *v1.NodeList if wait.PollImmediate(Poll, SingleCallTimeout, func() (bool, error) { - nodes, err = client.Core().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ + nodes, err = client.CoreV1().Nodes().List(metav1.ListOptions{FieldSelector: fields.Set{ "spec.unschedulable": "false", }.AsSelector().String()}) if err != nil { @@ -4272,7 +4291,7 @@ func getPreviousPodLogs(c clientset.Interface, namespace, podName, containerName // utility function for gomega Eventually func getPodLogsInternal(c clientset.Interface, namespace, podName, containerName string, previous bool) (string, error) { - logs, err := c.Core().RESTClient().Get(). + logs, err := c.CoreV1().RESTClient().Get(). Resource("pods"). Namespace(namespace). Name(podName).SubResource("log"). @@ -4396,31 +4415,6 @@ func isElementOf(podUID types.UID, pods *v1.PodList) bool { return false } -func CheckRSHashLabel(rs *extensions.ReplicaSet) error { - if len(rs.Labels[extensions.DefaultDeploymentUniqueLabelKey]) == 0 || - len(rs.Spec.Selector.MatchLabels[extensions.DefaultDeploymentUniqueLabelKey]) == 0 || - len(rs.Spec.Template.Labels[extensions.DefaultDeploymentUniqueLabelKey]) == 0 { - return fmt.Errorf("unexpected RS missing required pod-hash-template: %+v, selector = %+v, template = %+v", rs, rs.Spec.Selector, rs.Spec.Template) - } - return nil -} - -func CheckPodHashLabel(pods *v1.PodList) error { - invalidPod := "" - for _, pod := range pods.Items { - if len(pod.Labels[extensions.DefaultDeploymentUniqueLabelKey]) == 0 { - if len(invalidPod) == 0 { - invalidPod = "unexpected pods missing required pod-hash-template:" - } - invalidPod = fmt.Sprintf("%s %+v;", invalidPod, pod) - } - } - if len(invalidPod) > 0 { - return fmt.Errorf("%s", invalidPod) - } - return nil -} - // timeout for proxy requests. const proxyTimeout = 2 * time.Minute @@ -4428,29 +4422,16 @@ const proxyTimeout = 2 * time.Minute func NodeProxyRequest(c clientset.Interface, node, endpoint string) (restclient.Result, error) { // proxy tends to hang in some cases when Node is not ready. Add an artificial timeout for this call. // This will leak a goroutine if proxy hangs. #22165 - subResourceProxyAvailable, err := ServerVersionGTE(SubResourceServiceAndNodeProxyVersion, c.Discovery()) - if err != nil { - return restclient.Result{}, err - } var result restclient.Result finished := make(chan struct{}) go func() { - if subResourceProxyAvailable { - result = c.Core().RESTClient().Get(). - Resource("nodes"). - SubResource("proxy"). - Name(fmt.Sprintf("%v:%v", node, ports.KubeletPort)). - Suffix(endpoint). - Do() + result = c.CoreV1().RESTClient().Get(). + Resource("nodes"). + SubResource("proxy"). + Name(fmt.Sprintf("%v:%v", node, ports.KubeletPort)). + Suffix(endpoint). + Do() - } else { - result = c.Core().RESTClient().Get(). - Prefix("proxy"). - Resource("nodes"). - Name(fmt.Sprintf("%v:%v", node, ports.KubeletPort)). - Suffix(endpoint). - Do() - } finished <- struct{}{} }() select { @@ -4509,7 +4490,7 @@ func LaunchWebserverPod(f *Framework, podName, nodeName string) (ip string) { RestartPolicy: v1.RestartPolicyNever, }, } - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) _, err := podClient.Create(pod) ExpectNoError(err) ExpectNoError(f.WaitForPodRunning(podName)) @@ -4558,7 +4539,7 @@ func CheckConnectivityToHost(f *Framework, nodeName, podName, host string, pingC RestartPolicy: v1.RestartPolicyNever, }, } - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) _, err := podClient.Create(pod) if err != nil { return err @@ -4592,6 +4573,7 @@ func CoreDump(dir string) { Logf("Dumping logs locally to: %s", dir) cmd = exec.Command(path.Join(TestContext.RepoRoot, "cluster", "log-dump", "log-dump.sh"), dir) } + cmd.Env = append(os.Environ(), fmt.Sprintf("SYSTEMD_SERVICES=%s", parseSystemdServices(TestContext.SystemdServices))) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr if err := cmd.Run(); err != nil { @@ -4599,14 +4581,19 @@ func CoreDump(dir string) { } } +// parseSystemdServices converts services separator from comma to space. +func parseSystemdServices(services string) string { + return strings.TrimSpace(strings.Replace(services, ",", " ", -1)) +} + func UpdatePodWithRetries(client clientset.Interface, ns, name string, update func(*v1.Pod)) (*v1.Pod, error) { for i := 0; i < 3; i++ { - pod, err := client.Core().Pods(ns).Get(name, metav1.GetOptions{}) + pod, err := client.CoreV1().Pods(ns).Get(name, metav1.GetOptions{}) if err != nil { return nil, fmt.Errorf("Failed to get pod %q: %v", name, err) } update(pod) - pod, err = client.Core().Pods(ns).Update(pod) + pod, err = client.CoreV1().Pods(ns).Update(pod) if err == nil { return pod, nil } @@ -4618,7 +4605,7 @@ func UpdatePodWithRetries(client clientset.Interface, ns, name string, update fu } func GetPodsInNamespace(c clientset.Interface, ns string, ignoreLabels map[string]string) ([]*v1.Pod, error) { - pods, err := c.Core().Pods(ns).List(metav1.ListOptions{}) + pods, err := c.CoreV1().Pods(ns).List(metav1.ListOptions{}) if err != nil { return []*v1.Pod{}, err } @@ -4707,7 +4694,7 @@ func WaitForStableCluster(c clientset.Interface, masterNodes sets.String) int { timeout := 10 * time.Minute startTime := time.Now() - allPods, err := c.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{}) + allPods, err := c.CoreV1().Pods(metav1.NamespaceAll).List(metav1.ListOptions{}) ExpectNoError(err) // API server returns also Pods that succeeded. We need to filter them out. currentPods := make([]v1.Pod, 0, len(allPods.Items)) @@ -4722,7 +4709,7 @@ func WaitForStableCluster(c clientset.Interface, masterNodes sets.String) int { for len(currentlyNotScheduledPods) != 0 { time.Sleep(2 * time.Second) - allPods, err := c.Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{}) + allPods, err := c.CoreV1().Pods(metav1.NamespaceAll).List(metav1.ListOptions{}) ExpectNoError(err) scheduledPods, currentlyNotScheduledPods = GetPodsScheduled(masterNodes, allPods) @@ -4738,7 +4725,7 @@ func WaitForStableCluster(c clientset.Interface, masterNodes sets.String) int { func GetMasterAndWorkerNodesOrDie(c clientset.Interface) (sets.String, *v1.NodeList) { nodes := &v1.NodeList{} masters := sets.NewString() - all, _ := c.Core().Nodes().List(metav1.ListOptions{}) + all, _ := c.CoreV1().Nodes().List(metav1.ListOptions{}) for _, n := range all.Items { if system.IsMasterNode(n.Name) { masters.Insert(n.Name) @@ -4750,7 +4737,7 @@ func GetMasterAndWorkerNodesOrDie(c clientset.Interface) (sets.String, *v1.NodeL } func ListNamespaceEvents(c clientset.Interface, ns string) error { - ls, err := c.Core().Events(ns).List(metav1.ListOptions{}) + ls, err := c.CoreV1().Events(ns).List(metav1.ListOptions{}) if err != nil { return err } @@ -4859,7 +4846,7 @@ func CleanupGCEResources(c clientset.Interface, loadBalancerName, zone string) ( if hc != nil { hcNames = append(hcNames, hc.Name) } - if err := gceCloud.DeleteExternalTargetPoolAndChecks(nil, loadBalancerName, region, clusterID, hcNames...); err != nil && + if err := gceCloud.DeleteExternalTargetPoolAndChecks(&v1.Service{}, loadBalancerName, region, clusterID, hcNames...); err != nil && !IsGoogleAPIHTTPErrorCode(err, http.StatusNotFound) { retErr = fmt.Errorf("%v\n%v", retErr, err) } @@ -4879,7 +4866,7 @@ func getMaster(c clientset.Interface) Address { master := Address{} // Populate the internal IP. - eps, err := c.Core().Endpoints(metav1.NamespaceDefault).Get("kubernetes", metav1.GetOptions{}) + eps, err := c.CoreV1().Endpoints(metav1.NamespaceDefault).Get("kubernetes", metav1.GetOptions{}) if err != nil { Failf("Failed to get kubernetes endpoints: %v", err) } @@ -5059,7 +5046,7 @@ func PrintSummaries(summaries []TestDataSummary, testBaseName string) { } func DumpDebugInfo(c clientset.Interface, ns string) { - sl, _ := c.Core().Pods(ns).List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) + sl, _ := c.CoreV1().Pods(ns).List(metav1.ListOptions{LabelSelector: labels.Everything().String()}) for _, s := range sl.Items { desc, _ := RunKubectl("describe", "po", s.Name, fmt.Sprintf("--namespace=%v", ns)) Logf("\nOutput of kubectl describe %v:\n%v", s.Name, desc) @@ -5107,7 +5094,7 @@ func DsFromManifest(url string) (*extensions.DaemonSet, error) { return nil, fmt.Errorf("failed to parse data to json: %v", err) } - err = runtime.DecodeInto(api.Codecs.UniversalDecoder(), json, &controller) + err = runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), json, &controller) if err != nil { return nil, fmt.Errorf("failed to decode DaemonSet spec: %v", err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/volume_util.go b/vendor/k8s.io/kubernetes/test/e2e/framework/volume_util.go index 84214a15a..871534ff6 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/volume_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/volume_util.go @@ -359,6 +359,7 @@ func VolumeTestCleanup(f *Framework, config VolumeTestConfig) { // pod. func TestVolumeClient(client clientset.Interface, config VolumeTestConfig, fsGroup *int64, tests []VolumeTest) { By(fmt.Sprint("starting ", config.Prefix, " client")) + var gracePeriod int64 = 1 clientPod := &v1.Pod{ TypeMeta: metav1.TypeMeta{ Kind: "Pod", @@ -387,6 +388,7 @@ func TestVolumeClient(client clientset.Interface, config VolumeTestConfig, fsGro VolumeMounts: []v1.VolumeMount{}, }, }, + TerminationGracePeriodSeconds: &gracePeriod, SecurityContext: &v1.PodSecurityContext{ SELinuxOptions: &v1.SELinuxOptions{ Level: "s0:c0,c1", diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/BUILD b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/BUILD index 43f301895..6d1698b41 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/BUILD @@ -17,7 +17,6 @@ go_library( "//test/e2e/instrumentation/common:go_default_library", "//test/e2e/instrumentation/logging/elasticsearch:go_default_library", "//test/e2e/instrumentation/logging/stackdrvier:go_default_library", - "//test/utils/image:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/elasticsearch/BUILD b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/elasticsearch/BUILD index 3ae571497..bb267b1fc 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/elasticsearch/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/elasticsearch/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/instrumentation/logging/elasticsearch", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e/instrumentation/common:go_default_library", "//test/e2e/instrumentation/logging/utils:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/elasticsearch/utils.go b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/elasticsearch/utils.go index 8c06c0cc0..dd1ca884f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/elasticsearch/utils.go +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/elasticsearch/utils.go @@ -24,7 +24,7 @@ import ( meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/instrumentation/logging/utils" ) diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/generic_soak.go b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/generic_soak.go index d08e9ad22..3c94306f0 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/generic_soak.go +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/generic_soak.go @@ -28,7 +28,6 @@ import ( "k8s.io/api/core/v1" "k8s.io/kubernetes/test/e2e/framework" instrumentation "k8s.io/kubernetes/test/e2e/instrumentation/common" - imageutils "k8s.io/kubernetes/test/utils/image" ) var _ = instrumentation.SIGDescribe("Logging soak [Performance] [Slow] [Disruptive]", func() { @@ -101,7 +100,7 @@ func RunLogPodsWithSleepOf(f *framework.Framework, sleep time.Duration, podname return v1.PodSpec{ Containers: []v1.Container{{ Name: "logging-soak", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Args: []string{ "/bin/sh", "-c", diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/utils/BUILD b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/utils/BUILD index 21edf0643..c965ff43b 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/utils/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/utils/BUILD @@ -17,7 +17,7 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/instrumentation/logging/utils", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//test/e2e/framework:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/utils/logging_agent.go b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/utils/logging_agent.go index f42dc28c6..cf5a98c0c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/utils/logging_agent.go +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/utils/logging_agent.go @@ -23,7 +23,7 @@ import ( meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/util/integer" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/e2e/framework" ) @@ -87,5 +87,5 @@ func EnsureLoggingAgentRestartsCount(f *framework.Framework, appName string, max func getLoggingAgentPods(f *framework.Framework, appName string) (*api_v1.PodList, error) { label := labels.SelectorFromSet(labels.Set(map[string]string{"k8s-app": appName})) options := meta_v1.ListOptions{LabelSelector: label.String()} - return f.ClientSet.Core().Pods(api.NamespaceSystem).List(options) + return f.ClientSet.CoreV1().Pods(api.NamespaceSystem).List(options) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/BUILD b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/BUILD index 0e529a46c..4a0523411 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/BUILD @@ -28,6 +28,7 @@ go_library( "//vendor/google.golang.org/api/monitoring/v3:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1: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/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/cadvisor.go b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/cadvisor.go index 76bd4a0cf..439bccbc4 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/cadvisor.go +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/cadvisor.go @@ -40,7 +40,7 @@ var _ = instrumentation.SIGDescribe("Cadvisor", func() { func CheckCadvisorHealthOnAllNodes(c clientset.Interface, timeout time.Duration) { // It should be OK to list unschedulable Nodes here. By("getting list of nodes") - nodeList, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err) var errors []error @@ -70,7 +70,7 @@ func CheckCadvisorHealthOnAllNodes(c clientset.Interface, timeout time.Duration) // Here, we access '/stats/' REST endpoint on the kubelet which polls cadvisor internally. statsResource := fmt.Sprintf("api/v1/proxy/nodes/%s/stats/", node.Name) By(fmt.Sprintf("Querying stats from node %s using url %s", node.Name, statsResource)) - _, err = c.Core().RESTClient().Get().AbsPath(statsResource).Timeout(timeout).Do().Raw() + _, err = c.CoreV1().RESTClient().Get().AbsPath(statsResource).Timeout(timeout).Do().Raw() if err != nil { errors = append(errors, err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go index 60af16178..2adae0d4b 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go @@ -21,6 +21,7 @@ import ( gcm "google.golang.org/api/monitoring/v3" corev1 "k8s.io/api/core/v1" extensions "k8s.io/api/extensions/v1beta1" + rbac "k8s.io/api/rbac/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/test/e2e/framework" ) @@ -30,6 +31,25 @@ var ( UnusedMetricName = "unused-metric" CustomMetricValue = int64(448) UnusedMetricValue = int64(446) + // HPAPermissions is a ClusterRoleBinding that grants unauthenticated user permissions granted for + // HPA for testing purposes, i.e. it should grant permission to read custom metrics. + HPAPermissions = &rbac.ClusterRoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: "custom-metrics-reader", + }, + RoleRef: rbac.RoleRef{ + APIGroup: "rbac.authorization.k8s.io", + Kind: "ClusterRole", + Name: "system:controller:horizontal-pod-autoscaler", + }, + Subjects: []rbac.Subject{ + { + APIGroup: "rbac.authorization.k8s.io", + Kind: "Group", + Name: "system:unauthenticated", + }, + }, + } ) // StackdriverExporterDeployment is a Deployment of simple application that exports a metric of diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go index f21e61365..cdf2c127f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go @@ -104,6 +104,9 @@ func testAdapter(f *framework.Framework, kubeClient clientset.Interface, customM } defer CleanupAdapter() + _, err = kubeClient.Rbac().ClusterRoleBindings().Create(HPAPermissions) + defer kubeClient.Rbac().ClusterRoleBindings().Delete("custom-metrics-reader", &metav1.DeleteOptions{}) + // Run application that exports the metric err = createSDExporterPods(f, kubeClient) if err != nil { @@ -121,11 +124,22 @@ func testAdapter(f *framework.Framework, kubeClient clientset.Interface, customM if err != nil { framework.Failf("Failed to retrieve a list of supported metrics: %s", err) } + gotCustomMetric, gotUnusedMetric := false, false for _, resource := range resources.APIResources { - if resource.Name != "pods/"+CustomMetricName && resource.Name != "pods/"+UnusedMetricName { + if resource.Name == "pods/"+CustomMetricName { + gotCustomMetric = true + } else if resource.Name == "pods/"+UnusedMetricName { + gotUnusedMetric = true + } else { framework.Failf("Unexpected metric %s. Only metric %s should be supported", resource.Name, CustomMetricName) } } + if !gotCustomMetric { + framework.Failf("Metric '%s' expected but not received", CustomMetricName) + } + if !gotUnusedMetric { + framework.Failf("Metric '%s' expected but not received", UnusedMetricName) + } value, err := customMetricsClient.NamespacedMetrics(f.Namespace.Name).GetForObject(schema.GroupKind{Group: "", Kind: "Pod"}, stackdriverExporterPod1, CustomMetricName) if err != nil { framework.Failf("Failed query: %s", err) @@ -141,33 +155,30 @@ func testAdapter(f *framework.Framework, kubeClient clientset.Interface, customM if err != nil { framework.Failf("Failed query: %s", err) } - if len(values.Items) != 2 { - framework.Failf("Expected results for exactly 2 pods, but %v results received", len(values.Items)) + if len(values.Items) != 1 { + framework.Failf("Expected results for exactly 1 pod, but %v results received", len(values.Items)) } - for _, value := range values.Items { - if (value.DescribedObject.Name == stackdriverExporterPod1 && value.Value.Value() != CustomMetricValue) || - (value.DescribedObject.Name == stackdriverExporterPod2 && value.Value.Value() != UnusedMetricValue) { - framework.Failf("Unexpected metric value for metric %s and pod %s: %v", CustomMetricName, value.DescribedObject.Name, value.Value.Value()) - } + if values.Items[0].DescribedObject.Name != stackdriverExporterPod1 || values.Items[0].Value.Value() != CustomMetricValue { + framework.Failf("Unexpected metric value for metric %s and pod %s: %v", CustomMetricName, values.Items[0].DescribedObject.Name, values.Items[0].Value.Value()) } } func cleanupSDExporterPod(f *framework.Framework, cs clientset.Interface) { - err := cs.Core().Pods(f.Namespace.Name).Delete(stackdriverExporterPod1, &metav1.DeleteOptions{}) + err := cs.CoreV1().Pods(f.Namespace.Name).Delete(stackdriverExporterPod1, &metav1.DeleteOptions{}) if err != nil { framework.Logf("Failed to delete %s pod: %v", stackdriverExporterPod1, err) } - err = cs.Core().Pods(f.Namespace.Name).Delete(stackdriverExporterPod2, &metav1.DeleteOptions{}) + err = cs.CoreV1().Pods(f.Namespace.Name).Delete(stackdriverExporterPod2, &metav1.DeleteOptions{}) if err != nil { framework.Logf("Failed to delete %s pod: %v", stackdriverExporterPod2, err) } } func createSDExporterPods(f *framework.Framework, cs clientset.Interface) error { - _, err := cs.Core().Pods(f.Namespace.Name).Create(StackdriverExporterPod(stackdriverExporterPod1, f.Namespace.Name, stackdriverExporterLabel, CustomMetricName, CustomMetricValue)) + _, err := cs.CoreV1().Pods(f.Namespace.Name).Create(StackdriverExporterPod(stackdriverExporterPod1, f.Namespace.Name, stackdriverExporterLabel, CustomMetricName, CustomMetricValue)) if err != nil { return err } - _, err = cs.Core().Pods(f.Namespace.Name).Create(StackdriverExporterPod(stackdriverExporterPod2, f.Namespace.Name, stackdriverExporterLabel, UnusedMetricName, UnusedMetricValue)) + _, err = cs.CoreV1().Pods(f.Namespace.Name).Create(StackdriverExporterPod(stackdriverExporterPod2, f.Namespace.Name, stackdriverExporterLabel, UnusedMetricName, UnusedMetricValue)) return err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/influxdb.go b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/influxdb.go index 0ea374a97..f73a3b757 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/influxdb.go +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/influxdb.go @@ -39,6 +39,7 @@ var _ = instrumentation.SIGDescribe("Monitoring", func() { BeforeEach(func() { framework.SkipUnlessProviderIs("gce") + framework.SkipUnlessClusterMonitoringModeIs("influxdb") }) It("should verify monitoring pods and all cluster nodes are available on influxdb using heapster.", func() { @@ -66,42 +67,21 @@ var ( // Query sends a command to the server and returns the Response func Query(c clientset.Interface, query string) (*influxdb.Response, error) { - subResourceProxyAvailable, err := framework.ServerVersionGTE(framework.SubResourceServiceAndNodeProxyVersion, c.Discovery()) - if err != nil { - return nil, err - } - ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout) defer cancel() - var result []byte - if subResourceProxyAvailable { - result, err = c.Core().RESTClient().Get(). - Context(ctx). - Namespace("kube-system"). - Resource("services"). - Name(influxdbService+":api"). - SubResource("proxy"). - Suffix("query"). - Param("q", query). - Param("db", influxdbDatabaseName). - Param("epoch", "s"). - Do(). - Raw() - } else { - result, err = c.Core().RESTClient().Get(). - Context(ctx). - Prefix("proxy"). - Namespace("kube-system"). - Resource("services"). - Name(influxdbService+":api"). - Suffix("query"). - Param("q", query). - Param("db", influxdbDatabaseName). - Param("epoch", "s"). - Do(). - Raw() - } + result, err := c.CoreV1().RESTClient().Get(). + Context(ctx). + Namespace("kube-system"). + Resource("services"). + Name(influxdbService+":api"). + SubResource("proxy"). + Suffix("query"). + Param("q", query). + Param("db", influxdbDatabaseName). + Param("epoch", "s"). + Do(). + Raw() if err != nil { if ctx.Err() != nil { @@ -134,11 +114,11 @@ func verifyExpectedRcsExistAndGetExpectedPods(c clientset.Interface) ([]string, for _, rcLabel := range rcLabels { selector := labels.Set{"k8s-app": rcLabel}.AsSelector() options := metav1.ListOptions{LabelSelector: selector.String()} - deploymentList, err := c.Extensions().Deployments(metav1.NamespaceSystem).List(options) + deploymentList, err := c.ExtensionsV1beta1().Deployments(metav1.NamespaceSystem).List(options) if err != nil { return nil, err } - rcList, err := c.Core().ReplicationControllers(metav1.NamespaceSystem).List(options) + rcList, err := c.CoreV1().ReplicationControllers(metav1.NamespaceSystem).List(options) if err != nil { return nil, err } @@ -154,7 +134,7 @@ func verifyExpectedRcsExistAndGetExpectedPods(c clientset.Interface) ([]string, for _, rc := range rcList.Items { selector := labels.Set(rc.Spec.Selector).AsSelector() options := metav1.ListOptions{LabelSelector: selector.String()} - podList, err := c.Core().Pods(metav1.NamespaceSystem).List(options) + podList, err := c.CoreV1().Pods(metav1.NamespaceSystem).List(options) if err != nil { return nil, err } @@ -169,7 +149,7 @@ func verifyExpectedRcsExistAndGetExpectedPods(c clientset.Interface) ([]string, for _, rc := range deploymentList.Items { selector := labels.Set(rc.Spec.Selector.MatchLabels).AsSelector() options := metav1.ListOptions{LabelSelector: selector.String()} - podList, err := c.Core().Pods(metav1.NamespaceSystem).List(options) + podList, err := c.CoreV1().Pods(metav1.NamespaceSystem).List(options) if err != nil { return nil, err } @@ -184,7 +164,7 @@ func verifyExpectedRcsExistAndGetExpectedPods(c clientset.Interface) ([]string, for _, ps := range psList.Items { selector := labels.Set(ps.Spec.Selector.MatchLabels).AsSelector() options := metav1.ListOptions{LabelSelector: selector.String()} - podList, err := c.Core().Pods(metav1.NamespaceSystem).List(options) + podList, err := c.CoreV1().Pods(metav1.NamespaceSystem).List(options) if err != nil { return nil, err } @@ -200,7 +180,7 @@ func verifyExpectedRcsExistAndGetExpectedPods(c clientset.Interface) ([]string, } func expectedServicesExist(c clientset.Interface) error { - serviceList, err := c.Core().Services(metav1.NamespaceSystem).List(metav1.ListOptions{}) + serviceList, err := c.CoreV1().Services(metav1.NamespaceSystem).List(metav1.ListOptions{}) if err != nil { return err } @@ -219,7 +199,7 @@ func expectedServicesExist(c clientset.Interface) error { func getAllNodesInCluster(c clientset.Interface) ([]string, error) { // It should be OK to list unschedulable Nodes here. - nodeList, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { return nil, err } @@ -331,7 +311,7 @@ func testMonitoringUsingHeapsterInfluxdb(c clientset.Interface) { func printDebugInfo(c clientset.Interface) { set := labels.Set{"k8s-app": "heapster"} options := metav1.ListOptions{LabelSelector: set.AsSelector().String()} - podList, err := c.Core().Pods(metav1.NamespaceSystem).List(options) + podList, err := c.CoreV1().Pods(metav1.NamespaceSystem).List(options) if err != nil { framework.Logf("Error while listing pods %v", err) return diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/metrics_grabber.go b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/metrics_grabber.go index 5e115d049..e0d038a6a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/metrics_grabber.go +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/monitoring/metrics_grabber.go @@ -61,7 +61,7 @@ var _ = instrumentation.SIGDescribe("MetricsGrabber", func() { gin.It("should grab all metrics from a Scheduler.", func() { gin.By("Proxying to Pod through the API server") // Check if master Node is registered - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err) var masterRegistered = false @@ -82,7 +82,7 @@ var _ = instrumentation.SIGDescribe("MetricsGrabber", func() { gin.It("should grab all metrics from a ControllerManager.", func() { gin.By("Proxying to Pod through the API server") // Check if master Node is registered - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err) var masterRegistered = false diff --git a/vendor/k8s.io/kubernetes/test/e2e/kubectl/BUILD b/vendor/k8s.io/kubernetes/test/e2e/kubectl/BUILD index 4d475b324..4f80ab3b4 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/kubectl/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/kubectl/BUILD @@ -16,7 +16,6 @@ go_library( deps = [ "//pkg/controller:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", - "//pkg/util/version:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e/generated:go_default_library", "//test/e2e/scheduling:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/kubectl/kubectl.go b/vendor/k8s.io/kubernetes/test/e2e/kubectl/kubectl.go index 233707da3..71083deb4 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/kubectl/kubectl.go +++ b/vendor/k8s.io/kubernetes/test/e2e/kubectl/kubectl.go @@ -59,7 +59,6 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/kubectl/cmd/util" - utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/generated" "k8s.io/kubernetes/test/e2e/scheduling" @@ -95,7 +94,7 @@ var ( kittenImage = imageutils.GetE2EImage(imageutils.Kitten) redisImage = imageutils.GetE2EImage(imageutils.Redis) nginxImage = imageutils.GetE2EImage(imageutils.NginxSlim) - busyboxImage = imageutils.GetBusyBoxImage() + busyboxImage = "busybox" ) var testImages = struct { @@ -120,44 +119,6 @@ var testImages = struct { var ( proxyRegexp = regexp.MustCompile("Starting to serve on 127.0.0.1:([0-9]+)") - // Extended pod logging options were introduced in #13780 (v1.1.0) so we don't expect tests - // that rely on extended pod logging options to work on clusters before that. - // - // TODO(ihmccreery): remove once we don't care about v1.0 anymore, (tentatively in v1.3). - extendedPodLogFilterVersion = utilversion.MustParseSemantic("v1.1.0") - - // NodePorts were made optional in #12831 (v1.1.0) so we don't expect tests that used to - // require NodePorts but no longer include them to work on clusters before that. - // - // TODO(ihmccreery): remove once we don't care about v1.0 anymore, (tentatively in v1.3). - nodePortsOptionalVersion = utilversion.MustParseSemantic("v1.1.0") - - // Jobs were introduced in v1.1, so we don't expect tests that rely on jobs to work on - // clusters before that. - // - // TODO(ihmccreery): remove once we don't care about v1.0 anymore, (tentatively in v1.3). - jobsVersion = utilversion.MustParseSemantic("v1.1.0") - - // Deployments were introduced by default in v1.2, so we don't expect tests that rely on - // deployments to work on clusters before that. - // - // TODO(ihmccreery): remove once we don't care about v1.1 anymore, (tentatively in v1.4). - deploymentsVersion = utilversion.MustParseSemantic("v1.2.0-alpha.7.726") - - // Pod probe parameters were introduced in #15967 (v1.2) so we don't expect tests that use - // these probe parameters to work on clusters before that. - // - // TODO(ihmccreery): remove once we don't care about v1.1 anymore, (tentatively in v1.4). - podProbeParametersVersion = utilversion.MustParseSemantic("v1.2.0-alpha.4") - - // 'kubectl create quota' was introduced in #28351 (v1.4) so we don't expect tests that use - // 'kubectl create quota' to work on kubectl clients before that. - kubectlCreateQuotaVersion = utilversion.MustParseSemantic("v1.4.0-alpha.2") - - // Returning container command exit codes in kubectl run/exec was introduced in #26541 (v1.4) - // so we don't expect tests that verifies return code to work on kubectl clients before that. - kubectlContainerExitCodeVersion = utilversion.MustParseSemantic("v1.4.0-alpha.3") - CronJobGroupVersionResourceAlpha = schema.GroupVersionResource{Group: "batch", Version: "v2alpha1", Resource: "cronjobs"} CronJobGroupVersionResourceBeta = schema.GroupVersionResource{Group: "batch", Version: "v1beta1", Resource: "cronjobs"} ) @@ -305,7 +266,7 @@ var _ = SIGDescribe("Kubectl client", func() { nautilus = substituteImageName(string(generated.ReadOrDie(filepath.Join(updateDemoRoot, "nautilus-rc.yaml.in")))) kitten = substituteImageName(string(generated.ReadOrDie(filepath.Join(updateDemoRoot, "kitten-rc.yaml.in")))) }) - It("should create and stop a replication controller [Conformance]", func() { + framework.ConformanceIt("should create and stop a replication controller ", func() { defer cleanupKubectlInputs(nautilus, ns, updateDemoSelector) By("creating a replication controller") @@ -313,7 +274,7 @@ var _ = SIGDescribe("Kubectl client", func() { framework.ValidateController(c, nautilusImage, 2, "update-demo", updateDemoSelector, getUDData("nautilus.jpg", ns), ns) }) - It("should scale a replication controller [Conformance]", func() { + framework.ConformanceIt("should scale a replication controller ", func() { defer cleanupKubectlInputs(nautilus, ns, updateDemoSelector) By("creating a replication controller") @@ -327,7 +288,7 @@ var _ = SIGDescribe("Kubectl client", func() { framework.ValidateController(c, nautilusImage, 2, "update-demo", updateDemoSelector, getUDData("nautilus.jpg", ns), ns) }) - It("should do a rolling update of a replication controller [Conformance]", func() { + framework.ConformanceIt("should do a rolling update of a replication controller ", func() { By("creating the initial replication controller") framework.RunKubectlOrDieInput(string(nautilus[:]), "create", "-f", "-", fmt.Sprintf("--namespace=%v", ns)) framework.ValidateController(c, nautilusImage, 2, "update-demo", updateDemoSelector, getUDData("nautilus.jpg", ns), ns) @@ -354,9 +315,7 @@ var _ = SIGDescribe("Kubectl client", func() { } } - It("should create and stop a working application [Conformance]", func() { - framework.SkipUnlessServerVersionGTE(deploymentsVersion, c.Discovery()) - + framework.ConformanceIt("should create and stop a working application ", func() { defer forEachGBFile(func(contents string) { cleanupKubectlInputs(contents, ns) }) @@ -483,7 +442,6 @@ var _ = SIGDescribe("Kubectl client", func() { }) It("should return command exit codes", func() { - framework.SkipUnlessKubectlVersionGTE(kubectlContainerExitCodeVersion) nsFlag := fmt.Sprintf("--namespace=%v", ns) By("execing into a container with a successful command") @@ -528,7 +486,6 @@ var _ = SIGDescribe("Kubectl client", func() { It("should support inline execution and attach", func() { framework.SkipIfContainerRuntimeIs("rkt") // #23335 - framework.SkipUnlessServerVersionGTE(jobsVersion, c.Discovery()) nsFlag := fmt.Sprintf("--namespace=%v", ns) @@ -538,7 +495,7 @@ var _ = SIGDescribe("Kubectl client", func() { ExecOrDie() Expect(runOutput).To(ContainSubstring("abcd1234")) Expect(runOutput).To(ContainSubstring("stdin closed")) - Expect(c.Batch().Jobs(ns).Delete("run-test", nil)).To(BeNil()) + Expect(c.BatchV1().Jobs(ns).Delete("run-test", nil)).To(BeNil()) By("executing a command with run and attach without stdin") runOutput = framework.NewKubectlCommand(fmt.Sprintf("--namespace=%v", ns), "run", "run-test-2", "--image="+busyboxImage, "--restart=OnFailure", "--attach=true", "--leave-stdin-open=true", "--", "sh", "-c", "cat && echo 'stdin closed'"). @@ -546,7 +503,7 @@ var _ = SIGDescribe("Kubectl client", func() { ExecOrDie() Expect(runOutput).ToNot(ContainSubstring("abcd1234")) Expect(runOutput).To(ContainSubstring("stdin closed")) - Expect(c.Batch().Jobs(ns).Delete("run-test-2", nil)).To(BeNil()) + Expect(c.BatchV1().Jobs(ns).Delete("run-test-2", nil)).To(BeNil()) By("executing a command with run and attach with stdin with open stdin should remain running") runOutput = framework.NewKubectlCommand(nsFlag, "run", "run-test-3", "--image="+busyboxImage, "--restart=OnFailure", "--attach=true", "--leave-stdin-open=true", "--stdin", "--", "sh", "-c", "cat && echo 'stdin closed'"). @@ -577,7 +534,7 @@ var _ = SIGDescribe("Kubectl client", func() { } Expect(err).To(BeNil()) - Expect(c.Batch().Jobs(ns).Delete("run-test-3", nil)).To(BeNil()) + Expect(c.BatchV1().Jobs(ns).Delete("run-test-3", nil)).To(BeNil()) }) It("should support port-forward", func() { @@ -722,7 +679,7 @@ metadata: }) framework.KubeDescribe("Kubectl api-versions", func() { - It("should check if v1 is in available api versions [Conformance]", func() { + framework.ConformanceIt("should check if v1 is in available api versions ", func() { By("validating api versions") output := framework.RunKubectlOrDie("api-versions") if !strings.Contains(output, "v1") { @@ -813,7 +770,7 @@ metadata: }) framework.KubeDescribe("Kubectl cluster-info", func() { - It("should check if Kubernetes master services is included in cluster-info [Conformance]", func() { + framework.ConformanceIt("should check if Kubernetes master services is included in cluster-info ", func() { By("validating cluster-info") output := framework.RunKubectlOrDie("cluster-info") // Can't check exact strings due to terminal control commands (colors) @@ -830,8 +787,7 @@ metadata: }) framework.KubeDescribe("Kubectl describe", func() { - It("should check if kubectl describe prints relevant information for rc and pods [Conformance]", func() { - framework.SkipUnlessServerVersionGTE(nodePortsOptionalVersion, c.Discovery()) + framework.ConformanceIt("should check if kubectl describe prints relevant information for rc and pods ", func() { kv, err := framework.KubectlVersion() Expect(err).NotTo(HaveOccurred()) framework.SkipUnlessServerVersionGTE(kv, c.Discovery()) @@ -857,7 +813,6 @@ metadata: {"Annotations:"}, {"Status:", "Running"}, {"IP:"}, - {"Created By:", "ReplicationController/redis-master"}, {"Controlled By:", "ReplicationController/redis-master"}, {"Image:", redisImage}, {"State:", "Running"}, @@ -899,7 +854,7 @@ metadata: // Node // It should be OK to list unschedulable Nodes here. - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) node := nodes.Items[0] output = framework.RunKubectlOrDie("describe", "node", node.Name) @@ -935,7 +890,7 @@ metadata: }) framework.KubeDescribe("Kubectl expose", func() { - It("should create services for rc [Conformance]", func() { + framework.ConformanceIt("should create services for rc ", func() { controllerJson := substituteImageName(string(readTestFileOrDie(redisControllerFilename))) nsFlag := fmt.Sprintf("--namespace=%v", ns) @@ -955,7 +910,7 @@ metadata: }) validateService := func(name string, servicePort int, timeout time.Duration) { err := wait.Poll(framework.Poll, timeout, func() (bool, error) { - endpoints, err := c.Core().Endpoints(ns).Get(name, metav1.GetOptions{}) + endpoints, err := c.CoreV1().Endpoints(ns).Get(name, metav1.GetOptions{}) if err != nil { // log the real error framework.Logf("Get endpoints failed (interval %v): %v", framework.Poll, err) @@ -986,7 +941,7 @@ metadata: }) Expect(err).NotTo(HaveOccurred()) - service, err := c.Core().Services(ns).Get(name, metav1.GetOptions{}) + service, err := c.CoreV1().Services(ns).Get(name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) if len(service.Spec.Ports) != 1 { @@ -1026,7 +981,7 @@ metadata: cleanupKubectlInputs(podYaml, ns, pausePodSelector) }) - It("should update the label on a resource [Conformance]", func() { + framework.ConformanceIt("should update the label on a resource ", func() { labelName := "testing-label" labelValue := "testing-label-value" @@ -1061,9 +1016,7 @@ metadata: cleanupKubectlInputs(rc, ns, simplePodSelector) }) - It("should be able to retrieve and filter logs [Conformance]", func() { - framework.SkipUnlessServerVersionGTE(extendedPodLogFilterVersion, c.Discovery()) - + framework.ConformanceIt("should be able to retrieve and filter logs ", func() { // Split("something\n", "\n") returns ["something", ""], so // strip trailing newline first lines := func(out string) []string { @@ -1114,7 +1067,7 @@ metadata: }) framework.KubeDescribe("Kubectl patch", func() { - It("should add annotations for pods in rc [Conformance]", func() { + framework.ConformanceIt("should add annotations for pods in rc ", func() { controllerJson := substituteImageName(string(readTestFileOrDie(redisControllerFilename))) nsFlag := fmt.Sprintf("--namespace=%v", ns) By("creating Redis RC") @@ -1143,7 +1096,7 @@ metadata: }) framework.KubeDescribe("Kubectl version", func() { - It("should check is all data is printed [Conformance]", func() { + framework.ConformanceIt("should check is all data is printed ", func() { version := framework.RunKubectlOrDie("version") requiredItems := []string{"Client Version:", "Server Version:", "Major:", "Minor:", "GitCommit:"} for _, item := range requiredItems { @@ -1162,24 +1115,15 @@ metadata: BeforeEach(func() { nsFlag = fmt.Sprintf("--namespace=%v", ns) - gte, err := framework.ServerVersionGTE(deploymentsVersion, c.Discovery()) - if err != nil { - framework.Failf("Failed to get server version: %v", err) - } - if gte { - name = "e2e-test-nginx-deployment" - cleanUp = func() { framework.RunKubectlOrDie("delete", "deployment", name, nsFlag) } - } else { - name = "e2e-test-nginx-rc" - cleanUp = func() { framework.RunKubectlOrDie("delete", "rc", name, nsFlag) } - } + name = "e2e-test-nginx-deployment" + cleanUp = func() { framework.RunKubectlOrDie("delete", "deployment", name, nsFlag) } }) AfterEach(func() { cleanUp() }) - It("should create an rc or deployment from an image [Conformance]", func() { + framework.ConformanceIt("should create an rc or deployment from an image ", func() { By("running the image " + nginxImage) framework.RunKubectlOrDie("run", name, "--image="+nginxImage, nsFlag) By("verifying the pod controlled by " + name + " gets created") @@ -1209,11 +1153,11 @@ metadata: framework.RunKubectlOrDie("delete", "rc", rcName, nsFlag) }) - It("should create an rc from an image [Conformance]", func() { + framework.ConformanceIt("should create an rc from an image ", func() { By("running the image " + nginxImage) framework.RunKubectlOrDie("run", rcName, "--image="+nginxImage, "--generator=run/v1", nsFlag) By("verifying the rc " + rcName + " was created") - rc, err := c.Core().ReplicationControllers(ns).Get(rcName, metav1.GetOptions{}) + rc, err := c.CoreV1().ReplicationControllers(ns).Get(rcName, metav1.GetOptions{}) if err != nil { framework.Failf("Failed getting rc %s: %v", rcName, err) } @@ -1265,11 +1209,11 @@ metadata: framework.RunKubectlOrDie("delete", "rc", rcName, nsFlag) }) - It("should support rolling-update to same image [Conformance]", func() { + framework.ConformanceIt("should support rolling-update to same image ", func() { By("running the image " + nginxImage) framework.RunKubectlOrDie("run", rcName, "--image="+nginxImage, "--generator=run/v1", nsFlag) By("verifying the rc " + rcName + " was created") - rc, err := c.Core().ReplicationControllers(ns).Get(rcName, metav1.GetOptions{}) + rc, err := c.CoreV1().ReplicationControllers(ns).Get(rcName, metav1.GetOptions{}) if err != nil { framework.Failf("Failed getting rc %s: %v", rcName, err) } @@ -1309,13 +1253,11 @@ metadata: Expect(err).NotTo(HaveOccurred()) }) - It("should create a deployment from an image [Conformance]", func() { - framework.SkipUnlessServerVersionGTE(deploymentsVersion, c.Discovery()) - + framework.ConformanceIt("should create a deployment from an image ", func() { By("running the image " + nginxImage) framework.RunKubectlOrDie("run", dName, "--image="+nginxImage, "--generator=deployment/v1beta1", nsFlag) By("verifying the deployment " + dName + " was created") - d, err := c.Extensions().Deployments(ns).Get(dName, metav1.GetOptions{}) + d, err := c.ExtensionsV1beta1().Deployments(ns).Get(dName, metav1.GetOptions{}) if err != nil { framework.Failf("Failed getting deployment %s: %v", dName, err) } @@ -1351,13 +1293,11 @@ metadata: framework.RunKubectlOrDie("delete", "jobs", jobName, nsFlag) }) - It("should create a job from an image when restart is OnFailure [Conformance]", func() { - framework.SkipUnlessServerVersionGTE(jobsVersion, c.Discovery()) - + framework.ConformanceIt("should create a job from an image when restart is OnFailure ", func() { By("running the image " + nginxImage) framework.RunKubectlOrDie("run", jobName, "--restart=OnFailure", "--generator=job/v1", "--image="+nginxImage, nsFlag) By("verifying the job " + jobName + " was created") - job, err := c.Batch().Jobs(ns).Get(jobName, metav1.GetOptions{}) + job, err := c.BatchV1().Jobs(ns).Get(jobName, metav1.GetOptions{}) if err != nil { framework.Failf("Failed getting job %s: %v", jobName, err) } @@ -1421,13 +1361,11 @@ metadata: framework.RunKubectlOrDie("delete", "pods", podName, nsFlag) }) - It("should create a pod from an image when restart is Never [Conformance]", func() { - framework.SkipUnlessServerVersionGTE(jobsVersion, c.Discovery()) - + framework.ConformanceIt("should create a pod from an image when restart is Never ", func() { By("running the image " + nginxImage) framework.RunKubectlOrDie("run", podName, "--restart=Never", "--generator=run-pod/v1", "--image="+nginxImage, nsFlag) By("verifying the pod " + podName + " was created") - pod, err := c.Core().Pods(ns).Get(podName, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{}) if err != nil { framework.Failf("Failed getting pod %s: %v", podName, err) } @@ -1454,9 +1392,7 @@ metadata: framework.RunKubectlOrDie("delete", "pods", podName, nsFlag) }) - It("should update a single-container pod's image [Conformance]", func() { - framework.SkipUnlessServerVersionGTE(jobsVersion, c.Discovery()) - + framework.ConformanceIt("should update a single-container pod's image ", func() { By("running the image " + nginxImage) framework.RunKubectlOrDie("run", podName, "--generator=run-pod/v1", "--image="+nginxImage, "--labels=run="+podName, nsFlag) @@ -1478,7 +1414,7 @@ metadata: framework.RunKubectlOrDieInput(podJson, "replace", "-f", "-", nsFlag) By("verifying the pod " + podName + " has the right image " + busyboxImage) - pod, err := c.Core().Pods(ns).Get(podName, metav1.GetOptions{}) + pod, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{}) if err != nil { framework.Failf("Failed getting deployment %s: %v", podName, err) } @@ -1492,12 +1428,11 @@ metadata: framework.KubeDescribe("Kubectl run --rm job", func() { jobName := "e2e-test-rm-busybox-job" - It("should create a job from an image, then delete the job [Conformance]", func() { + framework.ConformanceIt("should create a job from an image, then delete the job ", func() { nsFlag := fmt.Sprintf("--namespace=%v", ns) // The rkt runtime doesn't support attach, see #23335 framework.SkipIfContainerRuntimeIs("rkt") - framework.SkipUnlessServerVersionGTE(jobsVersion, c.Discovery()) By("executing a command with run --rm and attach with stdin") t := time.NewTimer(runJobTimeout) @@ -1510,7 +1445,7 @@ metadata: Expect(runOutput).To(ContainSubstring("stdin closed")) By("verifying the job " + jobName + " was deleted") - _, err := c.Batch().Jobs(ns).Get(jobName, metav1.GetOptions{}) + _, err := c.BatchV1().Jobs(ns).Get(jobName, metav1.GetOptions{}) Expect(err).To(HaveOccurred()) Expect(apierrs.IsNotFound(err)).To(BeTrue()) }) @@ -1518,7 +1453,7 @@ metadata: framework.KubeDescribe("Proxy server", func() { // TODO: test proxy options (static, prefix, etc) - It("should support proxy with --port 0 [Conformance]", func() { + framework.ConformanceIt("should support proxy with --port 0 ", func() { By("starting the proxy server") port, cmd, err := startProxyServer() if cmd != nil { @@ -1538,7 +1473,7 @@ metadata: } }) - It("should support --unix-socket=/path [Conformance]", func() { + framework.ConformanceIt("should support --unix-socket=/path ", func() { By("Starting the proxy") tmpdir, err := ioutil.TempDir("", "kubectl-proxy-unix") if err != nil { @@ -1671,7 +1606,6 @@ metadata: framework.KubeDescribe("Kubectl create quota", func() { It("should create a quota without scopes", func() { - framework.SkipUnlessKubectlVersionGTE(kubectlCreateQuotaVersion) nsFlag := fmt.Sprintf("--namespace=%v", ns) quotaName := "million" @@ -1679,7 +1613,7 @@ metadata: framework.RunKubectlOrDie("create", "quota", quotaName, "--hard=pods=1000000,services=1000000", nsFlag) By("verifying that the quota was created") - quota, err := c.Core().ResourceQuotas(ns).Get(quotaName, metav1.GetOptions{}) + quota, err := c.CoreV1().ResourceQuotas(ns).Get(quotaName, metav1.GetOptions{}) if err != nil { framework.Failf("Failed getting quota %s: %v", quotaName, err) } @@ -1701,7 +1635,6 @@ metadata: }) It("should create a quota with scopes", func() { - framework.SkipUnlessKubectlVersionGTE(kubectlCreateQuotaVersion) nsFlag := fmt.Sprintf("--namespace=%v", ns) quotaName := "scopes" @@ -1709,7 +1642,7 @@ metadata: framework.RunKubectlOrDie("create", "quota", quotaName, "--hard=pods=1000000", "--scopes=BestEffort,NotTerminating", nsFlag) By("verifying that the quota was created") - quota, err := c.Core().ResourceQuotas(ns).Get(quotaName, metav1.GetOptions{}) + quota, err := c.CoreV1().ResourceQuotas(ns).Get(quotaName, metav1.GetOptions{}) if err != nil { framework.Failf("Failed getting quota %s: %v", quotaName, err) } @@ -1730,7 +1663,6 @@ metadata: }) It("should reject quota with invalid scopes", func() { - framework.SkipUnlessKubectlVersionGTE(kubectlCreateQuotaVersion) nsFlag := fmt.Sprintf("--namespace=%v", ns) quotaName := "scopes" @@ -1886,7 +1818,7 @@ func waitForGuestbookResponse(c clientset.Interface, cmd, arg, expectedResponse } func makeRequestToGuestbook(c clientset.Interface, cmd, value string, ns string) (string, error) { - proxyRequest, errProxy := framework.GetServicesProxyRequest(c, c.Core().RESTClient().Get()) + proxyRequest, errProxy := framework.GetServicesProxyRequest(c, c.CoreV1().RESTClient().Get()) if errProxy != nil { return "", errProxy } @@ -1955,7 +1887,7 @@ func forEachReplicationController(c clientset.Interface, ns, selectorKey, select for t := time.Now(); time.Since(t) < framework.PodListTimeout; time.Sleep(framework.Poll) { label := labels.SelectorFromSet(labels.Set(map[string]string{selectorKey: selectorValue})) options := metav1.ListOptions{LabelSelector: label.String()} - rcs, err = c.Core().ReplicationControllers(ns).List(options) + rcs, err = c.CoreV1().ReplicationControllers(ns).List(options) Expect(err).NotTo(HaveOccurred()) if len(rcs.Items) > 0 { break @@ -1991,34 +1923,19 @@ func getUDData(jpgExpected string, ns string) func(clientset.Interface, string) // getUDData validates data.json in the update-demo (returns nil if data is ok). return func(c clientset.Interface, podID string) error { framework.Logf("validating pod %s", podID) - subResourceProxyAvailable, err := framework.ServerVersionGTE(framework.SubResourcePodProxyVersion, c.Discovery()) - if err != nil { - return err - } ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout) defer cancel() - var body []byte - if subResourceProxyAvailable { - body, err = c.Core().RESTClient().Get(). - Namespace(ns). - Resource("pods"). - SubResource("proxy"). - Name(podID). - Suffix("data.json"). - Do(). - Raw() - } else { - body, err = c.Core().RESTClient().Get(). - Prefix("proxy"). - Namespace(ns). - Resource("pods"). - Name(podID). - Suffix("data.json"). - Do(). - Raw() - } + body, err := c.CoreV1().RESTClient().Get(). + Namespace(ns). + Resource("pods"). + SubResource("proxy"). + Name(podID). + Suffix("data.json"). + Do(). + Raw() + if err != nil { if ctx.Err() != nil { framework.Failf("Failed to retrieve data from container: %v", err) diff --git a/vendor/k8s.io/kubernetes/test/e2e/kubectl/portforward.go b/vendor/k8s.io/kubernetes/test/e2e/kubectl/portforward.go index a06d26481..3d87d7ed2 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/kubectl/portforward.go +++ b/vendor/k8s.io/kubernetes/test/e2e/kubectl/portforward.go @@ -22,7 +22,6 @@ import ( "bytes" "encoding/binary" "fmt" - "io" "io/ioutil" "net" "os/exec" @@ -36,7 +35,6 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" - utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/test/e2e/framework" testutils "k8s.io/kubernetes/test/utils" imageutils "k8s.io/kubernetes/test/utils/image" @@ -51,8 +49,7 @@ const ( // TODO support other ports besides 80 var ( - portForwardRegexp = regexp.MustCompile("Forwarding from 127.0.0.1:([0-9]+) -> 80") - portForwardPortToStdOutV = utilversion.MustParseSemantic("v1.3.0-alpha.4") + portForwardRegexp = regexp.MustCompile("Forwarding from 127.0.0.1:([0-9]+) -> 80") ) func pfPod(expectedClientData, chunks, chunkSize, chunkIntervalMillis string, bindAddress string) *v1.Pod { @@ -167,25 +164,13 @@ func runPortForward(ns, podName string, port int) *portForwardCommand { // by the port-forward command. We don't want to hard code the port as we have no // way of guaranteeing we can pick one that isn't in use, particularly on Jenkins. framework.Logf("starting port-forward command and streaming output") - stdout, stderr, err := framework.StartCmdAndStreamOutput(cmd) + portOutput, _, err := framework.StartCmdAndStreamOutput(cmd) if err != nil { framework.Failf("Failed to start port-forward command: %v", err) } buf := make([]byte, 128) - // After v1.3.0-alpha.4 (#17030), kubectl port-forward outputs port - // info to stdout, not stderr, so for version-skewed tests, look there - // instead. - var portOutput io.ReadCloser - if useStdOut, err := framework.KubectlVersionGTE(portForwardPortToStdOutV); err != nil { - framework.Failf("Failed to get kubectl version: %v", err) - } else if useStdOut { - portOutput = stdout - } else { - portOutput = stderr - } - var n int framework.Logf("reading from `kubectl port-forward` command's stdout") if n, err = portOutput.Read(buf); err != nil { @@ -211,7 +196,7 @@ func runPortForward(ns, podName string, port int) *portForwardCommand { func doTestConnectSendDisconnect(bindAddress string, f *framework.Framework) { By("Creating the target pod") pod := pfPod("", "10", "10", "100", fmt.Sprintf("%s", bindAddress)) - if _, err := f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod); err != nil { + if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil { framework.Failf("Couldn't create pod: %v", err) } if err := f.WaitForPodReady(pod.Name); err != nil { @@ -267,7 +252,7 @@ func doTestConnectSendDisconnect(bindAddress string, f *framework.Framework) { func doTestMustConnectSendNothing(bindAddress string, f *framework.Framework) { By("Creating the target pod") pod := pfPod("abc", "1", "1", "1", fmt.Sprintf("%s", bindAddress)) - if _, err := f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod); err != nil { + if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil { framework.Failf("Couldn't create pod: %v", err) } if err := f.WaitForPodReady(pod.Name); err != nil { @@ -312,7 +297,7 @@ func doTestMustConnectSendNothing(bindAddress string, f *framework.Framework) { func doTestMustConnectSendDisconnect(bindAddress string, f *framework.Framework) { By("Creating the target pod") pod := pfPod("abc", "10", "10", "100", fmt.Sprintf("%s", bindAddress)) - if _, err := f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod); err != nil { + if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil { framework.Failf("Couldn't create pod: %v", err) } if err := f.WaitForPodReady(pod.Name); err != nil { @@ -382,7 +367,7 @@ func doTestOverWebSockets(bindAddress string, f *framework.Framework) { By("Creating the pod") pod := pfPod("def", "10", "10", "100", fmt.Sprintf("%s", bindAddress)) - if _, err := f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod); err != nil { + if _, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod); err != nil { framework.Failf("Couldn't create pod: %v", err) } if err := f.WaitForPodReady(pod.Name); err != nil { @@ -397,7 +382,7 @@ func doTestOverWebSockets(bindAddress string, f *framework.Framework) { } }() - req := f.ClientSet.Core().RESTClient().Get(). + req := f.ClientSet.CoreV1().RESTClient().Get(). Namespace(f.Namespace.Name). Resource("pods"). Name(pod.Name). diff --git a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/BUILD b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/BUILD index 938b36aa6..2a004bd75 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/BUILD @@ -18,7 +18,7 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/lifecycle", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubelet/pod:go_default_library", "//pkg/util/version:go_default_library", "//test/e2e/chaosmonkey:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/addon_update.go b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/addon_update.go index 17a3adc5f..50fd42663 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/addon_update.go +++ b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/addon_update.go @@ -298,7 +298,7 @@ var _ = SIGDescribe("Addon update", func() { // Delete the "ensure exist class" addon at the end. defer func() { framework.Logf("Cleaning up ensure exist class addon.") - Expect(f.ClientSet.Core().Services(addonNsName).Delete("addon-ensure-exists-test", nil)).NotTo(HaveOccurred()) + Expect(f.ClientSet.CoreV1().Services(addonNsName).Delete("addon-ensure-exists-test", nil)).NotTo(HaveOccurred()) }() waitForReplicationControllerInAddonTest(f.ClientSet, addonNsName, "addon-reconcile-test", true) @@ -331,7 +331,7 @@ var _ = SIGDescribe("Addon update", func() { waitForServiceInAddonTest(f.ClientSet, addonNsName, "addon-ensure-exists-test", true) By("verify invalid addons weren't created") - _, err = f.ClientSet.Core().ReplicationControllers(addonNsName).Get("invalid-addon-test", metav1.GetOptions{}) + _, err = f.ClientSet.CoreV1().ReplicationControllers(addonNsName).Get("invalid-addon-test", metav1.GetOptions{}) Expect(err).To(HaveOccurred()) // Invalid addon manifests and the "ensure exist class" addon will be deleted by the deferred function. diff --git a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/reboot.go b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/reboot.go index 72125407e..04cabdde8 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/reboot.go +++ b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/reboot.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/sets" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/e2e/framework" testutils "k8s.io/kubernetes/test/utils" @@ -67,7 +67,7 @@ var _ = SIGDescribe("Reboot [Disruptive] [Feature:Reboot]", func() { // events for the kube-system namespace on failures namespaceName := metav1.NamespaceSystem By(fmt.Sprintf("Collecting events from namespace %q.", namespaceName)) - events, err := f.ClientSet.Core().Events(namespaceName).List(metav1.ListOptions{}) + events, err := f.ClientSet.CoreV1().Events(namespaceName).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) for _, e := range events.Items { @@ -224,7 +224,7 @@ func rebootNode(c clientset.Interface, provider, name, rebootCmd string) bool { // Get the node initially. framework.Logf("Getting %s", name) - node, err := c.Core().Nodes().Get(name, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(name, metav1.GetOptions{}) if err != nil { framework.Logf("Couldn't get node %s", name) return false diff --git a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/resize_nodes.go b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/resize_nodes.go index c2e3e78be..49e874559 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/resize_nodes.go +++ b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/resize_nodes.go @@ -33,12 +33,12 @@ import ( const resizeNodeReadyTimeout = 2 * time.Minute func resizeRC(c clientset.Interface, ns, name string, replicas int32) error { - rc, err := c.Core().ReplicationControllers(ns).Get(name, metav1.GetOptions{}) + rc, err := c.CoreV1().ReplicationControllers(ns).Get(name, metav1.GetOptions{}) if err != nil { return err } *(rc.Spec.Replicas) = replicas - _, err = c.Core().ReplicationControllers(rc.Namespace).Update(rc) + _, err = c.CoreV1().ReplicationControllers(rc.Namespace).Update(rc) return err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/restart.go b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/restart.go index da28be9ec..d26c1f94b 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/restart.go +++ b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/restart.go @@ -163,7 +163,7 @@ func restartNodes(f *framework.Framework, nodeNames []string) error { // List old boot IDs. oldBootIDs := make(map[string]string) for _, name := range nodeNames { - node, err := f.ClientSet.Core().Nodes().Get(name, metav1.GetOptions{}) + node, err := f.ClientSet.CoreV1().Nodes().Get(name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("error getting node info before reboot: %s", err) } @@ -185,7 +185,7 @@ func restartNodes(f *framework.Framework, nodeNames []string) error { // Wait for their boot IDs to change. for _, name := range nodeNames { if err := wait.Poll(30*time.Second, 5*time.Minute, func() (bool, error) { - node, err := f.ClientSet.Core().Nodes().Get(name, metav1.GetOptions{}) + node, err := f.ClientSet.CoreV1().Nodes().Get(name, metav1.GetOptions{}) if err != nil { return false, fmt.Errorf("error getting node info after reboot: %s", err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/limit_range.go b/vendor/k8s.io/kubernetes/test/e2e/limit_range.go deleted file mode 100644 index 466544dee..000000000 --- a/vendor/k8s.io/kubernetes/test/e2e/limit_range.go +++ /dev/null @@ -1,165 +0,0 @@ -/* -Copyright 2015 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 e2e - -import ( - "fmt" - - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/test/e2e/framework" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" -) - -var _ = framework.KubeDescribe("LimitRange", func() { - f := framework.NewDefaultFramework("limitrange") - - It("should create a LimitRange with defaults and ensure pod has those defaults applied.", func() { - By("Creating a LimitRange") - - min := getResourceList("50m", "100Mi") - max := getResourceList("500m", "500Mi") - defaultLimit := getResourceList("500m", "500Mi") - defaultRequest := getResourceList("100m", "200Mi") - maxLimitRequestRatio := v1.ResourceList{} - limitRange := newLimitRange("limit-range", v1.LimitTypeContainer, - min, max, - defaultLimit, defaultRequest, - maxLimitRequestRatio) - limitRange, err := f.ClientSet.Core().LimitRanges(f.Namespace.Name).Create(limitRange) - Expect(err).NotTo(HaveOccurred()) - - By("Fetching the LimitRange to ensure it has proper values") - limitRange, err = f.ClientSet.Core().LimitRanges(f.Namespace.Name).Get(limitRange.Name, metav1.GetOptions{}) - expected := v1.ResourceRequirements{Requests: defaultRequest, Limits: defaultLimit} - actual := v1.ResourceRequirements{Requests: limitRange.Spec.Limits[0].DefaultRequest, Limits: limitRange.Spec.Limits[0].Default} - err = equalResourceRequirement(expected, actual) - Expect(err).NotTo(HaveOccurred()) - - By("Creating a Pod with no resource requirements") - pod := f.NewTestPod("pod-no-resources", v1.ResourceList{}, v1.ResourceList{}) - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) - Expect(err).NotTo(HaveOccurred()) - - By("Ensuring Pod has resource requirements applied from LimitRange") - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) - Expect(err).NotTo(HaveOccurred()) - for i := range pod.Spec.Containers { - err = equalResourceRequirement(expected, pod.Spec.Containers[i].Resources) - if err != nil { - // Print the pod to help in debugging. - framework.Logf("Pod %+v does not have the expected requirements", pod) - Expect(err).NotTo(HaveOccurred()) - } - } - - By("Creating a Pod with partial resource requirements") - pod = f.NewTestPod("pod-partial-resources", getResourceList("", "150Mi"), getResourceList("300m", "")) - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) - Expect(err).NotTo(HaveOccurred()) - - By("Ensuring Pod has merged resource requirements applied from LimitRange") - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) - Expect(err).NotTo(HaveOccurred()) - // This is an interesting case, so it's worth a comment - // If you specify a Limit, and no Request, the Limit will default to the Request - // This means that the LimitRange.DefaultRequest will ONLY take affect if a container.resources.limit is not supplied - expected = v1.ResourceRequirements{Requests: getResourceList("300m", "150Mi"), Limits: getResourceList("300m", "500Mi")} - for i := range pod.Spec.Containers { - err = equalResourceRequirement(expected, pod.Spec.Containers[i].Resources) - if err != nil { - // Print the pod to help in debugging. - framework.Logf("Pod %+v does not have the expected requirements", pod) - Expect(err).NotTo(HaveOccurred()) - } - } - - By("Failing to create a Pod with less than min resources") - pod = f.NewTestPod(podName, getResourceList("10m", "50Mi"), v1.ResourceList{}) - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) - Expect(err).To(HaveOccurred()) - - By("Failing to create a Pod with more than max resources") - pod = f.NewTestPod(podName, getResourceList("600m", "600Mi"), v1.ResourceList{}) - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) - Expect(err).To(HaveOccurred()) - }) - -}) - -func equalResourceRequirement(expected v1.ResourceRequirements, actual v1.ResourceRequirements) error { - framework.Logf("Verifying requests: expected %v with actual %v", expected.Requests, actual.Requests) - err := equalResourceList(expected.Requests, actual.Requests) - if err != nil { - return err - } - framework.Logf("Verifying limits: expected %v with actual %v", expected.Limits, actual.Limits) - err = equalResourceList(expected.Limits, actual.Limits) - return err -} - -func equalResourceList(expected v1.ResourceList, actual v1.ResourceList) error { - for k, v := range expected { - if actualValue, found := actual[k]; !found || (v.Cmp(actualValue) != 0) { - return fmt.Errorf("resource %v expected %v actual %v", k, v.String(), actualValue.String()) - } - } - for k, v := range actual { - if expectedValue, found := expected[k]; !found || (v.Cmp(expectedValue) != 0) { - return fmt.Errorf("resource %v expected %v actual %v", k, expectedValue.String(), v.String()) - } - } - return nil -} - -func getResourceList(cpu, memory string) v1.ResourceList { - res := v1.ResourceList{} - if cpu != "" { - res[v1.ResourceCPU] = resource.MustParse(cpu) - } - if memory != "" { - res[v1.ResourceMemory] = resource.MustParse(memory) - } - return res -} - -// newLimitRange returns a limit range with specified data -func newLimitRange(name string, limitType v1.LimitType, - min, max, - defaultLimit, defaultRequest, - maxLimitRequestRatio v1.ResourceList) *v1.LimitRange { - return &v1.LimitRange{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Spec: v1.LimitRangeSpec{ - Limits: []v1.LimitRangeItem{ - { - Type: limitType, - Min: min, - Max: max, - Default: defaultLimit, - DefaultRequest: defaultRequest, - MaxLimitRequestRatio: maxLimitRequestRatio, - }, - }, - }, - } -} diff --git a/vendor/k8s.io/kubernetes/test/e2e/manifest/BUILD b/vendor/k8s.io/kubernetes/test/e2e/manifest/BUILD index 5f2ec74d0..87195021e 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/manifest/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/manifest/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["manifest.go"], importpath = "k8s.io/kubernetes/test/e2e/manifest", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//test/e2e/generated:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/manifest/manifest.go b/vendor/k8s.io/kubernetes/test/e2e/manifest/manifest.go index 9d7130f4d..75d89aacc 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/manifest/manifest.go +++ b/vendor/k8s.io/kubernetes/test/e2e/manifest/manifest.go @@ -23,7 +23,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" utilyaml "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/test/e2e/generated" ) @@ -36,7 +36,7 @@ func PodFromManifest(filename string) (*v1.Pod, error) { if err != nil { return nil, err } - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), json, &pod); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), json, &pod); err != nil { return nil, err } return &pod, nil @@ -51,7 +51,7 @@ func RcFromManifest(fileName string) (*v1.ReplicationController, error) { if err != nil { return nil, err } - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), json, &controller); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), json, &controller); err != nil { return nil, err } return &controller, nil @@ -66,7 +66,7 @@ func SvcFromManifest(fileName string) (*v1.Service, error) { if err != nil { return nil, err } - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), json, &svc); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), json, &svc); err != nil { return nil, err } return &svc, nil @@ -81,7 +81,7 @@ func IngressFromManifest(fileName string) (*extensions.Ingress, error) { if err != nil { return nil, err } - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), json, &ing); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), json, &ing); err != nil { return nil, err } return &ing, nil @@ -96,7 +96,7 @@ func StatefulSetFromManifest(fileName, ns string) (*apps.StatefulSet, error) { if err != nil { return nil, err } - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), json, &ss); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), json, &ss); err != nil { return nil, err } ss.Namespace = ns diff --git a/vendor/k8s.io/kubernetes/test/e2e/multicluster/ubernetes_lite.go b/vendor/k8s.io/kubernetes/test/e2e/multicluster/ubernetes_lite.go index 2e6f5bce2..bc3cc3172 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/multicluster/ubernetes_lite.go +++ b/vendor/k8s.io/kubernetes/test/e2e/multicluster/ubernetes_lite.go @@ -82,7 +82,7 @@ func SpreadServiceOrFail(f *framework.Framework, replicaCount int, image string) }}, }, } - _, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(serviceSpec) + _, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(serviceSpec) Expect(err).NotTo(HaveOccurred()) // Now create some pods behind the service @@ -132,7 +132,7 @@ func getZoneNameForNode(node v1.Node) (string, error) { // Find the names of all zones in which we have nodes in this cluster. func getZoneNames(c clientset.Interface) ([]string, error) { zoneNames := sets.NewString() - nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { return nil, err } @@ -156,7 +156,7 @@ func getZoneCount(c clientset.Interface) (int, error) { // Find the name of the zone in which the pod is scheduled func getZoneNameForPod(c clientset.Interface, pod v1.Pod) (string, error) { By(fmt.Sprintf("Getting zone name for pod %s, on node %s", pod.Name, pod.Spec.NodeName)) - node, err := c.Core().Nodes().Get(pod.Spec.NodeName, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(pod.Spec.NodeName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) return getZoneNameForNode(*node) } @@ -196,7 +196,7 @@ func checkZoneSpreading(c clientset.Interface, pods *v1.PodList, zoneNames []str func SpreadRCOrFail(f *framework.Framework, replicaCount int32, image string) { name := "ubelite-spread-rc-" + string(uuid.NewUUID()) By(fmt.Sprintf("Creating replication controller %s", name)) - controller, err := f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Create(&v1.ReplicationController{ + controller, err := f.ClientSet.CoreV1().ReplicationControllers(f.Namespace.Name).Create(&v1.ReplicationController{ ObjectMeta: metav1.ObjectMeta{ Namespace: f.Namespace.Name, Name: name, @@ -309,7 +309,7 @@ func PodsUseStaticPVsOrFail(f *framework.Framework, podCount int, image string) By("Creating pods for each static PV") for _, config := range configs { - podConfig := framework.MakePod(ns, []*v1.PersistentVolumeClaim{config.pvc}, false, "") + podConfig := framework.MakePod(ns, nil, []*v1.PersistentVolumeClaim{config.pvc}, false, "") config.pod, err = c.Core().Pods(ns).Create(podConfig) Expect(err).NotTo(HaveOccurred()) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/BUILD b/vendor/k8s.io/kubernetes/test/e2e/network/BUILD index 07fb26d65..32d440f9d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/network/BUILD @@ -12,6 +12,7 @@ go_library( "dns_common.go", "dns_configmap.go", "doc.go", + "example_cluster_dns.go", "firewall.go", "framework.go", "ingress.go", @@ -29,9 +30,8 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/network", deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", - "//pkg/apis/networking:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/gce:go_default_library", @@ -47,6 +47,7 @@ go_library( "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/google.golang.org/api/compute/v0.alpha:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/dns.go b/vendor/k8s.io/kubernetes/test/e2e/network/dns.go index 2b6e8e148..556d47208 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/dns.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/dns.go @@ -169,35 +169,20 @@ func assertFilesContain(fileNames []string, fileDir string, pod *v1.Pod, client framework.ExpectNoError(wait.Poll(time.Second*10, time.Second*600, func() (bool, error) { failed = []string{} - subResourceProxyAvailable, err := framework.ServerVersionGTE(framework.SubResourcePodProxyVersion, client.Discovery()) - if err != nil { - return false, err - } ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout) defer cancel() - var contents []byte for _, fileName := range fileNames { - if subResourceProxyAvailable { - contents, err = client.Core().RESTClient().Get(). - Context(ctx). - Namespace(pod.Namespace). - Resource("pods"). - SubResource("proxy"). - Name(pod.Name). - Suffix(fileDir, fileName). - Do().Raw() - } else { - contents, err = client.Core().RESTClient().Get(). - Context(ctx). - Prefix("proxy"). - Resource("pods"). - Namespace(pod.Namespace). - Name(pod.Name). - Suffix(fileDir, fileName). - Do().Raw() - } + contents, err := client.CoreV1().RESTClient().Get(). + Context(ctx). + Namespace(pod.Namespace). + Resource("pods"). + SubResource("proxy"). + Name(pod.Name). + Suffix(fileDir, fileName). + Do().Raw() + if err != nil { if ctx.Err() != nil { framework.Failf("Unable to read %s from pod %s: %v", fileName, pod.Name, err) @@ -221,7 +206,7 @@ func assertFilesContain(fileNames []string, fileDir string, pod *v1.Pod, client func validateDNSResults(f *framework.Framework, pod *v1.Pod, fileNames []string) { By("submitting the pod to kubernetes") - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) defer func() { By("deleting the pod") defer GinkgoRecover() @@ -249,7 +234,7 @@ func validateDNSResults(f *framework.Framework, pod *v1.Pod, fileNames []string) func validateTargetedProbeOutput(f *framework.Framework, pod *v1.Pod, fileNames []string, value string) { By("submitting the pod to kubernetes") - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) defer func() { By("deleting the pod") defer GinkgoRecover() @@ -284,7 +269,11 @@ func reverseArray(arr []string) []string { var _ = SIGDescribe("DNS", func() { f := framework.NewDefaultFramework("dns") - It("should provide DNS for the cluster [Conformance]", func() { + /* + Testname: dns-for-clusters + Description: Make sure that DNS can resolve the names of clusters. + */ + framework.ConformanceIt("should provide DNS for the cluster ", func() { // All the names we need to be able to resolve. // TODO: Spin up a separate test service and test that dns works for that service. namesToResolve := []string{ @@ -310,28 +299,32 @@ var _ = SIGDescribe("DNS", func() { validateDNSResults(f, pod, append(wheezyFileNames, jessieFileNames...)) }) - It("should provide DNS for services [Conformance]", func() { + /* + Testname: dns-for-services + Description: Make sure that DNS can resolve the names of services. + */ + framework.ConformanceIt("should provide DNS for services ", func() { // Create a test headless service. By("Creating a test headless service") testServiceSelector := map[string]string{ "dns-test": "true", } headlessService := framework.CreateServiceSpec(dnsTestServiceName, "", true, testServiceSelector) - _, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(headlessService) + _, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(headlessService) Expect(err).NotTo(HaveOccurred()) defer func() { By("deleting the test headless service") defer GinkgoRecover() - f.ClientSet.Core().Services(f.Namespace.Name).Delete(headlessService.Name, nil) + f.ClientSet.CoreV1().Services(f.Namespace.Name).Delete(headlessService.Name, nil) }() regularService := framework.CreateServiceSpec("test-service-2", "", false, testServiceSelector) - regularService, err = f.ClientSet.Core().Services(f.Namespace.Name).Create(regularService) + regularService, err = f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(regularService) Expect(err).NotTo(HaveOccurred()) defer func() { By("deleting the test service") defer GinkgoRecover() - f.ClientSet.Core().Services(f.Namespace.Name).Delete(regularService.Name, nil) + f.ClientSet.CoreV1().Services(f.Namespace.Name).Delete(regularService.Name, nil) }() // All the names we need to be able to resolve. @@ -367,12 +360,12 @@ var _ = SIGDescribe("DNS", func() { serviceName := "dns-test-service-2" podHostname := "dns-querier-2" headlessService := framework.CreateServiceSpec(serviceName, "", true, testServiceSelector) - _, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(headlessService) + _, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(headlessService) Expect(err).NotTo(HaveOccurred()) defer func() { By("deleting the test headless service") defer GinkgoRecover() - f.ClientSet.Core().Services(f.Namespace.Name).Delete(headlessService.Name, nil) + f.ClientSet.CoreV1().Services(f.Namespace.Name).Delete(headlessService.Name, nil) }() hostFQDN := fmt.Sprintf("%s.%s.%s.svc.cluster.local", podHostname, serviceName, f.Namespace.Name) @@ -398,12 +391,12 @@ var _ = SIGDescribe("DNS", func() { By("Creating a test externalName service") serviceName := "dns-test-service-3" externalNameService := framework.CreateServiceSpec(serviceName, "foo.example.com", false, nil) - _, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(externalNameService) + _, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(externalNameService) Expect(err).NotTo(HaveOccurred()) defer func() { By("deleting the test externalName service") defer GinkgoRecover() - f.ClientSet.Core().Services(f.Namespace.Name).Delete(externalNameService.Name, nil) + f.ClientSet.CoreV1().Services(f.Namespace.Name).Delete(externalNameService.Name, nil) }() hostFQDN := fmt.Sprintf("%s.%s.svc.cluster.local", serviceName, f.Namespace.Name) @@ -453,7 +446,7 @@ var _ = SIGDescribe("DNS", func() { By("creating a third pod to probe DNS") pod3 := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd) - svc, err := f.ClientSet.Core().Services(f.Namespace.Name).Get(externalNameService.Name, metav1.GetOptions{}) + svc, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Get(externalNameService.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) validateTargetedProbeOutput(f, pod3, []string{wheezyFileName, jessieFileName}, svc.Spec.ClusterIP) diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/dns_common.go b/vendor/k8s.io/kubernetes/test/e2e/network/dns_common.go index d01339f23..ddcb26803 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/dns_common.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/dns_common.go @@ -64,7 +64,7 @@ func (t *dnsTestCommon) init() { label := labels.SelectorFromSet(labels.Set(map[string]string{"k8s-app": "kube-dns"})) options := metav1.ListOptions{LabelSelector: label.String()} - pods, err := t.f.ClientSet.Core().Pods("kube-system").List(options) + pods, err := t.f.ClientSet.CoreV1().Pods("kube-system").List(options) Expect(err).NotTo(HaveOccurred()) Expect(len(pods.Items)).Should(BeNumerically(">=", 1)) @@ -142,16 +142,16 @@ func (t *dnsTestCommon) setConfigMap(cm *v1.ConfigMap) { "metadata.name": t.name, }.AsSelector().String(), } - cmList, err := t.c.Core().ConfigMaps(t.ns).List(options) + cmList, err := t.c.CoreV1().ConfigMaps(t.ns).List(options) Expect(err).NotTo(HaveOccurred()) if len(cmList.Items) == 0 { By(fmt.Sprintf("Creating the ConfigMap (%s:%s) %+v", t.ns, t.name, *cm)) - _, err := t.c.Core().ConfigMaps(t.ns).Create(cm) + _, err := t.c.CoreV1().ConfigMaps(t.ns).Create(cm) Expect(err).NotTo(HaveOccurred()) } else { By(fmt.Sprintf("Updating the ConfigMap (%s:%s) to %+v", t.ns, t.name, *cm)) - _, err := t.c.Core().ConfigMaps(t.ns).Update(cm) + _, err := t.c.CoreV1().ConfigMaps(t.ns).Update(cm) Expect(err).NotTo(HaveOccurred()) } } @@ -159,7 +159,7 @@ func (t *dnsTestCommon) setConfigMap(cm *v1.ConfigMap) { func (t *dnsTestCommon) deleteConfigMap() { By(fmt.Sprintf("Deleting the ConfigMap (%s:%s)", t.ns, t.name)) t.cm = nil - err := t.c.Core().ConfigMaps(t.ns).Delete(t.name, nil) + err := t.c.CoreV1().ConfigMaps(t.ns).Delete(t.name, nil) Expect(err).NotTo(HaveOccurred()) } @@ -191,7 +191,7 @@ func (t *dnsTestCommon) createUtilPod() { } var err error - t.utilPod, err = t.c.Core().Pods(t.f.Namespace.Name).Create(t.utilPod) + t.utilPod, err = t.c.CoreV1().Pods(t.f.Namespace.Name).Create(t.utilPod) Expect(err).NotTo(HaveOccurred()) framework.Logf("Created pod %v", t.utilPod) Expect(t.f.WaitForPodRunning(t.utilPod.Name)).NotTo(HaveOccurred()) @@ -216,13 +216,13 @@ func (t *dnsTestCommon) createUtilPod() { }, } - t.utilService, err = t.c.Core().Services(t.f.Namespace.Name).Create(t.utilService) + t.utilService, err = t.c.CoreV1().Services(t.f.Namespace.Name).Create(t.utilService) Expect(err).NotTo(HaveOccurred()) framework.Logf("Created service %v", t.utilService) } func (t *dnsTestCommon) deleteUtilPod() { - podClient := t.c.Core().Pods(t.f.Namespace.Name) + podClient := t.c.CoreV1().Pods(t.f.Namespace.Name) if err := podClient.Delete(t.utilPod.Name, metav1.NewDeleteOptions(0)); err != nil { framework.Logf("Delete of pod %v:%v failed: %v", t.utilPod.Namespace, t.utilPod.Name, err) @@ -263,18 +263,18 @@ func (t *dnsTestCommon) createDNSServer(aRecords map[string]string) { } var err error - t.dnsServerPod, err = t.c.Core().Pods(t.f.Namespace.Name).Create(t.dnsServerPod) + t.dnsServerPod, err = t.c.CoreV1().Pods(t.f.Namespace.Name).Create(t.dnsServerPod) Expect(err).NotTo(HaveOccurred()) framework.Logf("Created pod %v", t.dnsServerPod) Expect(t.f.WaitForPodRunning(t.dnsServerPod.Name)).NotTo(HaveOccurred()) - t.dnsServerPod, err = t.c.Core().Pods(t.f.Namespace.Name).Get( + t.dnsServerPod, err = t.c.CoreV1().Pods(t.f.Namespace.Name).Get( t.dnsServerPod.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) } func (t *dnsTestCommon) deleteDNSServerPod() { - podClient := t.c.Core().Pods(t.f.Namespace.Name) + podClient := t.c.CoreV1().Pods(t.f.Namespace.Name) if err := podClient.Delete(t.dnsServerPod.Name, metav1.NewDeleteOptions(0)); err != nil { framework.Logf("Delete of pod %v:%v failed: %v", t.utilPod.Namespace, t.dnsServerPod.Name, err) diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/dns_configmap.go b/vendor/k8s.io/kubernetes/test/e2e/network/dns_configmap.go index d5ddd53a6..3e11edc08 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/dns_configmap.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/dns_configmap.go @@ -45,7 +45,7 @@ var _ = SIGDescribe("DNS configMap federations", func() { func (t *dnsFederationsConfigMapTest) run() { t.init() - defer t.c.Core().ConfigMaps(t.ns).Delete(t.name, nil) + defer t.c.CoreV1().ConfigMaps(t.ns).Delete(t.name, nil) t.createUtilPod() defer t.deleteUtilPod() @@ -175,7 +175,7 @@ func (t *dnsNameserverTest) run() { "dnsmasq", moreForeverTestTimeout) - t.c.Core().ConfigMaps(t.ns).Delete(t.name, nil) + t.c.CoreV1().ConfigMaps(t.ns).Delete(t.name, nil) // Wait for the deleted ConfigMap to take effect, otherwise the // configuration can bleed into other tests. t.checkDNSRecordFrom( diff --git a/vendor/k8s.io/kubernetes/test/e2e/example_cluster_dns.go b/vendor/k8s.io/kubernetes/test/e2e/network/example_cluster_dns.go similarity index 89% rename from vendor/k8s.io/kubernetes/test/e2e/example_cluster_dns.go rename to vendor/k8s.io/kubernetes/test/e2e/network/example_cluster_dns.go index b8bd84edd..edf629769 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/example_cluster_dns.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/example_cluster_dns.go @@ -14,18 +14,21 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package network import ( "fmt" + "io/ioutil" + "os" "path/filepath" + "strings" "time" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/e2e/framework" . "github.com/onsi/ginkgo" @@ -44,7 +47,7 @@ try: except: print 'err'` -var _ = framework.KubeDescribe("ClusterDns [Feature:Example]", func() { +var _ = SIGDescribe("ClusterDns [Feature:Example]", func() { f := framework.NewDefaultFramework("cluster-dns") var c clientset.Interface @@ -100,7 +103,7 @@ var _ = framework.KubeDescribe("ClusterDns [Feature:Example]", func() { for _, ns := range namespaces { label := labels.SelectorFromSet(labels.Set(map[string]string{"name": backendRcName})) options := metav1.ListOptions{LabelSelector: label.String()} - pods, err := c.Core().Pods(ns.Name).List(options) + pods, err := c.CoreV1().Pods(ns.Name).List(options) Expect(err).NotTo(HaveOccurred()) err = framework.PodsResponding(c, ns.Name, backendPodName, false, pods) Expect(err).NotTo(HaveOccurred(), "waiting for all pods to respond") @@ -120,7 +123,7 @@ var _ = framework.KubeDescribe("ClusterDns [Feature:Example]", func() { // This code is probably unnecessary, but let's stay on the safe side. label := labels.SelectorFromSet(labels.Set(map[string]string{"name": backendPodName})) options := metav1.ListOptions{LabelSelector: label.String()} - pods, err := c.Core().Pods(namespaces[0].Name).List(options) + pods, err := c.CoreV1().Pods(namespaces[0].Name).List(options) if err != nil || pods == nil || len(pods.Items) == 0 { framework.Failf("no running pods found") @@ -156,3 +159,14 @@ var _ = framework.KubeDescribe("ClusterDns [Feature:Example]", func() { func getNsCmdFlag(ns *v1.Namespace) string { return fmt.Sprintf("--namespace=%v", ns.Name) } + +// pass enough context with the 'old' parameter so that it replaces what your really intended. +func prepareResourceWithReplacedString(inputFile, old, new string) string { + f, err := os.Open(inputFile) + Expect(err).NotTo(HaveOccurred()) + defer f.Close() + data, err := ioutil.ReadAll(f) + Expect(err).NotTo(HaveOccurred()) + podYaml := strings.Replace(string(data), old, new, 1) + return podYaml +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/ingress.go b/vendor/k8s.io/kubernetes/test/e2e/network/ingress.go index de16b0cf6..4a4736702 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/ingress.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/ingress.go @@ -22,7 +22,9 @@ import ( "time" rbacv1beta1 "k8s.io/api/rbac/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/authentication/serviceaccount" "k8s.io/kubernetes/test/e2e/framework" @@ -30,6 +32,12 @@ import ( . "github.com/onsi/gomega" ) +const ( + NEGAnnotation = "alpha.cloud.google.com/load-balancer-neg" + NEGUpdateTimeout = 2 * time.Minute + instanceGroupAnnotation = "ingress.gcp.kubernetes.io/instance-groups" +) + var _ = SIGDescribe("Loadbalancing: L7", func() { defer GinkgoRecover() var ( @@ -96,7 +104,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() { }) It("should conform to Ingress spec", func() { - conformanceTests = framework.CreateIngressComformanceTests(jig, ns) + conformanceTests = framework.CreateIngressComformanceTests(jig, ns, map[string]string{}) for _, t := range conformanceTests { By(t.EntryLog) t.Execute() @@ -113,7 +121,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() { jig.CreateIngress(filepath.Join(framework.IngressManifestPath, "static-ip"), ns, map[string]string{ "kubernetes.io/ingress.global-static-ip-name": ns, "kubernetes.io/ingress.allow-http": "false", - }) + }, map[string]string{}) By("waiting for Ingress to come up with ip: " + ip) httpClient := framework.BuildInsecureClient(framework.IngressReqTimeout) @@ -146,9 +154,208 @@ var _ = SIGDescribe("Loadbalancing: L7", func() { // framework.ExpectNoError(jig.verifyURL(fmt.Sprintf("https://%v/", ip), "", 30, 1*time.Second, httpClient)) }) + It("multicluster ingress should get instance group annotation", func() { + name := "echomap" + jig.CreateIngress(filepath.Join(framework.IngressManifestPath, "http"), ns, map[string]string{ + framework.IngressClass: framework.MulticlusterIngressClassValue, + }, map[string]string{}) + + By(fmt.Sprintf("waiting for Ingress %s to come up", name)) + pollErr := wait.Poll(2*time.Second, framework.LoadBalancerPollTimeout, func() (bool, error) { + ing, err := f.ClientSet.ExtensionsV1beta1().Ingresses(ns).Get(name, metav1.GetOptions{}) + framework.ExpectNoError(err) + annotations := ing.Annotations + if annotations == nil || annotations[instanceGroupAnnotation] == "" { + framework.Logf("Waiting for ingress to get %s annotation. Found annotations: %v", instanceGroupAnnotation, annotations) + return false, nil + } + return true, nil + }) + if pollErr != nil { + framework.ExpectNoError(fmt.Errorf("Timed out waiting for ingress %s to get %s annotation", name, instanceGroupAnnotation)) + } + // TODO(nikhiljindal): Check the instance group annotation value and verify with a multizone cluster. + }) + // TODO: Implement a multizone e2e that verifies traffic reaches each // zone based on pod labels. }) + Describe("GCE [Slow] [Feature:NEG]", func() { + var gceController *framework.GCEIngressController + + // Platform specific setup + BeforeEach(func() { + framework.SkipUnlessProviderIs("gce", "gke") + By("Initializing gce controller") + gceController = &framework.GCEIngressController{ + Ns: ns, + Client: jig.Client, + Cloud: framework.TestContext.CloudConfig, + } + gceController.Init() + }) + + // Platform specific cleanup + AfterEach(func() { + if CurrentGinkgoTestDescription().Failed { + framework.DescribeIng(ns) + } + if jig.Ingress == nil { + By("No ingress created, no cleanup necessary") + return + } + By("Deleting ingress") + jig.TryDeleteIngress() + + By("Cleaning up cloud resources") + framework.CleanupGCEIngressController(gceController) + }) + + It("should conform to Ingress spec", func() { + jig.PollInterval = 5 * time.Second + conformanceTests = framework.CreateIngressComformanceTests(jig, ns, map[string]string{ + NEGAnnotation: "true", + }) + for _, t := range conformanceTests { + By(t.EntryLog) + t.Execute() + By(t.ExitLog) + jig.WaitForIngress(true) + usingNeg, err := gceController.BackendServiceUsingNEG(jig.GetIngressNodePorts(false)) + Expect(err).NotTo(HaveOccurred()) + Expect(usingNeg).To(BeTrue()) + } + }) + + It("should be able to switch between IG and NEG modes", func() { + var err error + By("Create a basic HTTP ingress using NEG") + jig.CreateIngress(filepath.Join(framework.IngressManifestPath, "neg"), ns, map[string]string{}, map[string]string{}) + jig.WaitForIngress(true) + usingNEG, err := gceController.BackendServiceUsingNEG(jig.GetIngressNodePorts(false)) + Expect(err).NotTo(HaveOccurred()) + Expect(usingNEG).To(BeTrue()) + + By("Switch backend service to use IG") + svcList, err := f.ClientSet.CoreV1().Services(ns).List(metav1.ListOptions{}) + Expect(err).NotTo(HaveOccurred()) + for _, svc := range svcList.Items { + svc.Annotations[NEGAnnotation] = "false" + _, err = f.ClientSet.CoreV1().Services(ns).Update(&svc) + Expect(err).NotTo(HaveOccurred()) + } + wait.Poll(5*time.Second, framework.LoadBalancerPollTimeout, func() (bool, error) { + return gceController.BackendServiceUsingIG(jig.GetIngressNodePorts(true)) + }) + jig.WaitForIngress(true) + + By("Switch backend service to use NEG") + svcList, err = f.ClientSet.CoreV1().Services(ns).List(metav1.ListOptions{}) + Expect(err).NotTo(HaveOccurred()) + for _, svc := range svcList.Items { + svc.Annotations[NEGAnnotation] = "true" + _, err = f.ClientSet.CoreV1().Services(ns).Update(&svc) + Expect(err).NotTo(HaveOccurred()) + } + wait.Poll(5*time.Second, framework.LoadBalancerPollTimeout, func() (bool, error) { + return gceController.BackendServiceUsingNEG(jig.GetIngressNodePorts(false)) + }) + jig.WaitForIngress(true) + }) + + It("should sync endpoints to NEG", func() { + name := "hostname" + scaleAndValidateNEG := func(num int) { + scale, err := f.ClientSet.ExtensionsV1beta1().Deployments(ns).GetScale(name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + if scale.Spec.Replicas != int32(num) { + scale.Spec.Replicas = int32(num) + _, err = f.ClientSet.ExtensionsV1beta1().Deployments(ns).UpdateScale(name, scale) + Expect(err).NotTo(HaveOccurred()) + } + wait.Poll(5*time.Second, NEGUpdateTimeout, func() (bool, error) { + res, err := jig.GetDistinctResponseFromIngress() + if err != nil { + return false, err + } + return res.Len() == num, err + }) + } + + By("Create a basic HTTP ingress using NEG") + jig.CreateIngress(filepath.Join(framework.IngressManifestPath, "neg"), ns, map[string]string{}, map[string]string{}) + jig.WaitForIngress(true) + usingNEG, err := gceController.BackendServiceUsingNEG(jig.GetIngressNodePorts(false)) + Expect(err).NotTo(HaveOccurred()) + Expect(usingNEG).To(BeTrue()) + // initial replicas number is 1 + scaleAndValidateNEG(1) + + By("Scale up number of backends to 5") + scaleAndValidateNEG(5) + + By("Scale down number of backends to 3") + scaleAndValidateNEG(3) + + By("Scale up number of backends to 6") + scaleAndValidateNEG(6) + + By("Scale down number of backends to 2") + scaleAndValidateNEG(3) + }) + + It("rolling update backend pods should not cause service disruption", func() { + name := "hostname" + replicas := 8 + By("Create a basic HTTP ingress using NEG") + jig.CreateIngress(filepath.Join(framework.IngressManifestPath, "neg"), ns, map[string]string{}, map[string]string{}) + jig.WaitForIngress(true) + usingNEG, err := gceController.BackendServiceUsingNEG(jig.GetIngressNodePorts(false)) + Expect(err).NotTo(HaveOccurred()) + Expect(usingNEG).To(BeTrue()) + + By(fmt.Sprintf("Scale backend replicas to %d", replicas)) + scale, err := f.ClientSet.ExtensionsV1beta1().Deployments(ns).GetScale(name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + scale.Spec.Replicas = int32(replicas) + _, err = f.ClientSet.ExtensionsV1beta1().Deployments(ns).UpdateScale(name, scale) + Expect(err).NotTo(HaveOccurred()) + wait.Poll(5*time.Second, framework.LoadBalancerPollTimeout, func() (bool, error) { + res, err := jig.GetDistinctResponseFromIngress() + if err != nil { + return false, err + } + return res.Len() == replicas, err + }) + + By("Trigger rolling update and observe service disruption") + deploy, err := f.ClientSet.ExtensionsV1beta1().Deployments(ns).Get(name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + // trigger by changing graceful termination period to 60 seconds + gracePeriod := int64(60) + deploy.Spec.Template.Spec.TerminationGracePeriodSeconds = &gracePeriod + _, err = f.ClientSet.ExtensionsV1beta1().Deployments(ns).Update(deploy) + Expect(err).NotTo(HaveOccurred()) + wait.Poll(30*time.Second, framework.LoadBalancerPollTimeout, func() (bool, error) { + res, err := jig.GetDistinctResponseFromIngress() + Expect(err).NotTo(HaveOccurred()) + deploy, err := f.ClientSet.ExtensionsV1beta1().Deployments(ns).Get(name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + if int(deploy.Status.UpdatedReplicas) == replicas { + if res.Len() == replicas { + return true, nil + } else { + framework.Logf("Expecting %d different responses, but got %d.", replicas, res.Len()) + return false, nil + } + + } else { + framework.Logf("Waiting for rolling update to finished. Keep sending traffic.") + return false, nil + } + }) + }) + }) // Time: borderline 5m, slow by design Describe("[Slow] Nginx", func() { @@ -191,7 +398,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() { // Poll more frequently to reduce e2e completion time. // This test runs in presubmit. jig.PollInterval = 5 * time.Second - conformanceTests = framework.CreateIngressComformanceTests(jig, ns) + conformanceTests = framework.CreateIngressComformanceTests(jig, ns, map[string]string{}) for _, t := range conformanceTests { By(t.EntryLog) t.Execute() diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/network_policy.go b/vendor/k8s.io/kubernetes/test/e2e/network/network_policy.go index 653187aeb..ef27cba82 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/network_policy.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/network_policy.go @@ -18,9 +18,9 @@ package network import ( "k8s.io/api/core/v1" + networkingv1 "k8s.io/api/networking/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/kubernetes/pkg/apis/networking" "k8s.io/kubernetes/test/e2e/framework" imageutils "k8s.io/kubernetes/test/utils/image" @@ -65,17 +65,17 @@ var _ = SIGDescribe("NetworkPolicy", func() { }) It("should support a 'default-deny' policy [Feature:NetworkPolicy]", func() { - policy := &networking.NetworkPolicy{ + policy := &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "deny-all", }, - Spec: networking.NetworkPolicySpec{ + Spec: networkingv1.NetworkPolicySpec{ PodSelector: metav1.LabelSelector{}, - Ingress: []networking.NetworkPolicyIngressRule{}, + Ingress: []networkingv1.NetworkPolicyIngressRule{}, }, } - policy, err := f.InternalClientset.Networking().NetworkPolicies(f.Namespace.Name).Create(policy) + policy, err := f.ClientSet.NetworkingV1().NetworkPolicies(f.Namespace.Name).Create(policy) Expect(err).NotTo(HaveOccurred()) defer cleanupNetworkPolicy(f, policy) @@ -86,11 +86,11 @@ var _ = SIGDescribe("NetworkPolicy", func() { It("should enforce policy based on PodSelector [Feature:NetworkPolicy]", func() { By("Creating a network policy for the server which allows traffic from the pod 'client-a'.") - policy := &networking.NetworkPolicy{ + policy := &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-client-a-via-pod-selector", }, - Spec: networking.NetworkPolicySpec{ + Spec: networkingv1.NetworkPolicySpec{ // Apply this policy to the Server PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ @@ -98,8 +98,8 @@ var _ = SIGDescribe("NetworkPolicy", func() { }, }, // Allow traffic only from client-a - Ingress: []networking.NetworkPolicyIngressRule{{ - From: []networking.NetworkPolicyPeer{{ + Ingress: []networkingv1.NetworkPolicyIngressRule{{ + From: []networkingv1.NetworkPolicyPeer{{ PodSelector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "pod-name": "client-a", @@ -110,7 +110,7 @@ var _ = SIGDescribe("NetworkPolicy", func() { }, } - policy, err := f.InternalClientset.Networking().NetworkPolicies(f.Namespace.Name).Create(policy) + policy, err := f.ClientSet.NetworkingV1().NetworkPolicies(f.Namespace.Name).Create(policy) Expect(err).NotTo(HaveOccurred()) defer cleanupNetworkPolicy(f, policy) @@ -140,11 +140,11 @@ var _ = SIGDescribe("NetworkPolicy", func() { // Create Policy for that service that allows traffic only via namespace B By("Creating a network policy for the server which allows traffic from namespace-b.") - policy := &networking.NetworkPolicy{ + policy := &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-ns-b-via-namespace-selector", }, - Spec: networking.NetworkPolicySpec{ + Spec: networkingv1.NetworkPolicySpec{ // Apply to server PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ @@ -152,8 +152,8 @@ var _ = SIGDescribe("NetworkPolicy", func() { }, }, // Allow traffic only from NS-B - Ingress: []networking.NetworkPolicyIngressRule{{ - From: []networking.NetworkPolicyPeer{{ + Ingress: []networkingv1.NetworkPolicyIngressRule{{ + From: []networkingv1.NetworkPolicyPeer{{ NamespaceSelector: &metav1.LabelSelector{ MatchLabels: map[string]string{ "ns-name": nsBName, @@ -163,7 +163,7 @@ var _ = SIGDescribe("NetworkPolicy", func() { }}, }, } - policy, err = f.InternalClientset.Networking().NetworkPolicies(nsA.Name).Create(policy) + policy, err = f.ClientSet.NetworkingV1().NetworkPolicies(nsA.Name).Create(policy) Expect(err).NotTo(HaveOccurred()) defer cleanupNetworkPolicy(f, policy) @@ -173,11 +173,11 @@ var _ = SIGDescribe("NetworkPolicy", func() { It("should enforce policy based on Ports [Feature:NetworkPolicy]", func() { By("Creating a network policy for the Service which allows traffic only to one port.") - policy := &networking.NetworkPolicy{ + policy := &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-ingress-on-port-81", }, - Spec: networking.NetworkPolicySpec{ + Spec: networkingv1.NetworkPolicySpec{ // Apply to server PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ @@ -185,14 +185,14 @@ var _ = SIGDescribe("NetworkPolicy", func() { }, }, // Allow traffic only to one port. - Ingress: []networking.NetworkPolicyIngressRule{{ - Ports: []networking.NetworkPolicyPort{{ + Ingress: []networkingv1.NetworkPolicyIngressRule{{ + Ports: []networkingv1.NetworkPolicyPort{{ Port: &intstr.IntOrString{IntVal: 81}, }}, }}, }, } - policy, err := f.InternalClientset.Networking().NetworkPolicies(f.Namespace.Name).Create(policy) + policy, err := f.ClientSet.NetworkingV1().NetworkPolicies(f.Namespace.Name).Create(policy) Expect(err).NotTo(HaveOccurred()) defer cleanupNetworkPolicy(f, policy) @@ -203,11 +203,11 @@ var _ = SIGDescribe("NetworkPolicy", func() { It("should enforce multiple, stacked policies with overlapping podSelectors [Feature:NetworkPolicy]", func() { By("Creating a network policy for the Service which allows traffic only to one port.") - policy := &networking.NetworkPolicy{ + policy := &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-ingress-on-port-80", }, - Spec: networking.NetworkPolicySpec{ + Spec: networkingv1.NetworkPolicySpec{ // Apply to server PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ @@ -215,23 +215,23 @@ var _ = SIGDescribe("NetworkPolicy", func() { }, }, // Allow traffic only to one port. - Ingress: []networking.NetworkPolicyIngressRule{{ - Ports: []networking.NetworkPolicyPort{{ + Ingress: []networkingv1.NetworkPolicyIngressRule{{ + Ports: []networkingv1.NetworkPolicyPort{{ Port: &intstr.IntOrString{IntVal: 80}, }}, }}, }, } - policy, err := f.InternalClientset.Networking().NetworkPolicies(f.Namespace.Name).Create(policy) + policy, err := f.ClientSet.NetworkingV1().NetworkPolicies(f.Namespace.Name).Create(policy) Expect(err).NotTo(HaveOccurred()) defer cleanupNetworkPolicy(f, policy) By("Creating a network policy for the Service which allows traffic only to another port.") - policy2 := &networking.NetworkPolicy{ + policy2 := &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-ingress-on-port-81", }, - Spec: networking.NetworkPolicySpec{ + Spec: networkingv1.NetworkPolicySpec{ // Apply to server PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ @@ -239,14 +239,14 @@ var _ = SIGDescribe("NetworkPolicy", func() { }, }, // Allow traffic only to one port. - Ingress: []networking.NetworkPolicyIngressRule{{ - Ports: []networking.NetworkPolicyPort{{ + Ingress: []networkingv1.NetworkPolicyIngressRule{{ + Ports: []networkingv1.NetworkPolicyPort{{ Port: &intstr.IntOrString{IntVal: 81}, }}, }}, }, } - policy2, err = f.InternalClientset.Networking().NetworkPolicies(f.Namespace.Name).Create(policy2) + policy2, err = f.ClientSet.NetworkingV1().NetworkPolicies(f.Namespace.Name).Create(policy2) Expect(err).NotTo(HaveOccurred()) defer cleanupNetworkPolicy(f, policy2) @@ -257,19 +257,19 @@ var _ = SIGDescribe("NetworkPolicy", func() { It("should support allow-all policy [Feature:NetworkPolicy]", func() { By("Creating a network policy which allows all traffic.") - policy := &networking.NetworkPolicy{ + policy := &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-all", }, - Spec: networking.NetworkPolicySpec{ + Spec: networkingv1.NetworkPolicySpec{ // Allow all traffic PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{}, }, - Ingress: []networking.NetworkPolicyIngressRule{{}}, + Ingress: []networkingv1.NetworkPolicyIngressRule{{}}, }, } - policy, err := f.InternalClientset.Networking().NetworkPolicies(f.Namespace.Name).Create(policy) + policy, err := f.ClientSet.NetworkingV1().NetworkPolicies(f.Namespace.Name).Create(policy) Expect(err).NotTo(HaveOccurred()) defer cleanupNetworkPolicy(f, policy) @@ -279,11 +279,11 @@ var _ = SIGDescribe("NetworkPolicy", func() { }) It("should allow ingress access on one named port [Feature:NetworkPolicy]", func() { - policy := &networking.NetworkPolicy{ + policy := &networkingv1.NetworkPolicy{ ObjectMeta: metav1.ObjectMeta{ Name: "allow-client-a-via-named-port-ingress-rule", }, - Spec: networking.NetworkPolicySpec{ + Spec: networkingv1.NetworkPolicySpec{ // Apply this policy to the Server PodSelector: metav1.LabelSelector{ MatchLabels: map[string]string{ @@ -291,15 +291,15 @@ var _ = SIGDescribe("NetworkPolicy", func() { }, }, // Allow traffic to only one named port: "serve-80". - Ingress: []networking.NetworkPolicyIngressRule{{ - Ports: []networking.NetworkPolicyPort{{ + Ingress: []networkingv1.NetworkPolicyIngressRule{{ + Ports: []networkingv1.NetworkPolicyPort{{ Port: &intstr.IntOrString{Type: intstr.String, StrVal: "serve-80"}, }}, }}, }, } - policy, err := f.InternalClientset.Networking().NetworkPolicies(f.Namespace.Name).Create(policy) + policy, err := f.ClientSet.NetworkingV1().NetworkPolicies(f.Namespace.Name).Create(policy) Expect(err).NotTo(HaveOccurred()) defer cleanupNetworkPolicy(f, policy) @@ -318,7 +318,7 @@ func testCanConnect(f *framework.Framework, ns *v1.Namespace, podName string, se podClient := createNetworkClientPod(f, ns, podName, service, targetPort) defer func() { By(fmt.Sprintf("Cleaning up the pod %s", podName)) - if err := f.ClientSet.Core().Pods(ns.Name).Delete(podClient.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(podClient.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", podClient.Name, err) } }() @@ -337,7 +337,7 @@ func testCanConnect(f *framework.Framework, ns *v1.Namespace, podName string, se } // Collect current NetworkPolicies applied in the test namespace. - policies, err := f.InternalClientset.Networking().NetworkPolicies(f.Namespace.Name).List(metav1.ListOptions{}) + policies, err := f.ClientSet.NetworkingV1().NetworkPolicies(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { framework.Logf("error getting current NetworkPolicies for %s namespace: %s", f.Namespace.Name, err) } @@ -365,7 +365,7 @@ func testCannotConnect(f *framework.Framework, ns *v1.Namespace, podName string, podClient := createNetworkClientPod(f, ns, podName, service, targetPort) defer func() { By(fmt.Sprintf("Cleaning up the pod %s", podName)) - if err := f.ClientSet.Core().Pods(ns.Name).Delete(podClient.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(ns.Name).Delete(podClient.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", podClient.Name, err) } }() @@ -383,7 +383,7 @@ func testCannotConnect(f *framework.Framework, ns *v1.Namespace, podName string, } // Collect current NetworkPolicies applied in the test namespace. - policies, err := f.InternalClientset.Networking().NetworkPolicies(f.Namespace.Name).List(metav1.ListOptions{}) + policies, err := f.ClientSet.NetworkingV1().NetworkPolicies(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { framework.Logf("error getting current NetworkPolicies for %s namespace: %s", f.Namespace.Name, err) } @@ -453,7 +453,7 @@ func createServerPodAndService(f *framework.Framework, namespace *v1.Namespace, } By(fmt.Sprintf("Creating a server pod %s in namespace %s", podName, namespace.Name)) - pod, err := f.ClientSet.Core().Pods(namespace.Name).Create(&v1.Pod{ + pod, err := f.ClientSet.CoreV1().Pods(namespace.Name).Create(&v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: podName, Labels: map[string]string{ @@ -470,7 +470,7 @@ func createServerPodAndService(f *framework.Framework, namespace *v1.Namespace, svcName := fmt.Sprintf("svc-%s", podName) By(fmt.Sprintf("Creating a service %s for pod %s in namespace %s", svcName, podName, namespace.Name)) - svc, err := f.ClientSet.Core().Services(namespace.Name).Create(&v1.Service{ + svc, err := f.ClientSet.CoreV1().Services(namespace.Name).Create(&v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: svcName, }, @@ -489,11 +489,11 @@ func createServerPodAndService(f *framework.Framework, namespace *v1.Namespace, func cleanupServerPodAndService(f *framework.Framework, pod *v1.Pod, service *v1.Service) { By("Cleaning up the server.") - if err := f.ClientSet.Core().Pods(pod.Namespace).Delete(pod.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Pods(pod.Namespace).Delete(pod.Name, nil); err != nil { framework.Failf("unable to cleanup pod %v: %v", pod.Name, err) } By("Cleaning up the server's service.") - if err := f.ClientSet.Core().Services(service.Namespace).Delete(service.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Services(service.Namespace).Delete(service.Name, nil); err != nil { framework.Failf("unable to cleanup svc %v: %v", service.Name, err) } } @@ -502,7 +502,7 @@ func cleanupServerPodAndService(f *framework.Framework, pod *v1.Pod, service *v1 // This client will attempt a one-shot connection, then die, without restarting the pod. // Test can then be asserted based on whether the pod quit with an error or not. func createNetworkClientPod(f *framework.Framework, namespace *v1.Namespace, podName string, targetService *v1.Service, targetPort int) *v1.Pod { - pod, err := f.ClientSet.Core().Pods(namespace.Name).Create(&v1.Pod{ + pod, err := f.ClientSet.CoreV1().Pods(namespace.Name).Create(&v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: podName, Labels: map[string]string{ @@ -514,7 +514,7 @@ func createNetworkClientPod(f *framework.Framework, namespace *v1.Namespace, pod Containers: []v1.Container{ { Name: fmt.Sprintf("%s-container", podName), - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Args: []string{ "/bin/sh", "-c", @@ -531,9 +531,9 @@ func createNetworkClientPod(f *framework.Framework, namespace *v1.Namespace, pod return pod } -func cleanupNetworkPolicy(f *framework.Framework, policy *networking.NetworkPolicy) { +func cleanupNetworkPolicy(f *framework.Framework, policy *networkingv1.NetworkPolicy) { By("Cleaning up the policy.") - if err := f.InternalClientset.Networking().NetworkPolicies(policy.Namespace).Delete(policy.Name, nil); err != nil { + if err := f.ClientSet.NetworkingV1().NetworkPolicies(policy.Namespace).Delete(policy.Name, nil); err != nil { framework.Failf("unable to cleanup policy %v: %v", policy.Name, err) } } diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/networking.go b/vendor/k8s.io/kubernetes/test/e2e/network/networking.go index ccbd865ec..b065c86e9 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/networking.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/networking.go @@ -19,9 +19,7 @@ package network import ( "fmt" "net/http" - "time" - "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/test/e2e/framework" @@ -77,7 +75,7 @@ var _ = SIGDescribe("Networking", func() { } for _, test := range tests { By(fmt.Sprintf("testing: %s", test.path)) - data, err := f.ClientSet.Core().RESTClient().Get(). + data, err := f.ClientSet.CoreV1().RESTClient().Get(). AbsPath(test.path). DoRaw() if err != nil { @@ -107,7 +105,7 @@ var _ = SIGDescribe("Networking", func() { By(fmt.Sprintf("dialing(http) %v --> %v:%v (config.clusterIP)", config.TestContainerPod.Name, config.ClusterIP, framework.ClusterHttpPort)) config.DialFromTestContainer("http", config.ClusterIP, framework.ClusterHttpPort, config.MaxTries, 0, config.EndpointHostnames()) - By(fmt.Sprintf("dialing(http) %v --> %v:%v (nodeIP)", config.TestContainerPod.Name, config.ExternalAddrs[0], config.NodeHttpPort)) + By(fmt.Sprintf("dialing(http) %v --> %v:%v (nodeIP)", config.TestContainerPod.Name, config.NodeIP, config.NodeHttpPort)) config.DialFromTestContainer("http", config.NodeIP, config.NodeHttpPort, config.MaxTries, 0, config.EndpointHostnames()) }) @@ -116,7 +114,7 @@ var _ = SIGDescribe("Networking", func() { By(fmt.Sprintf("dialing(udp) %v --> %v:%v (config.clusterIP)", config.TestContainerPod.Name, config.ClusterIP, framework.ClusterUdpPort)) config.DialFromTestContainer("udp", config.ClusterIP, framework.ClusterUdpPort, config.MaxTries, 0, config.EndpointHostnames()) - By(fmt.Sprintf("dialing(udp) %v --> %v:%v (nodeIP)", config.TestContainerPod.Name, config.ExternalAddrs[0], config.NodeUdpPort)) + By(fmt.Sprintf("dialing(udp) %v --> %v:%v (nodeIP)", config.TestContainerPod.Name, config.NodeIP, config.NodeUdpPort)) config.DialFromTestContainer("udp", config.NodeIP, config.NodeUdpPort, config.MaxTries, 0, config.EndpointHostnames()) }) @@ -204,48 +202,36 @@ var _ = SIGDescribe("Networking", func() { It("should function for client IP based session affinity: http", func() { config := framework.NewNetworkingTestConfig(f) - By(fmt.Sprintf("dialing(http) %v --> %v:%v (config.clusterIP)", config.TestContainerPod.Name, config.ClusterIP, framework.ClusterHttpPort)) - updateSessionAffinity := func(svc *v1.Service) { - svc.Spec.SessionAffinity = v1.ServiceAffinityClientIP - } - framework.UpdateService(f.ClientSet, config.NodePortService.Namespace, config.NodePortService.Name, updateSessionAffinity) - firstEndpoints, err := config.GetEndpointsFromTestContainer("http", config.ClusterIP, framework.ClusterHttpPort, config.MaxTries, 0) + By(fmt.Sprintf("dialing(http) %v --> %v:%v", config.TestContainerPod.Name, config.SessionAffinityService.Spec.ClusterIP, framework.ClusterHttpPort)) + + // Check if number of endpoints returned are exactly one. + eps, err := config.GetEndpointsFromTestContainer("http", config.SessionAffinityService.Spec.ClusterIP, framework.ClusterHttpPort, framework.SessionAffinityChecks) if err != nil { - framework.Failf("Unable to get endpoints from test containers: %v", err) + framework.Failf("Failed to get endpoints from test container, error: %v", err) + } + if len(eps) == 0 { + framework.Failf("Unexpected no endpoints return") } - for i := 0; i < framework.SessionAffinityChecks; i++ { - eps, err := config.GetEndpointsFromTestContainer("http", config.ClusterIP, framework.ClusterHttpPort, config.MaxTries, 0) - if err != nil { - framework.Failf("Unable to get endpoints from test containers: %v", err) - } - if !eps.Equal(firstEndpoints) { - framework.Failf("Expect endpoints: %v, got: %v", firstEndpoints, eps) - } + if len(eps) > 1 { + framework.Failf("Unexpected endpoints return: %v, expect 1 endpoints", eps) } }) It("should function for client IP based session affinity: udp", func() { - startTime := time.Now() config := framework.NewNetworkingTestConfig(f) - By(fmt.Sprintf("dialing(udp) %v --> %v:%v (config.clusterIP)", config.TestContainerPod.Name, config.ClusterIP, framework.ClusterHttpPort)) - updateSessionAffinity := func(svc *v1.Service) { - svc.Spec.SessionAffinity = v1.ServiceAffinityClientIP - } - framework.UpdateService(f.ClientSet, config.NodePortService.Namespace, config.NodePortService.Name, updateSessionAffinity) - firstEndpoints, err := config.GetEndpointsFromTestContainer("udp", config.ClusterIP, framework.ClusterUdpPort, config.MaxTries, 0) + By(fmt.Sprintf("dialing(udp) %v --> %v:%v", config.TestContainerPod.Name, config.SessionAffinityService.Spec.ClusterIP, framework.ClusterUdpPort)) + + // Check if number of endpoints returned are exactly one. + eps, err := config.GetEndpointsFromTestContainer("udp", config.SessionAffinityService.Spec.ClusterIP, framework.ClusterUdpPort, framework.SessionAffinityChecks) if err != nil { - framework.Failf("Unable to get endpoints from test containers: %v", err) + framework.Failf("Failed to get endpoints from test container, error: %v", err) + } + if len(eps) == 0 { + framework.Failf("Unexpected no endpoints return") } - for i := 0; i < framework.SessionAffinityChecks; i++ { - eps, err := config.GetEndpointsFromTestContainer("http", config.ClusterIP, framework.ClusterUdpPort, config.MaxTries, 0) - if err != nil { - framework.Failf("Unable to get endpoints from test containers: %v", err) - } - if !eps.Equal(firstEndpoints) { - framework.Failf("Expect endpoints: %v, got: %v", firstEndpoints, eps) - } + if len(eps) > 1 { + framework.Failf("Unexpected endpoints return: %v, expect 1 endpoints", eps) } - framework.Failf("test session affinity, cost time: %v", time.Now().Sub(startTime)) }) }) }) diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/proxy.go b/vendor/k8s.io/kubernetes/test/e2e/network/proxy.go index 61cb1061f..863bfdabf 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/proxy.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/proxy.go @@ -62,20 +62,48 @@ var _ = SIGDescribe("Proxy", func() { prefix := "/api/" + version // Port here has to be kept in sync with default kubelet port. - It("should proxy logs on node with explicit kubelet port [Conformance]", func() { nodeProxyTest(f, prefix+"/proxy/nodes/", ":10250/logs/") }) - It("should proxy logs on node [Conformance]", func() { nodeProxyTest(f, prefix+"/proxy/nodes/", "/logs/") }) + /* + Testname: proxy-prefix-node-logs-port + Description: Ensure that proxy on node logs works with generic top + level prefix proxy and explicit kubelet port. + */ + framework.ConformanceIt("should proxy logs on node with explicit kubelet port ", func() { nodeProxyTest(f, prefix+"/proxy/nodes/", ":10250/logs/") }) + + /* + Testname: proxy-prefix-node-logs + Description: Ensure that proxy on node logs works with generic top + level prefix proxy. + */ + framework.ConformanceIt("should proxy logs on node ", func() { nodeProxyTest(f, prefix+"/proxy/nodes/", "/logs/") }) It("should proxy to cadvisor", func() { nodeProxyTest(f, prefix+"/proxy/nodes/", ":4194/containers/") }) - It("should proxy logs on node with explicit kubelet port using proxy subresource [Conformance]", func() { nodeProxyTest(f, prefix+"/nodes/", ":10250/proxy/logs/") }) - It("should proxy logs on node using proxy subresource [Conformance]", func() { nodeProxyTest(f, prefix+"/nodes/", "/proxy/logs/") }) + /* + Testname: proxy-subresource-node-logs-port + Description: Ensure that proxy on node logs works with node proxy + subresource and explicit kubelet port. + */ + framework.ConformanceIt("should proxy logs on node with explicit kubelet port using proxy subresource ", func() { nodeProxyTest(f, prefix+"/nodes/", ":10250/proxy/logs/") }) + + /* + Testname: proxy-subresource-node-logs + Description: Ensure that proxy on node logs works with node proxy + subresource. + */ + framework.ConformanceIt("should proxy logs on node using proxy subresource ", func() { nodeProxyTest(f, prefix+"/nodes/", "/proxy/logs/") }) It("should proxy to cadvisor using proxy subresource", func() { nodeProxyTest(f, prefix+"/nodes/", ":4194/proxy/containers/") }) // using the porter image to serve content, access the content // (of multiple pods?) from multiple (endpoints/services?) - It("should proxy through a service and a pod [Conformance]", func() { + + /* + Testname: proxy-service-pod + Description: Ensure that proxy through a service and a pod works with + both generic top level prefix proxy and proxy subresource. + */ + framework.ConformanceIt("should proxy through a service and a pod ", func() { start := time.Now() labels := map[string]string{"proxy-service-target": "true"} - service, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(&v1.Service{ + service, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(&v1.Service{ ObjectMeta: metav1.ObjectMeta{ GenerateName: "proxy-service-", }, @@ -265,7 +293,7 @@ var _ = SIGDescribe("Proxy", func() { } if len(errs) != 0 { - body, err := f.ClientSet.Core().Pods(f.Namespace.Name).GetLogs(pods[0].Name, &v1.PodLogOptions{}).Do().Raw() + body, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).GetLogs(pods[0].Name, &v1.PodLogOptions{}).Do().Raw() if err != nil { framework.Logf("Error getting logs for pod %s: %v", pods[0].Name, err) } else { @@ -286,7 +314,7 @@ func doProxy(f *framework.Framework, path string, i int) (body []byte, statusCod // chance of the things we are talking to being confused for an error // that apiserver would have emitted. start := time.Now() - body, err = f.ClientSet.Core().RESTClient().Get().AbsPath(path).Do().StatusCode(&statusCode).Raw() + body, err = f.ClientSet.CoreV1().RESTClient().Get().AbsPath(path).Do().StatusCode(&statusCode).Raw() d = time.Since(start) if len(body) > 0 { framework.Logf("(%v) %v: %s (%v; %v)", i, path, truncate(body, maxDisplayBodyLen), statusCode, d) diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/service.go b/vendor/k8s.io/kubernetes/test/e2e/network/service.go index 0d19372c4..5bf65d1a8 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/service.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/service.go @@ -65,12 +65,21 @@ var _ = SIGDescribe("Services", func() { // TODO: We get coverage of TCP/UDP and multi-port services through the DNS test. We should have a simpler test for multi-port TCP here. - It("should provide secure master service [Conformance]", func() { + /* + Testname: service-kubernetes-exists + Description: Make sure kubernetes service does exist. + */ + framework.ConformanceIt("should provide secure master service ", func() { _, err := cs.CoreV1().Services(metav1.NamespaceDefault).Get("kubernetes", metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) }) - It("should serve a basic endpoint from pods [Conformance]", func() { + /* + Testname: service-valid-endpoints + Description: Ensure a service with no pod, one pod or two pods has + valid/accessible endpoints (same port number for service and pods). + */ + framework.ConformanceIt("should serve a basic endpoint from pods ", func() { // TODO: use the ServiceTestJig here serviceName := "endpoint-test2" ns := f.Namespace.Name @@ -130,7 +139,12 @@ var _ = SIGDescribe("Services", func() { framework.ValidateEndpointsOrFail(cs, ns, serviceName, framework.PortsByPodName{}) }) - It("should serve multiport endpoints from pods [Conformance]", func() { + /* + Testname: service-valid-endpoints-multiple-ports + Description: Ensure a service with no pod, one pod or two pods has + valid/accessible endpoints (different port number for pods). + */ + framework.ConformanceIt("should serve multiport endpoints from pods ", func() { // TODO: use the ServiceTestJig here // repacking functionality is intentionally not tested here - it's better to test it in an integration test. serviceName := "multi-endpoint-test" @@ -470,6 +484,11 @@ var _ = SIGDescribe("Services", func() { It("should be able to change the type and ports of a service [Slow]", func() { // requires cloud load-balancer support framework.SkipUnlessProviderIs("gce", "gke", "aws") + if framework.ProviderIs("gke", "gce") { + // Skipping this test for too large clusters due to issue #52495. + // TODO(MrHohn): Get rid of this when gce-side load-balancer improvements are done. + framework.SkipUnlessNodeCountIsAtMost(framework.GCPMaxInstancesInInstanceGroup) + } loadBalancerSupportsUDP := !framework.ProviderIs("aws") @@ -789,6 +808,53 @@ var _ = SIGDescribe("Services", func() { } }) + It("should be able to update NodePorts with two same port numbers but different protocols", func() { + serviceName := "nodeport-update-service" + ns := f.Namespace.Name + jig := framework.NewServiceTestJig(cs, serviceName) + + By("creating a TCP service " + serviceName + " with type=ClusterIP in namespace " + ns) + tcpService := jig.CreateTCPServiceOrFail(ns, nil) + defer func() { + framework.Logf("Cleaning up the updating NodePorts test service") + err := cs.Core().Services(ns).Delete(serviceName, nil) + Expect(err).NotTo(HaveOccurred()) + }() + jig.SanityCheckService(tcpService, v1.ServiceTypeClusterIP) + svcPort := int(tcpService.Spec.Ports[0].Port) + framework.Logf("service port TCP: %d", svcPort) + + // Change the services to NodePort and add a UDP port. + + By("changing the TCP service to type=NodePort and add a UDP port") + newService := jig.UpdateServiceOrFail(ns, tcpService.Name, func(s *v1.Service) { + s.Spec.Type = v1.ServiceTypeNodePort + s.Spec.Ports = []v1.ServicePort{ + { + Name: "tcp-port", + Port: 80, + Protocol: v1.ProtocolTCP, + }, + { + Name: "udp-port", + Port: 80, + Protocol: v1.ProtocolUDP, + }, + } + }) + jig.SanityCheckService(newService, v1.ServiceTypeNodePort) + if len(newService.Spec.Ports) != 2 { + framework.Failf("new service should have two Ports") + } + for _, port := range newService.Spec.Ports { + if port.NodePort == 0 { + framework.Failf("new service failed to allocate NodePort for Port %s", port.Name) + } + + framework.Logf("new service allocates NodePort %d for Port %s", port.NodePort, port.Name) + } + }) + It("should be able to change the type from ExternalName to ClusterIP", func() { serviceName := "externalname-service" ns := f.Namespace.Name @@ -1246,7 +1312,7 @@ var _ = SIGDescribe("Services", func() { By("Remove pods immediately") label := labels.SelectorFromSet(labels.Set(t.Labels)) options := metav1.ListOptions{LabelSelector: label.String()} - podClient := t.Client.Core().Pods(f.Namespace.Name) + podClient := t.Client.CoreV1().Pods(f.Namespace.Name) pods, err := podClient.List(options) if err != nil { framework.Logf("warning: error retrieving pods: %s", err) @@ -1339,8 +1405,15 @@ var _ = SIGDescribe("Services", func() { It("should be able to create an internal type load balancer [Slow]", func() { framework.SkipUnlessProviderIs("azure", "gke", "gce") + if framework.ProviderIs("gke", "gce") { + framework.SkipUnlessNodeCountIsAtMost(framework.GCPMaxInstancesInInstanceGroup) + } createTimeout := framework.LoadBalancerCreateTimeoutDefault + if nodes := framework.GetReadySchedulableNodesOrDie(cs); len(nodes.Items) > framework.LargeClusterMinNodesNumber { + createTimeout = framework.LoadBalancerCreateTimeoutLarge + } + pollInterval := framework.Poll * 10 namespace := f.Namespace.Name @@ -1375,7 +1448,7 @@ var _ = SIGDescribe("Services", func() { }) framework.Logf("Waiting up to %v for service %q to have an external LoadBalancer", createTimeout, serviceName) if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) { - svc, err := jig.Client.Core().Services(namespace).Get(serviceName, metav1.GetOptions{}) + svc, err := jig.Client.CoreV1().Services(namespace).Get(serviceName, metav1.GetOptions{}) if err != nil { return false, err } @@ -1399,7 +1472,7 @@ var _ = SIGDescribe("Services", func() { }) framework.Logf("Waiting up to %v for service %q to have an internal LoadBalancer", createTimeout, serviceName) if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) { - svc, err := jig.Client.Core().Services(namespace).Get(serviceName, metav1.GetOptions{}) + svc, err := jig.Client.CoreV1().Services(namespace).Get(serviceName, metav1.GetOptions{}) if err != nil { return false, err } @@ -1429,6 +1502,10 @@ var _ = SIGDescribe("ESIPP [Slow]", func() { // requires cloud load-balancer support - this feature currently supported only on GCE/GKE framework.SkipUnlessProviderIs("gce", "gke") + // Skipping this test for too large clusters due to issue #52495. + // TODO(MrHohn): Get rid of this when gce-side load-balancer improvements are done. + framework.SkipUnlessNodeCountIsAtMost(framework.GCPMaxInstancesInInstanceGroup) + cs = f.ClientSet if nodes := framework.GetReadySchedulableNodesOrDie(cs); len(nodes.Items) > framework.LargeClusterMinNodesNumber { loadBalancerCreateTimeout = framework.LoadBalancerCreateTimeoutLarge @@ -1597,7 +1674,7 @@ var _ = SIGDescribe("ESIPP [Slow]", func() { err := cs.CoreV1().Pods(namespace).Delete(execPodName, nil) Expect(err).NotTo(HaveOccurred()) }() - execPod, err := f.ClientSet.Core().Pods(namespace).Get(execPodName, metav1.GetOptions{}) + execPod, err := f.ClientSet.CoreV1().Pods(namespace).Get(execPodName, metav1.GetOptions{}) framework.ExpectNoError(err) framework.Logf("Waiting up to %v wget %v", framework.KubeProxyLagTimeout, path) @@ -1729,10 +1806,10 @@ func execSourceipTest(f *framework.Framework, c clientset.Interface, ns, nodeNam }) defer func() { framework.Logf("Cleaning up the exec pod") - err := c.Core().Pods(ns).Delete(execPodName, nil) + err := c.CoreV1().Pods(ns).Delete(execPodName, nil) Expect(err).NotTo(HaveOccurred()) }() - execPod, err := f.ClientSet.Core().Pods(ns).Get(execPodName, metav1.GetOptions{}) + execPod, err := f.ClientSet.CoreV1().Pods(ns).Get(execPodName, metav1.GetOptions{}) framework.ExpectNoError(err) var stdout string diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/service_latency.go b/vendor/k8s.io/kubernetes/test/e2e/network/service_latency.go index 70bdf289f..136c178d6 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/service_latency.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/service_latency.go @@ -45,7 +45,13 @@ func (d durations) Swap(i, j int) { d[i], d[j] = d[j], d[i] } var _ = SIGDescribe("Service endpoints latency", func() { f := framework.NewDefaultFramework("svc-latency") - It("should not be very high [Conformance]", func() { + /* + Testname: service-endpoint-latency + Description: Ensure service endpoint's latency is not high + (e.g. p50 < 20 seconds and p99 < 50 seconds). If any call to the + service endpoint fails, the test will also fail. + */ + framework.ConformanceIt("should not be very high ", func() { const ( // These are very generous criteria. Ideally we will // get this much lower in the future. See issue @@ -68,9 +74,9 @@ var _ = SIGDescribe("Service endpoints latency", func() { ) // Turn off rate limiting--it interferes with our measurements. - oldThrottle := f.ClientSet.Core().RESTClient().GetRateLimiter() - f.ClientSet.Core().RESTClient().(*restclient.RESTClient).Throttle = flowcontrol.NewFakeAlwaysRateLimiter() - defer func() { f.ClientSet.Core().RESTClient().(*restclient.RESTClient).Throttle = oldThrottle }() + oldThrottle := f.ClientSet.CoreV1().RESTClient().GetRateLimiter() + f.ClientSet.CoreV1().RESTClient().(*restclient.RESTClient).Throttle = flowcontrol.NewFakeAlwaysRateLimiter() + defer func() { f.ClientSet.CoreV1().RESTClient().(*restclient.RESTClient).Throttle = oldThrottle }() failing := sets.NewString() d, err := runServiceLatencies(f, parallelTrials, totalTrials) @@ -280,11 +286,11 @@ func startEndpointWatcher(f *framework.Framework, q *endpointQueries) { _, controller := cache.NewInformer( &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - obj, err := f.ClientSet.Core().Endpoints(f.Namespace.Name).List(options) + obj, err := f.ClientSet.CoreV1().Endpoints(f.Namespace.Name).List(options) return runtime.Object(obj), err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return f.ClientSet.Core().Endpoints(f.Namespace.Name).Watch(options) + return f.ClientSet.CoreV1().Endpoints(f.Namespace.Name).Watch(options) }, }, &v1.Endpoints{}, @@ -329,7 +335,7 @@ func singleServiceLatency(f *framework.Framework, name string, q *endpointQuerie }, } startTime := time.Now() - gotSvc, err := f.ClientSet.Core().Services(f.Namespace.Name).Create(svc) + gotSvc, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(svc) if err != nil { return 0, err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/serviceloadbalancers.go b/vendor/k8s.io/kubernetes/test/e2e/network/serviceloadbalancers.go index a70d01fd9..8f252b071 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/serviceloadbalancers.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/serviceloadbalancers.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/manifest" @@ -101,7 +101,7 @@ func (h *haproxyControllerTester) start(namespace string) (err error) { framework.Logf("Container args %+v", rc.Spec.Template.Spec.Containers[i].Args) } - rc, err = h.client.Core().ReplicationControllers(rc.Namespace).Create(rc) + rc, err = h.client.CoreV1().ReplicationControllers(rc.Namespace).Create(rc) if err != nil { return } @@ -115,7 +115,7 @@ func (h *haproxyControllerTester) start(namespace string) (err error) { labelSelector := labels.SelectorFromSet( labels.Set(map[string]string{"name": h.rcName})) options := metav1.ListOptions{LabelSelector: labelSelector.String()} - pods, err := h.client.Core().Pods(h.rcNamespace).List(options) + pods, err := h.client.CoreV1().Pods(h.rcNamespace).List(options) if err != nil { return err } @@ -139,7 +139,7 @@ func (h *haproxyControllerTester) start(namespace string) (err error) { } func (h *haproxyControllerTester) stop() error { - return h.client.Core().ReplicationControllers(h.rcNamespace).Delete(h.rcName, nil) + return h.client.CoreV1().ReplicationControllers(h.rcNamespace).Delete(h.rcName, nil) } func (h *haproxyControllerTester) lookup(ingressKey string) string { @@ -171,7 +171,7 @@ func (s *ingManager) start(namespace string) (err error) { Expect(err).NotTo(HaveOccurred()) rc.Namespace = namespace rc.Spec.Template.Labels["name"] = rc.Name - rc, err = s.client.Core().ReplicationControllers(rc.Namespace).Create(rc) + rc, err = s.client.CoreV1().ReplicationControllers(rc.Namespace).Create(rc) if err != nil { return } @@ -188,7 +188,7 @@ func (s *ingManager) start(namespace string) (err error) { svc, err = manifest.SvcFromManifest(svcPath) Expect(err).NotTo(HaveOccurred()) svc.Namespace = namespace - svc, err = s.client.Core().Services(svc.Namespace).Create(svc) + svc, err = s.client.CoreV1().Services(svc.Namespace).Create(svc) if err != nil { return } diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/util_iperf.go b/vendor/k8s.io/kubernetes/test/e2e/network/util_iperf.go index f33d1888f..4b462defa 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/network/util_iperf.go +++ b/vendor/k8s.io/kubernetes/test/e2e/network/util_iperf.go @@ -69,6 +69,7 @@ func (i *IPerfResults) ToTSV() string { // NewIPerf parses an IPerf CSV output line into an IPerfResult. func NewIPerf(csvLine string) *IPerfResult { + csvLine = strings.Trim(csvLine, "\n") slice := StrSlice(strings.Split(csvLine, ",")) if len(slice) != 9 { framework.Failf("Incorrect fields in the output: %v (%v out of 9)", slice, len(slice)) diff --git a/vendor/k8s.io/kubernetes/test/e2e/node/BUILD b/vendor/k8s.io/kubernetes/test/e2e/node/BUILD index ad29d21ce..b8db42fbe 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/node/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/node/BUILD @@ -4,10 +4,15 @@ go_library( name = "go_default_library", srcs = [ "apparmor.go", + "events.go", "framework.go", "kubelet.go", "kubelet_perf.go", + "pod_gc.go", + "pods.go", + "pre_stop.go", "security_context.go", + "ssh.go", ], importpath = "k8s.io/kubernetes/test/e2e/node", visibility = ["//visibility:public"], @@ -21,10 +26,14 @@ go_library( "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/test/e2e/events.go b/vendor/k8s.io/kubernetes/test/e2e/node/events.go similarity index 90% rename from vendor/k8s.io/kubernetes/test/e2e/events.go rename to vendor/k8s.io/kubernetes/test/e2e/node/events.go index 28ce23829..84179de13 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/events.go +++ b/vendor/k8s.io/kubernetes/test/e2e/node/events.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package node import ( "fmt" @@ -33,12 +33,12 @@ import ( . "github.com/onsi/gomega" ) -var _ = framework.KubeDescribe("Events", func() { +var _ = SIGDescribe("Events", func() { f := framework.NewDefaultFramework("events") - It("should be sent by kubelets and the scheduler about pods scheduling and running [Conformance]", func() { + framework.ConformanceIt("should be sent by kubelets and the scheduler about pods scheduling and running ", func() { - podClient := f.ClientSet.Core().Pods(f.Namespace.Name) + podClient := f.ClientSet.CoreV1().Pods(f.Namespace.Name) By("creating the pod") name := "send-events-" + string(uuid.NewUUID()) @@ -96,7 +96,7 @@ var _ = framework.KubeDescribe("Events", func() { "source": v1.DefaultSchedulerName, }.AsSelector().String() options := metav1.ListOptions{FieldSelector: selector} - events, err := f.ClientSet.Core().Events(f.Namespace.Name).List(options) + events, err := f.ClientSet.CoreV1().Events(f.Namespace.Name).List(options) if err != nil { return false, err } @@ -116,7 +116,7 @@ var _ = framework.KubeDescribe("Events", func() { "source": "kubelet", }.AsSelector().String() options := metav1.ListOptions{FieldSelector: selector} - events, err = f.ClientSet.Core().Events(f.Namespace.Name).List(options) + events, err = f.ClientSet.CoreV1().Events(f.Namespace.Name).List(options) if err != nil { return false, err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/node/kubelet.go b/vendor/k8s.io/kubernetes/test/e2e/node/kubelet.go index c5e1c32ca..420a2f9f2 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/node/kubelet.go +++ b/vendor/k8s.io/kubernetes/test/e2e/node/kubelet.go @@ -34,7 +34,6 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - imageutils "k8s.io/kubernetes/test/utils/image" ) const ( @@ -170,7 +169,7 @@ func createPodUsingNfs(f *framework.Framework, c clientset.Interface, ns, nfsIP, Containers: []v1.Container{ { Name: "pod-nfs-vol", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"/bin/sh"}, Args: cmdLine, VolumeMounts: []v1.VolumeMount{ diff --git a/vendor/k8s.io/kubernetes/test/e2e/pod_gc.go b/vendor/k8s.io/kubernetes/test/e2e/node/pod_gc.go similarity index 85% rename from vendor/k8s.io/kubernetes/test/e2e/pod_gc.go rename to vendor/k8s.io/kubernetes/test/e2e/node/pod_gc.go index ebab2b2a4..c621eaabf 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/pod_gc.go +++ b/vendor/k8s.io/kubernetes/test/e2e/node/pod_gc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package node import ( "fmt" @@ -27,13 +27,12 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/kubernetes/test/e2e/framework" - imageutils "k8s.io/kubernetes/test/utils/image" ) // This test requires that --terminated-pod-gc-threshold=100 be set on the controller manager // // Slow by design (7 min) -var _ = framework.KubeDescribe("Pod garbage collector [Feature:PodGarbageCollector] [Slow]", func() { +var _ = SIGDescribe("Pod garbage collector [Feature:PodGarbageCollector] [Slow]", func() { f := framework.NewDefaultFramework("pod-garbage-collector") It("should handle the creation of 1000 pods", func() { var count int @@ -41,7 +40,7 @@ var _ = framework.KubeDescribe("Pod garbage collector [Feature:PodGarbageCollect pod, err := createTerminatingPod(f) pod.ResourceVersion = "" pod.Status.Phase = v1.PodFailed - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).UpdateStatus(pod) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).UpdateStatus(pod) if err != nil { framework.Failf("err failing pod: %v", err) } @@ -63,7 +62,7 @@ var _ = framework.KubeDescribe("Pod garbage collector [Feature:PodGarbageCollect By(fmt.Sprintf("Waiting for gc controller to gc all but %d pods", gcThreshold)) pollErr := wait.Poll(1*time.Minute, timeout, func() (bool, error) { - pods, err = f.ClientSet.Core().Pods(f.Namespace.Name).List(metav1.ListOptions{}) + pods, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { framework.Logf("Failed to list pod %v", err) return false, nil @@ -90,11 +89,11 @@ func createTerminatingPod(f *framework.Framework) (*v1.Pod, error) { Containers: []v1.Container{ { Name: string(uuid), - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", }, }, SchedulerName: "please don't schedule my pods", }, } - return f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + return f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/pods.go b/vendor/k8s.io/kubernetes/test/e2e/node/pods.go similarity index 97% rename from vendor/k8s.io/kubernetes/test/e2e/pods.go rename to vendor/k8s.io/kubernetes/test/e2e/node/pods.go index 79da117c7..080fe1d4d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/pods.go +++ b/vendor/k8s.io/kubernetes/test/e2e/node/pods.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package node import ( "crypto/tls" @@ -38,7 +38,7 @@ import ( imageutils "k8s.io/kubernetes/test/utils/image" ) -var _ = framework.KubeDescribe("Pods Extended", func() { +var _ = SIGDescribe("Pods Extended", func() { f := framework.NewDefaultFramework("pods") framework.KubeDescribe("Delete Grace Period", func() { @@ -47,7 +47,7 @@ var _ = framework.KubeDescribe("Pods Extended", func() { podClient = f.PodClient() }) // Flaky issue #36821. - It("should be submitted and removed [Conformance] [Flaky]", func() { + framework.ConformanceIt("should be submitted and removed [Flaky]", func() { By("creating the pod") name := "pod-submit-remove-" + string(uuid.NewUUID()) value := strconv.Itoa(time.Now().Nanosecond()) @@ -199,7 +199,7 @@ var _ = framework.KubeDescribe("Pods Extended", func() { BeforeEach(func() { podClient = f.PodClient() }) - It("should be submitted and removed [Conformance]", func() { + framework.ConformanceIt("should be submitted and removed ", func() { By("creating the pod") name := "pod-qos-class-" + string(uuid.NewUUID()) pod := &v1.Pod{ diff --git a/vendor/k8s.io/kubernetes/test/e2e/pre_stop.go b/vendor/k8s.io/kubernetes/test/e2e/node/pre_stop.go similarity index 77% rename from vendor/k8s.io/kubernetes/test/e2e/pre_stop.go rename to vendor/k8s.io/kubernetes/test/e2e/node/pre_stop.go index 4e4204068..ba0d9e861 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/pre_stop.go +++ b/vendor/k8s.io/kubernetes/test/e2e/node/pre_stop.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package node import ( "context" @@ -54,13 +54,13 @@ func testPreStop(c clientset.Interface, ns string) { }, } By(fmt.Sprintf("Creating server pod %s in namespace %s", podDescr.Name, ns)) - podDescr, err := c.Core().Pods(ns).Create(podDescr) + podDescr, err := c.CoreV1().Pods(ns).Create(podDescr) framework.ExpectNoError(err, fmt.Sprintf("creating pod %s", podDescr.Name)) // At the end of the test, clean up by removing the pod. defer func() { By("Deleting the server pod") - c.Core().Pods(ns).Delete(podDescr.Name, nil) + c.CoreV1().Pods(ns).Delete(podDescr.Name, nil) }() By("Waiting for pods to come up.") @@ -69,7 +69,7 @@ func testPreStop(c clientset.Interface, ns string) { val := "{\"Source\": \"prestop\"}" - podOut, err := c.Core().Pods(ns).Get(podDescr.Name, metav1.GetOptions{}) + podOut, err := c.CoreV1().Pods(ns).Get(podDescr.Name, metav1.GetOptions{}) framework.ExpectNoError(err, "getting pod info") preStopDescr := &v1.Pod{ @@ -80,7 +80,7 @@ func testPreStop(c clientset.Interface, ns string) { Containers: []v1.Container{ { Name: "tester", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"sleep", "600"}, Lifecycle: &v1.Lifecycle{ PreStop: &v1.Handler{ @@ -97,7 +97,7 @@ func testPreStop(c clientset.Interface, ns string) { } By(fmt.Sprintf("Creating tester pod %s in namespace %s", preStopDescr.Name, ns)) - preStopDescr, err = c.Core().Pods(ns).Create(preStopDescr) + preStopDescr, err = c.CoreV1().Pods(ns).Create(preStopDescr) framework.ExpectNoError(err, fmt.Sprintf("creating pod %s", preStopDescr.Name)) deletePreStop := true @@ -105,7 +105,7 @@ func testPreStop(c clientset.Interface, ns string) { defer func() { if deletePreStop { By("Deleting the tester pod") - c.Core().Pods(ns).Delete(preStopDescr.Name, nil) + c.CoreV1().Pods(ns).Delete(preStopDescr.Name, nil) } }() @@ -114,41 +114,27 @@ func testPreStop(c clientset.Interface, ns string) { // Delete the pod with the preStop handler. By("Deleting pre-stop pod") - if err := c.Core().Pods(ns).Delete(preStopDescr.Name, nil); err == nil { + if err := c.CoreV1().Pods(ns).Delete(preStopDescr.Name, nil); err == nil { deletePreStop = false } framework.ExpectNoError(err, fmt.Sprintf("deleting pod: %s", preStopDescr.Name)) // Validate that the server received the web poke. err = wait.Poll(time.Second*5, time.Second*60, func() (bool, error) { - subResourceProxyAvailable, err := framework.ServerVersionGTE(framework.SubResourcePodProxyVersion, c.Discovery()) - if err != nil { - return false, err - } ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout) defer cancel() var body []byte - if subResourceProxyAvailable { - body, err = c.Core().RESTClient().Get(). - Context(ctx). - Namespace(ns). - Resource("pods"). - SubResource("proxy"). - Name(podDescr.Name). - Suffix("read"). - DoRaw() - } else { - body, err = c.Core().RESTClient().Get(). - Context(ctx). - Prefix("proxy"). - Namespace(ns). - Resource("pods"). - Name(podDescr.Name). - Suffix("read"). - DoRaw() - } + body, err = c.CoreV1().RESTClient().Get(). + Context(ctx). + Namespace(ns). + Resource("pods"). + SubResource("proxy"). + Name(podDescr.Name). + Suffix("read"). + DoRaw() + if err != nil { if ctx.Err() != nil { framework.Failf("Error validating prestop: %v", err) @@ -172,10 +158,15 @@ func testPreStop(c clientset.Interface, ns string) { framework.ExpectNoError(err, "validating pre-stop.") } -var _ = framework.KubeDescribe("PreStop", func() { +var _ = SIGDescribe("PreStop", func() { f := framework.NewDefaultFramework("prestop") - It("should call prestop when killing a pod [Conformance]", func() { + /* + Testname: pods-prestop-handler-invoked + Description: Makes sure a pod's preStop handler is successfully + invoked immediately before a container is terminated. + */ + framework.ConformanceIt("should call prestop when killing a pod ", func() { testPreStop(f.ClientSet, f.Namespace.Name) }) }) diff --git a/vendor/k8s.io/kubernetes/test/e2e/node/security_context.go b/vendor/k8s.io/kubernetes/test/e2e/node/security_context.go index 118bc650f..48c531ab9 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/node/security_context.go +++ b/vendor/k8s.io/kubernetes/test/e2e/node/security_context.go @@ -32,7 +32,6 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - imageutils "k8s.io/kubernetes/test/utils/image" ) func scTestPod(hostIPC bool, hostPID bool) *v1.Pod { @@ -50,7 +49,7 @@ func scTestPod(hostIPC bool, hostPID bool) *v1.Pod { Containers: []v1.Container{ { Name: "test-container", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", }, }, RestartPolicy: v1.RestartPolicyNever, @@ -168,7 +167,7 @@ func testPodSELinuxLabeling(f *framework.Framework, hostIPC bool, hostPID bool) } pod.Spec.Containers[0].Command = []string{"sleep", "6000"} - client := f.ClientSet.Core().Pods(f.Namespace.Name) + client := f.ClientSet.CoreV1().Pods(f.Namespace.Name) pod, err := client.Create(pod) framework.ExpectNoError(err, "Error creating pod %v", pod) @@ -182,7 +181,7 @@ func testPodSELinuxLabeling(f *framework.Framework, hostIPC bool, hostPID bool) Expect(err).To(BeNil()) Expect(content).To(ContainSubstring(testContent)) - foundPod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) + foundPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) // Confirm that the file can be accessed from a second diff --git a/vendor/k8s.io/kubernetes/test/e2e/ssh.go b/vendor/k8s.io/kubernetes/test/e2e/node/ssh.go similarity index 98% rename from vendor/k8s.io/kubernetes/test/e2e/ssh.go rename to vendor/k8s.io/kubernetes/test/e2e/node/ssh.go index 12750a635..ad61f4d9e 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/ssh.go +++ b/vendor/k8s.io/kubernetes/test/e2e/node/ssh.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package node import ( "fmt" @@ -27,7 +27,7 @@ import ( const maxNodes = 100 -var _ = framework.KubeDescribe("SSH", func() { +var _ = SIGDescribe("SSH", func() { f := framework.NewDefaultFramework("ssh") diff --git a/vendor/k8s.io/kubernetes/test/e2e/scalability/BUILD b/vendor/k8s.io/kubernetes/test/e2e/scalability/BUILD index 6093cfa5b..34dff1f86 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scalability/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/scalability/BUILD @@ -15,11 +15,12 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/scalability", deps = [ - "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//test/e2e/framework:go_default_library", + "//test/e2e/framework/timer:go_default_library", "//test/utils:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", @@ -35,6 +36,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/scalability/density.go b/vendor/k8s.io/kubernetes/test/e2e/scalability/density.go index 35180b61c..f4b9c0b88 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scalability/density.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scalability/density.go @@ -39,11 +39,12 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/test/e2e/framework" + "k8s.io/kubernetes/test/e2e/framework/timer" testutils "k8s.io/kubernetes/test/utils" . "github.com/onsi/ginkgo" @@ -76,6 +77,54 @@ type DensityTestConfig struct { DaemonConfigs []*testutils.DaemonConfig } +func (dtc *DensityTestConfig) runSecretConfigs(testPhase *timer.Phase) { + defer testPhase.End() + for _, sc := range dtc.SecretConfigs { + sc.Run() + } +} + +func (dtc *DensityTestConfig) runConfigMapConfigs(testPhase *timer.Phase) { + defer testPhase.End() + for _, cmc := range dtc.ConfigMapConfigs { + cmc.Run() + } +} + +func (dtc *DensityTestConfig) runDaemonConfigs(testPhase *timer.Phase) { + defer testPhase.End() + for _, dc := range dtc.DaemonConfigs { + dc.Run() + } +} + +func (dtc *DensityTestConfig) deleteSecrets(testPhase *timer.Phase) { + defer testPhase.End() + for i := range dtc.SecretConfigs { + dtc.SecretConfigs[i].Stop() + } +} + +func (dtc *DensityTestConfig) deleteConfigMaps(testPhase *timer.Phase) { + defer testPhase.End() + for i := range dtc.ConfigMapConfigs { + dtc.ConfigMapConfigs[i].Stop() + } +} + +func (dtc *DensityTestConfig) deleteDaemonSets(numberOfClients int, testPhase *timer.Phase) { + defer testPhase.End() + for i := range dtc.DaemonConfigs { + framework.ExpectNoError(framework.DeleteResourceAndPods( + dtc.ClientSets[i%numberOfClients], + dtc.InternalClientsets[i%numberOfClients], + extensions.Kind("DaemonSet"), + dtc.DaemonConfigs[i].Namespace, + dtc.DaemonConfigs[i].Name, + )) + } +} + func density30AddonResourceVerifier(numNodes int) map[string]framework.ResourceConstraint { var apiserverMem uint64 var controllerMem uint64 @@ -152,7 +201,7 @@ func density30AddonResourceVerifier(numNodes int) map[string]framework.ResourceC } constraints["l7-lb-controller"] = framework.ResourceConstraint{ CPUConstraint: 0.2 + 0.0001*float64(numNodes), - MemoryConstraint: (75 + uint64(math.Ceil(0.6*float64(numNodes)))) * (1024 * 1024), + MemoryConstraint: (75 + uint64(math.Ceil(0.8*float64(numNodes)))) * (1024 * 1024), } constraints["influxdb"] = framework.ResourceConstraint{ CPUConstraint: 2, @@ -196,20 +245,16 @@ func logPodStartupStatus(c clientset.Interface, expectedPods int, observedLabels // runDensityTest will perform a density test and return the time it took for // all pods to start -func runDensityTest(dtc DensityTestConfig) time.Duration { +func runDensityTest(dtc DensityTestConfig, testPhaseDurations *timer.TestPhaseTimer) time.Duration { defer GinkgoRecover() // Create all secrets, configmaps and daemons. - for i := range dtc.SecretConfigs { - dtc.SecretConfigs[i].Run() - } - for i := range dtc.ConfigMapConfigs { - dtc.ConfigMapConfigs[i].Run() - } - for i := range dtc.DaemonConfigs { - dtc.DaemonConfigs[i].Run() - } + dtc.runSecretConfigs(testPhaseDurations.StartPhase(250, "secrets creation")) + dtc.runConfigMapConfigs(testPhaseDurations.StartPhase(260, "configmaps creation")) + dtc.runDaemonConfigs(testPhaseDurations.StartPhase(270, "daemonsets creation")) + replicationCtrlStartupPhase := testPhaseDurations.StartPhase(300, "saturation pods creation") + defer replicationCtrlStartupPhase.End() // Start all replication controllers. startTime := time.Now() wg := sync.WaitGroup{} @@ -231,10 +276,13 @@ func runDensityTest(dtc DensityTestConfig) time.Duration { close(logStopCh) framework.Logf("E2E startup time for %d pods: %v", dtc.PodCount, startupTime) framework.Logf("Throughput (pods/s) during cluster saturation phase: %v", float32(dtc.PodCount)/float32(startupTime/time.Second)) + replicationCtrlStartupPhase.End() + printPodAllocationPhase := testPhaseDurations.StartPhase(400, "printing pod allocation") + defer printPodAllocationPhase.End() // Print some data about Pod to Node allocation By("Printing Pod to Node allocation data") - podList, err := dtc.ClientSets[0].Core().Pods(metav1.NamespaceAll).List(metav1.ListOptions{}) + podList, err := dtc.ClientSets[0].CoreV1().Pods(metav1.NamespaceAll).List(metav1.ListOptions{}) framework.ExpectNoError(err) pausePodAllocation := make(map[string]int) systemPodAllocation := make(map[string][]string) @@ -253,11 +301,14 @@ func runDensityTest(dtc DensityTestConfig) time.Duration { for _, node := range nodeNames { framework.Logf("%v: %v pause pods, system pods: %v", node, pausePodAllocation[node], systemPodAllocation[node]) } + defer printPodAllocationPhase.End() return startupTime } -func cleanupDensityTest(dtc DensityTestConfig) { +func cleanupDensityTest(dtc DensityTestConfig, testPhaseDurations *timer.TestPhaseTimer) { defer GinkgoRecover() + podCleanupPhase := testPhaseDurations.StartPhase(900, "latency pods deletion") + defer podCleanupPhase.End() By("Deleting created Collections") numberOfClients := len(dtc.ClientSets) // We explicitly delete all pods to have API calls necessary for deletion accounted in metrics. @@ -275,23 +326,11 @@ func cleanupDensityTest(dtc DensityTestConfig) { framework.ExpectNoError(err) } } + podCleanupPhase.End() - // Delete all secrets, configmaps and daemons. - for i := range dtc.SecretConfigs { - dtc.SecretConfigs[i].Stop() - } - for i := range dtc.ConfigMapConfigs { - dtc.ConfigMapConfigs[i].Stop() - } - for i := range dtc.DaemonConfigs { - framework.ExpectNoError(framework.DeleteResourceAndPods( - dtc.ClientSets[i%numberOfClients], - dtc.InternalClientsets[i%numberOfClients], - extensions.Kind("DaemonSet"), - dtc.DaemonConfigs[i].Namespace, - dtc.DaemonConfigs[i].Name, - )) - } + dtc.deleteSecrets(testPhaseDurations.StartPhase(910, "secrets deletion")) + dtc.deleteConfigMaps(testPhaseDurations.StartPhase(920, "configmaps deletion")) + dtc.deleteDaemonSets(numberOfClients, testPhaseDurations.StartPhase(930, "daemonsets deletion")) } // This test suite can take a long time to run, and can affect or be affected by other tests. @@ -316,6 +355,7 @@ var _ = SIGDescribe("Density", func() { testCaseBaseName := "density" missingMeasurements := 0 + var testPhaseDurations *timer.TestPhaseTimer // Gathers data prior to framework namespace teardown AfterEach(func() { @@ -349,6 +389,7 @@ var _ = SIGDescribe("Density", func() { if err == nil { summaries = append(summaries, latency) } + summaries = append(summaries, testPhaseDurations) framework.PrintSummaries(summaries, testCaseBaseName) @@ -368,6 +409,7 @@ var _ = SIGDescribe("Density", func() { BeforeEach(func() { c = f.ClientSet ns = f.Namespace.Name + testPhaseDurations = timer.NewTestPhaseTimer() masters, nodes = framework.GetMasterAndWorkerNodesOrDie(c) nodeCount = len(nodes.Items) @@ -454,6 +496,8 @@ var _ = SIGDescribe("Density", func() { ) itArg := testArg It(name, func() { + nodePrepPhase := testPhaseDurations.StartPhase(100, "node preparation") + defer nodePrepPhase.End() nodePreparer := framework.NewE2ETestNodePreparer( f.ClientSet, []testutils.CountToStrategy{{Count: nodeCount, Strategy: &testutils.TrivialNodePrepareStrategy{}}}, @@ -469,10 +513,11 @@ var _ = SIGDescribe("Density", func() { fileHndl, err := os.Create(fmt.Sprintf(framework.TestContext.OutputDir+"/%s/pod_states.csv", uuid)) framework.ExpectNoError(err) defer fileHndl.Close() + nodePrepPhase.End() // nodeCountPerNamespace and CreateNamespaces are defined in load.go numberOfCollections := (nodeCount + nodeCountPerNamespace - 1) / nodeCountPerNamespace - namespaces, err := CreateNamespaces(f, numberOfCollections, fmt.Sprintf("density-%v", testArg.podsPerNode)) + namespaces, err := CreateNamespaces(f, numberOfCollections, fmt.Sprintf("density-%v", testArg.podsPerNode), testPhaseDurations.StartPhase(200, "namespace creation")) framework.ExpectNoError(err) configs := make([]testutils.RunObjectConfig, numberOfCollections) @@ -567,7 +612,7 @@ var _ = SIGDescribe("Density", func() { LogFunc: framework.Logf, }) } - e2eStartupTime = runDensityTest(dConfig) + e2eStartupTime = runDensityTest(dConfig, testPhaseDurations) if itArg.runLatencyTest { By("Scheduling additional Pods to measure startup latencies") @@ -615,12 +660,12 @@ var _ = SIGDescribe("Density", func() { &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { options.LabelSelector = labels.SelectorFromSet(labels.Set{"type": additionalPodsPrefix}).String() - obj, err := c.Core().Pods(nsName).List(options) + obj, err := c.CoreV1().Pods(nsName).List(options) return runtime.Object(obj), err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { options.LabelSelector = labels.SelectorFromSet(labels.Set{"type": additionalPodsPrefix}).String() - return c.Core().Pods(nsName).Watch(options) + return c.CoreV1().Pods(nsName).Watch(options) }, }, &v1.Pod{}, @@ -650,6 +695,8 @@ var _ = SIGDescribe("Density", func() { } // Create some additional pods with throughput ~5 pods/sec. + latencyPodStartupPhase := testPhaseDurations.StartPhase(800, "latency pods creation") + defer latencyPodStartupPhase.End() var wg sync.WaitGroup wg.Add(nodeCount) // Explicitly set requests here. @@ -673,7 +720,10 @@ var _ = SIGDescribe("Density", func() { time.Sleep(200 * time.Millisecond) } wg.Wait() + latencyPodStartupPhase.End() + latencyMeasurementPhase := testPhaseDurations.StartPhase(810, "pod startup latencies measurement") + defer latencyMeasurementPhase.End() By("Waiting for all Pods begin observed by the watch...") waitTimeout := 10 * time.Minute for start := time.Now(); len(watchTimes) < nodeCount; time.Sleep(10 * time.Second) { @@ -704,7 +754,7 @@ var _ = SIGDescribe("Density", func() { "source": v1.DefaultSchedulerName, }.AsSelector().String() options := metav1.ListOptions{FieldSelector: selector} - schedEvents, err := c.Core().Events(nsName).List(options) + schedEvents, err := c.CoreV1().Events(nsName).List(options) framework.ExpectNoError(err) for k := range createTimes { for _, event := range schedEvents.Items { @@ -769,17 +819,20 @@ var _ = SIGDescribe("Density", func() { framework.ExpectNoError(framework.VerifyPodStartupLatency(podStartupLatency)) framework.LogSuspiciousLatency(startupLag, e2eLag, nodeCount, c) + latencyMeasurementPhase.End() By("Removing additional replication controllers") + podDeletionPhase := testPhaseDurations.StartPhase(820, "latency pods deletion") + defer podDeletionPhase.End() deleteRC := func(i int) { defer GinkgoRecover() name := additionalPodsPrefix + "-" + strconv.Itoa(i+1) framework.ExpectNoError(framework.DeleteRCAndWaitForGC(c, rcNameToNsMap[name], name)) } workqueue.Parallelize(25, nodeCount, deleteRC) + podDeletionPhase.End() } - - cleanupDensityTest(dConfig) + cleanupDensityTest(dConfig, testPhaseDurations) }) } }) @@ -822,7 +875,7 @@ func createRunningPodFromRC(wg *sync.WaitGroup, c clientset.Interface, name, ns, }, } for attempt := 1; attempt <= MaxLatencyPodCreationTries; attempt++ { - _, err := c.Core().ReplicationControllers(ns).Create(rc) + _, err := c.CoreV1().ReplicationControllers(ns).Create(rc) if err == nil || apierrs.IsAlreadyExists(err) { break } diff --git a/vendor/k8s.io/kubernetes/test/e2e/scalability/empty.go b/vendor/k8s.io/kubernetes/test/e2e/scalability/empty.go index cd620587c..94987ec0c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scalability/empty.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scalability/empty.go @@ -20,7 +20,7 @@ import ( "time" "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/e2e/framework" . "github.com/onsi/ginkgo" diff --git a/vendor/k8s.io/kubernetes/test/e2e/scalability/load.go b/vendor/k8s.io/kubernetes/test/e2e/scalability/load.go index 09f28f387..c696de427 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scalability/load.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scalability/load.go @@ -33,15 +33,17 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/intstr" utilnet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/transport" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/test/e2e/framework" + "k8s.io/kubernetes/test/e2e/framework/timer" testutils "k8s.io/kubernetes/test/utils" . "github.com/onsi/ginkgo" @@ -87,6 +89,7 @@ var _ = SIGDescribe("Load capacity", func() { var configMapConfigs []*testutils.ConfigMapConfig testCaseBaseName := "load" + var testPhaseDurations *timer.TestPhaseTimer // Gathers metrics before teardown // TODO add flag that allows to skip cleanup on failure @@ -95,8 +98,9 @@ var _ = SIGDescribe("Load capacity", func() { highLatencyRequests, metrics, err := framework.HighLatencyRequests(clientset, nodeCount) framework.ExpectNoError(err) if err == nil { - summaries := make([]framework.TestDataSummary, 0, 1) + summaries := make([]framework.TestDataSummary, 0, 2) summaries = append(summaries, metrics) + summaries = append(summaries, testPhaseDurations) framework.PrintSummaries(summaries, testCaseBaseName) Expect(highLatencyRequests).NotTo(BeNumerically(">", 0), "There should be no high-latency requests") } @@ -122,6 +126,7 @@ var _ = SIGDescribe("Load capacity", func() { f.NamespaceDeletionTimeout = time.Hour BeforeEach(func() { + testPhaseDurations = timer.NewTestPhaseTimer() clientset = f.ClientSet ns = f.Namespace.Name @@ -186,27 +191,31 @@ var _ = SIGDescribe("Load capacity", func() { It(name, func() { // Create a number of namespaces. namespaceCount := (nodeCount + nodeCountPerNamespace - 1) / nodeCountPerNamespace - namespaces, err := CreateNamespaces(f, namespaceCount, fmt.Sprintf("load-%v-nodepods", itArg.podsPerNode)) + namespaces, err := CreateNamespaces(f, namespaceCount, fmt.Sprintf("load-%v-nodepods", itArg.podsPerNode), testPhaseDurations.StartPhase(110, "namespace creation")) framework.ExpectNoError(err) totalPods := (itArg.podsPerNode - itArg.daemonsPerNode) * nodeCount configs, secretConfigs, configMapConfigs = generateConfigs(totalPods, itArg.image, itArg.command, namespaces, itArg.kind, itArg.secretsPerPod, itArg.configMapsPerPod) + serviceCreationPhase := testPhaseDurations.StartPhase(120, "services creation") + defer serviceCreationPhase.End() if itArg.services { framework.Logf("Creating services") services := generateServicesForConfigs(configs) createService := func(i int) { defer GinkgoRecover() - _, err := clientset.Core().Services(services[i].Namespace).Create(services[i]) + _, err := clientset.CoreV1().Services(services[i].Namespace).Create(services[i]) framework.ExpectNoError(err) } workqueue.Parallelize(serviceOperationsParallelism, len(services), createService) framework.Logf("%v Services created.", len(services)) defer func(services []*v1.Service) { + serviceCleanupPhase := testPhaseDurations.StartPhase(800, "services deletion") + defer serviceCleanupPhase.End() framework.Logf("Starting to delete services...") deleteService := func(i int) { defer GinkgoRecover() - err := clientset.Core().Services(services[i].Namespace).Delete(services[i].Name, nil) + err := clientset.CoreV1().Services(services[i].Namespace).Delete(services[i].Name, nil) framework.ExpectNoError(err) } workqueue.Parallelize(serviceOperationsParallelism, len(services), deleteService) @@ -215,17 +224,26 @@ var _ = SIGDescribe("Load capacity", func() { } else { framework.Logf("Skipping service creation") } + serviceCreationPhase.End() // Create all secrets. + secretsCreationPhase := testPhaseDurations.StartPhase(130, "secrets creation") + defer secretsCreationPhase.End() for i := range secretConfigs { secretConfigs[i].Run() defer secretConfigs[i].Stop() } + secretsCreationPhase.End() // Create all configmaps. + configMapsCreationPhase := testPhaseDurations.StartPhase(140, "configmaps creation") + defer configMapsCreationPhase.End() for i := range configMapConfigs { configMapConfigs[i].Run() defer configMapConfigs[i].Stop() } - // StartDeamon if needed + configMapsCreationPhase.End() + // StartDaemon if needed + daemonSetCreationPhase := testPhaseDurations.StartPhase(150, "daemonsets creation") + defer daemonSetCreationPhase.End() for i := 0; i < itArg.daemonsPerNode; i++ { daemonName := fmt.Sprintf("load-daemon-%v", i) daemonConfig := &testutils.DaemonConfig{ @@ -245,6 +263,7 @@ var _ = SIGDescribe("Load capacity", func() { )) }(daemonConfig) } + daemonSetCreationPhase.End() // Simulate lifetime of RC: // * create with initial size @@ -261,9 +280,10 @@ var _ = SIGDescribe("Load capacity", func() { // to make it possible to create/schedule them in the meantime. // Currently we assume pods/second average throughput. // We may want to revisit it in the future. - framework.Logf("Starting to create ReplicationControllers...") + framework.Logf("Starting to create %v objects...", itArg.kind) creatingTime := time.Duration(totalPods/throughput) * time.Second - createAllResources(configs, creatingTime) + + createAllResources(configs, creatingTime, testPhaseDurations.StartPhase(200, "load pods creation")) By("============================================================================") // We would like to spread scaling replication controllers over time @@ -271,20 +291,20 @@ var _ = SIGDescribe("Load capacity", func() { // Currently we assume that pods/second average throughput. // The expected number of created/deleted pods is less than totalPods/3. scalingTime := time.Duration(totalPods/(3*throughput)) * time.Second - framework.Logf("Starting to scale ReplicationControllers first time...") - scaleAllResources(configs, scalingTime) + framework.Logf("Starting to scale %v objects first time...", itArg.kind) + scaleAllResources(configs, scalingTime, testPhaseDurations.StartPhase(300, "scaling first time")) By("============================================================================") - framework.Logf("Starting to scale ReplicationControllers second time...") - scaleAllResources(configs, scalingTime) + framework.Logf("Starting to scale %v objects second time...", itArg.kind) + scaleAllResources(configs, scalingTime, testPhaseDurations.StartPhase(400, "scaling second time")) By("============================================================================") // Cleanup all created replication controllers. // Currently we assume pods/second average deletion throughput. // We may want to revisit it in the future. deletingTime := time.Duration(totalPods/throughput) * time.Second - framework.Logf("Starting to delete ReplicationControllers...") - deleteAllResources(configs, deletingTime) + framework.Logf("Starting to delete %v objects...", itArg.kind) + deleteAllResources(configs, deletingTime, testPhaseDurations.StartPhase(500, "load pods deletion")) }) } }) @@ -523,7 +543,18 @@ func sleepUpTo(d time.Duration) { } } -func createAllResources(configs []testutils.RunObjectConfig, creatingTime time.Duration) { +func retryWithExponentialBackOff(initialDuration time.Duration, fn wait.ConditionFunc) error { + backoff := wait.Backoff{ + Duration: initialDuration, + Factor: 3, + Jitter: 0, + Steps: 6, + } + return wait.ExponentialBackoff(backoff, fn) +} + +func createAllResources(configs []testutils.RunObjectConfig, creatingTime time.Duration, testPhase *timer.Phase) { + defer testPhase.End() var wg sync.WaitGroup wg.Add(len(configs)) for _, config := range configs { @@ -540,7 +571,8 @@ func createResource(wg *sync.WaitGroup, config testutils.RunObjectConfig, creati framework.ExpectNoError(config.Run(), fmt.Sprintf("creating %v %s", config.GetKind(), config.GetName())) } -func scaleAllResources(configs []testutils.RunObjectConfig, scalingTime time.Duration) { +func scaleAllResources(configs []testutils.RunObjectConfig, scalingTime time.Duration, testPhase *timer.Phase) { + defer testPhase.End() var wg sync.WaitGroup wg.Add(len(configs)) for _, config := range configs { @@ -559,18 +591,30 @@ func scaleResource(wg *sync.WaitGroup, config testutils.RunObjectConfig, scaling newSize := uint(rand.Intn(config.GetReplicas()) + config.GetReplicas()/2) framework.ExpectNoError(framework.ScaleResource( config.GetClient(), config.GetInternalClient(), config.GetNamespace(), config.GetName(), newSize, true, config.GetKind()), - fmt.Sprintf("scaling rc %s for the first time", config.GetName())) + fmt.Sprintf("scaling %v %v", config.GetKind(), config.GetName())) selector := labels.SelectorFromSet(labels.Set(map[string]string{"name": config.GetName()})) options := metav1.ListOptions{ LabelSelector: selector.String(), ResourceVersion: "0", } - _, err := config.GetClient().Core().Pods(config.GetNamespace()).List(options) - framework.ExpectNoError(err, fmt.Sprintf("listing pods from rc %v", config.GetName())) + listResourcePodsFunc := func() (bool, error) { + _, err := config.GetClient().CoreV1().Pods(config.GetNamespace()).List(options) + if err == nil { + return true, nil + } + framework.Logf("Failed to list pods from %v %v due to: %v", config.GetKind(), config.GetName(), err) + if framework.IsRetryableAPIError(err) { + return false, nil + } + return false, fmt.Errorf("Failed to list pods from %v %v with non-retriable error: %v", config.GetKind(), config.GetName(), err) + } + err := retryWithExponentialBackOff(100*time.Millisecond, listResourcePodsFunc) + framework.ExpectNoError(err) } -func deleteAllResources(configs []testutils.RunObjectConfig, deletingTime time.Duration) { +func deleteAllResources(configs []testutils.RunObjectConfig, deletingTime time.Duration, testPhase *timer.Phase) { + defer testPhase.End() var wg sync.WaitGroup wg.Add(len(configs)) for _, config := range configs { @@ -595,7 +639,8 @@ func deleteResource(wg *sync.WaitGroup, config testutils.RunObjectConfig, deleti } } -func CreateNamespaces(f *framework.Framework, namespaceCount int, namePrefix string) ([]*v1.Namespace, error) { +func CreateNamespaces(f *framework.Framework, namespaceCount int, namePrefix string, testPhase *timer.Phase) ([]*v1.Namespace, error) { + defer testPhase.End() namespaces := []*v1.Namespace{} for i := 1; i <= namespaceCount; i++ { namespace, err := f.CreateNamespace(fmt.Sprintf("%v-%d", namePrefix, i), nil) diff --git a/vendor/k8s.io/kubernetes/test/e2e/scheduling/BUILD b/vendor/k8s.io/kubernetes/test/e2e/scheduling/BUILD index 77ca3b90c..84e68a08b 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scheduling/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/scheduling/BUILD @@ -12,18 +12,22 @@ go_library( "equivalence_cache_predicates.go", "events.go", "framework.go", + "limit_range.go", "nvidia-gpus.go", "opaque_resource.go", "predicates.go", "preemption.go", "priorities.go", "rescheduler.go", + "resource_quota.go", ], importpath = "k8s.io/kubernetes/test/e2e/scheduling", deps = [ - "//pkg/api:go_default_library", - "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", + "//pkg/apis/extensions:go_default_library", + "//pkg/quota/evaluator/core:go_default_library", "//pkg/util/system:go_default_library", "//pkg/util/version:go_default_library", "//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library", @@ -35,14 +39,17 @@ go_library( "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource: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/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/test/e2e/scheduling/equivalence_cache_predicates.go b/vendor/k8s.io/kubernetes/test/e2e/scheduling/equivalence_cache_predicates.go index 9b03bae79..79aaf5d9d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scheduling/equivalence_cache_predicates.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scheduling/equivalence_cache_predicates.go @@ -25,7 +25,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/uuid" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/e2e/framework" testutils "k8s.io/kubernetes/test/utils" diff --git a/vendor/k8s.io/kubernetes/test/e2e/scheduling/limit_range.go b/vendor/k8s.io/kubernetes/test/e2e/scheduling/limit_range.go new file mode 100644 index 000000000..31de3ab9d --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/scheduling/limit_range.go @@ -0,0 +1,300 @@ +/* +Copyright 2015 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 scheduling + +import ( + "fmt" + + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/kubernetes/test/e2e/framework" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +const ( + podName = "pfpod" +) + +var _ = SIGDescribe("LimitRange", func() { + f := framework.NewDefaultFramework("limitrange") + + It("should create a LimitRange with defaults and ensure pod has those defaults applied.", func() { + By("Creating a LimitRange") + + min := getResourceList("50m", "100Mi") + max := getResourceList("500m", "500Mi") + defaultLimit := getResourceList("500m", "500Mi") + defaultRequest := getResourceList("100m", "200Mi") + maxLimitRequestRatio := v1.ResourceList{} + limitRange := newLimitRange("limit-range", v1.LimitTypeContainer, + min, max, + defaultLimit, defaultRequest, + maxLimitRequestRatio) + limitRange, err := f.ClientSet.CoreV1().LimitRanges(f.Namespace.Name).Create(limitRange) + Expect(err).NotTo(HaveOccurred()) + + By("Fetching the LimitRange to ensure it has proper values") + limitRange, err = f.ClientSet.CoreV1().LimitRanges(f.Namespace.Name).Get(limitRange.Name, metav1.GetOptions{}) + expected := v1.ResourceRequirements{Requests: defaultRequest, Limits: defaultLimit} + actual := v1.ResourceRequirements{Requests: limitRange.Spec.Limits[0].DefaultRequest, Limits: limitRange.Spec.Limits[0].Default} + err = equalResourceRequirement(expected, actual) + Expect(err).NotTo(HaveOccurred()) + + By("Creating a Pod with no resource requirements") + pod := f.NewTestPod("pod-no-resources", v1.ResourceList{}, v1.ResourceList{}) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).NotTo(HaveOccurred()) + + By("Ensuring Pod has resource requirements applied from LimitRange") + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + for i := range pod.Spec.Containers { + err = equalResourceRequirement(expected, pod.Spec.Containers[i].Resources) + if err != nil { + // Print the pod to help in debugging. + framework.Logf("Pod %+v does not have the expected requirements", pod) + Expect(err).NotTo(HaveOccurred()) + } + } + + By("Creating a Pod with partial resource requirements") + pod = f.NewTestPod("pod-partial-resources", getResourceList("", "150Mi"), getResourceList("300m", "")) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).NotTo(HaveOccurred()) + + By("Ensuring Pod has merged resource requirements applied from LimitRange") + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + // This is an interesting case, so it's worth a comment + // If you specify a Limit, and no Request, the Limit will default to the Request + // This means that the LimitRange.DefaultRequest will ONLY take affect if a container.resources.limit is not supplied + expected = v1.ResourceRequirements{Requests: getResourceList("300m", "150Mi"), Limits: getResourceList("300m", "500Mi")} + for i := range pod.Spec.Containers { + err = equalResourceRequirement(expected, pod.Spec.Containers[i].Resources) + if err != nil { + // Print the pod to help in debugging. + framework.Logf("Pod %+v does not have the expected requirements", pod) + Expect(err).NotTo(HaveOccurred()) + } + } + + By("Failing to create a Pod with less than min resources") + pod = f.NewTestPod(podName, getResourceList("10m", "50Mi"), v1.ResourceList{}) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).To(HaveOccurred()) + + By("Failing to create a Pod with more than max resources") + pod = f.NewTestPod(podName, getResourceList("600m", "600Mi"), v1.ResourceList{}) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).To(HaveOccurred()) + }) + +}) + +var _ = framework.KubeDescribe("LimitRange", func() { + f := framework.NewDefaultFramework("limitrange") + + BeforeEach(func() { + // only run the tests when LocalStorageCapacityIsolation feature is enabled + framework.SkipUnlessLocalEphemeralStorageEnabled() + }) + + It("should create a LimitRange with default ephemeral storage and ensure pod has the default applied.", func() { + By("Creating a LimitRange") + + min := getEphemeralStorageResourceList("100Mi") + max := getEphemeralStorageResourceList("500Mi") + defaultLimit := getEphemeralStorageResourceList("500Mi") + defaultRequest := getEphemeralStorageResourceList("200Mi") + maxLimitRequestRatio := v1.ResourceList{} + limitRange := newLimitRange("limit-range", v1.LimitTypeContainer, + min, max, + defaultLimit, defaultRequest, + maxLimitRequestRatio) + limitRange, err := f.ClientSet.CoreV1().LimitRanges(f.Namespace.Name).Create(limitRange) + Expect(err).NotTo(HaveOccurred()) + + defer func() { + By("Removing limitrange") + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(limitRange.Name, nil) + Expect(err).NotTo(HaveOccurred()) + }() + + By("Fetching the LimitRange to ensure it has proper values") + limitRange, err = f.ClientSet.CoreV1().LimitRanges(f.Namespace.Name).Get(limitRange.Name, metav1.GetOptions{}) + expected := v1.ResourceRequirements{Requests: defaultRequest, Limits: defaultLimit} + actual := v1.ResourceRequirements{Requests: limitRange.Spec.Limits[0].DefaultRequest, Limits: limitRange.Spec.Limits[0].Default} + err = equalResourceRequirement(expected, actual) + Expect(err).NotTo(HaveOccurred()) + + By("Creating a Pod with no resource requirements") + pod := f.NewTestPod("pod-no-resources", v1.ResourceList{}, v1.ResourceList{}) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).NotTo(HaveOccurred()) + + defer func() { + By("Removing pod") + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(pod.Name, nil) + Expect(err).NotTo(HaveOccurred()) + }() + + By("Ensuring Pod has resource requirements applied from LimitRange") + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + for i := range pod.Spec.Containers { + err = equalResourceRequirement(expected, pod.Spec.Containers[i].Resources) + if err != nil { + // Print the pod to help in debugging. + framework.Logf("Pod %+v does not have the expected requirements", pod) + Expect(err).NotTo(HaveOccurred()) + } + } + + By("Creating a Pod with request") + pod = f.NewTestPod("pod-partial-resources", getEphemeralStorageResourceList("150m"), v1.ResourceList{}) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).NotTo(HaveOccurred()) + + defer func() { + By("Removing pod") + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(pod.Name, nil) + Expect(err).NotTo(HaveOccurred()) + }() + + By("Ensuring Pod has merged resource requirements applied from LimitRange") + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + // If you specify a Request, and no Limit, the Limit will be set to default limit + expected = v1.ResourceRequirements{Requests: getEphemeralStorageResourceList("150Mi"), Limits: defaultLimit} + for i := range pod.Spec.Containers { + err = equalResourceRequirement(expected, pod.Spec.Containers[i].Resources) + if err != nil { + // Print the pod to help in debugging. + framework.Logf("Pod %+v does not have the expected requirements", pod) + Expect(err).NotTo(HaveOccurred()) + } + } + + By("Creating a Pod with limit") + pod = f.NewTestPod("pod-partial-resources", v1.ResourceList{}, getEphemeralStorageResourceList("300m")) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).NotTo(HaveOccurred()) + + defer func() { + By("Removing pod") + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(pod.Name, nil) + Expect(err).NotTo(HaveOccurred()) + }() + + By("Ensuring Pod has merged resource requirements applied from LimitRange") + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(pod.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + // If you specify a Limit, and no Request, the Limit will default to the Request + // This means that the LimitRange.DefaultRequest will ONLY take affect if a container.resources.limit is not supplied + expected = v1.ResourceRequirements{Requests: getEphemeralStorageResourceList("300Mi"), Limits: getEphemeralStorageResourceList("300Mi")} + for i := range pod.Spec.Containers { + err = equalResourceRequirement(expected, pod.Spec.Containers[i].Resources) + if err != nil { + // Print the pod to help in debugging. + framework.Logf("Pod %+v does not have the expected requirements", pod) + Expect(err).NotTo(HaveOccurred()) + } + } + + By("Failing to create a Pod with less than min resources") + pod = f.NewTestPod(podName, getEphemeralStorageResourceList("50Mi"), v1.ResourceList{}) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).To(HaveOccurred()) + + By("Failing to create a Pod with more than max resources") + pod = f.NewTestPod(podName, getEphemeralStorageResourceList("600Mi"), v1.ResourceList{}) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).To(HaveOccurred()) + }) + +}) + +func getEphemeralStorageResourceList(ephemeralStorage string) v1.ResourceList { + res := v1.ResourceList{} + if ephemeralStorage != "" { + res[v1.ResourceEphemeralStorage] = resource.MustParse(ephemeralStorage) + } + return res +} + +func equalResourceRequirement(expected v1.ResourceRequirements, actual v1.ResourceRequirements) error { + framework.Logf("Verifying requests: expected %v with actual %v", expected.Requests, actual.Requests) + err := equalResourceList(expected.Requests, actual.Requests) + if err != nil { + return err + } + framework.Logf("Verifying limits: expected %v with actual %v", expected.Limits, actual.Limits) + err = equalResourceList(expected.Limits, actual.Limits) + return err +} + +func equalResourceList(expected v1.ResourceList, actual v1.ResourceList) error { + for k, v := range expected { + if actualValue, found := actual[k]; !found || (v.Cmp(actualValue) != 0) { + return fmt.Errorf("resource %v expected %v actual %v", k, v.String(), actualValue.String()) + } + } + for k, v := range actual { + if expectedValue, found := expected[k]; !found || (v.Cmp(expectedValue) != 0) { + return fmt.Errorf("resource %v expected %v actual %v", k, expectedValue.String(), v.String()) + } + } + return nil +} + +func getResourceList(cpu, memory string) v1.ResourceList { + res := v1.ResourceList{} + if cpu != "" { + res[v1.ResourceCPU] = resource.MustParse(cpu) + } + if memory != "" { + res[v1.ResourceMemory] = resource.MustParse(memory) + } + return res +} + +// newLimitRange returns a limit range with specified data +func newLimitRange(name string, limitType v1.LimitType, + min, max, + defaultLimit, defaultRequest, + maxLimitRequestRatio v1.ResourceList) *v1.LimitRange { + return &v1.LimitRange{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + Spec: v1.LimitRangeSpec{ + Limits: []v1.LimitRangeItem{ + { + Type: limitType, + Min: min, + Max: max, + Default: defaultLimit, + DefaultRequest: defaultRequest, + MaxLimitRequestRatio: maxLimitRequestRatio, + }, + }, + }, + } +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/scheduling/nvidia-gpus.go b/vendor/k8s.io/kubernetes/test/e2e/scheduling/nvidia-gpus.go index 523fd1eea..5deeea25f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scheduling/nvidia-gpus.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scheduling/nvidia-gpus.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" + extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/test/e2e/framework" imageutils "k8s.io/kubernetes/test/utils/image" @@ -171,20 +172,28 @@ func testNvidiaGPUsOnCOS(f *framework.Framework) { podCreationFunc = makeCudaAdditionTestPod } - // GPU drivers might have already been installed. - if !areGPUsAvailableOnAllSchedulableNodes(f) { - // Install Nvidia Drivers. - ds, err := framework.DsFromManifest(dsYamlUrl) - Expect(err).NotTo(HaveOccurred()) - ds.Namespace = f.Namespace.Name - _, err = f.ClientSet.Extensions().DaemonSets(f.Namespace.Name).Create(ds) - framework.ExpectNoError(err, "failed to create daemonset") - framework.Logf("Successfully created daemonset to install Nvidia drivers. Waiting for drivers to be installed and GPUs to be available in Node Capacity...") - // Wait for Nvidia GPUs to be available on nodes - Eventually(func() bool { - return areGPUsAvailableOnAllSchedulableNodes(f) - }, driverInstallTimeout, time.Second).Should(BeTrue()) - } + // Creates the DaemonSet that installs Nvidia Drivers. + // The DaemonSet also runs nvidia device plugin for device plugin test. + ds, err := framework.DsFromManifest(dsYamlUrl) + Expect(err).NotTo(HaveOccurred()) + ds.Namespace = f.Namespace.Name + _, err = f.ClientSet.ExtensionsV1beta1().DaemonSets(f.Namespace.Name).Create(ds) + framework.ExpectNoError(err, "failed to create daemonset") + framework.Logf("Successfully created daemonset to install Nvidia drivers.") + + pods, err := framework.WaitForControlledPods(f.ClientSet, ds.Namespace, ds.Name, extensionsinternal.Kind("DaemonSet")) + framework.ExpectNoError(err, "getting pods controlled by the daemonset") + framework.Logf("Starting ResourceUsageGather for the created DaemonSet pods.") + rsgather, err := framework.NewResourceUsageGatherer(f.ClientSet, framework.ResourceGathererOptions{false, false, 2 * time.Second, 2 * time.Second}, pods) + framework.ExpectNoError(err, "creating ResourceUsageGather for the daemonset pods") + go rsgather.StartGatheringData() + + // Wait for Nvidia GPUs to be available on nodes + framework.Logf("Waiting for drivers to be installed and GPUs to be available in Node Capacity...") + Eventually(func() bool { + return areGPUsAvailableOnAllSchedulableNodes(f) + }, driverInstallTimeout, time.Second).Should(BeTrue()) + framework.Logf("Creating as many pods as there are Nvidia GPUs and have the pods run a CUDA app") podList := []*v1.Pod{} for i := int64(0); i < getGPUsAvailable(f); i++ { @@ -195,6 +204,13 @@ func testNvidiaGPUsOnCOS(f *framework.Framework) { for _, po := range podList { f.PodClient().WaitForSuccess(po.Name, 5*time.Minute) } + + framework.Logf("Stopping ResourceUsageGather") + constraints := make(map[string]framework.ResourceConstraint) + // For now, just gets summary. Can pass valid constraints in the future. + summary, err := rsgather.StopAndSummarize([]int{50, 90, 100}, constraints) + f.TestSummaries = append(f.TestSummaries, summary) + framework.ExpectNoError(err, "getting resource usage summary") } var _ = SIGDescribe("[Feature:GPU]", func() { diff --git a/vendor/k8s.io/kubernetes/test/e2e/scheduling/opaque_resource.go b/vendor/k8s.io/kubernetes/test/e2e/scheduling/opaque_resource.go index 0e5e0e5de..7185a130d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scheduling/opaque_resource.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scheduling/opaque_resource.go @@ -24,7 +24,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/util/system" "k8s.io/kubernetes/test/e2e/common" "k8s.io/kubernetes/test/e2e/framework" diff --git a/vendor/k8s.io/kubernetes/test/e2e/scheduling/predicates.go b/vendor/k8s.io/kubernetes/test/e2e/scheduling/predicates.go index 9e48ed44f..4822aa0ba 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scheduling/predicates.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scheduling/predicates.go @@ -237,7 +237,12 @@ var _ = SIGDescribe("SchedulerPredicates [Serial]", func() { // 3. Wait for the pods to be scheduled. // 4. Create another pod with no affinity to any node that need 50% of the largest node CPU. // 5. Make sure this additional pod is not scheduled. - It("validates resource limits of pods that are allowed to run [Conformance]", func() { + /* + Testname: scheduler-resource-limits + Description: Ensure that scheduler accounts node resources correctly + and respects pods' resource requirements during scheduling. + */ + framework.ConformanceIt("validates resource limits of pods that are allowed to run ", func() { framework.WaitForStableCluster(cs, masterNodes) nodeMaxAllocatable := int64(0) nodeToAllocatableMap := make(map[string]int64) @@ -286,7 +291,7 @@ var _ = SIGDescribe("SchedulerPredicates [Serial]", func() { for nodeName, cpu := range nodeToAllocatableMap { requestedCPU := cpu * 7 / 10 fillerPods = append(fillerPods, createPausePod(f, pausePodConfig{ - Name: "filler-pod-" + nodeName, + Name: "filler-pod-" + string(uuid.NewUUID()), Resources: &v1.ResourceRequirements{ Limits: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(requestedCPU, "DecimalSI"), @@ -338,7 +343,12 @@ var _ = SIGDescribe("SchedulerPredicates [Serial]", func() { // Test Nodes does not have any label, hence it should be impossible to schedule Pod with // nonempty Selector set. - It("validates that NodeSelector is respected if not matching [Conformance]", func() { + /* + Testname: scheduler-node-selector-not-matching + Description: Ensure that scheduler respects the NodeSelector field of + PodSpec during scheduling (when it does not match any node). + */ + framework.ConformanceIt("validates that NodeSelector is respected if not matching ", func() { By("Trying to schedule Pod with nonempty NodeSelector.") podName := "restricted-pod" @@ -379,7 +389,12 @@ var _ = SIGDescribe("SchedulerPredicates [Serial]", func() { } }) - It("validates that NodeSelector is respected if matching [Conformance]", func() { + /* + Testname: scheduler-node-selector-matching + Description: Ensure that scheduler respects the NodeSelector field + of PodSpec during scheduling (when it matches). + */ + framework.ConformanceIt("validates that NodeSelector is respected if matching ", func() { nodeName := GetNodeThatCanRunPod(f) By("Trying to apply a random label on the found node.") @@ -577,6 +592,54 @@ var _ = SIGDescribe("SchedulerPredicates [Serial]", func() { WaitForSchedulerAfterAction(f, removeTaintFromNodeAction(cs, nodeName, testTaint), podNameNoTolerations, true) verifyResult(cs, 1, 0, ns) }) + + It("validates that there is no conflict between pods with same hostPort but different hostIP and protocol", func() { + + nodeName := GetNodeThatCanRunPod(f) + + // use nodeSelector to make sure the testing pods get assigned on the same node to explicitly verify there exists conflict or not + By("Trying to apply a random label on the found node.") + k := fmt.Sprintf("kubernetes.io/e2e-%s", string(uuid.NewUUID())) + v := "90" + + nodeSelector := make(map[string]string) + nodeSelector[k] = v + + framework.AddOrUpdateLabelOnNode(cs, nodeName, k, v) + framework.ExpectNodeHasLabel(cs, nodeName, k, v) + defer framework.RemoveLabelOffNode(cs, nodeName, k) + + By("Trying to create a pod(pod1) with hostport 80 and hostIP 127.0.0.1 and expect scheduled") + creatHostPortPodOnNode(f, "pod1", ns, "127.0.0.1", v1.ProtocolTCP, nodeSelector, true) + + By("Trying to create another pod(pod2) with hostport 80 but hostIP 127.0.0.2 on the node which pod1 resides and expect scheduled") + creatHostPortPodOnNode(f, "pod2", ns, "127.0.0.2", v1.ProtocolTCP, nodeSelector, true) + + By("Trying to create a third pod(pod3) with hostport 80, hostIP 127.0.0.2 but use UDP protocol on the node which pod2 resides") + creatHostPortPodOnNode(f, "pod3", ns, "127.0.0.2", v1.ProtocolUDP, nodeSelector, true) + }) + + It("validates that there exists conflict between pods with same hostPort and protocol but one using 0.0.0.0 hostIP", func() { + nodeName := GetNodeThatCanRunPod(f) + + // use nodeSelector to make sure the testing pods get assigned on the same node to explicitly verify there exists conflict or not + By("Trying to apply a random label on the found node.") + k := fmt.Sprintf("kubernetes.io/e2e-%s", string(uuid.NewUUID())) + v := "95" + + nodeSelector := make(map[string]string) + nodeSelector[k] = v + + framework.AddOrUpdateLabelOnNode(cs, nodeName, k, v) + framework.ExpectNodeHasLabel(cs, nodeName, k, v) + defer framework.RemoveLabelOffNode(cs, nodeName, k) + + By("Trying to create a pod(pod4) with hostport 80 and hostIP 0.0.0.0(empty string here) and expect scheduled") + creatHostPortPodOnNode(f, "pod4", ns, "", v1.ProtocolTCP, nodeSelector, true) + + By("Trying to create another pod(pod5) with hostport 80 but hostIP 127.0.0.1 on the node which pod4 resides and expect not scheduled") + creatHostPortPodOnNode(f, "pod5", ns, "127.0.0.1", v1.ProtocolTCP, nodeSelector, false) + }) }) func initPausePod(f *framework.Framework, conf pausePodConfig) *v1.Pod { @@ -767,3 +830,24 @@ func CreateHostPortPods(f *framework.Framework, id string, replicas int, expectR framework.ExpectNoError(err) } } + +// create pod which using hostport on the specified node according to the nodeSelector +func creatHostPortPodOnNode(f *framework.Framework, podName, ns, hostIP string, protocol v1.Protocol, nodeSelector map[string]string, expectScheduled bool) { + createPausePod(f, pausePodConfig{ + Name: podName, + Ports: []v1.ContainerPort{ + { + HostPort: 80, + ContainerPort: 80, + Protocol: protocol, + HostIP: hostIP, + }, + }, + NodeSelector: nodeSelector, + }) + + err := framework.WaitForPodNotPending(f.ClientSet, ns, podName) + if expectScheduled { + framework.ExpectNoError(err) + } +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/scheduling/rescheduler.go b/vendor/k8s.io/kubernetes/test/e2e/scheduling/rescheduler.go index 11353f947..512e8b3c6 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/scheduling/rescheduler.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scheduling/rescheduler.go @@ -61,7 +61,7 @@ var _ = SIGDescribe("Rescheduler [Serial]", func() { By("creating a new instance of Dashboard and waiting for Dashboard to be scheduled") label := labels.SelectorFromSet(labels.Set(map[string]string{"k8s-app": "kubernetes-dashboard"})) listOpts := metav1.ListOptions{LabelSelector: label.String()} - deployments, err := f.ClientSet.Extensions().Deployments(metav1.NamespaceSystem).List(listOpts) + deployments, err := f.ClientSet.ExtensionsV1beta1().Deployments(metav1.NamespaceSystem).List(listOpts) framework.ExpectNoError(err) Expect(len(deployments.Items)).Should(Equal(1)) diff --git a/vendor/k8s.io/kubernetes/test/e2e/resource_quota.go b/vendor/k8s.io/kubernetes/test/e2e/scheduling/resource_quota.go similarity index 79% rename from vendor/k8s.io/kubernetes/test/e2e/resource_quota.go rename to vendor/k8s.io/kubernetes/test/e2e/scheduling/resource_quota.go index 1a58a0705..21a02a689 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/resource_quota.go +++ b/vendor/k8s.io/kubernetes/test/e2e/scheduling/resource_quota.go @@ -14,13 +14,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package scheduling import ( "fmt" "time" "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -41,7 +42,84 @@ const ( var classGold string = "gold" -var _ = framework.KubeDescribe("ResourceQuota", func() { +var _ = SIGDescribe("ResourceQuota", func() { + f := framework.NewDefaultFramework("resourcequota") + + BeforeEach(func() { + // only run the tests when LocalStorageCapacityIsolation feature is enabled + framework.SkipUnlessLocalEphemeralStorageEnabled() + }) + + It("should create a ResourceQuota and capture the life of a pod.", func() { + By("Creating a ResourceQuota") + quotaName := "test-quota" + resourceQuota := newTestResourceQuotaForEphemeralStorage(quotaName) + resourceQuota, err := createResourceQuota(f.ClientSet, f.Namespace.Name, resourceQuota) + Expect(err).NotTo(HaveOccurred()) + + defer func() { + By("Removing resourceQuota") + err = deleteResourceQuota(f.ClientSet, f.Namespace.Name, resourceQuota.Name) + Expect(err).NotTo(HaveOccurred()) + }() + + By("Ensuring resource quota status is calculated") + usedResources := v1.ResourceList{} + usedResources[v1.ResourceQuotas] = resource.MustParse("1") + err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) + Expect(err).NotTo(HaveOccurred()) + + By("Creating a Pod that fits quota") + podName := "test-pod" + requests := v1.ResourceList{} + requests[v1.ResourceEphemeralStorage] = resource.MustParse("300Mi") + pod := newTestPodForQuota(f, podName, requests, v1.ResourceList{}) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).NotTo(HaveOccurred()) + podToUpdate := pod + + defer func() { + By("Deleting the pod") + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(pod.Name, metav1.NewDeleteOptions(0)) + Expect(err).NotTo(HaveOccurred()) + }() + + By("Ensuring ResourceQuota status captures the pod usage") + usedResources[v1.ResourceQuotas] = resource.MustParse("1") + usedResources[v1.ResourcePods] = resource.MustParse("1") + usedResources[v1.ResourceEphemeralStorage] = requests[v1.ResourceEphemeralStorage] + err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) + Expect(err).NotTo(HaveOccurred()) + + By("Not allowing a pod to be created that exceeds remaining quota") + requests = v1.ResourceList{} + requests[v1.ResourceEphemeralStorage] = resource.MustParse("300Mi") + pod = newTestPodForQuota(f, "fail-pod", requests, v1.ResourceList{}) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) + Expect(err).To(HaveOccurred()) + + By("Ensuring a pod cannot update its resource requirements") + // a pod cannot dynamically update its resource requirements. + requests = v1.ResourceList{} + requests[v1.ResourceEphemeralStorage] = resource.MustParse("100Mi") + podToUpdate.Spec.Containers[0].Resources.Requests = requests + _, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Update(podToUpdate) + Expect(err).To(HaveOccurred()) + + By("Ensuring attempts to update pod resource requirements did not change quota usage") + err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) + Expect(err).NotTo(HaveOccurred()) + + By("Ensuring resource quota status released the pod usage") + usedResources[v1.ResourceQuotas] = resource.MustParse("1") + usedResources[v1.ResourcePods] = resource.MustParse("0") + usedResources[v1.ResourceEphemeralStorage] = resource.MustParse("0") + err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) + Expect(err).NotTo(HaveOccurred()) + }) +}) + +var _ = SIGDescribe("ResourceQuota", func() { f := framework.NewDefaultFramework("resourcequota") It("should create a ResourceQuota and ensure its status is promptly calculated.", func() { @@ -73,7 +151,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { By("Creating a Service") service := newTestServiceForQuota("test-service", v1.ServiceTypeClusterIP) - service, err = f.ClientSet.Core().Services(f.Namespace.Name).Create(service) + service, err = f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(service) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status captures service creation") @@ -84,7 +162,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting a Service") - err = f.ClientSet.Core().Services(f.Namespace.Name).Delete(service.Name, nil) + err = f.ClientSet.CoreV1().Services(f.Namespace.Name).Delete(service.Name, nil) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released usage") @@ -97,7 +175,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { By("Discovering how many secrets are in namespace by default") found, unchanged := 0, 0 wait.Poll(1*time.Second, 30*time.Second, func() (bool, error) { - secrets, err := f.ClientSet.Core().Secrets(f.Namespace.Name).List(metav1.ListOptions{}) + secrets, err := f.ClientSet.CoreV1().Secrets(f.Namespace.Name).List(metav1.ListOptions{}) Expect(err).NotTo(HaveOccurred()) if len(secrets.Items) == found { // loop until the number of secrets has stabilized for 5 seconds @@ -127,7 +205,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { By("Creating a Secret") secret := newTestSecretForQuota("test-secret") - secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret) + secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status captures secret creation") @@ -139,7 +217,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting a secret") - err = f.ClientSet.Core().Secrets(f.Namespace.Name).Delete(secret.Name, nil) + err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Delete(secret.Name, nil) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released usage") @@ -168,12 +246,12 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { requests[v1.ResourceMemory] = resource.MustParse("252Mi") pod := newTestPodForQuota(f, podName, requests, v1.ResourceList{}) pod.Initializers = &metav1.Initializers{Pending: []metav1.Initializer{{Name: "unhandled"}}} - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) // because no one is handling the initializer, server will return a 504 timeout if err != nil && !errors.IsTimeout(err) { framework.Failf("expect err to be timeout error, got %v", err) } - createdPod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(podName, metav1.GetOptions{}) + createdPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(podName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) By("Ensuring only pod count is charged") @@ -215,7 +293,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting the pod") - err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(createdPod.Name, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(createdPod.Name, metav1.NewDeleteOptions(0)) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released the pod usage") @@ -233,12 +311,12 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { podName = "too-large-pod" pod = newTestPodForQuota(f, podName, requests, v1.ResourceList{}) pod.Initializers = &metav1.Initializers{Pending: []metav1.Initializer{{Name: "unhandled"}}} - _, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + _, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) // because no one is handling the initializer, server will return a 504 timeout if err != nil && !errors.IsTimeout(err) { framework.Failf("expect err to be timeout error, got %v", err) } - createdPod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Get(podName, metav1.GetOptions{}) + createdPod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(podName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) By("Ensuring only charges pod count") @@ -262,7 +340,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting the pod") - err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(createdPod.Name, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(createdPod.Name, metav1.NewDeleteOptions(0)) Expect(err).NotTo(HaveOccurred()) By("Ensuring ResourceQuota status doesn't change") @@ -293,7 +371,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { requests[v1.ResourceCPU] = resource.MustParse("500m") requests[v1.ResourceMemory] = resource.MustParse("252Mi") pod := newTestPodForQuota(f, podName, requests, v1.ResourceList{}) - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) Expect(err).NotTo(HaveOccurred()) podToUpdate := pod @@ -310,7 +388,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { requests[v1.ResourceCPU] = resource.MustParse("600m") requests[v1.ResourceMemory] = resource.MustParse("100Mi") pod = newTestPodForQuota(f, "fail-pod", requests, v1.ResourceList{}) - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) Expect(err).To(HaveOccurred()) By("Ensuring a pod cannot update its resource requirements") @@ -319,7 +397,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { requests[v1.ResourceCPU] = resource.MustParse("100m") requests[v1.ResourceMemory] = resource.MustParse("100Mi") podToUpdate.Spec.Containers[0].Resources.Requests = requests - _, err = f.ClientSet.Core().Pods(f.Namespace.Name).Update(podToUpdate) + _, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Update(podToUpdate) Expect(err).To(HaveOccurred()) By("Ensuring attempts to update pod resource requirements did not change quota usage") @@ -327,7 +405,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting the pod") - err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(podName, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(podName, metav1.NewDeleteOptions(0)) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released the pod usage") @@ -354,7 +432,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { By("Creating a ConfigMap") configMap := newTestConfigMapForQuota("test-configmap") - configMap, err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap) + configMap, err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status captures configMap creation") @@ -365,7 +443,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting a ConfigMap") - err = f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Delete(configMap.Name, nil) + err = f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Delete(configMap.Name, nil) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released usage") @@ -390,7 +468,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { By("Creating a ReplicationController") replicationController := newTestReplicationControllerForQuota("test-rc", "nginx", 0) - replicationController, err = f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Create(replicationController) + replicationController, err = f.ClientSet.CoreV1().ReplicationControllers(f.Namespace.Name).Create(replicationController) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status captures replication controller creation") @@ -400,7 +478,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting a ReplicationController") - err = f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Delete(replicationController.Name, nil) + err = f.ClientSet.CoreV1().ReplicationControllers(f.Namespace.Name).Delete(replicationController.Name, nil) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released usage") @@ -409,6 +487,41 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) }) + It("should create a ResourceQuota and capture the life of a replica set.", func() { + By("Creating a ResourceQuota") + quotaName := "test-quota" + resourceQuota := newTestResourceQuota(quotaName) + resourceQuota, err := createResourceQuota(f.ClientSet, f.Namespace.Name, resourceQuota) + Expect(err).NotTo(HaveOccurred()) + + By("Ensuring resource quota status is calculated") + usedResources := v1.ResourceList{} + usedResources[v1.ResourceQuotas] = resource.MustParse("1") + usedResources[v1.ResourceName("count/replicasets.extensions")] = resource.MustParse("0") + err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) + Expect(err).NotTo(HaveOccurred()) + + By("Creating a ReplicaSet") + replicaSet := newTestReplicaSetForQuota("test-rs", "nginx", 0) + replicaSet, err = f.ClientSet.Extensions().ReplicaSets(f.Namespace.Name).Create(replicaSet) + Expect(err).NotTo(HaveOccurred()) + + By("Ensuring resource quota status captures replicaset creation") + usedResources = v1.ResourceList{} + usedResources[v1.ResourceName("count/replicasets.extensions")] = resource.MustParse("1") + err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) + Expect(err).NotTo(HaveOccurred()) + + By("Deleting a ReplicaSet") + err = f.ClientSet.Extensions().ReplicaSets(f.Namespace.Name).Delete(replicaSet.Name, nil) + Expect(err).NotTo(HaveOccurred()) + + By("Ensuring resource quota status released usage") + usedResources[v1.ResourceName("count/replicasets.extensions")] = resource.MustParse("0") + err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) + Expect(err).NotTo(HaveOccurred()) + }) + It("should create a ResourceQuota and capture the life of a persistent volume claim. [sig-storage]", func() { By("Creating a ResourceQuota") quotaName := "test-quota" @@ -426,7 +539,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { By("Creating a PersistentVolumeClaim") pvc := newTestPersistentVolumeClaimForQuota("test-claim") - pvc, err = f.ClientSet.Core().PersistentVolumeClaims(f.Namespace.Name).Create(pvc) + pvc, err = f.ClientSet.CoreV1().PersistentVolumeClaims(f.Namespace.Name).Create(pvc) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status captures persistent volume claim creation") @@ -437,7 +550,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting a PersistentVolumeClaim") - err = f.ClientSet.Core().PersistentVolumeClaims(f.Namespace.Name).Delete(pvc.Name, nil) + err = f.ClientSet.CoreV1().PersistentVolumeClaims(f.Namespace.Name).Delete(pvc.Name, nil) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released usage") @@ -468,7 +581,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { By("Creating a PersistentVolumeClaim with storage class") pvc := newTestPersistentVolumeClaimForQuota("test-claim") pvc.Spec.StorageClassName = &classGold - pvc, err = f.ClientSet.Core().PersistentVolumeClaims(f.Namespace.Name).Create(pvc) + pvc, err = f.ClientSet.CoreV1().PersistentVolumeClaims(f.Namespace.Name).Create(pvc) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status captures persistent volume claim creation") @@ -482,7 +595,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting a PersistentVolumeClaim") - err = f.ClientSet.Core().PersistentVolumeClaims(f.Namespace.Name).Delete(pvc.Name, nil) + err = f.ClientSet.CoreV1().PersistentVolumeClaims(f.Namespace.Name).Delete(pvc.Name, nil) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released usage") @@ -525,7 +638,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { limits[v1.ResourceCPU] = resource.MustParse("1") limits[v1.ResourceMemory] = resource.MustParse("400Mi") pod := newTestPodForQuota(f, podName, requests, limits) - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota with not terminating scope captures the pod usage") @@ -547,7 +660,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting the pod") - err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(podName, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(podName, metav1.NewDeleteOptions(0)) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released the pod usage") @@ -564,7 +677,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { pod = newTestPodForQuota(f, podName, requests, limits) activeDeadlineSeconds := int64(3600) pod.Spec.ActiveDeadlineSeconds = &activeDeadlineSeconds - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota with terminating scope captures the pod usage") @@ -586,7 +699,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting the pod") - err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(podName, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(podName, metav1.NewDeleteOptions(0)) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released the pod usage") @@ -620,7 +733,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { By("Creating a best-effort pod") pod := newTestPodForQuota(f, podName, v1.ResourceList{}, v1.ResourceList{}) - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota with best effort scope captures the pod usage") @@ -634,7 +747,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting the pod") - err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(pod.Name, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(pod.Name, metav1.NewDeleteOptions(0)) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released the pod usage") @@ -650,7 +763,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { limits[v1.ResourceCPU] = resource.MustParse("1") limits[v1.ResourceMemory] = resource.MustParse("400Mi") pod = newTestPodForQuota(f, "burstable-pod", requests, limits) - pod, err = f.ClientSet.Core().Pods(f.Namespace.Name).Create(pod) + pod, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota with not best effort scope captures the pod usage") @@ -664,7 +777,7 @@ var _ = framework.KubeDescribe("ResourceQuota", func() { Expect(err).NotTo(HaveOccurred()) By("Deleting the pod") - err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(pod.Name, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(pod.Name, metav1.NewDeleteOptions(0)) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status released the pod usage") @@ -691,6 +804,16 @@ func newTestResourceQuotaWithScope(name string, scope v1.ResourceQuotaScope) *v1 } } +// newTestResourceQuotaForEphemeralStorage returns a quota that enforces default constraints for testing alpha feature LocalStorageCapacityIsolation +func newTestResourceQuotaForEphemeralStorage(name string) *v1.ResourceQuota { + hard := v1.ResourceList{} + hard[v1.ResourceEphemeralStorage] = resource.MustParse("500Mi") + return &v1.ResourceQuota{ + ObjectMeta: metav1.ObjectMeta{Name: name}, + Spec: v1.ResourceQuotaSpec{Hard: hard}, + } +} + // newTestResourceQuota returns a quota that enforces default constraints for testing func newTestResourceQuota(name string) *v1.ResourceQuota { hard := v1.ResourceList{} @@ -708,6 +831,8 @@ func newTestResourceQuota(name string) *v1.ResourceQuota { hard[v1.ResourceRequestsStorage] = resource.MustParse("10Gi") hard[core.V1ResourceByStorageClass(classGold, v1.ResourcePersistentVolumeClaims)] = resource.MustParse("10") hard[core.V1ResourceByStorageClass(classGold, v1.ResourceRequestsStorage)] = resource.MustParse("10Gi") + // test quota on discovered resource type + hard[v1.ResourceName("count/replicasets.extensions")] = resource.MustParse("5") return &v1.ResourceQuota{ ObjectMeta: metav1.ObjectMeta{Name: name}, Spec: v1.ResourceQuotaSpec{Hard: hard}, @@ -784,6 +909,33 @@ func newTestReplicationControllerForQuota(name, image string, replicas int32) *v } } +// newTestReplicaSetForQuota returns a simple replica set +func newTestReplicaSetForQuota(name, image string, replicas int32) *extensions.ReplicaSet { + zero := int64(0) + return &extensions.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + Spec: extensions.ReplicaSetSpec{ + Replicas: &replicas, + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{"name": name}, + }, + Spec: v1.PodSpec{ + TerminationGracePeriodSeconds: &zero, + Containers: []v1.Container{ + { + Name: name, + Image: image, + }, + }, + }, + }, + }, + } +} + // newTestServiceForQuota returns a simple service func newTestServiceForQuota(name string, serviceType v1.ServiceType) *v1.Service { return &v1.Service{ @@ -826,18 +978,18 @@ func newTestSecretForQuota(name string) *v1.Secret { // createResourceQuota in the specified namespace func createResourceQuota(c clientset.Interface, namespace string, resourceQuota *v1.ResourceQuota) (*v1.ResourceQuota, error) { - return c.Core().ResourceQuotas(namespace).Create(resourceQuota) + return c.CoreV1().ResourceQuotas(namespace).Create(resourceQuota) } // deleteResourceQuota with the specified name func deleteResourceQuota(c clientset.Interface, namespace, name string) error { - return c.Core().ResourceQuotas(namespace).Delete(name, nil) + return c.CoreV1().ResourceQuotas(namespace).Delete(name, nil) } // wait for resource quota status to show the expected used resources value func waitForResourceQuota(c clientset.Interface, ns, quotaName string, used v1.ResourceList) error { return wait.Poll(framework.Poll, resourceQuotaTimeout, func() (bool, error) { - resourceQuota, err := c.Core().ResourceQuotas(ns).Get(quotaName, metav1.GetOptions{}) + resourceQuota, err := c.CoreV1().ResourceQuotas(ns).Get(quotaName, metav1.GetOptions{}) if err != nil { return false, err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/servicecatalog/podpreset.go b/vendor/k8s.io/kubernetes/test/e2e/servicecatalog/podpreset.go index f827331ca..f7488b994 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/servicecatalog/podpreset.go +++ b/vendor/k8s.io/kubernetes/test/e2e/servicecatalog/podpreset.go @@ -266,17 +266,17 @@ var _ = SIGDescribe("[Feature:PodPreset] PodPreset", func() { }) func getPodPreset(c clientset.Interface, ns, name string) (*settings.PodPreset, error) { - return c.Settings().PodPresets(ns).Get(name, metav1.GetOptions{}) + return c.SettingsV1alpha1().PodPresets(ns).Get(name, metav1.GetOptions{}) } func createPodPreset(c clientset.Interface, ns string, job *settings.PodPreset) (*settings.PodPreset, error) { - return c.Settings().PodPresets(ns).Create(job) + return c.SettingsV1alpha1().PodPresets(ns).Create(job) } func updatePodPreset(c clientset.Interface, ns string, job *settings.PodPreset) (*settings.PodPreset, error) { - return c.Settings().PodPresets(ns).Update(job) + return c.SettingsV1alpha1().PodPresets(ns).Update(job) } func deletePodPreset(c clientset.Interface, ns, name string) error { - return c.Settings().PodPresets(ns).Delete(name, nil) + return c.SettingsV1alpha1().PodPresets(ns).Delete(name, nil) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/BUILD b/vendor/k8s.io/kubernetes/test/e2e/storage/BUILD index 7f173a8dd..5071d682e 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/BUILD @@ -23,20 +23,26 @@ go_library( "volume_metrics.go", "volume_provisioning.go", "volumes.go", + "vsphere_scale.go", + "vsphere_statefulsets.go", + "vsphere_stress.go", "vsphere_utils.go", "vsphere_volume_cluster_ds.go", "vsphere_volume_datastore.go", "vsphere_volume_diskformat.go", "vsphere_volume_disksize.go", "vsphere_volume_fstype.go", + "vsphere_volume_master_restart.go", + "vsphere_volume_node_poweroff.go", "vsphere_volume_ops_storm.go", + "vsphere_volume_perf.go", "vsphere_volume_placement.go", "vsphere_volume_vsan_policy.go", ], importpath = "k8s.io/kubernetes/test/e2e/storage", deps = [ "//pkg/api/testapi:go_default_library", - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/apis/storage/v1/util:go_default_library", "//pkg/cloudprovider/providers/vsphere:go_default_library", "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", @@ -58,6 +64,8 @@ go_library( "//vendor/google.golang.org/api/googleapi:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/api/storage/v1:go_default_library", "//vendor/k8s.io/api/storage/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/storage/OWNERS index 45f72363b..46424783f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/OWNERS +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/OWNERS @@ -14,3 +14,5 @@ reviewers: - msau42 - jeffvance - copejon +- verult +- davidz627 diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/empty_dir_wrapper.go b/vendor/k8s.io/kubernetes/test/e2e/storage/empty_dir_wrapper.go index 2a3961101..653c2a0f9 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/empty_dir_wrapper.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/empty_dir_wrapper.go @@ -70,7 +70,7 @@ var _ = SIGDescribe("EmptyDir wrapper volumes", func() { } var err error - if secret, err = f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret); err != nil { + if secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret); err != nil { framework.Failf("unable to create test secret %s: %v", secret.Name, err) } @@ -126,11 +126,11 @@ var _ = SIGDescribe("EmptyDir wrapper volumes", func() { defer func() { By("Cleaning up the secret") - if err := f.ClientSet.Core().Secrets(f.Namespace.Name).Delete(secret.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Delete(secret.Name, nil); err != nil { framework.Failf("unable to delete secret %v: %v", secret.Name, err) } By("Cleaning up the git vol pod") - if err = f.ClientSet.Core().Pods(f.Namespace.Name).Delete(pod.Name, metav1.NewDeleteOptions(0)); err != nil { + if err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(pod.Name, metav1.NewDeleteOptions(0)); err != nil { framework.Failf("unable to delete git vol pod %v: %v", pod.Name, err) } }() @@ -218,17 +218,17 @@ func createGitServer(f *framework.Framework) (gitURL string, gitRepo string, cle }, } - if gitServerSvc, err = f.ClientSet.Core().Services(f.Namespace.Name).Create(gitServerSvc); err != nil { + if gitServerSvc, err = f.ClientSet.CoreV1().Services(f.Namespace.Name).Create(gitServerSvc); err != nil { framework.Failf("unable to create test git server service %s: %v", gitServerSvc.Name, err) } return "http://" + gitServerSvc.Spec.ClusterIP + ":" + strconv.Itoa(httpPort), "test", func() { By("Cleaning up the git server pod") - if err := f.ClientSet.Core().Pods(f.Namespace.Name).Delete(gitServerPod.Name, metav1.NewDeleteOptions(0)); err != nil { + if err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Delete(gitServerPod.Name, metav1.NewDeleteOptions(0)); err != nil { framework.Failf("unable to delete git server pod %v: %v", gitServerPod.Name, err) } By("Cleaning up the git server svc") - if err := f.ClientSet.Core().Services(f.Namespace.Name).Delete(gitServerSvc.Name, nil); err != nil { + if err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Delete(gitServerSvc.Name, nil); err != nil { framework.Failf("unable to delete git server svc %v: %v", gitServerSvc.Name, err) } } @@ -268,7 +268,7 @@ func createConfigmapsForRace(f *framework.Framework) (configMapNames []string) { "data-1": "value-1", }, } - _, err := f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Create(configMap) + _, err := f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Create(configMap) framework.ExpectNoError(err) } return @@ -277,7 +277,7 @@ func createConfigmapsForRace(f *framework.Framework) (configMapNames []string) { func deleteConfigMaps(f *framework.Framework, configMapNames []string) { By("Cleaning up the configMaps") for _, configMapName := range configMapNames { - err := f.ClientSet.Core().ConfigMaps(f.Namespace.Name).Delete(configMapName, nil) + err := f.ClientSet.CoreV1().ConfigMaps(f.Namespace.Name).Delete(configMapName, nil) Expect(err).NotTo(HaveOccurred(), "unable to delete configMap %v", configMapName) } } @@ -351,7 +351,7 @@ func testNoWrappedVolumeRace(f *framework.Framework, volumes []v1.Volume, volume Containers: []v1.Container{ { Name: "test-container", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"sleep", "10000"}, Resources: v1.ResourceRequirements{ Requests: v1.ResourceList{ @@ -368,7 +368,7 @@ func testNoWrappedVolumeRace(f *framework.Framework, volumes []v1.Volume, volume }, }, } - _, err := f.ClientSet.Core().ReplicationControllers(f.Namespace.Name).Create(rc) + _, err := f.ClientSet.CoreV1().ReplicationControllers(f.Namespace.Name).Create(rc) Expect(err).NotTo(HaveOccurred(), "error creating replication controller") defer func() { diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/flexvolume.go b/vendor/k8s.io/kubernetes/test/e2e/storage/flexvolume.go index f8e96613e..862c692c2 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/flexvolume.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/flexvolume.go @@ -43,7 +43,7 @@ const ( // testFlexVolume tests that a client pod using a given flexvolume driver // successfully mounts it and runs -func testFlexVolume(driver string, cs clientset.Interface, config framework.VolumeTestConfig, f *framework.Framework, clean bool) { +func testFlexVolume(driver string, cs clientset.Interface, config framework.VolumeTestConfig, f *framework.Framework) { tests := []framework.VolumeTest{ { Volume: v1.VolumeSource{ @@ -58,9 +58,7 @@ func testFlexVolume(driver string, cs clientset.Interface, config framework.Volu } framework.TestVolumeClient(cs, config, nil, tests) - if clean { - framework.VolumeTestCleanup(f, config) - } + framework.VolumeTestCleanup(f, config) } // installFlex installs the driver found at filePath on the node, and restarts @@ -141,9 +139,7 @@ func sshAndLog(cmd, host string) { var _ = SIGDescribe("Flexvolumes [Disruptive] [Feature:FlexVolume]", func() { f := framework.NewDefaultFramework("flexvolume") - // If 'false', the test won't clear its volumes upon completion. Useful for debugging, // note that namespace deletion is handled by delete-namespace flag - clean := true var cs clientset.Interface var ns *v1.Namespace @@ -176,7 +172,7 @@ var _ = SIGDescribe("Flexvolumes [Disruptive] [Feature:FlexVolume]", func() { By(fmt.Sprintf("installing flexvolume %s on node %s as %s", path.Join(driverDir, driver), node.Name, driverInstallAs)) installFlex(&node, "k8s", driverInstallAs, path.Join(driverDir, driver), true /* restart */) - testFlexVolume(driverInstallAs, cs, config, f, clean) + testFlexVolume(driverInstallAs, cs, config, f) By("waiting for flex client pod to terminate") if err := f.WaitForPodTerminated(config.Prefix+"-client", ""); !apierrs.IsNotFound(err) { @@ -196,7 +192,7 @@ var _ = SIGDescribe("Flexvolumes [Disruptive] [Feature:FlexVolume]", func() { By(fmt.Sprintf("installing flexvolume %s on master as %s", path.Join(driverDir, driver), driverInstallAs)) installFlex(nil, "k8s", driverInstallAs, path.Join(driverDir, driver), true /* restart */) - testFlexVolume(driverInstallAs, cs, config, f, clean) + testFlexVolume(driverInstallAs, cs, config, f) By("waiting for flex client pod to terminate") if err := f.WaitForPodTerminated(config.Prefix+"-client", ""); !apierrs.IsNotFound(err) { @@ -216,7 +212,7 @@ var _ = SIGDescribe("Flexvolumes [Disruptive] [Feature:FlexVolume]", func() { By(fmt.Sprintf("installing flexvolume %s on node %s as %s", path.Join(driverDir, driver), node.Name, driverInstallAs)) installFlex(&node, "k8s", driverInstallAs, path.Join(driverDir, driver), false /* restart */) - testFlexVolume(driverInstallAs, cs, config, f, clean) + testFlexVolume(driverInstallAs, cs, config, f) By("waiting for flex client pod to terminate") if err := f.WaitForPodTerminated(config.Prefix+"-client", ""); !apierrs.IsNotFound(err) { diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/pd.go b/vendor/k8s.io/kubernetes/test/e2e/storage/pd.go index 5885f7c4d..b7bfb583a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/pd.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/pd.go @@ -30,14 +30,16 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "k8s.io/api/core/v1" + policy "k8s.io/api/policy/v1beta1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/uuid" + "k8s.io/apimachinery/pkg/util/wait" + clientset "k8s.io/client-go/kubernetes" v1core "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/test/e2e/framework" - imageutils "k8s.io/kubernetes/test/utils/image" ) const ( @@ -45,11 +47,15 @@ const ( gcePDDetachPollTime = 10 * time.Second nodeStatusTimeout = 10 * time.Minute nodeStatusPollTime = 1 * time.Second + podEvictTimeout = 2 * time.Minute maxReadRetry = 3 + minNodes = 2 ) var _ = SIGDescribe("Pod Disks", func() { var ( + ns string + cs clientset.Interface podClient v1core.PodInterface nodeClient v1core.NodeInterface host0Name types.NodeName @@ -59,467 +65,368 @@ var _ = SIGDescribe("Pod Disks", func() { f := framework.NewDefaultFramework("pod-disks") BeforeEach(func() { - framework.SkipUnlessNodeCountIsAtLeast(2) - - podClient = f.ClientSet.Core().Pods(f.Namespace.Name) - nodeClient = f.ClientSet.Core().Nodes() - nodes = framework.GetReadySchedulableNodesOrDie(f.ClientSet) - - Expect(len(nodes.Items)).To(BeNumerically(">=", 2), "Requires at least 2 nodes") - + framework.SkipUnlessNodeCountIsAtLeast(minNodes) + cs = f.ClientSet + ns = f.Namespace.Name + + podClient = cs.CoreV1().Pods(ns) + nodeClient = cs.CoreV1().Nodes() + nodes = framework.GetReadySchedulableNodesOrDie(cs) + Expect(len(nodes.Items)).To(BeNumerically(">=", minNodes), fmt.Sprintf("Requires at least %d nodes", minNodes)) host0Name = types.NodeName(nodes.Items[0].ObjectMeta.Name) host1Name = types.NodeName(nodes.Items[1].ObjectMeta.Name) mathrand.Seed(time.Now().UTC().UnixNano()) }) - It("should schedule a pod w/ a RW PD, ungracefully remove it, then schedule it on another host [Slow]", func() { - framework.SkipUnlessProviderIs("gce", "gke", "aws") - - By("creating PD") - diskName, err := framework.CreatePDWithRetry() - framework.ExpectNoError(err, "Error creating PD") - - host0Pod := testPDPod([]string{diskName}, host0Name, false /* readOnly */, 1 /* numContainers */) - host1Pod := testPDPod([]string{diskName}, host1Name, false /* readOnly */, 1 /* numContainers */) - containerName := "mycontainer" - - defer func() { - // Teardown pods, PD. Ignore errors. - // Teardown should do nothing unless test failed. - By("cleaning up PD-RW test environment") - podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)) - podClient.Delete(host1Pod.Name, metav1.NewDeleteOptions(0)) - detachAndDeletePDs(diskName, []types.NodeName{host0Name, host1Name}) - }() - - By("submitting host0Pod to kubernetes") - _, err = podClient.Create(host0Pod) - framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0Pod: %v", err)) - - framework.ExpectNoError(f.WaitForPodRunningSlow(host0Pod.Name)) - - testFile := "/testpd1/tracker" - testFileContents := fmt.Sprintf("%v", mathrand.Int()) - - framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFile, testFileContents)) - framework.Logf("Wrote value: %v", testFileContents) - - // Verify that disk shows up for in node 1's VolumeInUse list - framework.ExpectNoError(waitForPDInVolumesInUse(nodeClient, diskName, host0Name, nodeStatusTimeout, true /* shouldExist */)) - - By("deleting host0Pod") - // Delete pod with 0 grace period - framework.ExpectNoError(podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)), "Failed to delete host0Pod") - - By("submitting host1Pod to kubernetes") - _, err = podClient.Create(host1Pod) - framework.ExpectNoError(err, "Failed to create host1Pod") - - framework.ExpectNoError(f.WaitForPodRunningSlow(host1Pod.Name)) - - verifyPDContentsViaContainer(f, host1Pod.Name, containerName, map[string]string{testFile: testFileContents}) - - // Verify that disk is removed from node 1's VolumeInUse list - framework.ExpectNoError(waitForPDInVolumesInUse(nodeClient, diskName, host0Name, nodeStatusTimeout, false /* shouldExist */)) - - By("deleting host1Pod") - framework.ExpectNoError(podClient.Delete(host1Pod.Name, metav1.NewDeleteOptions(0)), "Failed to delete host1Pod") - - By("Test completed successfully, waiting for PD to safely detach") - waitForPDDetach(diskName, host0Name) - waitForPDDetach(diskName, host1Name) - - return - }) - - It("Should schedule a pod w/ a RW PD, gracefully remove it, then schedule it on another host [Slow]", func() { - framework.SkipUnlessProviderIs("gce", "gke", "aws") - - By("creating PD") - diskName, err := framework.CreatePDWithRetry() - framework.ExpectNoError(err, "Error creating PD") - - host0Pod := testPDPod([]string{diskName}, host0Name, false /* readOnly */, 1 /* numContainers */) - host1Pod := testPDPod([]string{diskName}, host1Name, false /* readOnly */, 1 /* numContainers */) - containerName := "mycontainer" - - defer func() { - // Teardown pods, PD. Ignore errors. - // Teardown should do nothing unless test failed. - By("cleaning up PD-RW test environment") - podClient.Delete(host0Pod.Name, &metav1.DeleteOptions{}) - podClient.Delete(host1Pod.Name, &metav1.DeleteOptions{}) - detachAndDeletePDs(diskName, []types.NodeName{host0Name, host1Name}) - }() - - By("submitting host0Pod to kubernetes") - _, err = podClient.Create(host0Pod) - framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0Pod: %v", err)) - - framework.ExpectNoError(f.WaitForPodRunningSlow(host0Pod.Name)) - - testFile := "/testpd1/tracker" - testFileContents := fmt.Sprintf("%v", mathrand.Int()) - - framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFile, testFileContents)) - framework.Logf("Wrote value: %v", testFileContents) - - // Verify that disk shows up for in node 1's VolumeInUse list - framework.ExpectNoError(waitForPDInVolumesInUse(nodeClient, diskName, host0Name, nodeStatusTimeout, true /* shouldExist */)) - - By("deleting host0Pod") - // Delete pod with default grace period 30s - framework.ExpectNoError(podClient.Delete(host0Pod.Name, &metav1.DeleteOptions{}), "Failed to delete host0Pod") - - By("submitting host1Pod to kubernetes") - _, err = podClient.Create(host1Pod) - framework.ExpectNoError(err, "Failed to create host1Pod") - - framework.ExpectNoError(f.WaitForPodRunningSlow(host1Pod.Name)) - - verifyPDContentsViaContainer(f, host1Pod.Name, containerName, map[string]string{testFile: testFileContents}) - - // Verify that disk is removed from node 1's VolumeInUse list - framework.ExpectNoError(waitForPDInVolumesInUse(nodeClient, diskName, host0Name, nodeStatusTimeout, false /* shouldExist */)) - - By("deleting host1Pod") - framework.ExpectNoError(podClient.Delete(host1Pod.Name, &metav1.DeleteOptions{}), "Failed to delete host1Pod") - - By("Test completed successfully, waiting for PD to safely detach") - waitForPDDetach(diskName, host0Name) - waitForPDDetach(diskName, host1Name) - - return - }) - - It("should schedule a pod w/ a readonly PD on two hosts, then remove both ungracefully. [Slow]", func() { - framework.SkipUnlessProviderIs("gce", "gke") - - By("creating PD") - diskName, err := framework.CreatePDWithRetry() - framework.ExpectNoError(err, "Error creating PD") - - rwPod := testPDPod([]string{diskName}, host0Name, false /* readOnly */, 1 /* numContainers */) - host0ROPod := testPDPod([]string{diskName}, host0Name, true /* readOnly */, 1 /* numContainers */) - host1ROPod := testPDPod([]string{diskName}, host1Name, true /* readOnly */, 1 /* numContainers */) - - defer func() { - By("cleaning up PD-RO test environment") - // Teardown pods, PD. Ignore errors. - // Teardown should do nothing unless test failed. - podClient.Delete(rwPod.Name, metav1.NewDeleteOptions(0)) - podClient.Delete(host0ROPod.Name, metav1.NewDeleteOptions(0)) - podClient.Delete(host1ROPod.Name, metav1.NewDeleteOptions(0)) - detachAndDeletePDs(diskName, []types.NodeName{host0Name, host1Name}) - }() - - By("submitting rwPod to ensure PD is formatted") - _, err = podClient.Create(rwPod) - framework.ExpectNoError(err, "Failed to create rwPod") - framework.ExpectNoError(f.WaitForPodRunningSlow(rwPod.Name)) - // Delete pod with 0 grace period - framework.ExpectNoError(podClient.Delete(rwPod.Name, metav1.NewDeleteOptions(0)), "Failed to delete host0Pod") - framework.ExpectNoError(waitForPDDetach(diskName, host0Name)) - - By("submitting host0ROPod to kubernetes") - _, err = podClient.Create(host0ROPod) - framework.ExpectNoError(err, "Failed to create host0ROPod") - - By("submitting host1ROPod to kubernetes") - _, err = podClient.Create(host1ROPod) - framework.ExpectNoError(err, "Failed to create host1ROPod") - - framework.ExpectNoError(f.WaitForPodRunningSlow(host0ROPod.Name)) - - framework.ExpectNoError(f.WaitForPodRunningSlow(host1ROPod.Name)) - - By("deleting host0ROPod") - framework.ExpectNoError(podClient.Delete(host0ROPod.Name, metav1.NewDeleteOptions(0)), "Failed to delete host0ROPod") - - By("deleting host1ROPod") - framework.ExpectNoError(podClient.Delete(host1ROPod.Name, metav1.NewDeleteOptions(0)), "Failed to delete host1ROPod") - - By("Test completed successfully, waiting for PD to safely detach") - waitForPDDetach(diskName, host0Name) - waitForPDDetach(diskName, host1Name) - }) - - It("Should schedule a pod w/ a readonly PD on two hosts, then remove both gracefully. [Slow]", func() { - framework.SkipUnlessProviderIs("gce", "gke") - - By("creating PD") - diskName, err := framework.CreatePDWithRetry() - framework.ExpectNoError(err, "Error creating PD") - - rwPod := testPDPod([]string{diskName}, host0Name, false /* readOnly */, 1 /* numContainers */) - host0ROPod := testPDPod([]string{diskName}, host0Name, true /* readOnly */, 1 /* numContainers */) - host1ROPod := testPDPod([]string{diskName}, host1Name, true /* readOnly */, 1 /* numContainers */) - - defer func() { - By("cleaning up PD-RO test environment") - // Teardown pods, PD. Ignore errors. - // Teardown should do nothing unless test failed. - podClient.Delete(rwPod.Name, &metav1.DeleteOptions{}) - podClient.Delete(host0ROPod.Name, &metav1.DeleteOptions{}) - podClient.Delete(host1ROPod.Name, &metav1.DeleteOptions{}) - detachAndDeletePDs(diskName, []types.NodeName{host0Name, host1Name}) - }() - - By("submitting rwPod to ensure PD is formatted") - _, err = podClient.Create(rwPod) - framework.ExpectNoError(err, "Failed to create rwPod") - framework.ExpectNoError(f.WaitForPodRunningSlow(rwPod.Name)) - // Delete pod with default grace period 30s - framework.ExpectNoError(podClient.Delete(rwPod.Name, &metav1.DeleteOptions{}), "Failed to delete host0Pod") - framework.ExpectNoError(waitForPDDetach(diskName, host0Name)) + Context("schedule pods each with a PD, delete pod and verify detach [Slow]", func() { + const ( + podDefaultGrace = "default (30s)" + podImmediateGrace = "immediate (0s)" + ) + var readOnlyMap = map[bool]string{ + true: "read-only", + false: "RW", + } + type testT struct { + descr string // It description + readOnly bool // true means pd is read-only + deleteOpt *metav1.DeleteOptions // pod delete option + } + tests := []testT{ + { + descr: podImmediateGrace, + readOnly: false, + deleteOpt: metav1.NewDeleteOptions(0), + }, + { + descr: podDefaultGrace, + readOnly: false, + deleteOpt: &metav1.DeleteOptions{}, + }, + { + descr: podImmediateGrace, + readOnly: true, + deleteOpt: metav1.NewDeleteOptions(0), + }, + { + descr: podDefaultGrace, + readOnly: true, + deleteOpt: &metav1.DeleteOptions{}, + }, + } - By("submitting host0ROPod to kubernetes") - _, err = podClient.Create(host0ROPod) - framework.ExpectNoError(err, "Failed to create host0ROPod") + for _, t := range tests { + podDelOpt := t.deleteOpt + readOnly := t.readOnly + readOnlyTxt := readOnlyMap[readOnly] - By("submitting host1ROPod to kubernetes") - _, err = podClient.Create(host1ROPod) - framework.ExpectNoError(err, "Failed to create host1ROPod") + It(fmt.Sprintf("for %s PD with pod delete grace period of %q", readOnlyTxt, t.descr), func() { + framework.SkipUnlessProviderIs("gce", "gke", "aws") + if readOnly { + framework.SkipIfProviderIs("aws") + } - framework.ExpectNoError(f.WaitForPodRunningSlow(host0ROPod.Name)) + By("creating PD") + diskName, err := framework.CreatePDWithRetry() + framework.ExpectNoError(err, "Error creating PD") + + var fmtPod *v1.Pod + if readOnly { + // if all test pods are RO then need a RW pod to format pd + By("creating RW fmt Pod to ensure PD is formatted") + fmtPod = testPDPod([]string{diskName}, host0Name, false, 1) + _, err = podClient.Create(fmtPod) + framework.ExpectNoError(err, "Failed to create fmtPod") + framework.ExpectNoError(f.WaitForPodRunningSlow(fmtPod.Name)) + + By("deleting the fmtPod") + framework.ExpectNoError(podClient.Delete(fmtPod.Name, metav1.NewDeleteOptions(0)), "Failed to delete fmtPod") + framework.Logf("deleted fmtPod %q", fmtPod.Name) + By("waiting for PD to detach") + framework.ExpectNoError(waitForPDDetach(diskName, host0Name)) + } - framework.ExpectNoError(f.WaitForPodRunningSlow(host1ROPod.Name)) + // prepare to create two test pods on separate nodes + host0Pod := testPDPod([]string{diskName}, host0Name, readOnly, 1) + host1Pod := testPDPod([]string{diskName}, host1Name, readOnly, 1) + + defer func() { + // Teardown should do nothing unless test failed + By("defer: cleaning up PD-RW test environment") + framework.Logf("defer cleanup errors can usually be ignored") + if fmtPod != nil { + podClient.Delete(fmtPod.Name, podDelOpt) + } + podClient.Delete(host0Pod.Name, podDelOpt) + podClient.Delete(host1Pod.Name, podDelOpt) + detachAndDeletePDs(diskName, []types.NodeName{host0Name, host1Name}) + }() + + By("creating host0Pod on node0") + _, err = podClient.Create(host0Pod) + framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0Pod: %v", err)) + framework.ExpectNoError(f.WaitForPodRunningSlow(host0Pod.Name)) + framework.Logf("host0Pod: %q, node0: %q", host0Pod.Name, host0Name) + + var containerName, testFile, testFileContents string + if !readOnly { + By("writing content to host0Pod on node0") + containerName = "mycontainer" + testFile = "/testpd1/tracker" + testFileContents = fmt.Sprintf("%v", mathrand.Int()) + framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFile, testFileContents)) + framework.Logf("wrote %q to file %q in pod %q on node %q", testFileContents, testFile, host0Pod.Name, host0Name) + By("verifying PD is present in node0's VolumeInUse list") + framework.ExpectNoError(waitForPDInVolumesInUse(nodeClient, diskName, host0Name, nodeStatusTimeout, true /* shouldExist */)) + By("deleting host0Pod") // delete this pod before creating next pod + framework.ExpectNoError(podClient.Delete(host0Pod.Name, podDelOpt), "Failed to delete host0Pod") + framework.Logf("deleted host0Pod %q", host0Pod.Name) + } - By("deleting host0ROPod") - framework.ExpectNoError(podClient.Delete(host0ROPod.Name, &metav1.DeleteOptions{}), "Failed to delete host0ROPod") + By("creating host1Pod on node1") + _, err = podClient.Create(host1Pod) + framework.ExpectNoError(err, "Failed to create host1Pod") + framework.ExpectNoError(f.WaitForPodRunningSlow(host1Pod.Name)) + framework.Logf("host1Pod: %q, node1: %q", host1Pod.Name, host1Name) + + if readOnly { + By("deleting host0Pod") + framework.ExpectNoError(podClient.Delete(host0Pod.Name, podDelOpt), "Failed to delete host0Pod") + framework.Logf("deleted host0Pod %q", host0Pod.Name) + } else { + By("verifying PD contents in host1Pod") + verifyPDContentsViaContainer(f, host1Pod.Name, containerName, map[string]string{testFile: testFileContents}) + framework.Logf("verified PD contents in pod %q", host1Pod.Name) + By("verifying PD is removed from node0") + framework.ExpectNoError(waitForPDInVolumesInUse(nodeClient, diskName, host0Name, nodeStatusTimeout, false /* shouldExist */)) + framework.Logf("PD %q removed from node %q's VolumeInUse list", diskName, host1Pod.Name) + } - By("deleting host1ROPod") - framework.ExpectNoError(podClient.Delete(host1ROPod.Name, &metav1.DeleteOptions{}), "Failed to delete host1ROPod") + By("deleting host1Pod") + framework.ExpectNoError(podClient.Delete(host1Pod.Name, podDelOpt), "Failed to delete host1Pod") + framework.Logf("deleted host1Pod %q", host1Pod.Name) - By("Test completed successfully, waiting for PD to safely detach") - waitForPDDetach(diskName, host0Name) - waitForPDDetach(diskName, host1Name) + By("Test completed successfully, waiting for PD to detach from both nodes") + waitForPDDetach(diskName, host0Name) + waitForPDDetach(diskName, host1Name) + }) + } }) - It("should schedule a pod w/ a RW PD shared between multiple containers, write to PD, delete pod, verify contents, and repeat in rapid succession [Slow]", func() { - framework.SkipUnlessProviderIs("gce", "gke", "aws") - - By("creating PD") - diskName, err := framework.CreatePDWithRetry() - framework.ExpectNoError(err, "Error creating PD") - numContainers := 4 - var host0Pod *v1.Pod - - defer func() { - By("cleaning up PD-RW test environment") - // Teardown pods, PD. Ignore errors. - // Teardown should do nothing unless test failed. - if host0Pod != nil { - podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)) - } - detachAndDeletePDs(diskName, []types.NodeName{host0Name}) - }() - - fileAndContentToVerify := make(map[string]string) - for i := 0; i < 3; i++ { - framework.Logf("PD Read/Writer Iteration #%v", i) - By("submitting host0Pod to kubernetes") - host0Pod = testPDPod([]string{diskName}, host0Name, false /* readOnly */, numContainers) - _, err = podClient.Create(host0Pod) - framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0Pod: %v", err)) - - framework.ExpectNoError(f.WaitForPodRunningSlow(host0Pod.Name)) - - // randomly select a container and read/verify pd contents from it - containerName := fmt.Sprintf("mycontainer%v", mathrand.Intn(numContainers)+1) - verifyPDContentsViaContainer(f, host0Pod.Name, containerName, fileAndContentToVerify) - - // Randomly select a container to write a file to PD from - containerName = fmt.Sprintf("mycontainer%v", mathrand.Intn(numContainers)+1) - testFile := fmt.Sprintf("/testpd1/tracker%v", i) - testFileContents := fmt.Sprintf("%v", mathrand.Int()) - fileAndContentToVerify[testFile] = testFileContents - framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFile, testFileContents)) - framework.Logf("Wrote value: \"%v\" to PD %q from pod %q container %q", testFileContents, diskName, host0Pod.Name, containerName) - - // Randomly select a container and read/verify pd contents from it - containerName = fmt.Sprintf("mycontainer%v", mathrand.Intn(numContainers)+1) - verifyPDContentsViaContainer(f, host0Pod.Name, containerName, fileAndContentToVerify) - - By("deleting host0Pod") - framework.ExpectNoError(podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)), "Failed to delete host0Pod") + Context("schedule a pod w/ RW PD(s) mounted to 1 or more containers, write to PD, verify content, delete pod, and repeat in rapid succession [Slow]", func() { + var diskNames []string + type testT struct { + numContainers int + numPDs int + repeatCnt int + } + tests := []testT{ + { + numContainers: 4, + numPDs: 1, + repeatCnt: 3, + }, + { + numContainers: 1, + numPDs: 2, + repeatCnt: 3, + }, } - By("Test completed successfully, waiting for PD to safely detach") - waitForPDDetach(diskName, host0Name) - }) + for _, t := range tests { + numPDs := t.numPDs + numContainers := t.numContainers + + It(fmt.Sprintf("using %d containers and %d PDs", numContainers, numPDs), func() { + framework.SkipUnlessProviderIs("gce", "gke", "aws") + var host0Pod *v1.Pod + var err error + fileAndContentToVerify := make(map[string]string) + + By(fmt.Sprintf("creating %d PD(s)", numPDs)) + for i := 0; i < numPDs; i++ { + name, err := framework.CreatePDWithRetry() + framework.ExpectNoError(err, fmt.Sprintf("Error creating PD %d", i)) + diskNames = append(diskNames, name) + } - It("should schedule a pod w/two RW PDs both mounted to one container, write to PD, verify contents, delete pod, recreate pod, verify contents, and repeat in rapid succession [Slow]", func() { - framework.SkipUnlessProviderIs("gce", "gke", "aws") - - By("creating PD1") - disk1Name, err := framework.CreatePDWithRetry() - framework.ExpectNoError(err, "Error creating PD1") - By("creating PD2") - disk2Name, err := framework.CreatePDWithRetry() - framework.ExpectNoError(err, "Error creating PD2") - var host0Pod *v1.Pod - - defer func() { - By("cleaning up PD-RW test environment") - // Teardown pods, PD. Ignore errors. - // Teardown should do nothing unless test failed. - if host0Pod != nil { - podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)) - } - detachAndDeletePDs(disk1Name, []types.NodeName{host0Name}) - detachAndDeletePDs(disk2Name, []types.NodeName{host0Name}) - }() - - containerName := "mycontainer" - fileAndContentToVerify := make(map[string]string) - for i := 0; i < 3; i++ { - framework.Logf("PD Read/Writer Iteration #%v", i) - By("submitting host0Pod to kubernetes") - host0Pod = testPDPod([]string{disk1Name, disk2Name}, host0Name, false /* readOnly */, 1 /* numContainers */) - _, err = podClient.Create(host0Pod) - framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0Pod: %v", err)) - - framework.ExpectNoError(f.WaitForPodRunningSlow(host0Pod.Name)) - - // Read/verify pd contents for both disks from container - verifyPDContentsViaContainer(f, host0Pod.Name, containerName, fileAndContentToVerify) - - // Write a file to both PDs from container - testFilePD1 := fmt.Sprintf("/testpd1/tracker%v", i) - testFilePD2 := fmt.Sprintf("/testpd2/tracker%v", i) - testFilePD1Contents := fmt.Sprintf("%v", mathrand.Int()) - testFilePD2Contents := fmt.Sprintf("%v", mathrand.Int()) - fileAndContentToVerify[testFilePD1] = testFilePD1Contents - fileAndContentToVerify[testFilePD2] = testFilePD2Contents - framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFilePD1, testFilePD1Contents)) - framework.Logf("Wrote value: \"%v\" to PD1 (%q) from pod %q container %q", testFilePD1Contents, disk1Name, host0Pod.Name, containerName) - framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFilePD2, testFilePD2Contents)) - framework.Logf("Wrote value: \"%v\" to PD2 (%q) from pod %q container %q", testFilePD2Contents, disk2Name, host0Pod.Name, containerName) - - // Read/verify pd contents for both disks from container - verifyPDContentsViaContainer(f, host0Pod.Name, containerName, fileAndContentToVerify) - - By("deleting host0Pod") - framework.ExpectNoError(podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)), "Failed to delete host0Pod") + defer func() { + // Teardown should do nothing unless test failed. + By("defer: cleaning up PD-RW test environment") + framework.Logf("defer cleanup errors can usually be ignored") + if host0Pod != nil { + podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)) + } + for _, diskName := range diskNames { + detachAndDeletePDs(diskName, []types.NodeName{host0Name}) + } + }() + + for i := 0; i < t.repeatCnt; i++ { // "rapid" repeat loop + framework.Logf("PD Read/Writer Iteration #%v", i) + By(fmt.Sprintf("creating host0Pod with %d containers on node0", numContainers)) + host0Pod = testPDPod(diskNames, host0Name, false /* readOnly */, numContainers) + _, err = podClient.Create(host0Pod) + framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0Pod: %v", err)) + framework.ExpectNoError(f.WaitForPodRunningSlow(host0Pod.Name)) + + By(fmt.Sprintf("writing %d file(s) via a container", numPDs)) + containerName := "mycontainer" + if numContainers > 1 { + containerName = fmt.Sprintf("mycontainer%v", mathrand.Intn(numContainers)+1) + } + for x := 1; x <= numPDs; x++ { + testFile := fmt.Sprintf("/testpd%d/tracker%d", x, i) + testFileContents := fmt.Sprintf("%v", mathrand.Int()) + fileAndContentToVerify[testFile] = testFileContents + framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFile, testFileContents)) + framework.Logf("wrote %q to file %q in pod %q (container %q) on node %q", testFileContents, testFile, host0Pod.Name, containerName, host0Name) + } + + By("verifying PD contents via a container") + if numContainers > 1 { + containerName = fmt.Sprintf("mycontainer%v", mathrand.Intn(numContainers)+1) + } + verifyPDContentsViaContainer(f, host0Pod.Name, containerName, fileAndContentToVerify) + + By("deleting host0Pod") + framework.ExpectNoError(podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)), "Failed to delete host0Pod") + } + By(fmt.Sprintf("Test completed successfully, waiting for %d PD(s) to detach from node0", numPDs)) + for _, diskName := range diskNames { + waitForPDDetach(diskName, host0Name) + } + }) } - - By("Test completed successfully, waiting for PD to safely detach") - waitForPDDetach(disk1Name, host0Name) - waitForPDDetach(disk2Name, host0Name) }) - It("should be able to detach from a node which was deleted [Slow] [Disruptive]", func() { - framework.SkipUnlessProviderIs("gce") - - initialGroupSize, err := framework.GroupSize(framework.TestContext.CloudConfig.NodeInstanceGroup) - framework.ExpectNoError(err, "Error getting group size") - - By("Creating a pd") - diskName, err := framework.CreatePDWithRetry() - framework.ExpectNoError(err, "Error creating a pd") - - host0Pod := testPDPod([]string{diskName}, host0Name, false, 1) - - containerName := "mycontainer" - - defer func() { - By("Cleaning up PD-RW test env") - podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)) - detachAndDeletePDs(diskName, []types.NodeName{host0Name}) - framework.WaitForNodeToBeReady(f.ClientSet, string(host0Name), nodeStatusTimeout) - framework.WaitForAllNodesSchedulable(f.ClientSet, nodeStatusTimeout) - nodes = framework.GetReadySchedulableNodesOrDie(f.ClientSet) - Expect(len(nodes.Items)).To(Equal(initialGroupSize), "Requires node count to return to initial group size.") - }() - - By("submitting host0Pod to kubernetes") - _, err = podClient.Create(host0Pod) - framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0pod: %v", err)) - - framework.ExpectNoError(f.WaitForPodRunningSlow(host0Pod.Name)) - - testFile := "/testpd1/tracker" - testFileContents := fmt.Sprintf("%v", mathrand.Int()) - - framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFile, testFileContents)) - framework.Logf("Wrote value: %v", testFileContents) - - // Verify that disk shows up in node 0's volumeInUse list - framework.ExpectNoError(waitForPDInVolumesInUse(nodeClient, diskName, host0Name, nodeStatusTimeout, true /* should exist*/)) - - gceCloud, err := framework.GetGCECloud() - framework.ExpectNoError(err, fmt.Sprintf("Unable to create gcloud client err=%v", err)) - - output, err := gceCloud.ListInstanceNames(framework.TestContext.CloudConfig.ProjectID, framework.TestContext.CloudConfig.Zone) - framework.ExpectNoError(err, fmt.Sprintf("Unable to get list of node instances err=%v output=%s", err, output)) - Expect(true, strings.Contains(string(output), string(host0Name))) - - By("deleting host0") - resp, err := gceCloud.DeleteInstance(framework.TestContext.CloudConfig.ProjectID, framework.TestContext.CloudConfig.Zone, string(host0Name)) - framework.ExpectNoError(err, fmt.Sprintf("Failed to delete host0pod: err=%v response=%#v", err, resp)) - - output, err = gceCloud.ListInstanceNames(framework.TestContext.CloudConfig.ProjectID, framework.TestContext.CloudConfig.Zone) - framework.ExpectNoError(err, fmt.Sprintf("Unable to get list of node instances err=%v output=%s", err, output)) - Expect(false, strings.Contains(string(output), string(host0Name))) + Context("detach in a disrupted environment [Slow] [Disruptive]", func() { + const ( + deleteNode = 1 // delete physical node + deleteNodeObj = 2 // delete node's api object only + evictPod = 3 // evict host0Pod on node0 + ) + type testT struct { + descr string // It description + disruptOp int // disruptive operation performed on target node + } + tests := []testT{ + { + descr: "node is deleted", + disruptOp: deleteNode, + }, + { + descr: "node's API object is deleted", + disruptOp: deleteNodeObj, + }, + { + descr: "pod is evicted", + disruptOp: evictPod, + }, + } - // The disk should be detached from host0 on it's deletion - By("Waiting for pd to detach from host0") - waitForPDDetach(diskName, host0Name) - framework.ExpectNoError(framework.WaitForGroupSize(framework.TestContext.CloudConfig.NodeInstanceGroup, int32(initialGroupSize)), "Unable to get back the cluster to inital size") - return - }) + for _, t := range tests { + disruptOp := t.disruptOp + It(fmt.Sprintf("when %s", t.descr), func() { + framework.SkipUnlessProviderIs("gce") + origNodeCnt := len(nodes.Items) // healhy nodes running kublet + + By("creating a pd") + diskName, err := framework.CreatePDWithRetry() + framework.ExpectNoError(err, "Error creating a pd") + + targetNode := &nodes.Items[0] // for node delete ops + host0Pod := testPDPod([]string{diskName}, host0Name, false, 1) + containerName := "mycontainer" + + defer func() { + By("defer: cleaning up PD-RW test env") + framework.Logf("defer cleanup errors can usually be ignored") + By("defer: delete host0Pod") + podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)) + By("defer: detach and delete PDs") + detachAndDeletePDs(diskName, []types.NodeName{host0Name}) + if disruptOp == deleteNode || disruptOp == deleteNodeObj { + if disruptOp == deleteNodeObj { + targetNode.ObjectMeta.SetResourceVersion("0") + // need to set the resource version or else the Create() fails + By("defer: re-create host0 node object") + _, err := nodeClient.Create(targetNode) + framework.ExpectNoError(err, fmt.Sprintf("defer: Unable to re-create the deleted node object %q", targetNode.Name)) + } + By("defer: verify the number of ready nodes") + numNodes := countReadyNodes(cs, host0Name) + // if this defer is reached due to an Expect then nested + // Expects are lost, so use Failf here + if numNodes != origNodeCnt { + framework.Failf("defer: Requires current node count (%d) to return to original node count (%d)", numNodes, origNodeCnt) + } + } + }() + + By("creating host0Pod on node0") + _, err = podClient.Create(host0Pod) + framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0Pod: %v", err)) + By("waiting for host0Pod to be running") + framework.ExpectNoError(f.WaitForPodRunningSlow(host0Pod.Name)) + + By("writing content to host0Pod") + testFile := "/testpd1/tracker" + testFileContents := fmt.Sprintf("%v", mathrand.Int()) + framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFile, testFileContents)) + framework.Logf("wrote %q to file %q in pod %q on node %q", testFileContents, testFile, host0Pod.Name, host0Name) + + By("verifying PD is present in node0's VolumeInUse list") + framework.ExpectNoError(waitForPDInVolumesInUse(nodeClient, diskName, host0Name, nodeStatusTimeout, true /* should exist*/)) + + if disruptOp == deleteNode { + By("getting gce instances") + gceCloud, err := framework.GetGCECloud() + framework.ExpectNoError(err, fmt.Sprintf("Unable to create gcloud client err=%v", err)) + output, err := gceCloud.ListInstanceNames(framework.TestContext.CloudConfig.ProjectID, framework.TestContext.CloudConfig.Zone) + framework.ExpectNoError(err, fmt.Sprintf("Unable to get list of node instances err=%v output=%s", err, output)) + Expect(true, strings.Contains(string(output), string(host0Name))) + + By("deleting host0") + resp, err := gceCloud.DeleteInstance(framework.TestContext.CloudConfig.ProjectID, framework.TestContext.CloudConfig.Zone, string(host0Name)) + framework.ExpectNoError(err, fmt.Sprintf("Failed to delete host0Pod: err=%v response=%#v", err, resp)) + By("expecting host0 node to be re-created") + numNodes := countReadyNodes(cs, host0Name) + Expect(numNodes).To(Equal(origNodeCnt), fmt.Sprintf("Requires current node count (%d) to return to original node count (%d)", numNodes, origNodeCnt)) + output, err = gceCloud.ListInstanceNames(framework.TestContext.CloudConfig.ProjectID, framework.TestContext.CloudConfig.Zone) + framework.ExpectNoError(err, fmt.Sprintf("Unable to get list of node instances err=%v output=%s", err, output)) + Expect(false, strings.Contains(string(output), string(host0Name))) + + } else if disruptOp == deleteNodeObj { + By("deleting host0's node api object") + framework.ExpectNoError(nodeClient.Delete(string(host0Name), metav1.NewDeleteOptions(0)), "Unable to delete host0's node object") + By("deleting host0Pod") + framework.ExpectNoError(podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)), "Unable to delete host0Pod") + + } else if disruptOp == evictPod { + evictTarget := &policy.Eviction{ + ObjectMeta: metav1.ObjectMeta{ + Name: host0Pod.Name, + Namespace: ns, + }, + } + By("evicting host0Pod") + err = wait.PollImmediate(framework.Poll, podEvictTimeout, func() (bool, error) { + err = cs.CoreV1().Pods(ns).Evict(evictTarget) + if err != nil { + return false, nil + } else { + return true, nil + } + }) + Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("failed to evict host0Pod after %v", podEvictTimeout)) + } - It("should be able to detach from a node whose api object was deleted [Slow] [Disruptive]", func() { - framework.SkipUnlessProviderIs("gce") - initialGroupSize, err := framework.GroupSize(framework.TestContext.CloudConfig.NodeInstanceGroup) - framework.ExpectNoError(err, "Error getting group size") - By("Creating a pd") - diskName, err := framework.CreatePDWithRetry() - framework.ExpectNoError(err, "Error creating a pd") - - host0Pod := testPDPod([]string{diskName}, host0Name, false, 1) - originalCount := len(nodes.Items) - containerName := "mycontainer" - nodeToDelete := &nodes.Items[0] - defer func() { - By("Cleaning up PD-RW test env") - detachAndDeletePDs(diskName, []types.NodeName{host0Name}) - nodeToDelete.ObjectMeta.SetResourceVersion("0") - // need to set the resource version or else the Create() fails - _, err := nodeClient.Create(nodeToDelete) - framework.ExpectNoError(err, "Unable to re-create the deleted node") - framework.ExpectNoError(framework.WaitForGroupSize(framework.TestContext.CloudConfig.NodeInstanceGroup, int32(initialGroupSize)), "Unable to get the node group back to the original size") - framework.WaitForNodeToBeReady(f.ClientSet, nodeToDelete.Name, nodeStatusTimeout) - framework.WaitForAllNodesSchedulable(f.ClientSet, nodeStatusTimeout) - nodes = framework.GetReadySchedulableNodesOrDie(f.ClientSet) - Expect(len(nodes.Items)).To(Equal(originalCount), "Requires node count to return to original node count.") - }() - - By("submitting host0Pod to kubernetes") - _, err = podClient.Create(host0Pod) - framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0pod: %v", err)) - - framework.ExpectNoError(f.WaitForPodRunningSlow(host0Pod.Name)) - - testFile := "/testpd1/tracker" - testFileContents := fmt.Sprintf("%v", mathrand.Int()) - - framework.ExpectNoError(f.WriteFileViaContainer(host0Pod.Name, containerName, testFile, testFileContents)) - framework.Logf("Wrote value: %v", testFileContents) - - // Verify that disk shows up in node 0's volumeInUse list - framework.ExpectNoError(waitForPDInVolumesInUse(nodeClient, diskName, host0Name, nodeStatusTimeout, true /* should exist*/)) - - By("deleting api object of host0") - framework.ExpectNoError(nodeClient.Delete(string(host0Name), metav1.NewDeleteOptions(0)), "Unable to delete host0") - - By("deleting host0pod") - framework.ExpectNoError(podClient.Delete(host0Pod.Name, metav1.NewDeleteOptions(0)), "Unable to delete host0Pod") - // The disk should be detached from host0 on its deletion - By("Waiting for pd to detach from host0") - framework.ExpectNoError(waitForPDDetach(diskName, host0Name), "Timed out waiting for detach pd") + By("waiting for pd to detach from host0") + waitForPDDetach(diskName, host0Name) + }) + } }) It("should be able to delete a non-existent PD without error", func() { @@ -530,6 +437,13 @@ var _ = SIGDescribe("Pod Disks", func() { }) }) +func countReadyNodes(c clientset.Interface, hostName types.NodeName) int { + framework.WaitForNodeToBeReady(c, string(hostName), nodeStatusTimeout) + framework.WaitForAllNodesSchedulable(c, nodeStatusTimeout) + nodes := framework.GetReadySchedulableNodesOrDie(c) + return len(nodes.Items) +} + func verifyPDContentsViaContainer(f *framework.Framework, podName, containerName string, fileAndContentToVerify map[string]string) { for filePath, expectedContents := range fileAndContentToVerify { var value string @@ -563,59 +477,62 @@ func detachPD(nodeName types.NodeName, pdName string) error { if err != nil { return err } - err = gceCloud.DetachDisk(pdName, nodeName) if err != nil { if gerr, ok := err.(*googleapi.Error); ok && strings.Contains(gerr.Message, "Invalid value for field 'disk'") { // PD already detached, ignore error. return nil } - framework.Logf("Error detaching PD %q: %v", pdName, err) } - return err + } else if framework.TestContext.Provider == "aws" { client := ec2.New(session.New()) - tokens := strings.Split(pdName, "/") awsVolumeID := tokens[len(tokens)-1] - request := ec2.DetachVolumeInput{ VolumeId: aws.String(awsVolumeID), } - _, err := client.DetachVolume(&request) if err != nil { return fmt.Errorf("error detaching EBS volume: %v", err) } return nil + } else { return fmt.Errorf("Provider does not support volume detaching") } } +// Returns pod spec suitable for api Create call. Handles gce, gke and aws providers only and +// escapes if a different provider is supplied. +// The first container name is hard-coded to "mycontainer". Subsequent containers are named: +// "mycontainer where is 1..numContainers. Note if there is only one container it's +// name has no number. +// Container's volumeMounts are hard-coded to "/testpd" where is 1..len(diskNames). func testPDPod(diskNames []string, targetNode types.NodeName, readOnly bool, numContainers int) *v1.Pod { + // escape if not a supported provider + if !(framework.TestContext.Provider == "gce" || framework.TestContext.Provider == "gke" || + framework.TestContext.Provider == "aws") { + framework.Failf(fmt.Sprintf("func `testPDPod` only supports gce, gke, and aws providers, not %v", framework.TestContext.Provider)) + } + containers := make([]v1.Container, numContainers) for i := range containers { containers[i].Name = "mycontainer" if numContainers > 1 { containers[i].Name = fmt.Sprintf("mycontainer%v", i+1) } - - containers[i].Image = imageutils.GetBusyBoxImage() - + containers[i].Image = "busybox" containers[i].Command = []string{"sleep", "6000"} - containers[i].VolumeMounts = make([]v1.VolumeMount, len(diskNames)) for k := range diskNames { containers[i].VolumeMounts[k].Name = fmt.Sprintf("testpd%v", k+1) containers[i].VolumeMounts[k].MountPath = fmt.Sprintf("/testpd%v", k+1) } - containers[i].Resources.Limits = v1.ResourceList{} containers[i].Resources.Limits[v1.ResourceCPU] = *resource.NewQuantity(int64(0), resource.DecimalSI) - } pod := &v1.Pod{ @@ -632,34 +549,27 @@ func testPDPod(diskNames []string, targetNode types.NodeName, readOnly bool, num }, } - if framework.TestContext.Provider == "gce" || framework.TestContext.Provider == "gke" { - pod.Spec.Volumes = make([]v1.Volume, len(diskNames)) - for k, diskName := range diskNames { - pod.Spec.Volumes[k].Name = fmt.Sprintf("testpd%v", k+1) + pod.Spec.Volumes = make([]v1.Volume, len(diskNames)) + for k, diskName := range diskNames { + pod.Spec.Volumes[k].Name = fmt.Sprintf("testpd%v", k+1) + if framework.TestContext.Provider == "aws" { pod.Spec.Volumes[k].VolumeSource = v1.VolumeSource{ - GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{ - PDName: diskName, + AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{ + VolumeID: diskName, FSType: "ext4", ReadOnly: readOnly, }, } - } - } else if framework.TestContext.Provider == "aws" { - pod.Spec.Volumes = make([]v1.Volume, len(diskNames)) - for k, diskName := range diskNames { - pod.Spec.Volumes[k].Name = fmt.Sprintf("testpd%v", k+1) + } else { // "gce" or "gke" pod.Spec.Volumes[k].VolumeSource = v1.VolumeSource{ - AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{ - VolumeID: diskName, + GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{ + PDName: diskName, FSType: "ext4", ReadOnly: readOnly, }, } } - } else { - panic("Unknown provider: " + framework.TestContext.Provider) } - return pod } @@ -671,26 +581,21 @@ func waitForPDDetach(diskName string, nodeName types.NodeName) error { if err != nil { return err } - for start := time.Now(); time.Since(start) < gcePDDetachTimeout; time.Sleep(gcePDDetachPollTime) { diskAttached, err := gceCloud.DiskIsAttached(diskName, nodeName) if err != nil { framework.Logf("Error waiting for PD %q to detach from node %q. 'DiskIsAttached(...)' failed with %v", diskName, nodeName, err) return err } - if !diskAttached { // Specified disk does not appear to be attached to specified node framework.Logf("GCE PD %q appears to have successfully detached from %q.", diskName, nodeName) return nil } - framework.Logf("Waiting for GCE PD %q to detach from %q.", diskName, nodeName) } - return fmt.Errorf("Gave up waiting for GCE PD %q to detach from %q after %v", diskName, nodeName, gcePDDetachTimeout) } - return nil } @@ -715,42 +620,28 @@ func waitForPDInVolumesInUse( if !shouldExist { logStr = "to NOT contain" } - framework.Logf( - "Waiting for node %s's VolumesInUse Status %s PD %q", - nodeName, logStr, diskName) + framework.Logf("Waiting for node %s's VolumesInUse Status %s PD %q", nodeName, logStr, diskName) for start := time.Now(); time.Since(start) < timeout; time.Sleep(nodeStatusPollTime) { nodeObj, err := nodeClient.Get(string(nodeName), metav1.GetOptions{}) if err != nil || nodeObj == nil { - framework.Logf( - "Failed to fetch node object %q from API server. err=%v", - nodeName, err) + framework.Logf("Failed to fetch node object %q from API server. err=%v", nodeName, err) continue } - exists := false for _, volumeInUse := range nodeObj.Status.VolumesInUse { volumeInUseStr := string(volumeInUse) if strings.Contains(volumeInUseStr, diskName) { if shouldExist { - framework.Logf( - "Found PD %q in node %q's VolumesInUse Status: %q", - diskName, nodeName, volumeInUseStr) + framework.Logf("Found PD %q in node %q's VolumesInUse Status: %q", diskName, nodeName, volumeInUseStr) return nil } - exists = true } } - if !shouldExist && !exists { - framework.Logf( - "Verified PD %q does not exist in node %q's VolumesInUse Status.", - diskName, nodeName) + framework.Logf("Verified PD %q does not exist in node %q's VolumesInUse Status.", diskName, nodeName) return nil } } - - return fmt.Errorf( - "Timed out waiting for node %s VolumesInUse Status %s diskName %q", - nodeName, logStr, diskName) + return fmt.Errorf("Timed out waiting for node %s VolumesInUse Status %s diskName %q", nodeName, logStr, diskName) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes-disruptive.go b/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes-disruptive.go index dd70136fa..b43d17e2e 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes-disruptive.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes-disruptive.go @@ -151,7 +151,7 @@ var _ = SIGDescribe("PersistentVolumes[Disruptive][Flaky]", func() { framework.ExpectNoError(framework.WaitOnPVandPVC(c, ns, pv2, pvc2)) By("Attaching both PVC's to a single pod") - clientPod, err = framework.CreatePod(c, ns, []*v1.PersistentVolumeClaim{pvc1, pvc2}, true, "") + clientPod, err = framework.CreatePod(c, ns, nil, []*v1.PersistentVolumeClaim{pvc1, pvc2}, true, "") Expect(err).NotTo(HaveOccurred()) }) @@ -281,7 +281,7 @@ func testVolumeUnmountsFromDeletedPod(c clientset.Interface, f *framework.Framew } }() By(fmt.Sprintf("Deleting Pod %q", clientPod.Name)) - err = c.Core().Pods(clientPod.Namespace).Delete(clientPod.Name, &metav1.DeleteOptions{}) + err = c.CoreV1().Pods(clientPod.Namespace).Delete(clientPod.Name, &metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) By("Starting the kubelet and waiting for pod to delete.") kubeletCommand(kStart, c, clientPod) @@ -309,7 +309,7 @@ func initTestCase(f *framework.Framework, c clientset.Interface, pvConfig framew } }() Expect(err).NotTo(HaveOccurred()) - pod := framework.MakePod(ns, []*v1.PersistentVolumeClaim{pvc}, true, "") + pod := framework.MakePod(ns, nil, []*v1.PersistentVolumeClaim{pvc}, true, "") pod.Spec.NodeName = nodeName framework.Logf("Creating NFS client pod.") pod, err = c.CoreV1().Pods(ns).Create(pod) diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes-local.go b/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes-local.go index 58fbb48d7..6744fc78c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes-local.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes-local.go @@ -300,9 +300,7 @@ var _ = SIGDescribe("PersistentVolumes-local [Feature:LocalPersistentVolumes] [S }) Context("when using local volume provisioner", func() { - var ( - volumePath string - ) + var volumePath string BeforeEach(func() { setupLocalVolumeProvisioner(config) @@ -331,13 +329,13 @@ var _ = SIGDescribe("PersistentVolumes-local [Feature:LocalPersistentVolumes] [S // Create a persistent volume claim for local volume: the above volume will be bound. By("Creating a persistent volume claim") - claim, err := config.client.Core().PersistentVolumeClaims(config.ns).Create(newLocalClaim(config)) + claim, err := config.client.CoreV1().PersistentVolumeClaims(config.ns).Create(newLocalClaim(config)) Expect(err).NotTo(HaveOccurred()) err = framework.WaitForPersistentVolumeClaimPhase( v1.ClaimBound, config.client, claim.Namespace, claim.Name, framework.Poll, 1*time.Minute) Expect(err).NotTo(HaveOccurred()) - claim, err = config.client.Core().PersistentVolumeClaims(config.ns).Get(claim.Name, metav1.GetOptions{}) + claim, err = config.client.CoreV1().PersistentVolumeClaims(config.ns).Get(claim.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) Expect(claim.Spec.VolumeName).To(Equal(oldPV.Name)) @@ -346,7 +344,7 @@ var _ = SIGDescribe("PersistentVolumes-local [Feature:LocalPersistentVolumes] [S writeCmd, _ := createWriteAndReadCmds(volumePath, testFile, testFileContent) err = framework.IssueSSHCommand(writeCmd, framework.TestContext.Provider, config.node0) Expect(err).NotTo(HaveOccurred()) - err = config.client.Core().PersistentVolumeClaims(claim.Namespace).Delete(claim.Name, &metav1.DeleteOptions{}) + err = config.client.CoreV1().PersistentVolumeClaims(claim.Namespace).Delete(claim.Name, &metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) By("Waiting for a new PersistentVolume to be re-created") @@ -390,7 +388,7 @@ func checkPodEvents(config *localTestConfig, podName string, ep *eventPatterns) "reason": ep.reason, }.AsSelector().String() options := metav1.ListOptions{FieldSelector: selector} - events, err := config.client.Core().Events(config.ns).List(options) + events, err := config.client.CoreV1().Events(config.ns).List(options) Expect(err).NotTo(HaveOccurred()) Expect(len(events.Items)).NotTo(Equal(0)) for _, p := range ep.pattern { @@ -484,7 +482,7 @@ func twoPodsReadWriteSerialTest(config *localTestConfig, testVol *localTestVolum // podNode wraps RunKubectl to get node where pod is running func podNodeName(config *localTestConfig, pod *v1.Pod) (string, error) { - runtimePod, runtimePodErr := config.client.Core().Pods(pod.Namespace).Get(pod.Name, metav1.GetOptions{}) + runtimePod, runtimePodErr := config.client.CoreV1().Pods(pod.Namespace).Get(pod.Name, metav1.GetOptions{}) return runtimePod.Spec.NodeName, runtimePodErr } @@ -737,7 +735,7 @@ func cleanupLocalVolumeProvisioner(config *localTestConfig, volumePath string) { By("Cleaning up persistent volume") pv, err := findLocalPersistentVolume(config.client, volumePath) Expect(err).NotTo(HaveOccurred()) - err = config.client.Core().PersistentVolumes().Delete(pv.Name, &metav1.DeleteOptions{}) + err = config.client.CoreV1().PersistentVolumes().Delete(pv.Name, &metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) } @@ -886,7 +884,7 @@ func waitForLocalPersistentVolume(c clientset.Interface, volumePath string) (*v1 var pv *v1.PersistentVolume for start := time.Now(); time.Since(start) < 10*time.Minute && pv == nil; time.Sleep(5 * time.Second) { - pvs, err := c.Core().PersistentVolumes().List(metav1.ListOptions{}) + pvs, err := c.CoreV1().PersistentVolumes().List(metav1.ListOptions{}) if err != nil { return nil, err } @@ -912,7 +910,7 @@ func waitForLocalPersistentVolume(c clientset.Interface, volumePath string) (*v1 // findLocalPersistentVolume finds persistent volume with 'spec.local.path' equals 'volumePath'. func findLocalPersistentVolume(c clientset.Interface, volumePath string) (*v1.PersistentVolume, error) { - pvs, err := c.Core().PersistentVolumes().List(metav1.ListOptions{}) + pvs, err := c.CoreV1().PersistentVolumes().List(metav1.ListOptions{}) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes.go b/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes.go index 7a92c1796..416bb34c6 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/persistent_volumes.go @@ -204,9 +204,6 @@ var _ = SIGDescribe("PersistentVolumes", func() { // in different namespaces. Context("with multiple PVs and PVCs all in same ns", func() { - // define the maximum number of PVs and PVCs supported by these tests - const maxNumPVs = 10 - const maxNumPVCs = 10 // scope the pv and pvc maps to be available in the AfterEach // note: these maps are created fresh in CreatePVsPVCs() var pvols framework.PVMap @@ -295,7 +292,7 @@ var _ = SIGDescribe("PersistentVolumes", func() { // If a file is detected in /mnt, fail the pod and do not restart it. By("Verifying the mount has been cleaned.") mount := pod.Spec.Containers[0].VolumeMounts[0].MountPath - pod = framework.MakePod(ns, []*v1.PersistentVolumeClaim{pvc}, true, fmt.Sprintf("[ $(ls -A %s | wc -l) -eq 0 ] && exit 0 || exit 1", mount)) + pod = framework.MakePod(ns, nil, []*v1.PersistentVolumeClaim{pvc}, true, fmt.Sprintf("[ $(ls -A %s | wc -l) -eq 0 ] && exit 0 || exit 1", mount)) pod, err = c.CoreV1().Pods(ns).Create(pod) Expect(err).NotTo(HaveOccurred()) framework.ExpectNoError(framework.WaitForPodSuccessInNamespace(c, pod.Name, ns)) diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/pv_reclaimpolicy.go b/vendor/k8s.io/kubernetes/test/e2e/storage/pv_reclaimpolicy.go index db52ca525..b7415ec91 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/pv_reclaimpolicy.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/pv_reclaimpolicy.go @@ -25,6 +25,7 @@ import ( "k8s.io/api/core/v1" apierrs "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" clientset "k8s.io/client-go/kubernetes" vsphere "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" "k8s.io/kubernetes/test/e2e/framework" @@ -90,6 +91,62 @@ var _ = SIGDescribe("PersistentVolumes [Feature:ReclaimPolicy]", func() { volumePath = "" }) + /* + Test Steps: + 1. Create vmdk + 2. Create PV Spec with volume path set to VMDK file created in Step-1, and PersistentVolumeReclaimPolicy is set to Delete + 3. Create PVC with the storage request set to PV's storage capacity. + 4. Wait for PV and PVC to bound. + 5. Delete PVC. + 6. Verify volume is attached to the node and volume is accessible in the pod. + 7. Verify PV status should be failed. + 8. Delete the pod. + 9. Verify PV should be detached from the node and automatically deleted. + */ + It("should not detach and unmount PV when associated pvc with delete as reclaimPolicy is deleted when it is in use by the pod", func() { + vsp, err := vsphere.GetVSphere() + Expect(err).NotTo(HaveOccurred()) + + volumePath, pv, pvc, err = testSetupVSpherePersistentVolumeReclaim(vsp, c, ns, v1.PersistentVolumeReclaimDelete) + Expect(err).NotTo(HaveOccurred()) + // Wait for PV and PVC to Bind + framework.ExpectNoError(framework.WaitOnPVandPVC(c, ns, pv, pvc)) + + By("Creating the Pod") + pod, err := framework.CreateClientPod(c, ns, pvc) + Expect(err).NotTo(HaveOccurred()) + node := types.NodeName(pod.Spec.NodeName) + + By("Deleting the Claim") + framework.ExpectNoError(framework.DeletePersistentVolumeClaim(c, pvc.Name, ns), "Failed to delete PVC ", pvc.Name) + pvc = nil + + // Verify PV is Present, after PVC is deleted and PV status should be Failed. + pv, err := c.CoreV1().PersistentVolumes().Get(pv.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + Expect(framework.WaitForPersistentVolumePhase(v1.VolumeFailed, c, pv.Name, 1*time.Second, 60*time.Second)).NotTo(HaveOccurred()) + + By("Verify the volume is attached to the node") + isVolumeAttached, verifyDiskAttachedError := verifyVSphereDiskAttached(vsp, pv.Spec.VsphereVolume.VolumePath, node) + Expect(verifyDiskAttachedError).NotTo(HaveOccurred()) + Expect(isVolumeAttached).To(BeTrue()) + + By("Verify the volume is accessible and available in the pod") + verifyVSphereVolumesAccessible(pod, []*v1.PersistentVolume{pv}, vsp) + framework.Logf("Verified that Volume is accessible in the POD after deleting PV claim") + + By("Deleting the Pod") + framework.ExpectNoError(framework.DeletePodWithWait(f, c, pod), "Failed to delete pod ", pod.Name) + + By("Verify PV is detached from the node after Pod is deleted") + Expect(waitForVSphereDiskToDetach(vsp, pv.Spec.VsphereVolume.VolumePath, types.NodeName(pod.Spec.NodeName))).NotTo(HaveOccurred()) + + By("Verify PV should be deleted automatically") + framework.ExpectNoError(framework.WaitForPersistentVolumeDeleted(c, pv.Name, 1*time.Second, 30*time.Second)) + pv = nil + volumePath = "" + }) + /* This test Verify persistent volume should be retained when reclaimPolicy on the PV is set to retain and associated claim is deleted diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/volume_metrics.go b/vendor/k8s.io/kubernetes/test/e2e/storage/volume_metrics.go index 3a152f806..85e04ab1c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/volume_metrics.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/volume_metrics.go @@ -87,7 +87,7 @@ var _ = SIGDescribe("[Serial] Volume metrics", func() { claims := []*v1.PersistentVolumeClaim{pvc} - pod := framework.MakePod(ns, claims, false, "") + pod := framework.MakePod(ns, nil, claims, false, "") pod, err = c.CoreV1().Pods(ns).Create(pod) Expect(err).NotTo(HaveOccurred()) @@ -97,33 +97,9 @@ var _ = SIGDescribe("[Serial] Volume metrics", func() { framework.Logf("Deleting pod %q/%q", pod.Namespace, pod.Name) framework.ExpectNoError(framework.DeletePodWithWait(f, c, pod)) - backoff := wait.Backoff{ - Duration: 10 * time.Second, - Factor: 1.2, - Steps: 21, - } - - updatedStorageMetrics := make(map[string]int64) + updatedStorageMetrics := waitForDetachAndGrabMetrics(storageOpMetrics, metricsGrabber) - waitErr := wait.ExponentialBackoff(backoff, func() (bool, error) { - updatedMetrics, err := metricsGrabber.GrabFromControllerManager() - - if err != nil { - framework.Logf("Error fetching controller-manager metrics") - return false, err - } - updatedStorageMetrics = getControllerStorageMetrics(updatedMetrics) - metricCount := len(updatedStorageMetrics) - // Usually a pod deletion does not mean immediate volume detach - // we will have to retry to verify volume_detach metrics - _, detachMetricFound := updatedStorageMetrics["volume_detach"] - if metricCount < 3 || !detachMetricFound { - framework.Logf("Volume metrics not collected yet, going to retry") - return false, nil - } - return true, nil - }) - Expect(waitErr).NotTo(HaveOccurred(), "Error fetching storage c-m metrics : %v", waitErr) + Expect(len(updatedStorageMetrics)).ToNot(Equal(0), "Error fetching c-m updated storage metrics") volumeOperations := []string{"volume_provision", "volume_detach", "volume_attach"} @@ -139,7 +115,7 @@ var _ = SIGDescribe("[Serial] Volume metrics", func() { Expect(pvc).ToNot(Equal(nil)) claims := []*v1.PersistentVolumeClaim{pvc} - pod := framework.MakePod(ns, claims, false, "") + pod := framework.MakePod(ns, nil, claims, false, "") pod, err = c.CoreV1().Pods(ns).Create(pod) Expect(err).NotTo(HaveOccurred()) @@ -190,6 +166,48 @@ var _ = SIGDescribe("[Serial] Volume metrics", func() { }) }) +func waitForDetachAndGrabMetrics(oldMetrics map[string]int64, metricsGrabber *metrics.MetricsGrabber) map[string]int64 { + backoff := wait.Backoff{ + Duration: 10 * time.Second, + Factor: 1.2, + Steps: 21, + } + + updatedStorageMetrics := make(map[string]int64) + oldDetachCount, ok := oldMetrics["volume_detach"] + if !ok { + oldDetachCount = 0 + } + + verifyMetricFunc := func() (bool, error) { + updatedMetrics, err := metricsGrabber.GrabFromControllerManager() + + if err != nil { + framework.Logf("Error fetching controller-manager metrics") + return false, err + } + + updatedStorageMetrics = getControllerStorageMetrics(updatedMetrics) + newDetachCount, ok := updatedStorageMetrics["volume_detach"] + + // if detach metrics are not yet there, we need to retry + if !ok { + return false, nil + } + + // if old Detach count is more or equal to new detach count, that means detach + // event has not been observed yet. + if oldDetachCount >= newDetachCount { + return false, nil + } + return true, nil + } + + waitErr := wait.ExponentialBackoff(backoff, verifyMetricFunc) + Expect(waitErr).NotTo(HaveOccurred(), "Timeout error fetching storage c-m metrics : %v", waitErr) + return updatedStorageMetrics +} + func verifyMetricCount(oldMetrics map[string]int64, newMetrics map[string]int64, metricName string) { oldCount, ok := oldMetrics[metricName] // if metric does not exist in oldMap, it probably hasn't been emitted yet. @@ -199,8 +217,10 @@ func verifyMetricCount(oldMetrics map[string]int64, newMetrics map[string]int64, newCount, ok := newMetrics[metricName] Expect(ok).To(BeTrue(), "Error getting updated metrics for %s", metricName) - - Expect(oldCount + 1).To(Equal(newCount)) + // It appears that in a busy cluster some spurious detaches are unavoidable + // even if the test is run serially. We really just verify if new count + // is greater than old count + Expect(newCount).To(BeNumerically(">", oldCount), "New count %d should be more than old count %d for action %s", newCount, oldCount, metricName) } func getControllerStorageMetrics(ms metrics.ControllerManagerMetrics) map[string]int64 { diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/volume_provisioning.go b/vendor/k8s.io/kubernetes/test/e2e/storage/volume_provisioning.go index 465c4fa40..306df4933 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/volume_provisioning.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/volume_provisioning.go @@ -41,11 +41,10 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/authentication/serviceaccount" clientset "k8s.io/client-go/kubernetes" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" storageutil "k8s.io/kubernetes/pkg/apis/storage/v1/util" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/test/e2e/framework" - imageutils "k8s.io/kubernetes/test/utils/image" ) type storageClassTest struct { @@ -796,7 +795,7 @@ func runInPodWithVolume(c clientset.Interface, ns, claimName, command string) { Containers: []v1.Container{ { Name: "volume-tester", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"/bin/sh"}, Args: []string{"-c", command}, VolumeMounts: []v1.VolumeMount{ diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/volumes.go b/vendor/k8s.io/kubernetes/test/e2e/storage/volumes.go index f3bfc0f2b..61c42297f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/volumes.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/volumes.go @@ -83,9 +83,7 @@ func DeleteCinderVolume(name string) error { var _ = SIGDescribe("Volumes", func() { f := framework.NewDefaultFramework("volume") - // If 'false', the test won't clear its volumes upon completion. Useful for debugging, // note that namespace deletion is handled by delete-namespace flag - clean := true // filled inside BeforeEach var cs clientset.Interface var namespace *v1.Namespace @@ -102,11 +100,7 @@ var _ = SIGDescribe("Volumes", func() { Describe("NFS", func() { It("should be mountable", func() { config, _, serverIP := framework.NewNFSServer(cs, namespace.Name, []string{}) - defer func() { - if clean { - framework.VolumeTestCleanup(f, config) - } - }() + defer framework.VolumeTestCleanup(f, config) tests := []framework.VolumeTest{ { @@ -139,11 +133,9 @@ var _ = SIGDescribe("Volumes", func() { config, _, _ := framework.NewGlusterfsServer(cs, namespace.Name) name := config.Prefix + "-server" defer func() { - if clean { - framework.VolumeTestCleanup(f, config) - err := cs.CoreV1().Endpoints(namespace.Name).Delete(name, nil) - Expect(err).NotTo(HaveOccurred(), "defer: Gluster delete endpoints failed") - } + framework.VolumeTestCleanup(f, config) + err := cs.CoreV1().Endpoints(namespace.Name).Delete(name, nil) + Expect(err).NotTo(HaveOccurred(), "defer: Gluster delete endpoints failed") }() tests := []framework.VolumeTest{ @@ -177,11 +169,7 @@ var _ = SIGDescribe("Volumes", func() { Describe("iSCSI [Feature:Volumes]", func() { It("should be mountable", func() { config, _, serverIP := framework.NewISCSIServer(cs, namespace.Name) - defer func() { - if clean { - framework.VolumeTestCleanup(f, config) - } - }() + defer framework.VolumeTestCleanup(f, config) tests := []framework.VolumeTest{ { @@ -211,11 +199,7 @@ var _ = SIGDescribe("Volumes", func() { Describe("Ceph RBD [Feature:Volumes]", func() { It("should be mountable", func() { config, _, serverIP := framework.NewRBDServer(cs, namespace.Name) - defer func() { - if clean { - framework.VolumeTestCleanup(f, config) - } - }() + defer framework.VolumeTestCleanup(f, config) // create secrets for the server secret := v1.Secret{ @@ -236,9 +220,7 @@ var _ = SIGDescribe("Volumes", func() { secClient := cs.CoreV1().Secrets(config.Namespace) defer func() { - if clean { - secClient.Delete(config.Prefix+"-secret", nil) - } + secClient.Delete(config.Prefix+"-secret", nil) }() if _, err := secClient.Create(&secret); err != nil { @@ -281,11 +263,7 @@ var _ = SIGDescribe("Volumes", func() { ServerPorts: []int{6789}, } - defer func() { - if clean { - framework.VolumeTestCleanup(f, config) - } - }() + defer framework.VolumeTestCleanup(f, config) _, serverIP := framework.CreateStorageServer(cs, config) By("sleeping a bit to give ceph server time to initialize") time.Sleep(20 * time.Second) @@ -308,10 +286,8 @@ var _ = SIGDescribe("Volumes", func() { } defer func() { - if clean { - if err := cs.CoreV1().Secrets(namespace.Name).Delete(secret.Name, nil); err != nil { - framework.Failf("unable to delete secret %v: %v", secret.Name, err) - } + if err := cs.CoreV1().Secrets(namespace.Name).Delete(secret.Name, nil); err != nil { + framework.Failf("unable to delete secret %v: %v", secret.Name, err) } }() @@ -363,11 +339,7 @@ var _ = SIGDescribe("Volumes", func() { framework.Logf("cinder output:\n%s", outputString) Expect(err).NotTo(HaveOccurred()) - defer func() { - // Ignore any cleanup errors, there is not much we can do about - // them. They were already logged. - DeleteCinderVolume(volumeName) - }() + defer DeleteCinderVolume(volumeName) // Parse 'id'' from stdout. Expected format: // | attachments | [] | @@ -390,10 +362,8 @@ var _ = SIGDescribe("Volumes", func() { Expect(volumeID).NotTo(Equal("")) defer func() { - if clean { - framework.Logf("Running volumeTestCleanup") - framework.VolumeTestCleanup(f, config) - } + framework.Logf("Running volumeTestCleanup") + framework.VolumeTestCleanup(f, config) }() tests := []framework.VolumeTest{ @@ -439,16 +409,16 @@ var _ = SIGDescribe("Volumes", func() { }) It("should be mountable with ext3", func() { - testGCEPD(f, config, cs, clean, "ext3") + testGCEPD(f, config, cs, "ext3") }) It("should be mountable with ext4", func() { - testGCEPD(f, config, cs, clean, "ext4") + testGCEPD(f, config, cs, "ext4") }) It("should be mountable with xfs", func() { // xfs is not supported on gci // and not installed by default on debian framework.SkipUnlessNodeOSDistroIs("ubuntu") - testGCEPD(f, config, cs, clean, "xfs") + testGCEPD(f, config, cs, "xfs") }) }) @@ -462,11 +432,7 @@ var _ = SIGDescribe("Volumes", func() { Prefix: "configmap", } - defer func() { - if clean { - framework.VolumeTestCleanup(f, config) - } - }() + defer framework.VolumeTestCleanup(f, config) configMap := &v1.ConfigMap{ TypeMeta: metav1.TypeMeta{ Kind: "ConfigMap", @@ -535,9 +501,7 @@ var _ = SIGDescribe("Volumes", func() { Describe("vsphere [Feature:Volumes]", func() { It("should be mountable", func() { framework.SkipUnlessProviderIs("vsphere") - var ( - volumePath string - ) + var volumePath string config := framework.VolumeTestConfig{ Namespace: namespace.Name, Prefix: "vsphere", @@ -554,10 +518,8 @@ var _ = SIGDescribe("Volumes", func() { }() defer func() { - if clean { - framework.Logf("Running volumeTestCleanup") - framework.VolumeTestCleanup(f, config) - } + framework.Logf("Running volumeTestCleanup") + framework.VolumeTestCleanup(f, config) }() tests := []framework.VolumeTest{ @@ -601,10 +563,8 @@ var _ = SIGDescribe("Volumes", func() { }() defer func() { - if clean { - framework.Logf("Running volumeTestCleanup") - framework.VolumeTestCleanup(f, config) - } + framework.Logf("Running volumeTestCleanup") + framework.VolumeTestCleanup(f, config) }() fsType := "ext4" readOnly := false @@ -634,7 +594,7 @@ var _ = SIGDescribe("Volumes", func() { }) }) -func testGCEPD(f *framework.Framework, config framework.VolumeTestConfig, cs clientset.Interface, clean bool, fs string) { +func testGCEPD(f *framework.Framework, config framework.VolumeTestConfig, cs clientset.Interface, fs string) { By("creating a test gce pd volume") volumeName, err := framework.CreatePDWithRetry() Expect(err).NotTo(HaveOccurred()) @@ -647,10 +607,8 @@ func testGCEPD(f *framework.Framework, config framework.VolumeTestConfig, cs cli }() defer func() { - if clean { - framework.Logf("Running volumeTestCleanup") - framework.VolumeTestCleanup(f, config) - } + framework.Logf("Running volumeTestCleanup") + framework.VolumeTestCleanup(f, config) }() tests := []framework.VolumeTest{ diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_scale.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_scale.go new file mode 100644 index 000000000..801b1b93b --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_scale.go @@ -0,0 +1,247 @@ +/* +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 storage + +import ( + "fmt" + "os" + "strconv" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "k8s.io/api/core/v1" + storageV1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + k8stypes "k8s.io/apimachinery/pkg/types" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/test/e2e/framework" +) + +/* + Perform vsphere volume life cycle management at scale based on user configurable value for number of volumes. + The following actions will be performed as part of this test. + + 1. Create Storage Classes of 4 Categories (Default, SC with Non Default Datastore, SC with SPBM Policy, SC with VSAN Storage Capalibilies.) + 2. Read VCP_SCALE_VOLUME_COUNT, VCP_SCALE_INSTANCES, VCP_SCALE_VOLUMES_PER_POD, VSPHERE_SPBM_POLICY_NAME, VSPHERE_DATASTORE from System Environment. + 3. Launch VCP_SCALE_INSTANCES goroutine for creating VCP_SCALE_VOLUME_COUNT volumes. Each goroutine is responsible for create/attach of VCP_SCALE_VOLUME_COUNT/VCP_SCALE_INSTANCES volumes. + 4. Read VCP_SCALE_VOLUMES_PER_POD from System Environment. Each pod will be have VCP_SCALE_VOLUMES_PER_POD attached to it. + 5. Once all the go routines are completed, we delete all the pods and volumes. +*/ +const ( + NodeLabelKey = "vsphere_e2e_label" +) + +// NodeSelector holds +type NodeSelector struct { + labelKey string + labelValue string +} + +var _ = SIGDescribe("vcp at scale [Feature:vsphere] ", func() { + f := framework.NewDefaultFramework("vcp-at-scale") + + var ( + client clientset.Interface + namespace string + nodeSelectorList []*NodeSelector + volumeCount int + numberOfInstances int + volumesPerPod int + nodeVolumeMapChan chan map[string][]string + nodes *v1.NodeList + policyName string + datastoreName string + scNames = []string{storageclass1, storageclass2, storageclass3, storageclass4} + err error + ) + + BeforeEach(func() { + framework.SkipUnlessProviderIs("vsphere") + client = f.ClientSet + namespace = f.Namespace.Name + nodeVolumeMapChan = make(chan map[string][]string) + + // Read the environment variables + volumeCountStr := os.Getenv("VCP_SCALE_VOLUME_COUNT") + Expect(volumeCountStr).NotTo(BeEmpty(), "ENV VCP_SCALE_VOLUME_COUNT is not set") + volumeCount, err = strconv.Atoi(volumeCountStr) + Expect(err).NotTo(HaveOccurred(), "Error Parsing VCP_SCALE_VOLUME_COUNT") + + volumesPerPodStr := os.Getenv("VCP_SCALE_VOLUME_PER_POD") + Expect(volumesPerPodStr).NotTo(BeEmpty(), "ENV VCP_SCALE_VOLUME_PER_POD is not set") + volumesPerPod, err = strconv.Atoi(volumesPerPodStr) + Expect(err).NotTo(HaveOccurred(), "Error Parsing VCP_SCALE_VOLUME_PER_POD") + + numberOfInstancesStr := os.Getenv("VCP_SCALE_INSTANCES") + Expect(numberOfInstancesStr).NotTo(BeEmpty(), "ENV VCP_SCALE_INSTANCES is not set") + numberOfInstances, err = strconv.Atoi(numberOfInstancesStr) + Expect(err).NotTo(HaveOccurred(), "Error Parsing VCP_SCALE_INSTANCES") + Expect(numberOfInstances > 5).NotTo(BeTrue(), "Maximum allowed instances are 5") + Expect(numberOfInstances > volumeCount).NotTo(BeTrue(), "Number of instances should be less than the total volume count") + + policyName = os.Getenv("VSPHERE_SPBM_POLICY_NAME") + datastoreName = os.Getenv("VSPHERE_DATASTORE") + Expect(policyName).NotTo(BeEmpty(), "ENV VSPHERE_SPBM_POLICY_NAME is not set") + Expect(datastoreName).NotTo(BeEmpty(), "ENV VSPHERE_DATASTORE is not set") + + nodes = framework.GetReadySchedulableNodesOrDie(client) + if len(nodes.Items) < 2 { + framework.Skipf("Requires at least %d nodes (not %d)", 2, len(nodes.Items)) + } + // Verify volume count specified by the user can be satisfied + if volumeCount > volumesPerNode*len(nodes.Items) { + framework.Skipf("Cannot attach %d volumes to %d nodes. Maximum volumes that can be attached on %d nodes is %d", volumeCount, len(nodes.Items), len(nodes.Items), volumesPerNode*len(nodes.Items)) + } + nodeSelectorList = createNodeLabels(client, namespace, nodes) + }) + + /* + Remove labels from all the nodes + */ + framework.AddCleanupAction(func() { + for _, node := range nodes.Items { + framework.RemoveLabelOffNode(client, node.Name, NodeLabelKey) + } + }) + + It("vsphere scale tests", func() { + var pvcClaimList []string + nodeVolumeMap := make(map[k8stypes.NodeName][]string) + // Volumes will be provisioned with each different types of Storage Class + scArrays := make([]*storageV1.StorageClass, len(scNames)) + for index, scname := range scNames { + // Create vSphere Storage Class + By(fmt.Sprintf("Creating Storage Class : %q", scname)) + var sc *storageV1.StorageClass + scParams := make(map[string]string) + var err error + switch scname { + case storageclass1: + scParams = nil + case storageclass2: + scParams[Policy_HostFailuresToTolerate] = "1" + case storageclass3: + scParams[SpbmStoragePolicy] = policyName + case storageclass4: + scParams[Datastore] = datastoreName + } + sc, err = client.StorageV1().StorageClasses().Create(getVSphereStorageClassSpec(scname, scParams)) + Expect(sc).NotTo(BeNil(), "Storage class is empty") + Expect(err).NotTo(HaveOccurred(), "Failed to create storage class") + defer client.StorageV1().StorageClasses().Delete(scname, nil) + scArrays[index] = sc + } + + vsp, err := vsphere.GetVSphere() + Expect(err).NotTo(HaveOccurred()) + + volumeCountPerInstance := volumeCount / numberOfInstances + for instanceCount := 0; instanceCount < numberOfInstances; instanceCount++ { + if instanceCount == numberOfInstances-1 { + volumeCountPerInstance = volumeCount + } + volumeCount = volumeCount - volumeCountPerInstance + go VolumeCreateAndAttach(client, namespace, scArrays, volumeCountPerInstance, volumesPerPod, nodeSelectorList, nodeVolumeMapChan, vsp) + } + + // Get the list of all volumes attached to each node from the go routines by reading the data from the channel + for instanceCount := 0; instanceCount < numberOfInstances; instanceCount++ { + for node, volumeList := range <-nodeVolumeMapChan { + nodeVolumeMap[k8stypes.NodeName(node)] = append(nodeVolumeMap[k8stypes.NodeName(node)], volumeList...) + } + } + podList, err := client.CoreV1().Pods(namespace).List(metav1.ListOptions{}) + for _, pod := range podList.Items { + pvcClaimList = append(pvcClaimList, getClaimsForPod(&pod, volumesPerPod)...) + By("Deleting pod") + err = framework.DeletePodWithWait(f, client, &pod) + Expect(err).NotTo(HaveOccurred()) + } + By("Waiting for volumes to be detached from the node") + err = waitForVSphereDisksToDetach(vsp, nodeVolumeMap) + Expect(err).NotTo(HaveOccurred()) + + for _, pvcClaim := range pvcClaimList { + err = framework.DeletePersistentVolumeClaim(client, pvcClaim, namespace) + Expect(err).NotTo(HaveOccurred()) + } + }) +}) + +// Get PVC claims for the pod +func getClaimsForPod(pod *v1.Pod, volumesPerPod int) []string { + pvcClaimList := make([]string, volumesPerPod) + for i, volumespec := range pod.Spec.Volumes { + if volumespec.PersistentVolumeClaim != nil { + pvcClaimList[i] = volumespec.PersistentVolumeClaim.ClaimName + } + } + return pvcClaimList +} + +// VolumeCreateAndAttach peforms create and attach operations of vSphere persistent volumes at scale +func VolumeCreateAndAttach(client clientset.Interface, namespace string, sc []*storageV1.StorageClass, volumeCountPerInstance int, volumesPerPod int, nodeSelectorList []*NodeSelector, nodeVolumeMapChan chan map[string][]string, vsp *vsphere.VSphere) { + defer GinkgoRecover() + nodeVolumeMap := make(map[string][]string) + nodeSelectorIndex := 0 + for index := 0; index < volumeCountPerInstance; index = index + volumesPerPod { + if (volumeCountPerInstance - index) < volumesPerPod { + volumesPerPod = volumeCountPerInstance - index + } + pvclaims := make([]*v1.PersistentVolumeClaim, volumesPerPod) + for i := 0; i < volumesPerPod; i++ { + By("Creating PVC using the Storage Class") + pvclaim, err := framework.CreatePVC(client, namespace, getVSphereClaimSpecWithStorageClassAnnotation(namespace, "2Gi", sc[index%len(sc)])) + Expect(err).NotTo(HaveOccurred()) + pvclaims[i] = pvclaim + } + + By("Waiting for claim to be in bound phase") + persistentvolumes, err := framework.WaitForPVClaimBoundPhase(client, pvclaims, framework.ClaimProvisionTimeout) + Expect(err).NotTo(HaveOccurred()) + + By("Creating pod to attach PV to the node") + nodeSelector := nodeSelectorList[nodeSelectorIndex%len(nodeSelectorList)] + // Create pod to attach Volume to Node + pod, err := framework.CreatePod(client, namespace, map[string]string{nodeSelector.labelKey: nodeSelector.labelValue}, pvclaims, false, "") + Expect(err).NotTo(HaveOccurred()) + + for _, pv := range persistentvolumes { + nodeVolumeMap[pod.Spec.NodeName] = append(nodeVolumeMap[pod.Spec.NodeName], pv.Spec.VsphereVolume.VolumePath) + } + By("Verify the volume is accessible and available in the pod") + verifyVSphereVolumesAccessible(pod, persistentvolumes, vsp) + nodeSelectorIndex++ + } + nodeVolumeMapChan <- nodeVolumeMap + close(nodeVolumeMapChan) +} + +func createNodeLabels(client clientset.Interface, namespace string, nodes *v1.NodeList) []*NodeSelector { + var nodeSelectorList []*NodeSelector + for i, node := range nodes.Items { + labelVal := "vsphere_e2e_" + strconv.Itoa(i) + nodeSelector := &NodeSelector{ + labelKey: NodeLabelKey, + labelValue: labelVal, + } + nodeSelectorList = append(nodeSelectorList, nodeSelector) + framework.AddOrUpdateLabelOnNode(client, node.Name, NodeLabelKey, labelVal) + } + return nodeSelectorList +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_statefulsets.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_statefulsets.go new file mode 100644 index 000000000..c2823c72d --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_statefulsets.go @@ -0,0 +1,156 @@ +/* +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 storage + +import ( + "fmt" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/test/e2e/framework" +) + +/* + Test performs following operations + + Steps + 1. Create a storage class with thin diskformat. + 2. Create nginx service. + 3. Create nginx statefulsets with 3 replicas. + 4. Wait until all Pods are ready and PVCs are bounded with PV. + 5. Verify volumes are accessible in all statefulsets pods with creating empty file. + 6. Scale down statefulsets to 2 replicas. + 7. Scale up statefulsets to 4 replicas. + 8. Scale down statefulsets to 0 replicas and delete all pods. + 9. Delete all PVCs from the test namespace. + 10. Delete the storage class. +*/ + +const ( + manifestPath = "test/e2e/testing-manifests/statefulset/nginx" + mountPath = "/usr/share/nginx/html" + storageclassname = "nginx-sc" +) + +var _ = SIGDescribe("vsphere statefulset", func() { + f := framework.NewDefaultFramework("vsphere-statefulset") + var ( + namespace string + client clientset.Interface + ) + BeforeEach(func() { + framework.SkipUnlessProviderIs("vsphere") + namespace = f.Namespace.Name + client = f.ClientSet + }) + AfterEach(func() { + framework.Logf("Deleting all statefulset in namespace: %v", namespace) + framework.DeleteAllStatefulSets(client, namespace) + }) + + It("vsphere statefulset testing", func() { + By("Creating StorageClass for Statefulset") + scParameters := make(map[string]string) + scParameters["diskformat"] = "thin" + scSpec := getVSphereStorageClassSpec(storageclassname, scParameters) + sc, err := client.StorageV1().StorageClasses().Create(scSpec) + Expect(err).NotTo(HaveOccurred()) + defer client.StorageV1().StorageClasses().Delete(sc.Name, nil) + + By("Creating statefulset") + statefulsetTester := framework.NewStatefulSetTester(client) + statefulset := statefulsetTester.CreateStatefulSet(manifestPath, namespace) + replicas := *(statefulset.Spec.Replicas) + // Waiting for pods status to be Ready + statefulsetTester.WaitForStatusReadyReplicas(statefulset, replicas) + Expect(statefulsetTester.CheckMount(statefulset, mountPath)).NotTo(HaveOccurred()) + ssPodsBeforeScaleDown := statefulsetTester.GetPodList(statefulset) + Expect(ssPodsBeforeScaleDown.Items).NotTo(BeEmpty(), fmt.Sprintf("Unable to get list of Pods from the Statefulset: %v", statefulset.Name)) + Expect(len(ssPodsBeforeScaleDown.Items) == int(replicas)).To(BeTrue(), "Number of Pods in the statefulset should match with number of replicas") + + // Get the list of Volumes attached to Pods before scale down + volumesBeforeScaleDown := make(map[string]string) + for _, sspod := range ssPodsBeforeScaleDown.Items { + _, err := client.CoreV1().Pods(namespace).Get(sspod.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + for _, volumespec := range sspod.Spec.Volumes { + if volumespec.PersistentVolumeClaim != nil { + volumePath := getvSphereVolumePathFromClaim(client, statefulset.Namespace, volumespec.PersistentVolumeClaim.ClaimName) + volumesBeforeScaleDown[volumePath] = volumespec.PersistentVolumeClaim.ClaimName + } + } + } + + By(fmt.Sprintf("Scaling down statefulsets to number of Replica: %v", replicas-1)) + _, scaledownErr := statefulsetTester.Scale(statefulset, replicas-1) + Expect(scaledownErr).NotTo(HaveOccurred()) + statefulsetTester.WaitForStatusReadyReplicas(statefulset, replicas-1) + + vsp, err := vsphere.GetVSphere() + Expect(err).NotTo(HaveOccurred()) + + // After scale down, verify vsphere volumes are detached from deleted pods + By("Verify Volumes are detached from Nodes after Statefulsets is scaled down") + for _, sspod := range ssPodsBeforeScaleDown.Items { + _, err := client.CoreV1().Pods(namespace).Get(sspod.Name, metav1.GetOptions{}) + if err != nil { + Expect(apierrs.IsNotFound(err), BeTrue()) + for _, volumespec := range sspod.Spec.Volumes { + if volumespec.PersistentVolumeClaim != nil { + vSpherediskPath := getvSphereVolumePathFromClaim(client, statefulset.Namespace, volumespec.PersistentVolumeClaim.ClaimName) + framework.Logf("Waiting for Volume: %q to detach from Node: %q", vSpherediskPath, sspod.Spec.NodeName) + Expect(waitForVSphereDiskToDetach(vsp, vSpherediskPath, types.NodeName(sspod.Spec.NodeName))).NotTo(HaveOccurred()) + } + } + } + } + + By(fmt.Sprintf("Scaling up statefulsets to number of Replica: %v", replicas)) + _, scaleupErr := statefulsetTester.Scale(statefulset, replicas) + Expect(scaleupErr).NotTo(HaveOccurred()) + statefulsetTester.WaitForStatusReplicas(statefulset, replicas) + statefulsetTester.WaitForStatusReadyReplicas(statefulset, replicas) + + ssPodsAfterScaleUp := statefulsetTester.GetPodList(statefulset) + Expect(ssPodsAfterScaleUp.Items).NotTo(BeEmpty(), fmt.Sprintf("Unable to get list of Pods from the Statefulset: %v", statefulset.Name)) + Expect(len(ssPodsAfterScaleUp.Items) == int(replicas)).To(BeTrue(), "Number of Pods in the statefulset should match with number of replicas") + + // After scale up, verify all vsphere volumes are attached to node VMs. + By("Verify all volumes are attached to Nodes after Statefulsets is scaled up") + for _, sspod := range ssPodsAfterScaleUp.Items { + err := framework.WaitForPodsReady(client, statefulset.Namespace, sspod.Name, 0) + Expect(err).NotTo(HaveOccurred()) + pod, err := client.CoreV1().Pods(namespace).Get(sspod.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + for _, volumespec := range pod.Spec.Volumes { + if volumespec.PersistentVolumeClaim != nil { + vSpherediskPath := getvSphereVolumePathFromClaim(client, statefulset.Namespace, volumespec.PersistentVolumeClaim.ClaimName) + framework.Logf("Verify Volume: %q is attached to the Node: %q", vSpherediskPath, sspod.Spec.NodeName) + // Verify scale up has re-attached the same volumes and not introduced new volume + Expect(volumesBeforeScaleDown[vSpherediskPath] == "").To(BeFalse()) + isVolumeAttached, verifyDiskAttachedError := verifyVSphereDiskAttached(vsp, vSpherediskPath, types.NodeName(sspod.Spec.NodeName)) + Expect(isVolumeAttached).To(BeTrue()) + Expect(verifyDiskAttachedError).NotTo(HaveOccurred()) + } + } + } + }) +}) diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_stress.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_stress.go new file mode 100644 index 000000000..4dcea0760 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_stress.go @@ -0,0 +1,185 @@ +/* +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 storage + +import ( + "fmt" + "os" + "strconv" + "sync" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "k8s.io/api/core/v1" + storageV1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + k8stype "k8s.io/apimachinery/pkg/types" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/test/e2e/framework" +) + +/* + Induce stress to create volumes in parallel with multiple threads based on user configurable values for number of threads and iterations per thread. + The following actions will be performed as part of this test. + + 1. Create Storage Classes of 4 Categories (Default, SC with Non Default Datastore, SC with SPBM Policy, SC with VSAN Storage Capalibilies.) + 2. READ VCP_STRESS_INSTANCES, VCP_STRESS_ITERATIONS, VSPHERE_SPBM_POLICY_NAME and VSPHERE_DATASTORE from System Environment. + 3. Launch goroutine for volume lifecycle operations. + 4. Each instance of routine iterates for n times, where n is read from system env - VCP_STRESS_ITERATIONS + 5. Each iteration creates 1 PVC, 1 POD using the provisioned PV, Verify disk is attached to the node, Verify pod can access the volume, delete the pod and finally delete the PVC. +*/ +var _ = SIGDescribe("vsphere cloud provider stress [Feature:vsphere]", func() { + f := framework.NewDefaultFramework("vcp-stress") + var ( + client clientset.Interface + namespace string + instances int + iterations int + err error + scNames = []string{storageclass1, storageclass2, storageclass3, storageclass4} + policyName string + datastoreName string + ) + + BeforeEach(func() { + framework.SkipUnlessProviderIs("vsphere") + client = f.ClientSet + namespace = f.Namespace.Name + + nodeList := framework.GetReadySchedulableNodesOrDie(f.ClientSet) + Expect(nodeList.Items).NotTo(BeEmpty(), "Unable to find ready and schedulable Node") + + // if VCP_STRESS_INSTANCES = 12 and VCP_STRESS_ITERATIONS is 10. 12 threads will run in parallel for 10 times. + // Resulting 120 Volumes and POD Creation. Volumes will be provisioned with each different types of Storage Class, + // Each iteration creates PVC, verify PV is provisioned, then creates a pod, verify volume is attached to the node, and then delete the pod and delete pvc. + instancesStr := os.Getenv("VCP_STRESS_INSTANCES") + Expect(instancesStr).NotTo(BeEmpty(), "ENV VCP_STRESS_INSTANCES is not set") + instances, err = strconv.Atoi(instancesStr) + Expect(err).NotTo(HaveOccurred(), "Error Parsing VCP-STRESS-INSTANCES") + Expect(instances <= volumesPerNode*len(nodeList.Items)).To(BeTrue(), fmt.Sprintf("Number of Instances should be less or equal: %v", volumesPerNode*len(nodeList.Items))) + Expect(instances > len(scNames)).To(BeTrue(), "VCP_STRESS_INSTANCES should be greater than 3 to utilize all 4 types of storage classes") + + iterationStr := os.Getenv("VCP_STRESS_ITERATIONS") + Expect(instancesStr).NotTo(BeEmpty(), "ENV VCP_STRESS_ITERATIONS is not set") + iterations, err = strconv.Atoi(iterationStr) + Expect(err).NotTo(HaveOccurred(), "Error Parsing VCP_STRESS_ITERATIONS") + Expect(iterations > 0).To(BeTrue(), "VCP_STRESS_ITERATIONS should be greater than 0") + + policyName = os.Getenv("VSPHERE_SPBM_POLICY_NAME") + datastoreName = os.Getenv("VSPHERE_DATASTORE") + Expect(policyName).NotTo(BeEmpty(), "ENV VSPHERE_SPBM_POLICY_NAME is not set") + Expect(datastoreName).NotTo(BeEmpty(), "ENV VSPHERE_DATASTORE is not set") + }) + + It("vsphere stress tests", func() { + scArrays := make([]*storageV1.StorageClass, len(scNames)) + for index, scname := range scNames { + // Create vSphere Storage Class + By(fmt.Sprintf("Creating Storage Class : %v", scname)) + var sc *storageV1.StorageClass + var err error + switch scname { + case storageclass1: + sc, err = client.StorageV1().StorageClasses().Create(getVSphereStorageClassSpec(storageclass1, nil)) + case storageclass2: + var scVSanParameters map[string]string + scVSanParameters = make(map[string]string) + scVSanParameters[Policy_HostFailuresToTolerate] = "1" + sc, err = client.StorageV1().StorageClasses().Create(getVSphereStorageClassSpec(storageclass2, scVSanParameters)) + case storageclass3: + var scSPBMPolicyParameters map[string]string + scSPBMPolicyParameters = make(map[string]string) + scSPBMPolicyParameters[SpbmStoragePolicy] = policyName + sc, err = client.StorageV1().StorageClasses().Create(getVSphereStorageClassSpec(storageclass3, scSPBMPolicyParameters)) + case storageclass4: + var scWithDSParameters map[string]string + scWithDSParameters = make(map[string]string) + scWithDSParameters[Datastore] = datastoreName + scWithDatastoreSpec := getVSphereStorageClassSpec(storageclass4, scWithDSParameters) + sc, err = client.StorageV1().StorageClasses().Create(scWithDatastoreSpec) + } + Expect(sc).NotTo(BeNil()) + Expect(err).NotTo(HaveOccurred()) + defer client.StorageV1().StorageClasses().Delete(scname, nil) + scArrays[index] = sc + } + + var wg sync.WaitGroup + wg.Add(instances) + for instanceCount := 0; instanceCount < instances; instanceCount++ { + instanceId := fmt.Sprintf("Thread:%v", instanceCount+1) + go PerformVolumeLifeCycleInParallel(f, client, namespace, instanceId, scArrays[instanceCount%len(scArrays)], iterations, &wg) + } + wg.Wait() + }) + +}) + +// goroutine to perform volume lifecycle operations in parallel +func PerformVolumeLifeCycleInParallel(f *framework.Framework, client clientset.Interface, namespace string, instanceId string, sc *storageV1.StorageClass, iterations int, wg *sync.WaitGroup) { + defer wg.Done() + defer GinkgoRecover() + vsp, err := vsphere.GetVSphere() + Expect(err).NotTo(HaveOccurred()) + + for iterationCount := 0; iterationCount < iterations; iterationCount++ { + logPrefix := fmt.Sprintf("Instance: [%v], Iteration: [%v] :", instanceId, iterationCount+1) + By(fmt.Sprintf("%v Creating PVC using the Storage Class: %v", logPrefix, sc.Name)) + pvclaim, err := framework.CreatePVC(client, namespace, getVSphereClaimSpecWithStorageClassAnnotation(namespace, "1Gi", sc)) + Expect(err).NotTo(HaveOccurred()) + defer framework.DeletePersistentVolumeClaim(client, pvclaim.Name, namespace) + + var pvclaims []*v1.PersistentVolumeClaim + pvclaims = append(pvclaims, pvclaim) + By(fmt.Sprintf("%v Waiting for claim: %v to be in bound phase", logPrefix, pvclaim.Name)) + persistentvolumes, err := framework.WaitForPVClaimBoundPhase(client, pvclaims, framework.ClaimProvisionTimeout) + Expect(err).NotTo(HaveOccurred()) + + By(fmt.Sprintf("%v Creating Pod using the claim: %v", logPrefix, pvclaim.Name)) + // Create pod to attach Volume to Node + pod, err := framework.CreatePod(client, namespace, nil, pvclaims, false, "") + Expect(err).NotTo(HaveOccurred()) + + By(fmt.Sprintf("%v Waiting for the Pod: %v to be in the running state", logPrefix, pod.Name)) + Expect(f.WaitForPodRunningSlow(pod.Name)).NotTo(HaveOccurred()) + + // Get the copy of the Pod to know the assigned node name. + pod, err = client.CoreV1().Pods(namespace).Get(pod.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + + By(fmt.Sprintf("%v Verifing the volume: %v is attached to the node VM: %v", logPrefix, persistentvolumes[0].Spec.VsphereVolume.VolumePath, pod.Spec.NodeName)) + isVolumeAttached, verifyDiskAttachedError := verifyVSphereDiskAttached(vsp, persistentvolumes[0].Spec.VsphereVolume.VolumePath, types.NodeName(pod.Spec.NodeName)) + Expect(isVolumeAttached).To(BeTrue()) + Expect(verifyDiskAttachedError).NotTo(HaveOccurred()) + + By(fmt.Sprintf("%v Verifing the volume: %v is accessible in the pod: %v", logPrefix, persistentvolumes[0].Spec.VsphereVolume.VolumePath, pod.Name)) + verifyVSphereVolumesAccessible(pod, persistentvolumes, vsp) + + By(fmt.Sprintf("%v Deleting pod: %v", logPrefix, pod.Name)) + err = framework.DeletePodWithWait(f, client, pod) + Expect(err).NotTo(HaveOccurred()) + + By(fmt.Sprintf("%v Waiting for volume: %v to be detached from the node: %v", logPrefix, persistentvolumes[0].Spec.VsphereVolume.VolumePath, pod.Spec.NodeName)) + err = waitForVSphereDiskToDetach(vsp, persistentvolumes[0].Spec.VsphereVolume.VolumePath, k8stype.NodeName(pod.Spec.NodeName)) + Expect(err).NotTo(HaveOccurred()) + + By(fmt.Sprintf("%v Deleting the Claim: %v", logPrefix, pvclaim.Name)) + Expect(framework.DeletePersistentVolumeClaim(client, pvclaim.Name, namespace)).NotTo(HaveOccurred()) + } +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_utils.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_utils.go index a0b15ff34..2215b6fa7 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_utils.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_utils.go @@ -36,7 +36,22 @@ import ( "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" "k8s.io/kubernetes/pkg/volume/util/volumehelper" "k8s.io/kubernetes/test/e2e/framework" - imageutils "k8s.io/kubernetes/test/utils/image" +) + +const ( + volumesPerNode = 55 + storageclass1 = "sc-default" + storageclass2 = "sc-vsan" + storageclass3 = "sc-spbm" + storageclass4 = "sc-user-specified-ds" +) + +// volumeState represents the state of a volume. +type volumeState int32 + +const ( + volumeStateDetached volumeState = 1 + volumeStateAttached volumeState = 2 ) // Sanity check for vSphere testing. Verify the persistent disk attached to the node. @@ -54,11 +69,11 @@ func verifyVSphereDiskAttached(vsp *vsphere.VSphere, volumePath string, nodeName return isAttached, err } -// Wait until vsphere vmdk is deteched from the given node or time out after 5 minutes -func waitForVSphereDiskToDetach(vsp *vsphere.VSphere, volumePath string, nodeName types.NodeName) error { +// Wait until vsphere volumes are detached from the list of nodes or time out after 5 minutes +func waitForVSphereDisksToDetach(vsp *vsphere.VSphere, nodeVolumes map[k8stype.NodeName][]string) error { var ( err error - diskAttached = true + disksAttached = true detachTimeout = 5 * time.Minute detachPollTime = 10 * time.Second ) @@ -69,25 +84,83 @@ func waitForVSphereDiskToDetach(vsp *vsphere.VSphere, volumePath string, nodeNam } } err = wait.Poll(detachPollTime, detachTimeout, func() (bool, error) { + attachedResult, err := vsp.DisksAreAttached(nodeVolumes) + if err != nil { + return false, err + } + for nodeName, nodeVolumes := range attachedResult { + for volumePath, attached := range nodeVolumes { + if attached { + framework.Logf("Waiting for volumes %q to detach from %q.", volumePath, string(nodeName)) + return false, nil + } + } + } + disksAttached = false + framework.Logf("Volume are successfully detached from all the nodes: %+v", nodeVolumes) + return true, nil + }) + if err != nil { + return err + } + if disksAttached { + return fmt.Errorf("Gave up waiting for volumes to detach after %v", detachTimeout) + } + return nil +} + +// Wait until vsphere vmdk moves to expected state on the given node, or time out after 6 minutes +func waitForVSphereDiskStatus(vsp *vsphere.VSphere, volumePath string, nodeName types.NodeName, expectedState volumeState) error { + var ( + err error + diskAttached bool + currentState volumeState + timeout = 6 * time.Minute + pollTime = 10 * time.Second + ) + + var attachedState = map[bool]volumeState{ + true: volumeStateAttached, + false: volumeStateDetached, + } + + var attachedStateMsg = map[volumeState]string{ + volumeStateAttached: "attached to", + volumeStateDetached: "detached from", + } + + err = wait.Poll(pollTime, timeout, func() (bool, error) { diskAttached, err = verifyVSphereDiskAttached(vsp, volumePath, nodeName) if err != nil { return true, err } - if !diskAttached { - framework.Logf("Volume %q appears to have successfully detached from %q.", - volumePath, nodeName) + + currentState = attachedState[diskAttached] + if currentState == expectedState { + framework.Logf("Volume %q has successfully %s %q", volumePath, attachedStateMsg[currentState], nodeName) return true, nil } - framework.Logf("Waiting for Volume %q to detach from %q.", volumePath, nodeName) + framework.Logf("Waiting for Volume %q to be %s %q.", volumePath, attachedStateMsg[expectedState], nodeName) return false, nil }) if err != nil { return err } - if diskAttached { - return fmt.Errorf("Gave up waiting for Volume %q to detach from %q after %v", volumePath, nodeName, detachTimeout) + + if currentState != expectedState { + err = fmt.Errorf("Gave up waiting for Volume %q to be %s %q after %v", volumePath, attachedStateMsg[expectedState], nodeName, timeout) } - return nil + return err +} + +// Wait until vsphere vmdk is attached from the given node or time out after 6 minutes +func waitForVSphereDiskToAttach(vsp *vsphere.VSphere, volumePath string, nodeName types.NodeName) error { + return waitForVSphereDiskStatus(vsp, volumePath, nodeName, volumeStateAttached) +} + +// Wait until vsphere vmdk is detached from the given node or time out after 6 minutes +func waitForVSphereDiskToDetach(vsp *vsphere.VSphere, volumePath string, nodeName types.NodeName) error { + return waitForVSphereDiskStatus(vsp, volumePath, nodeName, volumeStateDetached) } // function to create vsphere volume spec with given VMDK volume path, Reclaim Policy and labels @@ -245,7 +318,7 @@ func getVSpherePodSpecWithClaim(claimName string, nodeSelectorKV map[string]stri Containers: []v1.Container{ { Name: "volume-tester", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"/bin/sh"}, Args: []string{"-c", command}, VolumeMounts: []v1.VolumeMount{ @@ -310,7 +383,7 @@ func getVSpherePodSpecWithVolumePaths(volumePaths []string, keyValuelabel map[st Containers: []v1.Container{ { Name: "vsphere-e2e-container-" + string(uuid.NewUUID()), - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: commands, VolumeMounts: volumeMounts, }, @@ -355,3 +428,12 @@ func verifyVSphereVolumesAccessible(pod *v1.Pod, persistentvolumes []*v1.Persist Expect(err).NotTo(HaveOccurred()) } } + +// Get vSphere Volume Path from PVC +func getvSphereVolumePathFromClaim(client clientset.Interface, namespace string, claimName string) string { + pvclaim, err := client.CoreV1().PersistentVolumeClaims(namespace).Get(claimName, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + pv, err := client.CoreV1().PersistentVolumes().Get(pvclaim.Spec.VolumeName, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + return pv.Spec.VsphereVolume.VolumePath +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_fstype.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_fstype.go index 3e61338e1..7ace7eed6 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_fstype.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_fstype.go @@ -128,7 +128,7 @@ func invokeTestForInvalidFstype(f *framework.Framework, client clientset.Interfa var pvclaims []*v1.PersistentVolumeClaim pvclaims = append(pvclaims, pvclaim) // Create pod to attach Volume to Node - pod, err := framework.CreatePod(client, namespace, pvclaims, false, ExecCommand) + pod, err := framework.CreatePod(client, namespace, nil, pvclaims, false, ExecCommand) Expect(err).To(HaveOccurred()) eventList, err := client.CoreV1().Events(namespace).List(metav1.ListOptions{}) @@ -170,7 +170,7 @@ func createPodAndVerifyVolumeAccessible(client clientset.Interface, namespace st pvclaims = append(pvclaims, pvclaim) By("Creating pod to attach PV to the node") // Create pod to attach Volume to Node - pod, err := framework.CreatePod(client, namespace, pvclaims, false, ExecCommand) + pod, err := framework.CreatePod(client, namespace, nil, pvclaims, false, "") Expect(err).NotTo(HaveOccurred()) // Asserts: Right disk is attached to the pod diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_master_restart.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_master_restart.go new file mode 100644 index 000000000..36a0164aa --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_master_restart.go @@ -0,0 +1,146 @@ +/* +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 storage + +import ( + "fmt" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/uuid" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/test/e2e/framework" +) + +/* + Test to verify volume remains attached after kubelet restart on master node + For the number of schedulable nodes, + 1. Create a volume with default volume options + 2. Create a Pod + 3. Verify the volume is attached + 4. Restart the kubelet on master node + 5. Verify again that the volume is attached + 6. Delete the pod and wait for the volume to be detached + 7. Delete the volume +*/ +var _ = SIGDescribe("Volume Attach Verify [Feature:vsphere][Serial][Disruptive]", func() { + f := framework.NewDefaultFramework("restart-master") + + const labelKey = "vsphere_e2e_label" + var ( + client clientset.Interface + namespace string + volumePaths []string + pods []*v1.Pod + numNodes int + nodeKeyValueLabelList []map[string]string + nodeNameList []string + ) + BeforeEach(func() { + framework.SkipUnlessProviderIs("vsphere") + client = f.ClientSet + namespace = f.Namespace.Name + framework.ExpectNoError(framework.WaitForAllNodesSchedulable(client, framework.TestContext.NodeSchedulableTimeout)) + + nodes := framework.GetReadySchedulableNodesOrDie(client) + numNodes = len(nodes.Items) + if numNodes < 2 { + framework.Skipf("Requires at least %d nodes (not %d)", 2, len(nodes.Items)) + } + + for i := 0; i < numNodes; i++ { + nodeName := nodes.Items[i].Name + nodeNameList = append(nodeNameList, nodeName) + nodeLabelValue := "vsphere_e2e_" + string(uuid.NewUUID()) + nodeKeyValueLabel := make(map[string]string) + nodeKeyValueLabel[labelKey] = nodeLabelValue + nodeKeyValueLabelList = append(nodeKeyValueLabelList, nodeKeyValueLabel) + framework.AddOrUpdateLabelOnNode(client, nodeName, labelKey, nodeLabelValue) + } + }) + + It("verify volume remains attached after master kubelet restart", func() { + vsp, err := vsphere.GetVSphere() + Expect(err).NotTo(HaveOccurred()) + + // Create pod on each node + for i := 0; i < numNodes; i++ { + By(fmt.Sprintf("%d: Creating a test vsphere volume", i)) + volumePath, err := createVSphereVolume(vsp, nil) + Expect(err).NotTo(HaveOccurred()) + + volumePaths = append(volumePaths, volumePath) + + By(fmt.Sprintf("Creating pod %d on node %v", i, nodeNameList[i])) + podspec := getVSpherePodSpecWithVolumePaths([]string{volumePath}, nodeKeyValueLabelList[i], nil) + pod, err := client.CoreV1().Pods(namespace).Create(podspec) + Expect(err).NotTo(HaveOccurred()) + defer framework.DeletePodWithWait(f, client, pod) + + By("Waiting for pod to be ready") + Expect(framework.WaitForPodNameRunningInNamespace(client, pod.Name, namespace)).To(Succeed()) + + pod, err = client.CoreV1().Pods(namespace).Get(pod.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + + pods = append(pods, pod) + + nodeName := types.NodeName(pod.Spec.NodeName) + By(fmt.Sprintf("Verify volume %s is attached to the pod %v", volumePath, nodeName)) + isAttached, err := verifyVSphereDiskAttached(vsp, volumePath, types.NodeName(nodeName)) + Expect(err).NotTo(HaveOccurred()) + Expect(isAttached).To(BeTrue(), fmt.Sprintf("disk: %s is not attached with the node", volumePath)) + + } + + By("Restarting kubelet on master node") + masterAddress := framework.GetMasterHost() + ":22" + err = framework.RestartKubelet(masterAddress) + Expect(err).NotTo(HaveOccurred(), "Unable to restart kubelet on master node") + + By("Verifying the kubelet on master node is up") + err = framework.WaitForKubeletUp(masterAddress) + Expect(err).NotTo(HaveOccurred()) + + for i, pod := range pods { + volumePath := volumePaths[i] + + nodeName := types.NodeName(pod.Spec.NodeName) + By(fmt.Sprintf("After master restart, verify volume %v is attached to the pod %v", volumePath, nodeName)) + isAttached, err := verifyVSphereDiskAttached(vsp, volumePaths[i], types.NodeName(nodeName)) + Expect(err).NotTo(HaveOccurred()) + Expect(isAttached).To(BeTrue(), fmt.Sprintf("disk: %s is not attached with the node", volumePath)) + + By(fmt.Sprintf("Deleting pod on node %v", nodeName)) + err = framework.DeletePodWithWait(f, client, pod) + Expect(err).NotTo(HaveOccurred()) + + By(fmt.Sprintf("Waiting for volume %s to be detached from the node %v", volumePath, nodeName)) + err = waitForVSphereDiskToDetach(vsp, volumePath, types.NodeName(nodeName)) + Expect(err).NotTo(HaveOccurred()) + + By(fmt.Sprintf("Deleting volume %s", volumePath)) + err = vsp.DeleteVolume(volumePath) + Expect(err).NotTo(HaveOccurred()) + } + }) +}) diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_node_poweroff.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_node_poweroff.go new file mode 100644 index 000000000..a28a06305 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_node_poweroff.go @@ -0,0 +1,197 @@ +/* +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 storage + +import ( + "fmt" + "os" + "path/filepath" + "time" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/vmware/govmomi/find" + "golang.org/x/net/context" + + vimtypes "github.com/vmware/govmomi/vim25/types" + "k8s.io/api/core/v1" + extensions "k8s.io/api/extensions/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/wait" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/test/e2e/framework" +) + +/* + Test to verify volume status after node power off: + 1. Verify the pod got provisioned on a different node with volume attached to it + 2. Verify the volume is detached from the powered off node +*/ +var _ = SIGDescribe("Node Poweroff [Feature:vsphere] [Slow] [Disruptive]", func() { + f := framework.NewDefaultFramework("node-poweroff") + var ( + client clientset.Interface + namespace string + vsp *vsphere.VSphere + workingDir string + err error + ) + + BeforeEach(func() { + framework.SkipUnlessProviderIs("vsphere") + client = f.ClientSet + namespace = f.Namespace.Name + framework.ExpectNoError(framework.WaitForAllNodesSchedulable(client, framework.TestContext.NodeSchedulableTimeout)) + nodeList := framework.GetReadySchedulableNodesOrDie(f.ClientSet) + Expect(nodeList.Items).NotTo(BeEmpty(), "Unable to find ready and schedulable Node") + Expect(len(nodeList.Items) > 1).To(BeTrue(), "At least 2 nodes are required for this test") + vsp, err = vsphere.GetVSphere() + Expect(err).NotTo(HaveOccurred()) + workingDir = os.Getenv("VSPHERE_WORKING_DIR") + Expect(workingDir).NotTo(BeEmpty()) + }) + + /* + Steps: + 1. Create a StorageClass + 2. Create a PVC with the StorageClass + 3. Create a Deployment with 1 replica, using the PVC + 4. Verify the pod got provisioned on a node + 5. Verify the volume is attached to the node + 6. Power off the node where pod got provisioned + 7. Verify the pod got provisioned on a different node + 8. Verify the volume is attached to the new node + 9. Verify the volume is detached from the old node + 10. Delete the Deployment and wait for the volume to be detached + 11. Delete the PVC + 12. Delete the StorageClass + */ + It("verify volume status after node power off", func() { + By("Creating a Storage Class") + storageClassSpec := getVSphereStorageClassSpec("test-sc", nil) + storageclass, err := client.StorageV1().StorageClasses().Create(storageClassSpec) + Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("Failed to create storage class with err: %v", err)) + defer client.StorageV1().StorageClasses().Delete(storageclass.Name, nil) + + By("Creating PVC using the Storage Class") + pvclaimSpec := getVSphereClaimSpecWithStorageClassAnnotation(namespace, "1Gi", storageclass) + pvclaim, err := framework.CreatePVC(client, namespace, pvclaimSpec) + Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("Failed to create PVC with err: %v", err)) + defer framework.DeletePersistentVolumeClaim(client, pvclaim.Name, namespace) + + By("Waiting for PVC to be in bound phase") + pvclaims := []*v1.PersistentVolumeClaim{pvclaim} + pvs, err := framework.WaitForPVClaimBoundPhase(client, pvclaims, framework.ClaimProvisionTimeout) + Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("Failed to wait until PVC phase set to bound: %v", err)) + volumePath := pvs[0].Spec.VsphereVolume.VolumePath + + By("Creating a Deployment") + deployment, err := framework.CreateDeployment(client, int32(1), map[string]string{"test": "app"}, namespace, pvclaims, "") + defer client.Extensions().Deployments(namespace).Delete(deployment.Name, &metav1.DeleteOptions{}) + + By("Get pod from the deployement") + podList, err := framework.GetPodsForDeployment(client, deployment) + Expect(podList.Items).NotTo(BeEmpty()) + pod := podList.Items[0] + node1 := types.NodeName(pod.Spec.NodeName) + + By(fmt.Sprintf("Verify disk is attached to the node: %v", node1)) + isAttached, err := verifyVSphereDiskAttached(vsp, volumePath, node1) + Expect(err).NotTo(HaveOccurred()) + Expect(isAttached).To(BeTrue(), "Disk is not attached to the node") + + By(fmt.Sprintf("Power off the node: %v", node1)) + govMoMiClient, err := vsphere.GetgovmomiClient(nil) + Expect(err).NotTo(HaveOccurred()) + + f := find.NewFinder(govMoMiClient.Client, true) + ctx, _ := context.WithCancel(context.Background()) + + vmPath := filepath.Join(workingDir, string(node1)) + vm, err := f.VirtualMachine(ctx, vmPath) + Expect(err).NotTo(HaveOccurred()) + + _, err = vm.PowerOff(ctx) + Expect(err).NotTo(HaveOccurred()) + defer vm.PowerOn(ctx) + + err = vm.WaitForPowerState(ctx, vimtypes.VirtualMachinePowerStatePoweredOff) + Expect(err).NotTo(HaveOccurred(), "Unable to power off the node") + + // Waiting for the pod to be failed over to a different node + node2, err := waitForPodToFailover(client, deployment, node1) + Expect(err).NotTo(HaveOccurred(), "Pod did not fail over to a different node") + + By(fmt.Sprintf("Waiting for disk to be attached to the new node: %v", node2)) + err = waitForVSphereDiskToAttach(vsp, volumePath, node2) + Expect(err).NotTo(HaveOccurred(), "Disk is not attached to the node") + + By(fmt.Sprintf("Waiting for disk to be detached from the previous node: %v", node1)) + err = waitForVSphereDiskToDetach(vsp, volumePath, node1) + Expect(err).NotTo(HaveOccurred(), "Disk is not detached from the node") + + By(fmt.Sprintf("Power on the previous node: %v", node1)) + vm.PowerOn(ctx) + err = vm.WaitForPowerState(ctx, vimtypes.VirtualMachinePowerStatePoweredOn) + Expect(err).NotTo(HaveOccurred(), "Unable to power on the node") + }) +}) + +// Wait until the pod failed over to a different node, or time out after 3 minutes +func waitForPodToFailover(client clientset.Interface, deployment *extensions.Deployment, oldNode types.NodeName) (types.NodeName, error) { + var ( + err error + newNode types.NodeName + timeout = 3 * time.Minute + pollTime = 10 * time.Second + ) + + err = wait.Poll(pollTime, timeout, func() (bool, error) { + newNode, err = getNodeForDeployment(client, deployment) + if err != nil { + return true, err + } + + if newNode != oldNode { + framework.Logf("The pod has been failed over from %q to %q", oldNode, newNode) + return true, nil + } + + framework.Logf("Waiting for pod to be failed over from %q", oldNode) + return false, nil + }) + + if err != nil { + if err == wait.ErrWaitTimeout { + framework.Logf("Time out after waiting for %v", timeout) + } + framework.Logf("Pod did not fail over from %q with error: %v", oldNode, err) + return "", err + } + + return getNodeForDeployment(client, deployment) +} + +func getNodeForDeployment(client clientset.Interface, deployment *extensions.Deployment) (types.NodeName, error) { + podList, err := framework.GetPodsForDeployment(client, deployment) + if err != nil { + return "", err + } + return types.NodeName(podList.Items[0].Spec.NodeName), nil +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_ops_storm.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_ops_storm.go index 10177bac1..cfaca95fd 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_ops_storm.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_ops_storm.go @@ -109,7 +109,7 @@ var _ = SIGDescribe("Volume Operations Storm [Feature:vsphere]", func() { Expect(err).NotTo(HaveOccurred()) By("Creating pod to attach PVs to the node") - pod, err := framework.CreatePod(client, namespace, pvclaims, false, "") + pod, err := framework.CreatePod(client, namespace, nil, pvclaims, false, "") Expect(err).NotTo(HaveOccurred()) By("Verify all volumes are accessible and available in the pod") diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_perf.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_perf.go new file mode 100644 index 000000000..06bcaa83c --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_perf.go @@ -0,0 +1,255 @@ +/* +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 storage + +import ( + "fmt" + "os" + "strconv" + "time" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "k8s.io/api/core/v1" + storageV1 "k8s.io/api/storage/v1" + "k8s.io/apimachinery/pkg/types" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/test/e2e/framework" +) + +/* This test calculates latency numbers for volume lifecycle operations +1. Create 4 type of storage classes +2. Read the total number of volumes to be created and volumes per pod +3. Create total PVCs (number of volumes) +4. Create Pods with attached volumes per pod +5. Verify access to the volumes +6. Delete pods and wait for volumes to detach +7. Delete the PVCs +*/ +const ( + SCSIUnitsAvailablePerNode = 55 + CreateOp = "CreateOp" + AttachOp = "AttachOp" + DetachOp = "DetachOp" + DeleteOp = "DeleteOp" +) + +var _ = SIGDescribe("vcp-performance [Feature:vsphere]", func() { + f := framework.NewDefaultFramework("vcp-performance") + + var ( + client clientset.Interface + namespace string + nodeSelectorList []*NodeSelector + volumeCount int + volumesPerPod int + iterations int + policyName string + datastoreName string + ) + + BeforeEach(func() { + var err error + framework.SkipUnlessProviderIs("vsphere") + client = f.ClientSet + namespace = f.Namespace.Name + + // Read the environment variables + volumeCountStr := os.Getenv("VCP_PERF_VOLUME_COUNT") + Expect(volumeCountStr).NotTo(BeEmpty(), "ENV VCP_PERF_VOLUME_COUNT is not set") + volumeCount, err = strconv.Atoi(volumeCountStr) + Expect(err).NotTo(HaveOccurred(), "Error Parsing VCP_PERF_VOLUME_COUNT") + + volumesPerPodStr := os.Getenv("VCP_PERF_VOLUME_PER_POD") + Expect(volumesPerPodStr).NotTo(BeEmpty(), "ENV VCP_PERF_VOLUME_PER_POD is not set") + volumesPerPod, err = strconv.Atoi(volumesPerPodStr) + Expect(err).NotTo(HaveOccurred(), "Error Parsing VCP_PERF_VOLUME_PER_POD") + + iterationsStr := os.Getenv("VCP_PERF_ITERATIONS") + Expect(iterationsStr).NotTo(BeEmpty(), "ENV VCP_PERF_ITERATIONS is not set") + iterations, err = strconv.Atoi(iterationsStr) + Expect(err).NotTo(HaveOccurred(), "Error Parsing VCP_PERF_ITERATIONS") + + policyName = os.Getenv("VSPHERE_SPBM_GOLD_POLICY") + datastoreName = os.Getenv("VSPHERE_DATASTORE") + Expect(policyName).NotTo(BeEmpty(), "ENV VSPHERE_SPBM_GOLD_POLICY is not set") + Expect(datastoreName).NotTo(BeEmpty(), "ENV VSPHERE_DATASTORE is not set") + + nodes := framework.GetReadySchedulableNodesOrDie(client) + Expect(len(nodes.Items)).To(BeNumerically(">=", 1), "Requires at least %d nodes (not %d)", 2, len(nodes.Items)) + + msg := fmt.Sprintf("Cannot attach %d volumes to %d nodes. Maximum volumes that can be attached on %d nodes is %d", volumeCount, len(nodes.Items), len(nodes.Items), SCSIUnitsAvailablePerNode*len(nodes.Items)) + Expect(volumeCount).To(BeNumerically("<=", SCSIUnitsAvailablePerNode*len(nodes.Items)), msg) + + msg = fmt.Sprintf("Cannot attach %d volumes per pod. Maximum volumes that can be attached per pod is %d", volumesPerPod, SCSIUnitsAvailablePerNode) + Expect(volumesPerPod).To(BeNumerically("<=", SCSIUnitsAvailablePerNode), msg) + + nodeSelectorList = createNodeLabels(client, namespace, nodes) + }) + + It("vcp performance tests", func() { + scList := getTestStorageClasses(client, policyName, datastoreName) + defer func(scList []*storageV1.StorageClass) { + for _, sc := range scList { + client.StorageV1().StorageClasses().Delete(sc.Name, nil) + } + }(scList) + + sumLatency := make(map[string]float64) + for i := 0; i < iterations; i++ { + latency := invokeVolumeLifeCyclePerformance(f, client, namespace, scList, volumesPerPod, volumeCount, nodeSelectorList) + for key, val := range latency { + sumLatency[key] += val + } + } + + iterations64 := float64(iterations) + framework.Logf("Average latency for below operations") + framework.Logf("Creating %d PVCs and waiting for bound phase: %v seconds", volumeCount, sumLatency[CreateOp]/iterations64) + framework.Logf("Creating %v Pod: %v seconds", volumeCount/volumesPerPod, sumLatency[AttachOp]/iterations64) + framework.Logf("Deleting %v Pod and waiting for disk to be detached: %v seconds", volumeCount/volumesPerPod, sumLatency[DetachOp]/iterations64) + framework.Logf("Deleting %v PVCs: %v seconds", volumeCount, sumLatency[DeleteOp]/iterations64) + + }) +}) + +func getTestStorageClasses(client clientset.Interface, policyName, datastoreName string) []*storageV1.StorageClass { + const ( + storageclass1 = "sc-default" + storageclass2 = "sc-vsan" + storageclass3 = "sc-spbm" + storageclass4 = "sc-user-specified-ds" + ) + scNames := []string{storageclass1, storageclass2, storageclass3, storageclass4} + scArrays := make([]*storageV1.StorageClass, len(scNames)) + for index, scname := range scNames { + // Create vSphere Storage Class + By(fmt.Sprintf("Creating Storage Class : %v", scname)) + var sc *storageV1.StorageClass + var err error + switch scname { + case storageclass1: + sc, err = client.StorageV1().StorageClasses().Create(getVSphereStorageClassSpec(storageclass1, nil)) + case storageclass2: + var scVSanParameters map[string]string + scVSanParameters = make(map[string]string) + scVSanParameters[Policy_HostFailuresToTolerate] = "1" + sc, err = client.StorageV1().StorageClasses().Create(getVSphereStorageClassSpec(storageclass2, scVSanParameters)) + case storageclass3: + var scSPBMPolicyParameters map[string]string + scSPBMPolicyParameters = make(map[string]string) + scSPBMPolicyParameters[SpbmStoragePolicy] = policyName + sc, err = client.StorageV1().StorageClasses().Create(getVSphereStorageClassSpec(storageclass3, scSPBMPolicyParameters)) + case storageclass4: + var scWithDSParameters map[string]string + scWithDSParameters = make(map[string]string) + scWithDSParameters[Datastore] = datastoreName + scWithDatastoreSpec := getVSphereStorageClassSpec(storageclass4, scWithDSParameters) + sc, err = client.StorageV1().StorageClasses().Create(scWithDatastoreSpec) + } + Expect(sc).NotTo(BeNil()) + Expect(err).NotTo(HaveOccurred()) + scArrays[index] = sc + } + return scArrays +} + +// invokeVolumeLifeCyclePerformance peforms full volume life cycle management and records latency for each operation +func invokeVolumeLifeCyclePerformance(f *framework.Framework, client clientset.Interface, namespace string, sc []*storageV1.StorageClass, volumesPerPod int, volumeCount int, nodeSelectorList []*NodeSelector) (latency map[string]float64) { + var ( + totalpvclaims [][]*v1.PersistentVolumeClaim + totalpvs [][]*v1.PersistentVolume + totalpods []*v1.Pod + ) + nodeVolumeMap := make(map[types.NodeName][]string) + latency = make(map[string]float64) + numPods := volumeCount / volumesPerPod + + By(fmt.Sprintf("Creating %d PVCs", volumeCount)) + start := time.Now() + for i := 0; i < numPods; i++ { + var pvclaims []*v1.PersistentVolumeClaim + for j := 0; j < volumesPerPod; j++ { + currsc := sc[((i*numPods)+j)%len(sc)] + pvclaim, err := framework.CreatePVC(client, namespace, getVSphereClaimSpecWithStorageClassAnnotation(namespace, "2Gi", currsc)) + Expect(err).NotTo(HaveOccurred()) + pvclaims = append(pvclaims, pvclaim) + } + totalpvclaims = append(totalpvclaims, pvclaims) + } + for _, pvclaims := range totalpvclaims { + persistentvolumes, err := framework.WaitForPVClaimBoundPhase(client, pvclaims, framework.ClaimProvisionTimeout) + Expect(err).NotTo(HaveOccurred()) + totalpvs = append(totalpvs, persistentvolumes) + } + elapsed := time.Since(start) + latency[CreateOp] = elapsed.Seconds() + + By("Creating pod to attach PVs to the node") + start = time.Now() + for i, pvclaims := range totalpvclaims { + nodeSelector := nodeSelectorList[i%len(nodeSelectorList)] + pod, err := framework.CreatePod(client, namespace, map[string]string{nodeSelector.labelKey: nodeSelector.labelValue}, pvclaims, false, "") + Expect(err).NotTo(HaveOccurred()) + totalpods = append(totalpods, pod) + + defer framework.DeletePodWithWait(f, client, pod) + } + elapsed = time.Since(start) + latency[AttachOp] = elapsed.Seconds() + + // Verify access to the volumes + vsp, err := vsphere.GetVSphere() + Expect(err).NotTo(HaveOccurred()) + + for i, pod := range totalpods { + verifyVSphereVolumesAccessible(pod, totalpvs[i], vsp) + } + + By("Deleting pods") + start = time.Now() + for _, pod := range totalpods { + err = framework.DeletePodWithWait(f, client, pod) + Expect(err).NotTo(HaveOccurred()) + } + elapsed = time.Since(start) + latency[DetachOp] = elapsed.Seconds() + + for i, pod := range totalpods { + for _, pv := range totalpvs[i] { + nodeName := types.NodeName(pod.Spec.NodeName) + nodeVolumeMap[nodeName] = append(nodeVolumeMap[nodeName], pv.Spec.VsphereVolume.VolumePath) + } + } + + err = waitForVSphereDisksToDetach(vsp, nodeVolumeMap) + Expect(err).NotTo(HaveOccurred()) + + By("Deleting the PVCs") + start = time.Now() + for _, pvclaims := range totalpvclaims { + for _, pvc := range pvclaims { + err = framework.DeletePersistentVolumeClaim(client, pvc.Name, namespace) + Expect(err).NotTo(HaveOccurred()) + } + } + elapsed = time.Since(start) + latency[DeleteOp] = elapsed.Seconds() + + return latency +} diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_vsan_policy.go b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_vsan_policy.go index 8ad986d7f..f558e49c1 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_vsan_policy.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/vsphere_volume_vsan_policy.go @@ -292,7 +292,7 @@ func invokeValidPolicyTest(f *framework.Framework, client clientset.Interface, n By("Creating pod to attach PV to the node") // Create pod to attach Volume to Node - pod, err := framework.CreatePod(client, namespace, pvclaims, false, "") + pod, err := framework.CreatePod(client, namespace, nil, pvclaims, false, "") Expect(err).NotTo(HaveOccurred()) vsp, err := vsphere.GetVSphere() diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/ingress.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/ing.yaml similarity index 51% rename from vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/ingress.yaml rename to vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/ing.yaml index 163c1d5b9..e266d9851 100644 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/ingress.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/ing.yaml @@ -1,9 +1,8 @@ apiVersion: extensions/v1beta1 kind: Ingress metadata: - name: test-ingress + name: hostname spec: backend: - serviceName: testsvc - servicePort: 80 - + serviceName: hostname + servicePort: 80 \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/rc.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/rc.yaml new file mode 100644 index 000000000..717b61b05 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/rc.yaml @@ -0,0 +1,17 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + labels: + run: hostname + name: hostname +spec: + template: + metadata: + labels: + run: hostname + spec: + containers: + - image: gcr.io/kubernetes-e2e-test-images/serve-hostname-amd64:1.1 + imagePullPolicy: IfNotPresent + name: hostname + terminationGracePeriodSeconds: 120 \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/svc.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/svc.yaml new file mode 100644 index 000000000..3a0be750a --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/ingress/neg/svc.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: hostname + annotations: + alpha.cloud.google.com/load-balancer-neg: "true" +spec: + ports: + - port: 80 + protocol: TCP + targetPort: 9376 + selector: + run: hostname + sessionAffinity: None + type: NodePort \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/cockroachdb/statefulset.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/cockroachdb/statefulset.yaml index e998d5add..1404ccadb 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/cockroachdb/statefulset.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/cockroachdb/statefulset.yaml @@ -92,8 +92,6 @@ spec: volumeClaimTemplates: - metadata: name: datadir - annotations: - volume.alpha.kubernetes.io/storage-class: anything spec: accessModes: - "ReadWriteOnce" diff --git a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/etcd/statefulset.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/etcd/statefulset.yaml index c7800cd4e..4ddeb8be3 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/etcd/statefulset.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/etcd/statefulset.yaml @@ -166,8 +166,6 @@ spec: volumeClaimTemplates: - metadata: name: datadir - annotations: - volume.alpha.kubernetes.io/storage-class: anything spec: accessModes: - "ReadWriteOnce" @@ -175,4 +173,3 @@ spec: requests: # upstream recommended max is 700M storage: 1Gi - diff --git a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/mysql-galera/statefulset.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/mysql-galera/statefulset.yaml index 5403371ce..4d982ba21 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/mysql-galera/statefulset.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/mysql-galera/statefulset.yaml @@ -77,8 +77,6 @@ spec: volumeClaimTemplates: - metadata: name: datadir - annotations: - volume.alpha.kubernetes.io/storage-class: anything spec: accessModes: [ "ReadWriteOnce" ] resources: diff --git a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/nginx/service.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/nginx/service.yaml new file mode 100644 index 000000000..5499b375c --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/nginx/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx + labels: + app: nginx +spec: + ports: + - port: 80 + name: web + clusterIP: None + selector: + app: nginx \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/nginx/statefulset.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/nginx/statefulset.yaml new file mode 100644 index 000000000..a483fd5dd --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/nginx/statefulset.yaml @@ -0,0 +1,34 @@ +apiVersion: apps/v1beta2 +kind: StatefulSet +metadata: + name: web +spec: + serviceName: "nginx" + replicas: 3 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: gcr.io/google_containers/nginx-slim:0.8 + ports: + - containerPort: 80 + name: web + volumeMounts: + - name: www + mountPath: /usr/share/nginx/html + volumeClaimTemplates: + - metadata: + name: www + annotations: + volume.beta.kubernetes.io/storage-class: nginx-sc + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/redis/statefulset.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/redis/statefulset.yaml index dfdd3e293..e324ef561 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/redis/statefulset.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/redis/statefulset.yaml @@ -71,8 +71,6 @@ spec: volumeClaimTemplates: - metadata: name: datadir - annotations: - volume.alpha.kubernetes.io/storage-class: anything spec: accessModes: [ "ReadWriteOnce" ] resources: diff --git a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml index 762ededbb..4160bdff4 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml @@ -78,8 +78,6 @@ spec: volumeClaimTemplates: - metadata: name: datadir - annotations: - volume.alpha.kubernetes.io/storage-class: anything spec: accessModes: [ "ReadWriteOnce" ] resources: diff --git a/vendor/k8s.io/kubernetes/test/e2e/ui/dashboard.go b/vendor/k8s.io/kubernetes/test/e2e/ui/dashboard.go index 9e416bebd..ebf75fe56 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/ui/dashboard.go +++ b/vendor/k8s.io/kubernetes/test/e2e/ui/dashboard.go @@ -55,7 +55,7 @@ var _ = SIGDescribe("Kubernetes Dashboard", func() { By("Checking to make sure we get a response from the kubernetes-dashboard.") err = wait.Poll(framework.Poll, serverStartTimeout, func() (bool, error) { var status int - proxyRequest, errProxy := framework.GetServicesProxyRequest(f.ClientSet, f.ClientSet.Core().RESTClient().Get()) + proxyRequest, errProxy := framework.GetServicesProxyRequest(f.ClientSet, f.ClientSet.CoreV1().RESTClient().Get()) if errProxy != nil { framework.Logf("Get services proxy request failed: %v", errProxy) } @@ -87,7 +87,7 @@ var _ = SIGDescribe("Kubernetes Dashboard", func() { By("Checking that the ApiServer /ui endpoint redirects to a valid server.") var status int - err = f.ClientSet.Core().RESTClient().Get(). + err = f.ClientSet.CoreV1().RESTClient().Get(). AbsPath("/ui"). Timeout(framework.SingleCallTimeout). Do(). diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/BUILD b/vendor/k8s.io/kubernetes/test/e2e/upgrades/BUILD index c25f08d13..fecb075d1 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/BUILD @@ -23,7 +23,7 @@ go_library( ], importpath = "k8s.io/kubernetes/test/e2e/upgrades", deps = [ - "//pkg/api/v1/helper:go_default_library", + "//pkg/apis/core/v1/helper:go_default_library", "//pkg/kubelet/sysctl:go_default_library", "//pkg/util/version:go_default_library", "//test/e2e/common:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/apparmor.go b/vendor/k8s.io/kubernetes/test/e2e/upgrades/apparmor.go index dac14f83f..b0f2bd2ab 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/apparmor.go +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/apparmor.go @@ -99,7 +99,7 @@ func (t *AppArmorUpgradeTest) verifyNewPodSucceeds(f *framework.Framework) { func (t *AppArmorUpgradeTest) verifyNodesAppArmorEnabled(f *framework.Framework) { By("Verifying nodes are AppArmor enabled") - nodes, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{}) + nodes, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err, "Failed to list nodes") for _, node := range nodes.Items { Expect(node.Status.Conditions).To(gstruct.MatchElements(conditionType, gstruct.IgnoreExtras, gstruct.Elements{ diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/daemonsets.go b/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/daemonsets.go index 9fbd88a23..4b9f19c51 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/daemonsets.go +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/daemonsets.go @@ -72,7 +72,7 @@ func (t *DaemonSetUpgradeTest) Setup(f *framework.Framework) { By("Creating a DaemonSet") var err error - if t.daemonSet, err = f.ClientSet.Extensions().DaemonSets(ns.Name).Create(t.daemonSet); err != nil { + if t.daemonSet, err = f.ClientSet.ExtensionsV1beta1().DaemonSets(ns.Name).Create(t.daemonSet); err != nil { framework.Failf("unable to create test DaemonSet %s: %v", t.daemonSet.Name, err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/deployments.go b/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/deployments.go index 743c2edd5..9063f16a9 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/deployments.go +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/deployments.go @@ -21,75 +21,63 @@ import ( extensions "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" - "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/upgrades" . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" imageutils "k8s.io/kubernetes/test/utils/image" ) +const ( + deploymentName = "dp" +) + // TODO: Test that the deployment stays available during master (and maybe // node and cluster upgrades). // DeploymentUpgradeTest tests that a deployment is using the same replica // sets before and after a cluster upgrade. type DeploymentUpgradeTest struct { - oldD *extensions.Deployment - updatedD *extensions.Deployment - oldRS *extensions.ReplicaSet - newRS *extensions.ReplicaSet + oldDeploymentUID types.UID + oldRSUID types.UID + newRSUID types.UID } func (DeploymentUpgradeTest) Name() string { return "[sig-apps] deployment-upgrade" } -func (DeploymentUpgradeTest) Skip(upgCtx upgrades.UpgradeContext) bool { - // The Deployment upgrade test currently relies on implementation details to probe the - // ReplicaSets belonging to a Deployment. As of 1.7, the client code we call into no - // longer supports talking to a server <1.6. (see #47685) - minVersion := version.MustParseSemantic("v1.6.0") - - for _, vCtx := range upgCtx.Versions { - if vCtx.Version.LessThan(minVersion) { - return true - } - } - return false -} - -var _ upgrades.Skippable = DeploymentUpgradeTest{} - -// Setup creates a deployment and makes sure it has a new and an old replica set running. -// This calls in to client code and should not be expected to work against a cluster more than one minor version away from the current version. +// Setup creates a deployment and makes sure it has a new and an old replicaset running. func (t *DeploymentUpgradeTest) Setup(f *framework.Framework) { - deploymentName := "deployment-hash-test" c := f.ClientSet nginxImage := imageutils.GetE2EImage(imageutils.NginxSlim) ns := f.Namespace.Name + deploymentClient := c.ExtensionsV1beta1().Deployments(ns) + rsClient := c.ExtensionsV1beta1().ReplicaSets(ns) - By(fmt.Sprintf("Creating a deployment %q in namespace %q", deploymentName, ns)) + By(fmt.Sprintf("Creating a deployment %q with 1 replica in namespace %q", deploymentName, ns)) d := framework.NewDeployment(deploymentName, int32(1), map[string]string{"test": "upgrade"}, "nginx", nginxImage, extensions.RollingUpdateDeploymentStrategyType) - deployment, err := c.Extensions().Deployments(ns).Create(d) - framework.ExpectNoError(err) - - // Wait for it to be updated to revision 1 - By(fmt.Sprintf("Waiting deployment %q to be updated to revision 1", deploymentName)) - err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", nginxImage) + deployment, err := deploymentClient.Create(d) framework.ExpectNoError(err) By(fmt.Sprintf("Waiting deployment %q to complete", deploymentName)) - framework.ExpectNoError(framework.WaitForDeploymentStatusValid(c, deployment)) + framework.ExpectNoError(framework.WaitForDeploymentComplete(c, deployment)) - rs, err := deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) + By(fmt.Sprintf("Getting replicaset revision 1 of deployment %q", deploymentName)) + rsSelector, err := metav1.LabelSelectorAsSelector(d.Spec.Selector) framework.ExpectNoError(err) - if rs == nil { - framework.ExpectNoError(fmt.Errorf("expected a new replica set for deployment %q, found none", deployment.Name)) + rsList, err := rsClient.List(metav1.ListOptions{LabelSelector: rsSelector.String()}) + framework.ExpectNoError(err) + rss := rsList.Items + if len(rss) != 1 { + framework.ExpectNoError(fmt.Errorf("expected one replicaset, got %d", len(rss))) } + t.oldRSUID = rss[0].UID - // Store the old replica set - should be the same after the upgrade. - t.oldRS = rs + By(fmt.Sprintf("Waiting for revision of the deployment %q to become 1", deploymentName)) + framework.ExpectNoError(framework.WaitForDeploymentRevision(c, deployment, "1")) // Trigger a new rollout so that we have some history. By(fmt.Sprintf("Triggering a new rollout for deployment %q", deploymentName)) @@ -98,89 +86,87 @@ func (t *DeploymentUpgradeTest) Setup(f *framework.Framework) { }) framework.ExpectNoError(err) - // Use observedGeneration to determine if the controller noticed the pod template update. - framework.Logf("Wait deployment %q to be observed by the deployment controller", deploymentName) - framework.ExpectNoError(framework.WaitForObservedDeployment(c, ns, deploymentName, deployment.Generation)) - - // Wait for it to be updated to revision 2 - By(fmt.Sprintf("Waiting deployment %q to be updated to revision 2", deploymentName)) - framework.ExpectNoError(framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "2", nginxImage)) - By(fmt.Sprintf("Waiting deployment %q to complete", deploymentName)) - framework.ExpectNoError(framework.WaitForDeploymentStatus(c, deployment)) + framework.ExpectNoError(framework.WaitForDeploymentComplete(c, deployment)) - rs, err = deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) + By(fmt.Sprintf("Getting replicasets revision 1 and 2 of deployment %q", deploymentName)) + rsList, err = rsClient.List(metav1.ListOptions{LabelSelector: rsSelector.String()}) framework.ExpectNoError(err) - if rs == nil { - framework.ExpectNoError(fmt.Errorf("expected a new replica set for deployment %q", deployment.Name)) + rss = rsList.Items + if len(rss) != 2 { + framework.ExpectNoError(fmt.Errorf("expected 2 replicaset, got %d", len(rss))) } - if rs.UID == t.oldRS.UID { - framework.ExpectNoError(fmt.Errorf("expected a new replica set different from the previous one")) + By(fmt.Sprintf("Checking replicaset of deployment %q that is created before rollout survives the rollout", deploymentName)) + switch t.oldRSUID { + case rss[0].UID: + t.newRSUID = rss[1].UID + case rss[1].UID: + t.newRSUID = rss[0].UID + default: + framework.ExpectNoError(fmt.Errorf("old replicaset with UID %q does not survive rollout", t.oldRSUID)) } - // Store new replica set - should be the same after the upgrade. - t.newRS = rs - deployment, err = c.Extensions().Deployments(ns).Get(deployment.Name, metav1.GetOptions{}) - framework.ExpectNoError(err) - t.oldD = deployment + By(fmt.Sprintf("Waiting for revision of the deployment %q to become 2", deploymentName)) + framework.ExpectNoError(framework.WaitForDeploymentRevision(c, deployment, "2")) + + t.oldDeploymentUID = deployment.UID } -// Test checks whether the replica sets for a deployment are the same after an upgrade. +// Test checks whether the replicasets for a deployment are the same after an upgrade. func (t *DeploymentUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) { // Block until upgrade is done - By(fmt.Sprintf("Waiting for upgrade to finish before checking replica sets for deployment %q", t.oldD.Name)) + By(fmt.Sprintf("Waiting for upgrade to finish before checking replicasets for deployment %q", deploymentName)) <-done c := f.ClientSet + ns := f.Namespace.Name + deploymentClient := c.ExtensionsV1beta1().Deployments(ns) + rsClient := c.ExtensionsV1beta1().ReplicaSets(ns) - deployment, err := c.Extensions().Deployments(t.oldD.Namespace).Get(t.oldD.Name, metav1.GetOptions{}) + deployment, err := deploymentClient.Get(deploymentName, metav1.GetOptions{}) framework.ExpectNoError(err) - t.updatedD = deployment - By(fmt.Sprintf("Waiting for deployment %q to complete adoption", deployment.Name)) - framework.ExpectNoError(framework.WaitForDeploymentStatus(c, deployment)) + By(fmt.Sprintf("Checking UID to verify deployment %q survives upgrade", deploymentName)) + Expect(deployment.UID).To(Equal(t.oldDeploymentUID)) - By(fmt.Sprintf("Checking that replica sets for deployment %q are the same as prior to the upgrade", t.updatedD.Name)) - _, allOldRSs, newRS, err := deploymentutil.GetAllReplicaSets(t.updatedD, c.ExtensionsV1beta1()) + By(fmt.Sprintf("Verifying deployment %q does not create new replicasets", deploymentName)) + rsSelector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector) framework.ExpectNoError(err) - if newRS == nil { - By(t.spewDeploymentAndReplicaSets(newRS, allOldRSs)) - framework.ExpectNoError(fmt.Errorf("expected a new replica set for deployment %q", t.updatedD.Name)) - } - if newRS.UID != t.newRS.UID { - By(t.spewDeploymentAndReplicaSets(newRS, allOldRSs)) - framework.ExpectNoError(fmt.Errorf("expected new replica set:\n%#v\ngot new replica set:\n%#v\n", t.newRS, newRS)) - } - if len(allOldRSs) != 1 { - By(t.spewDeploymentAndReplicaSets(newRS, allOldRSs)) - errString := fmt.Sprintf("expected one old replica set, got %d\n", len(allOldRSs)) - for i := range allOldRSs { - rs := allOldRSs[i] - errString += fmt.Sprintf("%#v\n", rs) - } - framework.ExpectNoError(fmt.Errorf(errString)) + rsList, err := rsClient.List(metav1.ListOptions{LabelSelector: rsSelector.String()}) + framework.ExpectNoError(err) + rss := rsList.Items + if len(rss) != 2 { + framework.ExpectNoError(fmt.Errorf("expected 2 replicaset, got %d", len(rss))) } - if allOldRSs[0].UID != t.oldRS.UID { - By(t.spewDeploymentAndReplicaSets(newRS, allOldRSs)) - framework.ExpectNoError(fmt.Errorf("expected old replica set:\n%#v\ngot old replica set:\n%#v\n", t.oldRS, allOldRSs[0])) + + switch t.oldRSUID { + case rss[0].UID: + Expect(rss[1].UID).To(Equal(t.newRSUID)) + case rss[1].UID: + Expect(rss[0].UID).To(Equal(t.newRSUID)) + default: + framework.ExpectNoError(fmt.Errorf("new replicasets are created during upgrade of deployment %q", deploymentName)) } + + By(fmt.Sprintf("Verifying revision of the deployment %q is still 2", deploymentName)) + Expect(deployment.Annotations[deploymentutil.RevisionAnnotation]).To(Equal("2")) + + By(fmt.Sprintf("Waiting for deployment %q to complete adoption", deploymentName)) + framework.ExpectNoError(framework.WaitForDeploymentComplete(c, deployment)) + + // Verify the upgraded deployment is active by scaling up the deployment by 1 + By(fmt.Sprintf("Scaling up replicaset of deployment %q by 1", deploymentName)) + _, err = framework.UpdateDeploymentWithRetries(c, ns, deploymentName, func(deployment *extensions.Deployment) { + *deployment.Spec.Replicas = *deployment.Spec.Replicas + 1 + }) + framework.ExpectNoError(err) + + By(fmt.Sprintf("Waiting for deployment %q to complete after scaling", deploymentName)) + framework.ExpectNoError(framework.WaitForDeploymentComplete(c, deployment)) } // Teardown cleans up any remaining resources. func (t *DeploymentUpgradeTest) Teardown(f *framework.Framework) { // rely on the namespace deletion to clean up everything } - -func (t *DeploymentUpgradeTest) spewDeploymentAndReplicaSets(newRS *extensions.ReplicaSet, allOldRSs []*extensions.ReplicaSet) string { - msg := fmt.Sprintf("deployment prior to the upgrade:\n%#v\n", t.oldD) - msg += fmt.Sprintf("old replica sets prior to the upgrade:\n%#v\n", t.oldRS) - msg += fmt.Sprintf("new replica sets prior to the upgrade:\n%#v\n", t.newRS) - msg += fmt.Sprintf("deployment after the upgrade:\n%#v\n", t.updatedD) - msg += fmt.Sprintf("new replica set after the upgrade:\n%#v\n", newRS) - msg += fmt.Sprintf("old replica sets after the upgrade:\n") - for i := range allOldRSs { - msg += fmt.Sprintf("%#v\n", allOldRSs[i]) - } - return msg -} diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/configmaps.go b/vendor/k8s.io/kubernetes/test/e2e/upgrades/configmaps.go index 476c283c3..4abbeb313 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/configmaps.go +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/configmaps.go @@ -56,7 +56,7 @@ func (t *ConfigMapUpgradeTest) Setup(f *framework.Framework) { By("Creating a ConfigMap") var err error - if t.configMap, err = f.ClientSet.Core().ConfigMaps(ns.Name).Create(t.configMap); err != nil { + if t.configMap, err = f.ClientSet.CoreV1().ConfigMaps(ns.Name).Create(t.configMap); err != nil { framework.Failf("unable to create test ConfigMap %s: %v", t.configMap.Name, err) } @@ -118,7 +118,7 @@ func (t *ConfigMapUpgradeTest) testPod(f *framework.Framework) { }, { Name: "configmap-env-test", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"sh", "-c", "env"}, Env: []v1.EnvVar{ { diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/ingress.go b/vendor/k8s.io/kubernetes/test/e2e/upgrades/ingress.go index 7ca9e3b7d..d2d8c7136 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/ingress.go +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/ingress.go @@ -69,7 +69,7 @@ func (t *IngressUpgradeTest) Setup(f *framework.Framework) { jig.CreateIngress(filepath.Join(framework.IngressManifestPath, "static-ip"), ns.Name, map[string]string{ "kubernetes.io/ingress.global-static-ip-name": t.ipName, "kubernetes.io/ingress.allow-http": "false", - }) + }, map[string]string{}) By("waiting for Ingress to come up with ip: " + t.ip) framework.ExpectNoError(framework.PollURL(fmt.Sprintf("https://%v/", t.ip), "", framework.LoadBalancerPollTimeout, jig.PollInterval, t.httpClient, false)) diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/kube_proxy_migration.go b/vendor/k8s.io/kubernetes/test/e2e/upgrades/kube_proxy_migration.go index 030cc41e1..aad911144 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/kube_proxy_migration.go +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/kube_proxy_migration.go @@ -210,7 +210,7 @@ func waitForKubeProxyDaemonSetDisappear(c clientset.Interface) error { func getKubeProxyStaticPods(c clientset.Interface) (*v1.PodList, error) { label := labels.SelectorFromSet(labels.Set(map[string]string{clusterComponentKey: kubeProxyLabelName})) listOpts := metav1.ListOptions{LabelSelector: label.String()} - return c.Core().Pods(metav1.NamespaceSystem).List(listOpts) + return c.CoreV1().Pods(metav1.NamespaceSystem).List(listOpts) } func getKubeProxyDaemonSet(c clientset.Interface) (*extensions.DaemonSetList, error) { diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/secrets.go b/vendor/k8s.io/kubernetes/test/e2e/upgrades/secrets.go index 03fe86563..85c067e19 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/secrets.go +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/secrets.go @@ -54,7 +54,7 @@ func (t *SecretUpgradeTest) Setup(f *framework.Framework) { By("Creating a secret") var err error - if t.secret, err = f.ClientSet.Core().Secrets(ns.Name).Create(t.secret); err != nil { + if t.secret, err = f.ClientSet.CoreV1().Secrets(ns.Name).Create(t.secret); err != nil { framework.Failf("unable to create test secret %s: %v", t.secret.Name, err) } @@ -114,7 +114,7 @@ func (t *SecretUpgradeTest) testPod(f *framework.Framework) { }, { Name: "secret-env-test", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"sh", "-c", "env"}, Env: []v1.EnvVar{ { diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/storage/persistent_volumes.go b/vendor/k8s.io/kubernetes/test/e2e/upgrades/storage/persistent_volumes.go index fe41a79d9..0c00bc6d5 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/storage/persistent_volumes.go +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/storage/persistent_volumes.go @@ -98,7 +98,7 @@ func (t *PersistentVolumeUpgradeTest) Teardown(f *framework.Framework) { // testPod creates a pod that consumes a pv and prints it out. The output is then verified. func (t *PersistentVolumeUpgradeTest) testPod(f *framework.Framework, cmd string) { - pod := framework.MakePod(f.Namespace.Name, []*v1.PersistentVolumeClaim{t.pvc}, false, cmd) + pod := framework.MakePod(f.Namespace.Name, nil, []*v1.PersistentVolumeClaim{t.pvc}, false, cmd) expectedOutput := []string{pvTestData} f.TestContainerOutput("pod consumes pv", pod, 0, expectedOutput) } diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/sysctl.go b/vendor/k8s.io/kubernetes/test/e2e/upgrades/sysctl.go index 373360c40..1b9a0a71a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/upgrades/sysctl.go +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/sysctl.go @@ -26,11 +26,10 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" - v1helper "k8s.io/kubernetes/pkg/api/v1/helper" + v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/kubelet/sysctl" "k8s.io/kubernetes/test/e2e/framework" - imageutils "k8s.io/kubernetes/test/utils/image" ) // SecretUpgradeTest tests that a pod with sysctls runs before and after an upgrade. During @@ -55,13 +54,13 @@ func (t *SysctlUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, u switch upgrade { case MasterUpgrade: By("Checking the safe sysctl pod keeps running on master upgrade") - pod, err := f.ClientSet.Core().Pods(t.validPod.Namespace).Get(t.validPod.Name, metav1.GetOptions{}) + pod, err := f.ClientSet.CoreV1().Pods(t.validPod.Namespace).Get(t.validPod.Name, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) Expect(pod.Status.Phase).To(Equal(v1.PodRunning)) } By("Checking the old unsafe sysctl pod was not suddenly started during an upgrade") - pod, err := f.ClientSet.Core().Pods(t.invalidPod.Namespace).Get(t.invalidPod.Name, metav1.GetOptions{}) + pod, err := f.ClientSet.CoreV1().Pods(t.invalidPod.Namespace).Get(t.invalidPod.Name, metav1.GetOptions{}) if err != nil && !errors.IsNotFound(err) { Expect(err).NotTo(HaveOccurred()) } @@ -132,7 +131,7 @@ func sysctlTestPod(name string, sysctls map[string]string) *v1.Pod { Containers: []v1.Container{ { Name: "test-container", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: append([]string{"/bin/sysctl"}, keys...), }, }, diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/BUILD b/vendor/k8s.io/kubernetes/test/e2e_node/BUILD index 8dc190329..8e440ac8a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e_node/BUILD @@ -114,8 +114,8 @@ go_test( library = ":go_default_library", tags = ["e2e"], deps = [ - "//pkg/api:go_default_library", "//pkg/api/v1/node:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet:go_default_library", "//pkg/kubelet/apis/kubeletconfig:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/benchmark_util.go b/vendor/k8s.io/kubernetes/test/e2e_node/benchmark_util.go index fc4fd9555..bcaf92483 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/benchmark_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/benchmark_util.go @@ -154,7 +154,7 @@ func getThroughputPerfData(batchLag time.Duration, e2eLags []framework.PodLatenc // name of the node, and the node capacities. func getTestNodeInfo(f *framework.Framework, testName, testDesc string) map[string]string { nodeName := framework.TestContext.NodeName - node, err := f.ClientSet.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := f.ClientSet.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) Expect(err).NotTo(HaveOccurred()) cpu, ok := node.Status.Capacity[v1.ResourceCPU] diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/builder/build.go b/vendor/k8s.io/kubernetes/test/e2e_node/builder/build.go index f22232a3c..81f5b952d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/builder/build.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/builder/build.go @@ -34,6 +34,7 @@ var buildTargets = []string{ "cmd/kubelet", "test/e2e_node/e2e_node.test", "vendor/github.com/onsi/ginkgo/ginkgo", + "cluster/gce/gci/mounter", } func BuildGo() error { diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/critical_pod_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/critical_pod_test.go index bf22f9d5f..ea89136c1 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/critical_pod_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/critical_pod_test.go @@ -22,7 +22,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - kubeapi "k8s.io/kubernetes/pkg/api" + kubeapi "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig" kubelettypes "k8s.io/kubernetes/pkg/kubelet/types" @@ -83,7 +83,7 @@ var _ = framework.KubeDescribe("CriticalPod [Serial] [Disruptive]", func() { f.PodClientNS(kubeapi.NamespaceSystem).CreateSyncInNamespace(criticalPod, kubeapi.NamespaceSystem) // Check that non-critical pods other than the besteffort have been evicted - updatedPodList, err := f.ClientSet.Core().Pods(f.Namespace.Name).List(metav1.ListOptions{}) + updatedPodList, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).List(metav1.ListOptions{}) framework.ExpectNoError(err) for _, p := range updatedPodList.Items { if p.Name == nonCriticalBestEffort.Name { @@ -108,7 +108,7 @@ var _ = framework.KubeDescribe("CriticalPod [Serial] [Disruptive]", func() { }) func getNodeCPUAndMemoryCapacity(f *framework.Framework) v1.ResourceList { - nodeList, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err) // Assuming that there is only one node, because this is a node e2e test. Expect(len(nodeList.Items)).To(Equal(1)) diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/density_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/density_test.go index e440b4293..ab459dd24 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/density_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/density_test.go @@ -498,12 +498,12 @@ func newInformerWatchPod(f *framework.Framework, mutex *sync.Mutex, watchTimes m &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { options.LabelSelector = labels.SelectorFromSet(labels.Set{"type": podType}).String() - obj, err := f.ClientSet.Core().Pods(ns).List(options) + obj, err := f.ClientSet.CoreV1().Pods(ns).List(options) return runtime.Object(obj), err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { options.LabelSelector = labels.SelectorFromSet(labels.Set{"type": podType}).String() - return f.ClientSet.Core().Pods(ns).Watch(options) + return f.ClientSet.CoreV1().Pods(ns).Watch(options) }, }, &v1.Pod{}, @@ -524,7 +524,7 @@ func newInformerWatchPod(f *framework.Framework, mutex *sync.Mutex, watchTimes m return controller } -// createBatchPodSequential creats pods back-to-back in sequence. +// createBatchPodSequential creates pods back-to-back in sequence. func createBatchPodSequential(f *framework.Framework, pods []*v1.Pod) (time.Duration, []framework.PodLatencyData) { batchStartTime := metav1.Now() e2eLags := make([]framework.PodLatencyData, 0) @@ -570,7 +570,7 @@ func logPodCreateThroughput(batchLag time.Duration, e2eLags []framework.PodLaten logPerfData(getThroughputPerfData(batchLag, e2eLags, podsNr, testInfo), "throughput") } -// increaseKubeletAPIQPSLimit sets Kubelet API QPS via ConfigMap. Kubelet will restart with the new QPS. +// setKubeletAPIQPSLimit sets Kubelet API QPS via ConfigMap. Kubelet will restart with the new QPS. func setKubeletAPIQPSLimit(f *framework.Framework, newAPIQPS int32) { const restartGap = 40 * time.Second diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/docker_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/docker_test.go index 6142eba8b..dd08d609d 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/docker_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/docker_test.go @@ -55,12 +55,12 @@ var _ = framework.KubeDescribe("Docker features [Feature:Docker]", func() { Containers: []v1.Container{ { Name: "test-container-1", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"/bin/top"}, }, { Name: "test-container-2", - Image: imageutils.GetBusyBoxImage(), + Image: "busybox", Command: []string{"/bin/sleep"}, Args: []string{"10000"}, }, @@ -101,7 +101,7 @@ var _ = framework.KubeDescribe("Docker features [Feature:Docker]", func() { Spec: v1.PodSpec{ Containers: []v1.Container{{ Name: containerName, - Image: "gcr.io/google_containers/nginx-slim:0.7", + Image: imageutils.GetE2EImage(imageutils.NginxSlim), }}, }, }) diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/docker_util.go b/vendor/k8s.io/kubernetes/test/e2e_node/docker_util.go index 8a87607e9..83c4177ff 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/docker_util.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/docker_util.go @@ -87,7 +87,7 @@ func isDockerLiveRestoreEnabled() (bool, error) { return info.LiveRestoreEnabled, nil } -// stopDockerDaemon starts the Docker daemon. +// startDockerDaemon starts the Docker daemon. func startDockerDaemon() error { switch { case systemdutil.IsRunningSystemd(): diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/garbage_collector_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/garbage_collector_test.go index 530f0bcc6..dd4578ef0 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/garbage_collector_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/garbage_collector_test.go @@ -249,7 +249,13 @@ func containerGCTest(f *framework.Framework, test testRun) { func dockerContainerGCTest(f *framework.Framework, test testRun) { var runtime libdocker.Interface BeforeEach(func() { - runtime = libdocker.ConnectToDockerOrDie(defaultDockerEndpoint, defaultRuntimeRequestTimeoutDuration, defaultImagePullProgressDeadline) + runtime = libdocker.ConnectToDockerOrDie( + defaultDockerEndpoint, + defaultRuntimeRequestTimeoutDuration, + defaultImagePullProgressDeadline, + false, + false, + ) }) for _, pod := range test.testPods { // Initialize the getContainerNames function to use the libdocker api @@ -316,7 +322,7 @@ func getRestartingContainerCommand(path string, containerNum int, restarts int32 } func verifyPodRestartCount(f *framework.Framework, podName string, expectedNumContainers int, expectedRestartCount int32) error { - updatedPod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(podName, metav1.GetOptions{}) + updatedPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(podName, metav1.GetOptions{}) if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/gpus.go b/vendor/k8s.io/kubernetes/test/e2e_node/gpus.go index ee1f6e82d..41c364db6 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/gpus.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/gpus.go @@ -33,7 +33,7 @@ import ( ) func getGPUsAvailable(f *framework.Framework) int64 { - nodeList, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err, "getting node list") var gpusAvailable int64 for _, node := range nodeList.Items { @@ -43,7 +43,7 @@ func getGPUsAvailable(f *framework.Framework) int64 { } func gpusExistOnAllNodes(f *framework.Framework) bool { - nodeList, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err, "getting node list") for _, node := range nodeList.Items { if node.Name == "kubernetes-master" { @@ -107,7 +107,7 @@ var _ = framework.KubeDescribe("GPU [Serial]", func() { By("Checking the containers in the pod had restarted at-least twice successfully thereby ensuring GPUs are reused") const minContainerRestartCount = 2 Eventually(func() bool { - p, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(podSuccess.Name, metav1.GetOptions{}) + p, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(podSuccess.Name, metav1.GetOptions{}) if err != nil { framework.Logf("failed to get pod status: %v", err) return false diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/image_list.go b/vendor/k8s.io/kubernetes/test/e2e_node/image_list.go index 037c660c6..01360451f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/image_list.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/image_list.go @@ -93,8 +93,11 @@ func (rp *remotePuller) Name() string { } func (rp *remotePuller) Pull(image string) ([]byte, error) { - // TODO(runcom): should we check if the image is already pulled with ImageStatus? - _, err := rp.imageService.PullImage(&runtimeapi.ImageSpec{Image: image}, nil) + imageStatus, err := rp.imageService.ImageStatus(&runtimeapi.ImageSpec{Image: image}) + if err == nil && imageStatus != nil { + return nil, nil + } + _, err = rp.imageService.PullImage(&runtimeapi.ImageSpec{Image: image}, nil) return nil, err } diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/OWNERS b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/OWNERS new file mode 100644 index 000000000..55ad87137 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/OWNERS @@ -0,0 +1,6 @@ +approvers: +- dashpole +- krzyzacy +- Random-Liu +- yguo0905 +- yujuhong diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/README.md b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/README.md new file mode 100644 index 000000000..664171c98 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/README.md @@ -0,0 +1,20 @@ +# Node e2e job migration notice: + +Sig-testing is actively migrating node e2e jobs from Jenkins to [Prow], +and we are moving *.property and image-config.yaml files to [test-infra] + +If you want to update those files, please also update them in [test-infra]. + +If you have any questions, please contact @krzyzacy or #sig-testing. + + +## Test-infra Links: +Here's where the existing node e2e job config live: + +[Image config files](https://github.com/kubernetes/test-infra/tree/master/jobs/e2e_node) + +[Node test job args (.properties equivalent)](https://github.com/kubernetes/test-infra/blob/master/jobs/config.json) + + +[test-infra]: https://github.com/kubernetes/test-infra +[Prow]: https://github.com/kubernetes/test-infra/tree/master/prow diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-disable-live-restore.yaml b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-disable-live-restore.yaml new file mode 100644 index 000000000..e57ba6898 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-disable-live-restore.yaml @@ -0,0 +1,23 @@ +#cloud-config +# +# This cloud-init configuration file disables Docker live-restore. + +runcmd: + - cp /usr/lib/systemd/system/docker.service /etc/systemd/system/docker.service + - sed -i '/^ExecStart=\/usr\/bin\/dockerd/ s/$/ --live-restore=false/' /etc/systemd/system/docker.service + - systemctl daemon-reload + - systemctl restart docker + - mount /tmp /tmp -o remount,exec,suid + - usermod -a -G docker jenkins + - mkdir -p /var/lib/kubelet + - mkdir -p /home/kubernetes/containerized_mounter/rootfs + - mount --bind /home/kubernetes/containerized_mounter/ /home/kubernetes/containerized_mounter/ + - mount -o remount, exec /home/kubernetes/containerized_mounter/ + - wget https://dl.k8s.io/gci-mounter/mounter.tar -O /tmp/mounter.tar + - tar xvf /tmp/mounter.tar -C /home/kubernetes/containerized_mounter/rootfs + - mkdir -p /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet + - mount --rbind /var/lib/kubelet /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet + - mount --make-rshared /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet + - mount --bind /proc /home/kubernetes/containerized_mounter/rootfs/proc + - mount --bind /dev /home/kubernetes/containerized_mounter/rootfs/dev + - rm /tmp/mounter.tar diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-docker.yaml b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-docker.yaml index 1e7e0c5ef..e93372bb7 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-docker.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-docker.yaml @@ -117,7 +117,7 @@ runcmd: - mkdir -p /home/kubernetes/containerized_mounter/rootfs - mount --bind /home/kubernetes/containerized_mounter/ /home/kubernetes/containerized_mounter/ - mount -o remount, exec /home/kubernetes/containerized_mounter/ - - wget https://storage.googleapis.com/kubernetes-release/gci-mounter/mounter.tar -O /tmp/mounter.tar + - wget https://dl.k8s.io/gci-mounter/mounter.tar -O /tmp/mounter.tar - tar xvf /tmp/mounter.tar -C /home/kubernetes/containerized_mounter/rootfs - mkdir -p /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet - mount --rbind /var/lib/kubelet /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-live-restore.yaml b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-live-restore.yaml index 74ba65ed6..1406779f8 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-live-restore.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/cos-init-live-restore.yaml @@ -12,7 +12,7 @@ runcmd: - mkdir -p /home/kubernetes/containerized_mounter/rootfs - mount --bind /home/kubernetes/containerized_mounter/ /home/kubernetes/containerized_mounter/ - mount -o remount, exec /home/kubernetes/containerized_mounter/ - - wget https://storage.googleapis.com/kubernetes-release/gci-mounter/mounter.tar -O /tmp/mounter.tar + - wget https://dl.k8s.io/gci-mounter/mounter.tar -O /tmp/mounter.tar - tar xvf /tmp/mounter.tar -C /home/kubernetes/containerized_mounter/rootfs - mkdir -p /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet - mount --rbind /var/lib/kubelet /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/gci-init-gpu.yaml b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/gci-init-gpu.yaml index cafa57044..064b77095 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/gci-init-gpu.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/gci-init-gpu.yaml @@ -9,7 +9,7 @@ runcmd: - mkdir -p /home/kubernetes/containerized_mounter/rootfs - mount --bind /home/kubernetes/containerized_mounter/ /home/kubernetes/containerized_mounter/ - mount -o remount, exec /home/kubernetes/containerized_mounter/ - - wget https://storage.googleapis.com/kubernetes-release/gci-mounter/mounter.tar -O /tmp/mounter.tar + - wget https://dl.k8s.io/gci-mounter/mounter.tar -O /tmp/mounter.tar - tar xvf /tmp/mounter.tar -C /home/kubernetes/containerized_mounter/rootfs - mkdir -p /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet - mount --rbind /var/lib/kubelet /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/gci-init.yaml b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/gci-init.yaml index 42bebb490..5c8efc0dd 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/gci-init.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/gci-init.yaml @@ -7,7 +7,7 @@ runcmd: - mkdir -p /home/kubernetes/containerized_mounter/rootfs - mount --bind /home/kubernetes/containerized_mounter/ /home/kubernetes/containerized_mounter/ - mount -o remount, exec /home/kubernetes/containerized_mounter/ - - wget https://storage.googleapis.com/kubernetes-release/gci-mounter/mounter.tar -O /tmp/mounter.tar + - wget https://dl.k8s.io/gci-mounter/mounter.tar -O /tmp/mounter.tar - tar xvf /tmp/mounter.tar -C /home/kubernetes/containerized_mounter/rootfs - mkdir -p /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet - mount --rbind /var/lib/kubelet /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/ubuntu-init-docker.yaml b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/ubuntu-init-docker.yaml index d781d71a3..0ce064f7b 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/ubuntu-init-docker.yaml +++ b/vendor/k8s.io/kubernetes/test/e2e_node/jenkins/ubuntu-init-docker.yaml @@ -111,7 +111,7 @@ runcmd: - mkdir -p /home/kubernetes/containerized_mounter/rootfs - mount --bind /home/kubernetes/containerized_mounter/ /home/kubernetes/containerized_mounter/ - mount -o remount, exec /home/kubernetes/containerized_mounter/ - - wget https://storage.googleapis.com/kubernetes-release/gci-mounter/mounter.tar -O /tmp/mounter.tar + - wget https://dl.k8s.io/gci-mounter/mounter.tar -O /tmp/mounter.tar - tar xvf /tmp/mounter.tar -C /home/kubernetes/containerized_mounter/rootfs - mkdir -p /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet - mount --rbind /var/lib/kubelet /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/memory_eviction_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/memory_eviction_test.go index 1059b62b2..1c27d36bb 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/memory_eviction_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/memory_eviction_test.go @@ -63,7 +63,7 @@ var _ = framework.KubeDescribe("MemoryEviction [Slow] [Serial] [Disruptive]", fu // Wait for the memory pressure condition to disappear from the node status before continuing. By("waiting for the memory pressure condition on the node to disappear before ending the test.") Eventually(func() error { - nodeList, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { return fmt.Errorf("tried to get node list but got error: %v", err) } @@ -169,15 +169,15 @@ var _ = framework.KubeDescribe("MemoryEviction [Slow] [Serial] [Disruptive]", fu By("polling the Status.Phase of each pod and checking for violations of the eviction order.") Eventually(func() error { - gteed, gtErr := f.ClientSet.Core().Pods(f.Namespace.Name).Get(guaranteed.Name, metav1.GetOptions{}) + gteed, gtErr := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(guaranteed.Name, metav1.GetOptions{}) framework.ExpectNoError(gtErr, fmt.Sprintf("getting pod %s", guaranteed.Name)) gteedPh := gteed.Status.Phase - burst, buErr := f.ClientSet.Core().Pods(f.Namespace.Name).Get(burstable.Name, metav1.GetOptions{}) + burst, buErr := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(burstable.Name, metav1.GetOptions{}) framework.ExpectNoError(buErr, fmt.Sprintf("getting pod %s", burstable.Name)) burstPh := burst.Status.Phase - best, beErr := f.ClientSet.Core().Pods(f.Namespace.Name).Get(besteffort.Name, metav1.GetOptions{}) + best, beErr := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(besteffort.Name, metav1.GetOptions{}) framework.ExpectNoError(beErr, fmt.Sprintf("getting pod %s", besteffort.Name)) bestPh := best.Status.Phase @@ -193,7 +193,7 @@ var _ = framework.KubeDescribe("MemoryEviction [Slow] [Serial] [Disruptive]", fu // see the eviction manager reporting a pressure condition for a while without the besteffort failing, // and we see that the manager did in fact evict the besteffort (this should be in the Kubelet log), we // will have more reason to believe the phase is out of date. - nodeList, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { glog.Errorf("tried to get node list but got error: %v", err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/mirror_pod_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/mirror_pod_test.go index a56c88959..5f2a40302 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/mirror_pod_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/mirror_pod_test.go @@ -59,7 +59,7 @@ var _ = framework.KubeDescribe("MirrorPod", func() { }) It("should be updated when static pod updated [Conformance]", func() { By("get mirror pod uid") - pod, err := f.ClientSet.Core().Pods(ns).Get(mirrorPodName, metav1.GetOptions{}) + pod, err := f.ClientSet.CoreV1().Pods(ns).Get(mirrorPodName, metav1.GetOptions{}) Expect(err).ShouldNot(HaveOccurred()) uid := pod.UID @@ -74,19 +74,19 @@ var _ = framework.KubeDescribe("MirrorPod", func() { }, 2*time.Minute, time.Second*4).Should(BeNil()) By("check the mirror pod container image is updated") - pod, err = f.ClientSet.Core().Pods(ns).Get(mirrorPodName, metav1.GetOptions{}) + pod, err = f.ClientSet.CoreV1().Pods(ns).Get(mirrorPodName, metav1.GetOptions{}) Expect(err).ShouldNot(HaveOccurred()) Expect(len(pod.Spec.Containers)).Should(Equal(1)) Expect(pod.Spec.Containers[0].Image).Should(Equal(image)) }) It("should be recreated when mirror pod gracefully deleted [Conformance]", func() { By("get mirror pod uid") - pod, err := f.ClientSet.Core().Pods(ns).Get(mirrorPodName, metav1.GetOptions{}) + pod, err := f.ClientSet.CoreV1().Pods(ns).Get(mirrorPodName, metav1.GetOptions{}) Expect(err).ShouldNot(HaveOccurred()) uid := pod.UID By("delete the mirror pod with grace period 30s") - err = f.ClientSet.Core().Pods(ns).Delete(mirrorPodName, metav1.NewDeleteOptions(30)) + err = f.ClientSet.CoreV1().Pods(ns).Delete(mirrorPodName, metav1.NewDeleteOptions(30)) Expect(err).ShouldNot(HaveOccurred()) By("wait for the mirror pod to be recreated") @@ -96,12 +96,12 @@ var _ = framework.KubeDescribe("MirrorPod", func() { }) It("should be recreated when mirror pod forcibly deleted [Conformance]", func() { By("get mirror pod uid") - pod, err := f.ClientSet.Core().Pods(ns).Get(mirrorPodName, metav1.GetOptions{}) + pod, err := f.ClientSet.CoreV1().Pods(ns).Get(mirrorPodName, metav1.GetOptions{}) Expect(err).ShouldNot(HaveOccurred()) uid := pod.UID By("delete the mirror pod with grace period 0s") - err = f.ClientSet.Core().Pods(ns).Delete(mirrorPodName, metav1.NewDeleteOptions(0)) + err = f.ClientSet.CoreV1().Pods(ns).Delete(mirrorPodName, metav1.NewDeleteOptions(0)) Expect(err).ShouldNot(HaveOccurred()) By("wait for the mirror pod to be recreated") @@ -158,7 +158,7 @@ func deleteStaticPod(dir, name, namespace string) error { } func checkMirrorPodDisappear(cl clientset.Interface, name, namespace string) error { - _, err := cl.Core().Pods(namespace).Get(name, metav1.GetOptions{}) + _, err := cl.CoreV1().Pods(namespace).Get(name, metav1.GetOptions{}) if errors.IsNotFound(err) { return nil } @@ -166,7 +166,7 @@ func checkMirrorPodDisappear(cl clientset.Interface, name, namespace string) err } func checkMirrorPodRunning(cl clientset.Interface, name, namespace string) error { - pod, err := cl.Core().Pods(namespace).Get(name, metav1.GetOptions{}) + pod, err := cl.CoreV1().Pods(namespace).Get(name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("expected the mirror pod %q to appear: %v", name, err) } @@ -177,7 +177,7 @@ func checkMirrorPodRunning(cl clientset.Interface, name, namespace string) error } func checkMirrorPodRecreatedAndRunnig(cl clientset.Interface, name, namespace string, oUID types.UID) error { - pod, err := cl.Core().Pods(namespace).Get(name, metav1.GetOptions{}) + pod, err := cl.CoreV1().Pods(namespace).Get(name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("expected the mirror pod %q to appear: %v", name, err) } diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/node_container_manager_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/node_container_manager_test.go index 9f903ab30..31d7432bf 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/node_container_manager_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/node_container_manager_test.go @@ -176,7 +176,7 @@ func runTest(f *framework.Framework) error { return fmt.Errorf("Expected Node Allocatable Cgroup Does not exist") } // TODO: Update cgroupManager to expose a Status interface to get current Cgroup Settings. - nodeList, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{}) + nodeList, err := f.ClientSet.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/node_problem_detector_linux.go b/vendor/k8s.io/kubernetes/test/e2e_node/node_problem_detector_linux.go index dea4b7fe4..3c9b6453e 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/node_problem_detector_linux.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/node_problem_detector_linux.go @@ -155,7 +155,7 @@ var _ = framework.KubeDescribe("NodeProblemDetector", func() { By("Create the test log file") Expect(err).NotTo(HaveOccurred()) By("Create config map for the node problem detector") - _, err = c.Core().ConfigMaps(ns).Create(&v1.ConfigMap{ + _, err = c.CoreV1().ConfigMaps(ns).Create(&v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{Name: configName}, Data: map[string]string{path.Base(configFile): config}, }) @@ -331,20 +331,20 @@ var _ = framework.KubeDescribe("NodeProblemDetector", func() { By(fmt.Sprintf("Wait for %d events generated", test.events)) Eventually(func() error { - return verifyEvents(c.Core().Events(eventNamespace), eventListOptions, test.events, tempReason, tempMessage) + return verifyEvents(c.CoreV1().Events(eventNamespace), eventListOptions, test.events, tempReason, tempMessage) }, pollTimeout, pollInterval).Should(Succeed()) By(fmt.Sprintf("Make sure only %d events generated", test.events)) Consistently(func() error { - return verifyEvents(c.Core().Events(eventNamespace), eventListOptions, test.events, tempReason, tempMessage) + return verifyEvents(c.CoreV1().Events(eventNamespace), eventListOptions, test.events, tempReason, tempMessage) }, pollConsistent, pollInterval).Should(Succeed()) By(fmt.Sprintf("Make sure node condition %q is set", condition)) Eventually(func() error { - return verifyNodeCondition(c.Core().Nodes(), condition, test.conditionType, test.conditionReason, test.conditionMessage) + return verifyNodeCondition(c.CoreV1().Nodes(), condition, test.conditionType, test.conditionReason, test.conditionMessage) }, pollTimeout, pollInterval).Should(Succeed()) By(fmt.Sprintf("Make sure node condition %q is stable", condition)) Consistently(func() error { - return verifyNodeCondition(c.Core().Nodes(), condition, test.conditionType, test.conditionReason, test.conditionMessage) + return verifyNodeCondition(c.CoreV1().Nodes(), condition, test.conditionType, test.conditionReason, test.conditionMessage) }, pollConsistent, pollInterval).Should(Succeed()) } }) @@ -361,12 +361,12 @@ var _ = framework.KubeDescribe("NodeProblemDetector", func() { By("Wait for the node problem detector to disappear") Expect(framework.WaitForPodToDisappear(c, ns, name, labels.Everything(), pollInterval, pollTimeout)).To(Succeed()) By("Delete the config map") - c.Core().ConfigMaps(ns).Delete(configName, nil) + c.CoreV1().ConfigMaps(ns).Delete(configName, nil) By("Clean up the events") - Expect(c.Core().Events(eventNamespace).DeleteCollection(metav1.NewDeleteOptions(0), eventListOptions)).To(Succeed()) + Expect(c.CoreV1().Events(eventNamespace).DeleteCollection(metav1.NewDeleteOptions(0), eventListOptions)).To(Succeed()) By("Clean up the node condition") patch := []byte(fmt.Sprintf(`{"status":{"conditions":[{"$patch":"delete","type":"%s"}]}}`, condition)) - c.Core().RESTClient().Patch(types.StrategicMergePatchType).Resource("nodes").Name(framework.TestContext.NodeName).SubResource("status").Body(patch).Do() + c.CoreV1().RESTClient().Patch(types.StrategicMergePatchType).Resource("nodes").Name(framework.TestContext.NodeName).SubResource("status").Body(patch).Do() }) }) }) diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/pods_container_manager_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/pods_container_manager_test.go index 7e0a3248b..23142bdea 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/pods_container_manager_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/pods_container_manager_test.go @@ -57,8 +57,8 @@ const ( defaultNodeAllocatableCgroup = "kubepods" // Kubelet internal cgroup name for burstable tier burstableCgroup = "burstable" - // Kubelet internal cgroup name for burstable tier - bestEffortCgroup = "burstable" + // Kubelet internal cgroup name for besteffort tier + bestEffortCgroup = "besteffort" ) // makePodToVerifyCgroups returns a pod that verifies the existence of the specified cgroups. diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/remote/node_e2e.go b/vendor/k8s.io/kubernetes/test/e2e_node/remote/node_e2e.go index d22883afa..f95fc2b58 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/remote/node_e2e.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/remote/node_e2e.go @@ -30,8 +30,7 @@ import ( ) const ( - localCOSMounterPath = "cluster/gce/gci/mounter/mounter" - systemSpecPath = "test/e2e_node/system/specs" + systemSpecPath = "test/e2e_node/system/specs" ) // NodeE2ERemote contains the specific functions in the node e2e test suite. @@ -61,7 +60,7 @@ func (n *NodeE2ERemote) SetupTestPackage(tardir, systemSpecName string) error { } // Copy binaries - requiredBins := []string{"kubelet", "e2e_node.test", "ginkgo"} + requiredBins := []string{"kubelet", "e2e_node.test", "ginkgo", "mounter"} for _, bin := range requiredBins { source := filepath.Join(buildOutputDir, bin) if _, err := os.Stat(source); err != nil { @@ -85,11 +84,6 @@ func (n *NodeE2ERemote) SetupTestPackage(tardir, systemSpecName string) error { } } - // Include the GCI/COS mounter artifacts in the deployed tarball - err = tarAddCOSMounter(tardir) - if err != nil { - return err - } return nil } @@ -110,51 +104,11 @@ func tarAddFile(tar, source, dest string) error { return nil } -// Includes the GCI/COS mounter artifacts in the deployed tarball -func tarAddCOSMounter(tar string) error { - k8sDir, err := builder.GetK8sRootDir() - if err != nil { - return fmt.Errorf("Could not find K8s root dir! Err: %v", err) - } - - source := filepath.Join(k8sDir, localCOSMounterPath) - - // Require the GCI/COS mounter script, we want to make sure the remote test runner stays up to date if the mounter file moves - if _, err := os.Stat(source); err != nil { - return fmt.Errorf("Could not find GCI/COS mounter script at %q! If this script has been (re)moved, please update the e2e node remote test runner accordingly! Err: %v", source, err) - } - - tarAddFile(tar, source, localCOSMounterPath) - return nil -} - // prependCOSMounterFlag prepends the flag for setting the GCI mounter path to // args and returns the result. func prependCOSMounterFlag(args, host, workspace string) (string, error) { - // If we are testing on a GCI/COS node, we chmod 544 the mounter and specify a different mounter path in the test args. - // We do this here because the local var `workspace` tells us which /tmp/node-e2e-%d is relevant to the current test run. - - // Determine if the GCI/COS mounter script exists locally. - k8sDir, err := builder.GetK8sRootDir() - if err != nil { - return args, fmt.Errorf("could not find K8s root dir! Err: %v", err) - } - source := filepath.Join(k8sDir, localCOSMounterPath) - - // Require the GCI/COS mounter script, we want to make sure the remote test runner stays up to date if the mounter file moves - if _, err = os.Stat(source); err != nil { - return args, fmt.Errorf("could not find GCI/COS mounter script at %q! If this script has been (re)moved, please update the e2e node remote test runner accordingly! Err: %v", source, err) - } - glog.V(2).Infof("GCI/COS node and GCI/COS mounter both detected, modifying --experimental-mounter-path accordingly") - // Note this implicitly requires the script to be where we expect in the tarball, so if that location changes the error - // here will tell us to update the remote test runner. - mounterPath := filepath.Join(workspace, localCOSMounterPath) - output, err := SSH(host, "sh", "-c", fmt.Sprintf("'chmod 544 %s'", mounterPath)) - if err != nil { - return args, fmt.Errorf("unabled to chmod 544 GCI/COS mounter script. Err: %v, Output:\n%s", err, output) - } - // Insert args at beginning of test args, so any values from command line take precedence + mounterPath := filepath.Join(workspace, "mounter") args = fmt.Sprintf("--kubelet-flags=--experimental-mounter-path=%s ", mounterPath) + args return args, nil } diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/remote/utils.go b/vendor/k8s.io/kubernetes/test/e2e_node/remote/utils.go index 90ec84591..ae613f9ee 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/remote/utils.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/remote/utils.go @@ -31,7 +31,7 @@ const ( cniArch = "amd64" cniDirectory = "cni/bin" // The CNI tarball places binaries under directory under "cni/bin". cniConfDirectory = "cni/net.d" - cniURL = "https://storage.googleapis.com/kubernetes-release/network-plugins/cni-plugins-" + cniArch + "-" + cniVersion + ".tgz" + cniURL = "https://dl.k8s.io/network-plugins/cni-plugins-" + cniArch + "-" + cniVersion + ".tgz" ) const cniConfig = `{ diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/resource_collector.go b/vendor/k8s.io/kubernetes/test/e2e_node/resource_collector.go index 1facaff57..53028aebf 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/resource_collector.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/resource_collector.go @@ -534,7 +534,7 @@ func getContainer(pid int) (string, error) { return "", cgroups.NewNotFoundError("memory") } - // since we use this container for accounting, we need to ensure its a unified hierarchy. + // since we use this container for accounting, we need to ensure it is a unified hierarchy. if cpu != memory { return "", fmt.Errorf("cpu and memory cgroup hierarchy not unified. cpu: %s, memory: %s", cpu, memory) } diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/runtime_conformance_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/runtime_conformance_test.go index 5e3ab6b7b..426e06ba3 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/runtime_conformance_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/runtime_conformance_test.go @@ -18,13 +18,17 @@ package e2e_node import ( "fmt" + "io/ioutil" + "os" "path" + "path/filepath" "time" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/kubernetes/pkg/kubelet/images" "k8s.io/kubernetes/test/e2e/framework" + "k8s.io/kubernetes/test/e2e_node/services" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -256,11 +260,12 @@ while true; do sleep 1; done // testing image pulling, these images don't need to be prepulled. The ImagePullPolicy // is v1.PullAlways, so it won't be blocked by framework image white list check. for _, testCase := range []struct { - description string - image string - secret bool - phase v1.PodPhase - waiting bool + description string + image string + secret bool + credentialProvider bool + phase v1.PodPhase + waiting bool }{ { description: "should not be able to pull image from invalid registry", @@ -299,6 +304,13 @@ while true; do sleep 1; done phase: v1.PodRunning, waiting: false, }, + { + description: "should be able to pull from private registry with credential provider", + image: "gcr.io/authenticated-image-pulling/alpine:3.1", + credentialProvider: true, + phase: v1.PodRunning, + waiting: false, + }, } { testCase := testCase It(testCase.description+" [Conformance]", func() { @@ -318,11 +330,17 @@ while true; do sleep 1; done if testCase.secret { secret.Name = "image-pull-secret-" + string(uuid.NewUUID()) By("create image pull secret") - _, err := f.ClientSet.Core().Secrets(f.Namespace.Name).Create(secret) + _, err := f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(secret) Expect(err).NotTo(HaveOccurred()) - defer f.ClientSet.Core().Secrets(f.Namespace.Name).Delete(secret.Name, nil) + defer f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Delete(secret.Name, nil) container.ImagePullSecrets = []string{secret.Name} } + if testCase.credentialProvider { + configFile := filepath.Join(services.KubeletRootDirectory, "config.json") + err := ioutil.WriteFile(configFile, []byte(auth), 0644) + Expect(err).NotTo(HaveOccurred()) + defer os.Remove(configFile) + } // checkContainerStatus checks whether the container status matches expectation. checkContainerStatus := func() error { status, err := container.GetStatus() diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/security_context_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/security_context_test.go index 08b395fc4..7e30d167f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/security_context_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/security_context_test.go @@ -341,7 +341,7 @@ var _ = framework.KubeDescribe("Security Context", func() { createAndWaitUserPod := func(readOnlyRootFilesystem bool) string { podName := fmt.Sprintf("busybox-readonly-%v-%s", readOnlyRootFilesystem, uuid.NewUUID()) podClient.Create(makeUserPod(podName, - imageutils.GetBusyBoxImage(), + "busybox", []string{"sh", "-c", "touch checkfile"}, readOnlyRootFilesystem, )) diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/services/BUILD b/vendor/k8s.io/kubernetes/test/e2e_node/services/BUILD index 5d505f667..b0852a582 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/services/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e_node/services/BUILD @@ -22,7 +22,7 @@ go_library( deps = [ "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-apiserver/app/options:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/controller/namespace:go_default_library", "//pkg/features:go_default_library", "//test/e2e/framework:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/services/kubelet.go b/vendor/k8s.io/kubernetes/test/e2e_node/services/kubelet.go index 3db592750..0e6553490 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/services/kubelet.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/services/kubelet.go @@ -85,7 +85,7 @@ const ( // Ports of different e2e services. kubeletPort = "10250" kubeletReadOnlyPort = "10255" - kubeletRootDirectory = "/var/lib/kubelet" + KubeletRootDirectory = "/var/lib/kubelet" // Health check url of kubelet kubeletHealthCheckURL = "http://127.0.0.1:" + kubeletReadOnlyPort + "/healthz" ) @@ -110,7 +110,7 @@ func (e *E2EServices) startKubelet() (*server, error) { return nil, err } e.rmDirs = append(e.rmDirs, manifestPath) - err = createRootDirectory(kubeletRootDirectory) + err = createRootDirectory(KubeletRootDirectory) if err != nil { return nil, err } @@ -151,7 +151,7 @@ func (e *E2EServices) startKubelet() (*server, error) { "--address", "0.0.0.0", "--port", kubeletPort, "--read-only-port", kubeletReadOnlyPort, - "--root-dir", kubeletRootDirectory, + "--root-dir", KubeletRootDirectory, "--volume-stats-agg-period", "10s", // Aggregate volumes frequently so tests don't need to wait as long "--allow-privileged", "true", "--serialize-image-pulls", "false", diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/services/namespace_controller.go b/vendor/k8s.io/kubernetes/test/e2e_node/services/namespace_controller.go index e574e6411..79fd3dd48 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/services/namespace_controller.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/services/namespace_controller.go @@ -24,7 +24,7 @@ import ( "k8s.io/client-go/informers" clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" namespacecontroller "k8s.io/kubernetes/pkg/controller/namespace" ) @@ -56,7 +56,7 @@ func (n *NamespaceController) Start() error { if err != nil { return err } - clientPool := dynamic.NewClientPool(config, api.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) + clientPool := dynamic.NewClientPool(config, legacyscheme.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) discoverResourcesFn := client.Discovery().ServerPreferredNamespacedResources informerFactory := informers.NewSharedInformerFactory(client, ncResyncPeriod) nc := namespacecontroller.NewNamespaceController( diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/summary_test.go b/vendor/k8s.io/kubernetes/test/e2e_node/summary_test.go index 84f9015db..e657abb0a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/summary_test.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/summary_test.go @@ -342,7 +342,6 @@ func recordSystemCgroupProcesses() { } cgroups := map[string]string{ "kubelet": cfg.KubeletCgroups, - "runtime": cfg.RuntimeCgroups, "misc": cfg.SystemCgroups, } for name, cgroup := range cgroups { diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/system/BUILD b/vendor/k8s.io/kubernetes/test/e2e_node/system/BUILD index 248fea82a..8c5b957da 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/system/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e_node/system/BUILD @@ -12,12 +12,19 @@ go_library( "cgroup_validator.go", "docker_validator.go", "kernel_validator.go", + "kernel_validator_helper.go", "os_validator.go", "package_validator.go", "report.go", "types.go", + "types_unix.go", "validators.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "types_windows.go", + ], + "//conditions:default": [], + }), importpath = "k8s.io/kubernetes/test/e2e_node/system", deps = [ "//vendor/github.com/blang/semver:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/system/docker_validator.go b/vendor/k8s.io/kubernetes/test/e2e_node/system/docker_validator.go index 5798f5a26..f6b7f03da 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/system/docker_validator.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/system/docker_validator.go @@ -37,7 +37,6 @@ func (d *DockerValidator) Name() string { } const ( - dockerEndpoint = "unix:///var/run/docker.sock" dockerConfigPrefix = "DOCKER_" maxDockerValidatedVersion = "17.03" ) @@ -49,6 +48,7 @@ func (d *DockerValidator) Validate(spec SysSpec) (error, error) { // docker, skip the docker configuration validation. return nil, nil } + c, err := client.NewClient(dockerEndpoint, "", nil, nil) if err != nil { return nil, fmt.Errorf("failed to create docker client: %v", err) diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/system/kernel_validator.go b/vendor/k8s.io/kubernetes/test/e2e_node/system/kernel_validator.go index 295706dca..796816740 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/system/kernel_validator.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/system/kernel_validator.go @@ -61,14 +61,18 @@ const ( ) func (k *KernelValidator) Validate(spec SysSpec) (error, error) { - release, err := exec.Command("uname", "-r").CombinedOutput() + helper := KernelValidatorHelperImpl{} + release, err := helper.GetKernelReleaseVersion() if err != nil { return nil, fmt.Errorf("failed to get kernel release: %v", err) } - k.kernelRelease = strings.TrimSpace(string(release)) + k.kernelRelease = release var errs []error errs = append(errs, k.validateKernelVersion(spec.KernelSpec)) - errs = append(errs, k.validateKernelConfig(spec.KernelSpec)) + // only validate kernel config when necessary (currently no kernel config for windows) + if len(spec.KernelSpec.Required) > 0 || len(spec.KernelSpec.Forbidden) > 0 || len(spec.KernelSpec.Optional) > 0 { + errs = append(errs, k.validateKernelConfig(spec.KernelSpec)) + } return nil, errors.NewAggregate(errs) } diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/system/kernel_validator_helper.go b/vendor/k8s.io/kubernetes/test/e2e_node/system/kernel_validator_helper.go new file mode 100644 index 000000000..09c64d87c --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e_node/system/kernel_validator_helper.go @@ -0,0 +1,23 @@ +/* +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 system + +// KernelValidatorHelper is an interface intended to help with os specific kernel validation +type KernelValidatorHelper interface { + // GetKernelReleaseVersion gets the current kernel release version of the system + GetKernelReleaseVersion() (string, error) +} diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/system/types.go b/vendor/k8s.io/kubernetes/test/e2e_node/system/types.go index f2084076d..91ad46959 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/system/types.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/system/types.go @@ -122,45 +122,3 @@ type SysSpec struct { // versions for an OS distro. PackageSpecOverrides []PackageSpecOverride `json:"packageSpecOverrides,omitempty"` } - -// DefaultSysSpec is the default SysSpec. -var DefaultSysSpec = SysSpec{ - OS: "Linux", - KernelSpec: KernelSpec{ - Versions: []string{`3\.[1-9][0-9].*`, `4\..*`}, // Requires 3.10+ or 4+ - // TODO(random-liu): Add more config - // TODO(random-liu): Add description for each kernel configuration: - Required: []KernelConfig{ - {Name: "NAMESPACES"}, - {Name: "NET_NS"}, - {Name: "PID_NS"}, - {Name: "IPC_NS"}, - {Name: "UTS_NS"}, - {Name: "CGROUPS"}, - {Name: "CGROUP_CPUACCT"}, - {Name: "CGROUP_DEVICE"}, - {Name: "CGROUP_FREEZER"}, - {Name: "CGROUP_SCHED"}, - {Name: "CPUSETS"}, - {Name: "MEMCG"}, - {Name: "INET"}, - {Name: "EXT4_FS"}, - {Name: "PROC_FS"}, - {Name: "NETFILTER_XT_TARGET_REDIRECT", Aliases: []string{"IP_NF_TARGET_REDIRECT"}}, - {Name: "NETFILTER_XT_MATCH_COMMENT"}, - }, - Optional: []KernelConfig{ - {Name: "OVERLAY_FS", Aliases: []string{"OVERLAYFS_FS"}, Description: "Required for overlayfs."}, - {Name: "AUFS_FS", Description: "Required for aufs."}, - {Name: "BLK_DEV_DM", Description: "Required for devicemapper."}, - }, - Forbidden: []KernelConfig{}, - }, - Cgroups: []string{"cpu", "cpuacct", "cpuset", "devices", "freezer", "memory"}, - RuntimeSpec: RuntimeSpec{ - DockerSpec: &DockerSpec{ - Version: []string{`1\.1[1-3]\..*`, `17\.03\..*`}, // Requires [1.11, 17.03] - GraphDriver: []string{"aufs", "overlay", "overlay2", "devicemapper"}, - }, - }, -} diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/system/types_unix.go b/vendor/k8s.io/kubernetes/test/e2e_node/system/types_unix.go new file mode 100644 index 000000000..4480b729a --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e_node/system/types_unix.go @@ -0,0 +1,83 @@ +// +build !windows + +/* +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 system + +import ( + "os/exec" + "strings" +) + +// dockerEndpoint is the os specific endpoint for docker communication +const dockerEndpoint = "unix:///var/run/docker.sock" + +// DefaultSysSpec is the default SysSpec for Linux +var DefaultSysSpec = SysSpec{ + OS: "Linux", + KernelSpec: KernelSpec{ + Versions: []string{`3\.[1-9][0-9].*`, `4\..*`}, // Requires 3.10+ or 4+ + // TODO(random-liu): Add more config + // TODO(random-liu): Add description for each kernel configuration: + Required: []KernelConfig{ + {Name: "NAMESPACES"}, + {Name: "NET_NS"}, + {Name: "PID_NS"}, + {Name: "IPC_NS"}, + {Name: "UTS_NS"}, + {Name: "CGROUPS"}, + {Name: "CGROUP_CPUACCT"}, + {Name: "CGROUP_DEVICE"}, + {Name: "CGROUP_FREEZER"}, + {Name: "CGROUP_SCHED"}, + {Name: "CPUSETS"}, + {Name: "MEMCG"}, + {Name: "INET"}, + {Name: "EXT4_FS"}, + {Name: "PROC_FS"}, + {Name: "NETFILTER_XT_TARGET_REDIRECT", Aliases: []string{"IP_NF_TARGET_REDIRECT"}}, + {Name: "NETFILTER_XT_MATCH_COMMENT"}, + }, + Optional: []KernelConfig{ + {Name: "OVERLAY_FS", Aliases: []string{"OVERLAYFS_FS"}, Description: "Required for overlayfs."}, + {Name: "AUFS_FS", Description: "Required for aufs."}, + {Name: "BLK_DEV_DM", Description: "Required for devicemapper."}, + }, + Forbidden: []KernelConfig{}, + }, + Cgroups: []string{"cpu", "cpuacct", "cpuset", "devices", "freezer", "memory"}, + RuntimeSpec: RuntimeSpec{ + DockerSpec: &DockerSpec{ + Version: []string{`1\.1[1-3]\..*`, `17\.03\..*`}, // Requires [1.11, 17.03] + GraphDriver: []string{"aufs", "overlay", "overlay2", "devicemapper"}, + }, + }, +} + +// KernelValidatorHelperImpl is the 'linux' implementation of KernelValidatorHelper +type KernelValidatorHelperImpl struct{} + +var _ KernelValidatorHelper = &KernelValidatorHelperImpl{} + +// GetKernelReleaseVersion returns the kernel release version (ex. 4.4.0-96-generic) as a string +func (o *KernelValidatorHelperImpl) GetKernelReleaseVersion() (string, error) { + releaseVersion, err := exec.Command("uname", "-r").CombinedOutput() + if err != nil { + return "", err + } + return strings.TrimSpace(string(releaseVersion)), nil +} diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/system/types_windows.go b/vendor/k8s.io/kubernetes/test/e2e_node/system/types_windows.go new file mode 100644 index 000000000..5047013e6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e_node/system/types_windows.go @@ -0,0 +1,60 @@ +// +build windows + +/* +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 system + +import ( + "os/exec" + "strings" +) + +// dockerEndpoint is the os specific endpoint for docker communication +const dockerEndpoint = "npipe:////./pipe/docker_engine" + +// DefaultSysSpec is the default SysSpec for Windows +var DefaultSysSpec = SysSpec{ + OS: "Microsoft Windows Server 2016", + KernelSpec: KernelSpec{ + Versions: []string{`10\.0\.1439[3-9]`, `10\.0\.14[4-9][0-9]{2}`, `10\.0\.1[5-9][0-9]{3}`, `10\.0\.[2-9][0-9]{4}`, `10\.[1-9]+\.[0-9]+`}, //requires >= '10.0.14393' + Required: []KernelConfig{}, + Optional: []KernelConfig{}, + Forbidden: []KernelConfig{}, + }, + Cgroups: []string{}, + RuntimeSpec: RuntimeSpec{ + DockerSpec: &DockerSpec{ + Version: []string{`17\.03\..*`}, //Requires [17.03] or later + GraphDriver: []string{"windowsfilter"}, + }, + }, +} + +// KernelValidatorHelperImpl is the 'windows' implementation of KernelValidatorHelper +type KernelValidatorHelperImpl struct{} + +var _ KernelValidatorHelper = &KernelValidatorHelperImpl{} + +// GetKernelRelease returns the windows release version (ex. 10.0.14393) as a string +func (o *KernelValidatorHelperImpl) GetKernelReleaseVersion() (string, error) { + args := []string{"(Get-CimInstance Win32_OperatingSystem).Version"} + releaseVersion, err := exec.Command("powershell", args...).Output() + if err != nil { + return "", err + } + return strings.TrimSpace(string(releaseVersion)), nil +} diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/util.go b/vendor/k8s.io/kubernetes/test/e2e_node/util.go index 3cec9f54d..de6f25d02 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/util.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/util.go @@ -45,7 +45,6 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - imageutils "k8s.io/kubernetes/test/utils/image" ) // TODO(random-liu): Get this automatically from kubelet flag. @@ -53,7 +52,7 @@ var kubeletAddress = flag.String("kubelet-address", "http://127.0.0.1:10255", "H var startServices = flag.Bool("start-services", true, "If true, start local node services") var stopServices = flag.Bool("stop-services", true, "If true, stop local node services after running tests") -var busyboxImage = imageutils.GetBusyBoxImage() +var busyboxImage = "busybox" func getNodeSummary() (*stats.Summary, error) { req, err := http.NewRequest("GET", *kubeletAddress+"/stats/summary", nil) @@ -280,7 +279,7 @@ func decodeConfigz(resp *http.Response) (*kubeletconfig.KubeletConfiguration, er // creates a configmap containing kubeCfg in kube-system namespace func createConfigMap(f *framework.Framework, internalKC *kubeletconfig.KubeletConfiguration) (*apiv1.ConfigMap, error) { cmap := newKubeletConfigMap("testcfg", internalKC) - cmap, err := f.ClientSet.Core().ConfigMaps("kube-system").Create(cmap) + cmap, err := f.ClientSet.CoreV1().ConfigMaps("kube-system").Create(cmap) if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/getting-started-guides/coreos/cloud-configs/master.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/getting-started-guides/coreos/cloud-configs/master.yaml deleted file mode 100644 index bc1ee220e..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/getting-started-guides/coreos/cloud-configs/master.yaml +++ /dev/null @@ -1,142 +0,0 @@ -#cloud-config - ---- -write-files: - - path: /etc/conf.d/nfs - permissions: '0644' - content: | - OPTS_RPC_MOUNTD="" - - path: /opt/bin/wupiao - permissions: '0755' - content: | - #!/bin/bash - # [w]ait [u]ntil [p]ort [i]s [a]ctually [o]pen - [ -n "$1" ] && \ - until curl -o /dev/null -sIf http://${1}; do \ - sleep 1 && echo .; - done; - exit $? - -hostname: master -coreos: - etcd2: - name: master - listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 - advertise-client-urls: http://$private_ipv4:2379,http://$private_ipv4:4001 - initial-cluster-token: k8s_etcd - listen-peer-urls: http://$private_ipv4:2380,http://$private_ipv4:7001 - initial-advertise-peer-urls: http://$private_ipv4:2380 - initial-cluster: master=http://$private_ipv4:2380 - initial-cluster-state: new - fleet: - metadata: "role=master" - units: - - name: etcd2.service - command: start - - name: generate-serviceaccount-key.service - command: start - content: | - [Unit] - Description=Generate service-account key file - - [Service] - ExecStartPre=-/usr/bin/mkdir -p /opt/bin - ExecStart=/bin/openssl genrsa -out /opt/bin/kube-serviceaccount.key 2048 2>/dev/null - RemainAfterExit=yes - Type=oneshot - - name: setup-network-environment.service - command: start - content: | - [Unit] - Description=Setup Network Environment - Documentation=https://github.com/kelseyhightower/setup-network-environment - Requires=network-online.target - After=network-online.target - - [Service] - ExecStartPre=-/usr/bin/mkdir -p /opt/bin - ExecStartPre=/usr/bin/curl -L -o /opt/bin/setup-network-environment -z /opt/bin/setup-network-environment https://github.com/kelseyhightower/setup-network-environment/releases/download/v1.0.0/setup-network-environment - ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment - ExecStart=/opt/bin/setup-network-environment - RemainAfterExit=yes - Type=oneshot - - name: fleet.service - command: start - - name: flanneld.service - command: start - drop-ins: - - name: 50-network-config.conf - content: | - [Unit] - Requires=etcd2.service - [Service] - ExecStartPre=/usr/bin/etcdctl set /coreos.com/network/config '{"Network":"10.244.0.0/16", "Backend": {"Type": "vxlan"}}' - - name: docker.service - command: start - - name: kube-apiserver.service - command: start - content: | - [Unit] - Description=Kubernetes API Server - Documentation=https://github.com/kubernetes/kubernetes - Requires=setup-network-environment.service etcd2.service generate-serviceaccount-key.service - After=setup-network-environment.service etcd2.service generate-serviceaccount-key.service - - [Service] - EnvironmentFile=/etc/network-environment - ExecStartPre=-/usr/bin/mkdir -p /opt/bin - ExecStartPre=/usr/bin/curl -L -o /opt/bin/kube-apiserver -z /opt/bin/kube-apiserver https://storage.googleapis.com/kubernetes-release/release/v1.1.2/bin/linux/amd64/kube-apiserver - ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver - ExecStartPre=/opt/bin/wupiao 127.0.0.1:2379/v2/machines - ExecStart=/opt/bin/kube-apiserver \ - --service-account-key-file=/opt/bin/kube-serviceaccount.key \ - --service-account-lookup=true \ - --admission-control=Initializers,NamespaceLifecycle,NamespaceAutoProvision,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota \ - --runtime-config=api/v1 \ - --allow-privileged=true \ - --insecure-bind-address=0.0.0.0 \ - --insecure-port=8080 \ - --kubelet-https=true \ - --secure-port=6443 \ - --service-cluster-ip-range=10.100.0.0/16 \ - --etcd-servers=http://127.0.0.1:2379 \ - --public-address-override=${DEFAULT_IPV4} \ - --logtostderr=true - Restart=always - RestartSec=10 - - name: kube-controller-manager.service - command: start - content: | - [Unit] - Description=Kubernetes Controller Manager - Documentation=https://github.com/kubernetes/kubernetes - Requires=kube-apiserver.service - After=kube-apiserver.service - - [Service] - ExecStartPre=/usr/bin/curl -L -o /opt/bin/kube-controller-manager -z /opt/bin/kube-controller-manager https://storage.googleapis.com/kubernetes-release/release/v1.1.2/bin/linux/amd64/kube-controller-manager - ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager - ExecStart=/opt/bin/kube-controller-manager \ - --service-account-private-key-file=/opt/bin/kube-serviceaccount.key \ - --master=127.0.0.1:8080 \ - --logtostderr=true - Restart=always - RestartSec=10 - - name: kube-scheduler.service - command: start - content: | - [Unit] - Description=Kubernetes Scheduler - Documentation=https://github.com/kubernetes/kubernetes - Requires=kube-apiserver.service - After=kube-apiserver.service - - [Service] - ExecStartPre=/usr/bin/curl -L -o /opt/bin/kube-scheduler -z /opt/bin/kube-scheduler https://storage.googleapis.com/kubernetes-release/release/v1.1.2/bin/linux/amd64/kube-scheduler - ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler - ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080 - Restart=always - RestartSec=10 - update: - group: alpha - reboot-strategy: off diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/getting-started-guides/coreos/cloud-configs/node.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/getting-started-guides/coreos/cloud-configs/node.yaml deleted file mode 100644 index 503d67dd5..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/getting-started-guides/coreos/cloud-configs/node.yaml +++ /dev/null @@ -1,93 +0,0 @@ -#cloud-config -write-files: - - path: /opt/bin/wupiao - permissions: '0755' - content: | - #!/bin/bash - # [w]ait [u]ntil [p]ort [i]s [a]ctually [o]pen - [ -n "$1" ] && [ -n "$2" ] && while ! curl --output /dev/null \ - --silent --head --fail \ - http://${1}:${2}; do sleep 1 && echo -n .; done; - exit $? -coreos: - etcd2: - listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 - advertise-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 - initial-cluster: master=http://:2380 - proxy: on - fleet: - metadata: "role=node" - units: - - name: etcd2.service - command: start - - name: fleet.service - command: start - - name: flanneld.service - command: start - - name: docker.service - command: start - - name: setup-network-environment.service - command: start - content: | - [Unit] - Description=Setup Network Environment - Documentation=https://github.com/kelseyhightower/setup-network-environment - Requires=network-online.target - After=network-online.target - - [Service] - ExecStartPre=-/usr/bin/mkdir -p /opt/bin - ExecStartPre=/usr/bin/curl -L -o /opt/bin/setup-network-environment -z /opt/bin/setup-network-environment https://github.com/kelseyhightower/setup-network-environment/releases/download/v1.0.0/setup-network-environment - ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment - ExecStart=/opt/bin/setup-network-environment - RemainAfterExit=yes - Type=oneshot - - name: kube-proxy.service - command: start - content: | - [Unit] - Description=Kubernetes Proxy - Documentation=https://github.com/kubernetes/kubernetes - Requires=setup-network-environment.service - After=setup-network-environment.service - - [Service] - ExecStartPre=/usr/bin/curl -L -o /opt/bin/kube-proxy -z /opt/bin/kube-proxy https://storage.googleapis.com/kubernetes-release/release/v1.1.2/bin/linux/amd64/kube-proxy - ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy - # wait for kubernetes master to be up and ready - ExecStartPre=/opt/bin/wupiao 8080 - ExecStart=/opt/bin/kube-proxy \ - --master=:8080 \ - --logtostderr=true - Restart=always - RestartSec=10 - - name: kube-kubelet.service - command: start - content: | - [Unit] - Description=Kubernetes Kubelet - Documentation=https://github.com/kubernetes/kubernetes - Requires=setup-network-environment.service - After=setup-network-environment.service - - [Service] - EnvironmentFile=/etc/network-environment - ExecStartPre=/usr/bin/curl -L -o /opt/bin/kubelet -z /opt/bin/kubelet https://storage.googleapis.com/kubernetes-release/release/v1.1.2/bin/linux/amd64/kubelet - ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet - # wait for kubernetes master to be up and ready - ExecStartPre=/opt/bin/wupiao 8080 - ExecStart=/opt/bin/kubelet \ - --address=0.0.0.0 \ - --port=10250 \ - --hostname-override=${DEFAULT_IPV4} \ - --api-servers=:8080 \ - --allow-privileged=true \ - --logtostderr=true \ - --cadvisor-port=4194 \ - --healthz-bind-address=0.0.0.0 \ - --healthz-port=10248 - Restart=always - RestartSec=10 - update: - group: alpha - reboot-strategy: off diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/command-pod.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/command-pod.yaml deleted file mode 100644 index 444b4beb6..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/command-pod.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: config-cmd-test-pod -spec: - containers: - - name: test-container - image: gcr.io/google_containers/busybox - command: [ "/bin/sh", "-c", "echo $(KUBE_CONFIG_1) $(KUBE_CONFIG_2)" ] - env: - - name: KUBE_CONFIG_1 - valueFrom: - configMapKeyRef: - name: test-configmap - key: data-1 - - name: KUBE_CONFIG_2 - valueFrom: - configMapKeyRef: - name: test-configmap - key: data-2 - restartPolicy: Never diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/env-pod.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/env-pod.yaml deleted file mode 100644 index fe0036e0b..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/env-pod.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: config-env-test-pod -spec: - containers: - - name: test-container - image: gcr.io/google_containers/busybox - command: [ "/bin/sh", "-c", "env" ] - env: - - name: KUBE_CONFIG_1 - valueFrom: - configMapKeyRef: - name: test-configmap - key: data-1 - - name: KUBE_CONFIG_2 - valueFrom: - configMapKeyRef: - name: test-configmap - key: data-2 - restartPolicy: Never diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/redis/redis-pod.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/redis/redis-pod.yaml deleted file mode 100644 index 259dbf853..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/redis/redis-pod.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: redis -spec: - containers: - - name: redis - image: kubernetes/redis:v1 - env: - - name: MASTER - value: "true" - ports: - - containerPort: 6379 - resources: - limits: - cpu: "0.1" - volumeMounts: - - mountPath: /redis-master-data - name: data - - mountPath: /redis-master - name: config - volumes: - - name: data - emptyDir: {} - - name: config - configMap: - name: example-redis-config - items: - - key: redis-config - path: redis.conf diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/volume-pod.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/volume-pod.yaml deleted file mode 100644 index c34332e97..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/configmap/volume-pod.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: config-volume-test-pod -spec: - containers: - - name: test-container - image: gcr.io/google_containers/busybox - command: [ "/bin/sh", "-c", "cat /etc/config/path/to/special-key" ] - volumeMounts: - - name: config-volume - mountPath: /etc/config - volumes: - - name: config-volume - configMap: - name: test-configmap - items: - - key: data-1 - path: path/to/special-key - restartPolicy: Never \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/downward-api/volume/dapi-volume.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/downward-api/volume/dapi-volume.yaml deleted file mode 100644 index be926498d..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/downward-api/volume/dapi-volume.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: kubernetes-downwardapi-volume-example - labels: - zone: us-est-coast - cluster: test-cluster1 - rack: rack-22 - annotations: - build: two - builder: john-doe -spec: - containers: - - name: client-container - image: gcr.io/google_containers/busybox - command: ["sh", "-c", "while true; do if [[ -e /etc/labels ]]; then cat /etc/labels; fi; if [[ -e /etc/annotations ]]; then cat /etc/annotations; fi; sleep 5; done"] - volumeMounts: - - name: podinfo - mountPath: /etc - readOnly: false - volumes: - - name: podinfo - downwardAPI: - items: - - path: "labels" - fieldRef: - fieldPath: metadata.labels - - path: "annotations" - fieldRef: - fieldPath: metadata.annotations diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/backend-rc.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/backend-rc.yaml deleted file mode 100644 index 6c57b95da..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/backend-rc.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -apiVersion: v1 -kind: ReplicationController -metadata: - name: backend-rc - labels: - type: backend-type -spec: - replicas: 3 - template: - metadata: - labels: - type: backend-type - spec: - containers: - - name: backend-container - image: gcr.io/google-samples/env-backend:1.1 - imagePullPolicy: Always - ports: - - containerPort: 5000 - protocol: TCP - env: - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/backend-srv.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/backend-srv.yaml deleted file mode 100644 index 7083b37bf..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/backend-srv.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: backend-srv - labels: - type: backend-type -spec: - ports: - - port: 5000 - protocol: TCP - selector: - type: backend-type diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/show-rc.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/show-rc.yaml deleted file mode 100644 index 4de94c06c..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/show-rc.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -apiVersion: v1 -kind: ReplicationController -metadata: - name: show-rc - labels: - type: show-type -spec: - replicas: 3 - template: - metadata: - labels: - type: show-type - spec: - containers: - - name: show-container - image: gcr.io/google-samples/env-show:1.1 - imagePullPolicy: Always - ports: - - containerPort: 8080 - protocol: TCP - env: - - name: USER_VAR - value: important information - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/show-srv.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/show-srv.yaml deleted file mode 100644 index 25a2d7473..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/environment-guide/show-srv.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: show-srv - labels: - type: show-type -spec: - type: LoadBalancer - ports: - - port: 80 - protocol: TCP - targetPort: 8080 - selector: - type: show-type diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml deleted file mode 100644 index 8aa7804ca..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: HorizontalPodAutoscaler -metadata: - name: php-apache - namespace: default -spec: - scaleRef: - kind: ReplicationController - name: php-apache - subresource: scale - minReplicas: 1 - maxReplicas: 10 - cpuUtilization: - targetPercentage: 50 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/logging-demo/synthetic_0_25lps.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/logging-demo/synthetic_0_25lps.yaml deleted file mode 100644 index 93516706c..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/logging-demo/synthetic_0_25lps.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This pod specification creates an instance of a synthetic logger. The logger -# is simply a program that writes out the hostname of the pod, a count which increments -# by one on each iteration (to help notice missing log enteries) and the date using -# a long format (RFC-3339) to nano-second precision. This program logs at a frequency -# of 0.25 lines per second. The shellscript program is given directly to bash as -c argument -# and could have been written out as: -# i="0" -# while true -# do -# echo -n "`hostname`: $i: " -# date --rfc-3339 ns -# sleep 4 -# i=$[$i+1] -# done -apiVersion: v1 -kind: Pod -metadata: - labels: - name: synth-logging-source - name: synthetic-logger-0.25lps-pod -spec: - containers: - - name: synth-lgr - image: ubuntu:14.04 - args: - - bash - - -c - - 'i="0"; while true; do echo -n "`hostname`: $i: "; date --rfc-3339 ns; sleep - 4; i=$[$i+1]; done' - diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/logging-demo/synthetic_10lps.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/logging-demo/synthetic_10lps.yaml deleted file mode 100644 index 6e3c1ca92..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/logging-demo/synthetic_10lps.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This pod specification creates an instance of a synthetic logger. The logger -# is simply a program that writes out the hostname of the pod, a count which increments -# by one on each iteration (to help notice missing log enteries) and the date using -# a long format (RFC-3339) to nano-second precision. This program logs at a frequency -# of 0.25 lines per second. The shellscript program is given directly to bash as -c argument -# and could have been written out as: -# i="0" -# while true -# do -# echo -n "`hostname`: $i: " -# date --rfc-3339 ns -# sleep 4 -# i=$[$i+1] -# done -apiVersion: v1 -kind: Pod -metadata: - labels: - name: synth-logging-source - name: synthetic-logger-10lps-pod -spec: - containers: - - name: synth-lgr - image: ubuntu:14.04 - args: - - bash - - -c - - 'i="0"; while true; do echo -n "`hostname`: $i: "; date --rfc-3339 ns; sleep - 0.1; i=$[$i+1]; done' - diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/node-selection/pod.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/node-selection/pod.yaml deleted file mode 100644 index 134ddae2a..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/node-selection/pod.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: nginx - labels: - env: test -spec: - containers: - - name: nginx - image: nginx - imagePullPolicy: IfNotPresent - nodeSelector: - disktype: ssd diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/namespace.json b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/namespace.json deleted file mode 100644 index 79e2c3521..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/namespace.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "kind": "Namespace", - "apiVersion":"v1", - "metadata": { - "name": "myns", - "labels": { - "name": "development" - } - } -} diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/pod.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/pod.yaml deleted file mode 100644 index ccd004593..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/pod.yaml +++ /dev/null @@ -1,20 +0,0 @@ -kind: Pod -apiVersion: v1 -metadata: - name: mypod - labels: - name: frontendhttp -spec: - containers: - - name: myfrontend - image: nginx - ports: - - containerPort: 80 - name: "http-server" - volumeMounts: - - mountPath: "/usr/share/nginx/html" - name: mypd - volumes: - - name: mypd - persistentVolumeClaim: - claimName: myclaim-1 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/service.json b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/service.json deleted file mode 100644 index 0e06aa9f0..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/persistent-volumes/simpletest/service.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "kind": "Service", - "apiVersion": "v1", - "metadata": { - "name": "frontendservice" - }, - "spec": { - "ports": [ - { - "protocol": "TCP", - "port": 3000, - "targetPort": "http-server" - } - ], - "selector": { - "name": "frontendhttp" - } - } -} diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/pod.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/pod.yaml deleted file mode 100644 index 7053af0be..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/pod.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: nginx - labels: - app: nginx -spec: - containers: - - name: nginx - image: nginx - ports: - - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/replicaset/frontend.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/replicaset/frontend.yaml deleted file mode 100644 index 878e10181..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/replicaset/frontend.yaml +++ /dev/null @@ -1,42 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: ReplicaSet -metadata: - name: frontend - # these labels can be applied automatically - # from the labels in the pod template if not set - # labels: - # app: guestbook - # tier: frontend -spec: - # this replicas value is default - # modify it according to your case - replicas: 3 - # selector can be applied automatically - # from the labels in the pod template if not set - # selector: - # matchLabels: - # app: guestbook - # tier: frontend - template: - metadata: - labels: - app: guestbook - tier: frontend - spec: - containers: - - name: php-redis - image: gcr.io/google_samples/gb-frontend:v3 - resources: - requests: - cpu: 100m - memory: 100Mi - env: - - name: GET_HOSTS_FROM - value: dns - # If your cluster config does not include a dns service, then to - # instead access environment variables to find service host - # info, comment out the 'value: dns' line above, and uncomment the - # line below. - # value: env - ports: - - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-nginx-with-label.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-nginx-with-label.yaml deleted file mode 100644 index 7053af0be..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-nginx-with-label.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: nginx - labels: - app: nginx -spec: - containers: - - name: nginx - image: nginx - ports: - - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-nginx.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-nginx.yaml deleted file mode 100644 index e65ec6f5b..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-nginx.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: nginx -spec: - containers: - - name: nginx - image: nginx - ports: - - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-redis.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-redis.yaml deleted file mode 100644 index f00065807..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-redis.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: redis -spec: - containers: - - name: redis - image: redis - volumeMounts: - - name: redis-persistent-storage - mountPath: /data/redis - volumes: - - name: redis-persistent-storage - emptyDir: {} diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-with-http-healthcheck.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-with-http-healthcheck.yaml deleted file mode 100644 index c697eba1d..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/pod-with-http-healthcheck.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: pod-with-healthcheck -spec: - containers: - - name: nginx - image: nginx - # defines the health checking - livenessProbe: - # an http probe - httpGet: - path: /_status/healthz - port: 80 - # length of time to wait for a pod to initialize - # after pod startup, before applying health checking - initialDelaySeconds: 30 - timeoutSeconds: 1 - ports: - - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/replication-controller.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/replication-controller.yaml deleted file mode 100644 index e0dd6f73d..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/replication-controller.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: v1 -kind: ReplicationController -metadata: - name: nginx-controller -spec: - replicas: 2 - # selector identifies the set of Pods that this - # replication controller is responsible for managing - selector: - app: nginx - # podTemplate defines the 'cookie cutter' used for creating - # new pods when necessary - template: - metadata: - labels: - # Important: these labels need to match the selector above - # The api server enforces this constraint. - app: nginx - spec: - containers: - - name: nginx - image: nginx - ports: - - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/service.yaml b/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/service.yaml deleted file mode 100644 index f2304d3d7..000000000 --- a/vendor/k8s.io/kubernetes/test/fixtures/doc-yaml/user-guide/walkthrough/service.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: nginx-service -spec: - ports: - - port: 8000 # the port that this service should serve on - # the container on each pod to connect to, can be a name - # (e.g. 'www') or a number (e.g. 80) - targetPort: 80 - protocol: TCP - # just like the selector in the replication controller, - # but this time it identifies the set of pods to load balance - # traffic to. - selector: - app: nginx diff --git a/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/apply/rc-args.yaml b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/apply/rc-args.yaml new file mode 100644 index 000000000..846887328 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/apply/rc-args.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + name: test-rc + labels: + name: test-rc +spec: + replicas: 1 + template: + metadata: + labels: + name: test-rc + spec: + containers: + - name: test-rc + image: nginx + args: + - -random_flag=%s@domain.com + ports: + - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied-args.yaml b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied-args.yaml new file mode 100644 index 000000000..16e1d7ba8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/apply/rc-lastapplied-args.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + annotations: + kubectl.kubernetes.io/last-applied-configuration: | + {"args":"-random_flag=%s@domain.com"} + name: test-rc + labels: + name: test-rc +spec: + replicas: 1 + template: + metadata: + labels: + name: test-rc + spec: + containers: + - name: test-rc + image: nginx + args: + - -random_flag=%s@domain.com + ports: + - containerPort: 80 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/appsdeployment.yaml b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/appsdeployment.yaml new file mode 100644 index 000000000..7e44d8ea8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/appsdeployment.yaml @@ -0,0 +1,13 @@ +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + name: nginx-deployment +spec: + template: + metadata: + labels: + name: nginx + spec: + containers: + - name: nginx + image: nginx diff --git a/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/extensionsdeployment.yaml b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/extensionsdeployment.yaml new file mode 100644 index 000000000..d295072d4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/extensionsdeployment.yaml @@ -0,0 +1,13 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: nginx-deployment +spec: + template: + metadata: + labels: + name: nginx + spec: + containers: + - name: nginx + image: nginx diff --git a/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/v1HPA.yaml b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/v1HPA.yaml new file mode 100644 index 000000000..de7efbde3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/v1HPA.yaml @@ -0,0 +1,12 @@ +apiVersion: autoscaling/v1 +kind: HorizontalPodAutoscaler +metadata: + name: php-apache +spec: + scaleTargetRef: + apiVersion: apps/v1beta1 + kind: Deployment + name: php-apache + minReplicas: 1 + maxReplicas: 10 + targetCPUUtilizationPercentage: 50 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/v2beta1HPA.yaml b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/v2beta1HPA.yaml new file mode 100644 index 000000000..8247b24dc --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/convert/v2beta1HPA.yaml @@ -0,0 +1,16 @@ +apiVersion: autoscaling/v2beta1 +kind: HorizontalPodAutoscaler +metadata: + name: php-apache +spec: + scaleTargetRef: + apiVersion: apps/v1beta1 + kind: Deployment + name: php-apache + minReplicas: 1 + maxReplicas: 10 + metrics: + - type: Resource + resource: + name: cpu + targetAverageUtilization: 50 diff --git a/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml new file mode 100644 index 000000000..35b388c7a --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml @@ -0,0 +1,33 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + name: first-rc +spec: + replicas: 1 + selector: + app: mock + template: + metadata: + labels: + app: mock + spec: + containers: + - name: mock-container + image: gcr.io/google-containers/pause:2.0 +--- +apiVersion: v1 +kind: ReplicationController +metadata: + name: second-rc +spec: + replicas: 1 + selector: + app: mock + template: + metadata: + labels: + app: mock + spec: + containers: + - name: mock-container + image: gcr.io/google-containers/pause:2.0 \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/images/BUILD b/vendor/k8s.io/kubernetes/test/images/BUILD index 73e9ce74a..ba74aece4 100644 --- a/vendor/k8s.io/kubernetes/test/images/BUILD +++ b/vendor/k8s.io/kubernetes/test/images/BUILD @@ -31,6 +31,7 @@ filegroup( "//test/images/resource-consumer:all-srcs", "//test/images/serve-hostname:all-srcs", "//test/images/test-webserver:all-srcs", + "//test/images/webhook:all-srcs", ], tags = ["automanaged"], ) diff --git a/vendor/k8s.io/kubernetes/test/images/Makefile b/vendor/k8s.io/kubernetes/test/images/Makefile index 07b83c799..8cca92051 100644 --- a/vendor/k8s.io/kubernetes/test/images/Makefile +++ b/vendor/k8s.io/kubernetes/test/images/Makefile @@ -15,7 +15,7 @@ REGISTRY ?= gcr.io/kubernetes-e2e-test-images GOARM=7 QEMUVERSION=v2.9.1 -GOLANG_VERSION=1.8.3 +GOLANG_VERSION=1.9.1 export ifndef WHAT diff --git a/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/BASEIMAGE b/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/BASEIMAGE index 40fc100e7..425fce260 100644 --- a/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/BASEIMAGE +++ b/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/BASEIMAGE @@ -1,4 +1,4 @@ -amd64=gcr.io/google-containers/debian-base-amd64:0.2 -arm=gcr.io/google-containers/debian-base-arm:0.2 -arm64=gcr.io/google-containers/debian-base-arm64:0.2 -ppc64le=gcr.io/google-containers/debian-base-ppc64le:0.2 +amd64=gcr.io/google-containers/debian-base-amd64:0.3 +arm=gcr.io/google-containers/debian-base-arm:0.3 +arm64=gcr.io/google-containers/debian-base-arm64:0.3 +ppc64le=gcr.io/google-containers/debian-base-ppc64le:0.3 diff --git a/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/VERSION b/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/VERSION index d3827e75a..9459d4ba2 100644 --- a/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/VERSION +++ b/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/VERSION @@ -1 +1 @@ -1.0 +1.1 diff --git a/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/peer-finder.go b/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/peer-finder.go index 22dbfdca2..db71c1e22 100644 --- a/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/peer-finder.go +++ b/vendor/k8s.io/kubernetes/test/images/pets/peer-finder/peer-finder.go @@ -20,6 +20,7 @@ package main import ( "flag" "fmt" + "io/ioutil" "log" "net" "os" @@ -59,11 +60,27 @@ func lookup(svcName string) (sets.String, error) { func shellOut(sendStdin, script string) { log.Printf("execing: %v with stdin: %v", script, sendStdin) - // TODO: Switch to sending stdin from go - out, err := exec.Command("bash", "-c", fmt.Sprintf("echo -e '%v' | %v", sendStdin, script)).CombinedOutput() + + cmd := exec.Command(script) + stdin, err := cmd.StdinPipe() + if err != nil { + log.Fatalf("Failed to get stdin pipe: %v", err) + } + stdout, err := cmd.StdoutPipe() + if err != nil { + log.Fatalf("Failed to get stdout pipe: %v", err) + } + + cmd.Start() + + stdin.Write([]byte(sendStdin)) + stdin.Close() + + out, err := ioutil.ReadAll(stdout) if err != nil { log.Fatalf("Failed to execute %v: %v, err: %v", script, string(out), err) } + log.Print(string(out)) } diff --git a/vendor/k8s.io/kubernetes/test/images/pets/redis-installer/BASEIMAGE b/vendor/k8s.io/kubernetes/test/images/pets/redis-installer/BASEIMAGE index 40fc100e7..425fce260 100644 --- a/vendor/k8s.io/kubernetes/test/images/pets/redis-installer/BASEIMAGE +++ b/vendor/k8s.io/kubernetes/test/images/pets/redis-installer/BASEIMAGE @@ -1,4 +1,4 @@ -amd64=gcr.io/google-containers/debian-base-amd64:0.2 -arm=gcr.io/google-containers/debian-base-arm:0.2 -arm64=gcr.io/google-containers/debian-base-arm64:0.2 -ppc64le=gcr.io/google-containers/debian-base-ppc64le:0.2 +amd64=gcr.io/google-containers/debian-base-amd64:0.3 +arm=gcr.io/google-containers/debian-base-arm:0.3 +arm64=gcr.io/google-containers/debian-base-arm64:0.3 +ppc64le=gcr.io/google-containers/debian-base-ppc64le:0.3 diff --git a/vendor/k8s.io/kubernetes/test/images/pets/redis-installer/VERSION b/vendor/k8s.io/kubernetes/test/images/pets/redis-installer/VERSION index d3827e75a..9459d4ba2 100644 --- a/vendor/k8s.io/kubernetes/test/images/pets/redis-installer/VERSION +++ b/vendor/k8s.io/kubernetes/test/images/pets/redis-installer/VERSION @@ -1 +1 @@ -1.0 +1.1 diff --git a/vendor/k8s.io/kubernetes/test/images/pets/zookeeper-installer/BASEIMAGE b/vendor/k8s.io/kubernetes/test/images/pets/zookeeper-installer/BASEIMAGE index 40fc100e7..425fce260 100644 --- a/vendor/k8s.io/kubernetes/test/images/pets/zookeeper-installer/BASEIMAGE +++ b/vendor/k8s.io/kubernetes/test/images/pets/zookeeper-installer/BASEIMAGE @@ -1,4 +1,4 @@ -amd64=gcr.io/google-containers/debian-base-amd64:0.2 -arm=gcr.io/google-containers/debian-base-arm:0.2 -arm64=gcr.io/google-containers/debian-base-arm64:0.2 -ppc64le=gcr.io/google-containers/debian-base-ppc64le:0.2 +amd64=gcr.io/google-containers/debian-base-amd64:0.3 +arm=gcr.io/google-containers/debian-base-arm:0.3 +arm64=gcr.io/google-containers/debian-base-arm64:0.3 +ppc64le=gcr.io/google-containers/debian-base-ppc64le:0.3 diff --git a/vendor/k8s.io/kubernetes/test/images/pets/zookeeper-installer/VERSION b/vendor/k8s.io/kubernetes/test/images/pets/zookeeper-installer/VERSION index d3827e75a..9459d4ba2 100644 --- a/vendor/k8s.io/kubernetes/test/images/pets/zookeeper-installer/VERSION +++ b/vendor/k8s.io/kubernetes/test/images/pets/zookeeper-installer/VERSION @@ -1 +1 @@ -1.0 +1.1 diff --git a/vendor/k8s.io/kubernetes/test/images/resource-consumer/BASEIMAGE b/vendor/k8s.io/kubernetes/test/images/resource-consumer/BASEIMAGE index 40fc100e7..425fce260 100644 --- a/vendor/k8s.io/kubernetes/test/images/resource-consumer/BASEIMAGE +++ b/vendor/k8s.io/kubernetes/test/images/resource-consumer/BASEIMAGE @@ -1,4 +1,4 @@ -amd64=gcr.io/google-containers/debian-base-amd64:0.2 -arm=gcr.io/google-containers/debian-base-arm:0.2 -arm64=gcr.io/google-containers/debian-base-arm64:0.2 -ppc64le=gcr.io/google-containers/debian-base-ppc64le:0.2 +amd64=gcr.io/google-containers/debian-base-amd64:0.3 +arm=gcr.io/google-containers/debian-base-arm:0.3 +arm64=gcr.io/google-containers/debian-base-arm64:0.3 +ppc64le=gcr.io/google-containers/debian-base-ppc64le:0.3 diff --git a/vendor/k8s.io/kubernetes/test/images/resource-consumer/VERSION b/vendor/k8s.io/kubernetes/test/images/resource-consumer/VERSION index 5625e59da..7e32cd569 100644 --- a/vendor/k8s.io/kubernetes/test/images/resource-consumer/VERSION +++ b/vendor/k8s.io/kubernetes/test/images/resource-consumer/VERSION @@ -1 +1 @@ -1.2 +1.3 diff --git a/vendor/k8s.io/kubernetes/test/images/serve-hostname/VERSION b/vendor/k8s.io/kubernetes/test/images/serve-hostname/VERSION index d3827e75a..9459d4ba2 100644 --- a/vendor/k8s.io/kubernetes/test/images/serve-hostname/VERSION +++ b/vendor/k8s.io/kubernetes/test/images/serve-hostname/VERSION @@ -1 +1 @@ -1.0 +1.1 diff --git a/vendor/k8s.io/kubernetes/test/images/serve-hostname/serve_hostname.go b/vendor/k8s.io/kubernetes/test/images/serve-hostname/serve_hostname.go index ad8407430..21793fbbf 100644 --- a/vendor/k8s.io/kubernetes/test/images/serve-hostname/serve_hostname.go +++ b/vendor/k8s.io/kubernetes/test/images/serve-hostname/serve_hostname.go @@ -26,6 +26,7 @@ import ( "os" "os/signal" "syscall" + "time" ) var ( @@ -37,7 +38,6 @@ var ( func main() { flag.Parse() - if *doHTTP && (*doTCP || *doUDP) { log.Fatalf("Can't server TCP/UDP mode and HTTP mode at the same time") } @@ -95,11 +95,11 @@ func main() { log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", *port), nil)) }() } - - // Write to stdout after receiving SIGTERM and SIGINT to help with debugging kubernetes issue #21605 + log.Printf("Serving on port %d.\n", *port) signals := make(chan os.Signal) - signal.Notify(signals, syscall.SIGTERM, syscall.SIGINT) + signal.Notify(signals, syscall.SIGTERM) sig := <-signals - // Keep behavior consistent with how the signal is handled by default (default is to panic) - log.Panicf("Terminating after receiving signal: %s.\n", sig) + log.Printf("Shutting down after receiving signal: %s.\n", sig) + log.Printf("Awaiting pod deletion.\n") + time.Sleep(60 * time.Second) } diff --git a/vendor/k8s.io/kubernetes/test/images/webhook/BUILD b/vendor/k8s.io/kubernetes/test/images/webhook/BUILD new file mode 100644 index 000000000..c174d676a --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/images/webhook/BUILD @@ -0,0 +1,44 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "config.go", + "main.go", + "scheme.go", + ], + importpath = "k8s.io/kubernetes/test/images/webhook", + visibility = ["//visibility:private"], + deps = [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/admission/v1alpha1:go_default_library", + "//vendor/k8s.io/api/admissionregistration/v1alpha1: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/serializer:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + ], +) + +go_binary( + name = "webhook", + importpath = "k8s.io/kubernetes/test/images/webhook", + library = ":go_default_library", + visibility = ["//visibility:public"], +) + +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/kubernetes/federation/develop/push-federation-images.sh b/vendor/k8s.io/kubernetes/test/images/webhook/Dockerfile old mode 100755 new mode 100644 similarity index 65% rename from vendor/k8s.io/kubernetes/federation/develop/push-federation-images.sh rename to vendor/k8s.io/kubernetes/test/images/webhook/Dockerfile index 06c5f0821..2a43f424b --- a/vendor/k8s.io/kubernetes/federation/develop/push-federation-images.sh +++ b/vendor/k8s.io/kubernetes/test/images/webhook/Dockerfile @@ -1,6 +1,4 @@ -#!/bin/bash - -# Copyright 2014 The Kubernetes Authors. +# 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. @@ -14,13 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Pushes federation container images to existing repositories - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. +FROM alpine:latest -make -C "${KUBE_ROOT}/federation/" build_image -make -C "${KUBE_ROOT}/federation/" push +ADD webhook /webhook +ENTRYPOINT ["/webhook"] diff --git a/vendor/k8s.io/kubernetes/test/images/webhook/Makefile b/vendor/k8s.io/kubernetes/test/images/webhook/Makefile new file mode 100644 index 000000000..d3e3bb66d --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/images/webhook/Makefile @@ -0,0 +1,20 @@ +# 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. + +build: + CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o webhook . + docker build --no-cache -t gcr.io/kubernetes-e2e-test-images/k8s-sample-admission-webhook-amd64:1.8v3 . + rm -rf webhook +push: + gcloud docker -- push gcr.io/kubernetes-e2e-test-images/k8s-sample-admission-webhook-amd64:1.8v3 diff --git a/vendor/k8s.io/kubernetes/test/images/webhook/README.md b/vendor/k8s.io/kubernetes/test/images/webhook/README.md new file mode 100644 index 000000000..14895d909 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/images/webhook/README.md @@ -0,0 +1,51 @@ +# Kubernetes External Admission Webhook Example + +The example shows how to build and deploy an external webhook that only admits +pods creation and update if the container images have the "grc.io" prefix. + +## Prerequisites + +Please use a Kubernetes release at least as new as v1.8.0 or v1.9.0-alpha.1, +because the generated server cert/key only works with Kubernetes release that +contains this [change](https://github.com/kubernetes/kubernetes/pull/50476). +Please checkout the `pre-v1.8` tag for an example that works with older +clusters. + +Please enable the admission webhook feature +([doc](https://kubernetes.io/docs/admin/extensible-admission-controllers/#enable-external-admission-webhooks)). + +## Build the code + +```bash +make build +``` + +## Deploy the code + +```bash +make deploy-only +``` + +The Makefile assumes your cluster is created by the +[hack/local-up-cluster.sh](https://github.com/kubernetes/kubernetes/blob/master/hack/local-up-cluster.sh). +Please modify the Makefile accordingly if your cluster is created differently. + +## Explanation on the CAs/Certs/Keys + +The apiserver initiates a tls connection with the webhook, so the apiserver is +the tls client, and the webhook is the tls server. + +The webhook proves its identity by the `serverCert` in the certs.go. The server +cert is signed by the CA in certs.go. To let the apiserver trust the `caCert`, +the webhook registers itself with the apiserver via the +`admissionregistration/v1alpha1/externalAdmissionHook` API, with +`clientConfig.caBundle=caCert`. + +For maximum protection, this example webhook requires and verifies the client +(i.e., the apiserver in this case) cert. The cert presented by the apiserver is +signed by a client CA, whose cert is stored in the configmap +`extension-apiserver-authentication` in the `kube-system` namespace. See the +`getAPIServerCert` function for more information. Usually you don't need to +worry about setting up this CA cert. It's taken care of when the cluster is +created. You can disable the client cert verification by setting the +`tls.Config.ClientAuth` to `tls.NoClientCert` in `config.go`. diff --git a/vendor/k8s.io/kubernetes/test/images/webhook/config.go b/vendor/k8s.io/kubernetes/test/images/webhook/config.go new file mode 100644 index 000000000..c3f736eaa --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/images/webhook/config.go @@ -0,0 +1,51 @@ +/* +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 main + +import ( + "crypto/tls" + + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" + + "github.com/golang/glog" +) + +// Get a clientset with in-cluster config. +func getClient() *kubernetes.Clientset { + config, err := rest.InClusterConfig() + if err != nil { + glog.Fatal(err) + } + clientset, err := kubernetes.NewForConfig(config) + if err != nil { + glog.Fatal(err) + } + return clientset +} + +func configTLS(config Config, clientset *kubernetes.Clientset) *tls.Config { + sCert, err := tls.LoadX509KeyPair(config.CertFile, config.KeyFile) + if err != nil { + glog.Fatal(err) + } + return &tls.Config{ + Certificates: []tls.Certificate{sCert}, + // TODO: uses mutual tls after we agree on what cert the apiserver should use. + // ClientAuth: tls.RequireAndVerifyClientCert, + } +} diff --git a/vendor/k8s.io/kubernetes/test/images/webhook/main.go b/vendor/k8s.io/kubernetes/test/images/webhook/main.go new file mode 100644 index 000000000..a9ea58eb7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/images/webhook/main.go @@ -0,0 +1,216 @@ +/* +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 main + +import ( + "encoding/json" + "flag" + "fmt" + "io/ioutil" + "net/http" + "strings" + + "github.com/golang/glog" + "k8s.io/api/admission/v1alpha1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// Config contains the server (the webhook) cert and key. +type Config struct { + CertFile string + KeyFile string +} + +func (c *Config) addFlags() { + flag.StringVar(&c.CertFile, "tls-cert-file", c.CertFile, ""+ + "File containing the default x509 Certificate for HTTPS. (CA cert, if any, concatenated "+ + "after server cert).") + flag.StringVar(&c.KeyFile, "tls-private-key-file", c.KeyFile, ""+ + "File containing the default x509 private key matching --tls-cert-file.") +} + +func toAdmissionReviewStatus(err error) *v1alpha1.AdmissionReviewStatus { + return &v1alpha1.AdmissionReviewStatus{ + Result: &metav1.Status{ + Message: err.Error(), + }, + } +} + +// only allow pods to pull images from specific registry. +func admitPods(ar v1alpha1.AdmissionReview) *v1alpha1.AdmissionReviewStatus { + glog.V(2).Info("admitting pods") + podResource := metav1.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"} + if ar.Spec.Resource != podResource { + err := fmt.Errorf("expect resource to be %s", podResource) + glog.Error(err) + return toAdmissionReviewStatus(err) + } + + raw := ar.Spec.Object.Raw + pod := corev1.Pod{} + deserializer := codecs.UniversalDeserializer() + if _, _, err := deserializer.Decode(raw, nil, &pod); err != nil { + glog.Error(err) + return toAdmissionReviewStatus(err) + } + reviewStatus := v1alpha1.AdmissionReviewStatus{} + reviewStatus.Allowed = true + + var msg string + for k, v := range pod.Labels { + if k == "webhook-e2e-test" && v == "webhook-disallow" { + reviewStatus.Allowed = false + msg = msg + "the pod contains unwanted label; " + } + } + for _, container := range pod.Spec.Containers { + if strings.Contains(container.Name, "webhook-disallow") { + reviewStatus.Allowed = false + msg = msg + "the pod contains unwanted container name; " + } + } + if !reviewStatus.Allowed { + reviewStatus.Result = &metav1.Status{Message: strings.TrimSpace(msg)} + } + return &reviewStatus +} + +// deny configmaps with specific key-value pair. +func admitConfigMaps(ar v1alpha1.AdmissionReview) *v1alpha1.AdmissionReviewStatus { + glog.V(2).Info("admitting configmaps") + configMapResource := metav1.GroupVersionResource{Group: "", Version: "v1", Resource: "configmaps"} + if ar.Spec.Resource != configMapResource { + glog.Errorf("expect resource to be %s", configMapResource) + return nil + } + + raw := ar.Spec.Object.Raw + configmap := corev1.ConfigMap{} + deserializer := codecs.UniversalDeserializer() + if _, _, err := deserializer.Decode(raw, nil, &configmap); err != nil { + glog.Error(err) + return toAdmissionReviewStatus(err) + } + reviewStatus := v1alpha1.AdmissionReviewStatus{} + reviewStatus.Allowed = true + for k, v := range configmap.Data { + if k == "webhook-e2e-test" && v == "webhook-disallow" { + reviewStatus.Allowed = false + reviewStatus.Result = &metav1.Status{ + Reason: "the configmap contains unwanted key and value", + } + } + } + return &reviewStatus +} + +func admitCRD(ar v1alpha1.AdmissionReview) *v1alpha1.AdmissionReviewStatus { + glog.V(2).Info("admitting crd") + cr := struct { + metav1.ObjectMeta + Data map[string]string + }{} + + raw := ar.Spec.Object.Raw + err := json.Unmarshal(raw, &cr) + if err != nil { + glog.Error(err) + return toAdmissionReviewStatus(err) + } + + reviewStatus := v1alpha1.AdmissionReviewStatus{} + reviewStatus.Allowed = true + for k, v := range cr.Data { + if k == "webhook-e2e-test" && v == "webhook-disallow" { + reviewStatus.Allowed = false + reviewStatus.Result = &metav1.Status{ + Reason: "the custom resource contains unwanted data", + } + } + } + return &reviewStatus +} + +type admitFunc func(v1alpha1.AdmissionReview) *v1alpha1.AdmissionReviewStatus + +func serve(w http.ResponseWriter, r *http.Request, admit admitFunc) { + var body []byte + if r.Body != nil { + if data, err := ioutil.ReadAll(r.Body); err == nil { + body = data + } + } + + // verify the content type is accurate + contentType := r.Header.Get("Content-Type") + if contentType != "application/json" { + glog.Errorf("contentType=%s, expect application/json", contentType) + return + } + + var reviewStatus *v1alpha1.AdmissionReviewStatus + ar := v1alpha1.AdmissionReview{} + deserializer := codecs.UniversalDeserializer() + if _, _, err := deserializer.Decode(body, nil, &ar); err != nil { + glog.Error(err) + reviewStatus = toAdmissionReviewStatus(err) + } else { + reviewStatus = admit(ar) + } + + if reviewStatus != nil { + ar.Status = *reviewStatus + } + + resp, err := json.Marshal(ar) + if err != nil { + glog.Error(err) + } + if _, err := w.Write(resp); err != nil { + glog.Error(err) + } +} + +func servePods(w http.ResponseWriter, r *http.Request) { + serve(w, r, admitPods) +} + +func serveConfigmaps(w http.ResponseWriter, r *http.Request) { + serve(w, r, admitConfigMaps) +} + +func serveCRD(w http.ResponseWriter, r *http.Request) { + serve(w, r, admitCRD) +} + +func main() { + var config Config + config.addFlags() + flag.Parse() + + http.HandleFunc("/pods", servePods) + http.HandleFunc("/configmaps", serveConfigmaps) + http.HandleFunc("/crd", serveCRD) + clientset := getClient() + server := &http.Server{ + Addr: ":443", + TLSConfig: configTLS(config, clientset), + } + server.ListenAndServeTLS("", "") +} diff --git a/vendor/k8s.io/kubernetes/test/images/webhook/scheme.go b/vendor/k8s.io/kubernetes/test/images/webhook/scheme.go new file mode 100644 index 000000000..6827b137d --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/images/webhook/scheme.go @@ -0,0 +1,36 @@ +/* +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 main + +import ( + admissionregistrationv1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) + +func init() { + addToScheme(scheme) +} + +func addToScheme(scheme *runtime.Scheme) { + corev1.AddToScheme(scheme) + admissionregistrationv1alpha1.AddToScheme(scheme) +} diff --git a/vendor/k8s.io/kubernetes/test/integration/BUILD b/vendor/k8s.io/kubernetes/test/integration/BUILD index 706d30a8b..4b27062dc 100644 --- a/vendor/k8s.io/kubernetes/test/integration/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/BUILD @@ -36,6 +36,7 @@ filegroup( "//test/integration/auth:all-srcs", "//test/integration/client:all-srcs", "//test/integration/configmap:all-srcs", + "//test/integration/daemonset:all-srcs", "//test/integration/defaulttolerationseconds:all-srcs", "//test/integration/deployment:all-srcs", "//test/integration/etcd:all-srcs", @@ -51,6 +52,7 @@ filegroup( "//test/integration/quota:all-srcs", "//test/integration/replicaset:all-srcs", "//test/integration/replicationcontroller:all-srcs", + "//test/integration/scale:all-srcs", "//test/integration/scheduler:all-srcs", "//test/integration/scheduler_perf:all-srcs", "//test/integration/secrets:all-srcs", diff --git a/vendor/k8s.io/kubernetes/test/integration/apiserver/BUILD b/vendor/k8s.io/kubernetes/test/integration/apiserver/BUILD index a0710bef2..4d333d80e 100644 --- a/vendor/k8s.io/kubernetes/test/integration/apiserver/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/apiserver/BUILD @@ -19,8 +19,8 @@ go_test( "integration", ], deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core:go_default_library", "//test/integration/framework:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/pborman/uuid:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/apiserver/apiserver_test.go b/vendor/k8s.io/kubernetes/test/integration/apiserver/apiserver_test.go index 5fc84d0ab..c87696175 100644 --- a/vendor/k8s.io/kubernetes/test/integration/apiserver/apiserver_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/apiserver/apiserver_test.go @@ -37,8 +37,8 @@ import ( clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/pager" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/test/integration/framework" ) diff --git a/vendor/k8s.io/kubernetes/test/integration/apiserver/patch_test.go b/vendor/k8s.io/kubernetes/test/integration/apiserver/patch_test.go index 4cb6b7268..56bf90919 100644 --- a/vendor/k8s.io/kubernetes/test/integration/apiserver/patch_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/apiserver/patch_test.go @@ -44,14 +44,14 @@ func TestPatchConflicts(t *testing.T) { defer framework.DeleteTestingNamespace(ns, s, t) // Create the object we're going to conflict on - clientSet.Core().Secrets(ns.Name).Create(&v1.Secret{ + clientSet.CoreV1().Secrets(ns.Name).Create(&v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "test", // Populate annotations so the strategic patch descends, compares, and notices the $patch directive Annotations: map[string]string{"initial": "value"}, }, }) - client := clientSet.Core().RESTClient() + client := clientSet.CoreV1().RESTClient() successes := int32(0) diff --git a/vendor/k8s.io/kubernetes/test/integration/auth/BUILD b/vendor/k8s.io/kubernetes/test/integration/auth/BUILD index baf035a9f..c91ff5fd6 100644 --- a/vendor/k8s.io/kubernetes/test/integration/auth/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/auth/BUILD @@ -19,10 +19,11 @@ go_test( importpath = "k8s.io/kubernetes/test/integration/auth", tags = ["integration"], deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/apis/authorization:go_default_library", "//pkg/apis/autoscaling:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/policy:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/auth/accessreview_test.go b/vendor/k8s.io/kubernetes/test/integration/auth/accessreview_test.go index f26c5b2af..c5e1fbe32 100644 --- a/vendor/k8s.io/kubernetes/test/integration/auth/accessreview_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/auth/accessreview_test.go @@ -27,9 +27,9 @@ import ( "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" authorizationapi "k8s.io/kubernetes/pkg/apis/authorization" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/plugin/pkg/admission/admit" "k8s.io/kubernetes/test/integration/framework" @@ -39,12 +39,12 @@ import ( // TODO(etune): remove this test once a more comprehensive built-in authorizer is implemented. type sarAuthorizer struct{} -func (sarAuthorizer) Authorize(a authorizer.Attributes) (bool, string, error) { +func (sarAuthorizer) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) { if a.GetUser().GetName() == "dave" { - return false, "no", errors.New("I'm sorry, Dave") + return authorizer.DecisionNoOpinion, "no", errors.New("I'm sorry, Dave") } - return true, "you're not dave", nil + return authorizer.DecisionAllow, "you're not dave", nil } func alwaysAlice(req *http.Request) (user.Info, bool, error) { diff --git a/vendor/k8s.io/kubernetes/test/integration/auth/auth_test.go b/vendor/k8s.io/kubernetes/test/integration/auth/auth_test.go index 4408c2a79..41c53e3bf 100644 --- a/vendor/k8s.io/kubernetes/test/integration/auth/auth_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/auth/auth_test.go @@ -46,9 +46,9 @@ import ( "k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest" "k8s.io/apiserver/plugin/pkg/authenticator/token/webhook" "k8s.io/client-go/tools/clientcmd/api/v1" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/apis/autoscaling" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/auth/authorizer/abac" "k8s.io/kubernetes/plugin/pkg/admission/admit" @@ -535,11 +535,11 @@ func TestAuthModeAlwaysDeny(t *testing.T) { // TODO(etune): remove this test once a more comprehensive built-in authorizer is implemented. type allowAliceAuthorizer struct{} -func (allowAliceAuthorizer) Authorize(a authorizer.Attributes) (bool, string, error) { +func (allowAliceAuthorizer) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) { if a.GetUser() != nil && a.GetUser().GetName() == "alice" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } - return false, "I can't allow that. Go ask alice.", nil + return authorizer.DecisionNoOpinion, "I can't allow that. Go ask alice.", nil } // TestAliceNotForbiddenOrUnauthorized tests a user who is known to @@ -702,24 +702,24 @@ func TestUnknownUserIsUnauthorized(t *testing.T) { type impersonateAuthorizer struct{} // alice can't act as anyone and bob can't do anything but act-as someone -func (impersonateAuthorizer) Authorize(a authorizer.Attributes) (bool, string, error) { +func (impersonateAuthorizer) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) { // alice can impersonate service accounts and do other actions if a.GetUser() != nil && a.GetUser().GetName() == "alice" && a.GetVerb() == "impersonate" && a.GetResource() == "serviceaccounts" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } if a.GetUser() != nil && a.GetUser().GetName() == "alice" && a.GetVerb() != "impersonate" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } // bob can impersonate anyone, but that it if a.GetUser() != nil && a.GetUser().GetName() == "bob" && a.GetVerb() == "impersonate" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } // service accounts can do everything if a.GetUser() != nil && strings.HasPrefix(a.GetUser().GetName(), serviceaccount.ServiceAccountUsernamePrefix) { - return true, "", nil + return authorizer.DecisionAllow, "", nil } - return false, "I can't allow that. Go ask alice.", nil + return authorizer.DecisionNoOpinion, "I can't allow that. Go ask alice.", nil } func TestImpersonateIsForbidden(t *testing.T) { @@ -861,9 +861,9 @@ type trackingAuthorizer struct { requestAttributes []authorizer.Attributes } -func (a *trackingAuthorizer) Authorize(attributes authorizer.Attributes) (bool, string, error) { +func (a *trackingAuthorizer) Authorize(attributes authorizer.Attributes) (authorizer.Decision, string, error) { a.requestAttributes = append(a.requestAttributes, attributes) - return true, "", nil + return authorizer.DecisionAllow, "", nil } // TestAuthorizationAttributeDetermination tests that authorization attributes are built correctly diff --git a/vendor/k8s.io/kubernetes/test/integration/auth/bootstraptoken_test.go b/vendor/k8s.io/kubernetes/test/integration/auth/bootstraptoken_test.go index ab62aff81..213e15ebd 100644 --- a/vendor/k8s.io/kubernetes/test/integration/auth/bootstraptoken_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/auth/bootstraptoken_test.go @@ -27,7 +27,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apiserver/pkg/authentication/request/bearertoken" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" "k8s.io/kubernetes/plugin/pkg/admission/admit" "k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/bootstrap" diff --git a/vendor/k8s.io/kubernetes/test/integration/auth/node_test.go b/vendor/k8s.io/kubernetes/test/integration/auth/node_test.go index bbb404aaf..4fab82576 100644 --- a/vendor/k8s.io/kubernetes/test/integration/auth/node_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/auth/node_test.go @@ -31,7 +31,8 @@ import ( "k8s.io/apiserver/pkg/authentication/token/tokenfile" "k8s.io/apiserver/pkg/authentication/user" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/auth/nodeidentifier" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -65,7 +66,7 @@ func TestNodeAuthorizer(t *testing.T) { })) // Build client config, clientset, and informers - clientConfig := &restclient.Config{Host: apiServer.URL, ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs}} + clientConfig := &restclient.Config{Host: apiServer.URL, ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs}} superuserClient := clientsetForToken(tokenMaster, clientConfig) informerFactory := informers.NewSharedInformerFactory(superuserClient, time.Minute) @@ -82,7 +83,7 @@ func TestNodeAuthorizer(t *testing.T) { // Set up NodeRestriction admission nodeRestrictionAdmission := noderestriction.NewPlugin(nodeidentifier.NewDefaultNodeIdentifier()) nodeRestrictionAdmission.SetInternalKubeClientSet(superuserClient) - if err := nodeRestrictionAdmission.Validate(); err != nil { + if err := nodeRestrictionAdmission.ValidateInitialization(); err != nil { t.Fatal(err) } diff --git a/vendor/k8s.io/kubernetes/test/integration/auth/rbac_test.go b/vendor/k8s.io/kubernetes/test/integration/auth/rbac_test.go index 65e25424f..600eb5a4a 100644 --- a/vendor/k8s.io/kubernetes/test/integration/auth/rbac_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/auth/rbac_test.go @@ -38,8 +38,9 @@ import ( "k8s.io/apiserver/pkg/registry/generic" restclient "k8s.io/client-go/rest" "k8s.io/client-go/transport" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" rbacapi "k8s.io/kubernetes/pkg/apis/rbac" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/master" @@ -427,7 +428,7 @@ func TestRBAC(t *testing.T) { _, s, closeFn := framework.RunAMaster(masterConfig) defer closeFn() - clientConfig := &restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs}} + clientConfig := &restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs}} // Bootstrap the API Server with the test case's initial roles. if err := tc.bootstrapRoles.bootstrap(clientsetForToken(superUser, clientConfig)); err != nil { diff --git a/vendor/k8s.io/kubernetes/test/integration/client/BUILD b/vendor/k8s.io/kubernetes/test/integration/client/BUILD index 05bc64a2e..a4c38fa47 100644 --- a/vendor/k8s.io/kubernetes/test/integration/client/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/client/BUILD @@ -16,7 +16,7 @@ go_test( importpath = "k8s.io/kubernetes/test/integration/client", tags = ["integration"], deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/version:go_default_library", "//test/e2e/framework:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/client/client_test.go b/vendor/k8s.io/kubernetes/test/integration/client/client_test.go index a66dacbac..928693f84 100644 --- a/vendor/k8s.io/kubernetes/test/integration/client/client_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/client/client_test.go @@ -38,7 +38,7 @@ import ( "k8s.io/apimachinery/pkg/watch" clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/version" e2e "k8s.io/kubernetes/test/e2e/framework" @@ -376,7 +376,7 @@ func TestPatchWithCreateOnUpdate(t *testing.T) { // Make sure patch doesn't get to CreateOnUpdate { - endpointJSON, err := runtime.Encode(api.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) + endpointJSON, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) if err != nil { t.Fatalf("Failed creating endpoint JSON: %v", err) } @@ -393,7 +393,7 @@ func TestPatchWithCreateOnUpdate(t *testing.T) { // Make sure identity patch is accepted { - endpointJSON, err := runtime.Encode(api.Codecs.LegacyCodec(v1.SchemeGroupVersion), createdEndpoint) + endpointJSON, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion), createdEndpoint) if err != nil { t.Fatalf("Failed creating endpoint JSON: %v", err) } @@ -407,7 +407,7 @@ func TestPatchWithCreateOnUpdate(t *testing.T) { endpointTemplate.Name = "" endpointTemplate.UID = "" endpointTemplate.ResourceVersion = "1" - endpointJSON, err := runtime.Encode(api.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) + endpointJSON, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) if err != nil { t.Fatalf("Failed creating endpoint JSON: %v", err) } @@ -421,7 +421,7 @@ func TestPatchWithCreateOnUpdate(t *testing.T) { endpointTemplate.Name = "" endpointTemplate.UID = "abc" endpointTemplate.ResourceVersion = "" - endpointJSON, err := runtime.Encode(api.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) + endpointJSON, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) if err != nil { t.Fatalf("Failed creating endpoint JSON: %v", err) } @@ -435,7 +435,7 @@ func TestPatchWithCreateOnUpdate(t *testing.T) { endpointTemplate.Name = "changedname" endpointTemplate.UID = "" endpointTemplate.ResourceVersion = "" - endpointJSON, err := runtime.Encode(api.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) + endpointJSON, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) if err != nil { t.Fatalf("Failed creating endpoint JSON: %v", err) } @@ -449,7 +449,7 @@ func TestPatchWithCreateOnUpdate(t *testing.T) { endpointTemplate.Name = "" endpointTemplate.UID = "" endpointTemplate.ResourceVersion = "" - endpointJSON, err := runtime.Encode(api.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) + endpointJSON, err := runtime.Encode(legacyscheme.Codecs.LegacyCodec(v1.SchemeGroupVersion), endpointTemplate) if err != nil { t.Fatalf("Failed creating endpoint JSON: %v", err) } @@ -789,20 +789,20 @@ func runSelfLinkTestOnNamespace(t *testing.T, c clientset.Interface, namespace s }, }, } - pod, err := c.Core().Pods(namespace).Create(&podBody) + pod, err := c.CoreV1().Pods(namespace).Create(&podBody) if err != nil { t.Fatalf("Failed creating selflinktest pod: %v", err) } - if err = c.Core().RESTClient().Get().RequestURI(pod.SelfLink).Do().Into(pod); err != nil { + if err = c.CoreV1().RESTClient().Get().RequestURI(pod.SelfLink).Do().Into(pod); err != nil { t.Errorf("Failed listing pod with supplied self link '%v': %v", pod.SelfLink, err) } - podList, err := c.Core().Pods(namespace).List(metav1.ListOptions{}) + podList, err := c.CoreV1().Pods(namespace).List(metav1.ListOptions{}) if err != nil { t.Errorf("Failed listing pods: %v", err) } - if err = c.Core().RESTClient().Get().RequestURI(podList.SelfLink).Do().Into(podList); err != nil { + if err = c.CoreV1().RESTClient().Get().RequestURI(podList.SelfLink).Do().Into(podList); err != nil { t.Errorf("Failed listing pods with supplied self link '%v': %v", podList.SelfLink, err) } @@ -813,7 +813,7 @@ func runSelfLinkTestOnNamespace(t *testing.T, c clientset.Interface, namespace s continue } found = true - err = c.Core().RESTClient().Get().RequestURI(item.SelfLink).Do().Into(pod) + err = c.CoreV1().RESTClient().Get().RequestURI(item.SelfLink).Do().Into(pod) if err != nil { t.Errorf("Failed listing pod with supplied self link '%v': %v", item.SelfLink, err) } diff --git a/vendor/k8s.io/kubernetes/test/integration/configmap/configmap_test.go b/vendor/k8s.io/kubernetes/test/integration/configmap/configmap_test.go index f115d6276..25600f7bc 100644 --- a/vendor/k8s.io/kubernetes/test/integration/configmap/configmap_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/configmap/configmap_test.go @@ -56,7 +56,7 @@ func DoTestConfigMap(t *testing.T, client clientset.Interface, ns *v1.Namespace) }, } - if _, err := client.Core().ConfigMaps(cfg.Namespace).Create(&cfg); err != nil { + if _, err := client.CoreV1().ConfigMaps(cfg.Namespace).Create(&cfg); err != nil { t.Errorf("unable to create test configMap: %v", err) } defer deleteConfigMapOrErrorf(t, client, cfg.Namespace, cfg.Name) @@ -111,14 +111,14 @@ func DoTestConfigMap(t *testing.T, client clientset.Interface, ns *v1.Namespace) } pod.ObjectMeta.Name = "uses-configmap" - if _, err := client.Core().Pods(ns.Name).Create(pod); err != nil { + if _, err := client.CoreV1().Pods(ns.Name).Create(pod); err != nil { t.Errorf("Failed to create pod: %v", err) } defer integration.DeletePodOrErrorf(t, client, ns.Name, pod.Name) } func deleteConfigMapOrErrorf(t *testing.T, c clientset.Interface, ns, name string) { - if err := c.Core().ConfigMaps(ns).Delete(name, nil); err != nil { + if err := c.CoreV1().ConfigMaps(ns).Delete(name, nil); err != nil { t.Errorf("unable to delete ConfigMap %v: %v", name, err) } } diff --git a/vendor/k8s.io/kubernetes/test/integration/daemonset/BUILD b/vendor/k8s.io/kubernetes/test/integration/daemonset/BUILD new file mode 100644 index 000000000..b87f23f2f --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/integration/daemonset/BUILD @@ -0,0 +1,48 @@ +package(default_visibility = ["//visibility:public"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_test", +) + +go_test( + name = "go_default_test", + size = "large", + srcs = [ + "daemonset_test.go", + "main_test.go", + ], + importpath = "k8s.io/kubernetes/test/integration/daemonset", + tags = ["integration"], + deps = [ + "//pkg/api/v1/pod:go_default_library", + "//pkg/controller/daemon:go_default_library", + "//pkg/util/metrics:go_default_library", + "//test/integration/framework:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/client-go/informers:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/rest: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"], +) diff --git a/vendor/k8s.io/kubernetes/test/integration/daemonset/OWNERS b/vendor/k8s.io/kubernetes/test/integration/daemonset/OWNERS new file mode 100755 index 000000000..898a1e8dd --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/integration/daemonset/OWNERS @@ -0,0 +1,9 @@ +approvers: +- mikedanese +- kow3ns +reviewers: +- mikedanese +- kargakis +- lukaszo +- janetkuo +- kow3ns diff --git a/vendor/k8s.io/kubernetes/test/integration/daemonset/daemonset_test.go b/vendor/k8s.io/kubernetes/test/integration/daemonset/daemonset_test.go new file mode 100644 index 000000000..45b17a604 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/integration/daemonset/daemonset_test.go @@ -0,0 +1,395 @@ +/* +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 daemonset + +import ( + "fmt" + "net/http/httptest" + "testing" + "time" + + "k8s.io/api/core/v1" + "k8s.io/api/extensions/v1beta1" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/informers" + clientset "k8s.io/client-go/kubernetes" + corev1typed "k8s.io/client-go/kubernetes/typed/core/v1" + extensionsv1beta1typed "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/cache" + podutil "k8s.io/kubernetes/pkg/api/v1/pod" + "k8s.io/kubernetes/pkg/controller/daemon" + "k8s.io/kubernetes/pkg/util/metrics" + "k8s.io/kubernetes/test/integration/framework" +) + +func setup(t *testing.T) (*httptest.Server, framework.CloseFunc, *daemon.DaemonSetsController, informers.SharedInformerFactory, clientset.Interface) { + masterConfig := framework.NewIntegrationTestMasterConfig() + _, server, closeFn := framework.RunAMaster(masterConfig) + + config := restclient.Config{Host: server.URL} + clientSet, err := clientset.NewForConfig(&config) + if err != nil { + t.Fatalf("Error in creating clientset: %v", err) + } + resyncPeriod := 12 * time.Hour + informers := informers.NewSharedInformerFactory(clientset.NewForConfigOrDie(restclient.AddUserAgent(&config, "daemonset-informers")), resyncPeriod) + metrics.UnregisterMetricAndUntrackRateLimiterUsage("daemon_controller") + dc, err := daemon.NewDaemonSetsController( + informers.Extensions().V1beta1().DaemonSets(), + informers.Apps().V1beta1().ControllerRevisions(), + informers.Core().V1().Pods(), + informers.Core().V1().Nodes(), + clientset.NewForConfigOrDie(restclient.AddUserAgent(&config, "daemonset-controller")), + ) + if err != nil { + t.Fatalf("error creating DaemonSets controller: %v", err) + } + + return server, closeFn, dc, informers, clientSet +} + +func testLabels() map[string]string { + return map[string]string{"name": "test"} +} + +func newDaemonSet(name, namespace string) *v1beta1.DaemonSet { + two := int32(2) + return &v1beta1.DaemonSet{ + TypeMeta: metav1.TypeMeta{ + Kind: "DaemonSet", + APIVersion: "extensions/v1beta1", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: namespace, + Name: name, + }, + Spec: v1beta1.DaemonSetSpec{ + RevisionHistoryLimit: &two, + Selector: &metav1.LabelSelector{MatchLabels: testLabels()}, + UpdateStrategy: v1beta1.DaemonSetUpdateStrategy{ + Type: v1beta1.OnDeleteDaemonSetStrategyType, + }, + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: testLabels(), + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{{Name: "foo", Image: "bar"}}, + }, + }, + }, + } +} + +func newRollbackStrategy() *v1beta1.DaemonSetUpdateStrategy { + one := intstr.FromInt(1) + return &v1beta1.DaemonSetUpdateStrategy{ + Type: v1beta1.RollingUpdateDaemonSetStrategyType, + RollingUpdate: &v1beta1.RollingUpdateDaemonSet{MaxUnavailable: &one}, + } +} + +func newOnDeleteStrategy() *v1beta1.DaemonSetUpdateStrategy { + return &v1beta1.DaemonSetUpdateStrategy{ + Type: v1beta1.OnDeleteDaemonSetStrategyType, + } +} + +func updateStrategies() []*v1beta1.DaemonSetUpdateStrategy { + return []*v1beta1.DaemonSetUpdateStrategy{newOnDeleteStrategy(), newRollbackStrategy()} +} + +func allocatableResources(memory, cpu string) v1.ResourceList { + return v1.ResourceList{ + v1.ResourceMemory: resource.MustParse(memory), + v1.ResourceCPU: resource.MustParse(cpu), + v1.ResourcePods: resource.MustParse("100"), + } +} + +func resourcePodSpec(nodeName, memory, cpu string) v1.PodSpec { + return v1.PodSpec{ + NodeName: nodeName, + Containers: []v1.Container{ + { + Name: "foo", + Image: "bar", + Resources: v1.ResourceRequirements{ + Requests: v1.ResourceList{ + v1.ResourceMemory: resource.MustParse(memory), + v1.ResourceCPU: resource.MustParse(cpu), + }, + }, + }, + }, + } +} + +func newNode(name string, label map[string]string) *v1.Node { + return &v1.Node{ + TypeMeta: metav1.TypeMeta{ + Kind: "Node", + APIVersion: "v1", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Labels: label, + Namespace: metav1.NamespaceDefault, + }, + Status: v1.NodeStatus{ + Conditions: []v1.NodeCondition{{Type: v1.NodeReady, Status: v1.ConditionTrue}}, + Allocatable: v1.ResourceList{v1.ResourcePods: resource.MustParse("100")}, + }, + } +} + +func addNodes(nodeClient corev1typed.NodeInterface, startIndex, numNodes int, label map[string]string, t *testing.T) { + for i := startIndex; i < startIndex+numNodes; i++ { + _, err := nodeClient.Create(newNode(fmt.Sprintf("node-%d", i), label)) + if err != nil { + t.Fatalf("Failed to create node: %v", err) + } + } +} + +func validateDaemonSetPodsAndMarkReady( + podClient corev1typed.PodInterface, + podInformer cache.SharedIndexInformer, + numberPods int, + t *testing.T) { + if err := wait.Poll(10*time.Second, 60*time.Second, func() (bool, error) { + objects := podInformer.GetIndexer().List() + if len(objects) != numberPods { + return false, nil + } + + for _, object := range objects { + pod := object.(*v1.Pod) + + ownerReferences := pod.ObjectMeta.OwnerReferences + if len(ownerReferences) != 1 { + return false, fmt.Errorf("Pod %s has %d OwnerReferences, expected only 1", pod.Name, len(ownerReferences)) + } + controllerRef := ownerReferences[0] + if got, want := controllerRef.APIVersion, "extensions/v1beta1"; got != want { + t.Errorf("controllerRef.APIVersion = %q, want %q", got, want) + } + if got, want := controllerRef.Kind, "DaemonSet"; got != want { + t.Errorf("controllerRef.Kind = %q, want %q", got, want) + } + if controllerRef.Controller == nil || *controllerRef.Controller != true { + t.Errorf("controllerRef.Controller is not set to true") + } + + if !podutil.IsPodReady(pod) { + podCopy := pod.DeepCopy() + podCopy.Status = v1.PodStatus{ + Phase: v1.PodRunning, + Conditions: []v1.PodCondition{{Type: v1.PodReady, Status: v1.ConditionTrue}}, + } + _, err := podClient.UpdateStatus(podCopy) + if err != nil { + return false, err + } + } + } + + return true, nil + }); err != nil { + t.Fatal(err) + } +} + +func validateDaemonSetStatus( + dsClient extensionsv1beta1typed.DaemonSetInterface, + dsName string, + dsNamespace string, + expectedNumberReady int32, + t *testing.T) { + if err := wait.Poll(5*time.Second, 60*time.Second, func() (bool, error) { + ds, err := dsClient.Get(dsName, metav1.GetOptions{}) + if err != nil { + return false, err + } + return ds.Status.NumberReady == expectedNumberReady, nil + }); err != nil { + t.Fatal(err) + } +} + +func validateFailedPlacementEvent(eventClient corev1typed.EventInterface, t *testing.T) { + if err := wait.Poll(5*time.Second, 60*time.Second, func() (bool, error) { + eventList, err := eventClient.List(metav1.ListOptions{}) + if err != nil { + return false, err + } + if len(eventList.Items) == 0 { + return false, nil + } + if len(eventList.Items) > 1 { + t.Errorf("Expected 1 event got %d", len(eventList.Items)) + } + event := eventList.Items[0] + if event.Type != v1.EventTypeWarning { + t.Errorf("Event type expected %s got %s", v1.EventTypeWarning, event.Type) + } + if event.Reason != daemon.FailedPlacementReason { + t.Errorf("Event reason expected %s got %s", daemon.FailedPlacementReason, event.Reason) + } + return true, nil + }); err != nil { + t.Fatal(err) + } +} + +func TestOneNodeDaemonLaunchesPod(t *testing.T) { + for _, strategy := range updateStrategies() { + server, closeFn, dc, informers, clientset := setup(t) + defer closeFn() + ns := framework.CreateTestingNamespace("one-node-daemonset-test", server, t) + defer framework.DeleteTestingNamespace(ns, server, t) + + dsClient := clientset.ExtensionsV1beta1().DaemonSets(ns.Name) + podClient := clientset.CoreV1().Pods(ns.Name) + nodeClient := clientset.CoreV1().Nodes() + podInformer := informers.Core().V1().Pods().Informer() + stopCh := make(chan struct{}) + informers.Start(stopCh) + go dc.Run(5, stopCh) + + ds := newDaemonSet("foo", ns.Name) + ds.Spec.UpdateStrategy = *strategy + _, err := dsClient.Create(ds) + if err != nil { + t.Fatalf("Failed to create DaemonSet: %v", err) + } + _, err = nodeClient.Create(newNode("single-node", nil)) + if err != nil { + t.Fatalf("Failed to create node: %v", err) + } + + validateDaemonSetPodsAndMarkReady(podClient, podInformer, 1, t) + validateDaemonSetStatus(dsClient, ds.Name, ds.Namespace, 1, t) + + close(stopCh) + } +} + +func TestSimpleDaemonSetLaunchesPods(t *testing.T) { + for _, strategy := range updateStrategies() { + server, closeFn, dc, informers, clientset := setup(t) + defer closeFn() + ns := framework.CreateTestingNamespace("simple-daemonset-test", server, t) + defer framework.DeleteTestingNamespace(ns, server, t) + + dsClient := clientset.ExtensionsV1beta1().DaemonSets(ns.Name) + podClient := clientset.CoreV1().Pods(ns.Name) + nodeClient := clientset.CoreV1().Nodes() + podInformer := informers.Core().V1().Pods().Informer() + stopCh := make(chan struct{}) + informers.Start(stopCh) + go dc.Run(5, stopCh) + + ds := newDaemonSet("foo", ns.Name) + ds.Spec.UpdateStrategy = *strategy + _, err := dsClient.Create(ds) + if err != nil { + t.Fatalf("Failed to create DaemonSet: %v", err) + } + addNodes(nodeClient, 0, 5, nil, t) + + validateDaemonSetPodsAndMarkReady(podClient, podInformer, 5, t) + validateDaemonSetStatus(dsClient, ds.Name, ds.Namespace, 5, t) + + close(stopCh) + } +} + +func TestNotReadyNodeDaemonDoesLaunchPod(t *testing.T) { + for _, strategy := range updateStrategies() { + server, closeFn, dc, informers, clientset := setup(t) + defer closeFn() + ns := framework.CreateTestingNamespace("simple-daemonset-test", server, t) + defer framework.DeleteTestingNamespace(ns, server, t) + + dsClient := clientset.ExtensionsV1beta1().DaemonSets(ns.Name) + podClient := clientset.CoreV1().Pods(ns.Name) + nodeClient := clientset.CoreV1().Nodes() + podInformer := informers.Core().V1().Pods().Informer() + stopCh := make(chan struct{}) + informers.Start(stopCh) + go dc.Run(5, stopCh) + + ds := newDaemonSet("foo", ns.Name) + ds.Spec.UpdateStrategy = *strategy + _, err := dsClient.Create(ds) + if err != nil { + t.Fatalf("Failed to create DaemonSet: %v", err) + } + node := newNode("single-node", nil) + node.Status.Conditions = []v1.NodeCondition{ + {Type: v1.NodeReady, Status: v1.ConditionFalse}, + } + _, err = nodeClient.Create(node) + if err != nil { + t.Fatalf("Failed to create node: %v", err) + } + + validateDaemonSetPodsAndMarkReady(podClient, podInformer, 1, t) + validateDaemonSetStatus(dsClient, ds.Name, ds.Namespace, 1, t) + + close(stopCh) + } +} + +func TestInsufficientCapacityNodeDaemonDoesNotLaunchPod(t *testing.T) { + for _, strategy := range updateStrategies() { + server, closeFn, dc, informers, clientset := setup(t) + defer closeFn() + ns := framework.CreateTestingNamespace("insufficient-capacity", server, t) + defer framework.DeleteTestingNamespace(ns, server, t) + + dsClient := clientset.ExtensionsV1beta1().DaemonSets(ns.Name) + nodeClient := clientset.CoreV1().Nodes() + eventClient := corev1typed.New(clientset.CoreV1().RESTClient()).Events(ns.Namespace) + stopCh := make(chan struct{}) + informers.Start(stopCh) + go dc.Run(5, stopCh) + + ds := newDaemonSet("foo", ns.Name) + ds.Spec.Template.Spec = resourcePodSpec("node-with-limited-memory", "120M", "75m") + ds.Spec.UpdateStrategy = *strategy + _, err := dsClient.Create(ds) + if err != nil { + t.Fatalf("Failed to create DaemonSet: %v", err) + } + node := newNode("node-with-limited-memory", nil) + node.Status.Allocatable = allocatableResources("100M", "200m") + _, err = nodeClient.Create(node) + if err != nil { + t.Fatalf("Failed to create node: %v", err) + } + + validateFailedPlacementEvent(eventClient, t) + + close(stopCh) + } +} diff --git a/vendor/k8s.io/kubernetes/federation/test/integration/main_test.go b/vendor/k8s.io/kubernetes/test/integration/daemonset/main_test.go similarity index 97% rename from vendor/k8s.io/kubernetes/federation/test/integration/main_test.go rename to vendor/k8s.io/kubernetes/test/integration/daemonset/main_test.go index 0a64b7565..0bcdac33d 100644 --- a/vendor/k8s.io/kubernetes/federation/test/integration/main_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/daemonset/main_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package integration +package daemonset import ( "testing" diff --git a/vendor/k8s.io/kubernetes/test/integration/defaulttolerationseconds/BUILD b/vendor/k8s.io/kubernetes/test/integration/defaulttolerationseconds/BUILD index a40f3bff9..febfcd318 100644 --- a/vendor/k8s.io/kubernetes/test/integration/defaulttolerationseconds/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/defaulttolerationseconds/BUILD @@ -18,8 +18,8 @@ go_test( "integration", ], deps = [ - "//pkg/api/helper:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core/helper:go_default_library", "//plugin/pkg/admission/defaulttolerationseconds:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//test/integration/framework:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/defaulttolerationseconds/defaulttolerationseconds_test.go b/vendor/k8s.io/kubernetes/test/integration/defaulttolerationseconds/defaulttolerationseconds_test.go index 528f464cc..29832a9da 100644 --- a/vendor/k8s.io/kubernetes/test/integration/defaulttolerationseconds/defaulttolerationseconds_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/defaulttolerationseconds/defaulttolerationseconds_test.go @@ -23,8 +23,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api/helper" "k8s.io/kubernetes/pkg/api/testapi" + "k8s.io/kubernetes/pkg/apis/core/helper" "k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" "k8s.io/kubernetes/test/integration/framework" diff --git a/vendor/k8s.io/kubernetes/test/integration/deployment/BUILD b/vendor/k8s.io/kubernetes/test/integration/deployment/BUILD index 4e3f3854e..ee29e8243 100644 --- a/vendor/k8s.io/kubernetes/test/integration/deployment/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/deployment/BUILD @@ -22,6 +22,7 @@ go_test( "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", ], ) @@ -35,6 +36,7 @@ go_library( "//pkg/controller/deployment:go_default_library", "//pkg/controller/deployment/util:go_default_library", "//pkg/controller/replicaset:go_default_library", + "//pkg/util/metrics:go_default_library", "//test/integration/framework:go_default_library", "//test/utils:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/deployment/deployment_test.go b/vendor/k8s.io/kubernetes/test/integration/deployment/deployment_test.go index 0695754f3..deb4807a0 100644 --- a/vendor/k8s.io/kubernetes/test/integration/deployment/deployment_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/deployment/deployment_test.go @@ -17,6 +17,7 @@ limitations under the License. package deployment import ( + "fmt" "reflect" "strings" "testing" @@ -24,6 +25,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/wait" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" "k8s.io/kubernetes/test/integration/framework" @@ -59,8 +61,9 @@ func TestNewDeployment(t *testing.T) { t.Fatal(err) } - // Make sure the Deployment status becomes valid while manually marking Deployment pods as ready at the same time - if err := tester.waitForDeploymentStatusValidAndMarkPodsReady(); err != nil { + // Make sure the Deployment completes while manually marking Deployment pods as ready at the same time. + // Use soft check because this deployment was just created and rolling update strategy might be violated. + if err := tester.waitForDeploymentCompleteAndMarkPodsReady(); err != nil { t.Fatal(err) } @@ -77,6 +80,120 @@ func TestNewDeployment(t *testing.T) { } } +// Deployments should support roll out, roll back, and roll over +func TestDeploymentRollingUpdate(t *testing.T) { + s, closeFn, rm, dc, informers, c := dcSetup(t) + defer closeFn() + name := "test-rolling-update-deployment" + ns := framework.CreateTestingNamespace(name, s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + + // Start informer and controllers + stopCh := make(chan struct{}) + defer close(stopCh) + informers.Start(stopCh) + go rm.Run(5, stopCh) + go dc.Run(5, stopCh) + + replicas := int32(20) + tester := &deploymentTester{t: t, c: c, deployment: newDeployment(name, ns.Name, replicas)} + tester.deployment.Spec.MinReadySeconds = 4 + quarter := intstr.FromString("25%") + tester.deployment.Spec.Strategy.RollingUpdate = &v1beta1.RollingUpdateDeployment{ + MaxUnavailable: &quarter, + MaxSurge: &quarter, + } + + // Create a deployment. + var err error + tester.deployment, err = c.ExtensionsV1beta1().Deployments(ns.Name).Create(tester.deployment) + if err != nil { + t.Fatalf("failed to create deployment %s: %v", tester.deployment.Name, err) + } + oriImage := tester.deployment.Spec.Template.Spec.Containers[0].Image + if err := tester.waitForDeploymentRevisionAndImage("1", oriImage); err != nil { + t.Fatal(err) + } + if err := tester.waitForDeploymentCompleteAndMarkPodsReady(); err != nil { + t.Fatal(err) + } + + // 1. Roll out a new image. + image := "new-image" + if oriImage == image { + t.Fatalf("bad test setup, deployment %s roll out with the same image", tester.deployment.Name) + } + imageFn := func(update *v1beta1.Deployment) { + update.Spec.Template.Spec.Containers[0].Image = image + } + tester.deployment, err = tester.updateDeployment(imageFn) + if err != nil { + t.Fatalf("failed to update deployment %s: %v", tester.deployment.Name, err) + } + if err := tester.waitForDeploymentRevisionAndImage("2", image); err != nil { + t.Fatal(err) + } + if err := tester.waitForDeploymentCompleteAndCheckRollingAndMarkPodsReady(); err != nil { + t.Fatal(err) + } + + // 2. Roll back to the last revision. + revision := int64(0) + rollback := newDeploymentRollback(tester.deployment.Name, nil, revision) + if err = c.ExtensionsV1beta1().Deployments(ns.Name).Rollback(rollback); err != nil { + t.Fatalf("failed to roll back deployment %s to last revision: %v", tester.deployment.Name, err) + } + // Wait for the deployment to start rolling back + if err = tester.waitForDeploymentRollbackCleared(); err != nil { + t.Fatalf("failed to roll back deployment %s to last revision: %v", tester.deployment.Name, err) + } + // Wait for the deployment to be rolled back to the template stored in revision 1 and rolled forward to revision 3. + if err := tester.waitForDeploymentRevisionAndImage("3", oriImage); err != nil { + t.Fatal(err) + } + if err := tester.waitForDeploymentCompleteAndCheckRollingAndMarkPodsReady(); err != nil { + t.Fatal(err) + } + + // 3. Roll over a deployment before the previous rolling update finishes. + image = "dont-finish" + imageFn = func(update *v1beta1.Deployment) { + update.Spec.Template.Spec.Containers[0].Image = image + } + tester.deployment, err = tester.updateDeployment(imageFn) + if err != nil { + t.Fatalf("failed to update deployment %s: %v", tester.deployment.Name, err) + } + if err := tester.waitForDeploymentRevisionAndImage("4", image); err != nil { + t.Fatal(err) + } + // We don't mark pods as ready so that rollout won't finish. + // Before the rollout finishes, trigger another rollout. + image = "rollover" + imageFn = func(update *v1beta1.Deployment) { + update.Spec.Template.Spec.Containers[0].Image = image + } + tester.deployment, err = tester.updateDeployment(imageFn) + if err != nil { + t.Fatalf("failed to update deployment %s: %v", tester.deployment.Name, err) + } + if err := tester.waitForDeploymentRevisionAndImage("5", image); err != nil { + t.Fatal(err) + } + if err := tester.waitForDeploymentCompleteAndCheckRollingAndMarkPodsReady(); err != nil { + t.Fatal(err) + } + _, allOldRSs, err := deploymentutil.GetOldReplicaSets(tester.deployment, c.ExtensionsV1beta1()) + if err != nil { + t.Fatalf("failed retrieving old replicasets of deployment %s: %v", tester.deployment.Name, err) + } + for _, oldRS := range allOldRSs { + if *oldRS.Spec.Replicas != 0 { + t.Errorf("expected old replicaset %s of deployment %s to have 0 replica, got %d", oldRS.Name, tester.deployment.Name, *oldRS.Spec.Replicas) + } + } +} + // selectors are IMMUTABLE for all API versions except apps/v1beta1 and extensions/v1beta1 func TestDeploymentSelectorImmutability(t *testing.T) { s, closeFn, c := dcSimpleSetup(t) @@ -187,8 +304,9 @@ func TestPausedDeployment(t *testing.T) { t.Fatal(err) } - // Make sure the Deployment status becomes valid while manually marking Deployment pods as ready at the same time - if err := tester.waitForDeploymentStatusValidAndMarkPodsReady(); err != nil { + // Make sure the Deployment completes while manually marking Deployment pods as ready at the same time. + // Use soft check because this deployment was just created and rolling update strategy might be violated. + if err := tester.waitForDeploymentCompleteAndMarkPodsReady(); err != nil { t.Fatal(err) } @@ -271,8 +389,9 @@ func TestScalePausedDeployment(t *testing.T) { t.Fatal(err) } - // Make sure the Deployment status becomes valid while manually marking Deployment pods as ready at the same time - if err := tester.waitForDeploymentStatusValidAndMarkPodsReady(); err != nil { + // Make sure the Deployment completes while manually marking Deployment pods as ready at the same time. + // Use soft check because this deployment was just created and rolling update strategy might be violated. + if err := tester.waitForDeploymentCompleteAndMarkPodsReady(); err != nil { t.Fatal(err) } @@ -315,8 +434,9 @@ func TestScalePausedDeployment(t *testing.T) { t.Errorf("expected new replicaset replicas = %d, got %d", newReplicas, *rs.Spec.Replicas) } - // Make sure the Deployment status becomes valid while manually marking Deployment pods as ready at the same time - if err := tester.waitForDeploymentStatusValidAndMarkPodsReady(); err != nil { + // Make sure the Deployment completes while manually marking Deployment pods as ready at the same time. + // Use soft check because this deployment was just scaled and rolling update strategy might be violated. + if err := tester.waitForDeploymentCompleteAndMarkPodsReady(); err != nil { t.Fatal(err) } } @@ -381,3 +501,378 @@ func TestDeploymentHashCollision(t *testing.T) { t.Fatal(err) } } + +// Deployment supports rollback even when there's old replica set without revision. +func TestRollbackDeploymentRSNoRevision(t *testing.T) { + s, closeFn, rm, dc, informers, c := dcSetup(t) + defer closeFn() + name := "test-rollback-no-revision-deployment" + ns := framework.CreateTestingNamespace(name, s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + + // Create an old RS without revision + rsName := "test-rollback-no-revision-controller" + rsReplicas := int32(1) + rs := newReplicaSet(rsName, ns.Name, rsReplicas) + rs.Annotations = make(map[string]string) + rs.Annotations["make"] = "difference" + rs.Spec.Template.Spec.Containers[0].Image = "different-image" + _, err := c.ExtensionsV1beta1().ReplicaSets(ns.Name).Create(rs) + if err != nil { + t.Fatalf("failed to create replicaset %s: %v", rsName, err) + } + + replicas := int32(1) + tester := &deploymentTester{t: t, c: c, deployment: newDeployment(name, ns.Name, replicas)} + oriImage := tester.deployment.Spec.Template.Spec.Containers[0].Image + + // Create a deployment which have different template than the replica set created above. + if tester.deployment, err = c.ExtensionsV1beta1().Deployments(ns.Name).Create(tester.deployment); err != nil { + t.Fatalf("failed to create deployment %s: %v", tester.deployment.Name, err) + } + + // Start informer and controllers + stopCh := make(chan struct{}) + defer close(stopCh) + informers.Start(stopCh) + go rm.Run(5, stopCh) + go dc.Run(5, stopCh) + + // Wait for the Deployment to be updated to revision 1 + if err = tester.waitForDeploymentRevisionAndImage("1", fakeImage); err != nil { + t.Fatal(err) + } + + // 1. Rollback to the last revision + // Since there's only 1 revision in history, it should still be revision 1 + revision := int64(0) + rollback := newDeploymentRollback(tester.deployment.Name, nil, revision) + if err = c.ExtensionsV1beta1().Deployments(ns.Name).Rollback(rollback); err != nil { + t.Fatalf("failed to roll back deployment %s to last revision: %v", tester.deployment.Name, err) + } + + // Wait for the deployment to start rolling back + if err = tester.waitForDeploymentRollbackCleared(); err != nil { + t.Fatalf("failed to roll back deployment %s to last revision: %v", tester.deployment.Name, err) + } + // TODO: report RollbackRevisionNotFound in deployment status and check it here + + // The pod template shouldn't change since there's no last revision + // Check if the deployment is still revision 1 and still has the old pod template + err = tester.checkDeploymentRevisionAndImage("1", oriImage) + if err != nil { + t.Fatal(err) + } + + // 2. Update the deployment to revision 2. + updatedImage := "update" + tester.deployment, err = tester.updateDeployment(func(update *v1beta1.Deployment) { + update.Spec.Template.Spec.Containers[0].Name = updatedImage + update.Spec.Template.Spec.Containers[0].Image = updatedImage + }) + if err != nil { + t.Fatalf("failed updating deployment %s: %v", tester.deployment.Name, err) + } + + // Use observedGeneration to determine if the controller noticed the pod template update. + // Wait for the controller to notice the resume. + if err = tester.waitForObservedDeployment(tester.deployment.Generation); err != nil { + t.Fatal(err) + } + + // Wait for it to be updated to revision 2 + if err = tester.waitForDeploymentRevisionAndImage("2", updatedImage); err != nil { + t.Fatal(err) + } + + // Wait for the Deployment to complete while manually marking Deployment pods as ready at the same time + if err = tester.waitForDeploymentCompleteAndCheckRollingAndMarkPodsReady(); err != nil { + t.Fatal(err) + } + + // 3. Update the deploymentRollback to rollback to revision 1 + revision = int64(1) + rollback = newDeploymentRollback(tester.deployment.Name, nil, revision) + if err = c.ExtensionsV1beta1().Deployments(ns.Name).Rollback(rollback); err != nil { + t.Fatalf("failed to roll back deployment %s to revision %d: %v", tester.deployment.Name, revision, err) + } + + // Wait for the deployment to start rolling back + if err = tester.waitForDeploymentRollbackCleared(); err != nil { + t.Fatalf("failed to roll back deployment %s to revision %d: %v", tester.deployment.Name, revision, err) + } + // TODO: report RollbackDone in deployment status and check it here + + // The pod template should be updated to the one in revision 1 + // Wait for it to be updated to revision 3 + if err = tester.waitForDeploymentRevisionAndImage("3", oriImage); err != nil { + t.Fatal(err) + } + + // Wait for the Deployment to complete while manually marking Deployment pods as ready at the same time + if err = tester.waitForDeploymentCompleteAndCheckRollingAndMarkPodsReady(); err != nil { + t.Fatal(err) + } +} + +func checkRSHashLabels(rs *v1beta1.ReplicaSet) (string, error) { + hash := rs.Labels[v1beta1.DefaultDeploymentUniqueLabelKey] + selectorHash := rs.Spec.Selector.MatchLabels[v1beta1.DefaultDeploymentUniqueLabelKey] + templateLabelHash := rs.Spec.Template.Labels[v1beta1.DefaultDeploymentUniqueLabelKey] + + if hash != selectorHash || selectorHash != templateLabelHash { + return "", fmt.Errorf("mismatching hash value found in replicaset %s: %#v", rs.Name, rs) + } + if len(hash) == 0 { + return "", fmt.Errorf("unexpected replicaset %s missing required pod-template-hash labels", rs.Name) + } + + return hash, nil +} + +func checkPodsHashLabel(pods *v1.PodList) (string, error) { + if len(pods.Items) == 0 { + return "", fmt.Errorf("no pods given") + } + var hash string + for _, pod := range pods.Items { + podHash := pod.Labels[v1beta1.DefaultDeploymentUniqueLabelKey] + if len(podHash) == 0 { + return "", fmt.Errorf("found pod %s missing pod-template-hash label: %#v", pod.Name, pods) + } + // Save the first valid hash + if len(hash) == 0 { + hash = podHash + } + if podHash != hash { + return "", fmt.Errorf("found pod %s with mismatching pod-template-hash value %s: %#v", pod.Name, podHash, pods) + } + } + return hash, nil +} + +// Deployment should label adopted ReplicaSets and Pods. +func TestDeploymentLabelAdopted(t *testing.T) { + s, closeFn, rm, dc, informers, c := dcSetup(t) + defer closeFn() + name := "test-adopted-deployment" + ns := framework.CreateTestingNamespace(name, s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + + // Start informer and controllers + stopCh := make(chan struct{}) + defer close(stopCh) + informers.Start(stopCh) + go rm.Run(5, stopCh) + go dc.Run(5, stopCh) + + // Create a RS to be adopted by the deployment. + rsName := "test-adopted-controller" + replicas := int32(1) + rs := newReplicaSet(rsName, ns.Name, replicas) + _, err := c.ExtensionsV1beta1().ReplicaSets(ns.Name).Create(rs) + if err != nil { + t.Fatalf("failed to create replicaset %s: %v", rsName, err) + } + // Mark RS pods as ready. + selector, err := metav1.LabelSelectorAsSelector(rs.Spec.Selector) + if err != nil { + t.Fatalf("failed to parse replicaset %s selector: %v", rsName, err) + } + if err = wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { + pods, err := c.CoreV1().Pods(ns.Name).List(metav1.ListOptions{LabelSelector: selector.String()}) + if err != nil { + return false, err + } + if len(pods.Items) != int(replicas) { + return false, nil + } + for _, pod := range pods.Items { + if err = markPodReady(c, ns.Name, &pod); err != nil { + return false, nil + } + } + return true, nil + }); err != nil { + t.Fatalf("failed to mark pods replicaset %s as ready: %v", rsName, err) + } + + // Create a Deployment to adopt the old rs. + tester := &deploymentTester{t: t, c: c, deployment: newDeployment(name, ns.Name, replicas)} + if tester.deployment, err = c.ExtensionsV1beta1().Deployments(ns.Name).Create(tester.deployment); err != nil { + t.Fatalf("failed to create deployment %s: %v", tester.deployment.Name, err) + } + + // Wait for the Deployment to be updated to revision 1 + if err = tester.waitForDeploymentRevisionAndImage("1", fakeImage); err != nil { + t.Fatal(err) + } + + // The RS and pods should be relabeled after the Deployment finishes adopting it and completes. + if err := tester.waitForDeploymentComplete(); err != nil { + t.Fatal(err) + } + + // There should be no old RSes (overlapping RS) + oldRSs, allOldRSs, newRS, err := deploymentutil.GetAllReplicaSets(tester.deployment, c.ExtensionsV1beta1()) + if err != nil { + t.Fatalf("failed to get all replicasets owned by deployment %s: %v", name, err) + } + if len(oldRSs) != 0 || len(allOldRSs) != 0 { + t.Errorf("expected deployment to have no old replicasets, got %d old replicasets", len(allOldRSs)) + } + + // New RS should be relabeled, i.e. contain pod-template-hash in its selector, label, and template label + rsHash, err := checkRSHashLabels(newRS) + if err != nil { + t.Error(err) + } + + // All pods targeted by the deployment should contain pod-template-hash in their labels, and there should be only 3 pods + selector, err = metav1.LabelSelectorAsSelector(tester.deployment.Spec.Selector) + if err != nil { + t.Fatalf("failed to parse deployment %s selector: %v", name, err) + } + pods, err := c.CoreV1().Pods(ns.Name).List(metav1.ListOptions{LabelSelector: selector.String()}) + if err != nil { + t.Fatalf("failed to list pods of deployment %s: %v", name, err) + } + if len(pods.Items) != int(replicas) { + t.Errorf("expected %d pods, got %d pods", replicas, len(pods.Items)) + } + podHash, err := checkPodsHashLabel(pods) + if err != nil { + t.Error(err) + } + if rsHash != podHash { + t.Errorf("found mismatching pod-template-hash value: rs hash = %s whereas pod hash = %s", rsHash, podHash) + } +} + +// Deployment should have a timeout condition when it fails to progress after given deadline. +func TestFailedDeployment(t *testing.T) { + s, closeFn, rm, dc, informers, c := dcSetup(t) + defer closeFn() + name := "test-failed-deployment" + ns := framework.CreateTestingNamespace(name, s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + + deploymentName := "progress-check" + replicas := int32(1) + three := int32(3) + tester := &deploymentTester{t: t, c: c, deployment: newDeployment(deploymentName, ns.Name, replicas)} + tester.deployment.Spec.ProgressDeadlineSeconds = &three + var err error + tester.deployment, err = c.ExtensionsV1beta1().Deployments(ns.Name).Create(tester.deployment) + if err != nil { + t.Fatalf("failed to create deployment %q: %v", deploymentName, err) + } + + // Start informer and controllers + stopCh := make(chan struct{}) + defer close(stopCh) + informers.Start(stopCh) + go rm.Run(5, stopCh) + go dc.Run(5, stopCh) + + if err = tester.waitForDeploymentUpdatedReplicasLTE(replicas); err != nil { + t.Fatal(err) + } + + // Pods are not marked as Ready, therefore the deployment progress will eventually timeout after progressDeadlineSeconds has passed. + // Wait for the deployment to have a progress timeout condition. + if err = tester.waitForDeploymentWithCondition(deploymentutil.TimedOutReason, v1beta1.DeploymentProgressing); err != nil { + t.Fatal(err) + } + + // Manually mark pods as Ready and wait for deployment to complete. + if err := tester.waitForDeploymentCompleteAndMarkPodsReady(); err != nil { + t.Fatalf("deployment %q fails to have its status becoming valid: %v", deploymentName, err) + } + + // Wait for the deployment to have a progress complete condition. + if err = tester.waitForDeploymentWithCondition(deploymentutil.NewRSAvailableReason, v1beta1.DeploymentProgressing); err != nil { + t.Fatal(err) + } +} + +func TestOverlappingDeployments(t *testing.T) { + s, closeFn, rm, dc, informers, c := dcSetup(t) + defer closeFn() + name := "test-overlapping-deployments" + ns := framework.CreateTestingNamespace(name, s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + + replicas := int32(1) + firstDeploymentName := "first-deployment" + secondDeploymentName := "second-deployment" + testers := []*deploymentTester{ + {t: t, c: c, deployment: newDeployment(firstDeploymentName, ns.Name, replicas)}, + {t: t, c: c, deployment: newDeployment(secondDeploymentName, ns.Name, replicas)}, + } + // Start informer and controllers + stopCh := make(chan struct{}) + defer close(stopCh) + informers.Start(stopCh) + go rm.Run(5, stopCh) + go dc.Run(5, stopCh) + + // Create 2 deployments with overlapping selectors + var err error + var rss []*v1beta1.ReplicaSet + for _, tester := range testers { + tester.deployment, err = c.ExtensionsV1beta1().Deployments(ns.Name).Create(tester.deployment) + dname := tester.deployment.Name + if err != nil { + t.Fatalf("failed to create deployment %q: %v", dname, err) + } + // Wait for the deployment to be updated to revision 1 + if err = tester.waitForDeploymentRevisionAndImage("1", fakeImage); err != nil { + t.Fatalf("failed to update deployment %q to revision 1: %v", dname, err) + } + // Make sure the deployment completes while manually marking its pods as ready at the same time + if err = tester.waitForDeploymentCompleteAndMarkPodsReady(); err != nil { + t.Fatalf("deployment %q failed to complete: %v", dname, err) + } + // Get replicaset of the deployment + newRS, err := tester.getNewReplicaSet() + if err != nil { + t.Fatalf("failed to get new replicaset of deployment %q: %v", dname, err) + } + if newRS == nil { + t.Fatalf("unable to find new replicaset of deployment %q", dname) + } + // Store the replicaset for future usage + rss = append(rss, newRS) + } + + // Both deployments should proceed independently, so their respective replicaset should not be the same replicaset + if rss[0].UID == rss[1].UID { + t.Fatalf("overlapping deployments should not share the same replicaset") + } + + // Scale only the first deployment by 1 + newReplicas := replicas + 1 + testers[0].deployment, err = testers[0].updateDeployment(func(update *v1beta1.Deployment) { + update.Spec.Replicas = &newReplicas + }) + if err != nil { + t.Fatalf("failed updating deployment %q: %v", firstDeploymentName, err) + } + + // Make sure the deployment completes after scaling + if err := testers[0].waitForDeploymentCompleteAndMarkPodsReady(); err != nil { + t.Fatalf("deployment %q failed to complete after scaling: %v", firstDeploymentName, err) + } + + // Verify replicaset of both deployments has updated number of replicas + for i, tester := range testers { + rs, err := c.ExtensionsV1beta1().ReplicaSets(ns.Name).Get(rss[i].Name, metav1.GetOptions{}) + if err != nil { + t.Fatalf("failed to get replicaset %q: %v", rss[i].Name, err) + } + if *rs.Spec.Replicas != *tester.deployment.Spec.Replicas { + t.Errorf("expected replicaset %q of deployment %q has %d replicas, but found %d replicas", rs.Name, firstDeploymentName, *tester.deployment.Spec.Replicas, *rs.Spec.Replicas) + } + } +} diff --git a/vendor/k8s.io/kubernetes/test/integration/deployment/util.go b/vendor/k8s.io/kubernetes/test/integration/deployment/util.go index 77547a745..cfc33fa6a 100644 --- a/vendor/k8s.io/kubernetes/test/integration/deployment/util.go +++ b/vendor/k8s.io/kubernetes/test/integration/deployment/util.go @@ -19,6 +19,7 @@ package deployment import ( "fmt" "net/http/httptest" + "sync" "testing" "time" @@ -33,6 +34,7 @@ import ( "k8s.io/kubernetes/pkg/controller/deployment" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" "k8s.io/kubernetes/pkg/controller/replicaset" + "k8s.io/kubernetes/pkg/util/metrics" "k8s.io/kubernetes/test/integration/framework" testutil "k8s.io/kubernetes/test/utils" ) @@ -41,8 +43,8 @@ const ( pollInterval = 100 * time.Millisecond pollTimeout = 60 * time.Second - fakeImageName = "fake-name" - fakeImage = "fakeimage" + fakeContainerName = "fake-name" + fakeImage = "fakeimage" ) var pauseFn = func(update *v1beta1.Deployment) { @@ -87,7 +89,7 @@ func newDeployment(name, ns string, replicas int32) *v1beta1.Deployment { Spec: v1.PodSpec{ Containers: []v1.Container{ { - Name: fakeImageName, + Name: fakeContainerName, Image: fakeImage, }, }, @@ -97,6 +99,46 @@ func newDeployment(name, ns string, replicas int32) *v1beta1.Deployment { } } +func newReplicaSet(name, ns string, replicas int32) *v1beta1.ReplicaSet { + return &v1beta1.ReplicaSet{ + TypeMeta: metav1.TypeMeta{ + Kind: "ReplicaSet", + APIVersion: "extensions/v1beta1", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: ns, + Name: name, + }, + Spec: v1beta1.ReplicaSetSpec{ + Selector: &metav1.LabelSelector{ + MatchLabels: testLabels(), + }, + Replicas: &replicas, + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: testLabels(), + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: fakeContainerName, + Image: fakeImage, + }, + }, + }, + }, + }, + } +} + +func newDeploymentRollback(name string, annotations map[string]string, revision int64) *v1beta1.DeploymentRollback { + return &v1beta1.DeploymentRollback{ + Name: name, + UpdatedAnnotations: annotations, + RollbackTo: v1beta1.RollbackConfig{Revision: revision}, + } +} + // dcSetup sets up necessities for Deployment integration test, including master, apiserver, informers, and clientset func dcSetup(t *testing.T) (*httptest.Server, framework.CloseFunc, *replicaset.ReplicaSetController, *deployment.DeploymentController, informers.SharedInformerFactory, clientset.Interface) { masterConfig := framework.NewIntegrationTestMasterConfig() @@ -110,12 +152,16 @@ func dcSetup(t *testing.T) (*httptest.Server, framework.CloseFunc, *replicaset.R resyncPeriod := 12 * time.Hour informers := informers.NewSharedInformerFactory(clientset.NewForConfigOrDie(restclient.AddUserAgent(&config, "deployment-informers")), resyncPeriod) - dc := deployment.NewDeploymentController( + metrics.UnregisterMetricAndUntrackRateLimiterUsage("deployment_controller") + dc, err := deployment.NewDeploymentController( informers.Extensions().V1beta1().Deployments(), informers.Extensions().V1beta1().ReplicaSets(), informers.Core().V1().Pods(), clientset.NewForConfigOrDie(restclient.AddUserAgent(&config, "deployment-controller")), ) + if err != nil { + t.Fatalf("error creating Deployment controller: %v", err) + } rm := replicaset.NewReplicaSetController( informers.Extensions().V1beta1().ReplicaSets(), informers.Core().V1().Pods(), @@ -160,59 +206,109 @@ func (d *deploymentTester) waitForDeploymentRevisionAndImage(revision, image str return nil } -// markAllPodsReady manually updates all Deployment pods status to ready -func (d *deploymentTester) markAllPodsReady() { +func markPodReady(c clientset.Interface, ns string, pod *v1.Pod) error { + addPodConditionReady(pod, metav1.Now()) + _, err := c.Core().Pods(ns).UpdateStatus(pod) + return err +} + +// markUpdatedPodsReady manually marks updated Deployment pods status to ready, +// until the deployment is complete +func (d *deploymentTester) markUpdatedPodsReady(wg *sync.WaitGroup) { + defer wg.Done() + ns := d.deployment.Namespace - selector, err := metav1.LabelSelectorAsSelector(d.deployment.Spec.Selector) - if err != nil { - d.t.Fatalf("failed to parse Deployment selector: %v", err) - } - var readyPods int32 - err = wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { - readyPods = 0 - pods, err := d.c.Core().Pods(ns).List(metav1.ListOptions{LabelSelector: selector.String()}) + err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { + // We're done when the deployment is complete + if completed, err := d.deploymentComplete(); err != nil { + return false, err + } else if completed { + return true, nil + } + // Otherwise, mark remaining pods as ready + pods, err := d.listUpdatedPods() if err != nil { - d.t.Logf("failed to list Deployment pods, will retry later: %v", err) + d.t.Log(err) return false, nil } - for i := range pods.Items { - pod := pods.Items[i] + d.t.Logf("%d/%d of deployment pods are created", len(pods), *d.deployment.Spec.Replicas) + for i := range pods { + pod := pods[i] if podutil.IsPodReady(&pod) { - readyPods++ continue } - addPodConditionReady(&pod, metav1.Now()) - if _, err = d.c.Core().Pods(ns).UpdateStatus(&pod); err != nil { + if err = markPodReady(d.c, ns, &pod); err != nil { d.t.Logf("failed to update Deployment pod %s, will retry later: %v", pod.Name, err) - } else { - readyPods++ } } - if readyPods >= *d.deployment.Spec.Replicas { - return true, nil - } return false, nil }) if err != nil { - d.t.Fatalf("failed to mark all Deployment pods to ready: %v", err) + d.t.Fatalf("failed to mark updated Deployment pods to ready: %v", err) } } -func (d *deploymentTester) waitForDeploymentStatusValid() error { - return testutil.WaitForDeploymentStatusValid(d.c, d.deployment, d.t.Logf, pollInterval, pollTimeout) +func (d *deploymentTester) deploymentComplete() (bool, error) { + latest, err := d.c.ExtensionsV1beta1().Deployments(d.deployment.Namespace).Get(d.deployment.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } + return deploymentutil.DeploymentComplete(d.deployment, &latest.Status), nil +} + +// Waits for the deployment to complete, and check rolling update strategy isn't broken at any times. +// Rolling update strategy should not be broken during a rolling update. +func (d *deploymentTester) waitForDeploymentCompleteAndCheckRolling() error { + return testutil.WaitForDeploymentCompleteAndCheckRolling(d.c, d.deployment, d.t.Logf, pollInterval, pollTimeout) +} + +// Waits for the deployment to complete, and don't check if rolling update strategy is broken. +// Rolling update strategy is used only during a rolling update, and can be violated in other situations, +// such as shortly after a scaling event or the deployment is just created. +func (d *deploymentTester) waitForDeploymentComplete() error { + return testutil.WaitForDeploymentComplete(d.c, d.deployment, d.t.Logf, pollInterval, pollTimeout) +} + +// waitForDeploymentCompleteAndCheckRollingAndMarkPodsReady waits for the Deployment to complete +// while marking updated Deployment pods as ready at the same time. +// Uses hard check to make sure rolling update strategy is not violated at any times. +func (d *deploymentTester) waitForDeploymentCompleteAndCheckRollingAndMarkPodsReady() error { + var wg sync.WaitGroup + + // Manually mark updated Deployment pods as ready in a separate goroutine + wg.Add(1) + go d.markUpdatedPodsReady(&wg) + + // Wait for the Deployment status to complete while Deployment pods are becoming ready + err := d.waitForDeploymentCompleteAndCheckRolling() + if err != nil { + return fmt.Errorf("failed to wait for Deployment %s to complete: %v", d.deployment.Name, err) + } + + // Wait for goroutine to finish + wg.Wait() + + return nil } -// waitForDeploymentStatusValidAndMarkPodsReady waits for the Deployment status to become valid -// while marking all Deployment pods as ready at the same time. -func (d *deploymentTester) waitForDeploymentStatusValidAndMarkPodsReady() error { - // Manually mark all Deployment pods as ready in a separate goroutine - go d.markAllPodsReady() +// waitForDeploymentCompleteAndMarkPodsReady waits for the Deployment to complete +// while marking updated Deployment pods as ready at the same time. +func (d *deploymentTester) waitForDeploymentCompleteAndMarkPodsReady() error { + var wg sync.WaitGroup + + // Manually mark updated Deployment pods as ready in a separate goroutine + wg.Add(1) + go d.markUpdatedPodsReady(&wg) - // Make sure the Deployment status is valid while Deployment pods are becoming ready - err := d.waitForDeploymentStatusValid() + // Wait for the Deployment status to complete using soft check, while Deployment pods are becoming ready + err := d.waitForDeploymentComplete() if err != nil { return fmt.Errorf("failed to wait for Deployment status %s: %v", d.deployment.Name, err) } + + // Wait for goroutine to finish + wg.Wait() + return nil } @@ -228,7 +324,11 @@ func (d *deploymentTester) waitForObservedDeployment(desiredGeneration int64) er } func (d *deploymentTester) getNewReplicaSet() (*v1beta1.ReplicaSet, error) { - rs, err := deploymentutil.GetNewReplicaSet(d.deployment, d.c.ExtensionsV1beta1()) + deployment, err := d.c.ExtensionsV1beta1().Deployments(d.deployment.Namespace).Get(d.deployment.Name, metav1.GetOptions{}) + if err != nil { + return nil, fmt.Errorf("failed retrieving deployment %s: %v", d.deployment.Name, err) + } + rs, err := deploymentutil.GetNewReplicaSet(deployment, d.c.ExtensionsV1beta1()) if err != nil { return nil, fmt.Errorf("failed retrieving new replicaset of deployment %s: %v", d.deployment.Name, err) } @@ -260,3 +360,48 @@ func (d *deploymentTester) expectNewReplicaSet() (*v1beta1.ReplicaSet, error) { func (d *deploymentTester) updateReplicaSet(name string, applyUpdate testutil.UpdateReplicaSetFunc) (*v1beta1.ReplicaSet, error) { return testutil.UpdateReplicaSetWithRetries(d.c, d.deployment.Namespace, name, applyUpdate, d.t.Logf, pollInterval, pollTimeout) } + +// waitForDeploymentRollbackCleared waits for deployment either started rolling back or doesn't need to rollback. +func (d *deploymentTester) waitForDeploymentRollbackCleared() error { + return testutil.WaitForDeploymentRollbackCleared(d.c, d.deployment.Namespace, d.deployment.Name, pollInterval, pollTimeout) +} + +// checkDeploymentRevisionAndImage checks if the input deployment's and its new replica set's revision and image are as expected. +func (d *deploymentTester) checkDeploymentRevisionAndImage(revision, image string) error { + return testutil.CheckDeploymentRevisionAndImage(d.c, d.deployment.Namespace, d.deployment.Name, revision, image) +} + +func (d *deploymentTester) waitForDeploymentUpdatedReplicasLTE(minUpdatedReplicas int32) error { + return testutil.WaitForDeploymentUpdatedReplicasLTE(d.c, d.deployment.Namespace, d.deployment.Name, minUpdatedReplicas, d.deployment.Generation, pollInterval, pollTimeout) +} + +func (d *deploymentTester) waitForDeploymentWithCondition(reason string, condType v1beta1.DeploymentConditionType) error { + return testutil.WaitForDeploymentWithCondition(d.c, d.deployment.Namespace, d.deployment.Name, reason, condType, d.t.Logf, pollInterval, pollTimeout) +} + +func (d *deploymentTester) listUpdatedPods() ([]v1.Pod, error) { + selector, err := metav1.LabelSelectorAsSelector(d.deployment.Spec.Selector) + if err != nil { + return nil, fmt.Errorf("failed to parse deployment selector: %v", err) + } + pods, err := d.c.CoreV1().Pods(d.deployment.Namespace).List(metav1.ListOptions{LabelSelector: selector.String()}) + if err != nil { + return nil, fmt.Errorf("failed to list deployment pods, will retry later: %v", err) + } + newRS, err := d.getNewReplicaSet() + if err != nil { + return nil, fmt.Errorf("failed to get new replicaset of deployment %q: %v", d.deployment.Name, err) + } + if newRS == nil { + return nil, fmt.Errorf("unable to find new replicaset of deployment %q", d.deployment.Name) + } + + var ownedPods []v1.Pod + for _, pod := range pods.Items { + rs := metav1.GetControllerOf(&pod) + if rs.UID == newRS.UID { + ownedPods = append(ownedPods, pod) + } + } + return ownedPods, nil +} diff --git a/vendor/k8s.io/kubernetes/test/integration/etcd/BUILD b/vendor/k8s.io/kubernetes/test/integration/etcd/BUILD index d6eb2bb59..7f75f7189 100644 --- a/vendor/k8s.io/kubernetes/test/integration/etcd/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/etcd/BUILD @@ -20,7 +20,8 @@ go_test( deps = [ "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-apiserver/app/options:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", "//pkg/master:go_default_library", "//test/integration/framework:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/etcd/etcd_storage_path_test.go b/vendor/k8s.io/kubernetes/test/integration/etcd/etcd_storage_path_test.go index 1c79ec59b..263061095 100644 --- a/vendor/k8s.io/kubernetes/test/integration/etcd/etcd_storage_path_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/etcd/etcd_storage_path_test.go @@ -49,7 +49,8 @@ import ( "k8s.io/client-go/util/flowcontrol" "k8s.io/kubernetes/cmd/kube-apiserver/app" "k8s.io/kubernetes/cmd/kube-apiserver/app/options" - kapi "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" + kapi "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/test/integration/framework" @@ -180,6 +181,26 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { expectedEtcdPath: "/registry/daemonsets/etcdstoragepathtestnamespace/ds6", expectedGVK: gvkP("extensions", "v1beta1", "DaemonSet"), }, + gvr("apps", "v1", "deployments"): { + stub: `{"metadata": {"name": "deployment4"}, "spec": {"selector": {"matchLabels": {"f": "z"}}, "template": {"metadata": {"labels": {"f": "z"}}, "spec": {"containers": [{"image": "fedora:latest", "name": "container6"}]}}}}`, + expectedEtcdPath: "/registry/deployments/etcdstoragepathtestnamespace/deployment4", + expectedGVK: gvkP("extensions", "v1beta1", "Deployment"), + }, + gvr("apps", "v1", "statefulsets"): { + stub: `{"metadata": {"name": "ss3"}, "spec": {"selector": {"matchLabels": {"a": "b"}}, "template": {"metadata": {"labels": {"a": "b"}}}}}`, + expectedEtcdPath: "/registry/statefulsets/etcdstoragepathtestnamespace/ss3", + expectedGVK: gvkP("apps", "v1beta1", "StatefulSet"), + }, + gvr("apps", "v1", "replicasets"): { + stub: `{"metadata": {"name": "rs3"}, "spec": {"selector": {"matchLabels": {"g": "h"}}, "template": {"metadata": {"labels": {"g": "h"}}, "spec": {"containers": [{"image": "fedora:latest", "name": "container4"}]}}}}`, + expectedEtcdPath: "/registry/replicasets/etcdstoragepathtestnamespace/rs3", + expectedGVK: gvkP("extensions", "v1beta1", "ReplicaSet"), + }, + gvr("apps", "v1", "controllerrevisions"): { + stub: `{"metadata":{"name":"crs3"},"data":{"name":"abc","namespace":"default","creationTimestamp":null,"Spec":{"Replicas":0,"Selector":{"matchLabels":{"foo":"bar"}},"Template":{"creationTimestamp":null,"labels":{"foo":"bar"},"Spec":{"Volumes":null,"InitContainers":null,"Containers":null,"RestartPolicy":"Always","TerminationGracePeriodSeconds":null,"ActiveDeadlineSeconds":null,"DNSPolicy":"ClusterFirst","NodeSelector":null,"ServiceAccountName":"","AutomountServiceAccountToken":null,"NodeName":"","SecurityContext":null,"ImagePullSecrets":null,"Hostname":"","Subdomain":"","Affinity":null,"SchedulerName":"","Tolerations":null,"HostAliases":null}},"VolumeClaimTemplates":null,"ServiceName":""},"Status":{"ObservedGeneration":null,"Replicas":0}},"revision":0}`, + expectedEtcdPath: "/registry/controllerrevisions/etcdstoragepathtestnamespace/crs3", + expectedGVK: gvkP("apps", "v1beta1", "ControllerRevision"), + }, // -- // k8s.io/kubernetes/pkg/apis/autoscaling/v1 @@ -242,6 +263,7 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { gvr("extensions", "v1beta1", "networkpolicies"): { stub: `{"metadata": {"name": "np1"}, "spec": {"podSelector": {"matchLabels": {"e": "f"}}}}`, expectedEtcdPath: "/registry/networkpolicies/etcdstoragepathtestnamespace/np1", + expectedGVK: gvkP("networking.k8s.io", "v1", "NetworkPolicy"), }, gvr("extensions", "v1beta1", "deployments"): { stub: `{"metadata": {"name": "deployment1"}, "spec": {"selector": {"matchLabels": {"f": "z"}}, "template": {"metadata": {"labels": {"f": "z"}}, "spec": {"containers": [{"image": "fedora:latest", "name": "container6"}]}}}}`, @@ -257,7 +279,6 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { gvr("networking.k8s.io", "v1", "networkpolicies"): { stub: `{"metadata": {"name": "np2"}, "spec": {"podSelector": {"matchLabels": {"e": "f"}}}}`, expectedEtcdPath: "/registry/networkpolicies/etcdstoragepathtestnamespace/np2", - expectedGVK: gvkP("extensions", "v1beta1", "NetworkPolicy"), }, // -- @@ -268,6 +289,13 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { }, // -- + // k8s.io/kubernetes/pkg/apis/storage/v1alpha1 + gvr("storage.k8s.io", "v1alpha1", "volumeattachments"): { + stub: `{"metadata": {"name": "va1"}, "spec": {"attacher": "gce", "nodeName": "localhost", "source": {"persistentVolumeName": "pv1"}}}`, + expectedEtcdPath: "/registry/volumeattachments/va1", + }, + // -- + // k8s.io/kubernetes/pkg/apis/storage/v1beta1 gvr("storage.k8s.io", "v1beta1", "storageclasses"): { stub: `{"metadata": {"name": "sc1"}, "provisioner": "aws"}`, @@ -360,9 +388,13 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { stub: `{"metadata":{"name":"ic1"},"initializers":[{"name":"initializer.k8s.io","rules":[{"apiGroups":["group"],"apiVersions":["version"],"resources":["resource"]}],"failurePolicy":"Ignore"}]}`, expectedEtcdPath: "/registry/initializerconfigurations/ic1", }, - gvr("admissionregistration.k8s.io", "v1alpha1", "externaladmissionhookconfigurations"): { - stub: `{"metadata":{"name":"hook1","creationTimestamp":null},"externalAdmissionHooks":[{"name":"externaladmissionhook.k8s.io","clientConfig":{"service":{"namespace":"","name":""},"caBundle":null},"rules":[{"operations":["CREATE"],"apiGroups":["group"],"apiVersions":["version"],"resources":["resource"]}],"failurePolicy":"Ignore"}]}`, - expectedEtcdPath: "/registry/externaladmissionhookconfigurations/hook1", + gvr("admissionregistration.k8s.io", "v1alpha1", "validatingwebhookconfigurations"): { + stub: `{"metadata":{"name":"hook1","creationTimestamp":null},"webhooks":[{"name":"externaladmissionhook.k8s.io","clientConfig":{"service":{"namespace":"ns","name":"n"},"caBundle":null},"rules":[{"operations":["CREATE"],"apiGroups":["group"],"apiVersions":["version"],"resources":["resource"]}],"failurePolicy":"Ignore"}]}`, + expectedEtcdPath: "/registry/validatingwebhookconfigurations/hook1", + }, + gvr("admissionregistration.k8s.io", "v1alpha1", "mutatingwebhookconfigurations"): { + stub: `{"metadata":{"name":"hook1","creationTimestamp":null},"webhooks":[{"name":"externaladmissionhook.k8s.io","clientConfig":{"service":{"namespace":"ns","name":"n"},"caBundle":null},"rules":[{"operations":["CREATE"],"apiGroups":["group"],"apiVersions":["version"],"resources":["resource"]}],"failurePolicy":"Ignore"}]}`, + expectedEtcdPath: "/registry/mutatingwebhookconfigurations/hook1", }, // -- @@ -377,9 +409,6 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { // Be very careful when whitelisting an object as ephemeral. // Doing so removes the safety we gain from this test by skipping that object. var ephemeralWhiteList = createEphemeralWhiteList( - // k8s.io/kubernetes/federation/apis/federation/v1beta1 - gvr("federation", "v1beta1", "clusters"), // we cannot create this - // -- // k8s.io/kubernetes/pkg/api/v1 gvr("", "v1", "bindings"), // annotation on pod, not stored in etcd @@ -441,15 +470,12 @@ var ephemeralWhiteList = createEphemeralWhiteList( // k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1 gvr("componentconfig", "v1alpha1", "kubeschedulerconfigurations"), // not stored in etcd - gvr("componentconfig", "v1alpha1", "kubeproxyconfigurations"), // not stored in etcd // -- // k8s.io/kubernetes/pkg/apis/extensions/v1beta1 gvr("extensions", "v1beta1", "deploymentrollbacks"), // used to rollback deployment, not stored in etcd gvr("extensions", "v1beta1", "replicationcontrollerdummies"), // not stored in etcd gvr("extensions", "v1beta1", "scales"), // not stored in etcd, part of kapiv1.ReplicationController - gvr("extensions", "v1beta1", "thirdpartyresourcedatas"), // we cannot create this - gvr("extensions", "v1beta1", "thirdpartyresources"), // these have been removed from the API server, but kept for the client // -- // k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1 @@ -514,7 +540,7 @@ func TestEtcdStoragePath(t *testing.T) { ephemeralSeen := map[schema.GroupVersionResource]empty{} cohabitatingResources := map[string]map[schema.GroupVersionKind]empty{} - for gvk, apiType := range kapi.Scheme.AllKnownTypes() { + for gvk, apiType := range legacyscheme.Scheme.AllKnownTypes() { // we do not care about internal objects or lists // TODO make sure this is always true if gvk.Version == runtime.APIVersionInternal || strings.HasSuffix(apiType.Name(), "List") { continue @@ -725,7 +751,7 @@ func startRealMasterOrDie(t *testing.T, certDir string) (*allClient, clientv3.KV // make a copy so we can mutate it to set GroupVersion and NegotiatedSerializer cfg := *kubeClientConfig cfg.ContentConfig.GroupVersion = &schema.GroupVersion{} - cfg.ContentConfig.NegotiatedSerializer = kapi.Codecs + cfg.ContentConfig.NegotiatedSerializer = legacyscheme.Codecs privilegedClient, err := restclient.RESTClientFor(&cfg) if err != nil { // this happens because we race the API server start @@ -963,7 +989,7 @@ func (c *allClient) createPrerequisites(mapper meta.RESTMapper, ns string, prere } func newClient(config restclient.Config) (*allClient, error) { - config.ContentConfig.NegotiatedSerializer = kapi.Codecs + config.ContentConfig.NegotiatedSerializer = legacyscheme.Codecs config.ContentConfig.ContentType = "application/json" config.Timeout = 30 * time.Second config.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(3, 10) diff --git a/vendor/k8s.io/kubernetes/test/integration/evictions/evictions_test.go b/vendor/k8s.io/kubernetes/test/integration/evictions/evictions_test.go index b0ded1441..5a7ba8451 100644 --- a/vendor/k8s.io/kubernetes/test/integration/evictions/evictions_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/evictions/evictions_test.go @@ -75,12 +75,12 @@ func TestConcurrentEvictionRequests(t *testing.T) { podName := fmt.Sprintf(podNameFormat, i) pod := newPod(podName) - if _, err := clientSet.Core().Pods(ns.Name).Create(pod); err != nil { + if _, err := clientSet.CoreV1().Pods(ns.Name).Create(pod); err != nil { t.Errorf("Failed to create pod: %v", err) } addPodConditionReady(pod) - if _, err := clientSet.Core().Pods(ns.Name).UpdateStatus(pod); err != nil { + if _, err := clientSet.CoreV1().Pods(ns.Name).UpdateStatus(pod); err != nil { t.Fatal(err) } } @@ -124,7 +124,7 @@ func TestConcurrentEvictionRequests(t *testing.T) { // should not return here otherwise we would leak the pod } - _, err = clientSet.Core().Pods(ns.Name).Get(podName, metav1.GetOptions{}) + _, err = clientSet.CoreV1().Pods(ns.Name).Get(podName, metav1.GetOptions{}) switch { case errors.IsNotFound(err): atomic.AddUint32(&numberPodsEvicted, 1) @@ -138,7 +138,7 @@ func TestConcurrentEvictionRequests(t *testing.T) { } // delete pod which still exists due to error - e := clientSet.Core().Pods(ns.Name).Delete(podName, deleteOption) + e := clientSet.CoreV1().Pods(ns.Name).Delete(podName, deleteOption) if e != nil { errCh <- e } diff --git a/vendor/k8s.io/kubernetes/test/integration/framework/BUILD b/vendor/k8s.io/kubernetes/test/integration/framework/BUILD index d6210e083..ebae0736c 100644 --- a/vendor/k8s.io/kubernetes/test/integration/framework/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/framework/BUILD @@ -19,9 +19,10 @@ go_library( ], importpath = "k8s.io/kubernetes/test/integration/framework", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/policy/v1alpha1:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/controller:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/framework/master_utils.go b/vendor/k8s.io/kubernetes/test/integration/framework/master_utils.go index 446d31c9b..08314e585 100644 --- a/vendor/k8s.io/kubernetes/test/integration/framework/master_utils.go +++ b/vendor/k8s.io/kubernetes/test/integration/framework/master_utils.go @@ -46,6 +46,7 @@ import ( "k8s.io/apiserver/pkg/authentication/authenticatorfactory" authenticatorunion "k8s.io/apiserver/pkg/authentication/request/union" "k8s.io/apiserver/pkg/authentication/user" + "k8s.io/apiserver/pkg/authorization/authorizer" authauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" "k8s.io/apiserver/pkg/authorization/authorizerfactory" authorizerunion "k8s.io/apiserver/pkg/authorization/union" @@ -56,12 +57,12 @@ import ( "k8s.io/client-go/informers" extinformers "k8s.io/client-go/informers" clientset "k8s.io/client-go/kubernetes" - extclient "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" policy "k8s.io/kubernetes/pkg/apis/policy/v1alpha1" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/controller" @@ -147,8 +148,8 @@ func NewMasterComponents(c *Config) *MasterComponents { // alwaysAllow always allows an action type alwaysAllow struct{} -func (alwaysAllow) Authorize(requestAttributes authauthorizer.Attributes) (bool, string, error) { - return true, "always allow", nil +func (alwaysAllow) Authorize(requestAttributes authauthorizer.Attributes) (authorizer.Decision, string, error) { + return authorizer.DecisionAllow, "always allow", nil } // alwaysEmpty simulates "no authentication" for old tests @@ -197,7 +198,7 @@ func startMasterOrDie(masterConfig *master.Config, incomingServer *httptest.Serv masterConfig = NewMasterConfig() masterConfig.GenericConfig.EnableProfiling = true masterConfig.GenericConfig.EnableMetrics = true - masterConfig.GenericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapi.GetOpenAPIDefinitions, api.Scheme) + masterConfig.GenericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapi.GetOpenAPIDefinitions, legacyscheme.Scheme) masterConfig.GenericConfig.OpenAPIConfig.Info = &spec.Info{ InfoProps: spec.InfoProps{ Title: "Kubernetes", @@ -215,7 +216,7 @@ func startMasterOrDie(masterConfig *master.Config, incomingServer *httptest.Serv // set the loopback client config if masterConfig.GenericConfig.LoopbackClientConfig == nil { - masterConfig.GenericConfig.LoopbackClientConfig = &restclient.Config{QPS: 50, Burst: 100, ContentConfig: restclient.ContentConfig{NegotiatedSerializer: api.Codecs}} + masterConfig.GenericConfig.LoopbackClientConfig = &restclient.Config{QPS: 50, Burst: 100, ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs}} } masterConfig.GenericConfig.LoopbackClientConfig.Host = s.URL @@ -244,7 +245,7 @@ func startMasterOrDie(masterConfig *master.Config, incomingServer *httptest.Serv masterConfig.GenericConfig.LoopbackClientConfig.BearerToken = privilegedLoopbackToken - clientset, err := extclient.NewForConfig(masterConfig.GenericConfig.LoopbackClientConfig) + clientset, err := clientset.NewForConfig(masterConfig.GenericConfig.LoopbackClientConfig) if err != nil { glog.Fatal(err) } @@ -297,10 +298,10 @@ func NewMasterConfig() *master.Config { etcdOptions := options.NewEtcdOptions(storagebackend.NewDefaultConfig(uuid.New(), nil)) etcdOptions.StorageConfig.ServerList = []string{GetEtcdURL()} - info, _ := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), runtime.ContentTypeJSON) - ns := NewSingleContentTypeSerializer(api.Scheme, info) + info, _ := runtime.SerializerInfoForMediaType(legacyscheme.Codecs.SupportedMediaTypes(), runtime.ContentTypeJSON) + ns := NewSingleContentTypeSerializer(legacyscheme.Scheme, info) - resourceEncoding := serverstorage.NewDefaultResourceEncodingConfig(api.Registry) + resourceEncoding := serverstorage.NewDefaultResourceEncodingConfig(legacyscheme.Registry) // FIXME (soltysh): this GroupVersionResource override should be configurable // we need to set both for the whole group and for cronjobs, separately resourceEncoding.SetVersionEncoding(batch.GroupName, *testapi.Batch.GroupVersion(), schema.GroupVersion{Group: batch.GroupName, Version: runtime.APIVersionInternal}) @@ -344,7 +345,7 @@ func NewMasterConfig() *master.Config { "", ns) - genericConfig := genericapiserver.NewConfig(api.Codecs) + genericConfig := genericapiserver.NewConfig(legacyscheme.Codecs) kubeVersion := version.Get() genericConfig.Version = &kubeVersion genericConfig.Authorizer = authorizerfactory.NewAlwaysAllowAuthorizer() diff --git a/vendor/k8s.io/kubernetes/test/integration/framework/perf_utils.go b/vendor/k8s.io/kubernetes/test/integration/framework/perf_utils.go index 966a271dc..e6d91e714 100644 --- a/vendor/k8s.io/kubernetes/test/integration/framework/perf_utils.go +++ b/vendor/k8s.io/kubernetes/test/integration/framework/perf_utils.go @@ -73,7 +73,7 @@ func (p *IntegrationTestNodePreparer) PrepareNodes() error { }, } for i := 0; i < numNodes; i++ { - if _, err := p.client.Core().Nodes().Create(baseNode); err != nil { + if _, err := p.client.CoreV1().Nodes().Create(baseNode); err != nil { glog.Fatalf("Error creating node: %v", err) } } @@ -96,7 +96,7 @@ func (p *IntegrationTestNodePreparer) PrepareNodes() error { func (p *IntegrationTestNodePreparer) CleanupNodes() error { nodes := e2eframework.GetReadySchedulableNodesOrDie(p.client) for i := range nodes.Items { - if err := p.client.Core().Nodes().Delete(nodes.Items[i].Name, &metav1.DeleteOptions{}); err != nil { + if err := p.client.CoreV1().Nodes().Delete(nodes.Items[i].Name, &metav1.DeleteOptions{}); err != nil { glog.Errorf("Error while deleting Node: %v", err) } } diff --git a/vendor/k8s.io/kubernetes/test/integration/garbagecollector/garbage_collector_test.go b/vendor/k8s.io/kubernetes/test/integration/garbagecollector/garbage_collector_test.go index 5bd613f5e..632a75890 100644 --- a/vendor/k8s.io/kubernetes/test/integration/garbagecollector/garbage_collector_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/garbagecollector/garbage_collector_test.go @@ -233,10 +233,7 @@ func setup(t *testing.T, workerCount int) *testContext { discoveryClient := cacheddiscovery.NewMemCacheClient(clientSet.Discovery()) restMapper := discovery.NewDeferredDiscoveryRESTMapper(discoveryClient, meta.InterfacesForUnstructured) restMapper.Reset() - deletableResources, err := garbagecollector.GetDeletableResources(discoveryClient) - if err != nil { - t.Fatalf("unable to get deletable resources: %v", err) - } + deletableResources := garbagecollector.GetDeletableResources(discoveryClient) config := *masterConfig config.ContentConfig = dynamic.ContentConfig() metaOnlyClientPool := dynamic.NewClientPool(&config, restMapper, dynamic.LegacyAPIPathResolverFunc) @@ -288,11 +285,11 @@ func setup(t *testing.T, workerCount int) *testContext { func createNamespaceOrDie(name string, c clientset.Interface, t *testing.T) *v1.Namespace { ns := &v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: name}} - if _, err := c.Core().Namespaces().Create(ns); err != nil { + if _, err := c.CoreV1().Namespaces().Create(ns); err != nil { t.Fatalf("failed to create namespace: %v", err) } falseVar := false - _, err := c.Core().ServiceAccounts(ns.Name).Create(&v1.ServiceAccount{ + _, err := c.CoreV1().ServiceAccounts(ns.Name).Create(&v1.ServiceAccount{ ObjectMeta: metav1.ObjectMeta{Name: "default"}, AutomountServiceAccountToken: &falseVar, }) @@ -305,7 +302,7 @@ func createNamespaceOrDie(name string, c clientset.Interface, t *testing.T) *v1. func deleteNamespaceOrDie(name string, c clientset.Interface, t *testing.T) { zero := int64(0) background := metav1.DeletePropagationBackground - err := c.Core().Namespaces().Delete(name, &metav1.DeleteOptions{GracePeriodSeconds: &zero, PropagationPolicy: &background}) + err := c.CoreV1().Namespaces().Delete(name, &metav1.DeleteOptions{GracePeriodSeconds: &zero, PropagationPolicy: &background}) if err != nil { t.Fatalf("failed to delete namespace %q: %v", name, err) } @@ -321,8 +318,8 @@ func TestCascadingDeletion(t *testing.T) { ns := createNamespaceOrDie("gc-cascading-deletion", clientSet, t) defer deleteNamespaceOrDie(ns.Name, clientSet, t) - rcClient := clientSet.Core().ReplicationControllers(ns.Name) - podClient := clientSet.Core().Pods(ns.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(ns.Name) + podClient := clientSet.CoreV1().Pods(ns.Name) toBeDeletedRC, err := rcClient.Create(newOwnerRC(toBeDeletedRCName, ns.Name)) if err != nil { @@ -408,7 +405,7 @@ func TestCreateWithNonExistentOwner(t *testing.T) { ns := createNamespaceOrDie("gc-non-existing-owner", clientSet, t) defer deleteNamespaceOrDie(ns.Name, clientSet, t) - podClient := clientSet.Core().Pods(ns.Name) + podClient := clientSet.CoreV1().Pods(ns.Name) pod := newPod(garbageCollectedPodName, ns.Name, []metav1.OwnerReference{{UID: "doesn't matter", Name: toBeDeletedRCName}}) _, err := podClient.Create(pod) @@ -432,8 +429,8 @@ func TestCreateWithNonExistentOwner(t *testing.T) { func setupRCsPods(t *testing.T, gc *garbagecollector.GarbageCollector, clientSet clientset.Interface, nameSuffix, namespace string, initialFinalizers []string, options *metav1.DeleteOptions, wg *sync.WaitGroup, rcUIDs chan types.UID) { defer wg.Done() - rcClient := clientSet.Core().ReplicationControllers(namespace) - podClient := clientSet.Core().Pods(namespace) + rcClient := clientSet.CoreV1().ReplicationControllers(namespace) + podClient := clientSet.CoreV1().Pods(namespace) // create rc. rcName := "test.rc." + nameSuffix rc := newOwnerRC(rcName, namespace) @@ -468,8 +465,8 @@ func setupRCsPods(t *testing.T, gc *garbagecollector.GarbageCollector, clientSet } func verifyRemainingObjects(t *testing.T, clientSet clientset.Interface, namespace string, rcNum, podNum int) (bool, error) { - rcClient := clientSet.Core().ReplicationControllers(namespace) - podClient := clientSet.Core().Pods(namespace) + rcClient := clientSet.CoreV1().ReplicationControllers(namespace) + podClient := clientSet.CoreV1().Pods(namespace) pods, err := podClient.List(metav1.ListOptions{}) if err != nil { return false, fmt.Errorf("Failed to list pods: %v", err) @@ -530,7 +527,7 @@ func TestStressingCascadingDeletion(t *testing.T) { t.Logf("number of remaining replication controllers and pods are as expected") // verify the remaining pods all have "orphan" in their names. - podClient := clientSet.Core().Pods(ns.Name) + podClient := clientSet.CoreV1().Pods(ns.Name) pods, err := podClient.List(metav1.ListOptions{}) if err != nil { t.Fatal(err) @@ -561,8 +558,8 @@ func TestOrphaning(t *testing.T) { ns := createNamespaceOrDie("gc-orphaning", clientSet, t) defer deleteNamespaceOrDie(ns.Name, clientSet, t) - podClient := clientSet.Core().Pods(ns.Name) - rcClient := clientSet.Core().ReplicationControllers(ns.Name) + podClient := clientSet.CoreV1().Pods(ns.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(ns.Name) // create the RC with the orphan finalizer set toBeDeletedRC := newOwnerRC(toBeDeletedRCName, ns.Name) toBeDeletedRC, err := rcClient.Create(toBeDeletedRC) @@ -631,8 +628,8 @@ func TestSolidOwnerDoesNotBlockWaitingOwner(t *testing.T) { ns := createNamespaceOrDie("gc-foreground1", clientSet, t) defer deleteNamespaceOrDie(ns.Name, clientSet, t) - podClient := clientSet.Core().Pods(ns.Name) - rcClient := clientSet.Core().ReplicationControllers(ns.Name) + podClient := clientSet.CoreV1().Pods(ns.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(ns.Name) // create the RC with the orphan finalizer set toBeDeletedRC, err := rcClient.Create(newOwnerRC(toBeDeletedRCName, ns.Name)) if err != nil { @@ -691,8 +688,8 @@ func TestNonBlockingOwnerRefDoesNotBlock(t *testing.T) { ns := createNamespaceOrDie("gc-foreground2", clientSet, t) defer deleteNamespaceOrDie(ns.Name, clientSet, t) - podClient := clientSet.Core().Pods(ns.Name) - rcClient := clientSet.Core().ReplicationControllers(ns.Name) + podClient := clientSet.CoreV1().Pods(ns.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(ns.Name) // create the RC with the orphan finalizer set toBeDeletedRC, err := rcClient.Create(newOwnerRC(toBeDeletedRCName, ns.Name)) if err != nil { @@ -756,8 +753,8 @@ func TestBlockingOwnerRefDoesBlock(t *testing.T) { ns := createNamespaceOrDie("foo", clientSet, t) defer deleteNamespaceOrDie(ns.Name, clientSet, t) - podClient := clientSet.Core().Pods(ns.Name) - rcClient := clientSet.Core().ReplicationControllers(ns.Name) + podClient := clientSet.CoreV1().Pods(ns.Name) + rcClient := clientSet.CoreV1().ReplicationControllers(ns.Name) // create the RC with the orphan finalizer set toBeDeletedRC, err := rcClient.Create(newOwnerRC(toBeDeletedRCName, ns.Name)) if err != nil { @@ -879,7 +876,7 @@ func TestMixedRelationships(t *testing.T) { ns := createNamespaceOrDie("crd-mixed", clientSet, t) - configMapClient := clientSet.Core().ConfigMaps(ns.Name) + configMapClient := clientSet.CoreV1().ConfigMaps(ns.Name) definition, resourceClient := createRandomCustomResourceDefinition(t, apiExtensionClient, clientPool, ns.Name) @@ -977,7 +974,7 @@ func TestCRDDeletionCascading(t *testing.T) { ns := createNamespaceOrDie("crd-mixed", clientSet, t) - configMapClient := clientSet.Core().ConfigMaps(ns.Name) + configMapClient := clientSet.CoreV1().ConfigMaps(ns.Name) definition, resourceClient := createRandomCustomResourceDefinition(t, apiExtensionClient, clientPool, ns.Name) diff --git a/vendor/k8s.io/kubernetes/test/integration/master/BUILD b/vendor/k8s.io/kubernetes/test/integration/master/BUILD index 64eeff896..b981702af 100644 --- a/vendor/k8s.io/kubernetes/test/integration/master/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/master/BUILD @@ -15,8 +15,8 @@ go_test( importpath = "k8s.io/kubernetes/test/integration/master", tags = ["integration"], deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/master:go_default_library", "//test/integration:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/master/master_test.go b/vendor/k8s.io/kubernetes/test/integration/master/master_test.go index 6b13ca35a..d00f8766b 100644 --- a/vendor/k8s.io/kubernetes/test/integration/master/master_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/master/master_test.go @@ -43,8 +43,8 @@ import ( "k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest" clienttypedv1 "k8s.io/client-go/kubernetes/typed/core/v1" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/master" "k8s.io/kubernetes/test/integration" @@ -58,11 +58,11 @@ const ( type allowAliceAuthorizer struct{} -func (allowAliceAuthorizer) Authorize(a authorizer.Attributes) (bool, string, error) { +func (allowAliceAuthorizer) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) { if a.GetUser() != nil && a.GetUser().GetName() == "alice" { - return true, "", nil + return authorizer.DecisionAllow, "", nil } - return false, "I can't allow that. Go ask alice.", nil + return authorizer.DecisionNoOpinion, "I can't allow that. Go ask alice.", nil } func testPrefix(t *testing.T, prefix string) { diff --git a/vendor/k8s.io/kubernetes/test/integration/quota/BUILD b/vendor/k8s.io/kubernetes/test/integration/quota/BUILD index a2d09d38d..ec304e751 100644 --- a/vendor/k8s.io/kubernetes/test/integration/quota/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/quota/BUILD @@ -15,14 +15,13 @@ go_test( importpath = "k8s.io/kubernetes/test/integration/quota", tags = ["integration"], deps = [ - "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/controller:go_default_library", "//pkg/controller/replication:go_default_library", "//pkg/controller/resourcequota:go_default_library", - "//pkg/kubeapiserver/admission:go_default_library", + "//pkg/quota/generic:go_default_library", "//pkg/quota/install:go_default_library", "//plugin/pkg/admission/resourcequota:go_default_library", "//plugin/pkg/admission/resourcequota/apis/resourcequota:go_default_library", @@ -32,7 +31,6 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/quota/quota_test.go b/vendor/k8s.io/kubernetes/test/integration/quota/quota_test.go index 1f226b3c2..cd2506171 100644 --- a/vendor/k8s.io/kubernetes/test/integration/quota/quota_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/quota/quota_test.go @@ -28,21 +28,19 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/informers" clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" internalinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion" "k8s.io/kubernetes/pkg/controller" replicationcontroller "k8s.io/kubernetes/pkg/controller/replication" resourcequotacontroller "k8s.io/kubernetes/pkg/controller/resourcequota" - kubeadmission "k8s.io/kubernetes/pkg/kubeapiserver/admission" + "k8s.io/kubernetes/pkg/quota/generic" quotainstall "k8s.io/kubernetes/pkg/quota/install" "k8s.io/kubernetes/plugin/pkg/admission/resourcequota" resourcequotaapi "k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota" @@ -71,11 +69,11 @@ func TestQuota(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - admission.(kubeadmission.WantsInternalKubeClientSet).SetInternalKubeClientSet(internalClientset) + admission.SetInternalKubeClientSet(internalClientset) internalInformers := internalinformers.NewSharedInformerFactory(internalClientset, controller.NoResyncPeriodFunc()) - admission.(kubeadmission.WantsInternalKubeInformerFactory).SetInternalKubeInformerFactory(internalInformers) - quotaRegistry := quotainstall.NewRegistry(nil, nil) - admission.(kubeadmission.WantsQuotaRegistry).SetQuotaRegistry(quotaRegistry) + admission.SetInternalKubeInformerFactory(internalInformers) + qca := quotainstall.NewQuotaConfigurationForAdmission() + admission.SetQuotaConfiguration(qca) defer close(admissionCh) masterConfig := framework.NewIntegrationTestMasterConfig() @@ -101,22 +99,33 @@ func TestQuota(t *testing.T) { rm.SetEventRecorder(&record.FakeRecorder{}) go rm.Run(3, controllerCh) - resourceQuotaRegistry := quotainstall.NewRegistry(clientset, nil) - groupKindsToReplenish := []schema.GroupKind{ - api.Kind("Pod"), - } + discoveryFunc := clientset.Discovery().ServerPreferredNamespacedResources + listerFuncForResource := generic.ListerFuncForResourceFunc(informers.ForResource) + qc := quotainstall.NewQuotaConfigurationForControllers(listerFuncForResource) + informersStarted := make(chan struct{}) resourceQuotaControllerOptions := &resourcequotacontroller.ResourceQuotaControllerOptions{ QuotaClient: clientset.Core(), ResourceQuotaInformer: informers.Core().V1().ResourceQuotas(), ResyncPeriod: controller.NoResyncPeriodFunc, - Registry: resourceQuotaRegistry, - GroupKindsToReplenish: groupKindsToReplenish, + InformerFactory: informers, ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc, - ControllerFactory: resourcequotacontroller.NewReplenishmentControllerFactory(informers), + DiscoveryFunc: discoveryFunc, + IgnoredResourcesFunc: qc.IgnoredResources, + InformersStarted: informersStarted, + Registry: generic.NewRegistry(qc.Evaluators()), + } + resourceQuotaController, err := resourcequotacontroller.NewResourceQuotaController(resourceQuotaControllerOptions) + if err != nil { + t.Fatalf("unexpected err: %v", err) } - go resourcequotacontroller.NewResourceQuotaController(resourceQuotaControllerOptions).Run(2, controllerCh) + go resourceQuotaController.Run(2, controllerCh) + + // Periodically the quota controller to detect new resource types + go resourceQuotaController.Sync(discoveryFunc, 30*time.Second, controllerCh) + internalInformers.Start(controllerCh) informers.Start(controllerCh) + close(informersStarted) startTime := time.Now() scale(t, ns2.Name, clientset) @@ -158,7 +167,6 @@ func waitForQuota(t *testing.T, quota *v1.ResourceQuota, clientset *clientset.Cl default: return false, nil } - switch cast := event.Object.(type) { case *v1.ResourceQuota: if len(cast.Status.Hard) > 0 { @@ -254,15 +262,15 @@ func TestQuotaLimitedResourceDenial(t *testing.T) { }, }, } - quotaRegistry := quotainstall.NewRegistry(nil, nil) + qca := quotainstall.NewQuotaConfigurationForAdmission() admission, err := resourcequota.NewResourceQuota(config, 5, admissionCh) if err != nil { t.Fatalf("unexpected error: %v", err) } - admission.(kubeadmission.WantsInternalKubeClientSet).SetInternalKubeClientSet(internalClientset) + admission.SetInternalKubeClientSet(internalClientset) internalInformers := internalinformers.NewSharedInformerFactory(internalClientset, controller.NoResyncPeriodFunc()) - admission.(kubeadmission.WantsInternalKubeInformerFactory).SetInternalKubeInformerFactory(internalInformers) - admission.(kubeadmission.WantsQuotaRegistry).SetQuotaRegistry(quotaRegistry) + admission.SetInternalKubeInformerFactory(internalInformers) + admission.SetQuotaConfiguration(qca) defer close(admissionCh) masterConfig := framework.NewIntegrationTestMasterConfig() @@ -286,22 +294,33 @@ func TestQuotaLimitedResourceDenial(t *testing.T) { rm.SetEventRecorder(&record.FakeRecorder{}) go rm.Run(3, controllerCh) - resourceQuotaRegistry := quotainstall.NewRegistry(clientset, nil) - groupKindsToReplenish := []schema.GroupKind{ - api.Kind("Pod"), - } + discoveryFunc := clientset.Discovery().ServerPreferredNamespacedResources + listerFuncForResource := generic.ListerFuncForResourceFunc(informers.ForResource) + qc := quotainstall.NewQuotaConfigurationForControllers(listerFuncForResource) + informersStarted := make(chan struct{}) resourceQuotaControllerOptions := &resourcequotacontroller.ResourceQuotaControllerOptions{ QuotaClient: clientset.Core(), ResourceQuotaInformer: informers.Core().V1().ResourceQuotas(), ResyncPeriod: controller.NoResyncPeriodFunc, - Registry: resourceQuotaRegistry, - GroupKindsToReplenish: groupKindsToReplenish, + InformerFactory: informers, ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc, - ControllerFactory: resourcequotacontroller.NewReplenishmentControllerFactory(informers), + DiscoveryFunc: discoveryFunc, + IgnoredResourcesFunc: qc.IgnoredResources, + InformersStarted: informersStarted, + Registry: generic.NewRegistry(qc.Evaluators()), + } + resourceQuotaController, err := resourcequotacontroller.NewResourceQuotaController(resourceQuotaControllerOptions) + if err != nil { + t.Fatalf("unexpected err: %v", err) } - go resourcequotacontroller.NewResourceQuotaController(resourceQuotaControllerOptions).Run(2, controllerCh) + go resourceQuotaController.Run(2, controllerCh) + + // Periodically the quota controller to detect new resource types + go resourceQuotaController.Sync(discoveryFunc, 30*time.Second, controllerCh) + internalInformers.Start(controllerCh) informers.Start(controllerCh) + close(informersStarted) // try to create a pod pod := &v1.Pod{ @@ -323,6 +342,7 @@ func TestQuotaLimitedResourceDenial(t *testing.T) { } // now create a covering quota + // note: limited resource does a matchContains, so we now have "pods" matching "pods" and "count/pods" quota := &v1.ResourceQuota{ ObjectMeta: metav1.ObjectMeta{ Name: "quota", @@ -330,7 +350,8 @@ func TestQuotaLimitedResourceDenial(t *testing.T) { }, Spec: v1.ResourceQuotaSpec{ Hard: v1.ResourceList{ - v1.ResourcePods: resource.MustParse("1000"), + v1.ResourcePods: resource.MustParse("1000"), + v1.ResourceName("count/pods"): resource.MustParse("1000"), }, }, } diff --git a/vendor/k8s.io/kubernetes/test/integration/replicaset/replicaset_test.go b/vendor/k8s.io/kubernetes/test/integration/replicaset/replicaset_test.go index fb28316a9..7ad3489c7 100644 --- a/vendor/k8s.io/kubernetes/test/integration/replicaset/replicaset_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/replicaset/replicaset_test.go @@ -115,7 +115,7 @@ func newMatchingPod(podName, namespace string) *v1.Pod { // communication with the API server fails. func verifyRemainingObjects(t *testing.T, clientSet clientset.Interface, namespace string, rsNum, podNum int) (bool, error) { rsClient := clientSet.Extensions().ReplicaSets(namespace) - podClient := clientSet.Core().Pods(namespace) + podClient := clientSet.CoreV1().Pods(namespace) pods, err := podClient.List(metav1.ListOptions{}) if err != nil { return false, fmt.Errorf("Failed to list pods: %v", err) @@ -205,7 +205,7 @@ func createRSsPods(t *testing.T, clientSet clientset.Interface, rss []*v1beta1.R createdRSs = append(createdRSs, createdRS) } for _, pod := range pods { - createdPod, err := clientSet.Core().Pods(pod.Namespace).Create(pod) + createdPod, err := clientSet.CoreV1().Pods(pod.Namespace).Create(pod) if err != nil { t.Fatalf("Failed to create pod %s: %v", pod.Name, err) } @@ -297,7 +297,7 @@ func updateRS(t *testing.T, rsClient typedv1beta1.ReplicaSetInterface, rsName st // Verify ControllerRef of a RS pod that has incorrect attributes is automatically patched by the RS func testPodControllerRefPatch(t *testing.T, c clientset.Interface, pod *v1.Pod, ownerReference *metav1.OwnerReference, rs *v1beta1.ReplicaSet, expectedOwnerReferenceNum int) { ns := rs.Namespace - podClient := c.Core().Pods(ns) + podClient := c.CoreV1().Pods(ns) updatePod(t, podClient, pod.Name, func(pod *v1.Pod) { pod.OwnerReferences = []metav1.OwnerReference{*ownerReference} }) @@ -350,7 +350,7 @@ func setPodsReadyCondition(t *testing.T, clientSet clientset.Interface, pods *v1 } pod.Status.Conditions = append(pod.Status.Conditions, *condition) } - _, err := clientSet.Core().Pods(pod.Namespace).UpdateStatus(pod) + _, err := clientSet.CoreV1().Pods(pod.Namespace).UpdateStatus(pod) if err != nil { // When status fails to be updated, we continue to next pod continue @@ -460,7 +460,7 @@ func TestAdoption(t *testing.T) { defer framework.DeleteTestingNamespace(ns, s, t) rsClient := clientSet.Extensions().ReplicaSets(ns.Name) - podClient := clientSet.Core().Pods(ns.Name) + podClient := clientSet.CoreV1().Pods(ns.Name) const rsName = "rs" rs, err := rsClient.Create(newRS(rsName, ns.Name, 1)) if err != nil { @@ -590,7 +590,7 @@ func TestDeletingAndFailedPods(t *testing.T) { waitRSStable(t, c, rs) // Verify RS creates 2 pods - podClient := c.Core().Pods(ns.Name) + podClient := c.CoreV1().Pods(ns.Name) pods := getPods(t, podClient, labelMap()) if len(pods.Items) != 2 { t.Fatalf("len(pods) = %d, want 2", len(pods.Items)) @@ -602,7 +602,7 @@ func TestDeletingAndFailedPods(t *testing.T) { updatePod(t, podClient, deletingPod.Name, func(pod *v1.Pod) { pod.Finalizers = []string{"fake.example.com/blockDeletion"} }) - if err := c.Core().Pods(ns.Name).Delete(deletingPod.Name, &metav1.DeleteOptions{}); err != nil { + if err := c.CoreV1().Pods(ns.Name).Delete(deletingPod.Name, &metav1.DeleteOptions{}); err != nil { t.Fatalf("Error deleting pod %s: %v", deletingPod.Name, err) } @@ -658,7 +658,7 @@ func TestOverlappingRSs(t *testing.T) { } // Expect 3 total Pods to be created - podClient := c.Core().Pods(ns.Name) + podClient := c.CoreV1().Pods(ns.Name) pods := getPods(t, podClient, labelMap()) if len(pods.Items) != 3 { t.Errorf("len(pods) = %d, want 3", len(pods.Items)) @@ -690,7 +690,7 @@ func TestPodOrphaningAndAdoptionWhenLabelsChange(t *testing.T) { waitRSStable(t, c, rs) // Orphaning: RS should remove OwnerReference from a pod when the pod's labels change to not match its labels - podClient := c.Core().Pods(ns.Name) + podClient := c.CoreV1().Pods(ns.Name) pods := getPods(t, podClient, labelMap()) if len(pods.Items) != 1 { t.Fatalf("len(pods) = %d, want 1", len(pods.Items)) @@ -766,7 +766,7 @@ func TestGeneralPodAdoption(t *testing.T) { rs = rss[0] waitRSStable(t, c, rs) - podClient := c.Core().Pods(ns.Name) + podClient := c.CoreV1().Pods(ns.Name) pods := getPods(t, podClient, labelMap()) if len(pods.Items) != 1 { t.Fatalf("len(pods) = %d, want 1", len(pods.Items)) @@ -804,7 +804,7 @@ func TestReadyAndAvailableReplicas(t *testing.T) { t.Fatalf("Unexpected .Status.AvailableReplicas: Expected 0, saw %d", rs.Status.AvailableReplicas) } - podClient := c.Core().Pods(ns.Name) + podClient := c.CoreV1().Pods(ns.Name) pods := getPods(t, podClient, labelMap()) if len(pods.Items) != 3 { t.Fatalf("len(pods) = %d, want 3", len(pods.Items)) @@ -878,7 +878,7 @@ func TestExtraPodsAdoptionAndDeletion(t *testing.T) { // Verify the extra pod is deleted eventually by determining whether number of // all pods within namespace matches .spec.replicas of the RS (2 in this case) - podClient := c.Core().Pods(ns.Name) + podClient := c.CoreV1().Pods(ns.Name) if err := wait.PollImmediate(interval, timeout, func() (bool, error) { // All pods have labelMap as their labels pods := getPods(t, podClient, labelMap()) @@ -909,7 +909,7 @@ func TestFullyLabeledReplicas(t *testing.T) { }) // Set one of the pods to have extra labels - podClient := c.Core().Pods(ns.Name) + podClient := c.CoreV1().Pods(ns.Name) pods := getPods(t, podClient, labelMap()) if len(pods.Items) != 2 { t.Fatalf("len(pods) = %d, want 2", len(pods.Items)) diff --git a/vendor/k8s.io/kubernetes/test/integration/replicationcontroller/BUILD b/vendor/k8s.io/kubernetes/test/integration/replicationcontroller/BUILD index 010661969..a240fd57e 100644 --- a/vendor/k8s.io/kubernetes/test/integration/replicationcontroller/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/replicationcontroller/BUILD @@ -15,16 +15,21 @@ go_test( importpath = "k8s.io/kubernetes/test/integration/replicationcontroller", tags = ["integration"], deps = [ + "//pkg/api/v1/pod:go_default_library", "//pkg/controller/replication:go_default_library", "//test/integration/framework: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/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", + "//vendor/k8s.io/client-go/util/retry:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/test/integration/replicationcontroller/replicationcontroller_test.go b/vendor/k8s.io/kubernetes/test/integration/replicationcontroller/replicationcontroller_test.go index 7773da152..5564b22f5 100644 --- a/vendor/k8s.io/kubernetes/test/integration/replicationcontroller/replicationcontroller_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/replicationcontroller/replicationcontroller_test.go @@ -24,19 +24,29 @@ import ( "time" "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/informers" clientset "k8s.io/client-go/kubernetes" + typedv1 "k8s.io/client-go/kubernetes/typed/core/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" + "k8s.io/client-go/util/retry" + podutil "k8s.io/kubernetes/pkg/api/v1/pod" "k8s.io/kubernetes/pkg/controller/replication" "k8s.io/kubernetes/test/integration/framework" ) -func testLabels() map[string]string { - return map[string]string{"name": "test"} +const ( + interval = 100 * time.Millisecond + timeout = 60 * time.Second +) + +func labelMap() map[string]string { + return map[string]string{"foo": "bar"} } func newRC(name, namespace string, replicas int) *v1.ReplicationController { @@ -51,11 +61,11 @@ func newRC(name, namespace string, replicas int) *v1.ReplicationController { Name: name, }, Spec: v1.ReplicationControllerSpec{ - Selector: testLabels(), + Selector: labelMap(), Replicas: &replicasCopy, Template: &v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ - Labels: testLabels(), + Labels: labelMap(), }, Spec: v1.PodSpec{ Containers: []v1.Container{ @@ -79,7 +89,7 @@ func newMatchingPod(podName, namespace string) *v1.Pod { ObjectMeta: metav1.ObjectMeta{ Name: podName, Namespace: namespace, - Labels: testLabels(), + Labels: labelMap(), }, Spec: v1.PodSpec{ Containers: []v1.Container{ @@ -99,8 +109,8 @@ func newMatchingPod(podName, namespace string) *v1.Pod { // controllers and pods are rcNum and podNum. It returns error if the // communication with the API server fails. func verifyRemainingObjects(t *testing.T, clientSet clientset.Interface, namespace string, rcNum, podNum int) (bool, error) { - rcClient := clientSet.Core().ReplicationControllers(namespace) - podClient := clientSet.Core().Pods(namespace) + rcClient := clientSet.CoreV1().ReplicationControllers(namespace) + podClient := clientSet.CoreV1().Pods(namespace) pods, err := podClient.List(metav1.ListOptions{}) if err != nil { return false, fmt.Errorf("Failed to list pods: %v", err) @@ -121,7 +131,7 @@ func verifyRemainingObjects(t *testing.T, clientSet clientset.Interface, namespa return ret, nil } -func rmSetup(t *testing.T, stopCh chan struct{}) (*httptest.Server, framework.CloseFunc, *replication.ReplicationManager, informers.SharedInformerFactory, clientset.Interface) { +func rmSetup(t *testing.T) (*httptest.Server, framework.CloseFunc, *replication.ReplicationManager, informers.SharedInformerFactory, clientset.Interface) { masterConfig := framework.NewIntegrationTestMasterConfig() _, s, closeFn := framework.RunAMaster(masterConfig) @@ -131,27 +141,259 @@ func rmSetup(t *testing.T, stopCh chan struct{}) (*httptest.Server, framework.Cl t.Fatalf("Error in create clientset: %v", err) } resyncPeriod := 12 * time.Hour + informers := informers.NewSharedInformerFactory(clientset.NewForConfigOrDie(restclient.AddUserAgent(&config, "rc-informers")), resyncPeriod) - informers := informers.NewSharedInformerFactory(clientSet, resyncPeriod) - rm := replication.NewReplicationManager(informers.Core().V1().Pods(), informers.Core().V1().ReplicationControllers(), clientSet, replication.BurstReplicas) - informers.Start(stopCh) + rm := replication.NewReplicationManager( + informers.Core().V1().Pods(), + informers.Core().V1().ReplicationControllers(), + clientset.NewForConfigOrDie(restclient.AddUserAgent(&config, "replication-controller")), + replication.BurstReplicas, + ) + if err != nil { + t.Fatalf("Failed to create replication controller") + } return s, closeFn, rm, informers, clientSet } +func rmSimpleSetup(t *testing.T) (*httptest.Server, framework.CloseFunc, clientset.Interface) { + masterConfig := framework.NewIntegrationTestMasterConfig() + _, s, closeFn := framework.RunAMaster(masterConfig) + + config := restclient.Config{Host: s.URL} + clientSet, err := clientset.NewForConfig(&config) + if err != nil { + t.Fatalf("Error in create clientset: %v", err) + } + return s, closeFn, clientSet +} + +// Run RC controller and informers +func runControllerAndInformers(t *testing.T, rm *replication.ReplicationManager, informers informers.SharedInformerFactory, podNum int) chan struct{} { + stopCh := make(chan struct{}) + informers.Start(stopCh) + waitToObservePods(t, informers.Core().V1().Pods().Informer(), podNum) + go rm.Run(5, stopCh) + return stopCh +} + // wait for the podInformer to observe the pods. Call this function before -// running the RC manager to prevent the rc manager from creating new pods +// running the RC controller to prevent the rc manager from creating new pods // rather than adopting the existing ones. func waitToObservePods(t *testing.T, podInformer cache.SharedIndexInformer, podNum int) { - if err := wait.Poll(10*time.Second, 60*time.Second, func() (bool, error) { + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { objects := podInformer.GetIndexer().List() - if len(objects) == podNum { - return true, nil - } else { - return false, nil + return len(objects) == podNum, nil + }); err != nil { + t.Fatalf("Error encountered when waiting for podInformer to observe the pods: %v", err) + } +} + +func createRCsPods(t *testing.T, clientSet clientset.Interface, rcs []*v1.ReplicationController, pods []*v1.Pod) ([]*v1.ReplicationController, []*v1.Pod) { + var createdRCs []*v1.ReplicationController + var createdPods []*v1.Pod + for _, rc := range rcs { + createdRC, err := clientSet.CoreV1().ReplicationControllers(rc.Namespace).Create(rc) + if err != nil { + t.Fatalf("Failed to create replication controller %s: %v", rc.Name, err) + } + createdRCs = append(createdRCs, createdRC) + } + for _, pod := range pods { + createdPod, err := clientSet.CoreV1().Pods(pod.Namespace).Create(pod) + if err != nil { + t.Fatalf("Failed to create pod %s: %v", pod.Name, err) + } + createdPods = append(createdPods, createdPod) + } + + return createdRCs, createdPods +} + +// Verify .Status.Replicas is equal to .Spec.Replicas +func waitRCStable(t *testing.T, clientSet clientset.Interface, rc *v1.ReplicationController) { + rcClient := clientSet.CoreV1().ReplicationControllers(rc.Namespace) + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + newRC, err := rcClient.Get(rc.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } + return newRC.Status.Replicas == *rc.Spec.Replicas, nil + }); err != nil { + t.Fatalf("Failed to verify .Status.Replicas is equal to .Spec.Replicas for rc %s: %v", rc.Name, err) + } +} + +// Update .Spec.Replicas to replicas and verify .Status.Replicas is changed accordingly +func scaleRC(t *testing.T, c clientset.Interface, rc *v1.ReplicationController, replicas int32) { + rcClient := c.CoreV1().ReplicationControllers(rc.Namespace) + rc = updateRC(t, rcClient, rc.Name, func(rc *v1.ReplicationController) { + *rc.Spec.Replicas = replicas + }) + waitRCStable(t, c, rc) +} + +func updatePod(t *testing.T, podClient typedv1.PodInterface, podName string, updateFunc func(*v1.Pod)) *v1.Pod { + var pod *v1.Pod + if err := retry.RetryOnConflict(retry.DefaultBackoff, func() error { + newPod, err := podClient.Get(podName, metav1.GetOptions{}) + if err != nil { + return err + } + updateFunc(newPod) + pod, err = podClient.Update(newPod) + return err + }); err != nil { + t.Fatalf("Failed to update pod %s: %v", podName, err) + } + return pod +} + +func updatePodStatus(t *testing.T, podClient typedv1.PodInterface, pod *v1.Pod, updateStatusFunc func(*v1.Pod)) { + if err := retry.RetryOnConflict(retry.DefaultBackoff, func() error { + newPod, err := podClient.Get(pod.Name, metav1.GetOptions{}) + if err != nil { + return err } + updateStatusFunc(newPod) + _, err = podClient.UpdateStatus(newPod) + return err }); err != nil { - t.Fatal(err) + t.Fatalf("Failed to update status of pod %s: %v", pod.Name, err) + } +} + +func getPods(t *testing.T, podClient typedv1.PodInterface, labelMap map[string]string) *v1.PodList { + podSelector := labels.Set(labelMap).AsSelector() + options := metav1.ListOptions{LabelSelector: podSelector.String()} + pods, err := podClient.List(options) + if err != nil { + t.Fatalf("Failed obtaining a list of pods that match the pod labels %v: %v", labelMap, err) + } + return pods +} + +func updateRC(t *testing.T, rcClient typedv1.ReplicationControllerInterface, rcName string, updateFunc func(*v1.ReplicationController)) *v1.ReplicationController { + var rc *v1.ReplicationController + if err := retry.RetryOnConflict(retry.DefaultBackoff, func() error { + newRC, err := rcClient.Get(rcName, metav1.GetOptions{}) + if err != nil { + return err + } + updateFunc(newRC) + rc, err = rcClient.Update(newRC) + return err + }); err != nil { + t.Fatalf("Failed to update rc %s: %v", rcName, err) + } + return rc +} + +// Verify ControllerRef of a RC pod that has incorrect attributes is automatically patched by the RC +func testPodControllerRefPatch(t *testing.T, c clientset.Interface, pod *v1.Pod, ownerReference *metav1.OwnerReference, rc *v1.ReplicationController, expectedOwnerReferenceNum int) { + ns := rc.Namespace + podClient := c.CoreV1().Pods(ns) + updatePod(t, podClient, pod.Name, func(pod *v1.Pod) { + pod.OwnerReferences = []metav1.OwnerReference{*ownerReference} + }) + + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + newPod, err := podClient.Get(pod.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } + return metav1.GetControllerOf(newPod) != nil, nil + }); err != nil { + t.Fatalf("Failed to verify ControllerRef for the pod %s is not nil: %v", pod.Name, err) + } + + newPod, err := podClient.Get(pod.Name, metav1.GetOptions{}) + if err != nil { + t.Fatalf("Failed to obtain pod %s: %v", pod.Name, err) + } + controllerRef := metav1.GetControllerOf(newPod) + if controllerRef.UID != rc.UID { + t.Fatalf("RC owner of the pod %s has a different UID: Expected %v, got %v", newPod.Name, rc.UID, controllerRef.UID) + } + ownerReferenceNum := len(newPod.GetOwnerReferences()) + if ownerReferenceNum != expectedOwnerReferenceNum { + t.Fatalf("Unexpected number of owner references for pod %s: Expected %d, got %d", newPod.Name, expectedOwnerReferenceNum, ownerReferenceNum) + } +} + +func setPodsReadyCondition(t *testing.T, clientSet clientset.Interface, pods *v1.PodList, conditionStatus v1.ConditionStatus, lastTransitionTime time.Time) { + replicas := int32(len(pods.Items)) + var readyPods int32 + err := wait.PollImmediate(interval, timeout, func() (bool, error) { + readyPods = 0 + for i := range pods.Items { + pod := &pods.Items[i] + if podutil.IsPodReady(pod) { + readyPods++ + continue + } + pod.Status.Phase = v1.PodRunning + _, condition := podutil.GetPodCondition(&pod.Status, v1.PodReady) + if condition != nil { + condition.Status = conditionStatus + condition.LastTransitionTime = metav1.Time{Time: lastTransitionTime} + } else { + condition = &v1.PodCondition{ + Type: v1.PodReady, + Status: conditionStatus, + LastTransitionTime: metav1.Time{Time: lastTransitionTime}, + } + pod.Status.Conditions = append(pod.Status.Conditions, *condition) + } + _, err := clientSet.CoreV1().Pods(pod.Namespace).UpdateStatus(pod) + if err != nil { + // When status fails to be updated, we continue to next pod + continue + } + readyPods++ + } + return readyPods >= replicas, nil + }) + if err != nil { + t.Fatalf("failed to mark all ReplicationController pods to ready: %v", err) + } +} + +func testScalingUsingScaleSubresource(t *testing.T, c clientset.Interface, rc *v1.ReplicationController, replicas int32) { + ns := rc.Namespace + rcClient := c.CoreV1().ReplicationControllers(ns) + newRC, err := rcClient.Get(rc.Name, metav1.GetOptions{}) + if err != nil { + t.Fatalf("Failed to obtain rc %s: %v", rc.Name, err) + } + kind := "ReplicationController" + scaleClient := c.ExtensionsV1beta1().Scales(ns) + scale, err := scaleClient.Get(kind, rc.Name) + if err != nil { + t.Fatalf("Failed to obtain scale subresource for rc %s: %v", rc.Name, err) + } + if scale.Spec.Replicas != *newRC.Spec.Replicas { + t.Fatalf("Scale subresource for rc %s does not match .Spec.Replicas: expected %d, got %d", rc.Name, *newRC.Spec.Replicas, scale.Spec.Replicas) + } + + if err := retry.RetryOnConflict(retry.DefaultBackoff, func() error { + scale, err := scaleClient.Get(kind, rc.Name) + if err != nil { + return err + } + scale.Spec.Replicas = replicas + _, err = scaleClient.Update(kind, scale) + return err + }); err != nil { + t.Fatalf("Failed to set .Spec.Replicas of scale subresource for rc %s: %v", rc.Name, err) + } + + newRC, err = rcClient.Get(rc.Name, metav1.GetOptions{}) + if err != nil { + t.Fatalf("Failed to obtain rc %s: %v", rc.Name, err) + } + if *newRC.Spec.Replicas != replicas { + t.Fatalf(".Spec.Replicas of rc %s does not match its scale subresource: expected %d, got %d", rc.Name, replicas, *newRC.Spec.Replicas) } } @@ -206,243 +448,440 @@ func TestAdoption(t *testing.T) { }, } for i, tc := range testCases { - stopCh := make(chan struct{}) - s, closeFn, rm, informers, clientSet := rmSetup(t, stopCh) - defer closeFn() - ns := framework.CreateTestingNamespace(fmt.Sprintf("adoption-%d", i), s, t) - defer framework.DeleteTestingNamespace(ns, s, t) - - rcClient := clientSet.Core().ReplicationControllers(ns.Name) - podClient := clientSet.Core().Pods(ns.Name) - const rcName = "rc" - rc, err := rcClient.Create(newRC(rcName, ns.Name, 1)) - if err != nil { - t.Fatalf("Failed to create replication controller: %v", err) - } - podName := fmt.Sprintf("pod%d", i) - pod := newMatchingPod(podName, ns.Name) - pod.OwnerReferences = tc.existingOwnerReferences(rc) - _, err = podClient.Create(pod) - if err != nil { - t.Fatalf("Failed to create Pod: %v", err) - } - - informers.Start(stopCh) - waitToObservePods(t, informers.Core().V1().Pods().Informer(), 1) - go rm.Run(5, stopCh) - if err := wait.Poll(10*time.Second, 60*time.Second, func() (bool, error) { - updatedPod, err := podClient.Get(pod.Name, metav1.GetOptions{}) + func() { + s, closeFn, rm, informers, clientSet := rmSetup(t) + defer closeFn() + ns := framework.CreateTestingNamespace(fmt.Sprintf("rc-adoption-%d", i), s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + + rcClient := clientSet.CoreV1().ReplicationControllers(ns.Name) + podClient := clientSet.CoreV1().Pods(ns.Name) + const rcName = "rc" + rc, err := rcClient.Create(newRC(rcName, ns.Name, 1)) if err != nil { - return false, err + t.Fatalf("Failed to create replication controllers: %v", err) } - if e, a := tc.expectedOwnerReferences(rc), updatedPod.OwnerReferences; reflect.DeepEqual(e, a) { - return true, nil - } else { - t.Logf("ownerReferences don't match, expect %v, got %v", e, a) - return false, nil + podName := fmt.Sprintf("pod%d", i) + pod := newMatchingPod(podName, ns.Name) + pod.OwnerReferences = tc.existingOwnerReferences(rc) + _, err = podClient.Create(pod) + if err != nil { + t.Fatalf("Failed to create Pod: %v", err) } - }); err != nil { - t.Fatalf("test %q failed: %v", tc.name, err) - } - close(stopCh) + + stopCh := runControllerAndInformers(t, rm, informers, 1) + defer close(stopCh) + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + updatedPod, err := podClient.Get(pod.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } + if e, a := tc.expectedOwnerReferences(rc), updatedPod.OwnerReferences; reflect.DeepEqual(e, a) { + return true, nil + } else { + t.Logf("ownerReferences don't match, expect %v, got %v", e, a) + return false, nil + } + }); err != nil { + t.Fatalf("test %q failed: %v", tc.name, err) + } + }() } } -func createRCsPods(t *testing.T, clientSet clientset.Interface, rcs []*v1.ReplicationController, pods []*v1.Pod, ns string) { - rcClient := clientSet.Core().ReplicationControllers(ns) - podClient := clientSet.Core().Pods(ns) - for _, rc := range rcs { - if _, err := rcClient.Create(rc); err != nil { - t.Fatalf("Failed to create replication controller %s: %v", rc.Name, err) - } - } - for _, pod := range pods { - if _, err := podClient.Create(pod); err != nil { - t.Fatalf("Failed to create pod %s: %v", pod.Name, err) - } +func TestSpecReplicasChange(t *testing.T) { + s, closeFn, rm, informers, c := rmSetup(t) + defer closeFn() + ns := framework.CreateTestingNamespace("test-spec-replicas-change", s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + stopCh := runControllerAndInformers(t, rm, informers, 0) + defer close(stopCh) + + rc := newRC("rc", ns.Name, 2) + rcs, _ := createRCsPods(t, c, []*v1.ReplicationController{rc}, []*v1.Pod{}) + rc = rcs[0] + waitRCStable(t, c, rc) + + // Update .Spec.Replicas and verify .Status.Replicas is changed accordingly + scaleRC(t, c, rc, 3) + scaleRC(t, c, rc, 0) + scaleRC(t, c, rc, 2) + + // Add a template annotation change to test RC's status does update + // without .Spec.Replicas change + rcClient := c.CoreV1().ReplicationControllers(ns.Name) + var oldGeneration int64 + newRC := updateRC(t, rcClient, rc.Name, func(rc *v1.ReplicationController) { + oldGeneration = rc.Generation + rc.Spec.Template.Annotations = map[string]string{"test": "annotation"} + }) + savedGeneration := newRC.Generation + if savedGeneration == oldGeneration { + t.Fatalf("Failed to verify .Generation has incremented for rc %s", rc.Name) } -} -func waitRCStable(t *testing.T, clientSet clientset.Interface, rc *v1.ReplicationController, ns string) { - rcClient := clientSet.Core().ReplicationControllers(ns) - if err := wait.Poll(10*time.Second, 60*time.Second, func() (bool, error) { - updatedRC, err := rcClient.Get(rc.Name, metav1.GetOptions{}) + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + newRC, err := rcClient.Get(rc.Name, metav1.GetOptions{}) if err != nil { return false, err } - if updatedRC.Status.Replicas != *rc.Spec.Replicas { - return false, nil - } else { - return true, nil - } + return newRC.Status.ObservedGeneration >= savedGeneration, nil }); err != nil { - t.Fatal(err) + t.Fatalf("Failed to verify .Status.ObservedGeneration has incremented for rc %s: %v", rc.Name, err) } } -func TestUpdateSelectorToAdopt(t *testing.T) { - // We have pod1, pod2 and rc. rc.spec.replicas=1. At first rc.Selector - // matches pod1 only; change the selector to match pod2 as well. Verify - // there is only one pod left. - stopCh := make(chan struct{}) - s, closeFn, rm, _, clientSet := rmSetup(t, stopCh) +func TestDeletingAndFailedPods(t *testing.T) { + s, closeFn, rm, informers, c := rmSetup(t) defer closeFn() - ns := framework.CreateTestingNamespace("update-selector-to-adopt", s, t) + ns := framework.CreateTestingNamespace("test-deleting-and-failed-pods", s, t) defer framework.DeleteTestingNamespace(ns, s, t) - rc := newRC("rc", ns.Name, 1) - // let rc's selector only match pod1 - rc.Spec.Selector["uniqueKey"] = "1" - rc.Spec.Template.Labels["uniqueKey"] = "1" - pod1 := newMatchingPod("pod1", ns.Name) - pod1.Labels["uniqueKey"] = "1" - pod2 := newMatchingPod("pod2", ns.Name) - pod2.Labels["uniqueKey"] = "2" - createRCsPods(t, clientSet, []*v1.ReplicationController{rc}, []*v1.Pod{pod1, pod2}, ns.Name) + stopCh := runControllerAndInformers(t, rm, informers, 0) + defer close(stopCh) - go rm.Run(5, stopCh) - waitRCStable(t, clientSet, rc, ns.Name) + rc := newRC("rc", ns.Name, 2) + rcs, _ := createRCsPods(t, c, []*v1.ReplicationController{rc}, []*v1.Pod{}) + rc = rcs[0] + waitRCStable(t, c, rc) + + // Verify RC creates 2 pods + podClient := c.CoreV1().Pods(ns.Name) + pods := getPods(t, podClient, labelMap()) + if len(pods.Items) != 2 { + t.Fatalf("len(pods) = %d, want 2", len(pods.Items)) + } - // change the rc's selector to match both pods - patch := `{"spec":{"selector":{"uniqueKey":null}}}` - rcClient := clientSet.Core().ReplicationControllers(ns.Name) - rc, err := rcClient.Patch(rc.Name, types.StrategicMergePatchType, []byte(patch)) - if err != nil { - t.Fatalf("Failed to patch replication controller: %v", err) + // Set first pod as deleting pod + // Set finalizers for the pod to simulate pending deletion status + deletingPod := &pods.Items[0] + updatePod(t, podClient, deletingPod.Name, func(pod *v1.Pod) { + pod.Finalizers = []string{"fake.example.com/blockDeletion"} + }) + if err := c.CoreV1().Pods(ns.Name).Delete(deletingPod.Name, &metav1.DeleteOptions{}); err != nil { + t.Fatalf("Error deleting pod %s: %v", deletingPod.Name, err) } - t.Logf("patched rc = %#v", rc) - // wait for the rc select both pods and delete one of them - if err := wait.Poll(10*time.Second, 60*time.Second, func() (bool, error) { - return verifyRemainingObjects(t, clientSet, ns.Name, 1, 1) + + // Set second pod as failed pod + failedPod := &pods.Items[1] + updatePodStatus(t, podClient, failedPod, func(pod *v1.Pod) { + pod.Status.Phase = v1.PodFailed + }) + + // Pool until 2 new pods have been created to replace deleting and failed pods + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + pods = getPods(t, podClient, labelMap()) + return len(pods.Items) == 4, nil }); err != nil { - t.Fatal(err) + t.Fatalf("Failed to verify 2 new pods have been created (expected 4 pods): %v", err) + } + + // Verify deleting and failed pods are among the four pods + foundDeletingPod := false + foundFailedPod := false + for _, pod := range pods.Items { + if pod.UID == deletingPod.UID { + foundDeletingPod = true + } + if pod.UID == failedPod.UID { + foundFailedPod = true + } + } + // Verify deleting pod exists + if !foundDeletingPod { + t.Fatalf("expected deleting pod %s exists, but it is not found", deletingPod.Name) + } + // Verify failed pod exists + if !foundFailedPod { + t.Fatalf("expected failed pod %s exists, but it is not found", failedPod.Name) } - close(stopCh) } -func TestUpdateSelectorToRemoveControllerRef(t *testing.T) { - // We have pod1, pod2 and rc. rc.spec.replicas=2. At first rc.Selector - // matches pod1 and pod2; change the selector to match only pod1. Verify - // that rc creates one more pod, so there are 3 pods. Also verify that - // pod2's controllerRef is cleared. - stopCh := make(chan struct{}) - s, closeFn, rm, informers, clientSet := rmSetup(t, stopCh) +func TestOverlappingRCs(t *testing.T) { + s, closeFn, rm, informers, c := rmSetup(t) defer closeFn() - ns := framework.CreateTestingNamespace("update-selector-to-remove-controllerref", s, t) + ns := framework.CreateTestingNamespace("test-overlapping-rcs", s, t) defer framework.DeleteTestingNamespace(ns, s, t) - rc := newRC("rc", ns.Name, 2) - pod1 := newMatchingPod("pod1", ns.Name) - pod1.Labels["uniqueKey"] = "1" - pod2 := newMatchingPod("pod2", ns.Name) - pod2.Labels["uniqueKey"] = "2" - createRCsPods(t, clientSet, []*v1.ReplicationController{rc}, []*v1.Pod{pod1, pod2}, ns.Name) + stopCh := runControllerAndInformers(t, rm, informers, 0) + defer close(stopCh) + + // Create 2 RCs with identical selectors + for i := 0; i < 2; i++ { + // One RC has 1 replica, and another has 2 replicas + rc := newRC(fmt.Sprintf("rc-%d", i+1), ns.Name, i+1) + rcs, _ := createRCsPods(t, c, []*v1.ReplicationController{rc}, []*v1.Pod{}) + waitRCStable(t, c, rcs[0]) + } - waitToObservePods(t, informers.Core().V1().Pods().Informer(), 2) - go rm.Run(5, stopCh) - waitRCStable(t, clientSet, rc, ns.Name) + // Expect 3 total Pods to be created + podClient := c.CoreV1().Pods(ns.Name) + pods := getPods(t, podClient, labelMap()) + if len(pods.Items) != 3 { + t.Errorf("len(pods) = %d, want 3", len(pods.Items)) + } - // change the rc's selector to match both pods - patch := `{"spec":{"selector":{"uniqueKey":"1"},"template":{"metadata":{"labels":{"uniqueKey":"1"}}}}}` - rcClient := clientSet.Core().ReplicationControllers(ns.Name) - rc, err := rcClient.Patch(rc.Name, types.StrategicMergePatchType, []byte(patch)) - if err != nil { - t.Fatalf("Failed to patch replication controller: %v", err) + // Expect both RCs have .status.replicas = .spec.replicas + for i := 0; i < 2; i++ { + newRC, err := c.CoreV1().ReplicationControllers(ns.Name).Get(fmt.Sprintf("rc-%d", i+1), metav1.GetOptions{}) + if err != nil { + t.Fatalf("failed to obtain rc rc-%d: %v", i+1, err) + } + if newRC.Status.Replicas != *newRC.Spec.Replicas { + t.Fatalf(".Status.Replicas %d is not equal to .Spec.Replicas %d", newRC.Status.Replicas, *newRC.Spec.Replicas) + } + } +} + +func TestPodOrphaningAndAdoptionWhenLabelsChange(t *testing.T) { + s, closeFn, rm, informers, c := rmSetup(t) + defer closeFn() + ns := framework.CreateTestingNamespace("test-pod-orphaning-and-adoption-when-labels-change", s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + stopCh := runControllerAndInformers(t, rm, informers, 0) + defer close(stopCh) + + rc := newRC("rc", ns.Name, 1) + rcs, _ := createRCsPods(t, c, []*v1.ReplicationController{rc}, []*v1.Pod{}) + rc = rcs[0] + waitRCStable(t, c, rc) + + // Orphaning: RC should remove OwnerReference from a pod when the pod's labels change to not match its labels + podClient := c.CoreV1().Pods(ns.Name) + pods := getPods(t, podClient, labelMap()) + if len(pods.Items) != 1 { + t.Fatalf("len(pods) = %d, want 1", len(pods.Items)) } - t.Logf("patched rc = %#v", rc) - // wait for the rc to create one more pod - if err := wait.Poll(10*time.Second, 60*time.Second, func() (bool, error) { - return verifyRemainingObjects(t, clientSet, ns.Name, 1, 3) + pod := &pods.Items[0] + + // Start by verifying ControllerRef for the pod is not nil + if metav1.GetControllerOf(pod) == nil { + t.Fatalf("ControllerRef of pod %s is nil", pod.Name) + } + newLabelMap := map[string]string{"new-foo": "new-bar"} + updatePod(t, podClient, pod.Name, func(pod *v1.Pod) { + pod.Labels = newLabelMap + }) + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + newPod, err := podClient.Get(pod.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } + pod = newPod + return metav1.GetControllerOf(newPod) == nil, nil }); err != nil { - t.Fatal(err) + t.Fatalf("Failed to verify ControllerRef for the pod %s is nil: %v", pod.Name, err) } - podClient := clientSet.Core().Pods(ns.Name) - pod2, err = podClient.Get(pod2.Name, metav1.GetOptions{}) - if err != nil { - t.Fatalf("Failed to get pod2: %v", err) + + // Adoption: RC should add ControllerRef to a pod when the pod's labels change to match its labels + updatePod(t, podClient, pod.Name, func(pod *v1.Pod) { + pod.Labels = labelMap() + }) + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + newPod, err := podClient.Get(pod.Name, metav1.GetOptions{}) + if err != nil { + // If the pod is not found, it means the RC picks the pod for deletion (it is extra) + // Verify there is only one pod in namespace and it has ControllerRef to the RC + if errors.IsNotFound(err) { + pods := getPods(t, podClient, labelMap()) + if len(pods.Items) != 1 { + return false, fmt.Errorf("Expected 1 pod in current namespace, got %d", len(pods.Items)) + } + // Set the pod accordingly + pod = &pods.Items[0] + return true, nil + } + return false, err + } + // Always update the pod so that we can save a GET call to API server later + pod = newPod + // If the pod is found, verify the pod has a ControllerRef + return metav1.GetControllerOf(newPod) != nil, nil + }); err != nil { + t.Fatalf("Failed to verify ControllerRef for pod %s is not nil: %v", pod.Name, err) } - if len(pod2.OwnerReferences) != 0 { - t.Fatalf("ownerReferences of pod2 is not cleared, got %#v", pod2.OwnerReferences) + // Verify the pod has a ControllerRef to the RC + // Do nothing if the pod is nil (i.e., has been picked for deletion) + if pod != nil { + controllerRef := metav1.GetControllerOf(pod) + if controllerRef.UID != rc.UID { + t.Fatalf("RC owner of the pod %s has a different UID: Expected %v, got %v", pod.Name, rc.UID, controllerRef.UID) + } } - close(stopCh) } -func TestUpdateLabelToRemoveControllerRef(t *testing.T) { - // We have pod1, pod2 and rc. rc.spec.replicas=2. At first rc.Selector - // matches pod1 and pod2; change pod2's labels to non-matching. Verify - // that rc creates one more pod, so there are 3 pods. Also verify that - // pod2's controllerRef is cleared. - stopCh := make(chan struct{}) - s, closeFn, rm, _, clientSet := rmSetup(t, stopCh) +func TestGeneralPodAdoption(t *testing.T) { + s, closeFn, rm, informers, c := rmSetup(t) defer closeFn() - ns := framework.CreateTestingNamespace("update-label-to-remove-controllerref", s, t) + ns := framework.CreateTestingNamespace("test-general-pod-adoption", s, t) defer framework.DeleteTestingNamespace(ns, s, t) - rc := newRC("rc", ns.Name, 2) - pod1 := newMatchingPod("pod1", ns.Name) - pod2 := newMatchingPod("pod2", ns.Name) - createRCsPods(t, clientSet, []*v1.ReplicationController{rc}, []*v1.Pod{pod1, pod2}, ns.Name) + stopCh := runControllerAndInformers(t, rm, informers, 0) + defer close(stopCh) - go rm.Run(5, stopCh) - waitRCStable(t, clientSet, rc, ns.Name) - - // change the rc's selector to match both pods - patch := `{"metadata":{"labels":{"name":null}}}` - podClient := clientSet.Core().Pods(ns.Name) - pod2, err := podClient.Patch(pod2.Name, types.StrategicMergePatchType, []byte(patch)) - if err != nil { - t.Fatalf("Failed to patch pod2: %v", err) + rc := newRC("rc", ns.Name, 1) + rcs, _ := createRCsPods(t, c, []*v1.ReplicationController{rc}, []*v1.Pod{}) + rc = rcs[0] + waitRCStable(t, c, rc) + + podClient := c.CoreV1().Pods(ns.Name) + pods := getPods(t, podClient, labelMap()) + if len(pods.Items) != 1 { + t.Fatalf("len(pods) = %d, want 1", len(pods.Items)) } - t.Logf("patched pod2 = %#v", pod2) - // wait for the rc to create one more pod - if err := wait.Poll(10*time.Second, 60*time.Second, func() (bool, error) { - return verifyRemainingObjects(t, clientSet, ns.Name, 1, 3) - }); err != nil { - t.Fatal(err) + pod := &pods.Items[0] + var falseVar = false + + // When the only OwnerReference of the pod points to another type of API object such as statefulset + // with Controller=false, the RC should add a second OwnerReference (ControllerRef) pointing to itself + // with Controller=true + ownerReference := metav1.OwnerReference{UID: uuid.NewUUID(), APIVersion: "apps/v1beta1", Kind: "StatefulSet", Name: rc.Name, Controller: &falseVar} + testPodControllerRefPatch(t, c, pod, &ownerReference, rc, 2) + + // When the only OwnerReference of the pod points to the RC, but Controller=false + ownerReference = metav1.OwnerReference{UID: rc.UID, APIVersion: "v1", Kind: "ReplicationController", Name: rc.Name, Controller: &falseVar} + testPodControllerRefPatch(t, c, pod, &ownerReference, rc, 1) +} + +func TestReadyAndAvailableReplicas(t *testing.T) { + s, closeFn, rm, informers, c := rmSetup(t) + defer closeFn() + ns := framework.CreateTestingNamespace("test-ready-and-available-replicas", s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + stopCh := runControllerAndInformers(t, rm, informers, 0) + defer close(stopCh) + + rc := newRC("rc", ns.Name, 3) + rc.Spec.MinReadySeconds = 3600 + rcs, _ := createRCsPods(t, c, []*v1.ReplicationController{rc}, []*v1.Pod{}) + rc = rcs[0] + waitRCStable(t, c, rc) + + // First verify no pod is available + if rc.Status.AvailableReplicas != 0 { + t.Fatalf("Unexpected .Status.AvailableReplicas: Expected 0, saw %d", rc.Status.AvailableReplicas) } - pod2, err = podClient.Get(pod2.Name, metav1.GetOptions{}) - if err != nil { - t.Fatalf("Failed to get pod2: %v", err) + + podClient := c.CoreV1().Pods(ns.Name) + pods := getPods(t, podClient, labelMap()) + if len(pods.Items) != 3 { + t.Fatalf("len(pods) = %d, want 3", len(pods.Items)) } - if len(pod2.OwnerReferences) != 0 { - t.Fatalf("ownerReferences of pod2 is not cleared, got %#v", pod2.OwnerReferences) + + // Separate 3 pods into their own list + firstPodList := &v1.PodList{Items: pods.Items[:1]} + secondPodList := &v1.PodList{Items: pods.Items[1:2]} + thirdPodList := &v1.PodList{Items: pods.Items[2:]} + // First pod: Running, but not Ready + // by setting the Ready condition to false with LastTransitionTime to be now + setPodsReadyCondition(t, c, firstPodList, v1.ConditionFalse, time.Now()) + // Second pod: Running and Ready, but not Available + // by setting LastTransitionTime to now + setPodsReadyCondition(t, c, secondPodList, v1.ConditionTrue, time.Now()) + // Third pod: Running, Ready, and Available + // by setting LastTransitionTime to more than 3600 seconds ago + setPodsReadyCondition(t, c, thirdPodList, v1.ConditionTrue, time.Now().Add(-120*time.Minute)) + + rcClient := c.CoreV1().ReplicationControllers(ns.Name) + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + newRC, err := rcClient.Get(rc.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } + // Verify 3 pods exist, 2 pods are Ready, and 1 pod is Available + return newRC.Status.Replicas == 3 && newRC.Status.ReadyReplicas == 2 && newRC.Status.AvailableReplicas == 1, nil + }); err != nil { + t.Fatalf("Failed to verify number of Replicas, ReadyReplicas and AvailableReplicas of rc %s to be as expected: %v", rc.Name, err) } - close(stopCh) } -func TestUpdateLabelToBeAdopted(t *testing.T) { - // We have pod1, pod2 and rc. rc.spec.replicas=1. At first rc.Selector - // matches pod1 only; change pod2's labels to be matching. Verify the RC - // controller adopts pod2 and delete one of them, so there is only 1 pod - // left. - stopCh := make(chan struct{}) - s, closeFn, rm, _, clientSet := rmSetup(t, stopCh) +func TestRCScaleSubresource(t *testing.T) { + s, closeFn, rm, informers, c := rmSetup(t) defer closeFn() - ns := framework.CreateTestingNamespace("update-label-to-be-adopted", s, t) + ns := framework.CreateTestingNamespace("test-rc-scale-subresource", s, t) defer framework.DeleteTestingNamespace(ns, s, t) + stopCh := runControllerAndInformers(t, rm, informers, 0) + defer close(stopCh) + rc := newRC("rc", ns.Name, 1) - // let rc's selector only matches pod1 - rc.Spec.Selector["uniqueKey"] = "1" - rc.Spec.Template.Labels["uniqueKey"] = "1" - pod1 := newMatchingPod("pod1", ns.Name) - pod1.Labels["uniqueKey"] = "1" - pod2 := newMatchingPod("pod2", ns.Name) - pod2.Labels["uniqueKey"] = "2" - createRCsPods(t, clientSet, []*v1.ReplicationController{rc}, []*v1.Pod{pod1, pod2}, ns.Name) + rcs, _ := createRCsPods(t, c, []*v1.ReplicationController{rc}, []*v1.Pod{}) + rc = rcs[0] + waitRCStable(t, c, rc) + + // Use scale subresource to scale up .Spec.Replicas to 3 + testScalingUsingScaleSubresource(t, c, rc, 3) + // Use the scale subresource to scale down .Spec.Replicas to 0 + testScalingUsingScaleSubresource(t, c, rc, 0) +} - go rm.Run(5, stopCh) - waitRCStable(t, clientSet, rc, ns.Name) +func TestExtraPodsAdoptionAndDeletion(t *testing.T) { + s, closeFn, rm, informers, c := rmSetup(t) + defer closeFn() + ns := framework.CreateTestingNamespace("test-extra-pods-adoption-and-deletion", s, t) + defer framework.DeleteTestingNamespace(ns, s, t) - // change the rc's selector to match both pods - patch := `{"metadata":{"labels":{"uniqueKey":"1"}}}` - podClient := clientSet.Core().Pods(ns.Name) - pod2, err := podClient.Patch(pod2.Name, types.StrategicMergePatchType, []byte(patch)) - if err != nil { - t.Fatalf("Failed to patch pod2: %v", err) + rc := newRC("rc", ns.Name, 2) + // Create 3 pods, RC should adopt only 2 of them + podList := []*v1.Pod{} + for i := 0; i < 3; i++ { + pod := newMatchingPod(fmt.Sprintf("pod-%d", i+1), ns.Name) + pod.Labels = labelMap() + podList = append(podList, pod) + } + rcs, _ := createRCsPods(t, c, []*v1.ReplicationController{rc}, podList) + rc = rcs[0] + stopCh := runControllerAndInformers(t, rm, informers, 3) + defer close(stopCh) + waitRCStable(t, c, rc) + + // Verify the extra pod is deleted eventually by determining whether number of + // all pods within namespace matches .spec.replicas of the RC (2 in this case) + podClient := c.CoreV1().Pods(ns.Name) + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + // All pods have labelMap as their labels + pods := getPods(t, podClient, labelMap()) + return int32(len(pods.Items)) == *rc.Spec.Replicas, nil + }); err != nil { + t.Fatalf("Failed to verify number of all pods within current namespace matches .spec.replicas of rc %s: %v", rc.Name, err) } - t.Logf("patched pod2 = %#v", pod2) - // wait for the rc to select both pods and delete one of them - if err := wait.Poll(10*time.Second, 60*time.Second, func() (bool, error) { - return verifyRemainingObjects(t, clientSet, ns.Name, 1, 1) +} + +func TestFullyLabeledReplicas(t *testing.T) { + s, closeFn, rm, informers, c := rmSetup(t) + defer closeFn() + ns := framework.CreateTestingNamespace("test-fully-labeled-replicas", s, t) + defer framework.DeleteTestingNamespace(ns, s, t) + stopCh := runControllerAndInformers(t, rm, informers, 0) + defer close(stopCh) + + extraLabelMap := map[string]string{"foo": "bar", "extraKey": "extraValue"} + rc := newRC("rc", ns.Name, 2) + rcs, _ := createRCsPods(t, c, []*v1.ReplicationController{rc}, []*v1.Pod{}) + rc = rcs[0] + waitRCStable(t, c, rc) + + // Change RC's template labels to have extra labels, but not its selector + rcClient := c.CoreV1().ReplicationControllers(ns.Name) + updateRC(t, rcClient, rc.Name, func(rc *v1.ReplicationController) { + rc.Spec.Template.Labels = extraLabelMap + }) + + // Set one of the pods to have extra labels + podClient := c.CoreV1().Pods(ns.Name) + pods := getPods(t, podClient, labelMap()) + if len(pods.Items) != 2 { + t.Fatalf("len(pods) = %d, want 2", len(pods.Items)) + } + fullyLabeledPod := &pods.Items[0] + updatePod(t, podClient, fullyLabeledPod.Name, func(pod *v1.Pod) { + pod.Labels = extraLabelMap + }) + + // Verify only one pod is fully labeled + if err := wait.PollImmediate(interval, timeout, func() (bool, error) { + newRC, err := rcClient.Get(rc.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } + return (newRC.Status.Replicas == 2 && newRC.Status.FullyLabeledReplicas == 1), nil }); err != nil { - t.Fatal(err) + t.Fatalf("Failed to verify only one pod is fully labeled: %v", err) } - close(stopCh) } diff --git a/vendor/k8s.io/kubernetes/test/integration/scale/BUILD b/vendor/k8s.io/kubernetes/test/integration/scale/BUILD new file mode 100644 index 000000000..6f55ba0de --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/integration/scale/BUILD @@ -0,0 +1,37 @@ +package(default_visibility = ["//visibility:public"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_test", +) + +go_test( + name = "go_default_test", + size = "large", + srcs = ["scale_test.go"], + importpath = "k8s.io/kubernetes/test/integration/scale", + tags = ["integration"], + deps = [ + "//cmd/kube-apiserver/app/testing:go_default_library", + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/k8s.io/api/apps/v1beta2: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/apis/meta/v1/unstructured:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/vendor/k8s.io/kubernetes/test/integration/scale/scale_test.go b/vendor/k8s.io/kubernetes/test/integration/scale/scale_test.go new file mode 100644 index 000000000..8e6f30c44 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/integration/scale/scale_test.go @@ -0,0 +1,236 @@ +/* +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 scale + +import ( + "encoding/json" + "path" + "strings" + "testing" + + "github.com/coreos/pkg/capnslog" + + appsv1beta2 "k8s.io/api/apps/v1beta2" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/kubernetes" + apitesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing" +) + +type subresourceTest struct { + resource schema.GroupVersionResource + kind schema.GroupVersionKind +} + +func makeGVR(group, version, resource string) schema.GroupVersionResource { + return schema.GroupVersionResource{Group: group, Version: version, Resource: resource} +} +func makeGVK(group, version, kind string) schema.GroupVersionKind { + return schema.GroupVersionKind{Group: group, Version: version, Kind: kind} +} + +func TestScaleSubresources(t *testing.T) { + clientSet, tearDown := setup(t) + defer tearDown() + + resourceLists, err := clientSet.Discovery().ServerResources() + if err != nil { + t.Fatal(err) + } + + expectedScaleSubresources := map[schema.GroupVersionResource]schema.GroupVersionKind{ + makeGVR("", "v1", "replicationcontrollers/scale"): makeGVK("autoscaling", "v1", "Scale"), + + makeGVR("extensions", "v1beta1", "deployments/scale"): makeGVK("extensions", "v1beta1", "Scale"), + makeGVR("extensions", "v1beta1", "replicationcontrollers/scale"): makeGVK("extensions", "v1beta1", "Scale"), + makeGVR("extensions", "v1beta1", "replicasets/scale"): makeGVK("extensions", "v1beta1", "Scale"), + + makeGVR("apps", "v1beta1", "deployments/scale"): makeGVK("apps", "v1beta1", "Scale"), + makeGVR("apps", "v1beta1", "statefulsets/scale"): makeGVK("apps", "v1beta1", "Scale"), + + makeGVR("apps", "v1beta2", "deployments/scale"): makeGVK("apps", "v1beta2", "Scale"), + makeGVR("apps", "v1beta2", "replicasets/scale"): makeGVK("apps", "v1beta2", "Scale"), + makeGVR("apps", "v1beta2", "statefulsets/scale"): makeGVK("apps", "v1beta2", "Scale"), + + makeGVR("apps", "v1", "deployments/scale"): makeGVK("autoscaling", "v1", "Scale"), + makeGVR("apps", "v1", "replicasets/scale"): makeGVK("autoscaling", "v1", "Scale"), + makeGVR("apps", "v1", "statefulsets/scale"): makeGVK("autoscaling", "v1", "Scale"), + } + + autoscalingGVK := schema.GroupVersionKind{Group: "autoscaling", Version: "v1", Kind: "Scale"} + + discoveredScaleSubresources := map[schema.GroupVersionResource]schema.GroupVersionKind{} + for _, resourceList := range resourceLists { + containingGV, err := schema.ParseGroupVersion(resourceList.GroupVersion) + if err != nil { + t.Fatalf("error getting group version for %#v: %v", resourceList, err) + } + + for _, resource := range resourceList.APIResources { + if !strings.HasSuffix(resource.Name, "/scale") { + continue + } + + gvr := containingGV.WithResource(resource.Name) + if _, exists := discoveredScaleSubresources[gvr]; exists { + t.Errorf("scale subresource %#v listed multiple times in discovery", gvr) + continue + } + + gvk := containingGV.WithKind(resource.Kind) + if resource.Group != "" { + gvk.Group = resource.Group + } + if resource.Version != "" { + gvk.Version = resource.Version + } + discoveredScaleSubresources[gvr] = gvk + } + } + + // Ensure nothing is missing + for gvr, gvk := range expectedScaleSubresources { + if _, ok := discoveredScaleSubresources[gvr]; !ok { + t.Errorf("expected scale subresource %#v of kind %#v was missing from discovery", gvr, gvk) + } + } + + // Ensure discovery lists expected types + for gvr, gvk := range discoveredScaleSubresources { + if expectedGVK, expected := expectedScaleSubresources[gvr]; !expected { + if gvk == autoscalingGVK { + t.Errorf("unexpected scale subresource %#v of kind %#v. new scale subresource should be added to expectedScaleSubresources", gvr, gvk) + } else { + t.Errorf("unexpected scale subresource %#v of kind %#v. new scale resources are expected to use Scale from the autoscaling/v1 API group", gvr, gvk) + } + continue + } else if expectedGVK != gvk { + t.Errorf("scale subresource %#v should be of kind %#v, but %#v was listed in discovery", gvr, expectedGVK, gvk) + continue + } + } + + // Create objects required to exercise scale subresources + if _, err := clientSet.CoreV1().ReplicationControllers("default").Create(rcStub); err != nil { + t.Fatal(err) + } + if _, err := clientSet.AppsV1beta2().ReplicaSets("default").Create(rsStub); err != nil { + t.Fatal(err) + } + if _, err := clientSet.AppsV1beta2().Deployments("default").Create(deploymentStub); err != nil { + t.Fatal(err) + } + if _, err := clientSet.AppsV1beta2().StatefulSets("default").Create(ssStub); err != nil { + t.Fatal(err) + } + + // Ensure scale subresources return and accept expected kinds + for gvr, gvk := range discoveredScaleSubresources { + prefix := "/apis" + if gvr.Group == corev1.GroupName { + prefix = "/api" + } + + resourceParts := strings.SplitN(gvr.Resource, "/", 2) + + urlPath := path.Join(prefix, gvr.Group, gvr.Version, "namespaces", "default", resourceParts[0], "test", resourceParts[1]) + obj := &unstructured.Unstructured{} + + getData, err := clientSet.CoreV1().RESTClient().Get().AbsPath(urlPath).DoRaw() + if err != nil { + t.Errorf("error fetching %s: %v", urlPath, err) + continue + } + if err := json.Unmarshal(getData, obj); err != nil { + t.Errorf("error decoding %s: %v", urlPath, err) + t.Log(string(getData)) + continue + } + + if obj.GetObjectKind().GroupVersionKind() != gvk { + t.Errorf("expected %#v, got %#v from %s", gvk, obj.GetObjectKind().GroupVersionKind(), urlPath) + t.Log(string(getData)) + continue + } + + updateData, err := clientSet.CoreV1().RESTClient().Put().AbsPath(urlPath).Body(getData).DoRaw() + if err != nil { + t.Errorf("error putting to %s: %v", urlPath, err) + t.Log(string(getData)) + t.Log(string(updateData)) + continue + } + } +} + +var ( + replicas = int32(1) + + podStub = corev1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, + Spec: corev1.PodSpec{Containers: []corev1.Container{{Name: "test", Image: "busybox"}}}, + } + + rcStub = &corev1.ReplicationController{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, + Spec: corev1.ReplicationControllerSpec{Selector: podStub.Labels, Replicas: &replicas, Template: &podStub}, + } + + rsStub = &appsv1beta2.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, + Spec: appsv1beta2.ReplicaSetSpec{Selector: &metav1.LabelSelector{MatchLabels: podStub.Labels}, Replicas: &replicas, Template: podStub}, + } + + deploymentStub = &appsv1beta2.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, + Spec: appsv1beta2.DeploymentSpec{Selector: &metav1.LabelSelector{MatchLabels: podStub.Labels}, Replicas: &replicas, Template: podStub}, + } + + ssStub = &appsv1beta2.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{Name: "test"}, + Spec: appsv1beta2.StatefulSetSpec{Selector: &metav1.LabelSelector{MatchLabels: podStub.Labels}, Replicas: &replicas, Template: podStub}, + } +) + +func setup(t *testing.T) (client kubernetes.Interface, tearDown func()) { + masterConfig, tearDownMaster := apitesting.StartTestServerOrDie(t) + + // TODO: Disable logging here until we resolve teardown issues which result in + // massive log spam. Another path forward would be to refactor + // StartTestServerOrDie to work with the etcd instance already started by the + // integration test scripts. + // See https://github.com/kubernetes/kubernetes/issues/49489. + repo, err := capnslog.GetRepoLogger("github.com/coreos/etcd") + if err != nil { + t.Fatalf("couldn't configure logging: %v", err) + } + repo.SetLogLevel(map[string]capnslog.LogLevel{ + "etcdserver/api/v3rpc": capnslog.CRITICAL, + }) + + masterConfig.AcceptContentTypes = "" + masterConfig.ContentType = "" + masterConfig.NegotiatedSerializer = nil + clientSet, err := kubernetes.NewForConfig(masterConfig) + if err != nil { + t.Fatalf("error creating clientset: %v", err) + } + + return clientSet, tearDownMaster +} diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler/BUILD b/vendor/k8s.io/kubernetes/test/integration/scheduler/BUILD index 0a6cf290d..706c2d6f0 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler/BUILD @@ -21,8 +21,9 @@ go_test( library = ":go_default_library", tags = ["integration"], deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/apis/componentconfig:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", "//pkg/controller/node:go_default_library", @@ -30,7 +31,6 @@ go_test( "//pkg/features:go_default_library", "//pkg/kubeapiserver/admission:go_default_library", "//plugin/cmd/kube-scheduler/app:go_default_library", - "//plugin/cmd/kube-scheduler/app/options:go_default_library", "//plugin/pkg/admission/podtolerationrestriction:go_default_library", "//plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction:go_default_library", "//plugin/pkg/scheduler:go_default_library", @@ -44,9 +44,13 @@ go_test( "//test/integration/framework:go_default_library", "//test/utils:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/policy/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource: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/apimachinery/pkg/util/diff:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", @@ -77,7 +81,7 @@ go_library( srcs = ["util.go"], importpath = "k8s.io/kubernetes/test/integration/scheduler", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//plugin/pkg/scheduler:go_default_library", "//plugin/pkg/scheduler/algorithmprovider:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler/extender_test.go b/vendor/k8s.io/kubernetes/test/integration/scheduler/extender_test.go index 634c81ca4..0cd189ae4 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler/extender_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler/extender_test.go @@ -36,7 +36,7 @@ import ( v1core "k8s.io/client-go/kubernetes/typed/core/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/plugin/pkg/scheduler" _ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider" @@ -368,6 +368,7 @@ func TestSchedulerExtender(t *testing.T) { informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, enableEquivalenceCache, ) @@ -376,7 +377,7 @@ func TestSchedulerExtender(t *testing.T) { t.Fatalf("Couldn't create scheduler config: %v", err) } eventBroadcaster := record.NewBroadcaster() - schedulerConfig.Recorder = eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: v1.DefaultSchedulerName}) + schedulerConfig.Recorder = eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: v1.DefaultSchedulerName}) eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(clientSet.CoreV1().RESTClient()).Events("")}) scheduler, _ := scheduler.NewFromConfigurator(&scheduler.FakeConfigurator{Config: schedulerConfig}, nil...) informerFactory.Start(schedulerConfig.StopEverything) diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler/predicates_test.go b/vendor/k8s.io/kubernetes/test/integration/scheduler/predicates_test.go index 0fe1fc788..beb5873fd 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler/predicates_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler/predicates_test.go @@ -30,6 +30,8 @@ import ( // This file tests the scheduler predicates functionality. +const pollInterval = 100 * time.Millisecond + // TestInterPodAffinity verifies that scheduler's inter pod affinity and // anti-affinity predicate functions works correctly. func TestInterPodAffinity(t *testing.T) { @@ -808,6 +810,7 @@ func TestInterPodAffinity(t *testing.T) { test: "nodes[0] and nodes[1] have same topologyKey and label value. nodes[0] has an existing pod that matches the inter pod affinity rule. The new pod can not be scheduled onto either of the two nodes.", }, } + for _, test := range tests { for _, pod := range test.pods { var nsName string @@ -820,7 +823,7 @@ func TestInterPodAffinity(t *testing.T) { if err != nil { t.Fatalf("Test Failed: error, %v, while creating pod during test: %v", err, test.test) } - err = wait.Poll(time.Second, wait.ForeverTestTimeout, podScheduled(cs, createdPod.Namespace, createdPod.Name)) + err = wait.Poll(pollInterval, wait.ForeverTestTimeout, podScheduled(cs, createdPod.Namespace, createdPod.Name)) if err != nil { t.Errorf("Test Failed: error, %v, while waiting for pod during test, %v", err, test) } @@ -831,12 +834,20 @@ func TestInterPodAffinity(t *testing.T) { t.Fatalf("Test Failed: error, %v, while creating pod during test: %v", err, test.test) } } else { - err = wait.Poll(time.Second, wait.ForeverTestTimeout, podScheduled(cs, testPod.Namespace, testPod.Name)) - if err != nil && err != wait.ErrWaitTimeout { - t.Errorf("Test Failed: error, %v, while waiting for pod to get scheduled, %v", err, test.test) + waitTime := wait.ForeverTestTimeout + if !test.fits { + waitTime = 2 * time.Second } - if (err == nil) != test.fits { - t.Errorf("Test Failed: %v, err %v, test.fits %v", test.test, err, test.fits) + + err = wait.Poll(pollInterval, waitTime, podScheduled(cs, testPod.Namespace, testPod.Name)) + if test.fits { + if err != nil { + t.Errorf("Test Failed: %v, err %v, test.fits %v", test.test, err, test.fits) + } + } else { + if err != wait.ErrWaitTimeout { + t.Errorf("Test Failed: error, %v, while waiting for pod to get scheduled, %v", err, test.test) + } } for _, pod := range test.pods { @@ -850,7 +861,7 @@ func TestInterPodAffinity(t *testing.T) { if err != nil { t.Errorf("Test Failed: error, %v, while deleting pod during test: %v", err, test.test) } - err = wait.Poll(time.Second, wait.ForeverTestTimeout, podDeleted(cs, nsName, pod.Name)) + err = wait.Poll(pollInterval, wait.ForeverTestTimeout, podDeleted(cs, nsName, pod.Name)) if err != nil { t.Errorf("Test Failed: error, %v, while waiting for pod to get deleted, %v", err, test.test) } @@ -859,7 +870,7 @@ func TestInterPodAffinity(t *testing.T) { if err != nil { t.Errorf("Test Failed: error, %v, while deleting pod during test: %v", err, test.test) } - err = wait.Poll(time.Second, wait.ForeverTestTimeout, podDeleted(cs, context.ns.Name, test.pod.Name)) + err = wait.Poll(pollInterval, wait.ForeverTestTimeout, podDeleted(cs, context.ns.Name, test.pod.Name)) if err != nil { t.Errorf("Test Failed: error, %v, while waiting for pod to get deleted, %v", err, test.test) } diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler/scheduler_test.go b/vendor/k8s.io/kubernetes/test/integration/scheduler/scheduler_test.go index 770a9bead..9a6a8322c 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler/scheduler_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler/scheduler_test.go @@ -20,13 +20,18 @@ package scheduler import ( "fmt" + "reflect" "testing" "time" "k8s.io/api/core/v1" + policy "k8s.io/api/policy/v1beta1" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/wait" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/informers" @@ -36,11 +41,11 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" + "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/features" - "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app" - "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app/options" + schedulerapp "k8s.io/kubernetes/plugin/cmd/kube-scheduler/app" "k8s.io/kubernetes/plugin/pkg/scheduler" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" _ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider" @@ -102,7 +107,7 @@ func TestSchedulerCreationFromConfigMap(t *testing.T) { policyConfigMap := v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{Namespace: metav1.NamespaceSystem, Name: configPolicyName}, Data: map[string]string{ - options.SchedulerPolicyConfigMapKey: `{ + componentconfig.SchedulerPolicyConfigMapKey: `{ "kind" : "Policy", "apiVersion" : "v1", "predicates" : [ @@ -122,28 +127,34 @@ func TestSchedulerCreationFromConfigMap(t *testing.T) { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartRecordingToSink(&clientv1core.EventSinkImpl{Interface: clientv1core.New(clientSet.CoreV1().RESTClient()).Events("")}) - ss := options.NewSchedulerServer() - ss.HardPodAffinitySymmetricWeight = v1.DefaultHardPodAffinitySymmetricWeight - ss.PolicyConfigMapName = configPolicyName - sched, err := app.CreateScheduler(ss, clientSet, - informerFactory.Core().V1().Nodes(), - informerFactory.Core().V1().Pods(), - informerFactory.Core().V1().PersistentVolumes(), - informerFactory.Core().V1().PersistentVolumeClaims(), - informerFactory.Core().V1().ReplicationControllers(), - informerFactory.Extensions().V1beta1().ReplicaSets(), - informerFactory.Apps().V1beta1().StatefulSets(), - informerFactory.Core().V1().Services(), - eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: v1.DefaultSchedulerName}), - ) + + ss := &schedulerapp.SchedulerServer{ + SchedulerName: v1.DefaultSchedulerName, + AlgorithmSource: componentconfig.SchedulerAlgorithmSource{ + Policy: &componentconfig.SchedulerPolicySource{ + ConfigMap: &componentconfig.SchedulerPolicyConfigMapSource{ + Namespace: policyConfigMap.Namespace, + Name: policyConfigMap.Name, + }, + }, + }, + HardPodAffinitySymmetricWeight: v1.DefaultHardPodAffinitySymmetricWeight, + Client: clientSet, + InformerFactory: informerFactory, + PodInformer: factory.NewPodInformer(clientSet, 0, v1.DefaultSchedulerName), + EventClient: clientSet.CoreV1(), + Recorder: eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: v1.DefaultSchedulerName}), + Broadcaster: eventBroadcaster, + } + + config, err := ss.SchedulerConfig() if err != nil { - t.Fatalf("Error creating scheduler: %v", err) + t.Fatalf("couldn't make scheduler config: %v", err) } - defer close(sched.Config().StopEverything) // Verify that the config is applied correctly. - schedPredicates := sched.Config().Algorithm.Predicates() - schedPrioritizers := sched.Config().Algorithm.Prioritizers() + schedPredicates := config.Algorithm.Predicates() + schedPrioritizers := config.Algorithm.Prioritizers() // Includes one mandatory predicates. if len(schedPredicates) != 3 || len(schedPrioritizers) != 2 { t.Errorf("Unexpected number of predicates or priority functions. Number of predicates: %v, number of prioritizers: %v", len(schedPredicates), len(schedPrioritizers)) @@ -174,81 +185,31 @@ func TestSchedulerCreationFromNonExistentConfigMap(t *testing.T) { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartRecordingToSink(&clientv1core.EventSinkImpl{Interface: clientv1core.New(clientSet.CoreV1().RESTClient()).Events("")}) - ss := options.NewSchedulerServer() - ss.PolicyConfigMapName = "non-existent-config" - - _, err := app.CreateScheduler(ss, clientSet, - informerFactory.Core().V1().Nodes(), - informerFactory.Core().V1().Pods(), - informerFactory.Core().V1().PersistentVolumes(), - informerFactory.Core().V1().PersistentVolumeClaims(), - informerFactory.Core().V1().ReplicationControllers(), - informerFactory.Extensions().V1beta1().ReplicaSets(), - informerFactory.Apps().V1beta1().StatefulSets(), - informerFactory.Core().V1().Services(), - eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: v1.DefaultSchedulerName}), - ) + ss := &schedulerapp.SchedulerServer{ + SchedulerName: v1.DefaultSchedulerName, + AlgorithmSource: componentconfig.SchedulerAlgorithmSource{ + Policy: &componentconfig.SchedulerPolicySource{ + ConfigMap: &componentconfig.SchedulerPolicyConfigMapSource{ + Namespace: "non-existent-config", + Name: "non-existent-config", + }, + }, + }, + HardPodAffinitySymmetricWeight: v1.DefaultHardPodAffinitySymmetricWeight, + Client: clientSet, + InformerFactory: informerFactory, + PodInformer: factory.NewPodInformer(clientSet, 0, v1.DefaultSchedulerName), + EventClient: clientSet.CoreV1(), + Recorder: eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: v1.DefaultSchedulerName}), + Broadcaster: eventBroadcaster, + } + _, err := ss.SchedulerConfig() if err == nil { t.Fatalf("Creation of scheduler didn't fail while the policy ConfigMap didn't exist.") } } -// TestSchedulerCreationInLegacyMode ensures that creation of the scheduler -// works fine when legacy mode is enabled. -func TestSchedulerCreationInLegacyMode(t *testing.T) { - _, s, closeFn := framework.RunAMaster(nil) - defer closeFn() - - ns := framework.CreateTestingNamespace("configmap", s, t) - defer framework.DeleteTestingNamespace(ns, s, t) - - clientSet := clientset.NewForConfigOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: testapi.Groups[v1.GroupName].GroupVersion()}}) - defer clientSet.CoreV1().Nodes().DeleteCollection(nil, metav1.ListOptions{}) - informerFactory := informers.NewSharedInformerFactory(clientSet, 0) - - eventBroadcaster := record.NewBroadcaster() - eventBroadcaster.StartRecordingToSink(&clientv1core.EventSinkImpl{Interface: clientv1core.New(clientSet.CoreV1().RESTClient()).Events("")}) - - ss := options.NewSchedulerServer() - ss.HardPodAffinitySymmetricWeight = v1.DefaultHardPodAffinitySymmetricWeight - ss.PolicyConfigMapName = "non-existent-configmap" - ss.UseLegacyPolicyConfig = true - - sched, err := app.CreateScheduler(ss, clientSet, - informerFactory.Core().V1().Nodes(), - informerFactory.Core().V1().Pods(), - informerFactory.Core().V1().PersistentVolumes(), - informerFactory.Core().V1().PersistentVolumeClaims(), - informerFactory.Core().V1().ReplicationControllers(), - informerFactory.Extensions().V1beta1().ReplicaSets(), - informerFactory.Apps().V1beta1().StatefulSets(), - informerFactory.Core().V1().Services(), - eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: v1.DefaultSchedulerName}), - ) - if err != nil { - t.Fatalf("Creation of scheduler in legacy mode failed: %v", err) - } - informerFactory.Start(sched.Config().StopEverything) - defer close(sched.Config().StopEverything) - sched.Run() - - _, err = createNode(clientSet, "test-node", nil) - if err != nil { - t.Fatalf("Failed to create node: %v", err) - } - pod, err := createPausePodWithResource(clientSet, "test-pod", "configmap", nil) - if err != nil { - t.Fatalf("Failed to create pod: %v", err) - } - err = waitForPodToSchedule(clientSet, pod) - if err != nil { - t.Errorf("Failed to schedule a pod: %v", err) - } else { - t.Logf("Pod got scheduled on a node.") - } -} - func TestUnschedulableNodes(t *testing.T) { context := initTest(t, "unschedulable-nodes") defer cleanupTest(t, context) @@ -384,7 +345,7 @@ func TestUnschedulableNodes(t *testing.T) { } // There are no schedulable nodes - the pod shouldn't be scheduled. - err = waitForPodToSchedule(context.clientSet, myPod) + err = waitForPodToScheduleWithTimeout(context.clientSet, myPod, 2*time.Second) if err == nil { t.Errorf("Pod scheduled successfully on unschedulable nodes") } @@ -456,6 +417,7 @@ func TestMultiScheduler(t *testing.T) { context.clientSet.CoreV1().Nodes().Create(node) // 3. create 3 pods for testing + t.Logf("create 3 pods for testing") testPod, err := createPausePodWithResource(context.clientSet, "pod-without-scheduler-name", context.ns.Name, nil) if err != nil { t.Fatalf("Failed to create pod: %v", err) @@ -476,6 +438,7 @@ func TestMultiScheduler(t *testing.T) { // 4. **check point-1**: // - testPod, testPodFitsDefault should be scheduled // - testPodFitsFoo should NOT be scheduled + t.Logf("wait for pods scheduled") if err := waitForPodToSchedule(context.clientSet, testPod); err != nil { t.Errorf("Test MultiScheduler: %s Pod not scheduled: %v", testPod.Name, err) } else { @@ -497,18 +460,20 @@ func TestMultiScheduler(t *testing.T) { // 5. create and start a scheduler with name "foo-scheduler" clientSet2 := clientset.NewForConfigOrDie(&restclient.Config{Host: context.httpServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: testapi.Groups[v1.GroupName].GroupVersion()}}) informerFactory2 := informers.NewSharedInformerFactory(context.clientSet, 0) + podInformer2 := factory.NewPodInformer(context.clientSet, 0, fooScheduler) schedulerConfigFactory2 := factory.NewConfigFactory( fooScheduler, clientSet2, informerFactory2.Core().V1().Nodes(), - informerFactory2.Core().V1().Pods(), + podInformer2, informerFactory2.Core().V1().PersistentVolumes(), informerFactory2.Core().V1().PersistentVolumeClaims(), informerFactory2.Core().V1().ReplicationControllers(), informerFactory2.Extensions().V1beta1().ReplicaSets(), informerFactory2.Apps().V1beta1().StatefulSets(), informerFactory2.Core().V1().Services(), + informerFactory2.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, enableEquivalenceCache, ) @@ -517,8 +482,9 @@ func TestMultiScheduler(t *testing.T) { t.Errorf("Couldn't create scheduler config: %v", err) } eventBroadcaster2 := record.NewBroadcaster() - schedulerConfig2.Recorder = eventBroadcaster2.NewRecorder(api.Scheme, v1.EventSource{Component: fooScheduler}) + schedulerConfig2.Recorder = eventBroadcaster2.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: fooScheduler}) eventBroadcaster2.StartRecordingToSink(&clientv1core.EventSinkImpl{Interface: clientv1core.New(clientSet2.CoreV1().RESTClient()).Events("")}) + go podInformer2.Informer().Run(schedulerConfig2.StopEverything) informerFactory2.Start(schedulerConfig2.StopEverything) sched2, _ := scheduler.NewFromConfigurator(&scheduler.FakeConfigurator{Config: schedulerConfig2}, nil...) @@ -555,11 +521,11 @@ func TestMultiScheduler(t *testing.T) { // - note: these two pods belong to default scheduler which no longer exists podWithNoAnnotation2 := createPod("pod-with-no-annotation2", nil) podWithAnnotationFitsDefault2 := createPod("pod-with-annotation-fits-default2", schedulerAnnotationFitsDefault) - testPodNoAnnotation2, err := clientSet.Core().Pods(ns.Name).Create(podWithNoAnnotation2) + testPodNoAnnotation2, err := clientSet.CoreV1().Pods(ns.Name).Create(podWithNoAnnotation2) if err != nil { t.Fatalf("Failed to create pod: %v", err) } - testPodWithAnnotationFitsDefault2, err := clientSet.Core().Pods(ns.Name).Create(podWithAnnotationFitsDefault2) + testPodWithAnnotationFitsDefault2, err := clientSet.CoreV1().Pods(ns.Name).Create(podWithAnnotationFitsDefault2) if err != nil { t.Fatalf("Failed to create pod: %v", err) } @@ -900,3 +866,91 @@ func TestPreemption(t *testing.T) { } } } + +// TestPDBCache verifies that scheduler cache works as expected when handling +// PodDisruptionBudget. +func TestPDBCache(t *testing.T) { + context := initTest(t, "pdbcache") + defer cleanupTest(t, context) + + intstrMin := intstr.FromInt(4) + pdb := &policy.PodDisruptionBudget{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: context.ns.Name, + Name: "test-pdb", + Labels: map[string]string{"tkey1": "tval1", "tkey2": "tval2"}, + }, + Spec: policy.PodDisruptionBudgetSpec{ + MinAvailable: &intstrMin, + Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"tkey": "tvalue"}}, + }, + } + + createdPDB, err := context.clientSet.PolicyV1beta1().PodDisruptionBudgets(context.ns.Name).Create(pdb) + if err != nil { + t.Errorf("Failed to create PDB: %v", err) + } + // Wait for PDB to show up in the scheduler's cache. + if err = wait.Poll(time.Second, 15*time.Second, func() (bool, error) { + cachedPDBs, err := context.scheduler.Config().SchedulerCache.ListPDBs(labels.Everything()) + if err != nil { + t.Errorf("Error while polling for PDB: %v", err) + return false, err + } + return len(cachedPDBs) > 0, err + }); err != nil { + t.Fatalf("No PDB was added to the cache: %v", err) + } + // Read PDB from the cache and compare it. + cachedPDBs, err := context.scheduler.Config().SchedulerCache.ListPDBs(labels.Everything()) + if len(cachedPDBs) != 1 { + t.Fatalf("Expected to have 1 pdb in cache, but found %d.", len(cachedPDBs)) + } + if !reflect.DeepEqual(createdPDB, cachedPDBs[0]) { + t.Errorf("Got different PDB than expected.\nDifference detected on:\n%s", diff.ObjectReflectDiff(createdPDB, cachedPDBs[0])) + } + + // Update PDB and change its labels. + pdbCopy := *cachedPDBs[0] + pdbCopy.Labels = map[string]string{} + updatedPDB, err := context.clientSet.PolicyV1beta1().PodDisruptionBudgets(context.ns.Name).Update(&pdbCopy) + if err != nil { + t.Errorf("Failed to update PDB: %v", err) + } + // Wait for PDB to be updated in the scheduler's cache. + if err = wait.Poll(time.Second, 15*time.Second, func() (bool, error) { + cachedPDBs, err := context.scheduler.Config().SchedulerCache.ListPDBs(labels.Everything()) + if err != nil { + t.Errorf("Error while polling for PDB: %v", err) + return false, err + } + return len(cachedPDBs[0].Labels) == 0, err + }); err != nil { + t.Fatalf("No PDB was updated in the cache: %v", err) + } + // Read PDB from the cache and compare it. + cachedPDBs, err = context.scheduler.Config().SchedulerCache.ListPDBs(labels.Everything()) + if len(cachedPDBs) != 1 { + t.Errorf("Expected to have 1 pdb in cache, but found %d.", len(cachedPDBs)) + } + if !reflect.DeepEqual(updatedPDB, cachedPDBs[0]) { + t.Errorf("Got different PDB than expected.\nDifference detected on:\n%s", diff.ObjectReflectDiff(updatedPDB, cachedPDBs[0])) + } + + // Delete PDB. + err = context.clientSet.PolicyV1beta1().PodDisruptionBudgets(context.ns.Name).Delete(pdb.Name, &metav1.DeleteOptions{}) + if err != nil { + t.Errorf("Failed to delete PDB: %v", err) + } + // Wait for PDB to be deleted from the scheduler's cache. + if err = wait.Poll(time.Second, 15*time.Second, func() (bool, error) { + cachedPDBs, err := context.scheduler.Config().SchedulerCache.ListPDBs(labels.Everything()) + if err != nil { + t.Errorf("Error while polling for PDB: %v", err) + return false, err + } + return len(cachedPDBs) == 0, err + }); err != nil { + t.Errorf("No PDB was deleted from the cache: %v", err) + } +} diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler/taint_test.go b/vendor/k8s.io/kubernetes/test/integration/scheduler/taint_test.go index c91b5323a..b0ad30457 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler/taint_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler/taint_test.go @@ -130,6 +130,7 @@ func TestTaintNodeByCondition(t *testing.T) { informers.Extensions().V1beta1().ReplicaSets(), informers.Apps().V1beta1().StatefulSets(), informers.Core().V1().Services(), + informers.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, true, // Enable EqualCache by default. ) diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler/util.go b/vendor/k8s.io/kubernetes/test/integration/scheduler/util.go index 81726f1ca..10517e3a8 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler/util.go +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler/util.go @@ -33,7 +33,7 @@ import ( corelisters "k8s.io/client-go/listers/core/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/plugin/pkg/scheduler" _ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider" @@ -64,18 +64,19 @@ func initTest(t *testing.T, nsPrefix string) *TestContext { context.clientSet = clientset.NewForConfigOrDie(&restclient.Config{Host: context.httpServer.URL, ContentConfig: restclient.ContentConfig{GroupVersion: testapi.Groups[v1.GroupName].GroupVersion()}}) context.informerFactory = informers.NewSharedInformerFactory(context.clientSet, 0) - + podInformer := factory.NewPodInformer(context.clientSet, 30*time.Second, v1.DefaultSchedulerName) context.schedulerConfigFactory = factory.NewConfigFactory( v1.DefaultSchedulerName, context.clientSet, context.informerFactory.Core().V1().Nodes(), - context.informerFactory.Core().V1().Pods(), + podInformer, context.informerFactory.Core().V1().PersistentVolumes(), context.informerFactory.Core().V1().PersistentVolumeClaims(), context.informerFactory.Core().V1().ReplicationControllers(), context.informerFactory.Extensions().V1beta1().ReplicaSets(), context.informerFactory.Apps().V1beta1().StatefulSets(), context.informerFactory.Core().V1().Services(), + context.informerFactory.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, true, ) @@ -85,8 +86,9 @@ func initTest(t *testing.T, nsPrefix string) *TestContext { t.Fatalf("Couldn't create scheduler config: %v", err) } eventBroadcaster := record.NewBroadcaster() - context.schedulerConfig.Recorder = eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: v1.DefaultSchedulerName}) + context.schedulerConfig.Recorder = eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: v1.DefaultSchedulerName}) eventBroadcaster.StartRecordingToSink(&clientv1core.EventSinkImpl{Interface: clientv1core.New(context.clientSet.CoreV1().RESTClient()).Events("")}) + go podInformer.Informer().Run(context.schedulerConfig.StopEverything) context.informerFactory.Start(context.schedulerConfig.StopEverything) context.scheduler, err = scheduler.NewFromConfigurator(&scheduler.FakeConfigurator{Config: context.schedulerConfig}, nil...) if err != nil { @@ -332,13 +334,13 @@ func podScheduled(c clientset.Interface, podNamespace, podName string) wait.Cond // waitForPodToScheduleWithTimeout waits for a pod to get scheduled and returns // an error if it does not scheduled within the given timeout. func waitForPodToScheduleWithTimeout(cs clientset.Interface, pod *v1.Pod, timeout time.Duration) error { - return wait.Poll(time.Second, timeout, podScheduled(cs, pod.Namespace, pod.Name)) + return wait.Poll(100*time.Millisecond, timeout, podScheduled(cs, pod.Namespace, pod.Name)) } // waitForPodToSchedule waits for a pod to get scheduled and returns an error if -// it does not scheduled within the timeout duration (30 seconds). +// it does not get scheduled within the timeout duration (30 seconds). func waitForPodToSchedule(cs clientset.Interface, pod *v1.Pod) error { - return waitForPodToScheduleWithTimeout(cs, pod, wait.ForeverTestTimeout) + return waitForPodToScheduleWithTimeout(cs, pod, 30*time.Second) } // deletePod deletes the given pod in the given namespace. diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/BUILD b/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/BUILD index cd652852f..f18bdb8cd 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/BUILD @@ -14,7 +14,7 @@ go_library( ], importpath = "k8s.io/kubernetes/test/integration/scheduler_perf", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//plugin/pkg/scheduler:go_default_library", "//plugin/pkg/scheduler/algorithmprovider:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/scheduler_test.go b/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/scheduler_test.go index 62e1f1bfd..8da4b2212 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/scheduler_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/scheduler_test.go @@ -220,11 +220,11 @@ func (na nodeAffinity) mutatePodTemplate(pod *v1.Pod) { // generateNodes generates nodes to be used for scheduling. func (inputConfig *schedulerPerfConfig) generateNodes(config *testConfig) { for i := 0; i < inputConfig.NodeCount; i++ { - config.schedulerSupportFunctions.GetClient().Core().Nodes().Create(config.mutatedNodeTemplate) + config.schedulerSupportFunctions.GetClient().CoreV1().Nodes().Create(config.mutatedNodeTemplate) } for i := 0; i < config.numNodes-inputConfig.NodeCount; i++ { - config.schedulerSupportFunctions.GetClient().Core().Nodes().Create(baseNodeTemplate) + config.schedulerSupportFunctions.GetClient().CoreV1().Nodes().Create(baseNodeTemplate) } } diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/util.go b/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/util.go index 9f18a16ea..3fc29da0e 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/util.go +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler_perf/util.go @@ -27,7 +27,7 @@ import ( clientv1core "k8s.io/client-go/kubernetes/typed/core/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/record" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/plugin/pkg/scheduler" _ "k8s.io/kubernetes/plugin/pkg/scheduler/algorithmprovider" @@ -74,6 +74,7 @@ func mustSetupScheduler() (schedulerConfigurator scheduler.Configurator, destroy informerFactory.Extensions().V1beta1().ReplicaSets(), informerFactory.Apps().V1beta1().StatefulSets(), informerFactory.Core().V1().Services(), + informerFactory.Policy().V1beta1().PodDisruptionBudgets(), v1.DefaultHardPodAffinitySymmetricWeight, enableEquivalenceCache, ) @@ -82,7 +83,7 @@ func mustSetupScheduler() (schedulerConfigurator scheduler.Configurator, destroy eventBroadcaster.StartRecordingToSink(&clientv1core.EventSinkImpl{Interface: clientv1core.New(clientSet.CoreV1().RESTClient()).Events("")}) sched, err := scheduler.NewFromConfigurator(schedulerConfigurator, func(conf *scheduler.Config) { - conf.Recorder = eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: "scheduler"}) + conf.Recorder = eventBroadcaster.NewRecorder(legacyscheme.Scheme, v1.EventSource{Component: "scheduler"}) }) if err != nil { glog.Fatalf("Error creating scheduler: %v", err) diff --git a/vendor/k8s.io/kubernetes/test/integration/secrets/secrets_test.go b/vendor/k8s.io/kubernetes/test/integration/secrets/secrets_test.go index d07505e09..385d73eb1 100644 --- a/vendor/k8s.io/kubernetes/test/integration/secrets/secrets_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/secrets/secrets_test.go @@ -31,7 +31,7 @@ import ( ) func deleteSecretOrErrorf(t *testing.T, c clientset.Interface, ns, name string) { - if err := c.Core().Secrets(ns).Delete(name, nil); err != nil { + if err := c.CoreV1().Secrets(ns).Delete(name, nil); err != nil { t.Errorf("unable to delete secret %v: %v", name, err) } } @@ -62,7 +62,7 @@ func DoTestSecrets(t *testing.T, client clientset.Interface, ns *v1.Namespace) { }, } - if _, err := client.Core().Secrets(s.Namespace).Create(&s); err != nil { + if _, err := client.CoreV1().Secrets(s.Namespace).Create(&s); err != nil { t.Errorf("unable to create test secret: %v", err) } defer deleteSecretOrErrorf(t, client, s.Namespace, s.Name) @@ -102,14 +102,14 @@ func DoTestSecrets(t *testing.T, client clientset.Interface, ns *v1.Namespace) { // Create a pod to consume secret. pod.ObjectMeta.Name = "uses-secret" - if _, err := client.Core().Pods(ns.Name).Create(pod); err != nil { + if _, err := client.CoreV1().Pods(ns.Name).Create(pod); err != nil { t.Errorf("Failed to create pod: %v", err) } defer integration.DeletePodOrErrorf(t, client, ns.Name, pod.Name) // Create a pod that consumes non-existent secret. pod.ObjectMeta.Name = "uses-non-existent-secret" - if _, err := client.Core().Pods(ns.Name).Create(pod); err != nil { + if _, err := client.CoreV1().Pods(ns.Name).Create(pod); err != nil { t.Errorf("Failed to create pod: %v", err) } defer integration.DeletePodOrErrorf(t, client, ns.Name, pod.Name) diff --git a/vendor/k8s.io/kubernetes/test/integration/serviceaccount/BUILD b/vendor/k8s.io/kubernetes/test/integration/serviceaccount/BUILD index a75c848bd..7ab77b249 100644 --- a/vendor/k8s.io/kubernetes/test/integration/serviceaccount/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/serviceaccount/BUILD @@ -21,6 +21,7 @@ go_test( "//pkg/controller:go_default_library", "//pkg/controller/serviceaccount:go_default_library", "//pkg/serviceaccount:go_default_library", + "//pkg/util/metrics:go_default_library", "//plugin/pkg/admission/serviceaccount:go_default_library", "//test/integration/framework:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/serviceaccount/service_account_test.go b/vendor/k8s.io/kubernetes/test/integration/serviceaccount/service_account_test.go index 4181fa056..b1efed587 100644 --- a/vendor/k8s.io/kubernetes/test/integration/serviceaccount/service_account_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/serviceaccount/service_account_test.go @@ -50,6 +50,7 @@ import ( "k8s.io/kubernetes/pkg/controller" serviceaccountcontroller "k8s.io/kubernetes/pkg/controller/serviceaccount" "k8s.io/kubernetes/pkg/serviceaccount" + "k8s.io/kubernetes/pkg/util/metrics" serviceaccountadmission "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" "k8s.io/kubernetes/test/integration/framework" ) @@ -63,13 +64,16 @@ const ( ) func TestServiceAccountAutoCreate(t *testing.T) { - c, _, stopFunc := startServiceAccountTestServer(t) + c, _, stopFunc, err := startServiceAccountTestServer(t) defer stopFunc() + if err != nil { + t.Fatalf("failed to setup ServiceAccounts server: %v", err) + } ns := "test-service-account-creation" // Create namespace - _, err := c.Core().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}) + _, err = c.Core().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}) if err != nil { t.Fatalf("could not create namespace: %v", err) } @@ -97,14 +101,17 @@ func TestServiceAccountAutoCreate(t *testing.T) { } func TestServiceAccountTokenAutoCreate(t *testing.T) { - c, _, stopFunc := startServiceAccountTestServer(t) + c, _, stopFunc, err := startServiceAccountTestServer(t) defer stopFunc() + if err != nil { + t.Fatalf("failed to setup ServiceAccounts server: %v", err) + } ns := "test-service-account-token-creation" name := "my-service-account" // Create namespace - _, err := c.Core().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}) + _, err = c.Core().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}) if err != nil { t.Fatalf("could not create namespace: %v", err) } @@ -192,13 +199,16 @@ func TestServiceAccountTokenAutoCreate(t *testing.T) { } func TestServiceAccountTokenAutoMount(t *testing.T) { - c, _, stopFunc := startServiceAccountTestServer(t) + c, _, stopFunc, err := startServiceAccountTestServer(t) defer stopFunc() + if err != nil { + t.Fatalf("failed to setup ServiceAccounts server: %v", err) + } ns := "auto-mount-ns" // Create "my" namespace - _, err := c.Core().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}) + _, err = c.Core().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}) if err != nil && !errors.IsAlreadyExists(err) { t.Fatalf("could not create namespace: %v", err) } @@ -271,14 +281,17 @@ func TestServiceAccountTokenAutoMount(t *testing.T) { } func TestServiceAccountTokenAuthentication(t *testing.T) { - c, config, stopFunc := startServiceAccountTestServer(t) + c, config, stopFunc, err := startServiceAccountTestServer(t) defer stopFunc() + if err != nil { + t.Fatalf("failed to setup ServiceAccounts server: %v", err) + } myns := "auth-ns" otherns := "other-ns" // Create "my" namespace - _, err := c.Core().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: myns}}) + _, err = c.Core().Namespaces().Create(&v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: myns}}) if err != nil && !errors.IsAlreadyExists(err) { t.Fatalf("could not create namespace: %v", err) } @@ -337,7 +350,7 @@ func TestServiceAccountTokenAuthentication(t *testing.T) { // startServiceAccountTestServer returns a started server // It is the responsibility of the caller to ensure the returned stopFunc is called -func startServiceAccountTestServer(t *testing.T) (*clientset.Clientset, restclient.Config, func()) { +func startServiceAccountTestServer(t *testing.T) (*clientset.Clientset, restclient.Config, func(), error) { // Listener h := &framework.MasterHolder{Initialized: make(chan struct{})} apiServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { @@ -372,7 +385,7 @@ func startServiceAccountTestServer(t *testing.T) (*clientset.Clientset, restclie // 1. The "root" user is allowed to do anything // 2. ServiceAccounts named "ro" are allowed read-only operations in their namespace // 3. ServiceAccounts named "rw" are allowed any operation in their namespace - authorizer := authorizer.AuthorizerFunc(func(attrs authorizer.Attributes) (bool, string, error) { + authorizer := authorizer.AuthorizerFunc(func(attrs authorizer.Attributes) (authorizer.Decision, string, error) { username := "" if user := attrs.GetUser(); user != nil { username = user.GetName() @@ -382,7 +395,7 @@ func startServiceAccountTestServer(t *testing.T) (*clientset.Clientset, restclie // If the user is "root"... if username == rootUserName { // allow them to do anything - return true, "", nil + return authorizer.DecisionAllow, "", nil } // If the user is a service account... @@ -392,15 +405,15 @@ func startServiceAccountTestServer(t *testing.T) (*clientset.Clientset, restclie switch serviceAccountName { case readOnlyServiceAccountName: if attrs.IsReadOnly() { - return true, "", nil + return authorizer.DecisionAllow, "", nil } case readWriteServiceAccountName: - return true, "", nil + return authorizer.DecisionAllow, "", nil } } } - return false, fmt.Sprintf("User %s is denied (ns=%s, readonly=%v, resource=%s)", username, ns, attrs.IsReadOnly(), attrs.GetResource()), nil + return authorizer.DecisionNoOpinion, fmt.Sprintf("User %s is denied (ns=%s, readonly=%v, resource=%s)", username, ns, attrs.IsReadOnly(), attrs.GetResource()), nil }) // Set up admission plugin to auto-assign serviceaccounts to pods @@ -419,30 +432,38 @@ func startServiceAccountTestServer(t *testing.T) (*clientset.Clientset, restclie // Start the service account and service account token controllers stopCh := make(chan struct{}) - tokenController := serviceaccountcontroller.NewTokensController( + stop := func() { + close(stopCh) + apiServer.Close() + } + + metrics.UnregisterMetricAndUntrackRateLimiterUsage("serviceaccount_tokens_controller") + tokenController, err := serviceaccountcontroller.NewTokensController( informers.Core().V1().ServiceAccounts(), informers.Core().V1().Secrets(), rootClientset, serviceaccountcontroller.TokensControllerOptions{TokenGenerator: serviceaccount.JWTTokenGenerator(serviceAccountKey)}, ) + if err != nil { + return rootClientset, clientConfig, stop, err + } go tokenController.Run(1, stopCh) - serviceAccountController := serviceaccountcontroller.NewServiceAccountsController( + metrics.UnregisterMetricAndUntrackRateLimiterUsage("serviceaccount_controller") + serviceAccountController, err := serviceaccountcontroller.NewServiceAccountsController( informers.Core().V1().ServiceAccounts(), informers.Core().V1().Namespaces(), rootClientset, serviceaccountcontroller.DefaultServiceAccountsControllerOptions(), ) + if err != nil { + return rootClientset, clientConfig, stop, err + } informers.Start(stopCh) internalInformers.Start(stopCh) go serviceAccountController.Run(5, stopCh) - stop := func() { - close(stopCh) - apiServer.Close() - } - - return rootClientset, clientConfig, stop + return rootClientset, clientConfig, stop, nil } func getServiceAccount(c *clientset.Clientset, ns string, name string, shouldWait bool) (*v1.ServiceAccount, error) { diff --git a/vendor/k8s.io/kubernetes/test/integration/storageclasses/storage_classes_test.go b/vendor/k8s.io/kubernetes/test/integration/storageclasses/storage_classes_test.go index 055b89155..09f01fdad 100644 --- a/vendor/k8s.io/kubernetes/test/integration/storageclasses/storage_classes_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/storageclasses/storage_classes_test.go @@ -79,7 +79,7 @@ func DoTestStorageClasses(t *testing.T, client clientset.Interface, ns *v1.Names } pvc.ObjectMeta.Name = "uses-storageclass" - if _, err := client.Core().PersistentVolumeClaims(ns.Name).Create(pvc); err != nil { + if _, err := client.CoreV1().PersistentVolumeClaims(ns.Name).Create(pvc); err != nil { t.Errorf("Failed to create pvc: %v", err) } defer deletePersistentVolumeClaimOrErrorf(t, client, ns.Name, pvc.Name) @@ -92,7 +92,7 @@ func deleteStorageClassOrErrorf(t *testing.T, c clientset.Interface, ns, name st } func deletePersistentVolumeClaimOrErrorf(t *testing.T, c clientset.Interface, ns, name string) { - if err := c.Core().PersistentVolumeClaims(ns).Delete(name, nil); err != nil { + if err := c.CoreV1().PersistentVolumeClaims(ns).Delete(name, nil); err != nil { t.Errorf("unable to delete persistent volume claim %v: %v", name, err) } } diff --git a/vendor/k8s.io/kubernetes/test/integration/utils.go b/vendor/k8s.io/kubernetes/test/integration/utils.go index 629a58a2d..c399ea337 100644 --- a/vendor/k8s.io/kubernetes/test/integration/utils.go +++ b/vendor/k8s.io/kubernetes/test/integration/utils.go @@ -28,7 +28,7 @@ import ( ) func DeletePodOrErrorf(t *testing.T, c clientset.Interface, ns, name string) { - if err := c.Core().Pods(ns).Delete(name, nil); err != nil { + if err := c.CoreV1().Pods(ns).Delete(name, nil); err != nil { t.Errorf("unable to delete pod %v: %v", name, err) } } diff --git a/vendor/k8s.io/kubernetes/test/integration/volume/BUILD b/vendor/k8s.io/kubernetes/test/integration/volume/BUILD index 13db30a13..46924643e 100644 --- a/vendor/k8s.io/kubernetes/test/integration/volume/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/volume/BUILD @@ -16,7 +16,7 @@ go_test( importpath = "k8s.io/kubernetes/test/integration/volume", tags = ["integration"], deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/cloudprovider/providers/fake:go_default_library", "//pkg/controller/volume/attachdetach:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/volume/persistent_volumes_test.go b/vendor/k8s.io/kubernetes/test/integration/volume/persistent_volumes_test.go index f229e339f..aaa409d33 100644 --- a/vendor/k8s.io/kubernetes/test/integration/volume/persistent_volumes_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/volume/persistent_volumes_test.go @@ -34,7 +34,7 @@ import ( clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" ref "k8s.io/client-go/tools/reference" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/api/testapi" fakecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/fake" persistentvolumecontroller "k8s.io/kubernetes/pkg/controller/volume/persistentvolume" @@ -258,7 +258,7 @@ func TestPersistentVolumeBindRace(t *testing.T) { // putting a bind manually on a pv should only match the claim it is bound to rand.Seed(time.Now().Unix()) claim := claims[rand.Intn(maxClaims-1)] - claimRef, err := ref.GetReference(api.Scheme, claim) + claimRef, err := ref.GetReference(legacyscheme.Scheme, claim) if err != nil { t.Fatalf("Unexpected error getting claimRef: %v", err) } @@ -494,7 +494,7 @@ func TestPersistentVolumeMultiPVs(t *testing.T) { pvs := make([]*v1.PersistentVolume, maxPVs) for i := 0; i < maxPVs; i++ { // This PV will be claimed, released, and deleted - pvs[i] = createPV("pv-"+strconv.Itoa(i), "/tmp/foo"+strconv.Itoa(i), strconv.Itoa(i)+"G", + pvs[i] = createPV("pv-"+strconv.Itoa(i), "/tmp/foo"+strconv.Itoa(i), strconv.Itoa(i+1)+"G", []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, v1.PersistentVolumeReclaimRetain) } @@ -765,7 +765,7 @@ func TestPersistentVolumeControllerStartup(t *testing.T) { pv := createPV(pvName, "/tmp/foo"+strconv.Itoa(i), "1G", []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce}, v1.PersistentVolumeReclaimRetain) - claimRef, err := ref.GetReference(api.Scheme, newPVC) + claimRef, err := ref.GetReference(legacyscheme.Scheme, newPVC) if err != nil { glog.V(3).Infof("unexpected error getting claim reference: %v", err) return diff --git a/vendor/k8s.io/kubernetes/test/kubemark/pre-existing/README.md b/vendor/k8s.io/kubernetes/test/kubemark/pre-existing/README.md index 3e6d48c19..3ea0ba792 100644 --- a/vendor/k8s.io/kubernetes/test/kubemark/pre-existing/README.md +++ b/vendor/k8s.io/kubernetes/test/kubemark/pre-existing/README.md @@ -4,7 +4,7 @@ - A set of Kubernetes control plane components running in a VM **Kubernetes Cluster** -- A real Kubernetes Cluster that has master and minions. The hollow-node pods +- A real Kubernetes Cluster that has master and nodes. The hollow-node pods are run in this cluster, but appear as nodes to the Kubemark Master ## Introduction diff --git a/vendor/k8s.io/kubernetes/test/soak/cauldron/BUILD b/vendor/k8s.io/kubernetes/test/soak/cauldron/BUILD index 364de937e..2c82694ae 100644 --- a/vendor/k8s.io/kubernetes/test/soak/cauldron/BUILD +++ b/vendor/k8s.io/kubernetes/test/soak/cauldron/BUILD @@ -17,7 +17,7 @@ go_library( srcs = ["cauldron.go"], importpath = "k8s.io/kubernetes/test/soak/cauldron", deps = [ - "//pkg/api:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//test/e2e/framework:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/soak/cauldron/cauldron.go b/vendor/k8s.io/kubernetes/test/soak/cauldron/cauldron.go index e07512f78..e2459629b 100644 --- a/vendor/k8s.io/kubernetes/test/soak/cauldron/cauldron.go +++ b/vendor/k8s.io/kubernetes/test/soak/cauldron/cauldron.go @@ -34,7 +34,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" restclient "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/api" + api "k8s.io/kubernetes/pkg/apis/core" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/test/e2e/framework" ) diff --git a/vendor/k8s.io/kubernetes/test/soak/serve_hostnames/BUILD b/vendor/k8s.io/kubernetes/test/soak/serve_hostnames/BUILD index 54e11e182..865693149 100644 --- a/vendor/k8s.io/kubernetes/test/soak/serve_hostnames/BUILD +++ b/vendor/k8s.io/kubernetes/test/soak/serve_hostnames/BUILD @@ -17,7 +17,7 @@ go_library( srcs = ["serve_hostnames.go"], importpath = "k8s.io/kubernetes/test/soak/serve_hostnames", deps = [ - "//pkg/api:go_default_library", + "//pkg/api/legacyscheme:go_default_library", "//test/e2e/framework:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/soak/serve_hostnames/serve_hostnames.go b/vendor/k8s.io/kubernetes/test/soak/serve_hostnames/serve_hostnames.go index 62883b71d..e94f2d88e 100644 --- a/vendor/k8s.io/kubernetes/test/soak/serve_hostnames/serve_hostnames.go +++ b/vendor/k8s.io/kubernetes/test/soak/serve_hostnames/serve_hostnames.go @@ -37,7 +37,7 @@ import ( clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" - "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/legacyscheme" e2e "k8s.io/kubernetes/test/e2e/framework" "github.com/golang/glog" @@ -278,7 +278,7 @@ func main() { continue } var r metav1.Status - if err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), hostname, &r); err != nil { + if err := runtime.DecodeInto(legacyscheme.Codecs.UniversalDecoder(), hostname, &r); err != nil { break } if r.Status == metav1.StatusFailure { diff --git a/vendor/k8s.io/kubernetes/test/test_owners.csv b/vendor/k8s.io/kubernetes/test/test_owners.csv index 80883884c..d7c2d109d 100644 --- a/vendor/k8s.io/kubernetes/test/test_owners.csv +++ b/vendor/k8s.io/kubernetes/test/test_owners.csv @@ -145,48 +145,6 @@ EmptyDir wrapper volumes should not conflict,deads2k,1,node Etcd failure should recover from SIGKILL,pmorie,1,api-machinery Etcd failure should recover from network partition with master,justinsb,1,api-machinery Events should be sent by kubelets and the scheduler about pods scheduling and running,zmerlynn,1,node -Federated ReplicaSet Features CRUD should be deleted from underlying clusters when OrphanDependents is false,perotinus,0,federation -Federated ReplicaSet Features CRUD should create and update matching replicasets in underlying clusters,perotinus,0,federation -Federated ReplicaSet Features CRUD should not be deleted from underlying clusters when OrphanDependents is nil,perotinus,0,federation -Federated ReplicaSet Features CRUD should not be deleted from underlying clusters when OrphanDependents is true,perotinus,0,federation -Federated ReplicaSet Features Preferences should create replicasets with max replicas preference,perotinus,0,federation -Federated ReplicaSet Features Preferences should create replicasets with min replicas preference,perotinus,0,federation -Federated ReplicaSet Features Preferences should create replicasets with weight preference,perotinus,0,federation -Federated ReplicaSet ReplicaSet objects should be created and deleted successfully,perotinus,0,federation -Federated Services Without Clusters should succeed when a service is created,shashidharatd,0,federation -Federated Services with clusters DNS non-local federated service missing local service should never find DNS entries for a missing local service,shashidharatd,0,federation -Federated Services with clusters DNS should be able to discover a federated service,shashidharatd,0,federation -Federated Services with clusters Federated Service should be deleted from underlying clusters when OrphanDependents is false,shashidharatd,0,federation -Federated Services with clusters Federated Service should create and update matching services in underlying clusters,shashidharatd,0,federation -Federated Services with clusters Federated Service should not be deleted from underlying clusters when OrphanDependents is nil,shashidharatd,0,federation -Federated Services with clusters Federated Service should not be deleted from underlying clusters when OrphanDependents is true,shashidharatd,0,federation -Federated Services with clusters Federated Service should recreate service shard in underlying clusters when service shard is deleted,shashidharatd,0,federation -Federated ingresses Federated Ingresses should be created and deleted successfully,madhusudancs,0,federation -Federated ingresses Federated Ingresses should be deleted from underlying clusters when OrphanDependents is false,madhusudancs,0,federation -Federated ingresses Federated Ingresses should create and update matching ingresses in underlying clusters,madhusudancs,0,federation -Federated ingresses Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is nil,madhusudancs,0,federation -Federated ingresses Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is true,madhusudancs,0,federation -"Federated types Federated %q resources should be created, read, updated and deleted successfully",marun,0,federation -Federation API server authentication should accept cluster resources when the client has HTTP Basic authentication credentials,nikhiljindal,0,federation -Federation API server authentication should accept cluster resources when the client has certificate authentication credentials,nikhiljindal,0,federation -Federation API server authentication should accept cluster resources when the client has token authentication credentials,nikhiljindal,0,federation -Federation API server authentication should not accept cluster resources when the client has invalid HTTP Basic authentication credentials,nikhiljindal,0,federation -Federation API server authentication should not accept cluster resources when the client has invalid token authentication credentials,nikhiljindal,0,federation -Federation API server authentication should not accept cluster resources when the client has no authentication credentials,nikhiljindal,0,federation -Federation apiserver Admission control should not be able to create resources if namespace does not exist,nikhiljindal,0,federation -Federation apiserver Cluster objects should be created and deleted successfully,nikhiljindal,0,federation -Federation deployments Deployment objects should be created and deleted successfully,nikhiljindal,0,federation -Federation deployments Federated Deployment should be deleted from underlying clusters when OrphanDependents is false,nikhiljindal,0,federation -Federation deployments Federated Deployment should create and update matching deployments in underlying clusters,nikhiljindal,0,federation -Federation deployments Federated Deployment should not be deleted from underlying clusters when OrphanDependents is nil,nikhiljindal,0,federation -Federation deployments Federated Deployment should not be deleted from underlying clusters when OrphanDependents is true,nikhiljindal,0,federation -Federation events Event objects should be created and deleted successfully,shashidharatd,0,federation -Federation namespace Namespace objects all resources in the namespace should be deleted when namespace is deleted,nikhiljindal,0,federation -Federation namespace Namespace objects deletes replicasets in the namespace when the namespace is deleted,nikhiljindal,0,federation -Federation namespace Namespace objects should be created and deleted successfully,nikhiljindal,0,federation -Federation namespace Namespace objects should be deleted from underlying clusters when OrphanDependents is false,nikhiljindal,0,federation -Federation namespace Namespace objects should not be deleted from underlying clusters when OrphanDependents is nil,nikhiljindal,0,federation -Federation namespace Namespace objects should not be deleted from underlying clusters when OrphanDependents is true,nikhiljindal,0,federation Firewall rule should create valid firewall rules for LoadBalancer type service,MrHohn,0,network Firewall rule should have correct firewall rules for e2e cluster,MrHohn,0,network GCP Volumes GlusterFS should be mountable,nikhiljindal,0,storage @@ -540,7 +498,6 @@ Summary API when querying /stats/summary should report resource usage through th Sysctls should reject invalid sysctls,davidopp,1,node Sysctls should support sysctls,Random-Liu,1,node Sysctls should support unsafe sysctls which are actually whitelisted,deads2k,1,node -ThirdParty resources Simple Third Party creating/deleting thirdparty objects works,luxas,1,api-machinery Upgrade cluster upgrade should maintain a functioning cluster,luxas,1,cluster-lifecycle Upgrade master upgrade should maintain a functioning cluster,xiang90,1,cluster-lifecycle Upgrade node upgrade should maintain a functioning cluster,zmerlynn,1,cluster-lifecycle @@ -587,27 +544,6 @@ k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types,caesarxuchao,0, k8s.io/kubernetes/cmd/libs/go2idl/go-to-protobuf/protobuf,smarterclayton,0, k8s.io/kubernetes/cmd/libs/go2idl/openapi-gen/generators,davidopp,1, k8s.io/kubernetes/examples,Random-Liu,0, -k8s.io/kubernetes/federation/apis/federation/install,nikhiljindal,0, -k8s.io/kubernetes/federation/apis/federation/validation,nikhiljindal,0, -k8s.io/kubernetes/federation/cmd/federation-controller-manager/app,kzwang,0, -k8s.io/kubernetes/federation/pkg/dnsprovider,sttts,1, -k8s.io/kubernetes/federation/pkg/dnsprovider/providers/aws/route53,cjcullen,1, -k8s.io/kubernetes/federation/pkg/dnsprovider/providers/coredns,brendandburns,0, -k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns,madhusudancs,1, -k8s.io/kubernetes/federation/pkg/federation-controller/cluster,nikhiljindal,0, -k8s.io/kubernetes/federation/pkg/federation-controller/deployment,zmerlynn,1, -k8s.io/kubernetes/federation/pkg/federation-controller/ingress,vishh,1, -k8s.io/kubernetes/federation/pkg/federation-controller/replicaset,roberthbailey,1, -k8s.io/kubernetes/federation/pkg/federation-controller/secret,apelisse,1, -k8s.io/kubernetes/federation/pkg/federation-controller/service,pmorie,1, -k8s.io/kubernetes/federation/pkg/federation-controller/util,bgrant0607,1, -k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink,luxas,1, -k8s.io/kubernetes/federation/pkg/federation-controller/util/planner,Q-Lee,1, -k8s.io/kubernetes/federation/pkg/federation-controller/util/podanalyzer,caesarxuchao,1, -k8s.io/kubernetes/federation/pkg/kubefed,madhusudancs,0, -k8s.io/kubernetes/federation/pkg/kubefed/init,madhusudancs,0, -k8s.io/kubernetes/federation/registry/cluster,nikhiljindal,0, -k8s.io/kubernetes/federation/registry/cluster/etcd,nikhiljindal,0, k8s.io/kubernetes/hack,thockin,1, k8s.io/kubernetes/hack/cmd/teststale,thockin,1, k8s.io/kubernetes/pkg/api,Q-Lee,1, @@ -821,10 +757,6 @@ k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy/storage,dchen1107,1, k8s.io/kubernetes/pkg/registry/extensions/replicaset,rrati,0, k8s.io/kubernetes/pkg/registry/extensions/replicaset/storage,wojtek-t,1, k8s.io/kubernetes/pkg/registry/extensions/rest,rrati,0, -k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresource,mwielgus,1, -k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresource/storage,mikedanese,1, -k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata,sttts,1, -k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata/storage,childsb,1, k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget,Q-Lee,1, k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/storage,dchen1107,1, k8s.io/kubernetes/pkg/registry/rbac/reconciliation,roberthbailey,1, @@ -944,7 +876,6 @@ k8s.io/kubernetes/test/integration/client,Q-Lee,1, k8s.io/kubernetes/test/integration/configmap,Q-Lee,1, k8s.io/kubernetes/test/integration/evictions,brendandburns,0, k8s.io/kubernetes/test/integration/examples,maisem,1, -k8s.io/kubernetes/test/integration/federation,rrati,0, k8s.io/kubernetes/test/integration/garbagecollector,jlowdermilk,1, k8s.io/kubernetes/test/integration/kubeaggregator,deads2k,1, k8s.io/kubernetes/test/integration/kubectl,rrati,0, diff --git a/vendor/k8s.io/kubernetes/test/test_owners.json b/vendor/k8s.io/kubernetes/test/test_owners.json index 02f4fed72..805efcdcb 100644 --- a/vendor/k8s.io/kubernetes/test/test_owners.json +++ b/vendor/k8s.io/kubernetes/test/test_owners.json @@ -1,122 +1,118 @@ { "api-machinery": [ - "Etcd", - "Generated", - "HA-master", - "Multi-AZ", - "Namespaces", - "ResourceQuota", - "Staging", - "Summary", + "Etcd", + "Generated", + "HA-master", + "Multi-AZ", + "Namespaces", + "ResourceQuota", + "Staging", + "Summary", "ThirdParty" - ], + ], "apps": [ - "Cassandra", - "ConfigMap", - "CronJob", - "Daemon", - "Deployment", - "Job", - "Mesos", - "Pet", - "Redis", - "ReplicaSet", - "ReplicationController", - "Rescheduler", - "RethinkDB", - "Secret", - "Security", - "Spark", - "StatefulSet", + "Cassandra", + "ConfigMap", + "CronJob", + "Daemon", + "Deployment", + "Job", + "Mesos", + "Pet", + "Redis", + "ReplicaSet", + "ReplicationController", + "Rescheduler", + "RethinkDB", + "Secret", + "Security", + "Spark", + "StatefulSet", "Storm" - ], + ], "autoscaling": [ - "Cluster size", + "Cluster size", "Horizontal" - ], + ], "big-data": [ "Hazelcast" - ], + ], "cli": [ "Kubectl" - ], + ], "cluster-lifecycle": [ - "GKE node", - "Garbage", - "Nodes", + "GKE node", + "Garbage", + "Nodes", "Upgrade" - ], - "federation": [ - "Federated", - "Federation" - ], + ], "instrumentation": [ - "Cluster level", - "Kibana", - "MetricsGrabber", + "Cluster level", + "Kibana", + "MetricsGrabber", "Monitoring" - ], + ], "network": [ - "ClusterDns", - "DNS", - "ESIPP", - "Firewall", - "Load", - "Network", + "ClusterDns", + "DNS", + "ESIPP", + "Firewall", + "Load", + "Network", "Service" - ], + ], "node": [ - "AppArmor", - "Cadvisor", - "Container", - "Docker", - "Downward", - "EmptyDir", - "Events", - "HostPath", - "ImageID", - "InitContainer", - "Initial", - "Kubelet", - "LimitRange", - "Liveness", - "Logging", - "MemoryEviction", - "MirrorPod", - "NodeProblemDetector", - "Opaque", - "Pod garbage", - "Pods", - "Port", - "PreStop", - "PrivilegedPod", - "Probing", - "Proxy", - "Reboot", - "Restart", - "SimpleMount", - "Sysctls", - "Variable", - "kubelet", + "AppArmor", + "Cadvisor", + "Container", + "Docker", + "Downward", + "EmptyDir", + "Events", + "HostPath", + "ImageID", + "InitContainer", + "Initial", + "Kubelet", + "LimitRange", + "Liveness", + "Logging", + "MemoryEviction", + "MirrorPod", + "NodeProblemDetector", + "Opaque", + "Pod garbage", + "Pods", + "Port", + "PreStop", + "PrivilegedPod", + "Probing", + "Proxy", + "Reboot", + "Restart", + "SimpleMount", + "Sysctls", + "Variable", + "kubelet", "when" - ], + ], "scalability": [ "Density" - ], + ], "scheduling": [ - "DisruptionController", - "NoExecuteTaintManager", + "DisruptionController", + "NoExecuteTaintManager", "SchedulerPredicates" - ], + ], "storage": [ - "Dynamic", - "GCP", - "GKE local", - "PersistentVolumes", - "Pod Disks", - "Projected", + "Dynamic", + "GCP", + "GKE local", + "PersistentVolumes", + "Pod Disks", + "Projected", "Volume" - ], + ], "ui": [ "Kubernetes" ] diff --git a/vendor/k8s.io/kubernetes/test/utils/BUILD b/vendor/k8s.io/kubernetes/test/utils/BUILD index 47f6361eb..a2e604593 100644 --- a/vendor/k8s.io/kubernetes/test/utils/BUILD +++ b/vendor/k8s.io/kubernetes/test/utils/BUILD @@ -18,9 +18,9 @@ go_library( ], importpath = "k8s.io/kubernetes/test/utils", deps = [ - "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/apis/batch:go_default_library", + "//pkg/apis/core:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/controller/deployment/util:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/utils/density_utils.go b/vendor/k8s.io/kubernetes/test/utils/density_utils.go index c63b84e76..c607e5c94 100644 --- a/vendor/k8s.io/kubernetes/test/utils/density_utils.go +++ b/vendor/k8s.io/kubernetes/test/utils/density_utils.go @@ -42,7 +42,7 @@ func AddLabelsToNode(c clientset.Interface, nodeName string, labels map[string]s patch := fmt.Sprintf(`{"metadata":{"labels":%v}}`, labelString) var err error for attempt := 0; attempt < retries; attempt++ { - _, err = c.Core().Nodes().Patch(nodeName, types.MergePatchType, []byte(patch)) + _, err = c.CoreV1().Nodes().Patch(nodeName, types.MergePatchType, []byte(patch)) if err != nil { if !apierrs.IsConflict(err) { return err @@ -61,7 +61,7 @@ func RemoveLabelOffNode(c clientset.Interface, nodeName string, labelKeys []stri var node *v1.Node var err error for attempt := 0; attempt < retries; attempt++ { - node, err = c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err = c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) if err != nil { return err } @@ -74,7 +74,7 @@ func RemoveLabelOffNode(c clientset.Interface, nodeName string, labelKeys []stri } delete(node.Labels, labelKey) } - _, err = c.Core().Nodes().Update(node) + _, err = c.CoreV1().Nodes().Update(node) if err != nil { if !apierrs.IsConflict(err) { return err @@ -92,7 +92,7 @@ func RemoveLabelOffNode(c clientset.Interface, nodeName string, labelKeys []stri // VerifyLabelsRemoved checks if Node for given nodeName does not have any of labels from labelKeys. // Return non-nil error if it does. func VerifyLabelsRemoved(c clientset.Interface, nodeName string, labelKeys []string) error { - node, err := c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := c.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) if err != nil { return err } diff --git a/vendor/k8s.io/kubernetes/test/utils/deployment.go b/vendor/k8s.io/kubernetes/test/utils/deployment.go index a531e7695..9035c2680 100644 --- a/vendor/k8s.io/kubernetes/test/utils/deployment.go +++ b/vendor/k8s.io/kubernetes/test/utils/deployment.go @@ -51,7 +51,7 @@ func LogReplicaSetsOfDeployment(deployment *extensions.Deployment, allOldRSs []* func LogPodsOfDeployment(c clientset.Interface, deployment *extensions.Deployment, rsList []*extensions.ReplicaSet, logf LogfFn) { minReadySeconds := deployment.Spec.MinReadySeconds podListFunc := func(namespace string, options metav1.ListOptions) (*v1.PodList, error) { - return c.Core().Pods(namespace).List(options) + return c.CoreV1().Pods(namespace).List(options) } podList, err := deploymentutil.ListPods(deployment, rsList, podListFunc) @@ -68,58 +68,34 @@ func LogPodsOfDeployment(c clientset.Interface, deployment *extensions.Deploymen } } -// Waits for the deployment status to become valid (i.e. max unavailable and max surge aren't violated anymore). -// Note that the status should stay valid at all times unless shortly after a scaling event or the deployment is just created. -// To verify that the deployment status is valid and wait for the rollout to finish, use WaitForDeploymentStatus instead. -func WaitForDeploymentStatusValid(c clientset.Interface, d *extensions.Deployment, logf LogfFn, pollInterval, pollTimeout time.Duration) error { +// Waits for the deployment to complete. +// If during a rolling update (rolling == true), returns an error if the deployment's +// rolling update strategy (max unavailable or max surge) is broken at any times. +// It's not seen as a rolling update if shortly after a scaling event or the deployment is just created. +func waitForDeploymentCompleteMaybeCheckRolling(c clientset.Interface, d *extensions.Deployment, rolling bool, logf LogfFn, pollInterval, pollTimeout time.Duration) error { var ( - oldRSs, allOldRSs, allRSs []*extensions.ReplicaSet - newRS *extensions.ReplicaSet - deployment *extensions.Deployment - reason string + deployment *extensions.Deployment + reason string ) - err := wait.Poll(pollInterval, pollTimeout, func() (bool, error) { + err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { var err error - deployment, err = c.Extensions().Deployments(d.Namespace).Get(d.Name, metav1.GetOptions{}) + deployment, err = c.ExtensionsV1beta1().Deployments(d.Namespace).Get(d.Name, metav1.GetOptions{}) if err != nil { return false, err } - oldRSs, allOldRSs, newRS, err = deploymentutil.GetAllReplicaSets(deployment, c.ExtensionsV1beta1()) - if err != nil { - return false, err - } - if newRS == nil { - // New RC hasn't been created yet. - reason = "new replica set hasn't been created yet" - logf(reason) - return false, nil - } - allRSs = append(oldRSs, newRS) - // The old/new ReplicaSets need to contain the pod-template-hash label - for i := range allRSs { - if !labelsutil.SelectorHasLabel(allRSs[i].Spec.Selector, extensions.DefaultDeploymentUniqueLabelKey) { - reason = "all replica sets need to contain the pod-template-hash label" - logf(reason) - return false, nil + + // If during a rolling update, make sure rolling update strategy isn't broken at any times. + if rolling { + reason, err = checkRollingUpdateStatus(c, deployment, logf) + if err != nil { + return false, err } - } - totalCreated := deploymentutil.GetReplicaCountForReplicaSets(allRSs) - maxCreated := *(deployment.Spec.Replicas) + deploymentutil.MaxSurge(*deployment) - if totalCreated > maxCreated { - reason = fmt.Sprintf("total pods created: %d, more than the max allowed: %d", totalCreated, maxCreated) - logf(reason) - return false, nil - } - minAvailable := deploymentutil.MinAvailable(deployment) - if deployment.Status.AvailableReplicas < minAvailable { - reason = fmt.Sprintf("total pods available: %d, less than the min required: %d", deployment.Status.AvailableReplicas, minAvailable) logf(reason) - return false, nil } // When the deployment status and its underlying resources reach the desired state, we're done - if deploymentutil.DeploymentComplete(deployment, &deployment.Status) { + if deploymentutil.DeploymentComplete(d, &deployment.Status) { return true, nil } @@ -130,8 +106,6 @@ func WaitForDeploymentStatusValid(c clientset.Interface, d *extensions.Deploymen }) if err == wait.ErrWaitTimeout { - LogReplicaSetsOfDeployment(deployment, allOldRSs, newRS, logf) - LogPodsOfDeployment(c, deployment, allRSs, logf) err = fmt.Errorf("%s", reason) } if err != nil { @@ -140,53 +114,77 @@ func WaitForDeploymentStatusValid(c clientset.Interface, d *extensions.Deploymen return nil } +func checkRollingUpdateStatus(c clientset.Interface, deployment *extensions.Deployment, logf LogfFn) (string, error) { + var reason string + oldRSs, allOldRSs, newRS, err := deploymentutil.GetAllReplicaSets(deployment, c.ExtensionsV1beta1()) + if err != nil { + return "", err + } + if newRS == nil { + // New RC hasn't been created yet. + reason = "new replica set hasn't been created yet" + return reason, nil + } + allRSs := append(oldRSs, newRS) + // The old/new ReplicaSets need to contain the pod-template-hash label + for i := range allRSs { + if !labelsutil.SelectorHasLabel(allRSs[i].Spec.Selector, extensions.DefaultDeploymentUniqueLabelKey) { + reason = "all replica sets need to contain the pod-template-hash label" + return reason, nil + } + } + + // Check max surge and min available + totalCreated := deploymentutil.GetReplicaCountForReplicaSets(allRSs) + maxCreated := *(deployment.Spec.Replicas) + deploymentutil.MaxSurge(*deployment) + if totalCreated > maxCreated { + LogReplicaSetsOfDeployment(deployment, allOldRSs, newRS, logf) + LogPodsOfDeployment(c, deployment, allRSs, logf) + return "", fmt.Errorf("total pods created: %d, more than the max allowed: %d", totalCreated, maxCreated) + } + minAvailable := deploymentutil.MinAvailable(deployment) + if deployment.Status.AvailableReplicas < minAvailable { + LogReplicaSetsOfDeployment(deployment, allOldRSs, newRS, logf) + LogPodsOfDeployment(c, deployment, allRSs, logf) + return "", fmt.Errorf("total pods available: %d, less than the min required: %d", deployment.Status.AvailableReplicas, minAvailable) + } + return "", nil +} + +// Waits for the deployment to complete, and check rolling update strategy isn't broken at any times. +// Rolling update strategy should not be broken during a rolling update. +func WaitForDeploymentCompleteAndCheckRolling(c clientset.Interface, d *extensions.Deployment, logf LogfFn, pollInterval, pollTimeout time.Duration) error { + rolling := true + return waitForDeploymentCompleteMaybeCheckRolling(c, d, rolling, logf, pollInterval, pollTimeout) +} + +// Waits for the deployment to complete, and don't check if rolling update strategy is broken. +// Rolling update strategy is used only during a rolling update, and can be violated in other situations, +// such as shortly after a scaling event or the deployment is just created. +func WaitForDeploymentComplete(c clientset.Interface, d *extensions.Deployment, logf LogfFn, pollInterval, pollTimeout time.Duration) error { + rolling := false + return waitForDeploymentCompleteMaybeCheckRolling(c, d, rolling, logf, pollInterval, pollTimeout) +} + // WaitForDeploymentRevisionAndImage waits for the deployment's and its new RS's revision and container image to match the given revision and image. // Note that deployment revision and its new RS revision should be updated shortly, so we only wait for 1 minute here to fail early. func WaitForDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName string, revision, image string, logf LogfFn, pollInterval, pollTimeout time.Duration) error { var deployment *extensions.Deployment var newRS *extensions.ReplicaSet var reason string - err := wait.Poll(pollInterval, pollTimeout, func() (bool, error) { + err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { var err error - deployment, err = c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + deployment, err = c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) if err != nil { return false, err } // The new ReplicaSet needs to be non-nil and contain the pod-template-hash label - newRS, err = deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) - if err != nil { return false, err } - if newRS == nil { - reason = fmt.Sprintf("New replica set for deployment %q is yet to be created", deployment.Name) - logf(reason) - return false, nil - } - if !labelsutil.SelectorHasLabel(newRS.Spec.Selector, extensions.DefaultDeploymentUniqueLabelKey) { - reason = fmt.Sprintf("New replica set %q doesn't have DefaultDeploymentUniqueLabelKey", newRS.Name) - logf(reason) - return false, nil - } - // Check revision of this deployment, and of the new replica set of this deployment - if deployment.Annotations == nil || deployment.Annotations[deploymentutil.RevisionAnnotation] != revision { - reason = fmt.Sprintf("Deployment %q doesn't have the required revision set", deployment.Name) - logf(reason) - return false, nil - } - if !containsImage(deployment.Spec.Template.Spec.Containers, image) { - reason = fmt.Sprintf("Deployment %q doesn't have the required image %s set", deployment.Name, image) - logf(reason) - return false, nil - } - if newRS.Annotations == nil || newRS.Annotations[deploymentutil.RevisionAnnotation] != revision { - reason = fmt.Sprintf("New replica set %q doesn't have the required revision set", newRS.Name) - logf(reason) - return false, nil - } - if !containsImage(newRS.Spec.Template.Spec.Containers, image) { - reason = fmt.Sprintf("New replica set %q doesn't have the required image %s.", newRS.Name, image) + if err := checkRevisionAndImage(deployment, newRS, revision, image); err != nil { + reason = err.Error() logf(reason) return false, nil } @@ -205,6 +203,46 @@ func WaitForDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName return nil } +// CheckDeploymentRevisionAndImage checks if the input deployment's and its new replica set's revision and image are as expected. +func CheckDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName, revision, image string) error { + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + if err != nil { + return fmt.Errorf("unable to get deployment %s during revision check: %v", deploymentName, err) + } + + // Check revision of the new replica set of this deployment + newRS, err := deploymentutil.GetNewReplicaSet(deployment, c.ExtensionsV1beta1()) + if err != nil { + return fmt.Errorf("unable to get new replicaset of deployment %s during revision check: %v", deploymentName, err) + } + return checkRevisionAndImage(deployment, newRS, revision, image) +} + +func checkRevisionAndImage(deployment *extensions.Deployment, newRS *extensions.ReplicaSet, revision, image string) error { + // The new ReplicaSet needs to be non-nil and contain the pod-template-hash label + if newRS == nil { + return fmt.Errorf("new replicaset for deployment %q is yet to be created", deployment.Name) + } + if !labelsutil.SelectorHasLabel(newRS.Spec.Selector, extensions.DefaultDeploymentUniqueLabelKey) { + return fmt.Errorf("new replica set %q doesn't have %q label selector", newRS.Name, extensions.DefaultDeploymentUniqueLabelKey) + } + // Check revision of this deployment, and of the new replica set of this deployment + if deployment.Annotations == nil || deployment.Annotations[deploymentutil.RevisionAnnotation] != revision { + return fmt.Errorf("deployment %q doesn't have the required revision set", deployment.Name) + } + if newRS.Annotations == nil || newRS.Annotations[deploymentutil.RevisionAnnotation] != revision { + return fmt.Errorf("new replicaset %q doesn't have the required revision set", newRS.Name) + } + // Check the image of this deployment, and of the new replica set of this deployment + if !containsImage(deployment.Spec.Template.Spec.Containers, image) { + return fmt.Errorf("deployment %q doesn't have the required image %s set", deployment.Name, image) + } + if !containsImage(newRS.Spec.Template.Spec.Containers, image) { + return fmt.Errorf("new replica set %q doesn't have the required image %s.", newRS.Name, image) + } + return nil +} + func containsImage(containers []v1.Container, imageName string) bool { for _, container := range containers { if container.Image == imageName { @@ -244,3 +282,61 @@ func WaitForObservedDeployment(c clientset.Interface, ns, deploymentName string, return c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) }, desiredGeneration, 2*time.Second, 1*time.Minute) } + +// WaitForDeploymentRollbackCleared waits for given deployment either started rolling back or doesn't need to rollback. +func WaitForDeploymentRollbackCleared(c clientset.Interface, ns, deploymentName string, pollInterval, pollTimeout time.Duration) error { + err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { + deployment, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + if err != nil { + return false, err + } + // Rollback not set or is kicked off + if deployment.Spec.RollbackTo == nil { + return true, nil + } + return false, nil + }) + if err != nil { + return fmt.Errorf("error waiting for deployment %s rollbackTo to be cleared: %v", deploymentName, err) + } + return nil +} + +// WaitForDeploymentUpdatedReplicasLTE waits for given deployment to be observed by the controller and has at least a number of updatedReplicas +func WaitForDeploymentUpdatedReplicasLTE(c clientset.Interface, ns, deploymentName string, minUpdatedReplicas int32, desiredGeneration int64, pollInterval, pollTimeout time.Duration) error { + var deployment *extensions.Deployment + err := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { + d, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + if err != nil { + return false, err + } + deployment = d + return deployment.Status.ObservedGeneration >= desiredGeneration && deployment.Status.UpdatedReplicas >= minUpdatedReplicas, nil + }) + if err != nil { + return fmt.Errorf("error waiting for deployment %q to have at least %d updatedReplicas: %v; latest .status.updatedReplicas: %d", deploymentName, minUpdatedReplicas, err, deployment.Status.UpdatedReplicas) + } + return nil +} + +func WaitForDeploymentWithCondition(c clientset.Interface, ns, deploymentName, reason string, condType extensions.DeploymentConditionType, logf LogfFn, pollInterval, pollTimeout time.Duration) error { + var deployment *extensions.Deployment + pollErr := wait.PollImmediate(pollInterval, pollTimeout, func() (bool, error) { + d, err := c.ExtensionsV1beta1().Deployments(ns).Get(deploymentName, metav1.GetOptions{}) + if err != nil { + return false, err + } + deployment = d + cond := deploymentutil.GetDeploymentCondition(deployment.Status, condType) + return cond != nil && cond.Reason == reason, nil + }) + if pollErr == wait.ErrWaitTimeout { + pollErr = fmt.Errorf("deployment %q never updated with the desired condition and reason, latest deployment conditions: %+v", deployment.Name, deployment.Status.Conditions) + _, allOldRSs, newRS, err := deploymentutil.GetAllReplicaSets(deployment, c.ExtensionsV1beta1()) + if err == nil { + LogReplicaSetsOfDeployment(deployment, allOldRSs, newRS, logf) + LogPodsOfDeployment(c, deployment, append(allOldRSs, newRS), logf) + } + } + return pollErr +} diff --git a/vendor/k8s.io/kubernetes/test/utils/image/manifest.go b/vendor/k8s.io/kubernetes/test/utils/image/manifest.go index dda151abe..d7c88eff4 100644 --- a/vendor/k8s.io/kubernetes/test/utils/image/manifest.go +++ b/vendor/k8s.io/kubernetes/test/utils/image/manifest.go @@ -77,7 +77,7 @@ var ( Porter = ImageConfig{e2eRegistry, "porter", "1.0"} PortForwardTester = ImageConfig{e2eRegistry, "port-forward-tester", "1.0"} Redis = ImageConfig{e2eRegistry, "redis", "1.0"} - ResourceConsumer = ImageConfig{e2eRegistry, "resource-consumer", "1.1"} + ResourceConsumer = ImageConfig{e2eRegistry, "resource-consumer", "1.3"} ResourceController = ImageConfig{e2eRegistry, "resource-consumer/controller", "1.0"} ServeHostname = ImageConfig{e2eRegistry, "serve-hostname", "1.0"} TestWebserver = ImageConfig{e2eRegistry, "test-webserver", "1.0"} @@ -86,21 +86,3 @@ var ( func GetE2EImage(image ImageConfig) string { return fmt.Sprintf("%s/%s-%s:%s", image.registry, image.name, runtime.GOARCH, image.version) } - -// GetBusyboxImage returns multi-arch busybox docker image -func GetBusyBoxImage() string { - switch arch := runtime.GOARCH; arch { - case "amd64": - return "busybox" - case "arm": - return "arm32v6/busybox" - case "arm64": - return "arm64v8/busybox" - case "ppc64le": - return "ppc64le/busybox" - case "s390x": - return "s390x/busybox" - default: - return "" - } -} diff --git a/vendor/k8s.io/kubernetes/test/utils/pod_store.go b/vendor/k8s.io/kubernetes/test/utils/pod_store.go index b7f4d3797..5005a1f60 100644 --- a/vendor/k8s.io/kubernetes/test/utils/pod_store.go +++ b/vendor/k8s.io/kubernetes/test/utils/pod_store.go @@ -39,13 +39,13 @@ func NewPodStore(c clientset.Interface, namespace string, label labels.Selector, ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { options.LabelSelector = label.String() options.FieldSelector = field.String() - obj, err := c.Core().Pods(namespace).List(options) + obj, err := c.CoreV1().Pods(namespace).List(options) return runtime.Object(obj), err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { options.LabelSelector = label.String() options.FieldSelector = field.String() - return c.Core().Pods(namespace).Watch(options) + return c.CoreV1().Pods(namespace).Watch(options) }, } store := cache.NewStore(cache.MetaNamespaceKeyFunc) diff --git a/vendor/k8s.io/kubernetes/test/utils/runners.go b/vendor/k8s.io/kubernetes/test/utils/runners.go index e3dc589b1..2eaf28e48 100644 --- a/vendor/k8s.io/kubernetes/test/utils/runners.go +++ b/vendor/k8s.io/kubernetes/test/utils/runners.go @@ -39,8 +39,8 @@ import ( "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/util/workqueue" - "k8s.io/kubernetes/pkg/api" batchinternal "k8s.io/kubernetes/pkg/apis/batch" + api "k8s.io/kubernetes/pkg/apis/core" extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -61,7 +61,7 @@ func removePtr(replicas *int32) int32 { func WaitUntilPodIsScheduled(c clientset.Interface, name, namespace string, timeout time.Duration) (*v1.Pod, error) { // Wait until it's scheduled - p, err := c.Core().Pods(namespace).Get(name, metav1.GetOptions{ResourceVersion: "0"}) + p, err := c.CoreV1().Pods(namespace).Get(name, metav1.GetOptions{ResourceVersion: "0"}) if err == nil && p.Spec.NodeName != "" { return p, nil } @@ -69,7 +69,7 @@ func WaitUntilPodIsScheduled(c clientset.Interface, name, namespace string, time startTime := time.Now() for startTime.Add(timeout).After(time.Now()) { time.Sleep(pollingPeriod) - p, err := c.Core().Pods(namespace).Get(name, metav1.GetOptions{ResourceVersion: "0"}) + p, err := c.CoreV1().Pods(namespace).Get(name, metav1.GetOptions{ResourceVersion: "0"}) if err == nil && p.Spec.NodeName != "" { return p, nil } @@ -83,7 +83,7 @@ func RunPodAndGetNodeName(c clientset.Interface, pod *v1.Pod, timeout time.Durat var err error // Create a Pod for i := 0; i < retries; i++ { - _, err = c.Core().Pods(namespace).Create(pod) + _, err = c.CoreV1().Pods(namespace).Create(pod) if err == nil || apierrs.IsAlreadyExists(err) { break } @@ -112,23 +112,24 @@ type RunObjectConfig interface { } type RCConfig struct { - Affinity *v1.Affinity - Client clientset.Interface - InternalClient internalclientset.Interface - Image string - Command []string - Name string - Namespace string - PollInterval time.Duration - Timeout time.Duration - PodStatusFile *os.File - Replicas int - CpuRequest int64 // millicores - CpuLimit int64 // millicores - MemRequest int64 // bytes - MemLimit int64 // bytes - ReadinessProbe *v1.Probe - DNSPolicy *v1.DNSPolicy + Affinity *v1.Affinity + Client clientset.Interface + InternalClient internalclientset.Interface + Image string + Command []string + Name string + Namespace string + PollInterval time.Duration + Timeout time.Duration + PodStatusFile *os.File + Replicas int + CpuRequest int64 // millicores + CpuLimit int64 // millicores + MemRequest int64 // bytes + MemLimit int64 // bytes + ReadinessProbe *v1.Probe + DNSPolicy *v1.DNSPolicy + PriorityClassName string // Env vars, set the same for every pod. Env map[string]string @@ -315,7 +316,7 @@ func (config *DeploymentConfig) create() error { config.applyTo(&deployment.Spec.Template) - _, err := config.Client.Extensions().Deployments(config.Namespace).Create(deployment) + _, err := config.Client.ExtensionsV1beta1().Deployments(config.Namespace).Create(deployment) if err != nil { return fmt.Errorf("Error creating deployment: %v", err) } @@ -382,7 +383,7 @@ func (config *ReplicaSetConfig) create() error { config.applyTo(&rs.Spec.Template) - _, err := config.Client.Extensions().ReplicaSets(config.Namespace).Create(rs) + _, err := config.Client.ExtensionsV1beta1().ReplicaSets(config.Namespace).Create(rs) if err != nil { return fmt.Errorf("Error creating replica set: %v", err) } @@ -445,7 +446,7 @@ func (config *JobConfig) create() error { config.applyTo(&job.Spec.Template) - _, err := config.Client.Batch().Jobs(config.Namespace).Create(job) + _, err := config.Client.BatchV1().Jobs(config.Namespace).Create(job) if err != nil { return fmt.Errorf("Error creating job: %v", err) } @@ -539,6 +540,7 @@ func (config *RCConfig) create() error { DNSPolicy: *config.DNSPolicy, NodeSelector: config.NodeSelector, TerminationGracePeriodSeconds: &one, + PriorityClassName: config.PriorityClassName, }, }, }, @@ -553,7 +555,7 @@ func (config *RCConfig) create() error { config.applyTo(rc.Spec.Template) - _, err := config.Client.Core().ReplicationControllers(config.Namespace).Create(rc) + _, err := config.Client.CoreV1().ReplicationControllers(config.Namespace).Create(rc) if err != nil { return fmt.Errorf("Error creating replication controller: %v", err) } @@ -615,6 +617,9 @@ func (config *RCConfig) applyTo(template *v1.PodTemplateSpec) { if len(config.VolumeMounts) > 0 { template.Spec.Containers[0].VolumeMounts = config.VolumeMounts } + if config.PriorityClassName != "" { + template.Spec.PriorityClassName = config.PriorityClassName + } } type RCStartupStatus struct { @@ -760,7 +765,7 @@ func (config *RCConfig) start() error { if oldRunning != config.Replicas { // List only pods from a given replication controller. options := metav1.ListOptions{LabelSelector: label.String()} - if pods, err := config.Client.Core().Pods(metav1.NamespaceAll).List(options); err == nil { + if pods, err := config.Client.CoreV1().Pods(metav1.NamespaceAll).List(options); err == nil { for _, pod := range pods.Items { config.RCConfigLog("Pod %s\t%s\t%s\t%s", pod.Name, pod.Spec.NodeName, pod.Status.Phase, pod.DeletionTimestamp) @@ -789,7 +794,7 @@ func StartPods(c clientset.Interface, replicas int, namespace string, podNamePre pod.ObjectMeta.Labels["name"] = podName pod.ObjectMeta.Labels["startPodsID"] = startPodsID pod.Spec.Containers[0].Name = podName - _, err := c.Core().Pods(namespace).Create(&pod) + _, err := c.CoreV1().Pods(namespace).Create(&pod) if err != nil { return err } @@ -890,7 +895,7 @@ func DoPrepareNode(client clientset.Interface, node *v1.Node, strategy PrepareNo return nil } for attempt := 0; attempt < retries; attempt++ { - if _, err = client.Core().Nodes().Patch(node.Name, types.MergePatchType, []byte(patch)); err == nil { + if _, err = client.CoreV1().Nodes().Patch(node.Name, types.MergePatchType, []byte(patch)); err == nil { return nil } if !apierrs.IsConflict(err) { @@ -903,7 +908,7 @@ func DoPrepareNode(client clientset.Interface, node *v1.Node, strategy PrepareNo func DoCleanupNode(client clientset.Interface, nodeName string, strategy PrepareNodeStrategy) error { for attempt := 0; attempt < retries; attempt++ { - node, err := client.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + node, err := client.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) if err != nil { return fmt.Errorf("Skipping cleanup of Node: failed to get Node %v: %v", nodeName, err) } @@ -911,7 +916,7 @@ func DoCleanupNode(client clientset.Interface, nodeName string, strategy Prepare if apiequality.Semantic.DeepEqual(node, updatedNode) { return nil } - if _, err = client.Core().Nodes().Update(updatedNode); err == nil { + if _, err = client.CoreV1().Nodes().Update(updatedNode); err == nil { return nil } if !apierrs.IsConflict(err) { @@ -988,7 +993,7 @@ func MakePodSpec() v1.PodSpec { func makeCreatePod(client clientset.Interface, namespace string, podTemplate *v1.Pod) error { var err error for attempt := 0; attempt < retries; attempt++ { - if _, err := client.Core().Pods(namespace).Create(podTemplate); err == nil { + if _, err := client.CoreV1().Pods(namespace).Create(podTemplate); err == nil { return nil } glog.Errorf("Error while creating pod, maybe retry: %v", err) @@ -1033,7 +1038,7 @@ func createController(client clientset.Interface, controllerName, namespace stri } var err error for attempt := 0; attempt < retries; attempt++ { - if _, err := client.Core().ReplicationControllers(namespace).Create(rc); err == nil { + if _, err := client.CoreV1().ReplicationControllers(namespace).Create(rc); err == nil { return nil } glog.Errorf("Error while creating rc, maybe retry: %v", err) @@ -1093,7 +1098,7 @@ func (config *SecretConfig) Run() error { secret.StringData[k] = v } - _, err := config.Client.Core().Secrets(config.Namespace).Create(secret) + _, err := config.Client.CoreV1().Secrets(config.Namespace).Create(secret) if err != nil { return fmt.Errorf("Error creating secret: %v", err) } @@ -1102,7 +1107,7 @@ func (config *SecretConfig) Run() error { } func (config *SecretConfig) Stop() error { - if err := config.Client.Core().Secrets(config.Namespace).Delete(config.Name, &metav1.DeleteOptions{}); err != nil { + if err := config.Client.CoreV1().Secrets(config.Namespace).Delete(config.Name, &metav1.DeleteOptions{}); err != nil { return fmt.Errorf("Error deleting secret: %v", err) } config.LogFunc("Deleted secret %v/%v", config.Namespace, config.Name) @@ -1152,7 +1157,7 @@ func (config *ConfigMapConfig) Run() error { configMap.Data[k] = v } - _, err := config.Client.Core().ConfigMaps(config.Namespace).Create(configMap) + _, err := config.Client.CoreV1().ConfigMaps(config.Namespace).Create(configMap) if err != nil { return fmt.Errorf("Error creating configmap: %v", err) } @@ -1161,7 +1166,7 @@ func (config *ConfigMapConfig) Run() error { } func (config *ConfigMapConfig) Stop() error { - if err := config.Client.Core().ConfigMaps(config.Namespace).Delete(config.Name, &metav1.DeleteOptions{}); err != nil { + if err := config.Client.CoreV1().ConfigMaps(config.Namespace).Delete(config.Name, &metav1.DeleteOptions{}); err != nil { return fmt.Errorf("Error deleting configmap: %v", err) } config.LogFunc("Deleted configmap %v/%v", config.Namespace, config.Name) @@ -1232,7 +1237,7 @@ func (config *DaemonConfig) Run() error { }, } - _, err := config.Client.Extensions().DaemonSets(config.Namespace).Create(daemon) + _, err := config.Client.ExtensionsV1beta1().DaemonSets(config.Namespace).Create(daemon) if err != nil { return fmt.Errorf("Error creating DaemonSet %v: %v", config.Name, err) } @@ -1240,7 +1245,7 @@ func (config *DaemonConfig) Run() error { var nodes *v1.NodeList for i := 0; i < retries; i++ { // Wait for all daemons to be running - nodes, err = config.Client.Core().Nodes().List(metav1.ListOptions{ResourceVersion: "0"}) + nodes, err = config.Client.CoreV1().Nodes().List(metav1.ListOptions{ResourceVersion: "0"}) if err == nil { break } else if i+1 == retries { diff --git a/vendor/k8s.io/kubernetes/third_party/forked/golang/expansion/BUILD b/vendor/k8s.io/kubernetes/third_party/forked/golang/expansion/BUILD index 20641a43c..41a2e08cc 100644 --- a/vendor/k8s.io/kubernetes/third_party/forked/golang/expansion/BUILD +++ b/vendor/k8s.io/kubernetes/third_party/forked/golang/expansion/BUILD @@ -19,7 +19,7 @@ go_test( srcs = ["expand_test.go"], importpath = "k8s.io/kubernetes/third_party/forked/golang/expansion", library = ":go_default_library", - deps = ["//pkg/api:go_default_library"], + deps = ["//pkg/apis/core:go_default_library"], ) filegroup( diff --git a/vendor/k8s.io/kubernetes/third_party/forked/golang/expansion/expand_test.go b/vendor/k8s.io/kubernetes/third_party/forked/golang/expansion/expand_test.go index f5a628b17..948c36ffe 100644 --- a/vendor/k8s.io/kubernetes/third_party/forked/golang/expansion/expand_test.go +++ b/vendor/k8s.io/kubernetes/third_party/forked/golang/expansion/expand_test.go @@ -2,8 +2,7 @@ package expansion import ( "testing" - - "k8s.io/kubernetes/pkg/api" +api "k8s.io/kubernetes/pkg/apis/core" ) func TestMapReference(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/third_party/forked/gonum/graph/traverse/traverse.go b/vendor/k8s.io/kubernetes/third_party/forked/gonum/graph/traverse/traverse.go index cc361c85f..105c8f6e1 100644 --- a/vendor/k8s.io/kubernetes/third_party/forked/gonum/graph/traverse/traverse.go +++ b/vendor/k8s.io/kubernetes/third_party/forked/gonum/graph/traverse/traverse.go @@ -21,7 +21,7 @@ type BreadthFirst struct { } // Walk performs a breadth-first traversal of the graph g starting from the given node, -// depending on the the EdgeFilter field and the until parameter if they are non-nil. The +// depending on the EdgeFilter field and the until parameter if they are non-nil. The // traversal follows edges for which EdgeFilter(edge) is true and returns the first node // for which until(node, depth) is true. During the traversal, if the Visit field is // non-nil, it is called with the nodes joined by each followed edge. @@ -113,7 +113,7 @@ type DepthFirst struct { } // Walk performs a depth-first traversal of the graph g starting from the given node, -// depending on the the EdgeFilter field and the until parameter if they are non-nil. The +// depending on the EdgeFilter field and the until parameter if they are non-nil. The // traversal follows edges for which EdgeFilter(edge) is true and returns the first node // for which until(node) is true. During the traversal, if the Visit field is non-nil, it // is called with the nodes joined by each followed edge. diff --git a/vendor/k8s.io/kubernetes/third_party/forked/gonum/graph/traverse/visit_depth_first.go b/vendor/k8s.io/kubernetes/third_party/forked/gonum/graph/traverse/visit_depth_first.go index b7f45a7b3..89df3c690 100644 --- a/vendor/k8s.io/kubernetes/third_party/forked/gonum/graph/traverse/visit_depth_first.go +++ b/vendor/k8s.io/kubernetes/third_party/forked/gonum/graph/traverse/visit_depth_first.go @@ -30,7 +30,7 @@ type VisitingDepthFirst struct { } // Walk performs a depth-first traversal of the graph g starting from the given node, -// depending on the the EdgeFilter field and the until parameter if they are non-nil. The +// depending on the EdgeFilter field and the until parameter if they are non-nil. The // traversal follows edges for which EdgeFilter(edge) is true and returns the first node // for which until(node) is true. During the traversal, if the Visit field is non-nil, it // is called with the nodes joined by each followed edge. diff --git a/vendor/k8s.io/kubernetes/translations/kubectl/de_DE/LC_MESSAGES/k8s.po b/vendor/k8s.io/kubernetes/translations/kubectl/de_DE/LC_MESSAGES/k8s.po index 4a3f72449..6dc659052 100644 --- a/vendor/k8s.io/kubernetes/translations/kubectl/de_DE/LC_MESSAGES/k8s.po +++ b/vendor/k8s.io/kubernetes/translations/kubectl/de_DE/LC_MESSAGES/k8s.po @@ -154,8 +154,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " diff --git a/vendor/k8s.io/kubernetes/translations/kubectl/default/LC_MESSAGES/k8s.po b/vendor/k8s.io/kubernetes/translations/kubectl/default/LC_MESSAGES/k8s.po index 6d80e4116..4049c95bc 100644 --- a/vendor/k8s.io/kubernetes/translations/kubectl/default/LC_MESSAGES/k8s.po +++ b/vendor/k8s.io/kubernetes/translations/kubectl/default/LC_MESSAGES/k8s.po @@ -152,8 +152,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " @@ -162,8 +162,8 @@ msgid "" msgstr "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " diff --git a/vendor/k8s.io/kubernetes/translations/kubectl/en_US/LC_MESSAGES/k8s.po b/vendor/k8s.io/kubernetes/translations/kubectl/en_US/LC_MESSAGES/k8s.po index 3dad3733f..6706d6255 100644 --- a/vendor/k8s.io/kubernetes/translations/kubectl/en_US/LC_MESSAGES/k8s.po +++ b/vendor/k8s.io/kubernetes/translations/kubectl/en_US/LC_MESSAGES/k8s.po @@ -152,8 +152,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " @@ -162,8 +162,8 @@ msgid "" msgstr "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " diff --git a/vendor/k8s.io/kubernetes/translations/kubectl/it_IT/LC_MESSAGES/k8s.po b/vendor/k8s.io/kubernetes/translations/kubectl/it_IT/LC_MESSAGES/k8s.po index 7beeacb1f..452b483ca 100644 --- a/vendor/k8s.io/kubernetes/translations/kubectl/it_IT/LC_MESSAGES/k8s.po +++ b/vendor/k8s.io/kubernetes/translations/kubectl/it_IT/LC_MESSAGES/k8s.po @@ -153,8 +153,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods " diff --git a/vendor/k8s.io/kubernetes/translations/kubectl/template.pot b/vendor/k8s.io/kubernetes/translations/kubectl/template.pot index 2a6eea3e1..86e4bad67 100644 --- a/vendor/k8s.io/kubernetes/translations/kubectl/template.pot +++ b/vendor/k8s.io/kubernetes/translations/kubectl/template.pot @@ -98,8 +98,8 @@ msgstr "" msgid "" "\n" "\t\t# Auto scale a deployment \"foo\", with the number of pods between 2 and " -"10, target CPU utilization specified so a default autoscaling policy will be " -"used:\n" +"10, no target CPU utilization specified so a default autoscaling policy will " +"be used:\n" "\t\tkubectl autoscale deployment foo --min=2 --max=10\n" "\n" "\t\t# Auto scale a replication controller \"foo\", with the number of pods "